--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/stable/sysfs-driver-mlxreg-io
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/stable/sysfs-driver-mlxreg-io
@@ -29,13 +29,13 @@
 
 		The files are read only.
 
-What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/jtag_enable
+What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version
 
 Date:		November 2018
 KernelVersion:	5.0
 Contact:	Vadim Pasternak <vadimpmellanox.com>
 Description:	These files show with which CPLD versions have been burned
-		on LED board.
+		on LED or Gearbox board.
 
 		The files are read only.
 
@@ -121,6 +121,15 @@
 
 		The files are read only.
 
+What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version
+Date:		November 2018
+KernelVersion:	5.0
+Contact:	Vadim Pasternak <vadimpmellanox.com>
+Description:	These files show with which CPLD versions have been burned
+		on LED board.
+
+		The files are read only.
+
 Date:		June 2019
 KernelVersion:	5.3
 Contact:	Vadim Pasternak <vadimpmellanox.com>
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/debugfs-aufs
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/debugfs-aufs
@@ -0,0 +1,55 @@
+What:		/debug/aufs/si_<id>/
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		Under /debug/aufs, a directory named si_<id> is created
+		per aufs mount, where <id> is a unique id generated
+		internally.
+
+What:		/debug/aufs/si_<id>/plink
+Date:		Apr 2013
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It has three lines and shows the information about the
+		pseudo-link. The first line is a single number
+		representing a number of buckets. The second line is a
+		number of pseudo-links per buckets (separated by a
+		blank). The last line is a single number representing a
+		total number of psedo-links.
+		When the aufs mount option 'noplink' is specified, it
+		will show "1\n0\n0\n".
+
+What:		/debug/aufs/si_<id>/xib
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the consumed blocks by xib (External Inode Number
+		Bitmap), its block size and file size.
+		When the aufs mount option 'noxino' is specified, it
+		will be empty. About XINO files, see the aufs manual.
+
+What:		/debug/aufs/si_<id>/xi0, xi1 ... xiN and xiN-N
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the consumed blocks by xino (External Inode Number
+		Translation Table), its link count, block size and file
+		size.
+		Due to the file size limit, there may exist multiple
+		xino files per branch.  In this case, "-N" is added to
+		the filename and it corresponds to the index of the
+		internal xino array.  "-0" is omitted.
+		When the aufs mount option 'noxino' is specified, Those
+		entries won't exist.  About XINO files, see the aufs
+		manual.
+
+What:		/debug/aufs/si_<id>/xigen
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the consumed blocks by xigen (External Inode
+		Generation Table), its block size and file size.
+		If CONFIG_AUFS_EXPORT is disabled, this entry will not
+		be created.
+		When the aufs mount option 'noxino' is specified, it
+		will be empty. About XINO files, see the aufs manual.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/debugfs-hisi-hpre
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/debugfs-hisi-hpre
@@ -0,0 +1,57 @@
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/regs
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump debug registers from the HPRE cluster.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/cluster_ctrl
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Write the HPRE core selection in the cluster into this file,
+		and then we can read the debug information of the core.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/rdclr_en
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    HPRE cores debug registers read clear control. 1 means enable
+		register read clear, otherwise 0. Writing to this file has no
+		functional effect, only enable or disable counters clear after
+		reading of these registers.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/current_qm
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One HPRE controller has one PF and multiple VFs, each function
+		has a QM. Select the QM which below qm refers to.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/regs
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump debug registers from the HPRE.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/qm/qm_regs
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump debug registers from the QM.
+		Available for PF and VF in host. VF in guest currently only
+		has one debug register.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/qm/current_q
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One QM may contain multiple queues. Select specific queue to
+		show its debug registers in above qm_regs.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/qm/clear_enable
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    QM debug registers(qm_regs) read clear control. 1 means enable
+		register read clear, otherwise 0.
+		Writing to this file has no functional effect, only enable or
+		disable counters clear after reading of these registers.
+		Only available for PF.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/debugfs-hisi-sec
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/debugfs-hisi-sec
@@ -0,0 +1,43 @@
+What:           /sys/kernel/debug/hisi_sec/<bdf>/sec_dfx
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump the debug registers of SEC cores.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/clear_enable
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Enabling/disabling of clear action after reading
+		the SEC debug registers.
+		0: disable, 1: enable.
+		Only available for PF, and take no other effect on SEC.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/current_qm
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One SEC controller has one PF and multiple VFs, each function
+		has a QM. This file can be used to select the QM which below
+		qm refers to.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/qm/qm_regs
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump of QM related debug registers.
+		Available for PF and VF in host. VF in guest currently only
+		has one debug register.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/qm/current_q
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One QM of SEC may contain multiple queues. Select specific
+		queue to show its debug registers in above 'qm_regs'.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/qm/clear_enable
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Enabling/disabling of clear action after reading
+		the SEC's QM debug registers.
+		0: disable, 1: enable.
+		Only available for PF, and take no other effect on SEC.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/ima_policy
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/ima_policy
@@ -25,6 +25,7 @@
 			lsm:	[[subj_user=] [subj_role=] [subj_type=]
 				 [obj_user=] [obj_role=] [obj_type=]]
 			option:	[[appraise_type=]] [template=] [permit_directio]
+				[appraise_flag=]
 		base: 	func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK][MODULE_CHECK]
 				[FIRMWARE_CHECK]
 				[KEXEC_KERNEL_CHECK] [KEXEC_INITRAMFS_CHECK]
@@ -38,6 +39,9 @@
 			fowner:= decimal value
 		lsm:  	are LSM specific
 		option:	appraise_type:= [imasig] [imasig|modsig]
+			appraise_flag:= [check_blacklist]
+			Currently, blacklist check is only for files signed with appended
+			signature.
 			template:= name of a defined IMA template type
 			(eg, ima-ng). Only valid when action is "measure".
 			pcr:= decimal value
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-aufs
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-aufs
@@ -0,0 +1,31 @@
+What:		/sys/fs/aufs/si_<id>/
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		Under /sys/fs/aufs, a directory named si_<id> is created
+		per aufs mount, where <id> is a unique id generated
+		internally.
+
+What:		/sys/fs/aufs/si_<id>/br0, br1 ... brN
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the abolute path of a member directory (which
+		is called branch) in aufs, and its permission.
+
+What:		/sys/fs/aufs/si_<id>/brid0, brid1 ... bridN
+Date:		July 2013
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the id of a member directory (which is called
+		branch) in aufs.
+
+What:		/sys/fs/aufs/si_<id>/xi_path
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the abolute path of XINO (External Inode Number
+		Bitmap, Translation Table and Generation Table) file
+		even if it is the default path.
+		When the aufs mount option 'noxino' is specified, it
+		will be empty. About XINO files, see the aufs manual.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-iio
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-bus-iio
@@ -1566,7 +1566,8 @@
 KernelVersion:	4.3
 Contact:	linux-iio@vger.kernel.org
 Description:
-		Raw (unscaled no offset etc.) percentage reading of a substance.
+		Raw (unscaled no offset etc.) reading of a substance. Units
+		after application of scale and offset are percents.
 
 What:		/sys/bus/iio/devices/iio:deviceX/in_resistance_raw
 What:		/sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-mei
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-bus-mei
@@ -4,7 +4,7 @@
 Contact:	Samuel Ortiz <sameo@linux.intel.com>
 		linux-mei@linux.intel.com
 Description:	Stores the same MODALIAS value emitted by uevent
-		Format: mei:<mei device name>:<device uuid>:
+		Format: mei:<mei device name>:<device uuid>:<protocol version>
 
 What:		/sys/bus/mei/devices/.../name
 Date:		May 2015
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-pci
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-bus-pci
@@ -347,3 +347,16 @@
 		If the device has any Peer-to-Peer memory registered, this
 	        file contains a '1' if the memory has been published for
 		use outside the driver that owns the device.
+
+What:		/sys/bus/pci/devices/.../link/clkpm
+		/sys/bus/pci/devices/.../link/l0s_aspm
+		/sys/bus/pci/devices/.../link/l1_aspm
+		/sys/bus/pci/devices/.../link/l1_1_aspm
+		/sys/bus/pci/devices/.../link/l1_2_aspm
+		/sys/bus/pci/devices/.../link/l1_1_pcipm
+		/sys/bus/pci/devices/.../link/l1_2_pcipm
+Date:		October 2019
+Contact:	Heiner Kallweit <hkallweit1@gmail.com>
+Description:	If ASPM is supported for an endpoint, these files can be
+		used to disable or enable the individual power management
+		states. Write y/1/on to enable, n/0/off to disable.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-class-devfreq
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-class-devfreq
@@ -7,6 +7,13 @@
 		The name of devfreq object denoted as ... is same as the
 		name of device using devfreq.
 
+What:		/sys/class/devfreq/.../name
+Date:		November 2019
+Contact:	Chanwoo Choi <cw00.choi@samsung.com>
+Description:
+		The /sys/class/devfreq/.../name shows the name of device
+		of the corresponding devfreq object.
+
 What:		/sys/class/devfreq/.../governor
 Date:		September 2011
 Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-devices-system-cpu
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-devices-system-cpu
@@ -486,6 +486,7 @@
 		/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
 		/sys/devices/system/cpu/vulnerabilities/l1tf
 		/sys/devices/system/cpu/vulnerabilities/mds
+		/sys/devices/system/cpu/vulnerabilities/srbds
 		/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
 		/sys/devices/system/cpu/vulnerabilities/itlb_multihit
 Date:		January 2018
--- linux-gkeop-5.4-5.4.0.orig/Documentation/ABI/testing/sysfs-secvar
+++ linux-gkeop-5.4-5.4.0/Documentation/ABI/testing/sysfs-secvar
@@ -0,0 +1,46 @@
+What:		/sys/firmware/secvar
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	This directory is created if the POWER firmware supports OS
+		secureboot, thereby secure variables. It exposes interface
+		for reading/writing the secure variables
+
+What:		/sys/firmware/secvar/vars
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	This directory lists all the secure variables that are supported
+		by the firmware.
+
+What:		/sys/firmware/secvar/format
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	A string indicating which backend is in use by the firmware.
+		This determines the format of the variable and the accepted
+		format of variable updates.
+
+What:		/sys/firmware/secvar/vars/<variable name>
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	Each secure variable is represented as a directory named as
+		<variable_name>. The variable name is unique and is in ASCII
+		representation. The data and size can be determined by reading
+		their respective attribute files.
+
+What:		/sys/firmware/secvar/vars/<variable_name>/size
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	An integer representation of the size of the content of the
+		variable. In other words, it represents the size of the data.
+
+What:		/sys/firmware/secvar/vars/<variable_name>/data
+Date:		August 2019
+Contact:	Nayna Jain h<nayna@linux.ibm.com>
+Description:	A read-only file containing the value of the variable. The size
+		of the file represents the maximum size of the variable data.
+
+What:		/sys/firmware/secvar/vars/<variable_name>/update
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	A write-only file that is used to submit the new value for the
+		variable. The size of the file represents the maximum size of
+		the variable data that can be written.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/DMA-attributes.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/DMA-attributes.txt
@@ -5,24 +5,6 @@
 This document describes the semantics of the DMA attributes that are
 defined in linux/dma-mapping.h.
 
-DMA_ATTR_WRITE_BARRIER
-----------------------
-
-DMA_ATTR_WRITE_BARRIER is a (write) barrier attribute for DMA.  DMA
-to a memory region with the DMA_ATTR_WRITE_BARRIER attribute forces
-all pending DMA writes to complete, and thus provides a mechanism to
-strictly order DMA from a device across all intervening busses and
-bridges.  This barrier is not specific to a particular type of
-interconnect, it applies to the system as a whole, and so its
-implementation must account for the idiosyncrasies of the system all
-the way from the DMA device to memory.
-
-As an example of a situation where DMA_ATTR_WRITE_BARRIER would be
-useful, suppose that a device does a DMA write to indicate that data is
-ready and available in memory.  The DMA of the "completion indication"
-could race with data DMA.  Mapping the memory used for completion
-indications with DMA_ATTR_WRITE_BARRIER would prevent the race.
-
 DMA_ATTR_WEAK_ORDERING
 ----------------------
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/device-mapper/dm-integrity.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/device-mapper/dm-integrity.rst
@@ -177,6 +177,12 @@
 	The bitmap flush interval in milliseconds. The metadata buffers
 	are synchronized when this interval expires.
 
+legacy_recalculate
+	Allow recalculating of volumes with HMAC keys. This is disabled by
+	default for security reasons - an attacker could modify the volume,
+	set recalc_sector to zero, and the kernel would not detect the
+	modification.
+
 
 The journal mode (D/J), buffer_sectors, journal_watermark, commit_time can
 be changed when reloading the target (load an inactive table and swap the
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/device-mapper/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/device-mapper/index.rst
@@ -8,6 +8,7 @@
     cache-policies
     cache
     delay
+    dm-clone
     dm-crypt
     dm-flakey
     dm-init
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/hw-vuln/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/hw-vuln/index.rst
@@ -14,3 +14,4 @@
    mds
    tsx_async_abort
    multihit.rst
+   special-register-buffer-data-sampling.rst
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/hw-vuln/mds.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/hw-vuln/mds.rst
@@ -265,8 +265,11 @@
 
   ============  =============================================================
 
-Not specifying this option is equivalent to "mds=full".
-
+Not specifying this option is equivalent to "mds=full". For processors
+that are affected by both TAA (TSX Asynchronous Abort) and MDS,
+specifying just "mds=off" without an accompanying "tsx_async_abort=off"
+will have no effect as the same mitigation is used for both
+vulnerabilities.
 
 Mitigation selection guide
 --------------------------
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst
@@ -0,0 +1,149 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+SRBDS - Special Register Buffer Data Sampling
+=============================================
+
+SRBDS is a hardware vulnerability that allows MDS :doc:`mds` techniques to
+infer values returned from special register accesses.  Special register
+accesses are accesses to off core registers.  According to Intel's evaluation,
+the special register reads that have a security expectation of privacy are
+RDRAND, RDSEED and SGX EGETKEY.
+
+When RDRAND, RDSEED and EGETKEY instructions are used, the data is moved
+to the core through the special register mechanism that is susceptible
+to MDS attacks.
+
+Affected processors
+--------------------
+Core models (desktop, mobile, Xeon-E3) that implement RDRAND and/or RDSEED may
+be affected.
+
+A processor is affected by SRBDS if its Family_Model and stepping is
+in the following list, with the exception of the listed processors
+exporting MDS_NO while Intel TSX is available yet not enabled. The
+latter class of processors are only affected when Intel TSX is enabled
+by software using TSX_CTRL_MSR otherwise they are not affected.
+
+  =============  ============  ========
+  common name    Family_Model  Stepping
+  =============  ============  ========
+  IvyBridge      06_3AH        All
+
+  Haswell        06_3CH        All
+  Haswell_L      06_45H        All
+  Haswell_G      06_46H        All
+
+  Broadwell_G    06_47H        All
+  Broadwell      06_3DH        All
+
+  Skylake_L      06_4EH        All
+  Skylake        06_5EH        All
+
+  Kabylake_L     06_8EH        <= 0xC
+  Kabylake       06_9EH        <= 0xD
+  =============  ============  ========
+
+Related CVEs
+------------
+
+The following CVE entry is related to this SRBDS issue:
+
+    ==============  =====  =====================================
+    CVE-2020-0543   SRBDS  Special Register Buffer Data Sampling
+    ==============  =====  =====================================
+
+Attack scenarios
+----------------
+An unprivileged user can extract values returned from RDRAND and RDSEED
+executed on another core or sibling thread using MDS techniques.
+
+
+Mitigation mechanism
+-------------------
+Intel will release microcode updates that modify the RDRAND, RDSEED, and
+EGETKEY instructions to overwrite secret special register data in the shared
+staging buffer before the secret data can be accessed by another logical
+processor.
+
+During execution of the RDRAND, RDSEED, or EGETKEY instructions, off-core
+accesses from other logical processors will be delayed until the special
+register read is complete and the secret data in the shared staging buffer is
+overwritten.
+
+This has three effects on performance:
+
+#. RDRAND, RDSEED, or EGETKEY instructions have higher latency.
+
+#. Executing RDRAND at the same time on multiple logical processors will be
+   serialized, resulting in an overall reduction in the maximum RDRAND
+   bandwidth.
+
+#. Executing RDRAND, RDSEED or EGETKEY will delay memory accesses from other
+   logical processors that miss their core caches, with an impact similar to
+   legacy locked cache-line-split accesses.
+
+The microcode updates provide an opt-out mechanism (RNGDS_MITG_DIS) to disable
+the mitigation for RDRAND and RDSEED instructions executed outside of Intel
+Software Guard Extensions (Intel SGX) enclaves. On logical processors that
+disable the mitigation using this opt-out mechanism, RDRAND and RDSEED do not
+take longer to execute and do not impact performance of sibling logical
+processors memory accesses. The opt-out mechanism does not affect Intel SGX
+enclaves (including execution of RDRAND or RDSEED inside an enclave, as well
+as EGETKEY execution).
+
+IA32_MCU_OPT_CTRL MSR Definition
+--------------------------------
+Along with the mitigation for this issue, Intel added a new thread-scope
+IA32_MCU_OPT_CTRL MSR, (address 0x123). The presence of this MSR and
+RNGDS_MITG_DIS (bit 0) is enumerated by CPUID.(EAX=07H,ECX=0).EDX[SRBDS_CTRL =
+9]==1. This MSR is introduced through the microcode update.
+
+Setting IA32_MCU_OPT_CTRL[0] (RNGDS_MITG_DIS) to 1 for a logical processor
+disables the mitigation for RDRAND and RDSEED executed outside of an Intel SGX
+enclave on that logical processor. Opting out of the mitigation for a
+particular logical processor does not affect the RDRAND and RDSEED mitigations
+for other logical processors.
+
+Note that inside of an Intel SGX enclave, the mitigation is applied regardless
+of the value of RNGDS_MITG_DS.
+
+Mitigation control on the kernel command line
+---------------------------------------------
+The kernel command line allows control over the SRBDS mitigation at boot time
+with the option "srbds=".  The option for this is:
+
+  ============= =============================================================
+  off           This option disables SRBDS mitigation for RDRAND and RDSEED on
+                affected platforms.
+  ============= =============================================================
+
+SRBDS System Information
+-----------------------
+The Linux kernel provides vulnerability status information through sysfs.  For
+SRBDS this can be accessed by the following sysfs file:
+/sys/devices/system/cpu/vulnerabilities/srbds
+
+The possible values contained in this file are:
+
+ ============================== =============================================
+ Not affected                   Processor not vulnerable
+ Vulnerable                     Processor vulnerable and mitigation disabled
+ Vulnerable: No microcode       Processor vulnerable and microcode is missing
+                                mitigation
+ Mitigation: Microcode          Processor is vulnerable and mitigation is in
+                                effect.
+ Mitigation: TSX disabled       Processor is only vulnerable when TSX is
+                                enabled while this system was booted with TSX
+                                disabled.
+ Unknown: Dependent on
+ hypervisor status              Running on virtual guest processor that is
+                                affected but with no way to know if host
+                                processor is mitigated or vulnerable.
+ ============================== =============================================
+
+SRBDS Default mitigation
+------------------------
+This new microcode serializes processor access during execution of RDRAND,
+RDSEED ensures that the shared buffer is overwritten before it is released for
+reuse.  Use the "srbds=off" kernel command line to disable the mitigation for
+RDRAND and RDSEED.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
@@ -174,7 +174,10 @@
                 CPU is not vulnerable to cross-thread TAA attacks.
   ============  =============================================================
 
-Not specifying this option is equivalent to "tsx_async_abort=full".
+Not specifying this option is equivalent to "tsx_async_abort=full". For
+processors that are affected by both TAA and MDS, specifying just
+"tsx_async_abort=off" without an accompanying "mds=off" will have no
+effect as the same mitigation is used for both vulnerabilities.
 
 The kernel command line also allows to control the TSX feature using the
 parameter "tsx=" on CPUs which support TSX control. MSR_IA32_TSX_CTRL is used
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/iostats.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/iostats.rst
@@ -99,7 +99,7 @@
 
     Since 5.0 this field counts jiffies when at least one request was
     started or completed. If request runs more than 2 jiffies then some
-    I/O time will not be accounted unless there are other requests.
+    I/O time might be not accounted in case of concurrent requests.
 
 Field 11 -- weighted # of milliseconds spent doing I/Os
     This field is incremented at each I/O start, I/O completion, I/O
@@ -133,6 +133,9 @@
 summed to) and the result given to the user.  There is no convenient
 user interface for accessing the per-CPU counters themselves.
 
+Since 4.19 request times are measured with nanoseconds precision and
+truncated to milliseconds before showing in this interface.
+
 Disks vs Partitions
 -------------------
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/admin-guide/kernel-parameters.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/admin-guide/kernel-parameters.txt
@@ -113,7 +113,7 @@
 			the GPE dispatcher.
 			This facility can be used to prevent such uncontrolled
 			GPE floodings.
-			Format: <int>
+			Format: <byte>
 
 	acpi_no_auto_serialize	[HW,ACPI]
 			Disable auto-serialization of AML methods
@@ -136,6 +136,10 @@
 			dynamic table installation which will install SSDT
 			tables to /sys/firmware/acpi/tables/dynamic.
 
+	acpi_no_watchdog	[HW,ACPI,WDT]
+			Ignore the ACPI-based watchdog interface (WDAT) and let
+			a native driver control the watchdog device instead.
+
 	acpi_rsdp=	[ACPI,EFI,KEXEC]
 			Pass the RSDP address to the kernel, mostly used
 			on machines running EFI runtime service to boot the
@@ -563,7 +567,7 @@
 			loops can be debugged more effectively on production
 			systems.
 
-	clearcpuid=BITNUM [X86]
+	clearcpuid=BITNUM[,BITNUM...] [X86]
 			Disable CPUID feature X for the kernel. See
 			arch/x86/include/asm/cpufeatures.h for the valid bit
 			numbers. Note the Linux specific bits are not necessarily
@@ -680,6 +684,10 @@
 			0: default value, disable debugging
 			1: enable debugging at boot time
 
+	cpufreq_driver= [X86] Allow only the named cpu frequency scaling driver
+			to register. Example: cpufreq_driver=powernow-k8
+			Format: { none | STRING }
+
 	cpuidle.off=1	[CPU_IDLE]
 			disable the cpuidle sub-system
 
@@ -836,6 +844,18 @@
 			dump out devices still on the deferred probe list after
 			retrying.
 
+	dfltcc=		[HW,S390]
+			Format: { on | off | def_only | inf_only | always }
+			on:       s390 zlib hardware support for compression on
+			          level 1 and decompression (default)
+			off:      No s390 zlib hardware support
+			def_only: s390 zlib hardware support for deflate
+			          only (compression on level 1)
+			inf_only: s390 zlib hardware support for inflate
+			          only (decompression)
+			always:   Same as 'on' but ignores the selected compression
+			          level always using hardware support (used for debugging)
+
 	dhash_entries=	[KNL]
 			Set number of hash buckets for dentry cache.
 
@@ -2473,6 +2493,12 @@
 				     SMT on vulnerable CPUs
 			off        - Unconditionally disable MDS mitigation
 
+			On TAA-affected machines, mds=off can be prevented by
+			an active TAA mitigation as both vulnerabilities are
+			mitigated with the same mechanism so in order to disable
+			this mitigation, you need to specify tsx_async_abort=off
+			too.
+
 			Not specifying this option is equivalent to
 			mds=full.
 
@@ -2657,6 +2683,8 @@
 					       mds=off [X86]
 					       tsx_async_abort=off [X86]
 					       kvm.nx_huge_pages=off [X86]
+					       no_entry_flush [PPC]
+					       no_uaccess_flush [PPC]
 
 				Exceptions:
 					       This does not have any effect on
@@ -2731,7 +2759,7 @@
 			<name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]
 
 	mtdparts=	[MTD]
-			See drivers/mtd/cmdlinepart.c.
+			See drivers/mtd/parsers/cmdlinepart.c
 
 	multitce=off	[PPC]  This parameter disables the use of the pSeries
 			firmware feature for updating multiple TCE entries
@@ -2979,6 +3007,8 @@
 
 	noefi		Disable EFI runtime services support.
 
+	no_entry_flush  [PPC] Don't flush the L1-D cache when entering the kernel.
+
 	noexec		[IA-64]
 
 	noexec		[X86]
@@ -3028,6 +3058,9 @@
 	nospec_store_bypass_disable
 			[HW] Disable all mitigations for the Speculative Store Bypass vulnerability
 
+	no_uaccess_flush
+	                [PPC] Don't flush the L1-D cache after accessing user data.
+
 	noxsave		[BUGS=X86] Disables x86 extended register state save
 			and restore using xsave. The kernel will fallback to
 			enabling legacy floating-point and sse state.
@@ -3402,6 +3435,12 @@
 		nomsi		[MSI] If the PCI_MSI kernel config parameter is
 				enabled, this kernel boot option can be used to
 				disable the use of MSI interrupts system-wide.
+		clearmsi	[X86] Clears MSI/MSI-X enable bits early in boot
+				time in order to avoid issues like adapters
+				screaming irqs and preventing boot progress.
+				Also, it enforces the PCI Local Bus spec
+				rule that those bits should be 0 in system reset
+				events (useful for kexec/kdump cases).
 		noioapicquirk	[APIC] Disable all boot interrupt quirks.
 				Safety option to keep boot IRQs enabled. This
 				should never be necessary.
@@ -3555,6 +3594,8 @@
 				may put more devices in an IOMMU group.
 		force_floating	[S390] Force usage of floating interrupts.
 		nomio		[S390] Do not use MIO instructions.
+		norid		[S390] ignore the RID field and force use of
+				one PCI domain per PCI function
 
 	pcie_aspm=	[PCIE] Forcibly enable or disable PCIe Active State Power
 			Management.
@@ -3567,6 +3608,8 @@
 			even if the platform doesn't give the OS permission to
 			use them.  This may cause conflicts if the platform
 			also tries to use these services.
+		dpc-native	Use native PCIe service for DPC only.  May
+				cause conflicts if firmware uses AER or DPC.
 		compat	Disable native PCIe services (PME, AER, DPC, PCIe
 			hotplug).
 
@@ -3720,6 +3763,11 @@
 			before loading.
 			See Documentation/admin-guide/blockdev/ramdisk.rst.
 
+	prot_virt=	[S390] enable hosting protected virtual machines
+			isolated from the hypervisor (if hardware supports
+			that).
+			Format: <bool>
+
 	psi=		[KNL] Enable or disable pressure stall information
 			tracking.
 			Format: <bool>
@@ -4569,6 +4617,26 @@
 	spia_pedr=
 	spia_peddr=
 
+	srbds=		[X86,INTEL]
+			Control the Special Register Buffer Data Sampling
+			(SRBDS) mitigation.
+
+			Certain CPUs are vulnerable to an MDS-like
+			exploit which can leak bits from the random
+			number generator.
+
+			By default, this issue is mitigated by
+			microcode.  However, the microcode fix can cause
+			the RDRAND and RDSEED instructions to become
+			much slower.  Among other effects, this will
+			result in reduced throughput from /dev/urandom.
+
+			The microcode mitigation can be disabled with
+			the following option:
+
+			off:    Disable mitigation and remove
+				performance impact to RDRAND and RDSEED
+
 	srcutree.counter_wrap_check [KNL]
 			Specifies how frequently to check for
 			grace-period sequence counter wrap for the
@@ -4931,6 +4999,11 @@
 				     vulnerable to cross-thread TAA attacks.
 			off        - Unconditionally disable TAA mitigation
 
+			On MDS-affected machines, tsx_async_abort=off can be
+			prevented by an active MDS mitigation as both vulnerabilities
+			are mitigated with the same mechanism so in order to disable
+			this mitigation, you need to specify mds=off too.
+
 			Not specifying this option is equivalent to
 			tsx_async_abort=full.  On CPUs which are MDS affected
 			and deploy MDS mitigation, TAA mitigation is not
@@ -4990,8 +5063,7 @@
 
 	usbcore.old_scheme_first=
 			[USB] Start with the old device initialization
-			scheme,  applies only to low and full-speed devices
-			 (default 0 = off).
+			scheme (default 0 = off).
 
 	usbcore.usbfs_memory_mb=
 			[USB] Memory limit (in MB) for buffers allocated by
@@ -5090,13 +5162,13 @@
 			Flags is a set of characters, each corresponding
 			to a common usb-storage quirk flag as follows:
 				a = SANE_SENSE (collect more than 18 bytes
-					of sense data);
+					of sense data, not on uas);
 				b = BAD_SENSE (don't collect more than 18
-					bytes of sense data);
+					bytes of sense data, not on uas);
 				c = FIX_CAPACITY (decrease the reported
 					device capacity by one sector);
 				d = NO_READ_DISC_INFO (don't use
-					READ_DISC_INFO command);
+					READ_DISC_INFO command, not on uas);
 				e = NO_READ_CAPACITY_16 (don't use
 					READ_CAPACITY_16 command);
 				f = NO_REPORT_OPCODES (don't use report opcodes
@@ -5110,18 +5182,20 @@
 					device);
 				j = NO_REPORT_LUNS (don't use report luns
 					command, uas only);
+				k = NO_SAME (do not use WRITE_SAME, uas only)
 				l = NOT_LOCKABLE (don't try to lock and
-					unlock ejectable media);
+					unlock ejectable media, not on uas);
 				m = MAX_SECTORS_64 (don't transfer more
-					than 64 sectors = 32 KB at a time);
+					than 64 sectors = 32 KB at a time,
+					not on uas);
 				n = INITIAL_READ10 (force a retry of the
-					initial READ(10) command);
+					initial READ(10) command, not on uas);
 				o = CAPACITY_OK (accept the capacity
-					reported by the device);
+					reported by the device, not on uas);
 				p = WRITE_CACHE (the device cache is ON
-					by default);
+					by default, not on uas);
 				r = IGNORE_RESIDUE (the device reports
-					bogus residue values);
+					bogus residue values, not on uas);
 				s = SINGLE_LUN (the device has only one
 					Logical Unit);
 				t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
@@ -5130,7 +5204,8 @@
 				w = NO_WP_DETECT (don't test whether the
 					medium is write-protected).
 				y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE
-					even if the device claims no cache)
+					even if the device claims no cache,
+					not on uas)
 			Example: quirks=0419:aaf5:rl,0421:0433:rc
 
 	user_debug=	[KNL,ARM]
@@ -5408,6 +5483,10 @@
 			This option is obsoleted by the "nopv" option, which
 			has equivalent effect for XEN platform.
 
+	xen_no_vector_callback
+			[KNL,X86,XEN] Disable the vector callback for Xen
+			event channel interrupts.
+
 	xen_scrub_pages=	[XEN]
 			Boolean option to control scrubbing pages before giving them back
 			to Xen, for use by other domains. Can be also changed at runtime
@@ -5426,6 +5505,14 @@
 			as generic guest with no PV drivers. Currently support
 			XEN HVM, KVM, HYPER_V and VMWARE guest.
 
+	xen.event_eoi_delay=	[XEN]
+			How long to delay EOI handling in case of event
+			storms (jiffies). Default is 10.
+
+	xen.event_loop_timeout=	[XEN]
+			After which time (jiffies) the event handling loop
+			should start to delay EOI handling. Default is 2.
+
 	xirc2ps_cs=	[NET,PCMCIA]
 			Format:
 			<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
--- linux-gkeop-5.4-5.4.0.orig/Documentation/arm64/silicon-errata.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/arm64/silicon-errata.rst
@@ -88,6 +88,8 @@
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1349291        | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-N1     | #1542419        | ARM64_ERRATUM_1542419       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | MMU-500         | #841119,826419  | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
--- linux-gkeop-5.4-5.4.0.orig/Documentation/arm64/tagged-address-abi.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/arm64/tagged-address-abi.rst
@@ -44,8 +44,15 @@
 how the user addresses are used by the kernel:
 
 1. User addresses not accessed by the kernel but used for address space
-   management (e.g. ``mmap()``, ``mprotect()``, ``madvise()``). The use
-   of valid tagged pointers in this context is always allowed.
+   management (e.g. ``mprotect()``, ``madvise()``). The use of valid
+   tagged pointers in this context is allowed with the exception of
+   ``brk()``, ``mmap()`` and the ``new_address`` argument to
+   ``mremap()`` as these have the potential to alias with existing
+   user addresses.
+
+   NOTE: This behaviour changed in v5.6 and so some earlier kernels may
+   incorrectly accept valid tagged pointers for the ``brk()``,
+   ``mmap()`` and ``mremap()`` system calls.
 
 2. User addresses accessed by the kernel (e.g. ``write()``). This ABI
    relaxation is disabled by default and the application thread needs to
--- linux-gkeop-5.4-5.4.0.orig/Documentation/asm-annotations.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/asm-annotations.rst
@@ -0,0 +1,216 @@
+Assembler Annotations
+=====================
+
+Copyright (c) 2017-2019 Jiri Slaby
+
+This document describes the new macros for annotation of data and code in
+assembly. In particular, it contains information about ``SYM_FUNC_START``,
+``SYM_FUNC_END``, ``SYM_CODE_START``, and similar.
+
+Rationale
+---------
+Some code like entries, trampolines, or boot code needs to be written in
+assembly. The same as in C, such code is grouped into functions and
+accompanied with data. Standard assemblers do not force users into precisely
+marking these pieces as code, data, or even specifying their length.
+Nevertheless, assemblers provide developers with such annotations to aid
+debuggers throughout assembly. On top of that, developers also want to mark
+some functions as *global* in order to be visible outside of their translation
+units.
+
+Over time, the Linux kernel has adopted macros from various projects (like
+``binutils``) to facilitate such annotations. So for historic reasons,
+developers have been using ``ENTRY``, ``END``, ``ENDPROC``, and other
+annotations in assembly.  Due to the lack of their documentation, the macros
+are used in rather wrong contexts at some locations. Clearly, ``ENTRY`` was
+intended to denote the beginning of global symbols (be it data or code).
+``END`` used to mark the end of data or end of special functions with
+*non-standard* calling convention. In contrast, ``ENDPROC`` should annotate
+only ends of *standard* functions.
+
+When these macros are used correctly, they help assemblers generate a nice
+object with both sizes and types set correctly. For example, the result of
+``arch/x86/lib/putuser.S``::
+
+   Num:    Value          Size Type    Bind   Vis      Ndx Name
+    25: 0000000000000000    33 FUNC    GLOBAL DEFAULT    1 __put_user_1
+    29: 0000000000000030    37 FUNC    GLOBAL DEFAULT    1 __put_user_2
+    32: 0000000000000060    36 FUNC    GLOBAL DEFAULT    1 __put_user_4
+    35: 0000000000000090    37 FUNC    GLOBAL DEFAULT    1 __put_user_8
+
+This is not only important for debugging purposes. When there are properly
+annotated objects like this, tools can be run on them to generate more useful
+information. In particular, on properly annotated objects, ``objtool`` can be
+run to check and fix the object if needed. Currently, ``objtool`` can report
+missing frame pointer setup/destruction in functions. It can also
+automatically generate annotations for :doc:`ORC unwinder <x86/orc-unwinder>`
+for most code. Both of these are especially important to support reliable
+stack traces which are in turn necessary for :doc:`Kernel live patching
+<livepatch/livepatch>`.
+
+Caveat and Discussion
+---------------------
+As one might realize, there were only three macros previously. That is indeed
+insufficient to cover all the combinations of cases:
+
+* standard/non-standard function
+* code/data
+* global/local symbol
+
+There was a discussion_ and instead of extending the current ``ENTRY/END*``
+macros, it was decided that brand new macros should be introduced instead::
+
+    So how about using macro names that actually show the purpose, instead
+    of importing all the crappy, historic, essentially randomly chosen
+    debug symbol macro names from the binutils and older kernels?
+
+.. _discussion: https://lkml.kernel.org/r/20170217104757.28588-1-jslaby@suse.cz
+
+Macros Description
+------------------
+
+The new macros are prefixed with the ``SYM_`` prefix and can be divided into
+three main groups:
+
+1. ``SYM_FUNC_*`` -- to annotate C-like functions. This means functions with
+   standard C calling conventions, i.e. the stack contains a return address at
+   the predefined place and a return from the function can happen in a
+   standard way. When frame pointers are enabled, save/restore of frame
+   pointer shall happen at the start/end of a function, respectively, too.
+
+   Checking tools like ``objtool`` should ensure such marked functions conform
+   to these rules. The tools can also easily annotate these functions with
+   debugging information (like *ORC data*) automatically.
+
+2. ``SYM_CODE_*`` -- special functions called with special stack. Be it
+   interrupt handlers with special stack content, trampolines, or startup
+   functions.
+
+   Checking tools mostly ignore checking of these functions. But some debug
+   information still can be generated automatically. For correct debug data,
+   this code needs hints like ``UNWIND_HINT_REGS`` provided by developers.
+
+3. ``SYM_DATA*`` -- obviously data belonging to ``.data`` sections and not to
+   ``.text``. Data do not contain instructions, so they have to be treated
+   specially by the tools: they should not treat the bytes as instructions,
+   nor assign any debug information to them.
+
+Instruction Macros
+~~~~~~~~~~~~~~~~~~
+This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
+
+* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
+  most frequent markings**. They are used for functions with standard calling
+  conventions -- global and local. Like in C, they both align the functions to
+  architecture specific ``__ALIGN`` bytes. There are also ``_NOALIGN`` variants
+  for special cases where developers do not want this implicit alignment.
+
+  ``SYM_FUNC_START_WEAK`` and ``SYM_FUNC_START_WEAK_NOALIGN`` markings are
+  also offered as an assembler counterpart to the *weak* attribute known from
+  C.
+
+  All of these **shall** be coupled with ``SYM_FUNC_END``. First, it marks
+  the sequence of instructions as a function and computes its size to the
+  generated object file. Second, it also eases checking and processing such
+  object files as the tools can trivially find exact function boundaries.
+
+  So in most cases, developers should write something like in the following
+  example, having some asm instructions in between the macros, of course::
+
+    SYM_FUNC_START(function_hook)
+        ... asm insns ...
+    SYM_FUNC_END(function_hook)
+
+  In fact, this kind of annotation corresponds to the now deprecated ``ENTRY``
+  and ``ENDPROC`` macros.
+
+* ``SYM_FUNC_START_ALIAS`` and ``SYM_FUNC_START_LOCAL_ALIAS`` serve for those
+  who decided to have two or more names for one function. The typical use is::
+
+    SYM_FUNC_START_ALIAS(__memset)
+    SYM_FUNC_START(memset)
+        ... asm insns ...
+    SYM_FUNC_END(memset)
+    SYM_FUNC_END_ALIAS(__memset)
+
+  In this example, one can call ``__memset`` or ``memset`` with the same
+  result, except the debug information for the instructions is generated to
+  the object file only once -- for the non-``ALIAS`` case.
+
+* ``SYM_CODE_START`` and ``SYM_CODE_START_LOCAL`` should be used only in
+  special cases -- if you know what you are doing. This is used exclusively
+  for interrupt handlers and similar where the calling convention is not the C
+  one. ``_NOALIGN`` variants exist too. The use is the same as for the ``FUNC``
+  category above::
+
+    SYM_CODE_START_LOCAL(bad_put_user)
+        ... asm insns ...
+    SYM_CODE_END(bad_put_user)
+
+  Again, every ``SYM_CODE_START*`` **shall** be coupled by ``SYM_CODE_END``.
+
+  To some extent, this category corresponds to deprecated ``ENTRY`` and
+  ``END``. Except ``END`` had several other meanings too.
+
+* ``SYM_INNER_LABEL*`` is used to denote a label inside some
+  ``SYM_{CODE,FUNC}_START`` and ``SYM_{CODE,FUNC}_END``.  They are very similar
+  to C labels, except they can be made global. An example of use::
+
+    SYM_CODE_START(ftrace_caller)
+        /* save_mcount_regs fills in first two parameters */
+        ...
+
+    SYM_INNER_LABEL(ftrace_caller_op_ptr, SYM_L_GLOBAL)
+        /* Load the ftrace_ops into the 3rd parameter */
+        ...
+
+    SYM_INNER_LABEL(ftrace_call, SYM_L_GLOBAL)
+        call ftrace_stub
+        ...
+        retq
+    SYM_CODE_END(ftrace_caller)
+
+Data Macros
+~~~~~~~~~~~
+Similar to instructions, there is a couple of macros to describe data in the
+assembly.
+
+* ``SYM_DATA_START`` and ``SYM_DATA_START_LOCAL`` mark the start of some data
+  and shall be used in conjunction with either ``SYM_DATA_END``, or
+  ``SYM_DATA_END_LABEL``. The latter adds also a label to the end, so that
+  people can use ``lstack`` and (local) ``lstack_end`` in the following
+  example::
+
+    SYM_DATA_START_LOCAL(lstack)
+        .skip 4096
+    SYM_DATA_END_LABEL(lstack, SYM_L_LOCAL, lstack_end)
+
+* ``SYM_DATA`` and ``SYM_DATA_LOCAL`` are variants for simple, mostly one-line
+  data::
+
+    SYM_DATA(HEAP,     .long rm_heap)
+    SYM_DATA(heap_end, .long rm_stack)
+
+  In the end, they expand to ``SYM_DATA_START`` with ``SYM_DATA_END``
+  internally.
+
+Support Macros
+~~~~~~~~~~~~~~
+All the above reduce themselves to some invocation of ``SYM_START``,
+``SYM_END``, or ``SYM_ENTRY`` at last. Normally, developers should avoid using
+these.
+
+Further, in the above examples, one could see ``SYM_L_LOCAL``. There are also
+``SYM_L_GLOBAL`` and ``SYM_L_WEAK``. All are intended to denote linkage of a
+symbol marked by them. They are used either in ``_LABEL`` variants of the
+earlier macros, or in ``SYM_START``.
+
+
+Overriding Macros
+~~~~~~~~~~~~~~~~~
+Architecture can also override any of the macros in their own
+``asm/linkage.h``, including macros specifying the type of a symbol
+(``SYM_T_FUNC``, ``SYM_T_OBJECT``, and ``SYM_T_NONE``).  As every macro
+described in this file is surrounded by ``#ifdef`` + ``#endif``, it is enough
+to define the macros differently in the aforementioned architecture-dependent
+header.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/cgroups/namespace.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/cgroups/namespace.txt
@@ -0,0 +1,142 @@
+			CGroup Namespaces
+
+CGroup Namespace provides a mechanism to virtualize the view of the
+/proc/<pid>/cgroup file. The CLONE_NEWCGROUP clone-flag can be used with
+clone() and unshare() syscalls to create a new cgroup namespace.
+The process running inside the cgroup namespace will have its /proc/<pid>/cgroup
+output restricted to cgroupns-root. cgroupns-root is the cgroup of the process
+at the time of creation of the cgroup namespace.
+
+Prior to CGroup Namespace, the /proc/<pid>/cgroup file used to show complete
+path of the cgroup of a process. In a container setup (where a set of cgroups
+and namespaces are intended to isolate processes), the /proc/<pid>/cgroup file
+may leak potential system level information to the isolated processes.
+
+For Example:
+  $ cat /proc/self/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1
+
+The path '/batchjobs/container_id1' can generally be considered as system-data
+and its desirable to not expose it to the isolated process.
+
+CGroup Namespaces can be used to restrict visibility of this path.
+For Example:
+  # Before creating cgroup namespace
+  $ ls -l /proc/self/ns/cgroup
+  lrwxrwxrwx 1 root root 0 2014-07-15 10:37 /proc/self/ns/cgroup -> cgroup:[4026531835]
+  $ cat /proc/self/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1
+
+  # unshare(CLONE_NEWCGROUP) and exec /bin/bash
+  $ ~/unshare -c
+  [ns]$ ls -l /proc/self/ns/cgroup
+  lrwxrwxrwx 1 root root 0 2014-07-15 10:35 /proc/self/ns/cgroup -> cgroup:[4026532183]
+  # From within new cgroupns, process sees that its in the root cgroup
+  [ns]$ cat /proc/self/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/
+
+  # From global cgroupns:
+  $ cat /proc/<pid>/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1
+
+  # Unshare cgroupns along with userns and mountns
+  # Following calls unshare(CLONE_NEWCGROUP|CLONE_NEWUSER|CLONE_NEWNS), then
+  # sets up uid/gid map and execs /bin/bash
+  $ ~/unshare -c -u -m
+  # Originally, we were in /batchjobs/container_id1 cgroup. Mount our own cgroup
+  # hierarchy.
+  [ns]$ mount -t cgroup cgroup /tmp/cgroup
+  [ns]$ ls -l /tmp/cgroup
+  total 0
+  -r--r--r-- 1 root root 0 2014-10-13 09:32 cgroup.controllers
+  -r--r--r-- 1 root root 0 2014-10-13 09:32 cgroup.populated
+  -rw-r--r-- 1 root root 0 2014-10-13 09:25 cgroup.procs
+  -rw-r--r-- 1 root root 0 2014-10-13 09:32 cgroup.subtree_control
+
+The cgroupns-root (/batchjobs/container_id1 in above example) becomes the
+filesystem root for the namespace specific cgroupfs mount.
+
+The virtualization of /proc/self/cgroup file combined with restricting
+the view of cgroup hierarchy by namespace-private cgroupfs mount
+should provide a completely isolated cgroup view inside the container.
+
+In its current form, the cgroup namespaces patcheset provides following
+behavior:
+
+(1) The 'cgroupns-root' for a cgroup namespace is the cgroup in which
+    the process calling unshare is running.
+    For ex. if a process in /batchjobs/container_id1 cgroup calls unshare,
+    cgroup /batchjobs/container_id1 becomes the cgroupns-root.
+    For the init_cgroup_ns, this is the real root ('/') cgroup
+    (identified in code as cgrp_dfl_root.cgrp).
+
+(2) The cgroupns-root cgroup does not change even if the namespace
+    creator process later moves to a different cgroup.
+    $ ~/unshare -c # unshare cgroupns in some cgroup
+    [ns]$ cat /proc/self/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/
+    [ns]$ mkdir sub_cgrp_1
+    [ns]$ echo 0 > sub_cgrp_1/cgroup.procs
+    [ns]$ cat /proc/self/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/sub_cgrp_1
+
+(3) Each process gets its CGROUPNS specific view of /proc/<pid>/cgroup
+(a) Processes running inside the cgroup namespace will be able to see
+    cgroup paths (in /proc/self/cgroup) only inside their root cgroup
+    [ns]$ sleep 100000 &  # From within unshared cgroupns
+    [1] 7353
+    [ns]$ echo 7353 > sub_cgrp_1/cgroup.procs
+    [ns]$ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/sub_cgrp_1
+
+(b) From global cgroupns, the real cgroup path will be visible:
+    $ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1/sub_cgrp_1
+
+(c) From a sibling cgroupns (cgroupns root-ed at a different cgroup), cgroup
+    path relative to its own cgroupns-root will be shown:
+    # ns2's cgroupns-root is at '/batchjobs/container_id2'
+    [ns2]$ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/../container_id2/sub_cgrp_1
+
+    Note that the relative path always starts with '/' to indicate that its
+    relative to the cgroupns-root of the caller.
+
+(4) Processes inside a cgroupns can move in-and-out of the cgroupns-root
+    (if they have proper access to external cgroups).
+    # From inside cgroupns (with cgroupns-root at /batchjobs/container_id1), and
+    # assuming that the global hierarchy is still accessible inside cgroupns:
+    $ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/sub_cgrp_1
+    $ echo 7353 > batchjobs/container_id2/cgroup.procs
+    $ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/../container_id2
+
+    Note that this kind of setup is not encouraged. A task inside cgroupns
+    should only be exposed to its own cgroupns hierarchy. Otherwise it makes
+    the virtualization of /proc/<pid>/cgroup less useful.
+
+(5) Setns to another cgroup namespace is allowed when:
+    (a) the process has CAP_SYS_ADMIN in its current userns
+    (b) the process has CAP_SYS_ADMIN in the target cgroupns' userns
+    No implicit cgroup changes happen with attaching to another cgroupns. It
+    is expected that the somone moves the attaching process under the target
+    cgroupns-root.
+
+(6) When some thread from a multi-threaded process unshares its
+    cgroup-namespace, the new cgroupns gets applied to the entire process (all
+    the threads). For the unified-hierarchy this is expected as it only allows
+    process-level containerization.  For the legacy hierarchies this may be
+    unexpected.  So all the threads in the process will have the same cgroup.
+
+(7) The cgroup namespace is alive as long as there is atleast 1
+    process inside it. When the last process exits, the cgroup
+    namespace is destroyed. The cgroupns-root and the actual cgroups
+    remain though.
+
+(8) Namespace specific cgroup hierarchy can be mounted by a process running
+    inside cgroupns:
+    $ mount -t cgroup -o __DEVEL__sane_behavior cgroup $MOUNT_POINT
+
+    This will mount the unified cgroup hierarchy with cgroupns-root as the
+    filesystem root. The process needs CAP_SYS_ADMIN in its userns and mntns.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/core-api/printk-formats.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/core-api/printk-formats.rst
@@ -508,6 +508,12 @@
 Thanks
 ======
 
+Kernel messages:
+
+       %pj	123456
+
+       For generating the jhash of a string truncated to six digits
+
 If you add other %p extensions, please extend <lib/test_printf.c> with
 one or more test cases, if at all feasible.
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/Makefile
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/Makefile
@@ -12,7 +12,6 @@
 	$(call if_changed,chk_binding)
 
 DT_TMP_SCHEMA := processed-schema.yaml
-extra-y += $(DT_TMP_SCHEMA)
 
 quiet_cmd_mk_schema = SCHEMA  $@
       cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs)
@@ -26,8 +25,12 @@
 
 DT_SCHEMA_FILES ?= $(addprefix $(src)/,$(DT_DOCS))
 
+ifeq ($(CHECK_DTBS),)
 extra-y += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES))
 extra-y += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES))
+endif
 
 $(obj)/$(DT_TMP_SCHEMA): $(DT_SCHEMA_FILES) FORCE
 	$(call if_changed,mk_schema)
+
+extra-y += $(DT_TMP_SCHEMA)
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
@@ -46,7 +46,7 @@
 Example (R-Car H3):
 
 	usb2_clksel: clock-controller@e6590630 {
-		compatible = "renesas,r8a77950-rcar-usb2-clock-sel",
+		compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
 			     "renesas,rcar-gen3-usb2-clock-sel";
 		reg = <0 0xe6590630 0 0x02>;
 		clocks = <&cpg CPG_MOD 703>, <&usb_extal>, <&usb_xtal>;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
@@ -16,6 +16,9 @@
   Documentation/devicetree/bindings/graph.txt. This port should be connected
   to the input port of an attached HDMI or LVDS encoder chip.
 
+Optional properties:
+- pinctrl-names: Contain "default" and "sleep".
+
 Example:
 
 dpi0: dpi@1401d000 {
@@ -26,6 +29,9 @@
 		 <&mmsys CLK_MM_DPI_ENGINE>,
 		 <&apmixedsys CLK_APMIXED_TVDPLL>;
 	clock-names = "pixel", "engine", "pll";
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&dpi_pin_func>;
+	pinctrl-1 = <&dpi_pin_idle>;
 
 	port {
 		dpi0_out: endpoint {
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
@@ -20,8 +20,9 @@
 - gpio-controller : Marks the device node as a GPIO controller
 - interrupts : Interrupt specifier, see interrupt-controller/interrupts.txt
 - interrupt-controller : Mark the GPIO controller as an interrupt-controller
-- ngpios : number of GPIO lines, see gpio.txt
-  (should be multiple of 8, up to 80 pins)
+- ngpios : number of *hardware* GPIO lines, see gpio.txt. This will expose
+  2 software GPIOs per hardware GPIO: one for hardware input, one for hardware
+  output. Up to 80 pins, must be a multiple of 8.
 - clocks : A phandle to the APB clock for SGPM clock division
 - bus-frequency : SGPM CLK frequency
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
@@ -85,7 +85,7 @@
       Must be the device tree identifier of the over-sampling
       mode pins. As the line is active high, it should be marked
       GPIO_ACTIVE_HIGH.
-    maxItems: 1
+    maxItems: 3
 
   adi,sw-mode:
     description:
@@ -128,9 +128,9 @@
                 adi,conversion-start-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
                 reset-gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
                 adi,first-data-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
-                adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH
-                                                &gpio 23 GPIO_ACTIVE_HIGH
-                                                &gpio 26 GPIO_ACTIVE_HIGH>;
+                adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>,
+                                               <&gpio 23 GPIO_ACTIVE_HIGH>,
+                                               <&gpio 26 GPIO_ACTIVE_HIGH>;
                 standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
                 adi,sw-mode;
         };
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
@@ -21,7 +21,7 @@
 
 Example:
 	mux: mux-controller {
-		compatible = "mux-gpio";
+		compatible = "gpio-mux";
 		#mux-control-cells = <0>;
 
 		mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
@@ -87,7 +87,7 @@
 		ranges;
 
 		/* APU<->RPU0 IPI mailbox controller */
-		ipi_mailbox_rpu0: mailbox@ff90400 {
+		ipi_mailbox_rpu0: mailbox@ff990400 {
 			reg = <0xff990400 0x20>,
 			      <0xff990420 0x20>,
 			      <0xff990080 0x20>,
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ahc1ec0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Advantech Embedded Controller (AHC1EC0)
+
+maintainers:
+  - Campion Kang <campion.kang@advantech.com.tw>
+
+description: |
+  AHC1EC0 is one of the embedded controllers used by Advantech to provide several
+  functions such as watchdog, hwmon, brightness, etc. Advantech related applications
+  can control the whole system via these functions.
+
+properties:
+  compatible:
+    const: advantech,ahc1ec0
+
+  advantech,sub-dev-nb:
+    description:
+      The number of sub-devices specified in the platform.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maxItems: 1
+
+  advantech,sub-dev:
+    description:
+      A list of the sub-devices supported in the platform. Defines for the
+      appropriate values can found in dt-bindings/mfd/ahc1ec0-dt.h.
+    $ref: "/schemas/types.yaml#/definitions/uint32-array"
+    minItems: 1
+    maxItems: 6
+
+  advantech,hwmon-profile:
+    description:
+      The number of sub-devices specified in the platform. Defines for the
+      hwmon profiles can found in dt-bindings/mfd/ahc1ec0-dt.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maxItems: 1
+
+required:
+  - compatible
+  - advantech,sub-dev-nb
+  - advantech,sub-dev
+
+if:
+  properties:
+    advantech,sub-dev:
+      contains:
+        const: 0x3
+then:
+  required:
+    - advantech,hwmon-profile
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/mfd/ahc1ec0-dt.h>
+    ahc1ec0 {
+        compatible = "advantech,ahc1ec0";
+
+        advantech,sub-dev-nb = <2>;
+        advantech,sub-dev = <AHC1EC0_SUBDEV_HWMON
+                             AHC1EC0_SUBDEV_WDT>;
+
+        advantech,hwmon-profile = <AHC1EC0_HWMON_PRO_UNO2271G>;
+    };
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/mmc/mtk-sd.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/mmc/mtk-sd.txt
@@ -49,6 +49,8 @@
 		     error caused by stop clock(fifo full)
 		     Valid range = [0:0x7]. if not present, default value is 0.
 		     applied to compatible "mediatek,mt2701-mmc".
+- resets: Phandle and reset specifier pair to softreset line of MSDC IP.
+- reset-names: Should be "hrst".
 
 Examples:
 mmc0: mmc@11230000 {
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
@@ -15,8 +15,15 @@
   - "nvidia,tegra210-sdhci": for Tegra210
   - "nvidia,tegra186-sdhci": for Tegra186
   - "nvidia,tegra194-sdhci": for Tegra194
-- clocks : Must contain one entry, for the module clock.
-  See ../clocks/clock-bindings.txt for details.
+- clocks: For Tegra210, Tegra186 and Tegra194 must contain two entries.
+	  One for the module clock and one for the timeout clock.
+	  For all other Tegra devices, must contain a single entry for
+	  the module clock. See ../clocks/clock-bindings.txt for details.
+- clock-names: For Tegra210, Tegra186 and Tegra194 must contain the
+	       strings 'sdhci' and 'tmclk' to represent the module and
+	       the timeout clocks, respectively.
+	       For all other Tegra devices must contain the string 'sdhci'
+	       to represent the module clock.
 - resets : Must contain an entry for each entry in reset-names.
   See ../reset/reset.txt for details.
 - reset-names : Must include the following entries:
@@ -99,7 +106,7 @@
 
 Example:
 sdhci@700b0000 {
-	compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
+	compatible = "nvidia,tegra124-sdhci";
 	reg = <0x0 0x700b0000 0x0 0x200>;
 	interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
 	clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
@@ -107,6 +114,25 @@
 	resets = <&tegra_car 14>;
 	reset-names = "sdhci";
 	pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+	pinctrl-0 = <&sdmmc1_3v3>;
+	pinctrl-1 = <&sdmmc1_1v8>;
+	nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
+	nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
+	nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
+	nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
+	status = "disabled";
+};
+
+sdhci@700b0000 {
+	compatible = "nvidia,tegra210-sdhci";
+	reg = <0x0 0x700b0000 0x0 0x200>;
+	interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+	clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
+		 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+	clock-names = "sdhci", "tmclk";
+	resets = <&tegra_car 14>;
+	reset-names = "sdhci";
+	pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
 	pinctrl-0 = <&sdmmc1_3v3>;
 	pinctrl-1 = <&sdmmc1_1v8>;
 	nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/btusb.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/btusb.txt
@@ -38,7 +38,7 @@
 	compatible = "usb1286,204e";
 	reg = <1>;
 	interrupt-parent = <&gpio0>;
-	interrupt-name = "wakeup";
+	interrupt-names = "wakeup";
 	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
     };
 };
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
@@ -33,7 +33,7 @@
 		spi-max-frequency = <10000000>;
 		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
 		interrupt-parent = <&gpio1>;
-		interrupts = <14 GPIO_ACTIVE_LOW>;
+		interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
 		device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
 		device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
 		reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/ethernet-controller.yaml
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/ethernet-controller.yaml
@@ -190,6 +190,11 @@
                 Indicates that full-duplex is used. When absent, half
                 duplex is assumed.
 
+            pause:
+              $ref: /schemas/types.yaml#definitions/flag
+              description:
+                Indicates that pause should be enabled.
+
             asym-pause:
               $ref: /schemas/types.yaml#definitions/flag
               description:
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/fsl-fman.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/fsl-fman.txt
@@ -110,6 +110,13 @@
 		Usage: required
 		Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt
 
+- fsl,erratum-a050385
+		Usage: optional
+		Value type: boolean
+		Definition: A boolean property. Indicates the presence of the
+		erratum A050385 which indicates that DMA transactions that are
+		split can result in a FMan lock.
+
 =============================================================================
 FMan MURAM Node
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
@@ -25,7 +25,7 @@
 		clock-frequency = <100000>;
 
 		interrupt-parent = <&gpio1>;
-		interrupts = <29 GPIO_ACTIVE_HIGH>;
+		interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
 
 		enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
 		firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/nfc/pn544.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/nfc/pn544.txt
@@ -25,7 +25,7 @@
 		clock-frequency = <400000>;
 
 		interrupt-parent = <&gpio1>;
-		interrupts = <17 GPIO_ACTIVE_HIGH>;
+		interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
 
 		enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
 		firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -347,6 +347,7 @@
               - st,spear600-gmac
 
     then:
+      properties:
         snps,tso:
           $ref: /schemas/types.yaml#definitions/flag
           description:
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
@@ -81,6 +81,12 @@
 	Definition: Name of external front end module used. Some valid FEM names
 		    for example: "microsemi-lx5586", "sky85703-11"
 		    and "sky85803" etc.
+- qcom,snoc-host-cap-8bit-quirk:
+	Usage: Optional
+	Value type: <empty>
+	Definition: Quirk specifying that the firmware expects the 8bit version
+		    of the host capability QMI request
+
 
 Example (to supply PCI based wifi block details):
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
@@ -118,7 +118,7 @@
 --------
 
 	pcie@14180000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
 		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x38000000 0x0 0x00040000   /* configuration space (256K) */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
@@ -22,6 +22,6 @@
 	};
 
 	&ethernet_switch {
-		resets = <&reset>;
+		resets = <&reset 26>;
 		reset-names = "switch";
 	};
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/rng/omap3_rom_rng.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/rng/omap3_rom_rng.txt
@@ -0,0 +1,27 @@
+OMAP ROM RNG driver binding
+
+Secure SoCs may provide RNG via secure ROM calls like Nokia N900 does. The
+implementation can depend on the SoC secure ROM used.
+
+- compatible:
+	Usage: required
+	Value type: <string>
+	Definition: must be "nokia,n900-rom-rng"
+
+- clocks:
+	Usage: required
+	Value type: <prop-encoded-array>
+	Definition: reference to the the RNG interface clock
+
+- clock-names:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "ick"
+
+Example:
+
+	rom_rng: rng {
+		compatible = "nokia,n900-rom-rng";
+		clocks = <&rng_ick>;
+		clock-names = "ick";
+	};
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/sound/mt8183-mt6358-ts3a227-max98357.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/sound/mt8183-mt6358-ts3a227-max98357.txt
@@ -2,9 +2,11 @@
 
 Required properties:
 - compatible : "mediatek,mt8183_mt6358_ts3a227_max98357"
-- mediatek,headset-codec: the phandles of ts3a227 codecs
 - mediatek,platform: the phandle of MT8183 ASoC platform
 
+Optional properties:
+- mediatek,headset-codec: the phandles of ts3a227 codecs
+
 Example:
 
 	sound {
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/sound/wm8994.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/sound/wm8994.txt
@@ -14,9 +14,15 @@
   - #gpio-cells : Must be 2. The first cell is the pin number and the
     second cell is used to specify optional parameters (currently unused).
 
-  - AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
-    SPKVDD1-supply, SPKVDD2-supply : power supplies for the device, as covered
-    in Documentation/devicetree/bindings/regulator/regulator.txt
+  - power supplies for the device, as covered in
+    Documentation/devicetree/bindings/regulator/regulator.txt, depending
+    on compatible:
+    - for wlf,wm1811 and wlf,wm8958:
+      AVDD1-supply, AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply,
+      DCVDD-supply, CPVDD-supply, SPKVDD1-supply, SPKVDD2-supply
+    - for wlf,wm8994:
+      AVDD1-supply, AVDD2-supply, DBVDD-supply, DCVDD-supply, CPVDD-supply,
+      SPKVDD1-supply, SPKVDD2-supply
 
 Optional properties:
 
@@ -73,11 +79,11 @@
 
 	lineout1-se;
 
+	AVDD1-supply = <&regulator>;
 	AVDD2-supply = <&regulator>;
 	CPVDD-supply = <&regulator>;
-	DBVDD1-supply = <&regulator>;
-	DBVDD2-supply = <&regulator>;
-	DBVDD3-supply = <&regulator>;
+	DBVDD-supply = <&regulator>;
+	DCVDD-supply = <&regulator>;
 	SPKVDD1-supply = <&regulator>;
 	SPKVDD2-supply = <&regulator>;
 };
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/bindings/usb/dwc3.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -75,6 +75,8 @@
 			from P0 to P1/P2/P3 without delay.
  - snps,dis-tx-ipgap-linecheck-quirk: when set, disable u2mac linestate check
 			during HS transmit.
+ - snps,parkmode-disable-ss-quirk: when set, all SuperSpeed bus instances in
+			park mode are disabled.
  - snps,dis_metastability_quirk: when set, disable metastability workaround.
 			CAUTION: use only if you are absolutely sure of it.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
--- linux-gkeop-5.4-5.4.0.orig/Documentation/devicetree/writing-schema.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/devicetree/writing-schema.rst
@@ -130,11 +130,13 @@
 
     make dt_binding_check
 
-In order to perform validation of DT source files, use the `dtbs_check` target::
+In order to perform validation of DT source files, use the ``dtbs_check`` target::
 
     make dtbs_check
 
-This will first run the `dt_binding_check` which generates the processed schema.
+Note that ``dtbs_check`` will skip any binding schema files with errors. It is
+necessary to use ``dt_binding_check`` to get all the validation errors in the
+binding schema files.
 
 It is also possible to run checks with a single schema file by setting the
 ``DT_SCHEMA_FILES`` variable to a specific schema file.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/driver-api/libata.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/driver-api/libata.rst
@@ -250,7 +250,7 @@
 
 ::
 
-    void (*qc_prep) (struct ata_queued_cmd *qc);
+    enum ata_completion_errors (*qc_prep) (struct ata_queued_cmd *qc);
     int (*qc_issue) (struct ata_queued_cmd *qc);
 
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/fb/fbcon.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/fb/fbcon.rst
@@ -127,7 +127,7 @@
 	is typically located on the same video card.  Thus, the consoles that
 	are controlled by the VGA console will be garbled.
 
-4. fbcon=rotate:<n>
+5. fbcon=rotate:<n>
 
 	This option changes the orientation angle of the console display. The
 	value 'n' accepts the following:
@@ -152,21 +152,21 @@
 	Actually, the underlying fb driver is totally ignorant of console
 	rotation.
 
-5. fbcon=margin:<color>
+6. fbcon=margin:<color>
 
 	This option specifies the color of the margins. The margins are the
 	leftover area at the right and the bottom of the screen that are not
 	used by text. By default, this area will be black. The 'color' value
 	is an integer number that depends on the framebuffer driver being used.
 
-6. fbcon=nodefer
+7. fbcon=nodefer
 
 	If the kernel is compiled with deferred fbcon takeover support, normally
 	the framebuffer contents, left in place by the firmware/bootloader, will
 	be preserved until there actually is some text is output to the console.
 	This option causes fbcon to bind immediately to the fbdev device.
 
-7. fbcon=logo-pos:<location>
+8. fbcon=logo-pos:<location>
 
 	The only possible 'location' is 'center' (without quotes), and when
 	given, the bootup logo is moved from the default top-left corner
--- linux-gkeop-5.4-5.4.0.orig/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -24,7 +24,7 @@
     |      parisc: |  ok  |
     |     powerpc: |  ok  |
     |       riscv: | TODO |
-    |        s390: | TODO |
+    |        s390: |  ok  |
     |          sh: | TODO |
     |       sparc: | TODO |
     |          um: | TODO |
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/affs.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/affs.txt
@@ -93,13 +93,15 @@
 
   - R maps to r for user, group and others. On directories, R implies x.
 
-  - If both W and D are allowed, w will be set.
+  - W maps to w.
 
   - E maps to x.
 
-  - H and P are always retained and ignored under Linux.
+  - D is ignored.
 
-  - A is always reset when a file is written to.
+  - H, S and P are always retained and ignored under Linux.
+
+  - A is cleared when a file is written to.
 
 User id and group id will be used unless set[gu]id are given as mount
 options. Since most of the Amiga file systems are single user systems
@@ -111,11 +113,13 @@
 
 The Linux rwxrwxrwx file mode is handled as follows:
 
-  - r permission will set R for user, group and others.
+  - r permission will allow R for user, group and others.
+
+  - w permission will allow W for user, group and others.
 
-  - w permission will set W and D for user, group and others.
+  - x permission of the user will allow E for plain files.
 
-  - x permission of the user will set E for plain files.
+  - D will be allowed for user, group and others.
 
   - All other flags (suid, sgid, ...) are ignored and will
     not be retained.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/README
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/README
@@ -0,0 +1,401 @@
+
+Aufs5 -- advanced multi layered unification filesystem version 5.x
+http://aufs.sf.net
+Junjiro R. Okajima
+
+
+0. Introduction
+----------------------------------------
+In the early days, aufs was entirely re-designed and re-implemented
+Unionfs Version 1.x series. Adding many original ideas, approaches,
+improvements and implementations, it became totally different from
+Unionfs while keeping the basic features.
+Later, Unionfs Version 2.x series began taking some of the same
+approaches to aufs1's.
+Unionfs was being developed by Professor Erez Zadok at Stony Brook
+University and his team.
+
+Aufs5 supports linux-v5.0 and later, If you want older kernel version
+support,
+- for linux-v4.x series, try aufs4-linux.git or aufs4-standalone.git
+- for linux-v3.x series, try aufs3-linux.git or aufs3-standalone.git
+- for linux-v2.6.16 and later, try aufs2-2.6.git, aufs2-standalone.git
+  or aufs1 from CVS on SourceForge.
+
+Note: it becomes clear that "Aufs was rejected. Let's give it up."
+      According to Christoph Hellwig, linux rejects all union-type
+      filesystems but UnionMount.
+<http://marc.info/?l=linux-kernel&m=123938533724484&w=2>
+
+PS. Al Viro seems have a plan to merge aufs as well as overlayfs and
+    UnionMount, and he pointed out an issue around a directory mutex
+    lock and aufs addressed it. But it is still unsure whether aufs will
+    be merged (or any other union solution).
+<http://marc.info/?l=linux-kernel&m=136312705029295&w=1>
+
+
+1. Features
+----------------------------------------
+- unite several directories into a single virtual filesystem. The member
+  directory is called as a branch.
+- you can specify the permission flags to the branch, which are 'readonly',
+  'readwrite' and 'whiteout-able.'
+- by upper writable branch, internal copyup and whiteout, files/dirs on
+  readonly branch are modifiable logically.
+- dynamic branch manipulation, add, del.
+- etc...
+
+Also there are many enhancements in aufs, such as:
+- test only the highest one for the directory permission (dirperm1)
+- copyup on open (coo=)
+- 'move' policy for copy-up between two writable branches, after
+  checking free space.
+- xattr, acl
+- readdir(3) in userspace.
+- keep inode number by external inode number table
+- keep the timestamps of file/dir in internal copyup operation
+- seekable directory, supporting NFS readdir.
+- whiteout is hardlinked in order to reduce the consumption of inodes
+  on branch
+- do not copyup, nor create a whiteout when it is unnecessary
+- revert a single systemcall when an error occurs in aufs
+- remount interface instead of ioctl
+- maintain /etc/mtab by an external command, /sbin/mount.aufs.
+- loopback mounted filesystem as a branch
+- kernel thread for removing the dir who has a plenty of whiteouts
+- support copyup sparse file (a file which has a 'hole' in it)
+- default permission flags for branches
+- selectable permission flags for ro branch, whether whiteout can
+  exist or not
+- export via NFS.
+- support <sysfs>/fs/aufs and <debugfs>/aufs.
+- support multiple writable branches, some policies to select one
+  among multiple writable branches.
+- a new semantics for link(2) and rename(2) to support multiple
+  writable branches.
+- no glibc changes are required.
+- pseudo hardlink (hardlink over branches)
+- allow a direct access manually to a file on branch, e.g. bypassing aufs.
+  including NFS or remote filesystem branch.
+- userspace wrapper for pathconf(3)/fpathconf(3) with _PC_LINK_MAX.
+- and more...
+
+Currently these features are dropped temporary from aufs5.
+See design/08plan.txt in detail.
+- nested mount, i.e. aufs as readonly no-whiteout branch of another aufs
+  (robr)
+- statistics of aufs thread (/sys/fs/aufs/stat)
+
+Features or just an idea in the future (see also design/*.txt),
+- reorder the branch index without del/re-add.
+- permanent xino files for NFSD
+- an option for refreshing the opened files after add/del branches
+- light version, without branch manipulation. (unnecessary?)
+- copyup in userspace
+- inotify in userspace
+- readv/writev
+
+
+2. Download
+----------------------------------------
+There are three GIT trees for aufs5, aufs5-linux.git,
+aufs5-standalone.git, and aufs-util.git. Note that there is no "5" in
+"aufs-util.git."
+While the aufs-util is always necessary, you need either of aufs5-linux
+or aufs5-standalone.
+
+The aufs5-linux tree includes the whole linux mainline GIT tree,
+git://git.kernel.org/.../torvalds/linux.git.
+And you cannot select CONFIG_AUFS_FS=m for this version, eg. you cannot
+build aufs5 as an external kernel module.
+Several extra patches are not included in this tree. Only
+aufs5-standalone tree contains them. They are described in the later
+section "Configuration and Compilation."
+
+On the other hand, the aufs5-standalone tree has only aufs source files
+and necessary patches, and you can select CONFIG_AUFS_FS=m.
+But you need to apply all aufs patches manually.
+
+You will find GIT branches whose name is in form of "aufs5.x" where "x"
+represents the linux kernel version, "linux-5.x". For instance,
+"aufs5.0" is for linux-5.0. For latest "linux-5.x-rcN", use
+"aufs5.x-rcN" branch.
+
+o aufs5-linux tree
+$ git clone --reference /your/linux/git/tree \
+	git://github.com/sfjro/aufs5-linux.git aufs5-linux.git
+- if you don't have linux GIT tree, then remove "--reference ..."
+$ cd aufs5-linux.git
+$ git checkout origin/aufs5.0
+
+Or You may want to directly git-pull aufs into your linux GIT tree, and
+leave the patch-work to GIT.
+$ cd /your/linux/git/tree
+$ git remote add aufs5 git://github.com/sfjro/aufs5-linux.git
+$ git fetch aufs5
+$ git checkout -b my5.0 v5.0
+$ (add your local change...)
+$ git pull aufs5 aufs5.0
+- now you have v5.0 + your_changes + aufs5.0 in you my5.0 branch.
+- you may need to solve some conflicts between your_changes and
+  aufs5.0. in this case, git-rerere is recommended so that you can
+  solve the similar conflicts automatically when you upgrade to 5.1 or
+  later in the future.
+
+o aufs5-standalone tree
+$ git clone git://github.com/sfjro/aufs5-standalone.git aufs5-standalone.git
+$ cd aufs5-standalone.git
+$ git checkout origin/aufs5.0
+
+o aufs-util tree
+$ git clone git://git.code.sf.net/p/aufs/aufs-util aufs-util.git
+- note that the public aufs-util.git is on SourceForge instead of
+  GitHUB.
+$ cd aufs-util.git
+$ git checkout origin/aufs5.0
+
+Note: The 5.x-rcN branch is to be used with `rc' kernel versions ONLY.
+The minor version number, 'x' in '5.x', of aufs may not always
+follow the minor version number of the kernel.
+Because changes in the kernel that cause the use of a new
+minor version number do not always require changes to aufs-util.
+
+Since aufs-util has its own minor version number, you may not be
+able to find a GIT branch in aufs-util for your kernel's
+exact minor version number.
+In this case, you should git-checkout the branch for the
+nearest lower number.
+
+For (an unreleased) example:
+If you are using "linux-5.10" and the "aufs5.10" branch
+does not exist in aufs-util repository, then "aufs5.9", "aufs5.8"
+or something numerically smaller is the branch for your kernel.
+
+Also you can view all branches by
+	$ git branch -a
+
+
+3. Configuration and Compilation
+----------------------------------------
+Make sure you have git-checkout'ed the correct branch.
+
+For aufs5-linux tree,
+- enable CONFIG_AUFS_FS.
+- set other aufs configurations if necessary.
+
+For aufs5-standalone tree,
+There are several ways to build.
+
+1.
+- apply ./aufs5-kbuild.patch to your kernel source files.
+- apply ./aufs5-base.patch too.
+- apply ./aufs5-mmap.patch too.
+- apply ./aufs5-standalone.patch too, if you have a plan to set
+  CONFIG_AUFS_FS=m. otherwise you don't need ./aufs5-standalone.patch.
+- copy ./{Documentation,fs,include/uapi/linux/aufs_type.h} files to your
+  kernel source tree. Never copy $PWD/include/uapi/linux/Kbuild.
+- enable CONFIG_AUFS_FS, you can select either
+  =m or =y.
+- and build your kernel as usual.
+- install the built kernel.
+- install the header files too by "make headers_install" to the
+  directory where you specify. By default, it is $PWD/usr.
+  "make help" shows a brief note for headers_install.
+- and reboot your system.
+
+2.
+- module only (CONFIG_AUFS_FS=m).
+- apply ./aufs5-base.patch to your kernel source files.
+- apply ./aufs5-mmap.patch too.
+- apply ./aufs5-standalone.patch too.
+- build your kernel, don't forget "make headers_install", and reboot.
+- edit ./config.mk and set other aufs configurations if necessary.
+  Note: You should read $PWD/fs/aufs/Kconfig carefully which describes
+  every aufs configurations.
+- build the module by simple "make".
+- you can specify ${KDIR} make variable which points to your kernel
+  source tree.
+- install the files
+  + run "make install" to install the aufs module, or copy the built
+    $PWD/aufs.ko to /lib/modules/... and run depmod -a (or reboot simply).
+  + run "make install_headers" (instead of headers_install) to install
+    the modified aufs header file (you can specify DESTDIR which is
+    available in aufs standalone version's Makefile only), or copy
+    $PWD/usr/include/linux/aufs_type.h to /usr/include/linux or wherever
+    you like manually. By default, the target directory is $PWD/usr.
+- no need to apply aufs5-kbuild.patch, nor copying source files to your
+  kernel source tree.
+
+Note: The header file aufs_type.h is necessary to build aufs-util
+      as well as "make headers_install" in the kernel source tree.
+      headers_install is subject to be forgotten, but it is essentially
+      necessary, not only for building aufs-util.
+      You may not meet problems without headers_install in some older
+      version though.
+
+And then,
+- read README in aufs-util, build and install it
+- note that your distribution may contain an obsoleted version of
+  aufs_type.h in /usr/include/linux or something. When you build aufs
+  utilities, make sure that your compiler refers the correct aufs header
+  file which is built by "make headers_install."
+- if you want to use readdir(3) in userspace or pathconf(3) wrapper,
+  then run "make install_ulib" too. And refer to the aufs manual in
+  detail.
+
+There several other patches in aufs5-standalone.git. They are all
+optional. When you meet some problems, they will help you.
+- aufs5-loopback.patch
+  Supports a nested loopback mount in a branch-fs. This patch is
+  unnecessary until aufs produces a message like "you may want to try
+  another patch for loopback file".
+- proc_mounts.patch
+  When there are many mountpoints and many mount(2)/umount(2) are
+  running, then /proc/mounts may not show the all mountpoints.  This
+  patch makes /proc/mounts always show the full mountpoints list.
+  If you don't want to apply this patch and meet such problem, then you
+  need to increase the value of 'ProcMounts_Times' make-variable in
+  aufs-util.git as a second best solution.
+- vfs-ino.patch
+  Modifies a system global kernel internal function get_next_ino() in
+  order to stop assigning 0 for an inode-number. Not directly related to
+  aufs, but recommended generally.
+- tmpfs-idr.patch
+  Keeps the tmpfs inode number as the lowest value. Effective to reduce
+  the size of aufs XINO files for tmpfs branch. Also it prevents the
+  duplication of inode number, which is important for backup tools and
+  other utilities. When you find aufs XINO files for tmpfs branch
+  growing too much, try this patch.
+- lockdep-debug.patch
+  Because aufs is not only an ordinary filesystem (callee of VFS), but
+  also a caller of VFS functions for branch filesystems, subclassing of
+  the internal locks for LOCKDEP is necessary. LOCKDEP is a debugging
+  feature of linux kernel. If you enable CONFIG_LOCKDEP, then you will
+  need to apply this debug patch to expand several constant values.
+  If you don't know what LOCKDEP is, then you don't have apply this
+  patch.
+
+
+4. Usage
+----------------------------------------
+At first, make sure aufs-util are installed, and please read the aufs
+manual, aufs.5 in aufs-util.git tree.
+$ man -l aufs.5
+
+And then,
+$ mkdir /tmp/rw /tmp/aufs
+# mount -t aufs -o br=/tmp/rw:${HOME} none /tmp/aufs
+
+Here is another example. The result is equivalent.
+# mount -t aufs -o br=/tmp/rw=rw:${HOME}=ro none /tmp/aufs
+  Or
+# mount -t aufs -o br:/tmp/rw none /tmp/aufs
+# mount -o remount,append:${HOME} /tmp/aufs
+
+Then, you can see whole tree of your home dir through /tmp/aufs. If
+you modify a file under /tmp/aufs, the one on your home directory is
+not affected, instead the same named file will be newly created under
+/tmp/rw. And all of your modification to a file will be applied to
+the one under /tmp/rw. This is called the file based Copy on Write
+(COW) method.
+Aufs mount options are described in aufs.5.
+If you run chroot or something and make your aufs as a root directory,
+then you need to customize the shutdown script. See the aufs manual in
+detail.
+
+Additionally, there are some sample usages of aufs which are a
+diskless system with network booting, and LiveCD over NFS.
+See sample dir in CVS tree on SourceForge.
+
+
+5. Contact
+----------------------------------------
+When you have any problems or strange behaviour in aufs, please let me
+know with:
+- /proc/mounts (instead of the output of mount(8))
+- /sys/module/aufs/*
+- /sys/fs/aufs/* (if you have them)
+- /debug/aufs/* (if you have them)
+- linux kernel version
+  if your kernel is not plain, for example modified by distributor,
+  the url where i can download its source is necessary too.
+- aufs version which was printed at loading the module or booting the
+  system, instead of the date you downloaded.
+- configuration (define/undefine CONFIG_AUFS_xxx)
+- kernel configuration or /proc/config.gz (if you have it)
+- LSM (linux security module, if you are using)
+- behaviour which you think to be incorrect
+- actual operation, reproducible one is better
+- mailto: aufs-users at lists.sourceforge.net
+
+Usually, I don't watch the Public Areas(Bugs, Support Requests, Patches,
+and Feature Requests) on SourceForge. Please join and write to
+aufs-users ML.
+
+
+6. Acknowledgements
+----------------------------------------
+Thanks to everyone who have tried and are using aufs, whoever
+have reported a bug or any feedback.
+
+Especially donators:
+Tomas Matejicek(slax.org) made a donation (much more than once).
+	Since Apr 2010, Tomas M (the author of Slax and Linux Live
+	scripts) is making "doubling" donations.
+	Unfortunately I cannot list all of the donators, but I really
+	appreciate.
+	It ends Aug 2010, but the ordinary donation URL is still available.
+	<http://sourceforge.net/donate/index.php?group_id=167503>
+Dai Itasaka made a donation (2007/8).
+Chuck Smith made a donation (2008/4, 10 and 12).
+Henk Schoneveld made a donation (2008/9).
+Chih-Wei Huang, ASUS, CTC donated Eee PC 4G (2008/10).
+Francois Dupoux made a donation (2008/11).
+Bruno Cesar Ribas and Luis Carlos Erpen de Bona, C3SL serves public
+	aufs2 GIT tree (2009/2).
+William Grant made a donation (2009/3).
+Patrick Lane made a donation (2009/4).
+The Mail Archive (mail-archive.com) made donations (2009/5).
+Nippy Networks (Ed Wildgoose) made a donation (2009/7).
+New Dream Network, LLC (www.dreamhost.com) made a donation (2009/11).
+Pavel Pronskiy made a donation (2011/2).
+Iridium and Inmarsat satellite phone retailer (www.mailasail.com), Nippy
+	Networks (Ed Wildgoose) made a donation for hardware (2011/3).
+Max Lekomcev (DOM-TV project) made a donation (2011/7, 12, 2012/3, 6 and
+11).
+Sam Liddicott made a donation (2011/9).
+Era Scarecrow made a donation (2013/4).
+Bor Ratajc made a donation (2013/4).
+Alessandro Gorreta made a donation (2013/4).
+POIRETTE Marc made a donation (2013/4).
+Alessandro Gorreta made a donation (2013/4).
+lauri kasvandik made a donation (2013/5).
+"pemasu from Finland" made a donation (2013/7).
+The Parted Magic Project made a donation (2013/9 and 11).
+Pavel Barta made a donation (2013/10).
+Nikolay Pertsev made a donation (2014/5).
+James B made a donation (2014/7 and 2015/7).
+Stefano Di Biase made a donation (2014/8).
+Daniel Epellei made a donation (2015/1).
+OmegaPhil made a donation (2016/1, 2018/4).
+Tomasz Szewczyk made a donation (2016/4).
+James Burry made a donation (2016/12).
+Carsten Rose made a donation (2018/9).
+Porteus Kiosk made a donation (2018/10).
+
+Thank you very much.
+Donations are always, including future donations, very important and
+helpful for me to keep on developing aufs.
+
+
+7.
+----------------------------------------
+If you are an experienced user, no explanation is needed. Aufs is
+just a linux filesystem.
+
+
+Enjoy!
+
+# Local variables: ;
+# mode: text;
+# End: ;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/01intro.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/01intro.txt
@@ -0,0 +1,171 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Introduction
+----------------------------------------
+
+aufs [ei ju: ef es] | /ey-yoo-ef-es/ | [a u f s]
+1. abbrev. for "advanced multi-layered unification filesystem".
+2. abbrev. for "another unionfs".
+3. abbrev. for "auf das" in German which means "on the" in English.
+   Ex. "Butter aufs Brot"(G) means "butter onto bread"(E).
+   But "Filesystem aufs Filesystem" is hard to understand.
+4. abbrev. for "African Urban Fashion Show".
+
+AUFS is a filesystem with features:
+- multi layered stackable unification filesystem, the member directory
+  is called as a branch.
+- branch permission and attribute, 'readonly', 'real-readonly',
+  'readwrite', 'whiteout-able', 'link-able whiteout', etc. and their
+  combination.
+- internal "file copy-on-write".
+- logical deletion, whiteout.
+- dynamic branch manipulation, adding, deleting and changing permission.
+- allow bypassing aufs, user's direct branch access.
+- external inode number translation table and bitmap which maintains the
+  persistent aufs inode number.
+- seekable directory, including NFS readdir.
+- file mapping, mmap and sharing pages.
+- pseudo-link, hardlink over branches.
+- loopback mounted filesystem as a branch.
+- several policies to select one among multiple writable branches.
+- revert a single systemcall when an error occurs in aufs.
+- and more...
+
+
+Multi Layered Stackable Unification Filesystem
+----------------------------------------------------------------------
+Most people already knows what it is.
+It is a filesystem which unifies several directories and provides a
+merged single directory. When users access a file, the access will be
+passed/re-directed/converted (sorry, I am not sure which English word is
+correct) to the real file on the member filesystem. The member
+filesystem is called 'lower filesystem' or 'branch' and has a mode
+'readonly' and 'readwrite.' And the deletion for a file on the lower
+readonly branch is handled by creating 'whiteout' on the upper writable
+branch.
+
+On LKML, there have been discussions about UnionMount (Jan Blunck,
+Bharata B Rao and Valerie Aurora) and Unionfs (Erez Zadok). They took
+different approaches to implement the merged-view.
+The former tries putting it into VFS, and the latter implements as a
+separate filesystem.
+(If I misunderstand about these implementations, please let me know and
+I shall correct it. Because it is a long time ago when I read their
+source files last time).
+
+UnionMount's approach will be able to small, but may be hard to share
+branches between several UnionMount since the whiteout in it is
+implemented in the inode on branch filesystem and always
+shared. According to Bharata's post, readdir does not seems to be
+finished yet.
+There are several missing features known in this implementations such as
+- for users, the inode number may change silently. eg. copy-up.
+- link(2) may break by copy-up.
+- read(2) may get an obsoleted filedata (fstat(2) too).
+- fcntl(F_SETLK) may be broken by copy-up.
+- unnecessary copy-up may happen, for example mmap(MAP_PRIVATE) after
+  open(O_RDWR).
+
+In linux-3.18, "overlay" filesystem (formerly known as "overlayfs") was
+merged into mainline. This is another implementation of UnionMount as a
+separated filesystem. All the limitations and known problems which
+UnionMount are equally inherited to "overlay" filesystem.
+
+Unionfs has a longer history. When I started implementing a stackable
+filesystem (Aug 2005), it already existed. It has virtual super_block,
+inode, dentry and file objects and they have an array pointing lower
+same kind objects. After contributing many patches for Unionfs, I
+re-started my project AUFS (Jun 2006).
+
+In AUFS, the structure of filesystem resembles to Unionfs, but I
+implemented my own ideas, approaches and enhancements and it became
+totally different one.
+
+Comparing DM snapshot and fs based implementation
+- the number of bytes to be copied between devices is much smaller.
+- the type of filesystem must be one and only.
+- the fs must be writable, no readonly fs, even for the lower original
+  device. so the compression fs will not be usable. but if we use
+  loopback mount, we may address this issue.
+  for instance,
+	mount /cdrom/squashfs.img /sq
+	losetup /sq/ext2.img
+	losetup /somewhere/cow
+	dmsetup "snapshot /dev/loop0 /dev/loop1 ..."
+- it will be difficult (or needs more operations) to extract the
+  difference between the original device and COW.
+- DM snapshot-merge may help a lot when users try merging. in the
+  fs-layer union, users will use rsync(1).
+
+You may want to read my old paper "Filesystems in LiveCD"
+(http://aufs.sourceforge.net/aufs2/report/sq/sq.pdf).
+
+
+Several characters/aspects/persona of aufs
+----------------------------------------------------------------------
+
+Aufs has several characters, aspects or persona.
+1. a filesystem, callee of VFS helper
+2. sub-VFS, caller of VFS helper for branches
+3. a virtual filesystem which maintains persistent inode number
+4. reader/writer of files on branches such like an application
+
+1. Callee of VFS Helper
+As an ordinary linux filesystem, aufs is a callee of VFS. For instance,
+unlink(2) from an application reaches sys_unlink() kernel function and
+then vfs_unlink() is called. vfs_unlink() is one of VFS helper and it
+calls filesystem specific unlink operation. Actually aufs implements the
+unlink operation but it behaves like a redirector.
+
+2. Caller of VFS Helper for Branches
+aufs_unlink() passes the unlink request to the branch filesystem as if
+it were called from VFS. So the called unlink operation of the branch
+filesystem acts as usual. As a caller of VFS helper, aufs should handle
+every necessary pre/post operation for the branch filesystem.
+- acquire the lock for the parent dir on a branch
+- lookup in a branch
+- revalidate dentry on a branch
+- mnt_want_write() for a branch
+- vfs_unlink() for a branch
+- mnt_drop_write() for a branch
+- release the lock on a branch
+
+3. Persistent Inode Number
+One of the most important issue for a filesystem is to maintain inode
+numbers. This is particularly important to support exporting a
+filesystem via NFS. Aufs is a virtual filesystem which doesn't have a
+backend block device for its own. But some storage is necessary to
+keep and maintain the inode numbers. It may be a large space and may not
+suit to keep in memory. Aufs rents some space from its first writable
+branch filesystem (by default) and creates file(s) on it. These files
+are created by aufs internally and removed soon (currently) keeping
+opened.
+Note: Because these files are removed, they are totally gone after
+      unmounting aufs. It means the inode numbers are not persistent
+      across unmount or reboot. I have a plan to make them really
+      persistent which will be important for aufs on NFS server.
+
+4. Read/Write Files Internally (copy-on-write)
+Because a branch can be readonly, when you write a file on it, aufs will
+"copy-up" it to the upper writable branch internally. And then write the
+originally requested thing to the file. Generally kernel doesn't
+open/read/write file actively. In aufs, even a single write may cause a
+internal "file copy". This behaviour is very similar to cp(1) command.
+
+Some people may think it is better to pass such work to user space
+helper, instead of doing in kernel space. Actually I am still thinking
+about it. But currently I have implemented it in kernel space.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/02struct.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/02struct.txt
@@ -0,0 +1,258 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Basic Aufs Internal Structure
+
+Superblock/Inode/Dentry/File Objects
+----------------------------------------------------------------------
+As like an ordinary filesystem, aufs has its own
+superblock/inode/dentry/file objects. All these objects have a
+dynamically allocated array and store the same kind of pointers to the
+lower filesystem, branch.
+For example, when you build a union with one readwrite branch and one
+readonly, mounted /au, /rw and /ro respectively.
+- /au = /rw + /ro
+- /ro/fileA exists but /rw/fileA
+
+Aufs lookup operation finds /ro/fileA and gets dentry for that. These
+pointers are stored in a aufs dentry. The array in aufs dentry will be,
+- [0] = NULL (because /rw/fileA doesn't exist)
+- [1] = /ro/fileA
+
+This style of an array is essentially same to the aufs
+superblock/inode/dentry/file objects.
+
+Because aufs supports manipulating branches, ie. add/delete/change
+branches dynamically, these objects has its own generation. When
+branches are changed, the generation in aufs superblock is
+incremented. And a generation in other object are compared when it is
+accessed. When a generation in other objects are obsoleted, aufs
+refreshes the internal array.
+
+
+Superblock
+----------------------------------------------------------------------
+Additionally aufs superblock has some data for policies to select one
+among multiple writable branches, XIB files, pseudo-links and kobject.
+See below in detail.
+About the policies which supports copy-down a directory, see
+wbr_policy.txt too.
+
+
+Branch and XINO(External Inode Number Translation Table)
+----------------------------------------------------------------------
+Every branch has its own xino (external inode number translation table)
+file. The xino file is created and unlinked by aufs internally. When two
+members of a union exist on the same filesystem, they share the single
+xino file.
+The struct of a xino file is simple, just a sequence of aufs inode
+numbers which is indexed by the lower inode number.
+In the above sample, assume the inode number of /ro/fileA is i111 and
+aufs assigns the inode number i999 for fileA. Then aufs writes 999 as
+4(8) bytes at 111 * 4(8) bytes offset in the xino file.
+
+When the inode numbers are not contiguous, the xino file will be sparse
+which has a hole in it and doesn't consume as much disk space as it
+might appear. If your branch filesystem consumes disk space for such
+holes, then you should specify 'xino=' option at mounting aufs.
+
+Aufs has a mount option to free the disk blocks for such holes in XINO
+files on tmpfs or ramdisk. But it is not so effective actually. If you
+meet a problem of disk shortage due to XINO files, then you should try
+"tmpfs-ino.patch" (and "vfs-ino.patch" too) in aufs4-standalone.git.
+The patch localizes the assignment inumbers per tmpfs-mount and avoid
+the holes in XINO files.
+
+Also a writable branch has three kinds of "whiteout bases". All these
+are existed when the branch is joined to aufs, and their names are
+whiteout-ed doubly, so that users will never see their names in aufs
+hierarchy.
+1. a regular file which will be hardlinked to all whiteouts.
+2. a directory to store a pseudo-link.
+3. a directory to store an "orphan"-ed file temporary.
+
+1. Whiteout Base
+   When you remove a file on a readonly branch, aufs handles it as a
+   logical deletion and creates a whiteout on the upper writable branch
+   as a hardlink of this file in order not to consume inode on the
+   writable branch.
+2. Pseudo-link Dir
+   See below, Pseudo-link.
+3. Step-Parent Dir
+   When "fileC" exists on the lower readonly branch only and it is
+   opened and removed with its parent dir, and then user writes
+   something into it, then aufs copies-up fileC to this
+   directory. Because there is no other dir to store fileC. After
+   creating a file under this dir, the file is unlinked.
+
+Because aufs supports manipulating branches, ie. add/delete/change
+dynamically, a branch has its own id. When the branch order changes,
+aufs finds the new index by searching the branch id.
+
+
+Pseudo-link
+----------------------------------------------------------------------
+Assume "fileA" exists on the lower readonly branch only and it is
+hardlinked to "fileB" on the branch. When you write something to fileA,
+aufs copies-up it to the upper writable branch. Additionally aufs
+creates a hardlink under the Pseudo-link Directory of the writable
+branch. The inode of a pseudo-link is kept in aufs super_block as a
+simple list. If fileB is read after unlinking fileA, aufs returns
+filedata from the pseudo-link instead of the lower readonly
+branch. Because the pseudo-link is based upon the inode, to keep the
+inode number by xino (see above) is essentially necessary.
+
+All the hardlinks under the Pseudo-link Directory of the writable branch
+should be restored in a proper location later. Aufs provides a utility
+to do this. The userspace helpers executed at remounting and unmounting
+aufs by default.
+During this utility is running, it puts aufs into the pseudo-link
+maintenance mode. In this mode, only the process which began the
+maintenance mode (and its child processes) is allowed to operate in
+aufs. Some other processes which are not related to the pseudo-link will
+be allowed to run too, but the rest have to return an error or wait
+until the maintenance mode ends. If a process already acquires an inode
+mutex (in VFS), it has to return an error.
+
+
+XIB(external inode number bitmap)
+----------------------------------------------------------------------
+Addition to the xino file per a branch, aufs has an external inode number
+bitmap in a superblock object. It is also an internal file such like a
+xino file.
+It is a simple bitmap to mark whether the aufs inode number is in-use or
+not.
+To reduce the file I/O, aufs prepares a single memory page to cache xib.
+
+As well as XINO files, aufs has a feature to truncate/refresh XIB to
+reduce the number of consumed disk blocks for these files.
+
+
+Virtual or Vertical Dir, and Readdir in Userspace
+----------------------------------------------------------------------
+In order to support multiple layers (branches), aufs readdir operation
+constructs a virtual dir block on memory. For readdir, aufs calls
+vfs_readdir() internally for each dir on branches, merges their entries
+with eliminating the whiteout-ed ones, and sets it to file (dir)
+object. So the file object has its entry list until it is closed. The
+entry list will be updated when the file position is zero and becomes
+obsoleted. This decision is made in aufs automatically.
+
+The dynamically allocated memory block for the name of entries has a
+unit of 512 bytes (by default) and stores the names contiguously (no
+padding). Another block for each entry is handled by kmem_cache too.
+During building dir blocks, aufs creates hash list and judging whether
+the entry is whiteouted by its upper branch or already listed.
+The merged result is cached in the corresponding inode object and
+maintained by a customizable life-time option.
+
+Some people may call it can be a security hole or invite DoS attack
+since the opened and once readdir-ed dir (file object) holds its entry
+list and becomes a pressure for system memory. But I'd say it is similar
+to files under /proc or /sys. The virtual files in them also holds a
+memory page (generally) while they are opened. When an idea to reduce
+memory for them is introduced, it will be applied to aufs too.
+For those who really hate this situation, I've developed readdir(3)
+library which operates this merging in userspace. You just need to set
+LD_PRELOAD environment variable, and aufs will not consume no memory in
+kernel space for readdir(3).
+
+
+Workqueue
+----------------------------------------------------------------------
+Aufs sometimes requires privilege access to a branch. For instance,
+in copy-up/down operation. When a user process is going to make changes
+to a file which exists in the lower readonly branch only, and the mode
+of one of ancestor directories may not be writable by a user
+process. Here aufs copy-up the file with its ancestors and they may
+require privilege to set its owner/group/mode/etc.
+This is a typical case of a application character of aufs (see
+Introduction).
+
+Aufs uses workqueue synchronously for this case. It creates its own
+workqueue. The workqueue is a kernel thread and has privilege. Aufs
+passes the request to call mkdir or write (for example), and wait for
+its completion. This approach solves a problem of a signal handler
+simply.
+If aufs didn't adopt the workqueue and changed the privilege of the
+process, then the process may receive the unexpected SIGXFSZ or other
+signals.
+
+Also aufs uses the system global workqueue ("events" kernel thread) too
+for asynchronous tasks, such like handling inotify/fsnotify, re-creating a
+whiteout base and etc. This is unrelated to a privilege.
+Most of aufs operation tries acquiring a rw_semaphore for aufs
+superblock at the beginning, at the same time waits for the completion
+of all queued asynchronous tasks.
+
+
+Whiteout
+----------------------------------------------------------------------
+The whiteout in aufs is very similar to Unionfs's. That is represented
+by its filename. UnionMount takes an approach of a file mode, but I am
+afraid several utilities (find(1) or something) will have to support it.
+
+Basically the whiteout represents "logical deletion" which stops aufs to
+lookup further, but also it represents "dir is opaque" which also stop
+further lookup.
+
+In aufs, rmdir(2) and rename(2) for dir uses whiteout alternatively.
+In order to make several functions in a single systemcall to be
+revertible, aufs adopts an approach to rename a directory to a temporary
+unique whiteouted name.
+For example, in rename(2) dir where the target dir already existed, aufs
+renames the target dir to a temporary unique whiteouted name before the
+actual rename on a branch, and then handles other actions (make it opaque,
+update the attributes, etc). If an error happens in these actions, aufs
+simply renames the whiteouted name back and returns an error. If all are
+succeeded, aufs registers a function to remove the whiteouted unique
+temporary name completely and asynchronously to the system global
+workqueue.
+
+
+Copy-up
+----------------------------------------------------------------------
+It is a well-known feature or concept.
+When user modifies a file on a readonly branch, aufs operate "copy-up"
+internally and makes change to the new file on the upper writable branch.
+When the trigger systemcall does not update the timestamps of the parent
+dir, aufs reverts it after copy-up.
+
+
+Move-down (aufs3.9 and later)
+----------------------------------------------------------------------
+"Copy-up" is one of the essential feature in aufs. It copies a file from
+the lower readonly branch to the upper writable branch when a user
+changes something about the file.
+"Move-down" is an opposite action of copy-up. Basically this action is
+ran manually instead of automatically and internally.
+For desgin and implementation, aufs has to consider these issues.
+- whiteout for the file may exist on the lower branch.
+- ancestor directories may not exist on the lower branch.
+- diropq for the ancestor directories may exist on the upper branch.
+- free space on the lower branch will reduce.
+- another access to the file may happen during moving-down, including
+  UDBA (see "Revalidate Dentry and UDBA").
+- the file should not be hard-linked nor pseudo-linked. they should be
+  handled by auplink utility later.
+
+Sometimes users want to move-down a file from the upper writable branch
+to the lower readonly or writable branch. For instance,
+- the free space of the upper writable branch is going to run out.
+- create a new intermediate branch between the upper and lower branch.
+- etc.
+
+For this purpose, use "aumvdown" command in aufs-util.git.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/03atomic_open.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/03atomic_open.txt
@@ -0,0 +1,85 @@
+
+# Copyright (C) 2015-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Support for a branch who has its ->atomic_open()
+----------------------------------------------------------------------
+The filesystems who implement its ->atomic_open() are not majority. For
+example NFSv4 does, and aufs should call NFSv4 ->atomic_open,
+particularly for open(O_CREAT|O_EXCL, 0400) case. Other than
+->atomic_open(), NFSv4 returns an error for this open(2). While I am not
+sure whether all filesystems who have ->atomic_open() behave like this,
+but NFSv4 surely returns the error.
+
+In order to support ->atomic_open() for aufs, there are a few
+approaches.
+
+A. Introduce aufs_atomic_open()
+   - calls one of VFS:do_last(), lookup_open() or atomic_open() for
+     branch fs.
+B. Introduce aufs_atomic_open() calling create, open and chmod. this is
+   an aufs user Pip Cet's approach
+   - calls aufs_create(), VFS finish_open() and notify_change().
+   - pass fake-mode to finish_open(), and then correct the mode by
+     notify_change().
+C. Extend aufs_open() to call branch fs's ->atomic_open()
+   - no aufs_atomic_open().
+   - aufs_lookup() registers the TID to an aufs internal object.
+   - aufs_create() does nothing when the matching TID is registered, but
+     registers the mode.
+   - aufs_open() calls branch fs's ->atomic_open() when the matching
+     TID is registered.
+D. Extend aufs_open() to re-try branch fs's ->open() with superuser's
+   credential
+   - no aufs_atomic_open().
+   - aufs_create() registers the TID to an internal object. this info
+     represents "this process created this file just now."
+   - when aufs gets EACCES from branch fs's ->open(), then confirm the
+     registered TID and re-try open() with superuser's credential.
+
+Pros and cons for each approach.
+
+A.
+   - straightforward but highly depends upon VFS internal.
+   - the atomic behavaiour is kept.
+   - some of parameters such as nameidata are hard to reproduce for
+     branch fs.
+   - large overhead.
+B.
+   - easy to implement.
+   - the atomic behavaiour is lost.
+C.
+   - the atomic behavaiour is kept.
+   - dirty and tricky.
+   - VFS checks whether the file is created correctly after calling
+     ->create(), which means this approach doesn't work.
+D.
+   - easy to implement.
+   - the atomic behavaiour is lost.
+   - to open a file with superuser's credential and give it to a user
+     process is a bad idea, since the file object keeps the credential
+     in it. It may affect LSM or something. This approach doesn't work
+     either.
+
+The approach A is ideal, but it hard to implement. So here is a
+variation of A, which is to be implemented.
+
+A-1. Introduce aufs_atomic_open()
+     - calls branch fs ->atomic_open() if exists. otherwise calls
+       vfs_create() and finish_open().
+     - the demerit is that the several checks after branch fs
+       ->atomic_open() are lost. in the ordinary case, the checks are
+       done by VFS:do_last(), lookup_open() and atomic_open(). some can
+       be implemented in aufs, but not all I am afraid.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/03lookup.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/03lookup.txt
@@ -0,0 +1,113 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Lookup in a Branch
+----------------------------------------------------------------------
+Since aufs has a character of sub-VFS (see Introduction), it operates
+lookup for branches as VFS does. It may be a heavy work. But almost all
+lookup operation in aufs is the simplest case, ie. lookup only an entry
+directly connected to its parent. Digging down the directory hierarchy
+is unnecessary. VFS has a function lookup_one_len() for that use, and
+aufs calls it.
+
+When a branch is a remote filesystem, aufs basically relies upon its
+->d_revalidate(), also aufs forces the hardest revalidate tests for
+them.
+For d_revalidate, aufs implements three levels of revalidate tests. See
+"Revalidate Dentry and UDBA" in detail.
+
+
+Test Only the Highest One for the Directory Permission (dirperm1 option)
+----------------------------------------------------------------------
+Let's try case study.
+- aufs has two branches, upper readwrite and lower readonly.
+  /au = /rw + /ro
+- "dirA" exists under /ro, but /rw. and its mode is 0700.
+- user invoked "chmod a+rx /au/dirA"
+- the internal copy-up is activated and "/rw/dirA" is created and its
+  permission bits are set to world readable.
+- then "/au/dirA" becomes world readable?
+
+In this case, /ro/dirA is still 0700 since it exists in readonly branch,
+or it may be a natively readonly filesystem. If aufs respects the lower
+branch, it should not respond readdir request from other users. But user
+allowed it by chmod. Should really aufs rejects showing the entries
+under /ro/dirA?
+
+To be honest, I don't have a good solution for this case. So aufs
+implements 'dirperm1' and 'nodirperm1' mount options, and leave it to
+users.
+When dirperm1 is specified, aufs checks only the highest one for the
+directory permission, and shows the entries. Otherwise, as usual, checks
+every dir existing on all branches and rejects the request.
+
+As a side effect, dirperm1 option improves the performance of aufs
+because the number of permission check is reduced when the number of
+branch is many.
+
+
+Revalidate Dentry and UDBA (User's Direct Branch Access)
+----------------------------------------------------------------------
+Generally VFS helpers re-validate a dentry as a part of lookup.
+0. digging down the directory hierarchy.
+1. lock the parent dir by its i_mutex.
+2. lookup the final (child) entry.
+3. revalidate it.
+4. call the actual operation (create, unlink, etc.)
+5. unlock the parent dir
+
+If the filesystem implements its ->d_revalidate() (step 3), then it is
+called. Actually aufs implements it and checks the dentry on a branch is
+still valid.
+But it is not enough. Because aufs has to release the lock for the
+parent dir on a branch at the end of ->lookup() (step 2) and
+->d_revalidate() (step 3) while the i_mutex of the aufs dir is still
+held by VFS.
+If the file on a branch is changed directly, eg. bypassing aufs, after
+aufs released the lock, then the subsequent operation may cause
+something unpleasant result.
+
+This situation is a result of VFS architecture, ->lookup() and
+->d_revalidate() is separated. But I never say it is wrong. It is a good
+design from VFS's point of view. It is just not suitable for sub-VFS
+character in aufs.
+
+Aufs supports such case by three level of revalidation which is
+selectable by user.
+1. Simple Revalidate
+   Addition to the native flow in VFS's, confirm the child-parent
+   relationship on the branch just after locking the parent dir on the
+   branch in the "actual operation" (step 4). When this validation
+   fails, aufs returns EBUSY. ->d_revalidate() (step 3) in aufs still
+   checks the validation of the dentry on branches.
+2. Monitor Changes Internally by Inotify/Fsnotify
+   Addition to above, in the "actual operation" (step 4) aufs re-lookup
+   the dentry on the branch, and returns EBUSY if it finds different
+   dentry.
+   Additionally, aufs sets the inotify/fsnotify watch for every dir on branches
+   during it is in cache. When the event is notified, aufs registers a
+   function to kernel 'events' thread by schedule_work(). And the
+   function sets some special status to the cached aufs dentry and inode
+   private data. If they are not cached, then aufs has nothing to
+   do. When the same file is accessed through aufs (step 0-3) later,
+   aufs will detect the status and refresh all necessary data.
+   In this mode, aufs has to ignore the event which is fired by aufs
+   itself.
+3. No Extra Validation
+   This is the simplest test and doesn't add any additional revalidation
+   test, and skip the revalidation in step 4. It is useful and improves
+   aufs performance when system surely hide the aufs branches from user,
+   by over-mounting something (or another method).
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/04branch.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/04branch.txt
@@ -0,0 +1,74 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Branch Manipulation
+
+Since aufs supports dynamic branch manipulation, ie. add/remove a branch
+and changing its permission/attribute, there are a lot of works to do.
+
+
+Add a Branch
+----------------------------------------------------------------------
+o Confirm the adding dir exists outside of aufs, including loopback
+  mount, and its various attributes.
+o Initialize the xino file and whiteout bases if necessary.
+  See struct.txt.
+
+o Check the owner/group/mode of the directory
+  When the owner/group/mode of the adding directory differs from the
+  existing branch, aufs issues a warning because it may impose a
+  security risk.
+  For example, when a upper writable branch has a world writable empty
+  top directory, a malicious user can create any files on the writable
+  branch directly, like copy-up and modify manually. If something like
+  /etc/{passwd,shadow} exists on the lower readonly branch but the upper
+  writable branch, and the writable branch is world-writable, then a
+  malicious guy may create /etc/passwd on the writable branch directly
+  and the infected file will be valid in aufs.
+  I am afraid it can be a security issue, but aufs can do nothing except
+  producing a warning.
+
+
+Delete a Branch
+----------------------------------------------------------------------
+o Confirm the deleting branch is not busy
+  To be general, there is one merit to adopt "remount" interface to
+  manipulate branches. It is to discard caches. At deleting a branch,
+  aufs checks the still cached (and connected) dentries and inodes. If
+  there are any, then they are all in-use. An inode without its
+  corresponding dentry can be alive alone (for example, inotify/fsnotify case).
+
+  For the cached one, aufs checks whether the same named entry exists on
+  other branches.
+  If the cached one is a directory, because aufs provides a merged view
+  to users, as long as one dir is left on any branch aufs can show the
+  dir to users. In this case, the branch can be removed from aufs.
+  Otherwise aufs rejects deleting the branch.
+
+  If any file on the deleting branch is opened by aufs, then aufs
+  rejects deleting.
+
+
+Modify the Permission of a Branch
+----------------------------------------------------------------------
+o Re-initialize or remove the xino file and whiteout bases if necessary.
+  See struct.txt.
+
+o rw --> ro: Confirm the modifying branch is not busy
+  Aufs rejects the request if any of these conditions are true.
+  - a file on the branch is mmap-ed.
+  - a regular file on the branch is opened for write and there is no
+    same named entry on the upper branch.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/05wbr_policy.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/05wbr_policy.txt
@@ -0,0 +1,64 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Policies to Select One among Multiple Writable Branches
+----------------------------------------------------------------------
+When the number of writable branch is more than one, aufs has to decide
+the target branch for file creation or copy-up. By default, the highest
+writable branch which has the parent (or ancestor) dir of the target
+file is chosen (top-down-parent policy).
+By user's request, aufs implements some other policies to select the
+writable branch, for file creation several policies, round-robin,
+most-free-space, and other policies. For copy-up, top-down-parent,
+bottom-up-parent, bottom-up and others.
+
+As expected, the round-robin policy selects the branch in circular. When
+you have two writable branches and creates 10 new files, 5 files will be
+created for each branch. mkdir(2) systemcall is an exception. When you
+create 10 new directories, all will be created on the same branch.
+And the most-free-space policy selects the one which has most free
+space among the writable branches. The amount of free space will be
+checked by aufs internally, and users can specify its time interval.
+
+The policies for copy-up is more simple,
+top-down-parent is equivalent to the same named on in create policy,
+bottom-up-parent selects the writable branch where the parent dir
+exists and the nearest upper one from the copyup-source,
+bottom-up selects the nearest upper writable branch from the
+copyup-source, regardless the existence of the parent dir.
+
+There are some rules or exceptions to apply these policies.
+- If there is a readonly branch above the policy-selected branch and
+  the parent dir is marked as opaque (a variation of whiteout), or the
+  target (creating) file is whiteout-ed on the upper readonly branch,
+  then the result of the policy is ignored and the target file will be
+  created on the nearest upper writable branch than the readonly branch.
+- If there is a writable branch above the policy-selected branch and
+  the parent dir is marked as opaque or the target file is whiteouted
+  on the branch, then the result of the policy is ignored and the target
+  file will be created on the highest one among the upper writable
+  branches who has diropq or whiteout. In case of whiteout, aufs removes
+  it as usual.
+- link(2) and rename(2) systemcalls are exceptions in every policy.
+  They try selecting the branch where the source exists as possible
+  since copyup a large file will take long time. If it can't be,
+  ie. the branch where the source exists is readonly, then they will
+  follow the copyup policy.
+- There is an exception for rename(2) when the target exists.
+  If the rename target exists, aufs compares the index of the branches
+  where the source and the target exists and selects the higher
+  one. If the selected branch is readonly, then aufs follows the
+  copyup policy.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/06dirren.dot
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/06dirren.dot
@@ -0,0 +1,31 @@
+
+// to view this graph, run dot(1) command in GRAPHVIZ.
+
+digraph G {
+node [shape=box];
+whinfo [label="detailed info file\n(lower_brid_root-hinum, h_inum, namelen, old name)"];
+
+node [shape=oval];
+
+aufs_rename -> whinfo [label="store/remove"];
+
+node [shape=oval];
+inode_list [label="h_inum list in branch\ncache"];
+
+node [shape=box];
+whinode [label="h_inum list file"];
+
+node [shape=oval];
+brmgmt [label="br_add/del/mod/umount"];
+
+brmgmt -> inode_list [label="create/remove"];
+brmgmt -> whinode [label="load/store"];
+
+inode_list -> whinode [style=dashed,dir=both];
+
+aufs_rename -> inode_list [label="add/del"];
+
+aufs_lookup -> inode_list [label="search"];
+
+aufs_lookup -> whinfo [label="load/remove"];
+}
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/06dirren.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/06dirren.txt
@@ -0,0 +1,102 @@
+
+# Copyright (C) 2017-2020 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Special handling for renaming a directory (DIRREN)
+----------------------------------------------------------------------
+First, let's assume we have a simple usecase.
+
+- /u = /rw + /ro
+- /rw/dirA exists
+- /ro/dirA and /ro/dirA/file exist too
+- there is no dirB on both branches
+- a user issues rename("dirA", "dirB")
+
+Now, what should aufs behave against this rename(2)?
+There are a few possible cases.
+
+A. returns EROFS.
+   since dirA exists on a readonly branch which cannot be renamed.
+B. returns EXDEV.
+   it is possible to copy-up dirA (only the dir itself), but the child
+   entries ("file" in this case) should not be. it must be a bad
+   approach to copy-up recursively.
+C. returns a success.
+   even the branch /ro is readonly, aufs tries renaming it. Obviously it
+   is a violation of aufs' policy.
+D. construct an extra information which indicates that /ro/dirA should
+   be handled as the name of dirB.
+   overlayfs has a similar feature called REDIRECT.
+
+Until now, aufs implements the case B only which returns EXDEV, and
+expects the userspace application behaves like mv(1) which tries
+issueing rename(2) recursively.
+
+A new aufs feature called DIRREN is introduced which implements the case
+D. There are several "extra information" added.
+
+1. detailed info per renamed directory
+   path: /rw/dirB/$AUFS_WH_DR_INFO_PFX.<lower branch-id>
+2. the inode-number list of directories on a branch
+   path: /rw/dirB/$AUFS_WH_DR_BRHINO
+
+The filename of "detailed info per directory" represents the lower
+branch, and its format is
+- a type of the branch id
+  one of these.
+  + uuid (not implemented yet)
+  + fsid
+  + dev
+- the inode-number of the branch root dir
+
+And it contains these info in a single regular file.
+- magic number
+- branch's inode-number of the logically renamed dir
+- the name of the before-renamed dir
+
+The "detailed info per directory" file is created in aufs rename(2), and
+loaded in any lookup.
+The info is considered in lookup for the matching case only. Here
+"matching" means that the root of branch (in the info filename) is same
+to the current looking-up branch. After looking-up the before-renamed
+name, the inode-number is compared. And the matched dentry is used.
+
+The "inode-number list of directories" is a regular file which contains
+simply the inode-numbers on the branch. The file is created or updated
+in removing the branch, and loaded in adding the branch. Its lifetime is
+equal to the branch.
+The list is refered in lookup, and when the current target inode is
+found in the list, the aufs tries loading the "detailed info per
+directory" and get the changed and valid name of the dir.
+
+Theoretically these "extra informaiton" may be able to be put into XATTR
+in the dir inode. But aufs doesn't choose this way because
+1. XATTR may not be supported by the branch (or its configuration)
+2. XATTR may have its size limit.
+3. XATTR may be less easy to convert than a regular file, when the
+   format of the info is changed in the future.
+At the same time, I agree that the regular file approach is much slower
+than XATTR approach. So, in the future, aufs may take the XATTR or other
+better approach.
+
+This DIRREN feature is enabled by aufs configuration, and is activated
+by a new mount option.
+
+For the more complicated case, there is a work with UDBA option, which
+is to dected the direct access to the branches (by-passing aufs) and to
+maintain the cashes in aufs. Since a single cached aufs dentry may
+contains two names, before- and after-rename, the name comparision in
+UDBA handler may not work correctly. In this case, the behaviour will be
+equivalen to udba=reval case.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/06fhsm.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/06fhsm.txt
@@ -0,0 +1,120 @@
+
+# Copyright (C) 2011-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+File-based Hierarchical Storage Management (FHSM)
+----------------------------------------------------------------------
+Hierarchical Storage Management (or HSM) is a well-known feature in the
+storage world. Aufs provides this feature as file-based with multiple
+writable branches, based upon the principle of "Colder, the Lower".
+Here the word "colder" means that the less used files, and "lower" means
+that the position in the order of the stacked branches vertically.
+These multiple writable branches are prioritized, ie. the topmost one
+should be the fastest drive and be used heavily.
+
+o Characters in aufs FHSM story
+- aufs itself and a new branch attribute.
+- a new ioctl interface to move-down and to establish a connection with
+  the daemon ("move-down" is a converse of "copy-up").
+- userspace tool and daemon.
+
+The userspace daemon establishes a connection with aufs and waits for
+the notification. The notified information is very similar to struct
+statfs containing the number of consumed blocks and inodes.
+When the consumed blocks/inodes of a branch exceeds the user-specified
+upper watermark, the daemon activates its move-down process until the
+consumed blocks/inodes reaches the user-specified lower watermark.
+
+The actual move-down is done by aufs based upon the request from
+user-space since we need to maintain the inode number and the internal
+pointer arrays in aufs.
+
+Currently aufs FHSM handles the regular files only. Additionally they
+must not be hard-linked nor pseudo-linked.
+
+
+o Cowork of aufs and the user-space daemon
+  During the userspace daemon established the connection, aufs sends a
+  small notification to it whenever aufs writes something into the
+  writable branch. But it may cost high since aufs issues statfs(2)
+  internally. So user can specify a new option to cache the
+  info. Actually the notification is controlled by these factors.
+  + the specified cache time.
+  + classified as "force" by aufs internally.
+  Until the specified time expires, aufs doesn't send the info
+  except the forced cases. When aufs decide forcing, the info is always
+  notified to userspace.
+  For example, the number of free inodes is generally large enough and
+  the shortage of it happens rarely. So aufs doesn't force the
+  notification when creating a new file, directory and others. This is
+  the typical case which aufs doesn't force.
+  When aufs writes the actual filedata and the files consumes any of new
+  blocks, the aufs forces notifying.
+
+
+o Interfaces in aufs
+- New branch attribute.
+  + fhsm
+    Specifies that the branch is managed by FHSM feature. In other word,
+    participant in the FHSM.
+    When nofhsm is set to the branch, it will not be the source/target
+    branch of the move-down operation. This attribute is set
+    independently from coo and moo attributes, and if you want full
+    FHSM, you should specify them as well.
+- New mount option.
+  + fhsm_sec
+    Specifies a second to suppress many less important info to be
+    notified.
+- New ioctl.
+  + AUFS_CTL_FHSM_FD
+    create a new file descriptor which userspace can read the notification
+    (a subset of struct statfs) from aufs.
+- Module parameter 'brs'
+  It has to be set to 1. Otherwise the new mount option 'fhsm' will not
+  be set.
+- mount helpers /sbin/mount.aufs and /sbin/umount.aufs
+  When there are two or more branches with fhsm attributes,
+  /sbin/mount.aufs invokes the user-space daemon and /sbin/umount.aufs
+  terminates it. As a result of remounting and branch-manipulation, the
+  number of branches with fhsm attribute can be one. In this case,
+  /sbin/mount.aufs will terminate the user-space daemon.
+
+
+Finally the operation is done as these steps in kernel-space.
+- make sure that,
+  + no one else is using the file.
+  + the file is not hard-linked.
+  + the file is not pseudo-linked.
+  + the file is a regular file.
+  + the parent dir is not opaqued.
+- find the target writable branch.
+- make sure the file is not whiteout-ed by the upper (than the target)
+  branch.
+- make the parent dir on the target branch.
+- mutex lock the inode on the branch.
+- unlink the whiteout on the target branch (if exists).
+- lookup and create the whiteout-ed temporary name on the target branch.
+- copy the file as the whiteout-ed temporary name on the target branch.
+- rename the whiteout-ed temporary name to the original name.
+- unlink the file on the source branch.
+- maintain the internal pointer array and the external inode number
+  table (XINO).
+- maintain the timestamps and other attributes of the parent dir and the
+  file.
+
+And of course, in every step, an error may happen. So the operation
+should restore the original file state after an error happens.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/06mmap.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/06mmap.txt
@@ -0,0 +1,72 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+mmap(2) -- File Memory Mapping
+----------------------------------------------------------------------
+In aufs, the file-mapped pages are handled by a branch fs directly, no
+interaction with aufs. It means aufs_mmap() calls the branch fs's
+->mmap().
+This approach is simple and good, but there is one problem.
+Under /proc, several entries show the mmapped files by its path (with
+device and inode number), and the printed path will be the path on the
+branch fs's instead of virtual aufs's.
+This is not a problem in most cases, but some utilities lsof(1) (and its
+user) may expect the path on aufs.
+
+To address this issue, aufs adds a new member called vm_prfile in struct
+vm_area_struct (and struct vm_region). The original vm_file points to
+the file on the branch fs in order to handle everything correctly as
+usual. The new vm_prfile points to a virtual file in aufs, and the
+show-functions in procfs refers to vm_prfile if it is set.
+Also we need to maintain several other places where touching vm_file
+such like
+- fork()/clone() copies vma and the reference count of vm_file is
+  incremented.
+- merging vma maintains the ref count too.
+
+This is not a good approach. It just fakes the printed path. But it
+leaves all behaviour around f_mapping unchanged. This is surely an
+advantage.
+Actually aufs had adopted another complicated approach which calls
+generic_file_mmap() and handles struct vm_operations_struct. In this
+approach, aufs met a hard problem and I could not solve it without
+switching the approach.
+
+There may be one more another approach which is
+- bind-mount the branch-root onto the aufs-root internally
+- grab the new vfsmount (ie. struct mount)
+- lazy-umount the branch-root internally
+- in open(2) the aufs-file, open the branch-file with the hidden
+  vfsmount (instead of the original branch's vfsmount)
+- ideally this "bind-mount and lazy-umount" should be done atomically,
+  but it may be possible from userspace by the mount helper.
+
+Adding the internal hidden vfsmount and using it in opening a file, the
+file path under /proc will be printed correctly. This approach looks
+smarter, but is not possible I am afraid.
+- aufs-root may be bind-mount later. when it happens, another hidden
+  vfsmount will be required.
+- it is hard to get the chance to bind-mount and lazy-umount
+  + in kernel-space, FS can have vfsmount in open(2) via
+    file->f_path, and aufs can know its vfsmount. But several locks are
+    already acquired, and if aufs tries to bind-mount and lazy-umount
+    here, then it may cause a deadlock.
+  + in user-space, bind-mount doesn't invoke the mount helper.
+- since /proc shows dev and ino, aufs has to give vma these info. it
+  means a new member vm_prinode will be necessary. this is essentially
+  equivalent to vm_prfile described above.
+
+I have to give up this "looks-smater" approach.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/06xattr.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/06xattr.txt
@@ -0,0 +1,96 @@
+
+# Copyright (C) 2014-2020 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Listing XATTR/EA and getting the value
+----------------------------------------------------------------------
+For the inode standard attributes (owner, group, timestamps, etc.), aufs
+shows the values from the topmost existing file. This behaviour is good
+for the non-dir entries since the bahaviour exactly matches the shown
+information. But for the directories, aufs considers all the same named
+entries on the lower branches. Which means, if one of the lower entry
+rejects readdir call, then aufs returns an error even if the topmost
+entry allows it. This behaviour is necessary to respect the branch fs's
+security, but can make users confused since the user-visible standard
+attributes don't match the behaviour.
+To address this issue, aufs has a mount option called dirperm1 which
+checks the permission for the topmost entry only, and ignores the lower
+entry's permission.
+
+A similar issue can happen around XATTR.
+getxattr(2) and listxattr(2) families behave as if dirperm1 option is
+always set. Otherwise these very unpleasant situation would happen.
+- listxattr(2) may return the duplicated entries.
+- users may not be able to remove or reset the XATTR forever,
+
+
+XATTR/EA support in the internal (copy,move)-(up,down)
+----------------------------------------------------------------------
+Generally the extended attributes of inode are categorized as these.
+- "security" for LSM and capability.
+- "system" for posix ACL, 'acl' mount option is required for the branch
+  fs generally.
+- "trusted" for userspace, CAP_SYS_ADMIN is required.
+- "user" for userspace, 'user_xattr' mount option is required for the
+  branch fs generally.
+
+Moreover there are some other categories. Aufs handles these rather
+unpopular categories as the ordinary ones, ie. there is no special
+condition nor exception.
+
+In copy-up, the support for XATTR on the dst branch may differ from the
+src branch. In this case, the copy-up operation will get an error and
+the original user operation which triggered the copy-up will fail. It
+can happen that even all copy-up will fail.
+When both of src and dst branches support XATTR and if an error occurs
+during copying XATTR, then the copy-up should fail obviously. That is a
+good reason and aufs should return an error to userspace. But when only
+the src branch support that XATTR, aufs should not return an error.
+For example, the src branch supports ACL but the dst branch doesn't
+because the dst branch may natively un-support it or temporary
+un-support it due to "noacl" mount option. Of course, the dst branch fs
+may NOT return an error even if the XATTR is not supported. It is
+totally up to the branch fs.
+
+Anyway when the aufs internal copy-up gets an error from the dst branch
+fs, then aufs tries removing the just copied entry and returns the error
+to the userspace. The worst case of this situation will be all copy-up
+will fail.
+
+For the copy-up operation, there two basic approaches.
+- copy the specified XATTR only (by category above), and return the
+  error unconditionally if it happens.
+- copy all XATTR, and ignore the error on the specified category only.
+
+In order to support XATTR and to implement the correct behaviour, aufs
+chooses the latter approach and introduces some new branch attributes,
+"icexsec", "icexsys", "icextr", "icexusr", and "icexoth".
+They correspond to the XATTR namespaces (see above). Additionally, to be
+convenient, "icex" is also provided which means all "icex*" attributes
+are set (here the word "icex" stands for "ignore copy-error on XATTR").
+
+The meaning of these attributes is to ignore the error from setting
+XATTR on that branch.
+Note that aufs tries copying all XATTR unconditionally, and ignores the
+error from the dst branch according to the specified attributes.
+
+Some XATTR may have its default value. The default value may come from
+the parent dir or the environment. If the default value is set at the
+file creating-time, it will be overwritten by copy-up.
+Some contradiction may happen I am afraid.
+Do we need another attribute to stop copying XATTR? I am unsure. For
+now, aufs implements the branch attributes to ignore the error.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/07export.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/07export.txt
@@ -0,0 +1,58 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Export Aufs via NFS
+----------------------------------------------------------------------
+Here is an approach.
+- like xino/xib, add a new file 'xigen' which stores aufs inode
+  generation.
+- iget_locked(): initialize aufs inode generation for a new inode, and
+  store it in xigen file.
+- destroy_inode(): increment aufs inode generation and store it in xigen
+  file. it is necessary even if it is not unlinked, because any data of
+  inode may be changed by UDBA.
+- encode_fh(): for a root dir, simply return FILEID_ROOT. otherwise
+  build file handle by
+  + branch id (4 bytes)
+  + superblock generation (4 bytes)
+  + inode number (4 or 8 bytes)
+  + parent dir inode number (4 or 8 bytes)
+  + inode generation (4 bytes))
+  + return value of exportfs_encode_fh() for the parent on a branch (4
+    bytes)
+  + file handle for a branch (by exportfs_encode_fh())
+- fh_to_dentry():
+  + find the index of a branch from its id in handle, and check it is
+    still exist in aufs.
+  + 1st level: get the inode number from handle and search it in cache.
+  + 2nd level: if not found in cache, get the parent inode number from
+    the handle and search it in cache. and then open the found parent
+    dir, find the matching inode number by vfs_readdir() and get its
+    name, and call lookup_one_len() for the target dentry.
+  + 3rd level: if the parent dir is not cached, call
+    exportfs_decode_fh() for a branch and get the parent on a branch,
+    build a pathname of it, convert it a pathname in aufs, call
+    path_lookup(). now aufs gets a parent dir dentry, then handle it as
+    the 2nd level.
+  + to open the dir, aufs needs struct vfsmount. aufs keeps vfsmount
+    for every branch, but not itself. to get this, (currently) aufs
+    searches in current->nsproxy->mnt_ns list. it may not be a good
+    idea, but I didn't get other approach.
+  + test the generation of the gotten inode.
+- every inode operation: they may get EBUSY due to UDBA. in this case,
+  convert it into ESTALE for NFSD.
+- readdir(): call lockdep_on/off() because filldir in NFSD calls
+  lookup_one_len(), vfs_getattr(), encode_fh() and others.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/08shwh.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/08shwh.txt
@@ -0,0 +1,52 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Show Whiteout Mode (shwh)
+----------------------------------------------------------------------
+Generally aufs hides the name of whiteouts. But in some cases, to show
+them is very useful for users. For instance, creating a new middle layer
+(branch) by merging existing layers.
+
+(borrowing aufs1 HOW-TO from a user, Michael Towers)
+When you have three branches,
+- Bottom: 'system', squashfs (underlying base system), read-only
+- Middle: 'mods', squashfs, read-only
+- Top: 'overlay', ram (tmpfs), read-write
+
+The top layer is loaded at boot time and saved at shutdown, to preserve
+the changes made to the system during the session.
+When larger changes have been made, or smaller changes have accumulated,
+the size of the saved top layer data grows. At this point, it would be
+nice to be able to merge the two overlay branches ('mods' and 'overlay')
+and rewrite the 'mods' squashfs, clearing the top layer and thus
+restoring save and load speed.
+
+This merging is simplified by the use of another aufs mount, of just the
+two overlay branches using the 'shwh' option.
+# mount -t aufs -o ro,shwh,br:/livesys/overlay=ro+wh:/livesys/mods=rr+wh \
+	aufs /livesys/merge_union
+
+A merged view of these two branches is then available at
+/livesys/merge_union, and the new feature is that the whiteouts are
+visible!
+Note that in 'shwh' mode the aufs mount must be 'ro', which will disable
+writing to all branches. Also the default mode for all branches is 'ro'.
+It is now possible to save the combined contents of the two overlay
+branches to a new squashfs, e.g.:
+# mksquashfs /livesys/merge_union /path/to/newmods.squash
+
+This new squashfs archive can be stored on the boot device and the
+initramfs will use it to replace the old one at the next boot.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/aufs/design/10dynop.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/aufs/design/10dynop.txt
@@ -0,0 +1,47 @@
+
+# Copyright (C) 2010-2020 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Dynamically customizable FS operations
+----------------------------------------------------------------------
+Generally FS operations (struct inode_operations, struct
+address_space_operations, struct file_operations, etc.) are defined as
+"static const", but it never means that FS have only one set of
+operation. Some FS have multiple sets of them. For instance, ext2 has
+three sets, one for XIP, for NOBH, and for normal.
+Since aufs overrides and redirects these operations, sometimes aufs has
+to change its behaviour according to the branch FS type. More importantly
+VFS acts differently if a function (member in the struct) is set or
+not. It means aufs should have several sets of operations and select one
+among them according to the branch FS definition.
+
+In order to solve this problem and not to affect the behaviour of VFS,
+aufs defines these operations dynamically. For instance, aufs defines
+dummy direct_IO function for struct address_space_operations, but it may
+not be set to the address_space_operations actually. When the branch FS
+doesn't have it, aufs doesn't set it to its address_space_operations
+while the function definition itself is still alive. So the behaviour
+itself will not change, and it will return an error when direct_IO is
+not set.
+
+The lifetime of these dynamically generated operation object is
+maintained by aufs branch object. When the branch is removed from aufs,
+the reference counter of the object is decremented. When it reaches
+zero, the dynamically generated operation object will be freed.
+
+This approach is designed to support AIO (io_submit), Direct I/O and
+XIP (DAX) mainly.
+Currently this approach is applied to address_space_operations for
+regular files only.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/porting.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/porting.rst
@@ -850,3 +850,11 @@
 d_alloc_pseudo() is internal-only; uses outside of alloc_file_pseudo() are
 very suspect (and won't work in modules).  Such uses are very likely to
 be misspelled d_alloc_anon().
+
+---
+
+**mandatory**
+
+[should've been added in 2016] stale comment in finish_open() nonwithstanding,
+failure exits in ->atomic_open() instances should *NOT* fput() the file,
+no matter what.  Everything is handled by the caller.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/seq_file.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/seq_file.txt
@@ -192,6 +192,12 @@
 is a reasonable thing to do. The seq_file code will also avoid taking any
 other locks while the iterator is active.
 
+The iterater value returned by start() or next() is guaranteed to be
+passed to a subsequent next() or stop() call.  This allows resources
+such as locks that were taken to be reliably released.  There is *no*
+guarantee that the iterator will be passed to show(), though in practice
+it often will be.
+
 
 Formatted output
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/filesystems/sysfs.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/filesystems/sysfs.txt
@@ -232,12 +232,10 @@
   is 4096. 
 
 - show() methods should return the number of bytes printed into the
-  buffer. This is the return value of scnprintf().
+  buffer.
 
-- show() must not use snprintf() when formatting the value to be
-  returned to user space. If you can guarantee that an overflow
-  will never happen you can use sprintf() otherwise you must use
-  scnprintf().
+- show() should only use sysfs_emit() or sysfs_emit_at() when formatting
+  the value to be returned to user space.
 
 - store() should return the number of bytes used from the buffer. If the
   entire buffer has been used, just return the count argument.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/index.rst
@@ -135,6 +135,14 @@
    mic/index
    scheduler/index
 
+Architecture-agnostic documentation
+-----------------------------------
+
+.. toctree::
+   :maxdepth: 2
+
+   asm-annotations
+
 Architecture-specific documentation
 -----------------------------------
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kbuild/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/kbuild/index.rst
@@ -19,6 +19,7 @@
 
     issues
     reproducible-builds
+    llvm
 
 .. only::  subproject and html
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kbuild/kbuild.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/kbuild/kbuild.rst
@@ -262,3 +262,8 @@
 These two variables allow to override the user@host string displayed during
 boot and in /proc/version. The default value is the output of the commands
 whoami and host, respectively.
+
+LLVM
+----
+If this variable is set to 1, Kbuild will use Clang and LLVM utilities instead
+of GCC and GNU binutils to build the kernel.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kbuild/llvm.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/kbuild/llvm.rst
@@ -0,0 +1,87 @@
+==============================
+Building Linux with Clang/LLVM
+==============================
+
+This document covers how to build the Linux kernel with Clang and LLVM
+utilities.
+
+About
+-----
+
+The Linux kernel has always traditionally been compiled with GNU toolchains
+such as GCC and binutils. Ongoing work has allowed for `Clang
+<https://clang.llvm.org/>`_ and `LLVM <https://llvm.org/>`_ utilities to be
+used as viable substitutes. Distributions such as `Android
+<https://www.android.com/>`_, `ChromeOS
+<https://www.chromium.org/chromium-os>`_, and `OpenMandriva
+<https://www.openmandriva.org/>`_ use Clang built kernels.  `LLVM is a
+collection of toolchain components implemented in terms of C++ objects
+<https://www.aosabook.org/en/llvm.html>`_. Clang is a front-end to LLVM that
+supports C and the GNU C extensions required by the kernel, and is pronounced
+"klang," not "see-lang."
+
+Clang
+-----
+
+The compiler used can be swapped out via `CC=` command line argument to `make`.
+`CC=` should be set when selecting a config and during a build.
+
+	make CC=clang defconfig
+
+	make CC=clang
+
+Cross Compiling
+---------------
+
+A single Clang compiler binary will typically contain all supported backends,
+which can help simplify cross compiling.
+
+	ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang
+
+`CROSS_COMPILE` is not used to prefix the Clang compiler binary, instead
+`CROSS_COMPILE` is used to set a command line flag: `--target <triple>`. For
+example:
+
+	clang --target aarch64-linux-gnu foo.c
+
+LLVM Utilities
+--------------
+
+LLVM has substitutes for GNU binutils utilities. Kbuild supports `LLVM=1`
+to enable them.
+
+	make LLVM=1
+
+They can be enabled individually. The full list of the parameters:
+
+	make CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip \\
+	  OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size \\
+	  READELF=llvm-readelf HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar \\
+	  HOSTLD=ld.lld
+
+Currently, the integrated assembler is disabled by default. You can pass
+`LLVM_IAS=1` to enable it.
+
+Getting Help
+------------
+
+- `Website <https://clangbuiltlinux.github.io/>`_
+- `Mailing List <https://groups.google.com/forum/#!forum/clang-built-linux>`_: <clang-built-linux@googlegroups.com>
+- `Issue Tracker <https://github.com/ClangBuiltLinux/linux/issues>`_
+- IRC: #clangbuiltlinux on chat.freenode.net
+- `Telegram <https://t.me/ClangBuiltLinux>`_: @ClangBuiltLinux
+- `Wiki <https://github.com/ClangBuiltLinux/linux/wiki>`_
+- `Beginner Bugs <https://github.com/ClangBuiltLinux/linux/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`_
+
+Getting LLVM
+-------------
+
+- http://releases.llvm.org/download.html
+- https://github.com/llvm/llvm-project
+- https://llvm.org/docs/GettingStarted.html
+- https://llvm.org/docs/CMake.html
+- https://apt.llvm.org/
+- https://www.archlinux.org/packages/extra/x86_64/llvm/
+- https://github.com/ClangBuiltLinux/tc-build
+- https://github.com/ClangBuiltLinux/linux/wiki/Building-Clang-from-source
+- https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kbuild/makefiles.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/kbuild/makefiles.rst
@@ -1115,23 +1115,6 @@
 	In this example, extra-y is used to list object files that
 	shall be built, but shall not be linked as part of built-in.a.
 
-    header-test-y
-
-	header-test-y specifies headers (`*.h`) in the current directory that
-	should be compile tested to ensure they are self-contained,
-	i.e. compilable as standalone units. If CONFIG_HEADER_TEST is enabled,
-	this builds them as part of extra-y.
-
-    header-test-pattern-y
-
-	This works as a weaker version of header-test-y, and accepts wildcard
-	patterns. The typical usage is::
-
-		header-test-pattern-y += *.h
-
-	This specifies all the files that matches to `*.h` in the current
-	directory, but the files in 'header-test-' are excluded.
-
 6.7 Commands useful for building a boot image
 ---------------------------------------------
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kbuild/modules.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/kbuild/modules.rst
@@ -470,9 +470,9 @@
 
 	The syntax of the Module.symvers file is::
 
-	<CRC>       <Symbol>          <Namespace>  <Module>                         <Export Type>
+	<CRC>       <Symbol>         <Module>                         <Export Type>     <Namespace>
 
-	0xe1cc2a05  usb_stor_suspend  USB_STORAGE  drivers/usb/storage/usb-storage  EXPORT_SYMBOL_GPL
+	0xe1cc2a05  usb_stor_suspend drivers/usb/storage/usb-storage  EXPORT_SYMBOL_GPL USB_STORAGE
 
 	The fields are separated by tabs and values may be empty (e.g.
 	if no namespace is defined for an exported symbol).
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/IPVS
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/IPVS
@@ -0,0 +1,81 @@
+/*? Text: "%s(): NULL arg\n" */
+/*? Text: "%s(): NULL scheduler_name\n" */
+/*? Text: "%s(): [%s] pe already existed in the system\n" */
+/*? Text: "%s(): [%s] pe already linked\n" */
+/*? Text: "%s(): [%s] pe is not in the list. failed\n" */
+/*? Text: "%s(): [%s] scheduler already existed in the system\n" */
+/*? Text: "%s(): [%s] scheduler already linked\n" */
+/*? Text: "%s(): [%s] scheduler is not in the list. failed\n" */
+/*? Text: "%s(): done error\n" */
+/*? Text: "%s(): init error\n" */
+/*? Text: "%s(): lower threshold is higher than upper threshold\n" */
+/*? Text: "%s(): no memory\n" */
+/*? Text: "%s(): request for already hashed, called from %pF\n" */
+/*? Text: "%s(): request for unhash flagged, called from %pF\n" */
+/*? Text: "%s(): server weight less than zero\n" */
+/*? Text: "%s: %s %pI4:%d - %s\n" */
+/*? Text: "%s: %s [%pI6]:%d - %s\n" */
+/*? Text: "%s: %s [%pI6c]:%d - %s\n" */
+/*? Text: "%s: FWM %u 0x%08X - %s\n" */
+/*? Text: "%s: enter\n" */
+/*? Text: "%s: loaded support on port[%d] = %d\n" */
+/*? Text: "BACKUP v0, Dropping buffer bogus conn options\n" */
+/*? Text: "BACKUP v0, bogus conn\n" */
+/*? Text: "BACKUP, Dropping buffer, Err: %d in decoding\n" */
+/*? Text: "BACKUP, Dropping buffer, Unknown version %d\n" */
+/*? Text: "BACKUP, Dropping buffer, msg > buffer\n" */
+/*? Text: "BACKUP, Dropping buffer, to small\n" */
+/*? Text: "BACKUP, Invalid PE parameters\n" */
+/*? Text: "BUG control DEL with n=0 : %s:%d to %s:%d\n" */
+/*? Text: "Connection hash table configured (size=%d, memory=%ldKbytes)\n" */
+/*? Text: "Error binding address of the mcast interface\n" */
+/*? Text: "Error binding to the multicast addr\n" */
+/*? Text: "Error connecting to the multicast addr\n" */
+/*? Text: "Error during creation of socket; terminating\n" */
+/*? Text: "Error joining to the multicast group\n" */
+/*? Text: "Error setting outbound mcast interface\n" */
+/*? Text: "Failed to stop Backup Daemon\n" */
+/*? Text: "Failed to stop Master Daemon\n" */
+/*? Text: "Registered protocols (%s)\n" */
+/*? Text: "SYNC, connection pe_data invalid\n" */
+/*? Text: "Schedule: port zero only supported in persistent services, check your ipvs configuration\n" */
+/*? Text: "Scheduler module ip_vs_%s not found\n" */
+/*? Text: "There is no net ptr to find in the skb in %s() line:%d\n" */
+/*? Text: "UDP no ns data\n" */
+/*? Text: "You probably need to specify IP address on multicast interface.\n" */
+/*? Text: "[%s] pe registered.\n" */
+/*? Text: "[%s] pe unregistered.\n" */
+/*? Text: "[%s] scheduler registered.\n" */
+/*? Text: "[%s] scheduler unregistered.\n" */
+/*? Text: "can't register hooks.\n" */
+/*? Text: "can't register netlink/ioctl.\n" */
+/*? Text: "can't setup connection table.\n" */
+/*? Text: "can't setup control.\n" */
+/*? Text: "cannot register Generic Netlink interface.\n" */
+/*? Text: "cannot register sockopt.\n" */
+/*? Text: "get_ctl: len %u < %u\n" */
+/*? Text: "ip_vs_send_async error %d\n" */
+/*? Text: "ip_vs_sync_buff_create failed.\n" */
+/*? Text: "ipvs loaded.\n" */
+/*? Text: "ipvs unloaded.\n" */
+/*? Text: "length: %u != %u\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "not enough space in Netlink message\n" */
+/*? Text: "persistence engine module ip_vs_pe_%s not found\n" */
+/*? Text: "receiving message error\n" */
+/*? Text: "request control ADD for already controlled: %s:%d to %s:%d\n" */
+/*? Text: "request control DEL for uncontrolled: %s:%d to %s:%d\n" */
+/*? Text: "set_ctl: invalid protocol: %d %pI4:%d %s\n" */
+/*? Text: "set_ctl: len %u != %u\n" */
+/*? Text: "shouldn't reach here, because the box is on the half connection in the tun/dr module.\n" */
+/*? Text: "stopping backup sync thread %d ...\n" */
+/*? Text: "stopping master sync thread %d ...\n" */
+/*? Text: "sync thread started: state = BACKUP, mcast_ifn = %s, syncid = %d\n" */
+/*? Text: "sync thread started: state = MASTER, mcast_ifn = %s, syncid = %d\n" */
+/*? Text: "unknown Generic Netlink command\n" */
+/*? Text: "sync thread started: state = MASTER, mcast_ifn = %s, syncid = %d, id = %d\n" */
+/*? Text: "sync thread started: state = BACKUP, mcast_ifn = %s, syncid = %d, id = %d\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "Unknown mcast interface: %s\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/aes_s390
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/aes_s390
@@ -0,0 +1,45 @@
+/*?
+ * Text: "Allocating XTS fallback algorithm %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: algorithm name
+ * Description:
+ * The aes_s390 module failed to allocate a software fallback for the AES
+ * modes that are not supported by the hardware. A possible reason for this
+ * problem is that the aes_generic module that provides the fallback
+ * algorithms is not available.
+ * User action:
+ * Ensure that the aes_generic module is available and loaded and reload
+ * the aes_s390 module.
+ */
+
+/*?
+ * Text: "Allocating AES fallback algorithm %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: algorithm name
+ * Description:
+ * The advanced encryption standard (AES) algorithm includes three modes with
+ * 128-bit, 192-bit, and 256-bit keys. Your hardware system only provides
+ * hardware acceleration for the 128-bit mode. The aes_s390 module failed to
+ * allocate a software fallback for the AES modes that are not supported by the
+ * hardware. A possible reason for this problem is that the aes_generic module
+ * that provides the fallback algorithms is not available.
+ * User action:
+ * Use the 128-bit mode only or ensure that the aes_generic module is available
+ * and loaded and reload the aes_s390 module.
+ */
+
+/*?
+ * Text: "AES hardware acceleration is only available for 128-bit keys\n"
+ * Severity: Informational
+ * Description:
+ * The advanced encryption standard (AES) algorithm includes three modes with
+ * 128-bit, 192-bit, and 256-bit keys. Your hardware system only provides
+ * hardware acceleration for the 128-bit key mode. The aes_s390 module
+ * will use the less performant software fallback algorithm for the 192-bit
+ * and 256-bit key modes.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/af_iucv
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/af_iucv
@@ -0,0 +1,23 @@
+/*?
+ * Text: "Application %s on z/VM guest %s exceeds message limit\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: application name
+ *   @2: z/VM user ID
+ * Description:
+ * Messages or packets destined for the application have accumulated and
+ * reached the maximum value. The default for the message limit is 65535.
+ * You can specify a different limit as the value for MSGLIMIT within
+ * the IUCV statement of the z/VM virtual machine on which the application
+ * runs.
+ * User action:
+ * Ensure that you do not send data faster than the application retrieves
+ * them. Ensure that the message limit on the z/VM guest virtual machine
+ * on which the application runs is high enough.
+ */
+
+/*? Text: "Attempt to release alive iucv socket %p\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/ap
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/ap
@@ -0,0 +1,49 @@
+/*?
+ * Text: "%d is not a valid cryptographic domain\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: AP  domain index
+ * Description:
+ * The cryptographic domain specified for the 'domain=' module or kernel
+ * parameter must be an integer in the range 0 to 15.
+ * User action:
+ * Reload the cryptographic device driver with a correct module parameter.
+ * If the device driver has been compiled into the kernel, correct the value
+ * in the kernel parameter line and reboot Linux.
+ */
+
+/*?
+ * Text: "The hardware system does not support AP instructions\n"
+ * Severity: Warning
+ * Description:
+ * The ap module addresses AP adapters through AP instructions. The hardware
+ * system on which the Linux instance runs does not support AP instructions.
+ * The ap module cannot detect any AP adapters.
+ * User action:
+ * Load the ap module only if your Linux instance runs on hardware that
+ * supports AP instructions. If the ap module has been compiled into the kernel,
+ * ignore this message.
+ */
+
+/*?
+ * Text: "Registering adapter interrupts for AP device %02x.%04x failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: AP device ID
+ *   @2: AP queue
+ * Description:
+ * The hardware system supports AP adapter interrupts but failed to enable
+ * an adapter for interrupts. Possible causes for this error are:
+ * i)   The AP adapter firmware does not support AP interrupts.
+ * ii)  An AP adapter firmware update to a firmware level that supports AP
+ *      adapter interrupts failed.
+ * iii) The AP adapter firmware has been successfully updated to a level that
+ *      supports AP interrupts but the new firmware has not been activated.
+ * User action:
+ * Ensure that the firmware on your AP adapters support AP interrupts and that
+ * any firmware updates have completed successfully. If necessary, deconfigure
+ * your cryptographic adapters and reconfigure them to ensure that any firmware
+ * updates become active, then reload the ap module. If the ap module has been
+ * compiled into the kernel, reboot Linux.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/appldata
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/appldata
@@ -0,0 +1,91 @@
+/*?
+ * Text: "Starting the data collection for %s failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: appldata module
+ *   @2: return code
+ * Description:
+ * The specified data collection module used the z/VM diagnose call
+ * DIAG 0xDC to start writing data. z/VM returned an error and the data
+ * collection could not start. If the return code is 5, your z/VM guest
+ * virtual machine is not authorized to write data records.
+ * User action:
+ * If the return code is 5, ensure that your z/VM guest virtual machine's
+ * entry in the z/VM directory includes the OPTION APPLMON statement.
+ * For other return codes see the section about DIAGNOSE Code X'DC'
+ * in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Stopping the data collection for %s failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: appldata module
+ *   @2: return code
+ * Description:
+ * The specified data collection module used the z/VM diagnose call DIAG 0xDC
+ * to stop writing data. z/VM returned an error and the data collection
+ * continues.
+ * User action:
+ * See the section about DIAGNOSE Code X'DC' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Starting a new OS data collection failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * After a CPU hotplug event, the record size for the running operating
+ * system data collection is no longer correct. The appldata_os module tried
+ * to start a new data collection with the correct record size but received
+ * an error from the z/VM diagnose call DIAG 0xDC. Any data collected with
+ * the current record size might be faulty.
+ * User action:
+ * Start a new data collection with the cappldata_os module. For information
+ * about starting data collections see "Device Drivers, Features, and
+ * Commands". For information about the return codes see the section about
+ * DIAGNOSE Code X'DC' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Stopping a faulty OS data collection failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * After a CPU hotplug event, the record size for the running operating
+ * system data collection is no longer correct. The appldata_os module tried
+ * to stop the faulty data collection but received an error from the z/VM
+ * diagnose call DIAG 0xDC. Any data collected with the current record size
+ * might be faulty.
+ * User action:
+ * Try to restart appldata_os monitoring. For information about stopping
+ * and starting data collections see "Device Drivers, Features, and
+ * Commands". For information about the return codes see the section about
+ * DIAGNOSE Code X'DC' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Maximum OS record size %i exceeds the maximum record size %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: no of bytes
+ *   @2: no of bytes
+ * Description:
+ * The OS record size grows with the number of CPUs and is adjusted by the
+ * appldata_os module in response to CPU hotplug events. For more than 110
+ * CPUs the record size would exceed the maximum record size of 4024 bytes
+ * that is  supported by the z/VM hypervisor. To prevent the maximum supported
+ * record size from being exceeded while data collection is in progress,
+ * you cannot load the appldata_os module on Linux instances that are
+ * configured for a maximum of more than 110 CPUs.
+ * User action:
+ * If you do not want to collect operating system data, you can ignore this
+ * message. If you want to collect operating system data, reconfigure your
+ * Linux instance to support less than 110 CPUs.
+ */
+
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/bpf_jit
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/bpf_jit
@@ -0,0 +1,16 @@
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+
+/*?
+ * Text: "Unknown opcode %02x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: Instruction opcode
+ * Description:
+ * The BPF JIT compiler has found an unknown instruction in the BPF program
+ * and therefore stops the compilation. As a fallback, the interpreter is used.
+ * User action:
+ * Report this problem and the error message to your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/cio
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/cio
@@ -0,0 +1,247 @@
+/*?
+ * Text: "%s is not a valid device for the cio_ignore kernel parameter\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device bus-ID
+ * Description:
+ * The device specification for the cio_ignore kernel parameter is
+ * syntactically incorrect or specifies an unknown device. This device is not
+ * excluded from being sensed and analyzed.
+ * User action:
+ * Correct your device specification in the kernel parameter line to have the
+ * device excluded when you next reboot Linux. You can write the correct
+ * device specification to /proc/cio_ignore to add the device to the list of
+ * devices to be excluded. This does not immediately make the device
+ * inaccessible but the device is ignored if it disappears and later reappears.
+ */
+
+/*?
+ * Text: "0.%x.%04x to 0.%x.%04x is not a valid range for cio_ignore\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: from subchannel set ID
+ *   @2: from device number
+ *   @3: to subchannel set ID
+ *   @4: to device number
+ * Description:
+ * The device range specified for the cio_ignore kernel parameter is
+ * syntactically incorrect. No devices specified with this range are
+ * excluded from being sensed and analyzed.
+ * User action:
+ * Correct your range specification in the kernel parameter line to have the
+ * range of devices  excluded when you next reboot Linux. You can write the
+ * correct range specification to /proc/cio_ignore to add the range of devices
+ * to the list of devices to be excluded. This does not immediately make the
+ * devices in the range inaccessible but any of these devices are ignored if
+ * they disappear and later reappear.
+ */
+
+/*?
+ * Text: "Processing %s for channel path %x.%02x\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: configuration change
+ *   @2: channel subsystem ID
+ *   @3: CHPID
+ * Description:
+ * A configuration change is in progress for the given channel path.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "No CCW console was found\n"
+ * Severity: Warning
+ * Description:
+ * Linux did not find the expected CCW console and tries to use an alternative
+ * console. A possible reason why the console was not found is that the console
+ * has been specified in the cio_ignore list.
+ * User action:
+ * None, if an appropriate alternative console has been found, and you want
+ * to use this alternative console. If you want to use the CCW console, ensure
+ * that is not specified in the cio_ignore list, explicitly specify the console
+ * with the 'condev=' kernel parameter, and reboot Linux.
+ */
+
+/*?
+ * Text: "Channel measurement facility initialized using format %s (mode %s)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: format
+ *   @2: mode
+ * Description:
+ * The channel measurement facility has been initialized successfully.
+ * Format 'extended' should be used for z990 and later mainframe systems.
+ * Format 'basic' is intended for earlier mainframes. Mode 'autodetected' means
+ * that the format has been set automatically. Mode 'parameter' means that the
+ * format has been set according to the 'format=' kernel parameter.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The CSS device driver initialization failed with errno=%d\n"
+ * Severity: Alert
+ * Parameter:
+ *   @1: Return code
+ * Description:
+ * The channel subsystem bus could not be established.
+ * User action:
+ * See the errno man page to find out what caused the problem.
+ */
+ /*? Text: "%s: Got subchannel machine check but no sch_event handler provided.\n" */
+
+/*?
+ * Text: "%s: Setting the device online failed because it is boxed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * Initialization of a device did not complete because it did not respond in
+ * time or it was reserved by another operating system.
+ * User action:
+ * Make sure that the device is working correctly, then try again to set it
+ * online. For devices that support the reserve/release mechanism (for example
+ * DASDs), you can try to override the reservation of the other system by
+ * writing 'force' to the 'online' sysfs attribute of the affected device.
+ */
+
+/*?
+ * Text: "%s: Setting the device online failed because it is not operational\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * Initialization of a device did not complete because it is not present or
+ * not operational.
+ * User action:
+ * Make sure that the device is present and working correctly, then try again
+ * to set it online.
+ */
+
+/*?
+ * Text: "%s: The device stopped operating while being set offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * While the device was set offline, it was not present or not operational.
+ * The device is now inactive, but setting it online again might fail.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The device entered boxed state while being set offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * While the device was set offline, it did not respond in time or it was
+ * reserved by another operating system. The device is now inactive, but
+ * setting it online again might fail.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Logging for subchannel 0.%x.%04x failed with errno=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: subchannel set ID
+ *   @2: subchannel number
+ *   @3: errno
+ * Description:
+ * Capturing model-dependent logs and traces could not be triggered for the
+ * specified subchannel.
+ * User action:
+ * See the errno man page to find out what caused the problem.
+ */
+
+/*?
+ * Text: "Logging for subchannel 0.%x.%04x was triggered\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: subchannel set ID
+ *   @2: subchannel number
+ * Description:
+ * Model-dependent logs and traces may be captured for the specified
+ * subchannel.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: No interrupt was received within %lus (CS=%02x, DS=%02x, CHPID=%x.%02x)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device number
+ *   @2: timeout value
+ *   @3: channel status
+ *   @4: device status
+ *   @5: channel subsystem ID
+ *   @6: CHPID
+ * Description:
+ * Internal I/Os are used by the common I/O layer to ensure that devices are
+ * operational and accessible.
+ * The common I/O layer did not receive an interrupt for an internal I/O
+ * during the specified timeout period.
+ * As a result, the device might assume a state that makes the device
+ * unusable to Linux until the problem is resolved.
+ * User action:
+ * Make sure that the device is working correctly and try the action again.
+ */
+
+/*?
+ * Text: "Link stopped: RS=%02x RSID=%04x IC=%02x IUPARAMS=%s IUNODEID=%s AUPARAMS=%s AUNODEID=%s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: reporting source
+ *   @2: reporting source ID
+ *   @3: incident code
+ *   @4: incident unit parameters
+ *   @5: incident unit node ID
+ *   @6: attached unit parameters
+ *   @7: attached unit node ID
+ *
+ * Description:
+ * A hardware error has occurred. A unit at one end of an interface
+ * link has detected a failure in the link or in one of the units attached to
+ * the link. As a result, data transfer across the link has stopped. In the
+ * message text, the node IDs of involved units are represented in the
+ * following format: TTTTTT/MDL,MMM.PPSSSSSSSSSSSS,XXXX where TTTTTT refers to
+ * the machine type, MDL the model number, MMM the manufacturer, PP the
+ * manufacturing plant, SSSSSSSSSSSS the unit sequence number and XXXX the
+ * machine type-dependent physical interface number. If no data is available
+ * for the unit parameters or node ID field, "n/a" is used instead.
+ *
+ * User action:
+ * Report the problem to your support organization.
+ */
+
+/*?
+ * Text: "Link degraded: RS=%02x RSID=%04x IC=%02x IUPARAMS=%s IUNODEID=%s AUPARAMS=%s AUNODEID=%s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: reporting source
+ *   @2: reporting source ID
+ *   @3: incident code
+ *   @4: incident unit parameters
+ *   @5: incident unit node ID
+ *   @6: attached unit parameters
+ *   @7: attached unit node ID
+ * Description:
+ * A hardware error has occurred. A unit at one end of an interface
+ * link has detected a failure in the link or in one of the units attached to
+ * the link. As a result, data transfer across the link is degraded. In the
+ * message text, the node IDs of involved units are represented in the
+ * following format: TTTTTT/MDL,MMM.PPSSSSSSSSSSSS,XXXX where TTTTTT refers to
+ * the machine type, MDL the model number, MMM the manufacturer, PP the
+ * manufacturing plant, SSSSSSSSSSSS the unit sequence number and XXXX the
+ * machine type-dependent physical interface number. If no data is available
+ * for the unit parameters or node ID field, "n/a" is used instead.
+ *
+ * User action:
+ * Report the problem to your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/cpcmd
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/cpcmd
@@ -0,0 +1,16 @@
+/*?
+ * Text: "The cpcmd kernel function failed to allocate a response buffer\n"
+ * Severity: Warning
+ * Description:
+ * IPL code, console detection, and device drivers like vmcp or vmlogrdr use
+ * the cpcmd kernel function to send commands to the z/VM control program (CP).
+ * If a program that uses the cpcmd function does not allocate a contiguous
+ * response buffer below 2 GB guest real storage, cpcmd creates a bounce buffer
+ * to be used as the response buffer. Because of low memory or memory
+ * fragmentation, cpcmd could not create the bounce buffer.
+ * User action:
+ * Look for related page allocation failure messages and at the stack trace to
+ * find out which program or operation failed. Free some memory and retry the
+ * failed operation. Consider allocating more memory to your z/VM guest virtual
+ * machine.
+ */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/cpu
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/cpu
@@ -0,0 +1,46 @@
+/*?
+ * Text: "%d configured CPUs, %d standby CPUs\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: number of configured CPUs
+ *   @2: number of standby CPUs
+ * Description:
+ * The kernel detected the given number of configured and standby CPUs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The CPU configuration topology of the machine is:"
+ * Severity: Informational
+ * Description:
+ * The first six values of the topology information represent fields Mag6 to
+ * Mag1 of system-information block (SYSIB) 15.1.2. These fields specify the
+ * maximum numbers of topology-list entries (TLE) at successive topology nesting
+ * levels. The last value represents the MNest value of SYSIB 15.1.2 which
+ * specifies the maximum possible nesting that can be configured through
+ * dynamic changes. For details see the SYSIB 15.1.2 information in the
+ * "Principles of Operation."
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU %i exceeds the maximum %i and is excluded from the dump\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: CPU number
+ *   @2: maximum CPU number
+ * Description:
+ * The Linux kernel is used as a system dumper but it runs on more CPUs than
+ * it has been compiled for with the CONFIG_NR_CPUS kernel configuration
+ * option. The system dump will be created but information on one or more
+ * CPUs will be missing.
+ * User action:
+ * Update the system dump kernel to a newer version that supports more
+ * CPUs or reduce the number of installed CPUs and reproduce the problem
+ * that should be analyzed. If you send the system dump that prompted this
+ * message to a support organization, be sure to communicate that the dump
+ * does not include all CPU information.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/cpum_cf
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/cpum_cf
@@ -0,0 +1,68 @@
+/*?
+ * Text: "Enabling the performance measuring unit failed with rc=%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error condition
+ * Description:
+ * The device driver failed to enable CPU counter sets with the
+ * load counter controls (lcctl) instruction.
+ * See the section about lcctl in "The Load-Program-Parameter and the CPU-Measurement
+ * Facilities", SA23-2260, for an explanation of the error conditions.
+ * User action:
+ * Stop the performance measurement programs and try again.
+ */
+
+/*?
+ * Text: "Disabling the performance measuring unit failed with rc=%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error condition
+ * Description:
+ * The device driver failed to disable CPU counter sets with the
+ * load counter controls (lcctl) instruction.
+ * See the section about lcctl in "The Load-Program-Parameter and the CPU-Measurement
+ * Facilities", SA23-2260, for an explanation of the error conditions.
+ * User action:
+ * Stop the performance measurement programs and try again.
+ */
+
+/*?
+ * Text: "Registering the cpum_cf PMU failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *  @1: error code
+ * Description:
+ * The device driver could not register the Performance Measurement Unit (PMU)
+ * for the CPU-measurement counter facility.
+ * A possible cause of this problem is memory constraints.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your Linux instance.
+ */
+
+/*?
+ * Text: "CPU[%i] Counter data was lost\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: cpu number
+ * Description:
+ * CPU counter data was lost because of machine internal
+ * high-priority activities.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Registering for CPU-measurement alerts failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *  @1: error code
+ * Description:
+ * The device driver could not register to receive CPU-measurement alerts.
+ * Alerts make you aware of measurement errors.
+ * A possible cause of this problem is memory constraints.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your Linux instance.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/cpum_sf
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/cpum_sf
@@ -0,0 +1,104 @@
+/*?
+ * Text: "The sampling buffer limits have changed to: min=%lu max=%lu (diag=x%lu)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: minimum size in sample-data-blocks
+ *   @2: maximum size in sample-data-blocks
+ *   @3: size factor for buffering diagnostic-sampling data entries
+ * Description:
+ * The minimum or maximum size limit for the sampling facility buffer was
+ * changed.  The change is effective immediately.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Switching off the sampling facility failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error condition
+ * Description:
+ * The CPU-measurement sampling facility could not be switched off and continues
+ * to run.  For details, see LOAD SAMPLING CONTROLS in
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * If this problem persists, reboot your Linux instance.
+ */
+
+/*?
+ * Text: "Sample data was lost\n"
+ * Severity: Error
+ * Description:
+ * Sample data was lost because of machine-internal high-priority activities.
+ * The sampling facility is stopped.
+ * User action:
+ * End all performance measurement sessions.  Discard the measurement data,
+ * which are likely to be flawed.  Repeat your measurements.
+ * If the problem persists, contact your hardware administrator.
+ */
+
+/*?
+ * Text: "Sampling facility support for perf is not available: reason=%04x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: reason code
+ * Description:
+ * The device driver could not initialize the sampling facility support.
+ * Possible reason codes are:
+ * 0001: The device driver failed to query CPU-measurement sampling facility
+ *	 information.
+ *
+ * 0002: The device driver does not support the basic-sampling function that
+ *	 is available on the LPAR within which the Linux instance runs.
+ *
+ * 0003: The device driver could not register to receive CPU-measurement alerts.
+ *	 A possible cause of this problem is memory constraints.
+ *
+ * 0004: The device driver could not register the Performance Measurement Unit
+ *	 (PMU) for the CPU-measurement sampling facility.
+ *	 A possible cause of this problem is memory constraints.
+ * User action:
+ * Consider assigning more memory to your Linux instance.
+ */
+
+/*?
+ * Text: "Loading sampling controls failed: op=%i err=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: Type of operation
+ *   @2: Error condition
+ * Description:
+ * The sampling facility support could not load sampling controls to enable
+ * (operation type 1) or disable (operation type 2) the CPU-measurement sampling
+ * facility.  For details of the error condition, see LOAD SAMPLING CONTROLS in
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * If the problem persists, reboot your Linux instance.
+ */
+
+/*?
+ * Text: "A sampling buffer entry is incorrect (alert=0x%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: Alert code
+ * Description:
+ * An incorrect sampling facility buffer entry was detected. The alert code
+ * indicates the root cause, for example, an incorrect entry address or an
+ * incorrect sample-data-block-table entry.
+ * User action:
+ * End active performance measurement sessions, for example, perf processes. If
+ * the problem persists, reboot your Linux instance.
+ */
+
+/*?
+ * Text: "Registering for s390dbf failed\n"
+ * Severity: Error
+ * Description:
+ * The device driver failed to register for the s390 debug feature.  You will
+ * not receive any debug information.  A possible cause of this problem is
+ * memory constraints.
+ * User action:
+ * Consider assigning more memory
+ * to your Linux instance.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/crc32-vx
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/crc32-vx
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/ctcm
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/ctcm
@@ -0,0 +1,202 @@
+/*?
+ * Text: "%s: An I/O-error occurred on the CTCM device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * An I/O error was detected on one of the subchannels of the CTCM device.
+ * Depending on the error, the CTCM device driver might attempt an automatic
+ * recovery.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ */
+
+/*?
+ * Text: "%s: An adapter hardware operation timed out\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * The CTCM device uses an adapter to physically connect to its communication
+ * peer. An operation on this adapter timed out.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ */
+
+/*?
+ * Text: "%s: An error occurred on the adapter hardware\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * The CTCM device uses an adapter to physically connect to its communication
+ * peer. An operation on this adapter returned an error.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ */
+
+/*?
+ * Text: "%s: The communication peer has disconnected\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * The remote device has disconnected. Possible reasons are that the remote
+ * interface has been closed or that the operating system instance with the
+ * communication peer has been rebooted or shut down.
+ * User action:
+ * Check the status of the peer device. Ensure that the peer operating system
+ * instance is running and that the peer interface is operational.
+ */
+
+/*?
+ * Text: "%s: The remote operating system is not available\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * The operating system instance with the communication peer has disconnected.
+ * Possible reasons are that the operating system instance has been rebooted
+ * or shut down.
+ * User action:
+ * Ensure that the peer operating system instance is running and that the peer
+ * interface is operational.
+ */
+
+/*?
+ * Text: "%s: The adapter received a non-specific IRQ\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * The adapter hardware used by the CTCM device received an IRQ that cannot
+ * be mapped to a particular device. This is a hardware problem.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. Check if
+ * the connection to the remote device still works. If the CTCM device is not
+ * operational, set it offline and back online. If this does not resolve the
+ * problem, perform a manual recovery. See "Device Drivers, Features, and
+ * Commands" for details about how to recover a CTCM device. If this problem
+ * persists, gather Linux debug data, collect the hardware logs, and report the
+ * problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: A check occurred on the subchannel\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * A check condition has been detected on the subchannel.
+ * User action:
+ * Check if the connection to the remote device still works. If the CTCM device
+ * is not operational, set it offline and back online. If this does not resolve
+ * the problem, perform a manual recovery. See "Device Drivers, Features, and
+ * Commands" for details about how to recover a CTCM device. If this problem
+ * persists, gather Linux debug data and report the problem to your support
+ * organization.
+ */
+
+/*?
+ * Text: "%s: The communication peer is busy\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * A busy target device was reported. This might be a temporary problem.
+ * User action:
+ * If this problem persists or is reported frequently ensure that the target
+ * device is working properly.
+ */
+
+/*?
+ * Text: "%s: The specified target device is not valid\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * A target device was called with a faulty device specification. This is an
+ * adapter hardware problem.
+ * User action:
+ * Gather Linux debug data, collect the hardware logs, and contact IBM support.
+ */
+
+/*?
+ * Text: "An I/O operation resulted in error %04x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: channel ID
+ *   @2: error information
+ * Description:
+ * A hardware operation ended with an error.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ * If this problem persists, gather Linux debug data, collect the hardware logs,
+ * and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Initialization failed with RX/TX init handshake error %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ *   @2: error information
+ * Description:
+ * A problem occurred during the initialization of the connection. If the
+ * connection can be established after an automatic recovery, a success message
+ * is issued.
+ * User action:
+ * If the problem is not resolved by the automatic recovery process, check the
+ * local and remote device. If this problem persists, gather Linux debug data
+ * and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The network backlog for %s is exceeded, package dropped\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ *   @2: calling function
+ * Description:
+ * There is more network traffic than can be handled by the device. The device
+ * is closed and some data has not been transmitted. The device might be
+ * recovered automatically.
+ * User action:
+ * Investigate and resolve the congestion. If necessary, set the device
+ * online to make it operational.
+ */
+
+/*?
+ * Text: "%s: The XID used in the MPC protocol is not valid, rc = %d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ *   @2: return code
+ * Description:
+ * The exchange identification (XID) used by the CTCM device driver when
+ * in MPC mode is not valid.
+ * User action:
+ * Note the error information provided with this message and contact your
+ * support organization.
+ */
+
+/*? Text: "CTCM driver unloaded\n" */
+/*? Text: "%s: %s Internal error: net_device is NULL, ch = 0x%p\n" */
+/*? Text: "%s / Initializing the ctcm device driver failed, ret = %d\n" */
+/*? Text: "%s: %s: Internal error: Can't determine channel for interrupt device %s\n" */
+/*? Text: "CTCM driver initialized\n" */
+/*? Text: "%s: setup OK : r/w = %s/%s, protocol : %d\n" */
+/*? Text: "%s: Connected with remote side\n" */
+/*? Text: "%s: Restarting device\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/dasd
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/dasd
@@ -0,0 +1,704 @@
+/* dasd_ioctl */
+
+/*?
+ * Text: "%s: The DASD has been put in the quiesce state\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * No I/O operation is possible on this device.
+ * User action:
+ * Resume the DASD to enable I/O operations.
+ */
+
+/*?
+ * Text: "%s: I/O operations have been resumed on the DASD\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD is no longer in state quiesce and I/O operations can be performed
+ * on the device.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be formatted while it is enabled\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD you try to format is enabled. Enabled devices cannot be formatted.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: The specified DASD is a partition and cannot be formatted\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD you try to format is a partition. Partitions cannot be formatted
+ * separately. You can only format a complete DASD including all its partitions.
+ * User action:
+ * Format the complete DASD.
+ * ATTENTION: Formatting irreversibly destroys all data on all partitions
+ * of the DASD.
+ */
+
+/*?
+ * Text: "%s: The specified DASD is a partition and cannot be checked\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD you try to check is a partition. Partitions cannot be checked
+ * separately. You can only check a complete DASD including all its partitions.
+ * User action:
+ * Check the complete DASD.
+ */
+
+/*?
+ * Text: "%s: Formatting unit %d failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: start track
+ *   @3: return code
+ * Description:
+ * The formatting process might have been interrupted by a signal, for example,
+ * CTRL+C. If the process was not interrupted intentionally, an I/O error
+ * might have occurred.
+ * User action:
+ * Retry to format the device. If the error persists, check the log file for
+ * related error messages. If you cannot resolve the error, note the return
+ * code and contact your support organization.
+ */
+
+
+/* dasd */
+
+/*?
+ * Text: "%s: Cancelling request %p failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ *   @3: return code of previous function
+ * Description:
+ * In response to a user action, the DASD device driver tried but failed to
+ * cancel a previously started I/O operation.
+ * User action:
+ * Try the action again.
+ */
+
+/*?
+ * Text: "%s: Flushing the DASD request queue failed for request %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * As part of the unloading process, the DASD device driver flushes the
+ * request queue. This failed because a previously started I/O operation
+ * could not be canceled.
+ * User action:
+ * Try again to unload the DASD device driver or to shut down Linux.
+ */
+
+/*?
+ * Text: "The DASD device driver could not be initialized\n"
+ * Severity: Informational
+ * Description:
+ * The initialization of the DASD device driver failed because of previous
+ * errors.
+ * User action:
+ * Check for related previous error messages.
+ */
+
+/*?
+ * Text: "%s: Accessing the DASD failed because it is in probeonly mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The dasd= module or kernel parameter specified the probeonly attribute for
+ * the DASD you are trying to access. The DASD device driver cannot access
+ * DASDs that are in probeonly mode.
+ * User action:
+ * Change the dasd= parameter as to omit probeonly for the DASD and reload
+ * the DASD device driver. If the DASD device driver has been compiled into
+ * the kernel, reboot Linux.
+ */
+
+/*?
+ * Text: "%s: cqr %p timed out (%lus), %i retries remaining\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: request
+ *   @3: timeout value
+ *   @4: number of retries left
+ * Description:
+ * A try of the error recovery procedure (ERP) for the channel queued request
+ * (cqr) timed out and failed to recover the error. ERP continues for the DASD.
+ * User action:
+ * Ignore this message if it occurs infrequently and if the recovery succeeds
+ * during one of the retries. If this error persists, check for related
+ * previous error messages and report the problem to your support organization.
+ *
+ * The timeout can be changed by writing a new value to the sysfs 'expires' attribute of the DASD. The value specifies the timeout in seconds.
+ */
+
+/*?
+ * Text: "%s: cqr %p timed out (%lus) but cannot be ended, retrying in 5 s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: request
+ *   @3: timeout value
+ * Description:
+ * A try of the error recovery procedure (ERP) for the channel queued request
+ * (cqr) timed out and failed to recover the error. The I/O request submitted
+ * during the try could not be canceled. The ERP waits for 5 seconds before
+ * trying again.
+ * User action:
+ * Ignore this message if it occurs infrequently and if the recovery succeeds
+ * during one of the retries. If this error persists, check for related
+ * previous error messages and report the problem to your support organization.
+ *
+ * The timeout can be changed by writing a new value to the sysfs 'expires' attribute of the DASD. The value specifies the timeout in seconds.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be set offline while it is in use\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD cannot be set offline because it is in use by an internal process.
+ * An action to free the DASD might not have completed yet.
+ * User action:
+ * Wait some time and set the DASD offline later.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be set offline with open count %i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: count
+ * Description:
+ * The DASD is being used by one or more processes and cannot be set offline.
+ * User action:
+ * Ensure that the DASD is not in use anymore, for example, unmount all
+ * partitions. Then try again to set the DASD offline.
+ */
+
+/*?
+ * Text: "%s: Setting the DASD online failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * The DASD could not be set online because of previous errors.
+ * User action:
+ * Look for previous error messages. If you cannot resolve the error, note
+ * the return code and contact your support organization.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online with discipline %s failed with rc=%i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: discipline
+ *   @3: return code
+ * Description:
+ * The DASD could not be set online because of previous errors.
+ * User action:
+ * Look for previous error messages. If you cannot resolve the error, note the
+ * return code and contact your support organization.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online failed because of missing DIAG discipline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD was to be set online with discipline DIAG but this discipline of
+ * the DASD device driver is not available.
+ * User action:
+ * Ensure that the dasd_diag_mod module is loaded. If your Linux system does
+ * not include this module, you cannot set DASDs online with the DIAG
+ * discipline.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online failed because of a missing discipline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD was to be set online with a DASD device driver discipline that
+ * is not available.
+ * User action:
+ * Ensure that all DASD modules are loaded correctly.
+ */
+
+---------------------------
+
+/*?
+ * Text: "The statistics feature has been switched off\n"
+ * Severity: Informational
+ * Description:
+ * The statistics feature of the DASD device driver has been switched off.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The statistics feature has been switched on\n"
+ * Severity: Informational
+ * Description:
+ * The statistics feature of the DASD device driver has been switched on.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The statistics have been reset\n"
+ * Severity: Informational
+ * Description:
+ * The DASD statistics data have been reset.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s is not a supported value for /proc/dasd/statistics\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: value
+ * Description:
+ * An incorrect value has been written to /proc/dasd/statistics.
+ * The supported values are: 'set on', 'set off', and 'reset'.
+ * User action:
+ * Write a supported value to /proc/dasd/statistics.
+ */
+
+/*?
+ * Text: "%s is not a valid device range\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: range
+ * Description:
+ * A device range specified with the dasd= parameter is not valid.
+ * User action:
+ * Examine the dasd= parameter and correct the device range.
+ */
+
+/*?
+ * Text: "The probeonly mode has been activated\n"
+ * Severity: Informational
+ * Description:
+ * The probeonly mode of the DASD device driver has been activated. In this
+ * mode the device driver rejects any 'open' syscalls with EPERM.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The IPL device is not a CCW device\n"
+ * Severity: Error
+ * Description:
+ * The value for the dasd= parameter contains the 'ipldev' keyword. During
+ * the boot process this keyword is replaced with the device from which the
+ * IPL was performed. The 'ipldev' keyword is not valid if the IPL device is
+ * not a CCW device.
+ * User action:
+ * Do not specify the 'ipldev' keyword when performing an IPL from a device
+ * other than a CCW device.
+ */
+
+/*?
+ * Text: "A closing parenthesis ')' is missing in the dasd= parameter\n"
+ * Severity: Warning
+ * Description:
+ * The specification for the dasd= kernel or module parameter has an opening
+ * parenthesis '(' * without a matching closing parenthesis ')'.
+ * User action:
+ * Correct the parameter value.
+ */
+
+/*?
+ * Text: "The autodetection mode has been activated\n"
+ * Severity: Informational
+ * Description:
+ * The autodetection mode of the DASD device driver has been activated. In
+ * this mode the DASD device driver sets all detected DASDs online.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%*s is not a supported device option\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: length of option code
+ *   @2: option code
+ * Description:
+ * The dasd= parameter includes an unknown option for a DASD or a device range.
+ * Options are specified in parenthesis and immediately follow a device or
+ * device range.
+ * User action:
+ * Check the dasd= syntax and remove any unsupported options from the dasd=
+ * parameter specification.
+ */
+
+/*?
+ * Text: "PAV support has be deactivated\n"
+ * Severity: Informational
+ * Description:
+ * The 'nopav' keyword has been specified with the dasd= kernel or module
+ * parameter. The Parallel Access Volume (PAV) support of the DASD device
+ * driver has been deactivated.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "'nopav' is not supported on z/VM\n"
+ * Severity: Informational
+ * Description:
+ * For Linux instances that run as guest operating systems of the z/VM
+ * hypervisor Parallel Access Volume (PAV) support is controlled by z/VM not
+ * by Linux.
+ * User action:
+ * Remove 'nopav' from the dasd= module or kernel parameter specification.
+ */
+
+/*?
+ * Text: "High Performance FICON support has been deactivated\n"
+ * Severity: Informational
+ * Description:
+ * The 'nofcx' keyword has been specified with the dasd= kernel or module
+ * parameter. The High Performance FICON (transport mode) support of the DASD
+ * device driver has been deactivated.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The dasd= parameter value %s has an invalid ending\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: parameter value
+ * Description:
+ * The specified value for the dasd= kernel or module parameter is not correct.
+ * User action:
+ * Check the module or the kernel parameter.
+ */
+
+/*?
+ * Text: "Registering the device driver with major number %d failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DASD major
+ * Description:
+ * Major number 94 is reserved for the DASD device driver. The DASD device
+ * driver failed to register with this major number. Another device driver
+ * might have used major number 94.
+ * User action:
+ * Determine which device driver uses major number 94 instead of the DASD
+ * device driver and unload this device driver. Then try again to load the
+ * DASD device driver.
+ */
+
+/*?
+  * Text: "%s: default ERP has run out of retries and failed\n"
+  * Severity: Error
+  * Parameter:
+  *   @1: bus ID of the DASD
+  * Description:
+  * The error recovery procedure (ERP) tried to recover an error but the number
+  * of retries for the I/O was exceeded before the error could be resolved.
+  * User action:
+  * Check for related previous error messages.
+  */
+
+/*?
+ * Text: "%s: Unable to terminate request %p on suspend\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * As part of the suspend process, the DASD device driver terminates requests
+ * on the request queue. This failed because a previously started I/O operation
+ * could not be canceled. The suspend process will be stopped.
+ * User action:
+ * Try again to suspend the system.
+ */
+
+/*?
+ * Text: "%s: ERP failed for the DASD\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error recovery procedure (ERP) was performed for the DASD but failed.
+ * User action:
+ * Check the message log for previous related error messages.
+ */
+
+/*?
+ * Text: "%s: An error occurred in the DASD device driver, reason=%s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This problem indicates a program error in the DASD device driver.
+ * User action:
+ * Note the reason code and contact your support organization.
+*/
+
+/*?
+ * Text: "%s: No operational channel path is left for the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * All channel paths to the device have become non-operational. The DASD
+ * device driver suspends I/O operations and queues I/O requests for this
+ * device until at least one channel path becomes operational again.
+ * User action:
+ * Ensure that each channel path to the device has been set up correctly
+ * and that the related physical cable connections are in place.
+ */
+
+/*?
+ * Text: "%s: No verified channel paths remain for the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * All verified channel paths to the device have become non-operational.
+ * Any other paths to the device have previously been identified as not usable.
+ * The DASD device driver suspends I/O operations and queues I/O requests
+ * for this device until at least one channel path becomes operational
+ * again.
+ * User action:
+ * Ensure that each channel path to the device has been set up correctly
+ * and that the related physical cable connections are in place.
+ * Set all paths to the device offline and online again to repeat the path
+ * verification. Alternatively, set the device offline and online again to
+ * verify all available paths for this device.
+ * If this problem persists, gather Linux debug data and report the problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: A channel path to the device has become operational\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * At least one channel path of this device has become operational again.
+ * The DASD device driver resumes I/O operations to the device and processes
+ * the I/O requests that were queued while there was no operational channel path.
+ * User action:
+ * None.
+ */
+
+------------------------------------------------------------------------------------
+/* dasd_diag */
+
+/*?
+ * Text: "%s: A 64-bit DIAG call failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * 64-bit DIAG calls require a 64-bit z/VM version.
+ * User action:
+ * Use z/VM 5.2 or later or set the sysfs 'use_diag' attribute of the DASD to 0
+ * to switch off DIAG.
+ */
+
+/*?
+ * Text: "%s: Accessing the DASD failed because of an incorrect format (rc=%d)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * The format of the DASD is not correct.
+ * User action:
+ * Check the device format. For details about the return code see the
+ * section about the INITIALIZE function for DIAGNOSE Code X'250'
+ * in "z/VM CP Programming Services". If you cannot resolve the error, note
+ * the return code and contact your support organization.
+ */
+
+/*?
+ * Text: "%s: New DASD with %ld byte/block, total size %ld KB%s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: bytes per block
+ *   @3: size
+ *   @4: access mode
+ * Description:
+ * A DASD with the indicated block size and total size has been set online.
+ * If the DASD is configured as read-only to the real or virtual hardware,
+ * the message includes an indication of this hardware access mode. The
+ * hardware access mode is independent from the 'readonly' attribute of
+ * the device in sysfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: DIAG ERP failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * An error in the DIAG processing could not be recovered by the error
+ * recovery procedure (ERP) of the DIAG discipline.
+ * User action:
+ * Note the return code, check for related I/O errors, and report this problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: DIAG initialization failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * Initializing the DASD with the DIAG discipline failed. Possible reasons for
+ * this problem are that the device has a device type other than FBA or ECKD,
+ * or has a block size other than one of the supported sizes:
+ * 512 byte, 1024 byte, 2048 byte, or 4096 byte.
+ * User action:
+ * Ensure that the device can be written to and has a supported device type
+ * and block size. For details about the return code see the section about
+ * the INITIALIZE function for DIAGNOSE Code X'250' in "z/VM CP Programming
+ * Services". If you cannot resolve the error, note the error code and contact
+ * your support organization.
+ */
+
+/*?
+ * Text: "%s: Device type %d is not supported in DIAG mode\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: device type
+ * Description:
+ * Only DASD of type FBA and ECKD are supported in DIAG mode.
+ * User action:
+ * Set the sysfs 'use_diag' attribute of the DASD to 0 and try again to access
+ * the DASD.
+ */
+
+/*?
+ * Text: "Discipline %s cannot be used without z/VM\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: discipline name
+ * Description:
+ * The discipline that is specified with the dasd= kernel or module parameter
+ * is only available for Linux instances that run as guest operating
+ * systems of the z/VM hypervisor.
+ * User action:
+ * Remove the unsupported discipline from the parameter string.
+ */
+
+/*?
+ * Text: "%s: The access mode of a DIAG device changed to read-only\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A device changed its access mode from writeable to
+ * read-only while in use.
+ * User action:
+ * Set the device offline, ensure that the device is configured correctly in
+ * z/VM, then set the device online again.
+ */
+
+------------------------------------------------------------------------------------
+/* dasd_erp */
+
+/*?
+ * Text: "%s: A timeout error occurred for cqr %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * A channel queued request (cqr) failed because it timed out.
+ * One possible reason for this error is that a request did not
+ * complete within the timeout interval specified for the DASD.
+ * The timeout interval is set as the value of the 'timeout' sysfs
+ * attribute of a DASD. A value of 0 disables the timeout function.
+ * The timeout function can be used; for example, by mirroring setups;
+ * to quickly process a request queue for a DASD that has become unavailable.
+ * User action:
+ * Check the message log for previous related error messages.  Verify
+ * that the storage server and the connection from host to storage
+ * server are operational.  If the 'timeout' sysfs attribute of the
+ * DASD has been set to a value other than 0, verify that this
+ * setting is intentional and change it if required.
+ */
+
+/*?
+ * Text: "%s: A transport error occurred for cqr %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * A channel queued request (cqr) failed because the connection to the
+ * device was lost and the 'failfast' flag is set for the request.
+ * This flag can result from, for example:
+ *
+ * - A software layer above the DASD device driver;
+ *   for example, in a host based mirroring setup.
+ *
+ * - Value 1 for the 'failfast' sysfs attribute of the DASD.
+ *   This setting applies to all requests on the DASD.
+ *
+ * User action:
+ * Ensure that each channel path to the device has been set up
+ * correctly and that the related physical cable connections are in
+ * place. If the 'failfast' attribute of the DASD is set to 1,
+ * verify that this setting is intentional and change it to 0 if required.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online failed because the required module %s could not be loaded (rc=%d)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: kernel module name
+ *   @3: return code
+ * Description:
+ * The DASD was to be set online with discipline DIAG but this discipline of
+ * the DASD device driver is not available and an attempt to load the
+ * corresponding kernel module failed with the specified return code.
+ *
+ * User action:
+ * Ensure that the kernel module with the specified name is correctly installed
+ * or set the sysfs 'use_diag' attribute of the DASD to 0 to switch off DIAG.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/dasd-eckd
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/dasd-eckd
@@ -0,0 +1,2154 @@
+/* dasd_eckd */
+
+/*?
+ * Text: "%s: ERP failed for the DASD\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error recovery procedure (ERP) was performed for the DASD but failed.
+ * User action:
+ * Check the message log for previous related error messages.
+ */
+
+/*?
+ * Text: "%s: An error occurred in the DASD device driver, reason=%s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This problem indicates a program error in the DASD device driver.
+ * User action:
+ * Note the reason code and contact your support organization.
+*/
+
+/*?
+ * Text: "%s: Allocating memory for private DASD data failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD device driver maintains data structures for each DASD it manages.
+ * There is not enough memory to allocate these data structures for one or
+ * more DASD.
+ * User action:
+ * Free some memory and try the operation again.
+ */
+
+/*?
+ * Text: "%s: DASD with %d KB/block, %d KB total size, %d KB/track, %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: block size
+ *   @3: DASD size
+ *   @4: track size
+ *   @5: disc layout
+ * Description:
+ * A DASD with the shown characteristics has been set online.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Start track number %u used in formatting is too big\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: track number
+ * Description:
+ * The DASD format I/O control was used incorrectly by a formatting tool.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: Stop track number %u used in formatting is too big\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: track number
+ * Description:
+ * The DASD format I/O control was used incorrectly by a formatting tool.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: The DASD is not formatted\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A DASD has been set online but it has not been formatted yet. You must
+ * format the DASD before you can use it.
+ * User action:
+ * Format the DASD, for example, with dasdfmt.
+ */
+
+/*?
+ * Text: "%s: 0x%x is not a known command\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: command
+ * Description:
+ * This problem is likely to be caused by a programming error.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "%s: Track 0 has no records following the VTOC\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Linux has identified a volume table of contents (VTOC) on the DASD but
+ * cannot read any data records following the VTOC. A possible cause of this
+ * problem is that the DASD has been used with another System z operating
+ * system.
+ * User action:
+ * Format the DASD for usage with Linux, for example, with dasdfmt.
+ * ATTENTION: Formatting irreversibly destroys all data on the DASD.
+ */
+
+/*?
+ * Text: "%s: An I/O control call used incorrect flags 0x%x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: flags
+ * Description:
+ * The DASD format I/O control was used incorrectly.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: New DASD %04X/%02X (CU %04X/%02X) with %d cylinders, %d heads, %d sectors%s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: device type
+ *   @3: device model
+ *   @4: control unit type
+ *   @5: control unit model
+ *   @6: number of cylinders
+ *   @7: tracks per cylinder
+ *   @8: sectors per track
+ *   @9: access mode
+ * Description:
+ * A DASD with the shown characteristics has been set online.
+ * If the DASD is configured as read-only to the real or virtual hardware,
+ * the message includes an indication of this hardware access mode. The
+ * hardware access mode is independent from the 'readonly' attribute of
+ * the device in sysfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The disk layout of the DASD is not supported\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD device driver only supports the following disk layouts: CDL, LDL,
+ * FBA, CMS, and CMS RESERVED.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Start track %u used in formatting exceeds end track\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: track number
+ * Description:
+ * The DASD format I/O control was used incorrectly by a formatting tool.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: The DASD cache mode was set to %x (%i cylinder prestage)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: operation mode
+ *   @3: number of cylinders
+ * Description:
+ * The DASD cache mode has been changed. See the storage system documentation
+ * for information about the different cache operation modes.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be formatted with block size %u\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: block size
+ * Description:
+ * The block size specified for a format instruction is not valid. The block
+ * size must be between 512 and 4096 byte and must be a power of 2.
+ * User action:
+ * Call the format command with a supported block size.
+ */
+
+/*?
+ * Text: "%s: The UID of the DASD has changed\n"
+ * Severity: Error
+ * Parameter:
+ * @1: bus ID of the DASD
+ * Description:
+ * The Unique Identifier (UID) of a DASD that is currently in use has changed.
+ * This indicates that the physical disk has been replaced.
+ * User action:
+ * None if the replacement was intentional.
+ * If the disk change is not expected, stop using the disk to prevent possible
+ * data loss.
+*/
+
+
+/* dasd_3990_erp */
+
+/*?
+ * Text: "%s: is offline or not installed - INTERVENTION REQUIRED!!\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD to be accessed is not in an accessible state. The I/O operation
+ * will wait until the device is operational again. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * Make the DASD accessible again. For details see the storage system
+ * documentation.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be reached on any path (lpum=%x/opm=%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: last path used mask
+ *   @3: online path mask
+ * Description:
+ * After a path to the DASD failed, the error recovery procedure of the DASD
+ * device driver tried but failed to reconnect the DASD through an alternative
+ * path.
+ * User action:
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place. Check the file systems on the DASD when it is
+ * accessible again.
+ */
+
+/*?
+ * Text: "%s: Unable to allocate DCTL-CQR\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an internal error.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Parameter\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A data argument of a command is not valid. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - DPS Installation Check\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This operating system independent message is issued by the storage system
+ *  for one of the following reasons:
+ * - A 3380 Model D or E DASD does not have the Dynamic Path Selection (DPS)
+ * feature in the DASD A-unit.
+ * - The device type of an attached DASD is not supported by the firmware.
+ * - A type 3390 DASD is attached to a 3 MB channel.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Drive motor switch is off\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - CCW Count less than required\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The CCW count of a command is less than required. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Channel requested ... %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system. The possible reason codes indicate the following problems:
+ * 00 No Message.
+ * 01 The channel has requested unit check sense data.
+ * 02 The channel has requested retry and retry is exhausted.
+ * 03 A SA Check-2 error has occurred. This sense is presented with
+ *    Equipment Check.
+ * 04 The channel has requested retry and retry is not possible.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Status Not As Required: reason %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system. There are several potential reasons for this message;
+ * byte 8 contains the reason code.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device status 1 not valid\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Storage Path Restart\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An operation for an active channel program was queued in a Storage Control
+ * when a warm start was received by the path. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Reset Notification\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A system reset or its equivalent was received on an interface. The Unit
+ * Check that generates this sense is posted to the next channel initiated
+ * selection following the resetting event. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Command Sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An incorrect sequence of commands has occurred. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Missing device address bit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Subsystem Processing Error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A firmware logic error has been detected. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Seek incomplete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Command\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command was issued that is not in the 2107/1750 command set.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Command Invalid on Secondary Address\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command or order not allowed on a PPRC secondary device has been received
+ * by the secondary device. This is an operating system independent message
+ * that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Defective/Alternate Track Pointer\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A defective track has been accessed. The subsystem generates an invalid
+ * Defective/Alternate Track Pointer as a part of RAID Recovery.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Channel Returned with Incorrect retry CCW\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command portion of the CCW returned after a command retry sequence does
+ * not match the command for which retry was signaled. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Diagnostic of Special Command Violates File Mask\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command is not allowed under the Access Authorization specified by the
+ * File Mask. This is an operating system independent message that is issued
+ * by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Head address does not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device did not respond to selection\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device check-2 error or Set Sector is not complete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Device Error Source\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The device has completed soft error logging. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Data Pinned for Device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Modified data in cache or in persistent storage exists for the DASD. The
+ * data cannot be destaged to the device. This track is the first track pinned
+ * for this device. This is an operating system independent message that is
+ * issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel C\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device Status 1 not as expected\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Device Fenced - device = %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: sense data byte 4
+ * Description:
+ * The device shown in sense byte 4 has been fenced. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Interruption cannot be reset\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Index missing\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - DASD Fast Write inhibited\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * DASD Fast Write is not allowed because of a nonvolatile storage battery
+ * check condition. This is an operating system independent message that is
+ * issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid tag-in for an extended command sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Key area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Count area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Track physical address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - 3990 check-2 error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Offset active cannot be reset\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - RCC 1 and RCC 2 sequences not successful\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in count address area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Data area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel A\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in count address area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the key area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Caching status reset to default\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage director has assigned two new subsystem status devices and
+ * resets the status to its default value. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the data area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device not ready\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in key area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - DASD controller failed to set or reset the long busy latch\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Cylinder address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 3 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in data area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - Support facility errors\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Key area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - End operation with transfer count not zero\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - Microcode detected error %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: error code
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the count area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 3 - Allegiance terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Allegiance terminated because of a Reset Allegiance or an Unconditional
+ * Reserve command on another channel. This is an operating system independent
+ * message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Home address area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Count area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid tag-in during selection sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in data area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in home address area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Home address area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Data area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in home address area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the home address area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the home address area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the count area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in key area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid DCC selection response or timeout\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the data area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Operation Terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage system ends an operation related to an active channel program
+ * when termination and redrive are required and logging is not desired.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel B\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the key area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Volume is suspended duplex\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The duplex pair volume has entered the suspended duplex state because of a
+ * failure. This is an operating system independent message that is issued by
+ * the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel D\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - RCC 1 sequence not successful\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel E\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - 3990 microcode time out when stopping selection\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel F\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - RCC initiated by a connection check alert\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel G\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - extra RCC required\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel H\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Unexpected end operation response code\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Permanent path error (DASD controller not available)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Missing end operation; device transfer incomplete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Cache or nonvolatile storage equipment failure\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An equipment failure has occurred in the cache storage or nonvolatile
+ * storage of the storage system. This is an operating system independent
+ * message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - DPS cannot be filled\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Error correction code hardware fault\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Missing end operation; device transfer complete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - DASD controller not available on disconnected command chain\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - No interruption from device during a command chain\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - No response to selection after a poll interruption\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Track physical address did not compare while oriented\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Head address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid tag-in for an immediate command sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Cylinder address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - DPS checks after a system reset or selective reset\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Caching reinitiated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Caching has been automatically reinitiated following an error.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - End operation with transfer count zero\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Short busy time-out during device selection\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Caching terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage system was unable to initiate caching or had to suspend caching
+ * for a 3990 control unit. If this problem is caused by a failure condition,
+ * an additional message will provide more information about the failure.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * Check for additional messages that point out possible failures. For more
+ * information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Subsystem status cannot be determined\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The status of a DASD Fast Write or PPRC volume cannot be determined.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Nonvolatile storage terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage director has stopped using nonvolatile storage or cannot
+ * initiate nonvolatile storage. If this problem is caused by a failure, an
+ * additional message will provide more information about the failure. This is
+ * an operating system independent message that is issued by the storage system.
+ * User action:
+ * Check for additional messages that point out possible failures. For more
+ * information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: Write inhibited path encountered\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an informational message.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Device check-2 error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Track format incorrect\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A track format error occurred while data was being written to the DASD or
+ * while a duplex pair was being established. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Cache fast write access not authorized\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A request for Cache Fast Write Data access cannot be satisfied because
+ * of missing access authorization for the storage system. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: Data recovered during retry with PCI fetch mode active\n"
+ * Severity: Emerg
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A data error has been recovered on the storages system but the Linux file
+ * system cannot be informed about the data mismatch. To prevent Linux from
+ * running with incorrect data, the DASD device driver will trigger a kernel
+ * panic.
+ * User action:
+ * Reset your real or virtual hardware and reboot Linux.
+ */
+
+/*?
+ * Text: "%s: The specified record was not found\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The record to be accessed does not exist. The DASD might be unformatted
+ * or defect.
+ * User action:
+ * Try to format the DASD or replace it.
+ * ATTENTION: Formatting irreversibly destroys all data on the DASD.
+ */
+
+/*?
+ * Text: "%s: ERP %p (%02x) refers to %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to ERP
+ *   @3: ERP status
+ *   @4: cqr
+ * Description:
+ * This message provides debug information for the enhanced error recovery
+ * procedure (ERP).
+ * User action:
+ * If you do not need this information, you can suppress this message by
+ * switching off ERP logging, for example, by writing '1' to the 'erplog'
+ * sysfs attribute of the DASD.
+ */
+
+/*?
+ * Text: "%s: ERP chain at END of ERP-ACTION\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This message provides debug information for the enhanced error recovery
+ * procedure (ERP).
+ * User action:
+ * If you do not need this information, you can suppress this message by
+ * switching off ERP logging, for example, by writing '1' to the 'erplog'
+ * sysfs attribute of the DASD.
+ */
+
+/*?
+ * Text: "%s: The cylinder data for accessing the DASD is inconsistent\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error occurred in the storage system hardware.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: Accessing the DASD failed because of a hardware error\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error occurred in the storage system hardware.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: ERP chain at BEGINNING of ERP-ACTION\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This message provides debug information for the enhanced error recovery
+ * procedure (ERP).
+ * User action:
+ * If you do not need this information, you can suppress this message by
+ * switching off ERP logging, for example, by writing '1' to the 'erplog'
+ * sysfs attribute of the DASD.
+ */
+
+/*?
+ * Text: "%s: ERP %p has run out of retries and failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: ERP pointer
+ * Description:
+ * The error recovery procedure (ERP) tried to recover an error but the number
+ * of retries for the I/O was exceeded before the error could be resolved.
+ * User action:
+ * Check for related previous error messages.
+ */
+
+/*?
+ * Text: "%s: SIM - SRC: %02x%02x%02x%02x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: sense byte
+ *   @3: sense byte
+ *   @4: sense byte
+ *   @5: sense byte
+ * Description:
+ * This error message is a System Information Message (SIM) generated by the
+ * storage system. The System Reference Code (SRC) defines the error in detail.
+ * User action:
+ * Look up the SRC in the storage server documentation.
+ */
+
+/*?
+ * Text: "%s: log SIM - SRC: %02x%02x%02x%02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: sense byte
+ *   @3: sense byte
+ *   @4: sense byte
+ *   @5: sense byte
+ * Description:
+ * This System Information Message (SIM) is generated by the storage system.
+ * The System Reference Code (SRC) defines the error in detail.
+ * User action:
+ * Look up the SRC in the storage server documentation.
+ */
+
+/*?
+ * Text: "%s: Reading device feature codes failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * The device feature codes state which advanced features are supported by a
+ * device.
+ * Examples for advanced features are PAV or high performance FICON.
+ * Some early devices do not provide feature codes and no advanced features are
+ * available on these devices.
+ * User action:
+ * None, if the DASD does not provide feature codes. If the DASD provides
+ * feature codes, make sure that it is working correctly, then set it offline
+ * and back online.
+ */
+
+/*?
+ * Text: "%s: A channel path group could not be established\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Initialization of a DASD did not complete because a channel path group
+ * could not be established.
+ * User action:
+ * Make sure that the DASD is working correctly, then try again to set it
+ * online. If initialization still fails, reboot.
+ */
+
+/*?
+ * Text: "%s: The DASD is not operating in multipath mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD channel path group could not be configured to use multipath mode.
+ * This might negatively affect I/O performance on this DASD.
+ * User action:
+ * Make sure that the DASD is working correctly, then try again to set it
+ * online. If initialization still fails, reboot.
+ */
+
+/*?
+ * Text: "%s: Detecting the DASD disk layout failed because of an I/O error\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The disk layout of the DASD could not be detected because of an unexpected
+ * I/O error. The DASD device driver treats the device like an unformatted DASD,
+ * and partitions on the device are not accessible.
+ * User action:
+ * If the DASD is formatted, make sure that the DASD is working correctly,
+ * then set it offline and back online. If the DASD is unformatted, format the
+ * DASD, for example, with dasdfmt.
+ * ATTENTION: Formatting irreversibly destroys all data on the DASD.
+ */
+
+/*?
+ * Text: "%s: An I/O request was rejected because writing is inhibited\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An I/O request was returned with an error indication of 'command reject'
+ * and 'write inhibited'. The most likely reason for this error is a
+ * failed write request to a device that was attached as read-only in z/VM.
+ * User action:
+ * Set the device offline, ensure that the device is configured correctly in
+ * z/VM, then set the device online again.
+ */
+
+/*?
+ * Text: "%s: An Alias device was reassigned to a new base device with UID: %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the alias
+ *   @2: UID of new base device
+ * Description:
+ * The alias device with the indicated bus ID has been reassigned. The UID of the new base device is shown in the message.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Detecting the maximum supported data size for zHPF requests failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * High Performance FICON (zHPF) requests are limited to a hardware-dependent
+ * maximum data size. The DASD device driver failed to detect this size and zHPF
+ * is not available for this device.
+ * User action:
+ * Set the device offline and online again. If this problem persists, gather
+ * Linux debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Reading device feature codes failed (rc=%d) for new path %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ *   @3: path mask
+ * Description:
+ * A new path has been made available to the a device.
+ * A command to read the device feature codes on this device returned an error.
+ * The new path will not be used for I/O.
+ * User action:
+ * Set the new path offline and online again to repeat the path verification.
+ * Alternatively, set the device offline and online again to
+ * verify all available paths for this device.
+ * If this problem persists, gather Linux debug data and report the problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: Detecting the maximum data size for zHPF requests failed (rc=%d) for a new path %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ *   @3: path mask
+ * Description:
+ * High Performance FICON (zHPF) requests are limited to a hardware-dependent
+ * maximum data size. A command to detect this size for
+ * a new path returned an error. The new path will not be used for I/O.
+ * User action:
+ * Set the new path offline and online again to repeat the path verification.
+ * Alternatively, set the device offline and online again to
+ * verify all available paths for this device.
+ * If this problem persists, gather Linux debug data and report the problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: The maximum data size for zHPF requests %u on a new path %x is below the active maximum %u\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: size in bytes
+ *   @3: path mask
+ *   @4: size in bytes
+ * Description:
+ * High Performance FICON (zHPF) requests are limited to a hardware-dependent
+ * maximum data size. The maximum of the new path is below
+ * the previously established common maximum for the
+ * existing paths for this device. This could cause requests on the new
+ * path to fail. The new path will not be used for I/O.
+ * User action:
+ * Set the device offline and online again to establish a new common maximum
+ * data size for the device.
+ */
+
+/*?
+ * Text: "%s: The device reservation was lost\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This Linux instance has lost its reservation of the device to another
+ * operating system instance. Depending on the reservation policy for the
+ * device, I/O might be blocked until the other operating system instance
+ * surrenders the reservation or all I/O requests might fail until the
+ * device is reset.
+ * User action:
+ * None, if this situation is handled by system automation software.
+ * If this situation is not handled by automation, check the
+ * last_known_reservation_state attribute of the device in sysfs.
+ * If the value is 'lost', verify that the device is no longer reserved
+ * by another operating system instance, then set the device offline and
+ * online again. For any other value of the last_known_reservation_state
+ * no action is required. I/O will resume when the device reservation is
+ * surrendered by the other operating system instance.
+ */
+
+/*?
+ * Text: "%s: The storage server does not support raw-track access\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD cannot be accessed in raw-track access mode because the storage
+ * server does not have all required features for this access mode.
+ * In raw-track access mode, the DASD device driver accesses complete ECKD
+ * tracks.
+ * By default, the DASD device driver accesses only the data fields of ECKD
+ * devices and omits the count and key data fields.
+ * User action:
+ * Ensure that the raw_track_access sysfs attribute of the DASD has the value
+ * 0 to access the device in default ECKD mode.
+ */
+
+/*?
+ * Text: "%s: The newly added channel path %02X will not be used because it leads to a different device %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: logical path mask
+ *   @3: UID
+ * Description:
+ * The newly added channel path has a different UID than the DASD device. This indicates
+ * an incorrect cabling. This path is not going to be used.
+ * User action:
+ * Check the cabling of the DASD device. Disconnect and reconnect the cable.
+ */
+
+/*?
+ * Text: "%s: Not all channel paths lead to the same device, path %02X leads to device %s instead of %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: logical path mask
+ *   @3: UID
+ *   @4: UID
+ * Description:
+ * Some channel paths have a different UID than others. This indicates
+ * an incorrect cabling. The DASD device is not enabled.
+ * User action:
+ * Check cabling of the DASD device and retry to enable the device.
+ */
+
+/*?
+ * Text: "Service on the storage server caused path %x.%02x to go offline"
+ * Severity: Warning
+ * Parameter:
+ *   @1: channel subsystem ID
+ *   @2: CHPID
+ * Description:
+ * A channel path to the DASD has been set offline because of
+ * a service action on the storage server. The path will be set back
+ * online automatically when the service action is completed.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Path %x.%02x is back online after service on the storage server"
+ * Severity: Informational
+ * Parameter:
+ *   @1: channel subsystem ID
+ *   @2: CHPID
+ * Description:
+ * A path had been set offline temporarily because of a service
+ * action on the storage server.
+ * The service action has completed, and the channel path is available
+ * again.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: High Performance FICON disabled\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * High Performance FICON (HPF) has been disabled. Either the device
+ * lost HPF functionality, or none of the remaining channel paths are
+ * HPF capable.
+ * User action:
+ * Report the problem to your support organization.
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * Reset the device and channel paths by writing "all" or a logical path mask
+ * to the path_reset sysfs attribute of the device.
+ */
+
+/*?
+ * Text: "%s: Channel path %02X lost HPF functionality and is disabled\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: logical path mask
+ * Description:
+ * A channel path has lost High Performance FICON (HPF) functionality
+ * and was removed from regular operations.
+ * User action:
+ * Report the problem to your support organization.
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * Reset the device and channel paths by writing "all" or a logical path mask
+ * to the path_reset sysfs attribute of the device.
+ */
+
+/*?
+ * Text: "%s: Path %x.%02x (pathmask %02x) is disabled - IFCC threshold exceeded\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: cssid
+ *   @3: chpid
+ *   @4: logical path mask
+ * Description:
+ * Due to numerous interface or channel control checks (IFCCs), a channel path
+ * was removed from regular operations to retain good I/O performance.
+ * User action:
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * Reset the device and channel paths by writing "all" or a logical path mask
+ * to the path_reset sysfs attribute of the device.
+ * If the problem persists, report it to your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/dasd-fba
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/dasd-fba
@@ -0,0 +1,36 @@
+
+/*?
+ * Text: "%s: New FBA DASD %04X/%02X (CU %04X/%02X) with %d MB and %d B/blk%s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: device type
+ *   @3: device model
+ *   @4: control unit type
+ *   @5: control unit model
+ *   @6: size
+ *   @7: bytes per block
+ *   @8: access mode
+ * Description:
+ * A DASD with the shown characteristics has been set online.
+ * If the DASD is configured as read-only to the real or virtual hardware,
+ * the message includes an indication of this hardware access mode. The
+ * hardware access mode is independent from the 'readonly' attribute of
+ * the device in sysfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Allocating memory for private DASD data failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD device driver maintains data structures for each DASD it manages.
+ * There is not enough memory to allocate these data structures for one or
+ * more DASD.
+ * User action:
+ * Free some memory and try the operation again.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/dcssblk
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/dcssblk
@@ -0,0 +1,206 @@
+/*?
+ * Text: "Adjacent DCSSs %s and %s are not contiguous\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: name 1
+ *   @2: name 2
+ * Description:
+ * You can only map a set of two or more DCSSs to a single DCSS device if the
+ * DCSSs in the set form a contiguous memory space. The DCSS device cannot be
+ * created because there is a memory gap between two adjacent DCSSs.
+ * User action:
+ * Ensure that you have specified all DCSSs that belong to the set. Check the
+ * definitions of the DCSSs on the z/VM hypervisor to verify that they form
+ * a contiguous memory space.
+ */
+
+/*?
+ * Text: "DCSS %s and DCSS %s have incompatible types\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: name 1
+ *   @2: name 2
+ * Description:
+ * You can only map a set of two or more DCSSs to a single DCSS device if
+ * either all DCSSs in the set have the same type or if the set contains DCSSs
+ * of the two types EW and EN but no other type. The DCSS device cannot be
+ * created because at least two of the specified DCSSs are not compatible.
+ * User action:
+ * Check the definitions of the DCSSs on the z/VM hypervisor to verify that
+ * their types are compatible.
+ */
+
+/*?
+ * Text: "DCSS %s is of type SC and cannot be loaded as exclusive-writable\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * You cannot load a DCSS device in exclusive-writable access mode if the DCSS
+ * devise maps to one or more DCSSs of type SC.
+ * User action:
+ * Load the DCSS in shared access mode.
+ */
+
+/*?
+ * Text: "DCSS device %s is removed after a failed access mode change\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * To change the access mode of a DCSS device, all DCSSs that map to the device
+ * were unloaded. Reloading the DCSSs for the new access mode failed and the
+ * device is removed.
+ * User action:
+ * Look for related messages to find out why the DCSSs could not be reloaded.
+ * If necessary, add the device again.
+ */
+
+/*?
+ * Text: "All DCSSs that map to device %s are saved\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request has been submitted for the DCSS device. Changes to all DCSSs
+ * that map to the device are saved permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Device %s is in use, its DCSSs will be saved when it becomes idle\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request for the device has been deferred until the device becomes
+ * idle. Then changes to all DCSSs that the device maps to will be saved
+ * permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "A pending save request for device %s has been canceled\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request for the DCSSs that map to a DCSS device has been pending
+ * while the device was in use. This save request has been canceled. Changes to
+ * the DCSSs will not be saved permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Loaded %s with total size %lu bytes and capacity %lu sectors\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS names
+ *   @2: total size in bytes
+ *   @3: total size in 512 byte sectors
+ * Description:
+ * The listed DCSSs have been verified as contiguous and successfully loaded.
+ * The displayed sizes are the sums of all DCSSs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Device %s cannot be removed because it is not a known device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * The DCSS device you are trying to remove is not known to the DCSS device
+ * driver.
+ * User action:
+ * List the entries under /sys/devices/dcssblk/ to see the names of the
+ * existing DCSS devices.
+ */
+
+/*?
+ * Text: "Device %s cannot be removed while it is in use\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * You are trying to remove a device that is in use.
+ * User action:
+ * Make sure that all users of the device close the device before you try to
+ * remove it.
+ */
+
+/*?
+ * Text: "Device %s has become idle and is being saved now\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request for the DCSSs that map to a DCSS device has been pending
+ * while the device was in use. The device has become idle and all changes
+ * to the DCSSs are now saved permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Writing to %s failed because it is a read-only device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * The DCSS device is in shared access mode and cannot be written to. Depending
+ * on the type of the DCSSs that the device maps to, you might be able to
+ * change the access mode to exclusive-writable.
+ * User action:
+ * If the DCSSs of the device are of type SC, do not attempt to write to the
+ * device. If the DCSSs of the device are of type ER or SR, change the access
+ * mode to exclusive-writable before writing to the device.
+ */
+
+/*?
+ * Text: "The address range of DCSS %s changed while the system was suspended\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * After resuming the system, the start address or end address of a DCSS does
+ * not match the address when the system was suspended. DCSSs must not be
+ * changed after the system was suspended.
+ * This error cannot be recovered. The system is stopped with a kernel panic.
+ * User action:
+ * Reboot Linux.
+ */
+
+/*?
+ * Text: "Suspending the system failed because DCSS device %s is writable\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A system cannot be suspended if one or more DCSSs are accessed in exclusive-
+ * writable mode. DCSS segment types EW, SW, and EN are always writable and
+ * must be removed before a system is suspended.
+ * User action:
+ * Remove all DCSSs of segment types EW, SW, and EN by writing the DCSS name to
+ * the sysfs 'remove' attribute. Set the access mode for all DCSSs of segment
+ * types SR and ER to read-only by writing 1 to the sysfs 'shared' attribute of
+ * the DCSS. Then try again to suspend the system.
+ */
+
+/*?
+ * Text: "DCSS %s is of type SN or EN and cannot be saved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * DCSSs of type SN or EN cannot be saved.
+ * User action:
+ * If the DCSS was set up with the intention to prevent the content from being saved,
+ * no action is necessary.
+ * To be able to save the content, you must define the DCSS with a type other than SN or EN.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/diag288_wdt
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/diag288_wdt
@@ -0,0 +1,66 @@
+/*?
+ * Text: "The watchdog cannot be activated\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to activate the diag288 watchdog.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays inactive.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "The watchdog cannot be initialized\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to initialize the diag288 watchdog.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays inactive.
+ * A possible reason for this error is that your real or virtual hardware does not support
+ * the diag288 watchdog.
+ * User action:
+ * Confirm that the diag288 watchdog is supported in your environment.
+ * Use a watchdog that is supported in your environment.
+ */
+
+/*?
+ * Text: "The watchdog cannot be deactivated\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to deactivate the diag288 watchdog.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays active and a watchdog timeout will trigger the configured timeout action.
+ * The diag288 watchdog device driver might intentionally be configured to prevent deactivation.
+ * User action:
+ * You can configure the diag288 watchdog device driver such that it can be deactivated.
+ * If the diag288 device driver has been compiled as a separate module, diag288_wdt, reload the module
+ * without specifying the 'nowayout' module parameter.
+ * If the diag288 device driver has been compiled into your kernel,
+ * reboot Linux without specifying the 'diag288.nowayout' kernel parameter'.
+ */
+
+/*?
+ * Text: "The watchdog timer cannot be started or reset\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to start the diag288 watchdog or to set timer back to zero.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays inactive or becomes inactive.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "Linux cannot be suspended while the watchdog is in use\n"
+ * Severity: Error
+ * Description:
+ * The watchdog must not time out while Linux is suspended.
+ * Therefore, the diag288 watchdog device driver prevents Linux from being suspended
+ * while the watchdog is in use.
+ * User action:
+ * i) Stop the watchdog application. ii) If the problem persists, close the watchdog
+ * device node by issuing 'echo V > /dev/watchdog'.
+ * iii) If the device driver still prevents Linux from being suspended,
+ * contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/extmem
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/extmem
@@ -0,0 +1,293 @@
+/*?
+ * Text: "Querying a DCSS type failed with rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The DCSS kernel interface used z/VM diagnose call X'64' to query the
+ * type of a DCSS. z/VM failed to determine the type and returned an error.
+ * User action:
+ * Look for related messages to find out which DCSS is affected.
+ * For details about the return codes see the section about DIAGNOSE Code
+ * X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Loading DCSS %s failed with rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: return code
+ * Description:
+ * The DCSS kernel interface used diagnose call X'64' to load a DCSS. z/VM
+ * failed to load the DCSS and returned an error.
+ * User action:
+ * For details about the return codes see the section about DIAGNOSE Code
+ * X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "DCSS %s of range %p to %p and type %s loaded as exclusive-writable\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: starting page address
+ *   @3: ending page address
+ *   @4: DCSS type
+ * Description:
+ * The DCSS was loaded successfully in exclusive-writable access mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "DCSS %s of range %p to %p and type %s loaded in shared access mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: starting page address
+ *   @3: ending page address
+ *   @4: DCSS type
+ * Description:
+ * The DCSS was loaded successfully in shared access mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "DCSS %s is already in the requested access mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * A request to reload a DCSS with a new access mode has been rejected
+ * because the new access mode is the same as the current access mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "DCSS %s is in use and cannot be reloaded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * Reloading a DCSS in a different access mode has failed because the DCSS is
+ * being used by one or more device drivers. The DCSS remains loaded with the
+ * current access mode.
+ * User action:
+ * Ensure that the DCSS is not used by any device driver then try again to
+ * load the DCSS with the new access mode.
+ */
+
+/*?
+ * Text: "DCSS %s overlaps with used memory resources and cannot be reloaded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The DCSS has been unloaded and cannot be reloaded because it overlaps with
+ * another loaded DCSS or with the memory of the z/VM guest virtual machine
+ * (guest storage).
+ * User action:
+ * Ensure that no DCSS is loaded that has overlapping memory resources
+ * with the DCSS you want to reload. If the DCSS overlaps with guest storage,
+ * use the DEF STORE CONFIG z/VM CP command to create a sufficient storage gap
+ * for the DCSS. For details, see the section about the DCSS device driver in
+ * "Device Drivers, Features, and Commands".
+ */
+
+/*?
+ * Text: "Reloading DCSS %s failed with rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: return code
+ * Description:
+ * The DCSS kernel interface used z/VM diagnose call X'64' to reload a DCSS
+ * in a different access mode. The DCSS was unloaded but z/VM failed to reload
+ * the DCSS.
+ * User action:
+ * For details about the return codes see the section about DIAGNOSE Code
+ * X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Unloading unknown DCSS %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The specified DCSS cannot be unloaded. The DCSS is known to the DCSS device
+ * driver but not to the DCSS kernel interface. This problem indicates a
+ * program error in extmem.c.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*?
+ * Text: "Saving unknown DCSS %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The specified DCSS cannot be saved. The DCSS is known to the DCSS device
+ * driver but not to the DCSS kernel interface. This problem indicates a
+ * program error in extmem.c.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*?
+ * Text: "Saving a DCSS failed with DEFSEG response code %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: response-code
+ * Description:
+ * The DEFSEG z/VM CP command failed to permanently save changes to a DCSS.
+ * User action:
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP DEFSEG command (typically privilege class E).
+ * Look for related messages to find the cause of this error. See also message
+ * HCP<response-code>E in the DEFSEG section of the "z/VM CP Command and
+ * Utility Reference".
+ */
+
+/*?
+ * Text: "Saving a DCSS failed with SAVESEG response code %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: response-code
+ * Description:
+ * The SAVESEG z/VM CP command failed to permanently save changes to a DCSS.
+ * User action:
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP SAVESEG command (typically privilege class E).
+ * Look for related messages to find the cause of this error. See also message
+ * HCP<response-code>E in the SAVESEG section of the "z/VM CP Command and
+ * Utility Reference".
+ */
+
+/*?
+ * Text: "DCSS %s cannot be loaded or queried\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You cannot load or query the specified DCSS because it either is not defined
+ * in the z/VM hypervisor, or it is a class S DCSS, or it is above 2047 MB
+ * and the Linux system is a 31-bit system.
+ * User action:
+ * Use the CP command "QUERY NSS" to find out if the DCSS is a valid
+ * DCSS that can be loaded.
+ */
+
+/*?
+ * Text: "DCSS %s cannot be loaded or queried without z/VM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * A DCSS is a z/VM resource. Your Linux instance is not running as a z/VM
+ * guest operating system and, therefore, cannot load DCSSs.
+ * User action:
+ * Load DCSSs only on Linux instances that run as z/VM guest operating systems.
+ */
+
+/*?
+ * Text: "Loading or querying DCSS %s resulted in a hardware error\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * Either the z/VM DIAGNOSE X'64' query or load call issued for the DCSS
+ * returned with an error.
+ * User action:
+ * Look for previous extmem message to find the return code from the
+ * DIAGNOSE X'64' query or load call. For details about the return codes see
+ * the section about DIAGNOSE Code X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "DCSS %s has multiple page ranges and cannot be loaded or queried\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You can only load or query a DCSS with multiple page ranges if:
+ * - The DCSS has 6 or fewer page ranges
+ * - The page ranges form a contiguous address space
+ * - The page ranges are of type EW or EN
+ * User action:
+ * Check the definition of the DCSS to make sure that the conditions for
+ * DCSSs with multiple page ranges are met.
+ */
+
+/*?
+ * Text: "%s needs used memory resources and cannot be loaded or queried\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You cannot load or query the DCSS because it overlaps with an already
+ * loaded DCSS or with the memory of the z/VM guest virtual machine
+ * (guest storage).
+ * User action:
+ * Ensure that no DCSS is loaded that has overlapping memory resources
+ * with the DCSS you want to load or query. If the DCSS overlaps with guest
+ * storage, use the DEF STORE CONFIG z/VM CP command to create a sufficient
+ * storage gap for the DCSS. For details, see the section about the DCSS
+ * device driver in "Device Drivers, Features, and Commands".
+ */
+
+/*?
+ * Text: "DCSS %s is already loaded in a different access mode\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The DCSS you are trying to load has already been loaded in a different
+ * access mode. You cannot simultaneously load the DCSS in different modes.
+ * User action:
+ * Reload the DCSS in a different mode or load it with the same mode in which
+ * it has already been loaded.
+ */
+
+/*?
+ * Text: "There is not enough memory to load or query DCSS %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The available memory is not enough to load or query the DCSS.
+ * User action:
+ * Free some memory and repeat the failed operation.
+ */
+
+/*?
+ * Text: "DCSS %s overlaps with used storage and cannot be loaded\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You cannot load the DCSS because it overlaps with an already loaded DCSS
+ * or with the memory of the z/VM guest virtual machine (guest storage).
+ * User action:
+ * Ensure that no DCSS is loaded that has overlapping memory resources
+ * with the DCSS you want to load. If the DCSS overlaps with guest storage,
+ * use the DEF STORE CONFIG z/VM CP command to create a sufficient storage gap
+ * for the DCSS. For details, see the section about the DCSS device driver in
+ * "Device Drivers, Features, and Commands".
+ */
+
+/*?
+ * Text: "DCSS %s exceeds the kernel mapping range (%lu) and cannot be loaded\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: kernel mapping range in bytes
+ * Description:
+ * You cannot load the DCSS because it exceeds the kernel mapping range limit.
+ * User action:
+ * Ensure that the DCSS range is defined below the kernel mapping range.
+ */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/hmcdrv
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/hmcdrv
@@ -0,0 +1,22 @@
+/*?
+ * Text: "Allocating the requested cache size of %zu bytes failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: size
+ * Description:
+ * You cannot use the 'hmcdrv' module.
+ * Either the cache size that was specified for the 'hmcdrv' module exceeded
+ * the maximum of 1048576 (1 megabyte), or not enough free memory was
+ * available.
+ * If the 'hmcdrv' module was compiled into the kernel, the cache size was
+ * specified with the 'hmcdrv.cachesize' kernel parameter.
+ * For a separate 'hmcdrv' module, the cache size was specified with the
+ * 'cachesize=' module parameter.
+ * User action:
+ * Specify a smaller cache size and try again to load the module.
+ * Do not exceed the maximum specification of 1048576 (1 megabyte).
+ * If necessary, free some memory and try again.
+ * If the module is compiled into the kernel, you must reboot Linux to change
+ * the cache size specification.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/hugetlb
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/hugetlb
@@ -0,0 +1,13 @@
+/*?
+ * Text: "hugepagesz= specifies an unsupported page size %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: size
+ * Description:
+ * The hugepagesz= kernel parameter specifies a huge page size
+ * that is not supported.
+ * User action:
+ * Specify "1M" for 1 MB huge pages. These are supported as of z10.
+ * Specify "2G" for 2 GB huge pages. These are supported as of zEC12
+ * and zBC12 machines.
+ */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/hvc_iucv
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/hvc_iucv
@@ -0,0 +1,123 @@
+/*?
+ * Text: "The z/VM IUCV HVC device driver cannot be used without z/VM\n"
+ * Severity: Notice
+ * Description:
+ * The z/VM IUCV hypervisor console (HVC) device driver requires the
+ * z/VM inter-user communication vehicle (IUCV).
+ * User action:
+ * Set "hvc_iucv=" to zero in the kernel parameter line and reboot Linux.
+ */
+
+/*?
+ * Text: "%lu is not a valid value for the hvc_iucv= kernel parameter\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: hvc_iucv_devices
+ * Description:
+ * The "hvc_iucv=" kernel parameter specifies the number of z/VM IUCV
+ * hypervisor console (HVC) terminal devices.
+ * The parameter value ranges from 0 to 8.
+ * If zero is specified, the z/VM IUCV HVC device driver is disabled
+ * and no IUCV-based terminal access is available.
+ * User action:
+ * Correct the "hvc_iucv=" setting in the kernel parameter line and
+ * reboot Linux.
+ */
+
+/*?
+ * Text: "Creating a new HVC terminal device failed with error code=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: errno
+ * Description:
+ * The device driver initialization failed to allocate a new
+ * HVC terminal device.
+ * A possible cause of this problem is memory constraints.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Registering HVC terminal device as Linux console failed\n"
+ * Severity: Error
+ * Description:
+ * The device driver initialization failed to set up the first HVC terminal
+ * device for use as Linux console.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Registering IUCV handlers failed with error code=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: errno
+ * Description:
+ * The device driver initialization failed to register with z/VM IUCV to
+ * handle IUCV connections, as well as sending and receiving of IUCV messages.
+ * User action:
+ * Check for related IUCV error messages and see the errno manual page
+ * to find out what caused the problem.
+ */
+
+/*?
+ * Text: "Allocating memory failed with reason code=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: reason
+ * Description:
+ * The z/VM IUCV hypervisor console (HVC) device driver initialization failed,
+ * because of a general memory allocation failure. The reason code indicates
+ * the memory operation that has failed:
+ * 	kmem_cache (reason code=1),
+ * 	mempool (reason code=2), or
+ * 	hvc_iucv_allow= (reason code=3)
+ * User action:
+ * Consider assigning more memory to your z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "hvc_iucv_allow= does not specify a valid z/VM user ID list\n"
+ * Severity: Error
+ * Description:
+ * The "hvc_iucv_allow=" kernel parameter specifies a comma-separated list
+ * of z/VM user IDs that are permitted to connect to the z/VM IUCV hypervisor
+ * device driver.
+ * The z/VM user IDs in the list must not exceed eight characters and must
+ * not contain spaces.
+ * User action:
+ * Correct the "hvc_iucv_allow=" setting in the kernel parameter line and reboot
+ * Linux.
+ */
+
+/*?
+ * Text: "hvc_iucv_allow= specifies too many z/VM user IDs\n"
+ * Severity: Error
+ * Description:
+ * The "hvc_iucv_allow=" kernel parameter specifies a comma-separated list
+ * of z/VM user IDs that are permitted to connect to the z/VM IUCV hypervisor
+ * device driver.
+ * The number of z/VM user IDs that are specified with the "hvc_iucv_allow="
+ * kernel parameter exceeds the maximum of 500.
+ * User action:
+ * Correct the "hvc_iucv_allow=" setting by reducing the z/VM user IDs in
+ * the list and reboot Linux.
+ */
+
+/*?
+ * Text: "A connection request from z/VM user ID %s was refused\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: ID
+ * Description:
+ * An IUCV connection request from another z/VM guest virtual machine has been
+ * refused. The request was from a z/VM guest virtual machine that is not
+ * listed by the "hvc_iucv_allow=" kernel parameter.
+ * User action:
+ * Check the "hvc_iucv_allow=" kernel parameter setting.
+ * Consider adding the z/VM user ID to the "hvc_iucv_allow=" list in the kernel
+ * parameter line and reboot Linux.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/hypfs
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/hypfs
@@ -0,0 +1,56 @@
+/*?
+ * Text: "The hardware system does not support hypfs\n"
+ * Severity: Error
+ * Description:
+ * hypfs requires DIAGNOSE Code X'204' but this diagnose code is not available
+ * on your hardware. You need more recent hardware to use hypfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The hardware system does not provide all functions required by hypfs\n"
+ * Severity: Error
+ * Description:
+ * hypfs requires DIAGNOSE Code X'224' but this diagnode code is not available
+ * on your hardware. You need more recent hardware to use hypfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Updating the hypfs tree failed\n"
+ * Severity: Error
+ * Description:
+ * There was not enough memory available to update the hypfs tree.
+ * User action:
+ * Free some memory and try again to update the hypfs tree. Consider assigning
+ * more memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "%s is not a valid mount option\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: mount option
+ * Description:
+ * hypfs has detected mount options that are not valid.
+ * User action:
+ * See "Device Drivers Features and Commands" for information about valid
+ * mount options for hypfs.
+ */
+
+/*?
+ * Text: "Initialization of hypfs failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error code
+ * Description:
+ * Initialization of hypfs failed because of resource or hardware constraints.
+ * Possible reasons for this problem are insufficient free memory or missing
+ * hardware interfaces.
+ * User action:
+ * See errno.h for information about the error codes.
+ */
+
+/*? Text: "Hypervisor filesystem mounted\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/iucv
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/iucv
@@ -0,0 +1,33 @@
+/*?
+ * Text: "Defining an interrupt buffer on CPU %i failed with 0x%02x (%s)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: CPU number
+ *   @2: hexadecimal error value
+ *   @3: short error code explanation
+ * Description:
+ * Defining an interrupt buffer for external interrupts failed. Error
+ * value 0x03 indicates a problem with the z/VM directory entry of the
+ * z/VM guest virtual machine. This problem can also be caused by a
+ * program error.
+ * User action:
+ * If the error value is 0x03, examine the z/VM directory entry of your
+ * z/VM guest virtual machine. If the directory entry is correct or if the
+ * error value is not 0x03, report this problem to your support organization.
+ */
+
+/*?
+ * Text: "Suspending Linux did not completely close all IUCV connections\n"
+ * Severity: Warning
+ * Description:
+ * When resuming a suspended Linux instance, the IUCV base code found
+ * data structures from one or more IUCV connections that existed before the
+ * Linux instance was suspended. Modules that use IUCV connections must close
+ * these connections when a Linux instance is suspended. This problem
+ * indicates an error in a program that used an IUCV connection.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*? Text: "iucv_external_interrupt: out of memory\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/lcs
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/lcs
@@ -0,0 +1,169 @@
+/*?
+ * Text: "%s:  Allocating a socket buffer to interface %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: network interface
+ * Description:
+ * LAN channel station (LCS) devices require a socket buffer (SKB) structure
+ * for storing incoming data. The LCS device driver failed to allocate an SKB
+ * structure to the LCS device. A likely cause of this problem is memory
+ * constraints.
+ * User action:
+ * Free some memory and repeat the failed operation.
+ */
+
+/*?
+ * Text: "%s:  Shutting down the LCS device failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * A request to shut down a LAN channel station (LCS) device resulted in an
+ * error. The error is logged in the LCS trace at trace level 4.
+ * User action:
+ * Try again to shut down the device. If the error persists, see the LCS trace
+ * to find out what causes the error.
+ */
+
+/*?
+ * Text: "%s: Detecting a network adapter for LCS devices failed with rc=%d (0x%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: lcs_detect return code in decimal notation
+ *   @3: lcs_detect return code in hexadecimal notation
+ * Description:
+ * The LCS device driver could not initialize a network adapter.
+ * User action:
+ * Ensure that the physical connection from the port to the network is
+ * in place. If the error persists, note the return code from the error
+ * message and contact IBM support.
+ */
+
+/*?
+ * Text: "%s: A recovery process has been started for the LCS device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * The LAN channel station (LCS) device is shut down and restarted. The recovery
+ * process might have been initiated by a user or started automatically as a
+ * response to a device problem.
+ * User action:
+ * Wait until a message indicates the completion of the recovery process.
+ */
+
+/*?
+ * Text: "%s: An I/O-error occurred on the LCS device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * The LAN channel station (LCS) device reported a problem that can be recovered
+ * by the LCS device driver. Repeated occurrences of this problem indicate a
+ * malfunctioning device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process for the
+ * device, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device.
+ */
+
+/*?
+ * Text: "%s: A command timed out on the LCS device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * The LAN channel station (LCS) device reported a problem that can be recovered
+ * by the LCS device driver. Repeated occurrences of this problem indicate a
+ * malfunctioning device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process for the
+ * device, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device.
+ */
+
+/*?
+ * Text: "%s: An error occurred on the LCS device, rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: return code
+ * Description:
+ * The LAN channel station (LCS) device reported a problem that can be recovered
+ * by the LCS device driver. Repeated occurrences of this problem indicate a
+ * malfunctioning device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process for the
+ * device, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device.
+ */
+
+/*?
+ * Text: "%s: The LCS device stopped because of an error, dstat=0x%X, cstat=0x%X \n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: device status
+ *   @3: subchannel status
+ * Description:
+ * The LAN channel station (LCS) device reported an error. The LCS device driver
+ * might start a device recovery process.
+ * User action:
+ * If the device driver does not start a recovery process, initiate a recovery
+ * process, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device. If the problem persists, note the status information provided with
+ * the message and contact IBM support.
+ */
+
+/*?
+ * Text: "%s: Starting an LCS device resulted in an error, rc=%d!\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: ccw_device_start return code in decimal notation
+ * Description:
+ * The LAN channel station (LCS) device driver failed to initialize an LCS
+ * device. The device is not operational.
+ * User action:
+ * Initiate a recovery process, for example, by writing '1' to the 'recover'
+ * sysfs attribute of the device. If the problem persists, contact IBM support.
+ */
+
+/*?
+ * Text: "%s: Sending data from the LCS device to the LAN failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: ccw_device_resume return code in decimal notation
+ * Description:
+ * The LAN channel station (LCS) device driver could not send data to the LAN
+ * using the LCS device. This might be a temporary problem. Operations continue
+ * on the LCS device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process, for example,
+ * by writing '1' to the 'recover' sysfs attribute of the device. If the
+ * problem persists, contact IBM support.
+ */
+
+/*? Text: "Query IPAssist failed. Assuming unsupported!\n" */
+/*? Text: "Stoplan for %s initiated by LGW\n" */
+/*? Text: "Not enough memory to add new multicast entry!\n" */
+/*? Text: "Not enough memory for debug facility.\n" */
+/*? Text: "Adding multicast address failed. Table possibly full!\n" */
+/*? Text: "Error in opening device!\n" */
+/*? Text: "LCS device %s %s IPv6 support\n" */
+/*? Text: "Device %s successfully recovered!\n" */
+/*? Text: "LCS device %s %s Multicast support\n" */
+/*? Text: " Initialization failed\n" */
+/*? Text: "Loading %s\n" */
+/*? Text: "Initialization failed\n" */
+/*? Text: "Terminating lcs module.\n" */
+/*? Text: "Device %s could not be recovered!\n" */
+/*? Text: "Initializing the lcs device driver failed\n" */
+/*? Text: "%s: The lcs device driver failed to recover the device\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/monreader
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/monreader
@@ -0,0 +1,128 @@
+/*?
+ * Text: "Reading monitor data failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The z/VM *MONITOR record device driver failed to read monitor data
+ * because the IUCV REPLY function failed. The read function against
+ * the monitor record device returns EIO. All monitor data that has been read
+ * since the last read with 0 size is incorrect.
+ * User action:
+ * Disregard all monitor data that has been read since the last read with
+ * 0 size. If the device driver has been compiled as a separate module, unload
+ * and reload the monreader module. If the device driver has been compiled
+ * into the kernel, reboot Linux. For more information about possible causes
+ * of the error see the IUCV section in "z/VM CP Programming Services" and
+ * the *MONITOR section in "z/VM Performance".
+ */
+
+/*?
+ * Text: "z/VM *MONITOR system service disconnected with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: IPUSER SEVER return code
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor records through
+ * an IUCV connection to the z/VM *MONITOR system service. This connection
+ * has been severed and the read function of the z/VM *MONITOR device driver
+ * returns EIO. All data received since the last read with 0 size is incorrect.
+ * User action:
+ * Disregard all monitor data read since the last read with 0 size. Close and
+ * reopen the monitor record device. For information about the IPUSER SEVER
+ * return codes see "z/VM Performance".
+ */
+
+/*?
+ * Text: "The read queue for monitor data is full\n"
+ * Severity: Warning
+ * Description:
+ * The read function of the z/VM *MONITOR device driver returns EOVERFLOW
+ * because not enough monitor data has been read since the monitor device
+ * has been opened. Monitor data already read are valid and subsequent reads
+ * return valid data but some intermediate data might be missing.
+ * User action:
+ * Be aware that monitor data might be missing. Assure that you regularly
+ * read monitor data after opening the monitor record device.
+ */
+
+/*?
+ * Text: "Connecting to the z/VM *MONITOR system service failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: IUCV CONNECT return code
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor records through
+ * an IUCV connection to the z/VM *MONITOR system service. This connection
+ * could not be established when the monitor record device was opened. If
+ * the return code is 15, your z/VM guest virtual machine is not authorized
+ * to connect to the *MONITOR system service.
+ * User action:
+ * If the return code is 15, ensure that the IUCV *MONITOR statement is
+ * included in the z/VM directory entry for your z/VM guest virtual machine.
+ * For other IUCV CONNECT return codes see the IUCV section in "CP Programming
+ * Services" and the *MONITOR section in "z/VM  Performance".
+ */
+
+/*?
+ * Text: "Disconnecting the z/VM *MONITOR system service failed with rc=%i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: IUCV SEVER return code
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor data through an
+ * IUCV connection to the z/VM *MONITOR system service. This connection
+ * could not be closed when the monitor record device was closed. You might
+ * not be able to resume monitoring.
+ * User action:
+ * No immediate action is necessary. If you cannot open the monitor record
+ * device in the future, reboot Linux. For information about the IUCV SEVER
+ * return codes see the IUCV section in "CP Programming Services" and the
+ * *MONITOR section in "z/VM  Performance".
+ */
+
+/*?
+ * Text: "The z/VM *MONITOR record device driver cannot be loaded without z/VM\n"
+ * Severity: Error
+ * Description:
+ * The z/VM *MONITOR record device driver uses z/VM system services to provide
+ * monitor data about z/VM guest operating systems to applications on Linux.
+ * On Linux instances that run in environments other than the z/VM hypervisor,
+ * the z/VM *MONITOR record device driver does not provide any useful
+ * function and the corresponding monreader module cannot be loaded.
+ * User action:
+ * Load the z/VM *MONITOR record device driver only on Linux instances that run
+ * as guest operating systems of the z/VM hypervisor. If the z/VM *MONITOR
+ * record device driver has been compiled into the kernel, ignore this message.
+ */
+
+/*?
+ * Text: "The z/VM *MONITOR record device driver failed to register with IUCV\n"
+ * Severity: Error
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor data through an IUCV
+ * connection and needs to register with the IUCV device driver. This
+ * registration failed and the z/VM *MONITOR record device driver was not
+ * loaded. A possible cause of this problem is insufficient memory.
+ * User action:
+ * Free some memory and try again to load the module. If the z/VM *MONITOR
+ * record device driver has been compiled into the kernel, you might have to
+ * configure more memory and reboot Linux. If you do not want to read monitor
+ * data, ignore this message.
+ */
+
+/*?
+ * Text: "The specified *MONITOR DCSS %s does not have the required type SC\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The DCSS that was specified with the monreader.mondcss kernel parameter or
+ * with the mondcss module parameter cannot be a *MONITOR DCSS because it is
+ * not of type SC.
+ * User action:
+ * Confirm that you are using the name of the DCSS that has been configured as
+ * the *MONITOR DCSS on the z/VM hypervisor. If the default name, MONDCSS, is
+ * used, omit the monreader.mondcss or mondcss parameter.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/monwriter
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/monwriter
@@ -0,0 +1,17 @@
+/*?
+ * Text: "Writing monitor data failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The monitor stream application device driver used the z/VM diagnose call
+ * DIAG X'DC' to start writing monitor data. z/VM returned an error and the
+ * monitor data cannot be written. If the return code is 5, your z/VM guest
+ * virtual machine is not authorized to write monitor data.
+ * User action:
+ * If the return code is 5, ensure that your z/VM guest virtual machine's
+ * entry in the z/VM directory includes the OPTION APPLMON statement.
+ * For other return codes see the section about DIAGNOSE Code X'DC'
+ * in "z/VM CP Programming Services".
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/netiucv
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/netiucv
@@ -0,0 +1,156 @@
+/*?
+ * Text: "%s: The peer interface of the IUCV device has closed the connection\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ * Description:
+ * The peer interface on the remote z/VM guest virtual machine has closed the
+ * connection. Do not expect further packets on this interface. Any packets
+ * you send to this interface will be dropped.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The IUCV device failed to connect to z/VM guest %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: z/VM user ID
+ * Description:
+ * The connection cannot be established because the z/VM guest virtual
+ * machine with the peer interface is not running.
+ * User action:
+ * Ensure that the z/VM guest virtual machine with the peer interface is
+ * running; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: The IUCV device failed to connect to the peer on z/VM guest %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: z/VM user ID
+ * Description:
+ * The connection cannot be established because the z/VM guest virtual machine
+ * with the peer interface is not configured for IUCV connections.
+ * User action:
+ * Configure the z/VM guest virtual machine with the peer interface for IUCV
+ * connections; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: Connecting the IUCV device would exceed the maximum number of IUCV connections\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ * Description:
+ * The connection cannot be established because the maximum number of IUCV
+ * connections has been reached on the local z/VM guest virtual machine.
+ * User action:
+ * Close some of the established IUCV connections on the local z/VM guest
+ * virtual machine; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: z/VM guest %s has too many IUCV connections to connect with the IUCV device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * Connecting to the remote z/VM guest virtual machine failed because the
+ * maximum number of IUCV connections for the remote z/VM guest virtual
+ * machine has been reached.
+ * User action:
+ * Close some of the established IUCV connections on the remote z/VM guest
+ * virtual machine; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: The IUCV device cannot connect to a z/VM guest with no IUCV authorization\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ * Description:
+ * Because the remote z/VM guest virtual machine is not authorized for IUCV
+ * connections, the connection cannot be established.
+ * User action:
+ * Add the statements 'IUCV ALLOW' and 'IUCV ANY' to the z/VM directory
+ * entry of the remote z/VM guest virtual machine; then try again to
+ * establish the connection. See "z/VM CP Planning and Administration"
+ * for details about the IUCV statements.
+ */
+
+/*?
+ * Text: "%s: Connecting the IUCV device failed with error %d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: error code
+ * Description:
+ * The connection cannot be established because of an IUCV CONNECT error.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The IUCV device has been connected successfully to %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * The connection has been established and the interface is ready to
+ * transmit communication packages.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The IUCV interface to %s has been established successfully\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * The IUCV interface to the remote z/VM guest virtual machine has been
+ * established and can be activated with "ifconfig up" or an equivalent
+ * command.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The IUCV device is connected to %s and cannot be removed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * Removing a connection failed because the interface is active with a peer
+ * interface on a remote z/VM guest virtual machine.
+ * User action:
+ * Deactivate the interface with "ifconfig down" or an equivalent command;
+ * then try again to remove the interface.
+ */
+
+/*?
+ * Text: "%s: The peer z/VM guest %s has closed the connection\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * The peer interface is no longer available.
+ * User action:
+ * Either deactivate and remove the interface, or wait for the peer
+ * z/VM guest to re-establish the interface.
+ */
+
+/*? Text: "driver unloaded\n" */
+/*? Text: "driver initialized\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/numa
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/numa
@@ -0,0 +1,11 @@
+/*?
+ * Text: "NUMA mode: %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: mode
+ * Description:
+ * Linux started with the specified NUMA mode.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/numa_emu
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/numa_emu
@@ -0,0 +1,50 @@
+/*?
+ * Text: "Not enough memory for %d nodes, reducing node count\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: requested number of nodes
+ * Description:
+ * Using the requested memory stripe size for emulating the requested number of
+ * NUMA nodes requires more than the available memory. The number of nodes is
+ * specified with the emu_nodes= kernel parameter. The memory stripe size to
+ * be used for distributing the available memory among the nodes is specified
+ * with the emu_size= kernel parameter. Fewer nodes were created than the
+ * requested number; each node has one memory stripe of the requested size.
+ * User action:
+ * Specify fewer nodes, reduce the memory stripe size, or make more memory
+ * available to your Linux instance.
+ */
+
+/*?
+ * Text: "Creating %d nodes with memory stripe size %ld MB\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: number of nodes
+ *   @2: stripe size
+ * Description:
+ * NUMA emulation is activated with the reported number of NUMA nodes.
+ * The specified memory stripe size is used to distribute, in round-robin
+ * fashion, the available memory among the nodes.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Increasing memory stripe size from %ld MB to %ld MB\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: requested memory stripe size
+ *   @2: adjusted memory stripe size
+ * Description:
+ * NUMA  emulation  could  not  use  the  requested memory stripe size and
+ * therefore has increased it to the next possible value.
+ * The requested memory stripe size is a default value or it was specified
+ * with the emu_size= kernel parameter.
+ * The memory stripe size must be a multiple of the memory block size that
+ * can be read in hexadecimal notation from
+ * /sys/devices/system/memory/block_size_bytes.
+ * User action:
+ * To avoid this message in the future, specify a valid memory stripe size
+ * with the emu_size= kernel parameter.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/os_info
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/os_info
@@ -0,0 +1,36 @@
+/*?
+ * Text: "entry %i: %s (addr=0x%lx size=%lu)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: entry ID
+ *   @2: entry state
+ *   @3: entry address
+ *   @4: entry size
+ * Description:
+ * Linux is running in kdump mode and reports information defined by the
+ * previously running production kernel. Possible values for
+ * "entry state" are:
+ *
+ * - copied: The entry has been found, verified, and copied
+ *
+ * - not available: The entry has not been defined
+ *
+ * - checksum failed: The entry has been found, but it is not valid
+ * User action:
+ * If kdump fails, contact your service organization and include this message
+ * in the error report.
+ */
+
+/*?
+ * Text: "crashkernel: addr=0x%lx size=%lu\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: address
+ *   @2: size
+ * Description:
+ * Linux is running in kdump mode and reports the address and size of
+ * the memory area that was reserved for kdump by the previously running
+ * production kernel.
+ * User action:
+ * None.
+ */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/perf
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/perf
@@ -0,0 +1,90 @@
+/*?
+ * Text: "CPU[%i] CPUM_CF: ver=%u.%u A=%04x E=%04x C=%04x\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: first version number
+ *   @3: second version number
+ *   @4: counter set authorization
+ *   @5: counter set enable controls
+ *   @6: counter set activation controls
+ * Description:
+ * This message displays information about the CPU-measurement counter facility
+ * (CPUM_CF) on a particular CPU.  For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU[%i] CPUM_SF: basic=%i diag=%i min=%lu max=%lu cpu_speed=%u\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: authorization status for the basic-sampling function
+ *   @3: authorization status for the diagnostic-sampling function
+ *   @4: minimum sampling interval
+ *   @5: maximum sampling interval
+ *   @6: cpu speed
+ * Description:
+ * This message displays generic information about the CPU-measurement sampling
+ * facility (CPUM_SF) on a particular CPU.  For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU[%i] CPUM_SF: Basic-sampling: a=%i e=%i c=%i bsdes=%i tear=%016lx dear=%016lx\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: authorization control
+ *   @3: enable control
+ *   @4: activation control
+ *   @5: basic-sampling-data-entry size
+ *   @6: tear register contents
+ *   @7: dear register contents
+ * Description:
+ * This message displays information about the basic-sampling function of the
+ * CPU-measurement sampling facility (CPUM_SF) on a particular CPU.
+ * For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU[%i] CPUM_SF: Diagnostic-sampling: a=%i e=%i c=%i dsdes=%i tear=%016lx dear=%016lx\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: authorization control
+ *   @3: enable control
+ *   @4: activation control
+ *   @5: diagnostic-sampling-data-entry size
+ *   @6: tear register contents
+ *   @7: dear register contents
+ * Description:
+ * This message displays information about the diagnostic-sampling function of the
+ * CPU-measurement sampling facility (CPUM_SF) on a particular CPU.
+ * For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The sampling facility is already reserved by %p\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: address of perf sampling support owner
+ * Description:
+ * A process tried to reserve the sampling facility support, but it was already
+ * reserved by another process.
+ * User action:
+ * Check whether another process, for example, the perf program or OProfile is
+ * currently active.  Retry activating the sampling facility after the other
+ * process has ended.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/prng
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/prng
@@ -0,0 +1,103 @@
+/* prng */
+
+/*?
+ * Text: "prng runs in TDES mode with chunksize=%d and reseed_limit=%u\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: read chunk size in bytes
+ *   @2: reseed limit
+ * Description:
+ * The pseudo-random number device driver started in triple DES mode.
+ * For IBM mainframes earlier than IBM zEnterprise EC12 (zEC12),
+ * triple DES is the only available mode.
+ * As of zEC12, the preferred mode is SHA-512.
+ * User action:
+ * If triple DES is the expected mode, no action is required.
+ * Otherwise, verify that the prng started with the mode= module or
+ * prng.mode= kernel parameter set to a value other than 1.
+ * The value 1 forces triple DES mode. Also ensure that the mainframe
+ * runs with the latest firmware level.
+ */
+
+/*?
+ * Text: "The prng module stopped after running in triple DES mode\n"
+ * Severity: Informational
+ * Description:
+ * The pseudo-random number device driver was running in triple DES mode.
+ * The device driver module, prng, was unloaded, or it stopped
+ * because Linux shut down.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The prng module cannot start in SHA-512 mode\n"
+ * Severity: Error
+ * Description:
+ * The pseudo-random number device driver was loaded with the mode= module parameter
+ * or the prng.mode= kernel parameter set to 2. This setting forces SHA-512 mode,
+ * but the required support for MSA 5 is not available. This support requires an IBM
+ * zEnterprise EC12 (zEC12) or later mainframe.
+ * User action:
+ * If your mainframe is earlier than zEC12, set the mode= module or
+ * prng.mode= kernel parameter to 0 or 1 to run the
+ * pseudo-random number device driver in triple DES mode.
+ * Otherwise, ensure that MSA 5 support available.
+ */
+
+/*?
+ * Text: "prng runs in SHA-512 mode with chunksize=%d and reseed_limit=%u\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: read chunk size in bytes
+ *   @2: reseed limit
+ * Description:
+ * The pseudo-random number device driver started in SHA-512 mode.
+ * As of IBM zEnterprise EC12, this is the preferred mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The prng module stopped after running in SHA-512 mode\n"
+ * Severity: Informational
+ * Description:
+ * The pseudo-random number device driver was running in SHA-512 mode.
+ * The device driver module, prng, was unloaded, or stopped
+ * because Linux shut down.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The prng self test state test for the SHA-512 mode failed\n"
+ * Severity: Error
+ * Description:
+ * The pseudo-random number device driver is not operational because the self test failed.
+ * After processing a published National Institute of Standards and Technology (NIST) test vector for the
+ * Deterministic Random Bit Generator (DRBG) algorithm, the device driver
+ * was not in the expected working state. This failure might indicate
+ * that the cryptographic software or hardware is not working correctly.
+ * The processed NIST test vector was: Hash Drbg, Sha-512, Count #0.
+ * User action:
+ * Unload and reload the prng module, or
+ * if prng was compiled into the kernel, restart Linux.
+ * If the error persists, contact your support organization.
+ */
+
+/*?
+ * Text: "The prng self test data test for the SHA-512 mode failed\n"
+ * Severity: Error
+ * Description:
+ * The pseudo-random number device driver is not operational because the self test failed.
+ * After processing a published National Institute of Standards and Technology (NIST) test vector for the
+ * Deterministic Random Bit Generator (DRBG) algorithm, the device driver
+ * did not produce the expected pseudo-random data. This failure might indicate
+ * that the cryptographic software or hardware is not working correctly.
+ * The processed NIST test vector was: Hash Drbg, Sha-512, Count #0.
+ * User action:
+ * Unload and reload the prng module, or
+ * if prng was compiled into the kernel, restart Linux.
+ * If the error persists, contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/qeth
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/qeth
@@ -0,0 +1,929 @@
+/*?
+ * Text: "%s: The LAN is offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A start LAN command was sent by the qeth device driver but the physical or
+ * virtual adapter has not started the LAN. The LAN might take a few seconds
+ * to become available.
+ * User action:
+ * Check the status of the qeth device, for example, with the lsqeth command.
+ * If the device does not become operational within a few seconds, initiate a
+ * recovery process, for example, by writing '1' to the 'recover' sysfs
+ * attribute of the device.
+ */
+
+/*?
+ * Text: "%s: A recovery process has been started for the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A recovery process was started either by the qeth device driver or through
+ * a user command.
+ * User action:
+ * Wait until a message indicates the completion of the recovery process.
+ */
+
+/*?
+ * Text: "%s: The qeth device driver failed to recover an error on the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver performed an automatic recovery operation to recover
+ * an error on a qeth device. The recovery operation failed.
+ * User action:
+ * Try the following actions in the given order: i) Check the status of the
+ * qeth device, for example, with the lsqeth command. ii) Initiate a recovery
+ * process by writing '1' to the 'recover' sysfs attribute of the device.
+ * iii) Ungroup and regroup the subchannel triplet of the device. vi) Reboot
+ * Linux. v) If the problem persists, gather Linux debug data and report the
+ * problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Device recovery failed to restore all offload features\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver performed a recovery operation on a qeth device. Part
+ * of the recovery is to restore the offload features that were enabled before
+ * the recovery. At least one of those offload features could not be restored.
+ * User action:
+ * Check which offload features are enabled on the device, for example with
+ * the "ethtool -k" command. Try to explicitly re-enable the missing offload
+ * features for the device, for example with the "ethtool -K" command.
+ */
+
+/*?
+ * Text: "%s: The link for interface %s on CHPID 0x%X failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ *   @3: CHPID
+ * Description:
+ * A network link failed. A possible reason for this error is that a physical
+ * network cable has been disconnected.
+ * User action:
+ * Ensure that the network cable on the adapter hardware is connected properly.
+ * If the connection is to a guest LAN, ensure that the device is still coupled
+ * to the guest LAN.
+ */
+
+/*?
+ * Text: "%s: The link for %s on CHPID 0x%X has been restored\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ *   @3: CHPID
+ * Description:
+ * A failed network link has been re-established. A device recovery is in
+ * progress.
+ * User action:
+ * Wait until a message indicates the completion of the recovery process.
+ */
+
+/*?
+ * Text: "%s: A hardware operation timed out on the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A hardware operation timed out on the qeth device.
+ * User action:
+ * Check the status of the qeth device, for example, with the lsqeth command.
+ * If the device is not operational, initiate a recovery process, for example,
+ * by writing '1' to the 'recover' sysfs attribute of the device.
+ */
+
+/*?
+ * Text: "%s: The adapter hardware is of an unknown type\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver does not recognize the adapter hardware. The cause
+ * of this problem could be a hardware error or a Linux level that does not
+ * support your adapter hardware.
+ * User action:
+ * i) Investigate if your adapter hardware is supported by your Linux level.
+ * Consider using hardware that is supported by your Linux level or upgrading
+ * to a Linux level that supports your hardware. ii) Install the latest
+ * firmware on your adapter hardware. iii) If the problem persists and is not
+ * caused by a version mismatch, contact IBM support.
+ */
+
+/*?
+ * Text: "%s: The adapter is used exclusively by another host\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth adapter is exclusively used by another host.
+ * User action:
+ * Use another qeth adapter or configure this one not exclusively to a
+ * particular host.
+ */
+
+/*?
+ * Text: "%s: QDIO reported an error, rc=%i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: return code
+ * Description:
+ * The QDIO subsystem reported an error.
+ * User action:
+ * Check for related QDIO errors. Check the status of the qeth device, for
+ * example, with the lsqeth command. If the device is not operational, initiate
+ * a recovery process, for example, by writing '1' to the 'recover' sysfs
+ * attribute of the device.
+ */
+
+/*?
+ * Text: "%s: There is no kernel module to support discipline %d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: discipline
+ * Description:
+ * The qeth device driver or a user command requested a kernel module for a
+ * particular qeth discipline. Either the discipline is not supported by the
+ * qeth device driver or the requested module is not available to your Linux
+ * system.
+ * User action:
+ * Check if the requested discipline module has been compiled into the kernel
+ * or is present in /lib/modules/<version>/kernel/drivers/s390/net.
+ */
+
+/*?
+ * Text: "Initializing the qeth device driver failed\n"
+ * Severity: Error
+ * Parameter:
+ * Description:
+ * The base module of the qeth device driver could not be initialized.
+ * User action:
+ * See errno.h to determine the reason for the error.
+ * i) Reboot Linux. ii) If the problem persists, gather Linux debug data and
+ * report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Registering IP address %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: IP address
+ * Description:
+ * An IP address could not be registered with the network adapter.
+ * User action:
+ * Check if another operating system instance has already registered the
+ * IP address with the same network adapter or at the same logical IP subnet.
+ */
+
+/*?
+ * Text: "%s: Reading the adapter MAC address failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver could not read the MAC address from the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting ARP processing support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start ARP support on the network adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting IP fragmentation support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start IP fragmentation support on the
+ * network adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting VLAN support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start VLAN support on the network adapter.
+ * User action:
+ * None if you do not require VLAN support. If you need VLAN support,
+ * ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting multicast support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start multicast support on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Activating IPv6 support for %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not activate IPv6 support on the network
+ * adapter.
+ * User action:
+ * None if you do not require IPv6 communication. If you need IPv6 support,
+ * ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Enabling the passthrough mode for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not enable the passthrough mode on the
+ * network adapter. The passthrough mode is required for all network traffic
+ * other than IPv4. In particular, the passthrough mode is required for IPv6
+ * traffic.
+ * User action:
+ * None if all you want to support is IPv4 communication. If you want to support
+ * IPv6 or other network traffic apart from IPv4, ungroup and regroup the
+ * subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Enabling broadcast filtering for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not enable broadcast filtering on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up broadcast filtering for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not set up broadcast filtering on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up broadcast echo filtering for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not set up broadcast echo filtering on the
+ * network adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting HW checksumming for %s failed, using SW checksumming\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports hardware checksumming for IP packages
+ * but the qeth device driver could not start hardware checksumming on the
+ * adapter. The qeth device driver continues to use software checksumming for
+ * IP packages.
+ * User action:
+ * None if you do not require hardware checksumming for network
+ * traffic. If you want to enable hardware checksumming, ungroup and regroup
+ * the subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Enabling HW checksumming for %s failed, using SW checksumming\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports hardware checksumming for IP packages
+ * but the qeth device driver could not enable hardware checksumming on the
+ * adapter. The qeth device driver continues to use software checksumming for
+ * IP packages.
+ * User action:
+ * None if you do not require hardware checksumming for network
+ * traffic. If you want to enable hardware checksumming, ungroup and regroup
+ * the subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting outbound TCP segmentation offload for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports TCP segmentation offload, but the qeth device
+ * driver could not start this support on the adapter.
+ * User action:
+ * None if you do not require TCP segmentation offload. If you want to
+ * enable TCP segmentation offload, ungroup and regroup the subchannel triplet
+ * of the device. If this does not resolve the problem, reboot Linux. If the
+ * problem persists, gather Linux debug data and report the problem to your
+ * support organization.
+ */
+
+/*?
+ * Text: "%s: The network adapter failed to generate a unique ID\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * In IBM mainframe environments, network interfaces are not identified by
+ * a specific MAC address. Therefore, the network adapters provide the network
+ * interfaces with unique IDs to be used in their IPv6 link local addresses.
+ * Without such a unique ID, duplicate addresses might be assigned in other
+ * LPARs.
+ * User action:
+ * Install the latest firmware on the adapter hardware. Manually, configure
+ * an IPv6 link local address for this device.
+ */
+
+/*?
+ * Text: "There is no IPv6 support for the layer 3 discipline\n"
+ * Severity: Warning
+ * Description:
+ * If you want to use IPv6 with the layer 3 discipline, you need a Linux kernel
+ * with IPv6 support. Because your Linux kernel has not been compiled with
+ * IPv6 support, you cannot use IPv6 with the layer 3 discipline, even if your
+ * adapter supports IPv6.
+ * User action:
+ * Use a Linux kernel that has been complied to include IPv6 support if you
+ * want to use IPv6 with layer 3 qeth devices.
+ */
+
+/*?
+ * Text: "%s: The qeth device is not configured for the OSI layer required by z/VM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A qeth device that connects to a virtual network on z/VM must be configured for the
+ * same Open Systems Interconnection (OSI) layer as the virtual network. An ETHERNET
+ * guest LAN or VSWITCH uses the data link layer (layer 2) while an IP guest LAN
+ * or VSWITCH uses the network layer (layer 3).
+ * User action:
+ * If you are connecting to an ETHERNET guest LAN or VSWITCH, set the layer2 sysfs
+ * attribute of the qeth device to 1. If you are connecting to an IP guest LAN or
+ * VSWITCH, set the layer2 sysfs attribute of the qeth device to 0.
+ */
+
+/*?
+ * Text: "%s: Starting source MAC-address support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not enable source MAC-address on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: MAC address %pM already exists\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: MAC-address
+ * Description:
+ * Setting the MAC address for the qeth device fails, because this
+ * MAC address is already defined on the OSA CHPID.
+ * User action:
+ * Use a different MAC address for this qeth device.
+ */
+
+/*?
+ * Text: "%s: MAC address %pM is not authorized\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: MAC-address
+ * Description:
+ * This qeth device is a virtual network interface card (NIC), to which z/VM
+ * has already assigned a MAC address. z/VM MAC address verification does
+ * not allow you to change this predefined address.
+ * User action:
+ * None; use the MAC address that has been assigned by z/VM.
+ */
+
+/*?
+ * Text: "%s: The HiperSockets network traffic analyzer is activated\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+ * The corresponding HiperSockets interface has been switched into promiscuous mode.
+ * As a result, the HiperSockets network traffic analyzer is started on the device.
+ * User action:
+ * None.
+ */
+
+ /*?
+  * Text: "%s: The HiperSockets network traffic analyzer is deactivated\n"
+  * Severity: Informational
+  * Parameter:
+  *   @1: bus ID of the qeth device
+  * Description:
+  * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+  * Promiscuous mode has been switched off for the corresponding HiperSockets interface
+  * As a result, the HiperSockets network traffic analyzer is stopped on the device.
+  * User action:
+  * None.
+  */
+
+/*?
+ * Text: "%s: The device is not authorized to run as a HiperSockets network traffic analyzer\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+ * The corresponding HiperSockets interface is switched into promiscuous mode
+ * but the network traffic analyzer (NTA) rules configured at the Support Element (SE)
+ * do not allow tracing. Possible reasons are:
+ * - Tracing is not authorized for all HiperSockets LANs in the mainframe system
+ * - Tracing is not authorized for this HiperSockets LAN
+ * - LPAR is not authorized to enable an NTA
+ * User action:
+ * Configure appropriate HiperSockets NTA rules at the SE.
+ */
+
+/*?
+ * Text: "%s: A HiperSockets network traffic analyzer is already active in the HiperSockets LAN\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+ * The HiperSockets interface is switched into promiscuous mode but another
+ * HiperSockets device on the same HiperSockets LAN is already running as
+ * a network traffic analyzer.
+ * A HiperSockets LAN can only have one active network traffic analyzer.
+ * User action:
+ * Do not configure multiple HiperSockets devices in the same HiperSockets LAN as
+ * tracing devices.
+ */
+
+/*?
+ * Text: "%s: Enabling HW TX checksumming for %s failed, using SW TX checksumming\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports hardware checksumming for outgoing IP packages
+ * but the qeth device driver could not enable hardware TX checksumming on the
+ * adapter. The qeth device driver continues to use software checksumming for
+ * outgoing IP packages.
+ * User action:
+ * None if you do not require hardware checksumming for outgoing network
+ * traffic. If you want to enable hardware checksumming, ungroup and regroup
+ * the subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: A connection could not be established because of an OLM limit\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * z/OS has activated Optimized Latency Mode (OLM) for a connection through an OSA Express3 adapter.
+ * This reduces the maximum number of concurrent connections per physical port for shared adapters.
+ * The new connection would exceed the maximum. Linux cannot establish further connections using
+ * this adapter.
+ * User action:
+ * If possible, deactivate an existing connection that uses this adapter and try again to establish
+ * the new connection. If you cannot free an existing connection, use a different adapter for the
+ * new connection.
+ */
+
+/*?
+ * Text: "%s: Setting the device online failed because of insufficient authorization\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device is configured with OSX CHPIDs. An OSX CHPID cannot be activated unless the LPAR is explicitly authorized to access it.
+ * For z/VM guest operating systems, the z/VM user ID must be explicitly authorized in addition to the LPAR.
+ * You grant these authorizations through the Service Element.
+ * User action:
+ * At the Service Element, authorize the LPAR and, if applicable, the z/VM user ID for using the OSX CHPIDs with which the qeth device has been configured.
+ * Then try again to set the device online.
+ */
+
+/*?
+ * Text: "%s: portname is deprecated and is ignored\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * An OSA-Express port name was required to identify a shared OSA port.
+ * All operating system instances that shared the port had to use the same port name.
+ * This requirement no longer applies, and the specified portname attribute is ignored.
+ * User action:
+ * For future upgrades, remove OSA port name specifications from your
+ * network configuration.
+ */
+
+/*? Text: "core functions removed\n" */
+/*? Text: "%s: Device is a%s card%s%s%s\nwith link type %s.\n" */
+/*? Text: "%s: issue_next_read failed: no iob available!\n" */
+/*? Text: "%s: Priority Queueing not supported\n" */
+/*? Text: "%s: sense data available. cstat 0x%X dstat 0x%X\n" */
+/*? Text: "loading core functions\n" */
+/*? Text: "%s: MAC address %pM successfully registered on device %s\n" */
+/*? Text: "%s: Device successfully recovered!\n" */
+/*? Text: "register layer 2 discipline\n" */
+/*? Text: "unregister layer 2 discipline\n" */
+/*? Text: "%s: Hardware IP fragmentation not supported on %s\n" */
+/*? Text: "%s: IPv6 not supported on %s\n" */
+/*? Text: "%s: VLAN not supported on %s\n" */
+/*? Text: "%s: Inbound source MAC-address not supported on %s\n" */
+/*? Text: "%s: IPV6 enabled\n" */
+/*? Text: "%s: ARP processing not supported on %s!\n" */
+/*? Text: "%s: Hardware IP fragmentation enabled \n" */
+/*? Text: "%s: set adapter parameters not supported.\n" */
+/*? Text: "%s: VLAN enabled\n" */
+/*? Text: "register layer 3 discipline\n" */
+/*? Text: "%s: Outbound TSO enabled\n" */
+/*? Text: "%s: Broadcast not supported on %s\n" */
+/*? Text: "%s: Outbound TSO not supported on %s\n" */
+/*? Text: "%s: Inbound HW Checksumming not supported on %s,\ncontinuing using Inbound SW Checksumming\n" */
+/*? Text: "%s: Using no checksumming on %s.\n" */
+/*? Text: "%s: Broadcast enabled\n" */
+/*? Text: "%s: Multicast not supported on %s\n" */
+/*? Text: "%s: Using SW checksumming on %s.\n" */
+/*? Text: "%s: HW Checksumming (%sbound) enabled\n" */
+/*? Text: "unregister layer 3 discipline\n" */
+/*? Text: "%s: Multicast enabled\n" */
+/*? Text: "%s: QDIO data connection isolation is deactivated\n" */
+/*? Text: "%s: QDIO data connection isolation is activated\n" */
+/*? Text: "%s: Adapter does not support QDIO data connection isolation\n" */
+/*? Text: "%s: Adapter is dedicated. QDIO data connection isolation not supported\n" */
+/*? Text: "%s: TSO does not permit QDIO data connection isolation\n" */
+/*? Text: "%s: HW TX Checksumming enabled\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "qeth_l3: ignoring TR device\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+
+/*?
+ * Text: "%s: Turning off reflective relay mode at the adjacent switch failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The policy for the QDIO data connection isolation was
+ * changed successfully, and communications are now handled according to the
+ * new policy. The ISOLATION_FORWARD policy is no longer used, but the qeth
+ * device driver could not turn off the reflective relay mode on the adjacent
+ * switch port.
+ * User action:
+ * Check the adjacent switch for errors and correct the problem.
+ */
+
+/*?
+ * Text: "%s: The adjacent switch port does not support reflective relay mode\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The 'isolation' sysfs attribute of the qeth device could not be set to 'forward'.
+ * This setting selects the ISOLATION_FORWARD policy for the QDIO data connection
+ * isolation. The ISOLATION_FORWARD policy requires a network adapter in Virtual
+ * Ethernet Port Aggregator (VEPA) mode with an adjacent switch port in reflective
+ * relay mode.
+ * User action:
+ * Use a switch port that supports reflective relay mode if you want to use the
+ * ISOLATION_FORWARD policy for the qeth device.
+ */
+
+/*?
+ * Text: "%s: The reflective relay mode cannot be enabled at the adjacent switch port"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The 'isolation' sysfs attribute of the qeth device could not be set to 'forward'.
+ * This setting selects the ISOLATION_FORWARD policy for the QDIO data connection
+ * isolation. The ISOLATION_FORWARD policy requires a network adapter in Virtual
+ * Ethernet Port Aggregator (VEPA) mode with an adjacent switch port in reflective relay
+ * mode. The qeth device driver failed to enable the required reflective relay mode on
+ * the adjacent switch port although the switch port supports this mode.
+ * User action:
+ * Enable reflective relay mode on the switch for the adjacent port and try again.
+ */
+
+/*?
+ * Text: "%s: Interface %s is down because the adjacent port is no longer in reflective relay mode\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: interface name
+ * Description:
+ * The ISOLATION_FORWARD policy is active for the QDIO data connection isolation
+ * of the qeth device. This policy requires a network adapter in Virtual Ethernet
+ * Port Aggregator (VEPA) mode with an adjacent switch port in reflective relay mode.
+ * The reflective relay mode on the adjacent switch port was disabled. The qeth device
+ * was set offline and the interface was deactivated to prevent any unintended network traffic.
+ * User action:
+ * Enable the reflective relay mode again on the adjacent port or use the 'isolation'
+ * sysfs attribute of the qeth device to set a different policy for the QDIO data connection
+ * isolation. You can then resume operations by setting the qeth device back
+ * online and activating the interface.
+ */
+
+/*?
+ * Text: "%s: Failed to create completion queue\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device could not be configured with a completion queue.
+ * A completion queue is required to operate AF_IUCV communication in an LPAR.
+ * User action:
+ * i) Investigate if you have the latest firmware level in place.
+ * ii) If the problem persists and is not caused by a version mismatch, contact IBM
+ * support.
+ */
+
+/*?
+ * Text: "%s: Completion Queueing supported\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device supports completion queueing. This is required to
+ * set up AF_IUCV communication in an LPAR.
+ */
+
+/*?
+ * Text: "%s: Completion Queue support enabled"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device is enabled for completion queueing. This is part of
+ * the process to set up AF_IUCV communication in an LPAR.
+ */
+
+/*?
+ * Text: "%s: Completion Queue support disabled"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device is disabled for completion queueing. This device
+ * cannot or no longer be used to set up AF_IUCV communication in an LPAR.
+ */
+
+/*?
+ * Text: "%s: The device represents a Bridge Capable Port\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * You can configure this device as a Bridge Port.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The device is not configured as a Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The Bridge Port role cannot be withdrawn from a device
+ * that is not configured as a Bridge Port.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The LAN already has a primary Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A LAN can have multiple secondary Bridge Ports, but only
+ * one primary Bridge Port. Configuring the device as a
+ * primary Bridge Port failed because another port on the
+ * LAN has been configured as the primary Bridge Port.
+ * User action:
+ * Find out which operating system instance has configured the primary
+ * Bridge Port. Assure that the primary role for this port is withdrawn
+ * before trying again to configure your device as the primary Bridge
+ * Port. Alternatively, consider configuring your device as a secondary
+ * Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The device is already a secondary Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A device cannot be configured as a primary or secondary
+ * Bridge Port if it is already configured as a secondary Bridge Port.
+ * User action:
+ * None, if you want the device to be a secondary Bridge Port.
+ * If you want to configure the device as the primary Bridge Port,
+ * withdraw the secondary role by writing 'none' to the 'bridgeport_role'
+ * sysfs attribute of the device. Then try again to configure the
+ * device as the primary Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The LAN cannot have more secondary Bridge Ports\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A LAN can have up to five secondary Bridge Ports.
+ * You cannot configure a further device as a secondary
+ * Bridge Port unless the Bridge Ports role is withdrawn from one of
+ * the existing secondary Bridge Ports.
+ * User action:
+ * Assure that the Bridge Port role is withdrawn from one of the
+ * existing secondary Bridge Ports before trying again to configure your
+ * device as a secondary Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The device is already a primary Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A device cannot be configured as a primary or secondary
+ * Bridge Port if it is already configured as a primary Bridge Port.
+ * User action:
+ * None, if you want the device to be a primary Bridge Port.
+ * If you want to configure the device as a secondary Bridge Port,
+ * withdraw the primary role by writing 'none' to the 'bridgeport_role'
+ * sysfs attribute of the device. Then try again to configure the
+ * device as the secondary Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The device is not authorized to be a Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The device cannot be configured as a Bridge Port because
+ * the required authorizations in the hardware are not in place.
+ * User action:
+ * See your hardware documentation about how to authorize
+ * ports for becoming a Bridge Port.
+ */
+
+/*?
+ * Text: "%s: A Bridge Port is already configured by a different operating system\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * Linux instances cannot configure the target port as a Bridge Port.
+ * Another operating system already uses a Bridge Port on the HiperSockets
+ * or on the OSA adapter. For example, a z/VM instance might be using
+ * a port in a VSWITCH configuration. Multiple Bridge Ports on the same
+ * HiperSockets or OSA adapter must be configured by instances of the same
+ * operating system, for example, all Linux or all z/VM.
+ * User action:
+ * Reconsider your network topology. Configure Bridge Ports only for ports
+ * on adapters where any other Bridge Ports are configured by other Linux
+ * instances.
+ */
+
+/*?
+ * Text: "%s: Setting address notification failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * Enabling or disabling the address notification feature of a
+ * HiperSockets device failed. The device might not be configured as a
+ * Bridge Port.
+ * User action:
+ * None, unless you need address notifications for this device.
+ * If you need notifications, confirm that your device is attached to a
+ * HiperSockets LAN that supports Bridge Capable Ports and that your
+ * device is configured as a Bridge Port. If the 'bridgeport_role'
+ * sysfs attribute of the device contains, one of the values 'primary'
+ * or 'secondary' and you cannot set the address notification, contact
+ * your support organization.
+ */
+
+/*?
+ * Text: "%s: Address notification from the Bridge Port stopped %s (%s)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ *   @3: error reported by the hardware
+ * Description:
+ * A Bridge Port no longer provides address notifications.
+ * Possible reasons include traffic overflow and that the device is no
+ * longer configured as a Bridge Port. A udev event with
+ * BRIDGEDHOST=abort was emitted to alert applications that rely on the
+ * address notifications.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The qeth driver ran out of channel command buffers\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * Command buffers can temporarily run out during periods of
+ * intense network configuration activities.
+ * The device driver recovers from this condition as outstanding
+ * commands are completed.
+ * User action:
+ * Wait for a short time. If the problem persists,
+ * initiate a recovery process by writing '1' to the 'recover'
+ * sysfs attribute of the device.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/s390dbf
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/s390dbf
@@ -0,0 +1,83 @@
+/*?
+ * Text: "Root becomes the owner of all s390dbf files in sysfs\n"
+ * Severity: Warning
+ * Description:
+ * The S/390 debug feature you are using only supports uid/gid = 0.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Registering debug feature %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: feature name
+ * Description:
+ * The initialization of an S/390 debug feature failed. A likely cause of this
+ * problem is memory constraints. The system keeps running, but the debug
+ * data for this feature will not be available in sysfs.
+ * User action:
+ * Consider assigning more memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Registering view %s/%s would exceed the maximum number of views %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: feature name
+ *   @2: view name
+ *   @3: maximum
+ * Description:
+ * The maximum number of allowed debug feature views has been reached. The
+ * view has not been registered. The system keeps running but the new view
+ * will not be available in sysfs. This is a program error.
+ * User action:
+ * Report this problem to your support partner.
+ */
+
+/*?
+ * Text: "%s is not a valid level for a debug feature\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: level
+ * Description:
+ * Setting a new level for a debug feature by using the 'level' sysfs attribute
+ * failed. Valid levels are the minus sign (-) and the integers in the
+ * range 0 to 6. The minus sign switches off the feature. The numbers switch
+ * the feature on, where higher numbers produce more debug output.
+ * User action:
+ * Write a valid value to the 'level' sysfs attribute.
+ */
+
+/*?
+ * Text: "Flushing debug data failed because %c is not a valid area\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: debug area number
+ * Description:
+ * Flushing a debug area by using the 'flush' sysfs attribute failed. Valid
+ * values are the minus sign (-) for flushing all areas, or the number of the
+ * respective area for flushing a single area.
+ * User action:
+ * Write a valid area number or the minus sign (-) to the 'flush' sysfs
+ * attribute.
+ */
+
+/*?
+ * Text: "Allocating memory for %i pages failed\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: number of pages
+ * Description:
+ * Setting the debug feature size by using the 'page' sysfs attribute failed.
+ * Linux did not have enough memory for expanding the debug feature to the
+ * requested size.
+ * User action:
+ * Use a smaller number of pages for the debug feature or allocate more
+ * memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*? Text: "%s: set new size (%i pages)\n" */
+/*? Text: "%s: switched off\n" */
+/*? Text: "%s: level %i is out of range (%i - %i)\n" */
+/*? Text: "Registering view %s/%s failed due to out of memory\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/sclp_cmd
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/sclp_cmd
@@ -0,0 +1,44 @@
+/*? Text: "sync request failed (cmd=0x%08x, status=0x%02x)\n" */
+/*? Text: "readcpuinfo failed (response=0x%04x)\n" */
+/*? Text: "configure cpu failed (cmd=0x%08x, response=0x%04x)\n" */
+/*? Text: "configure channel-path failed (cmd=0x%08x, response=0x%04x)\n" */
+/*? Text: "read channel-path info failed (response=0x%04x)\n" */
+/*? Text: "assign storage failed (cmd=0x%08x, response=0x%04x, rn=0x%04x)\n" */
+/*? Text: "configure PCI I/O adapter failed: cmd=0x%08x  response=0x%04x\n" */
+/*? Text: "request failed (status=0x%02x)\n" */
+/*? Text: "request failed with response code 0x%x\n" */
+
+/*?
+ * Text: "Memory hotplug state changed, suspend refused.\n"
+ * Severity: Error
+ * Description:
+ * Suspend is refused after a memory hotplug operation was performed.
+ * User action:
+ * The system needs to be restarted and no memory hotplug operation must be
+ * performed in order to allow suspend.
+ */
+
+/*?
+ * Text: "Standby memory at 0x%llx (%lluM of %lluM usable)\n"
+ * Severity: Informational
+ * Parameter:
+ * @1: start address of standby memory
+ * @2: usable memory in MB
+ * @3: total detected memory in MB
+ * Description:
+ * Standby memory was detected. It can be used for memory hotplug only
+ * if it is aligned to the Linux hotplug memory block size.
+ * If the aligned amount of memory matches the total amount,
+ * all detected standby memory can be used. Otherwise, some of the detected
+ * memory is unaligned and cannot be used.
+ * User action:
+ * None, if the usable and the total amount of detected standby memory match.
+ * If the amounts of memory do not match,
+ * check the memory setup of your guest virtual machine and ensure that
+ * the standby memory start and end
+ * address is aligned to the Linux hotplug memory block size.
+ * On Linux, issue "cat /sys/devices/system/memory/block_size_bytes"
+ * to find the hotplug memory block size value in hexadecimal notation.
+ * On z/VM, query your memory setup with "vmcp q v store".
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/sclp_config
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/sclp_config
@@ -0,0 +1,15 @@
+/*?
+ * Text: "CPU capability may have changed\n"
+ * Severity: Informational
+ * Description:
+ * The capability of the CPUs in the configuration may have been upgraded
+ * or downgraded. This message may also appear if the capability of the
+ * CPUs in the configuration did not change.
+ * For details see the STORE SYSTEM INFORMATION description in the
+ * "Principles of Operation."
+ * User action:
+ * The user can examine /proc/sysinfo for CPU capability values.
+ */
+/*? Text: "Open for Business request failed with response code 0x%04x\n" */
+/*? Text: "SCLP receiver did not register to receive Configuration Management Data Events.\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/sclp_cpi
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/sclp_cpi
@@ -0,0 +1,3 @@
+/*? Text: "request failed (status=0x%02x)\n" */
+/*? Text: "request failed with response code 0x%x\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/sclp_ocf
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/sclp_ocf
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/sclp_sdias
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/sclp_sdias
@@ -0,0 +1,4 @@
+/*? Text: "sclp_send failed for get_nr_blocks\n" */
+/*? Text: "SCLP error: %x\n" */
+/*? Text: "sclp_send failed: %x\n" */
+/*? Text: "Error from SCLP while copying hsa. Event status = %x\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/scm_block
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/scm_block
@@ -0,0 +1,51 @@
+/*?
+ * Text: "%lx: The capabilities of the SCM increment changed\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: start address of the SCM increment
+ * Description:
+ * A configuration change is in progress for the storage class memory (SCM)
+ * increment.
+ * User action:
+ * Verify that the capability of the SCM increment is as intended; for
+ * example, with lsscm.
+ */
+
+/*?
+ * Text: "An I/O operation to SCM failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * An error occurred during I/O to storage class memory (SCM). The operation
+ * was repeated, but the maximum number of retries was exceeded before the
+ * request could be fulfilled.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "%lx: Write access to the SCM increment is suspended\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: start address of the SCM increment
+ * Description:
+ * A concurrent firmware upgrade is in progress. For the duration of the
+ * upgrade, write access to the storage class memory (SCM) increment has been
+ * suspended.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%lx: Write access to the SCM increment is restored\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: start address of the SCM increment
+ * Description:
+ * Write access to the storage class memory (SCM) increment was restored
+ * after a temporary suspension during a concurrent firmware upgrade.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/setup
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/setup
@@ -0,0 +1,165 @@
+/*?
+ * Text: "The initial RAM disk does not fit into the memory\n"
+ * Severity: Error
+ * Description:
+ * The load address and the size of the initial RAM disk specify a memory
+ * area that is not available.
+ * User action:
+ * Lower the load address of the initial RAM disk, reduce the size of the
+ * initial RAM disk, or increase the size of the system memory to make the
+ * initial RAM disk fit into the memory.
+ */
+
+/*?
+ * Text: "The maximum memory size is %luMB\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: size in MB
+ * Description:
+ * The system memory size cannot exceed the amount of memory that is
+ * provided by the real or virtual hardware. It can be further reduced
+ * through an upper memory address limit that is specified with the
+ * mem= kernel parameter.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running as a z/VM guest operating system in 31-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 31-bit Linux kernel detected that it is running as a guest operating
+ * system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running natively in 31-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 31-bit Linux kernel detected that it is running on an IBM mainframe,
+ * either as the sole operating system in an LPAR or as the sole operating
+ * system on the entire mainframe. The Linux kernel is not running as a
+ * guest operating system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The hardware system has IEEE compatible floating point units\n"
+ * Severity: Informational
+ * Description:
+ * The Linux kernel detected that it is running on a hardware system with
+ * CPUs that have IEEE compatible floating point units.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The hardware system has no IEEE compatible floating point units\n"
+ * Severity: Informational
+ * Description:
+ * The Linux kernel detected that it is running on a hardware system with
+ * CPUs that do not have IEEE compatible floating point units.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running as a z/VM guest operating system in 64-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 64-bit Linux kernel detected that it is running as a guest operating
+ * system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running under KVM in 64-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 64-bit Linux kernel detected that it is running as a guest operating
+ * system of the KVM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running natively in 64-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 64-bit Linux kernel detected that it is running on an IBM mainframe,
+ * either as the sole operating system in an LPAR or as the sole operating
+ * system on the entire mainframe. The Linux kernel is not running as a
+ * guest operating system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Defining the Linux kernel NSS failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The Linux kernel could not define the named saved system (NSS) with
+ * the z/VM CP DEFSYS command. The return code represents the numeric
+ * portion of the CP DEFSYS error message.
+ * User action:
+ * For return code 1, the z/VM guest virtual machine is not authorized
+ * to define named saved systems.
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP DEFSYS command (typically privilege class E).
+ * For other return codes, see the help and message documentation for
+ * the CP DEFSYS command.
+ */
+
+/*?
+ * Text: "Saving the Linux kernel NSS failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The Linux kernel could not save the named saved system (NSS) with
+ * the z/VM CP SAVESYS command. The return code represents the numeric
+ * portion of the CP SAVESYS error message.
+ * User action:
+ * For return code 1, the z/VM guest virtual machine is not authorized
+ * to save named saved systems.
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP SAVESYS command (typically privilege class E).
+ * For other return codes, see the help and message documentation for
+ * the CP SAVESYS command.
+ */
+
+/*?
+ * Text: "crashkernel reservation failed: %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: reason string
+ * Description:
+ * The memory reservation for the kdump "crashkernel" parameter was not
+ * successful. The Linux kernel was either not able to find a free memory
+ * area or an invalid area has been defined. The reason string describes the
+ * cause of the failure in more detail.
+ * User action:
+ * Increase the memory footprint of your virtual machine or adjust the values
+ * for the "crashkernel" kernel parameter. Then boot your Linux system again.
+ */
+
+/*?
+ * Text: "Reserving %lluMB of memory at %lluMB for crashkernel (System RAM: %luMB)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: amount of reserved memory
+ *   @2: storage location of reserved memory
+ *   @3: amount of system RAM
+ * Description:
+ * The memory reservation for the kdump "crashkernel" parameter was successful
+ * and a kdump kernel can now be loaded with the kexec tool.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/smsgiucv
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/smsgiucv
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/smsgiucv_app
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/smsgiucv_app
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/tape
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/tape
@@ -0,0 +1,63 @@
+/*?
+ * Text: "%s: A tape unit was detached while in use\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A tape unit has been detached from the I/O configuration while a tape
+ * was being accessed. This typically results in I/O error messages and
+ * potentially in damaged data on the tape.
+ * User action:
+ * Check the output of the application that accesses the tape device.
+ * If this problem occurred during a write-type operation, consider repeating
+ * the operation after bringing the tape device back online.
+ */
+
+/*?
+ * Text: "%s: A tape cartridge has been mounted\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A tape cartridge has been inserted into the tape unit. The tape in the
+ * tape unit is ready to be accessed.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The tape cartridge has been successfully unloaded\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape cartridge has been unloaded from the tape unit. Insert a tape
+ * cartridge before accessing the tape device.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "A cartridge is loaded in tape device %s, refusing to suspend\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A request to suspend a tape device currently loaded with a cartridge is
+ * rejected.
+ * User action:
+ * Unload the tape device. Then try to suspend the system again.
+ */
+
+/*?
+ * Text: "Tape device %s is busy, refusing to suspend\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A request to suspend a tape device being currently in use is rejected.
+ * User action:
+ * Terminate applications performing tape operations
+ * and then try to suspend the system again.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/tape_34xx
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/tape_34xx
@@ -0,0 +1,418 @@
+/*?
+ * Text: "%s: An unexpected condition %d occurred in tape error recovery\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: number
+ * Description:
+ * The control unit has reported an error condition that is not recognized by
+ * the error recovery process of the tape device driver.
+ * User action:
+ * Report this problem and the condition number from the message to your
+ * support organization.
+ */
+
+/*?
+ * Text: "%s: A data overrun occurred between the control unit and tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A data overrun error has occurred on the connection between the control
+ * unit and the tape unit. If this problem occurred during a write-type
+ * operation, the integrity of the data on the tape might be compromised.
+ * User action:
+ * Use a faster connection. If this problem occurred during a write-type
+ * operation, consider repositioning the tape and repeating the operation.
+ */
+
+/*?
+ * Text: "%s: The block ID sequence on the tape is incorrect\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The control unit has detected an incorrect block ID sequence on the tape.
+ * This problem typically indicates that the data on the tape is damaged.
+ * User action:
+ * If this problem occurred during a write-type operation reposition the tape
+ * and repeat the operation.
+ */
+
+/*?
+ * Text: "%s: A read error occurred that cannot be recovered\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A read error has occurred that cannot be recovered. The current tape might
+ * be damaged.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: A write error on the tape cannot be recovered\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A write error has occurred that could not be recovered by the automatic
+ * error recovery process.
+ * User action:
+ * Use a different tape cartridge.
+ */
+
+/*?
+ * Text: "%s: Writing the ID-mark failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The ID-mark at the beginning of tape could not be written. The tape medium
+ * might be write-protected.
+ * User action:
+ * Try a different tape cartridge. Ensure that the write-protection on the
+ * cartridge is switched off.
+ */
+
+/*?
+ * Text: "%s: Reading the tape beyond the end of the recorded area failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A read-type operation failed because it extended beyond the end of the
+ * recorded area on the tape medium.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The tape contains an incorrect block ID sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The control unit has detected an incorrect block ID sequence on the tape.
+ * This problem typically indicates that the data on the tape is damaged.
+ * User action:
+ * If this problem occurred during a write-type operation reposition the tape
+ * and repeat the operation.
+ */
+
+/*?
+ * Text: "%s: A path equipment check occurred for the tape device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A path equipment check has occurred. This check indicates problems with the
+ * connection between the mainframe system and the tape control unit.
+ * User action:
+ * Ensure that the cable connections between the mainframe system and the
+ * control unit are securely in place and not damaged.
+ */
+
+/*?
+ * Text: "%s: The tape unit cannot process the tape format\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * Either the tape unit is not able to read the format ID mark, or the
+ * specified format is not supported by the tape unit.
+ * User action:
+ * If you do not need the data recorded on the current tape, use a different
+ * tape or write a new format ID mark at the beginning of the tape. Be aware
+ * that writing a new ID mark leads to a loss of all data that has been
+ * recorded on the tape. If you need the data on the current tape, use a tape
+ * unit that supports the tape format.
+ */
+
+/*?
+ * Text: "%s: The tape medium is write-protected\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A write-type operation failed because the tape medium is write-protected.
+ * User action:
+ * Eject the tape cartridge, switch off the write protection on the cartridge,
+ * insert the cartridge, and try the operation again.
+ */
+
+/*?
+ * Text: "%s: The tape does not have the required tape tension\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape does not have the required tape tension.
+ * User action:
+ * Rewind and reposition the tape, then repeat the operation.
+ */
+
+/*?
+ * Text: "%s: The tape unit failed to load the cartridge\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An error has occurred while loading the tape cartridge.
+ * User action:
+ * Unload the cartridge and load it again.
+ */
+
+/*?
+ * Text: "%s: Automatic unloading of the tape cartridge failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit failed to unload the cartridge.
+ * User action:
+ * Unload the cartridge manually by using the eject button on the tape unit.
+ */
+
+/*?
+ * Text: "%s: An equipment check has occurred on the tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * Possible reasons for the check condition are a unit adapter error, a buffer
+ * error on the lower interface, an unusable internal path, or an error that
+ * has occurred while loading the cartridge.
+ * User action:
+ * Examine the tape unit and the cartridge loader. Consult the tape unit
+ * documentation for details.
+ */
+
+/*?
+ * Text: "%s: The tape information states an incorrect length\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape is shorter than stated at the beginning of the tape data. A
+ * possible reason for this problem is that the tape might have been physically
+ * truncated. Data written to the tape might be incomplete or damaged.
+ * User action:
+ * If this problem occurred during a write-type operation, consider repeating
+ * the operation with a different tape cartridge.
+ */
+
+/*?
+ * Text: "%s: The tape unit is not ready\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit is online but not ready.
+ * User action:
+ * Turn the ready switch on the tape unit to the ready position and try the
+ * operation again.
+ */
+
+/*?
+ * Text: "%s: The tape medium has been rewound or unloaded manually\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit rewind button, unload button, or both have been used to
+ * rewind or unload the tape cartridge. A tape cartridge other than the
+ * intended cartridge might have been inserted or the tape medium might not
+ * be at the expected position.
+ * User action:
+ * Verify that the correct tape cartridge has been inserted and that the tape
+ * medium is at the required position before continuing to work with the tape.
+ */
+
+/*?
+ * Text: "%s: The tape subsystem is running in degraded mode\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape subsystem is not operating at its maximum performance.
+ * User action:
+ * Contact your service representative for the tape unit and report this
+ * problem.
+ */
+
+/*?
+ * Text: "%s: The tape unit is already assigned\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit is already assigned to another channel path.
+ * User action:
+ * Free the tape unit from the operating system instance to which it is
+ * currently assigned then try again.
+ */
+
+/*?
+ * Text: "%s: The tape unit is not online\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit is not online to the tape device driver.
+ * User action:
+ * Ensure that the tape unit is operational and that the cable connections
+ * between the control unit and the tape unit are securely in place and not
+ * damaged.
+ */
+
+/*?
+ * Text: "%s: The control unit has fenced access to the tape volume\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The control unit fences further access to the current tape volume. The data
+ * integrity on the tape volume might have been compromised.
+ * User action:
+ * Rewind and unload the tape cartridge.
+ */
+
+/*?
+ * Text: "%s: A parity error occurred on the tape bus\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A data parity check error occurred on the bus. Data that was read or written
+ * while the error occurred is not valid.
+ * User action:
+ * Reposition the tape and repeat the read-type or write-type operation.
+ */
+
+/*?
+ * Text: "%s: I/O error recovery failed on the tape control unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An I/O error occurred that cannot be recovered by the automatic error
+ * recovery process of the tape control unit. The application that operates
+ * the tape unit will receive a return value of -EIO which indicates an
+ * I/O error. The data on the tape might be damaged.
+ * User action:
+ * If this problem occurred during a write-type operation, consider
+ * repositioning the tape and repeating the operation.
+ */
+
+/*?
+ * Text: "%s: The tape unit requires a firmware update\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit requires firmware patches from the tape control unit but the
+ * required patches are not available on the control unit.
+ * User action:
+ * Make the require patches available on the control unit then reposition the
+ * tape and retry the operation. For details about obtaining and installing
+ * firmware updates see the control unit documentation.
+ */
+
+/*?
+ * Text: "%s: The maximum block size for buffered mode is exceeded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The block to be written is larger than allowed for the buffered mode.
+ * User action:
+ * Use a smaller block size.
+ */
+
+/*?
+ * Text: "%s: A channel interface error cannot be recovered\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An error has occurred on the channel interface. This error cannot
+ * be recovered by the control unit error recovery process.
+ * User action:
+ * See the documentation of the control unit.
+ */
+
+/*?
+ * Text: "%s: A channel protocol error occurred\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An error was detected in the channel protocol.
+ * User action:
+ * Reposition the tape and try the operation again.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support the compaction algorithm\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit cannot read the current tape. The data on the tape has been
+ * compressed with an algorithm that is not supported by the tape unit.
+ * User action:
+ * Use a tape unit that supports the compaction algorithm used for the
+ * current tape.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support tape format 3480-2 XF\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit does not support tapes recorded in the 3480-2 XF format.
+ * User action:
+ * If you do not need the data recorded on the current tape, rewind the tape
+ * and overwrite it with a supported format. If you need the data on the
+ * current tape, use a tape unit that supports the tape format.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support format 3480 XF\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit does not support tapes recorded in the 3480 XF format.
+ * User action:
+ * If you do not need the data recorded on the current tape, rewind the tape
+ * and overwrite it with a supported format. If you need the data on the
+ * current tape, use a tape unit that supports the tape format.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support the current tape length\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The length of the tape in the cartridge is incompatible with the tape unit.
+ * User action:
+ * Either use a different tape unit or use a tape with a supported length.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support the tape length\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The length of the tape in the cartridge is incompatible with the tape
+ * unit.
+ * User action:
+ * Either use a different tape unit or use a tape with a supported length.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/tape_3590
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/tape_3590
@@ -0,0 +1,183 @@
+/*?
+ * Text: "%s: The tape medium must be loaded into a different tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape device has indicated an error condition that requires loading
+ * the tape cartridge into a different tape unit to recover.
+ * User action:
+ * Unload the cartridge and use a different tape unit to retry the operation.
+ */
+
+/*?
+ * Text: "%s: Tape media information: exception %s, service %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: exception
+ *   @3: service
+ * Description:
+ * This is an operating system independent tape medium information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: Device subsystem information: exception %s, service %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: exception
+ *   @3: required service action
+ * Description:
+ * This is an operating system independent device subsystem information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: I/O subsystem information: exception %s, service %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: exception
+ *   @3: required service action
+ * Description:
+ * This is an operating system independent I/O subsystem information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit has issued sense message %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: sense message code
+ * Description:
+ * The tape unit has issued an operating system independent sense message.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit has issued an unknown sense message code 0x%x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: code
+ * Description:
+ * The tape device driver has received an unknown sense message from the
+ * tape unit.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: MIM SEV=%i, MC=%02x, ES=%x/%x, RC=%02x-%04x-%02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: SEV
+ *   @3: message code
+ *   @4: exception
+ *   @5: required service action
+ *   @6: refcode
+ *   @7: mid
+ *   @8: fid
+ * Description:
+ * This is an operating system independent information message that was
+ * issued by the tape unit. The information in the message is intended for
+ * the IBM customer engineer.
+ * User action:
+ * See to the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: IOSIM SEV=%i, DEVTYPE=3590/%02x, MC=%02x, ES=%x/%x, REF=0x%04x-0x%04x-0x%04x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: SEV
+ *   @3: model
+ *   @4: message code
+ *   @5: exception
+ *   @6: required service action
+ *   @7: refcode1
+ *   @8: refcode2
+ *   @9: refcode3
+ * Description:
+ * This is an operating system independent I/O subsystem information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: DEVSIM SEV=%i, DEVTYPE=3590/%02x, MC=%02x, ES=%x/%x, REF=0x%04x-0x%04x-0x%04x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: SEV
+ *   @3: model
+ *   @4: message code
+ *   @5: exception
+ *   @6: required service action
+ *   @7: refcode1
+ *   @8: refcode2
+ *   @9: refcode3
+ * Description:
+ * This is an operating system independent device subsystem information message
+ * issued by the tape unit. The information in the message is intended for
+ * the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit has issued an unknown sense message code %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: code
+ * Description:
+ * The tape device has issued a sense message, that is unknown to the device
+ * driver.
+ * User action:
+ * Use the message code printed as hexadecimal value and see the documentation
+ * for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit failed to obtain the encryption key from EKM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit was unable to retrieve the encryption key required to decode
+ * the data on the tape from the enterprise key manager (EKM).
+ * User action:
+ * See the EKM and tape unit documentation for information about how to enable
+ * the tape unit to retrieve the encryption key.
+ */
+
+/*?
+ * Text: "%s: A different host has privileged access to the tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * You cannot access the tape unit because a different operating system
+ * instance has privileged access to the unit.
+ * User action:
+ * Unload the current cartridge to solve this problem.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/time
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/time
@@ -0,0 +1,36 @@
+/*?
+ * Text: "The ETR interface has adjusted the clock by %li microseconds\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: number of microseconds
+ * Description:
+ * The external time reference (ETR) interface has synchronized the system
+ * clock  with the external reference and set it to a new value. The time
+ * difference between the old and new clock value has been passed to the
+ * network time protocol (NTP) as a single shot adjustment.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The real or virtual hardware system does not provide an ETR interface\n"
+ * Severity: Warning
+ * Description:
+ * The 'etr=' parameter has been passed on the kernel parameter line for
+ * a Linux instance that does not have access to the external time reference
+ * (ETR) facility.
+ * User action:
+ * To avoid this warning remove the 'etr=' kernel parameter.
+ */
+
+/*?
+ * Text: "The real or virtual hardware system does not provide an STP interface\n"
+ * Severity: Warning
+ * Description:
+ * The 'stp=' parameter has been passed on the kernel parameter line for
+ * a Linux instance that does not have access to the server time protocol
+ * (STP) facility.
+ * User action:
+ * To avoid this warning remove the 'stp=' kernel parameter.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/vmlogrdr
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/vmlogrdr
@@ -0,0 +1,19 @@
+/*? Text: "vmlogrdr: failed to start recording automatically\n" */
+/*? Text: "vmlogrdr: connection severed with reason %i\n" */
+/*? Text: "vmlogrdr: iucv connection to %s failed with rc %i \n" */
+/*? Text: "vmlogrdr: failed to stop recording automatically\n" */
+/*? Text: "not running under VM, driver not loaded.\n" */
+
+/*?
+ * Text: "vmlogrdr: device %s is busy. Refuse to suspend.\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * Suspending vmlogrdr devices that are in uses is not supported.
+ * A request to suspend such a device is refused.
+ * User action:
+ * Close all applications that use any of the vmlogrdr devices
+ * and then try to suspend the system again.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/vmur
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/vmur
@@ -0,0 +1,48 @@
+/*?
+ * Text: "The %s cannot be loaded without z/VM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: z/VM virtual unit record device driver
+ * Description:
+ * The z/VM virtual unit record device driver provides Linux with access to
+ * z/VM virtual unit record devices like punch card readers, card punches, and
+ * line printers. On Linux instances that run in environments other than the
+ * z/VM hypervisor, the device driver does not provide any useful function and
+ * the corresponding vmur module cannot be loaded.
+ * User action:
+ * Load the vmur module only on Linux instances that run as guest operating
+ * systems of the z/VM hypervisor. If the z/VM virtual unit record device
+ * has been compiled into the kernel, ignore this message.
+ */
+
+/*?
+ * Text: "Kernel function alloc_chrdev_region failed with error code %d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error code according to errno definitions
+ * Description:
+ * The z/VM virtual unit record device driver (vmur) needs to register a range
+ * of character device minor numbers from 0x0000 to 0xffff.
+ * This registration failed, probably because of memory constraints.
+ * User action:
+ * Free some memory and reload the vmur module. If the z/VM virtual unit
+ * record device driver has been compiled into the kernel reboot Linux.
+ * Consider assigning more memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Unit record device %s is busy, %s refusing to suspend.\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the unit record device
+ *   @1: z/VM virtual unit record device driver
+ * Description:
+ * Linux cannot be suspended while a unit record device is in use.
+ * User action:
+ * Stop all applications that work on z/VM spool file queues, for example, the
+ * vmur tool. Then try again to suspend Linux.
+ */
+
+/*? Text: "%s loaded.\n" */
+/*? Text: "%s unloaded.\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/xpram
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/xpram
@@ -0,0 +1,74 @@
+/*?
+ * Text: "%d is not a valid number of XPRAM devices\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: number of partitions
+ * Description:
+ * The number of XPRAM partitions specified for the 'devs' module parameter
+ * or with the 'xpram.parts' kernel parameter must be an integer in the
+ * range 1 to 32. The XPRAM device driver created a maximum of 32 partitions
+ * that are probably not configured as intended.
+ * User action:
+ * If the XPRAM device driver has been compiled as a separate module,
+ * unload the module and load it again with a correct value for the 'devs'
+ * module parameter. If the XPRAM device driver has been compiled
+ * into the kernel, correct the 'xpram.parts' parameter in the kernel
+ * command line and restart Linux.
+ */
+
+/*?
+ * Text: "Not enough expanded memory available\n"
+ * Severity: Error
+ * Description:
+ * The amount of expanded memory required to set up your XPRAM partitions
+ * depends on the 'sizes' parameter specified for the xpram module or on
+ * the specifications for the 'xpram.parts' parameter if the XPRAM device
+ * driver has been compiled into the kernel. Your
+ * current specification exceed the amount of available expanded memory.
+ * Your XPRAM partitions are probably not configured as intended.
+ * User action:
+ * If the XPRAM device driver has been compiled as a separate module,
+ * unload the xpram module and load it again with an appropriate value
+ * for the 'sizes' module parameter. If the XPRAM device driver has been
+ * compiled into the kernel, adjust the 'xpram.parts' parameter in the
+ * kernel command line and restart Linux. If you need more than the
+ * available expanded memory, increase the expanded memory allocation for
+ * your virtual hardware or LPAR.
+ */
+
+/*?
+ * Text: "No expanded memory available\n"
+ * Severity: Error
+ * Description:
+ * The XPRAM device driver has been loaded in a Linux instance that runs
+ * in an LPAR or virtual hardware without expanded memory.
+ * No XPRAM partitions are created.
+ * User action:
+ * Allocate expanded memory for your LPAR or virtual hardware or do not
+ * load the xpram module. You can ignore this message, if you do not want
+ * to create XPRAM partitions.
+ */
+
+/*?
+ * Text: "Resuming the system failed: %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: cause of the failure
+ * Description:
+ * A system cannot be resumed if the expanded memory setup changes
+ * after hibernation. Possible reasons for the failure are:
+ * - Expanded memory was removed after hibernation.
+ * - Size of the expanded memory changed after hibernation.
+ * The system is stopped with a kernel panic.
+ * User action:
+ * Reboot Linux.
+ */
+
+/*? Text: "  number of devices (partitions): %d \n" */
+/*? Text: "  size of partition %d: %u kB\n" */
+/*? Text: "  size of partition %d to be set automatically\n" */
+/*? Text: "  memory needed (for sized partitions): %lu kB\n" */
+/*? Text: "  partitions to be sized automatically: %d\n" */
+/*? Text: "  automatically determined partition size: %lu kB\n" */
+/*? Text: "  %u pages expanded memory found (%lu KB).\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/zcrypt
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/zcrypt
@@ -0,0 +1,22 @@
+/*?
+ * Text: "Cryptographic device %02x.%04x failed and was set offline\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: AP device ID
+ *   @2: AP queue
+ * Description:
+ * A cryptographic device failed to process a cryptographic request.
+ * The cryptographic device driver could not correct the error and
+ * set the device offline. The application that issued the
+ * request received an indication that the request has failed.
+ * User action:
+ * Use the lszcrypt command to confirm that the cryptographic
+ * hardware is still configured to your LPAR or z/VM guest virtual
+ * machine. If the device is available to your Linux instance the
+ * command output contains a line that begins with 'card<device index>',
+ * where <device index> is the two-digit decimal number in the message text.
+ * After ensuring that the device is available, use the chzcrypt command to
+ * set it online again.
+ * If the error persists, contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/zdump
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/zdump
@@ -0,0 +1,27 @@
+/*?
+ * Text: "The 32-bit dump tool cannot be used for a 64-bit system\n"
+ * Severity: Alert
+ * Description:
+ * The dump process ends without creating a system dump.
+ * User action:
+ * Use a 64-bit dump tool to obtain a system dump for 64-bit Linux instance.
+ */
+/*?
+ * Text: "The 64-bit dump tool cannot be used for a 32-bit system\n"
+ * Severity: Alert
+ * Description:
+ * The dump process ends without creating a system dump.
+ * User action:
+ * Use a 32-bit dump tool to obtain a system dump for 32-bit Linux instance.
+ */
+/*?
+ * Text: "The dump process started for a 64-bit operating system\n"
+ * Severity: Alert
+ * Description:
+ * The SCSI dump process started to create a dump for a 64-bit operating
+ * system instance.
+ * User action:
+ * None.
+ */
+/*? Text: "0x%x is an unknown architecture.\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/zfcp
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/zfcp
@@ -0,0 +1,709 @@
+/*?
+ * Text: "%s is not a valid SCSI device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device specification
+ * Description:
+ * The specification for an initial SCSI device provided with the 'zfcp.device'
+ * kernel parameter or with the 'device' module parameter is syntactically
+ * incorrect. The specified SCSI device could not be attached to the Linux
+ * system.
+ * User action:
+ * Correct the value for the 'zfcp.device' or 'device' parameter and reboot
+ * Linux. See "Device Drivers, Features, and Commands" for information about
+ * the syntax.
+ */
+
+/*?
+ * Text: "The zfcp device driver could not register with the common I/O layer\n"
+ * Severity: Error
+ * Description:
+ * The device driver initialization failed. A possible cause of this problem is
+ * memory constraints.
+ * User action:
+ * Free some memory and try again to load the zfcp device driver. If the zfcp
+ * device driver has been compiled into the kernel, reboot Linux. Consider
+ * assigning more memory to your LPAR or z/VM guest virtual machine. If the
+ * problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up data structures for the FCP adapter failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The zfcp device driver could not allocate data structures for an FCP adapter.
+ * A possible reason for this problem is memory constraints.
+ * User action:
+ * Set the FCP adapter offline or detach it from the Linux system, free some
+ * memory and set the FCP adapter online again or attach it again. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The FCP device is operational again\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * An FCP device has been unavailable because it had been detached from the
+ * Linux system or because the corresponding CHPID was offline. The FCP device
+ * is now available again and the zfcp device driver resumes all operations to
+ * the FCP device.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The CHPID for the FCP device is offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The CHPID for an FCP device has been set offline, either logically in Linux
+ * or on the hardware.
+ * User action:
+ * Find out which CHPID corresponds to the FCP device, for example, with the
+ * lscss command. Check if the CHPID has been set logically offline in sysfs.
+ * Write 'on' to the CHPID's status attribute to set it online. If the CHPID is
+ * online in sysfs, find out if it has been varied offline through a hardware
+ * management interface, for example the service element (SE).
+ */
+
+/*?
+ * Text: "%s: The FCP device has been detached\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * An FCP device is no longer available to Linux.
+ * User action:
+ * Ensure that the FCP adapter is operational and attached to the LPAR or z/VM
+ * virtual machine.
+ */
+
+/*?
+ * Text: "%s: The FCP device did not respond within the specified time\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The common I/O layer waited for a response from the FCP adapter but
+ * no response was received within the specified time limit. This might
+ * indicate a hardware problem.
+ * User action:
+ * Consult your hardware administrator. If this problem persists,
+ * gather Linux debug data, collect the FCP adapter hardware logs, and
+ * report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Registering the FCP device with the SCSI stack failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter could not be registered with the Linux SCSI
+ * stack. A possible reason for this problem is memory constraints.
+ * User action:
+ * Set the FCP adapter offline or detach it from the Linux system, free some
+ * memory and set the FCP adapter online again or attach it again. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: ERP cannot recover an error on the FCP device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * An error occurred on an FCP device. The error recovery procedure (ERP)
+ * could not resolve the error. The FCP device driver cannot use the FCP device.
+ * User action:
+ * Check for previous error messages for the same FCP device to find the
+ * cause of the problem.
+ */
+
+/*?
+ * Text: "%s: Creating an ERP thread for the FCP device failed.\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The zfcp device driver could not set up error recovery procedure (ERP)
+ * processing for the FCP device. The FCP device is not available for use
+ * in Linux.
+ * User action:
+ * Free some memory and try again to load the zfcp device driver. If the zfcp
+ * device driver has been compiled into the kernel, reboot Linux. Consider
+ * assigning more memory to your LPAR or z/VM guest virtual machine. If the
+ * problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: ERP failed for LUN 0x%016Lx on port 0x%016Lx\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: LUN
+ *   @3: WWPN
+ * Description:
+ * An error occurred on the SCSI device at the specified LUN. The error recovery
+ * procedure (ERP) could not resolve the error. The SCSI device is not
+ * available.
+ * User action:
+ * Verify that the LUN is correct. Check the fibre channel fabric for errors
+ * related to the specified WWPN and LUN, the storage server, and Linux.
+ */
+
+/*?
+ * Text: "%s: ERP failed for remote port 0x%016Lx\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: WWPN
+ * Description:
+ * An error occurred on a remote port. The error recovery procedure (ERP)
+ * could not resolve the error. The port is not available.
+ * User action:
+ * Verify that the WWPN is correct and check the fibre channel fabric for
+ * errors related to the WWPN.
+ */
+
+/*?
+ * Text: "%s: Registering port 0x%016Lx failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: WWPN
+ * Description:
+ * The Linux kernel could not allocate enough memory to register the
+ * remote port with the indicated WWPN with the SCSI stack. The remote
+ * port is not available.
+ * User action:
+ * Free some memory and trigger the rescan for ports.
+ */
+
+/*?
+ * Text: "%s: A QDIO problem occurred\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * QDIO reported a problem to the zfcp device driver. The zfcp device driver
+ * tries to recover this problem.
+ * User action:
+ * Check for related error messages. If this problem occurs frequently, gather
+ * Linux debug data and contact your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up the QDIO connection to the FCP adapter failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The zfcp device driver failed to establish a QDIO connection with the FCP
+ * adapter.
+ * User action:
+ * Set the FCP adapter offline or detach it from the Linux system, free some
+ * memory and set the FCP adapter online again or attach it again. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter reported a problem that cannot be recovered\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter has a problem that cannot be recovered by the zfcp device
+ * driver. The zfcp device driver stopped using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: There is a wrap plug instead of a fibre channel cable\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter is not physically connected to the fibre channel fabric.
+ * User action:
+ * Remove the wrap plug from the FCP adapter and connect the adapter with the
+ * fibre channel fabric.
+ */
+
+/*?
+ * Text: "%s: FCP device not operational because of an unsupported FC class\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter hardware does not support the fibre channel service class
+ * requested by the zfcp device driver. This problem indicates a program error
+ * in the zfcp device driver.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: 0x%Lx is an ambiguous request identifier\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: request ID
+ * Description:
+ * The FCP adapter reported that it received the same request ID twice. This is
+ * an error. The zfcp device driver stopped using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: QTCB version 0x%x not supported by FCP adapter (0x%x to 0x%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: requested version
+ *   @3: lowest supported version
+ *   @4: highest supported version
+ * Description:
+ * See message text.
+ * The queue transfer control block (QTCB) version requested by the zfcp device
+ * driver is not supported by the FCP adapter hardware.
+ * User action:
+ * If the requested version is higher than the highest version supported by the
+ * hardware, install more recent firmware on the FCP adapter. If the requested
+ * version is lower then the lowest version supported by the hardware, upgrade
+ * to a Linux level with a more recent zfcp device driver.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter could not log in to the fibre channel fabric\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The fibre channel switch rejected the login request from the FCP adapter.
+ * User action:
+ * Check the fibre channel fabric or switch logs for possible errors.
+ */
+
+/*?
+ * Text: "%s: The FCP device is suspended because of a firmware update\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP device is not available while a firmware update is in progress. This
+ * problem is temporary. The FCP device will resume operations when the
+ * firmware update is completed.
+ * User action:
+ * Wait 10 seconds and try the operation again.
+ */
+
+/*?
+ * Text: "%s: All NPIV ports on the FCP adapter have been assigned\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The number of N_Port ID Virtualization (NPIV) ports that can be assigned
+ * on an FCP adapter is limited. Once assigned, NPIV ports are not released
+ * automatically but have to be released explicitly through the support
+ * element (SE).
+ * User action:
+ * Identify NPIV ports that have been assigned but are no longer in use and
+ * release them from the SE.
+ */
+
+/*?
+ * Text: "%s: The link between the FCP adapter and the FC fabric is down\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter is not usable. Specific error information is not available.
+ * User action:
+ * Check the cabling and the fibre channel fabric configuration. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The QTCB type is not supported by the FCP adapter\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The queue transfer control block (QTCB) type requested by the zfcp device
+ * driver is not supported by the FCP adapter hardware.
+ * User action:
+ * Install the latest firmware on your FCP adapter hardware. If this does not
+ * resolve the problem, upgrade to a Linux level with a more recent zfcp device
+ * driver. If the problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: The error threshold for checksum statistics has been exceeded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter has reported a large number of bit errors. This might
+ * indicate a problem with the physical components of the fibre channel fabric.
+ * Details about the errors have been written to the HBA trace for the FCP
+ * adapter.
+ * User action:
+ * Check for problems in the fibre channel fabric and ensure that all cables
+ * are properly plugged.
+ */
+
+/*?
+ * Text: "%s: The local link has been restored\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * A problem with the connection between the FCP adapter and the adjacent node
+ * on the fibre channel fabric has been resolved. The FCP adapter is now
+ * available again.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The mode table on the FCP adapter has been damaged\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * This is an FCP adapter hardware problem.
+ * User action:
+ * Report this problem with FCP hardware logs to IBM support.
+ */
+
+/*?
+ * Text: "%s: The adjacent fibre channel node does not support FCP\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The fibre channel switch or storage system that is connected to the FCP
+ * channel does not support the fibre channel protocol (FCP). The zfcp
+ * device driver stopped using the FCP device.
+ * User action:
+ * Check the adjacent fibre channel node.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter does not recognize the command 0x%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: command
+ * Description:
+ * A command code that was sent from the zfcp device driver to the FCP adapter
+ * is not valid. The zfcp device driver stopped using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: There is no light signal from the local fibre channel cable\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * There is no signal on the fibre channel cable that connects the FCP adapter
+ * to the fibre channel fabric.
+ * User action:
+ * Ensure that the cable is in place and connected properly to the FCP adapter
+ * and to the adjacent fibre channel switch or storage system.
+ */
+
+/*?
+ * Text: "%s: The WWPN assignment file on the FCP adapter has been damaged\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * This is an FCP adapter hardware problem.
+ * User action:
+ * Report this problem with FCP hardware logs to IBM support.
+ */
+
+/*?
+ * Text: "%s: The FCP device detected a WWPN that is duplicate or not valid\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * This condition indicates an error in the FCP adapter hardware or in the z/VM
+ * hypervisor.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to IBM support.
+ */
+
+/*?
+ * Text: "%s: The fibre channel fabric does not support NPIV\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter requires N_Port ID Virtualization (NPIV) from the adjacent
+ * fibre channel node. Either the FCP adapter is connected to a fibre channel
+ * switch that does not support NPIV or the FCP adapter tries to use NPIV in a
+ * point-to-point setup. The connection is not operational.
+ * User action:
+ * Verify that NPIV is correctly used for this connection. Check the FCP adapter
+ * configuration and the fibre channel switch configuration. If necessary,
+ * update the fibre channel switch firmware.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter cannot support more NPIV ports\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * N_Port ID Virtualization (NPIV) ports consume physical resources on the FCP
+ * adapter. The FCP adapter resources are exhausted. The connection is not
+ * operational.
+ * User action:
+ * Analyze the number of available NPIV ports and which operating system
+ * instances use them. If necessary, reconfigure your setup to move some
+ * NPIV ports to an FCP adapter with free resources.
+ */
+
+/*?
+ * Text: "%s: The adjacent switch cannot support more NPIV ports\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * N_Port ID Virtualization (NPIV) ports consume physical resources. The
+ * resources of the fibre channel switch that is connected to the FCP adapter
+ * are exhausted. The connection is not operational.
+ * User action:
+ * Analyze the number of available NPIV ports on the adjacent fibre channel
+ * switch and how they are used. If necessary, reconfigure your fibre channel
+ * fabric to accommodate the required NPIV ports.
+ */
+
+/*?
+ * Text: "%s: 0x%x is not a valid transfer protocol status\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: status information
+ * Description:
+ * The transfer protocol status information reported by the FCP adapter is not
+ * a valid status for the zfcp device driver. The zfcp device driver stopped
+ * using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Unknown or unsupported arbitrated loop fibre channel topology detected\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP device is connected to a fibre channel arbitrated loop or the FCP adapter
+ * reported an unknown fibre channel topology. The zfcp device driver supports
+ * point-to-point connections and switched fibre channel fabrics but not arbitrated
+ * loop topologies. The FCP device cannot be used.
+ * User action:
+ * Check the fibre channel setup and ensure that only supported topologies are
+ * connected to the FCP adapter.
+ */
+
+/*?
+ * Text: "%s: FCP adapter maximum QTCB size (%d bytes) is too small\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: maximum supported size
+ *   @3: requested QTCB size
+ * Description:
+ * The queue transfer control block (QTCB) size requested by the zfcp
+ * device driver is not supported by the FCP adapter hardware.
+ * User action:
+ * Update the firmware on your FCP adapter hardware to the latest
+ * available level and update the Linux kernel to the latest supported
+ * level. If the problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter only supports newer control block versions\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The protocol supported by the FCP adapter is not compatible with the zfcp
+ * device driver.
+ * User action:
+ * Upgrade your Linux kernel to a level that includes a zfcp device driver
+ * with support for the control block version required by your FCP adapter.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter only supports older control block versions\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The protocol supported by the FCP adapter is not compatible with the zfcp
+ * device driver.
+ * User action:
+ * Install the latest firmware on your FCP adapter.
+ */
+
+/*?
+ * Text: "%s: Not enough FCP adapter resources to open remote port 0x%016Lx\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: WWPN
+ * Description:
+ * Each port that is opened consumes physical resources of the FCP adapter to
+ * which it is attached. These resources are exhausted and the specified port
+ * cannot be opened.
+ * User action:
+ * Reduce the total number of remote ports that are attached to the
+ * FCP adapter.
+ */
+
+/*?
+ * Text: "%s: LUN 0x%Lx on port 0x%Lx is already in use by CSS%d, MIF Image ID %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: LUN
+ *   @3: remote port WWPN
+ *   @4: channel subsystem ID
+ *   @5: MIF Image ID of the LPAR
+ * Description:
+ * The SCSI device at the indicated LUN is already in use by another system.
+ * Only one system at a time can use the SCSI device.
+ * User action:
+ * Ensure that the other system stops using the device before trying to use it.
+ */
+
+/*?
+ * Text: "%s: No handle is available for LUN 0x%016Lx on port 0x%016Lx\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: LUN
+ *   @3: WWPN
+ * Description:
+ * The FCP adapter can only open a limited number of SCSI devices. This limit
+ * has been reached and the SCSI device at the indicated LUN cannot be opened.
+ * User action:
+ * For FCP subchannels running in non-NPIV mode, check all SCSI
+ * devices opened through the FCP adapter and close some of them.  For
+ * FCP subchannels running in NPIV mode, verify the SAN zoning and
+ * host connections on the storage systems. Ensure that the zoning and
+ * host connections only allow access to the required LUNs. As a
+ * workaround, disable the automatic LUN scanning by setting the
+ * zfcp.allow_lun_scan kernel parameter or the allow_lun_scan module
+ * parameter to 0.
+ */
+
+/*?
+ * Text: "%s: Incorrect direction %d, LUN 0x%016Lx on port 0x%016Lx closed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: value in direction field
+ *   @3: LUN
+ *   @4: WWPN
+ * Description:
+ * The direction field in a SCSI request contains an incorrect value. The zfcp
+ * device driver closed down the SCSI device at the indicated LUN.
+ * User action:
+ * Gather Linux debug data and report this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Incorrect CDB length %d, LUN 0x%016Lx on port 0x%016Lx closed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: value in length field
+ *   @3: LUN
+ *   @4: WWPN
+ * Description:
+ * The control-data-block (CDB) length field in a SCSI request is not valid or
+ * too large for the FCP adapter. The zfcp device driver closed down the SCSI
+ * device at the indicated LUN.
+ * User action:
+ * Gather Linux debug data and report this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Opening WKA port 0x%x failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: destination ID of the WKA port
+ * Description:
+ * The FCP adapter rejected a request to open the specified
+ * well-known address (WKA) port. No retry is possible.
+ * User action:
+ * Verify the setup and check if the maximum number of remote ports
+ * used through this adapter is below the maximum allowed. If the
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The name server reported %d words residual data\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: number of words in residual data
+ * Description:
+ * The fibre channel name server sent too much information about remote ports.
+ * The zfcp device driver did not receive sufficient information to attach all
+ * available remote ports in the SAN.
+ * User action:
+ * Verify that you are running the latest firmware level on the FCP
+ * adapter. Check your SAN setup and consider reducing the number of ports
+ * visible to the FCP adapter by using more restrictive zoning in the SAN.
+ */
+
+/*?
+ * Text: "%s: A port opened with WWPN 0x%016Lx returned data that identifies it as WWPN 0x%016Lx\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: expected WWPN
+ *   @3: reported WWPN
+ * Description:
+ * A remote port was opened successfully, but it reported an
+ * unexpected WWPN in the returned port login (PLOGI) data. This
+ * condition might have been caused by a change applied to the SAN
+ * configuration while the port was being opened.
+ * User action:
+ * If this condition is only temporary and access to the remote port
+ * is possible, no action is required. If the condition persists,
+ * identify the storage system with the specified WWPN and contact the
+ * support organization of the storage system.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/s390/zpci
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/s390/zpci
@@ -0,0 +1,42 @@
+/*?
+ * Text: "%s: Event 0x%x reconfigured PCI function 0x%x\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name of the function
+ *   @2: PCI event code
+ *   @3: function ID
+ * Description:
+ * The availability of a PCI function has changed.
+ * Possible reasons for the change include PCI configuration actions on the
+ * Hardware Management Console or hypervisor.
+ * For shared PCI functions, the function might also have been reserved or
+ * released by another system.
+ * If the device name of a function is shown as 'n/a', the device registration
+ * with the PCI device driver has not completed.
+ * The function ID identifies the function to the I/O configuration (IOCDS).
+ * The PCI event code can be useful diagnostic information for your support
+ * organization.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Event 0x%x reports an error for PCI function 0x%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name of the function
+ *   @2: PCI event code
+ *   @3: function ID
+ * Description:
+ * A PCI function entered an error state from which it cannot recover
+ * automatically.
+ * User action:
+ * Trigger a recovery action by writing '1' to the 'recover' sysfs attribute
+ * of the PCI function.
+ * In sysfs, PCI functions are represented as /sys/bus/pci/devices/<name>,
+ * where <name> is the device name of the function.
+ * If the device name of a function is shown as 'n/a', the device
+ * registration with the PCI device driver has not completed.
+ * If the problem persists, contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/sbp_target
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/sbp_target
@@ -0,0 +1,49 @@
+/*? Text: "ABORT TASK SET not implemented\n" */
+/*? Text: "ABORT TASK not implemented\n" */
+/*? Text: "Cannot change the directory_id on an active target.\n" */
+/*? Text: "Cannot enable a target with no LUNs!\n" */
+/*? Text: "Could not update Config ROM\n" */
+/*? Text: "Ignoring ORB_POINTER write while active.\n" */
+/*? Text: "LOGICAL UNIT RESET not implemented\n" */
+/*? Text: "Node ACL not found for %s\n" */
+/*? Text: "Only one TPG per Unit is possible.\n" */
+/*? Text: "QUERY LOGINS not implemented\n" */
+/*? Text: "Reconnect timer expired for node: %016llx\n" */
+/*? Text: "SET PASSWORD not implemented\n" */
+/*? Text: "TARGET RESET not implemented\n" */
+/*? Text: "Unable to allocate struct sbp_nacl\n" */
+/*? Text: "Unable to allocate struct sbp_tpg\n" */
+/*? Text: "Unable to allocate struct sbp_tport\n" */
+/*? Text: "Waiting for reconnect from node: %016llx\n" */
+/*? Text: "cannot find login: %d\n" */
+/*? Text: "failed to allocate login descriptor\n" */
+/*? Text: "failed to allocate login response block\n" */
+/*? Text: "failed to allocate session descriptor\n" */
+/*? Text: "failed to init se_session\n" */
+/*? Text: "failed to map command block handler: %d\n" */
+/*? Text: "failed to read peer GUID: %d\n" */
+/*? Text: "ignoring management request while busy\n" */
+/*? Text: "ignoring request from foreign node (%x != %x)\n" */
+/*? Text: "ignoring request with wrong generation\n" */
+/*? Text: "initiator already logged-in\n" */
+/*? Text: "login to unknown LUN: %d\n" */
+/*? Text: "logout from different node ID\n" */
+/*? Text: "max number of logins reached\n" */
+/*? Text: "mgt_agent LOGIN to LUN %d from %016llx\n" */
+/*? Text: "mgt_agent LOGOUT from LUN %d session %d\n" */
+/*? Text: "mgt_agent RECONNECT from %016llx\n" */
+/*? Text: "mgt_agent RECONNECT login GUID doesn't match\n" */
+/*? Text: "mgt_agent RECONNECT unknown login ID\n" */
+/*? Text: "mgt_orb bad request\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "refusing exclusive login with other active logins\n" */
+/*? Text: "refusing login while another exclusive login present\n" */
+/*? Text: "sbp_run_transaction: page size ignored\n" */
+/*? Text: "sbp_send_sense: unknown sense format: 0x%x\n" */
+/*? Text: "target_fabric_configfs_init() failed\n" */
+/*? Text: "target_fabric_configfs_register() failed for SBP\n" */
+/*? Text: "unknown management function 0x%x\n" */
+/*? Text: "unlink LUN: failed to update unit directory\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
\ No newline at end of file
--- linux-gkeop-5.4-5.4.0.orig/Documentation/kmsg/zram
+++ linux-gkeop-5.4-5.4.0/Documentation/kmsg/zram
@@ -0,0 +1,34 @@
+/*? Text: "Error allocating compressor buffer space\n" */
+/*? Text: "Error allocating memory for compressed page: %u, size=%zu\n" */
+/*? Text: "Error creating memory pool\n" */
+/*? Text: "num_devices not specified. Using default: 1\n" */
+/*? Text: "Error allocating compressor working memory!\n" */
+/*? Text: "Error allocating zram address table\n" */
+/*? Text: "Unable to get major number\n" */
+/*? Text: "Compression failed! err=%d\n" */
+/*? Text: "Decompression failed! err=%d, page=%u\n" */
+/*? Text: "There is little point creating a zram of greater than twice the size of memory since we expect a 2:1 compression ratio. Note that zram uses about 0.1%% of the size of the disk when not in use so a huge zram is wasteful.\n\tMemory Size: %zu kB\n\tSize you selected: %llu kB\nContinuing anyway ...\n" */
+/*? Text: "disk size not provided. You can use disksize_kb module param to specify size.\nUsing default: (%u%% of RAM).\n" */
+/*? Text: "Error creating sysfs group" */
+/*? Text: "Error allocating memory for incompressible page: %u\n" */
+/*? Text: "Creating %u devices ...\n" */
+/*? Text: "Initialization failed: err=%d\n" */
+/*? Text: "Error allocating disk queue for device %d\n" */
+/*? Text: "Error allocating disk structure for device %d\n" */
+/*? Text: "Invalid value for num_devices: %u\n" */
+/*? Text: "Error allocating temp memory!\n" */
+/*? Text: "Unable to allocate temp memory\n" */
+/*? Text: "Created %u device(s) ...\n" */
+/*? Text: "There is little point creating a zram of greater than twice the size of memory since we expect a 2:1 compression ratio. Note that zram uses about 0.1%% of the size of the disk when not in use so a huge zram is wasteful.\n\tMemory Size: %lu kB\n\tSize you selected: %llu kB\nContinuing anyway ...\n" */
+/*? Text: "Cannot change disksize for initialized device\n" */
+/*? Text: "Can't change algorithm for initialized device\n" */
+/*? Text: "Cannot initialise %s compressing backend\n" */
+/*? Text: "Cannot change max compression streams\n" */
+/*? Text: "Destroyed %u device(s)\n" */
+/*? Text: "Created %u device(s)\n" */
+/*? Text: "Unable to register zram-control class\n" */
+/*? Text: "Removed device: %s\n" */
+/*? Text: "Added device: %s\n" */
+/*? Text: "Error creating sysfs group for device %d\n" */
+/*? Text: "Error allocating memory for compressed page: %u, size=%u\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
\ No newline at end of file
--- linux-gkeop-5.4-5.4.0.orig/Documentation/lzo.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/lzo.txt
@@ -159,11 +159,15 @@
            distance = 16384 + (H << 14) + D
            state = S (copy S literals after this block)
            End of stream is reached if distance == 16384
+           In version 1 only, to prevent ambiguity with the RLE case when
+           ((distance & 0x803f) == 0x803f) && (261 <= length <= 264), the
+           compressor must not emit block copies where distance and length
+           meet these conditions.
 
         In version 1 only, this instruction is also used to encode a run of
-        zeros if distance = 0xbfff, i.e. H = 1 and the D bits are all 1.
+           zeros if distance = 0xbfff, i.e. H = 1 and the D bits are all 1.
            In this case, it is followed by a fourth byte, X.
-           run length = ((X << 3) | (0 0 0 0 0 L L L)) + 4.
+           run length = ((X << 3) | (0 0 0 0 0 L L L)) + 4
 
       0 0 1 L L L L L  (32..63)
            Copy of small block within 16kB distance (preferably less than 34B)
--- linux-gkeop-5.4-5.4.0.orig/Documentation/media/uapi/v4l/colorspaces-defs.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/media/uapi/v4l/colorspaces-defs.rst
@@ -36,8 +36,7 @@
 :c:type:`v4l2_hsv_encoding` specifies which encoding is used.
 
 .. note:: The default R'G'B' quantization is full range for all
-   colorspaces except for BT.2020 which uses limited range R'G'B'
-   quantization.
+   colorspaces. HSV formats are always full range.
 
 .. tabularcolumns:: |p{6.7cm}|p{10.8cm}|
 
@@ -169,8 +168,8 @@
       - Details
     * - ``V4L2_QUANTIZATION_DEFAULT``
       - Use the default quantization encoding as defined by the
-	colorspace. This is always full range for R'G'B' (except for the
-	BT.2020 colorspace) and HSV. It is usually limited range for Y'CbCr.
+	colorspace. This is always full range for R'G'B' and HSV.
+	It is usually limited range for Y'CbCr.
     * - ``V4L2_QUANTIZATION_FULL_RANGE``
       - Use the full range quantization encoding. I.e. the range [0…1] is
 	mapped to [0…255] (with possible clipping to [1…254] to avoid the
@@ -180,4 +179,4 @@
     * - ``V4L2_QUANTIZATION_LIM_RANGE``
       - Use the limited range quantization encoding. I.e. the range [0…1]
 	is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
-	[16…240].
+	[16…240]. Limited Range cannot be used with HSV.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/media/uapi/v4l/colorspaces-details.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/media/uapi/v4l/colorspaces-details.rst
@@ -377,9 +377,8 @@
 The :ref:`itu2020` standard defines the colorspace used by Ultra-high
 definition television (UHDTV). The default transfer function is
 ``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is
-``V4L2_YCBCR_ENC_BT2020``. The default R'G'B' quantization is limited
-range (!), and so is the default Y'CbCr quantization. The chromaticities
-of the primary colors and the white reference are:
+``V4L2_YCBCR_ENC_BT2020``. The default Y'CbCr quantization is limited range.
+The chromaticities of the primary colors and the white reference are:
 
 
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/device_drivers/amazon/ena.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/device_drivers/amazon/ena.txt
@@ -248,7 +248,7 @@
   inputs for hash functions.
 - The driver configures RSS settings using the AQ SetFeature command
   (ENA_ADMIN_RSS_HASH_FUNCTION, ENA_ADMIN_RSS_HASH_INPUT and
-  ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG properties).
+  ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG properties).
 - If the NETIF_F_RXHASH flag is set, the 32-bit result of the hash
   function delivered in the Rx CQ descriptor is set in the received
   SKB.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/device_drivers/mellanox/mlx5.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/device_drivers/mellanox/mlx5.rst
@@ -154,6 +154,27 @@
       values:
          cmode runtime value smfs
 
+enable_roce: RoCE enablement state
+----------------------------------
+RoCE enablement state controls driver support for RoCE traffic.
+When RoCE is disabled, there is no gid table, only raw ethernet QPs are supported and traffic on the well known UDP RoCE port is handled as raw ethernet traffic.
+
+To change RoCE enablement state a user must change the driverinit cmode value and run devlink reload.
+
+User command examples:
+
+- Disable RoCE::
+
+    $ devlink dev param set pci/0000:06:00.0 name enable_roce value false cmode driverinit
+    $ devlink dev reload pci/0000:06:00.0
+
+- Read RoCE enablement state::
+
+    $ devlink dev param show pci/0000:06:00.0 name enable_roce
+      pci/0000:06:00.0:
+      name enable_roce type generic
+      values:
+         cmode driverinit value true
 
 Devlink health reporters
 ========================
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/devlink-params-mlx5.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/devlink-params-mlx5.txt
@@ -0,0 +1,17 @@
+flow_steering_mode	[DEVICE, DRIVER-SPECIFIC]
+			Controls the flow steering mode of the driver.
+			Two modes are supported:
+			1. 'dmfs' - Device managed flow steering.
+			2. 'smfs  - Software/Driver managed flow steering.
+			In DMFS mode, the HW steering entities are created and
+			managed through the Firmware.
+			In SMFS mode, the HW steering entities are created and
+			managed though by the driver directly into Hardware
+			without firmware intervention.
+			Type: String
+			Configuration mode: runtime
+
+enable_roce		[DEVICE, GENERIC]
+			Enable handling of RoCE traffic in the device.
+			Defaultly enabled.
+			Configuration mode: driverinit
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/devlink-params.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/devlink-params.txt
@@ -65,3 +65,7 @@
 			  Reset only if device firmware can be found in the
 			  filesystem.
 			Type: u8
+
+enable_roce		[DEVICE, GENERIC]
+			Enable handling of RoCE traffic in the device.
+			Type: Boolean
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/ip-sysctl.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/ip-sysctl.txt
@@ -1000,12 +1000,14 @@
 icmp_msgs_per_sec - INTEGER
 	Limit maximal number of ICMP packets sent per second from this host.
 	Only messages whose type matches icmp_ratemask (see below) are
-	controlled by this limit.
+	controlled by this limit. For security reasons, the precise count
+	of messages per second is randomized.
 	Default: 1000
 
 icmp_msgs_burst - INTEGER
 	icmp_msgs_per_sec controls number of ICMP packets sent per second,
 	while icmp_msgs_burst controls the burst size of these packets.
+	For security reasons, the precise burst size is randomized.
 	Default: 50
 
 icmp_ratemask - INTEGER
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/j1939.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/j1939.rst
@@ -339,7 +339,7 @@
 			.pgn = J1939_PGN_ADDRESS_CLAIMED,
 			.pgn_mask = J1939_PGN_PDU1_MAX,
 		}, {
-			.pgn = J1939_PGN_ADDRESS_REQUEST,
+			.pgn = J1939_PGN_REQUEST,
 			.pgn_mask = J1939_PGN_PDU1_MAX,
 		}, {
 			.pgn = J1939_PGN_ADDRESS_COMMANDED,
@@ -414,8 +414,8 @@
 		.can_family = AF_CAN,
 		.can_addr.j1939 = {
 			.name = J1939_NO_NAME;
-			.pgn = 0x30,
-			.addr = 0x12300,
+			.addr = 0x30,
+			.pgn = 0x12300,
 		},
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/networking/nf_flowtable.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/networking/nf_flowtable.txt
@@ -76,7 +76,7 @@
 
         table inet x {
 		flowtable f {
-			hook ingress priority 0 devices = { eth0, eth1 };
+			hook ingress priority 0; devices = { eth0, eth1 };
 		}
                 chain y {
                         type filter hook forward priority 0; policy accept;
--- linux-gkeop-5.4-5.4.0.orig/Documentation/s390/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/s390/index.rst
@@ -15,6 +15,7 @@
     vfio-ccw
     zfcpdump
     common_io
+    pci
 
     text_files
 
--- linux-gkeop-5.4-5.4.0.orig/Documentation/s390/pci.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/s390/pci.rst
@@ -0,0 +1,126 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=========
+S/390 PCI
+=========
+
+Authors:
+        - Pierre Morel
+
+Copyright, IBM Corp. 2020
+
+
+command line parameters and debugfs entries
+===========================================
+
+Command line parameters
+-----------------------
+
+* nomio
+
+  Do not use MIO instructions.
+
+* norid
+
+  Ignore the RID field and force use of one PCI domain per PCI function.
+
+debugfs entries
+---------------
+
+* /sys/kernel/debug/s390dbf/pci_*/ (S/390 debug feature)
+
+  Some views generated by the debug feature to hold various debug outputs.
+
+  - /sys/kernel/debug/s390dbf/pci_msg/sprintf
+    Messages from the processing of PCI events like machine check handling
+    and setting of global functionality like UID checking.
+
+  The level of logging can be changed to be more or less verbose by piping to
+  /sys/kernel/debug/s390dbf/pci_*/level a number between 0 and 6; see the
+  documentation on the S/390 debug feature (Documentation/s390/s390dbf.rst)
+  for details.
+
+Sysfs entries
+=============
+
+Specific entries, or entries specificities for zPCI functions.
+
+* /sys/bus/pci/slots/XXXXXXXX
+
+  The slot entries are setup using the FID (Function Identifier) of the
+  PCI function.
+
+  - /sys/bus/pci/slots/XXXXXXXX/power
+
+  A physical function currently supporting virtual function can not be
+  powered-off until all virtual-function have been removed with
+  echo 0 > /sys/bus/pci/devices/XXXX:XX:XX.X/sriov_numvf
+
+* /sys/bus/pci/devices/XXXX:XX:XX.X/
+
+  - function_id
+    zPCI function identifier unique for the complete Z System.
+    It define uniquely a function in the system.
+
+  - function_handle
+    Low level identifier used for a configured PCI function.
+    It may be useful for debuging.
+
+  - pchid
+    Model dependent location of the I/O adapter.
+
+  - pfgid
+    PCI Function Group ID, functions sharing identical functionality
+    are using a common identifier.
+    A PCI group defines interrupts, IOMMU, IOTLB and DMA specifics.
+
+  - vfn
+    The Virtual Function Number, from 1 to N for virtual functions.
+    0 for physical functions.
+
+  - pft
+    PCI function type specifies the type of the PCI function.
+
+  - port
+    The port correspond to the physical port the function is attached to.
+    It also gives an indication on the physical function a virtual function
+    is attached to.
+
+  - uid
+    The UID, Unique Identifier is defined when configuring a LPAR and is
+    unique inside an LPAR.
+
+  - pfip/segmentX
+    The segments are used to determine the isolation of a function.
+    They corresponds to the physical path to the function.
+    The more the segment are different the more the functions are isolated.
+
+Enumeration and hotplug
+=======================
+
+The PCI address is made of 4 parts: domain, bus, device and function,
+like in DDDD:BB:dd.f
+
+* When not using multi-functions (norid is set or firmware does not support
+  multi-functions)
+
+  - There is only one function per domain.
+
+  - the domain is set from the zPCI function's UID as defined during the
+    LPAR creation.
+
+  - Addresses look like DDDD:00:00.0
+
+* When using multi-functions (norid parameter is not set), there are some
+  change in the way zPCI functions are addressed:
+
+  - There is still only one bus per domain.
+
+  - There can be up to 256 functions per bus.
+
+  - The domain part of the address of all functions of all functions for
+    a multi-Function device is set from the zPCI function's UID as defined
+    in the LPAR creation for the function zero.
+
+  - New functions will only be ready to be used after the function zero
+    (the function with devfn 0) has been enumerated.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/scsi/smartpqi.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/scsi/smartpqi.txt
@@ -29,7 +29,7 @@
   smartpqi host attributes:
   -------------------------
   /sys/class/scsi_host/host*/rescan
-  /sys/class/scsi_host/host*/version
+  /sys/class/scsi_host/host*/driver_version
 
   The host rescan attribute is a write only attribute. Writing to this
   attribute will trigger the driver to scan for new, changed, or removed
--- linux-gkeop-5.4-5.4.0.orig/Documentation/sound/hd-audio/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/sound/hd-audio/index.rst
@@ -8,3 +8,4 @@
    models
    controls
    dp-mst
+   realtek-pc-beep
--- linux-gkeop-5.4-5.4.0.orig/Documentation/sound/hd-audio/models.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/sound/hd-audio/models.rst
@@ -216,8 +216,6 @@
     ALC298 fixups on Dell AIO machines
 alc275-dell-xps
     ALC275 fixups on Dell XPS models
-alc256-dell-xps13
-    ALC256 fixups on Dell XPS13
 lenovo-spk-noise
     Workaround for speaker noise on Lenovo machines
 lenovo-hotkey
--- linux-gkeop-5.4-5.4.0.orig/Documentation/sound/hd-audio/realtek-pc-beep.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/sound/hd-audio/realtek-pc-beep.rst
@@ -0,0 +1,129 @@
+===============================
+Realtek PC Beep Hidden Register
+===============================
+
+This file documents the "PC Beep Hidden Register", which is present in certain
+Realtek HDA codecs and controls a muxer and pair of passthrough mixers that can
+route audio between pins but aren't themselves exposed as HDA widgets. As far
+as I can tell, these hidden routes are designed to allow flexible PC Beep output
+for codecs that don't have mixer widgets in their output paths. Why it's easier
+to hide a mixer behind an undocumented vendor register than to just expose it
+as a widget, I have no idea.
+
+Register Description
+====================
+
+The register is accessed via processing coefficient 0x36 on NID 20h. Bits not
+identified below have no discernible effect on my machine, a Dell XPS 13 9350::
+
+  MSB                           LSB
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  | |h|S|L|         | B |R|       | Known bits
+  +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+  |0|0|1|1|  0x7  |0|0x0|1|  0x7  | Reset value
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+1Ah input select (B): 2 bits
+  When zero, expose the PC Beep line (from the internal beep generator, when
+  enabled with the Set Beep Generation verb on NID 01h, or else from the
+  external PCBEEP pin) on the 1Ah pin node. When nonzero, expose the headphone
+  jack (or possibly Line In on some machines) input instead. If PC Beep is
+  selected, the 1Ah boost control has no effect.
+
+Amplify 1Ah loopback, left (L): 1 bit
+  Amplify the left channel of 1Ah before mixing it into outputs as specified
+  by h and S bits. Does not affect the level of 1Ah exposed to other widgets.
+
+Amplify 1Ah loopback, right (R): 1 bit
+  Amplify the right channel of 1Ah before mixing it into outputs as specified
+  by h and S bits. Does not affect the level of 1Ah exposed to other widgets.
+
+Loopback 1Ah to 21h [active low] (h): 1 bit
+  When zero, mix 1Ah (possibly with amplification, depending on L and R bits)
+  into 21h (headphone jack on my machine). Mixed signal respects the mute
+  setting on 21h.
+
+Loopback 1Ah to 14h (S): 1 bit
+  When one, mix 1Ah (possibly with amplification, depending on L and R bits)
+  into 14h (internal speaker on my machine). Mixed signal **ignores** the mute
+  setting on 14h and is present whenever 14h is configured as an output.
+
+Path diagrams
+=============
+
+1Ah input selection (DIV is the PC Beep divider set on NID 01h)::
+
+  <Beep generator>   <PCBEEP pin>    <Headphone jack>
+          |                |                |
+          +--DIV--+--!DIV--+       {1Ah boost control}
+                  |                         |
+                  +--(b == 0)--+--(b != 0)--+
+                               |
+               >1Ah (Beep/Headphone Mic/Line In)<
+
+Loopback of 1Ah to 21h/14h::
+
+               <1Ah (Beep/Headphone Mic/Line In)>
+                               |
+                        {amplify if L/R}
+                               |
+                  +-----!h-----+-----S-----+
+                  |                        |
+          {21h mute control}               |
+                  |                        |
+          >21h (Headphone)<     >14h (Internal Speaker)<
+
+Background
+==========
+
+All Realtek HDA codecs have a vendor-defined widget with node ID 20h which
+provides access to a bank of registers that control various codec functions.
+Registers are read and written via the standard HDA processing coefficient
+verbs (Set/Get Coefficient Index, Set/Get Processing Coefficient). The node is
+named "Realtek Vendor Registers" in public datasheets' verb listings and,
+apart from that, is entirely undocumented.
+
+This particular register, exposed at coefficient 0x36 and named in commits from
+Realtek, is of note: unlike most registers, which seem to control detailed
+amplifier parameters not in scope of the HDA specification, it controls audio
+routing which could just as easily have been defined using standard HDA mixer
+and selector widgets.
+
+Specifically, it selects between two sources for the input pin widget with Node
+ID (NID) 1Ah: the widget's signal can come either from an audio jack (on my
+laptop, a Dell XPS 13 9350, it's the headphone jack, but comments in Realtek
+commits indicate that it might be a Line In on some machines) or from the PC
+Beep line (which is itself multiplexed between the codec's internal beep
+generator and external PCBEEP pin, depending on if the beep generator is
+enabled via verbs on NID 01h). Additionally, it can mix (with optional
+amplification) that signal onto the 21h and/or 14h output pins.
+
+The register's reset value is 0x3717, corresponding to PC Beep on 1Ah that is
+then amplified and mixed into both the headphones and the speakers. Not only
+does this violate the HDA specification, which says that "[a vendor defined
+beep input pin] connection may be maintained *only* while the Link reset
+(**RST#**) is asserted", it means that we cannot ignore the register if we care
+about the input that 1Ah would otherwise expose or if the PCBEEP trace is
+poorly shielded and picks up chassis noise (both of which are the case on my
+machine).
+
+Unfortunately, there are lots of ways to get this register configuration wrong.
+Linux, it seems, has gone through most of them. For one, the register resets
+after S3 suspend: judging by existing code, this isn't the case for all vendor
+registers, and it's led to some fixes that improve behavior on cold boot but
+don't last after suspend. Other fixes have successfully switched the 1Ah input
+away from PC Beep but have failed to disable both loopback paths. On my
+machine, this means that the headphone input is amplified and looped back to
+the headphone output, which uses the exact same pins! As you might expect, this
+causes terrible headphone noise, the character of which is controlled by the
+1Ah boost control. (If you've seen instructions online to fix XPS 13 headphone
+noise by changing "Headphone Mic Boost" in ALSA, now you know why.)
+
+The information here has been obtained through black-box reverse engineering of
+the ALC256 codec's behavior and is not guaranteed to be correct. It likely
+also applies for the ALC255, ALC257, ALC235, and ALC236, since those codecs
+seem to be close relatives of the ALC256. (They all share one initialization
+function.) Additionally, other codecs like the ALC225 and ALC285 also have this
+register, judging by existing fixups in ``patch_realtek.c``, but specific
+data (e.g. node IDs, bit positions, pin mappings) for those codecs may differ
+from what I've described here.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/virt/kvm/api.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/virt/kvm/api.txt
@@ -172,6 +172,9 @@
 be retrieved using KVM_CAP_ARM_VM_IPA_SIZE of the KVM_CHECK_EXTENSION
 ioctl() at run-time.
 
+Creation of the VM will fail if the requested IPA size (whether it is
+implicit or explicit) is unsupported on the host.
+
 Please note that configuring the IPA size does not affect the capability
 exposed by the guest CPUs in ID_AA64MMFR0_EL1[PARange]. It only affects
 size of the address translated by the stage2 level (guest physical to
@@ -1132,6 +1135,9 @@
 the entire memory slot size.  Any object may back this memory, including
 anonymous memory, ordinary files, and hugetlbfs.
 
+On architectures that support a form of address tagging, userspace_addr must
+be an untagged address.
+
 It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
 be identical.  This allows large pages in the guest to be backed by large
 pages in the host.
@@ -1897,9 +1903,11 @@
 Parameters: struct kvm_one_reg (in)
 Returns: 0 on success, negative value on failure
 Errors:
-  ENOENT:   no such register
-  EINVAL:   invalid register ID, or no such register
-  EPERM:    (arm64) register access not allowed before vcpu finalization
+  ENOENT   no such register
+  EINVAL   invalid register ID, or no such register or used with VMs in
+           protected virtualization mode on s390
+  EPERM    (arm64) register access not allowed before vcpu finalization
+
 (These error codes are indicative only: do not rely on a specific error
 code being returned in a specific situation.)
 
@@ -2290,9 +2298,11 @@
 Parameters: struct kvm_one_reg (in and out)
 Returns: 0 on success, negative value on failure
 Errors include:
-  ENOENT:   no such register
-  EINVAL:   invalid register ID, or no such register
-  EPERM:    (arm64) register access not allowed before vcpu finalization
+  ENOENT   no such register
+  EINVAL   invalid register ID, or no such register or used with VMs in
+           protected virtualization mode on s390
+  EPERM    (arm64) register access not allowed before vcpu finalization
+
 (These error codes are indicative only: do not rely on a specific error
 code being returned in a specific situation.)
 
@@ -4127,6 +4137,90 @@
 #define KVM_PMU_EVENT_DENY 1
 
 
+4.122 KVM_S390_NORMAL_RESET
+
+Capability: KVM_CAP_S390_VCPU_RESETS
+Architectures: s390
+Type: vcpu ioctl
+Parameters: none
+Returns: 0
+
+This ioctl resets VCPU registers and control structures according to
+the cpu reset definition in the POP (Principles Of Operation).
+
+4.123 KVM_S390_INITIAL_RESET
+
+Capability: none
+Architectures: s390
+Type: vcpu ioctl
+Parameters: none
+Returns: 0
+
+This ioctl resets VCPU registers and control structures according to
+the initial cpu reset definition in the POP. However, the cpu is not
+put into ESA mode. This reset is a superset of the normal reset.
+
+4.124 KVM_S390_CLEAR_RESET
+
+Capability: KVM_CAP_S390_VCPU_RESETS
+Architectures: s390
+Type: vcpu ioctl
+Parameters: none
+Returns: 0
+
+This ioctl resets VCPU registers and control structures according to
+the clear cpu reset definition in the POP. However, the cpu is not put
+into ESA mode. This reset is a superset of the initial reset.
+
+
+4.125 KVM_S390_PV_COMMAND
+-------------------------
+
+:Capability: KVM_CAP_S390_PROTECTED
+:Architectures: s390
+:Type: vm ioctl
+:Parameters: struct kvm_pv_cmd
+:Returns: 0 on success, < 0 on error
+
+::
+
+  struct kvm_pv_cmd {
+	__u32 cmd;	/* Command to be executed */
+	__u16 rc;	/* Ultravisor return code */
+	__u16 rrc;	/* Ultravisor return reason code */
+	__u64 data;	/* Data or address */
+	__u32 flags;    /* flags for future extensions. Must be 0 for now */
+	__u32 reserved[3];
+  };
+
+cmd values:
+
+KVM_PV_ENABLE
+  Allocate memory and register the VM with the Ultravisor, thereby
+  donating memory to the Ultravisor that will become inaccessible to
+  KVM. All existing CPUs are converted to protected ones. After this
+  command has succeeded, any CPU added via hotplug will become
+  protected during its creation as well.
+
+KVM_PV_DISABLE
+
+  Deregister the VM from the Ultravisor and reclaim the memory that
+  had been donated to the Ultravisor, making it usable by the kernel
+  again.  All registered VCPUs are converted back to non-protected
+  ones.
+
+KVM_PV_VM_SET_SEC_PARMS
+  Pass the image header from VM memory to the Ultravisor in
+  preparation of image unpacking and verification.
+
+KVM_PV_VM_UNPACK
+  Unpack (protect and decrypt) a page of the encrypted boot image.
+
+KVM_PV_VM_VERIFY
+  Verify the integrity of the unpacked image. Only if this succeeds,
+  KVM is allowed to start protected VCPUs.
+
+
 5. The kvm_run structure
 ------------------------
 
@@ -4444,9 +4538,11 @@
 #define KVM_EXIT_HYPERV_SYNIC          1
 #define KVM_EXIT_HYPERV_HCALL          2
 			__u32 type;
+			__u32 pad1;
 			union {
 				struct {
 					__u32 msr;
+					__u32 pad2;
 					__u64 control;
 					__u64 evt_page;
 					__u64 msg_page;
@@ -5322,3 +5418,21 @@
 flush hypercalls by Hyper-V) so userspace should disable KVM identification
 in CPUID and only exposes Hyper-V identification. In this case, guest
 thinks it's running on Hyper-V and only use Hyper-V hypercalls.
+
+8.22 KVM_CAP_S390_VCPU_RESETS
+
+Architectures: s390
+
+This capability indicates that the KVM_S390_NORMAL_RESET and
+KVM_S390_CLEAR_RESET ioctls are available.
+
+8.23 KVM_CAP_S390_PROTECTED
+
+Architecture: s390
+
+
+This capability indicates that the Ultravisor has been initialized and
+KVM can therefore start protected VMs.
+This capability governs the KVM_S390_PV_COMMAND ioctl and the
+KVM_MP_STATE_LOAD MP_STATE. KVM_SET_MP_STATE can fail for protected
+guests when the state change is invalid.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/virt/kvm/devices/s390_flic.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/virt/kvm/devices/s390_flic.txt
@@ -100,15 +100,9 @@
       mask or unmask the adapter, as specified in mask
 
     KVM_S390_IO_ADAPTER_MAP
-      perform a gmap translation for the guest address provided in addr,
-      pin a userspace page for the translated address and add it to the
-      list of mappings
-      Note: A new mapping will be created unconditionally; therefore,
-            the calling code should avoid making duplicate mappings.
-
+      This is now a no-op. The mapping is purely done by the irq route.
     KVM_S390_IO_ADAPTER_UNMAP
-      release a userspace page for the translated address specified in addr
-      from the list of mappings
+      This is now a no-op. The mapping is purely done by the irq route.
 
   KVM_DEV_FLIC_AISM
     modify the adapter-interruption-suppression mode for a given isc if the
--- linux-gkeop-5.4-5.4.0.orig/Documentation/virt/kvm/index.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/virt/kvm/index.rst
@@ -9,4 +9,6 @@
 
    amd-memory-encryption
    cpuid
+   s390-pv
+   s390-pv-boot
    vcpu-requests
--- linux-gkeop-5.4-5.4.0.orig/Documentation/virt/kvm/mmu.txt
+++ linux-gkeop-5.4-5.4.0/Documentation/virt/kvm/mmu.txt
@@ -420,7 +420,7 @@
 number, it will ignore the cached MMIO information and handle the page
 fault through the slow path.
 
-Since only 19 bits are used to store generation-number on mmio spte, all
+Since only 18 bits are used to store generation-number on mmio spte, all
 pages are zapped when there is an overflow.
 
 Unfortunately, a single memory access might access kvm_memslots(kvm) multiple
--- linux-gkeop-5.4-5.4.0.orig/Documentation/virt/kvm/s390-pv-boot.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/virt/kvm/s390-pv-boot.rst
@@ -0,0 +1,84 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+======================================
+s390 (IBM Z) Boot/IPL of Protected VMs
+======================================
+
+Summary
+-------
+The memory of Protected Virtual Machines (PVMs) is not accessible to
+I/O or the hypervisor. In those cases where the hypervisor needs to
+access the memory of a PVM, that memory must be made accessible.
+Memory made accessible to the hypervisor will be encrypted. See
+:doc:`s390-pv` for details."
+
+On IPL (boot) a small plaintext bootloader is started, which provides
+information about the encrypted components and necessary metadata to
+KVM to decrypt the protected virtual machine.
+
+Based on this data, KVM will make the protected virtual machine known
+to the Ultravisor (UV) and instruct it to secure the memory of the
+PVM, decrypt the components and verify the data and address list
+hashes, to ensure integrity. Afterwards KVM can run the PVM via the
+SIE instruction which the UV will intercept and execute on KVM's
+behalf.
+
+As the guest image is just like an opaque kernel image that does the
+switch into PV mode itself, the user can load encrypted guest
+executables and data via every available method (network, dasd, scsi,
+direct kernel, ...) without the need to change the boot process.
+
+
+Diag308
+-------
+This diagnose instruction is the basic mechanism to handle IPL and
+related operations for virtual machines. The VM can set and retrieve
+IPL information blocks, that specify the IPL method/devices and
+request VM memory and subsystem resets, as well as IPLs.
+
+For PVMs this concept has been extended with new subcodes:
+
+Subcode 8: Set an IPL Information Block of type 5 (information block
+for PVMs)
+Subcode 9: Store the saved block in guest memory
+Subcode 10: Move into Protected Virtualization mode
+
+The new PV load-device-specific-parameters field specifies all data
+that is necessary to move into PV mode.
+
+* PV Header origin
+* PV Header length
+* List of Components composed of
+   * AES-XTS Tweak prefix
+   * Origin
+   * Size
+
+The PV header contains the keys and hashes, which the UV will use to
+decrypt and verify the PV, as well as control flags and a start PSW.
+
+The components are for instance an encrypted kernel, kernel parameters
+and initrd. The components are decrypted by the UV.
+
+After the initial import of the encrypted data, all defined pages will
+contain the guest content. All non-specified pages will start out as
+zero pages on first access.
+
+
+When running in protected virtualization mode, some subcodes will result in
+exceptions or return error codes.
+
+Subcodes 4 and 7, which specify operations that do not clear the guest
+memory, will result in specification exceptions. This is because the
+UV will clear all memory when a secure VM is removed, and therefore
+non-clearing IPL subcodes are not allowed.
+
+Subcodes 8, 9, 10 will result in specification exceptions.
+Re-IPL into a protected mode is only possible via a detour into non
+protected mode.
+
+Keys
+----
+Every CEC will have a unique public key to enable tooling to build
+encrypted images.
+See  `s390-tools <https://github.com/ibm-s390-tools/s390-tools/>`_
+for the tooling.
--- linux-gkeop-5.4-5.4.0.orig/Documentation/virt/kvm/s390-pv.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/virt/kvm/s390-pv.rst
@@ -0,0 +1,116 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=========================================
+s390 (IBM Z) Ultravisor and Protected VMs
+=========================================
+
+Summary
+-------
+Protected virtual machines (PVM) are KVM VMs that do not allow KVM to
+access VM state like guest memory or guest registers. Instead, the
+PVMs are mostly managed by a new entity called Ultravisor (UV). The UV
+provides an API that can be used by PVMs and KVM to request management
+actions.
+
+Each guest starts in non-protected mode and then may make a request to
+transition into protected mode. On transition, KVM registers the guest
+and its VCPUs with the Ultravisor and prepares everything for running
+it.
+
+The Ultravisor will secure and decrypt the guest's boot memory
+(i.e. kernel/initrd). It will safeguard state changes like VCPU
+starts/stops and injected interrupts while the guest is running.
+
+As access to the guest's state, such as the SIE state description, is
+normally needed to be able to run a VM, some changes have been made in
+the behavior of the SIE instruction. A new format 4 state description
+has been introduced, where some fields have different meanings for a
+PVM. SIE exits are minimized as much as possible to improve speed and
+reduce exposed guest state.
+
+
+Interrupt injection
+-------------------
+Interrupt injection is safeguarded by the Ultravisor. As KVM doesn't
+have access to the VCPUs' lowcores, injection is handled via the
+format 4 state description.
+
+Machine check, external, IO and restart interruptions each can be
+injected on SIE entry via a bit in the interrupt injection control
+field (offset 0x54). If the guest cpu is not enabled for the interrupt
+at the time of injection, a validity interception is recognized. The
+format 4 state description contains fields in the interception data
+block where data associated with the interrupt can be transported.
+
+Program and Service Call exceptions have another layer of
+safeguarding; they can only be injected for instructions that have
+been intercepted into KVM. The exceptions need to be a valid outcome
+of an instruction emulation by KVM, e.g. we can never inject a
+addressing exception as they are reported by SIE since KVM has no
+access to the guest memory.
+
+
+Mask notification interceptions
+-------------------------------
+KVM cannot intercept lctl(g) and lpsw(e) anymore in order to be
+notified when a PVM enables a certain class of interrupt.  As a
+replacement, two new interception codes have been introduced: One
+indicating that the contents of CRs 0, 6, or 14 have been changed,
+indicating different interruption subclasses; and one indicating that
+PSW bit 13 has been changed, indicating that a machine check
+intervention was requested and those are now enabled.
+
+Instruction emulation
+---------------------
+With the format 4 state description for PVMs, the SIE instruction already
+interprets more instructions than it does with format 2. It is not able
+to interpret every instruction, but needs to hand some tasks to KVM;
+therefore, the SIE and the ultravisor safeguard emulation inputs and outputs.
+
+The control structures associated with SIE provide the Secure
+Instruction Data Area (SIDA), the Interception Parameters (IP) and the
+Secure Interception General Register Save Area.  Guest GRs and most of
+the instruction data, such as I/O data structures, are filtered.
+Instruction data is copied to and from the SIDA when needed.  Guest
+GRs are put into / retrieved from the Secure Interception General
+Register Save Area.
+
+Only GR values needed to emulate an instruction will be copied into this
+save area and the real register numbers will be hidden.
+
+The Interception Parameters state description field still contains the
+the bytes of the instruction text, but with pre-set register values
+instead of the actual ones. I.e. each instruction always uses the same
+instruction text, in order not to leak guest instruction text.
+This also implies that the register content that a guest had in r<n>
+may be in r<m> from the hypervisor's point of view.
+
+The Secure Instruction Data Area contains instruction storage
+data. Instruction data, i.e. data being referenced by an instruction
+like the SCCB for sclp, is moved via the SIDA. When an instruction is
+intercepted, the SIE will only allow data and program interrupts for
+this instruction to be moved to the guest via the two data areas
+discussed before. Other data is either ignored or results in validity
+interceptions.
+
+
+Instruction emulation interceptions
+-----------------------------------
+There are two types of SIE secure instruction intercepts: the normal
+and the notification type. Normal secure instruction intercepts will
+make the guest pending for instruction completion of the intercepted
+instruction type, i.e. on SIE entry it is attempted to complete
+emulation of the instruction with the data provided by KVM. That might
+be a program exception or instruction completion.
+
+The notification type intercepts inform KVM about guest environment
+changes due to guest instruction interpretation. Such an interception
+is recognized, for example, for the store prefix instruction to provide
+the new lowcore location. On SIE reentry, any KVM data in the data areas
+is ignored and execution continues as if the guest instruction had
+completed. For that reason KVM is not allowed to inject a program
+interrupt.
+
+Links
+-----
+`KVM Forum 2019 presentation <https://static.sched.com/hosted_files/kvmforum2019/3b/ibm_protected_vms_s390x.pdf>`_
--- linux-gkeop-5.4-5.4.0.orig/Documentation/x86/topology.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/x86/topology.rst
@@ -41,6 +41,8 @@
 Packages contain a number of cores plus shared resources, e.g. DRAM
 controller, shared caches etc.
 
+Modern systems may also use the term 'Die' for package.
+
 AMD nomenclature for package is 'Node'.
 
 Package-related topology information in the kernel:
@@ -53,11 +55,18 @@
 
     The number of dies in a package. This information is retrieved via CPUID.
 
+  - cpuinfo_x86.cpu_die_id:
+
+    The physical ID of the die. This information is retrieved via CPUID.
+
   - cpuinfo_x86.phys_proc_id:
 
     The physical ID of the package. This information is retrieved via CPUID
     and deduced from the APIC IDs of the cores in the package.
 
+    Modern systems use this value for the socket. There may be multiple
+    packages within a socket. This value may differ from cpu_die_id.
+
   - cpuinfo_x86.logical_proc_id:
 
     The logical ID of the package. As we do not trust BIOSes to enumerate the
--- linux-gkeop-5.4-5.4.0.orig/Documentation/xtensa/mmu.rst
+++ linux-gkeop-5.4-5.4.0/Documentation/xtensa/mmu.rst
@@ -82,7 +82,8 @@
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0xc0000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0xc7ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0xc8000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
@@ -124,7 +125,8 @@
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0xa0000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0xa7ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0xa8000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
@@ -167,7 +169,8 @@
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0x90000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0x97ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0x98000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
--- linux-gkeop-5.4-5.4.0.orig/Kconfig
+++ linux-gkeop-5.4-5.4.0/Kconfig
@@ -21,6 +21,8 @@
 
 source "drivers/Kconfig"
 
+source "ubuntu/Kconfig"
+
 source "fs/Kconfig"
 
 source "security/Kconfig"
--- linux-gkeop-5.4-5.4.0.orig/MAINTAINERS
+++ linux-gkeop-5.4-5.4.0/MAINTAINERS
@@ -537,6 +537,17 @@
 F:	Documentation/scsi/advansys.txt
 F:	drivers/scsi/advansys.c
 
+ADVANTECH AHC1EC0 EMBEDDED CONTROLLER DRIVER
+M:	Campion Kang <campion.kang@advantech.com.tw>
+L:	linux-kernel@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
+F:	drivers/hwmon/ahc1ec0-hwmon.c
+F:	drivers/mfd/ahc1ec0.c
+F:	drivers/watchdog/ahc1ec0-wdt.c
+F:	include/dt-bindings/mfd/ahc1ec0-dt.h
+F:	include/linux/mfd/ahc1ec0.h
+
 ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
 M:	Michael Hennerich <michael.hennerich@analog.com>
 W:	http://wiki.analog.com/ADXL345
@@ -2832,6 +2843,19 @@
 F:	include/uapi/linux/audit.h
 F:	kernel/audit*
 
+AUFS (advanced multi layered unification filesystem) FILESYSTEM
+M:	"J. R. Okajima" <hooanon05g@gmail.com>
+L:	aufs-users@lists.sourceforge.net (members only)
+L:	linux-unionfs@vger.kernel.org
+W:	http://aufs.sourceforge.net
+T:	git://github.com/sfjro/aufs4-linux.git
+S:	Supported
+F:	Documentation/filesystems/aufs/
+F:	Documentation/ABI/testing/debugfs-aufs
+F:	Documentation/ABI/testing/sysfs-aufs
+F:	fs/aufs/
+F:	include/uapi/linux/aufs_type.h
+
 AUXILIARY DISPLAY DRIVERS
 M:	Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
 S:	Maintained
@@ -4028,6 +4052,7 @@
 C:	irc://chat.freenode.net/clangbuiltlinux
 S:	Supported
 K:	\b(?i:clang|llvm)\b
+F:	Documentation/kbuild/llvm.rst
 
 CLEANCACHE API
 M:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
@@ -6973,6 +6998,7 @@
 S:	Maintained
 F:	Documentation/firmware-guide/acpi/gpio-properties.rst
 F:	drivers/gpio/gpiolib-acpi.c
+F:	drivers/gpio/gpiolib-acpi.h
 
 GPIO IR Transmitter
 M:	Sean Young <sean@mess.org>
@@ -7364,6 +7390,25 @@
 F:	net/802/hippi.c
 F:	drivers/net/hippi/
 
+HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
+M:	Zaibo Xu <xuzaibo@huawei.com>
+L:	linux-crypto@vger.kernel.org
+S:	Maintained
+F:	drivers/crypto/hisilicon/sec2/sec_crypto.c
+F:	drivers/crypto/hisilicon/sec2/sec_main.c
+F:	drivers/crypto/hisilicon/sec2/sec_crypto.h
+F:	drivers/crypto/hisilicon/sec2/sec.h
+F:	Documentation/ABI/testing/debugfs-hisi-sec
+
+HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
+M:	Zaibo Xu <xuzaibo@huawei.com>
+L:	linux-crypto@vger.kernel.org
+S:	Maintained
+F:	drivers/crypto/hisilicon/hpre/hpre_crypto.c
+F:	drivers/crypto/hisilicon/hpre/hpre_main.c
+F:	drivers/crypto/hisilicon/hpre/hpre.h
+F:	Documentation/ABI/testing/debugfs-hisi-hpre
+
 HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
 M:	Yisen Zhuang <yisen.zhuang@huawei.com>
 M:	Salil Mehta <salil.mehta@huawei.com>
@@ -7372,6 +7417,11 @@
 S:	Maintained
 F:	drivers/net/ethernet/hisilicon/hns3/
 
+HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
+M:	Zaibo Xu <xuzaibo@huawei.com>
+S:	Maintained
+F:	drivers/char/hw_random/hisi-trng-v2.c
+
 HISILICON LPC BUS DRIVER
 M:	john.garry@huawei.com
 W:	http://www.hisilicon.com
@@ -7410,6 +7460,12 @@
 F:	drivers/scsi/hisi_sas/
 F:	Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
 
+HISILICON V3XX SPI NOR FLASH Controller Driver
+M:	John Garry <john.garry@huawei.com>
+W:	http://www.hisilicon.com
+S:	Maintained
+F:	drivers/spi/spi-hisi-sfc-v3xx.c
+
 HISILICON QM AND ZIP Controller DRIVER
 M:	Zhou Wang <wangzhou1@hisilicon.com>
 L:	linux-crypto@vger.kernel.org
@@ -7417,7 +7473,6 @@
 F:	drivers/crypto/hisilicon/qm.c
 F:	drivers/crypto/hisilicon/qm.h
 F:	drivers/crypto/hisilicon/sgl.c
-F:	drivers/crypto/hisilicon/sgl.h
 F:	drivers/crypto/hisilicon/zip/
 F:	Documentation/ABI/testing/debugfs-hisi-zip
 
@@ -8200,7 +8255,7 @@
 M:	Rodrigo Vivi <rodrigo.vivi@intel.com>
 L:	intel-gfx@lists.freedesktop.org
 W:	https://01.org/linuxgraphics/
-B:	https://01.org/linuxgraphics/documentation/how-report-bugs
+B:	https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 C:	irc://chat.freenode.net/intel-gfx
 Q:	http://patchwork.freedesktop.org/project/intel-gfx/
 T:	git git://anongit.freedesktop.org/drm-intel
@@ -8703,8 +8758,10 @@
 L:	netdev@vger.kernel.org
 W:	http://www.isdn4linux.de
 S:	Maintained
-F:	drivers/isdn/mISDN
-F:	drivers/isdn/hardware
+F:	drivers/isdn/mISDN/
+F:	drivers/isdn/hardware/
+F:	drivers/isdn/Kconfig
+F:	drivers/isdn/Makefile
 
 ISDN/CAPI SUBSYSTEM
 M:	Karsten Keil <isdn@linux-pingi.de>
@@ -8991,6 +9048,7 @@
 W:	http://www.ibm.com/developerworks/linux/linux390/
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
 S:	Supported
+F:	Documentation/virt/kvm/s390*
 F:	arch/s390/include/uapi/asm/kvm*
 F:	arch/s390/include/asm/gmap.h
 F:	arch/s390/include/asm/kvm*
@@ -14131,6 +14189,7 @@
 S:	Supported
 F:	arch/s390/pci/
 F:	drivers/pci/hotplug/s390_pci_hpc.c
+F:	Documentation/s390/pci.rst
 
 S390 VFIO-CCW DRIVER
 M:	Cornelia Huck <cohuck@redhat.com>
--- linux-gkeop-5.4-5.4.0.orig/Makefile
+++ linux-gkeop-5.4-5.4.0/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 0
+SUBLEVEL = 106
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
@@ -206,6 +206,20 @@
   KBUILD_CHECKSRC = 0
 endif
 
+# Call message checker as part of the C compilation
+#
+# Use 'make D=1' to enable checking
+# Use 'make D=2' to create the message catalog
+
+ifdef D
+  ifeq ("$(origin D)", "command line")
+    KBUILD_KMSG_CHECK = $(D)
+  endif
+endif
+ifndef KBUILD_KMSG_CHECK
+  KBUILD_KMSG_CHECK = 0
+endif
+
 # Use make M=dir or set the environment variable KBUILD_EXTMOD to specify the
 # directory of external module to build. Setting M= takes precedence.
 ifeq ("$(origin M)", "command line")
@@ -394,8 +408,13 @@
 HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null)
 HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null)
 
-HOSTCC       = gcc
-HOSTCXX      = g++
+ifneq ($(LLVM),)
+HOSTCC	= clang
+HOSTCXX	= clang++
+else
+HOSTCC	= gcc
+HOSTCXX	= g++
+endif
 KBUILD_HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
 		-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS) \
 		$(HOSTCFLAGS)
@@ -404,31 +423,49 @@
 KBUILD_HOSTLDLIBS   := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
 
 # Make variables (CC, etc...)
-AS		= $(CROSS_COMPILE)as
-LD		= $(CROSS_COMPILE)ld
-CC		= $(CROSS_COMPILE)gcc
 CPP		= $(CC) -E
+ifneq ($(LLVM),)
+CC		= clang
+LD		= ld.lld
+AR		= llvm-ar
+NM		= llvm-nm
+OBJCOPY		= llvm-objcopy
+OBJDUMP		= llvm-objdump
+READELF		= llvm-readelf
+OBJSIZE		= llvm-size
+STRIP		= llvm-strip
+else
+CC		= $(CROSS_COMPILE)gcc
+LD		= $(CROSS_COMPILE)ld
 AR		= $(CROSS_COMPILE)ar
 NM		= $(CROSS_COMPILE)nm
-STRIP		= $(CROSS_COMPILE)strip
 OBJCOPY		= $(CROSS_COMPILE)objcopy
 OBJDUMP		= $(CROSS_COMPILE)objdump
+READELF		= $(CROSS_COMPILE)readelf
 OBJSIZE		= $(CROSS_COMPILE)size
+STRIP		= $(CROSS_COMPILE)strip
+endif
 PAHOLE		= pahole
 LEX		= flex
 YACC		= bison
 AWK		= awk
 INSTALLKERNEL  := installkernel
-DEPMOD		= /sbin/depmod
+DEPMOD		= depmod
 PERL		= perl
 PYTHON		= python
-PYTHON2		= python2
 PYTHON3		= python3
 CHECK		= sparse
 BASH		= bash
+KGZIP		= gzip
+KBZIP2		= bzip2
+KLZOP		= lzop
+LZMA		= lzma
+LZ4		= lz4c
+XZ		= xz
 
 CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
 		  -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
+KMSG_CHECK	= $(srctree)/scripts/kmsg-doc
 NOSTDINC_FLAGS :=
 CFLAGS_MODULE   =
 AFLAGS_MODULE   =
@@ -437,6 +474,13 @@
 AFLAGS_KERNEL	=
 LDFLAGS_vmlinux =
 
+# Prefer linux-backports-modules
+ifneq ($(KBUILD_SRC),)
+ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes)
+UBUNTUINCLUDE := -I/usr/src/linux-headers-lbm-$(KERNELRELEASE)
+endif
+endif
+
 # Use USERINCLUDE when you must reference the UAPI directories only.
 USERINCLUDE    := \
 		-I$(srctree)/arch/$(SRCARCH)/include/uapi \
@@ -448,17 +492,21 @@
 # Use LINUXINCLUDE when you must reference the include/ directory.
 # Needed to be compatible with the O= option
 LINUXINCLUDE    := \
+		$(UBUNTUINCLUDE) \
 		-I$(srctree)/arch/$(SRCARCH)/include \
 		-I$(objtree)/arch/$(SRCARCH)/include/generated \
 		$(if $(building_out_of_srctree),-I$(srctree)/include) \
 		-I$(objtree)/include \
 		$(USERINCLUDE)
 
+# UBUNTU: Include our third party driver stuff too
+LINUXINCLUDE   += -Iubuntu/include $(if $(KBUILD_SRC),-I$(srctree)/ubuntu/include)
+
 KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
 KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
 		   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
 		   -Werror=implicit-function-declaration -Werror=implicit-int \
-		   -Wno-format-security \
+		   -Werror=return-type -Wno-format-security \
 		   -std=gnu89
 KBUILD_CPPFLAGS := -D__KERNEL__
 KBUILD_AFLAGS_KERNEL :=
@@ -471,15 +519,17 @@
 GCC_PLUGINS_CFLAGS :=
 CLANG_FLAGS :=
 
-export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
-export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE PAHOLE LEX YACC AWK INSTALLKERNEL
-export PERL PYTHON PYTHON2 PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
+export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
+export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE READELF PAHOLE LEX YACC AWK INSTALLKERNEL
+export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
+export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ
 export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
 export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
 export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN
 export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
+export KBUILD_KMSG_CHECK KMSG_CHECK
 export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
 export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
 
@@ -528,13 +578,13 @@
 ifneq ($(CROSS_COMPILE),)
 CLANG_FLAGS	+= --target=$(notdir $(CROSS_COMPILE:%-=%))
 GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
-CLANG_FLAGS	+= --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS	+= --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
 GCC_TOOLCHAIN	:= $(realpath $(GCC_TOOLCHAIN_DIR)/..)
 endif
 ifneq ($(GCC_TOOLCHAIN),)
 CLANG_FLAGS	+= --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
-ifeq ($(shell $(AS) --version 2>&1 | head -n 1 | grep clang),)
+ifneq ($(LLVM_IAS),1)
 CLANG_FLAGS	+= -no-integrated-as
 endif
 CLANG_FLAGS	+= -Werror=unknown-warning-option
@@ -587,12 +637,8 @@
 KBUILD_BUILTIN := 1
 
 # If we have only "make modules", don't compile built-in objects.
-# When we're building modules with modversions, we need to consider
-# the built-in objects during the descend as well, in order to
-# make sure the checksums are up to date before we record them.
-
 ifeq ($(MAKECMDGOALS),modules)
-  KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1)
+  KBUILD_BUILTIN :=
 endif
 
 # If we have "make <whatever> modules", compile modules
@@ -616,9 +662,8 @@
 ifeq ($(KBUILD_EXTMOD),)
 # Objects we will link into vmlinux / subdirs we need to visit
 init-y		:= init/
-drivers-y	:= drivers/ sound/
+drivers-y	:= drivers/ sound/ ubuntu/
 drivers-$(CONFIG_SAMPLES) += samples/
-drivers-$(CONFIG_KERNEL_HEADER_TEST) += include/
 net-y		:= net/
 libs-y		:= lib/
 core-y		:= usr/
@@ -708,12 +753,9 @@
 KBUILD_CFLAGS += -Os
 endif
 
-ifdef CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED
-KBUILD_CFLAGS   += -Wno-maybe-uninitialized
-endif
-
 # Tell gcc to never replace conditional load with a non-conditional one
 KBUILD_CFLAGS	+= $(call cc-option,--param=allow-store-data-races=0)
+KBUILD_CFLAGS	+= $(call cc-option,-fno-allow-store-data-races)
 
 include scripts/Makefile.kcov
 include scripts/Makefile.gcc-plugins
@@ -787,8 +829,11 @@
 else
 DEBUG_CFLAGS	+= -g
 endif
+ifneq ($(LLVM_IAS),1)
 KBUILD_AFLAGS	+= -Wa,-gdwarf-2
 endif
+endif
+
 ifdef CONFIG_DEBUG_INFO_DWARF4
 DEBUG_CFLAGS	+= -gdwarf-4
 endif
@@ -861,6 +906,17 @@
 # disable stringop warnings in gcc 8+
 KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
 
+# We'll want to enable this eventually, but it's not going away for 5.7 at least
+KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
+KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
+KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
+
+# Another good warning that we'll want to enable eventually
+KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
+
+# Enabled with W=2, disabled by default as noisy
+KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
+
 # disable invalid "can't wrap" optimizations for signed / pointers
 KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
 
@@ -891,12 +947,6 @@
 # change __FILE__ to the relative path from the srctree
 KBUILD_CFLAGS	+= $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
 
-# ensure -fcf-protection is disabled when using retpoline as it is
-# incompatible with -mindirect-branch=thunk-extern
-ifdef CONFIG_RETPOLINE
-KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
-endif
-
 include scripts/Makefile.kasan
 include scripts/Makefile.extrawarn
 include scripts/Makefile.ubsan
@@ -978,10 +1028,10 @@
 mod_compress_cmd = true
 ifdef CONFIG_MODULE_COMPRESS
   ifdef CONFIG_MODULE_COMPRESS_GZIP
-    mod_compress_cmd = gzip -n -f
+    mod_compress_cmd = $(KGZIP) -n -f
   endif # CONFIG_MODULE_COMPRESS_GZIP
   ifdef CONFIG_MODULE_COMPRESS_XZ
-    mod_compress_cmd = xz -f
+    mod_compress_cmd = $(XZ) -f
   endif # CONFIG_MODULE_COMPRESS_XZ
 endif # CONFIG_MODULE_COMPRESS
 export mod_compress_cmd
@@ -1152,9 +1202,15 @@
 endef
 
 define filechk_version.h
-	echo \#define LINUX_VERSION_CODE $(shell                         \
-	expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
-	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
+	if [ $(SUBLEVEL) -gt 255 ]; then                                 \
+		echo \#define LINUX_VERSION_CODE $(shell                 \
+		expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255); \
+	else                                                             \
+		echo \#define LINUX_VERSION_CODE $(shell                 \
+		expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
+	fi;                                                              \
+	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) +  \
+	((c) > 255 ? 255 : (c)))'
 endef
 
 $(version_h): FORCE
@@ -1195,20 +1251,17 @@
 	  $(error Headers not exportable for the $(SRCARCH) architecture))
 	$(Q)$(MAKE) $(hdr-inst)=include/uapi
 	$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
+	$(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders=
 
+# Deprecated. It is no-op now.
 PHONY += headers_check
-headers_check: headers
-	$(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1
-	$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi HDRCHECK=1
+headers_check:
+	@:
 
 ifdef CONFIG_HEADERS_INSTALL
 prepare: headers
 endif
 
-ifdef CONFIG_HEADERS_CHECK
-all: headers_check
-endif
-
 PHONY += scripts_unifdef
 scripts_unifdef: scripts_basic
 	$(Q)$(MAKE) $(build)=scripts scripts/unifdef
@@ -1242,12 +1295,16 @@
 %.dtb: include/config/kernel.release scripts_dtc
 	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
 
-PHONY += dtbs dtbs_install dt_binding_check
-dtbs dtbs_check: include/config/kernel.release scripts_dtc
+PHONY += dtbs dtbs_install dtbs_check
+dtbs: include/config/kernel.release scripts_dtc
 	$(Q)$(MAKE) $(build)=$(dtstree)
 
+ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
+dtbs: dt_binding_check
+endif
+
 dtbs_check: export CHECK_DTBS=1
-dtbs_check: dt_binding_check
+dtbs_check: dtbs
 
 dtbs_install:
 	$(Q)$(MAKE) $(dtbinst)=$(dtstree)
@@ -1262,6 +1319,7 @@
 scripts_dtc: scripts_basic
 	$(Q)$(MAKE) $(build)=scripts/dtc
 
+PHONY += dt_binding_check
 dt_binding_check: scripts_dtc
 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings
 
@@ -1274,6 +1332,13 @@
 
 all: modules
 
+# When we're building modules with modversions, we need to consider
+# the built-in objects during the descend as well, in order to
+# make sure the checksums are up to date before we record them.
+ifdef CONFIG_MODVERSIONS
+  KBUILD_BUILTIN := 1
+endif
+
 # Build modules
 #
 # A module can be listed more than once in obj-m resulting in
@@ -1476,7 +1541,6 @@
 	@echo  '  versioncheck    - Sanity check on version.h usage'
 	@echo  '  includecheck    - Check for duplicate included header files'
 	@echo  '  export_report   - List the usages of all exported symbols'
-	@echo  '  headers_check   - Sanity check on exported headers'
 	@echo  '  headerdep       - Detect inclusion cycles in headers'
 	@echo  '  coccicheck      - Check with Coccinelle'
 	@echo  ''
@@ -1641,6 +1705,50 @@
 PHONY += prepare
 endif # KBUILD_EXTMOD
 
+# Single targets
+# ---------------------------------------------------------------------------
+# To build individual files in subdirectories, you can do like this:
+#
+#   make foo/bar/baz.s
+#
+# The supported suffixes for single-target are listed in 'single-targets'
+#
+# To build only under specific subdirectories, you can do like this:
+#
+#   make foo/bar/baz/
+
+ifdef single-build
+
+# .ko is special because modpost is needed
+single-ko := $(sort $(filter %.ko, $(MAKECMDGOALS)))
+single-no-ko := $(sort $(patsubst %.ko,%.mod, $(MAKECMDGOALS)))
+
+$(single-ko): single_modpost
+	@:
+$(single-no-ko): descend
+	@:
+
+ifeq ($(KBUILD_EXTMOD),)
+# For the single build of in-tree modules, use a temporary file to avoid
+# the situation of modules_install installing an invalid modules.order.
+MODORDER := .modules.tmp
+endif
+
+PHONY += single_modpost
+single_modpost: $(single-no-ko)
+	$(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER)
+	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
+
+KBUILD_MODULES := 1
+
+export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko))
+
+# trim unrelated directories
+build-dirs := $(foreach d, $(build-dirs), \
+			$(if $(filter $(d)/%, $(KBUILD_SINGLE_TARGETS)), $(d)))
+
+endif
+
 # Handle descending into subdirectories listed in $(build-dirs)
 # Preset locale variables to speed up the build process. Limit locale
 # tweaks to this spot to avoid wrong language settings when running
@@ -1649,7 +1757,9 @@
 PHONY += descend $(build-dirs)
 descend: $(build-dirs)
 $(build-dirs): prepare
-	$(Q)$(MAKE) $(build)=$@ single-build=$(single-build) need-builtin=1 need-modorder=1
+	$(Q)$(MAKE) $(build)=$@ \
+	single-build=$(if $(filter-out $@/, $(single-no-ko)),1) \
+	need-builtin=1 need-modorder=1
 
 clean-dirs := $(addprefix _clean_, $(clean-dirs))
 PHONY += $(clean-dirs) clean
@@ -1753,50 +1863,6 @@
 	$(Q)mkdir -p $(objtree)/tools
 	$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ $*
 
-# Single targets
-# ---------------------------------------------------------------------------
-# To build individual files in subdirectories, you can do like this:
-#
-#   make foo/bar/baz.s
-#
-# The supported suffixes for single-target are listed in 'single-targets'
-#
-# To build only under specific subdirectories, you can do like this:
-#
-#   make foo/bar/baz/
-
-ifdef single-build
-
-single-all := $(filter $(single-targets), $(MAKECMDGOALS))
-
-# .ko is special because modpost is needed
-single-ko := $(sort $(filter %.ko, $(single-all)))
-single-no-ko := $(sort $(patsubst %.ko,%.mod, $(single-all)))
-
-$(single-ko): single_modpost
-	@:
-$(single-no-ko): descend
-	@:
-
-ifeq ($(KBUILD_EXTMOD),)
-# For the single build of in-tree modules, use a temporary file to avoid
-# the situation of modules_install installing an invalid modules.order.
-MODORDER := .modules.tmp
-endif
-
-PHONY += single_modpost
-single_modpost: $(single-no-ko)
-	$(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER)
-	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-
-KBUILD_MODULES := 1
-
-export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko))
-
-single-build = $(if $(filter-out $@/, $(single-no-ko)),1)
-
-endif
-
 # FIXME Should go into a make.lib or something
 # ===========================================================================
 
--- linux-gkeop-5.4-5.4.0.orig/arch/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/Kconfig
@@ -131,6 +131,22 @@
 	    managed by the kernel and kept transparent to the probed
 	    application. )
 
+config HAVE_64BIT_ALIGNED_ACCESS
+	def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
+	help
+	  Some architectures require 64 bit accesses to be 64 bit
+	  aligned, which also requires structs containing 64 bit values
+	  to be 64 bit aligned too. This includes some 32 bit
+	  architectures which can do 64 bit accesses, as well as 64 bit
+	  architectures without unaligned access.
+
+	  This symbol should be selected by an architecture if 64 bit
+	  accesses are required to be 64 bit aligned in this way even
+	  though it is not a 64 bit architecture.
+
+	  See Documentation/unaligned-memory-access.txt for more
+	  information on the topic of unaligned memory accesses.
+
 config HAVE_EFFICIENT_UNALIGNED_ACCESS
 	bool
 	help
@@ -396,15 +412,22 @@
 config HAVE_RCU_TABLE_FREE
 	bool
 
-config HAVE_RCU_TABLE_NO_INVALIDATE
+config HAVE_MMU_GATHER_PAGE_SIZE
 	bool
 
-config HAVE_MMU_GATHER_PAGE_SIZE
+config MMU_GATHER_NO_RANGE
 	bool
 
 config HAVE_MMU_GATHER_NO_GATHER
 	bool
 
+config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+	bool
+	help
+	  Temporary select until all architectures can be converted to have
+	  irqs disabled over activate_mm. Architectures that do IPI based TLB
+	  shootdowns should enable this.
+
 config ARCH_HAVE_NMI_SAFE_CMPXCHG
 	bool
 
--- linux-gkeop-5.4-5.4.0.orig/arch/alpha/configs/defconfig
+++ linux-gkeop-5.4-5.4.0/arch/alpha/configs/defconfig
@@ -36,7 +36,6 @@
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_AIC7XXX=m
 CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
 # CONFIG_AIC7XXX_DEBUG_ENABLE is not set
--- linux-gkeop-5.4-5.4.0.orig/arch/alpha/include/asm/io.h
+++ linux-gkeop-5.4-5.4.0/arch/alpha/include/asm/io.h
@@ -322,14 +322,18 @@
 #if IO_CONCAT(__IO_PREFIX,trivial_io_bw)
 extern inline unsigned int ioread8(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
 	mb();
 	return ret;
 }
 
 extern inline unsigned int ioread16(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
 	mb();
 	return ret;
 }
@@ -370,7 +374,9 @@
 #if IO_CONCAT(__IO_PREFIX,trivial_io_lq)
 extern inline unsigned int ioread32(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
 	mb();
 	return ret;
 }
@@ -415,14 +421,18 @@
 
 extern inline u8 readb(const volatile void __iomem *addr)
 {
-	u8 ret = __raw_readb(addr);
+	u8 ret;
+	mb();
+	ret = __raw_readb(addr);
 	mb();
 	return ret;
 }
 
 extern inline u16 readw(const volatile void __iomem *addr)
 {
-	u16 ret = __raw_readw(addr);
+	u16 ret;
+	mb();
+	ret = __raw_readw(addr);
 	mb();
 	return ret;
 }
@@ -463,14 +473,18 @@
 
 extern inline u32 readl(const volatile void __iomem *addr)
 {
-	u32 ret = __raw_readl(addr);
+	u32 ret;
+	mb();
+	ret = __raw_readl(addr);
 	mb();
 	return ret;
 }
 
 extern inline u64 readq(const volatile void __iomem *addr)
 {
-	u64 ret = __raw_readq(addr);
+	u64 ret;
+	mb();
+	ret = __raw_readq(addr);
 	mb();
 	return ret;
 }
@@ -488,10 +502,10 @@
 }
 #endif
 
-#define ioread16be(p) be16_to_cpu(ioread16(p))
-#define ioread32be(p) be32_to_cpu(ioread32(p))
-#define iowrite16be(v,p) iowrite16(cpu_to_be16(v), (p))
-#define iowrite32be(v,p) iowrite32(cpu_to_be32(v), (p))
+#define ioread16be(p) swab16(ioread16(p))
+#define ioread32be(p) swab32(ioread32(p))
+#define iowrite16be(v,p) iowrite16(swab16(v), (p))
+#define iowrite32be(v,p) iowrite32(swab32(v), (p))
 
 #define inb_p		inb
 #define inw_p		inw
@@ -499,14 +513,44 @@
 #define outb_p		outb
 #define outw_p		outw
 #define outl_p		outl
-#define readb_relaxed(addr)	__raw_readb(addr)
-#define readw_relaxed(addr)	__raw_readw(addr)
-#define readl_relaxed(addr)	__raw_readl(addr)
-#define readq_relaxed(addr)	__raw_readq(addr)
-#define writeb_relaxed(b, addr)	__raw_writeb(b, addr)
-#define writew_relaxed(b, addr)	__raw_writew(b, addr)
-#define writel_relaxed(b, addr)	__raw_writel(b, addr)
-#define writeq_relaxed(b, addr)	__raw_writeq(b, addr)
+
+extern u8 readb_relaxed(const volatile void __iomem *addr);
+extern u16 readw_relaxed(const volatile void __iomem *addr);
+extern u32 readl_relaxed(const volatile void __iomem *addr);
+extern u64 readq_relaxed(const volatile void __iomem *addr);
+
+#if IO_CONCAT(__IO_PREFIX,trivial_io_bw)
+extern inline u8 readb_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readb(addr);
+}
+
+extern inline u16 readw_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readw(addr);
+}
+#endif
+
+#if IO_CONCAT(__IO_PREFIX,trivial_io_lq)
+extern inline u32 readl_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readl(addr);
+}
+
+extern inline u64 readq_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readq(addr);
+}
+#endif
+
+#define writeb_relaxed	writeb
+#define writew_relaxed	writew
+#define writel_relaxed	writel
+#define writeq_relaxed	writeq
 
 /*
  * String version of IO memory access ops:
--- linux-gkeop-5.4-5.4.0.orig/arch/alpha/kernel/io.c
+++ linux-gkeop-5.4-5.4.0/arch/alpha/kernel/io.c
@@ -16,21 +16,27 @@
 unsigned int
 ioread8(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
 	mb();
 	return ret;
 }
 
 unsigned int ioread16(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
 	mb();
 	return ret;
 }
 
 unsigned int ioread32(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
 	mb();
 	return ret;
 }
@@ -148,28 +154,36 @@
 
 u8 readb(const volatile void __iomem *addr)
 {
-	u8 ret = __raw_readb(addr);
+	u8 ret;
+	mb();
+	ret = __raw_readb(addr);
 	mb();
 	return ret;
 }
 
 u16 readw(const volatile void __iomem *addr)
 {
-	u16 ret = __raw_readw(addr);
+	u16 ret;
+	mb();
+	ret = __raw_readw(addr);
 	mb();
 	return ret;
 }
 
 u32 readl(const volatile void __iomem *addr)
 {
-	u32 ret = __raw_readl(addr);
+	u32 ret;
+	mb();
+	ret = __raw_readl(addr);
 	mb();
 	return ret;
 }
 
 u64 readq(const volatile void __iomem *addr)
 {
-	u64 ret = __raw_readq(addr);
+	u64 ret;
+	mb();
+	ret = __raw_readq(addr);
 	mb();
 	return ret;
 }
@@ -207,6 +221,38 @@
 EXPORT_SYMBOL(writel);
 EXPORT_SYMBOL(writeq);
 
+/*
+ * The _relaxed functions must be ordered w.r.t. each other, but they don't
+ * have to be ordered w.r.t. other memory accesses.
+ */
+u8 readb_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readb(addr);
+}
+
+u16 readw_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readw(addr);
+}
+
+u32 readl_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readl(addr);
+}
+
+u64 readq_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readq(addr);
+}
+
+EXPORT_SYMBOL(readb_relaxed);
+EXPORT_SYMBOL(readw_relaxed);
+EXPORT_SYMBOL(readl_relaxed);
+EXPORT_SYMBOL(readq_relaxed);
 
 /*
  * Read COUNT 8-bit bytes from port PORT into memory starting at SRC.
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arc/Makefile
@@ -90,16 +90,22 @@
 
 boot		:= arch/arc/boot
 
-#default target for make without any arguments.
-KBUILD_IMAGE	:= $(boot)/bootpImage
-
-all:	bootpImage
-bootpImage: vmlinux
-
-boot_targets += uImage uImage.bin uImage.gz
+boot_targets := uImage.bin uImage.gz uImage.lzma
 
+PHONY += $(boot_targets)
 $(boot_targets): vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 
+uimage-default-y			:= uImage.bin
+uimage-default-$(CONFIG_KERNEL_GZIP)	:= uImage.gz
+uimage-default-$(CONFIG_KERNEL_LZMA)	:= uImage.lzma
+
+PHONY += uImage
+uImage: $(uimage-default-y)
+	@ln -sf $< $(boot)/uImage
+	@$(kecho) '  Image $(boot)/uImage is ready'
+
+CLEAN_FILES += $(boot)/uImage
+
 archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/Makefile
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
-targets := vmlinux.bin vmlinux.bin.gz uImage
+targets := vmlinux.bin vmlinux.bin.gz
 
 # uImage build relies on mkimage being availble on your host for ARC target
 # You will need to build u-boot for ARC, rename mkimage to arc-elf32-mkimage
@@ -13,11 +13,6 @@
 UIMAGE_LOADADDR    = $(CONFIG_LINUX_LINK_BASE)
 UIMAGE_ENTRYADDR   = $(LINUX_START_TEXT)
 
-suffix-y := bin
-suffix-$(CONFIG_KERNEL_GZIP)	:= gz
-suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
-
-targets += uImage
 targets += uImage.bin
 targets += uImage.gz
 targets += uImage.lzma
@@ -42,7 +37,3 @@
 
 $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE
 	$(call if_changed,uimage,lzma)
-
-$(obj)/uImage: $(obj)/uImage.$(suffix-y)
-	@ln -sf $(notdir $<) $@
-	@echo '  Image $@ is ready'
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/axc001.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/axc001.dtsi
@@ -85,7 +85,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/axc003.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/axc003.dtsi
@@ -129,7 +129,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/axc003_idu.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/axc003_idu.dtsi
@@ -135,7 +135,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/axs10x_mb.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/axs10x_mb.dtsi
@@ -77,6 +77,7 @@
 			interrupt-names = "macirq";
 			phy-mode = "rgmii";
 			snps,pbl = < 32 >;
+			snps,multicast-filter-bins = <256>;
 			clocks = <&apbclk>;
 			clock-names = "stmmaceth";
 			max-speed = <100>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/hsdk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/hsdk.dts
@@ -88,6 +88,8 @@
 
 	arcpct: pct {
 		compatible = "snps,archs-pct";
+		interrupt-parent = <&cpu_intc>;
+		interrupts = <20>;
 	};
 
 	/* TIMER0 with interrupt for clockevent */
@@ -208,7 +210,7 @@
 			reg = <0x8000 0x2000>;
 			interrupts = <10>;
 			interrupt-names = "macirq";
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 			snps,pbl = <32>;
 			snps,multicast-filter-bins = <256>;
 			clocks = <&gmacclk>;
@@ -226,7 +228,7 @@
 				#address-cells = <1>;
 				#size-cells = <0>;
 				compatible = "snps,dwmac-mdio";
-				phy0: ethernet-phy@0 {
+				phy0: ethernet-phy@0 { /* Micrel KSZ9031 */
 					reg = <0>;
 				};
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/vdk_axc003.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/vdk_axc003.dtsi
@@ -46,7 +46,7 @@
 
 	};
 
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0xe0012000 0x200 >;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/boot/dts/vdk_axc003_idu.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arc/boot/dts/vdk_axc003_idu.dtsi
@@ -54,7 +54,7 @@
 
 	};
 
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0xe0012000 0x200 >;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/include/asm/elf.h
+++ linux-gkeop-5.4-5.4.0/arch/arc/include/asm/elf.h
@@ -19,7 +19,7 @@
 #define  R_ARC_32_PCREL		0x31
 
 /*to set parameters in the core dumps */
-#define ELF_ARCH		EM_ARCOMPACT
+#define ELF_ARCH		EM_ARC_INUSE
 #define ELF_CLASS		ELFCLASS32
 
 #ifdef CONFIG_CPU_BIG_ENDIAN
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/include/asm/linkage.h
+++ linux-gkeop-5.4-5.4.0/arch/arc/include/asm/linkage.h
@@ -29,6 +29,8 @@
 .endm
 
 #define ASM_NL		 `	/* use '`' to mark new line in macro */
+#define __ALIGN		.align 4
+#define __ALIGN_STR	__stringify(__ALIGN)
 
 /* annotation for data we want in DCCM - if enabled in .config */
 .macro ARCFP_DATA nm
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/include/asm/page.h
+++ linux-gkeop-5.4-5.4.0/arch/arc/include/asm/page.h
@@ -10,6 +10,7 @@
 #ifndef __ASSEMBLY__
 
 #define clear_page(paddr)		memset((paddr), 0, PAGE_SIZE)
+#define copy_user_page(to, from, vaddr, pg)	copy_page(to, from)
 #define copy_page(to, from)		memcpy((to), (from), PAGE_SIZE)
 
 struct vm_area_struct;
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/include/asm/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/arc/include/asm/pgtable.h
@@ -135,8 +135,10 @@
 
 #ifdef CONFIG_ARC_HAS_PAE40
 #define PTE_BITS_NON_RWX_IN_PD1	(0xff00000000 | PAGE_MASK | _PAGE_CACHEABLE)
+#define MAX_POSSIBLE_PHYSMEM_BITS 40
 #else
 #define PTE_BITS_NON_RWX_IN_PD1	(PAGE_MASK | _PAGE_CACHEABLE)
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #endif
 
 /**************************************************************************
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/arc/kernel/entry.S
@@ -153,7 +153,6 @@
 tracesys:
 	; save EFA in case tracer wants the PC of traced task
 	; using ERET won't work since next-PC has already committed
-	lr  r12, [efa]
 	GET_CURR_TASK_FIELD_PTR   TASK_THREAD, r11
 	st  r12, [r11, THREAD_FAULT_ADDR]	; thread.fault_address
 
@@ -196,15 +195,9 @@
 ; Breakpoint TRAP
 ; ---------------------------------------------
 trap_with_param:
-
-	; stop_pc info by gdb needs this info
-	lr  r0, [efa]
+	mov r0, r12	; EFA in case ptracer/gdb wants stop_pc
 	mov r1, sp
 
-	; Now that we have read EFA, it is safe to do "fake" rtie
-	;   and get out of CPU exception mode
-	FAKE_RET_FROM_EXCPN
-
 	; Save callee regs in case gdb wants to have a look
 	; SP will grow up by size of CALLEE Reg-File
 	; NOTE: clobbers r12
@@ -231,6 +224,10 @@
 
 	EXCEPTION_PROLOGUE
 
+	lr  r12, [efa]
+
+	FAKE_RET_FROM_EXCPN
+
 	;============ TRAP 1   :breakpoints
 	; Check ECR for trap with arg (PROLOGUE ensures r10 has ECR)
 	bmsk.f 0, r10, 7
@@ -238,9 +235,6 @@
 
 	;============ TRAP  (no param): syscall top level
 
-	; First return from Exception to pure K mode (Exception/IRQs renabled)
-	FAKE_RET_FROM_EXCPN
-
 	; If syscall tracing ongoing, invoke pre-post-hooks
 	GET_CURR_THR_INFO_FLAGS   r10
 	btst r10, TIF_SYSCALL_TRACE
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/kernel/perf_event.c
+++ linux-gkeop-5.4-5.4.0/arch/arc/kernel/perf_event.c
@@ -562,7 +562,7 @@
 {
 	struct arc_reg_pct_build pct_bcr;
 	struct arc_reg_cc_build cc_bcr;
-	int i, has_interrupts;
+	int i, has_interrupts, irq = -1;
 	int counter_size;	/* in bits */
 
 	union cc_name {
@@ -638,22 +638,25 @@
 	};
 
 	if (has_interrupts) {
-		int irq = platform_get_irq(pdev, 0);
-
-		if (irq < 0) {
-			pr_err("Cannot get IRQ number for the platform\n");
-			return -ENODEV;
+		irq = platform_get_irq(pdev, 0);
+		if (irq >= 0) {
+			int ret;
+
+			arc_pmu->irq = irq;
+
+			/* intc map function ensures irq_set_percpu_devid() called */
+			ret = request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
+						 this_cpu_ptr(&arc_pmu_cpu));
+
+			if (!ret)
+				on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
+			else
+				irq = -1;
 		}
 
-		arc_pmu->irq = irq;
-
-		/* intc map function ensures irq_set_percpu_devid() called */
-		request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
-				   this_cpu_ptr(&arc_pmu_cpu));
-
-		on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
+	}
 
-	} else
+	if (irq == -1)
 		arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/arc/kernel/setup.c
@@ -12,6 +12,7 @@
 #include <linux/clocksource.h>
 #include <linux/console.h>
 #include <linux/module.h>
+#include <linux/sizes.h>
 #include <linux/cpu.h>
 #include <linux/of_fdt.h>
 #include <linux/of.h>
@@ -409,12 +410,12 @@
 	if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr)
 		panic("Linux built with incorrect DCCM Base address\n");
 
-	if (CONFIG_ARC_DCCM_SZ != cpu->dccm.sz)
+	if (CONFIG_ARC_DCCM_SZ * SZ_1K != cpu->dccm.sz)
 		panic("Linux built with incorrect DCCM Size\n");
 #endif
 
 #ifdef CONFIG_ARC_HAS_ICCM
-	if (CONFIG_ARC_ICCM_SZ != cpu->iccm.sz)
+	if (CONFIG_ARC_ICCM_SZ * SZ_1K != cpu->iccm.sz)
 		panic("Linux built with incorrect ICCM Size\n");
 #endif
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/kernel/stacktrace.c
+++ linux-gkeop-5.4-5.4.0/arch/arc/kernel/stacktrace.c
@@ -38,15 +38,15 @@
 
 #ifdef CONFIG_ARC_DW2_UNWIND
 
-static void seed_unwind_frame_info(struct task_struct *tsk,
-				   struct pt_regs *regs,
-				   struct unwind_frame_info *frame_info)
+static int
+seed_unwind_frame_info(struct task_struct *tsk, struct pt_regs *regs,
+		       struct unwind_frame_info *frame_info)
 {
 	/*
 	 * synchronous unwinding (e.g. dump_stack)
 	 *  - uses current values of SP and friends
 	 */
-	if (tsk == NULL && regs == NULL) {
+	if (regs == NULL && (tsk == NULL || tsk == current)) {
 		unsigned long fp, sp, blink, ret;
 		frame_info->task = current;
 
@@ -65,11 +65,15 @@
 		frame_info->call_frame = 0;
 	} else if (regs == NULL) {
 		/*
-		 * Asynchronous unwinding of sleeping task
-		 *  - Gets SP etc from task's pt_regs (saved bottom of kernel
-		 *    mode stack of task)
+		 * Asynchronous unwinding of a likely sleeping task
+		 *  - first ensure it is actually sleeping
+		 *  - if so, it will be in __switch_to, kernel mode SP of task
+		 *    is safe-kept and BLINK at a well known location in there
 		 */
 
+		if (tsk->state == TASK_RUNNING)
+			return -1;
+
 		frame_info->task = tsk;
 
 		frame_info->regs.r27 = TSK_K_FP(tsk);
@@ -103,6 +107,8 @@
 		frame_info->regs.r63 = regs->ret;
 		frame_info->call_frame = 0;
 	}
+
+	return 0;
 }
 
 #endif
@@ -112,11 +118,12 @@
 		int (*consumer_fn) (unsigned int, void *), void *arg)
 {
 #ifdef CONFIG_ARC_DW2_UNWIND
-	int ret = 0;
+	int ret = 0, cnt = 0;
 	unsigned int address;
 	struct unwind_frame_info frame_info;
 
-	seed_unwind_frame_info(tsk, regs, &frame_info);
+	if (seed_unwind_frame_info(tsk, regs, &frame_info))
+		return 0;
 
 	while (1) {
 		address = UNW_PC(&frame_info);
@@ -132,6 +139,11 @@
 			break;
 
 		frame_info.regs.r63 = frame_info.regs.r31;
+
+		if (cnt++ > 128) {
+			printk("unwinder looping too long, aborting !\n");
+			return 0;
+		}
 	}
 
 	return address;		/* return the last address it saw */
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/plat-eznps/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arc/plat-eznps/Kconfig
@@ -6,8 +6,9 @@
 
 menuconfig ARC_PLAT_EZNPS
 	bool "\"EZchip\" ARC dev platform"
+	depends on ISA_ARCOMPACT
 	select CPU_BIG_ENDIAN
-	select CLKSRC_NPS
+	select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
 	select EZNPS_GIC
 	select EZCHIP_NPS_MANAGEMENT_ENET if ETHERNET
 	help
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/plat-eznps/include/plat/ctop.h
+++ linux-gkeop-5.4-5.4.0/arch/arc/plat-eznps/include/plat/ctop.h
@@ -33,7 +33,6 @@
 #define CTOP_AUX_DPC				(CTOP_AUX_BASE + 0x02C)
 #define CTOP_AUX_LPC				(CTOP_AUX_BASE + 0x030)
 #define CTOP_AUX_EFLAGS				(CTOP_AUX_BASE + 0x080)
-#define CTOP_AUX_IACK				(CTOP_AUX_BASE + 0x088)
 #define CTOP_AUX_GPA1				(CTOP_AUX_BASE + 0x08C)
 #define CTOP_AUX_UDMC				(CTOP_AUX_BASE + 0x300)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arc/plat-hsdk/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arc/plat-hsdk/Kconfig
@@ -8,5 +8,6 @@
 	select ARC_HAS_ACCL_REGS
 	select ARC_IRQ_NO_AUTOSAVE
 	select CLK_HSDK
+	select RESET_CONTROLLER
 	select RESET_HSDK
 	select HAVE_PCI
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/Kconfig
@@ -73,8 +73,9 @@
 	select HAVE_ARM_SMCCC if CPU_V7
 	select HAVE_EBPF_JIT if !CPU_ENDIAN_BE32
 	select HAVE_CONTEXT_TRACKING
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_C_RECORDMCOUNT
-	select HAVE_DEBUG_KMEMLEAK
+	select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL
 	select HAVE_DMA_CONTIGUOUS if MMU
 	select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
 	select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
@@ -506,8 +507,10 @@
 	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select NEED_MACH_IO_H
+	select S3C2410_WATCHDOG
 	select SAMSUNG_ATAGS
 	select USE_OF
+	select WATCHDOG
 	help
 	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
 	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
@@ -1906,7 +1909,7 @@
 config KEXEC
 	bool "Kexec system call (EXPERIMENTAL)"
 	depends on (!SMP || PM_SLEEP_SMP)
-	depends on !CPU_V7M
+	depends on MMU
 	select KEXEC_CORE
 	help
 	  kexec is a system call that implements the ability to shutdown your
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm/Makefile
@@ -307,13 +307,15 @@
 ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y)
 prepare: stack_protector_prepare
 stack_protector_prepare: prepare0
-	$(eval KBUILD_CFLAGS += \
+	$(eval SSP_PLUGIN_CFLAGS := \
 		-fplugin-arg-arm_ssp_per_task_plugin-tso=$(shell	\
 			awk '{if ($$2 == "THREAD_SZ_ORDER") print $$3;}'\
 				include/generated/asm-offsets.h)	\
 		-fplugin-arg-arm_ssp_per_task_plugin-offset=$(shell	\
 			awk '{if ($$2 == "TI_STACK_CANARY") print $$3;}'\
 				include/generated/asm-offsets.h))
+	$(eval KBUILD_CFLAGS += $(SSP_PLUGIN_CFLAGS))
+	$(eval GCC_PLUGINS_CFLAGS += $(SSP_PLUGIN_CFLAGS))
 endif
 
 all:	$(notdir $(KBUILD_IMAGE))
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/compressed/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/compressed/Makefile
@@ -101,7 +101,6 @@
 		$(libfdt) $(libfdt_hdrs) hyp-stub.S
 
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
-KBUILD_CFLAGS += $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
 
 ifeq ($(CONFIG_FUNCTION_TRACER),y)
 ORIG_CFLAGS := $(KBUILD_CFLAGS)
@@ -117,11 +116,12 @@
 CFLAGS_fdt_rw.o := $(nossp_flags)
 CFLAGS_fdt_wip.o := $(nossp_flags)
 
-ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin -I$(obj)
+ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \
+	     -I$(obj) $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
 asflags-y := -DZIMAGE
 
 # Supply kernel BSS size to the decompressor via a linker symbol.
-KBSS_SZ = $(shell echo $$(($$($(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \
+KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \
 		sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \
 		       -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) )
 LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
@@ -165,7 +165,7 @@
 # The .data section is already discarded by the linker script so no need
 # to bother about it here.
 check_for_bad_syms = \
-bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
+bad_syms=$$($(NM) $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
 [ -z "$$bad_syms" ] || \
   ( echo "following symbols must have non local/private scope:" >&2; \
     echo "$$bad_syms" >&2; false )
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/compressed/head.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/compressed/head.S
@@ -1142,9 +1142,9 @@
 __armv7_mmu_cache_off:
 		mrc	p15, 0, r0, c1, c0
 #ifdef CONFIG_MMU
-		bic	r0, r0, #0x000d
+		bic	r0, r0, #0x0005
 #else
-		bic	r0, r0, #0x000c
+		bic	r0, r0, #0x0004
 #endif
 		mcr	p15, 0, r0, c1, c0	@ turn MMU and cache off
 		mov	r12, lr
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/compressed/libfdt_env.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/compressed/libfdt_env.h
@@ -2,11 +2,13 @@
 #ifndef _ARM_LIBFDT_ENV_H
 #define _ARM_LIBFDT_ENV_H
 
+#include <linux/limits.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <asm/byteorder.h>
 
-#define INT_MAX			((int)(~0U>>1))
+#define INT32_MAX	S32_MAX
+#define UINT32_MAX	U32_MAX
 
 typedef __be16 fdt16_t;
 typedef __be32 fdt32_t;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/compressed/vmlinux.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/compressed/vmlinux.lds.S
@@ -43,7 +43,7 @@
   }
   .table : ALIGN(4) {
     _table_start = .;
-    LONG(ZIMAGE_MAGIC(2))
+    LONG(ZIMAGE_MAGIC(4))
     LONG(ZIMAGE_MAGIC(0x5a534c4b))
     LONG(ZIMAGE_MAGIC(__piggy_size_addr - _start))
     LONG(ZIMAGE_MAGIC(_kernel_bss_size))
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/deflate_xip_data.sh
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/deflate_xip_data.sh
@@ -56,7 +56,7 @@
 # substitute the data section by a compressed version
 $DD if="$XIPIMAGE" count=$data_start iflag=count_bytes of="$XIPIMAGE.tmp"
 $DD if="$XIPIMAGE"  skip=$data_start iflag=skip_bytes |
-gzip -9 >> "$XIPIMAGE.tmp"
+$KGZIP -9 >> "$XIPIMAGE.tmp"
 
 # replace kernel binary
 mv -f "$XIPIMAGE.tmp" "$XIPIMAGE"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am335x-boneblack-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am335x-boneblack-common.dtsi
@@ -131,6 +131,11 @@
 };
 
 / {
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x80000000 0x20000000>; /* 512 MB */
+	};
+
 	clk_mcasp0_fixed: clk_mcasp0_fixed {
 		#clock-cells = <0>;
 		compatible = "fixed-clock";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am335x-pocketbeagle.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am335x-pocketbeagle.dts
@@ -88,7 +88,6 @@
 			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
 			AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
 			AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
-			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT, MUX_MODE4)		/* (B12) mcasp0_aclkr.mmc0_sdwp */
 		>;
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am335x-sancloud-bbe.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am335x-sancloud-bbe.dts
@@ -108,7 +108,7 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii-txid";
+	phy-mode = "rgmii-id";
 };
 
 &i2c0 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am437x-gp-evm.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -86,7 +86,7 @@
 		};
 
 	lcd0: display {
-		compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
+		compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
 		label = "lcd";
 
 		backlight = <&lcd_bl>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am437x-idk-evm.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -526,11 +526,11 @@
 	 * Supply voltage supervisor on board will not allow opp50 so
 	 * disable it and set opp100 as suspend OPP.
 	 */
-	opp50@300000000 {
+	opp50-300000000 {
 		status = "disabled";
 	};
 
-	opp100@600000000 {
+	opp100-600000000 {
 		opp-suspend;
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am437x-l4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am437x-l4.dtsi
@@ -1576,8 +1576,9 @@
 			reg-names = "rev";
 			ti,hwmods = "d_can0";
 			/* Domains (P, C): per_pwrdm, l4ls_clkdm */
-			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>;
-			clock-names = "fck";
+			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>,
+			<&dcan0_fck>;
+			clock-names = "fck", "osc";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0xcc000 0x2000>;
@@ -1585,6 +1586,8 @@
 			dcan0: can@0 {
 				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
 				reg = <0x0 0x2000>;
+				clocks = <&dcan0_fck>;
+				clock-names = "fck";
 				syscon-raminit = <&scm_conf 0x644 0>;
 				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
@@ -1597,8 +1600,9 @@
 			reg-names = "rev";
 			ti,hwmods = "d_can1";
 			/* Domains (P, C): per_pwrdm, l4ls_clkdm */
-			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>;
-			clock-names = "fck";
+			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>,
+			<&dcan1_fck>;
+			clock-names = "fck", "osc";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0xd0000 0x2000>;
@@ -1606,6 +1610,8 @@
 			dcan1: can@0 {
 				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
 				reg = <0x0 0x2000>;
+				clocks = <&dcan1_fck>;
+				clock-name = "fck";
 				syscon-raminit = <&scm_conf 0x644 1>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am43x-epos-evm.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -42,7 +42,7 @@
 	};
 
 	lcd0: display {
-		compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
+		compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
 		label = "lcd";
 
 		backlight = <&lcd_bl>;
@@ -848,6 +848,7 @@
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&spi0_pins_default>;
 	pinctrl-1 = <&spi0_pins_sleep>;
+	ti,pindir-d0-out-d1-in = <1>;
 };
 
 &spi1 {
@@ -855,6 +856,7 @@
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&spi1_pins_default>;
 	pinctrl-1 = <&spi1_pins_sleep>;
+	ti,pindir-d0-out-d1-in = <1>;
 };
 
 &usb2_phy1 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am43xx-clocks.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am43xx-clocks.dtsi
@@ -704,6 +704,60 @@
 		ti,bit-shift = <8>;
 		reg = <0x2a48>;
 	};
+
+	clkout1_osc_div_ck: clkout1-osc-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&sys_clkin_ck>;
+		ti,bit-shift = <20>;
+		ti,max-div = <4>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_mux_ck: clkout1-src2-mux-ck {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&clk_rc32k_ck>, <&sysclk_div>, <&dpll_ddr_m2_ck>,
+			 <&dpll_per_m2_ck>, <&dpll_disp_m2_ck>,
+			 <&dpll_mpu_m2_ck>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_pre_div_ck: clkout1-src2-pre-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&clkout1_src2_mux_ck>;
+		ti,bit-shift = <4>;
+		ti,max-div = <8>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_post_div_ck: clkout1-src2-post-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&clkout1_src2_pre_div_ck>;
+		ti,bit-shift = <8>;
+		ti,max-div = <32>;
+		ti,index-power-of-two;
+		reg = <0x4100>;
+	};
+
+	clkout1_mux_ck: clkout1-mux-ck {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&clkout1_osc_div_ck>, <&clk_rc32k_ck>,
+			 <&clkout1_src2_post_div_ck>, <&dpll_extdev_m2_ck>;
+		ti,bit-shift = <16>;
+		reg = <0x4100>;
+	};
+
+	clkout1_ck: clkout1-ck {
+		#clock-cells = <0>;
+		compatible = "ti,gate-clock";
+		clocks = <&clkout1_mux_ck>;
+		ti,bit-shift = <23>;
+		reg = <0x4100>;
+	};
 };
 
 &prcm {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am571x-idk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am571x-idk.dts
@@ -167,11 +167,7 @@
 
 &pcie1_rc {
 	status = "okay";
-	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
-};
-
-&pcie1_ep {
-	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+	gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
 };
 
 &mmc1 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am572x-idk-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am572x-idk-common.dtsi
@@ -147,10 +147,6 @@
 	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
 };
 
-&pcie1_ep {
-	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
-};
-
 &mailbox5 {
 	status = "okay";
 	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
@@ -29,6 +29,27 @@
 		reg = <0x0 0x80000000 0x0 0x80000000>;
 	};
 
+	main_12v0: fixedregulator-main_12v0 {
+		/* main supply */
+		compatible = "regulator-fixed";
+		regulator-name = "main_12v0";
+		regulator-min-microvolt = <12000000>;
+		regulator-max-microvolt = <12000000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	evm_5v0: fixedregulator-evm_5v0 {
+		/* Output of TPS54531D */
+		compatible = "regulator-fixed";
+		regulator-name = "evm_5v0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&main_12v0>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
 	vdd_3v3: fixedregulator-vdd_3v3 {
 		compatible = "regulator-fixed";
 		regulator-name = "vdd_3v3";
@@ -547,10 +568,6 @@
 	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
 };
 
-&pcie1_ep {
-	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
-};
-
 &mcasp3 {
 	#sound-dai-cells = <0>;
 	assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/armada-388-helios4.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/armada-388-helios4.dts
@@ -70,6 +70,9 @@
 
 	system-leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_system_led_pins>;
+
 		status-led {
 			label = "helios4:green:status";
 			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
@@ -86,6 +89,9 @@
 
 	io-leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_io_led_pins>;
+
 		sata1-led {
 			label = "helios4:green:ata1";
 			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
@@ -121,11 +127,15 @@
 	fan1: j10-pwm {
 		compatible = "pwm-fan";
 		pwms = <&gpio1 9 40000>;	/* Target freq:25 kHz */
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_fan1_pins>;
 	};
 
 	fan2: j17-pwm {
 		compatible = "pwm-fan";
 		pwms = <&gpio1 23 40000>;	/* Target freq:25 kHz */
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_fan2_pins>;
 	};
 
 	usb2_phy: usb2-phy {
@@ -291,16 +301,22 @@
 						       "mpp39", "mpp40";
 					marvell,function = "sd0";
 				};
-				helios_led_pins: helios-led-pins {
-					marvell,pins = "mpp24", "mpp25",
-						       "mpp49", "mpp50",
+				helios_system_led_pins: helios-system-led-pins {
+					marvell,pins = "mpp24", "mpp25";
+					marvell,function = "gpio";
+				};
+				helios_io_led_pins: helios-io-led-pins {
+					marvell,pins = "mpp49", "mpp50",
 						       "mpp52", "mpp53",
 						       "mpp54";
 					marvell,function = "gpio";
 				};
-				helios_fan_pins: helios-fan-pins {
-					marvell,pins = "mpp41", "mpp43",
-						       "mpp48", "mpp55";
+				helios_fan1_pins: helios_fan1_pins {
+					marvell,pins = "mpp41", "mpp43";
+					marvell,function = "gpio";
+				};
+				helios_fan2_pins: helios_fan2_pins {
+					marvell,pins = "mpp48", "mpp55";
 					marvell,function = "gpio";
 				};
 				microsom_spi1_cs_pins: spi1-cs-pins {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/armada-38x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/armada-38x.dtsi
@@ -339,7 +339,8 @@
 
 			comphy: phy@18300 {
 				compatible = "marvell,armada-380-comphy";
-				reg = <0x18300 0x100>;
+				reg-names = "comphy", "conf";
+				reg = <0x18300 0x100>, <0x18460 4>;
 				#address-cells = <1>;
 				#size-cells = <0>;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -266,11 +266,6 @@
 	reg = <0x11000 0x100>;
 };
 
-&i2c1 {
-	compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
-	reg = <0x11100 0x100>;
-};
-
 &mpic {
 	reg = <0x20a00 0x2d0>, <0x21070 0x58>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
@@ -81,11 +81,6 @@
 	status = "okay";
 };
 
-&vuart {
-	// VUART Host Console
-	status = "okay";
-};
-
 &uart1 {
 	// Host Console
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
@@ -22,9 +22,9 @@
 		#size-cells = <1>;
 		ranges;
 
-		vga_memory: framebuffer@7f000000 {
+		vga_memory: framebuffer@9f000000 {
 			no-map;
-			reg = <0x7f000000 0x01000000>;
+			reg = <0x9f000000 0x01000000>; /* 16M */
 		};
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/aspeed-g4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -371,6 +371,7 @@
 						compatible = "aspeed,ast2400-ibt-bmc";
 						reg = <0xc0 0x18>;
 						interrupts = <8>;
+						clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
 						status = "disabled";
 					};
 				};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/aspeed-g5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -464,6 +464,7 @@
 						compatible = "aspeed,ast2500-ibt-bmc";
 						reg = <0xc0 0x18>;
 						interrupts = <8>;
+						clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
 						status = "disabled";
 					};
 				};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
@@ -40,7 +40,7 @@
 
 	ahb {
 		usb0: gadget@300000 {
-			atmel,vbus-gpio = <&pioA PIN_PA27 GPIO_ACTIVE_HIGH>;
+			atmel,vbus-gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_usba_vbus>;
 			status = "okay";
@@ -125,8 +125,6 @@
 			bus-width = <8>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_sdmmc0_default>;
-			non-removable;
-			mmc-ddr-1_8v;
 			status = "okay";
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -242,6 +242,11 @@
 						atmel,pins =
 							<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PE9, conflicts with A9 */
 					};
+					pinctrl_usb_default: usb_default {
+						atmel,pins =
+							<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 				};
 			};
 		};
@@ -259,6 +264,8 @@
 					   &pioE 3 GPIO_ACTIVE_LOW
 					   &pioE 4 GPIO_ACTIVE_LOW
 					  >;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usb_default>;
 			status = "okay";
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -133,6 +133,11 @@
 						atmel,pins =
 							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
 					};
+					pinctrl_usb_default: usb_default {
+						atmel,pins =
+							<AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 					pinctrl_key_gpio: key_gpio_0 {
 						atmel,pins =
 							<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
@@ -158,6 +163,8 @@
 					   &pioE 11 GPIO_ACTIVE_HIGH
 					   &pioE 14 GPIO_ACTIVE_HIGH
 					  >;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usb_default>;
 			status = "okay";
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91sam9260.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91sam9260.dtsi
@@ -187,7 +187,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -221,7 +221,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -239,7 +239,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -257,7 +257,7 @@
 				usart3 {
 					pinctrl_usart3: usart3-0 {
 						atmel,pins =
-							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -275,7 +275,7 @@
 				uart0 {
 					pinctrl_uart0: uart0-0 {
 						atmel,pins =
-							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_NONE
+							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP
 							 AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
 					};
 				};
@@ -283,7 +283,7 @@
 				uart1 {
 					pinctrl_uart1: uart1-0 {
 						atmel,pins =
-							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 				};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91sam9261.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91sam9261.dtsi
@@ -329,7 +329,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -347,7 +347,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -365,7 +365,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91sam9263.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91sam9263.dtsi
@@ -183,7 +183,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -201,7 +201,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -219,7 +219,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91sam9g45.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -556,7 +556,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -574,7 +574,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -592,7 +592,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -610,7 +610,7 @@
 				usart3 {
 					pinctrl_usart3: usart3-0 {
 						atmel,pins =
-							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/at91sam9rl.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -278,23 +278,26 @@
 				atmel,adc-use-res = "highres";
 
 				trigger0 {
-					trigger-name = "timer-counter-0";
+					trigger-name = "external-rising";
 					trigger-value = <0x1>;
+					trigger-external;
 				};
+
 				trigger1 {
-					trigger-name = "timer-counter-1";
-					trigger-value = <0x3>;
+					trigger-name = "external-falling";
+					trigger-value = <0x2>;
+					trigger-external;
 				};
 
 				trigger2 {
-					trigger-name = "timer-counter-2";
-					trigger-value = <0x5>;
+					trigger-name = "external-any";
+					trigger-value = <0x3>;
+					trigger-external;
 				};
 
 				trigger3 {
-					trigger-name = "external";
-					trigger-value = <0x13>;
-					trigger-external;
+					trigger-name = "continuous";
+					trigger-value = <0x6>;
 				};
 			};
 
@@ -682,7 +685,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -721,7 +724,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -744,7 +747,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -767,7 +770,7 @@
 				usart3 {
 					pinctrl_usart3: usart3-0 {
 						atmel,pins =
-							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -174,8 +174,8 @@
 		mdio: mdio@18002000 {
 			compatible = "brcm,iproc-mdio";
 			reg = <0x18002000 0x8>;
-			#size-cells = <1>;
-			#address-cells = <0>;
+			#size-cells = <0>;
+			#address-cells = <1>;
 			status = "disabled";
 
 			gphy0: ethernet-phy@0 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/bcm-hr2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/bcm-hr2.dtsi
@@ -75,7 +75,7 @@
 		timer@20200 {
 			compatible = "arm,cortex-a9-global-timer";
 			reg = <0x20200 0x100>;
-			interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
 			clocks = <&periph_clk>;
 		};
 
@@ -83,7 +83,7 @@
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0x20600 0x20>;
 			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
-						  IRQ_TYPE_LEVEL_HIGH)>;
+						  IRQ_TYPE_EDGE_RISING)>;
 			clocks = <&periph_clk>;
 		};
 
@@ -91,7 +91,7 @@
 			compatible = "arm,cortex-a9-twd-wdt";
 			reg = <0x20620 0x20>;
 			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
-						  IRQ_TYPE_LEVEL_HIGH)>;
+						  IRQ_TYPE_EDGE_RISING)>;
 			clocks = <&periph_clk>;
 		};
 
@@ -217,7 +217,7 @@
 		};
 
 		qspi: spi@27200 {
-			compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
+			compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
 			reg = <0x027200 0x184>,
 			      <0x027000 0x124>,
 			      <0x11c408 0x004>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/bcm-nsp.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -257,10 +257,10 @@
 			status = "disabled";
 		};
 
-		mailbox: mailbox@25000 {
+		mailbox: mailbox@25c00 {
 			compatible = "brcm,iproc-fa2-mbox";
-			reg = <0x25000 0x445>;
-			interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
+			reg = <0x25c00 0x400>;
+			interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
 			#mbox-cells = <1>;
 			brcm,rx-status-len = <32>;
 			brcm,use-bcm-hdr;
@@ -282,7 +282,7 @@
 		};
 
 		qspi: spi@27200 {
-			compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
+			compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
 			reg = <0x027200 0x184>,
 			      <0x027000 0x124>,
 			      <0x11c408 0x004>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
@@ -24,7 +24,7 @@
 
 	leds {
 		act {
-			gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
 		};
 	};
 
@@ -112,6 +112,7 @@
 &sdhci {
 	#address-cells = <1>;
 	#size-cells = <0>;
+	pinctrl-names = "default";
 	pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
 	bus-width = <4>;
 	mmc-pwrseq = <&wifi_pwrseq>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/bcm283x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/bcm283x.dtsi
@@ -40,7 +40,7 @@
 
 			trips {
 				cpu-crit {
-					temperature	= <80000>;
+					temperature	= <90000>;
 					hysteresis	= <0>;
 					type		= "critical";
 				};
@@ -488,6 +488,7 @@
 					     "dsi0_ddr2",
 					     "dsi0_ddr";
 
+			status = "disabled";
 		};
 
 		thermal: thermal@7e212000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/bcm5301x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/bcm5301x.dtsi
@@ -353,8 +353,8 @@
 	mdio: mdio@18003000 {
 		compatible = "brcm,iproc-mdio";
 		reg = <0x18003000 0x8>;
-		#size-cells = <1>;
-		#address-cells = <0>;
+		#size-cells = <0>;
+		#address-cells = <1>;
 	};
 
 	mdio-bus-mux@18003000 {
@@ -488,7 +488,7 @@
 	};
 
 	spi@18029200 {
-		compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
+		compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
 		reg = <0x18029200 0x184>,
 		      <0x18029000 0x124>,
 		      <0x1811b408 0x004>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dm8148-evm.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dm8148-evm.dts
@@ -24,12 +24,12 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &cpsw_emac1 {
 	phy-handle = <&ethphy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &davinci_mdio {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dm8148-t410.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dm8148-t410.dts
@@ -33,12 +33,12 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &cpsw_emac1 {
 	phy-handle = <&ethphy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &davinci_mdio {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dra62x-j5eco-evm.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dra62x-j5eco-evm.dts
@@ -24,12 +24,12 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &cpsw_emac1 {
 	phy-handle = <&ethphy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &davinci_mdio {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dra7-l4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dra7-l4.dtsi
@@ -3059,7 +3059,7 @@
 
 				davinci_mdio: mdio@1000 {
 					compatible = "ti,cpsw-mdio","ti,davinci_mdio";
-					clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 0>;
+					clocks = <&gmac_main_clk>;
 					clock-names = "fck";
 					#address-cells = <1>;
 					#size-cells = <0>;
@@ -3413,6 +3413,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER13_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
@@ -3441,6 +3442,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER14_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
@@ -3469,6 +3471,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER15_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
@@ -3497,6 +3500,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER16_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dra7.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dra7.dtsi
@@ -148,6 +148,7 @@
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0x0 0x0 0x0 0xc0000000>;
+		dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
 		ti,hwmods = "l3_main_1", "l3_main_2";
 		reg = <0x0 0x44000000 0x0 0x1000000>,
 		      <0x0 0x45000000 0x0 0x1000>;
@@ -171,6 +172,7 @@
 			#address-cells = <1>;
 			ranges = <0x51000000 0x51000000 0x3000
 				  0x0	     0x20000000 0x10000000>;
+			dma-ranges;
 			/**
 			 * To enable PCI endpoint mode, disable the pcie1_rc
 			 * node and enable pcie1_ep mode.
@@ -228,6 +230,7 @@
 			#address-cells = <1>;
 			ranges = <0x51800000 0x51800000 0x3000
 				  0x0	     0x30000000 0x10000000>;
+			dma-ranges;
 			status = "disabled";
 			pcie2_rc: pcie@51800000 {
 				reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dra76x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dra76x.dtsi
@@ -32,8 +32,8 @@
 				interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-names = "int0", "int1";
-				clocks = <&mcan_clk>, <&l3_iclk_div>;
-				clock-names = "cclk", "hclk";
+				clocks = <&l3_iclk_div>, <&mcan_clk>;
+				clock-names = "hclk", "cclk";
 				bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
 			};
 		};
@@ -86,3 +86,8 @@
 &usb4_tm {
 	status = "disabled";
 };
+
+&mmc3 {
+	/* dra76x is not affected by i887 */
+	max-frequency = <96000000>;
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/dra7xx-clocks.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/dra7xx-clocks.dtsi
@@ -796,16 +796,6 @@
 		clock-div = <1>;
 	};
 
-	ipu1_gfclk_mux: ipu1_gfclk_mux@520 {
-		#clock-cells = <0>;
-		compatible = "ti,mux-clock";
-		clocks = <&dpll_abe_m2x2_ck>, <&dpll_core_h22x2_ck>;
-		ti,bit-shift = <24>;
-		reg = <0x0520>;
-		assigned-clocks = <&ipu1_gfclk_mux>;
-		assigned-clock-parents = <&dpll_core_h22x2_ck>;
-	};
-
 	dummy_ck: dummy_ck {
 		#clock-cells = <0>;
 		compatible = "fixed-clock";
@@ -1564,6 +1554,8 @@
 			compatible = "ti,clkctrl";
 			reg = <0x20 0x4>;
 			#clock-cells = <2>;
+			assigned-clocks = <&ipu1_clkctrl DRA7_IPU1_MMU_IPU1_CLKCTRL 24>;
+			assigned-clock-parents = <&dpll_core_h22x2_ck>;
 		};
 
 		ipu_clkctrl: ipu-clkctrl@50 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos3250-artik5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos3250-artik5.dtsi
@@ -75,7 +75,7 @@
 	s2mps14_pmic@66 {
 		compatible = "samsung,s2mps14-pmic";
 		interrupt-parent = <&gpx3>;
-		interrupts = <5 IRQ_TYPE_NONE>;
+		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s2mps14_irq>;
 		reg = <0x66>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos3250-monk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos3250-monk.dts
@@ -195,7 +195,7 @@
 	s2mps14_pmic@66 {
 		compatible = "samsung,s2mps14-pmic";
 		interrupt-parent = <&gpx0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x66>;
 		wakeup-source;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos3250-rinato.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -260,7 +260,7 @@
 	s2mps14_pmic@66 {
 		compatible = "samsung,s2mps14-pmic";
 		interrupt-parent = <&gpx0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x66>;
 		wakeup-source;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -115,7 +115,7 @@
 		gpio-sck = <&gpy3 1 GPIO_ACTIVE_HIGH>;
 		gpio-mosi = <&gpy3 3 GPIO_ACTIVE_HIGH>;
 		num-chipselects = <1>;
-		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
+		cs-gpios = <&gpy4 3 GPIO_ACTIVE_LOW>;
 
 		lcd@0 {
 			compatible = "samsung,ld9040";
@@ -124,8 +124,6 @@
 			vci-supply = <&ldo17_reg>;
 			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
 			spi-max-frequency = <1200000>;
-			spi-cpol;
-			spi-cpha;
 			power-on-delay = <10>;
 			reset-delay = <10>;
 			panel-width-mm = <90>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi
@@ -68,7 +68,7 @@
 
 	i2c_cm36651: i2c-gpio-2 {
 		compatible = "i2c-gpio";
-		gpios = <&gpf0 0 GPIO_ACTIVE_LOW>, <&gpf0 1 GPIO_ACTIVE_LOW>;
+		gpios = <&gpf0 0 GPIO_ACTIVE_HIGH>, <&gpf0 1 GPIO_ACTIVE_HIGH>;
 		i2c-gpio,delay-us = <2>;
 		#address-cells = <1>;
 		#size-cells = <0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos5250-spring.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos5250-spring.dts
@@ -108,7 +108,7 @@
 		compatible = "samsung,s5m8767-pmic";
 		reg = <0x66>;
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
 		wakeup-source;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos5410-odroidxu.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -327,6 +327,8 @@
 				regulator-name = "vddq_lcd";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
+				/* Supplies also GPK and GPJ */
+				regulator-always-on;
 			};
 
 			ldo8_reg: LDO8 {
@@ -637,11 +639,11 @@
 };
 
 &usbdrd_dwc3_0 {
-	dr_mode = "host";
+	dr_mode = "peripheral";
 };
 
 &usbdrd_dwc3_1 {
-	dr_mode = "peripheral";
+	dr_mode = "host";
 };
 
 &usbdrd3_0 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
@@ -560,6 +560,34 @@
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
+
+	usb3_1_oc: usb3-1-oc {
+		samsung,pins = "gpk2-4", "gpk2-5";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_1_vbusctrl: usb3-1-vbusctrl {
+		samsung,pins = "gpk2-6", "gpk2-7";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_0_oc: usb3-0-oc {
+		samsung,pins = "gpk3-0", "gpk3-1";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_0_vbusctrl: usb3-0-vbusctrl {
+		samsung,pins = "gpk3-2", "gpk3-3";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
 };
 
 &pinctrl_2 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos5410.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos5410.dtsi
@@ -398,6 +398,8 @@
 &usbdrd3_0 {
 	clocks = <&clock CLK_USBD300>;
 	clock-names = "usbdrd30";
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>;
 };
 
 &usbdrd_phy0 {
@@ -409,6 +411,8 @@
 &usbdrd3_1 {
 	clocks = <&clock CLK_USBD301>;
 	clock-names = "usbdrd30";
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>;
 };
 
 &usbdrd_dwc3_1 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -349,7 +349,7 @@
 		reg = <0x66>;
 
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s2mps11_irq>;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -141,7 +141,7 @@
 		samsung,s2mps11-acokb-ground;
 
 		interrupt-parent = <&gpx0>;
-		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s2mps11_irq>;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
@@ -75,8 +75,8 @@
 	imx27-phycard-s-rdk {
 		pinctrl_i2c1: i2c1grp {
 			fsl,pins = <
-				MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
-				MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
+				MX27_PAD_I2C_DATA__I2C_DATA 0x0
+				MX27_PAD_I2C_CLK__I2C_CLK 0x0
 			>;
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx50-evk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx50-evk.dts
@@ -59,7 +59,7 @@
 				MX50_PAD_CSPI_MISO__CSPI_MISO		0x00
 				MX50_PAD_CSPI_MOSI__CSPI_MOSI		0x00
 				MX50_PAD_CSPI_SS0__GPIO4_11		0xc4
-				MX50_PAD_ECSPI1_MOSI__CSPI_SS1		0xf4
+				MX50_PAD_ECSPI1_MOSI__GPIO4_13		0x84
 			>;
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6dl-icore-mipi.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6dl-icore-mipi.dts
@@ -8,7 +8,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-icore.dtsi"
+#include "imx6qdl-icore-1.5.dtsi"
 
 / {
 	model = "Engicam i.CoreM6 DualLite/Solo MIPI Starter Kit";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts
@@ -38,7 +38,7 @@
 };
 
 &switch_ports {
-	/delete-node/ port@2;
+	/delete-node/ port@3;
 };
 
 &touchscreen {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6q-b450v3.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6q-b450v3.dts
@@ -65,13 +65,6 @@
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6q-b650v3.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6q-b650v3.dts
@@ -65,13 +65,6 @@
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6q-b850v3.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6q-b850v3.dts
@@ -53,17 +53,6 @@
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
-			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
-			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
-};
-
 &ldb {
 	fsl,dual-channel;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -377,3 +377,18 @@
 		#interrupt-cells = <1>;
 	};
 };
+
+&clks {
+	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI1_PRE_SEL>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
@@ -55,7 +55,7 @@
 		#sound-dai-cells = <0>;
 		clocks = <&clk_ext_audio_codec>;
 		VDDA-supply = <&reg_3p3v>;
-		VDDIO-supply = <&reg_3p3v>;
+		VDDIO-supply = <&sw2_reg>;
 	};
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
@@ -206,7 +206,7 @@
 	};
 
 	rtc@56 {
-		compatible = "rv3029c2";
+		compatible = "microcrystal,rv3029";
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_rtc_hw300>;
 		reg = <0x56>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -273,7 +273,7 @@
 
 			/* VDD_AUD_1P8: Audio codec */
 			reg_aud_1p8v: ldo3 {
-				regulator-name = "vdd1p8";
+				regulator-name = "vdd1p8a";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-boot-on;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -105,19 +105,16 @@
 	sound-digital {
 		compatible = "simple-audio-card";
 		simple-audio-card,name = "tda1997x-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&sound_codec>;
+		simple-audio-card,frame-master = <&sound_codec>;
 
-		simple-audio-card,dai-link@0 {
-			format = "i2s";
-
-			cpu {
-				sound-dai = <&ssi2>;
-			};
+		sound_cpu: simple-audio-card,cpu {
+			sound-dai = <&ssi1>;
+		};
 
-			codec {
-				bitclock-master;
-				frame-master;
-				sound-dai = <&hdmi_receiver>;
-			};
+		sound_codec: simple-audio-card,codec {
+			sound-dai = <&hdmi_receiver>;
 		};
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -384,7 +384,7 @@
 
 	pinctrl_usbotg: usbotggrp {
 		fsl,pins = <
-			MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
+			MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
 		>;
 	};
 
@@ -396,6 +396,7 @@
 			MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17070
 			MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17070
 			MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17070
+			MX6QDL_PAD_GPIO_1__GPIO1_IO01  0x1b0b0
 		>;
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
@@ -167,7 +167,7 @@
 		i2c-gpio,delay-us = <2>; /* ~100 kHz */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		status = "disabld";
+		status = "disabled";
 	};
 
 	i2c_cam: i2c-gpio-cam {
@@ -179,7 +179,7 @@
 		i2c-gpio,delay-us = <2>; /* ~100 kHz */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		status = "disabld";
+		status = "disabled";
 	};
 };
 
@@ -551,7 +551,7 @@
 
 	pinctrl_i2c3: i2c3grp {
 		fsl,pins = <
-			MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
+			MX6QDL_PAD_GPIO_5__I2C3_SCL		0x4001b8b1
 			MX6QDL_PAD_GPIO_16__I2C3_SDA		0x4001b8b1
 		>;
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi
@@ -107,14 +107,14 @@
 		regulators {
 			vdd_arm: buck1 {
 				regulator-name = "vdd_arm";
-				regulator-min-microvolt = <730000>;
+				regulator-min-microvolt = <925000>;
 				regulator-max-microvolt = <1380000>;
 				regulator-always-on;
 			};
 
 			vdd_soc: buck2 {
 				regulator-name = "vdd_soc";
-				regulator-min-microvolt = <730000>;
+				regulator-min-microvolt = <1150000>;
 				regulator-max-microvolt = <1380000>;
 				regulator-always-on;
 			};
@@ -183,7 +183,6 @@
 	pinctrl-0 = <&pinctrl_usdhc4>;
 	bus-width = <8>;
 	non-removable;
-	vmmc-supply = <&vdd_emmc_1p8>;
 	status = "disabled";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -749,10 +749,6 @@
 	vin-supply = <&vgen5_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&vgen5_reg>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sr-som-ti.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-sr-som-ti.dtsi
@@ -153,6 +153,7 @@
 	bus-width = <4>;
 	keep-power-in-suspend;
 	mmc-pwrseq = <&pwrseq_ti_wifi>;
+	cap-power-off-card;
 	non-removable;
 	vmmc-supply = <&vcc_3v3>;
 	/* vqmmc-supply = <&nvcc_sd1>; - MMC layer doesn't like it! */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-udoo.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-udoo.dtsi
@@ -98,7 +98,7 @@
 &fec {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
@@ -166,7 +166,6 @@
 				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
 				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
 				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
-				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
 			>;
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
@@ -627,7 +627,7 @@
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	bus-width = <4>;
 	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
-	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+	disable-wp;
 	vmmc-supply = <&reg_3p3v_sd>;
 	vqmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
@@ -640,7 +640,7 @@
 	pinctrl-0 = <&pinctrl_usdhc3>;
 	bus-width = <4>;
 	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
-	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+	disable-wp;
 	vmmc-supply = <&reg_3p3v_sd>;
 	vqmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
@@ -774,6 +774,7 @@
 &usbh1 {
 	vbus-supply = <&reg_5p0v_main>;
 	disable-over-current;
+	maximum-speed = "full-speed";
 	status = "okay";
 };
 
@@ -1055,7 +1056,6 @@
 			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
 			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
 			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
-			MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x40010040
 			MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x40010040
 		>;
 	};
@@ -1068,7 +1068,6 @@
 			MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
 			MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
 			MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
-			MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x40010040
 			MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x40010040
 
 		>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qdl.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qdl.dtsi
@@ -1039,9 +1039,8 @@
 				compatible = "fsl,imx6q-fec";
 				reg = <0x02188000 0x4000>;
 				interrupt-names = "int0", "pps";
-				interrupts-extended =
-					<&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
-					<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+				interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
+					     <0 119 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6QDL_CLK_ENET>,
 					 <&clks IMX6QDL_CLK_ENET>,
 					 <&clks IMX6QDL_CLK_ENET_REF>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6qp.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6qp.dtsi
@@ -77,7 +77,6 @@
 };
 
 &fec {
-	/delete-property/interrupts-extended;
 	interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
 		     <0 119 IRQ_TYPE_LEVEL_HIGH>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sl-evk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sl-evk.dts
@@ -584,10 +584,6 @@
 	vin-supply = <&sw2_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&sw2_reg>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sl.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sl.dtsi
@@ -936,8 +936,10 @@
 			};
 
 			rngb: rngb@21b4000 {
+				compatible = "fsl,imx6sl-rngb", "fsl,imx25-rngb";
 				reg = <0x021b4000 0x4000>;
 				interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clks IMX6SL_CLK_DUMMY>;
 			};
 
 			weim: weim@21b8000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sll-evk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sll-evk.dts
@@ -265,10 +265,6 @@
 	status = "okay";
 };
 
-&reg_3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &snvs_poweroff {
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sx-sabreauto.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sx-sabreauto.dts
@@ -99,7 +99,7 @@
 &fec2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet2>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ethphy0>;
 	fsl,magic-packet;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb-reva.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sx-sdb-reva.dts
@@ -159,10 +159,6 @@
 	vin-supply = <&vgen6_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&vgen6_reg>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sx-sdb.dts
@@ -141,10 +141,6 @@
 	vin-supply = <&vgen6_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&vgen6_reg>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6sx-sdb.dtsi
@@ -213,7 +213,7 @@
 &fec2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet2>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ethphy2>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
@@ -215,7 +215,7 @@
 	flash0: n25q256a@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "micron,n25q256a";
+		compatible = "micron,n25q256a", "jedec,spi-nor";
 		spi-max-frequency = <29000000>;
 		spi-rx-bus-width = <4>;
 		spi-tx-bus-width = <4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx6ul-kontron-n6310-s.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx6ul-kontron-n6310-s.dts
@@ -157,10 +157,6 @@
 	status = "okay";
 };
 
-&snvs_poweroff {
-	status = "okay";
-};
-
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx7-colibri.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -337,7 +337,6 @@
 	assigned-clock-rates = <400000000>;
 	bus-width = <8>;
 	fsl,tuning-step = <2>;
-	max-frequency = <100000000>;
 	vmmc-supply = <&reg_module_3v3>;
 	vqmmc-supply = <&reg_DCDC3>;
 	non-removable;
@@ -347,7 +346,7 @@
 &iomuxc {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4
-		     &pinctrl_gpio7>;
+		     &pinctrl_gpio7 &pinctrl_usbc_det>;
 
 	pinctrl_gpio1: gpio1-grp {
 		fsl,pins = <
@@ -452,7 +451,6 @@
 
 	pinctrl_enet1: enet1grp {
 		fsl,pins = <
-			MX7D_PAD_ENET1_CRS__GPIO7_IO14			0x14
 			MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL	0x73
 			MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0	0x73
 			MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1	0x73
@@ -650,6 +648,12 @@
 		>;
 	};
 
+	pinctrl_usbc_det: gpio-usbc-det {
+		fsl,pins = <
+			MX7D_PAD_ENET1_CRS__GPIO7_IO14	0x14
+		>;
+	};
+
 	pinctrl_usbh_reg: gpio-usbh-vbus {
 		fsl,pins = <
 			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14 /* SODIMM 129 USBH PEN */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx7s-colibri.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx7s-colibri.dtsi
@@ -49,3 +49,7 @@
 		reg = <0x80000000 0x10000000>;
 	};
 };
+
+&gpmi {
+	status = "okay";
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/imx7ulp.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/imx7ulp.dtsi
@@ -37,10 +37,10 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		cpu0: cpu@0 {
+		cpu0: cpu@f00 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
-			reg = <0>;
+			reg = <0xf00>;
 		};
 	};
 
@@ -397,7 +397,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLC>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 0 32>;
+			gpio-ranges = <&iomuxc1 0 0 20>;
 		};
 
 		gpio_ptd: gpio@40af0000 {
@@ -411,7 +411,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLD>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 32 32>;
+			gpio-ranges = <&iomuxc1 0 32 12>;
 		};
 
 		gpio_pte: gpio@40b00000 {
@@ -425,7 +425,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLE>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 64 32>;
+			gpio-ranges = <&iomuxc1 0 64 16>;
 		};
 
 		gpio_ptf: gpio@40b10000 {
@@ -439,7 +439,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLF>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 96 32>;
+			gpio-ranges = <&iomuxc1 0 96 20>;
 		};
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/logicpd-som-lv-baseboard.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/logicpd-som-lv-baseboard.dtsi
@@ -51,6 +51,8 @@
 
 &mcbsp2 {
 	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcbsp2_pins>;
 };
 
 &charger {
@@ -102,35 +104,18 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
-	lcd0: display@0 {
-		compatible = "panel-dpi";
-		label = "28";
-		status = "okay";
-		/* default-on; */
+	lcd0: display {
+		/* This isn't the exact LCD, but the timings meet spec */
+		compatible = "logicpd,type28";
 		pinctrl-names = "default";
 		pinctrl-0 = <&lcd_enable_pin>;
-		enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;	/* gpio155, lcd INI */
+		backlight = <&bl>;
+		enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
 		port {
 			lcd_in: endpoint {
 				remote-endpoint = <&dpi_out>;
 			};
 		};
-
-		panel-timing {
-			clock-frequency = <9000000>;
-			hactive = <480>;
-			vactive = <272>;
-			hfront-porch = <3>;
-			hback-porch = <2>;
-			hsync-len = <42>;
-			vback-porch = <3>;
-			vfront-porch = <2>;
-			vsync-len = <11>;
-			hsync-active = <1>;
-			vsync-active = <1>;
-			de-active = <1>;
-			pixelclk-active = <0>;
-		};
 	};
 
 	bl: backlight {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
@@ -11,22 +11,6 @@
 #include "logicpd-torpedo-37xx-devkit.dts"
 
 &lcd0 {
-
-	label = "28";
-
-	panel-timing {
-		clock-frequency = <9000000>;
-		hactive = <480>;
-		vactive = <272>;
-		hfront-porch = <3>;
-		hback-porch = <2>;
-		hsync-len = <42>;
-		vback-porch = <3>;
-		vfront-porch = <2>;
-		vsync-len = <11>;
-		hsync-active = <1>;
-		vsync-active = <1>;
-		de-active = <1>;
-		pixelclk-active = <0>;
-	};
+	/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
+	compatible = "logicpd,type28";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi
@@ -80,6 +80,8 @@
 };
 
 &mcbsp2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcbsp2_pins>;
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/lpc32xx.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/lpc32xx.dtsi
@@ -329,9 +329,6 @@
 
 					clocks = <&xtal_32k>, <&xtal>;
 					clock-names = "xtal_32k", "xtal";
-
-					assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
-					assigned-clock-rates = <208000000>;
 				};
 			};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/ls1021a.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/ls1021a.dtsi
@@ -181,7 +181,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <0x0 0x1550000 0x0 0x10000>,
-			      <0x0 0x40000000 0x0 0x40000000>;
+			      <0x0 0x40000000 0x0 0x20000000>;
 			reg-names = "QuadSPI", "QuadSPI-memory";
 			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
 			clock-names = "qspi_en", "qspi";
@@ -728,7 +728,7 @@
 		};
 
 		mdio0: mdio@2d24000 {
-			compatible = "fsl,etsec2-mdio";
+			compatible = "gianfar";
 			device_type = "mdio";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -737,7 +737,7 @@
 		};
 
 		mdio1: mdio@2d64000 {
-			compatible = "fsl,etsec2-mdio";
+			compatible = "gianfar";
 			device_type = "mdio";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -753,7 +753,7 @@
 			fsl,tmr-prsc    = <2>;
 			fsl,tmr-add     = <0xaaaaaaab>;
 			fsl,tmr-fiper1  = <999999995>;
-			fsl,tmr-fiper2  = <99990>;
+			fsl,tmr-fiper2  = <999999995>;
 			fsl,max-adj     = <499999999>;
 			fsl,extts-fifo;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/meson8.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/meson8.dtsi
@@ -129,8 +129,8 @@
 	gpu_opp_table: gpu-opp-table {
 		compatible = "operating-points-v2";
 
-		opp-182150000 {
-			opp-hz = /bits/ 64 <182150000>;
+		opp-182142857 {
+			opp-hz = /bits/ 64 <182142857>;
 			opp-microvolt = <1150000>;
 		};
 		opp-318750000 {
@@ -230,8 +230,6 @@
 				     <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
@@ -253,7 +251,7 @@
 &aobus {
 	pmu: pmu@e0 {
 		compatible = "amlogic,meson8-pmu", "syscon";
-		reg = <0xe0 0x8>;
+		reg = <0xe0 0x18>;
 	};
 
 	pinctrl_aobus: pinctrl@84 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -219,7 +219,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/meson8b.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/meson8b.dtsi
@@ -125,8 +125,8 @@
 			opp-hz = /bits/ 64 <255000000>;
 			opp-microvolt = <1100000>;
 		};
-		opp-364300000 {
-			opp-hz = /bits/ 64 <364300000>;
+		opp-364285714 {
+			opp-hz = /bits/ 64 <364285714>;
 			opp-microvolt = <1100000>;
 		};
 		opp-425000000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
@@ -83,7 +83,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
 		};
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
@@ -13,8 +13,10 @@
 		#interrupt-cells = <2>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-		spi-max-frequency = <3000000>;
+		spi-max-frequency = <9600000>;
 		spi-cs-high;
+		spi-cpol;
+		spi-cpha;
 
 		cpcap_adc: adc {
 			compatible = "motorola,mapphone-cpcap-adc";
@@ -160,12 +162,12 @@
 		regulator-enable-ramp-delay = <1000>;
 	};
 
-	/* Used by DSS */
+	/* Used by DSS and is the "zerov_regulator" trigger for SoC off mode */
 	vcsi: VCSI {
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
 		regulator-enable-ramp-delay = <1000>;
-		regulator-boot-on;
+		regulator-always-on;
 	};
 
 	vdac: VDAC {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
@@ -192,6 +192,7 @@
 					fixed-link {
 						speed = <1000>;
 						full-duplex;
+						pause;
 					};
 				};
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/mt7623n-rfb-emmc.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/mt7623n-rfb-emmc.dts
@@ -138,6 +138,7 @@
 	mac@1 {
 		compatible = "mediatek,eth-mac";
 		reg = <1>;
+		phy-mode = "rgmii";
 		phy-handle = <&phy5>;
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap3-n900.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap3-n900.dts
@@ -105,6 +105,14 @@
 			linux,code = <SW_FRONT_PROXIMITY>;
 			linux,can-disable;
 		};
+
+		machine_cover {
+			label = "Machine Cover";
+			gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
+			linux,input-type = <EV_SW>;
+			linux,code = <SW_MACHINE_COVER>;
+			linux,can-disable;
+		};
 	};
 
 	isp1707: isp1707 {
@@ -155,6 +163,12 @@
 		pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
 	};
 
+	rom_rng: rng {
+		compatible = "nokia,n900-rom-rng";
+		clocks = <&rng_ick>;
+		clock-names = "ick";
+	};
+
 	/* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
 	vctcxo: vctcxo {
 		compatible = "fixed-clock";
@@ -808,10 +822,6 @@
 	pinctrl-0 = <&mmc1_pins>;
 	vmmc-supply = <&vmmc1>;
 	bus-width = <4>;
-	/* For debugging, it is often good idea to remove this GPIO.
-	   It means you can remove back cover (to reboot by removing
-	   battery) and still use the MMC card. */
-	cd-gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
 };
 
 /* most boards use vaux3, only some old versions use vmmc2 instead */
@@ -843,34 +853,46 @@
 		compatible = "ti,omap2-onenand";
 		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
 
+		/*
+		 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
+		 * bootloader set values when booted with v5.1
+		 * (OneNAND Manufacturer: Samsung):
+		 *
+		 *   cs0 GPMC_CS_CONFIG1: 0xfb001202
+		 *   cs0 GPMC_CS_CONFIG2: 0x00111100
+		 *   cs0 GPMC_CS_CONFIG3: 0x00020200
+		 *   cs0 GPMC_CS_CONFIG4: 0x11001102
+		 *   cs0 GPMC_CS_CONFIG5: 0x03101616
+		 *   cs0 GPMC_CS_CONFIG6: 0x90060000
+		 */
 		gpmc,sync-read;
 		gpmc,sync-write;
 		gpmc,burst-length = <16>;
 		gpmc,burst-read;
 		gpmc,burst-wrap;
 		gpmc,burst-write;
-		gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
-		gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
+		gpmc,device-width = <2>;
+		gpmc,mux-add-data = <2>;
 		gpmc,cs-on-ns = <0>;
-		gpmc,cs-rd-off-ns = <87>;
-		gpmc,cs-wr-off-ns = <87>;
+		gpmc,cs-rd-off-ns = <102>;
+		gpmc,cs-wr-off-ns = <102>;
 		gpmc,adv-on-ns = <0>;
-		gpmc,adv-rd-off-ns = <10>;
-		gpmc,adv-wr-off-ns = <10>;
-		gpmc,oe-on-ns = <15>;
-		gpmc,oe-off-ns = <87>;
+		gpmc,adv-rd-off-ns = <12>;
+		gpmc,adv-wr-off-ns = <12>;
+		gpmc,oe-on-ns = <12>;
+		gpmc,oe-off-ns = <102>;
 		gpmc,we-on-ns = <0>;
-		gpmc,we-off-ns = <87>;
-		gpmc,rd-cycle-ns = <112>;
-		gpmc,wr-cycle-ns = <112>;
-		gpmc,access-ns = <81>;
-		gpmc,page-burst-access-ns = <15>;
+		gpmc,we-off-ns = <102>;
+		gpmc,rd-cycle-ns = <132>;
+		gpmc,wr-cycle-ns = <132>;
+		gpmc,access-ns = <96>;
+		gpmc,page-burst-access-ns = <18>;
 		gpmc,bus-turnaround-ns = <0>;
 		gpmc,cycle2cycle-delay-ns = <0>;
 		gpmc,wait-monitoring-ns = <0>;
-		gpmc,clk-activation-ns = <5>;
-		gpmc,wr-data-mux-bus-ns = <30>;
-		gpmc,wr-access-ns = <81>;
+		gpmc,clk-activation-ns = <6>;
+		gpmc,wr-data-mux-bus-ns = <36>;
+		gpmc,wr-access-ns = <96>;
 		gpmc,sync-clk-ps = <15000>;
 
 		/*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap3-pandora-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap3-pandora-common.dtsi
@@ -226,6 +226,17 @@
 		gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* GPIO_164 */
 	};
 
+	/* wl1251 wifi+bt module */
+	wlan_en: fixed-regulator-wg7210_en {
+		compatible = "regulator-fixed";
+		regulator-name = "vwlan";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		startup-delay-us = <50000>;
+		enable-active-high;
+		gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+	};
+
 	/* wg7210 (wifi+bt module) 32k clock buffer */
 	wg7210_32k: fixed-regulator-wg7210_32k {
 		compatible = "regulator-fixed";
@@ -522,9 +533,30 @@
 	/*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/	/* GPIO_127 */
 };
 
-/* mmc3 is probed using pdata-quirks to pass wl1251 card data */
 &mmc3 {
-	status = "disabled";
+	vmmc-supply = <&wlan_en>;
+
+	bus-width = <4>;
+	non-removable;
+	ti,non-removable;
+	cap-power-off-card;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc3_pins>;
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	wlan: wifi@1 {
+		compatible = "ti,wl1251";
+
+		reg = <1>;
+
+		interrupt-parent = <&gpio1>;
+		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;	/* GPIO_21 */
+
+		ti,wl1251-has-eeprom;
+	};
 };
 
 /* bluetooth*/
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap3-tao3530.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap3-tao3530.dtsi
@@ -222,7 +222,7 @@
 	pinctrl-0 = <&mmc1_pins>;
 	vmmc-supply = <&vmmc1>;
 	vqmmc-supply = <&vsim>;
-	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_HIGH>;
+	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
 	bus-width = <8>;
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap4-duovero-parlor.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap4-duovero-parlor.dts
@@ -139,7 +139,7 @@
 	ethernet@gpmc {
 		reg = <5 0 0xff>;
 		interrupt-parent = <&gpio2>;
-		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;	/* gpio_44 */
+		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;		/* gpio_44 */
 
 		phy-mode = "mii";
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap4-panda-es.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap4-panda-es.dts
@@ -46,7 +46,7 @@
 
 	button_pins: pinmux_button_pins {
 		pinctrl-single,pins = <
-			OMAP4_IOPAD(0x11b, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
+			OMAP4_IOPAD(0x0fc, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
 		>;
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap4.dtsi
@@ -328,10 +328,10 @@
 			status = "disabled";
 		};
 
-		target-module@56000000 {
+		sgx_module: target-module@56000000 {
 			compatible = "ti,sysc-omap4", "ti,sysc";
-			reg = <0x5601fc00 0x4>,
-			      <0x5601fc10 0x4>;
+			reg = <0x5600fe00 0x4>,
+			      <0x5600fe10 0x4>;
 			reg-names = "rev", "sysc";
 			ti,sysc-midle = <SYSC_IDLE_FORCE>,
 					<SYSC_IDLE_NO>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap443x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap443x.dtsi
@@ -33,10 +33,12 @@
 	};
 
 	ocp {
+		/* 4430 has only gpio_86 tshut and no talert interrupt */
 		bandgap: bandgap@4a002260 {
 			reg = <0x4a002260 0x4
 			       0x4a00232C 0x4>;
 			compatible = "ti,omap4430-bandgap";
+			gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
 
 			#thermal-sensor-cells = <0>;
 		};
@@ -74,3 +76,13 @@
 };
 
 /include/ "omap443x-clocks.dtsi"
+
+/*
+ * Use dpll_per for sgx at 153.6MHz like droid4 stock v3.0.8 Android kernel
+ */
+&sgx_module {
+	assigned-clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 24>,
+			  <&dpll_per_m7x2_ck>;
+	assigned-clock-rates = <0>, <153600000>;
+	assigned-clock-parents = <&dpll_per_m7x2_ck>;
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/omap5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/omap5.dtsi
@@ -143,6 +143,7 @@
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0 0 0 0xc0000000>;
+		dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
 		ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
 		reg = <0 0x44000000 0 0x2000>,
 		      <0 0x44800000 0 0x3000>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/owl-s500.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/owl-s500.dtsi
@@ -84,21 +84,21 @@
 		global_timer: timer@b0020200 {
 			compatible = "arm,cortex-a9-global-timer";
 			reg = <0xb0020200 0x100>;
-			interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+			interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
 			status = "disabled";
 		};
 
 		twd_timer: timer@b0020600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xb0020600 0x20>;
-			interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
 			status = "disabled";
 		};
 
 		twd_wdt: wdt@b0020620 {
 			compatible = "arm,cortex-a9-twd-wdt";
 			reg = <0xb0020620 0xe0>;
-			interrupts = <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
 			status = "disabled";
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/ox810se.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/ox810se.dtsi
@@ -323,8 +323,8 @@
 					interrupt-controller;
 					reg = <0 0x200>;
 					#interrupt-cells = <1>;
-					valid-mask = <0xFFFFFFFF>;
-					clear-mask = <0>;
+					valid-mask = <0xffffffff>;
+					clear-mask = <0xffffffff>;
 				};
 
 				timer0: timer@200 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/ox820.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/ox820.dtsi
@@ -240,8 +240,8 @@
 					reg = <0 0x200>;
 					interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
 					#interrupt-cells = <1>;
-					valid-mask = <0xFFFFFFFF>;
-					clear-mask = <0>;
+					valid-mask = <0xffffffff>;
+					clear-mask = <0xffffffff>;
 				};
 
 				timer0: timer@200 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
@@ -45,18 +45,21 @@
 		emac: gem@30000 {
 			compatible = "cadence,gem";
 			reg = <0x30000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <31>;
 		};
 
 		dmac1: dmac@40000 {
 			compatible = "snps,dw-dmac";
 			reg = <0x40000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <25>;
 		};
 
 		dmac2: dmac@50000 {
 			compatible = "snps,dw-dmac";
 			reg = <0x50000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <26>;
 		};
 
@@ -234,6 +237,7 @@
 		axi2pico@c0000000 {
 			compatible = "picochip,axi2pico-pc3x2";
 			reg = <0xc0000000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <13 14 15 16 17 18 19 20 21>;
 		};
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a73a4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a73a4.dtsi
@@ -131,7 +131,14 @@
 	cmt1: timer@e6130000 {
 		compatible = "renesas,r8a73a4-cmt1", "renesas,rcar-gen2-cmt1";
 		reg = <0 0xe6130000 0 0x1004>;
-		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
 		clock-names = "fck";
 		power-domains = <&pd_c5>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7740.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7740.dtsi
@@ -479,7 +479,7 @@
 		cpg_clocks: cpg_clocks@e6150000 {
 			compatible = "renesas,r8a7740-cpg-clocks";
 			reg = <0xe6150000 0x10000>;
-			clocks = <&extal1_clk>, <&extalr_clk>;
+			clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
 			#clock-cells = <1>;
 			clock-output-names = "system", "pllc0", "pllc1",
 					     "pllc2", "r",
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7743.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7743.dtsi
@@ -338,7 +338,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -348,7 +348,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -357,7 +357,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -367,7 +367,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -376,7 +376,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -386,7 +386,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7744.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7744.dtsi
@@ -338,7 +338,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -348,7 +348,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -357,7 +357,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -367,7 +367,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -376,7 +376,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -386,7 +386,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7745.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7745.dtsi
@@ -302,7 +302,7 @@
 			resets = <&cpg 407>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -312,7 +312,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -321,7 +321,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -331,7 +331,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -340,7 +340,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -350,7 +350,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7779.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7779.dtsi
@@ -68,6 +68,14 @@
 		      <0xf0000100 0x100>;
 	};
 
+	timer@f0000200 {
+		compatible = "arm,cortex-a9-global-timer";
+		reg = <0xf0000200 0x100>;
+		interrupts = <GIC_PPI 11
+			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+		clocks = <&cpg_clocks R8A7779_CLK_ZS>;
+	};
+
 	timer@f0000600 {
 		compatible = "arm,cortex-a9-twd-timer";
 		reg = <0xf0000600 0x20>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7790.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7790.dtsi
@@ -427,7 +427,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -437,7 +437,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -446,7 +446,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -456,7 +456,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -465,7 +465,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -475,7 +475,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_rt: mmu@ffc80000 {
+		ipmmu_rt: iommu@ffc80000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xffc80000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7791.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7791.dtsi
@@ -350,7 +350,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -360,7 +360,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -369,7 +369,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -379,7 +379,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -388,7 +388,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -398,7 +398,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_rt: mmu@ffc80000 {
+		ipmmu_rt: iommu@ffc80000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xffc80000 0 0x1000>;
@@ -407,7 +407,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7793-gose.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7793-gose.dts
@@ -339,7 +339,7 @@
 			reg = <0x20>;
 			remote = <&vin1>;
 
-			port {
+			ports {
 				#address-cells = <1>;
 				#size-cells = <0>;
 
@@ -399,7 +399,7 @@
 			interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 			default-input = <0>;
 
-			port {
+			ports {
 				#address-cells = <1>;
 				#size-cells = <0>;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7793.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7793.dtsi
@@ -336,7 +336,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -346,7 +346,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -355,7 +355,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -365,7 +365,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -374,7 +374,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -384,7 +384,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_rt: mmu@ffc80000 {
+		ipmmu_rt: iommu@ffc80000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xffc80000 0 0x1000>;
@@ -393,7 +393,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/r8a7794.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/r8a7794.dtsi
@@ -290,7 +290,7 @@
 			resets = <&cpg 407>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -300,7 +300,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -309,7 +309,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -319,7 +319,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -328,7 +328,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -338,7 +338,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/rk3036.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/rk3036.dtsi
@@ -128,7 +128,7 @@
 		assigned-clocks = <&cru SCLK_GPU>;
 		assigned-clock-rates = <100000000>;
 		clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		resets = <&cru SRST_GPU>;
 		status = "disabled";
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/rk3188-bqedison2qc.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/rk3188-bqedison2qc.dts
@@ -58,20 +58,25 @@
 
 	lvds-encoder {
 		compatible = "ti,sn75lvds83", "lvds-encoder";
-		#address-cells = <1>;
-		#size-cells = <0>;
 
-		port@0 {
-			reg = <0>;
-			lvds_in_vop0: endpoint {
-				remote-endpoint = <&vop0_out_lvds>;
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lvds_in_vop0: endpoint {
+					remote-endpoint = <&vop0_out_lvds>;
+				};
 			};
-		};
 
-		port@1 {
-			reg = <1>;
-			lvds_out_panel: endpoint {
-				remote-endpoint = <&panel_in_lvds>;
+			port@1 {
+				reg = <1>;
+
+				lvds_out_panel: endpoint {
+					remote-endpoint = <&panel_in_lvds>;
+				};
 			};
 		};
 	};
@@ -465,10 +470,13 @@
 	non-removable;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
-	vmmcq-supply = <&vccio_wl>;
+	vqmmc-supply = <&vccio_wl>;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio3>;
 		interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/rk3228-evb.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/rk3228-evb.dts
@@ -46,7 +46,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy: phy@0 {
+		phy: ethernet-phy@0 {
 			compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
 			clocks = <&cru SCLK_MAC_PHY>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/rk3229-xms6.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/rk3229-xms6.dts
@@ -150,7 +150,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy: phy@0 {
+		phy: ethernet-phy@0 {
 			compatible = "ethernet-phy-id1234.d400",
 			             "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/rk322x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/rk322x.dtsi
@@ -561,7 +561,7 @@
 				  "pp1",
 				  "ppmmu1";
 		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		resets = <&cru SRST_GPU_A>;
 		status = "disabled";
 	};
@@ -1033,7 +1033,7 @@
 			};
 		};
 
-		spi-0 {
+		spi0 {
 			spi0_clk: spi0-clk {
 				rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
 			};
@@ -1051,7 +1051,7 @@
 			};
 		};
 
-		spi-1 {
+		spi1 {
 			spi1_clk: spi1-clk {
 				rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/rk3xxx.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/rk3xxx.dtsi
@@ -84,7 +84,7 @@
 		compatible = "arm,mali-400";
 		reg = <0x10090000 0x10000>;
 		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		assigned-clocks = <&cru ACLK_GPU>;
 		assigned-clock-rates = <100000000>;
 		resets = <&cru SRST_GPU>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/s3c6410-mini6410.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/s3c6410-mini6410.dts
@@ -165,6 +165,10 @@
 	};
 };
 
+&clocks {
+	clocks = <&fin_pll>;
+};
+
 &sdhci0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/s3c6410-smdk6410.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/s3c6410-smdk6410.dts
@@ -69,6 +69,10 @@
 	};
 };
 
+&clocks {
+	clocks = <&fin_pll>;
+};
+
 &sdhci0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/s5pv210-aries.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/s5pv210-aries.dtsi
@@ -454,6 +454,7 @@
 	pinctrl-names = "default";
 	cap-sd-highspeed;
 	cap-mmc-highspeed;
+	keep-power-in-suspend;
 
 	mmc-pwrseq = <&wifi_pwrseq>;
 	non-removable;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/s5pv210.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/s5pv210.dtsi
@@ -52,34 +52,26 @@
 		};
 	};
 
+	xxti: oscillator-0 {
+		compatible = "fixed-clock";
+		clock-frequency = <0>;
+		clock-output-names = "xxti";
+		#clock-cells = <0>;
+	};
+
+	xusbxti: oscillator-1 {
+		compatible = "fixed-clock";
+		clock-frequency = <0>;
+		clock-output-names = "xusbxti";
+		#clock-cells = <0>;
+	};
+
 	soc {
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges;
 
-		external-clocks {
-			compatible = "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			xxti: oscillator@0 {
-				compatible = "fixed-clock";
-				reg = <0>;
-				clock-frequency = <0>;
-				clock-output-names = "xxti";
-				#clock-cells = <0>;
-			};
-
-			xusbxti: oscillator@1 {
-				compatible = "fixed-clock";
-				reg = <1>;
-				clock-frequency = <0>;
-				clock-output-names = "xusbxti";
-				#clock-cells = <0>;
-			};
-		};
-
 		onenand: onenand@b0600000 {
 			compatible = "samsung,s5pv210-onenand";
 			reg = <0xb0600000 0x2000>,
@@ -100,19 +92,16 @@
 		};
 
 		clocks: clock-controller@e0100000 {
-			compatible = "samsung,s5pv210-clock", "simple-bus";
+			compatible = "samsung,s5pv210-clock";
 			reg = <0xe0100000 0x10000>;
 			clock-names = "xxti", "xusbxti";
 			clocks = <&xxti>, <&xusbxti>;
 			#clock-cells = <1>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
+		};
 
-			pmu_syscon: syscon@e0108000 {
-				compatible = "samsung-s5pv210-pmu", "syscon";
-				reg = <0xe0108000 0x8000>;
-			};
+		pmu_syscon: syscon@e0108000 {
+			compatible = "samsung-s5pv210-pmu", "syscon";
+			reg = <0xe0108000 0x8000>;
 		};
 
 		pinctrl0: pinctrl@e0200000 {
@@ -128,35 +117,28 @@
 			};
 		};
 
-		amba {
-			#address-cells = <1>;
-			#size-cells = <1>;
-			compatible = "simple-bus";
-			ranges;
-
-			pdma0: dma@e0900000 {
-				compatible = "arm,pl330", "arm,primecell";
-				reg = <0xe0900000 0x1000>;
-				interrupt-parent = <&vic0>;
-				interrupts = <19>;
-				clocks = <&clocks CLK_PDMA0>;
-				clock-names = "apb_pclk";
-				#dma-cells = <1>;
-				#dma-channels = <8>;
-				#dma-requests = <32>;
-			};
+		pdma0: dma@e0900000 {
+			compatible = "arm,pl330", "arm,primecell";
+			reg = <0xe0900000 0x1000>;
+			interrupt-parent = <&vic0>;
+			interrupts = <19>;
+			clocks = <&clocks CLK_PDMA0>;
+			clock-names = "apb_pclk";
+			#dma-cells = <1>;
+			#dma-channels = <8>;
+			#dma-requests = <32>;
+		};
 
-			pdma1: dma@e0a00000 {
-				compatible = "arm,pl330", "arm,primecell";
-				reg = <0xe0a00000 0x1000>;
-				interrupt-parent = <&vic0>;
-				interrupts = <20>;
-				clocks = <&clocks CLK_PDMA1>;
-				clock-names = "apb_pclk";
-				#dma-cells = <1>;
-				#dma-channels = <8>;
-				#dma-requests = <32>;
-			};
+		pdma1: dma@e0a00000 {
+			compatible = "arm,pl330", "arm,primecell";
+			reg = <0xe0a00000 0x1000>;
+			interrupt-parent = <&vic0>;
+			interrupts = <20>;
+			clocks = <&clocks CLK_PDMA1>;
+			clock-names = "apb_pclk";
+			#dma-cells = <1>;
+			#dma-channels = <8>;
+			#dma-requests = <32>;
 		};
 
 		spi0: spi@e1300000 {
@@ -229,43 +211,36 @@
 			status = "disabled";
 		};
 
-		audio-subsystem {
-			compatible = "samsung,s5pv210-audss", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-
-			clk_audss: clock-controller@eee10000 {
-				compatible = "samsung,s5pv210-audss-clock";
-				reg = <0xeee10000 0x1000>;
-				clock-names = "hclk", "xxti",
-						"fout_epll",
-						"sclk_audio0";
-				clocks = <&clocks DOUT_HCLKP>, <&xxti>,
-						<&clocks FOUT_EPLL>,
-						<&clocks SCLK_AUDIO0>;
-				#clock-cells = <1>;
-			};
+		clk_audss: clock-controller@eee10000 {
+			compatible = "samsung,s5pv210-audss-clock";
+			reg = <0xeee10000 0x1000>;
+			clock-names = "hclk", "xxti",
+				      "fout_epll",
+				      "sclk_audio0";
+			clocks = <&clocks DOUT_HCLKP>, <&xxti>,
+				 <&clocks FOUT_EPLL>,
+				 <&clocks SCLK_AUDIO0>;
+			#clock-cells = <1>;
+		};
 
-			i2s0: i2s@eee30000 {
-				compatible = "samsung,s5pv210-i2s";
-				reg = <0xeee30000 0x1000>;
-				interrupt-parent = <&vic2>;
-				interrupts = <16>;
-				dma-names = "rx", "tx", "tx-sec";
-				dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
-				clock-names = "iis",
-						"i2s_opclk0",
-						"i2s_opclk1";
-				clocks = <&clk_audss CLK_I2S>,
-						<&clk_audss CLK_I2S>,
-						<&clk_audss CLK_DOUT_AUD_BUS>;
-				samsung,idma-addr = <0xc0010000>;
-				pinctrl-names = "default";
-				pinctrl-0 = <&i2s0_bus>;
-				#sound-dai-cells = <0>;
-				status = "disabled";
-			};
+		i2s0: i2s@eee30000 {
+			compatible = "samsung,s5pv210-i2s";
+			reg = <0xeee30000 0x1000>;
+			interrupt-parent = <&vic2>;
+			interrupts = <16>;
+			dma-names = "rx", "tx", "tx-sec";
+			dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
+			clock-names = "iis",
+				      "i2s_opclk0",
+				      "i2s_opclk1";
+			clocks = <&clk_audss CLK_I2S>,
+				 <&clk_audss CLK_I2S>,
+				 <&clk_audss CLK_DOUT_AUD_BUS>;
+			samsung,idma-addr = <0xc0010000>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&i2s0_bus>;
+			#sound-dai-cells = <0>;
+			status = "disabled";
 		};
 
 		i2s1: i2s@e2100000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sama5d2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sama5d2.dtsi
@@ -648,6 +648,7 @@
 				clocks = <&pmc PMC_TYPE_PERIPHERAL 51>;
 				#address-cells = <1>;
 				#size-cells = <1>;
+				no-memory-wc;
 				ranges = <0 0xf8044000 0x1420>;
 			};
 
@@ -716,7 +717,7 @@
 
 			can0: can@f8054000 {
 				compatible = "bosch,m_can";
-				reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
+				reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <64 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -938,7 +939,7 @@
 
 			can1: can@fc050000 {
 				compatible = "bosch,m_can";
-				reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
+				reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <65 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -948,7 +949,7 @@
 				assigned-clocks = <&pmc PMC_TYPE_GCK 57>;
 				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
 				assigned-clock-rates = <40000000>;
-				bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
+				bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
 				status = "disabled";
 			};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sama5d3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sama5d3.dtsi
@@ -1188,49 +1188,49 @@
 					usart0_clk: usart0_clk {
 						#clock-cells = <0>;
 						reg = <12>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					usart1_clk: usart1_clk {
 						#clock-cells = <0>;
 						reg = <13>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					usart2_clk: usart2_clk {
 						#clock-cells = <0>;
 						reg = <14>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					usart3_clk: usart3_clk {
 						#clock-cells = <0>;
 						reg = <15>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					uart0_clk: uart0_clk {
 						#clock-cells = <0>;
 						reg = <16>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					twi0_clk: twi0_clk {
 						reg = <18>;
 						#clock-cells = <0>;
-						atmel,clk-output-range = <0 16625000>;
+						atmel,clk-output-range = <0 41500000>;
 					};
 
 					twi1_clk: twi1_clk {
 						#clock-cells = <0>;
 						reg = <19>;
-						atmel,clk-output-range = <0 16625000>;
+						atmel,clk-output-range = <0 41500000>;
 					};
 
 					twi2_clk: twi2_clk {
 						#clock-cells = <0>;
 						reg = <20>;
-						atmel,clk-output-range = <0 16625000>;
+						atmel,clk-output-range = <0 41500000>;
 					};
 
 					mci0_clk: mci0_clk {
@@ -1246,19 +1246,19 @@
 					spi0_clk: spi0_clk {
 						#clock-cells = <0>;
 						reg = <24>;
-						atmel,clk-output-range = <0 133000000>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 
 					spi1_clk: spi1_clk {
 						#clock-cells = <0>;
 						reg = <25>;
-						atmel,clk-output-range = <0 133000000>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 
 					tcb0_clk: tcb0_clk {
 						#clock-cells = <0>;
 						reg = <26>;
-						atmel,clk-output-range = <0 133000000>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 
 					pwm_clk: pwm_clk {
@@ -1269,7 +1269,7 @@
 					adc_clk: adc_clk {
 						#clock-cells = <0>;
 						reg = <29>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					dma0_clk: dma0_clk {
@@ -1300,13 +1300,13 @@
 					ssc0_clk: ssc0_clk {
 						#clock-cells = <0>;
 						reg = <38>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					ssc1_clk: ssc1_clk {
 						#clock-cells = <0>;
 						reg = <39>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					sha_clk: sha_clk {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sama5d3_can.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sama5d3_can.dtsi
@@ -36,13 +36,13 @@
 					can0_clk: can0_clk {
 						#clock-cells = <0>;
 						reg = <40>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					can1_clk: can1_clk {
 						#clock-cells = <0>;
 						reg = <41>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 				};
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sama5d3_tcb1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sama5d3_tcb1.dtsi
@@ -22,6 +22,7 @@
 					tcb1_clk: tcb1_clk {
 						#clock-cells = <0>;
 						reg = <27>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 				};
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sama5d3_uart.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sama5d3_uart.dtsi
@@ -41,13 +41,13 @@
 					uart0_clk: uart0_clk {
 						#clock-cells = <0>;
 						reg = <16>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					uart1_clk: uart1_clk {
 						#clock-cells = <0>;
 						reg = <17>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 				};
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/socfpga.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/socfpga.dtsi
@@ -710,7 +710,7 @@
 			};
 		};
 
-		L2: l2-cache@fffef000 {
+		L2: cache-controller@fffef000 {
 			compatible = "arm,pl310-cache";
 			reg = <0xfffef000 0x1000>;
 			interrupts = <0 38 0x04>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -636,7 +636,7 @@
 			reg = <0xffcfb100 0x80>;
 		};
 
-		L2: l2-cache@fffff000 {
+		L2: cache-controller@fffff000 {
 			compatible = "arm,pl310-cache";
 			reg = <0xfffff000 0x1000>;
 			interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
@@ -819,7 +819,7 @@
 		timer3: timer3@ffd00100 {
 			compatible = "snps,dw-apb-timer";
 			interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
-			reg = <0xffd01000 0x100>;
+			reg = <0xffd00100 0x100>;
 			clocks = <&l4_sys_free_clk>;
 			clock-names = "timer";
 			resets = <&rst L4SYSTIMER1_RESET>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/stihxxx-b2120.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/stihxxx-b2120.dtsi
@@ -46,7 +46,7 @@
 			/* DAC */
 			format = "i2s";
 			mclk-fs = <256>;
-			frame-inversion = <1>;
+			frame-inversion;
 			cpu {
 				sound-dai = <&sti_uni_player2>;
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/stm32f469-disco.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/stm32f469-disco.dts
@@ -76,6 +76,13 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
+	vdd_dsi: vdd-dsi {
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_dsi";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
 	soc {
 		dma-ranges = <0xc0000000 0x0 0x10000000>;
 	};
@@ -155,6 +162,7 @@
 		compatible = "orisetech,otm8009a";
 		reg = <0>; /* dsi virtual channel (0..3) */
 		reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
+		power-supply = <&vdd_dsi>;
 		status = "okay";
 
 		port {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/stm32mp157a-avenger96.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/stm32mp157a-avenger96.dts
@@ -91,6 +91,9 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		compatible = "snps,dwmac-mdio";
+		reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
+		reset-delay-us = <1000>;
+
 		phy0: ethernet-phy@7 {
 			reg = <7>;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun4i-a10.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -143,7 +143,7 @@
 			trips {
 				cpu_alert0: cpu-alert0 {
 					/* milliCelsius */
-					temperature = <850000>;
+					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
@@ -198,7 +198,7 @@
 		default-pool {
 			compatible = "shared-dma-pool";
 			size = <0x6000000>;
-			alloc-ranges = <0x4a000000 0x6000000>;
+			alloc-ranges = <0x40000000 0x10000000>;
 			reusable;
 			linux,cma-default;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun5i.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun5i.dtsi
@@ -117,7 +117,7 @@
 		default-pool {
 			compatible = "shared-dma-pool";
 			size = <0x6000000>;
-			alloc-ranges = <0x4a000000 0x6000000>;
+			alloc-ranges = <0x40000000 0x10000000>;
 			reusable;
 			linux,cma-default;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -154,7 +154,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -130,7 +130,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -132,7 +132,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun7i-a20-bananapro.dts
@@ -110,7 +110,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -151,7 +151,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015 Adam Sampson <ats@offog.org>
+ * Copyright 2015-2020 Adam Sampson <ats@offog.org>
  *
  * This file is dual-licensed: you can use it either under the terms
  * of the GPL or the X11 license, at your option. Note that this dual
@@ -115,7 +115,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun7i-a20.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -180,7 +180,7 @@
 		default-pool {
 			compatible = "shared-dma-pool";
 			size = <0x6000000>;
-			alloc-ranges = <0x4a000000 0x6000000>;
+			alloc-ranges = <0x40000000 0x10000000>;
 			reusable;
 			linux,cma-default;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
@@ -131,7 +131,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_sw>;
 	phy-handle = <&rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	allwinner,rx-delay-ps = <700>;
 	allwinner,tx-delay-ps = <700>;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
@@ -101,7 +101,7 @@
 		initial-mode = <1>; /* initialize in HUB mode */
 		disabled-ports = <1>;
 		intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
-		reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
+		reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */
 		connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
 		refclk-frequency = <19200000>;
 	};
@@ -183,7 +183,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_dldo4>;
 	phy-handle = <&rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
@@ -358,8 +358,8 @@
 };
 
 &reg_dldo3 {
-	regulator-min-microvolt = <2800000>;
-	regulator-max-microvolt = <2800000>;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
 	regulator-name = "vdd-csi";
 };
 
@@ -482,7 +482,8 @@
 };
 
 &usbphy {
-	usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
+	usb0_id_det-gpios = <&pio 7 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH11 */
+	usb0_vbus_power-supply = <&usb_power_supply>;
 	usb0_vbus-supply = <&reg_drivevbus>;
 	usb1_vbus-supply = <&reg_vmain>;
 	usb2_vbus-supply = <&reg_vmain>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -313,7 +313,7 @@
 
 		display_clocks: clock@1000000 {
 			compatible = "allwinner,sun8i-a83t-de2-clk";
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_PLL_DE>;
 			clock-names = "bus",
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
@@ -31,7 +31,7 @@
 
 		pwr_led {
 			label = "bananapi-m2-zero:red:pwr";
-			gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
+			gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */
 			default-state = "on";
 		};
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
@@ -53,11 +53,6 @@
 	};
 };
 
-&emac {
-	/* LEDs changed to active high on the plus */
-	/delete-property/ allwinner,leds-active-low;
-};
-
 &mmc1 {
 	vmmc-supply = <&reg_vcc3v3>;
 	bus-width = <4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
@@ -67,7 +67,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-h3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -80,7 +80,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <1>;
@@ -90,7 +90,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <2>;
@@ -100,7 +100,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <3>;
@@ -111,6 +111,15 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a7-pmu";
+		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	timer {
 		compatible = "arm,armv7-timer";
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
@@ -129,7 +129,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
 };
@@ -223,16 +223,16 @@
 };
 
 &reg_dc1sw {
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
 	regulator-name = "vcc-gmac-phy";
 };
 
 &reg_dcdc1 {
 	regulator-always-on;
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
-	regulator-name = "vcc-3v0";
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
 };
 
 &reg_dcdc2 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-r40.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-r40.dtsi
@@ -118,7 +118,7 @@
 		display_clocks: clock@1000000 {
 			compatible = "allwinner,sun8i-r40-de2-clk",
 				     "allwinner,sun8i-h3-de2-clk";
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_DE>;
 			clock-names = "bus",
@@ -266,6 +266,16 @@
 			#phy-cells = <1>;
 		};
 
+		ahci: sata@1c18000 {
+			compatible = "allwinner,sun8i-r40-ahci";
+			reg = <0x01c18000 0x1000>;
+			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
+			resets = <&ccu RST_BUS_SATA>;
+			reset-names = "ahci";
+			status = "disabled";
+		};
+
 		ehci1: usb@1c19000 {
 			compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
 			reg = <0x01c19000 0x100>;
@@ -557,17 +567,6 @@
 			#size-cells = <0>;
 		};
 
-		ahci: sata@1c18000 {
-			compatible = "allwinner,sun8i-r40-ahci";
-			reg = <0x01c18000 0x1000>;
-			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
-			resets = <&ccu RST_BUS_SATA>;
-			reset-names = "ahci";
-			status = "disabled";
-
-		};
-
 		gmac: ethernet@1c50000 {
 			compatible = "allwinner,sun8i-r40-gmac";
 			syscon = <&ccu>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -105,7 +105,7 @@
 
 		display_clocks: clock@1000000 {
 			compatible = "allwinner,sun8i-v3s-de2-clk";
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_DE>;
 			clock-names = "bus",
@@ -423,7 +423,7 @@
 		gic: interrupt-controller@1c81000 {
 			compatible = "arm,gic-400";
 			reg = <0x01c81000 0x1000>,
-			      <0x01c82000 0x1000>,
+			      <0x01c82000 0x2000>,
 			      <0x01c84000 0x2000>,
 			      <0x01c86000 0x2000>;
 			interrupt-controller;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
@@ -120,7 +120,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
 };
@@ -198,16 +198,16 @@
 };
 
 &reg_dc1sw {
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
 	regulator-name = "vcc-gmac-phy";
 };
 
 &reg_dcdc1 {
 	regulator-always-on;
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
-	regulator-name = "vcc-3v0";
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
 };
 
 &reg_dcdc2 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -129,7 +129,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_cldo1>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -124,7 +124,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_cldo1>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi
@@ -16,15 +16,27 @@
 		regulator-type = "voltage";
 		regulator-boot-on;
 		regulator-always-on;
-		regulator-min-microvolt = <1100000>;
-		regulator-max-microvolt = <1300000>;
+		regulator-min-microvolt = <1108475>;
+		regulator-max-microvolt = <1308475>;
 		regulator-ramp-delay = <50>; /* 4ms */
 		gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
 		gpios-states = <0x1>;
-		states = <1100000 0>, <1300000 1>;
+		states = <1108475 0>, <1308475 1>;
 	};
 };
 
 &cpu0 {
 	cpu-supply = <&reg_vdd_cpux>;
 };
+
+&cpu1 {
+	cpu-supply = <&reg_vdd_cpux>;
+};
+
+&cpu2 {
+	cpu-supply = <&reg_vdd_cpux>;
+};
+
+&cpu3 {
+	cpu-supply = <&reg_vdd_cpux>;
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
@@ -126,7 +126,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -113,7 +113,7 @@
 
 		display_clocks: clock@1000000 {
 			/* compatible is in per SoC .dtsi file */
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_DE>;
 			clock-names = "bus",
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
@@ -31,7 +31,7 @@
 			#interrupt-cells = <1>;
 			ranges;
 
-			nor_flash: flash@0,00000000 {
+			nor_flash: flash@0 {
 				compatible = "arm,vexpress-flash", "cfi-flash";
 				reg = <0 0x00000000 0x04000000>,
 				      <4 0x00000000 0x04000000>;
@@ -41,13 +41,13 @@
 				};
 			};
 
-			psram@1,00000000 {
+			psram@100000000 {
 				compatible = "arm,vexpress-psram", "mtd-ram";
 				reg = <1 0x00000000 0x02000000>;
 				bank-width = <4>;
 			};
 
-			ethernet@2,02000000 {
+			ethernet@202000000 {
 				compatible = "smsc,lan9118", "smsc,lan9115";
 				reg = <2 0x02000000 0x10000>;
 				interrupts = <15>;
@@ -59,14 +59,14 @@
 				vddvario-supply = <&v2m_fixed_3v3>;
 			};
 
-			usb@2,03000000 {
+			usb@203000000 {
 				compatible = "nxp,usb-isp1761";
 				reg = <2 0x03000000 0x20000>;
 				interrupts = <16>;
 				port1-otg;
 			};
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				compatible = "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/boot/dts/vfxxx.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm/boot/dts/vfxxx.dtsi
@@ -495,7 +495,7 @@
 			};
 
 			ocotp: ocotp@400a5000 {
-				compatible = "fsl,vf610-ocotp";
+				compatible = "fsl,vf610-ocotp", "syscon";
 				reg = <0x400a5000 0x1000>;
 				clocks = <&clks VF610_CLK_OCOTP>;
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/configs/aspeed_g5_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/configs/aspeed_g5_defconfig
@@ -139,6 +139,7 @@
 CONFIG_SERIAL_8250_EXTENDED=y
 CONFIG_SERIAL_8250_ASPEED_VUART=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DW=y
 CONFIG_SERIAL_OF_PLATFORM=y
 CONFIG_ASPEED_KCS_IPMI_BMC=y
 CONFIG_ASPEED_BT_IPMI_BMC=y
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/configs/exynos_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/configs/exynos_defconfig
@@ -38,6 +38,7 @@
 CONFIG_CRYPTO_SHA512_ARM=m
 CONFIG_CRYPTO_AES_ARM_BS=m
 CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_PARTITION_ADVANCED=y
@@ -92,6 +93,7 @@
 CONFIG_BLK_DEV_CRYPTOLOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_ATA=y
@@ -290,6 +292,7 @@
 CONFIG_COMMON_CLK_MAX77686=y
 CONFIG_COMMON_CLK_S2MPS11=y
 CONFIG_EXYNOS_IOMMU=y
+CONFIG_PM_DEVFREQ=y
 CONFIG_DEVFREQ_GOV_PERFORMANCE=y
 CONFIG_DEVFREQ_GOV_POWERSAVE=y
 CONFIG_DEVFREQ_GOV_USERSPACE=y
@@ -348,9 +351,13 @@
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_SOFTLOCKUP_DETECTOR=y
 # CONFIG_DETECT_HUNG_TASK is not set
 CONFIG_PROVE_LOCKING=y
 CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
 CONFIG_DEBUG_USER=y
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/configs/imx_v6_v7_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/configs/imx_v6_v7_defconfig
@@ -460,6 +460,7 @@
 CONFIG_FONT_8x16=y
 CONFIG_PRINTK_TIME=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
 CONFIG_PROVE_LOCKING=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/configs/omap2plus_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/configs/omap2plus_defconfig
@@ -552,5 +552,6 @@
 CONFIG_DEBUG_INFO_SPLIT=y
 CONFIG_DEBUG_INFO_DWARF4=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
 CONFIG_SCHEDSTATS=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/configs/rpc_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/configs/rpc_defconfig
@@ -32,7 +32,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/configs/s3c2410_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/configs/s3c2410_defconfig
@@ -202,7 +202,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_CONSTANTS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/crypto/aes-ce-core.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/crypto/aes-ce-core.S
@@ -386,20 +386,32 @@
 .Lctrloop4x:
 	subs		r4, r4, #4
 	bmi		.Lctr1x
-	add		r6, r6, #1
+
+	/*
+	 * NOTE: the sequence below has been carefully tweaked to avoid
+	 * a silicon erratum that exists in Cortex-A57 (#1742098) and
+	 * Cortex-A72 (#1655431) cores, where AESE/AESMC instruction pairs
+	 * may produce an incorrect result if they take their input from a
+	 * register of which a single 32-bit lane has been updated the last
+	 * time it was modified. To work around this, the lanes of registers
+	 * q0-q3 below are not manipulated individually, and the different
+	 * counter values are prepared by successive manipulations of q7.
+	 */
+	add		ip, r6, #1
 	vmov		q0, q7
+	rev		ip, ip
+	add		lr, r6, #2
+	vmov		s31, ip			@ set lane 3 of q1 via q7
+	add		ip, r6, #3
+	rev		lr, lr
 	vmov		q1, q7
-	rev		ip, r6
-	add		r6, r6, #1
+	vmov		s31, lr			@ set lane 3 of q2 via q7
+	rev		ip, ip
 	vmov		q2, q7
-	vmov		s7, ip
-	rev		ip, r6
-	add		r6, r6, #1
+	vmov		s31, ip			@ set lane 3 of q3 via q7
+	add		r6, r6, #4
 	vmov		q3, q7
-	vmov		s11, ip
-	rev		ip, r6
-	add		r6, r6, #1
-	vmov		s15, ip
+
 	vld1.8		{q4-q5}, [r1]!
 	vld1.8		{q6}, [r1]!
 	vld1.8		{q15}, [r1]!
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/crypto/nhpoly1305-neon-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/crypto/nhpoly1305-neon-glue.c
@@ -30,7 +30,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_neon_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_neon);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/assembler.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/assembler.h
@@ -18,11 +18,11 @@
 #endif
 
 #include <asm/ptrace.h>
-#include <asm/domain.h>
 #include <asm/opcodes-virt.h>
 #include <asm/asm-offsets.h>
 #include <asm/page.h>
 #include <asm/thread_info.h>
+#include <asm/uaccess-asm.h>
 
 #define IOMEM(x)	(x)
 
@@ -446,79 +446,6 @@
 	.size \name , . - \name
 	.endm
 
-	.macro	csdb
-#ifdef CONFIG_THUMB2_KERNEL
-	.inst.w	0xf3af8014
-#else
-	.inst	0xe320f014
-#endif
-	.endm
-
-	.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
-#ifndef CONFIG_CPU_USE_DOMAINS
-	adds	\tmp, \addr, #\size - 1
-	sbcscc	\tmp, \tmp, \limit
-	bcs	\bad
-#ifdef CONFIG_CPU_SPECTRE
-	movcs	\addr, #0
-	csdb
-#endif
-#endif
-	.endm
-
-	.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req
-#ifdef CONFIG_CPU_SPECTRE
-	sub	\tmp, \limit, #1
-	subs	\tmp, \tmp, \addr	@ tmp = limit - 1 - addr
-	addhs	\tmp, \tmp, #1		@ if (tmp >= 0) {
-	subshs	\tmp, \tmp, \size	@ tmp = limit - (addr + size) }
-	movlo	\addr, #0		@ if (tmp < 0) addr = NULL
-	csdb
-#endif
-	.endm
-
-	.macro	uaccess_disable, tmp, isb=1
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	/*
-	 * Whenever we re-enter userspace, the domains should always be
-	 * set appropriately.
-	 */
-	mov	\tmp, #DACR_UACCESS_DISABLE
-	mcr	p15, 0, \tmp, c3, c0, 0		@ Set domain register
-	.if	\isb
-	instr_sync
-	.endif
-#endif
-	.endm
-
-	.macro	uaccess_enable, tmp, isb=1
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	/*
-	 * Whenever we re-enter userspace, the domains should always be
-	 * set appropriately.
-	 */
-	mov	\tmp, #DACR_UACCESS_ENABLE
-	mcr	p15, 0, \tmp, c3, c0, 0
-	.if	\isb
-	instr_sync
-	.endif
-#endif
-	.endm
-
-	.macro	uaccess_save, tmp
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	mrc	p15, 0, \tmp, c3, c0, 0
-	str	\tmp, [sp, #SVC_DACR]
-#endif
-	.endm
-
-	.macro	uaccess_restore
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	ldr	r0, [sp, #SVC_DACR]
-	mcr	p15, 0, r0, c3, c0, 0
-#endif
-	.endm
-
 	.irp	c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
 	.macro	ret\c, reg
 #if __LINUX_ARM_ARCH__ < 6
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/clocksource.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/clocksource.h
@@ -1,8 +1,17 @@
 #ifndef _ASM_CLOCKSOURCE_H
 #define _ASM_CLOCKSOURCE_H
 
+enum vdso_arch_clockmode {
+	/* vdso clocksource not usable */
+	VDSO_CLOCKMODE_NONE,
+	/* vdso clocksource usable */
+	VDSO_CLOCKMODE_ARCHTIMER,
+	VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT = VDSO_CLOCKMODE_ARCHTIMER,
+};
+
 struct arch_clocksource_data {
-	bool vdso_direct;	/* Usable for direct VDSO access? */
+	/* Usable for direct VDSO access? */
+	enum vdso_arch_clockmode clock_mode;
 };
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/futex.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/futex.h
@@ -164,8 +164,13 @@
 	preempt_enable();
 #endif
 
-	if (!ret)
-		*oval = oldval;
+	/*
+	 * Store unconditionally. If ret != 0 the extra store is the least
+	 * of the worries but GCC cannot figure out that __futex_atomic_op()
+	 * is either setting ret to -EFAULT or storing the old value in
+	 * oldval which results in a uninitialized warning at the call site.
+	 */
+	*oval = oldval;
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/kexec-internal.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/kexec-internal.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ARM_KEXEC_INTERNAL_H
+#define _ARM_KEXEC_INTERNAL_H
+
+struct kexec_relocate_data {
+	unsigned long kexec_start_address;
+	unsigned long kexec_indirection_page;
+	unsigned long kexec_mach_type;
+	unsigned long kexec_r2;
+};
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/kprobes.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/kprobes.h
@@ -44,20 +44,20 @@
 			     unsigned long val, void *data);
 
 /* optinsn template addresses */
-extern __visible kprobe_opcode_t optprobe_template_entry;
-extern __visible kprobe_opcode_t optprobe_template_val;
-extern __visible kprobe_opcode_t optprobe_template_call;
-extern __visible kprobe_opcode_t optprobe_template_end;
-extern __visible kprobe_opcode_t optprobe_template_sub_sp;
-extern __visible kprobe_opcode_t optprobe_template_add_sp;
-extern __visible kprobe_opcode_t optprobe_template_restore_begin;
-extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn;
-extern __visible kprobe_opcode_t optprobe_template_restore_end;
+extern __visible kprobe_opcode_t optprobe_template_entry[];
+extern __visible kprobe_opcode_t optprobe_template_val[];
+extern __visible kprobe_opcode_t optprobe_template_call[];
+extern __visible kprobe_opcode_t optprobe_template_end[];
+extern __visible kprobe_opcode_t optprobe_template_sub_sp[];
+extern __visible kprobe_opcode_t optprobe_template_add_sp[];
+extern __visible kprobe_opcode_t optprobe_template_restore_begin[];
+extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn[];
+extern __visible kprobe_opcode_t optprobe_template_restore_end[];
 
 #define MAX_OPTIMIZED_LENGTH	4
 #define MAX_OPTINSN_SIZE				\
-	((unsigned long)&optprobe_template_end -	\
-	 (unsigned long)&optprobe_template_entry)
+	((unsigned long)optprobe_template_end -	\
+	 (unsigned long)optprobe_template_entry)
 #define RELATIVEJUMP_SIZE	4
 
 struct arch_optimized_insn {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/kvm_asm.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/kvm_asm.h
@@ -56,7 +56,7 @@
 extern void __kvm_flush_vm_context(void);
 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
-extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
+extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
 
 extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/kvm_emulate.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/kvm_emulate.h
@@ -14,13 +14,25 @@
 #include <asm/cputype.h>
 
 /* arm64 compatibility macros */
+#define PSR_AA32_MODE_FIQ	FIQ_MODE
+#define PSR_AA32_MODE_SVC	SVC_MODE
 #define PSR_AA32_MODE_ABT	ABT_MODE
 #define PSR_AA32_MODE_UND	UND_MODE
 #define PSR_AA32_T_BIT		PSR_T_BIT
+#define PSR_AA32_F_BIT		PSR_F_BIT
 #define PSR_AA32_I_BIT		PSR_I_BIT
 #define PSR_AA32_A_BIT		PSR_A_BIT
 #define PSR_AA32_E_BIT		PSR_E_BIT
 #define PSR_AA32_IT_MASK	PSR_IT_MASK
+#define PSR_AA32_GE_MASK	0x000f0000
+#define PSR_AA32_DIT_BIT	0x00200000
+#define PSR_AA32_PAN_BIT	0x00400000
+#define PSR_AA32_SSBS_BIT	0x00800000
+#define PSR_AA32_Q_BIT		PSR_Q_BIT
+#define PSR_AA32_V_BIT		PSR_V_BIT
+#define PSR_AA32_C_BIT		PSR_C_BIT
+#define PSR_AA32_Z_BIT		PSR_Z_BIT
+#define PSR_AA32_N_BIT		PSR_N_BIT
 
 unsigned long *vcpu_reg(struct kvm_vcpu *vcpu, u8 reg_num);
 
@@ -41,6 +53,11 @@
 	*__vcpu_spsr(vcpu) = v;
 }
 
+static inline unsigned long host_spsr_to_spsr32(unsigned long spsr)
+{
+	return spsr;
+}
+
 static inline unsigned long vcpu_get_reg(struct kvm_vcpu *vcpu,
 					 u8 reg_num)
 {
@@ -177,12 +194,17 @@
 	return kvm_vcpu_get_hsr(vcpu) & HSR_SSE;
 }
 
+static inline bool kvm_vcpu_dabt_issf(const struct kvm_vcpu *vcpu)
+{
+	return false;
+}
+
 static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu)
 {
 	return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT;
 }
 
-static inline bool kvm_vcpu_dabt_iss1tw(struct kvm_vcpu *vcpu)
+static inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & HSR_DABT_S1PTW;
 }
@@ -214,16 +236,21 @@
 	return kvm_vcpu_get_hsr(vcpu) & HSR_IL;
 }
 
-static inline u8 kvm_vcpu_trap_get_class(struct kvm_vcpu *vcpu)
+static inline u8 kvm_vcpu_trap_get_class(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) >> HSR_EC_SHIFT;
 }
 
-static inline bool kvm_vcpu_trap_is_iabt(struct kvm_vcpu *vcpu)
+static inline bool kvm_vcpu_trap_is_iabt(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_trap_get_class(vcpu) == HSR_EC_IABT;
 }
 
+static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
+{
+	return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
+}
+
 static inline u8 kvm_vcpu_trap_get_fault(struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & HSR_FSC;
@@ -341,6 +368,7 @@
 	}
 }
 
-static inline void vcpu_ptrauth_setup_lazy(struct kvm_vcpu *vcpu) {}
+static inline bool vcpu_has_ptrauth(struct kvm_vcpu *vcpu) { return false; }
+static inline void vcpu_ptrauth_disable(struct kvm_vcpu *vcpu) { }
 
 #endif /* __ARM_KVM_EMULATE_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/kvm_host.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/kvm_host.h
@@ -266,7 +266,7 @@
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
-			unsigned long start, unsigned long end);
+			unsigned long start, unsigned long end, unsigned flags);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 
 unsigned long kvm_arm_num_regs(struct kvm_vcpu *vcpu);
@@ -421,4 +421,6 @@
 	return true;
 }
 
+#define kvm_arm_vcpu_loaded(vcpu)	(false)
+
 #endif /* __ARM_KVM_HOST_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/kvm_mmio.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/kvm_mmio.h
@@ -14,6 +14,8 @@
 struct kvm_decode {
 	unsigned long rt;
 	bool sign_extend;
+	/* Not used on 32-bit arm */
+	bool sixty_four;
 };
 
 void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/percpu.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/percpu.h
@@ -5,6 +5,8 @@
 #ifndef _ASM_ARM_PERCPU_H_
 #define _ASM_ARM_PERCPU_H_
 
+#include <asm/thread_info.h>
+
 /*
  * Same as asm-generic/percpu.h, except that we store the per cpu offset
  * in the TPIDRPRW. TPIDRPRW only exists on V6K and V7
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/pgtable-2level.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/pgtable-2level.h
@@ -75,6 +75,8 @@
 #define PTE_HWTABLE_OFF		(PTE_HWTABLE_PTRS * sizeof(pte_t))
 #define PTE_HWTABLE_SIZE	(PTRS_PER_PTE * sizeof(u32))
 
+#define MAX_POSSIBLE_PHYSMEM_BITS	32
+
 /*
  * PMD_SHIFT determines the size of the area a second-level page table can map
  * PGDIR_SHIFT determines what a third-level page table entry can map
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/pgtable-3level.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/pgtable-3level.h
@@ -25,6 +25,8 @@
 #define PTE_HWTABLE_OFF		(0)
 #define PTE_HWTABLE_SIZE	(PTRS_PER_PTE * sizeof(u64))
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 40
+
 /*
  * PGDIR_SHIFT determines the size a top-level page table entry can map.
  */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/include/asm/uaccess-asm.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/include/asm/uaccess-asm.h
@@ -0,0 +1,117 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_UACCESS_ASM_H__
+#define __ASM_UACCESS_ASM_H__
+
+#include <asm/asm-offsets.h>
+#include <asm/domain.h>
+#include <asm/memory.h>
+#include <asm/thread_info.h>
+
+	.macro	csdb
+#ifdef CONFIG_THUMB2_KERNEL
+	.inst.w	0xf3af8014
+#else
+	.inst	0xe320f014
+#endif
+	.endm
+
+	.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
+#ifndef CONFIG_CPU_USE_DOMAINS
+	adds	\tmp, \addr, #\size - 1
+	sbcscc	\tmp, \tmp, \limit
+	bcs	\bad
+#ifdef CONFIG_CPU_SPECTRE
+	movcs	\addr, #0
+	csdb
+#endif
+#endif
+	.endm
+
+	.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req
+#ifdef CONFIG_CPU_SPECTRE
+	sub	\tmp, \limit, #1
+	subs	\tmp, \tmp, \addr	@ tmp = limit - 1 - addr
+	addhs	\tmp, \tmp, #1		@ if (tmp >= 0) {
+	subshs	\tmp, \tmp, \size	@ tmp = limit - (addr + size) }
+	movlo	\addr, #0		@ if (tmp < 0) addr = NULL
+	csdb
+#endif
+	.endm
+
+	.macro	uaccess_disable, tmp, isb=1
+#ifdef CONFIG_CPU_SW_DOMAIN_PAN
+	/*
+	 * Whenever we re-enter userspace, the domains should always be
+	 * set appropriately.
+	 */
+	mov	\tmp, #DACR_UACCESS_DISABLE
+	mcr	p15, 0, \tmp, c3, c0, 0		@ Set domain register
+	.if	\isb
+	instr_sync
+	.endif
+#endif
+	.endm
+
+	.macro	uaccess_enable, tmp, isb=1
+#ifdef CONFIG_CPU_SW_DOMAIN_PAN
+	/*
+	 * Whenever we re-enter userspace, the domains should always be
+	 * set appropriately.
+	 */
+	mov	\tmp, #DACR_UACCESS_ENABLE
+	mcr	p15, 0, \tmp, c3, c0, 0
+	.if	\isb
+	instr_sync
+	.endif
+#endif
+	.endm
+
+#if defined(CONFIG_CPU_SW_DOMAIN_PAN) || defined(CONFIG_CPU_USE_DOMAINS)
+#define DACR(x...)	x
+#else
+#define DACR(x...)
+#endif
+
+	/*
+	 * Save the address limit on entry to a privileged exception.
+	 *
+	 * If we are using the DACR for kernel access by the user accessors
+	 * (CONFIG_CPU_USE_DOMAINS=y), always reset the DACR kernel domain
+	 * back to client mode, whether or not \disable is set.
+	 *
+	 * If we are using SW PAN, set the DACR user domain to no access
+	 * if \disable is set.
+	 */
+	.macro	uaccess_entry, tsk, tmp0, tmp1, tmp2, disable
+	ldr	\tmp1, [\tsk, #TI_ADDR_LIMIT]
+	mov	\tmp2, #TASK_SIZE
+	str	\tmp2, [\tsk, #TI_ADDR_LIMIT]
+ DACR(	mrc	p15, 0, \tmp0, c3, c0, 0)
+ DACR(	str	\tmp0, [sp, #SVC_DACR])
+	str	\tmp1, [sp, #SVC_ADDR_LIMIT]
+	.if \disable && IS_ENABLED(CONFIG_CPU_SW_DOMAIN_PAN)
+	/* kernel=client, user=no access */
+	mov	\tmp2, #DACR_UACCESS_DISABLE
+	mcr	p15, 0, \tmp2, c3, c0, 0
+	instr_sync
+	.elseif IS_ENABLED(CONFIG_CPU_USE_DOMAINS)
+	/* kernel=client */
+	bic	\tmp2, \tmp0, #domain_mask(DOMAIN_KERNEL)
+	orr	\tmp2, \tmp2, #domain_val(DOMAIN_KERNEL, DOMAIN_CLIENT)
+	mcr	p15, 0, \tmp2, c3, c0, 0
+	instr_sync
+	.endif
+	.endm
+
+	/* Restore the user access state previously saved by uaccess_entry */
+	.macro	uaccess_exit, tsk, tmp0, tmp1
+	ldr	\tmp1, [sp, #SVC_ADDR_LIMIT]
+ DACR(	ldr	\tmp0, [sp, #SVC_DACR])
+	str	\tmp1, [\tsk, #TI_ADDR_LIMIT]
+ DACR(	mcr	p15, 0, \tmp0, c3, c0, 0)
+	.endm
+
+#undef DACR
+
+#endif /* __ASM_UACCESS_ASM_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/asm-offsets.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/asm-offsets.c
@@ -15,6 +15,7 @@
 #include <linux/kvm_host.h>
 #endif
 #include <asm/cacheflush.h>
+#include <asm/kexec-internal.h>
 #include <asm/glue-df.h>
 #include <asm/glue-pf.h>
 #include <asm/mach/arch.h>
@@ -190,5 +191,9 @@
   DEFINE(MPU_RGN_PRBAR,	offsetof(struct mpu_rgn, prbar));
   DEFINE(MPU_RGN_PRLAR,	offsetof(struct mpu_rgn, prlar));
 #endif
+  DEFINE(KEXEC_START_ADDR,	offsetof(struct kexec_relocate_data, kexec_start_address));
+  DEFINE(KEXEC_INDIR_PAGE,	offsetof(struct kexec_relocate_data, kexec_indirection_page));
+  DEFINE(KEXEC_MACH_TYPE,	offsetof(struct kexec_relocate_data, kexec_mach_type));
+  DEFINE(KEXEC_R2,		offsetof(struct kexec_relocate_data, kexec_r2));
   return 0; 
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/entry-armv.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/entry-armv.S
@@ -27,6 +27,7 @@
 #include <asm/unistd.h>
 #include <asm/tls.h>
 #include <asm/system_info.h>
+#include <asm/uaccess-asm.h>
 
 #include "entry-header.S"
 #include <asm/entry-macro-multi.S>
@@ -179,15 +180,7 @@
 	stmia	r7, {r2 - r6}
 
 	get_thread_info tsk
-	ldr	r0, [tsk, #TI_ADDR_LIMIT]
-	mov	r1, #TASK_SIZE
-	str	r1, [tsk, #TI_ADDR_LIMIT]
-	str	r0, [sp, #SVC_ADDR_LIMIT]
-
-	uaccess_save r0
-	.if \uaccess
-	uaccess_disable r0
-	.endif
+	uaccess_entry tsk, r0, r1, r2, \uaccess
 
 	.if \trace
 #ifdef CONFIG_TRACE_IRQFLAGS
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/entry-header.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/entry-header.S
@@ -6,6 +6,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/errno.h>
 #include <asm/thread_info.h>
+#include <asm/uaccess-asm.h>
 #include <asm/v7m.h>
 
 @ Bad Abort numbers
@@ -217,9 +218,7 @@
 	blne	trace_hardirqs_off
 #endif
 	.endif
-	ldr	r1, [sp, #SVC_ADDR_LIMIT]
-	uaccess_restore
-	str	r1, [tsk, #TI_ADDR_LIMIT]
+	uaccess_exit tsk, r0, r1
 
 #ifndef CONFIG_THUMB2_KERNEL
 	@ ARM mode SVC restore
@@ -263,9 +262,7 @@
 	@ on the stack remains correct).
 	@
 	.macro  svc_exit_via_fiq
-	ldr	r1, [sp, #SVC_ADDR_LIMIT]
-	uaccess_restore
-	str	r1, [tsk, #TI_ADDR_LIMIT]
+	uaccess_exit tsk, r0, r1
 #ifndef CONFIG_THUMB2_KERNEL
 	@ ARM mode restore
 	mov	r0, sp
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/head.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/head.S
@@ -672,11 +672,7 @@
 	bcc	1b
 	bx	lr
 #else
-#ifdef CONFIG_CPU_ENDIAN_BE8
-	moveq	r0, #0x00004000	@ set bit 22, mov to mvn instruction
-#else
 	moveq	r0, #0x400000	@ set bit 22, mov to mvn instruction
-#endif
 	b	2f
 1:	ldr	ip, [r7, r3]
 #ifdef CONFIG_CPU_ENDIAN_BE8
@@ -685,7 +681,7 @@
 	tst	ip, #0x000f0000	@ check the rotation field
 	orrne	ip, ip, r6, lsl #24 @ mask in offset bits 31-24
 	biceq	ip, ip, #0x00004000 @ clear bit 22
-	orreq	ip, ip, r0      @ mask in offset bits 7-0
+	orreq	ip, ip, r0, ror #8  @ mask in offset bits 7-0
 #else
 	bic	ip, ip, #0x000000ff
 	tst	ip, #0xf00	@ check the rotation field
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/hw_breakpoint.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/hw_breakpoint.c
@@ -680,26 +680,68 @@
 	arch_install_hw_breakpoint(bp);
 }
 
+/*
+ * Arm32 hardware does not always report a watchpoint hit address that matches
+ * one of the watchpoints set. It can also report an address "near" the
+ * watchpoint if a single instruction access both watched and unwatched
+ * addresses. There is no straight-forward way, short of disassembling the
+ * offending instruction, to map that address back to the watchpoint. This
+ * function computes the distance of the memory access from the watchpoint as a
+ * heuristic for the likelyhood that a given access triggered the watchpoint.
+ *
+ * See this same function in the arm64 platform code, which has the same
+ * problem.
+ *
+ * The function returns the distance of the address from the bytes watched by
+ * the watchpoint. In case of an exact match, it returns 0.
+ */
+static u32 get_distance_from_watchpoint(unsigned long addr, u32 val,
+					struct arch_hw_breakpoint_ctrl *ctrl)
+{
+	u32 wp_low, wp_high;
+	u32 lens, lene;
+
+	lens = __ffs(ctrl->len);
+	lene = __fls(ctrl->len);
+
+	wp_low = val + lens;
+	wp_high = val + lene;
+	if (addr < wp_low)
+		return wp_low - addr;
+	else if (addr > wp_high)
+		return addr - wp_high;
+	else
+		return 0;
+}
+
+static int watchpoint_fault_on_uaccess(struct pt_regs *regs,
+				       struct arch_hw_breakpoint *info)
+{
+	return !user_mode(regs) && info->ctrl.privilege == ARM_BREAKPOINT_USER;
+}
+
 static void watchpoint_handler(unsigned long addr, unsigned int fsr,
 			       struct pt_regs *regs)
 {
-	int i, access;
-	u32 val, ctrl_reg, alignment_mask;
+	int i, access, closest_match = 0;
+	u32 min_dist = -1, dist;
+	u32 val, ctrl_reg;
 	struct perf_event *wp, **slots;
 	struct arch_hw_breakpoint *info;
 	struct arch_hw_breakpoint_ctrl ctrl;
 
 	slots = this_cpu_ptr(wp_on_reg);
 
+	/*
+	 * Find all watchpoints that match the reported address. If no exact
+	 * match is found. Attribute the hit to the closest watchpoint.
+	 */
+	rcu_read_lock();
 	for (i = 0; i < core_num_wrps; ++i) {
-		rcu_read_lock();
-
 		wp = slots[i];
-
 		if (wp == NULL)
-			goto unlock;
+			continue;
 
-		info = counter_arch_bp(wp);
 		/*
 		 * The DFAR is an unknown value on debug architectures prior
 		 * to 7.1. Since we only allow a single watchpoint on these
@@ -708,50 +750,69 @@
 		 */
 		if (debug_arch < ARM_DEBUG_ARCH_V7_1) {
 			BUG_ON(i > 0);
+			info = counter_arch_bp(wp);
 			info->trigger = wp->attr.bp_addr;
 		} else {
-			if (info->ctrl.len == ARM_BREAKPOINT_LEN_8)
-				alignment_mask = 0x7;
-			else
-				alignment_mask = 0x3;
-
-			/* Check if the watchpoint value matches. */
-			val = read_wb_reg(ARM_BASE_WVR + i);
-			if (val != (addr & ~alignment_mask))
-				goto unlock;
-
-			/* Possible match, check the byte address select. */
-			ctrl_reg = read_wb_reg(ARM_BASE_WCR + i);
-			decode_ctrl_reg(ctrl_reg, &ctrl);
-			if (!((1 << (addr & alignment_mask)) & ctrl.len))
-				goto unlock;
-
 			/* Check that the access type matches. */
 			if (debug_exception_updates_fsr()) {
 				access = (fsr & ARM_FSR_ACCESS_MASK) ?
 					  HW_BREAKPOINT_W : HW_BREAKPOINT_R;
 				if (!(access & hw_breakpoint_type(wp)))
-					goto unlock;
+					continue;
 			}
 
+			val = read_wb_reg(ARM_BASE_WVR + i);
+			ctrl_reg = read_wb_reg(ARM_BASE_WCR + i);
+			decode_ctrl_reg(ctrl_reg, &ctrl);
+			dist = get_distance_from_watchpoint(addr, val, &ctrl);
+			if (dist < min_dist) {
+				min_dist = dist;
+				closest_match = i;
+			}
+			/* Is this an exact match? */
+			if (dist != 0)
+				continue;
+
 			/* We have a winner. */
+			info = counter_arch_bp(wp);
 			info->trigger = addr;
 		}
 
 		pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
+
+		/*
+		 * If we triggered a user watchpoint from a uaccess routine,
+		 * then handle the stepping ourselves since userspace really
+		 * can't help us with this.
+		 */
+		if (watchpoint_fault_on_uaccess(regs, info))
+			goto step;
+
 		perf_bp_event(wp, regs);
 
 		/*
-		 * If no overflow handler is present, insert a temporary
-		 * mismatch breakpoint so we can single-step over the
-		 * watchpoint trigger.
+		 * Defer stepping to the overflow handler if one is installed.
+		 * Otherwise, insert a temporary mismatch breakpoint so that
+		 * we can single-step over the watchpoint trigger.
 		 */
+		if (!is_default_overflow_handler(wp))
+			continue;
+step:
+		enable_single_step(wp, instruction_pointer(regs));
+	}
+
+	if (min_dist > 0 && min_dist != -1) {
+		/* No exact match found. */
+		wp = slots[closest_match];
+		info = counter_arch_bp(wp);
+		info->trigger = addr;
+		pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
+		perf_bp_event(wp, regs);
 		if (is_default_overflow_handler(wp))
 			enable_single_step(wp, instruction_pointer(regs));
-
-unlock:
-		rcu_read_unlock();
 	}
+
+	rcu_read_unlock();
 }
 
 static void watchpoint_single_step_handler(unsigned long pc)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/hyp-stub.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/hyp-stub.S
@@ -146,10 +146,9 @@
 #if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
 	@ make CNTP_* and CNTPCT accessible from PL1
 	mrc	p15, 0, r7, c0, c1, 1	@ ID_PFR1
-	lsr	r7, #16
-	and	r7, #0xf
-	cmp	r7, #1
-	bne	1f
+	ubfx	r7, r7, #16, #4
+	teq	r7, #0
+	beq	1f
 	mrc	p15, 4, r7, c14, c1, 0	@ CNTHCTL
 	orr	r7, r7, #3		@ PL1PCEN | PL1PCTEN
 	mcr	p15, 4, r7, c14, c1, 0	@ CNTHCTL
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/machine_kexec.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/machine_kexec.c
@@ -15,6 +15,7 @@
 #include <asm/pgalloc.h>
 #include <asm/mmu_context.h>
 #include <asm/cacheflush.h>
+#include <asm/kexec-internal.h>
 #include <asm/fncpy.h>
 #include <asm/mach-types.h>
 #include <asm/smp_plat.h>
@@ -24,11 +25,6 @@
 extern void relocate_new_kernel(void);
 extern const unsigned int relocate_new_kernel_size;
 
-extern unsigned long kexec_start_address;
-extern unsigned long kexec_indirection_page;
-extern unsigned long kexec_mach_type;
-extern unsigned long kexec_boot_atags;
-
 static atomic_t waiting_for_crash_ipi;
 
 /*
@@ -161,6 +157,7 @@
 void machine_kexec(struct kimage *image)
 {
 	unsigned long page_list, reboot_entry_phys;
+	struct kexec_relocate_data *data;
 	void (*reboot_entry)(void);
 	void *reboot_code_buffer;
 
@@ -176,18 +173,17 @@
 
 	reboot_code_buffer = page_address(image->control_code_page);
 
-	/* Prepare parameters for reboot_code_buffer*/
-	set_kernel_text_rw();
-	kexec_start_address = image->start;
-	kexec_indirection_page = page_list;
-	kexec_mach_type = machine_arch_type;
-	kexec_boot_atags = image->arch.kernel_r2;
-
 	/* copy our kernel relocation code to the control code page */
 	reboot_entry = fncpy(reboot_code_buffer,
 			     &relocate_new_kernel,
 			     relocate_new_kernel_size);
 
+	data = reboot_code_buffer + relocate_new_kernel_size;
+	data->kexec_start_address = image->start;
+	data->kexec_indirection_page = page_list;
+	data->kexec_mach_type = machine_arch_type;
+	data->kexec_r2 = image->arch.kernel_r2;
+
 	/* get the identity mapping physical address for the reboot code */
 	reboot_entry_phys = virt_to_idmap(reboot_entry);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/process.c
@@ -224,8 +224,8 @@
 asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
 
 int
-copy_thread(unsigned long clone_flags, unsigned long stack_start,
-	    unsigned long stk_sz, struct task_struct *p)
+copy_thread_tls(unsigned long clone_flags, unsigned long stack_start,
+	    unsigned long stk_sz, struct task_struct *p, unsigned long tls)
 {
 	struct thread_info *thread = task_thread_info(p);
 	struct pt_regs *childregs = task_pt_regs(p);
@@ -259,7 +259,7 @@
 	clear_ptrace_hw_breakpoint(p);
 
 	if (clone_flags & CLONE_SETTLS)
-		thread->tp_value[0] = childregs->ARM_r3;
+		thread->tp_value[0] = tls;
 	thread->tp_value[1] = get_tpuser();
 
 	thread_notify(THREAD_NOTIFY_COPY, thread);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/ptrace.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/ptrace.c
@@ -219,8 +219,8 @@
 };
 
 static struct undef_hook thumb_break_hook = {
-	.instr_mask	= 0xffff,
-	.instr_val	= 0xde01,
+	.instr_mask	= 0xffffffff,
+	.instr_val	= 0x0000de01,
 	.cpsr_mask	= PSR_T_BIT,
 	.cpsr_val	= PSR_T_BIT,
 	.fn		= break_trap,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/relocate_kernel.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/relocate_kernel.S
@@ -5,14 +5,16 @@
 
 #include <linux/linkage.h>
 #include <asm/assembler.h>
+#include <asm/asm-offsets.h>
 #include <asm/kexec.h>
 
 	.align	3	/* not needed for this code, but keeps fncpy() happy */
 
 ENTRY(relocate_new_kernel)
 
-	ldr	r0,kexec_indirection_page
-	ldr	r1,kexec_start_address
+	adr	r7, relocate_new_kernel_end
+	ldr	r0, [r7, #KEXEC_INDIR_PAGE]
+	ldr	r1, [r7, #KEXEC_START_ADDR]
 
 	/*
 	 * If there is no indirection page (we are doing crashdumps)
@@ -57,34 +59,16 @@
 
 2:
 	/* Jump to relocated kernel */
-	mov lr,r1
-	mov r0,#0
-	ldr r1,kexec_mach_type
-	ldr r2,kexec_boot_atags
- ARM(	ret lr	)
- THUMB(	bx lr		)
-
-	.align
-
-	.globl kexec_start_address
-kexec_start_address:
-	.long	0x0
-
-	.globl kexec_indirection_page
-kexec_indirection_page:
-	.long	0x0
-
-	.globl kexec_mach_type
-kexec_mach_type:
-	.long	0x0
-
-	/* phy addr of the atags for the new kernel */
-	.globl kexec_boot_atags
-kexec_boot_atags:
-	.long	0x0
+	mov	lr, r1
+	mov	r0, #0
+	ldr	r1, [r7, #KEXEC_MACH_TYPE]
+	ldr	r2, [r7, #KEXEC_R2]
+ ARM(	ret	lr	)
+ THUMB(	bx	lr	)
 
 ENDPROC(relocate_new_kernel)
 
+	.align	3
 relocate_new_kernel_end:
 
 	.globl relocate_new_kernel_size
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/signal.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/signal.c
@@ -694,18 +694,20 @@
 
 	addr = page_address(page);
 
+	/* Poison the entire page */
+	memset32(addr, __opcode_to_mem_arm(0xe7fddef1),
+		 PAGE_SIZE / sizeof(u32));
+
 	/* Give the signal return code some randomness */
 	offset = 0x200 + (get_random_int() & 0x7fc);
 	signal_return_offset = offset;
 
-	/*
-	 * Copy signal return handlers into the vector page, and
-	 * set sigreturn to be a pointer to these.
-	 */
+	/* Copy signal return handlers into the page */
 	memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
 
-	ptr = (unsigned long)addr + offset;
-	flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
+	/* Flush out all instructions in this page */
+	ptr = (unsigned long)addr;
+	flush_icache_range(ptr, ptr + PAGE_SIZE);
 
 	return page;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/smp.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/smp.c
@@ -240,6 +240,10 @@
 	if (ret)
 		return ret;
 
+#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY
+	remove_cpu_topology(cpu);
+#endif
+
 	/*
 	 * Take this CPU offline.  Once we clear this, we can't return,
 	 * and we must not schedule until we're ready to give up the cpu.
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/stacktrace.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/stacktrace.c
@@ -22,6 +22,19 @@
  * A simple function epilogue looks like this:
  *	ldm	sp, {fp, sp, pc}
  *
+ * When compiled with clang, pc and sp are not pushed. A simple function
+ * prologue looks like this when built with clang:
+ *
+ *	stmdb	{..., fp, lr}
+ *	add	fp, sp, #x
+ *	sub	sp, sp, #y
+ *
+ * A simple function epilogue looks like this when built with clang:
+ *
+ *	sub	sp, fp, #x
+ *	ldm	{..., fp, pc}
+ *
+ *
  * Note that with framepointer enabled, even the leaf functions have the same
  * prologue and epilogue, therefore we can ignore the LR value in this case.
  */
@@ -34,6 +47,16 @@
 	low = frame->sp;
 	high = ALIGN(low, THREAD_SIZE);
 
+#ifdef CONFIG_CC_IS_CLANG
+	/* check current frame pointer is within bounds */
+	if (fp < low + 4 || fp > high - 4)
+		return -EINVAL;
+
+	frame->sp = frame->fp;
+	frame->fp = *(unsigned long *)(fp);
+	frame->pc = frame->lr;
+	frame->lr = *(unsigned long *)(fp + 4);
+#else
 	/* check current frame pointer is within bounds */
 	if (fp < low + 12 || fp > high - 4)
 		return -EINVAL;
@@ -42,6 +65,7 @@
 	frame->fp = *(unsigned long *)(fp - 12);
 	frame->sp = *(unsigned long *)(fp - 8);
 	frame->pc = *(unsigned long *)(fp - 4);
+#endif
 
 	return 0;
 }
@@ -92,6 +116,8 @@
 		return 0;
 
 	regs = (struct pt_regs *)frame->sp;
+	if ((unsigned long)&regs[1] > ALIGN(frame->sp, THREAD_SIZE))
+		return 0;
 
 	trace->entries[trace->nr_entries++] = regs->ARM_pc;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/topology.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/topology.c
@@ -196,9 +196,8 @@
 	struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
 	unsigned int mpidr;
 
-	/* If the cpu topology has been already set, just return */
-	if (cpuid_topo->core_id != -1)
-		return;
+	if (cpuid_topo->package_id != -1)
+		goto topology_populated;
 
 	mpidr = read_cpuid_mpidr();
 
@@ -231,14 +230,15 @@
 		cpuid_topo->package_id = -1;
 	}
 
-	update_siblings_masks(cpuid);
-
 	update_cpu_capacity(cpuid);
 
 	pr_info("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n",
 		cpuid, cpu_topology[cpuid].thread_id,
 		cpu_topology[cpuid].core_id,
 		cpu_topology[cpuid].package_id, mpidr);
+
+topology_populated:
+	update_siblings_masks(cpuid);
 }
 
 static inline int cpu_corepower_flags(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/traps.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/traps.c
@@ -64,14 +64,16 @@
 
 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
 {
+	unsigned long end = frame + 4 + sizeof(struct pt_regs);
+
 #ifdef CONFIG_KALLSYMS
 	printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
 #else
 	printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
 #endif
 
-	if (in_entry_text(from))
-		dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs));
+	if (in_entry_text(from) && end <= ALIGN(frame, THREAD_SIZE))
+		dump_mem("", "Exception stack", frame + 4, end);
 }
 
 void dump_backtrace_stm(u32 *stack, u32 instruction)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kernel/vdso.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kernel/vdso.c
@@ -93,6 +93,8 @@
 	 */
 	np = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
 	if (!np)
+		np = of_find_compatible_node(NULL, NULL, "arm,armv8-timer");
+	if (!np)
 		goto out_put;
 
 	if (of_property_read_bool(np, "arm,cpu-registers-not-fw-configured"))
@@ -279,7 +281,7 @@
 	if (!IS_ENABLED(CONFIG_ARM_ARCH_TIMER))
 		return false;
 
-	if (!tk->tkr_mono.clock->archdata.vdso_direct)
+	if (tk->tkr_mono.clock->archdata.clock_mode != VDSO_CLOCKMODE_ARCHTIMER)
 		return false;
 
 	return true;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/kvm/hyp/tlb.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/kvm/hyp/tlb.c
@@ -45,7 +45,7 @@
 	__kvm_tlb_flush_vmid(kvm);
 }
 
-void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
+void __hyp_text __kvm_flush_cpu_context(struct kvm_vcpu *vcpu)
 {
 	struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
 
@@ -54,6 +54,7 @@
 	isb();
 
 	write_sysreg(0, TLBIALL);
+	write_sysreg(0, ICIALLU);
 	dsb(nsh);
 	isb();
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/lib/copy_from_user.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/lib/copy_from_user.S
@@ -118,7 +118,7 @@
 
 ENDPROC(arm_copy_from_user)
 
-	.pushsection .fixup,"ax"
+	.pushsection .text.fixup,"ax"
 	.align 0
 	copy_abort_preamble
 	ldmfd	sp!, {r1, r2, r3}
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-at91/pm.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-at91/pm.c
@@ -592,13 +592,13 @@
 	sram_pool = gen_pool_get(&pdev->dev, NULL);
 	if (!sram_pool) {
 		pr_warn("%s: sram pool unavailable!\n", __func__);
-		return;
+		goto out_put_device;
 	}
 
 	sram_base = gen_pool_alloc(sram_pool, at91_pm_suspend_in_sram_sz);
 	if (!sram_base) {
 		pr_warn("%s: unable to alloc sram!\n", __func__);
-		return;
+		goto out_put_device;
 	}
 
 	sram_pbase = gen_pool_virt_to_phys(sram_pool, sram_base);
@@ -606,12 +606,17 @@
 					at91_pm_suspend_in_sram_sz, false);
 	if (!at91_suspend_sram_fn) {
 		pr_warn("SRAM: Could not map\n");
-		return;
+		goto out_put_device;
 	}
 
 	/* Copy the pm suspend handler to SRAM */
 	at91_suspend_sram_fn = fncpy(at91_suspend_sram_fn,
 			&at91_pm_suspend_in_sram, at91_pm_suspend_in_sram_sz);
+	return;
+
+out_put_device:
+	put_device(&pdev->dev);
+	return;
 }
 
 static bool __init at91_is_pm_mode_active(int pm_mode)
@@ -691,6 +696,12 @@
 		soc_pm.data.suspend_mode = AT91_PM_ULP0;
 }
 
+static const struct of_device_id atmel_shdwc_ids[] = {
+	{ .compatible = "atmel,sama5d2-shdwc" },
+	{ .compatible = "microchip,sam9x60-shdwc" },
+	{ /* sentinel. */ }
+};
+
 static void __init at91_pm_modes_init(void)
 {
 	struct device_node *np;
@@ -700,7 +711,7 @@
 	    !at91_is_pm_mode_active(AT91_PM_ULP1))
 		return;
 
-	np = of_find_compatible_node(NULL, NULL, "atmel,sama5d2-shdwc");
+	np = of_find_matching_node(NULL, atmel_shdwc_ids);
 	if (!np) {
 		pr_warn("%s: failed to find shdwc!\n", __func__);
 		goto ulp1_default;
@@ -751,6 +762,7 @@
 	{ .compatible = "atmel,sama5d3-pmc", .data = &pmc_infos[1] },
 	{ .compatible = "atmel,sama5d4-pmc", .data = &pmc_infos[1] },
 	{ .compatible = "atmel,sama5d2-pmc", .data = &pmc_infos[1] },
+	{ .compatible = "microchip,sam9x60-pmc", .data = &pmc_infos[1] },
 	{ /* sentinel */ },
 };
 
@@ -765,6 +777,7 @@
 
 	pmc_np = of_find_matching_node_and_match(NULL, atmel_pmc_ids, &of_id);
 	soc_pm.data.pmc = of_iomap(pmc_np, 0);
+	of_node_put(pmc_np);
 	if (!soc_pm.data.pmc) {
 		pr_err("AT91: PM not supported, PMC not found\n");
 		return;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-at91/pm_suspend.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-at91/pm_suspend.S
@@ -268,6 +268,10 @@
 	orr	tmp1, tmp1, #AT91_PMC_KEY
 	str	tmp1, [pmc, #AT91_CKGR_MOR]
 
+	/* Quirk for SAM9X60's PMC */
+	nop
+	nop
+
 	wait_mckrdy
 
 	/* Enable the crystal oscillator */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-davinci/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-davinci/Kconfig
@@ -9,6 +9,7 @@
 	select PM_GENERIC_DOMAINS if PM
 	select PM_GENERIC_DOMAINS_OF if PM && OF
 	select REGMAP_MMIO
+	select RESET_CONTROLLER
 	select HAVE_IDE
 	select PINCTRL_SINGLE
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-exynos/mcpm-exynos.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-exynos/mcpm-exynos.c
@@ -26,6 +26,7 @@
 #define EXYNOS5420_USE_L2_COMMON_UP_STATE	BIT(30)
 
 static void __iomem *ns_sram_base_addr __ro_after_init;
+static bool secure_firmware __ro_after_init;
 
 /*
  * The common v7_exit_coherency_flush API could not be used because of the
@@ -58,15 +59,16 @@
 static int exynos_cpu_powerup(unsigned int cpu, unsigned int cluster)
 {
 	unsigned int cpunr = cpu + (cluster * EXYNOS5420_CPUS_PER_CLUSTER);
+	bool state;
 
 	pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
 	if (cpu >= EXYNOS5420_CPUS_PER_CLUSTER ||
 		cluster >= EXYNOS5420_NR_CLUSTERS)
 		return -EINVAL;
 
-	if (!exynos_cpu_power_state(cpunr)) {
-		exynos_cpu_power_up(cpunr);
-
+	state = exynos_cpu_power_state(cpunr);
+	exynos_cpu_power_up(cpunr);
+	if (!state && secure_firmware) {
 		/*
 		 * This assumes the cluster number of the big cores(Cortex A15)
 		 * is 0 and the Little cores(Cortex A7) is 1.
@@ -258,6 +260,8 @@
 		return -ENOMEM;
 	}
 
+	secure_firmware = exynos_secure_firmware_available();
+
 	/*
 	 * To increase the stability of KFC reset we need to program
 	 * the PMU SPARE3 register
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-footbridge/dc21285.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-footbridge/dc21285.c
@@ -66,15 +66,15 @@
 	if (addr)
 		switch (size) {
 		case 1:
-			asm("ldrb	%0, [%1, %2]"
+			asm volatile("ldrb	%0, [%1, %2]"
 				: "=r" (v) : "r" (addr), "r" (where) : "cc");
 			break;
 		case 2:
-			asm("ldrh	%0, [%1, %2]"
+			asm volatile("ldrh	%0, [%1, %2]"
 				: "=r" (v) : "r" (addr), "r" (where) : "cc");
 			break;
 		case 4:
-			asm("ldr	%0, [%1, %2]"
+			asm volatile("ldr	%0, [%1, %2]"
 				: "=r" (v) : "r" (addr), "r" (where) : "cc");
 			break;
 		}
@@ -100,17 +100,17 @@
 	if (addr)
 		switch (size) {
 		case 1:
-			asm("strb	%0, [%1, %2]"
+			asm volatile("strb	%0, [%1, %2]"
 				: : "r" (value), "r" (addr), "r" (where)
 				: "cc");
 			break;
 		case 2:
-			asm("strh	%0, [%1, %2]"
+			asm volatile("strh	%0, [%1, %2]"
 				: : "r" (value), "r" (addr), "r" (where)
 				: "cc");
 			break;
 		case 4:
-			asm("str	%0, [%1, %2]"
+			asm volatile("str	%0, [%1, %2]"
 				: : "r" (value), "r" (addr), "r" (where)
 				: "cc");
 			break;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/Kconfig
@@ -520,6 +520,7 @@
 	bool "i.MX6 UltraLite support"
 	select PINCTRL_IMX6UL
 	select SOC_IMX6
+	select ARM_ERRATA_814220
 
 	help
 	  This enables support for Freescale i.MX6 UltraLite processor.
@@ -556,6 +557,7 @@
 	select PINCTRL_IMX7D
 	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
 	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
+	select ARM_ERRATA_814220 if ARCH_MULTI_V7
 	help
 		This enables support for Freescale i.MX7 Dual processor.
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/Makefile
@@ -91,6 +91,10 @@
 obj-$(CONFIG_SOC_IMX6) += suspend-imx6.o
 obj-$(CONFIG_SOC_IMX53) += suspend-imx53.o
 endif
+ifeq ($(CONFIG_ARM_CPU_SUSPEND),y)
+AFLAGS_resume-imx6.o :=-Wa,-march=armv7-a
+obj-$(CONFIG_SOC_IMX6) += resume-imx6.o
+endif
 obj-$(CONFIG_SOC_IMX6) += pm-imx6.o
 
 obj-$(CONFIG_SOC_IMX1) += mach-imx1.o
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/common.h
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/common.h
@@ -109,17 +109,17 @@
 int imx_cpu_kill(unsigned int cpu);
 
 #ifdef CONFIG_SUSPEND
-void v7_cpu_resume(void);
 void imx53_suspend(void __iomem *ocram_vbase);
 extern const u32 imx53_suspend_sz;
 void imx6_suspend(void __iomem *ocram_vbase);
 #else
-static inline void v7_cpu_resume(void) {}
 static inline void imx53_suspend(void __iomem *ocram_vbase) {}
 static const u32 imx53_suspend_sz;
 static inline void imx6_suspend(void __iomem *ocram_vbase) {}
 #endif
 
+void v7_cpu_resume(void);
+
 void imx6_pm_ccm_init(const char *ccm_compat);
 void imx6q_pm_init(void);
 void imx6dl_pm_init(void);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/pm-imx5.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/pm-imx5.c
@@ -295,14 +295,14 @@
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, size);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	phys = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -312,6 +312,8 @@
 	if (virt_out)
 		*virt_out = virt;
 
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(node);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/pm-imx6.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/pm-imx6.c
@@ -493,14 +493,14 @@
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, MX6Q_SUSPEND_OCRAM_SIZE);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -523,7 +523,7 @@
 	ret = imx6_pm_get_base(&pm_info->mmdc_base, socdata->mmdc_compat);
 	if (ret) {
 		pr_warn("%s: failed to get mmdc base %d!\n", __func__, ret);
-		goto put_node;
+		goto put_device;
 	}
 
 	ret = imx6_pm_get_base(&pm_info->src_base, socdata->src_compat);
@@ -570,7 +570,7 @@
 		&imx6_suspend,
 		MX6Q_SUSPEND_OCRAM_SIZE - sizeof(*pm_info));
 
-	goto put_node;
+	goto put_device;
 
 pl310_cache_map_failed:
 	iounmap(pm_info->gpc_base.vbase);
@@ -580,6 +580,8 @@
 	iounmap(pm_info->src_base.vbase);
 src_map_failed:
 	iounmap(pm_info->mmdc_base.vbase);
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(node);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/resume-imx6.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/resume-imx6.S
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright 2014 Freescale Semiconductor, Inc.
+ */
+
+#include <linux/linkage.h>
+#include <asm/assembler.h>
+#include <asm/asm-offsets.h>
+#include <asm/hardware/cache-l2x0.h>
+#include "hardware.h"
+
+/*
+ * The following code must assume it is running from physical address
+ * where absolute virtual addresses to the data section have to be
+ * turned into relative ones.
+ */
+
+ENTRY(v7_cpu_resume)
+	bl	v7_invalidate_l1
+#ifdef CONFIG_CACHE_L2X0
+	bl	l2c310_early_resume
+#endif
+	b	cpu_resume
+ENDPROC(v7_cpu_resume)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-imx/suspend-imx6.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-imx/suspend-imx6.S
@@ -67,6 +67,7 @@
 #define MX6Q_CCM_CCR	0x0
 
 	.align 3
+	.arm
 
 	.macro  sync_l2_cache
 
@@ -327,17 +328,3 @@
 
 	ret	lr
 ENDPROC(imx6_suspend)
-
-/*
- * The following code must assume it is running from physical address
- * where absolute virtual addresses to the data section have to be
- * turned into relative ones.
- */
-
-ENTRY(v7_cpu_resume)
-	bl	v7_invalidate_l1
-#ifdef CONFIG_CACHE_L2X0
-	bl	l2c310_early_resume
-#endif
-	b	cpu_resume
-ENDPROC(v7_cpu_resume)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-integrator/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-integrator/Kconfig
@@ -4,6 +4,8 @@
 	depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
 	select ARM_AMBA
 	select COMMON_CLK_VERSATILE
+	select CMA
+	select DMA_CMA
 	select HAVE_TCM
 	select ICST
 	select MFD_SYSCON
@@ -35,14 +37,13 @@
 	select ARM_VIC
 	select GPIO_PL061
 	select GPIOLIB
+	select REGULATOR
+	select REGULATOR_FIXED_VOLTAGE
 	help
 	  The IM-PD1 is an add-on logic module for the Integrator which
 	  allows ARM(R) Ltd PrimeCells to be developed and evaluated.
 	  The IM-PD1 can be found on the Integrator/PP2 platform.
 
-	  To compile this driver as a module, choose M here: the
-	  module will be called impd1.
-
 config INTEGRATOR_CM7TDMI
 	bool "Integrator/CM7TDMI core module"
 	depends on ARCH_INTEGRATOR_AP
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-ixp4xx/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-ixp4xx/Kconfig
@@ -13,7 +13,6 @@
 	select I2C
 	select I2C_IOP3XX
 	select PCI
-	select TIMER_OF
 	select USE_OF
 	help
 	  Say 'Y' here to support Device Tree-based IXP4xx platforms.
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-npcm/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-npcm/Kconfig
@@ -11,7 +11,7 @@
 	depends on ARCH_MULTI_V7
 	select PINCTRL_NPCM7XX
 	select NPCM7XX_TIMER
-	select ARCH_REQUIRE_GPIOLIB
+	select GPIOLIB
 	select CACHE_L2X0
 	select ARM_GIC
 	select HAVE_ARM_TWD if SMP
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/cpuidle34xx.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/cpuidle34xx.c
@@ -109,6 +109,7 @@
 			    int index)
 {
 	struct omap3_idle_statedata *cx = &omap3_idle_data[index];
+	int error;
 
 	if (omap_irq_pending() || need_resched())
 		goto return_sleep_time;
@@ -125,8 +126,11 @@
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP context is saved.
 	 */
-	if (cx->mpu_state == PWRDM_POWER_OFF)
-		cpu_pm_enter();
+	if (cx->mpu_state == PWRDM_POWER_OFF) {
+		error = cpu_pm_enter();
+		if (error)
+			goto out_clkdm_set;
+	}
 
 	/* Execute ARM wfi */
 	omap_sram_idle();
@@ -139,6 +143,7 @@
 	    pwrdm_read_prev_pwrst(mpu_pd) == PWRDM_POWER_OFF)
 		cpu_pm_exit();
 
+out_clkdm_set:
 	/* Re-allow idle for C1 */
 	if (cx->flags & OMAP_CPUIDLE_CX_NO_CLKDM_IDLE)
 		clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/cpuidle44xx.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/cpuidle44xx.c
@@ -122,6 +122,7 @@
 {
 	struct idle_statedata *cx = state_ptr + index;
 	u32 mpuss_can_lose_context = 0;
+	int error;
 
 	/*
 	 * CPU0 has to wait and stay ON until CPU1 is OFF state.
@@ -150,27 +151,37 @@
 				 (cx->mpu_logic_state == PWRDM_POWER_OFF);
 
 	/* Enter broadcast mode for periodic timers */
-	tick_broadcast_enable();
+	RCU_NONIDLE(tick_broadcast_enable());
 
 	/* Enter broadcast mode for one-shot timers */
-	tick_broadcast_enter();
+	RCU_NONIDLE(tick_broadcast_enter());
 
 	/*
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP and per CPU interrupt context is saved.
 	 */
-	cpu_pm_enter();
+	error = cpu_pm_enter();
+	if (error)
+		goto cpu_pm_out;
 
 	if (dev->cpu == 0) {
 		pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
-		omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
+		RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
 
 		/*
 		 * Call idle CPU cluster PM enter notifier chain
 		 * to save GIC and wakeupgen context.
 		 */
-		if (mpuss_can_lose_context)
-			cpu_cluster_pm_enter();
+		if (mpuss_can_lose_context) {
+			error = cpu_cluster_pm_enter();
+			if (error) {
+				index = 0;
+				cx = state_ptr + index;
+				pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
+				RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
+				mpuss_can_lose_context = 0;
+			}
+		}
 	}
 
 	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
@@ -183,9 +194,9 @@
 		    mpuss_can_lose_context)
 			gic_dist_disable();
 
-		clkdm_deny_idle(cpu_clkdm[1]);
-		omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
-		clkdm_allow_idle(cpu_clkdm[1]);
+		RCU_NONIDLE(clkdm_deny_idle(cpu_clkdm[1]));
+		RCU_NONIDLE(omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON));
+		RCU_NONIDLE(clkdm_allow_idle(cpu_clkdm[1]));
 
 		if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
 		    mpuss_can_lose_context) {
@@ -198,19 +209,20 @@
 	}
 
 	/*
-	 * Call idle CPU PM exit notifier chain to restore
-	 * VFP and per CPU IRQ context.
-	 */
-	cpu_pm_exit();
-
-	/*
 	 * Call idle CPU cluster PM exit notifier chain
 	 * to restore GIC and wakeupgen context.
 	 */
 	if (dev->cpu == 0 && mpuss_can_lose_context)
 		cpu_cluster_pm_exit();
 
-	tick_broadcast_exit();
+	/*
+	 * Call idle CPU PM exit notifier chain to restore
+	 * VFP and per CPU IRQ context.
+	 */
+	cpu_pm_exit();
+
+cpu_pm_out:
+	RCU_NONIDLE(tick_broadcast_exit());
 
 fail:
 	cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/display.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/display.c
@@ -265,6 +265,7 @@
 	r = of_platform_populate(node, NULL, NULL, &pdev->dev);
 	if (r) {
 		pr_err("Unable to populate DSS submodule devices\n");
+		put_device(&pdev->dev);
 		return r;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/omap-iommu.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/omap-iommu.c
@@ -11,14 +11,43 @@
 
 #include "omap_hwmod.h"
 #include "omap_device.h"
+#include "clockdomain.h"
 #include "powerdomain.h"
 
+static void omap_iommu_dra7_emu_swsup_config(struct platform_device *pdev,
+					     bool enable)
+{
+	static struct clockdomain *emu_clkdm;
+	static DEFINE_SPINLOCK(emu_lock);
+	static atomic_t count;
+	struct device_node *np = pdev->dev.of_node;
+
+	if (!of_device_is_compatible(np, "ti,dra7-dsp-iommu"))
+		return;
+
+	if (!emu_clkdm) {
+		emu_clkdm = clkdm_lookup("emu_clkdm");
+		if (WARN_ON_ONCE(!emu_clkdm))
+			return;
+	}
+
+	spin_lock(&emu_lock);
+
+	if (enable && (atomic_inc_return(&count) == 1))
+		clkdm_deny_idle(emu_clkdm);
+	else if (!enable && (atomic_dec_return(&count) == 0))
+		clkdm_allow_idle(emu_clkdm);
+
+	spin_unlock(&emu_lock);
+}
+
 int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev, bool request,
 				    u8 *pwrst)
 {
 	struct powerdomain *pwrdm;
 	struct omap_device *od;
 	u8 next_pwrst;
+	int ret = 0;
 
 	od = to_omap_device(pdev);
 	if (!od)
@@ -31,13 +60,21 @@
 	if (!pwrdm)
 		return -EINVAL;
 
-	if (request)
+	if (request) {
 		*pwrst = pwrdm_read_next_pwrst(pwrdm);
+		omap_iommu_dra7_emu_swsup_config(pdev, true);
+	}
 
 	if (*pwrst > PWRDM_POWER_RET)
-		return 0;
+		goto out;
 
 	next_pwrst = request ? PWRDM_POWER_ON : *pwrst;
 
-	return pwrdm_set_next_pwrst(pwrdm, next_pwrst);
+	ret = pwrdm_set_next_pwrst(pwrdm, next_pwrst);
+
+out:
+	if (!request)
+		omap_iommu_dra7_emu_swsup_config(pdev, false);
+
+	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/omap_device.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/omap_device.c
@@ -234,10 +234,12 @@
 		break;
 	case BUS_NOTIFY_BIND_DRIVER:
 		od = to_omap_device(pdev);
-		if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED) &&
-		    pm_runtime_status_suspended(dev)) {
+		if (od) {
 			od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
-			pm_runtime_set_active(dev);
+			if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
+			    pm_runtime_status_suspended(dev)) {
+				pm_runtime_set_active(dev);
+			}
 		}
 		break;
 	case BUS_NOTIFY_ADD_DEVICE:
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/omap_hwmod.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/omap_hwmod.c
@@ -3535,7 +3535,7 @@
 };
 
 static const struct omap_hwmod_reset omap_reset_quirks[] = {
-	{ .match = "dss", .len = 3, .reset = omap_dss_reset, },
+	{ .match = "dss_core", .len = 8, .reset = omap_dss_reset, },
 	{ .match = "hdq1w", .len = 5, .reset = omap_hdq1w_reset, },
 	{ .match = "i2c", .len = 3, .reset = omap_i2c_reset, },
 	{ .match = "wd_timer", .len = 8, .reset = omap2_wd_timer_reset, },
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/pdata-quirks.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/pdata-quirks.c
@@ -7,7 +7,6 @@
 #include <linux/clk.h>
 #include <linux/davinci_emac.h>
 #include <linux/gpio.h>
-#include <linux/gpio/machine.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
@@ -45,6 +44,17 @@
 static struct of_dev_auxdata omap_auxdata_lookup[];
 static struct twl4030_gpio_platform_data twl_gpio_auxdata;
 
+#if IS_ENABLED(CONFIG_OMAP_IOMMU)
+int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev, bool request,
+				    u8 *pwrst);
+#else
+static inline int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev,
+						  bool request, u8 *pwrst)
+{
+	return 0;
+}
+#endif
+
 #ifdef CONFIG_MACH_NOKIA_N8X0
 static void __init omap2420_n8x0_legacy_init(void)
 {
@@ -269,14 +279,6 @@
 	am35xx_emac_reset();
 }
 
-static struct platform_device omap3_rom_rng_device = {
-	.name		= "omap3-rom-rng",
-	.id		= -1,
-	.dev	= {
-		.platform_data	= rx51_secure_rng_call,
-	},
-};
-
 static void __init nokia_n900_legacy_init(void)
 {
 	hsmmc2_internal_input_clk();
@@ -292,9 +294,6 @@
 			pr_warn("RX-51: Not enabling ARM errata 430973 workaround\n");
 			pr_warn("Thumb binaries may crash randomly without this workaround\n");
 		}
-
-		pr_info("RX-51: Registering OMAP3 HWRNG device\n");
-		platform_device_register(&omap3_rom_rng_device);
 	}
 }
 
@@ -311,131 +310,18 @@
 }
 
 /* omap3pandora legacy devices */
-#define PANDORA_WIFI_IRQ_GPIO		21
-#define PANDORA_WIFI_NRESET_GPIO	23
 
 static struct platform_device pandora_backlight = {
 	.name	= "pandora-backlight",
 	.id	= -1,
 };
 
-static struct regulator_consumer_supply pandora_vmmc3_supply[] = {
-	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
-};
-
-static struct regulator_init_data pandora_vmmc3 = {
-	.constraints = {
-		.valid_ops_mask		= REGULATOR_CHANGE_STATUS,
-	},
-	.num_consumer_supplies	= ARRAY_SIZE(pandora_vmmc3_supply),
-	.consumer_supplies	= pandora_vmmc3_supply,
-};
-
-static struct fixed_voltage_config pandora_vwlan = {
-	.supply_name		= "vwlan",
-	.microvolts		= 1800000, /* 1.8V */
-	.startup_delay		= 50000, /* 50ms */
-	.init_data		= &pandora_vmmc3,
-};
-
-static struct platform_device pandora_vwlan_device = {
-	.name		= "reg-fixed-voltage",
-	.id		= 1,
-	.dev = {
-		.platform_data = &pandora_vwlan,
-	},
-};
-
-static struct gpiod_lookup_table pandora_vwlan_gpiod_table = {
-	.dev_id = "reg-fixed-voltage.1",
-	.table = {
-		/*
-		 * As this is a low GPIO number it should be at the first
-		 * GPIO bank.
-		 */
-		GPIO_LOOKUP("gpio-0-31", PANDORA_WIFI_NRESET_GPIO,
-			    NULL, GPIO_ACTIVE_HIGH),
-		{ },
-	},
-};
-
-static void pandora_wl1251_init_card(struct mmc_card *card)
-{
-	/*
-	 * We have TI wl1251 attached to MMC3. Pass this information to
-	 * SDIO core because it can't be probed by normal methods.
-	 */
-	if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) {
-		card->quirks |= MMC_QUIRK_NONSTD_SDIO;
-		card->cccr.wide_bus = 1;
-		card->cis.vendor = 0x104c;
-		card->cis.device = 0x9066;
-		card->cis.blksize = 512;
-		card->cis.max_dtr = 24000000;
-		card->ocr = 0x80;
-	}
-}
-
-static struct omap2_hsmmc_info pandora_mmc3[] = {
-	{
-		.mmc		= 3,
-		.caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
-		.init_card	= pandora_wl1251_init_card,
-	},
-	{}	/* Terminator */
-};
-
-static void __init pandora_wl1251_init(void)
-{
-	struct wl1251_platform_data pandora_wl1251_pdata;
-	int ret;
-
-	memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata));
-
-	pandora_wl1251_pdata.power_gpio = -1;
-
-	ret = gpio_request_one(PANDORA_WIFI_IRQ_GPIO, GPIOF_IN, "wl1251 irq");
-	if (ret < 0)
-		goto fail;
-
-	pandora_wl1251_pdata.irq = gpio_to_irq(PANDORA_WIFI_IRQ_GPIO);
-	if (pandora_wl1251_pdata.irq < 0)
-		goto fail_irq;
-
-	pandora_wl1251_pdata.use_eeprom = true;
-	ret = wl1251_set_platform_data(&pandora_wl1251_pdata);
-	if (ret < 0)
-		goto fail_irq;
-
-	return;
-
-fail_irq:
-	gpio_free(PANDORA_WIFI_IRQ_GPIO);
-fail:
-	pr_err("wl1251 board initialisation failed\n");
-}
-
 static void __init omap3_pandora_legacy_init(void)
 {
 	platform_device_register(&pandora_backlight);
-	gpiod_add_lookup_table(&pandora_vwlan_gpiod_table);
-	platform_device_register(&pandora_vwlan_device);
-	omap_hsmmc_init(pandora_mmc3);
-	omap_hsmmc_late_init(pandora_mmc3);
-	pandora_wl1251_init();
 }
 #endif /* CONFIG_ARCH_OMAP3 */
 
-#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
-static struct iommu_platform_data omap4_iommu_pdata = {
-	.reset_name = "mmu_cache",
-	.assert_reset = omap_device_assert_hardreset,
-	.deassert_reset = omap_device_deassert_hardreset,
-	.device_enable = omap_device_enable,
-	.device_idle = omap_device_idle,
-};
-#endif
-
 #if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
 static struct wkup_m3_platform_data wkup_m3_data = {
 	.reset_name = "wkup_m3",
@@ -451,6 +337,10 @@
 #endif
 
 #ifdef CONFIG_SOC_DRA7XX
+static struct iommu_platform_data dra7_ipu1_dsp_iommu_pdata = {
+	.set_pwrdm_constraint = omap_iommu_set_pwrdm_constraint,
+};
+
 static struct omap_hsmmc_platform_data dra7_hsmmc_data_mmc1;
 static struct omap_hsmmc_platform_data dra7_hsmmc_data_mmc2;
 static struct omap_hsmmc_platform_data dra7_hsmmc_data_mmc3;
@@ -472,10 +362,14 @@
 
 static struct clockdomain *ti_sysc_find_one_clockdomain(struct clk *clk)
 {
+	struct clk_hw *hw = __clk_get_hw(clk);
 	struct clockdomain *clkdm = NULL;
 	struct clk_hw_omap *hwclk;
 
-	hwclk = to_clk_hw_omap(__clk_get_hw(clk));
+	hwclk = to_clk_hw_omap(hw);
+	if (!omap2_clk_is_hw_omap(hw))
+		return NULL;
+
 	if (hwclk && hwclk->clkdm_name)
 		clkdm = clkdm_lookup(hwclk->clkdm_name);
 
@@ -638,6 +532,7 @@
 	OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
 	OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
 		       &am35xx_emac_pdata),
+	OF_DEV_AUXDATA("nokia,n900-rom-rng", 0, NULL, rx51_secure_rng_call),
 	/* McBSP modules with sidetone core */
 #if IS_ENABLED(CONFIG_SND_SOC_OMAP_MCBSP)
 	OF_DEV_AUXDATA("ti,omap3-mcbsp", 0x49022000, "49022000.mcbsp", &mcbsp_pdata),
@@ -653,10 +548,6 @@
 		       &wkup_m3_data),
 #endif
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
-	OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
-		       &omap4_iommu_pdata),
-	OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
-		       &omap4_iommu_pdata),
 	OF_DEV_AUXDATA("ti,omap4-smartreflex-iva", 0x4a0db000,
 		       "4a0db000.smartreflex", &omap_sr_pdata[OMAP_SR_IVA]),
 	OF_DEV_AUXDATA("ti,omap4-smartreflex-core", 0x4a0dd000,
@@ -671,6 +562,12 @@
 		       &dra7_hsmmc_data_mmc2),
 	OF_DEV_AUXDATA("ti,dra7-hsmmc", 0x480ad000, "480ad000.mmc",
 		       &dra7_hsmmc_data_mmc3),
+	OF_DEV_AUXDATA("ti,dra7-dsp-iommu", 0x40d01000, "40d01000.mmu",
+		       &dra7_ipu1_dsp_iommu_pdata),
+	OF_DEV_AUXDATA("ti,dra7-dsp-iommu", 0x41501000, "41501000.mmu",
+		       &dra7_ipu1_dsp_iommu_pdata),
+	OF_DEV_AUXDATA("ti,dra7-iommu", 0x58882000, "58882000.mmu",
+		       &dra7_ipu1_dsp_iommu_pdata),
 #endif
 	/* Common auxdata */
 	OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata),
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-omap2/pm34xx.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-omap2/pm34xx.c
@@ -194,6 +194,7 @@
 	int per_next_state = PWRDM_POWER_ON;
 	int core_next_state = PWRDM_POWER_ON;
 	u32 sdrc_pwr = 0;
+	int error;
 
 	mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm);
 	switch (mpu_next_state) {
@@ -222,8 +223,11 @@
 	pwrdm_pre_transition(NULL);
 
 	/* PER */
-	if (per_next_state == PWRDM_POWER_OFF)
-		cpu_cluster_pm_enter();
+	if (per_next_state == PWRDM_POWER_OFF) {
+		error = cpu_cluster_pm_enter();
+		if (error)
+			return;
+	}
 
 	/* CORE */
 	if (core_next_state < PWRDM_POWER_ON) {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-s3c24xx/mach-at2440evb.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-s3c24xx/mach-at2440evb.c
@@ -143,7 +143,7 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPG(10) */
-		GPIO_LOOKUP("GPG", 10, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOG", 10, "cd", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-s3c24xx/mach-h1940.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-s3c24xx/mach-h1940.c
@@ -468,9 +468,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPF(5) */
-		GPIO_LOOKUP("GPF", 5, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOF", 5, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPH(8) */
-		GPIO_LOOKUP("GPH", 8, "wp", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOH", 8, "wp", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-s3c24xx/mach-mini2440.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-s3c24xx/mach-mini2440.c
@@ -244,9 +244,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPG(8) */
-		GPIO_LOOKUP("GPG", 8, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOG", 8, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPH(8) */
-		GPIO_LOOKUP("GPH", 8, "wp", GPIO_ACTIVE_HIGH),
+		GPIO_LOOKUP("GPIOH", 8, "wp", GPIO_ACTIVE_HIGH),
 		{ },
 	},
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-s3c24xx/mach-n30.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-s3c24xx/mach-n30.c
@@ -359,9 +359,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPF(1) */
-		GPIO_LOOKUP("GPF", 1, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOF", 1, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPG(10) */
-		GPIO_LOOKUP("GPG", 10, "wp", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOG", 10, "wp", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-s3c24xx/mach-rx1950.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-s3c24xx/mach-rx1950.c
@@ -567,9 +567,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPF(5) */
-		GPIO_LOOKUP("GPF", 5, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOF", 5, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPH(8) */
-		GPIO_LOOKUP("GPH", 8, "wp", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOH", 8, "wp", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-socfpga/pm.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-socfpga/pm.c
@@ -49,14 +49,14 @@
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, socfpga_sdram_self_refresh_sz);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -67,7 +67,7 @@
 	if (!suspend_ocram_base) {
 		pr_warn("%s: __arm_ioremap_exec failed!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	/* Copy the code that puts DDR in self refresh to ocram */
@@ -81,6 +81,8 @@
 	if (!socfpga_sdram_self_refresh_in_ocram)
 		ret = -EFAULT;
 
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(np);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-sunxi/sunxi.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-sunxi/sunxi.c
@@ -66,6 +66,7 @@
 	"allwinner,sun8i-h2-plus",
 	"allwinner,sun8i-h3",
 	"allwinner,sun8i-r40",
+	"allwinner,sun8i-v3",
 	"allwinner,sun8i-v3s",
 	NULL,
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-tegra/reset-handler.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-tegra/reset-handler.S
@@ -44,16 +44,16 @@
 	cmp	r6, #TEGRA20
 	beq	1f				@ Yes
 	/* Clear the flow controller flags for this CPU. */
-	cpu_to_csr_reg r1, r0
+	cpu_to_csr_reg r3, r0
 	mov32	r2, TEGRA_FLOW_CTRL_BASE
-	ldr	r1, [r2, r1]
+	ldr	r1, [r2, r3]
 	/* Clear event & intr flag */
 	orr	r1, r1, \
 		#FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG
 	movw	r0, #0x3FFD	@ enable, cluster_switch, immed, bitmaps
 				@ & ext flags for CPU power mgnt
 	bic	r1, r1, r0
-	str	r1, [r2]
+	str	r1, [r2, r3]
 1:
 
 	mov32	r9, 0xc09
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-tegra/sleep-tegra30.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-tegra/sleep-tegra30.S
@@ -370,6 +370,14 @@
 	pll_locked r1, r0, CLK_RESET_PLLC_BASE
 	pll_locked r1, r0, CLK_RESET_PLLX_BASE
 
+	tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
+	cmp	r1, #TEGRA30
+	beq	1f
+	ldr	r1, [r0, #CLK_RESET_PLLP_BASE]
+	bic	r1, r1, #(1<<31)	@ disable PllP bypass
+	str	r1, [r0, #CLK_RESET_PLLP_BASE]
+1:
+
 	mov32	r7, TEGRA_TMRUS_BASE
 	ldr	r1, [r7]
 	add	r1, r1, #LOCK_DELAY
@@ -630,7 +638,10 @@
 	str	r0, [r4, #PMC_PLLP_WB0_OVERRIDE]
 
 	/* disable PLLP, PLLA, PLLC and PLLX */
+	tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
+	cmp	r1, #TEGRA30
 	ldr	r0, [r5, #CLK_RESET_PLLP_BASE]
+	orrne	r0, r0, #(1 << 31)	@ enable PllP bypass on fast cluster
 	bic	r0, r0, #(1 << 30)
 	str	r0, [r5, #CLK_RESET_PLLP_BASE]
 	ldr	r0, [r5, #CLK_RESET_PLLA_BASE]
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-tegra/tegra.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-tegra/tegra.c
@@ -106,8 +106,8 @@
 };
 
 DT_MACHINE_START(TEGRA_DT, "NVIDIA Tegra SoC (Flattened Device Tree)")
-	.l2c_aux_val	= 0x3c400001,
-	.l2c_aux_mask	= 0xc20fc3fe,
+	.l2c_aux_val	= 0x3c400000,
+	.l2c_aux_mask	= 0xc20fc3ff,
 	.smp		= smp_ops(tegra_smp_ops),
 	.map_io		= tegra_map_common_io,
 	.init_early	= tegra_init_early,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mach-vexpress/spc.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mach-vexpress/spc.c
@@ -551,8 +551,9 @@
 
 static int __init ve_spc_clk_init(void)
 {
-	int cpu;
+	int cpu, cluster;
 	struct clk *clk;
+	bool init_opp_table[MAX_CLUSTERS] = { false };
 
 	if (!info)
 		return 0; /* Continue only if SPC is initialised */
@@ -578,8 +579,17 @@
 			continue;
 		}
 
+		cluster = topology_physical_package_id(cpu_dev->id);
+		if (init_opp_table[cluster])
+			continue;
+
 		if (ve_init_opp_table(cpu_dev))
 			pr_warn("failed to initialise cpu%d opp table\n", cpu);
+		else if (dev_pm_opp_set_sharing_cpus(cpu_dev,
+			 topology_core_cpumask(cpu_dev->id)))
+			pr_warn("failed to mark OPPs shared for cpu%d\n", cpu);
+		else
+			init_opp_table[cluster] = true;
 	}
 
 	platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mm/cache-l2x0.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mm/cache-l2x0.c
@@ -1249,20 +1249,28 @@
 
 	ret = of_property_read_u32(np, "prefetch-data", &val);
 	if (ret == 0) {
-		if (val)
+		if (val) {
 			prefetch |= L310_PREFETCH_CTRL_DATA_PREFETCH;
-		else
+			*aux_val |= L310_PREFETCH_CTRL_DATA_PREFETCH;
+		} else {
 			prefetch &= ~L310_PREFETCH_CTRL_DATA_PREFETCH;
+			*aux_val &= ~L310_PREFETCH_CTRL_DATA_PREFETCH;
+		}
+		*aux_mask &= ~L310_PREFETCH_CTRL_DATA_PREFETCH;
 	} else if (ret != -EINVAL) {
 		pr_err("L2C-310 OF prefetch-data property value is missing\n");
 	}
 
 	ret = of_property_read_u32(np, "prefetch-instr", &val);
 	if (ret == 0) {
-		if (val)
+		if (val) {
 			prefetch |= L310_PREFETCH_CTRL_INSTR_PREFETCH;
-		else
+			*aux_val |= L310_PREFETCH_CTRL_INSTR_PREFETCH;
+		} else {
 			prefetch &= ~L310_PREFETCH_CTRL_INSTR_PREFETCH;
+			*aux_val &= ~L310_PREFETCH_CTRL_INSTR_PREFETCH;
+		}
+		*aux_mask &= ~L310_PREFETCH_CTRL_INSTR_PREFETCH;
 	} else if (ret != -EINVAL) {
 		pr_err("L2C-310 OF prefetch-instr property value is missing\n");
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mm/dma-mapping-nommu.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mm/dma-mapping-nommu.c
@@ -35,7 +35,7 @@
 				 unsigned long attrs)
 
 {
-	void *ret = dma_alloc_from_global_coherent(size, dma_handle);
+	void *ret = dma_alloc_from_global_coherent(dev, size, dma_handle);
 
 	/*
 	 * dma_alloc_from_global_coherent() may fail because:
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mm/dma-mapping.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mm/dma-mapping.c
@@ -221,7 +221,7 @@
 
 static int __dma_supported(struct device *dev, u64 mask, bool warn)
 {
-	unsigned long max_dma_pfn = min(max_pfn, arm_dma_pfn_limit);
+	unsigned long max_dma_pfn = min(max_pfn - 1, arm_dma_pfn_limit);
 
 	/*
 	 * Translate the device's DMA mask to a PFN limit.  This
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mm/init.c
@@ -323,7 +323,7 @@
 		*p++ = 0xe7fddef0;
 }
 
-static inline void
+static inline void __init
 free_memmap(unsigned long start_pfn, unsigned long end_pfn)
 {
 	struct page *start_pg, *end_pg;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mm/proc-macros.S
+++ linux-gkeop-5.4-5.4.0/arch/arm/mm/proc-macros.S
@@ -5,6 +5,7 @@
  *  VMA_VM_FLAGS
  *  VM_EXEC
  */
+#include <linux/const.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 
@@ -30,7 +31,7 @@
  * act_mm - get current->active_mm
  */
 	.macro	act_mm, rd
-	bic	\rd, sp, #8128
+	bic	\rd, sp, #(THREAD_SIZE - 1) & ~63
 	bic	\rd, \rd, #63
 	ldr	\rd, [\rd, #TI_TASK]
 	.if (TSK_ACTIVE_MM > IMM12_MASK)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/mm/proc-v7-bugs.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/mm/proc-v7-bugs.c
@@ -65,6 +65,9 @@
 		break;
 
 #ifdef CONFIG_ARM_PSCI
+	case ARM_CPU_PART_BRAHMA_B53:
+		/* Requires no workaround */
+		break;
 	default:
 		/* Other ARM CPUs require no workaround */
 		if (read_cpuid_implementor() == ARM_CPU_IMP_ARM)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/net/bpf_jit_32.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/net/bpf_jit_32.c
@@ -929,7 +929,11 @@
 	rd = arm_bpf_get_reg64(dst, tmp, ctx);
 
 	/* Do LSR operation */
-	if (val < 32) {
+	if (val == 0) {
+		/* An immediate value of 0 encodes a shift amount of 32
+		 * for LSR. To shift by 0, don't do anything.
+		 */
+	} else if (val < 32) {
 		emit(ARM_MOV_SI(tmp2[1], rd[1], SRTYPE_LSR, val), ctx);
 		emit(ARM_ORR_SI(rd[1], tmp2[1], rd[0], SRTYPE_ASL, 32 - val), ctx);
 		emit(ARM_MOV_SI(rd[0], rd[0], SRTYPE_LSR, val), ctx);
@@ -955,7 +959,11 @@
 	rd = arm_bpf_get_reg64(dst, tmp, ctx);
 
 	/* Do ARSH operation */
-	if (val < 32) {
+	if (val == 0) {
+		/* An immediate value of 0 encodes a shift amount of 32
+		 * for ASR. To shift by 0, don't do anything.
+		 */
+	} else if (val < 32) {
 		emit(ARM_MOV_SI(tmp2[1], rd[1], SRTYPE_LSR, val), ctx);
 		emit(ARM_ORR_SI(rd[1], tmp2[1], rd[0], SRTYPE_ASL, 32 - val), ctx);
 		emit(ARM_MOV_SI(rd[0], rd[0], SRTYPE_ASR, val), ctx);
@@ -992,21 +1000,35 @@
 	arm_bpf_put_reg32(dst_hi, rd[0], ctx);
 }
 
+static bool is_ldst_imm(s16 off, const u8 size)
+{
+	s16 off_max = 0;
+
+	switch (size) {
+	case BPF_B:
+	case BPF_W:
+		off_max = 0xfff;
+		break;
+	case BPF_H:
+		off_max = 0xff;
+		break;
+	case BPF_DW:
+		/* Need to make sure off+4 does not overflow. */
+		off_max = 0xfff - 4;
+		break;
+	}
+	return -off_max <= off && off <= off_max;
+}
+
 /* *(size *)(dst + off) = src */
 static inline void emit_str_r(const s8 dst, const s8 src[],
-			      s32 off, struct jit_ctx *ctx, const u8 sz){
+			      s16 off, struct jit_ctx *ctx, const u8 sz){
 	const s8 *tmp = bpf2a32[TMP_REG_1];
-	s32 off_max;
 	s8 rd;
 
 	rd = arm_bpf_get_reg32(dst, tmp[1], ctx);
 
-	if (sz == BPF_H)
-		off_max = 0xff;
-	else
-		off_max = 0xfff;
-
-	if (off < 0 || off > off_max) {
+	if (!is_ldst_imm(off, sz)) {
 		emit_a32_mov_i(tmp[0], off, ctx);
 		emit(ARM_ADD_R(tmp[0], tmp[0], rd), ctx);
 		rd = tmp[0];
@@ -1035,18 +1057,12 @@
 
 /* dst = *(size*)(src + off) */
 static inline void emit_ldx_r(const s8 dst[], const s8 src,
-			      s32 off, struct jit_ctx *ctx, const u8 sz){
+			      s16 off, struct jit_ctx *ctx, const u8 sz){
 	const s8 *tmp = bpf2a32[TMP_REG_1];
 	const s8 *rd = is_stacked(dst_lo) ? tmp : dst;
 	s8 rm = src;
-	s32 off_max;
-
-	if (sz == BPF_H)
-		off_max = 0xff;
-	else
-		off_max = 0xfff;
 
-	if (off < 0 || off > off_max) {
+	if (!is_ldst_imm(off, sz)) {
 		emit_a32_mov_i(tmp[0], off, ctx);
 		emit(ARM_ADD_R(tmp[0], tmp[0], src), ctx);
 		rm = tmp[0];
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/plat-samsung/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm/plat-samsung/Kconfig
@@ -241,6 +241,7 @@
 	depends on PM && DEBUG_KERNEL
 	depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
 	depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
+	depends on DEBUG_LL && MMU
 	help
 	  Say Y here if you want verbose debugging from the PM Suspend and
 	  Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/probes/kprobes/opt-arm.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/probes/kprobes/opt-arm.c
@@ -85,21 +85,21 @@
 			"optprobe_template_end:\n");
 
 #define TMPL_VAL_IDX \
-	((unsigned long *)&optprobe_template_val - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_val - (unsigned long *)optprobe_template_entry)
 #define TMPL_CALL_IDX \
-	((unsigned long *)&optprobe_template_call - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_call - (unsigned long *)optprobe_template_entry)
 #define TMPL_END_IDX \
-	((unsigned long *)&optprobe_template_end - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_end - (unsigned long *)optprobe_template_entry)
 #define TMPL_ADD_SP \
-	((unsigned long *)&optprobe_template_add_sp - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_add_sp - (unsigned long *)optprobe_template_entry)
 #define TMPL_SUB_SP \
-	((unsigned long *)&optprobe_template_sub_sp - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_sub_sp - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_BEGIN \
-	((unsigned long *)&optprobe_template_restore_begin - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_begin - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_ORIGN_INSN \
-	((unsigned long *)&optprobe_template_restore_orig_insn - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_orig_insn - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_END \
-	((unsigned long *)&optprobe_template_restore_end - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_end - (unsigned long *)optprobe_template_entry)
 
 /*
  * ARM can always optimize an instruction when using ARM ISA, except
@@ -234,7 +234,7 @@
 	}
 
 	/* Copy arch-dep-instance from template. */
-	memcpy(code, (unsigned long *)&optprobe_template_entry,
+	memcpy(code, (unsigned long *)optprobe_template_entry,
 			TMPL_END_IDX * sizeof(kprobe_opcode_t));
 
 	/* Adjust buffer according to instruction. */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/xen/enlighten.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/xen/enlighten.c
@@ -370,8 +370,6 @@
 		return -ENOMEM;
 	}
 	gnttab_init();
-	if (!xen_initial_domain())
-		xenbus_probe(NULL);
 
 	/*
 	 * Making sure board specific code will not set up ops for
--- linux-gkeop-5.4-5.4.0.orig/arch/arm/xen/p2m.c
+++ linux-gkeop-5.4-5.4.0/arch/arm/xen/p2m.c
@@ -93,10 +93,39 @@
 	int i;
 
 	for (i = 0; i < count; i++) {
+		struct gnttab_unmap_grant_ref unmap;
+		int rc;
+
 		if (map_ops[i].status)
 			continue;
-		set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
-				    map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT);
+		if (likely(set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
+				    map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT)))
+			continue;
+
+		/*
+		 * Signal an error for this slot. This in turn requires
+		 * immediate unmapping.
+		 */
+		map_ops[i].status = GNTST_general_error;
+		unmap.host_addr = map_ops[i].host_addr,
+		unmap.handle = map_ops[i].handle;
+		map_ops[i].handle = ~0;
+		if (map_ops[i].flags & GNTMAP_device_map)
+			unmap.dev_bus_addr = map_ops[i].dev_bus_addr;
+		else
+			unmap.dev_bus_addr = 0;
+
+		/*
+		 * Pre-populate the status field, to be recognizable in
+		 * the log message below.
+		 */
+		unmap.status = 1;
+
+		rc = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+					       &unmap, 1);
+		if (rc || unmap.status != GNTST_okay)
+			pr_err_once("gnttab unmap failed: rc=%d st=%d\n",
+				    rc, unmap.status);
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/arm64/Kconfig
@@ -139,6 +139,7 @@
 	select HAVE_CMPXCHG_DOUBLE
 	select HAVE_CMPXCHG_LOCAL
 	select HAVE_CONTEXT_TRACKING
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DEBUG_BUGVERBOSE
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DMA_CONTIGUOUS
@@ -488,7 +489,7 @@
 	help
 	  This option adds a workaround for ARM Cortex-A55 Erratum 1024718.
 
-	  Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect
+	  Affected Cortex-A55 cores (all revisions) could cause incorrect
 	  update of the hardware dirty bit when the DBM/AP bits are updated
 	  without a break-before-make. The workaround is to disable the usage
 	  of hardware DBM locally on the affected cores. CPUs not affected by
@@ -558,6 +559,22 @@
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_1542419
+	bool "Neoverse-N1: workaround mis-ordering of instruction fetches"
+	default y
+	help
+	  This option adds a workaround for ARM Neoverse-N1 erratum
+	  1542419.
+
+	  Affected Neoverse-N1 cores could execute a stale instruction when
+	  modified by another CPU. The workaround depends on a firmware
+	  counterpart.
+
+	  Workaround the issue by hiding the DIC feature from EL0. This
+	  forces user-space to perform cache maintenance.
+
+	  If unsure, say Y.
+
 config CAVIUM_ERRATUM_22375
 	bool "Cavium erratum 22375, 24313"
 	default y
@@ -1048,6 +1065,7 @@
 config FORCE_MAX_ZONEORDER
 	int
 	default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
+	default "13" if (ARCH_THUNDER && ARM64_4K_PAGES)
 	default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE)
 	default "11"
 	help
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/Kconfig.platforms
+++ linux-gkeop-5.4-5.4.0/arch/arm64/Kconfig.platforms
@@ -54,6 +54,7 @@
 config ARCH_BERLIN
 	bool "Marvell Berlin SoC Family"
 	select DW_APB_ICTL
+	select DW_APB_TIMER_OF
 	select GPIOLIB
 	select PINCTRL
 	help
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm64/Makefile
@@ -10,7 +10,7 @@
 #
 # Copyright (C) 1995-2001 by Russell King
 
-LDFLAGS_vmlinux	:=--no-undefined -X
+LDFLAGS_vmlinux	:=--no-undefined -X -z norelro
 CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
 GZFLAGS		:=-9
 
@@ -18,7 +18,7 @@
 # Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
 # for relative relocs, since this leads to better Image compression
 # with the relocation offsets always being zero.
-LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext -z norelro \
+LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext \
 			$(call ld-option, --no-apply-dynamic-relocs)
 endif
 
@@ -72,6 +72,10 @@
 					include/generated/asm-offsets.h))
 endif
 
+# Ensure that if the compiler supports branch protection we default it
+# off.
+KBUILD_CFLAGS += $(call cc-option,-mbranch-protection=none)
+
 ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
 KBUILD_CPPFLAGS	+= -mbig-endian
 CHECKFLAGS	+= -D__AARCH64EB__
@@ -142,6 +146,8 @@
 PHONY += vdso_install
 vdso_install:
 	$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
+	$(if $(CONFIG_COMPAT_VDSO), \
+		$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 $@)
 
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/Makefile
@@ -16,7 +16,7 @@
 
 OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
 
-targets := Image Image.gz
+targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo
 
 $(obj)/Image: vmlinux FORCE
 	$(call if_changed,objcopy)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/actions/s700.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/actions/s700.dtsi
@@ -231,7 +231,7 @@
 
 		pinctrl: pinctrl@e01b0000 {
 			compatible = "actions,s700-pinctrl";
-			reg = <0x0 0xe01b0000 0x0 0x1000>;
+			reg = <0x0 0xe01b0000 0x0 0x100>;
 			clocks = <&cmu CLK_GPIO>;
 			gpio-controller;
 			gpio-ranges = <&pinctrl 0 0 136>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
@@ -127,7 +127,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
@@ -15,7 +15,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc2_pins>;
 	vmmc-supply = <&reg_dcdc1>;
-	vqmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_eldo1>;
 	bus-width = <8>;
 	non-removable;
 	cap-mmc-hw-reset;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
@@ -140,7 +140,7 @@
 &mmc1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc1_pins>;
-	vmmc-supply = <&reg_aldo2>;
+	vmmc-supply = <&reg_dcdc1>;
 	vqmmc-supply = <&reg_dldo4>;
 	mmc-pwrseq = <&wifi_pwrseq>;
 	bus-width = <4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
@@ -129,7 +129,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
@@ -52,7 +52,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-txid";
 	phy-handle = <&ext_rgmii_phy>;
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
@@ -103,8 +103,6 @@
 };
 
 &ehci0 {
-	phys = <&usbphy 0>;
-	phy-names = "usb";
 	status = "okay";
 };
 
@@ -142,6 +140,7 @@
 	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
 	vmmc-supply = <&reg_dcdc1>;
 	vqmmc-supply = <&reg_eldo1>;
+	max-frequency = <200000000>;
 	bus-width = <8>;
 	non-removable;
 	cap-mmc-hw-reset;
@@ -150,8 +149,6 @@
 };
 
 &ohci0 {
-	phys = <&usbphy 0>;
-	phy-names = "usb";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
@@ -55,7 +55,6 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
 	vmmc-supply = <&reg_dcdc1>;
-	non-removable;
 	disable-wp;
 	bus-width = <4>;
 	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -142,6 +142,15 @@
 		clock-output-names = "ext-osc32k";
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
@@ -218,7 +227,7 @@
 
 			display_clocks: clock@0 {
 				compatible = "allwinner,sun50i-a64-de2-clk";
-				reg = <0x0 0x100000>;
+				reg = <0x0 0x10000>;
 				clocks = <&ccu CLK_BUS_DE>,
 					 <&ccu CLK_DE>;
 				clock-names = "bus",
@@ -467,7 +476,7 @@
 			resets = <&ccu RST_BUS_MMC2>;
 			reset-names = "ahb";
 			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-			max-frequency = <200000000>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -521,6 +530,8 @@
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>,
 				 <&ccu RST_BUS_EHCI0>;
+			phys = <&usbphy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
@@ -531,6 +542,8 @@
 			clocks = <&ccu CLK_BUS_OHCI0>,
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>;
+			phys = <&usbphy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
@@ -157,7 +157,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
@@ -164,7 +164,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
@@ -54,21 +54,21 @@
 			enable-method = "psci";
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <1>;
 			enable-method = "psci";
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <2>;
 			enable-method = "psci";
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <3>;
@@ -76,6 +76,15 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
@@ -146,8 +155,7 @@
 				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "gp",
 					  "gpmmu",
 					  "pp",
@@ -158,8 +166,7 @@
 					  "pp2",
 					  "ppmmu2",
 					  "pp3",
-					  "ppmmu3",
-					  "pmu";
+					  "ppmmu3";
 			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
 			clock-names = "bus", "core";
 			resets = <&ccu RST_BUS_GPU>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
@@ -83,7 +83,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&ext_rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_aldo2>;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
@@ -66,7 +66,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&ext_rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_aldo2>;
 	allwinner,rx-delay-ps = <200>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -70,6 +70,15 @@
 		clock-output-names = "ext_osc32k";
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
@@ -323,6 +332,7 @@
 			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&mmc0_pins>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -339,6 +349,7 @@
 			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&mmc1_pins>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -355,6 +366,7 @@
 			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&mmc2_pins>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -524,6 +536,8 @@
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>,
 				 <&ccu RST_BUS_EHCI0>;
+			phys = <&usb2phy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
@@ -534,6 +548,8 @@
 			clocks = <&ccu CLK_BUS_OHCI0>,
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>;
+			phys = <&usb2phy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -61,10 +61,10 @@
 
 	pmu {
 		compatible = "arm,armv8-pmuv3";
-		interrupts = <0 120 8>,
-			     <0 121 8>,
-			     <0 122 8>,
-			     <0 123 8>;
+		interrupts = <0 170 4>,
+			     <0 171 4>,
+			     <0 172 4>,
+			     <0 173 4>;
 		interrupt-affinity = <&cpu0>,
 				     <&cpu1>,
 				     <&cpu2>,
@@ -77,7 +77,7 @@
 		method = "smc";
 	};
 
-	intc: intc@fffc1000 {
+	intc: interrupt-controller@fffc1000 {
 		compatible = "arm,gic-400", "arm,cortex-a15-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
@@ -302,7 +302,7 @@
 			status = "disabled";
 		};
 
-		nand: nand@ffb90000 {
+		nand: nand-controller@ffb90000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "altr,socfpga-denali-nand";
@@ -445,7 +445,7 @@
 			clock-names = "timer";
 		};
 
-		uart0: serial0@ffc02000 {
+		uart0: serial@ffc02000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0xffc02000 0x100>;
 			interrupts = <0 108 4>;
@@ -456,7 +456,7 @@
 			status = "disabled";
 		};
 
-		uart1: serial1@ffc02100 {
+		uart1: serial@ffc02100 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0xffc02100 0x100>;
 			interrupts = <0 109 4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
@@ -155,6 +155,7 @@
 };
 
 &qspi {
+	status = "okay";
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
@@ -1162,7 +1162,7 @@
 
 			toddr_a: audio-controller@100 {
 				compatible = "amlogic,axg-toddr";
-				reg = <0x0 0x100 0x0 0x1c>;
+				reg = <0x0 0x100 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "TODDR_A";
 				interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
@@ -1173,7 +1173,7 @@
 
 			toddr_b: audio-controller@140 {
 				compatible = "amlogic,axg-toddr";
-				reg = <0x0 0x140 0x0 0x1c>;
+				reg = <0x0 0x140 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "TODDR_B";
 				interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
@@ -1184,7 +1184,7 @@
 
 			toddr_c: audio-controller@180 {
 				compatible = "amlogic,axg-toddr";
-				reg = <0x0 0x180 0x0 0x1c>;
+				reg = <0x0 0x180 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "TODDR_C";
 				interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
@@ -1195,7 +1195,7 @@
 
 			frddr_a: audio-controller@1c0 {
 				compatible = "amlogic,axg-frddr";
-				reg = <0x0 0x1c0 0x0 0x1c>;
+				reg = <0x0 0x1c0 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "FRDDR_A";
 				interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
@@ -1206,7 +1206,7 @@
 
 			frddr_b: audio-controller@200 {
 				compatible = "amlogic,axg-frddr";
-				reg = <0x0 0x200 0x0 0x1c>;
+				reg = <0x0 0x200 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "FRDDR_B";
 				interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
@@ -1217,7 +1217,7 @@
 
 			frddr_c: audio-controller@240 {
 				compatible = "amlogic,axg-frddr";
-				reg = <0x0 0x240 0x0 0x1c>;
+				reg = <0x0 0x240 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "FRDDR_C";
 				interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
@@ -1728,18 +1728,18 @@
 		};
 
 		sram: sram@fffc0000 {
-			compatible = "amlogic,meson-axg-sram", "mmio-sram";
+			compatible = "mmio-sram";
 			reg = <0x0 0xfffc0000 0x0 0x20000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0 0x0 0xfffc0000 0x20000>;
 
-			cpu_scp_lpri: scp-shmem@13000 {
+			cpu_scp_lpri: scp-sram@13000 {
 				compatible = "amlogic,meson-axg-scp-shmem";
 				reg = <0x13000 0x400>;
 			};
 
-			cpu_scp_hpri: scp-shmem@13400 {
+			cpu_scp_hpri: scp-sram@13400 {
 				compatible = "amlogic,meson-axg-scp-shmem";
 				reg = <0x13400 0x400>;
 			};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -167,6 +167,8 @@
 				hwrng: rng@218 {
 					compatible = "amlogic,meson-rng";
 					reg = <0x0 0x218 0x0 0x4>;
+					clocks = <&clkc CLKID_RNG0>;
+					clock-names = "core";
 				};
 			};
 
@@ -1509,7 +1511,7 @@
 				toddr_a: audio-controller@100 {
 					compatible = "amlogic,g12a-toddr",
 						     "amlogic,axg-toddr";
-					reg = <0x0 0x100 0x0 0x1c>;
+					reg = <0x0 0x100 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "TODDR_A";
 					interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
@@ -1521,7 +1523,7 @@
 				toddr_b: audio-controller@140 {
 					compatible = "amlogic,g12a-toddr",
 						     "amlogic,axg-toddr";
-					reg = <0x0 0x140 0x0 0x1c>;
+					reg = <0x0 0x140 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "TODDR_B";
 					interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
@@ -1533,7 +1535,7 @@
 				toddr_c: audio-controller@180 {
 					compatible = "amlogic,g12a-toddr",
 						     "amlogic,axg-toddr";
-					reg = <0x0 0x180 0x0 0x1c>;
+					reg = <0x0 0x180 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "TODDR_C";
 					interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
@@ -1545,7 +1547,7 @@
 				frddr_a: audio-controller@1c0 {
 					compatible = "amlogic,g12a-frddr",
 						     "amlogic,axg-frddr";
-					reg = <0x0 0x1c0 0x0 0x1c>;
+					reg = <0x0 0x1c0 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "FRDDR_A";
 					interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
@@ -1557,7 +1559,7 @@
 				frddr_b: audio-controller@200 {
 					compatible = "amlogic,g12a-frddr",
 						     "amlogic,axg-frddr";
-					reg = <0x0 0x200 0x0 0x1c>;
+					reg = <0x0 0x200 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "FRDDR_B";
 					interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
@@ -1569,7 +1571,7 @@
 				frddr_c: audio-controller@240 {
 					compatible = "amlogic,g12a-frddr",
 						     "amlogic,axg-frddr";
-					reg = <0x0 0x240 0x0 0x1c>;
+					reg = <0x0 0x240 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "FRDDR_C";
 					interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
@@ -2365,7 +2367,7 @@
 				reg = <0x0 0xff400000 0x0 0x40000>;
 				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
-				clock-names = "ddr";
+				clock-names = "otg";
 				phys = <&usb2_phy1>;
 				phy-names = "usb2-phy";
 				dr_mode = "peripheral";
@@ -2380,7 +2382,8 @@
 				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
 				dr_mode = "host";
 				snps,dis_u2_susphy_quirk;
-				snps,quirk-frame-length-adjustment;
+				snps,quirk-frame-length-adjustment = <0x20>;
+				snps,parkmode-disable-ss-quirk;
 			};
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
@@ -340,7 +340,7 @@
 		eee-broken-1000t;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
 
 		interrupt-parent = <&gpio_intc>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi
@@ -152,6 +152,10 @@
 	clock-latency = <50000>;
 };
 
+&frddr_a {
+	status = "okay";
+};
+
 &frddr_b {
 	status = "okay";
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -345,20 +345,20 @@
 		};
 
 		sram: sram@c8000000 {
-			compatible = "amlogic,meson-gx-sram", "amlogic,meson-gxbb-sram", "mmio-sram";
+			compatible = "mmio-sram";
 			reg = <0x0 0xc8000000 0x0 0x14000>;
 
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0 0x0 0xc8000000 0x14000>;
 
-			cpu_scp_lpri: scp-shmem@0 {
-				compatible = "amlogic,meson-gx-scp-shmem", "amlogic,meson-gxbb-scp-shmem";
+			cpu_scp_lpri: scp-sram@0 {
+				compatible = "amlogic,meson-gxbb-scp-shmem";
 				reg = <0x13000 0x400>;
 			};
 
-			cpu_scp_hpri: scp-shmem@200 {
-				compatible = "amlogic,meson-gx-scp-shmem", "amlogic,meson-gxbb-scp-shmem";
+			cpu_scp_hpri: scp-sram@200 {
+				compatible = "amlogic,meson-gxbb-scp-shmem";
 				reg = <0x13400 0x400>;
 			};
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
@@ -165,7 +165,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -138,7 +138,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
@@ -296,7 +296,7 @@
 };
 
 &usb0_phy {
-	status = "okay";
+	status = "disabled";
 	phy-supply = <&usb_otg_pwr>;
 };
 
@@ -306,7 +306,7 @@
 };
 
 &usb0 {
-	status = "okay";
+	status = "disabled";
 };
 
 &usb1 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -126,7 +126,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
@@ -147,7 +147,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 		};
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
@@ -9,7 +9,7 @@
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
@@ -9,7 +9,7 @@
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 BayLibre SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include "meson-gxl-s905x.dtsi"
+
+/ {
+	compatible = "amlogic,s805x", "amlogic,meson-gxl";
+};
+
+/* The S805X Package doesn't seem to handle the 744MHz OPP correctly */
+&mali {
+	assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
+			  <&clkc CLKID_MALI_0>,
+			  <&clkc CLKID_MALI>; /* Glitch free mux */
+	assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
+				 <0>, /* Do Nothing */
+				 <&clkc CLKID_MALI_0>;
+	assigned-clock-rates = <0>, /* Do Nothing */
+			       <666666666>,
+			       <0>; /* Do Nothing */
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
@@ -82,7 +82,7 @@
 
 		/* External PHY reset is shared with internal PHY Led signal */
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 		interrupt-parent = <&gpio_intc>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -33,11 +33,9 @@
 
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		poll-interval = <100>;
 
-		button@0 {
+		power-button {
 			label = "power";
 			linux,code = <KEY_POWER>;
 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
@@ -192,6 +190,9 @@
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+		max-speed = <2000000>;
+		clocks = <&wifi32k>;
+		clock-names = "lpo";
 	};
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -288,6 +288,11 @@
 	};
 };
 
+&hwrng {
+	clocks = <&clkc CLKID_RNG0>;
+	clock-names = "core";
+};
+
 &i2c_A {
 	clocks = <&clkc CLKID_I2C>;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -251,7 +251,7 @@
 		reg = <0>;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 		interrupt-parent = <&gpio_intc>;
@@ -327,7 +327,7 @@
 	#size-cells = <0>;
 
 	bus-width = <4>;
-	max-frequency = <50000000>;
+	max-frequency = <60000000>;
 
 	non-removable;
 	disable-wp;
@@ -395,7 +395,7 @@
 		#size-cells = <1>;
 		compatible = "winbond,w25q16", "jedec,spi-nor";
 		reg = <0>;
-		spi-max-frequency = <3000000>;
+		spi-max-frequency = <104000000>;
 	};
 };
 
@@ -409,6 +409,9 @@
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+		max-speed = <2000000>;
+		clocks = <&wifi32k>;
+		clock-names = "lpo";
 	};
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -112,7 +112,7 @@
 		max-speed = <1000>;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
@@ -64,7 +64,7 @@
 
 		/* External PHY reset is shared with internal PHY Led signal */
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 		interrupt-parent = <&gpio_intc>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
@@ -114,7 +114,7 @@
 		max-speed = <1000>;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
@@ -43,13 +43,13 @@
 
 		white {
 			label = "vim3:white:sys";
-			gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
 		};
 
 		red {
 			label = "vim3:red";
-			gpios = <&gpio_expander 5 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio_expander 5 GPIO_ACTIVE_HIGH>;
 		};
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
@@ -361,6 +361,9 @@
 
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
+		interrupt-parent = <&gpio_intc>;
+		interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "host-wakeup";
 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
 		max-speed = <2000000>;
 		clocks = <&wifi32k>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
@@ -90,7 +90,7 @@
 			opp-microvolt = <790000>;
 		};
 
-		opp-1512000000 {
+		opp-1500000000 {
 			opp-hz = /bits/ 64 <1500000000>;
 			opp-microvolt = <800000>;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi
@@ -8,7 +8,7 @@
 	gic: interrupt-controller@2c001000 {
 		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
-		#address-cells = <2>;
+		#address-cells = <1>;
 		interrupt-controller;
 		reg = <0x0 0x2c001000 0 0x1000>,
 		      <0x0 0x2c002000 0 0x2000>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi
@@ -8,9 +8,9 @@
 	gic: interrupt-controller@2f000000 {
 		compatible = "arm,gic-v3";
 		#interrupt-cells = <3>;
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x0 0x2f000000 0x100000>;
 		interrupt-controller;
 		reg =	<0x0 0x2f000000 0x0 0x10000>,
 			<0x0 0x2f100000 0x0 0x200000>,
@@ -22,7 +22,7 @@
 		its: its@2f020000 {
 			compatible = "arm,gic-v3-its";
 			msi-controller;
-			reg = <0x0 0x2f020000 0x0 0x20000>;
+			reg = <0x20000 0x20000>;
 		};
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/foundation-v8.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/foundation-v8.dtsi
@@ -107,51 +107,51 @@
 
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 63>;
-		interrupt-map = <0 0  0 &gic 0 0 GIC_SPI  0 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  1 &gic 0 0 GIC_SPI  1 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  2 &gic 0 0 GIC_SPI  2 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  3 &gic 0 0 GIC_SPI  3 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  4 &gic 0 0 GIC_SPI  4 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  5 &gic 0 0 GIC_SPI  5 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  6 &gic 0 0 GIC_SPI  6 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  7 &gic 0 0 GIC_SPI  7 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  8 &gic 0 0 GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  9 &gic 0 0 GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 10 &gic 0 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 11 &gic 0 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 12 &gic 0 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 13 &gic 0 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 14 &gic 0 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 15 &gic 0 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 16 &gic 0 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 17 &gic 0 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 18 &gic 0 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 19 &gic 0 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 20 &gic 0 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 21 &gic 0 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 22 &gic 0 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 23 &gic 0 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 24 &gic 0 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 25 &gic 0 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 26 &gic 0 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 27 &gic 0 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 28 &gic 0 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 29 &gic 0 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 30 &gic 0 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 31 &gic 0 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 32 &gic 0 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 33 &gic 0 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 34 &gic 0 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 35 &gic 0 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 36 &gic 0 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 37 &gic 0 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 38 &gic 0 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 39 &gic 0 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 40 &gic 0 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 41 &gic 0 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 42 &gic 0 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0  0 &gic 0 GIC_SPI  0 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  1 &gic 0 GIC_SPI  1 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  2 &gic 0 GIC_SPI  2 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  3 &gic 0 GIC_SPI  3 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  4 &gic 0 GIC_SPI  4 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  5 &gic 0 GIC_SPI  5 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  6 &gic 0 GIC_SPI  6 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  7 &gic 0 GIC_SPI  7 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  8 &gic 0 GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  9 &gic 0 GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 10 &gic 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 11 &gic 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 12 &gic 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 13 &gic 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 14 &gic 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 15 &gic 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 16 &gic 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 17 &gic 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 18 &gic 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 19 &gic 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 20 &gic 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 21 &gic 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 22 &gic 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 23 &gic 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 24 &gic 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 25 &gic 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 26 &gic 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 27 &gic 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 28 &gic 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 29 &gic 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 30 &gic 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 31 &gic 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 32 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 33 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 34 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 35 &gic 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 36 &gic 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 37 &gic 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 38 &gic 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 39 &gic 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 40 &gic 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 41 &gic 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 42 &gic 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
 
-		ethernet@2,02000000 {
+		ethernet@202000000 {
 			compatible = "smsc,lan91c111";
 			reg = <2 0x02000000 0x10000>;
 			interrupts = <15>;
@@ -178,7 +178,7 @@
 			clock-output-names = "v2m:refclk32khz";
 		};
 
-		iofpga@3,00000000 {
+		iofpga@300000000 {
 			compatible = "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/fvp-base-revc.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/fvp-base-revc.dts
@@ -161,10 +161,10 @@
 		bus-range = <0x0 0x1>;
 		reg = <0x0 0x40000000 0x0 0x10000000>;
 		ranges = <0x2000000 0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>;
-		interrupt-map = <0 0 0 1 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 2 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 3 &gic GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 4 &gic GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 2 &gic 0 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 3 &gic 0 0 GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 4 &gic 0 0 GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-map-mask = <0x0 0x0 0x0 0x7>;
 		msi-map = <0x0 &its 0x0 0x10000>;
 		iommu-map = <0x0 &smmu 0x0 0x10000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/juno-base.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/juno-base.dtsi
@@ -6,7 +6,6 @@
 	/*
 	 *  Devices shared by all Juno boards
 	 */
-	dma-ranges = <0 0 0 0 0x100 0>;
 
 	memtimer: timer@2a810000 {
 		compatible = "arm,armv7-timer-mem";
@@ -63,35 +62,35 @@
 		      <0x0 0x2c02f000 0 0x2000>,
 		      <0x0 0x2c04f000 0 0x2000>,
 		      <0x0 0x2c06f000 0 0x2000>;
-		#address-cells = <2>;
+		#address-cells = <1>;
 		#interrupt-cells = <3>;
-		#size-cells = <2>;
+		#size-cells = <1>;
 		interrupt-controller;
 		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
-		ranges = <0 0 0 0x2c1c0000 0 0x40000>;
+		ranges = <0 0 0x2c1c0000 0x40000>;
 
 		v2m_0: v2m@0 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0 0 0x10000>;
+			reg = <0 0x10000>;
 		};
 
 		v2m@10000 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0x10000 0 0x10000>;
+			reg = <0x10000 0x10000>;
 		};
 
 		v2m@20000 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0x20000 0 0x10000>;
+			reg = <0x20000 0x10000>;
 		};
 
 		v2m@30000 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0x30000 0 0x10000>;
+			reg = <0x30000 0x10000>;
 		};
 	};
 
@@ -520,10 +519,10 @@
 			 <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 0 7>;
-		interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 2 &gic 0 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 3 &gic 0 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 4 &gic 0 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0 0 1 &gic 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 2 &gic 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 3 &gic 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 4 &gic 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
 		msi-parent = <&v2m_0>;
 		status = "disabled";
 		iommu-map-mask = <0x0>;	/* RC has no means to output PCI RID */
@@ -787,19 +786,19 @@
 
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 15>;
-		interrupt-map = <0 0  0 &gic 0 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  1 &gic 0 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  2 &gic 0 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  3 &gic 0 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  4 &gic 0 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  5 &gic 0 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  6 &gic 0 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  7 &gic 0 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  8 &gic 0 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  9 &gic 0 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 10 &gic 0 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 11 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 12 &gic 0 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0  0 &gic 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  1 &gic 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  2 &gic 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  3 &gic 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  4 &gic 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  5 &gic 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  6 &gic 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  7 &gic 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  8 &gic 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  9 &gic 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 10 &gic 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 11 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 12 &gic 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
 	};
 
 	site2: tlx@60000000 {
@@ -809,6 +808,6 @@
 		ranges = <0 0 0x60000000 0x10000000>;
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0>;
-		interrupt-map = <0 0 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/juno-clocks.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/juno-clocks.dtsi
@@ -8,10 +8,10 @@
  */
 / {
 	/* SoC fixed clocks */
-	soc_uartclk: refclk7273800hz {
+	soc_uartclk: refclk7372800hz {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
-		clock-frequency = <7273800>;
+		clock-frequency = <7372800>;
 		clock-output-names = "juno:uartclk";
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
@@ -103,7 +103,7 @@
 				};
 			};
 
-			flash@0,00000000 {
+			flash@0 {
 				/* 2 * 32MiB NOR Flash memory mounted on CS0 */
 				compatible = "arm,vexpress-flash", "cfi-flash";
 				reg = <0 0x00000000 0x04000000>;
@@ -120,7 +120,7 @@
 				};
 			};
 
-			ethernet@2,00000000 {
+			ethernet@200000000 {
 				compatible = "smsc,lan9118", "smsc,lan9115";
 				reg = <2 0x00000000 0x10000>;
 				interrupts = <3>;
@@ -133,7 +133,7 @@
 				vddvario-supply = <&mb_fixed_3v3>;
 			};
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				compatible = "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi
@@ -9,7 +9,7 @@
 		motherboard {
 			arm,v2m-memory-map = "rs2";
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				virtio-p9@140000 {
 					compatible = "virtio,mmio";
 					reg = <0x140000 0x200>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
@@ -17,14 +17,14 @@
 			#interrupt-cells = <1>;
 			ranges;
 
-			flash@0,00000000 {
+			flash@0 {
 				compatible = "arm,vexpress-flash", "cfi-flash";
 				reg = <0 0x00000000 0x04000000>,
 				      <4 0x00000000 0x04000000>;
 				bank-width = <4>;
 			};
 
-			ethernet@2,02000000 {
+			ethernet@202000000 {
 				compatible = "smsc,lan91c111";
 				reg = <2 0x02000000 0x10000>;
 				interrupts = <15>;
@@ -51,7 +51,7 @@
 				clock-output-names = "v2m:refclk32khz";
 			};
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				compatible = "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
@@ -745,7 +745,7 @@
 		};
 
 		qspi: spi@66470200 {
-			compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
+			compatible = "brcm,spi-ns2-qspi", "brcm,spi-bcm-qspi";
 			reg = <0x66470200 0x184>,
 				<0x66470000 0x124>,
 				<0x67017408 0x004>,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
@@ -4,21 +4,26 @@
  */
 	usb {
 		compatible = "simple-bus";
-		dma-ranges;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges = <0x0 0x0 0x68500000 0x00400000>;
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
+
+		/*
+		 * Internally, USB bus to the interconnect can only address up
+		 * to 40-bit
+		 */
+		dma-ranges = <0 0 0 0 0x100 0x0>;
 
 		usbphy0: usb-phy@0 {
 			compatible = "brcm,sr-usb-combo-phy";
-			reg = <0x00000000 0x100>;
+			reg = <0x0 0x00000000 0x0 0x100>;
 			#phy-cells = <1>;
 			status = "disabled";
 		};
 
 		xhci0: usb@1000 {
 			compatible = "generic-xhci";
-			reg = <0x00001000 0x1000>;
+			reg = <0x0 0x00001000 0x0 0x1000>;
 			interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy0 1>, <&usbphy0 0>;
 			phy-names = "phy0", "phy1";
@@ -28,7 +33,7 @@
 
 		bdc0: usb@2000 {
 			compatible = "brcm,bdc-v0.16";
-			reg = <0x00002000 0x1000>;
+			reg = <0x0 0x00002000 0x0 0x1000>;
 			interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy0 0>, <&usbphy0 1>;
 			phy-names = "phy0", "phy1";
@@ -38,21 +43,21 @@
 
 		usbphy1: usb-phy@10000 {
 			compatible = "brcm,sr-usb-combo-phy";
-			reg = <0x00010000 0x100>;
+			reg = <0x0 0x00010000 0x0 0x100>;
 			#phy-cells = <1>;
 			status = "disabled";
 		};
 
 		usbphy2: usb-phy@20000 {
 			compatible = "brcm,sr-usb-hs-phy";
-			reg = <0x00020000 0x100>;
+			reg = <0x0 0x00020000 0x0 0x100>;
 			#phy-cells = <0>;
 			status = "disabled";
 		};
 
 		xhci1: usb@11000 {
 			compatible = "generic-xhci";
-			reg = <0x00011000 0x1000>;
+			reg = <0x0 0x00011000 0x0 0x1000>;
 			interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy1 1>, <&usbphy2>, <&usbphy1 0>;
 			phy-names = "phy0", "phy1", "phy2";
@@ -62,7 +67,7 @@
 
 		bdc1: usb@21000 {
 			compatible = "brcm,bdc-v0.16";
-			reg = <0x00021000 0x1000>;
+			reg = <0x0 0x00021000 0x0 0x1000>;
 			interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy2>;
 			phy-names = "phy0";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -389,7 +389,7 @@
 	s2mps13-pmic@66 {
 		compatible = "samsung,s2mps13-pmic";
 		interrupt-parent = <&gpa0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x66>;
 		samsung,s2mps11-wrstbi-ground;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos5433.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/exynos/exynos5433.dtsi
@@ -18,8 +18,8 @@
 
 / {
 	compatible = "samsung,exynos5433";
-	#address-cells = <1>;
-	#size-cells = <1>;
+	#address-cells = <2>;
+	#size-cells = <2>;
 
 	interrupt-parent = <&gic>;
 
@@ -311,7 +311,7 @@
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
-		ranges;
+		ranges = <0x0 0x0 0x0 0x18000000>;
 
 		chipid@10000000 {
 			compatible = "samsung,exynos4210-chipid";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
@@ -90,7 +90,7 @@
 	s2mps15_pmic@66 {
 		compatible = "samsung,s2mps15-pmic";
 		reg = <0x66>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		interrupt-parent = <&gpa0>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pmic_irq>;
@@ -157,6 +157,7 @@
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1150000>;
 				regulator-enable-ramp-delay = <125>;
+				regulator-always-on;
 			};
 
 			ldo8_reg: LDO8 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos7.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/exynos/exynos7.dtsi
@@ -12,8 +12,8 @@
 / {
 	compatible = "samsung,exynos7";
 	interrupt-parent = <&gic>;
-	#address-cells = <1>;
-	#size-cells = <1>;
+	#address-cells = <2>;
+	#size-cells = <2>;
 
 	aliases {
 		pinctrl0 = &pinctrl_alive;
@@ -90,15 +90,17 @@
 	};
 
 	psci {
-		compatible = "arm,psci-0.2";
+		compatible = "arm,psci";
 		method = "smc";
+		cpu_off = <0x84000002>;
+		cpu_on = <0xC4000003>;
 	};
 
 	soc: soc {
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
-		ranges;
+		ranges = <0 0 0 0x18000000>;
 
 		chipid@10000000 {
 			compatible = "samsung,exynos4210-chipid";
@@ -494,13 +496,6 @@
 		pmu_system_controller: system-controller@105c0000 {
 			compatible = "samsung,exynos7-pmu", "syscon";
 			reg = <0x105c0000 0x5000>;
-
-			reboot: syscon-reboot {
-				compatible = "syscon-reboot";
-				regmap = <&pmu_system_controller>;
-				offset = <0x0400>;
-				mask = <0x1>;
-			};
 		};
 
 		rtc: rtc@10590000 {
@@ -650,3 +645,4 @@
 };
 
 #include "exynos7-pinctrl.dtsi"
+#include "arm/exynos-syscon-restart.dtsi"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -102,8 +102,8 @@
 
 	reboot {
 		compatible ="syscon-reboot";
-		regmap = <&dcfg>;
-		offset = <0xb0>;
+		regmap = <&rst>;
+		offset = <0>;
 		mask = <0x02>;
 	};
 
@@ -158,7 +158,13 @@
 		dcfg: syscon@1e00000 {
 			compatible = "fsl,ls1028a-dcfg", "syscon";
 			reg = <0x0 0x1e00000 0x0 0x10000>;
-			big-endian;
+			little-endian;
+		};
+
+		rst: syscon@1e60000 {
+			compatible = "syscon";
+			reg = <0x0 0x1e60000 0x0 0x10000>;
+			little-endian;
 		};
 
 		scfg: syscon@1fc0000 {
@@ -567,7 +573,7 @@
 					       0x00010004 0x0000003d
 					       0x00010005 0x00000045
 					       0x00010006 0x0000004d
-					       0x00010007 0x00000045
+					       0x00010007 0x00000055
 					       0x00010008 0x0000005e
 					       0x00010009 0x00000066
 					       0x0001000a 0x0000006e
@@ -667,7 +673,7 @@
 			ethernet@0,4 {
 				compatible = "fsl,enetc-ptp";
 				reg = <0x000400 0 0 0 0>;
-				clocks = <&clockgen 4 0>;
+				clocks = <&clockgen 2 3>;
 				little-endian;
 			};
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi
@@ -20,6 +20,8 @@
 };
 
 &fman0 {
+	fsl,erratum-a050385;
+
 	/* these aliases provide the FMan ports mapping */
 	enet0: ethernet@e0000 {
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
@@ -119,12 +119,12 @@
 
 	ethernet@e4000 {
 		phy-handle = <&rgmii_phy1>;
-		phy-connection-type = "rgmii-txid";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e6000 {
 		phy-handle = <&rgmii_phy2>;
-		phy-connection-type = "rgmii-txid";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e8000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
@@ -127,12 +127,12 @@
 &fman0 {
 	ethernet@e4000 {
 		phy-handle = <&rgmii_phy1>;
-		phy-connection-type = "rgmii";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e6000 {
 		phy-handle = <&rgmii_phy2>;
-		phy-connection-type = "rgmii";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e8000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -304,7 +304,7 @@
 
 		dcfg: dcfg@1ee0000 {
 			compatible = "fsl,ls1046a-dcfg", "syscon";
-			reg = <0x0 0x1ee0000 0x0 0x10000>;
+			reg = <0x0 0x1ee0000 0x0 0x1000>;
 			big-endian;
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
@@ -62,6 +62,8 @@
 
 		cpudai: simple-audio-card,cpu {
 			sound-dai = <&sai3>;
+			dai-tdm-slot-num = <2>;
+			dai-tdm-slot-width = <32>;
 		};
 
 		simple-audio-card,codec {
@@ -229,7 +231,7 @@
 
 			ldo1_reg: LDO1 {
 				regulator-name = "LDO1";
-				regulator-min-microvolt = <3000000>;
+				regulator-min-microvolt = <1600000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
 				regulator-always-on;
@@ -237,7 +239,7 @@
 
 			ldo2_reg: LDO2 {
 				regulator-name = "LDO2";
-				regulator-min-microvolt = <900000>;
+				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <900000>;
 				regulator-boot-on;
 				regulator-always-on;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8mm.dtsi
@@ -126,7 +126,7 @@
 
 		opp-1600000000 {
 			opp-hz = /bits/ 64 <1600000000>;
-			opp-microvolt = <900000>;
+			opp-microvolt = <950000>;
 			opp-supported-hw = <0xc>, <0x7>;
 			clock-latency-ns = <150000>;
 			opp-suspend;
@@ -479,14 +479,18 @@
 						<&clk IMX8MM_CLK_AUDIO_AHB>,
 						<&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
 						<&clk IMX8MM_SYS_PLL3>,
-						<&clk IMX8MM_VIDEO_PLL1>;
+						<&clk IMX8MM_VIDEO_PLL1>,
+						<&clk IMX8MM_AUDIO_PLL1>,
+						<&clk IMX8MM_AUDIO_PLL2>;
 				assigned-clock-parents = <&clk IMX8MM_SYS_PLL3_OUT>,
 							 <&clk IMX8MM_SYS_PLL1_800M>;
 				assigned-clock-rates = <0>,
 							<400000000>,
 							<400000000>,
 							<750000000>,
-							<594000000>;
+							<594000000>,
+							<393216000>,
+							<361267200>;
 			};
 
 			src: reset-controller@30390000 {
@@ -741,7 +745,7 @@
 				reg = <0x30bd0000 0x10000>;
 				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MM_CLK_SDMA1_ROOT>,
-					 <&clk IMX8MM_CLK_SDMA1_ROOT>;
+					 <&clk IMX8MM_CLK_AHB>;
 				clock-names = "ipg", "ahb";
 				#dma-cells = <3>;
 				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
@@ -268,7 +268,7 @@
 
 			ldo1_reg: LDO1 {
 				regulator-name = "LDO1";
-				regulator-min-microvolt = <3000000>;
+				regulator-min-microvolt = <1600000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
 				regulator-always-on;
@@ -276,7 +276,7 @@
 
 			ldo2_reg: LDO2 {
 				regulator-name = "LDO2";
-				regulator-min-microvolt = <900000>;
+				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <900000>;
 				regulator-boot-on;
 				regulator-always-on;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mn.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8mn.dtsi
@@ -616,7 +616,7 @@
 				reg = <0x30bd0000 0x10000>;
 				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MN_CLK_SDMA1_ROOT>,
-					 <&clk IMX8MN_CLK_SDMA1_ROOT>;
+					 <&clk IMX8MN_CLK_AHB>;
 				clock-names = "ipg", "ahb";
 				#dma-cells = <3>;
 				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
@@ -677,28 +677,6 @@
 				#index-cells = <1>;
 				reg = <0x32e40200 0x200>;
 			};
-
-			usbotg2: usb@32e50000 {
-				compatible = "fsl,imx8mn-usb", "fsl,imx7d-usb";
-				reg = <0x32e50000 0x200>;
-				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
-				clock-names = "usb1_ctrl_root_clk";
-				assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>,
-						  <&clk IMX8MN_CLK_USB_CORE_REF>;
-				assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>,
-							 <&clk IMX8MN_SYS_PLL1_100M>;
-				fsl,usbphy = <&usbphynop2>;
-				fsl,usbmisc = <&usbmisc2 0>;
-				status = "disabled";
-			};
-
-			usbmisc2: usbmisc@32e50200 {
-				compatible = "fsl,imx8mn-usbmisc", "fsl,imx7d-usbmisc";
-				#index-cells = <1>;
-				reg = <0x32e50200 0x200>;
-			};
-
 		};
 
 		dma_apbh: dma-controller@33000000 {
@@ -744,14 +722,6 @@
 		compatible = "usb-nop-xceiv";
 		clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
 		assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
-		assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
-		clock-names = "main_clk";
-	};
-
-	usbphynop2: usbphynop2 {
-		compatible = "usb-nop-xceiv";
-		clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
-		assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
 		assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
 		clock-names = "main_clk";
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -421,7 +421,7 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_imu>;
 		interrupt-parent = <&gpio3>;
-		interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+		interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
 		vdd-supply = <&reg_3v3_p>;
 		vddio-supply = <&reg_3v3_p>;
 	};
@@ -743,6 +743,7 @@
 };
 
 &usb3_phy0 {
+	vbus-supply = <&reg_5v_p>;
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -349,7 +349,7 @@
 			tmu: tmu@30260000 {
 				compatible = "fsl,imx8mq-tmu";
 				reg = <0x30260000 0x10000>;
-				interrupt = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MQ_CLK_TMU_ROOT>;
 				little-endian;
 				fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
@@ -516,6 +516,7 @@
 			gpc: gpc@303a0000 {
 				compatible = "fsl,imx8mq-gpc";
 				reg = <0x303a0000 0x10000>;
+				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-parent = <&gic>;
 				interrupt-controller;
 				#interrupt-cells = <3>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -52,11 +52,6 @@
 			compatible = "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
 		};
-
-		ethphy1: ethernet-phy@1 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <1>;
-		};
 	};
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
@@ -530,6 +530,17 @@
 		status = "ok";
 		compatible = "adi,adv7533";
 		reg = <0x39>;
+		adi,dsi-lanes = <4>;
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+			};
+			port@1 {
+				reg = <1>;
+			};
+		};
 	};
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
@@ -516,7 +516,7 @@
 		reg = <0x39>;
 		interrupt-parent = <&gpio1>;
 		interrupts = <1 2>;
-		pd-gpio = <&gpio0 4 0>;
+		pd-gpios = <&gpio0 4 0>;
 		adi,dsi-lanes = <4>;
 		#sound-dai-cells = <0>;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
@@ -47,10 +47,10 @@
 
 	pmu {
 		compatible = "arm,armv8-pmuv3";
-		interrupts = <0 120 8>,
-			     <0 121 8>,
-			     <0 122 8>,
-			     <0 123 8>;
+		interrupts = <0 170 4>,
+			     <0 171 4>,
+			     <0 172 4>,
+			     <0 173 4>;
 		interrupt-affinity = <&cpu0>,
 				     <&cpu1>,
 				     <&cpu2>,
@@ -82,7 +82,7 @@
 		ranges = <0 0 0 0xffffffff>;
 
 		gmac0: ethernet@ff800000 {
-			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac";
+			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.74a", "snps,dwmac";
 			reg = <0xff800000 0x2000>;
 			interrupts = <0 90 4>;
 			interrupt-names = "macirq";
@@ -97,7 +97,7 @@
 		};
 
 		gmac1: ethernet@ff802000 {
-			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac";
+			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.74a", "snps,dwmac";
 			reg = <0xff802000 0x2000>;
 			interrupts = <0 91 4>;
 			interrupt-names = "macirq";
@@ -112,7 +112,7 @@
 		};
 
 		gmac2: ethernet@ff804000 {
-			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac";
+			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.74a", "snps,dwmac";
 			reg = <0xff804000 0x2000>;
 			interrupts = <0 92 4>;
 			interrupt-names = "macirq";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
@@ -19,6 +19,16 @@
 	model = "Globalscale Marvell ESPRESSOBin Board";
 	compatible = "globalscale,espressobin", "marvell,armada3720", "marvell,armada3710";
 
+	aliases {
+		ethernet0 = &eth0;
+		/* for dsa slave device */
+		ethernet1 = &switch0port1;
+		ethernet2 = &switch0port2;
+		ethernet3 = &switch0port3;
+		serial0 = &uart0;
+		serial1 = &uart1;
+	};
+
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
@@ -141,7 +151,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			port@0 {
+			switch0port0: port@0 {
 				reg = <0>;
 				label = "cpu";
 				ethernet = <&eth0>;
@@ -152,19 +162,19 @@
 				};
 			};
 
-			port@1 {
+			switch0port1: port@1 {
 				reg = <1>;
 				label = "wan";
 				phy-handle = <&switch0phy0>;
 			};
 
-			port@2 {
+			switch0port2: port@2 {
 				reg = <2>;
 				label = "lan0";
 				phy-handle = <&switch0phy1>;
 			};
 
-			port@3 {
+			switch0port3: port@3 {
 				reg = <3>;
 				label = "lan1";
 				phy-handle = <&switch0phy2>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -95,7 +95,7 @@
 	};
 
 	sfp: sfp {
-		compatible = "sff,sfp+";
+		compatible = "sff,sfp";
 		i2c-bus = <&i2c0>;
 		los-gpio = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
 		tx-fault-gpio = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
@@ -144,7 +144,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
 	phy-mode = "rgmii-id";
-	phy = <&phy1>;
+	phy-handle = <&phy1>;
 	status = "okay";
 };
 
@@ -171,6 +171,8 @@
 	marvell,pad-type = "sd";
 	vqmmc-supply = <&vsdio_reg>;
 	mmc-pwrseq = <&sdhci1_pwrseq>;
+	/* forbid SDR104 for FCC purposes */
+	sdhci-caps-mask = <0x2 0x0>;
 	status = "okay";
 };
 
@@ -200,7 +202,7 @@
 			};
 
 			partition@20000 {
-				label = "u-boot";
+				label = "a53-firmware";
 				reg = <0x20000 0x160000>;
 			};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -143,6 +143,7 @@
 	phy-mode = "sgmii";
 	status = "okay";
 	managed = "in-band-status";
+	phys = <&comphy1 0>;
 	sfp = <&sfp_eth0>;
 };
 
@@ -150,11 +151,14 @@
 	phy-mode = "sgmii";
 	status = "okay";
 	managed = "in-band-status";
+	phys = <&comphy0 1>;
 	sfp = <&sfp_eth1>;
 };
 
 &usb3 {
 	status = "okay";
+	phys = <&usb2_utmi_otg_phy>;
+	phy-names = "usb2-utmi-otg-phy";
 };
 
 &uart0 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
@@ -367,6 +367,7 @@
 		pinctrl-0 = <&cp0_copper_eth_phy_reset>;
 		reset-gpios = <&cp0_gpio2 11 GPIO_ACTIVE_LOW>;
 		reset-assert-us = <10000>;
+		reset-deassert-us = <10000>;
 	};
 
 	switch0: switch0@4 {
@@ -408,6 +409,8 @@
 				reg = <5>;
 				label = "cpu";
 				ethernet = <&cp1_eth2>;
+				phy-mode = "2500base-x";
+				managed = "in-band-status";
 			};
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
@@ -21,6 +21,7 @@
 			reg = <0x000>;
 			enable-method = "psci";
 			#cooling-cells = <2>;
+			clocks = <&cpu_clk 0>;
 		};
 		cpu1: cpu@1 {
 			device_type = "cpu";
@@ -28,6 +29,7 @@
 			reg = <0x001>;
 			enable-method = "psci";
 			#cooling-cells = <2>;
+			clocks = <&cpu_clk 0>;
 		};
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
@@ -438,10 +438,10 @@
 
 		CP110_LABEL(nand_controller): nand@720000 {
 			/*
-			* Due to the limitation of the pins available
-			* this controller is only usable on the CPM
-			* for A7K and on the CPS for A8K.
-			*/
+			 * Due to the limitation of the pins available
+			 * this controller is only usable on the CPM
+			 * for A7K and on the CPS for A8K.
+			 */
 			compatible = "marvell,armada-8k-nand-controller",
 				"marvell,armada370-nand-controller";
 			reg = <0x720000 0x54>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -686,6 +686,8 @@
 		clocks = <&pericfg CLK_PERI_MSDC30_0_PD>,
 			 <&topckgen CLK_TOP_MSDC50_0_SEL>;
 		clock-names = "source", "hclk";
+		resets = <&pericfg MT7622_PERI_MSDC0_SW_RST>;
+		reset-names = "hrst";
 		status = "disabled";
 	};
 
@@ -696,6 +698,8 @@
 		clocks = <&pericfg CLK_PERI_MSDC30_1_PD>,
 			 <&topckgen CLK_TOP_AXI_SEL>;
 		clock-names = "source", "hclk";
+		resets = <&pericfg MT7622_PERI_MSDC1_SW_RST>;
+		reset-names = "hrst";
 		status = "disabled";
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -238,21 +238,21 @@
 		cpu_on	      = <0x84000003>;
 	};
 
-	clk26m: oscillator@0 {
+	clk26m: oscillator0 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <26000000>;
 		clock-output-names = "clk26m";
 	};
 
-	clk32k: oscillator@1 {
+	clk32k: oscillator1 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <32000>;
 		clock-output-names = "clk32k";
 	};
 
-	cpum_ck: oscillator@2 {
+	cpum_ck: oscillator2 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <0>;
@@ -268,19 +268,19 @@
 			sustainable-power = <1500>; /* milliwatts */
 
 			trips {
-				threshold: trip-point@0 {
+				threshold: trip-point0 {
 					temperature = <68000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
 
-				target: trip-point@1 {
+				target: trip-point1 {
 					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
 
-				cpu_crit: cpu_crit@0 {
+				cpu_crit: cpu_crit0 {
 					temperature = <115000>;
 					hysteresis = <2000>;
 					type = "critical";
@@ -288,13 +288,13 @@
 			};
 
 			cooling-maps {
-				map@0 {
+				map0 {
 					trip = <&target>;
 					cooling-device = <&cpu0 0 0>,
 							 <&cpu1 0 0>;
 					contribution = <3072>;
 				};
-				map@1 {
+				map1 {
 					trip = <&target>;
 					cooling-device = <&cpu2 0 0>,
 							 <&cpu3 0 0>;
@@ -308,7 +308,7 @@
 		#address-cells = <2>;
 		#size-cells = <2>;
 		ranges;
-		vpu_dma_reserved: vpu_dma_mem_region {
+		vpu_dma_reserved: vpu_dma_mem_region@b7000000 {
 			compatible = "shared-dma-pool";
 			reg = <0 0xb7000000 0 0x500000>;
 			alignment = <0x1000>;
@@ -360,7 +360,7 @@
 			reg = <0 0x10005000 0 0x1000>;
 		};
 
-		pio: pinctrl@10005000 {
+		pio: pinctrl@1000b000 {
 			compatible = "mediatek,mt8173-pinctrl";
 			reg = <0 0x1000b000 0 0x1000>;
 			mediatek,pctl-regmap = <&syscfg_pctl_a>;
@@ -567,7 +567,7 @@
 			status = "disabled";
 		};
 
-		gic: interrupt-controller@10220000 {
+		gic: interrupt-controller@10221000 {
 			compatible = "arm,gic-400";
 			#interrupt-cells = <3>;
 			interrupt-parent = <&gic>;
@@ -1397,8 +1397,8 @@
 				      "venc_lt_sel";
 			assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>,
 					  <&topckgen CLK_TOP_VENC_LT_SEL>;
-			assigned-clock-parents = <&topckgen CLK_TOP_VENCPLL_D2>,
-						 <&topckgen CLK_TOP_UNIVPLL1_D2>;
+			assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>,
+						 <&topckgen CLK_TOP_VCODECPLL_370P5>;
 		};
 
 		vencltsys: clock-controller@19000000 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
@@ -10,18 +10,6 @@
 	model = "NVIDIA Jetson TX2 Developer Kit";
 	compatible = "nvidia,p2771-0000", "nvidia,tegra186";
 
-	aconnect {
-		status = "okay";
-
-		dma-controller@2930000 {
-			status = "okay";
-		};
-
-		interrupt-controller@2a40000 {
-			status = "okay";
-		};
-	};
-
 	i2c@3160000 {
 		power-monitor@42 {
 			compatible = "ti,ina3221";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -309,8 +309,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03400000 0x0 0x10000>;
 		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC1>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&bpmp TEGRA186_RESET_SDMMC1>;
 		reset-names = "sdhci";
 		iommus = <&smmu TEGRA186_SID_SDMMC1>;
@@ -335,8 +336,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03420000 0x0 0x10000>;
 		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC2>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC2>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&bpmp TEGRA186_RESET_SDMMC2>;
 		reset-names = "sdhci";
 		iommus = <&smmu TEGRA186_SID_SDMMC2>;
@@ -356,8 +358,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03440000 0x0 0x10000>;
 		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC3>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC3>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&bpmp TEGRA186_RESET_SDMMC3>;
 		reset-names = "sdhci";
 		iommus = <&smmu TEGRA186_SID_SDMMC3>;
@@ -379,8 +382,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03460000 0x0 0x10000>;
 		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
 				  <&bpmp TEGRA186_CLK_PLLC4_VCO>;
 		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
@@ -32,7 +32,7 @@
 
 			phy-reset-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 5) GPIO_ACTIVE_LOW>;
 			phy-handle = <&phy>;
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 
 			mdio {
 				#address-cells = <1>;
@@ -309,9 +309,8 @@
 			regulator-name = "VDD_12V";
 			regulator-min-microvolt = <1200000>;
 			regulator-max-microvolt = <1200000>;
-			gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
+			gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
 			regulator-boot-on;
-			enable-active-low;
 		};
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -144,7 +144,7 @@
 					nvidia,schmitt = <TEGRA_PIN_DISABLE>;
 					nvidia,lpdr = <TEGRA_PIN_ENABLE>;
 					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-					nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
+					nvidia,io-hv = <TEGRA_PIN_ENABLE>;
 					nvidia,tristate = <TEGRA_PIN_DISABLE>;
 					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				};
@@ -156,7 +156,7 @@
 					nvidia,schmitt = <TEGRA_PIN_DISABLE>;
 					nvidia,lpdr = <TEGRA_PIN_ENABLE>;
 					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-					nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
+					nvidia,io-hv = <TEGRA_PIN_ENABLE>;
 					nvidia,tristate = <TEGRA_PIN_DISABLE>;
 					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				};
@@ -403,8 +403,9 @@
 			compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03400000 0x10000>;
 			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&bpmp TEGRA194_CLK_SDMMC1>;
-			clock-names = "sdhci";
+			clocks = <&bpmp TEGRA194_CLK_SDMMC1>,
+				 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
+			clock-names = "sdhci", "tmclk";
 			resets = <&bpmp TEGRA194_RESET_SDMMC1>;
 			reset-names = "sdhci";
 			nvidia,pad-autocal-pull-up-offset-3v3-timeout =
@@ -425,8 +426,9 @@
 			compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03440000 0x10000>;
 			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&bpmp TEGRA194_CLK_SDMMC3>;
-			clock-names = "sdhci";
+			clocks = <&bpmp TEGRA194_CLK_SDMMC3>,
+				 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
+			clock-names = "sdhci", "tmclk";
 			resets = <&bpmp TEGRA194_RESET_SDMMC3>;
 			reset-names = "sdhci";
 			nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
@@ -448,8 +450,9 @@
 			compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03460000 0x10000>;
 			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&bpmp TEGRA194_CLK_SDMMC4>;
-			clock-names = "sdhci";
+			clocks = <&bpmp TEGRA194_CLK_SDMMC4>,
+				 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
+			clock-names = "sdhci", "tmclk";
 			assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC4>,
 					  <&bpmp TEGRA194_CLK_PLLC4>;
 			assigned-clock-parents =
@@ -689,7 +692,7 @@
 
 		hsp_aon: hsp@c150000 {
 			compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp";
-			reg = <0x0c150000 0xa0000>;
+			reg = <0x0c150000 0x90000>;
 			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
 			             <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
 			             <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
@@ -1151,7 +1154,7 @@
 	};
 
 	pcie@14100000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
 		reg = <0x00 0x14100000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x30000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1192,12 +1195,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x30100000 0x0  0x30100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000   /* prefetchable memory (768MB) */
+			  0xc3000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000   /* prefetchable memory (768MB) */
 			  0x82000000 0x0  0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
 	};
 
 	pcie@14120000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
 		reg = <0x00 0x14120000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x32000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1238,12 +1241,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x32100000 0x0  0x32100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000   /* prefetchable memory (768MB) */
+			  0xc3000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000   /* prefetchable memory (768MB) */
 			  0x82000000 0x0  0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
 	};
 
 	pcie@14140000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
 		reg = <0x00 0x14140000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x34000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1284,12 +1287,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x34100000 0x0  0x34100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000   /* prefetchable memory (768MB) */
+			  0xc3000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000   /* prefetchable memory (768MB) */
 			  0x82000000 0x0  0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
 	};
 
 	pcie@14160000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
 		reg = <0x00 0x14160000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x36000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1330,12 +1333,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x36100000 0x0  0x36100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
+			  0xc3000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
 			  0x82000000 0x0  0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
 	};
 
 	pcie@14180000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
 		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x38000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1376,12 +1379,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x38100000 0x0  0x38100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
+			  0xc3000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
 			  0x82000000 0x0  0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
 	};
 
 	pcie@141a0000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
 		reg = <0x00 0x141a0000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x3a000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1426,10 +1429,109 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x3a100000 0x0  0x3a100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
+			  0xc3000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
 			  0x82000000 0x0  0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
 	};
 
+	pcie_ep@14160000 {
+		compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
+		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
+		reg = <0x00 0x14160000 0x0 0x00020000   /* appl registers (128K)      */
+		       0x00 0x36040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
+		       0x00 0x36080000 0x0 0x00040000   /* DBI reg space (256K)       */
+		       0x14 0x00000000 0x4 0x00000000>; /* Address Space (16G)        */
+		reg-names = "appl", "atu_dma", "dbi", "addr_space";
+
+		status = "disabled";
+
+		num-lanes = <4>;
+		num-ib-windows = <2>;
+		num-ob-windows = <8>;
+
+		clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_4>;
+		clock-names = "core";
+
+		resets = <&bpmp TEGRA194_RESET_PEX0_CORE_4_APB>,
+			 <&bpmp TEGRA194_RESET_PEX0_CORE_4>;
+		reset-names = "apb", "core";
+
+		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;	/* controller interrupt */
+		interrupt-names = "intr";
+
+		nvidia,bpmp = <&bpmp 4>;
+
+		nvidia,aspm-cmrt-us = <60>;
+		nvidia,aspm-pwr-on-t-us = <20>;
+		nvidia,aspm-l0s-entrance-latency-us = <3>;
+	};
+
+	pcie_ep@14180000 {
+		compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
+		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
+		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
+		       0x00 0x38040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
+		       0x00 0x38080000 0x0 0x00040000   /* DBI reg space (256K)       */
+		       0x18 0x00000000 0x4 0x00000000>; /* Address Space (16G)        */
+		reg-names = "appl", "atu_dma", "dbi", "addr_space";
+
+		status = "disabled";
+
+		num-lanes = <8>;
+		num-ib-windows = <2>;
+		num-ob-windows = <8>;
+
+		clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_0>;
+		clock-names = "core";
+
+		resets = <&bpmp TEGRA194_RESET_PEX0_CORE_0_APB>,
+			 <&bpmp TEGRA194_RESET_PEX0_CORE_0>;
+		reset-names = "apb", "core";
+
+		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;	/* controller interrupt */
+		interrupt-names = "intr";
+
+		nvidia,bpmp = <&bpmp 0>;
+
+		nvidia,aspm-cmrt-us = <60>;
+		nvidia,aspm-pwr-on-t-us = <20>;
+		nvidia,aspm-l0s-entrance-latency-us = <3>;
+	};
+
+	pcie_ep@141a0000 {
+		compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
+		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
+		reg = <0x00 0x141a0000 0x0 0x00020000   /* appl registers (128K)      */
+		       0x00 0x3a040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
+		       0x00 0x3a080000 0x0 0x00040000   /* DBI reg space (256K)       */
+		       0x1c 0x00000000 0x4 0x00000000>; /* Address Space (16G)        */
+		reg-names = "appl", "atu_dma", "dbi", "addr_space";
+
+		status = "disabled";
+
+		num-lanes = <8>;
+		num-ib-windows = <2>;
+		num-ob-windows = <8>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&clkreq_c5_bi_dir_state>;
+
+		clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>;
+		clock-names = "core";
+
+		resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>,
+			 <&bpmp TEGRA194_RESET_PEX1_CORE_5>;
+		reset-names = "apb", "core";
+
+		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;	/* controller interrupt */
+		interrupt-names = "intr";
+
+		nvidia,bpmp = <&bpmp 5>;
+
+		nvidia,aspm-cmrt-us = <60>;
+		nvidia,aspm-pwr-on-t-us = <20>;
+		nvidia,aspm-l0s-entrance-latency-us = <3>;
+	};
+
 	sysram@40000000 {
 		compatible = "nvidia,tegra194-sysram", "mmio-sram";
 		reg = <0x0 0x40000000 0x0 0x50000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
@@ -1612,7 +1612,7 @@
 			regulator-name = "VDD_HDMI_5V0";
 			regulator-min-microvolt = <5000000>;
 			regulator-max-microvolt = <5000000>;
-			gpio = <&exp1 12 GPIO_ACTIVE_LOW>;
+			gpio = <&exp1 12 GPIO_ACTIVE_HIGH>;
 			enable-active-high;
 			vin-supply = <&vdd_5v0_sys>;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra210.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/nvidia/tegra210.dtsi
@@ -917,6 +917,7 @@
 			 <&tegra_car 128>, /* hda2hdmi */
 			 <&tegra_car 111>; /* hda2codec_2x */
 		reset-names = "hda", "hda2hdmi", "hda2codec_2x";
+		power-domains = <&pd_sor>;
 		status = "disabled";
 	};
 
@@ -1116,8 +1117,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0000 0x0 0x200>;
 		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 14>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
@@ -1144,8 +1146,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0200 0x0 0x200>;
 		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC2>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC2>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 9>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-1v8-drv";
@@ -1161,8 +1164,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0400 0x0 0x200>;
 		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC3>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC3>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 69>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
@@ -1184,8 +1188,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0600 0x0 0x200>;
 		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC4>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 15>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-3v3-drv", "sdmmc-1v8-drv";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
@@ -623,6 +623,8 @@
 				l21 {
 					regulator-min-microvolt = <2950000>;
 					regulator-max-microvolt = <2950000>;
+					regulator-allow-set-load;
+					regulator-system-load = <200000>;
 				};
 				l22 {
 					regulator-min-microvolt = <3300000>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
@@ -508,7 +508,7 @@
 				pins = "gpio63", "gpio64", "gpio65", "gpio66",
 				       "gpio67", "gpio68";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		cdc_pdm_lines_sus: pdm_lines_off {
@@ -521,7 +521,7 @@
 				pins = "gpio63", "gpio64", "gpio65", "gpio66",
 				       "gpio67", "gpio68";
 				drive-strength = <2>;
-				bias-disable;
+				bias-pull-down;
 			};
 		};
 	};
@@ -537,7 +537,7 @@
 				pins = "gpio113", "gpio114", "gpio115",
 				       "gpio116";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 
@@ -565,7 +565,7 @@
 			pinconf {
 				pins = "gpio110";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 
@@ -591,7 +591,7 @@
 			pinconf {
 				pins = "gpio116";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		ext_mclk_tlmm_lines_sus: mclk_lines_off {
@@ -619,7 +619,7 @@
 				pins = "gpio112", "gpio117", "gpio118",
 					"gpio119";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		ext_sec_tlmm_lines_sus: tlmm_lines_off {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -53,7 +53,7 @@
 			no-map;
 		};
 
-		reserved@8668000 {
+		reserved@86680000 {
 			reg = <0x0 0x86680000 0x0 0x80000>;
 			no-map;
 		};
@@ -66,7 +66,7 @@
 			qcom,client-id = <1>;
 		};
 
-		rfsa@867e00000 {
+		rfsa@867e0000 {
 			reg = <0x0 0x867e0000 0x0 0x20000>;
 			no-map;
 		};
@@ -175,14 +175,14 @@
 	};
 
 	thermal-zones {
-		cpu0_1-thermal {
+		cpu0-1-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <1000>;
 
 			thermal-sensors = <&tsens 4>;
 
 			trips {
-				cpu0_1_alert0: trip-point@0 {
+				cpu0_1_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "passive";
@@ -205,14 +205,14 @@
 			};
 		};
 
-		cpu2_3-thermal {
+		cpu2-3-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <1000>;
 
 			thermal-sensors = <&tsens 3>;
 
 			trips {
-				cpu2_3_alert0: trip-point@0 {
+				cpu2_3_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "passive";
@@ -242,7 +242,7 @@
 			thermal-sensors = <&tsens 2>;
 
 			trips {
-				gpu_alert0: trip-point@0 {
+				gpu_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "passive";
@@ -262,7 +262,7 @@
 			thermal-sensors = <&tsens 1>;
 
 			trips {
-				cam_alert0: trip-point@0 {
+				cam_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "hot";
@@ -277,7 +277,7 @@
 			thermal-sensors = <&tsens 0>;
 
 			trips {
-				modem_alert0: trip-point@0 {
+				modem_alert0: trip-point0 {
 					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "hot";
@@ -934,7 +934,7 @@
 				reg-names = "mdp_phys";
 
 				interrupt-parent = <&mdss>;
-				interrupts = <0 0>;
+				interrupts = <0>;
 
 				clocks = <&gcc GCC_MDSS_AHB_CLK>,
 					 <&gcc GCC_MDSS_AXI_CLK>,
@@ -966,7 +966,7 @@
 				reg-names = "dsi_ctrl";
 
 				interrupt-parent = <&mdss>;
-				interrupts = <4 0>;
+				interrupts = <4>;
 
 				assigned-clocks = <&gcc BYTE0_CLK_SRC>,
 						  <&gcc PCLK0_CLK_SRC>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -1598,6 +1598,8 @@
 				interrupts = <0 138 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&hsusb_phy2>;
 				phy-names = "usb2-phy";
+				snps,dis_u2_susphy_quirk;
+				snps,dis_enblslpm_quirk;
 			};
 		};
 
@@ -1628,6 +1630,8 @@
 				interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&hsusb_phy1>, <&ssusb_phy_0>;
 				phy-names = "usb2-phy", "usb3-phy";
+				snps,dis_u2_susphy_quirk;
+				snps,dis_enblslpm_quirk;
 			};
 		};
 
@@ -1677,16 +1681,16 @@
 				"csi_clk_mux",
 				"vfe0",
 				"vfe1";
-			interrupts = <GIC_SPI 78 0>,
-				<GIC_SPI 79 0>,
-				<GIC_SPI 80 0>,
-				<GIC_SPI 296 0>,
-				<GIC_SPI 297 0>,
-				<GIC_SPI 298 0>,
-				<GIC_SPI 299 0>,
-				<GIC_SPI 309 0>,
-				<GIC_SPI 314 0>,
-				<GIC_SPI 315 0>;
+			interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 315 IRQ_TYPE_EDGE_RISING>;
 			interrupt-names = "csiphy0",
 				"csiphy1",
 				"csiphy2",
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi
@@ -23,6 +23,43 @@
 	};
 };
 
+/*
+ * The laptop FW does not appear to support the retention state as it is
+ * not advertised as enabled in ACPI, and enabling it in DT can cause boot
+ * hangs.
+ */
+&CPU0 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU1 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU2 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU3 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU4 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
+&CPU5 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
+&CPU6 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
+&CPU7 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
 &qusb2phy {
 	status = "okay";
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
@@ -27,6 +27,66 @@
 	status = "okay";
 };
 
+&etf {
+	status = "okay";
+};
+
+&etm1 {
+	status = "okay";
+};
+
+&etm2 {
+	status = "okay";
+};
+
+&etm3 {
+	status = "okay";
+};
+
+&etm4 {
+	status = "okay";
+};
+
+&etm5 {
+	status = "okay";
+};
+
+&etm6 {
+	status = "okay";
+};
+
+&etm7 {
+	status = "okay";
+};
+
+&etm8 {
+	status = "okay";
+};
+
+&etr {
+	status = "okay";
+};
+
+&funnel1 {
+	status = "okay";
+};
+
+&funnel2 {
+	status = "okay";
+};
+
+&funnel3 {
+	status = "okay";
+};
+
+&funnel4 {
+	status = "okay";
+};
+
+&funnel5 {
+	status = "okay";
+};
+
 &pm8005_lsid1 {
 	pm8005-regulators {
 		compatible = "qcom,pm8005-regulators";
@@ -51,6 +111,10 @@
 	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
 };
 
+&replicator1 {
+	status = "okay";
+};
+
 &rpm_requests {
 	pm8998-regulators {
 		compatible = "qcom,rpm-pm8998-regulators";
@@ -249,6 +313,10 @@
 	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 };
 
+&stm {
+	status = "okay";
+};
+
 &ufshc {
 	vcc-supply = <&vreg_l20a_2p95>;
 	vccq-supply = <&vreg_l26a_1p2>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8998.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -985,7 +985,7 @@
 
 		tcsr_mutex_regs: syscon@1f40000 {
 			compatible = "syscon";
-			reg = <0x01f40000 0x20000>;
+			reg = <0x01f40000 0x40000>;
 		};
 
 		tlmm: pinctrl@3400000 {
@@ -998,11 +998,12 @@
 			#interrupt-cells = <0x2>;
 		};
 
-		stm@6002000 {
+		stm: stm@6002000 {
 			compatible = "arm,coresight-stm", "arm,primecell";
 			reg = <0x06002000 0x1000>,
 			      <0x16280000 0x180000>;
 			reg-names = "stm-base", "stm-data-base";
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1016,9 +1017,10 @@
 			};
 		};
 
-		funnel@6041000 {
+		funnel1: funnel@6041000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x06041000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1045,9 +1047,10 @@
 			};
 		};
 
-		funnel@6042000 {
+		funnel2: funnel@6042000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x06042000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1075,9 +1078,10 @@
 			};
 		};
 
-		funnel@6045000 {
+		funnel3: funnel@6045000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x06045000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1113,9 +1117,10 @@
 			};
 		};
 
-		replicator@6046000 {
+		replicator1: replicator@6046000 {
 			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
 			reg = <0x06046000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1137,9 +1142,10 @@
 			};
 		};
 
-		etf@6047000 {
+		etf: etf@6047000 {
 			compatible = "arm,coresight-tmc", "arm,primecell";
 			reg = <0x06047000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1163,9 +1169,10 @@
 			};
 		};
 
-		etr@6048000 {
+		etr: etr@6048000 {
 			compatible = "arm,coresight-tmc", "arm,primecell";
 			reg = <0x06048000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1181,9 +1188,10 @@
 			};
 		};
 
-		etm@7840000 {
+		etm1: etm@7840000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07840000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1200,9 +1208,10 @@
 			};
 		};
 
-		etm@7940000 {
+		etm2: etm@7940000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07940000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1219,9 +1228,10 @@
 			};
 		};
 
-		etm@7a40000 {
+		etm3: etm@7a40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07a40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1238,9 +1248,10 @@
 			};
 		};
 
-		etm@7b40000 {
+		etm4: etm@7b40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07b40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1257,9 +1268,10 @@
 			};
 		};
 
-		funnel@7b60000 { /* APSS Funnel */
+		funnel4: funnel@7b60000 { /* APSS Funnel */
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07b60000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1343,9 +1355,10 @@
 			};
 		};
 
-		funnel@7b70000 {
+		funnel5: funnel@7b70000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x07b70000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1369,9 +1382,10 @@
 			};
 		};
 
-		etm@7c40000 {
+		etm5: etm@7c40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07c40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1385,9 +1399,10 @@
 			};
 		};
 
-		etm@7d40000 {
+		etm6: etm@7d40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07d40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1401,9 +1416,10 @@
 			};
 		};
 
-		etm@7e40000 {
+		etm7: etm@7e40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07e40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1417,9 +1433,10 @@
 			};
 		};
 
-		etm@7f40000 {
+		etm8: etm@7f40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07f40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8150.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/pm8150.dtsi
@@ -73,18 +73,8 @@
 			reg = <0xc000>;
 			gpio-controller;
 			#gpio-cells = <2>;
-			interrupts = <0x0 0xc0 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc1 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc2 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc3 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc4 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc5 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc6 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc7 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc8 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc9 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xca 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xcb 0x0 IRQ_TYPE_NONE>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8150b.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/pm8150b.dtsi
@@ -62,18 +62,8 @@
 			reg = <0xc000>;
 			gpio-controller;
 			#gpio-cells = <2>;
-			interrupts = <0x2 0xc0 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc1 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc2 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc3 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc4 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc5 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc6 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc7 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc8 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc9 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xca 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xcb 0x0 IRQ_TYPE_NONE>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8150l.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/pm8150l.dtsi
@@ -56,18 +56,8 @@
 			reg = <0xc000>;
 			gpio-controller;
 			#gpio-cells = <2>;
-			interrupts = <0x4 0xc0 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc1 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc2 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc3 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc4 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc5 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc6 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc7 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc8 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc9 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xca 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xcb 0x0 IRQ_TYPE_NONE>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8916.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/pm8916.dtsi
@@ -113,7 +113,7 @@
 
 		wcd_codec: codec@f000 {
 			compatible = "qcom,pm8916-wcd-analog-codec";
-			reg = <0xf000 0x200>;
+			reg = <0xf000>;
 			reg-names = "pmic-codec-core";
 			clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
 			clock-names = "mclk";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
@@ -73,6 +73,7 @@
 		regulator-always-on;
 		regulator-boot-on;
 		regulator-name = "vdd_apc";
+		regulator-initial-mode = <1>;
 		regulator-min-microvolt = <1048000>;
 		regulator-max-microvolt = <1384000>;
 	};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi
@@ -165,6 +165,8 @@
 /delete-node/ &venus_mem;
 /delete-node/ &cdsp_mem;
 /delete-node/ &cdsp_pas;
+/delete-node/ &zap_shader;
+/delete-node/ &gpu_mem;
 
 /* Increase the size from 120 MB to 128 MB */
 &mpss_region {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
@@ -337,7 +337,9 @@
 &gcc {
 	protected-clocks = <GCC_QSPI_CORE_CLK>,
 			   <GCC_QSPI_CORE_CLK_SRC>,
-			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
+			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+			   <GCC_LPASS_Q6_AXI_CLK>,
+			   <GCC_LPASS_SWAY_CLK>;
 };
 
 &pm8998_gpio {
@@ -517,6 +519,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 */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -2824,7 +2824,7 @@
 
 			qcom,gmu = <&gmu>;
 
-			zap-shader {
+			zap_shader: zap-shader {
 				memory-region = <&gpu_mem>;
 			};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -232,7 +232,9 @@
 &gcc {
 	protected-clocks = <GCC_QSPI_CORE_CLK>,
 			   <GCC_QSPI_CORE_CLK_SRC>,
-			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
+			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+			   <GCC_LPASS_Q6_AXI_CLK>,
+			   <GCC_LPASS_SWAY_CLK>;
 };
 
 &i2c1 {
@@ -243,24 +245,23 @@
 &i2c3 {
 	status = "okay";
 	clock-frequency = <400000>;
+	/* Overwrite pinctrl-0 from sdm845.dtsi */
+	pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>;
 
-	hid@15 {
+	tsel: hid@15 {
 		compatible = "hid-over-i2c";
 		reg = <0x15>;
 		hid-descr-addr = <0x1>;
 
-		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
+		interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
 	};
 
-	hid@2c {
+	tsc2: hid@2c {
 		compatible = "hid-over-i2c";
 		reg = <0x2c>;
 		hid-descr-addr = <0x20>;
 
-		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&i2c2_hid_active>;
+		interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
 	};
 };
 
@@ -268,15 +269,15 @@
 	status = "okay";
 	clock-frequency = <400000>;
 
-	hid@10 {
+	tsc1: hid@10 {
 		compatible = "hid-over-i2c";
 		reg = <0x10>;
 		hid-descr-addr = <0x1>;
 
-		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
+		interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>;
 
 		pinctrl-names = "default";
-		pinctrl-0 = <&i2c6_hid_active>;
+		pinctrl-0 = <&i2c5_hid_active>;
 	};
 };
 
@@ -284,7 +285,7 @@
 	status = "okay";
 	clock-frequency = <400000>;
 
-	hid@5c {
+	ecsh: hid@5c {
 		compatible = "hid-over-i2c";
 		reg = <0x5c>;
 		hid-descr-addr = <0x1>;
@@ -292,7 +293,7 @@
 		interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
 
 		pinctrl-names = "default";
-		pinctrl-0 = <&i2c12_hid_active>;
+		pinctrl-0 = <&i2c11_hid_active>;
 	};
 };
 
@@ -335,7 +336,7 @@
 &tlmm {
 	gpio-reserved-ranges = <0 4>, <81 4>;
 
-	i2c2_hid_active: i2c2-hid-active {
+	i2c3_hid_active: i2c2-hid-active {
 		pins = <37>;
 		function = "gpio";
 
@@ -344,7 +345,7 @@
 		drive-strength = <2>;
 	};
 
-	i2c6_hid_active: i2c6-hid-active {
+	i2c5_hid_active: i2c5-hid-active {
 		pins = <125>;
 		function = "gpio";
 
@@ -353,7 +354,7 @@
 		drive-strength = <2>;
 	};
 
-	i2c12_hid_active: i2c12-hid-active {
+	i2c11_hid_active: i2c11-hid-active {
 		pins = <92>;
 		function = "gpio";
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/cat875.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/cat875.dtsi
@@ -22,7 +22,6 @@
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
-		rxc-skew-ps = <1500>;
 		reg = <0>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/hihope-common.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/hihope-common.dtsi
@@ -86,7 +86,7 @@
 
 		label = "rcar-sound";
 
-		dais = <&rsnd_port0>;
+		dais = <&rsnd_port>;
 	};
 
 	vbus0_usb2: regulator-vbus0-usb2 {
@@ -191,7 +191,7 @@
 		port@2 {
 			reg = <2>;
 			dw_hdmi0_snd_in: endpoint {
-				remote-endpoint = <&rsnd_endpoint0>;
+				remote-endpoint = <&rsnd_endpoint>;
 			};
 		};
 	};
@@ -327,17 +327,15 @@
 	/* Single DAI */
 	#sound-dai-cells = <0>;
 
-	ports {
-		rsnd_port0: port@0 {
-			rsnd_endpoint0: endpoint {
-				remote-endpoint = <&dw_hdmi0_snd_in>;
-
-				dai-format = "i2s";
-				bitclock-master = <&rsnd_endpoint0>;
-				frame-master = <&rsnd_endpoint0>;
+	rsnd_port: port {
+		rsnd_endpoint: endpoint {
+			remote-endpoint = <&dw_hdmi0_snd_in>;
+
+			dai-format = "i2s";
+			bitclock-master = <&rsnd_endpoint>;
+			frame-master = <&rsnd_endpoint>;
 
-				playback = <&ssi2>;
-			};
+			playback = <&ssi2>;
 		};
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
@@ -23,7 +23,6 @@
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
-		rxc-skew-ps = <1500>;
 		reg = <0>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
@@ -1726,17 +1726,6 @@
 				      "ssi.1", "ssi.0";
 			status = "disabled";
 
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				port@0 {
-					reg = <0>;
-				};
-				port@1 {
-					reg = <1>;
-				};
-			};
-
 			rcar_sound,ctu {
 				ctu00: ctu-0 { };
 				ctu01: ctu-1 { };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a774c0.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/r8a774c0.dtsi
@@ -1212,9 +1212,8 @@
 			reg = <0 0xe6ea0000 0 0x0064>;
 			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 210>;
-			dmas = <&dmac1 0x43>, <&dmac1 0x42>,
-			       <&dmac2 0x43>, <&dmac2 0x42>;
-			dma-names = "tx", "rx", "tx", "rx";
+			dmas = <&dmac0 0x43>, <&dmac0 0x42>;
+			dma-names = "tx", "rx";
 			power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
 			resets = <&cpg 210>;
 			#address-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77970.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/r8a77970.dtsi
@@ -652,7 +652,7 @@
 		};
 
 		pwm3: pwm@e6e33000 {
-			compatible = "renesas,pwm-r8a7790", "renesas,pwm-rcar";
+			compatible = "renesas,pwm-r8a77970", "renesas,pwm-rcar";
 			reg = <0 0xe6e33000 0 8>;
 			#pwm-cells = <2>;
 			clocks = <&cpg CPG_MOD 523>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77980.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/r8a77980.dtsi
@@ -1318,6 +1318,7 @@
 		ipmmu_vip0: mmu@e7b00000 {
 			compatible = "renesas,ipmmu-r8a77980";
 			reg = <0 0xe7b00000 0 0x1000>;
+			renesas,ipmmu-main = <&ipmmu_mm 4>;
 			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 			#iommu-cells = <1>;
 		};
@@ -1325,6 +1326,7 @@
 		ipmmu_vip1: mmu@e7960000 {
 			compatible = "renesas,ipmmu-r8a77980";
 			reg = <0 0xe7960000 0 0x1000>;
+			renesas,ipmmu-main = <&ipmmu_mm 11>;
 			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 			#iommu-cells = <1>;
 		};
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
@@ -636,7 +636,6 @@
 	/* audio_clkout0/1/2/3 */
 	#clock-cells = <1>;
 	clock-frequency = <12288000 11289600>;
-	clkout-lr-synchronous;
 
 	status = "okay";
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77990.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/r8a77990.dtsi
@@ -1168,9 +1168,8 @@
 			reg = <0 0xe6ea0000 0 0x0064>;
 			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 210>;
-			dmas = <&dmac1 0x43>, <&dmac1 0x42>,
-			       <&dmac2 0x43>, <&dmac2 0x42>;
-			dma-names = "tx", "rx", "tx", "rx";
+			dmas = <&dmac0 0x43>, <&dmac0 0x42>;
+			dma-names = "tx", "rx";
 			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
 			resets = <&cpg 210>;
 			#address-cells = <1>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/renesas/ulcb.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/renesas/ulcb.dtsi
@@ -470,6 +470,7 @@
 	mmc-hs200-1_8v;
 	mmc-hs400-1_8v;
 	non-removable;
+	full-pwr-cycle-in-suspend;
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/px30.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/px30.dtsi
@@ -768,7 +768,7 @@
 		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
 			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		pinctrl-names = "default";
@@ -783,7 +783,7 @@
 		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
 			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		pinctrl-names = "default";
@@ -798,7 +798,7 @@
 		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
 			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		power-domains = <&power PX30_PD_MMC_NAND>;
@@ -860,7 +860,7 @@
 	vopl_mmu: iommu@ff470f00 {
 		compatible = "rockchip,iommu";
 		reg = <0x0 0xff470f00 0x0 0x100>;
-		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "vopl_mmu";
 		clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
 		clock-names = "aclk", "hclk";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
@@ -86,13 +86,13 @@
 	assigned-clock-rate = <50000000>;
 	assigned-clocks = <&cru SCLK_MAC2PHY>;
 	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
-
+	status = "okay";
 };
 
 &i2c1 {
 	status = "okay";
 
-	rk805: rk805@18 {
+	rk805: pmic@18 {
 		compatible = "rockchip,rk805";
 		reg = <0x18>;
 		interrupt-parent = <&gpio2>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
@@ -333,6 +333,7 @@
 };
 
 &usb20_otg {
+	dr_mode = "host";
 	status = "okay";
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
@@ -169,7 +169,7 @@
 &i2c1 {
 	status = "okay";
 
-	rk805: rk805@18 {
+	rk805: pmic@18 {
 		compatible = "rockchip,rk805";
 		reg = <0x18>;
 		interrupt-parent = <&gpio2>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -1190,8 +1190,8 @@
 
 		uart0 {
 			uart0_xfer: uart0-xfer {
-				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
-						<1 RK_PB0 1 &pcfg_pull_none>;
+				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
+						<1 RK_PB0 1 &pcfg_pull_up>;
 			};
 
 			uart0_cts: uart0-cts {
@@ -1209,8 +1209,8 @@
 
 		uart1 {
 			uart1_xfer: uart1-xfer {
-				rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
-						<3 RK_PA6 4 &pcfg_pull_none>;
+				rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
+						<3 RK_PA6 4 &pcfg_pull_up>;
 			};
 
 			uart1_cts: uart1-cts {
@@ -1228,15 +1228,15 @@
 
 		uart2-0 {
 			uart2m0_xfer: uart2m0-xfer {
-				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
-						<1 RK_PA1 2 &pcfg_pull_none>;
+				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
+						<1 RK_PA1 2 &pcfg_pull_up>;
 			};
 		};
 
 		uart2-1 {
 			uart2m1_xfer: uart2m1-xfer {
-				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
-						<2 RK_PA1 1 &pcfg_pull_none>;
+				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
+						<2 RK_PA1 1 &pcfg_pull_up>;
 			};
 		};
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi
@@ -156,7 +156,7 @@
 	pinctrl-0 = <&rgmii_pins>;
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
-	snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+	snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
 	tx_delay = <0x10>;
 	rx_delay = <0x10>;
 	status = "okay";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -669,9 +669,12 @@
 	vqmmc-supply = &vcc1v8_s3;	/* IO line */
 	vmmc-supply = &vcc_sdio;	/* card's power */
 
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
@@ -654,9 +654,12 @@
 	sd-uhs-sdr104;
 	vqmmc-supply = <&vcc1v8_s3>;
 	vmmc-supply = <&vccio_sd>;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts
@@ -94,33 +94,6 @@
 	};
 };
 
-&gpu_thermal {
-	trips {
-		gpu_warm: gpu_warm {
-			temperature = <55000>;
-			hysteresis = <2000>;
-			type = "active";
-		};
-
-		gpu_hot: gpu_hot {
-			temperature = <65000>;
-			hysteresis = <2000>;
-			type = "active";
-		};
-	};
-	cooling-maps {
-		map1 {
-			trip = <&gpu_warm>;
-			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
-		};
-
-		map2 {
-			trip = <&gpu_hot>;
-			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
-		};
-	};
-};
-
 &pinctrl {
 	ir {
 		ir_rx: ir-rx {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
@@ -648,9 +648,12 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 	sd-uhs-sdr104;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
@@ -101,7 +101,7 @@
 
 	vcc5v0_host: vcc5v0-host-regulator {
 		compatible = "regulator-fixed";
-		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
 		enable-active-low;
 		pinctrl-names = "default";
 		pinctrl-0 = <&vcc5v0_host_en>;
@@ -157,7 +157,7 @@
 	phy-mode = "rgmii";
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
 	tx_delay = <0x10>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -29,6 +29,9 @@
 		i2c6 = &i2c6;
 		i2c7 = &i2c7;
 		i2c8 = &i2c8;
+		mmc0 = &sdio0;
+		mmc1 = &sdmmc;
+		mmc2 = &sdhci;
 		serial0 = &uart0;
 		serial1 = &uart1;
 		serial2 = &uart2;
@@ -229,6 +232,7 @@
 		reg = <0x0 0xf8000000 0x0 0x2000000>,
 		      <0x0 0xfd000000 0x0 0x1000000>;
 		reg-names = "axi-base", "apb-base";
+		device_type = "pci";
 		#address-cells = <3>;
 		#size-cells = <2>;
 		#interrupt-cells = <1>;
@@ -247,7 +251,6 @@
 				<0 0 0 2 &pcie0_intc 1>,
 				<0 0 0 3 &pcie0_intc 2>,
 				<0 0 0 4 &pcie0_intc 3>;
-		linux,pci-domain = <0>;
 		max-link-speed = <1>;
 		msi-map = <0x0 &its 0x0 0x1000>;
 		phys = <&pcie_phy 0>, <&pcie_phy 1>,
@@ -410,7 +413,7 @@
 		reset-names = "usb3-otg";
 		status = "disabled";
 
-		usbdrd_dwc3_0: dwc3 {
+		usbdrd_dwc3_0: usb@fe800000 {
 			compatible = "snps,dwc3";
 			reg = <0x0 0xfe800000 0x0 0x100000>;
 			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -446,7 +449,7 @@
 		reset-names = "usb3-otg";
 		status = "disabled";
 
-		usbdrd_dwc3_1: dwc3 {
+		usbdrd_dwc3_1: usb@fe900000 {
 			compatible = "snps,dwc3";
 			reg = <0x0 0xfe900000 0x0 0x100000>;
 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -1881,10 +1884,10 @@
 	gpu: gpu@ff9a0000 {
 		compatible = "rockchip,rk3399-mali", "arm,mali-t860";
 		reg = <0x0 0xff9a0000 0x0 0x10000>;
-		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
-			     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
-			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
-		interrupt-names = "gpu", "job", "mmu";
+		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
+			     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+		interrupt-names = "job", "mmu", "gpu";
 		clocks = <&cru ACLK_GPU>;
 		power-domains = <&power RK3399_PD_GPU>;
 		status = "disabled";
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -307,6 +307,7 @@
 		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
 		dma-coherent;
 		power-domains = <&k3_pds 151 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 151 2>, <&k3_clks 151 7>;
 		assigned-clocks = <&k3_clks 151 2>, <&k3_clks 151 7>;
 		assigned-clock-parents = <&k3_clks 151 4>,	/* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
 					 <&k3_clks 151 9>;	/* set PIPE3_TXB_CLK to CLK_12M_RC/256 (for HS only) */
@@ -346,6 +347,7 @@
 		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
 		dma-coherent;
 		power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 152 2>;
 		assigned-clocks = <&k3_clks 152 2>;
 		assigned-clock-parents = <&k3_clks 152 4>;	/* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -43,6 +43,7 @@
 	smmu0: smmu@36600000 {
 		compatible = "arm,smmu-v3";
 		reg = <0x0 0x36600000 0x0 0x100000>;
+		power-domains = <&k3_pds 229 TI_SCI_PD_EXCLUSIVE>;
 		interrupt-parent = <&gic500>;
 		interrupts = <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>,
 			     <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -419,7 +419,7 @@
 		};
 
 		i2c0: i2c@ff020000 {
-			compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
+			compatible = "cdns,i2c-r1p14";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 17 4>;
@@ -429,7 +429,7 @@
 		};
 
 		i2c1: i2c@ff030000 {
-			compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
+			compatible = "cdns,i2c-r1p14";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 18 4>;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/aes-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/aes-glue.c
@@ -55,7 +55,7 @@
 #define aes_mac_update		neon_aes_mac_update
 MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON");
 #endif
-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !defined(CONFIG_CRYPTO_AES_ARM64_BS)
+#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
 MODULE_ALIAS_CRYPTO("ecb(aes)");
 MODULE_ALIAS_CRYPTO("cbc(aes)");
 MODULE_ALIAS_CRYPTO("ctr(aes)");
@@ -668,7 +668,7 @@
 }
 
 static struct skcipher_alg aes_algs[] = { {
-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !defined(CONFIG_CRYPTO_AES_ARM64_BS)
+#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
 	.base = {
 		.cra_name		= "__ecb(aes)",
 		.cra_driver_name	= "__ecb-aes-" MODE,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/aes-neonbs-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/aes-neonbs-glue.c
@@ -384,7 +384,7 @@
 			goto xts_tail;
 
 		kernel_neon_end();
-		skcipher_walk_done(&walk, nbytes);
+		err = skcipher_walk_done(&walk, nbytes);
 	}
 
 	if (err || likely(!tail))
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/ghash-ce-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/ghash-ce-glue.c
@@ -261,7 +261,7 @@
 static struct shash_alg ghash_alg[] = {{
 	.base.cra_name		= "ghash",
 	.base.cra_driver_name	= "ghash-neon",
-	.base.cra_priority	= 100,
+	.base.cra_priority	= 150,
 	.base.cra_blocksize	= GHASH_BLOCK_SIZE,
 	.base.cra_ctxsize	= sizeof(struct ghash_key),
 	.base.cra_module	= THIS_MODULE,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/nhpoly1305-neon-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/nhpoly1305-neon-glue.c
@@ -30,7 +30,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_neon_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_neon);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/sha1-ce-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/sha1-ce-glue.c
@@ -19,6 +19,7 @@
 MODULE_DESCRIPTION("SHA1 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha1");
 
 struct sha1_ce_state {
 	struct sha1_state	sst;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/sha2-ce-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/sha2-ce-glue.c
@@ -19,6 +19,8 @@
 MODULE_DESCRIPTION("SHA-224/SHA-256 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha224");
+MODULE_ALIAS_CRYPTO("sha256");
 
 struct sha256_ce_state {
 	struct sha256_state	sst;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/sha3-ce-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/sha3-ce-glue.c
@@ -23,6 +23,10 @@
 MODULE_DESCRIPTION("SHA3 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha3-224");
+MODULE_ALIAS_CRYPTO("sha3-256");
+MODULE_ALIAS_CRYPTO("sha3-384");
+MODULE_ALIAS_CRYPTO("sha3-512");
 
 asmlinkage void sha3_ce_transform(u64 *st, const u8 *data, int blocks,
 				  int md_len);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/crypto/sha512-ce-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/crypto/sha512-ce-glue.c
@@ -23,6 +23,8 @@
 MODULE_DESCRIPTION("SHA-384/SHA-512 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha384");
+MODULE_ALIAS_CRYPTO("sha512");
 
 asmlinkage void sha512_ce_transform(struct sha512_state *sst, u8 const *src,
 				    int blocks);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/acpi.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/acpi.h
@@ -12,6 +12,7 @@
 #include <linux/efi.h>
 #include <linux/memblock.h>
 #include <linux/psci.h>
+#include <linux/stddef.h>
 
 #include <asm/cputype.h>
 #include <asm/io.h>
@@ -31,14 +32,14 @@
  * is therefore used to delimit the MADT GICC structure minimum length
  * appropriately.
  */
-#define ACPI_MADT_GICC_MIN_LENGTH   ACPI_OFFSET(  \
+#define ACPI_MADT_GICC_MIN_LENGTH   offsetof(  \
 	struct acpi_madt_generic_interrupt, efficiency_class)
 
 #define BAD_MADT_GICC_ENTRY(entry, end)					\
 	(!(entry) || (entry)->header.length < ACPI_MADT_GICC_MIN_LENGTH || \
 	(unsigned long)(entry) + (entry)->header.length > (end))
 
-#define ACPI_MADT_GICC_SPE  (ACPI_OFFSET(struct acpi_madt_generic_interrupt, \
+#define ACPI_MADT_GICC_SPE  (offsetof(struct acpi_madt_generic_interrupt, \
 	spe_interrupt) + sizeof(u16))
 
 /* Basic configuration for ACPI */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/alternative.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/alternative.h
@@ -35,13 +35,16 @@
 static inline void apply_alternatives_module(void *start, size_t length) { }
 #endif
 
-#define ALTINSTR_ENTRY(feature,cb)					      \
+#define ALTINSTR_ENTRY(feature)					              \
 	" .word 661b - .\n"				/* label           */ \
-	" .if " __stringify(cb) " == 0\n"				      \
 	" .word 663f - .\n"				/* new instruction */ \
-	" .else\n"							      \
+	" .hword " __stringify(feature) "\n"		/* feature bit     */ \
+	" .byte 662b-661b\n"				/* source len      */ \
+	" .byte 664f-663f\n"				/* replacement len */
+
+#define ALTINSTR_ENTRY_CB(feature, cb)					      \
+	" .word 661b - .\n"				/* label           */ \
 	" .word " __stringify(cb) "- .\n"		/* callback */	      \
-	" .endif\n"							      \
 	" .hword " __stringify(feature) "\n"		/* feature bit     */ \
 	" .byte 662b-661b\n"				/* source len      */ \
 	" .byte 664f-663f\n"				/* replacement len */
@@ -62,33 +65,40 @@
  *
  * Alternatives with callbacks do not generate replacement instructions.
  */
-#define __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled, cb)	\
+#define __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled)	\
 	".if "__stringify(cfg_enabled)" == 1\n"				\
 	"661:\n\t"							\
 	oldinstr "\n"							\
 	"662:\n"							\
 	".pushsection .altinstructions,\"a\"\n"				\
-	ALTINSTR_ENTRY(feature,cb)					\
+	ALTINSTR_ENTRY(feature)						\
 	".popsection\n"							\
-	" .if " __stringify(cb) " == 0\n"				\
-	".pushsection .altinstr_replacement, \"a\"\n"			\
+	".subsection 1\n"						\
 	"663:\n\t"							\
 	newinstr "\n"							\
 	"664:\n\t"							\
-	".popsection\n\t"						\
 	".org	. - (664b-663b) + (662b-661b)\n\t"			\
-	".org	. - (662b-661b) + (664b-663b)\n"			\
-	".else\n\t"							\
+	".org	. - (662b-661b) + (664b-663b)\n\t"			\
+	".previous\n"							\
+	".endif\n"
+
+#define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb)	\
+	".if "__stringify(cfg_enabled)" == 1\n"				\
+	"661:\n\t"							\
+	oldinstr "\n"							\
+	"662:\n"							\
+	".pushsection .altinstructions,\"a\"\n"				\
+	ALTINSTR_ENTRY_CB(feature, cb)					\
+	".popsection\n"							\
 	"663:\n\t"							\
 	"664:\n\t"							\
-	".endif\n"							\
 	".endif\n"
 
 #define _ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg, ...)	\
-	__ALTERNATIVE_CFG(oldinstr, newinstr, feature, IS_ENABLED(cfg), 0)
+	__ALTERNATIVE_CFG(oldinstr, newinstr, feature, IS_ENABLED(cfg))
 
 #define ALTERNATIVE_CB(oldinstr, cb) \
-	__ALTERNATIVE_CFG(oldinstr, "NOT_AN_INSTRUCTION", ARM64_CB_PATCH, 1, cb)
+	__ALTERNATIVE_CFG_CB(oldinstr, ARM64_CB_PATCH, 1, cb)
 #else
 
 #include <asm/assembler.h>
@@ -107,9 +117,9 @@
 662:	.pushsection .altinstructions, "a"
 	altinstruction_entry 661b, 663f, \cap, 662b-661b, 664f-663f
 	.popsection
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 663:	\insn2
-664:	.popsection
+664:	.previous
 	.org	. - (664b-663b) + (662b-661b)
 	.org	. - (662b-661b) + (664b-663b)
 	.endif
@@ -150,7 +160,7 @@
 	.pushsection .altinstructions, "a"
 	altinstruction_entry 663f, 661f, \cap, 664f-663f, 662f-661f
 	.popsection
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 	.align 2	/* So GAS knows label 661 is suitably aligned */
 661:
 .endm
@@ -169,9 +179,9 @@
 .macro alternative_else
 662:
 	.if .Lasm_alt_mode==0
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 	.else
-	.popsection
+	.previous
 	.endif
 663:
 .endm
@@ -182,7 +192,7 @@
 .macro alternative_endif
 664:
 	.if .Lasm_alt_mode==0
-	.popsection
+	.previous
 	.endif
 	.org	. - (664b-663b) + (662b-661b)
 	.org	. - (662b-661b) + (664b-663b)
@@ -211,7 +221,7 @@
 
 .macro user_alt, label, oldinstr, newinstr, cond
 9999:	alternative_insn "\oldinstr", "\newinstr", \cond
-	_ASM_EXTABLE 9999b, \label
+	_asm_extable 9999b, \label
 .endm
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/arch_gicv3.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/arch_gicv3.h
@@ -109,7 +109,7 @@
 	return read_sysreg_s(SYS_ICC_PMR_EL1);
 }
 
-static inline void gic_write_pmr(u32 val)
+static __always_inline void gic_write_pmr(u32 val)
 {
 	write_sysreg_s(val, SYS_ICC_PMR_EL1);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/arch_timer.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/arch_timer.h
@@ -58,6 +58,7 @@
 	u64 (*read_cntvct_el0)(void);
 	int (*set_next_event_phys)(unsigned long, struct clock_event_device *);
 	int (*set_next_event_virt)(unsigned long, struct clock_event_device *);
+	bool disable_compat_vdso;
 };
 
 DECLARE_PER_CPU(const struct arch_timer_erratum_workaround *,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/assembler.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/assembler.h
@@ -462,6 +462,7 @@
 	.endm
 
 /*
+ * Deprecated! Use SYM_FUNC_{START,START_WEAK,END}_PI instead.
  * Annotate a function as position independent, i.e., safe to be called before
  * the kernel virtual mapping is activated.
  */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/atomic.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/atomic.h
@@ -17,7 +17,7 @@
 #include <asm/lse.h>
 
 #define ATOMIC_OP(op)							\
-static inline void arch_##op(int i, atomic_t *v)			\
+static __always_inline void arch_##op(int i, atomic_t *v)		\
 {									\
 	__lse_ll_sc_body(op, i, v);					\
 }
@@ -32,7 +32,7 @@
 #undef ATOMIC_OP
 
 #define ATOMIC_FETCH_OP(name, op)					\
-static inline int arch_##op##name(int i, atomic_t *v)			\
+static __always_inline int arch_##op##name(int i, atomic_t *v)		\
 {									\
 	return __lse_ll_sc_body(op##name, i, v);			\
 }
@@ -56,7 +56,7 @@
 #undef ATOMIC_FETCH_OPS
 
 #define ATOMIC64_OP(op)							\
-static inline void arch_##op(long i, atomic64_t *v)			\
+static __always_inline void arch_##op(long i, atomic64_t *v)		\
 {									\
 	__lse_ll_sc_body(op, i, v);					\
 }
@@ -71,7 +71,7 @@
 #undef ATOMIC64_OP
 
 #define ATOMIC64_FETCH_OP(name, op)					\
-static inline long arch_##op##name(long i, atomic64_t *v)		\
+static __always_inline long arch_##op##name(long i, atomic64_t *v)	\
 {									\
 	return __lse_ll_sc_body(op##name, i, v);			\
 }
@@ -94,7 +94,7 @@
 #undef ATOMIC64_FETCH_OP
 #undef ATOMIC64_FETCH_OPS
 
-static inline long arch_atomic64_dec_if_positive(atomic64_t *v)
+static __always_inline long arch_atomic64_dec_if_positive(atomic64_t *v)
 {
 	return __lse_ll_sc_body(atomic64_dec_if_positive, v);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/atomic_lse.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/atomic_lse.h
@@ -14,6 +14,7 @@
 static inline void __lse_atomic_##op(int i, atomic_t *v)			\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op "	%w[i], %[v]\n"					\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v));							\
@@ -30,6 +31,7 @@
 static inline int __lse_atomic_fetch_##op##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op #mb "	%w[i], %w[i], %[v]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v)							\
@@ -58,6 +60,7 @@
 	u32 tmp;							\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	ldadd" #mb "	%w[i], %w[tmp], %[v]\n"			\
 	"	add	%w[i], %w[i], %w[tmp]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
@@ -77,6 +80,7 @@
 static inline void __lse_atomic_and(int i, atomic_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	mvn	%w[i], %w[i]\n"
 	"	stclr	%w[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -87,6 +91,7 @@
 static inline int __lse_atomic_fetch_and##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mvn	%w[i], %w[i]\n"					\
 	"	ldclr" #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -106,6 +111,7 @@
 static inline void __lse_atomic_sub(int i, atomic_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	neg	%w[i], %w[i]\n"
 	"	stadd	%w[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -118,6 +124,7 @@
 	u32 tmp;							\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%w[i], %w[i]\n"					\
 	"	ldadd" #mb "	%w[i], %w[tmp], %[v]\n"			\
 	"	add	%w[i], %w[i], %w[tmp]"				\
@@ -139,6 +146,7 @@
 static inline int __lse_atomic_fetch_sub##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%w[i], %w[i]\n"					\
 	"	ldadd" #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -159,6 +167,7 @@
 static inline void __lse_atomic64_##op(s64 i, atomic64_t *v)		\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op "	%[i], %[v]\n"					\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v));							\
@@ -175,6 +184,7 @@
 static inline long __lse_atomic64_fetch_##op##name(s64 i, atomic64_t *v)\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op #mb "	%[i], %[i], %[v]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v)							\
@@ -203,6 +213,7 @@
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	ldadd" #mb "	%[i], %x[tmp], %[v]\n"			\
 	"	add	%[i], %[i], %x[tmp]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
@@ -222,6 +233,7 @@
 static inline void __lse_atomic64_and(s64 i, atomic64_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	mvn	%[i], %[i]\n"
 	"	stclr	%[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -232,6 +244,7 @@
 static inline long __lse_atomic64_fetch_and##name(s64 i, atomic64_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mvn	%[i], %[i]\n"					\
 	"	ldclr" #mb "	%[i], %[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -251,6 +264,7 @@
 static inline void __lse_atomic64_sub(s64 i, atomic64_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	neg	%[i], %[i]\n"
 	"	stadd	%[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -263,6 +277,7 @@
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%[i], %[i]\n"					\
 	"	ldadd" #mb "	%[i], %x[tmp], %[v]\n"			\
 	"	add	%[i], %[i], %x[tmp]"				\
@@ -284,6 +299,7 @@
 static inline long __lse_atomic64_fetch_sub##name(s64 i, atomic64_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%[i], %[i]\n"					\
 	"	ldadd" #mb "	%[i], %[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -305,6 +321,7 @@
 	unsigned long tmp;
 
 	asm volatile(
+	__LSE_PREAMBLE
 	"1:	ldr	%x[tmp], %[v]\n"
 	"	subs	%[ret], %x[tmp], #1\n"
 	"	b.lt	2f\n"
@@ -332,6 +349,7 @@
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mov	%" #w "[tmp], %" #w "[old]\n"			\
 	"	cas" #mb #sfx "\t%" #w "[tmp], %" #w "[new], %[v]\n"	\
 	"	mov	%" #w "[ret], %" #w "[tmp]"			\
@@ -379,6 +397,7 @@
 	register unsigned long x4 asm ("x4") = (unsigned long)ptr;	\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	casp" #mb "\t%[old1], %[old2], %[new1], %[new2], %[v]\n"\
 	"	eor	%[old1], %[old1], %[oldval1]\n"			\
 	"	eor	%[old2], %[old2], %[oldval2]\n"			\
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/cache.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/cache.h
@@ -11,6 +11,7 @@
 #define CTR_L1IP_MASK		3
 #define CTR_DMINLINE_SHIFT	16
 #define CTR_IMINLINE_SHIFT	0
+#define CTR_IMINLINE_MASK	0xf
 #define CTR_ERG_SHIFT		20
 #define CTR_CWG_SHIFT		24
 #define CTR_CWG_MASK		15
@@ -18,7 +19,7 @@
 #define CTR_DIC_SHIFT		29
 
 #define CTR_CACHE_MINLINE_MASK	\
-	(0xf << CTR_DMINLINE_SHIFT | 0xf << CTR_IMINLINE_SHIFT)
+	(0xf << CTR_DMINLINE_SHIFT | CTR_IMINLINE_MASK << CTR_IMINLINE_SHIFT)
 
 #define CTR_L1IP(ctr)		(((ctr) >> CTR_L1IP_SHIFT) & CTR_L1IP_MASK)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/cacheflush.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/cacheflush.h
@@ -79,7 +79,7 @@
 	 * IPI all online CPUs so that they undergo a context synchronization
 	 * event and are forced to refetch the new instructions.
 	 */
-#ifdef CONFIG_KGDB
+
 	/*
 	 * KGDB performs cache maintenance with interrupts disabled, so we
 	 * will deadlock trying to IPI the secondary CPUs. In theory, we can
@@ -89,9 +89,9 @@
 	 * the patching operation, so we don't need extra IPIs here anyway.
 	 * In which case, add a KGDB-specific bodge and return early.
 	 */
-	if (kgdb_connected && irqs_disabled())
+	if (in_dbg_master())
 		return;
-#endif
+
 	kick_all_cpus_sync();
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/checksum.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/checksum.h
@@ -19,16 +19,17 @@
 {
 	__uint128_t tmp;
 	u64 sum;
+	int n = ihl; /* we want it signed */
 
 	tmp = *(const __uint128_t *)iph;
 	iph += 16;
-	ihl -= 4;
+	n -= 4;
 	tmp += ((tmp >> 64) | (tmp << 64));
 	sum = tmp >> 64;
 	do {
 		sum += *(const u32 *)iph;
 		iph += 4;
-	} while (--ihl);
+	} while (--n > 0);
 
 	sum += ((sum >> 32) | (sum << 32));
 	return csum_fold((__force u32)(sum >> 32));
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/clocksource.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/clocksource.h
@@ -2,8 +2,11 @@
 #ifndef _ASM_CLOCKSOURCE_H
 #define _ASM_CLOCKSOURCE_H
 
+#include <asm/vdso/clocksource.h>
+
 struct arch_clocksource_data {
-	bool vdso_direct;	/* Usable for direct VDSO access? */
+	/* Usable for direct VDSO access? */
+	enum vdso_arch_clockmode clock_mode;
 };
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/compat.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/compat.h
@@ -4,6 +4,9 @@
  */
 #ifndef __ASM_COMPAT_H
 #define __ASM_COMPAT_H
+
+#include <asm-generic/compat.h>
+
 #ifdef CONFIG_COMPAT
 
 /*
@@ -13,8 +16,6 @@
 #include <linux/sched.h>
 #include <linux/sched/task_stack.h>
 
-#include <asm-generic/compat.h>
-
 #define COMPAT_USER_HZ		100
 #ifdef __AARCH64EB__
 #define COMPAT_UTS_MACHINE	"armv8b\0\0"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/cpucaps.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/cpucaps.h
@@ -54,7 +54,8 @@
 #define ARM64_WORKAROUND_1463225		44
 #define ARM64_WORKAROUND_CAVIUM_TX2_219_TVM	45
 #define ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM	46
+#define ARM64_WORKAROUND_1542419		47
 
-#define ARM64_NCAPS				47
+#define ARM64_NCAPS				48
 
 #endif /* __ASM_CPUCAPS_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/cpufeature.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/cpufeature.h
@@ -262,6 +262,8 @@
 /*
  * CPU feature detected at boot time based on feature of one or more CPUs.
  * All possible conflicts for a late CPU are ignored.
+ * NOTE: this means that a late CPU with the feature will *not* cause the
+ * capability to be advertised by cpus_have_*cap()!
  */
 #define ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE		\
 	(ARM64_CPUCAP_SCOPE_LOCAL_CPU		|	\
@@ -601,7 +603,7 @@
 		 cpus_have_const_cap(ARM64_HAS_GENERIC_AUTH_IMP_DEF));
 }
 
-static inline bool system_uses_irq_prio_masking(void)
+static __always_inline bool system_uses_irq_prio_masking(void)
 {
 	return IS_ENABLED(CONFIG_ARM64_PSEUDO_NMI) &&
 	       cpus_have_const_cap(ARM64_HAS_IRQ_PRIO_MASKING);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/daifflags.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/daifflags.h
@@ -36,7 +36,7 @@
 	trace_hardirqs_off();
 }
 
-static inline unsigned long local_daif_save(void)
+static inline unsigned long local_daif_save_flags(void)
 {
 	unsigned long flags;
 
@@ -48,6 +48,15 @@
 			flags |= PSR_I_BIT;
 	}
 
+	return flags;
+}
+
+static inline unsigned long local_daif_save(void)
+{
+	unsigned long flags;
+
+	flags = local_daif_save_flags();
+
 	local_daif_mask();
 
 	return flags;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/debug-monitors.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/debug-monitors.h
@@ -109,6 +109,8 @@
 
 void user_rewind_single_step(struct task_struct *task);
 void user_fastforward_single_step(struct task_struct *task);
+void user_regs_reset_single_step(struct user_pt_regs *regs,
+				 struct task_struct *task);
 
 void kernel_enable_single_step(struct pt_regs *regs);
 void kernel_disable_single_step(void);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/kvm_arm.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/kvm_arm.h
@@ -72,11 +72,12 @@
  * IMO:		Override CPSR.I and enable signaling with VI
  * FMO:		Override CPSR.F and enable signaling with VF
  * SWIO:	Turn set/way invalidates into set/way clean+invalidate
+ * PTW:		Take a stage2 fault if a stage1 walk steps in device memory
  */
 #define HCR_GUEST_FLAGS (HCR_TSC | HCR_TSW | HCR_TWE | HCR_TWI | HCR_VM | \
 			 HCR_TVM | HCR_BSU_IS | HCR_FB | HCR_TAC | \
 			 HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW | HCR_TLOR | \
-			 HCR_FMO | HCR_IMO)
+			 HCR_FMO | HCR_IMO | HCR_PTW )
 #define HCR_VIRT_EXCP_MASK (HCR_VSE | HCR_VI | HCR_VF)
 #define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK)
 #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/kvm_asm.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/kvm_asm.h
@@ -60,7 +60,7 @@
 extern void __kvm_flush_vm_context(void);
 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
-extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
+extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
 
 extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);
 
@@ -88,6 +88,34 @@
 		*__hyp_this_cpu_ptr(sym);				\
 	 })
 
+#define __KVM_EXTABLE(from, to)						\
+	"	.pushsection	__kvm_ex_table, \"a\"\n"		\
+	"	.align		3\n"					\
+	"	.long		(" #from " - .), (" #to " - .)\n"	\
+	"	.popsection\n"
+
+
+#define __kvm_at(at_op, addr)						\
+( { 									\
+	int __kvm_at_err = 0;						\
+	u64 spsr, elr;							\
+	asm volatile(							\
+	"	mrs	%1, spsr_el2\n"					\
+	"	mrs	%2, elr_el2\n"					\
+	"1:	at	"at_op", %3\n"					\
+	"	isb\n"							\
+	"	b	9f\n"						\
+	"2:	msr	spsr_el2, %1\n"					\
+	"	msr	elr_el2, %2\n"					\
+	"	mov	%w0, %4\n"					\
+	"9:\n"								\
+	__KVM_EXTABLE(1b, 2b)						\
+	: "+r" (__kvm_at_err), "=&r" (spsr), "=&r" (elr)		\
+	: "r" (addr), "i" (-EFAULT));					\
+	__kvm_at_err;							\
+} )
+
+
 #else /* __ASSEMBLY__ */
 
 .macro hyp_adr_this_cpu reg, sym, tmp
@@ -113,6 +141,21 @@
 	kern_hyp_va	\vcpu
 .endm
 
+/*
+ * KVM extable for unexpected exceptions.
+ * In the same format _asm_extable, but output to a different section so that
+ * it can be mapped to EL2. The KVM version is not sorted. The caller must
+ * ensure:
+ * x18 has the hypervisor value to allow any Shadow-Call-Stack instrumented
+ * code to write to it, and that SPSR_EL2 and ELR_EL2 are restored by the fixup.
+ */
+.macro	_kvm_extable, from, to
+	.pushsection	__kvm_ex_table, "a"
+	.align		3
+	.long		(\from - .), (\to - .)
+	.popsection
+.endm
+
 #endif
 
 #endif /* __ARM_KVM_ASM_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/kvm_emulate.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/kvm_emulate.h
@@ -97,12 +97,6 @@
 	vcpu->arch.hcr_el2 &= ~(HCR_API | HCR_APK);
 }
 
-static inline void vcpu_ptrauth_setup_lazy(struct kvm_vcpu *vcpu)
-{
-	if (vcpu_has_ptrauth(vcpu))
-		vcpu_ptrauth_disable(vcpu);
-}
-
 static inline unsigned long vcpu_get_vsesr(struct kvm_vcpu *vcpu)
 {
 	return vcpu->arch.vsesr_el2;
@@ -204,6 +198,38 @@
 		vcpu_gp_regs(vcpu)->spsr[KVM_SPSR_EL1] = v;
 }
 
+/*
+ * The layout of SPSR for an AArch32 state is different when observed from an
+ * AArch64 SPSR_ELx or an AArch32 SPSR_*. This function generates the AArch32
+ * view given an AArch64 view.
+ *
+ * In ARM DDI 0487E.a see:
+ *
+ * - The AArch64 view (SPSR_EL2) in section C5.2.18, page C5-426
+ * - The AArch32 view (SPSR_abt) in section G8.2.126, page G8-6256
+ * - The AArch32 view (SPSR_und) in section G8.2.132, page G8-6280
+ *
+ * Which show the following differences:
+ *
+ * | Bit | AA64 | AA32 | Notes                       |
+ * +-----+------+------+-----------------------------|
+ * | 24  | DIT  | J    | J is RES0 in ARMv8          |
+ * | 21  | SS   | DIT  | SS doesn't exist in AArch32 |
+ *
+ * ... and all other bits are (currently) common.
+ */
+static inline unsigned long host_spsr_to_spsr32(unsigned long spsr)
+{
+	const unsigned long overlap = BIT(24) | BIT(21);
+	unsigned long dit = !!(spsr & PSR_AA32_DIT_BIT);
+
+	spsr &= ~overlap;
+
+	spsr |= dit << 21;
+
+	return spsr;
+}
+
 static inline bool vcpu_mode_priv(const struct kvm_vcpu *vcpu)
 {
 	u32 mode;
@@ -263,12 +289,17 @@
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SSE);
 }
 
+static inline bool kvm_vcpu_dabt_issf(const struct kvm_vcpu *vcpu)
+{
+	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SF);
+}
+
 static inline int kvm_vcpu_dabt_get_rd(const struct kvm_vcpu *vcpu)
 {
 	return (kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
 }
 
-static inline bool kvm_vcpu_dabt_iss1tw(const struct kvm_vcpu *vcpu)
+static __always_inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
 {
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_S1PTW);
 }
@@ -276,7 +307,7 @@
 static inline bool kvm_vcpu_dabt_iswrite(const struct kvm_vcpu *vcpu)
 {
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_WNR) ||
-		kvm_vcpu_dabt_iss1tw(vcpu); /* AF/DBM update */
+		kvm_vcpu_abt_iss1tw(vcpu); /* AF/DBM update */
 }
 
 static inline bool kvm_vcpu_dabt_is_cm(const struct kvm_vcpu *vcpu)
@@ -305,6 +336,11 @@
 	return kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_IABT_LOW;
 }
 
+static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
+{
+	return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
+}
+
 static inline u8 kvm_vcpu_trap_get_fault(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC;
@@ -342,6 +378,9 @@
 
 static inline bool kvm_is_write_fault(struct kvm_vcpu *vcpu)
 {
+	if (kvm_vcpu_abt_iss1tw(vcpu))
+		return true;
+
 	if (kvm_vcpu_trap_is_iabt(vcpu))
 		return false;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/kvm_host.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/kvm_host.h
@@ -182,6 +182,7 @@
 #define c2_TTBR1	(TTBR1_EL1 * 2)	/* Translation Table Base Register 1 */
 #define c2_TTBR1_high	(c2_TTBR1 + 1)	/* TTBR1 top 32 bits */
 #define c2_TTBCR	(TCR_EL1 * 2)	/* Translation Table Base Control R. */
+#define c2_TTBCR2	(c2_TTBCR + 1)	/* Translation Table Base Control R. 2 */
 #define c3_DACR		(DACR32_EL2 * 2)/* Domain Access Control Register */
 #define c5_DFSR		(ESR_EL1 * 2)	/* Data Fault Status Register */
 #define c5_IFSR		(IFSR32_EL2 * 2)/* Instruction Fault Status Register */
@@ -209,6 +210,7 @@
 #define cp14_DBGWCR0	(DBGWCR0_EL1 * 2)
 #define cp14_DBGWVR0	(DBGWVR0_EL1 * 2)
 #define cp14_DBGDCCINT	(MDCCINT_EL1 * 2)
+#define cp14_DBGVCR	(DBGVCR32_EL2 * 2)
 
 #define NR_COPRO_REGS	(NR_SYS_REGS * 2)
 
@@ -392,8 +394,10 @@
  * CP14 and CP15 live in the same array, as they are backed by the
  * same system registers.
  */
-#define vcpu_cp14(v,r)		((v)->arch.ctxt.copro[(r)])
-#define vcpu_cp15(v,r)		((v)->arch.ctxt.copro[(r)])
+#define CPx_BIAS		IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)
+
+#define vcpu_cp14(v,r)		((v)->arch.ctxt.copro[(r) ^ CPx_BIAS])
+#define vcpu_cp15(v,r)		((v)->arch.ctxt.copro[(r) ^ CPx_BIAS])
 
 struct kvm_vm_stat {
 	ulong remote_tlb_flush;
@@ -425,7 +429,7 @@
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
-			unsigned long start, unsigned long end);
+			unsigned long start, unsigned long end, unsigned flags);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
@@ -677,4 +681,6 @@
 #define kvm_arm_vcpu_sve_finalized(vcpu) \
 	((vcpu)->arch.flags & KVM_ARM64_VCPU_SVE_FINALIZED)
 
+#define kvm_arm_vcpu_loaded(vcpu)	((vcpu)->arch.sysregs_loaded_on_cpu)
+
 #endif /* __ARM64_KVM_HOST_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/kvm_mmio.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/kvm_mmio.h
@@ -10,13 +10,11 @@
 #include <linux/kvm_host.h>
 #include <asm/kvm_arm.h>
 
-/*
- * This is annoying. The mmio code requires this, even if we don't
- * need any decoding. To be fixed.
- */
 struct kvm_decode {
 	unsigned long rt;
 	bool sign_extend;
+	/* Witdth of the register accessed by the faulting instruction is 64-bits */
+	bool sixty_four;
 };
 
 void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/linkage.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/linkage.h
@@ -4,4 +4,20 @@
 #define __ALIGN		.align 2
 #define __ALIGN_STR	".align 2"
 
+/*
+ * Annotate a function as position independent, i.e., safe to be called before
+ * the kernel virtual mapping is activated.
+ */
+#define SYM_FUNC_START_PI(x)			\
+		SYM_FUNC_START_ALIAS(__pi_##x);	\
+		SYM_FUNC_START(x)
+
+#define SYM_FUNC_START_WEAK_PI(x)		\
+		SYM_FUNC_START_ALIAS(__pi_##x);	\
+		SYM_FUNC_START_WEAK(x)
+
+#define SYM_FUNC_END_PI(x)			\
+		SYM_FUNC_END(x);		\
+		SYM_FUNC_END_ALIAS(__pi_##x)
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/lse.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/lse.h
@@ -6,6 +6,8 @@
 
 #if defined(CONFIG_AS_LSE) && defined(CONFIG_ARM64_LSE_ATOMICS)
 
+#define __LSE_PREAMBLE	".arch_extension lse\n"
+
 #include <linux/compiler_types.h>
 #include <linux/export.h>
 #include <linux/jump_label.h>
@@ -14,8 +16,6 @@
 #include <asm/atomic_lse.h>
 #include <asm/cpucaps.h>
 
-__asm__(".arch_extension	lse");
-
 extern struct static_key_false cpu_hwcap_keys[ARM64_NCAPS];
 extern struct static_key_false arm64_const_caps_ready;
 
@@ -34,7 +34,7 @@
 
 /* In-line patching at runtime */
 #define ARM64_LSE_ATOMIC_INSN(llsc, lse)				\
-	ALTERNATIVE(llsc, lse, ARM64_HAS_LSE_ATOMICS)
+	ALTERNATIVE(llsc, __LSE_PREAMBLE lse, ARM64_HAS_LSE_ATOMICS)
 
 #else	/* CONFIG_AS_LSE && CONFIG_ARM64_LSE_ATOMICS */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/memory.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/memory.h
@@ -178,7 +178,6 @@
 #include <linux/bitops.h>
 #include <linux/mmdebug.h>
 
-extern s64			physvirt_offset;
 extern s64			memstart_addr;
 /* PHYS_OFFSET - the physical address of the start of memory. */
 #define PHYS_OFFSET		({ VM_BUG_ON(memstart_addr & 1); memstart_addr; })
@@ -219,7 +218,7 @@
 	((__force __typeof__(addr))sign_extend64((__force u64)(addr), 55))
 
 #define untagged_addr(addr)	({					\
-	u64 __addr = (__force u64)addr;					\
+	u64 __addr = (__force u64)(addr);					\
 	__addr &= __untagged_addr(__addr);				\
 	(__force __typeof__(addr))__addr;				\
 })
@@ -248,13 +247,13 @@
 
 
 /*
- * The linear kernel range starts at the bottom of the virtual address
- * space. Testing the top bit for the start of the region is a
- * sufficient check and avoids having to worry about the tag.
+ * Check whether an arbitrary address is within the linear map, which
+ * lives in the [PAGE_OFFSET, PAGE_END) interval at the bottom of the
+ * kernel's TTBR1 address range.
  */
-#define __is_lm_address(addr)	(!(((u64)addr) & BIT(vabits_actual - 1)))
+#define __is_lm_address(addr)	(((u64)(addr) ^ PAGE_OFFSET) < (PAGE_END - PAGE_OFFSET))
 
-#define __lm_to_phys(addr)	(((addr) + physvirt_offset))
+#define __lm_to_phys(addr)	(((addr) & ~PAGE_OFFSET) + PHYS_OFFSET)
 #define __kimg_to_phys(addr)	((addr) - kimage_voffset)
 
 #define __virt_to_phys_nodebug(x) ({					\
@@ -272,7 +271,7 @@
 #define __phys_addr_symbol(x)	__pa_symbol_nodebug(x)
 #endif /* CONFIG_DEBUG_VIRTUAL */
 
-#define __phys_to_virt(x)	((unsigned long)((x) - physvirt_offset))
+#define __phys_to_virt(x)	((unsigned long)((x) - PHYS_OFFSET) | PAGE_OFFSET)
 #define __phys_to_kimg(x)	((unsigned long)((x) + kimage_voffset))
 
 /*
@@ -316,6 +315,11 @@
 #define ARCH_PFN_OFFSET		((unsigned long)PHYS_PFN_OFFSET)
 
 #if !defined(CONFIG_SPARSEMEM_VMEMMAP) || defined(CONFIG_DEBUG_VIRTUAL)
+#define page_to_virt(x)	({						\
+	__typeof__(x) __page = x;					\
+	void *__addr = __va(page_to_phys(__page));			\
+	(void *)__tag_set((const void *)__addr, page_kasan_tag(__page));\
+})
 #define virt_to_page(x)		pfn_to_page(virt_to_pfn(x))
 #else
 #define page_to_virt(x)	({						\
@@ -333,7 +337,7 @@
 #endif /* !CONFIG_SPARSEMEM_VMEMMAP || CONFIG_DEBUG_VIRTUAL */
 
 #define virt_addr_valid(addr)	({					\
-	__typeof__(addr) __addr = addr;					\
+	__typeof__(addr) __addr = __tag_reset(addr);			\
 	__is_lm_address(__addr) && pfn_valid(virt_to_pfn(__addr));	\
 })
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/mmu_context.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/mmu_context.h
@@ -63,10 +63,7 @@
 
 static inline bool __cpu_uses_extended_idmap(void)
 {
-	if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52))
-		return false;
-
-	return unlikely(idmap_t0sz != TCR_T0SZ(VA_BITS));
+	return unlikely(idmap_t0sz != TCR_T0SZ(vabits_actual));
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/numa.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/numa.h
@@ -25,6 +25,9 @@
 /* Returns a pointer to the cpumask of CPUs on Node 'node'. */
 static inline const struct cpumask *cpumask_of_node(int node)
 {
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
 	return node_to_cpumask_map[node];
 }
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/pgtable-prot.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/pgtable-prot.h
@@ -54,7 +54,7 @@
 #define PAGE_HYP		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_HYP_XN)
 #define PAGE_HYP_EXEC		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_RDONLY)
 #define PAGE_HYP_RO		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_RDONLY | PTE_HYP_XN)
-#define PAGE_HYP_DEVICE		__pgprot(PROT_DEVICE_nGnRE | PTE_HYP)
+#define PAGE_HYP_DEVICE		__pgprot(_PROT_DEFAULT | PTE_ATTRINDX(MT_DEVICE_nGnRE) | PTE_HYP | PTE_HYP_XN)
 
 #define PAGE_S2_MEMATTR(attr)						\
 	({								\
@@ -85,13 +85,12 @@
 #define PAGE_SHARED_EXEC	__pgprot(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_WRITE)
 #define PAGE_READONLY		__pgprot(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN)
 #define PAGE_READONLY_EXEC	__pgprot(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN)
-#define PAGE_EXECONLY		__pgprot(_PAGE_DEFAULT | PTE_RDONLY | PTE_NG | PTE_PXN)
 
 #define __P000  PAGE_NONE
 #define __P001  PAGE_READONLY
 #define __P010  PAGE_READONLY
 #define __P011  PAGE_READONLY
-#define __P100  PAGE_EXECONLY
+#define __P100  PAGE_READONLY_EXEC
 #define __P101  PAGE_READONLY_EXEC
 #define __P110  PAGE_READONLY_EXEC
 #define __P111  PAGE_READONLY_EXEC
@@ -100,7 +99,7 @@
 #define __S001  PAGE_READONLY
 #define __S010  PAGE_SHARED
 #define __S011  PAGE_SHARED
-#define __S100  PAGE_EXECONLY
+#define __S100  PAGE_READONLY_EXEC
 #define __S101  PAGE_READONLY_EXEC
 #define __S110  PAGE_SHARED_EXEC
 #define __S111  PAGE_SHARED_EXEC
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/pgtable.h
@@ -23,6 +23,8 @@
 #define VMALLOC_START		(MODULES_END)
 #define VMALLOC_END		(- PUD_SIZE - VMEMMAP_SIZE - SZ_64K)
 
+#define vmemmap			((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT))
+
 #define FIRST_USER_ADDRESS	0UL
 
 #ifndef __ASSEMBLY__
@@ -33,8 +35,6 @@
 #include <linux/mm_types.h>
 #include <linux/sched.h>
 
-extern struct page *vmemmap;
-
 extern void __pte_error(const char *file, int line, unsigned long val);
 extern void __pmd_error(const char *file, int line, unsigned long val);
 extern void __pud_error(const char *file, int line, unsigned long val);
@@ -96,14 +96,8 @@
 #define pte_dirty(pte)		(pte_sw_dirty(pte) || pte_hw_dirty(pte))
 
 #define pte_valid(pte)		(!!(pte_val(pte) & PTE_VALID))
-/*
- * Execute-only user mappings do not have the PTE_USER bit set. All valid
- * kernel mappings have the PTE_UXN bit set.
- */
 #define pte_valid_not_user(pte) \
-	((pte_val(pte) & (PTE_VALID | PTE_USER | PTE_UXN)) == (PTE_VALID | PTE_UXN))
-#define pte_valid_young(pte) \
-	((pte_val(pte) & (PTE_VALID | PTE_AF)) == (PTE_VALID | PTE_AF))
+	((pte_val(pte) & (PTE_VALID | PTE_USER)) == PTE_VALID)
 #define pte_valid_user(pte) \
 	((pte_val(pte) & (PTE_VALID | PTE_USER)) == (PTE_VALID | PTE_USER))
 
@@ -111,14 +105,17 @@
  * Could the pte be present in the TLB? We must check mm_tlb_flush_pending
  * so that we don't erroneously return false for pages that have been
  * remapped as PROT_NONE but are yet to be flushed from the TLB.
+ * Note that we can't make any assumptions based on the state of the access
+ * flag, since ptep_clear_flush_young() elides a DSB when invalidating the
+ * TLB.
  */
 #define pte_accessible(mm, pte)	\
-	(mm_tlb_flush_pending(mm) ? pte_present(pte) : pte_valid_young(pte))
+	(mm_tlb_flush_pending(mm) ? pte_present(pte) : pte_valid(pte))
 
 /*
  * p??_access_permitted() is true for valid user mappings (subject to the
- * write permission check) other than user execute-only which do not have the
- * PTE_USER bit set. PROT_NONE mappings do not have the PTE_VALID bit set.
+ * write permission check). PROT_NONE mappings do not have the PTE_VALID bit
+ * set.
  */
 #define pte_access_permitted(pte, write) \
 	(pte_valid_user(pte) && (!(write) || pte_write(pte)))
@@ -139,13 +136,6 @@
 	return pte;
 }
 
-static inline pte_t pte_wrprotect(pte_t pte)
-{
-	pte = clear_pte_bit(pte, __pgprot(PTE_WRITE));
-	pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
-	return pte;
-}
-
 static inline pte_t pte_mkwrite(pte_t pte)
 {
 	pte = set_pte_bit(pte, __pgprot(PTE_WRITE));
@@ -171,6 +161,20 @@
 	return pte;
 }
 
+static inline pte_t pte_wrprotect(pte_t pte)
+{
+	/*
+	 * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
+	 * clear), set the PTE_DIRTY bit.
+	 */
+	if (pte_hw_dirty(pte))
+		pte = pte_mkdirty(pte);
+
+	pte = clear_pte_bit(pte, __pgprot(PTE_WRITE));
+	pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
+	return pte;
+}
+
 static inline pte_t pte_mkold(pte_t pte)
 {
 	return clear_pte_bit(pte, __pgprot(PTE_AF));
@@ -460,6 +464,7 @@
 extern pgd_t init_pg_end[];
 extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
 extern pgd_t idmap_pg_dir[PTRS_PER_PGD];
+extern pgd_t idmap_pg_end[];
 extern pgd_t tramp_pg_dir[PTRS_PER_PGD];
 
 extern void set_swapper_pgd(pgd_t *pgdp, pgd_t pgd);
@@ -785,12 +790,6 @@
 	pte = READ_ONCE(*ptep);
 	do {
 		old_pte = pte;
-		/*
-		 * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
-		 * clear), set the PTE_DIRTY bit.
-		 */
-		if (pte_hw_dirty(pte))
-			pte = pte_mkdirty(pte);
 		pte = pte_wrprotect(pte);
 		pte_val(pte) = cmpxchg_relaxed(&pte_val(*ptep),
 					       pte_val(old_pte), pte_val(pte));
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/pointer_auth.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/pointer_auth.h
@@ -3,7 +3,6 @@
 #define __ASM_POINTER_AUTH_H
 
 #include <linux/bitops.h>
-#include <linux/random.h>
 
 #include <asm/cpufeature.h>
 #include <asm/memory.h>
@@ -30,6 +29,13 @@
 	struct ptrauth_key apga;
 };
 
+/*
+ * Only include random.h once ptrauth_keys_* structures are defined
+ * to avoid yet another circular include hell (random.h * ends up
+ * including asm/smp.h, which requires ptrauth_keys_kernel).
+ */
+#include <linux/random.h>
+
 static inline void ptrauth_keys_init(struct ptrauth_keys *keys)
 {
 	if (system_supports_address_auth()) {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/ptrace.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/ptrace.h
@@ -62,6 +62,7 @@
 #define PSR_AA32_I_BIT		0x00000080
 #define PSR_AA32_A_BIT		0x00000100
 #define PSR_AA32_E_BIT		0x00000200
+#define PSR_AA32_PAN_BIT	0x00400000
 #define PSR_AA32_SSBS_BIT	0x00800000
 #define PSR_AA32_DIT_BIT	0x01000000
 #define PSR_AA32_Q_BIT		0x08000000
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/sections.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/sections.h
@@ -15,6 +15,7 @@
 extern char __idmap_text_start[], __idmap_text_end[];
 extern char __initdata_begin[], __initdata_end[];
 extern char __inittext_begin[], __inittext_end[];
+extern char __exittext_begin[], __exittext_end[];
 extern char __irqentry_text_start[], __irqentry_text_end[];
 extern char __mmuoff_data_start[], __mmuoff_data_end[];
 extern char __entry_tramp_text_start[], __entry_tramp_text_end[];
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/smp.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/smp.h
@@ -46,7 +46,12 @@
  * Logical CPU mapping.
  */
 extern u64 __cpu_logical_map[NR_CPUS];
-#define cpu_logical_map(cpu)    __cpu_logical_map[cpu]
+extern u64 cpu_logical_map(int cpu);
+
+static inline void set_cpu_logical_map(int cpu, u64 hwid)
+{
+	__cpu_logical_map[cpu] = hwid;
+}
 
 struct seq_file;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/syscall.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/syscall.h
@@ -34,6 +34,10 @@
 				     struct pt_regs *regs)
 {
 	unsigned long error = regs->regs[0];
+
+	if (is_compat_thread(task_thread_info(task)))
+		error = sign_extend64(error, 31);
+
 	return IS_ERR_VALUE(error) ? error : 0;
 }
 
@@ -47,7 +51,13 @@
 					    struct pt_regs *regs,
 					    int error, long val)
 {
-	regs->regs[0] = (long) error ? error : val;
+	if (error)
+		val = error;
+
+	if (is_compat_thread(task_thread_info(task)))
+		val = lower_32_bits(val);
+
+	regs->regs[0] = val;
 }
 
 #define SYSCALL_MAX_ARGS 6
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/sysreg.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/sysreg.h
@@ -49,7 +49,9 @@
 #ifndef CONFIG_BROKEN_GAS_INST
 
 #ifdef __ASSEMBLY__
-#define __emit_inst(x)			.inst (x)
+// The space separator is omitted so that __emit_inst(x) can be parsed as
+// either an assembler directive or an assembler macro argument.
+#define __emit_inst(x)			.inst(x)
 #else
 #define __emit_inst(x)			".inst " __stringify((x)) "\n\t"
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/thread_info.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/thread_info.h
@@ -91,6 +91,7 @@
 #define _TIF_SYSCALL_EMU	(1 << TIF_SYSCALL_EMU)
 #define _TIF_UPROBE		(1 << TIF_UPROBE)
 #define _TIF_FSCHECK		(1 << TIF_FSCHECK)
+#define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
 #define _TIF_32BIT		(1 << TIF_32BIT)
 #define _TIF_SVE		(1 << TIF_SVE)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/uaccess.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/uaccess.h
@@ -62,8 +62,13 @@
 {
 	unsigned long ret, limit = current_thread_info()->addr_limit;
 
+	/*
+	 * Asynchronous I/O running in a kernel thread does not have the
+	 * TIF_TAGGED_ADDR flag of the process owning the mm, so always untag
+	 * the user address before checking.
+	 */
 	if (IS_ENABLED(CONFIG_ARM64_TAGGED_ADDR_ABI) &&
-	    test_thread_flag(TIF_TAGGED_ADDR))
+	    (current->flags & PF_KTHREAD || test_thread_flag(TIF_TAGGED_ADDR)))
 		addr = untagged_addr(addr);
 
 	__chk_user_ptr(addr);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/unistd.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/unistd.h
@@ -25,8 +25,8 @@
 #define __NR_compat_gettimeofday	78
 #define __NR_compat_sigreturn		119
 #define __NR_compat_rt_sigreturn	173
-#define __NR_compat_clock_getres	247
 #define __NR_compat_clock_gettime	263
+#define __NR_compat_clock_getres	264
 #define __NR_compat_clock_gettime64	403
 #define __NR_compat_clock_getres_time64	406
 
@@ -42,7 +42,6 @@
 #endif
 
 #define __ARCH_WANT_SYS_CLONE
-#define __ARCH_WANT_SYS_CLONE3
 
 #ifndef __COMPAT_SYSCALL_NR
 #include <uapi/asm/unistd.h>
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/vdso/clocksource.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/vdso/clocksource.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_VDSOCLOCKSOURCE_H
+#define __ASM_VDSOCLOCKSOURCE_H
+
+enum vdso_arch_clockmode {
+	/* vdso clocksource not usable */
+	VDSO_CLOCKMODE_NONE,
+	/* vdso clocksource for both 32 and 64bit tasks */
+	VDSO_CLOCKMODE_ARCHTIMER,
+	/* vdso clocksource for 64bit tasks only */
+	VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT,
+};
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/vdso/compat_gettimeofday.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/vdso/compat_gettimeofday.h
@@ -10,6 +10,7 @@
 #include <asm/unistd.h>
 #include <uapi/linux/time.h>
 
+#include <asm/vdso/clocksource.h>
 #include <asm/vdso/compat_barrier.h>
 
 #define __VDSO_USE_SYSCALL		ULLONG_MAX
@@ -117,10 +118,10 @@
 	u64 res;
 
 	/*
-	 * clock_mode == 0 implies that vDSO are enabled otherwise
+	 * clock_mode == ARCHTIMER implies that vDSO are enabled otherwise
 	 * fallback on syscall.
 	 */
-	if (clock_mode)
+	if (clock_mode != VDSO_CLOCKMODE_ARCHTIMER)
 		return __VDSO_USE_SYSCALL;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/vdso/gettimeofday.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/vdso/gettimeofday.h
@@ -10,6 +10,8 @@
 #include <asm/unistd.h>
 #include <uapi/linux/time.h>
 
+#include <asm/vdso/clocksource.h>
+
 #define __VDSO_USE_SYSCALL		ULLONG_MAX
 
 #define VDSO_HAS_CLOCK_GETRES		1
@@ -71,10 +73,10 @@
 	u64 res;
 
 	/*
-	 * clock_mode == 0 implies that vDSO are enabled otherwise
+	 * clock_mode != NONE implies that vDSO are enabled otherwise
 	 * fallback on syscall.
 	 */
-	if (clock_mode)
+	if (clock_mode == VDSO_CLOCKMODE_NONE)
 		return __VDSO_USE_SYSCALL;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/asm/vdso/vsyscall.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/asm/vdso/vsyscall.h
@@ -24,9 +24,7 @@
 static __always_inline
 int __arm64_get_clock_mode(struct timekeeper *tk)
 {
-	u32 use_syscall = !tk->tkr_mono.clock->archdata.vdso_direct;
-
-	return use_syscall;
+	return tk->tkr_mono.clock->archdata.clock_mode;
 }
 #define __arch_get_clock_mode __arm64_get_clock_mode
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/uapi/asm/ptrace.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/uapi/asm/ptrace.h
@@ -49,6 +49,7 @@
 #define PSR_SSBS_BIT	0x00001000
 #define PSR_PAN_BIT	0x00400000
 #define PSR_UAO_BIT	0x00800000
+#define PSR_DIT_BIT	0x01000000
 #define PSR_V_BIT	0x10000000
 #define PSR_C_BIT	0x20000000
 #define PSR_Z_BIT	0x40000000
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/include/uapi/asm/unistd.h
+++ linux-gkeop-5.4-5.4.0/arch/arm64/include/uapi/asm/unistd.h
@@ -19,5 +19,6 @@
 #define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
+#define __ARCH_WANT_SYS_CLONE3
 
 #include <asm-generic/unistd.h>
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/acpi.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/acpi.c
@@ -19,6 +19,7 @@
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
+#include <linux/irq_work.h>
 #include <linux/memblock.h>
 #include <linux/of_fdt.h>
 #include <linux/smp.h>
@@ -269,12 +270,19 @@
 int apei_claim_sea(struct pt_regs *regs)
 {
 	int err = -ENOENT;
+	bool return_to_irqs_enabled;
 	unsigned long current_flags;
 
 	if (!IS_ENABLED(CONFIG_ACPI_APEI_GHES))
 		return err;
 
-	current_flags = arch_local_save_flags();
+	current_flags = local_daif_save_flags();
+
+	/* current_flags isn't useful here as daif doesn't tell us about pNMI */
+	return_to_irqs_enabled = !irqs_disabled_flags(arch_local_save_flags());
+
+	if (regs)
+		return_to_irqs_enabled = interrupts_enabled(regs);
 
 	/*
 	 * SEA can interrupt SError, mask it and describe this as an NMI so
@@ -284,6 +292,23 @@
 	nmi_enter();
 	err = ghes_notify_sea();
 	nmi_exit();
+
+	/*
+	 * APEI NMI-like notifications are deferred to irq_work. Unless
+	 * we interrupted irqs-masked code, we can do that now.
+	 */
+	if (!err) {
+		if (return_to_irqs_enabled) {
+			local_daif_restore(DAIF_PROCCTX_NOIRQ);
+			__irq_enter();
+			irq_work_run();
+			__irq_exit();
+		} else {
+			pr_warn_ratelimited("APEI work queued but not completed");
+			err = -EINPROGRESS;
+		}
+	}
+
 	local_daif_restore(current_flags);
 
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/alternative.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/alternative.c
@@ -43,20 +43,8 @@
  */
 static bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
 {
-	unsigned long replptr;
-
-	if (kernel_text_address(pc))
-		return true;
-
-	replptr = (unsigned long)ALT_REPL_PTR(alt);
-	if (pc >= replptr && pc <= (replptr + alt->alt_len))
-		return false;
-
-	/*
-	 * Branching into *another* alternate sequence is doomed, and
-	 * we're not even trying to fix it up.
-	 */
-	BUG();
+	unsigned long replptr = (unsigned long)ALT_REPL_PTR(alt);
+	return !(pc >= replptr && pc <= (replptr + alt->alt_len));
 }
 
 #define align_down(x, a)	((unsigned long)(x) & ~(((unsigned long)(a)) - 1))
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/armv8_deprecated.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/armv8_deprecated.c
@@ -601,7 +601,7 @@
 	},
 	{
 		/* Thumb mode */
-		.instr_mask	= 0x0000fff7,
+		.instr_mask	= 0xfffffff7,
 		.instr_val	= 0x0000b650,
 		.pstate_mask	= (PSR_AA32_T_BIT | PSR_AA32_MODE_MASK),
 		.pstate_val	= (PSR_AA32_T_BIT | PSR_AA32_MODE_USR),
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/cpu_errata.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/cpu_errata.c
@@ -88,13 +88,21 @@
 }
 
 static void
-cpu_enable_trap_ctr_access(const struct arm64_cpu_capabilities *__unused)
+cpu_enable_trap_ctr_access(const struct arm64_cpu_capabilities *cap)
 {
 	u64 mask = arm64_ftr_reg_ctrel0.strict_mask;
+	bool enable_uct_trap = false;
 
 	/* Trap CTR_EL0 access on this CPU, only if it has a mismatch */
 	if ((read_cpuid_cachetype() & mask) !=
 	    (arm64_ftr_reg_ctrel0.sys_val & mask))
+		enable_uct_trap = true;
+
+	/* ... or if the system is affected by an erratum */
+	if (cap->capability == ARM64_WORKAROUND_1542419)
+		enable_uct_trap = true;
+
+	if (enable_uct_trap)
 		sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0);
 }
 
@@ -484,6 +492,12 @@
 	return required;
 }
 
+static void cpu_enable_ssbd_mitigation(const struct arm64_cpu_capabilities *cap)
+{
+	if (ssbd_state != ARM64_SSBD_FORCE_DISABLE)
+		cap->matches(cap, SCOPE_LOCAL_CPU);
+}
+
 /* known invulnerable cores */
 static const struct midr_range arm64_ssb_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A35),
@@ -575,6 +589,7 @@
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A53),
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
 	MIDR_ALL_VERSIONS(MIDR_BRAHMA_B53),
+	MIDR_ALL_VERSIONS(MIDR_HISI_TSV110),
 	{ /* sentinel */ }
 };
 
@@ -626,6 +641,12 @@
 	return (need_wa > 0);
 }
 
+static void
+cpu_enable_branch_predictor_hardening(const struct arm64_cpu_capabilities *cap)
+{
+	cap->matches(cap, SCOPE_LOCAL_CPU);
+}
+
 static const __maybe_unused struct midr_range tx2_family_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_BRCM_VULCAN),
 	MIDR_ALL_VERSIONS(MIDR_CAVIUM_THUNDERX2),
@@ -650,6 +671,18 @@
 	return false;
 }
 
+static bool __maybe_unused
+has_neoverse_n1_erratum_1542419(const struct arm64_cpu_capabilities *entry,
+				int scope)
+{
+	u32 midr = read_cpuid_id();
+	bool has_dic = read_cpuid_cachetype() & BIT(CTR_DIC_SHIFT);
+	const struct midr_range range = MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1);
+
+	WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
+	return is_midr_in_range(midr, &range) && has_dic;
+}
+
 #ifdef CONFIG_HARDEN_EL2_VECTORS
 
 static const struct midr_range arm64_harden_el2_vectors[] = {
@@ -873,9 +906,11 @@
 	},
 #endif
 	{
+		.desc = "Branch predictor hardening",
 		.capability = ARM64_HARDEN_BRANCH_PREDICTOR,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = check_branch_predictor,
+		.cpu_enable = cpu_enable_branch_predictor_hardening,
 	},
 #ifdef CONFIG_HARDEN_EL2_VECTORS
 	{
@@ -889,6 +924,7 @@
 		.capability = ARM64_SSBD,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = has_ssbd_mitigation,
+		.cpu_enable = cpu_enable_ssbd_mitigation,
 		.midr_range_list = arm64_ssb_cpus,
 	},
 #ifdef CONFIG_ARM64_ERRATUM_1418040
@@ -896,6 +932,12 @@
 		.desc = "ARM erratum 1418040",
 		.capability = ARM64_WORKAROUND_1418040,
 		ERRATA_MIDR_RANGE_LIST(erratum_1418040_list),
+		/*
+		 * We need to allow affected CPUs to come in late, but
+		 * also need the non-affected CPUs to be able to come
+		 * in at any point in time. Wonderful.
+		 */
+		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
 	},
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_1165522
@@ -927,6 +969,16 @@
 		ERRATA_MIDR_RANGE_LIST(tx2_family_cpus),
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_1542419
+	{
+		/* we depend on the firmware portion for correctness */
+		.desc = "ARM erratum 1542419 (kernel portion)",
+		.capability = ARM64_WORKAROUND_1542419,
+		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
+		.matches = has_neoverse_n1_erratum_1542419,
+		.cpu_enable = cpu_enable_trap_ctr_access,
+	},
+#endif
 	{
 	}
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/cpufeature.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/cpufeature.c
@@ -32,9 +32,7 @@
 #define COMPAT_ELF_HWCAP_DEFAULT	\
 				(COMPAT_HWCAP_HALF|COMPAT_HWCAP_THUMB|\
 				 COMPAT_HWCAP_FAST_MULT|COMPAT_HWCAP_EDSP|\
-				 COMPAT_HWCAP_TLS|COMPAT_HWCAP_VFP|\
-				 COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\
-				 COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV|\
+				 COMPAT_HWCAP_TLS|COMPAT_HWCAP_IDIV|\
 				 COMPAT_HWCAP_LPAE)
 unsigned int compat_elf_hwcap __read_mostly = COMPAT_ELF_HWCAP_DEFAULT;
 unsigned int compat_elf_hwcap2 __read_mostly;
@@ -162,11 +160,10 @@
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_GIC_SHIFT, 4, 0),
 	S_ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_ASIMD_SHIFT, 4, ID_AA64PFR0_ASIMD_NI),
 	S_ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_FP_SHIFT, 4, ID_AA64PFR0_FP_NI),
-	/* Linux doesn't care about the EL3 */
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL3_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL2_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_SHIFT, 4, ID_AA64PFR0_EL1_64BIT_ONLY),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL0_SHIFT, 4, ID_AA64PFR0_EL0_64BIT_ONLY),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL2_SHIFT, 4, 0),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_SHIFT, 4, ID_AA64PFR0_EL1_64BIT_ONLY),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL0_SHIFT, 4, ID_AA64PFR0_EL0_64BIT_ONLY),
 	ARM64_FTR_END,
 };
 
@@ -322,7 +319,7 @@
 };
 
 static const struct arm64_ftr_bits ftr_id_dfr0[] = {
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 28, 4, 0),
+	/* [31:28] TraceFilt */
 	S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 24, 4, 0xf),	/* PerfMon */
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 20, 4, 0),
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 16, 4, 0),
@@ -721,9 +718,6 @@
 	taint |= check_update_ftr_reg(SYS_ID_AA64MMFR2_EL1, cpu,
 				      info->reg_id_aa64mmfr2, boot->reg_id_aa64mmfr2);
 
-	/*
-	 * EL3 is not our concern.
-	 */
 	taint |= check_update_ftr_reg(SYS_ID_AA64PFR0_EL1, cpu,
 				      info->reg_id_aa64pfr0, boot->reg_id_aa64pfr0);
 	taint |= check_update_ftr_reg(SYS_ID_AA64PFR1_EL1, cpu,
@@ -1098,7 +1092,7 @@
 	/* List of CPUs which have broken DBM support. */
 	static const struct midr_range cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_1024718
-		MIDR_RANGE(MIDR_CORTEX_A55, 0, 0, 1, 0),  // A55 r0p0 -r1p0
+		MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
 #endif
 		{},
 	};
@@ -1367,7 +1361,7 @@
 	{
 		/* FP/SIMD is not implemented */
 		.capability = ARM64_HAS_NO_FPSIMD,
-		.type = ARM64_CPUCAP_SYSTEM_FEATURE,
+		.type = ARM64_CPUCAP_BOOT_RESTRICTED_CPU_LOCAL_FEATURE,
 		.min_field_value = 0,
 		.matches = has_no_fpsimd,
 	},
@@ -1595,6 +1589,12 @@
 		.match_list = list,						\
 	}
 
+#define HWCAP_CAP_MATCH(match, cap_type, cap)					\
+	{									\
+		__HWCAP_CAP(#cap, cap_type, cap)				\
+		.matches = match,						\
+	}
+
 #ifdef CONFIG_ARM64_PTR_AUTH
 static const struct arm64_cpu_capabilities ptr_auth_hwcap_addr_matches[] = {
 	{
@@ -1668,8 +1668,35 @@
 	{},
 };
 
+#ifdef CONFIG_COMPAT
+static bool compat_has_neon(const struct arm64_cpu_capabilities *cap, int scope)
+{
+	/*
+	 * Check that all of MVFR1_EL1.{SIMDSP, SIMDInt, SIMDLS} are available,
+	 * in line with that of arm32 as in vfp_init(). We make sure that the
+	 * check is future proof, by making sure value is non-zero.
+	 */
+	u32 mvfr1;
+
+	WARN_ON(scope == SCOPE_LOCAL_CPU && preemptible());
+	if (scope == SCOPE_SYSTEM)
+		mvfr1 = read_sanitised_ftr_reg(SYS_MVFR1_EL1);
+	else
+		mvfr1 = read_sysreg_s(SYS_MVFR1_EL1);
+
+	return cpuid_feature_extract_unsigned_field(mvfr1, MVFR1_SIMDSP_SHIFT) &&
+		cpuid_feature_extract_unsigned_field(mvfr1, MVFR1_SIMDINT_SHIFT) &&
+		cpuid_feature_extract_unsigned_field(mvfr1, MVFR1_SIMDLS_SHIFT);
+}
+#endif
+
 static const struct arm64_cpu_capabilities compat_elf_hwcaps[] = {
 #ifdef CONFIG_COMPAT
+	HWCAP_CAP_MATCH(compat_has_neon, CAP_COMPAT_HWCAP, COMPAT_HWCAP_NEON),
+	HWCAP_CAP(SYS_MVFR1_EL1, MVFR1_SIMDFMAC_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP, COMPAT_HWCAP_VFPv4),
+	/* Arm v8 mandates MVFR0.FPDP == {0, 2}. So, piggy back on this for the presence of VFP support */
+	HWCAP_CAP(SYS_MVFR0_EL1, MVFR0_FPDP_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP, COMPAT_HWCAP_VFP),
+	HWCAP_CAP(SYS_MVFR0_EL1, MVFR0_FPDP_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP, COMPAT_HWCAP_VFPv3),
 	HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_AES_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_PMULL),
 	HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_AES_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_AES),
 	HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_SHA1_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_SHA1),
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/debug-monitors.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/debug-monitors.c
@@ -141,17 +141,20 @@
 /*
  * Single step API and exception handling.
  */
-static void set_regs_spsr_ss(struct pt_regs *regs)
+static void set_user_regs_spsr_ss(struct user_pt_regs *regs)
 {
 	regs->pstate |= DBG_SPSR_SS;
 }
-NOKPROBE_SYMBOL(set_regs_spsr_ss);
+NOKPROBE_SYMBOL(set_user_regs_spsr_ss);
 
-static void clear_regs_spsr_ss(struct pt_regs *regs)
+static void clear_user_regs_spsr_ss(struct user_pt_regs *regs)
 {
 	regs->pstate &= ~DBG_SPSR_SS;
 }
-NOKPROBE_SYMBOL(clear_regs_spsr_ss);
+NOKPROBE_SYMBOL(clear_user_regs_spsr_ss);
+
+#define set_regs_spsr_ss(r)	set_user_regs_spsr_ss(&(r)->user_regs)
+#define clear_regs_spsr_ss(r)	clear_user_regs_spsr_ss(&(r)->user_regs)
 
 static DEFINE_SPINLOCK(debug_hook_lock);
 static LIST_HEAD(user_step_hook);
@@ -393,17 +396,26 @@
 	 * If single step is active for this thread, then set SPSR.SS
 	 * to 1 to avoid returning to the active-pending state.
 	 */
-	if (test_ti_thread_flag(task_thread_info(task), TIF_SINGLESTEP))
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
 		set_regs_spsr_ss(task_pt_regs(task));
 }
 NOKPROBE_SYMBOL(user_rewind_single_step);
 
 void user_fastforward_single_step(struct task_struct *task)
 {
-	if (test_ti_thread_flag(task_thread_info(task), TIF_SINGLESTEP))
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
 		clear_regs_spsr_ss(task_pt_regs(task));
 }
 
+void user_regs_reset_single_step(struct user_pt_regs *regs,
+				 struct task_struct *task)
+{
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
+		set_user_regs_spsr_ss(regs);
+	else
+		clear_user_regs_spsr_ss(regs);
+}
+
 /* Kernel API */
 void kernel_enable_single_step(struct pt_regs *regs)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/fpsimd.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/fpsimd.c
@@ -269,6 +269,7 @@
  */
 static void task_fpsimd_load(void)
 {
+	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!have_cpu_fpsimd_context());
 
 	if (system_supports_sve() && test_thread_flag(TIF_SVE))
@@ -289,6 +290,7 @@
 		this_cpu_ptr(&fpsimd_last_state);
 	/* set by fpsimd_bind_task_to_cpu() or fpsimd_bind_state_to_cpu() */
 
+	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!have_cpu_fpsimd_context());
 
 	if (!test_thread_flag(TIF_FOREIGN_FPSTATE)) {
@@ -336,7 +338,7 @@
 	return sve_vl_from_vq(__bit_to_vq(bit));
 }
 
-#ifdef CONFIG_SYSCTL
+#if defined(CONFIG_ARM64_SVE) && defined(CONFIG_SYSCTL)
 
 static int sve_proc_do_default_vl(struct ctl_table *table, int write,
 				  void __user *buffer, size_t *lenp,
@@ -382,9 +384,9 @@
 	return 0;
 }
 
-#else /* ! CONFIG_SYSCTL */
+#else /* ! (CONFIG_ARM64_SVE && CONFIG_SYSCTL) */
 static int __init sve_sysctl_init(void) { return 0; }
-#endif /* ! CONFIG_SYSCTL */
+#endif /* ! (CONFIG_ARM64_SVE && CONFIG_SYSCTL) */
 
 #define ZREG(sve_state, vq, n) ((char *)(sve_state) +		\
 	(SVE_SIG_ZREG_OFFSET(vq, n) - SVE_SIG_REGS_OFFSET))
@@ -1092,6 +1094,7 @@
 	struct fpsimd_last_state_struct *last =
 		this_cpu_ptr(&fpsimd_last_state);
 
+	WARN_ON(!system_supports_fpsimd());
 	last->st = &current->thread.uw.fpsimd_state;
 	last->sve_state = current->thread.sve_state;
 	last->sve_vl = current->thread.sve_vl;
@@ -1114,6 +1117,7 @@
 	struct fpsimd_last_state_struct *last =
 		this_cpu_ptr(&fpsimd_last_state);
 
+	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!in_softirq() && !irqs_disabled());
 
 	last->st = st;
@@ -1128,8 +1132,19 @@
  */
 void fpsimd_restore_current_state(void)
 {
-	if (!system_supports_fpsimd())
+	/*
+	 * For the tasks that were created before we detected the absence of
+	 * FP/SIMD, the TIF_FOREIGN_FPSTATE could be set via fpsimd_thread_switch(),
+	 * e.g, init. This could be then inherited by the children processes.
+	 * If we later detect that the system doesn't support FP/SIMD,
+	 * we must clear the flag for  all the tasks to indicate that the
+	 * FPSTATE is clean (as we can't have one) to avoid looping for ever in
+	 * do_notify_resume().
+	 */
+	if (!system_supports_fpsimd()) {
+		clear_thread_flag(TIF_FOREIGN_FPSTATE);
 		return;
+	}
 
 	get_cpu_fpsimd_context();
 
@@ -1148,7 +1163,7 @@
  */
 void fpsimd_update_current_state(struct user_fpsimd_state const *state)
 {
-	if (!system_supports_fpsimd())
+	if (WARN_ON(!system_supports_fpsimd()))
 		return;
 
 	get_cpu_fpsimd_context();
@@ -1179,7 +1194,13 @@
 void fpsimd_flush_task_state(struct task_struct *t)
 {
 	t->thread.fpsimd_cpu = NR_CPUS;
-
+	/*
+	 * If we don't support fpsimd, bail out after we have
+	 * reset the fpsimd_cpu for this task and clear the
+	 * FPSTATE.
+	 */
+	if (!system_supports_fpsimd())
+		return;
 	barrier();
 	set_tsk_thread_flag(t, TIF_FOREIGN_FPSTATE);
 
@@ -1193,6 +1214,7 @@
  */
 static void fpsimd_flush_cpu_state(void)
 {
+	WARN_ON(!system_supports_fpsimd());
 	__this_cpu_write(fpsimd_last_state.st, NULL);
 	set_thread_flag(TIF_FOREIGN_FPSTATE);
 }
@@ -1203,6 +1225,8 @@
  */
 void fpsimd_save_and_flush_cpu_state(void)
 {
+	if (!system_supports_fpsimd())
+		return;
 	WARN_ON(preemptible());
 	__get_cpu_fpsimd_context();
 	fpsimd_save();
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/head.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/head.S
@@ -337,7 +337,7 @@
 	 */
 	adrp	x5, __idmap_text_end
 	clz	x5, x5
-	cmp	x5, TCR_T0SZ(VA_BITS)	// default T0SZ small enough?
+	cmp	x5, TCR_T0SZ(VA_BITS_MIN) // default T0SZ small enough?
 	b.ge	1f			// .. then skip VA range extension
 
 	adr_l	x6, idmap_t0sz
@@ -393,13 +393,19 @@
 
 	/*
 	 * Since the page tables have been populated with non-cacheable
-	 * accesses (MMU disabled), invalidate the idmap and swapper page
-	 * tables again to remove any speculatively loaded cache lines.
+	 * accesses (MMU disabled), invalidate those tables again to
+	 * remove any speculatively loaded cache lines.
 	 */
+	dmb	sy
+
 	adrp	x0, idmap_pg_dir
+	adrp	x1, idmap_pg_end
+	sub	x1, x1, x0
+	bl	__inval_dcache_area
+
+	adrp	x0, init_pg_dir
 	adrp	x1, init_pg_end
 	sub	x1, x1, x0
-	dmb	sy
 	bl	__inval_dcache_area
 
 	ret	x28
@@ -964,6 +970,7 @@
 
 	tlbi	vmalle1				// Remove any stale TLB entries
 	dsb	nsh
+	isb
 
 	msr	sctlr_el1, x19			// re-enable the MMU
 	isb
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/hw_breakpoint.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/hw_breakpoint.c
@@ -730,6 +730,27 @@
 		return 0;
 }
 
+static int watchpoint_report(struct perf_event *wp, unsigned long addr,
+			     struct pt_regs *regs)
+{
+	int step = is_default_overflow_handler(wp);
+	struct arch_hw_breakpoint *info = counter_arch_bp(wp);
+
+	info->trigger = addr;
+
+	/*
+	 * If we triggered a user watchpoint from a uaccess routine, then
+	 * handle the stepping ourselves since userspace really can't help
+	 * us with this.
+	 */
+	if (!user_mode(regs) && info->ctrl.privilege == AARCH64_BREAKPOINT_EL0)
+		step = 1;
+	else
+		perf_bp_event(wp, regs);
+
+	return step;
+}
+
 static int watchpoint_handler(unsigned long addr, unsigned int esr,
 			      struct pt_regs *regs)
 {
@@ -739,7 +760,6 @@
 	u64 val;
 	struct perf_event *wp, **slots;
 	struct debug_info *debug_info;
-	struct arch_hw_breakpoint *info;
 	struct arch_hw_breakpoint_ctrl ctrl;
 
 	slots = this_cpu_ptr(wp_on_reg);
@@ -777,25 +797,13 @@
 		if (dist != 0)
 			continue;
 
-		info = counter_arch_bp(wp);
-		info->trigger = addr;
-		perf_bp_event(wp, regs);
-
-		/* Do we need to handle the stepping? */
-		if (is_default_overflow_handler(wp))
-			step = 1;
+		step = watchpoint_report(wp, addr, regs);
 	}
-	if (min_dist > 0 && min_dist != -1) {
-		/* No exact match found. */
-		wp = slots[closest_match];
-		info = counter_arch_bp(wp);
-		info->trigger = addr;
-		perf_bp_event(wp, regs);
 
-		/* Do we need to handle the stepping? */
-		if (is_default_overflow_handler(wp))
-			step = 1;
-	}
+	/* No exact match found? */
+	if (min_dist > 0 && min_dist != -1)
+		step = watchpoint_report(slots[closest_match], addr, regs);
+
 	rcu_read_unlock();
 
 	if (!step)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/insn.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/insn.c
@@ -21,6 +21,7 @@
 #include <asm/fixmap.h>
 #include <asm/insn.h>
 #include <asm/kprobes.h>
+#include <asm/sections.h>
 
 #define AARCH64_INSN_SF_BIT	BIT(31)
 #define AARCH64_INSN_N_BIT	BIT(22)
@@ -78,16 +79,29 @@
 
 static DEFINE_RAW_SPINLOCK(patch_lock);
 
+static bool is_exit_text(unsigned long addr)
+{
+	/* discarded with init text/data */
+	return system_state < SYSTEM_RUNNING &&
+		addr >= (unsigned long)__exittext_begin &&
+		addr < (unsigned long)__exittext_end;
+}
+
+static bool is_image_text(unsigned long addr)
+{
+	return core_kernel_text(addr) || is_exit_text(addr);
+}
+
 static void __kprobes *patch_map(void *addr, int fixmap)
 {
 	unsigned long uintaddr = (uintptr_t) addr;
-	bool module = !core_kernel_text(uintaddr);
+	bool image = is_image_text(uintaddr);
 	struct page *page;
 
-	if (module && IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
-		page = vmalloc_to_page(addr);
-	else if (!module)
+	if (image)
 		page = phys_to_page(__pa_symbol(addr));
+	else if (IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
+		page = vmalloc_to_page(addr);
 	else
 		return addr;
 
@@ -1508,16 +1522,10 @@
 				    u32 insn)
 {
 	unsigned int immr, imms, n, ones, ror, esz, tmp;
-	u64 mask = ~0UL;
-
-	/* Can't encode full zeroes or full ones */
-	if (!imm || !~imm)
-		return AARCH64_BREAK_FAULT;
+	u64 mask;
 
 	switch (variant) {
 	case AARCH64_INSN_VARIANT_32BIT:
-		if (upper_32_bits(imm))
-			return AARCH64_BREAK_FAULT;
 		esz = 32;
 		break;
 	case AARCH64_INSN_VARIANT_64BIT:
@@ -1529,6 +1537,12 @@
 		return AARCH64_BREAK_FAULT;
 	}
 
+	mask = GENMASK(esz - 1, 0);
+
+	/* Can't encode full zeroes, full ones, or value wider than the mask */
+	if (!imm || imm == mask || imm & ~mask)
+		return AARCH64_BREAK_FAULT;
+
 	/*
 	 * Inverse of Replicate(). Try to spot a repeating pattern
 	 * with a pow2 stride.
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/kgdb.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/kgdb.c
@@ -252,7 +252,7 @@
 	if (!kgdb_single_step)
 		return DBG_HOOK_ERROR;
 
-	kgdb_handle_exception(1, SIGTRAP, 0, regs);
+	kgdb_handle_exception(0, SIGTRAP, 0, regs);
 	return DBG_HOOK_HANDLED;
 }
 NOKPROBE_SYMBOL(kgdb_step_brk_fn);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/machine_kexec.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/machine_kexec.c
@@ -189,6 +189,7 @@
 	 * the offline CPUs. Therefore, we must use the __* variant here.
 	 */
 	__flush_icache_range((uintptr_t)reboot_code_buffer,
+			     (uintptr_t)reboot_code_buffer +
 			     arm64_relocate_new_kernel_size);
 
 	/* Flush the kimage list and its buffers. */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/machine_kexec_file.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/machine_kexec_file.c
@@ -150,8 +150,10 @@
 
 		/* duplicate a device tree blob */
 		ret = fdt_open_into(initial_boot_params, buf, buf_size);
-		if (ret)
+		if (ret) {
+			vfree(buf);
 			return -EINVAL;
+		}
 
 		ret = setup_dtb(image, initrd_load_addr, initrd_len,
 				cmdline, buf);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/module-plts.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/module-plts.c
@@ -270,8 +270,7 @@
 			mod->arch.core.plt_shndx = i;
 		else if (!strcmp(secstrings + sechdrs[i].sh_name, ".init.plt"))
 			mod->arch.init.plt_shndx = i;
-		else if (IS_ENABLED(CONFIG_DYNAMIC_FTRACE) &&
-			 !strcmp(secstrings + sechdrs[i].sh_name,
+		else if (!strcmp(secstrings + sechdrs[i].sh_name,
 				 ".text.ftrace_trampoline"))
 			tramp = sechdrs + i;
 		else if (sechdrs[i].sh_type == SHT_SYMTAB)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/module.lds
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/module.lds
@@ -1,5 +1,5 @@
 SECTIONS {
-	.plt (NOLOAD) : { BYTE(0) }
-	.init.plt (NOLOAD) : { BYTE(0) }
-	.text.ftrace_trampoline (NOLOAD) : { BYTE(0) }
+	.plt 0 (NOLOAD) : { BYTE(0) }
+	.init.plt 0 (NOLOAD) : { BYTE(0) }
+	.text.ftrace_trampoline 0 (NOLOAD) : { BYTE(0) }
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/perf_event.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/perf_event.c
@@ -155,7 +155,7 @@
 
 	pmu_attr = container_of(attr, struct perf_pmu_events_attr, attr);
 
-	return sprintf(page, "event=0x%03llx\n", pmu_attr->id);
+	return sprintf(page, "event=0x%04llx\n", pmu_attr->id);
 }
 
 #define ARMV8_EVENT_ATTR(name, config) \
@@ -303,10 +303,13 @@
 	    test_bit(pmu_attr->id, cpu_pmu->pmceid_bitmap))
 		return attr->mode;
 
-	pmu_attr->id -= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
-	if (pmu_attr->id < ARMV8_PMUV3_MAX_COMMON_EVENTS &&
-	    test_bit(pmu_attr->id, cpu_pmu->pmceid_ext_bitmap))
-		return attr->mode;
+	if (pmu_attr->id >= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE) {
+		u64 id = pmu_attr->id - ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
+
+		if (id < ARMV8_PMUV3_MAX_COMMON_EVENTS &&
+		    test_bit(id, cpu_pmu->pmceid_ext_bitmap))
+			return attr->mode;
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/perf_regs.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/perf_regs.c
@@ -15,15 +15,34 @@
 		return 0;
 
 	/*
-	 * Compat (i.e. 32 bit) mode:
-	 * - PC has been set in the pt_regs struct in kernel_entry,
-	 * - Handle SP and LR here.
+	 * Our handling of compat tasks (PERF_SAMPLE_REGS_ABI_32) is weird, but
+	 * we're stuck with it for ABI compatability reasons.
+	 *
+	 * For a 32-bit consumer inspecting a 32-bit task, then it will look at
+	 * the first 16 registers (see arch/arm/include/uapi/asm/perf_regs.h).
+	 * These correspond directly to a prefix of the registers saved in our
+	 * 'struct pt_regs', with the exception of the PC, so we copy that down
+	 * (x15 corresponds to SP_hyp in the architecture).
+	 *
+	 * So far, so good.
+	 *
+	 * The oddity arises when a 64-bit consumer looks at a 32-bit task and
+	 * asks for registers beyond PERF_REG_ARM_MAX. In this case, we return
+	 * SP_usr, LR_usr and PC in the positions where the AArch64 SP, LR and
+	 * PC registers would normally live. The initial idea was to allow a
+	 * 64-bit unwinder to unwind a 32-bit task and, although it's not clear
+	 * how well that works in practice, somebody might be relying on it.
+	 *
+	 * At the time we make a sample, we don't know whether the consumer is
+	 * 32-bit or 64-bit, so we have to cater for both possibilities.
 	 */
 	if (compat_user_mode(regs)) {
 		if ((u32)idx == PERF_REG_ARM64_SP)
 			return regs->compat_sp;
 		if ((u32)idx == PERF_REG_ARM64_LR)
 			return regs->compat_lr;
+		if (idx == 15)
+			return regs->pc;
 	}
 
 	if ((u32)idx == PERF_REG_ARM64_SP)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/probes/uprobes.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/probes/uprobes.c
@@ -38,7 +38,7 @@
 
 	/* TODO: Currently we do not support AARCH32 instruction probing */
 	if (mm->context.flags & MMCF_AARCH32)
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	else if (!IS_ALIGNED(addr, AARCH64_INSN_SIZE))
 		return -EINVAL;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/process.c
@@ -360,8 +360,8 @@
 
 asmlinkage void ret_from_fork(void) asm("ret_from_fork");
 
-int copy_thread(unsigned long clone_flags, unsigned long stack_start,
-		unsigned long stk_sz, struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long stack_start,
+		unsigned long stk_sz, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *childregs = task_pt_regs(p);
 
@@ -394,11 +394,11 @@
 		}
 
 		/*
-		 * If a TLS pointer was passed to clone (4th argument), use it
-		 * for the new thread.
+		 * If a TLS pointer was passed to clone, use it for the new
+		 * thread.
 		 */
 		if (clone_flags & CLONE_SETTLS)
-			p->thread.uw.tp_value = childregs->regs[3];
+			p->thread.uw.tp_value = tls;
 	} else {
 		memset(childregs, 0, sizeof(struct pt_regs));
 		childregs->pstate = PSR_MODE_EL1h;
@@ -466,6 +466,13 @@
 	if (unlikely(next->flags & PF_KTHREAD))
 		return;
 
+	/*
+	 * If all CPUs implement the SSBS extension, then we just need to
+	 * context-switch the PSTATE field.
+	 */
+	if (cpu_have_feature(cpu_feature(SSBS)))
+		return;
+
 	/* If the mitigation is enabled, then we leave SSBS clear. */
 	if ((arm64_get_ssbd_state() == ARM64_SSBD_FORCE_ENABLE) ||
 	    test_tsk_thread_flag(next, TIF_SSBD))
@@ -492,6 +499,38 @@
 }
 
 /*
+ * ARM erratum 1418040 handling, affecting the 32bit view of CNTVCT.
+ * Assuming the virtual counter is enabled at the beginning of times:
+ *
+ * - disable access when switching from a 64bit task to a 32bit task
+ * - enable access when switching from a 32bit task to a 64bit task
+ */
+static void erratum_1418040_thread_switch(struct task_struct *prev,
+					  struct task_struct *next)
+{
+	bool prev32, next32;
+	u64 val;
+
+	if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040))
+		return;
+
+	prev32 = is_compat_thread(task_thread_info(prev));
+	next32 = is_compat_thread(task_thread_info(next));
+
+	if (prev32 == next32 || !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
+		return;
+
+	val = read_sysreg(cntkctl_el1);
+
+	if (!next32)
+		val |= ARCH_TIMER_USR_VCT_ACCESS_EN;
+	else
+		val &= ~ARCH_TIMER_USR_VCT_ACCESS_EN;
+
+	write_sysreg(val, cntkctl_el1);
+}
+
+/*
  * Thread switching.
  */
 __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
@@ -507,6 +546,7 @@
 	uao_thread_switch(next);
 	ptrauth_thread_switch(next);
 	ssbs_thread_switch(next);
+	erratum_1418040_thread_switch(prev, next);
 
 	/*
 	 * Complete any pending TLB or cache maintenance on this CPU in case
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/psci.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/psci.c
@@ -66,7 +66,6 @@
 
 static void cpu_psci_cpu_die(unsigned int cpu)
 {
-	int ret;
 	/*
 	 * There are no known implementations of PSCI actually using the
 	 * power state field, pass a sensible default for now.
@@ -74,14 +73,13 @@
 	u32 state = PSCI_POWER_STATE_TYPE_POWER_DOWN <<
 		    PSCI_0_2_POWER_STATE_TYPE_SHIFT;
 
-	ret = psci_ops.cpu_off(state);
-
-	pr_crit("unable to power off CPU%u (%d)\n", cpu, ret);
+	psci_ops.cpu_off(state);
 }
 
 static int cpu_psci_cpu_kill(unsigned int cpu)
 {
-	int err, i;
+	int err;
+	unsigned long start, end;
 
 	if (!psci_ops.affinity_info)
 		return 0;
@@ -91,16 +89,18 @@
 	 * while it is dying. So, try again a few times.
 	 */
 
-	for (i = 0; i < 10; i++) {
+	start = jiffies;
+	end = start + msecs_to_jiffies(100);
+	do {
 		err = psci_ops.affinity_info(cpu_logical_map(cpu), 0);
 		if (err == PSCI_0_2_AFFINITY_LEVEL_OFF) {
-			pr_info("CPU%d killed.\n", cpu);
+			pr_info("CPU%d killed (polled %d ms)\n", cpu,
+				jiffies_to_msecs(jiffies - start));
 			return 0;
 		}
 
-		msleep(10);
-		pr_info("Retrying again to check for CPU kill\n");
-	}
+		usleep_range(100, 1000);
+	} while (time_before(jiffies, end));
 
 	pr_warn("CPU%d may not have shut down cleanly (AFFINITY_INFO reports %d)\n",
 			cpu, err);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/ptrace.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/ptrace.c
@@ -615,6 +615,13 @@
 	return 0;
 }
 
+static int fpr_active(struct task_struct *target, const struct user_regset *regset)
+{
+	if (!system_supports_fpsimd())
+		return -ENODEV;
+	return regset->n;
+}
+
 /*
  * TODO: update fp accessors for lazy context switching (sync/flush hwstate)
  */
@@ -637,6 +644,9 @@
 		   unsigned int pos, unsigned int count,
 		   void *kbuf, void __user *ubuf)
 {
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	if (target == current)
 		fpsimd_preserve_current_state();
 
@@ -676,6 +686,9 @@
 {
 	int ret;
 
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	ret = __fpr_set(target, regset, pos, count, kbuf, ubuf, 0);
 	if (ret)
 		return ret;
@@ -1134,6 +1147,7 @@
 		 */
 		.size = sizeof(u32),
 		.align = sizeof(u32),
+		.active = fpr_active,
 		.get = fpr_get,
 		.set = fpr_set
 	},
@@ -1348,6 +1362,9 @@
 	compat_ulong_t fpscr;
 	int ret, vregs_end_pos;
 
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	uregs = &target->thread.uw.fpsimd_state;
 
 	if (target == current)
@@ -1381,6 +1398,9 @@
 	compat_ulong_t fpscr;
 	int ret, vregs_end_pos;
 
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	uregs = &target->thread.uw.fpsimd_state;
 
 	vregs_end_pos = VFP_STATE_SIZE - sizeof(compat_ulong_t);
@@ -1438,6 +1458,7 @@
 		.n = VFP_STATE_SIZE / sizeof(compat_ulong_t),
 		.size = sizeof(compat_ulong_t),
 		.align = sizeof(compat_ulong_t),
+		.active = fpr_active,
 		.get = compat_vfp_get,
 		.set = compat_vfp_set
 	},
@@ -1798,20 +1819,32 @@
 	saved_reg = regs->regs[regno];
 	regs->regs[regno] = dir;
 
-	if (dir == PTRACE_SYSCALL_EXIT)
+	if (dir == PTRACE_SYSCALL_ENTER) {
+		if (tracehook_report_syscall_entry(regs))
+			forget_syscall(regs);
+		regs->regs[regno] = saved_reg;
+	} else if (!test_thread_flag(TIF_SINGLESTEP)) {
 		tracehook_report_syscall_exit(regs, 0);
-	else if (tracehook_report_syscall_entry(regs))
-		forget_syscall(regs);
+		regs->regs[regno] = saved_reg;
+	} else {
+		regs->regs[regno] = saved_reg;
 
-	regs->regs[regno] = saved_reg;
+		/*
+		 * Signal a pseudo-step exception since we are stepping but
+		 * tracer modifications to the registers may have rewound the
+		 * state machine.
+		 */
+		tracehook_report_syscall_exit(regs, 1);
+	}
 }
 
 int syscall_trace_enter(struct pt_regs *regs)
 {
-	if (test_thread_flag(TIF_SYSCALL_TRACE) ||
-		test_thread_flag(TIF_SYSCALL_EMU)) {
+	unsigned long flags = READ_ONCE(current_thread_info()->flags);
+
+	if (flags & (_TIF_SYSCALL_EMU | _TIF_SYSCALL_TRACE)) {
 		tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
-		if (!in_syscall(regs) || test_thread_flag(TIF_SYSCALL_EMU))
+		if (flags & _TIF_SYSCALL_EMU)
 			return -1;
 	}
 
@@ -1830,12 +1863,14 @@
 
 void syscall_trace_exit(struct pt_regs *regs)
 {
+	unsigned long flags = READ_ONCE(current_thread_info()->flags);
+
 	audit_syscall_exit(regs);
 
-	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
+	if (flags & _TIF_SYSCALL_TRACEPOINT)
 		trace_sys_exit(regs, regs_return_value(regs));
 
-	if (test_thread_flag(TIF_SYSCALL_TRACE))
+	if (flags & (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP))
 		tracehook_report_syscall(regs, PTRACE_SYSCALL_EXIT);
 
 	rseq_syscall(regs);
@@ -1913,8 +1948,8 @@
  */
 int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task)
 {
-	if (!test_tsk_thread_flag(task, TIF_SINGLESTEP))
-		regs->pstate &= ~DBG_SPSR_SS;
+	/* https://lore.kernel.org/lkml/20191118131525.GA4180@willie-the-truck */
+	user_regs_reset_single_step(regs, task);
 
 	if (is_compat_thread(task_thread_info(task)))
 		return valid_compat_regs(regs);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/setup.c
@@ -85,7 +85,7 @@
 void __init smp_setup_processor_id(void)
 {
 	u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
-	cpu_logical_map(0) = mpidr;
+	set_cpu_logical_map(0, mpidr);
 
 	/*
 	 * clear __my_cpu_offset on boot CPU to avoid hang caused by
@@ -276,6 +276,12 @@
 
 u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
 
+u64 cpu_logical_map(int cpu)
+{
+	return __cpu_logical_map[cpu];
+}
+EXPORT_SYMBOL_GPL(cpu_logical_map);
+
 void __init setup_arch(char **cmdline_p)
 {
 	init_mm.start_code = (unsigned long) _text;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/signal.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/signal.c
@@ -782,7 +782,6 @@
  */
 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
 {
-	struct task_struct *tsk = current;
 	sigset_t *oldset = sigmask_to_save();
 	int usig = ksig->sig;
 	int ret;
@@ -806,14 +805,8 @@
 	 */
 	ret |= !valid_user_regs(&regs->user_regs, current);
 
-	/*
-	 * Fast forward the stepping logic so we step into the signal
-	 * handler.
-	 */
-	if (!ret)
-		user_fastforward_single_step(tsk);
-
-	signal_setup_done(ret, ksig, 0);
+	/* Step into the signal handler if we are stepping */
+	signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP));
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/smp.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/smp.c
@@ -215,6 +215,7 @@
 	if (system_uses_irq_prio_masking())
 		init_gic_priority_masking();
 
+	rcu_cpu_starting(cpu);
 	preempt_disable();
 	trace_hardirqs_off();
 
@@ -387,6 +388,7 @@
 
 	/* Mark this CPU absent */
 	set_cpu_present(cpu, 0);
+	rcu_report_dead(cpu);
 
 #ifdef CONFIG_HOTPLUG_CPU
 	update_cpu_boot_status(CPU_KILL_ME);
@@ -549,7 +551,7 @@
 		return;
 
 	/* map the logical cpu id to cpu MPIDR */
-	cpu_logical_map(cpu_count) = hwid;
+	set_cpu_logical_map(cpu_count, hwid);
 
 	cpu_madt_gicc[cpu_count] = *processor;
 
@@ -663,7 +665,7 @@
 			goto next;
 
 		pr_debug("cpu logical map 0x%llx\n", hwid);
-		cpu_logical_map(cpu_count) = hwid;
+		set_cpu_logical_map(cpu_count, hwid);
 
 		early_map_cpu_to_node(cpu_count, of_node_to_nid(dn));
 next:
@@ -704,7 +706,7 @@
 	for (i = 1; i < nr_cpu_ids; i++) {
 		if (cpu_logical_map(i) != INVALID_HWID) {
 			if (smp_cpu_setup(i))
-				cpu_logical_map(i) = INVALID_HWID;
+				set_cpu_logical_map(i, INVALID_HWID);
 		}
 	}
 }
@@ -955,11 +957,22 @@
 }
 #endif
 
+/*
+ * The number of CPUs online, not counting this CPU (which may not be
+ * fully online and so not counted in num_online_cpus()).
+ */
+static inline unsigned int num_other_online_cpus(void)
+{
+	unsigned int this_cpu_online = cpu_online(smp_processor_id());
+
+	return num_online_cpus() - this_cpu_online;
+}
+
 void smp_send_stop(void)
 {
 	unsigned long timeout;
 
-	if (num_online_cpus() > 1) {
+	if (num_other_online_cpus()) {
 		cpumask_t mask;
 
 		cpumask_copy(&mask, cpu_online_mask);
@@ -972,10 +985,10 @@
 
 	/* Wait up to one second for other CPUs to stop */
 	timeout = USEC_PER_SEC;
-	while (num_online_cpus() > 1 && timeout--)
+	while (num_other_online_cpus() && timeout--)
 		udelay(1);
 
-	if (num_online_cpus() > 1)
+	if (num_other_online_cpus())
 		pr_warning("SMP: failed to stop secondary CPUs %*pbl\n",
 			   cpumask_pr_args(cpu_online_mask));
 
@@ -998,7 +1011,11 @@
 
 	cpus_stopped = 1;
 
-	if (num_online_cpus() == 1) {
+	/*
+	 * If this cpu is the only one alive at this point in time, online or
+	 * not, there are no stop messages to be sent around, so just back out.
+	 */
+	if (num_other_online_cpus() == 0) {
 		sdei_mask_local_cpu();
 		return;
 	}
@@ -1006,7 +1023,7 @@
 	cpumask_copy(&mask, cpu_online_mask);
 	cpumask_clear_cpu(smp_processor_id(), &mask);
 
-	atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
+	atomic_set(&waiting_for_crash_ipi, num_other_online_cpus());
 
 	pr_crit("SMP: stopping secondary CPUs\n");
 	smp_cross_call(&mask, IPI_CPU_CRASH_STOP);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/sys_compat.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/sys_compat.c
@@ -8,6 +8,7 @@
  */
 
 #include <linux/compat.h>
+#include <linux/cpufeature.h>
 #include <linux/personality.h>
 #include <linux/sched.h>
 #include <linux/sched/signal.h>
@@ -17,6 +18,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/system_misc.h>
+#include <asm/tlbflush.h>
 #include <asm/unistd.h>
 
 static long
@@ -30,6 +32,15 @@
 		if (fatal_signal_pending(current))
 			return 0;
 
+		if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
+			/*
+			 * The workaround requires an inner-shareable tlbi.
+			 * We pick the reserved-ASID to minimise the impact.
+			 */
+			__tlbi(aside1is, __TLBI_VADDR(0, 0));
+			dsb(ish);
+		}
+
 		ret = __flush_cache_user_range(start, start + chunk);
 		if (ret)
 			return ret;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/syscall.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/syscall.c
@@ -50,6 +50,9 @@
 		ret = do_ni_syscall(regs, scno);
 	}
 
+	if (is_compat_task())
+		ret = lower_32_bits(ret);
+
 	regs->regs[0] = ret;
 }
 
@@ -99,8 +102,8 @@
 	regs->syscallno = scno;
 
 	cortex_a76_erratum_1463225_svc_handler();
+	user_exit_irqoff();
 	local_daif_restore(DAIF_PROCCTX);
-	user_exit();
 
 	if (has_syscall_work(flags)) {
 		/* set default errno for user-issued syscall(-1) */
@@ -121,7 +124,7 @@
 	if (!has_syscall_work(flags) && !IS_ENABLED(CONFIG_DEBUG_RSEQ)) {
 		local_daif_mask();
 		flags = current_thread_info()->flags;
-		if (!has_syscall_work(flags)) {
+		if (!has_syscall_work(flags) && !(flags & _TIF_SINGLESTEP)) {
 			/*
 			 * We're off to userspace, where interrupts are
 			 * always enabled after we restore the flags from
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/topology.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/topology.c
@@ -35,21 +35,23 @@
 	if (mpidr & MPIDR_UP_BITMASK)
 		return;
 
-	/* Create cpu topology mapping based on MPIDR. */
-	if (mpidr & MPIDR_MT_BITMASK) {
-		/* Multiprocessor system : Multi-threads per core */
-		cpuid_topo->thread_id  = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 1);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 2) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 8;
-	} else {
-		/* Multiprocessor system : Single-thread per core */
-		cpuid_topo->thread_id  = -1;
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 1) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 2) << 8 |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 16;
-	}
+	/*
+	 * This would be the place to create cpu topology based on MPIDR.
+	 *
+	 * However, it cannot be trusted to depict the actual topology; some
+	 * pieces of the architecture enforce an artificial cap on Aff0 values
+	 * (e.g. GICv3's ICC_SGI1R_EL1 limits it to 15), leading to an
+	 * artificial cycling of Aff1, Aff2 and Aff3 values. IOW, these end up
+	 * having absolutely no relationship to the actual underlying system
+	 * topology, and cannot be reasonably used as core / package ID.
+	 *
+	 * If the MT bit is set, Aff0 *could* be used to define a thread ID, but
+	 * we still wouldn't be able to obtain a sane core ID. This means we
+	 * need to entirely ignore MPIDR for any topology deduction.
+	 */
+	cpuid_topo->thread_id  = -1;
+	cpuid_topo->core_id    = cpuid;
+	cpuid_topo->package_id = cpu_to_node(cpuid);
 
 	pr_debug("CPU%u: cluster %d core %d thread %d mpidr %#016llx\n",
 		 cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/traps.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/traps.c
@@ -470,6 +470,15 @@
 	int rt = ESR_ELx_SYS64_ISS_RT(esr);
 	unsigned long val = arm64_ftr_reg_user_value(&arm64_ftr_reg_ctrel0);
 
+	if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
+		/* Hide DIC so that we can trap the unnecessary maintenance...*/
+		val &= ~BIT(CTR_DIC_SHIFT);
+
+		/* ... and fake IminLine to reduce the number of traps. */
+		val &= ~CTR_IMINLINE_MASK;
+		val |= (PAGE_SHIFT - 2) & CTR_IMINLINE_MASK;
+	}
+
 	pt_regs_write_reg(regs, rt, val);
 
 	arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/vdso.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/vdso.c
@@ -260,18 +260,7 @@
 	if (ret)
 		return ret;
 
-	ret = aarch32_alloc_kuser_vdso_page();
-	if (ret) {
-		unsigned long c_vvar =
-			(unsigned long)page_to_virt(aarch32_vdso_pages[C_VVAR]);
-		unsigned long c_vdso =
-			(unsigned long)page_to_virt(aarch32_vdso_pages[C_VDSO]);
-
-		free_page(c_vvar);
-		free_page(c_vdso);
-	}
-
-	return ret;
+	return aarch32_alloc_kuser_vdso_page();
 }
 #else
 static int __aarch32_alloc_vdso_pages(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/vdso/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/vdso/Makefile
@@ -32,7 +32,7 @@
 OBJECT_FILES_NON_STANDARD	:= y
 KCOV_INSTRUMENT			:= n
 
-CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny
+CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables
 
 ifneq ($(c-gettimeofday-y),)
   CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/vdso32/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/vdso32/Makefile
@@ -190,7 +190,7 @@
       cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
 
 # Install commands for the unstripped file
-quiet_cmd_vdso_install = INSTALL $@
+quiet_cmd_vdso_install = INSTALL32 $@
       cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/vdso32.so
 
 vdso.so: $(obj)/vdso.so.dbg
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kernel/vmlinux.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kernel/vmlinux.lds.S
@@ -24,6 +24,13 @@
 
 jiffies = jiffies_64;
 
+
+#define HYPERVISOR_EXTABLE					\
+	. = ALIGN(SZ_8);					\
+	__start___kvm_ex_table = .;				\
+	*(__kvm_ex_table)					\
+	__stop___kvm_ex_table = .;
+
 #define HYPERVISOR_TEXT					\
 	/*						\
 	 * Align to 4 KB so that			\
@@ -39,6 +46,7 @@
 	__hyp_idmap_text_end = .;			\
 	__hyp_text_start = .;				\
 	*(.hyp.text)					\
+	HYPERVISOR_EXTABLE				\
 	__hyp_text_end = .;
 
 #define IDMAP_TEXT					\
@@ -142,6 +150,7 @@
 	. = ALIGN(PAGE_SIZE);
 	idmap_pg_dir = .;
 	. += IDMAP_DIR_SIZE;
+	idmap_pg_end = .;
 
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
 	tramp_pg_dir = .;
@@ -161,9 +170,12 @@
 	__inittext_begin = .;
 
 	INIT_TEXT_SECTION(8)
+
+	__exittext_begin = .;
 	.exit.text : {
 		ARM_EXIT_KEEP(EXIT_TEXT)
 	}
+	__exittext_end = .;
 
 	. = ALIGN(4);
 	.altinstructions : {
@@ -171,9 +183,6 @@
 		*(.altinstructions)
 		__alt_instructions_end = .;
 	}
-	.altinstr_replacement : {
-		*(.altinstr_replacement)
-	}
 
 	. = ALIGN(PAGE_SIZE);
 	__inittext_end = .;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/debug.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/debug.c
@@ -101,7 +101,7 @@
 void kvm_arm_setup_debug(struct kvm_vcpu *vcpu)
 {
 	bool trap_debug = !(vcpu->arch.flags & KVM_ARM64_DEBUG_DIRTY);
-	unsigned long mdscr;
+	unsigned long mdscr, orig_mdcr_el2 = vcpu->arch.mdcr_el2;
 
 	trace_kvm_arm_setup_debug(vcpu, vcpu->guest_debug);
 
@@ -197,6 +197,10 @@
 	if (vcpu_read_sys_reg(vcpu, MDSCR_EL1) & (DBG_MDSCR_KDE | DBG_MDSCR_MDE))
 		vcpu->arch.flags |= KVM_ARM64_DEBUG_DIRTY;
 
+	/* Write mdcr_el2 changes since vcpu_load on VHE systems */
+	if (has_vhe() && orig_mdcr_el2 != vcpu->arch.mdcr_el2)
+		write_sysreg(vcpu->arch.mdcr_el2, mdcr_el2);
+
 	trace_kvm_arm_set_dreg32("MDCR_EL2", vcpu->arch.mdcr_el2);
 	trace_kvm_arm_set_dreg32("MDSCR_EL1", vcpu_read_sys_reg(vcpu, MDSCR_EL1));
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/guest.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/guest.c
@@ -202,6 +202,13 @@
 	}
 
 	memcpy((u32 *)regs + off, valp, KVM_REG_SIZE(reg->id));
+
+	if (*vcpu_cpsr(vcpu) & PSR_MODE32_BIT) {
+		int i;
+
+		for (i = 0; i < 16; i++)
+			*vcpu_reg32(vcpu, i) = (u32)*vcpu_reg32(vcpu, i);
+	}
 out:
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/handle_exit.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/handle_exit.c
@@ -162,31 +162,16 @@
 	return 1;
 }
 
-#define __ptrauth_save_key(regs, key)						\
-({										\
-	regs[key ## KEYLO_EL1] = read_sysreg_s(SYS_ ## key ## KEYLO_EL1);	\
-	regs[key ## KEYHI_EL1] = read_sysreg_s(SYS_ ## key ## KEYHI_EL1);	\
-})
-
 /*
  * Handle the guest trying to use a ptrauth instruction, or trying to access a
  * ptrauth register.
  */
 void kvm_arm_vcpu_ptrauth_trap(struct kvm_vcpu *vcpu)
 {
-	struct kvm_cpu_context *ctxt;
-
-	if (vcpu_has_ptrauth(vcpu)) {
+	if (vcpu_has_ptrauth(vcpu))
 		vcpu_ptrauth_enable(vcpu);
-		ctxt = vcpu->arch.host_cpu_context;
-		__ptrauth_save_key(ctxt->sys_regs, APIA);
-		__ptrauth_save_key(ctxt->sys_regs, APIB);
-		__ptrauth_save_key(ctxt->sys_regs, APDA);
-		__ptrauth_save_key(ctxt->sys_regs, APDB);
-		__ptrauth_save_key(ctxt->sys_regs, APGA);
-	} else {
+	else
 		kvm_inject_undefined(vcpu);
-	}
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/hyp-init.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/hyp-init.S
@@ -136,11 +136,15 @@
 
 1:	cmp	x0, #HVC_RESET_VECTORS
 	b.ne	1f
-reset:
+
 	/*
-	 * Reset kvm back to the hyp stub. Do not clobber x0-x4 in
-	 * case we coming via HVC_SOFT_RESTART.
+	 * Set the HVC_RESET_VECTORS return code before entering the common
+	 * path so that we do not clobber x0-x2 in case we are coming via
+	 * HVC_SOFT_RESTART.
 	 */
+	mov	x0, xzr
+reset:
+	/* Reset kvm back to the hyp stub. */
 	mrs	x5, sctlr_el2
 	ldr	x6, =SCTLR_ELx_FLAGS
 	bic	x5, x5, x6		// Clear SCTL_M and etc
@@ -151,7 +155,6 @@
 	/* Install stub vectors */
 	adr_l	x5, __hyp_stub_vectors
 	msr	vbar_el2, x5
-	mov	x0, xzr
 	eret
 
 1:	/* Bad stub call */
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/hyp/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/hyp/entry.S
@@ -173,20 +173,23 @@
 	// This is our single instruction exception window. A pending
 	// SError is guaranteed to occur at the earliest when we unmask
 	// it, and at the latest just after the ISB.
-	.global	abort_guest_exit_start
 abort_guest_exit_start:
 
 	isb
 
-	.global	abort_guest_exit_end
 abort_guest_exit_end:
 
 	msr	daifset, #4	// Mask aborts
+	ret
 
-	// If the exception took place, restore the EL1 exception
-	// context so that we can report some information.
-	// Merge the exception code with the SError pending bit.
-	tbz	x0, #ARM_EXIT_WITH_SERROR_BIT, 1f
+	_kvm_extable	abort_guest_exit_start, 9997f
+	_kvm_extable	abort_guest_exit_end, 9997f
+9997:
+	msr	daifset, #4	// Mask aborts
+	mov	x0, #(1 << ARM_EXIT_WITH_SERROR_BIT)
+
+	// restore the EL1 exception context so that we can report some
+	// information. Merge the exception code with the SError pending bit.
 	msr	elr_el2, x2
 	msr	esr_el2, x3
 	msr	spsr_el2, x4
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/hyp/hyp-entry.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/hyp/hyp-entry.S
@@ -15,6 +15,30 @@
 #include <asm/kvm_mmu.h>
 #include <asm/mmu.h>
 
+.macro save_caller_saved_regs_vect
+	/* x0 and x1 were saved in the vector entry */
+	stp	x2, x3,   [sp, #-16]!
+	stp	x4, x5,   [sp, #-16]!
+	stp	x6, x7,   [sp, #-16]!
+	stp	x8, x9,   [sp, #-16]!
+	stp	x10, x11, [sp, #-16]!
+	stp	x12, x13, [sp, #-16]!
+	stp	x14, x15, [sp, #-16]!
+	stp	x16, x17, [sp, #-16]!
+.endm
+
+.macro restore_caller_saved_regs_vect
+	ldp	x16, x17, [sp], #16
+	ldp	x14, x15, [sp], #16
+	ldp	x12, x13, [sp], #16
+	ldp	x10, x11, [sp], #16
+	ldp	x8, x9,   [sp], #16
+	ldp	x6, x7,   [sp], #16
+	ldp	x4, x5,   [sp], #16
+	ldp	x2, x3,   [sp], #16
+	ldp	x0, x1,   [sp], #16
+.endm
+
 	.text
 	.pushsection	.hyp.text, "ax"
 
@@ -142,13 +166,19 @@
 	b	__guest_exit
 
 el2_sync:
-	/* Check for illegal exception return, otherwise panic */
+	/* Check for illegal exception return */
 	mrs	x0, spsr_el2
+	tbnz	x0, #20, 1f
 
-	/* if this was something else, then panic! */
-	tst	x0, #PSR_IL_BIT
-	b.eq	__hyp_panic
+	save_caller_saved_regs_vect
+	stp     x29, x30, [sp, #-16]!
+	bl	kvm_unexpected_el2_exception
+	ldp     x29, x30, [sp], #16
+	restore_caller_saved_regs_vect
 
+	eret
+
+1:
 	/* Let's attempt a recovery from the illegal exception return */
 	get_vcpu_ptr	x1, x0
 	mov	x0, #ARM_EXCEPTION_IL
@@ -156,27 +186,14 @@
 
 
 el2_error:
-	ldp	x0, x1, [sp], #16
+	save_caller_saved_regs_vect
+	stp     x29, x30, [sp, #-16]!
+
+	bl	kvm_unexpected_el2_exception
+
+	ldp     x29, x30, [sp], #16
+	restore_caller_saved_regs_vect
 
-	/*
-	 * Only two possibilities:
-	 * 1) Either we come from the exit path, having just unmasked
-	 *    PSTATE.A: change the return code to an EL2 fault, and
-	 *    carry on, as we're already in a sane state to handle it.
-	 * 2) Or we come from anywhere else, and that's a bug: we panic.
-	 *
-	 * For (1), x0 contains the original return code and x1 doesn't
-	 * contain anything meaningful at that stage. We can reuse them
-	 * as temp registers.
-	 * For (2), who cares?
-	 */
-	mrs	x0, elr_el2
-	adr	x1, abort_guest_exit_start
-	cmp	x0, x1
-	adr	x1, abort_guest_exit_end
-	ccmp	x0, x1, #4, ne
-	b.ne	__hyp_panic
-	mov	x0, #(1 << ARM_EXIT_WITH_SERROR_BIT)
 	eret
 	sb
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/hyp/switch.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/hyp/switch.c
@@ -14,6 +14,7 @@
 
 #include <asm/arch_gicv3.h>
 #include <asm/cpufeature.h>
+#include <asm/extable.h>
 #include <asm/kprobes.h>
 #include <asm/kvm_asm.h>
 #include <asm/kvm_emulate.h>
@@ -25,10 +26,21 @@
 #include <asm/processor.h>
 #include <asm/thread_info.h>
 
+extern struct exception_table_entry __start___kvm_ex_table;
+extern struct exception_table_entry __stop___kvm_ex_table;
+
 /* Check whether the FP regs were dirtied while in the host-side run loop: */
 static bool __hyp_text update_fp_enabled(struct kvm_vcpu *vcpu)
 {
-	if (vcpu->arch.host_thread_info->flags & _TIF_FOREIGN_FPSTATE)
+	/*
+	 * When the system doesn't support FP/SIMD, we cannot rely on
+	 * the _TIF_FOREIGN_FPSTATE flag. However, we always inject an
+	 * abort on the very first access to FP and thus we should never
+	 * see KVM_ARM64_FP_ENABLED. For added safety, make sure we always
+	 * trap the accesses.
+	 */
+	if (!system_supports_fpsimd() ||
+	    vcpu->arch.host_thread_info->flags & _TIF_FOREIGN_FPSTATE)
 		vcpu->arch.flags &= ~(KVM_ARM64_FP_ENABLED |
 				      KVM_ARM64_FP_HOST);
 
@@ -249,10 +261,10 @@
 	 * saved the guest context yet, and we may return early...
 	 */
 	par = read_sysreg(par_el1);
-	asm volatile("at s1e1r, %0" : : "r" (far));
-	isb();
-
-	tmp = read_sysreg(par_el1);
+	if (!__kvm_at("s1e1r", far))
+		tmp = read_sysreg(par_el1);
+	else
+		tmp = SYS_PAR_EL1_F; /* back to the guest */
 	write_sysreg(par, par_el1);
 
 	if (unlikely(tmp & SYS_PAR_EL1_F))
@@ -484,7 +496,7 @@
 			kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT &&
 			kvm_vcpu_dabt_isvalid(vcpu) &&
 			!kvm_vcpu_dabt_isextabt(vcpu) &&
-			!kvm_vcpu_dabt_iss1tw(vcpu);
+			!kvm_vcpu_abt_iss1tw(vcpu);
 
 		if (valid) {
 			int ret = __vgic_v2_perform_cpuif_access(vcpu);
@@ -746,7 +758,7 @@
 	 * making sure it is a kernel address and not a PC-relative
 	 * reference.
 	 */
-	asm volatile("ldr %0, =__hyp_panic_string" : "=r" (str_va));
+	asm volatile("ldr %0, =%1" : "=r" (str_va) : "S" (__hyp_panic_string));
 
 	__hyp_do_panic(str_va,
 		       spsr, elr,
@@ -783,3 +795,30 @@
 
 	unreachable();
 }
+
+asmlinkage void __hyp_text kvm_unexpected_el2_exception(void)
+{
+	unsigned long addr, fixup;
+	struct kvm_cpu_context *host_ctxt;
+	struct exception_table_entry *entry, *end;
+	unsigned long elr_el2 = read_sysreg(elr_el2);
+
+	entry = hyp_symbol_addr(__start___kvm_ex_table);
+	end = hyp_symbol_addr(__stop___kvm_ex_table);
+	host_ctxt = &__hyp_this_cpu_ptr(kvm_host_data)->host_ctxt;
+
+	while (entry < end) {
+		addr = (unsigned long)&entry->insn + entry->insn;
+		fixup = (unsigned long)&entry->fixup + entry->fixup;
+
+		if (addr != elr_el2) {
+			entry++;
+			continue;
+		}
+
+		write_sysreg(fixup, elr_el2);
+		return;
+	}
+
+	hyp_panic(host_ctxt);
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/hyp/tlb.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/hyp/tlb.c
@@ -182,7 +182,7 @@
 	__tlb_switch_to_host(kvm, &cxt);
 }
 
-void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
+void __hyp_text __kvm_flush_cpu_context(struct kvm_vcpu *vcpu)
 {
 	struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
 	struct tlb_inv_context cxt;
@@ -191,6 +191,7 @@
 	__tlb_switch_to_guest(kvm, &cxt);
 
 	__tlbi(vmalle1);
+	asm volatile("ic iallu");
 	dsb(nsh);
 	isb();
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/inject_fault.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/inject_fault.c
@@ -14,9 +14,6 @@
 #include <asm/kvm_emulate.h>
 #include <asm/esr.h>
 
-#define PSTATE_FAULT_BITS_64 	(PSR_MODE_EL1h | PSR_A_BIT | PSR_F_BIT | \
-				 PSR_I_BIT | PSR_D_BIT)
-
 #define CURRENT_EL_SP_EL0_VECTOR	0x0
 #define CURRENT_EL_SP_ELx_VECTOR	0x200
 #define LOWER_EL_AArch64_VECTOR		0x400
@@ -50,6 +47,69 @@
 	return vcpu_read_sys_reg(vcpu, VBAR_EL1) + exc_offset + type;
 }
 
+/*
+ * When an exception is taken, most PSTATE fields are left unchanged in the
+ * handler. However, some are explicitly overridden (e.g. M[4:0]). Luckily all
+ * of the inherited bits have the same position in the AArch64/AArch32 SPSR_ELx
+ * layouts, so we don't need to shuffle these for exceptions from AArch32 EL0.
+ *
+ * For the SPSR_ELx layout for AArch64, see ARM DDI 0487E.a page C5-429.
+ * For the SPSR_ELx layout for AArch32, see ARM DDI 0487E.a page C5-426.
+ *
+ * Here we manipulate the fields in order of the AArch64 SPSR_ELx layout, from
+ * MSB to LSB.
+ */
+static unsigned long get_except64_pstate(struct kvm_vcpu *vcpu)
+{
+	unsigned long sctlr = vcpu_read_sys_reg(vcpu, SCTLR_EL1);
+	unsigned long old, new;
+
+	old = *vcpu_cpsr(vcpu);
+	new = 0;
+
+	new |= (old & PSR_N_BIT);
+	new |= (old & PSR_Z_BIT);
+	new |= (old & PSR_C_BIT);
+	new |= (old & PSR_V_BIT);
+
+	// TODO: TCO (if/when ARMv8.5-MemTag is exposed to guests)
+
+	new |= (old & PSR_DIT_BIT);
+
+	// PSTATE.UAO is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D5-2579.
+
+	// PSTATE.PAN is unchanged unless SCTLR_ELx.SPAN == 0b0
+	// SCTLR_ELx.SPAN is RES1 when ARMv8.1-PAN is not implemented
+	// See ARM DDI 0487E.a, page D5-2578.
+	new |= (old & PSR_PAN_BIT);
+	if (!(sctlr & SCTLR_EL1_SPAN))
+		new |= PSR_PAN_BIT;
+
+	// PSTATE.SS is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D2-2452.
+
+	// PSTATE.IL is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D1-2306.
+
+	// PSTATE.SSBS is set to SCTLR_ELx.DSSBS upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D13-3258
+	if (sctlr & SCTLR_ELx_DSSBS)
+		new |= PSR_SSBS_BIT;
+
+	// PSTATE.BTYPE is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, pages D1-2293 to D1-2294.
+
+	new |= PSR_D_BIT;
+	new |= PSR_A_BIT;
+	new |= PSR_I_BIT;
+	new |= PSR_F_BIT;
+
+	new |= PSR_MODE_EL1h;
+
+	return new;
+}
+
 static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr)
 {
 	unsigned long cpsr = *vcpu_cpsr(vcpu);
@@ -59,7 +119,7 @@
 	vcpu_write_elr_el1(vcpu, *vcpu_pc(vcpu));
 	*vcpu_pc(vcpu) = get_except_vector(vcpu, except_type_sync);
 
-	*vcpu_cpsr(vcpu) = PSTATE_FAULT_BITS_64;
+	*vcpu_cpsr(vcpu) = get_except64_pstate(vcpu);
 	vcpu_write_spsr(vcpu, cpsr);
 
 	vcpu_write_sys_reg(vcpu, addr, FAR_EL1);
@@ -94,7 +154,7 @@
 	vcpu_write_elr_el1(vcpu, *vcpu_pc(vcpu));
 	*vcpu_pc(vcpu) = get_except_vector(vcpu, except_type_sync);
 
-	*vcpu_cpsr(vcpu) = PSTATE_FAULT_BITS_64;
+	*vcpu_cpsr(vcpu) = get_except64_pstate(vcpu);
 	vcpu_write_spsr(vcpu, cpsr);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/reset.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/reset.c
@@ -258,7 +258,7 @@
 int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
 {
 	const struct kvm_regs *cpu_reset;
-	int ret = -EINVAL;
+	int ret;
 	bool loaded;
 
 	/* Reset PMU outside of the non-preemptible section */
@@ -281,15 +281,19 @@
 
 	if (test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) ||
 	    test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features)) {
-		if (kvm_vcpu_enable_ptrauth(vcpu))
+		if (kvm_vcpu_enable_ptrauth(vcpu)) {
+			ret = -EINVAL;
 			goto out;
+		}
 	}
 
 	switch (vcpu->arch.target) {
 	default:
 		if (test_bit(KVM_ARM_VCPU_EL1_32BIT, vcpu->arch.features)) {
-			if (!cpu_has_32bit_el1())
+			if (!cpu_has_32bit_el1()) {
+				ret = -EINVAL;
 				goto out;
+			}
 			cpu_reset = &default_regs_reset32;
 		} else {
 			cpu_reset = &default_regs_reset;
@@ -374,10 +378,10 @@
 		pr_info("kvm: Limiting the IPA size due to kernel %s Address limit\n",
 			(va_max < pa_max) ? "Virtual" : "Physical");
 
-	WARN(ipa_max < KVM_PHYS_SHIFT,
-	     "KVM IPA limit (%d bit) is smaller than default size\n", ipa_max);
 	kvm_ipa_limit = ipa_max;
-	kvm_info("IPA Size Limit: %dbits\n", kvm_ipa_limit);
+	kvm_info("IPA Size Limit: %d bits%s\n", kvm_ipa_limit,
+		 ((kvm_ipa_limit < KVM_PHYS_SHIFT) ?
+		  " (Reduced IPA size, limited VM/VMM compatibility)" : ""));
 }
 
 /*
@@ -404,6 +408,11 @@
 			return -EINVAL;
 	} else {
 		phys_shift = KVM_PHYS_SHIFT;
+		if (phys_shift > kvm_ipa_limit) {
+			pr_warn_once("%s using unsupported default IPA limit, upgrade your VMM\n",
+				     current->comm);
+			return -EINVAL;
+		}
 	}
 
 	parange = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1) & 7;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/kvm/sys_regs.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/kvm/sys_regs.c
@@ -625,6 +625,10 @@
 {
 	u64 pmcr, val;
 
+	/* No PMU available, PMCR_EL0 may UNDEF... */
+	if (!kvm_arm_support_pmu_v3())
+		return;
+
 	pmcr = read_sysreg(pmcr_el0);
 	/*
 	 * Writable bits of PMCR_EL0 (ARMV8_PMU_PMCR_MASK) are reset to UNKNOWN
@@ -1132,16 +1136,6 @@
 	return REG_HIDDEN_USER | REG_HIDDEN_GUEST;
 }
 
-/* Visibility overrides for SVE-specific ID registers */
-static unsigned int sve_id_visibility(const struct kvm_vcpu *vcpu,
-				      const struct sys_reg_desc *rd)
-{
-	if (vcpu_has_sve(vcpu))
-		return 0;
-
-	return REG_HIDDEN_USER;
-}
-
 /* Generate the emulated ID_AA64ZFR0_EL1 value exposed to the guest */
 static u64 guest_id_aa64zfr0_el1(const struct kvm_vcpu *vcpu)
 {
@@ -1168,9 +1162,6 @@
 {
 	u64 val;
 
-	if (WARN_ON(!vcpu_has_sve(vcpu)))
-		return -ENOENT;
-
 	val = guest_id_aa64zfr0_el1(vcpu);
 	return reg_to_user(uaddr, &val, reg->id);
 }
@@ -1183,9 +1174,6 @@
 	int err;
 	u64 val;
 
-	if (WARN_ON(!vcpu_has_sve(vcpu)))
-		return -ENOENT;
-
 	err = reg_from_user(&val, uaddr, id);
 	if (err)
 		return err;
@@ -1280,10 +1268,16 @@
 static bool access_csselr(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
 			  const struct sys_reg_desc *r)
 {
+	int reg = r->reg;
+
+	/* See the 32bit mapping in kvm_host.h */
+	if (p->is_aarch32)
+		reg = r->reg / 2;
+
 	if (p->is_write)
-		vcpu_write_sys_reg(vcpu, p->regval, r->reg);
+		vcpu_write_sys_reg(vcpu, p->regval, reg);
 	else
-		p->regval = vcpu_read_sys_reg(vcpu, r->reg);
+		p->regval = vcpu_read_sys_reg(vcpu, reg);
 	return true;
 }
 
@@ -1442,7 +1436,7 @@
 	ID_SANITISED(ID_AA64PFR1_EL1),
 	ID_UNALLOCATED(4,2),
 	ID_UNALLOCATED(4,3),
-	{ SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, .visibility = sve_id_visibility },
+	{ SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, },
 	ID_UNALLOCATED(4,5),
 	ID_UNALLOCATED(4,6),
 	ID_UNALLOCATED(4,7),
@@ -1740,9 +1734,9 @@
 	{ Op1( 0), CRn( 0), CRm( 1), Op2( 0), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(1),
 	/* DBGDCCINT */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32, NULL, cp14_DBGDCCINT },
 	/* DBGDSCRext */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32, NULL, cp14_DBGDSCRext },
 	DBG_BCR_BVR_WCR_WVR(2),
 	/* DBGDTR[RT]Xint */
 	{ Op1( 0), CRn( 0), CRm( 3), Op2( 0), trap_raz_wi },
@@ -1757,7 +1751,7 @@
 	{ Op1( 0), CRn( 0), CRm( 6), Op2( 2), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(6),
 	/* DBGVCR */
-	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32, NULL, cp14_DBGVCR },
 	DBG_BCR_BVR_WCR_WVR(7),
 	DBG_BCR_BVR_WCR_WVR(8),
 	DBG_BCR_BVR_WCR_WVR(9),
@@ -1847,6 +1841,7 @@
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 },
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 },
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR },
+	{ Op1( 0), CRn( 2), CRm( 0), Op2( 3), access_vm_reg, NULL, c2_TTBCR2 },
 	{ Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR },
 	{ Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR },
 	{ Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR },
@@ -2360,8 +2355,11 @@
 	if ((id & KVM_REG_ARM_COPROC_MASK) != KVM_REG_ARM64_SYSREG)
 		return NULL;
 
+	if (!index_to_params(id, &params))
+		return NULL;
+
 	table = get_target_table(vcpu->arch.target, true, &num);
-	r = find_reg_by_id(id, &params, table, num);
+	r = find_reg(&params, table, num);
 	if (!r)
 		r = find_reg(&params, sys_reg_descs, ARRAY_SIZE(sys_reg_descs));
 
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/clear_page.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/clear_page.S
@@ -14,7 +14,7 @@
  * Parameters:
  *	x0 - dest
  */
-ENTRY(clear_page)
+SYM_FUNC_START(clear_page)
 	mrs	x1, dczid_el0
 	and	w1, w1, #0xf
 	mov	x2, #4
@@ -25,5 +25,5 @@
 	tst	x0, #(PAGE_SIZE - 1)
 	b.ne	1b
 	ret
-ENDPROC(clear_page)
+SYM_FUNC_END(clear_page)
 EXPORT_SYMBOL(clear_page)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/clear_user.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/clear_user.S
@@ -19,7 +19,7 @@
  *
  * Alignment fixed up by hardware.
  */
-ENTRY(__arch_clear_user)
+SYM_FUNC_START(__arch_clear_user)
 	mov	x2, x1			// save the size for fixup return
 	subs	x1, x1, #8
 	b.mi	2f
@@ -40,7 +40,7 @@
 uao_user_alternative 9f, strb, sttrb, wzr, x0, 0
 5:	mov	x0, #0
 	ret
-ENDPROC(__arch_clear_user)
+SYM_FUNC_END(__arch_clear_user)
 EXPORT_SYMBOL(__arch_clear_user)
 
 	.section .fixup,"ax"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/copy_from_user.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/copy_from_user.S
@@ -53,12 +53,12 @@
 	.endm
 
 end	.req	x5
-ENTRY(__arch_copy_from_user)
+SYM_FUNC_START(__arch_copy_from_user)
 	add	end, x0, x2
 #include "copy_template.S"
 	mov	x0, #0				// Nothing to copy
 	ret
-ENDPROC(__arch_copy_from_user)
+SYM_FUNC_END(__arch_copy_from_user)
 EXPORT_SYMBOL(__arch_copy_from_user)
 
 	.section .fixup,"ax"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/copy_in_user.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/copy_in_user.S
@@ -55,12 +55,12 @@
 
 end	.req	x5
 
-ENTRY(__arch_copy_in_user)
+SYM_FUNC_START(__arch_copy_in_user)
 	add	end, x0, x2
 #include "copy_template.S"
 	mov	x0, #0
 	ret
-ENDPROC(__arch_copy_in_user)
+SYM_FUNC_END(__arch_copy_in_user)
 EXPORT_SYMBOL(__arch_copy_in_user)
 
 	.section .fixup,"ax"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/copy_page.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/copy_page.S
@@ -17,7 +17,7 @@
  *	x0 - dest
  *	x1 - src
  */
-ENTRY(copy_page)
+SYM_FUNC_START(copy_page)
 alternative_if ARM64_HAS_NO_HW_PREFETCH
 	// Prefetch three cache lines ahead.
 	prfm	pldl1strm, [x1, #128]
@@ -75,5 +75,5 @@
 	stnp	x16, x17, [x0, #112]
 
 	ret
-ENDPROC(copy_page)
+SYM_FUNC_END(copy_page)
 EXPORT_SYMBOL(copy_page)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/copy_to_user.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/copy_to_user.S
@@ -52,12 +52,12 @@
 	.endm
 
 end	.req	x5
-ENTRY(__arch_copy_to_user)
+SYM_FUNC_START(__arch_copy_to_user)
 	add	end, x0, x2
 #include "copy_template.S"
 	mov	x0, #0
 	ret
-ENDPROC(__arch_copy_to_user)
+SYM_FUNC_END(__arch_copy_to_user)
 EXPORT_SYMBOL(__arch_copy_to_user)
 
 	.section .fixup,"ax"
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/crc32.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/crc32.S
@@ -85,17 +85,17 @@
 	.endm
 
 	.align		5
-ENTRY(crc32_le)
+SYM_FUNC_START(crc32_le)
 alternative_if_not ARM64_HAS_CRC32
 	b		crc32_le_base
 alternative_else_nop_endif
 	__crc32
-ENDPROC(crc32_le)
+SYM_FUNC_END(crc32_le)
 
 	.align		5
-ENTRY(__crc32c_le)
+SYM_FUNC_START(__crc32c_le)
 alternative_if_not ARM64_HAS_CRC32
 	b		__crc32c_le_base
 alternative_else_nop_endif
 	__crc32		c
-ENDPROC(__crc32c_le)
+SYM_FUNC_END(__crc32c_le)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/memchr.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/memchr.S
@@ -19,7 +19,7 @@
  * Returns:
  *	x0 - address of first occurrence of 'c' or 0
  */
-WEAK(memchr)
+SYM_FUNC_START_WEAK_PI(memchr)
 	and	w1, w1, #0xff
 1:	subs	x2, x2, #1
 	b.mi	2f
@@ -30,5 +30,5 @@
 	ret
 2:	mov	x0, #0
 	ret
-ENDPIPROC(memchr)
+SYM_FUNC_END_PI(memchr)
 EXPORT_SYMBOL_NOKASAN(memchr)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/memcmp.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/memcmp.S
@@ -46,7 +46,7 @@
 limit_wd	.req	x12
 mask		.req	x13
 
-WEAK(memcmp)
+SYM_FUNC_START_WEAK_PI(memcmp)
 	cbz	limit, .Lret0
 	eor	tmp1, src1, src2
 	tst	tmp1, #7
@@ -243,5 +243,5 @@
 .Lret0:
 	mov	result, #0
 	ret
-ENDPIPROC(memcmp)
+SYM_FUNC_END_PI(memcmp)
 EXPORT_SYMBOL_NOKASAN(memcmp)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/memcpy.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/memcpy.S
@@ -56,12 +56,11 @@
 	stp \ptr, \regB, [\regC], \val
 	.endm
 
-	.weak memcpy
-ENTRY(__memcpy)
-ENTRY(memcpy)
+SYM_FUNC_START_ALIAS(__memcpy)
+SYM_FUNC_START_WEAK_PI(memcpy)
 #include "copy_template.S"
 	ret
-ENDPIPROC(memcpy)
+SYM_FUNC_END_PI(memcpy)
 EXPORT_SYMBOL(memcpy)
-ENDPROC(__memcpy)
+SYM_FUNC_END_ALIAS(__memcpy)
 EXPORT_SYMBOL(__memcpy)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/memmove.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/memmove.S
@@ -45,9 +45,8 @@
 D_l	.req	x13
 D_h	.req	x14
 
-	.weak memmove
-ENTRY(__memmove)
-ENTRY(memmove)
+SYM_FUNC_START_ALIAS(__memmove)
+SYM_FUNC_START_WEAK_PI(memmove)
 	cmp	dstin, src
 	b.lo	__memcpy
 	add	tmp1, src, count
@@ -184,7 +183,7 @@
 	tst	count, #0x3f
 	b.ne	.Ltail63
 	ret
-ENDPIPROC(memmove)
+SYM_FUNC_END_PI(memmove)
 EXPORT_SYMBOL(memmove)
-ENDPROC(__memmove)
+SYM_FUNC_END_ALIAS(__memmove)
 EXPORT_SYMBOL(__memmove)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/memset.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/memset.S
@@ -42,9 +42,8 @@
 tmp3w		.req	w9
 tmp3		.req	x9
 
-	.weak memset
-ENTRY(__memset)
-ENTRY(memset)
+SYM_FUNC_START_ALIAS(__memset)
+SYM_FUNC_START_WEAK_PI(memset)
 	mov	dst, dstin	/* Preserve return value.  */
 	and	A_lw, val, #255
 	orr	A_lw, A_lw, A_lw, lsl #8
@@ -203,7 +202,7 @@
 	ands	count, count, zva_bits_x
 	b.ne	.Ltail_maybe_long
 	ret
-ENDPIPROC(memset)
+SYM_FUNC_END_PI(memset)
 EXPORT_SYMBOL(memset)
-ENDPROC(__memset)
+SYM_FUNC_END_ALIAS(__memset)
 EXPORT_SYMBOL(__memset)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/strchr.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/strchr.S
@@ -18,7 +18,7 @@
  * Returns:
  *	x0 - address of first occurrence of 'c' or 0
  */
-WEAK(strchr)
+SYM_FUNC_START_WEAK(strchr)
 	and	w1, w1, #0xff
 1:	ldrb	w2, [x0], #1
 	cmp	w2, w1
@@ -28,5 +28,5 @@
 	cmp	w2, w1
 	csel	x0, x0, xzr, eq
 	ret
-ENDPROC(strchr)
+SYM_FUNC_END(strchr)
 EXPORT_SYMBOL_NOKASAN(strchr)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/strcmp.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/strcmp.S
@@ -48,7 +48,7 @@
 zeroones	.req	x10
 pos		.req	x11
 
-WEAK(strcmp)
+SYM_FUNC_START_WEAK_PI(strcmp)
 	eor	tmp1, src1, src2
 	mov	zeroones, #REP8_01
 	tst	tmp1, #7
@@ -219,5 +219,5 @@
 	lsr	data1, data1, #56
 	sub	result, data1, data2, lsr #56
 	ret
-ENDPIPROC(strcmp)
+SYM_FUNC_END_PI(strcmp)
 EXPORT_SYMBOL_NOKASAN(strcmp)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/strlen.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/strlen.S
@@ -44,7 +44,7 @@
 #define REP8_7f 0x7f7f7f7f7f7f7f7f
 #define REP8_80 0x8080808080808080
 
-WEAK(strlen)
+SYM_FUNC_START_WEAK_PI(strlen)
 	mov	zeroones, #REP8_01
 	bic	src, srcin, #15
 	ands	tmp1, srcin, #15
@@ -111,5 +111,5 @@
 	csinv	data1, data1, xzr, le
 	csel	data2, data2, data2a, le
 	b	.Lrealigned
-ENDPIPROC(strlen)
+SYM_FUNC_END_PI(strlen)
 EXPORT_SYMBOL_NOKASAN(strlen)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/strncmp.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/strncmp.S
@@ -52,7 +52,7 @@
 mask		.req	x14
 endloop		.req	x15
 
-WEAK(strncmp)
+SYM_FUNC_START_WEAK_PI(strncmp)
 	cbz	limit, .Lret0
 	eor	tmp1, src1, src2
 	mov	zeroones, #REP8_01
@@ -295,5 +295,5 @@
 .Lret0:
 	mov	result, #0
 	ret
-ENDPIPROC(strncmp)
+SYM_FUNC_END_PI(strncmp)
 EXPORT_SYMBOL_NOKASAN(strncmp)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/strnlen.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/strnlen.S
@@ -47,7 +47,7 @@
 #define REP8_7f 0x7f7f7f7f7f7f7f7f
 #define REP8_80 0x8080808080808080
 
-WEAK(strnlen)
+SYM_FUNC_START_WEAK_PI(strnlen)
 	cbz	limit, .Lhit_limit
 	mov	zeroones, #REP8_01
 	bic	src, srcin, #15
@@ -156,5 +156,5 @@
 .Lhit_limit:
 	mov	len, limit
 	ret
-ENDPIPROC(strnlen)
+SYM_FUNC_END_PI(strnlen)
 EXPORT_SYMBOL_NOKASAN(strnlen)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/strrchr.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/strrchr.S
@@ -18,7 +18,7 @@
  * Returns:
  *	x0 - address of last occurrence of 'c' or 0
  */
-WEAK(strrchr)
+SYM_FUNC_START_WEAK_PI(strrchr)
 	mov	x3, #0
 	and	w1, w1, #0xff
 1:	ldrb	w2, [x0], #1
@@ -29,5 +29,5 @@
 	b	1b
 2:	mov	x0, x3
 	ret
-ENDPIPROC(strrchr)
+SYM_FUNC_END_PI(strrchr)
 EXPORT_SYMBOL_NOKASAN(strrchr)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/lib/tishift.S
+++ linux-gkeop-5.4-5.4.0/arch/arm64/lib/tishift.S
@@ -7,7 +7,7 @@
 
 #include <asm/assembler.h>
 
-ENTRY(__ashlti3)
+SYM_FUNC_START(__ashlti3)
 	cbz	x2, 1f
 	mov	x3, #64
 	sub	x3, x3, x2
@@ -26,10 +26,10 @@
 	lsl	x1, x0, x1
 	mov	x0, x2
 	ret
-ENDPROC(__ashlti3)
+SYM_FUNC_END(__ashlti3)
 EXPORT_SYMBOL(__ashlti3)
 
-ENTRY(__ashrti3)
+SYM_FUNC_START(__ashrti3)
 	cbz	x2, 1f
 	mov	x3, #64
 	sub	x3, x3, x2
@@ -48,10 +48,10 @@
 	asr	x0, x1, x0
 	mov	x1, x2
 	ret
-ENDPROC(__ashrti3)
+SYM_FUNC_END(__ashrti3)
 EXPORT_SYMBOL(__ashrti3)
 
-ENTRY(__lshrti3)
+SYM_FUNC_START(__lshrti3)
 	cbz	x2, 1f
 	mov	x3, #64
 	sub	x3, x3, x2
@@ -70,5 +70,5 @@
 	lsr	x0, x1, x0
 	mov	x1, x2
 	ret
-ENDPROC(__lshrti3)
+SYM_FUNC_END(__lshrti3)
 EXPORT_SYMBOL(__lshrti3)
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/mm/fault.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/mm/fault.c
@@ -454,7 +454,7 @@
 	const struct fault_info *inf;
 	struct mm_struct *mm = current->mm;
 	vm_fault_t fault, major = 0;
-	unsigned long vm_flags = VM_READ | VM_WRITE;
+	unsigned long vm_flags = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (kprobe_page_fault(regs, esr))
@@ -654,11 +654,13 @@
 
 	inf = esr_to_fault_info(esr);
 
-	/*
-	 * Return value ignored as we rely on signal merging.
-	 * Future patches will make this more robust.
-	 */
-	apei_claim_sea(regs);
+	if (user_mode(regs) && apei_claim_sea(regs) == 0) {
+		/*
+		 * APEI claimed this as a firmware-first notification.
+		 * Some processing deferred to task_work before ret_to_user().
+		 */
+		return 0;
+	}
 
 	if (esr & ESR_ELx_FnV)
 		siaddr = NULL;
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/mm/hugetlbpage.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/mm/hugetlbpage.c
@@ -230,6 +230,8 @@
 		ptep = (pte_t *)pudp;
 	} else if (sz == (CONT_PTE_SIZE)) {
 		pmdp = pmd_alloc(mm, pudp, addr);
+		if (!pmdp)
+			return NULL;
 
 		WARN_ON(addr & (sz - 1));
 		/*
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/mm/init.c
@@ -50,12 +50,6 @@
 s64 memstart_addr __ro_after_init = -1;
 EXPORT_SYMBOL(memstart_addr);
 
-s64 physvirt_offset __ro_after_init;
-EXPORT_SYMBOL(physvirt_offset);
-
-struct page *vmemmap __ro_after_init;
-EXPORT_SYMBOL(vmemmap);
-
 phys_addr_t arm64_dma_phys_limit __ro_after_init;
 
 #ifdef CONFIG_KEXEC_CORE
@@ -251,6 +245,18 @@
 
 	if (!valid_section(__nr_to_section(pfn_to_section_nr(pfn))))
 		return 0;
+
+	/*
+	 * ZONE_DEVICE memory does not have the memblock entries.
+	 * memblock_is_map_memory() check for ZONE_DEVICE based
+	 * addresses will always fail. Even the normal hotplugged
+	 * memory will never have MEMBLOCK_NOMAP flag set in their
+	 * memblock entries. Skip memblock search for all non early
+	 * memory sections covering all of hotplug memory including
+	 * both normal and ZONE_DEVICE based.
+	 */
+	if (!early_section(__pfn_to_section(pfn)))
+		return pfn_section_valid(__pfn_to_section(pfn), pfn);
 #endif
 	return memblock_is_map_memory(addr);
 }
@@ -321,20 +327,6 @@
 	memstart_addr = round_down(memblock_start_of_DRAM(),
 				   ARM64_MEMSTART_ALIGN);
 
-	physvirt_offset = PHYS_OFFSET - PAGE_OFFSET;
-
-	vmemmap = ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT));
-
-	/*
-	 * If we are running with a 52-bit kernel VA config on a system that
-	 * does not support it, we have to offset our vmemmap and physvirt_offset
-	 * s.t. we avoid the 52-bit portion of the direct linear map
-	 */
-	if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52) && (vabits_actual != 52)) {
-		vmemmap += (_PAGE_OFFSET(48) - _PAGE_OFFSET(52)) >> PAGE_SHIFT;
-		physvirt_offset = PHYS_OFFSET - _PAGE_OFFSET(48);
-	}
-
 	/*
 	 * Remove the memory that we will not be able to cover with the
 	 * linear mapping. Take care not to clip the kernel which may be
@@ -350,6 +342,16 @@
 	}
 
 	/*
+	 * If we are running with a 52-bit kernel VA config on a system that
+	 * does not support it, we have to place the available physical
+	 * memory in the 48-bit addressable part of the linear region, i.e.,
+	 * we have to move it upward. Since memstart_addr represents the
+	 * physical address of PAGE_OFFSET, we have to *subtract* from it.
+	 */
+	if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52) && (vabits_actual != 52))
+		memstart_addr -= _PAGE_OFFSET(48) - _PAGE_OFFSET(52);
+
+	/*
 	 * Apply the memory limit if it was set. Since the kernel may be loaded
 	 * high up in memory, add back the kernel region that must be accessible
 	 * via the linear mapping.
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/mm/mmu.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/mm/mmu.c
@@ -38,7 +38,7 @@
 #define NO_BLOCK_MAPPINGS	BIT(0)
 #define NO_CONT_MAPPINGS	BIT(1)
 
-u64 idmap_t0sz = TCR_T0SZ(VA_BITS);
+u64 idmap_t0sz = TCR_T0SZ(VA_BITS_MIN);
 u64 idmap_ptrs_per_pgd = PTRS_PER_PGD;
 
 u64 __section(".mmuoff.data.write") vabits_actual;
@@ -1069,7 +1069,6 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
 	/*
 	 * FIXME: Cleanup page tables (also in arch_add_memory() in case
@@ -1078,7 +1077,6 @@
 	 * unplug. ARCH_ENABLE_MEMORY_HOTREMOVE must not be
 	 * unlocked yet.
 	 */
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/mm/numa.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/mm/numa.c
@@ -46,7 +46,11 @@
  */
 const struct cpumask *cpumask_of_node(int node)
 {
-	if (WARN_ON(node >= nr_node_ids))
+
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
+	if (WARN_ON(node < 0 || node >= nr_node_ids))
 		return cpu_none_mask;
 
 	if (WARN_ON(node_to_cpumask_map[node] == NULL))
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/mm/physaddr.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/mm/physaddr.c
@@ -9,7 +9,7 @@
 
 phys_addr_t __virt_to_phys(unsigned long x)
 {
-	WARN(!__is_lm_address(x),
+	WARN(!__is_lm_address(__tag_reset(x)),
 	     "virt_to_phys used for non-linear address: %pK (%pS)\n",
 	      (void *)x,
 	      (void *)x);
--- linux-gkeop-5.4-5.4.0.orig/arch/arm64/net/bpf_jit_comp.c
+++ linux-gkeop-5.4-5.4.0/arch/arm64/net/bpf_jit_comp.c
@@ -141,14 +141,17 @@
 	}
 }
 
-static inline int bpf2a64_offset(int bpf_to, int bpf_from,
+static inline int bpf2a64_offset(int bpf_insn, int off,
 				 const struct jit_ctx *ctx)
 {
-	int to = ctx->offset[bpf_to];
-	/* -1 to account for the Branch instruction */
-	int from = ctx->offset[bpf_from] - 1;
-
-	return to - from;
+	/* BPF JMP offset is relative to the next instruction */
+	bpf_insn++;
+	/*
+	 * Whereas arm64 branch instructions encode the offset
+	 * from the branch itself, so we must subtract 1 from the
+	 * instruction offset.
+	 */
+	return ctx->offset[bpf_insn + off] - (ctx->offset[bpf_insn] - 1);
 }
 
 static void jit_fill_hole(void *area, unsigned int size)
@@ -532,7 +535,7 @@
 
 	/* JUMP off */
 	case BPF_JMP | BPF_JA:
-		jmp_offset = bpf2a64_offset(i + off, i, ctx);
+		jmp_offset = bpf2a64_offset(i, off, ctx);
 		check_imm26(jmp_offset);
 		emit(A64_B(jmp_offset), ctx);
 		break;
@@ -559,7 +562,7 @@
 	case BPF_JMP32 | BPF_JSLE | BPF_X:
 		emit(A64_CMP(is64, dst, src), ctx);
 emit_cond_jmp:
-		jmp_offset = bpf2a64_offset(i + off, i, ctx);
+		jmp_offset = bpf2a64_offset(i, off, ctx);
 		check_imm19(jmp_offset);
 		switch (BPF_OP(code)) {
 		case BPF_JEQ:
@@ -780,10 +783,21 @@
 	const struct bpf_prog *prog = ctx->prog;
 	int i;
 
+	/*
+	 * - offset[0] offset of the end of prologue,
+	 *   start of the 1st instruction.
+	 * - offset[1] - offset of the end of 1st instruction,
+	 *   start of the 2nd instruction
+	 * [....]
+	 * - offset[3] - offset of the end of 3rd instruction,
+	 *   start of 4th instruction
+	 */
 	for (i = 0; i < prog->len; i++) {
 		const struct bpf_insn *insn = &prog->insnsi[i];
 		int ret;
 
+		if (ctx->image == NULL)
+			ctx->offset[i] = ctx->idx;
 		ret = build_insn(insn, ctx, extra_pass);
 		if (ret > 0) {
 			i++;
@@ -791,11 +805,16 @@
 				ctx->offset[i] = ctx->idx;
 			continue;
 		}
-		if (ctx->image == NULL)
-			ctx->offset[i] = ctx->idx;
 		if (ret)
 			return ret;
 	}
+	/*
+	 * offset is allocated with prog->len + 1 so fill in
+	 * the last element with the offset after the last
+	 * instruction (end of program)
+	 */
+	if (ctx->image == NULL)
+		ctx->offset[i] = ctx->idx;
 
 	return 0;
 }
@@ -871,7 +890,7 @@
 	memset(&ctx, 0, sizeof(ctx));
 	ctx.prog = prog;
 
-	ctx.offset = kcalloc(prog->len, sizeof(int), GFP_KERNEL);
+	ctx.offset = kcalloc(prog->len + 1, sizeof(int), GFP_KERNEL);
 	if (ctx.offset == NULL) {
 		prog = orig_prog;
 		goto out_off;
@@ -951,7 +970,7 @@
 	prog->jited_len = image_size;
 
 	if (!prog->is_func || extra_pass) {
-		bpf_prog_fill_jited_linfo(prog, ctx.offset);
+		bpf_prog_fill_jited_linfo(prog, ctx.offset + 1);
 out_off:
 		kfree(ctx.offset);
 		kfree(jit_data);
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/csky/Kconfig
@@ -36,6 +36,7 @@
 	select GX6605S_TIMER if CPU_CK610
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_AUDITSYSCALL
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DYNAMIC_FTRACE
 	select HAVE_FUNCTION_TRACER
 	select HAVE_FUNCTION_GRAPH_TRACER
@@ -74,7 +75,7 @@
 config CPU_HAS_LDSTEX
 	bool
 	help
-	  For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
+	  For SMP, CPU needs "ldex&stex" instructions for atomic operations.
 
 config CPU_NEED_TLBSYNC
 	bool
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/abiv1/inc/abi/entry.h
+++ linux-gkeop-5.4-5.4.0/arch/csky/abiv1/inc/abi/entry.h
@@ -16,14 +16,16 @@
 #define LSAVE_A4	40
 #define LSAVE_A5	44
 
+#define usp ss1
+
 .macro USPTOKSP
-	mtcr	sp, ss1
+	mtcr	sp, usp
 	mfcr	sp, ss0
 .endm
 
 .macro KSPTOUSP
 	mtcr	sp, ss0
-	mfcr	sp, ss1
+	mfcr	sp, usp
 .endm
 
 .macro	SAVE_ALL epc_inc
@@ -45,7 +47,13 @@
 	add	lr, r13
 	stw     lr, (sp, 8)
 
+	mov	lr, sp
+	addi	lr, 32
+	addi	lr, 32
+	addi	lr, 16
+	bt	2f
 	mfcr	lr, ss1
+2:
 	stw     lr, (sp, 16)
 
 	stw     a0, (sp, 20)
@@ -79,9 +87,10 @@
 	ldw     a0, (sp, 12)
 	mtcr    a0, epsr
 	btsti   a0, 31
+	bt      1f
 	ldw     a0, (sp, 16)
 	mtcr	a0, ss1
-
+1:
 	ldw     a0, (sp, 24)
 	ldw     a1, (sp, 28)
 	ldw     a2, (sp, 32)
@@ -102,9 +111,9 @@
 	addi	sp, 32
 	addi	sp, 8
 
-	bt      1f
+	bt      2f
 	KSPTOUSP
-1:
+2:
 	rte
 .endm
 
@@ -158,15 +167,12 @@
 	 *   BA     Reserved  C   D   V
 	 */
 	cprcr	r6, cpcr30
-	lsri	r6, 28
-	lsli	r6, 28
+	lsri	r6, 29
+	lsli	r6, 29
 	addi	r6, 0xe
 	cpwcr	r6, cpcr30
 
-	lsri	r6, 28
-	addi	r6, 2
-	lsli	r6, 28
-	addi	r6, 0xe
+	movi	r6, 0
 	cpwcr	r6, cpcr31
 .endm
 
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/abiv2/fpu.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/abiv2/fpu.c
@@ -10,11 +10,6 @@
 #define MTCR_DIST	0xC0006420
 #define MFCR_DIST	0xC0006020
 
-void __init init_fpu(void)
-{
-	mtcr("cr<1, 2>", 0);
-}
-
 /*
  * fpu_libc_helper() is to help libc to excute:
  *  - mfcr %a, cr<1, 2>
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/abiv2/inc/abi/entry.h
+++ linux-gkeop-5.4-5.4.0/arch/csky/abiv2/inc/abi/entry.h
@@ -13,6 +13,8 @@
 #define LSAVE_A1	28
 #define LSAVE_A2	32
 #define LSAVE_A3	36
+#define LSAVE_A4	40
+#define LSAVE_A5	44
 
 #define KSPTOUSP
 #define USPTOKSP
@@ -31,7 +33,13 @@
 
 	mfcr	lr, epsr
 	stw	lr, (sp, 12)
+	btsti   lr, 31
+	bf      1f
+	addi    lr, sp, 152
+	br	2f
+1:
 	mfcr	lr, usp
+2:
 	stw	lr, (sp, 16)
 
 	stw     a0, (sp, 20)
@@ -64,8 +72,10 @@
 	mtcr	a0, epc
 	ldw	a0, (sp, 12)
 	mtcr	a0, epsr
+	btsti   a0, 31
 	ldw	a0, (sp, 16)
 	mtcr	a0, usp
+	mtcr	a0, ss0
 
 #ifdef CONFIG_CPU_HAS_HILO
 	ldw	a0, (sp, 140)
@@ -86,6 +96,9 @@
 	addi    sp, 40
 	ldm     r16-r30, (sp)
 	addi    sp, 72
+	bf	1f
+	mfcr	sp, ss0
+1:
 	rte
 .endm
 
@@ -214,16 +227,13 @@
 	 */
 	mfcr	r6, cr<30, 15> /* Get MSA0 */
 2:
-	lsri	r6, 28
-	lsli	r6, 28
+	lsri	r6, 29
+	lsli	r6, 29
 	addi	r6, 0x1ce
 	mtcr	r6, cr<30, 15> /* Set MSA0 */
 
-	lsri	r6, 28
-	addi	r6, 2
-	lsli	r6, 28
-	addi	r6, 0x1ce
-	mtcr	r6, cr<31, 15> /* Set MSA1 */
+	movi    r6, 0
+	mtcr	r6, cr<31, 15> /* Clr MSA1 */
 
 	/* enable MMU */
 	mfcr    r6, cr18
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/abiv2/inc/abi/fpu.h
+++ linux-gkeop-5.4-5.4.0/arch/csky/abiv2/inc/abi/fpu.h
@@ -9,7 +9,8 @@
 
 int fpu_libc_helper(struct pt_regs *regs);
 void fpu_fpe(struct pt_regs *regs);
-void __init init_fpu(void);
+
+static inline void init_fpu(void) { mtcr("cr<1, 2>", 0); }
 
 void save_to_user_fp(struct user_fp *user_fp);
 void restore_from_user_fp(struct user_fp *user_fp);
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/include/asm/processor.h
+++ linux-gkeop-5.4-5.4.0/arch/csky/include/asm/processor.h
@@ -43,6 +43,7 @@
 struct thread_struct {
 	unsigned long  ksp;       /* kernel stack pointer */
 	unsigned long  sr;        /* saved status register */
+	unsigned long  trap_no;   /* saved status register */
 
 	/* FPU regs */
 	struct user_fp __aligned(16) user_fp;
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/include/asm/uaccess.h
+++ linux-gkeop-5.4-5.4.0/arch/csky/include/asm/uaccess.h
@@ -254,7 +254,7 @@
 
 extern int __get_user_bad(void);
 
-#define __copy_user(to, from, n)			\
+#define ___copy_to_user(to, from, n)			\
 do {							\
 	int w0, w1, w2, w3;				\
 	asm volatile(					\
@@ -289,31 +289,34 @@
 	"       subi    %0, 4           \n"		\
 	"       br      3b              \n"		\
 	"5:     cmpnei  %0, 0           \n"  /* 1B */   \
-	"       bf      8f              \n"		\
+	"       bf      13f             \n"		\
 	"       ldb     %3, (%2, 0)     \n"		\
 	"6:     stb     %3, (%1, 0)     \n"		\
 	"       addi    %2,  1          \n"		\
 	"       addi    %1,  1          \n"		\
 	"       subi    %0,  1          \n"		\
 	"       br      5b              \n"		\
-	"7:     br      8f              \n"		\
+	"7:     subi	%0,  4          \n"		\
+	"8:     subi	%0,  4          \n"		\
+	"12:    subi	%0,  4          \n"		\
+	"       br      13f             \n"		\
 	".section __ex_table, \"a\"     \n"		\
 	".align   2                     \n"		\
-	".long    2b, 7b                \n"		\
-	".long    9b, 7b                \n"		\
-	".long   10b, 7b                \n"		\
+	".long    2b, 13f               \n"		\
+	".long    4b, 13f               \n"		\
+	".long    6b, 13f               \n"		\
+	".long    9b, 12b               \n"		\
+	".long   10b, 8b                \n"		\
 	".long   11b, 7b                \n"		\
-	".long    4b, 7b                \n"		\
-	".long    6b, 7b                \n"		\
 	".previous                      \n"		\
-	"8:                             \n"		\
+	"13:                            \n"		\
 	: "=r"(n), "=r"(to), "=r"(from), "=r"(w0),	\
 	  "=r"(w1), "=r"(w2), "=r"(w3)			\
 	: "0"(n), "1"(to), "2"(from)			\
 	: "memory");					\
 } while (0)
 
-#define __copy_user_zeroing(to, from, n)		\
+#define ___copy_from_user(to, from, n)			\
 do {							\
 	int tmp;					\
 	int nsave;					\
@@ -356,22 +359,22 @@
 	"       addi    %1,  1          \n"		\
 	"       subi    %0,  1          \n"		\
 	"       br      5b              \n"		\
-	"8:     mov     %3, %0          \n"		\
-	"       movi    %4, 0           \n"		\
-	"9:     stb     %4, (%1, 0)     \n"		\
-	"       addi    %1, 1           \n"		\
-	"       subi    %3, 1           \n"		\
-	"       cmpnei  %3, 0           \n"		\
-	"       bt      9b              \n"		\
-	"       br      7f              \n"		\
+	"8:     stw     %3, (%1, 0)     \n"		\
+	"       subi    %0, 4           \n"		\
+	"       bf      7f              \n"		\
+	"9:     subi    %0, 8           \n"		\
+	"       bf      7f              \n"		\
+	"13:    stw     %3, (%1, 8)     \n"		\
+	"       subi    %0, 12          \n"		\
+	"       bf      7f              \n"		\
 	".section __ex_table, \"a\"     \n"		\
 	".align   2                     \n"		\
-	".long    2b, 8b                \n"		\
+	".long    2b, 7f                \n"		\
+	".long    4b, 7f                \n"		\
+	".long    6b, 7f                \n"		\
 	".long   10b, 8b                \n"		\
-	".long   11b, 8b                \n"		\
-	".long   12b, 8b                \n"		\
-	".long    4b, 8b                \n"		\
-	".long    6b, 8b                \n"		\
+	".long   11b, 9b                \n"		\
+	".long   12b,13b                \n"		\
 	".previous                      \n"		\
 	"7:                             \n"		\
 	: "=r"(n), "=r"(to), "=r"(from), "=r"(nsave),	\
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/include/uapi/asm/unistd.h
+++ linux-gkeop-5.4-5.4.0/arch/csky/include/uapi/asm/unistd.h
@@ -1,7 +1,10 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
 
+#define __ARCH_WANT_STAT64
+#define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SYS_CLONE
+#define __ARCH_WANT_SYS_CLONE3
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #include <asm-generic/unistd.h>
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/atomic.S
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/atomic.S
@@ -17,10 +17,12 @@
 	mfcr	a3, epc
 	addi	a3, TRAP0_SIZE
 
-	subi    sp, 8
+	subi    sp, 16
 	stw     a3, (sp, 0)
 	mfcr    a3, epsr
 	stw     a3, (sp, 4)
+	mfcr	a3, usp
+	stw     a3, (sp, 8)
 
 	psrset	ee
 #ifdef CONFIG_CPU_HAS_LDSTEX
@@ -47,7 +49,9 @@
 	mtcr	a3, epc
 	ldw     a3, (sp, 4)
 	mtcr	a3, epsr
-	addi	sp, 8
+	ldw     a3, (sp, 8)
+	mtcr	a3, usp
+	addi	sp, 16
 	KSPTOUSP
 	rte
 END(csky_cmpxchg)
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/entry.S
@@ -170,8 +170,10 @@
 	ldw	a3, (sp, LSAVE_A3)
 #if defined(__CSKYABIV2__)
 	subi	sp, 8
-	stw	r5, (sp, 0x4)
-	stw	r4, (sp, 0x0)
+	ldw	r9, (sp, LSAVE_A4)
+	stw	r9, (sp, 0x0)
+	ldw	r9, (sp, LSAVE_A5)
+	stw	r9, (sp, 0x4)
 #else
 	ldw	r6, (sp, LSAVE_A4)
 	ldw	r7, (sp, LSAVE_A5)
@@ -318,8 +320,6 @@
 
 	mfcr	a2, psr			/* Save PSR value */
 	stw	a2, (a3, THREAD_SR)	/* Save PSR in task struct */
-	bclri	a2, 6			/* Disable interrupts */
-	mtcr	a2, psr
 
 	SAVE_SWITCH_STACK
 
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/head.S
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/head.S
@@ -21,6 +21,11 @@
 ENTRY(_start_smp_secondary)
 	SETUP_MMU
 
+	/* copy msa1 from CPU0 */
+	lrw     r6, secondary_msa1
+	ld.w	r6, (r6, 0)
+	mtcr	r6, cr<31, 15>
+
 	/* set stack point */
 	lrw     r6, secondary_stack
 	ld.w	r6, (r6, 0)
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/perf_callchain.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/perf_callchain.c
@@ -12,12 +12,17 @@
 
 static int unwind_frame_kernel(struct stackframe *frame)
 {
-	if (kstack_end((void *)frame->fp))
+	unsigned long low = (unsigned long)task_stack_page(current);
+	unsigned long high = low + THREAD_SIZE;
+
+	if (unlikely(frame->fp < low || frame->fp > high))
 		return -EPERM;
-	if (frame->fp & 0x3 || frame->fp < TASK_SIZE)
+
+	if (kstack_end((void *)frame->fp) || frame->fp & 0x3)
 		return -EPERM;
 
 	*frame = *(struct stackframe *)frame->fp;
+
 	if (__kernel_text_address(frame->lr)) {
 		int graph = 0;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/process.c
@@ -34,10 +34,11 @@
 	return sw->r15;
 }
 
-int copy_thread(unsigned long clone_flags,
+int copy_thread_tls(unsigned long clone_flags,
 		unsigned long usp,
 		unsigned long kthread_arg,
-		struct task_struct *p)
+		struct task_struct *p,
+		unsigned long tls)
 {
 	struct switch_stack *childstack;
 	struct pt_regs *childregs = task_pt_regs(p);
@@ -64,7 +65,7 @@
 			childregs->usp = usp;
 		if (clone_flags & CLONE_SETTLS)
 			task_thread_info(p)->tp_value = childregs->tls
-						      = childregs->regs[0];
+						      = tls;
 
 		childregs->a0 = 0;
 		childstack->r15 = (unsigned long) ret_from_fork;
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/setup.c
@@ -24,26 +24,9 @@
 };
 #endif
 
-phys_addr_t __init_memblock memblock_end_of_REG0(void)
-{
-	return (memblock.memory.regions[0].base +
-		memblock.memory.regions[0].size);
-}
-
-phys_addr_t __init_memblock memblock_start_of_REG1(void)
-{
-	return memblock.memory.regions[1].base;
-}
-
-size_t __init_memblock memblock_size_of_REG1(void)
-{
-	return memblock.memory.regions[1].size;
-}
-
 static void __init csky_memblock_init(void)
 {
 	unsigned long zone_size[MAX_NR_ZONES];
-	unsigned long zhole_size[MAX_NR_ZONES];
 	signed long size;
 
 	memblock_reserve(__pa(_stext), _end - _stext);
@@ -57,54 +40,36 @@
 	memblock_dump_all();
 
 	memset(zone_size, 0, sizeof(zone_size));
-	memset(zhole_size, 0, sizeof(zhole_size));
 
 	min_low_pfn = PFN_UP(memblock_start_of_DRAM());
-	max_pfn	    = PFN_DOWN(memblock_end_of_DRAM());
-
-	max_low_pfn = PFN_UP(memblock_end_of_REG0());
-	if (max_low_pfn == 0)
-		max_low_pfn = max_pfn;
+	max_low_pfn = max_pfn = PFN_DOWN(memblock_end_of_DRAM());
 
 	size = max_pfn - min_low_pfn;
 
-	if (memblock.memory.cnt > 1) {
-		zone_size[ZONE_NORMAL]  =
-			PFN_DOWN(memblock_start_of_REG1()) - min_low_pfn;
-		zhole_size[ZONE_NORMAL] =
-			PFN_DOWN(memblock_start_of_REG1()) - max_low_pfn;
+	if (size <= PFN_DOWN(SSEG_SIZE - PHYS_OFFSET_OFFSET))
+		zone_size[ZONE_NORMAL] = size;
+	else if (size < PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET)) {
+		zone_size[ZONE_NORMAL] =
+				PFN_DOWN(SSEG_SIZE - PHYS_OFFSET_OFFSET);
+		max_low_pfn = min_low_pfn + zone_size[ZONE_NORMAL];
 	} else {
-		if (size <= PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET))
-			zone_size[ZONE_NORMAL] = max_pfn - min_low_pfn;
-		else {
-			zone_size[ZONE_NORMAL] =
+		zone_size[ZONE_NORMAL] =
 				PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
-			max_low_pfn = min_low_pfn + zone_size[ZONE_NORMAL];
-		}
+		max_low_pfn = min_low_pfn + zone_size[ZONE_NORMAL];
+		write_mmu_msa1(read_mmu_msa0() + SSEG_SIZE);
 	}
 
 #ifdef CONFIG_HIGHMEM
-	size = 0;
-	if (memblock.memory.cnt > 1) {
-		size = PFN_DOWN(memblock_size_of_REG1());
-		highstart_pfn = PFN_DOWN(memblock_start_of_REG1());
-	} else {
-		size = max_pfn - min_low_pfn -
-			PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
-		highstart_pfn =  min_low_pfn +
-			PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
-	}
-
-	if (size > 0)
-		zone_size[ZONE_HIGHMEM] = size;
+	zone_size[ZONE_HIGHMEM] = max_pfn - max_low_pfn;
 
-	highend_pfn = max_pfn;
+	highstart_pfn = max_low_pfn;
+	highend_pfn   = max_pfn;
 #endif
 	memblock_set_current_limit(PFN_PHYS(max_low_pfn));
 
 	dma_contiguous_reserve(0);
 
-	free_area_init_node(0, zone_size, min_low_pfn, zhole_size);
+	free_area_init_node(0, zone_size, min_low_pfn, NULL);
 }
 
 void __init setup_arch(char **cmdline_p)
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/smp.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/smp.c
@@ -22,6 +22,9 @@
 #include <asm/sections.h>
 #include <asm/mmu_context.h>
 #include <asm/pgalloc.h>
+#ifdef CONFIG_CPU_HAS_FPU
+#include <abi/fpu.h>
+#endif
 
 struct ipi_data_struct {
 	unsigned long bits ____cacheline_aligned;
@@ -120,7 +123,7 @@
 	int rc;
 
 	if (ipi_irq == 0)
-		panic("%s IRQ mapping failed\n", __func__);
+		return;
 
 	rc = request_percpu_irq(ipi_irq, handle_ipi, "IPI Interrupt",
 				&ipi_dummy_dev);
@@ -156,6 +159,8 @@
 volatile unsigned int secondary_ccr;
 volatile unsigned int secondary_stack;
 
+unsigned long secondary_msa1;
+
 int __cpu_up(unsigned int cpu, struct task_struct *tidle)
 {
 	unsigned long mask = 1 << cpu;
@@ -164,6 +169,7 @@
 		(unsigned int) task_stack_page(tidle) + THREAD_SIZE - 8;
 	secondary_hint = mfcr("cr31");
 	secondary_ccr  = mfcr("cr18");
+	secondary_msa1 = read_mmu_msa1();
 
 	/*
 	 * Because other CPUs are in reset status, we must flush data
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/kernel/traps.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/kernel/traps.c
@@ -115,8 +115,9 @@
 	int sig;
 	unsigned long vector;
 	siginfo_t info;
+	struct task_struct *tsk = current;
 
-	vector = (mfcr("psr") >> 16) & 0xff;
+	vector = (regs->sr >> 16) & 0xff;
 
 	switch (vector) {
 	case VEC_ZERODIV:
@@ -129,6 +130,7 @@
 		sig = SIGTRAP;
 		break;
 	case VEC_ILLEGAL:
+		tsk->thread.trap_no = vector;
 		die_if_kernel("Kernel mode ILLEGAL", regs, vector);
 #ifndef CONFIG_CPU_NO_USER_BKPT
 		if (*(uint16_t *)instruction_pointer(regs) != USR_BKPT)
@@ -146,16 +148,20 @@
 		sig = SIGTRAP;
 		break;
 	case VEC_ACCESS:
+		tsk->thread.trap_no = vector;
 		return buserr(regs);
 #ifdef CONFIG_CPU_NEED_SOFTALIGN
 	case VEC_ALIGN:
+		tsk->thread.trap_no = vector;
 		return csky_alignment(regs);
 #endif
 #ifdef CONFIG_CPU_HAS_FPU
 	case VEC_FPE:
+		tsk->thread.trap_no = vector;
 		die_if_kernel("Kernel mode FPE", regs, vector);
 		return fpu_fpe(regs);
 	case VEC_PRIV:
+		tsk->thread.trap_no = vector;
 		die_if_kernel("Kernel mode PRIV", regs, vector);
 		if (fpu_libc_helper(regs))
 			return;
@@ -164,5 +170,8 @@
 		sig = SIGSEGV;
 		break;
 	}
+
+	tsk->thread.trap_no = vector;
+
 	send_sig(sig, current, 0);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/lib/usercopy.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/lib/usercopy.c
@@ -7,10 +7,7 @@
 unsigned long raw_copy_from_user(void *to, const void *from,
 			unsigned long n)
 {
-	if (access_ok(from, n))
-		__copy_user_zeroing(to, from, n);
-	else
-		memset(to, 0, n);
+	___copy_from_user(to, from, n);
 	return n;
 }
 EXPORT_SYMBOL(raw_copy_from_user);
@@ -18,8 +15,7 @@
 unsigned long raw_copy_to_user(void *to, const void *from,
 			unsigned long n)
 {
-	if (access_ok(to, n))
-		__copy_user(to, from, n);
+	___copy_to_user(to, from, n);
 	return n;
 }
 EXPORT_SYMBOL(raw_copy_to_user);
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/mm/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/csky/mm/Makefile
@@ -1,8 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0-only
 ifeq ($(CONFIG_CPU_HAS_CACHEV2),y)
 obj-y +=			cachev2.o
+CFLAGS_REMOVE_cachev2.o = $(CC_FLAGS_FTRACE)
 else
 obj-y +=			cachev1.o
+CFLAGS_REMOVE_cachev1.o = $(CC_FLAGS_FTRACE)
 endif
 
 obj-y +=			dma-mapping.o
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/mm/fault.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/mm/fault.c
@@ -179,11 +179,14 @@
 bad_area_nosemaphore:
 	/* User mode accesses just cause a SIGSEGV */
 	if (user_mode(regs)) {
+		tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
 		force_sig_fault(SIGSEGV, si_code, (void __user *)address);
 		return;
 	}
 
 no_context:
+	tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
+
 	/* Are we prepared to handle this kernel fault? */
 	if (fixup_exception(regs))
 		return;
@@ -198,6 +201,8 @@
 	die_if_kernel("Oops", regs, write);
 
 out_of_memory:
+	tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
+
 	/*
 	 * We ran out of memory, call the OOM killer, and return the userspace
 	 * (which will retry the fault, or kill us if we got oom-killed).
@@ -206,6 +211,8 @@
 	return;
 
 do_sigbus:
+	tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
+
 	up_read(&mm->mmap_sem);
 
 	/* Kernel mode? Handle exceptions or die */
--- linux-gkeop-5.4-5.4.0.orig/arch/csky/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/csky/mm/init.c
@@ -31,6 +31,7 @@
 
 pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
 pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned_bss;
+EXPORT_SYMBOL(invalid_pte_table);
 unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)]
 						__page_aligned_bss;
 EXPORT_SYMBOL(empty_zero_page);
--- linux-gkeop-5.4-5.4.0.orig/arch/h8300/kernel/asm-offsets.c
+++ linux-gkeop-5.4-5.4.0/arch/h8300/kernel/asm-offsets.c
@@ -63,6 +63,9 @@
 	OFFSET(TI_FLAGS, thread_info, flags);
 	OFFSET(TI_CPU, thread_info, cpu);
 	OFFSET(TI_PRE, thread_info, preempt_count);
+#ifdef CONFIG_PREEMPTION
+	DEFINE(TI_PRE_COUNT, offsetof(struct thread_info, preempt_count));
+#endif
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/include/asm/atomic.h
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/include/asm/atomic.h
@@ -91,7 +91,7 @@
 		"1:	%0 = memw_locked(%1);\n"			\
 		"	%0 = "#op "(%0,%2);\n"				\
 		"	memw_locked(%1,P3)=%0;\n"			\
-		"	if !P3 jump 1b;\n"				\
+		"	if (!P3) jump 1b;\n"				\
 		: "=&r" (output)					\
 		: "r" (&v->counter), "r" (i)				\
 		: "memory", "p3"					\
@@ -107,7 +107,7 @@
 		"1:	%0 = memw_locked(%1);\n"			\
 		"	%0 = "#op "(%0,%2);\n"				\
 		"	memw_locked(%1,P3)=%0;\n"			\
-		"	if !P3 jump 1b;\n"				\
+		"	if (!P3) jump 1b;\n"				\
 		: "=&r" (output)					\
 		: "r" (&v->counter), "r" (i)				\
 		: "memory", "p3"					\
@@ -124,7 +124,7 @@
 		"1:	%0 = memw_locked(%2);\n"			\
 		"	%1 = "#op "(%0,%3);\n"				\
 		"	memw_locked(%2,P3)=%1;\n"			\
-		"	if !P3 jump 1b;\n"				\
+		"	if (!P3) jump 1b;\n"				\
 		: "=&r" (output), "=&r" (val)				\
 		: "r" (&v->counter), "r" (i)				\
 		: "memory", "p3"					\
@@ -173,7 +173,7 @@
 		"	}"
 		"	memw_locked(%2, p3) = %1;"
 		"	{"
-		"		if !p3 jump 1b;"
+		"		if (!p3) jump 1b;"
 		"	}"
 		"2:"
 		: "=&r" (__oldval), "=&r" (tmp)
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/include/asm/bitops.h
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/include/asm/bitops.h
@@ -38,7 +38,7 @@
 	"1:	R12 = memw_locked(R10);\n"
 	"	{ P0 = tstbit(R12,R11); R12 = clrbit(R12,R11); }\n"
 	"	memw_locked(R10,P1) = R12;\n"
-	"	{if !P1 jump 1b; %0 = mux(P0,#1,#0);}\n"
+	"	{if (!P1) jump 1b; %0 = mux(P0,#1,#0);}\n"
 	: "=&r" (oldval)
 	: "r" (addr), "r" (nr)
 	: "r10", "r11", "r12", "p0", "p1", "memory"
@@ -62,7 +62,7 @@
 	"1:	R12 = memw_locked(R10);\n"
 	"	{ P0 = tstbit(R12,R11); R12 = setbit(R12,R11); }\n"
 	"	memw_locked(R10,P1) = R12;\n"
-	"	{if !P1 jump 1b; %0 = mux(P0,#1,#0);}\n"
+	"	{if (!P1) jump 1b; %0 = mux(P0,#1,#0);}\n"
 	: "=&r" (oldval)
 	: "r" (addr), "r" (nr)
 	: "r10", "r11", "r12", "p0", "p1", "memory"
@@ -88,7 +88,7 @@
 	"1:	R12 = memw_locked(R10);\n"
 	"	{ P0 = tstbit(R12,R11); R12 = togglebit(R12,R11); }\n"
 	"	memw_locked(R10,P1) = R12;\n"
-	"	{if !P1 jump 1b; %0 = mux(P0,#1,#0);}\n"
+	"	{if (!P1) jump 1b; %0 = mux(P0,#1,#0);}\n"
 	: "=&r" (oldval)
 	: "r" (addr), "r" (nr)
 	: "r10", "r11", "r12", "p0", "p1", "memory"
@@ -223,7 +223,7 @@
 	int r;
 
 	asm("{ P0 = cmp.eq(%1,#0); %0 = ct0(%1);}\n"
-		"{ if P0 %0 = #0; if !P0 %0 = add(%0,#1);}\n"
+		"{ if (P0) %0 = #0; if (!P0) %0 = add(%0,#1);}\n"
 		: "=&r" (r)
 		: "r" (x)
 		: "p0");
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/include/asm/cmpxchg.h
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/include/asm/cmpxchg.h
@@ -30,7 +30,7 @@
 	__asm__ __volatile__ (
 	"1:	%0 = memw_locked(%1);\n"    /*  load into retval */
 	"	memw_locked(%1,P0) = %2;\n" /*  store into memory */
-	"	if !P0 jump 1b;\n"
+	"	if (!P0) jump 1b;\n"
 	: "=&r" (retval)
 	: "r" (ptr), "r" (x)
 	: "memory", "p0"
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/include/asm/futex.h
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/include/asm/futex.h
@@ -16,7 +16,7 @@
 	    /* For example: %1 = %4 */ \
 	    insn \
 	"2: memw_locked(%3,p2) = %1;\n" \
-	"   if !p2 jump 1b;\n" \
+	"   if (!p2) jump 1b;\n" \
 	"   %1 = #0;\n" \
 	"3:\n" \
 	".section .fixup,\"ax\"\n" \
@@ -84,10 +84,10 @@
 	"1: %1 = memw_locked(%3)\n"
 	"   {\n"
 	"      p2 = cmp.eq(%1,%4)\n"
-	"      if !p2.new jump:NT 3f\n"
+	"      if (!p2.new) jump:NT 3f\n"
 	"   }\n"
 	"2: memw_locked(%3,p2) = %5\n"
-	"   if !p2 jump 1b\n"
+	"   if (!p2) jump 1b\n"
 	"3:\n"
 	".section .fixup,\"ax\"\n"
 	"4: %0 = #%6\n"
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/include/asm/io.h
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/include/asm/io.h
@@ -171,16 +171,10 @@
 #define writew_relaxed __raw_writew
 #define writel_relaxed __raw_writel
 
-/*
- * Need an mtype somewhere in here, for cache type deals?
- * This is probably too long for an inline.
- */
-void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size);
+void __iomem *ioremap(unsigned long phys_addr, unsigned long size);
+#define ioremap_nocache ioremap
+#define ioremap_uc(X, Y) ioremap((X), (Y))
 
-static inline void __iomem *ioremap(unsigned long phys_addr, unsigned long size)
-{
-	return ioremap_nocache(phys_addr, size);
-}
 
 static inline void iounmap(volatile void __iomem *addr)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/include/asm/spinlock.h
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/include/asm/spinlock.h
@@ -30,9 +30,9 @@
 	__asm__ __volatile__(
 		"1:	R6 = memw_locked(%0);\n"
 		"	{ P3 = cmp.ge(R6,#0); R6 = add(R6,#1);}\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		"	memw_locked(%0,P3) = R6;\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -46,7 +46,7 @@
 		"1:	R6 = memw_locked(%0);\n"
 		"	R6 = add(R6,#-1);\n"
 		"	memw_locked(%0,P3) = R6\n"
-		"	if !P3 jump 1b;\n"
+		"	if (!P3) jump 1b;\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -61,7 +61,7 @@
 	__asm__ __volatile__(
 		"	R6 = memw_locked(%1);\n"
 		"	{ %0 = #0; P3 = cmp.ge(R6,#0); R6 = add(R6,#1);}\n"
-		"	{ if !P3 jump 1f; }\n"
+		"	{ if (!P3) jump 1f; }\n"
 		"	memw_locked(%1,P3) = R6;\n"
 		"	{ %0 = P3 }\n"
 		"1:\n"
@@ -78,9 +78,9 @@
 	__asm__ __volatile__(
 		"1:	R6 = memw_locked(%0)\n"
 		"	{ P3 = cmp.eq(R6,#0);  R6 = #-1;}\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		"	memw_locked(%0,P3) = R6;\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -94,7 +94,7 @@
 	__asm__ __volatile__(
 		"	R6 = memw_locked(%1)\n"
 		"	{ %0 = #0; P3 = cmp.eq(R6,#0);  R6 = #-1;}\n"
-		"	{ if !P3 jump 1f; }\n"
+		"	{ if (!P3) jump 1f; }\n"
 		"	memw_locked(%1,P3) = R6;\n"
 		"	%0 = P3;\n"
 		"1:\n"
@@ -117,9 +117,9 @@
 	__asm__ __volatile__(
 		"1:	R6 = memw_locked(%0);\n"
 		"	P3 = cmp.eq(R6,#0);\n"
-		"	{ if !P3 jump 1b; R6 = #1; }\n"
+		"	{ if (!P3) jump 1b; R6 = #1; }\n"
 		"	memw_locked(%0,P3) = R6;\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -139,7 +139,7 @@
 	__asm__ __volatile__(
 		"	R6 = memw_locked(%1);\n"
 		"	P3 = cmp.eq(R6,#0);\n"
-		"	{ if !P3 jump 1f; R6 = #1; %0 = #0; }\n"
+		"	{ if (!P3) jump 1f; R6 = #1; %0 = #0; }\n"
 		"	memw_locked(%1,P3) = R6;\n"
 		"	%0 = P3;\n"
 		"1:\n"
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/kernel/hexagon_ksyms.c
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/kernel/hexagon_ksyms.c
@@ -20,7 +20,7 @@
 EXPORT_SYMBOL(__vmsetie);
 EXPORT_SYMBOL(__vmyield);
 EXPORT_SYMBOL(empty_zero_page);
-EXPORT_SYMBOL(ioremap_nocache);
+EXPORT_SYMBOL(ioremap);
 EXPORT_SYMBOL(memcpy);
 EXPORT_SYMBOL(memset);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/kernel/stacktrace.c
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/kernel/stacktrace.c
@@ -11,8 +11,6 @@
 #include <linux/thread_info.h>
 #include <linux/module.h>
 
-register unsigned long current_frame_pointer asm("r30");
-
 struct stackframe {
 	unsigned long fp;
 	unsigned long rets;
@@ -30,7 +28,7 @@
 
 	low = (unsigned long)task_stack_page(current);
 	high = low + THREAD_SIZE;
-	fp = current_frame_pointer;
+	fp = (unsigned long)__builtin_frame_address(0);
 
 	while (fp >= low && fp <= (high - sizeof(*frame))) {
 		frame = (struct stackframe *)fp;
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/kernel/vm_entry.S
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/kernel/vm_entry.S
@@ -369,7 +369,7 @@
 		R26.L = #LO(do_work_pending);
 		R0 = #VM_INT_DISABLE;
 	}
-	if P0 jump check_work_pending
+	if (P0) jump check_work_pending
 	{
 		R0 = R25;
 		callr R24
--- linux-gkeop-5.4-5.4.0.orig/arch/hexagon/mm/ioremap.c
+++ linux-gkeop-5.4-5.4.0/arch/hexagon/mm/ioremap.c
@@ -9,7 +9,7 @@
 #include <linux/vmalloc.h>
 #include <linux/mm.h>
 
-void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size)
+void __iomem *ioremap(unsigned long phys_addr, unsigned long size)
 {
 	unsigned long last_addr, addr;
 	unsigned long offset = phys_addr & ~PAGE_MASK;
--- linux-gkeop-5.4-5.4.0.orig/arch/ia64/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/ia64/Makefile
@@ -40,7 +40,7 @@
 endif
 
 quiet_cmd_gzip = GZIP    $@
-cmd_gzip = cat $(real-prereqs) | gzip -n -f -9 > $@
+cmd_gzip = cat $(real-prereqs) | $(KGZIP) -n -f -9 > $@
 
 quiet_cmd_objcopy = OBJCOPY $@
 cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
--- linux-gkeop-5.4-5.4.0.orig/arch/ia64/configs/zx1_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/ia64/configs/zx1_defconfig
@@ -35,7 +35,6 @@
 CONFIG_CHR_DEV_ST=y
 CONFIG_CHR_DEV_OSST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/ia64/kernel/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/ia64/kernel/Makefile
@@ -41,7 +41,7 @@
 endif
 obj-$(CONFIG_INTEL_IOMMU)	+= pci-dma.o
 
-obj-$(CONFIG_BINFMT_ELF)	+= elfcore.o
+obj-$(CONFIG_ELF_CORE)		+= elfcore.o
 
 # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
 CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31
--- linux-gkeop-5.4-5.4.0.orig/arch/ia64/kernel/kprobes.c
+++ linux-gkeop-5.4-5.4.0/arch/ia64/kernel/kprobes.c
@@ -396,83 +396,9 @@
 {
 }
 
-/*
- * At this point the target function has been tricked into
- * returning into our trampoline.  Lookup the associated instance
- * and then:
- *    - call the handler function
- *    - cleanup by marking the instance as unused
- *    - long jump back to the original return address
- */
 int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
 {
-	struct kretprobe_instance *ri = NULL;
-	struct hlist_head *head, empty_rp;
-	struct hlist_node *tmp;
-	unsigned long flags, orig_ret_address = 0;
-	unsigned long trampoline_address =
-		((struct fnptr *)kretprobe_trampoline)->ip;
-
-	INIT_HLIST_HEAD(&empty_rp);
-	kretprobe_hash_lock(current, &head, &flags);
-
-	/*
-	 * It is possible to have multiple instances associated with a given
-	 * task either because an multiple functions in the call path
-	 * have a return probe installed on them, and/or more than one return
-	 * return probe was registered for a target function.
-	 *
-	 * We can handle this because:
-	 *     - instances are always inserted at the head of the list
-	 *     - when multiple return probes are registered for the same
-	 *       function, the first instance's ret_addr will point to the
-	 *       real return address, and all the rest will point to
-	 *       kretprobe_trampoline
-	 */
-	hlist_for_each_entry_safe(ri, tmp, head, hlist) {
-		if (ri->task != current)
-			/* another task is sharing our hash bucket */
-			continue;
-
-		orig_ret_address = (unsigned long)ri->ret_addr;
-		if (orig_ret_address != trampoline_address)
-			/*
-			 * This is the real return address. Any other
-			 * instances associated with this task are for
-			 * other calls deeper on the call stack
-			 */
-			break;
-	}
-
-	regs->cr_iip = orig_ret_address;
-
-	hlist_for_each_entry_safe(ri, tmp, head, hlist) {
-		if (ri->task != current)
-			/* another task is sharing our hash bucket */
-			continue;
-
-		if (ri->rp && ri->rp->handler)
-			ri->rp->handler(ri, regs);
-
-		orig_ret_address = (unsigned long)ri->ret_addr;
-		recycle_rp_inst(ri, &empty_rp);
-
-		if (orig_ret_address != trampoline_address)
-			/*
-			 * This is the real return address. Any other
-			 * instances associated with this task are for
-			 * other calls deeper on the call stack
-			 */
-			break;
-	}
-	kretprobe_assert(ri, orig_ret_address, trampoline_address);
-
-	kretprobe_hash_unlock(current, &flags);
-
-	hlist_for_each_entry_safe(ri, tmp, &empty_rp, hlist) {
-		hlist_del(&ri->hlist);
-		kfree(ri);
-	}
+	regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
 	/*
 	 * By returning a non-zero value, we are telling
 	 * kprobe_handler() that we don't want the post_handler
@@ -485,6 +411,7 @@
 				      struct pt_regs *regs)
 {
 	ri->ret_addr = (kprobe_opcode_t *)regs->b0;
+	ri->fp = NULL;
 
 	/* Replace the return addr with trampoline addr */
 	regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip;
--- linux-gkeop-5.4-5.4.0.orig/arch/ia64/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/ia64/mm/init.c
@@ -518,7 +518,7 @@
 	if (map_start < map_end)
 		memmap_init_zone((unsigned long)(map_end - map_start),
 				 args->nid, args->zone, page_to_pfn(map_start),
-				 MEMMAP_EARLY, NULL);
+				 MEMINIT_EARLY, NULL);
 	return 0;
 }
 
@@ -527,8 +527,8 @@
 	     unsigned long start_pfn)
 {
 	if (!vmem_map) {
-		memmap_init_zone(size, nid, zone, start_pfn, MEMMAP_EARLY,
-				NULL);
+		memmap_init_zone(size, nid, zone, start_pfn,
+				 MEMINIT_EARLY, NULL);
 	} else {
 		struct page *start;
 		struct memmap_init_callback_data args;
@@ -689,9 +689,7 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/m68k/Makefile
@@ -135,10 +135,10 @@
 ifndef CONFIG_KGDB
 	cp vmlinux vmlinux.tmp
 	$(STRIP) vmlinux.tmp
-	gzip -9c vmlinux.tmp >vmlinux.gz
+	$(KGZIP) -9c vmlinux.tmp >vmlinux.gz
 	rm vmlinux.tmp
 else
-	gzip -9c vmlinux >vmlinux.gz
+	$(KGZIP) -9c vmlinux >vmlinux.gz
 endif
 
 bzImage: vmlinux.bz2
@@ -148,10 +148,10 @@
 ifndef CONFIG_KGDB
 	cp vmlinux vmlinux.tmp
 	$(STRIP) vmlinux.tmp
-	bzip2 -1c vmlinux.tmp >vmlinux.bz2
+	$(KBZIP2) -1c vmlinux.tmp >vmlinux.bz2
 	rm vmlinux.tmp
 else
-	bzip2 -1c vmlinux >vmlinux.bz2
+	$(KBZIP2) -1c vmlinux >vmlinux.bz2
 endif
 
 archclean:
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/coldfire/pci.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/coldfire/pci.c
@@ -216,8 +216,10 @@
 
 	/* Keep a virtual mapping to IO/config space active */
 	iospace = (unsigned long) ioremap(PCI_IO_PA, PCI_IO_SIZE);
-	if (iospace == 0)
+	if (iospace == 0) {
+		pci_free_host_bridge(bridge);
 		return -ENODEV;
+	}
 	pr_info("Coldfire: PCI IO/config window mapped to 0x%x\n",
 		(u32) iospace);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/amiga_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/amiga_defconfig
@@ -334,7 +334,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/apollo_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/apollo_defconfig
@@ -319,7 +319,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/atari_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/atari_defconfig
@@ -334,7 +334,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/bvme6000_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/bvme6000_defconfig
@@ -316,7 +316,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/hp300_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/hp300_defconfig
@@ -318,7 +318,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/mac_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/mac_defconfig
@@ -325,7 +325,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/multi_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/multi_defconfig
@@ -358,7 +358,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/mvme147_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/mvme147_defconfig
@@ -315,7 +315,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/mvme16x_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/mvme16x_defconfig
@@ -316,7 +316,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/q40_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/q40_defconfig
@@ -324,7 +324,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/sun3_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/sun3_defconfig
@@ -313,7 +313,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/configs/sun3x_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/m68k/configs/sun3x_defconfig
@@ -313,7 +313,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/include/asm/m53xxacr.h
+++ linux-gkeop-5.4-5.4.0/arch/m68k/include/asm/m53xxacr.h
@@ -89,9 +89,9 @@
  * coherency though in all cases. And for copyback caches we will need
  * to push cached data as well.
  */
-#define CACHE_INIT	  CACR_CINVA
-#define CACHE_INVALIDATE  CACR_CINVA
-#define CACHE_INVALIDATED CACR_CINVA
+#define CACHE_INIT        (CACHE_MODE + CACR_CINVA - CACR_EC)
+#define CACHE_INVALIDATE  (CACHE_MODE + CACR_CINVA)
+#define CACHE_INVALIDATED (CACHE_MODE + CACR_CINVA)
 
 #define ACR0_MODE	((CONFIG_RAMBASE & 0xff000000) + \
 			 (0x000f0000) + \
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/include/asm/mac_via.h
+++ linux-gkeop-5.4-5.4.0/arch/m68k/include/asm/mac_via.h
@@ -257,6 +257,7 @@
 
 struct irq_desc;
 
+extern void via_l2_flush(int writeback);
 extern void via_register_interrupts(void);
 extern void via_irq_enable(int);
 extern void via_irq_disable(int);
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/kernel/setup_no.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/kernel/setup_no.c
@@ -139,7 +139,8 @@
 	pr_debug("MEMORY -> ROMFS=0x%p-0x%06lx MEM=0x%06lx-0x%06lx\n ",
 		 __bss_stop, memory_start, memory_start, memory_end);
 
-	memblock_add(memory_start, memory_end - memory_start);
+	memblock_add(_rambase, memory_end - _rambase);
+	memblock_reserve(_rambase, memory_start - _rambase);
 
 	/* Keep a copy of command line */
 	*cmdline_p = &command_line[0];
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/mac/config.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/mac/config.c
@@ -59,7 +59,6 @@
 extern void iop_init(void);
 extern void via_init(void);
 extern void via_init_clock(irq_handler_t func);
-extern void via_flush_cache(void);
 extern void oss_init(void);
 extern void psc_init(void);
 extern void baboon_init(void);
@@ -130,21 +129,6 @@
 	return unknown;
 }
 
-/*
- * Flip into 24bit mode for an instant - flushes the L2 cache card. We
- * have to disable interrupts for this. Our IRQ handlers will crap
- * themselves if they take an IRQ in 24bit mode!
- */
-
-static void mac_cache_card_flush(int writeback)
-{
-	unsigned long flags;
-
-	local_irq_save(flags);
-	via_flush_cache();
-	local_irq_restore(flags);
-}
-
 void __init config_mac(void)
 {
 	if (!MACH_IS_MAC)
@@ -175,9 +159,8 @@
 	 * not.
 	 */
 
-	if (macintosh_config->ident == MAC_MODEL_IICI
-	    || macintosh_config->ident == MAC_MODEL_IIFX)
-		mach_l2_flush = mac_cache_card_flush;
+	if (macintosh_config->ident == MAC_MODEL_IICI)
+		mach_l2_flush = via_l2_flush;
 }
 
 
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/mac/iop.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/mac/iop.c
@@ -183,7 +183,7 @@
 
 static __inline__ void iop_stop(volatile struct mac_iop *iop)
 {
-	iop->status_ctrl &= ~IOP_RUN;
+	iop->status_ctrl = IOP_AUTOINC;
 }
 
 static __inline__ void iop_start(volatile struct mac_iop *iop)
@@ -191,14 +191,9 @@
 	iop->status_ctrl = IOP_RUN | IOP_AUTOINC;
 }
 
-static __inline__ void iop_bypass(volatile struct mac_iop *iop)
-{
-	iop->status_ctrl |= IOP_BYPASS;
-}
-
 static __inline__ void iop_interrupt(volatile struct mac_iop *iop)
 {
-	iop->status_ctrl |= IOP_IRQ;
+	iop->status_ctrl = IOP_IRQ | IOP_RUN | IOP_AUTOINC;
 }
 
 static int iop_alive(volatile struct mac_iop *iop)
@@ -244,7 +239,6 @@
 		} else {
 			iop_base[IOP_NUM_SCC] = (struct mac_iop *) SCC_IOP_BASE_QUADRA;
 		}
-		iop_base[IOP_NUM_SCC]->status_ctrl = 0x87;
 		iop_scc_present = 1;
 	} else {
 		iop_base[IOP_NUM_SCC] = NULL;
@@ -256,7 +250,7 @@
 		} else {
 			iop_base[IOP_NUM_ISM] = (struct mac_iop *) ISM_IOP_BASE_QUADRA;
 		}
-		iop_base[IOP_NUM_ISM]->status_ctrl = 0;
+		iop_stop(iop_base[IOP_NUM_ISM]);
 		iop_ism_present = 1;
 	} else {
 		iop_base[IOP_NUM_ISM] = NULL;
@@ -416,7 +410,8 @@
 	msg->status = IOP_MSGSTATUS_UNUSED;
 	msg = msg->next;
 	iop_send_queue[iop_num][chan] = msg;
-	if (msg) iop_do_send(msg);
+	if (msg && iop_readb(iop, IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE)
+		iop_do_send(msg);
 }
 
 /*
@@ -490,16 +485,12 @@
 
 	if (!(q = iop_send_queue[iop_num][chan])) {
 		iop_send_queue[iop_num][chan] = msg;
+		iop_do_send(msg);
 	} else {
 		while (q->next) q = q->next;
 		q->next = msg;
 	}
 
-	if (iop_readb(iop_base[iop_num],
-	    IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE) {
-		iop_do_send(msg);
-	}
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/mac/via.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/mac/via.c
@@ -294,10 +294,14 @@
  * the system into 24-bit mode for an instant.
  */
 
-void via_flush_cache(void)
+void via_l2_flush(int writeback)
 {
+	unsigned long flags;
+
+	local_irq_save(flags);
 	via2[gBufB] &= ~VIA2B_vMode32;
 	via2[gBufB] |= VIA2B_vMode32;
+	local_irq_restore(flags);
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/mm/mcfmmu.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/mm/mcfmmu.c
@@ -164,7 +164,7 @@
 	m68k_memory[0].addr = _rambase;
 	m68k_memory[0].size = _ramend - _rambase;
 
-	memblock_add(m68k_memory[0].addr, m68k_memory[0].size);
+	memblock_add_node(m68k_memory[0].addr, m68k_memory[0].size, 0);
 
 	/* compute total pages in system */
 	num_pages = PFN_DOWN(_ramend - _rambase);
--- linux-gkeop-5.4-5.4.0.orig/arch/m68k/q40/config.c
+++ linux-gkeop-5.4-5.4.0/arch/m68k/q40/config.c
@@ -264,6 +264,7 @@
 {
 	int tmp = Q40_RTC_CTRL;
 
+	pll->pll_ctrl = 0;
 	pll->pll_value = tmp & Q40_RTC_PLL_MASK;
 	if (tmp & Q40_RTC_PLL_SIGN)
 		pll->pll_value = -pll->pll_value;
--- linux-gkeop-5.4-5.4.0.orig/arch/microblaze/kernel/cpu/cache.c
+++ linux-gkeop-5.4-5.4.0/arch/microblaze/kernel/cpu/cache.c
@@ -92,7 +92,8 @@
 #define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size)	\
 do {									\
 	int align = ~(cache_line_length - 1);				\
-	end = min(start + cache_size, end);				\
+	if (start <  UINT_MAX - cache_size)				\
+		end = min(start + cache_size, end);			\
 	start &= align;							\
 } while (0)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/Kconfig
@@ -46,7 +46,7 @@
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
 	select HAVE_ASM_MODVERSIONS
-	select HAVE_EBPF_JIT if (!CPU_MICROMIPS)
+	select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
 	select HAVE_CONTEXT_TRACKING
 	select HAVE_COPY_THREAD_TLS
 	select HAVE_C_RECORDMCOUNT
@@ -862,6 +862,7 @@
 	select I8253
 	select I8259
 	select ISA
+	select MIPS_L1_CACHE_SHIFT_6
 	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
 	select SYS_HAS_CPU_R4X00
 	select SYS_HAS_CPU_R5000
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/mips/Makefile
@@ -285,12 +285,23 @@
   endif
 endif
 
+# When linking a 32-bit executable the LLVM linker cannot cope with a
+# 32-bit load address that has been sign-extended to 64 bits.  Simply
+# remove the upper 32 bits then, as it is safe to do so with other
+# linkers.
+ifdef CONFIG_64BIT
+	load-ld			= $(load-y)
+else
+	load-ld			= $(subst 0xffffffff,0x,$(load-y))
+endif
+
 KBUILD_AFLAGS	+= $(cflags-y)
 KBUILD_CFLAGS	+= $(cflags-y)
-KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y)
+KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y) -DLINKER_LOAD_ADDRESS=$(load-ld)
 KBUILD_CPPFLAGS += -DDATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)
 
 bootvars-y	= VMLINUX_LOAD_ADDRESS=$(load-y) \
+		  LINKER_LOAD_ADDRESS=$(load-ld) \
 		  VMLINUX_ENTRY_ADDRESS=$(entry-y) \
 		  PLATFORM="$(platform-y)" \
 		  ITS_INPUTS="$(its-y)"
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/Makefile.postlink
+++ linux-gkeop-5.4-5.4.0/arch/mips/Makefile.postlink
@@ -12,7 +12,7 @@
 include scripts/Kbuild.include
 
 CMD_RELOCS = arch/mips/boot/tools/relocs
-quiet_cmd_relocs = RELOCS $@
+quiet_cmd_relocs = RELOCS  $@
       cmd_relocs = $(CMD_RELOCS) $@
 
 # `@true` prevents complaint when there is nothing to be done
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/alchemy/common/clock.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/alchemy/common/clock.c
@@ -152,6 +152,7 @@
 {
 	struct clk_init_data id;
 	struct clk_hw *h;
+	struct clk *clk;
 
 	h = kzalloc(sizeof(*h), GFP_KERNEL);
 	if (!h)
@@ -164,7 +165,13 @@
 	id.ops = &alchemy_clkops_cpu;
 	h->init = &id;
 
-	return clk_register(NULL, h);
+	clk = clk_register(NULL, h);
+	if (IS_ERR(clk)) {
+		pr_err("failed to register clock\n");
+		kfree(h);
+	}
+
+	return clk;
 }
 
 /* AUXPLLs ************************************************************/
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/bcm47xx/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/bcm47xx/Kconfig
@@ -27,6 +27,7 @@
 	select BCMA
 	select BCMA_HOST_SOC
 	select BCMA_DRIVER_MIPS
+	select BCMA_DRIVER_PCI if PCI
 	select BCMA_DRIVER_PCI_HOSTMODE if PCI
 	select BCMA_DRIVER_GPIO
 	default y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/boot/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/mips/boot/Makefile
@@ -123,7 +123,7 @@
 targets += vmlinux.its
 targets += vmlinux.gz.its
 targets += vmlinux.bz2.its
-targets += vmlinux.lzmo.its
+targets += vmlinux.lzma.its
 targets += vmlinux.lzo.its
 
 quiet_cmd_cpp_its_S = ITS     $@
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/boot/compressed/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/mips/boot/compressed/Makefile
@@ -29,6 +29,9 @@
 	-DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
 	-DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS)
 
+# Prevents link failures: __sanitizer_cov_trace_pc() is not linked in.
+KCOV_INSTRUMENT		:= n
+
 # decompressor objects (linked with vmlinuz)
 vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o
 
@@ -87,7 +90,7 @@
 VMLINUZ_LOAD_ADDRESS := $(zload-y)
 else
 VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \
-		$(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS))
+		$(obj)/vmlinux.bin $(LINKER_LOAD_ADDRESS))
 endif
 UIMAGE_LOADADDR = $(VMLINUZ_LOAD_ADDRESS)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/boot/compressed/decompress.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/boot/compressed/decompress.c
@@ -13,6 +13,7 @@
 #include <linux/libfdt.h>
 
 #include <asm/addrspace.h>
+#include <asm/unaligned.h>
 
 /*
  * These two variables specify the free mem region
@@ -113,7 +114,7 @@
 		dtb_size = fdt_totalsize((void *)&__appended_dtb);
 
 		/* last four bytes is always image size in little endian */
-		image_size = le32_to_cpup((void *)&__image_end - 4);
+		image_size = get_unaligned_le32((void *)&__image_end - 4);
 
 		/* copy dtb to where the booted kernel will expect it */
 		memcpy((void *)VMLINUX_LOAD_ADDRESS_ULL + image_size,
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/boot/dts/ingenic/qi_lb60.dts
+++ linux-gkeop-5.4-5.4.0/arch/mips/boot/dts/ingenic/qi_lb60.dts
@@ -69,7 +69,7 @@
 			"Speaker", "OUTL",
 			"Speaker", "OUTR",
 			"INL", "LOUT",
-			"INL", "ROUT";
+			"INR", "ROUT";
 
 		simple-audio-card,aux-devs = <&amp>;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/cavium-octeon/octeon-irq.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/cavium-octeon/octeon-irq.c
@@ -2199,6 +2199,9 @@
 	}
 
 	cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+	if (!cd)
+		return -ENOMEM;
+
 	cd->host_data = host_data;
 	cd->bit = hw;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/cavium-octeon/octeon-usb.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/cavium-octeon/octeon-usb.c
@@ -518,6 +518,7 @@
 
 			res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 			if (res == NULL) {
+				put_device(&pdev->dev);
 				dev_err(&pdev->dev, "No memory resources\n");
 				return -ENXIO;
 			}
@@ -529,8 +530,10 @@
 			 * know the difference.
 			 */
 			base = devm_ioremap_resource(&pdev->dev, res);
-			if (IS_ERR(base))
+			if (IS_ERR(base)) {
+				put_device(&pdev->dev);
 				return PTR_ERR(base);
+			}
 
 			mutex_lock(&dwc3_octeon_clocks_mutex);
 			dwc3_octeon_clocks_start(&pdev->dev, (u64)base);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/bigsur_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/bigsur_defconfig
@@ -112,7 +112,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_ATA=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/fuloong2e_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/fuloong2e_defconfig
@@ -99,7 +99,6 @@
 CONFIG_ATA_OVER_ETH=m
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOWLEVEL is not set
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/ip27_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/ip27_defconfig
@@ -99,7 +99,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_CONSTANTS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/ip32_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/ip32_defconfig
@@ -50,7 +50,6 @@
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/jazz_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/jazz_defconfig
@@ -191,7 +191,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/loongson3_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/loongson3_defconfig
@@ -231,7 +231,7 @@
 CONFIG_MEDIA_USB_SUPPORT=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_DRM=y
-CONFIG_DRM_RADEON=y
+CONFIG_DRM_RADEON=m
 CONFIG_FB_RADEON=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_LCD_PLATFORM=m
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/malta_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/malta_defconfig
@@ -239,7 +239,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/malta_kvm_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/malta_kvm_defconfig
@@ -247,7 +247,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/malta_kvm_guest_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/malta_kvm_guest_defconfig
@@ -245,7 +245,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/maltaup_xpa_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/maltaup_xpa_defconfig
@@ -245,7 +245,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/configs/rm200_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/configs/rm200_defconfig
@@ -203,7 +203,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/dec/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/dec/setup.c
@@ -6,7 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1998 Harald Koerfgen
- * Copyright (C) 2000, 2001, 2002, 2003, 2005  Maciej W. Rozycki
+ * Copyright (C) 2000, 2001, 2002, 2003, 2005, 2020  Maciej W. Rozycki
  */
 #include <linux/console.h>
 #include <linux/export.h>
@@ -15,6 +15,7 @@
 #include <linux/ioport.h>
 #include <linux/irq.h>
 #include <linux/irqnr.h>
+#include <linux/memblock.h>
 #include <linux/param.h>
 #include <linux/percpu-defs.h>
 #include <linux/sched.h>
@@ -22,6 +23,7 @@
 #include <linux/types.h>
 #include <linux/pm.h>
 
+#include <asm/addrspace.h>
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 #include <asm/cpu-features.h>
@@ -29,7 +31,9 @@
 #include <asm/irq.h>
 #include <asm/irq_cpu.h>
 #include <asm/mipsregs.h>
+#include <asm/page.h>
 #include <asm/reboot.h>
+#include <asm/sections.h>
 #include <asm/time.h>
 #include <asm/traps.h>
 #include <asm/wbflush.h>
@@ -166,6 +170,9 @@
 
 	ioport_resource.start = ~0UL;
 	ioport_resource.end = 0UL;
+
+	/* Stay away from the firmware working memory area for now. */
+	memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text) - PHYS_OFFSET);
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/asm.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/asm.h
@@ -20,10 +20,27 @@
 #include <asm/sgidefs.h>
 #include <asm/asm-eva.h>
 
+#ifndef __VDSO__
+/*
+ * Emit CFI data in .debug_frame sections, not .eh_frame sections.
+ * We don't do DWARF unwinding at runtime, so only the offline DWARF
+ * information is useful to anyone. Note we should change this if we
+ * ever decide to enable DWARF unwinding at runtime.
+ */
+#define CFI_SECTIONS	.cfi_sections .debug_frame
+#else
+ /*
+  * For the vDSO, emit both runtime unwind information and debug
+  * symbols for the .dbg file.
+  */
+#define CFI_SECTIONS
+#endif
+
 /*
  * LEAF - declare leaf routine
  */
 #define LEAF(symbol)					\
+		CFI_SECTIONS;				\
 		.globl	symbol;				\
 		.align	2;				\
 		.type	symbol, @function;		\
@@ -36,6 +53,7 @@
  * NESTED - declare nested routine entry point
  */
 #define NESTED(symbol, framesize, rpc)			\
+		CFI_SECTIONS;				\
 		.globl	symbol;				\
 		.align	2;				\
 		.type	symbol, @function;		\
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/cpu-features.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/cpu-features.h
@@ -288,10 +288,12 @@
 # define cpu_has_mips32r6	__isa_ge_or_flag(6, MIPS_CPU_ISA_M32R6)
 #endif
 #ifndef cpu_has_mips64r1
-# define cpu_has_mips64r1	__isa_range_or_flag(1, 6, MIPS_CPU_ISA_M64R1)
+# define cpu_has_mips64r1	(cpu_has_64bits && \
+				 __isa_range_or_flag(1, 6, MIPS_CPU_ISA_M64R1))
 #endif
 #ifndef cpu_has_mips64r2
-# define cpu_has_mips64r2	__isa_range_or_flag(2, 6, MIPS_CPU_ISA_M64R2)
+# define cpu_has_mips64r2	(cpu_has_64bits && \
+				 __isa_range_or_flag(2, 6, MIPS_CPU_ISA_M64R2))
 #endif
 #ifndef cpu_has_mips64r6
 # define cpu_has_mips64r6	__isa_ge_and_flag(6, MIPS_CPU_ISA_M64R6)
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/cpu-type.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/cpu-type.h
@@ -47,6 +47,7 @@
 	case CPU_34K:
 	case CPU_1004K:
 	case CPU_74K:
+	case CPU_1074K:
 	case CPU_M14KC:
 	case CPU_M14KEC:
 	case CPU_INTERAPTIV:
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/kvm_host.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/kvm_host.h
@@ -274,8 +274,12 @@
 #define MIPS3_PG_SHIFT		6
 #define MIPS3_PG_FRAME		0x3fffffc0
 
+#if defined(CONFIG_64BIT)
+#define VPN2_MASK		GENMASK(cpu_vmbits - 1, 13)
+#else
 #define VPN2_MASK		0xffffe000
-#define KVM_ENTRYHI_ASID	MIPS_ENTRYHI_ASID
+#endif
+#define KVM_ENTRYHI_ASID	cpu_asid_mask(&boot_cpu_data)
 #define TLB_IS_GLOBAL(x)	((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G)
 #define TLB_VPN2(x)		((x).tlb_hi & VPN2_MASK)
 #define TLB_ASID(x)		((x).tlb_hi & KVM_ENTRYHI_ASID)
@@ -935,7 +939,7 @@
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
-			unsigned long start, unsigned long end);
+			unsigned long start, unsigned long end, unsigned flags);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/mipsregs.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/mipsregs.h
@@ -750,7 +750,7 @@
 
 /* MAAR bit definitions */
 #define MIPS_MAAR_VH		(_U64CAST_(1) << 63)
-#define MIPS_MAAR_ADDR		((BIT_ULL(BITS_PER_LONG - 12) - 1) << 12)
+#define MIPS_MAAR_ADDR		GENMASK_ULL(55, 12)
 #define MIPS_MAAR_ADDR_SHIFT	12
 #define MIPS_MAAR_S		(_ULCAST_(1) << 1)
 #define MIPS_MAAR_VL		(_ULCAST_(1) << 0)
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/pgtable-32.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/pgtable-32.h
@@ -155,6 +155,7 @@
 
 #if defined(CONFIG_XPA)
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 40
 #define pte_pfn(x)		(((unsigned long)((x).pte_high >> _PFN_SHIFT)) | (unsigned long)((x).pte_low << _PAGE_PRESENT_SHIFT))
 static inline pte_t
 pfn_pte(unsigned long pfn, pgprot_t prot)
@@ -170,6 +171,7 @@
 
 #elif defined(CONFIG_PHYS_ADDR_T_64BIT) && defined(CONFIG_CPU_MIPS32)
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 36
 #define pte_pfn(x)		((unsigned long)((x).pte_high >> 6))
 
 static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot)
@@ -184,6 +186,7 @@
 
 #else
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #ifdef CONFIG_CPU_VR41XX
 #define pte_pfn(x)		((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
 #define pfn_pte(pfn, prot)	__pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/pgtable-64.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/pgtable-64.h
@@ -18,10 +18,12 @@
 #include <asm/fixmap.h>
 
 #define __ARCH_USE_5LEVEL_HACK
-#if defined(CONFIG_PAGE_SIZE_64KB) && !defined(CONFIG_MIPS_VA_BITS_48)
+#if CONFIG_PGTABLE_LEVELS == 2
 #include <asm-generic/pgtable-nopmd.h>
-#elif !(defined(CONFIG_PAGE_SIZE_4KB) && defined(CONFIG_MIPS_VA_BITS_48))
+#elif CONFIG_PGTABLE_LEVELS == 3
 #include <asm-generic/pgtable-nopud.h>
+#else
+#include <asm-generic/5level-fixup.h>
 #endif
 
 /*
@@ -216,6 +218,9 @@
 	return pgd_val(pgd);
 }
 
+#define pgd_phys(pgd)		virt_to_phys((void *)pgd_val(pgd))
+#define pgd_page(pgd)		(pfn_to_page(pgd_phys(pgd) >> PAGE_SHIFT))
+
 static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
 {
 	return (pud_t *)pgd_page_vaddr(*pgd) + pud_index(address);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/string.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/string.h
@@ -10,127 +10,6 @@
 #ifndef _ASM_STRING_H
 #define _ASM_STRING_H
 
-
-/*
- * Most of the inline functions are rather naive implementations so I just
- * didn't bother updating them for 64-bit ...
- */
-#ifdef CONFIG_32BIT
-
-#ifndef IN_STRING_C
-
-#define __HAVE_ARCH_STRCPY
-static __inline__ char *strcpy(char *__dest, __const__ char *__src)
-{
-  char *__xdest = __dest;
-
-  __asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n"
-	"1:\tlbu\t$1,(%1)\n\t"
-	"addiu\t%1,1\n\t"
-	"sb\t$1,(%0)\n\t"
-	"bnez\t$1,1b\n\t"
-	"addiu\t%0,1\n\t"
-	".set\tat\n\t"
-	".set\treorder"
-	: "=r" (__dest), "=r" (__src)
-	: "0" (__dest), "1" (__src)
-	: "memory");
-
-  return __xdest;
-}
-
-#define __HAVE_ARCH_STRNCPY
-static __inline__ char *strncpy(char *__dest, __const__ char *__src, size_t __n)
-{
-  char *__xdest = __dest;
-
-  if (__n == 0)
-    return __xdest;
-
-  __asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n"
-	"1:\tlbu\t$1,(%1)\n\t"
-	"subu\t%2,1\n\t"
-	"sb\t$1,(%0)\n\t"
-	"beqz\t$1,2f\n\t"
-	"addiu\t%0,1\n\t"
-	"bnez\t%2,1b\n\t"
-	"addiu\t%1,1\n"
-	"2:\n\t"
-	".set\tat\n\t"
-	".set\treorder"
-	: "=r" (__dest), "=r" (__src), "=r" (__n)
-	: "0" (__dest), "1" (__src), "2" (__n)
-	: "memory");
-
-  return __xdest;
-}
-
-#define __HAVE_ARCH_STRCMP
-static __inline__ int strcmp(__const__ char *__cs, __const__ char *__ct)
-{
-  int __res;
-
-  __asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n\t"
-	"lbu\t%2,(%0)\n"
-	"1:\tlbu\t$1,(%1)\n\t"
-	"addiu\t%0,1\n\t"
-	"bne\t$1,%2,2f\n\t"
-	"addiu\t%1,1\n\t"
-	"bnez\t%2,1b\n\t"
-	"lbu\t%2,(%0)\n\t"
-#if defined(CONFIG_CPU_R3000)
-	"nop\n\t"
-#endif
-	"move\t%2,$1\n"
-	"2:\tsubu\t%2,$1\n"
-	"3:\t.set\tat\n\t"
-	".set\treorder"
-	: "=r" (__cs), "=r" (__ct), "=r" (__res)
-	: "0" (__cs), "1" (__ct));
-
-  return __res;
-}
-
-#endif /* !defined(IN_STRING_C) */
-
-#define __HAVE_ARCH_STRNCMP
-static __inline__ int
-strncmp(__const__ char *__cs, __const__ char *__ct, size_t __count)
-{
-	int __res;
-
-	__asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n"
-	"1:\tlbu\t%3,(%0)\n\t"
-	"beqz\t%2,2f\n\t"
-	"lbu\t$1,(%1)\n\t"
-	"subu\t%2,1\n\t"
-	"bne\t$1,%3,3f\n\t"
-	"addiu\t%0,1\n\t"
-	"bnez\t%3,1b\n\t"
-	"addiu\t%1,1\n"
-	"2:\n\t"
-#if defined(CONFIG_CPU_R3000)
-	"nop\n\t"
-#endif
-	"move\t%3,$1\n"
-	"3:\tsubu\t%3,$1\n\t"
-	".set\tat\n\t"
-	".set\treorder"
-	: "=r" (__cs), "=r" (__ct), "=r" (__count), "=r" (__res)
-	: "0" (__cs), "1" (__ct), "2" (__count));
-
-	return __res;
-}
-#endif /* CONFIG_32BIT */
-
 #define __HAVE_ARCH_MEMSET
 extern void *memset(void *__s, int __c, size_t __count);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/thread_info.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/thread_info.h
@@ -49,8 +49,26 @@
 	.addr_limit	= KERNEL_DS,		\
 }
 
-/* How to get the thread information struct from C.  */
+/*
+ * A pointer to the struct thread_info for the currently executing thread is
+ * held in register $28/$gp.
+ *
+ * We declare __current_thread_info as a global register variable rather than a
+ * local register variable within current_thread_info() because clang doesn't
+ * support explicit local register variables.
+ *
+ * When building the VDSO we take care not to declare the global register
+ * variable because this causes GCC to not preserve the value of $28/$gp in
+ * functions that change its value (which is common in the PIC VDSO when
+ * accessing the GOT). Since the VDSO shouldn't be accessing
+ * __current_thread_info anyway we declare it extern in order to cause a link
+ * failure if it's referenced.
+ */
+#ifdef __VDSO__
+extern struct thread_info *__current_thread_info;
+#else
 register struct thread_info *__current_thread_info __asm__("$28");
+#endif
 
 static inline struct thread_info *current_thread_info(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/include/asm/vdso/gettimeofday.h
+++ linux-gkeop-5.4-5.4.0/arch/mips/include/asm/vdso/gettimeofday.h
@@ -26,8 +26,6 @@
 
 #define __VDSO_USE_SYSCALL		ULLONG_MAX
 
-#ifdef CONFIG_MIPS_CLOCK_VSYSCALL
-
 static __always_inline long gettimeofday_fallback(
 				struct __kernel_old_timeval *_tv,
 				struct timezone *_tz)
@@ -48,17 +46,6 @@
 	return error ? -ret : ret;
 }
 
-#else
-
-static __always_inline long gettimeofday_fallback(
-				struct __kernel_old_timeval *_tv,
-				struct timezone *_tz)
-{
-	return -1;
-}
-
-#endif
-
 static __always_inline long clock_gettime_fallback(
 					clockid_t _clkid,
 					struct __kernel_timespec *_ts)
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/cacheinfo.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/cacheinfo.c
@@ -50,6 +50,25 @@
 	return 0;
 }
 
+static void fill_cpumask_siblings(int cpu, cpumask_t *cpu_map)
+{
+	int cpu1;
+
+	for_each_possible_cpu(cpu1)
+		if (cpus_are_siblings(cpu, cpu1))
+			cpumask_set_cpu(cpu1, cpu_map);
+}
+
+static void fill_cpumask_cluster(int cpu, cpumask_t *cpu_map)
+{
+	int cpu1;
+	int cluster = cpu_cluster(&cpu_data[cpu]);
+
+	for_each_possible_cpu(cpu1)
+		if (cpu_cluster(&cpu_data[cpu1]) == cluster)
+			cpumask_set_cpu(cpu1, cpu_map);
+}
+
 static int __populate_cache_leaves(unsigned int cpu)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
@@ -57,14 +76,20 @@
 	struct cacheinfo *this_leaf = this_cpu_ci->info_list;
 
 	if (c->icache.waysize) {
+		/* L1 caches are per core */
+		fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map);
 		populate_cache(dcache, this_leaf, 1, CACHE_TYPE_DATA);
+		fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map);
 		populate_cache(icache, this_leaf, 1, CACHE_TYPE_INST);
 	} else {
 		populate_cache(dcache, this_leaf, 1, CACHE_TYPE_UNIFIED);
 	}
 
-	if (c->scache.waysize)
+	if (c->scache.waysize) {
+		/* L2 cache is per cluster */
+		fill_cpumask_cluster(cpu, &this_leaf->shared_cpu_map);
 		populate_cache(scache, this_leaf, 2, CACHE_TYPE_UNIFIED);
+	}
 
 	if (c->tcache.waysize)
 		populate_cache(tcache, this_leaf, 3, CACHE_TYPE_UNIFIED);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/genex.S
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/genex.S
@@ -474,20 +474,20 @@
 	.endm
 
 	.macro	__build_clear_fpe
+	CLI
+	TRACE_IRQS_OFF
 	.set	push
 	/* gas fails to assemble cfc1 for some archs (octeon).*/ \
 	.set	mips1
 	SET_HARDFLOAT
 	cfc1	a1, fcr31
 	.set	pop
-	CLI
-	TRACE_IRQS_OFF
 	.endm
 
 	.macro	__build_clear_msa_fpe
-	_cfcmsa	a1, MSA_CSR
 	CLI
 	TRACE_IRQS_OFF
+	_cfcmsa	a1, MSA_CSR
 	.endm
 
 	.macro	__build_clear_ade
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/mips-cm.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/mips-cm.c
@@ -119,9 +119,9 @@
 	"COH_RD_ERR", "MMIO_WR_ERR", "MMIO_RD_ERR", "0x07",
 	"0x08", "0x09", "0x0a", "0x0b",
 	"0x0c", "0x0d", "0x0e", "0x0f",
-	"0x10", "0x11", "0x12", "0x13",
-	"0x14", "0x15", "0x16", "INTVN_WR_ERR",
-	"INTVN_RD_ERR", "0x19", "0x1a", "0x1b",
+	"0x10", "INTVN_WR_ERR", "INTVN_RD_ERR", "0x13",
+	"0x14", "0x15", "0x16", "0x17",
+	"0x18", "0x19", "0x1a", "0x1b",
 	"0x1c", "0x1d", "0x1e", "0x1f"
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/relocate.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/relocate.c
@@ -187,8 +187,14 @@
 static inline __init unsigned long rotate_xor(unsigned long hash,
 					      const void *area, size_t size)
 {
-	size_t i;
-	unsigned long *ptr = (unsigned long *)area;
+	const typeof(hash) *ptr = PTR_ALIGN(area, sizeof(hash));
+	size_t diff, i;
+
+	diff = (void *)ptr - area;
+	if (unlikely(size < diff + sizeof(hash)))
+		return hash;
+
+	size = ALIGN_DOWN(size - diff, sizeof(hash));
 
 	for (i = 0; i < size / sizeof(hash); i++) {
 		/* Rotate by odd number of bits and XOR. */
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/setup.c
@@ -494,7 +494,7 @@
 	if (ret != 0 || crash_size <= 0)
 		return;
 
-	if (!memblock_find_in_range(crash_base, crash_base + crash_size, crash_size, 0)) {
+	if (!memblock_find_in_range(crash_base, crash_base + crash_size, crash_size, 1)) {
 		pr_warn("Invalid memory region reserved for crash kernel\n");
 		return;
 	}
@@ -529,8 +529,8 @@
 
 static void __init check_kernel_sections_mem(void)
 {
-	phys_addr_t start = PFN_PHYS(PFN_DOWN(__pa_symbol(&_text)));
-	phys_addr_t size = PFN_PHYS(PFN_UP(__pa_symbol(&_end))) - start;
+	phys_addr_t start = __pa_symbol(&_text);
+	phys_addr_t size = __pa_symbol(&_end) - start;
 
 	if (!memblock_is_region_memory(start, size)) {
 		pr_info("Kernel sections are not in the memory maps\n");
@@ -653,7 +653,17 @@
 				 crashk_res.end - crashk_res.start + 1);
 #endif
 	device_tree_init();
+
+	/*
+	 * In order to reduce the possibility of kernel panic when failed to
+	 * get IO TLB memory under CONFIG_SWIOTLB, it is better to allocate
+	 * low memory as small as possible before plat_swiotlb_setup(), so
+	 * make sparse_init() using top-down allocation.
+	 */
+	memblock_set_bottom_up(false);
 	sparse_init();
+	memblock_set_bottom_up(true);
+
 	plat_swiotlb_setup();
 
 	dma_contiguous_reserve(PFN_PHYS(max_low_pfn));
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/smp-bmips.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/smp-bmips.c
@@ -241,6 +241,8 @@
  */
 static void bmips_init_secondary(void)
 {
+	bmips_cpu_setup();
+
 	switch (current_cpu_type()) {
 	case CPU_BMIPS4350:
 	case CPU_BMIPS4380:
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/syscalls/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/syscalls/Makefile
@@ -18,7 +18,7 @@
 		   '$(syshdr_pfx_$(basetarget))'		\
 		   '$(syshdr_offset_$(basetarget))'
 
-quiet_cmd_sysnr = SYSNR  $@
+quiet_cmd_sysnr = SYSNR   $@
       cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'		\
 		  '$(sysnr_abis_$(basetarget))'			\
 		  '$(sysnr_pfx_$(basetarget))'			\
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/time.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/time.c
@@ -18,12 +18,82 @@
 #include <linux/smp.h>
 #include <linux/spinlock.h>
 #include <linux/export.h>
+#include <linux/cpufreq.h>
+#include <linux/delay.h>
 
 #include <asm/cpu-features.h>
 #include <asm/cpu-type.h>
 #include <asm/div64.h>
 #include <asm/time.h>
 
+#ifdef CONFIG_CPU_FREQ
+
+static DEFINE_PER_CPU(unsigned long, pcp_lpj_ref);
+static DEFINE_PER_CPU(unsigned long, pcp_lpj_ref_freq);
+static unsigned long glb_lpj_ref;
+static unsigned long glb_lpj_ref_freq;
+
+static int cpufreq_callback(struct notifier_block *nb,
+			    unsigned long val, void *data)
+{
+	struct cpufreq_freqs *freq = data;
+	struct cpumask *cpus = freq->policy->cpus;
+	unsigned long lpj;
+	int cpu;
+
+	/*
+	 * Skip lpj numbers adjustment if the CPU-freq transition is safe for
+	 * the loops delay. (Is this possible?)
+	 */
+	if (freq->flags & CPUFREQ_CONST_LOOPS)
+		return NOTIFY_OK;
+
+	/* Save the initial values of the lpjes for future scaling. */
+	if (!glb_lpj_ref) {
+		glb_lpj_ref = boot_cpu_data.udelay_val;
+		glb_lpj_ref_freq = freq->old;
+
+		for_each_online_cpu(cpu) {
+			per_cpu(pcp_lpj_ref, cpu) =
+				cpu_data[cpu].udelay_val;
+			per_cpu(pcp_lpj_ref_freq, cpu) = freq->old;
+		}
+	}
+
+	/*
+	 * Adjust global lpj variable and per-CPU udelay_val number in
+	 * accordance with the new CPU frequency.
+	 */
+	if ((val == CPUFREQ_PRECHANGE  && freq->old < freq->new) ||
+	    (val == CPUFREQ_POSTCHANGE && freq->old > freq->new)) {
+		loops_per_jiffy = cpufreq_scale(glb_lpj_ref,
+						glb_lpj_ref_freq,
+						freq->new);
+
+		for_each_cpu(cpu, cpus) {
+			lpj = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
+					    per_cpu(pcp_lpj_ref_freq, cpu),
+					    freq->new);
+			cpu_data[cpu].udelay_val = (unsigned int)lpj;
+		}
+	}
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block cpufreq_notifier = {
+	.notifier_call  = cpufreq_callback,
+};
+
+static int __init register_cpufreq_notifier(void)
+{
+	return cpufreq_register_notifier(&cpufreq_notifier,
+					 CPUFREQ_TRANSITION_NOTIFIER);
+}
+core_initcall(register_cpufreq_notifier);
+
+#endif /* CONFIG_CPU_FREQ */
+
 /*
  * forward reference
  */
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/topology.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/topology.c
@@ -20,7 +20,7 @@
 	for_each_present_cpu(i) {
 		struct cpu *c = &per_cpu(cpu_devices, i);
 
-		c->hotpluggable = 1;
+		c->hotpluggable = !!i;
 		ret = register_cpu(c, i);
 		if (ret)
 			printk(KERN_WARNING "topology_init: register_cpu %d "
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/traps.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/traps.c
@@ -1240,6 +1240,18 @@
 		err = own_fpu_inatomic(1);
 		if (msa && !err) {
 			enable_msa();
+			/*
+			 * with MSA enabled, userspace can see MSACSR
+			 * and MSA regs, but the values in them are from
+			 * other task before current task, restore them
+			 * from saved fp/msa context
+			 */
+			write_msa_csr(current->thread.fpu.msacsr);
+			/*
+			 * own_fpu_inatomic(1) just restore low 64bit,
+			 * fix the high 64bit
+			 */
+			init_msa_upper();
 			set_thread_flag(TIF_USEDMSA);
 			set_thread_flag(TIF_MSA_CTX_LIVE);
 		}
@@ -2126,6 +2138,7 @@
 
 	change_c0_status(ST0_CU|ST0_MX|ST0_RE|ST0_FR|ST0_BEV|ST0_TS|ST0_KX|ST0_SX|ST0_UX,
 			 status_set);
+	back_to_back_c0_hazard();
 }
 
 unsigned int hwrena;
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/vmlinux.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/vmlinux.lds.S
@@ -50,7 +50,7 @@
 	/* . = 0xa800000000300000; */
 	. = 0xffffffff80300000;
 #endif
-	. = VMLINUX_LOAD_ADDRESS;
+	. = LINKER_LOAD_ADDRESS;
 	/* read-only */
 	_text = .;	/* Text and read-only data */
 	.text : {
@@ -93,6 +93,7 @@
 
 		INIT_TASK_DATA(THREAD_SIZE)
 		NOSAVE_DATA
+		PAGE_ALIGNED_DATA(PAGE_SIZE)
 		CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
 		READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
 		DATA_DATA
@@ -225,6 +226,5 @@
 		*(.options)
 		*(.pdr)
 		*(.reginfo)
-		*(.eh_frame)
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kernel/vpe.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kernel/vpe.c
@@ -134,7 +134,7 @@
 {
 	list_del(&v->list);
 	if (v->load_addr)
-		release_progmem(v);
+		release_progmem(v->load_addr);
 	kfree(v);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kvm/mips.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kvm/mips.c
@@ -131,6 +131,8 @@
 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 {
 	switch (type) {
+	case KVM_VM_MIPS_AUTO:
+		break;
 #ifdef CONFIG_KVM_MIPS_VZ
 	case KVM_VM_MIPS_VZ:
 #else
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/kvm/mmu.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/kvm/mmu.c
@@ -512,7 +512,8 @@
 	return 1;
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, NULL);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/lantiq/irq.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/lantiq/irq.c
@@ -302,7 +302,7 @@
 	generic_handle_irq(irq_linear_revmap(ltq_domain, hwirq));
 
 	/* if this is a EBU irq, we need to ack it or get a deadlock */
-	if ((irq == LTQ_ICU_EBU_IRQ) && (module == 0) && LTQ_EBU_PCC_ISTAT)
+	if (irq == LTQ_ICU_EBU_IRQ && !module && LTQ_EBU_PCC_ISTAT != 0)
 		ltq_ebu_w32(ltq_ebu_r32(LTQ_EBU_PCC_ISTAT) | 0x10,
 			LTQ_EBU_PCC_ISTAT);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/lantiq/xway/sysctrl.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/lantiq/xway/sysctrl.c
@@ -514,8 +514,8 @@
 		clkdev_add_pmu("1e10b308.eth", NULL, 0, 0, PMU_SWITCH |
 			       PMU_PPE_DP | PMU_PPE_TC);
 		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
-		clkdev_add_pmu("1e108000.gswip", "gphy0", 0, 0, PMU_GPHY);
-		clkdev_add_pmu("1e108000.gswip", "gphy1", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy0", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy1", 0, 0, PMU_GPHY);
 		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
 		clkdev_add_pmu("1e116000.mei", "afe", 1, 2, PMU_ANALOG_DSL_AFE);
 		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
@@ -538,8 +538,8 @@
 				PMU_SWITCH | PMU_PPE_DPLUS | PMU_PPE_DPLUM |
 				PMU_PPE_EMA | PMU_PPE_TC | PMU_PPE_SLL01 |
 				PMU_PPE_QSB | PMU_PPE_TOP);
-		clkdev_add_pmu("1e108000.gswip", "gphy0", 0, 0, PMU_GPHY);
-		clkdev_add_pmu("1e108000.gswip", "gphy1", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy0", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy1", 0, 0, PMU_GPHY);
 		clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO);
 		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
 		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/lib/uncached.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/lib/uncached.c
@@ -37,10 +37,12 @@
  */
 unsigned long run_uncached(void *func)
 {
-	register long sp __asm__("$sp");
 	register long ret __asm__("$2");
 	long lfunc = (long)func, ufunc;
 	long usp;
+	long sp;
+
+	__asm__("move %0, $sp" : "=r" (sp));
 
 	if (sp >= (long)CKSEG0 && sp < (long)CKSEG2)
 		usp = CKSEG1ADDR(sp);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/loongson64/loongson-3/platform.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/loongson64/loongson-3/platform.c
@@ -27,6 +27,9 @@
 			continue;
 
 		pdev = kzalloc(sizeof(struct platform_device), GFP_KERNEL);
+		if (!pdev)
+			return -ENOMEM;
+
 		pdev->name = loongson_sysconf.sensors[i].name;
 		pdev->id = loongson_sysconf.sensors[i].id;
 		pdev->dev.platform_data = &loongson_sysconf.sensors[i];
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/mm/c-r4k.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/mm/c-r4k.c
@@ -1560,7 +1560,7 @@
 	return 1;
 }
 
-static void __init loongson2_sc_init(void)
+static void loongson2_sc_init(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 
@@ -1576,7 +1576,7 @@
 	c->options |= MIPS_CPU_INCLUSIVE_CACHES;
 }
 
-static void __init loongson3_sc_init(void)
+static void loongson3_sc_init(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	unsigned int config2, lsize;
@@ -1676,7 +1676,11 @@
 				printk("MIPS secondary cache %ldkB, %s, linesize %d bytes.\n",
 				       scache_size >> 10,
 				       way_string[c->scache.ways], c->scache.linesz);
+
+				if (current_cpu_type() == CPU_BMIPS5000)
+					c->options |= MIPS_CPU_INCLUSIVE_CACHES;
 			}
+
 #else
 			if (!(c->scache.flags & MIPS_CACHE_NOT_PRESENT))
 				panic("Dunno how to handle MIPS32 / MIPS64 second level cache");
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/mm/sc-mips.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/mm/sc-mips.c
@@ -147,7 +147,7 @@
 	return 1;
 }
 
-static int __init mips_sc_probe_cm3(void)
+static int mips_sc_probe_cm3(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	unsigned long cfg = read_gcr_l2_config();
@@ -181,7 +181,7 @@
 	return 0;
 }
 
-static inline int __init mips_sc_probe(void)
+static inline int mips_sc_probe(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	unsigned int config1, config2;
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/mm/tlb-r4k.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/mm/tlb-r4k.c
@@ -437,6 +437,7 @@
 	}
 	return mask == PM_HUGE_MASK;
 }
+EXPORT_SYMBOL(has_transparent_hugepage);
 
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE  */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/mm/tlbex.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/mm/tlbex.c
@@ -1480,6 +1480,7 @@
 
 static void setup_pw(void)
 {
+	unsigned int pwctl;
 	unsigned long pgd_i, pgd_w;
 #ifndef __PAGETABLE_PMD_FOLDED
 	unsigned long pmd_i, pmd_w;
@@ -1506,6 +1507,7 @@
 
 	pte_i = ilog2(_PAGE_GLOBAL);
 	pte_w = 0;
+	pwctl = 1 << 30; /* Set PWDirExt */
 
 #ifndef __PAGETABLE_PMD_FOLDED
 	write_c0_pwfield(pgd_i << 24 | pmd_i << 12 | pt_i << 6 | pte_i);
@@ -1516,8 +1518,9 @@
 #endif
 
 #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
-	write_c0_pwctl(1 << 6 | psn);
+	pwctl |= (1 << 6 | psn);
 #endif
+	write_c0_pwctl(pwctl);
 	write_c0_kpgd((long)swapper_pg_dir);
 	kscratch_used_mask |= (1 << 7); /* KScratch6 is used for KPGD */
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/net/ebpf_jit.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/net/ebpf_jit.c
@@ -604,6 +604,7 @@
 static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
 {
 	int off, b_off;
+	int tcc_reg;
 
 	ctx->flags |= EBPF_SEEN_TC;
 	/*
@@ -616,14 +617,14 @@
 	b_off = b_imm(this_idx + 1, ctx);
 	emit_instr(ctx, bne, MIPS_R_AT, MIPS_R_ZERO, b_off);
 	/*
-	 * if (--TCC < 0)
+	 * if (TCC-- < 0)
 	 *     goto out;
 	 */
 	/* Delay slot */
-	emit_instr(ctx, daddiu, MIPS_R_T5,
-		   (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4, -1);
+	tcc_reg = (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4;
+	emit_instr(ctx, daddiu, MIPS_R_T5, tcc_reg, -1);
 	b_off = b_imm(this_idx + 1, ctx);
-	emit_instr(ctx, bltz, MIPS_R_T5, b_off);
+	emit_instr(ctx, bltz, tcc_reg, b_off);
 	/*
 	 * prog = array->ptrs[index];
 	 * if (prog == NULL)
@@ -1803,7 +1804,7 @@
 	unsigned int image_size;
 	u8 *image_ptr;
 
-	if (!prog->jit_requested || MIPS_ISA_REV < 2)
+	if (!prog->jit_requested)
 		return prog;
 
 	tmp = bpf_jit_blind_constants(prog);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/pci/pci-xtalk-bridge.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/pci/pci-xtalk-bridge.c
@@ -279,16 +279,15 @@
 	struct bridge_irq_chip_data *data = d->chip_data;
 	int bit = d->parent_data->hwirq;
 	int pin = d->hwirq;
-	nasid_t nasid;
 	int ret, cpu;
 
 	ret = irq_chip_set_affinity_parent(d, mask, force);
 	if (ret >= 0) {
 		cpu = cpumask_first_and(mask, cpu_online_mask);
-		nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
+		data->nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
 		bridge_write(data->bc, b_int_addr[pin].addr,
 			     (((data->bc->intr_addr >> 30) & 0x30000) |
-			      bit | (nasid << 8)));
+			      bit | (data->nasid << 8)));
 		bridge_read(data->bc, b_wid_tflush);
 	}
 	return ret;
@@ -445,9 +444,10 @@
 		return -ENOMEM;
 	domain = irq_domain_create_hierarchy(parent, 0, 8, fn,
 					     &bridge_domain_ops, NULL);
-	irq_domain_free_fwnode(fn);
-	if (!domain)
+	if (!domain) {
+		irq_domain_free_fwnode(fn);
 		return -ENOMEM;
+	}
 
 	pci_set_flags(PCI_PROBE_ONLY);
 
@@ -539,6 +539,7 @@
 	pci_free_resource_list(&host->windows);
 err_remove_domain:
 	irq_domain_remove(domain);
+	irq_domain_free_fwnode(fn);
 	return err;
 }
 
@@ -546,8 +547,10 @@
 {
 	struct pci_bus *bus = platform_get_drvdata(pdev);
 	struct bridge_controller *bc = BRIDGE_CONTROLLER(bus);
+	struct fwnode_handle *fn = bc->domain->fwnode;
 
 	irq_domain_remove(bc->domain);
+	irq_domain_free_fwnode(fn);
 	pci_lock_rescan_remove();
 	pci_stop_root_bus(bus);
 	pci_remove_root_bus(bus);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/ralink/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/mips/ralink/Kconfig
@@ -51,6 +51,7 @@
 		select MIPS_GIC
 		select COMMON_CLK
 		select CLKSRC_MIPS_GIC
+		select HAVE_PCI if PCI_MT7621
 endchoice
 
 choice
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/sgi-ip27/ip27-irq.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/sgi-ip27/ip27-irq.c
@@ -73,6 +73,9 @@
 	int cpu;
 
 	cpu = cpumask_first_and(mask, cpu_online_mask);
+	if (cpu >= nr_cpu_ids)
+		cpu = cpumask_any(cpu_online_mask);
+
 	nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
 	hd->cpu = cpu;
 	if (!cputoslice(cpu)) {
@@ -139,6 +142,7 @@
 	/* use CPU connected to nearest hub */
 	hub = hub_data(NASID_TO_COMPACT_NODEID(info->nasid));
 	setup_hub_mask(hd, &hub->h_cpus);
+	info->nasid = cpu_to_node(hd->cpu);
 
 	/* Make sure it's not already pending when we connect it. */
 	REMOTE_HUB_CLR_INTR(info->nasid, swlevel);
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/sni/a20r.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/sni/a20r.c
@@ -143,7 +143,10 @@
 	},
 };
 
-static u32 a20r_ack_hwint(void)
+/*
+ * Trigger chipset to update CPU's CAUSE IP field
+ */
+static u32 a20r_update_cause_ip(void)
 {
 	u32 status = read_c0_status();
 
@@ -205,12 +208,14 @@
 	int irq;
 
 	clear_c0_status(IE_IRQ0);
-	status = a20r_ack_hwint();
+	status = a20r_update_cause_ip();
 	cause = read_c0_cause();
 
 	irq = ffs(((cause & status) >> 8) & 0xf8);
 	if (likely(irq > 0))
 		do_IRQ(SNI_A20R_IRQ_BASE + irq - 1);
+
+	a20r_update_cause_ip();
 	set_c0_status(IE_IRQ0);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/tools/elf-entry.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/tools/elf-entry.c
@@ -51,11 +51,14 @@
 	nread = fread(&hdr, 1, sizeof(hdr), file);
 	if (nread != sizeof(hdr)) {
 		perror("Unable to read input file");
+		fclose(file);
 		return EXIT_FAILURE;
 	}
 
-	if (memcmp(hdr.ehdr32.e_ident, ELFMAG, SELFMAG))
+	if (memcmp(hdr.ehdr32.e_ident, ELFMAG, SELFMAG)) {
+		fclose(file);
 		die("Input is not an ELF\n");
+	}
 
 	switch (hdr.ehdr32.e_ident[EI_CLASS]) {
 	case ELFCLASS32:
@@ -67,6 +70,7 @@
 			entry = be32toh(hdr.ehdr32.e_entry);
 			break;
 		default:
+			fclose(file);
 			die("Invalid ELF encoding\n");
 		}
 
@@ -83,14 +87,17 @@
 			entry = be64toh(hdr.ehdr64.e_entry);
 			break;
 		default:
+			fclose(file);
 			die("Invalid ELF encoding\n");
 		}
 		break;
 
 	default:
+		fclose(file);
 		die("Invalid ELF class\n");
 	}
 
 	printf("0x%016" PRIx64 "\n", entry);
+	fclose(file);
 	return EXIT_SUCCESS;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/vdso/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/mips/vdso/Makefile
@@ -16,12 +16,9 @@
 	$(filter -march=%,$(KBUILD_CFLAGS)) \
 	$(filter -m%-float,$(KBUILD_CFLAGS)) \
 	$(filter -mno-loongson-%,$(KBUILD_CFLAGS)) \
+	$(CLANG_FLAGS) \
 	-D__VDSO__
 
-ifdef CONFIG_CC_IS_CLANG
-ccflags-vdso += $(filter --target=%,$(KBUILD_CFLAGS))
-endif
-
 #
 # The -fno-jump-tables flag only prevents the compiler from generating
 # jump tables but does not prevent the compiler from emitting absolute
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/vdso/genvdso.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/vdso/genvdso.c
@@ -122,6 +122,7 @@
 	if (fstat(fd, &stat) != 0) {
 		fprintf(stderr, "%s: Failed to stat '%s': %s\n", program_name,
 			path, strerror(errno));
+		close(fd);
 		return NULL;
 	}
 
@@ -130,6 +131,7 @@
 	if (addr == MAP_FAILED) {
 		fprintf(stderr, "%s: Failed to map '%s': %s\n", program_name,
 			path, strerror(errno));
+		close(fd);
 		return NULL;
 	}
 
@@ -139,6 +141,7 @@
 	if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG) != 0) {
 		fprintf(stderr, "%s: '%s' is not an ELF file\n", program_name,
 			path);
+		close(fd);
 		return NULL;
 	}
 
@@ -150,6 +153,7 @@
 	default:
 		fprintf(stderr, "%s: '%s' has invalid ELF class\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
@@ -161,6 +165,7 @@
 	default:
 		fprintf(stderr, "%s: '%s' has invalid ELF data order\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
@@ -168,15 +173,18 @@
 		fprintf(stderr,
 			"%s: '%s' has invalid ELF machine (expected EM_MIPS)\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	} else if (swap_uint16(ehdr->e_type) != ET_DYN) {
 		fprintf(stderr,
 			"%s: '%s' has invalid ELF type (expected ET_DYN)\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
 	*_size = stat.st_size;
+	close(fd);
 	return addr;
 }
 
@@ -280,10 +288,12 @@
 	/* Calculate and write symbol offsets to <output file> */
 	if (!get_symbols(dbg_vdso_path, dbg_vdso)) {
 		unlink(out_path);
+		fclose(out_file);
 		return EXIT_FAILURE;
 	}
 
 	fprintf(out_file, "};\n");
+	fclose(out_file);
 
 	return EXIT_SUCCESS;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/mips/vdso/vgettimeofday.c
+++ linux-gkeop-5.4-5.4.0/arch/mips/vdso/vgettimeofday.c
@@ -17,12 +17,22 @@
 	return __cvdso_clock_gettime32(clock, ts);
 }
 
+#ifdef CONFIG_MIPS_CLOCK_VSYSCALL
+
+/*
+ * This is behind the ifdef so that we don't provide the symbol when there's no
+ * possibility of there being a usable clocksource, because there's nothing we
+ * can do without it. When libc fails the symbol lookup it should fall back on
+ * the standard syscall path.
+ */
 int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
 			struct timezone *tz)
 {
 	return __cvdso_gettimeofday(tv, tz);
 }
 
+#endif /* CONFIG_MIPS_CLOCK_VSYSCALL */
+
 int __vdso_clock_getres(clockid_t clock_id,
 			struct old_timespec32 *res)
 {
@@ -43,12 +53,22 @@
 	return __cvdso_clock_gettime(clock, ts);
 }
 
+#ifdef CONFIG_MIPS_CLOCK_VSYSCALL
+
+/*
+ * This is behind the ifdef so that we don't provide the symbol when there's no
+ * possibility of there being a usable clocksource, because there's nothing we
+ * can do without it. When libc fails the symbol lookup it should fall back on
+ * the standard syscall path.
+ */
 int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
 			struct timezone *tz)
 {
 	return __cvdso_gettimeofday(tv, tz);
 }
 
+#endif /* CONFIG_MIPS_CLOCK_VSYSCALL */
+
 int __vdso_clock_getres(clockid_t clock_id,
 			struct __kernel_timespec *res)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/nds32/include/asm/cacheflush.h
+++ linux-gkeop-5.4-5.4.0/arch/nds32/include/asm/cacheflush.h
@@ -9,7 +9,11 @@
 #define PG_dcache_dirty PG_arch_1
 
 void flush_icache_range(unsigned long start, unsigned long end);
+#define flush_icache_range flush_icache_range
+
 void flush_icache_page(struct vm_area_struct *vma, struct page *page);
+#define flush_icache_page flush_icache_page
+
 #ifdef CONFIG_CPU_CACHE_ALIASING
 void flush_cache_mm(struct mm_struct *mm);
 void flush_cache_dup_mm(struct mm_struct *mm);
@@ -40,12 +44,11 @@
 #define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&(mapping)->i_pages)
 
 #else
-#include <asm-generic/cacheflush.h>
-#undef flush_icache_range
-#undef flush_icache_page
-#undef flush_icache_user_range
 void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
 	                     unsigned long addr, int len);
+#define flush_icache_user_range flush_icache_user_range
+
+#include <asm-generic/cacheflush.h>
 #endif
 
 #endif /* __NDS32_CACHEFLUSH_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/openrisc/include/asm/uaccess.h
+++ linux-gkeop-5.4-5.4.0/arch/openrisc/include/asm/uaccess.h
@@ -164,19 +164,19 @@
 
 #define __get_user_nocheck(x, ptr, size)			\
 ({								\
-	long __gu_err, __gu_val;				\
-	__get_user_size(__gu_val, (ptr), (size), __gu_err);	\
-	(x) = (__force __typeof__(*(ptr)))__gu_val;		\
+	long __gu_err;						\
+	__get_user_size((x), (ptr), (size), __gu_err);		\
 	__gu_err;						\
 })
 
 #define __get_user_check(x, ptr, size)					\
 ({									\
-	long __gu_err = -EFAULT, __gu_val = 0;				\
-	const __typeof__(*(ptr)) * __gu_addr = (ptr);			\
-	if (access_ok(__gu_addr, size))			\
-		__get_user_size(__gu_val, __gu_addr, (size), __gu_err);	\
-	(x) = (__force __typeof__(*(ptr)))__gu_val;			\
+	long __gu_err = -EFAULT;					\
+	const __typeof__(*(ptr)) *__gu_addr = (ptr);			\
+	if (access_ok(__gu_addr, size))					\
+		__get_user_size((x), __gu_addr, (size), __gu_err);	\
+	else								\
+		(x) = (__typeof__(*(ptr))) 0;				\
 	__gu_err;							\
 })
 
@@ -190,11 +190,13 @@
 	case 2: __get_user_asm(x, ptr, retval, "l.lhz"); break;		\
 	case 4: __get_user_asm(x, ptr, retval, "l.lwz"); break;		\
 	case 8: __get_user_asm2(x, ptr, retval); break;			\
-	default: (x) = __get_user_bad();				\
+	default: (x) = (__typeof__(*(ptr)))__get_user_bad();		\
 	}								\
 } while (0)
 
 #define __get_user_asm(x, addr, err, op)		\
+{							\
+	unsigned long __gu_tmp;				\
 	__asm__ __volatile__(				\
 		"1:	"op" %1,0(%2)\n"		\
 		"2:\n"					\
@@ -208,10 +210,14 @@
 		"	.align 2\n"			\
 		"	.long 1b,3b\n"			\
 		".previous"				\
-		: "=r"(err), "=r"(x)			\
-		: "r"(addr), "i"(-EFAULT), "0"(err))
+		: "=r"(err), "=r"(__gu_tmp)		\
+		: "r"(addr), "i"(-EFAULT), "0"(err));	\
+	(x) = (__typeof__(*(addr)))__gu_tmp;		\
+}
 
 #define __get_user_asm2(x, addr, err)			\
+{							\
+	unsigned long long __gu_tmp;			\
 	__asm__ __volatile__(				\
 		"1:	l.lwz %1,0(%2)\n"		\
 		"2:	l.lwz %H1,4(%2)\n"		\
@@ -228,8 +234,11 @@
 		"	.long 1b,4b\n"			\
 		"	.long 2b,4b\n"			\
 		".previous"				\
-		: "=r"(err), "=&r"(x)			\
-		: "r"(addr), "i"(-EFAULT), "0"(err))
+		: "=r"(err), "=&r"(__gu_tmp)		\
+		: "r"(addr), "i"(-EFAULT), "0"(err));	\
+	(x) = (__typeof__(*(addr)))(			\
+		(__typeof__((x)-(x)))__gu_tmp);		\
+}
 
 /* more complex routines */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/openrisc/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/openrisc/kernel/entry.S
@@ -1166,13 +1166,13 @@
 	l.movhi	r29,hi(sys_clone)
 	l.ori	r29,r29,lo(sys_clone)
 	l.j	_fork_save_extra_regs_and_call
-	 l.addi	r7,r1,0
+	 l.nop
 
 ENTRY(__sys_fork)
 	l.movhi	r29,hi(sys_fork)
 	l.ori	r29,r29,lo(sys_fork)
 	l.j	_fork_save_extra_regs_and_call
-	 l.addi	r3,r1,0
+	 l.nop
 
 ENTRY(sys_rt_sigreturn)
 	l.jal	_sys_rt_sigreturn
--- linux-gkeop-5.4-5.4.0.orig/arch/openrisc/kernel/stacktrace.c
+++ linux-gkeop-5.4-5.4.0/arch/openrisc/kernel/stacktrace.c
@@ -13,6 +13,7 @@
 #include <linux/export.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
+#include <linux/sched/task_stack.h>
 #include <linux/stacktrace.h>
 
 #include <asm/processor.h>
@@ -68,12 +69,25 @@
 {
 	unsigned long *sp = NULL;
 
+	if (!try_get_task_stack(tsk))
+		return;
+
 	if (tsk == current)
 		sp = (unsigned long *) &sp;
-	else
-		sp = (unsigned long *) KSTK_ESP(tsk);
+	else {
+		unsigned long ksp;
+
+		/* Locate stack from kernel context */
+		ksp = task_thread_info(tsk)->ksp;
+		ksp += STACK_FRAME_OVERHEAD;	/* redzone */
+		ksp += sizeof(struct pt_regs);
+
+		sp = (unsigned long *) ksp;
+	}
 
 	unwind_stack(trace, sp, save_stack_address_nosched);
+
+	put_task_stack(tsk);
 }
 EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/openrisc/mm/cache.c
+++ linux-gkeop-5.4-5.4.0/arch/openrisc/mm/cache.c
@@ -16,7 +16,7 @@
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
 
-static void cache_loop(struct page *page, const unsigned int reg)
+static __always_inline void cache_loop(struct page *page, const unsigned int reg)
 {
 	unsigned long paddr = page_to_pfn(page) << PAGE_SHIFT;
 	unsigned long line = paddr & ~(L1_CACHE_BYTES - 1);
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/parisc/Kconfig
@@ -62,6 +62,7 @@
 	select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
 	select HAVE_KPROBES_ON_FTRACE
 	select HAVE_DYNAMIC_FTRACE_WITH_REGS
+	select HAVE_COPY_THREAD_TLS
 
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/parisc/Makefile
@@ -156,7 +156,7 @@
 	$(OBJCOPY) $(boot)/bzImage $@
 else
 vmlinuz: vmlinux
-	@gzip -cf -9 $< > $@
+	@$(KGZIP) -cf -9 $< > $@
 endif
 
 install:
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/include/asm/atomic.h
+++ linux-gkeop-5.4-5.4.0/arch/parisc/include/asm/atomic.h
@@ -212,6 +212,8 @@
 	_atomic_spin_unlock_irqrestore(v, flags);
 }
 
+#define atomic64_set_release(v, i)	atomic64_set((v), (i))
+
 static __inline__ s64
 atomic64_read(const atomic64_t *v)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/include/asm/barrier.h
+++ linux-gkeop-5.4-5.4.0/arch/parisc/include/asm/barrier.h
@@ -26,6 +26,67 @@
 #define __smp_rmb()	mb()
 #define __smp_wmb()	mb()
 
+#define __smp_store_release(p, v)					\
+do {									\
+	typeof(p) __p = (p);						\
+        union { typeof(*p) __val; char __c[1]; } __u =			\
+                { .__val = (__force typeof(*p)) (v) };			\
+	compiletime_assert_atomic_type(*p);				\
+	switch (sizeof(*p)) {						\
+	case 1:								\
+		asm volatile("stb,ma %0,0(%1)"				\
+				: : "r"(*(__u8 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 2:								\
+		asm volatile("sth,ma %0,0(%1)"				\
+				: : "r"(*(__u16 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 4:								\
+		asm volatile("stw,ma %0,0(%1)"				\
+				: : "r"(*(__u32 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 8:								\
+		if (IS_ENABLED(CONFIG_64BIT))				\
+			asm volatile("std,ma %0,0(%1)"			\
+				: : "r"(*(__u64 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	}								\
+} while (0)
+
+#define __smp_load_acquire(p)						\
+({									\
+	union { typeof(*p) __val; char __c[1]; } __u;			\
+	typeof(p) __p = (p);						\
+	compiletime_assert_atomic_type(*p);				\
+	switch (sizeof(*p)) {						\
+	case 1:								\
+		asm volatile("ldb,ma 0(%1),%0"				\
+				: "=r"(*(__u8 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 2:								\
+		asm volatile("ldh,ma 0(%1),%0"				\
+				: "=r"(*(__u16 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 4:								\
+		asm volatile("ldw,ma 0(%1),%0"				\
+				: "=r"(*(__u32 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 8:								\
+		if (IS_ENABLED(CONFIG_64BIT))				\
+			asm volatile("ldd,ma 0(%1),%0"			\
+				: "=r"(*(__u64 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	}								\
+	__u.__val;							\
+})
 #include <asm-generic/barrier.h>
 
 #endif /* !__ASSEMBLY__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/include/asm/cmpxchg.h
+++ linux-gkeop-5.4-5.4.0/arch/parisc/include/asm/cmpxchg.h
@@ -44,8 +44,14 @@
 **		if (((unsigned long)p & 0xf) == 0)
 **			return __ldcw(p);
 */
-#define xchg(ptr, x) \
-	((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), sizeof(*(ptr))))
+#define xchg(ptr, x)							\
+({									\
+	__typeof__(*(ptr)) __ret;					\
+	__typeof__(*(ptr)) _x_ = (x);					\
+	__ret = (__typeof__(*(ptr)))					\
+		__xchg((unsigned long)_x_, (ptr), sizeof(*(ptr)));	\
+	__ret;								\
+})
 
 /* bug catcher for when unsupported size is used - won't link */
 extern void __cmpxchg_called_with_bad_pointer(void);
@@ -54,6 +60,7 @@
 extern unsigned long __cmpxchg_u32(volatile unsigned int *m, unsigned int old,
 				   unsigned int new_);
 extern u64 __cmpxchg_u64(volatile u64 *ptr, u64 old, u64 new_);
+extern u8 __cmpxchg_u8(volatile u8 *ptr, u8 old, u8 new_);
 
 /* don't worry...optimizer will get rid of most of this */
 static inline unsigned long
@@ -65,6 +72,7 @@
 #endif
 	case 4: return __cmpxchg_u32((unsigned int *)ptr,
 				     (unsigned int)old, (unsigned int)new_);
+	case 1: return __cmpxchg_u8((u8 *)ptr, (u8)old, (u8)new_);
 	}
 	__cmpxchg_called_with_bad_pointer();
 	return old;
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/include/asm/kexec.h
+++ linux-gkeop-5.4-5.4.0/arch/parisc/include/asm/kexec.h
@@ -2,8 +2,6 @@
 #ifndef _ASM_PARISC_KEXEC_H
 #define _ASM_PARISC_KEXEC_H
 
-#ifdef CONFIG_KEXEC
-
 /* Maximum physical address we can use pages from */
 #define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
 /* Maximum address we can reach in physical address mode */
@@ -32,6 +30,4 @@
 
 #endif /* __ASSEMBLY__ */
 
-#endif /* CONFIG_KEXEC */
-
 #endif /* _ASM_PARISC_KEXEC_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/include/asm/spinlock.h
+++ linux-gkeop-5.4-5.4.0/arch/parisc/include/asm/spinlock.h
@@ -37,12 +37,8 @@
 	volatile unsigned int *a;
 
 	a = __ldcw_align(x);
-#ifdef CONFIG_SMP
-	(void) __ldcw(a);
-#else
-	mb();
-#endif
-	*a = 1;
+	/* Release with ordered store. */
+	__asm__ __volatile__("stw,ma %0,0(%1)" : : "r"(1), "r"(a) : "memory");
 }
 
 static inline int arch_spin_trylock(arch_spinlock_t *x)
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/kernel/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/parisc/kernel/Makefile
@@ -37,5 +37,5 @@
 obj-$(CONFIG_JUMP_LABEL)		+= jump_label.o
 obj-$(CONFIG_KGDB)			+= kgdb.o
 obj-$(CONFIG_KPROBES)			+= kprobes.o
-obj-$(CONFIG_KEXEC)			+= kexec.o relocate_kernel.o
+obj-$(CONFIG_KEXEC_CORE)		+= kexec.o relocate_kernel.o
 obj-$(CONFIG_KEXEC_FILE)		+= kexec_file.o
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/kernel/drivers.c
+++ linux-gkeop-5.4-5.4.0/arch/parisc/kernel/drivers.c
@@ -810,7 +810,7 @@
 static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high,
                             struct device *parent);
 
-static void walk_lower_bus(struct parisc_device *dev)
+static void __init walk_lower_bus(struct parisc_device *dev)
 {
 	unsigned long io_io_low, io_io_high;
 
@@ -889,8 +889,8 @@
 	static int count;
 
 	print_pa_hwpath(dev, hw_path);
-	pr_info("%d. %s at 0x%px [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }",
-		++count, dev->name, (void*) dev->hpa.start, hw_path, dev->id.hw_type,
+	pr_info("%d. %s at %pap [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }",
+		++count, dev->name, &(dev->hpa.start), hw_path, dev->id.hw_type,
 		dev->id.hversion_rev, dev->id.hversion, dev->id.sversion);
 
 	if (dev->num_addrs) {
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/parisc/kernel/entry.S
@@ -454,7 +454,6 @@
 	nop
 	LDREG		0(\ptp),\pte
 	bb,<,n		\pte,_PAGE_PRESENT_BIT,3f
-	LDCW		0(\tmp),\tmp1
 	b		\fault
 	stw		\spc,0(\tmp)
 99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
@@ -464,23 +463,26 @@
 3:
 	.endm
 
-	/* Release pa_tlb_lock lock without reloading lock address. */
-	.macro		tlb_unlock0	spc,tmp,tmp1
+	/* Release pa_tlb_lock lock without reloading lock address.
+	   Note that the values in the register spc are limited to
+	   NR_SPACE_IDS (262144). Thus, the stw instruction always
+	   stores a nonzero value even when register spc is 64 bits.
+	   We use an ordered store to ensure all prior accesses are
+	   performed prior to releasing the lock. */
+	.macro		tlb_unlock0	spc,tmp
 #ifdef CONFIG_SMP
 98:	or,COND(=)	%r0,\spc,%r0
-	LDCW		0(\tmp),\tmp1
-	or,COND(=)	%r0,\spc,%r0
-	stw		\spc,0(\tmp)
+	stw,ma		\spc,0(\tmp)
 99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
 #endif
 	.endm
 
 	/* Release pa_tlb_lock lock. */
-	.macro		tlb_unlock1	spc,tmp,tmp1
+	.macro		tlb_unlock1	spc,tmp
 #ifdef CONFIG_SMP
 98:	load_pa_tlb_lock \tmp
 99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-	tlb_unlock0	\spc,\tmp,\tmp1
+	tlb_unlock0	\spc,\tmp
 #endif
 	.endm
 
@@ -1163,7 +1165,7 @@
 	
 	idtlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1189,7 +1191,7 @@
 
 	idtlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1223,7 +1225,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1256,7 +1258,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1285,7 +1287,7 @@
 
 	idtlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1313,7 +1315,7 @@
 	
 	idtlbt		pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1420,7 +1422,7 @@
 	
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1444,7 +1446,7 @@
 
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1478,7 +1480,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1502,7 +1504,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1532,7 +1534,7 @@
 
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1552,7 +1554,7 @@
 
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1582,7 +1584,7 @@
 		
 	idtlbt          pte,prot
 
-	tlb_unlock0	spc,t0,t1
+	tlb_unlock0	spc,t0
 	rfir
 	nop
 #else
@@ -1608,7 +1610,7 @@
 
 	mtsp            t1, %sr1     /* Restore sr1 */
 
-	tlb_unlock0	spc,t0,t1
+	tlb_unlock0	spc,t0
 	rfir
 	nop
 
@@ -1628,7 +1630,7 @@
 	
 	idtlbt		pte,prot
 
-	tlb_unlock0	spc,t0,t1
+	tlb_unlock0	spc,t0
 	rfir
 	nop
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/kernel/irq.c
+++ linux-gkeop-5.4-5.4.0/arch/parisc/kernel/irq.c
@@ -376,7 +376,11 @@
 /*
  * IRQ STACK - used for irq handler
  */
+#ifdef CONFIG_64BIT
+#define IRQ_STACK_SIZE      (4096 << 4) /* 64k irq stack size */
+#else
 #define IRQ_STACK_SIZE      (4096 << 3) /* 32k irq stack size */
+#endif
 
 union irq_stack_union {
 	unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)];
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/parisc/kernel/process.c
@@ -208,8 +208,8 @@
  * Copy architecture-specific thread state
  */
 int
-copy_thread(unsigned long clone_flags, unsigned long usp,
-	    unsigned long kthread_arg, struct task_struct *p)
+copy_thread_tls(unsigned long clone_flags, unsigned long usp,
+	    unsigned long kthread_arg, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *cregs = &(p->thread.regs);
 	void *stack = task_stack_page(p);
@@ -254,9 +254,9 @@
 		cregs->ksp = (unsigned long)stack + THREAD_SZ_ALGN + FRAME_SIZE;
 		cregs->kpc = (unsigned long) &child_return;
 
-		/* Setup thread TLS area from the 4th parameter in clone */
+		/* Setup thread TLS area */
 		if (clone_flags & CLONE_SETTLS)
-			cregs->cr27 = cregs->gr[23];
+			cregs->cr27 = tls;
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/kernel/syscall.S
+++ linux-gkeop-5.4-5.4.0/arch/parisc/kernel/syscall.S
@@ -640,11 +640,7 @@
 	sub,<>	%r28, %r25, %r0
 2:	stw	%r24, 0(%r26)
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 #if ENABLE_LWS_DEBUG
 	/* Clear thread register indicator */
 	stw	%r0, 4(%sr2,%r20)
@@ -658,11 +654,7 @@
 3:		
 	/* Error occurred on load or store */
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 #if ENABLE_LWS_DEBUG
 	stw	%r0, 4(%sr2,%r20)
 #endif
@@ -863,11 +855,7 @@
 
 cas2_end:
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 	/* Enable interrupts */
 	ssm	PSW_SM_I, %r0
 	/* Return to userspace, set no error */
@@ -877,11 +865,7 @@
 22:
 	/* Error occurred on load or store */
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 	ssm	PSW_SM_I, %r0
 	ldo	1(%r0),%r28
 	b	lws_exit
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/lib/bitops.c
+++ linux-gkeop-5.4-5.4.0/arch/parisc/lib/bitops.c
@@ -79,3 +79,15 @@
 	_atomic_spin_unlock_irqrestore(ptr, flags);
 	return (unsigned long)prev;
 }
+
+u8 __cmpxchg_u8(volatile u8 *ptr, u8 old, u8 new)
+{
+	unsigned long flags;
+	u8 prev;
+
+	_atomic_spin_lock_irqsave(ptr, flags);
+	if ((prev = *ptr) == old)
+		*ptr = new;
+	_atomic_spin_unlock_irqrestore(ptr, flags);
+	return prev;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/parisc/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/parisc/mm/init.c
@@ -588,7 +588,7 @@
 			> BITS_PER_LONG);
 
 	high_memory = __va((max_pfn << PAGE_SHIFT));
-	set_max_mapnr(page_to_pfn(virt_to_page(high_memory - 1)) + 1);
+	set_max_mapnr(max_low_pfn);
 	memblock_free_all();
 
 #ifdef CONFIG_PA11
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/Kconfig
@@ -133,7 +133,7 @@
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_HAS_MEMBARRIER_CALLBACKS
 	select ARCH_HAS_SCALED_CPUTIME		if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64
-	select ARCH_HAS_STRICT_KERNEL_RWX	if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
+	select ARCH_HAS_STRICT_KERNEL_RWX	if (PPC32 && !HIBERNATION)
 	select ARCH_HAS_TICK_BROADCAST		if GENERIC_CLOCKEVENTS_BROADCAST
 	select ARCH_HAS_UACCESS_FLUSHCACHE
 	select ARCH_HAS_UACCESS_MCSAFE		if PPC64
@@ -147,6 +147,7 @@
 	select ARCH_USE_BUILTIN_BSWAP
 	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
 	select ARCH_WANT_IPC_PARSE_VERSION
+	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 	select ARCH_WEAK_RELEASE_ACQUIRE
 	select BINFMT_ELF
 	select BUILDTIME_EXTABLE_SORT
@@ -171,7 +172,7 @@
 	select HAVE_ARCH_AUDITSYSCALL
 	select HAVE_ARCH_HUGE_VMAP		if PPC_BOOK3S_64 && PPC_RADIX_MMU
 	select HAVE_ARCH_JUMP_LABEL
-	select HAVE_ARCH_KASAN			if PPC32
+	select HAVE_ARCH_KASAN			if PPC32 && PPC_PAGE_SHIFT <= 14
 	select HAVE_ARCH_KGDB
 	select HAVE_ARCH_MMAP_RND_BITS
 	select HAVE_ARCH_MMAP_RND_COMPAT_BITS	if COMPAT
@@ -221,8 +222,7 @@
 	select HAVE_HARDLOCKUP_DETECTOR_PERF	if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
 	select HAVE_PERF_REGS
 	select HAVE_PERF_USER_STACK_DUMP
-	select HAVE_RCU_TABLE_FREE		if SMP
-	select HAVE_RCU_TABLE_NO_INVALIDATE	if HAVE_RCU_TABLE_FREE
+	select HAVE_RCU_TABLE_FREE
 	select HAVE_MMU_GATHER_PAGE_SIZE
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_RELIABLE_STACKTRACE		if PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN
@@ -237,6 +237,7 @@
 	select NEED_DMA_MAP_STATE		if PPC64 || NOT_COHERENT_CACHE
 	select NEED_SG_DMA_LENGTH
 	select OF
+	select OF_DMA_DEFAULT_COHERENT		if !NOT_COHERENT_CACHE
 	select OF_EARLY_FLATTREE
 	select OLD_SIGACTION			if PPC32
 	select OLD_SIGSUSPEND
@@ -722,7 +723,7 @@
 
 config PPC_256K_PAGES
 	bool "256k page size"
-	depends on 44x && !STDBINUTILS
+	depends on 44x && !STDBINUTILS && !PPC_47x
 	help
 	  Make the page size 256k.
 
@@ -747,6 +748,7 @@
 	range 13 15
 	default "15" if PPC_256K_PAGES
 	default "14" if PPC64
+	default "14" if KASAN
 	default "13"
 	help
 	  Used to define the stack size. The default is almost always what you
@@ -934,6 +936,28 @@
 
 	  If unsure, say y.
 
+config PPC_SECURE_BOOT
+	prompt "Enable secure boot support"
+	bool
+	depends on PPC_POWERNV
+	depends on IMA_ARCH_POLICY
+	help
+	  Systems with firmware secure boot enabled need to define security
+	  policies to extend secure boot to the OS. This config allows a user
+	  to enable OS secure boot on systems that have firmware support for
+	  it. If in doubt say N.
+
+config PPC_SECVAR_SYSFS
+	bool "Enable sysfs interface for POWER secure variables"
+	default y
+	depends on PPC_SECURE_BOOT
+	depends on SYSFS
+	help
+	  POWER secure variables are managed and controlled by firmware.
+	  These variables are exposed to userspace via sysfs to enable
+	  read/write operations on these variables. Say Y if you have
+	  secure boot enabled and want to expose variables to userspace.
+
 endmenu
 
 config ISA_DMA_API
@@ -1022,6 +1046,19 @@
 	  Include support for RapidIO controller on Freescale embedded
 	  processors (MPC8548, MPC8641, etc).
 
+config PPC_RTAS_FILTER
+	bool "Enable filtering of RTAS syscalls"
+	default y
+	depends on PPC_RTAS
+	help
+	  The RTAS syscall API has security issues that could be used to
+	  compromise system integrity. This option enforces restrictions on the
+	  RTAS calls and arguments passed by userspace programs to mitigate
+	  these issues.
+
+	  Say Y unless you know what you are doing and the filter is causing
+	  problems for you.
+
 endmenu
 
 config NONSTATIC_KERNEL
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/Kconfig.debug
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/Kconfig.debug
@@ -371,7 +371,7 @@
 
 config PPC_DEBUG_WX
 	bool "Warn on W+X mappings at boot"
-	depends on PPC_PTDUMP
+	depends on PPC_PTDUMP && STRICT_KERNEL_RWX
 	help
 	  Generate a warning if any W+X mappings are found at boot.
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/Makefile
@@ -91,11 +91,13 @@
 endif
 
 ifdef CONFIG_PPC64
+ifndef CONFIG_CC_IS_CLANG
 cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
 cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mcall-aixdesc)
 aflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
 aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mabi=elfv2
 endif
+endif
 
 ifndef CONFIG_CC_IS_CLANG
   cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mno-strict-align
@@ -141,6 +143,7 @@
 endif
 
 CFLAGS-$(CONFIG_PPC64)	:= $(call cc-option,-mtraceback=no)
+ifndef CONFIG_CC_IS_CLANG
 ifdef CONFIG_CPU_LITTLE_ENDIAN
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv2,$(call cc-option,-mcall-aixdesc))
 AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv2)
@@ -149,6 +152,7 @@
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcall-aixdesc)
 AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
 endif
+endif
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mno-pointers-to-nested-functions)
 
@@ -246,7 +250,6 @@
 
 cpu-as-$(CONFIG_4xx)		+= -Wa,-m405
 cpu-as-$(CONFIG_ALTIVEC)	+= $(call as-option,-Wa$(comma)-maltivec)
-cpu-as-$(CONFIG_E200)		+= -Wa,-me200
 cpu-as-$(CONFIG_E500)		+= -Wa,-me500
 
 # When using '-many -mpower4' gas will first try and find a matching power4
@@ -281,7 +284,7 @@
 all: zImage
 
 # With make 3.82 we cannot mix normal and wildcard targets
-BOOT_TARGETS1 := zImage zImage.initrd uImage
+BOOT_TARGETS1 := zImage zImage.initrd uImage vmlinux.strip
 BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% uImage.%
 
 PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/Makefile.postlink
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/Makefile.postlink
@@ -17,11 +17,11 @@
 quiet_cmd_relocs_check = CHKREL  $@
 ifdef CONFIG_PPC_BOOK3S_64
       cmd_relocs_check =						\
-	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@" ; \
+	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@" ; \
 	$(BASH) $(srctree)/arch/powerpc/tools/unrel_branch_check.sh "$(OBJDUMP)" "$@"
 else
       cmd_relocs_check =						\
-	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@"
+	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@"
 endif
 
 # `@true` prevents complaint when there is nothing to be done
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/4xx.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/4xx.c
@@ -228,7 +228,7 @@
 		dpath = 8; /* 64 bits */
 
 	/* get address pins (rows) */
- 	val = SDRAM0_READ(DDR0_42);
+	val = SDRAM0_READ(DDR0_42);
 
 	row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
 	if (row > max_row)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/Makefile
@@ -119,7 +119,7 @@
 		elf_util.c $(zlib-y) devtree.c stdlib.c \
 		oflib.c ofconsole.c cuboot.c
 
-src-wlib-$(CONFIG_PPC_MPC52XX) += mpc52xx-psc.c
+src-wlib-$(CONFIG_PPC_MPC52xx) += mpc52xx-psc.c
 src-wlib-$(CONFIG_PPC64_BOOT_WRAPPER) += opal-calls.S opal.c
 ifndef CONFIG_PPC64_BOOT_WRAPPER
 src-wlib-y += crtsavres.S
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
@@ -63,6 +63,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy0: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy6: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
@@ -63,6 +63,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy1: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy7: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy0: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy1: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe5000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy2: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe7000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy3: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe9000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy4: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xeb000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy5: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy14: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy15: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy8: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy9: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe5000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy10: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe7000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy11: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe9000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy12: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xeb000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy13: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/libfdt_env.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/libfdt_env.h
@@ -6,6 +6,8 @@
 #include <string.h>
 
 #define INT_MAX			((int)(~0U>>1))
+#define UINT32_MAX		((u32)~0U)
+#define INT32_MAX		((s32)(UINT32_MAX >> 1))
 
 #include "of.h"
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/boot/serial.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/boot/serial.c
@@ -128,7 +128,7 @@
 	         dt_is_compatible(devp, "fsl,cpm2-smc-uart"))
 		rc = cpm_console_init(devp, &serial_cd);
 #endif
-#ifdef CONFIG_PPC_MPC52XX
+#ifdef CONFIG_PPC_MPC52xx
 	else if (dt_is_compatible(devp, "fsl,mpc5200-psc-uart"))
 		rc = mpc5200_psc_console_init(devp, &serial_cd);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/85xx-hw.config
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/85xx-hw.config
@@ -2,7 +2,6 @@
 CONFIG_AT803X_PHY=y
 CONFIG_ATA=y
 CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_BLK_DEV_SR=y
 CONFIG_BROADCOM_PHY=y
 CONFIG_C293_PCIE=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/amigaone_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/amigaone_defconfig
@@ -47,7 +47,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SYM53C8XX_2=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/chrp32_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/chrp32_defconfig
@@ -45,7 +45,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SYM53C8XX_2=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/g5_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/g5_defconfig
@@ -62,7 +62,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SPI_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/maple_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/maple_defconfig
@@ -41,7 +41,6 @@
 # CONFIG_SCSI_PROC_FS is not set
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_IPR=y
 CONFIG_ATA=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/pasemi_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/pasemi_defconfig
@@ -60,7 +60,6 @@
 CONFIG_CHR_DEV_ST=y
 CONFIG_CHR_DEV_OSST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=y
 CONFIG_SCSI_CONSTANTS=y
@@ -110,7 +109,6 @@
 CONFIG_FB_NVIDIA_I2C=y
 CONFIG_FB_RADEON=y
 # CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_LOGO=y
 CONFIG_SOUND=y
 CONFIG_SND=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/pmac32_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/pmac32_defconfig
@@ -119,7 +119,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/powernv_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/powernv_defconfig
@@ -111,7 +111,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/ppc64_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/ppc64_defconfig
@@ -110,7 +110,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/ppc64e_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/ppc64e_defconfig
@@ -60,7 +60,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/ppc6xx_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/ppc6xx_defconfig
@@ -372,7 +372,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
@@ -778,7 +777,6 @@
 CONFIG_FB_SM501=m
 CONFIG_FB_IBM_GXT4500=y
 CONFIG_LCD_PLATFORM=m
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
 CONFIG_LOGO=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/pseries_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/pseries_defconfig
@@ -97,7 +97,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/configs/skiroot_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/configs/skiroot_defconfig
@@ -83,7 +83,6 @@
 # CONFIG_OCXL is not set
 CONFIG_BLK_DEV_SD=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/archrandom.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/archrandom.h
@@ -28,7 +28,7 @@
 	unsigned long val;
 	int rc;
 
-	rc = arch_get_random_long(&val);
+	rc = arch_get_random_seed_long(&val);
 	if (rc)
 		*v = val;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/asm-prototypes.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/asm-prototypes.h
@@ -152,9 +152,12 @@
 /* Patch sites */
 extern s32 patch__call_flush_count_cache;
 extern s32 patch__flush_count_cache_return;
+extern s32 patch__flush_link_stack_return;
+extern s32 patch__call_kvm_flush_link_stack;
 extern s32 patch__memset_nocache, patch__memcpy_nocache;
 
 extern long flush_count_cache;
+extern long kvm_flush_link_stack;
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 void kvmppc_save_tm_hv(struct kvm_vcpu *vcpu, u64 msr, bool preserve_nv);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/bitops.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/bitops.h
@@ -217,15 +217,34 @@
  */
 static __inline__ int fls(unsigned int x)
 {
-	return 32 - __builtin_clz(x);
+	int lz;
+
+	if (__builtin_constant_p(x))
+		return x ? 32 - __builtin_clz(x) : 0;
+	asm("cntlzw %0,%1" : "=r" (lz) : "r" (x));
+	return 32 - lz;
 }
 
 #include <asm-generic/bitops/builtin-__fls.h>
 
+/*
+ * 64-bit can do this using one cntlzd (count leading zeroes doubleword)
+ * instruction; for 32-bit we use the generic version, which does two
+ * 32-bit fls calls.
+ */
+#ifdef CONFIG_PPC64
 static __inline__ int fls64(__u64 x)
 {
-	return 64 - __builtin_clzll(x);
+	int lz;
+
+	if (__builtin_constant_p(x))
+		return x ? 64 - __builtin_clzll(x) : 0;
+	asm("cntlzd %0,%1" : "=r" (lz) : "r" (x));
+	return 64 - lz;
 }
+#else
+#include <asm-generic/bitops/fls64.h>
+#endif
 
 #ifdef CONFIG_PPC64
 unsigned int __arch_hweight8(unsigned int w);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/32/kup.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/32/kup.h
@@ -2,6 +2,7 @@
 #ifndef _ASM_POWERPC_BOOK3S_32_KUP_H
 #define _ASM_POWERPC_BOOK3S_32_KUP_H
 
+#include <asm/bug.h>
 #include <asm/book3s/32/mmu-hash.h>
 
 #ifdef __ASSEMBLY__
@@ -75,7 +76,7 @@
 
 .macro kuap_check	current, gpr
 #ifdef CONFIG_PPC_KUAP_DEBUG
-	lwz	\gpr2, KUAP(thread)
+	lwz	\gpr, THREAD + KUAP(\current)
 999:	twnei	\gpr, 0
 	EMIT_BUG_ENTRY 999b, __FILE__, __LINE__, (BUGFLAG_WARNING | BUGFLAG_ONCE)
 #endif
@@ -102,11 +103,13 @@
 	isync();	/* Context sync required after mtsrin() */
 }
 
-static inline void allow_user_access(void __user *to, const void __user *from, u32 size)
+static __always_inline void allow_user_access(void __user *to, const void __user *from,
+					      u32 size, unsigned long dir)
 {
 	u32 addr, end;
 
-	if (__builtin_constant_p(to) && to == NULL)
+	BUILD_BUG_ON(!__builtin_constant_p(dir));
+	if (!(dir & KUAP_WRITE))
 		return;
 
 	addr = (__force u32)to;
@@ -119,11 +122,16 @@
 	kuap_update_sr(mfsrin(addr) & ~SR_KS, addr, end);	/* Clear Ks */
 }
 
-static inline void prevent_user_access(void __user *to, const void __user *from, u32 size)
+static __always_inline void prevent_user_access(void __user *to, const void __user *from,
+						u32 size, unsigned long dir)
 {
 	u32 addr = (__force u32)to;
 	u32 end = min(addr + size, TASK_SIZE);
 
+	BUILD_BUG_ON(!__builtin_constant_p(dir));
+	if (!(dir & KUAP_WRITE))
+		return;
+
 	if (!addr || addr >= TASK_SIZE || !size)
 		return;
 
@@ -131,12 +139,17 @@
 	kuap_update_sr(mfsrin(addr) | SR_KS, addr, end);	/* set Ks */
 }
 
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write)
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
 {
+	unsigned long begin = regs->kuap & 0xf0000000;
+	unsigned long end = regs->kuap << 28;
+
 	if (!is_write)
 		return false;
 
-	return WARN(!regs->kuap, "Bug: write fault blocked by segment registers !");
+	return WARN(address < begin || address >= end,
+		    "Bug: write fault blocked by segment registers !");
 }
 
 #endif /* CONFIG_PPC_KUAP */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/32/pgalloc.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/32/pgalloc.h
@@ -49,7 +49,6 @@
 
 #define get_hugepd_cache_index(x)  (x)
 
-#ifdef CONFIG_SMP
 static inline void pgtable_free_tlb(struct mmu_gather *tlb,
 				    void *table, int shift)
 {
@@ -66,13 +65,6 @@
 
 	pgtable_free(table, shift);
 }
-#else
-static inline void pgtable_free_tlb(struct mmu_gather *tlb,
-				    void *table, int shift)
-{
-	pgtable_free(table, shift);
-}
-#endif
 
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table,
 				  unsigned long address)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/32/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/32/pgtable.h
@@ -37,8 +37,10 @@
  */
 #ifdef CONFIG_PTE_64BIT
 #define PTE_RPN_MASK	(~((1ULL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 36
 #else
 #define PTE_RPN_MASK	(~((1UL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #endif
 
 /*
@@ -555,9 +557,9 @@
 	if (pte_val(*ptep) & _PAGE_HASHPTE)
 		flush_hash_entry(mm, ptep, addr);
 	__asm__ __volatile__("\
-		stw%U0%X0 %2,%0\n\
+		stw%X0 %2,%0\n\
 		eieio\n\
-		stw%U0%X0 %L2,%1"
+		stw%X1 %L2,%1"
 	: "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
 	: "r" (pte) : "memory");
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/hash-4k.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/hash-4k.h
@@ -13,20 +13,19 @@
  */
 #define MAX_EA_BITS_PER_CONTEXT		46
 
-#define REGION_SHIFT		(MAX_EA_BITS_PER_CONTEXT - 2)
 
 /*
- * Our page table limit us to 64TB. Hence for the kernel mapping,
- * each MAP area is limited to 16 TB.
- * The four map areas are:  linear mapping, vmap, IO and vmemmap
+ * Our page table limit us to 64TB. For 64TB physical memory, we only need 64GB
+ * of vmemmap space. To better support sparse memory layout, we use 61TB
+ * linear map range, 1TB of vmalloc, 1TB of I/O and 1TB of vmememmap.
  */
+#define REGION_SHIFT		(40)
 #define H_KERN_MAP_SIZE		(ASM_CONST(1) << REGION_SHIFT)
 
 /*
- * Define the address range of the kernel non-linear virtual area
- * 16TB
+ * Define the address range of the kernel non-linear virtual area (61TB)
  */
-#define H_KERN_VIRT_START	ASM_CONST(0xc000100000000000)
+#define H_KERN_VIRT_START	ASM_CONST(0xc0003d0000000000)
 
 #ifndef __ASSEMBLY__
 #define H_PTE_TABLE_SIZE	(sizeof(pte_t) << H_PTE_INDEX_SIZE)
@@ -156,6 +155,12 @@
 extern int hash__has_transparent_hugepage(void);
 #endif
 
+static inline pmd_t hash__pmd_mkdevmap(pmd_t pmd)
+{
+	BUG();
+	return pmd;
+}
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_HASH_4K_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/hash-64k.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/hash-64k.h
@@ -246,7 +246,7 @@
  */
 static inline int hash__pmd_trans_huge(pmd_t pmd)
 {
-	return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE)) ==
+	return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE | _PAGE_DEVMAP)) ==
 		  (_PAGE_PTE | H_PAGE_THP_HUGE));
 }
 
@@ -272,6 +272,12 @@
 				       unsigned long addr, pmd_t *pmdp);
 extern int hash__has_transparent_hugepage(void);
 #endif /*  CONFIG_TRANSPARENT_HUGEPAGE */
+
+static inline pmd_t hash__pmd_mkdevmap(pmd_t pmd)
+{
+	return __pmd(pmd_val(pmd) | (_PAGE_PTE | H_PAGE_THP_HUGE | _PAGE_DEVMAP));
+}
+
 #endif	/* __ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_HASH_64K_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/kup-radix.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/kup-radix.h
@@ -11,13 +11,12 @@
 
 #ifdef __ASSEMBLY__
 
-.macro kuap_restore_amr	gpr
 #ifdef CONFIG_PPC_KUAP
+.macro kuap_restore_amr	gpr
 	BEGIN_MMU_FTR_SECTION_NESTED(67)
 	ld	\gpr, STACK_REGS_KUAP(r1)
 	mtspr	SPRN_AMR, \gpr
 	END_MMU_FTR_SECTION_NESTED_IFSET(MMU_FTR_RADIX_KUAP, 67)
-#endif
 .endm
 
 .macro kuap_check_amr gpr1, gpr2
@@ -31,6 +30,7 @@
 	END_MMU_FTR_SECTION_NESTED_IFSET(MMU_FTR_RADIX_KUAP, 67)
 #endif
 .endm
+#endif
 
 .macro kuap_save_amr_and_lock gpr1, gpr2, use_cr, msr_pr_cr
 #ifdef CONFIG_PPC_KUAP
@@ -54,6 +54,10 @@
 
 #else /* !__ASSEMBLY__ */
 
+#include <linux/jump_label.h>
+
+DECLARE_STATIC_KEY_FALSE(uaccess_flush_key);
+
 #ifdef CONFIG_PPC_KUAP
 
 #include <asm/reg.h>
@@ -77,32 +81,39 @@
 	isync();
 }
 
-static inline void allow_user_access(void __user *to, const void __user *from,
-				     unsigned long size)
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
+{
+	return WARN(mmu_has_feature(MMU_FTR_RADIX_KUAP) &&
+		    (regs->kuap & (is_write ? AMR_KUAP_BLOCK_WRITE : AMR_KUAP_BLOCK_READ)),
+		    "Bug: %s fault blocked by AMR!", is_write ? "Write" : "Read");
+}
+#else /* CONFIG_PPC_KUAP */
+static inline void kuap_restore_amr(struct pt_regs *regs, unsigned long amr) { }
+static inline void set_kuap(unsigned long value) { }
+#endif /* !CONFIG_PPC_KUAP */
+
+static __always_inline void allow_user_access(void __user *to, const void __user *from,
+					      unsigned long size, unsigned long dir)
 {
 	// This is written so we can resolve to a single case at build time
-	if (__builtin_constant_p(to) && to == NULL)
+	BUILD_BUG_ON(!__builtin_constant_p(dir));
+	if (dir == KUAP_READ)
 		set_kuap(AMR_KUAP_BLOCK_WRITE);
-	else if (__builtin_constant_p(from) && from == NULL)
+	else if (dir == KUAP_WRITE)
 		set_kuap(AMR_KUAP_BLOCK_READ);
 	else
 		set_kuap(0);
 }
 
 static inline void prevent_user_access(void __user *to, const void __user *from,
-				       unsigned long size)
+				       unsigned long size, unsigned long dir)
 {
 	set_kuap(AMR_KUAP_BLOCKED);
+	if (static_branch_unlikely(&uaccess_flush_key))
+		do_uaccess_flush();
 }
 
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write)
-{
-	return WARN(mmu_has_feature(MMU_FTR_RADIX_KUAP) &&
-		    (regs->kuap & (is_write ? AMR_KUAP_BLOCK_WRITE : AMR_KUAP_BLOCK_READ)),
-		    "Bug: %s fault blocked by AMR!", is_write ? "Write" : "Read");
-}
-#endif /* CONFIG_PPC_KUAP */
-
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_KUP_RADIX_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/mmu-hash.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/mmu-hash.h
@@ -600,8 +600,11 @@
  *
  */
 #define MAX_USER_CONTEXT	((ASM_CONST(1) << CONTEXT_BITS) - 2)
+
+// The + 2 accounts for INVALID_REGION and 1 more to avoid overlap with kernel
 #define MIN_USER_CONTEXT	(MAX_KERNEL_CTX_CNT + MAX_VMALLOC_CTX_CNT + \
-				 MAX_IO_CTX_CNT + MAX_VMEMMAP_CTX_CNT)
+				 MAX_IO_CTX_CNT + MAX_VMEMMAP_CTX_CNT + 2)
+
 /*
  * For platforms that support on 65bit VA we limit the context bits
  */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/mmu.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/mmu.h
@@ -225,14 +225,14 @@
 
 extern void hash__setup_initial_memory_limit(phys_addr_t first_memblock_base,
 					 phys_addr_t first_memblock_size);
-extern void radix__setup_initial_memory_limit(phys_addr_t first_memblock_base,
-					 phys_addr_t first_memblock_size);
 static inline void setup_initial_memory_limit(phys_addr_t first_memblock_base,
 					      phys_addr_t first_memblock_size)
 {
-	if (early_radix_enabled())
-		return radix__setup_initial_memory_limit(first_memblock_base,
-						   first_memblock_size);
+	/*
+	 * Hash has more strict restrictions. At this point we don't
+	 * know which translations we will pick. Hence go with hash
+	 * restrictions.
+	 */
 	return hash__setup_initial_memory_limit(first_memblock_base,
 					   first_memblock_size);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/pgalloc.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/pgalloc.h
@@ -19,9 +19,7 @@
 extern pmd_t *pmd_fragment_alloc(struct mm_struct *, unsigned long);
 extern void pmd_fragment_free(unsigned long *);
 extern void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift);
-#ifdef CONFIG_SMP
 extern void __tlb_remove_table(void *_table);
-#endif
 void pte_frag_destroy(void *pte_frag);
 
 static inline pgd_t *radix__pgd_alloc(struct mm_struct *mm)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -998,10 +998,25 @@
 #define pud_page_vaddr(pud)	__va(pud_val(pud) & ~PUD_MASKED_BITS)
 #define pgd_page_vaddr(pgd)	__va(pgd_val(pgd) & ~PGD_MASKED_BITS)
 
-#define pgd_index(address) (((address) >> (PGDIR_SHIFT)) & (PTRS_PER_PGD - 1))
-#define pud_index(address) (((address) >> (PUD_SHIFT)) & (PTRS_PER_PUD - 1))
-#define pmd_index(address) (((address) >> (PMD_SHIFT)) & (PTRS_PER_PMD - 1))
-#define pte_index(address) (((address) >> (PAGE_SHIFT)) & (PTRS_PER_PTE - 1))
+static inline unsigned long pgd_index(unsigned long address)
+{
+	return (address >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1);
+}
+
+static inline unsigned long pud_index(unsigned long address)
+{
+	return (address >> PUD_SHIFT) & (PTRS_PER_PUD - 1);
+}
+
+static inline unsigned long pmd_index(unsigned long address)
+{
+	return (address >> PMD_SHIFT) & (PTRS_PER_PMD - 1);
+}
+
+static inline unsigned long pte_index(unsigned long address)
+{
+	return (address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1);
+}
 
 /*
  * Find an entry in a page-table-directory.  We combine the address region
@@ -1303,7 +1318,9 @@
 
 static inline pmd_t pmd_mkdevmap(pmd_t pmd)
 {
-	return __pmd(pmd_val(pmd) | (_PAGE_PTE | _PAGE_DEVMAP));
+	if (radix_enabled())
+		return radix__pmd_mkdevmap(pmd);
+	return hash__pmd_mkdevmap(pmd);
 }
 
 static inline int pmd_devmap(pmd_t pmd)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/book3s/64/radix.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/book3s/64/radix.h
@@ -263,6 +263,11 @@
 }
 #endif
 
+static inline pmd_t radix__pmd_mkdevmap(pmd_t pmd)
+{
+	return __pmd(pmd_val(pmd) | (_PAGE_PTE | _PAGE_DEVMAP));
+}
+
 extern int __meminit radix__vmemmap_create_mapping(unsigned long start,
 					     unsigned long page_size,
 					     unsigned long phys);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/cache.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/cache.h
@@ -55,42 +55,48 @@
 
 extern struct ppc64_caches ppc64_caches;
 
-static inline u32 l1_cache_shift(void)
+static inline u32 l1_dcache_shift(void)
 {
 	return ppc64_caches.l1d.log_block_size;
 }
 
-static inline u32 l1_cache_bytes(void)
+static inline u32 l1_dcache_bytes(void)
 {
 	return ppc64_caches.l1d.block_size;
 }
+
+static inline u32 l1_icache_shift(void)
+{
+	return ppc64_caches.l1i.log_block_size;
+}
+
+static inline u32 l1_icache_bytes(void)
+{
+	return ppc64_caches.l1i.block_size;
+}
 #else
-static inline u32 l1_cache_shift(void)
+static inline u32 l1_dcache_shift(void)
 {
 	return L1_CACHE_SHIFT;
 }
 
-static inline u32 l1_cache_bytes(void)
+static inline u32 l1_dcache_bytes(void)
 {
 	return L1_CACHE_BYTES;
 }
-#endif
-#endif /* ! __ASSEMBLY__ */
 
-#if defined(__ASSEMBLY__)
-/*
- * For a snooping icache, we still need a dummy icbi to purge all the
- * prefetched instructions from the ifetch buffers. We also need a sync
- * before the icbi to order the the actual stores to memory that might
- * have modified instructions with the icbi.
- */
-#define PURGE_PREFETCHED_INS	\
-	sync;			\
-	icbi	0,r3;		\
-	sync;			\
-	isync
+static inline u32 l1_icache_shift(void)
+{
+	return L1_CACHE_SHIFT;
+}
+
+static inline u32 l1_icache_bytes(void)
+{
+	return L1_CACHE_BYTES;
+}
+
+#endif
 
-#else
 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
 
 #ifdef CONFIG_PPC_BOOK3S_32
@@ -124,6 +130,17 @@
 {
 	__asm__ __volatile__ ("dcbst 0, %0" : : "r"(addr) : "memory");
 }
+
+static inline void icbi(void *addr)
+{
+	asm volatile ("icbi 0, %0" : : "r"(addr) : "memory");
+}
+
+static inline void iccci(void *addr)
+{
+	asm volatile ("iccci 0, %0" : : "r"(addr) : "memory");
+}
+
 #endif /* !__ASSEMBLY__ */
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_CACHE_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/cacheflush.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/cacheflush.h
@@ -42,29 +42,25 @@
 #define flush_dcache_mmap_lock(mapping)		do { } while (0)
 #define flush_dcache_mmap_unlock(mapping)	do { } while (0)
 
-extern void flush_icache_range(unsigned long, unsigned long);
+void flush_icache_range(unsigned long start, unsigned long stop);
 extern void flush_icache_user_range(struct vm_area_struct *vma,
 				    struct page *page, unsigned long addr,
 				    int len);
-extern void __flush_dcache_icache(void *page_va);
 extern void flush_dcache_icache_page(struct page *page);
-#if defined(CONFIG_PPC32) && !defined(CONFIG_BOOKE)
-extern void __flush_dcache_icache_phys(unsigned long physaddr);
-#else
-static inline void __flush_dcache_icache_phys(unsigned long physaddr)
-{
-	BUG();
-}
-#endif
+void __flush_dcache_icache(void *page);
 
-/*
- * Write any modified data cache blocks out to memory and invalidate them.
- * Does not invalidate the corresponding instruction cache blocks.
+/**
+ * flush_dcache_range(): Write any modified data cache blocks out to memory and
+ * invalidate them. Does not invalidate the corresponding instruction cache
+ * blocks.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
  */
 static inline void flush_dcache_range(unsigned long start, unsigned long stop)
 {
-	unsigned long shift = l1_cache_shift();
-	unsigned long bytes = l1_cache_bytes();
+	unsigned long shift = l1_dcache_shift();
+	unsigned long bytes = l1_dcache_bytes();
 	void *addr = (void *)(start & ~(bytes - 1));
 	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
 	unsigned long i;
@@ -89,8 +85,8 @@
  */
 static inline void clean_dcache_range(unsigned long start, unsigned long stop)
 {
-	unsigned long shift = l1_cache_shift();
-	unsigned long bytes = l1_cache_bytes();
+	unsigned long shift = l1_dcache_shift();
+	unsigned long bytes = l1_dcache_bytes();
 	void *addr = (void *)(start & ~(bytes - 1));
 	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
 	unsigned long i;
@@ -108,8 +104,8 @@
 static inline void invalidate_dcache_range(unsigned long start,
 					   unsigned long stop)
 {
-	unsigned long shift = l1_cache_shift();
-	unsigned long bytes = l1_cache_bytes();
+	unsigned long shift = l1_dcache_shift();
+	unsigned long bytes = l1_dcache_bytes();
 	void *addr = (void *)(start & ~(bytes - 1));
 	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
 	unsigned long i;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/code-patching.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/code-patching.h
@@ -72,7 +72,7 @@
 #endif
 
 #define OP_RT_RA_MASK	0xffff0000UL
-#define LIS_R2		0x3c020000UL
+#define LIS_R2		0x3c400000UL
 #define ADDIS_R2_R12	0x3c4c0000UL
 #define ADDI_R2_R2	0x38420000UL
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/cpm1.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/cpm1.h
@@ -68,6 +68,7 @@
 #define PROFF_SPI	((uint)0x0180)
 #define PROFF_SCC3	((uint)0x0200)
 #define PROFF_SMC1	((uint)0x0280)
+#define PROFF_DSP1	((uint)0x02c0)
 #define PROFF_SCC4	((uint)0x0300)
 #define PROFF_SMC2	((uint)0x0380)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/cputable.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/cputable.h
@@ -367,7 +367,7 @@
 	    CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX)
 #define CPU_FTRS_82XX	(CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_G2_LE	(CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \
-	    CPU_FTR_MAYBE_CAN_NAP)
+	    CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_E300	(CPU_FTR_MAYBE_CAN_DOZE | \
 	    CPU_FTR_MAYBE_CAN_NAP | \
 	    CPU_FTR_COMMON  | CPU_FTR_NOEXECUTE)
@@ -407,7 +407,6 @@
 	    CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
 	    CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \
 	    CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT)
-#define CPU_FTRS_GENERIC_32	(CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
 
 /* 64-bit CPUs */
 #define CPU_FTRS_PPC970	(CPU_FTR_LWSYNC | \
@@ -507,8 +506,6 @@
 	    CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX |
 	    CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 |
 	    CPU_FTRS_CLASSIC32 |
-#else
-	    CPU_FTRS_GENERIC_32 |
 #endif
 #ifdef CONFIG_PPC_8xx
 	    CPU_FTRS_8XX |
@@ -585,8 +582,6 @@
 	    CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX &
 	    CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 &
 	    CPU_FTRS_CLASSIC32 &
-#else
-	    CPU_FTRS_GENERIC_32 &
 #endif
 #ifdef CONFIG_PPC_8xx
 	    CPU_FTRS_8XX &
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/cputhreads.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/cputhreads.h
@@ -3,6 +3,7 @@
 #define _ASM_POWERPC_CPUTHREADS_H
 
 #ifndef __ASSEMBLY__
+#include <asm/cpu_has_feature.h>
 #include <linux/cpumask.h>
 #include <asm/cpu_has_feature.h>
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/drmem.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/drmem.h
@@ -8,31 +8,44 @@
 #ifndef _ASM_POWERPC_LMB_H
 #define _ASM_POWERPC_LMB_H
 
+#include <linux/sched.h>
+
 struct drmem_lmb {
 	u64     base_addr;
 	u32     drc_index;
 	u32     aa_index;
 	u32     flags;
-#ifdef CONFIG_MEMORY_HOTPLUG
-	int	nid;
-#endif
 };
 
 struct drmem_lmb_info {
 	struct drmem_lmb        *lmbs;
 	int                     n_lmbs;
-	u32                     lmb_size;
+	u64                     lmb_size;
 };
 
 extern struct drmem_lmb_info *drmem_info;
 
+static inline struct drmem_lmb *drmem_lmb_next(struct drmem_lmb *lmb,
+					       const struct drmem_lmb *start)
+{
+	/*
+	 * DLPAR code paths can take several milliseconds per element
+	 * when interacting with firmware. Ensure that we don't
+	 * unfairly monopolize the CPU.
+	 */
+	if (((++lmb - start) % 16) == 0)
+		cond_resched();
+
+	return lmb;
+}
+
 #define for_each_drmem_lmb_in_range(lmb, start, end)		\
-	for ((lmb) = (start); (lmb) <= (end); (lmb)++)
+	for ((lmb) = (start); (lmb) < (end); lmb = drmem_lmb_next(lmb, start))
 
 #define for_each_drmem_lmb(lmb)					\
 	for_each_drmem_lmb_in_range((lmb),			\
 		&drmem_info->lmbs[0],				\
-		&drmem_info->lmbs[drmem_info->n_lmbs - 1])
+		&drmem_info->lmbs[drmem_info->n_lmbs])
 
 /*
  * The of_drconf_cell_v1 struct defines the layout of the LMB data
@@ -66,7 +79,7 @@
 #define DRCONF_MEM_AI_INVALID	0x00000040
 #define DRCONF_MEM_RESERVED	0x00000080
 
-static inline u32 drmem_lmb_size(void)
+static inline u64 drmem_lmb_size(void)
 {
 	return drmem_info->lmb_size;
 }
@@ -103,22 +116,4 @@
 	lmb->aa_index = 0xffffffff;
 }
 
-#ifdef CONFIG_MEMORY_HOTPLUG
-static inline void lmb_set_nid(struct drmem_lmb *lmb)
-{
-	lmb->nid = memory_add_physaddr_to_nid(lmb->base_addr);
-}
-static inline void lmb_clear_nid(struct drmem_lmb *lmb)
-{
-	lmb->nid = -1;
-}
-#else
-static inline void lmb_set_nid(struct drmem_lmb *lmb)
-{
-}
-static inline void lmb_clear_nid(struct drmem_lmb *lmb)
-{
-}
-#endif
-
 #endif /* _ASM_POWERPC_LMB_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/exception-64s.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/exception-64s.h
@@ -61,11 +61,18 @@
 	nop;								\
 	nop
 
+#define ENTRY_FLUSH_SLOT						\
+	ENTRY_FLUSH_FIXUP_SECTION;					\
+	nop;								\
+	nop;								\
+	nop;
+
 /*
  * r10 must be free to use, r13 must be paca
  */
 #define INTERRUPT_TO_KERNEL						\
-	STF_ENTRY_BARRIER_SLOT
+	STF_ENTRY_BARRIER_SLOT;						\
+	ENTRY_FLUSH_SLOT
 
 /*
  * Macros for annotating the expected destination of (h)rfid
@@ -127,6 +134,9 @@
 	hrfid;								\
 	b	hrfi_flush_fallback
 
+#else /* __ASSEMBLY__ */
+/* Prototype for function defined in exceptions-64s.S */
+void do_uaccess_flush(void);
 #endif /* __ASSEMBLY__ */
 
 #endif	/* _ASM_POWERPC_EXCEPTION_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/fadump-internal.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/fadump-internal.h
@@ -64,12 +64,14 @@
 };
 
 /* fadump memory ranges info */
+#define RNG_NAME_SZ			16
 struct fadump_mrange_info {
-	char				name[16];
+	char				name[RNG_NAME_SZ];
 	struct fadump_memory_range	*mem_ranges;
 	u32				mem_ranges_sz;
 	u32				mem_range_cnt;
 	u32				max_mem_ranges;
+	bool				is_static;
 };
 
 /* Platform specific callback functions */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/feature-fixups.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/feature-fixups.h
@@ -205,6 +205,22 @@
 	FTR_ENTRY_OFFSET 955b-956b;			\
 	.popsection;
 
+#define UACCESS_FLUSH_FIXUP_SECTION			\
+959:							\
+	.pushsection __uaccess_flush_fixup,"a";		\
+	.align 2;					\
+960:							\
+	FTR_ENTRY_OFFSET 959b-960b;			\
+	.popsection;
+
+#define ENTRY_FLUSH_FIXUP_SECTION			\
+957:							\
+	.pushsection __entry_flush_fixup,"a";		\
+	.align 2;					\
+958:							\
+	FTR_ENTRY_OFFSET 957b-958b;			\
+	.popsection;
+
 #define RFI_FLUSH_FIXUP_SECTION				\
 951:							\
 	.pushsection __rfi_flush_fixup,"a";		\
@@ -237,8 +253,11 @@
 #include <linux/types.h>
 
 extern long stf_barrier_fallback;
+extern long entry_flush_fallback;
 extern long __start___stf_entry_barrier_fixup, __stop___stf_entry_barrier_fixup;
 extern long __start___stf_exit_barrier_fixup, __stop___stf_exit_barrier_fixup;
+extern long __start___uaccess_flush_fixup, __stop___uaccess_flush_fixup;
+extern long __start___entry_flush_fixup, __stop___entry_flush_fixup;
 extern long __start___rfi_flush_fixup, __stop___rfi_flush_fixup;
 extern long __start___barrier_nospec_fixup, __stop___barrier_nospec_fixup;
 extern long __start__btb_flush_fixup, __stop__btb_flush_fixup;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/fixmap.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/fixmap.h
@@ -77,7 +77,12 @@
 static inline void __set_fixmap(enum fixed_addresses idx,
 				phys_addr_t phys, pgprot_t flags)
 {
-	map_kernel_page(fix_to_virt(idx), phys, flags);
+	if (__builtin_constant_p(idx))
+		BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
+	else if (WARN_ON(idx >= __end_of_fixed_addresses))
+		return;
+
+	map_kernel_page(__fix_to_virt(idx), phys, flags);
 }
 
 #endif /* !__ASSEMBLY__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/futex.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/futex.h
@@ -35,7 +35,7 @@
 {
 	int oldval = 0, ret;
 
-	allow_write_to_user(uaddr, sizeof(*uaddr));
+	allow_read_write_user(uaddr, uaddr, sizeof(*uaddr));
 	pagefault_disable();
 
 	switch (op) {
@@ -62,7 +62,7 @@
 
 	*oval = oldval;
 
-	prevent_write_to_user(uaddr, sizeof(*uaddr));
+	prevent_read_write_user(uaddr, uaddr, sizeof(*uaddr));
 	return ret;
 }
 
@@ -76,7 +76,8 @@
 	if (!access_ok(uaddr, sizeof(u32)))
 		return -EFAULT;
 
-	allow_write_to_user(uaddr, sizeof(*uaddr));
+	allow_read_write_user(uaddr, uaddr, sizeof(*uaddr));
+
         __asm__ __volatile__ (
         PPC_ATOMIC_ENTRY_BARRIER
 "1:     lwarx   %1,0,%3         # futex_atomic_cmpxchg_inatomic\n\
@@ -97,7 +98,8 @@
         : "cc", "memory");
 
 	*uval = prev;
-	prevent_write_to_user(uaddr, sizeof(*uaddr));
+	prevent_read_write_user(uaddr, uaddr, sizeof(*uaddr));
+
         return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/kasan.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/kasan.h
@@ -23,9 +23,7 @@
 
 #define KASAN_SHADOW_OFFSET	ASM_CONST(CONFIG_KASAN_SHADOW_OFFSET)
 
-#define KASAN_SHADOW_END	0UL
-
-#define KASAN_SHADOW_SIZE	(KASAN_SHADOW_END - KASAN_SHADOW_START)
+#define KASAN_SHADOW_END	(-(-KASAN_SHADOW_START >> KASAN_SHADOW_SCALE_SHIFT))
 
 #ifdef CONFIG_KASAN
 void kasan_early_init(void);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/kup.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/kup.h
@@ -2,7 +2,11 @@
 #ifndef _ASM_POWERPC_KUP_H_
 #define _ASM_POWERPC_KUP_H_
 
-#ifdef CONFIG_PPC64
+#define KUAP_READ	1
+#define KUAP_WRITE	2
+#define KUAP_READ_WRITE	(KUAP_READ | KUAP_WRITE)
+
+#ifdef CONFIG_PPC_BOOK3S_64
 #include <asm/book3s/64/kup-radix.h>
 #endif
 #ifdef CONFIG_PPC_8xx
@@ -20,9 +24,15 @@
 .macro kuap_restore	sp, current, gpr1, gpr2, gpr3
 .endm
 
+.macro kuap_restore_amr gpr
+.endm
+
 .macro kuap_check	current, gpr
 .endm
 
+.macro kuap_check_amr	gpr1, gpr2
+.endm
+
 #endif
 
 #else /* !__ASSEMBLY__ */
@@ -41,33 +51,60 @@
 void setup_kuap(bool disabled);
 #else
 static inline void setup_kuap(bool disabled) { }
+
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
+{
+	return false;
+}
+
+static inline void kuap_check_amr(void) { }
+
+/*
+ * book3s/64/kup-radix.h defines these functions for the !KUAP case to flush
+ * the L1D cache after user accesses. Only include the empty stubs for other
+ * platforms.
+ */
+#ifndef CONFIG_PPC_BOOK3S_64
 static inline void allow_user_access(void __user *to, const void __user *from,
-				     unsigned long size) { }
+				     unsigned long size, unsigned long dir) { }
 static inline void prevent_user_access(void __user *to, const void __user *from,
-				       unsigned long size) { }
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write) { return false; }
+				       unsigned long size, unsigned long dir) { }
+#endif /* CONFIG_PPC_BOOK3S_64 */
 #endif /* CONFIG_PPC_KUAP */
 
 static inline void allow_read_from_user(const void __user *from, unsigned long size)
 {
-	allow_user_access(NULL, from, size);
+	allow_user_access(NULL, from, size, KUAP_READ);
 }
 
 static inline void allow_write_to_user(void __user *to, unsigned long size)
 {
-	allow_user_access(to, NULL, size);
+	allow_user_access(to, NULL, size, KUAP_WRITE);
+}
+
+static inline void allow_read_write_user(void __user *to, const void __user *from,
+					 unsigned long size)
+{
+	allow_user_access(to, from, size, KUAP_READ_WRITE);
 }
 
 static inline void prevent_read_from_user(const void __user *from, unsigned long size)
 {
-	prevent_user_access(NULL, from, size);
+	prevent_user_access(NULL, from, size, KUAP_READ);
 }
 
 static inline void prevent_write_to_user(void __user *to, unsigned long size)
 {
-	prevent_user_access(to, NULL, size);
+	prevent_user_access(to, NULL, size, KUAP_WRITE);
+}
+
+static inline void prevent_read_write_user(void __user *to, const void __user *from,
+					   unsigned long size)
+{
+	prevent_user_access(to, from, size, KUAP_READ_WRITE);
 }
 
 #endif /* !__ASSEMBLY__ */
 
-#endif /* _ASM_POWERPC_KUP_H_ */
+#endif /* _ASM_POWERPC_KUAP_H_ */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/kvm_asm.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/kvm_asm.h
@@ -150,4 +150,7 @@
 
 #define KVM_INST_FETCH_FAILED	-1
 
+/* Extract PO and XOP opcode fields */
+#define PO_XOP_OPCODE_MASK 0xfc0007fe
+
 #endif /* __POWERPC_KVM_ASM_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/kvm_host.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/kvm_host.h
@@ -58,7 +58,8 @@
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 
 extern int kvm_unmap_hva_range(struct kvm *kvm,
-			       unsigned long start, unsigned long end);
+			       unsigned long start, unsigned long end,
+			       unsigned flags);
 extern int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 extern int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
 extern int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/machdep.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/machdep.h
@@ -59,6 +59,9 @@
 	int		(*pcibios_root_bridge_prepare)(struct pci_host_bridge
 				*bridge);
 
+	/* finds all the pci_controllers present at boot */
+	void 		(*discover_phbs)(void);
+
 	/* To setup PHBs when using automatic OF platform driver for PCI */
 	int		(*pci_setup_phb)(struct pci_controller *host);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/mmu_context.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/mmu_context.h
@@ -216,7 +216,7 @@
  */
 static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
-	switch_mm(prev, next, current);
+	switch_mm_irqs_off(prev, next, current);
 }
 
 /* We don't currently use enter_lazy_tlb() for anything */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/nohash/32/kup-8xx.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/nohash/32/kup-8xx.h
@@ -34,18 +34,19 @@
 #include <asm/reg.h>
 
 static inline void allow_user_access(void __user *to, const void __user *from,
-				     unsigned long size)
+				     unsigned long size, unsigned long dir)
 {
 	mtspr(SPRN_MD_AP, MD_APG_INIT);
 }
 
 static inline void prevent_user_access(void __user *to, const void __user *from,
-				       unsigned long size)
+				       unsigned long size, unsigned long dir)
 {
 	mtspr(SPRN_MD_AP, MD_APG_KUAP);
 }
 
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write)
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
 {
 	return WARN(!((regs->kuap ^ MD_APG_KUAP) & 0xf0000000),
 		    "Bug: fault blocked by AP register !");
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/nohash/32/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/nohash/32/pgtable.h
@@ -148,8 +148,10 @@
  */
 #if defined(CONFIG_PPC32) && defined(CONFIG_PTE_64BIT)
 #define PTE_RPN_MASK	(~((1ULL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 36
 #else
 #define PTE_RPN_MASK	(~((1UL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #endif
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/nohash/pgalloc.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/nohash/pgalloc.h
@@ -46,7 +46,6 @@
 
 #define get_hugepd_cache_index(x)	(x)
 
-#ifdef CONFIG_SMP
 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift)
 {
 	unsigned long pgf = (unsigned long)table;
@@ -64,13 +63,6 @@
 	pgtable_free(table, shift);
 }
 
-#else
-static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift)
-{
-	pgtable_free(table, shift);
-}
-#endif
-
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table,
 				  unsigned long address)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/nohash/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/nohash/pgtable.h
@@ -199,9 +199,9 @@
 	 */
 	if (IS_ENABLED(CONFIG_PPC32) && IS_ENABLED(CONFIG_PTE_64BIT) && !percpu) {
 		__asm__ __volatile__("\
-			stw%U0%X0 %2,%0\n\
+			stw%X0 %2,%0\n\
 			eieio\n\
-			stw%U0%X0 %L2,%1"
+			stw%X1 %L2,%1"
 		: "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
 		: "r" (pte) : "memory");
 		return;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/opal-api.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/opal-api.h
@@ -211,7 +211,10 @@
 #define OPAL_MPIPL_UPDATE			173
 #define OPAL_MPIPL_REGISTER_TAG			174
 #define OPAL_MPIPL_QUERY_TAG			175
-#define OPAL_LAST				175
+#define OPAL_SECVAR_GET				176
+#define OPAL_SECVAR_GET_NEXT			177
+#define OPAL_SECVAR_ENQUEUE_UPDATE		178
+#define OPAL_LAST				178
 
 #define QUIESCE_HOLD			1 /* Spin all calls at entry */
 #define QUIESCE_REJECT			2 /* Fail all calls with OPAL_BUSY */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/opal.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/opal.h
@@ -298,6 +298,13 @@
 int opal_sensor_group_enable(u32 group_hndl, int token, bool enable);
 int opal_nx_coproc_init(uint32_t chip_id, uint32_t ct);
 
+int opal_secvar_get(const char *key, uint64_t key_len, u8 *data,
+		    uint64_t *data_size);
+int opal_secvar_get_next(const char *key, uint64_t *key_len,
+			 uint64_t key_buf_size);
+int opal_secvar_enqueue_update(const char *key, uint64_t key_len, u8 *data,
+			       uint64_t data_size);
+
 s64 opal_mpipl_update(enum opal_mpipl_ops op, u64 src, u64 dest, u64 size);
 s64 opal_mpipl_register_tag(enum opal_mpipl_tags tag, u64 addr);
 s64 opal_mpipl_query_tag(enum opal_mpipl_tags tag, u64 *addr);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/page.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/page.h
@@ -295,8 +295,13 @@
 /*
  * Some number of bits at the level of the page table that points to
  * a hugepte are used to encode the size.  This masks those bits.
+ * On 8xx, HW assistance requires 4k alignment for the hugepte.
  */
+#ifdef CONFIG_PPC_8xx
+#define HUGEPD_SHIFT_MASK     0xfff
+#else
 #define HUGEPD_SHIFT_MASK     0x3f
+#endif
 
 #ifndef __ASSEMBLY__
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/percpu.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/percpu.h
@@ -10,8 +10,6 @@
 
 #ifdef CONFIG_SMP
 
-#include <asm/paca.h>
-
 #define __my_cpu_offset local_paca->data_offset
 
 #endif /* CONFIG_SMP */
@@ -19,4 +17,6 @@
 
 #include <asm-generic/percpu.h>
 
+#include <asm/paca.h>
+
 #endif /* _ASM_POWERPC_PERCPU_H_ */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/perf_event.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/perf_event.h
@@ -12,6 +12,8 @@
 
 #ifdef CONFIG_PPC_PERF_CTRS
 #include <asm/perf_event_server.h>
+#else
+static inline bool is_sier_available(void) { return false; }
 #endif
 
 #ifdef CONFIG_FSL_EMB_PERF_EVENT
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/pnv-pci.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/pnv-pci.h
@@ -15,6 +15,7 @@
 #define PCI_SLOT_ID_PREFIX	(1UL << 63)
 #define PCI_SLOT_ID(phb_id, bdfn)	\
 	(PCI_SLOT_ID_PREFIX | ((uint64_t)(bdfn) << 16) | (phb_id))
+#define PCI_PHB_SLOT_ID(phb_id)		(phb_id)
 
 extern int pnv_pci_get_slot_id(struct device_node *np, uint64_t *id);
 extern int pnv_pci_get_device_tree(uint32_t phandle, void *buf, uint64_t len);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/processor.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/processor.h
@@ -291,7 +291,6 @@
 #else
 #define INIT_THREAD  { \
 	.ksp = INIT_SP, \
-	.regs = (struct pt_regs *)INIT_SP - 1, /* XXX bogus, I think */ \
 	.addr_limit = KERNEL_DS, \
 	.fpexc_mode = 0, \
 	.fscr = FSCR_TAR | FSCR_EBB \
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/ptrace.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/ptrace.h
@@ -62,6 +62,9 @@
 };
 #endif
 
+
+#define STACK_FRAME_WITH_PT_REGS (STACK_FRAME_OVERHEAD + sizeof(struct pt_regs))
+
 #ifdef __powerpc64__
 
 /*
@@ -203,7 +206,7 @@
 #endif /* __powerpc64__ */
 
 #define arch_has_single_step()	(1)
-#ifndef CONFIG_BOOK3S_601
+#ifndef CONFIG_PPC_BOOK3S_601
 #define arch_has_block_step()	(true)
 #else
 #define arch_has_block_step()	(false)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/reg.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/reg.h
@@ -796,7 +796,7 @@
 #define THRM1_TIN	(1 << 31)
 #define THRM1_TIV	(1 << 30)
 #define THRM1_THRES(x)	((x&0x7f)<<23)
-#define THRM3_SITV(x)	((x&0x3fff)<<1)
+#define THRM3_SITV(x)	((x & 0x1fff) << 1)
 #define THRM1_TID	(1<<2)
 #define THRM1_TIE	(1<<1)
 #define THRM1_V		(1<<0)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/rtas.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/rtas.h
@@ -368,8 +368,6 @@
 extern void rtas_progress(char *s, unsigned short hex);
 extern int rtas_suspend_cpu(struct rtas_suspend_me_data *data);
 extern int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data);
-extern int rtas_online_cpus_mask(cpumask_var_t cpus);
-extern int rtas_offline_cpus_mask(cpumask_var_t cpus);
 extern int rtas_ibm_suspend_me(u64 handle);
 
 struct rtc_time;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/sections.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/sections.h
@@ -5,8 +5,22 @@
 
 #include <linux/elf.h>
 #include <linux/uaccess.h>
+
+#define arch_is_kernel_initmem_freed arch_is_kernel_initmem_freed
+
 #include <asm-generic/sections.h>
 
+extern bool init_mem_is_free;
+
+static inline int arch_is_kernel_initmem_freed(unsigned long addr)
+{
+	if (!init_mem_is_free)
+		return 0;
+
+	return addr >= (unsigned long)__init_begin &&
+		addr < (unsigned long)__init_end;
+}
+
 extern char __head_end[];
 
 #ifdef __powerpc64__
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/secure_boot.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/secure_boot.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Secure boot definitions
+ *
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ */
+#ifndef _ASM_POWER_SECURE_BOOT_H
+#define _ASM_POWER_SECURE_BOOT_H
+
+#ifdef CONFIG_PPC_SECURE_BOOT
+
+bool is_ppc_secureboot_enabled(void);
+bool is_ppc_trustedboot_enabled(void);
+
+#else
+
+static inline bool is_ppc_secureboot_enabled(void)
+{
+	return false;
+}
+
+static inline bool is_ppc_trustedboot_enabled(void)
+{
+	return false;
+}
+
+#endif
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/security_features.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/security_features.h
@@ -9,7 +9,7 @@
 #define _ASM_POWERPC_SECURITY_FEATURES_H
 
 
-extern unsigned long powerpc_security_features;
+extern u64 powerpc_security_features;
 extern bool rfi_flush;
 
 /* These are bit flags */
@@ -24,17 +24,17 @@
 void do_stf_barrier_fixups(enum stf_barrier_type types);
 void setup_count_cache_flush(void);
 
-static inline void security_ftr_set(unsigned long feature)
+static inline void security_ftr_set(u64 feature)
 {
 	powerpc_security_features |= feature;
 }
 
-static inline void security_ftr_clear(unsigned long feature)
+static inline void security_ftr_clear(u64 feature)
 {
 	powerpc_security_features &= ~feature;
 }
 
-static inline bool security_ftr_enabled(unsigned long feature)
+static inline bool security_ftr_enabled(u64 feature)
 {
 	return !!(powerpc_security_features & feature);
 }
@@ -81,12 +81,22 @@
 // Software required to flush count cache on context switch
 #define SEC_FTR_FLUSH_COUNT_CACHE	0x0000000000000400ull
 
+// Software required to flush link stack on context switch
+#define SEC_FTR_FLUSH_LINK_STACK	0x0000000000001000ull
+
+// The L1-D cache should be flushed when entering the kernel
+#define SEC_FTR_L1D_FLUSH_ENTRY		0x0000000000004000ull
+
+// The L1-D cache should be flushed after user accesses from the kernel
+#define SEC_FTR_L1D_FLUSH_UACCESS	0x0000000000008000ull
 
 // Features enabled by default
 #define SEC_FTR_DEFAULT \
 	(SEC_FTR_L1D_FLUSH_HV | \
 	 SEC_FTR_L1D_FLUSH_PR | \
 	 SEC_FTR_BNDS_CHK_SPEC_BAR | \
+	 SEC_FTR_L1D_FLUSH_ENTRY | \
+	 SEC_FTR_L1D_FLUSH_UACCESS | \
 	 SEC_FTR_FAVOUR_SECURITY)
 
 #endif /* _ASM_POWERPC_SECURITY_FEATURES_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/secvar.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/secvar.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ *
+ * PowerPC secure variable operations.
+ */
+#ifndef SECVAR_OPS_H
+#define SECVAR_OPS_H
+
+#include <linux/types.h>
+#include <linux/errno.h>
+
+extern const struct secvar_operations *secvar_ops;
+
+struct secvar_operations {
+	int (*get)(const char *key, uint64_t key_len, u8 *data,
+		   uint64_t *data_size);
+	int (*get_next)(const char *key, uint64_t *key_len,
+			uint64_t keybufsize);
+	int (*set)(const char *key, uint64_t key_len, u8 *data,
+		   uint64_t data_size);
+};
+
+#ifdef CONFIG_PPC_SECURE_BOOT
+
+extern void set_secvar_ops(const struct secvar_operations *ops);
+
+#else
+
+static inline void set_secvar_ops(const struct secvar_operations *ops) { }
+
+#endif
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/setjmp.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/setjmp.h
@@ -7,7 +7,9 @@
 
 #define JMP_BUF_LEN    23
 
-extern long setjmp(long *) __attribute__((returns_twice));
-extern void longjmp(long *, long) __attribute__((noreturn));
+typedef long jmp_buf[JMP_BUF_LEN];
+
+extern int setjmp(jmp_buf env) __attribute__((returns_twice));
+extern void longjmp(jmp_buf env, int val) __attribute__((noreturn));
 
 #endif /* _ASM_POWERPC_SETJMP_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/setup.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/setup.h
@@ -52,12 +52,16 @@
 };
 
 void setup_rfi_flush(enum l1d_flush_type, bool enable);
+void setup_entry_flush(bool enable);
+void setup_uaccess_flush(bool enable);
 void do_rfi_flush_fixups(enum l1d_flush_type types);
 #ifdef CONFIG_PPC_BARRIER_NOSPEC
 void setup_barrier_nospec(void);
 #else
 static inline void setup_barrier_nospec(void) { };
 #endif
+void do_uaccess_flush_fixups(enum l1d_flush_type types);
+void do_entry_flush_fixups(enum l1d_flush_type types);
 void do_barrier_nospec_fixups(bool enable);
 extern bool barrier_nospec_enabled;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/spinlock.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/spinlock.h
@@ -15,6 +15,7 @@
  *
  * (the type definitions are in asm/spinlock_types.h)
  */
+#include <linux/jump_label.h>
 #include <linux/irqflags.h>
 #ifdef CONFIG_PPC64
 #include <asm/paca.h>
@@ -36,10 +37,12 @@
 #endif
 
 #ifdef CONFIG_PPC_PSERIES
+DECLARE_STATIC_KEY_FALSE(shared_processor);
+
 #define vcpu_is_preempted vcpu_is_preempted
 static inline bool vcpu_is_preempted(int cpu)
 {
-	if (!firmware_has_feature(FW_FEATURE_SPLPAR))
+	if (!static_branch_unlikely(&shared_processor))
 		return false;
 	return !!(be32_to_cpu(lppaca_of(cpu).yield_count) & 1);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/timex.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/timex.h
@@ -17,7 +17,7 @@
 
 static inline cycles_t get_cycles(void)
 {
-	if (IS_ENABLED(CONFIG_BOOK3S_601))
+	if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
 		return 0;
 
 	return mftb();
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/tlb.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/tlb.h
@@ -26,6 +26,17 @@
 
 #define tlb_flush tlb_flush
 extern void tlb_flush(struct mmu_gather *tlb);
+/*
+ * book3s:
+ * Hash does not use the linux page-tables, so we can avoid
+ * the TLB invalidate for page-table freeing, Radix otoh does use the
+ * page-tables and needs the TLBI.
+ *
+ * nohash:
+ * We still do TLB invalidate in the __pte_free_tlb routine before we
+ * add the page table pages to mmu gather table batch.
+ */
+#define tlb_needs_table_invalidate()	radix_enabled()
 
 /* Get the generic bits... */
 #include <asm-generic/tlb.h>
@@ -56,19 +67,6 @@
 		return false;
 	return cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm));
 }
-static inline void mm_reset_thread_local(struct mm_struct *mm)
-{
-	WARN_ON(atomic_read(&mm->context.copros) > 0);
-	/*
-	 * It's possible for mm_access to take a reference on mm_users to
-	 * access the remote mm from another thread, but it's not allowed
-	 * to set mm_cpumask, so mm_users may be > 1 here.
-	 */
-	WARN_ON(current->mm != mm);
-	atomic_set(&mm->context.active_cpus, 1);
-	cpumask_clear(mm_cpumask(mm));
-	cpumask_set_cpu(smp_processor_id(), mm_cpumask(mm));
-}
 #else /* CONFIG_PPC_BOOK3S_64 */
 static inline int mm_is_thread_local(struct mm_struct *mm)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/uaccess.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/uaccess.h
@@ -313,9 +313,9 @@
 	unsigned long ret;
 
 	barrier_nospec();
-	allow_user_access(to, from, n);
+	allow_read_write_user(to, from, n);
 	ret = __copy_tofrom_user(to, from, n);
-	prevent_user_access(to, from, n);
+	prevent_read_write_user(to, from, n);
 	return ret;
 }
 #endif /* __powerpc64__ */
@@ -401,7 +401,7 @@
 	return n;
 }
 
-extern unsigned long __clear_user(void __user *addr, unsigned long size);
+unsigned long __arch_clear_user(void __user *addr, unsigned long size);
 
 static inline unsigned long clear_user(void __user *addr, unsigned long size)
 {
@@ -409,12 +409,17 @@
 	might_fault();
 	if (likely(access_ok(addr, size))) {
 		allow_write_to_user(addr, size);
-		ret = __clear_user(addr, size);
+		ret = __arch_clear_user(addr, size);
 		prevent_write_to_user(addr, size);
 	}
 	return ret;
 }
 
+static inline unsigned long __clear_user(void __user *addr, unsigned long size)
+{
+	return clear_user(addr, size);
+}
+
 extern long strncpy_from_user(char *dst, const char __user *src, long count);
 extern __must_check long strnlen_user(const char __user *str, long n);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/vdso_datapage.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/vdso_datapage.h
@@ -82,6 +82,7 @@
 	__s32 wtom_clock_nsec;			/* Wall to monotonic clock nsec */
 	__s64 wtom_clock_sec;			/* Wall to monotonic clock sec */
 	struct timespec stamp_xtime;		/* xtime as at tb_orig_stamp */
+	__u32 hrtimer_res;			/* hrtimer resolution */
    	__u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls  */
    	__u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
 };
@@ -103,6 +104,7 @@
 	__s32 wtom_clock_nsec;
 	struct timespec stamp_xtime;	/* xtime as at tb_orig_stamp */
 	__u32 stamp_sec_fraction;	/* fractional seconds of stamp_xtime */
+	__u32 hrtimer_res;		/* hrtimer resolution */
    	__u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
 	__u32 dcache_block_size;	/* L1 d-cache block size     */
 	__u32 icache_block_size;	/* L1 i-cache block size     */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/include/asm/xive-regs.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/include/asm/xive-regs.h
@@ -39,6 +39,7 @@
 
 #define XIVE_ESB_VAL_P		0x2
 #define XIVE_ESB_VAL_Q		0x1
+#define XIVE_ESB_INVALID	0xFF
 
 /*
  * Thread Management (aka "TM") registers
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/Makefile
@@ -5,9 +5,6 @@
 
 CFLAGS_ptrace.o		+= -DUTS_MACHINE='"$(UTS_MACHINE)"'
 
-# Disable clang warning for using setjmp without setjmp.h header
-CFLAGS_crash.o		+= $(call cc-disable-warning, builtin-requires-header)
-
 ifdef CONFIG_PPC64
 CFLAGS_prom_init.o	+= $(NO_MINIMAL_TOC)
 endif
@@ -22,6 +19,7 @@
 CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 
 CFLAGS_prom_init.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
 
 ifdef CONFIG_FUNCTION_TRACER
 # Do not trace early boot code
@@ -39,7 +37,6 @@
 ifdef CONFIG_KASAN
 CFLAGS_early_32.o += -DDISABLE_BRANCH_PROFILING
 CFLAGS_cputable.o += -DDISABLE_BRANCH_PROFILING
-CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
 CFLAGS_btext.o += -DDISABLE_BRANCH_PROFILING
 endif
 
@@ -161,6 +158,9 @@
 obj-y				+= ucall.o
 endif
 
+obj-$(CONFIG_PPC_SECURE_BOOT)	+= secure_boot.o ima_arch.o secvar-ops.o
+obj-$(CONFIG_PPC_SECVAR_SYSFS)	+= secvar-sysfs.o
+
 # Disable GCOV, KCOV & sanitizers in odd or sensitive code
 GCOV_PROFILE_prom_init.o := n
 KCOV_INSTRUMENT_prom_init.o := n
@@ -184,6 +184,9 @@
 KCOV_INSTRUMENT_setup_64.o := n
 KCOV_INSTRUMENT_paca.o := n
 
+CFLAGS_setup_64.o		+= -fno-stack-protector
+CFLAGS_paca.o			+= -fno-stack-protector
+
 extra-$(CONFIG_PPC_FPU)		+= fpu.o
 extra-$(CONFIG_ALTIVEC)		+= vector.o
 extra-$(CONFIG_PPC64)		+= entry_64.o
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/asm-offsets.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/asm-offsets.c
@@ -285,7 +285,7 @@
 
 	/* Interrupt register frame */
 	DEFINE(INT_FRAME_SIZE, STACK_INT_FRAME_SIZE);
-	DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
+	DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_WITH_PT_REGS);
 	STACK_PT_REGS_OFFSET(GPR0, gpr[0]);
 	STACK_PT_REGS_OFFSET(GPR1, gpr[1]);
 	STACK_PT_REGS_OFFSET(GPR2, gpr[2]);
@@ -387,6 +387,7 @@
 	OFFSET(WTOM_CLOCK_NSEC, vdso_data, wtom_clock_nsec);
 	OFFSET(STAMP_XTIME, vdso_data, stamp_xtime);
 	OFFSET(STAMP_SEC_FRAC, vdso_data, stamp_sec_fraction);
+	OFFSET(CLOCK_HRTIMER_RES, vdso_data, hrtimer_res);
 	OFFSET(CFG_ICACHE_BLOCKSZ, vdso_data, icache_block_size);
 	OFFSET(CFG_DCACHE_BLOCKSZ, vdso_data, dcache_block_size);
 	OFFSET(CFG_ICACHE_LOGBLOCKSZ, vdso_data, icache_log_block_size);
@@ -417,7 +418,6 @@
 	DEFINE(CLOCK_REALTIME_COARSE, CLOCK_REALTIME_COARSE);
 	DEFINE(CLOCK_MONOTONIC_COARSE, CLOCK_MONOTONIC_COARSE);
 	DEFINE(NSEC_PER_SEC, NSEC_PER_SEC);
-	DEFINE(CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
 
 #ifdef CONFIG_BUG
 	DEFINE(BUG_ENTRY_SIZE, sizeof(struct bug_entry));
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/cpu_setup_power.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/cpu_setup_power.S
@@ -184,7 +184,7 @@
 
 __init_FSCR:
 	mfspr	r3,SPRN_FSCR
-	ori	r3,r3,FSCR_TAR|FSCR_DSCR|FSCR_EBB
+	ori	r3,r3,FSCR_TAR|FSCR_EBB
 	mtspr	SPRN_FSCR,r3
 	blr
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/cputable.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/cputable.c
@@ -2193,11 +2193,13 @@
 		 * oprofile_cpu_type already has a value, then we are
 		 * possibly overriding a real PVR with a logical one,
 		 * and, in that case, keep the current value for
-		 * oprofile_cpu_type.
+		 * oprofile_cpu_type. Futhermore, let's ensure that the
+		 * fix for the PMAO bug is enabled on compatibility mode.
 		 */
 		if (old.oprofile_cpu_type != NULL) {
 			t->oprofile_cpu_type = old.oprofile_cpu_type;
 			t->oprofile_type = old.oprofile_type;
+			t->cpu_features |= old.cpu_features & CPU_FTR_PMAO_BUG;
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/dma-iommu.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/dma-iommu.c
@@ -160,7 +160,8 @@
 			return bypass_mask;
 	}
 
-	mask = 1ULL < (fls_long(tbl->it_offset + tbl->it_size) - 1);
+	mask = 1ULL << (fls_long(tbl->it_offset + tbl->it_size) +
+			tbl->it_page_shift - 1);
 	mask += mask - 1;
 
 	return mask;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -139,7 +139,6 @@
 	/* Initialize the base environment -- clear FSCR/HFSCR.  */
 	hv_mode = !!(mfmsr() & MSR_HV);
 	if (hv_mode) {
-		/* CPU_FTR_HVMODE is used early in PACA setup */
 		cur_cpu_spec->cpu_features |= CPU_FTR_HVMODE;
 		mtspr(SPRN_HFSCR, 0);
 	}
@@ -347,6 +346,14 @@
 {
 	u64 lpcr;
 
+	/*
+	 * Linux relies on FSCR[DSCR] being clear, so that we can take the
+	 * facility unavailable interrupt and track the task's usage of DSCR.
+	 * See facility_unavailable_exception().
+	 * Clear the bit here so that feat_enable() doesn't set it.
+	 */
+	f->fscr_bit_nr = -1;
+
 	feat_enable(f);
 
 	lpcr = mfspr(SPRN_LPCR);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/eeh.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/eeh.c
@@ -503,7 +503,7 @@
 	rc = 1;
 	if (pe->state & EEH_PE_ISOLATED) {
 		pe->check_count++;
-		if (pe->check_count % EEH_MAX_FAILS == 0) {
+		if (pe->check_count == EEH_MAX_FAILS) {
 			dn = pci_device_to_OF_node(dev);
 			if (dn)
 				location = of_get_property(dn, "ibm,loc-code",
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/eeh_cache.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/eeh_cache.c
@@ -272,8 +272,9 @@
 {
 	struct pci_io_addr_range *piar;
 	struct rb_node *n;
+	unsigned long flags;
 
-	spin_lock(&pci_io_addr_cache_root.piar_lock);
+	spin_lock_irqsave(&pci_io_addr_cache_root.piar_lock, flags);
 	for (n = rb_first(&pci_io_addr_cache_root.rb_root); n; n = rb_next(n)) {
 		piar = rb_entry(n, struct pci_io_addr_range, rb_node);
 
@@ -281,7 +282,7 @@
 		       (piar->flags & IORESOURCE_IO) ? "i/o" : "mem",
 		       &piar->addr_lo, &piar->addr_hi, pci_name(piar->pcidev));
 	}
-	spin_unlock(&pci_io_addr_cache_root.piar_lock);
+	spin_unlock_irqrestore(&pci_io_addr_cache_root.piar_lock, flags);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/eeh_driver.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/eeh_driver.c
@@ -541,12 +541,6 @@
 
 		pci_iov_remove_virtfn(edev->physfn, pdn->vf_index);
 		edev->pdev = NULL;
-
-		/*
-		 * We have to set the VF PE number to invalid one, which is
-		 * required to plug the VF successfully.
-		 */
-		pdn->pe_number = IODA_INVALID_PE;
 #endif
 		if (rmv_data)
 			list_add(&edev->rmv_entry, &rmv_data->removed_vf_list);
@@ -897,12 +891,12 @@
 
 	/* Log the event */
 	if (pe->type & EEH_PE_PHB) {
-		pr_err("EEH: PHB#%x failure detected, location: %s\n",
+		pr_err("EEH: Recovering PHB#%x, location: %s\n",
 			pe->phb->global_number, eeh_pe_loc_get(pe));
 	} else {
 		struct eeh_pe *phb_pe = eeh_phb_pe_get(pe->phb);
 
-		pr_err("EEH: Frozen PHB#%x-PE#%x detected\n",
+		pr_err("EEH: Recovering PHB#%x-PE#%x\n",
 		       pe->phb->global_number, pe->addr);
 		pr_err("EEH: PE location: %s, PHB location: %s\n",
 		       eeh_pe_loc_get(pe), eeh_pe_loc_get(phb_pe));
@@ -1206,6 +1200,17 @@
 			eeh_pe_state_mark(pe, EEH_PE_RECOVERING);
 			eeh_handle_normal_event(pe);
 		} else {
+			eeh_for_each_pe(pe, tmp_pe)
+				eeh_pe_for_each_dev(tmp_pe, edev, tmp_edev)
+					edev->mode &= ~EEH_DEV_NO_HANDLER;
+
+			/* Notify all devices to be down */
+			eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
+			eeh_set_channel_state(pe, pci_channel_io_perm_failure);
+			eeh_pe_report(
+				"error_detected(permanent failure)", pe,
+				eeh_report_failure, NULL);
+
 			pci_lock_rescan_remove();
 			list_for_each_entry(hose, &hose_list, list_node) {
 				phb_pe = eeh_phb_pe_get(hose);
@@ -1214,16 +1219,6 @@
 				    (phb_pe->state & EEH_PE_RECOVERING))
 					continue;
 
-				eeh_for_each_pe(pe, tmp_pe)
-					eeh_pe_for_each_dev(tmp_pe, edev, tmp_edev)
-						edev->mode &= ~EEH_DEV_NO_HANDLER;
-
-				/* Notify all devices to be down */
-				eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
-				eeh_set_channel_state(pe, pci_channel_io_perm_failure);
-				eeh_pe_report(
-					"error_detected(permanent failure)", pe,
-					eeh_report_failure, NULL);
 				bus = eeh_pe_bus_get(phb_pe);
 				if (!bus) {
 					pr_err("%s: Cannot find PCI bus for "
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/entry_32.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/entry_32.S
@@ -179,7 +179,7 @@
 2:	/* if from kernel, check interrupted DOZE/NAP mode and
          * check for stack overflow
          */
-	kuap_save_and_lock r11, r12, r9, r2, r0
+	kuap_save_and_lock r11, r12, r9, r2, r6
 	addi	r2, r12, -THREAD
 	lwz	r9,KSP_LIMIT(r12)
 	cmplw	r1,r9			/* if r1 <= ksp_limit */
@@ -284,6 +284,7 @@
 	rlwinm	r9,r9,0,~MSR_EE
 	lwz	r12,_LINK(r11)		/* and return to address in LR */
 	kuap_restore r11, r2, r3, r4, r5
+	lwz	r2, GPR2(r11)
 	b	fast_exception_return
 #endif
 
@@ -335,6 +336,9 @@
 
 	.globl	transfer_to_syscall
 transfer_to_syscall:
+#ifdef CONFIG_PPC_BOOK3S_32
+	kuep_lock r11, r12
+#endif
 #ifdef CONFIG_TRACE_IRQFLAGS
 	andi.	r12,r9,MSR_EE
 	beq-	trace_syscall_entry_irq_off
@@ -704,7 +708,7 @@
 	stw	r10,_CCR(r1)
 	stw	r1,KSP(r3)	/* Set old stack pointer */
 
-	kuap_check r2, r4
+	kuap_check r2, r0
 #ifdef CONFIG_SMP
 	/* We need a sync somewhere here to make sure that if the
 	 * previous task gets rescheduled on another CPU, it sees all
@@ -777,7 +781,7 @@
 1:	lis	r3,exc_exit_restart_end@ha
 	addi	r3,r3,exc_exit_restart_end@l
 	cmplw	r12,r3
-#if CONFIG_PPC_BOOK3S_601
+#ifdef CONFIG_PPC_BOOK3S_601
 	bge	2b
 #else
 	bge	3f
@@ -785,7 +789,7 @@
 	lis	r4,exc_exit_restart@ha
 	addi	r4,r4,exc_exit_restart@l
 	cmplw	r12,r4
-#if CONFIG_PPC_BOOK3S_601
+#ifdef CONFIG_PPC_BOOK3S_601
 	blt	2b
 #else
 	blt	3f
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/entry_64.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/entry_64.S
@@ -537,6 +537,7 @@
 	/* Save LR into r9 */
 	mflr	r9
 
+	// Flush the link stack
 	.rept 64
 	bl	.+4
 	.endr
@@ -546,6 +547,11 @@
 	.balign 32
 	/* Restore LR */
 1:	mtlr	r9
+
+	// If we're just flushing the link stack, return here
+3:	nop
+	patch_site 3b patch__flush_link_stack_return
+
 	li	r9,0x7fff
 	mtctr	r9
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/exceptions-64s.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/exceptions-64s.S
@@ -1090,17 +1090,19 @@
 	bl	machine_check_queue_event
 
 	/*
-	 * We have not used any non-volatile GPRs here, and as a rule
-	 * most exception code including machine check does not.
-	 * Therefore PACA_NAPSTATELOST does not need to be set. Idle
-	 * wakeup will restore volatile registers.
+	 * GPR-loss wakeups are relatively straightforward, because the
+	 * idle sleep code has saved all non-volatile registers on its
+	 * own stack, and r1 in PACAR1.
 	 *
-	 * Load the original SRR1 into r3 for pnv_powersave_wakeup_mce.
+	 * For no-loss wakeups the r1 and lr registers used by the
+	 * early machine check handler have to be restored first. r2 is
+	 * the kernel TOC, so no need to restore it.
 	 *
 	 * Then decrement MCE nesting after finishing with the stack.
 	 */
 	ld	r3,_MSR(r1)
 	ld	r4,_LINK(r1)
+	ld	r1,GPR1(r1)
 
 	lhz	r11,PACA_IN_MCE(r13)
 	subi	r11,r11,1
@@ -1109,7 +1111,7 @@
 	mtlr	r4
 	rlwinm	r10,r3,47-31,30,31
 	cmpwi	cr1,r10,2
-	bltlr	cr1	/* no state loss, return to idle caller */
+	bltlr	cr1	/* no state loss, return to idle caller with r3=SRR1 */
 	b	idle_return_gpr_loss
 #endif
 
@@ -1148,7 +1150,7 @@
 	INT_HANDLER data_access, 0x300, ool=1, dar=1, dsisr=1, kvm=1
 EXC_REAL_END(data_access, 0x300, 0x80)
 EXC_VIRT_BEGIN(data_access, 0x4300, 0x80)
-	INT_HANDLER data_access, 0x300, virt=1, dar=1, dsisr=1
+	INT_HANDLER data_access, 0x300, ool=1, virt=1, dar=1, dsisr=1
 EXC_VIRT_END(data_access, 0x4300, 0x80)
 INT_KVM_HANDLER data_access, 0x300, EXC_STD, PACA_EXGEN, 1
 EXC_COMMON_BEGIN(data_access_common)
@@ -1203,7 +1205,7 @@
 
 
 EXC_REAL_BEGIN(instruction_access, 0x400, 0x80)
-	INT_HANDLER instruction_access, 0x400, kvm=1
+	INT_HANDLER instruction_access, 0x400, ool=1, kvm=1
 EXC_REAL_END(instruction_access, 0x400, 0x80)
 EXC_VIRT_BEGIN(instruction_access, 0x4400, 0x80)
 	INT_HANDLER instruction_access, 0x400, virt=1
@@ -1223,7 +1225,7 @@
 
 
 EXC_REAL_BEGIN(instruction_access_slb, 0x480, 0x80)
-	INT_HANDLER instruction_access_slb, 0x480, area=PACA_EXSLB, kvm=1
+	INT_HANDLER instruction_access_slb, 0x480, ool=1, area=PACA_EXSLB, kvm=1
 EXC_REAL_END(instruction_access_slb, 0x480, 0x80)
 EXC_VIRT_BEGIN(instruction_access_slb, 0x4480, 0x80)
 	INT_HANDLER instruction_access_slb, 0x480, virt=1, area=PACA_EXSLB
@@ -1363,17 +1365,17 @@
 	INT_HANDLER decrementer, 0x900, ool=1, bitmask=IRQS_DISABLED, kvm=1
 EXC_REAL_END(decrementer, 0x900, 0x80)
 EXC_VIRT_BEGIN(decrementer, 0x4900, 0x80)
-	INT_HANDLER decrementer, 0x900, virt=1, bitmask=IRQS_DISABLED
+	INT_HANDLER decrementer, 0x900, ool=1, virt=1, bitmask=IRQS_DISABLED
 EXC_VIRT_END(decrementer, 0x4900, 0x80)
 INT_KVM_HANDLER decrementer, 0x900, EXC_STD, PACA_EXGEN, 0
 EXC_COMMON_ASYNC(decrementer_common, 0x900, timer_interrupt)
 
 
 EXC_REAL_BEGIN(hdecrementer, 0x980, 0x80)
-	INT_HANDLER hdecrementer, 0x980, hsrr=EXC_HV, kvm=1
+	INT_HANDLER hdecrementer, 0x980, ool=1, hsrr=EXC_HV, kvm=1
 EXC_REAL_END(hdecrementer, 0x980, 0x80)
 EXC_VIRT_BEGIN(hdecrementer, 0x4980, 0x80)
-	INT_HANDLER hdecrementer, 0x980, virt=1, hsrr=EXC_HV, kvm=1
+	INT_HANDLER hdecrementer, 0x980, ool=1, virt=1, hsrr=EXC_HV, kvm=1
 EXC_VIRT_END(hdecrementer, 0x4980, 0x80)
 INT_KVM_HANDLER hdecrementer, 0x980, EXC_HV, PACA_EXGEN, 0
 EXC_COMMON(hdecrementer_common, 0x980, hdec_interrupt)
@@ -2044,15 +2046,8 @@
 	.endr
 	blr
 
-TRAMP_REAL_BEGIN(rfi_flush_fallback)
-	SET_SCRATCH0(r13);
-	GET_PACA(r13);
-	std	r1,PACA_EXRFI+EX_R12(r13)
-	ld	r1,PACAKSAVE(r13)
-	std	r9,PACA_EXRFI+EX_R9(r13)
-	std	r10,PACA_EXRFI+EX_R10(r13)
-	std	r11,PACA_EXRFI+EX_R11(r13)
-	mfctr	r9
+/* Clobbers r10, r11, ctr */
+.macro L1D_DISPLACEMENT_FLUSH
 	ld	r10,PACA_RFI_FLUSH_FALLBACK_AREA(r13)
 	ld	r11,PACA_L1D_FLUSH_SIZE(r13)
 	srdi	r11,r11,(7 + 3) /* 128 byte lines, unrolled 8x */
@@ -2063,7 +2058,7 @@
 	sync
 
 	/*
-	 * The load adresses are at staggered offsets within cachelines,
+	 * The load addresses are at staggered offsets within cachelines,
 	 * which suits some pipelines better (on others it should not
 	 * hurt).
 	 */
@@ -2078,7 +2073,30 @@
 	ld	r11,(0x80 + 8)*7(r10)
 	addi	r10,r10,0x80*8
 	bdnz	1b
+.endm
 
+TRAMP_REAL_BEGIN(entry_flush_fallback)
+	std	r9,PACA_EXRFI+EX_R9(r13)
+	std	r10,PACA_EXRFI+EX_R10(r13)
+	std	r11,PACA_EXRFI+EX_R11(r13)
+	mfctr	r9
+	L1D_DISPLACEMENT_FLUSH
+	mtctr	r9
+	ld	r9,PACA_EXRFI+EX_R9(r13)
+	ld	r10,PACA_EXRFI+EX_R10(r13)
+	ld	r11,PACA_EXRFI+EX_R11(r13)
+	blr
+
+TRAMP_REAL_BEGIN(rfi_flush_fallback)
+	SET_SCRATCH0(r13);
+	GET_PACA(r13);
+	std	r1,PACA_EXRFI+EX_R12(r13)
+	ld	r1,PACAKSAVE(r13)
+	std	r9,PACA_EXRFI+EX_R9(r13)
+	std	r10,PACA_EXRFI+EX_R10(r13)
+	std	r11,PACA_EXRFI+EX_R11(r13)
+	mfctr	r9
+	L1D_DISPLACEMENT_FLUSH
 	mtctr	r9
 	ld	r9,PACA_EXRFI+EX_R9(r13)
 	ld	r10,PACA_EXRFI+EX_R10(r13)
@@ -2096,32 +2114,7 @@
 	std	r10,PACA_EXRFI+EX_R10(r13)
 	std	r11,PACA_EXRFI+EX_R11(r13)
 	mfctr	r9
-	ld	r10,PACA_RFI_FLUSH_FALLBACK_AREA(r13)
-	ld	r11,PACA_L1D_FLUSH_SIZE(r13)
-	srdi	r11,r11,(7 + 3) /* 128 byte lines, unrolled 8x */
-	mtctr	r11
-	DCBT_BOOK3S_STOP_ALL_STREAM_IDS(r11) /* Stop prefetch streams */
-
-	/* order ld/st prior to dcbt stop all streams with flushing */
-	sync
-
-	/*
-	 * The load adresses are at staggered offsets within cachelines,
-	 * which suits some pipelines better (on others it should not
-	 * hurt).
-	 */
-1:
-	ld	r11,(0x80 + 8)*0(r10)
-	ld	r11,(0x80 + 8)*1(r10)
-	ld	r11,(0x80 + 8)*2(r10)
-	ld	r11,(0x80 + 8)*3(r10)
-	ld	r11,(0x80 + 8)*4(r10)
-	ld	r11,(0x80 + 8)*5(r10)
-	ld	r11,(0x80 + 8)*6(r10)
-	ld	r11,(0x80 + 8)*7(r10)
-	addi	r10,r10,0x80*8
-	bdnz	1b
-
+	L1D_DISPLACEMENT_FLUSH
 	mtctr	r9
 	ld	r9,PACA_EXRFI+EX_R9(r13)
 	ld	r10,PACA_EXRFI+EX_R10(r13)
@@ -2130,6 +2123,19 @@
 	GET_SCRATCH0(r13);
 	hrfid
 
+USE_TEXT_SECTION()
+
+_GLOBAL(do_uaccess_flush)
+	UACCESS_FLUSH_FIXUP_SECTION
+	nop
+	nop
+	nop
+	blr
+	L1D_DISPLACEMENT_FLUSH
+	blr
+_ASM_NOKPROBE_SYMBOL(do_uaccess_flush)
+EXPORT_SYMBOL(do_uaccess_flush)
+
 /*
  * Real mode exceptions actually use this too, but alternate
  * instruction code patches (which end up in the common .text area)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/fadump.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/fadump.c
@@ -38,8 +38,17 @@
 
 #ifndef CONFIG_PRESERVE_FA_DUMP
 static DEFINE_MUTEX(fadump_mutex);
-struct fadump_mrange_info crash_mrange_info = { "crash", NULL, 0, 0, 0 };
-struct fadump_mrange_info reserved_mrange_info = { "reserved", NULL, 0, 0, 0 };
+struct fadump_mrange_info crash_mrange_info = { "crash", NULL, 0, 0, 0, false };
+
+#define RESERVED_RNGS_SZ	16384 /* 16K - 128 entries */
+#define RESERVED_RNGS_CNT	(RESERVED_RNGS_SZ / \
+				 sizeof(struct fadump_memory_range))
+static struct fadump_memory_range rngs[RESERVED_RNGS_CNT];
+struct fadump_mrange_info reserved_mrange_info = { "reserved", rngs,
+						   RESERVED_RNGS_SZ, 0,
+						   RESERVED_RNGS_CNT, true };
+
+static void __init early_init_dt_scan_reserved_ranges(unsigned long node);
 
 #ifdef CONFIG_CMA
 static struct cma *fadump_cma;
@@ -108,6 +117,11 @@
 int __init early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
 				      int depth, void *data)
 {
+	if (depth == 0) {
+		early_init_dt_scan_reserved_ranges(node);
+		return 0;
+	}
+
 	if (depth != 1)
 		return 0;
 
@@ -429,10 +443,72 @@
 	return ret;
 }
 
+/*
+ * Returns true, if the given range overlaps with reserved memory ranges
+ * starting at idx. Also, updates idx to index of overlapping memory range
+ * with the given memory range.
+ * False, otherwise.
+ */
+static bool overlaps_reserved_ranges(u64 base, u64 end, int *idx)
+{
+	bool ret = false;
+	int i;
+
+	for (i = *idx; i < reserved_mrange_info.mem_range_cnt; i++) {
+		u64 rbase = reserved_mrange_info.mem_ranges[i].base;
+		u64 rend = rbase + reserved_mrange_info.mem_ranges[i].size;
+
+		if (end <= rbase)
+			break;
+
+		if ((end > rbase) &&  (base < rend)) {
+			*idx = i;
+			ret = true;
+			break;
+		}
+	}
+
+	return ret;
+}
+
+/*
+ * Locate a suitable memory area to reserve memory for FADump. While at it,
+ * lookup reserved-ranges & avoid overlap with them, as they are used by F/W.
+ */
+static u64 __init fadump_locate_reserve_mem(u64 base, u64 size)
+{
+	struct fadump_memory_range *mrngs;
+	phys_addr_t mstart, mend;
+	int idx = 0;
+	u64 i, ret = 0;
+
+	mrngs = reserved_mrange_info.mem_ranges;
+	for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE,
+				&mstart, &mend, NULL) {
+		pr_debug("%llu) mstart: %llx, mend: %llx, base: %llx\n",
+			 i, mstart, mend, base);
+
+		if (mstart > base)
+			base = PAGE_ALIGN(mstart);
+
+		while ((mend > base) && ((mend - base) >= size)) {
+			if (!overlaps_reserved_ranges(base, base+size, &idx)) {
+				ret = base;
+				goto out;
+			}
+
+			base = mrngs[idx].base + mrngs[idx].size;
+			base = PAGE_ALIGN(base);
+		}
+	}
+
+out:
+	return ret;
+}
+
 int __init fadump_reserve_mem(void)
 {
-	u64 base, size, mem_boundary, bootmem_min, align = PAGE_SIZE;
-	bool is_memblock_bottom_up = memblock_bottom_up();
+	u64 base, size, mem_boundary, bootmem_min;
 	int ret = 1;
 
 	if (!fw_dump.fadump_enabled)
@@ -453,9 +529,9 @@
 			PAGE_ALIGN(fadump_calculate_reserve_size());
 #ifdef CONFIG_CMA
 		if (!fw_dump.nocma) {
-			align = FADUMP_CMA_ALIGNMENT;
 			fw_dump.boot_memory_size =
-				ALIGN(fw_dump.boot_memory_size, align);
+				ALIGN(fw_dump.boot_memory_size,
+				      FADUMP_CMA_ALIGNMENT);
 		}
 #endif
 
@@ -523,13 +599,9 @@
 		 * Reserve memory at an offset closer to bottom of the RAM to
 		 * minimize the impact of memory hot-remove operation.
 		 */
-		memblock_set_bottom_up(true);
-		base = memblock_find_in_range(base, mem_boundary, size, align);
+		base = fadump_locate_reserve_mem(base, size);
 
-		/* Restore the previous allocation mode */
-		memblock_set_bottom_up(is_memblock_bottom_up);
-
-		if (!base) {
+		if (!base || (base + size > mem_boundary)) {
 			pr_err("Failed to find memory chunk for reservation!\n");
 			goto error_out;
 		}
@@ -726,10 +798,14 @@
 
 static void fadump_free_mem_ranges(struct fadump_mrange_info *mrange_info)
 {
+	if (mrange_info->is_static) {
+		mrange_info->mem_range_cnt = 0;
+		return;
+	}
+
 	kfree(mrange_info->mem_ranges);
-	mrange_info->mem_ranges = NULL;
-	mrange_info->mem_ranges_sz = 0;
-	mrange_info->max_mem_ranges = 0;
+	memset((void *)((u64)mrange_info + RNG_NAME_SZ), 0,
+	       (sizeof(struct fadump_mrange_info) - RNG_NAME_SZ));
 }
 
 /*
@@ -786,6 +862,12 @@
 		if (mrange_info->mem_range_cnt == mrange_info->max_mem_ranges) {
 			int ret;
 
+			if (mrange_info->is_static) {
+				pr_err("Reached array size limit for %s memory ranges\n",
+				       mrange_info->name);
+				return -ENOSPC;
+			}
+
 			ret = fadump_alloc_mem_ranges(mrange_info);
 			if (ret)
 				return ret;
@@ -1202,20 +1284,19 @@
  * Scan reserved-ranges to consider them while reserving/releasing
  * memory for FADump.
  */
-static inline int fadump_scan_reserved_mem_ranges(void)
+static void __init early_init_dt_scan_reserved_ranges(unsigned long node)
 {
-	struct device_node *root;
 	const __be32 *prop;
 	int len, ret = -1;
 	unsigned long i;
 
-	root = of_find_node_by_path("/");
-	if (!root)
-		return ret;
+	/* reserved-ranges already scanned */
+	if (reserved_mrange_info.mem_range_cnt != 0)
+		return;
 
-	prop = of_get_property(root, "reserved-ranges", &len);
+	prop = of_get_flat_dt_prop(node, "reserved-ranges", &len);
 	if (!prop)
-		return ret;
+		return;
 
 	/*
 	 * Each reserved range is an (address,size) pair, 2 cells each,
@@ -1237,7 +1318,8 @@
 		}
 	}
 
-	return ret;
+	/* Compact reserved ranges */
+	sort_and_merge_mem_ranges(&reserved_mrange_info);
 }
 
 /*
@@ -1251,32 +1333,21 @@
 	u64 ra_start, ra_end, tstart;
 	int i, ret;
 
-	fadump_scan_reserved_mem_ranges();
-
 	ra_start = fw_dump.reserve_dump_area_start;
 	ra_end = ra_start + fw_dump.reserve_dump_area_size;
 
 	/*
-	 * Add reserved dump area to reserved ranges list
-	 * and exclude all these ranges while releasing memory.
+	 * If reserved ranges array limit is hit, overwrite the last reserved
+	 * memory range with reserved dump area to ensure it is excluded from
+	 * the memory being released (reused for next FADump registration).
 	 */
-	ret = fadump_add_mem_range(&reserved_mrange_info, ra_start, ra_end);
-	if (ret != 0) {
-		/*
-		 * Not enough memory to setup reserved ranges but the system is
-		 * running shortage of memory. So, release all the memory except
-		 * Reserved dump area (reused for next fadump registration).
-		 */
-		if (begin < ra_end && end > ra_start) {
-			if (begin < ra_start)
-				fadump_release_reserved_area(begin, ra_start);
-			if (end > ra_end)
-				fadump_release_reserved_area(ra_end, end);
-		} else
-			fadump_release_reserved_area(begin, end);
+	if (reserved_mrange_info.mem_range_cnt ==
+	    reserved_mrange_info.max_mem_ranges)
+		reserved_mrange_info.mem_range_cnt--;
 
+	ret = fadump_add_mem_range(&reserved_mrange_info, ra_start, ra_end);
+	if (ret != 0)
 		return;
-	}
 
 	/* Get the reserved ranges list in order first. */
 	sort_and_merge_mem_ranges(&reserved_mrange_info);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/head_32.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/head_32.S
@@ -418,14 +418,11 @@
 	cmplw	0,r1,r3
 #endif
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
-	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
-#else
-	li	r1,_PAGE_PRESENT | _PAGE_EXEC
-#endif
+	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC | _PAGE_USER
 #if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC)
 	bge-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
+	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
 #endif
 112:	rlwimi	r2,r3,12,20,29		/* insert top 10 bits of address */
@@ -484,13 +481,10 @@
 	lis	r1,PAGE_OFFSET@h		/* check if kernel address */
 	cmplw	0,r1,r3
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
-	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED
-#else
-	li	r1, _PAGE_PRESENT
-#endif
+	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER
 	bge-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
+	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
 112:	rlwimi	r2,r3,12,20,29		/* insert top 10 bits of address */
 	lwz	r2,0(r2)		/* get pmd entry */
@@ -564,13 +558,10 @@
 	lis	r1,PAGE_OFFSET@h		/* check if kernel address */
 	cmplw	0,r1,r3
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
-	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
-#else
-	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT
-#endif
+	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER
 	bge-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
+	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
 112:	rlwimi	r2,r3,12,20,29		/* insert top 10 bits of address */
 	lwz	r2,0(r2)		/* get pmd entry */
@@ -843,7 +834,7 @@
 END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS)
 	blr
 
-load_segment_registers:
+_GLOBAL(load_segment_registers)
 	li	r0, NUM_USER_SEGMENTS /* load up user segment register values */
 	mtctr	r0		/* for context 0 */
 	li	r3, 0		/* Kp = 0, Ks = 0, VSID = 0 */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/head_64.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/head_64.S
@@ -420,6 +420,10 @@
 	/* From now on, r24 is expected to be logical cpuid */
 	mr	r24,r5
 
+	/* Create a temp kernel stack for use before relocation is on.	*/
+	ld	r1,PACAEMERGSP(r13)
+	subi	r1,r1,STACK_FRAME_OVERHEAD
+
 	/* See if we need to call a cpu state restore handler */
 	LOAD_REG_ADDR(r23, cur_cpu_spec)
 	ld	r23,0(r23)
@@ -448,10 +452,6 @@
 	sync				/* order paca.run and cur_cpu_spec */
 	isync				/* In case code patching happened */
 
-	/* Create a temp kernel stack for use before relocation is on.	*/
-	ld	r1,PACAEMERGSP(r13)
-	subi	r1,r1,STACK_FRAME_OVERHEAD
-
 	b	__secondary_start
 #endif /* SMP */
 
@@ -945,15 +945,8 @@
 	std	r0,0(r4)
 #endif
 
-	/* The following gets the stack set up with the regs */
-	/* pointing to the real addr of the kernel stack.  This is   */
-	/* all done to support the C function call below which sets  */
-	/* up the htab.  This is done because we have relocated the  */
-	/* kernel but are still running in real mode. */
-
-	LOAD_REG_ADDR(r3,init_thread_union)
-
 	/* set up a stack pointer */
+	LOAD_REG_ADDR(r3,init_thread_union)
 	LOAD_REG_IMMEDIATE(r1,THREAD_SIZE)
 	add	r1,r3,r1
 	li	r0,0
@@ -999,7 +992,7 @@
 	bl	start_kernel
 
 	/* Not reached */
-	trap
+0:	trap
 	EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/head_8xx.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/head_8xx.S
@@ -191,7 +191,7 @@
 /* On the MPC8xx, this is a software emulation interrupt.  It occurs
  * for all unimplemented and illegal instructions.
  */
-	EXCEPTION(0x1000, SoftEmu, program_check_exception, EXC_XFER_STD)
+	EXCEPTION(0x1000, SoftEmu, emulation_assist_interrupt, EXC_XFER_STD)
 
 /* Called from DataStoreTLBMiss when perf TLB misses events are activated */
 #ifdef CONFIG_PERF_EVENTS
@@ -229,9 +229,7 @@
 
 InstructionTLBMiss:
 	mtspr	SPRN_SPRG_SCRATCH0, r10
-#if defined(ITLB_MISS_KERNEL) || defined(CONFIG_SWAP)
 	mtspr	SPRN_SPRG_SCRATCH1, r11
-#endif
 
 	/* If we are faulting a kernel address, we have to use the
 	 * kernel page tables.
@@ -278,27 +276,23 @@
 #ifdef ITLB_MISS_KERNEL
 	mtcr	r11
 #endif
-#ifdef CONFIG_SWAP
-	rlwinm	r11, r10, 32-5, _PAGE_PRESENT
+	rlwinm	r11, r10, 32-7, _PAGE_PRESENT
 	and	r11, r11, r10
 	rlwimi	r10, r11, 0, _PAGE_PRESENT
-#endif
 	/* The Linux PTE won't go exactly into the MMU TLB.
 	 * Software indicator bits 20 and 23 must be clear.
 	 * Software indicator bits 22, 24, 25, 26, and 27 must be
 	 * set.  All other Linux PTE bits control the behavior
 	 * of the MMU.
 	 */
-	rlwimi	r10, r10, 0, 0x0f00	/* Clear bits 20-23 */
+	rlwinm	r10, r10, 0, ~0x0f00	/* Clear bits 20-23 */
 	rlwimi	r10, r10, 4, 0x0400	/* Copy _PAGE_EXEC into bit 21 */
 	ori	r10, r10, RPN_PATTERN | 0x200 /* Set 22 and 24-27 */
 	mtspr	SPRN_MI_RPN, r10	/* Update TLB entry */
 
 	/* Restore registers */
 0:	mfspr	r10, SPRN_SPRG_SCRATCH0
-#if defined(ITLB_MISS_KERNEL) || defined(CONFIG_SWAP)
 	mfspr	r11, SPRN_SPRG_SCRATCH1
-#endif
 	rfi
 	patch_site	0b, patch__itlbmiss_exit_1
 
@@ -308,9 +302,7 @@
 	addi	r10, r10, 1
 	stw	r10, (itlb_miss_counter - PAGE_OFFSET)@l(0)
 	mfspr	r10, SPRN_SPRG_SCRATCH0
-#if defined(ITLB_MISS_KERNEL) || defined(CONFIG_SWAP)
 	mfspr	r11, SPRN_SPRG_SCRATCH1
-#endif
 	rfi
 #endif
 
@@ -394,11 +386,9 @@
 	 * r11 = ((r10 & PRESENT) & ((r10 & ACCESSED) >> 5));
 	 * r10 = (r10 & ~PRESENT) | r11;
 	 */
-#ifdef CONFIG_SWAP
-	rlwinm	r11, r10, 32-5, _PAGE_PRESENT
+	rlwinm	r11, r10, 32-7, _PAGE_PRESENT
 	and	r11, r11, r10
 	rlwimi	r10, r11, 0, _PAGE_PRESENT
-#endif
 	/* The Linux PTE won't go exactly into the MMU TLB.
 	 * Software indicator bits 24, 25, 26, and 27 must be
 	 * set.  All other Linux PTE bits control the behavior
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/head_fsl_booke.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/head_fsl_booke.S
@@ -238,6 +238,9 @@
 
 	bl	early_init
 
+#ifdef CONFIG_KASAN
+	bl	kasan_early_init
+#endif
 #ifdef CONFIG_RELOCATABLE
 	mr	r3,r30
 	mr	r4,r31
@@ -264,9 +267,6 @@
 /*
  * Decide what sort of machine this is and initialize the MMU.
  */
-#ifdef CONFIG_KASAN
-	bl	kasan_early_init
-#endif
 	mr	r3,r30
 	mr	r4,r31
 	bl	machine_init
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/ima_arch.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/ima_arch.c
@@ -0,0 +1,78 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ */
+
+#include <linux/ima.h>
+#include <asm/secure_boot.h>
+
+bool arch_ima_get_secureboot(void)
+{
+	return is_ppc_secureboot_enabled();
+}
+
+/*
+ * The "secure_rules" are enabled only on "secureboot" enabled systems.
+ * These rules verify the file signatures against known good values.
+ * The "appraise_type=imasig|modsig" option allows the known good signature
+ * to be stored as an xattr or as an appended signature.
+ *
+ * To avoid duplicate signature verification as much as possible, the IMA
+ * policy rule for module appraisal is added only if CONFIG_MODULE_SIG
+ * is not enabled.
+ */
+static const char *const secure_rules[] = {
+	"appraise func=KEXEC_KERNEL_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#ifndef CONFIG_MODULE_SIG
+	"appraise func=MODULE_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#endif
+	NULL
+};
+
+/*
+ * The "trusted_rules" are enabled only on "trustedboot" enabled systems.
+ * These rules add the kexec kernel image and kernel modules file hashes to
+ * the IMA measurement list.
+ */
+static const char *const trusted_rules[] = {
+	"measure func=KEXEC_KERNEL_CHECK",
+	"measure func=MODULE_CHECK",
+	NULL
+};
+
+/*
+ * The "secure_and_trusted_rules" contains rules for both the secure boot and
+ * trusted boot. The "template=ima-modsig" option includes the appended
+ * signature, when available, in the IMA measurement list.
+ */
+static const char *const secure_and_trusted_rules[] = {
+	"measure func=KEXEC_KERNEL_CHECK template=ima-modsig",
+	"measure func=MODULE_CHECK template=ima-modsig",
+	"appraise func=KEXEC_KERNEL_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#ifndef CONFIG_MODULE_SIG
+	"appraise func=MODULE_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#endif
+	NULL
+};
+
+/*
+ * Returns the relevant IMA arch-specific policies based on the system secure
+ * boot state.
+ */
+const char *const *arch_get_ima_policy(void)
+{
+	if (is_ppc_secureboot_enabled()) {
+		if (IS_ENABLED(CONFIG_MODULE_SIG))
+			set_module_sig_enforced();
+
+		if (is_ppc_trustedboot_enabled())
+			return secure_and_trusted_rules;
+		else
+			return secure_rules;
+	} else if (is_ppc_trustedboot_enabled()) {
+		return trusted_rules;
+	}
+
+	return NULL;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/irq.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/irq.c
@@ -619,8 +619,6 @@
 
 	trace_irq_entry(regs);
 
-	check_stack_overflow();
-
 	/*
 	 * Query the platform PIC for the interrupt & ack it.
 	 *
@@ -652,6 +650,8 @@
 	irqsp = hardirq_ctx[raw_smp_processor_id()];
 	sirqsp = softirq_ctx[raw_smp_processor_id()];
 
+	check_stack_overflow();
+
 	/* Already there ? */
 	if (unlikely(cursp == irqsp || cursp == sirqsp)) {
 		__do_irq(regs);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/kprobes.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/kprobes.c
@@ -264,6 +264,9 @@
 	if (user_mode(regs))
 		return 0;
 
+	if (!(regs->msr & MSR_IR) || !(regs->msr & MSR_DR))
+		return 0;
+
 	/*
 	 * We don't want to be preempted for the entire
 	 * duration of kprobe processing
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/machine_kexec.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/machine_kexec.c
@@ -114,11 +114,12 @@
 
 void __init reserve_crashkernel(void)
 {
-	unsigned long long crash_size, crash_base;
+	unsigned long long crash_size, crash_base, total_mem_sz;
 	int ret;
 
+	total_mem_sz = memory_limit ? memory_limit : memblock_phys_mem_size();
 	/* use common parsing */
-	ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
+	ret = parse_crashkernel(boot_command_line, total_mem_sz,
 			&crash_size, &crash_base);
 	if (ret == 0 && crash_size > 0) {
 		crashk_res.start = crash_base;
@@ -177,6 +178,7 @@
 	/* Crash kernel trumps memory limit */
 	if (memory_limit && memory_limit <= crashk_res.end) {
 		memory_limit = crashk_res.end + 1;
+		total_mem_sz = memory_limit;
 		printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
 		       memory_limit);
 	}
@@ -185,7 +187,7 @@
 			"for crashkernel (System RAM: %ldMB)\n",
 			(unsigned long)(crash_size >> 20),
 			(unsigned long)(crashk_res.start >> 20),
-			(unsigned long)(memblock_phys_mem_size() >> 20));
+			(unsigned long)(total_mem_sz >> 20));
 
 	if (!memblock_is_region_memory(crashk_res.start, crash_size) ||
 	    memblock_reserve(crashk_res.start, crash_size)) {
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/misc_32.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/misc_32.S
@@ -317,126 +317,6 @@
 #endif /* CONFIG_PPC_8xx */
 
 /*
- * Write any modified data cache blocks out to memory
- * and invalidate the corresponding instruction cache blocks.
- * This is a no-op on the 601.
- *
- * flush_icache_range(unsigned long start, unsigned long stop)
- */
-_GLOBAL(flush_icache_range)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
-	PURGE_PREFETCHED_INS
-	blr				/* for 601 and e200, do nothing */
-#else
-	rlwinm	r3,r3,0,0,31 - L1_CACHE_SHIFT
-	subf	r4,r3,r4
-	addi	r4,r4,L1_CACHE_BYTES - 1
-	srwi.	r4,r4,L1_CACHE_SHIFT
-	beqlr
-	mtctr	r4
-	mr	r6,r3
-1:	dcbst	0,r3
-	addi	r3,r3,L1_CACHE_BYTES
-	bdnz	1b
-	sync				/* wait for dcbst's to get to ram */
-#ifndef CONFIG_44x
-	mtctr	r4
-2:	icbi	0,r6
-	addi	r6,r6,L1_CACHE_BYTES
-	bdnz	2b
-#else
-	/* Flash invalidate on 44x because we are passed kmapped addresses and
-	   this doesn't work for userspace pages due to the virtually tagged
-	   icache.  Sigh. */
-	iccci	0, r0
-#endif
-	sync				/* additional sync needed on g4 */
-	isync
-	blr
-#endif
-_ASM_NOKPROBE_SYMBOL(flush_icache_range)
-EXPORT_SYMBOL(flush_icache_range)
-
-/*
- * Flush a particular page from the data cache to RAM.
- * Note: this is necessary because the instruction cache does *not*
- * snoop from the data cache.
- * This is a no-op on the 601 and e200 which have a unified cache.
- *
- *	void __flush_dcache_icache(void *page)
- */
-_GLOBAL(__flush_dcache_icache)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
-	PURGE_PREFETCHED_INS
-	blr
-#else
-	rlwinm	r3,r3,0,0,31-PAGE_SHIFT		/* Get page base address */
-	li	r4,PAGE_SIZE/L1_CACHE_BYTES	/* Number of lines in a page */
-	mtctr	r4
-	mr	r6,r3
-0:	dcbst	0,r3				/* Write line to ram */
-	addi	r3,r3,L1_CACHE_BYTES
-	bdnz	0b
-	sync
-#ifdef CONFIG_44x
-	/* We don't flush the icache on 44x. Those have a virtual icache
-	 * and we don't have access to the virtual address here (it's
-	 * not the page vaddr but where it's mapped in user space). The
-	 * flushing of the icache on these is handled elsewhere, when
-	 * a change in the address space occurs, before returning to
-	 * user space
-	 */
-BEGIN_MMU_FTR_SECTION
-	blr
-END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_44x)
-#endif /* CONFIG_44x */
-	mtctr	r4
-1:	icbi	0,r6
-	addi	r6,r6,L1_CACHE_BYTES
-	bdnz	1b
-	sync
-	isync
-	blr
-#endif
-
-#ifndef CONFIG_BOOKE
-/*
- * Flush a particular page from the data cache to RAM, identified
- * by its physical address.  We turn off the MMU so we can just use
- * the physical address (this may be a highmem page without a kernel
- * mapping).
- *
- *	void __flush_dcache_icache_phys(unsigned long physaddr)
- */
-_GLOBAL(__flush_dcache_icache_phys)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
-	PURGE_PREFETCHED_INS
-	blr					/* for 601 and e200, do nothing */
-#else
-	mfmsr	r10
-	rlwinm	r0,r10,0,28,26			/* clear DR */
-	mtmsr	r0
-	isync
-	rlwinm	r3,r3,0,0,31-PAGE_SHIFT		/* Get page base address */
-	li	r4,PAGE_SIZE/L1_CACHE_BYTES	/* Number of lines in a page */
-	mtctr	r4
-	mr	r6,r3
-0:	dcbst	0,r3				/* Write line to ram */
-	addi	r3,r3,L1_CACHE_BYTES
-	bdnz	0b
-	sync
-	mtctr	r4
-1:	icbi	0,r6
-	addi	r6,r6,L1_CACHE_BYTES
-	bdnz	1b
-	sync
-	mtmsr	r10				/* restore DR */
-	isync
-	blr
-#endif
-#endif /* CONFIG_BOOKE */
-
-/*
  * Copy a whole page.  We use the dcbz instruction on the destination
  * to reduce memory traffic (it eliminates the unnecessary reads of
  * the destination into cache).  This requires that the destination
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/misc_64.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/misc_64.S
@@ -49,108 +49,6 @@
 	mtlr	r0
 	blr
 
-	.section	".toc","aw"
-PPC64_CACHES:
-	.tc		ppc64_caches[TC],ppc64_caches
-	.section	".text"
-
-/*
- * Write any modified data cache blocks out to memory
- * and invalidate the corresponding instruction cache blocks.
- *
- * flush_icache_range(unsigned long start, unsigned long stop)
- *
- *   flush all bytes from start through stop-1 inclusive
- */
-
-_GLOBAL_TOC(flush_icache_range)
-BEGIN_FTR_SECTION
-	PURGE_PREFETCHED_INS
-	blr
-END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-/*
- * Flush the data cache to memory 
- * 
- * Different systems have different cache line sizes
- * and in some cases i-cache and d-cache line sizes differ from
- * each other.
- */
- 	ld	r10,PPC64_CACHES@toc(r2)
-	lwz	r7,DCACHEL1BLOCKSIZE(r10)/* Get cache block size */
-	addi	r5,r7,-1
-	andc	r6,r3,r5		/* round low to line bdy */
-	subf	r8,r6,r4		/* compute length */
-	add	r8,r8,r5		/* ensure we get enough */
-	lwz	r9,DCACHEL1LOGBLOCKSIZE(r10)	/* Get log-2 of cache block size */
-	srw.	r8,r8,r9		/* compute line count */
-	beqlr				/* nothing to do? */
-	mtctr	r8
-1:	dcbst	0,r6
-	add	r6,r6,r7
-	bdnz	1b
-	sync
-
-/* Now invalidate the instruction cache */
-	
-	lwz	r7,ICACHEL1BLOCKSIZE(r10)	/* Get Icache block size */
-	addi	r5,r7,-1
-	andc	r6,r3,r5		/* round low to line bdy */
-	subf	r8,r6,r4		/* compute length */
-	add	r8,r8,r5
-	lwz	r9,ICACHEL1LOGBLOCKSIZE(r10)	/* Get log-2 of Icache block size */
-	srw.	r8,r8,r9		/* compute line count */
-	beqlr				/* nothing to do? */
-	mtctr	r8
-2:	icbi	0,r6
-	add	r6,r6,r7
-	bdnz	2b
-	isync
-	blr
-_ASM_NOKPROBE_SYMBOL(flush_icache_range)
-EXPORT_SYMBOL(flush_icache_range)
-
-/*
- * Flush a particular page from the data cache to RAM.
- * Note: this is necessary because the instruction cache does *not*
- * snoop from the data cache.
- *
- *	void __flush_dcache_icache(void *page)
- */
-_GLOBAL(__flush_dcache_icache)
-/*
- * Flush the data cache to memory 
- * 
- * Different systems have different cache line sizes
- */
-
-BEGIN_FTR_SECTION
-	PURGE_PREFETCHED_INS
-	blr
-END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-
-/* Flush the dcache */
- 	ld	r7,PPC64_CACHES@toc(r2)
-	clrrdi	r3,r3,PAGE_SHIFT           	    /* Page align */
-	lwz	r4,DCACHEL1BLOCKSPERPAGE(r7)	/* Get # dcache blocks per page */
-	lwz	r5,DCACHEL1BLOCKSIZE(r7)	/* Get dcache block size */
-	mr	r6,r3
-	mtctr	r4
-0:	dcbst	0,r6
-	add	r6,r6,r5
-	bdnz	0b
-	sync
-
-/* Now invalidate the icache */	
-
-	lwz	r4,ICACHEL1BLOCKSPERPAGE(r7)	/* Get # icache blocks per page */
-	lwz	r5,ICACHEL1BLOCKSIZE(r7)	/* Get icache block size */
-	mtctr	r4
-1:	icbi	0,r3
-	add	r3,r3,r5
-	bdnz	1b
-	isync
-	blr
-
 _GLOBAL(__bswapdi2)
 EXPORT_SYMBOL(__bswapdi2)
 	srdi	r8,r3,32
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/paca.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/paca.c
@@ -86,7 +86,7 @@
 	 * This is very early in boot, so no harm done if the kernel crashes at
 	 * this point.
 	 */
-	BUG_ON(shared_lppaca_size >= shared_lppaca_total_size);
+	BUG_ON(shared_lppaca_size > shared_lppaca_total_size);
 
 	return ptr;
 }
@@ -214,11 +214,15 @@
 	/* On Book3E, initialize the TLB miss exception frames */
 	mtspr(SPRN_SPRG_TLB_EXFRAME, local_paca->extlb);
 #else
-	/* In HV mode, we setup both HPACA and PACA to avoid problems
+	/*
+	 * In HV mode, we setup both HPACA and PACA to avoid problems
 	 * if we do a GET_PACA() before the feature fixups have been
-	 * applied
+	 * applied.
+	 *
+	 * Normally you should test against CPU_FTR_HVMODE, but CPU features
+	 * are not yet set up when we first reach here.
 	 */
-	if (early_cpu_has_feature(CPU_FTR_HVMODE))
+	if (mfmsr() & MSR_HV)
 		mtspr(SPRN_SPRG_HPACA, local_paca);
 #endif
 	mtspr(SPRN_SPRG_PACA, local_paca);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/pci-common.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/pci-common.c
@@ -347,6 +347,7 @@
 	}
 	return NULL;
 }
+EXPORT_SYMBOL(pci_find_hose_for_OF_device);
 
 struct pci_controller *pci_find_controller_for_domain(int domain_nr)
 {
@@ -1577,6 +1578,7 @@
 {
 	return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap);
 }
+EXPORT_SYMBOL_GPL(early_find_capability);
 
 struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus)
 {
@@ -1669,3 +1671,13 @@
 }
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl);
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl);
+
+
+static int __init discover_phbs(void)
+{
+	if (ppc_md.discover_phbs)
+		ppc_md.discover_phbs();
+
+	return 0;
+}
+core_initcall(discover_phbs);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/pci_dn.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/pci_dn.c
@@ -244,9 +244,22 @@
 				continue;
 
 #ifdef CONFIG_EEH
-			/* Release EEH device for the VF */
+			/*
+			 * Release EEH state for this VF. The PCI core
+			 * has already torn down the pci_dev for this VF, but
+			 * we're responsible to removing the eeh_dev since it
+			 * has the same lifetime as the pci_dn that spawned it.
+			 */
 			edev = pdn_to_eeh_dev(pdn);
 			if (edev) {
+				/*
+				 * We allocate pci_dn's for the totalvfs count,
+				 * but only only the vfs that were activated
+				 * have a configured PE.
+				 */
+				if (edev->pe)
+					eeh_rmv_from_parent_pe(edev);
+
 				pdn->edev = NULL;
 				kfree(edev);
 			}
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/process.c
@@ -1218,29 +1218,31 @@
 static void show_instructions(struct pt_regs *regs)
 {
 	int i;
+	unsigned long nip = regs->nip;
 	unsigned long pc = regs->nip - (NR_INSN_TO_PRINT * 3 / 4 * sizeof(int));
 
 	printk("Instruction dump:");
 
+	/*
+	 * If we were executing with the MMU off for instructions, adjust pc
+	 * rather than printing XXXXXXXX.
+	 */
+	if (!IS_ENABLED(CONFIG_BOOKE) && !(regs->msr & MSR_IR)) {
+		pc = (unsigned long)phys_to_virt(pc);
+		nip = (unsigned long)phys_to_virt(regs->nip);
+	}
+
 	for (i = 0; i < NR_INSN_TO_PRINT; i++) {
 		int instr;
 
 		if (!(i % 8))
 			pr_cont("\n");
 
-#if !defined(CONFIG_BOOKE)
-		/* If executing with the IMMU off, adjust pc rather
-		 * than print XXXXXXXX.
-		 */
-		if (!(regs->msr & MSR_IR))
-			pc = (unsigned long)phys_to_virt(pc);
-#endif
-
 		if (!__kernel_text_address(pc) ||
 		    probe_kernel_address((const void *)pc, instr)) {
 			pr_cont("XXXXXXXX ");
 		} else {
-			if (regs->nip == pc)
+			if (nip == pc)
 				pr_cont("<%08x> ", instr);
 			else
 				pr_cont("%08x ", instr);
@@ -2079,7 +2081,7 @@
 		 * See if this is an exception frame.
 		 * We look for the "regshere" marker in the current frame.
 		 */
-		if (validate_sp(sp, tsk, STACK_INT_FRAME_SIZE)
+		if (validate_sp(sp, tsk, STACK_FRAME_WITH_PT_REGS)
 		    && stack[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) {
 			struct pt_regs *regs = (struct pt_regs *)
 				(sp + STACK_FRAME_OVERHEAD);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/prom.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/prom.c
@@ -685,6 +685,23 @@
 static void tm_init(void) { }
 #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
 
+#ifdef CONFIG_PPC64
+static void __init save_fscr_to_task(void)
+{
+	/*
+	 * Ensure the init_task (pid 0, aka swapper) uses the value of FSCR we
+	 * have configured via the device tree features or via __init_FSCR().
+	 * That value will then be propagated to pid 1 (init) and all future
+	 * processes.
+	 */
+	if (early_cpu_has_feature(CPU_FTR_ARCH_207S))
+		init_task.thread.fscr = mfspr(SPRN_FSCR);
+}
+#else
+static inline void save_fscr_to_task(void) {};
+#endif
+
+
 void __init early_init_devtree(void *params)
 {
 	phys_addr_t limit;
@@ -773,6 +790,8 @@
 		BUG();
 	}
 
+	save_fscr_to_task();
+
 #if defined(CONFIG_SMP) && defined(CONFIG_PPC64)
 	/* We'll later wait for secondaries to check in; there are
 	 * NCPUS-1 non-boot CPUs  :-)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/prom_init.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/prom_init.c
@@ -1053,7 +1053,7 @@
 		.reserved2 = 0,
 		.reserved3 = 0,
 		.subprocessors = 1,
-		.byte22 = OV5_FEAT(OV5_DRMEM_V2),
+		.byte22 = OV5_FEAT(OV5_DRMEM_V2) | OV5_FEAT(OV5_DRC_INFO),
 		.intarch = 0,
 		.mmu = 0,
 		.hash_ext = 0,
@@ -1305,14 +1305,10 @@
 		if (prop_len > sizeof(vec))
 			prom_printf("WARNING: ibm,arch-vec-5-platform-support longer than expected (len: %d)\n",
 				    prop_len);
-		prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support",
-			     &vec, sizeof(vec));
-		for (i = 0; i < sizeof(vec); i += 2) {
-			prom_debug("%d: index = 0x%x val = 0x%x\n", i / 2
-								  , vec[i]
-								  , vec[i + 1]);
-			prom_parse_platform_support(vec[i], vec[i + 1],
-						    &supported);
+		prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support", &vec, sizeof(vec));
+		for (i = 0; i < prop_len; i += 2) {
+			prom_debug("%d: index = 0x%x val = 0x%x\n", i / 2, vec[i], vec[i + 1]);
+			prom_parse_platform_support(vec[i], vec[i + 1], &supported);
 		}
 	}
 
@@ -1761,6 +1757,9 @@
 	if (token == 0)
 		prom_panic("Could not get token for ibm,os-term\n");
 	os_term_args.token = cpu_to_be32(token);
+	os_term_args.nargs = cpu_to_be32(1);
+	os_term_args.nret = cpu_to_be32(1);
+	os_term_args.args[0] = cpu_to_be32(__pa(str));
 	prom_rtas_hcall((uint64_t)&os_term_args);
 }
 #endif /* CONFIG_PPC_SVM */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/rtas.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/rtas.c
@@ -842,96 +842,6 @@
 	__rtas_suspend_cpu((struct rtas_suspend_me_data *)info, 1);
 }
 
-enum rtas_cpu_state {
-	DOWN,
-	UP,
-};
-
-#ifndef CONFIG_SMP
-static int rtas_cpu_state_change_mask(enum rtas_cpu_state state,
-				cpumask_var_t cpus)
-{
-	if (!cpumask_empty(cpus)) {
-		cpumask_clear(cpus);
-		return -EINVAL;
-	} else
-		return 0;
-}
-#else
-/* On return cpumask will be altered to indicate CPUs changed.
- * CPUs with states changed will be set in the mask,
- * CPUs with status unchanged will be unset in the mask. */
-static int rtas_cpu_state_change_mask(enum rtas_cpu_state state,
-				cpumask_var_t cpus)
-{
-	int cpu;
-	int cpuret = 0;
-	int ret = 0;
-
-	if (cpumask_empty(cpus))
-		return 0;
-
-	for_each_cpu(cpu, cpus) {
-		struct device *dev = get_cpu_device(cpu);
-
-		switch (state) {
-		case DOWN:
-			cpuret = device_offline(dev);
-			break;
-		case UP:
-			cpuret = device_online(dev);
-			break;
-		}
-		if (cpuret < 0) {
-			pr_debug("%s: cpu_%s for cpu#%d returned %d.\n",
-					__func__,
-					((state == UP) ? "up" : "down"),
-					cpu, cpuret);
-			if (!ret)
-				ret = cpuret;
-			if (state == UP) {
-				/* clear bits for unchanged cpus, return */
-				cpumask_shift_right(cpus, cpus, cpu);
-				cpumask_shift_left(cpus, cpus, cpu);
-				break;
-			} else {
-				/* clear bit for unchanged cpu, continue */
-				cpumask_clear_cpu(cpu, cpus);
-			}
-		}
-		cond_resched();
-	}
-
-	return ret;
-}
-#endif
-
-int rtas_online_cpus_mask(cpumask_var_t cpus)
-{
-	int ret;
-
-	ret = rtas_cpu_state_change_mask(UP, cpus);
-
-	if (ret) {
-		cpumask_var_t tmp_mask;
-
-		if (!alloc_cpumask_var(&tmp_mask, GFP_KERNEL))
-			return ret;
-
-		/* Use tmp_mask to preserve cpus mask from first failure */
-		cpumask_copy(tmp_mask, cpus);
-		rtas_offline_cpus_mask(tmp_mask);
-		free_cpumask_var(tmp_mask);
-	}
-
-	return ret;
-}
-
-int rtas_offline_cpus_mask(cpumask_var_t cpus)
-{
-	return rtas_cpu_state_change_mask(DOWN, cpus);
-}
-
 int rtas_ibm_suspend_me(u64 handle)
 {
 	long state;
@@ -939,8 +849,6 @@
 	unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
 	struct rtas_suspend_me_data data;
 	DECLARE_COMPLETION_ONSTACK(done);
-	cpumask_var_t offline_mask;
-	int cpuret;
 
 	if (!rtas_service_present("ibm,suspend-me"))
 		return -ENOSYS;
@@ -961,9 +869,6 @@
 		return -EIO;
 	}
 
-	if (!alloc_cpumask_var(&offline_mask, GFP_KERNEL))
-		return -ENOMEM;
-
 	atomic_set(&data.working, 0);
 	atomic_set(&data.done, 0);
 	atomic_set(&data.error, 0);
@@ -972,24 +877,8 @@
 
 	lock_device_hotplug();
 
-	/* All present CPUs must be online */
-	cpumask_andnot(offline_mask, cpu_present_mask, cpu_online_mask);
-	cpuret = rtas_online_cpus_mask(offline_mask);
-	if (cpuret) {
-		pr_err("%s: Could not bring present CPUs online.\n", __func__);
-		atomic_set(&data.error, cpuret);
-		goto out;
-	}
-
 	cpu_hotplug_disable();
 
-	/* Check if we raced with a CPU-Offline Operation */
-	if (!cpumask_equal(cpu_present_mask, cpu_online_mask)) {
-		pr_info("%s: Raced against a concurrent CPU-Offline\n", __func__);
-		atomic_set(&data.error, -EAGAIN);
-		goto out_hotplug_enable;
-	}
-
 	/* Call function on all CPUs.  One of us will make the
 	 * rtas call
 	 */
@@ -1000,18 +889,11 @@
 	if (atomic_read(&data.error) != 0)
 		printk(KERN_ERR "Error doing global join\n");
 
-out_hotplug_enable:
-	cpu_hotplug_enable();
 
-	/* Take down CPUs not online prior to suspend */
-	cpuret = rtas_offline_cpus_mask(offline_mask);
-	if (cpuret)
-		pr_warn("%s: Could not restore CPUs to offline state.\n",
-				__func__);
+	cpu_hotplug_enable();
 
-out:
 	unlock_device_hotplug();
-	free_cpumask_var(offline_mask);
+
 	return atomic_read(&data.error);
 }
 #else /* CONFIG_PPC_PSERIES */
@@ -1058,6 +940,147 @@
 	return NULL;
 }
 
+#ifdef CONFIG_PPC_RTAS_FILTER
+
+/*
+ * The sys_rtas syscall, as originally designed, allows root to pass
+ * arbitrary physical addresses to RTAS calls. A number of RTAS calls
+ * can be abused to write to arbitrary memory and do other things that
+ * are potentially harmful to system integrity, and thus should only
+ * be used inside the kernel and not exposed to userspace.
+ *
+ * All known legitimate users of the sys_rtas syscall will only ever
+ * pass addresses that fall within the RMO buffer, and use a known
+ * subset of RTAS calls.
+ *
+ * Accordingly, we filter RTAS requests to check that the call is
+ * permitted, and that provided pointers fall within the RMO buffer.
+ * The rtas_filters list contains an entry for each permitted call,
+ * with the indexes of the parameters which are expected to contain
+ * addresses and sizes of buffers allocated inside the RMO buffer.
+ */
+struct rtas_filter {
+	const char *name;
+	int token;
+	/* Indexes into the args buffer, -1 if not used */
+	int buf_idx1;
+	int size_idx1;
+	int buf_idx2;
+	int size_idx2;
+
+	int fixed_size;
+};
+
+static struct rtas_filter rtas_filters[] __ro_after_init = {
+	{ "ibm,activate-firmware", -1, -1, -1, -1, -1 },
+	{ "ibm,configure-connector", -1, 0, -1, 1, -1, 4096 },	/* Special cased */
+	{ "display-character", -1, -1, -1, -1, -1 },
+	{ "ibm,display-message", -1, 0, -1, -1, -1 },
+	{ "ibm,errinjct", -1, 2, -1, -1, -1, 1024 },
+	{ "ibm,close-errinjct", -1, -1, -1, -1, -1 },
+	{ "ibm,open-errinjct", -1, -1, -1, -1, -1 },
+	{ "ibm,get-config-addr-info2", -1, -1, -1, -1, -1 },
+	{ "ibm,get-dynamic-sensor-state", -1, 1, -1, -1, -1 },
+	{ "ibm,get-indices", -1, 2, 3, -1, -1 },
+	{ "get-power-level", -1, -1, -1, -1, -1 },
+	{ "get-sensor-state", -1, -1, -1, -1, -1 },
+	{ "ibm,get-system-parameter", -1, 1, 2, -1, -1 },
+	{ "get-time-of-day", -1, -1, -1, -1, -1 },
+	{ "ibm,get-vpd", -1, 0, -1, 1, 2 },
+	{ "ibm,lpar-perftools", -1, 2, 3, -1, -1 },
+	{ "ibm,platform-dump", -1, 4, 5, -1, -1 },
+	{ "ibm,read-slot-reset-state", -1, -1, -1, -1, -1 },
+	{ "ibm,scan-log-dump", -1, 0, 1, -1, -1 },
+	{ "ibm,set-dynamic-indicator", -1, 2, -1, -1, -1 },
+	{ "ibm,set-eeh-option", -1, -1, -1, -1, -1 },
+	{ "set-indicator", -1, -1, -1, -1, -1 },
+	{ "set-power-level", -1, -1, -1, -1, -1 },
+	{ "set-time-for-power-on", -1, -1, -1, -1, -1 },
+	{ "ibm,set-system-parameter", -1, 1, -1, -1, -1 },
+	{ "set-time-of-day", -1, -1, -1, -1, -1 },
+	{ "ibm,suspend-me", -1, -1, -1, -1, -1 },
+	{ "ibm,update-nodes", -1, 0, -1, -1, -1, 4096 },
+	{ "ibm,update-properties", -1, 0, -1, -1, -1, 4096 },
+	{ "ibm,physical-attestation", -1, 0, 1, -1, -1 },
+};
+
+static bool in_rmo_buf(u32 base, u32 end)
+{
+	return base >= rtas_rmo_buf &&
+		base < (rtas_rmo_buf + RTAS_RMOBUF_MAX) &&
+		base <= end &&
+		end >= rtas_rmo_buf &&
+		end < (rtas_rmo_buf + RTAS_RMOBUF_MAX);
+}
+
+static bool block_rtas_call(int token, int nargs,
+			    struct rtas_args *args)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(rtas_filters); i++) {
+		struct rtas_filter *f = &rtas_filters[i];
+		u32 base, size, end;
+
+		if (token != f->token)
+			continue;
+
+		if (f->buf_idx1 != -1) {
+			base = be32_to_cpu(args->args[f->buf_idx1]);
+			if (f->size_idx1 != -1)
+				size = be32_to_cpu(args->args[f->size_idx1]);
+			else if (f->fixed_size)
+				size = f->fixed_size;
+			else
+				size = 1;
+
+			end = base + size - 1;
+			if (!in_rmo_buf(base, end))
+				goto err;
+		}
+
+		if (f->buf_idx2 != -1) {
+			base = be32_to_cpu(args->args[f->buf_idx2]);
+			if (f->size_idx2 != -1)
+				size = be32_to_cpu(args->args[f->size_idx2]);
+			else if (f->fixed_size)
+				size = f->fixed_size;
+			else
+				size = 1;
+			end = base + size - 1;
+
+			/*
+			 * Special case for ibm,configure-connector where the
+			 * address can be 0
+			 */
+			if (!strcmp(f->name, "ibm,configure-connector") &&
+			    base == 0)
+				return false;
+
+			if (!in_rmo_buf(base, end))
+				goto err;
+		}
+
+		return false;
+	}
+
+err:
+	pr_err_ratelimited("sys_rtas: RTAS call blocked - exploit attempt?\n");
+	pr_err_ratelimited("sys_rtas: token=0x%x, nargs=%d (called by %s)\n",
+			   token, nargs, current->comm);
+	return true;
+}
+
+#else
+
+static bool block_rtas_call(int token, int nargs,
+			    struct rtas_args *args)
+{
+	return false;
+}
+
+#endif /* CONFIG_PPC_RTAS_FILTER */
+
 /* We assume to be passed big endian arguments */
 SYSCALL_DEFINE1(rtas, struct rtas_args __user *, uargs)
 {
@@ -1095,6 +1118,9 @@
 	args.rets = &args.args[nargs];
 	memset(args.rets, 0, nret * sizeof(rtas_arg_t));
 
+	if (block_rtas_call(token, nargs, &args))
+		return -EINVAL;
+
 	/* Need to handle ibm,suspend_me call specially */
 	if (token == ibm_suspend_me_token) {
 
@@ -1156,6 +1182,9 @@
 	unsigned long rtas_region = RTAS_INSTANTIATE_MAX;
 	u32 base, size, entry;
 	int no_base, no_size, no_entry;
+#ifdef CONFIG_PPC_RTAS_FILTER
+	int i;
+#endif
 
 	/* Get RTAS dev node and fill up our "rtas" structure with infos
 	 * about it.
@@ -1195,6 +1224,12 @@
 #ifdef CONFIG_RTAS_ERROR_LOGGING
 	rtas_last_error_token = rtas_token("rtas-last-error");
 #endif
+
+#ifdef CONFIG_PPC_RTAS_FILTER
+	for (i = 0; i < ARRAY_SIZE(rtas_filters); i++) {
+		rtas_filters[i].token = rtas_token(rtas_filters[i].name);
+	}
+#endif
 }
 
 int __init early_init_dt_scan_rtas(unsigned long node,
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/secure_boot.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/secure_boot.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ */
+#include <linux/types.h>
+#include <linux/of.h>
+#include <asm/secure_boot.h>
+
+static struct device_node *get_ppc_fw_sb_node(void)
+{
+	static const struct of_device_id ids[] = {
+		{ .compatible = "ibm,secureboot", },
+		{ .compatible = "ibm,secureboot-v1", },
+		{ .compatible = "ibm,secureboot-v2", },
+		{},
+	};
+
+	return of_find_matching_node(NULL, ids);
+}
+
+bool is_ppc_secureboot_enabled(void)
+{
+	struct device_node *node;
+	bool enabled = false;
+
+	node = get_ppc_fw_sb_node();
+	enabled = of_property_read_bool(node, "os-secureboot-enforcing");
+
+	of_node_put(node);
+
+	pr_info("Secure boot mode %s\n", enabled ? "enabled" : "disabled");
+
+	return enabled;
+}
+
+bool is_ppc_trustedboot_enabled(void)
+{
+	struct device_node *node;
+	bool enabled = false;
+
+	node = get_ppc_fw_sb_node();
+	enabled = of_property_read_bool(node, "trusted-enabled");
+
+	of_node_put(node);
+
+	pr_info("Trusted boot mode %s\n", enabled ? "enabled" : "disabled");
+
+	return enabled;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/security.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/security.c
@@ -16,7 +16,7 @@
 #include <asm/setup.h>
 
 
-unsigned long powerpc_security_features __read_mostly = SEC_FTR_DEFAULT;
+u64 powerpc_security_features __read_mostly = SEC_FTR_DEFAULT;
 
 enum count_cache_flush_type {
 	COUNT_CACHE_FLUSH_NONE	= 0x1,
@@ -24,6 +24,7 @@
 	COUNT_CACHE_FLUSH_HW	= 0x4,
 };
 static enum count_cache_flush_type count_cache_flush_type = COUNT_CACHE_FLUSH_NONE;
+static bool link_stack_flush_enabled;
 
 bool barrier_nospec_enabled;
 static bool no_nospec;
@@ -108,7 +109,7 @@
 static __init int security_feature_debugfs_init(void)
 {
 	debugfs_create_x64("security_features", 0400, powerpc_debugfs_root,
-			   (u64 *)&powerpc_security_features);
+			   &powerpc_security_features);
 	return 0;
 }
 device_initcall(security_feature_debugfs_init);
@@ -141,32 +142,33 @@
 
 	thread_priv = security_ftr_enabled(SEC_FTR_L1D_THREAD_PRIV);
 
-	if (rfi_flush || thread_priv) {
+	if (rfi_flush) {
 		struct seq_buf s;
 		seq_buf_init(&s, buf, PAGE_SIZE - 1);
 
-		seq_buf_printf(&s, "Mitigation: ");
-
-		if (rfi_flush)
-			seq_buf_printf(&s, "RFI Flush");
-
-		if (rfi_flush && thread_priv)
-			seq_buf_printf(&s, ", ");
-
+		seq_buf_printf(&s, "Mitigation: RFI Flush");
 		if (thread_priv)
-			seq_buf_printf(&s, "L1D private per thread");
+			seq_buf_printf(&s, ", L1D private per thread");
 
 		seq_buf_printf(&s, "\n");
 
 		return s.len;
 	}
 
+	if (thread_priv)
+		return sprintf(buf, "Vulnerable: L1D private per thread\n");
+
 	if (!security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV) &&
 	    !security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR))
 		return sprintf(buf, "Not affected\n");
 
 	return sprintf(buf, "Vulnerable\n");
 }
+
+ssize_t cpu_show_l1tf(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	return cpu_show_meltdown(dev, attr, buf);
+}
 #endif
 
 ssize_t cpu_show_spectre_v1(struct device *dev, struct device_attribute *attr, char *buf)
@@ -212,11 +214,19 @@
 
 		if (ccd)
 			seq_buf_printf(&s, "Indirect branch cache disabled");
+
+		if (link_stack_flush_enabled)
+			seq_buf_printf(&s, ", Software link stack flush");
+
 	} else if (count_cache_flush_type != COUNT_CACHE_FLUSH_NONE) {
 		seq_buf_printf(&s, "Mitigation: Software count cache flush");
 
 		if (count_cache_flush_type == COUNT_CACHE_FLUSH_HW)
 			seq_buf_printf(&s, " (hardware accelerated)");
+
+		if (link_stack_flush_enabled)
+			seq_buf_printf(&s, ", Software link stack flush");
+
 	} else if (btb_flush_enabled) {
 		seq_buf_printf(&s, "Mitigation: Branch predictor state flush");
 	} else {
@@ -377,18 +387,49 @@
 device_initcall(stf_barrier_debugfs_init);
 #endif /* CONFIG_DEBUG_FS */
 
+static void no_count_cache_flush(void)
+{
+	count_cache_flush_type = COUNT_CACHE_FLUSH_NONE;
+	pr_info("count-cache-flush: software flush disabled.\n");
+}
+
 static void toggle_count_cache_flush(bool enable)
 {
-	if (!enable || !security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE)) {
+	if (!security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE) &&
+	    !security_ftr_enabled(SEC_FTR_FLUSH_LINK_STACK))
+		enable = false;
+
+	if (!enable) {
 		patch_instruction_site(&patch__call_flush_count_cache, PPC_INST_NOP);
-		count_cache_flush_type = COUNT_CACHE_FLUSH_NONE;
-		pr_info("count-cache-flush: software flush disabled.\n");
+#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
+		patch_instruction_site(&patch__call_kvm_flush_link_stack, PPC_INST_NOP);
+#endif
+		pr_info("link-stack-flush: software flush disabled.\n");
+		link_stack_flush_enabled = false;
+		no_count_cache_flush();
 		return;
 	}
 
+	// This enables the branch from _switch to flush_count_cache
 	patch_branch_site(&patch__call_flush_count_cache,
 			  (u64)&flush_count_cache, BRANCH_SET_LINK);
 
+#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
+	// This enables the branch from guest_exit_cont to kvm_flush_link_stack
+	patch_branch_site(&patch__call_kvm_flush_link_stack,
+			  (u64)&kvm_flush_link_stack, BRANCH_SET_LINK);
+#endif
+
+	pr_info("link-stack-flush: software flush enabled.\n");
+	link_stack_flush_enabled = true;
+
+	// If we just need to flush the link stack, patch an early return
+	if (!security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE)) {
+		patch_instruction_site(&patch__flush_link_stack_return, PPC_INST_BLR);
+		no_count_cache_flush();
+		return;
+	}
+
 	if (!security_ftr_enabled(SEC_FTR_BCCTR_FLUSH_ASSIST)) {
 		count_cache_flush_type = COUNT_CACHE_FLUSH_SW;
 		pr_info("count-cache-flush: full software flush sequence enabled.\n");
@@ -407,11 +448,20 @@
 	if (no_spectrev2 || cpu_mitigations_off()) {
 		if (security_ftr_enabled(SEC_FTR_BCCTRL_SERIALISED) ||
 		    security_ftr_enabled(SEC_FTR_COUNT_CACHE_DISABLED))
-			pr_warn("Spectre v2 mitigations not under software control, can't disable\n");
+			pr_warn("Spectre v2 mitigations not fully under software control, can't disable\n");
 
 		enable = false;
 	}
 
+	/*
+	 * There's no firmware feature flag/hypervisor bit to tell us we need to
+	 * flush the link stack on context switch. So we set it here if we see
+	 * either of the Spectre v2 mitigations that aim to protect userspace.
+	 */
+	if (security_ftr_enabled(SEC_FTR_COUNT_CACHE_DISABLED) ||
+	    security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE))
+		security_ftr_set(SEC_FTR_FLUSH_LINK_STACK);
+
 	toggle_count_cache_flush(enable);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/secvar-ops.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/secvar-ops.c
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ *
+ * This file initializes secvar operations for PowerPC Secureboot
+ */
+
+#include <linux/cache.h>
+#include <asm/secvar.h>
+
+const struct secvar_operations *secvar_ops __ro_after_init;
+
+void set_secvar_ops(const struct secvar_operations *ops)
+{
+	secvar_ops = ops;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/secvar-sysfs.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/secvar-sysfs.c
@@ -0,0 +1,248 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 IBM Corporation <nayna@linux.ibm.com>
+ *
+ * This code exposes secure variables to user via sysfs
+ */
+
+#define pr_fmt(fmt) "secvar-sysfs: "fmt
+
+#include <linux/slab.h>
+#include <linux/compat.h>
+#include <linux/string.h>
+#include <linux/of.h>
+#include <asm/secvar.h>
+
+#define NAME_MAX_SIZE	   1024
+
+static struct kobject *secvar_kobj;
+static struct kset *secvar_kset;
+
+static ssize_t format_show(struct kobject *kobj, struct kobj_attribute *attr,
+			   char *buf)
+{
+	ssize_t rc = 0;
+	struct device_node *node;
+	const char *format;
+
+	node = of_find_compatible_node(NULL, NULL, "ibm,secvar-backend");
+	if (!of_device_is_available(node))
+		return -ENODEV;
+
+	rc = of_property_read_string(node, "format", &format);
+	if (rc)
+		return rc;
+
+	rc = sprintf(buf, "%s\n", format);
+
+	of_node_put(node);
+
+	return rc;
+}
+
+
+static ssize_t size_show(struct kobject *kobj, struct kobj_attribute *attr,
+			 char *buf)
+{
+	uint64_t dsize;
+	int rc;
+
+	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
+	if (rc) {
+		pr_err("Error retrieving %s variable size %d\n", kobj->name,
+		       rc);
+		return rc;
+	}
+
+	return sprintf(buf, "%llu\n", dsize);
+}
+
+static ssize_t data_read(struct file *filep, struct kobject *kobj,
+			 struct bin_attribute *attr, char *buf, loff_t off,
+			 size_t count)
+{
+	uint64_t dsize;
+	char *data;
+	int rc;
+
+	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
+	if (rc) {
+		pr_err("Error getting %s variable size %d\n", kobj->name, rc);
+		return rc;
+	}
+	pr_debug("dsize is %llu\n", dsize);
+
+	data = kzalloc(dsize, GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+
+	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, data, &dsize);
+	if (rc) {
+		pr_err("Error getting %s variable %d\n", kobj->name, rc);
+		goto data_fail;
+	}
+
+	rc = memory_read_from_buffer(buf, count, &off, data, dsize);
+
+data_fail:
+	kfree(data);
+	return rc;
+}
+
+static ssize_t update_write(struct file *filep, struct kobject *kobj,
+			    struct bin_attribute *attr, char *buf, loff_t off,
+			    size_t count)
+{
+	int rc;
+
+	pr_debug("count is %ld\n", count);
+	rc = secvar_ops->set(kobj->name, strlen(kobj->name) + 1, buf, count);
+	if (rc) {
+		pr_err("Error setting the %s variable %d\n", kobj->name, rc);
+		return rc;
+	}
+
+	return count;
+}
+
+static struct kobj_attribute format_attr = __ATTR_RO(format);
+
+static struct kobj_attribute size_attr = __ATTR_RO(size);
+
+static struct bin_attribute data_attr = __BIN_ATTR_RO(data, 0);
+
+static struct bin_attribute update_attr = __BIN_ATTR_WO(update, 0);
+
+static struct bin_attribute *secvar_bin_attrs[] = {
+	&data_attr,
+	&update_attr,
+	NULL,
+};
+
+static struct attribute *secvar_attrs[] = {
+	&size_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group secvar_attr_group = {
+	.attrs = secvar_attrs,
+	.bin_attrs = secvar_bin_attrs,
+};
+__ATTRIBUTE_GROUPS(secvar_attr);
+
+static struct kobj_type secvar_ktype = {
+	.sysfs_ops	= &kobj_sysfs_ops,
+	.default_groups = secvar_attr_groups,
+};
+
+static int update_kobj_size(void)
+{
+
+	struct device_node *node;
+	u64 varsize;
+	int rc = 0;
+
+	node = of_find_compatible_node(NULL, NULL, "ibm,secvar-backend");
+	if (!of_device_is_available(node)) {
+		rc = -ENODEV;
+		goto out;
+	}
+
+	rc = of_property_read_u64(node, "max-var-size", &varsize);
+	if (rc)
+		goto out;
+
+	data_attr.size = varsize;
+	update_attr.size = varsize;
+
+out:
+	of_node_put(node);
+
+	return rc;
+}
+
+static int secvar_sysfs_load(void)
+{
+	char *name;
+	uint64_t namesize = 0;
+	struct kobject *kobj;
+	int rc;
+
+	name = kzalloc(NAME_MAX_SIZE, GFP_KERNEL);
+	if (!name)
+		return -ENOMEM;
+
+	do {
+		rc = secvar_ops->get_next(name, &namesize, NAME_MAX_SIZE);
+		if (rc) {
+			if (rc != -ENOENT)
+				pr_err("error getting secvar from firmware %d\n",
+				       rc);
+			break;
+		}
+
+		kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+		if (!kobj) {
+			rc = -ENOMEM;
+			break;
+		}
+
+		kobject_init(kobj, &secvar_ktype);
+
+		rc = kobject_add(kobj, &secvar_kset->kobj, "%s", name);
+		if (rc) {
+			pr_warn("kobject_add error %d for attribute: %s\n", rc,
+				name);
+			kobject_put(kobj);
+			kobj = NULL;
+		}
+
+		if (kobj)
+			kobject_uevent(kobj, KOBJ_ADD);
+
+	} while (!rc);
+
+	kfree(name);
+	return rc;
+}
+
+static int secvar_sysfs_init(void)
+{
+	int rc;
+
+	if (!secvar_ops) {
+		pr_warn("secvar: failed to retrieve secvar operations.\n");
+		return -ENODEV;
+	}
+
+	secvar_kobj = kobject_create_and_add("secvar", firmware_kobj);
+	if (!secvar_kobj) {
+		pr_err("secvar: Failed to create firmware kobj\n");
+		return -ENOMEM;
+	}
+
+	rc = sysfs_create_file(secvar_kobj, &format_attr.attr);
+	if (rc) {
+		kobject_put(secvar_kobj);
+		return -ENOMEM;
+	}
+
+	secvar_kset = kset_create_and_add("vars", NULL, secvar_kobj);
+	if (!secvar_kset) {
+		pr_err("secvar: sysfs kobject registration failed.\n");
+		kobject_put(secvar_kobj);
+		return -ENOMEM;
+	}
+
+	rc = update_kobj_size();
+	if (rc) {
+		pr_err("Cannot read the size of the attribute\n");
+		return rc;
+	}
+
+	secvar_sysfs_load();
+
+	return 0;
+}
+
+late_initcall(secvar_sysfs_init);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/setup-common.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/setup-common.c
@@ -31,6 +31,7 @@
 #include <linux/memblock.h>
 #include <linux/of_platform.h>
 #include <linux/hugetlb.h>
+#include <linux/security.h>
 #include <asm/debugfs.h>
 #include <asm/io.h>
 #include <asm/paca.h>
@@ -64,6 +65,7 @@
 #include <asm/mmu_context.h>
 #include <asm/cpu_has_feature.h>
 #include <asm/kasan.h>
+#include <asm/secure_boot.h>
 
 #include "setup.h"
 
@@ -855,6 +857,16 @@
 	 */
 	initialize_cache_info();
 
+	/*
+	 * Lock down the kernel if booted in secure mode. This is required to
+	 * maintain kernel integrity.
+	 */
+	if (IS_ENABLED(CONFIG_LOCK_DOWN_IN_SECURE_BOOT)) {
+		if (is_ppc_secureboot_enabled())
+			security_lock_kernel_down("PowerNV Secure Boot mode",
+						  LOCKDOWN_INTEGRITY_MAX);
+	}
+
 	/* Initialize RTAS if available. */
 	rtas_initialize();
 
@@ -903,8 +915,6 @@
 
 	/* On BookE, setup per-core TLB data structures. */
 	setup_tlb_core_data();
-
-	smp_release_cpus();
 #endif
 
 	/* Print various info about the machine that has been gathered so far. */
@@ -925,6 +935,8 @@
 	exc_lvl_early_init();
 	emergency_stack_init();
 
+	smp_release_cpus();
+
 	initmem_init();
 
 	early_memtest(min_low_pfn << PAGE_SHIFT, max_low_pfn << PAGE_SHIFT);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/setup_64.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/setup_64.c
@@ -290,18 +290,36 @@
 
 	/* -------- printk is _NOT_ safe to use here ! ------- */
 
-	/* Try new device tree based feature discovery ... */
-	if (!dt_cpu_ftrs_init(__va(dt_ptr)))
-		/* Otherwise use the old style CPU table */
-		identify_cpu(0, mfspr(SPRN_PVR));
-
-	/* Assume we're on cpu 0 for now. Don't write to the paca yet! */
+	/*
+	 * Assume we're on cpu 0 for now.
+	 *
+	 * We need to load a PACA very early for a few reasons.
+	 *
+	 * The stack protector canary is stored in the paca, so as soon as we
+	 * call any stack protected code we need r13 pointing somewhere valid.
+	 *
+	 * If we are using kcov it will call in_task() in its instrumentation,
+	 * which relies on the current task from the PACA.
+	 *
+	 * dt_cpu_ftrs_init() calls into generic OF/fdt code, as well as
+	 * printk(), which can trigger both stack protector and kcov.
+	 *
+	 * percpu variables and spin locks also use the paca.
+	 *
+	 * So set up a temporary paca. It will be replaced below once we know
+	 * what CPU we are on.
+	 */
 	initialise_paca(&boot_paca, 0);
 	setup_paca(&boot_paca);
 	fixup_boot_paca();
 
 	/* -------- printk is now safe to use ------- */
 
+	/* Try new device tree based feature discovery ... */
+	if (!dt_cpu_ftrs_init(__va(dt_ptr)))
+		/* Otherwise use the old style CPU table */
+		identify_cpu(0, mfspr(SPRN_PVR));
+
 	/* Enable early debugging if any specified (see udbg.h) */
 	udbg_early_init();
 
@@ -523,6 +541,8 @@
 	lsizep = of_get_property(np, propnames[3], NULL);
 	if (bsizep == NULL)
 		bsizep = lsizep;
+	if (lsizep == NULL)
+		lsizep = bsizep;
 	if (lsizep != NULL)
 		lsize = be32_to_cpu(*lsizep);
 	if (bsizep != NULL)
@@ -839,7 +859,13 @@
 static enum l1d_flush_type enabled_flush_types;
 static void *l1d_flush_fallback_area;
 static bool no_rfi_flush;
+static bool no_entry_flush;
+static bool no_uaccess_flush;
 bool rfi_flush;
+bool entry_flush;
+bool uaccess_flush;
+DEFINE_STATIC_KEY_FALSE(uaccess_flush_key);
+EXPORT_SYMBOL(uaccess_flush_key);
 
 static int __init handle_no_rfi_flush(char *p)
 {
@@ -849,6 +875,22 @@
 }
 early_param("no_rfi_flush", handle_no_rfi_flush);
 
+static int __init handle_no_entry_flush(char *p)
+{
+	pr_info("entry-flush: disabled on command line.");
+	no_entry_flush = true;
+	return 0;
+}
+early_param("no_entry_flush", handle_no_entry_flush);
+
+static int __init handle_no_uaccess_flush(char *p)
+{
+	pr_info("uaccess-flush: disabled on command line.");
+	no_uaccess_flush = true;
+	return 0;
+}
+early_param("no_uaccess_flush", handle_no_uaccess_flush);
+
 /*
  * The RFI flush is not KPTI, but because users will see doco that says to use
  * nopti we hijack that option here to also disable the RFI flush.
@@ -880,6 +922,32 @@
 	rfi_flush = enable;
 }
 
+void entry_flush_enable(bool enable)
+{
+	if (enable) {
+		do_entry_flush_fixups(enabled_flush_types);
+		on_each_cpu(do_nothing, NULL, 1);
+	} else {
+		do_entry_flush_fixups(L1D_FLUSH_NONE);
+	}
+
+	entry_flush = enable;
+}
+
+void uaccess_flush_enable(bool enable)
+{
+	if (enable) {
+		do_uaccess_flush_fixups(enabled_flush_types);
+		static_branch_enable(&uaccess_flush_key);
+		on_each_cpu(do_nothing, NULL, 1);
+	} else {
+		static_branch_disable(&uaccess_flush_key);
+		do_uaccess_flush_fixups(L1D_FLUSH_NONE);
+	}
+
+	uaccess_flush = enable;
+}
+
 static void __ref init_fallback_flush(void)
 {
 	u64 l1d_size, limit;
@@ -938,10 +1006,28 @@
 
 	enabled_flush_types = types;
 
-	if (!no_rfi_flush && !cpu_mitigations_off())
+	if (!cpu_mitigations_off() && !no_rfi_flush)
 		rfi_flush_enable(enable);
 }
 
+void setup_entry_flush(bool enable)
+{
+	if (cpu_mitigations_off())
+		return;
+
+	if (!no_entry_flush)
+		entry_flush_enable(enable);
+}
+
+void setup_uaccess_flush(bool enable)
+{
+	if (cpu_mitigations_off())
+		return;
+
+	if (!no_uaccess_flush)
+		uaccess_flush_enable(enable);
+}
+
 #ifdef CONFIG_DEBUG_FS
 static int rfi_flush_set(void *data, u64 val)
 {
@@ -969,9 +1055,63 @@
 
 DEFINE_SIMPLE_ATTRIBUTE(fops_rfi_flush, rfi_flush_get, rfi_flush_set, "%llu\n");
 
+static int entry_flush_set(void *data, u64 val)
+{
+	bool enable;
+
+	if (val == 1)
+		enable = true;
+	else if (val == 0)
+		enable = false;
+	else
+		return -EINVAL;
+
+	/* Only do anything if we're changing state */
+	if (enable != entry_flush)
+		entry_flush_enable(enable);
+
+	return 0;
+}
+
+static int entry_flush_get(void *data, u64 *val)
+{
+	*val = entry_flush ? 1 : 0;
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(fops_entry_flush, entry_flush_get, entry_flush_set, "%llu\n");
+
+static int uaccess_flush_set(void *data, u64 val)
+{
+	bool enable;
+
+	if (val == 1)
+		enable = true;
+	else if (val == 0)
+		enable = false;
+	else
+		return -EINVAL;
+
+	/* Only do anything if we're changing state */
+	if (enable != uaccess_flush)
+		uaccess_flush_enable(enable);
+
+	return 0;
+}
+
+static int uaccess_flush_get(void *data, u64 *val)
+{
+	*val = uaccess_flush ? 1 : 0;
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(fops_uaccess_flush, uaccess_flush_get, uaccess_flush_set, "%llu\n");
+
 static __init int rfi_flush_debugfs_init(void)
 {
 	debugfs_create_file("rfi_flush", 0600, powerpc_debugfs_root, NULL, &fops_rfi_flush);
+	debugfs_create_file("entry_flush", 0600, powerpc_debugfs_root, NULL, &fops_entry_flush);
+	debugfs_create_file("uaccess_flush", 0600, powerpc_debugfs_root, NULL, &fops_uaccess_flush);
 	return 0;
 }
 device_initcall(rfi_flush_debugfs_init);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/signal.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/signal.c
@@ -200,14 +200,27 @@
 	 * normal/non-checkpointed stack pointer.
 	 */
 
+	unsigned long ret = tsk->thread.regs->gpr[1];
+
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 	BUG_ON(tsk != current);
 
 	if (MSR_TM_ACTIVE(tsk->thread.regs->msr)) {
+		preempt_disable();
 		tm_reclaim_current(TM_CAUSE_SIGNAL);
 		if (MSR_TM_TRANSACTIONAL(tsk->thread.regs->msr))
-			return tsk->thread.ckpt_regs.gpr[1];
+			ret = tsk->thread.ckpt_regs.gpr[1];
+
+		/*
+		 * If we treclaim, we must clear the current thread's TM bits
+		 * before re-enabling preemption. Otherwise we might be
+		 * preempted and have the live MSR[TS] changed behind our back
+		 * (tm_recheckpoint_new_task() would recheckpoint). Besides, we
+		 * enter the signal handler in non-transactional state.
+		 */
+		tsk->thread.regs->msr &= ~MSR_TS_MASK;
+		preempt_enable();
 	}
 #endif
-	return tsk->thread.regs->gpr[1];
+	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/signal_32.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/signal_32.c
@@ -489,19 +489,11 @@
  */
 static int save_tm_user_regs(struct pt_regs *regs,
 			     struct mcontext __user *frame,
-			     struct mcontext __user *tm_frame, int sigret)
+			     struct mcontext __user *tm_frame, int sigret,
+			     unsigned long msr)
 {
-	unsigned long msr = regs->msr;
-
 	WARN_ON(tm_suspend_disabled);
 
-	/* Remove TM bits from thread's MSR.  The MSR in the sigcontext
-	 * just indicates to userland that we were doing a transaction, but we
-	 * don't want to return in transactional state.  This also ensures
-	 * that flush_fp_to_thread won't set TIF_RESTORE_TM again.
-	 */
-	regs->msr &= ~MSR_TS_MASK;
-
 	/* Save both sets of general registers */
 	if (save_general_regs(&current->thread.ckpt_regs, frame)
 	    || save_general_regs(regs, tm_frame))
@@ -912,6 +904,10 @@
 	int sigret;
 	unsigned long tramp;
 	struct pt_regs *regs = tsk->thread.regs;
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
+	/* Save the thread's msr before get_tm_stackpointer() changes it */
+	unsigned long msr = regs->msr;
+#endif
 
 	BUG_ON(tsk != current);
 
@@ -944,13 +940,13 @@
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 	tm_frame = &rt_sf->uc_transact.uc_mcontext;
-	if (MSR_TM_ACTIVE(regs->msr)) {
+	if (MSR_TM_ACTIVE(msr)) {
 		if (__put_user((unsigned long)&rt_sf->uc_transact,
 			       &rt_sf->uc.uc_link) ||
 		    __put_user((unsigned long)tm_frame,
 			       &rt_sf->uc_transact.uc_regs))
 			goto badframe;
-		if (save_tm_user_regs(regs, frame, tm_frame, sigret))
+		if (save_tm_user_regs(regs, frame, tm_frame, sigret, msr))
 			goto badframe;
 	}
 	else
@@ -1369,6 +1365,10 @@
 	int sigret;
 	unsigned long tramp;
 	struct pt_regs *regs = tsk->thread.regs;
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
+	/* Save the thread's msr before get_tm_stackpointer() changes it */
+	unsigned long msr = regs->msr;
+#endif
 
 	BUG_ON(tsk != current);
 
@@ -1402,9 +1402,9 @@
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 	tm_mctx = &frame->mctx_transact;
-	if (MSR_TM_ACTIVE(regs->msr)) {
+	if (MSR_TM_ACTIVE(msr)) {
 		if (save_tm_user_regs(regs, &frame->mctx, &frame->mctx_transact,
-				      sigret))
+				      sigret, msr))
 			goto badframe;
 	}
 	else
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/signal_64.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/signal_64.c
@@ -192,7 +192,8 @@
 static long setup_tm_sigcontexts(struct sigcontext __user *sc,
 				 struct sigcontext __user *tm_sc,
 				 struct task_struct *tsk,
-				 int signr, sigset_t *set, unsigned long handler)
+				 int signr, sigset_t *set, unsigned long handler,
+				 unsigned long msr)
 {
 	/* When CONFIG_ALTIVEC is set, we _always_ setup v_regs even if the
 	 * process never used altivec yet (MSR_VEC is zero in pt_regs of
@@ -207,12 +208,11 @@
 	elf_vrreg_t __user *tm_v_regs = sigcontext_vmx_regs(tm_sc);
 #endif
 	struct pt_regs *regs = tsk->thread.regs;
-	unsigned long msr = tsk->thread.regs->msr;
 	long err = 0;
 
 	BUG_ON(tsk != current);
 
-	BUG_ON(!MSR_TM_ACTIVE(regs->msr));
+	BUG_ON(!MSR_TM_ACTIVE(msr));
 
 	WARN_ON(tm_suspend_disabled);
 
@@ -222,13 +222,6 @@
 	 */
 	msr |= tsk->thread.ckpt_regs.msr & (MSR_FP | MSR_VEC | MSR_VSX);
 
-	/* Remove TM bits from thread's MSR.  The MSR in the sigcontext
-	 * just indicates to userland that we were doing a transaction, but we
-	 * don't want to return in transactional state.  This also ensures
-	 * that flush_fp_to_thread won't set TIF_RESTORE_TM again.
-	 */
-	regs->msr &= ~MSR_TS_MASK;
-
 #ifdef CONFIG_ALTIVEC
 	err |= __put_user(v_regs, &sc->v_regs);
 	err |= __put_user(tm_v_regs, &tm_sc->v_regs);
@@ -480,8 +473,10 @@
 	err |= __get_user(tsk->thread.ckpt_regs.ccr,
 			  &sc->gp_regs[PT_CCR]);
 
+	/* Don't allow userspace to set the trap value */
+	regs->trap = 0;
+
 	/* These regs are not checkpointed; they can go in 'regs'. */
-	err |= __get_user(regs->trap, &sc->gp_regs[PT_TRAP]);
 	err |= __get_user(regs->dar, &sc->gp_regs[PT_DAR]);
 	err |= __get_user(regs->dsisr, &sc->gp_regs[PT_DSISR]);
 	err |= __get_user(regs->result, &sc->gp_regs[PT_RESULT]);
@@ -824,6 +819,10 @@
 	unsigned long newsp = 0;
 	long err = 0;
 	struct pt_regs *regs = tsk->thread.regs;
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
+	/* Save the thread's msr before get_tm_stackpointer() changes it */
+	unsigned long msr = regs->msr;
+#endif
 
 	BUG_ON(tsk != current);
 
@@ -841,7 +840,7 @@
 	err |= __put_user(0, &frame->uc.uc_flags);
 	err |= __save_altstack(&frame->uc.uc_stack, regs->gpr[1]);
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
-	if (MSR_TM_ACTIVE(regs->msr)) {
+	if (MSR_TM_ACTIVE(msr)) {
 		/* The ucontext_t passed to userland points to the second
 		 * ucontext_t (for transactional state) with its uc_link ptr.
 		 */
@@ -849,7 +848,8 @@
 		err |= setup_tm_sigcontexts(&frame->uc.uc_mcontext,
 					    &frame->uc_transact.uc_mcontext,
 					    tsk, ksig->sig, NULL,
-					    (unsigned long)ksig->ka.sa.sa_handler);
+					    (unsigned long)ksig->ka.sa.sa_handler,
+					    msr);
 	} else
 #endif
 	{
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/sysfs.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/sysfs.c
@@ -31,29 +31,27 @@
 
 static DEFINE_PER_CPU(struct cpu, cpu_devices);
 
-/*
- * SMT snooze delay stuff, 64-bit only for now
- */
-
 #ifdef CONFIG_PPC64
 
-/* Time in microseconds we delay before sleeping in the idle loop */
-static DEFINE_PER_CPU(long, smt_snooze_delay) = { 100 };
+/*
+ * Snooze delay has not been hooked up since 3fa8cad82b94 ("powerpc/pseries/cpuidle:
+ * smt-snooze-delay cleanup.") and has been broken even longer. As was foretold in
+ * 2014:
+ *
+ *  "ppc64_util currently utilises it. Once we fix ppc64_util, propose to clean
+ *  up the kernel code."
+ *
+ * powerpc-utils stopped using it as of 1.3.8. At some point in the future this
+ * code should be removed.
+ */
 
 static ssize_t store_smt_snooze_delay(struct device *dev,
 				      struct device_attribute *attr,
 				      const char *buf,
 				      size_t count)
 {
-	struct cpu *cpu = container_of(dev, struct cpu, dev);
-	ssize_t ret;
-	long snooze;
-
-	ret = sscanf(buf, "%ld", &snooze);
-	if (ret != 1)
-		return -EINVAL;
-
-	per_cpu(smt_snooze_delay, cpu->dev.id) = snooze;
+	pr_warn_once("%s (%d) stored to unsupported smt_snooze_delay, which has no effect.\n",
+		     current->comm, current->pid);
 	return count;
 }
 
@@ -61,9 +59,9 @@
 				     struct device_attribute *attr,
 				     char *buf)
 {
-	struct cpu *cpu = container_of(dev, struct cpu, dev);
-
-	return sprintf(buf, "%ld\n", per_cpu(smt_snooze_delay, cpu->dev.id));
+	pr_warn_once("%s (%d) read from unsupported smt_snooze_delay\n",
+		     current->comm, current->pid);
+	return sprintf(buf, "100\n");
 }
 
 static DEVICE_ATTR(smt_snooze_delay, 0644, show_smt_snooze_delay,
@@ -71,16 +69,10 @@
 
 static int __init setup_smt_snooze_delay(char *str)
 {
-	unsigned int cpu;
-	long snooze;
-
 	if (!cpu_has_feature(CPU_FTR_SMT))
 		return 1;
 
-	snooze = simple_strtol(str, NULL, 10);
-	for_each_possible_cpu(cpu)
-		per_cpu(smt_snooze_delay, cpu) = snooze;
-
+	pr_warn("smt-snooze-delay command line option has no effect\n");
 	return 1;
 }
 __setup("smt-snooze-delay=", setup_smt_snooze_delay);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/tau_6xx.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/tau_6xx.c
@@ -13,13 +13,14 @@
  */
 
 #include <linux/errno.h>
-#include <linux/jiffies.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/string.h>
 #include <linux/mm.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/workqueue.h>
 
 #include <asm/io.h>
 #include <asm/reg.h>
@@ -39,9 +40,7 @@
 	unsigned char grew;
 } tau[NR_CPUS];
 
-struct timer_list tau_timer;
-
-#undef DEBUG
+static bool tau_int_enable;
 
 /* TODO: put these in a /proc interface, with some sanity checks, and maybe
  * dynamic adjustment to minimize # of interrupts */
@@ -50,72 +49,49 @@
 #define step_size		2	/* step size when temp goes out of range */
 #define window_expand		1	/* expand the window by this much */
 /* configurable values for shrinking the window */
-#define shrink_timer	2*HZ	/* period between shrinking the window */
+#define shrink_timer	2000	/* period between shrinking the window */
 #define min_window	2	/* minimum window size, degrees C */
 
 static void set_thresholds(unsigned long cpu)
 {
-#ifdef CONFIG_TAU_INT
-	/*
-	 * setup THRM1,
-	 * threshold, valid bit, enable interrupts, interrupt when below threshold
-	 */
-	mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | THRM1_TIE | THRM1_TID);
+	u32 maybe_tie = tau_int_enable ? THRM1_TIE : 0;
 
-	/* setup THRM2,
-	 * threshold, valid bit, enable interrupts, interrupt when above threshold
-	 */
-	mtspr (SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V | THRM1_TIE);
-#else
-	/* same thing but don't enable interrupts */
-	mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | THRM1_TID);
-	mtspr(SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V);
-#endif
+	/* setup THRM1, threshold, valid bit, interrupt when below threshold */
+	mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | maybe_tie | THRM1_TID);
+
+	/* setup THRM2, threshold, valid bit, interrupt when above threshold */
+	mtspr(SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V | maybe_tie);
 }
 
 static void TAUupdate(int cpu)
 {
-	unsigned thrm;
-
-#ifdef DEBUG
-	printk("TAUupdate ");
-#endif
+	u32 thrm;
+	u32 bits = THRM1_TIV | THRM1_TIN | THRM1_V;
 
 	/* if both thresholds are crossed, the step_sizes cancel out
 	 * and the window winds up getting expanded twice. */
-	if((thrm = mfspr(SPRN_THRM1)) & THRM1_TIV){ /* is valid? */
-		if(thrm & THRM1_TIN){ /* crossed low threshold */
-			if (tau[cpu].low >= step_size){
-				tau[cpu].low -= step_size;
-				tau[cpu].high -= (step_size - window_expand);
-			}
-			tau[cpu].grew = 1;
-#ifdef DEBUG
-			printk("low threshold crossed ");
-#endif
+	thrm = mfspr(SPRN_THRM1);
+	if ((thrm & bits) == bits) {
+		mtspr(SPRN_THRM1, 0);
+
+		if (tau[cpu].low >= step_size) {
+			tau[cpu].low -= step_size;
+			tau[cpu].high -= (step_size - window_expand);
 		}
+		tau[cpu].grew = 1;
+		pr_debug("%s: low threshold crossed\n", __func__);
 	}
-	if((thrm = mfspr(SPRN_THRM2)) & THRM1_TIV){ /* is valid? */
-		if(thrm & THRM1_TIN){ /* crossed high threshold */
-			if (tau[cpu].high <= 127-step_size){
-				tau[cpu].low += (step_size - window_expand);
-				tau[cpu].high += step_size;
-			}
-			tau[cpu].grew = 1;
-#ifdef DEBUG
-			printk("high threshold crossed ");
-#endif
+	thrm = mfspr(SPRN_THRM2);
+	if ((thrm & bits) == bits) {
+		mtspr(SPRN_THRM2, 0);
+
+		if (tau[cpu].high <= 127 - step_size) {
+			tau[cpu].low += (step_size - window_expand);
+			tau[cpu].high += step_size;
 		}
+		tau[cpu].grew = 1;
+		pr_debug("%s: high threshold crossed\n", __func__);
 	}
-
-#ifdef DEBUG
-	printk("grew = %d\n", tau[cpu].grew);
-#endif
-
-#ifndef CONFIG_TAU_INT /* tau_timeout will do this if not using interrupts */
-	set_thresholds(cpu);
-#endif
-
 }
 
 #ifdef CONFIG_TAU_INT
@@ -140,17 +116,16 @@
 static void tau_timeout(void * info)
 {
 	int cpu;
-	unsigned long flags;
 	int size;
 	int shrink;
 
-	/* disabling interrupts *should* be okay */
-	local_irq_save(flags);
 	cpu = smp_processor_id();
 
-#ifndef CONFIG_TAU_INT
-	TAUupdate(cpu);
-#endif
+	if (!tau_int_enable)
+		TAUupdate(cpu);
+
+	/* Stop thermal sensor comparisons and interrupts */
+	mtspr(SPRN_THRM3, 0);
 
 	size = tau[cpu].high - tau[cpu].low;
 	if (size > min_window && ! tau[cpu].grew) {
@@ -173,32 +148,26 @@
 
 	set_thresholds(cpu);
 
-	/*
-	 * Do the enable every time, since otherwise a bunch of (relatively)
-	 * complex sleep code needs to be added. One mtspr every time
-	 * tau_timeout is called is probably not a big deal.
-	 *
-	 * Enable thermal sensor and set up sample interval timer
-	 * need 20 us to do the compare.. until a nice 'cpu_speed' function
-	 * call is implemented, just assume a 500 mhz clock. It doesn't really
-	 * matter if we take too long for a compare since it's all interrupt
-	 * driven anyway.
-	 *
-	 * use a extra long time.. (60 us @ 500 mhz)
+	/* Restart thermal sensor comparisons and interrupts.
+	 * The "PowerPC 740 and PowerPC 750 Microprocessor Datasheet"
+	 * recommends that "the maximum value be set in THRM3 under all
+	 * conditions."
 	 */
-	mtspr(SPRN_THRM3, THRM3_SITV(500*60) | THRM3_E);
-
-	local_irq_restore(flags);
+	mtspr(SPRN_THRM3, THRM3_SITV(0x1fff) | THRM3_E);
 }
 
-static void tau_timeout_smp(struct timer_list *unused)
-{
+static struct workqueue_struct *tau_workq;
 
-	/* schedule ourselves to be run again */
-	mod_timer(&tau_timer, jiffies + shrink_timer) ;
+static void tau_work_func(struct work_struct *work)
+{
+	msleep(shrink_timer);
 	on_each_cpu(tau_timeout, NULL, 0);
+	/* schedule ourselves to be run again */
+	queue_work(tau_workq, work);
 }
 
+DECLARE_WORK(tau_work, tau_work_func);
+
 /*
  * setup the TAU
  *
@@ -231,21 +200,19 @@
 		return 1;
 	}
 
+	tau_int_enable = IS_ENABLED(CONFIG_TAU_INT) &&
+			 !strcmp(cur_cpu_spec->platform, "ppc750");
 
-	/* first, set up the window shrinking timer */
-	timer_setup(&tau_timer, tau_timeout_smp, 0);
-	tau_timer.expires = jiffies + shrink_timer;
-	add_timer(&tau_timer);
+	tau_workq = alloc_workqueue("tau", WQ_UNBOUND, 1, 0);
+	if (!tau_workq)
+		return -ENOMEM;
 
 	on_each_cpu(TAU_init_smp, NULL, 0);
 
-	printk("Thermal assist unit ");
-#ifdef CONFIG_TAU_INT
-	printk("using interrupts, ");
-#else
-	printk("using timers, ");
-#endif
-	printk("shrink_timer: %d jiffies\n", shrink_timer);
+	queue_work(tau_workq, &tau_work);
+
+	pr_info("Thermal assist unit using %s, shrink_timer: %d ms\n",
+		tau_int_enable ? "interrupts" : "workqueue", shrink_timer);
 	tau_initialized = 1;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/time.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/time.c
@@ -232,7 +232,7 @@
  * Accumulate stolen time by scanning the dispatch trace log.
  * Called on entry from user mode.
  */
-void accumulate_stolen_time(void)
+void notrace accumulate_stolen_time(void)
 {
 	u64 sst, ust;
 	unsigned long save_irq_soft_mask = irq_soft_mask_return();
@@ -522,35 +522,6 @@
 		"i" (offsetof(struct paca_struct, irq_work_pending)));
 }
 
-void arch_irq_work_raise(void)
-{
-	preempt_disable();
-	set_irq_work_pending_flag();
-	/*
-	 * Non-nmi code running with interrupts disabled will replay
-	 * irq_happened before it re-enables interrupts, so setthe
-	 * decrementer there instead of causing a hardware exception
-	 * which would immediately hit the masked interrupt handler
-	 * and have the net effect of setting the decrementer in
-	 * irq_happened.
-	 *
-	 * NMI interrupts can not check this when they return, so the
-	 * decrementer hardware exception is raised, which will fire
-	 * when interrupts are next enabled.
-	 *
-	 * BookE does not support this yet, it must audit all NMI
-	 * interrupt handlers to ensure they call nmi_enter() so this
-	 * check would be correct.
-	 */
-	if (IS_ENABLED(CONFIG_BOOKE) || !irqs_disabled() || in_nmi()) {
-		set_dec(1);
-	} else {
-		hard_irq_disable();
-		local_paca->irq_happened |= PACA_IRQ_DEC;
-	}
-	preempt_enable();
-}
-
 #else /* 32-bit */
 
 DEFINE_PER_CPU(u8, irq_work_pending);
@@ -559,16 +530,27 @@
 #define test_irq_work_pending()		__this_cpu_read(irq_work_pending)
 #define clear_irq_work_pending()	__this_cpu_write(irq_work_pending, 0)
 
+#endif /* 32 vs 64 bit */
+
 void arch_irq_work_raise(void)
 {
+	/*
+	 * 64-bit code that uses irq soft-mask can just cause an immediate
+	 * interrupt here that gets soft masked, if this is called under
+	 * local_irq_disable(). It might be possible to prevent that happening
+	 * by noticing interrupts are disabled and setting decrementer pending
+	 * to be replayed when irqs are enabled. The problem there is that
+	 * tracing can call irq_work_raise, including in code that does low
+	 * level manipulations of irq soft-mask state (e.g., trace_hardirqs_on)
+	 * which could get tangled up if we're messing with the same state
+	 * here.
+	 */
 	preempt_disable();
 	set_irq_work_pending_flag();
 	set_dec(1);
 	preempt_enable();
 }
 
-#endif /* 32 vs 64 bit */
-
 #else  /* CONFIG_IRQ_WORK */
 
 #define test_irq_work_pending()	0
@@ -959,6 +941,7 @@
 	vdso_data->wtom_clock_nsec = tk->wall_to_monotonic.tv_nsec;
 	vdso_data->stamp_xtime = xt;
 	vdso_data->stamp_sec_fraction = frac_sec;
+	vdso_data->hrtimer_res = hrtimer_resolution;
 	smp_wmb();
 	++(vdso_data->tb_update_count);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/traps.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/traps.c
@@ -250,15 +250,22 @@
 }
 NOKPROBE_SYMBOL(oops_end);
 
+static char *get_mmu_str(void)
+{
+	if (early_radix_enabled())
+		return " MMU=Radix";
+	if (early_mmu_has_feature(MMU_FTR_HPTE_TABLE))
+		return " MMU=Hash";
+	return "";
+}
+
 static int __die(const char *str, struct pt_regs *regs, long err)
 {
 	printk("Oops: %s, sig: %ld [#%d]\n", str, err, ++die_counter);
 
-	printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s%s %s\n",
+	printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s %s\n",
 	       IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN) ? "LE" : "BE",
-	       PAGE_SIZE / 1024,
-	       early_radix_enabled() ? " MMU=Radix" : "",
-	       early_mmu_has_feature(MMU_FTR_HPTE_TABLE) ? " MMU=Hash" : "",
+	       PAGE_SIZE / 1024, get_mmu_str(),
 	       IS_ENABLED(CONFIG_PREEMPT) ? " PREEMPT" : "",
 	       IS_ENABLED(CONFIG_SMP) ? " SMP" : "",
 	       IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "",
@@ -503,11 +510,14 @@
 #ifdef CONFIG_PPC_BOOK3S_64
 	BUG_ON(get_paca()->in_nmi == 0);
 	if (get_paca()->in_nmi > 1)
-		nmi_panic(regs, "Unrecoverable nested System Reset");
+		die("Unrecoverable nested System Reset", regs, SIGABRT);
 #endif
 	/* Must die if the interrupt is not recoverable */
-	if (!(regs->msr & MSR_RI))
-		nmi_panic(regs, "Unrecoverable System Reset");
+	if (!(regs->msr & MSR_RI)) {
+		/* For the reason explained in die_mce, nmi_exit before die */
+		nmi_exit();
+		die("Unrecoverable System Reset", regs, SIGABRT);
+	}
 
 	if (saved_hsrrs) {
 		mtspr(SPRN_HSRR0, hsrr0);
@@ -851,7 +861,7 @@
 
 	/* Must die if the interrupt is not recoverable */
 	if (!(regs->msr & MSR_RI))
-		nmi_panic(regs, "Unrecoverable Machine check");
+		die("Unrecoverable Machine check", regs, SIGBUS);
 
 	return;
 
@@ -870,7 +880,7 @@
 {
 	unsigned int ra, rb, t, i, sel, instr, rc;
 	const void __user *addr;
-	u8 vbuf[16], *vdst;
+	u8 vbuf[16] __aligned(16), *vdst;
 	unsigned long ea, msr, msr_mask;
 	bool swap;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/vdso.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/vdso.c
@@ -682,7 +682,7 @@
 	node = cpu_to_node(cpu);
 	WARN_ON_ONCE(node > 0xffff);
 
-	val = (cpu & 0xfff) | ((node & 0xffff) << 16);
+	val = (cpu & 0xffff) | ((node & 0xffff) << 16);
 	mtspr(SPRN_SPRG_VDSO_WRITE, val);
 	get_paca()->sprg_vdso = val;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/vdso32/gettimeofday.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/vdso32/gettimeofday.S
@@ -156,12 +156,15 @@
 	cror	cr0*4+eq,cr0*4+eq,cr1*4+eq
 	bne	cr0,99f
 
+	mflr	r12
+  .cfi_register lr,r12
+	bl	__get_datapage@local	/* get data page */
+	lwz	r5, CLOCK_HRTIMER_RES(r3)
+	mtlr	r12
 	li	r3,0
 	cmpli	cr0,r4,0
 	crclr	cr0*4+so
 	beqlr
-	lis	r5,CLOCK_REALTIME_RES@h
-	ori	r5,r5,CLOCK_REALTIME_RES@l
 	stw	r3,TSPC32_TV_SEC(r4)
 	stw	r5,TSPC32_TV_NSEC(r4)
 	blr
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/vdso64/cacheflush.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/vdso64/cacheflush.S
@@ -35,7 +35,7 @@
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5		/* ensure we get enough */
 	lwz	r9,CFG_DCACHE_LOGBLOCKSZ(r10)
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	crclr	cr0*4+so
 	beqlr				/* nothing to do? */
 	mtctr	r8
@@ -52,7 +52,7 @@
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5
 	lwz	r9,CFG_ICACHE_LOGBLOCKSZ(r10)
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	crclr	cr0*4+so
 	beqlr				/* nothing to do? */
 	mtctr	r8
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/vdso64/gettimeofday.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/vdso64/gettimeofday.S
@@ -186,12 +186,15 @@
 	cror	cr0*4+eq,cr0*4+eq,cr1*4+eq
 	bne	cr0,99f
 
+	mflr	r12
+  .cfi_register lr,r12
+	bl	V_LOCAL_FUNC(__get_datapage)
+	lwz	r5, CLOCK_HRTIMER_RES(r3)
+	mtlr	r12
 	li	r3,0
 	cmpldi	cr0,r4,0
 	crclr	cr0*4+so
 	beqlr
-	lis	r5,CLOCK_REALTIME_RES@h
-	ori	r5,r5,CLOCK_REALTIME_RES@l
 	std	r3,TSPC64_TV_SEC(r4)
 	std	r5,TSPC64_TV_NSEC(r4)
 	blr
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kernel/vmlinux.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kernel/vmlinux.lds.S
@@ -98,10 +98,11 @@
 		ALIGN_FUNCTION();
 #endif
 		/* careful! __ftr_alt_* sections need to be close to .text */
-		*(.text.hot TEXT_MAIN .text.fixup .text.unlikely .fixup __ftr_alt_* .ref.text);
+		*(.text.hot .text.hot.* TEXT_MAIN .text.fixup .text.unlikely .text.unlikely.* .fixup __ftr_alt_* .ref.text);
 #ifdef CONFIG_PPC64
 		*(.tramp.ftrace.text);
 #endif
+		NOINSTR_TEXT
 		SCHED_TEXT
 		CPUIDLE_TEXT
 		LOCK_TEXT
@@ -144,6 +145,20 @@
 	}
 
 	. = ALIGN(8);
+	__uaccess_flush_fixup : AT(ADDR(__uaccess_flush_fixup) - LOAD_OFFSET) {
+		__start___uaccess_flush_fixup = .;
+		*(__uaccess_flush_fixup)
+		__stop___uaccess_flush_fixup = .;
+	}
+
+	. = ALIGN(8);
+	__entry_flush_fixup : AT(ADDR(__entry_flush_fixup) - LOAD_OFFSET) {
+		__start___entry_flush_fixup = .;
+		*(__entry_flush_fixup)
+		__stop___entry_flush_fixup = .;
+	}
+
+	. = ALIGN(8);
 	__stf_exit_barrier_fixup : AT(ADDR(__stf_exit_barrier_fixup) - LOAD_OFFSET) {
 		__start___stf_exit_barrier_fixup = .;
 		*(__stf_exit_barrier_fixup)
@@ -196,6 +211,12 @@
 	.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
 		_sinittext = .;
 		INIT_TEXT
+
+		/*
+		 *.init.text might be RO so we must ensure this section ends on
+		 * a page boundary.
+		 */
+		. = ALIGN(PAGE_SIZE);
 		_einittext = .;
 #ifdef CONFIG_PPC64
 		*(.tramp.ftrace.init);
@@ -209,21 +230,9 @@
 		EXIT_TEXT
 	}
 
-	.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
-		INIT_DATA
-	}
-
-	.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
-		INIT_SETUP(16)
-	}
-
-	.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
-		INIT_CALLS
-	}
+	. = ALIGN(PAGE_SIZE);
 
-	.con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
-		CON_INITCALL
-	}
+	INIT_DATA_SECTION(16)
 
 	. = ALIGN(8);
 	__ftr_fixup : AT(ADDR(__ftr_fixup) - LOAD_OFFSET) {
@@ -251,9 +260,6 @@
 		__stop___fw_ftr_fixup = .;
 	}
 #endif
-	.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
-		INIT_RAM_FS
-	}
 
 	PERCPU_SECTION(L1_CACHE_BYTES)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s.c
@@ -867,7 +867,8 @@
 	kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new, change);
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	return kvm->arch.kvm_ops->unmap_hva_range(kvm, start, end);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -38,7 +38,8 @@
 	/* Can't access quadrants 1 or 2 in non-HV mode, call the HV to do it */
 	if (kvmhv_on_pseries())
 		return plpar_hcall_norets(H_COPY_TOFROM_GUEST, lpid, pid, eaddr,
-					  __pa(to), __pa(from), n);
+					  (to != NULL) ? __pa(to): 0,
+					  (from != NULL) ? __pa(from): 0, n);
 
 	quadrant = 1;
 	if (!pid)
@@ -353,7 +354,13 @@
 
 static pte_t *kvmppc_pte_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	pte_t *pte;
+
+	pte = kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	/* pmd_populate() will only reference _pa(pte). */
+	kmemleak_ignore(pte);
+
+	return pte;
 }
 
 static void kvmppc_pte_free(pte_t *ptep)
@@ -363,7 +370,13 @@
 
 static pmd_t *kvmppc_pmd_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	pmd_t *pmd;
+
+	pmd = kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	/* pud_populate() will only reference _pa(pmd). */
+	kmemleak_ignore(pmd);
+
+	return pmd;
 }
 
 static void kvmppc_pmd_free(pmd_t *pmdp)
@@ -1091,6 +1104,11 @@
 					 kvm->arch.lpid);
 		gpa += PAGE_SIZE;
 	}
+	/*
+	 * Increase the mmu notifier sequence number to prevent any page
+	 * fault that read the memslot earlier from writing a PTE.
+	 */
+	kvm->mmu_notifier_seq++;
 	spin_unlock(&kvm->mmu_lock);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_64_vio.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_64_vio.c
@@ -74,6 +74,7 @@
 	struct kvmppc_spapr_tce_iommu_table *stit, *tmp;
 	struct iommu_table_group *table_group = NULL;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stt, &kvm->arch.spapr_tce_tables, list) {
 
 		table_group = iommu_group_get_iommudata(grp);
@@ -88,7 +89,9 @@
 				kref_put(&stit->kref, kvm_spapr_tce_liobn_put);
 			}
 		}
+		cond_resched_rcu();
 	}
+	rcu_read_unlock();
 }
 
 extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
@@ -106,12 +109,14 @@
 	if (!f.file)
 		return -EBADF;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stt, &kvm->arch.spapr_tce_tables, list) {
 		if (stt == f.file->private_data) {
 			found = true;
 			break;
 		}
 	}
+	rcu_read_unlock();
 
 	fdput(f);
 
@@ -144,6 +149,7 @@
 	if (!tbl)
 		return -EINVAL;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stit, &stt->iommu_tables, next) {
 		if (tbl != stit->tbl)
 			continue;
@@ -151,14 +157,17 @@
 		if (!kref_get_unless_zero(&stit->kref)) {
 			/* stit is being destroyed */
 			iommu_tce_table_put(tbl);
+			rcu_read_unlock();
 			return -ENOTTY;
 		}
 		/*
 		 * The table is already known to this KVM, we just increased
 		 * its KVM reference counter and can return.
 		 */
+		rcu_read_unlock();
 		return 0;
 	}
+	rcu_read_unlock();
 
 	stit = kzalloc(sizeof(*stit), GFP_KERNEL);
 	if (!stit) {
@@ -364,18 +373,19 @@
 	if (kvmppc_tce_to_ua(stt->kvm, tce, &ua))
 		return H_TOO_HARD;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stit, &stt->iommu_tables, next) {
 		unsigned long hpa = 0;
 		struct mm_iommu_table_group_mem_t *mem;
 		long shift = stit->tbl->it_page_shift;
 
 		mem = mm_iommu_lookup(stt->kvm->mm, ua, 1ULL << shift);
-		if (!mem)
-			return H_TOO_HARD;
-
-		if (mm_iommu_ua_to_hpa(mem, ua, shift, &hpa))
+		if (!mem || mm_iommu_ua_to_hpa(mem, ua, shift, &hpa)) {
+			rcu_read_unlock();
 			return H_TOO_HARD;
+		}
 	}
+	rcu_read_unlock();
 
 	return H_SUCCESS;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_hv.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_hv.c
@@ -2354,7 +2354,7 @@
 	mutex_unlock(&kvm->lock);
 
 	if (!vcore)
-		goto free_vcpu;
+		goto uninit_vcpu;
 
 	spin_lock(&vcore->lock);
 	++vcore->num_threads;
@@ -2371,6 +2371,8 @@
 
 	return vcpu;
 
+uninit_vcpu:
+	kvm_vcpu_uninit(vcpu);
 free_vcpu:
 	kmem_cache_free(kvm_vcpu_cache, vcpu);
 out:
@@ -3621,6 +3623,7 @@
 		if (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&
 		    kvmppc_get_gpr(vcpu, 3) == H_CEDE) {
 			kvmppc_nested_cede(vcpu);
+			kvmppc_set_gpr(vcpu, 3, 0);
 			trap = 0;
 		}
 	} else {
@@ -5188,6 +5191,12 @@
 	case KVM_PPC_ALLOCATE_HTAB: {
 		u32 htab_order;
 
+		/* If we're a nested hypervisor, we currently only support radix */
+		if (kvmhv_on_pseries()) {
+			r = -EOPNOTSUPP;
+			break;
+		}
+
 		r = -EFAULT;
 		if (get_user(htab_order, (u32 __user *)argp))
 			break;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -11,6 +11,7 @@
  */
 
 #include <asm/ppc_asm.h>
+#include <asm/code-patching-asm.h>
 #include <asm/kvm_asm.h>
 #include <asm/reg.h>
 #include <asm/mmu.h>
@@ -1116,7 +1117,7 @@
 	ld	r7, VCPU_GPR(R7)(r4)
 	bne	ret_to_ultra
 
-	lwz	r0, VCPU_CR(r4)
+	ld	r0, VCPU_CR(r4)
 	mtcr	r0
 
 	ld	r0, VCPU_GPR(R0)(r4)
@@ -1136,7 +1137,7 @@
  *   R3 = UV_RETURN
  */
 ret_to_ultra:
-	lwz	r0, VCPU_CR(r4)
+	ld	r0, VCPU_CR(r4)
 	mtcr	r0
 
 	ld	r0, VCPU_GPR(R3)(r4)
@@ -1487,6 +1488,13 @@
 1:
 #endif /* CONFIG_KVM_XICS */
 
+	/*
+	 * Possibly flush the link stack here, before we do a blr in
+	 * guest_exit_short_path.
+	 */
+1:	nop
+	patch_site 1b patch__call_kvm_flush_link_stack
+
 	/* If we came in through the P9 short path, go back out to C now */
 	lwz	r0, STACK_SLOT_SHORT_PATH(r1)
 	cmpwi	r0, 0
@@ -1963,6 +1971,28 @@
 	mtlr	r0
 	blr
 
+.balign 32
+.global kvm_flush_link_stack
+kvm_flush_link_stack:
+	/* Save LR into r0 */
+	mflr	r0
+
+	/* Flush the link stack. On Power8 it's up to 32 entries in size. */
+	.rept 32
+	bl	.+4
+	.endr
+
+	/* And on Power9 it's up to 64. */
+BEGIN_FTR_SECTION
+	.rept 32
+	bl	.+4
+	.endr
+END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
+
+	/* Restore LR */
+	mtlr	r0
+	blr
+
 kvmppc_guest_external:
 	/* External interrupt, first check for host_ipi. If this is
 	 * set, we know the host wants us out so let's do it now
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_hv_tm.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_hv_tm.c
@@ -3,6 +3,8 @@
  * Copyright 2017 Paul Mackerras, IBM Corp. <paulus@au1.ibm.com>
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kvm_host.h>
 
 #include <asm/kvm_ppc.h>
@@ -44,7 +46,18 @@
 	u64 newmsr, bescr;
 	int ra, rs;
 
-	switch (instr & 0xfc0007ff) {
+	/*
+	 * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
+	 * in these instructions, so masking bit 31 out doesn't change these
+	 * instructions. For treclaim., tsr., and trechkpt. instructions if bit
+	 * 31 = 0 then they are per ISA invalid forms, however P9 UM, in section
+	 * 4.6.10 Book II Invalid Forms, informs specifically that ignoring bit
+	 * 31 is an acceptable way to handle these invalid forms that have
+	 * bit 31 = 0. Moreover, for emulation purposes both forms (w/ and wo/
+	 * bit 31 set) can generate a softpatch interrupt. Hence both forms
+	 * are handled below for these instructions so they behave the same way.
+	 */
+	switch (instr & PO_XOP_OPCODE_MASK) {
 	case PPC_INST_RFID:
 		/* XXX do we need to check for PR=0 here? */
 		newmsr = vcpu->arch.shregs.srr1;
@@ -105,7 +118,8 @@
 		vcpu->arch.shregs.msr = newmsr;
 		return RESUME_GUEST;
 
-	case PPC_INST_TSR:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TSR & PO_XOP_OPCODE_MASK):
 		/* check for PR=1 and arch 2.06 bit set in PCR */
 		if ((msr & MSR_PR) && (vcpu->arch.vcore->pcr & PCR_ARCH_206)) {
 			/* generate an illegal instruction interrupt */
@@ -140,7 +154,8 @@
 		vcpu->arch.shregs.msr = msr;
 		return RESUME_GUEST;
 
-	case PPC_INST_TRECLAIM:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TRECLAIM & PO_XOP_OPCODE_MASK):
 		/* check for TM disabled in the HFSCR or MSR */
 		if (!(vcpu->arch.hfscr & HFSCR_TM)) {
 			/* generate an illegal instruction interrupt */
@@ -176,7 +191,8 @@
 		vcpu->arch.shregs.msr &= ~MSR_TS_MASK;
 		return RESUME_GUEST;
 
-	case PPC_INST_TRECHKPT:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TRECHKPT & PO_XOP_OPCODE_MASK):
 		/* XXX do we need to check for PR=0 here? */
 		/* check for TM disabled in the HFSCR or MSR */
 		if (!(vcpu->arch.hfscr & HFSCR_TM)) {
@@ -208,6 +224,8 @@
 	}
 
 	/* What should we do here? We didn't recognize the instruction */
-	WARN_ON_ONCE(1);
+	kvmppc_core_queue_program(vcpu, SRR1_PROGILL);
+	pr_warn_ratelimited("Unrecognized TM-related instruction %#x for emulation", instr);
+
 	return RESUME_GUEST;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_hv_tm_builtin.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_hv_tm_builtin.c
@@ -23,7 +23,18 @@
 	u64 newmsr, msr, bescr;
 	int rs;
 
-	switch (instr & 0xfc0007ff) {
+	/*
+	 * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
+	 * in these instructions, so masking bit 31 out doesn't change these
+	 * instructions. For the tsr. instruction if bit 31 = 0 then it is per
+	 * ISA an invalid form, however P9 UM, in section 4.6.10 Book II Invalid
+	 * Forms, informs specifically that ignoring bit 31 is an acceptable way
+	 * to handle TM-related invalid forms that have bit 31 = 0. Moreover,
+	 * for emulation purposes both forms (w/ and wo/ bit 31 set) can
+	 * generate a softpatch interrupt. Hence both forms are handled below
+	 * for tsr. to make them behave the same way.
+	 */
+	switch (instr & PO_XOP_OPCODE_MASK) {
 	case PPC_INST_RFID:
 		/* XXX do we need to check for PR=0 here? */
 		newmsr = vcpu->arch.shregs.srr1;
@@ -73,7 +84,8 @@
 		vcpu->arch.shregs.msr = newmsr;
 		return 1;
 
-	case PPC_INST_TSR:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TSR & PO_XOP_OPCODE_MASK):
 		/* we know the MSR has the TS field = S (0b01) here */
 		msr = vcpu->arch.shregs.msr;
 		/* check for PR=1 and arch 2.06 bit set in PCR */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_pr.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_pr.c
@@ -1769,10 +1769,12 @@
 
 	err = kvmppc_mmu_init(vcpu);
 	if (err < 0)
-		goto uninit_vcpu;
+		goto free_shared_page;
 
 	return vcpu;
 
+free_shared_page:
+	free_page((unsigned long)vcpu->arch.shared);
 uninit_vcpu:
 	kvm_vcpu_uninit(vcpu);
 free_shadow_vcpu:
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_xive.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_xive.c
@@ -2005,6 +2005,10 @@
 
 	pr_devel("Creating xive for partition\n");
 
+	/* Already there ? */
+	if (kvm->arch.xive)
+		return -EEXIST;
+
 	xive = kvmppc_xive_get_device(kvm, type);
 	if (!xive)
 		return -ENOMEM;
@@ -2014,12 +2018,6 @@
 	xive->kvm = kvm;
 	mutex_init(&xive->lock);
 
-	/* Already there ? */
-	if (kvm->arch.xive)
-		ret = -EEXIST;
-	else
-		kvm->arch.xive = xive;
-
 	/* We use the default queue size set by the host */
 	xive->q_order = xive_native_default_eq_shift();
 	if (xive->q_order < PAGE_SHIFT)
@@ -2039,6 +2037,7 @@
 	if (ret)
 		return ret;
 
+	kvm->arch.xive = xive;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/book3s_xive_native.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/book3s_xive_native.c
@@ -50,6 +50,24 @@
 	}
 }
 
+static int kvmppc_xive_native_configure_queue(u32 vp_id, struct xive_q *q,
+					      u8 prio, __be32 *qpage,
+					      u32 order, bool can_escalate)
+{
+	int rc;
+	__be32 *qpage_prev = q->qpage;
+
+	rc = xive_native_configure_queue(vp_id, q, prio, qpage, order,
+					 can_escalate);
+	if (rc)
+		return rc;
+
+	if (qpage_prev)
+		put_page(virt_to_page(qpage_prev));
+
+	return rc;
+}
+
 void kvmppc_xive_native_cleanup_vcpu(struct kvm_vcpu *vcpu)
 {
 	struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
@@ -234,6 +252,13 @@
 	}
 
 	state = &sb->irq_state[src];
+
+	/* Some sanity checking */
+	if (!state->valid) {
+		pr_devel("%s: source %lx invalid !\n", __func__, irq);
+		return VM_FAULT_SIGBUS;
+	}
+
 	kvmppc_xive_select_irq(state, &hw_num, &xd);
 
 	arch_spin_lock(&sb->lock);
@@ -582,19 +607,14 @@
 		q->guest_qaddr  = 0;
 		q->guest_qshift = 0;
 
-		rc = xive_native_configure_queue(xc->vp_id, q, priority,
-						 NULL, 0, true);
+		rc = kvmppc_xive_native_configure_queue(xc->vp_id, q, priority,
+							NULL, 0, true);
 		if (rc) {
 			pr_err("Failed to reset queue %d for VCPU %d: %d\n",
 			       priority, xc->server_num, rc);
 			return rc;
 		}
 
-		if (q->qpage) {
-			put_page(virt_to_page(q->qpage));
-			q->qpage = NULL;
-		}
-
 		return 0;
 	}
 
@@ -624,17 +644,18 @@
 
 	srcu_idx = srcu_read_lock(&kvm->srcu);
 	gfn = gpa_to_gfn(kvm_eq.qaddr);
-	page = gfn_to_page(kvm, gfn);
-	if (is_error_page(page)) {
+
+	page_size = kvm_host_page_size(vcpu, gfn);
+	if (1ull << kvm_eq.qshift > page_size) {
 		srcu_read_unlock(&kvm->srcu, srcu_idx);
-		pr_err("Couldn't get queue page %llx!\n", kvm_eq.qaddr);
+		pr_warn("Incompatible host page size %lx!\n", page_size);
 		return -EINVAL;
 	}
 
-	page_size = kvm_host_page_size(kvm, gfn);
-	if (1ull << kvm_eq.qshift > page_size) {
+	page = gfn_to_page(kvm, gfn);
+	if (is_error_page(page)) {
 		srcu_read_unlock(&kvm->srcu, srcu_idx);
-		pr_warn("Incompatible host page size %lx!\n", page_size);
+		pr_err("Couldn't get queue page %llx!\n", kvm_eq.qaddr);
 		return -EINVAL;
 	}
 
@@ -653,8 +674,8 @@
 	  * OPAL level because the use of END ESBs is not supported by
 	  * Linux.
 	  */
-	rc = xive_native_configure_queue(xc->vp_id, q, priority,
-					 (__be32 *) qaddr, kvm_eq.qshift, true);
+	rc = kvmppc_xive_native_configure_queue(xc->vp_id, q, priority,
+					(__be32 *) qaddr, kvm_eq.qshift, true);
 	if (rc) {
 		pr_err("Failed to configure queue %d for VCPU %d: %d\n",
 		       priority, xc->server_num, rc);
@@ -1081,7 +1102,6 @@
 	dev->private = xive;
 	xive->dev = dev;
 	xive->kvm = kvm;
-	kvm->arch.xive = xive;
 	mutex_init(&xive->mapping_lock);
 	mutex_init(&xive->lock);
 
@@ -1102,6 +1122,7 @@
 	if (ret)
 		return ret;
 
+	kvm->arch.xive = xive;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/e500_mmu_host.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/e500_mmu_host.c
@@ -734,7 +734,8 @@
 	return 0;
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	/* kvm_unmap_hva flushes everything anyways */
 	kvm_unmap_hva(kvm, start);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/emulate_loadstore.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/emulate_loadstore.c
@@ -73,7 +73,6 @@
 {
 	struct kvm_run *run = vcpu->run;
 	u32 inst;
-	int ra, rs, rt;
 	enum emulation_result emulated = EMULATE_FAIL;
 	int advance = 1;
 	struct instruction_op op;
@@ -85,10 +84,6 @@
 	if (emulated != EMULATE_DONE)
 		return emulated;
 
-	ra = get_ra(inst);
-	rs = get_rs(inst);
-	rt = get_rt(inst);
-
 	vcpu->arch.mmio_vsx_copy_nums = 0;
 	vcpu->arch.mmio_vsx_offset = 0;
 	vcpu->arch.mmio_copy_type = KVMPPC_VSX_COPY_NONE;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/kvm/powerpc.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/kvm/powerpc.c
@@ -1513,7 +1513,7 @@
 	return emulated;
 }
 
-int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1531,7 +1531,7 @@
 	return result;
 }
 
-int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1549,7 +1549,7 @@
 	return result;
 }
 
-int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1567,7 +1567,7 @@
 	return result;
 }
 
-int kvmppc_get_vmx_byte(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_byte(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/lib/feature-fixups.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/lib/feature-fixups.c
@@ -228,6 +228,110 @@
 	do_stf_exit_barrier_fixups(types);
 }
 
+void do_uaccess_flush_fixups(enum l1d_flush_type types)
+{
+	unsigned int instrs[4], *dest;
+	long *start, *end;
+	int i;
+
+	start = PTRRELOC(&__start___uaccess_flush_fixup);
+	end = PTRRELOC(&__stop___uaccess_flush_fixup);
+
+	instrs[0] = 0x60000000; /* nop */
+	instrs[1] = 0x60000000; /* nop */
+	instrs[2] = 0x60000000; /* nop */
+	instrs[3] = 0x4e800020; /* blr */
+
+	i = 0;
+	if (types == L1D_FLUSH_FALLBACK) {
+		instrs[3] = 0x60000000; /* nop */
+		/* fallthrough to fallback flush */
+	}
+
+	if (types & L1D_FLUSH_ORI) {
+		instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */
+		instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/
+	}
+
+	if (types & L1D_FLUSH_MTTRIG)
+		instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */
+
+	for (i = 0; start < end; start++, i++) {
+		dest = (void *)start + *start;
+
+		pr_devel("patching dest %lx\n", (unsigned long)dest);
+
+		patch_instruction(dest, instrs[0]);
+
+		patch_instruction((dest + 1), instrs[1]);
+		patch_instruction((dest + 2), instrs[2]);
+		patch_instruction((dest + 3), instrs[3]);
+	}
+
+	printk(KERN_DEBUG "uaccess-flush: patched %d locations (%s flush)\n", i,
+		(types == L1D_FLUSH_NONE)       ? "no" :
+		(types == L1D_FLUSH_FALLBACK)   ? "fallback displacement" :
+		(types &  L1D_FLUSH_ORI)        ? (types & L1D_FLUSH_MTTRIG)
+							? "ori+mttrig type"
+							: "ori type" :
+		(types &  L1D_FLUSH_MTTRIG)     ? "mttrig type"
+						: "unknown");
+}
+
+void do_entry_flush_fixups(enum l1d_flush_type types)
+{
+	unsigned int instrs[3], *dest;
+	long *start, *end;
+	int i;
+
+	start = PTRRELOC(&__start___entry_flush_fixup);
+	end = PTRRELOC(&__stop___entry_flush_fixup);
+
+	instrs[0] = 0x60000000; /* nop */
+	instrs[1] = 0x60000000; /* nop */
+	instrs[2] = 0x60000000; /* nop */
+
+	i = 0;
+	if (types == L1D_FLUSH_FALLBACK) {
+		instrs[i++] = 0x7d4802a6; /* mflr r10		*/
+		instrs[i++] = 0x60000000; /* branch patched below */
+		instrs[i++] = 0x7d4803a6; /* mtlr r10		*/
+	}
+
+	if (types & L1D_FLUSH_ORI) {
+		instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */
+		instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/
+	}
+
+	if (types & L1D_FLUSH_MTTRIG)
+		instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */
+
+	for (i = 0; start < end; start++, i++) {
+		dest = (void *)start + *start;
+
+		pr_devel("patching dest %lx\n", (unsigned long)dest);
+
+		patch_instruction(dest, instrs[0]);
+
+		if (types == L1D_FLUSH_FALLBACK)
+			patch_branch((dest + 1), (unsigned long)&entry_flush_fallback,
+				     BRANCH_SET_LINK);
+		else
+			patch_instruction((dest + 1), instrs[1]);
+
+		patch_instruction((dest + 2), instrs[2]);
+	}
+
+	printk(KERN_DEBUG "entry-flush: patched %d locations (%s flush)\n", i,
+		(types == L1D_FLUSH_NONE)       ? "no" :
+		(types == L1D_FLUSH_FALLBACK)   ? "fallback displacement" :
+		(types &  L1D_FLUSH_ORI)        ? (types & L1D_FLUSH_MTTRIG)
+							? "ori+mttrig type"
+							: "ori type" :
+		(types &  L1D_FLUSH_MTTRIG)     ? "mttrig type"
+						: "unknown");
+}
+
 void do_rfi_flush_fixups(enum l1d_flush_type types)
 {
 	unsigned int instrs[3], *dest;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/lib/sstep.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/lib/sstep.c
@@ -8,6 +8,7 @@
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/prefetch.h>
+#include <asm/cpu_has_feature.h>
 #include <asm/sstep.h>
 #include <asm/processor.h>
 #include <linux/uaccess.h>
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/lib/string_32.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/lib/string_32.S
@@ -17,7 +17,7 @@
 LG_CACHELINE_BYTES = L1_CACHE_SHIFT
 CACHELINE_MASK = (L1_CACHE_BYTES-1)
 
-_GLOBAL(__clear_user)
+_GLOBAL(__arch_clear_user)
 /*
  * Use dcbz on the complete cache lines in the destination
  * to set them to zero.  This requires that the destination
@@ -87,4 +87,4 @@
 	EX_TABLE(8b, 91b)
 	EX_TABLE(9b, 91b)
 
-EXPORT_SYMBOL(__clear_user)
+EXPORT_SYMBOL(__arch_clear_user)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/lib/string_64.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/lib/string_64.S
@@ -17,7 +17,7 @@
 	.section	".text"
 
 /**
- * __clear_user: - Zero a block of memory in user space, with less checking.
+ * __arch_clear_user: - Zero a block of memory in user space, with less checking.
  * @to:   Destination address, in user space.
  * @n:    Number of bytes to zero.
  *
@@ -58,7 +58,7 @@
 	mr	r3,r4
 	blr
 
-_GLOBAL_TOC(__clear_user)
+_GLOBAL_TOC(__arch_clear_user)
 	cmpdi	r4,32
 	neg	r6,r3
 	li	r0,0
@@ -181,4 +181,4 @@
 	cmpdi	r4,32
 	blt	.Lshort_clear
 	b	.Lmedium_clear
-EXPORT_SYMBOL(__clear_user)
+EXPORT_SYMBOL(__arch_clear_user)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s32/mmu.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s32/mmu.c
@@ -187,6 +187,7 @@
 	int i;
 	unsigned long base = (unsigned long)_stext - PAGE_OFFSET;
 	unsigned long top = (unsigned long)_etext - PAGE_OFFSET;
+	unsigned long border = (unsigned long)__init_begin - PAGE_OFFSET;
 	unsigned long size;
 
 	if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
@@ -201,9 +202,10 @@
 		size = block_size(base, top);
 		size = max(size, 128UL << 10);
 		if ((top - base) > size) {
-			if (strict_kernel_rwx_enabled())
-				pr_warn("Kernel _etext not properly aligned\n");
 			size <<= 1;
+			if (strict_kernel_rwx_enabled() && base + size > border)
+				pr_warn("Some RW data is getting mapped X. "
+					"Adjust CONFIG_DATA_SHIFT to avoid that.\n");
 		}
 		setibat(i++, PAGE_OFFSET + base, base, size, PAGE_KERNEL_TEXT);
 		base += size;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s64/hash_utils.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s64/hash_utils.c
@@ -294,10 +294,18 @@
 		ret = mmu_hash_ops.hpte_insert(hpteg, vpn, paddr, tprot,
 					       HPTE_V_BOLTED, psize, psize,
 					       ssize);
-
+		if (ret == -1) {
+			/* Try to remove a non bolted entry */
+			ret = mmu_hash_ops.hpte_remove(hpteg);
+			if (ret != -1)
+				ret = mmu_hash_ops.hpte_insert(hpteg, vpn, paddr, tprot,
+							       HPTE_V_BOLTED, psize, psize,
+							       ssize);
+		}
 		if (ret < 0)
 			break;
 
+		cond_resched();
 #ifdef CONFIG_DEBUG_PAGEALLOC
 		if (debug_pagealloc_enabled() &&
 			(paddr >> PAGE_SHIFT) < linear_map_hash_count)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s64/iommu_api.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s64/iommu_api.c
@@ -121,24 +121,6 @@
 		goto free_exit;
 	}
 
-	pageshift = PAGE_SHIFT;
-	for (i = 0; i < entries; ++i) {
-		struct page *page = mem->hpages[i];
-
-		/*
-		 * Allow to use larger than 64k IOMMU pages. Only do that
-		 * if we are backed by hugetlb.
-		 */
-		if ((mem->pageshift > PAGE_SHIFT) && PageHuge(page))
-			pageshift = page_shift(compound_head(page));
-		mem->pageshift = min(mem->pageshift, pageshift);
-		/*
-		 * We don't need struct page reference any more, switch
-		 * to physical address.
-		 */
-		mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
-	}
-
 good_exit:
 	atomic64_set(&mem->mapped, 1);
 	mem->used = 1;
@@ -158,6 +140,27 @@
 		}
 	}
 
+	if (mem->dev_hpa == MM_IOMMU_TABLE_INVALID_HPA) {
+		/*
+		 * Allow to use larger than 64k IOMMU pages. Only do that
+		 * if we are backed by hugetlb. Skip device memory as it is not
+		 * backed with page structs.
+		 */
+		pageshift = PAGE_SHIFT;
+		for (i = 0; i < entries; ++i) {
+			struct page *page = mem->hpages[i];
+
+			if ((mem->pageshift > PAGE_SHIFT) && PageHuge(page))
+				pageshift = page_shift(compound_head(page));
+			mem->pageshift = min(mem->pageshift, pageshift);
+			/*
+			 * We don't need struct page reference any more, switch
+			 * to physical address.
+			 */
+			mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
+		}
+	}
+
 	list_add_rcu(&mem->next, &mm->context.iommu_group_mem_list);
 
 	mutex_unlock(&mem_list_mutex);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s64/pgtable.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s64/pgtable.c
@@ -378,7 +378,6 @@
 	}
 }
 
-#ifdef CONFIG_SMP
 void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int index)
 {
 	unsigned long pgf = (unsigned long)table;
@@ -395,12 +394,6 @@
 
 	return pgtable_free(table, index);
 }
-#else
-void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int index)
-{
-	return pgtable_free(table, index);
-}
-#endif
 
 #ifdef CONFIG_PROC_FS
 atomic_long_t direct_pages_count[MMU_PAGE_COUNT];
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s64/pkeys.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s64/pkeys.c
@@ -83,13 +83,17 @@
 	scan_pkey_feature();
 
 	/*
-	 * Let's assume 32 pkeys on P8 bare metal, if its not defined by device
-	 * tree. We make this exception since skiboot forgot to expose this
-	 * property on power8.
+	 * Let's assume 32 pkeys on P8/P9 bare metal, if its not defined by device
+	 * tree. We make this exception since some version of skiboot forgot to
+	 * expose this property on power8/9.
 	 */
-	if (!pkeys_devtree_defined && !firmware_has_feature(FW_FEATURE_LPAR) &&
-			cpu_has_feature(CPU_FTRS_POWER8))
-		pkeys_total = 32;
+	if (!pkeys_devtree_defined && !firmware_has_feature(FW_FEATURE_LPAR)) {
+		unsigned long pvr = mfspr(SPRN_PVR);
+
+		if (PVR_VER(pvr) == PVR_POWER8 || PVR_VER(pvr) == PVR_POWER8E ||
+		    PVR_VER(pvr) == PVR_POWER8NVL || PVR_VER(pvr) == PVR_POWER9)
+			pkeys_total = 32;
+	}
 
 	/*
 	 * Adjust the upper limit, based on the number of bits supported by
@@ -367,12 +371,14 @@
 		return true;
 
 	pkey_shift = pkeyshift(pkey);
-	if (execute && !(read_iamr() & (IAMR_EX_BIT << pkey_shift)))
-		return true;
+	if (execute)
+		return !(read_iamr() & (IAMR_EX_BIT << pkey_shift));
+
+	amr = read_amr();
+	if (write)
+		return !(amr & (AMR_WR_BIT << pkey_shift));
 
-	amr = read_amr(); /* Delay reading amr until absolutely needed */
-	return ((!write && !(amr & (AMR_RD_BIT << pkey_shift))) ||
-		(write &&  !(amr & (AMR_WR_BIT << pkey_shift))));
+	return !(amr & (AMR_RD_BIT << pkey_shift));
 }
 
 bool arch_pte_access_permitted(u64 pte, bool write, bool execute)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -643,21 +643,6 @@
 	}
 }
 
-void radix__setup_initial_memory_limit(phys_addr_t first_memblock_base,
-				phys_addr_t first_memblock_size)
-{
-	/*
-	 * We don't currently support the first MEMBLOCK not mapping 0
-	 * physical on those processors
-	 */
-	BUG_ON(first_memblock_base != 0);
-
-	/*
-	 * Radix mode is not limited by RMA / VRMA addressing.
-	 */
-	ppc64_rma_size = ULONG_MAX;
-}
-
 #ifdef CONFIG_MEMORY_HOTPLUG
 static void free_pte_table(pte_t *pte_start, pmd_t *pmd)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/book3s64/radix_tlb.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/book3s64/radix_tlb.c
@@ -639,19 +639,29 @@
 	struct mm_struct *mm = arg;
 	unsigned long pid = mm->context.id;
 
+	/*
+	 * A kthread could have done a mmget_not_zero() after the flushing CPU
+	 * checked mm_is_singlethreaded, and be in the process of
+	 * kthread_use_mm when interrupted here. In that case, current->mm will
+	 * be set to mm, because kthread_use_mm() setting ->mm and switching to
+	 * the mm is done with interrupts off.
+	 */
 	if (current->mm == mm)
-		return; /* Local CPU */
+		goto out_flush;
 
 	if (current->active_mm == mm) {
-		/*
-		 * Must be a kernel thread because sender is single-threaded.
-		 */
-		BUG_ON(current->mm);
+		WARN_ON_ONCE(current->mm != NULL);
+		/* Is a kernel thread and is using mm as the lazy tlb */
 		mmgrab(&init_mm);
-		switch_mm(mm, &init_mm, current);
 		current->active_mm = &init_mm;
+		switch_mm_irqs_off(mm, &init_mm, current);
 		mmdrop(mm);
 	}
+
+	atomic_dec(&mm->context.active_cpus);
+	cpumask_clear_cpu(smp_processor_id(), mm_cpumask(mm));
+
+out_flush:
 	_tlbiel_pid(pid, RIC_FLUSH_ALL);
 }
 
@@ -666,7 +676,6 @@
 	 */
 	smp_call_function_many(mm_cpumask(mm), do_exit_flush_lazy_tlb,
 				(void *)mm, 1);
-	mm_reset_thread_local(mm);
 }
 
 void radix__flush_tlb_mm(struct mm_struct *mm)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/drmem.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/drmem.c
@@ -362,10 +362,8 @@
 	if (!drmem_info->lmbs)
 		return;
 
-	for_each_drmem_lmb(lmb) {
+	for_each_drmem_lmb(lmb)
 		read_drconf_v1_cell(lmb, &prop);
-		lmb_set_nid(lmb);
-	}
 }
 
 static void __init init_drmem_v2_lmbs(const __be32 *prop)
@@ -410,8 +408,6 @@
 
 			lmb->aa_index = dr_cell.aa_index;
 			lmb->flags = dr_cell.flags;
-
-			lmb_set_nid(lmb);
 		}
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/fault.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/fault.c
@@ -233,7 +233,7 @@
 
 	// Read/write fault in a valid region (the exception table search passed
 	// above), but blocked by KUAP is bad, it can never succeed.
-	if (bad_kuap_fault(regs, is_write))
+	if (bad_kuap_fault(regs, address, is_write))
 		return true;
 
 	// What's left? Kernel fault on user in well defined regions (extable
@@ -241,6 +241,9 @@
 	return false;
 }
 
+// This comes from 64-bit struct rt_sigframe + __SIGNAL_FRAMESIZE
+#define SIGFRAME_MAX_SIZE	(4096 + 128)
+
 static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address,
 				struct vm_area_struct *vma, unsigned int flags,
 				bool *must_retry)
@@ -248,7 +251,7 @@
 	/*
 	 * N.B. The POWER/Open ABI allows programs to access up to
 	 * 288 bytes below the stack pointer.
-	 * The kernel signal delivery code writes up to about 1.5kB
+	 * The kernel signal delivery code writes a bit over 4KB
 	 * below the stack pointer (r1) before decrementing it.
 	 * The exec code can write slightly over 640kB to the stack
 	 * before setting the user r1.  Thus we allow the stack to
@@ -273,7 +276,7 @@
 		 * between the last mapped region and the stack will
 		 * expand the stack rather than segfaulting.
 		 */
-		if (address + 2048 >= uregs->gpr[1])
+		if (address + SIGFRAME_MAX_SIZE >= uregs->gpr[1])
 			return false;
 
 		if ((flags & FAULT_FLAG_WRITE) && (flags & FAULT_FLAG_USER) &&
@@ -346,7 +349,6 @@
 static inline void cmo_account_page_fault(void) { }
 #endif /* CONFIG_PPC_SMLPAR */
 
-#ifdef CONFIG_PPC_BOOK3S
 static void sanity_check_fault(bool is_write, bool is_user,
 			       unsigned long error_code, unsigned long address)
 {
@@ -354,12 +356,18 @@
 	 * Userspace trying to access kernel address, we get PROTFAULT for that.
 	 */
 	if (is_user && address >= TASK_SIZE) {
+		if ((long)address == -1)
+			return;
+
 		pr_crit_ratelimited("%s[%d]: User access of kernel address (%lx) - exploit attempt? (uid: %d)\n",
 				   current->comm, current->pid, address,
 				   from_kuid(&init_user_ns, current_uid()));
 		return;
 	}
 
+	if (!IS_ENABLED(CONFIG_PPC_BOOK3S))
+		return;
+
 	/*
 	 * For hash translation mode, we should never get a
 	 * PROTFAULT. Any update to pte to reduce access will result in us
@@ -394,10 +402,6 @@
 
 	WARN_ON_ONCE(error_code & DSISR_PROTFAULT);
 }
-#else
-static void sanity_check_fault(bool is_write, bool is_user,
-			       unsigned long error_code, unsigned long address) { }
-#endif /* CONFIG_PPC_BOOK3S */
 
 /*
  * Define the correct "is_write" bit in error_code based
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/hugetlbpage.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/hugetlbpage.c
@@ -53,20 +53,24 @@
 	if (pshift >= pdshift) {
 		cachep = PGT_CACHE(PTE_T_ORDER);
 		num_hugepd = 1 << (pshift - pdshift);
+		new = NULL;
 	} else if (IS_ENABLED(CONFIG_PPC_8xx)) {
-		cachep = PGT_CACHE(PTE_INDEX_SIZE);
+		cachep = NULL;
 		num_hugepd = 1;
+		new = pte_alloc_one(mm);
 	} else {
 		cachep = PGT_CACHE(pdshift - pshift);
 		num_hugepd = 1;
+		new = NULL;
 	}
 
-	if (!cachep) {
+	if (!cachep && !new) {
 		WARN_ONCE(1, "No page table cache created for hugetlb tables");
 		return -ENOMEM;
 	}
 
-	new = kmem_cache_alloc(cachep, pgtable_gfp_flags(mm, GFP_KERNEL));
+	if (cachep)
+		new = kmem_cache_alloc(cachep, pgtable_gfp_flags(mm, GFP_KERNEL));
 
 	BUG_ON(pshift > HUGEPD_SHIFT_MASK);
 	BUG_ON((unsigned long)new & HUGEPD_SHIFT_MASK);
@@ -97,7 +101,10 @@
 	if (i < num_hugepd) {
 		for (i = i - 1 ; i >= 0; i--, hpdp--)
 			*hpdp = __hugepd(0);
-		kmem_cache_free(cachep, new);
+		if (cachep)
+			kmem_cache_free(cachep, new);
+		else
+			pte_free(mm, new);
 	} else {
 		kmemleak_ignore(new);
 	}
@@ -324,8 +331,7 @@
 	if (shift >= pdshift)
 		hugepd_free(tlb, hugepte);
 	else if (IS_ENABLED(CONFIG_PPC_8xx))
-		pgtable_free_tlb(tlb, hugepte,
-				 get_hugepd_cache_index(PTE_INDEX_SIZE));
+		pgtable_free_tlb(tlb, hugepte, 0);
 	else
 		pgtable_free_tlb(tlb, hugepte,
 				 get_hugepd_cache_index(pdshift - shift));
@@ -639,12 +645,13 @@
 		 * if we have pdshift and shift value same, we don't
 		 * use pgt cache for hugepd.
 		 */
-		if (pdshift > shift && IS_ENABLED(CONFIG_PPC_8xx))
-			pgtable_cache_add(PTE_INDEX_SIZE);
-		else if (pdshift > shift)
-			pgtable_cache_add(pdshift - shift);
-		else if (IS_ENABLED(CONFIG_PPC_FSL_BOOK3E) || IS_ENABLED(CONFIG_PPC_8xx))
+		if (pdshift > shift) {
+			if (!IS_ENABLED(CONFIG_PPC_8xx))
+				pgtable_cache_add(pdshift - shift);
+		} else if (IS_ENABLED(CONFIG_PPC_FSL_BOOK3E) ||
+			   IS_ENABLED(CONFIG_PPC_8xx)) {
 			pgtable_cache_add(PTE_T_ORDER);
+		}
 
 		configured = true;
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/init_64.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/init_64.c
@@ -415,9 +415,16 @@
 	if (!(mfmsr() & MSR_HV))
 		early_check_vec5();
 
-	if (early_radix_enabled())
+	if (early_radix_enabled()) {
 		radix__early_init_devtree();
-	else
+		/*
+		 * We have finalized the translation we are going to use by now.
+		 * Radix mode is not limited by RMA / VRMA addressing.
+		 * Hence don't limit memblock allocations.
+		 */
+		ppc64_rma_size = ULONG_MAX;
+		memblock_set_current_limit(MEMBLOCK_ALLOC_ANYWHERE);
+	} else
 		hash__early_init_devtree();
 }
 #endif /* CONFIG_PPC_BOOK3S_64 */
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/kasan/kasan_init_32.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/kasan/kasan_init_32.c
@@ -117,7 +117,7 @@
 
 	kasan_populate_pte(kasan_early_shadow_pte, prot);
 
-	for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {
+	for (k_cur = k_start & PAGE_MASK; k_cur != k_end; k_cur += PAGE_SIZE) {
 		pmd_t *pmd = pmd_offset(pud_offset(pgd_offset_k(k_cur), k_cur), k_cur);
 		pte_t *ptep = pte_offset_kernel(pmd, k_cur);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/mem.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/mem.c
@@ -104,6 +104,27 @@
 	return -ENODEV;
 }
 
+#define FLUSH_CHUNK_SIZE SZ_1G
+/**
+ * flush_dcache_range_chunked(): Write any modified data cache blocks out to
+ * memory and invalidate them, in chunks of up to FLUSH_CHUNK_SIZE
+ * Does not invalidate the corresponding instruction cache blocks.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ * @chunk: the max size of the chunks
+ */
+static void flush_dcache_range_chunked(unsigned long start, unsigned long stop,
+				       unsigned long chunk)
+{
+	unsigned long i;
+
+	for (i = start; i < stop; i += chunk) {
+		flush_dcache_range(i, min(stop, i + chunk));
+		cond_resched();
+	}
+}
+
 int __ref arch_add_memory(int nid, u64 start, u64 size,
 			struct mhp_restrictions *restrictions)
 {
@@ -120,7 +141,8 @@
 			start, start + size, rc);
 		return -EFAULT;
 	}
-	flush_dcache_range(start, start + size);
+
+	flush_dcache_range_chunked(start, start + size, FLUSH_CHUNK_SIZE);
 
 	return __add_pages(nid, start_pfn, nr_pages, restrictions);
 }
@@ -130,14 +152,14 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct page *page = pfn_to_page(start_pfn) + vmem_altmap_offset(altmap);
 	int ret;
 
-	__remove_pages(page_zone(page), start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 
 	/* Remove htab bolted mappings for this section of memory */
 	start = (unsigned long)__va(start);
-	flush_dcache_range(start, start + size);
+	flush_dcache_range_chunked(start, start + size, FLUSH_CHUNK_SIZE);
+
 	ret = remove_section_mapping(start, start + size);
 	WARN_ON_ONCE(ret);
 
@@ -260,6 +282,14 @@
 	BUILD_BUG_ON(MMU_PAGE_COUNT > 16);
 
 #ifdef CONFIG_SWIOTLB
+	/*
+	 * Some platforms (e.g. 85xx) limit DMA-able memory way below
+	 * 4G. We force memblock to bottom-up mode to ensure that the
+	 * memory allocated in swiotlb_init() is DMA-able.
+	 * As it's the last memblock allocation, no need to reset it
+	 * back to to-down.
+	 */
+	memblock_set_bottom_up(true);
 	swiotlb_init(0);
 #endif
 
@@ -318,6 +348,122 @@
 	free_initmem_default(POISON_FREE_INITMEM);
 }
 
+/**
+ * flush_coherent_icache() - if a CPU has a coherent icache, flush it
+ * @addr: The base address to use (can be any valid address, the whole cache will be flushed)
+ * Return true if the cache was flushed, false otherwise
+ */
+static inline bool flush_coherent_icache(unsigned long addr)
+{
+	/*
+	 * For a snooping icache, we still need a dummy icbi to purge all the
+	 * prefetched instructions from the ifetch buffers. We also need a sync
+	 * before the icbi to order the the actual stores to memory that might
+	 * have modified instructions with the icbi.
+	 */
+	if (cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) {
+		mb(); /* sync */
+		allow_read_from_user((const void __user *)addr, L1_CACHE_BYTES);
+		icbi((void *)addr);
+		prevent_read_from_user((const void __user *)addr, L1_CACHE_BYTES);
+		mb(); /* sync */
+		isync();
+		return true;
+	}
+
+	return false;
+}
+
+/**
+ * invalidate_icache_range() - Flush the icache by issuing icbi across an address range
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ */
+static void invalidate_icache_range(unsigned long start, unsigned long stop)
+{
+	unsigned long shift = l1_icache_shift();
+	unsigned long bytes = l1_icache_bytes();
+	char *addr = (char *)(start & ~(bytes - 1));
+	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
+	unsigned long i;
+
+	for (i = 0; i < size >> shift; i++, addr += bytes)
+		icbi(addr);
+
+	mb(); /* sync */
+	isync();
+}
+
+/**
+ * flush_icache_range: Write any modified data cache blocks out to memory
+ * and invalidate the corresponding blocks in the instruction cache
+ *
+ * Generic code will call this after writing memory, before executing from it.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ */
+void flush_icache_range(unsigned long start, unsigned long stop)
+{
+	if (flush_coherent_icache(start))
+		return;
+
+	clean_dcache_range(start, stop);
+
+	if (IS_ENABLED(CONFIG_44x)) {
+		/*
+		 * Flash invalidate on 44x because we are passed kmapped
+		 * addresses and this doesn't work for userspace pages due to
+		 * the virtually tagged icache.
+		 */
+		iccci((void *)start);
+		mb(); /* sync */
+		isync();
+	} else
+		invalidate_icache_range(start, stop);
+}
+EXPORT_SYMBOL(flush_icache_range);
+
+#if !defined(CONFIG_PPC_8xx) && !defined(CONFIG_PPC64)
+/**
+ * flush_dcache_icache_phys() - Flush a page by it's physical address
+ * @physaddr: the physical address of the page
+ */
+static void flush_dcache_icache_phys(unsigned long physaddr)
+{
+	unsigned long bytes = l1_dcache_bytes();
+	unsigned long nb = PAGE_SIZE / bytes;
+	unsigned long addr = physaddr & PAGE_MASK;
+	unsigned long msr, msr0;
+	unsigned long loop1 = addr, loop2 = addr;
+
+	msr0 = mfmsr();
+	msr = msr0 & ~MSR_DR;
+	/*
+	 * This must remain as ASM to prevent potential memory accesses
+	 * while the data MMU is disabled
+	 */
+	asm volatile(
+		"   mtctr %2;\n"
+		"   mtmsr %3;\n"
+		"   isync;\n"
+		"0: dcbst   0, %0;\n"
+		"   addi    %0, %0, %4;\n"
+		"   bdnz    0b;\n"
+		"   sync;\n"
+		"   mtctr %2;\n"
+		"1: icbi    0, %1;\n"
+		"   addi    %1, %1, %4;\n"
+		"   bdnz    1b;\n"
+		"   sync;\n"
+		"   mtmsr %5;\n"
+		"   isync;\n"
+		: "+&r" (loop1), "+&r" (loop2)
+		: "r" (nb), "r" (msr), "i" (bytes), "r" (msr0)
+		: "ctr", "memory");
+}
+#endif // !defined(CONFIG_PPC_8xx) && !defined(CONFIG_PPC64)
+
 /*
  * This is called when a page has been modified by the kernel.
  * It just marks the page as not i-cache clean.  We do the i-cache
@@ -350,12 +496,46 @@
 		__flush_dcache_icache(start);
 		kunmap_atomic(start);
 	} else {
-		__flush_dcache_icache_phys(page_to_pfn(page) << PAGE_SHIFT);
+		unsigned long addr = page_to_pfn(page) << PAGE_SHIFT;
+
+		if (flush_coherent_icache(addr))
+			return;
+		flush_dcache_icache_phys(addr);
 	}
 #endif
 }
 EXPORT_SYMBOL(flush_dcache_icache_page);
 
+/**
+ * __flush_dcache_icache(): Flush a particular page from the data cache to RAM.
+ * Note: this is necessary because the instruction cache does *not*
+ * snoop from the data cache.
+ *
+ * @page: the address of the page to flush
+ */
+void __flush_dcache_icache(void *p)
+{
+	unsigned long addr = (unsigned long)p;
+
+	if (flush_coherent_icache(addr))
+		return;
+
+	clean_dcache_range(addr, addr + PAGE_SIZE);
+
+	/*
+	 * We don't flush the icache on 44x. Those have a virtual icache and we
+	 * don't have access to the virtual address here (it's not the page
+	 * vaddr but where it's mapped in user space). The flushing of the
+	 * icache on these is handled elsewhere, when a change in the address
+	 * space occurs, before returning to user space.
+	 */
+
+	if (mmu_has_feature(MMU_FTR_TYPE_44x))
+		return;
+
+	invalidate_icache_range(addr, addr + PAGE_SIZE);
+}
+
 void clear_user_page(void *page, unsigned long vaddr, struct page *pg)
 {
 	clear_page(page);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/nohash/tlb_low.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/nohash/tlb_low.S
@@ -397,7 +397,7 @@
  * extern void loadcam_entry(unsigned int index)
  *
  * Load TLBCAM[index] entry in to the L2 CAM MMU
- * Must preserve r7, r8, r9, and r10
+ * Must preserve r7, r8, r9, r10 and r11
  */
 _GLOBAL(loadcam_entry)
 	mflr	r5
@@ -433,6 +433,10 @@
  */
 _GLOBAL(loadcam_multi)
 	mflr	r8
+	/* Don't switch to AS=1 if already there */
+	mfmsr	r11
+	andi.	r11,r11,MSR_IS
+	bne	10f
 
 	/*
 	 * Set up temporary TLB entry that is the same as what we're
@@ -458,6 +462,7 @@
 	mtmsr	r6
 	isync
 
+10:
 	mr	r9,r3
 	add	r10,r3,r4
 2:	bl	loadcam_entry
@@ -466,6 +471,10 @@
 	mr	r3,r9
 	blt	2b
 
+	/* Don't return to AS=0 if we were in AS=1 at function start */
+	andi.	r11,r11,MSR_IS
+	bne	3f
+
 	/* Return to AS=0 and clear the temporary entry */
 	mfmsr	r6
 	rlwinm.	r6,r6,0,~(MSR_IS|MSR_DS)
@@ -481,6 +490,7 @@
 	tlbwe
 	isync
 
+3:
 	mtlr	r8
 	blr
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/pgtable_32.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/pgtable_32.c
@@ -207,7 +207,7 @@
 	unsigned long numpages = PFN_UP((unsigned long)_einittext) -
 				 PFN_DOWN((unsigned long)_sinittext);
 
-	if (v_block_mapped((unsigned long)_stext + 1))
+	if (v_block_mapped((unsigned long)_sinittext))
 		mmu_mark_initmem_nx();
 	else
 		change_page_attr(page, numpages, PAGE_KERNEL);
@@ -219,8 +219,9 @@
 	struct page *page;
 	unsigned long numpages;
 
-	if (v_block_mapped((unsigned long)_sinittext)) {
+	if (v_block_mapped((unsigned long)_stext + 1)) {
 		mmu_mark_rodata_ro();
+		ptdump_check_wx();
 		return;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/ptdump/hashpagetable.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/ptdump/hashpagetable.c
@@ -259,7 +259,7 @@
 	for (i = 0; i < HPTES_PER_GROUP; i += 4, hpte_group += 4) {
 		lpar_rc = plpar_pte_read_4(0, hpte_group, (void *)ptes);
 
-		if (lpar_rc != H_SUCCESS)
+		if (lpar_rc)
 			continue;
 		for (j = 0; j < 4; j++) {
 			if (HPTE_V_COMPARE(ptes[j].v, want_v) &&
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/ptdump/ptdump.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/ptdump/ptdump.c
@@ -58,6 +58,7 @@
 	unsigned long start_address;
 	unsigned long start_pa;
 	unsigned long last_pa;
+	unsigned long page_size;
 	unsigned int level;
 	u64 current_flags;
 	bool check_wx;
@@ -155,9 +156,9 @@
 #endif
 
 	pt_dump_seq_printf(st->seq, REG "-" REG " ", st->start_address, addr - 1);
-	if (st->start_pa == st->last_pa && st->start_address + PAGE_SIZE != addr) {
+	if (st->start_pa == st->last_pa && st->start_address + st->page_size != addr) {
 		pt_dump_seq_printf(st->seq, "[" REG "]", st->start_pa);
-		delta = PAGE_SIZE >> 10;
+		delta = st->page_size >> 10;
 	} else {
 		pt_dump_seq_printf(st->seq, " " REG " ", st->start_pa);
 		delta = (addr - st->start_address) >> 10;
@@ -173,10 +174,12 @@
 
 static void note_prot_wx(struct pg_state *st, unsigned long addr)
 {
+	pte_t pte = __pte(st->current_flags);
+
 	if (!IS_ENABLED(CONFIG_PPC_DEBUG_WX) || !st->check_wx)
 		return;
 
-	if (!((st->current_flags & pgprot_val(PAGE_KERNEL_X)) == pgprot_val(PAGE_KERNEL_X)))
+	if (!pte_write(pte) || !pte_exec(pte))
 		return;
 
 	WARN_ONCE(1, "powerpc/mm: Found insecure W+X mapping at address %p/%pS\n",
@@ -186,7 +189,7 @@
 }
 
 static void note_page(struct pg_state *st, unsigned long addr,
-	       unsigned int level, u64 val)
+	       unsigned int level, u64 val, unsigned long page_size)
 {
 	u64 flag = val & pg_level[level].mask;
 	u64 pa = val & PTE_RPN_MASK;
@@ -198,6 +201,7 @@
 		st->start_address = addr;
 		st->start_pa = pa;
 		st->last_pa = pa;
+		st->page_size = page_size;
 		pt_dump_seq_printf(st->seq, "---[ %s ]---\n", st->marker->name);
 	/*
 	 * Dump the section of virtual memory when:
@@ -209,7 +213,7 @@
 	 */
 	} else if (flag != st->current_flags || level != st->level ||
 		   addr >= st->marker[1].start_address ||
-		   (pa != st->last_pa + PAGE_SIZE &&
+		   (pa != st->last_pa + st->page_size &&
 		    (pa != st->start_pa || st->start_pa != st->last_pa))) {
 
 		/* Check the PTE flags */
@@ -237,6 +241,7 @@
 		st->start_address = addr;
 		st->start_pa = pa;
 		st->last_pa = pa;
+		st->page_size = page_size;
 		st->current_flags = flag;
 		st->level = level;
 	} else {
@@ -252,7 +257,7 @@
 
 	for (i = 0; i < PTRS_PER_PTE; i++, pte++) {
 		addr = start + i * PAGE_SIZE;
-		note_page(st, addr, 4, pte_val(*pte));
+		note_page(st, addr, 4, pte_val(*pte), PAGE_SIZE);
 
 	}
 }
@@ -269,7 +274,7 @@
 			/* pmd exists */
 			walk_pte(st, pmd, addr);
 		else
-			note_page(st, addr, 3, pmd_val(*pmd));
+			note_page(st, addr, 3, pmd_val(*pmd), PMD_SIZE);
 	}
 }
 
@@ -285,7 +290,7 @@
 			/* pud exists */
 			walk_pmd(st, pud, addr);
 		else
-			note_page(st, addr, 2, pud_val(*pud));
+			note_page(st, addr, 2, pud_val(*pud), PUD_SIZE);
 	}
 }
 
@@ -304,7 +309,7 @@
 			/* pgd exists */
 			walk_pud(st, pgd, addr);
 		else
-			note_page(st, addr, 1, pgd_val(*pgd));
+			note_page(st, addr, 1, pgd_val(*pgd), PGDIR_SIZE);
 	}
 }
 
@@ -359,7 +364,7 @@
 
 	/* Traverse kernel page tables */
 	walk_pagetables(&st);
-	note_page(&st, 0, 0, 0);
+	note_page(&st, 0, 0, 0, 0);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/ptdump/shared.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/ptdump/shared.c
@@ -31,6 +31,11 @@
 		.set	= "present",
 		.clear	= "       ",
 	}, {
+		.mask	= _PAGE_COHERENT,
+		.val	= _PAGE_COHERENT,
+		.set	= "coherent",
+		.clear	= "        ",
+	}, {
 		.mask	= _PAGE_GUARDED,
 		.val	= _PAGE_GUARDED,
 		.set	= "guarded",
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/mm/slice.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/mm/slice.c
@@ -50,7 +50,7 @@
 
 #endif
 
-static inline bool slice_addr_is_low(unsigned long addr)
+static inline notrace bool slice_addr_is_low(unsigned long addr)
 {
 	u64 tmp = (u64)addr;
 
@@ -659,7 +659,7 @@
 				       mm_ctx_user_psize(&current->mm->context), 1);
 }
 
-unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr)
+unsigned int notrace get_slice_psize(struct mm_struct *mm, unsigned long addr)
 {
 	unsigned char *psizes;
 	int index, mask_index;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/perf/core-book3s.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/perf/core-book3s.c
@@ -133,6 +133,9 @@
 
 bool is_sier_available(void)
 {
+	if (!ppmu)
+		return false;
+
 	if (ppmu->flags & PPMU_HAS_SIER)
 		return true;
 
@@ -1522,9 +1525,16 @@
 	ret = 0;
  out:
 	if (has_branch_stack(event)) {
-		power_pmu_bhrb_enable(event);
-		cpuhw->bhrb_filter = ppmu->bhrb_filter_map(
-					event->attr.branch_sample_type);
+		u64 bhrb_filter = -1;
+
+		if (ppmu->bhrb_filter_map)
+			bhrb_filter = ppmu->bhrb_filter_map(
+				event->attr.branch_sample_type);
+
+		if (bhrb_filter != -1) {
+			cpuhw->bhrb_filter = bhrb_filter;
+			power_pmu_bhrb_enable(event);
+		}
 	}
 
 	perf_pmu_enable(event->pmu);
@@ -1846,7 +1856,6 @@
 	int n;
 	int err;
 	struct cpu_hw_events *cpuhw;
-	u64 bhrb_filter;
 
 	if (!ppmu)
 		return -ENOENT;
@@ -1952,7 +1961,10 @@
 	err = power_check_constraints(cpuhw, events, cflags, n + 1);
 
 	if (has_branch_stack(event)) {
-		bhrb_filter = ppmu->bhrb_filter_map(
+		u64 bhrb_filter = -1;
+
+		if (ppmu->bhrb_filter_map)
+			bhrb_filter = ppmu->bhrb_filter_map(
 					event->attr.branch_sample_type);
 
 		if (bhrb_filter == -1) {
@@ -2065,7 +2077,17 @@
 			left += period;
 			if (left <= 0)
 				left = period;
-			record = siar_valid(regs);
+
+			/*
+			 * If address is not requested in the sample via
+			 * PERF_SAMPLE_IP, just record that sample irrespective
+			 * of SIAR valid check.
+			 */
+			if (event->attr.sample_type & PERF_SAMPLE_IP)
+				record = siar_valid(regs);
+			else
+				record = 1;
+
 			event->hw.last_period = event->hw.sample_period;
 		}
 		if (left < 0x80000000LL)
@@ -2078,6 +2100,17 @@
 	perf_event_update_userpage(event);
 
 	/*
+	 * Due to hardware limitation, sometimes SIAR could sample a kernel
+	 * address even when freeze on supervisor state (kernel) is set in
+	 * MMCR2. Check attr.exclude_kernel and address to drop the sample in
+	 * these cases.
+	 */
+	if (event->attr.exclude_kernel &&
+	    (event->attr.sample_type & PERF_SAMPLE_IP) &&
+	    is_kernel_addr(mfspr(SPRN_SIAR)))
+		record = 0;
+
+	/*
 	 * Finally record data if requested.
 	 */
 	if (record) {
@@ -2106,6 +2139,10 @@
 
 		if (perf_event_overflow(event, &data, regs))
 			power_pmu_stop(event, 0);
+	} else if (period) {
+		/* Account for interrupt in case of invalid SIAR */
+		if (perf_event_account_interrupt(event))
+			power_pmu_stop(event, 0);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/perf/hv-24x7.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/perf/hv-24x7.c
@@ -1400,16 +1400,6 @@
 			h24x7hw = &get_cpu_var(hv_24x7_hw);
 			h24x7hw->events[i] = event;
 			put_cpu_var(h24x7hw);
-			/*
-			 * Clear the event count so we can compute the _change_
-			 * in the 24x7 raw counter value at the end of the txn.
-			 *
-			 * Note that we could alternatively read the 24x7 value
-			 * now and save its value in event->hw.prev_count. But
-			 * that would require issuing a hcall, which would then
-			 * defeat the purpose of using the txn interface.
-			 */
-			local64_set(&event->count, 0);
 		}
 
 		put_cpu_var(hv_24x7_reqb);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/perf/hv-gpci-requests.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/perf/hv-gpci-requests.h
@@ -95,7 +95,7 @@
 
 #define REQUEST_NAME system_performance_capabilities
 #define REQUEST_NUM 0x40
-#define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
+#define REQUEST_IDX_KIND "starting_index=0xffffffff"
 #include I(REQUEST_BEGIN)
 REQUEST(__field(0,	1,	perf_collect_privileged)
 	__field(0x1,	1,	capability_mask)
@@ -223,7 +223,7 @@
 
 #define REQUEST_NAME system_hypervisor_times
 #define REQUEST_NUM 0xF0
-#define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
+#define REQUEST_IDX_KIND "starting_index=0xffffffff"
 #include I(REQUEST_BEGIN)
 REQUEST(__count(0,	8,	time_spent_to_dispatch_virtual_processors)
 	__count(0x8,	8,	time_spent_processing_virtual_processor_timers)
@@ -234,7 +234,7 @@
 
 #define REQUEST_NAME system_tlbie_count_and_time
 #define REQUEST_NUM 0xF4
-#define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
+#define REQUEST_IDX_KIND "starting_index=0xffffffff"
 #include I(REQUEST_BEGIN)
 REQUEST(__count(0,	8,	tlbie_instructions_issued)
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/perf/imc-pmu.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/perf/imc-pmu.c
@@ -44,6 +44,16 @@
 static struct imc_pmu_ref *trace_imc_refc;
 static int trace_imc_mem_size;
 
+/*
+ * Global data structure used to avoid races between thread,
+ * core and trace-imc
+ */
+static struct imc_pmu_ref imc_global_refc = {
+	.lock = __MUTEX_INITIALIZER(imc_global_refc.lock),
+	.id = 0,
+	.refc = 0,
+};
+
 static struct imc_pmu *imc_event_to_pmu(struct perf_event *event)
 {
 	return container_of(event->pmu, struct imc_pmu, pmu);
@@ -698,6 +708,16 @@
 			return -EINVAL;
 
 		ref->refc = 0;
+		/*
+		 * Reduce the global reference count, if this is the
+		 * last cpu in this core and core-imc event running
+		 * in this cpu.
+		 */
+		mutex_lock(&imc_global_refc.lock);
+		if (imc_global_refc.id == IMC_DOMAIN_CORE)
+			imc_global_refc.refc--;
+
+		mutex_unlock(&imc_global_refc.lock);
 	}
 	return 0;
 }
@@ -710,6 +730,23 @@
 				 ppc_core_imc_cpu_offline);
 }
 
+static void reset_global_refc(struct perf_event *event)
+{
+		mutex_lock(&imc_global_refc.lock);
+		imc_global_refc.refc--;
+
+		/*
+		 * If no other thread is running any
+		 * event for this domain(thread/core/trace),
+		 * set the global id to zero.
+		 */
+		if (imc_global_refc.refc <= 0) {
+			imc_global_refc.refc = 0;
+			imc_global_refc.id = 0;
+		}
+		mutex_unlock(&imc_global_refc.lock);
+}
+
 static void core_imc_counters_release(struct perf_event *event)
 {
 	int rc, core_id;
@@ -759,6 +796,8 @@
 		ref->refc = 0;
 	}
 	mutex_unlock(&ref->lock);
+
+	reset_global_refc(event);
 }
 
 static int core_imc_event_init(struct perf_event *event)
@@ -819,6 +858,29 @@
 	++ref->refc;
 	mutex_unlock(&ref->lock);
 
+	/*
+	 * Since the system can run either in accumulation or trace-mode
+	 * of IMC at a time, core-imc events are allowed only if no other
+	 * trace/thread imc events are enabled/monitored.
+	 *
+	 * Take the global lock, and check the refc.id
+	 * to know whether any other trace/thread imc
+	 * events are running.
+	 */
+	mutex_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == 0 || imc_global_refc.id == IMC_DOMAIN_CORE) {
+		/*
+		 * No other trace/thread imc events are running in
+		 * the system, so set the refc.id to core-imc.
+		 */
+		imc_global_refc.id = IMC_DOMAIN_CORE;
+		imc_global_refc.refc++;
+	} else {
+		mutex_unlock(&imc_global_refc.lock);
+		return -EBUSY;
+	}
+	mutex_unlock(&imc_global_refc.lock);
+
 	event->hw.event_base = (u64)pcmi->vbase + (config & IMC_EVENT_OFFSET_MASK);
 	event->destroy = core_imc_counters_release;
 	return 0;
@@ -877,7 +939,23 @@
 
 static int ppc_thread_imc_cpu_offline(unsigned int cpu)
 {
-	mtspr(SPRN_LDBAR, 0);
+	/*
+	 * Set the bit 0 of LDBAR to zero.
+	 *
+	 * If bit 0 of LDBAR is unset, it will stop posting
+	 * the counter data to memory.
+	 * For thread-imc, bit 0 of LDBAR will be set to 1 in the
+	 * event_add function. So reset this bit here, to stop the updates
+	 * to memory in the cpu_offline path.
+	 */
+	mtspr(SPRN_LDBAR, (mfspr(SPRN_LDBAR) & (~(1UL << 63))));
+
+	/* Reduce the refc if thread-imc event running on this cpu */
+	mutex_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == IMC_DOMAIN_THREAD)
+		imc_global_refc.refc--;
+	mutex_unlock(&imc_global_refc.lock);
+
 	return 0;
 }
 
@@ -916,7 +994,22 @@
 	if (!target)
 		return -EINVAL;
 
+	mutex_lock(&imc_global_refc.lock);
+	/*
+	 * Check if any other trace/core imc events are running in the
+	 * system, if not set the global id to thread-imc.
+	 */
+	if (imc_global_refc.id == 0 || imc_global_refc.id == IMC_DOMAIN_THREAD) {
+		imc_global_refc.id = IMC_DOMAIN_THREAD;
+		imc_global_refc.refc++;
+	} else {
+		mutex_unlock(&imc_global_refc.lock);
+		return -EBUSY;
+	}
+	mutex_unlock(&imc_global_refc.lock);
+
 	event->pmu->task_ctx_nr = perf_sw_context;
+	event->destroy = reset_global_refc;
 	return 0;
 }
 
@@ -1063,10 +1156,12 @@
 	int core_id;
 	struct imc_pmu_ref *ref;
 
-	mtspr(SPRN_LDBAR, 0);
-
 	core_id = smp_processor_id() / threads_per_core;
 	ref = &core_imc_refc[core_id];
+	if (!ref) {
+		pr_debug("imc: Failed to get event reference count\n");
+		return;
+	}
 
 	mutex_lock(&ref->lock);
 	ref->refc--;
@@ -1082,6 +1177,10 @@
 		ref->refc = 0;
 	}
 	mutex_unlock(&ref->lock);
+
+	/* Set bit 0 of LDBAR to zero, to stop posting updates to memory */
+	mtspr(SPRN_LDBAR, (mfspr(SPRN_LDBAR) & (~(1UL << 63))));
+
 	/*
 	 * Take a snapshot and calculate the delta and update
 	 * the event counter values.
@@ -1133,7 +1232,18 @@
 
 static int ppc_trace_imc_cpu_offline(unsigned int cpu)
 {
-	mtspr(SPRN_LDBAR, 0);
+	/*
+	 * No need to set bit 0 of LDBAR to zero, as
+	 * it is set to zero for imc trace-mode
+	 *
+	 * Reduce the refc if any trace-imc event running
+	 * on this cpu.
+	 */
+	mutex_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == IMC_DOMAIN_TRACE)
+		imc_global_refc.refc--;
+	mutex_unlock(&imc_global_refc.lock);
+
 	return 0;
 }
 
@@ -1226,15 +1336,14 @@
 	local_mem = get_trace_imc_event_base_addr();
 	ldbar_value = ((u64)local_mem & THREAD_IMC_LDBAR_MASK) | TRACE_IMC_ENABLE;
 
-	if (core_imc_refc)
-		ref = &core_imc_refc[core_id];
+	/* trace-imc reference count */
+	if (trace_imc_refc)
+		ref = &trace_imc_refc[core_id];
 	if (!ref) {
-		/* If core-imc is not enabled, use trace-imc reference count */
-		if (trace_imc_refc)
-			ref = &trace_imc_refc[core_id];
-		if (!ref)
-			return -EINVAL;
+		pr_debug("imc: Failed to get the event reference count\n");
+		return -EINVAL;
 	}
+
 	mtspr(SPRN_LDBAR, ldbar_value);
 	mutex_lock(&ref->lock);
 	if (ref->refc == 0) {
@@ -1242,13 +1351,11 @@
 				get_hard_smp_processor_id(smp_processor_id()))) {
 			mutex_unlock(&ref->lock);
 			pr_err("trace-imc: Unable to start the counters for core %d\n", core_id);
-			mtspr(SPRN_LDBAR, 0);
 			return -EINVAL;
 		}
 	}
 	++ref->refc;
 	mutex_unlock(&ref->lock);
-
 	return 0;
 }
 
@@ -1274,16 +1381,13 @@
 	int core_id = smp_processor_id() / threads_per_core;
 	struct imc_pmu_ref *ref = NULL;
 
-	if (core_imc_refc)
-		ref = &core_imc_refc[core_id];
+	if (trace_imc_refc)
+		ref = &trace_imc_refc[core_id];
 	if (!ref) {
-		/* If core-imc is not enabled, use trace-imc reference count */
-		if (trace_imc_refc)
-			ref = &trace_imc_refc[core_id];
-		if (!ref)
-			return;
+		pr_debug("imc: Failed to get event reference count\n");
+		return;
 	}
-	mtspr(SPRN_LDBAR, 0);
+
 	mutex_lock(&ref->lock);
 	ref->refc--;
 	if (ref->refc == 0) {
@@ -1297,6 +1401,7 @@
 		ref->refc = 0;
 	}
 	mutex_unlock(&ref->lock);
+
 	trace_imc_event_stop(event, flags);
 }
 
@@ -1314,10 +1419,30 @@
 	if (event->attr.sample_period == 0)
 		return -ENOENT;
 
+	/*
+	 * Take the global lock, and make sure
+	 * no other thread is running any core/thread imc
+	 * events
+	 */
+	mutex_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == 0 || imc_global_refc.id == IMC_DOMAIN_TRACE) {
+		/*
+		 * No core/thread imc events are running in the
+		 * system, so set the refc.id to trace-imc.
+		 */
+		imc_global_refc.id = IMC_DOMAIN_TRACE;
+		imc_global_refc.refc++;
+	} else {
+		mutex_unlock(&imc_global_refc.lock);
+		return -EBUSY;
+	}
+	mutex_unlock(&imc_global_refc.lock);
+
 	event->hw.idx = -1;
 	target = event->hw.target;
 
 	event->pmu->task_ctx_nr = perf_hw_context;
+	event->destroy = reset_global_refc;
 	return 0;
 }
 
@@ -1429,10 +1554,10 @@
 static void thread_imc_ldbar_disable(void *dummy)
 {
 	/*
-	 * By Zeroing LDBAR, we disable thread-imc
-	 * updates.
+	 * By setting 0th bit of LDBAR to zero, we disable thread-imc
+	 * updates to memory.
 	 */
-	mtspr(SPRN_LDBAR, 0);
+	mtspr(SPRN_LDBAR, (mfspr(SPRN_LDBAR) & (~(1UL << 63))));
 }
 
 void thread_imc_disable(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/perf/isa207-common.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/perf/isa207-common.c
@@ -269,6 +269,15 @@
 
 		mask  |= CNST_PMC_MASK(pmc);
 		value |= CNST_PMC_VAL(pmc);
+
+		/*
+		 * PMC5 and PMC6 are used to count cycles and instructions and
+		 * they do not support most of the constraint bits. Add a check
+		 * to exclude PMC5/6 from most of the constraints except for
+		 * EBB/BHRB.
+		 */
+		if (pmc >= 5)
+			goto ebb_bhrb;
 	}
 
 	if (pmc <= 4) {
@@ -335,6 +344,7 @@
 		}
 	}
 
+ebb_bhrb:
 	if (!pmc && ebb)
 		/* EBB events must specify the PMC */
 		return -1;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/4xx/pci.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/4xx/pci.c
@@ -1242,7 +1242,7 @@
 	if (mbase == NULL) {
 		printk(KERN_ERR "%pOF: Can't map internal config space !",
 			port->node);
-		goto done;
+		return;
 	}
 
 	while (attempt && (0 == (in_le32(mbase + PECFG_460SX_DLLSTA)
@@ -1252,9 +1252,7 @@
 	}
 	if (attempt)
 		port->link = 1;
-done:
 	iounmap(mbase);
-
 }
 
 static struct ppc4xx_pciex_hwops ppc460sx_pcie_hwops __initdata = {
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/8xx/micropatch.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/8xx/micropatch.c
@@ -361,6 +361,17 @@
 	if (IS_ENABLED(CONFIG_SMC_UCODE_PATCH)) {
 		smc_uart_t *smp;
 
+		if (IS_ENABLED(CONFIG_PPC_EARLY_DEBUG_CPM)) {
+			int i;
+
+			for (i = 0; i < sizeof(*smp); i += 4) {
+				u32 __iomem *src = (u32 __iomem *)&cp->cp_dparam[PROFF_SMC1 + i];
+				u32 __iomem *dst = (u32 __iomem *)&cp->cp_dparam[PROFF_DSP1 + i];
+
+				out_be32(dst, in_be32(src));
+			}
+		}
+
 		smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC1];
 		out_be16(&smp->smc_rpbase, 0x1ec0);
 		smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC2];
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/Kconfig
@@ -219,12 +219,11 @@
 	  temperature within 2-4 degrees Celsius. This option shows the current
 	  on-die temperature in /proc/cpuinfo if the cpu supports it.
 
-	  Unfortunately, on some chip revisions, this sensor is very inaccurate
-	  and in many cases, does not work at all, so don't assume the cpu
-	  temp is actually what /proc/cpuinfo says it is.
+	  Unfortunately, this sensor is very inaccurate when uncalibrated, so
+	  don't assume the cpu temp is actually what /proc/cpuinfo says it is.
 
 config TAU_INT
-	bool "Interrupt driven TAU driver (DANGEROUS)"
+	bool "Interrupt driven TAU driver (EXPERIMENTAL)"
 	depends on TAU
 	---help---
 	  The TAU supports an interrupt driven mode which causes an interrupt
@@ -232,12 +231,7 @@
 	  to get notified the temp has exceeded a range. With this option off,
 	  a timer is used to re-check the temperature periodically.
 
-	  However, on some cpus it appears that the TAU interrupt hardware
-	  is buggy and can cause a situation which would lead unexplained hard
-	  lockups.
-
-	  Unless you are extending the TAU driver, or enjoy kernel/hardware
-	  debugging, leave this option off.
+	  If in doubt, say N here.
 
 config TAU_AVERAGE
 	bool "Average high and low temp"
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/Kconfig.cputype
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/Kconfig.cputype
@@ -389,7 +389,7 @@
 
 config PPC_KUAP_DEBUG
 	bool "Extra debugging for Kernel Userspace Access Protection"
-	depends on PPC_HAVE_KUAP && (PPC_RADIX_MMU || PPC_32)
+	depends on PPC_KUAP && (PPC_RADIX_MMU || PPC32)
 	help
 	  Add extra debugging for Kernel Userspace Access Protection (KUAP)
 	  If you're unsure, say N.
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/cell/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/cell/Kconfig
@@ -44,6 +44,7 @@
 	tristate "SPU file system"
 	default m
 	depends on PPC_CELL
+	depends on COREDUMP
 	select SPU_BASE
 	help
 	  The SPU file system is used to access Synergistic Processing
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/cell/spufs/file.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/cell/spufs/file.c
@@ -1978,8 +1978,9 @@
 static ssize_t spufs_mbox_info_read(struct file *file, char __user *buf,
 				   size_t len, loff_t *pos)
 {
-	int ret;
 	struct spu_context *ctx = file->private_data;
+	u32 stat, data;
+	int ret;
 
 	if (!access_ok(buf, len))
 		return -EFAULT;
@@ -1988,11 +1989,16 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_mbox_info_read(ctx, buf, len, pos);
+	stat = ctx->csa.prob.mb_stat_R;
+	data = ctx->csa.prob.pu_mb_R;
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	/* EOF if there's no entry in the mbox */
+	if (!(stat & 0x0000ff))
+		return 0;
+
+	return simple_read_from_buffer(buf, len, pos, &data, sizeof(data));
 }
 
 static const struct file_operations spufs_mbox_info_fops = {
@@ -2019,6 +2025,7 @@
 				   size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
+	u32 stat, data;
 	int ret;
 
 	if (!access_ok(buf, len))
@@ -2028,11 +2035,16 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_ibox_info_read(ctx, buf, len, pos);
+	stat = ctx->csa.prob.mb_stat_R;
+	data = ctx->csa.priv2.puint_mb_R;
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	/* EOF if there's no entry in the ibox */
+	if (!(stat & 0xff0000))
+		return 0;
+
+	return simple_read_from_buffer(buf, len, pos, &data, sizeof(data));
 }
 
 static const struct file_operations spufs_ibox_info_fops = {
@@ -2041,6 +2053,11 @@
 	.llseek  = generic_file_llseek,
 };
 
+static size_t spufs_wbox_info_cnt(struct spu_context *ctx)
+{
+	return (4 - ((ctx->csa.prob.mb_stat_R & 0x00ff00) >> 8)) * sizeof(u32);
+}
+
 static ssize_t __spufs_wbox_info_read(struct spu_context *ctx,
 			char __user *buf, size_t len, loff_t *pos)
 {
@@ -2049,7 +2066,7 @@
 	u32 wbox_stat;
 
 	wbox_stat = ctx->csa.prob.mb_stat_R;
-	cnt = 4 - ((wbox_stat & 0x00ff00) >> 8);
+	cnt = spufs_wbox_info_cnt(ctx);
 	for (i = 0; i < cnt; i++) {
 		data[i] = ctx->csa.spu_mailbox_data[i];
 	}
@@ -2062,7 +2079,8 @@
 				   size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
-	int ret;
+	u32 data[ARRAY_SIZE(ctx->csa.spu_mailbox_data)];
+	int ret, count;
 
 	if (!access_ok(buf, len))
 		return -EFAULT;
@@ -2071,11 +2089,13 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_wbox_info_read(ctx, buf, len, pos);
+	count = spufs_wbox_info_cnt(ctx);
+	memcpy(&data, &ctx->csa.spu_mailbox_data, sizeof(data));
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	return simple_read_from_buffer(buf, len, pos, &data,
+				count * sizeof(u32));
 }
 
 static const struct file_operations spufs_wbox_info_fops = {
@@ -2084,27 +2104,33 @@
 	.llseek  = generic_file_llseek,
 };
 
-static ssize_t __spufs_dma_info_read(struct spu_context *ctx,
-			char __user *buf, size_t len, loff_t *pos)
+static void spufs_get_dma_info(struct spu_context *ctx,
+		struct spu_dma_info *info)
 {
-	struct spu_dma_info info;
-	struct mfc_cq_sr *qp, *spuqp;
 	int i;
 
-	info.dma_info_type = ctx->csa.priv2.spu_tag_status_query_RW;
-	info.dma_info_mask = ctx->csa.lscsa->tag_mask.slot[0];
-	info.dma_info_status = ctx->csa.spu_chnldata_RW[24];
-	info.dma_info_stall_and_notify = ctx->csa.spu_chnldata_RW[25];
-	info.dma_info_atomic_command_status = ctx->csa.spu_chnldata_RW[27];
+	info->dma_info_type = ctx->csa.priv2.spu_tag_status_query_RW;
+	info->dma_info_mask = ctx->csa.lscsa->tag_mask.slot[0];
+	info->dma_info_status = ctx->csa.spu_chnldata_RW[24];
+	info->dma_info_stall_and_notify = ctx->csa.spu_chnldata_RW[25];
+	info->dma_info_atomic_command_status = ctx->csa.spu_chnldata_RW[27];
 	for (i = 0; i < 16; i++) {
-		qp = &info.dma_info_command_data[i];
-		spuqp = &ctx->csa.priv2.spuq[i];
+		struct mfc_cq_sr *qp = &info->dma_info_command_data[i];
+		struct mfc_cq_sr *spuqp = &ctx->csa.priv2.spuq[i];
 
 		qp->mfc_cq_data0_RW = spuqp->mfc_cq_data0_RW;
 		qp->mfc_cq_data1_RW = spuqp->mfc_cq_data1_RW;
 		qp->mfc_cq_data2_RW = spuqp->mfc_cq_data2_RW;
 		qp->mfc_cq_data3_RW = spuqp->mfc_cq_data3_RW;
 	}
+}
+
+static ssize_t __spufs_dma_info_read(struct spu_context *ctx,
+			char __user *buf, size_t len, loff_t *pos)
+{
+	struct spu_dma_info info;
+
+	spufs_get_dma_info(ctx, &info);
 
 	return simple_read_from_buffer(buf, len, pos, &info,
 				sizeof info);
@@ -2114,6 +2140,7 @@
 			      size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
+	struct spu_dma_info info;
 	int ret;
 
 	if (!access_ok(buf, len))
@@ -2123,11 +2150,12 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_dma_info_read(ctx, buf, len, pos);
+	spufs_get_dma_info(ctx, &info);
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	return simple_read_from_buffer(buf, len, pos, &info,
+				sizeof(info));
 }
 
 static const struct file_operations spufs_dma_info_fops = {
@@ -2136,13 +2164,31 @@
 	.llseek = no_llseek,
 };
 
+static void spufs_get_proxydma_info(struct spu_context *ctx,
+		struct spu_proxydma_info *info)
+{
+	int i;
+
+	info->proxydma_info_type = ctx->csa.prob.dma_querytype_RW;
+	info->proxydma_info_mask = ctx->csa.prob.dma_querymask_RW;
+	info->proxydma_info_status = ctx->csa.prob.dma_tagstatus_R;
+
+	for (i = 0; i < 8; i++) {
+		struct mfc_cq_sr *qp = &info->proxydma_info_command_data[i];
+		struct mfc_cq_sr *puqp = &ctx->csa.priv2.puq[i];
+
+		qp->mfc_cq_data0_RW = puqp->mfc_cq_data0_RW;
+		qp->mfc_cq_data1_RW = puqp->mfc_cq_data1_RW;
+		qp->mfc_cq_data2_RW = puqp->mfc_cq_data2_RW;
+		qp->mfc_cq_data3_RW = puqp->mfc_cq_data3_RW;
+	}
+}
+
 static ssize_t __spufs_proxydma_info_read(struct spu_context *ctx,
 			char __user *buf, size_t len, loff_t *pos)
 {
 	struct spu_proxydma_info info;
-	struct mfc_cq_sr *qp, *puqp;
 	int ret = sizeof info;
-	int i;
 
 	if (len < ret)
 		return -EINVAL;
@@ -2150,18 +2196,7 @@
 	if (!access_ok(buf, len))
 		return -EFAULT;
 
-	info.proxydma_info_type = ctx->csa.prob.dma_querytype_RW;
-	info.proxydma_info_mask = ctx->csa.prob.dma_querymask_RW;
-	info.proxydma_info_status = ctx->csa.prob.dma_tagstatus_R;
-	for (i = 0; i < 8; i++) {
-		qp = &info.proxydma_info_command_data[i];
-		puqp = &ctx->csa.priv2.puq[i];
-
-		qp->mfc_cq_data0_RW = puqp->mfc_cq_data0_RW;
-		qp->mfc_cq_data1_RW = puqp->mfc_cq_data1_RW;
-		qp->mfc_cq_data2_RW = puqp->mfc_cq_data2_RW;
-		qp->mfc_cq_data3_RW = puqp->mfc_cq_data3_RW;
-	}
+	spufs_get_proxydma_info(ctx, &info);
 
 	return simple_read_from_buffer(buf, len, pos, &info,
 				sizeof info);
@@ -2171,17 +2206,19 @@
 				   size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
+	struct spu_proxydma_info info;
 	int ret;
 
 	ret = spu_acquire_saved(ctx);
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_proxydma_info_read(ctx, buf, len, pos);
+	spufs_get_proxydma_info(ctx, &info);
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	return simple_read_from_buffer(buf, len, pos, &info,
+				sizeof(info));
 }
 
 static const struct file_operations spufs_proxydma_info_fops = {
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/maple/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/maple/setup.c
@@ -294,23 +294,6 @@
 	return 1;
 }
 
-define_machine(maple) {
-	.name			= "Maple",
-	.probe			= maple_probe,
-	.setup_arch		= maple_setup_arch,
-	.init_IRQ		= maple_init_IRQ,
-	.pci_irq_fixup		= maple_pci_irq_fixup,
-	.pci_get_legacy_ide_irq	= maple_pci_get_legacy_ide_irq,
-	.restart		= maple_restart,
-	.halt			= maple_halt,
-       	.get_boot_time		= maple_get_boot_time,
-       	.set_rtc_time		= maple_set_rtc_time,
-       	.get_rtc_time		= maple_get_rtc_time,
-      	.calibrate_decr		= generic_calibrate_decr,
-	.progress		= maple_progress,
-	.power_save		= power4_idle,
-};
-
 #ifdef CONFIG_EDAC
 /*
  * Register a platform device for CPC925 memory controller on
@@ -367,3 +350,20 @@
 }
 machine_device_initcall(maple, maple_cpc925_edac_setup);
 #endif
+
+define_machine(maple) {
+	.name			= "Maple",
+	.probe			= maple_probe,
+	.setup_arch		= maple_setup_arch,
+	.init_IRQ		= maple_init_IRQ,
+	.pci_irq_fixup		= maple_pci_irq_fixup,
+	.pci_get_legacy_ide_irq	= maple_pci_get_legacy_ide_irq,
+	.restart		= maple_restart,
+	.halt			= maple_halt,
+	.get_boot_time		= maple_get_boot_time,
+	.set_rtc_time		= maple_set_rtc_time,
+	.get_rtc_time		= maple_get_rtc_time,
+	.calibrate_decr		= generic_calibrate_decr,
+	.progress		= maple_progress,
+	.power_save		= power4_idle,
+};
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powermac/sleep.S
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powermac/sleep.S
@@ -293,14 +293,7 @@
 	 * we do any r1 memory access as we are not sure they
 	 * are in a sane state above the first 256Mb region
 	 */
-	li	r0,16		/* load up segment register values */
-	mtctr	r0		/* for context 0 */
-	lis	r3,0x2000	/* Ku = 1, VSID = 0 */
-	li	r4,0
-3:	mtsrin	r3,r4
-	addi	r3,r3,0x111	/* increment VSID */
-	addis	r4,r4,0x1000	/* address of next segment */
-	bdnz	3b
+	bl	load_segment_registers
 	sync
 	isync
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/Makefile
@@ -20,3 +20,4 @@
 obj-$(CONFIG_PPC_VAS)	+= vas.o vas-window.o vas-debug.o
 obj-$(CONFIG_OCXL_BASE)	+= ocxl.o
 obj-$(CONFIG_SCOM_DEBUGFS) += opal-xscom.o
+obj-$(CONFIG_PPC_SECURE_BOOT) += opal-secvar.o
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/memtrace.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/memtrace.c
@@ -30,6 +30,7 @@
 	char name[16];
 };
 
+static DEFINE_MUTEX(memtrace_mutex);
 static u64 memtrace_size;
 
 static struct memtrace_entry *memtrace_array;
@@ -67,6 +68,23 @@
 	return 0;
 }
 
+static void memtrace_clear_range(unsigned long start_pfn,
+				 unsigned long nr_pages)
+{
+	unsigned long pfn;
+
+	/*
+	 * As pages are offline, we cannot trust the memmap anymore. As HIGHMEM
+	 * does not apply, avoid passing around "struct page" and use
+	 * clear_page() instead directly.
+	 */
+	for (pfn = start_pfn; pfn < start_pfn + nr_pages; pfn++) {
+		if (IS_ALIGNED(pfn, PAGES_PER_SECTION))
+			cond_resched();
+		clear_page(__va(PFN_PHYS(pfn)));
+	}
+}
+
 /* called with device_hotplug_lock held */
 static bool memtrace_offline_pages(u32 nid, u64 start_pfn, u64 nr_pages)
 {
@@ -112,6 +130,11 @@
 	for (base_pfn = end_pfn; base_pfn > start_pfn; base_pfn -= nr_pages) {
 		if (memtrace_offline_pages(nid, base_pfn, nr_pages) == true) {
 			/*
+			 * Clear the range while we still have a linear
+			 * mapping.
+			 */
+			memtrace_clear_range(base_pfn, nr_pages);
+			/*
 			 * Remove memory in memory block size chunks so that
 			 * iomem resources are always split to the same size and
 			 * we never try to remove memory that spans two iomem
@@ -268,6 +291,7 @@
 
 static int memtrace_enable_set(void *data, u64 val)
 {
+	int rc = -EAGAIN;
 	u64 bytes;
 
 	/*
@@ -280,25 +304,31 @@
 		return -EINVAL;
 	}
 
+	mutex_lock(&memtrace_mutex);
+
 	/* Re-add/online previously removed/offlined memory */
 	if (memtrace_size) {
 		if (memtrace_online())
-			return -EAGAIN;
+			goto out_unlock;
 	}
 
-	if (!val)
-		return 0;
+	if (!val) {
+		rc = 0;
+		goto out_unlock;
+	}
 
 	/* Offline and remove memory */
 	if (memtrace_init_regions_runtime(val))
-		return -EINVAL;
+		goto out_unlock;
 
 	if (memtrace_init_debugfs())
-		return -EINVAL;
+		goto out_unlock;
 
 	memtrace_size = val;
-
-	return 0;
+	rc = 0;
+out_unlock:
+	mutex_unlock(&memtrace_mutex);
+	return rc;
 }
 
 static int memtrace_enable_get(void *data, u64 *val)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/npu-dma.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/npu-dma.c
@@ -384,7 +384,8 @@
 	for (i = 0; i < npucomp->pe_num; ++i) {
 		struct pnv_ioda_pe *pe = npucomp->pe[i];
 
-		if (!pe->table_group.ops->take_ownership)
+		if (!pe->table_group.ops ||
+		    !pe->table_group.ops->take_ownership)
 			continue;
 		pe->table_group.ops->take_ownership(&pe->table_group);
 	}
@@ -400,7 +401,8 @@
 	for (i = 0; i < npucomp->pe_num; ++i) {
 		struct pnv_ioda_pe *pe = npucomp->pe[i];
 
-		if (!pe->table_group.ops->release_ownership)
+		if (!pe->table_group.ops ||
+		    !pe->table_group.ops->release_ownership)
 			continue;
 		pe->table_group.ops->release_ownership(&pe->table_group);
 	}
@@ -560,6 +562,11 @@
 		return -ENODEV;
 
 	hose = pci_bus_to_host(npdev->bus);
+	if (hose->npu == NULL) {
+		dev_info_once(&npdev->dev, "Nvlink1 does not support contexts");
+		return 0;
+	}
+
 	nphb = hose->private_data;
 
 	dev_dbg(&gpdev->dev, "Map LPAR opalid=%llu lparid=%u\n",
@@ -607,6 +614,11 @@
 		return -ENODEV;
 
 	hose = pci_bus_to_host(npdev->bus);
+	if (hose->npu == NULL) {
+		dev_info_once(&npdev->dev, "Nvlink1 does not support contexts");
+		return 0;
+	}
+
 	nphb = hose->private_data;
 
 	dev_dbg(&gpdev->dev, "destroy context opalid=%llu\n",
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/opal-call.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/opal-call.c
@@ -290,3 +290,6 @@
 OPAL_CALL(opal_mpipl_update,			OPAL_MPIPL_UPDATE);
 OPAL_CALL(opal_mpipl_register_tag,		OPAL_MPIPL_REGISTER_TAG);
 OPAL_CALL(opal_mpipl_query_tag,			OPAL_MPIPL_QUERY_TAG);
+OPAL_CALL(opal_secvar_get,			OPAL_SECVAR_GET);
+OPAL_CALL(opal_secvar_get_next,			OPAL_SECVAR_GET_NEXT);
+OPAL_CALL(opal_secvar_enqueue_update,		OPAL_SECVAR_ENQUEUE_UPDATE);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/opal-dump.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/opal-dump.c
@@ -318,15 +318,14 @@
 	return count;
 }
 
-static struct dump_obj *create_dump_obj(uint32_t id, size_t size,
-					uint32_t type)
+static void create_dump_obj(uint32_t id, size_t size, uint32_t type)
 {
 	struct dump_obj *dump;
 	int rc;
 
 	dump = kzalloc(sizeof(*dump), GFP_KERNEL);
 	if (!dump)
-		return NULL;
+		return;
 
 	dump->kobj.kset = dump_kset;
 
@@ -346,21 +345,39 @@
 	rc = kobject_add(&dump->kobj, NULL, "0x%x-0x%x", type, id);
 	if (rc) {
 		kobject_put(&dump->kobj);
-		return NULL;
+		return;
 	}
 
+	/*
+	 * As soon as the sysfs file for this dump is created/activated there is
+	 * a chance the opal_errd daemon (or any userspace) might read and
+	 * acknowledge the dump before kobject_uevent() is called. If that
+	 * happens then there is a potential race between
+	 * dump_ack_store->kobject_put() and kobject_uevent() which leads to a
+	 * use-after-free of a kernfs object resulting in a kernel crash.
+	 *
+	 * To avoid that, we need to take a reference on behalf of the bin file,
+	 * so that our reference remains valid while we call kobject_uevent().
+	 * We then drop our reference before exiting the function, leaving the
+	 * bin file to drop the last reference (if it hasn't already).
+	 */
+
+	/* Take a reference for the bin file */
+	kobject_get(&dump->kobj);
 	rc = sysfs_create_bin_file(&dump->kobj, &dump->dump_attr);
-	if (rc) {
+	if (rc == 0) {
+		kobject_uevent(&dump->kobj, KOBJ_ADD);
+
+		pr_info("%s: New platform dump. ID = 0x%x Size %u\n",
+			__func__, dump->id, dump->size);
+	} else {
+		/* Drop reference count taken for bin file */
 		kobject_put(&dump->kobj);
-		return NULL;
 	}
 
-	pr_info("%s: New platform dump. ID = 0x%x Size %u\n",
-		__func__, dump->id, dump->size);
-
-	kobject_uevent(&dump->kobj, KOBJ_ADD);
-
-	return dump;
+	/* Drop our reference */
+	kobject_put(&dump->kobj);
+	return;
 }
 
 static irqreturn_t process_dump(int irq, void *data)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/opal-elog.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/opal-elog.c
@@ -179,14 +179,14 @@
 	return count;
 }
 
-static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type)
+static void create_elog_obj(uint64_t id, size_t size, uint64_t type)
 {
 	struct elog_obj *elog;
 	int rc;
 
 	elog = kzalloc(sizeof(*elog), GFP_KERNEL);
 	if (!elog)
-		return NULL;
+		return;
 
 	elog->kobj.kset = elog_kset;
 
@@ -219,18 +219,37 @@
 	rc = kobject_add(&elog->kobj, NULL, "0x%llx", id);
 	if (rc) {
 		kobject_put(&elog->kobj);
-		return NULL;
+		return;
 	}
 
+	/*
+	 * As soon as the sysfs file for this elog is created/activated there is
+	 * a chance the opal_errd daemon (or any userspace) might read and
+	 * acknowledge the elog before kobject_uevent() is called. If that
+	 * happens then there is a potential race between
+	 * elog_ack_store->kobject_put() and kobject_uevent() which leads to a
+	 * use-after-free of a kernfs object resulting in a kernel crash.
+	 *
+	 * To avoid that, we need to take a reference on behalf of the bin file,
+	 * so that our reference remains valid while we call kobject_uevent().
+	 * We then drop our reference before exiting the function, leaving the
+	 * bin file to drop the last reference (if it hasn't already).
+	 */
+
+	/* Take a reference for the bin file */
+	kobject_get(&elog->kobj);
 	rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr);
-	if (rc) {
+	if (rc == 0) {
+		kobject_uevent(&elog->kobj, KOBJ_ADD);
+	} else {
+		/* Drop the reference taken for the bin file */
 		kobject_put(&elog->kobj);
-		return NULL;
 	}
 
-	kobject_uevent(&elog->kobj, KOBJ_ADD);
+	/* Drop our reference */
+	kobject_put(&elog->kobj);
 
-	return elog;
+	return;
 }
 
 static irqreturn_t elog_event(int irq, void *data)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/opal-imc.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/opal-imc.c
@@ -59,10 +59,6 @@
 
 	imc_debugfs_parent = debugfs_create_dir("imc", powerpc_debugfs_root);
 
-	/*
-	 * Return here, either because 'imc' directory already exists,
-	 * Or failed to create a new one.
-	 */
 	if (!imc_debugfs_parent)
 		return;
 
@@ -135,7 +131,6 @@
 	}
 
 	pmu_ptr->imc_counter_mmaped = true;
-	export_imc_mode_and_cmd(node, pmu_ptr);
 	kfree(base_addr_arr);
 	kfree(chipid_arr);
 	return 0;
@@ -151,7 +146,7 @@
  *		    and domain as the inputs.
  * Allocates memory for the struct imc_pmu, sets up its domain, size and offsets
  */
-static int imc_pmu_create(struct device_node *parent, int pmu_index, int domain)
+static struct imc_pmu *imc_pmu_create(struct device_node *parent, int pmu_index, int domain)
 {
 	int ret = 0;
 	struct imc_pmu *pmu_ptr;
@@ -159,27 +154,23 @@
 
 	/* Return for unknown domain */
 	if (domain < 0)
-		return -EINVAL;
+		return NULL;
 
 	/* memory for pmu */
 	pmu_ptr = kzalloc(sizeof(*pmu_ptr), GFP_KERNEL);
 	if (!pmu_ptr)
-		return -ENOMEM;
+		return NULL;
 
 	/* Set the domain */
 	pmu_ptr->domain = domain;
 
 	ret = of_property_read_u32(parent, "size", &pmu_ptr->counter_mem_size);
-	if (ret) {
-		ret = -EINVAL;
+	if (ret)
 		goto free_pmu;
-	}
 
 	if (!of_property_read_u32(parent, "offset", &offset)) {
-		if (imc_get_mem_addr_nest(parent, pmu_ptr, offset)) {
-			ret = -EINVAL;
+		if (imc_get_mem_addr_nest(parent, pmu_ptr, offset))
 			goto free_pmu;
-		}
 	}
 
 	/* Function to register IMC pmu */
@@ -190,14 +181,14 @@
 		if (pmu_ptr->domain == IMC_DOMAIN_NEST)
 			kfree(pmu_ptr->mem_info);
 		kfree(pmu_ptr);
-		return ret;
+		return NULL;
 	}
 
-	return 0;
+	return pmu_ptr;
 
 free_pmu:
 	kfree(pmu_ptr);
-	return ret;
+	return NULL;
 }
 
 static void disable_nest_pmu_counters(void)
@@ -254,6 +245,7 @@
 static int opal_imc_counters_probe(struct platform_device *pdev)
 {
 	struct device_node *imc_dev = pdev->dev.of_node;
+	struct imc_pmu *pmu;
 	int pmu_count = 0, domain;
 	bool core_imc_reg = false, thread_imc_reg = false;
 	u32 type;
@@ -269,6 +261,7 @@
 	}
 
 	for_each_compatible_node(imc_dev, NULL, IMC_DTB_UNIT_COMPAT) {
+		pmu = NULL;
 		if (of_property_read_u32(imc_dev, "type", &type)) {
 			pr_warn("IMC Device without type property\n");
 			continue;
@@ -285,7 +278,14 @@
 			domain = IMC_DOMAIN_THREAD;
 			break;
 		case IMC_TYPE_TRACE:
-			domain = IMC_DOMAIN_TRACE;
+			/*
+			 * FIXME. Using trace_imc events to monitor application
+			 * or KVM thread performance can cause a checkstop
+			 * (system crash).
+			 * Disable it for now.
+			 */
+			pr_info_once("IMC: disabling trace_imc PMU\n");
+			domain = -1;
 			break;
 		default:
 			pr_warn("IMC Unknown Device type \n");
@@ -293,9 +293,13 @@
 			break;
 		}
 
-		if (!imc_pmu_create(imc_dev, pmu_count, domain)) {
-			if (domain == IMC_DOMAIN_NEST)
+		pmu = imc_pmu_create(imc_dev, pmu_count, domain);
+		if (pmu != NULL) {
+			if (domain == IMC_DOMAIN_NEST) {
+				if (!imc_debugfs_parent)
+					export_imc_mode_and_cmd(imc_dev, pmu);
 				pmu_count++;
+			}
 			if (domain == IMC_DOMAIN_CORE)
 				core_imc_reg = true;
 			if (domain == IMC_DOMAIN_THREAD)
@@ -303,10 +307,6 @@
 		}
 	}
 
-	/* If none of the nest units are registered, remove debugfs interface */
-	if (pmu_count == 0)
-		debugfs_remove_recursive(imc_debugfs_parent);
-
 	/* If core imc is not registered, unregister thread-imc */
 	if (!core_imc_reg && thread_imc_reg)
 		unregister_thread_imc();
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/opal-secvar.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/opal-secvar.c
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PowerNV code for secure variables
+ *
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Claudio Carvalho
+ *         Nayna Jain
+ *
+ * APIs to access secure variables managed by OPAL.
+ */
+
+#define pr_fmt(fmt) "secvar: "fmt
+
+#include <linux/types.h>
+#include <linux/platform_device.h>
+#include <linux/of_platform.h>
+#include <asm/opal.h>
+#include <asm/secvar.h>
+#include <asm/secure_boot.h>
+
+static int opal_status_to_err(int rc)
+{
+	int err;
+
+	switch (rc) {
+	case OPAL_SUCCESS:
+		err = 0;
+		break;
+	case OPAL_UNSUPPORTED:
+		err = -ENXIO;
+		break;
+	case OPAL_PARAMETER:
+		err = -EINVAL;
+		break;
+	case OPAL_RESOURCE:
+		err = -ENOSPC;
+		break;
+	case OPAL_HARDWARE:
+		err = -EIO;
+		break;
+	case OPAL_NO_MEM:
+		err = -ENOMEM;
+		break;
+	case OPAL_EMPTY:
+		err = -ENOENT;
+		break;
+	case OPAL_PARTIAL:
+		err = -EFBIG;
+		break;
+	default:
+		err = -EINVAL;
+	}
+
+	return err;
+}
+
+static int opal_get_variable(const char *key, uint64_t ksize,
+			     u8 *data, uint64_t *dsize)
+{
+	int rc;
+
+	if (!key || !dsize)
+		return -EINVAL;
+
+	*dsize = cpu_to_be64(*dsize);
+
+	rc = opal_secvar_get(key, ksize, data, dsize);
+
+	*dsize = be64_to_cpu(*dsize);
+
+	return opal_status_to_err(rc);
+}
+
+static int opal_get_next_variable(const char *key, uint64_t *keylen,
+				  uint64_t keybufsize)
+{
+	int rc;
+
+	if (!key || !keylen)
+		return -EINVAL;
+
+	*keylen = cpu_to_be64(*keylen);
+
+	rc = opal_secvar_get_next(key, keylen, keybufsize);
+
+	*keylen = be64_to_cpu(*keylen);
+
+	return opal_status_to_err(rc);
+}
+
+static int opal_set_variable(const char *key, uint64_t ksize, u8 *data,
+			     uint64_t dsize)
+{
+	int rc;
+
+	if (!key || !data)
+		return -EINVAL;
+
+	rc = opal_secvar_enqueue_update(key, ksize, data, dsize);
+
+	return opal_status_to_err(rc);
+}
+
+static const struct secvar_operations opal_secvar_ops = {
+	.get = opal_get_variable,
+	.get_next = opal_get_next_variable,
+	.set = opal_set_variable,
+};
+
+static int opal_secvar_probe(struct platform_device *pdev)
+{
+	if (!opal_check_token(OPAL_SECVAR_GET)
+			|| !opal_check_token(OPAL_SECVAR_GET_NEXT)
+			|| !opal_check_token(OPAL_SECVAR_ENQUEUE_UPDATE)) {
+		pr_err("OPAL doesn't support secure variables\n");
+		return -ENODEV;
+	}
+
+	set_secvar_ops(&opal_secvar_ops);
+
+	return 0;
+}
+
+static const struct of_device_id opal_secvar_match[] = {
+	{ .compatible = "ibm,secvar-backend",},
+	{},
+};
+
+static struct platform_driver opal_secvar_driver = {
+	.driver = {
+		.name = "secvar",
+		.of_match_table = opal_secvar_match,
+	},
+};
+
+static int __init opal_secvar_init(void)
+{
+	return platform_driver_probe(&opal_secvar_driver, opal_secvar_probe);
+}
+device_initcall(opal_secvar_init);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/opal.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/opal.c
@@ -1002,6 +1002,9 @@
 	/* Initialise OPAL Power control interface */
 	opal_power_control_init();
 
+	/* Initialize OPAL secure variables */
+	opal_pdev_init("ibm,secvar-backend");
+
 	return 0;
 }
 machine_subsys_initcall(powernv, opal_init);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/pci-ioda.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -188,7 +188,7 @@
 	unsigned int pe_num = pe->pe_number;
 
 	WARN_ON(pe->pdev);
-	WARN_ON(pe->npucomp); /* NPUs are not supposed to be freed */
+	WARN_ON(pe->npucomp); /* NPUs for nvlink are not supposed to be freed */
 	kfree(pe->npucomp);
 	memset(pe, 0, sizeof(struct pnv_ioda_pe));
 	clear_bit(pe_num, phb->ioda.pe_alloc);
@@ -777,6 +777,34 @@
 	return 0;
 }
 
+static void pnv_ioda_unset_peltv(struct pnv_phb *phb,
+				 struct pnv_ioda_pe *pe,
+				 struct pci_dev *parent)
+{
+	int64_t rc;
+
+	while (parent) {
+		struct pci_dn *pdn = pci_get_pdn(parent);
+
+		if (pdn && pdn->pe_number != IODA_INVALID_PE) {
+			rc = opal_pci_set_peltv(phb->opal_id, pdn->pe_number,
+						pe->pe_number,
+						OPAL_REMOVE_PE_FROM_DOMAIN);
+			/* XXX What to do in case of error ? */
+		}
+		parent = parent->bus->self;
+	}
+
+	opal_pci_eeh_freeze_clear(phb->opal_id, pe->pe_number,
+				  OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
+
+	/* Disassociate PE in PELT */
+	rc = opal_pci_set_peltv(phb->opal_id, pe->pe_number,
+				pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
+	if (rc)
+		pe_warn(pe, "OPAL error %lld remove self from PELTV\n", rc);
+}
+
 static int pnv_ioda_deconfigure_pe(struct pnv_phb *phb, struct pnv_ioda_pe *pe)
 {
 	struct pci_dev *parent;
@@ -827,25 +855,13 @@
 	for (rid = pe->rid; rid < rid_end; rid++)
 		phb->ioda.pe_rmap[rid] = IODA_INVALID_PE;
 
-	/* Release from all parents PELT-V */
-	while (parent) {
-		struct pci_dn *pdn = pci_get_pdn(parent);
-		if (pdn && pdn->pe_number != IODA_INVALID_PE) {
-			rc = opal_pci_set_peltv(phb->opal_id, pdn->pe_number,
-						pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
-			/* XXX What to do in case of error ? */
-		}
-		parent = parent->bus->self;
-	}
-
-	opal_pci_eeh_freeze_clear(phb->opal_id, pe->pe_number,
-				  OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
+	/*
+	 * Release from all parents PELT-V. NPUs don't have a PELTV
+	 * table
+	 */
+	if (phb->type != PNV_PHB_NPU_NVLINK && phb->type != PNV_PHB_NPU_OCAPI)
+		pnv_ioda_unset_peltv(phb, pe, parent);
 
-	/* Disassociate PE in PELT */
-	rc = opal_pci_set_peltv(phb->opal_id, pe->pe_number,
-				pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
-	if (rc)
-		pe_warn(pe, "OPAL error %lld remove self from PELTV\n", rc);
 	rc = opal_pci_set_pe(phb->opal_id, pe->pe_number, pe->rid,
 			     bcomp, dcomp, fcomp, OPAL_UNMAP_PE);
 	if (rc)
@@ -1062,20 +1078,20 @@
 		return NULL;
 	}
 
-	/* NOTE: We get only one ref to the pci_dev for the pdn, not for the
-	 * pointer in the PE data structure, both should be destroyed at the
-	 * same time. However, this needs to be looked at more closely again
-	 * once we actually start removing things (Hotplug, SR-IOV, ...)
+	/* NOTE: We don't get a reference for the pointer in the PE
+	 * data structure, both the device and PE structures should be
+	 * destroyed at the same time. However, removing nvlink
+	 * devices will need some work.
 	 *
 	 * At some point we want to remove the PDN completely anyways
 	 */
-	pci_dev_get(dev);
 	pdn->pe_number = pe->pe_number;
 	pe->flags = PNV_IODA_PE_DEV;
 	pe->pdev = dev;
 	pe->pbus = NULL;
 	pe->mve_number = -1;
 	pe->rid = dev->bus->number << 8 | pdn->devfn;
+	pe->device_count++;
 
 	pe_info(pe, "Associated device to PE\n");
 
@@ -1084,13 +1100,13 @@
 		pnv_ioda_free_pe(pe);
 		pdn->pe_number = IODA_INVALID_PE;
 		pe->pdev = NULL;
-		pci_dev_put(dev);
 		return NULL;
 	}
 
 	/* Put PE to the list */
+	mutex_lock(&phb->ioda.pe_list_mutex);
 	list_add_tail(&pe->list, &phb->ioda.pe_list);
-
+	mutex_unlock(&phb->ioda.pe_list_mutex);
 	return pe;
 }
 
@@ -1206,6 +1222,14 @@
 	struct pnv_phb *phb = hose->private_data;
 
 	/*
+	 * Intentionally leak a reference on the npu device (for
+	 * nvlink only; this is not an opencapi path) to make sure it
+	 * never goes away, as it's been the case all along and some
+	 * work is needed otherwise.
+	 */
+	pci_dev_get(npu_pdev);
+
+	/*
 	 * Due to a hardware errata PE#0 on the NPU is reserved for
 	 * error handling. This means we only have three PEs remaining
 	 * which need to be assigned to four links, implying some
@@ -1228,11 +1252,11 @@
 			 */
 			dev_info(&npu_pdev->dev,
 				"Associating to existing PE %x\n", pe_num);
-			pci_dev_get(npu_pdev);
 			npu_pdn = pci_get_pdn(npu_pdev);
 			rid = npu_pdev->bus->number << 8 | npu_pdn->devfn;
 			npu_pdn->pe_number = pe_num;
 			phb->ioda.pe_rmap[rid] = pe->pe_number;
+			pe->device_count++;
 
 			/* Map the PE to this link */
 			rc = opal_pci_set_pe(phb->opal_id, pe_num, rid,
@@ -1268,8 +1292,6 @@
 {
 	struct pci_controller *hose;
 	struct pnv_phb *phb;
-	struct pci_bus *bus;
-	struct pci_dev *pdev;
 	struct pnv_ioda_pe *pe;
 
 	list_for_each_entry(hose, &hose_list, list_node) {
@@ -1281,11 +1303,6 @@
 			if (phb->model == PNV_PHB_MODEL_NPU2)
 				WARN_ON_ONCE(pnv_npu2_init(hose));
 		}
-		if (phb->type == PNV_PHB_NPU_OCAPI) {
-			bus = hose->bus;
-			list_for_each_entry(pdev, &bus->devices, bus_list)
-				pnv_ioda_setup_dev_PE(pdev);
-		}
 	}
 	list_for_each_entry(hose, &hose_list, list_node) {
 		phb = hose->private_data;
@@ -1558,6 +1575,10 @@
 
 	/* Reserve PE for each VF */
 	for (vf_index = 0; vf_index < num_vfs; vf_index++) {
+		int vf_devfn = pci_iov_virtfn_devfn(pdev, vf_index);
+		int vf_bus = pci_iov_virtfn_bus(pdev, vf_index);
+		struct pci_dn *vf_pdn;
+
 		if (pdn->m64_single_mode)
 			pe_num = pdn->pe_num_map[vf_index];
 		else
@@ -1570,13 +1591,11 @@
 		pe->pbus = NULL;
 		pe->parent_dev = pdev;
 		pe->mve_number = -1;
-		pe->rid = (pci_iov_virtfn_bus(pdev, vf_index) << 8) |
-			   pci_iov_virtfn_devfn(pdev, vf_index);
+		pe->rid = (vf_bus << 8) | vf_devfn;
 
 		pe_info(pe, "VF %04d:%02d:%02d.%d associated with PE#%x\n",
 			hose->global_number, pdev->bus->number,
-			PCI_SLOT(pci_iov_virtfn_devfn(pdev, vf_index)),
-			PCI_FUNC(pci_iov_virtfn_devfn(pdev, vf_index)), pe_num);
+			PCI_SLOT(vf_devfn), PCI_FUNC(vf_devfn), pe_num);
 
 		if (pnv_ioda_configure_pe(phb, pe)) {
 			/* XXX What do we do here ? */
@@ -1590,6 +1609,15 @@
 		list_add_tail(&pe->list, &phb->ioda.pe_list);
 		mutex_unlock(&phb->ioda.pe_list_mutex);
 
+		/* associate this pe to it's pdn */
+		list_for_each_entry(vf_pdn, &pdn->parent->child_list, list) {
+			if (vf_pdn->busno == vf_bus &&
+			    vf_pdn->devfn == vf_devfn) {
+				vf_pdn->pe_number = pe_num;
+				break;
+			}
+		}
+
 		pnv_pci_ioda2_setup_dma_pe(phb, pe);
 #ifdef CONFIG_IOMMU_API
 		iommu_register_group(&pe->table_group,
@@ -2889,9 +2917,6 @@
 	struct pci_dn *pdn;
 	int mul, total_vfs;
 
-	if (!pdev->is_physfn || pci_dev_is_added(pdev))
-		return;
-
 	pdn = pci_get_pdn(pdev);
 	pdn->vfs_expanded = 0;
 	pdn->m64_single_mode = false;
@@ -2966,6 +2991,30 @@
 		res->end = res->start - 1;
 	}
 }
+
+static void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev)
+{
+	if (WARN_ON(pci_dev_is_added(pdev)))
+		return;
+
+	if (pdev->is_virtfn) {
+		struct pnv_ioda_pe *pe = pnv_ioda_get_pe(pdev);
+
+		/*
+		 * VF PEs are single-device PEs so their pdev pointer needs to
+		 * be set. The pdev doesn't exist when the PE is allocated (in
+		 * (pcibios_sriov_enable()) so we fix it up here.
+		 */
+		pe->pdev = pdev;
+		WARN_ON(!(pe->flags & PNV_IODA_PE_VF));
+	} else if (pdev->is_physfn) {
+		/*
+		 * For PFs adjust their allocated IOV resources to match what
+		 * the PHB can support using it's M64 BAR table.
+		 */
+		pnv_pci_ioda_fixup_iov_resources(pdev);
+	}
+}
 #endif /* CONFIG_PCI_IOV */
 
 static void pnv_ioda_setup_pe_res(struct pnv_ioda_pe *pe,
@@ -3383,6 +3432,28 @@
 	return true;
 }
 
+static bool pnv_ocapi_enable_device_hook(struct pci_dev *dev)
+{
+	struct pci_controller *hose = pci_bus_to_host(dev->bus);
+	struct pnv_phb *phb = hose->private_data;
+	struct pci_dn *pdn;
+	struct pnv_ioda_pe *pe;
+
+	if (!phb->initialized)
+		return true;
+
+	pdn = pci_get_pdn(dev);
+	if (!pdn)
+		return false;
+
+	if (pdn->pe_number == IODA_INVALID_PE) {
+		pe = pnv_ioda_setup_dev_PE(dev);
+		if (!pe)
+			return false;
+	}
+	return true;
+}
+
 static long pnv_pci_ioda1_unset_window(struct iommu_table_group *table_group,
 				       int num)
 {
@@ -3512,7 +3583,10 @@
 	struct pnv_phb *phb = pe->phb;
 	struct pnv_ioda_pe *slave, *tmp;
 
+	mutex_lock(&phb->ioda.pe_list_mutex);
 	list_del(&pe->list);
+	mutex_unlock(&phb->ioda.pe_list_mutex);
+
 	switch (phb->type) {
 	case PNV_PHB_IODA1:
 		pnv_pci_ioda1_release_pe_dma(pe);
@@ -3520,6 +3594,8 @@
 	case PNV_PHB_IODA2:
 		pnv_pci_ioda2_release_pe_dma(pe);
 		break;
+	case PNV_PHB_NPU_OCAPI:
+		break;
 	default:
 		WARN_ON(1);
 	}
@@ -3620,7 +3696,8 @@
 };
 
 static const struct pci_controller_ops pnv_npu_ocapi_ioda_controller_ops = {
-	.enable_device_hook	= pnv_pci_enable_device_hook,
+	.enable_device_hook	= pnv_ocapi_enable_device_hook,
+	.release_device		= pnv_pci_release_device,
 	.window_alignment	= pnv_pci_window_alignment,
 	.reset_secondary_bus	= pnv_pci_reset_secondary_bus,
 	.shutdown		= pnv_pci_ioda_shutdown,
@@ -3862,7 +3939,7 @@
 	ppc_md.pcibios_default_alignment = pnv_pci_default_alignment;
 
 #ifdef CONFIG_PCI_IOV
-	ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov_resources;
+	ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov;
 	ppc_md.pcibios_iov_resource_alignment = pnv_pci_iov_resource_alignment;
 	ppc_md.pcibios_sriov_enable = pnv_pcibios_sriov_enable;
 	ppc_md.pcibios_sriov_disable = pnv_pcibios_sriov_disable;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/pci.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/pci.c
@@ -38,7 +38,7 @@
 
 int pnv_pci_get_slot_id(struct device_node *np, uint64_t *id)
 {
-	struct device_node *parent = np;
+	struct device_node *node = np;
 	u32 bdfn;
 	u64 phbid;
 	int ret;
@@ -48,25 +48,29 @@
 		return -ENXIO;
 
 	bdfn = ((bdfn & 0x00ffff00) >> 8);
-	while ((parent = of_get_parent(parent))) {
-		if (!PCI_DN(parent)) {
-			of_node_put(parent);
+	for (node = np; node; node = of_get_parent(node)) {
+		if (!PCI_DN(node)) {
+			of_node_put(node);
 			break;
 		}
 
-		if (!of_device_is_compatible(parent, "ibm,ioda2-phb") &&
-		    !of_device_is_compatible(parent, "ibm,ioda3-phb")) {
-			of_node_put(parent);
+		if (!of_device_is_compatible(node, "ibm,ioda2-phb") &&
+		    !of_device_is_compatible(node, "ibm,ioda3-phb") &&
+		    !of_device_is_compatible(node, "ibm,ioda2-npu2-opencapi-phb")) {
+			of_node_put(node);
 			continue;
 		}
 
-		ret = of_property_read_u64(parent, "ibm,opal-phbid", &phbid);
+		ret = of_property_read_u64(node, "ibm,opal-phbid", &phbid);
 		if (ret) {
-			of_node_put(parent);
+			of_node_put(node);
 			return -ENXIO;
 		}
 
-		*id = PCI_SLOT_ID(phbid, bdfn);
+		if (of_device_is_compatible(node, "ibm,ioda2-npu2-opencapi-phb"))
+			*id = PCI_PHB_SLOT_ID(phbid);
+		else
+			*id = PCI_SLOT_ID(phbid, bdfn);
 		return 0;
 	}
 
@@ -814,24 +818,6 @@
 {
 	struct pci_controller *hose = pci_bus_to_host(pdev->bus);
 	struct pnv_phb *phb = hose->private_data;
-#ifdef CONFIG_PCI_IOV
-	struct pnv_ioda_pe *pe;
-	struct pci_dn *pdn;
-
-	/* Fix the VF pdn PE number */
-	if (pdev->is_virtfn) {
-		pdn = pci_get_pdn(pdev);
-		WARN_ON(pdn->pe_number != IODA_INVALID_PE);
-		list_for_each_entry(pe, &phb->ioda.pe_list, list) {
-			if (pe->rid == ((pdev->bus->number << 8) |
-			    (pdev->devfn & 0xff))) {
-				pdn->pe_number = pe->pe_number;
-				pe->pdev = pdev;
-				break;
-			}
-		}
-	}
-#endif /* CONFIG_PCI_IOV */
 
 	if (phb && phb->dma_dev_setup)
 		phb->dma_dev_setup(phb, pdev);
@@ -945,6 +931,23 @@
 	if (!firmware_has_feature(FW_FEATURE_OPAL))
 		return;
 
+#ifdef CONFIG_PCIEPORTBUS
+	/*
+	 * On PowerNV PCIe devices are (currently) managed in cooperation
+	 * with firmware. This isn't *strictly* required, but there's enough
+	 * assumptions baked into both firmware and the platform code that
+	 * it's unwise to allow the portbus services to be used.
+	 *
+	 * We need to fix this eventually, but for now set this flag to disable
+	 * the portbus driver. The AER service isn't required since that AER
+	 * events are handled via EEH. The pciehp hotplug driver can't work
+	 * without kernel changes (and portbus binding breaks pnv_php). The
+	 * other services also require some thinking about how we're going
+	 * to integrate them.
+	 */
+	pcie_ports_disabled = true;
+#endif
+
 	/* Look for IODA IO-Hubs. */
 	for_each_compatible_node(np, NULL, "ibm,ioda-hub") {
 		pnv_pci_init_ioda_hub(np);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/setup.c
@@ -122,12 +122,29 @@
 			type = L1D_FLUSH_ORI;
 	}
 
+	/*
+	 * If we are non-Power9 bare metal, we don't need to flush on kernel
+	 * entry or after user access: they fix a P9 specific vulnerability.
+	 */
+	if (!pvr_version_is(PVR_POWER9)) {
+		security_ftr_clear(SEC_FTR_L1D_FLUSH_ENTRY);
+		security_ftr_clear(SEC_FTR_L1D_FLUSH_UACCESS);
+	}
+
 	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) && \
 		 (security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR)   || \
 		  security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV));
 
 	setup_rfi_flush(type, enable);
 	setup_count_cache_flush();
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_ENTRY);
+	setup_entry_flush(enable);
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_UACCESS);
+	setup_uaccess_flush(enable);
 }
 
 static void __init pnv_setup_arch(void)
@@ -169,11 +186,16 @@
 		add_preferred_console("hvc", 0, NULL);
 
 	if (!radix_enabled()) {
+		size_t size = sizeof(struct slb_entry) * mmu_slb_size;
 		int i;
 
 		/* Allocate per cpu area to save old slb contents during MCE */
-		for_each_possible_cpu(i)
-			paca_ptrs[i]->mce_faulty_slbs = memblock_alloc_node(mmu_slb_size, __alignof__(*paca_ptrs[i]->mce_faulty_slbs), cpu_to_node(i));
+		for_each_possible_cpu(i) {
+			paca_ptrs[i]->mce_faulty_slbs =
+					memblock_alloc_node(size,
+						__alignof__(struct slb_entry),
+						cpu_to_node(i));
+		}
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/powernv/smp.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/powernv/smp.c
@@ -43,7 +43,7 @@
 #include <asm/udbg.h>
 #define DBG(fmt...) udbg_printf(fmt)
 #else
-#define DBG(fmt...)
+#define DBG(fmt...) do { } while (0)
 #endif
 
 static void pnv_smp_setup_cpu(int cpu)
@@ -167,7 +167,6 @@
 	/* Standard hot unplug procedure */
 
 	idle_task_exit();
-	current->active_mm = NULL; /* for sanity */
 	cpu = smp_processor_id();
 	DBG("CPU%d offline\n", cpu);
 	generic_set_cpu_dead(cpu);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/ps3/mm.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/ps3/mm.c
@@ -200,13 +200,14 @@
 {
 	int result;
 
-	DBG("%s:%d: map.vas_id    = %llu\n", __func__, __LINE__, map.vas_id);
-
 	if (map.vas_id) {
 		result = lv1_select_virtual_address_space(0);
-		BUG_ON(result);
-		result = lv1_destruct_virtual_address_space(map.vas_id);
-		BUG_ON(result);
+		result += lv1_destruct_virtual_address_space(map.vas_id);
+
+		if (result) {
+			lv1_panic(0);
+		}
+
 		map.vas_id = 0;
 	}
 }
@@ -304,19 +305,20 @@
 	int result;
 
 	if (!r->destroy) {
-		pr_info("%s:%d: Not destroying high region: %llxh %llxh\n",
-			__func__, __LINE__, r->base, r->size);
 		return;
 	}
 
-	DBG("%s:%d: r->base = %llxh\n", __func__, __LINE__, r->base);
-
 	if (r->base) {
 		result = lv1_release_memory(r->base);
-		BUG_ON(result);
+
+		if (result) {
+			lv1_panic(0);
+		}
+
 		r->size = r->base = r->offset = 0;
 		map.total = map.rm.size;
 	}
+
 	ps3_mm_set_repository_highmem(NULL);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/cmm.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/cmm.c
@@ -411,6 +411,10 @@
 	.dev_name = "cmm",
 };
 
+static void cmm_release_device(struct device *dev)
+{
+}
+
 /**
  * cmm_sysfs_register - Register with sysfs
  *
@@ -426,6 +430,7 @@
 
 	dev->id = 0;
 	dev->bus = &cmm_subsys;
+	dev->release = cmm_release_device;
 
 	if ((rc = device_register(dev)))
 		goto subsys_unregister;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/dlpar.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/dlpar.c
@@ -127,7 +127,6 @@
 #define NEXT_PROPERTY   3
 #define PREV_PARENT     4
 #define MORE_MEMORY     5
-#define CALL_AGAIN	-2
 #define ERR_CFG_USE     -9003
 
 struct device_node *dlpar_configure_connector(__be32 drc_index,
@@ -168,6 +167,9 @@
 
 		spin_unlock(&rtas_data_buf_lock);
 
+		if (rtas_busy_delay(rc))
+			continue;
+
 		switch (rc) {
 		case COMPLETE:
 			break;
@@ -216,9 +218,6 @@
 			last_dn = last_dn->parent;
 			break;
 
-		case CALL_AGAIN:
-			break;
-
 		case MORE_MEMORY:
 		case ERR_CFG_USE:
 		default:
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -27,7 +27,7 @@
 unsigned long pseries_memory_block_size(void)
 {
 	struct device_node *np;
-	unsigned int memblock_size = MIN_MEMORY_BLOCK_SIZE;
+	u64 memblock_size = MIN_MEMORY_BLOCK_SIZE;
 	struct resource r;
 
 	np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
@@ -223,7 +223,7 @@
 			 struct drmem_lmb **end_lmb)
 {
 	struct drmem_lmb *lmb, *start, *end;
-	struct drmem_lmb *last_lmb;
+	struct drmem_lmb *limit;
 
 	start = NULL;
 	for_each_drmem_lmb(lmb) {
@@ -236,10 +236,10 @@
 	if (!start)
 		return -EINVAL;
 
-	end = &start[n_lmbs - 1];
+	end = &start[n_lmbs];
 
-	last_lmb = &drmem_info->lmbs[drmem_info->n_lmbs - 1];
-	if (end > last_lmb)
+	limit = &drmem_info->lmbs[drmem_info->n_lmbs];
+	if (end > limit)
 		return -EINVAL;
 
 	*start_lmb = start;
@@ -279,7 +279,7 @@
 	return dlpar_change_lmb_state(lmb, false);
 }
 
-static int pseries_remove_memblock(unsigned long base, unsigned int memblock_size)
+static int pseries_remove_memblock(unsigned long base, unsigned long memblock_size)
 {
 	unsigned long block_sz, start_pfn;
 	int sections_per_block;
@@ -310,10 +310,11 @@
 
 static int pseries_remove_mem_node(struct device_node *np)
 {
-	const __be32 *regs;
+	const __be32 *prop;
 	unsigned long base;
-	unsigned int lmb_size;
+	unsigned long lmb_size;
 	int ret = -EINVAL;
+	int addr_cells, size_cells;
 
 	/*
 	 * Check to see if we are actually removing memory
@@ -324,12 +325,19 @@
 	/*
 	 * Find the base address and size of the memblock
 	 */
-	regs = of_get_property(np, "reg", NULL);
-	if (!regs)
+	prop = of_get_property(np, "reg", NULL);
+	if (!prop)
 		return ret;
 
-	base = be64_to_cpu(*(unsigned long *)regs);
-	lmb_size = be32_to_cpu(regs[3]);
+	addr_cells = of_n_addr_cells(np);
+	size_cells = of_n_size_cells(np);
+
+	/*
+	 * "reg" property represents (addr,size) tuple.
+	 */
+	base = of_read_number(prop, addr_cells);
+	prop += addr_cells;
+	lmb_size = of_read_number(prop, size_cells);
 
 	pseries_remove_memblock(base, lmb_size);
 	return 0;
@@ -360,8 +368,10 @@
 
 	for (i = 0; i < scns_per_block; i++) {
 		pfn = PFN_DOWN(phys_addr);
-		if (!pfn_present(pfn))
+		if (!pfn_present(pfn)) {
+			phys_addr += MIN_MEMORY_BLOCK_SIZE;
 			continue;
+		}
 
 		rc &= is_mem_section_removable(pfn, PAGES_PER_SECTION);
 		phys_addr += MIN_MEMORY_BLOCK_SIZE;
@@ -374,25 +384,32 @@
 
 static int dlpar_remove_lmb(struct drmem_lmb *lmb)
 {
+	struct memory_block *mem_block;
 	unsigned long block_sz;
 	int rc;
 
 	if (!lmb_is_removable(lmb))
 		return -EINVAL;
 
+	mem_block = lmb_to_memblock(lmb);
+	if (mem_block == NULL)
+		return -EINVAL;
+
 	rc = dlpar_offline_lmb(lmb);
-	if (rc)
+	if (rc) {
+		put_device(&mem_block->dev);
 		return rc;
+	}
 
 	block_sz = pseries_memory_block_size();
 
-	__remove_memory(lmb->nid, lmb->base_addr, block_sz);
+	__remove_memory(mem_block->nid, lmb->base_addr, block_sz);
+	put_device(&mem_block->dev);
 
 	/* Update memory regions for memory remove */
 	memblock_remove(lmb->base_addr, block_sz);
 
 	invalidate_lmb_associativity_index(lmb);
-	lmb_clear_nid(lmb);
 	lmb->flags &= ~DRCONF_MEM_ASSIGNED;
 
 	return 0;
@@ -611,7 +628,7 @@
 
 #else
 static inline int pseries_remove_memblock(unsigned long base,
-					  unsigned int memblock_size)
+					  unsigned long memblock_size)
 {
 	return -EOPNOTSUPP;
 }
@@ -649,7 +666,7 @@
 static int dlpar_add_lmb(struct drmem_lmb *lmb)
 {
 	unsigned long block_sz;
-	int rc;
+	int nid, rc;
 
 	if (lmb->flags & DRCONF_MEM_ASSIGNED)
 		return -EINVAL;
@@ -660,11 +677,13 @@
 		return rc;
 	}
 
-	lmb_set_nid(lmb);
 	block_sz = memory_block_size_bytes();
 
+	/* Find the node id for this address. */
+	nid = memory_add_physaddr_to_nid(lmb->base_addr);
+
 	/* Add the memory */
-	rc = __add_memory(lmb->nid, lmb->base_addr, block_sz);
+	rc = __add_memory(nid, lmb->base_addr, block_sz);
 	if (rc) {
 		invalidate_lmb_associativity_index(lmb);
 		return rc;
@@ -672,9 +691,8 @@
 
 	rc = dlpar_online_lmb(lmb);
 	if (rc) {
-		__remove_memory(lmb->nid, lmb->base_addr, block_sz);
+		__remove_memory(nid, lmb->base_addr, block_sz);
 		invalidate_lmb_associativity_index(lmb);
-		lmb_clear_nid(lmb);
 	} else {
 		lmb->flags |= DRCONF_MEM_ASSIGNED;
 	}
@@ -943,10 +961,11 @@
 
 static int pseries_add_mem_node(struct device_node *np)
 {
-	const __be32 *regs;
+	const __be32 *prop;
 	unsigned long base;
-	unsigned int lmb_size;
+	unsigned long lmb_size;
 	int ret = -EINVAL;
+	int addr_cells, size_cells;
 
 	/*
 	 * Check to see if we are actually adding memory
@@ -957,12 +976,18 @@
 	/*
 	 * Find the base and size of the memblock
 	 */
-	regs = of_get_property(np, "reg", NULL);
-	if (!regs)
+	prop = of_get_property(np, "reg", NULL);
+	if (!prop)
 		return ret;
 
-	base = be64_to_cpu(*(unsigned long *)regs);
-	lmb_size = be32_to_cpu(regs[3]);
+	addr_cells = of_n_addr_cells(np);
+	size_cells = of_n_size_cells(np);
+	/*
+	 * "reg" property represents (addr,size) tuple.
+	 */
+	base = of_read_number(prop, addr_cells);
+	prop += addr_cells;
+	lmb_size = of_read_number(prop, size_cells);
 
 	/*
 	 * Update memory region to represent the memory add
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/iommu.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/iommu.c
@@ -36,7 +36,6 @@
 #include <asm/udbg.h>
 #include <asm/mmzone.h>
 #include <asm/plpar_wrappers.h>
-#include <asm/svm.h>
 
 #include "pseries.h"
 
@@ -133,10 +132,10 @@
 	return be64_to_cpu(*tcep);
 }
 
-static void tce_free_pSeriesLP(struct iommu_table*, long, long);
+static void tce_free_pSeriesLP(unsigned long liobn, long, long);
 static void tce_freemulti_pSeriesLP(struct iommu_table*, long, long);
 
-static int tce_build_pSeriesLP(struct iommu_table *tbl, long tcenum,
+static int tce_build_pSeriesLP(unsigned long liobn, long tcenum, long tceshift,
 				long npages, unsigned long uaddr,
 				enum dma_data_direction direction,
 				unsigned long attrs)
@@ -147,25 +146,25 @@
 	int ret = 0;
 	long tcenum_start = tcenum, npages_start = npages;
 
-	rpn = __pa(uaddr) >> TCE_SHIFT;
+	rpn = __pa(uaddr) >> tceshift;
 	proto_tce = TCE_PCI_READ;
 	if (direction != DMA_TO_DEVICE)
 		proto_tce |= TCE_PCI_WRITE;
 
 	while (npages--) {
-		tce = proto_tce | (rpn & TCE_RPN_MASK) << TCE_RPN_SHIFT;
-		rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, tce);
+		tce = proto_tce | (rpn & TCE_RPN_MASK) << tceshift;
+		rc = plpar_tce_put((u64)liobn, (u64)tcenum << tceshift, tce);
 
 		if (unlikely(rc == H_NOT_ENOUGH_RESOURCES)) {
 			ret = (int)rc;
-			tce_free_pSeriesLP(tbl, tcenum_start,
+			tce_free_pSeriesLP(liobn, tcenum_start,
 			                   (npages_start - (npages + 1)));
 			break;
 		}
 
 		if (rc && printk_ratelimit()) {
 			printk("tce_build_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
-			printk("\tindex   = 0x%llx\n", (u64)tbl->it_index);
+			printk("\tindex   = 0x%llx\n", (u64)liobn);
 			printk("\ttcenum  = 0x%llx\n", (u64)tcenum);
 			printk("\ttce val = 0x%llx\n", tce );
 			dump_stack();
@@ -194,7 +193,8 @@
 	unsigned long flags;
 
 	if ((npages == 1) || !firmware_has_feature(FW_FEATURE_MULTITCE)) {
-		return tce_build_pSeriesLP(tbl, tcenum, npages, uaddr,
+		return tce_build_pSeriesLP(tbl->it_index, tcenum,
+					   tbl->it_page_shift, npages, uaddr,
 		                           direction, attrs);
 	}
 
@@ -210,8 +210,9 @@
 		/* If allocation fails, fall back to the loop implementation */
 		if (!tcep) {
 			local_irq_restore(flags);
-			return tce_build_pSeriesLP(tbl, tcenum, npages, uaddr,
-					    direction, attrs);
+			return tce_build_pSeriesLP(tbl->it_index, tcenum,
+					tbl->it_page_shift,
+					npages, uaddr, direction, attrs);
 		}
 		__this_cpu_write(tce_page, tcep);
 	}
@@ -262,16 +263,16 @@
 	return ret;
 }
 
-static void tce_free_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages)
+static void tce_free_pSeriesLP(unsigned long liobn, long tcenum, long npages)
 {
 	u64 rc;
 
 	while (npages--) {
-		rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, 0);
+		rc = plpar_tce_put((u64)liobn, (u64)tcenum << 12, 0);
 
 		if (rc && printk_ratelimit()) {
 			printk("tce_free_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
-			printk("\tindex   = 0x%llx\n", (u64)tbl->it_index);
+			printk("\tindex   = 0x%llx\n", (u64)liobn);
 			printk("\ttcenum  = 0x%llx\n", (u64)tcenum);
 			dump_stack();
 		}
@@ -286,7 +287,7 @@
 	u64 rc;
 
 	if (!firmware_has_feature(FW_FEATURE_MULTITCE))
-		return tce_free_pSeriesLP(tbl, tcenum, npages);
+		return tce_free_pSeriesLP(tbl->it_index, tcenum, npages);
 
 	rc = plpar_tce_stuff((u64)tbl->it_index, (u64)tcenum << 12, 0, npages);
 
@@ -401,6 +402,19 @@
 	u64 rc = 0;
 	long l, limit;
 
+	if (!firmware_has_feature(FW_FEATURE_MULTITCE)) {
+		unsigned long tceshift = be32_to_cpu(maprange->tce_shift);
+		unsigned long dmastart = (start_pfn << PAGE_SHIFT) +
+				be64_to_cpu(maprange->dma_base);
+		unsigned long tcenum = dmastart >> tceshift;
+		unsigned long npages = num_pfn << PAGE_SHIFT >> tceshift;
+		void *uaddr = __va(start_pfn << PAGE_SHIFT);
+
+		return tce_build_pSeriesLP(be32_to_cpu(maprange->liobn),
+				tcenum, tceshift, npages, (unsigned long) uaddr,
+				DMA_BIDIRECTIONAL, 0);
+	}
+
 	local_irq_disable();	/* to protect tcep and the page behind it */
 	tcep = __this_cpu_read(tce_page);
 
@@ -1320,15 +1334,7 @@
 	of_reconfig_notifier_register(&iommu_reconfig_nb);
 	register_memory_notifier(&iommu_mem_nb);
 
-	/*
-	 * Secure guest memory is inacessible to devices so regular DMA isn't
-	 * possible.
-	 *
-	 * In that case keep devices' dma_map_ops as NULL so that the generic
-	 * DMA code path will use SWIOTLB to bounce buffers for DMA.
-	 */
-	if (!is_secure_guest())
-		set_pci_dma_ops(&dma_iommu_ops);
+	set_pci_dma_ops(&dma_iommu_ops);
 }
 
 static int __init disable_multitce(char *str)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/lpar.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/lpar.c
@@ -1992,7 +1992,7 @@
 {
 	char name[16];
 	long i;
-	static struct dentry *vpa_dir;
+	struct dentry *vpa_dir;
 
 	if (!firmware_has_feature(FW_FEATURE_SPLPAR))
 		return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/lparcfg.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/lparcfg.c
@@ -435,10 +435,10 @@
 {
 	unsigned long maxmem = 0;
 
-	maxmem += drmem_info->n_lmbs * drmem_info->lmb_size;
+	maxmem += (unsigned long)drmem_info->n_lmbs * drmem_info->lmb_size;
 	maxmem += hugetlb_total_pages() * PAGE_SIZE;
 
-	seq_printf(m, "MaxMem=%ld\n", maxmem);
+	seq_printf(m, "MaxMem=%lu\n", maxmem);
 }
 
 static int pseries_lparcfg_data(struct seq_file *m, void *v)
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/msi.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/msi.c
@@ -4,6 +4,7 @@
  * Copyright 2006-2007 Michael Ellerman, IBM Corp.
  */
 
+#include <linux/crash_dump.h>
 #include <linux/device.h>
 #include <linux/irq.h>
 #include <linux/msi.h>
@@ -458,7 +459,28 @@
 			return hwirq;
 		}
 
-		virq = irq_create_mapping(NULL, hwirq);
+		/*
+		 * Depending on the number of online CPUs in the original
+		 * kernel, it is likely for CPU #0 to be offline in a kdump
+		 * kernel. The associated IRQs in the affinity mappings
+		 * provided by irq_create_affinity_masks() are thus not
+		 * started by irq_startup(), as per-design for managed IRQs.
+		 * This can be a problem with multi-queue block devices driven
+		 * by blk-mq : such a non-started IRQ is very likely paired
+		 * with the single queue enforced by blk-mq during kdump (see
+		 * blk_mq_alloc_tag_set()). This causes the device to remain
+		 * silent and likely hangs the guest at some point.
+		 *
+		 * We don't really care for fine-grained affinity when doing
+		 * kdump actually : simply ignore the pre-computed affinity
+		 * masks in this case and let the default mask with all CPUs
+		 * be used when creating the IRQ mappings.
+		 */
+		if (is_kdump_kernel())
+			virq = irq_create_mapping(NULL, hwirq);
+		else
+			virq = irq_create_mapping_affinity(NULL, hwirq,
+							   entry->affinity);
 
 		if (!virq) {
 			pr_debug("rtas_msi: Failed mapping hwirq %d\n", hwirq);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/papr_scm.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/papr_scm.c
@@ -152,7 +152,7 @@
 	int len, read;
 	int64_t ret;
 
-	if ((hdr->in_offset + hdr->in_length) >= p->metadata_size)
+	if ((hdr->in_offset + hdr->in_length) > p->metadata_size)
 		return -EINVAL;
 
 	for (len = hdr->in_length; len; len -= read) {
@@ -206,7 +206,7 @@
 	__be64 data_be;
 	int64_t ret;
 
-	if ((hdr->in_offset + hdr->in_length) >= p->metadata_size)
+	if ((hdr->in_offset + hdr->in_length) > p->metadata_size)
 		return -EINVAL;
 
 	for (len = hdr->in_length; len; len -= wrote) {
@@ -342,6 +342,7 @@
 	p->bus = nvdimm_bus_register(NULL, &p->bus_desc);
 	if (!p->bus) {
 		dev_err(dev, "Error creating nvdimm bus %pOF\n", p->dn);
+		kfree(p->bus_desc.provider_name);
 		return -ENXIO;
 	}
 
@@ -498,6 +499,7 @@
 
 	nvdimm_bus_unregister(p->bus);
 	drc_pmem_unbind(p);
+	kfree(p->bus_desc.provider_name);
 	kfree(p);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/ras.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/ras.c
@@ -184,7 +184,6 @@
 	case EPOW_SHUTDOWN_ON_UPS:
 		pr_emerg("Loss of system power detected. System is running on"
 			 " UPS/battery. Check RTAS error log for details\n");
-		orderly_poweroff(true);
 		break;
 
 	case EPOW_SHUTDOWN_LOSS_OF_CRITICAL_FUNCTIONS:
@@ -395,10 +394,11 @@
 /*
  * Some versions of FWNMI place the buffer inside the 4kB page starting at
  * 0x7000. Other versions place it inside the rtas buffer. We check both.
+ * Minimum size of the buffer is 16 bytes.
  */
 #define VALID_FWNMI_BUFFER(A) \
-	((((A) >= 0x7000) && ((A) < 0x7ff0)) || \
-	(((A) >= rtas.base) && ((A) < (rtas.base + rtas.size - 16))))
+	((((A) >= 0x7000) && ((A) <= 0x8000 - 16)) || \
+	(((A) >= rtas.base) && ((A) <= (rtas.base + rtas.size - 16))))
 
 static inline struct rtas_error_log *fwnmi_get_errlog(void)
 {
@@ -494,18 +494,55 @@
 	return 0; /* need to perform reset */
 }
 
+static int mce_handle_err_realmode(int disposition, u8 error_type)
+{
+#ifdef CONFIG_PPC_BOOK3S_64
+	if (disposition == RTAS_DISP_NOT_RECOVERED) {
+		switch (error_type) {
+		case	MC_ERROR_TYPE_SLB:
+		case	MC_ERROR_TYPE_ERAT:
+			/*
+			 * Store the old slb content in paca before flushing.
+			 * Print this when we go to virtual mode.
+			 * There are chances that we may hit MCE again if there
+			 * is a parity error on the SLB entry we trying to read
+			 * for saving. Hence limit the slb saving to single
+			 * level of recursion.
+			 */
+			if (local_paca->in_mce == 1)
+				slb_save_contents(local_paca->mce_faulty_slbs);
+			flush_and_reload_slb();
+			disposition = RTAS_DISP_FULLY_RECOVERED;
+			break;
+		default:
+			break;
+		}
+	} else if (disposition == RTAS_DISP_LIMITED_RECOVERY) {
+		/* Platform corrected itself but could be degraded */
+		pr_err("MCE: limited recovery, system may be degraded\n");
+		disposition = RTAS_DISP_FULLY_RECOVERED;
+	}
+#endif
+	return disposition;
+}
 
-static int mce_handle_error(struct pt_regs *regs, struct rtas_error_log *errp)
+static int mce_handle_err_virtmode(struct pt_regs *regs,
+				   struct rtas_error_log *errp,
+				   struct pseries_mc_errorlog *mce_log,
+				   int disposition)
 {
 	struct mce_error_info mce_err = { 0 };
-	unsigned long eaddr = 0, paddr = 0;
-	struct pseries_errorlog *pseries_log;
-	struct pseries_mc_errorlog *mce_log;
-	int disposition = rtas_error_disposition(errp);
 	int initiator = rtas_error_initiator(errp);
 	int severity = rtas_error_severity(errp);
+	unsigned long eaddr = 0, paddr = 0;
 	u8 error_type, err_sub_type;
 
+	if (!mce_log)
+		goto out;
+
+	error_type = mce_log->error_type;
+	err_sub_type = rtas_mc_error_sub_type(mce_log);
+
 	if (initiator == RTAS_INITIATOR_UNKNOWN)
 		mce_err.initiator = MCE_INITIATOR_UNKNOWN;
 	else if (initiator == RTAS_INITIATOR_CPU)
@@ -544,18 +581,7 @@
 	mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
 	mce_err.error_class = MCE_ECLASS_UNKNOWN;
 
-	if (!rtas_error_extended(errp))
-		goto out;
-
-	pseries_log = get_pseries_errorlog(errp, PSERIES_ELOG_SECT_ID_MCE);
-	if (pseries_log == NULL)
-		goto out;
-
-	mce_log = (struct pseries_mc_errorlog *)pseries_log->data;
-	error_type = mce_log->error_type;
-	err_sub_type = rtas_mc_error_sub_type(mce_log);
-
-	switch (mce_log->error_type) {
+	switch (error_type) {
 	case MC_ERROR_TYPE_UE:
 		mce_err.error_type = MCE_ERROR_TYPE_UE;
 		switch (err_sub_type) {
@@ -652,40 +678,45 @@
 		mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
 		break;
 	}
-
-#ifdef CONFIG_PPC_BOOK3S_64
-	if (disposition == RTAS_DISP_NOT_RECOVERED) {
-		switch (error_type) {
-		case	MC_ERROR_TYPE_SLB:
-		case	MC_ERROR_TYPE_ERAT:
-			/*
-			 * Store the old slb content in paca before flushing.
-			 * Print this when we go to virtual mode.
-			 * There are chances that we may hit MCE again if there
-			 * is a parity error on the SLB entry we trying to read
-			 * for saving. Hence limit the slb saving to single
-			 * level of recursion.
-			 */
-			if (local_paca->in_mce == 1)
-				slb_save_contents(local_paca->mce_faulty_slbs);
-			flush_and_reload_slb();
-			disposition = RTAS_DISP_FULLY_RECOVERED;
-			break;
-		default:
-			break;
-		}
-	} else if (disposition == RTAS_DISP_LIMITED_RECOVERY) {
-		/* Platform corrected itself but could be degraded */
-		printk(KERN_ERR "MCE: limited recovery, system may "
-		       "be degraded\n");
-		disposition = RTAS_DISP_FULLY_RECOVERED;
-	}
-#endif
-
 out:
 	save_mce_event(regs, disposition == RTAS_DISP_FULLY_RECOVERED,
-			&mce_err, regs->nip, eaddr, paddr);
+		       &mce_err, regs->nip, eaddr, paddr);
+	return disposition;
+}
+
+static int mce_handle_error(struct pt_regs *regs, struct rtas_error_log *errp)
+{
+	struct pseries_errorlog *pseries_log;
+	struct pseries_mc_errorlog *mce_log = NULL;
+	int disposition = rtas_error_disposition(errp);
+	u8 error_type;
+
+	if (!rtas_error_extended(errp))
+		goto out;
+
+	pseries_log = get_pseries_errorlog(errp, PSERIES_ELOG_SECT_ID_MCE);
+	if (!pseries_log)
+		goto out;
+
+	mce_log = (struct pseries_mc_errorlog *)pseries_log->data;
+	error_type = mce_log->error_type;
+
+	disposition = mce_handle_err_realmode(disposition, error_type);
 
+	/*
+	 * Enable translation as we will be accessing per-cpu variables
+	 * in save_mce_event() which may fall outside RMO region, also
+	 * leave it enabled because subsequently we will be queuing work
+	 * to workqueues where again per-cpu variables accessed, besides
+	 * fwnmi_release_errinfo() crashes when called in realmode on
+	 * pseries.
+	 * Note: All the realmode handling like flushing SLB entries for
+	 *       SLB multihit is done by now.
+	 */
+out:
+	mtmsr(mfmsr() | MSR_IR | MSR_DR);
+	disposition = mce_handle_err_virtmode(regs, errp, mce_log,
+					      disposition);
 	return disposition;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/rng.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/rng.c
@@ -36,6 +36,7 @@
 
 	ppc_md.get_random_seed = pseries_get_random_long;
 
+	of_node_put(dn);
 	return 0;
 }
 machine_subsys_initcall(pseries, rng_init);
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/setup.c
@@ -74,6 +74,9 @@
 #include "pseries.h"
 #include "../../../../drivers/pci/pci.h"
 
+DEFINE_STATIC_KEY_FALSE(shared_processor);
+EXPORT_SYMBOL_GPL(shared_processor);
+
 int CMO_PrPSP = -1;
 int CMO_SecPSP = -1;
 unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT_4K);
@@ -558,6 +561,14 @@
 
 	setup_rfi_flush(types, enable);
 	setup_count_cache_flush();
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_ENTRY);
+	setup_entry_flush(enable);
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_UACCESS);
+	setup_uaccess_flush(enable);
 }
 
 #ifdef CONFIG_PCI_IOV
@@ -758,6 +769,10 @@
 
 	if (firmware_has_feature(FW_FEATURE_LPAR)) {
 		vpa_init(boot_cpuid);
+
+		if (lppaca_shared_proc(get_lppaca()))
+			static_branch_enable(&shared_processor);
+
 		ppc_md.power_save = pseries_lpar_idle;
 		ppc_md.enable_pmcs = pseries_lpar_enable_pmcs;
 #ifdef CONFIG_PCI_IOV
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/suspend.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/suspend.c
@@ -13,7 +13,6 @@
 #include <asm/mmu.h>
 #include <asm/rtas.h>
 #include <asm/topology.h>
-#include "../../kernel/cacheinfo.h"
 
 static u64 stream_id;
 static struct device suspend_dev;
@@ -78,9 +77,7 @@
 	 * Update configuration which can be modified based on device tree
 	 * changes during resume.
 	 */
-	cacheinfo_cpu_offline(smp_processor_id());
 	post_mobility_fixup();
-	cacheinfo_cpu_online(smp_processor_id());
 }
 
 /**
@@ -132,15 +129,11 @@
 			       struct device_attribute *attr,
 			       const char *buf, size_t count)
 {
-	cpumask_var_t offline_mask;
 	int rc;
 
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 
-	if (!alloc_cpumask_var(&offline_mask, GFP_KERNEL))
-		return -ENOMEM;
-
 	stream_id = simple_strtoul(buf, NULL, 16);
 
 	do {
@@ -150,32 +143,16 @@
 	} while (rc == -EAGAIN);
 
 	if (!rc) {
-		/* All present CPUs must be online */
-		cpumask_andnot(offline_mask, cpu_present_mask,
-				cpu_online_mask);
-		rc = rtas_online_cpus_mask(offline_mask);
-		if (rc) {
-			pr_err("%s: Could not bring present CPUs online.\n",
-					__func__);
-			goto out;
-		}
-
 		stop_topology_update();
 		rc = pm_suspend(PM_SUSPEND_MEM);
 		start_topology_update();
-
-		/* Take down CPUs not online prior to suspend */
-		if (!rtas_offline_cpus_mask(offline_mask))
-			pr_warn("%s: Could not restore CPUs to offline "
-					"state.\n", __func__);
 	}
 
 	stream_id = 0;
 
 	if (!rc)
 		rc = count;
-out:
-	free_cpumask_var(offline_mask);
+
 	return rc;
 }
 
@@ -210,7 +187,6 @@
 
 static const struct platform_suspend_ops pseries_suspend_ops = {
 	.valid		= suspend_valid_only_mem,
-	.begin		= pseries_suspend_begin,
 	.prepare_late	= pseries_prepare_late,
 	.enter		= pseries_suspend_enter,
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/platforms/pseries/vio.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/platforms/pseries/vio.c
@@ -36,7 +36,6 @@
 	.name = "vio",
 	.type = "",
 	.dev.init_name = "vio",
-	.dev.bus = &vio_bus_type,
 };
 
 #ifdef CONFIG_PPC_SMLPAR
@@ -1176,6 +1175,8 @@
 	if (tbl == NULL)
 		return NULL;
 
+	kref_init(&tbl->it_kref);
+
 	of_parse_dma_window(dev->dev.of_node, dma_window,
 			    &tbl->it_index, &offset, &size);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/sysdev/mpic_msgr.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/sysdev/mpic_msgr.c
@@ -191,7 +191,7 @@
 
 	/* IO map the message register block. */
 	of_address_to_resource(np, 0, &rsrc);
-	msgr_block_addr = ioremap(rsrc.start, resource_size(&rsrc));
+	msgr_block_addr = devm_ioremap(&dev->dev, rsrc.start, resource_size(&rsrc));
 	if (!msgr_block_addr) {
 		dev_err(&dev->dev, "Failed to iomap MPIC message registers");
 		return -EFAULT;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/sysdev/xics/icp-hv.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/sysdev/xics/icp-hv.c
@@ -174,6 +174,7 @@
 
 	icp_ops = &icp_hv_ops;
 
+	of_node_put(np);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/sysdev/xive/common.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/sysdev/xive/common.c
@@ -19,6 +19,7 @@
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/msi.h>
+#include <linux/vmalloc.h>
 
 #include <asm/prom.h>
 #include <asm/io.h>
@@ -68,13 +69,6 @@
 /* Xive state for each CPU */
 static DEFINE_PER_CPU(struct xive_cpu *, xive_cpu);
 
-/*
- * A "disabled" interrupt should never fire, to catch problems
- * we set its logical number to this
- */
-#define XIVE_BAD_IRQ		0x7fffffff
-#define XIVE_MAX_IRQ		(XIVE_BAD_IRQ - 1)
-
 /* An invalid CPU target */
 #define XIVE_INVALID_TARGET	(-1)
 
@@ -265,11 +259,15 @@
 
 int xmon_xive_get_irq_config(u32 hw_irq, struct irq_data *d)
 {
+	struct irq_chip *chip = irq_data_get_irq_chip(d);
 	int rc;
 	u32 target;
 	u8 prio;
 	u32 lirq;
 
+	if (!is_xive_irq(chip))
+		return -EINVAL;
+
 	rc = xive_ops->get_irq_config(hw_irq, &target, &prio, &lirq);
 	if (rc) {
 		xmon_printf("IRQ 0x%08x : no config rc=%d\n", hw_irq, rc);
@@ -972,12 +970,21 @@
 				  enum irqchip_irq_state which, bool *state)
 {
 	struct xive_irq_data *xd = irq_data_get_irq_handler_data(data);
+	u8 pq;
 
 	switch (which) {
 	case IRQCHIP_STATE_ACTIVE:
-		*state = !xd->stale_p &&
-			 (xd->saved_p ||
-			  !!(xive_esb_read(xd, XIVE_ESB_GET) & XIVE_ESB_VAL_P));
+		pq = xive_esb_read(xd, XIVE_ESB_GET);
+
+		/*
+		 * The esb value being all 1's means we couldn't get
+		 * the PQ state of the interrupt through mmio. It may
+		 * happen, for example when querying a PHB interrupt
+		 * while the PHB is in an error state. We consider the
+		 * interrupt to be inactive in that case.
+		 */
+		*state = (pq != XIVE_ESB_INVALID) && !xd->stale_p &&
+			(xd->saved_p || !!(pq & XIVE_ESB_VAL_P));
 		return 0;
 	default:
 		return -EINVAL;
@@ -1007,12 +1014,16 @@
 void xive_cleanup_irq_data(struct xive_irq_data *xd)
 {
 	if (xd->eoi_mmio) {
+		unmap_kernel_range((unsigned long)xd->eoi_mmio,
+				   1u << xd->esb_shift);
 		iounmap(xd->eoi_mmio);
 		if (xd->eoi_mmio == xd->trig_mmio)
 			xd->trig_mmio = NULL;
 		xd->eoi_mmio = NULL;
 	}
 	if (xd->trig_mmio) {
+		unmap_kernel_range((unsigned long)xd->trig_mmio,
+				   1u << xd->esb_shift);
 		iounmap(xd->trig_mmio);
 		xd->trig_mmio = NULL;
 	}
@@ -1035,6 +1046,15 @@
 	xd->target = XIVE_INVALID_TARGET;
 	irq_set_handler_data(virq, xd);
 
+	/*
+	 * Turn OFF by default the interrupt being mapped. A side
+	 * effect of this check is the mapping the ESB page of the
+	 * interrupt in the Linux address space. This prevents page
+	 * fault issues in the crash handler which masks all
+	 * interrupts.
+	 */
+	xive_esb_read(xd, XIVE_ESB_SET_PQ_01);
+
 	return 0;
 }
 
@@ -1132,7 +1152,7 @@
 	xc = per_cpu(xive_cpu, cpu);
 
 	/* Check if we are already setup */
-	if (xc->hw_ipi != 0)
+	if (xc->hw_ipi != XIVE_BAD_IRQ)
 		return 0;
 
 	/* Grab an IPI from the backend, this will populate xc->hw_ipi */
@@ -1169,7 +1189,7 @@
 	/* Disable the IPI and free the IRQ data */
 
 	/* Already cleaned up ? */
-	if (xc->hw_ipi == 0)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 
 	/* Mask the IPI */
@@ -1325,6 +1345,7 @@
 		if (np)
 			xc->chip_id = of_get_ibm_chip_id(np);
 		of_node_put(np);
+		xc->hw_ipi = XIVE_BAD_IRQ;
 
 		per_cpu(xive_cpu, cpu) = xc;
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/sysdev/xive/native.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/sysdev/xive/native.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/cpumask.h>
 #include <linux/mm.h>
+#include <linux/kmemleak.h>
 
 #include <asm/prom.h>
 #include <asm/io.h>
@@ -312,7 +313,7 @@
 	s64 rc;
 
 	/* Free the IPI */
-	if (!xc->hw_ipi)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 	for (;;) {
 		rc = opal_xive_free_irq(xc->hw_ipi);
@@ -320,7 +321,7 @@
 			msleep(OPAL_BUSY_DELAY_MS);
 			continue;
 		}
-		xc->hw_ipi = 0;
+		xc->hw_ipi = XIVE_BAD_IRQ;
 		break;
 	}
 }
@@ -646,6 +647,7 @@
 			pr_err("Failed to allocate provisioning page\n");
 			return false;
 		}
+		kmemleak_ignore(p);
 		opal_xive_donate_page(chip, __pa(p));
 	}
 	return true;
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/sysdev/xive/spapr.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/sysdev/xive/spapr.c
@@ -392,20 +392,28 @@
 	data->esb_shift = esb_shift;
 	data->trig_page = trig_page;
 
+	data->hw_irq = hw_irq;
+
 	/*
 	 * No chip-id for the sPAPR backend. This has an impact how we
 	 * pick a target. See xive_pick_irq_target().
 	 */
 	data->src_chip = XIVE_INVALID_CHIP_ID;
 
+	/*
+	 * When the H_INT_ESB flag is set, the H_INT_ESB hcall should
+	 * be used for interrupt management. Skip the remapping of the
+	 * ESB pages which are not available.
+	 */
+	if (data->flags & XIVE_IRQ_FLAG_H_INT_ESB)
+		return 0;
+
 	data->eoi_mmio = ioremap(data->eoi_page, 1u << data->esb_shift);
 	if (!data->eoi_mmio) {
 		pr_err("Failed to map EOI page for irq 0x%x\n", hw_irq);
 		return -ENOMEM;
 	}
 
-	data->hw_irq = hw_irq;
-
 	/* Full function page supports trigger */
 	if (flags & XIVE_SRC_TRIGGER) {
 		data->trig_mmio = data->eoi_mmio;
@@ -552,11 +560,11 @@
 
 static void xive_spapr_put_ipi(unsigned int cpu, struct xive_cpu *xc)
 {
-	if (!xc->hw_ipi)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 
 	xive_irq_bitmap_free(xc->hw_ipi);
-	xc->hw_ipi = 0;
+	xc->hw_ipi = XIVE_BAD_IRQ;
 }
 #endif /* CONFIG_SMP */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/sysdev/xive/xive-internal.h
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/sysdev/xive/xive-internal.h
@@ -5,6 +5,13 @@
 #ifndef __XIVE_INTERNAL_H
 #define __XIVE_INTERNAL_H
 
+/*
+ * A "disabled" interrupt should never fire, to catch problems
+ * we set its logical number to this
+ */
+#define XIVE_BAD_IRQ		0x7fffffff
+#define XIVE_MAX_IRQ		(XIVE_BAD_IRQ - 1)
+
 /* Each CPU carry one of these with various per-CPU state */
 struct xive_cpu {
 #ifdef CONFIG_SMP
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/tools/relocs_check.sh
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/tools/relocs_check.sh
@@ -10,24 +10,29 @@
 # based on relocs_check.pl
 # Copyright © 2009 IBM Corporation
 
-if [ $# -lt 2 ]; then
-	echo "$0 [path to objdump] [path to vmlinux]" 1>&2
+if [ $# -lt 3 ]; then
+	echo "$0 [path to objdump] [path to nm] [path to vmlinux]" 1>&2
 	exit 1
 fi
 
-# Have Kbuild supply the path to objdump so we handle cross compilation.
+# Have Kbuild supply the path to objdump and nm so we handle cross compilation.
 objdump="$1"
-vmlinux="$2"
+nm="$2"
+vmlinux="$3"
+
+# Remove from the bad relocations those that match an undefined weak symbol
+# which will result in an absolute relocation to 0.
+# Weak unresolved symbols are of that form in nm output:
+# "                  w _binary__btf_vmlinux_bin_end"
+undef_weak_symbols=$($nm "$vmlinux" | awk '$1 ~ /w/ { print $2 }')
 
 bad_relocs=$(
-"$objdump" -R "$vmlinux" |
+$objdump -R "$vmlinux" |
 	# Only look at relocation lines.
 	grep -E '\<R_' |
 	# These relocations are okay
 	# On PPC64:
 	#	R_PPC64_RELATIVE, R_PPC64_NONE
-	#	R_PPC64_ADDR64 mach_<name>
-	#	R_PPC64_ADDR64 __crc_<name>
 	# On PPC:
 	#	R_PPC_RELATIVE, R_PPC_ADDR16_HI,
 	#	R_PPC_ADDR16_HA,R_PPC_ADDR16_LO,
@@ -39,8 +44,7 @@
 R_PPC_ADDR16_HA
 R_PPC_RELATIVE
 R_PPC_NONE' |
-	grep -E -v '\<R_PPC64_ADDR64[[:space:]]+mach_' |
-	grep -E -v '\<R_PPC64_ADDR64[[:space:]]+__crc_'
+	([ "$undef_weak_symbols" ] && grep -F -w -v "$undef_weak_symbols" || cat)
 )
 
 if [ -z "$bad_relocs" ]; then
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/tools/unrel_branch_check.sh
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/tools/unrel_branch_check.sh
@@ -18,14 +18,14 @@
 #__end_interrupts should be located within the first 64K
 
 end_intr=0x$(
-"$objdump" -R "$vmlinux" -d --start-address=0xc000000000000000		\
+$objdump -R "$vmlinux" -d --start-address=0xc000000000000000           \
 		 --stop-address=0xc000000000010000 |
 grep '\<__end_interrupts>:' |
 awk '{print $1}'
 )
 
 BRANCHES=$(
-"$objdump" -R "$vmlinux" -D --start-address=0xc000000000000000		\
+$objdump -R "$vmlinux" -D --start-address=0xc000000000000000           \
 		--stop-address=${end_intr} |
 grep -e "^c[0-9a-f]*:[[:space:]]*\([0-9a-f][0-9a-f][[:space:]]\)\{4\}[[:space:]]*b" |
 grep -v '\<__start_initialization_multiplatform>' |
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/xmon/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/xmon/Makefile
@@ -1,9 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 # Makefile for xmon
 
-# Disable clang warning for using setjmp without setjmp.h header
-subdir-ccflags-y := $(call cc-disable-warning, builtin-requires-header)
-
 GCOV_PROFILE := n
 KCOV_INSTRUMENT := n
 UBSAN_SANITIZE := n
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/xmon/nonstdio.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/xmon/nonstdio.c
@@ -178,7 +178,7 @@
 
 	if (n && rc == 0) {
 		/* No udbg hooks, fallback to printk() - dangerous */
-		printk("%s", xmon_outbuf);
+		pr_cont("%s", xmon_outbuf);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/powerpc/xmon/xmon.c
+++ linux-gkeop-5.4-5.4.0/arch/powerpc/xmon/xmon.c
@@ -25,6 +25,7 @@
 #include <linux/nmi.h>
 #include <linux/ctype.h>
 #include <linux/highmem.h>
+#include <linux/security.h>
 
 #include <asm/debugfs.h>
 #include <asm/ptrace.h>
@@ -187,6 +188,8 @@
 static void dump_tlb_book3e(void);
 #endif
 
+static void clear_all_bpt(void);
+
 #ifdef CONFIG_PPC64
 #define REG		"%.16lx"
 #else
@@ -283,10 +286,38 @@
 "  U	show uptime information\n"
 "  ?	help\n"
 "  # n	limit output to n lines per page (for dp, dpa, dl)\n"
-"  zr	reboot\n\
-  zh	halt\n"
+"  zr	reboot\n"
+"  zh	halt\n"
 ;
 
+#ifdef CONFIG_SECURITY
+static bool xmon_is_locked_down(void)
+{
+	static bool lockdown;
+
+	if (!lockdown) {
+		lockdown = !!security_locked_down(LOCKDOWN_XMON_RW);
+		if (lockdown) {
+			printf("xmon: Disabled due to kernel lockdown\n");
+			xmon_is_ro = true;
+		}
+	}
+
+	if (!xmon_is_ro) {
+		xmon_is_ro = !!security_locked_down(LOCKDOWN_XMON_WR);
+		if (xmon_is_ro)
+			printf("xmon: Read-only due to kernel lockdown\n");
+	}
+
+	return lockdown;
+}
+#else /* CONFIG_SECURITY */
+static inline bool xmon_is_locked_down(void)
+{
+	return false;
+}
+#endif
+
 static struct pt_regs *xmon_regs;
 
 static inline void sync(void)
@@ -438,7 +469,10 @@
 
 	return false;
 }
-#endif /* CONFIG_SMP */
+#else /* CONFIG_SMP */
+static inline void get_output_lock(void) {}
+static inline void release_output_lock(void) {}
+#endif
 
 static inline int unrecoverable_excp(struct pt_regs *regs)
 {
@@ -455,6 +489,7 @@
 	int cmd = 0;
 	struct bpt *bp;
 	long recurse_jmp[JMP_BUF_LEN];
+	bool locked_down;
 	unsigned long offset;
 	unsigned long flags;
 #ifdef CONFIG_SMP
@@ -465,6 +500,8 @@
 	local_irq_save(flags);
 	hard_irq_disable();
 
+	locked_down = xmon_is_locked_down();
+
 	if (!fromipi) {
 		tracing_enabled = tracing_is_on();
 		tracing_off();
@@ -518,7 +555,8 @@
 
 	if (!fromipi) {
 		get_output_lock();
-		excprint(regs);
+		if (!locked_down)
+			excprint(regs);
 		if (bp) {
 			printf("cpu 0x%x stopped at breakpoint 0x%tx (",
 			       cpu, BP_NUM(bp));
@@ -570,10 +608,14 @@
 		}
 		remove_bpts();
 		disable_surveillance();
-		/* for breakpoint or single step, print the current instr. */
-		if (bp || TRAP(regs) == 0xd00)
-			ppc_inst_dump(regs->nip, 1, 0);
-		printf("enter ? for help\n");
+
+		if (!locked_down) {
+			/* for breakpoint or single step, print curr insn */
+			if (bp || TRAP(regs) == 0xd00)
+				ppc_inst_dump(regs->nip, 1, 0);
+			printf("enter ? for help\n");
+		}
+
 		mb();
 		xmon_gate = 1;
 		barrier();
@@ -597,8 +639,9 @@
 			spin_cpu_relax();
 			touch_nmi_watchdog();
 		} else {
-			cmd = cmds(regs);
-			if (cmd != 0) {
+			if (!locked_down)
+				cmd = cmds(regs);
+			if (locked_down || cmd != 0) {
 				/* exiting xmon */
 				insert_bpts();
 				xmon_gate = 0;
@@ -635,13 +678,16 @@
 			       "can't continue\n");
 		remove_bpts();
 		disable_surveillance();
-		/* for breakpoint or single step, print the current instr. */
-		if (bp || TRAP(regs) == 0xd00)
-			ppc_inst_dump(regs->nip, 1, 0);
-		printf("enter ? for help\n");
+		if (!locked_down) {
+			/* for breakpoint or single step, print current insn */
+			if (bp || TRAP(regs) == 0xd00)
+				ppc_inst_dump(regs->nip, 1, 0);
+			printf("enter ? for help\n");
+		}
 	}
 
-	cmd = cmds(regs);
+	if (!locked_down)
+		cmd = cmds(regs);
 
 	insert_bpts();
 	in_xmon = 0;
@@ -670,7 +716,10 @@
 		}
 	}
 #endif
-	insert_cpu_bpts();
+	if (locked_down)
+		clear_all_bpt();
+	else
+		insert_cpu_bpts();
 
 	touch_nmi_watchdog();
 	local_irq_restore(flags);
@@ -1894,15 +1943,14 @@
 
 	printf("pidr   = %.16lx  tidr  = %.16lx\n",
 		mfspr(SPRN_PID), mfspr(SPRN_TIDR));
-	printf("asdr   = %.16lx  psscr = %.16lx\n",
-		mfspr(SPRN_ASDR), hv ? mfspr(SPRN_PSSCR)
-					: mfspr(SPRN_PSSCR_PR));
+	printf("psscr  = %.16lx\n",
+		hv ? mfspr(SPRN_PSSCR) : mfspr(SPRN_PSSCR_PR));
 
 	if (!hv)
 		return;
 
-	printf("ptcr   = %.16lx\n",
-		mfspr(SPRN_PTCR));
+	printf("ptcr   = %.16lx  asdr  = %.16lx\n",
+		mfspr(SPRN_PTCR), mfspr(SPRN_ASDR));
 #endif
 }
 
@@ -3762,6 +3810,11 @@
 #ifdef CONFIG_MAGIC_SYSRQ
 static void sysrq_handle_xmon(int key)
 {
+	if (xmon_is_locked_down()) {
+		clear_all_bpt();
+		xmon_init(0);
+		return;
+	}
 	/* ensure xmon is enabled */
 	xmon_init(1);
 	debugger(get_irq_regs());
@@ -3783,7 +3836,6 @@
 device_initcall(setup_xmon_sysrq);
 #endif /* CONFIG_MAGIC_SYSRQ */
 
-#ifdef CONFIG_DEBUG_FS
 static void clear_all_bpt(void)
 {
 	int i;
@@ -3801,18 +3853,22 @@
 		iabr = NULL;
 		dabr.enabled = 0;
 	}
-
-	printf("xmon: All breakpoints cleared\n");
 }
 
+#ifdef CONFIG_DEBUG_FS
 static int xmon_dbgfs_set(void *data, u64 val)
 {
 	xmon_on = !!val;
 	xmon_init(xmon_on);
 
 	/* make sure all breakpoints removed when disabling */
-	if (!xmon_on)
+	if (!xmon_on) {
 		clear_all_bpt();
+		get_output_lock();
+		printf("xmon: All breakpoints cleared\n");
+		release_output_lock();
+	}
+
 	return 0;
 }
 
@@ -3838,7 +3894,11 @@
 
 static int __init early_parse_xmon(char *p)
 {
-	if (!p || strncmp(p, "early", 5) == 0) {
+	if (xmon_is_locked_down()) {
+		xmon_init(0);
+		xmon_early = 0;
+		xmon_on = 0;
+	} else if (!p || strncmp(p, "early", 5) == 0) {
 		/* just "xmon" is equivalent to "xmon=early" */
 		xmon_init(1);
 		xmon_early = 1;
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/riscv/Kconfig
@@ -31,6 +31,7 @@
 	select GENERIC_SMP_IDLE_THREAD
 	select GENERIC_ATOMIC64 if !64BIT
 	select HAVE_ARCH_AUDITSYSCALL
+	select HAVE_ARCH_SECCOMP_FILTER
 	select HAVE_ASM_MODVERSIONS
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_DMA_CONTIGUOUS
@@ -61,6 +62,7 @@
 	select SPARSEMEM_STATIC if 32BIT
 	select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
 	select HAVE_ARCH_MMAP_RND_BITS
+	select HAVE_COPY_THREAD_TLS
 
 config ARCH_MMAP_RND_BITS_MIN
 	default 18 if 64BIT
@@ -100,6 +102,7 @@
 
 config ARCH_SPARSEMEM_ENABLE
 	def_bool y
+	depends on MMU
 	select SPARSEMEM_VMEMMAP_ENABLE
 
 config ARCH_SELECT_MEMORY_MODEL
@@ -272,6 +275,19 @@
 
 source "kernel/Kconfig.hz"
 
+config SECCOMP
+	bool "Enable seccomp to safely compute untrusted bytecode"
+	help
+	  This kernel feature is useful for number crunching applications
+	  that may need to compute untrusted bytecode during their
+	  execution. By using pipes or other transports made available to
+	  the process as file descriptors supporting the read/write
+	  syscalls, it's possible to isolate those applications in
+	  their own address space using seccomp. Once seccomp is
+	  enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
+	  and the task is only allowed to execute a few safe syscalls
+	  defined by each seccomp mode.
+
 endmenu
 
 menu "Boot options"
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
+++ linux-gkeop-5.4-5.4.0/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
@@ -83,6 +83,7 @@
 	phy-mode = "gmii";
 	phy-handle = <&phy0>;
 	phy0: ethernet-phy@0 {
+		compatible = "ethernet-phy-id0007.0771";
 		reg = <0>;
 	};
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/configs/defconfig
+++ linux-gkeop-5.4-5.4.0/arch/riscv/configs/defconfig
@@ -62,6 +62,8 @@
 CONFIG_HW_RANDOM_VIRTIO=y
 CONFIG_SPI=y
 CONFIG_SPI_SIFIVE=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SIFIVE=y
 # CONFIG_PTP_1588_CLOCK is not set
 CONFIG_DRM=y
 CONFIG_DRM_RADEON=y
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/barrier.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/barrier.h
@@ -58,8 +58,16 @@
  * The AQ/RL pair provides a RCpc critical section, but there's not really any
  * way we can take advantage of that here because the ordering is only enforced
  * on that one lock.  Thus, we're just doing a full fence.
+ *
+ * Since we allow writeX to be called from preemptive regions we need at least
+ * an "o" in the predecessor set to ensure device writes are visible before the
+ * task is marked as available for scheduling on a new hart.  While I don't see
+ * any concrete reason we need a full IO fence, it seems safer to just upgrade
+ * this in order to avoid any IO crossing a scheduling boundary.  In both
+ * instances the scheduler pairs this with an mb(), so nothing is necessary on
+ * the new hart.
  */
-#define smp_mb__after_spinlock()	RISCV_FENCE(rw,rw)
+#define smp_mb__after_spinlock()	RISCV_FENCE(iorw,iorw)
 
 #include <asm-generic/barrier.h>
 
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/cmpxchg.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/cmpxchg.h
@@ -179,7 +179,7 @@
 			"	bnez %1, 0b\n"				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
@@ -224,7 +224,7 @@
 			RISCV_ACQUIRE_BARRIER				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
@@ -270,7 +270,7 @@
 			"	bnez %1, 0b\n"				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
@@ -316,7 +316,7 @@
 			"	fence rw, rw\n"				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/ftrace.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/ftrace.h
@@ -63,4 +63,11 @@
  * Let auipc+jalr be the basic *mcount unit*, so we make it 8 bytes here.
  */
 #define MCOUNT_INSN_SIZE 8
+
+#ifndef __ASSEMBLY__
+struct dyn_ftrace;
+int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
+#define ftrace_init_nop ftrace_init_nop
+#endif
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/page.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/page.h
@@ -119,7 +119,10 @@
 
 #endif /* __ASSEMBLY__ */
 
-#define virt_addr_valid(vaddr)	(pfn_valid(virt_to_pfn(vaddr)))
+#define virt_addr_valid(vaddr)	({						\
+	unsigned long _addr = (unsigned long)vaddr;				\
+	(unsigned long)(_addr) >= PAGE_OFFSET && pfn_valid(virt_to_pfn(_addr));	\
+})
 
 #define VM_DATA_DEFAULT_FLAGS	(VM_READ | VM_WRITE | \
 				 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/pgtable-32.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/pgtable-32.h
@@ -14,4 +14,6 @@
 #define PGDIR_SIZE      (_AC(1, UL) << PGDIR_SHIFT)
 #define PGDIR_MASK      (~(PGDIR_SIZE - 1))
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 34
+
 #endif /* _ASM_RISCV_PGTABLE_32_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/seccomp.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/seccomp.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef _ASM_SECCOMP_H
+#define _ASM_SECCOMP_H
+
+#include <asm/unistd.h>
+
+#include <asm-generic/seccomp.h>
+
+#endif /* _ASM_SECCOMP_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/asm/thread_info.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/asm/thread_info.h
@@ -12,7 +12,11 @@
 #include <linux/const.h>
 
 /* thread information allocation */
+#ifdef CONFIG_64BIT
+#define THREAD_SIZE_ORDER	(2)
+#else
 #define THREAD_SIZE_ORDER	(1)
+#endif
 #define THREAD_SIZE		(PAGE_SIZE << THREAD_SIZE_ORDER)
 
 #ifndef __ASSEMBLY__
@@ -75,6 +79,7 @@
 #define TIF_MEMDIE		5	/* is terminating due to OOM killer */
 #define TIF_SYSCALL_TRACEPOINT  6       /* syscall tracepoint instrumentation */
 #define TIF_SYSCALL_AUDIT	7	/* syscall auditing */
+#define TIF_SECCOMP		8	/* syscall secure computing */
 
 #define _TIF_SYSCALL_TRACE	(1 << TIF_SYSCALL_TRACE)
 #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME)
@@ -82,11 +87,13 @@
 #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
 #define _TIF_SYSCALL_TRACEPOINT	(1 << TIF_SYSCALL_TRACEPOINT)
 #define _TIF_SYSCALL_AUDIT	(1 << TIF_SYSCALL_AUDIT)
+#define _TIF_SECCOMP		(1 << TIF_SECCOMP)
 
 #define _TIF_WORK_MASK \
 	(_TIF_NOTIFY_RESUME | _TIF_SIGPENDING | _TIF_NEED_RESCHED)
 
 #define _TIF_SYSCALL_WORK \
-	(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
+	(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT | \
+	 _TIF_SECCOMP)
 
 #endif /* _ASM_RISCV_THREAD_INFO_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/include/uapi/asm/auxvec.h
+++ linux-gkeop-5.4-5.4.0/arch/riscv/include/uapi/asm/auxvec.h
@@ -10,4 +10,7 @@
 /* vDSO location */
 #define AT_SYSINFO_EHDR 33
 
+/* entries in ARCH_DLINFO */
+#define AT_VECTOR_SIZE_ARCH	1
+
 #endif /* _UAPI_ASM_RISCV_AUXVEC_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/entry.S
@@ -226,8 +226,26 @@
 	/* Check to make sure we don't jump to a bogus syscall number. */
 	li t0, __NR_syscalls
 	la s0, sys_ni_syscall
-	/* Syscall number held in a7 */
-	bgeu a7, t0, 1f
+	/*
+	 * The tracer can change syscall number to valid/invalid value.
+	 * We use syscall_set_nr helper in syscall_trace_enter thus we
+	 * cannot trust the current value in a7 and have to reload from
+	 * the current task pt_regs.
+	 */
+	REG_L a7, PT_A7(sp)
+	/*
+	 * Syscall number held in a7.
+	 * If syscall number is above allowed value, redirect to ni_syscall.
+	 */
+	bge a7, t0, 1f
+	/*
+	 * Check if syscall is rejected by tracer or seccomp, i.e., a7 == -1.
+	 * If yes, we pretend it was executed.
+	 */
+	li t1, -1
+	beq a7, t1, ret_from_syscall_rejected
+	blt a7, t1, 1f
+	/* Call syscall */
 	la s0, sys_call_table
 	slli t0, a7, RISCV_LGPTR
 	add s0, s0, t0
@@ -238,6 +256,12 @@
 ret_from_syscall:
 	/* Set user a0 to kernel a0 */
 	REG_S a0, PT_A0(sp)
+	/*
+	 * We didn't execute the actual syscall.
+	 * Seccomp already set return value for the current task pt_regs.
+	 * (If it was configured with SECCOMP_RET_ERRNO/TRACE)
+	 */
+ret_from_syscall_rejected:
 	/* Trace syscalls, but only if requested by the user. */
 	REG_L t0, TASK_TI_FLAGS(tp)
 	andi t0, t0, _TIF_SYSCALL_WORK
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/ftrace.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/ftrace.c
@@ -88,6 +88,25 @@
 	return __ftrace_modify_call(rec->ip, addr, false);
 }
 
+
+/*
+ * This is called early on, and isn't wrapped by
+ * ftrace_arch_code_modify_{prepare,post_process}() and therefor doesn't hold
+ * text_mutex, which triggers a lockdep failure.  SMP isn't running so we could
+ * just directly poke the text, but it's simpler to just take the lock
+ * ourselves.
+ */
+int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
+{
+	int out;
+
+	ftrace_arch_code_modify_prepare();
+	out = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
+	ftrace_arch_code_modify_post_process();
+
+	return out;
+}
+
 int ftrace_update_ftrace_func(ftrace_func_t func)
 {
 	int ret = __ftrace_modify_call((unsigned long)&ftrace_call,
@@ -142,7 +161,7 @@
 	 */
 	old = *parent;
 
-	if (function_graph_enter(old, self_addr, frame_pointer, parent))
+	if (!function_graph_enter(old, self_addr, frame_pointer, parent))
 		*parent = return_hooker;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/head.S
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/head.S
@@ -26,6 +26,10 @@
 	/* reserved */
 	.word 0
 	.balign 8
+#ifdef CONFIG_RISCV_M_MODE
+	/* Image load offset (0MB) from start of RAM for M-mode */
+	.dword 0
+#else
 #if __riscv_xlen == 64
 	/* Image load offset(2MB) from start of RAM */
 	.dword 0x200000
@@ -33,6 +37,7 @@
 	/* Image load offset(4MB) from start of RAM */
 	.dword 0x400000
 #endif
+#endif
 	/* Effective size of kernel image */
 	.dword _end - _start
 	.dword __HEAD_FLAGS
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/module.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/module.c
@@ -8,6 +8,10 @@
 #include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/moduleloader.h>
+#include <linux/vmalloc.h>
+#include <linux/sizes.h>
+#include <asm/pgtable.h>
+#include <asm/sections.h>
 
 static int apply_r_riscv_32_rela(struct module *me, u32 *location, Elf_Addr v)
 {
@@ -386,3 +390,15 @@
 
 	return 0;
 }
+
+#if defined(CONFIG_MMU) && defined(CONFIG_64BIT)
+#define VMALLOC_MODULE_START \
+	 max(PFN_ALIGN((unsigned long)&_end - SZ_2G), VMALLOC_START)
+void *module_alloc(unsigned long size)
+{
+	return __vmalloc_node_range(size, 1, VMALLOC_MODULE_START,
+				    VMALLOC_END, GFP_KERNEL,
+				    PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
+				    __builtin_return_address(0));
+}
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/process.c
@@ -99,8 +99,8 @@
 	return 0;
 }
 
-int copy_thread(unsigned long clone_flags, unsigned long usp,
-	unsigned long arg, struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long usp,
+	unsigned long arg, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *childregs = task_pt_regs(p);
 
@@ -120,7 +120,7 @@
 		if (usp) /* User fork */
 			childregs->sp = usp;
 		if (clone_flags & CLONE_SETTLS)
-			childregs->tp = childregs->a5;
+			childregs->tp = tls;
 		childregs->a0 = 0; /* Return value of fork() */
 		p->thread.ra = (unsigned long)ret_from_fork;
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/ptrace.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/ptrace.c
@@ -154,6 +154,16 @@
 		if (tracehook_report_syscall_entry(regs))
 			syscall_set_nr(current, regs, -1);
 
+	/*
+	 * Do the secure computing after ptrace; failures should be fast.
+	 * If this fails we might have return value in a0 from seccomp
+	 * (via SECCOMP_RET_ERRNO/TRACE).
+	 */
+	if (secure_computing(NULL) == -1) {
+		syscall_set_nr(current, regs, -1);
+		return;
+	}
+
 #ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
 	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
 		trace_sys_enter(regs, syscall_get_nr(current, regs));
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/stacktrace.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/stacktrace.c
@@ -63,7 +63,7 @@
 
 #else /* !CONFIG_FRAME_POINTER */
 
-static void notrace walk_stackframe(struct task_struct *task,
+void notrace walk_stackframe(struct task_struct *task,
 	struct pt_regs *regs, bool (*fn)(unsigned long, void *), void *arg)
 {
 	unsigned long sp, pc;
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/sys_riscv.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/sys_riscv.c
@@ -8,6 +8,7 @@
 #include <linux/syscalls.h>
 #include <asm/unistd.h>
 #include <asm/cacheflush.h>
+#include <asm-generic/mman-common.h>
 
 static long riscv_sys_mmap(unsigned long addr, unsigned long len,
 			   unsigned long prot, unsigned long flags,
@@ -16,6 +17,11 @@
 {
 	if (unlikely(offset & (~PAGE_MASK >> page_shift_offset)))
 		return -EINVAL;
+
+	if ((prot & PROT_WRITE) && (prot & PROT_EXEC))
+		if (unlikely(!(prot & PROT_READ)))
+			return -EINVAL;
+
 	return ksys_mmap_pgoff(addr, len, prot, flags, fd,
 			       offset >> (PAGE_SHIFT - page_shift_offset));
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/time.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/time.c
@@ -4,6 +4,7 @@
  * Copyright (C) 2017 SiFive
  */
 
+#include <linux/of_clk.h>
 #include <linux/clocksource.h>
 #include <linux/delay.h>
 #include <asm/sbi.h>
@@ -24,5 +25,7 @@
 	riscv_timebase = prop;
 
 	lpj_fine = riscv_timebase / HZ;
+
+	of_clk_init(NULL);
 	timer_probe();
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/kernel/vdso/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/riscv/kernel/vdso/Makefile
@@ -33,15 +33,15 @@
 	$(call if_changed,vdsold)
 
 # We also create a special relocatable object that should mirror the symbol
-# table and layout of the linked DSO.  With ld -R we can then refer to
-# these symbols in the kernel code rather than hand-coded addresses.
+# table and layout of the linked DSO. With ld --just-symbols we can then
+# refer to these symbols in the kernel code rather than hand-coded addresses.
 
 SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
 	-Wl,--build-id -Wl,--hash-style=both
 $(obj)/vdso-dummy.o: $(src)/vdso.lds $(obj)/rt_sigreturn.o FORCE
 	$(call if_changed,vdsold)
 
-LDFLAGS_vdso-syms.o := -r -R
+LDFLAGS_vdso-syms.o := -r --just-symbols
 $(obj)/vdso-syms.o: $(obj)/vdso-dummy.o FORCE
 	$(call if_changed,ld)
 
@@ -58,7 +58,8 @@
       cmd_vdsold = $(CC) $(KBUILD_CFLAGS) $(call cc-option, -no-pie) -nostdlib -nostartfiles $(SYSCFLAGS_$(@F)) \
                            -Wl,-T,$(filter-out FORCE,$^) -o $@.tmp && \
                    $(CROSS_COMPILE)objcopy \
-                           $(patsubst %, -G __vdso_%, $(vdso-syms)) $@.tmp $@
+                           $(patsubst %, -G __vdso_%, $(vdso-syms)) $@.tmp $@ && \
+                   rm $@.tmp
 
 # install commands for the unstripped file
 quiet_cmd_vdso_install = INSTALL $@
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/mm/cacheflush.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/mm/cacheflush.c
@@ -14,6 +14,7 @@
 {
 	sbi_remote_fence_i(NULL);
 }
+EXPORT_SYMBOL(flush_icache_all);
 
 /*
  * Performs an icache flush for the given MM context.  RISC-V has no direct
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/mm/init.c
@@ -98,7 +98,7 @@
 	for_each_memblock(memory, reg) {
 		phys_addr_t end = reg->base + reg->size;
 
-		if (reg->base <= vmlinux_end && vmlinux_end <= end) {
+		if (reg->base <= vmlinux_start && vmlinux_end <= end) {
 			mem_size = min(reg->size, (phys_addr_t)-PAGE_OFFSET);
 
 			/*
@@ -115,8 +115,9 @@
 	/* Reserve from the start of the kernel to the end of the kernel */
 	memblock_reserve(vmlinux_start, vmlinux_end - vmlinux_start);
 
-	set_max_mapnr(PFN_DOWN(mem_size));
-	max_low_pfn = PFN_DOWN(memblock_end_of_DRAM());
+	max_pfn = PFN_DOWN(memblock_end_of_DRAM());
+	max_low_pfn = max_pfn;
+	set_max_mapnr(max_low_pfn);
 
 #ifdef CONFIG_BLK_DEV_INITRD
 	setup_initrd();
@@ -166,12 +167,11 @@
 
 	ptep = &fixmap_pte[pte_index(addr)];
 
-	if (pgprot_val(prot)) {
+	if (pgprot_val(prot))
 		set_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, prot));
-	} else {
+	else
 		pte_clear(&init_mm, addr, ptep);
-		local_flush_tlb_page(addr);
-	}
+	local_flush_tlb_page(addr);
 }
 
 static pte_t *__init get_pte_virt(phys_addr_t pa)
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/mm/tlbflush.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/mm/tlbflush.c
@@ -2,6 +2,7 @@
 
 #include <linux/mm.h>
 #include <linux/smp.h>
+#include <linux/sched.h>
 #include <asm/sbi.h>
 
 void flush_tlb_all(void)
@@ -9,13 +10,33 @@
 	sbi_remote_sfence_vma(NULL, 0, -1);
 }
 
+/*
+ * This function must not be called with cmask being null.
+ * Kernel may panic if cmask is NULL.
+ */
 static void __sbi_tlb_flush_range(struct cpumask *cmask, unsigned long start,
 				  unsigned long size)
 {
 	struct cpumask hmask;
+	unsigned int cpuid;
 
-	riscv_cpuid_to_hartid_mask(cmask, &hmask);
-	sbi_remote_sfence_vma(hmask.bits, start, size);
+	if (cpumask_empty(cmask))
+		return;
+
+	cpuid = get_cpu();
+
+	if (cpumask_any_but(cmask, cpuid) >= nr_cpu_ids) {
+		/* local cpu is the only cpu present in cpumask */
+		if (size <= PAGE_SIZE)
+			local_flush_tlb_page(start);
+		else
+			local_flush_tlb_all();
+	} else {
+		riscv_cpuid_to_hartid_mask(cmask, &hmask);
+		sbi_remote_sfence_vma(cpumask_bits(&hmask), start, size);
+	}
+
+	put_cpu();
 }
 
 void flush_tlb_mm(struct mm_struct *mm)
--- linux-gkeop-5.4-5.4.0.orig/arch/riscv/net/bpf_jit_comp.c
+++ linux-gkeop-5.4-5.4.0/arch/riscv/net/bpf_jit_comp.c
@@ -120,6 +120,11 @@
 	return false;
 }
 
+static void mark_fp(struct rv_jit_context *ctx)
+{
+	__set_bit(RV_CTX_F_SEEN_S5, &ctx->flags);
+}
+
 static void mark_call(struct rv_jit_context *ctx)
 {
 	__set_bit(RV_CTX_F_SEEN_CALL, &ctx->flags);
@@ -596,7 +601,8 @@
 
 	emit(rv_addi(RV_REG_SP, RV_REG_SP, stack_adjust), ctx);
 	/* Set return value. */
-	emit(rv_addi(RV_REG_A0, RV_REG_A5, 0), ctx);
+	if (reg == RV_REG_RA)
+		emit(rv_addi(RV_REG_A0, RV_REG_A5, 0), ctx);
 	emit(rv_jalr(RV_REG_ZERO, reg, 0), ctx);
 }
 
@@ -631,14 +637,14 @@
 		return -1;
 	emit(rv_bgeu(RV_REG_A2, RV_REG_T1, off >> 1), ctx);
 
-	/* if (--TCC < 0)
+	/* if (TCC-- < 0)
 	 *     goto out;
 	 */
 	emit(rv_addi(RV_REG_T1, tcc, -1), ctx);
 	off = (tc_ninsn - (ctx->ninsns - start_insn)) << 2;
 	if (is_13b_check(off, insn))
 		return -1;
-	emit(rv_blt(RV_REG_T1, RV_REG_ZERO, off >> 1), ctx);
+	emit(rv_blt(tcc, RV_REG_ZERO, off >> 1), ctx);
 
 	/* prog = array->ptrs[index];
 	 * if (!prog)
@@ -1426,6 +1432,10 @@
 {
 	int stack_adjust = 0, store_offset, bpf_stack_adjust;
 
+	bpf_stack_adjust = round_up(ctx->prog->aux->stack_depth, 16);
+	if (bpf_stack_adjust)
+		mark_fp(ctx);
+
 	if (seen_reg(RV_REG_RA, ctx))
 		stack_adjust += 8;
 	stack_adjust += 8; /* RV_REG_FP */
@@ -1443,7 +1453,6 @@
 		stack_adjust += 8;
 
 	stack_adjust = round_up(stack_adjust, 16);
-	bpf_stack_adjust = round_up(ctx->prog->aux->stack_depth, 16);
 	stack_adjust += bpf_stack_adjust;
 
 	store_offset = stack_adjust - 8;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/s390/Kconfig
@@ -155,6 +155,7 @@
 	select HAVE_KERNEL_UNCOMPRESSED
 	select HAVE_KERNEL_XZ
 	select HAVE_KPROBES
+	select HAVE_KPROBES_ON_FTRACE
 	select HAVE_KRETPROBES
 	select HAVE_KVM
 	select HAVE_LIVEPATCH
@@ -1006,3 +1007,11 @@
 	  the KVM hypervisor.
 
 endmenu
+
+config KMSG_IDS
+	def_bool y
+	prompt "Kernel message numbers"
+	help
+	  Select this option if you want to include a message number to the
+	  prefix for kernel messages issued by the s390 architecture and
+	  driver code. See "Documentation/s390/kmsg.txt" for more details.
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/Makefile
@@ -69,7 +69,7 @@
 #
 cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls
 
-ifeq ($(call cc-option-yn,-mpacked-stack),y)
+ifeq ($(call cc-option-yn,-mpacked-stack -mbackchain -msoft-float),y)
 cflags-$(CONFIG_PACK_STACK)  += -mpacked-stack -D__PACK_STACK
 aflags-$(CONFIG_PACK_STACK)  += -D__PACK_STACK
 endif
@@ -146,7 +146,7 @@
 #KBUILD_IMAGE is necessary for packaging targets like rpm-pkg, deb-pkg...
 KBUILD_IMAGE	:= $(boot)/bzImage
 
-install: vmlinux
+install:
 	$(Q)$(MAKE) $(build)=$(boot) $@
 
 bzImage: vmlinux
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/Makefile
@@ -37,7 +37,7 @@
 obj-y	:= head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o
 obj-y	+= string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o
 obj-y	+= version.o pgm_check_info.o ctype.o text_dma.o
-obj-$(CONFIG_PROTECTED_VIRTUALIZATION_GUEST)	+= uv.o
+obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE))	+= uv.o
 obj-$(CONFIG_RELOCATABLE)	+= machine_kexec_reloc.o
 obj-$(CONFIG_RANDOMIZE_BASE)	+= kaslr.o
 targets	:= bzImage startup.a section_cmp.boot.data section_cmp.boot.preserved.data $(obj-y)
@@ -70,7 +70,7 @@
 $(obj)/startup.a: $(OBJECTS) FORCE
 	$(call if_changed,ar)
 
-install: $(CONFIGURE) $(obj)/bzImage
+install:
 	sh -x  $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
 	      System.map "$(INSTALL_PATH)"
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/compressed/decompressor.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/compressed/decompressor.c
@@ -30,13 +30,13 @@
 extern unsigned char _compressed_end[];
 
 #ifdef CONFIG_HAVE_KERNEL_BZIP2
-#define HEAP_SIZE	0x400000
+#define BOOT_HEAP_SIZE	0x400000
 #else
-#define HEAP_SIZE	0x10000
+#define BOOT_HEAP_SIZE	0x10000
 #endif
 
 static unsigned long free_mem_ptr = (unsigned long) _end;
-static unsigned long free_mem_end_ptr = (unsigned long) _end + HEAP_SIZE;
+static unsigned long free_mem_end_ptr = (unsigned long) _end + BOOT_HEAP_SIZE;
 
 #ifdef CONFIG_KERNEL_GZIP
 #include "../../../../lib/decompress_inflate.c"
@@ -62,7 +62,7 @@
 #include "../../../../lib/decompress_unxz.c"
 #endif
 
-#define decompress_offset ALIGN((unsigned long)_end + HEAP_SIZE, PAGE_SIZE)
+#define decompress_offset ALIGN((unsigned long)_end + BOOT_HEAP_SIZE, PAGE_SIZE)
 
 unsigned long mem_safe_offset(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/head.S
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/head.S
@@ -360,22 +360,23 @@
 # the save area and does disabled wait with a faulty address.
 #
 ENTRY(startup_pgm_check_handler)
-	stmg	%r0,%r15,__LC_SAVE_AREA_SYNC
-	la	%r1,4095
-	stctg	%c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r1)
-	mvc	__LC_GPREGS_SAVE_AREA-4095(128,%r1),__LC_SAVE_AREA_SYNC
-	mvc	__LC_PSW_SAVE_AREA-4095(16,%r1),__LC_PGM_OLD_PSW
+	stmg	%r8,%r15,__LC_SAVE_AREA_SYNC
+	la	%r8,4095
+	stctg	%c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r8)
+	stmg	%r0,%r7,__LC_GPREGS_SAVE_AREA-4095(%r8)
+	mvc	__LC_GPREGS_SAVE_AREA-4095+64(64,%r8),__LC_SAVE_AREA_SYNC
+	mvc	__LC_PSW_SAVE_AREA-4095(16,%r8),__LC_PGM_OLD_PSW
 	mvc	__LC_RETURN_PSW(16),__LC_PGM_OLD_PSW
 	ni	__LC_RETURN_PSW,0xfc	# remove IO and EX bits
 	ni	__LC_RETURN_PSW+1,0xfb	# remove MCHK bit
 	oi	__LC_RETURN_PSW+1,0x2	# set wait state bit
-	larl	%r2,.Lold_psw_disabled_wait
-	stg	%r2,__LC_PGM_NEW_PSW+8
-	l	%r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r2)
+	larl	%r9,.Lold_psw_disabled_wait
+	stg	%r9,__LC_PGM_NEW_PSW+8
+	l	%r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r9)
 	brasl	%r14,print_pgm_check_info
 .Lold_psw_disabled_wait:
-	la	%r1,4095
-	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
+	la	%r8,4095
+	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r8)
 	lpswe	__LC_RETURN_PSW		# disabled wait
 .Ldump_info_stack:
 	.long	0x5000 + PAGE_SIZE - STACK_FRAME_OVERHEAD
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/ipl_parm.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/ipl_parm.c
@@ -14,6 +14,7 @@
 char __bootdata(early_command_line)[COMMAND_LINE_SIZE];
 struct ipl_parameter_block __bootdata_preserved(ipl_block);
 int __bootdata_preserved(ipl_block_valid);
+unsigned int __bootdata_preserved(zlib_dfltcc_support) = ZLIB_DFLTCC_FULL;
 
 unsigned long __bootdata(vmalloc_size) = VMALLOC_DEFAULT_SIZE;
 unsigned long __bootdata(memory_end);
@@ -69,30 +70,44 @@
 static size_t ipl_block_get_ascii_scpdata(char *dest, size_t size,
 					  const struct ipl_parameter_block *ipb)
 {
-	size_t count;
-	size_t i;
+	const __u8 *scp_data;
+	__u32 scp_data_len;
 	int has_lowercase;
+	size_t count = 0;
+	size_t i;
+
+	switch (ipb->pb0_hdr.pbt) {
+	case IPL_PBT_FCP:
+		scp_data_len = ipb->fcp.scp_data_len;
+		scp_data = ipb->fcp.scp_data;
+		break;
+	case IPL_PBT_NVME:
+		scp_data_len = ipb->nvme.scp_data_len;
+		scp_data = ipb->nvme.scp_data;
+		break;
+	default:
+		goto out;
+	}
 
-	count = min(size - 1, scpdata_length(ipb->fcp.scp_data,
-					     ipb->fcp.scp_data_len));
+	count = min(size - 1, scpdata_length(scp_data, scp_data_len));
 	if (!count)
 		goto out;
 
 	has_lowercase = 0;
 	for (i = 0; i < count; i++) {
-		if (!isascii(ipb->fcp.scp_data[i])) {
+		if (!isascii(scp_data[i])) {
 			count = 0;
 			goto out;
 		}
-		if (!has_lowercase && islower(ipb->fcp.scp_data[i]))
+		if (!has_lowercase && islower(scp_data[i]))
 			has_lowercase = 1;
 	}
 
 	if (has_lowercase)
-		memcpy(dest, ipb->fcp.scp_data, count);
+		memcpy(dest, scp_data, count);
 	else
 		for (i = 0; i < count; i++)
-			dest[i] = tolower(ipb->fcp.scp_data[i]);
+			dest[i] = tolower(scp_data[i]);
 out:
 	dest[count] = '\0';
 	return count;
@@ -114,6 +129,7 @@
 			parm, COMMAND_LINE_SIZE - len - 1, &ipl_block);
 		break;
 	case IPL_PBT_FCP:
+	case IPL_PBT_NVME:
 		rc = ipl_block_get_ascii_scpdata(
 			parm, COMMAND_LINE_SIZE - len - 1, &ipl_block);
 		break;
@@ -229,6 +245,19 @@
 		if (!strcmp(param, "vmalloc") && val)
 			vmalloc_size = round_up(memparse(val, NULL), PAGE_SIZE);
 
+		if (!strcmp(param, "dfltcc")) {
+			if (!strcmp(val, "off"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_DISABLED;
+			else if (!strcmp(val, "on"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_FULL;
+			else if (!strcmp(val, "def_only"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_DEFLATE_ONLY;
+			else if (!strcmp(val, "inf_only"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_INFLATE_ONLY;
+			else if (!strcmp(val, "always"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_FULL_DEBUG;
+		}
+
 		if (!strcmp(param, "noexec")) {
 			rc = kstrtobool(val, &enabled);
 			if (!rc && !enabled)
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/kaslr.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/kaslr.c
@@ -75,7 +75,7 @@
 		*(unsigned long *) prng.parm_block ^= seed;
 		for (i = 0; i < 16; i++) {
 			cpacf_kmc(CPACF_KMC_PRNG, prng.parm_block,
-				  (char *) entropy, (char *) entropy,
+				  (u8 *) entropy, (u8 *) entropy,
 				  sizeof(entropy));
 			memcpy(prng.parm_block, entropy, sizeof(entropy));
 		}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/startup.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/startup.c
@@ -170,6 +170,11 @@
 		handle_relocs(__kaslr_offset);
 
 	if (__kaslr_offset) {
+		/*
+		 * Save KASLR offset for early dumps, before vmcore_info is set.
+		 * Mark as uneven to distinguish from real vmcore_info pointer.
+		 */
+		S390_lowcore.vmcore_info = __kaslr_offset | 0x1UL;
 		/* Clear non-relocated kernel */
 		if (IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED))
 			memset(img, 0, vmlinux.image_size);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/boot/uv.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/boot/uv.c
@@ -3,7 +3,13 @@
 #include <asm/facility.h>
 #include <asm/sections.h>
 
+/* will be used in arch/s390/kernel/uv.c */
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
 int __bootdata_preserved(prot_virt_guest);
+#endif
+#if IS_ENABLED(CONFIG_KVM)
+struct uv_info __bootdata_preserved(uv_info);
+#endif
 
 void uv_query_info(void)
 {
@@ -15,10 +21,25 @@
 	if (!test_facility(158))
 		return;
 
-	if (uv_call(0, (uint64_t)&uvcb))
+	/* rc==0x100 means that there is additional data we do not process */
+	if (uv_call(0, (uint64_t)&uvcb) && uvcb.header.rc != 0x100)
 		return;
 
+	if (IS_ENABLED(CONFIG_KVM)) {
+		memcpy(uv_info.inst_calls_list, uvcb.inst_calls_list, sizeof(uv_info.inst_calls_list));
+		uv_info.uv_base_stor_len = uvcb.uv_base_stor_len;
+		uv_info.guest_base_stor_len = uvcb.conf_base_phys_stor_len;
+		uv_info.guest_virt_base_stor_len = uvcb.conf_base_virt_stor_len;
+		uv_info.guest_virt_var_stor_len = uvcb.conf_virt_var_stor_len;
+		uv_info.guest_cpu_stor_len = uvcb.cpu_stor_len;
+		uv_info.max_sec_stor_addr = ALIGN(uvcb.max_guest_stor_addr, PAGE_SIZE);
+		uv_info.max_num_sec_conf = uvcb.max_num_sec_conf;
+		uv_info.max_guest_cpus = uvcb.max_guest_cpus;
+	}
+
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
 	if (test_bit_inv(BIT_UVC_CMD_SET_SHARED_ACCESS, (unsigned long *)uvcb.inst_calls_list) &&
 	    test_bit_inv(BIT_UVC_CMD_REMOVE_SHARED_ACCESS, (unsigned long *)uvcb.inst_calls_list))
 		prot_virt_guest = 1;
+#endif
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/crypto/paes_s390.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/crypto/paes_s390.c
@@ -5,7 +5,7 @@
  * s390 implementation of the AES Cipher Algorithm with protected keys.
  *
  * s390 Version:
- *   Copyright IBM Corp. 2017,2019
+ *   Copyright IBM Corp. 2017,2020
  *   Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  *		Harald Freudenberger <freude@de.ibm.com>
  */
@@ -20,6 +20,7 @@
 #include <linux/module.h>
 #include <linux/cpufeature.h>
 #include <linux/init.h>
+#include <linux/mutex.h>
 #include <linux/spinlock.h>
 #include <crypto/xts.h>
 #include <asm/cpacf.h>
@@ -31,11 +32,11 @@
  * is called. As paes can handle different kinds of key blobs
  * and padding is also possible, the limits need to be generous.
  */
-#define PAES_MIN_KEYSIZE 64
-#define PAES_MAX_KEYSIZE 256
+#define PAES_MIN_KEYSIZE 16
+#define PAES_MAX_KEYSIZE 320
 
 static u8 *ctrblk;
-static DEFINE_SPINLOCK(ctrblk_lock);
+static DEFINE_MUTEX(ctrblk_lock);
 
 static cpacf_mask_t km_functions, kmc_functions, kmctr_functions;
 
@@ -52,19 +53,46 @@
 	unsigned int keylen;
 };
 
-static inline int _copy_key_to_kb(struct key_blob *kb,
-				  const u8 *key,
-				  unsigned int keylen)
-{
-	if (keylen <= sizeof(kb->keybuf))
+static inline int _key_to_kb(struct key_blob *kb,
+			     const u8 *key,
+			     unsigned int keylen)
+{
+	struct clearkey_header {
+		u8  type;
+		u8  res0[3];
+		u8  version;
+		u8  res1[3];
+		u32 keytype;
+		u32 len;
+	} __packed * h;
+
+	switch (keylen) {
+	case 16:
+	case 24:
+	case 32:
+		/* clear key value, prepare pkey clear key token in keybuf */
+		memset(kb->keybuf, 0, sizeof(kb->keybuf));
+		h = (struct clearkey_header *) kb->keybuf;
+		h->version = 0x02; /* TOKVER_CLEAR_KEY */
+		h->keytype = (keylen - 8) >> 3;
+		h->len = keylen;
+		memcpy(kb->keybuf + sizeof(*h), key, keylen);
+		kb->keylen = sizeof(*h) + keylen;
 		kb->key = kb->keybuf;
-	else {
-		kb->key = kmalloc(keylen, GFP_KERNEL);
-		if (!kb->key)
-			return -ENOMEM;
+		break;
+	default:
+		/* other key material, let pkey handle this */
+		if (keylen <= sizeof(kb->keybuf))
+			kb->key = kb->keybuf;
+		else {
+			kb->key = kmalloc(keylen, GFP_KERNEL);
+			if (!kb->key)
+				return -ENOMEM;
+		}
+		memcpy(kb->key, key, keylen);
+		kb->keylen = keylen;
+		break;
 	}
-	memcpy(kb->key, key, keylen);
-	kb->keylen = keylen;
 
 	return 0;
 }
@@ -81,16 +109,18 @@
 struct s390_paes_ctx {
 	struct key_blob kb;
 	struct pkey_protkey pk;
+	spinlock_t pk_lock;
 	unsigned long fc;
 };
 
 struct s390_pxts_ctx {
 	struct key_blob kb[2];
 	struct pkey_protkey pk[2];
+	spinlock_t pk_lock;
 	unsigned long fc;
 };
 
-static inline int __paes_convert_key(struct key_blob *kb,
+static inline int __paes_keyblob2pkey(struct key_blob *kb,
 				     struct pkey_protkey *pk)
 {
 	int i, ret;
@@ -105,22 +135,18 @@
 	return ret;
 }
 
-static int __paes_set_key(struct s390_paes_ctx *ctx)
+static inline int __paes_convert_key(struct s390_paes_ctx *ctx)
 {
-	unsigned long fc;
+	struct pkey_protkey pkey;
 
-	if (__paes_convert_key(&ctx->kb, &ctx->pk))
+	if (__paes_keyblob2pkey(&ctx->kb, &pkey))
 		return -EINVAL;
 
-	/* Pick the correct function code based on the protected key type */
-	fc = (ctx->pk.type == PKEY_KEYTYPE_AES_128) ? CPACF_KM_PAES_128 :
-		(ctx->pk.type == PKEY_KEYTYPE_AES_192) ? CPACF_KM_PAES_192 :
-		(ctx->pk.type == PKEY_KEYTYPE_AES_256) ? CPACF_KM_PAES_256 : 0;
-
-	/* Check if the function code is available */
-	ctx->fc = (fc && cpacf_test_func(&km_functions, fc)) ? fc : 0;
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(&ctx->pk, &pkey, sizeof(pkey));
+	spin_unlock_bh(&ctx->pk_lock);
 
-	return ctx->fc ? 0 : -EINVAL;
+	return 0;
 }
 
 static int ecb_paes_init(struct crypto_tfm *tfm)
@@ -128,6 +154,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	ctx->kb.key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -139,6 +166,24 @@
 	_free_kb_keybuf(&ctx->kb);
 }
 
+static inline int __ecb_paes_set_key(struct s390_paes_ctx *ctx)
+{
+	unsigned long fc;
+
+	if (__paes_convert_key(ctx))
+		return -EINVAL;
+
+	/* Pick the correct function code based on the protected key type */
+	fc = (ctx->pk.type == PKEY_KEYTYPE_AES_128) ? CPACF_KM_PAES_128 :
+		(ctx->pk.type == PKEY_KEYTYPE_AES_192) ? CPACF_KM_PAES_192 :
+		(ctx->pk.type == PKEY_KEYTYPE_AES_256) ? CPACF_KM_PAES_256 : 0;
+
+	/* Check if the function code is available */
+	ctx->fc = (fc && cpacf_test_func(&km_functions, fc)) ? fc : 0;
+
+	return ctx->fc ? 0 : -EINVAL;
+}
+
 static int ecb_paes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
 			    unsigned int key_len)
 {
@@ -146,13 +191,14 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	_free_kb_keybuf(&ctx->kb);
-	rc = _copy_key_to_kb(&ctx->kb, in_key, key_len);
+	rc = _key_to_kb(&ctx->kb, in_key, key_len);
 	if (rc)
 		return rc;
 
-	if (__paes_set_key(ctx)) {
+	if (__ecb_paes_set_key(ctx)) {
 		tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
 		return -EINVAL;
+
 	}
 	return 0;
 }
@@ -164,18 +210,31 @@
 	struct s390_paes_ctx *ctx = crypto_blkcipher_ctx(desc->tfm);
 	unsigned int nbytes, n, k;
 	int ret;
+	struct {
+		u8 key[MAXPROTKEYSIZE];
+	} param;
 
 	ret = blkcipher_walk_virt(desc, walk);
+	if (ret)
+		return ret;
+
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+	spin_unlock_bh(&ctx->pk_lock);
+
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
 		/* only use complete blocks */
 		n = nbytes & ~(AES_BLOCK_SIZE - 1);
-		k = cpacf_km(ctx->fc | modifier, ctx->pk.protkey,
+		k = cpacf_km(ctx->fc | modifier, &param,
 			     walk->dst.virt.addr, walk->src.virt.addr, n);
 		if (k)
 			ret = blkcipher_walk_done(desc, walk, nbytes - k);
 		if (k < n) {
-			if (__paes_set_key(ctx) != 0)
+			if (__paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
 	return ret;
@@ -229,6 +288,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	ctx->kb.key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -240,11 +300,11 @@
 	_free_kb_keybuf(&ctx->kb);
 }
 
-static int __cbc_paes_set_key(struct s390_paes_ctx *ctx)
+static inline int __cbc_paes_set_key(struct s390_paes_ctx *ctx)
 {
 	unsigned long fc;
 
-	if (__paes_convert_key(&ctx->kb, &ctx->pk))
+	if (__paes_convert_key(ctx))
 		return -EINVAL;
 
 	/* Pick the correct function code based on the protected key type */
@@ -265,7 +325,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	_free_kb_keybuf(&ctx->kb);
-	rc = _copy_key_to_kb(&ctx->kb, in_key, key_len);
+	rc = _key_to_kb(&ctx->kb, in_key, key_len);
 	if (rc)
 		return rc;
 
@@ -288,22 +348,31 @@
 	} param;
 
 	ret = blkcipher_walk_virt(desc, walk);
+	if (ret)
+		return ret;
+
 	memcpy(param.iv, walk->iv, AES_BLOCK_SIZE);
+	spin_lock_bh(&ctx->pk_lock);
 	memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+	spin_unlock_bh(&ctx->pk_lock);
+
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
 		/* only use complete blocks */
 		n = nbytes & ~(AES_BLOCK_SIZE - 1);
 		k = cpacf_kmc(ctx->fc | modifier, &param,
 			      walk->dst.virt.addr, walk->src.virt.addr, n);
-		if (k)
+		if (k) {
+			memcpy(walk->iv, param.iv, AES_BLOCK_SIZE);
 			ret = blkcipher_walk_done(desc, walk, nbytes - k);
+		}
 		if (k < n) {
-			if (__cbc_paes_set_key(ctx) != 0)
+			if (__paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
+			spin_lock_bh(&ctx->pk_lock);
 			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
-	memcpy(walk->iv, param.iv, AES_BLOCK_SIZE);
 	return ret;
 }
 
@@ -357,6 +426,7 @@
 
 	ctx->kb[0].key = NULL;
 	ctx->kb[1].key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -369,12 +439,27 @@
 	_free_kb_keybuf(&ctx->kb[1]);
 }
 
-static int __xts_paes_set_key(struct s390_pxts_ctx *ctx)
+static inline int __xts_paes_convert_key(struct s390_pxts_ctx *ctx)
+{
+	struct pkey_protkey pkey0, pkey1;
+
+	if (__paes_keyblob2pkey(&ctx->kb[0], &pkey0) ||
+	    __paes_keyblob2pkey(&ctx->kb[1], &pkey1))
+		return -EINVAL;
+
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(&ctx->pk[0], &pkey0, sizeof(pkey0));
+	memcpy(&ctx->pk[1], &pkey1, sizeof(pkey1));
+	spin_unlock_bh(&ctx->pk_lock);
+
+	return 0;
+}
+
+static inline int __xts_paes_set_key(struct s390_pxts_ctx *ctx)
 {
 	unsigned long fc;
 
-	if (__paes_convert_key(&ctx->kb[0], &ctx->pk[0]) ||
-	    __paes_convert_key(&ctx->kb[1], &ctx->pk[1]))
+	if (__xts_paes_convert_key(ctx))
 		return -EINVAL;
 
 	if (ctx->pk[0].type != ctx->pk[1].type)
@@ -406,10 +491,10 @@
 
 	_free_kb_keybuf(&ctx->kb[0]);
 	_free_kb_keybuf(&ctx->kb[1]);
-	rc = _copy_key_to_kb(&ctx->kb[0], in_key, key_len);
+	rc = _key_to_kb(&ctx->kb[0], in_key, key_len);
 	if (rc)
 		return rc;
-	rc = _copy_key_to_kb(&ctx->kb[1], in_key + key_len, key_len);
+	rc = _key_to_kb(&ctx->kb[1], in_key + key_len, key_len);
 	if (rc)
 		return rc;
 
@@ -449,15 +534,19 @@
 	} xts_param;
 
 	ret = blkcipher_walk_virt(desc, walk);
+	if (ret)
+		return ret;
+
 	keylen = (ctx->pk[0].type == PKEY_KEYTYPE_AES_128) ? 48 : 64;
 	offset = (ctx->pk[0].type == PKEY_KEYTYPE_AES_128) ? 16 : 0;
-retry:
+
 	memset(&pcc_param, 0, sizeof(pcc_param));
 	memcpy(pcc_param.tweak, walk->iv, sizeof(pcc_param.tweak));
+	spin_lock_bh(&ctx->pk_lock);
 	memcpy(pcc_param.key + offset, ctx->pk[1].protkey, keylen);
-	cpacf_pcc(ctx->fc, pcc_param.key + offset);
-
 	memcpy(xts_param.key + offset, ctx->pk[0].protkey, keylen);
+	spin_unlock_bh(&ctx->pk_lock);
+	cpacf_pcc(ctx->fc, pcc_param.key + offset);
 	memcpy(xts_param.init, pcc_param.xts, 16);
 
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
@@ -468,11 +557,15 @@
 		if (k)
 			ret = blkcipher_walk_done(desc, walk, nbytes - k);
 		if (k < n) {
-			if (__xts_paes_set_key(ctx) != 0)
+			if (__xts_paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
-			goto retry;
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(xts_param.key + offset,
+			       ctx->pk[0].protkey, keylen);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
+
 	return ret;
 }
 
@@ -525,6 +618,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	ctx->kb.key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -536,11 +630,11 @@
 	_free_kb_keybuf(&ctx->kb);
 }
 
-static int __ctr_paes_set_key(struct s390_paes_ctx *ctx)
+static inline int __ctr_paes_set_key(struct s390_paes_ctx *ctx)
 {
 	unsigned long fc;
 
-	if (__paes_convert_key(&ctx->kb, &ctx->pk))
+	if (__paes_convert_key(ctx))
 		return -EINVAL;
 
 	/* Pick the correct function code based on the protected key type */
@@ -562,7 +656,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	_free_kb_keybuf(&ctx->kb);
-	rc = _copy_key_to_kb(&ctx->kb, in_key, key_len);
+	rc = _key_to_kb(&ctx->kb, in_key, key_len);
 	if (rc)
 		return rc;
 
@@ -595,47 +689,62 @@
 	u8 buf[AES_BLOCK_SIZE], *ctrptr;
 	unsigned int nbytes, n, k;
 	int ret, locked;
-
-	locked = spin_trylock(&ctrblk_lock);
+	struct {
+		u8 key[MAXPROTKEYSIZE];
+	} param;
 
 	ret = blkcipher_walk_virt_block(desc, walk, AES_BLOCK_SIZE);
+	if (ret)
+		return ret;
+
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+	spin_unlock_bh(&ctx->pk_lock);
+
+	locked = mutex_trylock(&ctrblk_lock);
+
+
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
 		n = AES_BLOCK_SIZE;
 		if (nbytes >= 2*AES_BLOCK_SIZE && locked)
 			n = __ctrblk_init(ctrblk, walk->iv, nbytes);
 		ctrptr = (n > AES_BLOCK_SIZE) ? ctrblk : walk->iv;
-		k = cpacf_kmctr(ctx->fc | modifier, ctx->pk.protkey,
-				walk->dst.virt.addr, walk->src.virt.addr,
-				n, ctrptr);
+		k = cpacf_kmctr(ctx->fc | modifier, &param, walk->dst.virt.addr,
+				walk->src.virt.addr, n, ctrptr);
 		if (k) {
 			if (ctrptr == ctrblk)
 				memcpy(walk->iv, ctrptr + k - AES_BLOCK_SIZE,
 				       AES_BLOCK_SIZE);
 			crypto_inc(walk->iv, AES_BLOCK_SIZE);
-			ret = blkcipher_walk_done(desc, walk, nbytes - n);
+			ret = blkcipher_walk_done(desc, walk, nbytes - k);
 		}
 		if (k < n) {
-			if (__ctr_paes_set_key(ctx) != 0) {
+			if (__paes_convert_key(ctx)) {
 				if (locked)
-					spin_unlock(&ctrblk_lock);
+					mutex_unlock(&ctrblk_lock);
 				return blkcipher_walk_done(desc, walk, -EIO);
 			}
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
 	if (locked)
-		spin_unlock(&ctrblk_lock);
+		mutex_unlock(&ctrblk_lock);
 	/*
 	 * final block may be < AES_BLOCK_SIZE, copy only nbytes
 	 */
 	if (nbytes) {
 		while (1) {
-			if (cpacf_kmctr(ctx->fc | modifier,
-					ctx->pk.protkey, buf,
+			if (cpacf_kmctr(ctx->fc | modifier, &param, buf,
 					walk->src.virt.addr, AES_BLOCK_SIZE,
 					walk->iv) == AES_BLOCK_SIZE)
 				break;
-			if (__ctr_paes_set_key(ctx) != 0)
+			if (__paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 		memcpy(walk->dst.virt.addr, buf, nbytes);
 		crypto_inc(walk->iv, AES_BLOCK_SIZE);
@@ -697,12 +806,12 @@
 
 static void paes_s390_fini(void)
 {
-	if (ctrblk)
-		free_page((unsigned long) ctrblk);
 	__crypto_unregister_alg(&ctr_paes_alg);
 	__crypto_unregister_alg(&xts_paes_alg);
 	__crypto_unregister_alg(&cbc_paes_alg);
 	__crypto_unregister_alg(&ecb_paes_alg);
+	if (ctrblk)
+		free_page((unsigned long) ctrblk);
 }
 
 static int __init paes_s390_init(void)
@@ -740,14 +849,14 @@
 	if (cpacf_test_func(&kmctr_functions, CPACF_KMCTR_PAES_128) ||
 	    cpacf_test_func(&kmctr_functions, CPACF_KMCTR_PAES_192) ||
 	    cpacf_test_func(&kmctr_functions, CPACF_KMCTR_PAES_256)) {
-		ret = crypto_register_alg(&ctr_paes_alg);
-		if (ret)
-			goto out_err;
 		ctrblk = (u8 *) __get_free_page(GFP_KERNEL);
 		if (!ctrblk) {
 			ret = -ENOMEM;
 			goto out_err;
 		}
+		ret = crypto_register_alg(&ctr_paes_alg);
+		if (ret)
+			goto out_err;
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/crypto/sha_common.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/crypto/sha_common.c
@@ -74,14 +74,17 @@
 	struct s390_sha_ctx *ctx = shash_desc_ctx(desc);
 	unsigned int bsize = crypto_shash_blocksize(desc->tfm);
 	u64 bits;
-	unsigned int n, mbl_offset;
+	unsigned int n;
+	int mbl_offset;
 
 	n = ctx->count % bsize;
 	bits = ctx->count * 8;
-	mbl_offset = s390_crypto_shash_parmsize(ctx->func) / sizeof(u32);
+	mbl_offset = s390_crypto_shash_parmsize(ctx->func);
 	if (mbl_offset < 0)
 		return -EINVAL;
 
+	mbl_offset = mbl_offset / sizeof(u32);
+
 	/* set total msg bit length (mbl) in CPACF parmblock */
 	switch (ctx->func) {
 	case CPACF_KLMD_SHA_1:
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/gmap.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/gmap.h
@@ -9,6 +9,7 @@
 #ifndef _ASM_S390_GMAP_H
 #define _ASM_S390_GMAP_H
 
+#include <linux/radix-tree.h>
 #include <linux/refcount.h>
 
 /* Generic bits for GMAP notification on DAT table entry changes. */
@@ -31,6 +32,7 @@
  * @table: pointer to the page directory
  * @asce: address space control element for gmap page table
  * @pfault_enabled: defines if pfaults are applicable for the guest
+ * @guest_handle: protected virtual machine handle for the ultravisor
  * @host_to_rmap: radix tree with gmap_rmap lists
  * @children: list of shadow gmap structures
  * @pt_list: list of all page tables used in the shadow guest address space
@@ -54,6 +56,8 @@
 	unsigned long asce_end;
 	void *private;
 	bool pfault_enabled;
+	/* only set for protected virtual machines */
+	unsigned long guest_handle;
 	/* Additional data for shadow guest address spaces */
 	struct radix_tree_root host_to_rmap;
 	struct list_head children;
@@ -144,4 +148,6 @@
 
 void gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long dirty_bitmap[4],
 			     unsigned long gaddr, unsigned long vmaddr);
+int gmap_mark_unmergeable(void);
+void s390_reset_acc(struct mm_struct *mm);
 #endif /* _ASM_S390_GMAP_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/ipl.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/ipl.h
@@ -21,6 +21,7 @@
 		struct ipl_pb0_common common;
 		struct ipl_pb0_fcp fcp;
 		struct ipl_pb0_ccw ccw;
+		struct ipl_pb0_nvme nvme;
 		char raw[PAGE_SIZE - sizeof(struct ipl_pl_hdr)];
 	};
 } __packed __aligned(PAGE_SIZE);
@@ -30,6 +31,11 @@
 #define IPL_BP_FCP_LEN (sizeof(struct ipl_pl_hdr) + \
 			      sizeof(struct ipl_pb0_fcp))
 #define IPL_BP0_FCP_LEN (sizeof(struct ipl_pb0_fcp))
+
+#define IPL_BP_NVME_LEN (sizeof(struct ipl_pl_hdr) + \
+			      sizeof(struct ipl_pb0_nvme))
+#define IPL_BP0_NVME_LEN (sizeof(struct ipl_pb0_nvme))
+
 #define IPL_BP_CCW_LEN (sizeof(struct ipl_pl_hdr) + \
 			      sizeof(struct ipl_pb0_ccw))
 #define IPL_BP0_CCW_LEN (sizeof(struct ipl_pb0_ccw))
@@ -59,6 +65,7 @@
 	IPL_TYPE_FCP		= 4,
 	IPL_TYPE_FCP_DUMP	= 8,
 	IPL_TYPE_NSS		= 16,
+	IPL_TYPE_NVME		= 32,
 };
 
 struct ipl_info
@@ -74,6 +81,10 @@
 			u64 lun;
 		} fcp;
 		struct {
+			u32 fid;
+			u32 nsid;
+		} nvme;
+		struct {
 			char name[NSS_NAME_SIZE + 1];
 		} nss;
 	} data;
@@ -109,6 +120,7 @@
 			     unsigned char flags, unsigned short cert);
 int ipl_report_add_certificate(struct ipl_report *report, void *key,
 			       unsigned long addr, unsigned long len);
+bool ipl_get_secureboot(void);
 
 /*
  * DIAG 308 support
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/kprobes.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/kprobes.h
@@ -54,7 +54,6 @@
 struct arch_specific_insn {
 	/* copy of original instruction */
 	kprobe_opcode_t *insn;
-	unsigned int is_ftrace_insn : 1;
 };
 
 struct prev_kprobe {
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/kvm_host.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/kvm_host.h
@@ -31,12 +31,12 @@
 #define KVM_USER_MEM_SLOTS 32
 
 /*
- * These seem to be used for allocating ->chip in the routing table,
- * which we don't use. 4096 is an out-of-thin-air value. If we need
- * to look at ->chip later on, we'll need to revisit this.
+ * These seem to be used for allocating ->chip in the routing table, which we
+ * don't use. 1 is as small as we can get to reduce the needed memory. If we
+ * need to look at ->chip later on, we'll need to revisit this.
  */
 #define KVM_NR_IRQCHIPS 1
-#define KVM_IRQCHIP_NUM_PINS 4096
+#define KVM_IRQCHIP_NUM_PINS 1
 #define KVM_HALT_POLL_NS_DEFAULT 50000
 
 /* s390-specific vcpu->requests bit members */
@@ -122,6 +122,17 @@
 	__u32 reserved;
 };
 
+#define CR0_INITIAL_MASK (CR0_UNUSED_56 | CR0_INTERRUPT_KEY_SUBMASK | \
+			  CR0_MEASUREMENT_ALERT_SUBMASK)
+#define CR14_INITIAL_MASK (CR14_UNUSED_32 | CR14_UNUSED_33 | \
+			   CR14_EXTERNAL_DAMAGE_SUBMASK)
+
+#define SIDAD_SIZE_MASK		0xff
+#define sida_origin(sie_block) \
+	((sie_block)->sidad & PAGE_MASK)
+#define sida_size(sie_block) \
+	((((sie_block)->sidad & SIDAD_SIZE_MASK) + 1) * PAGE_SIZE)
+
 #define CPUSTAT_STOPPED    0x80000000
 #define CPUSTAT_WAIT       0x10000000
 #define CPUSTAT_ECALL_PEND 0x08000000
@@ -155,7 +166,13 @@
 	__u8	reserved08[4];		/* 0x0008 */
 #define PROG_IN_SIE (1<<0)
 	__u32	prog0c;			/* 0x000c */
-	__u8	reserved10[16];		/* 0x0010 */
+	union {
+		__u8	reserved10[16];		/* 0x0010 */
+		struct {
+			__u64	pv_handle_cpu;
+			__u64	pv_handle_config;
+		};
+	};
 #define PROG_BLOCK_SIE	(1<<0)
 #define PROG_REQUEST	(1<<1)
 	atomic_t prog20;		/* 0x0020 */
@@ -204,10 +221,23 @@
 #define ICPT_PARTEXEC	0x38
 #define ICPT_IOINST	0x40
 #define ICPT_KSS	0x5c
+#define ICPT_MCHKREQ	0x60
+#define ICPT_INT_ENABLE	0x64
+#define ICPT_PV_INSTR	0x68
+#define ICPT_PV_NOTIFY	0x6c
+#define ICPT_PV_PREF	0x70
 	__u8	icptcode;		/* 0x0050 */
 	__u8	icptstatus;		/* 0x0051 */
 	__u16	ihcpu;			/* 0x0052 */
-	__u8	reserved54[2];		/* 0x0054 */
+	__u8	reserved54;		/* 0x0054 */
+#define IICTL_CODE_NONE		 0x00
+#define IICTL_CODE_MCHK		 0x01
+#define IICTL_CODE_EXT		 0x02
+#define IICTL_CODE_IO		 0x03
+#define IICTL_CODE_RESTART	 0x04
+#define IICTL_CODE_SPECIFICATION 0x10
+#define IICTL_CODE_OPERAND	 0x11
+	__u8	iictl;			/* 0x0055 */
 	__u16	ipa;			/* 0x0056 */
 	__u32	ipb;			/* 0x0058 */
 	__u32	scaoh;			/* 0x005c */
@@ -228,7 +258,7 @@
 #define ECB3_RI  0x01
 	__u8    ecb3;			/* 0x0063 */
 	__u32	scaol;			/* 0x0064 */
-	__u8	reserved68;		/* 0x0068 */
+	__u8	sdf;			/* 0x0068 */
 	__u8    epdx;			/* 0x0069 */
 	__u8    reserved6a[2];		/* 0x006a */
 	__u32	todpr;			/* 0x006c */
@@ -244,31 +274,58 @@
 #define HPID_KVM	0x4
 #define HPID_VSIE	0x5
 	__u8	hpid;			/* 0x00b8 */
-	__u8	reservedb9[11];		/* 0x00b9 */
-	__u16	extcpuaddr;		/* 0x00c4 */
-	__u16	eic;			/* 0x00c6 */
+	__u8	reservedb9[7];		/* 0x00b9 */
+	union {
+		struct {
+			__u32	eiparams;	/* 0x00c0 */
+			__u16	extcpuaddr;	/* 0x00c4 */
+			__u16	eic;		/* 0x00c6 */
+		};
+		__u64	mcic;			/* 0x00c0 */
+	} __packed;
 	__u32	reservedc8;		/* 0x00c8 */
-	__u16	pgmilc;			/* 0x00cc */
-	__u16	iprcc;			/* 0x00ce */
-	__u32	dxc;			/* 0x00d0 */
-	__u16	mcn;			/* 0x00d4 */
-	__u8	perc;			/* 0x00d6 */
-	__u8	peratmid;		/* 0x00d7 */
+	union {
+		struct {
+			__u16	pgmilc;		/* 0x00cc */
+			__u16	iprcc;		/* 0x00ce */
+		};
+		__u32	edc;			/* 0x00cc */
+	} __packed;
+	union {
+		struct {
+			__u32	dxc;		/* 0x00d0 */
+			__u16	mcn;		/* 0x00d4 */
+			__u8	perc;		/* 0x00d6 */
+			__u8	peratmid;	/* 0x00d7 */
+		};
+		__u64	faddr;			/* 0x00d0 */
+	} __packed;
 	__u64	peraddr;		/* 0x00d8 */
 	__u8	eai;			/* 0x00e0 */
 	__u8	peraid;			/* 0x00e1 */
 	__u8	oai;			/* 0x00e2 */
 	__u8	armid;			/* 0x00e3 */
 	__u8	reservede4[4];		/* 0x00e4 */
-	__u64	tecmc;			/* 0x00e8 */
-	__u8	reservedf0[12];		/* 0x00f0 */
+	union {
+		__u64	tecmc;		/* 0x00e8 */
+		struct {
+			__u16	subchannel_id;	/* 0x00e8 */
+			__u16	subchannel_nr;	/* 0x00ea */
+			__u32	io_int_parm;	/* 0x00ec */
+			__u32	io_int_word;	/* 0x00f0 */
+		};
+	} __packed;
+	__u8	reservedf4[8];		/* 0x00f4 */
 #define CRYCB_FORMAT_MASK 0x00000003
 #define CRYCB_FORMAT0 0x00000000
 #define CRYCB_FORMAT1 0x00000001
 #define CRYCB_FORMAT2 0x00000003
 	__u32	crycbd;			/* 0x00fc */
 	__u64	gcr[16];		/* 0x0100 */
-	__u64	gbea;			/* 0x0180 */
+	union {
+		__u64	gbea;		/* 0x0180 */
+		__u64	sidad;
+	};
 	__u8    reserved188[8];		/* 0x0188 */
 	__u64   sdnxo;			/* 0x0190 */
 	__u8    reserved198[8];		/* 0x0198 */
@@ -296,7 +353,9 @@
 struct sie_page {
 	struct kvm_s390_sie_block sie_block;
 	struct mcck_volatile_info mcck_info;	/* 0x0200 */
-	__u8 reserved218[1000];		/* 0x0218 */
+	__u8 reserved218[360];		/* 0x0218 */
+	__u64 pv_grregs[16];		/* 0x0380 */
+	__u8 reserved400[512];		/* 0x0400 */
 	struct kvm_s390_itdb itdb;	/* 0x0600 */
 	__u8 reserved700[2304];		/* 0x0700 */
 };
@@ -470,6 +529,7 @@
 	IRQ_PEND_PFAULT_INIT,
 	IRQ_PEND_EXT_HOST,
 	IRQ_PEND_EXT_SERVICE,
+	IRQ_PEND_EXT_SERVICE_EV,
 	IRQ_PEND_EXT_TIMING,
 	IRQ_PEND_EXT_CPU_TIMER,
 	IRQ_PEND_EXT_CLOCK_COMP,
@@ -514,6 +574,7 @@
 			   (1UL << IRQ_PEND_EXT_TIMING)     | \
 			   (1UL << IRQ_PEND_EXT_HOST)       | \
 			   (1UL << IRQ_PEND_EXT_SERVICE)    | \
+			   (1UL << IRQ_PEND_EXT_SERVICE_EV) | \
 			   (1UL << IRQ_PEND_VIRTIO)         | \
 			   (1UL << IRQ_PEND_PFAULT_INIT)    | \
 			   (1UL << IRQ_PEND_PFAULT_DONE))
@@ -530,6 +591,13 @@
 #define IRQ_PEND_MCHK_MASK ((1UL << IRQ_PEND_MCHK_REP) | \
 			    (1UL << IRQ_PEND_MCHK_EX))
 
+#define IRQ_PEND_EXT_II_MASK ((1UL << IRQ_PEND_EXT_CPU_TIMER)  | \
+			      (1UL << IRQ_PEND_EXT_CLOCK_COMP) | \
+			      (1UL << IRQ_PEND_EXT_EMERGENCY)  | \
+			      (1UL << IRQ_PEND_EXT_EXTERNAL)   | \
+			      (1UL << IRQ_PEND_EXT_SERVICE)    | \
+			      (1UL << IRQ_PEND_EXT_SERVICE_EV))
+
 struct kvm_s390_interrupt_info {
 	struct list_head list;
 	u64	type;
@@ -588,6 +656,7 @@
 
 struct kvm_s390_float_interrupt {
 	unsigned long pending_irqs;
+	unsigned long masked_irqs;
 	spinlock_t lock;
 	struct list_head lists[FIRQ_LIST_COUNT];
 	int counters[FIRQ_MAX_COUNT];
@@ -639,6 +708,11 @@
 	unsigned long last_bp;
 };
 
+struct kvm_s390_pv_vcpu {
+	u64 handle;
+	unsigned long stor_base;
+};
+
 struct kvm_vcpu_arch {
 	struct kvm_s390_sie_block *sie_block;
 	/* if vsie is active, currently executed shadow sie control block */
@@ -667,6 +741,7 @@
 	__u64 cputm_start;
 	bool gs_enabled;
 	bool skey_enabled;
+	struct kvm_s390_pv_vcpu pv;
 };
 
 struct kvm_vm_stat {
@@ -695,9 +770,6 @@
 	bool masked;
 	bool swap;
 	bool suppressible;
-	struct rw_semaphore maps_lock;
-	struct list_head maps;
-	atomic_t nr_maps;
 };
 
 #define MAX_S390_IO_ADAPTERS ((MAX_ISC + 1) * 8)
@@ -840,6 +912,13 @@
 	DECLARE_BITMAP(kicked_mask, KVM_MAX_VCPUS);
 };
 
+struct kvm_s390_pv {
+	u64 handle;
+	u64 guest_len;
+	unsigned long stor_base;
+	void *stor_var;
+};
+
 struct kvm_arch{
 	void *sca;
 	int use_esca;
@@ -875,6 +954,7 @@
 	DECLARE_BITMAP(cpu_feat, KVM_S390_VM_CPU_FEAT_NR_BITS);
 	DECLARE_BITMAP(idle_mask, KVM_MAX_VCPUS);
 	struct kvm_s390_gisa_interrupt gisa_int;
+	struct kvm_s390_pv pv;
 };
 
 #define KVM_HVA_ERR_BAD		(-1UL)
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/lowcore.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/lowcore.h
@@ -141,7 +141,9 @@
 
 	/* br %r1 trampoline */
 	__u16	br_r1_trampoline;		/* 0x0400 */
-	__u8	pad_0x0402[0x0e00-0x0402];	/* 0x0402 */
+	__u32	return_lpswe;			/* 0x0402 */
+	__u32	return_mcck_lpswe;		/* 0x0406 */
+	__u8	pad_0x040a[0x0e00-0x040a];	/* 0x040a */
 
 	/*
 	 * 0xe00 contains the address of the IPL Parameter Information
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/mmu.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/mmu.h
@@ -16,6 +16,8 @@
 	unsigned long asce;
 	unsigned long asce_limit;
 	unsigned long vdso_base;
+	/* The mmu context belongs to a secure guest. */
+	atomic_t is_protected;
 	/*
 	 * The following bitfields need a down_write on the mm
 	 * semaphore when they are written to. As they are only
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/mmu_context.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/mmu_context.h
@@ -23,6 +23,7 @@
 	INIT_LIST_HEAD(&mm->context.gmap_list);
 	cpumask_clear(&mm->context.cpu_attach_mask);
 	atomic_set(&mm->context.flush_count, 0);
+	atomic_set(&mm->context.is_protected, 0);
 	mm->context.gmap_asce = 0;
 	mm->context.flush_mm = 0;
 	mm->context.compat_mm = test_thread_flag(TIF_31BIT);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/numa.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/numa.h
@@ -17,7 +17,6 @@
 
 void numa_setup(void);
 int numa_pfn_to_nid(unsigned long pfn);
-int __node_distance(int a, int b);
 void numa_update_cpu_topology(void);
 
 extern cpumask_t node_to_cpumask_map[MAX_NUMNODES];
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/page.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/page.h
@@ -33,6 +33,8 @@
 #define ARCH_HAS_PREPARE_HUGEPAGE
 #define ARCH_HAS_HUGEPAGE_CLEAR_FLUSH
 
+#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
+
 #include <asm/setup.h>
 #ifndef __ASSEMBLY__
 
@@ -40,7 +42,7 @@
 
 static inline void storage_key_init_range(unsigned long start, unsigned long end)
 {
-	if (PAGE_DEFAULT_KEY)
+	if (PAGE_DEFAULT_KEY != 0)
 		__storage_key_init_range(start, end);
 }
 
@@ -151,6 +153,11 @@
 #define HAVE_ARCH_FREE_PAGE
 #define HAVE_ARCH_ALLOC_PAGE
 
+#if IS_ENABLED(CONFIG_PGSTE)
+int arch_make_page_accessible(struct page *page);
+#define HAVE_ARCH_MAKE_PAGE_ACCESSIBLE
+#endif
+
 #endif /* !__ASSEMBLY__ */
 
 #define __PAGE_OFFSET		0x0UL
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/pci.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/pci.h
@@ -8,6 +8,7 @@
 #include <linux/pci.h>
 #include <linux/mutex.h>
 #include <linux/iommu.h>
+#include <linux/pci_hotplug.h>
 #include <asm-generic/pci.h>
 #include <asm/pci_clp.h>
 #include <asm/pci_debug.h>
@@ -24,10 +25,16 @@
 int pci_proc_domain(struct pci_bus *);
 
 #define ZPCI_BUS_NR			0	/* default bus number */
-#define ZPCI_DEVFN			0	/* default device number */
 
 #define ZPCI_NR_DMA_SPACES		1
 #define ZPCI_NR_DEVICES			CONFIG_PCI_NR_FUNCTIONS
+#define ZPCI_DOMAIN_BITMAP_SIZE		(1 << 16)
+
+#ifdef PCI
+#if (ZPCI_NR_DEVICES > ZPCI_DOMAIN_BITMAP_SIZE)
+# error ZPCI_NR_DEVICES can not be bigger than ZPCI_DOMAIN_BITMAP_SIZE
+#endif
+#endif /* PCI */
 
 /* PCI Function Controls */
 #define ZPCI_FC_FN_ENABLED		0x80
@@ -95,10 +102,26 @@
 
 struct s390_domain;
 
+#define ZPCI_FUNCTIONS_PER_BUS 256
+struct zpci_bus {
+	struct kref		kref;
+	struct pci_bus		*bus;
+	struct zpci_dev		*function[ZPCI_FUNCTIONS_PER_BUS];
+	struct list_head	resources;
+	struct list_head	bus_next;
+	int			pchid;
+	int			domain_nr;
+	bool			multifunction;
+	enum pci_bus_speed	max_bus_speed;
+};
+
 /* Private data per function */
 struct zpci_dev {
-	struct pci_bus	*bus;
+	struct zpci_bus *zbus;
 	struct list_head entry;		/* list of all zpci_devices, needed for hotplug, etc. */
+	struct list_head bus_next;
+	struct kref kref;
+	struct hotplug_slot hotplug_slot;
 
 	enum zpci_state state;
 	u32		fid;		/* function ID, used by sclp */
@@ -107,7 +130,12 @@
 	u16		pchid;		/* physical channel ID */
 	u8		pfgid;		/* function group ID */
 	u8		pft;		/* pci function type */
-	u16		domain;
+	u8		port;
+	u8		rid_available	: 1;
+	u8		has_hp_slot	: 1;
+	u8		is_physfn	: 1;
+	u8		reserved	: 5;
+	unsigned int	devfn;		/* DEVFN part of the RID*/
 
 	struct mutex lock;
 	u8 pfip[CLP_PFIP_NR_SEGMENTS];	/* pci function internal path */
@@ -167,6 +195,7 @@
 
 extern const struct attribute_group *zpci_attr_groups[];
 extern unsigned int s390_pci_force_floating __initdata;
+extern unsigned int s390_pci_no_rid;
 
 /* -----------------------------------------------------------------------------
   Prototypes
@@ -183,12 +212,15 @@
 /* CLP */
 int clp_scan_pci_devices(void);
 int clp_rescan_pci_devices(void);
-int clp_rescan_pci_devices_simple(void);
+int clp_rescan_pci_devices_simple(u32 *fid);
 int clp_add_pci_device(u32, u32, int);
 int clp_enable_fh(struct zpci_dev *, u8);
 int clp_disable_fh(struct zpci_dev *);
 int clp_get_state(u32 fid, enum zpci_state *state);
 
+/* UID */
+void update_uid_checking(bool new);
+
 /* IOMMU Interface */
 int zpci_init_iommu(struct zpci_dev *zdev);
 void zpci_destroy_iommu(struct zpci_dev *zdev);
@@ -224,7 +256,14 @@
 /* Helpers */
 static inline struct zpci_dev *to_zpci(struct pci_dev *pdev)
 {
-	return pdev->sysdata;
+	struct zpci_bus *zbus = pdev->sysdata;
+
+	return zbus->function[pdev->devfn];
+}
+
+static inline struct zpci_dev *to_zpci_dev(struct device *dev)
+{
+	return to_zpci(to_pci_dev(dev));
 }
 
 struct zpci_dev *get_zdev_by_fid(u32);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/pci_clp.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/pci_clp.h
@@ -93,7 +93,10 @@
 struct clp_rsp_query_pci {
 	struct clp_rsp_hdr hdr;
 	u16 vfn;			/* virtual fn number */
-	u16			:  6;
+	u16			:  3;
+	u16 rid_avail		:  1;
+	u16 is_physfn		:  1;
+	u16 reserved1		:  1;
 	u16 mio_addr_avail	:  1;
 	u16 util_str_avail	:  1;	/* utility string available? */
 	u16 pfgid		:  8;	/* pci function group id */
@@ -102,12 +105,16 @@
 	u16 pchid;
 	__le32 bar[PCI_BAR_COUNT];
 	u8 pfip[CLP_PFIP_NR_SEGMENTS];	/* pci function internal path */
-	u32			: 16;
+	u16			: 12;
+	u16 port		:  4;
 	u8 fmb_len;
 	u8 pft;				/* pci function type */
 	u64 sdma;			/* start dma as */
 	u64 edma;			/* end dma as */
-	u32 reserved[11];
+#define ZPCI_RID_MASK_DEVFN 0x00ff
+	u16 rid;			/* BUS/DEVFN PCI address */
+	u16 reserved0;
+	u32 reserved[10];
 	u32 uid;			/* user defined id */
 	u8 util_str[CLP_UTIL_STR_LEN];	/* utility string */
 	u32 reserved2[16];
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/pci_io.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/pci_io.h
@@ -8,6 +8,10 @@
 #include <linux/slab.h>
 #include <asm/pci_insn.h>
 
+/* I/O size constraints */
+#define ZPCI_MAX_READ_SIZE	8
+#define ZPCI_MAX_WRITE_SIZE	128
+
 /* I/O Map */
 #define ZPCI_IOMAP_SHIFT		48
 #define ZPCI_IOMAP_ADDR_BASE		0x8000000000000000UL
@@ -140,7 +144,8 @@
 
 	while (n > 0) {
 		size = zpci_get_max_write_size((u64 __force) src,
-					       (u64) dst, n, 8);
+					       (u64) dst, n,
+					       ZPCI_MAX_READ_SIZE);
 		rc = zpci_read_single(dst, src, size);
 		if (rc)
 			break;
@@ -161,7 +166,8 @@
 
 	while (n > 0) {
 		size = zpci_get_max_write_size((u64 __force) dst,
-					       (u64) src, n, 128);
+					       (u64) src, n,
+					       ZPCI_MAX_WRITE_SIZE);
 		if (size > 8) /* main path */
 			rc = zpci_write_block(dst, src, size);
 		else
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/percpu.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/percpu.h
@@ -29,7 +29,7 @@
 	typedef typeof(pcp) pcp_op_T__;					\
 	pcp_op_T__ old__, new__, prev__;				\
 	pcp_op_T__ *ptr__;						\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));					\
 	prev__ = *ptr__;						\
 	do {								\
@@ -37,7 +37,7 @@
 		new__ = old__ op (val);					\
 		prev__ = cmpxchg(ptr__, old__, new__);			\
 	} while (prev__ != old__);					\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	new__;								\
 })
 
@@ -68,7 +68,7 @@
 	typedef typeof(pcp) pcp_op_T__; 				\
 	pcp_op_T__ val__ = (val);					\
 	pcp_op_T__ old__, *ptr__;					\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp)); 				\
 	if (__builtin_constant_p(val__) &&				\
 	    ((szcast)val__ > -129) && ((szcast)val__ < 128)) {		\
@@ -84,7 +84,7 @@
 			: [val__] "d" (val__)				\
 			: "cc");					\
 	}								\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 }
 
 #define this_cpu_add_4(pcp, val) arch_this_cpu_add(pcp, val, "laa", "asi", int)
@@ -95,14 +95,14 @@
 	typedef typeof(pcp) pcp_op_T__; 				\
 	pcp_op_T__ val__ = (val);					\
 	pcp_op_T__ old__, *ptr__;					\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));	 				\
 	asm volatile(							\
 		op "    %[old__],%[val__],%[ptr__]\n"			\
 		: [old__] "=d" (old__), [ptr__] "+Q" (*ptr__)		\
 		: [val__] "d" (val__)					\
 		: "cc");						\
-	preempt_enable();						\
+	preempt_enable_notrace();						\
 	old__ + val__;							\
 })
 
@@ -114,14 +114,14 @@
 	typedef typeof(pcp) pcp_op_T__; 				\
 	pcp_op_T__ val__ = (val);					\
 	pcp_op_T__ old__, *ptr__;					\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));	 				\
 	asm volatile(							\
 		op "    %[old__],%[val__],%[ptr__]\n"			\
 		: [old__] "=d" (old__), [ptr__] "+Q" (*ptr__)		\
 		: [val__] "d" (val__)					\
 		: "cc");						\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 }
 
 #define this_cpu_and_4(pcp, val)	arch_this_cpu_to_op(pcp, val, "lan")
@@ -136,10 +136,10 @@
 	typedef typeof(pcp) pcp_op_T__;					\
 	pcp_op_T__ ret__;						\
 	pcp_op_T__ *ptr__;						\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));					\
 	ret__ = cmpxchg(ptr__, oval, nval);				\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	ret__;								\
 })
 
@@ -152,10 +152,10 @@
 ({									\
 	typeof(pcp) *ptr__;						\
 	typeof(pcp) ret__;						\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));					\
 	ret__ = xchg(ptr__, nval);					\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	ret__;								\
 })
 
@@ -171,11 +171,11 @@
 	typeof(pcp1) *p1__;						\
 	typeof(pcp2) *p2__;						\
 	int ret__;							\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	p1__ = raw_cpu_ptr(&(pcp1));					\
 	p2__ = raw_cpu_ptr(&(pcp2));					\
 	ret__ = __cmpxchg_double(p1__, p2__, o1__, o2__, n1__, n2__);	\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	ret__;								\
 })
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/pgalloc.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/pgalloc.h
@@ -56,7 +56,12 @@
 		crst_table_init(table, _REGION2_ENTRY_EMPTY);
 	return (p4d_t *) table;
 }
-#define p4d_free(mm, p4d) crst_table_free(mm, (unsigned long *) p4d)
+
+static inline void p4d_free(struct mm_struct *mm, p4d_t *p4d)
+{
+	if (!mm_p4d_folded(mm))
+		crst_table_free(mm, (unsigned long *) p4d);
+}
 
 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
 {
@@ -65,7 +70,12 @@
 		crst_table_init(table, _REGION3_ENTRY_EMPTY);
 	return (pud_t *) table;
 }
-#define pud_free(mm, pud) crst_table_free(mm, (unsigned long *) pud)
+
+static inline void pud_free(struct mm_struct *mm, pud_t *pud)
+{
+	if (!mm_pud_folded(mm))
+		crst_table_free(mm, (unsigned long *) pud);
+}
 
 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long vmaddr)
 {
@@ -83,6 +93,8 @@
 
 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
 {
+	if (mm_pmd_folded(mm))
+		return;
 	pgtable_pmd_page_dtor(virt_to_page(pmd));
 	crst_table_free(mm, (unsigned long *) pmd);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/pgtable.h
@@ -19,6 +19,7 @@
 #include <linux/atomic.h>
 #include <asm/bug.h>
 #include <asm/page.h>
+#include <asm/uv.h>
 
 extern pgd_t swapper_pg_dir[];
 extern void paging_init(void);
@@ -522,6 +523,15 @@
 	return 0;
 }
 
+static inline int mm_is_protected(struct mm_struct *mm)
+{
+#ifdef CONFIG_PGSTE
+	if (unlikely(atomic_read(&mm->context.is_protected)))
+		return 1;
+#endif
+	return 0;
+}
+
 static inline int mm_alloc_pgste(struct mm_struct *mm)
 {
 #ifdef CONFIG_PGSTE
@@ -756,6 +766,12 @@
 	return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0;
 }
 
+#define pud_write pud_write
+static inline int pud_write(pud_t pud)
+{
+	return (pud_val(pud) & _REGION3_ENTRY_WRITE) != 0;
+}
+
 static inline int pmd_dirty(pmd_t pmd)
 {
 	int dirty = 1;
@@ -1071,7 +1087,12 @@
 static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
 				       unsigned long addr, pte_t *ptep)
 {
-	return ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
+	pte_t res;
+
+	res = ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
+	if (mm_is_protected(mm) && pte_present(res))
+		uv_convert_from_secure(pte_val(res) & PAGE_MASK);
+	return res;
 }
 
 #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION
@@ -1083,7 +1104,12 @@
 static inline pte_t ptep_clear_flush(struct vm_area_struct *vma,
 				     unsigned long addr, pte_t *ptep)
 {
-	return ptep_xchg_direct(vma->vm_mm, addr, ptep, __pte(_PAGE_INVALID));
+	pte_t res;
+
+	res = ptep_xchg_direct(vma->vm_mm, addr, ptep, __pte(_PAGE_INVALID));
+	if (mm_is_protected(vma->vm_mm) && pte_present(res))
+		uv_convert_from_secure(pte_val(res) & PAGE_MASK);
+	return res;
 }
 
 /*
@@ -1098,12 +1124,17 @@
 					    unsigned long addr,
 					    pte_t *ptep, int full)
 {
+	pte_t res;
+
 	if (full) {
-		pte_t pte = *ptep;
+		res = *ptep;
 		*ptep = __pte(_PAGE_INVALID);
-		return pte;
+	} else {
+		res = ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
 	}
-	return ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
+	if (mm_is_protected(mm) && pte_present(res))
+		uv_convert_from_secure(pte_val(res) & PAGE_MASK);
+	return res;
 }
 
 #define __HAVE_ARCH_PTEP_SET_WRPROTECT
@@ -1173,8 +1204,6 @@
 static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
 			      pte_t *ptep, pte_t entry)
 {
-	if (!MACHINE_HAS_NX)
-		pte_val(entry) &= ~_PAGE_NOEXEC;
 	if (pte_present(entry))
 		pte_val(entry) &= ~_PAGE_UNUSED;
 	if (mm_has_pgste(mm))
@@ -1191,6 +1220,8 @@
 {
 	pte_t __pte;
 	pte_val(__pte) = physpage + pgprot_val(pgprot);
+	if (!MACHINE_HAS_NX)
+		pte_val(__pte) &= ~_PAGE_NOEXEC;
 	return pte_mkyoung(__pte);
 }
 
@@ -1241,26 +1272,46 @@
 #define pgd_offset(mm, address) pgd_offset_raw(READ_ONCE((mm)->pgd), address)
 #define pgd_offset_k(address) pgd_offset(&init_mm, address)
 
-static inline p4d_t *p4d_offset(pgd_t *pgd, unsigned long address)
+static inline p4d_t *p4d_offset_lockless(pgd_t *pgdp, pgd_t pgd, unsigned long address)
+{
+	if ((pgd_val(pgd) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R1)
+		return (p4d_t *) pgd_deref(pgd) + p4d_index(address);
+	return (p4d_t *) pgdp;
+}
+#define p4d_offset_lockless p4d_offset_lockless
+
+static inline p4d_t *p4d_offset(pgd_t *pgdp, unsigned long address)
+{
+	return p4d_offset_lockless(pgdp, *pgdp, address);
+}
+
+static inline pud_t *pud_offset_lockless(p4d_t *p4dp, p4d_t p4d, unsigned long address)
+{
+	if ((p4d_val(p4d) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R2)
+		return (pud_t *) p4d_deref(p4d) + pud_index(address);
+	return (pud_t *) p4dp;
+}
+#define pud_offset_lockless pud_offset_lockless
+
+static inline pud_t *pud_offset(p4d_t *p4dp, unsigned long address)
 {
-	if ((pgd_val(*pgd) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R1)
-		return (p4d_t *) pgd_deref(*pgd) + p4d_index(address);
-	return (p4d_t *) pgd;
+	return pud_offset_lockless(p4dp, *p4dp, address);
 }
+#define pud_offset pud_offset
 
-static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
+static inline pmd_t *pmd_offset_lockless(pud_t *pudp, pud_t pud, unsigned long address)
 {
-	if ((p4d_val(*p4d) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R2)
-		return (pud_t *) p4d_deref(*p4d) + pud_index(address);
-	return (pud_t *) p4d;
+	if ((pud_val(pud) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R3)
+		return (pmd_t *) pud_deref(pud) + pmd_index(address);
+	return (pmd_t *) pudp;
 }
+#define pmd_offset_lockless pmd_offset_lockless
 
-static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
+static inline pmd_t *pmd_offset(pud_t *pudp, unsigned long address)
 {
-	if ((pud_val(*pud) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R3)
-		return (pmd_t *) pud_deref(*pud) + pmd_index(address);
-	return (pmd_t *) pud;
+	return pmd_offset_lockless(pudp, *pudp, address);
 }
+#define pmd_offset pmd_offset
 
 static inline pte_t *pte_offset(pmd_t *pmd, unsigned long address)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/processor.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/processor.h
@@ -162,6 +162,7 @@
 #define INIT_THREAD {							\
 	.ksp = sizeof(init_stack) + (unsigned long) &init_stack,	\
 	.fpu.regs = (void *) init_task.thread.fpu.fprs,			\
+	.last_break = 1,						\
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/qdio.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/qdio.h
@@ -227,7 +227,7 @@
  * @sbal: absolute SBAL address
  */
 struct sl_element {
-	unsigned long sbal;
+	u64 sbal;
 } __attribute__ ((packed));
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/setup.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/setup.h
@@ -8,6 +8,7 @@
 
 #include <linux/bits.h>
 #include <uapi/asm/setup.h>
+#include <linux/build_bug.h>
 
 #define EP_OFFSET		0x10008
 #define EP_STRING		"S390EP"
@@ -80,6 +81,13 @@
 	char command_line[ARCH_COMMAND_LINE_SIZE];	/* 0x10480 */
 };
 
+extern unsigned int zlib_dfltcc_support;
+#define ZLIB_DFLTCC_DISABLED		0
+#define ZLIB_DFLTCC_FULL		1
+#define ZLIB_DFLTCC_DEFLATE_ONLY	2
+#define ZLIB_DFLTCC_INFLATE_ONLY	3
+#define ZLIB_DFLTCC_FULL_DEBUG		4
+
 extern int noexec_disabled;
 extern int memory_end_set;
 extern unsigned long memory_end;
@@ -157,6 +165,12 @@
 	return __kaslr_offset;
 }
 
+static inline u32 gen_lpswe(unsigned long addr)
+{
+	BUILD_BUG_ON(addr > 0xfff);
+	return 0xb2b20000 | addr;
+}
+
 #else /* __ASSEMBLY__ */
 
 #define IPL_DEVICE	(IPL_DEVICE_OFFSET)
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/stacktrace.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/stacktrace.h
@@ -111,4 +111,15 @@
 	r2;								\
 })
 
+#define CALL_ON_STACK_NORETURN(fn, stack)				\
+({									\
+	asm volatile(							\
+		"	la	15,0(%[_stack])\n"			\
+		"	xc	%[_bc](8,15),%[_bc](15)\n"		\
+		"	brasl	14,%[_fn]\n"				\
+		::[_bc] "i" (offsetof(struct stack_frame, back_chain)),	\
+		  [_stack] "a" (stack), [_fn] "X" (fn));		\
+	BUG();								\
+})
+
 #endif /* _ASM_S390_STACKTRACE_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/syscall.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/syscall.h
@@ -33,7 +33,17 @@
 static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
-	return IS_ERR_VALUE(regs->gprs[2]) ? regs->gprs[2] : 0;
+	unsigned long error = regs->gprs[2];
+#ifdef CONFIG_COMPAT
+	if (test_tsk_thread_flag(task, TIF_31BIT)) {
+		/*
+		 * Sign-extend the value so (int)-EFOO becomes (long)-EFOO
+		 * and will match correctly in comparisons.
+		 */
+		error = (long)(int)error;
+	}
+#endif
+	return IS_ERR_VALUE(error) ? error : 0;
 }
 
 static inline long syscall_get_return_value(struct task_struct *task,
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/timex.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/timex.h
@@ -10,8 +10,9 @@
 #ifndef _ASM_S390_TIMEX_H
 #define _ASM_S390_TIMEX_H
 
-#include <asm/lowcore.h>
+#include <linux/preempt.h>
 #include <linux/time64.h>
+#include <asm/lowcore.h>
 
 /* The value of the TOD clock for 1.1.1970. */
 #define TOD_UNIX_EPOCH 0x7d91048bca000000ULL
@@ -154,7 +155,7 @@
 
 static inline unsigned long long get_tod_clock(void)
 {
-	unsigned char clk[STORE_CLOCK_EXT_SIZE];
+	char clk[STORE_CLOCK_EXT_SIZE];
 
 	get_tod_clock_ext(clk);
 	return *((unsigned long long *)&clk[1]);
@@ -186,15 +187,18 @@
 /**
  * get_clock_monotonic - returns current time in clock rate units
  *
- * The caller must ensure that preemption is disabled.
  * The clock and tod_clock_base get changed via stop_machine.
- * Therefore preemption must be disabled when calling this
- * function, otherwise the returned value is not guaranteed to
- * be monotonic.
+ * Therefore preemption must be disabled, otherwise the returned
+ * value is not guaranteed to be monotonic.
  */
 static inline unsigned long long get_tod_clock_monotonic(void)
 {
-	return get_tod_clock() - *(unsigned long long *) &tod_clock_base[1];
+	unsigned long long tod;
+
+	preempt_disable_notrace();
+	tod = get_tod_clock() - *(unsigned long long *) &tod_clock_base[1];
+	preempt_enable_notrace();
+	return tod;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/topology.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/topology.h
@@ -68,11 +68,8 @@
 
 #ifdef CONFIG_NUMA
 
-#define cpu_to_node cpu_to_node
-static inline int cpu_to_node(int cpu)
-{
-	return cpu_topology[cpu].node_id;
-}
+extern int __cpu_to_node(int cpu);
+#define cpu_to_node __cpu_to_node
 
 /* Returns a pointer to the cpumask of CPUs on node 'node'. */
 #define cpumask_of_node cpumask_of_node
@@ -83,8 +80,6 @@
 
 #define pcibus_to_node(bus) __pcibus_to_node(bus)
 
-#define node_distance(a, b) __node_distance(a, b)
-
 #else /* !CONFIG_NUMA */
 
 #define numa_node_id numa_node_id
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/uaccess.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/uaccess.h
@@ -276,6 +276,6 @@
 }
 
 int copy_to_user_real(void __user *dest, void *src, unsigned long count);
-void s390_kernel_write(void *dst, const void *src, size_t size);
+void *s390_kernel_write(void *dst, const void *src, size_t size);
 
 #endif /* __S390_UACCESS_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/uv.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/uv.h
@@ -14,23 +14,62 @@
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/bug.h>
+#include <linux/sched.h>
 #include <asm/page.h>
+#include <asm/gmap.h>
 
 #define UVC_RC_EXECUTED		0x0001
 #define UVC_RC_INV_CMD		0x0002
 #define UVC_RC_INV_STATE	0x0003
 #define UVC_RC_INV_LEN		0x0005
 #define UVC_RC_NO_RESUME	0x0007
+#define UVC_RC_NEED_DESTROY	0x8000
 
 #define UVC_CMD_QUI			0x0001
+#define UVC_CMD_INIT_UV			0x000f
+#define UVC_CMD_CREATE_SEC_CONF		0x0100
+#define UVC_CMD_DESTROY_SEC_CONF	0x0101
+#define UVC_CMD_CREATE_SEC_CPU		0x0120
+#define UVC_CMD_DESTROY_SEC_CPU		0x0121
+#define UVC_CMD_CONV_TO_SEC_STOR	0x0200
+#define UVC_CMD_CONV_FROM_SEC_STOR	0x0201
+#define UVC_CMD_SET_SEC_CONF_PARAMS	0x0300
+#define UVC_CMD_UNPACK_IMG		0x0301
+#define UVC_CMD_VERIFY_IMG		0x0302
+#define UVC_CMD_CPU_RESET		0x0310
+#define UVC_CMD_CPU_RESET_INITIAL	0x0311
+#define UVC_CMD_PREPARE_RESET		0x0320
+#define UVC_CMD_CPU_RESET_CLEAR		0x0321
+#define UVC_CMD_CPU_SET_STATE		0x0330
+#define UVC_CMD_SET_UNSHARE_ALL		0x0340
+#define UVC_CMD_PIN_PAGE_SHARED		0x0341
+#define UVC_CMD_UNPIN_PAGE_SHARED	0x0342
 #define UVC_CMD_SET_SHARED_ACCESS	0x1000
 #define UVC_CMD_REMOVE_SHARED_ACCESS	0x1001
 
 /* Bits in installed uv calls */
 enum uv_cmds_inst {
 	BIT_UVC_CMD_QUI = 0,
+	BIT_UVC_CMD_INIT_UV = 1,
+	BIT_UVC_CMD_CREATE_SEC_CONF = 2,
+	BIT_UVC_CMD_DESTROY_SEC_CONF = 3,
+	BIT_UVC_CMD_CREATE_SEC_CPU = 4,
+	BIT_UVC_CMD_DESTROY_SEC_CPU = 5,
+	BIT_UVC_CMD_CONV_TO_SEC_STOR = 6,
+	BIT_UVC_CMD_CONV_FROM_SEC_STOR = 7,
 	BIT_UVC_CMD_SET_SHARED_ACCESS = 8,
 	BIT_UVC_CMD_REMOVE_SHARED_ACCESS = 9,
+	BIT_UVC_CMD_SET_SEC_PARMS = 11,
+	BIT_UVC_CMD_UNPACK_IMG = 13,
+	BIT_UVC_CMD_VERIFY_IMG = 14,
+	BIT_UVC_CMD_CPU_RESET = 15,
+	BIT_UVC_CMD_CPU_RESET_INITIAL = 16,
+	BIT_UVC_CMD_CPU_SET_STATE = 17,
+	BIT_UVC_CMD_PREPARE_RESET = 18,
+	BIT_UVC_CMD_CPU_PERFORM_CLEAR_RESET = 19,
+	BIT_UVC_CMD_UNSHARE_ALL = 20,
+	BIT_UVC_CMD_PIN_PAGE_SHARED = 21,
+	BIT_UVC_CMD_UNPIN_PAGE_SHARED = 22,
 };
 
 struct uv_cb_header {
@@ -40,13 +79,127 @@
 	u16 rrc;	/* Return Reason Code */
 } __packed __aligned(8);
 
+/* Query Ultravisor Information */
 struct uv_cb_qui {
 	struct uv_cb_header header;
 	u64 reserved08;
 	u64 inst_calls_list[4];
-	u64 reserved30[15];
+	u64 reserved30[2];
+	u64 uv_base_stor_len;
+	u64 reserved48;
+	u64 conf_base_phys_stor_len;
+	u64 conf_base_virt_stor_len;
+	u64 conf_virt_var_stor_len;
+	u64 cpu_stor_len;
+	u32 reserved70[3];
+	u32 max_num_sec_conf;
+	u64 max_guest_stor_addr;
+	u8  reserved88[158 - 136];
+	u16 max_guest_cpus;
+	u8  reserveda0[200 - 160];
 } __packed __aligned(8);
 
+/* Initialize Ultravisor */
+struct uv_cb_init {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 stor_origin;
+	u64 stor_len;
+	u64 reserved28[4];
+} __packed __aligned(8);
+
+/* Create Guest Configuration */
+struct uv_cb_cgc {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 conf_base_stor_origin;
+	u64 conf_virt_stor_origin;
+	u64 reserved30;
+	u64 guest_stor_origin;
+	u64 guest_stor_len;
+	u64 guest_sca;
+	u64 guest_asce;
+	u64 reserved58[5];
+} __packed __aligned(8);
+
+/* Create Secure CPU */
+struct uv_cb_csc {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 cpu_handle;
+	u64 guest_handle;
+	u64 stor_origin;
+	u8  reserved30[6];
+	u16 num;
+	u64 state_origin;
+	u64 reserved40[4];
+} __packed __aligned(8);
+
+/* Convert to Secure */
+struct uv_cb_cts {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 gaddr;
+} __packed __aligned(8);
+
+/* Convert from Secure / Pin Page Shared */
+struct uv_cb_cfs {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 paddr;
+} __packed __aligned(8);
+
+/* Set Secure Config Parameter */
+struct uv_cb_ssc {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 sec_header_origin;
+	u32 sec_header_len;
+	u32 reserved2c;
+	u64 reserved30[4];
+} __packed __aligned(8);
+
+/* Unpack */
+struct uv_cb_unp {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 gaddr;
+	u64 tweak[2];
+	u64 reserved38[3];
+} __packed __aligned(8);
+
+#define PV_CPU_STATE_OPR	1
+#define PV_CPU_STATE_STP	2
+#define PV_CPU_STATE_CHKSTP	3
+#define PV_CPU_STATE_OPR_LOAD	5
+
+struct uv_cb_cpu_set_state {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 cpu_handle;
+	u8  reserved20[7];
+	u8  state;
+	u64 reserved28[5];
+};
+
+/*
+ * A common UV call struct for calls that take no payload
+ * Examples:
+ * Destroy cpu/config
+ * Verify
+ */
+struct uv_cb_nodata {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 handle;
+	u64 reserved20[4];
+} __packed __aligned(8);
+
+/* Set Shared Access */
 struct uv_cb_share {
 	struct uv_cb_header header;
 	u64 reserved08[3];
@@ -54,21 +207,76 @@
 	u64 reserved28;
 } __packed __aligned(8);
 
-static inline int uv_call(unsigned long r1, unsigned long r2)
+static inline int __uv_call(unsigned long r1, unsigned long r2)
 {
 	int cc;
 
 	asm volatile(
-		"0:	.insn rrf,0xB9A40000,%[r1],%[r2],0,0\n"
-		"		brc	3,0b\n"
-		"		ipm	%[cc]\n"
-		"		srl	%[cc],28\n"
+		"	.insn rrf,0xB9A40000,%[r1],%[r2],0,0\n"
+		"	ipm	%[cc]\n"
+		"	srl	%[cc],28\n"
 		: [cc] "=d" (cc)
 		: [r1] "a" (r1), [r2] "a" (r2)
 		: "memory", "cc");
 	return cc;
 }
 
+static inline int uv_call(unsigned long r1, unsigned long r2)
+{
+	int cc;
+
+	do {
+		cc = __uv_call(r1, r2);
+	} while (cc > 1);
+	return cc;
+}
+
+/* Low level uv_call that avoids stalls for long running busy conditions  */
+static inline int uv_call_sched(unsigned long r1, unsigned long r2)
+{
+	int cc;
+
+	do {
+		cc = __uv_call(r1, r2);
+		cond_resched();
+	} while (cc > 1);
+	return cc;
+}
+
+/*
+ * special variant of uv_call that only transports the cpu or guest
+ * handle and the command, like destroy or verify.
+ */
+static inline int uv_cmd_nodata(u64 handle, u16 cmd, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_nodata uvcb = {
+		.header.cmd = cmd,
+		.header.len = sizeof(uvcb),
+		.handle = handle,
+	};
+	int cc;
+
+	WARN(!handle, "No handle provided to Ultravisor call cmd %x\n", cmd);
+	cc = uv_call_sched(0, (u64)&uvcb);
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	return cc ? -EINVAL : 0;
+}
+
+struct uv_info {
+	unsigned long inst_calls_list[4];
+	unsigned long uv_base_stor_len;
+	unsigned long guest_base_stor_len;
+	unsigned long guest_virt_base_stor_len;
+	unsigned long guest_virt_var_stor_len;
+	unsigned long guest_cpu_stor_len;
+	unsigned long max_sec_stor_addr;
+	unsigned int max_num_sec_conf;
+	unsigned short max_guest_cpus;
+};
+
+extern struct uv_info uv_info;
+
 #ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
 extern int prot_virt_guest;
 
@@ -121,11 +329,40 @@
 	return share(addr, UVC_CMD_REMOVE_SHARED_ACCESS);
 }
 
-void uv_query_info(void);
 #else
 #define is_prot_virt_guest() 0
 static inline int uv_set_shared(unsigned long addr) { return 0; }
 static inline int uv_remove_shared(unsigned long addr) { return 0; }
+#endif
+
+#if IS_ENABLED(CONFIG_KVM)
+extern int prot_virt_host;
+
+static inline int is_prot_virt_host(void)
+{
+	return prot_virt_host;
+}
+
+int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb);
+int uv_convert_from_secure(unsigned long paddr);
+int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr);
+
+void setup_uv(void);
+void adjust_to_uv_max(unsigned long *vmax);
+#else
+#define is_prot_virt_host() 0
+static inline void setup_uv(void) {}
+static inline void adjust_to_uv_max(unsigned long *vmax) {}
+
+static inline int uv_convert_from_secure(unsigned long paddr)
+{
+	return 0;
+}
+#endif
+
+#if defined(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) || IS_ENABLED(CONFIG_KVM)
+void uv_query_info(void);
+#else
 static inline void uv_query_info(void) {}
 #endif
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/asm/vdso.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/asm/vdso.h
@@ -36,6 +36,7 @@
 	__u32 tk_shift;			/* Shift used for xtime_nsec	0x60 */
 	__u32 ts_dir;			/* TOD steering direction	0x64 */
 	__u64 ts_end;			/* TOD steering end		0x68 */
+	__u32 hrtimer_res;		/* hrtimer resolution		0x70 */
 };
 
 struct vdso_per_cpu_data {
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/uapi/asm/ipl.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/uapi/asm/ipl.h
@@ -27,6 +27,7 @@
 	IPL_PBT_FCP = 0,
 	IPL_PBT_SCP_DATA = 1,
 	IPL_PBT_CCW = 2,
+	IPL_PBT_NVME = 4,
 };
 
 /* IPL Parameter Block 0 with common fields */
@@ -67,6 +68,30 @@
 #define IPL_PB0_FCP_OPT_IPL	0x10
 #define IPL_PB0_FCP_OPT_DUMP	0x20
 
+/* IPL Parameter Block 0 for NVMe */
+struct ipl_pb0_nvme {
+	__u32 len;
+	__u8  pbt;
+	__u8  reserved1[3];
+	__u8  loadparm[8];
+	__u8  reserved2[304];
+	__u8  opt;
+	__u8  reserved3[3];
+	__u32 fid;
+	__u8 reserved4[12];
+	__u32 nsid;
+	__u8 reserved5[4];
+	__u32 bootprog;
+	__u8 reserved6[12];
+	__u64 br_lba;
+	__u32 scp_data_len;
+	__u8  reserved7[260];
+	__u8  scp_data[];
+} __packed;
+
+#define IPL_PB0_NVME_OPT_IPL	0x10
+#define IPL_PB0_NVME_OPT_DUMP	0x20
+
 /* IPL Parameter Block 0 for CCW */
 struct ipl_pb0_ccw {
 	__u32 len;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/uapi/asm/pkey.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/uapi/asm/pkey.h
@@ -25,10 +25,11 @@
 #define MAXPROTKEYSIZE	64	/* a protected key blob may be up to 64 bytes */
 #define MAXCLRKEYSIZE	32	   /* a clear key value may be up to 32 bytes */
 #define MAXAESCIPHERKEYSIZE 136  /* our aes cipher keys have always 136 bytes */
+#define MINEP11AESKEYBLOBSIZE 256  /* min EP11 AES key blob size  */
+#define MAXEP11AESKEYBLOBSIZE 320  /* max EP11 AES key blob size */
 
-/* Minimum and maximum size of a key blob */
+/* Minimum size of a key blob */
 #define MINKEYBLOBSIZE	SECKEYBLOBSIZE
-#define MAXKEYBLOBSIZE	MAXAESCIPHERKEYSIZE
 
 /* defines for the type field within the pkey_protkey struct */
 #define PKEY_KEYTYPE_AES_128		      1
@@ -39,6 +40,7 @@
 enum pkey_key_type {
 	PKEY_TYPE_CCA_DATA   = (__u32) 1,
 	PKEY_TYPE_CCA_CIPHER = (__u32) 2,
+	PKEY_TYPE_EP11	     = (__u32) 3,
 };
 
 /* the newer ioctls use a pkey_key_size enum for key size information */
@@ -200,7 +202,7 @@
 
 /*
  * Generate secure key, version 2.
- * Generate either a CCA AES secure key or a CCA AES cipher key.
+ * Generate CCA AES secure key, CCA AES cipher key or EP11 AES secure key.
  * There needs to be a list of apqns given with at least one entry in there.
  * All apqns in the list need to be exact apqns, 0xFFFF as ANY card or domain
  * is not supported. The implementation walks through the list of apqns and
@@ -210,10 +212,13 @@
  * (return -1 with errno ENODEV). You may use the PKEY_APQNS4KT ioctl to
  * generate a list of apqns based on the key type to generate.
  * The keygenflags argument is passed to the low level generation functions
- * individual for the key type and has a key type specific meaning. Currently
- * only CCA AES cipher keys react to this parameter: Use one or more of the
- * PKEY_KEYGEN_* flags to widen the export possibilities. By default a cipher
- * key is only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * individual for the key type and has a key type specific meaning. When
+ * generating CCA cipher keys you can use one or more of the PKEY_KEYGEN_*
+ * flags to widen the export possibilities. By default a cipher key is
+ * only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * The keygenflag argument for generating an EP11 AES key should either be 0
+ * to use the defaults which are XCP_BLOB_ENCRYPT, XCP_BLOB_DECRYPT and
+ * XCP_BLOB_PROTKEY_EXTRACTABLE or a valid combination of XCP_BLOB_* flags.
  */
 struct pkey_genseck2 {
 	struct pkey_apqn __user *apqns; /* in: ptr to list of apqn targets*/
@@ -229,8 +234,8 @@
 
 /*
  * Generate secure key from clear key value, version 2.
- * Construct a CCA AES secure key or CCA AES cipher key from a given clear key
- * value.
+ * Construct an CCA AES secure key, CCA AES cipher key or EP11 AES secure
+ * key from a given clear key value.
  * There needs to be a list of apqns given with at least one entry in there.
  * All apqns in the list need to be exact apqns, 0xFFFF as ANY card or domain
  * is not supported. The implementation walks through the list of apqns and
@@ -240,10 +245,13 @@
  * (return -1 with errno ENODEV). You may use the PKEY_APQNS4KT ioctl to
  * generate a list of apqns based on the key type to generate.
  * The keygenflags argument is passed to the low level generation functions
- * individual for the key type and has a key type specific meaning. Currently
- * only CCA AES cipher keys react to this parameter: Use one or more of the
- * PKEY_KEYGEN_* flags to widen the export possibilities. By default a cipher
- * key is only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * individual for the key type and has a key type specific meaning. When
+ * generating CCA cipher keys you can use one or more of the PKEY_KEYGEN_*
+ * flags to widen the export possibilities. By default a cipher key is
+ * only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * The keygenflag argument for generating an EP11 AES key should either be 0
+ * to use the defaults which are XCP_BLOB_ENCRYPT, XCP_BLOB_DECRYPT and
+ * XCP_BLOB_PROTKEY_EXTRACTABLE or a valid combination of XCP_BLOB_* flags.
  */
 struct pkey_clr2seck2 {
 	struct pkey_apqn __user *apqns; /* in: ptr to list of apqn targets */
@@ -266,14 +274,19 @@
  * with one apqn able to handle this key.
  * The function also checks for the master key verification patterns
  * of the key matching to the current or alternate mkvp of the apqn.
- * Currently CCA AES secure keys and CCA AES cipher keys are supported.
- * The flags field is updated with some additional info about the apqn mkvp
+ * For CCA AES secure keys and CCA AES cipher keys this means to check
+ * the key's mkvp against the current or old mkvp of the apqns. The flags
+ * field is updated with some additional info about the apqn mkvp
  * match: If the current mkvp matches to the key's mkvp then the
  * PKEY_FLAGS_MATCH_CUR_MKVP bit is set, if the alternate mkvp matches to
  * the key's mkvp the PKEY_FLAGS_MATCH_ALT_MKVP is set. For CCA keys the
  * alternate mkvp is the old master key verification pattern.
  * CCA AES secure keys are also checked to have the CPACF export allowed
  * bit enabled (XPRTCPAC) in the kmf1 field.
+ * EP11 keys are also supported and the wkvp of the key is checked against
+ * the current wkvp of the apqns. There is no alternate for this type of
+ * key and so on a match the flag PKEY_FLAGS_MATCH_CUR_MKVP always is set.
+ * EP11 keys are also checked to have XCP_BLOB_PROTKEY_EXTRACTABLE set.
  * The ioctl returns 0 as long as the given or found apqn matches to
  * matches with the current or alternate mkvp to the key's mkvp. If the given
  * apqn does not match or there is no such apqn found, -1 with errno
@@ -313,16 +326,20 @@
 /*
  * Build a list of APQNs based on a key blob given.
  * Is able to find out which type of secure key is given (CCA AES secure
- * key or CCA AES cipher key) and tries to find all matching crypto cards
- * based on the MKVP and maybe other criterias (like CCA AES cipher keys
- * need a CEX5C or higher). The list of APQNs is further filtered by the key's
- * mkvp which needs to match to either the current mkvp or the alternate mkvp
- * (which is the old mkvp on CCA adapters) of the apqns. The flags argument may
- * be used to limit the matching apqns. If the PKEY_FLAGS_MATCH_CUR_MKVP is
- * given, only the current mkvp of each apqn is compared. Likewise with the
- * PKEY_FLAGS_MATCH_ALT_MKVP. If both are given, it is assumed to
- * return apqns where either the current or the alternate mkvp
+ * key, CCA AES cipher key or EP11 AES key) and tries to find all matching
+ * crypto cards based on the MKVP and maybe other criterias (like CCA AES
+ * cipher keys need a CEX5C or higher, EP11 keys with BLOB_PKEY_EXTRACTABLE
+ * need a CEX7 and EP11 api version 4). The list of APQNs is further filtered
+ * by the key's mkvp which needs to match to either the current mkvp (CCA and
+ * EP11) or the alternate mkvp (old mkvp, CCA adapters only) of the apqns. The
+ * flags argument may be used to limit the matching apqns. If the
+ * PKEY_FLAGS_MATCH_CUR_MKVP is given, only the current mkvp of each apqn is
+ * compared. Likewise with the PKEY_FLAGS_MATCH_ALT_MKVP. If both are given, it
+ * is assumed to return apqns where either the current or the alternate mkvp
  * matches. At least one of the matching flags needs to be given.
+ * The flags argument for EP11 keys has no further action and is currently
+ * ignored (but needs to be given as PKEY_FLAGS_MATCH_CUR_MKVP) as there is only
+ * the wkvp from the key to match against the apqn's wkvp.
  * The list of matching apqns is stored into the space given by the apqns
  * argument and the number of stored entries goes into apqn_entries. If the list
  * is empty (apqn_entries is 0) the apqn_entries field is updated to the number
@@ -356,6 +373,10 @@
  * If both are given, it is assumed to return apqns where either the
  * current or the alternate mkvp matches. If no match flag is given
  * (flags is 0) the mkvp values are ignored for the match process.
+ * For EP11 keys there is only the current wkvp. So if the apqns should also
+ * match to a given wkvp, then the PKEY_FLAGS_MATCH_CUR_MKVP flag should be
+ * set. The wkvp value is 32 bytes but only the leftmost 16 bytes are compared
+ * against the leftmost 16 byte of the wkvp of the apqn.
  * The list of matching apqns is stored into the space given by the apqns
  * argument and the number of stored entries goes into apqn_entries. If the list
  * is empty (apqn_entries is 0) the apqn_entries field is updated to the number
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/include/uapi/asm/zcrypt.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/include/uapi/asm/zcrypt.h
@@ -161,17 +161,17 @@
  * @payload_len:	Payload length
  */
 struct ep11_cprb {
-	__u16		cprb_len;
-	unsigned char	cprb_ver_id;
-	unsigned char	pad_000[2];
-	unsigned char	flags;
-	unsigned char	func_id[2];
-	__u32		source_id;
-	__u32		target_id;
-	__u32		ret_code;
-	__u32		reserved1;
-	__u32		reserved2;
-	__u32		payload_len;
+	__u16	cprb_len;
+	__u8	cprb_ver_id;
+	__u8	pad_000[2];
+	__u8	flags;
+	__u8	func_id[2];
+	__u32	source_id;
+	__u32	target_id;
+	__u32	ret_code;
+	__u32	reserved1;
+	__u32	reserved2;
+	__u32	payload_len;
 } __attribute__((packed));
 
 /**
@@ -197,13 +197,13 @@
  */
 struct ep11_urb {
 	__u16		targets_num;
-	__u64		targets;
+	__u8 __user    *targets;
 	__u64		weight;
 	__u64		req_no;
 	__u64		req_len;
-	__u64		req;
+	__u8 __user    *req;
 	__u64		resp_len;
-	__u64		resp;
+	__u8 __user    *resp;
 } __attribute__((packed));
 
 /**
@@ -237,7 +237,9 @@
 	struct zcrypt_device_status_ext device[MAX_ZDEV_ENTRIES_EXT];
 };
 
-#define AUTOSELECT 0xFFFFFFFF
+#define AUTOSELECT  0xFFFFFFFF
+#define AUTOSEL_AP  ((__u16) 0xFFFF)
+#define AUTOSEL_DOM ((__u16) 0xFFFF)
 
 #define ZCRYPT_IOCTL_MAGIC 'z'
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/Makefile
@@ -78,7 +78,11 @@
 obj-$(CONFIG_PERF_EVENTS)	+= perf_cpum_cf_diag.o
 
 obj-$(CONFIG_TRACEPOINTS)	+= trace.o
+obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE))	+= uv.o
 
 # vdso
 obj-y				+= vdso64/
 obj-$(CONFIG_COMPAT_VDSO)	+= vdso32/
+
+# kernel message catalog
+obj-$(CONFIG_KMSG_IDS)		+= kmsg.o
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/asm-offsets.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/asm-offsets.c
@@ -76,6 +76,7 @@
 	OFFSET(__VDSO_TK_SHIFT, vdso_data, tk_shift);
 	OFFSET(__VDSO_TS_DIR, vdso_data, ts_dir);
 	OFFSET(__VDSO_TS_END, vdso_data, ts_end);
+	OFFSET(__VDSO_CLOCK_REALTIME_RES, vdso_data, hrtimer_res);
 	OFFSET(__VDSO_ECTG_BASE, vdso_per_cpu_data, ectg_timer_base);
 	OFFSET(__VDSO_ECTG_USER, vdso_per_cpu_data, ectg_user_time);
 	OFFSET(__VDSO_CPU_NR, vdso_per_cpu_data, cpu_nr);
@@ -87,7 +88,6 @@
 	DEFINE(__CLOCK_REALTIME_COARSE, CLOCK_REALTIME_COARSE);
 	DEFINE(__CLOCK_MONOTONIC_COARSE, CLOCK_MONOTONIC_COARSE);
 	DEFINE(__CLOCK_THREAD_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID);
-	DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
 	DEFINE(__CLOCK_COARSE_RES, LOW_RES_NSEC);
 	BLANK();
 	/* idle data offsets */
@@ -125,6 +125,8 @@
 	OFFSET(__LC_EXT_DAMAGE_CODE, lowcore, external_damage_code);
 	OFFSET(__LC_MCCK_FAIL_STOR_ADDR, lowcore, failing_storage_address);
 	OFFSET(__LC_LAST_BREAK, lowcore, breaking_event_addr);
+	OFFSET(__LC_RETURN_LPSWE, lowcore, return_lpswe);
+	OFFSET(__LC_RETURN_MCCK_LPSWE, lowcore, return_mcck_lpswe);
 	OFFSET(__LC_RST_OLD_PSW, lowcore, restart_old_psw);
 	OFFSET(__LC_EXT_OLD_PSW, lowcore, external_old_psw);
 	OFFSET(__LC_SVC_OLD_PSW, lowcore, svc_old_psw);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/debug.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/debug.c
@@ -198,9 +198,10 @@
 	if (!areas)
 		goto fail_malloc_areas;
 	for (i = 0; i < nr_areas; i++) {
+		/* GFP_NOWARN to avoid user triggerable WARN, we handle fails */
 		areas[i] = kmalloc_array(pages_per_area,
 					 sizeof(debug_entry_t *),
-					 GFP_KERNEL);
+					 GFP_KERNEL | __GFP_NOWARN);
 		if (!areas[i])
 			goto fail_malloc_areas2;
 		for (j = 0; j < pages_per_area; j++) {
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/diag.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/diag.c
@@ -84,7 +84,7 @@
 
 static void *show_diag_stat_start(struct seq_file *m, loff_t *pos)
 {
-	return *pos <= nr_cpu_ids ? (void *)((unsigned long) *pos + 1) : NULL;
+	return *pos <= NR_DIAG_STAT ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 
 static void *show_diag_stat_next(struct seq_file *m, void *v, loff_t *pos)
@@ -133,7 +133,7 @@
 }
 EXPORT_SYMBOL(diag_stat_inc);
 
-void diag_stat_inc_norecursion(enum diag_stat_enum nr)
+void notrace diag_stat_inc_norecursion(enum diag_stat_enum nr)
 {
 	this_cpu_inc(diag_stat.counter[nr]);
 	trace_s390_diagnose_norecursion(diag_map[nr].code);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/dis.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/dis.c
@@ -461,10 +461,11 @@
 				ptr += sprintf(ptr, "%%c%i", value);
 			else if (operand->flags & OPERAND_VR)
 				ptr += sprintf(ptr, "%%v%i", value);
-			else if (operand->flags & OPERAND_PCREL)
-				ptr += sprintf(ptr, "%lx", (signed int) value
-								      + addr);
-			else if (operand->flags & OPERAND_SIGNED)
+			else if (operand->flags & OPERAND_PCREL) {
+				void *pcrel = (void *)((int)value + addr);
+
+				ptr += sprintf(ptr, "%px", pcrel);
+			} else if (operand->flags & OPERAND_SIGNED)
 				ptr += sprintf(ptr, "%i", value);
 			else
 				ptr += sprintf(ptr, "%u", value);
@@ -536,7 +537,7 @@
 		else
 			*ptr++ = ' ';
 		addr = regs->psw.addr + start - 32;
-		ptr += sprintf(ptr, "%016lx: ", addr);
+		ptr += sprintf(ptr, "%px: ", (void *)addr);
 		if (start + opsize >= end)
 			break;
 		for (i = 0; i < opsize; i++)
@@ -564,7 +565,7 @@
 		opsize = insn_length(*code);
 		if (opsize > len)
 			break;
-		ptr += sprintf(ptr, "%p: ", code);
+		ptr += sprintf(ptr, "%px: ", code);
 		for (i = 0; i < opsize; i++)
 			ptr += sprintf(ptr, "%02x", code[i]);
 		*ptr++ = '\t';
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/early.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/early.c
@@ -169,6 +169,8 @@
 	psw_t psw;
 
 	psw.mask = PSW_MASK_BASE | PSW_DEFAULT_KEY | PSW_MASK_EA | PSW_MASK_BA;
+	if (IS_ENABLED(CONFIG_KASAN))
+		psw.mask |= PSW_MASK_DAT;
 	psw.addr = (unsigned long) s390_base_ext_handler;
 	S390_lowcore.external_new_psw = psw;
 	psw.addr = (unsigned long) s390_base_pgm_handler;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/entry.S
@@ -115,26 +115,29 @@
 
 	.macro	SWITCH_ASYNC savearea,timer
 	tmhh	%r8,0x0001		# interrupting from user ?
-	jnz	1f
+	jnz	2f
 	lgr	%r14,%r9
+	cghi	%r14,__LC_RETURN_LPSWE
+	je	0f
 	slg	%r14,BASED(.Lcritical_start)
 	clg	%r14,BASED(.Lcritical_length)
-	jhe	0f
+	jhe	1f
+0:
 	lghi	%r11,\savearea		# inside critical section, do cleanup
 	brasl	%r14,cleanup_critical
 	tmhh	%r8,0x0001		# retest problem state after cleanup
-	jnz	1f
-0:	lg	%r14,__LC_ASYNC_STACK	# are we already on the target stack?
+	jnz	2f
+1:	lg	%r14,__LC_ASYNC_STACK	# are we already on the target stack?
 	slgr	%r14,%r15
 	srag	%r14,%r14,STACK_SHIFT
-	jnz	2f
+	jnz	3f
 	CHECK_STACK \savearea
 	aghi	%r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
-	j	3f
-1:	UPDATE_VTIME %r14,%r15,\timer
+	j	4f
+2:	UPDATE_VTIME %r14,%r15,\timer
 	BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
-2:	lg	%r15,__LC_ASYNC_STACK	# load async stack
-3:	la	%r11,STACK_FRAME_OVERHEAD(%r15)
+3:	lg	%r15,__LC_ASYNC_STACK	# load async stack
+4:	la	%r11,STACK_FRAME_OVERHEAD(%r15)
 	.endm
 
 	.macro UPDATE_VTIME w1,w2,enter_timer
@@ -365,9 +368,9 @@
 	jnz	.Lsysc_nr_ok
 	# svc 0: system call number in %r1
 	llgfr	%r1,%r1				# clear high word in r1
+	sth	%r1,__PT_INT_CODE+2(%r11)
 	cghi	%r1,NR_syscalls
 	jnl	.Lsysc_nr_ok
-	sth	%r1,__PT_INT_CODE+2(%r11)
 	slag	%r8,%r1,3
 .Lsysc_nr_ok:
 	xc	__SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
@@ -401,7 +404,7 @@
 	stpt	__LC_EXIT_TIMER
 	mvc	__VDSO_ECTG_BASE(16,%r14),__LC_EXIT_TIMER
 	lmg	%r11,%r15,__PT_R11(%r11)
-	lpswe	__LC_RETURN_PSW
+	b	__LC_RETURN_LPSWE(%r0)
 .Lsysc_done:
 
 #
@@ -608,43 +611,50 @@
 	BPOFF
 	stmg	%r8,%r15,__LC_SAVE_AREA_SYNC
 	lg	%r10,__LC_LAST_BREAK
-	lg	%r12,__LC_CURRENT
+	srag	%r11,%r10,12
+	jnz	0f
+	/* if __LC_LAST_BREAK is < 4096, it contains one of
+	 * the lpswe addresses in lowcore. Set it to 1 (initial state)
+	 * to prevent leaking that address to userspace.
+	 */
+	lghi	%r10,1
+0:	lg	%r12,__LC_CURRENT
 	lghi	%r11,0
 	larl	%r13,cleanup_critical
 	lmg	%r8,%r9,__LC_PGM_OLD_PSW
 	tmhh	%r8,0x0001		# test problem state bit
-	jnz	2f			# -> fault in user space
+	jnz	3f			# -> fault in user space
 #if IS_ENABLED(CONFIG_KVM)
 	# cleanup critical section for program checks in sie64a
 	lgr	%r14,%r9
 	slg	%r14,BASED(.Lsie_critical_start)
 	clg	%r14,BASED(.Lsie_critical_length)
-	jhe	0f
+	jhe	1f
 	lg	%r14,__SF_SIE_CONTROL(%r15)	# get control block pointer
 	ni	__SIE_PROG0C+3(%r14),0xfe	# no longer in SIE
 	lctlg	%c1,%c1,__LC_USER_ASCE		# load primary asce
 	larl	%r9,sie_exit			# skip forward to sie_exit
 	lghi	%r11,_PIF_GUEST_FAULT
 #endif
-0:	tmhh	%r8,0x4000		# PER bit set in old PSW ?
-	jnz	1f			# -> enabled, can't be a double fault
+1:	tmhh	%r8,0x4000		# PER bit set in old PSW ?
+	jnz	2f			# -> enabled, can't be a double fault
 	tm	__LC_PGM_ILC+3,0x80	# check for per exception
 	jnz	.Lpgm_svcper		# -> single stepped svc
-1:	CHECK_STACK __LC_SAVE_AREA_SYNC
+2:	CHECK_STACK __LC_SAVE_AREA_SYNC
 	aghi	%r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
-	# CHECK_VMAP_STACK branches to stack_overflow or 4f
-	CHECK_VMAP_STACK __LC_SAVE_AREA_SYNC,4f
-2:	UPDATE_VTIME %r14,%r15,__LC_SYNC_ENTER_TIMER
+	# CHECK_VMAP_STACK branches to stack_overflow or 5f
+	CHECK_VMAP_STACK __LC_SAVE_AREA_SYNC,5f
+3:	UPDATE_VTIME %r14,%r15,__LC_SYNC_ENTER_TIMER
 	BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
 	lg	%r15,__LC_KERNEL_STACK
 	lgr	%r14,%r12
 	aghi	%r14,__TASK_thread	# pointer to thread_struct
 	lghi	%r13,__LC_PGM_TDB
 	tm	__LC_PGM_ILC+2,0x02	# check for transaction abort
-	jz	3f
+	jz	4f
 	mvc	__THREAD_trap_tdb(256,%r14),0(%r13)
-3:	stg	%r10,__THREAD_last_break(%r14)
-4:	lgr	%r13,%r11
+4:	stg	%r10,__THREAD_last_break(%r14)
+5:	lgr	%r13,%r11
 	la	%r11,STACK_FRAME_OVERHEAD(%r15)
 	stmg	%r0,%r7,__PT_R0(%r11)
 	# clear user controlled registers to prevent speculative use
@@ -663,14 +673,14 @@
 	stg	%r13,__PT_FLAGS(%r11)
 	stg	%r10,__PT_ARGS(%r11)
 	tm	__LC_PGM_ILC+3,0x80	# check for per exception
-	jz	5f
+	jz	6f
 	tmhh	%r8,0x0001		# kernel per event ?
 	jz	.Lpgm_kprobe
 	oi	__PT_FLAGS+7(%r11),_PIF_PER_TRAP
 	mvc	__THREAD_per_address(8,%r14),__LC_PER_ADDRESS
 	mvc	__THREAD_per_cause(2,%r14),__LC_PER_CODE
 	mvc	__THREAD_per_paid(1,%r14),__LC_PER_ACCESS_ID
-5:	REENABLE_IRQS
+6:	REENABLE_IRQS
 	xc	__SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
 	larl	%r1,pgm_check_table
 	llgh	%r10,__PT_INT_CODE+2(%r11)
@@ -775,7 +785,7 @@
 	mvc	__VDSO_ECTG_BASE(16,%r14),__LC_EXIT_TIMER
 .Lio_exit_kernel:
 	lmg	%r11,%r15,__PT_R11(%r11)
-	lpswe	__LC_RETURN_PSW
+	b	__LC_RETURN_LPSWE(%r0)
 .Lio_done:
 
 #
@@ -1214,7 +1224,7 @@
 	stpt	__LC_EXIT_TIMER
 	mvc	__VDSO_ECTG_BASE(16,%r14),__LC_EXIT_TIMER
 0:	lmg	%r11,%r15,__PT_R11(%r11)
-	lpswe	__LC_RETURN_MCCK_PSW
+	b	__LC_RETURN_MCCK_LPSWE
 
 .Lmcck_panic:
 	lg	%r15,__LC_NODAT_STACK
@@ -1271,6 +1281,8 @@
 #endif
 
 ENTRY(cleanup_critical)
+	cghi	%r9,__LC_RETURN_LPSWE
+	je	.Lcleanup_lpswe
 #if IS_ENABLED(CONFIG_KVM)
 	clg	%r9,BASED(.Lcleanup_table_sie)	# .Lsie_gmap
 	jl	0f
@@ -1424,6 +1436,7 @@
 	mvc	__LC_RETURN_PSW(16),__PT_PSW(%r9)
 	mvc	0(64,%r11),__PT_R8(%r9)
 	lmg	%r0,%r7,__PT_R0(%r9)
+.Lcleanup_lpswe:
 1:	lmg	%r8,%r9,__LC_RETURN_PSW
 	BR_EX	%r14,%r11
 .Lcleanup_sysc_restore_insn:
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/entry.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/entry.h
@@ -24,6 +24,8 @@
 
 void do_protection_exception(struct pt_regs *regs);
 void do_dat_exception(struct pt_regs *regs);
+void do_secure_storage_access(struct pt_regs *regs);
+void do_non_secure_storage_access(struct pt_regs *regs);
 
 void addressing_exception(struct pt_regs *regs);
 void data_exception(struct pt_regs *regs);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/ftrace.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/ftrace.c
@@ -72,15 +72,6 @@
 #endif
 }
 
-static inline int is_kprobe_on_ftrace(struct ftrace_insn *insn)
-{
-#ifdef CONFIG_KPROBES
-	if (insn->opc == BREAKPOINT_INSTRUCTION)
-		return 1;
-#endif
-	return 0;
-}
-
 static inline void ftrace_generate_kprobe_nop_insn(struct ftrace_insn *insn)
 {
 #ifdef CONFIG_KPROBES
@@ -114,16 +105,6 @@
 		/* Initial code replacement */
 		ftrace_generate_orig_insn(&orig);
 		ftrace_generate_nop_insn(&new);
-	} else if (is_kprobe_on_ftrace(&old)) {
-		/*
-		 * If we find a breakpoint instruction, a kprobe has been
-		 * placed at the beginning of the function. We write the
-		 * constant KPROBE_ON_FTRACE_NOP into the remaining four
-		 * bytes of the original instruction so that the kprobes
-		 * handler can execute a nop, if it reaches this breakpoint.
-		 */
-		ftrace_generate_kprobe_call_insn(&orig);
-		ftrace_generate_kprobe_nop_insn(&new);
 	} else {
 		/* Replace ftrace call with a nop. */
 		ftrace_generate_call_insn(&orig, rec->ip);
@@ -142,21 +123,10 @@
 
 	if (probe_kernel_read(&old, (void *) rec->ip, sizeof(old)))
 		return -EFAULT;
-	if (is_kprobe_on_ftrace(&old)) {
-		/*
-		 * If we find a breakpoint instruction, a kprobe has been
-		 * placed at the beginning of the function. We write the
-		 * constant KPROBE_ON_FTRACE_CALL into the remaining four
-		 * bytes of the original instruction so that the kprobes
-		 * handler can execute a brasl if it reaches this breakpoint.
-		 */
-		ftrace_generate_kprobe_nop_insn(&orig);
-		ftrace_generate_kprobe_call_insn(&new);
-	} else {
-		/* Replace nop with an ftrace call. */
-		ftrace_generate_nop_insn(&orig);
-		ftrace_generate_call_insn(&new, rec->ip);
-	}
+	/* Replace nop with an ftrace call. */
+	ftrace_generate_nop_insn(&orig);
+	ftrace_generate_call_insn(&new, rec->ip);
+
 	/* Verify that the to be replaced code matches what we expect. */
 	if (memcmp(&orig, &old, sizeof(old)))
 		return -EINVAL;
@@ -241,3 +211,45 @@
 }
 
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
+
+#ifdef CONFIG_KPROBES_ON_FTRACE
+void kprobe_ftrace_handler(unsigned long ip, unsigned long parent_ip,
+		struct ftrace_ops *ops, struct pt_regs *regs)
+{
+	struct kprobe_ctlblk *kcb;
+	struct kprobe *p = get_kprobe((kprobe_opcode_t *)ip);
+
+	if (unlikely(!p) || kprobe_disabled(p))
+		return;
+
+	if (kprobe_running()) {
+		kprobes_inc_nmissed_count(p);
+		return;
+	}
+
+	__this_cpu_write(current_kprobe, p);
+
+	kcb = get_kprobe_ctlblk();
+	kcb->kprobe_status = KPROBE_HIT_ACTIVE;
+
+	instruction_pointer_set(regs, ip);
+
+	if (!p->pre_handler || !p->pre_handler(p, regs)) {
+
+		instruction_pointer_set(regs, ip + MCOUNT_INSN_SIZE);
+
+		if (unlikely(p->post_handler)) {
+			kcb->kprobe_status = KPROBE_HIT_SSDONE;
+			p->post_handler(p, regs, 0);
+		}
+	}
+	__this_cpu_write(current_kprobe, NULL);
+}
+NOKPROBE_SYMBOL(kprobe_ftrace_handler);
+
+int arch_prepare_kprobe_ftrace(struct kprobe *p)
+{
+	p->ainsn.insn = NULL;
+	return 0;
+}
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/ipl.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/ipl.c
@@ -39,6 +39,7 @@
 #define IPL_CCW_STR		"ccw"
 #define IPL_FCP_STR		"fcp"
 #define IPL_FCP_DUMP_STR	"fcp_dump"
+#define IPL_NVME_STR		"nvme"
 #define IPL_NSS_STR		"nss"
 
 #define DUMP_CCW_STR		"ccw"
@@ -93,6 +94,8 @@
 		return IPL_FCP_DUMP_STR;
 	case IPL_TYPE_NSS:
 		return IPL_NSS_STR;
+	case IPL_TYPE_NVME:
+		return IPL_NVME_STR;
 	case IPL_TYPE_UNKNOWN:
 	default:
 		return IPL_UNKNOWN_STR;
@@ -133,6 +136,7 @@
 
 static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN;
 static struct ipl_parameter_block *reipl_block_fcp;
+static struct ipl_parameter_block *reipl_block_nvme;
 static struct ipl_parameter_block *reipl_block_ccw;
 static struct ipl_parameter_block *reipl_block_nss;
 static struct ipl_parameter_block *reipl_block_actual;
@@ -258,6 +262,8 @@
 			return IPL_TYPE_FCP_DUMP;
 		else
 			return IPL_TYPE_FCP;
+	case IPL_PBT_NVME:
+		return IPL_TYPE_NVME;
 	}
 	return IPL_TYPE_UNKNOWN;
 }
@@ -314,6 +320,8 @@
 	case IPL_TYPE_FCP:
 	case IPL_TYPE_FCP_DUMP:
 		return sprintf(page, "0.0.%04x\n", ipl_block.fcp.devno);
+	case IPL_TYPE_NVME:
+		return sprintf(page, "%08ux\n", ipl_block.nvme.fid);
 	default:
 		return 0;
 	}
@@ -342,15 +350,35 @@
 
 	return memory_read_from_buffer(buf, count, &off, scp_data, size);
 }
+
+static ssize_t ipl_nvme_scp_data_read(struct file *filp, struct kobject *kobj,
+				 struct bin_attribute *attr, char *buf,
+				 loff_t off, size_t count)
+{
+	unsigned int size = ipl_block.nvme.scp_data_len;
+	void *scp_data = &ipl_block.nvme.scp_data;
+
+	return memory_read_from_buffer(buf, count, &off, scp_data, size);
+}
+
 static struct bin_attribute ipl_scp_data_attr =
 	__BIN_ATTR(scp_data, S_IRUGO, ipl_scp_data_read, NULL, PAGE_SIZE);
 
+static struct bin_attribute ipl_nvme_scp_data_attr =
+	__BIN_ATTR(scp_data, S_IRUGO, ipl_nvme_scp_data_read, NULL, PAGE_SIZE);
+
 static struct bin_attribute *ipl_fcp_bin_attrs[] = {
 	&ipl_parameter_attr,
 	&ipl_scp_data_attr,
 	NULL,
 };
 
+static struct bin_attribute *ipl_nvme_bin_attrs[] = {
+	&ipl_parameter_attr,
+	&ipl_nvme_scp_data_attr,
+	NULL,
+};
+
 /* FCP ipl device attributes */
 
 DEFINE_IPL_ATTR_RO(ipl_fcp, wwpn, "0x%016llx\n",
@@ -362,6 +390,16 @@
 DEFINE_IPL_ATTR_RO(ipl_fcp, br_lba, "%lld\n",
 		   (unsigned long long)ipl_block.fcp.br_lba);
 
+/* NVMe ipl device attributes */
+DEFINE_IPL_ATTR_RO(ipl_nvme, fid, "0x%08llx\n",
+		   (unsigned long long)ipl_block.nvme.fid);
+DEFINE_IPL_ATTR_RO(ipl_nvme, nsid, "0x%08llx\n",
+		   (unsigned long long)ipl_block.nvme.nsid);
+DEFINE_IPL_ATTR_RO(ipl_nvme, bootprog, "%lld\n",
+		   (unsigned long long)ipl_block.nvme.bootprog);
+DEFINE_IPL_ATTR_RO(ipl_nvme, br_lba, "%lld\n",
+		   (unsigned long long)ipl_block.nvme.br_lba);
+
 static ssize_t ipl_ccw_loadparm_show(struct kobject *kobj,
 				     struct kobj_attribute *attr, char *page)
 {
@@ -396,6 +434,24 @@
 	.bin_attrs = ipl_fcp_bin_attrs,
 };
 
+static struct attribute *ipl_nvme_attrs[] = {
+	&sys_ipl_type_attr.attr,
+	&sys_ipl_nvme_fid_attr.attr,
+	&sys_ipl_nvme_nsid_attr.attr,
+	&sys_ipl_nvme_bootprog_attr.attr,
+	&sys_ipl_nvme_br_lba_attr.attr,
+	&sys_ipl_ccw_loadparm_attr.attr,
+	&sys_ipl_secure_attr.attr,
+	&sys_ipl_has_secure_attr.attr,
+	NULL,
+};
+
+static struct attribute_group ipl_nvme_attr_group = {
+	.attrs = ipl_nvme_attrs,
+	.bin_attrs = ipl_nvme_bin_attrs,
+};
+
+
 /* CCW ipl device attributes */
 
 static struct attribute *ipl_ccw_attrs_vm[] = {
@@ -471,6 +527,9 @@
 	case IPL_TYPE_FCP_DUMP:
 		rc = sysfs_create_group(&ipl_kset->kobj, &ipl_fcp_attr_group);
 		break;
+	case IPL_TYPE_NVME:
+		rc = sysfs_create_group(&ipl_kset->kobj, &ipl_nvme_attr_group);
+		break;
 	default:
 		rc = sysfs_create_group(&ipl_kset->kobj,
 					&ipl_unknown_attr_group);
@@ -706,6 +765,93 @@
 	.bin_attrs = reipl_fcp_bin_attrs,
 };
 
+/* NVME reipl device attributes */
+
+static ssize_t reipl_nvme_scpdata_read(struct file *filp, struct kobject *kobj,
+				      struct bin_attribute *attr,
+				      char *buf, loff_t off, size_t count)
+{
+	size_t size = reipl_block_nvme->nvme.scp_data_len;
+	void *scp_data = reipl_block_nvme->nvme.scp_data;
+
+	return memory_read_from_buffer(buf, count, &off, scp_data, size);
+}
+
+static ssize_t reipl_nvme_scpdata_write(struct file *filp, struct kobject *kobj,
+				       struct bin_attribute *attr,
+				       char *buf, loff_t off, size_t count)
+{
+	size_t scpdata_len = count;
+	size_t padding;
+
+	if (off)
+		return -EINVAL;
+
+	memcpy(reipl_block_nvme->nvme.scp_data, buf, count);
+	if (scpdata_len % 8) {
+		padding = 8 - (scpdata_len % 8);
+		memset(reipl_block_nvme->nvme.scp_data + scpdata_len,
+		       0, padding);
+		scpdata_len += padding;
+	}
+
+	reipl_block_nvme->hdr.len = IPL_BP_FCP_LEN + scpdata_len;
+	reipl_block_nvme->nvme.len = IPL_BP0_FCP_LEN + scpdata_len;
+	reipl_block_nvme->nvme.scp_data_len = scpdata_len;
+
+	return count;
+}
+
+static struct bin_attribute sys_reipl_nvme_scp_data_attr =
+	__BIN_ATTR(scp_data, (S_IRUGO | S_IWUSR), reipl_nvme_scpdata_read,
+		   reipl_nvme_scpdata_write, DIAG308_SCPDATA_SIZE);
+
+static struct bin_attribute *reipl_nvme_bin_attrs[] = {
+	&sys_reipl_nvme_scp_data_attr,
+	NULL,
+};
+
+DEFINE_IPL_ATTR_RW(reipl_nvme, fid, "0x%08llx\n", "%llx\n",
+		   reipl_block_nvme->nvme.fid);
+DEFINE_IPL_ATTR_RW(reipl_nvme, nsid, "0x%08llx\n", "%llx\n",
+		   reipl_block_nvme->nvme.nsid);
+DEFINE_IPL_ATTR_RW(reipl_nvme, bootprog, "%lld\n", "%lld\n",
+		   reipl_block_nvme->nvme.bootprog);
+DEFINE_IPL_ATTR_RW(reipl_nvme, br_lba, "%lld\n", "%lld\n",
+		   reipl_block_nvme->nvme.br_lba);
+
+/* nvme wrapper */
+static ssize_t reipl_nvme_loadparm_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *page)
+{
+	return reipl_generic_loadparm_show(reipl_block_nvme, page);
+}
+
+static ssize_t reipl_nvme_loadparm_store(struct kobject *kobj,
+					struct kobj_attribute *attr,
+					const char *buf, size_t len)
+{
+	return reipl_generic_loadparm_store(reipl_block_nvme, buf, len);
+}
+
+static struct kobj_attribute sys_reipl_nvme_loadparm_attr =
+	__ATTR(loadparm, S_IRUGO | S_IWUSR, reipl_nvme_loadparm_show,
+					    reipl_nvme_loadparm_store);
+
+static struct attribute *reipl_nvme_attrs[] = {
+	&sys_reipl_nvme_fid_attr.attr,
+	&sys_reipl_nvme_nsid_attr.attr,
+	&sys_reipl_nvme_bootprog_attr.attr,
+	&sys_reipl_nvme_br_lba_attr.attr,
+	&sys_reipl_nvme_loadparm_attr.attr,
+	NULL,
+};
+
+static struct attribute_group reipl_nvme_attr_group = {
+	.attrs = reipl_nvme_attrs,
+	.bin_attrs = reipl_nvme_bin_attrs
+};
+
 /* CCW reipl device attributes */
 DEFINE_IPL_CCW_ATTR_RW(reipl_ccw, device, reipl_block_ccw->ccw);
 
@@ -850,6 +996,9 @@
 	case IPL_TYPE_FCP:
 		reipl_block_actual = reipl_block_fcp;
 		break;
+	case IPL_TYPE_NVME:
+		reipl_block_actual = reipl_block_nvme;
+		break;
 	case IPL_TYPE_NSS:
 		reipl_block_actual = reipl_block_nss;
 		break;
@@ -876,6 +1025,8 @@
 		rc = reipl_set_type(IPL_TYPE_CCW);
 	else if (strncmp(buf, IPL_FCP_STR, strlen(IPL_FCP_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_FCP);
+	else if (strncmp(buf, IPL_NVME_STR, strlen(IPL_NVME_STR)) == 0)
+		rc = reipl_set_type(IPL_TYPE_NVME);
 	else if (strncmp(buf, IPL_NSS_STR, strlen(IPL_NSS_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_NSS);
 	return (rc != 0) ? rc : len;
@@ -886,6 +1037,7 @@
 
 static struct kset *reipl_kset;
 static struct kset *reipl_fcp_kset;
+static struct kset *reipl_nvme_kset;
 
 static void __reipl_run(void *unused)
 {
@@ -898,6 +1050,10 @@
 		diag308(DIAG308_SET, reipl_block_fcp);
 		diag308(DIAG308_LOAD_CLEAR, NULL);
 		break;
+	case IPL_TYPE_NVME:
+		diag308(DIAG308_SET, reipl_block_nvme);
+		diag308(DIAG308_LOAD_CLEAR, NULL);
+		break;
 	case IPL_TYPE_NSS:
 		diag308(DIAG308_SET, reipl_block_nss);
 		diag308(DIAG308_LOAD_CLEAR, NULL);
@@ -1034,6 +1190,49 @@
 	return 0;
 }
 
+static int __init reipl_nvme_init(void)
+{
+	int rc;
+
+	reipl_block_nvme = (void *) get_zeroed_page(GFP_KERNEL);
+	if (!reipl_block_nvme)
+		return -ENOMEM;
+
+	/* sysfs: create kset for mixing attr group and bin attrs */
+	reipl_nvme_kset = kset_create_and_add(IPL_NVME_STR, NULL,
+					     &reipl_kset->kobj);
+	if (!reipl_nvme_kset) {
+		free_page((unsigned long) reipl_block_nvme);
+		return -ENOMEM;
+	}
+
+	rc = sysfs_create_group(&reipl_nvme_kset->kobj, &reipl_nvme_attr_group);
+	if (rc) {
+		kset_unregister(reipl_nvme_kset);
+		free_page((unsigned long) reipl_block_nvme);
+		return rc;
+	}
+
+	if (ipl_info.type == IPL_TYPE_NVME) {
+		memcpy(reipl_block_nvme, &ipl_block, sizeof(ipl_block));
+		/*
+		 * Fix loadparm: There are systems where the (SCSI) LOADPARM
+		 * is invalid in the IPL parameter block, so take it
+		 * always from sclp_ipl_info.
+		 */
+		memcpy(reipl_block_nvme->nvme.loadparm, sclp_ipl_info.loadparm,
+		       LOADPARM_LEN);
+	} else {
+		reipl_block_nvme->hdr.len = IPL_BP_NVME_LEN;
+		reipl_block_nvme->hdr.version = IPL_PARM_BLOCK_VERSION;
+		reipl_block_nvme->nvme.len = IPL_BP0_NVME_LEN;
+		reipl_block_nvme->nvme.pbt = IPL_PBT_NVME;
+		reipl_block_nvme->nvme.opt = IPL_PB0_NVME_OPT_IPL;
+	}
+	reipl_capabilities |= IPL_TYPE_NVME;
+	return 0;
+}
+
 static int __init reipl_type_init(void)
 {
 	enum ipl_type reipl_type = ipl_info.type;
@@ -1049,6 +1248,9 @@
 	if (reipl_block->pb0_hdr.pbt == IPL_PBT_FCP) {
 		memcpy(reipl_block_fcp, reipl_block, size);
 		reipl_type = IPL_TYPE_FCP;
+	} else if (reipl_block->pb0_hdr.pbt == IPL_PBT_NVME) {
+		memcpy(reipl_block_nvme, reipl_block, size);
+		reipl_type = IPL_TYPE_NVME;
 	} else if (reipl_block->pb0_hdr.pbt == IPL_PBT_CCW) {
 		memcpy(reipl_block_ccw, reipl_block, size);
 		reipl_type = IPL_TYPE_CCW;
@@ -1075,6 +1277,9 @@
 	rc = reipl_fcp_init();
 	if (rc)
 		return rc;
+	rc = reipl_nvme_init();
+	if (rc)
+		return rc;
 	rc = reipl_nss_init();
 	if (rc)
 		return rc;
@@ -1691,6 +1896,10 @@
 		ipl_info.data.fcp.wwpn = ipl_block.fcp.wwpn;
 		ipl_info.data.fcp.lun = ipl_block.fcp.lun;
 		break;
+	case IPL_TYPE_NVME:
+		ipl_info.data.nvme.fid = ipl_block.nvme.fid;
+		ipl_info.data.nvme.nsid = ipl_block.nvme.nsid;
+		break;
 	case IPL_TYPE_NSS:
 	case IPL_TYPE_UNKNOWN:
 		/* We have no info to copy */
@@ -1842,3 +2051,8 @@
 }
 
 #endif
+
+bool ipl_get_secureboot(void)
+{
+	return !!ipl_secure_flag;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/irq.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/irq.c
@@ -294,11 +294,6 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction external_interrupt = {
-	.name	 = "EXT",
-	.handler = do_ext_interrupt,
-};
-
 void __init init_ext_interrupts(void)
 {
 	int idx;
@@ -308,7 +303,8 @@
 
 	irq_set_chip_and_handler(EXT_INTERRUPT,
 				 &dummy_irq_chip, handle_percpu_irq);
-	setup_irq(EXT_INTERRUPT, &external_interrupt);
+	if (request_irq(EXT_INTERRUPT, do_ext_interrupt, 0, "EXT", NULL))
+		panic("Failed to register EXT interrupt\n");
 }
 
 static DEFINE_SPINLOCK(irq_subclass_lock);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/kmsg.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/kmsg.c
@@ -0,0 +1,114 @@
+/*
+ * Message printing with message catalog prefixes.
+ *
+ * Copyright IBM Corp. 2012
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/jhash.h>
+#include <linux/device.h>
+
+static inline u32 __printk_jhash(const void *key, u32 length)
+{
+	u32 a, b, c, len;
+	const u8 *k;
+	u8 zk[12];
+
+	a = b = 0x9e3779b9;
+	c = 0;
+	for (len = length + 12, k = key; len >= 12; len -= 12, k += 12) {
+		if (len >= 24) {
+			a += k[0] | k[1] << 8 | k[2] << 16 | k[3] << 24;
+			b += k[4] | k[5] << 8 | k[6] << 16 | k[7] << 24;
+			c += k[8] | k[9] << 8 | k[10] << 16 | k[11] << 24;
+		} else {
+			memset(zk, 0, 12);
+			memcpy(zk, k, len - 12);
+			a += zk[0] | zk[1] << 8 | zk[2] << 16 | zk[3] << 24;
+			b += zk[4] | zk[5] << 8 | zk[6] << 16 | zk[7] << 24;
+			c += (u32) zk[8] << 8;
+			c += (u32) zk[9] << 16;
+			c += (u32) zk[10] << 24;
+			c += length;
+		}
+		a -= b + c; a ^= (c>>13);
+		b -= a + c; b ^= (a<<8);
+		c -= a + b; c ^= (b>>13);
+		a -= b + c; a ^= (c>>12);
+		b -= a + c; b ^= (a<<16);
+		c -= a + b; c ^= (b>>5);
+		a -= b + c; a ^= (c>>3);
+		b -= a + c; b ^= (a<<10);
+		c -= a + b; c ^= (b>>15);
+	}
+	return c;
+}
+
+/**
+ * __jhash_string - calculate the six digit jhash of a string
+ * @str: string to calculate the jhash
+ */
+unsigned long long __jhash_string(const char *str)
+{
+	return __printk_jhash(str, strlen(str)) & 0xffffff;
+}
+EXPORT_SYMBOL(__jhash_string);
+
+static int __dev_printk_hash(const char *level, const struct device *dev,
+			     struct va_format *vaf)
+{
+	if (!dev)
+		return printk("%s(NULL device *): %pV", level, vaf);
+
+	return printk("%s%s.%06x: %pV", level, dev_driver_string(dev),
+		      __printk_jhash(vaf->fmt, strlen(vaf->fmt)) & 0xffffff,
+		      vaf);
+}
+
+int dev_printk_hash(const char *level, const struct device *dev,
+		    const char *fmt, ...)
+{
+	struct va_format vaf;
+	va_list args;
+	int r;
+
+	va_start(args, fmt);
+
+	vaf.fmt = fmt;
+	vaf.va = &args;
+
+	r = __dev_printk_hash(level, dev, &vaf);
+	va_end(args);
+
+	return r;
+}
+EXPORT_SYMBOL(dev_printk_hash);
+
+#define define_dev_printk_hash_level(func, kern_level)		\
+int func(const struct device *dev, const char *fmt, ...)	\
+{								\
+	struct va_format vaf;					\
+	va_list args;						\
+	int r;							\
+								\
+	va_start(args, fmt);					\
+								\
+	vaf.fmt = fmt;						\
+	vaf.va = &args;						\
+								\
+	r = __dev_printk_hash(kern_level, dev, &vaf);		\
+	va_end(args);						\
+								\
+	return r;						\
+}								\
+EXPORT_SYMBOL(func);
+
+define_dev_printk_hash_level(dev_emerg_hash, KERN_EMERG);
+define_dev_printk_hash_level(dev_alert_hash, KERN_ALERT);
+define_dev_printk_hash_level(dev_crit_hash, KERN_CRIT);
+define_dev_printk_hash_level(dev_err_hash, KERN_ERR);
+define_dev_printk_hash_level(dev_warn_hash, KERN_WARNING);
+define_dev_printk_hash_level(dev_notice_hash, KERN_NOTICE);
+define_dev_printk_hash_level(_dev_info_hash, KERN_INFO);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/kprobes.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/kprobes.c
@@ -56,21 +56,10 @@
 
 static void copy_instruction(struct kprobe *p)
 {
-	unsigned long ip = (unsigned long) p->addr;
 	s64 disp, new_disp;
 	u64 addr, new_addr;
 
-	if (ftrace_location(ip) == ip) {
-		/*
-		 * If kprobes patches the instruction that is morphed by
-		 * ftrace make sure that kprobes always sees the branch
-		 * "jg .+24" that skips the mcount block or the "brcl 0,0"
-		 * in case of hotpatch.
-		 */
-		ftrace_generate_nop_insn((struct ftrace_insn *)p->ainsn.insn);
-		p->ainsn.is_ftrace_insn = 1;
-	} else
-		memcpy(p->ainsn.insn, p->addr, insn_length(*p->addr >> 8));
+	memcpy(p->ainsn.insn, p->addr, insn_length(*p->addr >> 8));
 	p->opcode = p->ainsn.insn[0];
 	if (!probe_is_insn_relative_long(p->ainsn.insn))
 		return;
@@ -136,11 +125,6 @@
 }
 NOKPROBE_SYMBOL(arch_prepare_kprobe);
 
-int arch_check_ftrace_location(struct kprobe *p)
-{
-	return 0;
-}
-
 struct swap_insn_args {
 	struct kprobe *p;
 	unsigned int arm_kprobe : 1;
@@ -149,28 +133,11 @@
 static int swap_instruction(void *data)
 {
 	struct swap_insn_args *args = data;
-	struct ftrace_insn new_insn, *insn;
 	struct kprobe *p = args->p;
-	size_t len;
+	u16 opc;
 
-	new_insn.opc = args->arm_kprobe ? BREAKPOINT_INSTRUCTION : p->opcode;
-	len = sizeof(new_insn.opc);
-	if (!p->ainsn.is_ftrace_insn)
-		goto skip_ftrace;
-	len = sizeof(new_insn);
-	insn = (struct ftrace_insn *) p->addr;
-	if (args->arm_kprobe) {
-		if (is_ftrace_nop(insn))
-			new_insn.disp = KPROBE_ON_FTRACE_NOP;
-		else
-			new_insn.disp = KPROBE_ON_FTRACE_CALL;
-	} else {
-		ftrace_generate_call_insn(&new_insn, (unsigned long)p->addr);
-		if (insn->disp == KPROBE_ON_FTRACE_NOP)
-			ftrace_generate_nop_insn(&new_insn);
-	}
-skip_ftrace:
-	s390_kernel_write(p->addr, &new_insn, len);
+	opc = args->arm_kprobe ? BREAKPOINT_INSTRUCTION : p->opcode;
+	s390_kernel_write(p->addr, &opc, sizeof(opc));
 	return 0;
 }
 NOKPROBE_SYMBOL(swap_instruction);
@@ -464,24 +431,6 @@
 	unsigned long ip = regs->psw.addr;
 	int fixup = probe_get_fixup_type(p->ainsn.insn);
 
-	/* Check if the kprobes location is an enabled ftrace caller */
-	if (p->ainsn.is_ftrace_insn) {
-		struct ftrace_insn *insn = (struct ftrace_insn *) p->addr;
-		struct ftrace_insn call_insn;
-
-		ftrace_generate_call_insn(&call_insn, (unsigned long) p->addr);
-		/*
-		 * A kprobe on an enabled ftrace call site actually single
-		 * stepped an unconditional branch (ftrace nop equivalent).
-		 * Now we need to fixup things and pretend that a brasl r0,...
-		 * was executed instead.
-		 */
-		if (insn->disp == KPROBE_ON_FTRACE_CALL) {
-			ip += call_insn.disp * 2 - MCOUNT_INSN_SIZE;
-			regs->gprs[0] = (unsigned long)p->addr + sizeof(*insn);
-		}
-	}
-
 	if (fixup & FIXUP_PSW_NORMAL)
 		ip += (unsigned long) p->addr - (unsigned long) p->ainsn.insn;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/machine_kexec.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/machine_kexec.c
@@ -164,7 +164,9 @@
 #ifdef CONFIG_CRASH_DUMP
 	int rc;
 
+	preempt_disable();
 	rc = CALL_ON_STACK(do_start_kdump, S390_lowcore.nodat_stack, 1, image);
+	preempt_enable();
 	return rc == 0;
 #else
 	return false;
@@ -254,10 +256,10 @@
 	VMCOREINFO_SYMBOL(lowcore_ptr);
 	VMCOREINFO_SYMBOL(high_memory);
 	VMCOREINFO_LENGTH(lowcore_ptr, NR_CPUS);
-	mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
 	vmcoreinfo_append_str("SDMA=%lx\n", __sdma);
 	vmcoreinfo_append_str("EDMA=%lx\n", __edma);
 	vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
+	mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
 }
 
 void machine_shutdown(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/machine_kexec_file.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/machine_kexec_file.c
@@ -151,7 +151,7 @@
 		buf.mem += crashk_res.start;
 	buf.memsz = buf.bufsz;
 
-	data->parm->initrd_start = buf.mem;
+	data->parm->initrd_start = data->memsz;
 	data->parm->initrd_size = buf.memsz;
 	data->memsz += buf.memsz;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/machine_kexec_reloc.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/machine_kexec_reloc.c
@@ -28,6 +28,7 @@
 		break;
 	case R_390_64:		/* Direct 64 bit.  */
 	case R_390_GLOB_DAT:
+	case R_390_JMP_SLOT:
 		*(u64 *)loc = val;
 		break;
 	case R_390_PC16:	/* PC relative 16 bit.	*/
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/mcount.S
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/mcount.S
@@ -26,6 +26,12 @@
 #define STACK_PTREGS	  (STACK_FRAME_OVERHEAD)
 #define STACK_PTREGS_GPRS (STACK_PTREGS + __PT_GPRS)
 #define STACK_PTREGS_PSW  (STACK_PTREGS + __PT_PSW)
+#ifdef __PACK_STACK
+/* allocate just enough for r14, r15 and backchain */
+#define TRACED_FUNC_FRAME_SIZE	24
+#else
+#define TRACED_FUNC_FRAME_SIZE	STACK_FRAME_OVERHEAD
+#endif
 
 ENTRY(_mcount)
 	BR_EX	%r14
@@ -35,13 +41,27 @@
 ENTRY(ftrace_caller)
 	.globl	ftrace_regs_caller
 	.set	ftrace_regs_caller,ftrace_caller
+	stg	%r14,(__SF_GPRS+8*8)(%r15)	# save traced function caller
+	lghi	%r14,0				# save condition code
+	ipm	%r14				# don't put any instructions
+	sllg	%r14,%r14,16			# clobbering CC before this point
 	lgr	%r1,%r15
 #if !(defined(CC_USING_HOTPATCH) || defined(CC_USING_NOP_MCOUNT))
 	aghi	%r0,MCOUNT_RETURN_FIXUP
 #endif
-	aghi	%r15,-STACK_FRAME_SIZE
+	# allocate stack frame for ftrace_caller to contain traced function
+	aghi	%r15,-TRACED_FUNC_FRAME_SIZE
 	stg	%r1,__SF_BACKCHAIN(%r15)
+	stg	%r0,(__SF_GPRS+8*8)(%r15)
+	stg	%r15,(__SF_GPRS+9*8)(%r15)
+	# allocate pt_regs and stack frame for ftrace_trace_function
+	aghi	%r15,-STACK_FRAME_SIZE
 	stg	%r1,(STACK_PTREGS_GPRS+15*8)(%r15)
+	stg	%r14,(STACK_PTREGS_PSW)(%r15)
+	lg	%r14,(__SF_GPRS+8*8)(%r1)	# restore original return address
+	stosm	(STACK_PTREGS_PSW)(%r15),0
+	aghi	%r1,-TRACED_FUNC_FRAME_SIZE
+	stg	%r1,__SF_BACKCHAIN(%r15)
 	stg	%r0,(STACK_PTREGS_PSW+8)(%r15)
 	stmg	%r2,%r14,(STACK_PTREGS_GPRS+2*8)(%r15)
 #ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/perf_cpum_cf.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/perf_cpum_cf.c
@@ -199,7 +199,7 @@
 	[PERF_COUNT_HW_BUS_CYCLES]	    = -1,
 };
 
-static int __hw_perf_event_init(struct perf_event *event)
+static int __hw_perf_event_init(struct perf_event *event, unsigned int type)
 {
 	struct perf_event_attr *attr = &event->attr;
 	struct hw_perf_event *hwc = &event->hw;
@@ -207,7 +207,7 @@
 	int err = 0;
 	u64 ev;
 
-	switch (attr->type) {
+	switch (type) {
 	case PERF_TYPE_RAW:
 		/* Raw events are used to access counters directly,
 		 * hence do not permit excludes */
@@ -294,17 +294,16 @@
 
 static int cpumf_pmu_event_init(struct perf_event *event)
 {
+	unsigned int type = event->attr.type;
 	int err;
 
-	switch (event->attr.type) {
-	case PERF_TYPE_HARDWARE:
-	case PERF_TYPE_HW_CACHE:
-	case PERF_TYPE_RAW:
-		err = __hw_perf_event_init(event);
-		break;
-	default:
+	if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW)
+		err = __hw_perf_event_init(event, type);
+	else if (event->pmu->type == type)
+		/* Registered as unknown PMU */
+		err = __hw_perf_event_init(event, PERF_TYPE_RAW);
+	else
 		return -ENOENT;
-	}
 
 	if (unlikely(err) && event->destroy)
 		event->destroy(event);
@@ -553,7 +552,7 @@
 		return -ENODEV;
 
 	cpumf_pmu.attr_groups = cpumf_cf_event_group();
-	rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW);
+	rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", -1);
 	if (rc)
 		pr_err("Registering the cpum_cf PMU failed with rc=%i\n", rc);
 	return rc;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/perf_cpum_cf_diag.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/perf_cpum_cf_diag.c
@@ -243,13 +243,13 @@
 	int err = -ENOENT;
 
 	debug_sprintf_event(cf_diag_dbg, 5,
-			    "%s event %p cpu %d config %#llx "
+			    "%s event %p cpu %d config %#llx type:%u "
 			    "sample_type %#llx cf_diag_events %d\n", __func__,
-			    event, event->cpu, attr->config, attr->sample_type,
-			    atomic_read(&cf_diag_events));
+			    event, event->cpu, attr->config, event->pmu->type,
+			    attr->sample_type, atomic_read(&cf_diag_events));
 
 	if (event->attr.config != PERF_EVENT_CPUM_CF_DIAG ||
-	    event->attr.type != PERF_TYPE_RAW)
+	    event->attr.type != event->pmu->type)
 		goto out;
 
 	/* Raw events are used to access counters directly,
@@ -693,7 +693,7 @@
 	}
 	debug_register_view(cf_diag_dbg, &debug_sprintf_view);
 
-	rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", PERF_TYPE_RAW);
+	rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", -1);
 	if (rc) {
 		debug_unregister_view(cf_diag_dbg, &debug_sprintf_view);
 		debug_unregister(cf_diag_dbg);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/perf_cpum_cf_events.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/perf_cpum_cf_events.c
@@ -238,6 +238,64 @@
 CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
 CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
 
+CPUMF_EVENT_ATTR(cf_z15, L1D_RO_EXCL_WRITES, 0x0080);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_WRITES, 0x0081);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_MISSES, 0x0082);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_HPAGE_WRITES, 0x0083);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_GPAGE_WRITES, 0x0084);
+CPUMF_EVENT_ATTR(cf_z15, L1D_L2D_SOURCED_WRITES, 0x0085);
+CPUMF_EVENT_ATTR(cf_z15, ITLB2_WRITES, 0x0086);
+CPUMF_EVENT_ATTR(cf_z15, ITLB2_MISSES, 0x0087);
+CPUMF_EVENT_ATTR(cf_z15, L1I_L2I_SOURCED_WRITES, 0x0088);
+CPUMF_EVENT_ATTR(cf_z15, TLB2_PTE_WRITES, 0x0089);
+CPUMF_EVENT_ATTR(cf_z15, TLB2_CRSTE_WRITES, 0x008a);
+CPUMF_EVENT_ATTR(cf_z15, TLB2_ENGINES_BUSY, 0x008b);
+CPUMF_EVENT_ATTR(cf_z15, TX_C_TEND, 0x008c);
+CPUMF_EVENT_ATTR(cf_z15, TX_NC_TEND, 0x008d);
+CPUMF_EVENT_ATTR(cf_z15, L1C_TLB2_MISSES, 0x008f);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES, 0x0091);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0092);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES, 0x0093);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x0094);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x0095);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES, 0x0096);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x0097);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x0098);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES, 0x0099);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x009a);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x009b);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x009c);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES, 0x009d);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO, 0x009e);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES, 0x00a3);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a4);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES, 0x00a5);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x00a6);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x00a7);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES, 0x00a8);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x00a9);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x00aa);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES, 0x00ab);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x00ac);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x00ad);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00ae);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES, 0x00af);
+CPUMF_EVENT_ATTR(cf_z15, BCD_DFP_EXECUTION_SLOTS, 0x00e0);
+CPUMF_EVENT_ATTR(cf_z15, VX_BCD_EXECUTION_SLOTS, 0x00e1);
+CPUMF_EVENT_ATTR(cf_z15, DECIMAL_INSTRUCTIONS, 0x00e2);
+CPUMF_EVENT_ATTR(cf_z15, LAST_HOST_TRANSLATIONS, 0x00e8);
+CPUMF_EVENT_ATTR(cf_z15, TX_NC_TABORT, 0x00f3);
+CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_NO_SPECIAL, 0x00f4);
+CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_SPECIAL, 0x00f5);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_ACCESS, 0x00f7);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_CYCLES, 0x00fc);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_CC, 0x00108);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_CCFINISH, 0x00109);
+CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
+CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
+
 static struct attribute *cpumcf_fvn1_pmu_event_attr[] __initdata = {
 	CPUMF_EVENT_PTR(cf_fvn1, CPU_CYCLES),
 	CPUMF_EVENT_PTR(cf_fvn1, INSTRUCTIONS),
@@ -516,6 +574,67 @@
 	NULL,
 };
 
+static struct attribute *cpumcf_z15_pmu_event_attr[] __initdata = {
+	CPUMF_EVENT_PTR(cf_z15, L1D_RO_EXCL_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_HPAGE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_GPAGE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_L2D_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, ITLB2_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, ITLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_L2I_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, TLB2_PTE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, TLB2_CRSTE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, TLB2_ENGINES_BUSY),
+	CPUMF_EVENT_PTR(cf_z15, TX_C_TEND),
+	CPUMF_EVENT_PTR(cf_z15, TX_NC_TEND),
+	CPUMF_EVENT_PTR(cf_z15, L1C_TLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, BCD_DFP_EXECUTION_SLOTS),
+	CPUMF_EVENT_PTR(cf_z15, VX_BCD_EXECUTION_SLOTS),
+	CPUMF_EVENT_PTR(cf_z15, DECIMAL_INSTRUCTIONS),
+	CPUMF_EVENT_PTR(cf_z15, LAST_HOST_TRANSLATIONS),
+	CPUMF_EVENT_PTR(cf_z15, TX_NC_TABORT),
+	CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_NO_SPECIAL),
+	CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_SPECIAL),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_ACCESS),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_CYCLES),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_CC),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_CCFINISH),
+	CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
+	CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
+	NULL,
+};
+
 /* END: CPUM_CF COUNTER DEFINITIONS ===================================== */
 
 static struct attribute_group cpumcf_pmu_events_group = {
@@ -624,9 +743,11 @@
 		break;
 	case 0x3906:
 	case 0x3907:
+		model = cpumcf_z14_pmu_event_attr;
+		break;
 	case 0x8561:
 	case 0x8562:
-		model = cpumcf_z14_pmu_event_attr;
+		model = cpumcf_z15_pmu_event_attr;
 		break;
 	default:
 		model = none;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/perf_cpum_sf.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/perf_cpum_sf.c
@@ -193,7 +193,7 @@
 				   unsigned long num_sdb, gfp_t gfp_flags)
 {
 	int i, rc;
-	unsigned long *new, *tail;
+	unsigned long *new, *tail, *tail_prev = NULL;
 
 	if (!sfb->sdbt || !sfb->tail)
 		return -EINVAL;
@@ -232,6 +232,7 @@
 			sfb->num_sdbt++;
 			/* Link current page to tail of chain */
 			*tail = (unsigned long)(void *) new + 1;
+			tail_prev = tail;
 			tail = new;
 		}
 
@@ -241,10 +242,22 @@
 		 * issue, a new realloc call (if required) might succeed.
 		 */
 		rc = alloc_sample_data_block(tail, gfp_flags);
-		if (rc)
+		if (rc) {
+			/* Undo last SDBT. An SDBT with no SDB at its first
+			 * entry but with an SDBT entry instead can not be
+			 * handled by the interrupt handler code.
+			 * Avoid this situation.
+			 */
+			if (tail_prev) {
+				sfb->num_sdbt--;
+				free_page((unsigned long) new);
+				tail = tail_prev;
+			}
 			break;
+		}
 		sfb->num_sdb++;
 		tail++;
+		tail_prev = new = NULL;	/* Allocated at least one SBD */
 	}
 
 	/* Link sampling buffer to its origin */
@@ -1300,18 +1313,28 @@
 		 */
 		if (flush_all && done)
 			break;
-
-		/* If an event overflow happened, discard samples by
-		 * processing any remaining sample-data-blocks.
-		 */
-		if (event_overflow)
-			flush_all = 1;
 	}
 
 	/* Account sample overflows in the event hardware structure */
 	if (sampl_overflow)
 		OVERFLOW_REG(hwc) = DIV_ROUND_UP(OVERFLOW_REG(hwc) +
 						 sampl_overflow, 1 + num_sdb);
+
+	/* Perf_event_overflow() and perf_event_account_interrupt() limit
+	 * the interrupt rate to an upper limit. Roughly 1000 samples per
+	 * task tick.
+	 * Hitting this limit results in a large number
+	 * of throttled REF_REPORT_THROTTLE entries and the samples
+	 * are dropped.
+	 * Slightly increase the interval to avoid hitting this limit.
+	 */
+	if (event_overflow) {
+		SAMPL_RATE(hwc) += DIV_ROUND_UP(SAMPL_RATE(hwc), 10);
+		debug_sprintf_event(sfdbg, 1, "%s: rate adjustment %ld\n",
+				    __func__,
+				    DIV_ROUND_UP(SAMPL_RATE(hwc), 10));
+	}
+
 	if (sampl_overflow || event_overflow)
 		debug_sprintf_event(sfdbg, 4, "hw_perf_event_update: "
 				    "overflow stats: sample=%llu event=%llu\n",
@@ -1406,8 +1429,8 @@
 		idx = aux->empty_mark + 1;
 		for (i = 0; i < range_scan; i++, idx++) {
 			te = aux_sdb_trailer(aux, idx);
-			te->flags = te->flags & ~SDB_TE_BUFFER_FULL_MASK;
-			te->flags = te->flags & ~SDB_TE_ALERT_REQ_MASK;
+			te->flags &= ~(SDB_TE_BUFFER_FULL_MASK |
+				       SDB_TE_ALERT_REQ_MASK);
 			te->overflow = 0;
 		}
 		/* Save the position of empty SDBs */
@@ -1454,8 +1477,7 @@
 	te = aux_sdb_trailer(aux, alert_index);
 	do {
 		orig_flags = te->flags;
-		orig_overflow = te->overflow;
-		*overflow = orig_overflow;
+		*overflow = orig_overflow = te->overflow;
 		if (orig_flags & SDB_TE_BUFFER_FULL_MASK) {
 			/*
 			 * SDB is already set by hardware.
@@ -1566,6 +1588,7 @@
 	perf_aux_output_end(handle, size);
 	num_sdb = aux->sfb.num_sdb;
 
+	num_sdb = aux->sfb.num_sdb;
 	while (!done) {
 		/* Get an output handle */
 		aux = perf_aux_output_begin(handle, cpuhw->event);
@@ -1688,7 +1711,7 @@
 	}
 
 	/* Allocate aux_buffer struct for the event */
-	aux = kmalloc(sizeof(struct aux_buffer), GFP_KERNEL);
+	aux = kzalloc(sizeof(struct aux_buffer), GFP_KERNEL);
 	if (!aux)
 		goto no_aux;
 	sfb = &aux->sfb;
@@ -2194,4 +2217,4 @@
 }
 
 arch_initcall(init_cpum_sampling_pmu);
-core_param(cpum_sfb_size, CPUM_SF_MAX_SDB, sfb_size, 0640);
+core_param(cpum_sfb_size, CPUM_SF_MAX_SDB, sfb_size, 0644);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/perf_event.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/perf_event.c
@@ -224,9 +224,13 @@
 			   struct pt_regs *regs)
 {
 	struct unwind_state state;
+	unsigned long addr;
 
-	unwind_for_each_frame(&state, current, regs, 0)
-		perf_callchain_store(entry, state.ip);
+	unwind_for_each_frame(&state, current, regs, 0) {
+		addr = unwind_get_return_address(&state);
+		if (!addr || perf_callchain_store(entry, addr))
+			return;
+	}
 }
 
 /* Perf definitions for PMU event attributes in sysfs */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/pgm_check.S
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/pgm_check.S
@@ -78,8 +78,8 @@
 PGM_CHECK(do_dat_exception)		/* 3a */
 PGM_CHECK(do_dat_exception)		/* 3b */
 PGM_CHECK_DEFAULT			/* 3c */
-PGM_CHECK_DEFAULT			/* 3d */
-PGM_CHECK_DEFAULT			/* 3e */
+PGM_CHECK(do_secure_storage_access)	/* 3d */
+PGM_CHECK(do_non_secure_storage_access)	/* 3e */
 PGM_CHECK_DEFAULT			/* 3f */
 PGM_CHECK_DEFAULT			/* 40 */
 PGM_CHECK_DEFAULT			/* 41 */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/process.c
@@ -105,6 +105,7 @@
 	p->thread.system_timer = 0;
 	p->thread.hardirq_timer = 0;
 	p->thread.softirq_timer = 0;
+	p->thread.last_break = 1;
 
 	frame->sf.back_chain = 0;
 	/* new return point is ret_from_fork */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/processor.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/processor.c
@@ -165,8 +165,9 @@
 static int show_cpuinfo(struct seq_file *m, void *v)
 {
 	unsigned long n = (unsigned long) v - 1;
+	unsigned long first = cpumask_first(cpu_online_mask);
 
-	if (!n)
+	if (n == first)
 		show_cpu_summary(m, v);
 	if (!machine_has_cpu_mhz)
 		return 0;
@@ -179,6 +180,8 @@
 {
 	if (*pos)
 		*pos = cpumask_next(*pos - 1, cpu_online_mask);
+	else
+		*pos = cpumask_first(cpu_online_mask);
 	return *pos < nr_cpu_ids ? (void *)*pos + 1 : NULL;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/ptrace.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/ptrace.c
@@ -324,6 +324,25 @@
 		child->thread.per_user.end = data;
 }
 
+static void fixup_int_code(struct task_struct *child, addr_t data)
+{
+	struct pt_regs *regs = task_pt_regs(child);
+	int ilc = regs->int_code >> 16;
+	u16 insn;
+
+	if (ilc > 6)
+		return;
+
+	if (ptrace_access_vm(child, regs->psw.addr - (regs->int_code >> 16),
+			&insn, sizeof(insn), FOLL_FORCE) != sizeof(insn))
+		return;
+
+	/* double check that tracee stopped on svc instruction */
+	if ((insn >> 8) != 0xa)
+		return;
+
+	regs->int_code = 0x20000 | (data & 0xffff);
+}
 /*
  * Write a word to the user area of a process at location addr. This
  * operation does have an additional problem compared to peek_user.
@@ -335,7 +354,9 @@
 	struct user *dummy = NULL;
 	addr_t offset;
 
+
 	if (addr < (addr_t) &dummy->regs.acrs) {
+		struct pt_regs *regs = task_pt_regs(child);
 		/*
 		 * psw and gprs are stored on the stack
 		 */
@@ -353,7 +374,11 @@
 				/* Invalid addressing mode bits */
 				return -EINVAL;
 		}
-		*(addr_t *)((addr_t) &task_pt_regs(child)->psw + addr) = data;
+
+		if (test_pt_regs_flag(regs, PIF_SYSCALL) &&
+			addr == offsetof(struct user, regs.gprs[2]))
+			fixup_int_code(child, data);
+		*(addr_t *)((addr_t) &regs->psw + addr) = data;
 
 	} else if (addr < (addr_t) (&dummy->regs.orig_gpr2)) {
 		/*
@@ -719,6 +744,10 @@
 			regs->psw.mask = (regs->psw.mask & ~PSW_MASK_BA) |
 				(__u64)(tmp & PSW32_ADDR_AMODE);
 		} else {
+
+			if (test_pt_regs_flag(regs, PIF_SYSCALL) &&
+				addr == offsetof(struct compat_user, regs.gprs[2]))
+				fixup_int_code(child, data);
 			/* gpr 0-15 */
 			*(__u32*)((addr_t) &regs->psw + addr*2 + 4) = tmp;
 		}
@@ -838,40 +867,45 @@
 asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
 {
 	unsigned long mask = -1UL;
+	long ret = -1;
 
 	/*
 	 * The sysc_tracesys code in entry.S stored the system
 	 * call number to gprs[2].
 	 */
 	if (test_thread_flag(TIF_SYSCALL_TRACE) &&
-	    (tracehook_report_syscall_entry(regs) ||
-	     regs->gprs[2] >= NR_syscalls)) {
+	    tracehook_report_syscall_entry(regs)) {
 		/*
-		 * Tracing decided this syscall should not happen or the
-		 * debugger stored an invalid system call number. Skip
+		 * Tracing decided this syscall should not happen. Skip
 		 * the system call and the system call restart handling.
 		 */
-		clear_pt_regs_flag(regs, PIF_SYSCALL);
-		return -1;
+		goto skip;
 	}
 
 	/* Do the secure computing check after ptrace. */
 	if (secure_computing(NULL)) {
 		/* seccomp failures shouldn't expose any additional code. */
-		return -1;
+		goto skip;
 	}
 
 	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
-		trace_sys_enter(regs, regs->gprs[2]);
+		trace_sys_enter(regs, regs->int_code & 0xffff);
 
 	if (is_compat_task())
 		mask = 0xffffffff;
 
-	audit_syscall_entry(regs->gprs[2], regs->orig_gpr2 & mask,
+	audit_syscall_entry(regs->int_code & 0xffff, regs->orig_gpr2 & mask,
 			    regs->gprs[3] &mask, regs->gprs[4] &mask,
 			    regs->gprs[5] &mask);
 
+	if ((signed long)regs->gprs[2] >= NR_syscalls) {
+		regs->gprs[2] = -ENOSYS;
+		ret = -ENOSYS;
+	}
 	return regs->gprs[2];
+skip:
+	clear_pt_regs_flag(regs, PIF_SYSCALL);
+	return ret;
 }
 
 asmlinkage void do_syscall_trace_exit(struct pt_regs *regs)
@@ -1256,7 +1290,6 @@
 		cb->pc == 1 &&
 		cb->qc == 0 &&
 		cb->reserved2 == 0 &&
-		cb->key == PAGE_DEFAULT_KEY &&
 		cb->reserved3 == 0 &&
 		cb->reserved4 == 0 &&
 		cb->reserved5 == 0 &&
@@ -1320,7 +1353,11 @@
 		kfree(data);
 		return -EINVAL;
 	}
-
+	/*
+	 * Override access key in any case, since user space should
+	 * not be able to set it, nor should it care about it.
+	 */
+	ri_cb.key = PAGE_DEFAULT_KEY >> 4;
 	preempt_disable();
 	if (!target->thread.ri_cb)
 		target->thread.ri_cb = data;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/runtime_instr.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/runtime_instr.c
@@ -57,7 +57,7 @@
 	cb->k = 1;
 	cb->ps = 1;
 	cb->pc = 1;
-	cb->key = PAGE_DEFAULT_KEY;
+	cb->key = PAGE_DEFAULT_KEY >> 4;
 	cb->v = 1;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/setup.c
@@ -49,6 +49,7 @@
 #include <linux/memory.h>
 #include <linux/compat.h>
 #include <linux/start_kernel.h>
+#include <linux/security.h>
 
 #include <asm/boot_data.h>
 #include <asm/ipl.h>
@@ -73,6 +74,7 @@
 #include <asm/nospec-branch.h>
 #include <asm/mem_detect.h>
 #include <asm/uv.h>
+#include <asm/asm-offsets.h>
 #include "entry.h"
 
 /*
@@ -92,10 +94,6 @@
 
 unsigned long int_hwcap = 0;
 
-#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
-int __bootdata_preserved(prot_virt_guest);
-#endif
-
 int __bootdata(noexec_disabled);
 int __bootdata(memory_end_set);
 unsigned long __bootdata(memory_end);
@@ -111,6 +109,8 @@
 unsigned long __bootdata_preserved(__sdma);
 unsigned long __bootdata_preserved(__edma);
 unsigned long __bootdata_preserved(__kaslr_offset);
+unsigned int __bootdata_preserved(zlib_dfltcc_support);
+EXPORT_SYMBOL(zlib_dfltcc_support);
 
 unsigned long VMALLOC_START;
 EXPORT_SYMBOL(VMALLOC_START);
@@ -355,7 +355,6 @@
 
 void __init arch_call_rest_init(void)
 {
-	struct stack_frame *frame;
 	unsigned long stack;
 
 	stack = stack_alloc();
@@ -368,13 +367,7 @@
 	set_task_stack_end_magic(current);
 	stack += STACK_INIT_OFFSET;
 	S390_lowcore.kernel_stack = stack;
-	frame = (struct stack_frame *) stack;
-	memset(frame, 0, sizeof(*frame));
-	/* Branch to rest_init on the new stack, never returns */
-	asm volatile(
-		"	la	15,0(%[_frame])\n"
-		"	jg	rest_init\n"
-		: : [_frame] "a" (frame));
+	CALL_ON_STACK_NORETURN(rest_init, stack);
 }
 
 static void __init setup_lowcore_dat_off(void)
@@ -457,6 +450,8 @@
 	lc->spinlock_index = 0;
 	arch_spin_lock_setup(0);
 	lc->br_r1_trampoline = 0x07f1;	/* br %r1 */
+	lc->return_lpswe = gen_lpswe(__LC_RETURN_PSW);
+	lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW);
 
 	set_prefix((u32)(unsigned long) lc);
 	lowcore_ptr[0] = lc;
@@ -571,6 +566,9 @@
 			vmax = _REGION1_SIZE; /* 4-level kernel page table */
 	}
 
+	if (is_prot_virt_host())
+		adjust_to_uv_max(&vmax);
+
 	/* module area is at the end of the kernel address space. */
 	MODULES_END = vmax;
 	MODULES_VADDR = MODULES_END - MODULES_LEN;
@@ -631,7 +629,7 @@
 /*
  * Make sure that the area behind memory_end is protected
  */
-static void reserve_memory_end(void)
+static void __init reserve_memory_end(void)
 {
 	if (memory_end_set)
 		memblock_reserve(memory_end, ULONG_MAX);
@@ -640,7 +638,7 @@
 /*
  * Make sure that oldmem, where the dump is stored, is protected
  */
-static void reserve_oldmem(void)
+static void __init reserve_oldmem(void)
 {
 #ifdef CONFIG_CRASH_DUMP
 	if (OLDMEM_BASE)
@@ -652,7 +650,7 @@
 /*
  * Make sure that oldmem, where the dump is stored, is protected
  */
-static void remove_oldmem(void)
+static void __init remove_oldmem(void)
 {
 #ifdef CONFIG_CRASH_DUMP
 	if (OLDMEM_BASE)
@@ -1059,7 +1057,7 @@
 
 	if (!early_ipl_comp_list_addr)
 		return;
-	if (ipl_block.hdr.flags & IPL_PL_FLAG_IPLSR)
+	if (ipl_block.hdr.flags & IPL_PL_FLAG_SIPL)
 		pr_info("Linux is running with Secure-IPL enabled\n");
 	else
 		pr_info("Linux is running with Secure-IPL disabled\n");
@@ -1103,6 +1101,12 @@
 
 	log_component_list();
 
+#ifdef CONFIG_LOCK_DOWN_IN_SECURE_BOOT
+	if (ipl_get_secureboot())
+		security_lock_kernel_down("Secure IPL",
+					  LOCKDOWN_INTEGRITY_MAX);
+#endif
+
 	/* Have one command line that is parsed and saved in /proc/cmdline */
 	/* boot_command_line has been already set up in early.c */
 	*cmdline_p = boot_command_line;
@@ -1117,6 +1121,7 @@
 	if (IS_ENABLED(CONFIG_EXPOLINE_AUTO))
 		nospec_auto_detect();
 
+	jump_label_init();
 	parse_early_param();
 #ifdef CONFIG_CRASH_DUMP
 	/* Deactivate elfcorehdr= kernel parameter */
@@ -1151,6 +1156,8 @@
 	 */
 	memblock_trim_memory(1UL << (MAX_ORDER - 1 + PAGE_SHIFT));
 
+	if (is_prot_virt_host())
+		setup_uv();
 	setup_memory_end();
 	setup_memory();
 	dma_contiguous_reserve(memory_end);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/smp.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/smp.c
@@ -212,6 +212,8 @@
 	lc->spinlock_lockval = arch_spin_lockval(cpu);
 	lc->spinlock_index = 0;
 	lc->br_r1_trampoline = 0x07f1;	/* br %r1 */
+	lc->return_lpswe = gen_lpswe(__LC_RETURN_PSW);
+	lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW);
 	if (nmi_alloc_per_cpu(lc))
 		goto out_async;
 	if (vdso_alloc_per_cpu(lc))
@@ -262,10 +264,13 @@
 	lc->spinlock_index = 0;
 	lc->percpu_offset = __per_cpu_offset[cpu];
 	lc->kernel_asce = S390_lowcore.kernel_asce;
+	lc->user_asce = S390_lowcore.kernel_asce;
 	lc->machine_flags = S390_lowcore.machine_flags;
 	lc->user_timer = lc->system_timer =
 		lc->steal_timer = lc->avg_steal_timer = 0;
 	__ctl_store(lc->cregs_save_area, 0, 15);
+	lc->cregs_save_area[1] = lc->kernel_asce;
+	lc->cregs_save_area[7] = lc->vdso_asce;
 	save_access_regs((unsigned int *) lc->access_regs_save_area);
 	memcpy(lc->stfle_fac_list, S390_lowcore.stfle_fac_list,
 	       sizeof(lc->stfle_fac_list));
@@ -398,7 +403,7 @@
 	return -1;
 }
 
-bool arch_vcpu_is_preempted(int cpu)
+bool notrace arch_vcpu_is_preempted(int cpu)
 {
 	if (test_cpu_flag_of(CIF_ENABLED_WAIT, cpu))
 		return false;
@@ -408,7 +413,7 @@
 }
 EXPORT_SYMBOL(arch_vcpu_is_preempted);
 
-void smp_yield_cpu(int cpu)
+void notrace smp_yield_cpu(int cpu)
 {
 	if (MACHINE_HAS_DIAG9C) {
 		diag_stat_inc_norecursion(DIAG_STAT_X09C);
@@ -724,39 +729,67 @@
 
 static int smp_add_present_cpu(int cpu);
 
-static int __smp_rescan_cpus(struct sclp_core_info *info, int sysfs_add)
+static int smp_add_core(struct sclp_core_entry *core, cpumask_t *avail,
+			bool configured, bool early)
 {
 	struct pcpu *pcpu;
-	cpumask_t avail;
-	int cpu, nr, i, j;
+	int cpu, nr, i;
 	u16 address;
 
 	nr = 0;
-	cpumask_xor(&avail, cpu_possible_mask, cpu_present_mask);
-	cpu = cpumask_first(&avail);
-	for (i = 0; (i < info->combined) && (cpu < nr_cpu_ids); i++) {
-		if (sclp.has_core_type && info->core[i].type != boot_core_type)
+	if (sclp.has_core_type && core->type != boot_core_type)
+		return nr;
+	cpu = cpumask_first(avail);
+	address = core->core_id << smp_cpu_mt_shift;
+	for (i = 0; (i <= smp_cpu_mtid) && (cpu < nr_cpu_ids); i++) {
+		if (pcpu_find_address(cpu_present_mask, address + i))
 			continue;
-		address = info->core[i].core_id << smp_cpu_mt_shift;
-		for (j = 0; j <= smp_cpu_mtid; j++) {
-			if (pcpu_find_address(cpu_present_mask, address + j))
-				continue;
-			pcpu = pcpu_devices + cpu;
-			pcpu->address = address + j;
-			pcpu->state =
-				(cpu >= info->configured*(smp_cpu_mtid + 1)) ?
-				CPU_STATE_STANDBY : CPU_STATE_CONFIGURED;
-			smp_cpu_set_polarization(cpu, POLARIZATION_UNKNOWN);
-			set_cpu_present(cpu, true);
-			if (sysfs_add && smp_add_present_cpu(cpu) != 0)
-				set_cpu_present(cpu, false);
-			else
-				nr++;
-			cpu = cpumask_next(cpu, &avail);
-			if (cpu >= nr_cpu_ids)
+		pcpu = pcpu_devices + cpu;
+		pcpu->address = address + i;
+		if (configured)
+			pcpu->state = CPU_STATE_CONFIGURED;
+		else
+			pcpu->state = CPU_STATE_STANDBY;
+		smp_cpu_set_polarization(cpu, POLARIZATION_UNKNOWN);
+		set_cpu_present(cpu, true);
+		if (!early && smp_add_present_cpu(cpu) != 0)
+			set_cpu_present(cpu, false);
+		else
+			nr++;
+		cpumask_clear_cpu(cpu, avail);
+		cpu = cpumask_next(cpu, avail);
+	}
+	return nr;
+}
+
+static int __smp_rescan_cpus(struct sclp_core_info *info, bool early)
+{
+	struct sclp_core_entry *core;
+	static cpumask_t avail;
+	bool configured;
+	u16 core_id;
+	int nr, i;
+
+	nr = 0;
+	cpumask_xor(&avail, cpu_possible_mask, cpu_present_mask);
+	/*
+	 * Add IPL core first (which got logical CPU number 0) to make sure
+	 * that all SMT threads get subsequent logical CPU numbers.
+	 */
+	if (early) {
+		core_id = pcpu_devices[0].address >> smp_cpu_mt_shift;
+		for (i = 0; i < info->configured; i++) {
+			core = &info->core[i];
+			if (core->core_id == core_id) {
+				nr += smp_add_core(core, &avail, true, early);
 				break;
+			}
 		}
 	}
+	for (i = 0; i < info->combined; i++) {
+		configured = i < info->configured;
+		nr += smp_add_core(&info->core[i], &avail, configured, early);
+	}
 	return nr;
 }
 
@@ -805,18 +838,21 @@
 
 	/* Add CPUs present at boot */
 	get_online_cpus();
-	__smp_rescan_cpus(info, 0);
+	__smp_rescan_cpus(info, true);
 	put_online_cpus();
 	memblock_free_early((unsigned long)info, sizeof(*info));
 }
 
 static void smp_init_secondary(void)
 {
-	int cpu = smp_processor_id();
+	int cpu = raw_smp_processor_id();
 
 	S390_lowcore.last_update_clock = get_tod_clock();
 	restore_access_regs(S390_lowcore.access_regs_save_area);
+	set_cpu_flag(CIF_ASCE_PRIMARY);
+	set_cpu_flag(CIF_ASCE_SECONDARY);
 	cpu_init();
+	rcu_cpu_starting(cpu);
 	preempt_disable();
 	init_cpu_timer();
 	vtime_init();
@@ -843,30 +879,18 @@
 	S390_lowcore.restart_source = -1UL;
 	__ctl_load(S390_lowcore.cregs_save_area, 0, 15);
 	__load_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT);
-	CALL_ON_STACK(smp_init_secondary, S390_lowcore.kernel_stack, 0);
+	CALL_ON_STACK_NORETURN(smp_init_secondary, S390_lowcore.kernel_stack);
 }
 
 /* Upping and downing of CPUs */
 int __cpu_up(unsigned int cpu, struct task_struct *tidle)
 {
-	struct pcpu *pcpu;
-	int base, i, rc;
+	struct pcpu *pcpu = pcpu_devices + cpu;
+	int rc;
 
-	pcpu = pcpu_devices + cpu;
 	if (pcpu->state != CPU_STATE_CONFIGURED)
 		return -EIO;
-	base = smp_get_base_cpu(cpu);
-	for (i = 0; i <= smp_cpu_mtid; i++) {
-		if (base + i < nr_cpu_ids)
-			if (cpu_online(base + i))
-				break;
-	}
-	/*
-	 * If this is the first CPU of the core to get online
-	 * do an initial CPU reset.
-	 */
-	if (i > smp_cpu_mtid &&
-	    pcpu_sigp_retry(pcpu_devices + base, SIGP_INITIAL_CPU_RESET, 0) !=
+	if (pcpu_sigp_retry(pcpu, SIGP_INITIAL_CPU_RESET, 0) !=
 	    SIGP_CC_ORDER_CODE_ACCEPTED)
 		return -EIO;
 
@@ -1148,7 +1172,7 @@
 	smp_get_core_info(info, 0);
 	get_online_cpus();
 	mutex_lock(&smp_cpu_state_mutex);
-	nr = __smp_rescan_cpus(info, 1);
+	nr = __smp_rescan_cpus(info, false);
 	mutex_unlock(&smp_cpu_state_mutex);
 	put_online_cpus();
 	kfree(info);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/time.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/time.c
@@ -310,6 +310,7 @@
 
 	vdso_data->tk_mult = tk->tkr_mono.mult;
 	vdso_data->tk_shift = tk->tkr_mono.shift;
+	vdso_data->hrtimer_res = hrtimer_resolution;
 	smp_wmb();
 	++vdso_data->tb_update_count;
 }
@@ -353,8 +354,9 @@
 static DEFINE_MUTEX(clock_sync_mutex);
 static unsigned long clock_sync_flags;
 
-#define CLOCK_SYNC_HAS_STP	0
-#define CLOCK_SYNC_STP		1
+#define CLOCK_SYNC_HAS_STP		0
+#define CLOCK_SYNC_STP			1
+#define CLOCK_SYNC_STPINFO_VALID	2
 
 /*
  * The get_clock function for the physical clock. It will get the current
@@ -591,6 +593,22 @@
 	queue_work(time_sync_wq, &stp_work);
 }
 
+static int __store_stpinfo(void)
+{
+	int rc = chsc_sstpi(stp_page, &stp_info, sizeof(struct stp_sstpi));
+
+	if (rc)
+		clear_bit(CLOCK_SYNC_STPINFO_VALID, &clock_sync_flags);
+	else
+		set_bit(CLOCK_SYNC_STPINFO_VALID, &clock_sync_flags);
+	return rc;
+}
+
+static int stpinfo_valid(void)
+{
+	return stp_online && test_bit(CLOCK_SYNC_STPINFO_VALID, &clock_sync_flags);
+}
+
 static int stp_sync_clock(void *data)
 {
 	struct clock_sync_data *sync = data;
@@ -612,8 +630,7 @@
 			if (rc == 0) {
 				sync->clock_delta = clock_delta;
 				clock_sync_global(clock_delta);
-				rc = chsc_sstpi(stp_page, &stp_info,
-						sizeof(struct stp_sstpi));
+				rc = __store_stpinfo();
 				if (rc == 0 && stp_info.tmd != 2)
 					rc = -EAGAIN;
 			}
@@ -658,7 +675,7 @@
 	if (rc)
 		goto out_unlock;
 
-	rc = chsc_sstpi(stp_page, &stp_info, sizeof(struct stp_sstpi));
+	rc = __store_stpinfo();
 	if (rc || stp_info.c == 0)
 		goto out_unlock;
 
@@ -695,10 +712,14 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%016llx\n",
-		       *(unsigned long long *) stp_info.ctnid);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%016llx\n",
+			      *(unsigned long long *) stp_info.ctnid);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(ctn_id, 0400, stp_ctn_id_show, NULL);
@@ -707,9 +728,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", stp_info.ctn);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", stp_info.ctn);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(ctn_type, 0400, stp_ctn_type_show, NULL);
@@ -718,9 +743,13 @@
 				   struct device_attribute *attr,
 				   char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x2000))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.dsto);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x2000))
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.dsto);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(dst_offset, 0400, stp_dst_offset_show, NULL);
@@ -729,9 +758,13 @@
 					struct device_attribute *attr,
 					char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x8000))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.leaps);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x8000))
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.leaps);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(leap_seconds, 0400, stp_leap_seconds_show, NULL);
@@ -740,9 +773,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.stratum);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.stratum);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(stratum, 0400, stp_stratum_show, NULL);
@@ -751,9 +788,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x0800))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int) stp_info.tto);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x0800))
+		ret = sprintf(buf, "%i\n", (int) stp_info.tto);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(time_offset, 0400, stp_time_offset_show, NULL);
@@ -762,9 +803,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x4000))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.tzo);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x4000))
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.tzo);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(time_zone_offset, 0400,
@@ -774,9 +819,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", stp_info.tmd);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", stp_info.tmd);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(timing_mode, 0400, stp_timing_mode_show, NULL);
@@ -785,9 +834,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", stp_info.tst);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", stp_info.tst);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(timing_state, 0400, stp_timing_state_show, NULL);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/topology.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/topology.c
@@ -65,6 +65,13 @@
 
 cpumask_t cpus_with_topology;
 
+int __cpu_to_node(int cpu)
+{
+	return cpu_topology[cpu].node_id;
+}
+
+EXPORT_SYMBOL(__cpu_to_node);
+
 static cpumask_t cpu_group_map(struct mask_info *info, unsigned int cpu)
 {
 	cpumask_t mask;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/trace.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/trace.c
@@ -14,7 +14,7 @@
 
 static DEFINE_PER_CPU(unsigned int, diagnose_trace_depth);
 
-void trace_s390_diagnose_norecursion(int diag_nr)
+void notrace trace_s390_diagnose_norecursion(int diag_nr)
 {
 	unsigned long flags;
 	unsigned int *depth;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/unwind_bc.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/unwind_bc.c
@@ -60,6 +60,11 @@
 		ip = READ_ONCE_NOCHECK(sf->gprs[8]);
 		reliable = false;
 		regs = NULL;
+		if (!__kernel_text_address(ip)) {
+			/* skip bogus %r14 */
+			state->regs = NULL;
+			return unwind_next_frame(state);
+		}
 	} else {
 		sf = (struct stack_frame *) state->sp;
 		sp = READ_ONCE_NOCHECK(sf->back_chain);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/uv.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/uv.c
@@ -0,0 +1,414 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Common Ultravisor functions and initialization
+ *
+ * Copyright IBM Corp. 2019, 2020
+ */
+#define KMSG_COMPONENT "prot_virt"
+#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/sizes.h>
+#include <linux/bitmap.h>
+#include <linux/memblock.h>
+#include <linux/pagemap.h>
+#include <linux/swap.h>
+#include <asm/facility.h>
+#include <asm/sections.h>
+#include <asm/uv.h>
+
+/* the bootdata_preserved fields come from ones in arch/s390/boot/uv.c */
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
+int __bootdata_preserved(prot_virt_guest);
+#endif
+
+#if IS_ENABLED(CONFIG_KVM)
+int prot_virt_host;
+EXPORT_SYMBOL(prot_virt_host);
+struct uv_info __bootdata_preserved(uv_info);
+EXPORT_SYMBOL(uv_info);
+
+static int __init prot_virt_setup(char *val)
+{
+	bool enabled;
+	int rc;
+
+	rc = kstrtobool(val, &enabled);
+	if (!rc && enabled)
+		prot_virt_host = 1;
+
+	if (is_prot_virt_guest() && prot_virt_host) {
+		prot_virt_host = 0;
+		pr_warn("Protected virtualization not available in protected guests.");
+	}
+
+	if (prot_virt_host && !test_facility(158)) {
+		prot_virt_host = 0;
+		pr_warn("Protected virtualization not supported by the hardware.");
+	}
+
+	return rc;
+}
+early_param("prot_virt", prot_virt_setup);
+
+static int __init uv_init(unsigned long stor_base, unsigned long stor_len)
+{
+	struct uv_cb_init uvcb = {
+		.header.cmd = UVC_CMD_INIT_UV,
+		.header.len = sizeof(uvcb),
+		.stor_origin = stor_base,
+		.stor_len = stor_len,
+	};
+
+	if (uv_call(0, (uint64_t)&uvcb)) {
+		pr_err("Ultravisor init failed with rc: 0x%x rrc: 0%x\n",
+		       uvcb.header.rc, uvcb.header.rrc);
+		return -1;
+	}
+	return 0;
+}
+
+void __init setup_uv(void)
+{
+	unsigned long uv_stor_base;
+
+	uv_stor_base = (unsigned long)memblock_alloc_try_nid(
+		uv_info.uv_base_stor_len, SZ_1M, SZ_2G,
+		MEMBLOCK_ALLOC_ACCESSIBLE, NUMA_NO_NODE);
+	if (!uv_stor_base) {
+		pr_warn("Failed to reserve %lu bytes for ultravisor base storage\n",
+			uv_info.uv_base_stor_len);
+		goto fail;
+	}
+
+	if (uv_init(uv_stor_base, uv_info.uv_base_stor_len)) {
+		memblock_free(uv_stor_base, uv_info.uv_base_stor_len);
+		goto fail;
+	}
+
+	pr_info("Reserving %luMB as ultravisor base storage\n",
+		uv_info.uv_base_stor_len >> 20);
+	return;
+fail:
+	pr_info("Disabling support for protected virtualization");
+	prot_virt_host = 0;
+}
+
+void adjust_to_uv_max(unsigned long *vmax)
+{
+	*vmax = min_t(unsigned long, *vmax, uv_info.max_sec_stor_addr);
+}
+
+/*
+ * Requests the Ultravisor to pin the page in the shared state. This will
+ * cause an intercept when the guest attempts to unshare the pinned page.
+ */
+static int uv_pin_shared(unsigned long paddr)
+{
+	struct uv_cb_cfs uvcb = {
+		.header.cmd = UVC_CMD_PIN_PAGE_SHARED,
+		.header.len = sizeof(uvcb),
+		.paddr = paddr,
+	};
+
+	if (uv_call(0, (u64)&uvcb))
+		return -EINVAL;
+	return 0;
+}
+
+/*
+ * Requests the Ultravisor to encrypt a guest page and make it
+ * accessible to the host for paging (export).
+ *
+ * @paddr: Absolute host address of page to be exported
+ */
+int uv_convert_from_secure(unsigned long paddr)
+{
+	struct uv_cb_cfs uvcb = {
+		.header.cmd = UVC_CMD_CONV_FROM_SEC_STOR,
+		.header.len = sizeof(uvcb),
+		.paddr = paddr
+	};
+
+	if (uv_call(0, (u64)&uvcb))
+		return -EINVAL;
+	return 0;
+}
+
+/*
+ * Calculate the expected ref_count for a page that would otherwise have no
+ * further pins. This was cribbed from similar functions in other places in
+ * the kernel, but with some slight modifications. We know that a secure
+ * page can not be a huge page for example.
+ */
+static int expected_page_refs(struct page *page)
+{
+	int res;
+
+	res = page_mapcount(page);
+	if (PageSwapCache(page)) {
+		res++;
+	} else if (page_mapping(page)) {
+		res++;
+		if (page_has_private(page))
+			res++;
+	}
+	return res;
+}
+
+static int make_secure_pte(pte_t *ptep, unsigned long addr,
+			   struct page *exp_page, struct uv_cb_header *uvcb)
+{
+	pte_t entry = READ_ONCE(*ptep);
+	struct page *page;
+	int expected, rc = 0;
+
+	if (!pte_present(entry))
+		return -ENXIO;
+	if (pte_val(entry) & _PAGE_INVALID)
+		return -ENXIO;
+
+	page = pte_page(entry);
+	if (page != exp_page)
+		return -ENXIO;
+	if (PageWriteback(page))
+		return -EAGAIN;
+	expected = expected_page_refs(page);
+	if (!page_ref_freeze(page, expected))
+		return -EBUSY;
+	set_bit(PG_arch_1, &page->flags);
+	rc = uv_call(0, (u64)uvcb);
+	page_ref_unfreeze(page, expected);
+	/* Return -ENXIO if the page was not mapped, -EINVAL otherwise */
+	if (rc)
+		rc = uvcb->rc == 0x10a ? -ENXIO : -EINVAL;
+	return rc;
+}
+
+/*
+ * Requests the Ultravisor to make a page accessible to a guest.
+ * If it's brought in the first time, it will be cleared. If
+ * it has been exported before, it will be decrypted and integrity
+ * checked.
+ */
+int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb)
+{
+	struct vm_area_struct *vma;
+	bool local_drain = false;
+	spinlock_t *ptelock;
+	unsigned long uaddr;
+	struct page *page;
+	pte_t *ptep;
+	int rc;
+
+again:
+	rc = -EFAULT;
+	down_read(&gmap->mm->mmap_sem);
+
+	uaddr = __gmap_translate(gmap, gaddr);
+	if (IS_ERR_VALUE(uaddr))
+		goto out;
+	vma = find_vma(gmap->mm, uaddr);
+	if (!vma)
+		goto out;
+	/*
+	 * Secure pages cannot be huge and userspace should not combine both.
+	 * In case userspace does it anyway this will result in an -EFAULT for
+	 * the unpack. The guest is thus never reaching secure mode. If
+	 * userspace is playing dirty tricky with mapping huge pages later
+	 * on this will result in a segmentation fault.
+	 */
+	if (is_vm_hugetlb_page(vma))
+		goto out;
+
+	rc = -ENXIO;
+	page = follow_page(vma, uaddr, FOLL_WRITE);
+	if (IS_ERR_OR_NULL(page))
+		goto out;
+
+	lock_page(page);
+	ptep = get_locked_pte(gmap->mm, uaddr, &ptelock);
+	rc = make_secure_pte(ptep, uaddr, page, uvcb);
+	pte_unmap_unlock(ptep, ptelock);
+	unlock_page(page);
+out:
+	up_read(&gmap->mm->mmap_sem);
+
+	if (rc == -EAGAIN) {
+		wait_on_page_writeback(page);
+	} else if (rc == -EBUSY) {
+		/*
+		 * If we have tried a local drain and the page refcount
+		 * still does not match our expected safe value, try with a
+		 * system wide drain. This is needed if the pagevecs holding
+		 * the page are on a different CPU.
+		 */
+		if (local_drain) {
+			lru_add_drain_all();
+			/* We give up here, and let the caller try again */
+			return -EAGAIN;
+		}
+		/*
+		 * We are here if the page refcount does not match the
+		 * expected safe value. The main culprits are usually
+		 * pagevecs. With lru_add_drain() we drain the pagevecs
+		 * on the local CPU so that hopefully the refcount will
+		 * reach the expected safe value.
+		 */
+		lru_add_drain();
+		local_drain = true;
+		/* And now we try again immediately after draining */
+		goto again;
+	} else if (rc == -ENXIO) {
+		if (gmap_fault(gmap, gaddr, FAULT_FLAG_WRITE))
+			return -EFAULT;
+		return -EAGAIN;
+	}
+	return rc;
+}
+EXPORT_SYMBOL_GPL(gmap_make_secure);
+
+int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr)
+{
+	struct uv_cb_cts uvcb = {
+		.header.cmd = UVC_CMD_CONV_TO_SEC_STOR,
+		.header.len = sizeof(uvcb),
+		.guest_handle = gmap->guest_handle,
+		.gaddr = gaddr,
+	};
+
+	return gmap_make_secure(gmap, gaddr, &uvcb);
+}
+EXPORT_SYMBOL_GPL(gmap_convert_to_secure);
+
+/*
+ * To be called with the page locked or with an extra reference! This will
+ * prevent gmap_make_secure from touching the page concurrently. Having 2
+ * parallel make_page_accessible is fine, as the UV calls will become a
+ * no-op if the page is already exported.
+ */
+int arch_make_page_accessible(struct page *page)
+{
+	int rc = 0;
+
+	/* Hugepage cannot be protected, so nothing to do */
+	if (PageHuge(page))
+		return 0;
+
+	/*
+	 * PG_arch_1 is used in 3 places:
+	 * 1. for kernel page tables during early boot
+	 * 2. for storage keys of huge pages and KVM
+	 * 3. As an indication that this page might be secure. This can
+	 *    overindicate, e.g. we set the bit before calling
+	 *    convert_to_secure.
+	 * As secure pages are never huge, all 3 variants can co-exists.
+	 */
+	if (!test_bit(PG_arch_1, &page->flags))
+		return 0;
+
+	rc = uv_pin_shared(page_to_phys(page));
+	if (!rc) {
+		clear_bit(PG_arch_1, &page->flags);
+		return 0;
+	}
+
+	rc = uv_convert_from_secure(page_to_phys(page));
+	if (!rc) {
+		clear_bit(PG_arch_1, &page->flags);
+		return 0;
+	}
+
+	return rc;
+}
+EXPORT_SYMBOL_GPL(arch_make_page_accessible);
+
+#endif
+
+#if defined(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) || IS_ENABLED(CONFIG_KVM)
+static ssize_t uv_query_facilities(struct kobject *kobj,
+				   struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%lx\n%lx\n%lx\n%lx\n",
+			uv_info.inst_calls_list[0],
+			uv_info.inst_calls_list[1],
+			uv_info.inst_calls_list[2],
+			uv_info.inst_calls_list[3]);
+}
+
+static struct kobj_attribute uv_query_facilities_attr =
+	__ATTR(facilities, 0444, uv_query_facilities, NULL);
+
+static ssize_t uv_query_max_guest_cpus(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%d\n",
+			uv_info.max_guest_cpus);
+}
+
+static struct kobj_attribute uv_query_max_guest_cpus_attr =
+	__ATTR(max_cpus, 0444, uv_query_max_guest_cpus, NULL);
+
+static ssize_t uv_query_max_guest_vms(struct kobject *kobj,
+				      struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%d\n",
+			uv_info.max_num_sec_conf);
+}
+
+static struct kobj_attribute uv_query_max_guest_vms_attr =
+	__ATTR(max_guests, 0444, uv_query_max_guest_vms, NULL);
+
+static ssize_t uv_query_max_guest_addr(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%lx\n",
+			uv_info.max_sec_stor_addr);
+}
+
+static struct kobj_attribute uv_query_max_guest_addr_attr =
+	__ATTR(max_address, 0444, uv_query_max_guest_addr, NULL);
+
+static struct attribute *uv_query_attrs[] = {
+	&uv_query_facilities_attr.attr,
+	&uv_query_max_guest_cpus_attr.attr,
+	&uv_query_max_guest_vms_attr.attr,
+	&uv_query_max_guest_addr_attr.attr,
+	NULL,
+};
+
+static struct attribute_group uv_query_attr_group = {
+	.attrs = uv_query_attrs,
+};
+
+static struct kset *uv_query_kset;
+static struct kobject *uv_kobj;
+
+static int __init uv_info_init(void)
+{
+	int rc = -ENOMEM;
+
+	if (!test_facility(158))
+		return 0;
+
+	uv_kobj = kobject_create_and_add("uv", firmware_kobj);
+	if (!uv_kobj)
+		return -ENOMEM;
+
+	uv_query_kset = kset_create_and_add("query", NULL, uv_kobj);
+	if (!uv_query_kset)
+		goto out_kobj;
+
+	rc = sysfs_create_group(&uv_query_kset->kobj, &uv_query_attr_group);
+	if (!rc)
+		return 0;
+
+	kset_unregister(uv_query_kset);
+out_kobj:
+	kobject_del(uv_kobj);
+	kobject_put(uv_kobj);
+	return rc;
+}
+device_initcall(uv_info_init);
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/vdso64/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/vdso64/Makefile
@@ -18,8 +18,8 @@
 
 KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS))
 KBUILD_CFLAGS_64 += -m64 -fPIC -shared -fno-common -fno-builtin
-KBUILD_CFLAGS_64 += -nostdlib -Wl,-soname=linux-vdso64.so.1 \
-		    -Wl,--hash-style=both
+ldflags-y := -fPIC -shared -nostdlib -soname=linux-vdso64.so.1 \
+	     --hash-style=both --build-id -T
 
 $(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
 $(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_64)
@@ -37,8 +37,8 @@
 $(obj)/vdso64_wrapper.o : $(obj)/vdso64.so
 
 # link rule for the .so file, .lds has to be first
-$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) FORCE
-	$(call if_changed,vdso64ld)
+$(obj)/vdso64.so.dbg: $(obj)/vdso64.lds $(obj-vdso64) FORCE
+	$(call if_changed,ld)
 
 # strip rule for the .so file
 $(obj)/%.so: OBJCOPYFLAGS := -S
@@ -50,8 +50,6 @@
 	$(call if_changed_dep,vdso64as)
 
 # actual build commands
-quiet_cmd_vdso64ld = VDSO64L $@
-      cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $(filter %.lds %.o,$^) -o $@
 quiet_cmd_vdso64as = VDSO64A $@
       cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $<
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/vdso64/clock_getres.S
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/vdso64/clock_getres.S
@@ -17,12 +17,14 @@
 	.type  __kernel_clock_getres,@function
 __kernel_clock_getres:
 	CFI_STARTPROC
-	larl	%r1,4f
+	larl	%r1,3f
+	lg	%r0,0(%r1)
 	cghi	%r2,__CLOCK_REALTIME_COARSE
 	je	0f
 	cghi	%r2,__CLOCK_MONOTONIC_COARSE
 	je	0f
-	larl	%r1,3f
+	larl	%r1,_vdso_data
+	llgf	%r0,__VDSO_CLOCK_REALTIME_RES(%r1)
 	cghi	%r2,__CLOCK_REALTIME
 	je	0f
 	cghi	%r2,__CLOCK_MONOTONIC
@@ -36,7 +38,6 @@
 	jz	2f
 0:	ltgr	%r3,%r3
 	jz	1f				/* res == NULL */
-	lg	%r0,0(%r1)
 	xc	0(8,%r3),0(%r3)			/* set tp->tv_sec to zero */
 	stg	%r0,8(%r3)			/* store tp->tv_usec */
 1:	lghi	%r2,0
@@ -45,6 +46,5 @@
 	svc	0
 	br	%r14
 	CFI_ENDPROC
-3:	.quad	__CLOCK_REALTIME_RES
-4:	.quad	__CLOCK_COARSE_RES
+3:	.quad	__CLOCK_COARSE_RES
 	.size	__kernel_clock_getres,.-__kernel_clock_getres
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kernel/vtime.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kernel/vtime.c
@@ -136,7 +136,8 @@
 		"	stck	%1"	/* Store current tod clock value */
 #endif
 		: "=Q" (S390_lowcore.last_update_timer),
-		  "=Q" (S390_lowcore.last_update_clock));
+		  "=Q" (S390_lowcore.last_update_clock)
+		: : "cc");
 	clock = S390_lowcore.last_update_clock - clock;
 	timer -= S390_lowcore.last_update_timer;
 
@@ -216,7 +217,7 @@
 	avg_steal = S390_lowcore.avg_steal_timer / 2;
 	if ((s64) steal > 0) {
 		S390_lowcore.steal_timer = 0;
-		account_steal_time(steal);
+		account_steal_time(cputime_to_nsecs(steal));
 		avg_steal += steal;
 	}
 	S390_lowcore.avg_steal_timer = avg_steal;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/Makefile
@@ -9,6 +9,6 @@
 ccflags-y := -Ivirt/kvm -Iarch/s390/kvm
 
 kvm-objs := $(common-objs) kvm-s390.o intercept.o interrupt.o priv.o sigp.o
-kvm-objs += diag.o gaccess.o guestdbg.o vsie.o
+kvm-objs += diag.o gaccess.o guestdbg.o vsie.o pv.o
 
 obj-$(CONFIG_KVM) += kvm.o
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/diag.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/diag.c
@@ -2,7 +2,7 @@
 /*
  * handling diagnose instructions
  *
- * Copyright IBM Corp. 2008, 2011
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -187,6 +187,10 @@
 		return -EOPNOTSUPP;
 	}
 
+	/*
+	 * no need to check the return value of vcpu_stop as it can only have
+	 * an error for protvirt, but protvirt means user cpu state
+	 */
 	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
 		kvm_s390_vcpu_stop(vcpu);
 	vcpu->run->s390_reset_flags |= KVM_S390_RESET_SUBSYSTEM;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/intercept.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/intercept.c
@@ -2,7 +2,7 @@
 /*
  * in-kernel handling for sie intercepts
  *
- * Copyright IBM Corp. 2008, 2014
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -16,6 +16,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/irq.h>
 #include <asm/sysinfo.h>
+#include <asm/uv.h>
 
 #include "kvm-s390.h"
 #include "gaccess.h"
@@ -79,6 +80,10 @@
 			return rc;
 	}
 
+	/*
+	 * no need to check the return value of vcpu_stop as it can only have
+	 * an error for protvirt, but protvirt means user cpu state
+	 */
 	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
 		kvm_s390_vcpu_stop(vcpu);
 	return -EOPNOTSUPP;
@@ -231,6 +236,13 @@
 
 	vcpu->stat.exit_program_interruption++;
 
+	/*
+	 * Intercept 8 indicates a loop of specification exceptions
+	 * for protected guests.
+	 */
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		return -EOPNOTSUPP;
+
 	if (guestdbg_enabled(vcpu) && per_event(vcpu)) {
 		rc = kvm_s390_handle_per_event(vcpu);
 		if (rc)
@@ -384,7 +396,7 @@
 		goto out;
 	}
 
-	if (addr & ~PAGE_MASK)
+	if (!kvm_s390_pv_cpu_is_protected(vcpu) && (addr & ~PAGE_MASK))
 		return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
 	sctns = (void *)get_zeroed_page(GFP_KERNEL);
@@ -395,10 +407,15 @@
 
 out:
 	if (!cc) {
-		r = write_guest(vcpu, addr, reg2, sctns, PAGE_SIZE);
-		if (r) {
-			free_page((unsigned long)sctns);
-			return kvm_s390_inject_prog_cond(vcpu, r);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			memcpy((void *)(sida_origin(vcpu->arch.sie_block)),
+			       sctns, PAGE_SIZE);
+		} else {
+			r = write_guest(vcpu, addr, reg2, sctns, PAGE_SIZE);
+			if (r) {
+				free_page((unsigned long)sctns);
+				return kvm_s390_inject_prog_cond(vcpu, r);
+			}
 		}
 	}
 
@@ -444,6 +461,77 @@
 	return kvm_s390_inject_program_int(vcpu, PGM_OPERATION);
 }
 
+static int handle_pv_spx(struct kvm_vcpu *vcpu)
+{
+	u32 pref = *(u32 *)vcpu->arch.sie_block->sidad;
+
+	kvm_s390_set_prefix(vcpu, pref);
+	trace_kvm_s390_handle_prefix(vcpu, 1, pref);
+	return 0;
+}
+
+static int handle_pv_sclp(struct kvm_vcpu *vcpu)
+{
+	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
+
+	spin_lock(&fi->lock);
+	/*
+	 * 2 cases:
+	 * a: an sccb answering interrupt was already pending or in flight.
+	 *    As the sccb value is not known we can simply set some value to
+	 *    trigger delivery of a saved SCCB. UV will then use its saved
+	 *    copy of the SCCB value.
+	 * b: an error SCCB interrupt needs to be injected so we also inject
+	 *    a fake SCCB address. Firmware will use the proper one.
+	 * This makes sure, that both errors and real sccb returns will only
+	 * be delivered after a notification intercept (instruction has
+	 * finished) but not after others.
+	 */
+	fi->srv_signal.ext_params |= 0x43000;
+	set_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs);
+	clear_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs);
+	spin_unlock(&fi->lock);
+	return 0;
+}
+
+static int handle_pv_uvc(struct kvm_vcpu *vcpu)
+{
+	struct uv_cb_share *guest_uvcb = (void *)vcpu->arch.sie_block->sidad;
+	struct uv_cb_cts uvcb = {
+		.header.cmd	= UVC_CMD_UNPIN_PAGE_SHARED,
+		.header.len	= sizeof(uvcb),
+		.guest_handle	= kvm_s390_pv_get_handle(vcpu->kvm),
+		.gaddr		= guest_uvcb->paddr,
+	};
+	int rc;
+
+	if (guest_uvcb->header.cmd != UVC_CMD_REMOVE_SHARED_ACCESS) {
+		WARN_ONCE(1, "Unexpected notification intercept for UVC 0x%x\n",
+			  guest_uvcb->header.cmd);
+		return 0;
+	}
+	rc = gmap_make_secure(vcpu->arch.gmap, uvcb.gaddr, &uvcb);
+	/*
+	 * If the unpin did not succeed, the guest will exit again for the UVC
+	 * and we will retry the unpin.
+	 */
+	if (rc == -EINVAL)
+		return 0;
+	return rc;
+}
+
+static int handle_pv_notification(struct kvm_vcpu *vcpu)
+{
+	if (vcpu->arch.sie_block->ipa == 0xb210)
+		return handle_pv_spx(vcpu);
+	if (vcpu->arch.sie_block->ipa == 0xb220)
+		return handle_pv_sclp(vcpu);
+	if (vcpu->arch.sie_block->ipa == 0xb9a4)
+		return handle_pv_uvc(vcpu);
+
+	return handle_instruction(vcpu);
+}
+
 int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu)
 {
 	int rc, per_rc = 0;
@@ -480,6 +568,28 @@
 	case ICPT_KSS:
 		rc = kvm_s390_skey_check_enable(vcpu);
 		break;
+	case ICPT_MCHKREQ:
+	case ICPT_INT_ENABLE:
+		/*
+		 * PSW bit 13 or a CR (0, 6, 14) changed and we might
+		 * now be able to deliver interrupts. The pre-run code
+		 * will take care of this.
+		 */
+		rc = 0;
+		break;
+	case ICPT_PV_INSTR:
+		rc = handle_instruction(vcpu);
+		break;
+	case ICPT_PV_NOTIFY:
+		rc = handle_pv_notification(vcpu);
+		break;
+	case ICPT_PV_PREF:
+		rc = 0;
+		gmap_convert_to_secure(vcpu->arch.gmap,
+				       kvm_s390_get_prefix(vcpu));
+		gmap_convert_to_secure(vcpu->arch.gmap,
+				       kvm_s390_get_prefix(vcpu) + PAGE_SIZE);
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/interrupt.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/interrupt.c
@@ -2,7 +2,7 @@
 /*
  * handling kvm guest interrupts
  *
- * Copyright IBM Corp. 2008, 2015
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  */
@@ -324,8 +324,11 @@
 
 static inline unsigned long pending_irqs_no_gisa(struct kvm_vcpu *vcpu)
 {
-	return vcpu->kvm->arch.float_int.pending_irqs |
-		vcpu->arch.local_int.pending_irqs;
+	unsigned long pending = vcpu->kvm->arch.float_int.pending_irqs |
+				vcpu->arch.local_int.pending_irqs;
+
+	pending &= ~vcpu->kvm->arch.float_int.masked_irqs;
+	return pending;
 }
 
 static inline unsigned long pending_irqs(struct kvm_vcpu *vcpu)
@@ -383,10 +386,18 @@
 		__clear_bit(IRQ_PEND_EXT_CLOCK_COMP, &active_mask);
 	if (!(vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK))
 		__clear_bit(IRQ_PEND_EXT_CPU_TIMER, &active_mask);
-	if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK))
+	if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK)) {
 		__clear_bit(IRQ_PEND_EXT_SERVICE, &active_mask);
+		__clear_bit(IRQ_PEND_EXT_SERVICE_EV, &active_mask);
+	}
 	if (psw_mchk_disabled(vcpu))
 		active_mask &= ~IRQ_PEND_MCHK_MASK;
+	/* PV guest cpus can have a single interruption injected at a time. */
+	if (kvm_s390_pv_cpu_is_protected(vcpu) &&
+	    vcpu->arch.sie_block->iictl != IICTL_CODE_NONE)
+		active_mask &= ~(IRQ_PEND_EXT_II_MASK |
+				 IRQ_PEND_IO_MASK |
+				 IRQ_PEND_MCHK_MASK);
 	/*
 	 * Check both floating and local interrupt's cr14 because
 	 * bit IRQ_PEND_MCHK_REP could be set in both cases.
@@ -479,19 +490,23 @@
 static int __must_check __deliver_cpu_timer(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
-	int rc;
+	int rc = 0;
 
 	vcpu->stat.deliver_cputm++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_CPU_TIMER,
 					 0, 0);
-
-	rc  = put_guest_lc(vcpu, EXT_IRQ_CPU_TIMER,
-			   (u16 *)__LC_EXT_INT_CODE);
-	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
-	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_CPU_TIMER;
+	} else {
+		rc  = put_guest_lc(vcpu, EXT_IRQ_CPU_TIMER,
+				   (u16 *)__LC_EXT_INT_CODE);
+		rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
+		rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
+				     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+		rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
+				    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	}
 	clear_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs);
 	return rc ? -EFAULT : 0;
 }
@@ -499,19 +514,23 @@
 static int __must_check __deliver_ckc(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
-	int rc;
+	int rc = 0;
 
 	vcpu->stat.deliver_ckc++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_CLOCK_COMP,
 					 0, 0);
-
-	rc  = put_guest_lc(vcpu, EXT_IRQ_CLK_COMP,
-			   (u16 __user *)__LC_EXT_INT_CODE);
-	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
-	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_CLK_COMP;
+	} else {
+		rc  = put_guest_lc(vcpu, EXT_IRQ_CLK_COMP,
+				   (u16 __user *)__LC_EXT_INT_CODE);
+		rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
+		rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
+				     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+		rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
+				    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	}
 	clear_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs);
 	return rc ? -EFAULT : 0;
 }
@@ -553,6 +572,20 @@
 	union mci mci;
 	int rc;
 
+	/*
+	 * All other possible payload for a machine check (e.g. the register
+	 * contents in the save area) will be handled by the ultravisor, as
+	 * the hypervisor does not not have the needed information for
+	 * protected guests.
+	 */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_MCHK;
+		vcpu->arch.sie_block->mcic = mchk->mcic;
+		vcpu->arch.sie_block->faddr = mchk->failing_storage_address;
+		vcpu->arch.sie_block->edc = mchk->ext_damage_code;
+		return 0;
+	}
+
 	mci.val = mchk->mcic;
 	/* take care of lazy register loading */
 	save_fpu_regs();
@@ -696,17 +729,21 @@
 static int __must_check __deliver_restart(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
-	int rc;
+	int rc = 0;
 
 	VCPU_EVENT(vcpu, 3, "%s", "deliver: cpu restart");
 	vcpu->stat.deliver_restart_signal++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_RESTART, 0, 0);
 
-	rc  = write_guest_lc(vcpu,
-			     offsetof(struct lowcore, restart_old_psw),
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, offsetof(struct lowcore, restart_psw),
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_RESTART;
+	} else {
+		rc  = write_guest_lc(vcpu,
+				     offsetof(struct lowcore, restart_old_psw),
+				     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+		rc |= read_guest_lc(vcpu, offsetof(struct lowcore, restart_psw),
+				    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	}
 	clear_bit(IRQ_PEND_RESTART, &li->pending_irqs);
 	return rc ? -EFAULT : 0;
 }
@@ -748,6 +785,12 @@
 	vcpu->stat.deliver_emergency_signal++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_EMERGENCY,
 					 cpu_addr, 0);
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_EMERGENCY_SIG;
+		vcpu->arch.sie_block->extcpuaddr = cpu_addr;
+		return 0;
+	}
 
 	rc  = put_guest_lc(vcpu, EXT_IRQ_EMERGENCY_SIG,
 			   (u16 *)__LC_EXT_INT_CODE);
@@ -776,6 +819,12 @@
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id,
 					 KVM_S390_INT_EXTERNAL_CALL,
 					 extcall.code, 0);
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_EXTERNAL_CALL;
+		vcpu->arch.sie_block->extcpuaddr = extcall.code;
+		return 0;
+	}
 
 	rc  = put_guest_lc(vcpu, EXT_IRQ_EXTERNAL_CALL,
 			   (u16 *)__LC_EXT_INT_CODE);
@@ -787,6 +836,21 @@
 	return rc ? -EFAULT : 0;
 }
 
+static int __deliver_prog_pv(struct kvm_vcpu *vcpu, u16 code)
+{
+	switch (code) {
+	case PGM_SPECIFICATION:
+		vcpu->arch.sie_block->iictl = IICTL_CODE_SPECIFICATION;
+		break;
+	case PGM_OPERAND:
+		vcpu->arch.sie_block->iictl = IICTL_CODE_OPERAND;
+		break;
+	default:
+		return -EINVAL;
+	}
+	return 0;
+}
+
 static int __must_check __deliver_prog(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
@@ -807,6 +871,10 @@
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_PROGRAM_INT,
 					 pgm_info.code, 0);
 
+	/* PER is handled by the ultravisor */
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		return __deliver_prog_pv(vcpu, pgm_info.code & ~PGM_PER);
+
 	switch (pgm_info.code & ~PGM_PER) {
 	case PGM_AFX_TRANSLATION:
 	case PGM_ASX_TRANSLATION:
@@ -902,20 +970,49 @@
 	return rc ? -EFAULT : 0;
 }
 
+#define SCCB_MASK 0xFFFFFFF8
+#define SCCB_EVENT_PENDING 0x3
+
+static int write_sclp(struct kvm_vcpu *vcpu, u32 parm)
+{
+	int rc;
+
+	if (kvm_s390_pv_cpu_get_handle(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_SERVICE_SIG;
+		vcpu->arch.sie_block->eiparams = parm;
+		return 0;
+	}
+
+	rc  = put_guest_lc(vcpu, EXT_IRQ_SERVICE_SIG, (u16 *)__LC_EXT_INT_CODE);
+	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
+	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
+			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
+			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	rc |= put_guest_lc(vcpu, parm,
+			   (u32 *)__LC_EXT_PARAMS);
+
+	return rc ? -EFAULT : 0;
+}
+
 static int __must_check __deliver_service(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
 	struct kvm_s390_ext_info ext;
-	int rc = 0;
 
 	spin_lock(&fi->lock);
-	if (!(test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs))) {
+	if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs) ||
+	    !(test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs))) {
 		spin_unlock(&fi->lock);
 		return 0;
 	}
 	ext = fi->srv_signal;
 	memset(&fi->srv_signal, 0, sizeof(ext));
 	clear_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs);
+	clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		set_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs);
 	spin_unlock(&fi->lock);
 
 	VCPU_EVENT(vcpu, 4, "deliver: sclp parameter 0x%x",
@@ -924,16 +1021,31 @@
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_SERVICE,
 					 ext.ext_params, 0);
 
-	rc  = put_guest_lc(vcpu, EXT_IRQ_SERVICE_SIG, (u16 *)__LC_EXT_INT_CODE);
-	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
-	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= put_guest_lc(vcpu, ext.ext_params,
-			   (u32 *)__LC_EXT_PARAMS);
+	return write_sclp(vcpu, ext.ext_params);
+}
 
-	return rc ? -EFAULT : 0;
+static int __must_check __deliver_service_ev(struct kvm_vcpu *vcpu)
+{
+	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
+	struct kvm_s390_ext_info ext;
+
+	spin_lock(&fi->lock);
+	if (!(test_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs))) {
+		spin_unlock(&fi->lock);
+		return 0;
+	}
+	ext = fi->srv_signal;
+	/* only clear the event bit */
+	fi->srv_signal.ext_params &= ~SCCB_EVENT_PENDING;
+	clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
+	spin_unlock(&fi->lock);
+
+	VCPU_EVENT(vcpu, 4, "%s", "deliver: sclp parameter event");
+	vcpu->stat.deliver_service_signal++;
+	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_SERVICE,
+					 ext.ext_params, 0);
+
+	return write_sclp(vcpu, SCCB_EVENT_PENDING);
 }
 
 static int __must_check __deliver_pfault_done(struct kvm_vcpu *vcpu)
@@ -1028,6 +1140,15 @@
 {
 	int rc;
 
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_IO;
+		vcpu->arch.sie_block->subchannel_id = io->subchannel_id;
+		vcpu->arch.sie_block->subchannel_nr = io->subchannel_nr;
+		vcpu->arch.sie_block->io_int_parm = io->io_int_parm;
+		vcpu->arch.sie_block->io_int_word = io->io_int_word;
+		return 0;
+	}
+
 	rc  = put_guest_lc(vcpu, io->subchannel_id, (u16 *)__LC_SUBCHANNEL_ID);
 	rc |= put_guest_lc(vcpu, io->subchannel_nr, (u16 *)__LC_SUBCHANNEL_NR);
 	rc |= put_guest_lc(vcpu, io->io_int_parm, (u32 *)__LC_IO_INT_PARM);
@@ -1329,6 +1450,9 @@
 		case IRQ_PEND_EXT_SERVICE:
 			rc = __deliver_service(vcpu);
 			break;
+		case IRQ_PEND_EXT_SERVICE_EV:
+			rc = __deliver_service_ev(vcpu);
+			break;
 		case IRQ_PEND_PFAULT_DONE:
 			rc = __deliver_pfault_done(vcpu);
 			break;
@@ -1421,7 +1545,7 @@
 	if (kvm_get_vcpu_by_id(vcpu->kvm, src_id) == NULL)
 		return -EINVAL;
 
-	if (sclp.has_sigpif)
+	if (sclp.has_sigpif && !kvm_s390_pv_cpu_get_handle(vcpu))
 		return sca_inject_ext_call(vcpu, src_id);
 
 	if (test_and_set_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs))
@@ -1682,9 +1806,6 @@
 	return inti;
 }
 
-#define SCCB_MASK 0xFFFFFFF8
-#define SCCB_EVENT_PENDING 0x3
-
 static int __inject_service(struct kvm *kvm,
 			     struct kvm_s390_interrupt_info *inti)
 {
@@ -1693,6 +1814,11 @@
 	kvm->stat.inject_service_signal++;
 	spin_lock(&fi->lock);
 	fi->srv_signal.ext_params |= inti->ext.ext_params & SCCB_EVENT_PENDING;
+
+	/* We always allow events, track them separately from the sccb ints */
+	if (fi->srv_signal.ext_params & SCCB_EVENT_PENDING)
+		set_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
+
 	/*
 	 * Early versions of the QEMU s390 bios will inject several
 	 * service interrupts after another without handling a
@@ -1774,7 +1900,14 @@
 	kvm->stat.inject_io++;
 	isc = int_word_to_isc(inti->io.io_int_word);
 
-	if (gi->origin && inti->type & KVM_S390_INT_IO_AI_MASK) {
+	/*
+	 * Do not make use of gisa in protected mode. We do not use the lock
+	 * checking variant as this is just a performance optimization and we
+	 * do not hold the lock here. This is ok as the code will pick
+	 * interrupts from both "lists" for delivery.
+	 */
+	if (!kvm_s390_pv_get_handle(kvm) &&
+	    gi->origin && inti->type & KVM_S390_INT_IO_AI_MASK) {
 		VM_EVENT(kvm, 4, "%s isc %1u", "inject: I/O (AI/gisa)", isc);
 		gisa_set_ipm_gisc(gi->origin, isc);
 		kfree(inti);
@@ -1835,7 +1968,8 @@
 		break;
 	case KVM_S390_INT_IO_MIN...KVM_S390_INT_IO_MAX:
 		if (!(type & KVM_S390_INT_IO_AI_MASK &&
-		      kvm->arch.gisa_int.origin))
+		      kvm->arch.gisa_int.origin) ||
+		      kvm_s390_pv_cpu_get_handle(dst_vcpu))
 			kvm_s390_set_cpuflags(dst_vcpu, CPUSTAT_IO_INT);
 		break;
 	default:
@@ -2081,6 +2215,10 @@
 	struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
 	int i;
 
+	mutex_lock(&kvm->lock);
+	if (!kvm_s390_pv_is_protected(kvm))
+		fi->masked_irqs = 0;
+	mutex_unlock(&kvm->lock);
 	spin_lock(&fi->lock);
 	fi->pending_irqs = 0;
 	memset(&fi->srv_signal, 0, sizeof(fi->srv_signal));
@@ -2147,7 +2285,8 @@
 			n++;
 		}
 	}
-	if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs)) {
+	if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs) ||
+	    test_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs)) {
 		if (n == max_irqs) {
 			/* signal userspace to try again */
 			ret = -ENOMEM;
@@ -2191,7 +2330,7 @@
 		return -EINVAL;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	mutex_lock(&fi->ais_lock);
 	ais.simm = fi->simm;
@@ -2328,9 +2467,6 @@
 	if (!adapter)
 		return -ENOMEM;
 
-	INIT_LIST_HEAD(&adapter->maps);
-	init_rwsem(&adapter->maps_lock);
-	atomic_set(&adapter->nr_maps, 0);
 	adapter->id = adapter_info.id;
 	adapter->isc = adapter_info.isc;
 	adapter->maskable = adapter_info.maskable;
@@ -2355,87 +2491,12 @@
 	return ret;
 }
 
-static int kvm_s390_adapter_map(struct kvm *kvm, unsigned int id, __u64 addr)
-{
-	struct s390_io_adapter *adapter = get_io_adapter(kvm, id);
-	struct s390_map_info *map;
-	int ret;
-
-	if (!adapter || !addr)
-		return -EINVAL;
-
-	map = kzalloc(sizeof(*map), GFP_KERNEL);
-	if (!map) {
-		ret = -ENOMEM;
-		goto out;
-	}
-	INIT_LIST_HEAD(&map->list);
-	map->guest_addr = addr;
-	map->addr = gmap_translate(kvm->arch.gmap, addr);
-	if (map->addr == -EFAULT) {
-		ret = -EFAULT;
-		goto out;
-	}
-	ret = get_user_pages_fast(map->addr, 1, FOLL_WRITE, &map->page);
-	if (ret < 0)
-		goto out;
-	BUG_ON(ret != 1);
-	down_write(&adapter->maps_lock);
-	if (atomic_inc_return(&adapter->nr_maps) < MAX_S390_ADAPTER_MAPS) {
-		list_add_tail(&map->list, &adapter->maps);
-		ret = 0;
-	} else {
-		put_page(map->page);
-		ret = -EINVAL;
-	}
-	up_write(&adapter->maps_lock);
-out:
-	if (ret)
-		kfree(map);
-	return ret;
-}
-
-static int kvm_s390_adapter_unmap(struct kvm *kvm, unsigned int id, __u64 addr)
-{
-	struct s390_io_adapter *adapter = get_io_adapter(kvm, id);
-	struct s390_map_info *map, *tmp;
-	int found = 0;
-
-	if (!adapter || !addr)
-		return -EINVAL;
-
-	down_write(&adapter->maps_lock);
-	list_for_each_entry_safe(map, tmp, &adapter->maps, list) {
-		if (map->guest_addr == addr) {
-			found = 1;
-			atomic_dec(&adapter->nr_maps);
-			list_del(&map->list);
-			put_page(map->page);
-			kfree(map);
-			break;
-		}
-	}
-	up_write(&adapter->maps_lock);
-
-	return found ? 0 : -EINVAL;
-}
-
 void kvm_s390_destroy_adapters(struct kvm *kvm)
 {
 	int i;
-	struct s390_map_info *map, *tmp;
 
-	for (i = 0; i < MAX_S390_IO_ADAPTERS; i++) {
-		if (!kvm->arch.adapters[i])
-			continue;
-		list_for_each_entry_safe(map, tmp,
-					 &kvm->arch.adapters[i]->maps, list) {
-			list_del(&map->list);
-			put_page(map->page);
-			kfree(map);
-		}
+	for (i = 0; i < MAX_S390_IO_ADAPTERS; i++)
 		kfree(kvm->arch.adapters[i]);
-	}
 }
 
 static int modify_io_adapter(struct kvm_device *dev,
@@ -2457,11 +2518,14 @@
 		if (ret > 0)
 			ret = 0;
 		break;
+	/*
+	 * The following operations are no longer needed and therefore no-ops.
+	 * The gpa to hva translation is done when an IRQ route is set up. The
+	 * set_irq code uses get_user_pages_remote() to do the actual write.
+	 */
 	case KVM_S390_IO_ADAPTER_MAP:
-		ret = kvm_s390_adapter_map(dev->kvm, req.id, req.addr);
-		break;
 	case KVM_S390_IO_ADAPTER_UNMAP:
-		ret = kvm_s390_adapter_unmap(dev->kvm, req.id, req.addr);
+		ret = 0;
 		break;
 	default:
 		ret = -EINVAL;
@@ -2500,7 +2564,7 @@
 	int ret = 0;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	if (copy_from_user(&req, (void __user *)attr->addr, sizeof(req)))
 		return -EFAULT;
@@ -2580,7 +2644,7 @@
 	struct kvm_s390_ais_all ais;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	if (copy_from_user(&ais, (void __user *)attr->addr, sizeof(ais)))
 		return -EFAULT;
@@ -2700,19 +2764,15 @@
 	return swap ? (bit ^ (BITS_PER_LONG - 1)) : bit;
 }
 
-static struct s390_map_info *get_map_info(struct s390_io_adapter *adapter,
-					  u64 addr)
+static struct page *get_map_page(struct kvm *kvm, u64 uaddr)
 {
-	struct s390_map_info *map;
+	struct page *page = NULL;
 
-	if (!adapter)
-		return NULL;
-
-	list_for_each_entry(map, &adapter->maps, list) {
-		if (map->guest_addr == addr)
-			return map;
-	}
-	return NULL;
+	down_read(&kvm->mm->mmap_sem);
+	get_user_pages_remote(NULL, kvm->mm, uaddr, 1, FOLL_WRITE,
+			      &page, NULL, NULL);
+	up_read(&kvm->mm->mmap_sem);
+	return page;
 }
 
 static int adapter_indicators_set(struct kvm *kvm,
@@ -2721,30 +2781,35 @@
 {
 	unsigned long bit;
 	int summary_set, idx;
-	struct s390_map_info *info;
+	struct page *ind_page, *summary_page;
 	void *map;
 
-	info = get_map_info(adapter, adapter_int->ind_addr);
-	if (!info)
+	ind_page = get_map_page(kvm, adapter_int->ind_addr);
+	if (!ind_page)
 		return -1;
-	map = page_address(info->page);
-	bit = get_ind_bit(info->addr, adapter_int->ind_offset, adapter->swap);
-	set_bit(bit, map);
-	idx = srcu_read_lock(&kvm->srcu);
-	mark_page_dirty(kvm, info->guest_addr >> PAGE_SHIFT);
-	set_page_dirty_lock(info->page);
-	info = get_map_info(adapter, adapter_int->summary_addr);
-	if (!info) {
-		srcu_read_unlock(&kvm->srcu, idx);
+	summary_page = get_map_page(kvm, adapter_int->summary_addr);
+	if (!summary_page) {
+		put_page(ind_page);
 		return -1;
 	}
-	map = page_address(info->page);
-	bit = get_ind_bit(info->addr, adapter_int->summary_offset,
-			  adapter->swap);
+
+	idx = srcu_read_lock(&kvm->srcu);
+	map = page_address(ind_page);
+	bit = get_ind_bit(adapter_int->ind_addr,
+			  adapter_int->ind_offset, adapter->swap);
+	set_bit(bit, map);
+	mark_page_dirty(kvm, adapter_int->ind_addr >> PAGE_SHIFT);
+	set_page_dirty_lock(ind_page);
+	map = page_address(summary_page);
+	bit = get_ind_bit(adapter_int->summary_addr,
+			  adapter_int->summary_offset, adapter->swap);
 	summary_set = test_and_set_bit(bit, map);
-	mark_page_dirty(kvm, info->guest_addr >> PAGE_SHIFT);
-	set_page_dirty_lock(info->page);
+	mark_page_dirty(kvm, adapter_int->summary_addr >> PAGE_SHIFT);
+	set_page_dirty_lock(summary_page);
 	srcu_read_unlock(&kvm->srcu, idx);
+
+	put_page(ind_page);
+	put_page(summary_page);
 	return summary_set ? 0 : 1;
 }
 
@@ -2766,9 +2831,7 @@
 	adapter = get_io_adapter(kvm, e->adapter.adapter_id);
 	if (!adapter)
 		return -1;
-	down_read(&adapter->maps_lock);
 	ret = adapter_indicators_set(kvm, adapter, &e->adapter);
-	up_read(&adapter->maps_lock);
 	if ((ret > 0) && !adapter->masked) {
 		ret = kvm_s390_inject_airq(kvm, adapter);
 		if (ret == 0)
@@ -2819,23 +2882,27 @@
 			  struct kvm_kernel_irq_routing_entry *e,
 			  const struct kvm_irq_routing_entry *ue)
 {
-	int ret;
+	u64 uaddr;
 
 	switch (ue->type) {
+	/* we store the userspace addresses instead of the guest addresses */
 	case KVM_IRQ_ROUTING_S390_ADAPTER:
 		e->set = set_adapter_int;
-		e->adapter.summary_addr = ue->u.adapter.summary_addr;
-		e->adapter.ind_addr = ue->u.adapter.ind_addr;
+		uaddr =  gmap_translate(kvm->arch.gmap, ue->u.adapter.summary_addr);
+		if (uaddr == -EFAULT)
+			return -EFAULT;
+		e->adapter.summary_addr = uaddr;
+		uaddr =  gmap_translate(kvm->arch.gmap, ue->u.adapter.ind_addr);
+		if (uaddr == -EFAULT)
+			return -EFAULT;
+		e->adapter.ind_addr = uaddr;
 		e->adapter.summary_offset = ue->u.adapter.summary_offset;
 		e->adapter.ind_offset = ue->u.adapter.ind_offset;
 		e->adapter.adapter_id = ue->u.adapter.adapter_id;
-		ret = 0;
-		break;
+		return 0;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
-
-	return ret;
 }
 
 int kvm_set_msi(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm,
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/kvm-s390.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/kvm-s390.c
@@ -2,7 +2,7 @@
 /*
  * hosting IBM Z kernel virtual machines (s390x)
  *
- * Copyright IBM Corp. 2008, 2018
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -44,6 +44,7 @@
 #include <asm/cpacf.h>
 #include <asm/timex.h>
 #include <asm/ap.h>
+#include <asm/uv.h>
 #include "kvm-s390.h"
 #include "gaccess.h"
 
@@ -219,6 +220,7 @@
 static struct gmap_notifier gmap_notifier;
 static struct gmap_notifier vsie_gmap_notifier;
 debug_info_t *kvm_s390_dbf;
+debug_info_t *kvm_s390_dbf_uv;
 
 /* Section: not file related */
 int kvm_arch_hardware_enable(void)
@@ -232,8 +234,10 @@
 	return 0;
 }
 
+/* forward declarations */
 static void kvm_gmap_notifier(struct gmap *gmap, unsigned long start,
 			      unsigned long end);
+static int sca_switch_to_extended(struct kvm *kvm);
 
 static void kvm_clock_sync_scb(struct kvm_s390_sie_block *scb, u64 delta)
 {
@@ -453,16 +457,19 @@
 
 int kvm_arch_init(void *opaque)
 {
-	int rc;
+	int rc = -ENOMEM;
 
 	kvm_s390_dbf = debug_register("kvm-trace", 32, 1, 7 * sizeof(long));
 	if (!kvm_s390_dbf)
 		return -ENOMEM;
 
-	if (debug_register_view(kvm_s390_dbf, &debug_sprintf_view)) {
-		rc = -ENOMEM;
-		goto out_debug_unreg;
-	}
+	kvm_s390_dbf_uv = debug_register("kvm-uv", 32, 1, 7 * sizeof(long));
+	if (!kvm_s390_dbf_uv)
+		goto out;
+
+	if (debug_register_view(kvm_s390_dbf, &debug_sprintf_view) ||
+	    debug_register_view(kvm_s390_dbf_uv, &debug_sprintf_view))
+		goto out;
 
 	kvm_s390_cpu_feat_init();
 
@@ -470,19 +477,17 @@
 	rc = kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC);
 	if (rc) {
 		pr_err("A FLIC registration call failed with rc=%d\n", rc);
-		goto out_debug_unreg;
+		goto out;
 	}
 
 	rc = kvm_s390_gib_init(GAL_ISC);
 	if (rc)
-		goto out_gib_destroy;
+		goto out;
 
 	return 0;
 
-out_gib_destroy:
-	kvm_s390_gib_destroy();
-out_debug_unreg:
-	debug_unregister(kvm_s390_dbf);
+out:
+	kvm_arch_exit();
 	return rc;
 }
 
@@ -490,6 +495,7 @@
 {
 	kvm_s390_gib_destroy();
 	debug_unregister(kvm_s390_dbf);
+	debug_unregister(kvm_s390_dbf_uv);
 }
 
 /* Section: device related */
@@ -532,6 +538,7 @@
 	case KVM_CAP_S390_CMMA_MIGRATION:
 	case KVM_CAP_S390_AIS:
 	case KVM_CAP_S390_AIS_MIGRATION:
+	case KVM_CAP_S390_VCPU_RESETS:
 		r = 1;
 		break;
 	case KVM_CAP_S390_HPAGE_1M:
@@ -566,6 +573,9 @@
 	case KVM_CAP_S390_BPB:
 		r = test_facility(82);
 		break;
+	case KVM_CAP_S390_PROTECTED:
+		r = is_prot_virt_host();
+		break;
 	default:
 		r = 0;
 	}
@@ -1932,6 +1942,9 @@
 			start = slot + 1;
 	}
 
+	if (start >= slots->used_slots)
+		return slots->used_slots - 1;
+
 	if (gfn >= memslots[start].base_gfn &&
 	    gfn < memslots[start].base_gfn + memslots[start].npages) {
 		atomic_set(&slots->lru_slot, start);
@@ -2160,6 +2173,194 @@
 	return r;
 }
 
+static int kvm_s390_cpus_from_pv(struct kvm *kvm, u16 *rcp, u16 *rrcp)
+{
+	struct kvm_vcpu *vcpu;
+	u16 rc, rrc;
+	int ret = 0;
+	int i;
+
+	/*
+	 * We ignore failures and try to destroy as many CPUs as possible.
+	 * At the same time we must not free the assigned resources when
+	 * this fails, as the ultravisor has still access to that memory.
+	 * So kvm_s390_pv_destroy_cpu can leave a "wanted" memory leak
+	 * behind.
+	 * We want to return the first failure rc and rrc, though.
+	 */
+	kvm_for_each_vcpu(i, vcpu, kvm) {
+		mutex_lock(&vcpu->mutex);
+		if (kvm_s390_pv_destroy_cpu(vcpu, &rc, &rrc) && !ret) {
+			*rcp = rc;
+			*rrcp = rrc;
+			ret = -EIO;
+		}
+		mutex_unlock(&vcpu->mutex);
+	}
+	return ret;
+}
+
+static int kvm_s390_cpus_to_pv(struct kvm *kvm, u16 *rc, u16 *rrc)
+{
+	int i, r = 0;
+	u16 dummy;
+
+	struct kvm_vcpu *vcpu;
+
+	kvm_for_each_vcpu(i, vcpu, kvm) {
+		mutex_lock(&vcpu->mutex);
+		r = kvm_s390_pv_create_cpu(vcpu, rc, rrc);
+		mutex_unlock(&vcpu->mutex);
+		if (r)
+			break;
+	}
+	if (r)
+		kvm_s390_cpus_from_pv(kvm, &dummy, &dummy);
+	return r;
+}
+
+static int kvm_s390_handle_pv(struct kvm *kvm, struct kvm_pv_cmd *cmd)
+{
+	int r = 0;
+	u16 dummy;
+	void __user *argp = (void __user *)cmd->data;
+
+	switch (cmd->cmd) {
+	case KVM_PV_ENABLE: {
+		r = -EINVAL;
+		if (kvm_s390_pv_is_protected(kvm))
+			break;
+
+		/*
+		 *  FMT 4 SIE needs esca. As we never switch back to bsca from
+		 *  esca, we need no cleanup in the error cases below
+		 */
+		r = sca_switch_to_extended(kvm);
+		if (r)
+			break;
+
+		down_write(&current->mm->mmap_sem);
+		r = gmap_mark_unmergeable();
+		up_write(&current->mm->mmap_sem);
+		if (r)
+			break;
+
+		r = kvm_s390_pv_init_vm(kvm, &cmd->rc, &cmd->rrc);
+		if (r)
+			break;
+
+		r = kvm_s390_cpus_to_pv(kvm, &cmd->rc, &cmd->rrc);
+		if (r)
+			kvm_s390_pv_deinit_vm(kvm, &dummy, &dummy);
+
+		/* we need to block service interrupts from now on */
+		set_bit(IRQ_PEND_EXT_SERVICE, &kvm->arch.float_int.masked_irqs);
+		break;
+	}
+	case KVM_PV_DISABLE: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = kvm_s390_cpus_from_pv(kvm, &cmd->rc, &cmd->rrc);
+		/*
+		 * If a CPU could not be destroyed, destroy VM will also fail.
+		 * There is no point in trying to destroy it. Instead return
+		 * the rc and rrc from the first CPU that failed destroying.
+		 */
+		if (r)
+			break;
+		r = kvm_s390_pv_deinit_vm(kvm, &cmd->rc, &cmd->rrc);
+
+		/* no need to block service interrupts any more */
+		clear_bit(IRQ_PEND_EXT_SERVICE, &kvm->arch.float_int.masked_irqs);
+		break;
+	}
+	case KVM_PV_SET_SEC_PARMS: {
+		struct kvm_s390_pv_sec_parm parms = {};
+		void *hdr;
+
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = -EFAULT;
+		if (copy_from_user(&parms, argp, sizeof(parms)))
+			break;
+
+		/* Currently restricted to 8KB */
+		r = -EINVAL;
+		if (parms.length > PAGE_SIZE * 2)
+			break;
+
+		r = -ENOMEM;
+		hdr = vmalloc(parms.length);
+		if (!hdr)
+			break;
+
+		r = -EFAULT;
+		if (!copy_from_user(hdr, (void __user *)parms.origin,
+				    parms.length))
+			r = kvm_s390_pv_set_sec_parms(kvm, hdr, parms.length,
+						      &cmd->rc, &cmd->rrc);
+
+		vfree(hdr);
+		break;
+	}
+	case KVM_PV_UNPACK: {
+		struct kvm_s390_pv_unp unp = {};
+
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = -EFAULT;
+		if (copy_from_user(&unp, argp, sizeof(unp)))
+			break;
+
+		r = kvm_s390_pv_unpack(kvm, unp.addr, unp.size, unp.tweak,
+				       &cmd->rc, &cmd->rrc);
+		break;
+	}
+	case KVM_PV_VERIFY: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+				  UVC_CMD_VERIFY_IMG, &cmd->rc, &cmd->rrc);
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT VERIFY: rc %x rrc %x", cmd->rc,
+			     cmd->rrc);
+		break;
+	}
+	case KVM_PV_PREP_RESET: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+				  UVC_CMD_PREPARE_RESET, &cmd->rc, &cmd->rrc);
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT PREP RESET: rc %x rrc %x",
+			     cmd->rc, cmd->rrc);
+		break;
+	}
+	case KVM_PV_UNSHARE_ALL: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+				  UVC_CMD_SET_UNSHARE_ALL, &cmd->rc, &cmd->rrc);
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT UNSHARE: rc %x rrc %x",
+			     cmd->rc, cmd->rrc);
+		break;
+	}
+	default:
+		r = -ENOTTY;
+	}
+	return r;
+}
+
 long kvm_arch_vm_ioctl(struct file *filp,
 		       unsigned int ioctl, unsigned long arg)
 {
@@ -2257,6 +2458,33 @@
 		mutex_unlock(&kvm->slots_lock);
 		break;
 	}
+	case KVM_S390_PV_COMMAND: {
+		struct kvm_pv_cmd args;
+
+		/* protvirt means user sigp */
+		kvm->arch.user_cpu_state_ctrl = 1;
+		r = 0;
+		if (!is_prot_virt_host()) {
+			r = -EINVAL;
+			break;
+		}
+		if (copy_from_user(&args, argp, sizeof(args))) {
+			r = -EFAULT;
+			break;
+		}
+		if (args.flags) {
+			r = -EINVAL;
+			break;
+		}
+		mutex_lock(&kvm->lock);
+		r = kvm_s390_handle_pv(kvm, &args);
+		mutex_unlock(&kvm->lock);
+		if (copy_to_user(argp, &args, sizeof(args))) {
+			r = -EFAULT;
+			break;
+		}
+		break;
+	}
 	default:
 		r = -ENOTTY;
 	}
@@ -2520,6 +2748,8 @@
 
 void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
 {
+	u16 rc, rrc;
+
 	VCPU_EVENT(vcpu, 3, "%s", "free cpu");
 	trace_kvm_s390_destroy_vcpu(vcpu->vcpu_id);
 	kvm_s390_clear_local_irqs(vcpu);
@@ -2532,6 +2762,9 @@
 
 	if (vcpu->kvm->arch.use_cmma)
 		kvm_s390_vcpu_unsetup_cmma(vcpu);
+	/* We can not hold the vcpu mutex here, we are already dying */
+	if (kvm_s390_pv_cpu_get_handle(vcpu))
+		kvm_s390_pv_destroy_cpu(vcpu, &rc, &rrc);
 	free_page((unsigned long)(vcpu->arch.sie_block));
 
 	kvm_vcpu_uninit(vcpu);
@@ -2556,10 +2789,20 @@
 
 void kvm_arch_destroy_vm(struct kvm *kvm)
 {
+	u16 rc, rrc;
+
 	kvm_free_vcpus(kvm);
 	sca_dispose(kvm);
-	debug_unregister(kvm->arch.dbf);
 	kvm_s390_gisa_destroy(kvm);
+	/*
+	 * We are already at the end of life and kvm->lock is not taken.
+	 * This is ok as the file descriptor is closed by now and nobody
+	 * can mess with the pv state. To avoid lockdep_assert_held from
+	 * complaining we do not use kvm_s390_pv_is_protected.
+	 */
+	if (kvm_s390_pv_get_handle(kvm))
+		kvm_s390_pv_deinit_vm(kvm, &rc, &rrc);
+	debug_unregister(kvm->arch.dbf);
 	free_page((unsigned long)kvm->arch.sie_page2);
 	if (!kvm_is_ucontrol(kvm))
 		gmap_remove(kvm->arch.gmap);
@@ -2655,6 +2898,9 @@
 	unsigned int vcpu_idx;
 	u32 scaol, scaoh;
 
+	if (kvm->arch.use_esca)
+		return 0;
+
 	new_sca = alloc_pages_exact(sizeof(*new_sca), GFP_KERNEL|__GFP_ZERO);
 	if (!new_sca)
 		return -ENOMEM;
@@ -2847,35 +3093,6 @@
 
 }
 
-static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu)
-{
-	/* this equals initial cpu reset in pop, but we don't switch to ESA */
-	vcpu->arch.sie_block->gpsw.mask = 0UL;
-	vcpu->arch.sie_block->gpsw.addr = 0UL;
-	kvm_s390_set_prefix(vcpu, 0);
-	kvm_s390_set_cpu_timer(vcpu, 0);
-	vcpu->arch.sie_block->ckc       = 0UL;
-	vcpu->arch.sie_block->todpr     = 0;
-	memset(vcpu->arch.sie_block->gcr, 0, 16 * sizeof(__u64));
-	vcpu->arch.sie_block->gcr[0]  = CR0_UNUSED_56 |
-					CR0_INTERRUPT_KEY_SUBMASK |
-					CR0_MEASUREMENT_ALERT_SUBMASK;
-	vcpu->arch.sie_block->gcr[14] = CR14_UNUSED_32 |
-					CR14_UNUSED_33 |
-					CR14_EXTERNAL_DAMAGE_SUBMASK;
-	/* make sure the new fpc will be lazily loaded */
-	save_fpu_regs();
-	current->thread.fpu.fpc = 0;
-	vcpu->arch.sie_block->gbea = 1;
-	vcpu->arch.sie_block->pp = 0;
-	vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
-	vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID;
-	kvm_clear_async_pf_completion_queue(vcpu);
-	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
-		kvm_s390_vcpu_stop(vcpu);
-	kvm_s390_clear_local_irqs(vcpu);
-}
-
 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
 {
 	mutex_lock(&vcpu->kvm->lock);
@@ -2968,6 +3185,7 @@
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 {
 	int rc = 0;
+	u16 uvrc, uvrrc;
 
 	atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH |
 						    CPUSTAT_SM |
@@ -3035,6 +3253,14 @@
 
 	kvm_s390_vcpu_crypto_setup(vcpu);
 
+	mutex_lock(&vcpu->kvm->lock);
+	if (kvm_s390_pv_is_protected(vcpu->kvm)) {
+		rc = kvm_s390_pv_create_cpu(vcpu, &uvrc, &uvrrc);
+		if (rc)
+			kvm_s390_vcpu_unsetup_cmma(vcpu);
+	}
+	mutex_unlock(&vcpu->kvm->lock);
+
 	return rc;
 }
 
@@ -3290,10 +3516,60 @@
 	return r;
 }
 
-static int kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
+static void kvm_arch_vcpu_ioctl_normal_reset(struct kvm_vcpu *vcpu)
 {
-	kvm_s390_vcpu_initial_reset(vcpu);
-	return 0;
+	vcpu->arch.sie_block->gpsw.mask &= ~PSW_MASK_RI;
+	vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID;
+	memset(vcpu->run->s.regs.riccb, 0, sizeof(vcpu->run->s.regs.riccb));
+
+	kvm_clear_async_pf_completion_queue(vcpu);
+	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
+		kvm_s390_vcpu_stop(vcpu);
+	kvm_s390_clear_local_irqs(vcpu);
+}
+
+static void kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
+{
+	/* Initial reset is a superset of the normal reset */
+	kvm_arch_vcpu_ioctl_normal_reset(vcpu);
+
+	/* this equals initial cpu reset in pop, but we don't switch to ESA */
+	vcpu->arch.sie_block->gpsw.mask = 0;
+	vcpu->arch.sie_block->gpsw.addr = 0;
+	kvm_s390_set_prefix(vcpu, 0);
+	kvm_s390_set_cpu_timer(vcpu, 0);
+	vcpu->arch.sie_block->ckc = 0;
+	memset(vcpu->arch.sie_block->gcr, 0, sizeof(vcpu->arch.sie_block->gcr));
+	vcpu->arch.sie_block->gcr[0] = CR0_INITIAL_MASK;
+	vcpu->arch.sie_block->gcr[14] = CR14_INITIAL_MASK;
+	vcpu->run->s.regs.fpc = 0;
+	/*
+	 * Do not reset these registers in the protected case, as some of
+	 * them are overlayed and they are not accessible in this case
+	 * anyway.
+	 */
+	if (!kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->gbea = 1;
+		vcpu->arch.sie_block->pp = 0;
+		vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
+		vcpu->arch.sie_block->todpr = 0;
+	}
+}
+
+static void kvm_arch_vcpu_ioctl_clear_reset(struct kvm_vcpu *vcpu)
+{
+	struct kvm_sync_regs *regs = &vcpu->run->s.regs;
+
+	/* Clear reset is a superset of the initial reset */
+	kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+
+	memset(&regs->gprs, 0, sizeof(regs->gprs));
+	memset(&regs->vrs, 0, sizeof(regs->vrs));
+	memset(&regs->acrs, 0, sizeof(regs->acrs));
+	memset(&regs->gscb, 0, sizeof(regs->gscb));
+
+	regs->etoken = 0;
+	regs->etoken_extension = 0;
 }
 
 int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs)
@@ -3467,12 +3743,18 @@
 
 	switch (mp_state->mp_state) {
 	case KVM_MP_STATE_STOPPED:
-		kvm_s390_vcpu_stop(vcpu);
+		rc = kvm_s390_vcpu_stop(vcpu);
 		break;
 	case KVM_MP_STATE_OPERATING:
-		kvm_s390_vcpu_start(vcpu);
+		rc = kvm_s390_vcpu_start(vcpu);
 		break;
 	case KVM_MP_STATE_LOAD:
+		if (!kvm_s390_pv_cpu_is_protected(vcpu)) {
+			rc = -ENXIO;
+			break;
+		}
+		rc = kvm_s390_pv_set_cpu_state(vcpu, PV_CPU_STATE_OPR_LOAD);
+		break;
 	case KVM_MP_STATE_CHECK_STOP:
 		/* fall through - CHECK_STOP and LOAD are not supported yet */
 	default:
@@ -3824,9 +4106,11 @@
 	return vcpu_post_run_fault_in_sie(vcpu);
 }
 
+#define PSW_INT_MASK (PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_MCHECK)
 static int __vcpu_run(struct kvm_vcpu *vcpu)
 {
 	int rc, exit_reason;
+	struct sie_page *sie_page = (struct sie_page *)vcpu->arch.sie_block;
 
 	/*
 	 * We try to hold kvm->srcu during most of vcpu_run (except when run-
@@ -3848,8 +4132,28 @@
 		guest_enter_irqoff();
 		__disable_cpu_timer_accounting(vcpu);
 		local_irq_enable();
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			memcpy(sie_page->pv_grregs,
+			       vcpu->run->s.regs.gprs,
+			       sizeof(sie_page->pv_grregs));
+		}
 		exit_reason = sie64a(vcpu->arch.sie_block,
 				     vcpu->run->s.regs.gprs);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			memcpy(vcpu->run->s.regs.gprs,
+			       sie_page->pv_grregs,
+			       sizeof(sie_page->pv_grregs));
+			/*
+			 * We're not allowed to inject interrupts on intercepts
+			 * that leave the guest state in an "in-between" state
+			 * where the next SIE entry will do a continuation.
+			 * Fence interrupts in our "internal" PSW.
+			 */
+			if (vcpu->arch.sie_block->icptcode == ICPT_PV_INSTR ||
+			    vcpu->arch.sie_block->icptcode == ICPT_PV_PREF) {
+				vcpu->arch.sie_block->gpsw.mask &= ~PSW_INT_MASK;
+			}
+		}
 		local_irq_disable();
 		__enable_cpu_timer_accounting(vcpu);
 		guest_exit_irqoff();
@@ -3863,7 +4167,7 @@
 	return rc;
 }
 
-static void sync_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+static void sync_regs_fmt2(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
 {
 	struct runtime_instr_cb *riccb;
 	struct gs_cb *gscb;
@@ -3872,16 +4176,7 @@
 	gscb = (struct gs_cb *) &kvm_run->s.regs.gscb;
 	vcpu->arch.sie_block->gpsw.mask = kvm_run->psw_mask;
 	vcpu->arch.sie_block->gpsw.addr = kvm_run->psw_addr;
-	if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX)
-		kvm_s390_set_prefix(vcpu, kvm_run->s.regs.prefix);
-	if (kvm_run->kvm_dirty_regs & KVM_SYNC_CRS) {
-		memcpy(&vcpu->arch.sie_block->gcr, &kvm_run->s.regs.crs, 128);
-		/* some control register changes require a tlb flush */
-		kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
-	}
 	if (kvm_run->kvm_dirty_regs & KVM_SYNC_ARCH0) {
-		kvm_s390_set_cpu_timer(vcpu, kvm_run->s.regs.cputm);
-		vcpu->arch.sie_block->ckc = kvm_run->s.regs.ckc;
 		vcpu->arch.sie_block->todpr = kvm_run->s.regs.todpr;
 		vcpu->arch.sie_block->pp = kvm_run->s.regs.pp;
 		vcpu->arch.sie_block->gbea = kvm_run->s.regs.gbea;
@@ -3922,6 +4217,36 @@
 		vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
 		vcpu->arch.sie_block->fpf |= kvm_run->s.regs.bpbc ? FPF_BPBC : 0;
 	}
+	if (MACHINE_HAS_GS) {
+		preempt_disable();
+		__ctl_set_bit(2, 4);
+		if (current->thread.gs_cb) {
+			vcpu->arch.host_gscb = current->thread.gs_cb;
+			save_gs_cb(vcpu->arch.host_gscb);
+		}
+		if (vcpu->arch.gs_enabled) {
+			current->thread.gs_cb = (struct gs_cb *)
+						&vcpu->run->s.regs.gscb;
+			restore_gs_cb(current->thread.gs_cb);
+		}
+		preempt_enable();
+	}
+	/* SIE will load etoken directly from SDNX and therefore kvm_run */
+}
+
+static void sync_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+{
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX)
+		kvm_s390_set_prefix(vcpu, kvm_run->s.regs.prefix);
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_CRS) {
+		memcpy(&vcpu->arch.sie_block->gcr, &kvm_run->s.regs.crs, 128);
+		/* some control register changes require a tlb flush */
+		kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
+	}
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_ARCH0) {
+		kvm_s390_set_cpu_timer(vcpu, kvm_run->s.regs.cputm);
+		vcpu->arch.sie_block->ckc = kvm_run->s.regs.ckc;
+	}
 	save_access_regs(vcpu->arch.host_acrs);
 	restore_access_regs(vcpu->run->s.regs.acrs);
 	/* save host (userspace) fprs/vrs */
@@ -3936,23 +4261,47 @@
 	if (test_fp_ctl(current->thread.fpu.fpc))
 		/* User space provided an invalid FPC, let's clear it */
 		current->thread.fpu.fpc = 0;
+
+	/* Sync fmt2 only data */
+	if (likely(!kvm_s390_pv_cpu_is_protected(vcpu))) {
+		sync_regs_fmt2(vcpu, kvm_run);
+	} else {
+		/*
+		 * In several places we have to modify our internal view to
+		 * not do things that are disallowed by the ultravisor. For
+		 * example we must not inject interrupts after specific exits
+		 * (e.g. 112 prefix page not secure). We do this by turning
+		 * off the machine check, external and I/O interrupt bits
+		 * of our PSW copy. To avoid getting validity intercepts, we
+		 * do only accept the condition code from userspace.
+		 */
+		vcpu->arch.sie_block->gpsw.mask &= ~PSW_MASK_CC;
+		vcpu->arch.sie_block->gpsw.mask |= kvm_run->psw_mask &
+						   PSW_MASK_CC;
+	}
+
+	kvm_run->kvm_dirty_regs = 0;
+}
+
+static void store_regs_fmt2(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+{
+	kvm_run->s.regs.todpr = vcpu->arch.sie_block->todpr;
+	kvm_run->s.regs.pp = vcpu->arch.sie_block->pp;
+	kvm_run->s.regs.gbea = vcpu->arch.sie_block->gbea;
+	kvm_run->s.regs.bpbc = (vcpu->arch.sie_block->fpf & FPF_BPBC) == FPF_BPBC;
 	if (MACHINE_HAS_GS) {
-		preempt_disable();
 		__ctl_set_bit(2, 4);
-		if (current->thread.gs_cb) {
-			vcpu->arch.host_gscb = current->thread.gs_cb;
-			save_gs_cb(vcpu->arch.host_gscb);
-		}
-		if (vcpu->arch.gs_enabled) {
-			current->thread.gs_cb = (struct gs_cb *)
-						&vcpu->run->s.regs.gscb;
-			restore_gs_cb(current->thread.gs_cb);
-		}
+		if (vcpu->arch.gs_enabled)
+			save_gs_cb(current->thread.gs_cb);
+		preempt_disable();
+		current->thread.gs_cb = vcpu->arch.host_gscb;
+		restore_gs_cb(vcpu->arch.host_gscb);
 		preempt_enable();
+		if (!vcpu->arch.host_gscb)
+			__ctl_clear_bit(2, 4);
+		vcpu->arch.host_gscb = NULL;
 	}
-	/* SIE will load etoken directly from SDNX and therefore kvm_run */
-
-	kvm_run->kvm_dirty_regs = 0;
+	/* SIE will save etoken directly into SDNX and therefore kvm_run */
 }
 
 static void store_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
@@ -3963,13 +4312,9 @@
 	memcpy(&kvm_run->s.regs.crs, &vcpu->arch.sie_block->gcr, 128);
 	kvm_run->s.regs.cputm = kvm_s390_get_cpu_timer(vcpu);
 	kvm_run->s.regs.ckc = vcpu->arch.sie_block->ckc;
-	kvm_run->s.regs.todpr = vcpu->arch.sie_block->todpr;
-	kvm_run->s.regs.pp = vcpu->arch.sie_block->pp;
-	kvm_run->s.regs.gbea = vcpu->arch.sie_block->gbea;
 	kvm_run->s.regs.pft = vcpu->arch.pfault_token;
 	kvm_run->s.regs.pfs = vcpu->arch.pfault_select;
 	kvm_run->s.regs.pfc = vcpu->arch.pfault_compare;
-	kvm_run->s.regs.bpbc = (vcpu->arch.sie_block->fpf & FPF_BPBC) == FPF_BPBC;
 	save_access_regs(vcpu->run->s.regs.acrs);
 	restore_access_regs(vcpu->arch.host_acrs);
 	/* Save guest register state */
@@ -3978,19 +4323,8 @@
 	/* Restore will be done lazily at return */
 	current->thread.fpu.fpc = vcpu->arch.host_fpregs.fpc;
 	current->thread.fpu.regs = vcpu->arch.host_fpregs.regs;
-	if (MACHINE_HAS_GS) {
-		__ctl_set_bit(2, 4);
-		if (vcpu->arch.gs_enabled)
-			save_gs_cb(current->thread.gs_cb);
-		preempt_disable();
-		current->thread.gs_cb = vcpu->arch.host_gscb;
-		restore_gs_cb(vcpu->arch.host_gscb);
-		preempt_enable();
-		if (!vcpu->arch.host_gscb)
-			__ctl_clear_bit(2, 4);
-		vcpu->arch.host_gscb = NULL;
-	}
-	/* SIE will save etoken directly into SDNX and therefore kvm_run */
+	if (likely(!kvm_s390_pv_cpu_is_protected(vcpu)))
+		store_regs_fmt2(vcpu, kvm_run);
 }
 
 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
@@ -4014,6 +4348,10 @@
 
 	kvm_sigset_activate(vcpu);
 
+	/*
+	 * no need to check the return value of vcpu_start as it can only have
+	 * an error for protvirt, but protvirt means user cpu state
+	 */
 	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm)) {
 		kvm_s390_vcpu_start(vcpu);
 	} else if (is_vcpu_stopped(vcpu)) {
@@ -4151,18 +4489,27 @@
 	kvm_s390_sync_request(KVM_REQ_ENABLE_IBS, vcpu);
 }
 
-void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)
+int kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)
 {
-	int i, online_vcpus, started_vcpus = 0;
+	int i, online_vcpus, r = 0, started_vcpus = 0;
 
 	if (!is_vcpu_stopped(vcpu))
-		return;
+		return 0;
 
 	trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 1);
 	/* Only one cpu at a time may enter/leave the STOPPED state. */
 	spin_lock(&vcpu->kvm->arch.start_stop_lock);
 	online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
 
+	/* Let's tell the UV that we want to change into the operating state */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		r = kvm_s390_pv_set_cpu_state(vcpu, PV_CPU_STATE_OPR);
+		if (r) {
+			spin_unlock(&vcpu->kvm->arch.start_stop_lock);
+			return r;
+		}
+	}
+
 	for (i = 0; i < online_vcpus; i++) {
 		if (!is_vcpu_stopped(vcpu->kvm->vcpus[i]))
 			started_vcpus++;
@@ -4182,27 +4529,43 @@
 
 	kvm_s390_clear_cpuflags(vcpu, CPUSTAT_STOPPED);
 	/*
+	 * The real PSW might have changed due to a RESTART interpreted by the
+	 * ultravisor. We block all interrupts and let the next sie exit
+	 * refresh our view.
+	 */
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		vcpu->arch.sie_block->gpsw.mask &= ~PSW_INT_MASK;
+	/*
 	 * Another VCPU might have used IBS while we were offline.
 	 * Let's play safe and flush the VCPU at startup.
 	 */
 	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
 	spin_unlock(&vcpu->kvm->arch.start_stop_lock);
-	return;
+	return 0;
 }
 
-void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
+int kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
 {
-	int i, online_vcpus, started_vcpus = 0;
+	int i, online_vcpus, r = 0, started_vcpus = 0;
 	struct kvm_vcpu *started_vcpu = NULL;
 
 	if (is_vcpu_stopped(vcpu))
-		return;
+		return 0;
 
 	trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 0);
 	/* Only one cpu at a time may enter/leave the STOPPED state. */
 	spin_lock(&vcpu->kvm->arch.start_stop_lock);
 	online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
 
+	/* Let's tell the UV that we want to change into the stopped state */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		r = kvm_s390_pv_set_cpu_state(vcpu, PV_CPU_STATE_STP);
+		if (r) {
+			spin_unlock(&vcpu->kvm->arch.start_stop_lock);
+			return r;
+		}
+	}
+
 	/* SIGP STOP and SIGP STOP AND STORE STATUS has been fully processed */
 	kvm_s390_clear_stop_irq(vcpu);
 
@@ -4225,7 +4588,7 @@
 	}
 
 	spin_unlock(&vcpu->kvm->arch.start_stop_lock);
-	return;
+	return 0;
 }
 
 static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
@@ -4252,12 +4615,40 @@
 	return r;
 }
 
+static long kvm_s390_guest_sida_op(struct kvm_vcpu *vcpu,
+				   struct kvm_s390_mem_op *mop)
+{
+	void __user *uaddr = (void __user *)mop->buf;
+	int r = 0;
+
+	if (mop->flags || !mop->size)
+		return -EINVAL;
+	if (mop->size + mop->sida_offset < mop->size)
+		return -EINVAL;
+	if (mop->size + mop->sida_offset > sida_size(vcpu->arch.sie_block))
+		return -E2BIG;
+
+	switch (mop->op) {
+	case KVM_S390_MEMOP_SIDA_READ:
+		if (copy_to_user(uaddr, (void *)(sida_origin(vcpu->arch.sie_block) +
+				 mop->sida_offset), mop->size))
+			r = -EFAULT;
+
+		break;
+	case KVM_S390_MEMOP_SIDA_WRITE:
+		if (copy_from_user((void *)(sida_origin(vcpu->arch.sie_block) +
+				   mop->sida_offset), uaddr, mop->size))
+			r = -EFAULT;
+		break;
+	}
+	return r;
+}
 static long kvm_s390_guest_mem_op(struct kvm_vcpu *vcpu,
 				  struct kvm_s390_mem_op *mop)
 {
 	void __user *uaddr = (void __user *)mop->buf;
 	void *tmpbuf = NULL;
-	int r, srcu_idx;
+	int r = 0;
 	const u64 supported_flags = KVM_S390_MEMOP_F_INJECT_EXCEPTION
 				    | KVM_S390_MEMOP_F_CHECK_ONLY;
 
@@ -4267,14 +4658,15 @@
 	if (mop->size > MEM_OP_MAX_SIZE)
 		return -E2BIG;
 
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		return -EINVAL;
+
 	if (!(mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY)) {
 		tmpbuf = vmalloc(mop->size);
 		if (!tmpbuf)
 			return -ENOMEM;
 	}
 
-	srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
-
 	switch (mop->op) {
 	case KVM_S390_MEMOP_LOGICAL_READ:
 		if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) {
@@ -4300,12 +4692,8 @@
 		}
 		r = write_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size);
 		break;
-	default:
-		r = -EINVAL;
 	}
 
-	srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);
-
 	if (r > 0 && (mop->flags & KVM_S390_MEMOP_F_INJECT_EXCEPTION) != 0)
 		kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm);
 
@@ -4313,6 +4701,31 @@
 	return r;
 }
 
+static long kvm_s390_guest_memsida_op(struct kvm_vcpu *vcpu,
+				      struct kvm_s390_mem_op *mop)
+{
+	int r, srcu_idx;
+
+	srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
+
+	switch (mop->op) {
+	case KVM_S390_MEMOP_LOGICAL_READ:
+	case KVM_S390_MEMOP_LOGICAL_WRITE:
+		r = kvm_s390_guest_mem_op(vcpu, mop);
+		break;
+	case KVM_S390_MEMOP_SIDA_READ:
+	case KVM_S390_MEMOP_SIDA_WRITE:
+		/* we are locked against sida going away by the vcpu->mutex */
+		r = kvm_s390_guest_sida_op(vcpu, mop);
+		break;
+	default:
+		r = -EINVAL;
+	}
+
+	srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);
+	return r;
+}
+
 long kvm_arch_vcpu_async_ioctl(struct file *filp,
 			       unsigned int ioctl, unsigned long arg)
 {
@@ -4348,13 +4761,14 @@
 	void __user *argp = (void __user *)arg;
 	int idx;
 	long r;
+	u16 rc, rrc;
 
 	vcpu_load(vcpu);
 
 	switch (ioctl) {
 	case KVM_S390_STORE_STATUS:
 		idx = srcu_read_lock(&vcpu->kvm->srcu);
-		r = kvm_s390_vcpu_store_status(vcpu, arg);
+		r = kvm_s390_store_status_unloaded(vcpu, arg);
 		srcu_read_unlock(&vcpu->kvm->srcu, idx);
 		break;
 	case KVM_S390_SET_INITIAL_PSW: {
@@ -4366,12 +4780,43 @@
 		r = kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
 		break;
 	}
+	case KVM_S390_CLEAR_RESET:
+		r = 0;
+		kvm_arch_vcpu_ioctl_clear_reset(vcpu);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			r = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+					  UVC_CMD_CPU_RESET_CLEAR, &rc, &rrc);
+			VCPU_EVENT(vcpu, 3, "PROTVIRT RESET CLEAR VCPU: rc %x rrc %x",
+				   rc, rrc);
+		}
+		break;
 	case KVM_S390_INITIAL_RESET:
-		r = kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+		r = 0;
+		kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			r = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+					  UVC_CMD_CPU_RESET_INITIAL,
+					  &rc, &rrc);
+			VCPU_EVENT(vcpu, 3, "PROTVIRT RESET INITIAL VCPU: rc %x rrc %x",
+				   rc, rrc);
+		}
+		break;
+	case KVM_S390_NORMAL_RESET:
+		r = 0;
+		kvm_arch_vcpu_ioctl_normal_reset(vcpu);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			r = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+					  UVC_CMD_CPU_RESET, &rc, &rrc);
+			VCPU_EVENT(vcpu, 3, "PROTVIRT RESET NORMAL VCPU: rc %x rrc %x",
+				   rc, rrc);
+		}
 		break;
 	case KVM_SET_ONE_REG:
 	case KVM_GET_ONE_REG: {
 		struct kvm_one_reg reg;
+		r = -EINVAL;
+		if (kvm_s390_pv_cpu_is_protected(vcpu))
+			break;
 		r = -EFAULT;
 		if (copy_from_user(&reg, argp, sizeof(reg)))
 			break;
@@ -4434,7 +4879,7 @@
 		struct kvm_s390_mem_op mem_op;
 
 		if (copy_from_user(&mem_op, argp, sizeof(mem_op)) == 0)
-			r = kvm_s390_guest_mem_op(vcpu, &mem_op);
+			r = kvm_s390_guest_memsida_op(vcpu, &mem_op);
 		else
 			r = -EFAULT;
 		break;
@@ -4520,6 +4965,9 @@
 	if (mem->guest_phys_addr + mem->memory_size > kvm->arch.mem_limit)
 		return -EINVAL;
 
+	/* When we are protected, we should not change the memory slots */
+	if (kvm_s390_pv_get_handle(kvm))
+		return -EINVAL;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/kvm-s390.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/kvm-s390.h
@@ -2,7 +2,7 @@
 /*
  * definition for kvm on s390
  *
- * Copyright IBM Corp. 2008, 2009
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -15,6 +15,7 @@
 #include <linux/hrtimer.h>
 #include <linux/kvm.h>
 #include <linux/kvm_host.h>
+#include <linux/lockdep.h>
 #include <asm/facility.h>
 #include <asm/processor.h>
 #include <asm/sclp.h>
@@ -25,6 +26,17 @@
 #define IS_ITDB_VALID(vcpu)	((*(char *)vcpu->arch.sie_block->itdba == TDB_FORMAT1))
 
 extern debug_info_t *kvm_s390_dbf;
+extern debug_info_t *kvm_s390_dbf_uv;
+
+#define KVM_UV_EVENT(d_kvm, d_loglevel, d_string, d_args...)\
+do { \
+	debug_sprintf_event((d_kvm)->arch.dbf, d_loglevel, d_string "\n", \
+	  d_args); \
+	debug_sprintf_event(kvm_s390_dbf_uv, d_loglevel, \
+			    "%d: " d_string "\n", (d_kvm)->userspace_pid, \
+			    d_args); \
+} while (0)
+
 #define KVM_EVENT(d_loglevel, d_string, d_args...)\
 do { \
 	debug_sprintf_event(kvm_s390_dbf, d_loglevel, d_string "\n", \
@@ -196,6 +208,39 @@
 	return kvm->arch.user_cpu_state_ctrl != 0;
 }
 
+/* implemented in pv.c */
+int kvm_s390_pv_destroy_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc);
+int kvm_s390_pv_create_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc);
+int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc);
+int kvm_s390_pv_init_vm(struct kvm *kvm, u16 *rc, u16 *rrc);
+int kvm_s390_pv_set_sec_parms(struct kvm *kvm, void *hdr, u64 length, u16 *rc,
+			      u16 *rrc);
+int kvm_s390_pv_unpack(struct kvm *kvm, unsigned long addr, unsigned long size,
+		       unsigned long tweak, u16 *rc, u16 *rrc);
+int kvm_s390_pv_set_cpu_state(struct kvm_vcpu *vcpu, u8 state);
+
+static inline u64 kvm_s390_pv_get_handle(struct kvm *kvm)
+{
+	return kvm->arch.pv.handle;
+}
+
+static inline u64 kvm_s390_pv_cpu_get_handle(struct kvm_vcpu *vcpu)
+{
+	return vcpu->arch.pv.handle;
+}
+
+static inline bool kvm_s390_pv_is_protected(struct kvm *kvm)
+{
+	lockdep_assert_held(&kvm->lock);
+	return !!kvm_s390_pv_get_handle(kvm);
+}
+
+static inline bool kvm_s390_pv_cpu_is_protected(struct kvm_vcpu *vcpu)
+{
+	lockdep_assert_held(&vcpu->mutex);
+	return !!kvm_s390_pv_cpu_get_handle(vcpu);
+}
+
 /* implemented in interrupt.c */
 int kvm_s390_handle_wait(struct kvm_vcpu *vcpu);
 void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu);
@@ -286,8 +331,8 @@
 long kvm_arch_fault_in_page(struct kvm_vcpu *vcpu, gpa_t gpa, int writable);
 int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
 int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr);
-void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
-void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
+int kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
+int kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
 void kvm_s390_vcpu_block(struct kvm_vcpu *vcpu);
 void kvm_s390_vcpu_unblock(struct kvm_vcpu *vcpu);
 bool kvm_s390_vcpu_sie_inhibited(struct kvm_vcpu *vcpu);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/priv.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/priv.c
@@ -2,7 +2,7 @@
 /*
  * handling privileged instructions
  *
- * Copyright IBM Corp. 2008, 2018
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -626,10 +626,12 @@
 	 * available for the guest are AQIC and TAPQ with the t bit set
 	 * since we do not set IC.3 (FIII) we currently will only intercept
 	 * the AQIC function code.
+	 * Note: running nested under z/VM can result in intercepts for other
+	 * function codes, e.g. PQAP(QCI). We do not support this and bail out.
 	 */
 	reg0 = vcpu->run->s.regs.gprs[0];
 	fc = (reg0 >> 24) & 0xff;
-	if (WARN_ON_ONCE(fc != 0x03))
+	if (fc != 0x03)
 		return -EOPNOTSUPP;
 
 	/* PQAP instruction is allowed for guest kernel only */
@@ -872,7 +874,7 @@
 
 	operand2 = kvm_s390_get_base_disp_s(vcpu, &ar);
 
-	if (operand2 & 0xfff)
+	if (!kvm_s390_pv_cpu_is_protected(vcpu) && (operand2 & 0xfff))
 		return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
 	switch (fc) {
@@ -893,8 +895,13 @@
 		handle_stsi_3_2_2(vcpu, (void *) mem);
 		break;
 	}
-
-	rc = write_guest(vcpu, operand2, ar, (void *)mem, PAGE_SIZE);
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		memcpy((void *)sida_origin(vcpu->arch.sie_block), (void *)mem,
+		       PAGE_SIZE);
+		rc = 0;
+	} else {
+		rc = write_guest(vcpu, operand2, ar, (void *)mem, PAGE_SIZE);
+	}
 	if (rc) {
 		rc = kvm_s390_inject_prog_cond(vcpu, rc);
 		goto out;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/pv.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/pv.c
@@ -0,0 +1,303 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Hosting Protected Virtual Machines
+ *
+ * Copyright IBM Corp. 2019, 2020
+ *    Author(s): Janosch Frank <frankja@linux.ibm.com>
+ */
+#include <linux/kvm.h>
+#include <linux/kvm_host.h>
+#include <linux/pagemap.h>
+#include <linux/sched/signal.h>
+#include <asm/pgalloc.h>
+#include <asm/gmap.h>
+#include <asm/uv.h>
+#include <asm/mman.h>
+#include "kvm-s390.h"
+
+int kvm_s390_pv_destroy_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc)
+{
+	int cc = 0;
+
+	if (kvm_s390_pv_cpu_get_handle(vcpu)) {
+		cc = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+				   UVC_CMD_DESTROY_SEC_CPU, rc, rrc);
+
+		KVM_UV_EVENT(vcpu->kvm, 3,
+			     "PROTVIRT DESTROY VCPU %d: rc %x rrc %x",
+			     vcpu->vcpu_id, *rc, *rrc);
+		WARN_ONCE(cc, "protvirt destroy cpu failed rc %x rrc %x",
+			  *rc, *rrc);
+	}
+	/* Intended memory leak for something that should never happen. */
+	if (!cc)
+		free_pages(vcpu->arch.pv.stor_base,
+			   get_order(uv_info.guest_cpu_stor_len));
+
+	free_page(sida_origin(vcpu->arch.sie_block));
+	vcpu->arch.sie_block->pv_handle_cpu = 0;
+	vcpu->arch.sie_block->pv_handle_config = 0;
+	memset(&vcpu->arch.pv, 0, sizeof(vcpu->arch.pv));
+	vcpu->arch.sie_block->sdf = 0;
+	/*
+	 * The sidad field (for sdf == 2) is now the gbea field (for sdf == 0).
+	 * Use the reset value of gbea to avoid leaking the kernel pointer of
+	 * the just freed sida.
+	 */
+	vcpu->arch.sie_block->gbea = 1;
+	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
+
+	return cc ? EIO : 0;
+}
+
+int kvm_s390_pv_create_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_csc uvcb = {
+		.header.cmd = UVC_CMD_CREATE_SEC_CPU,
+		.header.len = sizeof(uvcb),
+	};
+	int cc;
+
+	if (kvm_s390_pv_cpu_get_handle(vcpu))
+		return -EINVAL;
+
+	vcpu->arch.pv.stor_base = __get_free_pages(GFP_KERNEL,
+						   get_order(uv_info.guest_cpu_stor_len));
+	if (!vcpu->arch.pv.stor_base)
+		return -ENOMEM;
+
+	/* Input */
+	uvcb.guest_handle = kvm_s390_pv_get_handle(vcpu->kvm);
+	uvcb.num = vcpu->arch.sie_block->icpua;
+	uvcb.state_origin = (u64)vcpu->arch.sie_block;
+	uvcb.stor_origin = (u64)vcpu->arch.pv.stor_base;
+
+	/* Alloc Secure Instruction Data Area Designation */
+	vcpu->arch.sie_block->sidad = __get_free_page(GFP_KERNEL | __GFP_ZERO);
+	if (!vcpu->arch.sie_block->sidad) {
+		free_pages(vcpu->arch.pv.stor_base,
+			   get_order(uv_info.guest_cpu_stor_len));
+		return -ENOMEM;
+	}
+
+	cc = uv_call(0, (u64)&uvcb);
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	KVM_UV_EVENT(vcpu->kvm, 3,
+		     "PROTVIRT CREATE VCPU: cpu %d handle %llx rc %x rrc %x",
+		     vcpu->vcpu_id, uvcb.cpu_handle, uvcb.header.rc,
+		     uvcb.header.rrc);
+
+	if (cc) {
+		u16 dummy;
+
+		kvm_s390_pv_destroy_cpu(vcpu, &dummy, &dummy);
+		return -EIO;
+	}
+
+	/* Output */
+	vcpu->arch.pv.handle = uvcb.cpu_handle;
+	vcpu->arch.sie_block->pv_handle_cpu = uvcb.cpu_handle;
+	vcpu->arch.sie_block->pv_handle_config = kvm_s390_pv_get_handle(vcpu->kvm);
+	vcpu->arch.sie_block->sdf = 2;
+	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
+	return 0;
+}
+
+/* only free resources when the destroy was successful */
+static void kvm_s390_pv_dealloc_vm(struct kvm *kvm)
+{
+	vfree(kvm->arch.pv.stor_var);
+	free_pages(kvm->arch.pv.stor_base,
+		   get_order(uv_info.guest_base_stor_len));
+	memset(&kvm->arch.pv, 0, sizeof(kvm->arch.pv));
+}
+
+static int kvm_s390_pv_alloc_vm(struct kvm *kvm)
+{
+	unsigned long base = uv_info.guest_base_stor_len;
+	unsigned long virt = uv_info.guest_virt_var_stor_len;
+	unsigned long npages = 0, vlen = 0;
+	struct kvm_memory_slot *memslot;
+
+	kvm->arch.pv.stor_var = NULL;
+	kvm->arch.pv.stor_base = __get_free_pages(GFP_KERNEL, get_order(base));
+	if (!kvm->arch.pv.stor_base)
+		return -ENOMEM;
+
+	/*
+	 * Calculate current guest storage for allocation of the
+	 * variable storage, which is based on the length in MB.
+	 *
+	 * Slots are sorted by GFN
+	 */
+	mutex_lock(&kvm->slots_lock);
+	memslot = kvm_memslots(kvm)->memslots;
+	npages = memslot->base_gfn + memslot->npages;
+	mutex_unlock(&kvm->slots_lock);
+
+	kvm->arch.pv.guest_len = npages * PAGE_SIZE;
+
+	/* Allocate variable storage */
+	vlen = ALIGN(virt * ((npages * PAGE_SIZE) / HPAGE_SIZE), PAGE_SIZE);
+	vlen += uv_info.guest_virt_base_stor_len;
+	kvm->arch.pv.stor_var = vzalloc(vlen);
+	if (!kvm->arch.pv.stor_var)
+		goto out_err;
+	return 0;
+
+out_err:
+	kvm_s390_pv_dealloc_vm(kvm);
+	return -ENOMEM;
+}
+
+/* this should not fail, but if it does, we must not free the donated memory */
+int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc)
+{
+	int cc;
+
+	/* make all pages accessible before destroying the guest */
+	s390_reset_acc(kvm->mm);
+
+	cc = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+			   UVC_CMD_DESTROY_SEC_CONF, rc, rrc);
+	WRITE_ONCE(kvm->arch.gmap->guest_handle, 0);
+	atomic_set(&kvm->mm->context.is_protected, 0);
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT DESTROY VM: rc %x rrc %x", *rc, *rrc);
+	WARN_ONCE(cc, "protvirt destroy vm failed rc %x rrc %x", *rc, *rrc);
+	/* Inteded memory leak on "impossible" error */
+	if (!cc)
+		kvm_s390_pv_dealloc_vm(kvm);
+	return cc ? -EIO : 0;
+}
+
+int kvm_s390_pv_init_vm(struct kvm *kvm, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_cgc uvcb = {
+		.header.cmd = UVC_CMD_CREATE_SEC_CONF,
+		.header.len = sizeof(uvcb)
+	};
+	int cc, ret;
+	u16 dummy;
+
+	ret = kvm_s390_pv_alloc_vm(kvm);
+	if (ret)
+		return ret;
+
+	/* Inputs */
+	uvcb.guest_stor_origin = 0; /* MSO is 0 for KVM */
+	uvcb.guest_stor_len = kvm->arch.pv.guest_len;
+	uvcb.guest_asce = kvm->arch.gmap->asce;
+	uvcb.guest_sca = (unsigned long)kvm->arch.sca;
+	uvcb.conf_base_stor_origin = (u64)kvm->arch.pv.stor_base;
+	uvcb.conf_virt_stor_origin = (u64)kvm->arch.pv.stor_var;
+
+	cc = uv_call(0, (u64)&uvcb);
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT CREATE VM: handle %llx len %llx rc %x rrc %x",
+		     uvcb.guest_handle, uvcb.guest_stor_len, *rc, *rrc);
+
+	/* Outputs */
+	kvm->arch.pv.handle = uvcb.guest_handle;
+
+	if (cc) {
+		if (uvcb.header.rc & UVC_RC_NEED_DESTROY)
+			kvm_s390_pv_deinit_vm(kvm, &dummy, &dummy);
+		else
+			kvm_s390_pv_dealloc_vm(kvm);
+		return -EIO;
+	}
+	kvm->arch.gmap->guest_handle = uvcb.guest_handle;
+	atomic_set(&kvm->mm->context.is_protected, 1);
+	return 0;
+}
+
+int kvm_s390_pv_set_sec_parms(struct kvm *kvm, void *hdr, u64 length, u16 *rc,
+			      u16 *rrc)
+{
+	struct uv_cb_ssc uvcb = {
+		.header.cmd = UVC_CMD_SET_SEC_CONF_PARAMS,
+		.header.len = sizeof(uvcb),
+		.sec_header_origin = (u64)hdr,
+		.sec_header_len = length,
+		.guest_handle = kvm_s390_pv_get_handle(kvm),
+	};
+	int cc = uv_call(0, (u64)&uvcb);
+
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT VM SET PARMS: rc %x rrc %x",
+		     *rc, *rrc);
+	return cc ? -EINVAL : 0;
+}
+
+static int unpack_one(struct kvm *kvm, unsigned long addr, u64 tweak,
+		      u64 offset, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_unp uvcb = {
+		.header.cmd = UVC_CMD_UNPACK_IMG,
+		.header.len = sizeof(uvcb),
+		.guest_handle = kvm_s390_pv_get_handle(kvm),
+		.gaddr = addr,
+		.tweak[0] = tweak,
+		.tweak[1] = offset,
+	};
+	int ret = gmap_make_secure(kvm->arch.gmap, addr, &uvcb);
+
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+
+	if (ret && ret != -EAGAIN)
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT VM UNPACK: failed addr %llx with rc %x rrc %x",
+			     uvcb.gaddr, *rc, *rrc);
+	return ret;
+}
+
+int kvm_s390_pv_unpack(struct kvm *kvm, unsigned long addr, unsigned long size,
+		       unsigned long tweak, u16 *rc, u16 *rrc)
+{
+	u64 offset = 0;
+	int ret = 0;
+
+	if (addr & ~PAGE_MASK || !size || size & ~PAGE_MASK)
+		return -EINVAL;
+
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT VM UNPACK: start addr %lx size %lx",
+		     addr, size);
+
+	while (offset < size) {
+		ret = unpack_one(kvm, addr, tweak, offset, rc, rrc);
+		if (ret == -EAGAIN) {
+			cond_resched();
+			if (fatal_signal_pending(current))
+				break;
+			continue;
+		}
+		if (ret)
+			break;
+		addr += PAGE_SIZE;
+		offset += PAGE_SIZE;
+	}
+	if (!ret)
+		KVM_UV_EVENT(kvm, 3, "%s", "PROTVIRT VM UNPACK: successful");
+	return ret;
+}
+
+int kvm_s390_pv_set_cpu_state(struct kvm_vcpu *vcpu, u8 state)
+{
+	struct uv_cb_cpu_set_state uvcb = {
+		.header.cmd	= UVC_CMD_CPU_SET_STATE,
+		.header.len	= sizeof(uvcb),
+		.cpu_handle	= kvm_s390_pv_cpu_get_handle(vcpu),
+		.state		= state,
+	};
+	int cc;
+
+	cc = uv_call(0, (u64)&uvcb);
+	KVM_UV_EVENT(vcpu->kvm, 3, "PROTVIRT SET CPU %d STATE %d rc %x rrc %x",
+		     vcpu->vcpu_id, state, uvcb.header.rc, uvcb.header.rrc);
+	if (cc)
+		return -EINVAL;
+	return 0;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/kvm/vsie.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/kvm/vsie.c
@@ -1202,6 +1202,7 @@
 		scb_s->iprcc = PGM_ADDRESSING;
 		scb_s->pgmilc = 4;
 		scb_s->gpsw.addr = __rewind_psw(scb_s->gpsw, 4);
+		rc = 1;
 	}
 	return rc;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/lib/uaccess.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/lib/uaccess.c
@@ -64,10 +64,13 @@
 {
 	mm_segment_t old_fs;
 	unsigned long asce, cr;
+	unsigned long flags;
 
 	old_fs = current->thread.mm_segment;
 	if (old_fs & 1)
 		return old_fs;
+	/* protect against a concurrent page table upgrade */
+	local_irq_save(flags);
 	current->thread.mm_segment |= 1;
 	asce = S390_lowcore.kernel_asce;
 	if (likely(old_fs == USER_DS)) {
@@ -83,6 +86,7 @@
 		__ctl_load(asce, 7, 7);
 		set_cpu_flag(CIF_ASCE_SECONDARY);
 	}
+	local_irq_restore(flags);
 	return old_fs;
 }
 EXPORT_SYMBOL(enable_sacf_uaccess);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/fault.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/fault.c
@@ -38,6 +38,7 @@
 #include <asm/irq.h>
 #include <asm/mmu_context.h>
 #include <asm/facility.h>
+#include <asm/uv.h>
 #include "../kernel/entry.h"
 
 #define __FAIL_ADDR_MASK -4096L
@@ -816,3 +817,80 @@
 early_initcall(pfault_irq_init);
 
 #endif /* CONFIG_PFAULT */
+
+#if IS_ENABLED(CONFIG_PGSTE)
+void do_secure_storage_access(struct pt_regs *regs)
+{
+	unsigned long addr = regs->int_parm_long & __FAIL_ADDR_MASK;
+	struct vm_area_struct *vma;
+	struct mm_struct *mm;
+	struct page *page;
+	int rc;
+
+	switch (get_fault_type(regs)) {
+	case USER_FAULT:
+		mm = current->mm;
+		down_read(&mm->mmap_sem);
+		vma = find_vma(mm, addr);
+		if (!vma) {
+			up_read(&mm->mmap_sem);
+			do_fault_error(regs, VM_READ | VM_WRITE, VM_FAULT_BADMAP);
+			break;
+		}
+		page = follow_page(vma, addr, FOLL_WRITE | FOLL_GET);
+		if (IS_ERR_OR_NULL(page)) {
+			up_read(&mm->mmap_sem);
+			break;
+		}
+		if (arch_make_page_accessible(page))
+			send_sig(SIGSEGV, current, 0);
+		put_page(page);
+		up_read(&mm->mmap_sem);
+		break;
+	case KERNEL_FAULT:
+		page = phys_to_page(addr);
+		if (unlikely(!try_get_page(page)))
+			break;
+		rc = arch_make_page_accessible(page);
+		put_page(page);
+		if (rc)
+			BUG();
+		break;
+	case VDSO_FAULT:
+		/* fallthrough */
+	case GMAP_FAULT:
+		/* fallthrough */
+	default:
+		do_fault_error(regs, VM_READ | VM_WRITE, VM_FAULT_BADMAP);
+		WARN_ON_ONCE(1);
+	}
+}
+NOKPROBE_SYMBOL(do_secure_storage_access);
+
+void do_non_secure_storage_access(struct pt_regs *regs)
+{
+	unsigned long gaddr = regs->int_parm_long & __FAIL_ADDR_MASK;
+	struct gmap *gmap = (struct gmap *)S390_lowcore.gmap;
+
+	if (get_fault_type(regs) != GMAP_FAULT) {
+		do_fault_error(regs, VM_READ | VM_WRITE, VM_FAULT_BADMAP);
+		WARN_ON_ONCE(1);
+		return;
+	}
+
+	if (gmap_convert_to_secure(gmap, gaddr) == -EINVAL)
+		send_sig(SIGSEGV, current, 0);
+}
+NOKPROBE_SYMBOL(do_non_secure_storage_access);
+
+#else
+void do_secure_storage_access(struct pt_regs *regs)
+{
+	default_trap_handler(regs);
+}
+
+void do_non_secure_storage_access(struct pt_regs *regs)
+{
+	default_trap_handler(regs);
+}
+#endif
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/gmap.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/gmap.c
@@ -787,14 +787,18 @@
 static inline unsigned long *gmap_table_walk(struct gmap *gmap,
 					     unsigned long gaddr, int level)
 {
+	const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
 	unsigned long *table;
 
 	if ((gmap->asce & _ASCE_TYPE_MASK) + 4 < (level * 4))
 		return NULL;
 	if (gmap_is_shadow(gmap) && gmap->removed)
 		return NULL;
-	if (gaddr & (-1UL << (31 + ((gmap->asce & _ASCE_TYPE_MASK) >> 2)*11)))
+
+	if (asce_type != _ASCE_TYPE_REGION1 &&
+	    gaddr & (-1UL << (31 + (asce_type >> 2) * 11)))
 		return NULL;
+
 	table = gmap->table;
 	switch (gmap->asce & _ASCE_TYPE_MASK) {
 	case _ASCE_TYPE_REGION1:
@@ -1840,6 +1844,7 @@
 		goto out_free;
 	} else if (*table & _REGION_ENTRY_ORIGIN) {
 		rc = -EAGAIN;		/* Race with shadow */
+		goto out_free;
 	}
 	crst_table_init(s_r3t, _REGION3_ENTRY_EMPTY);
 	/* mark as invalid as long as the parent table is not protected */
@@ -2480,23 +2485,36 @@
 }
 EXPORT_SYMBOL_GPL(gmap_sync_dirty_log_pmd);
 
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+static int thp_split_walk_pmd_entry(pmd_t *pmd, unsigned long addr,
+				    unsigned long end, struct mm_walk *walk)
+{
+	struct vm_area_struct *vma = walk->vma;
+
+	split_huge_pmd(vma, pmd, addr);
+	return 0;
+}
+
+static const struct mm_walk_ops thp_split_walk_ops = {
+	.pmd_entry	= thp_split_walk_pmd_entry,
+};
+
 static inline void thp_split_mm(struct mm_struct *mm)
 {
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
 	struct vm_area_struct *vma;
-	unsigned long addr;
 
 	for (vma = mm->mmap; vma != NULL; vma = vma->vm_next) {
-		for (addr = vma->vm_start;
-		     addr < vma->vm_end;
-		     addr += PAGE_SIZE)
-			follow_page(vma, addr, FOLL_SPLIT);
 		vma->vm_flags &= ~VM_HUGEPAGE;
 		vma->vm_flags |= VM_NOHUGEPAGE;
+		walk_page_vma(vma, &thp_split_walk_ops, NULL);
 	}
 	mm->def_flags |= VM_NOHUGEPAGE;
-#endif
 }
+#else
+static inline void thp_split_mm(struct mm_struct *mm)
+{
+}
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
 
 /*
  * Remove all empty zero pages from the mapping for lazy refaulting
@@ -2548,6 +2566,22 @@
 }
 EXPORT_SYMBOL_GPL(s390_enable_sie);
 
+int gmap_mark_unmergeable(void)
+{
+	struct mm_struct *mm = current->mm;
+	struct vm_area_struct *vma;
+
+	for (vma = mm->mmap; vma; vma = vma->vm_next) {
+		if (ksm_madvise(vma, vma->vm_start, vma->vm_end,
+				MADV_UNMERGEABLE, &vma->vm_flags)) {
+			return -ENOMEM;
+		}
+	}
+	mm->def_flags &= ~VM_MERGEABLE;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(gmap_mark_unmergeable);
+
 /*
  * Enable storage key handling from now on and initialize the storage
  * keys with the default key.
@@ -2593,7 +2627,6 @@
 int s390_enable_skey(void)
 {
 	struct mm_struct *mm = current->mm;
-	struct vm_area_struct *vma;
 	int rc = 0;
 
 	down_write(&mm->mmap_sem);
@@ -2601,16 +2634,11 @@
 		goto out_up;
 
 	mm->context.uses_skeys = 1;
-	for (vma = mm->mmap; vma; vma = vma->vm_next) {
-		if (ksm_madvise(vma, vma->vm_start, vma->vm_end,
-				MADV_UNMERGEABLE, &vma->vm_flags)) {
-			mm->context.uses_skeys = 0;
-			rc = -ENOMEM;
-			goto out_up;
-		}
+	rc = gmap_mark_unmergeable();
+	if (rc) {
+		mm->context.uses_skeys = 0;
+		goto out_up;
 	}
-	mm->def_flags &= ~VM_MERGEABLE;
-
 	walk_page_range(mm, 0, TASK_SIZE, &enable_skey_walk_ops, NULL);
 
 out_up:
@@ -2640,3 +2668,38 @@
 	up_write(&mm->mmap_sem);
 }
 EXPORT_SYMBOL_GPL(s390_reset_cmma);
+
+/*
+ * make inaccessible pages accessible again
+ */
+static int __s390_reset_acc(pte_t *ptep, unsigned long addr,
+			    unsigned long next, struct mm_walk *walk)
+{
+	pte_t pte = READ_ONCE(*ptep);
+
+	if (pte_present(pte))
+		WARN_ON_ONCE(uv_convert_from_secure(pte_val(pte) & PAGE_MASK));
+	return 0;
+}
+
+static const struct mm_walk_ops reset_acc_walk_ops = {
+	.pte_entry		= __s390_reset_acc,
+};
+
+#include <linux/sched/mm.h>
+void s390_reset_acc(struct mm_struct *mm)
+{
+	/*
+	 * we might be called during
+	 * reset:                             we walk the pages and clear
+	 * close of all kvm file descriptors: we walk the pages and clear
+	 * exit of process on fd closure:     vma already gone, do nothing
+	 */
+	if (!mmget_not_zero(mm))
+		return;
+	down_read(&mm->mmap_sem);
+	walk_page_range(mm, 0, TASK_SIZE, &reset_acc_walk_ops, NULL);
+	up_read(&mm->mmap_sem);
+	mmput(mm);
+}
+EXPORT_SYMBOL_GPL(s390_reset_acc);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/hugetlbpage.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/hugetlbpage.c
@@ -2,7 +2,7 @@
 /*
  *  IBM System z Huge TLB Page Support for Kernel.
  *
- *    Copyright IBM Corp. 2007,2016
+ *    Copyright IBM Corp. 2007,2020
  *    Author(s): Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
@@ -11,6 +11,9 @@
 
 #include <linux/mm.h>
 #include <linux/hugetlb.h>
+#include <linux/mman.h>
+#include <linux/sched/mm.h>
+#include <linux/security.h>
 
 /*
  * If the bit selected by single-bit bitmask "a" is set within "x", move
@@ -114,7 +117,7 @@
 					     _PAGE_YOUNG);
 #ifdef CONFIG_MEM_SOFT_DIRTY
 		pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_SOFT_DIRTY,
-					     _PAGE_DIRTY);
+					     _PAGE_SOFT_DIRTY);
 #endif
 		pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_NOEXEC,
 					     _PAGE_NOEXEC);
@@ -156,10 +159,13 @@
 		rste &= ~_SEGMENT_ENTRY_NOEXEC;
 
 	/* Set correct table type for 2G hugepages */
-	if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3)
-		rste |= _REGION_ENTRY_TYPE_R3 | _REGION3_ENTRY_LARGE;
-	else
+	if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) {
+		if (likely(pte_present(pte)))
+			rste |= _REGION3_ENTRY_LARGE;
+		rste |= _REGION_ENTRY_TYPE_R3;
+	} else if (likely(pte_present(pte)))
 		rste |= _SEGMENT_ENTRY_LARGE;
+
 	clear_huge_pte_skeys(mm, rste);
 	pte_val(*ptep) = rste;
 }
@@ -267,3 +273,98 @@
 	return 1;
 }
 __setup("hugepagesz=", setup_hugepagesz);
+
+static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
+		unsigned long addr, unsigned long len,
+		unsigned long pgoff, unsigned long flags)
+{
+	struct hstate *h = hstate_file(file);
+	struct vm_unmapped_area_info info;
+
+	info.flags = 0;
+	info.length = len;
+	info.low_limit = current->mm->mmap_base;
+	info.high_limit = TASK_SIZE;
+	info.align_mask = PAGE_MASK & ~huge_page_mask(h);
+	info.align_offset = 0;
+	return vm_unmapped_area(&info);
+}
+
+static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
+		unsigned long addr0, unsigned long len,
+		unsigned long pgoff, unsigned long flags)
+{
+	struct hstate *h = hstate_file(file);
+	struct vm_unmapped_area_info info;
+	unsigned long addr;
+
+	info.flags = VM_UNMAPPED_AREA_TOPDOWN;
+	info.length = len;
+	info.low_limit = max(PAGE_SIZE, mmap_min_addr);
+	info.high_limit = current->mm->mmap_base;
+	info.align_mask = PAGE_MASK & ~huge_page_mask(h);
+	info.align_offset = 0;
+	addr = vm_unmapped_area(&info);
+
+	/*
+	 * A failed mmap() very likely causes application failure,
+	 * so fall back to the bottom-up function here. This scenario
+	 * can happen with large stack limits and large mmap()
+	 * allocations.
+	 */
+	if (addr & ~PAGE_MASK) {
+		VM_BUG_ON(addr != -ENOMEM);
+		info.flags = 0;
+		info.low_limit = TASK_UNMAPPED_BASE;
+		info.high_limit = TASK_SIZE;
+		addr = vm_unmapped_area(&info);
+	}
+
+	return addr;
+}
+
+unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+		unsigned long len, unsigned long pgoff, unsigned long flags)
+{
+	struct hstate *h = hstate_file(file);
+	struct mm_struct *mm = current->mm;
+	struct vm_area_struct *vma;
+	int rc;
+
+	if (len & ~huge_page_mask(h))
+		return -EINVAL;
+	if (len > TASK_SIZE - mmap_min_addr)
+		return -ENOMEM;
+
+	if (flags & MAP_FIXED) {
+		if (prepare_hugepage_range(file, addr, len))
+			return -EINVAL;
+		goto check_asce_limit;
+	}
+
+	if (addr) {
+		addr = ALIGN(addr, huge_page_size(h));
+		vma = find_vma(mm, addr);
+		if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
+		    (!vma || addr + len <= vm_start_gap(vma)))
+			goto check_asce_limit;
+	}
+
+	if (mm->get_unmapped_area == arch_get_unmapped_area)
+		addr = hugetlb_get_unmapped_area_bottomup(file, addr, len,
+				pgoff, flags);
+	else
+		addr = hugetlb_get_unmapped_area_topdown(file, addr, len,
+				pgoff, flags);
+	if (addr & ~PAGE_MASK)
+		return addr;
+
+check_asce_limit:
+	if (addr + len > current->mm->context.asce_limit &&
+	    addr + len <= TASK_SIZE) {
+		rc = crst_table_upgrade(mm, addr + len);
+		if (rc)
+			return (unsigned long) rc;
+	}
+	return addr;
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/init.c
@@ -291,10 +291,8 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 	vmem_remove_mapping(start, size);
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/maccess.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/maccess.c
@@ -55,22 +55,29 @@
  */
 static DEFINE_SPINLOCK(s390_kernel_write_lock);
 
-void notrace s390_kernel_write(void *dst, const void *src, size_t size)
+notrace void *s390_kernel_write(void *dst, const void *src, size_t size)
 {
+	void *tmp = dst;
 	unsigned long flags;
 	long copied;
 
 	spin_lock_irqsave(&s390_kernel_write_lock, flags);
-	while (size) {
-		copied = s390_kernel_write_odd(dst, src, size);
-		dst += copied;
-		src += copied;
-		size -= copied;
+	if (!(flags & PSW_MASK_DAT)) {
+		memcpy(dst, src, size);
+	} else {
+		while (size) {
+			copied = s390_kernel_write_odd(tmp, src, size);
+			tmp += copied;
+			src += copied;
+			size -= copied;
+		}
 	}
 	spin_unlock_irqrestore(&s390_kernel_write_lock, flags);
+
+	return dst;
 }
 
-static int __memcpy_real(void *dest, void *src, size_t count)
+static int __no_sanitize_address __memcpy_real(void *dest, void *src, size_t count)
 {
 	register unsigned long _dest asm("2") = (unsigned long) dest;
 	register unsigned long _len1 asm("3") = (unsigned long) count;
@@ -91,19 +98,23 @@
 	return rc;
 }
 
-static unsigned long _memcpy_real(unsigned long dest, unsigned long src,
-				  unsigned long count)
+static unsigned long __no_sanitize_address _memcpy_real(unsigned long dest,
+							unsigned long src,
+							unsigned long count)
 {
 	int irqs_disabled, rc;
 	unsigned long flags;
 
 	if (!count)
 		return 0;
-	flags = __arch_local_irq_stnsm(0xf8UL);
+	flags = arch_local_irq_save();
 	irqs_disabled = arch_irqs_disabled_flags(flags);
 	if (!irqs_disabled)
 		trace_hardirqs_off();
+	__arch_local_irq_stnsm(0xf8); // disable DAT
 	rc = __memcpy_real((void *) dest, (void *) src, (size_t) count);
+	if (flags & PSW_MASK_DAT)
+		__arch_local_irq_stosm(0x04); // enable DAT
 	if (!irqs_disabled)
 		trace_hardirqs_on();
 	__arch_local_irq_ssm(flags);
@@ -115,9 +126,15 @@
  */
 int memcpy_real(void *dest, void *src, size_t count)
 {
-	if (S390_lowcore.nodat_stack != 0)
-		return CALL_ON_STACK(_memcpy_real, S390_lowcore.nodat_stack,
-				     3, dest, src, count);
+	int rc;
+
+	if (S390_lowcore.nodat_stack != 0) {
+		preempt_disable();
+		rc = CALL_ON_STACK(_memcpy_real, S390_lowcore.nodat_stack, 3,
+				   dest, src, count);
+		preempt_enable();
+		return rc;
+	}
 	/*
 	 * This is a really early memcpy_real call, the stacks are
 	 * not set up yet. Just call _memcpy_real on the early boot
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/pgalloc.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/pgalloc.c
@@ -70,8 +70,20 @@
 {
 	struct mm_struct *mm = arg;
 
-	if (current->active_mm == mm)
-		set_user_asce(mm);
+	/* we must change all active ASCEs to avoid the creation of new TLBs */
+	if (current->active_mm == mm) {
+		S390_lowcore.user_asce = mm->context.asce;
+		if (current->thread.mm_segment == USER_DS) {
+			__ctl_load(S390_lowcore.user_asce, 1, 1);
+			/* Mark user-ASCE present in CR1 */
+			clear_cpu_flag(CIF_ASCE_PRIMARY);
+		}
+		if (current->thread.mm_segment == USER_DS_SACF) {
+			__ctl_load(S390_lowcore.user_asce, 7, 7);
+			/* enable_sacf_uaccess does all or nothing */
+			WARN_ON(!test_cpu_flag(CIF_ASCE_SECONDARY));
+		}
+	}
 	__tlb_flush_local();
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/mm/vmem.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/mm/vmem.c
@@ -415,6 +415,10 @@
 		     SET_MEMORY_RO | SET_MEMORY_X);
 	__set_memory(__stext_dma, (__etext_dma - __stext_dma) >> PAGE_SHIFT,
 		     SET_MEMORY_RO | SET_MEMORY_X);
+
+	/* we need lowcore executable for our LPSWE instructions */
+	set_memory_x(0, 1);
+
 	pr_info("Write protected kernel read-only data: %luk\n",
 		(unsigned long)(__end_rodata - _stext) >> 10);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/net/bpf_jit_comp.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/net/bpf_jit_comp.c
@@ -23,6 +23,7 @@
 #include <linux/filter.h>
 #include <linux/init.h>
 #include <linux/bpf.h>
+#include <linux/mm.h>
 #include <asm/cacheflush.h>
 #include <asm/dis.h>
 #include <asm/facility.h>
@@ -1369,7 +1370,7 @@
 	}
 
 	memset(&jit, 0, sizeof(jit));
-	jit.addrs = kcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL);
+	jit.addrs = kvcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL);
 	if (jit.addrs == NULL) {
 		fp = orig_fp;
 		goto out;
@@ -1422,7 +1423,7 @@
 	if (!fp->is_func || extra_pass) {
 		bpf_prog_fill_jited_linfo(fp, jit.addrs + 1);
 free_addrs:
-		kfree(jit.addrs);
+		kvfree(jit.addrs);
 		kfree(jit_data);
 		fp->aux->jit_data = NULL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/numa/numa.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/numa/numa.c
@@ -49,12 +49,6 @@
 		mode->update_cpu_topology();
 }
 
-int __node_distance(int a, int b)
-{
-	return mode->distance ? mode->distance(a, b) : 0;
-}
-EXPORT_SYMBOL(__node_distance);
-
 int numa_debug_enabled;
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/Makefile
@@ -4,4 +4,5 @@
 #
 
 obj-$(CONFIG_PCI)	+= pci.o pci_irq.o pci_dma.o pci_clp.o pci_sysfs.o \
-			   pci_event.o pci_debug.o pci_insn.o pci_mmio.o
+			   pci_event.o pci_debug.o pci_insn.o pci_mmio.o \
+			   pci_bus.o
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci.c
@@ -35,17 +35,21 @@
 #include <asm/pci_clp.h>
 #include <asm/pci_dma.h>
 
+#include "pci_bus.h"
+
 /* list of all detected zpci devices */
 static LIST_HEAD(zpci_list);
 static DEFINE_SPINLOCK(zpci_list_lock);
 
-static DECLARE_BITMAP(zpci_domain, ZPCI_NR_DEVICES);
+static DECLARE_BITMAP(zpci_domain, ZPCI_DOMAIN_BITMAP_SIZE);
 static DEFINE_SPINLOCK(zpci_domain_lock);
 
 #define ZPCI_IOMAP_ENTRIES						\
 	min(((unsigned long) ZPCI_NR_DEVICES * PCI_BAR_COUNT / 2),	\
 	    ZPCI_IOMAP_MAX_ENTRIES)
 
+unsigned int s390_pci_no_rid;
+
 static DEFINE_SPINLOCK(zpci_iomap_lock);
 static unsigned long *zpci_iomap_bitmap;
 struct zpci_iomap_entry *zpci_iomap_start;
@@ -86,17 +90,12 @@
 	spin_unlock(&zpci_list_lock);
 
 	list_for_each_entry_safe(zdev, tmp, &remove, entry)
-		zpci_remove_device(zdev);
-}
-
-static struct zpci_dev *get_zdev_by_bus(struct pci_bus *bus)
-{
-	return (bus && bus->sysdata) ? (struct zpci_dev *) bus->sysdata : NULL;
+		zpci_zdev_put(zdev);
 }
 
 int pci_domain_nr(struct pci_bus *bus)
 {
-	return ((struct zpci_dev *) bus->sysdata)->domain;
+	return ((struct zpci_bus *) bus->sysdata)->domain_nr;
 }
 EXPORT_SYMBOL_GPL(pci_domain_nr);
 
@@ -371,29 +370,17 @@
 static int pci_read(struct pci_bus *bus, unsigned int devfn, int where,
 		    int size, u32 *val)
 {
-	struct zpci_dev *zdev = get_zdev_by_bus(bus);
-	int ret;
-
-	if (!zdev || devfn != ZPCI_DEVFN)
-		ret = -ENODEV;
-	else
-		ret = zpci_cfg_load(zdev, where, val, size);
+	struct zpci_dev *zdev = get_zdev_by_bus(bus, devfn);
 
-	return ret;
+	return (zdev) ? zpci_cfg_load(zdev, where, val, size) : -ENODEV;
 }
 
 static int pci_write(struct pci_bus *bus, unsigned int devfn, int where,
 		     int size, u32 val)
 {
-	struct zpci_dev *zdev = get_zdev_by_bus(bus);
-	int ret;
-
-	if (!zdev || devfn != ZPCI_DEVFN)
-		ret = -ENODEV;
-	else
-		ret = zpci_cfg_store(zdev, where, val, size);
+	struct zpci_dev *zdev = get_zdev_by_bus(bus, devfn);
 
-	return ret;
+	return (zdev) ? zpci_cfg_store(zdev, where, val, size) : -ENODEV;
 }
 
 static struct pci_ops pci_root_ops = {
@@ -423,7 +410,7 @@
 
 		if (zpci_use_mio(zdev))
 			pdev->resource[i].start =
-				(resource_size_t __force) zdev->bars[i].mio_wb;
+				(resource_size_t __force) zdev->bars[i].mio_wt;
 		else
 			pdev->resource[i].start = (resource_size_t __force)
 				pci_iomap_range_fh(pdev, i, 0, 0);
@@ -504,15 +491,15 @@
 	return r;
 }
 
-static int zpci_setup_bus_resources(struct zpci_dev *zdev,
-				    struct list_head *resources)
+int zpci_setup_bus_resources(struct zpci_dev *zdev,
+			     struct list_head *resources)
 {
 	unsigned long addr, size, flags;
 	struct resource *res;
 	int i, entry;
 
 	snprintf(zdev->res_name, sizeof(zdev->res_name),
-		 "PCI Bus %04x:%02x", zdev->domain, ZPCI_BUS_NR);
+		 "PCI Bus %04x:%02x", zdev->uid, ZPCI_BUS_NR);
 
 	for (i = 0; i < PCI_BAR_COUNT; i++) {
 		if (!zdev->bars[i].size)
@@ -530,7 +517,7 @@
 			flags |= IORESOURCE_MEM_64;
 
 		if (zpci_use_mio(zdev))
-			addr = (unsigned long) zdev->bars[i].mio_wb;
+			addr = (unsigned long) zdev->bars[i].mio_wt;
 		else
 			addr = ZPCI_ADDR(entry);
 		size = 1UL << zdev->bars[i].size;
@@ -649,86 +636,54 @@
 };
 #endif /* CONFIG_HIBERNATE_CALLBACKS */
 
-static int zpci_alloc_domain(struct zpci_dev *zdev)
+static int __zpci_register_domain(int domain)
 {
-	if (zpci_unique_uid) {
-		zdev->domain = (u16) zdev->uid;
-		if (zdev->domain >= ZPCI_NR_DEVICES)
-			return 0;
-
-		spin_lock(&zpci_domain_lock);
-		if (test_bit(zdev->domain, zpci_domain)) {
-			spin_unlock(&zpci_domain_lock);
-			return -EEXIST;
-		}
-		set_bit(zdev->domain, zpci_domain);
-		spin_unlock(&zpci_domain_lock);
-		return 0;
-	}
-
 	spin_lock(&zpci_domain_lock);
-	zdev->domain = find_first_zero_bit(zpci_domain, ZPCI_NR_DEVICES);
-	if (zdev->domain == ZPCI_NR_DEVICES) {
+	if (test_bit(domain, zpci_domain)) {
 		spin_unlock(&zpci_domain_lock);
-		return -ENOSPC;
+		pr_err("Domain %04x is already assigned\n", domain);
+		return -EEXIST;
 	}
-	set_bit(zdev->domain, zpci_domain);
+	set_bit(domain, zpci_domain);
 	spin_unlock(&zpci_domain_lock);
-	return 0;
+	return domain;
 }
 
-static void zpci_free_domain(struct zpci_dev *zdev)
+static int __zpci_alloc_domain(void)
 {
-	if (zdev->domain >= ZPCI_NR_DEVICES)
-		return;
+	int domain;
 
 	spin_lock(&zpci_domain_lock);
-	clear_bit(zdev->domain, zpci_domain);
+	/*
+	 * We can always auto allocate domains below ZPCI_NR_DEVICES.
+	 * There is either a free domain or we have reached the maximum in
+	 * which case we would have bailed earlier.
+	 */
+	domain = find_first_zero_bit(zpci_domain, ZPCI_NR_DEVICES);
+	set_bit(domain, zpci_domain);
 	spin_unlock(&zpci_domain_lock);
+	return domain;
 }
 
-void pcibios_remove_bus(struct pci_bus *bus)
+int zpci_alloc_domain(int domain)
 {
-	struct zpci_dev *zdev = get_zdev_by_bus(bus);
-
-	zpci_exit_slot(zdev);
-	zpci_cleanup_bus_resources(zdev);
-	zpci_destroy_iommu(zdev);
-	zpci_free_domain(zdev);
-
-	spin_lock(&zpci_list_lock);
-	list_del(&zdev->entry);
-	spin_unlock(&zpci_list_lock);
-
-	zpci_dbg(3, "rem fid:%x\n", zdev->fid);
-	kfree(zdev);
+	if (zpci_unique_uid) {
+		if (domain)
+			return __zpci_register_domain(domain);
+		pr_warn("UID checking was active but no UID is provided: switching to automatic domain allocation\n");
+		update_uid_checking(false);
+	}
+	return __zpci_alloc_domain();
 }
 
-static int zpci_scan_bus(struct zpci_dev *zdev)
+void zpci_free_domain(int domain)
 {
-	LIST_HEAD(resources);
-	int ret;
-
-	ret = zpci_setup_bus_resources(zdev, &resources);
-	if (ret)
-		goto error;
-
-	zdev->bus = pci_scan_root_bus(NULL, ZPCI_BUS_NR, &pci_root_ops,
-				      zdev, &resources);
-	if (!zdev->bus) {
-		ret = -EIO;
-		goto error;
-	}
-	zdev->bus->max_bus_speed = zdev->max_bus_speed;
-	pci_bus_add_devices(zdev->bus);
-	return 0;
-
-error:
-	zpci_cleanup_bus_resources(zdev);
-	pci_free_resource_list(&resources);
-	return ret;
+	spin_lock(&zpci_domain_lock);
+	clear_bit(domain, zpci_domain);
+	spin_unlock(&zpci_domain_lock);
 }
 
+
 int zpci_enable_device(struct zpci_dev *zdev)
 {
 	int rc;
@@ -754,21 +709,40 @@
 int zpci_disable_device(struct zpci_dev *zdev)
 {
 	zpci_dma_exit_device(zdev);
+	/*
+	 * The zPCI function may already be disabled by the platform, this is
+	 * detected in clp_disable_fh() which becomes a no-op.
+	 */
 	return clp_disable_fh(zdev);
 }
 EXPORT_SYMBOL_GPL(zpci_disable_device);
 
+void zpci_remove_device(struct zpci_dev *zdev)
+{
+	struct zpci_bus *zbus = zdev->zbus;
+	struct pci_dev *pdev;
+
+	pdev = pci_get_slot(zbus->bus, zdev->devfn);
+	if (pdev) {
+		if (pdev->is_virtfn)
+			return zpci_remove_virtfn(pdev, zdev->vfn);
+		pci_stop_and_remove_bus_device_locked(pdev);
+	}
+}
+
 int zpci_create_device(struct zpci_dev *zdev)
 {
 	int rc;
 
-	rc = zpci_alloc_domain(zdev);
-	if (rc)
-		goto out;
+	kref_init(&zdev->kref);
+
+	spin_lock(&zpci_list_lock);
+	list_add_tail(&zdev->entry, &zpci_list);
+	spin_unlock(&zpci_list_lock);
 
 	rc = zpci_init_iommu(zdev);
 	if (rc)
-		goto out_free;
+		goto out;
 
 	mutex_init(&zdev->lock);
 	if (zdev->state == ZPCI_FN_STATE_CONFIGURED) {
@@ -776,36 +750,54 @@
 		if (rc)
 			goto out_destroy_iommu;
 	}
-	rc = zpci_scan_bus(zdev);
+
+	rc = zpci_bus_device_register(zdev, &pci_root_ops);
 	if (rc)
 		goto out_disable;
 
-	spin_lock(&zpci_list_lock);
-	list_add_tail(&zdev->entry, &zpci_list);
-	spin_unlock(&zpci_list_lock);
-
-	zpci_init_slot(zdev);
-
 	return 0;
 
 out_disable:
 	if (zdev->state == ZPCI_FN_STATE_ONLINE)
 		zpci_disable_device(zdev);
+
 out_destroy_iommu:
 	zpci_destroy_iommu(zdev);
-out_free:
-	zpci_free_domain(zdev);
 out:
+	spin_lock(&zpci_list_lock);
+	list_del(&zdev->entry);
+	spin_unlock(&zpci_list_lock);
 	return rc;
 }
 
-void zpci_remove_device(struct zpci_dev *zdev)
+void zpci_release_device(struct kref *kref)
 {
-	if (!zdev->bus)
-		return;
+	struct zpci_dev *zdev = container_of(kref, struct zpci_dev, kref);
 
-	pci_stop_root_bus(zdev->bus);
-	pci_remove_root_bus(zdev->bus);
+	if (zdev->zbus->bus)
+		zpci_remove_device(zdev);
+
+	switch (zdev->state) {
+	case ZPCI_FN_STATE_ONLINE:
+	case ZPCI_FN_STATE_CONFIGURED:
+		zpci_disable_device(zdev);
+		fallthrough;
+	case ZPCI_FN_STATE_STANDBY:
+		if (zdev->has_hp_slot)
+			zpci_exit_slot(zdev);
+		zpci_cleanup_bus_resources(zdev);
+		zpci_bus_device_unregister(zdev);
+		zpci_destroy_iommu(zdev);
+		fallthrough;
+	default:
+		break;
+	}
+
+	spin_lock(&zpci_list_lock);
+	list_del(&zdev->entry);
+	spin_unlock(&zpci_list_lock);
+	zpci_dbg(3, "rem fid:%x\n", zdev->fid);
+	kfree(zdev);
 }
 
 int zpci_report_error(struct pci_dev *pdev,
@@ -872,6 +864,10 @@
 		s390_pci_force_floating = 1;
 		return NULL;
 	}
+	if (!strcmp(str, "norid")) {
+		s390_pci_no_rid = 1;
+		return NULL;
+	}
 	return str;
 }
 
@@ -934,5 +930,5 @@
 void zpci_rescan(void)
 {
 	if (zpci_is_enabled())
-		clp_rescan_pci_devices_simple();
+		clp_rescan_pci_devices_simple(NULL);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_bus.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_bus.c
@@ -0,0 +1,332 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright IBM Corp. 2020
+ *
+ * Author(s):
+ *   Pierre Morel <pmorel@linux.ibm.com>
+ *
+ */
+
+#define KMSG_COMPONENT "zpci"
+#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/err.h>
+#include <linux/export.h>
+#include <linux/delay.h>
+#include <linux/seq_file.h>
+#include <linux/jump_label.h>
+#include <linux/pci.h>
+#include <linux/printk.h>
+
+#include <asm/pci_clp.h>
+#include <asm/pci_dma.h>
+
+#include "pci_bus.h"
+
+static LIST_HEAD(zbus_list);
+static DEFINE_SPINLOCK(zbus_list_lock);
+static int zpci_nb_devices;
+
+/* zpci_bus_scan
+ * @zbus: the zbus holding the zdevices
+ * @ops: the pci operations
+ *
+ * The domain number must be set before pci_scan_root_bus is called.
+ * This function can be called once the domain is known, hence
+ * when the function_0 is dicovered.
+ */
+static int zpci_bus_scan(struct zpci_bus *zbus, int domain, struct pci_ops *ops)
+{
+	struct pci_bus *bus;
+	int rc;
+
+	rc = zpci_alloc_domain(domain);
+	if (rc < 0)
+		return rc;
+	zbus->domain_nr = rc;
+
+	bus = pci_scan_root_bus(NULL, ZPCI_BUS_NR, ops, zbus, &zbus->resources);
+	if (!bus) {
+		zpci_free_domain(zbus->domain_nr);
+		return -EFAULT;
+	}
+
+	zbus->bus = bus;
+	pci_bus_add_devices(bus);
+	return 0;
+}
+
+static void zpci_bus_release(struct kref *kref)
+{
+	struct zpci_bus *zbus = container_of(kref, struct zpci_bus, kref);
+
+	if (zbus->bus) {
+		pci_lock_rescan_remove();
+		pci_stop_root_bus(zbus->bus);
+
+		zpci_free_domain(zbus->domain_nr);
+		pci_free_resource_list(&zbus->resources);
+
+		pci_remove_root_bus(zbus->bus);
+		pci_unlock_rescan_remove();
+	}
+
+	spin_lock(&zbus_list_lock);
+	list_del(&zbus->bus_next);
+	spin_unlock(&zbus_list_lock);
+	kfree(zbus);
+}
+
+static void zpci_bus_put(struct zpci_bus *zbus)
+{
+	kref_put(&zbus->kref, zpci_bus_release);
+}
+
+static struct zpci_bus *zpci_bus_get(int pchid)
+{
+	struct zpci_bus *zbus;
+
+	spin_lock(&zbus_list_lock);
+	list_for_each_entry(zbus, &zbus_list, bus_next) {
+		if (pchid == zbus->pchid) {
+			kref_get(&zbus->kref);
+			goto out_unlock;
+		}
+	}
+	zbus = NULL;
+out_unlock:
+	spin_unlock(&zbus_list_lock);
+	return zbus;
+}
+
+static struct zpci_bus *zpci_bus_alloc(int pchid)
+{
+	struct zpci_bus *zbus;
+
+	zbus = kzalloc(sizeof(*zbus), GFP_KERNEL);
+	if (!zbus)
+		return NULL;
+
+	zbus->pchid = pchid;
+	INIT_LIST_HEAD(&zbus->bus_next);
+	spin_lock(&zbus_list_lock);
+	list_add_tail(&zbus->bus_next, &zbus_list);
+	spin_unlock(&zbus_list_lock);
+
+	kref_init(&zbus->kref);
+	INIT_LIST_HEAD(&zbus->resources);
+
+	return zbus;
+}
+
+#ifdef CONFIG_PCI_IOV
+static int zpci_bus_link_virtfn(struct pci_dev *pdev,
+		struct pci_dev *virtfn, int vfid)
+{
+	int rc;
+
+	rc = pci_iov_sysfs_link(pdev, virtfn, vfid);
+	if (rc)
+		return rc;
+
+	virtfn->is_virtfn = 1;
+	virtfn->multifunction = 0;
+	virtfn->physfn = pci_dev_get(pdev);
+
+	return 0;
+}
+
+static int zpci_bus_setup_virtfn(struct zpci_bus *zbus,
+		struct pci_dev *virtfn, int vfn)
+{
+	int i, cand_devfn;
+	struct zpci_dev *zdev;
+	struct pci_dev *pdev;
+	int vfid = vfn - 1; /* Linux' vfid's start at 0 vfn at 1*/
+	int rc = 0;
+
+	if (!zbus->multifunction)
+		return 0;
+
+	/* If the parent PF for the given VF is also configured in the
+	 * instance, it must be on the same zbus.
+	 * We can then identify the parent PF by checking what
+	 * devfn the VF would have if it belonged to that PF using the PF's
+	 * stride and offset. Only if this candidate devfn matches the
+	 * actual devfn will we link both functions.
+	 */
+	for (i = 0; i < ZPCI_FUNCTIONS_PER_BUS; i++) {
+		zdev = zbus->function[i];
+		if (zdev && zdev->is_physfn) {
+			pdev = pci_get_slot(zbus->bus, zdev->devfn);
+			if (!pdev)
+				continue;
+			cand_devfn = pci_iov_virtfn_devfn(pdev, vfid);
+			if (cand_devfn == virtfn->devfn) {
+				rc = zpci_bus_link_virtfn(pdev, virtfn, vfid);
+				/* balance pci_get_slot() */
+				pci_dev_put(pdev);
+				break;
+			}
+			/* balance pci_get_slot() */
+			pci_dev_put(pdev);
+		}
+	}
+	return rc;
+}
+#else
+static inline int zpci_bus_setup_virtfn(struct zpci_bus *zbus,
+		struct pci_dev *virtfn, int vfn)
+{
+	return 0;
+}
+#endif
+
+void pcibios_bus_add_device(struct pci_dev *pdev)
+{
+	struct zpci_dev *zdev = to_zpci(pdev);
+
+	/*
+	 * With pdev->no_vf_scan the common PCI probing code does not
+	 * perform PF/VF linking.
+	 */
+	if (zdev->vfn) {
+		zpci_bus_setup_virtfn(zdev->zbus, pdev, zdev->vfn);
+		pdev->no_command_memory = 1;
+	}
+}
+
+static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev)
+{
+	struct pci_bus *bus;
+	struct resource_entry *window, *n;
+	struct resource *res;
+	struct pci_dev *pdev;
+	int rc;
+
+	bus = zbus->bus;
+	if (!bus)
+		return -EINVAL;
+
+	pdev = pci_get_slot(bus, zdev->devfn);
+	if (pdev) {
+		/* Device is already known. */
+		pci_dev_put(pdev);
+		return 0;
+	}
+
+	rc = zpci_init_slot(zdev);
+	if (rc)
+		return rc;
+	zdev->has_hp_slot = 1;
+
+	resource_list_for_each_entry_safe(window, n, &zbus->resources) {
+		res = window->res;
+		pci_bus_add_resource(bus, res, 0);
+	}
+
+	pdev = pci_scan_single_device(bus, zdev->devfn);
+	if (pdev)
+		pci_bus_add_device(pdev);
+
+	return 0;
+}
+
+static void zpci_bus_add_devices(struct zpci_bus *zbus)
+{
+	int i;
+
+	for (i = 1; i < ZPCI_FUNCTIONS_PER_BUS; i++)
+		if (zbus->function[i])
+			zpci_bus_add_device(zbus, zbus->function[i]);
+
+	pci_lock_rescan_remove();
+	pci_bus_add_devices(zbus->bus);
+	pci_unlock_rescan_remove();
+}
+
+int zpci_bus_device_register(struct zpci_dev *zdev, struct pci_ops *ops)
+{
+	struct zpci_bus *zbus = NULL;
+	int rc = -EBADF;
+
+	if (zpci_nb_devices == ZPCI_NR_DEVICES) {
+		pr_warn("Adding PCI function %08x failed because the configured limit of %d is reached\n",
+			zdev->fid, ZPCI_NR_DEVICES);
+		return -ENOSPC;
+	}
+	zpci_nb_devices++;
+
+	if (zdev->devfn >= ZPCI_FUNCTIONS_PER_BUS)
+		return -EINVAL;
+
+	if (!s390_pci_no_rid && zdev->rid_available)
+		zbus = zpci_bus_get(zdev->pchid);
+
+	if (!zbus) {
+		zbus = zpci_bus_alloc(zdev->pchid);
+		if (!zbus)
+			return -ENOMEM;
+	}
+
+	zdev->zbus = zbus;
+	if (zbus->function[zdev->devfn]) {
+		pr_err("devfn %04x is already assigned\n", zdev->devfn);
+		goto error; /* rc already set */
+	}
+	zbus->function[zdev->devfn] = zdev;
+
+	zpci_setup_bus_resources(zdev, &zbus->resources);
+
+	if (zbus->bus) {
+		if (!zbus->multifunction) {
+			WARN_ONCE(1, "zbus is not multifunction\n");
+			goto error_bus;
+		}
+		if (!zdev->rid_available) {
+			WARN_ONCE(1, "rid_available not set for multifunction\n");
+			goto error_bus;
+		}
+		rc = zpci_bus_add_device(zbus, zdev);
+		if (rc)
+			goto error_bus;
+	} else if (zdev->devfn == 0) {
+		if (zbus->multifunction && !zdev->rid_available) {
+			WARN_ONCE(1, "rid_available not set on function 0 for multifunction\n");
+			goto error_bus;
+		}
+		rc = zpci_bus_scan(zbus, (u16)zdev->uid, ops);
+		if (rc)
+			goto error_bus;
+		zpci_bus_add_devices(zbus);
+		rc = zpci_init_slot(zdev);
+		if (rc)
+			goto error_bus;
+		zdev->has_hp_slot = 1;
+		zbus->multifunction = zdev->rid_available;
+		zbus->max_bus_speed = zdev->max_bus_speed;
+	} else {
+		zbus->multifunction = 1;
+	}
+
+	return 0;
+
+error_bus:
+	zpci_nb_devices--;
+	zbus->function[zdev->devfn] = NULL;
+error:
+	pr_err("Adding PCI function %08x failed\n", zdev->fid);
+	zpci_bus_put(zbus);
+	return rc;
+}
+
+void zpci_bus_device_unregister(struct zpci_dev *zdev)
+{
+	struct zpci_bus *zbus = zdev->zbus;
+
+	zpci_nb_devices--;
+	zbus->function[zdev->devfn] = NULL;
+	zpci_bus_put(zbus);
+}
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_bus.h
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_bus.h
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright IBM Corp. 2020
+ *
+ * Author(s):
+ *   Pierre Morel <pmorel@linux.ibm.com>
+ *
+ */
+
+int zpci_bus_device_register(struct zpci_dev *zdev, struct pci_ops *ops);
+void zpci_bus_device_unregister(struct zpci_dev *zdev);
+int zpci_bus_init(void);
+
+void zpci_release_device(struct kref *kref);
+static inline void zpci_zdev_put(struct zpci_dev *zdev)
+{
+	kref_put(&zdev->kref, zpci_release_device);
+}
+
+int zpci_alloc_domain(int domain);
+void zpci_free_domain(int domain);
+int zpci_setup_bus_resources(struct zpci_dev *zdev,
+			     struct list_head *resources);
+
+static inline struct zpci_dev *get_zdev_by_bus(struct pci_bus *bus,
+					       unsigned int devfn)
+{
+	struct zpci_bus *zbus = bus->sysdata;
+
+	return (devfn >= ZPCI_FUNCTIONS_PER_BUS) ? NULL : zbus->function[devfn];
+}
+
+#ifdef CONFIG_PCI_IOV
+static inline void zpci_remove_virtfn(struct pci_dev *pdev, int vfn)
+{
+
+	pci_lock_rescan_remove();
+	/* Linux' vfid's start at 0 vfn at 1 */
+	pci_iov_remove_virtfn(pdev->physfn, vfn - 1);
+	pci_unlock_rescan_remove();
+}
+#else /* CONFIG_PCI_IOV */
+static inline void zpci_remove_virtfn(struct pci_dev *pdev, int vfn) {}
+#endif /* CONFIG_PCI_IOV */
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_clp.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_clp.c
@@ -24,7 +24,7 @@
 
 bool zpci_unique_uid;
 
-static void update_uid_checking(bool new)
+void update_uid_checking(bool new)
 {
 	if (zpci_unique_uid != new)
 		zpci_dbg(1, "uid checking:%d\n", new);
@@ -155,8 +155,13 @@
 	zdev->pfgid = response->pfgid;
 	zdev->pft = response->pft;
 	zdev->vfn = response->vfn;
+	zdev->port = response->port;
 	zdev->uid = response->uid;
 	zdev->fmb_length = sizeof(u32) * response->fmb_len;
+	zdev->rid_available = response->rid_avail;
+	zdev->is_physfn = response->is_physfn;
+	if (!s390_pci_no_rid && zdev->rid_available)
+		zdev->devfn = response->rid & ZPCI_RID_MASK_DEVFN;
 
 	memcpy(zdev->pfip, response->pfip, sizeof(zdev->pfip));
 	if (response->util_str_avail) {
@@ -240,12 +245,14 @@
 }
 
 /*
- * Enable/Disable a given PCI function defined by its function handle.
+ * Enable/Disable a given PCI function and update its function handle if
+ * necessary
  */
-static int clp_set_pci_fn(u32 *fh, u8 nr_dma_as, u8 command)
+static int clp_set_pci_fn(struct zpci_dev *zdev, u8 nr_dma_as, u8 command)
 {
 	struct clp_req_rsp_set_pci *rrb;
 	int rc, retries = 100;
+	u32 fid = zdev->fid;
 
 	rrb = clp_alloc_block(GFP_KERNEL);
 	if (!rrb)
@@ -256,7 +263,7 @@
 		rrb->request.hdr.len = sizeof(rrb->request);
 		rrb->request.hdr.cmd = CLP_SET_PCI_FN;
 		rrb->response.hdr.len = sizeof(rrb->response);
-		rrb->request.fh = *fh;
+		rrb->request.fh = zdev->fh;
 		rrb->request.oc = command;
 		rrb->request.ndas = nr_dma_as;
 
@@ -269,12 +276,17 @@
 		}
 	} while (rrb->response.hdr.rsp == CLP_RC_SETPCIFN_BUSY);
 
-	if (!rc && rrb->response.hdr.rsp == CLP_RC_OK)
-		*fh = rrb->response.fh;
-	else {
+	if (rc || rrb->response.hdr.rsp != CLP_RC_OK) {
 		zpci_err("Set PCI FN:\n");
 		zpci_err_clp(rrb->response.hdr.rsp, rc);
-		rc = -EIO;
+	}
+
+	if (!rc && rrb->response.hdr.rsp == CLP_RC_OK) {
+		zdev->fh = rrb->response.fh;
+	} else if (!rc && rrb->response.hdr.rsp == CLP_RC_SETPCIFN_ALRDY &&
+			rrb->response.fh == 0) {
+		/* Function is already in desired state - update handle */
+		rc = clp_rescan_pci_devices_simple(&fid);
 	}
 	clp_free_block(rrb);
 	return rc;
@@ -282,18 +294,17 @@
 
 int clp_enable_fh(struct zpci_dev *zdev, u8 nr_dma_as)
 {
-	u32 fh = zdev->fh;
 	int rc;
 
-	rc = clp_set_pci_fn(&fh, nr_dma_as, CLP_SET_ENABLE_PCI_FN);
-	zpci_dbg(3, "ena fid:%x, fh:%x, rc:%d\n", zdev->fid, fh, rc);
+	rc = clp_set_pci_fn(zdev, nr_dma_as, CLP_SET_ENABLE_PCI_FN);
+	zpci_dbg(3, "ena fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc);
 	if (rc)
 		goto out;
 
-	zdev->fh = fh;
 	if (zpci_use_mio(zdev)) {
-		rc = clp_set_pci_fn(&fh, nr_dma_as, CLP_SET_ENABLE_MIO);
-		zpci_dbg(3, "ena mio fid:%x, fh:%x, rc:%d\n", zdev->fid, fh, rc);
+		rc = clp_set_pci_fn(zdev, nr_dma_as, CLP_SET_ENABLE_MIO);
+		zpci_dbg(3, "ena mio fid:%x, fh:%x, rc:%d\n",
+				zdev->fid, zdev->fh, rc);
 		if (rc)
 			clp_disable_fh(zdev);
 	}
@@ -303,17 +314,13 @@
 
 int clp_disable_fh(struct zpci_dev *zdev)
 {
-	u32 fh = zdev->fh;
 	int rc;
 
 	if (!zdev_enabled(zdev))
 		return 0;
 
-	rc = clp_set_pci_fn(&fh, 0, CLP_SET_DISABLE_PCI_FN);
-	zpci_dbg(3, "dis fid:%x, fh:%x, rc:%d\n", zdev->fid, fh, rc);
-	if (!rc)
-		zdev->fh = fh;
-
+	rc = clp_set_pci_fn(zdev, 0, CLP_SET_DISABLE_PCI_FN);
+	zpci_dbg(3, "dis fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc);
 	return rc;
 }
 
@@ -370,10 +377,14 @@
 static void __clp_update(struct clp_fh_list_entry *entry, void *data)
 {
 	struct zpci_dev *zdev;
+	u32 *fid = data;
 
 	if (!entry->vendor_id)
 		return;
 
+	if (fid && *fid != entry->fid)
+		return;
+
 	zdev = get_zdev_by_fid(entry->fid);
 	if (!zdev)
 		return;
@@ -413,7 +424,10 @@
 	return rc;
 }
 
-int clp_rescan_pci_devices_simple(void)
+/* Rescan PCI functions and refresh function handles. If fid is non-NULL only
+ * refresh the handle of the function matching @fid
+ */
+int clp_rescan_pci_devices_simple(u32 *fid)
 {
 	struct clp_req_rsp_list_pci *rrb;
 	int rc;
@@ -422,7 +436,7 @@
 	if (!rrb)
 		return -ENOMEM;
 
-	rc = clp_list_pci(rrb, NULL, __clp_update);
+	rc = clp_list_pci(rrb, fid, __clp_update);
 
 	clp_free_block(rrb);
 	return rc;
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_event.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_event.c
@@ -14,6 +14,8 @@
 #include <asm/pci_debug.h>
 #include <asm/sclp.h>
 
+#include "pci_bus.h"
+
 /* Content Code Description for PCI Function Error */
 struct zpci_ccdf_err {
 	u32 reserved1;
@@ -53,7 +55,7 @@
 	zpci_err_hex(ccdf, sizeof(*ccdf));
 
 	if (zdev)
-		pdev = pci_get_slot(zdev->bus, ZPCI_DEVFN);
+		pdev = pci_get_slot(zdev->zbus->bus, zdev->devfn);
 
 	pr_err("%s: Event 0x%x reports an error for PCI function 0x%x\n",
 	       pdev ? pci_name(pdev) : "n/a", ccdf->pec, ccdf->fid);
@@ -78,42 +80,52 @@
 	enum zpci_state state;
 	int ret;
 
-	if (zdev)
-		pdev = pci_get_slot(zdev->bus, ZPCI_DEVFN);
+	if (zdev && zdev->zbus && zdev->zbus->bus)
+		pdev = pci_get_slot(zdev->zbus->bus, zdev->devfn);
 
-	pr_info("%s: Event 0x%x reconfigured PCI function 0x%x\n",
-		pdev ? pci_name(pdev) : "n/a", ccdf->pec, ccdf->fid);
 	zpci_err("avail CCDF:\n");
 	zpci_err_hex(ccdf, sizeof(*ccdf));
 
 	switch (ccdf->pec) {
 	case 0x0301: /* Reserved|Standby -> Configured */
 		if (!zdev) {
-			ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
-			if (ret)
-				break;
-			zdev = get_zdev_by_fid(ccdf->fid);
+			ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 1);
+			break;
 		}
-		if (!zdev || zdev->state != ZPCI_FN_STATE_STANDBY)
+		/* the configuration request may be stale */
+		if (zdev->state != ZPCI_FN_STATE_STANDBY)
 			break;
-		zdev->state = ZPCI_FN_STATE_CONFIGURED;
 		zdev->fh = ccdf->fh;
+		zdev->state = ZPCI_FN_STATE_CONFIGURED;
 		ret = zpci_enable_device(zdev);
 		if (ret)
 			break;
+
+		/* the PCI function will be scanned once function 0 appears */
+		if (!zdev->zbus->bus)
+			break;
+
+		pdev = pci_scan_single_device(zdev->zbus->bus, zdev->devfn);
+		if (!pdev)
+			break;
+
+		pci_bus_add_device(pdev);
 		pci_lock_rescan_remove();
-		pci_rescan_bus(zdev->bus);
+		pci_bus_add_devices(zdev->zbus->bus);
 		pci_unlock_rescan_remove();
 		break;
 	case 0x0302: /* Reserved -> Standby */
-		if (!zdev)
+		if (!zdev) {
 			clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
+			break;
+		}
+		zdev->fh = ccdf->fh;
 		break;
 	case 0x0303: /* Deconfiguration requested */
 		if (!zdev)
 			break;
 		if (pdev)
-			pci_stop_and_remove_bus_device_locked(pdev);
+			zpci_remove_device(zdev);
 
 		ret = zpci_disable_device(zdev);
 		if (ret)
@@ -132,7 +144,7 @@
 			/* Give the driver a hint that the function is
 			 * already unusable. */
 			pdev->error_state = pci_channel_io_perm_failure;
-			pci_stop_and_remove_bus_device_locked(pdev);
+			zpci_remove_device(zdev);
 		}
 
 		zdev->fh = ccdf->fh;
@@ -140,7 +152,7 @@
 		zdev->state = ZPCI_FN_STATE_STANDBY;
 		if (!clp_get_state(ccdf->fid, &state) &&
 		    state == ZPCI_FN_STATE_RESERVED) {
-			zpci_remove_device(zdev);
+			zpci_zdev_put(zdev);
 		}
 		break;
 	case 0x0306: /* 0x308 or 0x302 for multiple devices */
@@ -149,12 +161,11 @@
 	case 0x0308: /* Standby -> Reserved */
 		if (!zdev)
 			break;
-		zpci_remove_device(zdev);
+		zpci_zdev_put(zdev);
 		break;
 	default:
 		break;
 	}
-	pci_dev_put(pdev);
 }
 
 void zpci_event_availability(void *data)
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_irq.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_irq.c
@@ -115,7 +115,6 @@
 	.name = "PCI-MSI",
 	.irq_unmask = pci_msi_unmask_irq,
 	.irq_mask = pci_msi_mask_irq,
-	.irq_set_affinity = zpci_set_irq_affinity,
 };
 
 static void zpci_handle_cpu_local_irq(bool rescan)
@@ -276,7 +275,9 @@
 		rc = -EIO;
 		if (hwirq - bit >= msi_vecs)
 			break;
-		irq = __irq_alloc_descs(-1, 0, 1, 0, THIS_MODULE, msi->affinity);
+		irq = __irq_alloc_descs(-1, 0, 1, 0, THIS_MODULE,
+				(irq_delivery == DIRECTED) ?
+				msi->affinity : NULL);
 		if (irq < 0)
 			return -ENOMEM;
 		rc = irq_set_msi_desc(irq, msi);
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_mmio.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_mmio.c
@@ -11,6 +11,113 @@
 #include <linux/mm.h>
 #include <linux/errno.h>
 #include <linux/pci.h>
+#include <asm/pci_io.h>
+#include <asm/pci_debug.h>
+
+static inline void zpci_err_mmio(u8 cc, u8 status, u64 offset)
+{
+	struct {
+		u64 offset;
+		u8 cc;
+		u8 status;
+	} data = {offset, cc, status};
+
+	zpci_err_hex(&data, sizeof(data));
+}
+
+static inline int __pcistb_mio_inuser(
+		void __iomem *ioaddr, const void __user *src,
+		u64 len, u8 *status)
+{
+	int cc = -ENXIO;
+
+	asm volatile (
+		"       sacf 256\n"
+		"0:     .insn   rsy,0xeb00000000d4,%[len],%[ioaddr],%[src]\n"
+		"1:     ipm     %[cc]\n"
+		"       srl     %[cc],28\n"
+		"2:     sacf 768\n"
+		EX_TABLE(0b, 2b) EX_TABLE(1b, 2b)
+		: [cc] "+d" (cc), [len] "+d" (len)
+		: [ioaddr] "a" (ioaddr), [src] "Q" (*((u8 __force *)src))
+		: "cc", "memory");
+	*status = len >> 24 & 0xff;
+	return cc;
+}
+
+static inline int __pcistg_mio_inuser(
+		void __iomem *ioaddr, const void __user *src,
+		u64 ulen, u8 *status)
+{
+	register u64 addr asm("2") = (u64 __force) ioaddr;
+	register u64 len asm("3") = ulen;
+	int cc = -ENXIO;
+	u64 val = 0;
+	u64 cnt = ulen;
+	u8 tmp;
+
+	/*
+	 * copy 0 < @len <= 8 bytes from @src into the right most bytes of
+	 * a register, then store it to PCI at @ioaddr while in secondary
+	 * address space. pcistg then uses the user mappings.
+	 */
+	asm volatile (
+		"       sacf    256\n"
+		"0:     llgc    %[tmp],0(%[src])\n"
+		"       sllg    %[val],%[val],8\n"
+		"       aghi    %[src],1\n"
+		"       ogr     %[val],%[tmp]\n"
+		"       brctg   %[cnt],0b\n"
+		"1:     .insn   rre,0xb9d40000,%[val],%[ioaddr]\n"
+		"2:     ipm     %[cc]\n"
+		"       srl     %[cc],28\n"
+		"3:     sacf    768\n"
+		EX_TABLE(0b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b)
+		:
+		[src] "+a" (src), [cnt] "+d" (cnt),
+		[val] "+d" (val), [tmp] "=d" (tmp),
+		[len] "+d" (len), [cc] "+d" (cc),
+		[ioaddr] "+a" (addr)
+		:: "cc", "memory");
+	*status = len >> 24 & 0xff;
+
+	/* did we read everything from user memory? */
+	if (!cc && cnt != 0)
+		cc = -EFAULT;
+
+	return cc;
+}
+
+static inline int __memcpy_toio_inuser(void __iomem *dst,
+				   const void __user *src, size_t n)
+{
+	int size, rc = 0;
+	u8 status = 0;
+	mm_segment_t old_fs;
+
+	if (!src)
+		return -EINVAL;
+
+	old_fs = enable_sacf_uaccess();
+	while (n > 0) {
+		size = zpci_get_max_write_size((u64 __force) dst,
+					       (u64 __force) src, n,
+					       ZPCI_MAX_WRITE_SIZE);
+		if (size > 8) /* main path */
+			rc = __pcistb_mio_inuser(dst, src, size, &status);
+		else
+			rc = __pcistg_mio_inuser(dst, src, size, &status);
+		if (rc)
+			break;
+		src += size;
+		dst += size;
+		n -= size;
+	}
+	disable_sacf_uaccess(old_fs);
+	if (rc)
+		zpci_err_mmio(rc, status, (__force u64) dst);
+	return rc;
+}
 
 static long get_pfn(unsigned long user_addr, unsigned long access,
 		    unsigned long *pfn)
@@ -46,6 +153,20 @@
 
 	if (length <= 0 || PAGE_SIZE - (mmio_addr & ~PAGE_MASK) < length)
 		return -EINVAL;
+
+	/*
+	 * Only support read access to MIO capable devices on a MIO enabled
+	 * system. Otherwise we would have to check for every address if it is
+	 * a special ZPCI_ADDR and we would have to do a get_pfn() which we
+	 * don't need for MIO capable devices.
+	 */
+	if (static_branch_likely(&have_mio)) {
+		ret = __memcpy_toio_inuser((void  __iomem *) mmio_addr,
+					user_buffer,
+					length);
+		return ret;
+	}
+
 	if (length > 64) {
 		buf = kmalloc(length, GFP_KERNEL);
 		if (!buf)
@@ -56,7 +177,8 @@
 	ret = get_pfn(mmio_addr, VM_WRITE, &pfn);
 	if (ret)
 		goto out;
-	io_addr = (void __iomem *)((pfn << PAGE_SHIFT) | (mmio_addr & ~PAGE_MASK));
+	io_addr = (void __iomem *)((pfn << PAGE_SHIFT) |
+			(mmio_addr & ~PAGE_MASK));
 
 	ret = -EFAULT;
 	if ((unsigned long) io_addr < ZPCI_IOMAP_ADDR_BASE)
@@ -72,6 +194,78 @@
 	return ret;
 }
 
+static inline int __pcilg_mio_inuser(
+		void __user *dst, const void __iomem *ioaddr,
+		u64 ulen, u8 *status)
+{
+	register u64 addr asm("2") = (u64 __force) ioaddr;
+	register u64 len asm("3") = ulen;
+	u64 cnt = ulen;
+	int shift = ulen * 8;
+	int cc = -ENXIO;
+	u64 val, tmp;
+
+	/*
+	 * read 0 < @len <= 8 bytes from the PCI memory mapped at @ioaddr (in
+	 * user space) into a register using pcilg then store these bytes at
+	 * user address @dst
+	 */
+	asm volatile (
+		"       sacf    256\n"
+		"0:     .insn   rre,0xb9d60000,%[val],%[ioaddr]\n"
+		"1:     ipm     %[cc]\n"
+		"       srl     %[cc],28\n"
+		"       ltr     %[cc],%[cc]\n"
+		"       jne     4f\n"
+		"2:     ahi     %[shift],-8\n"
+		"       srlg    %[tmp],%[val],0(%[shift])\n"
+		"3:     stc     %[tmp],0(%[dst])\n"
+		"       aghi    %[dst],1\n"
+		"       brctg   %[cnt],2b\n"
+		"4:     sacf    768\n"
+		EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b)
+		:
+		[cc] "+d" (cc), [val] "=d" (val), [len] "+d" (len),
+		[dst] "+a" (dst), [cnt] "+d" (cnt), [tmp] "=d" (tmp),
+		[shift] "+d" (shift)
+		:
+		[ioaddr] "a" (addr)
+		: "cc", "memory");
+
+	/* did we write everything to the user space buffer? */
+	if (!cc && cnt != 0)
+		cc = -EFAULT;
+
+	*status = len >> 24 & 0xff;
+	return cc;
+}
+
+static inline int __memcpy_fromio_inuser(void __user *dst,
+				     const void __iomem *src,
+				     unsigned long n)
+{
+	int size, rc = 0;
+	u8 status;
+	mm_segment_t old_fs;
+
+	old_fs = enable_sacf_uaccess();
+	while (n > 0) {
+		size = zpci_get_max_write_size((u64 __force) src,
+					       (u64 __force) dst, n,
+					       ZPCI_MAX_READ_SIZE);
+		rc = __pcilg_mio_inuser(dst, src, size, &status);
+		if (rc)
+			break;
+		src += size;
+		dst += size;
+		n -= size;
+	}
+	disable_sacf_uaccess(old_fs);
+	if (rc)
+		zpci_err_mmio(rc, status, (__force u64) dst);
+	return rc;
+}
+
 SYSCALL_DEFINE3(s390_pci_mmio_read, unsigned long, mmio_addr,
 		void __user *, user_buffer, size_t, length)
 {
@@ -86,12 +280,27 @@
 
 	if (length <= 0 || PAGE_SIZE - (mmio_addr & ~PAGE_MASK) < length)
 		return -EINVAL;
+
+	/*
+	 * Only support write access to MIO capable devices on a MIO enabled
+	 * system. Otherwise we would have to check for every address if it is
+	 * a special ZPCI_ADDR and we would have to do a get_pfn() which we
+	 * don't need for MIO capable devices.
+	 */
+	if (static_branch_likely(&have_mio)) {
+		ret = __memcpy_fromio_inuser(
+				user_buffer, (const void __iomem *)mmio_addr,
+				length);
+		return ret;
+	}
+
 	if (length > 64) {
 		buf = kmalloc(length, GFP_KERNEL);
 		if (!buf)
 			return -ENOMEM;
-	} else
+	} else {
 		buf = local_buf;
+	}
 
 	ret = get_pfn(mmio_addr, VM_READ, &pfn);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/pci/pci_sysfs.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/pci/pci_sysfs.c
@@ -13,6 +13,8 @@
 #include <linux/stat.h>
 #include <linux/pci.h>
 
+#include "../../../drivers/pci/pci.h"
+
 #include <asm/sclp.h>
 
 #define zpci_attr(name, fmt, member)					\
@@ -31,6 +33,7 @@
 zpci_attr(pfgid, "0x%02x\n", pfgid);
 zpci_attr(vfn, "0x%04x\n", vfn);
 zpci_attr(pft, "0x%02x\n", pft);
+zpci_attr(port, "%d\n", port);
 zpci_attr(uid, "0x%x\n", uid);
 zpci_attr(segment0, "0x%02x\n", pfip[0]);
 zpci_attr(segment1, "0x%02x\n", pfip[1]);
@@ -49,31 +52,50 @@
 static ssize_t recover_store(struct device *dev, struct device_attribute *attr,
 			     const char *buf, size_t count)
 {
+	struct kernfs_node *kn;
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct zpci_dev *zdev = to_zpci(pdev);
-	int ret;
-
-	if (!device_remove_file_self(dev, attr))
-		return count;
+	int ret = 0;
 
+	/* Can't use device_remove_self() here as that would lead us to lock
+	 * the pci_rescan_remove_lock while holding the device' kernfs lock.
+	 * This would create a possible deadlock with disable_slot() which is
+	 * not directly protected by the device' kernfs lock but takes it
+	 * during the device removal which happens under
+	 * pci_rescan_remove_lock.
+	 *
+	 * This is analogous to sdev_store_delete() in
+	 * drivers/scsi/scsi_sysfs.c
+	 */
+	kn = sysfs_break_active_protection(&dev->kobj, &attr->attr);
+	WARN_ON_ONCE(!kn);
+	/* device_remove_file() serializes concurrent calls ignoring all but
+	 * the first
+	 */
+	device_remove_file(dev, attr);
+
+	/* A concurrent call to recover_store() may slip between
+	 * sysfs_break_active_protection() and the sysfs file removal.
+	 * Once it unblocks from pci_lock_rescan_remove() the original pdev
+	 * will already be removed.
+	 */
 	pci_lock_rescan_remove();
-	pci_stop_and_remove_bus_device(pdev);
-	ret = zpci_disable_device(zdev);
-	if (ret)
-		goto error;
-
-	ret = zpci_enable_device(zdev);
-	if (ret)
-		goto error;
-
-	pci_rescan_bus(zdev->bus);
+	if (pci_dev_is_added(pdev)) {
+		pci_stop_and_remove_bus_device(pdev);
+		ret = zpci_disable_device(zdev);
+		if (ret)
+			goto out;
+
+		ret = zpci_enable_device(zdev);
+		if (ret)
+			goto out;
+		pci_rescan_bus(zdev->zbus->bus);
+	}
+out:
 	pci_unlock_rescan_remove();
-
-	return count;
-
-error:
-	pci_unlock_rescan_remove();
-	return ret;
+	if (kn)
+		sysfs_unbreak_active_protection(kn);
+	return ret ? ret : count;
 }
 static DEVICE_ATTR_WO(recover);
 
@@ -121,6 +143,7 @@
 	&dev_attr_pchid.attr,
 	&dev_attr_pfgid.attr,
 	&dev_attr_pft.attr,
+	&dev_attr_port.attr,
 	&dev_attr_vfn.attr,
 	&dev_attr_uid.attr,
 	&dev_attr_recover.attr,
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/purgatory/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/s390/purgatory/Makefile
@@ -15,8 +15,10 @@
 $(obj)/mem.o: $(srctree)/arch/s390/lib/mem.S FORCE
 	$(call if_changed_rule,as_o_S)
 
-$(obj)/string.o: $(srctree)/arch/s390/lib/string.c FORCE
-	$(call if_changed_rule,cc_o_c)
+KCOV_INSTRUMENT := n
+GCOV_PROFILE := n
+UBSAN_SANITIZE := n
+KASAN_SANITIZE := n
 
 KBUILD_CFLAGS := -fno-strict-aliasing -Wall -Wstrict-prototypes
 KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/purgatory/head.S
+++ linux-gkeop-5.4-5.4.0/arch/s390/purgatory/head.S
@@ -62,14 +62,15 @@
 	jh	10b
 .endm
 
-.macro START_NEXT_KERNEL base
+.macro START_NEXT_KERNEL base subcode
 	lg	%r4,kernel_entry-\base(%r13)
 	lg	%r5,load_psw_mask-\base(%r13)
 	ogr	%r4,%r5
 	stg	%r4,0(%r0)
 
 	xgr	%r0,%r0
-	diag	%r0,%r0,0x308
+	lghi	%r1,\subcode
+	diag	%r0,%r1,0x308
 .endm
 
 .text
@@ -123,7 +124,7 @@
 	je	.start_crash_kernel
 
 	/* start normal kernel */
-	START_NEXT_KERNEL .base_crash
+	START_NEXT_KERNEL .base_crash 0
 
 .return_old_kernel:
 	lmg	%r6,%r15,gprregs-.base_crash(%r13)
@@ -227,7 +228,7 @@
 	MEMCPY	%r9,%r10,%r11
 
 	/* start crash kernel */
-	START_NEXT_KERNEL .base_dst
+	START_NEXT_KERNEL .base_dst 1
 
 
 load_psw_mask:
--- linux-gkeop-5.4-5.4.0.orig/arch/s390/purgatory/string.c
+++ linux-gkeop-5.4-5.4.0/arch/s390/purgatory/string.c
@@ -0,0 +1,3 @@
+// SPDX-License-Identifier: GPL-2.0
+#define __HAVE_ARCH_MEMCMP	/* arch function */
+#include "../lib/string.c"
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/boards/mach-landisk/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/sh/boards/mach-landisk/setup.c
@@ -82,6 +82,9 @@
 
 static void __init landisk_setup(char **cmdline_p)
 {
+	/* I/O port identity mapping */
+	__set_io_port_base(0);
+
 	/* LED ON */
 	__raw_writeb(__raw_readb(PA_LED) | 0x03, PA_LED);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/configs/sh03_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/sh/configs/sh03_defconfig
@@ -46,7 +46,6 @@
 CONFIG_SCSI=m
 CONFIG_BLK_DEV_SD=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_NETDEVICES=y
 CONFIG_NET_ETHERNET=y
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/drivers/dma/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/sh/drivers/dma/Kconfig
@@ -63,8 +63,7 @@
 
 config G2_DMA
 	tristate "G2 Bus DMA support"
-	depends on SH_DREAMCAST
-	select SH_DMA_API
+	depends on SH_DREAMCAST && SH_DMA_API
 	help
 	  This enables support for the DMA controller for the Dreamcast's
 	  G2 bus. Drivers that want this will generally enable this on
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/include/asm/pgalloc.h
+++ linux-gkeop-5.4-5.4.0/arch/sh/include/asm/pgalloc.h
@@ -12,6 +12,7 @@
 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
 extern pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address);
 extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
+#define __pmd_free_tlb(tlb, pmdp, addr)		pmd_free((tlb)->mm, (pmdp))
 #endif
 
 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
@@ -33,13 +34,4 @@
 	tlb_remove_page((tlb), (pte));			\
 } while (0)
 
-#if CONFIG_PGTABLE_LEVELS > 2
-#define __pmd_free_tlb(tlb, pmdp, addr)			\
-do {							\
-	struct page *page = virt_to_page(pmdp);		\
-	pgtable_pmd_page_dtor(page);			\
-	tlb_remove_page((tlb), page);			\
-} while (0);
-#endif
-
 #endif /* __ASM_SH_PGALLOC_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/include/cpu-sh2a/cpu/sh7269.h
+++ linux-gkeop-5.4-5.4.0/arch/sh/include/cpu-sh2a/cpu/sh7269.h
@@ -78,8 +78,15 @@
 	GPIO_FN_WDTOVF,
 
 	/* CAN */
-	GPIO_FN_CTX1, GPIO_FN_CRX1, GPIO_FN_CTX0, GPIO_FN_CTX0_CTX1,
-	GPIO_FN_CRX0, GPIO_FN_CRX0_CRX1, GPIO_FN_CRX0_CRX1_CRX2,
+	GPIO_FN_CTX2, GPIO_FN_CRX2,
+	GPIO_FN_CTX1, GPIO_FN_CRX1,
+	GPIO_FN_CTX0, GPIO_FN_CRX0,
+	GPIO_FN_CTX0_CTX1, GPIO_FN_CRX0_CRX1,
+	GPIO_FN_CTX0_CTX1_CTX2, GPIO_FN_CRX0_CRX1_CRX2,
+	GPIO_FN_CTX2_PJ21, GPIO_FN_CRX2_PJ20,
+	GPIO_FN_CTX1_PJ23, GPIO_FN_CRX1_PJ22,
+	GPIO_FN_CTX0_CTX1_PJ23, GPIO_FN_CRX0_CRX1_PJ22,
+	GPIO_FN_CTX0_CTX1_CTX2_PJ21, GPIO_FN_CRX0_CRX1_CRX2_PJ20,
 
 	/* DMAC */
 	GPIO_FN_TEND0, GPIO_FN_DACK0, GPIO_FN_DREQ0,
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/include/cpu-sh4/cpu/sh7734.h
+++ linux-gkeop-5.4-5.4.0/arch/sh/include/cpu-sh4/cpu/sh7734.h
@@ -134,7 +134,7 @@
 	GPIO_FN_EX_WAIT1, GPIO_FN_SD1_DAT0_A, GPIO_FN_DREQ2, GPIO_FN_CAN1_TX_C,
 		GPIO_FN_ET0_LINK_C, GPIO_FN_ET0_ETXD5_A,
 	GPIO_FN_EX_WAIT0, GPIO_FN_TCLK1_B,
-	GPIO_FN_RD_WR, GPIO_FN_TCLK0,
+	GPIO_FN_RD_WR, GPIO_FN_TCLK0, GPIO_FN_CAN_CLK_B, GPIO_FN_ET0_ETXD4,
 	GPIO_FN_EX_CS5, GPIO_FN_SD1_CMD_A, GPIO_FN_ATADIR, GPIO_FN_QSSL_B,
 		GPIO_FN_ET0_ETXD3_A,
 	GPIO_FN_EX_CS4, GPIO_FN_SD1_WP_A, GPIO_FN_ATAWR, GPIO_FN_QMI_QIO1_B,
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/kernel/entry-common.S
+++ linux-gkeop-5.4-5.4.0/arch/sh/kernel/entry-common.S
@@ -199,7 +199,7 @@
 	mov.l	@(OFF_R7,r15), r7   ! arg3
 	mov.l	@(OFF_R3,r15), r3   ! syscall_nr
 	!
-	mov.l	2f, r10			! Number of syscalls
+	mov.l	6f, r10			! Number of syscalls
 	cmp/hs	r10, r3
 	bf	syscall_call
 	mov	#-ENOSYS, r0
@@ -353,7 +353,7 @@
 	tst	r9, r8
 	bf	syscall_trace_entry
 	!
-	mov.l	2f, r8			! Number of syscalls
+	mov.l	6f, r8			! Number of syscalls
 	cmp/hs	r8, r3
 	bt	syscall_badsys
 	!
@@ -392,7 +392,7 @@
 #if !defined(CONFIG_CPU_SH2)
 1:	.long	TRA
 #endif
-2:	.long	NR_syscalls
+6:	.long	NR_syscalls
 3:	.long	sys_call_table
 7:	.long	do_syscall_trace_enter
 8:	.long	do_syscall_trace_leave
--- linux-gkeop-5.4-5.4.0.orig/arch/sh/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/sh/mm/init.c
@@ -434,9 +434,7 @@
 {
 	unsigned long start_pfn = PFN_DOWN(start);
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/sparc/Kconfig
@@ -65,7 +65,6 @@
 	select HAVE_KRETPROBES
 	select HAVE_KPROBES
 	select HAVE_RCU_TABLE_FREE if SMP
-	select HAVE_RCU_TABLE_NO_INVALIDATE if HAVE_RCU_TABLE_FREE
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 	select HAVE_DYNAMIC_FTRACE
@@ -525,7 +524,7 @@
 	bool
 	depends on SPARC64
 	default y
-	select COMPAT_BINFMT_ELF
+	select COMPAT_BINFMT_ELF if BINFMT_ELF
 	select HAVE_UID16
 	select ARCH_WANT_OLD_COMPAT_IPC
 	select COMPAT_OLD_SIGACTION
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/configs/sparc64_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/sparc/configs/sparc64_defconfig
@@ -73,7 +73,6 @@
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_MULTI_LUN=y
 CONFIG_SCSI_CONSTANTS=y
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/include/asm/io_64.h
+++ linux-gkeop-5.4-5.4.0/arch/sparc/include/asm/io_64.h
@@ -407,6 +407,7 @@
 }
 
 #define ioremap_nocache(X,Y)		ioremap((X),(Y))
+#define ioremap_uc(X,Y)			ioremap((X),(Y))
 #define ioremap_wc(X,Y)			ioremap((X),(Y))
 #define ioremap_wt(X,Y)			ioremap((X),(Y))
 
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/include/asm/mman.h
+++ linux-gkeop-5.4-5.4.0/arch/sparc/include/asm/mman.h
@@ -57,35 +57,39 @@
 {
 	if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_ADI))
 		return 0;
-	if (prot & PROT_ADI) {
-		if (!adi_capable())
-			return 0;
+	return 1;
+}
 
-		if (addr) {
-			struct vm_area_struct *vma;
+#define arch_validate_flags(vm_flags) arch_validate_flags(vm_flags)
+/* arch_validate_flags() - Ensure combination of flags is valid for a
+ *	VMA.
+ */
+static inline bool arch_validate_flags(unsigned long vm_flags)
+{
+	/* If ADI is being enabled on this VMA, check for ADI
+	 * capability on the platform and ensure VMA is suitable
+	 * for ADI
+	 */
+	if (vm_flags & VM_SPARC_ADI) {
+		if (!adi_capable())
+			return false;
 
-			vma = find_vma(current->mm, addr);
-			if (vma) {
-				/* ADI can not be enabled on PFN
-				 * mapped pages
-				 */
-				if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
-					return 0;
+		/* ADI can not be enabled on PFN mapped pages */
+		if (vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
+			return false;
 
-				/* Mergeable pages can become unmergeable
-				 * if ADI is enabled on them even if they
-				 * have identical data on them. This can be
-				 * because ADI enabled pages with identical
-				 * data may still not have identical ADI
-				 * tags on them. Disallow ADI on mergeable
-				 * pages.
-				 */
-				if (vma->vm_flags & VM_MERGEABLE)
-					return 0;
-			}
-		}
+		/* Mergeable pages can become unmergeable
+		 * if ADI is enabled on them even if they
+		 * have identical data on them. This can be
+		 * because ADI enabled pages with identical
+		 * data may still not have identical ADI
+		 * tags on them. Disallow ADI on mergeable
+		 * pages.
+		 */
+		if (vm_flags & VM_MERGEABLE)
+			return false;
 	}
-	return 1;
+	return true;
 }
 #endif /* CONFIG_SPARC64 */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/include/asm/tlb_64.h
+++ linux-gkeop-5.4-5.4.0/arch/sparc/include/asm/tlb_64.h
@@ -28,6 +28,15 @@
 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
 #define tlb_flush(tlb)	flush_tlb_pending()
 
+/*
+ * SPARC64's hardware TLB fill does not use the Linux page-tables
+ * and therefore we don't need a TLBI when freeing page-table pages.
+ */
+
+#ifdef CONFIG_HAVE_RCU_TABLE_FREE
+#define tlb_needs_table_invalidate()	(false)
+#endif
+
 #include <asm-generic/tlb.h>
 
 #endif /* _SPARC64_TLB_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/include/uapi/asm/ipcbuf.h
+++ linux-gkeop-5.4-5.4.0/arch/sparc/include/uapi/asm/ipcbuf.h
@@ -15,19 +15,19 @@
 
 struct ipc64_perm
 {
-	__kernel_key_t	key;
-	__kernel_uid_t	uid;
-	__kernel_gid_t	gid;
-	__kernel_uid_t	cuid;
-	__kernel_gid_t	cgid;
+	__kernel_key_t		key;
+	__kernel_uid32_t	uid;
+	__kernel_gid32_t	gid;
+	__kernel_uid32_t	cuid;
+	__kernel_gid32_t	cgid;
 #ifndef __arch64__
-	unsigned short	__pad0;
+	unsigned short		__pad0;
 #endif
-	__kernel_mode_t	mode;
-	unsigned short	__pad1;
-	unsigned short	seq;
-	unsigned long long __unused1;
-	unsigned long long __unused2;
+	__kernel_mode_t		mode;
+	unsigned short		__pad1;
+	unsigned short		seq;
+	unsigned long long	__unused1;
+	unsigned long long	__unused2;
 };
 
 #endif /* __SPARC_IPCBUF_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/kernel/ptrace_32.c
+++ linux-gkeop-5.4-5.4.0/arch/sparc/kernel/ptrace_32.c
@@ -46,82 +46,79 @@
 	REGSET_FP,
 };
 
+static int regwindow32_get(struct task_struct *target,
+			   const struct pt_regs *regs,
+			   u32 *uregs)
+{
+	unsigned long reg_window = regs->u_regs[UREG_I6];
+	int size = 16 * sizeof(u32);
+
+	if (target == current) {
+		if (copy_from_user(uregs, (void __user *)reg_window, size))
+			return -EFAULT;
+	} else {
+		if (access_process_vm(target, reg_window, uregs, size,
+				      FOLL_FORCE) != size)
+			return -EFAULT;
+	}
+	return 0;
+}
+
+static int regwindow32_set(struct task_struct *target,
+			   const struct pt_regs *regs,
+			   u32 *uregs)
+{
+	unsigned long reg_window = regs->u_regs[UREG_I6];
+	int size = 16 * sizeof(u32);
+
+	if (target == current) {
+		if (copy_to_user((void __user *)reg_window, uregs, size))
+			return -EFAULT;
+	} else {
+		if (access_process_vm(target, reg_window, uregs, size,
+				      FOLL_FORCE | FOLL_WRITE) != size)
+			return -EFAULT;
+	}
+	return 0;
+}
+
 static int genregs32_get(struct task_struct *target,
 			 const struct user_regset *regset,
 			 unsigned int pos, unsigned int count,
 			 void *kbuf, void __user *ubuf)
 {
 	const struct pt_regs *regs = target->thread.kregs;
-	unsigned long __user *reg_window;
-	unsigned long *k = kbuf;
-	unsigned long __user *u = ubuf;
-	unsigned long reg;
+	u32 uregs[16];
+	int ret;
 
 	if (target == current)
 		flush_user_windows();
 
-	pos /= sizeof(reg);
-	count /= sizeof(reg);
+	ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+				  regs->u_regs,
+				  0, 16 * sizeof(u32));
+	if (ret || !count)
+		return ret;
 
-	if (kbuf) {
-		for (; count > 0 && pos < 16; count--)
-			*k++ = regs->u_regs[pos++];
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (get_user(*k++, &reg_window[pos++]))
-				return -EFAULT;
-		}
-	} else {
-		for (; count > 0 && pos < 16; count--) {
-			if (put_user(regs->u_regs[pos++], u++))
-				return -EFAULT;
-		}
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (get_user(reg, &reg_window[pos++]) ||
-			    put_user(reg, u++))
-				return -EFAULT;
-		}
-	}
-	while (count > 0) {
-		switch (pos) {
-		case 32: /* PSR */
-			reg = regs->psr;
-			break;
-		case 33: /* PC */
-			reg = regs->pc;
-			break;
-		case 34: /* NPC */
-			reg = regs->npc;
-			break;
-		case 35: /* Y */
-			reg = regs->y;
-			break;
-		case 36: /* WIM */
-		case 37: /* TBR */
-			reg = 0;
-			break;
-		default:
-			goto finish;
-		}
-
-		if (kbuf)
-			*k++ = reg;
-		else if (put_user(reg, u++))
+	if (pos < 32 * sizeof(u32)) {
+		if (regwindow32_get(target, regs, uregs))
 			return -EFAULT;
-		pos++;
-		count--;
+		ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+					  uregs,
+					  16 * sizeof(u32), 32 * sizeof(u32));
+		if (ret || !count)
+			return ret;
 	}
-finish:
-	pos *= sizeof(reg);
-	count *= sizeof(reg);
 
-	return user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf,
-					38 * sizeof(reg), -1);
+	uregs[0] = regs->psr;
+	uregs[1] = regs->pc;
+	uregs[2] = regs->npc;
+	uregs[3] = regs->y;
+	uregs[4] = 0;	/* WIM */
+	uregs[5] = 0;	/* TBR */
+	return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+				  uregs,
+				  32 * sizeof(u32), 38 * sizeof(u32));
 }
 
 static int genregs32_set(struct task_struct *target,
@@ -130,82 +127,58 @@
 			 const void *kbuf, const void __user *ubuf)
 {
 	struct pt_regs *regs = target->thread.kregs;
-	unsigned long __user *reg_window;
-	const unsigned long *k = kbuf;
-	const unsigned long __user *u = ubuf;
-	unsigned long reg;
+	u32 uregs[16];
+	u32 psr;
+	int ret;
 
 	if (target == current)
 		flush_user_windows();
 
-	pos /= sizeof(reg);
-	count /= sizeof(reg);
-
-	if (kbuf) {
-		for (; count > 0 && pos < 16; count--)
-			regs->u_regs[pos++] = *k++;
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (put_user(*k++, &reg_window[pos++]))
-				return -EFAULT;
-		}
-	} else {
-		for (; count > 0 && pos < 16; count--) {
-			if (get_user(reg, u++))
-				return -EFAULT;
-			regs->u_regs[pos++] = reg;
-		}
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (get_user(reg, u++) ||
-			    put_user(reg, &reg_window[pos++]))
-				return -EFAULT;
-		}
-	}
-	while (count > 0) {
-		unsigned long psr;
-
-		if (kbuf)
-			reg = *k++;
-		else if (get_user(reg, u++))
-			return -EFAULT;
-
-		switch (pos) {
-		case 32: /* PSR */
-			psr = regs->psr;
-			psr &= ~(PSR_ICC | PSR_SYSCALL);
-			psr |= (reg & (PSR_ICC | PSR_SYSCALL));
-			regs->psr = psr;
-			break;
-		case 33: /* PC */
-			regs->pc = reg;
-			break;
-		case 34: /* NPC */
-			regs->npc = reg;
-			break;
-		case 35: /* Y */
-			regs->y = reg;
-			break;
-		case 36: /* WIM */
-		case 37: /* TBR */
-			break;
-		default:
-			goto finish;
-		}
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 regs->u_regs,
+				 0, 16 * sizeof(u32));
+	if (ret || !count)
+		return ret;
 
-		pos++;
-		count--;
+	if (pos < 32 * sizeof(u32)) {
+		if (regwindow32_get(target, regs, uregs))
+			return -EFAULT;
+		ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+					 uregs,
+					 16 * sizeof(u32), 32 * sizeof(u32));
+		if (ret)
+			return ret;
+		if (regwindow32_set(target, regs, uregs))
+			return -EFAULT;
+		if (!count)
+			return 0;
 	}
-finish:
-	pos *= sizeof(reg);
-	count *= sizeof(reg);
-
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &psr,
+				 32 * sizeof(u32), 33 * sizeof(u32));
+	if (ret)
+		return ret;
+	regs->psr = (regs->psr & ~(PSR_ICC | PSR_SYSCALL)) |
+		    (psr & (PSR_ICC | PSR_SYSCALL));
+	if (!count)
+		return 0;
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &regs->pc,
+				 33 * sizeof(u32), 34 * sizeof(u32));
+	if (ret || !count)
+		return ret;
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &regs->npc,
+				 34 * sizeof(u32), 35 * sizeof(u32));
+	if (ret || !count)
+		return ret;
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &regs->y,
+				 35 * sizeof(u32), 36 * sizeof(u32));
+	if (ret || !count)
+		return ret;
 	return user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
-					 38 * sizeof(reg), -1);
+					 36 * sizeof(u32), 38 * sizeof(u32));
 }
 
 static int fpregs32_get(struct task_struct *target,
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/kernel/ptrace_64.c
+++ linux-gkeop-5.4-5.4.0/arch/sparc/kernel/ptrace_64.c
@@ -572,19 +572,13 @@
 			for (; count > 0 && pos < 32; count--) {
 				if (access_process_vm(target,
 						      (unsigned long)
-						      &reg_window[pos],
+						      &reg_window[pos++],
 						      &reg, sizeof(reg),
 						      FOLL_FORCE)
 				    != sizeof(reg))
 					return -EFAULT;
-				if (access_process_vm(target,
-						      (unsigned long) u,
-						      &reg, sizeof(reg),
-						      FOLL_FORCE | FOLL_WRITE)
-				    != sizeof(reg))
+				if (put_user(reg, u++))
 					return -EFAULT;
-				pos++;
-				u++;
 			}
 		}
 	}
@@ -684,12 +678,7 @@
 			}
 		} else {
 			for (; count > 0 && pos < 32; count--) {
-				if (access_process_vm(target,
-						      (unsigned long)
-						      u,
-						      &reg, sizeof(reg),
-						      FOLL_FORCE)
-				    != sizeof(reg))
+				if (get_user(reg, u++))
 					return -EFAULT;
 				if (access_process_vm(target,
 						      (unsigned long)
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/kernel/smp_64.c
+++ linux-gkeop-5.4-5.4.0/arch/sparc/kernel/smp_64.c
@@ -1039,38 +1039,9 @@
  * are flush_tlb_*() routines, and these run after flush_cache_*()
  * which performs the flushw.
  *
- * The SMP TLB coherency scheme we use works as follows:
- *
- * 1) mm->cpu_vm_mask is a bit mask of which cpus an address
- *    space has (potentially) executed on, this is the heuristic
- *    we use to avoid doing cross calls.
- *
- *    Also, for flushing from kswapd and also for clones, we
- *    use cpu_vm_mask as the list of cpus to make run the TLB.
- *
- * 2) TLB context numbers are shared globally across all processors
- *    in the system, this allows us to play several games to avoid
- *    cross calls.
- *
- *    One invariant is that when a cpu switches to a process, and
- *    that processes tsk->active_mm->cpu_vm_mask does not have the
- *    current cpu's bit set, that tlb context is flushed locally.
- *
- *    If the address space is non-shared (ie. mm->count == 1) we avoid
- *    cross calls when we want to flush the currently running process's
- *    tlb state.  This is done by clearing all cpu bits except the current
- *    processor's in current->mm->cpu_vm_mask and performing the
- *    flush locally only.  This will force any subsequent cpus which run
- *    this task to flush the context from the local tlb if the process
- *    migrates to another cpu (again).
- *
- * 3) For shared address spaces (threads) and swapping we bite the
- *    bullet for most cases and perform the cross call (but only to
- *    the cpus listed in cpu_vm_mask).
- *
- *    The performance gain from "optimizing" away the cross call for threads is
- *    questionable (in theory the big win for threads is the massive sharing of
- *    address space state across processors).
+ * mm->cpu_vm_mask is a bit mask of which cpus an address
+ * space has (potentially) executed on, this is the heuristic
+ * we use to limit cross calls.
  */
 
 /* This currently is only used by the hugetlb arch pre-fault
@@ -1080,18 +1051,13 @@
 void smp_flush_tlb_mm(struct mm_struct *mm)
 {
 	u32 ctx = CTX_HWBITS(mm->context);
-	int cpu = get_cpu();
 
-	if (atomic_read(&mm->mm_users) == 1) {
-		cpumask_copy(mm_cpumask(mm), cpumask_of(cpu));
-		goto local_flush_and_out;
-	}
+	get_cpu();
 
 	smp_cross_call_masked(&xcall_flush_tlb_mm,
 			      ctx, 0, 0,
 			      mm_cpumask(mm));
 
-local_flush_and_out:
 	__flush_tlb_mm(ctx, SECONDARY_CONTEXT);
 
 	put_cpu();
@@ -1114,17 +1080,15 @@
 {
 	u32 ctx = CTX_HWBITS(mm->context);
 	struct tlb_pending_info info;
-	int cpu = get_cpu();
+
+	get_cpu();
 
 	info.ctx = ctx;
 	info.nr = nr;
 	info.vaddrs = vaddrs;
 
-	if (mm == current->mm && atomic_read(&mm->mm_users) == 1)
-		cpumask_copy(mm_cpumask(mm), cpumask_of(cpu));
-	else
-		smp_call_function_many(mm_cpumask(mm), tlb_pending_func,
-				       &info, 1);
+	smp_call_function_many(mm_cpumask(mm), tlb_pending_func,
+			       &info, 1);
 
 	__flush_tlb_pending(ctx, nr, vaddrs);
 
@@ -1134,14 +1098,13 @@
 void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr)
 {
 	unsigned long context = CTX_HWBITS(mm->context);
-	int cpu = get_cpu();
 
-	if (mm == current->mm && atomic_read(&mm->mm_users) == 1)
-		cpumask_copy(mm_cpumask(mm), cpumask_of(cpu));
-	else
-		smp_cross_call_masked(&xcall_flush_tlb_page,
-				      context, vaddr, 0,
-				      mm_cpumask(mm));
+	get_cpu();
+
+	smp_cross_call_masked(&xcall_flush_tlb_page,
+			      context, vaddr, 0,
+			      mm_cpumask(mm));
+
 	__flush_tlb_page(context, vaddr);
 
 	put_cpu();
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/kernel/vmlinux.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/sparc/kernel/vmlinux.lds.S
@@ -172,12 +172,14 @@
 	}
 	PERCPU_SECTION(SMP_CACHE_BYTES)
 
-#ifdef CONFIG_JUMP_LABEL
 	. = ALIGN(PAGE_SIZE);
 	.exit.text : {
 		EXIT_TEXT
 	}
-#endif
+
+	.exit.data : {
+		EXIT_DATA
+	}
 
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/lib/memset.S
+++ linux-gkeop-5.4-5.4.0/arch/sparc/lib/memset.S
@@ -142,6 +142,7 @@
 	ZERO_LAST_BLOCKS(%o0, 0x48, %g2)
 	ZERO_LAST_BLOCKS(%o0, 0x08, %g2)
 13:
+	EXT(12b, 13b, 21f)
 	be	8f
 	 andcc	%o1, 4, %g0
 
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/mm/init_32.c
+++ linux-gkeop-5.4-5.4.0/arch/sparc/mm/init_32.c
@@ -197,6 +197,9 @@
 	size = memblock_phys_mem_size() - memblock_reserved_size();
 	*pages_avail = (size >> PAGE_SHIFT) - high_pages;
 
+	/* Only allow low memory to be allocated via memblock allocation */
+	memblock_set_current_limit(max_low_pfn << PAGE_SHIFT);
+
 	return max_pfn;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/mm/init_64.c
+++ linux-gkeop-5.4-5.4.0/arch/sparc/mm/init_64.c
@@ -2904,7 +2904,7 @@
 	if (!page)
 		return NULL;
 	if (!pgtable_pte_page_ctor(page)) {
-		free_unref_page(page);
+		__free_page(page);
 		return NULL;
 	}
 	return (pte_t *) page_address(page);
--- linux-gkeop-5.4-5.4.0.orig/arch/sparc/mm/srmmu.c
+++ linux-gkeop-5.4-5.4.0/arch/sparc/mm/srmmu.c
@@ -379,7 +379,6 @@
 		return NULL;
 	page = pfn_to_page(__nocache_pa(pte) >> PAGE_SHIFT);
 	if (!pgtable_pte_page_ctor(page)) {
-		__free_page(page);
 		return NULL;
 	}
 	return page;
--- linux-gkeop-5.4-5.4.0.orig/arch/um/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/um/Kconfig
@@ -14,6 +14,7 @@
 	select HAVE_FUTEX_CMPXCHG if FUTEX
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DEBUG_BUGVERBOSE
+	select HAVE_COPY_THREAD_TLS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
 	select GENERIC_CLOCKEVENTS
--- linux-gkeop-5.4-5.4.0.orig/arch/um/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/um/Makefile
@@ -140,6 +140,7 @@
 # When cleaning we don't include .config, so we don't include
 # TT or skas makefiles and don't clean skas_ptregs.h.
 CLEAN_FILES += linux x.i gmon.out
+MRPROPER_DIRS += arch/$(SUBARCH)/include/generated
 
 archclean:
 	@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
--- linux-gkeop-5.4-5.4.0.orig/arch/um/drivers/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/um/drivers/Kconfig
@@ -337,7 +337,7 @@
 endmenu
 
 config VIRTIO_UML
-	tristate "UML driver for virtio devices"
+	bool "UML driver for virtio devices"
 	select VIRTIO
 	help
 	  This driver provides support for virtio based paravirtual device
--- linux-gkeop-5.4-5.4.0.orig/arch/um/drivers/chan_user.c
+++ linux-gkeop-5.4-5.4.0/arch/um/drivers/chan_user.c
@@ -26,10 +26,10 @@
 	n = read(fd, c_out, sizeof(*c_out));
 	if (n > 0)
 		return n;
-	else if (errno == EAGAIN)
-		return 0;
 	else if (n == 0)
 		return -EIO;
+	else if (errno == EAGAIN)
+		return 0;
 	return -errno;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/um/drivers/ubd_kern.c
+++ linux-gkeop-5.4-5.4.0/arch/um/drivers/ubd_kern.c
@@ -47,18 +47,25 @@
 /* Max request size is determined by sector mask - 32K */
 #define UBD_MAX_REQUEST (8 * sizeof(long))
 
+struct io_desc {
+	char *buffer;
+	unsigned long length;
+	unsigned long sector_mask;
+	unsigned long long cow_offset;
+	unsigned long bitmap_words[2];
+};
+
 struct io_thread_req {
 	struct request *req;
 	int fds[2];
 	unsigned long offsets[2];
 	unsigned long long offset;
-	unsigned long length;
-	char *buffer;
 	int sectorsize;
-	unsigned long sector_mask;
-	unsigned long long cow_offset;
-	unsigned long bitmap_words[2];
 	int error;
+
+	int desc_cnt;
+	/* io_desc has to be the last element of the struct */
+	struct io_desc io_desc[];
 };
 
 
@@ -524,12 +531,7 @@
 				blk_queue_max_write_zeroes_sectors(io_req->req->q, 0);
 				blk_queue_flag_clear(QUEUE_FLAG_DISCARD, io_req->req->q);
 			}
-			if ((io_req->error) || (io_req->buffer == NULL))
-				blk_mq_end_request(io_req->req, io_req->error);
-			else {
-				if (!blk_update_request(io_req->req, io_req->error, io_req->length))
-					__blk_mq_end_request(io_req->req, io_req->error);
-			}
+			blk_mq_end_request(io_req->req, io_req->error);
 			kfree(io_req);
 		}
 	}
@@ -945,6 +947,7 @@
 	blk_queue_write_cache(ubd_dev->queue, true, false);
 
 	blk_queue_max_segments(ubd_dev->queue, MAX_SG);
+	blk_queue_segment_boundary(ubd_dev->queue, PAGE_SIZE - 1);
 	err = ubd_disk_register(UBD_MAJOR, ubd_dev->size, n, &ubd_gendisk[n]);
 	if(err){
 		*error_out = "Failed to register device";
@@ -1288,37 +1291,74 @@
 	*cow_offset += bitmap_offset;
 }
 
-static void cowify_req(struct io_thread_req *req, unsigned long *bitmap,
+static void cowify_req(struct io_thread_req *req, struct io_desc *segment,
+		       unsigned long offset, unsigned long *bitmap,
 		       __u64 bitmap_offset, __u64 bitmap_len)
 {
-	__u64 sector = req->offset >> SECTOR_SHIFT;
+	__u64 sector = offset >> SECTOR_SHIFT;
 	int i;
 
-	if (req->length > (sizeof(req->sector_mask) * 8) << SECTOR_SHIFT)
+	if (segment->length > (sizeof(segment->sector_mask) * 8) << SECTOR_SHIFT)
 		panic("Operation too long");
 
 	if (req_op(req->req) == REQ_OP_READ) {
-		for (i = 0; i < req->length >> SECTOR_SHIFT; i++) {
+		for (i = 0; i < segment->length >> SECTOR_SHIFT; i++) {
 			if(ubd_test_bit(sector + i, (unsigned char *) bitmap))
 				ubd_set_bit(i, (unsigned char *)
-					    &req->sector_mask);
+					    &segment->sector_mask);
 		}
+	} else {
+		cowify_bitmap(offset, segment->length, &segment->sector_mask,
+			      &segment->cow_offset, bitmap, bitmap_offset,
+			      segment->bitmap_words, bitmap_len);
 	}
-	else cowify_bitmap(req->offset, req->length, &req->sector_mask,
-			   &req->cow_offset, bitmap, bitmap_offset,
-			   req->bitmap_words, bitmap_len);
 }
 
-static int ubd_queue_one_vec(struct blk_mq_hw_ctx *hctx, struct request *req,
-		u64 off, struct bio_vec *bvec)
+static void ubd_map_req(struct ubd *dev, struct io_thread_req *io_req,
+			struct request *req)
+{
+	struct bio_vec bvec;
+	struct req_iterator iter;
+	int i = 0;
+	unsigned long byte_offset = io_req->offset;
+	int op = req_op(req);
+
+	if (op == REQ_OP_WRITE_ZEROES || op == REQ_OP_DISCARD) {
+		io_req->io_desc[0].buffer = NULL;
+		io_req->io_desc[0].length = blk_rq_bytes(req);
+	} else {
+		rq_for_each_segment(bvec, req, iter) {
+			BUG_ON(i >= io_req->desc_cnt);
+
+			io_req->io_desc[i].buffer =
+				page_address(bvec.bv_page) + bvec.bv_offset;
+			io_req->io_desc[i].length = bvec.bv_len;
+			i++;
+		}
+	}
+
+	if (dev->cow.file) {
+		for (i = 0; i < io_req->desc_cnt; i++) {
+			cowify_req(io_req, &io_req->io_desc[i], byte_offset,
+				   dev->cow.bitmap, dev->cow.bitmap_offset,
+				   dev->cow.bitmap_len);
+			byte_offset += io_req->io_desc[i].length;
+		}
+
+	}
+}
+
+static struct io_thread_req *ubd_alloc_req(struct ubd *dev, struct request *req,
+					   int desc_cnt)
 {
-	struct ubd *dev = hctx->queue->queuedata;
 	struct io_thread_req *io_req;
-	int ret;
+	int i;
 
-	io_req = kmalloc(sizeof(struct io_thread_req), GFP_ATOMIC);
+	io_req = kmalloc(sizeof(*io_req) +
+			 (desc_cnt * sizeof(struct io_desc)),
+			 GFP_ATOMIC);
 	if (!io_req)
-		return -ENOMEM;
+		return NULL;
 
 	io_req->req = req;
 	if (dev->cow.file)
@@ -1326,26 +1366,41 @@
 	else
 		io_req->fds[0] = dev->fd;
 	io_req->error = 0;
-
-	if (bvec != NULL) {
-		io_req->buffer = page_address(bvec->bv_page) + bvec->bv_offset;
-		io_req->length = bvec->bv_len;
-	} else {
-		io_req->buffer = NULL;
-		io_req->length = blk_rq_bytes(req);
-	}
-
 	io_req->sectorsize = SECTOR_SIZE;
 	io_req->fds[1] = dev->fd;
-	io_req->cow_offset = -1;
-	io_req->offset = off;
-	io_req->sector_mask = 0;
+	io_req->offset = (u64) blk_rq_pos(req) << SECTOR_SHIFT;
 	io_req->offsets[0] = 0;
 	io_req->offsets[1] = dev->cow.data_offset;
 
-	if (dev->cow.file)
-		cowify_req(io_req, dev->cow.bitmap,
-			   dev->cow.bitmap_offset, dev->cow.bitmap_len);
+	for (i = 0 ; i < desc_cnt; i++) {
+		io_req->io_desc[i].sector_mask = 0;
+		io_req->io_desc[i].cow_offset = -1;
+	}
+
+	return io_req;
+}
+
+static int ubd_submit_request(struct ubd *dev, struct request *req)
+{
+	int segs = 0;
+	struct io_thread_req *io_req;
+	int ret;
+	int op = req_op(req);
+
+	if (op == REQ_OP_FLUSH)
+		segs = 0;
+	else if (op == REQ_OP_WRITE_ZEROES || op == REQ_OP_DISCARD)
+		segs = 1;
+	else
+		segs = blk_rq_nr_phys_segments(req);
+
+	io_req = ubd_alloc_req(dev, req, segs);
+	if (!io_req)
+		return -ENOMEM;
+
+	io_req->desc_cnt = segs;
+	if (segs)
+		ubd_map_req(dev, io_req, req);
 
 	ret = os_write_file(thread_fd, &io_req, sizeof(io_req));
 	if (ret != sizeof(io_req)) {
@@ -1356,22 +1411,6 @@
 	return ret;
 }
 
-static int queue_rw_req(struct blk_mq_hw_ctx *hctx, struct request *req)
-{
-	struct req_iterator iter;
-	struct bio_vec bvec;
-	int ret;
-	u64 off = (u64)blk_rq_pos(req) << SECTOR_SHIFT;
-
-	rq_for_each_segment(bvec, req, iter) {
-		ret = ubd_queue_one_vec(hctx, req, off, &bvec);
-		if (ret < 0)
-			return ret;
-		off += bvec.bv_len;
-	}
-	return 0;
-}
-
 static blk_status_t ubd_queue_rq(struct blk_mq_hw_ctx *hctx,
 				 const struct blk_mq_queue_data *bd)
 {
@@ -1384,17 +1423,12 @@
 	spin_lock_irq(&ubd_dev->lock);
 
 	switch (req_op(req)) {
-	/* operations with no lentgth/offset arguments */
 	case REQ_OP_FLUSH:
-		ret = ubd_queue_one_vec(hctx, req, 0, NULL);
-		break;
 	case REQ_OP_READ:
 	case REQ_OP_WRITE:
-		ret = queue_rw_req(hctx, req);
-		break;
 	case REQ_OP_DISCARD:
 	case REQ_OP_WRITE_ZEROES:
-		ret = ubd_queue_one_vec(hctx, req, (u64)blk_rq_pos(req) << 9, NULL);
+		ret = ubd_submit_request(ubd_dev, req);
 		break;
 	default:
 		WARN_ON_ONCE(1);
@@ -1482,22 +1516,22 @@
  * will result in unpredictable behaviour and/or crashes.
  */
 
-static int update_bitmap(struct io_thread_req *req)
+static int update_bitmap(struct io_thread_req *req, struct io_desc *segment)
 {
 	int n;
 
-	if(req->cow_offset == -1)
+	if (segment->cow_offset == -1)
 		return map_error(0);
 
-	n = os_pwrite_file(req->fds[1], &req->bitmap_words,
-			  sizeof(req->bitmap_words), req->cow_offset);
-	if (n != sizeof(req->bitmap_words))
+	n = os_pwrite_file(req->fds[1], &segment->bitmap_words,
+			  sizeof(segment->bitmap_words), segment->cow_offset);
+	if (n != sizeof(segment->bitmap_words))
 		return map_error(-n);
 
 	return map_error(0);
 }
 
-static void do_io(struct io_thread_req *req)
+static void do_io(struct io_thread_req *req, struct io_desc *desc)
 {
 	char *buf = NULL;
 	unsigned long len;
@@ -1512,21 +1546,20 @@
 		return;
 	}
 
-	nsectors = req->length / req->sectorsize;
+	nsectors = desc->length / req->sectorsize;
 	start = 0;
 	do {
-		bit = ubd_test_bit(start, (unsigned char *) &req->sector_mask);
+		bit = ubd_test_bit(start, (unsigned char *) &desc->sector_mask);
 		end = start;
 		while((end < nsectors) &&
-		      (ubd_test_bit(end, (unsigned char *)
-				    &req->sector_mask) == bit))
+		      (ubd_test_bit(end, (unsigned char *) &desc->sector_mask) == bit))
 			end++;
 
 		off = req->offset + req->offsets[bit] +
 			start * req->sectorsize;
 		len = (end - start) * req->sectorsize;
-		if (req->buffer != NULL)
-			buf = &req->buffer[start * req->sectorsize];
+		if (desc->buffer != NULL)
+			buf = &desc->buffer[start * req->sectorsize];
 
 		switch (req_op(req->req)) {
 		case REQ_OP_READ:
@@ -1566,7 +1599,8 @@
 		start = end;
 	} while(start < nsectors);
 
-	req->error = update_bitmap(req);
+	req->offset += len;
+	req->error = update_bitmap(req, desc);
 }
 
 /* Changed in start_io_thread, which is serialized by being called only
@@ -1599,14 +1633,21 @@
 		}
 
 		for (count = 0; count < n/sizeof(struct io_thread_req *); count++) {
+			struct io_thread_req *req = (*io_req_buffer)[count];
+			int i;
+
 			io_count++;
-			do_io((*io_req_buffer)[count]);
+			for (i = 0; !req->error && i < req->desc_cnt; i++)
+				do_io(req, &(req->io_desc[i]));
+
 		}
 
 		written = 0;
 
 		do {
-			res = os_write_file(kernel_fd, ((char *) io_req_buffer) + written, n);
+			res = os_write_file(kernel_fd,
+					    ((char *) io_req_buffer) + written,
+					    n - written);
 			if (res >= 0) {
 				written += res;
 			}
--- linux-gkeop-5.4-5.4.0.orig/arch/um/drivers/virtio_uml.c
+++ linux-gkeop-5.4-5.4.0/arch/um/drivers/virtio_uml.c
@@ -4,12 +4,12 @@
  *
  * Copyright(c) 2019 Intel Corporation
  *
- * This module allows virtio devices to be used over a vhost-user socket.
+ * This driver allows virtio devices to be used over a vhost-user socket.
  *
  * Guest devices can be instantiated by kernel module or command line
  * parameters. One device will be created for each parameter. Syntax:
  *
- *		[virtio_uml.]device=<socket>:<virtio_id>[:<platform_id>]
+ *		virtio_uml.device=<socket>:<virtio_id>[:<platform_id>]
  * where:
  *		<socket>	:= vhost-user socket path to connect
  *		<virtio_id>	:= virtio device id (as in virtio_ids.h)
@@ -83,7 +83,7 @@
 	return 0;
 }
 
-static int full_read(int fd, void *buf, int len)
+static int full_read(int fd, void *buf, int len, bool abortable)
 {
 	int rc;
 
@@ -93,7 +93,7 @@
 			buf += rc;
 			len -= rc;
 		}
-	} while (len && (rc > 0 || rc == -EINTR));
+	} while (len && (rc > 0 || rc == -EINTR || (!abortable && rc == -EAGAIN)));
 
 	if (rc < 0)
 		return rc;
@@ -104,7 +104,7 @@
 
 static int vhost_user_recv_header(int fd, struct vhost_user_msg *msg)
 {
-	return full_read(fd, msg, sizeof(msg->header));
+	return full_read(fd, msg, sizeof(msg->header), true);
 }
 
 static int vhost_user_recv(int fd, struct vhost_user_msg *msg,
@@ -118,7 +118,7 @@
 	size = msg->header.size;
 	if (size > max_payload_size)
 		return -EPROTO;
-	return full_read(fd, &msg->payload, size);
+	return full_read(fd, &msg->payload, size, false);
 }
 
 static int vhost_user_recv_resp(struct virtio_uml_device *vu_dev,
@@ -959,6 +959,7 @@
 	}
 
 	os_close_file(vu_dev->sock);
+	kfree(vu_dev);
 }
 
 /* Platform device */
@@ -977,7 +978,7 @@
 	if (!pdata)
 		return -EINVAL;
 
-	vu_dev = devm_kzalloc(&pdev->dev, sizeof(*vu_dev), GFP_KERNEL);
+	vu_dev = kzalloc(sizeof(*vu_dev), GFP_KERNEL);
 	if (!vu_dev)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/um/drivers/xterm.c
+++ linux-gkeop-5.4-5.4.0/arch/um/drivers/xterm.c
@@ -18,6 +18,7 @@
 struct xterm_chan {
 	int pid;
 	int helper_pid;
+	int chan_fd;
 	char *title;
 	int device;
 	int raw;
@@ -33,6 +34,7 @@
 		return NULL;
 	*data = ((struct xterm_chan) { .pid 		= -1,
 				       .helper_pid 	= -1,
+				       .chan_fd		= -1,
 				       .device 		= device,
 				       .title 		= opts->xterm_title,
 				       .raw  		= opts->raw } );
@@ -149,6 +151,7 @@
 		goto out_kill;
 	}
 
+	data->chan_fd = fd;
 	new = xterm_fd(fd, &data->helper_pid);
 	if (new < 0) {
 		err = new;
@@ -206,6 +209,8 @@
 		os_kill_process(data->helper_pid, 0);
 	data->helper_pid = -1;
 
+	if (data->chan_fd != -1)
+		os_close_file(data->chan_fd);
 	os_close_file(fd);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/um/include/asm/common.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/um/include/asm/common.lds.S
@@ -83,8 +83,8 @@
 	__preinit_array_end = .;
   }
   .init_array : {
-        /* dummy - we call this ourselves */
 	__init_array_start = .;
+	*(.init_array)
 	__init_array_end = .;
   }
   .fini_array : {
--- linux-gkeop-5.4-5.4.0.orig/arch/um/include/asm/ptrace-generic.h
+++ linux-gkeop-5.4-5.4.0/arch/um/include/asm/ptrace-generic.h
@@ -36,7 +36,7 @@
 extern unsigned long getreg(struct task_struct *child, int regno);
 extern int putreg(struct task_struct *child, int regno, unsigned long value);
 
-extern int arch_copy_tls(struct task_struct *new);
+extern int arch_set_tls(struct task_struct *new, unsigned long tls);
 extern void clear_flushed_tls(struct task_struct *task);
 extern int syscall_trace_enter(struct pt_regs *regs);
 extern void syscall_trace_leave(struct pt_regs *regs);
--- linux-gkeop-5.4-5.4.0.orig/arch/um/kernel/dyn.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/um/kernel/dyn.lds.S
@@ -103,6 +103,7 @@
      be empty, which isn't pretty.  */
   . = ALIGN(32 / 8);
   .preinit_array     : { *(.preinit_array) }
+  .init_array     : { *(.init_array) }
   .fini_array     : { *(.fini_array) }
   .data           : {
     INIT_TASK_DATA(KERNEL_STACK_SIZE)
--- linux-gkeop-5.4-5.4.0.orig/arch/um/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/um/kernel/process.c
@@ -153,8 +153,8 @@
 	userspace(&current->thread.regs.regs, current_thread_info()->aux_fp_regs);
 }
 
-int copy_thread(unsigned long clone_flags, unsigned long sp,
-		unsigned long arg, struct task_struct * p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
+		unsigned long arg, struct task_struct * p, unsigned long tls)
 {
 	void (*handler)(void);
 	int kthread = current->flags & PF_KTHREAD;
@@ -188,7 +188,7 @@
 		 * Set a new TLS for the child thread?
 		 */
 		if (clone_flags & CLONE_SETTLS)
-			ret = arch_copy_tls(p);
+			ret = arch_set_tls(p, tls);
 	}
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/arch/um/kernel/sigio.c
+++ linux-gkeop-5.4-5.4.0/arch/um/kernel/sigio.c
@@ -35,14 +35,14 @@
 }
 
 /* These are called from os-Linux/sigio.c to protect its pollfds arrays. */
-static DEFINE_SPINLOCK(sigio_spinlock);
+static DEFINE_MUTEX(sigio_mutex);
 
 void sigio_lock(void)
 {
-	spin_lock(&sigio_spinlock);
+	mutex_lock(&sigio_mutex);
 }
 
 void sigio_unlock(void)
 {
-	spin_unlock(&sigio_spinlock);
+	mutex_unlock(&sigio_mutex);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/um/kernel/tlb.c
+++ linux-gkeop-5.4-5.4.0/arch/um/kernel/tlb.c
@@ -126,6 +126,9 @@
 	struct host_vm_op *last;
 	int fd = -1, ret = 0;
 
+	if (virt + len > STUB_START && virt < STUB_END)
+		return -EINVAL;
+
 	if (hvc->userspace)
 		fd = phys_mapping(phys, &offset);
 	else
@@ -163,7 +166,7 @@
 	struct host_vm_op *last;
 	int ret = 0;
 
-	if ((addr >= STUB_START) && (addr < STUB_END))
+	if (addr + len > STUB_START && addr < STUB_END)
 		return -EINVAL;
 
 	if (hvc->index != 0) {
@@ -193,6 +196,9 @@
 	struct host_vm_op *last;
 	int ret = 0;
 
+	if (addr + len > STUB_START && addr < STUB_END)
+		return -EINVAL;
+
 	if (hvc->index != 0) {
 		last = &hvc->ops[hvc->index - 1];
 		if ((last->type == MPROTECT) &&
@@ -433,6 +439,10 @@
 	struct mm_id *mm_id;
 
 	address &= PAGE_MASK;
+
+	if (address >= STUB_START && address < STUB_END)
+		goto kill;
+
 	pgd = pgd_offset(mm, address);
 	if (!pgd_present(*pgd))
 		goto kill;
--- linux-gkeop-5.4-5.4.0.orig/arch/um/os-Linux/file.c
+++ linux-gkeop-5.4-5.4.0/arch/um/os-Linux/file.c
@@ -8,6 +8,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
+#include <linux/falloc.h>
 #include <sys/ioctl.h>
 #include <sys/mount.h>
 #include <sys/socket.h>
--- linux-gkeop-5.4-5.4.0.orig/arch/um/os-Linux/irq.c
+++ linux-gkeop-5.4-5.4.0/arch/um/os-Linux/irq.c
@@ -48,7 +48,7 @@
 int os_event_mask(int irq_type)
 {
 	if (irq_type == IRQ_READ)
-		return EPOLLIN | EPOLLPRI;
+		return EPOLLIN | EPOLLPRI | EPOLLERR | EPOLLHUP | EPOLLRDHUP;
 	if (irq_type == IRQ_WRITE)
 		return EPOLLOUT;
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/um/os-Linux/main.c
+++ linux-gkeop-5.4-5.4.0/arch/um/os-Linux/main.c
@@ -170,7 +170,7 @@
 	 * that they won't be delivered after the exec, when
 	 * they are definitely not expected.
 	 */
-	unblock_signals_trace();
+	unblock_signals();
 
 	os_info("\n");
 	/* Reboot */
--- linux-gkeop-5.4-5.4.0.orig/arch/um/os-Linux/umid.c
+++ linux-gkeop-5.4-5.4.0/arch/um/os-Linux/umid.c
@@ -137,20 +137,13 @@
 {
 	char pid[sizeof("nnnnn\0")], *end, *file;
 	int dead, fd, p, n, err;
-	size_t filelen;
+	size_t filelen = strlen(dir) + sizeof("/pid") + 1;
 
-	err = asprintf(&file, "%s/pid", dir);
-	if (err < 0)
-		return 0;
+	file = malloc(filelen);
+	if (!file)
+		return -ENOMEM;
 
-	filelen = strlen(file);
-
-	n = snprintf(file, filelen, "%s/pid", dir);
-	if (n >= filelen) {
-		printk(UM_KERN_ERR "is_umdir_used - pid filename too long\n");
-		err = -E2BIG;
-		goto out;
-	}
+	snprintf(file, filelen, "%s/pid", dir);
 
 	dead = 0;
 	fd = open(file, O_RDONLY);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/x86/Makefile
@@ -61,6 +61,9 @@
 KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
 KBUILD_CFLAGS += $(call cc-option,-mno-avx,)
 
+# Intel CET isn't enabled in the kernel
+KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
+
 ifeq ($(CONFIG_X86_32),y)
         BITS := 32
         UTS_MACHINE := i386
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/Makefile
@@ -87,7 +87,7 @@
 
 SETUP_OBJS = $(addprefix $(obj)/,$(setup-y))
 
-sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [ABCDGRSTVW] \(startup_32\|startup_64\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|z_.*\)$$/\#define ZO_\2 0x\1/p'
+sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [a-zA-Z] \(startup_32\|startup_64\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|z_.*\)$$/\#define ZO_\2 0x\1/p'
 
 quiet_cmd_zoffset = ZOFFSET $@
       cmd_zoffset = $(NM) $< | sed -n $(sed-zoffset) > $@
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/compressed/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/compressed/Makefile
@@ -38,6 +38,8 @@
 KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
 KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
 KBUILD_CFLAGS += -Wno-pointer-sign
+# Disable relocation relaxation in case the link is not PIE.
+KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mrelax-relocations=no)
 
 KBUILD_AFLAGS  := $(KBUILD_CFLAGS) -D__ASSEMBLY__
 GCOV_PROFILE := n
@@ -102,7 +104,7 @@
 quiet_cmd_check_data_rel = DATAREL $@
 define cmd_check_data_rel
 	for obj in $(filter %.o,$^); do \
-		${CROSS_COMPILE}readelf -S $$obj | grep -qF .rel.local && { \
+		$(READELF) -S $$obj | grep -qF .rel.local && { \
 			echo "error: $$obj has data relocations!" >&2; \
 			exit 1; \
 		} || true; \
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/compressed/acpi.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/compressed/acpi.c
@@ -393,7 +393,13 @@
 	table = table_addr + sizeof(struct acpi_table_srat);
 
 	while (table + sizeof(struct acpi_subtable_header) < table_end) {
+
 		sub_table = (struct acpi_subtable_header *)table;
+		if (!sub_table->length) {
+			debug_putstr("Invalid zero length SRAT subtable.\n");
+			return 0;
+		}
+
 		if (sub_table->type == ACPI_SRAT_TYPE_MEMORY_AFFINITY) {
 			struct acpi_srat_mem_affinity *ma;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/compressed/head_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/compressed/head_32.S
@@ -49,16 +49,17 @@
  * Position Independent Executable (PIE) so that linker won't optimize
  * R_386_GOT32X relocation to its fixed symbol address.  Older
  * linkers generate R_386_32 relocations against locally defined symbols,
- * _bss, _ebss, _got and _egot, in PIE.  It isn't wrong, just less
+ * _bss, _ebss, _got, _egot and _end, in PIE.  It isn't wrong, just less
  * optimal than R_386_RELATIVE.  But the x86 kernel fails to properly handle
  * R_386_32 relocations when relocating the kernel.  To generate
- * R_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as
+ * R_386_RELATIVE relocations, we mark _bss, _ebss, _got, _egot and _end as
  * hidden:
  */
 	.hidden _bss
 	.hidden _ebss
 	.hidden _got
 	.hidden _egot
+	.hidden _end
 
 	__HEAD
 ENTRY(startup_32)
@@ -106,7 +107,7 @@
 	notl	%eax
 	andl    %eax, %ebx
 	cmpl	$LOAD_PHYSICAL_ADDR, %ebx
-	jge	1f
+	jae	1f
 #endif
 	movl	$LOAD_PHYSICAL_ADDR, %ebx
 1:
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/compressed/head_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/compressed/head_64.S
@@ -42,6 +42,7 @@
 	.hidden _ebss
 	.hidden _got
 	.hidden _egot
+	.hidden _end
 
 	__HEAD
 	.code32
@@ -106,7 +107,7 @@
 	notl	%eax
 	andl	%eax, %ebx
 	cmpl	$LOAD_PHYSICAL_ADDR, %ebx
-	jge	1f
+	jae	1f
 #endif
 	movl	$LOAD_PHYSICAL_ADDR, %ebx
 1:
@@ -244,6 +245,11 @@
 	leal	efi32_config(%ebp), %eax
 	movl	%eax, efi_config(%ebp)
 
+	/* Disable paging */
+	movl	%cr0, %eax
+	btrl	$X86_CR0_PG_BIT, %eax
+	movl	%eax, %cr0
+
 	jmp	startup_32
 ENDPROC(efi32_stub_entry)
 #endif
@@ -292,7 +298,7 @@
 	notq	%rax
 	andq	%rax, %rbp
 	cmpq	$LOAD_PHYSICAL_ADDR, %rbp
-	jge	1f
+	jae	1f
 #endif
 	movq	$LOAD_PHYSICAL_ADDR, %rbp
 1:
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/compressed/kaslr_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/compressed/kaslr_64.c
@@ -29,9 +29,6 @@
 #define __PAGE_OFFSET __PAGE_OFFSET_BASE
 #include "../../mm/ident_map.c"
 
-/* Used by pgtable.h asm code to force instruction serialization. */
-unsigned long __force_order;
-
 /* Used to track our page table allocation area. */
 struct alloc_pgt_data {
 	unsigned char *pgt_buf;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/compressed/pgtable_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/compressed/pgtable_64.c
@@ -5,15 +5,6 @@
 #include "pgtable.h"
 #include "../string.h"
 
-/*
- * __force_order is used by special_insns.h asm code to force instruction
- * serialization.
- *
- * It is not referenced from the code, but GCC < 5 with -fPIE would fail
- * due to an undefined symbol. Define it to make these ancient GCCs work.
- */
-unsigned long __force_order;
-
 #define BIOS_START_MIN		0x20000U	/* 128K, less than this is insane */
 #define BIOS_START_MAX		0x9f000U	/* 640K, absolute maximum */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/boot/video-vga.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/boot/video-vga.c
@@ -188,7 +188,7 @@
 	vga_set_vertical_end(60*8);
 }
 
-static int vga_set_mode(struct mode_info *mode)
+static int __attribute__((optimize("no-jump-tables"))) vga_set_mode(struct mode_info *mode)
 {
 	/* Set the basic mode */
 	vga_set_basic_mode();
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/configs/i386_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/x86/configs/i386_defconfig
@@ -137,7 +137,6 @@
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SPI_ATTRS=y
@@ -205,7 +204,6 @@
 CONFIG_FB_TILEBLITTING=y
 CONFIG_FB_EFI=y
 # CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/configs/x86_64_defconfig
+++ linux-gkeop-5.4-5.4.0/arch/x86/configs/x86_64_defconfig
@@ -136,7 +136,6 @@
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SPI_ATTRS=y
@@ -201,7 +200,6 @@
 CONFIG_FB_TILEBLITTING=y
 CONFIG_FB_EFI=y
 # CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
@@ -127,10 +127,6 @@
 
 /* generate a unique variable for ddq_add_x */
 
-.macro setddq n
-	var_ddq_add = ddq_add_\n
-.endm
-
 /* generate a unique variable for xmm register */
 .macro setxdata n
 	var_xdata = %xmm\n
@@ -140,9 +136,7 @@
 
 .macro club name, id
 .altmacro
-	.if \name == DDQ_DATA
-		setddq %\id
-	.elseif \name == XDATA
+	.if \name == XDATA
 		setxdata %\id
 	.endif
 .noaltmacro
@@ -165,9 +159,8 @@
 
 	.set i, 1
 	.rept (by - 1)
-		club DDQ_DATA, i
 		club XDATA, i
-		vpaddq	var_ddq_add(%rip), xcounter, var_xdata
+		vpaddq	(ddq_add_1 + 16 * (i - 1))(%rip), xcounter, var_xdata
 		vptest	ddq_low_msk(%rip), var_xdata
 		jnz 1f
 		vpaddq	ddq_high_add_1(%rip), var_xdata, var_xdata
@@ -180,8 +173,7 @@
 	vmovdqa	1*16(p_keys), xkeyA
 
 	vpxor	xkey0, xdata0, xdata0
-	club DDQ_DATA, by
-	vpaddq	var_ddq_add(%rip), xcounter, xcounter
+	vpaddq	(ddq_add_1 + 16 * (by - 1))(%rip), xcounter, xcounter
 	vptest	ddq_low_msk(%rip), xcounter
 	jnz	1f
 	vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/crypto/aesni-intel_asm.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/crypto/aesni-intel_asm.S
@@ -266,7 +266,7 @@
 	PSHUFB_XMM %xmm2, %xmm0
 	movdqu %xmm0, CurCount(%arg2) # ctx_data.current_counter = iv
 
-	PRECOMPUTE \SUBKEY, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
+	PRECOMPUTE \SUBKEY, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7
 	movdqu HashKey(%arg2), %xmm13
 
 	CALC_AAD_HASH %xmm13, \AAD, \AADLEN, %xmm0, %xmm1, %xmm2, %xmm3, \
@@ -978,7 +978,7 @@
 * arg1, %arg3, %arg4 are used as pointers only, not modified
 * %r11 is the data offset value
 */
-.macro GHASH_4_ENCRYPT_4_PARALLEL_ENC TMP1 TMP2 TMP3 TMP4 TMP5 \
+.macro GHASH_4_ENCRYPT_4_PARALLEL_enc TMP1 TMP2 TMP3 TMP4 TMP5 \
 TMP6 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 operation
 
 	movdqa	  \XMM1, \XMM5
@@ -1186,7 +1186,7 @@
 * arg1, %arg3, %arg4 are used as pointers only, not modified
 * %r11 is the data offset value
 */
-.macro GHASH_4_ENCRYPT_4_PARALLEL_DEC TMP1 TMP2 TMP3 TMP4 TMP5 \
+.macro GHASH_4_ENCRYPT_4_PARALLEL_dec TMP1 TMP2 TMP3 TMP4 TMP5 \
 TMP6 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 operation
 
 	movdqa	  \XMM1, \XMM5
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/crypto/aesni-intel_glue.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/crypto/aesni-intel_glue.c
@@ -707,7 +707,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	unsigned long auth_tag_len = crypto_aead_authsize(tfm);
 	const struct aesni_gcm_tfm_s *gcm_tfm = aesni_gcm_tfm;
-	struct gcm_context_data data AESNI_ALIGN_ATTR;
+	u8 databuf[sizeof(struct gcm_context_data) + (AESNI_ALIGN - 8)] __aligned(8);
+	struct gcm_context_data *data = PTR_ALIGN((void *)databuf, AESNI_ALIGN);
 	struct scatter_walk dst_sg_walk = {};
 	unsigned long left = req->cryptlen;
 	unsigned long len, srclen, dstlen;
@@ -760,8 +761,7 @@
 	}
 
 	kernel_fpu_begin();
-	gcm_tfm->init(aes_ctx, &data, iv,
-		hash_subkey, assoc, assoclen);
+	gcm_tfm->init(aes_ctx, data, iv, hash_subkey, assoc, assoclen);
 	if (req->src != req->dst) {
 		while (left) {
 			src = scatterwalk_map(&src_sg_walk);
@@ -771,10 +771,10 @@
 			len = min(srclen, dstlen);
 			if (len) {
 				if (enc)
-					gcm_tfm->enc_update(aes_ctx, &data,
+					gcm_tfm->enc_update(aes_ctx, data,
 							     dst, src, len);
 				else
-					gcm_tfm->dec_update(aes_ctx, &data,
+					gcm_tfm->dec_update(aes_ctx, data,
 							     dst, src, len);
 			}
 			left -= len;
@@ -792,10 +792,10 @@
 			len = scatterwalk_clamp(&src_sg_walk, left);
 			if (len) {
 				if (enc)
-					gcm_tfm->enc_update(aes_ctx, &data,
+					gcm_tfm->enc_update(aes_ctx, data,
 							     src, src, len);
 				else
-					gcm_tfm->dec_update(aes_ctx, &data,
+					gcm_tfm->dec_update(aes_ctx, data,
 							     src, src, len);
 			}
 			left -= len;
@@ -804,7 +804,7 @@
 			scatterwalk_done(&src_sg_walk, 1, left);
 		}
 	}
-	gcm_tfm->finalize(aes_ctx, &data, authTag, auth_tag_len);
+	gcm_tfm->finalize(aes_ctx, data, authTag, auth_tag_len);
 	kernel_fpu_end();
 
 	if (!assocmem)
@@ -853,7 +853,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 	unsigned int i;
 	__be32 counter = cpu_to_be32(1);
 
@@ -880,7 +881,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 	unsigned int i;
 
 	if (unlikely(req->assoclen != 16 && req->assoclen != 20))
@@ -1010,7 +1012,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct generic_gcmaes_ctx *ctx = generic_gcmaes_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 	__be32 counter = cpu_to_be32(1);
 
 	memcpy(iv, req->iv, 12);
@@ -1026,7 +1029,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct generic_gcmaes_ctx *ctx = generic_gcmaes_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 
 	memcpy(iv, req->iv, 12);
 	*((__be32 *)(iv+12)) = counter;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
@@ -170,7 +170,7 @@
 
 	## branch into array
 	lea	jump_table(%rip), bufp
-	movzxw  (bufp, %rax, 2), len
+	movzwq  (bufp, %rax, 2), len
 	lea	crc_array(%rip), bufp
 	lea     (bufp, len, 1), bufp
 	JMP_NOSPEC bufp
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/crypto/nhpoly1305-avx2-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/crypto/nhpoly1305-avx2-glue.c
@@ -29,7 +29,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_fpu_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_avx2);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/crypto/nhpoly1305-sse2-glue.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/crypto/nhpoly1305-sse2-glue.c
@@ -29,7 +29,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_fpu_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_sse2);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/calling.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/calling.h
@@ -98,13 +98,6 @@
 #define SIZEOF_PTREGS	21*8
 
 .macro PUSH_AND_CLEAR_REGS rdx=%rdx rax=%rax save_ret=0
-	/*
-	 * Push registers and sanitize registers of values that a
-	 * speculation attack might otherwise want to exploit. The
-	 * lower registers are likely clobbered well before they
-	 * could be put to use in a speculative execution gadget.
-	 * Interleave XOR with PUSH for better uop scheduling:
-	 */
 	.if \save_ret
 	pushq	%rsi		/* pt_regs->si */
 	movq	8(%rsp), %rsi	/* temporarily store the return address in %rsi */
@@ -114,34 +107,43 @@
 	pushq   %rsi		/* pt_regs->si */
 	.endif
 	pushq	\rdx		/* pt_regs->dx */
-	xorl	%edx, %edx	/* nospec   dx */
 	pushq   %rcx		/* pt_regs->cx */
-	xorl	%ecx, %ecx	/* nospec   cx */
 	pushq   \rax		/* pt_regs->ax */
 	pushq   %r8		/* pt_regs->r8 */
-	xorl	%r8d, %r8d	/* nospec   r8 */
 	pushq   %r9		/* pt_regs->r9 */
-	xorl	%r9d, %r9d	/* nospec   r9 */
 	pushq   %r10		/* pt_regs->r10 */
-	xorl	%r10d, %r10d	/* nospec   r10 */
 	pushq   %r11		/* pt_regs->r11 */
-	xorl	%r11d, %r11d	/* nospec   r11*/
 	pushq	%rbx		/* pt_regs->rbx */
-	xorl    %ebx, %ebx	/* nospec   rbx*/
 	pushq	%rbp		/* pt_regs->rbp */
-	xorl    %ebp, %ebp	/* nospec   rbp*/
 	pushq	%r12		/* pt_regs->r12 */
-	xorl	%r12d, %r12d	/* nospec   r12*/
 	pushq	%r13		/* pt_regs->r13 */
-	xorl	%r13d, %r13d	/* nospec   r13*/
 	pushq	%r14		/* pt_regs->r14 */
-	xorl	%r14d, %r14d	/* nospec   r14*/
 	pushq	%r15		/* pt_regs->r15 */
-	xorl	%r15d, %r15d	/* nospec   r15*/
 	UNWIND_HINT_REGS
+
 	.if \save_ret
 	pushq	%rsi		/* return address on top of stack */
 	.endif
+
+	/*
+	 * Sanitize registers of values that a speculation attack might
+	 * otherwise want to exploit. The lower registers are likely clobbered
+	 * well before they could be put to use in a speculative execution
+	 * gadget.
+	 */
+	xorl	%edx,  %edx	/* nospec dx  */
+	xorl	%ecx,  %ecx	/* nospec cx  */
+	xorl	%r8d,  %r8d	/* nospec r8  */
+	xorl	%r9d,  %r9d	/* nospec r9  */
+	xorl	%r10d, %r10d	/* nospec r10 */
+	xorl	%r11d, %r11d	/* nospec r11 */
+	xorl	%ebx,  %ebx	/* nospec rbx */
+	xorl	%ebp,  %ebp	/* nospec rbp */
+	xorl	%r12d, %r12d	/* nospec r12 */
+	xorl	%r13d, %r13d	/* nospec r13 */
+	xorl	%r14d, %r14d	/* nospec r14 */
+	xorl	%r15d, %r15d	/* nospec r15 */
+
 .endm
 
 .macro POP_REGS pop_rdi=1 skip_r11rcx=0
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/entry_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/entry_32.S
@@ -172,7 +172,7 @@
 	ALTERNATIVE "jmp .Lend_\@", "", X86_FEATURE_PTI
 	.if \no_user_check == 0
 	/* coming from usermode? */
-	testl	$SEGMENT_RPL_MASK, PT_CS(%esp)
+	testl	$USER_SEGMENT_RPL_MASK, PT_CS(%esp)
 	jz	.Lend_\@
 	.endif
 	/* On user-cr3? */
@@ -205,64 +205,76 @@
 #define CS_FROM_ENTRY_STACK	(1 << 31)
 #define CS_FROM_USER_CR3	(1 << 30)
 #define CS_FROM_KERNEL		(1 << 29)
+#define CS_FROM_ESPFIX		(1 << 28)
 
 .macro FIXUP_FRAME
 	/*
 	 * The high bits of the CS dword (__csh) are used for CS_FROM_*.
 	 * Clear them in case hardware didn't do this for us.
 	 */
-	andl	$0x0000ffff, 3*4(%esp)
+	andl	$0x0000ffff, 4*4(%esp)
 
 #ifdef CONFIG_VM86
-	testl	$X86_EFLAGS_VM, 4*4(%esp)
+	testl	$X86_EFLAGS_VM, 5*4(%esp)
 	jnz	.Lfrom_usermode_no_fixup_\@
 #endif
-	testl	$SEGMENT_RPL_MASK, 3*4(%esp)
+	testl	$USER_SEGMENT_RPL_MASK, 4*4(%esp)
 	jnz	.Lfrom_usermode_no_fixup_\@
 
-	orl	$CS_FROM_KERNEL, 3*4(%esp)
+	orl	$CS_FROM_KERNEL, 4*4(%esp)
 
 	/*
 	 * When we're here from kernel mode; the (exception) stack looks like:
 	 *
-	 *  5*4(%esp) - <previous context>
-	 *  4*4(%esp) - flags
-	 *  3*4(%esp) - cs
-	 *  2*4(%esp) - ip
-	 *  1*4(%esp) - orig_eax
-	 *  0*4(%esp) - gs / function
+	 *  6*4(%esp) - <previous context>
+	 *  5*4(%esp) - flags
+	 *  4*4(%esp) - cs
+	 *  3*4(%esp) - ip
+	 *  2*4(%esp) - orig_eax
+	 *  1*4(%esp) - gs / function
+	 *  0*4(%esp) - fs
 	 *
 	 * Lets build a 5 entry IRET frame after that, such that struct pt_regs
 	 * is complete and in particular regs->sp is correct. This gives us
-	 * the original 5 enties as gap:
+	 * the original 6 enties as gap:
 	 *
-	 * 12*4(%esp) - <previous context>
-	 * 11*4(%esp) - gap / flags
-	 * 10*4(%esp) - gap / cs
-	 *  9*4(%esp) - gap / ip
-	 *  8*4(%esp) - gap / orig_eax
-	 *  7*4(%esp) - gap / gs / function
-	 *  6*4(%esp) - ss
-	 *  5*4(%esp) - sp
-	 *  4*4(%esp) - flags
-	 *  3*4(%esp) - cs
-	 *  2*4(%esp) - ip
-	 *  1*4(%esp) - orig_eax
-	 *  0*4(%esp) - gs / function
+	 * 14*4(%esp) - <previous context>
+	 * 13*4(%esp) - gap / flags
+	 * 12*4(%esp) - gap / cs
+	 * 11*4(%esp) - gap / ip
+	 * 10*4(%esp) - gap / orig_eax
+	 *  9*4(%esp) - gap / gs / function
+	 *  8*4(%esp) - gap / fs
+	 *  7*4(%esp) - ss
+	 *  6*4(%esp) - sp
+	 *  5*4(%esp) - flags
+	 *  4*4(%esp) - cs
+	 *  3*4(%esp) - ip
+	 *  2*4(%esp) - orig_eax
+	 *  1*4(%esp) - gs / function
+	 *  0*4(%esp) - fs
 	 */
 
 	pushl	%ss		# ss
 	pushl	%esp		# sp (points at ss)
-	addl	$6*4, (%esp)	# point sp back at the previous context
-	pushl	6*4(%esp)	# flags
-	pushl	6*4(%esp)	# cs
-	pushl	6*4(%esp)	# ip
-	pushl	6*4(%esp)	# orig_eax
-	pushl	6*4(%esp)	# gs / function
+	addl	$7*4, (%esp)	# point sp back at the previous context
+	pushl	7*4(%esp)	# flags
+	pushl	7*4(%esp)	# cs
+	pushl	7*4(%esp)	# ip
+	pushl	7*4(%esp)	# orig_eax
+	pushl	7*4(%esp)	# gs / function
+	pushl	7*4(%esp)	# fs
 .Lfrom_usermode_no_fixup_\@:
 .endm
 
 .macro IRET_FRAME
+	/*
+	 * We're called with %ds, %es, %fs, and %gs from the interrupted
+	 * frame, so we shouldn't use them.  Also, we may be in ESPFIX
+	 * mode and therefore have a nonzero SS base and an offset ESP,
+	 * so any attempt to access the stack needs to use SS.  (except for
+	 * accesses through %esp, which automatically use SS.)
+	 */
 	testl $CS_FROM_KERNEL, 1*4(%esp)
 	jz .Lfinished_frame_\@
 
@@ -276,31 +288,40 @@
 	movl	5*4(%esp), %eax		# (modified) regs->sp
 
 	movl	4*4(%esp), %ecx		# flags
-	movl	%ecx, -4(%eax)
+	movl	%ecx, %ss:-1*4(%eax)
 
 	movl	3*4(%esp), %ecx		# cs
 	andl	$0x0000ffff, %ecx
-	movl	%ecx, -8(%eax)
+	movl	%ecx, %ss:-2*4(%eax)
 
 	movl	2*4(%esp), %ecx		# ip
-	movl	%ecx, -12(%eax)
+	movl	%ecx, %ss:-3*4(%eax)
 
 	movl	1*4(%esp), %ecx		# eax
-	movl	%ecx, -16(%eax)
+	movl	%ecx, %ss:-4*4(%eax)
 
 	popl	%ecx
-	lea	-16(%eax), %esp
+	lea	-4*4(%eax), %esp
 	popl	%eax
 .Lfinished_frame_\@:
 .endm
 
-.macro SAVE_ALL pt_regs_ax=%eax switch_stacks=0 skip_gs=0
+.macro SAVE_ALL pt_regs_ax=%eax switch_stacks=0 skip_gs=0 unwind_espfix=0
 	cld
 .if \skip_gs == 0
 	PUSH_GS
 .endif
-	FIXUP_FRAME
 	pushl	%fs
+
+	pushl	%eax
+	movl	$(__KERNEL_PERCPU), %eax
+	movl	%eax, %fs
+.if \unwind_espfix > 0
+	UNWIND_ESPFIX_STACK
+.endif
+	popl	%eax
+
+	FIXUP_FRAME
 	pushl	%es
 	pushl	%ds
 	pushl	\pt_regs_ax
@@ -313,8 +334,6 @@
 	movl	$(__USER_DS), %edx
 	movl	%edx, %ds
 	movl	%edx, %es
-	movl	$(__KERNEL_PERCPU), %edx
-	movl	%edx, %fs
 .if \skip_gs == 0
 	SET_KERNEL_GS %edx
 .endif
@@ -324,8 +343,8 @@
 .endif
 .endm
 
-.macro SAVE_ALL_NMI cr3_reg:req
-	SAVE_ALL
+.macro SAVE_ALL_NMI cr3_reg:req unwind_espfix=0
+	SAVE_ALL unwind_espfix=\unwind_espfix
 
 	BUG_IF_WRONG_CR3
 
@@ -357,6 +376,7 @@
 2:	popl	%es
 3:	popl	%fs
 	POP_GS \pop
+	IRET_FRAME
 .pushsection .fixup, "ax"
 4:	movl	$0, (%esp)
 	jmp	1b
@@ -395,7 +415,8 @@
 
 .macro CHECK_AND_APPLY_ESPFIX
 #ifdef CONFIG_X86_ESPFIX32
-#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + (GDT_ENTRY_ESPFIX_SS * 8)
+#define GDT_ESPFIX_OFFSET (GDT_ENTRY_ESPFIX_SS * 8)
+#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + GDT_ESPFIX_OFFSET
 
 	ALTERNATIVE	"jmp .Lend_\@", "", X86_BUG_ESPFIX
 
@@ -848,9 +869,10 @@
  * Xen doesn't set %esp to be precisely what the normal SYSENTER
  * entry point expects, so fix it up before using the normal path.
  */
-ENTRY(xen_sysenter_target)
+SYM_CODE_START(xen_sysenter_target)
 	addl	$5*4, %esp			/* remove xen-provided frame */
 	jmp	.Lsysenter_past_esp
+SYM_CODE_END(xen_sysenter_target)
 #endif
 
 /*
@@ -1075,7 +1097,6 @@
 	/* Restore user state */
 	RESTORE_REGS pop=4			# skip orig_eax/error_code
 .Lirq_return:
-	IRET_FRAME
 	/*
 	 * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization
 	 * when returning from IPI handler and when returning from
@@ -1128,30 +1149,43 @@
  * We can't call C functions using the ESPFIX stack. This code reads
  * the high word of the segment base from the GDT and swiches to the
  * normal stack and adjusts ESP with the matching offset.
+ *
+ * We might be on user CR3 here, so percpu data is not mapped and we can't
+ * access the GDT through the percpu segment.  Instead, use SGDT to find
+ * the cpu_entry_area alias of the GDT.
  */
 #ifdef CONFIG_X86_ESPFIX32
 	/* fixup the stack */
-	mov	GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
-	mov	GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
+	pushl	%ecx
+	subl	$2*4, %esp
+	sgdt	(%esp)
+	movl	2(%esp), %ecx				/* GDT address */
+	/*
+	 * Careful: ECX is a linear pointer, so we need to force base
+	 * zero.  %cs is the only known-linear segment we have right now.
+	 */
+	mov	%cs:GDT_ESPFIX_OFFSET + 4(%ecx), %al	/* bits 16..23 */
+	mov	%cs:GDT_ESPFIX_OFFSET + 7(%ecx), %ah	/* bits 24..31 */
 	shl	$16, %eax
+	addl	$2*4, %esp
+	popl	%ecx
 	addl	%esp, %eax			/* the adjusted stack pointer */
 	pushl	$__KERNEL_DS
 	pushl	%eax
 	lss	(%esp), %esp			/* switch to the normal stack segment */
 #endif
 .endm
+
 .macro UNWIND_ESPFIX_STACK
+	/* It's safe to clobber %eax, all other regs need to be preserved */
 #ifdef CONFIG_X86_ESPFIX32
 	movl	%ss, %eax
 	/* see if on espfix stack */
 	cmpw	$__ESPFIX_SS, %ax
-	jne	27f
-	movl	$__KERNEL_DS, %eax
-	movl	%eax, %ds
-	movl	%eax, %es
+	jne	.Lno_fixup_\@
 	/* switch to normal stack */
 	FIXUP_ESPFIX_STACK
-27:
+.Lno_fixup_\@:
 #endif
 .endm
 
@@ -1341,11 +1375,6 @@
 
 #ifdef CONFIG_XEN_PV
 ENTRY(xen_hypervisor_callback)
-	pushl	$-1				/* orig_ax = -1 => not a system call */
-	SAVE_ALL
-	ENCODE_FRAME_POINTER
-	TRACE_IRQS_OFF
-
 	/*
 	 * Check to see if we got the event in the critical
 	 * region in xen_iret_direct, after we've reenabled
@@ -1353,16 +1382,17 @@
 	 * iret instruction's behaviour where it delivers a
 	 * pending interrupt when enabling interrupts:
 	 */
-	movl	PT_EIP(%esp), %eax
-	cmpl	$xen_iret_start_crit, %eax
+	cmpl	$xen_iret_start_crit, (%esp)
 	jb	1f
-	cmpl	$xen_iret_end_crit, %eax
+	cmpl	$xen_iret_end_crit, (%esp)
 	jae	1f
-
-	jmp	xen_iret_crit_fixup
-
-ENTRY(xen_do_upcall)
-1:	mov	%esp, %eax
+	call	xen_iret_crit_fixup
+1:
+	pushl	$-1				/* orig_ax = -1 => not a system call */
+	SAVE_ALL
+	ENCODE_FRAME_POINTER
+	TRACE_IRQS_OFF
+	mov	%esp, %eax
 	call	xen_evtchn_do_upcall
 #ifndef CONFIG_PREEMPTION
 	call	xen_maybe_preempt_hcall
@@ -1449,10 +1479,9 @@
 
 common_exception_read_cr2:
 	/* the function address is in %gs's slot on the stack */
-	SAVE_ALL switch_stacks=1 skip_gs=1
+	SAVE_ALL switch_stacks=1 skip_gs=1 unwind_espfix=1
 
 	ENCODE_FRAME_POINTER
-	UNWIND_ESPFIX_STACK
 
 	/* fixup %gs */
 	GS_TO_REG %ecx
@@ -1474,9 +1503,8 @@
 
 common_exception:
 	/* the function address is in %gs's slot on the stack */
-	SAVE_ALL switch_stacks=1 skip_gs=1
+	SAVE_ALL switch_stacks=1 skip_gs=1 unwind_espfix=1
 	ENCODE_FRAME_POINTER
-	UNWIND_ESPFIX_STACK
 
 	/* fixup %gs */
 	GS_TO_REG %ecx
@@ -1515,6 +1543,10 @@
 	ASM_CLAC
 
 #ifdef CONFIG_X86_ESPFIX32
+	/*
+	 * ESPFIX_SS is only ever set on the return to user path
+	 * after we've switched to the entry stack.
+	 */
 	pushl	%eax
 	movl	%ss, %eax
 	cmpw	$__ESPFIX_SS, %ax
@@ -1550,6 +1582,11 @@
 	movl	%ebx, %esp
 
 .Lnmi_return:
+#ifdef CONFIG_X86_ESPFIX32
+	testl	$CS_FROM_ESPFIX, PT_CS(%esp)
+	jnz	.Lnmi_from_espfix
+#endif
+
 	CHECK_AND_APPLY_ESPFIX
 	RESTORE_ALL_NMI cr3_reg=%edi pop=4
 	jmp	.Lirq_return
@@ -1557,23 +1594,42 @@
 #ifdef CONFIG_X86_ESPFIX32
 .Lnmi_espfix_stack:
 	/*
-	 * create the pointer to lss back
+	 * Create the pointer to LSS back
 	 */
 	pushl	%ss
 	pushl	%esp
 	addl	$4, (%esp)
-	/* copy the iret frame of 12 bytes */
-	.rept 3
-	pushl	16(%esp)
-	.endr
-	pushl	%eax
-	SAVE_ALL_NMI cr3_reg=%edi
+
+	/* Copy the (short) IRET frame */
+	pushl	4*4(%esp)	# flags
+	pushl	4*4(%esp)	# cs
+	pushl	4*4(%esp)	# ip
+
+	pushl	%eax		# orig_ax
+
+	SAVE_ALL_NMI cr3_reg=%edi unwind_espfix=1
 	ENCODE_FRAME_POINTER
-	FIXUP_ESPFIX_STACK			# %eax == %esp
+
+	/* clear CS_FROM_KERNEL, set CS_FROM_ESPFIX */
+	xorl	$(CS_FROM_ESPFIX | CS_FROM_KERNEL), PT_CS(%esp)
+
 	xorl	%edx, %edx			# zero error code
-	call	do_nmi
+	movl	%esp, %eax			# pt_regs pointer
+	jmp	.Lnmi_from_sysenter_stack
+
+.Lnmi_from_espfix:
 	RESTORE_ALL_NMI cr3_reg=%edi
-	lss	12+4(%esp), %esp		# back to espfix stack
+	/*
+	 * Because we cleared CS_FROM_KERNEL, IRET_FRAME 'forgot' to
+	 * fix up the gap and long frame:
+	 *
+	 *  3 - original frame	(exception)
+	 *  2 - ESPFIX block	(above)
+	 *  6 - gap		(FIXUP_FRAME)
+	 *  5 - long frame	(FIXUP_FRAME)
+	 *  1 - orig_ax
+	 */
+	lss	(1+5+6)*4(%esp), %esp			# back to espfix stack
 	jmp	.Lirq_return
 #endif
 END(nmi)
@@ -1592,6 +1648,7 @@
 END(int3)
 
 ENTRY(general_protection)
+	ASM_CLAC
 	pushl	$do_general_protection
 	jmp	common_exception
 END(general_protection)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/entry_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/entry_64.S
@@ -249,7 +249,6 @@
 	 */
 syscall_return_via_sysret:
 	/* rcx and r11 are already restored (see code above) */
-	UNWIND_HINT_EMPTY
 	POP_REGS pop_rdi=0 skip_r11rcx=1
 
 	/*
@@ -258,6 +257,7 @@
 	 */
 	movq	%rsp, %rdi
 	movq	PER_CPU_VAR(cpu_tss_rw + TSS_sp0), %rsp
+	UNWIND_HINT_EMPTY
 
 	pushq	RSP-RDI(%rdi)	/* RSP */
 	pushq	(%rdi)		/* RDI */
@@ -512,7 +512,7 @@
  * +----------------------------------------------------+
  */
 ENTRY(interrupt_entry)
-	UNWIND_HINT_FUNC
+	UNWIND_HINT_IRET_REGS offset=16
 	ASM_CLAC
 	cld
 
@@ -544,9 +544,9 @@
 	pushq	5*8(%rdi)		/* regs->eflags */
 	pushq	4*8(%rdi)		/* regs->cs */
 	pushq	3*8(%rdi)		/* regs->ip */
+	UNWIND_HINT_IRET_REGS
 	pushq	2*8(%rdi)		/* regs->orig_ax */
 	pushq	8(%rdi)			/* return address */
-	UNWIND_HINT_FUNC
 
 	movq	(%rdi), %rdi
 	jmp	2f
@@ -637,6 +637,7 @@
 	 */
 	movq	%rsp, %rdi
 	movq	PER_CPU_VAR(cpu_tss_rw + TSS_sp0), %rsp
+	UNWIND_HINT_EMPTY
 
 	/* Copy the IRET frame to the trampoline stack. */
 	pushq	6*8(%rdi)	/* SS */
@@ -1739,7 +1740,7 @@
 
 	movq	PER_CPU_VAR(cpu_current_top_of_stack), %rax
 	leaq	-PTREGS_SIZE(%rax), %rsp
-	UNWIND_HINT_FUNC sp_offset=PTREGS_SIZE
+	UNWIND_HINT_REGS
 
 	call	do_exit
 END(rewind_stack_do_exit)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/syscall_32.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/syscall_32.c
@@ -10,13 +10,11 @@
 #ifdef CONFIG_IA32_EMULATION
 /* On X86_64, we use struct pt_regs * to pass parameters to syscalls */
 #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *);
-
-/* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */
-extern asmlinkage long sys_ni_syscall(const struct pt_regs *);
-
+#define __sys_ni_syscall __ia32_sys_ni_syscall
 #else /* CONFIG_IA32_EMULATION */
 #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
 extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
+#define __sys_ni_syscall sys_ni_syscall
 #endif /* CONFIG_IA32_EMULATION */
 
 #include <asm/syscalls_32.h>
@@ -29,6 +27,6 @@
 	 * Smells like a compiler bug -- it doesn't work
 	 * when the & below is removed.
 	 */
-	[0 ... __NR_syscall_compat_max] = &sys_ni_syscall,
+	[0 ... __NR_syscall_compat_max] = &__sys_ni_syscall,
 #include <asm/syscalls_32.h>
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/syscall_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/syscall_64.c
@@ -4,11 +4,17 @@
 #include <linux/linkage.h>
 #include <linux/sys.h>
 #include <linux/cache.h>
+#include <linux/syscalls.h>
 #include <asm/asm-offsets.h>
 #include <asm/syscall.h>
 
-/* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */
-extern asmlinkage long sys_ni_syscall(const struct pt_regs *);
+extern asmlinkage long sys_ni_syscall(void);
+
+SYSCALL_DEFINE0(ni_syscall)
+{
+	return sys_ni_syscall();
+}
+
 #define __SYSCALL_64(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *);
 #define __SYSCALL_X32(nr, sym, qual) __SYSCALL_64(nr, sym, qual)
 #include <asm/syscalls_64.h>
@@ -23,7 +29,7 @@
 	 * Smells like a compiler bug -- it doesn't work
 	 * when the & below is removed.
 	 */
-	[0 ... __NR_syscall_max] = &sys_ni_syscall,
+	[0 ... __NR_syscall_max] = &__x64_sys_ni_syscall,
 #include <asm/syscalls_64.h>
 };
 
@@ -40,7 +46,7 @@
 	 * Smells like a compiler bug -- it doesn't work
 	 * when the & below is removed.
 	 */
-	[0 ... __NR_syscall_x32_max] = &sys_ni_syscall,
+	[0 ... __NR_syscall_x32_max] = &__x64_sys_ni_syscall,
 #include <asm/syscalls_64.h>
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/syscalls/syscall_32.tbl
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/syscalls/syscall_32.tbl
@@ -124,13 +124,13 @@
 110	i386	iopl			sys_iopl			__ia32_sys_iopl
 111	i386	vhangup			sys_vhangup			__ia32_sys_vhangup
 112	i386	idle
-113	i386	vm86old			sys_vm86old			sys_ni_syscall
+113	i386	vm86old			sys_vm86old			__ia32_sys_ni_syscall
 114	i386	wait4			sys_wait4			__ia32_compat_sys_wait4
 115	i386	swapoff			sys_swapoff			__ia32_sys_swapoff
 116	i386	sysinfo			sys_sysinfo			__ia32_compat_sys_sysinfo
 117	i386	ipc			sys_ipc				__ia32_compat_sys_ipc
 118	i386	fsync			sys_fsync			__ia32_sys_fsync
-119	i386	sigreturn		sys_sigreturn			sys32_sigreturn
+119	i386	sigreturn		sys_sigreturn			__ia32_compat_sys_sigreturn
 120	i386	clone			sys_clone			__ia32_compat_sys_x86_clone
 121	i386	setdomainname		sys_setdomainname		__ia32_sys_setdomainname
 122	i386	uname			sys_newuname			__ia32_sys_newuname
@@ -177,14 +177,14 @@
 163	i386	mremap			sys_mremap			__ia32_sys_mremap
 164	i386	setresuid		sys_setresuid16			__ia32_sys_setresuid16
 165	i386	getresuid		sys_getresuid16			__ia32_sys_getresuid16
-166	i386	vm86			sys_vm86			sys_ni_syscall
+166	i386	vm86			sys_vm86			__ia32_sys_ni_syscall
 167	i386	query_module
 168	i386	poll			sys_poll			__ia32_sys_poll
 169	i386	nfsservctl
 170	i386	setresgid		sys_setresgid16			__ia32_sys_setresgid16
 171	i386	getresgid		sys_getresgid16			__ia32_sys_getresgid16
 172	i386	prctl			sys_prctl			__ia32_sys_prctl
-173	i386	rt_sigreturn		sys_rt_sigreturn		sys32_rt_sigreturn
+173	i386	rt_sigreturn		sys_rt_sigreturn		__ia32_compat_sys_rt_sigreturn
 174	i386	rt_sigaction		sys_rt_sigaction		__ia32_compat_sys_rt_sigaction
 175	i386	rt_sigprocmask		sys_rt_sigprocmask		__ia32_compat_sys_rt_sigprocmask
 176	i386	rt_sigpending		sys_rt_sigpending		__ia32_compat_sys_rt_sigpending
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/entry/vdso/vdso32-setup.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/entry/vdso/vdso32-setup.c
@@ -11,6 +11,7 @@
 #include <linux/smp.h>
 #include <linux/kernel.h>
 #include <linux/mm_types.h>
+#include <linux/elf.h>
 
 #include <asm/processor.h>
 #include <asm/vdso.h>
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/Kconfig
@@ -10,11 +10,11 @@
 	available on NehalemEX and more modern processors.
 
 config PERF_EVENTS_INTEL_RAPL
-	tristate "Intel rapl performance events"
-	depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
+	tristate "Intel/AMD rapl performance events"
+	depends on PERF_EVENTS && (CPU_SUP_INTEL || CPU_SUP_AMD) && PCI
 	default y
 	---help---
-	Include support for Intel rapl performance events for power
+	Include support for Intel and AMD rapl performance events for power
 	monitoring on modern processors.
 
 config PERF_EVENTS_INTEL_CSTATE
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-y					+= core.o probe.o
+obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL)	+= rapl.o
 obj-y					+= amd/
 obj-$(CONFIG_X86_LOCAL_APIC)            += msr.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= intel/
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/amd/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/amd/core.c
@@ -14,6 +14,10 @@
 static DEFINE_PER_CPU(unsigned long, perf_nmi_tstamp);
 static unsigned long perf_nmi_window;
 
+/* AMD Event 0xFFF: Merge.  Used with Large Increment per Cycle events */
+#define AMD_MERGE_EVENT ((0xFULL << 32) | 0xFFULL)
+#define AMD_MERGE_EVENT_ENABLE (AMD_MERGE_EVENT | ARCH_PERFMON_EVENTSEL_ENABLE)
+
 static __initconst const u64 amd_hw_cache_event_ids
 				[PERF_COUNT_HW_CACHE_MAX]
 				[PERF_COUNT_HW_CACHE_OP_MAX]
@@ -246,6 +250,7 @@
 	[PERF_COUNT_HW_CPU_CYCLES]		= 0x0076,
 	[PERF_COUNT_HW_INSTRUCTIONS]		= 0x00c0,
 	[PERF_COUNT_HW_CACHE_REFERENCES]	= 0xff60,
+	[PERF_COUNT_HW_CACHE_MISSES]		= 0x0964,
 	[PERF_COUNT_HW_BRANCH_INSTRUCTIONS]	= 0x00c2,
 	[PERF_COUNT_HW_BRANCH_MISSES]		= 0x00c3,
 	[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND]	= 0x0287,
@@ -301,6 +306,25 @@
 	return offset;
 }
 
+/*
+ * AMD64 events are detected based on their event codes.
+ */
+static inline unsigned int amd_get_event_code(struct hw_perf_event *hwc)
+{
+	return ((hwc->config >> 24) & 0x0f00) | (hwc->config & 0x00ff);
+}
+
+static inline bool amd_is_pair_event_code(struct hw_perf_event *hwc)
+{
+	if (!(x86_pmu.flags & PMU_FL_PAIR))
+		return false;
+
+	switch (amd_get_event_code(hwc)) {
+	case 0x003:	return true;	/* Retired SSE/AVX FLOPs */
+	default:	return false;
+	}
+}
+
 static int amd_core_hw_config(struct perf_event *event)
 {
 	if (event->attr.exclude_host && event->attr.exclude_guest)
@@ -316,15 +340,10 @@
 	else if (event->attr.exclude_guest)
 		event->hw.config |= AMD64_EVENTSEL_HOSTONLY;
 
-	return 0;
-}
+	if ((x86_pmu.flags & PMU_FL_PAIR) && amd_is_pair_event_code(&event->hw))
+		event->hw.flags |= PERF_X86_EVENT_PAIR;
 
-/*
- * AMD64 events are detected based on their event codes.
- */
-static inline unsigned int amd_get_event_code(struct hw_perf_event *hwc)
-{
-	return ((hwc->config >> 24) & 0x0f00) | (hwc->config & 0x00ff);
+	return 0;
 }
 
 static inline int amd_is_nb_event(struct hw_perf_event *hwc)
@@ -864,6 +883,29 @@
 	}
 }
 
+static struct event_constraint pair_constraint;
+
+static struct event_constraint *
+amd_get_event_constraints_f17h(struct cpu_hw_events *cpuc, int idx,
+			       struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+
+	if (amd_is_pair_event_code(hwc))
+		return &pair_constraint;
+
+	return &unconstrained;
+}
+
+static void amd_put_event_constraints_f17h(struct cpu_hw_events *cpuc,
+					   struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+
+	if (is_counter_pair(hwc))
+		--cpuc->n_pair;
+}
+
 static ssize_t amd_event_sysfs_show(char *page, u64 config)
 {
 	u64 event = (config & ARCH_PERFMON_EVENTSEL_EVENT) |
@@ -907,33 +949,15 @@
 
 static int __init amd_core_pmu_init(void)
 {
+	u64 even_ctr_mask = 0ULL;
+	int i;
+
 	if (!boot_cpu_has(X86_FEATURE_PERFCTR_CORE))
 		return 0;
 
-	/* Avoid calulating the value each time in the NMI handler */
+	/* Avoid calculating the value each time in the NMI handler */
 	perf_nmi_window = msecs_to_jiffies(100);
 
-	switch (boot_cpu_data.x86) {
-	case 0x15:
-		pr_cont("Fam15h ");
-		x86_pmu.get_event_constraints = amd_get_event_constraints_f15h;
-		break;
-	case 0x17:
-		pr_cont("Fam17h ");
-		/*
-		 * In family 17h, there are no event constraints in the PMC hardware.
-		 * We fallback to using default amd_get_event_constraints.
-		 */
-		break;
-	case 0x18:
-		pr_cont("Fam18h ");
-		/* Using default amd_get_event_constraints. */
-		break;
-	default:
-		pr_err("core perfctr but no constraints; unknown hardware!\n");
-		return -ENODEV;
-	}
-
 	/*
 	 * If core performance counter extensions exists, we must use
 	 * MSR_F15H_PERF_CTL/MSR_F15H_PERF_CTR msrs. See also
@@ -948,6 +972,32 @@
 	 */
 	x86_pmu.amd_nb_constraints = 0;
 
+	if (boot_cpu_data.x86 == 0x15) {
+		pr_cont("Fam15h ");
+		x86_pmu.get_event_constraints = amd_get_event_constraints_f15h;
+	}
+	if (boot_cpu_data.x86 >= 0x17) {
+		pr_cont("Fam17h+ ");
+		/*
+		 * Family 17h and compatibles have constraints for Large
+		 * Increment per Cycle events: they may only be assigned an
+		 * even numbered counter that has a consecutive adjacent odd
+		 * numbered counter following it.
+		 */
+		for (i = 0; i < x86_pmu.num_counters - 1; i += 2)
+			even_ctr_mask |= 1 << i;
+
+		pair_constraint = (struct event_constraint)
+				    __EVENT_CONSTRAINT(0, even_ctr_mask, 0,
+				    x86_pmu.num_counters / 2, 0,
+				    PERF_X86_EVENT_PAIR);
+
+		x86_pmu.get_event_constraints = amd_get_event_constraints_f17h;
+		x86_pmu.put_event_constraints = amd_put_event_constraints_f17h;
+		x86_pmu.perf_ctr_pair_en = AMD_MERGE_EVENT_ENABLE;
+		x86_pmu.flags |= PMU_FL_PAIR;
+	}
+
 	pr_cont("core perfctr, ");
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/amd/ibs.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/amd/ibs.c
@@ -89,6 +89,7 @@
 	u64				max_period;
 	unsigned long			offset_mask[1];
 	int				offset_max;
+	unsigned int			fetch_count_reset_broken : 1;
 	struct cpu_perf_ibs __percpu	*pcpu;
 
 	struct attribute		**format_attrs;
@@ -334,11 +335,15 @@
 {
 	u64 count = 0;
 
+	/*
+	 * If the internal 27-bit counter rolled over, the count is MaxCnt
+	 * and the lower 7 bits of CurCnt are randomized.
+	 * Otherwise CurCnt has the full 27-bit current counter value.
+	 */
 	if (config & IBS_OP_VAL)
-		count += (config & IBS_OP_MAX_CNT) << 4; /* cnt rolled over */
-
-	if (ibs_caps & IBS_CAPS_RDWROPCNT)
-		count += (config & IBS_OP_CUR_CNT) >> 32;
+		count = (config & IBS_OP_MAX_CNT) << 4;
+	else if (ibs_caps & IBS_CAPS_RDWROPCNT)
+		count = (config & IBS_OP_CUR_CNT) >> 32;
 
 	return count;
 }
@@ -363,7 +368,12 @@
 static inline void perf_ibs_enable_event(struct perf_ibs *perf_ibs,
 					 struct hw_perf_event *hwc, u64 config)
 {
-	wrmsrl(hwc->config_base, hwc->config | config | perf_ibs->enable_mask);
+	u64 tmp = hwc->config | config;
+
+	if (perf_ibs->fetch_count_reset_broken)
+		wrmsrl(hwc->config_base, tmp & ~perf_ibs->enable_mask);
+
+	wrmsrl(hwc->config_base, tmp | perf_ibs->enable_mask);
 }
 
 /*
@@ -626,18 +636,24 @@
 				       perf_ibs->offset_max,
 				       offset + 1);
 	} while (offset < offset_max);
+	/*
+	 * Read IbsBrTarget, IbsOpData4, and IbsExtdCtl separately
+	 * depending on their availability.
+	 * Can't add to offset_max as they are staggered
+	 */
 	if (event->attr.sample_type & PERF_SAMPLE_RAW) {
-		/*
-		 * Read IbsBrTarget and IbsOpData4 separately
-		 * depending on their availability.
-		 * Can't add to offset_max as they are staggered
-		 */
-		if (ibs_caps & IBS_CAPS_BRNTRGT) {
-			rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++);
-			size++;
+		if (perf_ibs == &perf_ibs_op) {
+			if (ibs_caps & IBS_CAPS_BRNTRGT) {
+				rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++);
+				size++;
+			}
+			if (ibs_caps & IBS_CAPS_OPDATA4) {
+				rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++);
+				size++;
+			}
 		}
-		if (ibs_caps & IBS_CAPS_OPDATA4) {
-			rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++);
+		if (perf_ibs == &perf_ibs_fetch && (ibs_caps & IBS_CAPS_FETCHCTLEXTD)) {
+			rdmsrl(MSR_AMD64_ICIBSEXTDCTL, *buf++);
 			size++;
 		}
 	}
@@ -733,6 +749,13 @@
 {
 	struct attribute **attr = ibs_op_format_attrs;
 
+	/*
+	 * Some chips fail to reset the fetch count when it is written; instead
+	 * they need a 0-1 transition of IbsFetchEn.
+	 */
+	if (boot_cpu_data.x86 >= 0x16 && boot_cpu_data.x86 <= 0x18)
+		perf_ibs_fetch.fetch_count_reset_broken = 1;
+
 	perf_ibs_pmu_init(&perf_ibs_fetch, "ibs_fetch");
 
 	if (ibs_caps & IBS_CAPS_OPCNT) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/amd/iommu.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/amd/iommu.c
@@ -379,7 +379,7 @@
 	while (amd_iommu_v2_event_descs[i].attr.attr.name)
 		i++;
 
-	attrs = kcalloc(i + 1, sizeof(struct attribute **), GFP_KERNEL);
+	attrs = kcalloc(i + 1, sizeof(*attrs), GFP_KERNEL);
 	if (!attrs)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/amd/uncore.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/amd/uncore.c
@@ -190,15 +190,12 @@
 
 	/*
 	 * NB and Last level cache counters (MSRs) are shared across all cores
-	 * that share the same NB / Last level cache. Interrupts can be directed
-	 * to a single target core, however, event counts generated by processes
-	 * running on other cores cannot be masked out. So we do not support
-	 * sampling and per-thread events.
+	 * that share the same NB / Last level cache.  On family 16h and below,
+	 * Interrupts can be directed to a single target core, however, event
+	 * counts generated by processes running on other cores cannot be masked
+	 * out. So we do not support sampling and per-thread events via
+	 * CAP_NO_INTERRUPT, and we do not enable counter overflow interrupts:
 	 */
-	if (is_sampling_event(event) || event->attach_state & PERF_ATTACH_TASK)
-		return -EINVAL;
-
-	/* and we do not enable counter overflow interrupts */
 	hwc->config = event->attr.config & AMD64_RAW_EVENT_MASK_NB;
 	hwc->idx = -1;
 
@@ -306,7 +303,7 @@
 	.start		= amd_uncore_start,
 	.stop		= amd_uncore_stop,
 	.read		= amd_uncore_read,
-	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
+	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT,
 };
 
 static struct pmu amd_llc_pmu = {
@@ -317,7 +314,7 @@
 	.start		= amd_uncore_start,
 	.stop		= amd_uncore_stop,
 	.read		= amd_uncore_read,
-	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
+	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT,
 };
 
 static struct amd_uncore *amd_uncore_alloc(unsigned int cpu)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/core.c
@@ -375,7 +375,7 @@
 	 * LBR and BTS are still mutually exclusive.
 	 */
 	if (x86_pmu.lbr_pt_coexist && what == x86_lbr_exclusive_pt)
-		return 0;
+		goto out;
 
 	if (!atomic_inc_not_zero(&x86_pmu.lbr_exclusive[what])) {
 		mutex_lock(&pmc_reserve_mutex);
@@ -387,6 +387,7 @@
 		mutex_unlock(&pmc_reserve_mutex);
 	}
 
+out:
 	atomic_inc(&active_events);
 	return 0;
 
@@ -397,11 +398,15 @@
 
 void x86_del_exclusive(unsigned int what)
 {
+	atomic_dec(&active_events);
+
+	/*
+	 * See the comment in x86_add_exclusive().
+	 */
 	if (x86_pmu.lbr_pt_coexist && what == x86_lbr_exclusive_pt)
 		return;
 
 	atomic_dec(&x86_pmu.lbr_exclusive[what]);
-	atomic_dec(&active_events);
 }
 
 int x86_setup_perfctr(struct perf_event *event)
@@ -612,6 +617,7 @@
 	int idx;
 
 	for (idx = 0; idx < x86_pmu.num_counters; idx++) {
+		struct hw_perf_event *hwc = &cpuc->events[idx]->hw;
 		u64 val;
 
 		if (!test_bit(idx, cpuc->active_mask))
@@ -621,6 +627,8 @@
 			continue;
 		val &= ~ARCH_PERFMON_EVENTSEL_ENABLE;
 		wrmsrl(x86_pmu_config_addr(idx), val);
+		if (is_counter_pair(hwc))
+			wrmsrl(x86_pmu_config_addr(idx + 1), 0);
 	}
 }
 
@@ -693,7 +701,7 @@
 	int	counter;	/* counter index */
 	int	unassigned;	/* number of events to be assigned left */
 	int	nr_gp;		/* number of GP counters used */
-	unsigned long used[BITS_TO_LONGS(X86_PMC_IDX_MAX)];
+	u64	used;
 };
 
 /* Total max is X86_PMC_IDX_MAX, but we are O(n!) limited */
@@ -750,8 +758,12 @@
 	sched->saved_states--;
 	sched->state = sched->saved[sched->saved_states];
 
-	/* continue with next counter: */
-	clear_bit(sched->state.counter++, sched->state.used);
+	/* this assignment didn't work out */
+	/* XXX broken vs EVENT_PAIR */
+	sched->state.used &= ~BIT_ULL(sched->state.counter);
+
+	/* try the next one */
+	sched->state.counter++;
 
 	return true;
 }
@@ -776,20 +788,32 @@
 	if (c->idxmsk64 & (~0ULL << INTEL_PMC_IDX_FIXED)) {
 		idx = INTEL_PMC_IDX_FIXED;
 		for_each_set_bit_from(idx, c->idxmsk, X86_PMC_IDX_MAX) {
-			if (!__test_and_set_bit(idx, sched->state.used))
-				goto done;
+			u64 mask = BIT_ULL(idx);
+
+			if (sched->state.used & mask)
+				continue;
+
+			sched->state.used |= mask;
+			goto done;
 		}
 	}
 
 	/* Grab the first unused counter starting with idx */
 	idx = sched->state.counter;
 	for_each_set_bit_from(idx, c->idxmsk, INTEL_PMC_IDX_FIXED) {
-		if (!__test_and_set_bit(idx, sched->state.used)) {
-			if (sched->state.nr_gp++ >= sched->max_gp)
-				return false;
+		u64 mask = BIT_ULL(idx);
 
-			goto done;
-		}
+		if (c->flags & PERF_X86_EVENT_PAIR)
+			mask |= mask << 1;
+
+		if (sched->state.used & mask)
+			continue;
+
+		if (sched->state.nr_gp++ >= sched->max_gp)
+			return false;
+
+		sched->state.used |= mask;
+		goto done;
 	}
 
 	return false;
@@ -866,12 +890,10 @@
 int x86_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign)
 {
 	struct event_constraint *c;
-	unsigned long used_mask[BITS_TO_LONGS(X86_PMC_IDX_MAX)];
 	struct perf_event *e;
 	int n0, i, wmin, wmax, unsched = 0;
 	struct hw_perf_event *hwc;
-
-	bitmap_zero(used_mask, X86_PMC_IDX_MAX);
+	u64 used_mask = 0;
 
 	/*
 	 * Compute the number of events already present; see x86_pmu_add(),
@@ -914,6 +936,8 @@
 	 * fastpath, try to reuse previous register
 	 */
 	for (i = 0; i < n; i++) {
+		u64 mask;
+
 		hwc = &cpuc->event_list[i]->hw;
 		c = cpuc->event_constraint[i];
 
@@ -925,11 +949,16 @@
 		if (!test_bit(hwc->idx, c->idxmsk))
 			break;
 
+		mask = BIT_ULL(hwc->idx);
+		if (is_counter_pair(hwc))
+			mask |= mask << 1;
+
 		/* not already used */
-		if (test_bit(hwc->idx, used_mask))
+		if (used_mask & mask)
 			break;
 
-		__set_bit(hwc->idx, used_mask);
+		used_mask |= mask;
+
 		if (assign)
 			assign[i] = hwc->idx;
 	}
@@ -952,6 +981,15 @@
 		    READ_ONCE(cpuc->excl_cntrs->exclusive_present))
 			gpmax /= 2;
 
+		/*
+		 * Reduce the amount of available counters to allow fitting
+		 * the extra Merge events needed by large increment events.
+		 */
+		if (x86_pmu.flags & PMU_FL_PAIR) {
+			gpmax = x86_pmu.num_counters - cpuc->n_pair;
+			WARN_ON(gpmax <= 0);
+		}
+
 		unsched = perf_assign_events(cpuc->event_constraint, n, wmin,
 					     wmax, gpmax, assign);
 	}
@@ -1032,6 +1070,8 @@
 			return -EINVAL;
 		cpuc->event_list[n] = leader;
 		n++;
+		if (is_counter_pair(&leader->hw))
+			cpuc->n_pair++;
 	}
 	if (!dogrp)
 		return n;
@@ -1046,6 +1086,8 @@
 
 		cpuc->event_list[n] = event;
 		n++;
+		if (is_counter_pair(&event->hw))
+			cpuc->n_pair++;
 	}
 	return n;
 }
@@ -1232,6 +1274,13 @@
 	wrmsrl(hwc->event_base, (u64)(-left) & x86_pmu.cntval_mask);
 
 	/*
+	 * Clear the Merge event counter's upper 16 bits since
+	 * we currently declare a 48-bit counter width
+	 */
+	if (is_counter_pair(hwc))
+		wrmsrl(x86_pmu_event_addr(idx + 1), 0);
+
+	/*
 	 * Due to erratum on certan cpu we need
 	 * a second write to be sure the register
 	 * is updated properly
@@ -1641,9 +1690,12 @@
 
 ssize_t events_sysfs_show(struct device *dev, struct device_attribute *attr, char *page)
 {
-	struct perf_pmu_events_attr *pmu_attr = \
+	struct perf_pmu_events_attr *pmu_attr =
 		container_of(attr, struct perf_pmu_events_attr, attr);
-	u64 config = x86_pmu.event_map(pmu_attr->id);
+	u64 config = 0;
+
+	if (pmu_attr->id < x86_pmu.max_events)
+		config = x86_pmu.event_map(pmu_attr->id);
 
 	/* string trumps id */
 	if (pmu_attr->event_str)
@@ -1712,6 +1764,9 @@
 {
 	struct perf_pmu_events_attr *pmu_attr;
 
+	if (idx >= x86_pmu.max_events)
+		return 0;
+
 	pmu_attr = container_of(attr, struct perf_pmu_events_attr, attr.attr);
 	/* str trumps id */
 	return pmu_attr->event_str || x86_pmu.event_map(idx) ? attr->mode : 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/Makefile
@@ -2,8 +2,6 @@
 obj-$(CONFIG_CPU_SUP_INTEL)		+= core.o bts.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= ds.o knc.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= lbr.o p4.o p6.o pt.o
-obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL)	+= intel-rapl-perf.o
-intel-rapl-perf-objs			:= rapl.o
 obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE)	+= intel-uncore.o
 intel-uncore-objs			:= uncore.o uncore_nhmex.o uncore_snb.o uncore_snbep.o
 obj-$(CONFIG_PERF_EVENTS_INTEL_CSTATE)	+= intel-cstate.o
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/bts.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/bts.c
@@ -63,9 +63,17 @@
 
 static struct pmu bts_pmu;
 
+static int buf_nr_pages(struct page *page)
+{
+	if (!PagePrivate(page))
+		return 1;
+
+	return 1 << page_private(page);
+}
+
 static size_t buf_size(struct page *page)
 {
-	return 1 << (PAGE_SHIFT + page_private(page));
+	return buf_nr_pages(page) * PAGE_SIZE;
 }
 
 static void *
@@ -83,9 +91,7 @@
 	/* count all the high order buffers */
 	for (pg = 0, nbuf = 0; pg < nr_pages;) {
 		page = virt_to_page(pages[pg]);
-		if (WARN_ON_ONCE(!PagePrivate(page) && nr_pages > 1))
-			return NULL;
-		pg += 1 << page_private(page);
+		pg += buf_nr_pages(page);
 		nbuf++;
 	}
 
@@ -109,7 +115,7 @@
 		unsigned int __nr_pages;
 
 		page = virt_to_page(pages[pg]);
-		__nr_pages = PagePrivate(page) ? 1 << page_private(page) : 1;
+		__nr_pages = buf_nr_pages(page);
 		buf->buf[nbuf].page = page;
 		buf->buf[nbuf].offset = offset;
 		buf->buf[nbuf].displacement = (pad ? BTS_RECORD_SIZE - pad : 0);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/core.c
@@ -243,7 +243,7 @@
 
 static struct event_constraint intel_icl_event_constraints[] = {
 	FIXED_EVENT_CONSTRAINT(0x00c0, 0),	/* INST_RETIRED.ANY */
-	INTEL_UEVENT_CONSTRAINT(0x1c0, 0),	/* INST_RETIRED.PREC_DIST */
+	FIXED_EVENT_CONSTRAINT(0x01c0, 0),	/* INST_RETIRED.PREC_DIST */
 	FIXED_EVENT_CONSTRAINT(0x003c, 1),	/* CPU_CLK_UNHALTED.CORE */
 	FIXED_EVENT_CONSTRAINT(0x0300, 2),	/* CPU_CLK_UNHALTED.REF */
 	FIXED_EVENT_CONSTRAINT(0x0400, 3),	/* SLOTS */
@@ -253,7 +253,8 @@
 	INTEL_EVENT_CONSTRAINT_RANGE(0x48, 0x54, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0x60, 0x8b, 0xf),
 	INTEL_UEVENT_CONSTRAINT(0x04a3, 0xff),  /* CYCLE_ACTIVITY.STALLS_TOTAL */
-	INTEL_UEVENT_CONSTRAINT(0x10a3, 0xff),  /* CYCLE_ACTIVITY.STALLS_MEM_ANY */
+	INTEL_UEVENT_CONSTRAINT(0x10a3, 0xff),  /* CYCLE_ACTIVITY.CYCLES_MEM_ANY */
+	INTEL_UEVENT_CONSTRAINT(0x14a3, 0xff),  /* CYCLE_ACTIVITY.STALLS_MEM_ANY */
 	INTEL_EVENT_CONSTRAINT(0xa3, 0xf),      /* CYCLE_ACTIVITY.* */
 	INTEL_EVENT_CONSTRAINT_RANGE(0xa8, 0xb0, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0xb7, 0xbd, 0xf),
@@ -1892,8 +1893,8 @@
 
 static struct extra_reg intel_tnt_extra_regs[] __read_mostly = {
 	/* must define OFFCORE_RSP_X first, see intel_fixup_er() */
-	INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0xffffff9fffull, RSP_0),
-	INTEL_UEVENT_EXTRA_REG(0x02b7, MSR_OFFCORE_RSP_1, 0xffffff9fffull, RSP_1),
+	INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0x800ff0ffffff9fffull, RSP_0),
+	INTEL_UEVENT_EXTRA_REG(0x02b7, MSR_OFFCORE_RSP_1, 0xff0ffffff9fffull, RSP_1),
 	EVENT_EXTRA_END
 };
 
@@ -4001,6 +4002,9 @@
 	INTEL_CPU_DESC(INTEL_FAM6_BROADWELL_X,		 2, 0x0b000014),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 3, 0x00000021),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 4, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 5, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 6, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 7, 0x00000000),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_L,		 3, 0x0000007c),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE,		 3, 0x0000007c),
 	INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE,		 9, 0x0000004e),
@@ -4746,6 +4750,7 @@
 		break;
 
 	case INTEL_FAM6_ATOM_TREMONT_D:
+	case INTEL_FAM6_ATOM_TREMONT:
 		x86_pmu.late_ack = true;
 		memcpy(hw_cache_event_ids, glp_hw_cache_event_ids,
 		       sizeof(hw_cache_event_ids));
@@ -5056,7 +5061,7 @@
 		extra_skl_attr = skl_format_attr;
 		mem_attr = icl_events_attrs;
 		tsx_attr = icl_tsx_events_attrs;
-		x86_pmu.rtm_abort_event = X86_CONFIG(.event=0xca, .umask=0x02);
+		x86_pmu.rtm_abort_event = X86_CONFIG(.event=0xc9, .umask=0x04);
 		x86_pmu.lbr_pt_coexist = true;
 		intel_pmu_pebs_data_source_skl(pmem);
 		pr_cont("Icelake events, ");
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/cstate.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/cstate.c
@@ -40,17 +40,18 @@
  * Model specific counters:
  *	MSR_CORE_C1_RES: CORE C1 Residency Counter
  *			 perf code: 0x00
- *			 Available model: SLM,AMT,GLM,CNL
+ *			 Available model: SLM,AMT,GLM,CNL,TNT
  *			 Scope: Core (each processor core has a MSR)
  *	MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter
  *			       perf code: 0x01
  *			       Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM,
- *						CNL,KBL,CML
+ *						CNL,KBL,CML,TNT
  *			       Scope: Core
  *	MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter
  *			       perf code: 0x02
  *			       Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW,
- *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL
+ *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL,
+ *						TNT
  *			       Scope: Core
  *	MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter
  *			       perf code: 0x03
@@ -60,17 +61,18 @@
  *	MSR_PKG_C2_RESIDENCY:  Package C2 Residency Counter.
  *			       perf code: 0x00
  *			       Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM,CNL,
- *						KBL,CML,ICL,TGL
+ *						KBL,CML,ICL,TGL,TNT
  *			       Scope: Package (physical package)
  *	MSR_PKG_C3_RESIDENCY:  Package C3 Residency Counter.
  *			       perf code: 0x01
  *			       Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL,
- *						GLM,CNL,KBL,CML,ICL,TGL
+ *						GLM,CNL,KBL,CML,ICL,TGL,TNT
  *			       Scope: Package (physical package)
  *	MSR_PKG_C6_RESIDENCY:  Package C6 Residency Counter.
  *			       perf code: 0x02
- *			       Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW
- *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL
+ *			       Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW,
+ *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL,
+ *						TNT
  *			       Scope: Package (physical package)
  *	MSR_PKG_C7_RESIDENCY:  Package C7 Residency Counter.
  *			       perf code: 0x03
@@ -87,7 +89,8 @@
  *			       Scope: Package (physical package)
  *	MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter.
  *			       perf code: 0x06
- *			       Available model: HSW ULT,KBL,GLM,CNL,CML,ICL,TGL
+ *			       Available model: HSW ULT,KBL,GLM,CNL,CML,ICL,TGL,
+ *						TNT
  *			       Scope: Package (physical package)
  *
  */
@@ -104,14 +107,14 @@
 MODULE_LICENSE("GPL");
 
 #define DEFINE_CSTATE_FORMAT_ATTR(_var, _name, _format)		\
-static ssize_t __cstate_##_var##_show(struct kobject *kobj,	\
-				struct kobj_attribute *attr,	\
+static ssize_t __cstate_##_var##_show(struct device *dev,	\
+				struct device_attribute *attr,	\
 				char *page)			\
 {								\
 	BUILD_BUG_ON(sizeof(_format) >= PAGE_SIZE);		\
 	return sprintf(page, _format "\n");			\
 }								\
-static struct kobj_attribute format_attr_##_var =		\
+static struct device_attribute format_attr_##_var =		\
 	__ATTR(_name, 0444, __cstate_##_var##_show, NULL)
 
 static ssize_t cstate_get_attr_cpumask(struct device *dev,
@@ -640,8 +643,9 @@
 
 	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT,   glm_cstates),
 	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT_D, glm_cstates),
-
 	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT_PLUS, glm_cstates),
+	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_TREMONT_D, glm_cstates),
+	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_TREMONT, glm_cstates),
 
 	X86_CSTATES_MODEL(INTEL_FAM6_ICELAKE_L, icl_cstates),
 	X86_CSTATES_MODEL(INTEL_FAM6_ICELAKE,   icl_cstates),
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/ds.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/ds.c
@@ -669,9 +669,7 @@
 
 static inline void intel_pmu_drain_pebs_buffer(void)
 {
-	struct pt_regs regs;
-
-	x86_pmu.drain_pebs(&regs);
+	x86_pmu.drain_pebs(NULL);
 }
 
 /*
@@ -1713,6 +1711,8 @@
 	old = ((s64)(prev_raw_count << shift) >> shift);
 	local64_add(new - old + count * period, &event->count);
 
+	local64_set(&hwc->period_left, -new);
+
 	perf_event_update_userpage(event);
 
 	return 0;
@@ -1734,6 +1734,7 @@
 	struct x86_perf_regs perf_regs;
 	struct pt_regs *regs = &perf_regs.regs;
 	void *at = get_next_pebs_record_by_bit(base, top, bit);
+	struct pt_regs dummy_iregs;
 
 	if (hwc->flags & PERF_X86_EVENT_AUTO_RELOAD) {
 		/*
@@ -1746,6 +1747,9 @@
 	} else if (!intel_pmu_save_and_restart(event))
 		return;
 
+	if (!iregs)
+		iregs = &dummy_iregs;
+
 	while (count > 1) {
 		setup_sample(event, iregs, at, &data, regs);
 		perf_event_output(event, &data, regs);
@@ -1755,16 +1759,22 @@
 	}
 
 	setup_sample(event, iregs, at, &data, regs);
-
-	/*
-	 * All but the last records are processed.
-	 * The last one is left to be able to call the overflow handler.
-	 */
-	if (perf_event_overflow(event, &data, regs)) {
-		x86_pmu_stop(event, 0);
-		return;
+	if (iregs == &dummy_iregs) {
+		/*
+		 * The PEBS records may be drained in the non-overflow context,
+		 * e.g., large PEBS + context switch. Perf should treat the
+		 * last record the same as other PEBS records, and doesn't
+		 * invoke the generic overflow handler.
+		 */
+		perf_event_output(event, &data, regs);
+	} else {
+		/*
+		 * All but the last records are processed.
+		 * The last one is left to be able to call the overflow handler.
+		 */
+		if (perf_event_overflow(event, &data, regs))
+			x86_pmu_stop(event, 0);
 	}
-
 }
 
 static void intel_pmu_drain_pebs_core(struct pt_regs *iregs)
@@ -1902,7 +1912,7 @@
 		 * that caused the PEBS record. It's called collision.
 		 * If collision happened, the record will be dropped.
 		 */
-		if (p->status != (1ULL << bit)) {
+		if (pebs_status != (1ULL << bit)) {
 			for_each_set_bit(i, (unsigned long *)&pebs_status, size)
 				error[i]++;
 			continue;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/uncore.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/uncore.c
@@ -92,8 +92,8 @@
 	return map;
 }
 
-ssize_t uncore_event_show(struct kobject *kobj,
-			  struct kobj_attribute *attr, char *buf)
+ssize_t uncore_event_show(struct device *dev,
+			  struct device_attribute *attr, char *buf)
 {
 	struct uncore_event_desc *event =
 		container_of(attr, struct uncore_event_desc, attr);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/uncore.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/uncore.h
@@ -144,7 +144,7 @@
 #define UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS	2
 
 struct uncore_event_desc {
-	struct kobj_attribute attr;
+	struct device_attribute attr;
 	const char *config;
 };
 
@@ -165,8 +165,8 @@
 struct pci2phy_map *__find_pci2phy_map(int segment);
 int uncore_pcibus_to_physid(struct pci_bus *bus);
 
-ssize_t uncore_event_show(struct kobject *kobj,
-			  struct kobj_attribute *attr, char *buf);
+ssize_t uncore_event_show(struct device *dev,
+			  struct device_attribute *attr, char *buf);
 
 #define INTEL_UNCORE_EVENT_DESC(_name, _config)			\
 {								\
@@ -175,14 +175,14 @@
 }
 
 #define DEFINE_UNCORE_FORMAT_ATTR(_var, _name, _format)			\
-static ssize_t __uncore_##_var##_show(struct kobject *kobj,		\
-				struct kobj_attribute *attr,		\
+static ssize_t __uncore_##_var##_show(struct device *dev,		\
+				struct device_attribute *attr,		\
 				char *page)				\
 {									\
 	BUILD_BUG_ON(sizeof(_format) >= PAGE_SIZE);			\
 	return sprintf(page, _format "\n");				\
 }									\
-static struct kobj_attribute format_attr_##_var =			\
+static struct device_attribute format_attr_##_var =			\
 	__ATTR(_name, 0444, __uncore_##_var##_show, NULL)
 
 static inline bool uncore_pmc_fixed(int idx)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/uncore_snb.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/uncore_snb.c
@@ -15,6 +15,7 @@
 #define PCI_DEVICE_ID_INTEL_SKL_HQ_IMC		0x1910
 #define PCI_DEVICE_ID_INTEL_SKL_SD_IMC		0x190f
 #define PCI_DEVICE_ID_INTEL_SKL_SQ_IMC		0x191f
+#define PCI_DEVICE_ID_INTEL_SKL_E3_IMC		0x1918
 #define PCI_DEVICE_ID_INTEL_KBL_Y_IMC		0x590c
 #define PCI_DEVICE_ID_INTEL_KBL_U_IMC		0x5904
 #define PCI_DEVICE_ID_INTEL_KBL_UQ_IMC		0x5914
@@ -109,6 +110,10 @@
 #define ICL_UNC_CBO_0_PER_CTR0			0x702
 #define ICL_UNC_CBO_MSR_OFFSET			0x8
 
+/* ICL ARB register */
+#define ICL_UNC_ARB_PER_CTR			0x3b1
+#define ICL_UNC_ARB_PERFEVTSEL			0x3b3
+
 DEFINE_UNCORE_FORMAT_ATTR(event, event, "config:0-7");
 DEFINE_UNCORE_FORMAT_ATTR(umask, umask, "config:8-15");
 DEFINE_UNCORE_FORMAT_ATTR(edge, edge, "config:18");
@@ -296,15 +301,21 @@
 	snb_uncore_arb.ops = &skl_uncore_msr_ops;
 }
 
+static struct intel_uncore_ops icl_uncore_msr_ops = {
+	.disable_event	= snb_uncore_msr_disable_event,
+	.enable_event	= snb_uncore_msr_enable_event,
+	.read_counter	= uncore_msr_read_counter,
+};
+
 static struct intel_uncore_type icl_uncore_cbox = {
 	.name		= "cbox",
-	.num_counters   = 4,
+	.num_counters   = 2,
 	.perf_ctr_bits	= 44,
 	.perf_ctr	= ICL_UNC_CBO_0_PER_CTR0,
 	.event_ctl	= SNB_UNC_CBO_0_PERFEVTSEL0,
 	.event_mask	= SNB_UNC_RAW_EVENT_MASK,
 	.msr_offset	= ICL_UNC_CBO_MSR_OFFSET,
-	.ops		= &skl_uncore_msr_ops,
+	.ops		= &icl_uncore_msr_ops,
 	.format_group	= &snb_uncore_format_group,
 };
 
@@ -333,13 +344,25 @@
 	.single_fixed	= 1,
 	.event_mask	= SNB_UNC_CTL_EV_SEL_MASK,
 	.format_group	= &icl_uncore_clock_format_group,
-	.ops		= &skl_uncore_msr_ops,
+	.ops		= &icl_uncore_msr_ops,
 	.event_descs	= icl_uncore_events,
 };
 
+static struct intel_uncore_type icl_uncore_arb = {
+	.name		= "arb",
+	.num_counters   = 1,
+	.num_boxes	= 1,
+	.perf_ctr_bits	= 44,
+	.perf_ctr	= ICL_UNC_ARB_PER_CTR,
+	.event_ctl	= ICL_UNC_ARB_PERFEVTSEL,
+	.event_mask	= SNB_UNC_RAW_EVENT_MASK,
+	.ops		= &icl_uncore_msr_ops,
+	.format_group	= &snb_uncore_format_group,
+};
+
 static struct intel_uncore_type *icl_msr_uncores[] = {
 	&icl_uncore_cbox,
-	&snb_uncore_arb,
+	&icl_uncore_arb,
 	&icl_uncore_clockbox,
 	NULL,
 };
@@ -357,7 +380,6 @@
 {
 	uncore_msr_uncores = icl_msr_uncores;
 	icl_uncore_cbox.num_boxes = icl_get_cbox_num();
-	snb_uncore_arb.ops = &skl_uncore_msr_ops;
 }
 
 enum {
@@ -658,6 +680,10 @@
 		.driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0),
 	},
 	{ /* IMC */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SKL_E3_IMC),
+		.driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0),
+	},
+	{ /* IMC */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KBL_Y_IMC),
 		.driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0),
 	},
@@ -826,6 +852,7 @@
 	IMC_DEV(SKL_HQ_IMC, &skl_uncore_pci_driver),  /* 6th Gen Core H Quad Core */
 	IMC_DEV(SKL_SD_IMC, &skl_uncore_pci_driver),  /* 6th Gen Core S Dual Core */
 	IMC_DEV(SKL_SQ_IMC, &skl_uncore_pci_driver),  /* 6th Gen Core S Quad Core */
+	IMC_DEV(SKL_E3_IMC, &skl_uncore_pci_driver),  /* Xeon E3 V5 Gen Core processor */
 	IMC_DEV(KBL_Y_IMC, &skl_uncore_pci_driver),  /* 7th Gen Core Y */
 	IMC_DEV(KBL_U_IMC, &skl_uncore_pci_driver),  /* 7th Gen Core U */
 	IMC_DEV(KBL_UQ_IMC, &skl_uncore_pci_driver),  /* 7th Gen Core U Quad Core */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/intel/uncore_snbep.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/intel/uncore_snbep.c
@@ -369,11 +369,6 @@
 #define SNR_M2M_PCI_PMON_BOX_CTL		0x438
 #define SNR_M2M_PCI_PMON_UMASK_EXT		0xff
 
-/* SNR PCIE3 */
-#define SNR_PCIE3_PCI_PMON_CTL0			0x508
-#define SNR_PCIE3_PCI_PMON_CTR0			0x4e8
-#define SNR_PCIE3_PCI_PMON_BOX_CTL		0x4e4
-
 /* SNR IMC */
 #define SNR_IMC_MMIO_PMON_FIXED_CTL		0x54
 #define SNR_IMC_MMIO_PMON_FIXED_CTR		0x38
@@ -4328,27 +4323,12 @@
 	.format_group	= &snr_m2m_uncore_format_group,
 };
 
-static struct intel_uncore_type snr_uncore_pcie3 = {
-	.name		= "pcie3",
-	.num_counters	= 4,
-	.num_boxes	= 1,
-	.perf_ctr_bits	= 48,
-	.perf_ctr	= SNR_PCIE3_PCI_PMON_CTR0,
-	.event_ctl	= SNR_PCIE3_PCI_PMON_CTL0,
-	.event_mask	= SNBEP_PMON_RAW_EVENT_MASK,
-	.box_ctl	= SNR_PCIE3_PCI_PMON_BOX_CTL,
-	.ops		= &ivbep_uncore_pci_ops,
-	.format_group	= &ivbep_uncore_format_group,
-};
-
 enum {
 	SNR_PCI_UNCORE_M2M,
-	SNR_PCI_UNCORE_PCIE3,
 };
 
 static struct intel_uncore_type *snr_pci_uncores[] = {
 	[SNR_PCI_UNCORE_M2M]		= &snr_uncore_m2m,
-	[SNR_PCI_UNCORE_PCIE3]		= &snr_uncore_pcie3,
 	NULL,
 };
 
@@ -4357,10 +4337,6 @@
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x344a),
 		.driver_data = UNCORE_PCI_DEV_FULL_DATA(12, 0, SNR_PCI_UNCORE_M2M, 0),
 	},
-	{ /* PCIe3 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x334a),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(4, 0, SNR_PCI_UNCORE_PCIE3, 0),
-	},
 	{ /* end: all zeroes */ }
 };
 
@@ -4536,6 +4512,7 @@
 	INTEL_UNCORE_EVENT_DESC(write,		"event=0xff,umask=0x21"),
 	INTEL_UNCORE_EVENT_DESC(write.scale,	"3.814697266e-6"),
 	INTEL_UNCORE_EVENT_DESC(write.unit,	"MiB"),
+	{ /* end: all zeroes */ },
 };
 
 static struct intel_uncore_ops snr_uncore_imc_freerunning_ops = {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/msr.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/msr.c
@@ -75,8 +75,9 @@
 
 	case INTEL_FAM6_ATOM_GOLDMONT:
 	case INTEL_FAM6_ATOM_GOLDMONT_D:
-
 	case INTEL_FAM6_ATOM_GOLDMONT_PLUS:
+	case INTEL_FAM6_ATOM_TREMONT_D:
+	case INTEL_FAM6_ATOM_TREMONT:
 
 	case INTEL_FAM6_XEON_PHI_KNL:
 	case INTEL_FAM6_XEON_PHI_KNM:
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/perf_event.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/perf_event.h
@@ -77,6 +77,7 @@
 #define PERF_X86_EVENT_AUTO_RELOAD	0x0200 /* use PEBS auto-reload */
 #define PERF_X86_EVENT_LARGE_PEBS	0x0400 /* use large PEBS */
 #define PERF_X86_EVENT_PEBS_VIA_PT	0x0800 /* use PT buffer for PEBS */
+#define PERF_X86_EVENT_PAIR		0x1000 /* Large Increment per Cycle */
 
 struct amd_nb {
 	int nb_id;  /* NorthBridge id */
@@ -272,6 +273,7 @@
 	struct amd_nb			*amd_nb;
 	/* Inverted mask of bits to clear in the perf_ctr ctrl registers */
 	u64				perf_ctr_virt_mask;
+	int				n_pair; /* Large increment events */
 
 	void				*kfree_on_online[X86_PERF_KFREE_MAX];
 };
@@ -686,6 +688,7 @@
 	 * AMD bits
 	 */
 	unsigned int	amd_nb_constraints : 1;
+	u64		perf_ctr_pair_en;
 
 	/*
 	 * Extra registers for events
@@ -735,6 +738,7 @@
 #define PMU_FL_EXCL_ENABLED	0x8 /* exclusive counter active */
 #define PMU_FL_PEBS_ALL		0x10 /* all events are valid PEBS events */
 #define PMU_FL_TFA		0x20 /* deal with TSX force abort */
+#define PMU_FL_PAIR		0x40 /* merge counters for large incr. events */
 
 #define EVENT_VAR(_id)  event_attr_##_id
 #define EVENT_PTR(_id) &event_attr_##_id.attr.attr
@@ -830,6 +834,11 @@
 
 void x86_pmu_disable_all(void);
 
+static inline bool is_counter_pair(struct hw_perf_event *hwc)
+{
+	return hwc->flags & PERF_X86_EVENT_PAIR;
+}
+
 static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc,
 					  u64 enable_mask)
 {
@@ -837,6 +846,14 @@
 
 	if (hwc->extra_reg.reg)
 		wrmsrl(hwc->extra_reg.reg, hwc->extra_reg.config);
+
+	/*
+	 * Add enabled Merge event on next counter
+	 * if large increment event being enabled on this counter
+	 */
+	if (is_counter_pair(hwc))
+		wrmsrl(x86_pmu_config_addr(hwc->idx + 1), x86_pmu.perf_ctr_pair_en);
+
 	wrmsrl(hwc->config_base, (hwc->config | enable_mask) & ~disable_mask);
 }
 
@@ -853,6 +870,9 @@
 	struct hw_perf_event *hwc = &event->hw;
 
 	wrmsrl(hwc->config_base, hwc->config);
+
+	if (is_counter_pair(hwc))
+		wrmsrl(x86_pmu_config_addr(hwc->idx + 1), 0);
 }
 
 void x86_pmu_enable_event(struct perf_event *event);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/events/rapl.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/events/rapl.c
@@ -0,0 +1,793 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Support Intel/AMD RAPL energy consumption counters
+ * Copyright (C) 2013 Google, Inc., Stephane Eranian
+ *
+ * Intel RAPL interface is specified in the IA-32 Manual Vol3b
+ * section 14.7.1 (September 2013)
+ *
+ * AMD RAPL interface for Fam17h is described in the public PPR:
+ * https://bugzilla.kernel.org/show_bug.cgi?id=206537
+ *
+ * RAPL provides more controls than just reporting energy consumption
+ * however here we only expose the 3 energy consumption free running
+ * counters (pp0, pkg, dram).
+ *
+ * Each of those counters increments in a power unit defined by the
+ * RAPL_POWER_UNIT MSR. On SandyBridge, this unit is 1/(2^16) Joules
+ * but it can vary.
+ *
+ * Counter to rapl events mappings:
+ *
+ *  pp0 counter: consumption of all physical cores (power plane 0)
+ * 	  event: rapl_energy_cores
+ *    perf code: 0x1
+ *
+ *  pkg counter: consumption of the whole processor package
+ *	  event: rapl_energy_pkg
+ *    perf code: 0x2
+ *
+ * dram counter: consumption of the dram domain (servers only)
+ *	  event: rapl_energy_dram
+ *    perf code: 0x3
+ *
+ * gpu counter: consumption of the builtin-gpu domain (client only)
+ *	  event: rapl_energy_gpu
+ *    perf code: 0x4
+ *
+ *  psys counter: consumption of the builtin-psys domain (client only)
+ *	  event: rapl_energy_psys
+ *    perf code: 0x5
+ *
+ * We manage those counters as free running (read-only). They may be
+ * use simultaneously by other tools, such as turbostat.
+ *
+ * The events only support system-wide mode counting. There is no
+ * sampling support because it does not make sense and is not
+ * supported by the RAPL hardware.
+ *
+ * Because we want to avoid floating-point operations in the kernel,
+ * the events are all reported in fixed point arithmetic (32.32).
+ * Tools must adjust the counts to convert them to Watts using
+ * the duration of the measurement. Tools may use a function such as
+ * ldexp(raw_count, -32);
+ */
+
+#define pr_fmt(fmt) "RAPL PMU: " fmt
+
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/perf_event.h>
+#include <linux/nospec.h>
+#include <asm/cpu_device_id.h>
+#include <asm/intel-family.h>
+#include "perf_event.h"
+#include "probe.h"
+
+MODULE_LICENSE("GPL");
+
+/*
+ * RAPL energy status counters
+ */
+enum perf_rapl_events {
+	PERF_RAPL_PP0 = 0,		/* all cores */
+	PERF_RAPL_PKG,			/* entire package */
+	PERF_RAPL_RAM,			/* DRAM */
+	PERF_RAPL_PP1,			/* gpu */
+	PERF_RAPL_PSYS,			/* psys */
+
+	PERF_RAPL_MAX,
+	NR_RAPL_DOMAINS = PERF_RAPL_MAX,
+};
+
+static const char *const rapl_domain_names[NR_RAPL_DOMAINS] __initconst = {
+	"pp0-core",
+	"package",
+	"dram",
+	"pp1-gpu",
+	"psys",
+};
+
+/*
+ * event code: LSB 8 bits, passed in attr->config
+ * any other bit is reserved
+ */
+#define RAPL_EVENT_MASK	0xFFULL
+#define RAPL_CNTR_WIDTH 32
+
+#define RAPL_EVENT_ATTR_STR(_name, v, str)					\
+static struct perf_pmu_events_attr event_attr_##v = {				\
+	.attr		= __ATTR(_name, 0444, perf_event_sysfs_show, NULL),	\
+	.id		= 0,							\
+	.event_str	= str,							\
+};
+
+struct rapl_pmu {
+	raw_spinlock_t		lock;
+	int			n_active;
+	int			cpu;
+	struct list_head	active_list;
+	struct pmu		*pmu;
+	ktime_t			timer_interval;
+	struct hrtimer		hrtimer;
+};
+
+struct rapl_pmus {
+	struct pmu		pmu;
+	unsigned int		maxdie;
+	struct rapl_pmu		*pmus[];
+};
+
+struct rapl_model {
+	unsigned long	events;
+	bool		apply_quirk;
+};
+
+ /* 1/2^hw_unit Joule */
+static int rapl_hw_unit[NR_RAPL_DOMAINS] __read_mostly;
+static struct rapl_pmus *rapl_pmus;
+static cpumask_t rapl_cpu_mask;
+static unsigned int rapl_cntr_mask;
+static u64 rapl_timer_ms;
+static struct perf_msr rapl_msrs[];
+
+static inline struct rapl_pmu *cpu_to_rapl_pmu(unsigned int cpu)
+{
+	unsigned int dieid = topology_logical_die_id(cpu);
+
+	/*
+	 * The unsigned check also catches the '-1' return value for non
+	 * existent mappings in the topology map.
+	 */
+	return dieid < rapl_pmus->maxdie ? rapl_pmus->pmus[dieid] : NULL;
+}
+
+static inline u64 rapl_read_counter(struct perf_event *event)
+{
+	u64 raw;
+	rdmsrl(event->hw.event_base, raw);
+	return raw;
+}
+
+static inline u64 rapl_scale(u64 v, int cfg)
+{
+	if (cfg > NR_RAPL_DOMAINS) {
+		pr_warn("Invalid domain %d, failed to scale data\n", cfg);
+		return v;
+	}
+	/*
+	 * scale delta to smallest unit (1/2^32)
+	 * users must then scale back: count * 1/(1e9*2^32) to get Joules
+	 * or use ldexp(count, -32).
+	 * Watts = Joules/Time delta
+	 */
+	return v << (32 - rapl_hw_unit[cfg - 1]);
+}
+
+static u64 rapl_event_update(struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+	u64 prev_raw_count, new_raw_count;
+	s64 delta, sdelta;
+	int shift = RAPL_CNTR_WIDTH;
+
+again:
+	prev_raw_count = local64_read(&hwc->prev_count);
+	rdmsrl(event->hw.event_base, new_raw_count);
+
+	if (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
+			    new_raw_count) != prev_raw_count) {
+		cpu_relax();
+		goto again;
+	}
+
+	/*
+	 * Now we have the new raw value and have updated the prev
+	 * timestamp already. We can now calculate the elapsed delta
+	 * (event-)time and add that to the generic event.
+	 *
+	 * Careful, not all hw sign-extends above the physical width
+	 * of the count.
+	 */
+	delta = (new_raw_count << shift) - (prev_raw_count << shift);
+	delta >>= shift;
+
+	sdelta = rapl_scale(delta, event->hw.config);
+
+	local64_add(sdelta, &event->count);
+
+	return new_raw_count;
+}
+
+static void rapl_start_hrtimer(struct rapl_pmu *pmu)
+{
+       hrtimer_start(&pmu->hrtimer, pmu->timer_interval,
+		     HRTIMER_MODE_REL_PINNED);
+}
+
+static enum hrtimer_restart rapl_hrtimer_handle(struct hrtimer *hrtimer)
+{
+	struct rapl_pmu *pmu = container_of(hrtimer, struct rapl_pmu, hrtimer);
+	struct perf_event *event;
+	unsigned long flags;
+
+	if (!pmu->n_active)
+		return HRTIMER_NORESTART;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+
+	list_for_each_entry(event, &pmu->active_list, active_entry)
+		rapl_event_update(event);
+
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+
+	hrtimer_forward_now(hrtimer, pmu->timer_interval);
+
+	return HRTIMER_RESTART;
+}
+
+static void rapl_hrtimer_init(struct rapl_pmu *pmu)
+{
+	struct hrtimer *hr = &pmu->hrtimer;
+
+	hrtimer_init(hr, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	hr->function = rapl_hrtimer_handle;
+}
+
+static void __rapl_pmu_event_start(struct rapl_pmu *pmu,
+				   struct perf_event *event)
+{
+	if (WARN_ON_ONCE(!(event->hw.state & PERF_HES_STOPPED)))
+		return;
+
+	event->hw.state = 0;
+
+	list_add_tail(&event->active_entry, &pmu->active_list);
+
+	local64_set(&event->hw.prev_count, rapl_read_counter(event));
+
+	pmu->n_active++;
+	if (pmu->n_active == 1)
+		rapl_start_hrtimer(pmu);
+}
+
+static void rapl_pmu_event_start(struct perf_event *event, int mode)
+{
+	struct rapl_pmu *pmu = event->pmu_private;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+	__rapl_pmu_event_start(pmu, event);
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+}
+
+static void rapl_pmu_event_stop(struct perf_event *event, int mode)
+{
+	struct rapl_pmu *pmu = event->pmu_private;
+	struct hw_perf_event *hwc = &event->hw;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+
+	/* mark event as deactivated and stopped */
+	if (!(hwc->state & PERF_HES_STOPPED)) {
+		WARN_ON_ONCE(pmu->n_active <= 0);
+		pmu->n_active--;
+		if (pmu->n_active == 0)
+			hrtimer_cancel(&pmu->hrtimer);
+
+		list_del(&event->active_entry);
+
+		WARN_ON_ONCE(hwc->state & PERF_HES_STOPPED);
+		hwc->state |= PERF_HES_STOPPED;
+	}
+
+	/* check if update of sw counter is necessary */
+	if ((mode & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) {
+		/*
+		 * Drain the remaining delta count out of a event
+		 * that we are disabling:
+		 */
+		rapl_event_update(event);
+		hwc->state |= PERF_HES_UPTODATE;
+	}
+
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+}
+
+static int rapl_pmu_event_add(struct perf_event *event, int mode)
+{
+	struct rapl_pmu *pmu = event->pmu_private;
+	struct hw_perf_event *hwc = &event->hw;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+
+	hwc->state = PERF_HES_UPTODATE | PERF_HES_STOPPED;
+
+	if (mode & PERF_EF_START)
+		__rapl_pmu_event_start(pmu, event);
+
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+
+	return 0;
+}
+
+static void rapl_pmu_event_del(struct perf_event *event, int flags)
+{
+	rapl_pmu_event_stop(event, PERF_EF_UPDATE);
+}
+
+static int rapl_pmu_event_init(struct perf_event *event)
+{
+	u64 cfg = event->attr.config & RAPL_EVENT_MASK;
+	int bit, ret = 0;
+	struct rapl_pmu *pmu;
+
+	/* only look at RAPL events */
+	if (event->attr.type != rapl_pmus->pmu.type)
+		return -ENOENT;
+
+	/* check only supported bits are set */
+	if (event->attr.config & ~RAPL_EVENT_MASK)
+		return -EINVAL;
+
+	if (event->cpu < 0)
+		return -EINVAL;
+
+	event->event_caps |= PERF_EV_CAP_READ_ACTIVE_PKG;
+
+	if (!cfg || cfg >= NR_RAPL_DOMAINS + 1)
+		return -EINVAL;
+
+	cfg = array_index_nospec((long)cfg, NR_RAPL_DOMAINS + 1);
+	bit = cfg - 1;
+
+	/* check event supported */
+	if (!(rapl_cntr_mask & (1 << bit)))
+		return -EINVAL;
+
+	/* unsupported modes and filters */
+	if (event->attr.sample_period) /* no sampling */
+		return -EINVAL;
+
+	/* must be done before validate_group */
+	pmu = cpu_to_rapl_pmu(event->cpu);
+	if (!pmu)
+		return -EINVAL;
+	event->cpu = pmu->cpu;
+	event->pmu_private = pmu;
+	event->hw.event_base = rapl_msrs[bit].msr;
+	event->hw.config = cfg;
+	event->hw.idx = bit;
+
+	return ret;
+}
+
+static void rapl_pmu_event_read(struct perf_event *event)
+{
+	rapl_event_update(event);
+}
+
+static ssize_t rapl_get_attr_cpumask(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	return cpumap_print_to_pagebuf(true, buf, &rapl_cpu_mask);
+}
+
+static DEVICE_ATTR(cpumask, S_IRUGO, rapl_get_attr_cpumask, NULL);
+
+static struct attribute *rapl_pmu_attrs[] = {
+	&dev_attr_cpumask.attr,
+	NULL,
+};
+
+static struct attribute_group rapl_pmu_attr_group = {
+	.attrs = rapl_pmu_attrs,
+};
+
+RAPL_EVENT_ATTR_STR(energy-cores, rapl_cores, "event=0x01");
+RAPL_EVENT_ATTR_STR(energy-pkg  ,   rapl_pkg, "event=0x02");
+RAPL_EVENT_ATTR_STR(energy-ram  ,   rapl_ram, "event=0x03");
+RAPL_EVENT_ATTR_STR(energy-gpu  ,   rapl_gpu, "event=0x04");
+RAPL_EVENT_ATTR_STR(energy-psys,   rapl_psys, "event=0x05");
+
+RAPL_EVENT_ATTR_STR(energy-cores.unit, rapl_cores_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-pkg.unit  ,   rapl_pkg_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-ram.unit  ,   rapl_ram_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-gpu.unit  ,   rapl_gpu_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-psys.unit,   rapl_psys_unit, "Joules");
+
+/*
+ * we compute in 0.23 nJ increments regardless of MSR
+ */
+RAPL_EVENT_ATTR_STR(energy-cores.scale, rapl_cores_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-pkg.scale,     rapl_pkg_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-ram.scale,     rapl_ram_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-gpu.scale,     rapl_gpu_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-psys.scale,   rapl_psys_scale, "2.3283064365386962890625e-10");
+
+/*
+ * There are no default events, but we need to create
+ * "events" group (with empty attrs) before updating
+ * it with detected events.
+ */
+static struct attribute *attrs_empty[] = {
+	NULL,
+};
+
+static struct attribute_group rapl_pmu_events_group = {
+	.name = "events",
+	.attrs = attrs_empty,
+};
+
+PMU_FORMAT_ATTR(event, "config:0-7");
+static struct attribute *rapl_formats_attr[] = {
+	&format_attr_event.attr,
+	NULL,
+};
+
+static struct attribute_group rapl_pmu_format_group = {
+	.name = "format",
+	.attrs = rapl_formats_attr,
+};
+
+static const struct attribute_group *rapl_attr_groups[] = {
+	&rapl_pmu_attr_group,
+	&rapl_pmu_format_group,
+	&rapl_pmu_events_group,
+	NULL,
+};
+
+static struct attribute *rapl_events_cores[] = {
+	EVENT_PTR(rapl_cores),
+	EVENT_PTR(rapl_cores_unit),
+	EVENT_PTR(rapl_cores_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_cores_group = {
+	.name  = "events",
+	.attrs = rapl_events_cores,
+};
+
+static struct attribute *rapl_events_pkg[] = {
+	EVENT_PTR(rapl_pkg),
+	EVENT_PTR(rapl_pkg_unit),
+	EVENT_PTR(rapl_pkg_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_pkg_group = {
+	.name  = "events",
+	.attrs = rapl_events_pkg,
+};
+
+static struct attribute *rapl_events_ram[] = {
+	EVENT_PTR(rapl_ram),
+	EVENT_PTR(rapl_ram_unit),
+	EVENT_PTR(rapl_ram_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_ram_group = {
+	.name  = "events",
+	.attrs = rapl_events_ram,
+};
+
+static struct attribute *rapl_events_gpu[] = {
+	EVENT_PTR(rapl_gpu),
+	EVENT_PTR(rapl_gpu_unit),
+	EVENT_PTR(rapl_gpu_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_gpu_group = {
+	.name  = "events",
+	.attrs = rapl_events_gpu,
+};
+
+static struct attribute *rapl_events_psys[] = {
+	EVENT_PTR(rapl_psys),
+	EVENT_PTR(rapl_psys_unit),
+	EVENT_PTR(rapl_psys_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_psys_group = {
+	.name  = "events",
+	.attrs = rapl_events_psys,
+};
+
+static bool test_msr(int idx, void *data)
+{
+	return test_bit(idx, (unsigned long *) data);
+}
+
+static struct perf_msr rapl_msrs[] = {
+	[PERF_RAPL_PP0]  = { MSR_PP0_ENERGY_STATUS,      &rapl_events_cores_group, test_msr },
+	[PERF_RAPL_PKG]  = { MSR_PKG_ENERGY_STATUS,      &rapl_events_pkg_group,   test_msr },
+	[PERF_RAPL_RAM]  = { MSR_DRAM_ENERGY_STATUS,     &rapl_events_ram_group,   test_msr },
+	[PERF_RAPL_PP1]  = { MSR_PP1_ENERGY_STATUS,      &rapl_events_gpu_group,   test_msr },
+	[PERF_RAPL_PSYS] = { MSR_PLATFORM_ENERGY_STATUS, &rapl_events_psys_group,  test_msr },
+};
+
+static int rapl_cpu_offline(unsigned int cpu)
+{
+	struct rapl_pmu *pmu = cpu_to_rapl_pmu(cpu);
+	int target;
+
+	/* Check if exiting cpu is used for collecting rapl events */
+	if (!cpumask_test_and_clear_cpu(cpu, &rapl_cpu_mask))
+		return 0;
+
+	pmu->cpu = -1;
+	/* Find a new cpu to collect rapl events */
+	target = cpumask_any_but(topology_die_cpumask(cpu), cpu);
+
+	/* Migrate rapl events to the new target */
+	if (target < nr_cpu_ids) {
+		cpumask_set_cpu(target, &rapl_cpu_mask);
+		pmu->cpu = target;
+		perf_pmu_migrate_context(pmu->pmu, cpu, target);
+	}
+	return 0;
+}
+
+static int rapl_cpu_online(unsigned int cpu)
+{
+	struct rapl_pmu *pmu = cpu_to_rapl_pmu(cpu);
+	int target;
+
+	if (!pmu) {
+		pmu = kzalloc_node(sizeof(*pmu), GFP_KERNEL, cpu_to_node(cpu));
+		if (!pmu)
+			return -ENOMEM;
+
+		raw_spin_lock_init(&pmu->lock);
+		INIT_LIST_HEAD(&pmu->active_list);
+		pmu->pmu = &rapl_pmus->pmu;
+		pmu->timer_interval = ms_to_ktime(rapl_timer_ms);
+		rapl_hrtimer_init(pmu);
+
+		rapl_pmus->pmus[topology_logical_die_id(cpu)] = pmu;
+	}
+
+	/*
+	 * Check if there is an online cpu in the package which collects rapl
+	 * events already.
+	 */
+	target = cpumask_any_and(&rapl_cpu_mask, topology_die_cpumask(cpu));
+	if (target < nr_cpu_ids)
+		return 0;
+
+	cpumask_set_cpu(cpu, &rapl_cpu_mask);
+	pmu->cpu = cpu;
+	return 0;
+}
+
+static int rapl_check_hw_unit(bool apply_quirk)
+{
+	u64 msr_rapl_power_unit_bits;
+	int i;
+
+	/* protect rdmsrl() to handle virtualization */
+	if (rdmsrl_safe(MSR_RAPL_POWER_UNIT, &msr_rapl_power_unit_bits))
+		return -1;
+	for (i = 0; i < NR_RAPL_DOMAINS; i++)
+		rapl_hw_unit[i] = (msr_rapl_power_unit_bits >> 8) & 0x1FULL;
+
+	/*
+	 * DRAM domain on HSW server and KNL has fixed energy unit which can be
+	 * different than the unit from power unit MSR. See
+	 * "Intel Xeon Processor E5-1600 and E5-2600 v3 Product Families, V2
+	 * of 2. Datasheet, September 2014, Reference Number: 330784-001 "
+	 */
+	if (apply_quirk)
+		rapl_hw_unit[PERF_RAPL_RAM] = 16;
+
+	/*
+	 * Calculate the timer rate:
+	 * Use reference of 200W for scaling the timeout to avoid counter
+	 * overflows. 200W = 200 Joules/sec
+	 * Divide interval by 2 to avoid lockstep (2 * 100)
+	 * if hw unit is 32, then we use 2 ms 1/200/2
+	 */
+	rapl_timer_ms = 2;
+	if (rapl_hw_unit[0] < 32) {
+		rapl_timer_ms = (1000 / (2 * 100));
+		rapl_timer_ms *= (1ULL << (32 - rapl_hw_unit[0] - 1));
+	}
+	return 0;
+}
+
+static void __init rapl_advertise(void)
+{
+	int i;
+
+	pr_info("API unit is 2^-32 Joules, %d fixed counters, %llu ms ovfl timer\n",
+		hweight32(rapl_cntr_mask), rapl_timer_ms);
+
+	for (i = 0; i < NR_RAPL_DOMAINS; i++) {
+		if (rapl_cntr_mask & (1 << i)) {
+			pr_info("hw unit of domain %s 2^-%d Joules\n",
+				rapl_domain_names[i], rapl_hw_unit[i]);
+		}
+	}
+}
+
+static void cleanup_rapl_pmus(void)
+{
+	int i;
+
+	for (i = 0; i < rapl_pmus->maxdie; i++)
+		kfree(rapl_pmus->pmus[i]);
+	kfree(rapl_pmus);
+}
+
+static const struct attribute_group *rapl_attr_update[] = {
+	&rapl_events_cores_group,
+	&rapl_events_pkg_group,
+	&rapl_events_ram_group,
+	&rapl_events_gpu_group,
+	&rapl_events_psys_group,
+	NULL,
+};
+
+static int __init init_rapl_pmus(void)
+{
+	int maxdie = topology_max_packages() * topology_max_die_per_package();
+	size_t size;
+
+	size = sizeof(*rapl_pmus) + maxdie * sizeof(struct rapl_pmu *);
+	rapl_pmus = kzalloc(size, GFP_KERNEL);
+	if (!rapl_pmus)
+		return -ENOMEM;
+
+	rapl_pmus->maxdie		= maxdie;
+	rapl_pmus->pmu.attr_groups	= rapl_attr_groups;
+	rapl_pmus->pmu.attr_update	= rapl_attr_update;
+	rapl_pmus->pmu.task_ctx_nr	= perf_invalid_context;
+	rapl_pmus->pmu.event_init	= rapl_pmu_event_init;
+	rapl_pmus->pmu.add		= rapl_pmu_event_add;
+	rapl_pmus->pmu.del		= rapl_pmu_event_del;
+	rapl_pmus->pmu.start		= rapl_pmu_event_start;
+	rapl_pmus->pmu.stop		= rapl_pmu_event_stop;
+	rapl_pmus->pmu.read		= rapl_pmu_event_read;
+	rapl_pmus->pmu.module		= THIS_MODULE;
+	rapl_pmus->pmu.capabilities	= PERF_PMU_CAP_NO_EXCLUDE;
+	return 0;
+}
+
+#define X86_RAPL_MODEL_MATCH(model, init)	\
+	{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&init }
+
+static struct rapl_model model_snb = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_PP1),
+	.apply_quirk	= false,
+};
+
+static struct rapl_model model_snbep = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM),
+	.apply_quirk	= false,
+};
+
+static struct rapl_model model_hsw = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM) |
+			  BIT(PERF_RAPL_PP1),
+	.apply_quirk	= false,
+};
+
+static struct rapl_model model_hsx = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM),
+	.apply_quirk	= true,
+};
+
+static struct rapl_model model_knl = {
+	.events		= BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM),
+	.apply_quirk	= true,
+};
+
+static struct rapl_model model_skl = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM) |
+			  BIT(PERF_RAPL_PP1) |
+			  BIT(PERF_RAPL_PSYS),
+	.apply_quirk	= false,
+};
+
+static const struct x86_cpu_id rapl_model_match[] __initconst = {
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE,		model_snb),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE_X,		model_snbep),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE,		model_snb),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE_X,		model_snbep),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_X,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_L,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_G,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_G,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_X,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_D,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL,		model_knl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNM,		model_knl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_CANNONLAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT_D,	model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT_PLUS,	model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ICELAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ICELAKE,		model_skl),
+	{},
+};
+
+MODULE_DEVICE_TABLE(x86cpu, rapl_model_match);
+
+static int __init rapl_pmu_init(void)
+{
+	const struct x86_cpu_id *id;
+	struct rapl_model *rm;
+	int ret;
+
+	id = x86_match_cpu(rapl_model_match);
+	if (!id)
+		return -ENODEV;
+
+	rm = (struct rapl_model *) id->driver_data;
+	rapl_cntr_mask = perf_msr_probe(rapl_msrs, PERF_RAPL_MAX,
+					false, (void *) &rm->events);
+
+	ret = rapl_check_hw_unit(rm->apply_quirk);
+	if (ret)
+		return ret;
+
+	ret = init_rapl_pmus();
+	if (ret)
+		return ret;
+
+	/*
+	 * Install callbacks. Core will call them for each online cpu.
+	 */
+	ret = cpuhp_setup_state(CPUHP_AP_PERF_X86_RAPL_ONLINE,
+				"perf/x86/rapl:online",
+				rapl_cpu_online, rapl_cpu_offline);
+	if (ret)
+		goto out;
+
+	ret = perf_pmu_register(&rapl_pmus->pmu, "power", -1);
+	if (ret)
+		goto out1;
+
+	rapl_advertise();
+	return 0;
+
+out1:
+	cpuhp_remove_state(CPUHP_AP_PERF_X86_RAPL_ONLINE);
+out:
+	pr_warn("Initialization failed (%d), disabled\n", ret);
+	cleanup_rapl_pmus();
+	return ret;
+}
+module_init(rapl_pmu_init);
+
+static void __exit intel_rapl_exit(void)
+{
+	cpuhp_remove_state_nocalls(CPUHP_AP_PERF_X86_RAPL_ONLINE);
+	perf_pmu_unregister(&rapl_pmus->pmu);
+	cleanup_rapl_pmus();
+}
+module_exit(intel_rapl_exit);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/hyperv/hv_init.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/hyperv/hv_init.c
@@ -19,9 +19,18 @@
 #include <linux/mm.h>
 #include <linux/hyperv.h>
 #include <linux/slab.h>
+#include <linux/kernel.h>
 #include <linux/cpuhotplug.h>
 #include <clocksource/hyperv_timer.h>
 
+#ifndef PKG_ABI
+/*
+ * Preserve the ability to 'make deb-pkg' since PKG_ABI is provided
+ * by the Ubuntu build rules.
+ */
+#define PKG_ABI 0
+#endif
+
 void *hv_hypercall_pg;
 EXPORT_SYMBOL_GPL(hv_hypercall_pg);
 
@@ -297,7 +306,7 @@
 	 * 1. Register the guest ID
 	 * 2. Enable the hypercall and register the hypercall page
 	 */
-	guest_id = generate_guest_id(0, LINUX_VERSION_CODE, 0);
+	guest_id = generate_guest_id(0x80 /*Canonical*/, LINUX_VERSION_CODE, PKG_ABI);
 	wrmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id);
 
 	hv_hypercall_pg  = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX);
@@ -354,11 +363,14 @@
 }
 EXPORT_SYMBOL_GPL(hyperv_cleanup);
 
-void hyperv_report_panic(struct pt_regs *regs, long err)
+void hyperv_report_panic(struct pt_regs *regs, long err, bool in_die)
 {
 	static bool panic_reported;
 	u64 guest_id;
 
+	if (in_die && !panic_on_oops)
+		return;
+
 	/*
 	 * We prefer to report panic on 'die' chain as we have proper
 	 * registers to report, but if we miss it (e.g. on BUG()) we need
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/hyperv/mmu.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/hyperv/mmu.c
@@ -66,11 +66,17 @@
 	if (!hv_hypercall_pg)
 		goto do_native;
 
-	if (cpumask_empty(cpus))
-		return;
-
 	local_irq_save(flags);
 
+	/*
+	 * Only check the mask _after_ interrupt has been disabled to avoid the
+	 * mask changing under our feet.
+	 */
+	if (cpumask_empty(cpus)) {
+		local_irq_restore(flags);
+		return;
+	}
+
 	flush_pcpu = (struct hv_tlb_flush **)
 		     this_cpu_ptr(hyperv_pcpu_input_arg);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/ia32/ia32_signal.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/ia32/ia32_signal.c
@@ -21,6 +21,7 @@
 #include <linux/personality.h>
 #include <linux/compat.h>
 #include <linux/binfmts.h>
+#include <linux/syscalls.h>
 #include <asm/ucontext.h>
 #include <linux/uaccess.h>
 #include <asm/fpu/internal.h>
@@ -118,7 +119,7 @@
 	return err;
 }
 
-asmlinkage long sys32_sigreturn(void)
+COMPAT_SYSCALL_DEFINE0(sigreturn)
 {
 	struct pt_regs *regs = current_pt_regs();
 	struct sigframe_ia32 __user *frame = (struct sigframe_ia32 __user *)(regs->sp-8);
@@ -144,7 +145,7 @@
 	return 0;
 }
 
-asmlinkage long sys32_rt_sigreturn(void)
+COMPAT_SYSCALL_DEFINE0(rt_sigreturn)
 {
 	struct pt_regs *regs = current_pt_regs();
 	struct rt_sigframe_ia32 __user *frame;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/apic.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/apic.h
@@ -140,6 +140,7 @@
 extern void lapic_shutdown(void);
 extern void sync_Arb_IDs(void);
 extern void init_bsp_APIC(void);
+extern void apic_intr_mode_select(void);
 extern void apic_intr_mode_init(void);
 extern void init_apic_mappings(void);
 void register_lapic_address(unsigned long address);
@@ -188,6 +189,7 @@
 # define setup_secondary_APIC_clock x86_init_noop
 static inline void lapic_update_tsc_freq(void) { }
 static inline void init_bsp_APIC(void) { }
+static inline void apic_intr_mode_select(void) { }
 static inline void apic_intr_mode_init(void) { }
 static inline void lapic_assign_system_vectors(void) { }
 static inline void lapic_assign_legacy_vector(unsigned int i, bool r) { }
@@ -195,16 +197,6 @@
 #endif /* !CONFIG_X86_LOCAL_APIC */
 
 #ifdef CONFIG_X86_X2APIC
-/*
- * Make previous memory operations globally visible before
- * sending the IPI through x2apic wrmsr. We need a serializing instruction or
- * mfence for this.
- */
-static inline void x2apic_wrmsr_fence(void)
-{
-	asm volatile("mfence" : : : "memory");
-}
-
 static inline void native_apic_msr_write(u32 reg, u32 v)
 {
 	if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
@@ -257,6 +249,7 @@
 
 extern int x2apic_mode;
 extern int x2apic_phys;
+extern void __init x2apic_set_max_apicid(u32 apicid);
 extern void __init check_x2apic(void);
 extern void x2apic_setup(void);
 static inline int x2apic_enabled(void)
@@ -452,6 +445,14 @@
 	apic_eoi();
 }
 
+
+static inline bool lapic_vector_set_in_irr(unsigned int vector)
+{
+	u32 irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
+
+	return !!(irr & (1U << (vector % 32)));
+}
+
 static inline unsigned default_get_apic_id(unsigned long x)
 {
 	unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/apm.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/apm.h
@@ -35,6 +35,7 @@
 	__asm__ __volatile__(APM_DO_ZERO_SEGS
 		"pushl %%edi\n\t"
 		"pushl %%ebp\n\t"
+		ANNOTATE_RETPOLINE_SAFE /* FRBS */
 		"lcall *%%cs:apm_bios_entry\n\t"
 		"setc %%al\n\t"
 		"popl %%ebp\n\t"
@@ -59,6 +60,7 @@
 	__asm__ __volatile__(APM_DO_ZERO_SEGS
 		"pushl %%edi\n\t"
 		"pushl %%ebp\n\t"
+		ANNOTATE_RETPOLINE_SAFE /* FRBS */
 		"lcall *%%cs:apm_bios_entry\n\t"
 		"setc %%bl\n\t"
 		"popl %%ebp\n\t"
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/barrier.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/barrier.h
@@ -84,4 +84,22 @@
 
 #include <asm-generic/barrier.h>
 
+/*
+ * Make previous memory operations globally visible before
+ * a WRMSR.
+ *
+ * MFENCE makes writes visible, but only affects load/store
+ * instructions.  WRMSR is unfortunately not a load/store
+ * instruction and is unaffected by MFENCE.  The LFENCE ensures
+ * that the WRMSR is not reordered.
+ *
+ * Most WRMSRs are full serializing instructions themselves and
+ * do not require this barrier.  This is only required for the
+ * IA32_TSC_DEADLINE and X2APIC MSRs.
+ */
+static inline void weak_wrmsr_fence(void)
+{
+	asm volatile("mfence; lfence" : : : "memory");
+}
+
 #endif /* _ASM_X86_BARRIER_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/cacheinfo.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/cacheinfo.h
@@ -2,7 +2,7 @@
 #ifndef _ASM_X86_CACHEINFO_H
 #define _ASM_X86_CACHEINFO_H
 
-void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id);
-void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id);
+void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu);
+void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu);
 
 #endif /* _ASM_X86_CACHEINFO_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/cpu_device_id.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/cpu_device_id.h
@@ -9,6 +9,36 @@
 
 #include <linux/mod_devicetable.h>
 
+#define X86_CENTAUR_FAM6_C7_D		0xd
+#define X86_CENTAUR_FAM6_NANO		0xf
+
+#define X86_STEPPINGS(mins, maxs)    GENMASK(maxs, mins)
+
+/**
+ * X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE - Base macro for CPU matching
+ * @_vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@_vendor
+ * @_family:	The family number or X86_FAMILY_ANY
+ * @_model:	The model number, model constant or X86_MODEL_ANY
+ * @_steppings:	Bitmask for steppings, stepping constant or X86_STEPPING_ANY
+ * @_feature:	A X86_FEATURE bit or X86_FEATURE_ANY
+ * @_data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * Backport version to keep the SRBDS pile consistant. No shorter variants
+ * required for this.
+ */
+#define X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(_vendor, _family, _model, \
+						    _steppings, _feature, _data) { \
+	.vendor		= X86_VENDOR_##_vendor,				\
+	.family		= _family,					\
+	.model		= _model,					\
+	.steppings	= _steppings,					\
+	.feature	= _feature,					\
+	.driver_data	= (unsigned long) _data				\
+}
+
 /*
  * Match specific microcode revisions.
  *
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/cpu_entry_area.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/cpu_entry_area.h
@@ -78,8 +78,12 @@
 
 	/*
 	 * The GDT is just below entry_stack and thus serves (on x86_64) as
-	 * a a read-only guard page.
+	 * a read-only guard page. On 32-bit the GDT must be writeable, so
+	 * it needs an extra guard page.
 	 */
+#ifdef CONFIG_X86_32
+	char guard_entry_stack[PAGE_SIZE];
+#endif
 	struct entry_stack_page entry_stack_page;
 
 	/*
@@ -94,7 +98,6 @@
 	 */
 	struct cea_exception_stacks estacks;
 #endif
-#ifdef CONFIG_CPU_SUP_INTEL
 	/*
 	 * Per CPU debug store for Intel performance monitoring. Wastes a
 	 * full page at the moment.
@@ -105,11 +108,13 @@
 	 * Reserve enough fixmap PTEs.
 	 */
 	struct debug_store_buffers cpu_debug_buffers;
-#endif
 };
 
-#define CPU_ENTRY_AREA_SIZE	(sizeof(struct cpu_entry_area))
-#define CPU_ENTRY_AREA_TOT_SIZE	(CPU_ENTRY_AREA_SIZE * NR_CPUS)
+#define CPU_ENTRY_AREA_SIZE		(sizeof(struct cpu_entry_area))
+#define CPU_ENTRY_AREA_ARRAY_SIZE	(CPU_ENTRY_AREA_SIZE * NR_CPUS)
+
+/* Total size includes the readonly IDT mapping page as well: */
+#define CPU_ENTRY_AREA_TOTAL_SIZE	(CPU_ENTRY_AREA_ARRAY_SIZE + PAGE_SIZE)
 
 DECLARE_PER_CPU(struct cpu_entry_area *, cpu_entry_area);
 DECLARE_PER_CPU(struct cea_exception_stacks *, cea_exception_stacks);
@@ -117,13 +122,14 @@
 extern void setup_cpu_entry_areas(void);
 extern void cea_set_pte(void *cea_vaddr, phys_addr_t pa, pgprot_t flags);
 
+/* Single page reserved for the readonly IDT mapping: */
 #define	CPU_ENTRY_AREA_RO_IDT		CPU_ENTRY_AREA_BASE
 #define CPU_ENTRY_AREA_PER_CPU		(CPU_ENTRY_AREA_RO_IDT + PAGE_SIZE)
 
 #define CPU_ENTRY_AREA_RO_IDT_VADDR	((void *)CPU_ENTRY_AREA_RO_IDT)
 
 #define CPU_ENTRY_AREA_MAP_SIZE			\
-	(CPU_ENTRY_AREA_PER_CPU + CPU_ENTRY_AREA_TOT_SIZE - CPU_ENTRY_AREA_BASE)
+	(CPU_ENTRY_AREA_PER_CPU + CPU_ENTRY_AREA_ARRAY_SIZE - CPU_ENTRY_AREA_BASE)
 
 extern struct cpu_entry_area *get_cpu_entry_area(int cpu);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/cpufeatures.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/cpufeatures.h
@@ -357,6 +357,7 @@
 #define X86_FEATURE_AVX512_4VNNIW	(18*32+ 2) /* AVX-512 Neural Network Instructions */
 #define X86_FEATURE_AVX512_4FMAPS	(18*32+ 3) /* AVX-512 Multiply Accumulation Single precision */
 #define X86_FEATURE_AVX512_VP2INTERSECT (18*32+ 8) /* AVX-512 Intersect for D/Q */
+#define X86_FEATURE_SRBDS_CTRL		(18*32+ 9) /* "" SRBDS mitigation MSR available */
 #define X86_FEATURE_MD_CLEAR		(18*32+10) /* VERW clears CPU buffers */
 #define X86_FEATURE_TSX_FORCE_ABORT	(18*32+13) /* "" TSX_FORCE_ABORT */
 #define X86_FEATURE_PCONFIG		(18*32+18) /* Intel PCONFIG */
@@ -401,5 +402,6 @@
 #define X86_BUG_SWAPGS			X86_BUG(21) /* CPU is affected by speculation through SWAPGS */
 #define X86_BUG_TAA			X86_BUG(22) /* CPU is affected by TSX Async Abort(TAA) */
 #define X86_BUG_ITLB_MULTIHIT		X86_BUG(23) /* CPU may incur MCE during certain page attribute changes */
+#define X86_BUG_SRBDS			X86_BUG(24) /* CPU may leak RNG bits if not mitigated */
 
 #endif /* _ASM_X86_CPUFEATURES_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/crash.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/crash.h
@@ -2,10 +2,18 @@
 #ifndef _ASM_X86_CRASH_H
 #define _ASM_X86_CRASH_H
 
+struct kimage;
+
 int crash_load_segments(struct kimage *image);
 int crash_copy_backup_region(struct kimage *image);
 int crash_setup_memmap_entries(struct kimage *image,
 		struct boot_params *params);
 void crash_smp_send_stop(void);
 
+#ifdef CONFIG_KEXEC_CORE
+void __init crash_reserve_low_1M(void);
+#else
+static inline void __init crash_reserve_low_1M(void) { }
+#endif
+
 #endif /* _ASM_X86_CRASH_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/dma.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/dma.h
@@ -74,7 +74,7 @@
 #define MAX_DMA_PFN   ((16UL * 1024 * 1024) >> PAGE_SHIFT)
 
 /* 4GB broken PCI/AGP hardware bus master zone */
-#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
+#define MAX_DMA32_PFN (1UL << (32 - PAGE_SHIFT))
 
 #ifdef CONFIG_X86_32
 /* The maximum address that we can perform a DMA transfer to on this platform */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/fixmap.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/fixmap.h
@@ -156,7 +156,7 @@
 extern pte_t *pkmap_page_table;
 
 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte);
-void native_set_fixmap(enum fixed_addresses idx,
+void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
 		       phys_addr_t phys, pgprot_t flags);
 
 #ifndef CONFIG_PARAVIRT_XXL
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/fpu/api.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/fpu/api.h
@@ -16,14 +16,25 @@
  * Use kernel_fpu_begin/end() if you intend to use FPU in kernel context. It
  * disables preemption so be careful if you intend to use it for long periods
  * of time.
- * If you intend to use the FPU in softirq you need to check first with
+ * If you intend to use the FPU in irq/softirq you need to check first with
  * irq_fpu_usable() if it is possible.
  */
-extern void kernel_fpu_begin(void);
+
+/* Kernel FPU states to initialize in kernel_fpu_begin_mask() */
+#define KFPU_387	_BITUL(0)	/* 387 state will be initialized */
+#define KFPU_MXCSR	_BITUL(1)	/* MXCSR will be initialized */
+
+extern void kernel_fpu_begin_mask(unsigned int kfpu_mask);
 extern void kernel_fpu_end(void);
 extern bool irq_fpu_usable(void);
 extern void fpregs_mark_activate(void);
 
+/* Code that is unaware of kernel_fpu_begin_mask() can use this */
+static inline void kernel_fpu_begin(void)
+{
+	kernel_fpu_begin_mask(KFPU_387 | KFPU_MXCSR);
+}
+
 /*
  * Use fpregs_lock() while editing CPU's FPU registers or fpu->state.
  * A context switch will (and softirq might) save CPU's FPU registers to
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/fpu/internal.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/fpu/internal.h
@@ -509,7 +509,7 @@
 
 static inline int fpregs_state_valid(struct fpu *fpu, unsigned int cpu)
 {
-	return fpu == this_cpu_read_stable(fpu_fpregs_owner_ctx) && cpu == fpu->last_cpu;
+	return fpu == this_cpu_read(fpu_fpregs_owner_ctx) && cpu == fpu->last_cpu;
 }
 
 /*
@@ -619,6 +619,11 @@
  * MXCSR and XCR definitions:
  */
 
+static inline void ldmxcsr(u32 mxcsr)
+{
+	asm volatile("ldmxcsr %0" :: "m" (mxcsr));
+}
+
 extern unsigned int mxcsr_feature_mask;
 
 #define XCR_XFEATURE_ENABLED_MASK	0x00000000
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/insn.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/insn.h
@@ -195,6 +195,21 @@
 	return insn_offset_displacement(insn) + insn->displacement.nbytes;
 }
 
+/**
+ * for_each_insn_prefix() -- Iterate prefixes in the instruction
+ * @insn: Pointer to struct insn.
+ * @idx:  Index storage.
+ * @prefix: Prefix byte.
+ *
+ * Iterate prefix bytes of given @insn. Each prefix byte is stored in @prefix
+ * and the index is stored in @idx (note that this @idx is just for a cursor,
+ * do not change it.)
+ * Since prefixes.nbytes can be bigger than 4 if some prefixes
+ * are repeated, it cannot be used for looping over the prefixes.
+ */
+#define for_each_insn_prefix(insn, idx, prefix)	\
+	for (idx = 0; idx < ARRAY_SIZE(insn->prefixes.bytes) && (prefix = insn->prefixes.bytes[idx]) != 0; idx++)
+
 #define POP_SS_OPCODE 0x1f
 #define MOV_SREG_OPCODE 0x8e
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/kvm_host.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/kvm_host.h
@@ -380,12 +380,12 @@
 	void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long root);
 	unsigned long (*get_cr3)(struct kvm_vcpu *vcpu);
 	u64 (*get_pdptr)(struct kvm_vcpu *vcpu, int index);
-	int (*page_fault)(struct kvm_vcpu *vcpu, gva_t gva, u32 err,
+	int (*page_fault)(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u32 err,
 			  bool prefault);
 	void (*inject_page_fault)(struct kvm_vcpu *vcpu,
 				  struct x86_exception *fault);
-	gpa_t (*gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t gva, u32 access,
-			    struct x86_exception *exception);
+	gpa_t (*gva_to_gpa)(struct kvm_vcpu *vcpu, gpa_t gva_or_gpa,
+			    u32 access, struct x86_exception *exception);
 	gpa_t (*translate_gpa)(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access,
 			       struct x86_exception *exception);
 	int (*sync_page)(struct kvm_vcpu *vcpu,
@@ -550,6 +550,7 @@
 	unsigned long cr4;
 	unsigned long cr4_guest_owned_bits;
 	unsigned long cr8;
+	u32 host_pkru;
 	u32 pkru;
 	u32 hflags;
 	u64 efer;
@@ -667,10 +668,10 @@
 	bool pvclock_set_guest_stopped_request;
 
 	struct {
+		u8 preempted;
 		u64 msr_val;
 		u64 last_steal;
-		struct gfn_to_hva_cache stime;
-		struct kvm_steal_time steal;
+		struct gfn_to_pfn_cache cache;
 	} st;
 
 	u64 tsc_offset;
@@ -1098,7 +1099,7 @@
 	void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap);
 	void (*set_virtual_apic_mode)(struct kvm_vcpu *vcpu);
 	void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu, hpa_t hpa);
-	void (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
+	int (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
 	int (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
 	int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
 	int (*set_identity_map_addr)(struct kvm *kvm, u64 ident_addr);
@@ -1128,8 +1129,9 @@
 	bool (*xsaves_supported)(void);
 	bool (*umip_emulated)(void);
 	bool (*pt_supported)(void);
+	bool (*pku_supported)(void);
 
-	int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr);
+	int (*check_nested_events)(struct kvm_vcpu *vcpu);
 	void (*request_immediate_exit)(struct kvm_vcpu *vcpu);
 
 	void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
@@ -1158,7 +1160,7 @@
 	void (*enable_log_dirty_pt_masked)(struct kvm *kvm,
 					   struct kvm_memory_slot *slot,
 					   gfn_t offset, unsigned long mask);
-	int (*write_log_dirty)(struct kvm_vcpu *vcpu);
+	int (*write_log_dirty)(struct kvm_vcpu *vcpu, gpa_t l2_gpa);
 
 	/* pmu operations of sub-arch */
 	const struct kvm_pmu_ops *pmu_ops;
@@ -1450,7 +1452,7 @@
 
 int kvm_emulate_hypercall(struct kvm_vcpu *vcpu);
 
-int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t gva, u64 error_code,
+int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u64 error_code,
 		       void *insn, int insn_len);
 void kvm_mmu_invlpg(struct kvm_vcpu *vcpu, gva_t gva);
 void kvm_mmu_invpcid_gva(struct kvm_vcpu *vcpu, gva_t gva, unsigned long pcid);
@@ -1551,12 +1553,14 @@
 	_ASM_EXTABLE(666b, 667b)
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end);
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v);
 int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu);
+int kvm_cpu_has_extint(struct kvm_vcpu *v);
 int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu);
 int kvm_cpu_get_interrupt(struct kvm_vcpu *v);
 void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event);
@@ -1607,8 +1611,8 @@
 static inline bool kvm_irq_is_postable(struct kvm_lapic_irq *irq)
 {
 	/* We can only post Fixed and LowPrio IRQs */
-	return (irq->delivery_mode == dest_Fixed ||
-		irq->delivery_mode == dest_LowestPrio);
+	return (irq->delivery_mode == APIC_DM_FIXED ||
+		irq->delivery_mode == APIC_DM_LOWEST);
 }
 
 static inline void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/linkage.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/linkage.h
@@ -13,9 +13,13 @@
 
 #ifdef __ASSEMBLY__
 
-#define GLOBAL(name)	\
-	.globl name;	\
-	name:
+/*
+ * GLOBAL is DEPRECATED
+ *
+ * use SYM_DATA_START, SYM_FUNC_START, SYM_INNER_LABEL, SYM_CODE_START, or
+ * similar
+ */
+#define GLOBAL(name)	SYM_ENTRY(name, SYM_L_GLOBAL, SYM_A_NONE)
 
 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_ALIGNMENT_16)
 #define __ALIGN		.p2align 4, 0x90
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/mce.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/mce.h
@@ -290,6 +290,7 @@
 /* These may be used by multiple smca_hwid_mcatypes */
 enum smca_bank_types {
 	SMCA_LS = 0,	/* Load Store */
+	SMCA_LS_V2,	/* Load Store */
 	SMCA_IF,	/* Instruction Fetch */
 	SMCA_L2_CACHE,	/* L2 Cache */
 	SMCA_DE,	/* Decoder Unit */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/microcode_amd.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/microcode_amd.h
@@ -41,7 +41,7 @@
 	unsigned int			mpb[0];
 };
 
-#define PATCH_MAX_SIZE PAGE_SIZE
+#define PATCH_MAX_SIZE (3 * PAGE_SIZE)
 
 #ifdef CONFIG_MICROCODE_AMD
 extern void __init load_ucode_amd_bsp(unsigned int family);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/msr-index.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/msr-index.h
@@ -119,6 +119,10 @@
 #define TSX_CTRL_RTM_DISABLE		BIT(0)	/* Disable RTM feature */
 #define TSX_CTRL_CPUID_CLEAR		BIT(1)	/* Disable TSX enumeration */
 
+/* SRBDS support */
+#define MSR_IA32_MCU_OPT_CTRL		0x00000123
+#define RNGDS_MITG_DIS			BIT(0)
+
 #define MSR_IA32_SYSENTER_CS		0x00000174
 #define MSR_IA32_SYSENTER_ESP		0x00000175
 #define MSR_IA32_SYSENTER_EIP		0x00000176
@@ -428,6 +432,7 @@
 #define MSR_AMD64_IBSOP_REG_MASK	((1UL<<MSR_AMD64_IBSOP_REG_COUNT)-1)
 #define MSR_AMD64_IBSCTL		0xc001103a
 #define MSR_AMD64_IBSBRTARGET		0xc001103b
+#define MSR_AMD64_ICIBSEXTDCTL		0xc001103c
 #define MSR_AMD64_IBSOPDATA4		0xc001103d
 #define MSR_AMD64_IBS_REG_COUNT_MAX	8 /* includes MSR_AMD64_IBSBRTARGET */
 #define MSR_AMD64_SEV			0xc0010131
@@ -510,6 +515,8 @@
 #define MSR_K7_HWCR			0xc0010015
 #define MSR_K7_HWCR_SMMLOCK_BIT		0
 #define MSR_K7_HWCR_SMMLOCK		BIT_ULL(MSR_K7_HWCR_SMMLOCK_BIT)
+#define MSR_K7_HWCR_IRPERF_EN_BIT	30
+#define MSR_K7_HWCR_IRPERF_EN		BIT_ULL(MSR_K7_HWCR_IRPERF_EN_BIT)
 #define MSR_K7_FID_VID_CTL		0xc0010041
 #define MSR_K7_FID_VID_STATUS		0xc0010042
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/msr.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/msr.h
@@ -88,7 +88,7 @@
  * think of extending them - you will be slapped with a stinking trout or a frozen
  * shark will reach you, wherever you are! You've been warned.
  */
-static inline unsigned long long notrace __rdmsr(unsigned int msr)
+static __always_inline unsigned long long __rdmsr(unsigned int msr)
 {
 	DECLARE_ARGS(val, low, high);
 
@@ -100,7 +100,7 @@
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static inline void notrace __wrmsr(unsigned int msr, u32 low, u32 high)
+static __always_inline void __wrmsr(unsigned int msr, u32 low, u32 high)
 {
 	asm volatile("1: wrmsr\n"
 		     "2:\n"
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/nmi.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/nmi.h
@@ -41,7 +41,6 @@
 	struct list_head	list;
 	nmi_handler_t		handler;
 	u64			max_duration;
-	struct irq_work		irq_work;
 	unsigned long		flags;
 	const char		*name;
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/nospec-branch.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/nospec-branch.h
@@ -320,7 +320,7 @@
  * combination with microcode which triggers a CPU buffer flush when the
  * instruction is executed.
  */
-static inline void mds_clear_cpu_buffers(void)
+static __always_inline void mds_clear_cpu_buffers(void)
 {
 	static const u16 ds = __KERNEL_DS;
 
@@ -341,7 +341,7 @@
  *
  * Clear CPU buffers if the corresponding static key is enabled
  */
-static inline void mds_user_clear_cpu_buffers(void)
+static __always_inline void mds_user_clear_cpu_buffers(void)
 {
 	if (static_branch_likely(&mds_user_clear))
 		mds_clear_cpu_buffers();
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/pci-direct.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/pci-direct.h
@@ -10,9 +10,11 @@
 extern u32 read_pci_config(u8 bus, u8 slot, u8 func, u8 offset);
 extern u8 read_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset);
 extern u16 read_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset);
+extern u32 pci_early_find_cap(int bus, int slot, int func, int cap);
 extern void write_pci_config(u8 bus, u8 slot, u8 func, u8 offset, u32 val);
 extern void write_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset, u8 val);
 extern void write_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset, u16 val);
 
+extern unsigned int pci_early_clear_msi;
 extern int early_pci_allowed(void);
 #endif /* _ASM_X86_PCI_DIRECT_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/pgtable.h
@@ -253,6 +253,7 @@
 }
 
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
+/* NOTE: when predicate huge page, consider also pmd_devmap, or use pmd_large */
 static inline int pmd_trans_huge(pmd_t pmd)
 {
 	return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE;
@@ -624,12 +625,15 @@
 	return __pmd(val);
 }
 
-/* mprotect needs to preserve PAT bits when updating vm_page_prot */
+/*
+ * mprotect needs to preserve PAT and encryption bits when updating
+ * vm_page_prot
+ */
 #define pgprot_modify pgprot_modify
 static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
 {
 	pgprotval_t preservebits = pgprot_val(oldprot) & _PAGE_CHG_MASK;
-	pgprotval_t addbits = pgprot_val(newprot);
+	pgprotval_t addbits = pgprot_val(newprot) & ~_PAGE_CHG_MASK;
 	return __pgprot(preservebits | addbits);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/pgtable_32_types.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/pgtable_32_types.h
@@ -44,11 +44,11 @@
  * Define this here and validate with BUILD_BUG_ON() in pgtable_32.c
  * to avoid include recursion hell
  */
-#define CPU_ENTRY_AREA_PAGES	(NR_CPUS * 40)
+#define CPU_ENTRY_AREA_PAGES	(NR_CPUS * 39)
 
-#define CPU_ENTRY_AREA_BASE						\
-	((FIXADDR_TOT_START - PAGE_SIZE * (CPU_ENTRY_AREA_PAGES + 1))   \
-	 & PMD_MASK)
+/* The +1 is for the readonly IDT page: */
+#define CPU_ENTRY_AREA_BASE	\
+	((FIXADDR_TOT_START - PAGE_SIZE*(CPU_ENTRY_AREA_PAGES+1)) & PMD_MASK)
 
 #define LDT_BASE_ADDR		\
 	((CPU_ENTRY_AREA_BASE - PAGE_SIZE) & PMD_MASK)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/pgtable_types.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/pgtable_types.h
@@ -123,7 +123,7 @@
  */
 #define _PAGE_CHG_MASK	(PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT |		\
 			 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY |	\
-			 _PAGE_SOFT_DIRTY | _PAGE_DEVMAP)
+			 _PAGE_SOFT_DIRTY | _PAGE_DEVMAP | _PAGE_ENC)
 #define _HPAGE_CHG_MASK (_PAGE_CHG_MASK | _PAGE_PSE)
 
 /*
@@ -147,6 +147,7 @@
 #endif
 
 #define _PAGE_CACHE_MASK	(_PAGE_PAT | _PAGE_PCD | _PAGE_PWT)
+#define _PAGE_LARGE_CACHE_MASK	(_PAGE_PWT | _PAGE_PCD | _PAGE_PAT_LARGE)
 #define _PAGE_NOCACHE		(cachemode2protval(_PAGE_CACHE_MODE_UC))
 #define _PAGE_CACHE_WP		(cachemode2protval(_PAGE_CACHE_MODE_WP))
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/pkeys.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/pkeys.h
@@ -4,6 +4,11 @@
 
 #define ARCH_DEFAULT_PKEY	0
 
+/*
+ * If more than 16 keys are ever supported, a thorough audit
+ * will be necessary to ensure that the types that store key
+ * numbers and masks have sufficient capacity.
+ */
 #define arch_max_pkey() (boot_cpu_has(X86_FEATURE_OSPKE) ? 16 : 1)
 
 extern int arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/processor.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/processor.h
@@ -334,7 +334,7 @@
 #define INVALID_IO_BITMAP_OFFSET	0x8000
 
 struct entry_stack {
-	unsigned long		words[64];
+	char	stack[PAGE_SIZE];
 };
 
 struct entry_stack_page {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/ptrace.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/ptrace.h
@@ -309,8 +309,8 @@
 	static const unsigned int argument_offs[] = {
 #ifdef __i386__
 		offsetof(struct pt_regs, ax),
-		offsetof(struct pt_regs, cx),
 		offsetof(struct pt_regs, dx),
+		offsetof(struct pt_regs, cx),
 #define NR_REG_ARGUMENTS 3
 #else
 		offsetof(struct pt_regs, di),
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/segment.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/segment.h
@@ -31,6 +31,18 @@
  */
 #define SEGMENT_RPL_MASK	0x3
 
+/*
+ * When running on Xen PV, the actual privilege level of the kernel is 1,
+ * not 0. Testing the Requested Privilege Level in a segment selector to
+ * determine whether the context is user mode or kernel mode with
+ * SEGMENT_RPL_MASK is wrong because the PV kernel's privilege level
+ * matches the 0x3 mask.
+ *
+ * Testing with USER_SEGMENT_RPL_MASK is valid for both native and Xen PV
+ * kernels because privilege level 2 is never used.
+ */
+#define USER_SEGMENT_RPL_MASK	0x2
+
 /* User mode is privilege level 3: */
 #define USER_RPL		0x3
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/set_memory.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/set_memory.h
@@ -85,28 +85,35 @@
 void set_kernel_text_ro(void);
 
 #ifdef CONFIG_X86_64
-static inline int set_mce_nospec(unsigned long pfn)
+/*
+ * Prevent speculative access to the page by either unmapping
+ * it (if we do not require access to any part of the page) or
+ * marking it uncacheable (if we want to try to retrieve data
+ * from non-poisoned lines in the page).
+ */
+static inline int set_mce_nospec(unsigned long pfn, bool unmap)
 {
 	unsigned long decoy_addr;
 	int rc;
 
 	/*
-	 * Mark the linear address as UC to make sure we don't log more
-	 * errors because of speculative access to the page.
 	 * We would like to just call:
-	 *      set_memory_uc((unsigned long)pfn_to_kaddr(pfn), 1);
+	 *      set_memory_XX((unsigned long)pfn_to_kaddr(pfn), 1);
 	 * but doing that would radically increase the odds of a
 	 * speculative access to the poison page because we'd have
 	 * the virtual address of the kernel 1:1 mapping sitting
 	 * around in registers.
 	 * Instead we get tricky.  We create a non-canonical address
 	 * that looks just like the one we want, but has bit 63 flipped.
-	 * This relies on set_memory_uc() properly sanitizing any __pa()
+	 * This relies on set_memory_XX() properly sanitizing any __pa()
 	 * results with __PHYSICAL_MASK or PTE_PFN_MASK.
 	 */
 	decoy_addr = (pfn << PAGE_SHIFT) + (PAGE_OFFSET ^ BIT(63));
 
-	rc = set_memory_uc(decoy_addr, 1);
+	if (unmap)
+		rc = set_memory_np(decoy_addr, 1);
+	else
+		rc = set_memory_uc(decoy_addr, 1);
 	if (rc)
 		pr_warn("Could not invalidate pfn=0x%lx from 1:1 map\n", pfn);
 	return rc;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/smap.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/smap.h
@@ -57,8 +57,10 @@
 {
 	unsigned long flags;
 
-	asm volatile (ALTERNATIVE("", "pushf; pop %0; " __ASM_CLAC,
-				  X86_FEATURE_SMAP)
+	asm volatile ("# smap_save\n\t"
+		      ALTERNATIVE("jmp 1f", "", X86_FEATURE_SMAP)
+		      "pushf; pop %0; " __ASM_CLAC "\n\t"
+		      "1:"
 		      : "=rm" (flags) : : "memory", "cc");
 
 	return flags;
@@ -66,7 +68,10 @@
 
 static __always_inline void smap_restore(unsigned long flags)
 {
-	asm volatile (ALTERNATIVE("", "push %0; popf", X86_FEATURE_SMAP)
+	asm volatile ("# smap_restore\n\t"
+		      ALTERNATIVE("jmp 1f", "", X86_FEATURE_SMAP)
+		      "push %0; popf\n\t"
+		      "1:"
 		      : : "g" (flags) : "memory", "cc");
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/special_insns.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/special_insns.h
@@ -10,45 +10,47 @@
 #include <linux/jump_label.h>
 
 /*
- * Volatile isn't enough to prevent the compiler from reordering the
- * read/write functions for the control registers and messing everything up.
- * A memory clobber would solve the problem, but would prevent reordering of
- * all loads stores around it, which can hurt performance. Solution is to
- * use a variable and mimic reads and writes to it to enforce serialization
+ * The compiler should not reorder volatile asm statements with respect to each
+ * other: they should execute in program order. However GCC 4.9.x and 5.x have
+ * a bug (which was fixed in 8.1, 7.3 and 6.5) where they might reorder
+ * volatile asm. The write functions are not affected since they have memory
+ * clobbers preventing reordering. To prevent reads from being reordered with
+ * respect to writes, use a dummy memory operand.
  */
-extern unsigned long __force_order;
+
+#define __FORCE_ORDER "m"(*(unsigned int *)0x1000UL)
 
 void native_write_cr0(unsigned long val);
 
 static inline unsigned long native_read_cr0(void)
 {
 	unsigned long val;
-	asm volatile("mov %%cr0,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr0,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 	return val;
 }
 
 static inline unsigned long native_read_cr2(void)
 {
 	unsigned long val;
-	asm volatile("mov %%cr2,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr2,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 	return val;
 }
 
 static inline void native_write_cr2(unsigned long val)
 {
-	asm volatile("mov %0,%%cr2": : "r" (val), "m" (__force_order));
+	asm volatile("mov %0,%%cr2": : "r" (val) : "memory");
 }
 
 static inline unsigned long __native_read_cr3(void)
 {
 	unsigned long val;
-	asm volatile("mov %%cr3,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr3,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 	return val;
 }
 
 static inline void native_write_cr3(unsigned long val)
 {
-	asm volatile("mov %0,%%cr3": : "r" (val), "m" (__force_order));
+	asm volatile("mov %0,%%cr3": : "r" (val) : "memory");
 }
 
 static inline unsigned long native_read_cr4(void)
@@ -63,10 +65,10 @@
 	asm volatile("1: mov %%cr4, %0\n"
 		     "2:\n"
 		     _ASM_EXTABLE(1b, 2b)
-		     : "=r" (val), "=m" (__force_order) : "0" (0));
+		     : "=r" (val) : "0" (0), __FORCE_ORDER);
 #else
 	/* CR4 always exists on x86_64. */
-	asm volatile("mov %%cr4,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr4,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 #endif
 	return val;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/stackprotector.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/stackprotector.h
@@ -55,8 +55,13 @@
 /*
  * Initialize the stackprotector canary value.
  *
- * NOTE: this must only be called from functions that never return,
+ * NOTE: this must only be called from functions that never return
  * and it must always be inlined.
+ *
+ * In addition, it should be called from a compilation unit for which
+ * stack protector is disabled. Alternatively, the caller should not end
+ * with a function call which gets tail-call optimized as that would
+ * lead to checking a modified canary value.
  */
 static __always_inline void boot_init_stack_canary(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/sync_core.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/sync_core.h
@@ -16,12 +16,13 @@
 	/* With PTI, we unconditionally serialize before running user code. */
 	if (static_cpu_has(X86_FEATURE_PTI))
 		return;
+
 	/*
-	 * Return from interrupt and NMI is done through iret, which is core
-	 * serializing.
+	 * Even if we're in an interrupt, we might reschedule before returning,
+	 * in which case we could switch to a different thread in the same mm
+	 * and return using SYSRET or SYSEXIT.  Instead of trying to keep
+	 * track of our need to sync the core, just sync right away.
 	 */
-	if (in_irq() || in_nmi())
-		return;
 	sync_core();
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/syscall_wrapper.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/syscall_wrapper.h
@@ -6,6 +6,8 @@
 #ifndef _ASM_X86_SYSCALL_WRAPPER_H
 #define _ASM_X86_SYSCALL_WRAPPER_H
 
+struct pt_regs;
+
 /* Mapping of registers to parameters for syscalls on x86-64 and x32 */
 #define SC_X86_64_REGS_TO_ARGS(x, ...)					\
 	__MAP(x,__SC_ARGS						\
@@ -28,13 +30,21 @@
  * kernel/sys_ni.c and SYS_NI in kernel/time/posix-stubs.c to cover this
  * case as well.
  */
+#define __IA32_COMPAT_SYS_STUB0(x, name)				\
+	asmlinkage long __ia32_compat_sys_##name(const struct pt_regs *regs);\
+	ALLOW_ERROR_INJECTION(__ia32_compat_sys_##name, ERRNO);		\
+	asmlinkage long __ia32_compat_sys_##name(const struct pt_regs *regs)\
+	{								\
+		return __se_compat_sys_##name();			\
+	}
+
 #define __IA32_COMPAT_SYS_STUBx(x, name, ...)				\
 	asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs);\
 	ALLOW_ERROR_INJECTION(__ia32_compat_sys##name, ERRNO);		\
 	asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs)\
 	{								\
 		return __se_compat_sys##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\
-	}								\
+	}
 
 #define __IA32_SYS_STUBx(x, name, ...)					\
 	asmlinkage long __ia32_sys##name(const struct pt_regs *regs);	\
@@ -48,16 +58,23 @@
  * To keep the naming coherent, re-define SYSCALL_DEFINE0 to create an alias
  * named __ia32_sys_*()
  */
-#define SYSCALL_DEFINE0(sname)					\
-	SYSCALL_METADATA(_##sname, 0);				\
-	asmlinkage long __x64_sys_##sname(void);		\
-	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);	\
-	SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname);	\
-	asmlinkage long __x64_sys_##sname(void)
-
-#define COND_SYSCALL(name)						\
-	cond_syscall(__x64_sys_##name);					\
-	cond_syscall(__ia32_sys_##name)
+
+#define SYSCALL_DEFINE0(sname)						\
+	SYSCALL_METADATA(_##sname, 0);					\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused);\
+	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);		\
+	SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname);		\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused)
+
+#define COND_SYSCALL(name)							\
+	asmlinkage __weak long __x64_sys_##name(const struct pt_regs *__unused)	\
+	{									\
+		return sys_ni_syscall();					\
+	}									\
+	asmlinkage __weak long __ia32_sys_##name(const struct pt_regs *__unused)\
+	{									\
+		return sys_ni_syscall();					\
+	}
 
 #define SYS_NI(name)							\
 	SYSCALL_ALIAS(__x64_sys_##name, sys_ni_posix_timers);		\
@@ -75,15 +92,24 @@
  * of the x86-64-style parameter ordering of x32 syscalls. The syscalls common
  * with x86_64 obviously do not need such care.
  */
+#define __X32_COMPAT_SYS_STUB0(x, name, ...)				\
+	asmlinkage long __x32_compat_sys_##name(const struct pt_regs *regs);\
+	ALLOW_ERROR_INJECTION(__x32_compat_sys_##name, ERRNO);		\
+	asmlinkage long __x32_compat_sys_##name(const struct pt_regs *regs)\
+	{								\
+		return __se_compat_sys_##name();\
+	}
+
 #define __X32_COMPAT_SYS_STUBx(x, name, ...)				\
 	asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs);\
 	ALLOW_ERROR_INJECTION(__x32_compat_sys##name, ERRNO);		\
 	asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs)\
 	{								\
 		return __se_compat_sys##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\
-	}								\
+	}
 
 #else /* CONFIG_X86_X32 */
+#define __X32_COMPAT_SYS_STUB0(x, name)
 #define __X32_COMPAT_SYS_STUBx(x, name, ...)
 #endif /* CONFIG_X86_X32 */
 
@@ -94,6 +120,17 @@
  * mapping of registers to parameters, we need to generate stubs for each
  * of them.
  */
+#define COMPAT_SYSCALL_DEFINE0(name)					\
+	static long __se_compat_sys_##name(void);			\
+	static inline long __do_compat_sys_##name(void);		\
+	__IA32_COMPAT_SYS_STUB0(x, name)				\
+	__X32_COMPAT_SYS_STUB0(x, name)					\
+	static long __se_compat_sys_##name(void)			\
+	{								\
+		return __do_compat_sys_##name();			\
+	}								\
+	static inline long __do_compat_sys_##name(void)
+
 #define COMPAT_SYSCALL_DEFINEx(x, name, ...)					\
 	static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
 	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
@@ -181,15 +218,19 @@
  * macros to work correctly.
  */
 #ifndef SYSCALL_DEFINE0
-#define SYSCALL_DEFINE0(sname)					\
-	SYSCALL_METADATA(_##sname, 0);				\
-	asmlinkage long __x64_sys_##sname(void);		\
-	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);	\
-	asmlinkage long __x64_sys_##sname(void)
+#define SYSCALL_DEFINE0(sname)						\
+	SYSCALL_METADATA(_##sname, 0);					\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused);\
+	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);		\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused)
 #endif
 
 #ifndef COND_SYSCALL
-#define COND_SYSCALL(name) cond_syscall(__x64_sys_##name)
+#define COND_SYSCALL(name) 							\
+	asmlinkage __weak long __x64_sys_##name(const struct pt_regs *__unused)	\
+	{									\
+		return sys_ni_syscall();					\
+	}
 #endif
 
 #ifndef SYS_NI
@@ -201,7 +242,6 @@
  * For VSYSCALLS, we need to declare these three syscalls with the new
  * pt_regs-based calling convention for in-kernel use.
  */
-struct pt_regs;
 asmlinkage long __x64_sys_getcpu(const struct pt_regs *regs);
 asmlinkage long __x64_sys_gettimeofday(const struct pt_regs *regs);
 asmlinkage long __x64_sys_time(const struct pt_regs *regs);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/topology.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/topology.h
@@ -110,6 +110,8 @@
 #define topology_die_id(cpu)			(cpu_data(cpu).cpu_die_id)
 #define topology_core_id(cpu)			(cpu_data(cpu).cpu_core_id)
 
+extern unsigned int __max_die_per_package;
+
 #ifdef CONFIG_SMP
 #define topology_die_cpumask(cpu)		(per_cpu(cpu_die_map, cpu))
 #define topology_core_cpumask(cpu)		(per_cpu(cpu_core_map, cpu))
@@ -118,8 +120,6 @@
 extern unsigned int __max_logical_packages;
 #define topology_max_packages()			(__max_logical_packages)
 
-extern unsigned int __max_die_per_package;
-
 static inline int topology_max_die_per_package(void)
 {
 	return __max_die_per_package;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/unwind.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/unwind.h
@@ -19,7 +19,7 @@
 #if defined(CONFIG_UNWINDER_ORC)
 	bool signal, full_regs;
 	unsigned long sp, bp, ip;
-	struct pt_regs *regs;
+	struct pt_regs *regs, *prev_regs;
 #elif defined(CONFIG_UNWINDER_FRAME_POINTER)
 	bool got_irq;
 	unsigned long *bp, *orig_sp, ip;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/virtext.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/virtext.h
@@ -30,15 +30,22 @@
 }
 
 
-/** Disable VMX on the current CPU
+/**
+ * cpu_vmxoff() - Disable VMX on the current CPU
  *
- * vmxoff causes a undefined-opcode exception if vmxon was not run
- * on the CPU previously. Only call this function if you know VMX
- * is enabled.
+ * Disable VMX and clear CR4.VMXE (even if VMXOFF faults)
+ *
+ * Note, VMXOFF causes a #UD if the CPU is !post-VMXON, but it's impossible to
+ * atomically track post-VMXON state, e.g. this may be called in NMI context.
+ * Eat all faults as all other faults on VMXOFF faults are mode related, i.e.
+ * faults are guaranteed to be due to the !post-VMXON check unless the CPU is
+ * magically in RM, VM86, compat mode, or at CPL>0.
  */
 static inline void cpu_vmxoff(void)
 {
-	asm volatile ("vmxoff");
+	asm_volatile_goto("1: vmxoff\n\t"
+			  _ASM_EXTABLE(1b, %l[fault]) :::: fault);
+fault:
 	cr4_clear_bits(X86_CR4_VMXE);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/asm/x86_init.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/asm/x86_init.h
@@ -51,12 +51,14 @@
  *				are set up.
  * @intr_init:			interrupt init code
  * @trap_init:			platform specific trap setup
+ * @intr_mode_select:		interrupt delivery mode selection
  * @intr_mode_init:		interrupt delivery mode setup
  */
 struct x86_init_irqs {
 	void (*pre_vector_init)(void);
 	void (*intr_init)(void);
 	void (*trap_init)(void);
+	void (*intr_mode_select)(void);
 	void (*intr_mode_init)(void);
 };
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/include/uapi/asm/unistd.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/include/uapi/asm/unistd.h
@@ -2,8 +2,15 @@
 #ifndef _UAPI_ASM_X86_UNISTD_H
 #define _UAPI_ASM_X86_UNISTD_H
 
-/* x32 syscall flag bit */
-#define __X32_SYSCALL_BIT	0x40000000UL
+/*
+ * x32 syscall flag bit.  Some user programs expect syscall NR macros
+ * and __X32_SYSCALL_BIT to have type int, even though syscall numbers
+ * are, for practical purposes, unsigned long.
+ *
+ * Fortunately, expressions like (nr & ~__X32_SYSCALL_BIT) do the right
+ * thing regardless.
+ */
+#define __X32_SYSCALL_BIT	0x40000000
 
 #ifndef __KERNEL__
 # ifdef __i386__
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/acpi/boot.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/acpi/boot.c
@@ -1740,7 +1740,7 @@
 		new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
 		val = cmpxchg(lock, old, new);
 	} while (unlikely (val != old));
-	return (new < 3) ? -1 : 0;
+	return ((new & 0x3) < 3) ? -1 : 0;
 }
 
 int __acpi_release_global_lock(unsigned int *lock)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/acpi/cstate.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/acpi/cstate.c
@@ -161,7 +161,8 @@
 
 	/* Make sure we are running on right CPU */
 
-	retval = work_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx);
+	retval = call_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx,
+			     false);
 	if (retval == 0) {
 		/* Use the hint in CST */
 		percpu_entry->states[cx->index].eax = cx->address;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/acpi/wakeup_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/acpi/wakeup_32.S
@@ -3,14 +3,14 @@
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 
 # Copyright 2003, 2008 Pavel Machek <pavel@suse.cz
 
 	.code32
 	ALIGN
 
-ENTRY(wakeup_pmode_return)
-wakeup_pmode_return:
+SYM_CODE_START(wakeup_pmode_return)
 	movw	$__KERNEL_DS, %ax
 	movw	%ax, %ss
 	movw	%ax, %fs
@@ -38,7 +38,9 @@
 
 	# jump to place where we left off
 	movl	saved_eip, %eax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp	*%eax
+SYM_CODE_END(wakeup_pmode_return)
 
 bogus_magic:
 	jmp	bogus_magic
@@ -72,7 +74,7 @@
 	popfl
 	ret
 
-ENTRY(do_suspend_lowlevel)
+SYM_CODE_START(do_suspend_lowlevel)
 	call	save_processor_state
 	call	save_registers
 	pushl	$3
@@ -87,6 +89,7 @@
 	call	restore_registers
 	call	restore_processor_state
 	ret
+SYM_CODE_END(do_suspend_lowlevel)
 
 .data
 ALIGN
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/acpi/wakeup_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/acpi/wakeup_64.S
@@ -7,6 +7,7 @@
 #include <asm/msr.h>
 #include <asm/asm-offsets.h>
 #include <asm/frame.h>
+#include <asm/nospec-branch.h>
 
 # Copyright 2003 Pavel Machek <pavel@suse.cz
 
@@ -39,6 +40,7 @@
 	movq	saved_rbp, %rbp
 
 	movq	saved_rip, %rax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp	*%rax
 ENDPROC(wakeup_long64)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/amd_nb.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/amd_nb.c
@@ -18,10 +18,13 @@
 #define PCI_DEVICE_ID_AMD_17H_ROOT	0x1450
 #define PCI_DEVICE_ID_AMD_17H_M10H_ROOT	0x15d0
 #define PCI_DEVICE_ID_AMD_17H_M30H_ROOT	0x1480
+#define PCI_DEVICE_ID_AMD_17H_M60H_ROOT	0x1630
 #define PCI_DEVICE_ID_AMD_17H_DF_F4	0x1464
 #define PCI_DEVICE_ID_AMD_17H_M10H_DF_F4 0x15ec
 #define PCI_DEVICE_ID_AMD_17H_M30H_DF_F4 0x1494
+#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F4 0x144c
 #define PCI_DEVICE_ID_AMD_17H_M70H_DF_F4 0x1444
+#define PCI_DEVICE_ID_AMD_19H_DF_F4	0x1654
 
 /* Protect the PCI config register pairs used for SMN and DF indirect access. */
 static DEFINE_MUTEX(smn_mutex);
@@ -32,6 +35,7 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_ROOT) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_ROOT) },
 	{}
 };
 
@@ -50,8 +54,10 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F3) },
 	{}
 };
 EXPORT_SYMBOL_GPL(amd_nb_misc_ids);
@@ -65,7 +71,9 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F4) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F4) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F4) },
 	{}
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/aperture_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/aperture_64.c
@@ -126,32 +126,6 @@
 }
 
 
-/* Find a PCI capability */
-static u32 __init find_cap(int bus, int slot, int func, int cap)
-{
-	int bytes;
-	u8 pos;
-
-	if (!(read_pci_config_16(bus, slot, func, PCI_STATUS) &
-						PCI_STATUS_CAP_LIST))
-		return 0;
-
-	pos = read_pci_config_byte(bus, slot, func, PCI_CAPABILITY_LIST);
-	for (bytes = 0; bytes < 48 && pos >= 0x40; bytes++) {
-		u8 id;
-
-		pos &= ~3;
-		id = read_pci_config_byte(bus, slot, func, pos+PCI_CAP_LIST_ID);
-		if (id == 0xff)
-			break;
-		if (id == cap)
-			return pos;
-		pos = read_pci_config_byte(bus, slot, func,
-						pos+PCI_CAP_LIST_NEXT);
-	}
-	return 0;
-}
-
 /* Read a standard AGPv3 bridge header */
 static u32 __init read_agp(int bus, int slot, int func, int cap, u32 *order)
 {
@@ -240,8 +214,8 @@
 				case PCI_CLASS_BRIDGE_HOST:
 				case PCI_CLASS_BRIDGE_OTHER: /* needed? */
 					/* AGP bridge? */
-					cap = find_cap(bus, slot, func,
-							PCI_CAP_ID_AGP);
+					cap = pci_early_find_cap(bus, slot,
+						 func, PCI_CAP_ID_AGP);
 					if (!cap)
 						break;
 					*valid_agp = 1;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/apic/apic.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/apic/apic.c
@@ -42,6 +42,7 @@
 #include <asm/x86_init.h>
 #include <asm/pgalloc.h>
 #include <linux/atomic.h>
+#include <asm/barrier.h>
 #include <asm/mpspec.h>
 #include <asm/i8259.h>
 #include <asm/proto.h>
@@ -352,8 +353,6 @@
 		 * According to Intel, MFENCE can do the serialization here.
 		 */
 		asm volatile("mfence" : : : "memory");
-
-		printk_once(KERN_DEBUG "TSC deadline timer enabled\n");
 		return;
 	}
 
@@ -474,6 +473,9 @@
 {
 	u64 tsc;
 
+	/* This MSR is special and need a special fence: */
+	weak_wrmsr_fence();
+
 	tsc = rdtsc();
 	wrmsrl(MSR_IA32_TSC_DEADLINE, tsc + (((u64) delta) * TSC_DIVISOR));
 	return 0;
@@ -552,7 +554,7 @@
 #define DEADLINE_MODEL_MATCH_REV(model, rev)	\
 	{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)rev }
 
-static u32 hsx_deadline_rev(void)
+static __init u32 hsx_deadline_rev(void)
 {
 	switch (boot_cpu_data.x86_stepping) {
 	case 0x02: return 0x3a; /* EP */
@@ -562,7 +564,7 @@
 	return ~0U;
 }
 
-static u32 bdx_deadline_rev(void)
+static __init u32 bdx_deadline_rev(void)
 {
 	switch (boot_cpu_data.x86_stepping) {
 	case 0x02: return 0x00000011;
@@ -574,7 +576,7 @@
 	return ~0U;
 }
 
-static u32 skx_deadline_rev(void)
+static __init u32 skx_deadline_rev(void)
 {
 	switch (boot_cpu_data.x86_stepping) {
 	case 0x03: return 0x01000136;
@@ -587,7 +589,7 @@
 	return ~0U;
 }
 
-static const struct x86_cpu_id deadline_match[] = {
+static const struct x86_cpu_id deadline_match[] __initconst = {
 	DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_HASWELL_X,	hsx_deadline_rev),
 	DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X,	0x0b000020),
 	DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_D,	bdx_deadline_rev),
@@ -609,18 +611,19 @@
 	{},
 };
 
-static void apic_check_deadline_errata(void)
+static __init bool apic_validate_deadline_timer(void)
 {
 	const struct x86_cpu_id *m;
 	u32 rev;
 
-	if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER) ||
-	    boot_cpu_has(X86_FEATURE_HYPERVISOR))
-		return;
+	if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER))
+		return false;
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		return true;
 
 	m = x86_match_cpu(deadline_match);
 	if (!m)
-		return;
+		return true;
 
 	/*
 	 * Function pointers will have the MSB set due to address layout,
@@ -632,11 +635,12 @@
 		rev = (u32)m->driver_data;
 
 	if (boot_cpu_data.microcode >= rev)
-		return;
+		return true;
 
 	setup_clear_cpu_cap(X86_FEATURE_TSC_DEADLINE_TIMER);
 	pr_err(FW_BUG "TSC_DEADLINE disabled due to Errata; "
 	       "please update microcode to version: 0x%x (or later)\n", rev);
+	return false;
 }
 
 /*
@@ -830,8 +834,17 @@
 	if (!tsc_khz || !cpu_khz)
 		return true;
 
-	/* Is there an APIC at all? */
-	if (!boot_cpu_has(X86_FEATURE_APIC))
+	/* Is there an APIC at all or is it disabled? */
+	if (!boot_cpu_has(X86_FEATURE_APIC) || disable_apic)
+		return true;
+
+	/*
+	 * If interrupt delivery mode is legacy PIC or virtual wire without
+	 * configuration, the local APIC timer wont be set up. Make sure
+	 * that the PIT is initialized.
+	 */
+	if (apic_intr_mode == APIC_PIC ||
+	    apic_intr_mode == APIC_VIRTUAL_WIRE_NO_CONFIG)
 		return true;
 
 	/* Virt guests may lack ARAT, but still have DEADLINE */
@@ -1322,7 +1335,7 @@
 
 enum apic_intr_mode_id apic_intr_mode __ro_after_init;
 
-static int __init apic_intr_mode_select(void)
+static int __init __apic_intr_mode_select(void)
 {
 	/* Check kernel option */
 	if (disable_apic) {
@@ -1384,6 +1397,12 @@
 	return APIC_SYMMETRIC_IO;
 }
 
+/* Select the interrupt delivery mode for the BSP */
+void __init apic_intr_mode_select(void)
+{
+	apic_intr_mode = __apic_intr_mode_select();
+}
+
 /*
  * An initial setup of the virtual wire mode.
  */
@@ -1440,8 +1459,6 @@
 {
 	bool upmode = IS_ENABLED(CONFIG_UP_LATE_INIT);
 
-	apic_intr_mode = apic_intr_mode_select();
-
 	switch (apic_intr_mode) {
 	case APIC_PIC:
 		pr_info("APIC: Keep in PIC mode(8259)\n");
@@ -1873,20 +1890,22 @@
 		return;
 
 	if (remap_mode != IRQ_REMAP_X2APIC_MODE) {
-		/* IR is required if there is APIC ID > 255 even when running
-		 * under KVM
+		/*
+		 * Using X2APIC without IR is not architecturally supported
+		 * on bare metal but may be supported in guests.
 		 */
-		if (max_physical_apicid > 255 ||
-		    !x86_init.hyper.x2apic_available()) {
+		if (!x86_init.hyper.x2apic_available()) {
 			pr_info("x2apic: IRQ remapping doesn't support X2APIC mode\n");
 			x2apic_disable();
 			return;
 		}
 
 		/*
-		 * without IR all CPUs can be addressed by IOAPIC/MSI
-		 * only in physical mode
+		 * Without IR, all CPUs can be addressed by IOAPIC/MSI only
+		 * in physical mode, and CPUs with an APIC ID that cannnot
+		 * be addressed must not be brought online.
 		 */
+		x2apic_set_max_apicid(255);
 		x2apic_phys = 1;
 	}
 	x2apic_enable();
@@ -2085,7 +2104,8 @@
 {
 	unsigned int new_apicid;
 
-	apic_check_deadline_errata();
+	if (apic_validate_deadline_timer())
+		pr_info("TSC deadline timer available\n");
 
 	if (x2apic_mode) {
 		boot_cpu_physical_apicid = read_apic_id();
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/apic/io_apic.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/apic/io_apic.c
@@ -1727,9 +1727,10 @@
 
 static inline bool ioapic_irqd_mask(struct irq_data *data)
 {
-	/* If we are moving the irq we need to mask it */
+	/* If we are moving the IRQ we need to mask it */
 	if (unlikely(irqd_is_setaffinity_pending(data))) {
-		mask_ioapic_irq(data);
+		if (!irqd_irq_masked(data))
+			mask_ioapic_irq(data);
 		return true;
 	}
 	return false;
@@ -1766,7 +1767,9 @@
 		 */
 		if (!io_apic_level_ack_pending(data->chip_data))
 			irq_move_masked_irq(data);
-		unmask_ioapic_irq(data);
+		/* If the IRQ is masked in the core, leave it: */
+		if (!irqd_irq_masked(data))
+			unmask_ioapic_irq(data);
 	}
 }
 #else
@@ -2253,6 +2256,7 @@
 	legacy_pic->init(0);
 	legacy_pic->make_irq(0);
 	apic_write(APIC_LVT0, APIC_DM_EXTINT);
+	legacy_pic->unmask(0);
 
 	unlock_ExtINT_logic();
 
@@ -2326,12 +2330,12 @@
 	ip->irqdomain = irq_domain_create_linear(fn, hwirqs, cfg->ops,
 						 (void *)(long)ioapic);
 
-	/* Release fw handle if it was allocated above */
-	if (!cfg->dev)
-		irq_domain_free_fwnode(fn);
-
-	if (!ip->irqdomain)
+	if (!ip->irqdomain) {
+		/* Release fw handle if it was allocated above */
+		if (!cfg->dev)
+			irq_domain_free_fwnode(fn);
 		return -ENOMEM;
+	}
 
 	ip->irqdomain->parent = parent;
 
@@ -2345,8 +2349,13 @@
 
 static void ioapic_destroy_irqdomain(int idx)
 {
+	struct ioapic_domain_cfg *cfg = &ioapics[idx].irqdomain_cfg;
+	struct fwnode_handle *fn = ioapics[idx].irqdomain->fwnode;
+
 	if (ioapics[idx].irqdomain) {
 		irq_domain_remove(ioapics[idx].irqdomain);
+		if (!cfg->dev)
+			irq_domain_free_fwnode(fn);
 		ioapics[idx].irqdomain = NULL;
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/apic/msi.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/apic/msi.c
@@ -23,10 +23,8 @@
 
 static struct irq_domain *msi_default_domain;
 
-static void irq_msi_compose_msg(struct irq_data *data, struct msi_msg *msg)
+static void __irq_msi_compose_msg(struct irq_cfg *cfg, struct msi_msg *msg)
 {
-	struct irq_cfg *cfg = irqd_cfg(data);
-
 	msg->address_hi = MSI_ADDR_BASE_HI;
 
 	if (x2apic_enabled())
@@ -47,6 +45,127 @@
 		MSI_DATA_VECTOR(cfg->vector);
 }
 
+static void irq_msi_compose_msg(struct irq_data *data, struct msi_msg *msg)
+{
+	__irq_msi_compose_msg(irqd_cfg(data), msg);
+}
+
+static void irq_msi_update_msg(struct irq_data *irqd, struct irq_cfg *cfg)
+{
+	struct msi_msg msg[2] = { [1] = { }, };
+
+	__irq_msi_compose_msg(cfg, msg);
+	irq_data_get_irq_chip(irqd)->irq_write_msi_msg(irqd, msg);
+}
+
+static int
+msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)
+{
+	struct irq_cfg old_cfg, *cfg = irqd_cfg(irqd);
+	struct irq_data *parent = irqd->parent_data;
+	unsigned int cpu;
+	int ret;
+
+	/* Save the current configuration */
+	cpu = cpumask_first(irq_data_get_effective_affinity_mask(irqd));
+	old_cfg = *cfg;
+
+	/* Allocate a new target vector */
+	ret = parent->chip->irq_set_affinity(parent, mask, force);
+	if (ret < 0 || ret == IRQ_SET_MASK_OK_DONE)
+		return ret;
+
+	/*
+	 * For non-maskable and non-remapped MSI interrupts the migration
+	 * to a different destination CPU and a different vector has to be
+	 * done careful to handle the possible stray interrupt which can be
+	 * 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 new vector is the same as the old vector
+	 * - The old vector is MANAGED_IRQ_SHUTDOWN_VECTOR (interrupt starts up)
+	 * - The new destination CPU is the same as the old destination CPU
+	 */
+	if (!irqd_msi_nomask_quirk(irqd) ||
+	    cfg->vector == old_cfg.vector ||
+	    old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR ||
+	    cfg->dest_apicid == old_cfg.dest_apicid) {
+		irq_msi_update_msg(irqd, cfg);
+		return ret;
+	}
+
+	/*
+	 * Paranoia: Validate that the interrupt target is the local
+	 * CPU.
+	 */
+	if (WARN_ON_ONCE(cpu != smp_processor_id())) {
+		irq_msi_update_msg(irqd, cfg);
+		return ret;
+	}
+
+	/*
+	 * Redirect the interrupt to the new vector on the current CPU
+	 * first. This might cause a spurious interrupt on this vector if
+	 * the device raises an interrupt right between this update and the
+	 * update to the final destination CPU.
+	 *
+	 * If the vector is in use then the installed device handler will
+	 * denote it as spurious which is no harm as this is a rare event
+	 * and interrupt handlers have to cope with spurious interrupts
+	 * anyway. If the vector is unused, then it is marked so it won't
+	 * trigger the 'No irq handler for vector' warning in do_IRQ().
+	 *
+	 * This requires to hold vector lock to prevent concurrent updates to
+	 * the affected vector.
+	 */
+	lock_vector_lock();
+
+	/*
+	 * Mark the new target vector on the local CPU if it is currently
+	 * unused. Reuse the VECTOR_RETRIGGERED state which is also used in
+	 * the CPU hotplug path for a similar purpose. This cannot be
+	 * undone here as the current CPU has interrupts disabled and
+	 * cannot handle the interrupt before the whole set_affinity()
+	 * section is done. In the CPU unplug case, the current CPU is
+	 * about to vanish and will not handle any interrupts anymore. The
+	 * vector is cleaned up when the CPU comes online again.
+	 */
+	if (IS_ERR_OR_NULL(this_cpu_read(vector_irq[cfg->vector])))
+		this_cpu_write(vector_irq[cfg->vector], VECTOR_RETRIGGERED);
+
+	/* Redirect it to the new vector on the local CPU temporarily */
+	old_cfg.vector = cfg->vector;
+	irq_msi_update_msg(irqd, &old_cfg);
+
+	/* Now transition it to the target CPU */
+	irq_msi_update_msg(irqd, cfg);
+
+	/*
+	 * All interrupts after this point are now targeted at the new
+	 * vector/CPU.
+	 *
+	 * Drop vector lock before testing whether the temporary assignment
+	 * to the local CPU was hit by an interrupt raised in the device,
+	 * because the retrigger function acquires vector lock again.
+	 */
+	unlock_vector_lock();
+
+	/*
+	 * Check whether the transition raced with a device interrupt and
+	 * is pending in the local APICs IRR. It is safe to do this outside
+	 * of vector lock as the irq_desc::lock of this interrupt is still
+	 * held and interrupts are disabled: The check is not accessing the
+	 * underlying vector store. It's just checking the local APIC's
+	 * IRR.
+	 */
+	if (lapic_vector_set_in_irr(cfg->vector))
+		irq_data_get_irq_chip(irqd)->irq_retrigger(irqd);
+
+	return ret;
+}
+
 /*
  * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices,
  * which implement the MSI or MSI-X Capability Structure.
@@ -58,6 +177,7 @@
 	.irq_ack		= irq_chip_ack_parent,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_compose_msi_msg	= irq_msi_compose_msg,
+	.irq_set_affinity	= msi_set_affinity,
 	.flags			= IRQCHIP_SKIP_SET_WAKE,
 };
 
@@ -142,10 +262,13 @@
 		msi_default_domain =
 			pci_msi_create_irq_domain(fn, &pci_msi_domain_info,
 						  parent);
-		irq_domain_free_fwnode(fn);
 	}
-	if (!msi_default_domain)
+	if (!msi_default_domain) {
+		irq_domain_free_fwnode(fn);
 		pr_warn("failed to initialize irqdomain for MSI/MSI-x.\n");
+	} else {
+		msi_default_domain->flags |= IRQ_DOMAIN_MSI_NOMASK_QUIRK;
+	}
 }
 
 #ifdef CONFIG_IRQ_REMAP
@@ -178,7 +301,8 @@
 	if (!fn)
 		return NULL;
 	d = pci_msi_create_irq_domain(fn, &pci_msi_ir_domain_info, parent);
-	irq_domain_free_fwnode(fn);
+	if (!d)
+		irq_domain_free_fwnode(fn);
 	return d;
 }
 #endif
@@ -241,7 +365,8 @@
 	if (fn) {
 		dmar_domain = msi_create_irq_domain(fn, &dmar_msi_domain_info,
 						    x86_vector_domain);
-		irq_domain_free_fwnode(fn);
+		if (!dmar_domain)
+			irq_domain_free_fwnode(fn);
 	}
 out:
 	mutex_unlock(&dmar_lock);
@@ -366,7 +491,10 @@
 	}
 
 	d = msi_create_irq_domain(fn, domain_info, parent);
-	irq_domain_free_fwnode(fn);
+	if (!d) {
+		irq_domain_free_fwnode(fn);
+		kfree(domain_info);
+	}
 	return d;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/apic/vector.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/apic/vector.c
@@ -272,20 +272,24 @@
 	const struct cpumask *affmsk = irq_data_get_affinity_mask(irqd);
 	int node = irq_data_get_node(irqd);
 
-	if (node == NUMA_NO_NODE)
-		goto all;
-	/* Try the intersection of @affmsk and node mask */
-	cpumask_and(vector_searchmask, cpumask_of_node(node), affmsk);
-	if (!assign_vector_locked(irqd, vector_searchmask))
-		return 0;
-	/* Try the node mask */
-	if (!assign_vector_locked(irqd, cpumask_of_node(node)))
-		return 0;
-all:
+	if (node != NUMA_NO_NODE) {
+		/* Try the intersection of @affmsk and node mask */
+		cpumask_and(vector_searchmask, cpumask_of_node(node), affmsk);
+		if (!assign_vector_locked(irqd, vector_searchmask))
+			return 0;
+	}
+
 	/* Try the full affinity mask */
 	cpumask_and(vector_searchmask, affmsk, cpu_online_mask);
 	if (!assign_vector_locked(irqd, vector_searchmask))
 		return 0;
+
+	if (node != NUMA_NO_NODE) {
+		/* Try the node mask */
+		if (!assign_vector_locked(irqd, cpumask_of_node(node)))
+			return 0;
+	}
+
 	/* Try the full online mask */
 	return assign_vector_locked(irqd, cpu_online_mask);
 }
@@ -446,12 +450,10 @@
 	trace_vector_activate(irqd->irq, apicd->is_managed,
 			      apicd->can_reserve, reserve);
 
-	/* Nothing to do for fixed assigned vectors */
-	if (!apicd->can_reserve && !apicd->is_managed)
-		return 0;
-
 	raw_spin_lock_irqsave(&vector_lock, flags);
-	if (reserve || irqd_is_managed_and_shutdown(irqd))
+	if (!apicd->can_reserve && !apicd->is_managed)
+		assign_irq_vector_any_locked(irqd);
+	else if (reserve || irqd_is_managed_and_shutdown(irqd))
 		vector_assign_managed_shutdown(irqd);
 	else if (apicd->is_managed)
 		ret = activate_managed(irqd);
@@ -556,6 +558,10 @@
 		irqd->chip_data = apicd;
 		irqd->hwirq = virq + i;
 		irqd_set_single_target(irqd);
+
+		/* Don't invoke affinity setter on deactivated interrupts */
+		irqd_set_affinity_on_activate(irqd);
+
 		/*
 		 * Legacy vectors are already assigned when the IOAPIC
 		 * takes them over. They stay on the same vector. This is
@@ -703,7 +709,6 @@
 	x86_vector_domain = irq_domain_create_tree(fn, &x86_vector_domain_ops,
 						   NULL);
 	BUG_ON(x86_vector_domain == NULL);
-	irq_domain_free_fwnode(fn);
 	irq_set_default_host(x86_vector_domain);
 
 	arch_init_msi_domain(x86_vector_domain);
@@ -769,20 +774,10 @@
 static int apic_set_affinity(struct irq_data *irqd,
 			     const struct cpumask *dest, bool force)
 {
-	struct apic_chip_data *apicd = apic_chip_data(irqd);
 	int err;
 
-	/*
-	 * Core code can call here for inactive interrupts. For inactive
-	 * interrupts which use managed or reservation mode there is no
-	 * point in going through the vector assignment right now as the
-	 * activation will assign a vector which fits the destination
-	 * cpumask. Let the core code store the destination mask and be
-	 * done with it.
-	 */
-	if (!irqd_is_activated(irqd) &&
-	    (apicd->is_managed || apicd->can_reserve))
-		return IRQ_SET_MASK_OK;
+	if (WARN_ON_ONCE(!irqd_is_activated(irqd)))
+		return -EIO;
 
 	raw_spin_lock(&vector_lock);
 	cpumask_and(vector_searchmask, dest, cpu_online_mask);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/apic/x2apic_cluster.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/apic/x2apic_cluster.c
@@ -29,7 +29,8 @@
 {
 	u32 dest = per_cpu(x86_cpu_to_logical_apicid, cpu);
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	__x2apic_send_IPI_dest(dest, vector, APIC_DEST_LOGICAL);
 }
 
@@ -41,7 +42,8 @@
 	unsigned long flags;
 	u32 dest;
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	local_irq_save(flags);
 
 	tmpmsk = this_cpu_cpumask_var_ptr(ipi_mask);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/apic/x2apic_phys.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/apic/x2apic_phys.c
@@ -8,6 +8,12 @@
 int x2apic_phys;
 
 static struct apic apic_x2apic_phys;
+static u32 x2apic_max_apicid __ro_after_init;
+
+void __init x2apic_set_max_apicid(u32 apicid)
+{
+	x2apic_max_apicid = apicid;
+}
 
 static int __init set_x2apic_phys_mode(char *arg)
 {
@@ -37,7 +43,8 @@
 {
 	u32 dest = per_cpu(x86_cpu_to_apicid, cpu);
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	__x2apic_send_IPI_dest(dest, vector, APIC_DEST_PHYSICAL);
 }
 
@@ -48,7 +55,8 @@
 	unsigned long this_cpu;
 	unsigned long flags;
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 
 	local_irq_save(flags);
 
@@ -98,6 +106,9 @@
 /* Common x2apic functions, also used by x2apic_cluster */
 int x2apic_apic_id_valid(u32 apicid)
 {
+	if (x2apic_max_apicid && apicid > x2apic_max_apicid)
+		return 0;
+
 	return 1;
 }
 
@@ -116,7 +127,8 @@
 {
 	unsigned long cfg = __prepare_ICR(which, vector, 0);
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	native_x2apic_icr_write(cfg, 0);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/amd.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/amd.c
@@ -28,6 +28,7 @@
 
 static const int amd_erratum_383[];
 static const int amd_erratum_400[];
+static const int amd_erratum_1054[];
 static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum);
 
 /*
@@ -334,7 +335,6 @@
  */
 static void amd_get_topology(struct cpuinfo_x86 *c)
 {
-	u8 node_id;
 	int cpu = smp_processor_id();
 
 	/* get information required for multi-node processors */
@@ -344,7 +344,7 @@
 
 		cpuid(0x8000001e, &eax, &ebx, &ecx, &edx);
 
-		node_id  = ecx & 0xff;
+		c->cpu_die_id  = ecx & 0xff;
 
 		if (c->x86 == 0x15)
 			c->cu_id = ebx & 0xff;
@@ -364,15 +364,15 @@
 		if (!err)
 			c->x86_coreid_bits = get_count_order(c->x86_max_cores);
 
-		cacheinfo_amd_init_llc_id(c, cpu, node_id);
+		cacheinfo_amd_init_llc_id(c, cpu);
 
 	} else if (cpu_has(c, X86_FEATURE_NODEID_MSR)) {
 		u64 value;
 
 		rdmsrl(MSR_FAM10H_NODE_ID, value);
-		node_id = value & 7;
+		c->cpu_die_id = value & 7;
 
-		per_cpu(cpu_llc_id, cpu) = node_id;
+		per_cpu(cpu_llc_id, cpu) = c->cpu_die_id;
 	} else
 		return;
 
@@ -397,7 +397,7 @@
 	/* Convert the initial APIC ID into the socket ID */
 	c->phys_proc_id = c->initial_apicid >> bits;
 	/* use socket ID also for last level cache */
-	per_cpu(cpu_llc_id, cpu) = c->phys_proc_id;
+	per_cpu(cpu_llc_id, cpu) = c->cpu_die_id = c->phys_proc_id;
 }
 
 u16 amd_get_nb_id(int cpu)
@@ -545,12 +545,12 @@
 		u32 ecx;
 
 		ecx = cpuid_ecx(0x8000001e);
-		nodes_per_socket = ((ecx >> 8) & 7) + 1;
+		__max_die_per_package = nodes_per_socket = ((ecx >> 8) & 7) + 1;
 	} else if (boot_cpu_has(X86_FEATURE_NODEID_MSR)) {
 		u64 value;
 
 		rdmsrl(MSR_FAM10H_NODE_ID, value);
-		nodes_per_socket = ((value >> 3) & 7) + 1;
+		__max_die_per_package = nodes_per_socket = ((value >> 3) & 7) + 1;
 	}
 
 	if (!boot_cpu_has(X86_FEATURE_AMD_SSBD) &&
@@ -615,9 +615,9 @@
 		return;
 
 clear_all:
-		clear_cpu_cap(c, X86_FEATURE_SME);
+		setup_clear_cpu_cap(X86_FEATURE_SME);
 clear_sev:
-		clear_cpu_cap(c, X86_FEATURE_SEV);
+		setup_clear_cpu_cap(X86_FEATURE_SEV);
 	}
 }
 
@@ -978,6 +978,15 @@
 	/* AMD CPUs don't reset SS attributes on SYSRET, Xen does. */
 	if (!cpu_has(c, X86_FEATURE_XENPV))
 		set_cpu_bug(c, X86_BUG_SYSRET_SS_ATTRS);
+
+	/*
+	 * Turn on the Instructions Retired free counter on machines not
+	 * susceptible to erratum #1054 "Instructions Retired Performance
+	 * Counter May Be Inaccurate".
+	 */
+	if (cpu_has(c, X86_FEATURE_IRPERF) &&
+	    !cpu_has_amd_erratum(c, amd_erratum_1054))
+		msr_set_bit(MSR_K7_HWCR, MSR_K7_HWCR_IRPERF_EN_BIT);
 }
 
 #ifdef CONFIG_X86_32
@@ -1105,6 +1114,9 @@
 static const int amd_erratum_383[] =
 	AMD_OSVW_ERRATUM(3, AMD_MODEL_RANGE(0x10, 0, 0, 0xff, 0xf));
 
+/* #1054: Instructions Retired Performance Counter May Be Inaccurate */
+static const int amd_erratum_1054[] =
+	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf));
 
 static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/bugs.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/bugs.c
@@ -39,7 +39,9 @@
 static void __init ssb_select_mitigation(void);
 static void __init l1tf_select_mitigation(void);
 static void __init mds_select_mitigation(void);
+static void __init mds_print_mitigation(void);
 static void __init taa_select_mitigation(void);
+static void __init srbds_select_mitigation(void);
 
 /* The base value of the SPEC_CTRL MSR that always has to be preserved. */
 u64 x86_spec_ctrl_base;
@@ -107,6 +109,13 @@
 	l1tf_select_mitigation();
 	mds_select_mitigation();
 	taa_select_mitigation();
+	srbds_select_mitigation();
+
+	/*
+	 * As MDS and TAA mitigations are inter-related, print MDS
+	 * mitigation until after TAA mitigation selection is done.
+	 */
+	mds_print_mitigation();
 
 	arch_smt_update();
 
@@ -245,6 +254,12 @@
 		    (mds_nosmt || cpu_mitigations_auto_nosmt()))
 			cpu_smt_disable(false);
 	}
+}
+
+static void __init mds_print_mitigation(void)
+{
+	if (!boot_cpu_has_bug(X86_BUG_MDS) || cpu_mitigations_off())
+		return;
 
 	pr_info("%s\n", mds_strings[mds_mitigation]);
 }
@@ -304,8 +319,12 @@
 		return;
 	}
 
-	/* TAA mitigation is turned off on the cmdline (tsx_async_abort=off) */
-	if (taa_mitigation == TAA_MITIGATION_OFF)
+	/*
+	 * TAA mitigation via VERW is turned off if both
+	 * tsx_async_abort=off and mds=off are specified.
+	 */
+	if (taa_mitigation == TAA_MITIGATION_OFF &&
+	    mds_mitigation == MDS_MITIGATION_OFF)
 		goto out;
 
 	if (boot_cpu_has(X86_FEATURE_MD_CLEAR))
@@ -339,6 +358,15 @@
 	if (taa_nosmt || cpu_mitigations_auto_nosmt())
 		cpu_smt_disable(false);
 
+	/*
+	 * Update MDS mitigation, if necessary, as the mds_user_clear is
+	 * now enabled for TAA mitigation.
+	 */
+	if (mds_mitigation == MDS_MITIGATION_OFF &&
+	    boot_cpu_has_bug(X86_BUG_MDS)) {
+		mds_mitigation = MDS_MITIGATION_FULL;
+		mds_select_mitigation();
+	}
 out:
 	pr_info("%s\n", taa_strings[taa_mitigation]);
 }
@@ -365,6 +393,97 @@
 early_param("tsx_async_abort", tsx_async_abort_parse_cmdline);
 
 #undef pr_fmt
+#define pr_fmt(fmt)	"SRBDS: " fmt
+
+enum srbds_mitigations {
+	SRBDS_MITIGATION_OFF,
+	SRBDS_MITIGATION_UCODE_NEEDED,
+	SRBDS_MITIGATION_FULL,
+	SRBDS_MITIGATION_TSX_OFF,
+	SRBDS_MITIGATION_HYPERVISOR,
+};
+
+static enum srbds_mitigations srbds_mitigation __ro_after_init = SRBDS_MITIGATION_FULL;
+
+static const char * const srbds_strings[] = {
+	[SRBDS_MITIGATION_OFF]		= "Vulnerable",
+	[SRBDS_MITIGATION_UCODE_NEEDED]	= "Vulnerable: No microcode",
+	[SRBDS_MITIGATION_FULL]		= "Mitigation: Microcode",
+	[SRBDS_MITIGATION_TSX_OFF]	= "Mitigation: TSX disabled",
+	[SRBDS_MITIGATION_HYPERVISOR]	= "Unknown: Dependent on hypervisor status",
+};
+
+static bool srbds_off;
+
+void update_srbds_msr(void)
+{
+	u64 mcu_ctrl;
+
+	if (!boot_cpu_has_bug(X86_BUG_SRBDS))
+		return;
+
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		return;
+
+	if (!boot_cpu_has(X86_FEATURE_SRBDS_CTRL))
+		return;
+
+	rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+
+	switch (srbds_mitigation) {
+	case SRBDS_MITIGATION_OFF:
+	case SRBDS_MITIGATION_TSX_OFF:
+		mcu_ctrl |= RNGDS_MITG_DIS;
+		break;
+	case SRBDS_MITIGATION_FULL:
+		mcu_ctrl &= ~RNGDS_MITG_DIS;
+		break;
+	default:
+		break;
+	}
+
+	wrmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+}
+
+static void __init srbds_select_mitigation(void)
+{
+	u64 ia32_cap;
+
+	if (!boot_cpu_has_bug(X86_BUG_SRBDS))
+		return;
+
+	/*
+	 * Check to see if this is one of the MDS_NO systems supporting
+	 * TSX that are only exposed to SRBDS when TSX is enabled.
+	 */
+	ia32_cap = x86_read_arch_cap_msr();
+	if ((ia32_cap & ARCH_CAP_MDS_NO) && !boot_cpu_has(X86_FEATURE_RTM))
+		srbds_mitigation = SRBDS_MITIGATION_TSX_OFF;
+	else if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		srbds_mitigation = SRBDS_MITIGATION_HYPERVISOR;
+	else if (!boot_cpu_has(X86_FEATURE_SRBDS_CTRL))
+		srbds_mitigation = SRBDS_MITIGATION_UCODE_NEEDED;
+	else if (cpu_mitigations_off() || srbds_off)
+		srbds_mitigation = SRBDS_MITIGATION_OFF;
+
+	update_srbds_msr();
+	pr_info("%s\n", srbds_strings[srbds_mitigation]);
+}
+
+static int __init srbds_parse_cmdline(char *str)
+{
+	if (!str)
+		return -EINVAL;
+
+	if (!boot_cpu_has_bug(X86_BUG_SRBDS))
+		return 0;
+
+	srbds_off = !strcmp(str, "off");
+	return 0;
+}
+early_param("srbds", srbds_parse_cmdline);
+
+#undef pr_fmt
 #define pr_fmt(fmt)     "Spectre V1 : " fmt
 
 enum spectre_v1_mitigation {
@@ -462,7 +581,9 @@
 static enum spectre_v2_mitigation spectre_v2_enabled __ro_after_init =
 	SPECTRE_V2_NONE;
 
-static enum spectre_v2_user_mitigation spectre_v2_user __ro_after_init =
+static enum spectre_v2_user_mitigation spectre_v2_user_stibp __ro_after_init =
+	SPECTRE_V2_USER_NONE;
+static enum spectre_v2_user_mitigation spectre_v2_user_ibpb __ro_after_init =
 	SPECTRE_V2_USER_NONE;
 
 #ifdef CONFIG_RETPOLINE
@@ -608,24 +729,17 @@
 		break;
 	}
 
-	/*
-	 * At this point, an STIBP mode other than "off" has been set.
-	 * If STIBP support is not being forced, check if STIBP always-on
-	 * is preferred.
-	 */
-	if (mode != SPECTRE_V2_USER_STRICT &&
-	    boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON))
-		mode = SPECTRE_V2_USER_STRICT_PREFERRED;
-
 	/* Initialize Indirect Branch Prediction Barrier */
 	if (boot_cpu_has(X86_FEATURE_IBPB)) {
 		setup_force_cpu_cap(X86_FEATURE_USE_IBPB);
 
+		spectre_v2_user_ibpb = mode;
 		switch (cmd) {
 		case SPECTRE_V2_USER_CMD_FORCE:
 		case SPECTRE_V2_USER_CMD_PRCTL_IBPB:
 		case SPECTRE_V2_USER_CMD_SECCOMP_IBPB:
 			static_branch_enable(&switch_mm_always_ibpb);
+			spectre_v2_user_ibpb = SPECTRE_V2_USER_STRICT;
 			break;
 		case SPECTRE_V2_USER_CMD_PRCTL:
 		case SPECTRE_V2_USER_CMD_AUTO:
@@ -641,21 +755,32 @@
 			"always-on" : "conditional");
 	}
 
-	/* If enhanced IBRS is enabled no STIBP required */
-	if (spectre_v2_enabled == SPECTRE_V2_IBRS_ENHANCED)
+	/*
+	 * If enhanced IBRS is enabled or SMT impossible, STIBP is not
+	 * required.
+	 */
+	if (!smt_possible || spectre_v2_enabled == SPECTRE_V2_IBRS_ENHANCED)
 		return;
 
 	/*
-	 * If SMT is not possible or STIBP is not available clear the STIBP
-	 * mode.
+	 * At this point, an STIBP mode other than "off" has been set.
+	 * If STIBP support is not being forced, check if STIBP always-on
+	 * is preferred.
+	 */
+	if (mode != SPECTRE_V2_USER_STRICT &&
+	    boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON))
+		mode = SPECTRE_V2_USER_STRICT_PREFERRED;
+
+	/*
+	 * If STIBP is not available, clear the STIBP mode.
 	 */
-	if (!smt_possible || !boot_cpu_has(X86_FEATURE_STIBP))
+	if (!boot_cpu_has(X86_FEATURE_STIBP))
 		mode = SPECTRE_V2_USER_NONE;
+
+	spectre_v2_user_stibp = mode;
+
 set_mode:
-	spectre_v2_user = mode;
-	/* Only print the STIBP mode when SMT possible */
-	if (smt_possible)
-		pr_info("%s\n", spectre_v2_user_strings[mode]);
+	pr_info("%s\n", spectre_v2_user_strings[mode]);
 }
 
 static const char * const spectre_v2_strings[] = {
@@ -888,7 +1013,7 @@
 {
 	mutex_lock(&spec_ctrl_mutex);
 
-	switch (spectre_v2_user) {
+	switch (spectre_v2_user_stibp) {
 	case SPECTRE_V2_USER_NONE:
 		break;
 	case SPECTRE_V2_USER_STRICT:
@@ -1127,19 +1252,41 @@
 	return 0;
 }
 
+static bool is_spec_ib_user_controlled(void)
+{
+	return spectre_v2_user_ibpb == SPECTRE_V2_USER_PRCTL ||
+		spectre_v2_user_ibpb == SPECTRE_V2_USER_SECCOMP ||
+		spectre_v2_user_stibp == SPECTRE_V2_USER_PRCTL ||
+		spectre_v2_user_stibp == SPECTRE_V2_USER_SECCOMP;
+}
+
 static int ib_prctl_set(struct task_struct *task, unsigned long ctrl)
 {
 	switch (ctrl) {
 	case PR_SPEC_ENABLE:
-		if (spectre_v2_user == SPECTRE_V2_USER_NONE)
+		if (spectre_v2_user_ibpb == SPECTRE_V2_USER_NONE &&
+		    spectre_v2_user_stibp == SPECTRE_V2_USER_NONE)
 			return 0;
+
 		/*
-		 * Indirect branch speculation is always disabled in strict
-		 * mode.
+		 * With strict mode for both IBPB and STIBP, the instruction
+		 * code paths avoid checking this task flag and instead,
+		 * unconditionally run the instruction. However, STIBP and IBPB
+		 * are independent and either can be set to conditionally
+		 * enabled regardless of the mode of the other.
+		 *
+		 * If either is set to conditional, allow the task flag to be
+		 * updated, unless it was force-disabled by a previous prctl
+		 * call. Currently, this is possible on an AMD CPU which has the
+		 * feature X86_FEATURE_AMD_STIBP_ALWAYS_ON. In this case, if the
+		 * kernel is booted with 'spectre_v2_user=seccomp', then
+		 * spectre_v2_user_ibpb == SPECTRE_V2_USER_SECCOMP and
+		 * spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT_PREFERRED.
 		 */
-		if (spectre_v2_user == SPECTRE_V2_USER_STRICT ||
-		    spectre_v2_user == SPECTRE_V2_USER_STRICT_PREFERRED)
+		if (!is_spec_ib_user_controlled() ||
+		    task_spec_ib_force_disable(task))
 			return -EPERM;
+
 		task_clear_spec_ib_disable(task);
 		task_update_spec_tif(task);
 		break;
@@ -1149,11 +1296,13 @@
 		 * Indirect branch speculation is always allowed when
 		 * mitigation is force disabled.
 		 */
-		if (spectre_v2_user == SPECTRE_V2_USER_NONE)
+		if (spectre_v2_user_ibpb == SPECTRE_V2_USER_NONE &&
+		    spectre_v2_user_stibp == SPECTRE_V2_USER_NONE)
 			return -EPERM;
-		if (spectre_v2_user == SPECTRE_V2_USER_STRICT ||
-		    spectre_v2_user == SPECTRE_V2_USER_STRICT_PREFERRED)
+
+		if (!is_spec_ib_user_controlled())
 			return 0;
+
 		task_set_spec_ib_disable(task);
 		if (ctrl == PR_SPEC_FORCE_DISABLE)
 			task_set_spec_ib_force_disable(task);
@@ -1183,7 +1332,8 @@
 {
 	if (ssb_mode == SPEC_STORE_BYPASS_SECCOMP)
 		ssb_prctl_set(task, PR_SPEC_FORCE_DISABLE);
-	if (spectre_v2_user == SPECTRE_V2_USER_SECCOMP)
+	if (spectre_v2_user_ibpb == SPECTRE_V2_USER_SECCOMP ||
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_SECCOMP)
 		ib_prctl_set(task, PR_SPEC_FORCE_DISABLE);
 }
 #endif
@@ -1214,22 +1364,21 @@
 	if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V2))
 		return PR_SPEC_NOT_AFFECTED;
 
-	switch (spectre_v2_user) {
-	case SPECTRE_V2_USER_NONE:
+	if (spectre_v2_user_ibpb == SPECTRE_V2_USER_NONE &&
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_NONE)
 		return PR_SPEC_ENABLE;
-	case SPECTRE_V2_USER_PRCTL:
-	case SPECTRE_V2_USER_SECCOMP:
+	else if (is_spec_ib_user_controlled()) {
 		if (task_spec_ib_force_disable(task))
 			return PR_SPEC_PRCTL | PR_SPEC_FORCE_DISABLE;
 		if (task_spec_ib_disable(task))
 			return PR_SPEC_PRCTL | PR_SPEC_DISABLE;
 		return PR_SPEC_PRCTL | PR_SPEC_ENABLE;
-	case SPECTRE_V2_USER_STRICT:
-	case SPECTRE_V2_USER_STRICT_PREFERRED:
+	} else if (spectre_v2_user_ibpb == SPECTRE_V2_USER_STRICT ||
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT ||
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT_PREFERRED)
 		return PR_SPEC_DISABLE;
-	default:
+	else
 		return PR_SPEC_NOT_AFFECTED;
-	}
 }
 
 int arch_prctl_spec_ctrl_get(struct task_struct *task, unsigned long which)
@@ -1468,7 +1617,7 @@
 	if (spectre_v2_enabled == SPECTRE_V2_IBRS_ENHANCED)
 		return "";
 
-	switch (spectre_v2_user) {
+	switch (spectre_v2_user_stibp) {
 	case SPECTRE_V2_USER_NONE:
 		return ", STIBP: disabled";
 	case SPECTRE_V2_USER_STRICT:
@@ -1495,6 +1644,11 @@
 	return "";
 }
 
+static ssize_t srbds_show_state(char *buf)
+{
+	return sprintf(buf, "%s\n", srbds_strings[srbds_mitigation]);
+}
+
 static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr,
 			       char *buf, unsigned int bug)
 {
@@ -1539,6 +1693,9 @@
 	case X86_BUG_ITLB_MULTIHIT:
 		return itlb_multihit_show_state(buf);
 
+	case X86_BUG_SRBDS:
+		return srbds_show_state(buf);
+
 	default:
 		break;
 	}
@@ -1585,4 +1742,9 @@
 {
 	return cpu_show_common(dev, attr, buf, X86_BUG_ITLB_MULTIHIT);
 }
+
+ssize_t cpu_show_srbds(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	return cpu_show_common(dev, attr, buf, X86_BUG_SRBDS);
+}
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/cacheinfo.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/cacheinfo.c
@@ -646,7 +646,7 @@
 	return i;
 }
 
-void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id)
+void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu)
 {
 	/*
 	 * We may have multiple LLCs if L3 caches exist, so check if we
@@ -657,7 +657,7 @@
 
 	if (c->x86 < 0x17) {
 		/* LLC is at the node level. */
-		per_cpu(cpu_llc_id, cpu) = node_id;
+		per_cpu(cpu_llc_id, cpu) = c->cpu_die_id;
 	} else if (c->x86 == 0x17 && c->x86_model <= 0x1F) {
 		/*
 		 * LLC is at the core complex level.
@@ -684,7 +684,7 @@
 	}
 }
 
-void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id)
+void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu)
 {
 	/*
 	 * We may have multiple LLCs if L3 caches exist, so check if we
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/common.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/common.c
@@ -366,6 +366,9 @@
 	cr4_clear_bits(X86_CR4_UMIP);
 }
 
+/* These bits should not change their value after CPU init is finished. */
+static const unsigned long cr4_pinned_mask =
+	X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_UMIP | X86_CR4_FSGSBASE;
 static DEFINE_STATIC_KEY_FALSE_RO(cr_pinning);
 static unsigned long cr4_pinned_bits __ro_after_init;
 
@@ -374,7 +377,7 @@
 	unsigned long bits_missing = 0;
 
 set_register:
-	asm volatile("mov %0,%%cr0": "+r" (val), "+m" (__force_order));
+	asm volatile("mov %0,%%cr0": "+r" (val) : : "memory");
 
 	if (static_branch_likely(&cr_pinning)) {
 		if (unlikely((val & X86_CR0_WP) != X86_CR0_WP)) {
@@ -390,20 +393,20 @@
 
 void native_write_cr4(unsigned long val)
 {
-	unsigned long bits_missing = 0;
+	unsigned long bits_changed = 0;
 
 set_register:
-	asm volatile("mov %0,%%cr4": "+r" (val), "+m" (cr4_pinned_bits));
+	asm volatile("mov %0,%%cr4": "+r" (val) : : "memory");
 
 	if (static_branch_likely(&cr_pinning)) {
-		if (unlikely((val & cr4_pinned_bits) != cr4_pinned_bits)) {
-			bits_missing = ~val & cr4_pinned_bits;
-			val |= bits_missing;
+		if (unlikely((val & cr4_pinned_mask) != cr4_pinned_bits)) {
+			bits_changed = (val & cr4_pinned_mask) ^ cr4_pinned_bits;
+			val = (val & ~cr4_pinned_mask) | cr4_pinned_bits;
 			goto set_register;
 		}
-		/* Warn after we've set the missing bits. */
-		WARN_ONCE(bits_missing, "CR4 bits went missing: %lx!?\n",
-			  bits_missing);
+		/* Warn after we've corrected the changed bits. */
+		WARN_ONCE(bits_changed, "pinned CR4 bits changed: 0x%lx!?\n",
+			  bits_changed);
 	}
 }
 EXPORT_SYMBOL(native_write_cr4);
@@ -415,7 +418,7 @@
 	if (boot_cpu_has(X86_FEATURE_PCID))
 		cr4 |= X86_CR4_PCIDE;
 	if (static_branch_likely(&cr_pinning))
-		cr4 |= cr4_pinned_bits;
+		cr4 = (cr4 & ~cr4_pinned_mask) | cr4_pinned_bits;
 
 	__write_cr4(cr4);
 
@@ -430,10 +433,7 @@
  */
 static void __init setup_cr_pinning(void)
 {
-	unsigned long mask;
-
-	mask = (X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_UMIP);
-	cr4_pinned_bits = this_cpu_read(cpu_tlbstate.cr4) & mask;
+	cr4_pinned_bits = this_cpu_read(cpu_tlbstate.cr4) & cr4_pinned_mask;
 	static_key_enable(&cr_pinning.key);
 }
 
@@ -464,7 +464,7 @@
 	 * cpuid bit to be set.  We need to ensure that we
 	 * update that bit in this CPU's "cpu_info".
 	 */
-	get_cpu_cap(c);
+	set_cpu_cap(c, X86_FEATURE_OSPKE);
 }
 
 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
@@ -1024,6 +1024,7 @@
 #define MSBDS_ONLY		BIT(5)
 #define NO_SWAPGS		BIT(6)
 #define NO_ITLB_MULTIHIT	BIT(7)
+#define NO_SPECTRE_V2		BIT(8)
 
 #define VULNWL(_vendor, _family, _model, _whitelist)	\
 	{ X86_VENDOR_##_vendor, _family, _model, X86_FEATURE_ANY, _whitelist }
@@ -1085,12 +1086,37 @@
 	/* FAMILY_ANY must be last, otherwise 0x0f - 0x12 matches won't work */
 	VULNWL_AMD(X86_FAMILY_ANY,	NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
 	VULNWL_HYGON(X86_FAMILY_ANY,	NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
+
+	/* Zhaoxin Family 7 */
+	VULNWL(CENTAUR,	7, X86_MODEL_ANY,	NO_SPECTRE_V2),
+	VULNWL(ZHAOXIN,	7, X86_MODEL_ANY,	NO_SPECTRE_V2),
 	{}
 };
 
-static bool __init cpu_matches(unsigned long which)
+#define VULNBL_INTEL_STEPPINGS(model, steppings, issues)		   \
+	X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(INTEL, 6,		   \
+					    INTEL_FAM6_##model, steppings, \
+					    X86_FEATURE_ANY, issues)
+
+#define SRBDS		BIT(0)
+
+static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {
+	VULNBL_INTEL_STEPPINGS(IVYBRIDGE,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL,		X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL_L,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL_G,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(BROADWELL_G,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(BROADWELL,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(SKYLAKE_L,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(SKYLAKE,		X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(KABYLAKE_L,	X86_STEPPINGS(0x0, 0xC),	SRBDS),
+	VULNBL_INTEL_STEPPINGS(KABYLAKE,	X86_STEPPINGS(0x0, 0xD),	SRBDS),
+	{}
+};
+
+static bool __init cpu_matches(const struct x86_cpu_id *table, unsigned long which)
 {
-	const struct x86_cpu_id *m = x86_match_cpu(cpu_vuln_whitelist);
+	const struct x86_cpu_id *m = x86_match_cpu(table);
 
 	return m && !!(m->driver_data & which);
 }
@@ -1110,29 +1136,34 @@
 	u64 ia32_cap = x86_read_arch_cap_msr();
 
 	/* Set ITLB_MULTIHIT bug if cpu is not in the whitelist and not mitigated */
-	if (!cpu_matches(NO_ITLB_MULTIHIT) && !(ia32_cap & ARCH_CAP_PSCHANGE_MC_NO))
+	if (!cpu_matches(cpu_vuln_whitelist, NO_ITLB_MULTIHIT) &&
+	    !(ia32_cap & ARCH_CAP_PSCHANGE_MC_NO))
 		setup_force_cpu_bug(X86_BUG_ITLB_MULTIHIT);
 
-	if (cpu_matches(NO_SPECULATION))
+	if (cpu_matches(cpu_vuln_whitelist, NO_SPECULATION))
 		return;
 
 	setup_force_cpu_bug(X86_BUG_SPECTRE_V1);
-	setup_force_cpu_bug(X86_BUG_SPECTRE_V2);
 
-	if (!cpu_matches(NO_SSB) && !(ia32_cap & ARCH_CAP_SSB_NO) &&
+	if (!cpu_matches(cpu_vuln_whitelist, NO_SPECTRE_V2))
+		setup_force_cpu_bug(X86_BUG_SPECTRE_V2);
+
+	if (!cpu_matches(cpu_vuln_whitelist, NO_SSB) &&
+	    !(ia32_cap & ARCH_CAP_SSB_NO) &&
 	   !cpu_has(c, X86_FEATURE_AMD_SSB_NO))
 		setup_force_cpu_bug(X86_BUG_SPEC_STORE_BYPASS);
 
 	if (ia32_cap & ARCH_CAP_IBRS_ALL)
 		setup_force_cpu_cap(X86_FEATURE_IBRS_ENHANCED);
 
-	if (!cpu_matches(NO_MDS) && !(ia32_cap & ARCH_CAP_MDS_NO)) {
+	if (!cpu_matches(cpu_vuln_whitelist, NO_MDS) &&
+	    !(ia32_cap & ARCH_CAP_MDS_NO)) {
 		setup_force_cpu_bug(X86_BUG_MDS);
-		if (cpu_matches(MSBDS_ONLY))
+		if (cpu_matches(cpu_vuln_whitelist, MSBDS_ONLY))
 			setup_force_cpu_bug(X86_BUG_MSBDS_ONLY);
 	}
 
-	if (!cpu_matches(NO_SWAPGS))
+	if (!cpu_matches(cpu_vuln_whitelist, NO_SWAPGS))
 		setup_force_cpu_bug(X86_BUG_SWAPGS);
 
 	/*
@@ -1150,7 +1181,16 @@
 	     (ia32_cap & ARCH_CAP_TSX_CTRL_MSR)))
 		setup_force_cpu_bug(X86_BUG_TAA);
 
-	if (cpu_matches(NO_MELTDOWN))
+	/*
+	 * SRBDS affects CPUs which support RDRAND or RDSEED and are listed
+	 * in the vulnerability blacklist.
+	 */
+	if ((cpu_has(c, X86_FEATURE_RDRAND) ||
+	     cpu_has(c, X86_FEATURE_RDSEED)) &&
+	    cpu_matches(cpu_vuln_blacklist, SRBDS))
+		    setup_force_cpu_bug(X86_BUG_SRBDS);
+
+	if (cpu_matches(cpu_vuln_whitelist, NO_MELTDOWN))
 		return;
 
 	/* Rogue Data Cache Load? No! */
@@ -1159,7 +1199,7 @@
 
 	setup_force_cpu_bug(X86_BUG_CPU_MELTDOWN);
 
-	if (cpu_matches(NO_L1TF))
+	if (cpu_matches(cpu_vuln_whitelist, NO_L1TF))
 		return;
 
 	setup_force_cpu_bug(X86_BUG_L1TF);
@@ -1597,6 +1637,7 @@
 	mtrr_ap_init();
 	validate_apic_and_package_id(c);
 	x86_spec_ctrl_setup_ap();
+	update_srbds_msr();
 }
 
 static __init int setup_noclflush(char *arg)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/cpu.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/cpu.h
@@ -77,6 +77,7 @@
 unsigned int aperfmperf_get_khz(int cpu);
 
 extern void x86_spec_ctrl_setup_ap(void);
+extern void update_srbds_msr(void);
 
 extern u64 x86_read_arch_cap_msr(void);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/hygon.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/hygon.c
@@ -64,7 +64,6 @@
  */
 static void hygon_get_topology(struct cpuinfo_x86 *c)
 {
-	u8 node_id;
 	int cpu = smp_processor_id();
 
 	/* get information required for multi-node processors */
@@ -74,7 +73,7 @@
 
 		cpuid(0x8000001e, &eax, &ebx, &ecx, &edx);
 
-		node_id  = ecx & 0xff;
+		c->cpu_die_id  = ecx & 0xff;
 
 		c->cpu_core_id = ebx & 0xff;
 
@@ -92,14 +91,14 @@
 		/* Socket ID is ApicId[6] for these processors. */
 		c->phys_proc_id = c->apicid >> APICID_SOCKET_ID_BIT;
 
-		cacheinfo_hygon_init_llc_id(c, cpu, node_id);
+		cacheinfo_hygon_init_llc_id(c, cpu);
 	} else if (cpu_has(c, X86_FEATURE_NODEID_MSR)) {
 		u64 value;
 
 		rdmsrl(MSR_FAM10H_NODE_ID, value);
-		node_id = value & 7;
+		c->cpu_die_id = value & 7;
 
-		per_cpu(cpu_llc_id, cpu) = node_id;
+		per_cpu(cpu_llc_id, cpu) = c->cpu_die_id;
 	} else
 		return;
 
@@ -122,7 +121,7 @@
 	/* Convert the initial APIC ID into the socket ID */
 	c->phys_proc_id = c->initial_apicid >> bits;
 	/* use socket ID also for last level cache */
-	per_cpu(cpu_llc_id, cpu) = c->phys_proc_id;
+	per_cpu(cpu_llc_id, cpu) = c->cpu_die_id = c->phys_proc_id;
 }
 
 static void srat_detect_node(struct cpuinfo_x86 *c)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/match.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/match.c
@@ -34,13 +34,18 @@
 	const struct x86_cpu_id *m;
 	struct cpuinfo_x86 *c = &boot_cpu_data;
 
-	for (m = match; m->vendor | m->family | m->model | m->feature; m++) {
+	for (m = match;
+	     m->vendor | m->family | m->model | m->steppings | m->feature;
+	     m++) {
 		if (m->vendor != X86_VENDOR_ANY && c->x86_vendor != m->vendor)
 			continue;
 		if (m->family != X86_FAMILY_ANY && c->x86 != m->family)
 			continue;
 		if (m->model != X86_MODEL_ANY && c->x86_model != m->model)
 			continue;
+		if (m->steppings != X86_STEPPING_ANY &&
+		    !(BIT(c->x86_stepping) & m->steppings))
+			continue;
 		if (m->feature != X86_FEATURE_ANY && !cpu_has(c, m->feature))
 			continue;
 		return m;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/amd.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/amd.c
@@ -78,6 +78,7 @@
 
 static struct smca_bank_name smca_names[] = {
 	[SMCA_LS]	= { "load_store",	"Load Store Unit" },
+	[SMCA_LS_V2]	= { "load_store",	"Load Store Unit" },
 	[SMCA_IF]	= { "insn_fetch",	"Instruction Fetch Unit" },
 	[SMCA_L2_CACHE]	= { "l2_cache",		"L2 Cache" },
 	[SMCA_DE]	= { "decode_unit",	"Decode Unit" },
@@ -138,6 +139,7 @@
 
 	/* ZN Core (HWID=0xB0) MCA types */
 	{ SMCA_LS,	 HWID_MCATYPE(0xB0, 0x0), 0x1FFFFF },
+	{ SMCA_LS_V2,	 HWID_MCATYPE(0xB0, 0x10), 0xFFFFFF },
 	{ SMCA_IF,	 HWID_MCATYPE(0xB0, 0x1), 0x3FFF },
 	{ SMCA_L2_CACHE, HWID_MCATYPE(0xB0, 0x2), 0xF },
 	{ SMCA_DE,	 HWID_MCATYPE(0xB0, 0x3), 0x1FF },
@@ -266,10 +268,10 @@
 	smca_set_misc_banks_map(bank, cpu);
 
 	/* Return early if this bank was already initialized. */
-	if (smca_banks[bank].hwid)
+	if (smca_banks[bank].hwid && smca_banks[bank].hwid->hwid_mcatype != 0)
 		return;
 
-	if (rdmsr_safe_on_cpu(cpu, MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) {
+	if (rdmsr_safe(MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) {
 		pr_warn("Failed to read MCA_IPID for bank %d\n", bank);
 		return;
 	}
@@ -1161,9 +1163,12 @@
 	.store			= store,
 };
 
+static void threshold_block_release(struct kobject *kobj);
+
 static struct kobj_type threshold_ktype = {
 	.sysfs_ops		= &threshold_ops,
 	.default_attrs		= default_attrs,
+	.release		= threshold_block_release,
 };
 
 static const char *get_name(unsigned int bank, struct threshold_block *b)
@@ -1196,8 +1201,9 @@
 	return buf_mcatype;
 }
 
-static int allocate_threshold_blocks(unsigned int cpu, unsigned int bank,
-				     unsigned int block, u32 address)
+static int allocate_threshold_blocks(unsigned int cpu, struct threshold_bank *tb,
+				     unsigned int bank, unsigned int block,
+				     u32 address)
 {
 	struct threshold_block *b = NULL;
 	u32 low, high;
@@ -1241,16 +1247,12 @@
 
 	INIT_LIST_HEAD(&b->miscj);
 
-	if (per_cpu(threshold_banks, cpu)[bank]->blocks) {
-		list_add(&b->miscj,
-			 &per_cpu(threshold_banks, cpu)[bank]->blocks->miscj);
-	} else {
-		per_cpu(threshold_banks, cpu)[bank]->blocks = b;
-	}
+	if (tb->blocks)
+		list_add(&b->miscj, &tb->blocks->miscj);
+	else
+		tb->blocks = b;
 
-	err = kobject_init_and_add(&b->kobj, &threshold_ktype,
-				   per_cpu(threshold_banks, cpu)[bank]->kobj,
-				   get_name(bank, b));
+	err = kobject_init_and_add(&b->kobj, &threshold_ktype, tb->kobj, get_name(bank, b));
 	if (err)
 		goto out_free;
 recurse:
@@ -1258,7 +1260,7 @@
 	if (!address)
 		return 0;
 
-	err = allocate_threshold_blocks(cpu, bank, block, address);
+	err = allocate_threshold_blocks(cpu, tb, bank, block, address);
 	if (err)
 		goto out_free;
 
@@ -1343,8 +1345,6 @@
 		goto out_free;
 	}
 
-	per_cpu(threshold_banks, cpu)[bank] = b;
-
 	if (is_shared_bank(bank)) {
 		refcount_set(&b->cpus, 1);
 
@@ -1355,9 +1355,13 @@
 		}
 	}
 
-	err = allocate_threshold_blocks(cpu, bank, 0, msr_ops.misc(bank));
-	if (!err)
-		goto out;
+	err = allocate_threshold_blocks(cpu, b, bank, 0, msr_ops.misc(bank));
+	if (err)
+		goto out_free;
+
+	per_cpu(threshold_banks, cpu)[bank] = b;
+
+	return 0;
 
  out_free:
 	kfree(b);
@@ -1366,8 +1370,12 @@
 	return err;
 }
 
-static void deallocate_threshold_block(unsigned int cpu,
-						 unsigned int bank)
+static void threshold_block_release(struct kobject *kobj)
+{
+	kfree(to_block(kobj));
+}
+
+static void deallocate_threshold_block(unsigned int cpu, unsigned int bank)
 {
 	struct threshold_block *pos = NULL;
 	struct threshold_block *tmp = NULL;
@@ -1377,13 +1385,11 @@
 		return;
 
 	list_for_each_entry_safe(pos, tmp, &head->blocks->miscj, miscj) {
-		kobject_put(&pos->kobj);
 		list_del(&pos->miscj);
-		kfree(pos);
+		kobject_put(&pos->kobj);
 	}
 
-	kfree(per_cpu(threshold_banks, cpu)[bank]->blocks);
-	per_cpu(threshold_banks, cpu)[bank]->blocks = NULL;
+	kobject_put(&head->blocks->kobj);
 }
 
 static void __threshold_remove_blocks(struct threshold_bank *b)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/core.c
@@ -388,10 +388,28 @@
 	return -1;
 }
 
+__visible bool ex_handler_rdmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr)
+{
+	pr_emerg("MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pS)\n",
+		 (unsigned int)regs->cx, regs->ip, (void *)regs->ip);
+
+	show_stack_regs(regs);
+
+	panic("MCA architectural violation!\n");
+
+	while (true)
+		cpu_relax();
+
+	return true;
+}
+
 /* MSR access wrappers used for error injection */
 static u64 mce_rdmsrl(u32 msr)
 {
-	u64 v;
+	DECLARE_ARGS(val, low, high);
 
 	if (__this_cpu_read(injectm.finished)) {
 		int offset = msr_to_offset(msr);
@@ -401,21 +419,43 @@
 		return *(u64 *)((char *)this_cpu_ptr(&injectm) + offset);
 	}
 
-	if (rdmsrl_safe(msr, &v)) {
-		WARN_ONCE(1, "mce: Unable to read MSR 0x%x!\n", msr);
-		/*
-		 * Return zero in case the access faulted. This should
-		 * not happen normally but can happen if the CPU does
-		 * something weird, or if the code is buggy.
-		 */
-		v = 0;
-	}
+	/*
+	 * RDMSR on MCA MSRs should not fault. If they do, this is very much an
+	 * architectural violation and needs to be reported to hw vendor. Panic
+	 * the box to not allow any further progress.
+	 */
+	asm volatile("1: rdmsr\n"
+		     "2:\n"
+		     _ASM_EXTABLE_HANDLE(1b, 2b, ex_handler_rdmsr_fault)
+		     : EAX_EDX_RET(val, low, high) : "c" (msr));
+
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+__visible bool ex_handler_wrmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr)
+{
+	pr_emerg("MSR access error: WRMSR to 0x%x (tried to write 0x%08x%08x) at rIP: 0x%lx (%pS)\n",
+		 (unsigned int)regs->cx, (unsigned int)regs->dx, (unsigned int)regs->ax,
+		  regs->ip, (void *)regs->ip);
+
+	show_stack_regs(regs);
 
-	return v;
+	panic("MCA architectural violation!\n");
+
+	while (true)
+		cpu_relax();
+
+	return true;
 }
 
 static void mce_wrmsrl(u32 msr, u64 v)
 {
+	u32 low, high;
+
 	if (__this_cpu_read(injectm.finished)) {
 		int offset = msr_to_offset(msr);
 
@@ -423,7 +463,15 @@
 			*(u64 *)((char *)this_cpu_ptr(&injectm) + offset) = v;
 		return;
 	}
-	wrmsrl(msr, v);
+
+	low  = (u32)v;
+	high = (u32)(v >> 32);
+
+	/* See comment in mce_rdmsrl() */
+	asm volatile("1: wrmsr\n"
+		     "2:\n"
+		     _ASM_EXTABLE_HANDLE(1b, 2b, ex_handler_wrmsr_fault)
+		     : : "c" (msr), "a"(low), "d" (high) : "memory");
 }
 
 /*
@@ -533,6 +581,13 @@
 }
 EXPORT_SYMBOL_GPL(mce_is_memory_error);
 
+static bool whole_page(struct mce *m)
+{
+	if (!mca_cfg.ser || !(m->status & MCI_STATUS_MISCV))
+		return true;
+	return MCI_MISC_ADDR_LSB(m->misc) >= PAGE_SHIFT;
+}
+
 bool mce_is_correctable(struct mce *m)
 {
 	if (m->cpuvendor == X86_VENDOR_AMD && m->status & MCI_STATUS_DEFERRED)
@@ -601,7 +656,7 @@
 	if (mce_usable_address(mce) && (mce->severity == MCE_AO_SEVERITY)) {
 		pfn = mce->addr >> PAGE_SHIFT;
 		if (!memory_failure(pfn, 0))
-			set_mce_nospec(pfn);
+			set_mce_nospec(pfn, whole_page(mce));
 	}
 
 	return NOTIFY_OK;
@@ -814,8 +869,8 @@
 		if (quirk_no_way_out)
 			quirk_no_way_out(i, m, regs);
 
+		m->bank = i;
 		if (mce_severity(m, mca_cfg.tolerant, &tmp, true) >= MCE_PANIC_SEVERITY) {
-			m->bank = i;
 			mce_read_aux(m, i);
 			*msg = tmp;
 			return 1;
@@ -1103,7 +1158,7 @@
 	if (ret)
 		pr_err("Memory error not recovered");
 	else
-		set_mce_nospec(m->addr >> PAGE_SHIFT);
+		set_mce_nospec(m->addr >> PAGE_SHIFT, whole_page(m));
 	return ret;
 }
 
@@ -1306,8 +1361,10 @@
 	 * When there's any problem use only local no_way_out state.
 	 */
 	if (!lmce) {
-		if (mce_end(order) < 0)
-			no_way_out = worst >= MCE_PANIC_SEVERITY;
+		if (mce_end(order) < 0) {
+			if (!no_way_out)
+				no_way_out = worst >= MCE_PANIC_SEVERITY;
+		}
 	} else {
 		/*
 		 * If there was a fatal machine check we should have
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/inject.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/inject.c
@@ -511,7 +511,7 @@
 	 */
 	if (inj_type == DFR_INT_INJ) {
 		i_mce.status |= MCI_STATUS_DEFERRED;
-		i_mce.status |= (i_mce.status & ~MCI_STATUS_UC);
+		i_mce.status &= ~MCI_STATUS_UC;
 	}
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/intel.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/intel.c
@@ -489,17 +489,18 @@
 			return;
 
 		if ((val & 3UL) == 1UL) {
-			/* PPIN available but disabled: */
+			/* PPIN locked in disabled mode */
 			return;
 		}
 
-		/* If PPIN is disabled, but not locked, try to enable: */
-		if (!(val & 3UL)) {
+		/* If PPIN is disabled, try to enable */
+		if (!(val & 2UL)) {
 			wrmsrl_safe(MSR_PPIN_CTL,  val | 2UL);
 			rdmsrl_safe(MSR_PPIN_CTL, &val);
 		}
 
-		if ((val & 3UL) == 2UL)
+		/* Is the enable bit set? */
+		if (val & 2UL)
 			set_cpu_cap(c, X86_FEATURE_INTEL_PPIN);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/internal.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/internal.h
@@ -172,4 +172,14 @@
 static inline bool amd_filter_mce(struct mce *m)			{ return false; };
 #endif
 
+__visible bool ex_handler_rdmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr);
+
+__visible bool ex_handler_wrmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr);
+
 #endif /* __X86_MCE_INTERNAL_H__ */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/severity.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/severity.c
@@ -9,9 +9,11 @@
 #include <linux/seq_file.h>
 #include <linux/init.h>
 #include <linux/debugfs.h>
-#include <asm/mce.h>
 #include <linux/uaccess.h>
 
+#include <asm/mce.h>
+#include <asm/intel-family.h>
+
 #include "internal.h"
 
 /*
@@ -40,9 +42,14 @@
 	unsigned char context;
 	unsigned char excp;
 	unsigned char covered;
+	unsigned char cpu_model;
+	unsigned char cpu_minstepping;
+	unsigned char bank_lo, bank_hi;
 	char *msg;
 } severities[] = {
 #define MCESEV(s, m, c...) { .sev = MCE_ ## s ## _SEVERITY, .msg = m, ## c }
+#define BANK_RANGE(l, h) .bank_lo = l, .bank_hi = h
+#define MODEL_STEPPING(m, s) .cpu_model = m, .cpu_minstepping = s
 #define  KERNEL		.context = IN_KERNEL
 #define  USER		.context = IN_USER
 #define  KERNEL_RECOV	.context = IN_KERNEL_RECOV
@@ -97,7 +104,6 @@
 		KEEP, "Corrected error",
 		NOSER, BITCLR(MCI_STATUS_UC)
 		),
-
 	/*
 	 * known AO MCACODs reported via MCE or CMC:
 	 *
@@ -113,6 +119,18 @@
 		AO, "Action optional: last level cache writeback error",
 		SER, MASK(MCI_UC_AR|MCACOD, MCI_STATUS_UC|MCACOD_L3WB)
 		),
+	/*
+	 * Quirk for Skylake/Cascade Lake. Patrol scrubber may be configured
+	 * to report uncorrected errors using CMCI with a special signature.
+	 * UC=0, MSCOD=0x0010, MCACOD=binary(000X 0000 1100 XXXX) reported
+	 * in one of the memory controller banks.
+	 * Set severity to "AO" for same action as normal patrol scrub error.
+	 */
+	MCESEV(
+		AO, "Uncorrected Patrol Scrub Error",
+		SER, MASK(MCI_STATUS_UC|MCI_ADDR|0xffffeff0, MCI_ADDR|0x001000c0),
+		MODEL_STEPPING(INTEL_FAM6_SKYLAKE_X, 4), BANK_RANGE(13, 18)
+	),
 
 	/* ignore OVER for UCNA */
 	MCESEV(
@@ -320,6 +338,12 @@
 			continue;
 		if (s->excp && excp != s->excp)
 			continue;
+		if (s->cpu_model && boot_cpu_data.x86_model != s->cpu_model)
+			continue;
+		if (s->cpu_minstepping && boot_cpu_data.x86_stepping < s->cpu_minstepping)
+			continue;
+		if (s->bank_lo && (m->bank < s->bank_lo || m->bank > s->bank_hi))
+			continue;
 		if (msg)
 			*msg = s->msg;
 		s->covered = 1;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mce/therm_throt.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mce/therm_throt.c
@@ -188,7 +188,7 @@
 	/* if we just entered the thermal event */
 	if (new_event) {
 		if (event == THERMAL_THROTTLING_EVENT)
-			pr_crit("CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n",
+			pr_warn("CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n",
 				this_cpu,
 				level == CORE_LEVEL ? "Core" : "Package",
 				state->count);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/microcode/intel.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/microcode/intel.c
@@ -100,53 +100,6 @@
 	return find_matching_signature(mc, csig, cpf);
 }
 
-/*
- * Given CPU signature and a microcode patch, this function finds if the
- * microcode patch has matching family and model with the CPU.
- *
- * %true - if there's a match
- * %false - otherwise
- */
-static bool microcode_matches(struct microcode_header_intel *mc_header,
-			      unsigned long sig)
-{
-	unsigned long total_size = get_totalsize(mc_header);
-	unsigned long data_size = get_datasize(mc_header);
-	struct extended_sigtable *ext_header;
-	unsigned int fam_ucode, model_ucode;
-	struct extended_signature *ext_sig;
-	unsigned int fam, model;
-	int ext_sigcount, i;
-
-	fam   = x86_family(sig);
-	model = x86_model(sig);
-
-	fam_ucode   = x86_family(mc_header->sig);
-	model_ucode = x86_model(mc_header->sig);
-
-	if (fam == fam_ucode && model == model_ucode)
-		return true;
-
-	/* Look for ext. headers: */
-	if (total_size <= data_size + MC_HEADER_SIZE)
-		return false;
-
-	ext_header   = (void *) mc_header + data_size + MC_HEADER_SIZE;
-	ext_sig      = (void *)ext_header + EXT_HEADER_SIZE;
-	ext_sigcount = ext_header->count;
-
-	for (i = 0; i < ext_sigcount; i++) {
-		fam_ucode   = x86_family(ext_sig->sig);
-		model_ucode = x86_model(ext_sig->sig);
-
-		if (fam == fam_ucode && model == model_ucode)
-			return true;
-
-		ext_sig++;
-	}
-	return false;
-}
-
 static struct ucode_patch *memdup_patch(void *data, unsigned int size)
 {
 	struct ucode_patch *p;
@@ -164,7 +117,7 @@
 	return p;
 }
 
-static void save_microcode_patch(void *data, unsigned int size)
+static void save_microcode_patch(struct ucode_cpu_info *uci, void *data, unsigned int size)
 {
 	struct microcode_header_intel *mc_hdr, *mc_saved_hdr;
 	struct ucode_patch *iter, *tmp, *p = NULL;
@@ -210,6 +163,9 @@
 	if (!p)
 		return;
 
+	if (!find_matching_signature(p->data, uci->cpu_sig.sig, uci->cpu_sig.pf))
+		return;
+
 	/*
 	 * Save for early loading. On 32-bit, that needs to be a physical
 	 * address as the APs are running from physical addresses, before
@@ -344,13 +300,14 @@
 
 		size -= mc_size;
 
-		if (!microcode_matches(mc_header, uci->cpu_sig.sig)) {
+		if (!find_matching_signature(data, uci->cpu_sig.sig,
+					     uci->cpu_sig.pf)) {
 			data += mc_size;
 			continue;
 		}
 
 		if (save) {
-			save_microcode_patch(data, mc_size);
+			save_microcode_patch(uci, data, mc_size);
 			goto next;
 		}
 
@@ -483,14 +440,14 @@
  * Save this microcode patch. It will be loaded early when a CPU is
  * hot-added or resumes.
  */
-static void save_mc_for_early(u8 *mc, unsigned int size)
+static void save_mc_for_early(struct ucode_cpu_info *uci, u8 *mc, unsigned int size)
 {
 	/* Synchronization during CPU hotplug. */
 	static DEFINE_MUTEX(x86_cpu_microcode_mutex);
 
 	mutex_lock(&x86_cpu_microcode_mutex);
 
-	save_microcode_patch(mc, size);
+	save_microcode_patch(uci, mc, size);
 	show_saved_mc();
 
 	mutex_unlock(&x86_cpu_microcode_mutex);
@@ -934,7 +891,7 @@
 	 * permanent memory. So it will be loaded early when a CPU is hot added
 	 * or resumes.
 	 */
-	save_mc_for_early(new_mc, new_mc_size);
+	save_mc_for_early(uci, new_mc, new_mc_size);
 
 	pr_debug("CPU%d found a matching microcode update with version 0x%x (current=0x%x)\n",
 		 cpu, new_rev, uci->cpu_sig.rev);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mshyperv.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mshyperv.c
@@ -227,8 +227,8 @@
 	ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
 	ms_hyperv.hints    = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO);
 
-	pr_info("Hyper-V: features 0x%x, hints 0x%x\n",
-		ms_hyperv.features, ms_hyperv.hints);
+	pr_info("Hyper-V: features 0x%x, hints 0x%x, misc 0x%x\n",
+		ms_hyperv.features, ms_hyperv.hints, ms_hyperv.misc_features);
 
 	ms_hyperv.max_vp_index = cpuid_eax(HYPERV_CPUID_IMPLEMENT_LIMITS);
 	ms_hyperv.max_lp_index = cpuid_ebx(HYPERV_CPUID_IMPLEMENT_LIMITS);
@@ -263,6 +263,16 @@
 			cpuid_eax(HYPERV_CPUID_NESTED_FEATURES);
 	}
 
+	/*
+	 * Hyper-V expects to get crash register data or kmsg when
+	 * crash enlightment is available and system crashes. Set
+	 * crash_kexec_post_notifiers to be true to make sure that
+	 * calling crash enlightment interface before running kdump
+	 * kernel.
+	 */
+	if (ms_hyperv.misc_features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE)
+		crash_kexec_post_notifiers = true;
+
 #ifdef CONFIG_X86_LOCAL_APIC
 	if (ms_hyperv.features & HV_X64_ACCESS_FREQUENCY_MSRS &&
 	    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/mtrr/generic.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/mtrr/generic.c
@@ -167,9 +167,6 @@
 	*repeat = 0;
 	*uniform = 1;
 
-	/* Make end inclusive instead of exclusive */
-	end--;
-
 	prev_match = MTRR_TYPE_INVALID;
 	for (i = 0; i < num_var_ranges; ++i) {
 		unsigned short start_state, end_state, inclusive;
@@ -261,6 +258,9 @@
 	int repeat;
 	u64 partial_end;
 
+	/* Make end inclusive instead of exclusive */
+	end--;
+
 	if (!mtrr_state_set)
 		return MTRR_TYPE_INVALID;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/resctrl/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/resctrl/core.c
@@ -260,6 +260,7 @@
 	r->num_closid = edx.split.cos_max + 1;
 	r->membw.max_delay = eax.split.max_delay + 1;
 	r->default_ctrl = MAX_MBA_BW;
+	r->membw.mbm_width = MBM_CNTR_WIDTH;
 	if (ecx & MBA_IS_LINEAR) {
 		r->membw.delay_linear = true;
 		r->membw.min_bw = MAX_MBA_BW - r->membw.max_delay;
@@ -289,6 +290,7 @@
 	/* AMD does not use delay */
 	r->membw.delay_linear = false;
 
+	r->membw.mbm_width = MBM_CNTR_WIDTH_AMD;
 	r->membw.min_bw = 0;
 	r->membw.bw_gran = 1;
 	/* Max value is 2048, Data width should be 4 in decimal */
@@ -578,6 +580,8 @@
 	d->id = id;
 	cpumask_set_cpu(cpu, &d->cpu_mask);
 
+	rdt_domain_reconfigure_cdp(r);
+
 	if (r->alloc_capable && domain_setup_ctrlval(r, d)) {
 		kfree(d);
 		return;
@@ -618,7 +622,7 @@
 		if (static_branch_unlikely(&rdt_mon_enable_key))
 			rmdir_mondata_subdir_allrdtgrp(r, d->id);
 		list_del(&d->list);
-		if (is_mbm_enabled())
+		if (r->mon_capable && is_mbm_enabled())
 			cancel_delayed_work(&d->mbm_over);
 		if (is_llc_occupancy_enabled() &&  has_busy_rmid(r, d)) {
 			/*
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/resctrl/internal.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/resctrl/internal.h
@@ -32,6 +32,7 @@
 #define CQM_LIMBOCHECK_INTERVAL	1000
 
 #define MBM_CNTR_WIDTH			24
+#define MBM_CNTR_WIDTH_AMD		44
 #define MBM_OVERFLOW_INTERVAL		1000
 #define MAX_MBA_BW			100u
 #define MBA_IS_LINEAR			0x4
@@ -57,6 +58,7 @@
 }
 
 DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
+DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
 
 /**
  * struct mon_evt - Entry in the event list of a resource
@@ -274,7 +276,6 @@
  * struct mbm_state - status for each MBM counter in each domain
  * @chunks:	Total data moved (multiply by rdt_group.mon_scale to get bytes)
  * @prev_msr	Value of IA32_QM_CTR for this RMID last time we read it
- * @chunks_bw	Total local data moved. Used for bandwidth calculation
  * @prev_bw_msr:Value of previous IA32_QM_CTR for bandwidth counting
  * @prev_bw	The most recent bandwidth in MBps
  * @delta_bw	Difference between the current and previous bandwidth
@@ -283,7 +284,6 @@
 struct mbm_state {
 	u64	chunks;
 	u64	prev_msr;
-	u64	chunks_bw;
 	u64	prev_bw_msr;
 	u32	prev_bw;
 	u32	delta_bw;
@@ -367,6 +367,7 @@
  * @min_bw:		Minimum memory bandwidth percentage user can request
  * @bw_gran:		Granularity at which the memory bandwidth is allocated
  * @delay_linear:	True if memory B/W delay is in linear scale
+ * @mbm_width:		memory B/W monitor counter width
  * @mba_sc:		True if MBA software controller(mba_sc) is enabled
  * @mb_map:		Mapping of memory B/W percentage to memory B/W delay
  */
@@ -375,6 +376,7 @@
 	u32		min_bw;
 	u32		bw_gran;
 	u32		delay_linear;
+	u32		mbm_width;
 	bool		mba_sc;
 	u32		*mb_map;
 };
@@ -600,5 +602,6 @@
 void __check_limbo(struct rdt_domain *d, bool force_free);
 bool cbm_validate_intel(char *buf, u32 *data, struct rdt_resource *r);
 bool cbm_validate_amd(char *buf, u32 *data, struct rdt_resource *r);
+void rdt_domain_reconfigure_cdp(struct rdt_resource *r);
 
 #endif /* _ASM_X86_RESCTRL_INTERNAL_H */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/resctrl/monitor.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -216,8 +216,9 @@
 
 static u64 mbm_overflow_count(u64 prev_msr, u64 cur_msr)
 {
-	u64 shift = 64 - MBM_CNTR_WIDTH, chunks;
+	u64 shift, chunks;
 
+	shift = 64 - rdt_resources_all[RDT_RESOURCE_MBA].membw.mbm_width;
 	chunks = (cur_msr << shift) - (prev_msr << shift);
 	return chunks >>= shift;
 }
@@ -279,8 +280,6 @@
 		return;
 
 	chunks = mbm_overflow_count(m->prev_bw_msr, tval);
-	m->chunks_bw += chunks;
-	m->chunks = m->chunks_bw;
 	cur_bw = (chunks * r->mon_scale) >> 20;
 
 	if (m->delta_comp)
@@ -450,15 +449,14 @@
 	}
 	if (is_mbm_local_enabled()) {
 		rr.evtid = QOS_L3_MBM_LOCAL_EVENT_ID;
+		__mon_event_count(rmid, &rr);
 
 		/*
 		 * Call the MBA software controller only for the
 		 * control groups and when user has enabled
 		 * the software controller explicitly.
 		 */
-		if (!is_mba_sc(NULL))
-			__mon_event_count(rmid, &rr);
-		else
+		if (is_mba_sc(NULL))
 			mbm_bw_count(rmid, &rr);
 	}
 }
@@ -514,7 +512,7 @@
 
 	mutex_lock(&rdtgroup_mutex);
 
-	if (!static_branch_likely(&rdt_enable_key))
+	if (!static_branch_likely(&rdt_mon_enable_key))
 		goto out_unlock;
 
 	d = get_domain_from_cpu(cpu, &rdt_resources_all[RDT_RESOURCE_L3]);
@@ -543,7 +541,7 @@
 	unsigned long delay = msecs_to_jiffies(delay_ms);
 	int cpu;
 
-	if (!static_branch_likely(&rdt_enable_key))
+	if (!static_branch_likely(&rdt_mon_enable_key))
 		return;
 	cpu = cpumask_any(&dom->cpu_mask);
 	dom->mbm_work_cpu = cpu;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -507,85 +507,88 @@
 	return ret ?: nbytes;
 }
 
-struct task_move_callback {
-	struct callback_head	work;
-	struct rdtgroup		*rdtgrp;
-};
-
-static void move_myself(struct callback_head *head)
+/**
+ * rdtgroup_remove - the helper to remove resource group safely
+ * @rdtgrp: resource group to remove
+ *
+ * On resource group creation via a mkdir, an extra kernfs_node reference is
+ * taken to ensure that the rdtgroup structure remains accessible for the
+ * rdtgroup_kn_unlock() calls where it is removed.
+ *
+ * Drop the extra reference here, then free the rdtgroup structure.
+ *
+ * Return: void
+ */
+static void rdtgroup_remove(struct rdtgroup *rdtgrp)
 {
-	struct task_move_callback *callback;
-	struct rdtgroup *rdtgrp;
-
-	callback = container_of(head, struct task_move_callback, work);
-	rdtgrp = callback->rdtgrp;
+	kernfs_put(rdtgrp->kn);
+	kfree(rdtgrp);
+}
 
+static void _update_task_closid_rmid(void *task)
+{
 	/*
-	 * If resource group was deleted before this task work callback
-	 * was invoked, then assign the task to root group and free the
-	 * resource group.
+	 * If the task is still current on this CPU, update PQR_ASSOC MSR.
+	 * Otherwise, the MSR is updated when the task is scheduled in.
 	 */
-	if (atomic_dec_and_test(&rdtgrp->waitcount) &&
-	    (rdtgrp->flags & RDT_DELETED)) {
-		current->closid = 0;
-		current->rmid = 0;
-		kfree(rdtgrp);
-	}
-
-	preempt_disable();
-	/* update PQR_ASSOC MSR to make resource group go into effect */
-	resctrl_sched_in();
-	preempt_enable();
+	if (task == current)
+		resctrl_sched_in();
+}
 
-	kfree(callback);
+static void update_task_closid_rmid(struct task_struct *t)
+{
+	if (IS_ENABLED(CONFIG_SMP) && task_curr(t))
+		smp_call_function_single(task_cpu(t), _update_task_closid_rmid, t, 1);
+	else
+		_update_task_closid_rmid(t);
 }
 
 static int __rdtgroup_move_task(struct task_struct *tsk,
 				struct rdtgroup *rdtgrp)
 {
-	struct task_move_callback *callback;
-	int ret;
-
-	callback = kzalloc(sizeof(*callback), GFP_KERNEL);
-	if (!callback)
-		return -ENOMEM;
-	callback->work.func = move_myself;
-	callback->rdtgrp = rdtgrp;
+	/* If the task is already in rdtgrp, no need to move the task. */
+	if ((rdtgrp->type == RDTCTRL_GROUP && tsk->closid == rdtgrp->closid &&
+	     tsk->rmid == rdtgrp->mon.rmid) ||
+	    (rdtgrp->type == RDTMON_GROUP && tsk->rmid == rdtgrp->mon.rmid &&
+	     tsk->closid == rdtgrp->mon.parent->closid))
+		return 0;
 
 	/*
-	 * Take a refcount, so rdtgrp cannot be freed before the
-	 * callback has been invoked.
+	 * Set the task's closid/rmid before the PQR_ASSOC MSR can be
+	 * updated by them.
+	 *
+	 * For ctrl_mon groups, move both closid and rmid.
+	 * For monitor groups, can move the tasks only from
+	 * their parent CTRL group.
 	 */
-	atomic_inc(&rdtgrp->waitcount);
-	ret = task_work_add(tsk, &callback->work, true);
-	if (ret) {
-		/*
-		 * Task is exiting. Drop the refcount and free the callback.
-		 * No need to check the refcount as the group cannot be
-		 * deleted before the write function unlocks rdtgroup_mutex.
-		 */
-		atomic_dec(&rdtgrp->waitcount);
-		kfree(callback);
-		rdt_last_cmd_puts("Task exited\n");
-	} else {
-		/*
-		 * For ctrl_mon groups move both closid and rmid.
-		 * For monitor groups, can move the tasks only from
-		 * their parent CTRL group.
-		 */
-		if (rdtgrp->type == RDTCTRL_GROUP) {
-			tsk->closid = rdtgrp->closid;
+
+	if (rdtgrp->type == RDTCTRL_GROUP) {
+		tsk->closid = rdtgrp->closid;
+		tsk->rmid = rdtgrp->mon.rmid;
+	} else if (rdtgrp->type == RDTMON_GROUP) {
+		if (rdtgrp->mon.parent->closid == tsk->closid) {
 			tsk->rmid = rdtgrp->mon.rmid;
-		} else if (rdtgrp->type == RDTMON_GROUP) {
-			if (rdtgrp->mon.parent->closid == tsk->closid) {
-				tsk->rmid = rdtgrp->mon.rmid;
-			} else {
-				rdt_last_cmd_puts("Can't move task to different control group\n");
-				ret = -EINVAL;
-			}
+		} else {
+			rdt_last_cmd_puts("Can't move task to different control group\n");
+			return -EINVAL;
 		}
 	}
-	return ret;
+
+	/*
+	 * Ensure the task's closid and rmid are written before determining if
+	 * the task is current that will decide if it will be interrupted.
+	 */
+	barrier();
+
+	/*
+	 * By now, the task's closid and rmid are set. If the task is current
+	 * on a CPU, the PQR_ASSOC MSR needs to be updated to make the resource
+	 * group go into effect. If the task is not current, the MSR will be
+	 * updated when the task is scheduled in.
+	 */
+	update_task_closid_rmid(tsk);
+
+	return 0;
 }
 
 /**
@@ -1027,6 +1030,7 @@
 	_d_cdp = rdt_find_domain(_r_cdp, d->id, NULL);
 	if (WARN_ON(IS_ERR_OR_NULL(_d_cdp))) {
 		_r_cdp = NULL;
+		_d_cdp = NULL;
 		ret = -EINVAL;
 	}
 
@@ -1617,7 +1621,6 @@
 	if (IS_ERR(kn_subdir))
 		return PTR_ERR(kn_subdir);
 
-	kernfs_get(kn_subdir);
 	ret = rdtgroup_kn_set_ugid(kn_subdir);
 	if (ret)
 		return ret;
@@ -1640,7 +1643,6 @@
 	kn_info = kernfs_create_dir(parent_kn, "info", parent_kn->mode, NULL);
 	if (IS_ERR(kn_info))
 		return PTR_ERR(kn_info);
-	kernfs_get(kn_info);
 
 	ret = rdtgroup_add_files(kn_info, RF_TOP_INFO);
 	if (ret)
@@ -1661,12 +1663,6 @@
 			goto out_destroy;
 	}
 
-	/*
-	 * This extra ref will be put in kernfs_remove() and guarantees
-	 * that @rdtgrp->kn is always accessible.
-	 */
-	kernfs_get(kn_info);
-
 	ret = rdtgroup_kn_set_ugid(kn_info);
 	if (ret)
 		goto out_destroy;
@@ -1695,12 +1691,6 @@
 	if (dest_kn)
 		*dest_kn = kn;
 
-	/*
-	 * This extra ref will be put in kernfs_remove() and guarantees
-	 * that @rdtgrp->kn is always accessible.
-	 */
-	kernfs_get(kn);
-
 	ret = rdtgroup_kn_set_ugid(kn);
 	if (ret)
 		goto out_destroy;
@@ -1741,9 +1731,6 @@
 	struct rdt_domain *d;
 	int cpu;
 
-	if (!zalloc_cpumask_var(&cpu_mask, GFP_KERNEL))
-		return -ENOMEM;
-
 	if (level == RDT_RESOURCE_L3)
 		update = l3_qos_cfg_update;
 	else if (level == RDT_RESOURCE_L2)
@@ -1751,6 +1738,9 @@
 	else
 		return -EINVAL;
 
+	if (!zalloc_cpumask_var(&cpu_mask, GFP_KERNEL))
+		return -ENOMEM;
+
 	r_l = &rdt_resources_all[level];
 	list_for_each_entry(d, &r_l->domains, list) {
 		/* Pick one CPU from each domain instance to update MSR */
@@ -1769,6 +1759,19 @@
 	return 0;
 }
 
+/* Restore the qos cfg state when a domain comes online */
+void rdt_domain_reconfigure_cdp(struct rdt_resource *r)
+{
+	if (!r->alloc_capable)
+		return;
+
+	if (r == &rdt_resources_all[RDT_RESOURCE_L2DATA])
+		l2_qos_cfg_update(&r->alloc_enabled);
+
+	if (r == &rdt_resources_all[RDT_RESOURCE_L3DATA])
+		l3_qos_cfg_update(&r->alloc_enabled);
+}
+
 /*
  * Enable or disable the MBA software controller
  * which helps user specify bandwidth in MBps.
@@ -1914,8 +1917,7 @@
 		    rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED)
 			rdtgroup_pseudo_lock_remove(rdtgrp);
 		kernfs_unbreak_active_protection(kn);
-		kernfs_put(rdtgrp->kn);
-		kfree(rdtgrp);
+		rdtgroup_remove(rdtgrp);
 	} else {
 		kernfs_unbreak_active_protection(kn);
 	}
@@ -1970,17 +1972,15 @@
 
 	if (rdt_mon_capable) {
 		ret = mongroup_create_dir(rdtgroup_default.kn,
-					  NULL, "mon_groups",
+					  &rdtgroup_default, "mon_groups",
 					  &kn_mongrp);
 		if (ret < 0)
 			goto out_info;
-		kernfs_get(kn_mongrp);
 
 		ret = mkdir_mondata_all(rdtgroup_default.kn,
 					&rdtgroup_default, &kn_mondata);
 		if (ret < 0)
 			goto out_mongrp;
-		kernfs_get(kn_mondata);
 		rdtgroup_default.mon.mon_data_kn = kn_mondata;
 	}
 
@@ -2205,7 +2205,11 @@
 	list_for_each_entry_safe(sentry, stmp, head, mon.crdtgrp_list) {
 		free_rmid(sentry->mon.rmid);
 		list_del(&sentry->mon.crdtgrp_list);
-		kfree(sentry);
+
+		if (atomic_read(&sentry->waitcount) != 0)
+			sentry->flags = RDT_DELETED;
+		else
+			rdtgroup_remove(sentry);
 	}
 }
 
@@ -2243,7 +2247,11 @@
 
 		kernfs_remove(rdtgrp->kn);
 		list_del(&rdtgrp->rdtgroup_list);
-		kfree(rdtgrp);
+
+		if (atomic_read(&rdtgrp->waitcount) != 0)
+			rdtgrp->flags = RDT_DELETED;
+		else
+			rdtgroup_remove(rdtgrp);
 	}
 	/* Notify online CPUs to update per cpu storage and PQR_ASSOC MSR */
 	update_closid_rmid(cpu_online_mask, &rdtgroup_default);
@@ -2343,11 +2351,6 @@
 	if (IS_ERR(kn))
 		return PTR_ERR(kn);
 
-	/*
-	 * This extra ref will be put in kernfs_remove() and guarantees
-	 * that kn is always accessible.
-	 */
-	kernfs_get(kn);
 	ret = rdtgroup_kn_set_ugid(kn);
 	if (ret)
 		goto out_destroy;
@@ -2446,7 +2449,7 @@
 	/*
 	 * Create the mon_data directory first.
 	 */
-	ret = mongroup_create_dir(parent_kn, NULL, "mon_data", &kn);
+	ret = mongroup_create_dir(parent_kn, prgrp, "mon_data", &kn);
 	if (ret)
 		return ret;
 
@@ -2645,7 +2648,7 @@
 	uint files = 0;
 	int ret;
 
-	prdtgrp = rdtgroup_kn_lock_live(prgrp_kn);
+	prdtgrp = rdtgroup_kn_lock_live(parent_kn);
 	if (!prdtgrp) {
 		ret = -ENODEV;
 		goto out_unlock;
@@ -2683,8 +2686,8 @@
 	/*
 	 * kernfs_remove() will drop the reference count on "kn" which
 	 * will free it. But we still need it to stick around for the
-	 * rdtgroup_kn_unlock(kn} call below. Take one extra reference
-	 * here, which will be dropped inside rdtgroup_kn_unlock().
+	 * rdtgroup_kn_unlock(kn) call. Take one extra reference here,
+	 * which will be dropped by kernfs_put() in rdtgroup_remove().
 	 */
 	kernfs_get(kn);
 
@@ -2718,18 +2721,19 @@
 	kernfs_activate(kn);
 
 	/*
-	 * The caller unlocks the prgrp_kn upon success.
+	 * The caller unlocks the parent_kn upon success.
 	 */
 	return 0;
 
 out_idfree:
 	free_rmid(rdtgrp->mon.rmid);
 out_destroy:
+	kernfs_put(rdtgrp->kn);
 	kernfs_remove(rdtgrp->kn);
 out_free_rgrp:
 	kfree(rdtgrp);
 out_unlock:
-	rdtgroup_kn_unlock(prgrp_kn);
+	rdtgroup_kn_unlock(parent_kn);
 	return ret;
 }
 
@@ -2737,7 +2741,7 @@
 {
 	kernfs_remove(rgrp->kn);
 	free_rmid(rgrp->mon.rmid);
-	kfree(rgrp);
+	rdtgroup_remove(rgrp);
 }
 
 /*
@@ -2767,7 +2771,7 @@
 	 */
 	list_add_tail(&rdtgrp->mon.crdtgrp_list, &prgrp->mon.crdtgrp_list);
 
-	rdtgroup_kn_unlock(prgrp_kn);
+	rdtgroup_kn_unlock(parent_kn);
 	return ret;
 }
 
@@ -2810,7 +2814,7 @@
 		 * Create an empty mon_groups directory to hold the subset
 		 * of tasks and cpus to monitor.
 		 */
-		ret = mongroup_create_dir(kn, NULL, "mon_groups", NULL);
+		ret = mongroup_create_dir(kn, rdtgrp, "mon_groups", NULL);
 		if (ret) {
 			rdt_last_cmd_puts("kernfs subdir error\n");
 			goto out_del_list;
@@ -2826,7 +2830,7 @@
 out_common_fail:
 	mkdir_rdt_prepare_clean(rdtgrp);
 out_unlock:
-	rdtgroup_kn_unlock(prgrp_kn);
+	rdtgroup_kn_unlock(parent_kn);
 	return ret;
 }
 
@@ -2899,11 +2903,6 @@
 	WARN_ON(list_empty(&prdtgrp->mon.crdtgrp_list));
 	list_del(&rdtgrp->mon.crdtgrp_list);
 
-	/*
-	 * one extra hold on this, will drop when we kfree(rdtgrp)
-	 * in rdtgroup_kn_unlock()
-	 */
-	kernfs_get(kn);
 	kernfs_remove(rdtgrp->kn);
 
 	return 0;
@@ -2915,11 +2914,6 @@
 	rdtgrp->flags = RDT_DELETED;
 	list_del(&rdtgrp->rdtgroup_list);
 
-	/*
-	 * one extra hold on this, will drop when we kfree(rdtgrp)
-	 * in rdtgroup_kn_unlock()
-	 */
-	kernfs_get(kn);
 	kernfs_remove(rdtgrp->kn);
 	return 0;
 }
@@ -2952,13 +2946,13 @@
 	closid_free(rdtgrp->closid);
 	free_rmid(rdtgrp->mon.rmid);
 
+	rdtgroup_ctrl_remove(kn, rdtgrp);
+
 	/*
 	 * Free all the child monitor group rmids.
 	 */
 	free_all_child_rdtgrp(rdtgrp);
 
-	rdtgroup_ctrl_remove(kn, rdtgrp);
-
 	return 0;
 }
 
@@ -2985,7 +2979,8 @@
 	 * If the rdtgroup is a mon group and parent directory
 	 * is a valid "mon_groups" directory, remove the mon group.
 	 */
-	if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn) {
+	if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn &&
+	    rdtgrp != &rdtgroup_default) {
 		if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP ||
 		    rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) {
 			ret = rdtgroup_ctrl_remove(kn, rdtgrp);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/topology.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/topology.c
@@ -25,10 +25,10 @@
 #define BITS_SHIFT_NEXT_LEVEL(eax)	((eax) & 0x1f)
 #define LEVEL_MAX_SIBLINGS(ebx)		((ebx) & 0xffff)
 
-#ifdef CONFIG_SMP
 unsigned int __max_die_per_package __read_mostly = 1;
 EXPORT_SYMBOL(__max_die_per_package);
 
+#ifdef CONFIG_SMP
 /*
  * Check if given CPUID extended toplogy "leaf" is implemented
  */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/tsx.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/tsx.c
@@ -115,11 +115,12 @@
 		tsx_disable();
 
 		/*
-		 * tsx_disable() will change the state of the
-		 * RTM CPUID bit.  Clear it here since it is now
-		 * expected to be not set.
+		 * tsx_disable() will change the state of the RTM and HLE CPUID
+		 * bits. Clear them here since they are now expected to be not
+		 * set.
 		 */
 		setup_clear_cpu_cap(X86_FEATURE_RTM);
+		setup_clear_cpu_cap(X86_FEATURE_HLE);
 	} else if (tsx_ctrl_state == TSX_CTRL_ENABLE) {
 
 		/*
@@ -131,10 +132,10 @@
 		tsx_enable();
 
 		/*
-		 * tsx_enable() will change the state of the
-		 * RTM CPUID bit.  Force it here since it is now
-		 * expected to be set.
+		 * tsx_enable() will change the state of the RTM and HLE CPUID
+		 * bits. Force them here since they are now expected to be set.
 		 */
 		setup_force_cpu_cap(X86_FEATURE_RTM);
+		setup_force_cpu_cap(X86_FEATURE_HLE);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/cpu/umwait.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/cpu/umwait.c
@@ -17,12 +17,6 @@
  */
 static u32 umwait_control_cached = UMWAIT_CTRL_VAL(100000, UMWAIT_C02_ENABLE);
 
-u32 get_umwait_control_msr(void)
-{
-	return umwait_control_cached;
-}
-EXPORT_SYMBOL_GPL(get_umwait_control_msr);
-
 /*
  * Cache the original IA32_UMWAIT_CONTROL MSR value which is configured by
  * hardware or BIOS before kernel boot.
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/crash.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/crash.c
@@ -24,6 +24,7 @@
 #include <linux/export.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
+#include <linux/memblock.h>
 
 #include <asm/processor.h>
 #include <asm/hardirq.h>
@@ -39,6 +40,7 @@
 #include <asm/virtext.h>
 #include <asm/intel_pt.h>
 #include <asm/crash.h>
+#include <asm/cmdline.h>
 
 /* Used while preparing memory map entries for second kernel */
 struct crash_memmap_data {
@@ -68,6 +70,19 @@
 	rcu_read_unlock();
 }
 
+/*
+ * When the crashkernel option is specified, only use the low
+ * 1M for the real mode trampoline.
+ */
+void __init crash_reserve_low_1M(void)
+{
+	if (cmdline_find_option(boot_command_line, "crashkernel", NULL, 0) < 0)
+		return;
+
+	memblock_reserve(0, 1<<20);
+	pr_info("Reserving the low 1M of memory for crashkernel\n");
+}
+
 #if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
 
 static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/doublefault.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/doublefault.c
@@ -65,6 +65,9 @@
 	.ss		= __KERNEL_DS,
 	.ds		= __USER_DS,
 	.fs		= __KERNEL_PERCPU,
+#ifndef CONFIG_X86_32_LAZY_GS
+	.gs		= __KERNEL_STACK_CANARY,
+#endif
 
 	.__cr3		= __pa_nodebug(swapper_pg_dir),
 };
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/early-quirks.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/early-quirks.c
@@ -28,6 +28,37 @@
 #include <asm/irq_remapping.h>
 #include <asm/early_ioremap.h>
 
+static void __init early_pci_clear_msi(int bus, int slot, int func)
+{
+	int pos;
+	u16 ctrl;
+
+	if (likely(!pci_early_clear_msi))
+		return;
+
+	pr_info_once("Clearing MSI/MSI-X enable bits early in boot (quirk)\n");
+
+	pos = pci_early_find_cap(bus, slot, func, PCI_CAP_ID_MSI);
+	if (pos) {
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSI_FLAGS);
+		ctrl &= ~PCI_MSI_FLAGS_ENABLE;
+		write_pci_config_16(bus, slot, func, pos + PCI_MSI_FLAGS, ctrl);
+
+		/* Read again to flush previous write */
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSI_FLAGS);
+	}
+
+	pos = pci_early_find_cap(bus, slot, func, PCI_CAP_ID_MSIX);
+	if (pos) {
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSIX_FLAGS);
+		ctrl &= ~PCI_MSIX_FLAGS_ENABLE;
+		write_pci_config_16(bus, slot, func, pos + PCI_MSIX_FLAGS, ctrl);
+
+		/* Read again to flush previous write */
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSIX_FLAGS);
+	}
+}
+
 static void __init fix_hypertransport_config(int num, int slot, int func)
 {
 	u32 htcfg;
@@ -710,10 +741,15 @@
 	 */
 	{ PCI_VENDOR_ID_INTEL, 0x0f00,
 		PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
+	{ PCI_VENDOR_ID_INTEL, 0x3e20,
+		PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
 	{ PCI_VENDOR_ID_INTEL, 0x3ec4,
 		PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
+	{ PCI_VENDOR_ID_INTEL, 0x8a12,
+		PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
 	{ PCI_VENDOR_ID_BROADCOM, 0x4331,
 	  PCI_CLASS_NETWORK_OTHER, PCI_ANY_ID, 0, apple_airport_reset},
+	{ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, early_pci_clear_msi},
 	{}
 };
 
@@ -766,6 +802,10 @@
 				    PCI_HEADER_TYPE);
 
 	if ((type & 0x7f) == PCI_HEADER_TYPE_BRIDGE) {
+		/* pci_early_clear_msi scans the buses differently. */
+		if (pci_early_clear_msi)
+			return -1;
+
 		sec = read_pci_config_byte(num, slot, func, PCI_SECONDARY_BUS);
 		if (sec > num)
 			early_pci_scan_bus(sec);
@@ -792,8 +832,13 @@
 
 void __init early_quirks(void)
 {
+	int bus;
+
 	if (!early_pci_allowed())
 		return;
 
 	early_pci_scan_bus(0);
+	/* pci_early_clear_msi scans more buses. */
+	for (bus = 1; pci_early_clear_msi && bus < 256; bus++)
+		early_pci_scan_bus(bus);
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/fpu/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/fpu/core.c
@@ -82,7 +82,7 @@
 }
 EXPORT_SYMBOL(irq_fpu_usable);
 
-void kernel_fpu_begin(void)
+void kernel_fpu_begin_mask(unsigned int kfpu_mask)
 {
 	preempt_disable();
 
@@ -101,8 +101,15 @@
 		copy_fpregs_to_fpstate(&current->thread.fpu);
 	}
 	__cpu_invalidate_fpregs_state();
+
+	/* Put sane initial values into the control registers. */
+	if (likely(kfpu_mask & KFPU_MXCSR) && boot_cpu_has(X86_FEATURE_XMM))
+		ldmxcsr(MXCSR_DEFAULT);
+
+	if (unlikely(kfpu_mask & KFPU_387) && boot_cpu_has(X86_FEATURE_FPU))
+		asm volatile ("fninit");
 }
-EXPORT_SYMBOL_GPL(kernel_fpu_begin);
+EXPORT_SYMBOL_GPL(kernel_fpu_begin_mask);
 
 void kernel_fpu_end(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/fpu/init.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/fpu/init.c
@@ -242,9 +242,9 @@
  */
 static void __init fpu__init_parse_early_param(void)
 {
-	char arg[32];
+	char arg[128];
 	char *argptr = arg;
-	int bit;
+	int arglen, res, bit;
 
 #ifdef CONFIG_X86_32
 	if (cmdline_find_option_bool(boot_command_line, "no387"))
@@ -267,12 +267,26 @@
 	if (cmdline_find_option_bool(boot_command_line, "noxsaves"))
 		setup_clear_cpu_cap(X86_FEATURE_XSAVES);
 
-	if (cmdline_find_option(boot_command_line, "clearcpuid", arg,
-				sizeof(arg)) &&
-	    get_option(&argptr, &bit) &&
-	    bit >= 0 &&
-	    bit < NCAPINTS * 32)
-		setup_clear_cpu_cap(bit);
+	arglen = cmdline_find_option(boot_command_line, "clearcpuid", arg, sizeof(arg));
+	if (arglen <= 0)
+		return;
+
+	pr_info("Clearing CPUID bits:");
+	do {
+		res = get_option(&argptr, &bit);
+		if (res == 0 || res == 3)
+			break;
+
+		/* If the argument was too long, the last bit may be cut off */
+		if (res == 1 && arglen >= sizeof(arg))
+			break;
+
+		if (bit >= 0 && bit < NCAPINTS * 32) {
+			pr_cont(" " X86_CAP_FMT, x86_cap_flag(bit));
+			setup_clear_cpu_cap(bit);
+		}
+	} while (res == 2);
+	pr_cont("\n");
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/fpu/signal.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/fpu/signal.c
@@ -352,6 +352,7 @@
 			fpregs_unlock();
 			return 0;
 		}
+		fpregs_deactivate(fpu);
 		fpregs_unlock();
 	}
 
@@ -403,6 +404,8 @@
 	}
 	if (!ret)
 		fpregs_mark_activate();
+	else
+		fpregs_deactivate(fpu);
 	fpregs_unlock();
 
 err_out:
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/fpu/xstate.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/fpu/xstate.c
@@ -895,8 +895,6 @@
 
 #ifdef CONFIG_ARCH_HAS_PKEYS
 
-#define NR_VALID_PKRU_BITS (CONFIG_NR_PROTECTION_KEYS * 2)
-#define PKRU_VALID_MASK (NR_VALID_PKRU_BITS - 1)
 /*
  * This will go out and modify PKRU register to set the access
  * rights for @pkey to @init_val.
@@ -915,6 +913,13 @@
 	if (!boot_cpu_has(X86_FEATURE_OSPKE))
 		return -EINVAL;
 
+	/*
+	 * This code should only be called with valid 'pkey'
+	 * values originating from in-kernel users.  Complain
+	 * if a bad value is observed.
+	 */
+	WARN_ON_ONCE(pkey >= arch_max_pkey());
+
 	/* Set the bits we need in PKRU:  */
 	if (init_val & PKEY_DISABLE_ACCESS)
 		new_pkru_bits |= PKRU_AD_BIT;
@@ -952,18 +957,31 @@
 	return true;
 }
 
-/*
- * This is similar to user_regset_copyout(), but will not add offset to
- * the source data pointer or increment pos, count, kbuf, and ubuf.
- */
-static inline void
-__copy_xstate_to_kernel(void *kbuf, const void *data,
-			unsigned int offset, unsigned int size, unsigned int size_total)
+static void fill_gap(unsigned to, void **kbuf, unsigned *pos, unsigned *count)
 {
-	if (offset < size_total) {
-		unsigned int copy = min(size, size_total - offset);
+	if (*pos < to) {
+		unsigned size = to - *pos;
 
-		memcpy(kbuf + offset, data, copy);
+		if (size > *count)
+			size = *count;
+		memcpy(*kbuf, (void *)&init_fpstate.xsave + *pos, size);
+		*kbuf += size;
+		*pos += size;
+		*count -= size;
+	}
+}
+
+static void copy_part(unsigned offset, unsigned size, void *from,
+			void **kbuf, unsigned *pos, unsigned *count)
+{
+	fill_gap(offset, kbuf, pos, count);
+	if (size > *count)
+		size = *count;
+	if (size) {
+		memcpy(*kbuf, from, size);
+		*kbuf += size;
+		*pos += size;
+		*count -= size;
 	}
 }
 
@@ -976,8 +994,9 @@
  */
 int copy_xstate_to_kernel(void *kbuf, struct xregs_state *xsave, unsigned int offset_start, unsigned int size_total)
 {
-	unsigned int offset, size;
 	struct xstate_header header;
+	const unsigned off_mxcsr = offsetof(struct fxregs_state, mxcsr);
+	unsigned count = size_total;
 	int i;
 
 	/*
@@ -993,46 +1012,42 @@
 	header.xfeatures = xsave->header.xfeatures;
 	header.xfeatures &= ~XFEATURE_MASK_SUPERVISOR;
 
+	if (header.xfeatures & XFEATURE_MASK_FP)
+		copy_part(0, off_mxcsr,
+			  &xsave->i387, &kbuf, &offset_start, &count);
+	if (header.xfeatures & (XFEATURE_MASK_SSE | XFEATURE_MASK_YMM))
+		copy_part(off_mxcsr, MXCSR_AND_FLAGS_SIZE,
+			  &xsave->i387.mxcsr, &kbuf, &offset_start, &count);
+	if (header.xfeatures & XFEATURE_MASK_FP)
+		copy_part(offsetof(struct fxregs_state, st_space), 128,
+			  &xsave->i387.st_space, &kbuf, &offset_start, &count);
+	if (header.xfeatures & XFEATURE_MASK_SSE)
+		copy_part(xstate_offsets[XFEATURE_SSE], 256,
+			  &xsave->i387.xmm_space, &kbuf, &offset_start, &count);
+	/*
+	 * Fill xsave->i387.sw_reserved value for ptrace frame:
+	 */
+	copy_part(offsetof(struct fxregs_state, sw_reserved), 48,
+		  xstate_fx_sw_bytes, &kbuf, &offset_start, &count);
 	/*
 	 * Copy xregs_state->header:
 	 */
-	offset = offsetof(struct xregs_state, header);
-	size = sizeof(header);
-
-	__copy_xstate_to_kernel(kbuf, &header, offset, size, size_total);
+	copy_part(offsetof(struct xregs_state, header), sizeof(header),
+		  &header, &kbuf, &offset_start, &count);
 
-	for (i = 0; i < XFEATURE_MAX; i++) {
+	for (i = FIRST_EXTENDED_XFEATURE; i < XFEATURE_MAX; i++) {
 		/*
 		 * Copy only in-use xstates:
 		 */
 		if ((header.xfeatures >> i) & 1) {
 			void *src = __raw_xsave_addr(xsave, i);
 
-			offset = xstate_offsets[i];
-			size = xstate_sizes[i];
-
-			/* The next component has to fit fully into the output buffer: */
-			if (offset + size > size_total)
-				break;
-
-			__copy_xstate_to_kernel(kbuf, src, offset, size, size_total);
+			copy_part(xstate_offsets[i], xstate_sizes[i],
+				  src, &kbuf, &offset_start, &count);
 		}
 
 	}
-
-	if (xfeatures_mxcsr_quirk(header.xfeatures)) {
-		offset = offsetof(struct fxregs_state, mxcsr);
-		size = MXCSR_AND_FLAGS_SIZE;
-		__copy_xstate_to_kernel(kbuf, &xsave->i387.mxcsr, offset, size, size_total);
-	}
-
-	/*
-	 * Fill xsave->i387.sw_reserved value for ptrace frame:
-	 */
-	offset = offsetof(struct fxregs_state, sw_reserved);
-	size = sizeof(xstate_fx_sw_bytes);
-
-	__copy_xstate_to_kernel(kbuf, xstate_fx_sw_bytes, offset, size, size_total);
+	fill_gap(size_total, &kbuf, &offset_start, &count);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/ftrace_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/ftrace_32.S
@@ -89,7 +89,7 @@
 	ret
 END(ftrace_caller)
 
-ENTRY(ftrace_regs_caller)
+SYM_CODE_START(ftrace_regs_caller)
 	/*
 	 * We're here from an mcount/fentry CALL, and the stack frame looks like:
 	 *
@@ -163,6 +163,7 @@
 	popl	%eax
 
 	jmp	.Lftrace_ret
+SYM_CODE_END(ftrace_regs_caller)
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
 ENTRY(ftrace_graph_caller)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/head_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/head_32.S
@@ -26,6 +26,7 @@
 #include <asm/bootparam.h>
 #include <asm/export.h>
 #include <asm/pgtable_32.h>
+#include <asm/nospec-branch.h>
 
 /* Physical address */
 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -64,7 +65,7 @@
  * can.
  */
 __HEAD
-ENTRY(startup_32)
+SYM_CODE_START(startup_32)
 	movl pa(initial_stack),%ecx
 	
 	/* test KEEP_SEGMENTS flag to see if the bootloader is asking
@@ -153,6 +154,7 @@
 
 	movl pa(subarch_entries)(,%eax,4), %eax
 	subl $__PAGE_OFFSET, %eax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp *%eax
 
 .Lbad_subarch:
@@ -172,6 +174,7 @@
 #else
 	jmp .Ldefault_entry
 #endif /* CONFIG_PARAVIRT */
+SYM_CODE_END(startup_32)
 
 #ifdef CONFIG_HOTPLUG_CPU
 /*
@@ -302,6 +305,7 @@
 	movl setup_once_ref,%eax
 	andl %eax,%eax
 	jz 1f				# Did we do this already?
+	ANNOTATE_RETPOLINE_SAFE
 	call *%eax
 1:
 
@@ -571,6 +575,16 @@
 #  error "Kernel PMDs should be 1, 2 or 3"
 # endif
 	.align PAGE_SIZE		/* needs to be page-sized too */
+
+#ifdef CONFIG_PAGE_TABLE_ISOLATION
+	/*
+	 * PTI needs another page so sync_initial_pagetable() works correctly
+	 * and does not scribble over the data which is placed behind the
+	 * actual initial_page_table. See clone_pgd_range().
+	 */
+	.fill 1024, 4, 0
+#endif
+
 #endif
 
 .data
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/i8259.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/i8259.c
@@ -207,7 +207,7 @@
 		 * lets ACK and report it. [once per IRQ]
 		 */
 		if (!(spurious_irq_mask & irqmask)) {
-			printk(KERN_DEBUG
+			printk_deferred(KERN_DEBUG
 			       "spurious 8259A interrupt: IRQ%d.\n", irq);
 			spurious_irq_mask |= irqmask;
 		}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/idt.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/idt.c
@@ -318,7 +318,11 @@
 
 #ifdef CONFIG_X86_LOCAL_APIC
 	for_each_clear_bit_from(i, system_vectors, NR_VECTORS) {
-		set_bit(i, system_vectors);
+		/*
+		 * Don't set the non assigned system vectors in the
+		 * system_vectors bitmap. Otherwise they show up in
+		 * /proc/interrupts.
+		 */
 		entry = spurious_entries_start + 8 * (i - FIRST_SYSTEM_VECTOR);
 		set_intr_gate(i, entry);
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/ima_arch.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/ima_arch.c
@@ -10,8 +10,6 @@
 
 static enum efi_secureboot_mode get_sb_mode(void)
 {
-	efi_char16_t efi_SecureBoot_name[] = L"SecureBoot";
-	efi_char16_t efi_SetupMode_name[] = L"SecureBoot";
 	efi_guid_t efi_variable_guid = EFI_GLOBAL_VARIABLE_GUID;
 	efi_status_t status;
 	unsigned long size;
@@ -25,7 +23,7 @@
 	}
 
 	/* Get variable contents into buffer */
-	status = efi.get_variable(efi_SecureBoot_name, &efi_variable_guid,
+	status = efi.get_variable(L"SecureBoot", &efi_variable_guid,
 				  NULL, &size, &secboot);
 	if (status == EFI_NOT_FOUND) {
 		pr_info("ima: secureboot mode disabled\n");
@@ -38,7 +36,7 @@
 	}
 
 	size = sizeof(setupmode);
-	status = efi.get_variable(efi_SetupMode_name, &efi_variable_guid,
+	status = efi.get_variable(L"SetupMode", &efi_variable_guid,
 				  NULL, &size, &setupmode);
 
 	if (status != EFI_SUCCESS)	/* ignore unknown SetupMode */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/irq_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/irq_64.c
@@ -43,7 +43,7 @@
 		pages[i] = pfn_to_page(pa >> PAGE_SHIFT);
 	}
 
-	va = vmap(pages, IRQ_STACK_SIZE / PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL);
+	va = vmap(pages, IRQ_STACK_SIZE / PAGE_SIZE, VM_MAP, PAGE_KERNEL);
 	if (!va)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/kexec-bzimage64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/kexec-bzimage64.c
@@ -210,8 +210,7 @@
 	params->hdr.hardware_subarch = boot_params.hdr.hardware_subarch;
 
 	/* Copying screen_info will do? */
-	memcpy(&params->screen_info, &boot_params.screen_info,
-				sizeof(struct screen_info));
+	memcpy(&params->screen_info, &screen_info, sizeof(struct screen_info));
 
 	/* Fill in memsize later */
 	params->screen_info.ext_mem_k = 0;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/kprobes/core.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/kprobes/core.c
@@ -746,16 +746,11 @@
 NOKPROBE_SYMBOL(kretprobe_trampoline);
 STACK_FRAME_NON_STANDARD(kretprobe_trampoline);
 
-static struct kprobe kretprobe_kprobe = {
-	.addr = (void *)kretprobe_trampoline,
-};
-
 /*
  * Called from kretprobe_trampoline
  */
 __used __visible void *trampoline_handler(struct pt_regs *regs)
 {
-	struct kprobe_ctlblk *kcb;
 	struct kretprobe_instance *ri = NULL;
 	struct hlist_head *head, empty_rp;
 	struct hlist_node *tmp;
@@ -765,16 +760,12 @@
 	void *frame_pointer;
 	bool skipped = false;
 
-	preempt_disable();
-
 	/*
 	 * Set a dummy kprobe for avoiding kretprobe recursion.
 	 * Since kretprobe never run in kprobe handler, kprobe must not
 	 * be running at this point.
 	 */
-	kcb = get_kprobe_ctlblk();
-	__this_cpu_write(current_kprobe, &kretprobe_kprobe);
-	kcb->kprobe_status = KPROBE_HIT_ACTIVE;
+	kprobe_busy_begin();
 
 	INIT_HLIST_HEAD(&empty_rp);
 	kretprobe_hash_lock(current, &head, &flags);
@@ -850,7 +841,7 @@
 			__this_cpu_write(current_kprobe, &ri->rp->kp);
 			ri->ret_addr = correct_ret_addr;
 			ri->rp->handler(ri, regs);
-			__this_cpu_write(current_kprobe, &kretprobe_kprobe);
+			__this_cpu_write(current_kprobe, &kprobe_busy);
 		}
 
 		recycle_rp_inst(ri, &empty_rp);
@@ -866,8 +857,7 @@
 
 	kretprobe_hash_unlock(current, &flags);
 
-	__this_cpu_write(current_kprobe, NULL);
-	preempt_enable();
+	kprobe_busy_end();
 
 	hlist_for_each_entry_safe(ri, tmp, &empty_rp, hlist) {
 		hlist_del(&ri->hlist);
@@ -1029,6 +1019,11 @@
 		 * So clear it by resetting the current kprobe:
 		 */
 		regs->flags &= ~X86_EFLAGS_TF;
+		/*
+		 * Since the single step (trap) has been cancelled,
+		 * we need to restore BTF here.
+		 */
+		restore_btf();
 
 		/*
 		 * If the TF flag was set before the kprobe hit,
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/module.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/module.c
@@ -114,6 +114,7 @@
 			*location += sym->st_value;
 			break;
 		case R_386_PC32:
+		case R_386_PLT32:
 			/* Add the value, subtract its position */
 			*location += sym->st_value - (uint32_t)location;
 			break;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/nmi.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/nmi.c
@@ -104,18 +104,21 @@
 }
 fs_initcall(nmi_warning_debugfs);
 
-static void nmi_max_handler(struct irq_work *w)
+static void nmi_check_duration(struct nmiaction *action, u64 duration)
 {
-	struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
 	int remainder_ns, decimal_msecs;
-	u64 whole_msecs = READ_ONCE(a->max_duration);
 
-	remainder_ns = do_div(whole_msecs, (1000 * 1000));
+	if (duration < nmi_longest_ns || duration < action->max_duration)
+		return;
+
+	action->max_duration = duration;
+
+	remainder_ns = do_div(duration, (1000 * 1000));
 	decimal_msecs = remainder_ns / 1000;
 
 	printk_ratelimited(KERN_INFO
 		"INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
-		a->handler, whole_msecs, decimal_msecs);
+		action->handler, duration, decimal_msecs);
 }
 
 static int nmi_handle(unsigned int type, struct pt_regs *regs)
@@ -142,11 +145,7 @@
 		delta = sched_clock() - delta;
 		trace_nmi_handler(a->handler, (int)delta, thishandled);
 
-		if (delta < nmi_longest_ns || delta < a->max_duration)
-			continue;
-
-		a->max_duration = delta;
-		irq_work_queue(&a->irq_work);
+		nmi_check_duration(a, delta);
 	}
 
 	rcu_read_unlock();
@@ -164,8 +163,6 @@
 	if (!action->handler)
 		return -EINVAL;
 
-	init_irq_work(&action->irq_work, nmi_max_handler);
-
 	raw_spin_lock_irqsave(&desc->lock, flags);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/process.c
@@ -428,28 +428,20 @@
 
 	lockdep_assert_irqs_disabled();
 
-	/*
-	 * If TIF_SSBD is different, select the proper mitigation
-	 * method. Note that if SSBD mitigation is disabled or permanentely
-	 * enabled this branch can't be taken because nothing can set
-	 * TIF_SSBD.
-	 */
-	if (tif_diff & _TIF_SSBD) {
-		if (static_cpu_has(X86_FEATURE_VIRT_SSBD)) {
+	/* Handle change of TIF_SSBD depending on the mitigation method. */
+	if (static_cpu_has(X86_FEATURE_VIRT_SSBD)) {
+		if (tif_diff & _TIF_SSBD)
 			amd_set_ssb_virt_state(tifn);
-		} else if (static_cpu_has(X86_FEATURE_LS_CFG_SSBD)) {
+	} else if (static_cpu_has(X86_FEATURE_LS_CFG_SSBD)) {
+		if (tif_diff & _TIF_SSBD)
 			amd_set_core_ssb_state(tifn);
-		} else if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
-			   static_cpu_has(X86_FEATURE_AMD_SSBD)) {
-			msr |= ssbd_tif_to_spec_ctrl(tifn);
-			updmsr  = true;
-		}
+	} else if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
+		   static_cpu_has(X86_FEATURE_AMD_SSBD)) {
+		updmsr |= !!(tif_diff & _TIF_SSBD);
+		msr |= ssbd_tif_to_spec_ctrl(tifn);
 	}
 
-	/*
-	 * Only evaluate TIF_SPEC_IB if conditional STIBP is enabled,
-	 * otherwise avoid the MSR write.
-	 */
+	/* Only evaluate TIF_SPEC_IB if conditional STIBP is enabled. */
 	if (IS_ENABLED(CONFIG_SMP) &&
 	    static_branch_unlikely(&switch_to_cond_stibp)) {
 		updmsr |= !!(tif_diff & _TIF_SPEC_IB);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/process_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/process_64.c
@@ -316,7 +316,7 @@
 		 */
 		mutex_lock(&task->mm->context.lock);
 		ldt = task->mm->context.ldt;
-		if (unlikely(idx >= ldt->nr_entries))
+		if (unlikely(!ldt || idx >= ldt->nr_entries))
 			base = 0;
 		else
 			base = get_desc_base(ldt->entries + idx);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/reboot.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/reboot.c
@@ -32,6 +32,7 @@
 #include <asm/realmode.h>
 #include <asm/x86_init.h>
 #include <asm/efi.h>
+#include <asm/nospec-branch.h>
 
 /*
  * Power off function, if any
@@ -127,11 +128,11 @@
 
 	/* Jump to the identity-mapped low memory code */
 #ifdef CONFIG_X86_32
-	asm volatile("jmpl *%0" : :
+	asm volatile(ANNOTATE_RETPOLINE_SAFE "jmpl *%0" : :
 		     "rm" (real_mode_header->machine_real_restart_asm),
 		     "a" (type));
 #else
-	asm volatile("ljmpl *%0" : :
+	asm volatile(ANNOTATE_RETPOLINE_SAFE "ljmpl *%0" : :
 		     "m" (real_mode_header->machine_real_restart_asm),
 		     "D" (type));
 #endif
@@ -197,6 +198,14 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5"),
 		},
 	},
+	{	/* Handle problems with rebooting on Apple MacBook6,1 */
+		.callback = set_pci_reboot,
+		.ident = "Apple MacBook6,1",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "MacBook6,1"),
+		},
+	},
 	{	/* Handle problems with rebooting on Apple MacBookPro5 */
 		.callback = set_pci_reboot,
 		.ident = "Apple MacBookPro5",
@@ -469,6 +478,15 @@
 		},
 	},
 
+	{	/* PCIe Wifi card isn't detected after reboot otherwise */
+		.callback = set_pci_reboot,
+		.ident = "Zotac ZBOX CI327 nano",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "NA"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "ZBOX-CI327NANO-GS-01"),
+		},
+	},
+
 	/* Sony */
 	{	/* Handle problems with rebooting on Sony VGN-Z540N */
 		.callback = set_bios_reboot,
@@ -478,7 +496,46 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"),
 		},
 	},
-
+	{	/* Handle problems with rebooting on the Latitude E6520. */
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E6520",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"),
+		},
+	},
+	{       /* Handle problems with rebooting on the OptiPlex 790. */
+		.callback = set_pci_reboot,
+		.ident = "Dell OptiPlex 790",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 790"),
+		},
+	},
+	{	/* Handle problems with rebooting on the OptiPlex 990. */
+		.callback = set_pci_reboot,
+		.ident = "Dell OptiPlex 990",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
+		},
+	},
+	{       /* Handle problems with rebooting on the Latitude E6220. */
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E6220",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6220"),
+		},
+	},
+	{	/* Handle problems with rebooting on the OptiPlex 390. */
+		.callback = set_pci_reboot,
+		.ident = "Dell OptiPlex 390",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 390"),
+		},
+	},
 	{ }
 };
 
@@ -530,29 +587,20 @@
 	local_irq_disable();
 
 	/*
-	 * We need to disable VMX on all CPUs before rebooting, otherwise
-	 * we risk hanging up the machine, because the CPU ignore INIT
-	 * signals when VMX is enabled.
-	 *
-	 * We can't take any locks and we may be on an inconsistent
-	 * state, so we use NMIs as IPIs to tell the other CPUs to disable
-	 * VMX and halt.
+	 * Disable VMX on all CPUs before rebooting, otherwise we risk hanging
+	 * the machine, because the CPU blocks INIT when it's in VMX root.
 	 *
-	 * For safety, we will avoid running the nmi_shootdown_cpus()
-	 * stuff unnecessarily, but we don't have a way to check
-	 * if other CPUs have VMX enabled. So we will call it only if the
-	 * CPU we are running on has VMX enabled.
+	 * We can't take any locks and we may be on an inconsistent state, so
+	 * use NMIs as IPIs to tell the other CPUs to exit VMX root and halt.
 	 *
-	 * We will miss cases where VMX is not enabled on all CPUs. This
-	 * shouldn't do much harm because KVM always enable VMX on all
-	 * CPUs anyway. But we can miss it on the small window where KVM
-	 * is still enabling VMX.
+	 * Do the NMI shootdown even if VMX if off on _this_ CPU, as that
+	 * doesn't prevent a different CPU from being in VMX root operation.
 	 */
-	if (cpu_has_vmx() && cpu_vmx_enabled()) {
-		/* Disable VMX on this CPU. */
-		cpu_vmxoff();
+	if (cpu_has_vmx()) {
+		/* Safely force _this_ CPU out of VMX root operation. */
+		__cpu_emergency_vmxoff();
 
-		/* Halt and disable VMX on the other CPUs */
+		/* Halt and exit VMX root operation on the other CPUs. */
 		nmi_shootdown_cpus(vmxoff_nmi);
 
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/relocate_kernel_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/relocate_kernel_32.S
@@ -8,6 +8,7 @@
 #include <asm/page_types.h>
 #include <asm/kexec.h>
 #include <asm/processor-flags.h>
+#include <asm/nospec-branch.h>
 
 /*
  * Must be relocatable PIC code callable as a C function
@@ -165,6 +166,7 @@
 	movl	CP_PA_SWAP_PAGE(%edi), %esp
 	addl	$PAGE_SIZE, %esp
 2:
+	ANNOTATE_RETPOLINE_SAFE
 	call	*%edx
 
 	/* get the re-entry point of the peer system */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/relocate_kernel_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/relocate_kernel_64.S
@@ -9,6 +9,7 @@
 #include <asm/kexec.h>
 #include <asm/processor-flags.h>
 #include <asm/pgtable_types.h>
+#include <asm/nospec-branch.h>
 
 /*
  * Must be relocatable PIC code callable as a C function
@@ -192,6 +193,7 @@
 1:
 	popq	%rdx
 	leaq	PAGE_SIZE(%r10), %rsp
+	ANNOTATE_RETPOLINE_SAFE
 	call	*%rdx
 
 	/* get the re-entry point of the peer system */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/setup.c
@@ -73,6 +73,7 @@
 #include <linux/jiffies.h>
 #include <linux/mem_encrypt.h>
 #include <linux/sizes.h>
+#include <linux/security.h>
 
 #include <linux/usb/xhci-dbgp.h>
 #include <video/edid.h>
@@ -1027,6 +1028,13 @@
 	if (efi_enabled(EFI_BOOT))
 		efi_init();
 
+	efi_set_secure_boot(boot_params.secure_boot);
+
+#ifdef CONFIG_LOCK_DOWN_IN_SECURE_BOOT
+	if (efi_enabled(EFI_SECURE_BOOT))
+		security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX);
+#endif
+
 	dmi_setup();
 
 	/*
@@ -1179,19 +1187,7 @@
 	/* Allocate bigger log buffer */
 	setup_log_buf(1);
 
-	if (efi_enabled(EFI_BOOT)) {
-		switch (boot_params.secure_boot) {
-		case efi_secureboot_mode_disabled:
-			pr_info("Secure boot disabled\n");
-			break;
-		case efi_secureboot_mode_enabled:
-			pr_info("Secure boot enabled\n");
-			break;
-		default:
-			pr_info("Secure boot could not be determined\n");
-			break;
-		}
-	}
+	efi_set_secure_boot(boot_params.secure_boot);
 
 	reserve_initrd();
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/smpboot.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/smpboot.c
@@ -262,6 +262,14 @@
 
 	wmb();
 	cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
+
+	/*
+	 * Prevent tail call to cpu_startup_entry() because the stack protector
+	 * guard has been changed a couple of function calls up, in
+	 * boot_init_stack_canary() and must not be checked before tail calling
+	 * another function.
+	 */
+	prevent_tail_call_optimization();
 }
 
 /**
@@ -1591,14 +1599,28 @@
 	if (ret)
 		return ret;
 
-	/*
-	 * Disable the local APIC. Otherwise IPI broadcasts will reach
-	 * it. It still responds normally to INIT, NMI, SMI, and SIPI
-	 * messages.
-	 */
-	apic_soft_disable();
 	cpu_disable_common();
 
+        /*
+         * Disable the local APIC. Otherwise IPI broadcasts will reach
+         * it. It still responds normally to INIT, NMI, SMI, and SIPI
+         * messages.
+         *
+         * Disabling the APIC must happen after cpu_disable_common()
+         * which invokes fixup_irqs().
+         *
+         * Disabling the APIC preserves already set bits in IRR, but
+         * an interrupt arriving after disabling the local APIC does not
+         * set the corresponding IRR bit.
+         *
+         * fixup_irqs() scans IRR for set bits so it can raise a not
+         * yet handled interrupt on the new destination CPU via an IPI
+         * but obviously it can't do so for IRR bits which are not set.
+         * IOW, interrupts arriving after disabling the local APIC will
+         * be lost.
+         */
+	apic_soft_disable();
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/stacktrace.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/stacktrace.c
@@ -58,7 +58,6 @@
 			 * or a page fault), which can make frame pointers
 			 * unreliable.
 			 */
-
 			if (IS_ENABLED(CONFIG_FRAME_POINTER))
 				return -EINVAL;
 		}
@@ -81,10 +80,6 @@
 	if (unwind_error(&state))
 		return -EINVAL;
 
-	/* Success path for non-user tasks, i.e. kthreads and idle tasks */
-	if (!(task->flags & (PF_KTHREAD | PF_IDLE)))
-		return -EINVAL;
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/sysfb_simplefb.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/sysfb_simplefb.c
@@ -90,11 +90,11 @@
 	if (si->orig_video_isVGA == VIDEO_TYPE_VLFB)
 		size <<= 16;
 	length = mode->height * mode->stride;
-	length = PAGE_ALIGN(length);
 	if (length > size) {
 		printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n");
 		return -EINVAL;
 	}
+	length = PAGE_ALIGN(length);
 
 	/* setup IORESOURCE_MEM as framebuffer memory */
 	memset(&res, 0, sizeof(res));
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/tboot.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/tboot.c
@@ -512,9 +512,6 @@
 	if (!tboot_enabled())
 		return 0;
 
-	if (intel_iommu_tboot_noforce)
-		return 1;
-
 	if (no_iommu || swiotlb || dmar_disabled)
 		pr_warning("Forcing Intel-IOMMU to enabled\n");
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/time.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/time.c
@@ -25,10 +25,6 @@
 #include <asm/hpet.h>
 #include <asm/time.h>
 
-#ifdef CONFIG_X86_64
-__visible volatile unsigned long jiffies __cacheline_aligned_in_smp = INITIAL_JIFFIES;
-#endif
-
 unsigned long profile_pc(struct pt_regs *regs)
 {
 	unsigned long pc = instruction_pointer(regs);
@@ -91,10 +87,18 @@
 
 static __init void x86_late_time_init(void)
 {
+	/*
+	 * Before PIT/HPET init, select the interrupt mode. This is required
+	 * to make the decision whether PIT should be initialized correct.
+	 */
+	x86_init.irqs.intr_mode_select();
+
+	/* Setup the legacy timers */
 	x86_init.timers.timer_init();
+
 	/*
-	 * After PIT/HPET timers init, select and setup
-	 * the final interrupt mode for delivering IRQs.
+	 * After PIT/HPET timers init, set up the final interrupt mode for
+	 * delivering IRQs.
 	 */
 	x86_init.irqs.intr_mode_init();
 	tsc_init();
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/tsc_msr.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/tsc_msr.c
@@ -15,18 +15,46 @@
 #include <asm/param.h>
 #include <asm/tsc.h>
 
-#define MAX_NUM_FREQS	9
+#define MAX_NUM_FREQS	16 /* 4 bits to select the frequency */
+
+/*
+ * The frequency numbers in the SDM are e.g. 83.3 MHz, which does not contain a
+ * lot of accuracy which leads to clock drift. As far as we know Bay Trail SoCs
+ * use a 25 MHz crystal and Cherry Trail uses a 19.2 MHz crystal, the crystal
+ * is the source clk for a root PLL which outputs 1600 and 100 MHz. It is
+ * unclear if the root PLL outputs are used directly by the CPU clock PLL or
+ * if there is another PLL in between.
+ * This does not matter though, we can model the chain of PLLs as a single PLL
+ * with a quotient equal to the quotients of all PLLs in the chain multiplied.
+ * So we can create a simplified model of the CPU clock setup using a reference
+ * clock of 100 MHz plus a quotient which gets us as close to the frequency
+ * from the SDM as possible.
+ * For the 83.3 MHz example from above this would give us 100 MHz * 5 / 6 =
+ * 83 and 1/3 MHz, which matches exactly what has been measured on actual hw.
+ */
+#define TSC_REFERENCE_KHZ 100000
+
+struct muldiv {
+	u32 multiplier;
+	u32 divider;
+};
 
 /*
  * If MSR_PERF_STAT[31] is set, the maximum resolved bus ratio can be
  * read in MSR_PLATFORM_ID[12:8], otherwise in MSR_PERF_STAT[44:40].
  * Unfortunately some Intel Atom SoCs aren't quite compliant to this,
  * so we need manually differentiate SoC families. This is what the
- * field msr_plat does.
+ * field use_msr_plat does.
  */
 struct freq_desc {
-	u8 msr_plat;	/* 1: use MSR_PLATFORM_INFO, 0: MSR_IA32_PERF_STATUS */
+	bool use_msr_plat;
+	struct muldiv muldiv[MAX_NUM_FREQS];
+	/*
+	 * Some CPU frequencies in the SDM do not map to known PLL freqs, in
+	 * that case the muldiv array is empty and the freqs array is used.
+	 */
 	u32 freqs[MAX_NUM_FREQS];
+	u32 mask;
 };
 
 /*
@@ -35,31 +63,86 @@
  * by MSR based on SDM.
  */
 static const struct freq_desc freq_desc_pnw = {
-	0, { 0, 0, 0, 0, 0, 99840, 0, 83200 }
+	.use_msr_plat = false,
+	.freqs = { 0, 0, 0, 0, 0, 99840, 0, 83200 },
+	.mask = 0x07,
 };
 
 static const struct freq_desc freq_desc_clv = {
-	0, { 0, 133200, 0, 0, 0, 99840, 0, 83200 }
+	.use_msr_plat = false,
+	.freqs = { 0, 133200, 0, 0, 0, 99840, 0, 83200 },
+	.mask = 0x07,
 };
 
+/*
+ * Bay Trail SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ *  000:   100 *  5 /  6  =  83.3333 MHz
+ *  001:   100 *  1 /  1  = 100.0000 MHz
+ *  010:   100 *  4 /  3  = 133.3333 MHz
+ *  011:   100 *  7 /  6  = 116.6667 MHz
+ *  100:   100 *  4 /  5  =  80.0000 MHz
+ */
 static const struct freq_desc freq_desc_byt = {
-	1, { 83300, 100000, 133300, 116700, 80000, 0, 0, 0 }
+	.use_msr_plat = true,
+	.muldiv = { { 5, 6 }, { 1, 1 }, { 4, 3 }, { 7, 6 },
+		    { 4, 5 } },
+	.mask = 0x07,
 };
 
+/*
+ * Cherry Trail SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ * 0000:   100 *  5 /  6  =  83.3333 MHz
+ * 0001:   100 *  1 /  1  = 100.0000 MHz
+ * 0010:   100 *  4 /  3  = 133.3333 MHz
+ * 0011:   100 *  7 /  6  = 116.6667 MHz
+ * 0100:   100 *  4 /  5  =  80.0000 MHz
+ * 0101:   100 * 14 / 15  =  93.3333 MHz
+ * 0110:   100 *  9 / 10  =  90.0000 MHz
+ * 0111:   100 *  8 /  9  =  88.8889 MHz
+ * 1000:   100 *  7 /  8  =  87.5000 MHz
+ */
 static const struct freq_desc freq_desc_cht = {
-	1, { 83300, 100000, 133300, 116700, 80000, 93300, 90000, 88900, 87500 }
+	.use_msr_plat = true,
+	.muldiv = { { 5, 6 }, {  1,  1 }, { 4,  3 }, { 7, 6 },
+		    { 4, 5 }, { 14, 15 }, { 9, 10 }, { 8, 9 },
+		    { 7, 8 } },
+	.mask = 0x0f,
 };
 
+/*
+ * Merriefield SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ * 0001:   100 *  1 /  1  = 100.0000 MHz
+ * 0010:   100 *  4 /  3  = 133.3333 MHz
+ */
 static const struct freq_desc freq_desc_tng = {
-	1, { 0, 100000, 133300, 0, 0, 0, 0, 0 }
+	.use_msr_plat = true,
+	.muldiv = { { 0, 0 }, { 1, 1 }, { 4, 3 } },
+	.mask = 0x07,
 };
 
+/*
+ * Moorefield SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ * 0000:   100 *  5 /  6  =  83.3333 MHz
+ * 0001:   100 *  1 /  1  = 100.0000 MHz
+ * 0010:   100 *  4 /  3  = 133.3333 MHz
+ * 0011:   100 *  1 /  1  = 100.0000 MHz
+ */
 static const struct freq_desc freq_desc_ann = {
-	1, { 83300, 100000, 133300, 100000, 0, 0, 0, 0 }
+	.use_msr_plat = true,
+	.muldiv = { { 5, 6 }, { 1, 1 }, { 4, 3 }, { 1, 1 } },
+	.mask = 0x0f,
 };
 
+/*
+ * 24 MHz crystal? : 24 * 13 / 4 = 78 MHz
+ * Frequency step for Lightning Mountain SoC is fixed to 78 MHz,
+ * so all the frequency entries are 78000.
+ */
 static const struct freq_desc freq_desc_lgm = {
-	1, { 78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000 }
+	.use_msr_plat = true,
+	.freqs = { 78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000,
+		   78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000 },
+	.mask = 0x0f,
 };
 
 static const struct x86_cpu_id tsc_msr_cpu_ids[] = {
@@ -81,17 +164,19 @@
  */
 unsigned long cpu_khz_from_msr(void)
 {
-	u32 lo, hi, ratio, freq;
+	u32 lo, hi, ratio, freq, tscref;
 	const struct freq_desc *freq_desc;
 	const struct x86_cpu_id *id;
+	const struct muldiv *md;
 	unsigned long res;
+	int index;
 
 	id = x86_match_cpu(tsc_msr_cpu_ids);
 	if (!id)
 		return 0;
 
 	freq_desc = (struct freq_desc *)id->driver_data;
-	if (freq_desc->msr_plat) {
+	if (freq_desc->use_msr_plat) {
 		rdmsr(MSR_PLATFORM_INFO, lo, hi);
 		ratio = (lo >> 8) & 0xff;
 	} else {
@@ -101,12 +186,28 @@
 
 	/* Get FSB FREQ ID */
 	rdmsr(MSR_FSB_FREQ, lo, hi);
+	index = lo & freq_desc->mask;
+	md = &freq_desc->muldiv[index];
 
-	/* Map CPU reference clock freq ID(0-7) to CPU reference clock freq(KHz) */
-	freq = freq_desc->freqs[lo & 0x7];
+	/*
+	 * Note this also catches cases where the index points to an unpopulated
+	 * part of muldiv, in that case the else will set freq and res to 0.
+	 */
+	if (md->divider) {
+		tscref = TSC_REFERENCE_KHZ * md->multiplier;
+		freq = DIV_ROUND_CLOSEST(tscref, md->divider);
+		/*
+		 * Multiplying by ratio before the division has better
+		 * accuracy than just calculating freq * ratio.
+		 */
+		res = DIV_ROUND_CLOSEST(tscref * ratio, md->divider);
+	} else {
+		freq = freq_desc->freqs[index];
+		res = freq * ratio;
+	}
 
-	/* TSC frequency = maximum resolved freq * maximum resolved bus ratio */
-	res = freq * ratio;
+	if (freq == 0)
+		pr_err("Error MSR_FSB_FREQ index %d is unknown\n", index);
 
 #ifdef CONFIG_X86_LOCAL_APIC
 	lapic_timer_period = (freq * 1000) / HZ;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/unwind_orc.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/unwind_orc.c
@@ -142,9 +142,6 @@
 {
 	static struct orc_entry *orc;
 
-	if (!orc_init)
-		return NULL;
-
 	if (ip == 0)
 		return &null_orc_entry;
 
@@ -360,8 +357,8 @@
 	if (!stack_access_ok(state, addr, sizeof(struct pt_regs)))
 		return false;
 
-	*ip = regs->ip;
-	*sp = regs->sp;
+	*ip = READ_ONCE_NOCHECK(regs->ip);
+	*sp = READ_ONCE_NOCHECK(regs->sp);
 	return true;
 }
 
@@ -373,14 +370,43 @@
 	if (!stack_access_ok(state, addr, IRET_FRAME_SIZE))
 		return false;
 
-	*ip = regs->ip;
-	*sp = regs->sp;
+	*ip = READ_ONCE_NOCHECK(regs->ip);
+	*sp = READ_ONCE_NOCHECK(regs->sp);
 	return true;
 }
 
+/*
+ * If state->regs is non-NULL, and points to a full pt_regs, just get the reg
+ * value from state->regs.
+ *
+ * Otherwise, if state->regs just points to IRET regs, and the previous frame
+ * had full regs, it's safe to get the value from the previous regs.  This can
+ * happen when early/late IRQ entry code gets interrupted by an NMI.
+ */
+static bool get_reg(struct unwind_state *state, unsigned int reg_off,
+		    unsigned long *val)
+{
+	unsigned int reg = reg_off/8;
+
+	if (!state->regs)
+		return false;
+
+	if (state->full_regs) {
+		*val = READ_ONCE_NOCHECK(((unsigned long *)state->regs)[reg]);
+		return true;
+	}
+
+	if (state->prev_regs) {
+		*val = READ_ONCE_NOCHECK(((unsigned long *)state->prev_regs)[reg]);
+		return true;
+	}
+
+	return false;
+}
+
 bool unwind_next_frame(struct unwind_state *state)
 {
-	unsigned long ip_p, sp, orig_ip = state->ip, prev_sp = state->sp;
+	unsigned long ip_p, sp, tmp, orig_ip = state->ip, prev_sp = state->sp;
 	enum stack_type prev_type = state->stack_info.type;
 	struct orc_entry *orc;
 	bool indirect = false;
@@ -398,8 +424,11 @@
 	/*
 	 * Find the orc_entry associated with the text address.
 	 *
-	 * Decrement call return addresses by one so they work for sibling
-	 * calls and calls to noreturn functions.
+	 * For a call frame (as opposed to a signal frame), state->ip points to
+	 * the instruction after the call.  That instruction's stack layout
+	 * could be different from the call instruction's layout, for example
+	 * if the call was to a noreturn function.  So get the ORC data for the
+	 * call instruction itself.
 	 */
 	orc = orc_find(state->signal ? state->ip : state->ip - 1);
 	if (!orc) {
@@ -442,39 +471,35 @@
 		break;
 
 	case ORC_REG_R10:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, r10), &sp)) {
 			orc_warn("missing regs for base reg R10 at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->r10;
 		break;
 
 	case ORC_REG_R13:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, r13), &sp)) {
 			orc_warn("missing regs for base reg R13 at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->r13;
 		break;
 
 	case ORC_REG_DI:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, di), &sp)) {
 			orc_warn("missing regs for base reg DI at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->di;
 		break;
 
 	case ORC_REG_DX:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, dx), &sp)) {
 			orc_warn("missing regs for base reg DX at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->dx;
 		break;
 
 	default:
@@ -501,6 +526,7 @@
 
 		state->sp = sp;
 		state->regs = NULL;
+		state->prev_regs = NULL;
 		state->signal = false;
 		break;
 
@@ -512,6 +538,7 @@
 		}
 
 		state->regs = (struct pt_regs *)sp;
+		state->prev_regs = NULL;
 		state->full_regs = true;
 		state->signal = true;
 		break;
@@ -523,6 +550,8 @@
 			goto err;
 		}
 
+		if (state->full_regs)
+			state->prev_regs = state->regs;
 		state->regs = (void *)sp - IRET_FRAME_OFFSET;
 		state->full_regs = false;
 		state->signal = true;
@@ -531,14 +560,14 @@
 	default:
 		orc_warn("unknown .orc_unwind entry type %d for ip %pB\n",
 			 orc->type, (void *)orig_ip);
-		break;
+		goto err;
 	}
 
 	/* Find BP: */
 	switch (orc->bp_reg) {
 	case ORC_REG_UNDEFINED:
-		if (state->regs && state->full_regs)
-			state->bp = state->regs->bp;
+		if (get_reg(state, offsetof(struct pt_regs, bp), &tmp))
+			state->bp = tmp;
 		break;
 
 	case ORC_REG_PREV_SP:
@@ -585,17 +614,20 @@
 	memset(state, 0, sizeof(*state));
 	state->task = task;
 
+	if (!orc_init)
+		goto err;
+
 	/*
 	 * Refuse to unwind the stack of a task while it's executing on another
 	 * CPU.  This check is racy, but that's ok: the unwinder has other
 	 * checks to prevent it from going off the rails.
 	 */
 	if (task_on_another_cpu(task))
-		goto done;
+		goto err;
 
 	if (regs) {
 		if (user_mode(regs))
-			goto done;
+			goto the_end;
 
 		state->ip = regs->ip;
 		state->sp = regs->sp;
@@ -614,9 +646,10 @@
 	} else {
 		struct inactive_task_frame *frame = (void *)task->thread.sp;
 
-		state->sp = task->thread.sp;
+		state->sp = task->thread.sp + sizeof(*frame);
 		state->bp = READ_ONCE_NOCHECK(frame->bp);
 		state->ip = READ_ONCE_NOCHECK(frame->ret_addr);
+		state->signal = (void *)state->ip == ret_from_fork;
 	}
 
 	if (get_stack_info((unsigned long *)state->sp, state->task,
@@ -628,6 +661,7 @@
 		 * generate some kind of backtrace if this happens.
 		 */
 		void *next_page = (void *)PAGE_ALIGN((unsigned long)state->sp);
+		state->error = true;
 		if (get_stack_info(next_page, state->task, &state->stack_info,
 				   &state->stack_mask))
 			return;
@@ -648,13 +682,14 @@
 	/* Otherwise, skip ahead to the user-specified starting frame: */
 	while (!unwind_done(state) &&
 	       (!on_stack(&state->stack_info, first_frame, sizeof(long)) ||
-			state->sp <= (unsigned long)first_frame))
+			state->sp < (unsigned long)first_frame))
 		unwind_next_frame(state);
 
 	return;
 
-done:
+err:
+	state->error = true;
+the_end:
 	state->stack_info.type = STACK_TYPE_UNKNOWN;
-	return;
 }
 EXPORT_SYMBOL_GPL(__unwind_start);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/uprobes.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/uprobes.c
@@ -255,12 +255,13 @@
 
 static bool is_prefix_bad(struct insn *insn)
 {
+	insn_byte_t p;
 	int i;
 
-	for (i = 0; i < insn->prefixes.nbytes; i++) {
+	for_each_insn_prefix(insn, i, p) {
 		insn_attr_t attr;
 
-		attr = inat_get_opcode_attribute(insn->prefixes.bytes[i]);
+		attr = inat_get_opcode_attribute(p);
 		switch (attr) {
 		case INAT_MAKE_PREFIX(INAT_PFX_ES):
 		case INAT_MAKE_PREFIX(INAT_PFX_CS):
@@ -715,6 +716,7 @@
 static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
 {
 	u8 opc1 = OPCODE1(insn);
+	insn_byte_t p;
 	int i;
 
 	switch (opc1) {
@@ -746,8 +748,8 @@
 	 * Intel and AMD behavior differ in 64-bit mode: Intel ignores 66 prefix.
 	 * No one uses these insns, reject any branch insns with such prefix.
 	 */
-	for (i = 0; i < insn->prefixes.nbytes; i++) {
-		if (insn->prefixes.bytes[i] == 0x66)
+	for_each_insn_prefix(insn, i, p) {
+		if (p == 0x66)
 			return -ENOTSUPP;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/vmlinux.lds.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/vmlinux.lds.S
@@ -36,13 +36,13 @@
 #ifdef CONFIG_X86_32
 OUTPUT_ARCH(i386)
 ENTRY(phys_startup_32)
-jiffies = jiffies_64;
 #else
 OUTPUT_ARCH(i386:x86-64)
 ENTRY(phys_startup_64)
-jiffies_64 = jiffies;
 #endif
 
+jiffies = jiffies_64;
+
 #if defined(CONFIG_X86_64)
 /*
  * On 64-bit, align RODATA to 2MB so we retain large page mappings for
@@ -362,6 +362,7 @@
 	.bss : AT(ADDR(.bss) - LOAD_OFFSET) {
 		__bss_start = .;
 		*(.bss..page_aligned)
+		. = ALIGN(PAGE_SIZE);
 		*(BSS_MAIN)
 		BSS_DECRYPTED
 		. = ALIGN(PAGE_SIZE);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kernel/x86_init.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kernel/x86_init.c
@@ -58,6 +58,7 @@
 		.pre_vector_init	= init_ISA_irqs,
 		.intr_init		= native_init_IRQ,
 		.trap_init		= x86_init_noop,
+		.intr_mode_select	= apic_intr_mode_select,
 		.intr_mode_init		= apic_intr_mode_init
 	},
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/cpuid.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/cpuid.c
@@ -352,6 +352,7 @@
 	unsigned f_umip = kvm_x86_ops->umip_emulated() ? F(UMIP) : 0;
 	unsigned f_intel_pt = kvm_x86_ops->pt_supported() ? F(INTEL_PT) : 0;
 	unsigned f_la57;
+	unsigned f_pku = kvm_x86_ops->pku_supported() ? F(PKU) : 0;
 
 	/* cpuid 7.0.ebx */
 	const u32 kvm_cpuid_7_0_ebx_x86_features =
@@ -363,7 +364,7 @@
 
 	/* cpuid 7.0.ecx*/
 	const u32 kvm_cpuid_7_0_ecx_x86_features =
-		F(AVX512VBMI) | F(LA57) | F(PKU) | 0 /*OSPKE*/ | F(RDPID) |
+		F(AVX512VBMI) | F(LA57) | 0 /*PKU*/ | 0 /*OSPKE*/ | F(RDPID) |
 		F(AVX512_VPOPCNTDQ) | F(UMIP) | F(AVX512_VBMI2) | F(GFNI) |
 		F(VAES) | F(VPCLMULQDQ) | F(AVX512_VNNI) | F(AVX512_BITALG) |
 		F(CLDEMOTE) | F(MOVDIRI) | F(MOVDIR64B) | 0 /*WAITPKG*/;
@@ -392,6 +393,7 @@
 		/* Set LA57 based on hardware capability. */
 		entry->ecx |= f_la57;
 		entry->ecx |= f_umip;
+		entry->ecx |= f_pku;
 		/* PKU is not yet implemented for shadow paging. */
 		if (!tdp_enabled || !boot_cpu_has(X86_FEATURE_OSPKE))
 			entry->ecx &= ~F(PKU);
@@ -402,7 +404,8 @@
 			entry->edx |= F(SPEC_CTRL);
 		if (boot_cpu_has(X86_FEATURE_STIBP))
 			entry->edx |= F(INTEL_STIBP);
-		if (boot_cpu_has(X86_FEATURE_SSBD))
+		if (boot_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
+		    boot_cpu_has(X86_FEATURE_AMD_SSBD))
 			entry->edx |= F(SPEC_CTRL_SSBD);
 		/*
 		 * We emulate ARCH_CAPABILITIES in software even
@@ -504,7 +507,7 @@
 
 	r = -E2BIG;
 
-	if (*nent >= maxnent)
+	if (WARN_ON(*nent >= maxnent))
 		goto out;
 
 	do_host_cpuid(entry, function, 0);
@@ -759,7 +762,8 @@
 			entry->ebx |= F(AMD_IBRS);
 		if (boot_cpu_has(X86_FEATURE_STIBP))
 			entry->ebx |= F(AMD_STIBP);
-		if (boot_cpu_has(X86_FEATURE_SSBD))
+		if (boot_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
+		    boot_cpu_has(X86_FEATURE_AMD_SSBD))
 			entry->ebx |= F(AMD_SSBD);
 		if (!boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS))
 			entry->ebx |= F(AMD_SSB_NO);
@@ -810,6 +814,9 @@
 static int do_cpuid_func(struct kvm_cpuid_entry2 *entry, u32 func,
 			 int *nent, int maxnent, unsigned int type)
 {
+	if (*nent >= maxnent)
+		return -E2BIG;
+
 	if (type == KVM_GET_EMULATED_CPUID)
 		return __do_cpuid_func_emulated(entry, func, nent, maxnent);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/cpuid.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/cpuid.h
@@ -154,6 +154,20 @@
 	return x86_stepping(best->eax);
 }
 
+static inline bool guest_has_spec_ctrl_msr(struct kvm_vcpu *vcpu)
+{
+	return (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_STIBP) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD));
+}
+
+static inline bool guest_has_pred_cmd_msr(struct kvm_vcpu *vcpu)
+{
+	return (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBPB));
+}
+
 static inline bool supports_cpuid_fault(struct kvm_vcpu *vcpu)
 {
 	return vcpu->arch.msr_platform_info & MSR_PLATFORM_INFO_CPUID_FAULT;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/emulate.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/emulate.c
@@ -22,6 +22,7 @@
 #include "kvm_cache_regs.h"
 #include <asm/kvm_emulate.h>
 #include <linux/stringify.h>
+#include <asm/fpu/api.h>
 #include <asm/debugreg.h>
 #include <asm/nospec-branch.h>
 
@@ -1075,8 +1076,23 @@
 	}
 }
 
+static void emulator_get_fpu(void)
+{
+	fpregs_lock();
+
+	fpregs_assert_state_consistent();
+	if (test_thread_flag(TIF_NEED_FPU_LOAD))
+		switch_fpu_return();
+}
+
+static void emulator_put_fpu(void)
+{
+	fpregs_unlock();
+}
+
 static void read_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data, int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movdqa %%xmm0, %0" : "=m"(*data)); break;
 	case 1: asm("movdqa %%xmm1, %0" : "=m"(*data)); break;
@@ -1098,11 +1114,13 @@
 #endif
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static void write_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data,
 			  int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movdqa %0, %%xmm0" : : "m"(*data)); break;
 	case 1: asm("movdqa %0, %%xmm1" : : "m"(*data)); break;
@@ -1124,10 +1142,12 @@
 #endif
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static void read_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movq %%mm0, %0" : "=m"(*data)); break;
 	case 1: asm("movq %%mm1, %0" : "=m"(*data)); break;
@@ -1139,10 +1159,12 @@
 	case 7: asm("movq %%mm7, %0" : "=m"(*data)); break;
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static void write_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movq %0, %%mm0" : : "m"(*data)); break;
 	case 1: asm("movq %0, %%mm1" : : "m"(*data)); break;
@@ -1154,6 +1176,7 @@
 	case 7: asm("movq %0, %%mm7" : : "m"(*data)); break;
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static int em_fninit(struct x86_emulate_ctxt *ctxt)
@@ -1161,7 +1184,9 @@
 	if (ctxt->ops->get_cr(ctxt, 0) & (X86_CR0_TS | X86_CR0_EM))
 		return emulate_nm(ctxt);
 
+	emulator_get_fpu();
 	asm volatile("fninit");
+	emulator_put_fpu();
 	return X86EMUL_CONTINUE;
 }
 
@@ -1172,7 +1197,9 @@
 	if (ctxt->ops->get_cr(ctxt, 0) & (X86_CR0_TS | X86_CR0_EM))
 		return emulate_nm(ctxt);
 
+	emulator_get_fpu();
 	asm volatile("fnstcw %0": "+m"(fcw));
+	emulator_put_fpu();
 
 	ctxt->dst.val = fcw;
 
@@ -1186,7 +1213,9 @@
 	if (ctxt->ops->get_cr(ctxt, 0) & (X86_CR0_TS | X86_CR0_EM))
 		return emulate_nm(ctxt);
 
+	emulator_get_fpu();
 	asm volatile("fnstsw %0": "+m"(fsw));
+	emulator_put_fpu();
 
 	ctxt->dst.val = fsw;
 
@@ -2861,6 +2890,8 @@
 	ops->get_msr(ctxt, MSR_IA32_SYSENTER_ESP, &msr_data);
 	*reg_write(ctxt, VCPU_REGS_RSP) = (efer & EFER_LMA) ? msr_data :
 							      (u32)msr_data;
+	if (efer & EFER_LMA)
+		ctxt->mode = X86EMUL_MODE_PROT64;
 
 	return X86EMUL_CONTINUE;
 }
@@ -3588,7 +3619,7 @@
 	u64 tsc_aux = 0;
 
 	if (ctxt->ops->get_msr(ctxt, MSR_TSC_AUX, &tsc_aux))
-		return emulate_gp(ctxt, 0);
+		return emulate_ud(ctxt);
 	ctxt->dst.val = tsc_aux;
 	return X86EMUL_CONTINUE;
 }
@@ -4021,6 +4052,12 @@
 	return X86EMUL_CONTINUE;
 }
 
+static int em_clflushopt(struct x86_emulate_ctxt *ctxt)
+{
+	/* emulating clflushopt regardless of cpuid */
+	return X86EMUL_CONTINUE;
+}
+
 static int em_movsxd(struct x86_emulate_ctxt *ctxt)
 {
 	ctxt->dst.val = (s32) ctxt->src.val;
@@ -4094,8 +4131,12 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
+	emulator_get_fpu();
+
 	rc = asm_safe("fxsave %[fx]", , [fx] "+m"(fx_state));
 
+	emulator_put_fpu();
+
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
@@ -4138,6 +4179,8 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
+	emulator_get_fpu();
+
 	if (size < __fxstate_size(16)) {
 		rc = fxregs_fixup(&fx_state, size);
 		if (rc != X86EMUL_CONTINUE)
@@ -4153,6 +4196,8 @@
 		rc = asm_safe("fxrstor %[fx]", : [fx] "m"(fx_state));
 
 out:
+	emulator_put_fpu();
+
 	return rc;
 }
 
@@ -4555,7 +4600,7 @@
 };
 
 static const struct gprefix pfx_0f_ae_7 = {
-	I(SrcMem | ByteOp, em_clflush), N, N, N,
+	I(SrcMem | ByteOp, em_clflush), I(SrcMem | ByteOp, em_clflushopt), N, N,
 };
 
 static const struct group_dual group15 = { {
@@ -5160,6 +5205,7 @@
 	ctxt->fetch.ptr = ctxt->fetch.data;
 	ctxt->fetch.end = ctxt->fetch.data + insn_len;
 	ctxt->opcode_len = 1;
+	ctxt->intercept = x86_intercept_none;
 	if (insn_len > 0)
 		memcpy(ctxt->fetch.data, insn, insn_len);
 	else {
@@ -5212,16 +5258,28 @@
 				ctxt->ad_bytes = def_ad_bytes ^ 6;
 			break;
 		case 0x26:	/* ES override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_ES;
+			break;
 		case 0x2e:	/* CS override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_CS;
+			break;
 		case 0x36:	/* SS override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_SS;
+			break;
 		case 0x3e:	/* DS override */
 			has_seg_override = true;
-			ctxt->seg_override = (ctxt->b >> 3) & 3;
+			ctxt->seg_override = VCPU_SREG_DS;
 			break;
 		case 0x64:	/* FS override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_FS;
+			break;
 		case 0x65:	/* GS override */
 			has_seg_override = true;
-			ctxt->seg_override = ctxt->b & 7;
+			ctxt->seg_override = VCPU_SREG_GS;
 			break;
 		case 0x40 ... 0x4f: /* REX */
 			if (mode != X86EMUL_MODE_PROT64)
@@ -5305,10 +5363,15 @@
 			}
 			break;
 		case Escape:
-			if (ctxt->modrm > 0xbf)
-				opcode = opcode.u.esc->high[ctxt->modrm - 0xc0];
-			else
+			if (ctxt->modrm > 0xbf) {
+				size_t size = ARRAY_SIZE(opcode.u.esc->high);
+				u32 index = array_index_nospec(
+					ctxt->modrm - 0xc0, size);
+
+				opcode = opcode.u.esc->high[index];
+			} else {
 				opcode = opcode.u.esc->op[(ctxt->modrm >> 3) & 7];
+			}
 			break;
 		case InstrDual:
 			if ((ctxt->modrm >> 6) == 3)
@@ -5450,7 +5513,9 @@
 {
 	int rc;
 
+	emulator_get_fpu();
 	rc = asm_safe("fwait");
+	emulator_put_fpu();
 
 	if (unlikely(rc != X86EMUL_CONTINUE))
 		return emulate_exception(ctxt, MF_VECTOR, 0, false);
@@ -5779,6 +5844,8 @@
 	}
 
 	ctxt->eip = ctxt->_eip;
+	if (ctxt->mode != X86EMUL_MODE_PROT64)
+		ctxt->eip = (u32)ctxt->_eip;
 
 done:
 	if (rc == X86EMUL_PROPAGATE_FAULT) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/hyperv.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/hyperv.c
@@ -809,11 +809,12 @@
 				     u32 index, u64 *pdata)
 {
 	struct kvm_hv *hv = &vcpu->kvm->arch.hyperv;
+	size_t size = ARRAY_SIZE(hv->hv_crash_param);
 
-	if (WARN_ON_ONCE(index >= ARRAY_SIZE(hv->hv_crash_param)))
+	if (WARN_ON_ONCE(index >= size))
 		return -EINVAL;
 
-	*pdata = hv->hv_crash_param[index];
+	*pdata = hv->hv_crash_param[array_index_nospec(index, size)];
 	return 0;
 }
 
@@ -852,11 +853,12 @@
 				     u32 index, u64 data)
 {
 	struct kvm_hv *hv = &vcpu->kvm->arch.hyperv;
+	size_t size = ARRAY_SIZE(hv->hv_crash_param);
 
-	if (WARN_ON_ONCE(index >= ARRAY_SIZE(hv->hv_crash_param)))
+	if (WARN_ON_ONCE(index >= size))
 		return -EINVAL;
 
-	hv->hv_crash_param[index] = data;
+	hv->hv_crash_param[array_index_nospec(index, size)] = data;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/i8259.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/i8259.c
@@ -460,10 +460,14 @@
 	switch (addr) {
 	case 0x20:
 	case 0x21:
+		pic_lock(s);
+		pic_ioport_write(&s->pics[0], addr, data);
+		pic_unlock(s);
+		break;
 	case 0xa0:
 	case 0xa1:
 		pic_lock(s);
-		pic_ioport_write(&s->pics[addr >> 7], addr, data);
+		pic_ioport_write(&s->pics[1], addr, data);
 		pic_unlock(s);
 		break;
 	case 0x4d0:
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/ioapic.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/ioapic.c
@@ -36,6 +36,7 @@
 #include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/export.h>
+#include <linux/nospec.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/current.h>
@@ -68,13 +69,14 @@
 	default:
 		{
 			u32 redir_index = (ioapic->ioregsel - 0x10) >> 1;
-			u64 redir_content;
+			u64 redir_content = ~0ULL;
 
-			if (redir_index < IOAPIC_NUM_PINS)
-				redir_content =
-					ioapic->redirtbl[redir_index].bits;
-			else
-				redir_content = ~0ULL;
+			if (redir_index < IOAPIC_NUM_PINS) {
+				u32 index = array_index_nospec(
+					redir_index, IOAPIC_NUM_PINS);
+
+				redir_content = ioapic->redirtbl[index].bits;
+			}
 
 			result = (ioapic->ioregsel & 0x1) ?
 			    (redir_content >> 32) & 0xffffffff :
@@ -291,6 +293,7 @@
 
 		if (index >= IOAPIC_NUM_PINS)
 			return;
+		index = array_index_nospec(index, IOAPIC_NUM_PINS);
 		e = &ioapic->redirtbl[index];
 		mask_before = e->fields.mask;
 		/* Preserve read-only fields */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/irq.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/irq.c
@@ -40,29 +40,10 @@
  * check if there is pending interrupt from
  * non-APIC source without intack.
  */
-static int kvm_cpu_has_extint(struct kvm_vcpu *v)
-{
-	u8 accept = kvm_apic_accept_pic_intr(v);
-
-	if (accept) {
-		if (irqchip_split(v->kvm))
-			return pending_userspace_extint(v);
-		else
-			return v->kvm->arch.vpic->output;
-	} else
-		return 0;
-}
-
-/*
- * check if there is injectable interrupt:
- * when virtual interrupt delivery enabled,
- * interrupt from apic will handled by hardware,
- * we don't need to check it here.
- */
-int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v)
+int kvm_cpu_has_extint(struct kvm_vcpu *v)
 {
 	/*
-	 * FIXME: interrupt.injected represents an interrupt that it's
+	 * FIXME: interrupt.injected represents an interrupt whose
 	 * side-effects have already been applied (e.g. bit from IRR
 	 * already moved to ISR). Therefore, it is incorrect to rely
 	 * on interrupt.injected to know if there is a pending
@@ -75,6 +56,23 @@
 	if (!lapic_in_kernel(v))
 		return v->arch.interrupt.injected;
 
+	if (!kvm_apic_accept_pic_intr(v))
+		return 0;
+
+	if (irqchip_split(v->kvm))
+		return pending_userspace_extint(v);
+	else
+		return v->kvm->arch.vpic->output;
+}
+
+/*
+ * check if there is injectable interrupt:
+ * when virtual interrupt delivery enabled,
+ * interrupt from apic will handled by hardware,
+ * we don't need to check it here.
+ */
+int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v)
+{
 	if (kvm_cpu_has_extint(v))
 		return 1;
 
@@ -90,20 +88,6 @@
  */
 int kvm_cpu_has_interrupt(struct kvm_vcpu *v)
 {
-	/*
-	 * FIXME: interrupt.injected represents an interrupt that it's
-	 * side-effects have already been applied (e.g. bit from IRR
-	 * already moved to ISR). Therefore, it is incorrect to rely
-	 * on interrupt.injected to know if there is a pending
-	 * interrupt in the user-mode LAPIC.
-	 * This leads to nVMX/nSVM not be able to distinguish
-	 * if it should exit from L2 to L1 on EXTERNAL_INTERRUPT on
-	 * pending interrupt or should re-inject an injected
-	 * interrupt.
-	 */
-	if (!lapic_in_kernel(v))
-		return v->arch.interrupt.injected;
-
 	if (kvm_cpu_has_extint(v))
 		return 1;
 
@@ -117,16 +101,21 @@
  */
 static int kvm_cpu_get_extint(struct kvm_vcpu *v)
 {
-	if (kvm_cpu_has_extint(v)) {
-		if (irqchip_split(v->kvm)) {
-			int vector = v->arch.pending_external_vector;
-
-			v->arch.pending_external_vector = -1;
-			return vector;
-		} else
-			return kvm_pic_read_irq(v->kvm); /* PIC */
-	} else
+	if (!kvm_cpu_has_extint(v)) {
+		WARN_ON(!lapic_in_kernel(v));
 		return -1;
+	}
+
+	if (!lapic_in_kernel(v))
+		return v->arch.interrupt.nr;
+
+	if (irqchip_split(v->kvm)) {
+		int vector = v->arch.pending_external_vector;
+
+		v->arch.pending_external_vector = -1;
+		return vector;
+	} else
+		return kvm_pic_read_irq(v->kvm); /* PIC */
 }
 
 /*
@@ -134,13 +123,7 @@
  */
 int kvm_cpu_get_interrupt(struct kvm_vcpu *v)
 {
-	int vector;
-
-	if (!lapic_in_kernel(v))
-		return v->arch.interrupt.nr;
-
-	vector = kvm_cpu_get_extint(v);
-
+	int vector = kvm_cpu_get_extint(v);
 	if (vector != -1)
 		return vector;			/* PIC */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/irq_comm.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/irq_comm.c
@@ -416,7 +416,7 @@
 
 			kvm_set_msi_irq(vcpu->kvm, entry, &irq);
 
-			if (irq.level && kvm_apic_match_dest(vcpu, NULL, 0,
+			if (irq.trig_mode && kvm_apic_match_dest(vcpu, NULL, 0,
 						irq.dest_id, irq.dest_mode))
 				__set_bit(irq.vector, ioapic_handled_vectors);
 		}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/kvm_cache_regs.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/kvm_cache_regs.h
@@ -7,7 +7,7 @@
 #define KVM_POSSIBLE_CR0_GUEST_BITS X86_CR0_TS
 #define KVM_POSSIBLE_CR4_GUEST_BITS				  \
 	(X86_CR4_PVI | X86_CR4_DE | X86_CR4_PCE | X86_CR4_OSFXSR  \
-	 | X86_CR4_OSXMMEXCPT | X86_CR4_LA57 | X86_CR4_PGE)
+	 | X86_CR4_OSXMMEXCPT | X86_CR4_LA57 | X86_CR4_PGE | X86_CR4_TSD)
 
 #define BUILD_KVM_GPR_ACCESSORS(lname, uname)				      \
 static __always_inline unsigned long kvm_##lname##_read(struct kvm_vcpu *vcpu)\
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/lapic.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/lapic.c
@@ -637,9 +637,11 @@
 static bool pv_eoi_get_pending(struct kvm_vcpu *vcpu)
 {
 	u8 val;
-	if (pv_eoi_get_user(vcpu, &val) < 0)
+	if (pv_eoi_get_user(vcpu, &val) < 0) {
 		printk(KERN_WARNING "Can't read EOI MSR value: 0x%llx\n",
 			   (unsigned long long)vcpu->arch.pv_eoi.msr_val);
+		return false;
+	}
 	return val & 0x1;
 }
 
@@ -1056,11 +1058,8 @@
 						       apic->regs + APIC_TMR);
 		}
 
-		if (vcpu->arch.apicv_active)
-			kvm_x86_ops->deliver_posted_interrupt(vcpu, vector);
-		else {
+		if (kvm_x86_ops->deliver_posted_interrupt(vcpu, vector)) {
 			kvm_lapic_set_irr(vector, apic);
-
 			kvm_make_request(KVM_REQ_EVENT, vcpu);
 			kvm_vcpu_kick(vcpu);
 		}
@@ -1685,7 +1684,7 @@
 
 	hrtimer_start(&apic->lapic_timer.timer,
 		apic->lapic_timer.target_expiration,
-		HRTIMER_MODE_ABS);
+		HRTIMER_MODE_ABS_HARD);
 }
 
 bool kvm_lapic_hv_timer_in_use(struct kvm_vcpu *vcpu)
@@ -1926,15 +1925,20 @@
 	case APIC_LVTTHMR:
 	case APIC_LVTPC:
 	case APIC_LVT1:
-	case APIC_LVTERR:
+	case APIC_LVTERR: {
 		/* TODO: Check vector */
+		size_t size;
+		u32 index;
+
 		if (!kvm_apic_sw_enabled(apic))
 			val |= APIC_LVT_MASKED;
-
-		val &= apic_lvt_mask[(reg - APIC_LVTT) >> 4];
+		size = ARRAY_SIZE(apic_lvt_mask);
+		index = array_index_nospec(
+				(reg - APIC_LVTT) >> 4, size);
+		val &= apic_lvt_mask[index];
 		kvm_lapic_set_reg(apic, reg, val);
-
 		break;
+	}
 
 	case APIC_LVTT:
 		if (!kvm_apic_sw_enabled(apic))
@@ -2081,7 +2085,7 @@
 {
 	struct kvm_lapic *apic = vcpu->arch.apic;
 
-	if (!lapic_in_kernel(vcpu) || apic_lvtt_oneshot(apic) ||
+	if (!kvm_apic_present(vcpu) || apic_lvtt_oneshot(apic) ||
 			apic_lvtt_period(apic))
 		return;
 
@@ -2326,7 +2330,7 @@
 	struct kvm_lapic *apic = vcpu->arch.apic;
 	u32 ppr;
 
-	if (!kvm_apic_hw_enabled(apic))
+	if (!kvm_apic_present(vcpu))
 		return -1;
 
 	__apic_update_ppr(apic, &ppr);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/mmu.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/mmu.c
@@ -343,6 +343,8 @@
 {
 	BUG_ON((u64)(unsigned)access_mask != access_mask);
 	BUG_ON((mmio_mask & mmio_value) != mmio_value);
+	WARN_ON(mmio_value & (shadow_nonpresent_or_rsvd_mask << shadow_nonpresent_or_rsvd_mask_len));
+	WARN_ON(mmio_value & shadow_nonpresent_or_rsvd_lower_gfn_mask);
 	shadow_mmio_value = mmio_value | SPTE_MMIO_MASK;
 	shadow_mmio_mask = mmio_mask | SPTE_SPECIAL_MASK;
 	shadow_mmio_access_mask = access_mask;
@@ -405,11 +407,11 @@
 }
 
 /*
- * Due to limited space in PTEs, the MMIO generation is a 19 bit subset of
+ * Due to limited space in PTEs, the MMIO generation is a 18 bit subset of
  * the memslots generation and is derived as follows:
  *
  * Bits 0-8 of the MMIO generation are propagated to spte bits 3-11
- * Bits 9-18 of the MMIO generation are propagated to spte bits 52-61
+ * Bits 9-17 of the MMIO generation are propagated to spte bits 54-62
  *
  * The KVM_MEMSLOT_GEN_UPDATE_IN_PROGRESS flag is intentionally not included in
  * the MMIO generation number, as doing so would require stealing a bit from
@@ -418,25 +420,38 @@
  * requires a full MMU zap).  The flag is instead explicitly queried when
  * checking for MMIO spte cache hits.
  */
-#define MMIO_SPTE_GEN_MASK		GENMASK_ULL(18, 0)
 
 #define MMIO_SPTE_GEN_LOW_START		3
 #define MMIO_SPTE_GEN_LOW_END		11
+
+#define MMIO_SPTE_GEN_HIGH_START	PT64_SECOND_AVAIL_BITS_SHIFT
+#define MMIO_SPTE_GEN_HIGH_END		62
+
 #define MMIO_SPTE_GEN_LOW_MASK		GENMASK_ULL(MMIO_SPTE_GEN_LOW_END, \
 						    MMIO_SPTE_GEN_LOW_START)
-
-#define MMIO_SPTE_GEN_HIGH_START	52
-#define MMIO_SPTE_GEN_HIGH_END		61
 #define MMIO_SPTE_GEN_HIGH_MASK		GENMASK_ULL(MMIO_SPTE_GEN_HIGH_END, \
 						    MMIO_SPTE_GEN_HIGH_START)
+
+#define MMIO_SPTE_GEN_LOW_BITS		(MMIO_SPTE_GEN_LOW_END - MMIO_SPTE_GEN_LOW_START + 1)
+#define MMIO_SPTE_GEN_HIGH_BITS		(MMIO_SPTE_GEN_HIGH_END - MMIO_SPTE_GEN_HIGH_START + 1)
+
+/* remember to adjust the comment above as well if you change these */
+static_assert(MMIO_SPTE_GEN_LOW_BITS == 9 && MMIO_SPTE_GEN_HIGH_BITS == 9);
+
+#define MMIO_SPTE_GEN_LOW_SHIFT		(MMIO_SPTE_GEN_LOW_START - 0)
+#define MMIO_SPTE_GEN_HIGH_SHIFT	(MMIO_SPTE_GEN_HIGH_START - MMIO_SPTE_GEN_LOW_BITS)
+
+#define MMIO_SPTE_GEN_MASK		GENMASK_ULL(MMIO_SPTE_GEN_LOW_BITS + MMIO_SPTE_GEN_HIGH_BITS - 1, 0)
+
 static u64 generation_mmio_spte_mask(u64 gen)
 {
 	u64 mask;
 
 	WARN_ON(gen & ~MMIO_SPTE_GEN_MASK);
+	BUILD_BUG_ON((MMIO_SPTE_GEN_HIGH_MASK | MMIO_SPTE_GEN_LOW_MASK) & SPTE_SPECIAL_MASK);
 
-	mask = (gen << MMIO_SPTE_GEN_LOW_START) & MMIO_SPTE_GEN_LOW_MASK;
-	mask |= (gen << MMIO_SPTE_GEN_HIGH_START) & MMIO_SPTE_GEN_HIGH_MASK;
+	mask = (gen << MMIO_SPTE_GEN_LOW_SHIFT) & MMIO_SPTE_GEN_LOW_MASK;
+	mask |= (gen << MMIO_SPTE_GEN_HIGH_SHIFT) & MMIO_SPTE_GEN_HIGH_MASK;
 	return mask;
 }
 
@@ -444,10 +459,8 @@
 {
 	u64 gen;
 
-	spte &= ~shadow_mmio_mask;
-
-	gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_START;
-	gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_START;
+	gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_SHIFT;
+	gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_SHIFT;
 	return gen;
 }
 
@@ -538,16 +551,20 @@
 static u8 kvm_get_shadow_phys_bits(void)
 {
 	/*
-	 * boot_cpu_data.x86_phys_bits is reduced when MKTME is detected
-	 * in CPU detection code, but MKTME treats those reduced bits as
-	 * 'keyID' thus they are not reserved bits. Therefore for MKTME
-	 * we should still return physical address bits reported by CPUID.
-	 */
-	if (!boot_cpu_has(X86_FEATURE_TME) ||
-	    WARN_ON_ONCE(boot_cpu_data.extended_cpuid_level < 0x80000008))
-		return boot_cpu_data.x86_phys_bits;
+	 * boot_cpu_data.x86_phys_bits is reduced when MKTME or SME are detected
+	 * in CPU detection code, but the processor treats those reduced bits as
+	 * 'keyID' thus they are not reserved bits. Therefore KVM needs to look at
+	 * the physical address bits reported by CPUID.
+	 */
+	if (likely(boot_cpu_data.extended_cpuid_level >= 0x80000008))
+		return cpuid_eax(0x80000008) & 0xff;
 
-	return cpuid_eax(0x80000008) & 0xff;
+	/*
+	 * Quite weird to have VMX or SVM but not MAXPHYADDR; probably a VM with
+	 * custom CPUID.  Proceed with whatever the kernel found since these features
+	 * aren't virtualizable (SME/SEV also require CPUIDs higher than 0x80000008).
+	 */
+	return boot_cpu_data.x86_phys_bits;
 }
 
 static void kvm_mmu_reset_all_pte_masks(void)
@@ -576,16 +593,15 @@
 	 * the most significant bits of legal physical address space.
 	 */
 	shadow_nonpresent_or_rsvd_mask = 0;
-	low_phys_bits = boot_cpu_data.x86_cache_bits;
-	if (boot_cpu_data.x86_cache_bits <
-	    52 - shadow_nonpresent_or_rsvd_mask_len) {
+	low_phys_bits = boot_cpu_data.x86_phys_bits;
+	if (boot_cpu_has_bug(X86_BUG_L1TF) &&
+	    !WARN_ON_ONCE(boot_cpu_data.x86_cache_bits >=
+			  52 - shadow_nonpresent_or_rsvd_mask_len)) {
+		low_phys_bits = boot_cpu_data.x86_cache_bits
+			- shadow_nonpresent_or_rsvd_mask_len;
 		shadow_nonpresent_or_rsvd_mask =
-			rsvd_bits(boot_cpu_data.x86_cache_bits -
-				  shadow_nonpresent_or_rsvd_mask_len,
-				  boot_cpu_data.x86_cache_bits - 1);
-		low_phys_bits -= shadow_nonpresent_or_rsvd_mask_len;
-	} else
-		WARN_ON_ONCE(boot_cpu_has_bug(X86_BUG_L1TF));
+			rsvd_bits(low_phys_bits, boot_cpu_data.x86_cache_bits - 1);
+	}
 
 	shadow_nonpresent_or_rsvd_lower_gfn_mask =
 		GENMASK_ULL(low_phys_bits - 1, PAGE_SHIFT);
@@ -1282,12 +1298,12 @@
 	return __mmu_gfn_lpage_is_disallowed(gfn, level, slot);
 }
 
-static int host_mapping_level(struct kvm *kvm, gfn_t gfn)
+static int host_mapping_level(struct kvm_vcpu *vcpu, gfn_t gfn)
 {
 	unsigned long page_size;
 	int i, ret = 0;
 
-	page_size = kvm_host_page_size(kvm, gfn);
+	page_size = kvm_host_page_size(vcpu, gfn);
 
 	for (i = PT_PAGE_TABLE_LEVEL; i <= PT_MAX_HUGEPAGE_LEVEL; ++i) {
 		if (page_size >= KVM_HPAGE_SIZE(i))
@@ -1337,7 +1353,7 @@
 	if (unlikely(*force_pt_level))
 		return PT_PAGE_TABLE_LEVEL;
 
-	host_level = host_mapping_level(vcpu->kvm, large_gfn);
+	host_level = host_mapping_level(vcpu, large_gfn);
 
 	if (host_level == PT_PAGE_TABLE_LEVEL)
 		return host_level;
@@ -1814,10 +1830,10 @@
  * Emulate arch specific page modification logging for the
  * nested hypervisor
  */
-int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu)
+int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu, gpa_t l2_gpa)
 {
 	if (kvm_x86_ops->write_log_dirty)
-		return kvm_x86_ops->write_log_dirty(vcpu);
+		return kvm_x86_ops->write_log_dirty(vcpu, l2_gpa);
 
 	return 0;
 }
@@ -2040,7 +2056,8 @@
 	return kvm_handle_hva_range(kvm, hva, hva + 1, data, handler);
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	return kvm_handle_hva_range(kvm, start, end, 0, kvm_unmap_rmapp);
 }
@@ -3528,7 +3545,7 @@
  * - true: let the vcpu to access on the same address again.
  * - false: let the real page fault path to fix it.
  */
-static bool fast_page_fault(struct kvm_vcpu *vcpu, gva_t gva, int level,
+static bool fast_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, int level,
 			    u32 error_code)
 {
 	struct kvm_shadow_walk_iterator iterator;
@@ -3548,7 +3565,7 @@
 	do {
 		u64 new_spte;
 
-		for_each_shadow_entry_lockless(vcpu, gva, iterator, spte)
+		for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte)
 			if (!is_shadow_present_pte(spte) ||
 			    iterator.level < level)
 				break;
@@ -3626,7 +3643,7 @@
 
 	} while (true);
 
-	trace_fast_page_fault(vcpu, gva, error_code, iterator.sptep,
+	trace_fast_page_fault(vcpu, cr2_or_gpa, error_code, iterator.sptep,
 			      spte, fault_handled);
 	walk_shadow_page_lockless_end(vcpu);
 
@@ -3634,10 +3651,11 @@
 }
 
 static bool try_async_pf(struct kvm_vcpu *vcpu, bool prefault, gfn_t gfn,
-			 gva_t gva, kvm_pfn_t *pfn, bool write, bool *writable);
+			 gpa_t cr2_or_gpa, kvm_pfn_t *pfn, bool write,
+			 bool *writable);
 static int make_mmu_pages_available(struct kvm_vcpu *vcpu);
 
-static int nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, u32 error_code,
+static int nonpaging_map(struct kvm_vcpu *vcpu, gpa_t gpa, u32 error_code,
 			 gfn_t gfn, bool prefault)
 {
 	int r;
@@ -3663,16 +3681,16 @@
 		gfn &= ~(KVM_PAGES_PER_HPAGE(level) - 1);
 	}
 
-	if (fast_page_fault(vcpu, v, level, error_code))
+	if (fast_page_fault(vcpu, gpa, level, error_code))
 		return RET_PF_RETRY;
 
 	mmu_seq = vcpu->kvm->mmu_notifier_seq;
 	smp_rmb();
 
-	if (try_async_pf(vcpu, prefault, gfn, v, &pfn, write, &map_writable))
+	if (try_async_pf(vcpu, prefault, gfn, gpa, &pfn, write, &map_writable))
 		return RET_PF_RETRY;
 
-	if (handle_abnormal_pfn(vcpu, v, gfn, pfn, ACC_ALL, &r))
+	if (handle_abnormal_pfn(vcpu, gpa, gfn, pfn, ACC_ALL, &r))
 		return r;
 
 	r = RET_PF_RETRY;
@@ -3683,7 +3701,7 @@
 		goto out_unlock;
 	if (likely(!force_pt_level))
 		transparent_hugepage_adjust(vcpu, gfn, &pfn, &level);
-	r = __direct_map(vcpu, v, write, map_writable, level, pfn,
+	r = __direct_map(vcpu, gpa, write, map_writable, level, pfn,
 			 prefault, false);
 out_unlock:
 	spin_unlock(&vcpu->kvm->mmu_lock);
@@ -3981,7 +3999,7 @@
 }
 EXPORT_SYMBOL_GPL(kvm_mmu_sync_roots);
 
-static gpa_t nonpaging_gva_to_gpa(struct kvm_vcpu *vcpu, gva_t vaddr,
+static gpa_t nonpaging_gva_to_gpa(struct kvm_vcpu *vcpu, gpa_t vaddr,
 				  u32 access, struct x86_exception *exception)
 {
 	if (exception)
@@ -3989,7 +4007,7 @@
 	return vaddr;
 }
 
-static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gva_t vaddr,
+static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gpa_t vaddr,
 					 u32 access,
 					 struct x86_exception *exception)
 {
@@ -4149,13 +4167,14 @@
 	walk_shadow_page_lockless_end(vcpu);
 }
 
-static int nonpaging_page_fault(struct kvm_vcpu *vcpu, gva_t gva,
+static int nonpaging_page_fault(struct kvm_vcpu *vcpu, gpa_t gpa,
 				u32 error_code, bool prefault)
 {
-	gfn_t gfn = gva >> PAGE_SHIFT;
+	gfn_t gfn = gpa >> PAGE_SHIFT;
 	int r;
 
-	pgprintk("%s: gva %lx error %x\n", __func__, gva, error_code);
+	/* Note, paging is disabled, ergo gva == gpa. */
+	pgprintk("%s: gva %lx error %x\n", __func__, gpa, error_code);
 
 	if (page_fault_handle_page_track(vcpu, error_code, gfn))
 		return RET_PF_EMULATE;
@@ -4167,11 +4186,12 @@
 	MMU_WARN_ON(!VALID_PAGE(vcpu->arch.mmu->root_hpa));
 
 
-	return nonpaging_map(vcpu, gva & PAGE_MASK,
+	return nonpaging_map(vcpu, gpa & PAGE_MASK,
 			     error_code, gfn, prefault);
 }
 
-static int kvm_arch_setup_async_pf(struct kvm_vcpu *vcpu, gva_t gva, gfn_t gfn)
+static int kvm_arch_setup_async_pf(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
+				   gfn_t gfn)
 {
 	struct kvm_arch_async_pf arch;
 
@@ -4180,11 +4200,13 @@
 	arch.direct_map = vcpu->arch.mmu->direct_map;
 	arch.cr3 = vcpu->arch.mmu->get_cr3(vcpu);
 
-	return kvm_setup_async_pf(vcpu, gva, kvm_vcpu_gfn_to_hva(vcpu, gfn), &arch);
+	return kvm_setup_async_pf(vcpu, cr2_or_gpa,
+				  kvm_vcpu_gfn_to_hva(vcpu, gfn), &arch);
 }
 
 static bool try_async_pf(struct kvm_vcpu *vcpu, bool prefault, gfn_t gfn,
-			 gva_t gva, kvm_pfn_t *pfn, bool write, bool *writable)
+			 gpa_t cr2_or_gpa, kvm_pfn_t *pfn, bool write,
+			 bool *writable)
 {
 	struct kvm_memory_slot *slot;
 	bool async;
@@ -4204,12 +4226,12 @@
 		return false; /* *pfn has correct page already */
 
 	if (!prefault && kvm_can_do_async_pf(vcpu)) {
-		trace_kvm_try_async_get_page(gva, gfn);
+		trace_kvm_try_async_get_page(cr2_or_gpa, gfn);
 		if (kvm_find_async_pf_gfn(vcpu, gfn)) {
-			trace_kvm_async_pf_doublefault(gva, gfn);
+			trace_kvm_async_pf_doublefault(cr2_or_gpa, gfn);
 			kvm_make_request(KVM_REQ_APF_HALT, vcpu);
 			return true;
-		} else if (kvm_arch_setup_async_pf(vcpu, gva, gfn))
+		} else if (kvm_arch_setup_async_pf(vcpu, cr2_or_gpa, gfn))
 			return true;
 	}
 
@@ -4222,6 +4244,12 @@
 {
 	int r = 1;
 
+#ifndef CONFIG_X86_64
+	/* A 64-bit CR2 should be impossible on 32-bit KVM. */
+	if (WARN_ON_ONCE(fault_address >> 32))
+		return -EFAULT;
+#endif
+
 	vcpu->arch.l1tf_flush_l1d = true;
 	switch (vcpu->arch.apf.host_apf_reason) {
 	default:
@@ -4259,7 +4287,7 @@
 	return kvm_mtrr_check_gfn_range_consistency(vcpu, gfn, page_num);
 }
 
-static int tdp_page_fault(struct kvm_vcpu *vcpu, gva_t gpa, u32 error_code,
+static int tdp_page_fault(struct kvm_vcpu *vcpu, gpa_t gpa, u32 error_code,
 			  bool prefault)
 {
 	kvm_pfn_t pfn;
@@ -4564,7 +4592,7 @@
 			nonleaf_bit8_rsvd | rsvd_bits(7, 7) |
 			rsvd_bits(maxphyaddr, 51);
 		rsvd_check->rsvd_bits_mask[0][2] = exb_bit_rsvd |
-			nonleaf_bit8_rsvd | gbpages_bit_rsvd |
+			gbpages_bit_rsvd |
 			rsvd_bits(maxphyaddr, 51);
 		rsvd_check->rsvd_bits_mask[0][1] = exb_bit_rsvd |
 			rsvd_bits(maxphyaddr, 51);
@@ -5516,7 +5544,7 @@
 	return 0;
 }
 
-int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t cr2, u64 error_code,
+int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u64 error_code,
 		       void *insn, int insn_len)
 {
 	int r, emulation_type = 0;
@@ -5525,18 +5553,18 @@
 	/* With shadow page tables, fault_address contains a GVA or nGPA.  */
 	if (vcpu->arch.mmu->direct_map) {
 		vcpu->arch.gpa_available = true;
-		vcpu->arch.gpa_val = cr2;
+		vcpu->arch.gpa_val = cr2_or_gpa;
 	}
 
 	r = RET_PF_INVALID;
 	if (unlikely(error_code & PFERR_RSVD_MASK)) {
-		r = handle_mmio_page_fault(vcpu, cr2, direct);
+		r = handle_mmio_page_fault(vcpu, cr2_or_gpa, direct);
 		if (r == RET_PF_EMULATE)
 			goto emulate;
 	}
 
 	if (r == RET_PF_INVALID) {
-		r = vcpu->arch.mmu->page_fault(vcpu, cr2,
+		r = vcpu->arch.mmu->page_fault(vcpu, cr2_or_gpa,
 					       lower_32_bits(error_code),
 					       false);
 		WARN_ON(r == RET_PF_INVALID);
@@ -5556,7 +5584,7 @@
 	 */
 	if (vcpu->arch.mmu->direct_map &&
 	    (error_code & PFERR_NESTED_GUEST_PAGE) == PFERR_NESTED_GUEST_PAGE) {
-		kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(cr2));
+		kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(cr2_or_gpa));
 		return 1;
 	}
 
@@ -5571,7 +5599,7 @@
 	 * explicitly shadowing L1's page tables, i.e. unprotecting something
 	 * for L1 isn't going to magically fix whatever issue cause L2 to fail.
 	 */
-	if (!mmio_info_in_cache(vcpu, cr2, direct) && !is_guest_mode(vcpu))
+	if (!mmio_info_in_cache(vcpu, cr2_or_gpa, direct) && !is_guest_mode(vcpu))
 		emulation_type = EMULTYPE_ALLOW_RETRY;
 emulate:
 	/*
@@ -5586,7 +5614,7 @@
 			return 1;
 	}
 
-	return x86_emulate_instruction(vcpu, cr2, emulation_type, insn,
+	return x86_emulate_instruction(vcpu, cr2_or_gpa, emulation_type, insn,
 				       insn_len);
 }
 EXPORT_SYMBOL_GPL(kvm_mmu_page_fault);
@@ -6232,25 +6260,16 @@
 	u64 mask;
 
 	/*
-	 * Set the reserved bits and the present bit of an paging-structure
-	 * entry to generate page fault with PFER.RSV = 1.
-	 */
-
-	/*
-	 * Mask the uppermost physical address bit, which would be reserved as
-	 * long as the supported physical address width is less than 52.
+	 * Set a reserved PA bit in MMIO SPTEs to generate page faults with
+	 * PFEC.RSVD=1 on MMIO accesses.  64-bit PTEs (PAE, x86-64, and EPT
+	 * paging) support a maximum of 52 bits of PA, i.e. if the CPU supports
+	 * 52-bit physical addresses then there are no reserved PA bits in the
+	 * PTEs and so the reserved PA approach must be disabled.
 	 */
-	mask = 1ull << 51;
-
-	/* Set the present bit. */
-	mask |= 1ull;
-
-	/*
-	 * If reserved bit is not supported, clear the present bit to disable
-	 * mmio page fault.
-	 */
-	if (IS_ENABLED(CONFIG_X86_64) && shadow_phys_bits == 52)
-		mask &= ~1ull;
+	if (shadow_phys_bits < 52)
+		mask = BIT_ULL(51) | PT_PRESENT_MASK;
+	else
+		mask = 0;
 
 	kvm_mmu_set_mmio_spte_mask(mask, mask, ACC_WRITE_MASK | ACC_USER_MASK);
 }
@@ -6445,6 +6464,7 @@
 				cond_resched_lock(&kvm->mmu_lock);
 		}
 	}
+	kvm_mmu_commit_zap_page(kvm, &invalid_list);
 
 	spin_unlock(&kvm->mmu_lock);
 	srcu_read_unlock(&kvm->srcu, rcu_idx);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/mmu.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/mmu.h
@@ -48,7 +48,7 @@
 	if (e < s)
 		return 0;
 
-	return ((1ULL << (e - s + 1)) - 1) << s;
+	return ((2ULL << (e - s)) - 1) << s;
 }
 
 void kvm_mmu_set_mmio_spte_mask(u64 mmio_mask, u64 mmio_value, u64 access_mask);
@@ -209,7 +209,7 @@
 void kvm_mmu_gfn_allow_lpage(struct kvm_memory_slot *slot, gfn_t gfn);
 bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm,
 				    struct kvm_memory_slot *slot, u64 gfn);
-int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu);
+int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu, gpa_t l2_gpa);
 
 int kvm_mmu_post_init_vm(struct kvm *kvm);
 void kvm_mmu_pre_destroy_vm(struct kvm *kvm);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/mmutrace.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/mmutrace.h
@@ -249,13 +249,13 @@
 
 TRACE_EVENT(
 	fast_page_fault,
-	TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code,
+	TP_PROTO(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u32 error_code,
 		 u64 *sptep, u64 old_spte, bool retry),
-	TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry),
+	TP_ARGS(vcpu, cr2_or_gpa, error_code, sptep, old_spte, retry),
 
 	TP_STRUCT__entry(
 		__field(int, vcpu_id)
-		__field(gva_t, gva)
+		__field(gpa_t, cr2_or_gpa)
 		__field(u32, error_code)
 		__field(u64 *, sptep)
 		__field(u64, old_spte)
@@ -265,7 +265,7 @@
 
 	TP_fast_assign(
 		__entry->vcpu_id = vcpu->vcpu_id;
-		__entry->gva = gva;
+		__entry->cr2_or_gpa = cr2_or_gpa;
 		__entry->error_code = error_code;
 		__entry->sptep = sptep;
 		__entry->old_spte = old_spte;
@@ -273,9 +273,9 @@
 		__entry->retry = retry;
 	),
 
-	TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx"
+	TP_printk("vcpu %d gva %llx error_code %s sptep %p old %#llx"
 		  " new %llx spurious %d fixed %d", __entry->vcpu_id,
-		  __entry->gva, __print_flags(__entry->error_code, "|",
+		  __entry->cr2_or_gpa, __print_flags(__entry->error_code, "|",
 		  kvm_mmu_trace_pferr_flags), __entry->sptep,
 		  __entry->old_spte, __entry->new_spte,
 		  __spte_satisfied(old_spte), __spte_satisfied(new_spte)
@@ -339,7 +339,7 @@
 		/* These depend on page entry type, so compute them now.  */
 		__field(bool, r)
 		__field(bool, x)
-		__field(u8, u)
+		__field(signed char, u)
 	),
 
 	TP_fast_assign(
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/mtrr.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/mtrr.c
@@ -192,11 +192,15 @@
 		break;
 	case MSR_MTRRfix16K_80000 ... MSR_MTRRfix16K_A0000:
 		*seg = 1;
-		*unit = msr - MSR_MTRRfix16K_80000;
+		*unit = array_index_nospec(
+			msr - MSR_MTRRfix16K_80000,
+			MSR_MTRRfix16K_A0000 - MSR_MTRRfix16K_80000 + 1);
 		break;
 	case MSR_MTRRfix4K_C0000 ... MSR_MTRRfix4K_F8000:
 		*seg = 2;
-		*unit = msr - MSR_MTRRfix4K_C0000;
+		*unit = array_index_nospec(
+			msr - MSR_MTRRfix4K_C0000,
+			MSR_MTRRfix4K_F8000 - MSR_MTRRfix4K_C0000 + 1);
 		break;
 	default:
 		return false;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/paging_tmpl.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/paging_tmpl.h
@@ -33,7 +33,7 @@
 	#define PT_GUEST_ACCESSED_SHIFT PT_ACCESSED_SHIFT
 	#define PT_HAVE_ACCESSED_DIRTY(mmu) true
 	#ifdef CONFIG_X86_64
-	#define PT_MAX_FULL_LEVELS 4
+	#define PT_MAX_FULL_LEVELS PT64_ROOT_MAX_LEVEL
 	#define CMPXCHG cmpxchg
 	#else
 	#define CMPXCHG cmpxchg64
@@ -220,7 +220,7 @@
 static int FNAME(update_accessed_dirty_bits)(struct kvm_vcpu *vcpu,
 					     struct kvm_mmu *mmu,
 					     struct guest_walker *walker,
-					     int write_fault)
+					     gpa_t addr, int write_fault)
 {
 	unsigned level, index;
 	pt_element_t pte, orig_pte;
@@ -245,7 +245,7 @@
 				!(pte & PT_GUEST_DIRTY_MASK)) {
 			trace_kvm_mmu_set_dirty_bit(table_gfn, index, sizeof(pte));
 #if PTTYPE == PTTYPE_EPT
-			if (kvm_arch_write_log_dirty(vcpu))
+			if (kvm_arch_write_log_dirty(vcpu, addr))
 				return -EINVAL;
 #endif
 			pte |= PT_GUEST_DIRTY_MASK;
@@ -291,11 +291,11 @@
 }
 
 /*
- * Fetch a guest pte for a guest virtual address
+ * Fetch a guest pte for a guest virtual address, or for an L2's GPA.
  */
 static int FNAME(walk_addr_generic)(struct guest_walker *walker,
 				    struct kvm_vcpu *vcpu, struct kvm_mmu *mmu,
-				    gva_t addr, u32 access)
+				    gpa_t addr, u32 access)
 {
 	int ret;
 	pt_element_t pte;
@@ -442,7 +442,8 @@
 			(PT_GUEST_DIRTY_SHIFT - PT_GUEST_ACCESSED_SHIFT);
 
 	if (unlikely(!accessed_dirty)) {
-		ret = FNAME(update_accessed_dirty_bits)(vcpu, mmu, walker, write_fault);
+		ret = FNAME(update_accessed_dirty_bits)(vcpu, mmu, walker,
+							addr, write_fault);
 		if (unlikely(ret < 0))
 			goto error;
 		else if (ret)
@@ -496,7 +497,7 @@
 }
 
 static int FNAME(walk_addr)(struct guest_walker *walker,
-			    struct kvm_vcpu *vcpu, gva_t addr, u32 access)
+			    struct kvm_vcpu *vcpu, gpa_t addr, u32 access)
 {
 	return FNAME(walk_addr_generic)(walker, vcpu, vcpu->arch.mmu, addr,
 					access);
@@ -611,7 +612,7 @@
  * If the guest tries to write a write-protected page, we need to
  * emulate this operation, return 1 to indicate this case.
  */
-static int FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
+static int FNAME(fetch)(struct kvm_vcpu *vcpu, gpa_t addr,
 			 struct guest_walker *gw,
 			 int write_fault, int hlevel,
 			 kvm_pfn_t pfn, bool map_writable, bool prefault,
@@ -765,7 +766,7 @@
  *  Returns: 1 if we need to emulate the instruction, 0 otherwise, or
  *           a negative value on error.
  */
-static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, u32 error_code,
+static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gpa_t addr, u32 error_code,
 			     bool prefault)
 {
 	int write_fault = error_code & PFERR_WRITE_MASK;
@@ -945,18 +946,19 @@
 	spin_unlock(&vcpu->kvm->mmu_lock);
 }
 
-static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr, u32 access,
+/* Note, @addr is a GPA when gva_to_gpa() translates an L2 GPA to an L1 GPA. */
+static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gpa_t addr, u32 access,
 			       struct x86_exception *exception)
 {
 	struct guest_walker walker;
 	gpa_t gpa = UNMAPPED_GVA;
 	int r;
 
-	r = FNAME(walk_addr)(&walker, vcpu, vaddr, access);
+	r = FNAME(walk_addr)(&walker, vcpu, addr, access);
 
 	if (r) {
 		gpa = gfn_to_gpa(walker.gfn);
-		gpa |= vaddr & ~PAGE_MASK;
+		gpa |= addr & ~PAGE_MASK;
 	} else if (exception)
 		*exception = walker.fault;
 
@@ -964,7 +966,8 @@
 }
 
 #if PTTYPE != PTTYPE_EPT
-static gpa_t FNAME(gva_to_gpa_nested)(struct kvm_vcpu *vcpu, gva_t vaddr,
+/* Note, gva_to_gpa_nested() is only used to translate L2 GVAs. */
+static gpa_t FNAME(gva_to_gpa_nested)(struct kvm_vcpu *vcpu, gpa_t vaddr,
 				      u32 access,
 				      struct x86_exception *exception)
 {
@@ -972,6 +975,11 @@
 	gpa_t gpa = UNMAPPED_GVA;
 	int r;
 
+#ifndef CONFIG_X86_64
+	/* A 64-bit GVA should be impossible on 32-bit KVM. */
+	WARN_ON_ONCE(vaddr >> 32);
+#endif
+
 	r = FNAME(walk_addr_nested)(&walker, vcpu, vaddr, access);
 
 	if (r) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/pmu.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/pmu.h
@@ -2,6 +2,8 @@
 #ifndef __KVM_X86_PMU_H
 #define __KVM_X86_PMU_H
 
+#include <linux/nospec.h>
+
 #define vcpu_to_pmu(vcpu) (&(vcpu)->arch.pmu)
 #define pmu_to_vcpu(pmu)  (container_of((pmu), struct kvm_vcpu, arch.pmu))
 #define pmc_to_pmu(pmc)   (&(pmc)->vcpu->arch.pmu)
@@ -86,8 +88,12 @@
 static inline struct kvm_pmc *get_gp_pmc(struct kvm_pmu *pmu, u32 msr,
 					 u32 base)
 {
-	if (msr >= base && msr < base + pmu->nr_arch_gp_counters)
-		return &pmu->gp_counters[msr - base];
+	if (msr >= base && msr < base + pmu->nr_arch_gp_counters) {
+		u32 index = array_index_nospec(msr - base,
+					       pmu->nr_arch_gp_counters);
+
+		return &pmu->gp_counters[index];
+	}
 
 	return NULL;
 }
@@ -97,8 +103,12 @@
 {
 	int base = MSR_CORE_PERF_FIXED_CTR0;
 
-	if (msr >= base && msr < base + pmu->nr_arch_fixed_counters)
-		return &pmu->fixed_counters[msr - base];
+	if (msr >= base && msr < base + pmu->nr_arch_fixed_counters) {
+		u32 index = array_index_nospec(msr - base,
+					       pmu->nr_arch_fixed_counters);
+
+		return &pmu->fixed_counters[index];
+	}
 
 	return NULL;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/svm.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/svm.c
@@ -787,9 +787,6 @@
 		if (!kvm_emulate_instruction(vcpu, EMULTYPE_SKIP))
 			return 0;
 	} else {
-		if (svm->next_rip - kvm_rip_read(vcpu) > MAX_INST_SIZE)
-			pr_err("%s: ip 0x%lx next 0x%llx\n",
-			       __func__, kvm_rip_read(vcpu), svm->next_rip);
 		kvm_rip_write(vcpu, svm->next_rip);
 	}
 	svm_set_interrupt_shadow(vcpu, 0);
@@ -892,6 +889,11 @@
 		return 0;
 	}
 
+	if (sev_active()) {
+		pr_info("KVM is unsupported when running as an SEV guest\n");
+		return 0;
+	}
+
 	return 1;
 }
 
@@ -998,33 +1000,32 @@
 static int svm_cpu_init(int cpu)
 {
 	struct svm_cpu_data *sd;
-	int r;
 
 	sd = kzalloc(sizeof(struct svm_cpu_data), GFP_KERNEL);
 	if (!sd)
 		return -ENOMEM;
 	sd->cpu = cpu;
-	r = -ENOMEM;
 	sd->save_area = alloc_page(GFP_KERNEL);
 	if (!sd->save_area)
-		goto err_1;
+		goto free_cpu_data;
 
 	if (svm_sev_enabled()) {
-		r = -ENOMEM;
 		sd->sev_vmcbs = kmalloc_array(max_sev_asid + 1,
 					      sizeof(void *),
 					      GFP_KERNEL);
 		if (!sd->sev_vmcbs)
-			goto err_1;
+			goto free_save_area;
 	}
 
 	per_cpu(svm_data, cpu) = sd;
 
 	return 0;
 
-err_1:
+free_save_area:
+	__free_page(sd->save_area);
+free_cpu_data:
 	kfree(sd);
-	return r;
+	return -ENOMEM;
 
 }
 
@@ -1298,6 +1299,47 @@
 	}
 }
 
+/*
+ * The default MMIO mask is a single bit (excluding the present bit),
+ * which could conflict with the memory encryption bit. Check for
+ * memory encryption support and override the default MMIO mask if
+ * memory encryption is enabled.
+ */
+static __init void svm_adjust_mmio_mask(void)
+{
+	unsigned int enc_bit, mask_bit;
+	u64 msr, mask;
+
+	/* If there is no memory encryption support, use existing mask */
+	if (cpuid_eax(0x80000000) < 0x8000001f)
+		return;
+
+	/* If memory encryption is not enabled, use existing mask */
+	rdmsrl(MSR_K8_SYSCFG, msr);
+	if (!(msr & MSR_K8_SYSCFG_MEM_ENCRYPT))
+		return;
+
+	enc_bit = cpuid_ebx(0x8000001f) & 0x3f;
+	mask_bit = boot_cpu_data.x86_phys_bits;
+
+	/* Increment the mask bit if it is the same as the encryption bit */
+	if (enc_bit == mask_bit)
+		mask_bit++;
+
+	/*
+	 * If the mask bit location is below 52, then some bits above the
+	 * physical addressing limit will always be reserved, so use the
+	 * rsvd_bits() function to generate the mask. This mask, along with
+	 * the present bit, will be used to generate a page fault with
+	 * PFER.RSV = 1.
+	 *
+	 * If the mask bit location is 52 (or above), then clear the mask.
+	 */
+	mask = (mask_bit < 52) ? rsvd_bits(mask_bit, 51) | PT_PRESENT_MASK : 0;
+
+	kvm_mmu_set_mmio_spte_mask(mask, mask, PT_WRITABLE_MASK | PT_USER_MASK);
+}
+
 static __init int svm_hardware_setup(void)
 {
 	int cpu;
@@ -1352,6 +1394,8 @@
 		}
 	}
 
+	svm_adjust_mmio_mask();
+
 	for_each_possible_cpu(cpu) {
 		r = svm_cpu_init(cpu);
 		if (r)
@@ -1791,6 +1835,8 @@
 	struct page **pages;
 	unsigned long first, last;
 
+	lockdep_assert_held(&kvm->lock);
+
 	if (ulen == 0 || uaddr + ulen < uaddr)
 		return NULL;
 
@@ -1818,7 +1864,7 @@
 		return NULL;
 
 	/* Pin the user virtual address. */
-	npinned = get_user_pages_fast(uaddr, npages, FOLL_WRITE, pages);
+	npinned = get_user_pages_fast(uaddr, npages, write ? FOLL_WRITE : 0, pages);
 	if (npinned != npages) {
 		pr_err("SEV: Failure locking %lu pages.\n", npages);
 		goto err;
@@ -1883,6 +1929,10 @@
 	struct kvm_svm *kvm_svm = __vmalloc(sizeof(struct kvm_svm),
 					    GFP_KERNEL_ACCOUNT | __GFP_ZERO,
 					    PAGE_KERNEL);
+
+	if (!kvm_svm)
+		return NULL;
+
 	return &kvm_svm->kvm;
 }
 
@@ -3191,8 +3241,8 @@
 			return NESTED_EXIT_HOST;
 		break;
 	case SVM_EXIT_EXCP_BASE + PF_VECTOR:
-		/* When we're shadowing, trap PFs, but not async PF */
-		if (!npt_enabled && svm->vcpu.arch.apf.host_apf_reason == 0)
+		/* Trap async PF even if not shadowing */
+		if (!npt_enabled || svm->vcpu.arch.apf.host_apf_reason)
 			return NESTED_EXIT_HOST;
 		break;
 	default:
@@ -3281,7 +3331,7 @@
 	dst->iopm_base_pa         = from->iopm_base_pa;
 	dst->msrpm_base_pa        = from->msrpm_base_pa;
 	dst->tsc_offset           = from->tsc_offset;
-	dst->asid                 = from->asid;
+	/* asid not copied, it is handled manually for svm->vmcb.  */
 	dst->tlb_ctl              = from->tlb_ctl;
 	dst->int_ctl              = from->int_ctl;
 	dst->int_vector           = from->int_vector;
@@ -3924,6 +3974,12 @@
 	return 1;
 }
 
+static int invd_interception(struct vcpu_svm *svm)
+{
+	/* Treat an INVD instruction as a NOP and just skip it. */
+	return kvm_skip_emulated_instruction(&svm->vcpu);
+}
+
 static int invlpg_interception(struct vcpu_svm *svm)
 {
 	if (!static_cpu_has(X86_FEATURE_DECODEASSISTS))
@@ -4184,8 +4240,7 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
 		msr_info->data = svm->spec_ctrl;
@@ -4269,16 +4324,13 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
-		/* The STIBP bit doesn't fault even if it's not advertised */
-		if (data & ~(SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD))
+		if (kvm_spec_ctrl_test_value(data))
 			return 1;
 
 		svm->spec_ctrl = data;
-
 		if (!data)
 			break;
 
@@ -4297,18 +4349,17 @@
 		break;
 	case MSR_IA32_PRED_CMD:
 		if (!msr->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBPB))
+		    !guest_has_pred_cmd_msr(vcpu))
 			return 1;
 
 		if (data & ~PRED_CMD_IBPB)
 			return 1;
-
+		if (!boot_cpu_has(X86_FEATURE_IBPB))
+			return 1;
 		if (!data)
 			break;
 
 		wrmsrl(MSR_IA32_PRED_CMD, PRED_CMD_IBPB);
-		if (is_guest_mode(vcpu))
-			break;
 		set_msr_interception(svm->msrpm, MSR_IA32_PRED_CMD, 0, 1);
 		break;
 	case MSR_AMD64_VIRT_SPEC_CTRL:
@@ -4776,7 +4827,7 @@
 	[SVM_EXIT_RDPMC]			= rdpmc_interception,
 	[SVM_EXIT_CPUID]			= cpuid_interception,
 	[SVM_EXIT_IRET]                         = iret_interception,
-	[SVM_EXIT_INVD]                         = emulate_on_interception,
+	[SVM_EXIT_INVD]                         = invd_interception,
 	[SVM_EXIT_PAUSE]			= pause_interception,
 	[SVM_EXIT_HLT]				= halt_interception,
 	[SVM_EXIT_INVLPG]			= invlpg_interception,
@@ -5141,8 +5192,11 @@
 	return;
 }
 
-static void svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
+static int svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
 {
+	if (!vcpu->arch.apicv_active)
+		return -1;
+
 	kvm_lapic_set_irr(vec, vcpu->arch.apic);
 	smp_mb__after_atomic();
 
@@ -5154,6 +5208,8 @@
 		put_cpu();
 	} else
 		kvm_vcpu_wake_up(vcpu);
+
+	return 0;
 }
 
 static bool svm_dy_apicv_has_pending_interrupt(struct kvm_vcpu *vcpu)
@@ -5329,6 +5385,7 @@
 			 * - Tell IOMMU to use legacy mode for this interrupt.
 			 * - Retrieve ga_tag of prior interrupt remapping data.
 			 */
+			pi.prev_ga_tag = 0;
 			pi.is_guest_mode = false;
 			ret = irq_set_vcpu_affinity(host_irq, &pi);
 
@@ -5968,7 +6025,7 @@
 
 static bool svm_xsaves_supported(void)
 {
-	return false;
+	return boot_cpu_has(X86_FEATURE_XSAVES);
 }
 
 static bool svm_umip_emulated(void)
@@ -5986,6 +6043,11 @@
 	return true;
 }
 
+static bool svm_pku_supported(void)
+{
+	return false;
+}
+
 #define PRE_EX(exit)  { .exit_code = (exit), \
 			.stage = X86_ICPT_PRE_EXCEPT, }
 #define POST_EX(exit) { .exit_code = (exit), \
@@ -7031,12 +7093,20 @@
 	if (!region)
 		return -ENOMEM;
 
+	mutex_lock(&kvm->lock);
 	region->pages = sev_pin_memory(kvm, range->addr, range->size, &region->npages, 1);
 	if (!region->pages) {
 		ret = -ENOMEM;
+		mutex_unlock(&kvm->lock);
 		goto e_free;
 	}
 
+	region->uaddr = range->addr;
+	region->size = range->size;
+
+	list_add_tail(&region->list, &sev->regions_list);
+	mutex_unlock(&kvm->lock);
+
 	/*
 	 * The guest may change the memory encryption attribute from C=0 -> C=1
 	 * or vice versa for this memory range. Lets make sure caches are
@@ -7045,13 +7115,6 @@
 	 */
 	sev_clflush_pages(region->pages, region->npages);
 
-	region->uaddr = range->addr;
-	region->size = range->size;
-
-	mutex_lock(&kvm->lock);
-	list_add_tail(&region->list, &sev->regions_list);
-	mutex_unlock(&kvm->lock);
-
 	return ret;
 
 e_free:
@@ -7278,6 +7341,7 @@
 	.xsaves_supported = svm_xsaves_supported,
 	.umip_emulated = svm_umip_emulated,
 	.pt_supported = svm_pt_supported,
+	.pku_supported = svm_pku_supported,
 
 	.set_supported_cpuid = svm_set_supported_cpuid,
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/capabilities.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/capabilities.h
@@ -12,6 +12,7 @@
 extern bool __read_mostly enable_unrestricted_guest;
 extern bool __read_mostly enable_ept_ad_bits;
 extern bool __read_mostly enable_pml;
+extern bool __read_mostly enable_apicv;
 extern int __read_mostly pt_mode;
 
 #define PT_MODE_SYSTEM		0
@@ -145,6 +146,11 @@
 		SECONDARY_EXEC_DESC;
 }
 
+static inline bool vmx_pku_supported(void)
+{
+	return boot_cpu_has(X86_FEATURE_PKU);
+}
+
 static inline bool cpu_has_vmx_rdtscp(void)
 {
 	return vmcs_config.cpu_based_2nd_exec_ctrl &
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/nested.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/nested.c
@@ -223,7 +223,7 @@
 		return;
 
 	kvm_vcpu_unmap(vcpu, &vmx->nested.hv_evmcs_map, true);
-	vmx->nested.hv_evmcs_vmptr = -1ull;
+	vmx->nested.hv_evmcs_vmptr = 0;
 	vmx->nested.hv_evmcs = NULL;
 }
 
@@ -302,7 +302,7 @@
 	cpu = get_cpu();
 	prev = vmx->loaded_vmcs;
 	vmx->loaded_vmcs = vmcs;
-	vmx_vcpu_load_vmcs(vcpu, cpu);
+	vmx_vcpu_load_vmcs(vcpu, cpu, prev);
 	vmx_sync_vmcs_host_state(vmx, prev);
 	put_cpu();
 
@@ -1828,7 +1828,8 @@
 	if (!nested_enlightened_vmentry(vcpu, &evmcs_gpa))
 		return 1;
 
-	if (unlikely(evmcs_gpa != vmx->nested.hv_evmcs_vmptr)) {
+	if (unlikely(!vmx->nested.hv_evmcs ||
+		     evmcs_gpa != vmx->nested.hv_evmcs_vmptr)) {
 		if (!vmx->nested.hv_evmcs)
 			vmx->nested.current_vmptr = -1ull;
 
@@ -2230,6 +2231,8 @@
 		vmcs_writel(GUEST_TR_BASE, vmcs12->guest_tr_base);
 		vmcs_writel(GUEST_GDTR_BASE, vmcs12->guest_gdtr_base);
 		vmcs_writel(GUEST_IDTR_BASE, vmcs12->guest_idtr_base);
+
+		vmx->segment_cache.bitmask = 0;
 	}
 
 	if (!hv_evmcs || !(hv_evmcs->hv_clean_fields &
@@ -2418,6 +2421,16 @@
 				entry_failure_code))
 		return -EINVAL;
 
+	/*
+	 * Immediately write vmcs02.GUEST_CR3.  It will be propagated to vmcs12
+	 * on nested VM-Exit, which can occur without actually running L2 and
+	 * thus without hitting vmx_set_cr3(), e.g. if L1 is entering L2 with
+	 * vmcs12.GUEST_ACTIVITYSTATE=HLT, in which case KVM will intercept the
+	 * transition to HLT instead of running L2.
+	 */
+	if (enable_ept)
+		vmcs_writel(GUEST_CR3, vmcs12->guest_cr3);
+
 	/* Late preparation of GUEST_PDPTRs now that EFER and CRs are set. */
 	if (load_guest_pdptrs_vmcs12 && nested_cpu_has_ept(vmcs12) &&
 	    is_pae_paging(vcpu)) {
@@ -3083,8 +3096,10 @@
 	prepare_vmcs02_early(vmx, vmcs12);
 
 	if (from_vmentry) {
-		if (unlikely(!nested_get_vmcs12_pages(vcpu)))
+		if (unlikely(!nested_get_vmcs12_pages(vcpu))) {
+			vmx_switch_vmcs(vcpu, &vmx->vmcs01);
 			return NVMX_VMENTRY_KVM_INTERNAL_ERROR;
+		}
 
 		if (nested_vmx_check_vmentry_hw(vcpu)) {
 			vmx_switch_vmcs(vcpu, &vmx->vmcs01);
@@ -3449,7 +3464,7 @@
 	nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI, intr_info, exit_qual);
 }
 
-static int vmx_check_nested_events(struct kvm_vcpu *vcpu, bool external_intr)
+static int vmx_check_nested_events(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	unsigned long exit_qual;
@@ -3496,8 +3511,7 @@
 		return 0;
 	}
 
-	if ((kvm_cpu_has_interrupt(vcpu) || external_intr) &&
-	    nested_exit_on_intr(vcpu)) {
+	if (kvm_cpu_has_interrupt(vcpu) && nested_exit_on_intr(vcpu)) {
 		if (block_nested_events)
 			return -EBUSY;
 		nested_vmx_vmexit(vcpu, EXIT_REASON_EXTERNAL_INTERRUPT, 0, 0);
@@ -4147,17 +4161,8 @@
 	vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
 
 	if (likely(!vmx->fail)) {
-		/*
-		 * TODO: SDM says that with acknowledge interrupt on
-		 * exit, bit 31 of the VM-exit interrupt information
-		 * (valid interrupt) is always set to 1 on
-		 * EXIT_REASON_EXTERNAL_INTERRUPT, so we shouldn't
-		 * need kvm_cpu_has_interrupt().  See the commit
-		 * message for details.
-		 */
-		if (nested_exit_intr_ack_set(vcpu) &&
-		    exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT &&
-		    kvm_cpu_has_interrupt(vcpu)) {
+		if (exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT &&
+		    nested_exit_intr_ack_set(vcpu)) {
 			int irq = kvm_cpu_get_interrupt(vcpu);
 			WARN_ON(irq < 0);
 			vmcs12->vm_exit_intr_info = irq |
@@ -4599,32 +4604,28 @@
 {
 	unsigned long field;
 	u64 field_value;
+	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	unsigned long exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
 	u32 vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO);
 	int len;
 	gva_t gva = 0;
-	struct vmcs12 *vmcs12;
+	struct vmcs12 *vmcs12 = is_guest_mode(vcpu) ? get_shadow_vmcs12(vcpu)
+						    : get_vmcs12(vcpu);
 	struct x86_exception e;
 	short offset;
 
 	if (!nested_vmx_check_permission(vcpu))
 		return 1;
 
-	if (to_vmx(vcpu)->nested.current_vmptr == -1ull)
+	/*
+	 * In VMX non-root operation, when the VMCS-link pointer is -1ull,
+	 * any VMREAD sets the ALU flags for VMfailInvalid.
+	 */
+	if (vmx->nested.current_vmptr == -1ull ||
+	    (is_guest_mode(vcpu) &&
+	     get_vmcs12(vcpu)->vmcs_link_pointer == -1ull))
 		return nested_vmx_failInvalid(vcpu);
 
-	if (!is_guest_mode(vcpu))
-		vmcs12 = get_vmcs12(vcpu);
-	else {
-		/*
-		 * When vmcs->vmcs_link_pointer is -1ull, any VMREAD
-		 * to shadowed-field sets the ALU flags for VMfailInvalid.
-		 */
-		if (get_vmcs12(vcpu)->vmcs_link_pointer == -1ull)
-			return nested_vmx_failInvalid(vcpu);
-		vmcs12 = get_shadow_vmcs12(vcpu);
-	}
-
 	/* Decode instruction info and find the field to read */
 	field = kvm_register_readl(vcpu, (((vmx_instruction_info) >> 28) & 0xf));
 
@@ -4653,8 +4654,10 @@
 				vmx_instruction_info, true, len, &gva))
 			return 1;
 		/* _system ok, nested_vmx_check_permission has verified cpl=0 */
-		if (kvm_write_guest_virt_system(vcpu, gva, &field_value, len, &e))
+		if (kvm_write_guest_virt_system(vcpu, gva, &field_value, len, &e)) {
 			kvm_inject_page_fault(vcpu, &e);
+			return 1;
+		}
 	}
 
 	return nested_vmx_succeed(vcpu);
@@ -4701,13 +4704,20 @@
 	 */
 	u64 field_value = 0;
 	struct x86_exception e;
-	struct vmcs12 *vmcs12;
+	struct vmcs12 *vmcs12 = is_guest_mode(vcpu) ? get_shadow_vmcs12(vcpu)
+						    : get_vmcs12(vcpu);
 	short offset;
 
 	if (!nested_vmx_check_permission(vcpu))
 		return 1;
 
-	if (vmx->nested.current_vmptr == -1ull)
+	/*
+	 * In VMX non-root operation, when the VMCS-link pointer is -1ull,
+	 * any VMWRITE sets the ALU flags for VMfailInvalid.
+	 */
+	if (vmx->nested.current_vmptr == -1ull ||
+	    (is_guest_mode(vcpu) &&
+	     get_vmcs12(vcpu)->vmcs_link_pointer == -1ull))
 		return nested_vmx_failInvalid(vcpu);
 
 	if (vmx_instruction_info & (1u << 10))
@@ -4726,6 +4736,12 @@
 
 
 	field = kvm_register_readl(vcpu, (((vmx_instruction_info) >> 28) & 0xf));
+
+	offset = vmcs_field_to_offset(field);
+	if (offset < 0)
+		return nested_vmx_failValid(vcpu,
+			VMXERR_UNSUPPORTED_VMCS_COMPONENT);
+
 	/*
 	 * If the vCPU supports "VMWRITE to any supported field in the
 	 * VMCS," then the "read-only" fields are actually read/write.
@@ -4735,29 +4751,12 @@
 		return nested_vmx_failValid(vcpu,
 			VMXERR_VMWRITE_READ_ONLY_VMCS_COMPONENT);
 
-	if (!is_guest_mode(vcpu)) {
-		vmcs12 = get_vmcs12(vcpu);
-
-		/*
-		 * Ensure vmcs12 is up-to-date before any VMWRITE that dirties
-		 * vmcs12, else we may crush a field or consume a stale value.
-		 */
-		if (!is_shadow_field_rw(field))
-			copy_vmcs02_to_vmcs12_rare(vcpu, vmcs12);
-	} else {
-		/*
-		 * When vmcs->vmcs_link_pointer is -1ull, any VMWRITE
-		 * to shadowed-field sets the ALU flags for VMfailInvalid.
-		 */
-		if (get_vmcs12(vcpu)->vmcs_link_pointer == -1ull)
-			return nested_vmx_failInvalid(vcpu);
-		vmcs12 = get_shadow_vmcs12(vcpu);
-	}
-
-	offset = vmcs_field_to_offset(field);
-	if (offset < 0)
-		return nested_vmx_failValid(vcpu,
-			VMXERR_UNSUPPORTED_VMCS_COMPONENT);
+	/*
+	 * Ensure vmcs12 is up-to-date before any VMWRITE that dirties
+	 * vmcs12, else we may crush a field or consume a stale value.
+	 */
+	if (!is_guest_mode(vcpu) && !is_shadow_field_rw(field))
+		copy_vmcs02_to_vmcs12_rare(vcpu, vmcs12);
 
 	/*
 	 * Some Intel CPUs intentionally drop the reserved bits of the AR byte
@@ -5120,24 +5119,17 @@
 	return 1;
 }
 
-
-static bool nested_vmx_exit_handled_io(struct kvm_vcpu *vcpu,
-				       struct vmcs12 *vmcs12)
+/*
+ * Return true if an IO instruction with the specified port and size should cause
+ * a VM-exit into L1.
+ */
+bool nested_vmx_check_io_bitmaps(struct kvm_vcpu *vcpu, unsigned int port,
+				 int size)
 {
-	unsigned long exit_qualification;
+	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
 	gpa_t bitmap, last_bitmap;
-	unsigned int port;
-	int size;
 	u8 b;
 
-	if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
-		return nested_cpu_has(vmcs12, CPU_BASED_UNCOND_IO_EXITING);
-
-	exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
-
-	port = exit_qualification >> 16;
-	size = (exit_qualification & 7) + 1;
-
 	last_bitmap = (gpa_t)-1;
 	b = -1;
 
@@ -5164,6 +5156,24 @@
 	return false;
 }
 
+static bool nested_vmx_exit_handled_io(struct kvm_vcpu *vcpu,
+				       struct vmcs12 *vmcs12)
+{
+	unsigned long exit_qualification;
+	unsigned short port;
+	int size;
+
+	if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
+		return nested_cpu_has(vmcs12, CPU_BASED_UNCOND_IO_EXITING);
+
+	exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
+
+	port = exit_qualification >> 16;
+	size = (exit_qualification & 7) + 1;
+
+	return nested_vmx_check_io_bitmaps(vcpu, port, size);
+}
+
 /*
  * Return 1 if we should exit from L2 to L1 to handle an MSR access access,
  * rather than handle it ourselves in L0. I.e., check whether L1 expressed
@@ -5351,7 +5361,7 @@
 				vmcs_read32(VM_EXIT_INTR_ERROR_CODE),
 				KVM_ISA_VMX);
 
-	switch (exit_reason) {
+	switch ((u16)exit_reason) {
 	case EXIT_REASON_EXCEPTION_NMI:
 		if (is_nmi(intr_info))
 			return false;
@@ -5569,11 +5579,14 @@
 	if (is_guest_mode(vcpu)) {
 		sync_vmcs02_to_vmcs12(vcpu, vmcs12);
 		sync_vmcs02_to_vmcs12_rare(vcpu, vmcs12);
-	} else if (!vmx->nested.need_vmcs12_to_shadow_sync) {
-		if (vmx->nested.hv_evmcs)
-			copy_enlightened_to_vmcs12(vmx);
-		else if (enable_shadow_vmcs)
-			copy_shadow_to_vmcs12(vmx);
+	} else  {
+		copy_vmcs02_to_vmcs12_rare(vcpu, get_vmcs12(vcpu));
+		if (!vmx->nested.need_vmcs12_to_shadow_sync) {
+			if (vmx->nested.hv_evmcs)
+				copy_enlightened_to_vmcs12(vmx);
+			else if (enable_shadow_vmcs)
+				copy_shadow_to_vmcs12(vmx);
+		}
 	}
 
 	BUILD_BUG_ON(sizeof(user_vmx_nested_state->vmcs12) < VMCS12_SIZE);
@@ -5784,8 +5797,7 @@
  * bit in the high half is on if the corresponding bit in the control field
  * may be on. See also vmx_control_verify().
  */
-void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
-				bool apicv)
+void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps)
 {
 	/*
 	 * Note that as a general rule, the high half of the MSRs (bits in
@@ -5812,7 +5824,7 @@
 		PIN_BASED_EXT_INTR_MASK |
 		PIN_BASED_NMI_EXITING |
 		PIN_BASED_VIRTUAL_NMIS |
-		(apicv ? PIN_BASED_POSTED_INTR : 0);
+		(enable_apicv ? PIN_BASED_POSTED_INTR : 0);
 	msrs->pinbased_ctls_high |=
 		PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR |
 		PIN_BASED_VMX_PREEMPTION_TIMER;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/nested.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/nested.h
@@ -17,8 +17,7 @@
 };
 
 void vmx_leave_nested(struct kvm_vcpu *vcpu);
-void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
-				bool apicv);
+void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps);
 void nested_vmx_hardware_unsetup(void);
 __init int nested_vmx_hardware_setup(int (*exit_handlers[])(struct kvm_vcpu *));
 void nested_vmx_vcpu_setup(void);
@@ -33,6 +32,8 @@
 int vmx_get_vmx_msr(struct nested_vmx_msrs *msrs, u32 msr_index, u64 *pdata);
 int get_vmx_mem_address(struct kvm_vcpu *vcpu, unsigned long exit_qualification,
 			u32 vmx_instruction_info, bool wr, int len, gva_t *ret);
+bool nested_vmx_check_io_bitmaps(struct kvm_vcpu *vcpu, unsigned int port,
+				 int size);
 
 static inline struct vmcs12 *get_vmcs12(struct kvm_vcpu *vcpu)
 {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/ops.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/ops.h
@@ -13,6 +13,8 @@
 #define __ex(x) __kvm_handle_fault_on_reboot(x)
 
 asmlinkage void vmread_error(unsigned long field, bool fault);
+__attribute__((regparm(0))) void vmread_error_trampoline(unsigned long field,
+							 bool fault);
 void vmwrite_error(unsigned long field, unsigned long value);
 void vmclear_error(struct vmcs *vmcs, u64 phys_addr);
 void vmptrld_error(struct vmcs *vmcs, u64 phys_addr);
@@ -70,15 +72,28 @@
 	asm volatile("1: vmread %2, %1\n\t"
 		     ".byte 0x3e\n\t" /* branch taken hint */
 		     "ja 3f\n\t"
-		     "mov %2, %%" _ASM_ARG1 "\n\t"
-		     "xor %%" _ASM_ARG2 ", %%" _ASM_ARG2 "\n\t"
-		     "2: call vmread_error\n\t"
-		     "xor %k1, %k1\n\t"
+
+		     /*
+		      * VMREAD failed.  Push '0' for @fault, push the failing
+		      * @field, and bounce through the trampoline to preserve
+		      * volatile registers.
+		      */
+		     "push $0\n\t"
+		     "push %2\n\t"
+		     "2:call vmread_error_trampoline\n\t"
+
+		     /*
+		      * Unwind the stack.  Note, the trampoline zeros out the
+		      * memory for @fault so that the result is '0' on error.
+		      */
+		     "pop %2\n\t"
+		     "pop %1\n\t"
 		     "3:\n\t"
 
+		     /* VMREAD faulted.  As above, except push '1' for @fault. */
 		     ".pushsection .fixup, \"ax\"\n\t"
-		     "4: mov %2, %%" _ASM_ARG1 "\n\t"
-		     "mov $1, %%" _ASM_ARG2 "\n\t"
+		     "4: push $1\n\t"
+		     "push %2\n\t"
 		     "jmp 2b\n\t"
 		     ".popsection\n\t"
 		     _ASM_EXTABLE(1b, 4b)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/pmu_intel.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/pmu_intel.c
@@ -26,7 +26,7 @@
 	[4] = { 0x2e, 0x41, PERF_COUNT_HW_CACHE_MISSES },
 	[5] = { 0xc4, 0x00, PERF_COUNT_HW_BRANCH_INSTRUCTIONS },
 	[6] = { 0xc5, 0x00, PERF_COUNT_HW_BRANCH_MISSES },
-	[7] = { 0x00, 0x30, PERF_COUNT_HW_REF_CPU_CYCLES },
+	[7] = { 0x00, 0x03, PERF_COUNT_HW_REF_CPU_CYCLES },
 };
 
 /* mapping between fixed pmc index and intel_arch_events array */
@@ -84,10 +84,14 @@
 
 static unsigned intel_find_fixed_event(int idx)
 {
-	if (idx >= ARRAY_SIZE(fixed_pmc_events))
+	u32 event;
+	size_t size = ARRAY_SIZE(fixed_pmc_events);
+
+	if (idx >= size)
 		return PERF_COUNT_HW_MAX;
 
-	return intel_arch_events[fixed_pmc_events[idx]].event_type;
+	event = fixed_pmc_events[array_index_nospec(idx, size)];
+	return intel_arch_events[event].event_type;
 }
 
 /* check if a PMC is enabled by comparing it with globl_ctrl bits. */
@@ -128,16 +132,20 @@
 	struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
 	bool fixed = idx & (1u << 30);
 	struct kvm_pmc *counters;
+	unsigned int num_counters;
 
 	idx &= ~(3u << 30);
-	if (!fixed && idx >= pmu->nr_arch_gp_counters)
-		return NULL;
-	if (fixed && idx >= pmu->nr_arch_fixed_counters)
+	if (fixed) {
+		counters = pmu->fixed_counters;
+		num_counters = pmu->nr_arch_fixed_counters;
+	} else {
+		counters = pmu->gp_counters;
+		num_counters = pmu->nr_arch_gp_counters;
+	}
+	if (idx >= num_counters)
 		return NULL;
-	counters = fixed ? pmu->fixed_counters : pmu->gp_counters;
 	*mask &= pmu->counter_bitmask[fixed ? KVM_PMC_FIXED : KVM_PMC_GP];
-
-	return &counters[idx];
+	return &counters[array_index_nospec(idx, num_counters)];
 }
 
 static bool intel_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr)
@@ -288,7 +296,9 @@
 
 	pmu->nr_arch_gp_counters = min_t(int, eax.split.num_counters,
 					 x86_pmu.num_counters_gp);
+	eax.split.bit_width = min_t(int, eax.split.bit_width, x86_pmu.bit_width_gp);
 	pmu->counter_bitmask[KVM_PMC_GP] = ((u64)1 << eax.split.bit_width) - 1;
+	eax.split.mask_length = min_t(int, eax.split.mask_length, x86_pmu.events_mask_len);
 	pmu->available_event_types = ~entry->ebx &
 					((1ull << eax.split.mask_length) - 1);
 
@@ -298,6 +308,8 @@
 		pmu->nr_arch_fixed_counters =
 			min_t(int, edx.split.num_counters_fixed,
 			      x86_pmu.num_counters_fixed);
+		edx.split.bit_width_fixed = min_t(int,
+			edx.split.bit_width_fixed, x86_pmu.bit_width_fixed);
 		pmu->counter_bitmask[KVM_PMC_FIXED] =
 			((u64)1 << edx.split.bit_width_fixed) - 1;
 	}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/vmenter.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/vmenter.S
@@ -86,6 +86,9 @@
 	/* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */
 	FILL_RETURN_BUFFER %_ASM_AX, RSB_CLEAR_LOOPS, X86_FEATURE_RETPOLINE
 
+	/* Clear RFLAGS.CF and RFLAGS.ZF to preserve VM-Exit, i.e. !VM-Fail. */
+	or $1, %_ASM_AX
+
 	pop %_ASM_AX
 .Lvmexit_skip_rsb:
 #endif
@@ -234,3 +237,61 @@
 2:	mov $1, %eax
 	jmp 1b
 ENDPROC(__vmx_vcpu_run)
+
+/**
+ * vmread_error_trampoline - Trampoline from inline asm to vmread_error()
+ * @field:	VMCS field encoding that failed
+ * @fault:	%true if the VMREAD faulted, %false if it failed
+
+ * Save and restore volatile registers across a call to vmread_error().  Note,
+ * all parameters are passed on the stack.
+ */
+ENTRY(vmread_error_trampoline)
+	push %_ASM_BP
+	mov  %_ASM_SP, %_ASM_BP
+
+	push %_ASM_AX
+	push %_ASM_CX
+	push %_ASM_DX
+#ifdef CONFIG_X86_64
+	push %rdi
+	push %rsi
+	push %r8
+	push %r9
+	push %r10
+	push %r11
+#endif
+#ifdef CONFIG_X86_64
+	/* Load @field and @fault to arg1 and arg2 respectively. */
+	mov 3*WORD_SIZE(%rbp), %_ASM_ARG2
+	mov 2*WORD_SIZE(%rbp), %_ASM_ARG1
+#else
+	/* Parameters are passed on the stack for 32-bit (see asmlinkage). */
+	push 3*WORD_SIZE(%ebp)
+	push 2*WORD_SIZE(%ebp)
+#endif
+
+	call vmread_error
+
+#ifndef CONFIG_X86_64
+	add $8, %esp
+#endif
+
+	/* Zero out @fault, which will be popped into the result register. */
+	_ASM_MOV $0, 3*WORD_SIZE(%_ASM_BP)
+
+#ifdef CONFIG_X86_64
+	pop %r11
+	pop %r10
+	pop %r9
+	pop %r8
+	pop %rsi
+	pop %rdi
+#endif
+	pop %_ASM_DX
+	pop %_ASM_CX
+	pop %_ASM_AX
+	pop %_ASM_BP
+
+	ret
+ENDPROC(vmread_error_trampoline)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/vmx.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/vmx.c
@@ -95,7 +95,7 @@
 static bool __read_mostly fasteoi = 1;
 module_param(fasteoi, bool, S_IRUGO);
 
-static bool __read_mostly enable_apicv = 1;
+bool __read_mostly enable_apicv = 1;
 module_param(enable_apicv, bool, S_IRUGO);
 
 /*
@@ -648,43 +648,15 @@
 }
 
 #ifdef CONFIG_KEXEC_CORE
-/*
- * This bitmap is used to indicate whether the vmclear
- * operation is enabled on all cpus. All disabled by
- * default.
- */
-static cpumask_t crash_vmclear_enabled_bitmap = CPU_MASK_NONE;
-
-static inline void crash_enable_local_vmclear(int cpu)
-{
-	cpumask_set_cpu(cpu, &crash_vmclear_enabled_bitmap);
-}
-
-static inline void crash_disable_local_vmclear(int cpu)
-{
-	cpumask_clear_cpu(cpu, &crash_vmclear_enabled_bitmap);
-}
-
-static inline int crash_local_vmclear_enabled(int cpu)
-{
-	return cpumask_test_cpu(cpu, &crash_vmclear_enabled_bitmap);
-}
-
 static void crash_vmclear_local_loaded_vmcss(void)
 {
 	int cpu = raw_smp_processor_id();
 	struct loaded_vmcs *v;
 
-	if (!crash_local_vmclear_enabled(cpu))
-		return;
-
 	list_for_each_entry(v, &per_cpu(loaded_vmcss_on_cpu, cpu),
 			    loaded_vmcss_on_cpu_link)
 		vmcs_clear(v->vmcs);
 }
-#else
-static inline void crash_enable_local_vmclear(int cpu) { }
-static inline void crash_disable_local_vmclear(int cpu) { }
 #endif /* CONFIG_KEXEC_CORE */
 
 static void __loaded_vmcs_clear(void *arg)
@@ -696,19 +668,24 @@
 		return; /* vcpu migration can race with cpu offline */
 	if (per_cpu(current_vmcs, cpu) == loaded_vmcs->vmcs)
 		per_cpu(current_vmcs, cpu) = NULL;
-	crash_disable_local_vmclear(cpu);
+
+	vmcs_clear(loaded_vmcs->vmcs);
+	if (loaded_vmcs->shadow_vmcs && loaded_vmcs->launched)
+		vmcs_clear(loaded_vmcs->shadow_vmcs);
+
 	list_del(&loaded_vmcs->loaded_vmcss_on_cpu_link);
 
 	/*
-	 * we should ensure updating loaded_vmcs->loaded_vmcss_on_cpu_link
-	 * is before setting loaded_vmcs->vcpu to -1 which is done in
-	 * loaded_vmcs_init. Otherwise, other cpu can see vcpu = -1 fist
-	 * then adds the vmcs into percpu list before it is deleted.
+	 * Ensure all writes to loaded_vmcs, including deleting it from its
+	 * current percpu list, complete before setting loaded_vmcs->vcpu to
+	 * -1, otherwise a different cpu can see vcpu == -1 first and add
+	 * loaded_vmcs to its percpu list before it's deleted from this cpu's
+	 * list. Pairs with the smp_rmb() in vmx_vcpu_load_vmcs().
 	 */
 	smp_wmb();
 
-	loaded_vmcs_init(loaded_vmcs);
-	crash_enable_local_vmclear(cpu);
+	loaded_vmcs->cpu = -1;
+	loaded_vmcs->launched = 0;
 }
 
 void loaded_vmcs_clear(struct loaded_vmcs *loaded_vmcs)
@@ -1153,6 +1130,10 @@
 					   vmx->guest_msrs[i].mask);
 
 	}
+
+    	if (vmx->nested.need_vmcs12_to_shadow_sync)
+		nested_sync_vmcs12_to_shadow(vcpu);
+
 	if (vmx->guest_state_loaded)
 		return;
 
@@ -1309,33 +1290,42 @@
 		pi_set_on(pi_desc);
 }
 
-void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu)
+void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu,
+			struct loaded_vmcs *buddy)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	bool already_loaded = vmx->loaded_vmcs->cpu == cpu;
+	struct vmcs *prev;
 
 	if (!already_loaded) {
 		loaded_vmcs_clear(vmx->loaded_vmcs);
 		local_irq_disable();
-		crash_disable_local_vmclear(cpu);
 
 		/*
-		 * Read loaded_vmcs->cpu should be before fetching
-		 * loaded_vmcs->loaded_vmcss_on_cpu_link.
-		 * See the comments in __loaded_vmcs_clear().
+		 * Ensure loaded_vmcs->cpu is read before adding loaded_vmcs to
+		 * this cpu's percpu list, otherwise it may not yet be deleted
+		 * from its previous cpu's percpu list.  Pairs with the
+		 * smb_wmb() in __loaded_vmcs_clear().
 		 */
 		smp_rmb();
 
 		list_add(&vmx->loaded_vmcs->loaded_vmcss_on_cpu_link,
 			 &per_cpu(loaded_vmcss_on_cpu, cpu));
-		crash_enable_local_vmclear(cpu);
 		local_irq_enable();
 	}
 
-	if (per_cpu(current_vmcs, cpu) != vmx->loaded_vmcs->vmcs) {
+	prev = per_cpu(current_vmcs, cpu);
+	if (prev != vmx->loaded_vmcs->vmcs) {
 		per_cpu(current_vmcs, cpu) = vmx->loaded_vmcs->vmcs;
 		vmcs_load(vmx->loaded_vmcs->vmcs);
-		indirect_branch_prediction_barrier();
+
+		/*
+		 * No indirect branch prediction barrier needed when switching
+		 * the active VMCS within a guest, e.g. on nested VM-Enter.
+		 * The L1 VMM can protect itself with retpolines, IBPB or IBRS.
+		 */
+		if (!buddy || WARN_ON_ONCE(buddy->vmcs != prev))
+			indirect_branch_prediction_barrier();
 	}
 
 	if (!already_loaded) {
@@ -1380,11 +1370,10 @@
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 
-	vmx_vcpu_load_vmcs(vcpu, cpu);
+	vmx_vcpu_load_vmcs(vcpu, cpu, NULL);
 
 	vmx_vcpu_pi_load(vcpu, cpu);
 
-	vmx->host_pkru = read_pkru();
 	vmx->host_debugctlmsr = get_debugctlmsr();
 }
 
@@ -1552,7 +1541,7 @@
 
 static int skip_emulated_instruction(struct kvm_vcpu *vcpu)
 {
-	unsigned long rip;
+	unsigned long rip, orig_rip;
 
 	/*
 	 * Using VMCS.VM_EXIT_INSTRUCTION_LEN on EPT misconfig depends on
@@ -1564,8 +1553,17 @@
 	 */
 	if (!static_cpu_has(X86_FEATURE_HYPERVISOR) ||
 	    to_vmx(vcpu)->exit_reason != EXIT_REASON_EPT_MISCONFIG) {
-		rip = kvm_rip_read(vcpu);
-		rip += vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+		orig_rip = kvm_rip_read(vcpu);
+		rip = orig_rip + vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+#ifdef CONFIG_X86_64
+		/*
+		 * We need to mask out the high 32 bits of RIP if not in 64-bit
+		 * mode, but just finding out that we are in 64-bit mode is
+		 * quite expensive.  Only do it if there was a carry.
+		 */
+		if (unlikely(((rip ^ orig_rip) >> 31) == 3) && !is_64_bit_mode(vcpu))
+			rip = (u32)rip;
+#endif
 		kvm_rip_write(vcpu, rip);
 	} else {
 		if (!kvm_emulate_instruction(vcpu, EMULTYPE_SKIP))
@@ -1790,7 +1788,7 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
 		msr_info->data = to_vmx(vcpu)->spec_ctrl;
@@ -1973,15 +1971,13 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
-		/* The STIBP bit doesn't fault even if it's not advertised */
-		if (data & ~(SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD))
+		if (kvm_spec_ctrl_test_value(data))
 			return 1;
 
 		vmx->spec_ctrl = data;
-
 		if (!data)
 			break;
 
@@ -2003,12 +1999,13 @@
 		break;
 	case MSR_IA32_PRED_CMD:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		    !guest_has_pred_cmd_msr(vcpu))
 			return 1;
 
 		if (data & ~PRED_CMD_IBPB)
 			return 1;
-
+		if (!boot_cpu_has(X86_FEATURE_IBPB))
+			return 1;
 		if (!data)
 			break;
 
@@ -2140,6 +2137,8 @@
 			(index >= 2 * intel_pt_validate_cap(vmx->pt_desc.caps,
 					PT_CAP_num_address_ranges)))
 			return 1;
+		if (is_noncanonical_address(data, vcpu))
+			return 1;
 		if (index % 2)
 			vmx->pt_desc.guest.addr_b[index / 2] = data;
 		else
@@ -2250,21 +2249,6 @@
 	    !hv_get_vp_assist_page(cpu))
 		return -EFAULT;
 
-	INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu));
-	INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
-	spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
-
-	/*
-	 * Now we can enable the vmclear operation in kdump
-	 * since the loaded_vmcss_on_cpu list on this cpu
-	 * has been initialized.
-	 *
-	 * Though the cpu is not in VMX operation now, there
-	 * is no problem to enable the vmclear operation
-	 * for the loaded_vmcss_on_cpu list is empty!
-	 */
-	crash_enable_local_vmclear(cpu);
-
 	rdmsrl(MSR_IA32_FEATURE_CONTROL, old);
 
 	test_bits = FEATURE_CONTROL_LOCKED;
@@ -2973,6 +2957,9 @@
 
 static int get_ept_level(struct kvm_vcpu *vcpu)
 {
+	/* Nested EPT currently only supports 4-level walks. */
+	if (is_guest_mode(vcpu) && nested_cpu_has_ept(get_vmcs12(vcpu)))
+		return 4;
 	if (cpu_has_vmx_ept_5levels() && (cpuid_maxphyaddr(vcpu) > 48))
 		return 5;
 	return 4;
@@ -2995,6 +2982,7 @@
 void vmx_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
 {
 	struct kvm *kvm = vcpu->kvm;
+	bool update_guest_cr3 = true;
 	unsigned long guest_cr3;
 	u64 eptp;
 
@@ -3011,15 +2999,18 @@
 			spin_unlock(&to_kvm_vmx(kvm)->ept_pointer_lock);
 		}
 
-		if (enable_unrestricted_guest || is_paging(vcpu) ||
-		    is_guest_mode(vcpu))
+		/* Loading vmcs02.GUEST_CR3 is handled by nested VM-Enter. */
+		if (is_guest_mode(vcpu))
+			update_guest_cr3 = false;
+		else if (enable_unrestricted_guest || is_paging(vcpu))
 			guest_cr3 = kvm_read_cr3(vcpu);
 		else
 			guest_cr3 = to_kvm_vmx(kvm)->ept_identity_map_addr;
 		ept_load_pdptrs(vcpu);
 	}
 
-	vmcs_writel(GUEST_CR3, guest_cr3);
+	if (update_guest_cr3)
+		vmcs_writel(GUEST_CR3, guest_cr3);
 }
 
 int vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
@@ -3844,24 +3835,29 @@
  * 2. If target vcpu isn't running(root mode), kick it to pick up the
  * interrupt from PIR in next vmentry.
  */
-static void vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
+static int vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	int r;
 
 	r = vmx_deliver_nested_posted_interrupt(vcpu, vector);
 	if (!r)
-		return;
+		return 0;
+
+	if (!vcpu->arch.apicv_active)
+		return -1;
 
 	if (pi_test_and_set_pir(vector, &vmx->pi_desc))
-		return;
+		return 0;
 
 	/* If a previous notification has sent the IPI, nothing to do.  */
 	if (pi_test_and_set_on(&vmx->pi_desc))
-		return;
+		return 0;
 
 	if (!kvm_vcpu_trigger_posted_interrupt(vcpu, false))
 		kvm_vcpu_kick(vcpu);
+
+	return 0;
 }
 
 /*
@@ -3929,6 +3925,8 @@
 
 void set_cr4_guest_host_mask(struct vcpu_vmx *vmx)
 {
+	BUILD_BUG_ON(KVM_CR4_GUEST_OWNED_BITS & ~KVM_POSSIBLE_CR4_GUEST_BITS);
+
 	vmx->vcpu.arch.cr4_guest_owned_bits = KVM_CR4_GUEST_OWNED_BITS;
 	if (enable_ept)
 		vmx->vcpu.arch.cr4_guest_owned_bits |= X86_CR4_PGE;
@@ -4491,8 +4489,13 @@
 
 static int vmx_interrupt_allowed(struct kvm_vcpu *vcpu)
 {
-	return (!to_vmx(vcpu)->nested.nested_run_pending &&
-		vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) &&
+	if (to_vmx(vcpu)->nested.nested_run_pending)
+		return false;
+
+	if (is_guest_mode(vcpu) && nested_exit_on_intr(vcpu))
+		return true;
+
+	return (vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) &&
 		!(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) &
 			(GUEST_INTR_STATE_STI | GUEST_INTR_STATE_MOV_SS));
 }
@@ -4586,7 +4589,7 @@
  */
 static void kvm_machine_check(void)
 {
-#if defined(CONFIG_X86_MCE) && defined(CONFIG_X86_64)
+#if defined(CONFIG_X86_MCE)
 	struct pt_regs regs = {
 		.cs = 3, /* Fake ring 3 no matter what the guest ran on */
 		.flags = X86_EFLAGS_IF,
@@ -5904,6 +5907,7 @@
 			(exit_reason != EXIT_REASON_EXCEPTION_NMI &&
 			exit_reason != EXIT_REASON_EPT_VIOLATION &&
 			exit_reason != EXIT_REASON_PML_FULL &&
+			exit_reason != EXIT_REASON_APIC_ACCESS &&
 			exit_reason != EXIT_REASON_TASK_SWITCH)) {
 		vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR;
 		vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_DELIVERY_EV;
@@ -6438,23 +6442,6 @@
 					msrs[i].host, false);
 }
 
-static void atomic_switch_umwait_control_msr(struct vcpu_vmx *vmx)
-{
-	u32 host_umwait_control;
-
-	if (!vmx_has_waitpkg(vmx))
-		return;
-
-	host_umwait_control = get_umwait_control_msr();
-
-	if (vmx->msr_ia32_umwait_control != host_umwait_control)
-		add_atomic_switch_msr(vmx, MSR_IA32_UMWAIT_CONTROL,
-			vmx->msr_ia32_umwait_control,
-			host_umwait_control, false);
-	else
-		clear_atomic_switch_msr(vmx, MSR_IA32_UMWAIT_CONTROL);
-}
-
 static void vmx_update_hv_timer(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
@@ -6511,8 +6498,11 @@
 		vmcs_write32(PLE_WINDOW, vmx->ple_window);
 	}
 
-	if (vmx->nested.need_vmcs12_to_shadow_sync)
-		nested_sync_vmcs12_to_shadow(vcpu);
+	/*
+	 * We did this in prepare_switch_to_guest, because it needs to
+	 * be within srcu_read_lock.
+	 */
+	WARN_ON_ONCE(vmx->nested.need_vmcs12_to_shadow_sync);
 
 	if (test_bit(VCPU_REGS_RSP, (unsigned long *)&vcpu->arch.regs_dirty))
 		vmcs_writel(GUEST_RSP, vcpu->arch.regs[VCPU_REGS_RSP]);
@@ -6541,15 +6531,9 @@
 
 	kvm_load_guest_xcr0(vcpu);
 
-	if (static_cpu_has(X86_FEATURE_PKU) &&
-	    kvm_read_cr4_bits(vcpu, X86_CR4_PKE) &&
-	    vcpu->arch.pkru != vmx->host_pkru)
-		__write_pkru(vcpu->arch.pkru);
-
 	pt_guest_enter(vmx);
 
 	atomic_switch_perf_msrs(vmx);
-	atomic_switch_umwait_control_msr(vmx);
 
 	if (enable_preemption_timer)
 		vmx_update_hv_timer(vcpu);
@@ -6634,18 +6618,6 @@
 
 	pt_guest_exit(vmx);
 
-	/*
-	 * eager fpu is enabled if PKEY is supported and CR4 is switched
-	 * back on host, so it is safe to read guest PKRU from current
-	 * XSAVE.
-	 */
-	if (static_cpu_has(X86_FEATURE_PKU) &&
-	    kvm_read_cr4_bits(vcpu, X86_CR4_PKE)) {
-		vcpu->arch.pkru = rdpkru();
-		if (vcpu->arch.pkru != vmx->host_pkru)
-			__write_pkru(vmx->host_pkru);
-	}
-
 	kvm_put_guest_xcr0(vcpu);
 
 	vmx->nested.nested_run_pending = 0;
@@ -6670,6 +6642,10 @@
 	struct kvm_vmx *kvm_vmx = __vmalloc(sizeof(struct kvm_vmx),
 					    GFP_KERNEL_ACCOUNT | __GFP_ZERO,
 					    PAGE_KERNEL);
+
+	if (!kvm_vmx)
+		return NULL;
+
 	return &kvm_vmx->kvm;
 }
 
@@ -6793,8 +6769,7 @@
 
 	if (nested)
 		nested_vmx_setup_ctls_msrs(&vmx->nested.msrs,
-					   vmx_capability.ept,
-					   kvm_vcpu_apicv_active(&vmx->vcpu));
+					   vmx_capability.ept);
 	else
 		memset(&vmx->nested.msrs, 0, sizeof(vmx->nested.msrs));
 
@@ -6876,8 +6851,7 @@
 	if (setup_vmcs_config(&vmcs_conf, &vmx_cap) < 0)
 		return -EIO;
 	if (nested)
-		nested_vmx_setup_ctls_msrs(&vmcs_conf.nested, vmx_cap.ept,
-					   enable_apicv);
+		nested_vmx_setup_ctls_msrs(&vmcs_conf.nested, vmx_cap.ept);
 	if (memcmp(&vmcs_config, &vmcs_conf, sizeof(struct vmcs_config)) != 0) {
 		printk(KERN_ERR "kvm: CPU %d feature inconsistency!\n",
 				smp_processor_id());
@@ -7123,6 +7097,40 @@
 	to_vmx(vcpu)->req_immediate_exit = true;
 }
 
+static int vmx_check_intercept_io(struct kvm_vcpu *vcpu,
+				  struct x86_instruction_info *info)
+{
+	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
+	unsigned short port;
+	bool intercept;
+	int size;
+
+	if (info->intercept == x86_intercept_in ||
+	    info->intercept == x86_intercept_ins) {
+		port = info->src_val;
+		size = info->dst_bytes;
+	} else {
+		port = info->dst_val;
+		size = info->src_bytes;
+	}
+
+	/*
+	 * If the 'use IO bitmaps' VM-execution control is 0, IO instruction
+	 * VM-exits depend on the 'unconditional IO exiting' VM-execution
+	 * control.
+	 *
+	 * Otherwise, IO instruction VM-exits are controlled by the IO bitmaps.
+	 */
+	if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
+		intercept = nested_cpu_has(vmcs12,
+					   CPU_BASED_UNCOND_IO_EXITING);
+	else
+		intercept = nested_vmx_check_io_bitmaps(vcpu, port, size);
+
+	/* FIXME: produce nested vmexit and return X86EMUL_INTERCEPTED.  */
+	return intercept ? X86EMUL_UNHANDLEABLE : X86EMUL_CONTINUE;
+}
+
 static int vmx_check_intercept(struct kvm_vcpu *vcpu,
 			       struct x86_instruction_info *info,
 			       enum x86_intercept_stage stage)
@@ -7130,19 +7138,45 @@
 	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
 	struct x86_emulate_ctxt *ctxt = &vcpu->arch.emulate_ctxt;
 
+	switch (info->intercept) {
 	/*
 	 * RDPID causes #UD if disabled through secondary execution controls.
 	 * Because it is marked as EmulateOnUD, we need to intercept it here.
 	 */
-	if (info->intercept == x86_intercept_rdtscp &&
-	    !nested_cpu_has2(vmcs12, SECONDARY_EXEC_RDTSCP)) {
-		ctxt->exception.vector = UD_VECTOR;
-		ctxt->exception.error_code_valid = false;
-		return X86EMUL_PROPAGATE_FAULT;
-	}
+	case x86_intercept_rdtscp:
+		if (!nested_cpu_has2(vmcs12, SECONDARY_EXEC_RDTSCP)) {
+			ctxt->exception.vector = UD_VECTOR;
+			ctxt->exception.error_code_valid = false;
+			return X86EMUL_PROPAGATE_FAULT;
+		}
+		break;
+
+	case x86_intercept_in:
+	case x86_intercept_ins:
+	case x86_intercept_out:
+	case x86_intercept_outs:
+		return vmx_check_intercept_io(vcpu, info);
+
+	case x86_intercept_lgdt:
+	case x86_intercept_lidt:
+	case x86_intercept_lldt:
+	case x86_intercept_ltr:
+	case x86_intercept_sgdt:
+	case x86_intercept_sidt:
+	case x86_intercept_sldt:
+	case x86_intercept_str:
+		if (!nested_cpu_has2(vmcs12, SECONDARY_EXEC_DESC))
+			return X86EMUL_CONTINUE;
+
+		/* FIXME: produce nested vmexit and return X86EMUL_INTERCEPTED.  */
+		break;
 
 	/* TODO: check more intercepts... */
-	return X86EMUL_CONTINUE;
+	default:
+		break;
+	}
+
+	return X86EMUL_UNHANDLEABLE;
 }
 
 #ifdef CONFIG_X86_64
@@ -7238,11 +7272,11 @@
 	kvm_flush_pml_buffers(kvm);
 }
 
-static int vmx_write_pml_buffer(struct kvm_vcpu *vcpu)
+static int vmx_write_pml_buffer(struct kvm_vcpu *vcpu, gpa_t gpa)
 {
 	struct vmcs12 *vmcs12;
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
-	gpa_t gpa, dst;
+	gpa_t dst;
 
 	if (is_guest_mode(vcpu)) {
 		WARN_ON_ONCE(vmx->nested.pml_full);
@@ -7261,7 +7295,7 @@
 			return 1;
 		}
 
-		gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS) & ~0xFFFull;
+		gpa &= ~0xFFFull;
 		dst = vmcs12->pml_address + sizeof(u64) * vmcs12->guest_pml_index;
 
 		if (kvm_write_guest_page(vcpu->kvm, gpa_to_gfn(dst), &gpa,
@@ -7727,7 +7761,7 @@
 
 	if (nested) {
 		nested_vmx_setup_ctls_msrs(&vmcs_config.nested,
-					   vmx_capability.ept, enable_apicv);
+					   vmx_capability.ept);
 
 		r = nested_vmx_hardware_setup(kvm_vmx_exit_handlers);
 		if (r)
@@ -7861,6 +7895,7 @@
 	.xsaves_supported = vmx_xsaves_supported,
 	.umip_emulated = vmx_umip_emulated,
 	.pt_supported = vmx_pt_supported,
+	.pku_supported = vmx_pku_supported,
 
 	.request_immediate_exit = vmx_request_immediate_exit,
 
@@ -7949,7 +7984,7 @@
 
 static int __init vmx_init(void)
 {
-	int r;
+	int r, cpu;
 
 #if IS_ENABLED(CONFIG_HYPERV)
 	/*
@@ -8003,6 +8038,12 @@
 		return r;
 	}
 
+	for_each_possible_cpu(cpu) {
+		INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu));
+		INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
+		spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+	}
+
 #ifdef CONFIG_KEXEC_CORE
 	rcu_assign_pointer(crash_vmclear_loaded_vmcss,
 			   crash_vmclear_local_loaded_vmcss);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/vmx/vmx.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/vmx/vmx.h
@@ -14,8 +14,6 @@
 extern const u32 vmx_msr_index[];
 extern u64 host_efer;
 
-extern u32 get_umwait_control_msr(void);
-
 #define MSR_TYPE_R	1
 #define MSR_TYPE_W	2
 #define MSR_TYPE_RW	3
@@ -304,7 +302,8 @@
 };
 
 bool nested_vmx_allowed(struct kvm_vcpu *vcpu);
-void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu);
+void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu,
+			struct loaded_vmcs *buddy);
 void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
 int allocate_vpid(void);
 void free_vpid(int vpid);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/x86.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/x86.c
@@ -92,6 +92,8 @@
 static u64 __read_mostly efer_reserved_bits = ~((u64)EFER_SCE);
 #endif
 
+static u64 __read_mostly cr4_reserved_bits = CR4_RESERVED_BITS;
+
 #define VM_STAT(x, ...) offsetof(struct kvm, stat.x), KVM_STAT_VM, ## __VA_ARGS__
 #define VCPU_STAT(x, ...) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU, ## __VA_ARGS__
 
@@ -100,6 +102,7 @@
 
 static void update_cr8_intercept(struct kvm_vcpu *vcpu);
 static void process_nmi(struct kvm_vcpu *vcpu);
+static void process_smi(struct kvm_vcpu *vcpu);
 static void enter_smm(struct kvm_vcpu *vcpu);
 static void __kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags);
 static void store_regs(struct kvm_vcpu *vcpu);
@@ -300,13 +303,14 @@
 	struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu);
 	int err;
 
-	if (((value ^ smsr->values[slot].curr) & mask) == 0)
+	value = (value & mask) | (smsr->values[slot].host & ~mask);
+	if (value == smsr->values[slot].curr)
 		return 0;
-	smsr->values[slot].curr = value;
 	err = wrmsrl_safe(shared_msrs_global.msrs[slot], value);
 	if (err)
 		return 1;
 
+	smsr->values[slot].curr = value;
 	if (!smsr->registered) {
 		smsr->urn.on_user_return = kvm_on_user_return;
 		user_return_notifier_register(&smsr->urn);
@@ -442,6 +446,14 @@
 		 * for #DB exceptions under VMX.
 		 */
 		vcpu->arch.dr6 ^= payload & DR6_RTM;
+
+		/*
+		 * The #DB payload is defined as compatible with the 'pending
+		 * debug exceptions' field under VMX, not DR6. While bit 12 is
+		 * defined in the 'pending debug exceptions' field (enabled
+		 * breakpoint), it is reserved and must be zero in DR6.
+		 */
+		vcpu->arch.dr6 &= ~BIT(12);
 		break;
 	case PF_VECTOR:
 		vcpu->arch.cr2 = payload;
@@ -821,11 +833,25 @@
 			xsetbv(XCR_XFEATURE_ENABLED_MASK, vcpu->arch.xcr0);
 		vcpu->guest_xcr0_loaded = 1;
 	}
+
+	if (static_cpu_has(X86_FEATURE_PKU) &&
+	    (kvm_read_cr4_bits(vcpu, X86_CR4_PKE) ||
+	     (vcpu->arch.xcr0 & XFEATURE_MASK_PKRU)) &&
+	    vcpu->arch.pkru != vcpu->arch.host_pkru)
+		__write_pkru(vcpu->arch.pkru);
 }
 EXPORT_SYMBOL_GPL(kvm_load_guest_xcr0);
 
 void kvm_put_guest_xcr0(struct kvm_vcpu *vcpu)
 {
+	if (static_cpu_has(X86_FEATURE_PKU) &&
+	    (kvm_read_cr4_bits(vcpu, X86_CR4_PKE) ||
+	     (vcpu->arch.xcr0 & XFEATURE_MASK_PKRU))) {
+		vcpu->arch.pkru = rdpkru();
+		if (vcpu->arch.pkru != vcpu->arch.host_pkru)
+			__write_pkru(vcpu->arch.host_pkru);
+	}
+
 	if (vcpu->guest_xcr0_loaded) {
 		if (vcpu->arch.xcr0 != host_xcr0)
 			xsetbv(XCR_XFEATURE_ENABLED_MASK, host_xcr0);
@@ -885,9 +911,38 @@
 }
 EXPORT_SYMBOL_GPL(kvm_set_xcr);
 
+static u64 kvm_host_cr4_reserved_bits(struct cpuinfo_x86 *c)
+{
+	u64 reserved_bits = CR4_RESERVED_BITS;
+
+	if (!cpu_has(c, X86_FEATURE_XSAVE))
+		reserved_bits |= X86_CR4_OSXSAVE;
+
+	if (!cpu_has(c, X86_FEATURE_SMEP))
+		reserved_bits |= X86_CR4_SMEP;
+
+	if (!cpu_has(c, X86_FEATURE_SMAP))
+		reserved_bits |= X86_CR4_SMAP;
+
+	if (!cpu_has(c, X86_FEATURE_FSGSBASE))
+		reserved_bits |= X86_CR4_FSGSBASE;
+
+	if (!cpu_has(c, X86_FEATURE_PKU))
+		reserved_bits |= X86_CR4_PKE;
+
+	if (!cpu_has(c, X86_FEATURE_LA57) &&
+	    !(cpuid_ecx(0x7) & bit(X86_FEATURE_LA57)))
+		reserved_bits |= X86_CR4_LA57;
+
+	if (!cpu_has(c, X86_FEATURE_UMIP) && !kvm_x86_ops->umip_emulated())
+		reserved_bits |= X86_CR4_UMIP;
+
+	return reserved_bits;
+}
+
 static int kvm_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 {
-	if (cr4 & CR4_RESERVED_BITS)
+	if (cr4 & cr4_reserved_bits)
 		return -EINVAL;
 
 	if (!guest_cpuid_has(vcpu, X86_FEATURE_XSAVE) && (cr4 & X86_CR4_OSXSAVE))
@@ -918,7 +973,8 @@
 {
 	unsigned long old_cr4 = kvm_read_cr4(vcpu);
 	unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE |
-				   X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_PKE;
+				   X86_CR4_SMEP;
+	unsigned long mmu_role_bits = pdptr_bits | X86_CR4_SMAP | X86_CR4_PKE;
 
 	if (kvm_valid_cr4(vcpu, cr4))
 		return 1;
@@ -926,6 +982,8 @@
 	if (is_long_mode(vcpu)) {
 		if (!(cr4 & X86_CR4_PAE))
 			return 1;
+		if ((cr4 ^ old_cr4) & X86_CR4_LA57)
+			return 1;
 	} else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
 		   && ((cr4 ^ old_cr4) & pdptr_bits)
 		   && !load_pdptrs(vcpu, vcpu->arch.walk_mmu,
@@ -944,7 +1002,7 @@
 	if (kvm_x86_ops->set_cr4(vcpu, cr4))
 		return 1;
 
-	if (((cr4 ^ old_cr4) & pdptr_bits) ||
+	if (((cr4 ^ old_cr4) & mmu_role_bits) ||
 	    (!(cr4 & X86_CR4_PCIDE) && (old_cr4 & X86_CR4_PCIDE)))
 		kvm_mmu_reset_context(vcpu);
 
@@ -1053,9 +1111,11 @@
 
 static int __kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val)
 {
+	size_t size = ARRAY_SIZE(vcpu->arch.db);
+
 	switch (dr) {
 	case 0 ... 3:
-		vcpu->arch.db[dr] = val;
+		vcpu->arch.db[array_index_nospec(dr, size)] = val;
 		if (!(vcpu->guest_debug & KVM_GUESTDBG_USE_HW_BP))
 			vcpu->arch.eff_db[dr] = val;
 		break;
@@ -1092,9 +1152,11 @@
 
 int kvm_get_dr(struct kvm_vcpu *vcpu, int dr, unsigned long *val)
 {
+	size_t size = ARRAY_SIZE(vcpu->arch.db);
+
 	switch (dr) {
 	case 0 ... 3:
-		*val = vcpu->arch.db[dr];
+		*val = vcpu->arch.db[array_index_nospec(dr, size)];
 		break;
 	case 4:
 		/* fall through */
@@ -1327,10 +1389,15 @@
 	 * If TSX is disabled on the system, guests are also mitigated against
 	 * TAA and clear CPU buffer mitigation is not required for guests.
 	 */
-	if (boot_cpu_has_bug(X86_BUG_TAA) && boot_cpu_has(X86_FEATURE_RTM) &&
-	    (data & ARCH_CAP_TSX_CTRL_MSR))
+	if (!boot_cpu_has(X86_FEATURE_RTM))
+		data &= ~ARCH_CAP_TAA_NO;
+	else if (!boot_cpu_has_bug(X86_BUG_TAA))
+		data |= ARCH_CAP_TAA_NO;
+	else if (data & ARCH_CAP_TSX_CTRL_MSR)
 		data &= ~ARCH_CAP_MDS_NO;
 
+	/* KVM does not emulate MSR_IA32_TSX_CTRL.  */
+	data &= ~ARCH_CAP_TSX_CTRL_MSR;
 	return data;
 }
 
@@ -2484,7 +2551,10 @@
 	default:
 		if (msr >= MSR_IA32_MC0_CTL &&
 		    msr < MSR_IA32_MCx_CTL(bank_num)) {
-			u32 offset = msr - MSR_IA32_MC0_CTL;
+			u32 offset = array_index_nospec(
+				msr - MSR_IA32_MC0_CTL,
+				MSR_IA32_MCx_CTL(bank_num) - MSR_IA32_MC0_CTL);
+
 			/* only 0 or all 1s can be written to IA32_MCi_CTL
 			 * some Linux kernels though clear bit 10 in bank 4 to
 			 * workaround a BIOS/GART TBL issue on AMD K8s, ignore
@@ -2580,45 +2650,47 @@
 
 static void record_steal_time(struct kvm_vcpu *vcpu)
 {
+	struct kvm_host_map map;
+	struct kvm_steal_time *st;
+
 	if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
 		return;
 
-	if (unlikely(kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time))))
+	/* -EAGAIN is returned in atomic context so we can just return. */
+	if (kvm_map_gfn(vcpu, vcpu->arch.st.msr_val >> PAGE_SHIFT,
+			&map, &vcpu->arch.st.cache, false))
 		return;
 
+	st = map.hva +
+		offset_in_page(vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS);
+
 	/*
 	 * Doing a TLB flush here, on the guest's behalf, can avoid
 	 * expensive IPIs.
 	 */
 	trace_kvm_pv_tlb_flush(vcpu->vcpu_id,
-		vcpu->arch.st.steal.preempted & KVM_VCPU_FLUSH_TLB);
-	if (xchg(&vcpu->arch.st.steal.preempted, 0) & KVM_VCPU_FLUSH_TLB)
+		st->preempted & KVM_VCPU_FLUSH_TLB);
+	if (xchg(&st->preempted, 0) & KVM_VCPU_FLUSH_TLB)
 		kvm_vcpu_flush_tlb(vcpu, false);
 
-	if (vcpu->arch.st.steal.version & 1)
-		vcpu->arch.st.steal.version += 1;  /* first time write, random junk */
+	vcpu->arch.st.preempted = 0;
 
-	vcpu->arch.st.steal.version += 1;
+	if (st->version & 1)
+		st->version += 1;  /* first time write, random junk */
 
-	kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
+	st->version += 1;
 
 	smp_wmb();
 
-	vcpu->arch.st.steal.steal += current->sched_info.run_delay -
+	st->steal += current->sched_info.run_delay -
 		vcpu->arch.st.last_steal;
 	vcpu->arch.st.last_steal = current->sched_info.run_delay;
 
-	kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
-
 	smp_wmb();
 
-	vcpu->arch.st.steal.version += 1;
+	st->version += 1;
 
-	kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
+	kvm_unmap_gfn(vcpu, &map, &vcpu->arch.st.cache, true, false);
 }
 
 int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
@@ -2685,7 +2757,7 @@
 		return kvm_mtrr_set_msr(vcpu, msr, data);
 	case MSR_IA32_APICBASE:
 		return kvm_set_apic_base(vcpu, msr_info);
-	case APIC_BASE_MSR ... APIC_BASE_MSR + 0x3ff:
+	case APIC_BASE_MSR ... APIC_BASE_MSR + 0xff:
 		return kvm_x2apic_msr_write(vcpu, msr, data);
 	case MSR_IA32_TSCDEADLINE:
 		kvm_set_lapic_tscdeadline_msr(vcpu, data);
@@ -2771,11 +2843,6 @@
 		if (data & KVM_STEAL_RESERVED_MASK)
 			return 1;
 
-		if (kvm_gfn_to_hva_cache_init(vcpu->kvm, &vcpu->arch.st.stime,
-						data & KVM_STEAL_VALID_BITS,
-						sizeof(struct kvm_steal_time)))
-			return 1;
-
 		vcpu->arch.st.msr_val = data;
 
 		if (!(data & KVM_MSR_ENABLED))
@@ -2911,7 +2978,10 @@
 	default:
 		if (msr >= MSR_IA32_MC0_CTL &&
 		    msr < MSR_IA32_MCx_CTL(bank_num)) {
-			u32 offset = msr - MSR_IA32_MC0_CTL;
+			u32 offset = array_index_nospec(
+				msr - MSR_IA32_MC0_CTL,
+				MSR_IA32_MCx_CTL(bank_num) - MSR_IA32_MC0_CTL);
+
 			data = vcpu->arch.mce_banks[offset];
 			break;
 		}
@@ -2991,7 +3061,7 @@
 	case MSR_IA32_APICBASE:
 		msr_info->data = kvm_get_apic_base(vcpu);
 		break;
-	case APIC_BASE_MSR ... APIC_BASE_MSR + 0x3ff:
+	case APIC_BASE_MSR ... APIC_BASE_MSR + 0xff:
 		return kvm_x2apic_msr_read(vcpu, msr_info->index, &msr_info->data);
 		break;
 	case MSR_IA32_TSCDEADLINE:
@@ -3437,10 +3507,6 @@
 
 	kvm_x86_ops->vcpu_load(vcpu, cpu);
 
-	fpregs_assert_state_consistent();
-	if (test_thread_flag(TIF_NEED_FPU_LOAD))
-		switch_fpu_return();
-
 	/* Apply any externally detected TSC adjustments (due to suspend) */
 	if (unlikely(vcpu->arch.tsc_offset_adjustment)) {
 		adjust_tsc_offset_host(vcpu, vcpu->arch.tsc_offset_adjustment);
@@ -3480,15 +3546,25 @@
 
 static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu)
 {
+	struct kvm_host_map map;
+	struct kvm_steal_time *st;
+
 	if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
 		return;
 
-	vcpu->arch.st.steal.preempted = KVM_VCPU_PREEMPTED;
+	if (vcpu->arch.st.preempted)
+		return;
+
+	if (kvm_map_gfn(vcpu, vcpu->arch.st.msr_val >> PAGE_SHIFT, &map,
+			&vcpu->arch.st.cache, true))
+		return;
+
+	st = map.hva +
+		offset_in_page(vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS);
+
+	st->preempted = vcpu->arch.st.preempted = KVM_VCPU_PREEMPTED;
 
-	kvm_write_guest_offset_cached(vcpu->kvm, &vcpu->arch.st.stime,
-			&vcpu->arch.st.steal.preempted,
-			offsetof(struct kvm_steal_time, preempted),
-			sizeof(vcpu->arch.st.steal.preempted));
+	kvm_unmap_gfn(vcpu, &map, &vcpu->arch.st.cache, true, true);
 }
 
 void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
@@ -3549,21 +3625,23 @@
 
 static int kvm_cpu_accept_dm_intr(struct kvm_vcpu *vcpu)
 {
+	/*
+	 * We can accept userspace's request for interrupt injection
+	 * as long as we have a place to store the interrupt number.
+	 * The actual injection will happen when the CPU is able to
+	 * deliver the interrupt.
+	 */
+	if (kvm_cpu_has_extint(vcpu))
+		return false;
+
+	/* Acknowledging ExtINT does not happen if LINT0 is masked.  */
 	return (!lapic_in_kernel(vcpu) ||
 		kvm_apic_accept_pic_intr(vcpu));
 }
 
-/*
- * if userspace requested an interrupt window, check that the
- * interrupt window is open.
- *
- * No need to exit to userspace if we already have an interrupt queued.
- */
 static int kvm_vcpu_ready_for_interrupt_injection(struct kvm_vcpu *vcpu)
 {
 	return kvm_arch_interrupt_allowed(vcpu) &&
-		!kvm_cpu_has_interrupt(vcpu) &&
-		!kvm_event_needs_reinjection(vcpu) &&
 		kvm_cpu_accept_dm_intr(vcpu);
 }
 
@@ -3624,7 +3702,7 @@
 	unsigned bank_num = mcg_cap & 0xff, bank;
 
 	r = -EINVAL;
-	if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS)
+	if (!bank_num || bank_num > KVM_MAX_MCE_BANKS)
 		goto out;
 	if (mcg_cap & ~(kvm_mce_cap_supported | 0xff | 0xff0000))
 		goto out;
@@ -3695,6 +3773,10 @@
 {
 	process_nmi(vcpu);
 
+
+	if (kvm_check_request(KVM_REQ_SMI, vcpu))
+		process_smi(vcpu);
+
 	/*
 	 * The API doesn't provide the instruction length for software
 	 * exceptions, so don't report them. As long as the guest RIP
@@ -4421,6 +4503,7 @@
 	case KVM_SET_NESTED_STATE: {
 		struct kvm_nested_state __user *user_kvm_nested_state = argp;
 		struct kvm_nested_state kvm_state;
+		int idx;
 
 		r = -EINVAL;
 		if (!kvm_x86_ops->set_nested_state)
@@ -4444,7 +4527,9 @@
 		    && !(kvm_state.flags & KVM_STATE_NESTED_GUEST_MODE))
 			break;
 
+		idx = srcu_read_lock(&vcpu->kvm->srcu);
 		r = kvm_x86_ops->set_nested_state(vcpu, user_kvm_nested_state, &kvm_state);
+		srcu_read_unlock(&vcpu->kvm->srcu, idx);
 		break;
 	}
 	case KVM_GET_SUPPORTED_HV_CPUID: {
@@ -4973,10 +5058,13 @@
 		r = -EFAULT;
 		if (copy_from_user(&u.ps, argp, sizeof(u.ps)))
 			goto out;
+		mutex_lock(&kvm->lock);
 		r = -ENXIO;
 		if (!kvm->arch.vpit)
-			goto out;
+			goto set_pit_out;
 		r = kvm_vm_ioctl_set_pit(kvm, &u.ps);
+set_pit_out:
+		mutex_unlock(&kvm->lock);
 		break;
 	}
 	case KVM_GET_PIT2: {
@@ -4996,10 +5084,13 @@
 		r = -EFAULT;
 		if (copy_from_user(&u.ps2, argp, sizeof(u.ps2)))
 			goto out;
+		mutex_lock(&kvm->lock);
 		r = -ENXIO;
 		if (!kvm->arch.vpit)
-			goto out;
+			goto set_pit2_out;
 		r = kvm_vm_ioctl_set_pit2(kvm, &u.ps2);
+set_pit2_out:
+		mutex_unlock(&kvm->lock);
 		break;
 	}
 	case KVM_REINJECT_CONTROL: {
@@ -5151,6 +5242,10 @@
 			if (!kvm_x86_ops->rdtscp_supported())
 				continue;
 			break;
+		case MSR_IA32_UMWAIT_CONTROL:
+			if (!boot_cpu_has(X86_FEATURE_WAITPKG))
+				continue;
+			break;
 		case MSR_IA32_RTIT_CTL:
 		case MSR_IA32_RTIT_STATUS:
 			if (!kvm_x86_ops->pt_supported())
@@ -6356,11 +6451,11 @@
 	return 1;
 }
 
-static bool reexecute_instruction(struct kvm_vcpu *vcpu, gva_t cr2,
+static bool reexecute_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
 				  bool write_fault_to_shadow_pgtable,
 				  int emulation_type)
 {
-	gpa_t gpa = cr2;
+	gpa_t gpa = cr2_or_gpa;
 	kvm_pfn_t pfn;
 
 	if (!(emulation_type & EMULTYPE_ALLOW_RETRY))
@@ -6374,7 +6469,7 @@
 		 * Write permission should be allowed since only
 		 * write access need to be emulated.
 		 */
-		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);
+		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2_or_gpa, NULL);
 
 		/*
 		 * If the mapping is invalid in guest, let cpu retry
@@ -6431,10 +6526,10 @@
 }
 
 static bool retry_instruction(struct x86_emulate_ctxt *ctxt,
-			      unsigned long cr2,  int emulation_type)
+			      gpa_t cr2_or_gpa,  int emulation_type)
 {
 	struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);
-	unsigned long last_retry_eip, last_retry_addr, gpa = cr2;
+	unsigned long last_retry_eip, last_retry_addr, gpa = cr2_or_gpa;
 
 	last_retry_eip = vcpu->arch.last_retry_eip;
 	last_retry_addr = vcpu->arch.last_retry_addr;
@@ -6463,14 +6558,14 @@
 	if (x86_page_table_writing_insn(ctxt))
 		return false;
 
-	if (ctxt->eip == last_retry_eip && last_retry_addr == cr2)
+	if (ctxt->eip == last_retry_eip && last_retry_addr == cr2_or_gpa)
 		return false;
 
 	vcpu->arch.last_retry_eip = ctxt->eip;
-	vcpu->arch.last_retry_addr = cr2;
+	vcpu->arch.last_retry_addr = cr2_or_gpa;
 
 	if (!vcpu->arch.mmu->direct_map)
-		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);
+		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2_or_gpa, NULL);
 
 	kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa));
 
@@ -6616,11 +6711,8 @@
 	return false;
 }
 
-int x86_emulate_instruction(struct kvm_vcpu *vcpu,
-			    unsigned long cr2,
-			    int emulation_type,
-			    void *insn,
-			    int insn_len)
+int x86_emulate_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
+			    int emulation_type, void *insn, int insn_len)
 {
 	int r;
 	struct x86_emulate_ctxt *ctxt = &vcpu->arch.emulate_ctxt;
@@ -6666,8 +6758,9 @@
 				kvm_queue_exception(vcpu, UD_VECTOR);
 				return 1;
 			}
-			if (reexecute_instruction(vcpu, cr2, write_fault_to_spt,
-						emulation_type))
+			if (reexecute_instruction(vcpu, cr2_or_gpa,
+						  write_fault_to_spt,
+						  emulation_type))
 				return 1;
 			if (ctxt->have_exception) {
 				/*
@@ -6701,7 +6794,7 @@
 		return 1;
 	}
 
-	if (retry_instruction(ctxt, cr2, emulation_type))
+	if (retry_instruction(ctxt, cr2_or_gpa, emulation_type))
 		return 1;
 
 	/* this is needed for vmware backdoor interface to work since it
@@ -6713,7 +6806,7 @@
 
 restart:
 	/* Save the faulting GPA (cr2) in the address field */
-	ctxt->exception.address = cr2;
+	ctxt->exception.address = cr2_or_gpa;
 
 	r = x86_emulate_insn(ctxt);
 
@@ -6721,7 +6814,7 @@
 		return 1;
 
 	if (r == EMULATION_FAILED) {
-		if (reexecute_instruction(vcpu, cr2, write_fault_to_spt,
+		if (reexecute_instruction(vcpu, cr2_or_gpa, write_fault_to_spt,
 					emulation_type))
 			return 1;
 
@@ -6760,7 +6853,7 @@
 		if (!ctxt->have_exception ||
 		    exception_type(ctxt->exception.vector) == EXCPT_TRAP) {
 			kvm_rip_write(vcpu, ctxt->eip);
-			if (r && ctxt->tf)
+			if (r && (ctxt->tf || (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP)))
 				r = kvm_vcpu_do_singlestep(vcpu);
 			__kvm_set_rflags(vcpu, ctxt->eflags);
 		}
@@ -7182,7 +7275,7 @@
 		goto out;
 	}
 	if (ops->disabled_by_bios()) {
-		printk(KERN_ERR "kvm: disabled by bios\n");
+		printk(KERN_WARNING "kvm: disabled by bios\n");
 		r = -EOPNOTSUPP;
 		goto out;
 	}
@@ -7496,7 +7589,7 @@
 	kvm_x86_ops->update_cr8_intercept(vcpu, tpr, max_irr);
 }
 
-static int inject_pending_event(struct kvm_vcpu *vcpu, bool req_int_win)
+static int inject_pending_event(struct kvm_vcpu *vcpu)
 {
 	int r;
 
@@ -7532,7 +7625,7 @@
 	 * from L2 to L1.
 	 */
 	if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) {
-		r = kvm_x86_ops->check_nested_events(vcpu, req_int_win);
+		r = kvm_x86_ops->check_nested_events(vcpu);
 		if (r != 0)
 			return r;
 	}
@@ -7594,7 +7687,7 @@
 		 * KVM_REQ_EVENT only on certain events and not unconditionally?
 		 */
 		if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) {
-			r = kvm_x86_ops->check_nested_events(vcpu, req_int_win);
+			r = kvm_x86_ops->check_nested_events(vcpu);
 			if (r != 0)
 				return r;
 		}
@@ -7905,9 +7998,8 @@
 	kvm_x86_ops->load_eoi_exitmap(vcpu, eoi_exit_bitmap);
 }
 
-int kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
-		unsigned long start, unsigned long end,
-		bool blockable)
+void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
+					    unsigned long start, unsigned long end)
 {
 	unsigned long apic_address;
 
@@ -7918,8 +8010,6 @@
 	apic_address = gfn_to_hva(kvm, APIC_DEFAULT_PHYS_BASE >> PAGE_SHIFT);
 	if (start <= apic_address && apic_address < end)
 		kvm_make_all_cpus_request(kvm, KVM_REQ_APIC_PAGE_RELOAD);
-
-	return 0;
 }
 
 void kvm_vcpu_reload_apic_access_page(struct kvm_vcpu *vcpu)
@@ -8071,7 +8161,7 @@
 			goto out;
 		}
 
-		if (inject_pending_event(vcpu, req_int_win) != 0)
+		if (inject_pending_event(vcpu) != 0)
 			req_immediate_exit = true;
 		else {
 			/* Enable SMI/NMI/IRQ window open exits if needed.
@@ -8163,8 +8253,12 @@
 	trace_kvm_entry(vcpu->vcpu_id);
 	guest_enter_irqoff();
 
-	/* The preempt notifier should have taken care of the FPU already.  */
-	WARN_ON_ONCE(test_thread_flag(TIF_NEED_FPU_LOAD));
+	/* Save host pkru register if supported */
+	vcpu->arch.host_pkru = read_pkru();
+
+	fpregs_assert_state_consistent();
+	if (test_thread_flag(TIF_NEED_FPU_LOAD))
+		switch_fpu_return();
 
 	if (unlikely(vcpu->arch.switch_db_regs)) {
 		set_debugreg(0, 7);
@@ -8256,6 +8350,8 @@
 	return r;
 
 cancel_injection:
+	if (req_immediate_exit)
+		kvm_make_request(KVM_REQ_EVENT, vcpu);
 	kvm_x86_ops->cancel_injection(vcpu);
 	if (unlikely(vcpu->arch.apic_attention))
 		kvm_lapic_sync_from_vapic(vcpu);
@@ -8300,7 +8396,7 @@
 static inline bool kvm_vcpu_running(struct kvm_vcpu *vcpu)
 {
 	if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events)
-		kvm_x86_ops->check_nested_events(vcpu, false);
+		kvm_x86_ops->check_nested_events(vcpu);
 
 	return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&
 		!vcpu->arch.apf.halted);
@@ -8436,12 +8532,26 @@
 	return 0;
 }
 
+static void kvm_save_current_fpu(struct fpu *fpu)
+{
+	/*
+	 * If the target FPU state is not resident in the CPU registers, just
+	 * memcpy() from current, else save CPU state directly to the target.
+	 */
+	if (test_thread_flag(TIF_NEED_FPU_LOAD))
+		memcpy(&fpu->state, &current->thread.fpu.state,
+		       fpu_kernel_xstate_size);
+	else
+		copy_fpregs_to_fpstate(fpu);
+}
+
 /* Swap (qemu) user FPU context for the guest FPU context. */
 static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
 {
 	fpregs_lock();
 
-	copy_fpregs_to_fpstate(vcpu->arch.user_fpu);
+	kvm_save_current_fpu(vcpu->arch.user_fpu);
+
 	/* PKRU is separately restored in kvm_x86_ops->run.  */
 	__copy_kernel_to_fpregs(&vcpu->arch.guest_fpu->state,
 				~XFEATURE_MASK_PKRU);
@@ -8457,7 +8567,8 @@
 {
 	fpregs_lock();
 
-	copy_fpregs_to_fpstate(vcpu->arch.guest_fpu);
+	kvm_save_current_fpu(vcpu->arch.guest_fpu);
+
 	copy_kernel_to_fpregs(&vcpu->arch.user_fpu->state);
 
 	fpregs_mark_activate();
@@ -8679,6 +8790,8 @@
 				    struct kvm_mp_state *mp_state)
 {
 	vcpu_load(vcpu);
+	if (kvm_mpx_supported())
+		kvm_load_guest_fpu(vcpu);
 
 	kvm_apic_accept_events(vcpu);
 	if (vcpu->arch.mp_state == KVM_MP_STATE_HALTED &&
@@ -8687,6 +8800,8 @@
 	else
 		mp_state->mp_state = vcpu->arch.mp_state;
 
+	if (kvm_mpx_supported())
+		kvm_put_guest_fpu(vcpu);
 	vcpu_put(vcpu);
 	return 0;
 }
@@ -9046,6 +9161,9 @@
 void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
 {
 	void *wbinvd_dirty_mask = vcpu->arch.wbinvd_dirty_mask;
+	struct gfn_to_pfn_cache *cache = &vcpu->arch.st.cache;
+
+	kvm_release_pfn(cache->pfn, cache->dirty, cache);
 
 	kvmclock_reset(vcpu);
 
@@ -9110,13 +9228,7 @@
 
 void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
 {
-	vcpu->arch.apf.msr_val = 0;
-
-	vcpu_load(vcpu);
-	kvm_mmu_unload(vcpu);
-	vcpu_put(vcpu);
-
-	kvm_x86_ops->vcpu_free(vcpu);
+	kvm_arch_vcpu_free(vcpu);
 }
 
 void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
@@ -9308,6 +9420,8 @@
 	if (r != 0)
 		return r;
 
+	cr4_reserved_bits = kvm_host_cr4_reserved_bits(&boot_cpu_data);
+
 	if (kvm_has_tsc_control) {
 		/*
 		 * Make sure the user can only configure tsc_khz values that
@@ -9648,6 +9762,13 @@
 {
 	int i;
 
+	/*
+	 * Clear out the previous array pointers for the KVM_MR_MOVE case.  The
+	 * old arrays will be freed by __kvm_set_memory_region() if installing
+	 * the new memslot is successful.
+	 */
+	memset(&slot->arch, 0, sizeof(slot->arch));
+
 	for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) {
 		struct kvm_lpage_info *linfo;
 		unsigned long ugfn;
@@ -9710,11 +9831,18 @@
 
 void kvm_arch_memslots_updated(struct kvm *kvm, u64 gen)
 {
+	struct kvm_vcpu *vcpu;
+	int i;
+
 	/*
 	 * memslots->generation has been incremented.
 	 * mmio generation may have reached its maximum value.
 	 */
 	kvm_mmu_invalidate_mmio_sptes(kvm, gen);
+
+	/* Force re-initialization of steal_time cache */
+	kvm_for_each_vcpu(i, vcpu, kvm)
+		kvm_vcpu_kick(vcpu);
 }
 
 int kvm_arch_prepare_memory_region(struct kvm *kvm,
@@ -9722,6 +9850,10 @@
 				const struct kvm_userspace_memory_region *mem,
 				enum kvm_mr_change change)
 {
+	if (change == KVM_MR_MOVE)
+		return kvm_arch_create_memslot(kvm, memslot,
+					       mem->memory_size >> PAGE_SHIFT);
+
 	return 0;
 }
 
@@ -9966,7 +10098,7 @@
 	      work->arch.cr3 != vcpu->arch.mmu->get_cr3(vcpu))
 		return;
 
-	vcpu->arch.mmu->page_fault(vcpu, work->gva, 0, true);
+	vcpu->arch.mmu->page_fault(vcpu, work->cr2_or_gpa, 0, true);
 }
 
 static inline u32 kvm_async_pf_hash_fn(gfn_t gfn)
@@ -10079,7 +10211,7 @@
 {
 	struct x86_exception fault;
 
-	trace_kvm_async_pf_not_present(work->arch.token, work->gva);
+	trace_kvm_async_pf_not_present(work->arch.token, work->cr2_or_gpa);
 	kvm_add_async_pf_gfn(vcpu, work->arch.gfn);
 
 	if (kvm_can_deliver_async_pf(vcpu) &&
@@ -10114,7 +10246,7 @@
 		work->arch.token = ~0; /* broadcast wakeup */
 	else
 		kvm_del_async_pf_gfn(vcpu, work->arch.gfn);
-	trace_kvm_async_pf_ready(work->arch.token, work->gva);
+	trace_kvm_async_pf_ready(work->arch.token, work->cr2_or_gpa);
 
 	if (vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED &&
 	    !apf_get_user(vcpu, &val)) {
@@ -10245,6 +10377,32 @@
 EXPORT_SYMBOL_GPL(kvm_arch_no_poll);
 
 
+int kvm_spec_ctrl_test_value(u64 value)
+{
+	/*
+	 * test that setting IA32_SPEC_CTRL to given value
+	 * is allowed by the host processor
+	 */
+
+	u64 saved_value;
+	unsigned long flags;
+	int ret = 0;
+
+	local_irq_save(flags);
+
+	if (rdmsrl_safe(MSR_IA32_SPEC_CTRL, &saved_value))
+		ret = 1;
+	else if (wrmsrl_safe(MSR_IA32_SPEC_CTRL, value))
+		ret = 1;
+	else
+		wrmsrl(MSR_IA32_SPEC_CTRL, saved_value);
+
+	local_irq_restore(flags);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(kvm_spec_ctrl_test_value);
+
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_exit);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_fast_mmio);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_inj_virq);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/kvm/x86.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/kvm/x86.h
@@ -286,7 +286,7 @@
 bool kvm_mtrr_check_gfn_range_consistency(struct kvm_vcpu *vcpu, gfn_t gfn,
 					  int page_num);
 bool kvm_vector_hashing_enabled(void);
-int x86_emulate_instruction(struct kvm_vcpu *vcpu, unsigned long cr2,
+int x86_emulate_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
 			    int emulation_type, void *insn, int insn_len);
 
 #define KVM_SUPPORTED_XCR0     (XFEATURE_MASK_FP | XFEATURE_MASK_SSE \
@@ -368,5 +368,6 @@
 
 void kvm_load_guest_xcr0(struct kvm_vcpu *vcpu);
 void kvm_put_guest_xcr0(struct kvm_vcpu *vcpu);
+int kvm_spec_ctrl_test_value(u64 value);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/insn-eval.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/insn-eval.c
@@ -70,14 +70,15 @@
 {
 	int idx = INAT_SEG_REG_DEFAULT;
 	int num_overrides = 0, i;
+	insn_byte_t p;
 
 	insn_get_prefixes(insn);
 
 	/* Look for any segment override prefixes. */
-	for (i = 0; i < insn->prefixes.nbytes; i++) {
+	for_each_insn_prefix(insn, i, p) {
 		insn_attr_t attr;
 
-		attr = inat_get_opcode_attribute(insn->prefixes.bytes[i]);
+		attr = inat_get_opcode_attribute(p);
 		switch (attr) {
 		case INAT_MAKE_PREFIX(INAT_PFX_CS):
 			idx = INAT_SEG_REG_CS;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/memcpy_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/memcpy_64.S
@@ -15,8 +15,6 @@
  * to a jmp to memcpy_erms which does the REP; MOVSB mem copy.
  */
 
-.weak memcpy
-
 /*
  * memcpy - Copy a memory block.
  *
@@ -29,7 +27,7 @@
  * rax original destination
  */
 ENTRY(__memcpy)
-ENTRY(memcpy)
+SYM_FUNC_START_WEAK(memcpy)
 	ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
 		      "jmp memcpy_erms", X86_FEATURE_ERMS
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/memmove_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/memmove_64.S
@@ -24,9 +24,7 @@
  * Output:
  * rax: dest
  */
-.weak memmove
-
-ENTRY(memmove)
+SYM_FUNC_START_WEAK(memmove)
 ENTRY(__memmove)
 
 	/* Handle more 32 bytes in loop */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/memset_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/memset_64.S
@@ -6,8 +6,6 @@
 #include <asm/alternative-asm.h>
 #include <asm/export.h>
 
-.weak memset
-
 /*
  * ISO C memset - set a memory block to a byte value. This function uses fast
  * string to get better performance than the original function. The code is
@@ -19,7 +17,7 @@
  *
  * rax   original destination
  */
-ENTRY(memset)
+SYM_FUNC_START_WEAK(memset)
 ENTRY(__memset)
 	/*
 	 * Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/mmx_32.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/mmx_32.c
@@ -26,6 +26,16 @@
 #include <asm/fpu/api.h>
 #include <asm/asm.h>
 
+/*
+ * Use KFPU_387.  MMX instructions are not affected by MXCSR,
+ * but both AMD and Intel documentation states that even integer MMX
+ * operations will result in #MF if an exception is pending in FCW.
+ *
+ * EMMS is not needed afterwards because, after calling kernel_fpu_end(),
+ * any subsequent user of the 387 stack will reinitialize it using
+ * KFPU_387.
+ */
+
 void *_mmx_memcpy(void *to, const void *from, size_t len)
 {
 	void *p;
@@ -37,7 +47,7 @@
 	p = to;
 	i = len >> 6; /* len/64 */
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"1: prefetch (%0)\n"		/* This set is 28 bytes */
@@ -127,7 +137,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"  pxor %%mm0, %%mm0\n" : :
@@ -160,7 +170,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	/*
 	 * maybe the prefetch stuff can go before the expensive fnsave...
@@ -247,7 +257,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"  pxor %%mm0, %%mm0\n" : :
@@ -282,7 +292,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"1: prefetch (%0)\n"
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/usercopy_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/usercopy_64.c
@@ -24,6 +24,7 @@
 	asm volatile(
 		"	testq  %[size8],%[size8]\n"
 		"	jz     4f\n"
+		"	.align 16\n"
 		"0:	movq $0,(%[dst])\n"
 		"	addq   $8,%[dst]\n"
 		"	decl %%ecx ; jnz   0b\n"
@@ -119,7 +120,7 @@
 	 */
 	if (size < 8) {
 		if (!IS_ALIGNED(dest, 4) || size != 4)
-			clean_cache_range(dst, 1);
+			clean_cache_range(dst, size);
 	} else {
 		if (!IS_ALIGNED(dest, 8)) {
 			dest = ALIGN(dest, boot_cpu_data.x86_clflush_size);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/lib/x86-opcode-map.txt
+++ linux-gkeop-5.4-5.4.0/arch/x86/lib/x86-opcode-map.txt
@@ -333,7 +333,7 @@
 06: CLTS
 07: SYSRET (o64)
 08: INVD
-09: WBINVD
+09: WBINVD | WBNOINVD (F3)
 0a:
 0b: UD2 (1B)
 0c:
@@ -364,7 +364,7 @@
 # a ModR/M byte.
 1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev
 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
-1c:
+1c: Grp20 (1A),(1C)
 1d:
 1e:
 1f: NOP Ev
@@ -792,6 +792,8 @@
 f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
 f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
 f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
+f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
+f9: MOVDIRI My,Gy
 EndTable
 
 Table: 3-byte opcode 2 (0x0f 0x3a)
@@ -907,7 +909,7 @@
 
 GrpTable: Grp3_2
 0: TEST Ev,Iz
-1:
+1: TEST Ev,Iz
 2: NOT Ev
 3: NEG Ev
 4: MUL rAX,Ev
@@ -943,9 +945,9 @@
 EndTable
 
 GrpTable: Grp7
-0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B)
-1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B)
-2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B)
+0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
+1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
+2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
 3: LIDT Ms
 4: SMSW Mw/Rv
 5: rdpkru (110),(11B) | wrpkru (111),(11B)
@@ -1020,7 +1022,7 @@
 3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
 4: XSAVE | ptwrite Ey (F3),(11B)
 5: XRSTOR | lfence (11B)
-6: XSAVEOPT | clwb (66) | mfence (11B)
+6: XSAVEOPT | clwb (66) | mfence (11B) | TPAUSE Rd (66),(11B) | UMONITOR Rv (F3),(11B) | UMWAIT Rd (F2),(11B)
 7: clflush | clflushopt (66) | sfence (11B)
 EndTable
 
@@ -1051,6 +1053,10 @@
 6: vscatterpf1qps/d Wx (66),(ev)
 EndTable
 
+GrpTable: Grp20
+0: cldemote Mb
+EndTable
+
 # AMD's Prefetch Group
 GrpTable: GrpP
 0: PREFETCH
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/math-emu/fpu_system.h
+++ linux-gkeop-5.4-5.4.0/arch/x86/math-emu/fpu_system.h
@@ -107,6 +107,8 @@
 #define FPU_access_ok(y,z)	if ( !access_ok(y,z) ) \
 				math_abort(FPU_info,SIGSEGV)
 #define FPU_abort		math_abort(FPU_info, SIGSEGV)
+#define FPU_copy_from_user(to, from, n)	\
+		do { if (copy_from_user(to, from, n)) FPU_abort; } while (0)
 
 #undef FPU_IGNORE_CODE_SEGV
 #ifdef FPU_IGNORE_CODE_SEGV
@@ -122,7 +124,7 @@
 #define	FPU_code_access_ok(z) FPU_access_ok((void __user *)FPU_EIP,z)
 #endif
 
-#define FPU_get_user(x,y)       get_user((x),(y))
-#define FPU_put_user(x,y)       put_user((x),(y))
+#define FPU_get_user(x,y) do { if (get_user((x),(y))) FPU_abort; } while (0)
+#define FPU_put_user(x,y) do { if (put_user((x),(y))) FPU_abort; } while (0)
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/math-emu/reg_ld_str.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/math-emu/reg_ld_str.c
@@ -85,7 +85,7 @@
 
 	RE_ENTRANT_CHECK_OFF;
 	FPU_access_ok(s, 10);
-	__copy_from_user(sti_ptr, s, 10);
+	FPU_copy_from_user(sti_ptr, s, 10);
 	RE_ENTRANT_CHECK_ON;
 
 	return FPU_tagof(sti_ptr);
@@ -1126,9 +1126,9 @@
 	/* Copy all registers in stack order. */
 	RE_ENTRANT_CHECK_OFF;
 	FPU_access_ok(s, 80);
-	__copy_from_user(register_base + offset, s, other);
+	FPU_copy_from_user(register_base + offset, s, other);
 	if (offset)
-		__copy_from_user(register_base, s + other, offset);
+		FPU_copy_from_user(register_base, s + other, offset);
 	RE_ENTRANT_CHECK_ON;
 
 	for (i = 0; i < 8; i++) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/math-emu/wm_sqrt.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/math-emu/wm_sqrt.S
@@ -209,7 +209,7 @@
 
 #ifdef PARANOID
 /* It should be possible to get here only if the arg is ffff....ffff */
-	cmp	$0xffffffff,FPU_fsqrt_arg_1
+	cmpl	$0xffffffff,FPU_fsqrt_arg_1
 	jnz	sqrt_stage_2_error
 #endif /* PARANOID */
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/cpu_entry_area.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/cpu_entry_area.c
@@ -178,7 +178,9 @@
 #ifdef CONFIG_X86_32
 	unsigned long start, end;
 
-	BUILD_BUG_ON(CPU_ENTRY_AREA_PAGES * PAGE_SIZE < CPU_ENTRY_AREA_MAP_SIZE);
+	/* The +1 is for the readonly IDT: */
+	BUILD_BUG_ON((CPU_ENTRY_AREA_PAGES+1)*PAGE_SIZE != CPU_ENTRY_AREA_MAP_SIZE);
+	BUILD_BUG_ON(CPU_ENTRY_AREA_TOTAL_SIZE != CPU_ENTRY_AREA_MAP_SIZE);
 	BUG_ON(CPU_ENTRY_AREA_BASE & ~PMD_MASK);
 
 	start = CPU_ENTRY_AREA_BASE;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/fault.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/fault.c
@@ -189,7 +189,7 @@
 	return pmd_k;
 }
 
-void vmalloc_sync_all(void)
+static void vmalloc_sync(void)
 {
 	unsigned long address;
 
@@ -197,7 +197,7 @@
 		return;
 
 	for (address = VMALLOC_START & PMD_MASK;
-	     address >= TASK_SIZE_MAX && address < FIXADDR_TOP;
+	     address >= TASK_SIZE_MAX && address < VMALLOC_END;
 	     address += PMD_SIZE) {
 		struct page *page;
 
@@ -216,6 +216,16 @@
 	}
 }
 
+void vmalloc_sync_mappings(void)
+{
+	vmalloc_sync();
+}
+
+void vmalloc_sync_unmappings(void)
+{
+	vmalloc_sync();
+}
+
 /*
  * 32-bit:
  *
@@ -318,11 +328,23 @@
 
 #else /* CONFIG_X86_64: */
 
-void vmalloc_sync_all(void)
+void vmalloc_sync_mappings(void)
 {
+	/*
+	 * 64-bit mappings might allocate new p4d/pud pages
+	 * that need to be propagated to all tasks' PGDs.
+	 */
 	sync_global_pgds(VMALLOC_START & PGDIR_MASK, VMALLOC_END);
 }
 
+void vmalloc_sync_unmappings(void)
+{
+	/*
+	 * Unmappings never allocate or free p4d/pud pages.
+	 * No work is required here.
+	 */
+}
+
 /*
  * 64-bit:
  *
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/ident_map.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/ident_map.c
@@ -62,6 +62,7 @@
 			  unsigned long addr, unsigned long end)
 {
 	unsigned long next;
+	int result;
 
 	for (; addr < end; addr = next) {
 		p4d_t *p4d = p4d_page + p4d_index(addr);
@@ -73,13 +74,20 @@
 
 		if (p4d_present(*p4d)) {
 			pud = pud_offset(p4d, 0);
-			ident_pud_init(info, pud, addr, next);
+			result = ident_pud_init(info, pud, addr, next);
+			if (result)
+				return result;
+
 			continue;
 		}
 		pud = (pud_t *)info->alloc_pgt_page(info->context);
 		if (!pud)
 			return -ENOMEM;
-		ident_pud_init(info, pud, addr, next);
+
+		result = ident_pud_init(info, pud, addr, next);
+		if (result)
+			return result;
+
 		set_p4d(p4d, __p4d(__pa(pud) | info->kernpg_flag));
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/init.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/init.c
@@ -121,8 +121,6 @@
 	} else {
 		pfn = pgt_buf_end;
 		pgt_buf_end += num;
-		printk(KERN_DEBUG "BRK [%#010lx, %#010lx] PGTABLE\n",
-			pfn << PAGE_SHIFT, (pgt_buf_end << PAGE_SHIFT) - 1);
 	}
 
 	for (i = 0; i < num; i++) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/init_32.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/init_32.c
@@ -779,6 +779,9 @@
 	 * important here.
 	 */
 	set_highmem_pages_init();
+#ifdef CONFIG_HIGHMEM
+	set_default_mem_hotplug_zone(ZONE_HIGHMEM);
+#endif
 
 	/* this will put all low memory onto the freelists */
 	memblock_free_all();
@@ -865,10 +868,8 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/init_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/init_64.c
@@ -1212,10 +1212,8 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct page *page = pfn_to_page(start_pfn) + vmem_altmap_offset(altmap);
-	struct zone *zone = page_zone(page);
 
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 	kernel_physical_mapping_remove(start, start + size);
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/ioremap.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/ioremap.c
@@ -106,6 +106,22 @@
 	return 0;
 }
 
+/*
+ * The EFI runtime services data area is not covered by walk_mem_res(), but must
+ * be mapped encrypted when SEV is active.
+ */
+static void __ioremap_check_other(resource_size_t addr, struct ioremap_desc *desc)
+{
+	if (!sev_active())
+		return;
+
+	if (!IS_ENABLED(CONFIG_EFI))
+		return;
+
+	if (efi_mem_type(addr) == EFI_RUNTIME_SERVICES_DATA)
+		desc->flags |= IORES_MAP_ENCRYPTED;
+}
+
 static int __ioremap_collect_map_flags(struct resource *res, void *arg)
 {
 	struct ioremap_desc *desc = arg;
@@ -124,6 +140,9 @@
  * To avoid multiple resource walks, this function walks resources marked as
  * IORESOURCE_MEM and IORESOURCE_BUSY and looking for system RAM and/or a
  * resource described not as IORES_DESC_NONE (e.g. IORES_DESC_ACPI_TABLES).
+ *
+ * After that, deal with misc other ranges in __ioremap_check_other() which do
+ * not fall into the above category.
  */
 static void __ioremap_check_mem(resource_size_t addr, unsigned long size,
 				struct ioremap_desc *desc)
@@ -135,6 +154,8 @@
 	memset(desc, 0, sizeof(struct ioremap_desc));
 
 	walk_mem_res(start, end, desc, __ioremap_collect_map_flags);
+
+	__ioremap_check_other(addr, desc);
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/mem_encrypt.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/mem_encrypt.c
@@ -375,6 +375,7 @@
 
 	return false;
 }
+EXPORT_SYMBOL_GPL(sev_active);
 
 /* Architecture __weak replacement functions */
 void __init mem_encrypt_free_decrypted_mem(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/mem_encrypt_identity.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/mem_encrypt_identity.c
@@ -45,8 +45,8 @@
 #define PMD_FLAGS_LARGE		(__PAGE_KERNEL_LARGE_EXEC & ~_PAGE_GLOBAL)
 
 #define PMD_FLAGS_DEC		PMD_FLAGS_LARGE
-#define PMD_FLAGS_DEC_WP	((PMD_FLAGS_DEC & ~_PAGE_CACHE_MASK) | \
-				 (_PAGE_PAT | _PAGE_PWT))
+#define PMD_FLAGS_DEC_WP	((PMD_FLAGS_DEC & ~_PAGE_LARGE_CACHE_MASK) | \
+				 (_PAGE_PAT_LARGE | _PAGE_PWT))
 
 #define PMD_FLAGS_ENC		(PMD_FLAGS_LARGE | _PAGE_ENC)
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/mmio-mod.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/mmio-mod.c
@@ -372,7 +372,7 @@
 	int cpu;
 	int err;
 
-	if (downed_cpus == NULL &&
+	if (!cpumask_available(downed_cpus) &&
 	    !alloc_cpumask_var(&downed_cpus, GFP_KERNEL)) {
 		pr_notice("Failed to allocate mask\n");
 		goto out;
@@ -402,7 +402,7 @@
 	int cpu;
 	int err;
 
-	if (downed_cpus == NULL || cpumask_weight(downed_cpus) == 0)
+	if (!cpumask_available(downed_cpus) || cpumask_weight(downed_cpus) == 0)
 		return;
 	pr_notice("Re-enabling CPUs...\n");
 	for_each_cpu(cpu, downed_cpus) {
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/numa_emulation.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/numa_emulation.c
@@ -321,7 +321,7 @@
 					      u64 addr, u64 max_addr, u64 size)
 {
 	return split_nodes_size_interleave_uniform(ei, pi, addr, max_addr, size,
-			0, NULL, NUMA_NO_NODE);
+			0, NULL, 0);
 }
 
 int __init setup_emu2phys_nid(int *dfl_phys_nid)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/pageattr.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/pageattr.c
@@ -42,7 +42,8 @@
 	unsigned long	pfn;
 	unsigned int	flags;
 	unsigned int	force_split		: 1,
-			force_static_prot	: 1;
+			force_static_prot	: 1,
+			force_flush_all		: 1;
 	struct page	**pages;
 };
 
@@ -352,10 +353,10 @@
 		return;
 	}
 
-	if (cpa->numpages <= tlb_single_page_flush_ceiling)
-		on_each_cpu(__cpa_flush_tlb, cpa, 1);
-	else
+	if (cpa->force_flush_all || cpa->numpages > tlb_single_page_flush_ceiling)
 		flush_tlb_all();
+	else
+		on_each_cpu(__cpa_flush_tlb, cpa, 1);
 
 	if (!cache)
 		return;
@@ -1584,6 +1585,8 @@
 		alias_cpa.flags &= ~(CPA_PAGES_ARRAY | CPA_ARRAY);
 		alias_cpa.curpage = 0;
 
+		cpa->force_flush_all = 1;
+
 		ret = __change_page_attr_set_clr(&alias_cpa, 0);
 		if (ret)
 			return ret;
@@ -1604,6 +1607,7 @@
 		alias_cpa.flags &= ~(CPA_PAGES_ARRAY | CPA_ARRAY);
 		alias_cpa.curpage = 0;
 
+		cpa->force_flush_all = 1;
 		/*
 		 * The high mapping range is imprecise, so ignore the
 		 * return value.
@@ -2215,7 +2219,7 @@
 		.pgd = pgd,
 		.numpages = numpages,
 		.mask_set = __pgprot(0),
-		.mask_clr = __pgprot(0),
+		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW)),
 		.flags = 0,
 	};
 
@@ -2224,12 +2228,6 @@
 	if (!(__supported_pte_mask & _PAGE_NX))
 		goto out;
 
-	if (!(page_flags & _PAGE_NX))
-		cpa.mask_clr = __pgprot(_PAGE_NX);
-
-	if (!(page_flags & _PAGE_RW))
-		cpa.mask_clr = __pgprot(_PAGE_RW);
-
 	if (!(page_flags & _PAGE_ENC))
 		cpa.mask_clr = pgprot_encrypted(cpa.mask_clr);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/pat.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/pat.c
@@ -1132,12 +1132,14 @@
 
 static void *memtype_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 {
+	kfree(v);
 	++*pos;
 	return memtype_get_idx(*pos);
 }
 
 static void memtype_seq_stop(struct seq_file *seq, void *v)
 {
+	kfree(v);
 }
 
 static int memtype_seq_show(struct seq_file *seq, void *v)
@@ -1146,7 +1148,6 @@
 
 	seq_printf(seq, "%s @ 0x%Lx-0x%Lx\n", cattr_name(print_entry->type),
 			print_entry->start, print_entry->end);
-	kfree(print_entry);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/pgtable.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/pgtable.c
@@ -643,8 +643,8 @@
 	fixmaps_set++;
 }
 
-void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
-		       pgprot_t flags)
+void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
+		       phys_addr_t phys, pgprot_t flags)
 {
 	/* Sanitize 'prot' against any unsupported bits: */
 	pgprot_val(flags) &= __default_kernel_pte_mask;
@@ -826,6 +826,8 @@
 	}
 
 	free_page((unsigned long)pmd_sv);
+
+	pgtable_pmd_page_dtor(virt_to_page(pmd));
 	free_page((unsigned long)pmd);
 
 	return 1;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/mm/tlb.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/mm/tlb.c
@@ -327,8 +327,14 @@
 	/*
 	 * The membarrier system call requires a full memory barrier and
 	 * core serialization before returning to user-space, after
-	 * storing to rq->curr. Writing to CR3 provides that full
-	 * memory barrier and core serializing instruction.
+	 * storing to rq->curr, when changing mm.  This is because
+	 * membarrier() sends IPIs to all CPUs that are in the target mm
+	 * to make them issue memory barriers.  However, if another CPU
+	 * switches to/from the target mm concurrently with
+	 * membarrier(), it can cause that CPU not to receive an IPI
+	 * when it really should issue a memory barrier.  Writing to CR3
+	 * provides that full memory barrier and core serializing
+	 * instruction.
 	 */
 	if (real_prev == next) {
 		VM_WARN_ON(this_cpu_read(cpu_tlbstate.ctxs[prev_asid].ctx_id) !=
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/net/bpf_jit_comp.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/net/bpf_jit_comp.c
@@ -138,6 +138,19 @@
 			     BIT(BPF_REG_AX));
 }
 
+/*
+ * is_ereg_8l() == true if BPF register 'reg' is mapped to access x86-64
+ * lower 8-bit registers dil,sil,bpl,spl,r8b..r15b, which need extra byte
+ * of encoding. al,cl,dl,bl have simpler encoding.
+ */
+static bool is_ereg_8l(u32 reg)
+{
+	return is_ereg(reg) ||
+	    (1 << reg) & (BIT(BPF_REG_1) |
+			  BIT(BPF_REG_2) |
+			  BIT(BPF_REG_FP));
+}
+
 static bool is_axreg(u32 reg)
 {
 	return reg == BPF_REG_0;
@@ -748,9 +761,8 @@
 			/* STX: *(u8*)(dst_reg + off) = src_reg */
 		case BPF_STX | BPF_MEM | BPF_B:
 			/* Emit 'mov byte ptr [rax + off], al' */
-			if (is_ereg(dst_reg) || is_ereg(src_reg) ||
-			    /* We have to add extra byte for x86 SIL, DIL regs */
-			    src_reg == BPF_REG_1 || src_reg == BPF_REG_2)
+			if (is_ereg(dst_reg) || is_ereg_8l(src_reg))
+				/* Add extra byte for eregs or SIL,DIL,BPL in src_reg */
 				EMIT2(add_2mod(0x40, dst_reg, src_reg), 0x88);
 			else
 				EMIT1(0x88);
@@ -1038,7 +1050,16 @@
 		}
 
 		if (image) {
-			if (unlikely(proglen + ilen > oldproglen)) {
+			/*
+			 * When populating the image, assert that:
+			 *
+			 *  i) We do not write beyond the allocated space, and
+			 * ii) addrs[i] did not change from the prior run, in order
+			 *     to validate assumptions made for computing branch
+			 *     displacements.
+			 */
+			if (unlikely(proglen + ilen > oldproglen ||
+				     proglen + ilen != addrs[i])) {
 				pr_err("bpf_jit: fatal error\n");
 				return -EFAULT;
 			}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/net/bpf_jit_comp32.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/net/bpf_jit_comp32.c
@@ -1847,14 +1847,16 @@
 			case BPF_B:
 			case BPF_H:
 			case BPF_W:
-				if (!bpf_prog->aux->verifier_zext)
+				if (bpf_prog->aux->verifier_zext)
 					break;
 				if (dstk) {
 					EMIT3(0xC7, add_1reg(0x40, IA32_EBP),
 					      STACK_VAR(dst_hi));
 					EMIT(0x0, 4);
 				} else {
-					EMIT3(0xC7, add_1reg(0xC0, dst_hi), 0);
+					/* xor dst_hi,dst_hi */
+					EMIT2(0x33,
+					      add_2reg(0xC0, dst_hi, dst_hi));
 				}
 				break;
 			case BPF_DW:
@@ -2013,8 +2015,8 @@
 		case BPF_JMP | BPF_JSET | BPF_X:
 		case BPF_JMP32 | BPF_JSET | BPF_X: {
 			bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
-			u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
-			u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
+			u8 dreg_lo = IA32_EAX;
+			u8 dreg_hi = IA32_EDX;
 			u8 sreg_lo = sstk ? IA32_ECX : src_lo;
 			u8 sreg_hi = sstk ? IA32_EBX : src_hi;
 
@@ -2026,6 +2028,13 @@
 					      add_2reg(0x40, IA32_EBP,
 						       IA32_EDX),
 					      STACK_VAR(dst_hi));
+			} else {
+				/* mov dreg_lo,dst_lo */
+				EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
+				if (is_jmp64)
+					/* mov dreg_hi,dst_hi */
+					EMIT2(0x89,
+					      add_2reg(0xC0, dreg_hi, dst_hi));
 			}
 
 			if (sstk) {
@@ -2039,17 +2048,19 @@
 			}
 			/* and dreg_lo,sreg_lo */
 			EMIT2(0x23, add_2reg(0xC0, sreg_lo, dreg_lo));
-			/* and dreg_hi,sreg_hi */
-			EMIT2(0x23, add_2reg(0xC0, sreg_hi, dreg_hi));
-			/* or dreg_lo,dreg_hi */
-			EMIT2(0x09, add_2reg(0xC0, dreg_lo, dreg_hi));
+			if (is_jmp64) {
+				/* and dreg_hi,sreg_hi */
+				EMIT2(0x23, add_2reg(0xC0, sreg_hi, dreg_hi));
+				/* or dreg_lo,dreg_hi */
+				EMIT2(0x09, add_2reg(0xC0, dreg_lo, dreg_hi));
+			}
 			goto emit_cond_jmp;
 		}
 		case BPF_JMP | BPF_JSET | BPF_K:
 		case BPF_JMP32 | BPF_JSET | BPF_K: {
 			bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
-			u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
-			u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
+			u8 dreg_lo = IA32_EAX;
+			u8 dreg_hi = IA32_EDX;
 			u8 sreg_lo = IA32_ECX;
 			u8 sreg_hi = IA32_EBX;
 			u32 hi;
@@ -2062,6 +2073,13 @@
 					      add_2reg(0x40, IA32_EBP,
 						       IA32_EDX),
 					      STACK_VAR(dst_hi));
+			} else {
+				/* mov dreg_lo,dst_lo */
+				EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
+				if (is_jmp64)
+					/* mov dreg_hi,dst_hi */
+					EMIT2(0x89,
+					      add_2reg(0xC0, dreg_hi, dst_hi));
 			}
 
 			/* mov ecx,imm32 */
@@ -2260,7 +2278,16 @@
 		}
 
 		if (image) {
-			if (unlikely(proglen + ilen > oldproglen)) {
+			/*
+			 * When populating the image, assert that:
+			 *
+			 *  i) We do not write beyond the allocated space, and
+			 * ii) addrs[i] did not change from the prior run, in order
+			 *     to validate assumptions made for computing branch
+			 *     displacements.
+			 */
+			if (unlikely(proglen + ilen > oldproglen ||
+				     proglen + ilen != addrs[i])) {
 				pr_err("bpf_jit: fatal error\n");
 				return -EFAULT;
 			}
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/pci/common.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/pci/common.c
@@ -33,6 +33,7 @@
 #endif
 int pcibios_last_bus = -1;
 unsigned long pirq_table_addr;
+unsigned int pci_early_clear_msi;
 const struct pci_raw_ops *__read_mostly raw_pci_ops;
 const struct pci_raw_ops *__read_mostly raw_pci_ext_ops;
 
@@ -605,6 +606,9 @@
 	} else if (!strcmp(str, "skip_isa_align")) {
 		pci_probe |= PCI_CAN_SKIP_ISA_ALIGN;
 		return NULL;
+	} else if (!strcmp(str, "clearmsi")) {
+		pci_early_clear_msi = 1;
+		return NULL;
 	} else if (!strcmp(str, "noioapicquirk")) {
 		noioapicquirk = 1;
 		return NULL;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/pci/early.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/pci/early.c
@@ -51,6 +51,31 @@
 	outw(val, 0xcfc + (offset&2));
 }
 
+u32 pci_early_find_cap(int bus, int slot, int func, int cap)
+{
+	int bytes;
+	u8 pos;
+
+	if (!(read_pci_config_16(bus, slot, func, PCI_STATUS) &
+						PCI_STATUS_CAP_LIST))
+		return 0;
+
+	pos = read_pci_config_byte(bus, slot, func, PCI_CAPABILITY_LIST);
+	for (bytes = 0; bytes < 48 && pos >= 0x40; bytes++) {
+		u8 id;
+
+		pos &= ~3;
+		id = read_pci_config_byte(bus, slot, func, pos+PCI_CAP_LIST_ID);
+		if (id == 0xff)
+			break;
+		if (id == cap)
+			return pos;
+		pos = read_pci_config_byte(bus, slot, func,
+						pos+PCI_CAP_LIST_NEXT);
+	}
+	return 0;
+}
+
 int early_pci_allowed(void)
 {
 	return (pci_probe & (PCI_PROBE_CONF1|PCI_PROBE_NOEARLY)) ==
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/pci/fixup.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/pci/fixup.c
@@ -572,6 +572,10 @@
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6f60, pci_invalid_bar);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fa0, pci_invalid_bar);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa1ec, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa1ed, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa26c, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa26d, pci_invalid_bar);
 
 /*
  * Device [1022:7808]
@@ -589,6 +593,17 @@
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7808, pci_fixup_amd_ehci_pme);
 
 /*
+ * Device [1022:7914]
+ * When in D0, PME# doesn't get asserted when plugging USB 2.0 device.
+ */
+static void pci_fixup_amd_fch_xhci_pme(struct pci_dev *dev)
+{
+	dev_info(&dev->dev, "PME# does not work under D0, disabling it\n");
+	dev->pme_support &= ~(PCI_PM_CAP_PME_D0 >> PCI_PM_CAP_PME_SHIFT);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7914, pci_fixup_amd_fch_xhci_pme);
+
+/*
  * Apple MacBook Pro: Avoid [mem 0x7fa00000-0x7fbfffff]
  *
  * Using the [mem 0x7fa00000-0x7fbfffff] region, e.g., by assigning it to
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/pci/intel_mid_pci.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/pci/intel_mid_pci.c
@@ -33,6 +33,7 @@
 #include <asm/hw_irq.h>
 #include <asm/io_apic.h>
 #include <asm/intel-mid.h>
+#include <asm/acpi.h>
 
 #define PCIE_CAP_OFFSET	0x100
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/pci/xen.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/pci/xen.c
@@ -26,6 +26,7 @@
 #include <asm/xen/pci.h>
 #include <asm/xen/cpuid.h>
 #include <asm/apic.h>
+#include <asm/acpi.h>
 #include <asm/i8259.h>
 
 static int xen_pcifront_enable_irq(struct pci_dev *dev)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/efi/efi.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/efi/efi.c
@@ -85,6 +85,8 @@
 #ifdef CONFIG_EFI_RCI2_TABLE
 	&rci2_table_phys,
 #endif
+	&efi.tpm_log,
+	&efi.tpm_final_log,
 };
 
 u64 efi_setup;		/* efi setup_data physical address */
@@ -504,7 +506,6 @@
 	efi_char16_t *c16;
 	char vendor[100] = "unknown";
 	int i = 0;
-	void *tmp;
 
 #ifdef CONFIG_X86_32
 	if (boot_params.efi_info.efi_systab_hi ||
@@ -529,14 +530,16 @@
 	/*
 	 * Show what we know for posterity
 	 */
-	c16 = tmp = early_memremap(efi.systab->fw_vendor, 2);
+	c16 = early_memremap_ro(efi.systab->fw_vendor,
+				sizeof(vendor) * sizeof(efi_char16_t));
 	if (c16) {
-		for (i = 0; i < sizeof(vendor) - 1 && *c16; ++i)
-			vendor[i] = *c16++;
+		for (i = 0; i < sizeof(vendor) - 1 && c16[i]; ++i)
+			vendor[i] = c16[i];
 		vendor[i] = '\0';
-	} else
+		early_memunmap(c16, sizeof(vendor) * sizeof(efi_char16_t));
+	} else {
 		pr_err("Could not map the firmware vendor!\n");
-	early_memunmap(tmp, 2);
+	}
 
 	pr_info("EFI v%u.%.02u by %s\n",
 		efi.systab->hdr.revision >> 16,
@@ -953,16 +956,14 @@
 
 	if (efi_alloc_page_tables()) {
 		pr_err("Failed to allocate EFI page tables\n");
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
+		goto err;
 	}
 
 	efi_merge_regions();
 	new_memmap = efi_map_regions(&count, &pg_shift);
 	if (!new_memmap) {
 		pr_err("Error reallocating memory, EFI runtime non-functional!\n");
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
+		goto err;
 	}
 
 	pa = __pa(new_memmap);
@@ -976,8 +977,7 @@
 
 	if (efi_memmap_init_late(pa, efi.memmap.desc_size * count)) {
 		pr_err("Failed to remap late EFI memory map\n");
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
+		goto err;
 	}
 
 	if (efi_enabled(EFI_DBG)) {
@@ -985,12 +985,11 @@
 		efi_print_memmap();
 	}
 
-	BUG_ON(!efi.systab);
+	if (WARN_ON(!efi.systab))
+		goto err;
 
-	if (efi_setup_page_tables(pa, 1 << pg_shift)) {
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
-	}
+	if (efi_setup_page_tables(pa, 1 << pg_shift))
+		goto err;
 
 	efi_sync_low_kernel_mappings();
 
@@ -1010,9 +1009,9 @@
 	}
 
 	if (status != EFI_SUCCESS) {
-		pr_alert("Unable to switch EFI into virtual mode (status=%lx)!\n",
-			 status);
-		panic("EFI call to SetVirtualAddressMap() failed!");
+		pr_err("Unable to switch EFI into virtual mode (status=%lx)!\n",
+		       status);
+		goto err;
 	}
 
 	efi_free_boot_services();
@@ -1041,6 +1040,10 @@
 
 	/* clean DUMMY object */
 	efi_delete_dummy_variable();
+	return;
+
+err:
+	clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
 }
 
 void __init efi_enter_virtual_mode(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/efi/efi_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/efi/efi_64.c
@@ -217,28 +217,30 @@
 	gfp_mask = GFP_KERNEL | __GFP_ZERO;
 	efi_pgd = (pgd_t *)__get_free_pages(gfp_mask, PGD_ALLOCATION_ORDER);
 	if (!efi_pgd)
-		return -ENOMEM;
+		goto fail;
 
 	pgd = efi_pgd + pgd_index(EFI_VA_END);
 	p4d = p4d_alloc(&init_mm, pgd, EFI_VA_END);
-	if (!p4d) {
-		free_page((unsigned long)efi_pgd);
-		return -ENOMEM;
-	}
+	if (!p4d)
+		goto free_pgd;
 
 	pud = pud_alloc(&init_mm, p4d, EFI_VA_END);
-	if (!pud) {
-		if (pgtable_l5_enabled())
-			free_page((unsigned long) pgd_page_vaddr(*pgd));
-		free_pages((unsigned long)efi_pgd, PGD_ALLOCATION_ORDER);
-		return -ENOMEM;
-	}
+	if (!pud)
+		goto free_p4d;
 
 	efi_mm.pgd = efi_pgd;
 	mm_init_cpumask(&efi_mm);
 	init_new_context(NULL, &efi_mm);
 
 	return 0;
+
+free_p4d:
+	if (pgtable_l5_enabled())
+		free_page((unsigned long)pgd_page_vaddr(*pgd));
+free_pgd:
+	free_pages((unsigned long)efi_pgd, PGD_ALLOCATION_ORDER);
+fail:
+	return -ENOMEM;
 }
 
 /*
@@ -316,7 +318,7 @@
 static inline phys_addr_t
 virt_to_phys_or_null_size(void *va, unsigned long size)
 {
-	bool bad_size;
+	phys_addr_t pa;
 
 	if (!va)
 		return 0;
@@ -324,16 +326,13 @@
 	if (virt_addr_valid(va))
 		return virt_to_phys(va);
 
-	/*
-	 * A fully aligned variable on the stack is guaranteed not to
-	 * cross a page bounary. Try to catch strings on the stack by
-	 * checking that 'size' is a power of two.
-	 */
-	bad_size = size > PAGE_SIZE || !is_power_of_2(size);
+	pa = slow_virt_to_phys(va);
 
-	WARN_ON(!IS_ALIGNED((unsigned long)va, size) || bad_size);
+	/* check if the object crosses a page boundary */
+	if (WARN_ON((pa ^ (pa + size - 1)) & PAGE_MASK))
+		return 0;
 
-	return slow_virt_to_phys(va);
+	return pa;
 }
 
 #define virt_to_phys_or_null(addr)				\
@@ -392,11 +391,12 @@
 		return 0;
 
 	page = alloc_page(GFP_KERNEL|__GFP_DMA32);
-	if (!page)
-		panic("Unable to allocate EFI runtime stack < 4GB\n");
+	if (!page) {
+		pr_err("Unable to allocate EFI runtime stack < 4GB\n");
+		return 1;
+	}
 
-	efi_scratch.phys_stack = virt_to_phys(page_address(page));
-	efi_scratch.phys_stack += PAGE_SIZE; /* stack grows down */
+	efi_scratch.phys_stack = page_to_phys(page + 1); /* stack grows down */
 
 	npages = (_etext - _text) >> PAGE_SHIFT;
 	text = __pa(_text);
@@ -790,6 +790,8 @@
 efi_thunk_get_variable(efi_char16_t *name, efi_guid_t *vendor,
 		       u32 *attr, unsigned long *data_size, void *data)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	efi_status_t status;
 	u32 phys_name, phys_vendor, phys_attr;
 	u32 phys_data_size, phys_data;
@@ -797,14 +799,19 @@
 
 	spin_lock_irqsave(&efi_runtime_lock, flags);
 
+	*vnd = *vendor;
+
 	phys_data_size = virt_to_phys_or_null(data_size);
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_name = virt_to_phys_or_null_size(name, efi_name_size(name));
 	phys_attr = virt_to_phys_or_null(attr);
 	phys_data = virt_to_phys_or_null_size(data, *data_size);
 
-	status = efi_thunk(get_variable, phys_name, phys_vendor,
-			   phys_attr, phys_data_size, phys_data);
+	if (!phys_name || (data && !phys_data))
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(get_variable, phys_name, phys_vendor,
+				   phys_attr, phys_data_size, phys_data);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
@@ -815,19 +822,25 @@
 efi_thunk_set_variable(efi_char16_t *name, efi_guid_t *vendor,
 		       u32 attr, unsigned long data_size, void *data)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	u32 phys_name, phys_vendor, phys_data;
 	efi_status_t status;
 	unsigned long flags;
 
 	spin_lock_irqsave(&efi_runtime_lock, flags);
 
+	*vnd = *vendor;
+
 	phys_name = virt_to_phys_or_null_size(name, efi_name_size(name));
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_data = virt_to_phys_or_null_size(data, data_size);
 
-	/* If data_size is > sizeof(u32) we've got problems */
-	status = efi_thunk(set_variable, phys_name, phys_vendor,
-			   attr, data_size, phys_data);
+	if (!phys_name || (data && !phys_data))
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(set_variable, phys_name, phys_vendor,
+				   attr, data_size, phys_data);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
@@ -839,6 +852,8 @@
 				   u32 attr, unsigned long data_size,
 				   void *data)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	u32 phys_name, phys_vendor, phys_data;
 	efi_status_t status;
 	unsigned long flags;
@@ -846,13 +861,17 @@
 	if (!spin_trylock_irqsave(&efi_runtime_lock, flags))
 		return EFI_NOT_READY;
 
+	*vnd = *vendor;
+
 	phys_name = virt_to_phys_or_null_size(name, efi_name_size(name));
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_data = virt_to_phys_or_null_size(data, data_size);
 
-	/* If data_size is > sizeof(u32) we've got problems */
-	status = efi_thunk(set_variable, phys_name, phys_vendor,
-			   attr, data_size, phys_data);
+	if (!phys_name || (data && !phys_data))
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(set_variable, phys_name, phys_vendor,
+				   attr, data_size, phys_data);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
@@ -864,21 +883,29 @@
 			    efi_char16_t *name,
 			    efi_guid_t *vendor)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	efi_status_t status;
 	u32 phys_name_size, phys_name, phys_vendor;
 	unsigned long flags;
 
 	spin_lock_irqsave(&efi_runtime_lock, flags);
 
+	*vnd = *vendor;
+
 	phys_name_size = virt_to_phys_or_null(name_size);
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_name = virt_to_phys_or_null_size(name, *name_size);
 
-	status = efi_thunk(get_next_variable, phys_name_size,
-			   phys_name, phys_vendor);
+	if (!phys_name)
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(get_next_variable, phys_name_size,
+				   phys_name, phys_vendor);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
+	*vendor = *vnd;
 	return status;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/efi/efi_stub_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/efi/efi_stub_32.S
@@ -8,6 +8,7 @@
 
 #include <linux/linkage.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 
 /*
  * efi_call_phys(void *, ...) is a function with variable parameters.
@@ -39,6 +40,7 @@
 	 */
 	movl	$1f, %edx
 	subl	$__PAGE_OFFSET, %edx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	jmp	*%edx
 1:
 
@@ -74,6 +76,7 @@
 	/*
 	 * 5. Call the physical function.
 	 */
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	jmp	*%ecx
 
 2:
@@ -96,6 +99,7 @@
 	 * adding EIP with PAGE_OFFSET.
 	 */
 	movl	$1f, %edx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	jmp	*%edx
 1:
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/efi/efi_stub_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/efi/efi_stub_64.S
@@ -12,6 +12,7 @@
 #include <asm/msr.h>
 #include <asm/processor-flags.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 
 #define SAVE_XMM			\
 	mov %rsp, %rax;			\
@@ -50,6 +51,7 @@
 	mov %r8, %r9
 	mov %rcx, %r8
 	mov %rsi, %rcx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	call *%rdi
 	addq $48, %rsp
 	RESTORE_XMM
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/efi/efi_thunk_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/efi/efi_thunk_64.S
@@ -22,6 +22,7 @@
 #include <linux/linkage.h>
 #include <asm/page_types.h>
 #include <asm/segment.h>
+#include <asm/nospec-branch.h>
 
 	.text
 	.code64
@@ -54,6 +55,7 @@
 
 	leaq	__efi64_thunk(%rip), %rbx
 	subq	%rax, %rbx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	call	*%rbx
 
 	movq	efi_saved_sp(%rip), %rsp
@@ -135,6 +137,7 @@
 	movl	%eax, %es
 	movl	%eax, %ss
 
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	call	*%edi
 
 	/* We must preserve return value */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/efi/quirks.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/efi/quirks.c
@@ -260,10 +260,6 @@
 		return;
 	}
 
-	/* No need to reserve regions that will never be freed. */
-	if (md.attribute & EFI_MEMORY_RUNTIME)
-		return;
-
 	size += addr % EFI_PAGE_SIZE;
 	size = round_up(size, EFI_PAGE_SIZE);
 	addr = round_down(addr, EFI_PAGE_SIZE);
@@ -293,6 +289,8 @@
 	early_memunmap(new, new_size);
 
 	efi_memmap_install(new_phys, num_entries);
+	e820__range_update(addr, size, E820_TYPE_RAM, E820_TYPE_RESERVED);
+	e820__update_table(e820_table);
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/pvh/head.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/pvh/head.S
@@ -16,6 +16,7 @@
 #include <asm/boot.h>
 #include <asm/processor-flags.h>
 #include <asm/msr.h>
+#include <asm/nospec-branch.h>
 #include <xen/interface/elfnote.h>
 
 	__HEAD
@@ -105,6 +106,7 @@
 	/* startup_64 expects boot_params in %rsi. */
 	mov $_pa(pvh_bootparams), %rsi
 	mov $_pa(startup_64), %rax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp *%rax
 
 #else /* CONFIG_X86_64 */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/platform/uv/uv_irq.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/platform/uv/uv_irq.c
@@ -167,9 +167,10 @@
 		goto out;
 
 	uv_domain = irq_domain_create_tree(fn, &uv_domain_ops, NULL);
-	irq_domain_free_fwnode(fn);
 	if (uv_domain)
 		uv_domain->parent = x86_vector_domain;
+	else
+		irq_domain_free_fwnode(fn);
 out:
 	mutex_unlock(&uv_lock);
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/power/hibernate_asm_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/power/hibernate_asm_32.S
@@ -35,7 +35,7 @@
 	ret
 ENDPROC(swsusp_arch_suspend)
 
-ENTRY(restore_image)
+SYM_CODE_START(restore_image)
 	/* prepare to jump to the image kernel */
 	movl	restore_jump_address, %ebx
 	movl	restore_cr3, %ebp
@@ -45,9 +45,10 @@
 	/* jump to relocated restore code */
 	movl	relocated_restore_code, %eax
 	jmpl	*%eax
+SYM_CODE_END(restore_image)
 
 /* code below has been relocated to a safe page */
-ENTRY(core_restore_code)
+SYM_CODE_START(core_restore_code)
 	movl	temp_pgt, %eax
 	movl	%eax, %cr3
 
@@ -77,6 +78,7 @@
 
 done:
 	jmpl	*%ebx
+SYM_CODE_END(core_restore_code)
 
 	/* code below belongs to the image kernel */
 	.align PAGE_SIZE
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/power/hibernate_asm_64.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/power/hibernate_asm_64.S
@@ -21,6 +21,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/processor-flags.h>
 #include <asm/frame.h>
+#include <asm/nospec-branch.h>
 
 ENTRY(swsusp_arch_suspend)
 	movq	$saved_context, %rax
@@ -66,6 +67,7 @@
 
 	/* jump to relocated restore code */
 	movq	relocated_restore_code(%rip), %rcx
+	ANNOTATE_RETPOLINE_SAFE
 	jmpq	*%rcx
 
 	/* code below has been relocated to a safe page */
@@ -96,6 +98,7 @@
 
 .Ldone:
 	/* jump to the restore_registers address from the image header */
+	ANNOTATE_RETPOLINE_SAFE
 	jmpq	*%r8
 
 	 /* code below belongs to the image kernel */
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/purgatory/Makefile
+++ linux-gkeop-5.4-5.4.0/arch/x86/purgatory/Makefile
@@ -17,7 +17,10 @@
 LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined -nostdlib -z nodefaultlib
 targets += purgatory.ro
 
+# Sanitizer, etc. runtimes are unavailable and cannot be linked here.
+GCOV_PROFILE	:= n
 KASAN_SANITIZE	:= n
+UBSAN_SANITIZE	:= n
 KCOV_INSTRUMENT := n
 
 # These are adjustments to the compiler flags used for objects that
@@ -25,7 +28,7 @@
 
 PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel
 PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss
-PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN)
+PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) -DDISABLE_BRANCH_PROFILING
 
 # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That
 # in turn leaves some undefined symbols like __fentry__ in purgatory and not
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/realmode/init.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/realmode/init.c
@@ -8,6 +8,7 @@
 #include <asm/pgtable.h>
 #include <asm/realmode.h>
 #include <asm/tlbflush.h>
+#include <asm/crash.h>
 
 struct real_mode_header *real_mode_header;
 u32 *trampoline_cr4_features;
@@ -34,6 +35,7 @@
 
 	memblock_reserve(mem, size);
 	set_real_mode_mem(mem);
+	crash_reserve_low_1M();
 }
 
 static void __init setup_real_mode(void)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/realmode/rm/trampoline_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/realmode/rm/trampoline_32.S
@@ -23,13 +23,14 @@
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 #include "realmode.h"
 
 	.text
 	.code16
 
 	.balign	PAGE_SIZE
-ENTRY(trampoline_start)
+SYM_CODE_START(trampoline_start)
 	wbinvd			# Needed for NUMA-Q should be harmless for others
 
 	LJMPW_RM(1f)
@@ -54,11 +55,14 @@
 	lmsw	%dx			# into protected mode
 
 	ljmpl	$__BOOT_CS, $pa_startup_32
+SYM_CODE_END(trampoline_start)
 
 	.section ".text32","ax"
 	.code32
-ENTRY(startup_32)			# note: also used from wakeup_asm.S
+SYM_CODE_START(startup_32)			# note: also used from wakeup_asm.S
+	ANNOTATE_RETPOLINE_SAFE
 	jmp	*%eax
+SYM_CODE_END(startup_32)
 
 	.bss
 	.balign 8
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/tools/gen-insn-attr-x86.awk
+++ linux-gkeop-5.4-5.4.0/arch/x86/tools/gen-insn-attr-x86.awk
@@ -69,7 +69,7 @@
 
 	lprefix1_expr = "\\((66|!F3)\\)"
 	lprefix2_expr = "\\(F3\\)"
-	lprefix3_expr = "\\((F2|!F3|66\\&F2)\\)"
+	lprefix3_expr = "\\((F2|!F3|66&F2)\\)"
 	lprefix_expr = "\\((66|F2|F3)\\)"
 	max_lprefix = 4
 
@@ -257,7 +257,7 @@
 	return add_flags(imm, mod)
 }
 
-/^[0-9a-f]+\:/ {
+/^[0-9a-f]+:/ {
 	if (NR == 1)
 		next
 	# get index
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/tools/relocs.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/tools/relocs.c
@@ -867,9 +867,11 @@
 	case R_386_PC32:
 	case R_386_PC16:
 	case R_386_PC8:
+	case R_386_PLT32:
 		/*
-		 * NONE can be ignored and PC relative relocations don't
-		 * need to be adjusted.
+		 * NONE can be ignored and PC relative relocations don't need
+		 * to be adjusted. Because sym must be defined, R_386_PLT32 can
+		 * be treated the same way as R_386_PC32.
 		 */
 		break;
 
@@ -910,9 +912,11 @@
 	case R_386_PC32:
 	case R_386_PC16:
 	case R_386_PC8:
+	case R_386_PLT32:
 		/*
-		 * NONE can be ignored and PC relative relocations don't
-		 * need to be adjusted.
+		 * NONE can be ignored and PC relative relocations don't need
+		 * to be adjusted. Because sym must be defined, R_386_PLT32 can
+		 * be treated the same way as R_386_PC32.
 		 */
 		break;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/um/tls_32.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/um/tls_32.c
@@ -215,14 +215,12 @@
 	return 0;
 }
 
-int arch_copy_tls(struct task_struct *new)
+int arch_set_tls(struct task_struct *new, unsigned long tls)
 {
 	struct user_desc info;
 	int idx, ret = -EFAULT;
 
-	if (copy_from_user(&info,
-			   (void __user *) UPT_SI(&new->thread.regs.regs),
-			   sizeof(info)))
+	if (copy_from_user(&info, (void __user *) tls, sizeof(info)))
 		goto out;
 
 	ret = -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/um/tls_64.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/um/tls_64.c
@@ -6,14 +6,13 @@
 {
 }
 
-int arch_copy_tls(struct task_struct *t)
+int arch_set_tls(struct task_struct *t, unsigned long tls)
 {
 	/*
 	 * If CLONE_SETTLS is set, we need to save the thread id
-	 * (which is argument 5, child_tid, of clone) so it can be set
-	 * during context switches.
+	 * so it can be set during context switches.
 	 */
-	t->thread.arch.fs = t->thread.regs.regs.gp[R8 / sizeof(long)];
+	t->thread.arch.fs = tls;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/xen/enlighten_hvm.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/xen/enlighten_hvm.c
@@ -175,6 +175,8 @@
        return 0;
 }
 
+static bool no_vector_callback __initdata;
+
 static void __init xen_hvm_guest_init(void)
 {
 	if (xen_pv_domain())
@@ -194,7 +196,7 @@
 
 	xen_panic_handler_init();
 
-	if (xen_feature(XENFEAT_hvm_callback_vector))
+	if (!no_vector_callback && xen_feature(XENFEAT_hvm_callback_vector))
 		xen_have_vector_callback = 1;
 
 	xen_hvm_smp_init();
@@ -220,6 +222,13 @@
 }
 early_param("xen_nopv", xen_parse_nopv);
 
+static __init int xen_parse_no_vector_callback(char *arg)
+{
+	no_vector_callback = true;
+	return 0;
+}
+early_param("xen_no_vector_callback", xen_parse_no_vector_callback);
+
 bool __init xen_hvm_need_lapic(void)
 {
 	if (xen_pv_domain())
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/xen/enlighten_pv.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/xen/enlighten_pv.c
@@ -905,14 +905,15 @@
 static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
 {
 	int ret;
+#ifdef CONFIG_X86_64
+	unsigned int which;
+	u64 base;
+#endif
 
 	ret = 0;
 
 	switch (msr) {
 #ifdef CONFIG_X86_64
-		unsigned which;
-		u64 base;
-
 	case MSR_FS_BASE:		which = SEGBASE_FS; goto set;
 	case MSR_KERNEL_GS_BASE:	which = SEGBASE_GS_USER; goto set;
 	case MSR_GS_BASE:		which = SEGBASE_GS_KERNEL; goto set;
@@ -1215,6 +1216,7 @@
 	x86_platform.get_nmi_reason = xen_get_nmi_reason;
 
 	x86_init.resources.memory_setup = xen_memory_setup;
+	x86_init.irqs.intr_mode_select	= x86_init_noop;
 	x86_init.irqs.intr_mode_init	= x86_init_noop;
 	x86_init.oem.arch_setup = xen_arch_setup;
 	x86_init.oem.banner = xen_banner;
@@ -1380,6 +1382,15 @@
 		x86_init.mpparse.get_smp_config = x86_init_uint_noop;
 
 		xen_boot_params_init_edd();
+
+#ifdef CONFIG_ACPI
+		/*
+		 * Disable selecting "Firmware First mode" for correctable
+		 * memory errors, as this is the duty of the hypervisor to
+		 * decide.
+		 */
+		acpi_disable_cmcff = 1;
+#endif
 	}
 
 	if (!boot_params.screen_info.orig_video_isVGA)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/xen/p2m.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/xen/p2m.c
@@ -714,9 +714,12 @@
 
 	for (i = 0; i < count; i++) {
 		unsigned long mfn, pfn;
+		struct gnttab_unmap_grant_ref unmap[2];
+		int rc;
 
 		/* Do not add to override if the map failed. */
-		if (map_ops[i].status)
+		if (map_ops[i].status != GNTST_okay ||
+		    (kmap_ops && kmap_ops[i].status != GNTST_okay))
 			continue;
 
 		if (map_ops[i].flags & GNTMAP_contains_pte) {
@@ -730,10 +733,46 @@
 
 		WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, "page must be ballooned");
 
-		if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) {
-			ret = -ENOMEM;
-			goto out;
+		if (likely(set_phys_to_machine(pfn, FOREIGN_FRAME(mfn))))
+			continue;
+
+		/*
+		 * Signal an error for this slot. This in turn requires
+		 * immediate unmapping.
+		 */
+		map_ops[i].status = GNTST_general_error;
+		unmap[0].host_addr = map_ops[i].host_addr,
+		unmap[0].handle = map_ops[i].handle;
+		map_ops[i].handle = ~0;
+		if (map_ops[i].flags & GNTMAP_device_map)
+			unmap[0].dev_bus_addr = map_ops[i].dev_bus_addr;
+		else
+			unmap[0].dev_bus_addr = 0;
+
+		if (kmap_ops) {
+			kmap_ops[i].status = GNTST_general_error;
+			unmap[1].host_addr = kmap_ops[i].host_addr,
+			unmap[1].handle = kmap_ops[i].handle;
+			kmap_ops[i].handle = ~0;
+			if (kmap_ops[i].flags & GNTMAP_device_map)
+				unmap[1].dev_bus_addr = kmap_ops[i].dev_bus_addr;
+			else
+				unmap[1].dev_bus_addr = 0;
 		}
+
+		/*
+		 * Pre-populate both status fields, to be recognizable in
+		 * the log message below.
+		 */
+		unmap[0].status = 1;
+		unmap[1].status = 1;
+
+		rc = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+					       unmap, 1 + !!kmap_ops);
+		if (rc || unmap[0].status != GNTST_okay ||
+		    unmap[1].status != GNTST_okay)
+			pr_err_once("gnttab unmap failed: rc=%d st0=%d st1=%d\n",
+				    rc, unmap[0].status, unmap[1].status);
 	}
 
 out:
@@ -754,17 +793,15 @@
 		unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i]));
 		unsigned long pfn = page_to_pfn(pages[i]);
 
-		if (mfn == INVALID_P2M_ENTRY || !(mfn & FOREIGN_FRAME_BIT)) {
+		if (mfn != INVALID_P2M_ENTRY && (mfn & FOREIGN_FRAME_BIT))
+			set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
+		else
 			ret = -EINVAL;
-			goto out;
-		}
-
-		set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
 	}
 	if (kunmap_ops)
 		ret = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
-						kunmap_ops, count);
-out:
+						kunmap_ops, count) ?: ret;
+
 	return ret;
 }
 EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/xen/smp_pv.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/xen/smp_pv.c
@@ -92,6 +92,7 @@
 	cpu_bringup();
 	boot_init_stack_canary();
 	cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
+	prevent_tail_call_optimization();
 }
 
 void xen_smp_intr_free_pv(unsigned int cpu)
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/xen/spinlock.c
+++ linux-gkeop-5.4-5.4.0/arch/x86/xen/spinlock.c
@@ -93,10 +93,20 @@
 
 void xen_uninit_lock_cpu(int cpu)
 {
+	int irq;
+
 	if (!xen_pvspin)
 		return;
 
-	unbind_from_irqhandler(per_cpu(lock_kicker_irq, cpu), NULL);
+	/*
+	 * When booting the kernel with 'mitigations=auto,nosmt', the secondary
+	 * CPUs are not activated, and lock_kicker_irq is not initialized.
+	 */
+	irq = per_cpu(lock_kicker_irq, cpu);
+	if (irq == -1)
+		return;
+
+	unbind_from_irqhandler(irq, NULL);
 	per_cpu(lock_kicker_irq, cpu) = -1;
 	kfree(per_cpu(irq_name, cpu));
 	per_cpu(irq_name, cpu) = NULL;
--- linux-gkeop-5.4-5.4.0.orig/arch/x86/xen/xen-asm_32.S
+++ linux-gkeop-5.4-5.4.0/arch/x86/xen/xen-asm_32.S
@@ -56,7 +56,7 @@
 	_ASM_EXTABLE(1b,2b)
 .endm
 
-ENTRY(xen_iret)
+SYM_CODE_START(xen_iret)
 	/* test eflags for special cases */
 	testl $(X86_EFLAGS_VM | XEN_EFLAGS_NMI), 8(%esp)
 	jnz hyper_iret
@@ -122,14 +122,14 @@
 hyper_iret:
 	/* put this out of line since its very rarely used */
 	jmp hypercall_page + __HYPERVISOR_iret * 32
+SYM_CODE_END(xen_iret)
 
 	.globl xen_iret_start_crit, xen_iret_end_crit
 
 /*
- * This is called by xen_hypervisor_callback in entry.S when it sees
+ * This is called by xen_hypervisor_callback in entry_32.S when it sees
  * that the EIP at the time of interrupt was between
- * xen_iret_start_crit and xen_iret_end_crit.  We're passed the EIP in
- * %eax so we can do a more refined determination of what to do.
+ * xen_iret_start_crit and xen_iret_end_crit.
  *
  * The stack format at this point is:
  *	----------------
@@ -138,70 +138,46 @@
  *	 eflags		}  outer exception info
  *	 cs		}
  *	 eip		}
- *	---------------- <- edi (copy dest)
- *	 eax		:  outer eax if it hasn't been restored
  *	----------------
- *	 eflags		}  nested exception info
- *	 cs		}   (no ss/esp because we're nested
- *	 eip		}    from the same ring)
- *	 orig_eax	}<- esi (copy src)
- *	 - - - - - - - -
- *	 fs		}
- *	 es		}
- *	 ds		}  SAVE_ALL state
- *	 eax		}
- *	  :		:
- *	 ebx		}<- esp
+ *	 eax		:  outer eax if it hasn't been restored
  *	----------------
+ *	 eflags		}
+ *	 cs		}  nested exception info
+ *	 eip		}
+ *	 return address	: (into xen_hypervisor_callback)
  *
- * In order to deliver the nested exception properly, we need to shift
- * everything from the return addr up to the error code so it sits
- * just under the outer exception info.  This means that when we
- * handle the exception, we do it in the context of the outer
- * exception rather than starting a new one.
+ * In order to deliver the nested exception properly, we need to discard the
+ * nested exception frame such that when we handle the exception, we do it
+ * in the context of the outer exception rather than starting a new one.
  *
- * The only caveat is that if the outer eax hasn't been restored yet
- * (ie, it's still on stack), we need to insert its value into the
- * SAVE_ALL state before going on, since it's usermode state which we
- * eventually need to restore.
+ * The only caveat is that if the outer eax hasn't been restored yet (i.e.
+ * it's still on stack), we need to restore its value here.
  */
-ENTRY(xen_iret_crit_fixup)
+SYM_CODE_START(xen_iret_crit_fixup)
 	/*
 	 * Paranoia: Make sure we're really coming from kernel space.
 	 * One could imagine a case where userspace jumps into the
 	 * critical range address, but just before the CPU delivers a
-	 * GP, it decides to deliver an interrupt instead.  Unlikely?
-	 * Definitely.  Easy to avoid?  Yes.  The Intel documents
-	 * explicitly say that the reported EIP for a bad jump is the
-	 * jump instruction itself, not the destination, but some
-	 * virtual environments get this wrong.
-	 */
-	movl PT_CS(%esp), %ecx
-	andl $SEGMENT_RPL_MASK, %ecx
-	cmpl $USER_RPL, %ecx
-	je 2f
-
-	lea PT_ORIG_EAX(%esp), %esi
-	lea PT_EFLAGS(%esp), %edi
+	 * PF, it decides to deliver an interrupt instead.  Unlikely?
+	 * Definitely.  Easy to avoid?  Yes.
+	 */
+	testb $2, 2*4(%esp)		/* nested CS */
+	jnz 2f
 
 	/*
 	 * If eip is before iret_restore_end then stack
 	 * hasn't been restored yet.
 	 */
-	cmp $iret_restore_end, %eax
+	cmpl $iret_restore_end, 1*4(%esp)
 	jae 1f
 
-	movl 0+4(%edi), %eax		/* copy EAX (just above top of frame) */
-	movl %eax, PT_EAX(%esp)
-
-	lea ESP_OFFSET(%edi), %edi	/* move dest up over saved regs */
-
-	/* set up the copy */
-1:	std
-	mov $PT_EIP / 4, %ecx		/* saved regs up to orig_eax */
-	rep movsl
-	cld
-
-	lea 4(%edi), %esp		/* point esp to new frame */
-2:	jmp xen_do_upcall
-
+	movl 4*4(%esp), %eax		/* load outer EAX */
+	ret $4*4			/* discard nested EIP, CS, and EFLAGS as
+					 * well as the just restored EAX */
+
+1:
+	ret $3*4			/* discard nested EIP, CS, and EFLAGS */
+
+2:
+	ret
+SYM_CODE_END(xen_iret_crit_fixup)
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/Kconfig
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/Kconfig
@@ -22,6 +22,7 @@
 	select HAVE_ARCH_JUMP_LABEL
 	select HAVE_ARCH_KASAN if MMU
 	select HAVE_ARCH_TRACEHOOK
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DMA_CONTIGUOUS
 	select HAVE_EXIT_THREAD
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/include/asm/pgtable.h
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/include/asm/pgtable.h
@@ -70,7 +70,7 @@
  */
 #define VMALLOC_START		(XCHAL_KSEG_CACHED_VADDR - 0x10000000)
 #define VMALLOC_END		(VMALLOC_START + 0x07FEFFFF)
-#define TLBTEMP_BASE_1		(VMALLOC_END + 1)
+#define TLBTEMP_BASE_1		(VMALLOC_START + 0x08000000)
 #define TLBTEMP_BASE_2		(TLBTEMP_BASE_1 + DCACHE_WAY_SIZE)
 #if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE
 #define TLBTEMP_SIZE		(2 * DCACHE_WAY_SIZE)
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/include/asm/syscall.h
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/include/asm/syscall.h
@@ -51,7 +51,7 @@
 					    struct pt_regs *regs,
 					    int error, long val)
 {
-	regs->areg[0] = (long) error ? error : val;
+	regs->areg[2] = (long) error ? error : val;
 }
 
 #define SYSCALL_MAX_ARGS 6
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/include/asm/thread_info.h
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/include/asm/thread_info.h
@@ -55,6 +55,10 @@
 	mm_segment_t		addr_limit;	/* thread address space */
 
 	unsigned long		cpenable;
+#if XCHAL_HAVE_EXCLUSIVE
+	/* result of the most recent exclusive store */
+	unsigned long		atomctl8;
+#endif
 
 	/* Allocate storage for extra user states and coprocessor states. */
 #if XTENSA_HAVE_COPROCESSORS
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/include/asm/uaccess.h
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/include/asm/uaccess.h
@@ -300,7 +300,7 @@
 	return -EFAULT;
 }
 #else
-long strncpy_from_user(char *dst, const char *src, long count);
+long strncpy_from_user(char *dst, const char __user *src, long count);
 #endif
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/asm-offsets.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/asm-offsets.c
@@ -93,6 +93,9 @@
 	DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
 	DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
 	DEFINE(THREAD_CPENABLE, offsetof (struct thread_info, cpenable));
+#if XCHAL_HAVE_EXCLUSIVE
+	DEFINE(THREAD_ATOMCTL8, offsetof (struct thread_info, atomctl8));
+#endif
 #if XTENSA_HAVE_COPROCESSORS
 	DEFINE(THREAD_XTREGS_CP0, offsetof(struct thread_info, xtregs_cp.cp0));
 	DEFINE(THREAD_XTREGS_CP1, offsetof(struct thread_info, xtregs_cp.cp1));
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/entry.S
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/entry.S
@@ -374,6 +374,11 @@
 	s32i	a2, a1, PT_LCOUNT
 #endif
 
+#if XCHAL_HAVE_EXCLUSIVE
+	/* Clear exclusive access monitor set by interrupted code */
+	clrex
+#endif
+
 	/* It is now save to restore the EXC_TABLE_FIXUP variable. */
 
 	rsr	a2, exccause
@@ -1892,6 +1897,7 @@
 
 	mov	a6, a2
 	call4	do_syscall_trace_enter
+	beqz	a6, .Lsyscall_exit
 	l32i	a7, a2, PT_SYSCALL
 
 1:
@@ -1906,8 +1912,6 @@
 
 	addx4	a4, a7, a4
 	l32i	a4, a4, 0
-	movi	a5, sys_ni_syscall;
-	beq	a4, a5, 1f
 
 	/* Load args: arg0 - arg5 are passed via regs. */
 
@@ -1927,6 +1931,7 @@
 
 	s32i	a6, a2, PT_AREG2
 	bnez	a3, 1f
+.Lsyscall_exit:
 	abi_ret(4)
 
 1:
@@ -2024,6 +2029,12 @@
 	s32i	a3, a4, THREAD_CPENABLE
 #endif
 
+#if XCHAL_HAVE_EXCLUSIVE
+	l32i	a3, a5, THREAD_ATOMCTL8
+	getex	a3
+	s32i	a3, a4, THREAD_ATOMCTL8
+#endif
+
 	/* Flush register file. */
 
 	spill_registers_kernel
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/perf_event.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/perf_event.c
@@ -401,7 +401,7 @@
 	.read = xtensa_pmu_read,
 };
 
-static int xtensa_pmu_setup(int cpu)
+static int xtensa_pmu_setup(unsigned int cpu)
 {
 	unsigned i;
 
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/process.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/process.c
@@ -202,8 +202,9 @@
  * involved.  Much simpler to just not copy those live frames across.
  */
 
-int copy_thread(unsigned long clone_flags, unsigned long usp_thread_fn,
-		unsigned long thread_fn_arg, struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long usp_thread_fn,
+		unsigned long thread_fn_arg, struct task_struct *p,
+		unsigned long tls)
 {
 	struct pt_regs *childregs = task_pt_regs(p);
 
@@ -264,9 +265,8 @@
 			       &regs->areg[XCHAL_NUM_AREGS - len/4], len);
 		}
 
-		/* The thread pointer is passed in the '4th argument' (= a5) */
 		if (clone_flags & CLONE_SETTLS)
-			childregs->threadptr = childregs->areg[5];
+			childregs->threadptr = tls;
 	} else {
 		p->thread.ra = MAKE_RA_FOR_CALL(
 				(unsigned long)ret_from_kernel_thread, 1);
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/ptrace.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/ptrace.c
@@ -542,14 +542,28 @@
 	return ret;
 }
 
-void do_syscall_trace_enter(struct pt_regs *regs)
+void do_syscall_trace_leave(struct pt_regs *regs);
+int do_syscall_trace_enter(struct pt_regs *regs)
 {
+	if (regs->syscall == NO_SYSCALL)
+		regs->areg[2] = -ENOSYS;
+
 	if (test_thread_flag(TIF_SYSCALL_TRACE) &&
-	    tracehook_report_syscall_entry(regs))
+	    tracehook_report_syscall_entry(regs)) {
+		regs->areg[2] = -ENOSYS;
 		regs->syscall = NO_SYSCALL;
+		return 0;
+	}
+
+	if (regs->syscall == NO_SYSCALL) {
+		do_syscall_trace_leave(regs);
+		return 0;
+	}
 
 	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
 		trace_sys_enter(regs, syscall_get_nr(current, regs));
+
+	return 1;
 }
 
 void do_syscall_trace_leave(struct pt_regs *regs)
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/setup.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/setup.c
@@ -716,7 +716,8 @@
 static void *
 c_next(struct seq_file *f, void *v, loff_t *pos)
 {
-	return NULL;
+	++*pos;
+	return c_start(f, pos);
 }
 
 static void
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/kernel/xtensa_ksyms.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/kernel/xtensa_ksyms.c
@@ -87,13 +87,13 @@
 }
 EXPORT_SYMBOL(__xtensa_libgcc_window_spill);
 
-unsigned long __sync_fetch_and_and_4(unsigned long *p, unsigned long v)
+unsigned int __sync_fetch_and_and_4(volatile void *p, unsigned int v)
 {
 	BUG();
 }
 EXPORT_SYMBOL(__sync_fetch_and_and_4);
 
-unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v)
+unsigned int __sync_fetch_and_or_4(volatile void *p, unsigned int v)
 {
 	BUG();
 }
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/mm/cache.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/mm/cache.c
@@ -71,8 +71,10 @@
 			kvaddr = TLBTEMP_BASE_1 +
 				(page_to_phys(page) & DCACHE_ALIAS_MASK);
 
+			preempt_disable();
 			__invalidate_dcache_page_alias(kvaddr,
 						       page_to_phys(page));
+			preempt_enable();
 		}
 	}
 }
@@ -157,6 +159,7 @@
 		if (!alias && !mapping)
 			return;
 
+		preempt_disable();
 		virt = TLBTEMP_BASE_1 + (phys & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(virt, phys);
 
@@ -167,6 +170,7 @@
 
 		if (mapping)
 			__invalidate_icache_page_alias(virt, phys);
+		preempt_enable();
 	}
 
 	/* There shouldn't be an entry in the cache for this page anymore. */
@@ -200,8 +204,10 @@
 	unsigned long phys = page_to_phys(pfn_to_page(pfn));
 	unsigned long virt = TLBTEMP_BASE_1 + (address & DCACHE_ALIAS_MASK);
 
+	preempt_disable();
 	__flush_invalidate_dcache_page_alias(virt, phys);
 	__invalidate_icache_page_alias(virt, phys);
+	preempt_enable();
 }
 EXPORT_SYMBOL(local_flush_cache_page);
 
@@ -228,11 +234,13 @@
 		unsigned long phys = page_to_phys(page);
 		unsigned long tmp;
 
+		preempt_disable();
 		tmp = TLBTEMP_BASE_1 + (phys & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(tmp, phys);
 		tmp = TLBTEMP_BASE_1 + (addr & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(tmp, phys);
 		__invalidate_icache_page_alias(tmp, phys);
+		preempt_enable();
 
 		clear_bit(PG_arch_1, &page->flags);
 	}
@@ -266,7 +274,9 @@
 
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
+		preempt_disable();
 		__flush_invalidate_dcache_page_alias(t, phys);
+		preempt_enable();
 	}
 
 	/* Copy data */
@@ -281,9 +291,11 @@
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
 
+		preempt_disable();
 		__flush_invalidate_dcache_range((unsigned long) dst, len);
 		if ((vma->vm_flags & VM_EXEC) != 0)
 			__invalidate_icache_page_alias(t, phys);
+		preempt_enable();
 
 	} else if ((vma->vm_flags & VM_EXEC) != 0) {
 		__flush_dcache_range((unsigned long)dst,len);
@@ -305,7 +317,9 @@
 
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
+		preempt_disable();
 		__flush_invalidate_dcache_page_alias(t, phys);
+		preempt_enable();
 	}
 
 	memcpy(dst, src, len);
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/mm/kasan_init.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/mm/kasan_init.c
@@ -56,7 +56,9 @@
 
 		for (k = 0; k < PTRS_PER_PTE; ++k, ++j) {
 			phys_addr_t phys =
-				memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE);
+				memblock_phys_alloc_range(PAGE_SIZE, PAGE_SIZE,
+							  0,
+							  MEMBLOCK_ALLOC_ANYWHERE);
 
 			if (!phys)
 				panic("Failed to allocate page table page\n");
--- linux-gkeop-5.4-5.4.0.orig/arch/xtensa/mm/tlb.c
+++ linux-gkeop-5.4-5.4.0/arch/xtensa/mm/tlb.c
@@ -216,6 +216,8 @@
 	unsigned tlbidx = w | (e << PAGE_SHIFT);
 	unsigned r0 = dtlb ?
 		read_dtlb_virtual(tlbidx) : read_itlb_virtual(tlbidx);
+	unsigned r1 = dtlb ?
+		read_dtlb_translation(tlbidx) : read_itlb_translation(tlbidx);
 	unsigned vpn = (r0 & PAGE_MASK) | (e << PAGE_SHIFT);
 	unsigned pte = get_pte_for_vaddr(vpn);
 	unsigned mm_asid = (get_rasid_register() >> 8) & ASID_MASK;
@@ -231,8 +233,6 @@
 	}
 
 	if (tlb_asid == mm_asid) {
-		unsigned r1 = dtlb ? read_dtlb_translation(tlbidx) :
-			read_itlb_translation(tlbidx);
 		if ((pte ^ r1) & PAGE_MASK) {
 			pr_err("%cTLB: way: %u, entry: %u, mapping: %08x->%08x, PTE: %08x\n",
 					dtlb ? 'D' : 'I', w, e, r0, r1, pte);
--- linux-gkeop-5.4-5.4.0.orig/block/bfq-cgroup.c
+++ linux-gkeop-5.4-5.4.0/block/bfq-cgroup.c
@@ -593,12 +593,13 @@
 	 */
 	entity = &bfqg->entity;
 	for_each_entity(entity) {
-		bfqg = container_of(entity, struct bfq_group, entity);
-		if (bfqg != bfqd->root_group) {
-			parent = bfqg_parent(bfqg);
+		struct bfq_group *curr_bfqg = container_of(entity,
+						struct bfq_group, entity);
+		if (curr_bfqg != bfqd->root_group) {
+			parent = bfqg_parent(curr_bfqg);
 			if (!parent)
 				parent = bfqd->root_group;
-			bfq_group_set_parent(bfqg, parent);
+			bfq_group_set_parent(curr_bfqg, parent);
 		}
 	}
 
@@ -624,6 +625,12 @@
 {
 	struct bfq_entity *entity = &bfqq->entity;
 
+	/*
+	 * Get extra reference to prevent bfqq from being freed in
+	 * next possible expire or deactivate.
+	 */
+	bfqq->ref++;
+
 	/* If bfqq is empty, then bfq_bfqq_expire also invokes
 	 * bfq_del_bfqq_busy, thereby removing bfqq and its entity
 	 * from data structures related to current group. Otherwise we
@@ -653,6 +660,8 @@
 
 	if (!bfqd->in_service_queue && !bfqd->rq_in_driver)
 		bfq_schedule_dispatch(bfqd);
+	/* release extra ref taken above, bfqq may happen to be freed now */
+	bfq_put_queue(bfqq);
 }
 
 /**
@@ -688,10 +697,7 @@
 
 		if (entity->sched_data != &bfqg->sched_data) {
 			bic_set_bfqq(bic, NULL, 0);
-			bfq_log_bfqq(bfqd, async_bfqq,
-				     "bic_change_group: %p %d",
-				     async_bfqq, async_bfqq->ref);
-			bfq_put_queue(async_bfqq);
+			bfq_release_process_ref(bfqd, async_bfqq);
 		}
 	}
 
@@ -792,39 +798,53 @@
 /**
  * bfq_reparent_leaf_entity - move leaf entity to the root_group.
  * @bfqd: the device data structure with the root group.
- * @entity: the entity to move.
+ * @entity: the entity to move, if entity is a leaf; or the parent entity
+ *	    of an active leaf entity to move, if entity is not a leaf.
  */
 static void bfq_reparent_leaf_entity(struct bfq_data *bfqd,
-				     struct bfq_entity *entity)
+				     struct bfq_entity *entity,
+				     int ioprio_class)
 {
-	struct bfq_queue *bfqq = bfq_entity_to_bfqq(entity);
+	struct bfq_queue *bfqq;
+	struct bfq_entity *child_entity = entity;
+
+	while (child_entity->my_sched_data) { /* leaf not reached yet */
+		struct bfq_sched_data *child_sd = child_entity->my_sched_data;
+		struct bfq_service_tree *child_st = child_sd->service_tree +
+			ioprio_class;
+		struct rb_root *child_active = &child_st->active;
 
+		child_entity = bfq_entity_of(rb_first(child_active));
+
+		if (!child_entity)
+			child_entity = child_sd->in_service_entity;
+	}
+
+	bfqq = bfq_entity_to_bfqq(child_entity);
 	bfq_bfqq_move(bfqd, bfqq, bfqd->root_group);
 }
 
 /**
- * bfq_reparent_active_entities - move to the root group all active
- *                                entities.
+ * bfq_reparent_active_queues - move to the root group all active queues.
  * @bfqd: the device data structure with the root group.
  * @bfqg: the group to move from.
- * @st: the service tree with the entities.
+ * @st: the service tree to start the search from.
  */
-static void bfq_reparent_active_entities(struct bfq_data *bfqd,
-					 struct bfq_group *bfqg,
-					 struct bfq_service_tree *st)
+static void bfq_reparent_active_queues(struct bfq_data *bfqd,
+				       struct bfq_group *bfqg,
+				       struct bfq_service_tree *st,
+				       int ioprio_class)
 {
 	struct rb_root *active = &st->active;
-	struct bfq_entity *entity = NULL;
-
-	if (!RB_EMPTY_ROOT(&st->active))
-		entity = bfq_entity_of(rb_first(active));
+	struct bfq_entity *entity;
 
-	for (; entity ; entity = bfq_entity_of(rb_first(active)))
-		bfq_reparent_leaf_entity(bfqd, entity);
+	while ((entity = bfq_entity_of(rb_first(active))))
+		bfq_reparent_leaf_entity(bfqd, entity, ioprio_class);
 
 	if (bfqg->sched_data.in_service_entity)
 		bfq_reparent_leaf_entity(bfqd,
-			bfqg->sched_data.in_service_entity);
+					 bfqg->sched_data.in_service_entity,
+					 ioprio_class);
 }
 
 /**
@@ -857,13 +877,6 @@
 		st = bfqg->sched_data.service_tree + i;
 
 		/*
-		 * The idle tree may still contain bfq_queues belonging
-		 * to exited task because they never migrated to a different
-		 * cgroup from the one being destroyed now.
-		 */
-		bfq_flush_idle_tree(st);
-
-		/*
 		 * It may happen that some queues are still active
 		 * (busy) upon group destruction (if the corresponding
 		 * processes have been forced to terminate). We move
@@ -875,7 +888,20 @@
 		 * There is no need to put the sync queues, as the
 		 * scheduler has taken no reference.
 		 */
-		bfq_reparent_active_entities(bfqd, bfqg, st);
+		bfq_reparent_active_queues(bfqd, bfqg, st, i);
+
+		/*
+		 * The idle tree may still contain bfq_queues
+		 * belonging to exited task because they never
+		 * migrated to a different cgroup from the one being
+		 * destroyed now. In addition, even
+		 * bfq_reparent_active_queues() may happen to add some
+		 * entities to the idle tree. It happens if, in some
+		 * of the calls to bfq_bfqq_move() performed by
+		 * bfq_reparent_active_queues(), the queue to move is
+		 * empty and gets expired.
+		 */
+		bfq_flush_idle_tree(st);
 	}
 
 	__bfq_deactivate_entity(entity, false);
@@ -1380,6 +1406,10 @@
 	return bfqq->bfqd->root_group;
 }
 
+void bfqg_and_blkg_get(struct bfq_group *bfqg) {}
+
+void bfqg_and_blkg_put(struct bfq_group *bfqg) {}
+
 struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node)
 {
 	struct bfq_group *bfqg;
--- linux-gkeop-5.4-5.4.0.orig/block/bfq-iosched.c
+++ linux-gkeop-5.4-5.4.0/block/bfq-iosched.c
@@ -614,6 +614,10 @@
 		bfqq->pos_root = NULL;
 	}
 
+	/* oom_bfqq does not participate in queue merging */
+	if (bfqq == &bfqd->oom_bfqq)
+		return;
+
 	/*
 	 * bfqq cannot be merged any longer (see comments in
 	 * bfq_setup_cooperator): no point in adding bfqq into the
@@ -2713,8 +2717,6 @@
 	}
 }
 
-
-static
 void bfq_release_process_ref(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 {
 	/*
@@ -2935,6 +2937,7 @@
 	}
 
 	bfqd->in_service_queue = bfqq;
+	bfqd->in_serv_last_pos = 0;
 }
 
 /*
@@ -3444,6 +3447,10 @@
 static bool idling_needed_for_service_guarantees(struct bfq_data *bfqd,
 						 struct bfq_queue *bfqq)
 {
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	return (bfqq->wr_coeff > 1 &&
 		(bfqd->wr_busy_queues <
 		 bfq_tot_busy_queues(bfqd) ||
@@ -4077,6 +4084,10 @@
 		bfqq_sequential_and_IO_bound,
 		idling_boosts_thr;
 
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	bfqq_sequential_and_IO_bound = !BFQQ_SEEKY(bfqq) &&
 		bfq_bfqq_IO_bound(bfqq) && bfq_bfqq_has_short_ttime(bfqq);
 
@@ -4170,6 +4181,10 @@
 	struct bfq_data *bfqd = bfqq->bfqd;
 	bool idling_boosts_thr_with_no_issue, idling_needed_for_service_guar;
 
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	if (unlikely(bfqd->strict_guarantees))
 		return true;
 
@@ -4810,9 +4825,7 @@
 {
 	struct bfq_queue *item;
 	struct hlist_node *n;
-#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	struct bfq_group *bfqg = bfqq_group(bfqq);
-#endif
 
 	if (bfqq->bfqd)
 		bfq_log_bfqq(bfqq->bfqd, bfqq, "put_queue: %p %d",
@@ -4885,9 +4898,7 @@
 		bfqq->bfqd->last_completed_rq_bfqq = NULL;
 
 	kmem_cache_free(bfq_pool, bfqq);
-#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	bfqg_and_blkg_put(bfqg);
-#endif
 }
 
 static void bfq_put_cooperator(struct bfq_queue *bfqq)
@@ -5881,18 +5892,6 @@
 	struct bfq_data *bfqd;
 
 	/*
-	 * Requeue and finish hooks are invoked in blk-mq without
-	 * checking whether the involved request is actually still
-	 * referenced in the scheduler. To handle this fact, the
-	 * following two checks make this function exit in case of
-	 * spurious invocations, for which there is nothing to do.
-	 *
-	 * First, check whether rq has nothing to do with an elevator.
-	 */
-	if (unlikely(!(rq->rq_flags & RQF_ELVPRIV)))
-		return;
-
-	/*
 	 * rq either is not associated with any icq, or is an already
 	 * requeued request that has not (yet) been re-inserted into
 	 * a bfq_queue.
@@ -6198,20 +6197,28 @@
 	return bfqq;
 }
 
-static void bfq_idle_slice_timer_body(struct bfq_queue *bfqq)
+static void
+bfq_idle_slice_timer_body(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 {
-	struct bfq_data *bfqd = bfqq->bfqd;
 	enum bfqq_expiration reason;
 	unsigned long flags;
 
 	spin_lock_irqsave(&bfqd->lock, flags);
-	bfq_clear_bfqq_wait_request(bfqq);
 
+	/*
+	 * Considering that bfqq may be in race, we should firstly check
+	 * whether bfqq is in service before doing something on it. If
+	 * the bfqq in race is not in service, it has already been expired
+	 * through __bfq_bfqq_expire func and its wait_request flags has
+	 * been cleared in __bfq_bfqd_reset_in_service func.
+	 */
 	if (bfqq != bfqd->in_service_queue) {
 		spin_unlock_irqrestore(&bfqd->lock, flags);
 		return;
 	}
 
+	bfq_clear_bfqq_wait_request(bfqq);
+
 	if (bfq_bfqq_budget_timeout(bfqq))
 		/*
 		 * Also here the queue can be safely expired
@@ -6256,7 +6263,7 @@
 	 * early.
 	 */
 	if (bfqq)
-		bfq_idle_slice_timer_body(bfqq);
+		bfq_idle_slice_timer_body(bfqd, bfqq);
 
 	return HRTIMER_NORESTART;
 }
@@ -6371,10 +6378,10 @@
 
 	hrtimer_cancel(&bfqd->idle_slice_timer);
 
-#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	/* release oom-queue reference to root group */
 	bfqg_and_blkg_put(bfqd->root_group);
 
+#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	blkcg_deactivate_policy(bfqd->queue, &blkcg_policy_bfq);
 #else
 	spin_lock_irq(&bfqd->lock);
--- linux-gkeop-5.4-5.4.0.orig/block/bfq-iosched.h
+++ linux-gkeop-5.4-5.4.0/block/bfq-iosched.h
@@ -916,6 +916,7 @@
 
 #else
 struct bfq_group {
+	struct bfq_entity entity;
 	struct bfq_sched_data sched_data;
 
 	struct bfq_queue *async_bfqq[2][IOPRIO_BE_NR];
@@ -949,6 +950,7 @@
 		     bool compensate, enum bfqq_expiration reason);
 void bfq_put_queue(struct bfq_queue *bfqq);
 void bfq_end_wr_async_queues(struct bfq_data *bfqd, struct bfq_group *bfqg);
+void bfq_release_process_ref(struct bfq_data *bfqd, struct bfq_queue *bfqq);
 void bfq_schedule_dispatch(struct bfq_data *bfqd);
 void bfq_put_async_queues(struct bfq_data *bfqd, struct bfq_group *bfqg);
 
--- linux-gkeop-5.4-5.4.0.orig/block/bio-integrity.c
+++ linux-gkeop-5.4-5.4.0/block/bio-integrity.c
@@ -24,6 +24,18 @@
 	flush_workqueue(kintegrityd_wq);
 }
 
+void __bio_integrity_free(struct bio_set *bs, struct bio_integrity_payload *bip)
+{
+	if (bs && mempool_initialized(&bs->bio_integrity_pool)) {
+		if (bip->bip_vec)
+			bvec_free(&bs->bvec_integrity_pool, bip->bip_vec,
+				  bip->bip_slab);
+		mempool_free(bip, &bs->bio_integrity_pool);
+	} else {
+		kfree(bip);
+	}
+}
+
 /**
  * bio_integrity_alloc - Allocate integrity payload and attach it to bio
  * @bio:	bio to attach integrity metadata to
@@ -75,7 +87,7 @@
 
 	return bip;
 err:
-	mempool_free(bip, &bs->bio_integrity_pool);
+	__bio_integrity_free(bs, bip);
 	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL(bio_integrity_alloc);
@@ -87,7 +99,7 @@
  * Description: Used to free the integrity portion of a bio. Usually
  * called from bio_free().
  */
-static void bio_integrity_free(struct bio *bio)
+void bio_integrity_free(struct bio *bio)
 {
 	struct bio_integrity_payload *bip = bio_integrity(bio);
 	struct bio_set *bs = bio->bi_pool;
@@ -96,14 +108,7 @@
 		kfree(page_address(bip->bip_vec->bv_page) +
 		      bip->bip_vec->bv_offset);
 
-	if (bs && mempool_initialized(&bs->bio_integrity_pool)) {
-		bvec_free(&bs->bvec_integrity_pool, bip->bip_vec, bip->bip_slab);
-
-		mempool_free(bip, &bs->bio_integrity_pool);
-	} else {
-		kfree(bip);
-	}
-
+	__bio_integrity_free(bs, bip);
 	bio->bi_integrity = NULL;
 	bio->bi_opf &= ~REQ_INTEGRITY;
 }
@@ -278,7 +283,6 @@
 
 		if (ret == 0) {
 			printk(KERN_ERR "could not attach integrity payload\n");
-			kfree(buf);
 			status = BLK_STS_RESOURCE;
 			goto err_end_io;
 		}
--- linux-gkeop-5.4-5.4.0.orig/block/bio.c
+++ linux-gkeop-5.4-5.4.0/block/bio.c
@@ -233,6 +233,9 @@
 void bio_uninit(struct bio *bio)
 {
 	bio_disassociate_blkg(bio);
+
+	if (bio_integrity(bio))
+		bio_integrity_free(bio);
 }
 EXPORT_SYMBOL(bio_uninit);
 
@@ -536,6 +539,55 @@
 EXPORT_SYMBOL(zero_fill_bio_iter);
 
 /**
+ * bio_truncate - truncate the bio to small size of @new_size
+ * @bio:	the bio to be truncated
+ * @new_size:	new size for truncating the bio
+ *
+ * Description:
+ *   Truncate the bio to new size of @new_size. If bio_op(bio) is
+ *   REQ_OP_READ, zero the truncated part. This function should only
+ *   be used for handling corner cases, such as bio eod.
+ */
+void bio_truncate(struct bio *bio, unsigned new_size)
+{
+	struct bio_vec bv;
+	struct bvec_iter iter;
+	unsigned int done = 0;
+	bool truncated = false;
+
+	if (new_size >= bio->bi_iter.bi_size)
+		return;
+
+	if (bio_op(bio) != REQ_OP_READ)
+		goto exit;
+
+	bio_for_each_segment(bv, bio, iter) {
+		if (done + bv.bv_len > new_size) {
+			unsigned offset;
+
+			if (!truncated)
+				offset = new_size - done;
+			else
+				offset = 0;
+			zero_user(bv.bv_page, offset, bv.bv_len - offset);
+			truncated = true;
+		}
+		done += bv.bv_len;
+	}
+
+ exit:
+	/*
+	 * Don't touch bvec table here and make it really immutable, since
+	 * fs bio user has to retrieve all pages via bio_for_each_segment_all
+	 * in its .end_bio() callback.
+	 *
+	 * It is enough to truncate bio by updating .bi_size since we can make
+	 * correct bvec with the updated .bi_size for drivers.
+	 */
+	bio->bi_iter.bi_size = new_size;
+}
+
+/**
  * bio_put - release a reference to a bio
  * @bio:   bio to release reference to
  *
@@ -631,8 +683,8 @@
 		struct page *page, unsigned int len, unsigned int off,
 		bool *same_page)
 {
-	phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) +
-		bv->bv_offset + bv->bv_len - 1;
+	size_t bv_end = bv->bv_offset + bv->bv_len;
+	phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1;
 	phys_addr_t page_addr = page_to_phys(page);
 
 	if (vec_end_addr + 1 != page_addr + off)
@@ -641,9 +693,9 @@
 		return false;
 
 	*same_page = ((vec_end_addr & PAGE_MASK) == page_addr);
-	if (!*same_page && pfn_to_page(PFN_DOWN(vec_end_addr)) + 1 != page)
-		return false;
-	return true;
+	if (*same_page)
+		return true;
+	return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE);
 }
 
 static bool bio_try_merge_pc_page(struct request_queue *q, struct bio *bio,
@@ -751,10 +803,14 @@
 	if (WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED)))
 		return false;
 
-	if (bio->bi_vcnt > 0 && !bio_full(bio, len)) {
+	if (bio->bi_vcnt > 0) {
 		struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1];
 
 		if (page_is_mergeable(bv, page, len, off, same_page)) {
+			if (bio->bi_iter.bi_size > UINT_MAX - len) {
+				*same_page = false;
+				return false;
+			}
 			bv->bv_len += len;
 			bio->bi_iter.bi_size += len;
 			return true;
@@ -1698,14 +1754,14 @@
 	schedule_work(&bio_dirty_work);
 }
 
-void update_io_ticks(struct hd_struct *part, unsigned long now)
+void update_io_ticks(struct hd_struct *part, unsigned long now, bool end)
 {
 	unsigned long stamp;
 again:
 	stamp = READ_ONCE(part->stamp);
 	if (unlikely(stamp != now)) {
 		if (likely(cmpxchg(&part->stamp, stamp, now) == stamp)) {
-			__part_stat_add(part, io_ticks, 1);
+			__part_stat_add(part, io_ticks, end ? now - stamp : 1);
 		}
 	}
 	if (part->partno) {
@@ -1721,7 +1777,7 @@
 
 	part_stat_lock();
 
-	update_io_ticks(part, jiffies);
+	update_io_ticks(part, jiffies, false);
 	part_stat_inc(part, ios[sgrp]);
 	part_stat_add(part, sectors[sgrp], sectors);
 	part_inc_in_flight(q, part, op_is_write(op));
@@ -1739,7 +1795,7 @@
 
 	part_stat_lock();
 
-	update_io_ticks(part, now);
+	update_io_ticks(part, now, true);
 	part_stat_add(part, nsecs[sgrp], jiffies_to_nsecs(duration));
 	part_stat_add(part, time_in_queue, duration);
 	part_dec_in_flight(q, part, op_is_write(req_op));
--- linux-gkeop-5.4-5.4.0.orig/block/blk-cgroup.c
+++ linux-gkeop-5.4-5.4.0/block/blk-cgroup.c
@@ -855,13 +855,20 @@
 			goto fail;
 		}
 
+		if (radix_tree_preload(GFP_KERNEL)) {
+			blkg_free(new_blkg);
+			ret = -ENOMEM;
+			goto fail;
+		}
+
 		rcu_read_lock();
 		spin_lock_irq(&q->queue_lock);
 
 		blkg = blkg_lookup_check(pos, pol, q);
 		if (IS_ERR(blkg)) {
 			ret = PTR_ERR(blkg);
-			goto fail_unlock;
+			blkg_free(new_blkg);
+			goto fail_preloaded;
 		}
 
 		if (blkg) {
@@ -870,10 +877,12 @@
 			blkg = blkg_create(pos, q, new_blkg);
 			if (IS_ERR(blkg)) {
 				ret = PTR_ERR(blkg);
-				goto fail_unlock;
+				goto fail_preloaded;
 			}
 		}
 
+		radix_tree_preload_end();
+
 		if (pos == blkcg)
 			goto success;
 	}
@@ -883,6 +892,8 @@
 	ctx->body = input;
 	return 0;
 
+fail_preloaded:
+	radix_tree_preload_end();
 fail_unlock:
 	spin_unlock_irq(&q->queue_lock);
 	rcu_read_unlock();
@@ -1078,6 +1089,8 @@
  */
 void blkcg_destroy_blkgs(struct blkcg *blkcg)
 {
+	might_sleep();
+
 	spin_lock_irq(&blkcg->lock);
 
 	while (!hlist_empty(&blkcg->blkg_list)) {
@@ -1085,14 +1098,20 @@
 						struct blkcg_gq, blkcg_node);
 		struct request_queue *q = blkg->q;
 
-		if (spin_trylock(&q->queue_lock)) {
-			blkg_destroy(blkg);
-			spin_unlock(&q->queue_lock);
-		} else {
+		if (need_resched() || !spin_trylock(&q->queue_lock)) {
+			/*
+			 * Given that the system can accumulate a huge number
+			 * of blkgs in pathological cases, check to see if we
+			 * need to rescheduling to avoid softlockup.
+			 */
 			spin_unlock_irq(&blkcg->lock);
-			cpu_relax();
+			cond_resched();
 			spin_lock_irq(&blkcg->lock);
+			continue;
 		}
+
+		blkg_destroy(blkg);
+		spin_unlock(&q->queue_lock);
 	}
 
 	spin_unlock_irq(&blkcg->lock);
@@ -1219,13 +1238,15 @@
 	if (preloaded)
 		radix_tree_preload_end();
 
-	ret = blk_iolatency_init(q);
+	ret = blk_throtl_init(q);
 	if (ret)
 		goto err_destroy_all;
 
-	ret = blk_throtl_init(q);
-	if (ret)
+	ret = blk_iolatency_init(q);
+	if (ret) {
+		blk_throtl_exit(q);
 		goto err_destroy_all;
+	}
 	return 0;
 
 err_destroy_all:
--- linux-gkeop-5.4-5.4.0.orig/block/blk-core.c
+++ linux-gkeop-5.4-5.4.0/block/blk-core.c
@@ -502,6 +502,7 @@
 		goto fail_stats;
 
 	q->backing_dev_info->ra_pages = VM_READAHEAD_PAGES;
+	q->backing_dev_info->io_pages = VM_READAHEAD_PAGES;
 	q->backing_dev_info->capabilities = BDI_CAP_CGROUP_WRITEBACK;
 	q->backing_dev_info->name = "block";
 	q->node = node_id;
@@ -742,11 +743,10 @@
 {
 	char b[BDEVNAME_SIZE];
 
-	printk(KERN_INFO "attempt to access beyond end of device\n");
-	printk(KERN_INFO "%s: rw=%d, want=%Lu, limit=%Lu\n",
-			bio_devname(bio, b), bio->bi_opf,
-			(unsigned long long)bio_end_sector(bio),
-			(long long)maxsector);
+	pr_info_ratelimited("attempt to access beyond end of device\n"
+			    "%s: rw=%d, want=%llu, limit=%llu\n",
+			    bio_devname(bio, b), bio->bi_opf,
+			    bio_end_sector(bio), maxsector);
 }
 
 #ifdef CONFIG_FAIL_MAKE_REQUEST
@@ -886,11 +886,14 @@
 	}
 
 	/*
-	 * For a REQ_NOWAIT based request, return -EOPNOTSUPP
-	 * if queue is not a request based queue.
+	 * Non-mq queues do not honor REQ_NOWAIT, so complete a bio
+	 * with BLK_STS_AGAIN status in order to catch -EAGAIN and
+	 * to give a chance to the caller to repeat request gracefully.
 	 */
-	if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q))
-		goto not_supported;
+	if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) {
+		status = BLK_STS_AGAIN;
+		goto end_io;
+	}
 
 	if (should_fail_bio(bio))
 		goto end_io;
@@ -1333,7 +1336,7 @@
 		part_stat_lock();
 		part = req->part;
 
-		update_io_ticks(part, jiffies);
+		update_io_ticks(part, jiffies, true);
 		part_stat_inc(part, ios[sgrp]);
 		part_stat_add(part, nsecs[sgrp], now - req->start_time_ns);
 		part_stat_add(part, time_in_queue, nsecs_to_jiffies64(now - req->start_time_ns));
@@ -1375,7 +1378,7 @@
 		rq->part = part;
 	}
 
-	update_io_ticks(part, jiffies);
+	update_io_ticks(part, jiffies, false);
 
 	part_stat_unlock();
 }
--- linux-gkeop-5.4-5.4.0.orig/block/blk-flush.c
+++ linux-gkeop-5.4-5.4.0/block/blk-flush.c
@@ -69,6 +69,7 @@
 #include <linux/blkdev.h>
 #include <linux/gfp.h>
 #include <linux/blk-mq.h>
+#include <linux/lockdep.h>
 
 #include "blk.h"
 #include "blk-mq.h"
@@ -398,7 +399,7 @@
 	 */
 	if ((policy & REQ_FSEQ_DATA) &&
 	    !(policy & (REQ_FSEQ_PREFLUSH | REQ_FSEQ_POSTFLUSH))) {
-		blk_mq_request_bypass_insert(rq, false);
+		blk_mq_request_bypass_insert(rq, false, false);
 		return;
 	}
 
@@ -492,6 +493,9 @@
 	INIT_LIST_HEAD(&fq->flush_queue[1]);
 	INIT_LIST_HEAD(&fq->flush_data_in_flight);
 
+	lockdep_register_key(&fq->key);
+	lockdep_set_class(&fq->mq_flush_lock, &fq->key);
+
 	return fq;
 
  fail_rq:
@@ -506,6 +510,7 @@
 	if (!fq)
 		return;
 
+	lockdep_unregister_key(&fq->key);
 	kfree(fq->flush_rq);
 	kfree(fq);
 }
--- linux-gkeop-5.4-5.4.0.orig/block/blk-ioc.c
+++ linux-gkeop-5.4-5.4.0/block/blk-ioc.c
@@ -84,6 +84,7 @@
 	 * making it impossible to determine icq_cache.  Record it in @icq.
 	 */
 	icq->__rcu_icq_cache = et->icq_cache;
+	icq->flags |= ICQ_DESTROYED;
 	call_rcu(&icq->__rcu_head, icq_free_icq_rcu);
 }
 
@@ -212,15 +213,21 @@
 {
 	unsigned long flags;
 
+	rcu_read_lock();
 	while (!list_empty(icq_list)) {
 		struct io_cq *icq = list_entry(icq_list->next,
 						struct io_cq, q_node);
 		struct io_context *ioc = icq->ioc;
 
 		spin_lock_irqsave(&ioc->lock, flags);
+		if (icq->flags & ICQ_DESTROYED) {
+			spin_unlock_irqrestore(&ioc->lock, flags);
+			continue;
+		}
 		ioc_destroy_icq(icq);
 		spin_unlock_irqrestore(&ioc->lock, flags);
 	}
+	rcu_read_unlock();
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/block/blk-iocost.c
+++ linux-gkeop-5.4-5.4.0/block/blk-iocost.c
@@ -469,7 +469,7 @@
 	 */
 	atomic64_t			vtime;
 	atomic64_t			done_vtime;
-	atomic64_t			abs_vdebt;
+	u64				abs_vdebt;
 	u64				last_vtime;
 
 	/*
@@ -1145,7 +1145,7 @@
 	struct iocg_wake_ctx ctx = { .iocg = iocg };
 	u64 margin_ns = (u64)(ioc->period_us *
 			      WAITQ_TIMER_MARGIN_PCT / 100) * NSEC_PER_USEC;
-	u64 abs_vdebt, vdebt, vshortage, expires, oexpires;
+	u64 vdebt, vshortage, expires, oexpires;
 	s64 vbudget;
 	u32 hw_inuse;
 
@@ -1155,18 +1155,15 @@
 	vbudget = now->vnow - atomic64_read(&iocg->vtime);
 
 	/* pay off debt */
-	abs_vdebt = atomic64_read(&iocg->abs_vdebt);
-	vdebt = abs_cost_to_cost(abs_vdebt, hw_inuse);
+	vdebt = abs_cost_to_cost(iocg->abs_vdebt, hw_inuse);
 	if (vdebt && vbudget > 0) {
 		u64 delta = min_t(u64, vbudget, vdebt);
 		u64 abs_delta = min(cost_to_abs_cost(delta, hw_inuse),
-				    abs_vdebt);
+				    iocg->abs_vdebt);
 
 		atomic64_add(delta, &iocg->vtime);
 		atomic64_add(delta, &iocg->done_vtime);
-		atomic64_sub(abs_delta, &iocg->abs_vdebt);
-		if (WARN_ON_ONCE(atomic64_read(&iocg->abs_vdebt) < 0))
-			atomic64_set(&iocg->abs_vdebt, 0);
+		iocg->abs_vdebt -= abs_delta;
 	}
 
 	/*
@@ -1212,7 +1209,7 @@
 	return HRTIMER_NORESTART;
 }
 
-static void iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost)
+static bool iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost)
 {
 	struct ioc *ioc = iocg->ioc;
 	struct blkcg_gq *blkg = iocg_to_blkg(iocg);
@@ -1222,18 +1219,24 @@
 	u64 expires, oexpires;
 	u32 hw_inuse;
 
+	lockdep_assert_held(&iocg->waitq.lock);
+
 	/* debt-adjust vtime */
 	current_hweight(iocg, NULL, &hw_inuse);
-	vtime += abs_cost_to_cost(atomic64_read(&iocg->abs_vdebt), hw_inuse);
+	vtime += abs_cost_to_cost(iocg->abs_vdebt, hw_inuse);
 
-	/* clear or maintain depending on the overage */
-	if (time_before_eq64(vtime, now->vnow)) {
+	/*
+	 * Clear or maintain depending on the overage. Non-zero vdebt is what
+	 * guarantees that @iocg is online and future iocg_kick_delay() will
+	 * clear use_delay. Don't leave it on when there's no vdebt.
+	 */
+	if (!iocg->abs_vdebt || time_before_eq64(vtime, now->vnow)) {
 		blkcg_clear_delay(blkg);
-		return;
+		return false;
 	}
 	if (!atomic_read(&blkg->use_delay) &&
 	    time_before_eq64(vtime, now->vnow + vmargin))
-		return;
+		return false;
 
 	/* use delay */
 	if (cost) {
@@ -1250,19 +1253,23 @@
 	oexpires = ktime_to_ns(hrtimer_get_softexpires(&iocg->delay_timer));
 	if (hrtimer_is_queued(&iocg->delay_timer) &&
 	    abs(oexpires - expires) <= margin_ns / 4)
-		return;
+		return true;
 
 	hrtimer_start_range_ns(&iocg->delay_timer, ns_to_ktime(expires),
 			       margin_ns / 4, HRTIMER_MODE_ABS);
+	return true;
 }
 
 static enum hrtimer_restart iocg_delay_timer_fn(struct hrtimer *timer)
 {
 	struct ioc_gq *iocg = container_of(timer, struct ioc_gq, delay_timer);
 	struct ioc_now now;
+	unsigned long flags;
 
+	spin_lock_irqsave(&iocg->waitq.lock, flags);
 	ioc_now(iocg->ioc, &now);
 	iocg_kick_delay(iocg, &now, 0);
+	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
 
 	return HRTIMER_NORESTART;
 }
@@ -1317,7 +1324,7 @@
 		return false;
 
 	/* is something in flight? */
-	if (atomic64_read(&iocg->done_vtime) < atomic64_read(&iocg->vtime))
+	if (atomic64_read(&iocg->done_vtime) != atomic64_read(&iocg->vtime))
 		return false;
 
 	return true;
@@ -1370,14 +1377,13 @@
 	 * should have woken up in the last period and expire idle iocgs.
 	 */
 	list_for_each_entry_safe(iocg, tiocg, &ioc->active_iocgs, active_list) {
-		if (!waitqueue_active(&iocg->waitq) &&
-		    !atomic64_read(&iocg->abs_vdebt) && !iocg_is_idle(iocg))
+		if (!waitqueue_active(&iocg->waitq) && !iocg->abs_vdebt &&
+		    !iocg_is_idle(iocg))
 			continue;
 
 		spin_lock(&iocg->waitq.lock);
 
-		if (waitqueue_active(&iocg->waitq) ||
-		    atomic64_read(&iocg->abs_vdebt)) {
+		if (waitqueue_active(&iocg->waitq) || iocg->abs_vdebt) {
 			/* might be oversleeping vtime / hweight changes, kick */
 			iocg_kick_waitq(iocg, &now);
 			iocg_kick_delay(iocg, &now, 0);
@@ -1540,19 +1546,39 @@
 	if (rq_wait_pct > RQ_WAIT_BUSY_PCT ||
 	    missed_ppm[READ] > ppm_rthr ||
 	    missed_ppm[WRITE] > ppm_wthr) {
+		/* clearly missing QoS targets, slow down vrate */
 		ioc->busy_level = max(ioc->busy_level, 0);
 		ioc->busy_level++;
 	} else if (rq_wait_pct <= RQ_WAIT_BUSY_PCT * UNBUSY_THR_PCT / 100 &&
 		   missed_ppm[READ] <= ppm_rthr * UNBUSY_THR_PCT / 100 &&
 		   missed_ppm[WRITE] <= ppm_wthr * UNBUSY_THR_PCT / 100) {
-		/* take action iff there is contention */
-		if (nr_shortages && !nr_lagging) {
+		/* QoS targets are being met with >25% margin */
+		if (nr_shortages) {
+			/*
+			 * We're throttling while the device has spare
+			 * capacity.  If vrate was being slowed down, stop.
+			 */
 			ioc->busy_level = min(ioc->busy_level, 0);
-			/* redistribute surpluses first */
-			if (!nr_surpluses)
+
+			/*
+			 * If there are IOs spanning multiple periods, wait
+			 * them out before pushing the device harder.  If
+			 * there are surpluses, let redistribution work it
+			 * out first.
+			 */
+			if (!nr_lagging && !nr_surpluses)
 				ioc->busy_level--;
+		} else {
+			/*
+			 * Nobody is being throttled and the users aren't
+			 * issuing enough IOs to saturate the device.  We
+			 * simply don't know how close the device is to
+			 * saturation.  Coast.
+			 */
+			ioc->busy_level = 0;
 		}
 	} else {
+		/* inside the hysterisis margin, we're good */
 		ioc->busy_level = 0;
 	}
 
@@ -1593,7 +1619,7 @@
 				      vrate_min, vrate_max);
 		}
 
-		trace_iocost_ioc_vrate_adj(ioc, vrate, &missed_ppm, rq_wait_pct,
+		trace_iocost_ioc_vrate_adj(ioc, vrate, missed_ppm, rq_wait_pct,
 					   nr_lagging, nr_shortages,
 					   nr_surpluses);
 
@@ -1602,7 +1628,7 @@
 			ioc->period_us * vrate * INUSE_MARGIN_PCT, 100);
 	} else if (ioc->busy_level != prev_busy_level || nr_lagging) {
 		trace_iocost_ioc_vrate_adj(ioc, atomic64_read(&ioc->vtime_rate),
-					   &missed_ppm, rq_wait_pct, nr_lagging,
+					   missed_ppm, rq_wait_pct, nr_lagging,
 					   nr_shortages, nr_surpluses);
 	}
 
@@ -1720,26 +1746,49 @@
 	 * tests are racy but the races aren't systemic - we only miss once
 	 * in a while which is fine.
 	 */
-	if (!waitqueue_active(&iocg->waitq) &&
-	    !atomic64_read(&iocg->abs_vdebt) &&
+	if (!waitqueue_active(&iocg->waitq) && !iocg->abs_vdebt &&
 	    time_before_eq64(vtime + cost, now.vnow)) {
 		iocg_commit_bio(iocg, bio, cost);
 		return;
 	}
 
 	/*
-	 * We're over budget.  If @bio has to be issued regardless,
-	 * remember the abs_cost instead of advancing vtime.
-	 * iocg_kick_waitq() will pay off the debt before waking more IOs.
+	 * We activated above but w/o any synchronization. Deactivation is
+	 * synchronized with waitq.lock and we won't get deactivated as long
+	 * as we're waiting or has debt, so we're good if we're activated
+	 * here. In the unlikely case that we aren't, just issue the IO.
+	 */
+	spin_lock_irq(&iocg->waitq.lock);
+
+	if (unlikely(list_empty(&iocg->active_list))) {
+		spin_unlock_irq(&iocg->waitq.lock);
+		iocg_commit_bio(iocg, bio, cost);
+		return;
+	}
+
+	/*
+	 * We're over budget. If @bio has to be issued regardless, remember
+	 * the abs_cost instead of advancing vtime. iocg_kick_waitq() will pay
+	 * off the debt before waking more IOs.
+	 *
 	 * This way, the debt is continuously paid off each period with the
-	 * actual budget available to the cgroup.  If we just wound vtime,
-	 * we would incorrectly use the current hw_inuse for the entire
-	 * amount which, for example, can lead to the cgroup staying
-	 * blocked for a long time even with substantially raised hw_inuse.
+	 * actual budget available to the cgroup. If we just wound vtime, we
+	 * would incorrectly use the current hw_inuse for the entire amount
+	 * which, for example, can lead to the cgroup staying blocked for a
+	 * long time even with substantially raised hw_inuse.
+	 *
+	 * An iocg with vdebt should stay online so that the timer can keep
+	 * deducting its vdebt and [de]activate use_delay mechanism
+	 * accordingly. We don't want to race against the timer trying to
+	 * clear them and leave @iocg inactive w/ dangling use_delay heavily
+	 * penalizing the cgroup and its descendants.
 	 */
 	if (bio_issue_as_root_blkg(bio) || fatal_signal_pending(current)) {
-		atomic64_add(abs_cost, &iocg->abs_vdebt);
-		iocg_kick_delay(iocg, &now, cost);
+		iocg->abs_vdebt += abs_cost;
+		if (iocg_kick_delay(iocg, &now, cost))
+			blkcg_schedule_throttle(rqos->q,
+					(bio->bi_opf & REQ_SWAP) == REQ_SWAP);
+		spin_unlock_irq(&iocg->waitq.lock);
 		return;
 	}
 
@@ -1756,20 +1805,6 @@
 	 * All waiters are on iocg->waitq and the wait states are
 	 * synchronized using waitq.lock.
 	 */
-	spin_lock_irq(&iocg->waitq.lock);
-
-	/*
-	 * We activated above but w/o any synchronization.  Deactivation is
-	 * synchronized with waitq.lock and we won't get deactivated as
-	 * long as we're waiting, so we're good if we're activated here.
-	 * In the unlikely case that we are deactivated, just issue the IO.
-	 */
-	if (unlikely(list_empty(&iocg->active_list))) {
-		spin_unlock_irq(&iocg->waitq.lock);
-		iocg_commit_bio(iocg, bio, cost);
-		return;
-	}
-
 	init_waitqueue_func_entry(&wait.wait, iocg_wake_fn);
 	wait.wait.private = current;
 	wait.bio = bio;
@@ -1801,6 +1836,7 @@
 	struct ioc_now now;
 	u32 hw_inuse;
 	u64 abs_cost, cost;
+	unsigned long flags;
 
 	/* bypass if disabled or for root cgroup */
 	if (!ioc->enabled || !iocg->level)
@@ -1820,15 +1856,28 @@
 		iocg->cursor = bio_end;
 
 	/*
-	 * Charge if there's enough vtime budget and the existing request
-	 * has cost assigned.  Otherwise, account it as debt.  See debt
-	 * handling in ioc_rqos_throttle() for details.
+	 * Charge if there's enough vtime budget and the existing request has
+	 * cost assigned.
 	 */
 	if (rq->bio && rq->bio->bi_iocost_cost &&
-	    time_before_eq64(atomic64_read(&iocg->vtime) + cost, now.vnow))
+	    time_before_eq64(atomic64_read(&iocg->vtime) + cost, now.vnow)) {
 		iocg_commit_bio(iocg, bio, cost);
-	else
-		atomic64_add(abs_cost, &iocg->abs_vdebt);
+		return;
+	}
+
+	/*
+	 * Otherwise, account it as debt if @iocg is online, which it should
+	 * be for the vast majority of cases. See debt handling in
+	 * ioc_rqos_throttle() for details.
+	 */
+	spin_lock_irqsave(&iocg->waitq.lock, flags);
+	if (likely(!list_empty(&iocg->active_list))) {
+		iocg->abs_vdebt += abs_cost;
+		iocg_kick_delay(iocg, &now, cost);
+	} else {
+		iocg_commit_bio(iocg, bio, cost);
+	}
+	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
 }
 
 static void ioc_rqos_done_bio(struct rq_qos *rqos, struct bio *bio)
@@ -1998,7 +2047,6 @@
 	iocg->ioc = ioc;
 	atomic64_set(&iocg->vtime, now.vnow);
 	atomic64_set(&iocg->done_vtime, now.vnow);
-	atomic64_set(&iocg->abs_vdebt, 0);
 	atomic64_set(&iocg->active_period, atomic64_read(&ioc->cur_period));
 	INIT_LIST_HEAD(&iocg->active_list);
 	iocg->hweight_active = HWEIGHT_WHOLE;
@@ -2026,14 +2074,15 @@
 {
 	struct ioc_gq *iocg = pd_to_iocg(pd);
 	struct ioc *ioc = iocg->ioc;
+	unsigned long flags;
 
 	if (ioc) {
-		spin_lock(&ioc->lock);
+		spin_lock_irqsave(&ioc->lock, flags);
 		if (!list_empty(&iocg->active_list)) {
 			propagate_active_weight(iocg, 0, 0);
 			list_del_init(&iocg->active_list);
 		}
-		spin_unlock(&ioc->lock);
+		spin_unlock_irqrestore(&ioc->lock, flags);
 
 		hrtimer_cancel(&iocg->waitq_timer);
 		hrtimer_cancel(&iocg->delay_timer);
--- linux-gkeop-5.4-5.4.0.orig/block/blk-map.c
+++ linux-gkeop-5.4-5.4.0/block/blk-map.c
@@ -151,7 +151,7 @@
 	return 0;
 
 unmap_rq:
-	__blk_rq_unmap_user(bio);
+	blk_rq_unmap_user(bio);
 fail:
 	rq->bio = NULL;
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/block/blk-merge.c
+++ linux-gkeop-5.4-5.4.0/block/blk-merge.c
@@ -154,20 +154,23 @@
 	if (max_sectors > start_offset)
 		return max_sectors - start_offset;
 
-	return sectors & (lbs - 1);
+	return sectors & ~(lbs - 1);
 }
 
-static unsigned get_max_segment_size(const struct request_queue *q,
-				     unsigned offset)
+static inline unsigned get_max_segment_size(const struct request_queue *q,
+					    struct page *start_page,
+					    unsigned long offset)
 {
 	unsigned long mask = queue_segment_boundary(q);
 
-	/* default segment boundary mask means no boundary limit */
-	if (mask == BLK_SEG_BOUNDARY_MASK)
-		return queue_max_segment_size(q);
+	offset = mask & (page_to_phys(start_page) + offset);
 
-	return min_t(unsigned long, mask - (mask & offset) + 1,
-		     queue_max_segment_size(q));
+	/*
+	 * overflow may be triggered in case of zero page physical address
+	 * on 32bit arch, use queue's max segment size when that happens.
+	 */
+	return min_not_zero(mask - offset + 1,
+			(unsigned long)queue_max_segment_size(q));
 }
 
 /**
@@ -201,7 +204,8 @@
 	unsigned seg_size = 0;
 
 	while (len && *nsegs < max_segs) {
-		seg_size = get_max_segment_size(q, bv->bv_offset + total_len);
+		seg_size = get_max_segment_size(q, bv->bv_page,
+						bv->bv_offset + total_len);
 		seg_size = min(seg_size, len);
 
 		(*nsegs)++;
@@ -404,7 +408,8 @@
 
 	while (nbytes > 0) {
 		unsigned offset = bvec->bv_offset + total;
-		unsigned len = min(get_max_segment_size(q, offset), nbytes);
+		unsigned len = min(get_max_segment_size(q, bvec->bv_page,
+					offset), nbytes);
 		struct page *page = bvec->bv_page;
 
 		/*
@@ -548,10 +553,17 @@
 }
 EXPORT_SYMBOL(blk_rq_map_sg);
 
+static inline unsigned int blk_rq_get_max_segments(struct request *rq)
+{
+	if (req_op(rq) == REQ_OP_DISCARD)
+		return queue_max_discard_segments(rq->q);
+	return queue_max_segments(rq->q);
+}
+
 static inline int ll_new_hw_segment(struct request *req, struct bio *bio,
 		unsigned int nr_phys_segs)
 {
-	if (req->nr_phys_segments + nr_phys_segs > queue_max_segments(req->q))
+	if (req->nr_phys_segments + nr_phys_segs > blk_rq_get_max_segments(req))
 		goto no_merge;
 
 	if (blk_integrity_merge_bio(req->q, req, bio) == false)
@@ -635,7 +647,7 @@
 		return 0;
 
 	total_phys_segments = req->nr_phys_segments + next->nr_phys_segments;
-	if (total_phys_segments > queue_max_segments(q))
+	if (total_phys_segments > blk_rq_get_max_segments(req))
 		return 0;
 
 	if (blk_integrity_merge_rq(q, req, next) == false)
--- linux-gkeop-5.4-5.4.0.orig/block/blk-mq-debugfs.c
+++ linux-gkeop-5.4-5.4.0/block/blk-mq-debugfs.c
@@ -125,6 +125,9 @@
 	QUEUE_FLAG_NAME(REGISTERED),
 	QUEUE_FLAG_NAME(SCSI_PASSTHROUGH),
 	QUEUE_FLAG_NAME(QUIESCED),
+	QUEUE_FLAG_NAME(PCI_P2PDMA),
+	QUEUE_FLAG_NAME(ZONE_RESETALL),
+	QUEUE_FLAG_NAME(RQ_ALLOC_TIME),
 };
 #undef QUEUE_FLAG_NAME
 
--- linux-gkeop-5.4-5.4.0.orig/block/blk-mq-sched.c
+++ linux-gkeop-5.4-5.4.0/block/blk-mq-sched.c
@@ -77,6 +77,15 @@
 		return;
 	clear_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);
 
+	/*
+	 * Order clearing SCHED_RESTART and list_empty_careful(&hctx->dispatch)
+	 * in blk_mq_run_hw_queue(). Its pair is the barrier in
+	 * blk_mq_dispatch_rq_list(). So dispatch code won't see SCHED_RESTART,
+	 * meantime new request added to hctx->dispatch is missed to check in
+	 * blk_mq_run_hw_queue().
+	 */
+	smp_mb();
+
 	blk_mq_run_hw_queue(hctx, true);
 }
 
@@ -361,13 +370,19 @@
 				       bool has_sched,
 				       struct request *rq)
 {
-	/* dispatch flush rq directly */
-	if (rq->rq_flags & RQF_FLUSH_SEQ) {
-		spin_lock(&hctx->lock);
-		list_add(&rq->queuelist, &hctx->dispatch);
-		spin_unlock(&hctx->lock);
+	/*
+	 * dispatch flush and passthrough rq directly
+	 *
+	 * passthrough request has to be added to hctx->dispatch directly.
+	 * For some reason, device may be in one situation which can't
+	 * handle FS request, so STS_RESOURCE is always returned and the
+	 * FS request will be added to hctx->dispatch. However passthrough
+	 * request may be required at that time for fixing the problem. If
+	 * passthrough request is added to scheduler queue, there isn't any
+	 * chance to dispatch it given we prioritize requests in hctx->dispatch.
+	 */
+	if ((rq->rq_flags & RQF_FLUSH_SEQ) || blk_rq_is_passthrough(rq))
 		return true;
-	}
 
 	if (has_sched)
 		rq->rq_flags |= RQF_SORTED;
@@ -391,8 +406,32 @@
 
 	WARN_ON(e && (rq->tag != -1));
 
-	if (blk_mq_sched_bypass_insert(hctx, !!e, rq))
+	if (blk_mq_sched_bypass_insert(hctx, !!e, rq)) {
+		/*
+		 * Firstly normal IO request is inserted to scheduler queue or
+		 * sw queue, meantime we add flush request to dispatch queue(
+		 * hctx->dispatch) directly and there is at most one in-flight
+		 * flush request for each hw queue, so it doesn't matter to add
+		 * flush request to tail or front of the dispatch queue.
+		 *
+		 * Secondly in case of NCQ, flush request belongs to non-NCQ
+		 * command, and queueing it will fail when there is any
+		 * in-flight normal IO request(NCQ command). When adding flush
+		 * rq to the front of hctx->dispatch, it is easier to introduce
+		 * extra time to flush rq's latency because of S_SCHED_RESTART
+		 * compared with adding to the tail of dispatch queue, then
+		 * chance of flush merge is increased, and less flush requests
+		 * will be issued to controller. It is observed that ~10% time
+		 * is saved in blktests block/004 on disk attached to AHCI/NCQ
+		 * drive when adding flush rq to the front of hctx->dispatch.
+		 *
+		 * Simply queue flush rq to the front of hctx->dispatch so that
+		 * intensive flush workloads can benefit in case of NCQ HW.
+		 */
+		at_head = (rq->rq_flags & RQF_FLUSH_SEQ) ? true : at_head;
+		blk_mq_request_bypass_insert(rq, at_head, false);
 		goto run;
+	}
 
 	if (e && e->type->ops.insert_requests) {
 		LIST_HEAD(list);
--- linux-gkeop-5.4-5.4.0.orig/block/blk-mq-sched.h
+++ linux-gkeop-5.4-5.4.0/block/blk-mq-sched.h
@@ -66,7 +66,7 @@
 	struct request_queue *q = rq->q;
 	struct elevator_queue *e = q->elevator;
 
-	if (e && e->type->ops.requeue_request)
+	if ((rq->rq_flags & RQF_ELVPRIV) && e && e->type->ops.requeue_request)
 		e->type->ops.requeue_request(rq);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/block/blk-mq-sysfs.c
+++ linux-gkeop-5.4-5.4.0/block/blk-mq-sysfs.c
@@ -36,8 +36,6 @@
 	struct blk_mq_hw_ctx *hctx = container_of(kobj, struct blk_mq_hw_ctx,
 						  kobj);
 
-	cancel_delayed_work_sync(&hctx->run_work);
-
 	if (hctx->flags & BLK_MQ_F_BLOCKING)
 		cleanup_srcu_struct(hctx->srcu);
 	blk_free_flush_queue(hctx->fq);
@@ -166,20 +164,25 @@
 
 static ssize_t blk_mq_hw_sysfs_cpus_show(struct blk_mq_hw_ctx *hctx, char *page)
 {
+	const size_t size = PAGE_SIZE - 1;
 	unsigned int i, first = 1;
-	ssize_t ret = 0;
+	int ret = 0, pos = 0;
 
 	for_each_cpu(i, hctx->cpumask) {
 		if (first)
-			ret += sprintf(ret + page, "%u", i);
+			ret = snprintf(pos + page, size - pos, "%u", i);
 		else
-			ret += sprintf(ret + page, ", %u", i);
+			ret = snprintf(pos + page, size - pos, ", %u", i);
+
+		if (ret >= size - pos)
+			break;
 
 		first = 0;
+		pos += ret;
 	}
 
-	ret += sprintf(ret + page, "\n");
-	return ret;
+	ret = snprintf(pos + page, size + 1 - pos, "\n");
+	return pos + ret;
 }
 
 static struct blk_mq_hw_ctx_sysfs_entry blk_mq_hw_sysfs_nr_tags = {
--- linux-gkeop-5.4-5.4.0.orig/block/blk-mq.c
+++ linux-gkeop-5.4-5.4.0/block/blk-mq.c
@@ -761,7 +761,7 @@
 		 * merge.
 		 */
 		if (rq->rq_flags & RQF_DONTPREP)
-			blk_mq_request_bypass_insert(rq, false);
+			blk_mq_request_bypass_insert(rq, false, false);
 		else
 			blk_mq_sched_insert_request(rq, true, false, false);
 	}
@@ -829,10 +829,10 @@
 			       void *priv, bool reserved)
 {
 	/*
-	 * If we find a request that is inflight and the queue matches,
+	 * If we find a request that isn't idle and the queue matches,
 	 * we know the queue is busy. Return false to stop the iteration.
 	 */
-	if (rq->state == MQ_RQ_IN_FLIGHT && rq->q == hctx->queue) {
+	if (blk_mq_request_started(rq) && rq->q == hctx->queue) {
 		bool *busy = priv;
 
 		*busy = true;
@@ -1205,6 +1205,23 @@
 
 #define BLK_MQ_RESOURCE_DELAY	3		/* ms units */
 
+static void blk_mq_handle_dev_resource(struct request *rq,
+				       struct list_head *list)
+{
+	struct request *next =
+		list_first_entry_or_null(list, struct request, queuelist);
+
+	/*
+	 * If an I/O scheduler has been configured and we got a driver tag for
+	 * the next request already, free it.
+	 */
+	if (next)
+		blk_mq_put_driver_tag(next);
+
+	list_add(&rq->queuelist, list);
+	__blk_mq_requeue_request(rq);
+}
+
 /*
  * Returns true if we did some work AND can potentially do more.
  */
@@ -1216,6 +1233,7 @@
 	bool no_tag = false;
 	int errors, queued;
 	blk_status_t ret = BLK_STS_OK;
+	bool no_budget_avail = false;
 
 	if (list_empty(list))
 		return false;
@@ -1232,8 +1250,11 @@
 		rq = list_first_entry(list, struct request, queuelist);
 
 		hctx = rq->mq_hctx;
-		if (!got_budget && !blk_mq_get_dispatch_budget(hctx))
+		if (!got_budget && !blk_mq_get_dispatch_budget(hctx)) {
+			blk_mq_put_driver_tag(rq);
+			no_budget_avail = true;
 			break;
+		}
 
 		if (!blk_mq_get_driver_tag(rq)) {
 			/*
@@ -1272,17 +1293,7 @@
 
 		ret = q->mq_ops->queue_rq(hctx, &bd);
 		if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE) {
-			/*
-			 * If an I/O scheduler has been configured and we got a
-			 * driver tag for the next request already, free it
-			 * again.
-			 */
-			if (!list_empty(list)) {
-				nxt = list_first_entry(list, struct request, queuelist);
-				blk_mq_put_driver_tag(nxt);
-			}
-			list_add(&rq->queuelist, list);
-			__blk_mq_requeue_request(rq);
+			blk_mq_handle_dev_resource(rq, list);
 			break;
 		}
 
@@ -1313,10 +1324,19 @@
 			q->mq_ops->commit_rqs(hctx);
 
 		spin_lock(&hctx->lock);
-		list_splice_init(list, &hctx->dispatch);
+		list_splice_tail_init(list, &hctx->dispatch);
 		spin_unlock(&hctx->lock);
 
 		/*
+		 * Order adding requests to hctx->dispatch and checking
+		 * SCHED_RESTART flag. The pair of this smp_mb() is the one
+		 * in blk_mq_sched_restart(). Avoid restart code path to
+		 * miss the new added requests to hctx->dispatch, meantime
+		 * SCHED_RESTART is observed here.
+		 */
+		smp_mb();
+
+		/*
 		 * If SCHED_RESTART was set by the caller of this function and
 		 * it is no longer set that means that it was cleared by another
 		 * thread and hence that a queue rerun is needed.
@@ -1338,13 +1358,15 @@
 		 *
 		 * If driver returns BLK_STS_RESOURCE and SCHED_RESTART
 		 * bit is set, run queue after a delay to avoid IO stalls
-		 * that could otherwise occur if the queue is idle.
+		 * that could otherwise occur if the queue is idle.  We'll do
+		 * similar if we couldn't get budget and SCHED_RESTART is set.
 		 */
 		needs_restart = blk_mq_sched_needs_restart(hctx);
 		if (!needs_restart ||
 		    (no_tag && list_empty_careful(&hctx->dispatch_wait.entry)))
 			blk_mq_run_hw_queue(hctx, true);
-		else if (needs_restart && (ret == BLK_STS_RESOURCE))
+		else if (needs_restart && (ret == BLK_STS_RESOURCE ||
+					   no_budget_avail))
 			blk_mq_delay_run_hw_queue(hctx, BLK_MQ_RESOURCE_DELAY);
 
 		blk_mq_update_dispatch_busy(hctx, true);
@@ -1668,12 +1690,16 @@
  * Should only be used carefully, when the caller knows we want to
  * bypass a potential IO scheduler on the target device.
  */
-void blk_mq_request_bypass_insert(struct request *rq, bool run_queue)
+void blk_mq_request_bypass_insert(struct request *rq, bool at_head,
+				  bool run_queue)
 {
 	struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
 
 	spin_lock(&hctx->lock);
-	list_add_tail(&rq->queuelist, &hctx->dispatch);
+	if (at_head)
+		list_add(&rq->queuelist, &hctx->dispatch);
+	else
+		list_add_tail(&rq->queuelist, &hctx->dispatch);
 	spin_unlock(&hctx->lock);
 
 	if (run_queue)
@@ -1863,7 +1889,8 @@
 	if (bypass_insert)
 		return BLK_STS_RESOURCE;
 
-	blk_mq_request_bypass_insert(rq, run_queue);
+	blk_mq_sched_insert_request(rq, false, run_queue, false);
+
 	return BLK_STS_OK;
 }
 
@@ -1879,7 +1906,7 @@
 
 	ret = __blk_mq_try_issue_directly(hctx, rq, cookie, false, true);
 	if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE)
-		blk_mq_request_bypass_insert(rq, true);
+		blk_mq_request_bypass_insert(rq, false, true);
 	else if (ret != BLK_STS_OK)
 		blk_mq_end_request(rq, ret);
 
@@ -1913,7 +1940,7 @@
 		if (ret != BLK_STS_OK) {
 			if (ret == BLK_STS_RESOURCE ||
 					ret == BLK_STS_DEV_RESOURCE) {
-				blk_mq_request_bypass_insert(rq,
+				blk_mq_request_bypass_insert(rq, false,
 							list_empty(list));
 				break;
 			}
@@ -2487,18 +2514,6 @@
 	 * If the cpu isn't present, the cpu is mapped to first hctx.
 	 */
 	for_each_possible_cpu(i) {
-		hctx_idx = set->map[HCTX_TYPE_DEFAULT].mq_map[i];
-		/* unmapped hw queue can be remapped after CPU topo changed */
-		if (!set->tags[hctx_idx] &&
-		    !__blk_mq_alloc_rq_map(set, hctx_idx)) {
-			/*
-			 * If tags initialization fail for some hctx,
-			 * that hctx won't be brought online.  In this
-			 * case, remap the current ctx to hctx[0] which
-			 * is guaranteed to always have tags allocated
-			 */
-			set->map[HCTX_TYPE_DEFAULT].mq_map[i] = 0;
-		}
 
 		ctx = per_cpu_ptr(q->queue_ctx, i);
 		for (j = 0; j < set->nr_maps; j++) {
@@ -2507,6 +2522,18 @@
 						HCTX_TYPE_DEFAULT, i);
 				continue;
 			}
+			hctx_idx = set->map[j].mq_map[i];
+			/* unmapped hw queue can be remapped after CPU topo changed */
+			if (!set->tags[hctx_idx] &&
+			    !__blk_mq_alloc_rq_map(set, hctx_idx)) {
+				/*
+				 * If tags initialization fail for some hctx,
+				 * that hctx won't be brought online.  In this
+				 * case, remap the current ctx to hctx[0] which
+				 * is guaranteed to always have tags allocated
+				 */
+				set->map[j].mq_map[i] = 0;
+			}
 
 			hctx = blk_mq_map_queue_type(q, j, i);
 			ctx->hctxs[j] = hctx;
@@ -3003,6 +3030,14 @@
 
 static int blk_mq_update_queue_map(struct blk_mq_tag_set *set)
 {
+	/*
+	 * blk_mq_map_queues() and multiple .map_queues() implementations
+	 * expect that set->map[HCTX_TYPE_DEFAULT].nr_queues is set to the
+	 * number of hardware queues.
+	 */
+	if (set->nr_maps == 1)
+		set->map[HCTX_TYPE_DEFAULT].nr_queues = set->nr_hw_queues;
+
 	if (set->ops->map_queues && !is_kdump_kernel()) {
 		int i;
 
@@ -3265,7 +3300,9 @@
 
 	if (set->nr_maps == 1 && nr_hw_queues > nr_cpu_ids)
 		nr_hw_queues = nr_cpu_ids;
-	if (nr_hw_queues < 1 || nr_hw_queues == set->nr_hw_queues)
+	if (nr_hw_queues < 1)
+		return;
+	if (set->nr_maps == 1 && nr_hw_queues == set->nr_hw_queues)
 		return;
 
 	list_for_each_entry(q, &set->tag_list, tag_set_list)
@@ -3290,8 +3327,8 @@
 
 	prev_nr_hw_queues = set->nr_hw_queues;
 	set->nr_hw_queues = nr_hw_queues;
-	blk_mq_update_queue_map(set);
 fallback:
+	blk_mq_update_queue_map(set);
 	list_for_each_entry(q, &set->tag_list, tag_set_list) {
 		blk_mq_realloc_hw_ctxs(set, q);
 		if (q->nr_hw_queues != set->nr_hw_queues) {
--- linux-gkeop-5.4-5.4.0.orig/block/blk-mq.h
+++ linux-gkeop-5.4-5.4.0/block/blk-mq.h
@@ -66,7 +66,8 @@
  */
 void __blk_mq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
 				bool at_head);
-void blk_mq_request_bypass_insert(struct request *rq, bool run_queue);
+void blk_mq_request_bypass_insert(struct request *rq, bool at_head,
+				  bool run_queue);
 void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx,
 				struct list_head *list);
 
--- linux-gkeop-5.4-5.4.0.orig/block/blk-pm.c
+++ linux-gkeop-5.4-5.4.0/block/blk-pm.c
@@ -67,6 +67,10 @@
 
 	WARN_ON_ONCE(q->rpm_status != RPM_ACTIVE);
 
+	spin_lock_irq(&q->queue_lock);
+	q->rpm_status = RPM_SUSPENDING;
+	spin_unlock_irq(&q->queue_lock);
+
 	/*
 	 * Increase the pm_only counter before checking whether any
 	 * non-PM blk_queue_enter() calls are in progress to avoid that any
@@ -89,15 +93,14 @@
 	/* Switch q_usage_counter back to per-cpu mode. */
 	blk_mq_unfreeze_queue(q);
 
-	spin_lock_irq(&q->queue_lock);
-	if (ret < 0)
+	if (ret < 0) {
+		spin_lock_irq(&q->queue_lock);
+		q->rpm_status = RPM_ACTIVE;
 		pm_runtime_mark_last_busy(q->dev);
-	else
-		q->rpm_status = RPM_SUSPENDING;
-	spin_unlock_irq(&q->queue_lock);
+		spin_unlock_irq(&q->queue_lock);
 
-	if (ret)
 		blk_clear_pm_only(q);
+	}
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/block/blk-settings.c
+++ linux-gkeop-5.4-5.4.0/block/blk-settings.c
@@ -328,7 +328,7 @@
  *   storage device can address.  The default of 512 covers most
  *   hardware.
  **/
-void blk_queue_logical_block_size(struct request_queue *q, unsigned short size)
+void blk_queue_logical_block_size(struct request_queue *q, unsigned int size)
 {
 	q->limits.logical_block_size = size;
 
@@ -473,6 +473,14 @@
 }
 EXPORT_SYMBOL(blk_queue_stack_limits);
 
+static unsigned int blk_round_down_sectors(unsigned int sectors, unsigned int lbs)
+{
+	sectors = round_down(sectors, lbs >> SECTOR_SHIFT);
+	if (sectors < PAGE_SIZE >> SECTOR_SHIFT)
+		sectors = PAGE_SIZE >> SECTOR_SHIFT;
+	return sectors;
+}
+
 /**
  * blk_stack_limits - adjust queue_limits for stacked devices
  * @t:	the stacking driver limits (top device)
@@ -586,6 +594,10 @@
 		ret = -1;
 	}
 
+	t->max_sectors = blk_round_down_sectors(t->max_sectors, t->logical_block_size);
+	t->max_hw_sectors = blk_round_down_sectors(t->max_hw_sectors, t->logical_block_size);
+	t->max_dev_sectors = blk_round_down_sectors(t->max_dev_sectors, t->logical_block_size);
+
 	/* Discard alignment and granularity */
 	if (b->discard_granularity) {
 		alignment = queue_limit_discard_alignment(b, start);
@@ -664,6 +676,9 @@
 		printk(KERN_NOTICE "%s: Warning: Device %s is misaligned\n",
 		       top, bottom);
 	}
+
+	t->backing_dev_info->io_pages =
+		t->limits.max_sectors >> (PAGE_SHIFT - 9);
 }
 EXPORT_SYMBOL(disk_stack_limits);
 
--- linux-gkeop-5.4-5.4.0.orig/block/blk-sysfs.c
+++ linux-gkeop-5.4-5.4.0/block/blk-sysfs.c
@@ -891,9 +891,16 @@
 
 	blk_free_queue_stats(q->stats);
 
-	if (queue_is_mq(q))
+	if (queue_is_mq(q)) {
+		struct blk_mq_hw_ctx *hctx;
+		int i;
+
 		cancel_delayed_work_sync(&q->requeue_work);
 
+		queue_for_each_hw_ctx(q, hctx, i)
+			cancel_delayed_work_sync(&hctx->run_work);
+	}
+
 	blk_exit_queue(q);
 
 	blk_queue_free_zone_bitmaps(q);
--- linux-gkeop-5.4-5.4.0.orig/block/blk-zoned.c
+++ linux-gkeop-5.4-5.4.0/block/blk-zoned.c
@@ -202,32 +202,14 @@
 }
 EXPORT_SYMBOL_GPL(blkdev_report_zones);
 
-/*
- * Special case of zone reset operation to reset all zones in one command,
- * useful for applications like mkfs.
- */
-static int __blkdev_reset_all_zones(struct block_device *bdev, gfp_t gfp_mask)
-{
-	struct bio *bio = bio_alloc(gfp_mask, 0);
-	int ret;
-
-	/* across the zones operations, don't need any sectors */
-	bio_set_dev(bio, bdev);
-	bio_set_op_attrs(bio, REQ_OP_ZONE_RESET_ALL, 0);
-
-	ret = submit_bio_wait(bio);
-	bio_put(bio);
-
-	return ret;
-}
-
 static inline bool blkdev_allow_reset_all_zones(struct block_device *bdev,
+						sector_t sector,
 						sector_t nr_sectors)
 {
 	if (!blk_queue_zone_resetall(bdev_get_queue(bdev)))
 		return false;
 
-	if (nr_sectors != part_nr_sects_read(bdev->bd_part))
+	if (sector || nr_sectors != part_nr_sects_read(bdev->bd_part))
 		return false;
 	/*
 	 * REQ_OP_ZONE_RESET_ALL can be executed only if the block device is
@@ -271,9 +253,6 @@
 		/* Out of range */
 		return -EINVAL;
 
-	if (blkdev_allow_reset_all_zones(bdev, nr_sectors))
-		return  __blkdev_reset_all_zones(bdev, gfp_mask);
-
 	/* Check alignment (handle eventual smaller last zone) */
 	zone_sectors = blk_queue_zone_sectors(q);
 	if (sector & (zone_sectors - 1))
@@ -285,17 +264,24 @@
 
 	blk_start_plug(&plug);
 	while (sector < end_sector) {
-
 		bio = blk_next_bio(bio, 0, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
 		bio_set_dev(bio, bdev);
-		bio_set_op_attrs(bio, REQ_OP_ZONE_RESET, 0);
 
+		/*
+		 * Special case for the zone reset operation that reset all
+		 * zones, this is useful for applications like mkfs.
+		 */
+		if (blkdev_allow_reset_all_zones(bdev, sector, nr_sectors)) {
+			bio->bi_opf = REQ_OP_ZONE_RESET_ALL;
+			break;
+		}
+
+		bio->bi_opf = REQ_OP_ZONE_RESET;
+		bio->bi_iter.bi_sector = sector;
 		sector += zone_sectors;
 
 		/* This may take a while, so be nice to others */
 		cond_resched();
-
 	}
 
 	ret = submit_bio_wait(bio);
--- linux-gkeop-5.4-5.4.0.orig/block/blk.h
+++ linux-gkeop-5.4-5.4.0/block/blk.h
@@ -30,6 +30,7 @@
 	 * at the same time
 	 */
 	struct request		*orig_rq;
+	struct lock_class_key	key;
 	spinlock_t		mq_flush_lock;
 };
 
@@ -121,6 +122,7 @@
 #ifdef CONFIG_BLK_DEV_INTEGRITY
 void blk_flush_integrity(void);
 bool __bio_integrity_endio(struct bio *);
+void bio_integrity_free(struct bio *bio);
 static inline bool bio_integrity_endio(struct bio *bio)
 {
 	if (bio_integrity(bio))
@@ -166,6 +168,9 @@
 {
 	return true;
 }
+static inline void bio_integrity_free(struct bio *bio)
+{
+}
 #endif /* CONFIG_BLK_DEV_INTEGRITY */
 
 unsigned long blk_rq_timeout(unsigned long timeout);
--- linux-gkeop-5.4-5.4.0.orig/block/bsg-lib.c
+++ linux-gkeop-5.4-5.4.0/block/bsg-lib.c
@@ -266,7 +266,7 @@
 	struct request *req = bd->rq;
 	struct bsg_set *bset =
 		container_of(q->tag_set, struct bsg_set, tag_set);
-	int sts = BLK_STS_IOERR;
+	blk_status_t sts = BLK_STS_IOERR;
 	int ret;
 
 	blk_mq_start_request(req);
--- linux-gkeop-5.4-5.4.0.orig/block/bsg.c
+++ linux-gkeop-5.4-5.4.0/block/bsg.c
@@ -157,8 +157,10 @@
 		return PTR_ERR(rq);
 
 	ret = q->bsg_dev.ops->fill_hdr(rq, &hdr, mode);
-	if (ret)
+	if (ret) {
+		blk_put_request(rq);
 		return ret;
+	}
 
 	rq->timeout = msecs_to_jiffies(hdr.timeout);
 	if (!rq->timeout)
--- linux-gkeop-5.4-5.4.0.orig/block/compat_ioctl.c
+++ linux-gkeop-5.4-5.4.0/block/compat_ioctl.c
@@ -6,6 +6,7 @@
 #include <linux/compat.h>
 #include <linux/elevator.h>
 #include <linux/hdreg.h>
+#include <linux/pr.h>
 #include <linux/slab.h>
 #include <linux/syscalls.h>
 #include <linux/types.h>
@@ -354,6 +355,10 @@
 	 * but we call blkdev_ioctl, which gets the lock for us
 	 */
 	case BLKRRPART:
+	case BLKREPORTZONE:
+	case BLKRESETZONE:
+	case BLKGETZONESZ:
+	case BLKGETNRZONES:
 		return blkdev_ioctl(bdev, mode, cmd,
 				(unsigned long)compat_ptr(arg));
 	case BLKBSZSET_32:
@@ -401,6 +406,14 @@
 	case BLKTRACETEARDOWN: /* compatible */
 		ret = blk_trace_ioctl(bdev, cmd, compat_ptr(arg));
 		return ret;
+	case IOC_PR_REGISTER:
+	case IOC_PR_RESERVE:
+	case IOC_PR_RELEASE:
+	case IOC_PR_PREEMPT:
+	case IOC_PR_PREEMPT_ABORT:
+	case IOC_PR_CLEAR:
+		return blkdev_ioctl(bdev, mode, cmd,
+				(unsigned long)compat_ptr(arg));
 	default:
 		if (disk->fops->compat_ioctl)
 			ret = disk->fops->compat_ioctl(bdev, mode, cmd, arg);
--- linux-gkeop-5.4-5.4.0.orig/block/genhd.c
+++ linux-gkeop-5.4-5.4.0/block/genhd.c
@@ -222,14 +222,17 @@
 		part = rcu_dereference(ptbl->part[piter->idx]);
 		if (!part)
 			continue;
+		get_device(part_to_dev(part));
+		piter->part = part;
 		if (!part_nr_sects_read(part) &&
 		    !(piter->flags & DISK_PITER_INCL_EMPTY) &&
 		    !(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
-		      piter->idx == 0))
+		      piter->idx == 0)) {
+			put_device(part_to_dev(part));
+			piter->part = NULL;
 			continue;
+		}
 
-		get_device(part_to_dev(part));
-		piter->part = part;
 		piter->idx += inc;
 		break;
 	}
--- linux-gkeop-5.4-5.4.0.orig/certs/blacklist.c
+++ linux-gkeop-5.4-5.4.0/certs/blacklist.c
@@ -135,6 +135,15 @@
 }
 EXPORT_SYMBOL_GPL(is_hash_blacklisted);
 
+int is_binary_blacklisted(const u8 *hash, size_t hash_len)
+{
+	if (is_hash_blacklisted(hash, hash_len, "bin") == -EKEYREJECTED)
+		return -EPERM;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(is_binary_blacklisted);
+
 /*
  * Initialise the blacklist
  */
@@ -153,7 +162,7 @@
 			      KEY_USR_VIEW | KEY_USR_READ |
 			      KEY_USR_SEARCH,
 			      KEY_ALLOC_NOT_IN_QUOTA |
-			      KEY_FLAG_KEEP,
+			      KEY_ALLOC_SET_KEEP,
 			      NULL, NULL);
 	if (IS_ERR(blacklist_keyring))
 		panic("Can't allocate system blacklist keyring\n");
--- linux-gkeop-5.4-5.4.0.orig/certs/system_keyring.c
+++ linux-gkeop-5.4-5.4.0/certs/system_keyring.c
@@ -171,6 +171,7 @@
 		if (IS_ERR(key)) {
 			pr_err("Problem loading in-kernel X.509 certificate (%ld)\n",
 			       PTR_ERR(key));
+			WARN_ON_ONCE(1);
 		} else {
 			pr_notice("Loaded X.509 cert '%s'\n",
 				  key_ref_to_ptr(key)->description);
--- linux-gkeop-5.4-5.4.0.orig/crypto/Kconfig
+++ linux-gkeop-5.4-5.4.0/crypto/Kconfig
@@ -309,6 +309,7 @@
 config CRYPTO_AEGIS128_SIMD
 	bool "Support SIMD acceleration for AEGIS-128"
 	depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
+	depends on !ARM || CC_IS_CLANG || GCC_VERSION >= 40800
 	default y
 
 config CRYPTO_AEGIS128_AESNI_SSE2
@@ -499,10 +500,10 @@
 	  encryption.
 
 	  This driver implements a crypto API template that can be
-	  instantiated either as a skcipher or as a aead (depending on the
+	  instantiated either as an skcipher or as an AEAD (depending on the
 	  type of the first template argument), and which defers encryption
 	  and decryption requests to the encapsulated cipher after applying
-	  ESSIV to the input IV. Note that in the aead case, it is assumed
+	  ESSIV to the input IV. Note that in the AEAD case, it is assumed
 	  that the keys are presented in the same format used by the authenc
 	  template, and that the IV appears at the end of the authenticated
 	  associated data (AAD) region (which is how dm-crypt uses it.)
--- linux-gkeop-5.4-5.4.0.orig/crypto/Makefile
+++ linux-gkeop-5.4-5.4.0/crypto/Makefile
@@ -93,7 +93,7 @@
 aegis128-y := aegis128-core.o
 
 ifeq ($(ARCH),arm)
-CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv7-a -mfloat-abi=softfp
+CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv8-a -mfloat-abi=softfp
 CFLAGS_aegis128-neon-inner.o += -mfpu=crypto-neon-fp-armv8
 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o
 endif
--- linux-gkeop-5.4-5.4.0.orig/crypto/af_alg.c
+++ linux-gkeop-5.4-5.4.0/crypto/af_alg.c
@@ -16,6 +16,7 @@
 #include <linux/module.h>
 #include <linux/net.h>
 #include <linux/rwsem.h>
+#include <linux/sched.h>
 #include <linux/sched/signal.h>
 #include <linux/security.h>
 
@@ -128,19 +129,15 @@
 void af_alg_release_parent(struct sock *sk)
 {
 	struct alg_sock *ask = alg_sk(sk);
-	unsigned int nokey = ask->nokey_refcnt;
-	bool last = nokey && !ask->refcnt;
+	unsigned int nokey = atomic_read(&ask->nokey_refcnt);
 
 	sk = ask->parent;
 	ask = alg_sk(sk);
 
-	lock_sock(sk);
-	ask->nokey_refcnt -= nokey;
-	if (!last)
-		last = !--ask->refcnt;
-	release_sock(sk);
+	if (nokey)
+		atomic_dec(&ask->nokey_refcnt);
 
-	if (last)
+	if (atomic_dec_and_test(&ask->refcnt))
 		sock_put(sk);
 }
 EXPORT_SYMBOL_GPL(af_alg_release_parent);
@@ -150,7 +147,7 @@
 	const u32 allowed = CRYPTO_ALG_KERN_DRIVER_ONLY;
 	struct sock *sk = sock->sk;
 	struct alg_sock *ask = alg_sk(sk);
-	struct sockaddr_alg *sa = (void *)uaddr;
+	struct sockaddr_alg_new *sa = (void *)uaddr;
 	const struct af_alg_type *type;
 	void *private;
 	int err;
@@ -158,7 +155,11 @@
 	if (sock->state == SS_CONNECTED)
 		return -EINVAL;
 
-	if (addr_len < sizeof(*sa))
+	BUILD_BUG_ON(offsetof(struct sockaddr_alg_new, salg_name) !=
+		     offsetof(struct sockaddr_alg, salg_name));
+	BUILD_BUG_ON(offsetof(struct sockaddr_alg, salg_name) != sizeof(*sa));
+
+	if (addr_len < sizeof(*sa) + 1)
 		return -EINVAL;
 
 	/* If caller uses non-allowed flag, return error. */
@@ -166,7 +167,7 @@
 		return -EINVAL;
 
 	sa->salg_type[sizeof(sa->salg_type) - 1] = 0;
-	sa->salg_name[sizeof(sa->salg_name) + addr_len - sizeof(*sa) - 1] = 0;
+	sa->salg_name[addr_len - sizeof(*sa) - 1] = 0;
 
 	type = alg_get_type(sa->salg_type);
 	if (IS_ERR(type) && PTR_ERR(type) == -ENOENT) {
@@ -185,7 +186,7 @@
 
 	err = -EBUSY;
 	lock_sock(sk);
-	if (ask->refcnt | ask->nokey_refcnt)
+	if (atomic_read(&ask->refcnt))
 		goto unlock;
 
 	swap(ask->type, type);
@@ -234,7 +235,7 @@
 	int err = -EBUSY;
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (atomic_read(&ask->refcnt) != atomic_read(&ask->nokey_refcnt))
 		goto unlock;
 
 	type = ask->type;
@@ -299,12 +300,14 @@
 	if (err)
 		goto unlock;
 
-	if (nokey || !ask->refcnt++)
+	if (atomic_inc_return_relaxed(&ask->refcnt) == 1)
 		sock_hold(sk);
-	ask->nokey_refcnt += nokey;
+	if (nokey) {
+		atomic_inc(&ask->nokey_refcnt);
+		atomic_set(&alg_sk(sk2)->nokey_refcnt, 1);
+	}
 	alg_sk(sk2)->parent = sk;
 	alg_sk(sk2)->type = type;
-	alg_sk(sk2)->nokey_refcnt = nokey;
 
 	newsock->ops = type->ops;
 	newsock->state = SS_CONNECTED;
@@ -637,6 +640,7 @@
 
 	if (!ctx->used)
 		ctx->merge = 0;
+	ctx->init = ctx->more;
 }
 EXPORT_SYMBOL_GPL(af_alg_pull_tsgl);
 
@@ -736,9 +740,10 @@
  *
  * @sk socket of connection to user space
  * @flags If MSG_DONTWAIT is set, then only report if function would sleep
+ * @min Set to minimum request size if partial requests are allowed.
  * @return 0 when writable memory is available, < 0 upon error
  */
-int af_alg_wait_for_data(struct sock *sk, unsigned flags)
+int af_alg_wait_for_data(struct sock *sk, unsigned flags, unsigned min)
 {
 	DEFINE_WAIT_FUNC(wait, woken_wake_function);
 	struct alg_sock *ask = alg_sk(sk);
@@ -756,7 +761,9 @@
 		if (signal_pending(current))
 			break;
 		timeout = MAX_SCHEDULE_TIMEOUT;
-		if (sk_wait_event(sk, &timeout, (ctx->used || !ctx->more),
+		if (sk_wait_event(sk, &timeout,
+				  ctx->init && (!ctx->more ||
+						(min && ctx->used >= min)),
 				  &wait)) {
 			err = 0;
 			break;
@@ -845,10 +852,17 @@
 	}
 
 	lock_sock(sk);
-	if (!ctx->more && ctx->used) {
-		err = -EINVAL;
-		goto unlock;
+	if (ctx->init && !ctx->more) {
+		if (ctx->used) {
+			err = -EINVAL;
+			goto unlock;
+		}
+
+		pr_info_once(
+			"%s sent an empty control message without MSG_MORE.\n",
+			current->comm);
 	}
+	ctx->init = true;
 
 	if (init) {
 		ctx->enc = enc;
@@ -1043,7 +1057,7 @@
 	af_alg_free_resources(areq);
 	sock_put(sk);
 
-	iocb->ki_complete(iocb, err ? err : resultlen, 0);
+	iocb->ki_complete(iocb, err ? err : (int)resultlen, 0);
 }
 EXPORT_SYMBOL_GPL(af_alg_async_cb);
 
--- linux-gkeop-5.4-5.4.0.orig/crypto/algapi.c
+++ linux-gkeop-5.4-5.4.0/crypto/algapi.c
@@ -257,6 +257,7 @@
 	struct crypto_alg *alg;
 	struct crypto_alg *q;
 	LIST_HEAD(list);
+	bool best;
 
 	down_write(&crypto_alg_sem);
 	list_for_each_entry(q, &crypto_alg_list, cra_list) {
@@ -280,6 +281,21 @@
 
 	alg->cra_flags |= CRYPTO_ALG_TESTED;
 
+	/* Only satisfy larval waiters if we are the best. */
+	best = true;
+	list_for_each_entry(q, &crypto_alg_list, cra_list) {
+		if (crypto_is_moribund(q) || !crypto_is_larval(q))
+			continue;
+
+		if (strcmp(alg->cra_name, q->cra_name))
+			continue;
+
+		if (q->cra_priority > alg->cra_priority) {
+			best = false;
+			break;
+		}
+	}
+
 	list_for_each_entry(q, &crypto_alg_list, cra_list) {
 		if (q == alg)
 			continue;
@@ -303,10 +319,12 @@
 				continue;
 			if ((q->cra_flags ^ alg->cra_flags) & larval->mask)
 				continue;
-			if (!crypto_mod_get(alg))
-				continue;
 
-			larval->adult = alg;
+			if (best && crypto_mod_get(alg))
+				larval->adult = alg;
+			else
+				larval->adult = ERR_PTR(-EAGAIN);
+
 			continue;
 		}
 
@@ -356,7 +374,7 @@
 	err = wait_for_completion_killable(&larval->completion);
 	WARN_ON(err);
 	if (!err)
-		crypto_probing_notify(CRYPTO_MSG_ALG_LOADED, larval);
+		crypto_notify(CRYPTO_MSG_ALG_LOADED, larval);
 
 out:
 	crypto_larval_kill(&larval->alg);
@@ -669,11 +687,9 @@
 
 void crypto_drop_spawn(struct crypto_spawn *spawn)
 {
-	if (!spawn->alg)
-		return;
-
 	down_write(&crypto_alg_sem);
-	list_del(&spawn->list);
+	if (spawn->alg)
+		list_del(&spawn->list);
 	up_write(&crypto_alg_sem);
 }
 EXPORT_SYMBOL_GPL(crypto_drop_spawn);
@@ -681,22 +697,16 @@
 static struct crypto_alg *crypto_spawn_alg(struct crypto_spawn *spawn)
 {
 	struct crypto_alg *alg;
-	struct crypto_alg *alg2;
 
 	down_read(&crypto_alg_sem);
 	alg = spawn->alg;
-	alg2 = alg;
-	if (alg2)
-		alg2 = crypto_mod_get(alg2);
-	up_read(&crypto_alg_sem);
-
-	if (!alg2) {
-		if (alg)
-			crypto_shoot_alg(alg);
-		return ERR_PTR(-EAGAIN);
+	if (alg && !crypto_mod_get(alg)) {
+		alg->cra_flags |= CRYPTO_ALG_DYING;
+		alg = NULL;
 	}
+	up_read(&crypto_alg_sem);
 
-	return alg;
+	return alg ?: ERR_PTR(-EAGAIN);
 }
 
 struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
--- linux-gkeop-5.4-5.4.0.orig/crypto/algboss.c
+++ linux-gkeop-5.4-5.4.0/crypto/algboss.c
@@ -188,8 +188,6 @@
 	if (IS_ERR(thread))
 		goto err_put_larval;
 
-	wait_for_completion_interruptible(&larval->completion);
-
 	return NOTIFY_STOP;
 
 err_put_larval:
--- linux-gkeop-5.4-5.4.0.orig/crypto/algif_aead.c
+++ linux-gkeop-5.4-5.4.0/crypto/algif_aead.c
@@ -78,7 +78,7 @@
 	SYNC_SKCIPHER_REQUEST_ON_STACK(skreq, null_tfm);
 
 	skcipher_request_set_sync_tfm(skreq, null_tfm);
-	skcipher_request_set_callback(skreq, CRYPTO_TFM_REQ_MAY_BACKLOG,
+	skcipher_request_set_callback(skreq, CRYPTO_TFM_REQ_MAY_SLEEP,
 				      NULL, NULL);
 	skcipher_request_set_crypt(skreq, src, dst, len, NULL);
 
@@ -106,8 +106,8 @@
 	size_t usedpages = 0;		/* [in]  RX bufs to be used from user */
 	size_t processed = 0;		/* [in]  TX bufs to be consumed */
 
-	if (!ctx->used) {
-		err = af_alg_wait_for_data(sk, flags);
+	if (!ctx->init || ctx->more) {
+		err = af_alg_wait_for_data(sk, flags, 0);
 		if (err)
 			return err;
 	}
@@ -291,19 +291,20 @@
 		areq->outlen = outlen;
 
 		aead_request_set_callback(&areq->cra_u.aead_req,
-					  CRYPTO_TFM_REQ_MAY_BACKLOG,
+					  CRYPTO_TFM_REQ_MAY_SLEEP,
 					  af_alg_async_cb, areq);
 		err = ctx->enc ? crypto_aead_encrypt(&areq->cra_u.aead_req) :
 				 crypto_aead_decrypt(&areq->cra_u.aead_req);
 
 		/* AIO operation in progress */
-		if (err == -EINPROGRESS || err == -EBUSY)
+		if (err == -EINPROGRESS)
 			return -EIOCBQUEUED;
 
 		sock_put(sk);
 	} else {
 		/* Synchronous operation */
 		aead_request_set_callback(&areq->cra_u.aead_req,
+					  CRYPTO_TFM_REQ_MAY_SLEEP |
 					  CRYPTO_TFM_REQ_MAY_BACKLOG,
 					  crypto_req_done, &ctx->wait);
 		err = crypto_wait_req(ctx->enc ?
@@ -384,7 +385,7 @@
 	struct alg_sock *ask = alg_sk(sk);
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (!atomic_read(&ask->nokey_refcnt))
 		goto unlock_child;
 
 	psk = ask->parent;
@@ -396,11 +397,8 @@
 	if (crypto_aead_get_flags(tfm->aead) & CRYPTO_TFM_NEED_KEY)
 		goto unlock;
 
-	if (!pask->refcnt++)
-		sock_hold(psk);
-
-	ask->refcnt = 1;
-	sock_put(psk);
+	atomic_dec(&pask->nokey_refcnt);
+	atomic_set(&ask->nokey_refcnt, 0);
 
 	err = 0;
 
@@ -561,12 +559,6 @@
 
 	INIT_LIST_HEAD(&ctx->tsgl_list);
 	ctx->len = len;
-	ctx->used = 0;
-	atomic_set(&ctx->rcvused, 0);
-	ctx->more = 0;
-	ctx->merge = 0;
-	ctx->enc = 0;
-	ctx->aead_assoclen = 0;
 	crypto_init_wait(&ctx->wait);
 
 	ask->private = ctx;
--- linux-gkeop-5.4-5.4.0.orig/crypto/algif_hash.c
+++ linux-gkeop-5.4-5.4.0/crypto/algif_hash.c
@@ -301,7 +301,7 @@
 	struct alg_sock *ask = alg_sk(sk);
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (!atomic_read(&ask->nokey_refcnt))
 		goto unlock_child;
 
 	psk = ask->parent;
@@ -313,11 +313,8 @@
 	if (crypto_ahash_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)
 		goto unlock;
 
-	if (!pask->refcnt++)
-		sock_hold(psk);
-
-	ask->refcnt = 1;
-	sock_put(psk);
+	atomic_dec(&pask->nokey_refcnt);
+	atomic_set(&ask->nokey_refcnt, 0);
 
 	err = 0;
 
--- linux-gkeop-5.4-5.4.0.orig/crypto/algif_skcipher.c
+++ linux-gkeop-5.4-5.4.0/crypto/algif_skcipher.c
@@ -56,13 +56,13 @@
 	struct alg_sock *pask = alg_sk(psk);
 	struct af_alg_ctx *ctx = ask->private;
 	struct crypto_skcipher *tfm = pask->private;
-	unsigned int bs = crypto_skcipher_blocksize(tfm);
+	unsigned int bs = crypto_skcipher_chunksize(tfm);
 	struct af_alg_async_req *areq;
 	int err = 0;
 	size_t len = 0;
 
-	if (!ctx->used) {
-		err = af_alg_wait_for_data(sk, flags);
+	if (!ctx->init || (ctx->more && ctx->used < bs)) {
+		err = af_alg_wait_for_data(sk, flags, bs);
 		if (err)
 			return err;
 	}
@@ -74,14 +74,10 @@
 		return PTR_ERR(areq);
 
 	/* convert iovecs of output buffers into RX SGL */
-	err = af_alg_get_rsgl(sk, msg, flags, areq, -1, &len);
+	err = af_alg_get_rsgl(sk, msg, flags, areq, ctx->used, &len);
 	if (err)
 		goto free;
 
-	/* Process only as much RX buffers for which we have TX data */
-	if (len > ctx->used)
-		len = ctx->used;
-
 	/*
 	 * If more buffers are to be expected to be processed, process only
 	 * full block size buffers.
@@ -127,7 +123,7 @@
 			crypto_skcipher_decrypt(&areq->cra_u.skcipher_req);
 
 		/* AIO operation in progress */
-		if (err == -EINPROGRESS || err == -EBUSY)
+		if (err == -EINPROGRESS)
 			return -EIOCBQUEUED;
 
 		sock_put(sk);
@@ -215,7 +211,7 @@
 	struct alg_sock *ask = alg_sk(sk);
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (!atomic_read(&ask->nokey_refcnt))
 		goto unlock_child;
 
 	psk = ask->parent;
@@ -227,11 +223,8 @@
 	if (crypto_skcipher_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)
 		goto unlock;
 
-	if (!pask->refcnt++)
-		sock_hold(psk);
-
-	ask->refcnt = 1;
-	sock_put(psk);
+	atomic_dec(&pask->nokey_refcnt);
+	atomic_set(&ask->nokey_refcnt, 0);
 
 	err = 0;
 
@@ -340,6 +333,7 @@
 	ctx = sock_kmalloc(sk, len, GFP_KERNEL);
 	if (!ctx)
 		return -ENOMEM;
+	memset(ctx, 0, len);
 
 	ctx->iv = sock_kmalloc(sk, crypto_skcipher_ivsize(tfm),
 			       GFP_KERNEL);
@@ -347,16 +341,10 @@
 		sock_kfree_s(sk, ctx, len);
 		return -ENOMEM;
 	}
-
 	memset(ctx->iv, 0, crypto_skcipher_ivsize(tfm));
 
 	INIT_LIST_HEAD(&ctx->tsgl_list);
 	ctx->len = len;
-	ctx->used = 0;
-	atomic_set(&ctx->rcvused, 0);
-	ctx->more = 0;
-	ctx->merge = 0;
-	ctx->enc = 0;
 	crypto_init_wait(&ctx->wait);
 
 	ask->private = ctx;
--- linux-gkeop-5.4-5.4.0.orig/crypto/api.c
+++ linux-gkeop-5.4-5.4.0/crypto/api.c
@@ -97,7 +97,7 @@
 	struct crypto_larval *larval = (void *)alg;
 
 	BUG_ON(!crypto_is_larval(alg));
-	if (larval->adult)
+	if (!IS_ERR_OR_NULL(larval->adult))
 		crypto_mod_put(larval->adult);
 	kfree(larval);
 }
@@ -178,6 +178,8 @@
 		alg = ERR_PTR(-ETIMEDOUT);
 	else if (!alg)
 		alg = ERR_PTR(-ENOENT);
+	else if (IS_ERR(alg))
+		;
 	else if (crypto_is_test_larval(larval) &&
 		 !(alg->cra_flags & CRYPTO_ALG_TESTED))
 		alg = ERR_PTR(-EAGAIN);
@@ -344,13 +346,12 @@
 	return len;
 }
 
-void crypto_shoot_alg(struct crypto_alg *alg)
+static void crypto_shoot_alg(struct crypto_alg *alg)
 {
 	down_write(&crypto_alg_sem);
 	alg->cra_flags |= CRYPTO_ALG_DYING;
 	up_write(&crypto_alg_sem);
 }
-EXPORT_SYMBOL_GPL(crypto_shoot_alg);
 
 struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type,
 				      u32 mask)
--- linux-gkeop-5.4-5.4.0.orig/crypto/asymmetric_keys/asym_tpm.c
+++ linux-gkeop-5.4-5.4.0/crypto/asymmetric_keys/asym_tpm.c
@@ -370,7 +370,7 @@
 	memcpy(cur, e, sizeof(e));
 	cur += sizeof(e);
 	/* Zero parameters to satisfy set_pub_key ABI. */
-	memset(cur, 0, SETKEY_PARAMS_SIZE);
+	memzero_explicit(cur, SETKEY_PARAMS_SIZE);
 
 	return cur - buf;
 }
@@ -486,6 +486,7 @@
 	if (ret < 0)
 		goto error_free_tfm;
 
+	ret = -ENOMEM;
 	req = akcipher_request_alloc(tfm, GFP_KERNEL);
 	if (!req)
 		goto error_free_tfm;
--- linux-gkeop-5.4-5.4.0.orig/crypto/asymmetric_keys/public_key.c
+++ linux-gkeop-5.4-5.4.0/crypto/asymmetric_keys/public_key.c
@@ -119,6 +119,7 @@
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
+	ret = -ENOMEM;
 	key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
 		      GFP_KERNEL);
 	if (!key)
@@ -184,6 +185,7 @@
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
+	ret = -ENOMEM;
 	req = akcipher_request_alloc(tfm, GFP_KERNEL);
 	if (!req)
 		goto error_free_tfm;
--- linux-gkeop-5.4-5.4.0.orig/crypto/crypto_user_base.c
+++ linux-gkeop-5.4-5.4.0/crypto/crypto_user_base.c
@@ -213,8 +213,10 @@
 drop_alg:
 	crypto_mod_put(alg);
 
-	if (err)
+	if (err) {
+		kfree_skb(skb);
 		return err;
+	}
 
 	return nlmsg_unicast(net->crypto_nlsk, skb, NETLINK_CB(in_skb).portid);
 }
--- linux-gkeop-5.4-5.4.0.orig/crypto/crypto_user_stat.c
+++ linux-gkeop-5.4-5.4.0/crypto/crypto_user_stat.c
@@ -328,8 +328,10 @@
 drop_alg:
 	crypto_mod_put(alg);
 
-	if (err)
+	if (err) {
+		kfree_skb(skb);
 		return err;
+	}
 
 	return nlmsg_unicast(net->crypto_nlsk, skb, NETLINK_CB(in_skb).portid);
 }
--- linux-gkeop-5.4-5.4.0.orig/crypto/drbg.c
+++ linux-gkeop-5.4-5.4.0/crypto/drbg.c
@@ -1294,8 +1294,10 @@
 	if (IS_ENABLED(CONFIG_CRYPTO_FIPS)) {
 		drbg->prev = kzalloc(drbg_sec_strength(drbg->core->flags),
 				     GFP_KERNEL);
-		if (!drbg->prev)
+		if (!drbg->prev) {
+			ret = -ENOMEM;
 			goto fini;
+		}
 		drbg->fips_primed = false;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/crypto/ecc.c
+++ linux-gkeop-5.4-5.4.0/crypto/ecc.c
@@ -1284,10 +1284,11 @@
 static inline void ecc_swap_digits(const u64 *in, u64 *out,
 				   unsigned int ndigits)
 {
+	const __be64 *src = (__force __be64 *)in;
 	int i;
 
 	for (i = 0; i < ndigits; i++)
-		out[i] = __swab64(in[ndigits - 1 - i]);
+		out[i] = be64_to_cpu(src[ndigits - 1 - i]);
 }
 
 static int __ecc_is_key_valid(const struct ecc_curve *curve,
--- linux-gkeop-5.4-5.4.0.orig/crypto/ecdh.c
+++ linux-gkeop-5.4-5.4.0/crypto/ecdh.c
@@ -39,7 +39,8 @@
 	struct ecdh params;
 	unsigned int ndigits;
 
-	if (crypto_ecdh_decode_key(buf, len, &params) < 0)
+	if (crypto_ecdh_decode_key(buf, len, &params) < 0 ||
+	    params.key_size > sizeof(ctx->private_key))
 		return -EINVAL;
 
 	ndigits = ecdh_supported_curve(params.curve_id);
@@ -53,12 +54,13 @@
 		return ecc_gen_privkey(ctx->curve_id, ctx->ndigits,
 				       ctx->private_key);
 
-	if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits,
-			     (const u64 *)params.key, params.key_size) < 0)
-		return -EINVAL;
-
 	memcpy(ctx->private_key, params.key, params.key_size);
 
+	if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits,
+			     ctx->private_key, params.key_size) < 0) {
+		memzero_explicit(ctx->private_key, params.key_size);
+		return -EINVAL;
+	}
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/crypto/ecdh_helper.c
+++ linux-gkeop-5.4-5.4.0/crypto/ecdh_helper.c
@@ -67,6 +67,9 @@
 	if (secret.type != CRYPTO_KPP_SECRET_TYPE_ECDH)
 		return -EINVAL;
 
+	if (unlikely(len < secret.len))
+		return -EINVAL;
+
 	ptr = ecdh_unpack_data(&params->curve_id, ptr, sizeof(params->curve_id));
 	ptr = ecdh_unpack_data(&params->key_size, ptr, sizeof(params->key_size));
 	if (secret.len != crypto_ecdh_key_len(params))
--- linux-gkeop-5.4-5.4.0.orig/crypto/hash_info.c
+++ linux-gkeop-5.4-5.4.0/crypto/hash_info.c
@@ -26,7 +26,7 @@
 	[HASH_ALGO_TGR_128]	= "tgr128",
 	[HASH_ALGO_TGR_160]	= "tgr160",
 	[HASH_ALGO_TGR_192]	= "tgr192",
-	[HASH_ALGO_SM3_256]	= "sm3-256",
+	[HASH_ALGO_SM3_256]	= "sm3",
 	[HASH_ALGO_STREEBOG_256] = "streebog256",
 	[HASH_ALGO_STREEBOG_512] = "streebog512",
 };
--- linux-gkeop-5.4-5.4.0.orig/crypto/internal.h
+++ linux-gkeop-5.4-5.4.0/crypto/internal.h
@@ -68,7 +68,6 @@
 void crypto_remove_spawns(struct crypto_alg *alg, struct list_head *list,
 			  struct crypto_alg *nalg);
 void crypto_remove_final(struct list_head *list);
-void crypto_shoot_alg(struct crypto_alg *alg);
 struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type,
 				      u32 mask);
 void *crypto_create_tfm(struct crypto_alg *alg,
--- linux-gkeop-5.4-5.4.0.orig/crypto/lrw.c
+++ linux-gkeop-5.4-5.4.0/crypto/lrw.c
@@ -289,7 +289,7 @@
 	crypto_free_skcipher(ctx->child);
 }
 
-static void free(struct skcipher_instance *inst)
+static void free_inst(struct skcipher_instance *inst)
 {
 	crypto_drop_skcipher(skcipher_instance_ctx(inst));
 	kfree(inst);
@@ -401,7 +401,7 @@
 	inst->alg.encrypt = encrypt;
 	inst->alg.decrypt = decrypt;
 
-	inst->free = free;
+	inst->free = free_inst;
 
 	err = skcipher_register_instance(tmpl, inst);
 	if (err)
--- linux-gkeop-5.4-5.4.0.orig/crypto/pcrypt.c
+++ linux-gkeop-5.4-5.4.0/crypto/pcrypt.c
@@ -24,6 +24,8 @@
 
 struct pcrypt_instance_ctx {
 	struct crypto_aead_spawn spawn;
+	struct padata_shell *psenc;
+	struct padata_shell *psdec;
 	atomic_t tfm_count;
 };
 
@@ -32,6 +34,12 @@
 	unsigned int cb_cpu;
 };
 
+static inline struct pcrypt_instance_ctx *pcrypt_tfm_ictx(
+	struct crypto_aead *tfm)
+{
+	return aead_instance_ctx(aead_alg_instance(tfm));
+}
+
 static int pcrypt_aead_setkey(struct crypto_aead *parent,
 			      const u8 *key, unsigned int keylen)
 {
@@ -63,7 +71,6 @@
 	struct padata_priv *padata = pcrypt_request_padata(preq);
 
 	padata->info = err;
-	req->base.flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
 
 	padata_do_serial(padata);
 }
@@ -90,6 +97,9 @@
 	struct crypto_aead *aead = crypto_aead_reqtfm(req);
 	struct pcrypt_aead_ctx *ctx = crypto_aead_ctx(aead);
 	u32 flags = aead_request_flags(req);
+	struct pcrypt_instance_ctx *ictx;
+
+	ictx = pcrypt_tfm_ictx(aead);
 
 	memset(padata, 0, sizeof(struct padata_priv));
 
@@ -103,7 +113,7 @@
 			       req->cryptlen, req->iv);
 	aead_request_set_ad(creq, req->assoclen);
 
-	err = padata_do_parallel(pencrypt, padata, &ctx->cb_cpu);
+	err = padata_do_parallel(ictx->psenc, padata, &ctx->cb_cpu);
 	if (!err)
 		return -EINPROGRESS;
 
@@ -132,6 +142,9 @@
 	struct crypto_aead *aead = crypto_aead_reqtfm(req);
 	struct pcrypt_aead_ctx *ctx = crypto_aead_ctx(aead);
 	u32 flags = aead_request_flags(req);
+	struct pcrypt_instance_ctx *ictx;
+
+	ictx = pcrypt_tfm_ictx(aead);
 
 	memset(padata, 0, sizeof(struct padata_priv));
 
@@ -145,7 +158,7 @@
 			       req->cryptlen, req->iv);
 	aead_request_set_ad(creq, req->assoclen);
 
-	err = padata_do_parallel(pdecrypt, padata, &ctx->cb_cpu);
+	err = padata_do_parallel(ictx->psdec, padata, &ctx->cb_cpu);
 	if (!err)
 		return -EINPROGRESS;
 
@@ -192,6 +205,8 @@
 	struct pcrypt_instance_ctx *ctx = aead_instance_ctx(inst);
 
 	crypto_drop_aead(&ctx->spawn);
+	padata_free_shell(ctx->psdec);
+	padata_free_shell(ctx->psenc);
 	kfree(inst);
 }
 
@@ -233,12 +248,22 @@
 	if (!inst)
 		return -ENOMEM;
 
+	err = -ENOMEM;
+
 	ctx = aead_instance_ctx(inst);
+	ctx->psenc = padata_alloc_shell(pencrypt);
+	if (!ctx->psenc)
+		goto out_free_inst;
+
+	ctx->psdec = padata_alloc_shell(pdecrypt);
+	if (!ctx->psdec)
+		goto out_free_psenc;
+
 	crypto_set_aead_spawn(&ctx->spawn, aead_crypto_instance(inst));
 
 	err = crypto_grab_aead(&ctx->spawn, name, 0, 0);
 	if (err)
-		goto out_free_inst;
+		goto out_free_psdec;
 
 	alg = crypto_spawn_aead_alg(&ctx->spawn);
 	err = pcrypt_init_instance(aead_crypto_instance(inst), &alg->base);
@@ -271,6 +296,10 @@
 
 out_drop_aead:
 	crypto_drop_aead(&ctx->spawn);
+out_free_psdec:
+	padata_free_shell(ctx->psdec);
+out_free_psenc:
+	padata_free_shell(ctx->psenc);
 out_free_inst:
 	kfree(inst);
 	goto out;
@@ -362,11 +391,12 @@
 
 static void __exit pcrypt_exit(void)
 {
+	crypto_unregister_template(&pcrypt_tmpl);
+
 	pcrypt_fini_padata(pencrypt);
 	pcrypt_fini_padata(pdecrypt);
 
 	kset_unregister(pcrypt_kset);
-	crypto_unregister_template(&pcrypt_tmpl);
 }
 
 subsys_initcall(pcrypt_init);
--- linux-gkeop-5.4-5.4.0.orig/crypto/rng.c
+++ linux-gkeop-5.4-5.4.0/crypto/rng.c
@@ -37,12 +37,16 @@
 	crypto_stats_get(alg);
 	if (!seed && slen) {
 		buf = kmalloc(slen, GFP_KERNEL);
-		if (!buf)
+		if (!buf) {
+			crypto_alg_put(alg);
 			return -ENOMEM;
+		}
 
 		err = get_random_bytes_wait(buf, slen);
-		if (err)
+		if (err) {
+			crypto_alg_put(alg);
 			goto out;
+		}
 		seed = buf;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/crypto/tcrypt.c
+++ linux-gkeop-5.4-5.4.0/crypto/tcrypt.c
@@ -198,8 +198,8 @@
 			goto out;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount * num_mb, secs, (long)bcount * blen * num_mb);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount * num_mb, secs, (u64)bcount * blen * num_mb);
 
 out:
 	kfree(rc);
@@ -468,8 +468,8 @@
 			return ret;
 	}
 
-	printk("%d operations in %d seconds (%ld bytes)\n",
-	       bcount, secs, (long)bcount * blen);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+	        bcount, secs, (u64)bcount * blen);
 	return 0;
 }
 
@@ -759,8 +759,8 @@
 			goto out;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount * num_mb, secs, (long)bcount * blen * num_mb);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount * num_mb, secs, (u64)bcount * blen * num_mb);
 
 out:
 	kfree(rc);
@@ -1196,8 +1196,8 @@
 			goto out;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount * num_mb, secs, (long)bcount * blen * num_mb);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount * num_mb, secs, (u64)bcount * blen * num_mb);
 
 out:
 	kfree(rc);
@@ -1434,8 +1434,8 @@
 			return ret;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount, secs, (long)bcount * blen);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount, secs, (u64)bcount * blen);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/crypto/testmgr.c
+++ linux-gkeop-5.4-5.4.0/crypto/testmgr.c
@@ -2102,6 +2102,7 @@
 	 * If the key or authentication tag size couldn't be set, no need to
 	 * continue to encrypt.
 	 */
+	vec->crypt_error = 0;
 	if (vec->setkey_error || vec->setauthsize_error)
 		goto done;
 
@@ -2245,10 +2246,12 @@
 					req, tsgls);
 		if (err)
 			goto out;
-		err = test_aead_vec_cfg(driver, DECRYPT, &vec, vec_name, cfg,
-					req, tsgls);
-		if (err)
-			goto out;
+		if (vec.crypt_error == 0) {
+			err = test_aead_vec_cfg(driver, DECRYPT, &vec, vec_name,
+						cfg, req, tsgls);
+			if (err)
+				goto out;
+		}
 		cond_resched();
 	}
 	err = 0;
@@ -2678,6 +2681,15 @@
 	skcipher_request_set_callback(req, 0, crypto_req_done, &wait);
 	skcipher_request_set_crypt(req, &src, &dst, vec->len, iv);
 	vec->crypt_error = crypto_wait_req(crypto_skcipher_encrypt(req), &wait);
+	if (vec->crypt_error != 0) {
+		/*
+		 * The only acceptable error here is for an invalid length, so
+		 * skcipher decryption should fail with the same error too.
+		 * We'll test for this.  But to keep the API usage well-defined,
+		 * explicitly initialize the ciphertext buffer too.
+		 */
+		memset((u8 *)vec->ctext, 0, vec->len);
+	}
 done:
 	snprintf(name, max_namelen, "\"random: len=%u klen=%u\"",
 		 vec->len, vec->klen);
@@ -4104,6 +4116,15 @@
 			.cipher = __VECS(tf_cbc_tv_template)
 		},
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "cbc-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_cbc_tv_template)
+		}
+	}, {
+#endif
 		.alg = "cbcmac(aes)",
 		.fips_allowed = 1,
 		.test = alg_test_hash,
@@ -4246,6 +4267,15 @@
 			.cipher = __VECS(tf_ctr_tv_template)
 		}
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "ctr-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_ctr_tv_template)
+		}
+	}, {
+#endif
 		.alg = "cts(cbc(aes))",
 		.test = alg_test_skcipher,
 		.fips_allowed = 1,
@@ -4532,6 +4562,15 @@
 			.cipher = __VECS(xtea_tv_template)
 		}
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "ecb-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_tv_template)
+		}
+	}, {
+#endif
 		.alg = "ecdh",
 		.test = alg_test_kpp,
 		.fips_allowed = 1,
@@ -5085,6 +5124,15 @@
 			.cipher = __VECS(tf_xts_tv_template)
 		}
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "xts-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_xts_tv_template)
+		}
+	}, {
+#endif
 		.alg = "xts4096(paes)",
 		.test = alg_test_null,
 		.fips_allowed = 1,
--- linux-gkeop-5.4-5.4.0.orig/crypto/xts.c
+++ linux-gkeop-5.4-5.4.0/crypto/xts.c
@@ -328,7 +328,7 @@
 	crypto_free_cipher(ctx->tweak);
 }
 
-static void free(struct skcipher_instance *inst)
+static void free_inst(struct skcipher_instance *inst)
 {
 	crypto_drop_skcipher(skcipher_instance_ctx(inst));
 	kfree(inst);
@@ -439,7 +439,7 @@
 	inst->alg.encrypt = encrypt;
 	inst->alg.decrypt = decrypt;
 
-	inst->free = free;
+	inst->free = free_inst;
 
 	err = skcipher_register_instance(tmpl, inst);
 	if (err)
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/abiname
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/abiname
@@ -0,0 +1 @@
+1014
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop
@@ -0,0 +1,23820 @@
+EXPORT_SYMBOL	 arch/x86/kvm/kvm 0x753eab9a	kvm_cpu_has_pending_timer
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x27f17d56	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x4cf72566	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x73ae4367	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa9e9f8fe	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xebd29553	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfe490830	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x18c57018	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x847e11cc	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xd3cf913a	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x46d62c63	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xf7ebfeac	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/acpi/video 0x612bd1e5	acpi_video_get_levels
+EXPORT_SYMBOL	 drivers/acpi/video 0x6de7f7ff	acpi_video_get_backlight_type
+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 0x8826c13b	acpi_video_register
+EXPORT_SYMBOL	 drivers/acpi/video 0xccf36551	acpi_video_get_edid
+EXPORT_SYMBOL	 drivers/acpi/video 0xe92ca535	acpi_video_set_dmi_backlight_type
+EXPORT_SYMBOL	 drivers/atm/suni 0x9477d2af	suni_init
+EXPORT_SYMBOL	 drivers/atm/uPD98402 0x79a743ce	uPD98402_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x26591f14	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x3002e6d0	bcma_core_dma_translation
+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/block/paride/paride 0x0662d106	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0b67bd13	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x2c15bb40	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x488b4255	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5ad31b20	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x71121bb9	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x7e8c188b	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x92db86cd	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa5277365	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb0fb1f0d	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe3fbd301	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf78c72f9	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xb2e3121c	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x2f3b1748	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+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 0x9abf85cc	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe3cd18d7	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe3dcccae	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf0cac05c	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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/nvram 0x3ef38dc9	arch_nvram_ops
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8328329f	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xa5afd898	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xda38fc0c	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xfc3f69fc	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x3eb13e51	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x550ba468	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xe27c09e0	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x8fcf5275	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xdf24bf4b	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xe3889e90	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x01cc5291	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x082ed5e1	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0c3f518f	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x12fd2fc3	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1adda472	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1e00a89e	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x22dfbd47	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x24d8159e	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x322ebbb0	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4cc74549	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x566b325a	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5eb9795d	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x63764ad5	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x71f0dae6	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x7a7fa0b8	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x92407805	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9e827a34	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9f8b0c43	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xafcf55ee	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc7ad4bea	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcab3635e	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb56b42b	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xceb37626	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe0d7c225	fw_core_handle_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 0xf0158097	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfcf58e8e	fw_send_request
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x00d65ec5	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0128bc17	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x017d3e94	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03aac6c8	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05dadd0c	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x061f2ba4	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06a8adcd	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070c5c9d	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x072dd889	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0737b0ed	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0911a329	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0911e47f	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09bc811a	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b6aadec	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d73996f	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e30e0f5	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fcf5ac0	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10e0e102	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1173464f	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x117bd56b	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1281a87b	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12ffbe64	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13c30afd	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x157eed4a	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16a45ae5	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17cff3b8	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19245d25	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x196bdda1	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bfefde3	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c0c2afe	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ca6b696	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d70611d	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e235ce2	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e7cf0a7	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2159ba8a	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21b0cd6b	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21f0bda4	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23386d69	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x237d0452	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2552ec93	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x266bf1b9	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x277e6580	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x295c933b	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a0dae47	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a867d10	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2aa6f105	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b5cbd6d	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2be435ac	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c07b622	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d645c20	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d9ceb71	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ea1f53a	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fa14c2f	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ff72397	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x300f2477	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30caa3ae	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30cd01ca	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x333e9d94	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x336bd02a	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x337fc61c	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33aeaec9	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x349687b6	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34ace60f	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34e92409	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3512a2f4	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x352f0c9c	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x356f95e8	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35a73f75	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36024467	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x366cb693	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3910224a	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ac647d1	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b968f20	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c3617da	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d6dd46d	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d706e4b	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3eaddfa0	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ecaa93c	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ed5e8ab	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f66d9b9	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fb80cac	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40135af8	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x402206f7	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x404b5458	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4088ea58	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41562a61	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x415bcf14	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41a42e65	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41c33668	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41dfc25d	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x429d5ee5	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43373c47	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x436752c8	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x444cc8a4	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x444f99ff	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45206597	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x454210f3	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x456a2316	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4638a7d7	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4667a938	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46da37b6	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47aa6f8d	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47da001a	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48e9140d	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48eebf09	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x491a0786	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49d51ab5	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a1c4617	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ab4c1c2	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c409d70	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d270b99	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e372adc	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f386604	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fac2999	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5038893b	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5050d615	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x508a3b6d	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50988037	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50e9d580	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51037985	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51e3a84f	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52f64bb1	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53034bab	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54b6e5ce	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56ed217a	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57c3e00e	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x599096e7	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a3515ed	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b929bef	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5bae861c	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c59300c	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d130aba	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d561f9d	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ddd7a64	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5dec741a	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e182170	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e5c8f23	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e7d31ab	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f2ea3d6	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fe61d1c	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60666628	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x606ff5f9	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x622afcb3	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6258a7e9	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62722f66	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6349d10a	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64ad218c	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64b0b76b	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65d890ff	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66f8cf6e	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x676b5cdc	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x68bd388d	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x699876ae	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a0c85af	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c580b37	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d70525d	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d834a42	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e91626d	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6eaa1107	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6eb6574f	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f7e4126	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fdefcfe	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ff746d5	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70c22eaa	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7193270c	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72722135	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e460a8	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e475d2	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72f284a2	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7329831d	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73a0c208	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73b4430c	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74639237	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75cc4e87	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76090b95	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76173351	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7884c1f3	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79d90dcf	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a4710e6	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7aa7264b	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7db2d600	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e3175ce	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e9fc7de	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7eaffbb8	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8041ba62	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80786b8d	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x814cbfba	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81a6080a	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82042f08	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x846923a2	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8472634c	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84acb136	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8529f000	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8596ee96	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87451ba6	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8828a35f	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89f106ff	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a8d1b0e	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ab3138b	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b03497d	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bad0efa	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c4330b2	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c85e9a6	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cb3dcf3	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f6e43df	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90e99274	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9221d07a	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92d706d7	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9494f70d	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94b9fe1c	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94d7e9ba	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94dc241f	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x962f515b	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9656d6f1	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x965ac5a2	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9675f2ec	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96f8f23f	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97370dd2	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x982a81f6	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x988457ed	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99b5abf8	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a3c1985	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a7a5527	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9abede11	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bbad484	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c09d32f	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c10ad6c	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ce8217f	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d488a8c	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d9d6df7	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e2b377b	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa018e9f0	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa04d11cf	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa29402fe	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2fc642c	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3004262	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa32f8642	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa51eabdd	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5adf67f	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5e1c81b	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6ec70ff	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8fc104f	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa91422a2	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaacf5758	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab567ee6	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabd4cfad	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xacdbb10c	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad585e04	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae3cc5fe	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf0a1168	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf114ca4	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb227e630	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2bce6ee	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb35674bb	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb47f6caa	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4b9a87d	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4fc02e8	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb565fc9a	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb58252a6	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb58b886d	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb618610e	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6863af6	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb698d6a6	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb717fc7a	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb743d2f9	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb76d1766	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb96f55e7	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba8e2b30	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb0cb11d	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb96ad70	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbbc9877b	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcfe6c2e	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbee7722a	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfcdf484	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1636c3d	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2227cb4	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2841b1f	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2fd64b5	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4db7e49	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52297f9	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52c69dd	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc57ee486	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6624f05	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6eea7dc	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc726c815	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc789d4ef	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7d7c4db	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc943eb61	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc99bff65	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb587d11	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb5d49ac	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd509775	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xceba1c10	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcebd677b	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcedf45dc	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd47b5f63	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd53c9080	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd54cc289	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd60dbb15	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6287eaa	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd66dc7c2	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7074531	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd772428f	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8a87f18	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8e8e155	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd94ba43b	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda003094	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaec9ff3	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaf070b3	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb581f89	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc84c229	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdcceb72d	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde7b8bbc	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfc02a51	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe300c4fa	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe384a28c	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3ac08bb	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3e354e7	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3f53cbe	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe426498f	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe435eb81	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe584985a	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7ca6d80	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe849e41d	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9afd1ff	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea8017cf	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea8d1daf	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaca00a7	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebed16ae	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec56ccce	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee2cbc75	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef11f05d	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef919e90	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf040fa71	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0ae381a	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf11d2f1c	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf361aa62	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3a86838	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4ab3956	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf571809d	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5c38473	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf69f2bb0	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6c1a5d5	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf736c43b	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7e0a92a	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfafe883b	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbdffe64	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc50a5e2	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd1fd91c	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe1a50fc	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe5be415	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff880319	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffe02460	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02512519	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x025fd89a	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02938871	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x031a2a6e	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0544cd74	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a778936	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0c3b1b3d	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f9e8c46	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x109c8789	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13914670	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1759df49	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18eb81a2	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1aea0d82	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b2675c2	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d6698e2	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1dad9992	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2104eb41	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x210a37aa	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21f8c9ed	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2353b19f	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23f08e8c	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26b2d92b	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x272ecd2b	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27d3e281	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27fd2698	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28d0228d	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29cad508	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2cf25559	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f376a16	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f6870ab	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2fb525c6	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3023bb7a	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31044b96	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x314f2a7b	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x318ffd26	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32c353d7	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32ed6232	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33de5e6c	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3847de68	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b0a2d0a	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b974035	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3dbdb6fb	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x404a6b60	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44bb2436	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45136568	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x46fa3b46	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x481fd011	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4b427d8d	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c952799	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d2d8796	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d6c0c52	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ddec054	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4de3db29	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ec36186	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4f5a7b1e	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x511938df	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53e42a71	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54ae1b99	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5657d5bd	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x568b1574	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a9e323	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57a61e8a	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a243bc0	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a6dcd01	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b4824d5	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c62bf0f	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5cecd296	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5dc698ba	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5de50f4d	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61a25a91	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6238d1e3	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x64886579	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x661986dc	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66fabc70	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6992acd8	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b50fd02	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6bc614ef	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c5a5a6e	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6d48a779	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7028b954	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70327445	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7125f373	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71978903	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7351c639	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74a19e73	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77754118	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77c2ecba	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x786c667e	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a65add1	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ad47814	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7bbf2e42	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d32dbec	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d33f26d	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eee5762	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f4f8abd	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81c31d24	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82561767	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x838f4362	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84083985	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84b8505d	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88a20eb0	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8913b9d5	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8929b2b6	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x892ff0db	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89aea407	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91a4ef7c	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92152e5d	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94b54c07	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9519330e	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9577c591	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96ec47ee	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x97439148	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b04bd85	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e947ec9	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e9e6530	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ec0915a	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa367fd74	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3be4daf	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3cca62b	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3ccaa1e	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa45654d7	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4fcbfe4	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5c8e1fd	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa832caf9	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9dacc6a	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab4e5345	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac2dab93	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac365f5f	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadaa35ff	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xae791b77	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaeafa11f	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafc4b45e	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb004da3c	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb066645e	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb21d8ce5	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb26fdf66	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb32e10e0	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb418fe5b	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6ab4fd4	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7e18c20	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb95840be	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9d64f45	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbfab2825	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbfc5ce86	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc0ec0941	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc23365c6	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc29985eb	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3c8e48b	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc409c55d	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc49c00c3	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4c376e8	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4c4603a	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5199c34	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc538db66	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5989236	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7a02998	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca8b26f7	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca9b309a	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcac2caeb	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcba123ad	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd06fe12d	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd07ccbc4	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd0a156e7	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd33a1344	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd50e8bce	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5381efc	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5b03ca9	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd68394ef	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6fa8fb4	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd90c66d9	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9fd8dfe	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdbd88020	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdef4d478	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe03f400e	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe109823c	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe1432638	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2479d3f	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2c0c30f	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe39e133b	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3c4a1b4	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe41d39d5	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe62e748e	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7b84868	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7c2610d	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe967e490	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea195d9e	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeddaadbb	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf22e6e87	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf277b1ad	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5b7b99b	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf61ef67b	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf81d4021	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9e81f83	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbdacba6	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbe31654	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x123b4b7e	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3018b6fd	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3aa57c09	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4614f6ef	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x54002fd2	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5b7701f1	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6907d7ee	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6e9b5844	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x943e8aa3	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9d7e631f	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa8407739	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xad1d3f94	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb5b3ade5	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xbb19e956	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xceda1c73	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe60a9c53	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf1b71551	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfa5a0d65	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x071e6e41	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x14ac216b	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1a1b969c	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3687cb1b	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3c64df97	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x460beeb8	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4acb01eb	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4b350dfe	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x53da3eac	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x550a2bcc	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5c4ece5d	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x68607d07	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x848a31bd	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8df0065e	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8fc24db5	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa97bf916	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbf3f3728	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdfe3d469	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe0534ee2	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfb5579ec	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x025d491f	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x09f7f760	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0e4a23d3	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2609e695	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x26b554e1	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x357d5786	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3cd57fc8	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x72ae89e2	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x87370a49	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8b2cd25a	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x93497b6b	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x99668b89	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb95125cb	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbb12736b	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcbd29907	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xce110d9f	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcf86581c	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd2439c84	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe005815a	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x02e5fcb2	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a211e4a	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0ccc4fdc	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e27e91e	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x131b22b8	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x13b812ed	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1a8474bf	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c1b0585	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ef269ea	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x211ae738	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x221cc7df	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x24e1314e	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2843b0a5	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e02be8e	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f5c4ccc	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x334f9b56	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x37375dcd	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3a08ee67	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3cfd6b70	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x41beb363	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x428f66fa	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x451500c9	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4e6d4bc8	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x56c02e8c	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f63416e	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x61f2a9df	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x69d2e1ae	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6b2d9af2	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6d5a1013	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x71d1b251	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74e5e263	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7529e24d	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x770d6ecf	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x785b7722	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e0b7022	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e0f559e	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x80222654	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8215d1f7	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8a2832ef	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8f82eea0	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x91b2b107	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9557a85e	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96e9edc9	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9793ef9a	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x995bc4fd	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9ce8a215	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9e87df4f	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9f314eee	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa04797e7	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa970aa80	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xab51a430	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaba9bbe9	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb1bbfa1f	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb43f046d	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba0b3d06	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc1ebcf34	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc225d610	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc9f24f00	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd6bc6271	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd914cd2d	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe1ce8c8c	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe7de8c48	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf364b76d	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6801a74	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6a06289	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf948ebba	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/vmwgfx/vmwgfx 0x446c961c	ttm_base_object_noref_lookup
+EXPORT_SYMBOL	 drivers/hid/hid 0xa0a1e1b6	hid_bus_type
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x04a19dae	ishtp_set_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x05418ab4	ishtp_set_connection_state
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x089faf4a	ishtp_set_tx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0beec6e9	ishtp_put_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0d7e3a46	ishtp_fw_cl_by_uuid
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x131cbff9	ishtp_trace_callback
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x17710054	ishtp_cl_driver_unregister
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x18e48b8d	ishtp_cl_get_tx_free_rings
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1936ad27	ishtp_cl_connect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1d754465	ishtp_set_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x204a7c3c	ishtp_get_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x253a109c	ishtp_cl_io_rb_recycle
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x27000c77	ishtp_fw_cl_get_client
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x2a17323f	ishtp_reset_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x30332b40	ishtp_cl_link
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x3414ee57	ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x396d08bb	ishtp_dev_to_cl_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x463b6c83	ishtp_get_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4c31bfe1	ishtp_get_ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4f147595	ishtp_cl_unlink
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x56d8b49c	ishtp_cl_free
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58659ebe	ishtp_cl_set_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58b7fbcf	ishtp_device_init
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501	ishtp_get_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x6ca1fcc4	ishtp_recv
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x732718f1	ishtp_send_resume
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7ad08488	ishtp_cl_driver_register
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x815989e7	ishtp_reset_compl_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x83b2822a	ishtp_get_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x86cb4202	ishtp_cl_flush_queues
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8e9e40a2	ishtp_cl_rx_get_rb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8f3ede21	ishtp_start
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x944ca8db	ishtp_cl_tx_empty
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9b2f5227	ishtp_cl_disconnect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9e9b9bd9	ishtp_send_suspend
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb2d3a521	ishtp_bus_remove_all_clients
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbe75a564	ishtp_set_rx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc9d14db2	ishtp_cl_get_tx_free_buffer_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xccd0b9d8	ishtp_cl_send
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf64f793d	ishtp_register_event_cb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf6dd89f9	ishtp_cl_allocate
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfd81e9fc	ish_hw_reset
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfd8c6b3d	ishtp_get_pci_device
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x5bb8c21b	vmbus_recvpacket
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0xbb27bd1e	vmbus_sendpacket
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x0330811b	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+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/i2c/algos/i2c-algo-bit 0x22d870fb	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x87272ab3	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x8a66a567	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x41ee4f65	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xb6d737f1	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x60e418b8	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6a309ddc	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6cc4d968	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x72986536	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3e499f14	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3ed57f16	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5e7f8f30	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x674fe089	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6b70fb94	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6fdd6453	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7425d154	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x75638f5c	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x91fc8646	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa6b8dcf5	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb6586f58	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xcec7d809	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xdeafbbb8	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf2c46063	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf2eeb97f	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf88512ff	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x77293cc4	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xc5944cbf	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xf6448d4a	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x39fa63f2	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xa32b7df6	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x223cbe99	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x77854d50	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x98c07a05	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xbee72021	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xefc73f72	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3a529a63	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4006a08f	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x57d33ce8	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x615b61a2	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x77b23c30	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x97a090b6	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc8a64cde	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xcd4a3c75	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf6b8da4e	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xfb06e590	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4542c953	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x91852b8f	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd30b9c62	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd3d56e65	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x15e30d94	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1a91aaef	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x47d0a1b1	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5334299f	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x71619c80	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x885ba19d	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb1dda451	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb7989468	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc50ff481	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x02281170	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x660e41cc	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x7f8ce147	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x98455785	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xeb22d08e	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x00fff27a	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x08485a73	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe1e56770	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x218bf333	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x358c3328	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x383e2219	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3d603af3	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3fc2cbe0	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x45ae67b7	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5f35f848	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x644c5e5e	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6d6698e7	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x809a925b	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x88bc47aa	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8f60e575	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbf6fd5e9	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc6f35dcc	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcbbee08e	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcd77e6e4	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf5d7b6df	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x5f53d9fd	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xf8dacc11	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x6de7bec2	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x1cf7c736	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xb546b1f4	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xfb9cee70	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x116fc466	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x387e937b	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xee1eada3	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x08b03b90	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xae587a38	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x0a278ee9	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x1c0c346c	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xb966a0de	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x71e50d54	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xfacc257f	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0028a8c9	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x03dcda0d	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x11fac073	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1bcf661a	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x24b9656c	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2a0a1fea	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2f01be63	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x32322448	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x45901294	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5b4cb020	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5c420755	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5cbe5981	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5f30e269	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6f66ffb1	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x858b1dc3	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x92739147	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa025aa42	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd62770bf	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd964df19	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xddc14056	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe2959330	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe94e2253	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xef86dce8	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0xe8b70e39	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x5af4295b	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xb40a2f75	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xef893e24	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xffd00502	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x2995771d	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x872d6a88	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x87e4d9ae	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xe4ded16f	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x41fe9b66	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x655ec0bb	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x1eb808a3	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x48858ebc	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x181b54df	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x2b7d80ee	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x6a62e122	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xd9b99889	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x466064d3	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x54844fc8	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x7a4af7a5	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x9fa2bbf1	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x67e9d2f5	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x93eec7d8	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xa98a58da	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x1fe7e280	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x6367430d	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x89e19e6f	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x98d2c3a3	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xce27c948	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x399d29f9	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xcfad47d2	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x600686e9	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xef5601e3	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xf020a704	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x00295b08	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x16a6f840	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1b0845c9	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1d97a7d9	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3707ccec	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x39bf1097	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x42487dd7	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x4890b57c	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x655d1043	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x75cae316	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x987b9be2	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa86240c8	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xba25770d	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcb56b359	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe5456a38	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xece7fb1f	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf7f3b694	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf8ba6614	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x014f11c1	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x017bab18	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x033c8c9c	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07ae3e68	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08a29d43	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09cba58c	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09e3a9d2	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09fd23fc	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ab5ccf3	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c2de314	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d4325fa	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e88d8c5	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0eedf8aa	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ffb1b0f	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1011d0f0	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x11b2ff54	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1255b0b6	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x134c3ea3	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15aea58c	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x17801a1f	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a0eb610	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1bef33db	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1dc885bb	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e009737	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e44d975	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x220ca7a9	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22119e41	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24156257	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x246a6437	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26cc46a7	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2946c168	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3160b866	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x32221d8a	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3340e643	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x34bd0636	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35af2f7f	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a0a88af	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a967c2a	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ab9537d	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c27958f	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c3cce81	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ddd43dd	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e111175	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x402647f6	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x409ca02f	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x413b057c	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x415d4721	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42f63f98	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43ab0538	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4db23186	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4df19409	ib_redirect_mad_qp
+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 0x4fd29922	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5137b3d3	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x51c26dca	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x530276dc	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5313a1f0	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58daf1ca	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5920c47d	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a6132fe	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ac2fc68	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5accd69e	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cfab4bf	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ed7a549	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5fdfcaee	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6140b551	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6153a093	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6202201d	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62335ea2	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6652a295	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x669cef07	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a0352f3	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e83bb8d	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70764ae4	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70981adb	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x715a0f9f	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x719f6026	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71c3d508	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71c6093b	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72c70d30	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72d3757f	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x760742f2	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x790e09f2	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x791ebeca	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a82dab0	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c283acb	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c842a49	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ceca739	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7dbf8a6d	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8213aa97	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x845c1842	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x85bd2995	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8711f7cd	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x875c8acb	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x885791b2	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88e7e8fb	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a51b843	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a5c96be	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8aac209e	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8abfb88e	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b326708	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b3fd3e8	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b452d63	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b547d3b	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b5bd6f7	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c02c5b9	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c03995a	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8ef23379	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x903b2b3e	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x922ee44b	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x92da9890	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93c80816	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95ac8eff	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95cbd43f	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97d084a6	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a9993c4	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b6c247a	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e32f22c	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa16957e3	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa27ab29e	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa5949f52	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6216e27	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa753e7a4	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7d064e1	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa80d23e3	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacc22a36	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf51bcd5	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0869084	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb08eadb1	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4b38e20	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4f56343	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb53263b3	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb80b3319	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb8a64e88	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba040d3f	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc3d82b8	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd9128f1	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe47f8eb	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe4fd877	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbf7303de	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbff4a200	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc06b763c	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2983303	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc5948b17	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc9389144	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcc753454	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd2a5ee7	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd4e72dc	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xce0a3215	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf0c0949	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf61365a	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd03db547	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd147dbdd	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd351e702	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6f58635	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7620202	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd837cb01	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd8b3edf8	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdcba71d0	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdd161920	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdffe9068	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe39fbd75	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe591bd77	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7d2aaca	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe866efc5	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe874bb2f	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe900a73c	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xebe2ecae	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee23fc0a	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee5f346d	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3ceb03b	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4527627	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5fd2e77	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6a6e84e	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf79e3a1f	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf7ddfddf	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8919a50	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf909d0ba	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb01a19e	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb504300	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc11f6bf	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfd4de561	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe0b410a	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffcfe02a	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x01c149f8	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x05e9f182	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x07e36274	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1085ec29	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1de35b1c	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x22210bbd	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2db4dff6	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2fdf8e2f	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x48276d39	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x578471c4	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x765fd039	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7a53b158	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7a8a96dc	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x92c44921	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9cb16573	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb1632b64	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb78fcf92	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbbd50b1c	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc4b06011	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc4b1fab6	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc85e15ea	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xda775b17	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe3b58e63	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xeb68130b	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xefade986	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfd82b7cd	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x16512c03	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x32165a6b	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3524cbd9	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3735b92c	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x61f81ff0	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x7a1a9bf2	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xaafac377	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xdf933d62	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x051f71c2	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0adde014	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x176d7f2b	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x21be34f7	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x22fc8fa6	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x245d4fd9	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x25fda287	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2ff280ec	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3544112b	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x37ae9b59	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3907490d	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3aaf23a8	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x41d9ec86	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4ece1d06	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x508fec0e	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5300a8ff	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6e6984f7	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x74d9cea9	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x84bf6576	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x90ca9603	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xab3fe9be	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb12150b3	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb12e373d	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb1b6adc7	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb63634e4	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe1e03e8f	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe94149b2	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf5d4cc0a	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x09488119	rvt_add_rnr_timer
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0c98e558	rvt_init_port
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842	ib_rvt_state_ops
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e4f4900	rvt_qp_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x3100641a	rvt_stop_rc_timers
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x33857926	rvt_lkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x33e23d0e	rvt_get_rwqe
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x35fb903d	rvt_compute_aeth
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x41f3ae83	rvt_del_timers_sync
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4824297c	rvt_rc_rnr_retry
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x50de3d10	rvt_cq_enter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x52025364	rvt_register_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x58f7ad7d	rvt_rkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5f86c733	rvt_fast_reg_mr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x645c2e4a	rvt_comm_est
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7260d6c0	rvt_check_ah
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7682e800	rvt_qp_iter_init
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x78bc203e	rvt_invalidate_rkey
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8f0b1ed7	rvt_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x9715f505	rvt_ruc_loopback
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x98a228e6	rvt_mcast_find
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xa1d7c0aa	rvt_copy_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xa9e6d504	rvt_add_retry_timer_ext
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb7538eac	rvt_get_credit
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb7db723d	rvt_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb8e83684	rvt_error_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc1d8dfea	rvt_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd3ba4ecb	rvt_send_complete
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd55f468b	rvt_qp_iter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd5f08dcc	rvt_rc_error
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43	rvt_rnr_tbl_to_usec
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xec468dfe	rvt_restart_sge
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x0d2a72c2	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1cac2fce	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2285f0ec	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x3274e608	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x6daf2768	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xa773e6b9	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xac5acaa8	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xbc566b3b	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xefbefe4c	gameport_open
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x4fd15619	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x92842024	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x93a66d20	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xb30487eb	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe9fa799a	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x350a55dd	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x5c6e5b7d	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe8371aa1	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xb83c1f1f	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x3fa16d91	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x5a26a93b	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xb3687ca9	ad714x_disable
+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 0xe3970f30	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x1698c979	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x078cde80	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x0ff7544b	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x739d0a1b	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x999ab91b	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf3296314	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x6017aa88	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x628abaaa	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x13ec1cf2	amd_iommu_free_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x7be042e6	amd_iommu_init_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x8829c6da	amd_iommu_bind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x99e748f2	amd_iommu_unbind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xbe4c82f4	amd_iommu_set_invalidate_ctx_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xe6f7040f	amd_iommu_set_invalid_ppr_cb
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x01f8b2db	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x12773852	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32fa6fe2	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4d2ced57	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9c04c3a6	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb3921ac9	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbc8ba476	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc82be54b	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcbc3d086	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xce435896	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+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 0x6eddc290	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x88ad6d11	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x998bdd4b	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xde9a90d9	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xe3f4ebeb	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xf51486da	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x00bd80b5	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x068ed342	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1078c674	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x19740ec3	bchannel_senddata
+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 0x26403f21	create_l1
+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 0x42ef8499	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x468714a3	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x59803046	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5a3dcabf	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x63dc4bd9	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x722dffc6	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x7f5b3f1d	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x87730b89	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8bd4f38f	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x94ab23ff	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x95b64045	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x95ce6520	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa70c6cc1	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb88f28f3	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe55edad3	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf9d2fcdb	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfd90e647	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfdf84492	mISDN_unregister_device
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xc28fde54	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 0xf4db7d4e	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x0b6dea0a	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3892ce4d	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3de99c91	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xcbf20fb3	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2f8b4a1f	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x6687d34b	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x82bd2b91	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x98eb4f4d	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xd676dab0	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf9ec238f	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/raid456 0xc6d6775d	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xdd653ae0	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x06ec27f2	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x191ea690	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x19f54247	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x65278965	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6889928b	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x71b5d826	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x79fefdb5	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7f23b892	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7f66c258	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa3003f93	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xaa20134f	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xab0432c9	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe659b481	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x3f86d7f3	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x491a5c6f	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x7d2cc1db	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeba22c3a	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x5a09a23b	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xe6bd1456	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x73141ded	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x789cb997	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x11138e33	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x278c38d3	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x71329324	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xb45c4677	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xb7a8f945	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xcf1f3b93	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa83c1684	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x000eacca	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x00d2b55b	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x089150cc	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1bab9df1	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x32de7de1	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x395b720f	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3e85d449	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x40542a90	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x40565d8b	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x50899c69	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x735c3e7b	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8333c0c4	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x85355732	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa2086bfe	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa6c10588	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xac49f963	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcd21d3dc	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe0ee80dd	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe1452313	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedd29c51	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf03c1f74	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf5cea30a	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf8d9bd5d	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfdf629c1	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0x01971cc3	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0xb8349fbf	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x3d796be2	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x5519d0f7	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x826ad1ad	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xab2445d4	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc38a3ea5	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xd52b69d4	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xdb312d8e	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xe06f361b	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf010f6d4	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x18d7789b	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0x10d22498	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x486f7bc3	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0x34055556	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x71227a36	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x0ca7887b	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xe84d3f98	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0x26c94522	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x4963c843	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x9a895a05	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xa4c07547	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0xf31a6f10	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x09f475b0	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x38a22ec8	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x1658e142	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x1c05bca3	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x3df78f96	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x714970f8	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xc2220418	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xf3877bfd	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2abbc6e9	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x443e3813	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x4875b6e9	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7a847eaa	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x80a6c6dc	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8b59c0c7	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x97e036eb	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9aa091a7	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa256c0a6	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xbacbf61d	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc5b3fa26	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xdf351802	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe4a5a0f5	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf19a1f80	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf3c475ad	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0xa5282839	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0681f027	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0d7bf391	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x1a7f51e5	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x861c23b6	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xa1e4b823	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf7992cd5	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x89db6f23	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x924495f1	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x9304c133	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xbeec134c	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0xda8b37f8	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0xa7b7f220	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x2d051696	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x587b8059	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x773dec7e	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x88967ba1	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9c2e89f9	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa3fcbdf1	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xacdb2d7f	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xb0ae6526	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc0599c0d	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xde656e6e	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe5310ec1	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe9fa16c0	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf8b62bd0	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x741a1ce5	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x87d370c2	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x984ecd88	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x9ac91761	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xae318b07	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x715404db	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0x923936b8	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0x211b684a	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0x9aff4b9d	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0x680f6ede	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x70c6ade6	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xdb08898e	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xf98184bd	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0x186df17a	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x2655a1c3	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xeef07e2c	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0x3f3883f8	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0x75b100d3	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0x91ebd39d	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0x77bc670f	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0x2a152aa9	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0x1659d110	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0x26844fb8	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0xdf1bee83	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x034176f8	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0x9a5de83c	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0xec67da0d	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xd504f77f	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x4d35e297	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0x717eacdd	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0xc610ae65	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x07ee2d4b	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x9fcf9af2	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x42fd9c47	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x4410353a	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x48136d9c	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x46598809	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0xb2de5e03	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0x0c951e06	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x99e5c15b	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0x3720a32b	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0x32dfa0e3	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0xcfbcac7e	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0xbef842a4	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x4a8e6fa4	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x244381f9	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x5b7170fd	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x661a959b	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x9e69fd55	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0xc1c972b9	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0x9e4725eb	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0xd37beff6	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x5bc053ca	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0xd92e5b9d	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0x8f3d7b8f	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0x8b5727a1	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xe9e156fc	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0xfa841f29	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0xbe25d1db	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x93bd7b05	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x7ba8c5ce	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xbe95bcc7	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xce0bc326	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0x9a1b001a	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0x3cb659a5	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0x443df777	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x7a179c5b	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xf9729072	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0x1f4da5f5	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0x51189a78	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xec9f7269	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xfa7fcdc0	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x136effb6	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0x7c5bbc78	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x3f88caa3	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0xd367aad6	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0xa1f9694f	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0xb947c390	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0xe34d88e8	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0xa1baaec1	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0xf06a3fcf	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xc760644f	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xea60c15e	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0xafb18635	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x3ded1a49	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0x9c0ce1f0	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x47b1fcc6	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x64bbf405	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb4d5af73	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdfcf93ca	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe22d7db3	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf4ad5079	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf4d71dda	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x1928d659	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x96f05fe8	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xec0afdf3	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xfa0e3835	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x68db5a1b	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x9912de6e	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xdf40d00e	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x12704f5b	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x17e81b04	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x32154ce6	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x38784111	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x45ab6587	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x7ba6a59c	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9a44ac1f	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xbacf0e03	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdb47641f	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0x9d4e179d	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x03855631	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x3814e3a3	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xb6104b34	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe21f1dd2	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe5a8e3a4	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x13897cdc	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x2c4f3501	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x71837fce	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x72d1d76a	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x75c7743b	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x790150ea	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xbed941a5	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x2e12e306	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x56db219e	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x36330913	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x61616129	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x7ae55aff	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xa09b8547	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x00269c53	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x102e43aa	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x1674cb66	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x3bbc5b3f	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x6cfbfa66	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xf701de4e	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xfe00b515	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0eef6846	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x12d3491d	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x165e8377	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1cf431e0	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3126d15b	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3380716a	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x33bc1d2e	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x479da1f9	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x611ba6c9	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x67744ccc	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8aa47db5	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8acf2ce1	cx88_set_tvnorm
+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 0xade1995c	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc01d1871	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc4ef60fb	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd3c834fc	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd8b37d06	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe32cc63d	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf0e8754f	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xfc4d974e	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0d0668b0	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2e939c8f	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x3b490219	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x6f5d77ea	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x73df59c5	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8832f202	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x92358f3e	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9c8372a8	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa5b248a9	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xafacdbbc	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb60f0303	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb77777e1	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb79c10d4	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc4ea9106	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xcbe3b873	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xdf2e3419	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe89fcd63	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x083f9806	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0be26159	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x14f0aad8	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x2bfc4ad7	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x33884435	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x3d51d958	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5e8c1b34	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x74b6f404	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x75219cb8	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9d83aa78	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc4fd150b	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x36285821	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x004be82c	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x27f8f267	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x37268e22	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4cedbe3a	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4ed666fa	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x5cba696d	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa22dd21d	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x5ccb628f	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xe6f97bf7	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0x76a119e0	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0xf5ad7949	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x202d8b1e	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xcdc32c13	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xef2e2dd4	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0xbe93e94b	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x69421806	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0xb6999f4d	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0xfd628fb1	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x15bc9cd2	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x2cf34272	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x324d7a00	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0x7a5760a4	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0xc02d0354	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0x4ad0961a	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0xfade81d1	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x45d5641f	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x4ee92cb8	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3c8f0c91	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5f52cc4a	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x69d0b49d	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x93a348f1	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9844e6d2	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc7fbaf9c	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc8fce272	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xed4c0293	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfd912b6f	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x03de85dc	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x09c1f692	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x0e65d779	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x239eb8e7	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xbb9c1f79	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xc23c219d	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xdc121347	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xb9e3dc9f	af9005_rc_decode
+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 0x24431176	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3047f9ff	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5433acdc	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5b9157ee	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x734c904e	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93e96a62	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd2a96861	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe8008113	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf6c3be2b	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x4f9b6622	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x680b7ae4	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x55efb49e	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x981e74aa	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x101baa67	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x19c84e9c	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1bec5bb8	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x37be5922	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x5c88ab9c	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x6aa58ed3	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xa6438de0	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe441cb91	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe483bf9f	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x205a2760	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x4c7351b4	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x6012b8e8	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x74af3daa	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x82161bb4	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9d24a86f	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xbc89e5e6	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe1aa11f4	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x0fda2c42	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x557f4ea7	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xf4bed1a2	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xce7b39eb	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xe5bc3821	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0606e6d9	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3c65c9e6	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc4f5f30d	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0600a90b	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x068b69f6	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x06a2b3b7	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x09590371	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0d2b3ec3	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x111b6e4b	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x13231afc	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1eb38d68	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x202f0b61	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2466eeac	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x249a9369	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x251700e6	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x27710885	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28016f62	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28dd242c	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2a845d7d	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30ad79ce	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3525ab5f	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x43a70329	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x45b4b5da	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x549ad19e	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x54fd5fc8	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5a51b874	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x66afd0bf	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x680d7d56	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x711f5849	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x74280cf9	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x74c0a8ab	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78cc17c1	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x881b14c7	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8953b274	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e8e30dc	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8f37e5eb	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x94dc2020	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9d9cb6fd	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab076d91	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab87f6fb	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xac31e079	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xadafed03	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xade23cf5	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb48b0834	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc201c142	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc8eec20a	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xca8e3768	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd454552c	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5019b8e	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5b9fb6a	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdb233e6b	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdec2a80f	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2afcce7	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe3200c2d	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe40ef10b	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe5ac00e9	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe6ac3f54	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe8bd29e8	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf19796f7	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf24c1f15	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf2b8586e	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf313c36b	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf65d2a37	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7c8acfe	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7d1db8c	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf8e2a999	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xffd33e7c	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x06539b96	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x14e76383	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x1c18b4e9	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x641710b5	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x77ca6a45	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x88d9a753	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc113f2a7	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd4be17ff	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xea9c5a15	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xedd5d5a0	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf3a5398a	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xfff2daf8	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0dc42120	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0fee5984	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x10bc1bca	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x16f6ebc7	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x236b360f	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2be5c917	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3a746cdc	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x464b4c0e	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x49ec5a46	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4a2417a8	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4fe67a56	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x597a0ab8	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5cb9dada	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5fdc1cf5	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x617ade37	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6eac9fcd	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8735821a	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x97b1d6d1	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x97cc67df	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9f53e6f3	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa0c5e441	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa27fccda	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa82aad15	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa9ac4054	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb0b0228d	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb1ee504c	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd573bf50	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe5b9bf92	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfe451c86	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x01d0320b	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x070de573	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x09bff398	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1fed58d9	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x25ab20d8	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2d25189f	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x363e6e9d	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3c61edc1	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x42911592	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x48ec4ddc	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4f108cd9	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5295512a	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x54a50660	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5c341071	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5e482286	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x60d01848	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xac97c408	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb8fb5812	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc25cf46e	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc35e521d	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc5d1aecb	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcb9da2c2	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcfa11a5a	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd5f6011c	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdf678c09	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf5c3d43c	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xff31195c	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x2946360b	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x425b49fd	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x569d3453	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x2e7e5ce1	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x9b0cd190	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xc4f2b1dc	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x21679c2a	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xf3517f50	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0ce3c44a	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x2ea1d444	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3a3f85c6	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6fa63f71	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7ba3c74b	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x860e90eb	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8793192d	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9884013a	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9a4e30da	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe2512e33	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe821ac17	mc13xxx_irq_unmask
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x4e9797c8	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x6655ce65	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x69836243	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7cad2c51	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd1f595e5	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xdb60aab4	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x4c8ded1c	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xadcff0f3	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x4811753b	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x1f3f1105	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x9fb36330	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0x1545cfd0	__tracepoint_mei_reg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xa5bff49d	__tracepoint_mei_pci_cfg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xb93bb2a0	__tracepoint_mei_reg_write
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0e8d8209	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2cd4ca13	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x30f9bb53	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3fb2e93d	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x40b62a4f	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4a8af0fc	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7f4ab4a6	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7fef6c20	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa7493146	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd0cb0fc0	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe75c0aa8	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf6985c08	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x09ed35f7	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x0abe86c6	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x6d428987	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xaa97f8a6	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xca46d419	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x03f2876e	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x25a485c9	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x5c081ec5	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x7108e838	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd7f88918	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xdaaa55da	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf17102c8	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x4e3352e1	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x535a0b87	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xdc10f5fc	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xf73bf60b	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xb26f3f39	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x25acb9ea	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x1f81dec6	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x89a6eeb8	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xa29095e2	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x9b7f9113	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xaf61f1d0	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x0a2f8d23	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x7ca6bc02	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x34ff6215	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3cf9e9e1	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6f700b68	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6fb659ef	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x9db4942b	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xbfeb4e40	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xd7b7cd4a	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe0a498b3	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe62b97e1	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xeb7cf33f	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x3eb56ce5	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x99b9481a	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x1dbc7871	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x491f867a	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4bf4782a	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x74a8627b	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x8f337a8c	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x9943ff0a	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcc13bceb	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcf2158a7	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd9a5e5e5	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xee96b755	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x02d107b6	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x32b74f53	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x3ee71d95	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x35b962ef	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x36d8581b	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x391a051e	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3ef59c4f	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3fed4e0c	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x41bbc07d	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x44272772	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x45a6ee1d	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4cb48c98	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4fc4d4dd	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x55b788eb	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x56201ab1	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5780f584	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x57faa0c8	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5db9dd2c	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6c399e8a	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x75284d0c	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7906d590	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7c5982e4	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7da30997	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8e279d6f	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9070c7f1	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9258c2da	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa233fe1b	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa7d19e15	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xafc07f9c	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb07587ea	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbd78d577	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc1829ede	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc46b16d9	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcf5e4923	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd3d28960	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd6a87a15	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdd6388bb	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe1515bb4	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe30bdced	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xeddacaee	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf3826bb4	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x295be9ae	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x2bda73c8	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x5d690287	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8a26cc6f	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8d63ec32	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xff198a22	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x01282d5c	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x65ef56fd	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0xc82eee99	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xc92a942e	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x1b6997d8	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x9d03e683	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xc280c617	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x279a7b79	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x39146173	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x4a668c73	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x51928c25	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x672ae6c2	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x86a039ce	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x8cebf602	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x9b35c68e	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xb654a530	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf56e0052	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x5dbd1485	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x26ec4758	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x29797afe	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
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+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 0x144fb430	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x18d656d1	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2ef3cd65	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3c881893	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3ee14091	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x486e018a	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x76d6b622	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa3b2a543	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6f358f1	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaf3d5e0b	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb9045ce6	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcad05317	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd043d706	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeb5ca29e	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfeb1e944	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xff337017	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x003ba27d	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04014802	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06c9ce89	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0925ed68	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x105c663e	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x229bf8bf	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x261b2d40	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2899a77f	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2dc21f60	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x33703404	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3388331f	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3474dd36	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x36e2a492	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x39197f9a	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a2f1a5a	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48679c60	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48e25f29	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x628de343	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x658b5f63	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x66a7a44c	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6da56c7e	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7478c3d4	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77a19c60	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7bd0f2ff	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7c3c3848	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x88845f89	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8ca1a3e6	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d4e63b0	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8f7309c8	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9a1878c1	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9c096f23	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xad22d380	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb133a1f6	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb8f55433	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc15bd15a	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc4cb7657	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc8e38712	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd510294	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdd8ddfb2	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4b56bb4	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4ea066b	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf03b9e4b	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf989ce19	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf9ef352a	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x113fee6e	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x41a09168	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x46839600	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4bb56ea4	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x6b9476b8	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x90edb5b1	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcf10458f	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x244c3c51	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x5d4543ad	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x896f1d52	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x9a05f4d6	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xbd8461fd	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf04c806c	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 0x4f513e51	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xb5fd69fc	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x404dee62	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xddc29ae6	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xb2f156c7	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xc75e8f7c	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x042cdfdd	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08030e36	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e12a05e	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f04f3da	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x119c7e39	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x131e356e	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26ca4c60	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28400665	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c6cb695	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c8afd60	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x306f8117	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5335d138	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62f9af29	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64e16f2d	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6aa86f76	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c114125	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x728ee42d	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x737acc50	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77d1ecbc	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e43b830	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7eccf258	mlx4_max_tc
+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 0x822b5259	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85647d53	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a3d56af	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b6acc68	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ebf74f1	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90a81c19	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98929f7c	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a320c49	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3a8c25c	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb08e4768	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb35dc352	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4522a07	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb76939e6	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb771dee0	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb77f7e4d	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8e4d7a1	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4428d32	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6147551	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc672b5b1	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc1896f9	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd5a6b23	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf96359df	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd687515	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01ef6ce4	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0574f28e	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06233d91	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06e6ee66	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x093484ef	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0af8bc4f	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0be7e3af	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e266bee	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e3bd40e	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f612bff	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16d928ec	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x178c4c6a	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a4c4cb3	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b5f4254	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ea55a4e	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2271c2c9	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x232b2112	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28fc3cdd	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a3668f9	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2be8fa06	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e529428	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ea0bbf1	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35a9b5a5	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37cae4da	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x396b22cf	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39e0b23b	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d667f99	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3eaab65b	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40435c1c	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42678e96	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43fe617a	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44f03c1d	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45f19278	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x469f0688	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4706f52e	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49d5dd0a	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b50040c	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c2b0dd1	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51261ef6	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x519cc49b	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x532cb025	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5711ea34	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58970ce7	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b40334d	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ed39ca5	mlx5_eswitch_uplink_get_proto_dev
+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 0x628af8f4	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x680b1c80	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ce77c94	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d6c5854	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70bf7c8a	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71512a7c	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a83ba80	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b2a2755	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x808133aa	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80b931df	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84f7b519	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8869d6b1	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d1866e7	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94797e7d	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99a4623b	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a0c9435	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b64e745	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c04ebe3	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d2902ff	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d4855a3	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9df858bd	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9eccf87f	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1dfb94a	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa271ef48	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa697f018	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa85436f2	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa14e8e3	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa180be0	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac6adf8d	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2c76cc0	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7b3c313	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb8d44e27	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb97b2a55	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb3eaab1	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1b3466b	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3357112	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc742f813	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcbe566fc	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xceb9bc0b	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcedce215	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6e4a99a	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd87b2596	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbe429ae	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd03df98	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe59cd872	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe59ee919	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea3a0372	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebf2ade6	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecd8dc76	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef874600	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefa81879	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf06fdd42	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2303e2d	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf295c007	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf31dff52	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf45727d0	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8171c07	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf976fe69	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfab7fc0e	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfdc49249	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfdd54bc8	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe23d1d5	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x1e851187	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15ad0d49	mlxsw_env_get_module_eeprom
+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 0x1ed14376	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x327fbdae	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x42252e8e	mlxsw_core_ptp_transmitted
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x48c8e9f4	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4993aa22	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x53acacb3	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+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 0x65119114	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6ff16a82	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8b00f248	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa37e1128	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaeaf566f	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xb7dfd4bf	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc59e0e3d	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd3ca1c3c	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xffe3cfd8	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x4b80860a	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x5d8155f6	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x32a12701	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x9efb9446	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x01a55607	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x03550af1	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0daf55bb	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x20b60d47	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x35563849	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4205eb52	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4beb7293	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5f2e5132	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x71122d9a	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7e4a049d	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa927ef7c	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd9507e0c	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe2a71577	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x2312b6e4	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4a691ce0	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 0x6e2268d7	qed_get_fcoe_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 0xf7e3c206	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x72c7b5e0	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xae23d376	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x51aa95cb	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x8f42e2e9	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x99ead2e1	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xcf7c4740	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xcf8a4dd2	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x0b8fc1ea	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x165e7eed	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x47dfe699	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x48a8d0f5	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x5f0cf909	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x65301d44	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0xae51262a	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xb0ddfaee	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0xf6c0b86b	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xfe9283ac	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x6eb26b31	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x9a6a2def	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xa96d512a	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x00776753	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xdbe90351	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x2a86a814	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x3684c65e	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x7f30e7b0	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf6d3f2ea	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x0804bce5	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x1847a1b8	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x1ee099a6	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x21d140d8	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x402d016e	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x52c24542	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x640649b1	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xc4caa060	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xd75daa0e	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x2d4d31f1	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x350bc1d2	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x82cf90ac	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x08b241e8	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x162cb5cd	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x2ac3d359	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x35fbfcf2	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x40a5c423	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x41db64b3	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x4fd1c126	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa0f5e3e3	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xef2b2eeb	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf6402cac	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x37d3f119	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x191e0125	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4083d5d6	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x45937431	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4cf4b0e2	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5a469349	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8326081a	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x97abe694	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9b00075f	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xabc69cb9	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xc0ef8d40	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd13108cf	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe98ca7a3	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x01408f7f	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x150c754f	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x19635d9d	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x19c3b181	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2136a12b	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x28e9085f	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2f421c1c	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x304fe597	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x34189b0f	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x36a28dbf	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x394167bc	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b4ac07a	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3e9c43e6	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4ac6e100	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5ae453f7	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x761aaf17	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x76faac1b	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7b90eaab	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7f13d745	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7f828da9	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x96fe1ab1	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x975dce2e	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9826a795	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x99370f0b	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9e3607b4	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa1fc4582	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa292e466	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa78bf6ee	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb534f923	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb60931d6	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb844653b	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb846fc92	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb90e16af	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbae325d0	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbc9804a3	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc0ba369a	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcab9934d	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd3af49c0	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe019bab5	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe97a2407	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xecd37814	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xee7213ba	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xef8dacab	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf0f6cdeb	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf63173fa	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf830a54f	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf9036ddc	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1f4eb18c	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4ec94beb	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5ed8af5b	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7c8ef4f4	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 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd0773e72	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd48b3dc4	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd6efd72f	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd9956156	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdaabf6d3	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdbc5f0f1	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfe04aed9	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0469c904	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0c66b955	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x196f6b6a	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x2dc25c34	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x30127b5f	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3845016a	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x53eebf1c	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5e7bed0b	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x60af6ac3	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6db22b6a	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x83de4151	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x89de0e61	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x96f88602	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9d8959e7	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa8a8a01f	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xba5c1592	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc461498b	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcc2a5033	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd24db85c	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd27eb521	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe0cc5200	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe97a5260	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xeb45e210	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x03c38f35	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a0e117b	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c0035ad	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1381ff99	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x161b456a	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ba70e9a	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bae14d4	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x22b10b06	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24db4944	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x282e3167	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x288eacd3	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x29093ea6	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b4d7f77	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e4a18b0	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3723d410	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3893f8a2	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3925fb72	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c6ac416	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d0bd0f4	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eed147a	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43784da4	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x46a38971	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48cf66e1	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48d53527	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4af9ac83	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b77e2da	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c506235	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5185b98d	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x54d56fd8	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55a19f0a	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x57a62d5e	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x594855d1	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x594ae1c5	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a9f8eeb	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c3b96a8	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x60823496	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x608fb84a	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62a3daf6	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6371a573	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x63d14212	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x63dfbad2	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x65f6e5f7	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ff1e9e8	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7012fec1	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x70327aad	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x71a99d02	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7234abf8	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7260ddc9	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x791ab5e5	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ac2b17f	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b643d35	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f8e0952	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8328c9f2	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8346d8ad	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x87f67be9	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a116bc5	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b600911	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cae17a3	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d48d9eb	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x933f1852	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x947cadc6	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x961940a3	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x967c9163	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9918ca58	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a750862	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa08b79d8	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa88bc708	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa99cf38c	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaada05d2	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xada27af5	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c90128	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb288838e	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb38d9e19	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb796871f	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9a0b467	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbb556a1	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd100671	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd5ab93d	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd82924d	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfc43285	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc00ef6e3	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1cbac3b	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6a8efa3	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc848b32f	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc866c85c	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc90055fc	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1563493	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd949e8b5	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda6c9169	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbcda777	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbf781e6	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdcdf98e2	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe18a50ad	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe35635be	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5049907	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe672a4a8	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6ba878f	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe82dd830	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xec5c48e1	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xefd9168c	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf030e1d8	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf49f4589	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7bc9897	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8c224ca	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9353284	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfafbb833	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xff0db18d	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x017d06c9	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x4704d1bf	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xfaf086c3	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x06d65d29	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x12030554	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x2e00f7fb	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6df2dd68	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x81a94bb4	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x84c26a69	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa6355297	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xaee34aa8	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xb6f04982	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc9a53cbf	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcdf814f1	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe52616aa	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xee4c9e2c	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x3c6742a5	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x5047552c	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0xa8e4c246	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1f6538b6	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4580baf4	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x54e108de	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x58ee6a70	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5bd55f48	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8344a14c	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x873be80a	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8b2dab17	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x98aa09f3	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9b994a7e	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xab435c9e	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xac975fc0	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc9181a47	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd5900d90	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd7b5f454	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdb5a5426	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe4f93cdd	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe9c50358	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xee0fd4e4	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf2598350	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00614179	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00fb6386	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x012a44cd	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x020f3314	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x03557abe	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x076361b4	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x07deeb54	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x09660090	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0b2ed666	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ef285f8	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x146de1f6	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x16e4a09f	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x171f9f14	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1795cddc	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c7690bc	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c95c325	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2428d377	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x26ab2939	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a1299a5	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b580aa4	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2fe9508e	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32ccba2c	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3434d618	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3581c446	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38849b71	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x39355717	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x399cb5f9	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3fe4958f	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45262bd0	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x47187e3b	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x49eeee2a	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f986f54	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51525b57	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5fb81896	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5fbb1e7a	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x651c844a	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6783102c	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x69c4767a	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6d5fe0ad	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6dc011c7	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x70b918d4	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7164402f	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x72fce2fb	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73102e73	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x74c55026	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x77166b17	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x778b5b46	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x77b80d81	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x796b6fbd	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7d23b398	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e62aab6	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f013d8e	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8770b476	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8f24a077	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92a5db7a	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93630931	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96af28af	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96b4d9a1	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x98742fc7	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9dd51cbc	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e84adab	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa52c3cb5	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8970ebb	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa9503cd6	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa993608d	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaa77120e	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac34d9d1	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac9c5f7b	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xad22d859	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xae0a717c	il_hdl_pm_debug_stats
+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 0xb7d30abb	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb9996f57	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbb930403	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc15026a	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdb81652	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc0c236bc	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc9f886bf	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca9ff518	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xccb0d505	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xce1234aa	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xce6c4e91	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcf4e503d	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0105c92	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd24e79cf	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd295dc07	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd626196b	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7645b1d	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda328905	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe4d385dd	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe80582e4	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee98b4d4	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee9d5bf0	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xefb29424	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf1766e9b	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf6927fe7	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8912bb3	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8ba1bdc	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfaabff65	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x034b0fb5	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x07512533	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x08d9c1d7	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x103e8758	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x38ec5173	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3b2529c8	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x40f8d9e9	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x48ca9bf1	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4e8626ca	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5a123615	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x62d7b23c	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6a53dbd3	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x72901681	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x731b5701	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x79b1d6ca	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x87273ef3	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9a707115	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9bbd3b4f	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa8621531	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xab3fa018	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc6a8b07c	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe2785f27	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xebc9844a	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xec4460c7	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf0900189	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x0fdff273	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x179e93cc	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x275720eb	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2a49d34b	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2a9ec787	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x324bfa2f	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9970939e	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa415b9c4	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa79bb492	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xd783920e	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe619f23e	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe6d9ec0a	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe8ab87db	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf319a6e8	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xfc7c4f92	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xa2c1ce7d	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x0243605d	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x057a635c	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x09bf77ca	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0c6d8224	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1206fb6c	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1bf8f628	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x200e2d44	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x212a95c3	rtl92c_dm_check_txpower_tracking
+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 0x2381098e	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2718adb2	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2976ff16	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2e843ff2	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3268ef17	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x353f12e1	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4256ae60	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x429621bd	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x57739108	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5d5329ee	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5e68671d	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5ff73b7f	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x624ad602	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x68aa443a	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6900cef4	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7554cb88	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7af795ae	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8be9581f	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c505a6b	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8d206608	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9e3d2d7d	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9eb81566	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa172f35f	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb100d793	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb6c8ccee	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb94277d7	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf3e56ef	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd66e153f	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdf097d51	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe576c970	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe8cc0708	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe962b882	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf48fcedd	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf8765eba	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x38d489e0	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x73ea2887	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x8cd5ed6c	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xf0b6536b	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x55502323	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x63e7aa5f	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xdbc4120e	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xe42e8cb9	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0657e9cb	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x06ab7ea0	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x29bde9b7	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e1113ea	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f15d876	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x326f132b	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x36498490	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3b679668	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e2ee1e5	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x535a6612	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x579da0a3	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5f625444	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5fcf75da	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x64796380	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x69f95794	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6d6b44e0	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x783bc4a7	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7e9670c2	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x99d4e495	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9cab672f	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaafb57fb	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xad060de1	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb40edfed	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb878532d	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc228b7da	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc37083be	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcc20a927	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdc4efac1	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xee8f4fd8	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf1587216	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf2cce72b	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfee553fd	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x02152229	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x231bb880	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2e1d2725	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4a41d6b2	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4e37ffc3	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5535046c	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x70e086c9	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x77421373	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9880784d	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9ca269c1	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa1aa24b9	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xaa9a1d03	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc4a93cef	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc98359e5	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcac047e1	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xce369ba2	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd6c927b1	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0xa8c2cf8e	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x38e0fe25	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x69b88f8e	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xa3d79860	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xc676c0cd	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x1042a065	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x60647748	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x92d1727c	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x1f7396e1	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xffb286b4	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x86927377	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xc31acb81	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xf2f90f90	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0xd8d758a1	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x73b4fd46	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xb9d7a705	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1546bfab	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1a9142c0	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x9a2126af	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x01910533	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x356b2760	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x39744219	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x64943a84	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7ee59870	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x8cfafe95	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xad76a6d6	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb6e4cd58	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xdbf85221	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf5363006	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x06f5c2cc	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0f9b0103	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1b034983	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x299b37d9	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2ea25049	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x37a1e65f	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5c61136f	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7aa9b540	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x927ef3b7	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9fb99584	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa066150d	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa7244931	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb115bad2	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb1be55c0	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc2871d00	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc846127c	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcc2ba6e2	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xda5e41ee	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1c690765	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2e873583	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2fb1738e	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x370e5127	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x3a4dd27a	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x42077173	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x52c73f3c	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5f680ac3	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x71201415	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x97084d2e	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9a3ddda9	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa83af72d	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xaa7cc576	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb3cd93ef	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdc5156ce	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe0c0245d	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xeafd8abf	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf57f76d7	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfa05acf8	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfe252464	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xa749ccf7	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xdf2a8900	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x008a328d	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x065f81af	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x0a8687d5	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x1b592285	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x236ead89	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x362186e6	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x388ffe9f	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x39f73350	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x423788fc	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x4e82582a	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x56a70724	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x5d3d85b2	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x65800e4a	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x7016cf68	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x70884c63	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x70e380f8	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x7d59d62e	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x7e56be43	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x80823ef4	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x84db532c	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x8a42afc5	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x8d8e53bc	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xb0042cd4	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0xb08699a9	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb13784cd	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xb399e3a9	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb6890ec8	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xc0350f9f	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xcec4c97d	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xd00cd68e	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xd35a10bf	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xfd54167e	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x3e2d76e6	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x903371a8	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x070e37e2	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x164a08ab	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1bf5ae73	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x2fd49575	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x3c24a12d	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x46667123	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x7152adf6	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x78d17845	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x840e4eac	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x878bb291	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8b23c2d4	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9d6117c2	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xae5d8b7d	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xcb24cc51	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xd8e88959	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xde951814	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xed9662cb	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xfe3da217	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x51104f99	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x5fc54bf3	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x77af9e24	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x7888c3ce	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x9e0d4c85	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xaf6051d9	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb333c9b1	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb5c05f86	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xd6a2a088	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf01f94ba	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x9461b8fe	pccard_nonstatic_ops
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0xd437a848	pccard_static_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x4d3584e6	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x8207d9ca	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xb7b9452d	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xef38fefb	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xaa1c36de	cros_ec_lpc_io_bytes_mec
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xc4ebc6b3	cros_ec_lpc_mec_init
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xf5c87c59	cros_ec_lpc_mec_destroy
+EXPORT_SYMBOL	 drivers/platform/x86/dcdbas 0xa75079d6	dcdbas_smi_request
+EXPORT_SYMBOL	 drivers/platform/x86/intel_punit_ipc 0x3a0b563a	intel_punit_ipc_simple_command
+EXPORT_SYMBOL	 drivers/platform/x86/sony-laptop 0xd857cac7	sony_pic_camera_command
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x5e6548da	wmi_driver_unregister
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x719b62bc	__wmi_driver_register
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x328f46c2	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x39695dae	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4fcc10c5	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5ad5d213	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72192eed	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72cdc6c5	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9579486f	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa09c22e4	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xab7bc644	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc1ef363a	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd2ddd8a8	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd91e07c7	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xf2e6ba15	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xfe7ddf73	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0xce583106	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x3d9cece0	NCR_700_intr
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xb1d47dfe	NCR_700_release
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xd9b9da83	NCR_700_detect
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x5e960f85	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x6496ae97	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x9f582447	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xe6fa5e6b	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x02c61cde	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x352f2e4e	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x66f6d2f0	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6f089e49	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7c1ea861	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9fcb8ecc	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa3275a70	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xbc3c77ed	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xc70f8b69	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xc83b004e	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf2664a6b	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x01045fb0	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0cd7aa41	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x121bc568	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x129b9e42	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x198dcc16	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x21c7c2b8	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x30bdc4db	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x30db4221	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x32cd075d	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x385c356a	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x39f26d4f	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x44c67c1a	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x453bb4cd	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x49d7b72c	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4bd9aa36	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x573bc2ed	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x58fc6a62	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x610da17f	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6626d017	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70229ec0	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70c287eb	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c9f074a	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7d0b231b	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f4d238c	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x81309a8f	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x840223ef	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8901603f	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8e78c10a	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x93b425b5	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa4e169c2	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa967401e	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xab2b100a	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaf7047a5	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb53882d1	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb5b46209	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc3d5a325	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5966047	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5ec4cb0	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xccc857a6	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcdee32c4	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd41b272c	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xddb50d6e	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0407d93	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe51761db	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xed5e3b0c	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeda70a6d	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf36ac5b1	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf98979f5	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfad4bd7e	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb6a1517	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfc1a5058	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfed4bb00	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xda28e93d	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xdacac26d	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xe29aceea	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x78f88500	mraid_mm_register_adp
+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/qla2xxx/qla2xxx 0x014963e2	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x0e73960e	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2156f664	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x408ab1f2	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x63b848cb	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x894d1008	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc5c56431	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc6a649a3	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe872de51	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xeb126de2	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf8448c7d	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf997b1d0	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x124560ec	qlogicfas408_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1f55cd70	qlogicfas408_ihandl
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x3fd8cd71	qlogicfas408_detect
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x54db32b8	qlogicfas408_host_reset
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x85948868	qlogicfas408_info
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xcee02c78	qlogicfas408_abort
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe4cfc546	qlogicfas408_disable_ints
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe76b3b20	qlogicfas408_get_chip_type
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xf2b95199	qlogicfas408_setup
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xfcc6bf79	qlogicfas408_biosparam
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0cff4089	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0fc22e9f	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xb2e2a965	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x02562229	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x145a7c47	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1e06c194	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x48522843	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x503ea020	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6d48097f	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x851d1095	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x95c57756	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb6293189	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcbb0410c	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcc01f499	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xdce84b53	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf2711f16	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf5721e1b	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf69db2f5	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xff516516	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x04803961	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x080a5f81	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1aebdaf5	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x249f221c	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x274af96f	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x33b10b0c	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3568ce6c	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x361d2df1	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4c7f28e9	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4dd4c67c	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5a9a8ead	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6014e94d	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7daf2047	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9873c9ea	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9a98bcc1	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb7379e31	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xca0bf13d	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcac99960	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd001fb04	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd0b98330	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd6c2fcf0	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd8125048	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xda2dec48	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdbae6f6e	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe434ec69	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf04ca322	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf6433628	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf68770b2	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf778367b	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x62cb9e56	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x89e23dbe	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xacaf4768	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc4df43e0	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xe9ea517d	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x6e1ac3b8	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x7e811b26	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x8044af84	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x905edb6c	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb6b875a7	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x4d6a1339	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xb32fab43	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x23af00d9	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x691e2aa8	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x74fdc605	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x8224a188	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xa711b326	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xafa2f0b6	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd0f497cd	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd60589a2	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xe02ed111	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x8bd658d0	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xc89d46c2	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x158dca36	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2a41bf44	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2e98a582	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x31fabfaf	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3aec45ec	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x54780b5c	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x58ec0298	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x64f0725e	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x7de849bb	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x941f2cca	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa4333c8b	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf3ec280f	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xfc1c46d9	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x34712074	sdw_cdns_irq
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x3a660504	sdw_cdns_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x482e23b4	cdns_reset_page_addr
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x59070db3	cdns_xfer_msg
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x7e21023e	sdw_cdns_enable_interrupt
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8b5eb1c8	sdw_cdns_exit_reset
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8e95eb09	cdns_bus_conf
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x916162e5	cdns_xfer_msg_defer
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x9606e6a2	cdns_set_sdw_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa76a6fcb	sdw_cdns_thread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc1b63550	sdw_cdns_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc825fb92	sdw_cdns_get_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xd2b18bb3	sdw_cdns_pdi_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xf8554ee6	sdw_cdns_probe
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xfc11ff64	sdw_cdns_config_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x5e07cd60	sdw_intel_exit
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0xf10d2a2f	sdw_intel_init
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1ffbb08f	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3243dfbd	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x426436a0	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4dca20f7	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6dfb16c6	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x70903f60	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x709d81aa	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7202071c	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x739e8be7	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8082548f	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8ea5fd35	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa4bb0c86	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa5c53848	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xce7d59f7	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdee2f89b	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe04e240e	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe0e87ff6	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe254670a	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf8faaab6	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfd544ed6	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x1672f9a0	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x203fe9c2	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x291b741a	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x29581c68	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x34f65d5f	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x35c96e64	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x42169e70	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4c5b9131	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa02cb187	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa615f2e8	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xaf37ecb6	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xba2c8bd5	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd89d78a0	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe6fb2d2c	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe7aade8a	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfcf428fd	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfe69c812	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xaf25892c	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0xe722d7ac	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x067dc71f	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x24166f84	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x7c114712	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x82c8e49e	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8538561a	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x92865dee	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xa29a623e	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb2eea8b8	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb35ca141	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xbc1ad600	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc73af358	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc8e11ec3	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xccdc53c2	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd474ccb3	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xebb529b0	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x298bd9bd	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x52d7bd00	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x67b2d3e0	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x71a15719	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x857a467b	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xbed2ace5	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xccad82a1	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xdb63478b	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xf8b43078	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0x29562993	b1pcmcia_delcard
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xaec3240e	b1pcmcia_addcard_m1
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xea620116	b1pcmcia_addcard_m2
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xf14bf8b1	b1pcmcia_addcard_b1
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x020acc0b	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0342af17	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0489a3d0	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x07f11973	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x096b6ac9	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1b9b0da4	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1d7dce80	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2188850f	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x21b65518	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x25d4d31d	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2da6d8c0	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x40b7ea85	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x49495287	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4a28006d	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5635eb90	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5ff5d203	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62e5970a	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x64181721	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x65f8b0e9	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6935b33e	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6e551a6d	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x75e09ae1	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7dcbe739	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x84d673c7	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x87eed507	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8ba524d2	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8da00e9b	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x912cf144	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x988bb5a6	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9f6bcda1	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa0fc9ce3	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa270be1f	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa39e862e	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xba754975	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbd0855fd	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc13ba465	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc4249bd9	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc7f078cf	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd0cec668	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd6d402dc	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd90ecef4	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdc06dfa4	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe1169aad	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe38fd7e2	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe5a43e98	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe6c552dc	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee8ba210	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf15b558c	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfd94b5c3	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x05eee130	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x08d8579b	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0a393c44	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x16394cd2	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x16d3daa2	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d1da306	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x27a67e84	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x29baccea	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2e318f2b	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x31de4e14	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x32077e07	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x462f3459	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x50ed471e	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x59a371fd	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x59f1a555	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5b651c78	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x63ac6f67	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x647ded5d	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x73f20139	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x783c789d	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x78d8e7ca	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7b90f5cd	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x83d46539	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x840521a1	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x89811a4d	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x958d717e	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x964229ab	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9dff1a36	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9e5f0716	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9ef6383c	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa0d4e802	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa692c700	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa951cd90	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xae1366ea	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb8437740	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbb06bf30	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbcba063f	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbce41aec	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc12aac17	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc1ef1a46	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8020b12	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8a12ca5	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcc70160b	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcdfb648e	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd97ef78c	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdfb76117	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe124fa3a	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe8c22e29	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe9d32beb	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xef4206d9	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf1fa42bc	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf7d5e138	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xffc4f2b6	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x002314bf	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x02b26252	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0b2dffbf	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0f170e8d	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x192c4062	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1d72db22	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1f4c34e4	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x240742ce	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2e328031	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2fe0de6a	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x35bab9da	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x36c19e88	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3ae0a6a6	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3b104cb7	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x40af9267	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4c4ca0ae	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4e0bfb88	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5005e963	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x53c95cba	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5646833d	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x65f8623d	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x842adcd6	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x858a558c	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x96203534	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x988971fa	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9f195a22	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa15d1df6	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa22adf79	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa94d64d5	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb0eb32da	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb254d6c4	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbae410b7	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc7662949	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca1e0eba	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca610768	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcb003880	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcf6163ac	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd1635863	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe128508a	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe76fd1e9	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf2fdb8c5	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf7e976ac	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfbffd835	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfd6d5465	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x06646c08	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0c5c09a3	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cbda0a5	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0f18ce9d	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x120c63a2	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x12d7cb59	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x139bfe14	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x14baff0f	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x17752f88	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1c87b59c	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2313214e	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x25043de1	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x250c2b51	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2629a2d4	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26beff03	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2cffc6be	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2dea2ac4	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x33e497c8	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x36c7b254	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c20d5c0	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c90959f	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x494acdf2	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4daa92da	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4ddb67db	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5383889d	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x561419e8	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5bdc4d1c	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5d990f3d	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x604cc0e0	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x660c6ef3	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x67790e67	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6943baf0	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x74bcaa74	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7997a256	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7b620fec	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x80884284	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8132f0b7	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x81efcf85	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x82d47272	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x841f75c3	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8cea9113	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92a621e1	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92dc5bd1	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x948cbbc8	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9798b85b	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa4898ada	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa701b578	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb4487fad	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb700ac88	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb90525c1	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc129c736	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc3ee0b48	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xca60cb69	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce7888ff	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd300c304	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd85eb253	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd8c5d167	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdfb48aae	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe38d7881	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe5899f80	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe898802c	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xea31aeac	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xecb418e2	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeed81714	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf02025b4	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf0f5595e	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf195ed59	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf48460db	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf4ef07a6	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xffb27d5f	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x111eefed	acpi_parse_art
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x1887763e	acpi_thermal_rel_misc_device_add
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x86c998e6	acpi_thermal_rel_misc_device_remove
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d	acpi_parse_trt
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xf1eae013	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x04757a2e	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x3097d128	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2d705f70	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2fb8606c	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3d764e15	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x539bb692	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5ac34481	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x71fc1331	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7f880eab	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x90b48f70	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaadca9b0	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaafb7e97	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb1c8fda7	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb6b30bf7	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdebe15c1	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x2ca4df9b	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x505e7fa2	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0444cf43	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0d089d6c	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x250ad577	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x376e07a7	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x684db435	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x884b2402	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc7ef5393	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcffdcc48	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xea7e7712	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf4e90108	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf58527d2	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xfabab35d	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xac009eaf	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xf0c2a128	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x2e135850	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x3c5865d4	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa2eb7bbd	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa900e1dc	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x0bc54d13	svga_settile
+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 0x39a89760	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x5732d704	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x6af383e9	svga_tilecopy
+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 0x97717fbe	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xcaed0136	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd64607f4	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x786fc710	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x64338cb9	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x77da94a9	sys_imageblit
+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 0x629a100c	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 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe4793277	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x20b31a30	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x4469abe9	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xd0f3d307	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x16d04f21	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3f751927	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x5655e924	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xc5cfc167	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x39207173	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x44e4c40b	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x409979f7	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x7ce244f9	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xce8a1a57	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xce93b256	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x07742e3a	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x93dcff07	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x4384d8cc	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x4fd92920	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x60018945	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x69270ab4	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xf762fcbe	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x8f41618f	mb862xxfb_init_accel
+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/w1/slaves/w1_ds2780 0x3dacbf8c	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x5d73691b	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x344c7cac	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x852c35f4	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x375545a9	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x80961c16	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x9773d09c	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xf7683b4a	w1_add_master_device
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x04e133fc	iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x75bec08d	iTCO_vendor_pre_stop
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xc8930f32	iTCO_vendor_pre_start
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xed2a3373	iTCO_vendorsupport
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0316397a	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x05c70279	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0c3e0ba5	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0ece7854	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0f691cd6	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x197a18c7	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2f26b044	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x33fc43ca	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x36dda606	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x39a99ee4	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4809a133	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4e7cd7ad	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x544cb4de	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5488738c	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x672a2a5f	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6f21ec77	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x79c5f38a	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7b799540	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7e443ab4	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83522718	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83a85cbc	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa9499ec5	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaaf066cb	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb196a716	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb4896f53	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb6ce9e36	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc60e2b7e	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc7277eda	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcb472fda	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xddd9f965	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdeb5bdc8	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe5a8e6d3	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xec4a8276	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf009a743	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf2711125	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf3f172b8	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf6b957be	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf72f1db4	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfee28242	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x1d14734a	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2a7f71eb	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2f4f86e0	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x56fdbffd	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8490fba0	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xe1be245a	qtree_write_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x3683bb87	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xb7e4ea04	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x0faeb6c8	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x2e9e1981	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xbd9afa2a	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xdad8c183	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe2b2e800	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe47bad93	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/802/p8022 0x71d0a3c7	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xc8fd6d33	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x12d20f64	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x5792ace2	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x03f61505	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x0c9b8a25	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x14327e28	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x1df2edea	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x1df7830a	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x2584bdc0	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x2865c227	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x2c07e1b5	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x4568b4ee	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x46a8e4fa	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x4a23f605	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x4cb8f838	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x4ddc68fb	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x5037274e	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x57061532	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x5e4e7fed	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x691c37a3	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c85b781	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x7560d7ba	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x766bc1e2	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x7f73f3e3	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x86b97c37	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x8dc1d0ff	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x9111e522	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x916f2853	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x946a2b40	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9da4db0d	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xa5c3d1fb	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xad597cb1	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xb82c8ff6	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xba727e8b	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xc609d77f	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xcd6ffcdf	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0xd0bffbf3	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xde691252	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xdf850405	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xf0ccd930	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xf150e9f4	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0xf42b8d85	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xff606136	p9_client_remove
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x0cd90144	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x2c181724	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x97ff7468	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xbdd07b3b	atrtr_get_dev
+EXPORT_SYMBOL	 net/atm/atm 0x0d8c494f	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x315d2f0f	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x567b9eab	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x69f35554	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x6e4b67a6	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x75147f52	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x7d4ae814	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x83706196	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x9c4d49f0	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa51eaca0	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xbb4de408	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xcc11f7a8	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xe4c18584	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x159f0735	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0x1ae10eec	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x3f75c9cf	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x6aea708d	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x77f8fd40	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x7f47d456	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xd45ec198	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xfed2f7f0	ax25_header_ops
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x00b24fb7	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0208dfbe	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x191df5aa	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x19e35cef	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x23cd19c0	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x399955e5	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x46cf6c3c	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4bd0ef7d	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5bd761c5	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5c1aafd1	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x60f289ca	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x66891f8e	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x67824459	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x746fca52	bt_sock_stream_recvmsg
+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 0x7be8032c	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x81bcd35d	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x821c8156	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x826000bf	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x896f1192	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8dbc920c	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8ffbbf48	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9f2644c0	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa4850d62	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa88a5658	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb936e655	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbc9192af	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbffd3f9c	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc13022a6	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc33dae5e	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc387c723	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc3ad9fe3	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xca96e6a8	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd07b9eaa	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd2e2511b	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3594888	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3e3fa28	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd4e12852	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd59d9456	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdc0942dc	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdd2eb724	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdfd752d0	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe04f890c	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe364074a	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfffac037	hci_unregister_dev
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x254ef535	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x69e9f7b2	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xcd911184	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 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 0x523b8986	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x64507831	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xba842a13	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xcdebc0f4	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0xed180e01	get_cfcnfg
+EXPORT_SYMBOL	 net/can/can 0x0ce632f5	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x3abce20b	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x740d78f8	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x880ec297	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xa4816382	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0xff5a55cb	can_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x0057ebbb	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x00e2a134	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x0690f160	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ad43c4d	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x14f87460	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x17e025e7	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x19ec87df	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x20fa6f23	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x24d0f33a	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x253d2966	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2e88ff07	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x329d68de	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x32c9828c	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x33c8a33c	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x36fe28c7	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x3898bfa6	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x399be0a4	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x39e0be51	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b00dbc2	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3cc3b0bb	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d897065	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x3e9b2d92	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ef8f229	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f734a9b	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x3fff021f	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x4113d2c6	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x41617ef8	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x41d1ca61	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4758bf18	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x47b1f121	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x4dce8661	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x502efd51	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x5037388a	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x51f0335b	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x563df4d1	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x57897b3c	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x586f58b3	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5cf4402d	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d33591c	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e0cb924	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x62adb656	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x63ead3b1	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x651d558f	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x65deb940	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f6b0341	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x718a82c4	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x75d2e4dc	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x765c5887	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x7895b595	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x791416a6	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x7a4ffc4c	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x7b2709f9	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7c39bd41	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x7cdf78d5	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x82fa8457	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x86c903c0	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87e9521c	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x8978bc55	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e4cd313	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e999111	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9291f5ee	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x9484c987	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9773f173	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x9792e8a1	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x98e62266	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x9910ee1f	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ba245f0	ceph_auth_verify_authorizer_reply
+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 0x9f481407	ceph_client_gid
+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 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xac60ea06	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaefe88e8	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb45e8783	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb633e936	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xb6d1a7f8	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xb717d0eb	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbdff146c	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf66367c	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf93cdc5	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc0810eca	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xc2848624	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xca75b2f4	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcb1a3976	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfa227a3	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd41f3684	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5c0f0a2	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xd696b057	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7a71dc2	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd9e4dee	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xddb22f92	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xddff940e	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe09c0592	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xe54613ae	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xea6aff8a	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+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 0xf1018ede	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0xf218dc08	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xf2b072bb	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf59d8c23	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8382f20	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa5899a0	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd934c83	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x78d0658c	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xc97e90a6	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x52e0e58b	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xd6f07e1e	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x00493b05	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7b42f801	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x89150d5c	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x9081f925	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xdb0d6f44	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xffbfa266	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x345e9d9a	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xe9c3b3e3	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xb4116371	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x136743c4	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x3243213c	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x6dcb54c8	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xf239d03c	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x447a8042	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x764072ca	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xe61b5ed6	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x5b730693	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x6e689fb9	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xe985eee6	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x9e4a048b	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xf7485fb9	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xc1ed114a	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3269a9ec	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x402330a3	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x5ae134fc	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x9bdb5c43	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd83d55a3	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdb1f0d58	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe7121663	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe7b9d03c	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf447d679	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4140d997	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4cd01db0	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x829746ec	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x1da71368	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xf069efd6	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x7e537404	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xad6e143c	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x988ca99b	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xecc39c94	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x43fa40f9	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x15f42c4a	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x16c171c2	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x266ebdcd	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x2752fb51	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x4df6590e	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x7c166356	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x96300495	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xb64da759	lapb_unregister
+EXPORT_SYMBOL	 net/llc/llc 0x14e7172f	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x2a786573	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x325dd937	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x4658db54	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x8f7a3490	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xac2e342c	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0xfbbd3095	llc_set_station_handler
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x06e1a11f	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x07f7e456	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ae69495	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0b6c51ba	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ed5ac19	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0edfedc1	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x117cb755	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14414330	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x15c434cb	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x190e9bda	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1c60e960	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x25b8f336	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x26b7d743	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x276ecc21	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x29be6e7d	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2d823d19	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x30ed091f	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x32a5234f	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3334cdaa	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3a393897	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f20e1ee	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f714db4	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x455cb7a6	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x489c3d7b	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c9725d8	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4e6df4a4	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5375623d	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x55a4b54b	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x59304538	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5bfef5fb	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x61908bb5	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6381cf34	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x643ad3dd	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x64e8f921	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x664b1aa0	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x66e679ae	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6a831f79	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d736293	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x70ea0929	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x76c00bf9	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x77193d70	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7ac8b9d6	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7be42ad7	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7d18a4cb	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x82e619ff	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8529b4d6	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8631ec3f	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x87694f99	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8882b5f3	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x94fe46e6	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x95249de2	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x98464e52	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9a1f9018	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9bce03a9	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa06e9bfc	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa1cc87cc	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa1e939c0	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa4e5d331	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa5383ed6	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xabea698d	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac377b7d	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac7c781f	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xad6f2567	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb275b301	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb57b840d	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbad1360f	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe18552b	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe77a3b2	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc001d830	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc0959467	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc10f1b81	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc14efa5a	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc89d5105	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca79c556	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcfa24da7	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd06ab83b	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd0ee86e8	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd30a0ff7	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd4a79414	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd8d99c83	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd9150640	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdc9019dc	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe4411b4e	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe836fb03	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeb7a5231	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf2e62096	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf50fc98f	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf7128736	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf79e0249	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf9b95ea8	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfb3bb776	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfc333fff	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x29973b6e	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x2e8fe205	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x4233a393	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x8c3ecb58	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x91221eaf	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xa977475d	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb9e15942	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xdc3685d7	ieee802154_free_hw
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x006a761f	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1ae83614	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x22b583cd	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x26eeeac9	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x28d7e3ea	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2eae0e04	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3c45212b	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x87d582ce	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c2670ab	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa88e4af2	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe21b65a4	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xeb31f665	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xee399b40	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf4830df0	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf601343d	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x3243ee12	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x61527d41	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x00b6ea2c	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x0450ac77	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x3d4d3774	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x95a61b96	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xea6e8e92	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0c7863b5	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x26e2e82c	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x273e381e	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x2e66a4ff	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x42e5f799	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x467bee9c	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x4cb2bf4c	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7e244e3b	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x9ca53e5a	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd03c80f0	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x263c2f3d	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x26ed1c53	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2af97f13	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x54644284	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x585b0761	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5a4044d8	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x718f1632	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7594844a	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7d07c7c5	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x90aedb19	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa0720685	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa5be196b	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xabd94566	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xaf118534	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xba0cdaf9	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc87ac618	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xcafe64f7	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd434dcf1	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdeb62199	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe09f5f44	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xed8d4c04	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x17bcf20c	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1d2a0fc7	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x246f8578	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2cb95f82	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2f495045	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2fab9482	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x37e9d7dd	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x38d83b28	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3a602b6c	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3ee16ba9	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3faa5f6d	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4148ce38	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x51a72e3b	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5b90811a	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5be05a10	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6d3e4ff5	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x74cb6c05	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7d229f78	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x82630cbd	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8eb36d92	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa7da54be	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xacb9637c	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb0b80819	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb1a96309	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb1ac8f28	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xccc53c88	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xcfae2ebb	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xda3b5403	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xda8ba52d	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x061b8e44	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x0ace7274	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x168c0239	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x2baed125	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x38d958f6	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x3b27a076	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x4815af11	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x5e731c1c	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x5e861564	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x62e20783	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x6e0a88fb	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x7241c649	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x735066f2	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x73861cb3	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x7d37e807	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x7f285ee7	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x91696f34	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x95b99120	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xb32bde61	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xb7a62e47	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0xc2a5924c	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xc71c161a	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xdfb207e1	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xe470732a	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0xe619a04e	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x5663ec81	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x70ad9b17	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xdd9a6a60	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xf5fc369f	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x22357371	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x7f6c3a29	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x88fe9bcb	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x8af36499	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x9c3c6b85	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xb5fd78b9	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xc51ac8b1	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xfdacf391	phonet_header_ops
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x04c5e61d	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1a947872	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2085dfc6	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2299a506	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x32c4b35c	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3a421219	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x536ce8bf	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5c0d5479	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6183a279	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6daf6216	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x70c22b15	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x80bc1b8e	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9a68f65f	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb7206efd	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xcb8d4756	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd9047d12	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe33571e8	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/sctp/sctp 0x3908ede0	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x1bc062b4	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x4083f7b8	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x961c104b	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x0c8d8c4c	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x9cdfec70	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xebf7f67d	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x77805082	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x882aa36c	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xcda9046c	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xdb1027dc	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x38f2d5e8	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0x4004405f	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x58e4261c	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x0f8f4a74	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0x40c3e138	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d9e221e	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0e7cdd56	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14a66448	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1569bd5f	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x16db734a	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x18351288	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x18fcc008	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1a38bacb	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1cdbe39d	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2163c625	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x24b1ff98	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x316dd11b	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x31a20429	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3504ae82	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3ae72472	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3b963c29	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3c94632e	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d05e754	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d6495a6	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d6eacc7	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3eeb1ad1	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x42050486	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x469aa0ef	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4a466a7d	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4aa8a89e	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4ea87fc8	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5496fd94	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5807f473	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x59e315bd	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5b47405a	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5c17a407	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5ff8e5f2	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x616385af	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x62ed903a	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x65744711	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6690863b	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ac7d336	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6d80e5d4	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ea70ea3	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x71e87040	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72ad5a4f	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x741e9405	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x781debd1	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79cdb521	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7c8b0990	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d754392	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d8adb5e	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7db026ee	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7dee37a4	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x80ee4649	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x86d22057	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8ca65dc5	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8d7a201b	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x916ac8c4	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x920f6ff4	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93541417	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x95b418d0	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x965cdb9a	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x96c9674b	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x97797e16	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x98638bfb	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9b7c9077	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9cfc3f23	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9fbe1088	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa0926b7f	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa300c4a5	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa9104488	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa91de4f8	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xacff4d7c	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaedde1c0	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1d5f312	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb2def50e	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4d6dd5c	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb95dd3cf	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc108d42f	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc173952e	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc29c1469	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc2d832c3	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc420dc91	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc61f794d	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8c4e796	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7ceb5d3	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xed6d3528	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xef0fd028	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xef6e3a15	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf3d76c59	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf6b9a3e3	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf908ee08	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf96d6fb8	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfa9f811f	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfaff1691	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd70bfd4	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/lib80211 0x160ae605	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x6b5c9179	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0xa0e29ad0	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xad86dd5c	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc38a16a0	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xd6d76d85	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 sound/ac97_bus 0xe37615e7	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0xf4d93a34	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3982e705	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6feb7343	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xa2fb9395	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb1e8987c	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x81092390	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x018f4fc8	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x05a0f3ed	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x07883ec3	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x0b5bc292	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x100c2ffa	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x16975ea3	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x17e64820	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1b78919a	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0x1e132b22	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x282e3cde	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x2c222945	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x38189352	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x38ced0fc	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3f032f02	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x3f06b56f	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x427502ea	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x51f73278	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x6b231de0	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x762115a7	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x86b13699	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x907f3144	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x93a34d1b	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x9c779c0a	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa8681cca	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xa87dd481	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xaad5f612	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0xade42f11	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0xb1299fdb	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb3700124	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0xbbcbc35e	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0xbc3bf992	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xbf4ad1fc	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xc3962cce	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xc3d522a9	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc5a7f953	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0xc87216fc	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xcaee5cc5	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xcd171bdd	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0xd58828eb	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0xda431384	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0xdc4cdd16	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xe44e128a	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0xe6206a8a	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0xed96213f	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xeeeed46b	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0xf4418728	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0xffe685eb	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x300e43bd	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x03bae867	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0ae19b15	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1541820f	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x16b18b46	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x16fc63da	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x19d5cdaf	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3f4d0789	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x41e00500	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4bfd4742	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4d4d4a2a	snd_pcm_release_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 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x59078621	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6529325d	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x706138cd	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x754e2265	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x75870b9a	snd_sgbuf_get_chunk_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x810800da	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8857a9ad	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8b1eb492	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9a25ba2d	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9dec5d7a	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa20d0dbb	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa33d2c66	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa3f75bfd	snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa76caadf	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb55e7a16	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb7f6baa1	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbd835ede	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc179c9a2	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5bd7ff7	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5c5a873	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5de8ddb	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcf7093e9	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd0bb535f	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd21c1a45	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd3f080e3	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd4bd7ea6	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd5e0ae0d	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd7ec8bc4	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe0ca49ff	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xeb4361b9	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf06a5466	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf50c0f12	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf82b7556	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfb42c6ed	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfd8e77f9	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x04b42741	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x060f8918	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x07c8d95b	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0da5bf9b	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2bb8a044	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x41682e2a	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4e1cdb0f	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x56fd2993	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x636ffe62	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x65273bbd	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6bdf66ad	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6d8a2a94	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x98300be7	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x9b8118bb	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa1e7f790	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa26da781	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc9c2b35c	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd7d7e74f	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xebde557d	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfcd61218	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x2b50de6d	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-timer 0x3692f8c0	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x3b59df90	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x45e1f4bf	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0x516e245c	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x5f5d9877	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x649ba352	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x6e14c954	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x94afcc34	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0xa016a427	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0xbcfffb49	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc5ee3ad7	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc89077f4	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0xf1b7a682	snd_timer_resolution
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xe32697ac	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x089a6f67	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5ab076c2	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x66b71464	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x6e96c3e8	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8195098e	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa3f45d65	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xda24323b	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe47c55e2	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe626272b	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x05933c22	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x07b2d27e	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x0ba33cab	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1e86f592	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x58a13a98	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x7d7c3e85	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x8633addc	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xbf8d5a1f	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf2481a04	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x063cd616	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08144e1a	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0f3ed343	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x10638630	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1e0048f9	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1ed8f0de	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3580b6d2	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x37f2ee23	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3b1b2797	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x44ad491e	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4e2cb9bc	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4e9aac14	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x50a92a97	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5acd01b3	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x644e1897	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x719e506e	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7694a14e	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x83505432	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x898c8c95	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8a8ed06a	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa1618122	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa4003e70	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbede7323	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbf133d2c	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc8ab12db	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc926c18c	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xca4d52bd	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd5497f9e	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe3e7b50f	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xea983ce9	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeca3c22b	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf014e205	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x66ab4c33	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xca04bce1	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x14afeb5f	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x30cbc722	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3ac398cf	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3bcef117	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x6b8d1117	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x719cde23	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x93f6fc97	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x9b1b5c99	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x2160cb57	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x3a0b60d6	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x74fe73ed	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xba528af2	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf2ce8ad4	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf8bca700	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x5cfca43a	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xa0497e58	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xb3929879	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xbc0e53d9	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x375bd321	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x72e6a2e1	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x22f08715	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x32a50f80	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x3ce60757	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x3f92da6d	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xa8ed4240	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xc119366f	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x049433dc	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x29917947	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x76a47604	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x7ce03dec	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xd2943b57	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xe831cdc9	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x2762a978	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x37f0279b	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x436fd0e4	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x466b7e0d	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x487e19e1	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x6c30a2b9	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x7aaaabdc	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa2d2bf23	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa9d164fa	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xdd195f0c	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x08d5affd	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x29c092e7	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x37afbc05	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x42c50ec4	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x455e30de	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6625ac3e	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6727fa4c	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7093174e	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9d3c9881	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9df46b13	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa264b323	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa2c53984	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xaca7d784	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb00dc5ea	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xce6e1f58	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe579c3ac	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfad41e42	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/asihpi/snd-asihpi 0x1649ce5a	hpi_send_recv
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x282a28c7	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x320a05c2	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x496caf47	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x4ba45093	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x6eff802e	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xaaf53723	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xc26cda24	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xe0c32293	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xec2c94db	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x36664c8e	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x502b1834	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6d8c8a5d	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0a0fbf75	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1143a1e8	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x19f134a6	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1be8f994	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x22a71941	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x23a988c0	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x37121912	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f1b71d4	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f3068a6	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x651cfaf1	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7f32898e	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7ffa90a1	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x92c77219	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x934a0cf1	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x993080c9	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xaa2f8074	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbfe2267f	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd7af6d99	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd8ac2ba7	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdb1ce1ef	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf37941a1	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x10361540	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x37cbb6b9	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x8b7a412e	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xf6d7f55b	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xf8ece9b0	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x9293dcdd	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xcdeb99b6	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x41afb355	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xd650fe40	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x43c768a3	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xab46f529	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xb3c6ba00	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0xe26acaee	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x1c265d35	sof_tng_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x5e25cf8d	cht_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x81c9b7ec	sof_byt_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8639b9f0	tng_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8cca2008	sof_cht_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xaabb51a4	byt_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0cdd1ba7	hda_codec_i915_exit
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0f87b8cb	hda_codec_jack_wake_enable
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x683137cd	hda_codec_jack_check
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x8efe726f	hda_codec_i915_put
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x9ac5fa8b	hda_codec_i915_get
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xd09fdf3b	hda_codec_i915_init
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xf52a7cef	hda_codec_probe_bus
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x009f95c4	sof_cnl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x5b5be595	apl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x61cf31b7	icl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x703e1716	tgl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x755b752a	sof_apl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xacf31f39	ehl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xf4d48b52	cnl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x33e3451f	intel_ipc_pcm_params
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x6258263e	intel_pcm_close
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xbf025d81	intel_pcm_open
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xc3ecfe1a	intel_ipc_msg_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0458b3a6	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x09b38b44	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0e4cf9f5	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x155ae5d6	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x19c90b83	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1f254bde	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2413439e	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2448dc91	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x26a6e990	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3d92ad2e	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x52f35a81	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x566186a8	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5a0cf49c	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a468eab	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a7e322f	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6bf3ec90	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6c86a1e6	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x70939b75	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x75ad3743	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x78b0ac17	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7be75830	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7e7e795a	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x86d196a9	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa2ce7bba	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa5dedb8f	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xaaa012f7	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xade5b257	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb6a5500a	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb836ec0b	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbcdfc16f	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc25917d0	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc4245425	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc72dc5b3	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcbd74821	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd4fabc91	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xda8e69de	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe14e5fdf	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2959b55	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2e33dd5	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe4b0c313	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe7527bce	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xec6f15ce	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xef858e2b	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf2a3fe8d	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfd19556b	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xff8aebd0	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/xtensa/snd-sof-xtensa-dsp 0xe37b1fbb	sof_xtensa_arch_ops
+EXPORT_SYMBOL	 sound/soundcore 0x1a762953	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x268307f0	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0x30c4622c	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc9197fc2	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xdfc766ee	sound_class
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x25c0bc9a	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x40741dc0	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x85a70fd2	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xa27415ff	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xd844cad0	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xeed2e738	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x293ac667	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x34ac95ae	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x48f920c4	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x7d95566f	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x85659341	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97bb24f2	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9db98086	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xe2935f8c	snd_util_memhdr_free
+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 0x9852ad2a	__snd_usbmidi_create
+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 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x2840aaec	ssd_bm_status
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x368cfd34	ssd_unregister_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x43b8fa08	ssd_get_temperature
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x6521ab53	ssd_reset
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x6dd5c180	ssd_register_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x7418bfc6	ssd_submit_pbio
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xaff98f1d	ssd_set_otprotect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xb0525f70	ssd_get_pciaddr
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xe5a02eb9	ssd_get_label
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xf847cdde	ssd_set_wmode
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xfdc8b559	ssd_get_version
+EXPORT_SYMBOL	 vmlinux 0x0000d0e5	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0015a6e1	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x00271341	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x002da9d2	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x008a7abb	amd_iommu_flush_tlb
+EXPORT_SYMBOL	 vmlinux 0x00a4b044	amd_iommu_deactivate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0x00ac18fd	follow_up
+EXPORT_SYMBOL	 vmlinux 0x00bbc3be	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x00bd5c63	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x00d078ec	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00dba10b	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x00ddb96a	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x00e5c04a	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x00ee25bd	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x00f11160	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x00f73887	skb_put
+EXPORT_SYMBOL	 vmlinux 0x00fb7a32	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x013ee3b8	dst_release
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x014191c1	seq_open
+EXPORT_SYMBOL	 vmlinux 0x014206de	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x014437a6	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x0158aad4	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017a1894	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01a069f8	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x01ae58e5	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x01b2914d	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01c010a6	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x01c21fbd	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x01d7fef8	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x01ea4df0	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x020d3af4	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x0211f72f	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0227e656	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x022ec4f3	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x023d1b90	wrmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x0240c583	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x0276b6fa	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x02995171	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a41486	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02bfff8c	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x02c656b6	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL	 vmlinux 0x02d29a38	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x02e788fb	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f2c585	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x03242148	console_stop
+EXPORT_SYMBOL	 vmlinux 0x03287154	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x03327406	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x03405011	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x03466ac9	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x035a98af	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x036449d1	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036de5d9	dump_page
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x0380847b	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03b0b7ed	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x03b22b52	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x03c7f1dd	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x03da483b	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x03db6c15	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x03db9878	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x03dcff2c	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x03ea5823	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x041c9e4a	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x04757b3e	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x04764487	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04851484	key_link
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x049253fa	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x04959d06	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0x04b5034f	translation_pre_enabled
+EXPORT_SYMBOL	 vmlinux 0x04c62fd7	__memset
+EXPORT_SYMBOL	 vmlinux 0x04c684ef	proc_create
+EXPORT_SYMBOL	 vmlinux 0x04c87759	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04eaddff	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x04f065f4	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x050188f3	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x05034f83	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x050d432e	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x052e4c78	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0544b489	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x054c0aa8	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x05666ae6	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x056bfa86	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x05969d68	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x05aa7863	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05b490ed	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x05d6b000	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x05fbb4fb	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x06052f8d	__memmove
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x0615f0af	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061fa9b4	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x063607cf	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x06362699	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x063ad6ed	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x064512c8	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x0680d609	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x06867079	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x069a770d	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06a97196	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x06b72a93	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06e38f8f	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x06ec8d4a	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x06feec0f	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x07074acc	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x070c6382	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x070edd5f	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x07222982	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x073da36b	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x077aa359	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x07945cf8	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07bbb7f9	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x07be517c	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x07cb3618	amd_iommu_complete_ppr
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x080cccfe	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08303ac5	x86_match_cpu
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0857e5e5	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x0858aa26	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x085bf2fc	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x086a003a	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x08707558	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0x0880e84f	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x089cf897	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x08a5e8b6	km_report
+EXPORT_SYMBOL	 vmlinux 0x08d6d3d7	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x08eaf0bd	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x09082b76	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x0915aa31	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x0926006a	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x0933384a	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x09353033	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x093a219c	ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x093f5c0e	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x0944c43f	node_states
+EXPORT_SYMBOL	 vmlinux 0x095cbf32	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x0968321a	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x097dac99	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x098dcca6	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x099321cd	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09cab6e1	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09df909a	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x09e59158	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a39e34b	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x0a44ac67	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x0a48bbbc	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x0a570007	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x0a59bdb7	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x0a5bc343	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x0a5e72a5	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x0a6182e9	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x0a65e7f3	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x0a76e850	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0abbfa8c	get_super
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0ae8ca12	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0af26983	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x0b00465c	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x0b053cec	native_write_cr4
+EXPORT_SYMBOL	 vmlinux 0x0b108cbc	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b1d80dc	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b2c90a4	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b3628b1	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x0b4cd0a7	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x0b57c908	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b7961da	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x0b7a8281	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x0b7e4028	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x0b97b08a	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0x0b9a4e0a	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x0b9e7f04	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0bb153ed	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x0bb8d8a9	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x0bbf6150	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bc94181	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x0bd77a96	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0be6d647	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x0c08ca96	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c256842	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c278c8c	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0c293a3a	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x0c63964a	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x0c681191	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7ebc52	amd_iommu_domain_enable_v2
+EXPORT_SYMBOL	 vmlinux 0x0c837d8d	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cba7dd8	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0cf1dbd6	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x0cf4c4d6	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x0cfbc447	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d19b223	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x0d3d5d71	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x0d4648b1	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x0d47b489	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x0d47b908	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d63b351	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x0d88232a	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x0d894a72	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x0d8a1958	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x0d8b7ded	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x0d909c54	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x0d981ea6	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x0d9e7c4a	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x0da57a62	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x0dcb311c	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x0dd8b280	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x0ddd278e	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x0e151eed	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e23b37f	alloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x0e589d99	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0ea934c8	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x0eab0dc1	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x0eacf019	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ede9b14	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x0ee4b7bc	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x0f05c7b8	__x86_indirect_thunk_r15
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f0ad876	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x0f15a7f3	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x0f24999c	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x0f2c41f5	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x0f2db8c6	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x0f2e9696	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f67fdf2	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f93e9e7	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd4b628	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x0fd65c1f	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fde0c29	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x0ff80f59	zalloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x10141d95	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x1016d98f	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x101d26fc	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x10219565	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x103b8052	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x1044f08d	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x104a3ab2	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x1063b52e	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1092a8ba	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x10b9dac8	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c912fa	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x10d7310e	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10f5093f	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x1103497f	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11207ccf	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x11369346	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x113c0d16	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x1145e9a8	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x1165ee6f	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x116fd8fc	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1189a5e5	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x11a5adcd	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x11be5585	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x11bf04cb	kern_path
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x11fd308f	amd_iommu_get_v2_domain
+EXPORT_SYMBOL	 vmlinux 0x11fff9af	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x1211f9ad	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x12312acd	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x12387cfe	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x124e6991	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x125c3c5c	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x125da0f1	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x12696c44	vga_switcheroo_unregister_client
+EXPORT_SYMBOL	 vmlinux 0x126dc7a8	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x127731c9	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x12894464	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x129bdcaf	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12beb6a1	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x12c293ae	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x12c570a1	bio_init
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12d628ba	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x12d64dd4	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x12f05b49	dump_align
+EXPORT_SYMBOL	 vmlinux 0x12f2e0e5	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12fb81bc	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x1306ee0e	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x130878f9	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x133f95ff	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x1344d7e6	acpi_enable_gpe
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134ce9ff	ex_handler_clear_fs
+EXPORT_SYMBOL	 vmlinux 0x134ef1d6	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x13507d90	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x1368fd5d	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x1371e61e	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x137f6ca8	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x1389619c	__max_die_per_package
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b38efa	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13dba83c	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x13e4f64e	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0x13ecd86f	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x13f0bd79	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x13f29d6a	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x143f26ab	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x144160aa	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x14439be3	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1472c805	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x1481bfce	kset_register
+EXPORT_SYMBOL	 vmlinux 0x148d336b	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x149af64e	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x14ab03a4	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x14b2b192	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x14b4c997	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x14bc9960	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14d5b946	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x14eaec8a	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x14f3d25c	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150d6f30	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x154fe4c2	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x156448f9	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x156b461c	fget
+EXPORT_SYMBOL	 vmlinux 0x1577ced1	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x158ea373	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x1594be3e	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x15a7e683	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x15b4558a	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15bfd5d8	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x15bfe286	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15cba723	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x15d038b9	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x15f2d64c	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x15f58d45	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16301b34	wrmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x1638d4ff	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x1639c1ec	bio_put
+EXPORT_SYMBOL	 vmlinux 0x1641269c	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x16436cca	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x16531161	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x165403e3	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x165498b8	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x165a9f61	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x165b145c	ex_handler_refcount
+EXPORT_SYMBOL	 vmlinux 0x1664e7c7	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16b33515	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x16b9d42c	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x16bf4900	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e427cc	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x16ea84d2	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x16f53589	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x173b04e9	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x174a3196	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x175e33fb	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x1768485e	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x1769a490	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x17865a8c	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x178befa9	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x178c2a3a	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x17901758	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x179b22d8	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x17a1894a	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x17aad019	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x17b83c8e	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x17be03e2	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x17be68ca	acpi_clear_event
+EXPORT_SYMBOL	 vmlinux 0x17c9827a	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x17fd9210	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x1814282d	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x181518a8	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x18186fc8	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x1822de1a	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x182cfa09	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x1836d5ae	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x184573ad	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x1857cddd	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x18656176	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x187a4ecd	__tracepoint_read_msr
+EXPORT_SYMBOL	 vmlinux 0x1885789b	notify_change
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189b2fc3	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x18a08552	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x18a2a7e0	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x18c5e799	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x18c75b5e	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18e7eaa4	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x19003125	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x190d3261	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x191995a5	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x19220733	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x195db995	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x1967fd03	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x1977c9c3	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x197a9de4	audit_log
+EXPORT_SYMBOL	 vmlinux 0x19846f29	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x19905da5	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x19954193	vga_switcheroo_fini_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c48d49	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x19c81811	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x19d07058	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x19df99b9	acpi_finish_gpe
+EXPORT_SYMBOL	 vmlinux 0x19e5ed44	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x1a105ff4	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x1a118455	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a22f3ea	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x1a2ebc0e	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x1a3050e0	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a466b2f	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1a5ec1f8	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a965c43	mntput
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa99429	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x1abacfa2	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1acb5b77	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x1adf2e90	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x1afbeabf	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b3f59f5	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x1b539f5d	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b5c6d6f	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b6707d2	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b84c80a	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x1b84d188	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1b96d978	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x1b9ba621	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bd7107b	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x1bdcdc6a	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x1be4c425	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x1be8d690	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x1bf3b3e1	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x1c0eeb67	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c29eb78	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x1c2bb10f	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x1c30b155	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x1c332fb1	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c36b9a5	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c6bf9ab	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x1c70815c	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x1c726914	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x1c96657d	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x1c988227	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x1c999ca6	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb61c74	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x1cc6ba20	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x1cd8f47c	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x1ce83cd4	node_data
+EXPORT_SYMBOL	 vmlinux 0x1ceadc93	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d0f548c	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x1d1036ed	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x1d19f77b	physical_mask
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d1b42f8	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d3625a2	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d4ee80d	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x1d4f8773	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x1d5db979	bdget
+EXPORT_SYMBOL	 vmlinux 0x1d613354	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x1d680f02	amd_iommu_flush_page
+EXPORT_SYMBOL	 vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL	 vmlinux 0x1dbaf34c	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x1dc75a2f	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x1dcbd687	__pte2cachemode_tbl
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1df269a9	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x1df3972b	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x1df6c0e0	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x1e038673	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e181407	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e21cd5c	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x1e2d13de	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x1e31b095	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x1e3d1157	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x1e498e5f	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x1e4bb17a	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e76b28b	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x1e7d74e4	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x1e984a02	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1e9f52c7	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb3d4c0	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x1eb734d0	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x1eb922a3	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x1ec54e1b	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x1ec98e8e	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x1ed8b599	__x86_indirect_thunk_r8
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1ef4b1ee	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x1f3c3ba4	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x1f433b7d	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x1f549f57	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x1f561a3f	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x1f76d608	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x1f87d375	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x1f87d787	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x1f87d9b9	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x1fa87007	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x1fb6fd06	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc0cc7c	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd1fa89	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x1fd9efe0	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1feb817b	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x202ab002	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x202c5a53	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x2032e75b	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x2034108c	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x20497526	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x204da2f2	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x2057dd43	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x206713d8	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x206c08fb	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207c01c5	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x2089d728	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x2093a78f	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a743a5	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20ba4f3e	rdmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d42e1f	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20eb28a3	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x20f5226d	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x20ff7141	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x211130c1	alloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x211b72bf	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x21211d95	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x21214b5a	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x21400a3c	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x214e4e20	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x215ced1b	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x2177bd71	acpi_disable_event
+EXPORT_SYMBOL	 vmlinux 0x21806f57	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x2183411c	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x218c6b03	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2197d922	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x21acd216	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c74e03	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x21d1e993	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x21dec6fa	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21ea6167	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x21fcf760	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x224164bf	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x2258441f	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x225eac81	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x22613e95	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x226cd93b	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x22778b0c	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x227b1718	tboot
+EXPORT_SYMBOL	 vmlinux 0x229b0c82	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x22b0f837	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22ba743f	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x22c81b35	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x22de4931	amd_iommu_register_ga_log_notifier
+EXPORT_SYMBOL	 vmlinux 0x22e20f86	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x22f6f8f7	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x230379db	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x2312b175	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x231a4a96	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x232116b9	module_layout
+EXPORT_SYMBOL	 vmlinux 0x232a9caa	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x23411e0f	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x23a5ac1b	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x23a9aba4	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x23b225ef	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x23b270af	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x241b493b	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x243c5920	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246e3262	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2476c2b8	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x247e3882	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x2481b4d2	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x24920733	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x2496b7a6	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x24c298cd	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e1d80b	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x251f275f	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x2524e8be	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x25320b16	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x2549b569	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x254e0093	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x258e7b5f	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x25914ee9	open_exec
+EXPORT_SYMBOL	 vmlinux 0x2595f8d9	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x25a31b41	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0x25a3aaba	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x25a6907f	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x25db1577	do_trace_write_msr
+EXPORT_SYMBOL	 vmlinux 0x25dd8875	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x26006cf2	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x261d7cea	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x26223162	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x26315bde	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263bf2bb	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263ed23b	__x86_indirect_thunk_r12
+EXPORT_SYMBOL	 vmlinux 0x264667d3	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x26754a56	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x2685b971	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26948d96	copy_user_enhanced_fast_string
+EXPORT_SYMBOL	 vmlinux 0x2695ef3a	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x26c0a13d	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x26d0809a	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x26d24cb8	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26ed3b90	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x2713687a	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x2753454b	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x2769fed1	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x27733b8b	d_path
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x279a0933	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x27aaeb29	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27cd1485	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27cecc7f	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x27d18f5d	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x27e38c39	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x27e3e200	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x27e9ce47	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x280d2db2	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281f5af3	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x282cc3e9	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x2832a873	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x2873d349	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287ff8a2	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x288eb46c	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x28b13f43	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x28d567e0	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x28e09af1	iosf_mbi_available
+EXPORT_SYMBOL	 vmlinux 0x2907d4e5	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x292d7ed1	dns_query
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x2938ee34	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x29394df7	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x293ab18b	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x295e46cf	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x295f9e2f	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x29667ca9	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x2989d6c2	simple_link
+EXPORT_SYMBOL	 vmlinux 0x2989d872	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x299d2886	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x29a4049d	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x29aa0ecf	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x29ad8e33	x86_hyper_type
+EXPORT_SYMBOL	 vmlinux 0x29b2859d	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x29bb699d	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x29cb1d56	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x29d0dcd8	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29eb7810	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x2a1319aa	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x2a1809cd	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x2a1cde84	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x2a21d1ef	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x2a2a9095	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a30a45a	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x2a3ea304	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0x2a5852a1	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x2a6283d2	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2aa6500b	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2aebbe01	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x2aefc063	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x2af83411	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x2b36f4ea	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x2b41a95e	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x2b5921cc	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b6debdd	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x2b8a9dae	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x2b93f6f9	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x2b9bed0a	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba2209c	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x2badbd9c	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2c01cd33	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x2c0d6b43	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x2c1c42c5	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c4fd381	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c805acd	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c92deb6	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x2caf63d1	topology_phys_to_logical_die
+EXPORT_SYMBOL	 vmlinux 0x2cb75d36	would_dump
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cdd823a	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2cefaa61	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x2cf6a1bf	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cfff8a7	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x2d051d12	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x2d052156	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d21e756	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x2d244b9e	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x2d27d752	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3d8977	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x2d4653fa	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d4d58f3	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x2d51fc27	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x2d621b39	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x2d75164e	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x2d8e3d87	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2d9fc7fb	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x2da0d0ef	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x2db10a5b	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dbaff2e	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x2dc26faa	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x2dca7955	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0x2ddfcffd	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL	 vmlinux 0x2df0129f	new_inode
+EXPORT_SYMBOL	 vmlinux 0x2dfb7b9b	logfc
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e1a721a	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e2c8a7c	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x2e327f35	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x2e3437d1	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4744f3	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x2e4948d6	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x2e7484fe	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x2e7b7e3e	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x2ea2c95c	__x86_indirect_thunk_rax
+EXPORT_SYMBOL	 vmlinux 0x2ea5cc2e	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x2ea912e9	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x2eaa8816	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ed18966	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x2ed64ee6	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2edfcedc	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2eebeb49	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f0a2ede	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x2f289907	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f48930a	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x2f4b5405	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f783f74	skb_split
+EXPORT_SYMBOL	 vmlinux 0x2f874063	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x2f8ce7b4	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x2fa213d3	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fc8de8f	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x2fc94908	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2feba9f0	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x2fffe3dd	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x303526db	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0x303a9583	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x30731ef5	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x3079704e	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x307ed68f	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x30959972	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b324a8	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x30ba5afc	arp_create
+EXPORT_SYMBOL	 vmlinux 0x30e29a08	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x31181084	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x31367afb	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x3144656f	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x31459c52	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x3148af95	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x3156501a	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x3162a73d	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x316e9915	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x3184b6ef	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x318dd202	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3193009b	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x3194e2e1	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31aa7200	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31cbece7	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x31cff144	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x31d9fe19	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x31e72e8e	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x31e7eb47	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x31f96503	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x31fa52fb	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x31fbbd72	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x3200681a	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0x320c82f5	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x320e418e	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x320f1e9d	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x3210261d	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328bb791	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x329c553f	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32c24e70	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x32ef7443	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x331b7bbc	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x3324ef3b	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x3374957b	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x337c84fa	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x339beab7	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x33a5f4cc	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x33ad0632	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33d2b9a7	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x33d4547d	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x33d45ddc	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f979f3	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x33fd9da4	acpi_get_gpe_device
+EXPORT_SYMBOL	 vmlinux 0x33fdf28c	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x3406cb29	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x342e4daa	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x3441445f	msrs_free
+EXPORT_SYMBOL	 vmlinux 0x3451ec49	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x346d383b	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x346db9cd	sock_pfree
+EXPORT_SYMBOL	 vmlinux 0x34736981	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x3477bac4	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x3489859f	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL	 vmlinux 0x348b2ddd	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x348bc42a	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x348e0f81	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34cfc03e	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f3cadc	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x34f89363	acpi_terminate_debugger
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x3511f09e	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x351bc027	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x35266c71	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354a0058	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x354b4a1e	acpi_ut_trace
+EXPORT_SYMBOL	 vmlinux 0x354e34b1	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x357897e1	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x357ebd61	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x357fde0a	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x3589e9fe	amd_iommu_domain_direct_map
+EXPORT_SYMBOL	 vmlinux 0x358a6d6e	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a4a1c7	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35a9b5f6	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x35c0697b	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x35e8373c	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x35f85493	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x35ffd10a	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x360c3d57	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x363deeaf	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x3640023c	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x36498c51	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x364d896b	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x36521c3a	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3662767d	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x36a57106	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x36acdedc	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x36b22203	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x36b648c8	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x36c11835	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x36ce3ec0	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x373758c0	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3743253e	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3749f989	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x376601ca	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x376ead9b	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377be431	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x378ffd9a	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x379d4395	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b69db4	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37bfe1d5	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x37c3bf2f	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x37c51da9	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x37cf6bd7	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37eef0c0	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x37efeb39	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x37f74190	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x3801d1dc	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x38359339	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x3855bea4	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x385d20a2	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x386e6faa	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x3875d1db	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x3877ed58	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x3879fb88	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x387b07fe	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x38907ca2	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38970e87	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x38a4fbd5	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38cd06a6	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x38d0c281	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x38d839f6	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x38d95edc	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x38e2c028	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x39081193	__max_logical_packages
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x39481eaa	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x3965073b	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x396e9b28	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x398a792f	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x399503db	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x39980b6d	fput
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39a9e1b9	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x39ad24f3	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39c4abd9	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x39e107aa	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x39e3c030	do_trace_read_msr
+EXPORT_SYMBOL	 vmlinux 0x3a00af68	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2d1dfa	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a30f3f6	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x3a3212c0	clk_get
+EXPORT_SYMBOL	 vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL	 vmlinux 0x3a4883a3	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a6a3104	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x3a6efea1	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x3a74b2f1	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x3a889968	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x3a9cbfe7	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x3a9cccb6	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3abce29a	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3adba8a1	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x3aed02fd	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b029f48	acpi_install_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x3b074513	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x3b08bc45	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x3b1917eb	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b2e173c	pid_task
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b3be756	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x3b4686f0	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b727f8c	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x3b8107dc	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b83610f	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x3b8840b4	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b93218e	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x3b97c630	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x3bac6a2c	dev_open
+EXPORT_SYMBOL	 vmlinux 0x3bb001c4	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x3bd98b65	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x3be3782d	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x3be629a7	dqget
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bf08b86	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x3c14a596	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c248d80	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x3c294ad9	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c427f67	cpu_die_map
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c496751	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x3c7a9598	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c99a072	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x3ca5bc10	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x3cbb4e25	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x3cc0aee7	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ceffdf8	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x3cf91fdc	skb_append
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d0a7ad1	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x3d11b5a6	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d24270e	register_console
+EXPORT_SYMBOL	 vmlinux 0x3d42fdbc	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5ae805	proto_register
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d6bf256	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x3d825289	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x3d94a5ff	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x3da171f9	pci_mem_start
+EXPORT_SYMBOL	 vmlinux 0x3dab353e	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dc04a82	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dc69381	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd24090	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x3dd2f40c	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x3dd8f603	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddad542	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x3ddc6c04	x86_bios_cpu_apicid
+EXPORT_SYMBOL	 vmlinux 0x3de1369d	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x3df011b4	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x3df25935	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x3df3ce4d	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x3df3e69c	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dfca881	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0x3e230885	single_release
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2c605d	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x3e47acc3	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x3e5dc5d2	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x3e7a3417	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x3e889c3a	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9b1bf1	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x3ea7e93d	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x3ea8df5b	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x3ec881b6	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f07f888	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x3f09b2b6	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f2937a4	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x3f333757	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x3f393e9e	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x3f3f897c	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f486870	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x3f4b9e29	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f4f9bdd	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x3f54f8fb	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3f593654	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x3f65d14f	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x3f693d3d	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f93e703	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x3faa3b9d	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x3fb8a794	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc4d48a	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x3fd0fb9f	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fd80e64	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x3fdea949	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3fe8759a	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x3fec0328	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x3fef5c97	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x3ff4f6e6	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x3ff5c062	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x3fff255c	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x4034bf8a	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x404d21f1	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x405390da	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x4055a920	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x406be1d9	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a65db1	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40af52f7	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x40b49b5e	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x40b4f2e1	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40c81bcc	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x40c8b5ba	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x4116f303	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x412eaf4f	pci_map_biosrom
+EXPORT_SYMBOL	 vmlinux 0x4142845e	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x41457e8d	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x41506142	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x41855baf	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x4198ca95	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x41c0ba59	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x41c0db86	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x41e0f9c8	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x4210fe29	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x42251bbe	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4234cdf1	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x423bcb71	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424ec06d	vga_switcheroo_init_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x426372c3	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x4287a734	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x428d49e1	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x4291619f	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x42a3a55e	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x42b105db	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42c1caa6	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x42ec6b1d	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x42ef4630	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43145b26	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x43306c85	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x4336e3df	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4384e6f3	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x4386f096	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x438814bb	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x43adb342	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x43b41b12	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x43bd9e92	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x43eb3c61	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43fc0034	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x4400d7cd	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x440796c9	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x440c7e06	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x440db6fc	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x44181f9e	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x441efc32	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x443ba984	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x44414ff2	iosf_mbi_unblock_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x445a81ce	boot_cpu_data
+EXPORT_SYMBOL	 vmlinux 0x447881bd	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x44822910	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x44902cff	acpi_enable_event
+EXPORT_SYMBOL	 vmlinux 0x44946874	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL	 vmlinux 0x44c78983	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44fc36af	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450222b8	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x452f3d21	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x454dc60e	cpu_tlbstate
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x45616a38	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x45790d67	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x4588033c	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x45b767de	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x45c27a1b	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x45c9d3ca	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x45cab31d	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x45cd65a6	file_modified
+EXPORT_SYMBOL	 vmlinux 0x45d246da	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x45d40372	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x45dcdfd1	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x45e1f589	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x45e69e01	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x45e8d7b5	native_write_cr0
+EXPORT_SYMBOL	 vmlinux 0x45f187c1	vga_switcheroo_client_probe_defer
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x460c4f8c	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x461052ad	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x46139bef	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x4629334c	__preempt_count
+EXPORT_SYMBOL	 vmlinux 0x462fa494	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x464079ba	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x46787a1c	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x469a2133	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x469f0b18	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x46af4a0a	dm_io
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46ce3821	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x46d590f4	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x47136a1a	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x4719f511	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x472e05e8	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x4740b3bc	xen_arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x47513e2b	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47764b91	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x4781274e	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47957303	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47b1ef17	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x47bcd2d9	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x47c42a22	cpu_tss_rw
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47d43e91	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x47e43d70	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x4800f799	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x480ef5ce	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x4827f627	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x4828bcb9	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x482b2485	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x48379c3c	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x48476bcb	intel_gtt_insert_page
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4854db60	finish_open
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x485bc376	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x48604c20	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x487802ae	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x487f334c	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x488595ef	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48ac12f1	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48cd5806	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x48d50e79	amd_iommu_register_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x48d8fa18	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x48dcdf42	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x48e29d70	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x48fc938d	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493ef8ef	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x4943f200	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x4950a450	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x4951b442	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x495e378d	__pv_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x49652dfa	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x496698d9	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x497bb65e	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x4983296e	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x498ca1fa	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49b11e08	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b41188	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49d1d562	input_event
+EXPORT_SYMBOL	 vmlinux 0x4a0688b9	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x4a178980	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x4a1b8fa2	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4a21beab	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x4a27edd2	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x4a30db5a	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x4a3b5e69	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a4d71a2	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x4a599df7	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9b7ac7	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abd7a6c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x4ad05ada	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4aef5bf5	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b044f7e	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b0f0750	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x4b23821c	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b822a6e	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x4b9f0a99	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4baa38eb	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bafc718	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x4bbfa8d3	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4bd1122e	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x4bdc2e6b	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x4bdc3f38	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0x4bdd5b9e	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x4be7569d	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x4be80e67	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x4be9a671	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf57e1e	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c0fbd45	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x4c1ac046	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c457457	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x4c4ecfb8	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x4c545ec7	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x4c5e8205	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x4c6b618a	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x4c756cd8	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x4c7c4c34	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x4c8b4a06	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x4c9d28b0	phys_base
+EXPORT_SYMBOL	 vmlinux 0x4ca634f2	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc70509	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x4cd3036f	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x4cd5bc5e	rdmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0x4cdf5dd4	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x4ce76193	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d42b98f	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d791b8f	eisa_bus_type
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da099e2	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x4dc291ba	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dd1092a	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x4dde2e60	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x4de06364	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4dee386a	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e0cb321	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x4e0ecf27	current_task
+EXPORT_SYMBOL	 vmlinux 0x4e13a487	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4e197c3f	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e27406b	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e4980cf	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e777713	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x4e92aeb4	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x4e97cfad	dqput
+EXPORT_SYMBOL	 vmlinux 0x4e9ea227	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ec73b49	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x4ef7b0da	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x4f03a9c7	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x4f0fa146	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f23334b	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f593b03	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x4f9360f4	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x4f9c2956	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fc94737	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x4fcc8ad2	ex_handler_uaccess
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x50472da3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x50607954	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x507f72ed	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x508e24fa	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x50926a69	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x50942603	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x509ef6b5	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50ad5f85	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x50ae7a6d	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d2465e	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x50d68377	arch_phys_wc_del
+EXPORT_SYMBOL	 vmlinux 0x50e3d332	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x50f6d484	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x51123172	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x51189a02	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x5137ec9a	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x5158796a	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x51a63811	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x51bd3a78	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51d9d534	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x51df0600	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x52079208	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x521bfe8d	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x5244793a	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x52449fe6	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x526a53a6	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5279bba6	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52a70f93	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x52b3deff	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x52cf1d2c	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52d96ba9	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x52e0b227	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x52e0fa26	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52f70930	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x52fd3392	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x52fed693	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x53095209	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL	 vmlinux 0x5344fae3	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x53569707	this_cpu_off
+EXPORT_SYMBOL	 vmlinux 0x535ad43b	eisa_driver_register
+EXPORT_SYMBOL	 vmlinux 0x537baf43	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x53a38fc2	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x53a82971	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x53b35688	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53cc12f8	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x53cd3849	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x53d68481	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x53e70419	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x541384f8	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x54175c5f	acpi_read_bit_register
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x542688ff	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x542d0d21	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x5435e704	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x54447ddf	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x544783e9	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x545fbcee	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x546f5d3e	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x5478d720	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x547d4a74	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x547e3344	acpi_disable
+EXPORT_SYMBOL	 vmlinux 0x548c1d8d	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x54a073b9	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54ab82a9	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x54aec519	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x54c16594	amd_iommu_pc_set_reg
+EXPORT_SYMBOL	 vmlinux 0x54d7b05a	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x54e1bdd0	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x5504bc54	seq_write
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550763eb	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x55115817	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x5515c5a4	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x55448887	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55500e6e	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0x556201d9	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x556422b3	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556cca46	x86_apple_machine
+EXPORT_SYMBOL	 vmlinux 0x556ec9d7	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x5572845b	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x55745309	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55b7102f	vga_switcheroo_register_audio_client
+EXPORT_SYMBOL	 vmlinux 0x55cbfb3c	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55f1e0f2	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x55f6be98	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x55f95e07	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x55facd0a	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x55fe5526	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x5601e1f9	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x560db355	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568391bf	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x56873367	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x569fa195	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x56a2af2f	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x56ac86df	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x56b454cd	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d29c5e	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x56daf042	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x56e8b42a	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x56e8bd3f	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x571b1491	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x571f0d20	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x57245fc0	dst_init
+EXPORT_SYMBOL	 vmlinux 0x57459cde	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x576783a6	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x577332cc	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x577839bb	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x57a83d62	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57bfd615	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x57e368c0	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x5827e69d	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x582896fd	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5835e07e	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x586931c2	eisa_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x587f22d7	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5890952a	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58c21e2c	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x59079c23	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x591119fc	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x592df4d7	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x593717d2	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x593c1bac	__x86_indirect_thunk_rbx
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x5962526b	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x597f54c0	native_restore_fl
+EXPORT_SYMBOL	 vmlinux 0x59959055	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x5999b2a2	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a266da	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59a7de1c	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59bac7a8	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x59c0860b	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x59c564d2	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x59d546ba	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x59f85a5d	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a13013d	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a2bb5e2	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0x5a2ee8c5	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x5a3baef6	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5a2271	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5a629faa	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x5a64c989	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a941c76	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x5a9bbf2d	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x5a9edeff	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x5aacfbde	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x5aafbfe3	may_umount
+EXPORT_SYMBOL	 vmlinux 0x5abdc513	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x5ac30d51	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x5ad17964	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x5af5fd78	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x5b2623c7	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b6a710b	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x5b6f9e66	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x5b82a4d8	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x5b883768	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x5b909f31	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x5b928486	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x5b9405f1	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x5ba6540b	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x5bacf5aa	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x5bc33229	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x5bc69e09	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x5bdb4930	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c29a3b5	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x5c336086	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x5c38c8e6	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x5c40703b	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x5c4232d3	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c492e82	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x5c4ffef2	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x5c595376	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x5c6a385b	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x5c799d61	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x5c7a78de	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x5c922e07	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x5c979fda	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x5cbe7465	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x5cdf9a56	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x5ce2cb39	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x5ce618e9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cf8ca36	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5d0584fb	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x5d08c266	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x5d101db4	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x5d135d94	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x5d3b9e29	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d64e2e2	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d84982e	find_vma
+EXPORT_SYMBOL	 vmlinux 0x5d8cc9cb	legacy_pic
+EXPORT_SYMBOL	 vmlinux 0x5da38f85	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x5dd37da8	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x5dda5775	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x5de2f866	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e40a765	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x5e58e702	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e913b51	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed246e6	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ef5ceed	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f06bed5	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f34ca3b	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x5f3606cf	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5f3ab67a	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x5f43cd44	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x5f50ce30	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x5f5605dc	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x5f56663b	rdmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f6c44c6	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x5f797aed	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x5f7d55dc	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5fa5a906	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x5faa652c	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x5fadec82	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x5fb55c0f	set_pages_array_uc
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fe8f65c	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60211195	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6045e86a	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x605db77c	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x6061c444	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x6066d9a1	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x6078c8c4	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x60836991	bdevname
+EXPORT_SYMBOL	 vmlinux 0x6085601b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x60863f6b	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60abaf7a	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60c2bbae	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x60d2298f	set_pages_array_wb
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60da589a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x60e626ca	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x60fe2eee	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0x61008ecf	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x6106cf76	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x61235e44	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x6124857e	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x612c1360	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x614c33b9	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x61670b93	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x616cd62c	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x616e9a56	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x6170c986	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x6192e486	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61abaf3f	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x61b22e35	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x61b5da33	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61d8c7ad	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61f19fd3	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x61fea98a	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x6209da4c	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x621c113d	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6226b9fa	machine_to_phys_mapping
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x622e41c2	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x6272d85b	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x6299f16c	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x62b5c34f	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62d27a06	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x62d763ea	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x62dc9060	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x62deed3f	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x62f316e1	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x62fd0331	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x63122643	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x6313425d	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x6326407c	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x63307587	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x636257f7	get_ibs_caps
+EXPORT_SYMBOL	 vmlinux 0x63628081	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x636649df	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x6391790f	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x63946461	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x63a53702	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d458d6	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63e48fcc	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63fe4cfd	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64119f7e	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x642bca72	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x64369f76	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6457b190	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x6460da9f	d_drop
+EXPORT_SYMBOL	 vmlinux 0x64694666	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b390fd	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x64b7d25e	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64d35000	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x652d3cc5	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6568a656	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x658fd837	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x65973b6d	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65b992ac	xen_alloc_p2m_entry
+EXPORT_SYMBOL	 vmlinux 0x65bb3a9d	pps_event
+EXPORT_SYMBOL	 vmlinux 0x65c32dd0	arp_send
+EXPORT_SYMBOL	 vmlinux 0x65c81980	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d36b27	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x65d39a94	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65da3658	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x65eaa68a	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x663182c9	acpi_get_gpe_status
+EXPORT_SYMBOL	 vmlinux 0x66389da3	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x665796ce	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6673ead4	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66be96a5	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66f69032	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x67041f19	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x671e9dcd	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x67233a78	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x674249c5	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x674c2f88	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x676f334d	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6770b674	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x67812b81	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x67892b59	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x67a6e679	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67cd445e	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x67f1e87b	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x67f82043	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x67f93b4a	amd_iommu_domain_set_gcr3
+EXPORT_SYMBOL	 vmlinux 0x681184d9	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x68383186	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x684f5e87	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x6851664e	wrmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x686127a9	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x686c61d3	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x68738b71	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68813ab6	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x68872c4f	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68ad87ba	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x68af3804	amd_iommu_pc_get_reg
+EXPORT_SYMBOL	 vmlinux 0x68b4a2d3	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x68df5e6a	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x68f0b57b	dev_load
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x6932ed41	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x6939842d	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x693e4890	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x695ec85b	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x69771225	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x697ae228	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL	 vmlinux 0x69acdf38	memcpy
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69ad6dff	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x69b55d40	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x69c2c00c	sock_release
+EXPORT_SYMBOL	 vmlinux 0x69d1f337	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x69d3392b	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a16d85f	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x6a1b274d	padata_start
+EXPORT_SYMBOL	 vmlinux 0x6a261b78	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x6a3939b9	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x6a394545	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x6a3f82f8	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x6a44307c	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x6a539370	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x6a57de95	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6228eb	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x6a6fc7d6	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x6a7dd1be	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x6a95f2d7	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6acb1755	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x6ad7c2d2	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b0d43b6	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x6b26e48e	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b31bbb5	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x6b34d03d	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x6b3a38c5	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b7b5416	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x6b80ba14	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x6b8135b4	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0x6b8283be	convert_art_to_tsc
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6ba446da	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bc624cf	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x6bc87529	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x6bd4a48c	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x6bdb74f6	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6be8358b	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x6beb0299	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x6c1be67e	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c26d4d3	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c559bb0	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c6b92be	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x6c6e8f73	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x6c727487	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cb5b087	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x6cb9ebfc	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x6cbda4a9	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x6cd9b388	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x6cdc595d	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x6ce07d6c	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x6ce4fb57	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x6ce6c94e	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x6cee2f98	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0x6ceea877	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x6cf2821e	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x6cf57f97	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d123b5f	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x6d215909	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d32c9f3	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d42b067	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d71a017	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x6d7abe02	first_ec
+EXPORT_SYMBOL	 vmlinux 0x6d8fbe83	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x6da74397	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x6db30d36	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x6db8ae70	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x6dbb80bc	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x6dbcad8a	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6dfc87c1	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x6dfe3f38	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e280b50	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e3108b3	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x6e3cef11	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x6e40dffd	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e6076c3	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x6e6c604b	update_region
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e746021	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x6e76e9fb	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x6e78abb9	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x6e9b7bf7	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea7575d	acpi_dispatch_gpe
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ed063fd	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x6ed346de	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6ed5abf3	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee66b49	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x6eecda0d	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x6f0442ec	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x6f0ada62	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f448d84	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x6f66377f	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f7cf39c	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x6f8694e9	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f94acf2	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x6f9a4860	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fc18735	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x6fc5fc91	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x6fca9a24	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6ff9e819	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70104f46	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x7040fff9	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0x704aaddf	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x704ecdc4	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x707f41bc	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x709342d9	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70b1e285	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x70cd19be	d_move
+EXPORT_SYMBOL	 vmlinux 0x70ef2761	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x70ef457c	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x70f90b29	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x71062703	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x71253037	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x714d98dd	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x714fe080	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717cde5c	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x719d584b	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x71a18ba7	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a99a11	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x71bbec21	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x71d1a9d7	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x71d8638c	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x7222a067	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x723e93ce	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72598ce9	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x726e72c7	f_setown
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x727821b3	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x727a22d1	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x727da262	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x729b0acc	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x72a78949	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL	 vmlinux 0x72ac3d6f	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0x72b144ea	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72cdd7b9	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x72d4f4f8	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x72de4573	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x72de4746	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x72e898a3	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f67319	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x73254316	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x733f2e87	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x734202b9	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL	 vmlinux 0x735bc48e	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x73675222	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x7367a3cb	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x73701812	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73b06e8c	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x73dd54eb	irq_fpu_usable
+EXPORT_SYMBOL	 vmlinux 0x73ed2616	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x73efcce6	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0x740b0ae7	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742ca5c4	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x74347155	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x74749ea8	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x7481a2de	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74a74114	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74dc8cc8	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x74df1b4a	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f11a3a	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x74f4dc3e	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x74f638ba	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x75170705	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x75207224	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x753ce1a5	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x754d539c	strlen
+EXPORT_SYMBOL	 vmlinux 0x7551436b	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x75666c7b	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x75893971	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x75943e25	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75c59bb6	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d1495d	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75da5671	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x75dc25fc	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x75e92255	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x75eb1486	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x75ecb8b4	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x75f7a5de	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x75ffb26f	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x761f95d5	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x763bad92	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x76422b6b	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x76727a34	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x767dce4b	acpi_disable_all_gpes
+EXPORT_SYMBOL	 vmlinux 0x767ddb02	set_memory_wc
+EXPORT_SYMBOL	 vmlinux 0x7680f0ac	md_error
+EXPORT_SYMBOL	 vmlinux 0x7681a0c2	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x768dfbe7	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76fb08a7	amd_iommu_unregister_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x770bc9eb	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x77344c39	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773d4c94	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x774d14b0	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x77526495	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x77608a16	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x77644c92	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x7765336c	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x776ac226	vga_switcheroo_register_client
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77b0fed9	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c7ae18	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x77d02093	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0x77e50747	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f3d149	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780a0dc9	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x780fdfd1	intel_enable_gtt
+EXPORT_SYMBOL	 vmlinux 0x7812c047	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x78259094	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x78367a5d	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x785f746e	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x7860e802	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788f3e9f	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x789902aa	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78bc19e4	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x78bc927b	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x78c5308c	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x78dc15aa	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x78de6586	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x78dea642	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e5c41f	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x78f98f04	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x790664cb	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x79152375	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x791b74dd	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x791bfca1	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0x7923610f	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x792725c6	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x792d352b	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x7942ea96	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x795a7db0	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x797f7c65	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79ab39ae	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x79d603a6	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x79df9633	ioremap_encrypted
+EXPORT_SYMBOL	 vmlinux 0x79e23f73	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x79ea6659	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a217f5d	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x7a23d328	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x7a27fa83	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a2c511f	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0x7a30412c	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a579410	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x7a6072de	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x7a78eb48	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x7a82cc82	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x7a852685	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x7a88da87	iosf_mbi_write
+EXPORT_SYMBOL	 vmlinux 0x7a8df75d	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x7a8f6105	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa03a50	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad14da6	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ae59e28	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x7aec9089	clear_user
+EXPORT_SYMBOL	 vmlinux 0x7af5753b	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x7aff77a3	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b195529	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x7b1bb006	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x7b27b13d	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b5fe2e6	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x7b64987c	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x7b6c5529	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x7b77cd6a	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x7b7daa34	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bba91f2	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd2476	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x7bbde69d	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x7bbfa973	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x7bfacc7f	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x7c0e0095	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c1d44ed	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x7c251bdc	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x7c298ef3	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x7c33bd17	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x7c36aa2b	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c473b2b	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x7c867674	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x7c93fc21	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7c9f23c5	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x7cade6a7	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc2df15	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x7ccd5e20	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x7cd8d75e	page_offset_base
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce6b157	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d19acb9	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x7d26a5e9	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x7d284af0	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x7d43e6eb	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d51a1f3	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x7d5cd489	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d628444	memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x7d70a196	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x7d764fab	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x7d7cb4c8	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x7d828701	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x7d92e11d	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x7dac0a9e	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dc31a97	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x7dcd775d	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x7dd26f41	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x7dd3b66e	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0a5c30	ex_handler_ext
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e32fc34	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x7e526bfa	__x86_indirect_thunk_r10
+EXPORT_SYMBOL	 vmlinux 0x7e5b2df2	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x7e655f65	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x7e6aa12d	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x7e7bb2a8	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x7e7bcf26	acpi_map_cpu
+EXPORT_SYMBOL	 vmlinux 0x7ea527ee	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ecc38f5	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x7ecc7627	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x7eed1137	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x7f01465a	padata_free
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f0657ca	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x7f0d5cf5	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x7f1236a3	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x7f227d38	dev_close
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f454b03	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f6f405c	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x7f79d01e	ihold
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f802689	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x7fa4842c	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x7fb4af01	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x7fdcab82	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe3b389	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x7feb2367	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x7ff0717f	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x7ffd0a42	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x801f7744	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x8020bd22	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x80420136	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x804af87c	wrmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x8052d750	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x807212ae	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x8088c850	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x809667a7	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a38cf7	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x80a6c9fa	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80bee344	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80cdc76b	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x80d15215	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x81008cc4	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x810c3fad	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x810d1541	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x810d7445	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8113162c	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x811f821a	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x81414794	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815e1081	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x81616240	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x818c05cd	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x8194a527	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81c5b053	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x81cb1bad	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e07752	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81e9866e	ilookup
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x822b90cd	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x822c9c2a	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x823683c8	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x823b6167	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x823c19ea	iosf_mbi_unregister_pmic_bus_access_notifier_unlocked
+EXPORT_SYMBOL	 vmlinux 0x823fb934	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x8249208f	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x8292f177	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x829545a3	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x82adcdb1	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x82b4967b	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x82b5556e	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x82bd4554	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x82bd8f99	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82d5f6d1	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x82ee5732	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x8312aa47	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x831c7b5d	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x83216779	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x83424675	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x8348509c	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x8368b6ae	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x83791c4a	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x837bf581	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x8389e09f	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x839819ce	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83b1295d	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x83b9784a	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83c7c073	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x840faa35	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8421d1f0	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x8428b586	put_disk
+EXPORT_SYMBOL	 vmlinux 0x8454474d	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x845d7d11	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x84626c18	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x8469b620	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x847a1ccc	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x84815f3e	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x848a6dfa	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x848a70c3	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x84a6512c	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x84a65461	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84d6b7c0	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x84df550e	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x84e944b3	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x84e9bc0e	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x85173bfe	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x8538e7a9	intel_gmch_probe
+EXPORT_SYMBOL	 vmlinux 0x8545c73f	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8571f89e	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x858ac0f7	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x859eb1c3	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bbd1f1	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c18288	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x85c4b83f	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e30649	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x860ea932	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x861477ad	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x862463ed	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x862f463c	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863e4a83	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x86402548	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x864754ea	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865446e0	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x8656f0d0	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x86589d64	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86b6d68b	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x86b78968	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x86c3154e	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x86c4cf2a	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x86c7272b	iosf_mbi_read
+EXPORT_SYMBOL	 vmlinux 0x86d1348e	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x86ed0c40	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x86f27420	iosf_mbi_block_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x87218233	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x8744155c	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x874fcd1b	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x876429b2	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x8766e9c5	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x876ae2ae	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x878417cb	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x8785cc7c	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x87906904	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87e221b2	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x881e90d4	get_cpu_entry_area
+EXPORT_SYMBOL	 vmlinux 0x8824c114	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x8834b3c9	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x88359056	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x8846f6cb	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x8848086a	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x886ec450	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88825aa1	d_add
+EXPORT_SYMBOL	 vmlinux 0x8882e96c	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x8888befe	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88ba061e	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x88c14c9b	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x88d06ef6	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x88d36da5	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88fa1455	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x890b2344	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x8935cbb8	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x89365b39	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x89508fde	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x89515567	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x89590af7	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x8981b29f	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x89968857	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x8999be96	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x89abd140	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x89ac3ae7	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x89ac778d	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89bef060	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x89cf1a16	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x89e3da32	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x89e63a80	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x89fa70c8	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x8a03b22a	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x8a0ae4f6	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x8a0cd509	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x8a152148	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a207eb6	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x8a3482b8	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x8a35b432	sme_me_mask
+EXPORT_SYMBOL	 vmlinux 0x8a42ce27	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x8a4432c0	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4ef283	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x8a55e455	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x8a657025	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c7139	acpi_mask_gpe
+EXPORT_SYMBOL	 vmlinux 0x8a79564a	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a97056c	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa02a23	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x8ab218d8	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x8abc89b6	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8add347e	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x8af6a4f0	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b07fa34	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x8b1f721f	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x8b24cfae	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x8b250247	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x8b274a30	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b853415	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b966b63	sn_rtc_cycles_per_second
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba84245	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x8bcd973c	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x8bd577d0	acpi_ut_exit
+EXPORT_SYMBOL	 vmlinux 0x8bdad6ca	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x8bdd2dc6	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x8be3a0db	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x8be6e309	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x8be75098	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x8bf00fd4	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x8c0239ce	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c28ccb5	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c73213f	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x8c745ee2	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x8c9db930	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8cdb44c5	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x8ce30f62	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x8ce67a53	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x8ceccc3e	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x8cf3b082	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x8cf5684b	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x8cf97501	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x8cfe5b32	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x8d120ad8	iunique
+EXPORT_SYMBOL	 vmlinux 0x8d1609cf	console_start
+EXPORT_SYMBOL	 vmlinux 0x8d43c5dd	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5aea08	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x8d5f17a9	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d7633f3	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x8d905d7c	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8dab7380	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x8db22efe	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0x8dc0e613	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x8dd8f561	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8ddfba4e	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x8df7e8d6	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfcd287	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x8dfd340d	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x8e007c4b	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x8e173ff6	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e276d3a	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e2d1236	ex_handler_wrmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0x8e494f00	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8e5f55f8	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e663d0f	zalloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x8e77c646	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x8e7d0a85	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x8e8a05fc	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x8e8e4f19	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x8ea1c2ed	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x8eac8bb0	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x8ebe81d6	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x8ec58260	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x8ef3bd84	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f11acde	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL	 vmlinux 0x8f30c0d5	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f375787	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f38d383	ex_handler_default
+EXPORT_SYMBOL	 vmlinux 0x8f503cab	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x8f596b91	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x8f60a207	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8f80bf11	acpi_install_gpe_raw_handler
+EXPORT_SYMBOL	 vmlinux 0x8f85ea72	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fca784a	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x8fe26235	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x8fe68e90	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ffa4480	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x9020766a	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x90224c0e	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x9023763e	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x905bf098	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x906168b2	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x909ccea7	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x90a966a3	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x90e12c3c	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x90e42dc7	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x90e849d8	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x90fab798	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0x9110970e	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x91147bc7	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x915cc385	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9176145b	acpi_install_global_event_handler
+EXPORT_SYMBOL	 vmlinux 0x918441b6	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91c6fa00	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x921c88bd	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x924407f6	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9256db4c	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x927dfca9	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x92810327	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x92822514	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x92852990	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x929a0a46	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x92a51e56	acpi_debug_print_raw
+EXPORT_SYMBOL	 vmlinux 0x92a91db2	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x92ad4e30	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92df844b	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x92fca040	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930a814f	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x931c13f6	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x931c478f	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x93398d27	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x933a33ed	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x933e26f1	d_delete
+EXPORT_SYMBOL	 vmlinux 0x93473cb6	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x935beedb	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x9385243c	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x93875ee0	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x93a09235	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93aef384	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c2c11f	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x93d5087f	filp_close
+EXPORT_SYMBOL	 vmlinux 0x93dc548d	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x93f4dfd4	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x94077c1d	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x944bc964	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x94581ee4	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x945bef01	read_code
+EXPORT_SYMBOL	 vmlinux 0x94693a69	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x947f53af	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x94838167	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94a97e6f	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x94ab6a27	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c9f830	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x94eec9fd	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x94f7968c	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x94fa1b8d	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x950bb2d8	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x950e7d36	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x95144032	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x951d3167	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x952c51e7	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x9549f89c	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x9574db3e	tso_start
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95a15098	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95c45173	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95ec914d	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x95f502b2	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x961051e4	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x961981e4	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x9625695d	acpi_install_gpe_block
+EXPORT_SYMBOL	 vmlinux 0x9633e48c	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x964ed206	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x965d71de	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x968cb378	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x9696c16f	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x96aa52aa	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c85da4	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96ce9001	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96eab78b	iosf_mbi_modify
+EXPORT_SYMBOL	 vmlinux 0x96ed92ea	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x9710bc88	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9720c5e2	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x97328d22	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x97345062	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x973eeb17	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x9747d03b	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x974fa797	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x9754b910	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x9754c002	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x975b1a85	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x97651e6c	vmemmap_base
+EXPORT_SYMBOL	 vmlinux 0x976777f1	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x978dfca1	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x97928ed5	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x9793afa8	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x979c7577	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97ad4390	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b44627	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x97b62ad5	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c3ee79	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x97cf187c	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x98166d61	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x983a4d3a	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9856ea81	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x9867c73d	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x9875a8e1	single_open
+EXPORT_SYMBOL	 vmlinux 0x98a09ab9	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x98b41316	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98e4384f	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x992d4475	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x9941b65f	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9968327e	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x99745c63	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x997e7588	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x99893768	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x9995845c	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99c84f41	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x99d33796	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99db8eb8	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x99e341ec	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL	 vmlinux 0x99f38db1	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x9a07e5a6	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x9a093c9e	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a188e82	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a268b41	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x9a3a1fba	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x9a483c04	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x9a541fee	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a59e378	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9a5dc324	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x9a679cda	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a94172e	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x9a94d0e2	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x9a9915f6	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x9aa94788	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9aafcc58	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x9ab38252	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x9ac2a173	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x9ad7a582	iosf_mbi_assert_punit_acquired
+EXPORT_SYMBOL	 vmlinux 0x9ae0e12f	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x9aeecba4	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x9af0b209	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x9af8f917	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x9afac931	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x9b0d29b4	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x9b183907	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x9b2055e5	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b30e22e	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b47b041	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b5a9b2a	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x9b5de9ee	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b7d484c	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x9b8245b4	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x9bb3d752	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x9bc05c2e	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x9bc1e761	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x9bc9cb8d	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x9bdbbc1f	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x9bed15f3	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x9bef6144	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x9bf826ba	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x9c04bbcb	simple_open
+EXPORT_SYMBOL	 vmlinux 0x9c0c8093	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c24df04	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x9c255271	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x9c324810	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x9c39d9c8	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9c3d411b	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x9c6331e8	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x9c752e51	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9ca13fad	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cae315d	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x9cb986f2	vmalloc_base
+EXPORT_SYMBOL	 vmlinux 0x9cc9395a	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cd33b6c	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x9cd4c902	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce03a83	pv_ops
+EXPORT_SYMBOL	 vmlinux 0x9ceaa8c6	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x9d099a39	acpi_remove_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d11362c	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x9d1dca59	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x9d267a80	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x9d4355fb	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x9d5b7a14	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d70541a	native_save_fl
+EXPORT_SYMBOL	 vmlinux 0x9d8b9e78	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x9d8ec123	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9d977f14	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x9dab94c0	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x9dbb93ba	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x9dbe46d3	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x9dc49a08	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x9dc690f8	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x9decc59d	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x9df45bc8	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x9df92be2	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x9e00d3bb	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x9e098064	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0f58f3	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x9e0f6688	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e2cb835	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x9e4e1ec7	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e64fbfe	rtc_cmos_read
+EXPORT_SYMBOL	 vmlinux 0x9e683f75	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x9e75a152	build_skb
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e8221dc	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x9e8a628f	amd_iommu_rlookup_table
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9ea701d3	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9eb94193	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed30ee6	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9f130cd3	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x9f24cfce	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x9f3d2fa6	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x9f422b81	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4aa19d	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f56a857	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x9f6878a9	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x9f6aaaaf	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x9f8fe2a6	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9f987b1a	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fcf5960	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x9fd09383	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x9fd84b29	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feb1c89	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x9feb8abb	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x9fede63e	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff612e9	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa002f47e	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa02095a2	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xa023dfb9	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa031feec	nvm_register
+EXPORT_SYMBOL	 vmlinux 0xa0328fc4	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xa03ad1f7	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xa03b55cd	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xa03ec112	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa044925f	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0xa047364b	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa048011b	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa04a8ab9	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xa0523efa	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa05cffc7	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xa0716e8c	__module_get
+EXPORT_SYMBOL	 vmlinux 0xa076126f	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa084f79f	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xa08f4229	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b4f819	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f396ff	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xa0f493d9	efi
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10cdacd	simple_rename
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1359e08	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xa13b5951	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xa142b800	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xa150c75e	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa174bef2	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xa17571d7	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xa17f36af	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xa18d5b6e	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa19da1e8	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0xa1a10db7	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xa1a5c41c	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0xa1b0901b	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xa1b89ba1	phy_attach
+EXPORT_SYMBOL	 vmlinux 0xa1bedd72	amd_iommu_pc_get_max_counters
+EXPORT_SYMBOL	 vmlinux 0xa1c58ca8	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d5893f	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0xa1d6d169	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xa1deada1	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1eff284	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xa1f9a134	__x86_indirect_thunk_rsi
+EXPORT_SYMBOL	 vmlinux 0xa1fa45ec	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xa2004847	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa211d22b	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa212af3b	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xa224c808	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa236cce2	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xa23ca8a8	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xa240f663	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xa24a570a	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xa24b5791	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa25e7166	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa26bc122	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xa28461aa	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xa28b9224	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2a94a3c	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xa2b269e0	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xa2b3e544	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xa2cd4363	follow_down
+EXPORT_SYMBOL	 vmlinux 0xa2d13bc4	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xa2fac413	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xa2fbc622	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0xa30c5b0d	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xa334fbc4	skb_pull
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa3473dc3	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xa38f21b9	amd_iommu_update_ga
+EXPORT_SYMBOL	 vmlinux 0xa398a257	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0xa3a8af2b	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xa3c51d0b	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa3cfa452	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0xa3d13671	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xa3d9ace9	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL	 vmlinux 0xa3e4f871	acpi_initialize_debugger
+EXPORT_SYMBOL	 vmlinux 0xa3eccda2	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xa3fb86ef	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4191c0b	memset_io
+EXPORT_SYMBOL	 vmlinux 0xa4271a43	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xa43f3d4d	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0xa44fdd84	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0xa45786aa	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xa46a5eae	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0xa46cf0ea	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xa47bc098	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xa487c46f	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0xa4893239	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa4b6359d	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4e60815	genl_notify
+EXPORT_SYMBOL	 vmlinux 0xa4faf62a	acpi_disable_gpe
+EXPORT_SYMBOL	 vmlinux 0xa5056338	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa507125e	acpi_clear_gpe
+EXPORT_SYMBOL	 vmlinux 0xa50bcff0	x86_cpu_to_apicid
+EXPORT_SYMBOL	 vmlinux 0xa50dfa2f	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xa514a2e1	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xa51c4bb6	vga_switcheroo_register_handler
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5788d0a	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0xa57a8e85	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xa57def27	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa59dae9e	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xa5a15e3e	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5b40585	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xa5c94c17	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xa5cb64fd	dma_ops
+EXPORT_SYMBOL	 vmlinux 0xa5cd3bb5	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xa5d3a208	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xa5e4cd4f	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xa5e55057	rdmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xa5e6b52f	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xa5eaf882	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61f3296	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xa621edaf	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0xa657b798	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xa6722b55	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xa67369fa	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6825423	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa685d3fc	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xa68e71e1	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xa696d4ad	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xa69b0141	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xa69b728f	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa6ac4589	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0xa6b14d34	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xa6b94584	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xa6c448a6	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xa6dca5f6	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0xa6df0211	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xa6f9e8cb	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xa6fec7ab	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xa708436d	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xa70e0e3f	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xa70f3dff	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0xa72cfb7d	ioremap_wt
+EXPORT_SYMBOL	 vmlinux 0xa7452e16	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa76b2ff5	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa78a032d	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xa78d758c	vga_get
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7a280f5	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xa7c79ff6	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xa7ce4d6c	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xa7d034bf	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7da875a	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xa7e2d50f	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7f2edcd	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xa7f6fa6e	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xa8037724	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xa805ecfc	acpi_release_global_lock
+EXPORT_SYMBOL	 vmlinux 0xa80b003a	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xa81198f7	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa82c0830	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa836ba02	wrmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa87b7722	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa89e2c9a	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xa89f07ba	fget_raw
+EXPORT_SYMBOL	 vmlinux 0xa8bfed62	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8cdee9e	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8ee1f4b	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa901b8b9	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xa908ef45	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa92ecedb	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xa932f3ad	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xa94a09bb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xa95f1454	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa97463c9	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa9785b49	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xa97a61cb	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xa9823bc6	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa9889bb2	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9a182f9	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xa9a8e17f	arch_phys_wc_add
+EXPORT_SYMBOL	 vmlinux 0xa9c72303	amd_iommu_pc_get_max_banks
+EXPORT_SYMBOL	 vmlinux 0xa9d31ae5	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xa9e12ea5	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xa9e5aea5	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xa9e79d0c	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa26cd19	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa3e21ef	misc_register
+EXPORT_SYMBOL	 vmlinux 0xaa495a37	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xaa4cc3b1	fb_is_primary_device
+EXPORT_SYMBOL	 vmlinux 0xaa4e9cf8	migrate_page
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaaa30ccb	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xaab1c39e	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xaab7b125	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xaab82e3d	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0xaac6bd8e	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xaac8c4e8	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad53057	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad7bb38	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaaf2d66e	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xaaf3db90	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab0db18a	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xab160f9a	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xab2f8433	fb_class
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab4c5ab2	bdput
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab65ed80	set_memory_uc
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab6f13eb	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xab714de6	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab88f8dc	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xab8de490	submit_bh
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabaa4c7c	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xabc9c436	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf63482	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2a5a28	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0xac2d77a2	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac57302a	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xac5e01c6	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac80f446	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac9ba0c3	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacaf8dde	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xacb94246	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd32f46	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacea8173	acpi_debug_print
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacfbc71f	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad1036a2	amd_iommu_activate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0xad182ece	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xad240c3a	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xad2951a9	ex_handler_rdmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0xad3005fd	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xad429836	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xad505de3	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xad536c91	x86_cpu_to_acpiid
+EXPORT_SYMBOL	 vmlinux 0xad640848	bdgrab
+EXPORT_SYMBOL	 vmlinux 0xad6430aa	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad6dbd5c	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7dab94	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xad7ec9e1	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xad801b03	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad85a8a8	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0xad976a83	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xada0464c	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadb12bfa	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadc8de43	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xadcaab21	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xaddf8e55	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae24c4a1	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xae2c6d30	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae5251b1	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xae591a48	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae645082	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xae717c28	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xae8a24fc	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xae916d22	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xae9ade33	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xaea3d5fd	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaebdc307	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xaec401ed	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xaec6690c	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xaef77b71	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xaefdd790	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xaf095f7e	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xaf1cbd1e	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xaf2b6fa1	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xaf3a5df7	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xaf3bd20e	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf51384b	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xaf607186	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0xaf63d9a3	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0xaf6a5db8	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf7950f0	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xafa0b588	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafb660ba	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL	 vmlinux 0xafc2da81	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xafc4dcb1	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xafd5ff2c	amd_iommu_v2_supported
+EXPORT_SYMBOL	 vmlinux 0xaffffa9e	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xb007db58	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xb01a9f3c	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb02e6c79	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xb0412d96	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xb046fc19	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xb04a8b31	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb08334f9	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0be3e1e	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0c83185	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0d282db	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e602eb	memmove
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0f6456c	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xb0f976b2	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb139a712	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb157903e	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb15d6e06	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xb16227a3	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb16efa81	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xb181b354	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xb197c9ec	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xb19a5453	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1c6a003	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xb1c8b5ed	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb213d170	lock_rename
+EXPORT_SYMBOL	 vmlinux 0xb214c4c7	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb246e211	acpi_register_debugger
+EXPORT_SYMBOL	 vmlinux 0xb248c24d	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xb25005d3	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xb272d128	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xb272fcdd	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xb27c7ee9	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xb2826eba	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb2a58cc5	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2be064d	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb2e0d0e4	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f3d286	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xb2f74fb6	intel_gmch_remove
+EXPORT_SYMBOL	 vmlinux 0xb2fc5924	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xb3012318	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb3245cae	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xb32a5973	acpi_ut_status_exit
+EXPORT_SYMBOL	 vmlinux 0xb35009ef	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb35363c8	serio_open
+EXPORT_SYMBOL	 vmlinux 0xb3583bc9	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0xb35fb149	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb378c457	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0xb379f09c	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xb3863a67	acpi_set_gpe_wake_mask
+EXPORT_SYMBOL	 vmlinux 0xb3a2dfdf	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb3a61af1	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xb3ab2189	fd_install
+EXPORT_SYMBOL	 vmlinux 0xb3af8b5e	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3dc8081	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xb3e192bf	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb40a75f3	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb41885d7	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb42930a0	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb44b958f	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb459d8b0	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb47cca30	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0xb48c24dd	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xb48c6be9	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb48dc2ab	consume_skb
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a53db2	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xb4dfbd8a	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xb4e5b803	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xb4e955e3	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0xb4f0fa79	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f226a3	tty_name
+EXPORT_SYMBOL	 vmlinux 0xb4fef648	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xb51bcb04	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0xb52dcfb5	vga_switcheroo_unlock_ddc
+EXPORT_SYMBOL	 vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL	 vmlinux 0xb52f3176	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xb532cd7a	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb53ff42b	__put_page
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb574c23e	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab892d	uv_undefined
+EXPORT_SYMBOL	 vmlinux 0xb5cb5c18	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0xb5cbd269	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0xb5cea65c	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xb5d07910	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xb5e54cc9	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5e75bc9	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xb5ef2c29	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xb5fb59df	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xb601be4c	__x86_indirect_thunk_rdx
+EXPORT_SYMBOL	 vmlinux 0xb618b65e	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb63a793c	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0xb63bd09c	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xb643ac6d	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0xb6456257	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb65a9514	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xb665f56d	__cachemode2pte_tbl
+EXPORT_SYMBOL	 vmlinux 0xb674a534	acpi_unmap_cpu
+EXPORT_SYMBOL	 vmlinux 0xb6762668	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb679ad87	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xb67a9621	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6852b38	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6ab5a02	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xb6b6b714	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xb6be7685	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xb6c860e8	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xb6d88d37	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xb7094541	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xb71e1063	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xb723f3ad	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0xb72bb3c5	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb74034cf	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xb743f988	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0xb74b46e0	vga_switcheroo_get_client_state
+EXPORT_SYMBOL	 vmlinux 0xb7593ddc	iosf_mbi_unregister_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xb7676601	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0xb7683456	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0xb76d956a	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7b0f31a	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d0edd0	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xb80cfbe9	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xb814e18a	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xb82ba123	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb8457ea8	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xb86222fc	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xb86f74c5	free_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0xb882dcbd	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xb88a3d9e	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xb89b34f9	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a0b18e	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xb8aca3b9	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8cae2dd	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xb8d4b07f	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xb8da872b	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xb8e42c5d	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0xb8e476e2	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0xb8fa427a	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xb8fd21e0	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xb9020c6a	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb920d658	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb953a659	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xb97f7045	acpi_install_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0xb981f6b5	igrab
+EXPORT_SYMBOL	 vmlinux 0xb9950a98	convert_art_ns_to_tsc
+EXPORT_SYMBOL	 vmlinux 0xb99fe650	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9cf0861	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xb9df3362	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0xb9e276cf	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb9e7429c	memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9fd22cd	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xba0437c0	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba1383f4	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xba13fa02	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xba2f4ee1	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xba2fdeb5	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba61dc09	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xba805a9e	sock_register
+EXPORT_SYMBOL	 vmlinux 0xba839180	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xba88bf84	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xba89997e	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xba8b1100	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0xbaab5194	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xbaae027b	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xbab05054	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xbac4b902	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbadc2cbb	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xbade5b19	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xbae2388b	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xbafc9bbe	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xbb036526	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb09631f	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xbb13595e	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xbb14fe94	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xbb1bac24	acpi_unregister_debugger
+EXPORT_SYMBOL	 vmlinux 0xbb2204d7	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3d4a03	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0xbb483556	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xbb4e4ae6	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb74a725	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xbb8e169a	vga_switcheroo_handler_flags
+EXPORT_SYMBOL	 vmlinux 0xbb94056a	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xbbc8d566	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xbbd25d7d	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbea7f1b	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xbbec6f3a	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xbc035d06	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xbc1a7a65	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc271c40	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xbc33a6af	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xbc349c33	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc3c5901	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xbc510edf	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xbc663000	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xbc8aaf43	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xbc8c65d3	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xbc9d5903	unlock_page
+EXPORT_SYMBOL	 vmlinux 0xbca86443	seq_release
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb18740	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xbcb86ce6	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcf2323e	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xbcf7d699	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xbcfd8125	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xbd00fe8d	serio_close
+EXPORT_SYMBOL	 vmlinux 0xbd095d81	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xbd37818c	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd75f4b1	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xbd7e43b5	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xbd84cd11	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0xbd8bccea	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xbd97d63c	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xbd97fef9	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xbda5c835	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xbda8c08d	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xbdb6dbff	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xbde20447	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xbdeeae5a	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbdf39a21	drop_super
+EXPORT_SYMBOL	 vmlinux 0xbdfb6dbb	__fentry__
+EXPORT_SYMBOL	 vmlinux 0xbe0110e7	acpi_set_gpe
+EXPORT_SYMBOL	 vmlinux 0xbe0a202a	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xbe18aa7b	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xbe278f0b	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xbe2bebce	km_query
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe617ce5	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0xbe667344	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7dbbd8	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe8087d0	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xbe8c47d0	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xbe9d7df9	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xbe9efa9e	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xbea0b906	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xbebd8f11	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0xbec1443c	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xbeca17c4	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xbecad24a	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee3b2cc	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xbee799a1	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xbeee7cd7	set_pages_wb
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbf3193ec	acpi_unregister_ioapic
+EXPORT_SYMBOL	 vmlinux 0xbf552990	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0xbf7d1462	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfd1303e	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xbfd747d6	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0xbfdbfe78	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xbfdc6584	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xbfdcb43a	__x86_indirect_thunk_r11
+EXPORT_SYMBOL	 vmlinux 0xbfe82169	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff5ba86	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xbffe1427	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xc01aaa55	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc03627f1	set_pages_uc
+EXPORT_SYMBOL	 vmlinux 0xc0559729	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xc06f966e	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xc0760f13	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc0823dff	dget_parent
+EXPORT_SYMBOL	 vmlinux 0xc0964546	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3463f	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b40739	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0c1c8db	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xc0d03272	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0xc0e9dad0	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xc0fe54d2	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc111ae64	intel_gtt_get
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc11ed7fc	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0xc11ee0be	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xc12cda69	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xc1365323	acpi_enable_all_wakeup_gpes
+EXPORT_SYMBOL	 vmlinux 0xc14c87da	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc15ec559	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc165a282	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1c37454	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0xc1c49827	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1d92a6b	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xc1e98eb0	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xc2107a2d	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc232b114	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xc2407b08	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc24a426e	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc2753cd1	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xc278c965	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xc29957c3	__x86_indirect_thunk_rcx
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2b80eba	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xc2be161a	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xc2c41ae7	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xc2d146b7	mount_single
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2f1b341	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xc2f80653	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0xc2ff008a	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3135697	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xc32a398e	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc34c6ff7	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xc36273e3	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc380783e	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xc38b3331	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc392ad4f	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xc39aa5ec	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3dbb22c	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc3ecd3cf	mntget
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc40d93ae	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc4428672	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xc46897b0	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47fe677	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0xc498bbbe	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xc4aa31f7	phy_start
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4c33d4b	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xc4efb392	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xc505271f	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc542d95c	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xc54cf2ba	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58958fe	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a81f8e	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xc5a8e5f9	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5cc3c11	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xc5d1afb8	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5e4a5d1	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc606d5e4	eth_header
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc62b49df	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc6331f6a	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc636f6a1	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc65ea421	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc6910aa0	do_trace_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xc6ab9cd8	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xc6b57b85	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xc6b5ed7d	release_firmware
+EXPORT_SYMBOL	 vmlinux 0xc6b84231	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xc6c004f7	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6e97d58	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xc6f26c42	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xc6f29efe	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6fa85af	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc70947ed	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0xc710c9a6	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xc716d085	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc722376c	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc7449708	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0xc770e151	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc789efb9	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7a6a318	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7db3c4f	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc80d9da1	sget
+EXPORT_SYMBOL	 vmlinux 0xc816b285	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc8319378	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0xc83281ad	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xc8473f60	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a847b0	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b5d21d	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xc8cb7182	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xc8d46c21	get_acl
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8e7ecb3	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0xc8e81ad0	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xc90fa68d	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xc91b20ca	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9216a82	recalibrate_cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xc92559c4	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xc9293037	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xc9306a2a	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xc938a96e	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc957a5a0	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc9683614	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc97f6764	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc98690e4	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0xc994a371	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc99f2e02	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e6a3d4	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xc9f34c1d	acpi_acquire_global_lock
+EXPORT_SYMBOL	 vmlinux 0xca1246f6	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca1fc40b	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca44cb81	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xca4be634	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xca525d92	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xca5d91e9	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca75c435	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xca796455	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0xca863efc	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xcabcaa94	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcaee6308	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xcaf25fe6	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf5299b	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb0ca2a7	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0xcb2892f8	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xcb2d9583	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xcb36c827	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb4d416f	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xcb59ee62	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xcb665b52	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xcb6d3a5c	release_pages
+EXPORT_SYMBOL	 vmlinux 0xcb7019c5	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb7fe21f	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba656be	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xcba75462	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbaec807	netdev_err
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd28eaf	file_path
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbe4561c	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xcbeb4cb9	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc0b8b95	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc2ddbb3	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcc313772	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc4ef1c6	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc53c994	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc86438f	__brelse
+EXPORT_SYMBOL	 vmlinux 0xcc86faa4	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xcc8db0e2	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xcc9a1e28	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xcca49339	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xccb35475	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc71279	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xcccb70f6	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xccd30416	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xcce28012	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+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 0xcd0b862a	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xcd15311f	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd319449	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xcd436631	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0xcd47eb68	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xcd6aa65e	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcd88eb0c	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xcd8aacde	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xcd8b679d	phy_resume
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd9449c8	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd66014	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xcdd6eeed	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xcde69ce3	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcde807e5	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xcde99688	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xcdf273c8	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xcdfc28c6	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xce1869f5	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce366bfd	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0xce3c1e2c	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce529755	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xce54017f	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce831938	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xce8b1878	__x86_indirect_thunk_r14
+EXPORT_SYMBOL	 vmlinux 0xce8bc880	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0xce99539c	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb8c960	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xceb9ecbd	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xcebe9596	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xceec6fae	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcef7e391	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf057f70	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xcf0c33fa	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf207009	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0xcf239ad2	load_nls
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf3d1075	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xcf4d33cf	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf61d50d	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xcf66731e	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xcf6b324c	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfa33243	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xcfc0afb7	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xcfc5d860	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xcfcd4444	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xcfe0ccd4	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xd0118492	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd057670f	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0xd059e0ec	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xd05cf5b1	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd06e7d88	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xd08866c2	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a3d9a7	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0xd0a694eb	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0aa1076	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0xd0b0640f	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0bd7642	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xd0c7ffea	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xd0ef1184	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xd0f284b8	mmiotrace_printk
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd10b023c	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xd1201d4e	iput
+EXPORT_SYMBOL	 vmlinux 0xd1240dd1	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0xd12a6e5d	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd140c153	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xd14127f2	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xd15c809a	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xd17264f5	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xd1727a8a	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xd176a0ff	__bforget
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19bd2e1	__tracepoint_write_msr
+EXPORT_SYMBOL	 vmlinux 0xd1a2d0f3	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xd1a3aa51	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd1c3f527	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xd1d15f1b	uv_hub_info_version
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1ea6e75	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xd1f60a89	arch_io_free_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL	 vmlinux 0xd205fb42	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd23f03bf	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd249e08a	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd26cc8c8	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27cf12b	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xd2b576e5	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xd2caf408	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2de34b5	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd311e01f	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xd312524e	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xd317f09e	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xd31b4316	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xd33e143c	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xd34a3e40	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd365eeb3	key_move
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd36e73e8	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xd37de552	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xd3803096	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xd38ba283	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xd38cd261	__default_kernel_pte_mask
+EXPORT_SYMBOL	 vmlinux 0xd3966c7f	vga_put
+EXPORT_SYMBOL	 vmlinux 0xd3991bc2	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xd3a3dd03	release_sock
+EXPORT_SYMBOL	 vmlinux 0xd3a57ee7	param_get_int
+EXPORT_SYMBOL	 vmlinux 0xd3adf8da	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0xd3be237b	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0xd3c53320	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd40037a5	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd42d7a28	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xd4582d08	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd47b7d1a	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48f0823	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xd4912c03	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xd492afa5	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4b02ddb	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4cb784f	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd509c058	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd533a491	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd549d8a2	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0xd55524b7	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xd555b40e	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xd56a0a33	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xd56e9203	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xd58892db	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xd58c7287	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xd59858ca	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5c54b28	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xd5cd3e7a	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xd5d1ef61	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xd5d1f76f	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xd5f45f0c	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd6067eed	init_net
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd63042b1	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd65270d5	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xd65a480e	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xd65c1de8	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0xd67ef4a9	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xd6840b4c	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd6896829	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6b2ed5f	generate_pm_trace
+EXPORT_SYMBOL	 vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xd6c40142	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6dc6505	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xd6def0cf	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ed37ad	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd71ce18e	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xd732ea78	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd751a2bf	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0xd7760084	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xd7772f4f	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xd77f2925	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0xd7a2e11b	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd7b507bc	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xd7bbeb07	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xd7d084ab	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d450f3	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xd7d8473c	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0xd7deb156	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7fd9475	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xd82d5347	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xd846c315	acpi_write_bit_register
+EXPORT_SYMBOL	 vmlinux 0xd84bfa12	can_nice
+EXPORT_SYMBOL	 vmlinux 0xd854a2dd	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd8625edd	set_trace_device
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8c4d45e	free_task
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd8f5ac49	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xd8f885db	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd9006be8	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xd9174265	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd935f8cd	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0xd945d10d	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd94ac952	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0xd94c16ba	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xd94dcbb2	vga_con
+EXPORT_SYMBOL	 vmlinux 0xd9565ba7	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xd95b3d09	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xd9709fb6	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xd971c6c4	xen_arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0xd979a547	__x86_indirect_thunk_rdi
+EXPORT_SYMBOL	 vmlinux 0xd9813ba0	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9acc90c	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9bac014	amd_iommu_device_info
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e2e436	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xd9e3bc41	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xda0d59cd	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xda139360	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xda1ddef1	acpi_mark_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0xda2739f3	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xda299713	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xda29b986	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xda2f5a3d	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4515cf	vmap
+EXPORT_SYMBOL	 vmlinux 0xda50de31	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xda58a152	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda98968b	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xda9e46fa	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaa0a61b	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0xdaac1ad8	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdacaf746	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0xdacd10ac	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0xdacf4db8	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdb16b170	topology_phys_to_logical_pkg
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb503438	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbf21278	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xdc012296	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xdc01f49d	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc182ed9	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xdc3279bd	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xdc344f52	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc4fb205	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5736d5	acpi_register_ioapic
+EXPORT_SYMBOL	 vmlinux 0xdc595427	seq_puts
+EXPORT_SYMBOL	 vmlinux 0xdc7f50bd	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0xdc880f03	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0xdc9942fb	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xdc9f99be	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xdcac07da	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xdcb25b47	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xdcb6c7da	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xdcc1564a	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xdcca19ef	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xdcd0de97	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xdcdd3d46	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0xdce25e07	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xdcfd0e44	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xdd01c848	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd243679	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0xdd2a32d4	current_time
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd7dc444	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd8c8ee0	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xdd9d1d5f	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xdda40160	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xdda994ac	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddb0be71	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0xddcbe1f3	acpi_ut_value_exit
+EXPORT_SYMBOL	 vmlinux 0xddd465e8	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0xde0e116c	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde4eeab5	__register_nmi_handler
+EXPORT_SYMBOL	 vmlinux 0xde6081f3	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0xde788da8	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xde8285bf	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xde8b4dce	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdea9ae98	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee16371	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef501c2	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf2b5bb5	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf34014b	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xdf365ca9	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf4e44cd	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xdf510d8f	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf566a59	__x86_indirect_thunk_r9
+EXPORT_SYMBOL	 vmlinux 0xdf5a1867	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf7f1b75	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xdf8ad0b2	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf8d781f	acpi_update_all_gpes
+EXPORT_SYMBOL	 vmlinux 0xdf905451	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf9d4b1f	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xdfa9af5b	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfbcb495	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfd9abb5	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe8d1e6	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc4a63	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe00c09ee	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe0162ba3	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xe0179f34	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe01e5de0	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xe0263904	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe0334fd0	path_put
+EXPORT_SYMBOL	 vmlinux 0xe033cb29	native_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe048afcb	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0xe05f463e	has_capability
+EXPORT_SYMBOL	 vmlinux 0xe070e92a	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xe07539f6	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xe07c0092	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0a64a73	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0ba81f9	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xe0c2bd7f	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xe0e344f7	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0f89817	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xe10f67ab	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xe1135c62	get_dev_data
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe117b0fc	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe13348be	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xe1338f49	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13a11a8	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe1616290	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xe16bfd94	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xe183fc27	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xe19eb637	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xe1a3a50c	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1ad6ebc	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xe1c29b5d	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1ded082	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe1f5235f	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xe205be5e	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2372f26	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xe23860ed	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xe238ff7b	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xe23d2f25	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe268de36	get_amd_iommu
+EXPORT_SYMBOL	 vmlinux 0xe27b3c79	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0xe293a986	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xe2a147f6	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xe2b5fe3c	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0xe2b79fbd	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe2be66bc	send_sig
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2dd98a1	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe331a002	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe345c92f	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xe34d18ab	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0xe350feac	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xe354aba1	padata_stop
+EXPORT_SYMBOL	 vmlinux 0xe3610294	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xe37d26d3	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xe38c98eb	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xe39a9587	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3a697c1	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3d857ea	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe3df68c4	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe3e1710c	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xe3e46f95	inet_release
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe3fffae9	__x86_indirect_thunk_rbp
+EXPORT_SYMBOL	 vmlinux 0xe4004761	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe40df67a	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xe414878f	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe4371b4d	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe46c1675	set_pages_array_wc
+EXPORT_SYMBOL	 vmlinux 0xe46f83cc	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xe4738093	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0xe4788586	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xe47b3cda	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe48a9a36	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xe4b5bde9	bio_split
+EXPORT_SYMBOL	 vmlinux 0xe4cdfa72	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d80bf4	acpi_enable
+EXPORT_SYMBOL	 vmlinux 0xe5053831	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xe51137c4	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xe512dffb	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xe523320d	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe524a1a5	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xe52ee733	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0xe539b480	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xe545f1e5	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe575edb6	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe597148f	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xe59d255d	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xe5a61cda	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5e6e873	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0xe5e8fac5	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xe5fa88e0	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xe60e04bb	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe61b227d	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xe62a5d4e	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xe62c21c0	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xe630c956	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xe639a9b3	block_write_end
+EXPORT_SYMBOL	 vmlinux 0xe64309ef	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xe6546afd	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xe67ede62	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xe68c4ceb	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6953bb7	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xe6a15bff	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xe6a244cb	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xe6bd8396	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xe6e988f7	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0xe6f7f14c	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xe7067d1f	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xe70877d4	acpi_remove_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xe71c95c2	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe753a664	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0xe7773f5d	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xe787698f	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xe78ee22a	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xe79e9550	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7b00dfb	__x86_indirect_thunk_r13
+EXPORT_SYMBOL	 vmlinux 0xe7b6627e	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d3d304	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7fd4d09	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xe7fe5ce0	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xe801a8f5	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xe81241a5	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xe828a619	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xe834a74d	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0xe8400c3c	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xe846ac30	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe87ef18d	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xe8dcd797	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xe8e23609	processors
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe8feba1d	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe916f51c	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xe9172452	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xe92277a2	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe9648a8e	sock_create
+EXPORT_SYMBOL	 vmlinux 0xe96f6e09	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xe9751806	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xe98a6fb7	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xe995928c	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xe9a5e67f	intel_graphics_stolen_res
+EXPORT_SYMBOL	 vmlinux 0xe9a8fe46	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xe9ada69b	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9ba733a	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xe9c5106e	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9ef94cd	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea16c77f	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0xea21ba83	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea30eb7f	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea3e8850	vga_switcheroo_lock_ddc
+EXPORT_SYMBOL	 vmlinux 0xea3f27ef	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xea4759fd	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xea511eee	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xea5a9e27	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0xea5f44f8	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea7f1b3a	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea956ed7	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xea9d8f65	skb_push
+EXPORT_SYMBOL	 vmlinux 0xeaa11d6e	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xeaa379b4	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xeab01cbd	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeabb884c	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xeac50257	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL	 vmlinux 0xeadaed4e	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeaf8ef11	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xeb0d86dd	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb2e4c04	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xeb31aee8	acpi_trace_point
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3840d9	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xeb3ee42f	bmap
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb59e8c3	native_load_gs_index
+EXPORT_SYMBOL	 vmlinux 0xeb5ca95c	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0xeb5df15c	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xeb7150b2	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb8b1820	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xeb964d9e	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0xeb9e14ec	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba22170	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xebaff89e	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xebb9f0f5	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xebbeebbf	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xebf5d2c1	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec0b09b3	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0xec0dbcf7	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xec1ad2cd	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec445c1b	module_put
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec511245	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xecac8407	__memcpy
+EXPORT_SYMBOL	 vmlinux 0xecb2d8ae	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xeccb93d6	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xecd04271	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xecdde88a	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xece22052	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed0a2e49	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0xed1853de	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xed34ebbc	acpi_any_gpe_status_set
+EXPORT_SYMBOL	 vmlinux 0xed3e309b	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed5bb99c	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedd52af7	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xedd5fb96	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xedf41f4c	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee3248d5	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xee351fc3	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xee4b6e4d	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xee547a52	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee7a41a9	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee7ebefd	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xee85e2fd	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xee86bd09	cpu_info
+EXPORT_SYMBOL	 vmlinux 0xee89ffb1	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee92337a	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0xee942828	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xee9a8a1c	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xeeae4e7d	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xeeb673d4	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xeebe7566	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xeec0577a	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xeed24fbf	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xeee3e886	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0xeef09dd3	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xeef1c127	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xeef8516d	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xef1735c6	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xef40a405	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0xef53e147	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xef638669	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xef74c8e6	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0xef7767ab	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xef82cab8	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefb6c9ec	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf0165e04	seq_path
+EXPORT_SYMBOL	 vmlinux 0xf01a0ad3	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0xf02aea86	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0xf030c7ed	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xf034fbfb	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xf039960f	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xf03cb531	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xf03dfc62	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xf03e091c	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xf03f81cf	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xf055cae4	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xf05c32ad	rdmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf06d4ee5	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0baee9c	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xf0cacae4	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xf0d8968e	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xf0e62fad	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf1305cb4	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xf138490f	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf1848ee2	acpi_install_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xf185264a	filp_open
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a6150c	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xf1a68107	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf1aa83c9	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xf1b047c2	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xf1d9ae4e	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e1e261	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf211d3ae	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xf214edc0	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22d63c1	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0xf2373462	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2499a4c	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf2755df5	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2b81b64	arch_io_reserve_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xf2beafd6	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c5e600	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0xf2d39431	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e87ea0	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xf2fd28ce	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf2fff24a	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xf301a4ef	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xf30965ac	iosf_mbi_register_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xf313316b	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf318a6ac	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf33449c8	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xf33636f3	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf36c4c1e	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xf380c0fd	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3a66872	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xf3ac05a2	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b4fc9b	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xf3b815c1	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xf3cffdb9	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xf3d0bf7d	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3e87e9e	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xf401077e	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xf4025bf2	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf40f8c21	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xf41002b7	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xf428d60d	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xf4334457	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf44380ae	ppp_input
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf4a42d76	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xf4a565fd	wrmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4bc1d4a	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c76a01	start_tty
+EXPORT_SYMBOL	 vmlinux 0xf4d69b0e	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf50ad031	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xf51cdf4e	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xf53a2ce0	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5488eab	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xf5527a20	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xf56f2792	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xf5816c72	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0xf591753d	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a5c84c	msrs_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5bb7b3b	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5ecc4d7	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0xf5eda937	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0xf5f33aa7	amd_iommu_enable_device_erratum
+EXPORT_SYMBOL	 vmlinux 0xf6014361	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xf60ab926	acpi_get_event_status
+EXPORT_SYMBOL	 vmlinux 0xf60d1d36	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf647d31f	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xf654c347	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf680183c	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf6876705	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf6898a0f	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xf696585c	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0xf6a01392	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0xf6ab7f0a	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xf6cf38e1	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xf6cf5fa4	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xf6cfe643	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0xf6de9aa9	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f94a75	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf74e33f2	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76073b7	amd_iommu_domain_clear_gcr3
+EXPORT_SYMBOL	 vmlinux 0xf765f87c	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf7756a9b	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xf77a1929	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xf786d7c8	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xf78eeeeb	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xf79ca3bb	acpi_remove_gpe_block
+EXPORT_SYMBOL	 vmlinux 0xf7a843ec	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xf7a84faa	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xf7c6a945	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xf7e214bf	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xf7e2ac3d	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xf7ef9a79	iosf_mbi_punit_release
+EXPORT_SYMBOL	 vmlinux 0xf7f804dc	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xf8093a55	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xf80be44e	rdmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf81a486c	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf82f5a8c	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xf83751f3	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xf8386d97	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0xf83f9402	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf85173f8	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf86c583f	iget_locked
+EXPORT_SYMBOL	 vmlinux 0xf871f3db	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf87f35fb	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf8930493	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xf89f7b50	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8ba3003	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8cf0602	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8f6fcb4	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xf90169a9	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xf90ab6b1	stream_open
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf9180537	path_get
+EXPORT_SYMBOL	 vmlinux 0xf9194c9a	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xf919f8d4	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xf922f693	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xf92f53b8	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xf9311c6c	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf946098c	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf98329b4	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xf9919055	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xf9938b81	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xf9a361c1	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0xf9a39519	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9a6133d	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xf9a8b116	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xf9b497b9	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xf9b94327	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9cee157	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xf9e1e010	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xfa08eeb0	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa198a3c	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0xfa247930	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa3b01d3	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xfa3d0da9	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa78a80a	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xfa844be9	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa91e6d6	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xfaa1fdf7	__tracepoint_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xfac5f192	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfad3211c	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0xfaefc11f	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xfb0d71a8	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xfb10d054	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0xfb251b8d	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xfb27764b	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xfb359faf	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xfb382f04	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb4c2485	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xfb578fc5	memset
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6b8c56	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xfb6f82f9	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfb9b7be2	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xfba0feb8	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb355f7	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfbf8ad79	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0xfc068b21	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xfc22736a	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39bd38	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc4becac	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xfc4f3b8b	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc62f3db	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xfc6722a3	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xfc6a1ba9	sk_free
+EXPORT_SYMBOL	 vmlinux 0xfc7ae83a	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc890344	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc9c2251	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xfca1b538	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfce4f384	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcf43ed0	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xfd06267b	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xfd09474c	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xfd1637b2	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0xfd16c481	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd7dbe94	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0xfd8853e3	dput
+EXPORT_SYMBOL	 vmlinux 0xfd93ee35	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfd99045c	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0xfd9f634d	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb6576f	acpi_set_debugger_thread_id
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdd2fb3b	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdd8fb48	pci_biosrom_size
+EXPORT_SYMBOL	 vmlinux 0xfde51b9c	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xfdfb792f	amd_iommu_pc_supported
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe356831	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xfe3c5ca0	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe68031b	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xfe6d5afb	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xfe76ed92	init_task
+EXPORT_SYMBOL	 vmlinux 0xfe7b33ff	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0xfe8680da	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe93ea46	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0xfe984849	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0xfe9dac8f	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfead205e	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee7c6cb	seq_read
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef57923	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff22d2d0	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xff306a4b	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xff3c1692	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xff51c48b	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xff5a48d8	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff7b38fe	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffbe8254	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xffc2ead9	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xffc2eb74	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xffc30c3a	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL	 vmlinux 0xffcd7f49	iosf_mbi_punit_acquire
+EXPORT_SYMBOL	 vmlinux 0xffd26f0e	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xffdb4e23	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xffe36474	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xffec804b	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff750d1	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xffffefea	mmc_set_blocklen
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x0ac98858	camellia_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x110a5ea5	camellia_ecb_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x187244da	camellia_xts_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x19ea0a50	camellia_xts_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x4697c03b	xts_camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x701dafab	camellia_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x95625eb9	camellia_ctr_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x9ba73d8e	camellia_ecb_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xbdb3b1d4	camellia_cbc_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x076da75a	camellia_crypt_ctr_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x17d1814f	camellia_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x410e0fb4	camellia_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x62cbf7ba	__camellia_enc_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x69211153	camellia_dec_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x7a1d58de	camellia_decrypt_cbc_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xb53cc66b	__camellia_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xc5e3cec8	__camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x08950a28	glue_xts_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x1acc3c98	glue_cbc_encrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x8bc8df97	glue_ecb_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xb814f25f	glue_ctr_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xc1f8bbfe	glue_xts_crypt_128bit_one
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xff1f9422	glue_cbc_decrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x020a243c	serpent_xts_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x19ee8473	xts_serpent_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x1c871146	__serpent_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x36389d2e	serpent_cbc_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x3f20a4a9	serpent_ecb_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x92dded8c	serpent_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xb2dcc1fa	serpent_ecb_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc59d1a0a	serpent_xts_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc9c39aed	serpent_ctr_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xe809ca7f	serpent_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x1f491d36	twofish_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x7c7bf6e0	twofish_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x4c995a89	__twofish_enc_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x8cccec5b	twofish_dec_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x9dfb11d8	twofish_enc_blk_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xd859828c	twofish_enc_blk_ctr_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xe3784eb9	twofish_dec_blk_cbc_3way
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0344669f	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x03850a21	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x049c95e0	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0589e779	kvm_mmu_slot_leaf_clear_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0639e340	kvm_page_track_register_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0893d40b	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x08bb4709	kvm_hv_assist_page_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x09cbfbae	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0b65bb2e	kvm_vcpu_reload_apic_access_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0b72a5f1	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0b81468b	kvm_set_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d8f4740	kvm_mce_cap_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1014e9bf	kvm_emulate_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x10a1c5e5	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1235000a	kvm_tsc_scaling_ratio_frac_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1272b16e	kvm_vector_hashing_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x13491d60	kvm_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1585b765	kvm_mmu_slot_set_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15f5cf6a	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x18b6f973	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x18fc4053	x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cb2485e	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cf65ffc	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d013832	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d0ef92d	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db1c372	enable_vmware_backdoor
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1dbb02e1	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20747fd5	kvm_apic_write_nodecode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x21c5d806	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x22866cbd	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x255ee55e	kvm_skip_emulated_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x26de7b14	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28411ed7	kvm_max_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2a2855e7	kvm_get_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2a58a45a	kvm_get_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2aa3d0ec	kvm_mmu_free_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2b1069f6	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2bdb9b1b	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2c3fdf71	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2f1dd74d	kvm_spec_ctrl_valid_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x31762763	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x351c2d66	kvm_rdpmc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x35be5612	kvm_emulate_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3632b8fe	kvm_vcpu_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x36ad027b	kvm_lapic_reg_read
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a3026d4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a8b88b9	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b4babdb	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c17b423	kvm_lapic_switch_to_sw_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c19291c	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c8704d1	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc82f45	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d046f8c	reprogram_fixed_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d349620	kvm_lapic_find_highest_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e0637b8	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e08b8b0	kvm_handle_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3eca8bad	kvm_intr_is_single_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3eeea907	kvm_apic_match_dest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3fa3c0ce	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x40d942a9	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x425ba3df	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x42e06a0c	kvm_mmu_unload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x435c577e	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x43819ba2	kvm_requeue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x445d0864	kvm_get_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x44932666	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x45d069ce	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x463535f6	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x487172c9	kvm_mmu_new_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x48e828c2	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4a4c8ed3	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4b8a7665	kvm_hv_get_assist_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4c3c2ca5	kvm_mmu_invpcid_gva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4eeac65f	kvm_fast_pio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4feb81eb	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x52ff0248	reprogram_gp_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x533c60d7	kvm_set_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x555ea1e9	kvm_apic_set_eoi_accelerated
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x561d023a	kvm_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x566356ee	kvm_mmu_clear_dirty_pt_masked
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x566ee497	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x598e8a17	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5aeaaabf	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b2bcc15	kvm_mmu_sync_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b5b44da	current_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5bbdcb36	kvm_inject_nmi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x60d51590	kvm_arch_no_poll
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6243ac82	__kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63270977	kvm_default_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x652688b3	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65ece2a2	__tracepoint_kvm_fast_mmio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66c4423a	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x67405fe1	reprogram_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6755384b	kvm_set_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x677d736f	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68f54e0f	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ad7b156	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ada8f59	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6d520fca	kvm_emulate_wrmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6d7a6d35	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x70a59bb5	kvm_x86_ops
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x72863b8d	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x728bc5f2	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7327c645	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7763a671	__tracepoint_kvm_nested_vmenter_failed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7a0796af	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7af52fb6	__x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7bb91c9a	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7bfede57	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7e266d62	kvm_init_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f748ba0	kvm_mmu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x80c5b5c0	kvm_scale_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8406fe6c	load_pdptrs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8489a9df	kvm_task_switch
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x849344cc	__tracepoint_kvm_pml_full
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x864d8d20	cpuid_query_maxphyaddr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x867690a7	__tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86931b5d	__tracepoint_kvm_avic_incomplete_ipi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8742f625	kvm_lapic_switch_to_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x879f9972	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x87a98741	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8809304c	kvm_vcpu_is_reset_bsp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888c9405	kvm_set_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888d979f	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x893404e9	kvm_can_post_timer_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8a831faa	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8b7ed8e1	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8de5f20c	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8e479af3	kvm_lapic_reg_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x902fe74c	kvm_require_cpl
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x91d4d992	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x92440fd5	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x937aeb49	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94abbd88	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9504fa51	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x95f7348e	kvm_get_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96dbe382	kvm_mpx_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x98489ee3	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9c856029	kvm_arch_register_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa0b30379	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa0ee5e24	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa14e65a5	kvm_emulate_rdmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa15f8b15	kvm_get_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa46350c4	kvm_read_l1_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa55c75ac	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa66177ae	kvm_mmu_unprotect_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa72f37c1	kvm_emulate_instruction_from_buffer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa8702e31	kvm_load_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa8b18408	kvm_set_xcr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa975020d	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xac2c0c42	kvm_put_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xad4307a4	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xafdbec6f	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xafe4c9c4	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb097e540	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb146d852	kvm_set_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb1f29d1a	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb2c0181f	kvm_require_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb3499b72	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb38962d0	kvm_get_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb72c1643	kvm_arch_unregister_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xba64d965	kvm_queue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbe7f85ec	kvm_valid_efer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbf0be10a	kvm_set_cr4
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbfc61ecf	__tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc0839cbf	kvm_set_msi_irq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc13f4f1b	reset_shadow_zero_bits_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1d769b7	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc5f76338	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc73c90ec	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc818ae70	kvm_slot_page_track_remove_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc8758350	kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca3ab5ad	__tracepoint_kvm_ple_window_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcab0c0a4	__tracepoint_kvm_write_tsc_offset
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcb3bd2e7	kvm_deliver_exception_payload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcb8f98da	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbb10963	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbc12128	kvm_mtrr_get_guest_memory_type
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xce3ec378	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xce756c6f	kvm_mmu_slot_largepage_remove_write_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcf780af5	kvm_init_shadow_ept_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcfbf86b9	kvm_mtrr_valid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2082405	kvm_arch_has_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2b01547	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2d15791	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd3727c75	kvm_set_cr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd63dd0d7	kvm_page_track_unregister_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd6953003	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd7403205	kvm_lmsw
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd8ae2ac3	__tracepoint_kvm_pi_irte_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd92d11c9	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd96ed470	kvm_arch_has_assigned_device
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd9822e45	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xda390a15	kvm_lapic_expired_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdc11fdc9	kvm_arch_end_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd0f7fc1	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd9e7aeb	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xddfd4ae3	__kvm_request_immediate_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xde0bd144	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xde8ad354	kvm_get_apic_mode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe0fc69d7	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe16f3ba7	kvm_apic_update_ppr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3a2c92b	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3ccde2b	x86_fpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec06defc	__tracepoint_kvm_avic_unaccelerated_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec2630fc	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xed64ef59	kvm_wait_lapic_expire
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xee98da8f	kvm_set_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf061563c	pdptrs_changed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf0943ac9	kvm_lapic_hv_timer_in_use
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf23d2a58	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf296d5b9	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf47e3dba	kvm_no_apic_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf4cf7389	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf70cdc21	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf73342ed	kvm_arch_start_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf7c91510	kvm_write_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf929c3fe	kvm_get_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfa541ffc	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfab37f10	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfb5813b2	kvm_slot_page_track_add_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfb70e0a2	kvm_set_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfd957e02	handle_ud
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfdb3bf1a	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x00258c97	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x030ac690	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0cdc8e3b	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0de5ae46	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1981c0b5	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3d3be03c	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x43f3d967	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5c7e9b75	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x61723c11	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x636bd120	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x80dfee9f	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x897c5391	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa43dcaa9	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xaf778513	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xb5b2d342	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd6e334dd	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xde03149b	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf965a413	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xa4958b8e	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x039b67c1	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xbc86f6b7	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xe0062468	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x97477da0	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xdf37d3db	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x321d131c	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x3e27b04a	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x43ba5c51	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xd0bf045d	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x144fb61f	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x2ba013a6	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xb218dcb2	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xfacac845	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xffe4cc62	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/chacha_generic 0x260141b0	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x2ff24ba7	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x33c39e76	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xac159a08	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x04778dc4	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x25566fb9	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4b7cdb81	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4e3bdf03	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x706e9e41	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x788a4dbc	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x85a0c841	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8f08d317	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xacb50e56	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc0489382	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe8564f12	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf53bc62e	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfdab0aa1	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x20df9048	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x22d84fc5	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x269118d3	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3e8e2f49	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x65d64b81	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6894ab0e	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x848c0b34	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb72905a9	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc54bf5b0	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe93ee9c1	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf22ef078	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf26f0453	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfe5dc955	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfeb11765	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x1b8dd2dd	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x24b1d15d	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x552e2456	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x7c878e43	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x40bc91ab	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6800fe33	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6cc22cf1	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x708396f8	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x2b1aaf55	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x3f22585c	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xf3a3e041	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x35005d7d	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x00735f47	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x16bb1091	__acpi_nfit_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 0x55c64343	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x626bf7a5	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x8ae505e5	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x1c8984c7	acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x4f6c2360	acpi_smbus_read
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x87bd07bd	acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x96eb492d	acpi_smbus_write
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x09cbf34e	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1098d951	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x13d368c9	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1d066ef6	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x20be4f67	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x261956b7	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x34233e13	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3e528f9c	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x510bdc2f	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56468ebb	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56ce60ff	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x59789152	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6fceafc2	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7728a16e	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7d87b409	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x83094dd6	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x89c7ab9d	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x9eebc2ef	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb7831779	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd233bb5d	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xda659ad8	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe26c0691	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe44c020b	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xeb1eaf99	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1b7bee6b	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1f82c3f7	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x29630c3f	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x4386bc50	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x791f2074	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7df4f09d	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7ee84782	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa2e3cd23	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa9c20fb6	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xad401c73	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xae5cab6c	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7c878b9	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7e2bdaf	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcb9ac489	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcd0eaa8c	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xff264a8d	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x407399e0	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x02ff9464	cfag12864b_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x0ecb2e5d	cfag12864b_disable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x305dc3c6	cfag12864b_isenabled
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x3389f926	cfag12864b_enable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x9522a342	cfag12864b_getrate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0xc48e9d95	cfag12864b_buffer
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-i3c 0x90f078ac	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x0f8e8c0d	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x5442352f	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x1baf0356	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x251e0a48	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x3fc69ec9	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x5e4df485	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x65db298f	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x854eb651	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xb2f47983	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xc0ebc60f	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x118b3420	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1315f20f	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x25cdfd24	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2fc9625e	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3bf2b19e	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3d92fac7	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3f255401	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4b154d0e	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5e5b564c	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6b00ebd6	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6b996994	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x85eb8c6e	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x866d80af	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x89fc9606	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x973761e8	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa725b003	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb691615b	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb97a1211	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc12df7e7	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcb166237	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcf260b8c	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf1798c2b	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf58c1c9e	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf7c8f8d4	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x0f4b75b9	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x374e2263	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x761f06a0	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x93beacd0	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd0c8ecd0	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xec390ec5	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0df45e4c	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0ed9d37f	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1fe76d4f	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x21b549ac	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x22e19bcd	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x23a047d1	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x3a824b2e	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x40ebe826	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x581bf086	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x6f2da89c	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x7954914f	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb37a8037	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb40c3d74	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb77828b5	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb7bb7e82	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd3ddd04b	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf7be55bc	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x30152602	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x34ae69ca	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6b965ff5	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x75c46664	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7b66250c	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x92acd430	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x96cae440	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb6d4bbe0	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xcf2390e5	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xda2c5fa8	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xec24e208	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x26c0a355	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x2ec91600	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x507ff77e	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x6b152300	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x79c7badd	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x0142d2f9	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x5d9c84a7	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x792bb034	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xebba9bf9	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xf42d2740	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x30dddac0	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x37cd65d5	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xefddbec1	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xfa493abf	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0402f387	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x24e09ec3	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x544ac3fe	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x84d49156	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8aaae4cc	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8bfe20ff	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa32846ce	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb442c4b1	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbe283443	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xce3f3a7e	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd716a32a	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdd03ff31	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe2903a5d	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x2b67f096	speedstep_get_frequency
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0xd7ab2c0c	speedstep_detect_processor
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x288d6e43	sev_issue_cmd_external_user
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x2e6a6147	psp_copy_user_blob
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3e059f28	sev_guest_activate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x4073e924	sev_guest_deactivate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x843d6541	sev_guest_decommission
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8fac14a2	sev_guest_df_flush
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x91722dce	sev_platform_status
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xd02e197f	sev_platform_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xe1a92a7d	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0e77c5f5	adf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0ef7b1a0	adf_vf2pf_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0fbd1460	adf_cfg_dev_remove
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x13de2947	adf_send_admin_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x19381779	adf_cfg_section_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x21c869a8	adf_vf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2966144a	adf_init_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2c340eea	adf_devmgr_rm_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x42f46221	adf_dev_in_use
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x43acb995	adf_dev_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x4f8e8a2b	adf_dev_get
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6b52428b	adf_iov_putmsg
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6d9fc052	adf_enable_vf2pf_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x70bfb0b9	qat_crypto_dev_config
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x75adafd6	adf_enable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7608cde6	adf_reset_flr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7a51454a	adf_exit_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x806df556	adf_cfg_add_key_value_param
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x88da5188	adf_vf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8c0f6cd0	adf_devmgr_update_class_index
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x986f980a	adf_vf2pf_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa1a4f21c	adf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa1ed6f0b	adf_dev_started
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xaf2bee11	adf_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb5b9e3ec	adf_exit_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb7aa84f6	adf_sriov_configure
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbc151b21	adf_devmgr_in_reset
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbd552ead	adf_devmgr_add_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbe9f70df	adf_dev_put
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc1b6a6ba	adf_cfg_dev_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc719ba2e	adf_disable_sriov
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc7418831	adf_cleanup_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc8748f96	adf_init_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcc3b167a	adf_clean_vf_map
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xced8f9b7	adf_devmgr_pci_to_accel_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd9768196	adf_dev_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe05e49d8	adf_init_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xeba76d50	adf_reset_sbr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xebe7db4e	adf_disable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xf76c2726	adf_dev_start
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x7f83fb30	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0x7d79217e	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x01a33ab9	dca_unregister_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x0a82a2f4	alloc_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x1943a56a	unregister_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x2b45e499	dca_remove_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x2fc42645	dca_add_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x522d6ff9	dca3_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x88cff550	register_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xaa634427	dca_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xac34ecec	dca_register_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xdaa8140a	free_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x12915abe	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x699b0fef	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x0630747f	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x188d0c62	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x1b3fec86	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x227db14e	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3a7a1057	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x78504374	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xfe065577	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x7cabb7b1	hsu_dma_get_status
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x7e1816f8	hsu_dma_do_irq
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x9dfb6d68	hsu_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xd6d405b2	hsu_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x06bfcaa9	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xe61d65b2	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x09834a72	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x47d3364c	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x66b40510	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xa8cb7354	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xc8ea6abd	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/edac/amd64_edac_mod 0x33629ef8	amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x14878009	amd_report_gart_errors
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x1d34e996	pp_msgs
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x830c469f	amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0xaf761418	amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x7e6f54eb	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xd16bb085	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0147999e	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x18f8a409	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x243d7669	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x34f80d58	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x391c51c6	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x47278688	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x51e6a270	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x62058bf6	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x62babf29	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7723fe57	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x793d4c49	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8a3206cc	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x99915683	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb663ac55	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xba30161c	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbca2ac6a	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdbc691b3	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe432e2d6	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfb636ad8	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x08c9a979	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x25ff02d4	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x423b7274	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x69f372d2	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x7d92b980	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x9acecd0d	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xa8f66056	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb924c5b3	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc84dfab2	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd328d9e6	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd900323e	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xe3140f2a	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x296bd271	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2d3fa5d8	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x42149280	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x5681051a	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x64d74618	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6e6b0ad6	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x8a5d23f3	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9e867d2c	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xaf03978b	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc7239330	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xdf0b60fe	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xee2d81b8	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xeee7a5c4	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x07ef249a	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3875d35c	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x414b8d7f	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x4f1db0b4	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x584c3ec8	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb2fa43de	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xfb253a97	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x0ab183ba	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x19102bba	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x6051a3a4	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xaa64fac0	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xafc10f99	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x36ede572	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x3e0c8cd5	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x92333f6c	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xdd22fd46	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xeb76e1bb	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0xdbffd6e6	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x5573fa38	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x58fd8799	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0038d836	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x05d7d868	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0ea6a9c9	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x1151a466	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x14124dac	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2c284ce0	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3b081a0c	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4a047053	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x607a6b94	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7f58040e	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9b25c467	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9f808f9e	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa802fc2b	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb1cb3b1f	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb74bda82	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbe073662	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc20ef87b	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc8b4b175	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd298512c	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdfc24e0b	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe2f2cdb4	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe33b3571	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xed967c24	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf76c4f9b	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfd27c1bd	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2d1f0216	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3a6daee1	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3c3e5c03	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x4bf16069	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x551010f8	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x64584343	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf23c70de	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x05876c69	i915_gpu_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x08a7896d	i915_gpu_raise
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x402468e9	i915_gpu_lower
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x438d1156	intel_gvt_register_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x500858b9	i915_read_mch_val
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x6fbc5503	intel_gvt_unregister_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe7237b0b	i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x4f62f878	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x72e6e61d	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xd245ced0	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x11f66b02	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x255a13ec	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2b0e7c27	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2fcf1b81	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3129ba5d	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3dd854a0	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x41594606	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x466f2bd9	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x48fa3726	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4b8aae4b	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4cc92ba7	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56b345b7	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x59d6985e	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5e502d53	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6506154a	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x650bfbe7	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6b0e1a04	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x74b75255	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7995cddc	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7da2fda5	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x84df5175	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8898c6db	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b9ae00b	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8fc50997	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9260639f	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x951c04ef	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9d6f4120	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa421d0e4	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa4ed15aa	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xba1c286b	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd2506fd3	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd9504d4c	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd99aa38b	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdcb9cc33	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe30d57b2	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf0bd8b96	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xffc08669	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0604a0ee	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x06c954fa	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x187e3f90	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x286e9f3d	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2d14ae5e	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x353db59a	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x362d386e	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3949850f	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x474622d1	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x48fa70c8	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4eb4b073	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x543188c0	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x55c4f7e5	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x628548db	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x69bb1d25	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6a526aa6	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6e371ff2	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x70e382e4	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x71396b0f	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x99290208	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9af6e7e0	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa1a7ce44	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa1e7b051	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa3134da6	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa9edbac2	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb1bc656c	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbe200d36	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc17287fe	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc584430c	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc879bf10	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd42fa220	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xde5347f2	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe8b2614c	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe94779d2	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xea3db8f0	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xea439ca2	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xeef8ef7c	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf0099bf0	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf09f46da	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf341aa96	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf4e0d3a6	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf711c9a7	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfd10737b	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xff49323d	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xd5813c8e	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0d4be973	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x2a42a663	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x419d0f02	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xcd11cd51	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xe7714286	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xec4df18a	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0f005adf	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x331a0c75	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x39647058	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8db9b101	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x9486c4e9	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa43f194c	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xb27bb104	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe9024bf4	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf8e45a39	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xb40f2ba4	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xf310a98e	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xdf85a2fc	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xeb65c772	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1ac6230b	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1b49e803	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1d2ca3ca	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x24ec4747	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x26a16bce	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2932c504	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2d6f8bf4	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7d6f2294	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7d73eec1	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8981e189	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8fd26002	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xa976de77	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xbf727bef	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc856d183	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc86bd69f	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc97210b2	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcd8a4c89	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x03b81c28	vmbus_sendpacket_pagebuffer
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x11df3292	vmbus_sendpacket_mpb_desc
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x17f64b26	vmbus_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x24033695	vmbus_open
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x31e2e77f	vmbus_free_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x329262c9	vmbus_recvpacket_raw
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x35a944e7	hv_ringbuffer_get_debuginfo
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x46a417ca	vmbus_proto_version
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b2210b8	vmbus_send_tl_connect_request
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x527b6bd0	vmbus_set_chn_rescind_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x5b330aca	vmbus_set_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6520b261	vmbus_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6c391d8c	vmbus_free_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6e9a1e3a	vmbus_hvsock_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x72a36ccd	vmbus_establish_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x74ba41da	vmbus_teardown_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x768ef865	__vmbus_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x7ba8b897	vmbus_connect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8fc8ce2b	vmbus_prep_negotiate_resp
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x98a02dc2	vmbus_are_subchannels_present
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x99a5e9c9	vmbus_setevent
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x9e9b5647	vmbus_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa1952214	vmbus_allocate_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa2c786a5	vmbus_connection
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa345fe92	hv_pkt_iter_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xba986aaa	hv_pkt_iter_first
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xc97123aa	vmbus_disconnect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xcd388c3b	__hv_pkt_iter_next
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xde57ae68	vmbus_set_sc_create_callback
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xd5d6e698	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xe7275dfa	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xea9597fe	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x04b9b3bb	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0ef946ab	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1c8537d2	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x21f3a425	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x38084f22	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x39a26d16	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x4491758a	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6bfb090c	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x72abb0fd	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x88245d71	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa84e1c6c	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb78f32a6	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd5761aa7	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdd11a75c	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe6d7daf2	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xeda2015f	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf0e1c0d0	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf593c406	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf63f7ae1	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x06fb45ac	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x22f0449d	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2bfa07e3	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x405b0fdc	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x4c138312	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc8e5dc1f	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd4979b5f	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xde56a5f8	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xef4a13ec	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x12a6cdc6	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x18d091f7	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xd5684084	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x2efc54fc	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x3fc7affe	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6324e988	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x65ee784a	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x801055cb	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa7104dfc	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb2078e48	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe626db07	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf368613e	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x1857f221	amd_mp2_unregister_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x208712a3	amd_mp2_rw_timeout
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x43a33b5f	amd_mp2_process_event
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x6f31857a	amd_mp2_register_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x72d104c0	amd_mp2_find_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xa543bf74	amd_mp2_bus_enable_set
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xb7ad7506	amd_mp2_rw
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-nforce2 0x58a37600	nforce2_smbus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x04636199	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x46aee278	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x4b5592ed	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xd1d435cd	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x44b3fde8	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x01d9a322	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0db04b75	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1e7e591d	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x212761be	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x37d7aa92	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3ca2fa5f	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x44f98204	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4e904934	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4edb2953	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4fa4c956	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x773a6993	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x776c1c3d	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x77744373	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x83c48ec6	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x86103f67	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x97c9afc0	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa4d7902c	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb128e8a4	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb240962c	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbbcd78e2	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xcb7ceeb4	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd0b2d543	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd4bbeef5	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd609114d	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf0fecb02	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x6d91e36a	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xb5b63f2a	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x1947fe06	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x3d65781c	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x837a2c81	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xf7b12c40	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x431886c2	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xb72ca994	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe6054d5d	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x120e8f44	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xb86674f3	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x143c657e	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x1c52d34e	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x2e92501c	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x35ca3d03	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3d66042a	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x53691174	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7099d103	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x830c50f9	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb68adbb1	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xee053b28	ad_sd_cleanup_buffer_and_trigger
+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 0x2afeb04b	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x74be7da7	iio_channel_cb_get_channels
+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 0xc8d07598	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3773d74b	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x628fb2ec	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xb61d45f1	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x0affe9fe	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x518e0151	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x5baf3d03	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x228a360c	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x35a09017	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x60295fd6	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9df61bdd	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xdd9c25c0	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xdf8dfb40	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe02ef650	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xec88d303	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xf63b95ff	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x184e68e6	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x20cdc3f5	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x55db79f7	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xc0403d50	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x166115b2	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x6de7cdad	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xbb144c5e	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x83b47d45	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x8cf6506d	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xf81b677c	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0841270a	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x09b54fe5	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x2f789b61	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x44cad74a	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x989d69a9	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbca11f7b	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbf98468f	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc4d4e98b	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc97b35dd	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xce48d354	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xde5e73d4	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xfb91a4a1	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xb2cf08c8	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x41529463	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x8c040824	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xdb00edcc	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x08b18ac8	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1a9af95b	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x24af87be	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x25522aa1	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2dc0e42f	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2e65a7d4	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x30642f9f	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x31513367	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x34c036ce	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3a77e4de	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3f58c1a5	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x40975dfc	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4415779b	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x45721c64	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4a871e97	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x52fe8086	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x55de1416	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5819d114	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5a0ec1ac	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5f6eef5a	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x61b637a1	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x663acf84	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x702f5cc6	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x70ab29af	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x779b93e5	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x86385253	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8b5a7f72	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8d2ab2d1	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8d9c6b3c	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9f249b8a	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab58dd3e	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xadcace27	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb0d0722e	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb6765c16	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb7785d19	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbe0b774a	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbff21cd2	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc9449963	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xce5b91ad	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd1150d76	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd33b2587	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd5238e8d	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd63d2e43	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xda648ae5	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe511fc16	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe89fee39	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf24afc68	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf576642f	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfb8fbf51	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfd68d4fc	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x2a93dd24	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x870b037a	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2817ece1	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x5e1e5801	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x86529437	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xe2818801	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf4984bfb	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf7253144	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xc7bdfe58	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x7afb122b	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xae7a1b8e	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x36ccc2b0	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x59d07b0e	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x698fe38e	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6b087b27	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7a07d8fd	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7d4f09dd	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8d2cd566	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x968a0c50	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb9421745	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc795ff7a	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc956125a	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xde68844a	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xea333578	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x1c83c816	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x6faee931	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xbca0981f	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x0e00440d	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x10f20a1a	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x479e8cb8	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x649b4bf1	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0584e708	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1e5e6e84	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1f06598b	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x313ecaf0	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0178f795	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x044e2de8	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x36fa97d8	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3fccda31	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4609f61d	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4b960da4	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5db7c4cc	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x663ccac7	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6ac1d6ef	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8aa3f683	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x971debd9	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb5cc5d01	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2d8f5653	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x48439386	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4d462244	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4f177c8c	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x93388e2a	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x953facfb	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb435842f	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd9b387f3	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe4e7da74	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf00d5908	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0a205e99	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3667d1a1	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6472ff6b	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6b528fef	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6e0231e3	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x7f21a118	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x859c71a2	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xcd75a1f8	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xe61a5fce	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x1c8036d9	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x25f0b8b1	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x2f8cc644	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x651a0d51	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x8be6fedd	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x91f36773	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x065a9806	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x1129440d	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x13e8bdfb	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x30aa5623	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x55b9fed7	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x80d6a990	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x9f236773	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb4b9f9a4	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc002fdf6	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe41c2fb7	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe642bd9a	lp55xx_deinit_device
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0a947a51	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x19a00bc4	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1d49e90e	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x261f688f	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x376dbd32	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3bdc9dae	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x51238e55	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x676eadaa	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x84abf802	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9dd8166b	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xaf0c7405	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc7f373f3	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd5e088d5	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xfa9a5002	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x03f65068	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0a068c3e	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2449a62c	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2c6972d8	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x62f3dee7	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x77d945cc	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7cd75790	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x884665cd	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8e131da4	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xaadce543	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xadb05971	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb5712526	dm_bio_detain
+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 0xbcb5f71d	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc84d5eb6	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xcc4d9e58	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdb1ee94b	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdd4cdb5e	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x48feb18a	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x14797cf3	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5edde0d6	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+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 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x7bc28519	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xa30fdf7c	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 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 0x404d3b40	dm_rh_dirty_log
+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 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 0xa1ef0172	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xb2e6ca10	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xe8507402	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf1a5a4f3	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfce864f5	dm_rh_delay
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf7468416	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x33b8c73c	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9af88910	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9cd96d09	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa6907ab7	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb4609976	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xbfc9be04	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc9b72bd7	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xdb393d84	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf302f322	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf521cd46	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x170c24c9	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x28ddc60b	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2a510d95	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x3c9319cc	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x74c6b40f	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8138c692	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8a52fa62	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0868d278	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0a7cc067	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x13d23e24	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x30f198df	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x3a4b3c1f	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x568ad27d	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6abe5e53	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7289673b	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x732ee15c	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x83d3153b	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xac02ad90	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc79421b1	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc8fe3dfb	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xccd07cec	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xd2328c84	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf020f6fb	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf120720c	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x05b05374	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x09cc2c9e	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e0a5c3e	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e818bbf	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x112dfe2d	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2fff19d6	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3520800d	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x56a2eae7	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x59281d65	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x59a88084	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5eafa241	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x72f06507	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x74257d41	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x76b6982a	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x98cd1df7	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9f3f7a53	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa231532f	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb21409b9	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc32bcf40	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcf573017	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd69437e1	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe669868d	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf13ecd6a	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf74adc14	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf85d805a	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x23bf64fb	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x4786de23	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x7b895800	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x6d6d2d1d	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x286abf63	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x04982def	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0ba262de	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0e682126	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x15e9ecf0	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3c26b283	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x559a6e7f	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5becaa85	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5c3e19a8	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x69b4430c	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x75ff3505	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x79bf69bb	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7c0eb8e2	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7d3877ff	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7f91bfb6	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8793eb3d	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x99dda541	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9c3b7c0c	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa6aeb514	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa80441be	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xae02ded1	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb217f3c8	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb9c604a9	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbc6c8501	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbfe6a988	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc004b633	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc7dd9d55	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd2848acd	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe946be3b	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe98a5fb2	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xee620a88	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfff207d0	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x1ab67bc9	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x9e5be30e	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xbb9e3f86	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xf8d7ebf2	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x38ee99eb	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0xa499f572	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0xc66c1b2f	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x6a2788ef	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x360845e7	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x2e8ecd4c	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xd10f52eb	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x0e630ef7	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x821ebb19	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0387e3a9	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0599a13b	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x05fd8499	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0f85f5c7	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0ff3bd9c	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1013e321	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1162c83c	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2470d1be	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2ac53d0c	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x48a99832	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4950a64c	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4a731e30	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4cae47bb	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4eaf1f79	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x50b7c958	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x53ee156a	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x54f25fcd	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5ae90282	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5b5b97e1	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x70370c5b	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7b718ed4	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7c93b34d	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x81998698	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x89b9e5c9	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8d7bd474	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x910d93f4	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x95daf1cd	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x96d9c3a9	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa2d0a3d0	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xacbb0b4a	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb44bd768	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb4863607	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb7708656	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb9454ba0	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbce619bc	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd8b195b6	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1d4197b	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1f5cfd0	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe28aecf0	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xecd46547	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee4f4cf1	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf24bf541	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4cfe525	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf519a921	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc356f40	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfcc9eb78	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xe5feefaa	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x049da291	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x1fa74687	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2b30b8ac	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x46ba3422	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x57949ac7	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5a54ebaa	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x98f63b2a	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x992738b5	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xafd0ce8e	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xaff328e8	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb9f4dad0	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc91b0dea	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xcb6cda70	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd30589fe	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdaedbafe	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdc0c5384	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe1199fad	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe73d93eb	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xfc0777fd	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x10fabd57	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x127aee50	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x18ba718d	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1afb266e	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1bc262da	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1fcf4abf	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3154fee0	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3186825c	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x45fa90b3	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x51a08f0d	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x62af90ec	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6dcc7738	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x77dcb1f0	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xad5e4764	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc5d7e7a5	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xced57682	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe2e1ab94	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf30f31f7	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xfd24f375	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x0eb4af75	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xa1447664	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xb248f238	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xcdd9f063	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xec31a3e2	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xed23ddab	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xee29bec2	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x3a78857f	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x5b75b51b	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x60c5322a	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xaa9f5758	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xe647d39b	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x3d68e3ce	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x48d27987	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5c6943a1	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x996906db	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xeabe9e9c	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf1346c52	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x38432619	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x7b0cd598	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x3ce47733	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x686f400b	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xaa4fac26	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xcd7348fa	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xd93a1934	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1736bcf0	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x20cefaa4	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x27b1ebd1	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x31c96625	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x37fac4d6	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x43e64cef	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6102d6a4	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x674d10be	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7abc882f	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7b2fb2d2	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x84649d47	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8e34ddf4	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9d7b9567	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb1708501	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd9fb8def	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe18b9ff2	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe3b3dc39	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xfa073e4a	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x95e05db8	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xb5c62813	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x2b5d7f62	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x6971083f	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x1c5dcee5	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x3b75215f	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x7cef0323	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xef2d80a3	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xedfbb20b	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x20bbe6ca	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x8ef09d5f	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xa053a4ef	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xc6771cb3	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x0b1f7fbb	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x013ca89f	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1c09009c	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4119adbf	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x669869a9	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6ecf5619	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6f968693	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7812b456	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x871e6c05	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x8ce74d55	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa314b78c	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa3596474	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb1ef87d2	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb9848cde	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc4781caa	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc6bd50fb	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcdf79c1a	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd7c5ef59	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe93f506f	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf7ea225d	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfe004d55	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x2800358d	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x1a32bdc4	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x18683802	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1eea95a4	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2ddf78a2	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x30fec603	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x45ac96ae	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x54216e8b	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5952656d	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x69f922fd	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x72235846	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7b3d2ea5	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7de9d911	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9f2b0100	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xac79f282	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb09eb679	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb13a9d1d	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe60dac1f	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf25bedf4	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xfa000e2b	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x1e839a9d	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x5058e98d	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x6372eadc	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdca6091b	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x023a95fd	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x9150ff17	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xf12e2d23	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0a8ae2ea	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1bd81eab	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x591e06a0	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x6cf74b07	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7d57696a	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x80e12a10	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xc1bc417b	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd752aaf7	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xf96134a1	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xffa48c54	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1245aae9	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x140aeac6	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x267e5f9d	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2892f5d6	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x387e1088	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x42a5bf63	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4fa4ee1d	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x58f423d6	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5a5ce318	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5b608b68	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6741eafc	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7199bcab	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x80ba7c89	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x83ad2a2b	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x87fa7015	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x90e4c787	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x924a17c1	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x99d2c5f0	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa1f9f565	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xabf64c72	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb2f76a3f	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbe4a8bc4	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc630bc9d	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc9aa20bb	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd9d13f6a	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdd54e0e3	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xde004613	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe30fc06a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe393a75e	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xea019d13	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xeb8527ff	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf3f641eb	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf63e8e21	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfab35bb0	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xffb2e8cd	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x031dbd3c	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x124e4488	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2cdf11b1	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2cf03a50	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2ddbab0e	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3da141e2	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x52d75b03	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5bad8e0d	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x604f9615	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x621a97e1	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7f4f59df	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x80b43bc3	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x83b6b98a	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8494a953	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9e51ad12	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa0b08a67	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa428a0af	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb48ba25a	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd81c023b	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdf375a8e	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe91ec1f9	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xecf9872b	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf5363d6a	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf85deb66	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x29135749	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x30c070ea	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x49c6431a	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x5a3a29a1	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x00025b29	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x75537828	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc9b4be21	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x02f547d4	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x03def322	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x077c57f0	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x083ea7de	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0c941430	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11df593d	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x17b3212c	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x19d306f3	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1e870a4a	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x20636409	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x22e7e770	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2379c407	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x24663706	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28477a19	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x287347d1	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2b8edf23	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2e39ea5a	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3605a48d	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x388f1b59	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3d7e8563	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3e2944f8	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x402e297d	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x488e6630	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d87244	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5303ac51	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x53c0176a	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x54b2b864	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x63289b1c	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x686985cc	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6d5b12eb	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7a99e8b6	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x838f34c8	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x86f5d26b	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8aaad5d1	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8e4b813b	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x90b6fb53	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x91838a3f	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x926b64f5	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x985354c5	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ccd33fe	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ff3948b	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa33b32d1	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xba9ac822	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc64fca87	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc73f4f2f	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcab70cbb	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd4d73671	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd65542f2	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe4983b9f	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe9d7a538	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeb706b19	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf3c5faeb	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf8e007ad	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfd7f81c4	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x10bb2529	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x8ee217b9	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xff566447	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x008ee097	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x1b33dd2d	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x479bad56	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x5cec3e5b	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xa2561a95	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb7fcadf3	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xd213e7d7	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x5fb22906	intel_lpss_suspend
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xa74bdaba	intel_lpss_remove
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xc21cefc2	intel_lpss_prepare
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xd0115bf2	intel_lpss_resume
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xfe348c7c	intel_lpss_probe
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x171ead83	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x27358137	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x3303d813	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x5811eda9	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x616c7b43	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x91be3dbf	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xa6aa4b00	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbaa9cf09	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x26c9861e	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf3c5af42	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf53f0908	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x708948b9	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x79112e33	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x88f1ef5b	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x89feed4f	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x96a9e713	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x9d42e0d5	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb5212981	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x60718ca9	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x75a3fcd3	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x9117693e	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x12d001fe	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1e90ddba	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2710dd53	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x271d0113	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x52c81a20	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5785c38f	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5f5ebd39	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x6425c05f	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x64281c1f	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8441865b	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x844c5a1b	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8c6663b8	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9c94f1eb	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9c992dab	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xadaccac4	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaee66a93	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaeebb6d3	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb3c09da6	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb3cd41e6	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbb530ec6	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc7749b57	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc7794717	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdfa1ece7	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdfac30a7	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xedd3779f	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xeddeabdf	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf0f580aa	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf0f85cea	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x0c352cb2	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x2211abf4	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x301e5e9c	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x58aec2a9	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x70a415bc	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x7dfba174	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x09f86458	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x0f60bc8a	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2464f3c0	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2a1de52f	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x355937e6	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4f20f2ba	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xba4a06ee	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xc1ffc7c3	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd0b95f71	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdeb2ffe7	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xed463a00	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xc04d4c94	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xf7d949e0	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x420c9412	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x81aef5ae	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xacd6901a	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xbe989fff	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xeee1db17	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xf02f94f0	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/si476x-core 0x0a212071	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0e5ab054	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1423d39c	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x15fd9d67	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x20b8720a	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x258a2b80	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4dda4abe	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x56ce5cf1	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x58a00703	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x60769ba3	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x68ff3998	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x72fc40b4	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7a1342b9	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x80857c79	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8be6f841	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x936b35e4	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9f49290c	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa6d12a8d	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa819cd6e	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaac8b533	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb44d4742	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbacdbc38	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbc1f4230	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc172ea87	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc81d8aed	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd016fd6b	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd2cc61fe	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdd139c5f	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe691ca9b	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xee06568a	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf0bde17f	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf18598ef	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf1a88815	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xff263437	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x1af35bbd	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x373c1417	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x507af657	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x591f13f0	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x59d3cb26	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x9582001c	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xae922c3b	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xb37cb727	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xbe8e9eb1	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x7ddbc8c8	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x24a22393	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x3423a008	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x87721af4	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa6140e5f	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xc6e8ed91	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xcb6d15a5	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xde65debf	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0df5b060	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x12f6b693	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1784667d	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1b552c43	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x288da9a4	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2d11bd85	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x34896f5e	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3dc3590b	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x473540b6	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5529bd7b	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5c177922	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5ea27928	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x71d0d5ec	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x77f3dc7b	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8b777f96	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9368297d	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x950ccfb8	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x96364308	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9b91e679	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa11e162b	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa16c57d6	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa41a9804	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd6a08fb1	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf10f4ba7	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0e414cc7	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x39562752	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3bc638d0	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3dbdc891	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6b7ab69c	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x77cbda50	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8348a87d	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9eb17f7b	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9f6e3321	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa4c832bf	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xdd7a6533	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf063fb7c	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf52cc954	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x2482e839	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x8df2a909	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x939c28a8	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xca42d9c3	cb710_sg_dwiter_read_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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x139a64bc	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1a016aa1	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3605a436	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3fe08e17	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x95b95fa1	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa61c5be8	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xcf12702c	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xde3641d7	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x42402ce4	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x83084949	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x9239258f	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x93bc4279	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa507e0f6	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xae028bec	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xce917b9b	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xd526a356	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0112153a	mei_irq_read_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0218fcb1	mei_hbm_pg
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x04a3ae2e	mei_cldev_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0b6fea65	mei_cldev_uuid
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x22456684	mei_cldev_register_rx_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x24d04253	mei_cancel_work
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x25ed55e6	mei_stop
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x2851d49b	mei_irq_compl_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x297037ee	mei_start
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x394cbaf2	mei_cldev_recv_nonblock
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x63839ce9	mei_cldev_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6839957a	mei_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x71c9fc29	mei_cldev_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7f70ceba	mei_cldev_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x90a24af4	mei_fw_status2str
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xad383b87	mei_cldev_enabled
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb1ad7e7f	mei_cldev_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb1b46c36	mei_deregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb367d2b4	mei_hbm_pg_resume
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xc25d0c8f	mei_cldev_register_notif_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xced86a05	mei_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd6c2ffca	__mei_cldev_driver_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xda2be508	mei_write_is_idle
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe36174c6	mei_cldev_ver
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe68e0533	mei_cldev_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xeb734877	mei_irq_write_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xeb7f955c	mei_cldev_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xf5ae04b9	mei_restart
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xfba6217d	mei_device_init
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x60d0ca93	cosm_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x643ad944	cosm_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x8c307591	cosm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf562b585	cosm_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf9daeae5	cosm_find_cdev_by_id
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x33d2a869	mbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x65d6fa22	mbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xec5816d0	mbus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xed6aa085	mbus_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x3149a5bb	scif_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x3858b01e	scif_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xbc35f697	scif_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xc5698aa1	scif_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x09c87181	vop_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x655e5cce	vop_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x89f92fb0	vop_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xef778180	vop_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x02beeaa6	scif_accept
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x06ab4819	scif_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x12f4c256	scif_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x2024cd6f	scif_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3cfc5447	scif_fence_signal
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3f9d5615	scif_put_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x419f1cc9	scif_close
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x489c3936	scif_register_pinned_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x56906b61	scif_client_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x5b47d553	scif_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x61b3c4e4	scif_vreadfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8f2fed3f	scif_get_node_ids
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x99450ca5	scif_open
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x997d1299	scif_listen
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x9cd7ca09	scif_get_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xaceebab6	scif_fence_mark
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xb9f63e04	scif_writeto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xc5360b12	scif_fence_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xcb2ba36b	scif_pin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd0283fd4	scif_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd69775b9	scif_readfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe372aeea	scif_unpin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xeba950b4	scif_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xef151ca3	scif_client_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xf268fbea	scif_bind
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xffa00244	scif_vwriteto
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x5b8bb699	gru_get_next_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x8dc51bdd	gru_create_message_queue
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x9c7283a1	gru_copy_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xd3d2bf04	gru_free_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xde08c325	gru_read_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xeed7d505	gru_send_message_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x1018eee0	xp_restrict_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x12333991	xpc_set_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x345c9217	xpc_disconnect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x39046c7a	xpc_clear_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x48e62c9f	xp_region_size
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x6285dfe8	xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x64ba5017	xp_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68d27065	xp_expand_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68fa7d28	xp_remote_memcpy
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x7d5ba9a9	xpc_registrations
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xc04c7267	xpc_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xe68acd6c	xpc_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xead4f7fe	xp_max_npartitions
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xed1d3813	xp_socket_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xf3b47f67	xp_partition_id
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x024d14bc	vmci_qpair_produce_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x046dd187	vmci_datagram_create_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x056837fb	vmci_get_context_id
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x1fd4782d	vmci_qpair_get_produce_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x2449459d	vmci_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a22fa8a	vmci_datagram_destroy_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b	vmci_qpair_peek
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5591b58e	vmci_context_get_priv_flags
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5e949e0a	vmci_doorbell_destroy
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae	vmci_qpair_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x676bd843	vmci_qpair_consume_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x75fe065a	vmci_send_datagram
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7c74d7a6	vmci_qpair_consume_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef	vmci_qpair_dequeue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x93a7545b	vmci_qpair_dequev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x990fae46	vmci_qpair_enquev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xb572e830	vmci_doorbell_create
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbad935b6	vmci_qpair_peekv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbcb85f62	vmci_doorbell_notify
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc04c7e84	vmci_qpair_get_consume_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc403cafe	vmci_is_context_owner
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xde3abc2e	vmci_datagram_create_handle_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe0cc9c92	vmci_qpair_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe11895c1	vmci_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1	vmci_qpair_enqueue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea143610	vmci_datagram_send
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea61eefe	vmci_qpair_produce_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x069f2a8d	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x07d42747	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0c914c68	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0fcdc6d3	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x107e8709	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x159a12e8	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x16fd6cd8	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1b0e4d58	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x22b036e4	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x26c135f2	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2bb63816	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x361e6102	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3b912bad	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4544bc2b	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x47355a9b	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x55dd3324	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5e23b95d	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x60fa0c35	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x64721aaf	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7739cfbd	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7c024629	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8198308b	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x865d76aa	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9465a04b	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa42ea071	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xaa301313	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb2f642c5	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb7126104	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb9043bdc	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbbc4ffb1	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbc3e2e7a	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbcfa17b5	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbfdc52d6	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd1af69b1	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd7a8606f	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe591b5af	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf492a6fe	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfa9a7538	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfda03982	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14327482	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14d35e73	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x5503b5e9	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x6ddbf83b	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x8861ebe1	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x8f89c111	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb4696c46	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xccf8c01f	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf9e37f0c	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x1d5c289a	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x22750d72	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xe0420d0c	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x02c8ba6e	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x7c9af1be	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xf13175e8	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x930fdce9	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xb8fd5544	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xd422da70	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xff39cf1f	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x3b0f37b3	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x5393c5b8	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0599a314	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0fa02fd3	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x10728009	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x11396cc4	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x190318f5	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1c475495	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x237a2847	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2a5d8845	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3428f5d7	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x35177946	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x368ddcae	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3fdf1b53	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3ffb1e44	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4bcaaf6b	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4c407aec	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4cc16a3a	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4d535961	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5c3c3cf1	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6101afb0	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6175a201	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x68c44992	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7235f62a	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x729eae58	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x73b80365	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7dda0e83	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7e06a5dc	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8503b278	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x868ebf3e	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x878176ff	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8c840c97	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9165ccd2	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x95ed07d6	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x98430082	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9b122067	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa3936fda	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa78dd074	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa8d496fb	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb496411e	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb549cab7	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb921a85a	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbcd6d23f	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcc710cbf	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xce64d19a	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcffc253c	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd300670e	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xdc539fa6	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe24afa82	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe265a3b4	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe9b83808	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xeb530562	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xedbecd70	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf96e299d	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfc0f8ebf	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x13aedbb3	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x47793b44	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x6263db33	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xb6690676	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xe589f25b	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x2e402be4	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5e8fb5b6	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6269c89a	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x627ce11c	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6f738e63	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x7df7bd68	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x8551e922	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x905aed2b	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x9d81d952	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa18fec6a	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xcd6660dc	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd9c502b5	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf9a02243	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3afd4903	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3b6a6c20	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x1a434efd	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0857a89d	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x19f14326	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x22a2a085	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x236ab203	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x24c75933	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2b52ea0a	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x38476579	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x445947e4	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5e332eea	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x666eaa50	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6a024b41	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x763b40d9	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x777c6996	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x78a77439	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7b6a5f06	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7fa68155	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9cf1cd3d	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xaff04a3a	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb32707f7	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb66e9826	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc9e6c534	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xcfa5c2cd	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd5737029	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe8bbaf44	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf5e16f15	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xff8be2a4	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x988a9b2f	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x40578e10	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xb264c373	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x12a9047a	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x13431d1f	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1ebd7dc0	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2eadd0e0	ubi_leb_change
+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 0x4879000d	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x58ef6768	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x79249c97	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7ebe75ae	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x8933c5b2	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9b29ad9d	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb77a47f6	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc62ac04e	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xec990726	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf28377f3	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x24e41bb4	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x9a7bb95e	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x1c339a57	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x1e1afedc	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x47d10e63	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x507b28dc	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x67e18d74	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa7cb12c9	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0084c40b	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0ace994f	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1815945e	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1c50a4e3	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1cc020b2	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x363242fe	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x45d31cde	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x51516f9f	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x59eab692	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5c31aee2	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x60ab0265	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7e8a1d22	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8e268316	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x97f8c039	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x981cee52	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x99a6bf9f	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa186ca68	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa3b2c420	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa6789b21	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xadeaefe2	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc34cfe96	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc8025781	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xcbb457bf	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xdc11dd2f	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xdeacf99c	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xeed80a58	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x166f9dfa	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x8ba94aad	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xdd249d82	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xfa214ad0	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x0c4c8470	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x29d2fb59	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x633bab3d	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x84fda3df	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x8f525758	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb06552b1	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb4c90c91	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf1208909	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x263f677a	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x5bc9f0a4	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb684e186	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xbc2fc811	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xe31d29a3	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x05393845	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x142578f5	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x18b11bc7	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1ab562d9	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x220a06bc	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3fd811ae	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x48e337ef	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x59837154	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5ce018c0	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7a4edb9a	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x902e7588	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xafd49fbb	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc8b2459a	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd32cc56e	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd8b0b6bd	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdd50865f	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xfb99e8a2	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x05bfef40	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x06c2eb36	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x1579d188	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x180e703f	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x45b0fa4c	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5986b916	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x726a093b	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7414bad2	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7567ab46	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7bd38e5b	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x82867e72	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8795b861	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa3d5b399	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xab77d4e1	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xca891390	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xec977a25	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x001ca3c8	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0807ac30	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e711c10	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fdbea78	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x100bd82c	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10b4c34b	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x132048a0	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13614249	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18d6f0ec	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1acbd241	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b378a70	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c9d1c11	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1de52406	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f781b95	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f86c85f	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x221d25b3	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x251a5789	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25393836	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b1f9248	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f7bb028	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x310810a6	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32632b0c	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32aca7b5	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3abcb099	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f077cc6	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x414a3489	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x443a0ffa	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44eba0f0	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4729bc29	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4926c86b	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4956a7bf	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49801fa1	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a55818d	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4bbb151c	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c87fd2b	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4cf6b928	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5053e209	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5238d56f	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52c5d955	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55a4c8eb	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b7d3341	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f62974c	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fb309b2	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fb3df6e	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60237f61	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61421703	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6146247f	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x651b200b	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69dcd5a8	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69fff834	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bd8af3b	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7197d13d	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71fd0e46	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7521a1c6	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7622a321	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x768c002d	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78663d08	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78b0cd67	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d095e3a	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x830a2416	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88380756	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x898242ee	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b6b4a48	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e2bd8a4	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f3bdfb1	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x923bbc84	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x955747c6	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x979c0edf	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9845fd7f	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x990189d7	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x996745a2	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a59ef76	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a90b770	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b4c94c7	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b621d7f	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6b8a2e2	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac951fe0	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xada0164d	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2ac1cea	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3c05db7	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3f0392d	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb86062e2	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd2b0843	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd796dfb	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbde4183c	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4a10e42	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4c374c8	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5fbf22b	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6312b87	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6a547fd	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7ca848c	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7f6e491	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc88e82ba	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc98a235a	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb20eb79	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc84afee	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc9bbb94	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccf1b2eb	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccfa2973	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf3f8410	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3e5e75c	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd42150e7	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5e59898	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6de6dc6	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd92655ed	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9aec894	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbb4e100	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf7d3ba3	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe04462d6	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0685776	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0861381	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0935b6a	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe24e1f7b	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2a9d9a5	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe62afd23	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8b28f0b	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf268b513	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf27a3650	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf282dbe2	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf39af553	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf56a2871	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5e42385	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfb48ec99	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcd33161	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe8c7c64	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff677f13	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05806b63	mlx5_query_port_ets_rate_limit
+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 0x0c9711c4	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17ba4093	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e79aef2	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x227e0447	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24020d2f	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x250232d6	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2633d3d5	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x283bbbd7	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28a63fae	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34ac7c7f	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34b0ed5a	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x385c6feb	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b8c45d1	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cad157d	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f01a15c	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f30fc28	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40d9c9b0	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4909e040	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49a62069	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4db7db8f	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x503d46b5	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5176e832	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5323a754	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x536647a5	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53e1e11f	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x542b3950	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x557e911c	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59890838	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a2b6fcb	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5af94107	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ce10bd3	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d8625a0	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x611d2582	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x620d7153	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64892722	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6692a859	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b14afd4	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b6241a1	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d3293d3	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74ca4c2f	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7856b89b	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a8a2b7d	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c7457e5	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7df04fa2	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81d3b303	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87269b70	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88101c24	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x886d05f4	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b47062c	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b99669b	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8efe6c85	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8f0cf317	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90d67e41	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x921a6c0b	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9266a886	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99c9bef1	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a867d96	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa3d8e26e	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa971061	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xadf2ca4c	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaea445dc	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb63f981c	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6ba3f15	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4b40190	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc75f560d	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc82548ba	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb35eb82	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcecf2b74	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd41422be	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd82f79a6	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8627208	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd93a6ad8	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd99a9ee3	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb2ce9c1	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcd84446	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdec46471	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdedd23f2	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdffe75ed	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0326f8b	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2d77ea4	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe415f431	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefe0aef8	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf26c4c5a	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfac11578	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xd5c96f72	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x0dfa3184	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x181b42ba	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x3184e407	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xbc815a22	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x104da2c8	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x622e9ab6	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x98a6f2b7	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb56299a5	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb722b9bd	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x2d40ceb9	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x98a1e3a7	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xaaa370e4	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xe79ec6b7	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x23942639	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x25fe8617	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x295c5d4e	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x81b54dfa	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x96646b07	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xdca62a7d	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x24d3ba5f	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x5a988ec3	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x8a6acdfe	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xf82bfcd3	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x049730e3	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xa64a6940	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x09625789	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x28ff3429	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2e567344	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x55c27b60	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5dc5d48d	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x636248b9	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6d9ebe7f	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x709023ae	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7c77db83	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x82f09b41	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb398c1b0	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb794b8dc	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb991b759	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc3d2f6ca	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc4b118de	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe43f0f73	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xedb9f342	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xef1fd603	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x59c1a4fa	mdio_i2c_alloc
+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 0x272a7fe8	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x341635c2	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x764c43f5	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x7f12f479	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x096dde18	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x26a95a2d	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x39c4309f	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x491d7d46	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x64b9c4a2	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x71e9cc7e	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x79085a7e	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9e25b1a5	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc367d9c9	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x045fa976	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x3076cf08	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x741df7e4	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x79f8188e	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xe0af6d5c	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x02579b93	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x3426d078	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7a405228	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x9d3808b9	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xac5d5217	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xaeab6770	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc6be78c6	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xe345f90c	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xedaf0974	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x2313f051	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xa9fd35a4	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xbc308379	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xc09c7b36	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xcb06f148	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xd9f50fd1	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1376258e	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2560f217	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2b470f84	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x37b0ee1f	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x38055704	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x40e386c0	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4c9fb58b	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x608080a1	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x67537850	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6b062a03	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6f19fcd0	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6fb8938a	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x88504951	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9445bd7b	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9f9c3e73	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa4c550ad	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xae93500a	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaf0445b7	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb35beb04	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc003dcd2	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc0ce7a83	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc3c8a451	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc5f7f55c	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc68d4dcf	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xcce715e1	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd73053c3	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdc867819	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe590f9be	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xec49b21d	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf26d131a	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf35a94f3	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf3937347	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf8b9705e	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x19a5daaf	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x42ae6220	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x62f7f31b	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xb7037478	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0571b767	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0bd8cbc4	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x156c918d	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x2a64d0c0	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3712b420	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6a222ecc	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7ca358ed	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8336d925	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8bf94e02	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb1487c07	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb3888693	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb4a5b7c9	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcdefc018	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf54eaa0c	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf5a0b2fc	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xfc91b852	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x3730040c	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a92d8ee	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d5643ef	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x815f6e59	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8f70db85	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa2da3197	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02322e59	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x06757aae	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x074f1e57	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0cafbf49	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0d66c31d	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x10b009ad	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x247a963c	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2bbc5dff	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2ca0defe	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x339ce05d	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3987fad5	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3f432bd0	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4350a1b3	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x45e6eea2	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4ff9db6e	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x51895dd7	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x533f381a	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x55e73fba	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5866970c	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x595a5adf	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c245183	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6d90c54e	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71e50a96	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x76196081	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7ac5257b	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x80000b39	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x875e8990	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8f33c585	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x915ffcc7	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9304bb2b	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x968e2762	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9ba1bdb4	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9c86a6ec	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa0a7e075	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa287c5e8	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa4724fd0	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaa8e0aa0	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb68e2535	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb7b10b52	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbbea8cac	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcb604576	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcbba031c	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xccd03887	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce354efd	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcfa5bc22	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd17ec47d	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd3694f3b	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd5872ae6	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdf54b184	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe1532e47	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe480b00d	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe87e2e92	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe9f928b6	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xee2c7fdf	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xee8e8934	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf1b6e12d	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf3f1c184	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfdddfcde	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfded1a1a	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x289b4caf	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x2fb5cea7	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x37f27c9d	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x44ad1e7a	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x55349bea	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xbcf266e8	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xd7571856	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xe9e5987d	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf260f716	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0e90d4ec	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1dd24d7e	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x216a0b8d	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x23f5d255	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3082c48b	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x37b8c3c7	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3973575c	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x52c47240	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5dc74002	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x686da5ce	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6bb380e4	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x76420b56	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x787cb618	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x90138271	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xde7fea69	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf6edacb7	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1e49f45d	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x429e60b6	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x484156a6	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x75134a8a	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x76edaa0c	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xa02b50cd	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc3ed1991	lbtf_bcn_sent
+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 0xde92b12f	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x000a5fc5	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x09a740ea	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x193b870b	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x272d63ee	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2753d480	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x37de0726	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x392c2b50	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5d63fc3b	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x88360e1d	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x945618cb	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9b75b229	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa4342765	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb604be01	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbbc45bc1	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc014a18b	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc4d67cd2	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc509abe0	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcb2d28aa	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd2051580	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe66fb2ba	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf06c28fb	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf6934575	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfb2b4ea0	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfe9192db	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0330a8a4	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x109e67ab	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x16671d87	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ca5aea3	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d030ed9	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1f90562f	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ffade57	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x21d01814	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2b60a894	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x37fe9f47	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x38c4286d	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3c48e7e4	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3d61ee6d	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3e13108f	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4d47fa32	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x503cd21d	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5413f453	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5693a94d	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x57379dc2	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x58cd07f4	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x643787a5	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x66cca76c	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6d272adb	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6eb86613	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7176b779	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7323e9ca	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x75b2d1b4	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7c093ddc	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7f301130	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x816f49a5	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x88999eca	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x90e03fea	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb31396ce	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb6d98d90	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xba590857	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc7d24cb2	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc9dd6a50	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcf0ce916	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd1315e5c	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd21c0d28	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd3c6a9d2	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdc9c891c	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdcce525f	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe0eac59e	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe4471d83	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xea650348	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeabeabce	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xec03f33a	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf09dd84c	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf0f9ab04	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf5120274	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf631ea3a	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfb6b94b9	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x575be01b	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x6cd91023	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x90f341e6	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa65c90f1	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc1170219	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc3751607	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xd4328d45	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xffe5f0da	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x08fdf08a	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x118af452	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2eff2f03	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x6cbdcac2	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x73f45da8	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb5f0e7df	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xf824c938	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0ae35cfa	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0feaf4bb	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x17366c7d	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x182400a5	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1c5b07c0	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1e4eaa30	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1ecf59be	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x20158e72	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x201bbb91	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x23cc3c8f	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2551c7f4	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2ee811bc	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2f4f2b9d	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x31f91095	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x37c00ec7	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x389e967b	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x45c28bab	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4617caa3	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4758a047	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x50c050f7	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x589309fb	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x58c31cc7	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5dc5108f	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6140a958	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x624f8d21	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x646f2cc8	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6e6433e2	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x72915ba5	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x74215295	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x76a4b42c	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ba48e87	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7dc98365	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7f3f74de	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8053b9c0	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x80d9a3cd	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x82c114c1	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e7ea4b4	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8f30b108	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95309e45	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9d455480	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb015e1bf	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb0d3cb88	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb0f6d295	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb4189bf8	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb9054a8f	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbdccefc1	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc29b5330	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5d271ca	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc7d0ac4f	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xca9c7f3d	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcb2129c7	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xce45dd89	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd816d291	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd865845c	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdb945e4f	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe0de9993	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe4e53479	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe68d5500	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe6e1087b	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xece8b107	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf7a3f419	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xff880a88	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xffdb1117	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x01176dfb	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3d0c3f93	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3f15c46c	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x5fd3f38a	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x911f50f1	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x99ad594c	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe8f6091d	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00ae70ac	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0aee4e55	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x10cd63b3	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1137404a	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x14eeaf74	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x155b76ee	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x16060a74	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x298a66d3	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6daecb9f	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x70aa2a95	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x71298bed	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7d2c8d5d	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xaee9c128	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb41888c1	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xcec828b0	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xecbae916	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf06b6f2c	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfa39614f	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfed3f171	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x08ce543e	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0cca6db8	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x162e1b74	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x40b288c5	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x492a4303	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6044be61	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6db4f108	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x93dacee4	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xe0d087cd	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0cee0b9d	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0d2a9ac1	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x131d7d42	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x16228353	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x180350b0	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x24c62968	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2b524389	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2b609b00	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2bbec5c8	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2d7bf1d7	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x37d31378	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x382076ea	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3e81a7c8	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3fb92d03	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42737404	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4708a74f	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4e457b27	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x55009059	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x56b3bcfe	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5715f362	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5abfed38	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x636b4506	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x638622e6	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x69cc1c10	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6d2e3f10	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x789872e1	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8c18efc0	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8c315152	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8d691559	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x98bc1d85	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x98cb3608	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa779733f	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa8ce4af8	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xafd68953	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb045a438	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb8bac5f6	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbb1bfb08	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbbd2bb83	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcba39d47	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd2607493	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdbe5eea8	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe4177d00	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5f3ee0b	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf377ea7f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0d573493	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x12503961	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2d487ead	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x34b4985b	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x432f15d9	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4ff096d1	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5951af0d	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5b3916f6	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x63314261	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x70fdb83f	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x711cb039	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x71d7164f	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7e374799	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9ad0cfe6	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb1338a0f	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcaa36700	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x056450ae	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x08d94970	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0bb51e4d	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0e259558	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0ea33672	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x109ac552	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x11332133	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x13b7d54b	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x164f19b5	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x169d3cf1	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x19c00ed7	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2548b75a	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x260c8174	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x26fd5eb3	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x34ce834e	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b011397	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3f091268	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x45086e1f	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x56065504	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x566ec730	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x64ff02ff	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6694bc83	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6bfd0410	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7cb7b106	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8a2921ca	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x983fc27d	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa19baee9	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa24a3b4f	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaef54e3f	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb38e070d	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xba471d28	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbd76432a	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc5c53d27	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcdcae297	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd4f25358	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5390838	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd53e3206	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd9b1bf67	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdd281afa	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xddf2ca43	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe301786f	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe3fbdc52	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe9884da9	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xed03c6e1	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf44874e1	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfe640719	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x0f2bfad4	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x210acf66	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x879c7bee	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xc7095e07	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xe7b82fdd	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x14be59a2	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x32c9c44e	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xb46b8e95	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xfb61c561	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x02e8d2f2	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x19ab00b7	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x37cab8ed	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x56511fe5	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5be5e2b2	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x92a22f16	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x96d0627f	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaae8ca5f	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xabdc7f88	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xae3f4ed6	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaf319c15	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbd665a65	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd45db706	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd8daf9ed	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xeeb30339	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf80ab790	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0c3991a0	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9f178dbd	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbcaa2bcf	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbf13ff74	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x07f73b71	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0c7a42f7	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0ef699e1	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x14543089	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x18fe5d45	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1947508b	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x340c8f19	rtl8723_phy_save_mac_registers
+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 0x465cc64b	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4e0da6e4	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x53985ee6	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x62862746	rtl8723be_firmware_selfreset
+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 0x8e0dcb96	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa4fbd8fa	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xab241ba6	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xade3344a	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaeae00b5	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc098721c	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcbc07abe	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcf17cfe1	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd3a83066	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd549a1e8	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd9504c00	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xec786556	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf0a4f462	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfb1a5126	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04baefb3	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0cba6bc0	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x11cb98d2	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x133717f4	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2a96bfd2	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c778db5	rtl_deinit_deferred_work
+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 0x42109786	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x49f4b536	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5058d027	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x53f3bd10	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54156dff	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x749926a5	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x787b0c3c	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ca52e57	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90cdec0e	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97193c4d	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa79645ad	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa9aea9fd	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb5744d0b	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb9199219	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc2101e5a	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc9668646	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcfd4056f	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xec7505c7	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xede6c87a	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x22870a0b	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x5cf9a0cd	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x7017494e	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x8b0a1b21	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xdc8282a3	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x01d4d786	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x983f5ed4	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xd9348863	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xf7953f88	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x2e94c97f	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x57849323	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x96ae5aaa	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x03b4f6a8	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0b2bf0d7	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0f0d84e8	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x181e9885	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x186e1901	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x18d3b81c	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1c153b7f	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1f52407e	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x21e144af	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x26cd6d77	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2a3ef526	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3571afb2	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x36af6043	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x36b4c0f4	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x47d0f89b	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4dd939e5	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x52293b8e	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x53b75db5	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5862573e	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5b9386d9	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5caea5e2	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x60e1aa44	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x69d06857	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6ace7527	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6d4549dd	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6f7015f1	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x700a7ec7	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x83fe3e9f	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8979d1ad	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8afb6cb0	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x91f07b73	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9df07933	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xaa1b672d	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xaa85333a	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xab881c19	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb81567ca	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbfc1b4ca	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc0cb3ac0	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc39467b1	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xccc2c3de	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdd0a7599	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe38a190e	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfb35ddde	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x069376ab	nfc_mei_phy_alloc
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x29aad15c	mei_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x6ff205d6	nfc_mei_phy_free
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x13e6f7bf	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x1eadbaa6	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xcec2a75e	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf9a42e24	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1edb2f27	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x34cb6a1a	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x55e404fc	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x8de225b7	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x223ee44e	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x6734eadf	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x70c5b537	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x886270fa	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x9ce9d1fa	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xbed4bc60	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xc8bcce78	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xd0427040	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x235d085a	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x9656d3ea	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xbf138a8f	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 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 0x5d168d74	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 0xbb88d4f7	ntb_transport_unregister_client
+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 0xdd5e349d	ntb_transport_register_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 0x9fed59b0	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xeb44d7b0	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x019e7ba4	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x06c6fbb5	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x15c33e16	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1f701581	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3294da5c	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x37d06732	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3828cc5e	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4354489d	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4388a6ec	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x438bf171	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4422226e	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4bf92299	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5b0745a9	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5e34909e	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x649dfcea	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x68feaa0b	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x71998b15	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x72753c5a	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7dc6f809	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7f5c67bd	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x81710440	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x84701b1b	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8fa6f49b	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9b05cd0c	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa2c19f11	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xac701fdd	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xafc5bd48	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb67cf80b	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc77d2371	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc8651dd3	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xca086ade	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcbab37f5	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdcd50bf9	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xee64f228	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xef78650f	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf37dc2b4	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x093ce169	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0b2c7ddf	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x10a724a8	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x173cf25f	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x2766e155	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x39678b24	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6511e93c	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8284c7d6	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9595414a	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa0b786af	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe1bcf6b1	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfef5d6c3	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0xe8a42467	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x26f01f24	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x34c6e5ab	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x51332fc7	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6b295dd5	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x7ea778b2	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x85444e8c	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xa285207d	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xbb04587d	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xdecb4119	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe0da17cb	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf93ab073	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x91c921ef	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x1591b2c6	hyperv_read_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x221394ae	hyperv_reg_block_invalidate
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xe5f73406	hyperv_write_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xfb921e00	hvpci_block_ops
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x6288d766	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x2a8ac85e	intel_pinctrl_probe_by_hid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x56b7f4de	intel_pinctrl_suspend_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x7f2c8cfa	intel_pinctrl_resume_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xcff3ae21	intel_pinctrl_probe_by_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x18dbe190	wilco_ec_set_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x2041327d	wilco_ec_get_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x78ca6eb6	wilco_ec_get_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xa66c9ee2	wilco_ec_mailbox
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xf3b54717	wilco_ec_set_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x57c46ceb	asus_wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x7557d51a	asus_wmi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0xd950693d	asus_wmi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0x51552fca	dell_rbtn_notifier_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0xa060fe7d	dell_rbtn_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x05a66784	dell_smbios_call_filter
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x12a6e174	dell_smbios_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x1b0b3141	dell_laptop_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x45170471	dell_smbios_call
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x7fd2ce06	dell_smbios_find_token
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb9400dbf	dell_laptop_call_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc2871e79	dell_smbios_error
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc8c4aaf9	dell_smbios_register_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xd6c6b12d	dell_laptop_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x8eef8246	dell_wmi_get_hotfix
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x9559234e	dell_wmi_get_interface_version
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa167d064	dell_wmi_get_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa3dcfa65	dell_wmi_get_descriptor_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_ips 0x46809fa9	ips_link_to_i915_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x659f040f	intel_pmc_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x9bd9354b	intel_pmc_gcr_read64
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xa7f53967	intel_pmc_gcr_write
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xad38eacf	intel_pmc_gcr_update
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc49eaee5	intel_pmc_s0ix_counter_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc845c71a	intel_pmc_ipc_raw_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xd2a5d365	intel_pmc_gcr_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xdea07053	intel_pmc_ipc_simple_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_punit_ipc 0x8ee9455e	intel_punit_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x06f7821f	isst_if_mbox_cmd_set_req
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x21c58190	isst_if_get_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x557d31e4	isst_if_cdev_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x58a8261f	isst_if_mbox_cmd_invalid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x861369f8	isst_resume_common
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x9a5c38f2	isst_store_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xe18f42a5	isst_if_cdev_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x1c7565c2	telemetry_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x35db93a6	telemetry_get_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x3d2a8587	telemetry_set_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x4cb51f18	telemetry_pltconfig_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5847f501	telemetry_clear_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5bb8e91a	telemetry_raw_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x665cd407	telemetry_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x6b892524	telemetry_set_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x82bb2dbe	telemetry_get_evtname
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x90551504	telemetry_add_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xb75bd1e6	telemetry_raw_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xbb9a2726	telemetry_reset_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xd14ffffc	telemetry_update_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe1eb4be1	telemetry_set_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe8847f53	telemetry_get_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xf00771b0	telemetry_get_eventconfig
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x232b5238	mxm_wmi_supported
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x61cdf799	mxm_wmi_call_mxds
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0xe26032eb	mxm_wmi_call_mxmx
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x065b4695	wmi_get_acpi_device_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x17b0f8ca	wmi_get_event_data
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x5bff0c1e	wmidev_block_query
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6068bedf	wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x68267e6b	wmidev_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x76ae31fd	wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xaba842fe	wmi_query_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xc9d4d6d1	wmi_has_guid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xd7752b86	wmi_set_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xe78182ea	set_required_buffer_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xf18bdd75	wmi_install_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x87bdf525	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xae1b3a0a	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xfa25caa1	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x085072d9	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x22555594	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x4e215fcb	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x48a3ecc4	rapl_add_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x6044711d	rapl_remove_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x748a7b21	rapl_remove_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xaaeb5c6a	rapl_add_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xaeaabbf0	rapl_find_package_domain
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x9037ef56	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xaca885ed	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xe9e2d280	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x0c70d908	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x3c75d610	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x90fd08fb	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xad359388	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xc6b6ea44	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xcabf86f3	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x8a62a500	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xc0186f34	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x03c7e938	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x11a8404d	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x129ccf83	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1485ff54	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x18c08d48	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1a11a791	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1a7932c5	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3416f6a2	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x35a28450	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x401fa62b	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4232fdfd	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4b510f46	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4ca7acee	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4da4f335	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x55501459	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x59a5b6d2	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x619edf7a	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x62b43693	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x663cf051	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x677b5dd6	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x69715e93	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7048359f	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x71513583	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7743ce8b	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7d2d8e67	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x805639f3	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x805be408	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x859e8419	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8680baab	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8a8347eb	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9245c81b	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x95456662	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x96408a45	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9e9d98c4	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb165f106	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb4aaee89	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb7b9ad4d	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc27b701c	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc2b7d50e	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcb7a48c6	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcd1c410e	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd47ba396	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe64c8ff2	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf69bc731	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0b01d774	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1354abff	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x192597f8	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x376a9d67	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3a0d59d9	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3bc72444	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x50b48c3e	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x6e48aa78	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9282f43f	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa4282c0d	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa577eba2	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb43559a2	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcbe68a27	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf1fa35f9	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf58ee1a0	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf63fdd89	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x321a4bbd	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xcc9ab448	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c7c6002	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cf9e29e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61eabfa8	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7ff195b0	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc6125854	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd93b63bd	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe13e6489	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x03103594	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0809532e	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x095122c0	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x09514e63	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d99b53f	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1330c248	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x168fe945	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x17b987d8	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x18bff8f6	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1d3211d4	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x20602d8e	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x292a4313	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x33b11b05	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3708ec1a	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4a8a22bf	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4f412931	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5ce58e24	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x61da7eb0	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x64fa4e7a	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6987db33	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6f044ae9	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7259929d	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x788e8249	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7cc2e3e8	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8294ea24	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x82955937	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9020b98a	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9b8fbc4c	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9eade7e9	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb297c02d	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbedb6ef8	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc283fd00	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc738d46c	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcaef6b20	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd9428258	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe2cca23c	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeb02b4fb	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeb560411	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xee4ad4e1	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf0974efe	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf53672fe	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf9fcf1f2	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x105c35f5	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x17c96c0d	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1f301399	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x298fe8d7	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x307f001a	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x45a8d79f	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x59169550	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7a8a14ab	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x927abe42	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa51bdb5f	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xad6d6e51	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc4fefddd	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd2686a1b	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe089a14d	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf2029f9f	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf768351a	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfa6ec8b6	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1fae3f94	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x23c102a9	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x26712560	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x33e131a3	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x41e475ba	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4be3750f	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d5ad3d1	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4fdd4c05	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5c85defb	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x61ac97bb	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6293ca2b	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x65c3b64b	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x73b36421	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x84072f12	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x988d73cc	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xab390129	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xaedd8230	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb823bef4	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd3fe2214	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe19e1c72	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe92742a4	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa2ef181	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfca774d1	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfd391974	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x037fcc7c	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x24e6efb7	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x307be564	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x351c35cb	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x391c2e2f	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x397e4447	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3bc1059c	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3c6c515c	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x40a0025e	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x415f0627	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x471a06b2	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4bd5619e	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4f7d6607	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x524c300f	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x52fc3331	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x71a1d414	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7530f84c	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x78fc9231	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x82e2b440	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x858a43a1	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x86356ebb	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8f70c0f6	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9769d7d3	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa6cef49b	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb194ed19	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcf659749	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd3447de9	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdc4d1638	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdea03676	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdea118f7	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe16ae416	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe9978958	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe9a144b3	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xec231857	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xec4a0890	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xef9a6890	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf164b982	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf46eb859	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf843aab3	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x6ad2e3c4	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x7d44ca11	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xaf81e33c	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xfbd0a336	sas_enable_tlr
+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 0xc316eac3	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 0x3a74ddf8	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5bda5d2f	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x8952d2f1	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9e03d82f	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9e4f05c6	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xbe65b8e9	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x283b6872	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x3f12b78a	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x4c9f635d	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x4fa4dc04	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x668460c1	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x80522ef8	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8ea1337a	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xd8dc1eec	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xf22fe954	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x02152e5b	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2a3e14ed	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x3e9ed522	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xced9eaae	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd7af9dae	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xf3fdfd62	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xfd49972e	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x0d63addb	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x3e5016a6	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x4c9a7911	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x7e07a3b8	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xeb66bb99	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xeec9bead	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0420cb59	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0f67e299	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1bf41671	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x290c493f	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3667c0f8	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3fc2e477	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x485d53ac	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x614724e8	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x70623832	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x76ddfe83	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x835e5dc5	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8665b43d	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8ae5fb93	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8b9c5476	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x911dcc77	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x92e1b8c0	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x969d7fff	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xab7cfbf5	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb65d4e27	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe0eb471a	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe22b9ef4	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe4f1666c	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe5ad5e87	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe850a3d9	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe9a3e8a0	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf2444396	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x3654d555	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x7db9ce81	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xbd7024f1	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-cadence 0xc20f95ec	sdw_cdns_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x5859c682	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6a845266	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6c9ff000	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x88f0043c	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe8cfd34d	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xee17a11f	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x0658c7d1	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8b05400c	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9869215d	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xb1622250	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xeee6564b	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x87a1147b	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xca58cb05	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xcc7ed944	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x080edd14	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x1c765f30	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x26e8260a	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2d01fd14	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x36601bca	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3c9a6d28	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x4644c937	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x613a6b5a	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x63551e6a	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7d14fd18	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7d57cfe9	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa197978b	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa205b62f	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb414dade	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc94cedcd	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd3aaea89	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xeda57597	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf7c7aff6	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x00edcc24	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x02138a36	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0557ac41	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1e751cb6	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1fb710c0	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x22a6cba7	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x31e4a819	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x328df1df	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x35129a1d	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3fb4a591	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x42edc8d2	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x460bf7c8	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4addfa1b	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5681e9a9	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x67374721	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x751b3577	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x78a8ee56	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7a63f81d	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x85b5c5f0	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90c136af	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90f7d6b6	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9308b56a	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x986fcc70	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xabd32a90	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xac291262	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb15b9ec4	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb574f0f5	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb59cc20	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xca2d24fc	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xce97df34	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe2b11816	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe4421901	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe98d1b45	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xebba0324	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf05a0ebe	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf8e4f5bd	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfe194698	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x03516408	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x1b0975c8	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x3de37322	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x77c0d2f3	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x7b1f9c6f	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x8ccba4cf	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xc5a30c12	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xecf719be	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x15b288cb	comedi_pcmcia_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x3adc71ef	comedi_to_pcmcia_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x4cd00c66	comedi_pcmcia_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x5b1c9f58	comedi_pcmcia_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x67359e8c	comedi_pcmcia_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xafe328f1	comedi_pcmcia_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xd009404b	comedi_pcmcia_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x0dcab7ed	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4ae52e01	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x5e2f035a	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x72e4fe08	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x758c94eb	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa3c94ae5	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0xc2828dfe	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x3db97c5e	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x975502c7	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x1f08d901	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x01929a12	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x39d37dd0	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x45702731	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x66f0b617	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa114f04d	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa8206a14	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb1715450	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb4637d01	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc6277f7c	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc7fc1852	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe8b6d64f	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xef845c27	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf4498430	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x219455e6	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x449f8737	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x851b05d6	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x088dad77	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x800ff90b	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x8dea3703	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xb339ef08	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0c8f3c69	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x17c7027c	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3043d333	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3798f113	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4e5040fc	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5606f9dd	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5dd53593	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8126ba7b	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x83824e23	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x86f03892	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x88cd8976	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8b8cbf25	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x986814a7	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xa7146ac2	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb4f58cb7	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbf1da36c	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x6dc4484d	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xf891a670	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x28196998	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x29ac56ca	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x70e36a75	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x8fb89d30	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xbdc00153	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x16387f8f	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1c60f51f	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4aff141f	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4cfa129a	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4ec83f94	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5a233cae	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x60824036	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x72823105	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7487a8c9	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7b6793e2	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x80383284	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x81526dfa	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x819db321	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x841a612f	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x860dffc8	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfe7d150b	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0743bd44	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x9a982668	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xa944c53c	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc5d8dd77	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc8fb249c	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xfba691bb	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x2a317387	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x2f6816c3	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x4a731f6e	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5ec525ee	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb7a6adc5	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xd6de4db6	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xeede59d5	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x1f319100	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x727543bd	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xba99c68c	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xbcee2fb7	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4b376635	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6902b4f9	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x896cbb84	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x8c5ed5fe	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa7fb5427	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb3a6587e	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbac4a87b	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc6f85663	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd3f16775	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdd7320b1	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xed5dd7ba	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf6d6a168	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfbe8cb26	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1e514421	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x31954aa1	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x47b2245f	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5089a362	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x56999614	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7034953a	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8ac945b9	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8e6df6a6	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x93c1d471	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xbc571a90	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc1ce3d27	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc411a2fa	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xef2325e3	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+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 0x944132ea	gb_audio_manager_put_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 0xe88d2704	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x027b738d	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x31bb833c	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x360edcc4	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xcc1ce842	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0xec89ff79	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x0216d25d	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x05dcf4dd	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x08f71c84	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x24043873	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x46b6f6ff	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x55af8df7	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6696c0ea	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6eb302a1	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x78cd513f	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x94ce50ff	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9a233597	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9ef3b4ac	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa8e06f70	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd8c4e0c6	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd8ebaa20	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf38fe6b8	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfe6dda50	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x06be832f	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1db8ca1f	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5b0d8314	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5e401e9b	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6c9db43b	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7e186c97	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xaa16c53d	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbf5e0656	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc10f7200	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc9d99415	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xdbc2d343	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe83c545b	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf224e24e	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xfb174a6e	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x02c29a26	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1f77e23c	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2851daa9	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x45b7d8dd	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4ca37cf3	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6610bad2	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6c6d60b7	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76def27d	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76e8bffe	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x86df49ef	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbe0ff708	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc037a0ce	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc4a3265a	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc911e7f9	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd44f47df	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdfbc50e3	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe4dc71a1	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x1eef86cc	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x370cb18c	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x97765de3	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x05f04543	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x41e3f50c	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6c9de759	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6d4b349d	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa697faff	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa6dfe633	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xda7b625d	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xdf96ceb6	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0871a041	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x08be5972	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x08d512e8	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0e46284e	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x180f8071	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1890d3a9	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1b6e00ba	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1f722272	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1fcd63e5	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x21ca9083	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x39f301f5	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3bda59b6	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4451a14e	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x45bc1610	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x45c2ffe6	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5c73eaf5	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6da96340	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x73ea3c77	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7927e640	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7fd85049	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8e26208d	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8fc8d2c0	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8fc99146	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x97745cb0	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xac778c3b	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb1b6a0ec	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb3186d23	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb512b137	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbee3157e	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcd8b24df	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xda0b6384	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe0c22d0b	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe89e20c2	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf42abdb1	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfaef47ab	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfe264591	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xff337e1a	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x4e2e2493	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x166adeaf	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x3176e36d	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x5dfb203a	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x68fad5d4	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x79938473	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xca1cbcc6	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xf5ae2a2d	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x19cb1566	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x2a5c8d82	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x425cbf0f	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5e75a0d3	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xb0a790a9	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xb4b32f8b	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd97e6794	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x08759db6	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x17cdda43	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x188603ee	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5002fd96	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x544c7803	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x97ddb6b3	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9a7143d5	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb8db9ec6	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc6202565	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd1d4271f	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd3fad561	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xdfd8c6d3	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf9541a68	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xfd0f9dc8	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x112102ae	int340x_thermal_zone_add
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x7929fad1	int340x_thermal_read_trips
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xc89259f9	int340x_thermal_zone_remove
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x09d5c471	intel_soc_dts_iosf_exit
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x26ffc82a	intel_soc_dts_iosf_init
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x9ee07b81	intel_soc_dts_iosf_interrupt_handler
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0xd06dc553	intel_soc_dts_iosf_add_read_only_critical_trip
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x01d23ee1	tb_property_create_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x03be0d9c	tb_ring_alloc_rx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x2f6d0162	tb_service_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x393b4f2f	tb_property_free_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x43af6f6c	tb_xdomain_request
+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 0x53d98cbb	tb_xdomain_enable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x55531177	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 0x693dcf72	__tb_ring_enqueue
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x73ad2acb	tb_property_get_next
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x785eb82c	tb_property_remove
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x8b62f95e	tb_property_add_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x9a7a9062	tb_ring_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa14e3096	tb_xdomain_find_by_uuid
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa3d2b403	tb_property_add_data
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa67e8a33	tb_xdomain_find_by_route
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb7c7cdce	tb_property_add_text
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc132eb57	tb_xdomain_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc5097be1	tb_ring_start
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcafb4b6c	tb_xdomain_disable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcbb11657	tb_ring_free
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xccbcfd08	tb_ring_poll
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd0d6142a	tb_xdomain_response
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd4004ed5	tb_unregister_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xe334db17	tb_ring_alloc_tx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf1cfd1ff	tb_register_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf76028c7	tb_unregister_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xfd719dd4	tb_register_service_driver
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x63796c8b	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9f6487cb	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xf74d97db	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x6ed5be3c	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x8da2cb49	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x19795927	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x1f310789	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x2873e595	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x346eb3db	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x4e7a9944	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x6ffbfd76	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x973579f2	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xc74c3af2	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xffb73a78	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0ff71107	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x58a5950e	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x955be5f8	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x966e7770	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xcd5dcaa1	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xdbd5118c	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x1fb1554b	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x2b268e0c	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3b981984	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x5d5ead68	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x708ac16b	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x84f5a0f2	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8af896d8	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8ea59780	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb1c22ff3	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc33e14f2	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc4aed1f3	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc90eafd8	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd73e2709	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe313f2df	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf4d1a6b2	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x096cf83b	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xe40ebb98	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x259eaa7b	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x8aa38281	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x01be4fb0	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x03f12d0f	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0b3081c5	fsg_store_removable
+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 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 0x1dc1c297	fsg_show_inquiry_string
+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 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 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x447143a8	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x52d88e9e	fsg_store_file
+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 0x56afc93e	fsg_show_cdrom
+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 0x7215938d	fsg_show_removable
+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 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x86f3a425	fsg_store_ro
+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 0x98dd35ca	fsg_store_nofua
+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 0xa42d853c	fsg_lun_close
+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 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 0xbbaa9e35	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc8c9d049	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc9b79571	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcb1f183f	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcd7c3ebb	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xceb822ad	fsg_common_remove_lun
+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 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x06b874cc	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x3b7fd1bc	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5ddbcc64	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6a58ecd2	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6f8bd193	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x72781dda	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x77f86a8b	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa3f6c092	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbc8e56f1	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc63917e0	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xcc4cb2b5	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd3c699b0	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdd9a7dea	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf33e73df	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf560ac08	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0bb16325	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x16541b5f	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1c5e932a	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x20c7ea23	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x24037e32	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2f4ae9e6	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x34b72735	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x529170d8	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x589de08f	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5db6b115	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6038f2d3	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x63b71b20	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6a5315e8	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7578ca7c	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8df4ba6e	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x94afce37	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9c051631	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9fce4d27	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa5e24976	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xad59c58b	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc0d65843	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc38d9eec	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcd39e6fe	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcea89294	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd468ec6c	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9384364	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9c5f1d8	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xda263ed9	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xde6b8356	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe3d155d6	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xffbddcce	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x03139782	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x039dd5dd	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x105f6e67	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x127dedce	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x67195f29	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x6d32ecde	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x89a693fa	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x9469b0c9	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xcbe02f0f	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0eacdbec	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x140ec084	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x18b31ca7	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1ca11dd4	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1e0f6bda	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2e7545fd	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x31fa670f	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3a1f3d62	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4aeae3f1	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4c62ca29	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5213c4f2	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x54fd7534	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x80704f18	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8329c29b	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8bae270f	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x99cde383	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9b66c307	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xad781c61	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb213339d	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc0d8356c	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xde402870	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8457822	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8564428	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xfda2caea	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xffb6e9ae	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x308f8452	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x98686a28	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x63310f1d	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x6b17dcfb	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x72f168ec	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x830551ba	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x99d99ee9	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x9b37c224	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe22c71f2	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe8522f68	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xeff5dab9	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x23f03cd0	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x2fd7878d	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x785263aa	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xe141ad73	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x01835712	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x45976c48	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x8d588f87	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xefae2c58	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xfd2d30fd	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x429354f5	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x5bfa6400	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x6a1d2d4a	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xf32a18e4	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x0c77c2f6	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x09600323	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x153ba30e	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x19db4972	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x20fcffe3	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x384ff17a	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3db8f270	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x43df5260	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x54ae41a0	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x561dff0d	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x66ecd7cb	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x76da7d73	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8da95d07	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x911cce22	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x911e06bf	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa53fc978	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb5e15641	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc3a497ae	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc41605e6	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc7368c4b	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xdbef9061	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf27dd6a2	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x31dfceff	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xe4af1828	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x03ec74b6	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+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 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 0xcfba7d62	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1197c16a	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1666cfb7	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1735e773	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1e5e8f89	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x257c63fb	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x27b9d25b	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d58eb95	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33b11be4	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x39b3957c	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e45b991	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e5a4666	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4351608a	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x46ba84ac	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x55d7e54a	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x59377ee5	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6784070a	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x727a4dca	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7f363757	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8ddcbb17	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8f5688f5	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x981a486f	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9ff4d9dd	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb0d80805	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb2fbcda4	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb6817bdc	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc5ec62db	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd4e16737	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd8173e91	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdc0a4b16	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdecf88e4	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe0aa9733	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfb0539f9	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x3f1e9106	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x443ebd54	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x4556b6f0	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x7acdf72c	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xda353a25	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x192fbd8f	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1b07cd4d	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x23df2304	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2e8d508d	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5270c87d	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5beb54f2	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6a0dd8da	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x76e90b64	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xad3fc0af	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb33bb1ad	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb92edda7	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd4247524	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe7db58fd	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x3a3a8a5f	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x02f74916	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x07ccdbae	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x08f51cfd	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0f619a8b	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x24b7cda2	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x28198fab	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x29677736	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2ac21040	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x366a8d24	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x37048dac	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3d5a2b6f	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b99adfd	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5f5fde8a	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x67231965	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6de1a0e6	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7192226b	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x769dc365	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7734d0a7	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x780ed617	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7fd1185b	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x809c4b28	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x82bbe82f	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x84f299ac	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8732c1cb	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8a6fc245	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8fb873f6	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x92686913	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa19e4827	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa1f784bd	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xac82a160	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xaf0c05fc	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb141c15c	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc709259c	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd47baf8e	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd4fa02cd	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd63c6cff	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xea2e8f77	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xeae63caa	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0x2c63e051	apple_bl_register
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0xdab0f892	apple_bl_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x02954c50	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x0d4a6ef7	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x26c1c8c9	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4f8003aa	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x5fb65f28	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x6dd209cb	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfabe2bc0	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0xc3816d63	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x4247a218	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x6abbe1dc	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x43e19f6c	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x95e38796	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x016e6c20	vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x90c018c6	vmlfb_register_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0e1cee08	viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x1f942c01	viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x30cc9311	viafb_request_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x31469540	viafb_pm_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4606f8d	viafb_irq_disable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4f863e6	viafb_pm_register
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcaefb732	viafb_release_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcd538333	viafb_irq_enable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xfff2dfd2	viafb_gpio_lookup
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x0e338292	visorchannel_signalempty
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x2775591e	visorbus_disable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x4de03230	visorchannel_signalinsert
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x56401853	visorchannel_signalremove
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x927c6da0	visorbus_unregister_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xc455c651	visorchannel_get_guid
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xde6aca35	visorbus_enable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xe3f34226	visorbus_register_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xe7f8b7ac	visorbus_read_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xf28be861	visorbus_write_channel
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2797449b	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x48e251af	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x59e845bd	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xac916f28	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb4995ff7	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb9018be8	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xba864812	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc2d46f18	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd4fac0b6	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xe28cef5c	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xfd7d8fd8	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x1a9ce45b	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x744133c2	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xa2d063fa	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xae25a33f	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xe64c8f79	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x1a95d64c	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x2da2e9b0	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xa36a6d16	dlm_posix_unlock
+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 0xd7e95d98	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xf91a80c2	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x1414747e	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x39a3b6e4	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xa068057c	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xaa2e6ec9	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xc8d6cf8c	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xed704a0d	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xfb939719	lockd_up
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x03267269	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x034e9ecf	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x036130b1	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x06bf6d36	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0775041c	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x079f19bb	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b7c08bf	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0cf622da	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0d8c6b2f	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ee696c0	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10799a76	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x12f39ed1	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1bcf536f	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cffe7e6	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21daab40	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2369e0a6	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x23c589a7	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24d6b400	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x25d844b2	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33f7fd80	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3571874c	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38dddb27	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3e4786b0	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4046b25a	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4611dbcd	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x49c1e759	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e12bb28	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x50047d93	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x504f2f4b	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51581b10	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51890749	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52611590	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x57158f54	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5894c7c1	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5c6b853f	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5fbe71e8	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60c33132	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x628c558f	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x648dc905	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64ddcbd7	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x65f0fa73	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x664b2a8d	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6c4520e4	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6cbbe8bc	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6f8c8dd3	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6fbabb38	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7307fbbd	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x74649160	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7bc85a4f	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d04140a	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8087ac85	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x815027c2	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x85394422	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8785b736	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x885ec051	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8c8c4a8a	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8ce6079c	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f76b28a	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f9e24b0	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fe81957	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94abcf29	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94b0b07f	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x97b26fe9	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x992f440e	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x994d8fc3	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9955d0ce	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9a35ca8f	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9b3a711d	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9cb72267	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d3d47a6	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa021c4fa	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0334134	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa098b3cb	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa3ef5779	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa5998ef3	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa69f1ec5	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa46e902	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xae94fb2d	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaef906fa	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb0873e1a	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb0bf65c2	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb1dfc5fd	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5d97a20	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb68d27e2	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb91d50e7	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb9a36215	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc3bc370	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbd045bb0	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe25f07a	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbf757967	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc333d371	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc76c04e1	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7e24844	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc938bb75	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcaefd6eb	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcb15e2a3	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd15ee0e7	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd27a4519	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd45573ea	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd49d1b8a	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4c1219c	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd75dc896	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd7f2e58b	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb4903df	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb5bc1a1	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb85ee75	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc5fe18f	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc93ff6d	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd006d83	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdde29f51	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde970d71	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe12aedc6	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe33cfbed	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5009af8	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe62c9f9f	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe69642e7	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe9029c71	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe9e25ea1	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeaf796e0	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee577788	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef0ba93c	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef727e8f	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf3daeada	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf434f397	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4949255	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf7edd37f	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf8643f4b	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfab02cff	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfda462da	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xffc6a541	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xe3766efa	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x058d9836	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0c896e41	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0ec6c359	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0fc836db	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1107d7d7	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x113f62c2	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12a5b2bb	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12eeda31	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x13ee0fa7	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x143af321	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x156b5c01	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x27b50ea6	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x28adda73	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2a502f62	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2b8944aa	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x375f6974	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x381aefe1	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3a6072d1	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3ef266ea	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x40db5d27	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4139f1cd	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x414755f8	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x41855b35	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4c0fa0a9	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x55f0d6cb	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x561b0ce0	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x57b58fe8	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x63060ea9	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x658ebf4c	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7376ed7b	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7627aaa1	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x838eaf5b	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x85f2ee24	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8798f33b	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x88b306fd	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8d60c5b5	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x99a057b9	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9a4cf6c6	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa4c551e5	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa572c18b	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae9d838e	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaf692a93	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb05494ff	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1b38b56	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4a38c15	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb7d40fdf	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb870c517	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc6be6b98	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcd992ba3	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc486ae7	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf5634fe	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe8d46f2b	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeb431421	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeebc7536	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf31ce3db	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf95c9c44	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc357629	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc9dd65c	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfdfaeea4	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x3d588eb5	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xa7d43b94	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xb0f80883	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x82691866	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x94af196b	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x0f0b37c3	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x52adcffc	o2nm_get_node_by_ip
+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 0x63ca5476	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x947c1875	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x9f900cdf	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf87aa928	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xfdf6464e	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x008cbaea	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x37563519	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x4d803ffb	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xb787af5f	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd22a44cc	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd366407c	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 0x112bbedc	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x61d3bd7d	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xce3cf660	ocfs2_stack_glue_unregister
+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 0xec06b5cf	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x2336a819	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4fb36c6c	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xbfb4a112	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x4965b9ad	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xd8683b35	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x00fc5293	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x234aebdc	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x16134bf8	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x27e13cc3	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x627242d6	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xba817c9e	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xc267d622	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe83987db	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x521716c5	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x744c27a8	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x783347fa	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xaa978e92	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xac0e4f7b	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xbb501398	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/stp 0x61b45cfa	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0xa55797e6	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x497b09b1	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x72967cec	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 0x2b00bc57	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 0x21152fdc	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x31e8886c	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x8ed2c0a4	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xab2a289b	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb5fe8fee	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb608a4ec	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc0dc5d93	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc8c0089f	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x2fdeb8b0	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x00e63127	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0d19e1bf	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x11444a29	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x187fe726	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1be0e9a7	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1d7ed853	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2392b9d9	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x256b6df4	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3302164c	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4b434a90	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x51ad9563	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7ab87346	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb6dffeca	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xda6072b5	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdd27bbec	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdfb0ab09	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe45774df	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfb8fd290	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/core/failover 0x21c70a89	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x67221c95	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x800bcbd5	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0b889e88	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x132f1a1a	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x16089f7d	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1d596e86	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1e6c4910	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x211e5037	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x21213c9c	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x21312680	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2be1be50	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2e7509f1	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x367b33bd	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3802816f	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x382acee0	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x48d6526d	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x574afb75	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6695baeb	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x674ae378	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x69137bd1	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6c4afcb6	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x76210c40	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9f78eda7	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa074a25e	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa68fde7d	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xabd85cc3	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xaf64d4fa	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb110c2c7	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb5426089	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb5de8593	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb65e3178	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd322c2b1	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdcaf6b73	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xea602b6f	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xeb30a9a8	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x18d40105	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x380b5978	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x5a11feed	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x6feefbe6	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7608cf9d	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x79161dd0	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x15f07714	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x20a8fa9b	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2327f704	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2a01257b	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2d80afb2	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x385d4563	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x41b2e9c4	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5d29dd85	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x76e7970b	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8684fd03	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x87af0bb7	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8bae236a	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8f4441c0	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x943394f5	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9da6c947	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa36f4e6c	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb31b4532	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc79ba49a	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe3d712c4	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe616cad7	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe77528a0	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x6f853c89	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x870d0d62	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9813c2d6	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xca473689	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x171e2fcc	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x4059d28a	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x527099aa	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xb7380910	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x0e82c123	ife_decode
+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 0xaf3b9692	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x580a4004	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xc1b4ec2a	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xcebfa973	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x81e8ca8b	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x9f84f164	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x0c8485ae	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2d9948da	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x5a04c5aa	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x7b80f11d	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xab664ba6	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd2506830	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd61bcef5	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd722e03a	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xdc1ea79e	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xc6eb2c4e	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x08525582	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1cfdc9f2	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2574a0e1	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x290eceaa	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3679bcdc	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3df646cc	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4f8e5b1b	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x542a352e	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x63ac51b1	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6c071740	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x76fb6f18	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xaa5b579e	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbae3c1ce	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc810850a	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcfab7734	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd4cc5268	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x1d524a03	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xf60da4e7	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x541adcf5	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x40965002	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x03ae98ca	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x0e887d90	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xcfc66dab	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xe05a3055	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xed39ae65	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xf367621e	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x63fb6d52	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xcbb93c38	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xef4d9262	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x13846335	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xa8991aba	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x0a3a0bc0	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x18fbc6e7	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x6d173b70	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x7f07139c	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xeb8a3687	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x05cfa44f	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x171985a6	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x4a95bed1	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6f6d998f	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x74225573	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x81d38ed0	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe1486c57	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe5a776eb	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x73c38332	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8a74d8eb	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xe8dba408	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x435088c5	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x5cfc7971	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x7e664895	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x97624c64	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xeb249851	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xbae33289	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x0de5c6a3	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xe6aac83c	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x056a9f46	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x3d71e89b	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x88509e62	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xbdb36bcf	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xdbdc3399	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xe4ae60c9	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x7400c377	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x372ee6af	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x656078a4	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x8b1030db	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x308fe07d	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x62cf142b	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x07c8c587	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0cff621a	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0d7c1580	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x21e70709	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x304134cf	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x32f772f9	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6141fe6d	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x619c549d	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9ab38d02	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9ccb680c	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa0c096bd	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa7a74b5c	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xad7b7bac	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcb81b89a	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd3438fc1	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe9f678f3	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf9600455	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x5c6683da	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0acdfde5	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0b568175	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3b8f4d42	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x45d0b48c	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x52036bba	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5de699c2	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5fbd0134	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6e3ef02f	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x72aeb8e4	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7506d082	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8caa53d2	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xbee82328	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc9d8dd1b	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe1e0f571	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xeb080207	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf0e23987	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x4cc6cf9b	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x86190543	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x92e1be88	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xa7c307d1	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xf70b7be9	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x04b4ac2a	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x098016f4	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0d7a3d00	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1974879e	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1a3b2014	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x26656e4e	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2d03f0bf	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5713d5b0	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5a72dbe9	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x63a09cb0	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x79bbc4ff	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7f2cd6c6	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+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 0xb75b73ea	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcc91c67e	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd078da39	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd4c92a9a	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe1457f63	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe923c41f	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x0539e277	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x2dda0365	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x35e15db4	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xf7614808	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3af11b19	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x5c8912ab	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x73ea5608	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xabb5bdc0	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xfdbeb429	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00d10b0e	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0209b0d1	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x023073de	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0c9174b8	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x102bc6d8	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11311f3b	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x140ca221	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1781c9f0	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x19be7ad8	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1c32af18	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1e074e29	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2194aa94	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x220f86a8	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x234c14d8	nf_connlabels_get
+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 0x2ece1211	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2ff23b8e	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x351f0718	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x37698534	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c30d2bb	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c6a7d24	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x41b8c746	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x436d480b	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x455d6084	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x45b0bdb2	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4624141a	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4cd4a538	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4e0e4752	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53278b37	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x579cfbcd	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x57a1ffeb	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5814d68f	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e1a8c72	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x638a9635	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x64f7d0b3	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x659e5491	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x692f2da7	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6ad41954	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6b54ff14	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6f041885	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7071ba3d	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x732e3cdb	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7354b8d5	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x74a98ac7	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7ecb4176	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8225b1e9	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8333c07b	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x859ba820	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x85a938b2	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x85bb4f32	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x866c6d76	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8b120c73	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ba06b73	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8edd5a74	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x90913e55	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x93bb2b62	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x965e26d4	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b398f17	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9e40cf45	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa1dbdec5	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa328113d	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa608bb5e	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa9a7e047	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaa0c05a9	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xab6bd812	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xac91660f	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf2cf425	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5227d69	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xba141f7f	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc3f3a03	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbf8d2711	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc1a0bade	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc435a15f	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc4e68675	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xca668c3f	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcc3a292d	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcf18f453	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd72aaadf	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeff03bd8	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf357eafa	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfaeaebc9	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xffd26add	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x2be73a7e	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xe5e60255	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0xf933c06f	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x062b3122	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0c762e44	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x23ed9baa	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x31271c78	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x4d1fdfe9	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5463707d	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5a2a62cc	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbe86a2c8	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc0e2c300	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd36eb8fc	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xecaa306c	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x2750c490	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x482b0fba	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x7259c762	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xb1b65a76	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x054e82cc	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x07be0d46	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x1288c916	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xd39ac593	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe8a010a7	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xec69f4dd	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xf3451a57	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xda560995	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x752cca4a	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x17bc4334	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x67459825	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xb5a6aa46	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x33288167	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3c4043d3	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x658389e4	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x69b2c831	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x83053a26	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8e65fa53	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x9e7ba47a	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xad677916	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xaee68c89	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe4bf7703	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe57d7314	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe9d1b419	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x1ca95644	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x472895b0	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x8c99266f	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xb22b94bb	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc1f290a9	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc22fff2d	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x00310030	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x02d40f43	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x16bce04b	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x20ae5a75	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5dc0d007	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x70840f3f	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x83887344	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x8aadf8cb	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9dd93a48	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9e7494d7	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9f1bc600	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xaf9b11d2	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbc70b6d3	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc6d9d1db	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xdf17fbbe	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe9d7fc09	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x01275564	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x11a83247	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x3f272793	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x7e0e8f83	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x82fe18c7	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x842e86a4	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x94350b99	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x957e0953	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xaa35796e	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb605856f	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xdea5da53	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0206af81	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x07a8e3a2	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x10bc04bd	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x17920a11	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x23d49f1a	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27182c80	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27c96a06	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27cbe494	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c7d6f1a	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x30ee1945	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4325d9f9	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x49e77951	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x506693f1	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x599f2612	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5a69c2ae	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5dcba78d	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x64864561	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6aa5b718	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x762bf563	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7ca03dd2	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7d78c008	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x897c6247	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8bd46be7	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f868156	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9ca9e350	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9ff9bcd1	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa6c93280	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xabf20446	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc987dc16	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdf92f4ba	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdfbfa01f	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe1617752	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe9ee370c	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf3c3ac1e	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfa3ecc0b	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x09294ac1	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x99fe58c0	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb31a127	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe17b1986	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf0e3d791	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xfd992547	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x2b7f84b7	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xba939cd1	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbbe42b49	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x12f0b442	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xe6a54910	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x3a78d1fc	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x523ec703	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xade3de59	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xfd023520	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x02150a53	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x93828844	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xc59ca637	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e5ad9d	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0caa6c31	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x109a7f4f	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1ad96e30	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1b97c65f	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x29d34c96	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2c076c78	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3e779048	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x409a2042	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5ba68d8a	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x71efca9a	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7ebd4356	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x93df20ce	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa3678848	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xaa12e960	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc53d239c	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd6c59c5a	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdaf0e9cc	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe3da254b	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf6cbe20a	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf72aaf20	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xa3621e2d	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xefe3fb0c	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x6c879a5a	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x7223d556	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xccec017c	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x11c32781	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x15beede7	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xb22ad799	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x279a5d3c	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x4858b5cd	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x06634b69	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0d16ae89	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x27ae5d40	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x419bea5a	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x67061b07	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x9d4896c7	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x0798d116	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x2e62ef93	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xce20a722	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xec3692f4	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x056b49fb	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1d1a675c	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2c53aba0	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x394d18c3	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45dfc8e6	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4ba85190	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x56ef1e55	rds_conn_create
+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 0x5ccebecd	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5de34234	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x643864a1	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6a3a5d99	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8645adb1	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x951f4631	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xae4f0d8d	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb5ac7b67	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbd66b52d	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc20214a8	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc635da8f	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc8629576	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xcd1ee8c9	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xce9cd1b2	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd77506fd	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe1d45df6	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xeb8393aa	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xebde2695	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf7fb9df0	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd144d58	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd22dd56	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfeed8925	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x325d20f1	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x3e894146	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x775d6126	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xd7829ba8	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x2f363ffb	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x33176dd7	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4a94bfcb	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x5ef62d55	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x72d5a5fd	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa332aec5	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xaac1348f	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd2606731	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd36a9e2f	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe1ecf38b	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x23a7db52	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x80984829	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x9a7a4964	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xca1126bc	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x01f38afc	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x026f062a	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02744b65	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x077082cd	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07b3a173	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x080fcdd9	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0bf255da	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0cf741c8	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0da26b5e	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e47bfb9	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e9ad843	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x110b8939	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1161a64c	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1236b768	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14101e7d	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x151e205b	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17a629a8	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x191112a0	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b0eee82	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b12afa0	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c748c30	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1daf2046	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f034c6a	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1fcffef0	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20e5a1d2	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x215317ef	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21dc845d	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29ed5fb8	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a287546	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a897b61	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cd2bf56	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d424b29	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e4a7aec	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30c95117	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x32b95f42	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x330d7a72	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3426e2c3	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34cbdba1	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x371f4e07	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3ba159b3	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c8bd7e5	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f7cb5db	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x409fbf33	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x44cf2ac1	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x451dd0cc	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45672f59	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x475b74c1	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47ae660a	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47f9dcb1	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4823eb53	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48bbf655	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a334881	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a6f8ab1	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b5cd3b9	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d26b410	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ff66699	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51830ac8	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52216d6f	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x523cebb1	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x528c55d9	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52a30a17	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x535ac220	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x544c5405	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55847bb9	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56a9ce52	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x574f7604	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5766fc8c	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ae96b46	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5bd7eac1	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ca79a76	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ccc061d	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d61c462	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e40704c	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5f6bde97	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6150ef09	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6186cbec	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6213e870	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62674f9f	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62cb1465	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x658cb4ee	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6656fb62	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x667ea4ed	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x673cebb7	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6774f279	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67c6ef98	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x686e7989	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6893f71b	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68c86beb	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b45b19a	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b72babc	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ba3d0d7	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6cf99586	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d61a37e	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d6f261a	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e1805c1	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x700d6a1c	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71b77009	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71e31883	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74b35fc5	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x753095ad	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75511bb9	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76844d77	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76a31429	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76d187f4	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77366839	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79b43a4e	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b2208f3	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b570e73	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d58a7e5	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d5b84c2	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d6373df	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d884872	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7dbf8152	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e64080c	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f124676	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x808c31bc	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81d101a8	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8208f569	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82b863e5	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83260430	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86d2df27	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87ece691	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89bf6a18	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a24bfe3	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a48351c	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c4aafed	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c8a734d	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c9abc3f	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d26561b	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8eee13d8	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ef6b17b	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f043e38	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f25ba33	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91d415c2	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97160bc6	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98b534bf	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a080383	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b1a31dc	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9cc946c9	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e43658b	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9eced009	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa015b97e	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1a09675	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2dff074	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa538ea9e	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5d6148a	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6169095	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7dccffd	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8a1ee57	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8d7e8f8	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9d6a83b	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab94e807	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad09c41d	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad58dd2f	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaedc8a0d	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaff1ade9	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1109dc8	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb11af82c	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb12cc9d2	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb25d9c5c	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4317502	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4402b7d	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb448e6b3	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb55153c5	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9cfe0f3	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbad01110	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc8c59bc	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf03d014	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf285e28	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc13d05d8	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc23d84e3	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc57f18c3	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc63c5f0f	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6736c6d	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc71e6666	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc904ecc6	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbb38625	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf62685b	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf81c84a	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1ae7d43	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1eac200	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd25c5d6a	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd27357b0	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2a18bf3	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2a90a48	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2b6dcd6	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd3007041	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4ebd7f7	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd563e4d0	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5ea9b87	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd70b82e3	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd8849188	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd996e672	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb7e89fc	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdbecd76f	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc2ed26f	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcc020cc	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe090faa8	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3714243	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe460fd01	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5a2f17c	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe73ad5c5	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb640a7d	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec0bfaae	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec85e421	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed6a748f	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef076dca	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf26ef4e9	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4955973	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4b55ddc	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf5a61316	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf5d139a0	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf64eadac	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6eb171c	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf894caed	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf911fbff	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa6619d4	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfac8d93d	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb05c94c	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfbe0dc6e	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc8e38ec	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x934e022b	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xee81e404	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x019c4377	virtio_transport_do_socket_init
+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 0x09f9b0e3	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x319d4500	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x336ff10d	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3c255d28	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4485b97d	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x47970845	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4ccf033c	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4f338e10	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x53385f02	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x548ee720	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54f4c4df	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5cbb2557	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x60b2e4d0	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6cc01dfc	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7240242e	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x73287882	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x733cb535	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x78fd59a9	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x99444737	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa699e413	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa7ce92be	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaa542ba8	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb512ea7b	virtio_transport_dgram_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 0xc6bd1ddd	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc8243a4d	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcf722c23	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd9116da5	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdaf24e7b	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe03165e3	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe03a7d13	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe705839d	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8d3001a	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8f14dff	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xebce06aa	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf2594fd0	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2a3ac3d2	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x36321487	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3657ca3c	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x597c05ed	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5d725f1a	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5e023e50	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6dea34f9	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7a5569c0	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7c10476c	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8a1dfede	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8b657250	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x944cc857	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9abfc029	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa390e365	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa991db8d	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd6a3cae0	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xebd56fa0	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfcfd016e	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x00878382	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x1984b891	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x27eb0fa2	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x678fb415	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x71cd3ae1	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x751aecfb	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x852edfae	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x94644667	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa600bf24	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb7276f22	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xbb3698a5	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe25a02d5	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe7672709	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x00713e19	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x01ddb67c	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x048d76e7	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1b0c194a	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4deb9d37	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x722eb0be	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x78c7daac	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7aaec51f	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7bf93d3c	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x905417f3	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x92c5d424	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa6c39599	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb6bb25c1	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xbd4c3eb1	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf8a39636	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf8d1ebfd	cfg80211_vendor_cmd_reply
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x5a10eae8	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x7e527c31	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xb8ff4768	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xff472255	ipcomp_output
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x8b7fad6b	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0248b1ed	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x1237d07d	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x21ba2369	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x350c927d	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x36bd0b6a	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4e602eec	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8271f0ec	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8f70afdb	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbf099424	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc3989c8d	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xdd8062a0	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x4e2e40dc	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xb8513413	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xd20e6aa9	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xdee950bb	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x239c3ae5	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x27df6e81	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x53a6e390	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x5e8d0e56	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa53ddb68	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa8507e70	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xad4cc94d	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xafd6e7f4	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xec70b073	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xff8911d4	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x12100c67	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x2759510a	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x28b8facf	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x3b58236a	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x691f68ee	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa6b8c58c	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xade9de2b	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xafd1db0a	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd2bb874f	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd8931f95	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf7544c08	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x03d35520	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xa2902965	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x29adbaf6	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2ce9e2a0	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x360ecaa9	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x373139ad	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x42528c77	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x44810a89	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x76d1e0de	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0014de03	snd_hdac_ext_bus_link_power_down_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x001c207a	snd_hdac_ext_bus_link_get
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x054614db	snd_hda_ext_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0935046f	snd_hdac_ext_bus_get_ml_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0e95c753	snd_hdac_ext_bus_ppcap_int_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x14fbd061	snd_hdac_ext_bus_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x15d54fe7	snd_hdac_ext_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x164dbfd2	snd_hdac_ext_link_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x19767116	snd_hdac_ext_link_clear_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x1c7d4be3	snd_hdac_ext_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x239aa111	snd_hdac_ext_stream_set_spib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x24a31dc5	snd_hdac_ext_bus_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x27a2c789	snd_hdac_ext_link_set_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3200b77e	snd_hdac_ext_link_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3d7f58c4	snd_hdac_ext_stream_set_lpib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3ee12e25	snd_hdac_ext_stream_drsm_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x4c7e54db	snd_hdac_ext_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5a2f8aa7	snd_hdac_ext_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5dba18b1	snd_hdac_link_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5e2fc5cb	snd_hdac_ext_bus_link_power_up_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x638b662a	snd_hdac_ext_bus_link_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x7bf3ea81	snd_hdac_ext_stream_set_dpibr
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x88450666	snd_hdac_ext_bus_get_link
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x90eaa086	snd_hdac_ext_stream_init_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9bc2e72e	snd_hdac_ext_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9ccda76d	snd_hdac_ext_bus_ppcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa14a4bf9	snd_hdac_ext_stream_decouple
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa40cc625	snd_hdac_ext_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa5622b4c	snd_hdac_ext_bus_link_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb8fcefd9	snd_hdac_ext_stream_get_spbmaxfifo
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xbb1053a6	snd_hdac_ext_bus_device_remove
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xc6a51792	snd_hdac_ext_stream_spbcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xccdf9171	snd_hdac_ext_link_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd4666545	snd_hda_ext_driver_register
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe24e80ba	snd_hdac_ext_link_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xeb905e9d	snd_hdac_stream_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf448cf64	snd_hdac_ext_bus_link_put
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x007902f3	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x023fe7e3	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x03c418b1	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x04cb8256	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0e913db8	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x135f0b73	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x18986b8a	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1f02dbc1	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x22d8dad9	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23b6602d	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x25545743	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x278000e8	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x298159eb	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3183d3cc	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3570627b	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3933a33c	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3a4fbc8c	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3b15ca21	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d8b3248	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d9b282e	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f584fd3	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40c5074f	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x45578cf9	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4660fab7	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x46d099b9	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x47dce524	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4af9d17c	snd_hdac_i915_set_bclk
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x51f7fa47	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x527d7314	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x52dbb524	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x559d61be	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x594954e2	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5cc5bb5d	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5ce15098	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x65dc1d72	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x682b2f3b	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6876f329	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6a4098da	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6daf4887	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x715246bb	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x78dfc5e2	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x79c64ab6	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7a4407cf	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7b8b761a	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7e5d13e4	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7fab7e24	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85b62925	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85c70f8b	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8a93d631	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8bc7234b	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8c87e7f5	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8e36da5f	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x919f45b4	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x924e3da1	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93ad20ec	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x95d2f7a9	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x967d88be	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f3bfc94	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f52c960	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9fb80a00	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa53ce8f5	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa948ffd6	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaddc45c5	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaf475a7b	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb243f905	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb311b81c	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb9d6f445	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 0xc1257e66	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc399e7a9	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc3bf7996	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8265eab	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc851ae20	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc997346a	snd_hdac_i915_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc99d229e	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd3ab4e81	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd8225cff	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd9743beb	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xda3ab14f	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xded37fa6	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xec8b071f	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf0aae1f7	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf9bb5c51	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfae0a546	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb8a5211	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x11cce10b	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x9195b974	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xfd8185eb	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x348c6f71	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x47565294	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x5d27eb7f	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x931d6898	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc628ba10	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xd109e166	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01c2d260	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03de9d14	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x05aee9bb	snd_hda_apply_verbs
+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 0x0d635789	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ea1a884	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0f270de7	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x131e9a49	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14eedad8	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15159226	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c8f374c	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1ebd61ba	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f066427	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20750b89	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x21882969	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x22d79eca	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26286480	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26cd4bd7	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x278b38ec	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2d8cfe3f	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f207dc0	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f83c8ff	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x348db77e	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3bc26251	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c1d1620	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3f764063	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x439b2400	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x47771e02	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4dc3c15b	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e349de1	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e3b7d6a	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5085484f	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x50c6568f	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x54932b13	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5b171806	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d153e5a	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d2aa8a3	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5dccdaff	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x60fd178e	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x66401edd	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6640d24c	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6a963717	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6ab8ce3a	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b278bb8	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b4625a4	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f9bb9cf	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x70161c49	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x716efa51	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x765aea58	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7853f2e0	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x795f9566	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x797bb3f6	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7afd4af6	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7bd32599	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7c18e5ce	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ea7e260	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x81d59522	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85c1bb3a	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85ca05e0	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x861cb4ea	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8cacf3c8	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e5e9bdb	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9017f3a6	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91757d88	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9181f920	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91a09636	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92108c1f	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x932da763	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x974e2173	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9836ddfb	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9cf3843c	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9d8c7317	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa176a983	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2178c23	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2632a96	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa29f6029	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa70135c9	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa77c8b64	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaa4544ab	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaa5f5055	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab245062	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xabe07f8c	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac385673	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xad05843a	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae3d4111	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaeca63ec	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaf00de8c	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb3064711	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb32b77ac	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb44e4a95	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5bfce76	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5c92b03	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc44fc91	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbfe0e2a6	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc50c10a0	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc5781526	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc7d89203	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc95f7000	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xca3a8197	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb672773	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcbcc883d	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd6cbb373	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9ae658c	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9d7fdcb	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9dfa431	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9e64c44	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb675f6a	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe36c526c	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe8cb0a78	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb46ea06	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb5d3b37	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeddb6d68	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeecdd209	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf086348f	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5ddf821	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf76c9b79	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf82881b8	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf913dd77	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf9bd860e	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfad87799	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfafe0c73	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd05ac3d	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01f4fa3f	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01f8df4f	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x04ddb33c	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x08f63bc1	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0aa3df84	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x24963122	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x40c09ebd	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x551e1d3c	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6de3e366	snd_hda_gen_free
+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 0x87397c56	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x89938619	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9192fbd0	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa09e46b1	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb21d5d69	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc1ba3a50	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc4298945	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xcd45ecc8	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe92b25fe	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xebe96cc3	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeee749c4	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfa5f957b	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfc5b26dc	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x3edd8ee3	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xc2b173b3	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2336e829	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x326916b1	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x37c6fbf7	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x44a34676	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x8f1300e2	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xaef2c17e	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd4ec7443	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe33edb9c	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe8f32c79	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xedfe7791	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x9b18d932	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xe97ee64c	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x10f3ec7c	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x3647ef9d	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x6514c1b9	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x8aa28b57	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe7244bca	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x143d097e	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x84324976	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcfac28c5	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x1366e873	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x4cb41509	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x97d5ae17	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x43f26525	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xe412399d	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hda 0x6275efbd	snd_soc_hdac_hda_get_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x4d697459	hdac_hdmi_jack_port_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x9e1ec135	hdac_hdmi_jack_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x5c445e7b	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x6201e326	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x0da439b8	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8825 0xe68c6d22	nau8825_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x2fae10a9	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x6e51fc98	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xd9487ba3	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x69e150b0	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xf2f168cc	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xea5d62e7	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xfe594773	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x1f24e353	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x4f6f6e20	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x8fd96278	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xc88652b8	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x4cdde79f	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x5734363d	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x8ff9e2f3	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x9528f351	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rl6347a 0xa7aa810f	rl6347a_hw_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xade4bf4c	rl6347a_hw_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt286 0xe0fe5c34	rt286_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt298 0x28d9b2fb	rt298_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x281f064e	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x5a57cccd	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x29039d25	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xe4ff146a	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x48b1d8c1	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x54ed82f6	rt5670_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x5ff72e6f	rt5670_jack_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xaf76dc32	rt5670_jack_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xb39a73a1	rt5670_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0x1a680514	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x67956035	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xa2082ce7	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5682 0x40d3c220	rt5682_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x06169151	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x1f96c8f0	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x7f215bf6	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xd5b4eef1	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xf48bd942	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0xc8b2ff4b	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x88e4cb7b	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xae218e2f	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xec02175f	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xdca1ad22	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x6a0eabf3	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x964e1175	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x9b25a697	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xc7f28e1c	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xdd4b371f	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x976cf5bb	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0xe23b04c6	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x397e543f	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x8994e2ed	fsl_asrc_get_dma_channel
+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-simple-card-utils 0x0cc4107b	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x29defe87	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x39aff364	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4ca08994	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x582f58d0	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x66b3b8c7	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x76036406	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7a5b2b6c	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x85e4db12	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x869b783e	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x96580c00	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9b5b9aec	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xce8dab63	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xddc76d11	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe971052b	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xeadba287	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf9ca3be9	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xfde441ce	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x1d08424c	sst_register_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x1f23d762	sst_unregister_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x388f40d1	intel_sst_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x6a2ac333	sst_alloc_drv_context
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x709cd25f	relocate_imr_addr_mrfld
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x91cd57a9	sst_configure_runtime_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xa94aad79	sst_context_cleanup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xad93237c	sst_context_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x00899c7d	snd_soc_acpi_intel_baytrail_legacy_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x08c27da9	snd_soc_acpi_intel_cml_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a6c545b	snd_soc_acpi_intel_icl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x210ac95b	snd_soc_acpi_intel_cnl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4c028d30	snd_soc_acpi_intel_skl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4ea3c4ed	snd_soc_acpi_intel_glk_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x52195614	snd_soc_acpi_intel_cfl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x59a53c32	snd_soc_acpi_intel_haswell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a93176c	snd_soc_acpi_intel_cherrytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x6038550d	snd_soc_acpi_intel_kbl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x8b43f2f0	snd_soc_acpi_intel_baytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x98f106aa	snd_soc_acpi_intel_bxt_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x9c3d1561	snd_soc_acpi_intel_hda_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xcbb222b3	snd_soc_acpi_intel_tgl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xd5af17b7	snd_soc_acpi_intel_ehl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xe7826509	snd_soc_acpi_intel_broadwell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x09bd4413	sst_dsp_shim_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0d43be6c	sst_dsp_inbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x12ed588c	sst_dsp_shim_read64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16e86983	sst_shim32_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x21ec762b	sst_dsp_shim_read_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x274f1fb7	sst_dsp_stall
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x2fc547ed	sst_dsp_shim_write_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3a5ff8cb	sst_dsp_shim_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3db98ea2	sst_dsp_shim_update_bits64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x4dfe607e	sst_dsp_register_poll
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x55d478ed	sst_memcpy_fromio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x56b256f2	sst_memcpy_toio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x59df2b07	sst_dsp_mailbox_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5b2d5b41	sst_dsp_shim_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5e713958	sst_dsp_boot
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5fc9fa13	sst_dsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6a7772ae	sst_dsp_outbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7dbf2c12	sst_dsp_shim_update_bits_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x84f2fe45	sst_dsp_shim_update_bits_forced_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x851bbe44	sst_dsp_ipc_msg_rx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x874114ca	sst_dsp_dump
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x87cdf7d2	sst_shim32_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x89ee51b2	sst_dsp_shim_write64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x9e0b1655	sst_dsp_shim_update_bits_forced
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xafad4cac	sst_dsp_outbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc1763339	sst_dsp_ipc_msg_tx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd6e3dadf	sst_dsp_wake
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd72a34c2	sst_shim32_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xdaa0dbfc	sst_dsp_inbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xde1168ba	sst_dsp_sleep
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe8de5bac	sst_dsp_shim_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9c6de99	sst_shim32_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xfe68426f	sst_dsp_shim_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xffde314a	sst_dsp_shim_update_bits64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x026c6881	sst_block_alloc_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0bc7d1e4	sst_module_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0dcd78fd	sst_fw_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x15ccee1c	sst_mem_block_register
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x173ebf44	sst_mem_block_unregister_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x19dcc121	sst_fw_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2129d0f8	sst_module_runtime_restore
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2158d759	sst_dsp_dma_put_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2d0b2367	sst_module_runtime_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x30ffa495	sst_fw_unload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x32cd10f2	sst_fw_free_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x34486111	sst_dsp_dma_get_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x3c95fc20	sst_dsp_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x425d868a	sst_module_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x4ccef832	sst_module_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x68d2e146	sst_dsp_dma_copyfrom
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7d7244cf	sst_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7efe2174	sst_module_runtime_save
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x88605122	sst_module_runtime_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x9397f323	sst_block_free_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa7cec9c3	sst_module_runtime_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xbcea59df	sst_module_runtime_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xc95e6d62	sst_module_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd4f8f505	sst_module_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd5317544	sst_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xdc7fc6c4	sst_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe16d993e	sst_fw_reload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe2804ba7	sst_module_runtime_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf2143b5d	sst_dsp_get_offset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf542a83b	sst_dsp_dma_copyto
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x09002c8b	sst_ipc_reply_find_msg
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x26bad37b	sst_ipc_drop_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x40b64cd7	sst_ipc_tx_message_nopm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x8402baf6	sst_ipc_tx_msg_reply_complete
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xb9f09fb2	sst_ipc_tx_message_wait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe4d5d82d	sst_ipc_tx_message_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe5ee6407	sst_ipc_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xea271486	sst_ipc_fini
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x44d5364e	sst_hsw_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xb40ff91f	sst_hsw_device_set_config
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xf9cc0129	sst_hsw_dsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0059e19f	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x00905cc7	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x01f74a59	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x03324706	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x035443f8	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x052c1ced	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08159ece	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08c4f538	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b43b475	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0bf71328	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c45e739	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0d7f285e	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e37b1d2	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0fb2fca6	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1043ea67	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x106d45ed	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1146ddb3	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11628ce3	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x16191075	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1775f808	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x17e8ef01	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x186ee798	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1bc1f3be	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1be5f6f2	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1eb74d4d	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x205e91ae	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20afab82	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22d9701d	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2373b1da	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x24a90565	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x262a3530	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x26df445f	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a2f86bc	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a98625a	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2b12e87d	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ba57d1d	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c9dfa18	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2e88024f	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x30e3f1ee	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x31a14250	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36e580fa	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3713a83f	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x379d7990	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x39d7ffab	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3a6e8285	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3b46b8f9	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cae0564	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cb58b4c	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d4a8932	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d9a0cf0	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f1cd4db	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3face8af	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40fb29f7	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43360b48	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43c681f6	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43edd523	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x44384f67	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x47982a2c	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x481a3d5c	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x48cc3493	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4bdc01b2	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ed95845	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x50ed8650	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5699324f	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x57a4b331	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e03ae68	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e3df80e	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x62b0d06b	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x65faca28	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68901254	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6d672a52	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6dfb5466	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e1332dc	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f07477a	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f15f7aa	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7138666b	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x72a4f197	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73561921	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73708cf7	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7464b563	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x74bcc51d	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75706cf6	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75a9dddf	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x767cabea	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78822e89	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79ff6fc1	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7b30b7c2	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7fbfa14c	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x807d7892	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8187b0d0	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82ce0b8f	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8392ba7e	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84b3557e	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85c73702	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8bd6690f	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8ca40c5d	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8ca60656	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8d07ab0d	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x903327b5	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x923bb2ec	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9289dd2f	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9295a188	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x939bed23	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x93f00c04	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x94d20cea	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x95af5632	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97512c3e	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97bc640a	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9866fcc9	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9875f8e2	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98b001c6	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9cbbbace	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2b511f6	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2b5691c	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa3564eec	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5550224	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa871b506	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa999c8b4	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa21356a	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad8a31b1	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xae428f23	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaee1d9fd	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb0ccb82c	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb166acc4	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb3d1ba76	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb3e0f583	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbba53bd3	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbf2dc1b3	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc02a0eef	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc23f42c7	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc761740c	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc9f40779	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb87cb52	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcbd584a6	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc1a2632	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc1fdc05	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcd355401	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd2cad33e	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd45692c9	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd5753101	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9552b2b	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd98ec671	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xda6c85be	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc45225f	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc7f0ad9	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc85d152	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdec2ae4d	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf5f89bb	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2c765cb	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe38eb1d2	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe5715593	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe6844125	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe903551b	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb315457	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xece90ac4	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee234782	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf229a5ae	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf4a442a6	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf600daef	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf758f12e	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf811ff30	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfa81ac86	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfb732f27	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfb85aa5b	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc5364c6	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc8817d7	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfd5304d8	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xffde790f	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x4f22aa70	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x92ff0098	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xdfc03866	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe50ba16f	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x07efbb8c	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x088a943f	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x28065ed8	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x44bc5cfe	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x531d239f	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x604c98eb	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x85f39531	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8d830217	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9c2490e8	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa984d816	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xace9f92d	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb87181c3	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xdb35f22f	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe498b8e8	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe97f3eea	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x001a66ac	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x00221df6	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x00242185	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0034f3b6	xen_has_pv_nic_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x00432040	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x00443e6f	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00531a17	xen_xlate_map_ballooned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x007a47be	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c9293c	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f4994a	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f95609	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ff0bb5	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01075f32	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x010cbf66	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x011440ed	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x01251974	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0162cf31	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x016f389e	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0174a474	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01848a8e	local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x01864246	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x018b3d1e	intel_pt_validate_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x019557ea	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x0199d233	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a73d4e	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b10fca	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b19361	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c103bb	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c12c32	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c14d3b	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cc90f5	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e45400	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x01eb4576	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee5532	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f16dc1	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f47f84	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0204f8a7	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x02152cd4	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0230a68a	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x0244cbbb	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0249476e	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x024acd82	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0259dacc	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x0266fd46	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x027578b5	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0297cc35	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c9719f	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x02cf83e4	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e02849	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x03063894	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0318dfa7	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x032c2999	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x03392a2f	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x03479cc3	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x03510dbf	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0371c532	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0382d936	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03bd1ead	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c52122	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03dba991	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ff7f2b	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x040f149c	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04328af5	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x04379162	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x0451d5c1	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x0454aaef	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0457f6e8	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x046442c0	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046a97dc	events_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x04810470	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0486c65e	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04903f40	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x049929c0	hv_stimer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b42720	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x04be5898	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04be7029	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d409b1	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d493bd	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d5f508	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d7a5e9	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e290d3	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0508f382	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0509e1fc	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x050e7577	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x051e5b35	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x05274417	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05372f58	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x05399b6b	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x05640a75	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x0569b777	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x057ce420	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x057fe7de	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x05908cd8	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a30edc	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a3ee89	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b80170	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bdb915	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x05de819e	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x05edb5c0	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f98a70	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x06043681	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x060787aa	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x06085bcc	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x06163d4d	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x063f0419	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x06474d29	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x064c1591	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06655040	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x06aa39d9	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c357ad	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d0fe2d	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ff3c27	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0713535f	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0714754a	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07249649	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x072a6f29	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x072dbaa7	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x075aa2f0	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x075b9e79	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076a52ad	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x077a7246	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x07814630	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x07956ca0	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b64d81	hyperv_stop_tsc_emulation
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ce0edc	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e8441e	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x07edeba7	hv_free_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f8994e	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x080b6774	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082312cd	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082fa3e0	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x08357840	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0839ad96	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x08491d2f	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x0850bae0	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x08510c99	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0866c747	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x086a0174	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08a98a0d	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b79fba	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c4efac	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c765cb	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x08cb46c1	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dc77c5	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ed480e	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08eeddf7	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f1c996	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0918ddda	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0919da00	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0925493f	clear_page_orig
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09354613	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f20dd	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x096a7e6f	x86_spec_ctrl_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x096ce54f	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0987a5be	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0987d5ec	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ab5bba	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x09abc55b	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b57fcc	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c9fead	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d735af	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e28e30	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a00df1b	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0a7247	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a112d46	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a19ef27	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22309a	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a267b41	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a35bd16	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3e4cc1	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a502c98	dmar_platform_optin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6880f2	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8e5f21	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abd6473	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac463f1	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad137d3	lpit_read_residency_count_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0adcad3b	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af31bde	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af9bcf7	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b162c6c	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b255942	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4a4160	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b62c380	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6b25d1	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9daafa	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0baa07b7	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bba7a5e	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbdc3e4	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbea622	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc11759	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf6acfe	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bfad441	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c02ed97	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0628ed	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2b5ae9	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c561c25	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c607223	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c767e16	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c894cf9	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c89747b	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c951eca	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca796a2	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cadd624	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb2cdd4	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb746ac	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbe528c	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce31ac7	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0eafa0	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0f5a52	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d15b610	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1dab76	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d437557	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d437a4f	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d478239	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5054c8	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d515e35	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d585553	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d69f54e	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6ce801	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6feaf2	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d7b6c06	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d9948d4	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da8c4a2	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd8153c	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de66748	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de9c292	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e00416b	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e00b89d	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e063825	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0743c6	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0c5773	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1a2c27	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e298702	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e49fd5b	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5e304f	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e68e866	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6af38b	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6f4223	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7c513d	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e83b463	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e85661c	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e903cad	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9717d2	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e972230	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9922e0	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea4109c	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb09b3c	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec9fae6	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecbcd00	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed66d15	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efc1dd7	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eff2885	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0b21fe	pm_trace_rtc_abused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0d8cac	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1ca297	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2c1fd3	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2d7d87	mce_unregister_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f547ca3	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6352bc	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f67592e	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7dbeee	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9450e7	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9b333f	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fab4009	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc37562	amd_smn_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc1969	copy_from_user_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd3fb0b	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe04b87	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0feda49a	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fee1e64	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x10035c9b	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101a8bc3	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x102d7b6e	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x10356e86	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1038b96f	adxl_get_component_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1039856a	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1046e2f9	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x104a6356	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x104a6e5b	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x1088d046	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ae226e	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x10cbacdb	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x11481eae	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x114e2471	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x114f96a2	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x11645a79	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x11652dcd	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a49673	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11cfd1d7	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d7ba39	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e62712	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1247f05e	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1253e971	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x125d78e5	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x125e0114	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x125ff061	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x126e4b50	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1274b182	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x12773b9a	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b5d01f	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c03ebe	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ddd67f	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e0006a	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e285ec	is_uv_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x13138a37	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131d8ca7	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x134c659d	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c08fc	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c6767	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1391b18e	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x1393f66c	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a2bf36	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a87e46	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c26f7b	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d75576	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e3aa9a	smca_banks
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eeb542	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eef47d	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f37a3f	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x140208d3	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x140b6a27	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x141161d0	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142c5f73	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x14509e08	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x146f78bd	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x147f14f4	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1482433c	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x14957da7	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c21e67	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d156ef	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d8ccab	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e4215a	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x150a4f9c	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x15260f41	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x1527f017	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x152b6c68	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x152ce767	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x15380560	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x15395aa1	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15413144	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x15724d2b	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x157e3119	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a71ffc	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a73eee	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d0141c	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d6e672	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9d841	cpuidle_poll_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x161a0953	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x16323102	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x163335be	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x16434c6c	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x164b6bcc	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x166db1b5	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1672915e	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16892b27	uv_bios_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a6d649	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b34b14	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c8c36d	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e27a0b	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e7d21c	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e89cf8	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e97e64	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170aaefe	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x174bc85b	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ef6c2	mce_usable_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1765a9e1	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x1768f0db	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x176adf76	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x177388c6	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c10f1	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x178a33f5	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x178d0f19	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17add64b	gdt_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b33e5d	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b4848c	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bfd0af	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d123ad	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e2b410	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ec130c	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f80604	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x180c1beb	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x180d62dd	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x18582826	amd_pmu_disable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x18650e89	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18726b1c	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877ca13	mce_is_memory_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x187dc090	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x187e0369	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bb2be9	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c9609d	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e2243f	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f596d2	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fd38d9	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fdd687	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x191c4cac	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1921072a	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x192a4b5d	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x19406bfc	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x195d55bd	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x196289e6	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x19681f9b	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a217b2	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a50308	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x19acff09	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c560d1	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d7cc8c	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f60c60	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a192be6	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a40943e	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a490555	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5c5731	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6b5a27	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a79e303	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a824518	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8d18d2	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a943930	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a958ad4	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa37b3c	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab76a63	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afe6840	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff3d55	mce_register_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0191ea	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b06aac3	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b494214	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5ad61e	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6b4986	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b72e962	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8442a0	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b94abfd	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b98aaf7	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba237b0	default_cpu_present_to_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc2542a	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bec2478	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf09409	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c011c10	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c31559d	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c459e7c	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c487d98	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4bab35	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5cde65	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5dcf6f	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5e643b	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7d65ec	__memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7ed2a1	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8e06b6	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9a6f44	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x1caeedf9	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc2b2fc	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd7dee8	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd95cc2	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdc6e88	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdf84ee	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d055d3f	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0f7c95	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1634e1	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3f6f2b	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d685660	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d72d9ac	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d76f4c2	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8575bb	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9ff81e	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da0af8e	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db077cd	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc80e4d	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd87549	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd8850a	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de5e580	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de6c68d	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de8f0dc	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df05a5e	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df3e2c3	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dffff50	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e028693	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e05fe3e	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e12e46b	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e299e11	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e3c4742	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a5f22	sn_partition_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5feb4a	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e720c32	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7509cf	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9f5fe9	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea939fe	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaa97f5	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec53b35	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecc633a	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef49f6e	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f024028	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f04e235	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f078e3d	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1da4bf	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f39c5ba	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f44d51b	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5311b0	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5e4c72	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f67b81d	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f74fec0	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f85f91b	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa31a41	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa71d83	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbed5b6	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc0c1e5	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc672cc	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc8bd66	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x20037e4d	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2055c5cc	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2060d923	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x206d71b6	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x206ed487	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x20809a4d	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2081488f	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x2086e7bd	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x208813f2	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x20899467	hv_stimer0_isr
+EXPORT_SYMBOL_GPL	 vmlinux 0x208b122a	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2099e0e4	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c27fd0	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d8c6d3	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fc4b4c	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2110b846	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x21483a82	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x21508b28	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x21540423	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x215e7a00	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176edbf	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x2180aac8	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x2185063c	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x2191eb4d	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21aad16c	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b12f3d	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d1272b	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x21dc1c69	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fda6da	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x22104616	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221e59fc	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x224bfcac	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2251e9a0	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22542129	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x225b839d	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x225efd4d	intel_svm_is_pasid_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x225f3f65	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x225f5fae	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x22737616	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x22886b00	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x229d7400	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b5ae24	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ca2f95	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d1f988	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d3d49f	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e45428	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fc3440	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x23050123	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23479bad	uv_bios_get_sn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235d089b	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23600409	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x23692ce8	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23955b74	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23979bd2	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b4e0d7	clear_page_rep
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e6b45a	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f3cd02	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f47f5d	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410c338	x86_virt_spec_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x242b5ac3	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2439ebbb	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x243aa3ba	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x243fe5a6	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x24492c46	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2457f9bc	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x246c8cee	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x246df185	hyperv_fill_flush_guest_mapping_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x248ed7a5	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x249855e1	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x249990f8	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a617f5	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x24cfa134	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d560e5	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e3ca68	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e50ad3	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e59ec3	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f25eec	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x250dee0f	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x25216a61	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25353f45	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2556c54e	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2556ebf3	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x255a2e14	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x255fd570	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x258081de	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x258f7b92	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25aebdb4	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b0e5d1	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c7316f	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e593ba	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f02c87	xen_p2m_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f33820	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f52f11	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a7063	xen_start_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2642a968	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x26507167	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265f2c10	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x2661c680	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x2661f430	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x267befd1	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26826bd3	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x269b89c8	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x269e8987	intel_svm_unbind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26aa9fda	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b52537	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6900d	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e44e14	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f18680	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x27000d6c	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x2715027d	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x2717a2b9	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x272239b3	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2731974a	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x273aab74	xen_have_vector_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x274806f0	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x275366c3	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x276cc32f	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x27738550	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x277b4f6a	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x2780bb7c	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x27929003	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x27990c90	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x27af26c1	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c5a4ba	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ec0364	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f53ffc	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fedf4f	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ff9835	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x28278c27	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2828448d	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x282c4247	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2847699c	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x28550974	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x28698af5	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cb9ce	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2894b0e7	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x2895819e	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b3f933	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b817c6	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x28bf3491	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c3e297	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cb3aa6	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d52a46	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e64c64	xen_has_pv_and_legacy_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ec876f	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x29024097	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x293ffcf1	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951a872	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x2959d52a	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x29621fd5	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x29649545	xen_pcpu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x29723007	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x297dce22	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x29840e69	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x29bd6b67	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c781e2	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cd4cdf	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e1b451	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f5cfc3	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f623a5	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x29fed767	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1a5c65	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a21c7b6	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a40b947	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a58ae55	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e3b66	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab5e0d3	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac14701	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad8c544	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae2b98f	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af8d990	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aff68f9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2a0be8	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2ac216	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2befd9	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2f5f28	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b388383	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b67b6b7	mds_idle_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b695891	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b700f86	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7fc385	hv_init_clocksource
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b81669a	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9597ac	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2baf34ce	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb7fda7	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcdf6dc	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bdeeb5a	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bee868d	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf4038a	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2f5a09	x86_family
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c309210	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c55a511	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c55adf3	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5ec99e	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c608819	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6238b4	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7ee329	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c82d4f8	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb0e863	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb8f7a1	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc870c4	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd62c7c	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd943e1	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce34e26	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d080cea	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d12da2b	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d171fc9	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d669e86	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6f016a	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d711d3e	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d78d80b	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7b7c6e	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7db775	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8c855e	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d909fb5	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d91fb4b	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da7f91c	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dbb5088	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc0998d	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd2f69c	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd508f8	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ded4d6f	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df663bf	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e03dc58	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2df7f4	irq_remapping_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f43c0	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e514c52	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e578af4	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e626c90	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8974ab	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed084a0	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed2f8be	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ede2b4c	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1a815a	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f20c120	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3403b1	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f559e2b	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7b5737	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7f8e4c	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f850263	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f86695f	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f973771	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd5b27e	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd73582	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdcfd28	smca_get_long_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ffeb006	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x300e784a	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x300f3469	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x3018df32	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x301b34d4	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3024bcaa	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x305daf23	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x306f5576	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x30748cba	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x307983ac	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3096a700	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cf804f	slow_virt_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dbad71	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ebe8a2	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f6ea55	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ffec1f	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x31128b8e	hv_remove_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3124bcbd	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x31441e9a	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x315a2f59	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165daa3	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x316ce9ce	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3185f26a	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3190f046	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319bc01b	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x31afe6ed	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b69264	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c0d352	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c3913a	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cf594e	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cff085	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d8d4d0	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31fcbed8	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x324d0695	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3274ad77	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3277cc5e	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e3354	__memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bdf05e	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x32be1f88	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bfb634	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c863a7	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3b076	mxcsr_feature_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ed369c	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x32eefeca	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f14cd7	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f5fcd4	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x330fdd59	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x33594208	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3361712a	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x3362b03c	xen_p2m_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3364c594	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33655159	xen_pcpu_hotplug_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3368fea5	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x33770a80	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x339ffb61	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a8c0e3	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x33be3d32	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c1d731	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ce669d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x33dd9940	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x340533bf	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3408d846	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x341baea4	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x341f6995	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34283471	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x342ef5f3	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3442a198	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3447e7df	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x3458d695	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3470bec2	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3477b3e6	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3488aed6	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x349beb46	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a25ac2	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c870fd	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d6484e	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f0b9ab	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f70c6c	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f7b766	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fec404	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ff2b47	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x3507aca5	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3537f7fb	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x35416648	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x354af494	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x355c6df0	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3578e112	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x359a2278	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x35aba345	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x35cf3f52	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e2db96	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x35eeeb5d	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x35fdcf96	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x36170606	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x36586cda	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x3662312c	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3677a0c7	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x367901ad	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x367f8839	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x369e5b17	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ad7640	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5497e	intel_iommu_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x36cf406c	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ddf9a8	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e4ec44	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f140bc	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f6c45f	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x370507ba	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x372ad40d	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3744ab35	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x37604c2c	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x37791aff	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x37794a8c	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377c03bb	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x378c34c3	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37968691	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x379a6502	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x379fca12	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b550a7	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b8e595	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e6bebd	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f292c4	pmc_atom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38198101	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x38198175	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x381c790f	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x382030d9	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x38272dd2	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x3831a7f2	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384728fe	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x38722f80	kernel_fpu_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3874a3b8	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x387613f8	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x38870d5b	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x388715d2	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x38906f5f	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x389f2bc6	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a0827b	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae2925	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae55fe	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b0069d	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b18b02	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c388f2	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c71e82	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e18786	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e9d7ed	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x39032399	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x392edf02	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3931b0f4	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x39426fb1	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3969bc88	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x396b3edb	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e2fd7	ms_hyperv
+EXPORT_SYMBOL_GPL	 vmlinux 0x398466bc	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x398793f7	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3991050a	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x399686f7	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x399f352f	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a440f3	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x39aa76a6	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c70762	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e4cf2f	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fa09ba	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a08853c	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a17a9c7	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2641db	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2c88d3	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a3b7010	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4af5a2	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4e13d9	tty_ldisc_ref
+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 0x3a5feb91	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a606f08	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6267d5	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a69f85b	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7d80f9	xen_max_p2m_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7fdb71	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a83e186	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8bbb8e	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa951ee	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab8294d	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af578f5	hyperv_report_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b071503	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b14c882	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3cd439	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4101d9	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b47c174	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5121fe	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b600f55	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b7f82c8	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b91db5b	intel_pt_handle_vmx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba245a8	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc52a67	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be55f03	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3beebfe7	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf6bf7a	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf84b64	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c007d5c	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e8050	hyperv_pcpu_input_arg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c13ebaf	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b43ec	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3dba0f	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3dbb89	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c433dde	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4782c0	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c5649a2	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c8f36e4	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c93b9e2	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9ab861	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ccaaa22	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd538c1	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cda81a4	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce70155	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d33241a	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d389a65	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d44e069	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d462d0e	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d46c718	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d61186d	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7603af	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d84ef81	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8dccfd	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9f1904	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da14a80	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db0811d	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db7cff4	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbd6a54	pci_msi_set_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc66a31	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc7e33f	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcbbdaf	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcd99b1	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de49576	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df0269c	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfeff3d	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0c9942	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0d3e73	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e144476	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1ece8a	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e319310	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e32d7af	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e42fce7	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4cb57e	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5ceb7f	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6eb003	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6eb9d1	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e746066	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e85d941	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e964bd4	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea018b6	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea6ae1f	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea8fa6a	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee5e38e	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efde9f1	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0a5605	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f100e5e	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f16a0ac	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f23e47b	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3fa5ae	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f49bb6d	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b6caf	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5177f3	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f66af02	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f73c379	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f77ce9a	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f7a712b	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f815a6d	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9e35f4	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae6ab0	hv_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc1997a	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc8af27	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd8e9e0	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x402c5bdb	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x40364565	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x403987be	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40421578	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4053210d	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4058bd4d	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4092619f	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x409c68d8	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x409cc8bc	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x40a489b9	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c3feb0	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d15561	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f44c88	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40fb81a2	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x41042702	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x410b0604	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x410b485d	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x41200129	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129c8c8	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129f5ee	kernel_fpu_begin_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x41458108	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d6d70	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x414f403b	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x4150af54	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x4152b862	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x4158c087	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x41629549	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4164091d	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x416f624e	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x417346d9	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x41812e15	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x41916678	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x419297dd	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x419f79b3	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a19e8a	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41bbbf5c	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c20fba	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d46f82	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e21191	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205c392	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x420d7383	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42167370	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x421a07cd	efi_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42313219	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL	 vmlinux 0x423b8595	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x423e1143	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x42437b41	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x425c1ab6	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4262db49	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x42665d4c	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x428207b0	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4293e0c4	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x429cda40	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x42adbcbc	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b60b25	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b9ccc8	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c057bb	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c63b0f	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x42dc2f46	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e256be	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e6b1b5	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fb5adc	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fbc1af	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x430ae8ff	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x430e2ec4	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x431734b1	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x431a2f19	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4324a0df	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x432f0fe2	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x435af626	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4368ac99	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x436d7006	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4370887c	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x437a2817	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43cdea02	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d3e377	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x43eea417	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x440da8aa	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x4414b7d4	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4441964d	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4447a9ae	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4448206c	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x44687d51	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x44690c3f	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44912494	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c2e7e7	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d24b33	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d4b0f6	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x44db2973	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e5b219	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f35361	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4500ff9a	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x450110e8	perf_assign_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4508d672	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x452196b4	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4541fe0d	mtrr_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x454e376b	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x45594a21	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4563c93b	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4583cf24	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x45907a21	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x45952a5d	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x4598a208	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x459b4c10	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cc1e01	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d14bdf	hypercall_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fb004c	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fc8360	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x460c0c12	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x460c5758	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x460fa763	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x461f024a	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x46370352	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x463d8290	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x463fd03f	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4642fc19	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x46456960	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46721538	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46732422	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x46770212	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46826338	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a4254c	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b3c70d	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b785cb	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d61c93	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d7e021	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e10585	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e879ad	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ef564b	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46fa22f8	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x472f1fcc	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4734f8f4	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4735c995	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4753e14f	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x475a2520	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47795448	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47939908	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a2b163	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47bc9073	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d649ee	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ec5bed	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f9e493	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x48032eff	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x48240d5b	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x482e44f5	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x48385128	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x483d35b0	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x484f43f4	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x486050c3	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x486242b0	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4873352a	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x487a7791	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x487bc415	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x487fa3a9	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x488813d9	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a93c9b	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ac24f5	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ae54d4	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x48da68b1	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e571b5	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e8c5be	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e9d2f1	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f983ca	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x490ab6ff	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49496cc1	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x494e62f7	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x49559e95	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4958b43e	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x49679915	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x498046be	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x49835946	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x498bce6d	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x499204a0	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x49951708	sev_enable_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a8109a	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bc616b	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c14a61	ex_handler_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c7006f	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cd70de	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d0d61f	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f40a24	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a058540	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a147b47	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a285164	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4f30d0	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6a0161	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a70d8e2	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7f342d	uv_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7fd8b7	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a81ea8a	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8cdd15	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8f98c2	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa662ce	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aafb2fb	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab3ae7a	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab4043b	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4adf9f08	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4afc8202	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b13f94e	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17c6c8	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1b06fa	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1d94aa	mce_is_correctable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1fd6d1	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b215119	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b47f742	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56ce05	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5f229b	vmf_insert_pfn_pud
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b64c24d	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6f48b5	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b756cf3	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b762828	start_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b77bdb9	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba93e3e	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb0adb0	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd18675	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bda732c	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bddae5f	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf22c68	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c064953	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2f4540	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3d06f0	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c567899	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6839b6	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6d1d58	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c762b5c	x86_stepping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c87d287	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca314d0	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb070aa	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbd5137	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc3b5f4	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc4e85c	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc9e137	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd40afb	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd8d83d	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce52f14	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cee0a9b	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d207221	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3a93f8	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3cbe2d	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d601fb1	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d67a2ed	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d69d312	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d954b84	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da4c20d	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4daaaebd	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae5e62	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc890ff	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd0a379	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd78300	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de5229d	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfb50a1	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e030e00	del_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e0522b0	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1cf8e9	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e213019	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e32024e	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3c69d7	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e412e22	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e56eb2e	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5d2893	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e728d59	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e81a5d1	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e89c6ba	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8b47fb	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eaef637	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb3029d	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecb9b0e	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecc194c	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed709ea	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efb2cf8	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efee91e	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1196dc	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f19e417	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1c5d5d	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4210af	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f71d853	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8d70d1	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa65c40	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac98a7	machine_check_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb14aa3	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb4a5e2	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbc90de	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbd49b3	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x50047808	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x500520a4	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0x500a9d53	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x504ebbcd	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x504f2464	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508b5de6	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5092a93e	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5097b940	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x509b43ad	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b03f5d	l1tf_vmx_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b0fa60	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b9b141	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1f870	pgprot_writecombine
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x512f2f96	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x51383fda	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5142e8b6	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x5149ab3c	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x514b0cf6	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x514e4c2b	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51586642	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5165f521	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x51775299	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x518a59a5	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x518bc389	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5190104c	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5191ea8c	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b41b69	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ba17e6	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c8de10	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c9c897	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x51cfd902	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d89e05	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e093db	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e777ce	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f325ad	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x52015727	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x52021308	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5213e866	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x521974a8	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x5221150f	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x523164b1	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x5240776e	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525c0273	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52608451	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5266e693	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x52791d2b	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x527d4f30	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x529ecf1c	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a7eed5	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b011ef	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x52bf7282	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e7e6a5	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5306a1a4	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5321bde0	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x533045eb	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x533c745e	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x533d5fb1	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5353cf52	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x536c43ac	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x53784274	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53909a72	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5397c2f3	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x53995468	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x539f157b	pci_xen_swiotlb_init_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a642b3	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a7f533	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x53bf2c27	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c47c53	apic
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cf78ff	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f19f60	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x53fd64bb	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x5402703e	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x54126185	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x54160458	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5421f228	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x54277a0d	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x54391237	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5456831a	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5471c24e	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5473c10a	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x547567e3	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5493fbcd	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x54951154	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x5495f9f1	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c7bb78	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e5f325	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f469d4	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x55073861	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x550ce709	pat_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556bb364	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557c33ee	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x558f1d18	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x559613c2	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x559e546a	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b64aaa	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d95b09	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e20ae0	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e43e82	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e53608	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5601e5d0	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560abee1	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x561430d1	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561c1be7	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5629fea0	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56398615	mark_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x564b67a7	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5652f3cb	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c8b0a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x56623f52	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5666ac52	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x566cbf9c	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5677dcc1	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x56811058	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5699e807	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x569ae4cb	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a127d5	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a715b9	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ac39ad	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b4eeff	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b9b4d3	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x56bbb723	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d322d8	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e05d77	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e57948	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f0f36b	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f921dd	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fae491	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x570f520a	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5718c513	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x573e8f9c	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5747fa84	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x574fc58c	system_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x57584f91	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x577c7510	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5788d02a	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a67709	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a6e3ec	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c7fcd0	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f3a690	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x5800a787	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x580b8068	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831081f	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5837fd52	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5839920d	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5855422d	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x586591be	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587a69d8	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5889c723	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x588abbda	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5893f6ab	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x58971513	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a16d52	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b419fd	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b5cc97	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x58cb2fd2	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d6311d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f03b99	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x590297e6	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x5925d610	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5926a0ef	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x59291348	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x59390d22	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x593d9871	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5949bd5d	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x594bb503	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59933c95	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x59945642	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5999aa9f	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b7200e	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c22800	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c34471	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c6aff4	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e0e5fb	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x59eede04	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fe4c4b	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a251fd8	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a295367	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a385d59	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a39bfe0	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a40217d	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a77e0f2	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8de2e0	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a93ee28	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aac98ae	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aadae33	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aceea34	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x5adbcdce	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af83551	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b037891	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1ea8b1	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b22312f	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2d9248	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b47fc08	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4bcc17	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b84511d	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8580e7	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b87d534	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b884364	hyperv_report_panic_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba31260	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba3e9f7	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba86c52	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb289ac	__tracepoint_extlog_mem_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd4ac9b	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bed0737	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf2b092	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bfef1c9	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c09ecde	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0b5960	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c401732	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6e6e9c	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca9937c	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cafab18	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb290eb	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc0ecbe	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc43ef6	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc62b94	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cca891d	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ccc61b7	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd697c6	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdaa6e4	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce9b551	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfe5514	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d12583d	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d332967	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d405e65	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d463e00	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d774066	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8205e0	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d87b590	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9317d7	uv_teardown_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da85039	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da8fa0b	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db33b94	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbcfa4f	boot_cpu_physical_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ddf4ecb	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de78e77	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dec73da	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df8dca9	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dfedfcf	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0658a4	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3f9574	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e5b805d	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6f028a	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e74cc45	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e79cd26	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7a5cec	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8444f8	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8a0000	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8d3c4c	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8da30b	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e99a768	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9dc791	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee1c975	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eeae448	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f026080	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f02e591	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2fcc83	ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f337012	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3ab72c	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3d660f	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4f193c	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4f6b46	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f78f30b	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f80d24c	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f91fa1a	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9583a0	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5faff533	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb02782	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd26093	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdfa2c1	amd_pmu_enable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe1266d	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe33945	pwm_lpss_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fec0c6f	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fefa4d1	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff1768b	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff34df8	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6018905d	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x601c9924	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x60206725	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x60234025	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6063e8c8	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6069bdce	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6078e518	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6097d44f	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60acf710	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cb0c4e	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d100de	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fc0e48	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x6105fde4	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612b1c64	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x6137a9b7	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x61527afa	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x61674262	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x616cbbf9	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x61809976	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6184cd83	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x618f8c82	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b14da	fpstate_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a1cbe3	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a291ea	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ba15c8	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c5c0cf	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d0b7e7	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d5beaa	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x61eee0ed	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x620f6fd4	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x620fcbac	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6225b27b	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x62690705	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x626d8deb	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x628355f6	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6289ef8b	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x628ba560	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x628e4ba0	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x629131d2	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6296c580	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b40348	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c82aa6	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cae61a	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f2ae9a	x86_vector_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fc9781	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x630dbb5b	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631d9b4a	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6340434e	x86_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x6346da98	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x635475f7	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x635852ba	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x636beb77	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6375eaee	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x637fe2d1	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a9653	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x639357d0	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x639e00d1	xen_find_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c259f7	node_to_amd_nb
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c8fd2b	hv_setup_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d1770e	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d3d09c	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d44115	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e33ab5	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e46cbe	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e49e44	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63eb1836	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f476dd	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x64062229	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x641d5092	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x64252075	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6440c497	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x64436b31	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6458c631	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x646d3f19	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6470a8e2	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x648a9256	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x648cf9b1	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a62e11	acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bdcaa8	hv_get_tsc_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c1fd23	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cef1b1	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d13ea8	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6527a231	dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x652f9a6d	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x65330296	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x65531fac	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x655be80d	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x656bb52c	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6583d66c	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x6591f64d	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x659ec2fb	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b56f63	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c5dd4e	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cb3079	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccbed9	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cd1edc	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x660d3f07	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x66197085	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x662bcc22	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x6630bacc	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663c7f36	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x666ed430	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x669ef428	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a77622	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ae4727	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x66aec06c	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bd2e5b	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ecf6f9	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fe47e9	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x670416bc	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6717f9db	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x672b51de	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6730b7a2	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6732be7c	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735de7b	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6737f4de	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x6737fc68	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x673f62b5	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6753de3a	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x676808d5	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67930cbe	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b205a0	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c82d56	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c8bf56	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c981d2	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x67cc6899	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dbc37e	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dc57da	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcd76b	uv_setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e341e3	uv_bios_freq_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x682f141b	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x684d6d6b	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6862b9f1	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6862bec1	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x688250c5	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689c90fe	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68cecf7c	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d2d815	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f1e54e	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f4664b	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fb3389	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x691d2807	smp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6928c6e0	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6929848d	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6932d705	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x694df79e	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6961c680	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696d7e0b	l1tf_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69921552	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a19d94	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a937fc	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b64bff	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c6356e	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69df9807	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e53df6	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f861c4	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a02a30f	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0ea45d	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a106938	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a260fb2	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a33c717	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6ea414	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a73559c	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a77ea39	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8c58b2	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a919942	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa1958b	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa25b89	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac57e52	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad6f33b	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x6adb54dd	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6addd1e0	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae160c8	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae99c97	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b03c7dd	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1a686d	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b46389c	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4677a2	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6d00e8	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6f4758	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7706dd	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7a4335	hyperv_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b948136	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba0ad56	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc6aac4	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc8499c	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd92cbb	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdd6c89	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2199b1	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b612b	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6931b8	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c726b86	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c796758	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7cbb9e	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c84a2bf	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8e2251	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c914209	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb6c096	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc2ce26	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc92155	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd28086	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdb9f3e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce5e889	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0253f1	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0d979d	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d12421e	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d191909	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1ff855	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d21cc3c	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2b2f03	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3b146c	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d499e63	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d52788d	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d59240a	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d65b1b4	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d695697	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d768a4f	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d915185	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9c3edd	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbb9012	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc9ffc8	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dde57a2	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ded8db5	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df80b9f	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df86ab3	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfe0d3d	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e28ad65	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e31d25d	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3bc97b	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e564692	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e629543	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e71043f	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e72539c	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7eb772	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e83a0c8	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e85b00b	local_touch_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e999a0b	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea7c313	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efc6325	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f06ee5b	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f11084e	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1b9408	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f23af86	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f32a66d	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f78a26e	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d5619	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa676ee	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faa0e0f	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fac6f77	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faf8061	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fcafd37	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fddc196	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe040f0	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffa3723	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffce680	x86_cpu_has_min_microcode_rev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x701cf7ad	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x703f5f94	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x703fd164	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7053d02e	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x70576fee	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x70680d44	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7071cbc6	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x707c7fb0	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x709b956c	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b24c5b	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b82dc8	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dafa2d	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dbc43b	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dc9b93	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ea1925	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x70efdbce	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f5332f	sfi_table_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x70fa804b	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x71007c1d	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7116bf8a	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7116ebeb	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7118363b	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x71236792	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x712646f2	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x71498b53	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x715c3693	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x715f86e7	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7182d4cf	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a9a4a2	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x71aff6e7	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d1c3f1	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x71db8088	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e06c13	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x720988a6	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7215730c	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x723e5096	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x724098f6	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x726105f1	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x72614d07	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x7274020c	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7286fcb6	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x728c8b87	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x7294b2e0	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7296e228	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x729a846a	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a7a0ba	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ae3a8b	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b8536f	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72cf00dd	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d48708	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e8a410	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0c75e	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0cf51	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f38ca9	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x731a8196	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x73250875	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x733c411b	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x73403944	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7346949a	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x73497416	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x73574c7f	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x7361b345	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x736f3e95	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x7383e9d8	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x73870114	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fe32b	amd_get_nodes_per_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a07422	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bbabc5	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c723a3	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e14e1b	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x73eb2f2a	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x74154692	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x7423ad8e	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x74331f09	intel_svm_bind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x743c3e33	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x743f7950	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7444395d	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x744f1408	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452adff	user_return_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74701d9b	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x747930b6	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74865e5a	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x749d05e4	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b4bb92	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c684c9	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c86c16	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d4a270	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d8a2e7	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f60429	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x75124978	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7515bbb7	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521afb6	leave_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752c7c53	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x752df67c	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x75436602	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7554c461	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7577892e	xen_pci_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x75792186	get_xsave_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x757d153e	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x757df763	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x758161ab	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x758e05b6	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a2fc10	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e766a8	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x7611690b	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x76351a2e	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7641df7d	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x767a6950	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7687b90c	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7689ed17	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x768cc7e4	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x768f97c9	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a5760c	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c392cd	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c52a12	__xenmem_reservation_va_mapping_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cfc41f	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d6d985	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d951cd	mce_inject_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7706d51a	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7713312c	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x771ed1be	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x771f1b76	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7724cf5e	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x776e8129	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77da780b	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7801ac71	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7819fd4e	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x78252b06	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7829292c	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x782adb74	hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x78379ff6	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x783de72f	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x784e7686	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7852fc2b	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785acaca	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x785e2eb0	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d84f2	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x78725d34	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x7876d0b4	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c4c2b	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x78812411	hv_stimer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x788d14d3	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x78984c94	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b236d1	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b24587	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d2a7fb	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ea0563	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ea3a1e	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x78efd383	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f7deee	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x78faf343	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x791748c8	adxl_decode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b232f	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x794cd247	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x796900f8	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x796a1e35	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x79778bab	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x79796843	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x79911d34	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991fd8d	crash_vmclear_loaded_vmcss
+EXPORT_SYMBOL_GPL	 vmlinux 0x7993a99e	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a14872	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c347ea	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cd338d	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf1043	fpu_kernel_xstate_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f2a0fa	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a02817d	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a02f579	add_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a03124c	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0e84af	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a13683e	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a241738	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2984a7	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a348439	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a38f07a	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a404fa4	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a453e42	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a767d02	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a786229	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7c5788	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a986c3c	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aa1041b	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aae44c7	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab2bc8d	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab6663f	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ababa8a	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abc95a4	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad7ae56	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adb020c	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae859c8	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aebd2be	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af42a49	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afa3c17	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b1a9dbe	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b22b3ab	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b27c6b2	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2c3442	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3645de	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3e5b67	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ef438	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4f7590	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7baff229	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbae0b4	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbb2970	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc7fb5b	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bceba6b	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcfd6c1	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bda467e	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf5714b	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf70728	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf75367	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfc53a8	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bff4a36	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c20b6a0	load_direct_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c27920a	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2bc5f6	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57421b	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7fd7e5	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c975295	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9f1a70	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca51686	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cac55ec	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc4938f	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccd7f32	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd79fe7	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd7b8f8	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cfa00b9	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e1d95	hv_setup_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1afa93	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d21bb9f	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3f2512	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59ae6a	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d5db783	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7ba63c	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d95b2d4	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d96def2	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d97f90d	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da49f0c	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db23d84	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db89f41	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc69d61	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc7c82b	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+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 0x7e077547	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e08fa26	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0ca548	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e178063	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4631a9	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e63dc1f	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e657f88	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea055c2	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea0c55b	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea1a2bc	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea49edd	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eabdb9f	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eda63c7	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eeb63f4	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef0cd70	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef29fcd	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f09c7c6	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3cae12	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4dc19f	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7494c0	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7f0625	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa50c26	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd30772	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd35f7f	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fdb23eb	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff58126	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff86397	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x8002455c	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x801bb697	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x80275d52	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x804d1b6a	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805f0916	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x806207a6	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8067b7c1	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a068c8	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x80aea2aa	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b1bb02	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c11314	gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d9134c	xen_remap_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x80da198a	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x80dad909	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e4ee68	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ef6f08	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8104f0c3	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x8112a322	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x811e3f0d	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x81201186	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x81221cad	amd_nb_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x812ba27d	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x81316162	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x81334ff3	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8142b284	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x81546059	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x815ff58b	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a13ee	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8186478e	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x81934847	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x819422ad	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a01d1b	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b3c838	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e70809	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x82100bd0	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8214b9db	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x821a6934	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x824f3471	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x827aa103	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x82946c07	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8296b546	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a2bfbf	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c30882	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x831d0d8a	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x832a45d0	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x83398080	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x837e0c61	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8387445b	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x838edf57	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8399e8c0	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b390f7	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x83bb66f2	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cc020b	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cfe410	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e7f2d0	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x83edb592	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f40ecd	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x83fd0ec2	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x840b024f	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8418b179	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x8425c15f	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843526fb	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x843654be	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x843e7359	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x8453abae	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x849377e7	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b268cf	sn_coherency_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84baadc8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x84bf574b	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x84efe411	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f513a5	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x84fba374	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ff8441	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x850c8ff5	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85200ecd	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8526733e	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x852feb62	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x853c9e49	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8548aa7e	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85587791	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x8563554b	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8569f912	pci_msi_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x856f0cc0	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x85702522	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8577c127	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8580c7b4	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x858af17e	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x85931e29	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x85954e1f	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8599c50f	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x859e39a1	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b53133	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb2c45	xen_has_pv_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d98365	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d9ee51	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f24b3e	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f3a7ee	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86010468	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x8609e854	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x86169f3e	amd_smn_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x861b0f1a	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8628892d	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x8654be58	hv_remove_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677f369	pvclock_get_pvti_cpu0_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x86859c19	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8691ea2d	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x869849b5	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8699d72e	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86bedcb9	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e0e923	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8702acb7	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x871ee87d	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x87351efa	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x8735ed3d	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x873f76f1	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x87541440	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8765e592	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x876ba5f7	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8771bc2c	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x87728324	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8776709c	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x877ca829	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87802b3e	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x879c1e46	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a4c2c9	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a615e5	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a67044	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x87aabbed	uv_apicid_hibits
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b49096	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b4a09f	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b93a28	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87cf2881	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e35609	hv_stimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e64181	amd_nb_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ebf9f5	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x88043d9e	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8804e889	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x8811dd2c	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x881dd2ce	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x883b2b51	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x886f3fe5	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x888941f2	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b3ba8f	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x88be0497	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ca2dee	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x88da0f41	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x88f5032c	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x89055458	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x890db4f1	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89437695	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x894f658f	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x89567b30	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x89609c9d	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x896984ff	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x896e548e	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x897b6918	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x897e29f7	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x89816591	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x899d775a	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a7501d	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cab1b9	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cae528	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cf3aec	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a00af1b	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0647bc	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a1d5cb3	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a37d9d9	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4b1e57	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4c9faa	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ca7be	hyperv_flush_guest_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a51f653	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5372ae	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a609058	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6493aa	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a661bcc	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6f219d	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a705b41	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7cb9c4	platform_thermal_package_rate_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a899ee3	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa0c8a7	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa23efd	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa51b7d	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa637b5	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aab2553	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aaf68ef	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac91da6	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad23d69	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad5ceb1	__uv_hub_info_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad764ca	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aeb57e7	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2e021d	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2e57e7	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b42e8e5	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6bff3a	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b767366	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9200fd	lookup_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba28689	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bda969d	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdfccc1	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bea59a7	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bff0b24	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c067797	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c10ce14	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c23ae23	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c28156e	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c57a36f	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5b89b9	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c611b4f	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c642af7	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6b629f	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c81acad	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c82fea8	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8d59a0	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c905758	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9d1661	arch_phys_wc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbcf222	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd6bd2	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc7fe24	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd97ea8	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ce316ec	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cebd6b3	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cee8dc7	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0a5cfe	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d190be0	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d379494	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d557058	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5811c9	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d591391	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5a3706	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d690764	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d77ea35	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9e2d97	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da20b4a	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da76bf4	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da8ead4	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db7be7f	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbcb9ba	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc82f1d	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dfe2302	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e01934a	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e19feb6	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e527d41	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e67d692	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7366c9	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8207ed	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bd4a3	hv_alloc_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea9d3a0	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb7a87b	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebda84a	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec6a92e	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed6c143	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee53e31	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef68724	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef69f52	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f05fa72	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2dd7ca	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2eb429	kvm_arch_para_hints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f403c04	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5760d3	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f70bee8	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f852784	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f85f8fc	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f88b20e	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa3be65	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa6a4d1	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb91cb4	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbf7938	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc4add7	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc83e6c	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd3eaff	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd73c35	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe2374d	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x90055ce5	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x9024f443	mds_user_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x902f11a3	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x904645b2	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x90471994	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x90555891	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x90698d10	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9084b044	clear_page_erms
+EXPORT_SYMBOL_GPL	 vmlinux 0x9088f0e7	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9099e117	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a3b032	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d8cc	hv_is_hyperv_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de0452	platform_thermal_package_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f4296b	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9103feeb	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x910573e9	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x91062043	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x911d19c5	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x912bbf55	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9135a818	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x913ebc8e	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x91448752	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x914aa0b7	hyperv_cs
+EXPORT_SYMBOL_GPL	 vmlinux 0x91598a81	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x91700124	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x917f5362	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x91954393	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x91983148	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bff61f	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cb097f	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e03a02	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e89ee2	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9203ab14	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x92141343	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x9226b25a	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9232d7e3	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d9dba	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9257a27e	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9258937a	e820__mapped_raw_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x9266977a	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x926b9a57	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x92716e3d	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x92862bf1	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b6c470	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c55dd7	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c560d9	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ed606e	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f8cc08	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9311fb3a	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9343415c	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9354e2c5	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9367b7d0	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x936aa0ec	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93768c81	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93940823	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a8223d	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c3439f	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x93cc1425	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d04ad2	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc2586	pgprot_writethrough
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93feb8d7	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9404c71a	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9405f434	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9414e5fe	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x941e9ef2	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424058f	arch_haltpoll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x942a53c0	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x94462aa2	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x944839cc	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x944c4513	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x9464bc2c	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x946cf297	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9471ee9b	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x947b40c6	cpu_smt_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a23d84	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c2b462	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d36dbd	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f296ac	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f47934	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x94fc82bb	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x95072a69	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x950e2e60	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x952a5a5c	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x952e126a	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9544312c	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9548d872	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x955c0e2a	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x955eef4f	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x956e6d1f	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x957d57e9	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9594507d	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e468b0	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95efa1db	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f7b0bf	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x95fa50f8	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x961bac3f	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x961c3d34	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9633bf8a	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9636b39e	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x963c1ffa	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9650fae4	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x965aecd2	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9668fa1d	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9688b217	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x968c4601	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x969d4f22	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a2aef8	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b1030b	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x96bfa2c3	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c8aee9	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d02d07	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ffda18	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x97003ed4	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9707802d	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c230b	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x97131347	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9719bcfd	pmc_atom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x973604c8	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x975021a8	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x97664276	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x976813a1	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9776991f	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x978e8a64	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9797af5d	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x979ee5ad	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b40a79	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c23c8c	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12355	hv_remove_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e91246	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fe5eba	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x980eecf0	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x98155ac7	pwm_lpss_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9819f900	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x98206f1f	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x9827e113	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x9828facf	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98452d77	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x9846a66f	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x985c2dba	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9873d2fc	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ab0a5	amd_get_nb_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x988a1a00	sn_region_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x988f8490	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x98951bee	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x9895ff36	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ad201f	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b3ba55	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98dc9810	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x98dd9ba5	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e1ae3a	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ea48fa	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f4d306	hyperv_flush_guest_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f5fd24	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9908e30e	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930f8a3	uv_bios_change_memprotect
+EXPORT_SYMBOL_GPL	 vmlinux 0x993d2d85	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x99430ba2	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x99470a38	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x99490561	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x994ae4f0	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x994b1887	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x995314d5	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x995951aa	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x999ffa04	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ae25a6	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b20f79	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c011d8	mcsafe_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x99cd6f53	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d69012	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x99da32cd	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f67324	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a03a2df	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0f49a8	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0ff4ff	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a12a086	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a277843	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2f0084	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a356738	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a38d151	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4a5dc1	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4e7319	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5e4f6b	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a648cb5	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6ae7cf	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa71c2a	efi_query_variable_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaac699	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aadf6f8	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9acc132d	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ade66ab	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b03832c	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1179a7	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b21b336	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b865a2e	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b918525	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b98a075	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9c345a	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9f3648	pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba22909	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2fc6b	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bad141d	hv_hypercall_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf1db8d	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c0fe31c	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c15d3a4	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2ca4e1	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2d3e16	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c61340b	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c767254	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7730ff	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c87b2d6	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8c1239	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8da520	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c94a69f	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4e7d1	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccbdf69	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce664fe	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cefb6c7	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d224329	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d337468	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d488277	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d49098d	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d695f5f	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6a311e	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d76b199	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d86312e	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8e82be	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d985873	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db49086	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db8f8ac	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc50311	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcfcd22	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de96f15	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfaa077	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e006414	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0f9ed3	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e31ad7b	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e392023	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e423bbc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e54ad6f	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7ba3c5	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e804a3b	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8b6d37	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8da3a2	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e913e15	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea1de88	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eab0e94	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed7fcca	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edc5d36	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edd0549	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4eb6bc	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f57d299	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f583b02	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f658e26	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f665f15	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d1f6e	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f71bc72	uv_bios_set_legacy_vga_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9b9703	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fab32df	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbb8e4d	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcdcb5a	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff5fd10	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff7e40c	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01ce684	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0203887	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa03330de	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0501695	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06389f6	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08045e1	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0838ad8	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08c5c56	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0996adb	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0bc2b9d	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0befcaa	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3ccc6	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d7c0b0	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0db9a5c	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dc2eb3	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e53b60	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ec9d13	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f03b90	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f27ee3	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f4eed1	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10604d3	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10a91c6	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11f9ab9	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1210975	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1336433	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15a4cd1	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17eff5e	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa182c93f	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xa193fc73	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19d6a2c	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ad92b9	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b98437	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c20f75	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d55d22	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e15725	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e48e7f	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ed9c8b	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2247cc5	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa255f620	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa25c8fe6	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa275a9f3	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27c3e06	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2885c86	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa290ed07	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a95552	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bf42c9	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d64da9	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2da3c45	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e5009d	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e59f34	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fdd5ab	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30ba206	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa311f35c	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31304eb	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fccb7	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fcfdc	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa358bbdd	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35fbfc4	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f6ee8	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3798835	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa388fb27	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3933968	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b0c89f	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ba86a6	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c3cfc8	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3cd62e3	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3daabc1	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f6d67b	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4124d21	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa414e4e3	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa425ec30	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42967fe	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa431732c	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa431aa7f	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4387ee4	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43a8ba1	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4408187	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4426890	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa447a9fa	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44ee937	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452a009	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452c297	hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4572a58	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa458973c	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46c3e60	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46e94f3	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48e538e	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4a6015f	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cb4d9e	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d9031d	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f61435	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa508d826	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50aa783	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50f60fa	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52380a9	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xa527e28b	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53587bc	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa541339f	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa550c31b	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5572806	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xa584b3e3	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586fcdb	uv_min_hub_revision_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59159be	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a40729	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c0f065	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5dce51d	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e2a16f	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6045b6c	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60714d7	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa609b337	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66653b8	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6869592	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6992c54	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6995596	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c35a9b	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cca5fb	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ead6ba	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7127da7	mce_unregister_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7187bda	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73c9256	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73cce3d	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74df928	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa763eeab	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7786323	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7883438	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7976768	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bcdf27	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cf6004	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fabbed	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fe79db	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80037f8	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8131bef	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa844370e	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8445963	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84638bd	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84c285f	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa856f5f8	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa858f0e6	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xa859c6eb	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8629962	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8654461	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86b0542	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87e740f	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa89eb1e2	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8dcd1c6	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e1150f	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e705c9	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f38cf1	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90b4d3e	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9282309	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa937bd77	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96c0364	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9841d1a	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854364	umc_normaddr_to_sysaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa992f351	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9990be9	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ad25df	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ade4d0	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c1c8de	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c5cc1e	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ef7968	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0e3d05	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e2b59	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa35c632	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa48852b	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa49eccf	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4ae983	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4e4eb4	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa547c95	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5aee1c	uv_bios_mq_watchlist_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5c7117	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7c08da	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7f4df8	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa86cfb5	uv_possible_blades
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa96f683	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaafe993a	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab08298b	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xab13bdeb	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1e0e93	hv_setup_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2e715a	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2fd34c	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xab433adc	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xab496c30	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5a3862	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5d61b3	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7afc54	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9174ff	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab925f95	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba75003	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb495f8	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc214c5	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe9bc0f	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xabfbbf23	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0ce30b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1d3503	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5486b1	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7256a6	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9b8d57	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca3fdfe	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc38f46	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaced3bfe	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf4252f	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf42630	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfe2b49	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xad01c434	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xad095c42	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad15e4e4	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2acb79	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xad30917f	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xad37de8f	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3a7ac0	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f0017	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad644a17	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7125c0	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xad85ad01	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8927f4	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadae4500	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb8f873	do_machine_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd8a780	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xade0c06a	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xade63dad	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xadeda0ff	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae146163	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xae195377	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1c8308	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae25bd8d	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae484620	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xae57cd3b	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xae64ead0	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86a936	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86c67a	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86d24b	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a7b72	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xae908a75	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9530b1	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9b0fb1	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeae1206	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf16ff20	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf507028	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5368b6	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf568bff	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb13a42	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc80d76	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd45337	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafded33f	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaffc7292	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0069bec	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb006d5d6	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb00b68f1	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xb00e4386	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08e57d8	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08fd476	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a3ac9d	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a400e1	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bfae24	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e22268	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ed0f56	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12bad14	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1332e4a	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14a28ba	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14e0884	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14f8858	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15c02cd	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1898271	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a02d04	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ae568a	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1cdc235	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ef0548	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2082bf7	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20e5ff7	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21af4f6	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb234126f	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2771991	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb285b8f8	xen_in_preemptible_hcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28c3152	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb293e25b	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a881c3	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aa2089	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aadf75	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2abdc12	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c35cba	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2cdca9d	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d08c1c	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2db44f7	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dfa8ab	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e58504	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2eebf91	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30e9c10	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3137417	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3179d6c	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33a0eb7	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36de26c	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb372aa53	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3866326	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38a4923	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38be02b	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39913f9	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3aac091	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c4b45e	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d4dc0a	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d8051b	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4055ce3	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42b266b	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45554f4	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47706d8	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47972f5	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49039aa	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a1cfcb	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a41fbd	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ac2202	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b663cf	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4cb7405	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d1968b	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501d893	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e1f27	__uv_cpu_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb524c612	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5491998	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5502d97	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55af5c7	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c6db7e	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ce3d64	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d63c5c	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e0fedf	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5eef637	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5f1076f	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5f30e26	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6074632	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60ae52e	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb61147e6	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6252266	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65912dc	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb662b022	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66715c7	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb673d57f	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6826761	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68446c3	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68797f8	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68dfac4	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb694ba8f	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xb698d20c	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c667de	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d1b530	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6fb2779	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7312a17	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7330923	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb733c4df	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74861db	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb761318b	sev_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb764cfef	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76e83c9	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb773588a	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77a6216	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c1aabe	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c25dc1	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cef64e	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d7c12e	hpet_set_alarm_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8156092	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xb817a4cb	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8431ac0	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb845d724	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8588200	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85d230b	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85ffc59	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8756bf5	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb888b8ad	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8921907	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89ff442	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2b1f7	mce_register_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d64462	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9144c4b	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb939eba8	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9444d51	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95433c2	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9705b17	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9736d8b	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99371cd	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b4c2e7	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c16f51	hv_max_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c424fb	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9db99d7	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e1f98a	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba01ec83	hv_stimer_global_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0be7e5	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xba181e3f	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xba29ec37	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4598ab	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4843d9	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4c9afe	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba57d951	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xba68ebbc	__xenmem_reservation_va_mapping_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6f2fac	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xba7b4c14	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xba7e314b	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8e2c38	irqd_cfg
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8fd6bc	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xba90eac9	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xba924edc	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xba984d9b	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9889e8	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa01a82	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac53a71	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacba0e4	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad56f3d	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae4a454	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf9d785	__tss_limit_invalid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafcc200	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0aea4f	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb18d31c	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2f74ed	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3cb3a3	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb409557	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4552c2	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4768f8	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb49fd83	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5a5535	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb677de2	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6d98a7	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb99a122	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba867a3	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb676ce	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc348b4	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe5baf8	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc04bd46	x86_platform
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0b0785	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2764b7	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3915e9	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4de034	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc60dc37	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6a929f	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc736f25	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc893f24	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc92fd05	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcaa6eae	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc656bf	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcca533d	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccdd956	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf31c4e	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0b27cc	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd174761	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1a2865	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1c5f64	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2f2452	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd377590	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd434990	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd4820ae	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb2dfd5	uv_bios_reserved_page_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc28889	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc5ff42	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd00bca	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf9a889	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe07f3fe	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1a260f	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe248956	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3a52df	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe477d4b	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe47cd1a	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe68ad83	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe82fac6	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe850abb	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe925d50	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf10a51e	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf115bea	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3d02c2	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf426a8c	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4a859f	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6664ed	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf666b88	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6b161d	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6b667d	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6e20ff	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf77aa02	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c855f	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c9a6c	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf8b9451	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb02606	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb1be70	hv_setup_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd0f1d7	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfda0bea	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff455bf	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffc8b1b	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02c9504	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0462cf8	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05ad9e8	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc068167c	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06a8fe7	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07ad057	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07c2231	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc080b71b	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bbce6	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b85058	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d543a9	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d812e4	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dbf4aa	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e96037	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f1e77c	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f8945c	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc107481b	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10831b7	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1273169	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1424a66	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc142ecf4	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1481af2	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1537f88	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15ba944	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18cdf36	amd_df_indirect_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19884ab	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19d5c75	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a2fbab	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b7729b	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b9515e	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cde909	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d51221	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1dd5753	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1eace55	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1edcfb8	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f0cd59	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f69707	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccf09	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fe73fc	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ff227e	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20cfd54	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2160384	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2209262	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2447c9e	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc244b11e	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24760bf	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b8971	hv_remove_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc279241d	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27bad30	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc287d96a	kvm_set_posted_intr_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29737c7	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ae70d5	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b09649	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2bb9066	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1e4fe	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c34bfa	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f63418	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fc7a6d	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xc30fccd9	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3256c3d	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc326d3a9	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33773c0	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3386606	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33aa371	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33b37fc	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3a07e9e	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3abeebb	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b2334a	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3bf282d	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d39098	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3edf6aa	save_fsgs_for_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40df109	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4123cbb	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc42d386c	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43a6197	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4611027	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc465b534	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b3673	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49097b6	is_uv_hubless
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4bb1362	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4fb84ad	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5124d84	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc512626a	__supported_pte_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5269ed0	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5390a53	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc565d7d1	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c8f1d	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xc591b527	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5996c8c	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cae5a4	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e9b512	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5fb79a8	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60f16f2	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61b2f0f	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6237007	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62a66c0	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63d901a	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc671b610	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67d13b4	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xc683da81	set_memory_decrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6905b68	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69ac7cc	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6acaaf3	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b10427	ex_handler_fprestore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bfa692	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c4906d	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d2ef89	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7101748	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc717440f	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71896db	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc725de57	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc727ea52	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7488c19	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74bad06	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc756aa5f	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7588779	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc76b0c44	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xc778c7a5	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7842ee8	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xc785c812	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79c064e	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a580c4	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b16136	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cdd4ff	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d8a844	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7db25a8	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e05725	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1cc1c	injectm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8235a21	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc824e6fe	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83732f4	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83989fd	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84439f8	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8555799	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85b066d	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc876fae2	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e487a	sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc883dbe8	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89ab28a	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a48e66	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cda823	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e68a2f	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f162c9	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f7757c	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f9a63b	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8fdaa1d	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc918efca	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9268da7	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9282ce9	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93bc99e	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95b2fac	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc963e8bf	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc973809c	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc976b705	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc977ba9c	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97ee1c0	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc98a5194	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c96494	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d7ac2c	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca161b5d	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2bfec3	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2f6310	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3346b1	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa4a67f	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa68533	cpu_has_xfeatures
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd3a64	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae2277d	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaef011d	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf0304f	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafaebed	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1c694c	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3e88af	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb53a0b4	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb55d78f	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb64db4d	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb67ee03	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb70a4a9	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7cc73a	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970751	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba884be	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1174b5	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc168bdd	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc18c475	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc26c2bb	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc26ce97	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc292b86	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dd1d2	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3e7767	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc477abd	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4a8ae3	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5f3958	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc60ed9c	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc63ada1	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc682bbb	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc710f6d	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc92bcc7	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb5cf92	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdfee6d	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce3c66b	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce8daaa	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea4e34	perf_get_x86_pmu_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf0c485	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfc6896	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0232d3	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd06ce37	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3dd4ba	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4b289b	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd63c67f	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7e6148	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd81a945	switch_fpu_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd847a9b	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd85c924	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda7b90c	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb1e178	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb7c9cd	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcbd25c	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcfc501	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddd3d55	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcded7620	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1a4fa	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf54242	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdfc538f	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xce00d2f5	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce12567b	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xce129587	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1c3b5a	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2959a1	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xce36c966	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xce411c98	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xce46a8a2	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8b9c70	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8cfeff	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaa0edc	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaacf40	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb66bec	sched_clock_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec85da1	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec8cead	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecdc777	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcece15ee	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee54503	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee9563f	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xceea9f7d	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed39a4	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8318	ibft_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf00c253	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0242eb	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf05db5c	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf14e2e8	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf174fb2	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf215ed4	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf27bdba	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf524fcb	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5bf1a0	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf61759b	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6b98a2	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf765838	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7c6a5d	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf88bf1c	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbbc6dd	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfccfa53	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd5d3f2	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03406b4	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0499cb2	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd054b116	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0550895	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06f4256	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0xd071dc7f	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a9825c	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c7bcee	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d0c5c5	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d248dd	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d8f77b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e32df6	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ef2757	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f584ff	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f881ab	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10a1a73	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11f52df	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12bd034	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13485e4	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1381571	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13acdfe	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd14ad69d	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd160c410	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16be075	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17c2563	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ffe19	e820__mapped_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1aeaac9	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b9bc7b	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c1f7f1	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c85688	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cd4d0b	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1de737b	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbc889	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2020e79	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20b7213	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22c9a20	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2387565	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25f636a	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26552e5	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26e501c	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27713c4	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27c8285	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28b9709	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2aaf825	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ab6740	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b723b2	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2be2654	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d1af03	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e83349	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30c4a52	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd332efc6	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33aa84a	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd35a1412	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3673665	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36dfa2a	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38cbfc8	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39ea9c7	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3aa44f6	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3acc547	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d15b30	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e8cd5b	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f04ce9	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ff4ad7	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42643bf	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42690de	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42d6f1e	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4382021	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd43bfd08	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45515fb	ptdump_walk_pgd_level_debugfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd468c244	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49056d8	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4934f13	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49db244	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49f11d9	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bd0578	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c04d79	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4cb533e	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f12b0d	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51f2d2e	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53855e4	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd544a217	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54a9c6b	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54f69e0	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd566d13f	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5834e5f	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5855289	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd58a8c36	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b05b92	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f3bb7b	set_memory_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd607d6c6	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd612e15c	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd613e41d	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6161275	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62855ef	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xd638abf7	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67df3cf	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd685da7d	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69753d7	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd698abfc	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69b6866	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b1fdd6	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b9589e	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6bda367	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d97420	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6dd0650	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e22611	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ef8724	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ffe6fa	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7061503	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71e217d	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71f9aaf	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71fc7f8	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7222c7b	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73ab130	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74de429	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e819	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76bb0a2	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7864e36	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xd792d69f	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b3b099	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7be585b	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d34828	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80a3fd6	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80e746c	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd839320c	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842be4f	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84f2298	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8765bdb	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd889a46b	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88cdbe7	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a266c6	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a74307	isa_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d5ea0e	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8efb4fa	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91f54a2	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92d9971	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f3238	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9367dfc	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9439c9c	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd950d4ea	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96ddf3e	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd983ee48	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd989839b	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98d3374	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98ebf18	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xd998b96b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99ffd62	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a89d1d	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9aff7bc	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9cda1b9	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1af999	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1d3ebd	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f78ee	clear_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2c5ab2	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3d3997	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xda51037d	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xda57134f	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6235d5	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6b5af8	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xda78b28e	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xda90233f	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9f4d49	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaab3365	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab0aa79	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab90f52	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabd06e6	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdadd8850	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf50cb1	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafe6397	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb20a95c	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2b8dfd	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb77811e	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7a85bb	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7e6449	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8562e4	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb88ce97	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd5239d	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdcfa7a	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf37412	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0f8e7a	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc11cb21	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1c672f	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc224c0e	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3687d6	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc373186	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3d60c8	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3ff54b	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc4c9f8f	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5a1b0c	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc62087f	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc648326	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc65c663	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9ac193	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca46043	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd233	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccc16e8	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd03bb76	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd07ea1f	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2bca77	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd32627b	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd429ecf	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd44bef4	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd45a5a4	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4b6438	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd532021	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd552179	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd56f115	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5822f8	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd66e75c	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc46f37	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcf80e3	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde5b905	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf81090	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xde00bb6c	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xde036cc7	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xde082929	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2b95ad	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3c803e	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4220a4	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xde47ee41	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4fbe0a	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xde50cafb	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xde539c68	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xde55776c	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde57b852	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5c5147	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8ab770	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xde98ec1a	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9a3b2c	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea0993f	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebd773d	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2f8de	perf_msr_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xded54044	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedd7973	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee5bca2	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee8f048	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef7591d	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef8bde2	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf05b88e	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1511d1	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1882af	dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1a092a	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1f579e	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf334edb	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf40c027	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4560ca	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf458794	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf481814	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf66637d	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7125cc	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf760910	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf81924d	uv_bios_mq_watchlist_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf840130	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf84721c	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf875c83	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8c4f4a	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8dd66e	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf926a48	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf94eaf1	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9845d8	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf99a3af	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9a6960	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9cc560	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb0e7fa	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb309d5	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc5e260	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff04ac6	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe005a0d5	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0138431	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01953ee	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01eef0a	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe029eadd	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f53ff	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe078d7ff	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe082437e	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xe087e844	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08a2f5c	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a51d4f	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b69986	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d668e4	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ee9f3f	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1063c7d	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12328d2	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12da4e7	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14a2000	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe159e135	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe162b8e8	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1733de9	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xe176c575	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18c070f	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18d791b	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe193ca1f	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a58dd3	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1aa2d62	set_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ad1adc	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1afbc46	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b414ee	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b8d030	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bfa28a	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cccbf6	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d519a1	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1edae75	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xe209c490	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d8dc8	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23da11f	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2497e2f	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24beb59	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26a9e5e	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27e3523	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xe283fa18	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28fc15d	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe295c0ff	is_hpet_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cb03a7	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d2e161	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xe300fd37	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30b538c	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30e49ed	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3319d6d	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34334fb	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3570b74	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe364ecee	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3717a2f	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3768790	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe399b13a	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c7216c	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ff2dc5	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe407cf15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40c0129	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4150713	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe432363f	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43e6282	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44ea235	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45d9af5	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4683a55	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe477ba4d	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48611ac	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48e8454	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48ef340	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe491c85d	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4967d03	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc9466	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e15c59	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f71163	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fbcd94	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5016459	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5154413	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51b0b60	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51cf95b	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe520ba03	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52f2d38	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52fc737	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52fd040	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe554f2ee	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55983c2	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55e07b1	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe57e8edc	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe591084b	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59a1a42	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a80da7	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ca8bcb	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5da3eb1	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f1301e	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe645e09c	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ad8ea	unregister_nmi_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe650e590	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6646439	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe664b31f	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe673c6c1	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68e695e	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a87d77	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b84f9a	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c02996	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6eb9708	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe70969b8	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71438d4	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe740b58a	hv_vp_assist_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74db77a	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe759e97f	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe763bf34	pwm_lpss_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7689eb4	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe790c740	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7aac42d	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ade078	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b71592	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b9da15	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cc176f	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d29e83	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d76926	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f1eb3d	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe804c590	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81d4473	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe825b7c5	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xe830074e	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83eba32	itlb_multihit_kvm_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe867572d	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe89f2366	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8adad97	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8be56d4	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ee77b0	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f55946	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8fc68eb	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91c6d03	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93660a2	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94df56e	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94ee138	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95118ce	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9591531	pwm_lpss_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97c776a	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97da514	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a75313	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9aaf37b	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ab46cd	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ae5277	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce931a	kvm_para_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9dfa46f	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e7ba16	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9eca456	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f0dab6	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0cbf3a	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1eb67c	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2403a0	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2ebffd	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xea524a1c	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6f4359	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7d66cf	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xea8e77e7	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9d0c78	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabe549a	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xeacd0100	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadc40ae	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae4c037	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae5e927	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf402fc	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1fff9d	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3aaff2	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4221ce	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4ab512	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4b3056	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb569de1	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5d0dbb	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6a77fc	set_pages_array_wt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6b16f9	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb74c1d3	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb833c22	xen_has_pv_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb898227	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8c3dd9	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb90b3ac	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb90fd73	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb96dd54	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba76179	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb63abd	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb6a5df	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe0a013	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe18637	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe609b3	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xebeab206	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xec15bec5	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1628e6	pv_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2ac8a1	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xec485f56	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5c2279	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec788566	acpi_target_system_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7ade6c	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9c87df	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb16df4	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb97be7	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf27912	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xed08e540	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xed13363f	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xed16aa99	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2afeb8	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2be504	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2e0d27	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3fd6da	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40c481	kvm_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed69230b	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8d1e7a	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xed956da0	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9b2695	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda2831d	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb5b382	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc28591	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc85c80	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xede68c8f	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xede96e51	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xede98ec5	intel_pt_validate_hw_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xedea3aac	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf47135	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0652b5	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0fc780	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xee13e697	set_personality_ia32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+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 0xee6e4e15	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xee70fa74	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xee878b9b	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xee99559e	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fcda6	apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeebecb0f	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec512b7	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec8b5da	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed0ced2	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed75239	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfe564	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee667d3	fpregs_assert_state_consistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee9bfd4	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeec29e7	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef27c486	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3511be	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3608b3	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xef41cbc4	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef48542c	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef579eff	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5b26c6	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xef63c0cb	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7c259d	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb47dcb	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb6ab28	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb73c81	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc6b29c	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd75f7d	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01be8c2	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0232f3a	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0240d74	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf030b280	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf035d073	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0407ae9	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf050a6c3	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf057aa59	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf057b62f	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06737da	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07bf65b	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a1392c	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a1fac6	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c5338c	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e93f1e	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0eac08e	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10213ba	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1139cdf	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xf118752f	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf128f6e2	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15d7ac5	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xf170ece7	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1767545	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18b397b	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19590de	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1992aa5	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b1274a	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1de0b10	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ee1204	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2127abc	hv_stimer_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf217ad70	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e82c7	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22ef1d3	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23cfd3e	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24d1193	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf257fe28	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26080ad	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf271891d	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27b91fd	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0416	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf280404b	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2845a4d	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2850e11	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b5d046	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d38606	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e8a5cf	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f49582	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31e59ae	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33175f5	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34be0d4	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34d5f2c	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf355b4aa	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3954f31	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b1a074	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d14586	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e03e7e	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e4c418	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ef03c2	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ffabb5	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf406384a	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xf415cdd6	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41cad8e	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42f1a9c	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf44d6f3c	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf453a152	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4693a66	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf473b4e8	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf478d387	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e020f	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4824002	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf487def7	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48e0ce6	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf498e06b	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49a4b06	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a0b015	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b25a2f	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b2b7a0	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4bfdf36	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d44829	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5057232	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51dc113	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52eb15f	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52fcb71	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf538a98c	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5415138	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5550b5e	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5733a86	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59e8da2	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a72ac5	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c84306	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c9a51e	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cbc4b9	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5da561d	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf601560e	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf612073d	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6230e49	fpregs_mark_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62dbb8f	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63ba94e	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63e1df0	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64bb88c	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6505040	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf653d7a2	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6564da4	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf667ccf9	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69f4aa2	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a7620b	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b96d6a	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bbad67	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e1b478	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf700fb4b	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70183d9	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70648d5	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7165192	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71aca98	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71e7d71	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7257384	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73a62b2	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf747bf08	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7500c99	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767ca35	fixed_percpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7904515	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79c3bd9	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c5989b	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ca7edb	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f59d77	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f86f2b	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fad814	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fb72ee	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8148071	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf815799a	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf818a25a	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf823c2d8	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8295971	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8301db1	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8417a2e	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8420145	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf842e201	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8431ef0	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf843a4b2	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84a792b	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8756557	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf881cecd	load_fixmap_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89436ce	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b327f9	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b9bf3d	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8da0698	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fe3986	pat_pfn_immune_to_uc_mtrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92df1c4	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9329c62	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf956385e	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95b0020	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0xf960de3b	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf986d6dd	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98964dd	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98a6bc9	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9997597	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99eade9	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab309f	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c03709	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cf727a	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e762eb	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f36051	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f7212a	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f733bc	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ff4352	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0bb999	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa186267	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa35044a	alternatives_patched
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa3c0d69	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa51c2b8	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5dbebb	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e33b8	isa_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7a5126	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7af257	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7f9bc0	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac1da40	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfacfa410	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae4db7b	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf30ea3	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0fc6bc	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13dd2e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1520a7	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1c7119	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2af036	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2ba82b	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb40cd3e	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb58030d	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60ca09	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb61e567	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8f48f2	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb91e318	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba795de	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc3308c	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdea928	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe5859c	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf77e14	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc04e35b	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc143611	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc162fae	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc18f6b3	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc247db8	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc370582	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3f1857	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc40264b	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc59763d	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6fcb2b	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7866b3	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca669f8	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcabb234	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb52178	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcce139b	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcddec82	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfce5780d	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcec09b8	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf11c7a	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf1d37b	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf3342d	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd401c41	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4d7773	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd736ce9	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd78a312	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7dbbf1	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd931a8a	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9c91e4	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda2d345	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb32b95	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb54da4	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd5b115	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb0be9	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb12dc	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfa7029	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe09ef56	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0f53e3	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe149780	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe19f8ae	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2bbd2e	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3155d6	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3db827	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3f8bb2	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe477cb1	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe546d0b	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe615874	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6fd6ea	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe727411	get_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe85baae	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe92d2f6	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec5c7e7	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed6d476	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed85864	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee22c0c	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee2be05	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef8133c	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xff029439	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1e67b9	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff24bb9f	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xff27dec5	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xff28d732	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3ead98	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xff4724b3	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff701706	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xff706454	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8dcb85	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e74e2	arch_haltpoll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff970be9	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffaffd35	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb990a1	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc05dbe	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc3bd74	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc82e9f	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd16b3c	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xffec4233	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff4cbe5	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffc4d4d	sock_diag_put_meminfo
+USB_STORAGE EXPORT_SYMBOL_GPL 0x11c521e6	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1aa65a37	usb_stor_reset_resume	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 0x208f1855	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2eb9de40	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x37faef9f	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x44aeffbc	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4ee27e51	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x515f6fa2	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6cc306b8	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x732c83d4	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7d32d282	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7e24dc35	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x940f910e	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x95931310	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9a92cc83	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9b4cce36	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaa140d69	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xac041f90	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc54ede07	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xde36d43f	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe4793252	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe5e8e4fe	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf4163345	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf8956786	usb_stor_CB_transport	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop.compiler
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop.modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop.modules
@@ -0,0 +1,5503 @@
+104-quad-8
+3c509
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_dw
+8250_exar
+8250_lpss
+8250_men_mcb
+8250_mid
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+BusLogic
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acer-wireless
+acer-wmi
+acerhdf
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_extlog
+acpi_ipmi
+acpi_pad
+acpi_power_meter
+acpi_tad
+acpi_thermal_rel
+acpiphp_ibm
+acquirewdt
+act8865-regulator
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv7511-v4l2
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+advantechwdt
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aegis128-aesni
+aes_ti
+aesni-intel
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+aha152x_cs
+aha1740
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+airspy
+ak7375
+ak881x
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alienware-wmi
+alim1535_wdt
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+ambassador
+amc6821
+amd
+amd-rng
+amd-xgbe
+amd5536udc_pci
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd_freq_sensitivity
+amd_iommu_v2
+amdgpu
+amilo-rfkill
+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
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+aoe
+apanel
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+apple-gmux
+apple_bl
+appledisplay
+applesmc
+applespi
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcfb
+arcmsr
+arcnet
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3935
+as5011
+asb100
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asus-laptop
+asus-nb-wmi
+asus-wireless
+asus-wmi
+asus_atk0110
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atlas_btns
+atm
+atmel
+atmel-ecc
+atmel-i2c
+atmel-sha204a
+atmel_cs
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avm_cs
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_charger
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish-x86_64
+blowfish_common
+blowfish_generic
+bluecard_cs
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia-aesni-avx-x86_64
+camellia-aesni-avx2
+camellia-x86_64
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5-avx-x86_64
+cast5_generic
+cast6-avx-x86_64
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+ceph
+cfag12864b
+cfag12864bfb
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-x86_64
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_laptop
+chromeos_pstore
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cio-dac
+cirrus
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+clk-cdce706
+clk-cs2000-cp
+clk-max9485
+clk-palmas
+clk-pwm
+clk-s2mps11
+clk-si5341
+clk-si5351
+clk-si544
+clk-twl6040
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm36651
+cm4000_cs
+cm4040_cs
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobalt
+cobra
+coda
+com20020
+com20020-pci
+com20020_cs
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_pcmcia
+comedi_test
+comedi_usb
+comm
+compal-laptop
+contec_pci_dio
+cops
+cordic
+core
+coretemp
+cortina
+cosm_bus
+cosm_client
+counter
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia2
+cpu5wdt
+cpuid
+cpuidle-haltpoll
+cqhci
+cr_bllcd
+cramfs
+crc-itu-t
+crc32-pclmul
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-pclmul
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_ishtp
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_lpcs
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+crvml
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+ct82c710
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062_wdt
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_cs
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcdbas
+ddbridge
+de2104x
+de4x5
+decnet
+defxx
+dell-laptop
+dell-rbtn
+dell-smbios
+dell-smm-hwmon
+dell-smo8800
+dell-uart-backlight
+dell-wmi
+dell-wmi-aio
+dell-wmi-descriptor
+dell-wmi-led
+dell_rbu
+denali
+denali_pci
+des3_ede-x86_64
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dps310
+dpt_i2o
+dptf_power
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dtl1_cs
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-edma
+dw-edma-pcie
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-pci
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+e752x_edac
+earth-pt1
+earth-pt3
+ebc-c384_wdt
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_bhf
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edac_mce_amd
+edt-ft5x06
+ee1004
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts_serial
+ehci-fsl
+ehset
+einj
+ektf2127
+elan_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_pcmcia
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esb2rom
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+eurotechwdt
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-axp288
+extcon-fsa9480
+extcon-gpio
+extcon-intel-cht-wc
+extcon-intel-int3496
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71808e_wdt
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fam15h_power
+fan53555
+farsync
+faulty
+fb_ddc
+fb_sys_fops
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fjes
+fl512
+floppy
+fm10k
+fm801-gp
+fm_drv
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fschmd
+fsia6b
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftsteutates
+fujitsu-laptop
+fujitsu-tablet
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-clmulni-intel
+gigaset
+gl518sm
+gl520sm
+gl620a
+glue_helper
+gluebi
+gm12u320
+gma500_gfx
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpd-pocket-fan
+gpio
+gpio-104-dio-48e
+gpio-104-idi-48
+gpio-104-idio-16
+gpio-adp5520
+gpio-adp5588
+gpio-amd-fch
+gpio-amd8111
+gpio-amdpt
+gpio-arizona
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-crystalcove
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-f7188x
+gpio-generic
+gpio-gpio-mm
+gpio-ich
+gpio-it87
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-ml-ioh
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sch
+gpio-sch311x
+gpio-siox
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-vx855
+gpio-wcove
+gpio-winbond
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-ws16c48
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpu-sched
+gr_udc
+grace
+gre
+greybus
+grip
+grip_mp
+gru
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdaps
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+hecubafb
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfi1
+hfs
+hfsplus
+hgafb
+hi311x
+hi6210-i2s
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-hyperv
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hio
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hopper
+horizon
+horus3a
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp-wireless
+hp-wmi
+hp03
+hp100
+hp206c
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hpwdt
+hsi
+hsi_char
+hso
+hsr
+hsu_dma
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei-wmi
+huawei_cdc_ncm
+hv_balloon
+hv_netvsc
+hv_sock
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hyperv-keyboard
+hyperv_fb
+hysdn
+i10nm_edac
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd-mp2-pci
+i2c-amd-mp2-plat
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-cbus-gpio
+i2c-cht-wc
+i2c-cros-ec-tunnel
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-ismt
+i2c-kempld
+i2c-matroxfb
+i2c-mlxcpld
+i2c-multi-instantiate
+i2c-mux
+i2c-mux-gpio
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-reg
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3000_edac
+i3200_edac
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5000_edac
+i5100_edac
+i5400_edac
+i5500_temp
+i5k_amb
+i6300esb
+i7300_edac
+i740fb
+i7core_edac
+i82092
+i82975x_edac
+i915
+iTCO_vendor_support
+iTCO_wdt
+iavf
+ib700wdt
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_qib
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibm_rtl
+ibmaem
+ibmasm
+ibmasr
+ibmpex
+icc-core
+ice
+ichxrom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad-laptop
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ie31200_edac
+ie6xx_wdt
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int3400_thermal
+int3402_thermal
+int3403_thermal
+int3406_thermal
+int340x_thermal_zone
+int51x1
+intel-cstate
+intel-hid
+intel-ish-ipc
+intel-ishtp
+intel-ishtp-hid
+intel-ishtp-loader
+intel-lpss
+intel-lpss-acpi
+intel-lpss-pci
+intel-rng
+intel-rst
+intel-smartconnect
+intel-vbtn
+intel-wmi-thunderbolt
+intel-xhci-usb-role-switch
+intel-xway
+intel_atomisp2_pm
+intel_bxt_pmic_thermal
+intel_bxtwc_tmu
+intel_cht_int33fe
+intel_chtdc_ti_pwrbtn
+intel_int0002_vgpio
+intel_ips
+intel_menlow
+intel_oaktrail
+intel_pch_thermal
+intel_pmc_ipc
+intel_powerclamp
+intel_punit_ipc
+intel_qat
+intel_quark_i2c_gpio
+intel_rapl_common
+intel_rapl_msr
+intel_soc_dts_iosf
+intel_soc_dts_thermal
+intel_soc_pmic_bxtwc
+intel_soc_pmic_chtdc_ti
+intel_telemetry_core
+intel_telemetry_debugfs
+intel_telemetry_pltdrv
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+intelfb
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ioatdma
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipu3-cio2
+ipu3-imgu
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+ipwireless
+iqs5xx
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+isci
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+isst_if_common
+isst_if_mbox_msr
+isst_if_mbox_pci
+isst_if_mmio
+it87
+it8712f_wdt
+it87_wdt
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k10temp
+k8temp
+kafs
+kalmia
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-amd
+kvm-intel
+kvmgt
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-adp5520
+leds-apu
+leds-as3645a
+leds-bd2802
+leds-blinkm
+leds-clevo-mail
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxcpld
+leds-mlxreg
+leds-mt6323
+leds-nic78bx
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-ss4200
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+legousbtower
+lg-laptop
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmc
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp8755
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltpc
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+macb
+macb_pci
+machxo2-spi
+machzwd
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77693-haptic
+max77693-regulator
+max77693_charger
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mce-inject
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-i2c
+mdio-mscc-miim
+mdio-thunder
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mei
+mei-me
+mei-txe
+mei_hdcp
+mei_phy
+mei_wdt
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+meye
+mf6x4
+mgag200
+mi0283qt
+mic_bus
+mic_card
+mic_cosm
+mic_host
+mic_x100_dma
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microread_mei
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx-platform
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+moxa
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi-laptop
+msi-wmi
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+msr
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwave
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxm-wmi
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n411
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+nettel
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-avx2
+nhpoly1305-sse2
+ni903x_wdt
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_common
+ni_labpc_cs
+ni_labpc_isadma
+ni_labpc_pci
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nic7018_wdt
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_intel
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nv_tco
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nvram
+nxp-nci
+nxp-nci_i2c
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of_xilinx_wdt
+ofb
+omfs
+omninet
+on20
+on26
+onenand
+opa_vnic
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+padlock-aes
+padlock-sha
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panasonic-laptop
+pandora_bl
+panel
+panel-raspberrypi-touchscreen
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pblk
+pc300too
+pc87360
+pc87413_wdt
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcengines-apuv2
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-hyperv
+pci-hyperv-intf
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcmciamtd
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_pcmcia
+peak_usb
+peaq-wmi
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cpcap-usb
+phy-exynos-usb2
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-broxton
+pinctrl-cannonlake
+pinctrl-cedarfork
+pinctrl-denverton
+pinctrl-geminilake
+pinctrl-icelake
+pinctrl-intel
+pinctrl-lewisburg
+pinctrl-madera
+pinctrl-mcp23s08
+pinctrl-sunrisepoint
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn544_mei
+pn_pep
+pnd2_edac
+poly1305-x86_64
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+processor_thermal_device
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp_kvm
+pulse8-cec
+pulsedlight-lidar-lite-v2
+punit_atom_debug
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-cros-ec
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pxa27x_udc
+pxe1610
+pxrc
+qat_c3xxx
+qat_c3xxxvf
+qat_c62x
+qat_c62xvf
+qat_dh895xcc
+qat_dh895xccvf
+qca8k
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quatech_daqp_cs
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rapl
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rdmavt
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-bq32k
+rtc-bq4802
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rc5t583
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wilco-ec
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-laptop
+samsung-q10
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sb_edac
+sbc60xxwdt
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp_target
+sbs
+sbs-battery
+sbs-charger
+sbs-manager
+sbshc
+sc1200wdt
+sc16is7xx
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scif
+scif_bus
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci
+sdhci-acpi
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_f_sdh30
+sdio_uart
+sdricoh_cs
+seco-cec
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent-avx-x86_64
+serpent-avx2
+serpent-sse2-x86_64
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-ssse3
+sha256-ssse3
+sha3_generic
+sha512-ssse3
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sil164
+silead
+sim710
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis-agp
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+skx_edac
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc91c92_cs
+smc_diag
+smiapp
+smiapp-pll
+smipcie
+smm665
+smsc
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-acp3x-pcm-dma
+snd-acp3x-pdm-dma
+snd-acp3x-rn
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-ext-core
+snd-hda-intel
+snd-hdmi-lpe-audio
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel-sst-acpi
+snd-intel-sst-core
+snd-intel-sst-pci
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pci-acp3x
+snd-pcm
+snd-pcm-dmaengine
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-rn-pci-acp3x
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-skl_nau88l25_max98357a
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-acpi-intel-match
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7213
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdac-hda
+snd-soc-hdac-hdmi
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kbl_da7219_max98357a
+snd-soc-kbl_da7219_max98927
+snd-soc-kbl_rt5660
+snd-soc-kbl_rt5663_max98927
+snd-soc-kbl_rt5663_rt5514_max98927
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-nau8825
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rl6347a
+snd-soc-rt286
+snd-soc-rt298
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5651
+snd-soc-rt5660
+snd-soc-rt5663
+snd-soc-rt5670
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rt5682
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-skl_hda_dsp
+snd-soc-skl_nau88l25_ssm4567
+snd-soc-skl_rt286
+snd-soc-sof_rt5682
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sst-acpi
+snd-soc-sst-atom-hifi2-platform
+snd-soc-sst-bdw-rt5677-mach
+snd-soc-sst-broadwell
+snd-soc-sst-bxt-da7219_max98357a
+snd-soc-sst-bxt-rt298
+snd-soc-sst-byt-cht-cx2072x
+snd-soc-sst-byt-cht-da7213
+snd-soc-sst-byt-cht-es8316
+snd-soc-sst-bytcr-rt5640
+snd-soc-sst-bytcr-rt5651
+snd-soc-sst-cht-bsw-max98090_ti
+snd-soc-sst-cht-bsw-nau8824
+snd-soc-sst-cht-bsw-rt5645
+snd-soc-sst-cht-bsw-rt5672
+snd-soc-sst-dsp
+snd-soc-sst-firmware
+snd-soc-sst-glk-rt5682_max98357a
+snd-soc-sst-haswell
+snd-soc-sst-haswell-pcm
+snd-soc-sst-ipc
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-intel-byt
+snd-sof-intel-hda
+snd-sof-intel-hda-common
+snd-sof-intel-ipc
+snd-sof-pci
+snd-sof-xtensa-dsp
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-us122l
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-vxpocket
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+soc_button_array
+softdog
+softing
+softing_cs
+solo6x10
+solos-pci
+sony-btf-mpx
+sony-laptop
+soundcore
+soundwire-bus
+soundwire-cadence
+soundwire-intel
+soundwire-intel-init
+sp2
+sp5100_tco
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-pci
+stmmac-platform
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+stx104
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3-wmi
+surface3_button
+surface3_spi
+surfacepro3_button
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thermal-generic-adc
+thinkpad_acpi
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderbolt
+thunderbolt-net
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads7950
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tlclk
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+topstar-laptop
+torture
+toshiba_acpi
+toshiba_bluetooth
+toshiba_haps
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_nsc
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+tqmx86_wdt
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish-avx-x86_64
+twofish-x86_64
+twofish-x86_64-3way
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+uPD98402
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_hv_generic
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+usnic_verbs
+uss720
+uv_mmtimer
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vboxguest
+vboxsf
+vboxvideo
+vcan
+vcnl4000
+vcnl4035
+veml6070
+ves1820
+ves1x93
+veth
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-camera
+via-cputemp
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+via686a
+via_wdt
+viafb
+vicodec
+video
+video-i2c
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+visorbus
+visorhba
+visorinput
+visornic
+vitesse
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmd
+vme_ca91cx42
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmw_balloon
+vmw_pvrdma
+vmw_pvscsi
+vmw_vmci
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmw_vsock_vmci_transport
+vmwgfx
+vmxnet3
+vop
+vop_bus
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83877f_wdt
+w83977f_wdt
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wilco-charger
+wilco_ec
+wilco_ec_debugfs
+wilco_ec_events
+wilco_ec_telem
+wimax
+winbond-840
+winbond-cir
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wmi
+wmi-bmof
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x38_edac
+x86_pkg_temp_thermal
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-pciback
+xen-pcifront
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-hwmon
+xhci-plat-hcd
+xiaomi-wmi
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_pcie
+xirc2ps_cs
+xircom_cb
+xlnx_vcu
+xor
+xp
+xpad
+xpc
+xpnet
+xr_usb_serial_common
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zatm
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/amd64/gkeop.retpoline
@@ -0,0 +1 @@
+# retpoline v1.0
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/fwinfo
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/abi/5.4.0-1014.15~18.04.1/fwinfo
@@ -0,0 +1,1559 @@
+firmware:       3826.arm
+firmware:       3com/typhoon.bin
+firmware:       6fire/dmx6fireap.ihx
+firmware:       6fire/dmx6firecf.bin
+firmware:       6fire/dmx6firel2.ihx
+firmware:       BCM2033-FW.bin
+firmware:       BCM2033-MD.hex
+firmware:       BT3CPCC.bin
+firmware:       RTL8192E/boot.img
+firmware:       RTL8192E/data.img
+firmware:       RTL8192E/main.img
+firmware:       RTL8192U/boot.img
+firmware:       RTL8192U/data.img
+firmware:       RTL8192U/main.img
+firmware:       acenic/tg1.bin
+firmware:       acenic/tg2.bin
+firmware:       adaptec/starfire_rx.bin
+firmware:       adaptec/starfire_tx.bin
+firmware:       advansys/3550.bin
+firmware:       advansys/38C0800.bin
+firmware:       advansys/38C1600.bin
+firmware:       advansys/mcode.bin
+firmware:       agere_ap_fw.bin
+firmware:       agere_sta_fw.bin
+firmware:       aic94xx-seq.fw
+firmware:       amdgpu/banks_k_2_smc.bin
+firmware:       amdgpu/bonaire_ce.bin
+firmware:       amdgpu/bonaire_k_smc.bin
+firmware:       amdgpu/bonaire_mc.bin
+firmware:       amdgpu/bonaire_me.bin
+firmware:       amdgpu/bonaire_mec.bin
+firmware:       amdgpu/bonaire_pfp.bin
+firmware:       amdgpu/bonaire_rlc.bin
+firmware:       amdgpu/bonaire_sdma.bin
+firmware:       amdgpu/bonaire_sdma1.bin
+firmware:       amdgpu/bonaire_smc.bin
+firmware:       amdgpu/bonaire_uvd.bin
+firmware:       amdgpu/bonaire_vce.bin
+firmware:       amdgpu/carrizo_ce.bin
+firmware:       amdgpu/carrizo_me.bin
+firmware:       amdgpu/carrizo_mec.bin
+firmware:       amdgpu/carrizo_mec2.bin
+firmware:       amdgpu/carrizo_pfp.bin
+firmware:       amdgpu/carrizo_rlc.bin
+firmware:       amdgpu/carrizo_sdma.bin
+firmware:       amdgpu/carrizo_sdma1.bin
+firmware:       amdgpu/carrizo_uvd.bin
+firmware:       amdgpu/carrizo_vce.bin
+firmware:       amdgpu/fiji_ce.bin
+firmware:       amdgpu/fiji_me.bin
+firmware:       amdgpu/fiji_mec.bin
+firmware:       amdgpu/fiji_mec2.bin
+firmware:       amdgpu/fiji_pfp.bin
+firmware:       amdgpu/fiji_rlc.bin
+firmware:       amdgpu/fiji_sdma.bin
+firmware:       amdgpu/fiji_sdma1.bin
+firmware:       amdgpu/fiji_smc.bin
+firmware:       amdgpu/fiji_uvd.bin
+firmware:       amdgpu/fiji_vce.bin
+firmware:       amdgpu/hainan_ce.bin
+firmware:       amdgpu/hainan_k_smc.bin
+firmware:       amdgpu/hainan_mc.bin
+firmware:       amdgpu/hainan_me.bin
+firmware:       amdgpu/hainan_pfp.bin
+firmware:       amdgpu/hainan_rlc.bin
+firmware:       amdgpu/hainan_smc.bin
+firmware:       amdgpu/hawaii_ce.bin
+firmware:       amdgpu/hawaii_k_smc.bin
+firmware:       amdgpu/hawaii_mc.bin
+firmware:       amdgpu/hawaii_me.bin
+firmware:       amdgpu/hawaii_mec.bin
+firmware:       amdgpu/hawaii_pfp.bin
+firmware:       amdgpu/hawaii_rlc.bin
+firmware:       amdgpu/hawaii_sdma.bin
+firmware:       amdgpu/hawaii_sdma1.bin
+firmware:       amdgpu/hawaii_smc.bin
+firmware:       amdgpu/hawaii_uvd.bin
+firmware:       amdgpu/hawaii_vce.bin
+firmware:       amdgpu/kabini_ce.bin
+firmware:       amdgpu/kabini_me.bin
+firmware:       amdgpu/kabini_mec.bin
+firmware:       amdgpu/kabini_pfp.bin
+firmware:       amdgpu/kabini_rlc.bin
+firmware:       amdgpu/kabini_sdma.bin
+firmware:       amdgpu/kabini_sdma1.bin
+firmware:       amdgpu/kabini_uvd.bin
+firmware:       amdgpu/kabini_vce.bin
+firmware:       amdgpu/kaveri_ce.bin
+firmware:       amdgpu/kaveri_me.bin
+firmware:       amdgpu/kaveri_mec.bin
+firmware:       amdgpu/kaveri_mec2.bin
+firmware:       amdgpu/kaveri_pfp.bin
+firmware:       amdgpu/kaveri_rlc.bin
+firmware:       amdgpu/kaveri_sdma.bin
+firmware:       amdgpu/kaveri_sdma1.bin
+firmware:       amdgpu/kaveri_uvd.bin
+firmware:       amdgpu/kaveri_vce.bin
+firmware:       amdgpu/mullins_ce.bin
+firmware:       amdgpu/mullins_me.bin
+firmware:       amdgpu/mullins_mec.bin
+firmware:       amdgpu/mullins_pfp.bin
+firmware:       amdgpu/mullins_rlc.bin
+firmware:       amdgpu/mullins_sdma.bin
+firmware:       amdgpu/mullins_sdma1.bin
+firmware:       amdgpu/mullins_uvd.bin
+firmware:       amdgpu/mullins_vce.bin
+firmware:       amdgpu/navi10_asd.bin
+firmware:       amdgpu/navi10_ce.bin
+firmware:       amdgpu/navi10_gpu_info.bin
+firmware:       amdgpu/navi10_me.bin
+firmware:       amdgpu/navi10_mec.bin
+firmware:       amdgpu/navi10_mec2.bin
+firmware:       amdgpu/navi10_pfp.bin
+firmware:       amdgpu/navi10_rlc.bin
+firmware:       amdgpu/navi10_sdma.bin
+firmware:       amdgpu/navi10_sdma1.bin
+firmware:       amdgpu/navi10_smc.bin
+firmware:       amdgpu/navi10_sos.bin
+firmware:       amdgpu/navi10_vcn.bin
+firmware:       amdgpu/navi14_asd.bin
+firmware:       amdgpu/navi14_ce.bin
+firmware:       amdgpu/navi14_ce_wks.bin
+firmware:       amdgpu/navi14_gpu_info.bin
+firmware:       amdgpu/navi14_me.bin
+firmware:       amdgpu/navi14_me_wks.bin
+firmware:       amdgpu/navi14_mec.bin
+firmware:       amdgpu/navi14_mec2.bin
+firmware:       amdgpu/navi14_mec2_wks.bin
+firmware:       amdgpu/navi14_mec_wks.bin
+firmware:       amdgpu/navi14_pfp.bin
+firmware:       amdgpu/navi14_pfp_wks.bin
+firmware:       amdgpu/navi14_rlc.bin
+firmware:       amdgpu/navi14_sdma.bin
+firmware:       amdgpu/navi14_sdma1.bin
+firmware:       amdgpu/navi14_smc.bin
+firmware:       amdgpu/navi14_sos.bin
+firmware:       amdgpu/navi14_vcn.bin
+firmware:       amdgpu/oland_ce.bin
+firmware:       amdgpu/oland_k_smc.bin
+firmware:       amdgpu/oland_mc.bin
+firmware:       amdgpu/oland_me.bin
+firmware:       amdgpu/oland_pfp.bin
+firmware:       amdgpu/oland_rlc.bin
+firmware:       amdgpu/oland_smc.bin
+firmware:       amdgpu/picasso_asd.bin
+firmware:       amdgpu/picasso_ce.bin
+firmware:       amdgpu/picasso_gpu_info.bin
+firmware:       amdgpu/picasso_me.bin
+firmware:       amdgpu/picasso_mec.bin
+firmware:       amdgpu/picasso_mec2.bin
+firmware:       amdgpu/picasso_pfp.bin
+firmware:       amdgpu/picasso_rlc.bin
+firmware:       amdgpu/picasso_rlc_am4.bin
+firmware:       amdgpu/picasso_sdma.bin
+firmware:       amdgpu/picasso_vcn.bin
+firmware:       amdgpu/pitcairn_ce.bin
+firmware:       amdgpu/pitcairn_k_smc.bin
+firmware:       amdgpu/pitcairn_mc.bin
+firmware:       amdgpu/pitcairn_me.bin
+firmware:       amdgpu/pitcairn_pfp.bin
+firmware:       amdgpu/pitcairn_rlc.bin
+firmware:       amdgpu/pitcairn_smc.bin
+firmware:       amdgpu/polaris10_ce.bin
+firmware:       amdgpu/polaris10_ce_2.bin
+firmware:       amdgpu/polaris10_k2_smc.bin
+firmware:       amdgpu/polaris10_k_mc.bin
+firmware:       amdgpu/polaris10_k_smc.bin
+firmware:       amdgpu/polaris10_mc.bin
+firmware:       amdgpu/polaris10_me.bin
+firmware:       amdgpu/polaris10_me_2.bin
+firmware:       amdgpu/polaris10_mec.bin
+firmware:       amdgpu/polaris10_mec2.bin
+firmware:       amdgpu/polaris10_mec2_2.bin
+firmware:       amdgpu/polaris10_mec_2.bin
+firmware:       amdgpu/polaris10_pfp.bin
+firmware:       amdgpu/polaris10_pfp_2.bin
+firmware:       amdgpu/polaris10_rlc.bin
+firmware:       amdgpu/polaris10_sdma.bin
+firmware:       amdgpu/polaris10_sdma1.bin
+firmware:       amdgpu/polaris10_smc.bin
+firmware:       amdgpu/polaris10_smc_sk.bin
+firmware:       amdgpu/polaris10_uvd.bin
+firmware:       amdgpu/polaris10_vce.bin
+firmware:       amdgpu/polaris11_ce.bin
+firmware:       amdgpu/polaris11_ce_2.bin
+firmware:       amdgpu/polaris11_k2_smc.bin
+firmware:       amdgpu/polaris11_k_mc.bin
+firmware:       amdgpu/polaris11_k_smc.bin
+firmware:       amdgpu/polaris11_mc.bin
+firmware:       amdgpu/polaris11_me.bin
+firmware:       amdgpu/polaris11_me_2.bin
+firmware:       amdgpu/polaris11_mec.bin
+firmware:       amdgpu/polaris11_mec2.bin
+firmware:       amdgpu/polaris11_mec2_2.bin
+firmware:       amdgpu/polaris11_mec_2.bin
+firmware:       amdgpu/polaris11_pfp.bin
+firmware:       amdgpu/polaris11_pfp_2.bin
+firmware:       amdgpu/polaris11_rlc.bin
+firmware:       amdgpu/polaris11_sdma.bin
+firmware:       amdgpu/polaris11_sdma1.bin
+firmware:       amdgpu/polaris11_smc.bin
+firmware:       amdgpu/polaris11_smc_sk.bin
+firmware:       amdgpu/polaris11_uvd.bin
+firmware:       amdgpu/polaris11_vce.bin
+firmware:       amdgpu/polaris12_ce.bin
+firmware:       amdgpu/polaris12_ce_2.bin
+firmware:       amdgpu/polaris12_k_mc.bin
+firmware:       amdgpu/polaris12_k_smc.bin
+firmware:       amdgpu/polaris12_mc.bin
+firmware:       amdgpu/polaris12_me.bin
+firmware:       amdgpu/polaris12_me_2.bin
+firmware:       amdgpu/polaris12_mec.bin
+firmware:       amdgpu/polaris12_mec2.bin
+firmware:       amdgpu/polaris12_mec2_2.bin
+firmware:       amdgpu/polaris12_mec_2.bin
+firmware:       amdgpu/polaris12_pfp.bin
+firmware:       amdgpu/polaris12_pfp_2.bin
+firmware:       amdgpu/polaris12_rlc.bin
+firmware:       amdgpu/polaris12_sdma.bin
+firmware:       amdgpu/polaris12_sdma1.bin
+firmware:       amdgpu/polaris12_smc.bin
+firmware:       amdgpu/polaris12_uvd.bin
+firmware:       amdgpu/polaris12_vce.bin
+firmware:       amdgpu/raven2_asd.bin
+firmware:       amdgpu/raven2_ce.bin
+firmware:       amdgpu/raven2_gpu_info.bin
+firmware:       amdgpu/raven2_me.bin
+firmware:       amdgpu/raven2_mec.bin
+firmware:       amdgpu/raven2_mec2.bin
+firmware:       amdgpu/raven2_pfp.bin
+firmware:       amdgpu/raven2_rlc.bin
+firmware:       amdgpu/raven2_sdma.bin
+firmware:       amdgpu/raven2_vcn.bin
+firmware:       amdgpu/raven_asd.bin
+firmware:       amdgpu/raven_ce.bin
+firmware:       amdgpu/raven_dmcu.bin
+firmware:       amdgpu/raven_gpu_info.bin
+firmware:       amdgpu/raven_kicker_rlc.bin
+firmware:       amdgpu/raven_me.bin
+firmware:       amdgpu/raven_mec.bin
+firmware:       amdgpu/raven_mec2.bin
+firmware:       amdgpu/raven_pfp.bin
+firmware:       amdgpu/raven_rlc.bin
+firmware:       amdgpu/raven_sdma.bin
+firmware:       amdgpu/raven_vcn.bin
+firmware:       amdgpu/renoir_asd.bin
+firmware:       amdgpu/renoir_ce.bin
+firmware:       amdgpu/renoir_gpu_info.bin
+firmware:       amdgpu/renoir_me.bin
+firmware:       amdgpu/renoir_mec.bin
+firmware:       amdgpu/renoir_mec2.bin
+firmware:       amdgpu/renoir_pfp.bin
+firmware:       amdgpu/renoir_rlc.bin
+firmware:       amdgpu/renoir_sdma.bin
+firmware:       amdgpu/renoir_vcn.bin
+firmware:       amdgpu/si58_mc.bin
+firmware:       amdgpu/stoney_ce.bin
+firmware:       amdgpu/stoney_me.bin
+firmware:       amdgpu/stoney_mec.bin
+firmware:       amdgpu/stoney_pfp.bin
+firmware:       amdgpu/stoney_rlc.bin
+firmware:       amdgpu/stoney_sdma.bin
+firmware:       amdgpu/stoney_uvd.bin
+firmware:       amdgpu/stoney_vce.bin
+firmware:       amdgpu/tahiti_ce.bin
+firmware:       amdgpu/tahiti_mc.bin
+firmware:       amdgpu/tahiti_me.bin
+firmware:       amdgpu/tahiti_pfp.bin
+firmware:       amdgpu/tahiti_rlc.bin
+firmware:       amdgpu/tahiti_smc.bin
+firmware:       amdgpu/tonga_ce.bin
+firmware:       amdgpu/tonga_k_smc.bin
+firmware:       amdgpu/tonga_mc.bin
+firmware:       amdgpu/tonga_me.bin
+firmware:       amdgpu/tonga_mec.bin
+firmware:       amdgpu/tonga_mec2.bin
+firmware:       amdgpu/tonga_pfp.bin
+firmware:       amdgpu/tonga_rlc.bin
+firmware:       amdgpu/tonga_sdma.bin
+firmware:       amdgpu/tonga_sdma1.bin
+firmware:       amdgpu/tonga_smc.bin
+firmware:       amdgpu/tonga_uvd.bin
+firmware:       amdgpu/tonga_vce.bin
+firmware:       amdgpu/topaz_ce.bin
+firmware:       amdgpu/topaz_k_smc.bin
+firmware:       amdgpu/topaz_mc.bin
+firmware:       amdgpu/topaz_me.bin
+firmware:       amdgpu/topaz_mec.bin
+firmware:       amdgpu/topaz_pfp.bin
+firmware:       amdgpu/topaz_rlc.bin
+firmware:       amdgpu/topaz_sdma.bin
+firmware:       amdgpu/topaz_sdma1.bin
+firmware:       amdgpu/topaz_smc.bin
+firmware:       amdgpu/vega10_acg_smc.bin
+firmware:       amdgpu/vega10_asd.bin
+firmware:       amdgpu/vega10_ce.bin
+firmware:       amdgpu/vega10_gpu_info.bin
+firmware:       amdgpu/vega10_me.bin
+firmware:       amdgpu/vega10_mec.bin
+firmware:       amdgpu/vega10_mec2.bin
+firmware:       amdgpu/vega10_pfp.bin
+firmware:       amdgpu/vega10_rlc.bin
+firmware:       amdgpu/vega10_sdma.bin
+firmware:       amdgpu/vega10_sdma1.bin
+firmware:       amdgpu/vega10_smc.bin
+firmware:       amdgpu/vega10_sos.bin
+firmware:       amdgpu/vega10_uvd.bin
+firmware:       amdgpu/vega10_vce.bin
+firmware:       amdgpu/vega12_asd.bin
+firmware:       amdgpu/vega12_ce.bin
+firmware:       amdgpu/vega12_gpu_info.bin
+firmware:       amdgpu/vega12_me.bin
+firmware:       amdgpu/vega12_mec.bin
+firmware:       amdgpu/vega12_mec2.bin
+firmware:       amdgpu/vega12_pfp.bin
+firmware:       amdgpu/vega12_rlc.bin
+firmware:       amdgpu/vega12_sdma.bin
+firmware:       amdgpu/vega12_sdma1.bin
+firmware:       amdgpu/vega12_smc.bin
+firmware:       amdgpu/vega12_sos.bin
+firmware:       amdgpu/vega12_uvd.bin
+firmware:       amdgpu/vega12_vce.bin
+firmware:       amdgpu/vega20_asd.bin
+firmware:       amdgpu/vega20_ce.bin
+firmware:       amdgpu/vega20_me.bin
+firmware:       amdgpu/vega20_mec.bin
+firmware:       amdgpu/vega20_mec2.bin
+firmware:       amdgpu/vega20_pfp.bin
+firmware:       amdgpu/vega20_rlc.bin
+firmware:       amdgpu/vega20_sdma.bin
+firmware:       amdgpu/vega20_sdma1.bin
+firmware:       amdgpu/vega20_smc.bin
+firmware:       amdgpu/vega20_sos.bin
+firmware:       amdgpu/vega20_uvd.bin
+firmware:       amdgpu/vega20_vce.bin
+firmware:       amdgpu/vegam_ce.bin
+firmware:       amdgpu/vegam_me.bin
+firmware:       amdgpu/vegam_mec.bin
+firmware:       amdgpu/vegam_mec2.bin
+firmware:       amdgpu/vegam_pfp.bin
+firmware:       amdgpu/vegam_rlc.bin
+firmware:       amdgpu/vegam_sdma.bin
+firmware:       amdgpu/vegam_sdma1.bin
+firmware:       amdgpu/vegam_smc.bin
+firmware:       amdgpu/vegam_uvd.bin
+firmware:       amdgpu/vegam_vce.bin
+firmware:       amdgpu/verde_ce.bin
+firmware:       amdgpu/verde_k_smc.bin
+firmware:       amdgpu/verde_mc.bin
+firmware:       amdgpu/verde_me.bin
+firmware:       amdgpu/verde_pfp.bin
+firmware:       amdgpu/verde_rlc.bin
+firmware:       amdgpu/verde_smc.bin
+firmware:       ar5523.bin
+firmware:       asihpi/dsp5000.bin
+firmware:       asihpi/dsp6200.bin
+firmware:       asihpi/dsp6205.bin
+firmware:       asihpi/dsp6400.bin
+firmware:       asihpi/dsp6600.bin
+firmware:       asihpi/dsp8700.bin
+firmware:       asihpi/dsp8900.bin
+firmware:       ast_dp501_fw.bin
+firmware:       ath10k/QCA6174/hw2.1/board-2.bin
+firmware:       ath10k/QCA6174/hw2.1/board.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-4.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/board-2.bin
+firmware:       ath10k/QCA6174/hw3.0/board.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-4.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-6.bin
+firmware:       ath10k/QCA9377/hw1.0/board.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-6.bin
+firmware:       ath10k/QCA9887/hw1.0/board-2.bin
+firmware:       ath10k/QCA9887/hw1.0/board.bin
+firmware:       ath10k/QCA9887/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA988X/hw2.0/board-2.bin
+firmware:       ath10k/QCA988X/hw2.0/board.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-2.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-3.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-4.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-5.bin
+firmware:       ath3k-1.fw
+firmware:       ath6k/AR6003/hw2.0/athwlan.bin.z77
+firmware:       ath6k/AR6003/hw2.0/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.0/bdata.bin
+firmware:       ath6k/AR6003/hw2.0/data.patch.bin
+firmware:       ath6k/AR6003/hw2.0/otp.bin.z77
+firmware:       ath6k/AR6003/hw2.1.1/athwlan.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.bin
+firmware:       ath6k/AR6003/hw2.1.1/data.patch.bin
+firmware:       ath6k/AR6003/hw2.1.1/otp.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.bin
+firmware:       ath6k/AR6004/hw1.0/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.bin
+firmware:       ath6k/AR6004/hw1.1/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.2/bdata.bin
+firmware:       ath6k/AR6004/hw1.2/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.3/bdata.bin
+firmware:       ath6k/AR6004/hw1.3/fw.ram.bin
+firmware:       ath9k_htc/htc_7010-1.4.0.fw
+firmware:       ath9k_htc/htc_9271-1.4.0.fw
+firmware:       atmel_at76c502-wpa.bin
+firmware:       atmel_at76c502.bin
+firmware:       atmel_at76c502_3com-wpa.bin
+firmware:       atmel_at76c502_3com.bin
+firmware:       atmel_at76c502d-wpa.bin
+firmware:       atmel_at76c502d.bin
+firmware:       atmel_at76c502e-wpa.bin
+firmware:       atmel_at76c502e.bin
+firmware:       atmel_at76c503-i3861.bin
+firmware:       atmel_at76c503-i3863.bin
+firmware:       atmel_at76c503-rfmd-acc.bin
+firmware:       atmel_at76c503-rfmd.bin
+firmware:       atmel_at76c504-wpa.bin
+firmware:       atmel_at76c504.bin
+firmware:       atmel_at76c504_2958-wpa.bin
+firmware:       atmel_at76c504_2958.bin
+firmware:       atmel_at76c504a_2958-wpa.bin
+firmware:       atmel_at76c504a_2958.bin
+firmware:       atmel_at76c505-rfmd.bin
+firmware:       atmel_at76c505-rfmd2958.bin
+firmware:       atmel_at76c505a-rfmd2958.bin
+firmware:       atmel_at76c505amx-rfmd.bin
+firmware:       atmel_at76c506-wpa.bin
+firmware:       atmel_at76c506.bin
+firmware:       atmsar11.fw
+firmware:       atsc_denver.inp
+firmware:       av7110/bootcode.bin
+firmware:       b43/ucode11.fw
+firmware:       b43/ucode13.fw
+firmware:       b43/ucode14.fw
+firmware:       b43/ucode15.fw
+firmware:       b43/ucode16_lp.fw
+firmware:       b43/ucode16_mimo.fw
+firmware:       b43/ucode24_lcn.fw
+firmware:       b43/ucode25_lcn.fw
+firmware:       b43/ucode25_mimo.fw
+firmware:       b43/ucode26_mimo.fw
+firmware:       b43/ucode29_mimo.fw
+firmware:       b43/ucode30_mimo.fw
+firmware:       b43/ucode33_lcn40.fw
+firmware:       b43/ucode40.fw
+firmware:       b43/ucode42.fw
+firmware:       b43/ucode5.fw
+firmware:       b43/ucode9.fw
+firmware:       b43legacy/ucode2.fw
+firmware:       b43legacy/ucode4.fw
+firmware:       bfubase.frm
+firmware:       bnx2/bnx2-mips-06-6.2.3.fw
+firmware:       bnx2/bnx2-mips-09-6.2.1b.fw
+firmware:       bnx2/bnx2-rv2p-06-6.0.15.fw
+firmware:       bnx2/bnx2-rv2p-09-6.0.17.fw
+firmware:       bnx2/bnx2-rv2p-09ax-6.0.17.fw
+firmware:       bnx2x/bnx2x-e1-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e1h-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e2-7.13.11.0.fw
+firmware:       brcm/bcm43xx-0.fw
+firmware:       brcm/bcm43xx_hdr-0.fw
+firmware:       brcm/brcmfmac43012-sdio.bin
+firmware:       brcm/brcmfmac43143-sdio.bin
+firmware:       brcm/brcmfmac43143.bin
+firmware:       brcm/brcmfmac43236b.bin
+firmware:       brcm/brcmfmac43241b0-sdio.bin
+firmware:       brcm/brcmfmac43241b4-sdio.bin
+firmware:       brcm/brcmfmac43241b5-sdio.bin
+firmware:       brcm/brcmfmac43242a.bin
+firmware:       brcm/brcmfmac4329-sdio.bin
+firmware:       brcm/brcmfmac4330-sdio.bin
+firmware:       brcm/brcmfmac4334-sdio.bin
+firmware:       brcm/brcmfmac43340-sdio.bin
+firmware:       brcm/brcmfmac4335-sdio.bin
+firmware:       brcm/brcmfmac43362-sdio.bin
+firmware:       brcm/brcmfmac4339-sdio.bin
+firmware:       brcm/brcmfmac43430-sdio.bin
+firmware:       brcm/brcmfmac43430a0-sdio.bin
+firmware:       brcm/brcmfmac43455-sdio.bin
+firmware:       brcm/brcmfmac43456-sdio.bin
+firmware:       brcm/brcmfmac4350-pcie.bin
+firmware:       brcm/brcmfmac4350c2-pcie.bin
+firmware:       brcm/brcmfmac4354-sdio.bin
+firmware:       brcm/brcmfmac4356-pcie.bin
+firmware:       brcm/brcmfmac4356-sdio.bin
+firmware:       brcm/brcmfmac43569.bin
+firmware:       brcm/brcmfmac43570-pcie.bin
+firmware:       brcm/brcmfmac4358-pcie.bin
+firmware:       brcm/brcmfmac4359-pcie.bin
+firmware:       brcm/brcmfmac43602-pcie.bin
+firmware:       brcm/brcmfmac4365b-pcie.bin
+firmware:       brcm/brcmfmac4365c-pcie.bin
+firmware:       brcm/brcmfmac4366b-pcie.bin
+firmware:       brcm/brcmfmac4366c-pcie.bin
+firmware:       brcm/brcmfmac4371-pcie.bin
+firmware:       brcm/brcmfmac4373-sdio.bin
+firmware:       brcm/brcmfmac4373.bin
+firmware:       c218tunx.cod
+firmware:       c320tunx.cod
+firmware:       carl9170-1.fw
+firmware:       cavium/cnn55xx_se.fw
+firmware:       cbfw-3.2.5.1.bin
+firmware:       cis/3CCFEM556.cis
+firmware:       cis/3CXEM556.cis
+firmware:       cis/COMpad2.cis
+firmware:       cis/COMpad4.cis
+firmware:       cis/DP83903.cis
+firmware:       cis/LA-PCM.cis
+firmware:       cis/MT5634ZLX.cis
+firmware:       cis/NE2K.cis
+firmware:       cis/PCMLM28.cis
+firmware:       cis/PE-200.cis
+firmware:       cis/PE520.cis
+firmware:       cis/RS-COM-2P.cis
+firmware:       cis/SW_555_SER.cis
+firmware:       cis/SW_7xx_SER.cis
+firmware:       cis/SW_8xx_SER.cis
+firmware:       cis/tamarack.cis
+firmware:       cmmb_ming_app.inp
+firmware:       cmmb_vega_12mhz.inp
+firmware:       cmmb_venice_12mhz.inp
+firmware:       comedi/jr3pci.idm
+firmware:       cp204unx.cod
+firmware:       cpia2/stv0672_vp4.bin
+firmware:       cs46xx/cwc4630
+firmware:       cs46xx/cwcasync
+firmware:       cs46xx/cwcbinhack
+firmware:       cs46xx/cwcdma
+firmware:       cs46xx/cwcsnoop
+firmware:       ct2fw-3.2.5.1.bin
+firmware:       ctefx-desktop.bin
+firmware:       ctefx-r3di.bin
+firmware:       ctefx.bin
+firmware:       ctfw-3.2.5.1.bin
+firmware:       cxgb3/ael2005_opt_edc.bin
+firmware:       cxgb3/ael2005_twx_edc.bin
+firmware:       cxgb3/ael2020_twx_edc.bin
+firmware:       cxgb3/t3b_psram-1.1.0.bin
+firmware:       cxgb3/t3c_psram-1.1.0.bin
+firmware:       cxgb3/t3fw-7.12.0.bin
+firmware:       cxgb4/t4fw.bin
+firmware:       cxgb4/t5fw.bin
+firmware:       cxgb4/t6fw.bin
+firmware:       cyzfirm.bin
+firmware:       daqboard2000_firmware.bin
+firmware:       digiface_firmware.bin
+firmware:       digiface_firmware_rev11.bin
+firmware:       dvb-cx18-mpc718-mt352.fw
+firmware:       dvb-demod-m88ds3103.fw
+firmware:       dvb-demod-m88rs6000.fw
+firmware:       dvb-demod-mn88472-02.fw
+firmware:       dvb-demod-mn88473-01.fw
+firmware:       dvb-demod-si2165.fw
+firmware:       dvb-demod-si2168-a20-01.fw
+firmware:       dvb-demod-si2168-a30-01.fw
+firmware:       dvb-demod-si2168-b40-01.fw
+firmware:       dvb-demod-si2168-d60-01.fw
+firmware:       dvb-fe-af9013.fw
+firmware:       dvb-fe-cx24117.fw
+firmware:       dvb-fe-drxj-mc-1.0.8.fw
+firmware:       dvb-fe-ds3000.fw
+firmware:       dvb-fe-tda10071.fw
+firmware:       dvb-fe-xc4000-1.4.1.fw
+firmware:       dvb-fe-xc4000-1.4.fw
+firmware:       dvb-fe-xc5000-1.6.114.fw
+firmware:       dvb-fe-xc5000c-4.1.30.7.fw
+firmware:       dvb-tuner-si2141-a10-01.fw
+firmware:       dvb-tuner-si2157-a30-01.fw
+firmware:       dvb-tuner-si2158-a20-01.fw
+firmware:       dvb-usb-af9015.fw
+firmware:       dvb-usb-af9035-02.fw
+firmware:       dvb-usb-dib0700-1.20.fw
+firmware:       dvb-usb-dw2101.fw
+firmware:       dvb-usb-dw2102.fw
+firmware:       dvb-usb-dw2104.fw
+firmware:       dvb-usb-dw3101.fw
+firmware:       dvb-usb-ec168.fw
+firmware:       dvb-usb-it9135-01.fw
+firmware:       dvb-usb-it9135-02.fw
+firmware:       dvb-usb-it9303-01.fw
+firmware:       dvb-usb-lme2510-lg.fw
+firmware:       dvb-usb-lme2510-s0194.fw
+firmware:       dvb-usb-lme2510c-lg.fw
+firmware:       dvb-usb-lme2510c-rs2000.fw
+firmware:       dvb-usb-lme2510c-s0194.fw
+firmware:       dvb-usb-lme2510c-s7395.fw
+firmware:       dvb-usb-p1100.fw
+firmware:       dvb-usb-p7500.fw
+firmware:       dvb-usb-s630.fw
+firmware:       dvb-usb-s660.fw
+firmware:       dvb-usb-terratec-h7-az6007.fw
+firmware:       dvb_nova_12mhz.inp
+firmware:       dvb_nova_12mhz_b0.inp
+firmware:       dvb_rio.inp
+firmware:       dvbh_rio.inp
+firmware:       e100/d101m_ucode.bin
+firmware:       e100/d101s_ucode.bin
+firmware:       e100/d102e_ucode.bin
+firmware:       ea/3g_asic.fw
+firmware:       ea/darla20_dsp.fw
+firmware:       ea/darla24_dsp.fw
+firmware:       ea/echo3g_dsp.fw
+firmware:       ea/gina20_dsp.fw
+firmware:       ea/gina24_301_asic.fw
+firmware:       ea/gina24_301_dsp.fw
+firmware:       ea/gina24_361_asic.fw
+firmware:       ea/gina24_361_dsp.fw
+firmware:       ea/indigo_dj_dsp.fw
+firmware:       ea/indigo_djx_dsp.fw
+firmware:       ea/indigo_dsp.fw
+firmware:       ea/indigo_io_dsp.fw
+firmware:       ea/indigo_iox_dsp.fw
+firmware:       ea/layla20_asic.fw
+firmware:       ea/layla20_dsp.fw
+firmware:       ea/layla24_1_asic.fw
+firmware:       ea/layla24_2A_asic.fw
+firmware:       ea/layla24_2S_asic.fw
+firmware:       ea/layla24_dsp.fw
+firmware:       ea/loader_dsp.fw
+firmware:       ea/mia_dsp.fw
+firmware:       ea/mona_2_asic.fw
+firmware:       ea/mona_301_1_asic_48.fw
+firmware:       ea/mona_301_1_asic_96.fw
+firmware:       ea/mona_301_dsp.fw
+firmware:       ea/mona_361_1_asic_48.fw
+firmware:       ea/mona_361_1_asic_96.fw
+firmware:       ea/mona_361_dsp.fw
+firmware:       edgeport/boot.fw
+firmware:       edgeport/boot2.fw
+firmware:       edgeport/down.fw
+firmware:       edgeport/down2.fw
+firmware:       edgeport/down3.bin
+firmware:       emi26/bitstream.fw
+firmware:       emi26/firmware.fw
+firmware:       emi26/loader.fw
+firmware:       emi62/bitstream.fw
+firmware:       emi62/loader.fw
+firmware:       emi62/spdif.fw
+firmware:       emu/audio_dock.fw
+firmware:       emu/emu0404.fw
+firmware:       emu/emu1010_notebook.fw
+firmware:       emu/emu1010b.fw
+firmware:       emu/hana.fw
+firmware:       emu/micro_dock.fw
+firmware:       ene-ub6250/ms_init.bin
+firmware:       ene-ub6250/ms_rdwr.bin
+firmware:       ene-ub6250/msp_rdwr.bin
+firmware:       ene-ub6250/sd_init1.bin
+firmware:       ene-ub6250/sd_init2.bin
+firmware:       ene-ub6250/sd_rdwr.bin
+firmware:       ess/maestro3_assp_kernel.fw
+firmware:       ess/maestro3_assp_minisrc.fw
+firmware:       f2255usb.bin
+firmware:       fm_radio.inp
+firmware:       fm_radio_rio.inp
+firmware:       fw.ram.bin
+firmware:       go7007/go7007fw.bin
+firmware:       go7007/go7007tv.bin
+firmware:       go7007/lr192.fw
+firmware:       go7007/px-m402u.fw
+firmware:       go7007/px-tv402u.fw
+firmware:       go7007/s2250-1.fw
+firmware:       go7007/s2250-2.fw
+firmware:       go7007/wis-startrek.fw
+firmware:       hfi1_dc8051.fw
+firmware:       hfi1_fabric.fw
+firmware:       hfi1_pcie.fw
+firmware:       hfi1_sbus.fw
+firmware:       i1480-phy-0.0.bin
+firmware:       i1480-pre-phy-0.0.bin
+firmware:       i1480-usb-0.0.bin
+firmware:       i2400m-fw-usb-1.5.sbcf
+firmware:       i6050-fw-usb-1.5.sbcf
+firmware:       i915/bxt_dmc_ver1_07.bin
+firmware:       i915/bxt_guc_33.0.0.bin
+firmware:       i915/bxt_huc_ver01_8_2893.bin
+firmware:       i915/cnl_dmc_ver1_07.bin
+firmware:       i915/glk_dmc_ver1_04.bin
+firmware:       i915/glk_guc_33.0.0.bin
+firmware:       i915/glk_huc_ver03_01_2893.bin
+firmware:       i915/icl_dmc_ver1_07.bin
+firmware:       i915/icl_guc_33.0.0.bin
+firmware:       i915/icl_huc_ver8_4_3238.bin
+firmware:       i915/kbl_dmc_ver1_04.bin
+firmware:       i915/kbl_guc_33.0.0.bin
+firmware:       i915/kbl_huc_ver02_00_1810.bin
+firmware:       i915/skl_dmc_ver1_27.bin
+firmware:       i915/skl_guc_33.0.0.bin
+firmware:       i915/skl_huc_ver01_07_1398.bin
+firmware:       i915/tgl_dmc_ver2_04.bin
+firmware:       intel/ibt-11-5.ddc
+firmware:       intel/ibt-11-5.sfi
+firmware:       intel/ibt-12-16.ddc
+firmware:       intel/ibt-12-16.sfi
+firmware:       intel/ice/ddp/ice.pkg
+firmware:       ipw2100-1.3-i.fw
+firmware:       ipw2100-1.3-p.fw
+firmware:       ipw2100-1.3.fw
+firmware:       ipw2200-bss.fw
+firmware:       ipw2200-ibss.fw
+firmware:       ipw2200-sniffer.fw
+firmware:       isci/isci_firmware.bin
+firmware:       isdbt_nova_12mhz.inp
+firmware:       isdbt_nova_12mhz_b0.inp
+firmware:       isdbt_pele.inp
+firmware:       isdbt_rio.inp
+firmware:       isdn/ISAR.BIN
+firmware:       isi4608.bin
+firmware:       isi4616.bin
+firmware:       isi608.bin
+firmware:       isi608em.bin
+firmware:       isi616em.bin
+firmware:       isight.fw
+firmware:       isl3886pci
+firmware:       isl3886usb
+firmware:       isl3887usb
+firmware:       iwlwifi-100-5.ucode
+firmware:       iwlwifi-1000-5.ucode
+firmware:       iwlwifi-105-6.ucode
+firmware:       iwlwifi-135-6.ucode
+firmware:       iwlwifi-2000-6.ucode
+firmware:       iwlwifi-2030-6.ucode
+firmware:       iwlwifi-3160-17.ucode
+firmware:       iwlwifi-3168-29.ucode
+firmware:       iwlwifi-3945-2.ucode
+firmware:       iwlwifi-4965-2.ucode
+firmware:       iwlwifi-5000-5.ucode
+firmware:       iwlwifi-5150-2.ucode
+firmware:       iwlwifi-6000-6.ucode
+firmware:       iwlwifi-6000g2a-6.ucode
+firmware:       iwlwifi-6000g2b-6.ucode
+firmware:       iwlwifi-6050-5.ucode
+firmware:       iwlwifi-7260-17.ucode
+firmware:       iwlwifi-7265-17.ucode
+firmware:       iwlwifi-7265D-29.ucode
+firmware:       iwlwifi-8000C-36.ucode
+firmware:       iwlwifi-8265-36.ucode
+firmware:       iwlwifi-9000-pu-b0-jf-b0-46.ucode
+firmware:       iwlwifi-9260-th-b0-jf-b0-46.ucode
+firmware:       iwlwifi-Qu-a0-hr-a0-50.ucode
+firmware:       iwlwifi-Qu-a0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-b0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-c0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-a0-hr-a0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-jf-b0-50.ucode
+firmware:       iwlwifi-QuQnj-f0-hr-a0-50.ucode
+firmware:       iwlwifi-QuZ-a0-hr-b0-50.ucode
+firmware:       iwlwifi-QuZ-a0-jf-b0-50.ucode
+firmware:       iwlwifi-cc-a0-50.ucode
+firmware:       iwlwifi-so-a0-gf-a0-50.ucode
+firmware:       iwlwifi-so-a0-hr-b0-50.ucode
+firmware:       iwlwifi-so-a0-jf-b0-50.ucode
+firmware:       iwlwifi-ty-a0-gf-a0-50.ucode
+firmware:       kaweth/new_code.bin
+firmware:       kaweth/new_code_fix.bin
+firmware:       kaweth/trigger_code.bin
+firmware:       kaweth/trigger_code_fix.bin
+firmware:       keyspan/mpr.fw
+firmware:       keyspan/usa18x.fw
+firmware:       keyspan/usa19.fw
+firmware:       keyspan/usa19qi.fw
+firmware:       keyspan/usa19qw.fw
+firmware:       keyspan/usa19w.fw
+firmware:       keyspan/usa28.fw
+firmware:       keyspan/usa28x.fw
+firmware:       keyspan/usa28xa.fw
+firmware:       keyspan/usa28xb.fw
+firmware:       keyspan/usa49w.fw
+firmware:       keyspan/usa49wlc.fw
+firmware:       keyspan_pda/keyspan_pda.fw
+firmware:       keyspan_pda/xircom_pgs.fw
+firmware:       korg/k1212.dsp
+firmware:       ks7010sd.rom
+firmware:       lantiq/xrx200_phy11g_a14.bin
+firmware:       lantiq/xrx200_phy11g_a22.bin
+firmware:       lantiq/xrx200_phy22f_a14.bin
+firmware:       lantiq/xrx200_phy22f_a22.bin
+firmware:       lantiq/xrx300_phy11g_a21.bin
+firmware:       lantiq/xrx300_phy22f_a21.bin
+firmware:       lattice-ecp3.bit
+firmware:       lbtf_usb.bin
+firmware:       lgs8g75.fw
+firmware:       libertas/cf8305.bin
+firmware:       libertas/cf8381.bin
+firmware:       libertas/cf8381_helper.bin
+firmware:       libertas/cf8385.bin
+firmware:       libertas/cf8385_helper.bin
+firmware:       libertas/gspi8385.bin
+firmware:       libertas/gspi8385_helper.bin
+firmware:       libertas/gspi8385_hlp.bin
+firmware:       libertas/gspi8686.bin
+firmware:       libertas/gspi8686_hlp.bin
+firmware:       libertas/gspi8686_v9.bin
+firmware:       libertas/gspi8686_v9_helper.bin
+firmware:       libertas/gspi8688.bin
+firmware:       libertas/gspi8688_helper.bin
+firmware:       libertas/sd8385.bin
+firmware:       libertas/sd8385_helper.bin
+firmware:       libertas/sd8686_v8.bin
+firmware:       libertas/sd8686_v8_helper.bin
+firmware:       libertas/sd8686_v9.bin
+firmware:       libertas/sd8686_v9_helper.bin
+firmware:       libertas/sd8688.bin
+firmware:       libertas/sd8688_helper.bin
+firmware:       libertas/usb8388.bin
+firmware:       libertas/usb8388_v5.bin
+firmware:       libertas/usb8388_v9.bin
+firmware:       libertas/usb8682.bin
+firmware:       libertas_cs.fw
+firmware:       libertas_cs_helper.fw
+firmware:       liquidio/lio_210nv_nic.bin
+firmware:       liquidio/lio_210sv_nic.bin
+firmware:       liquidio/lio_23xx_nic.bin
+firmware:       liquidio/lio_410nv_nic.bin
+firmware:       me2600_firmware.bin
+firmware:       me4000_firmware.bin
+firmware:       mediatek/mt7610e.bin
+firmware:       mediatek/mt7610u.bin
+firmware:       mediatek/mt7615_cr4.bin
+firmware:       mediatek/mt7615_n9.bin
+firmware:       mediatek/mt7615_rom_patch.bin
+firmware:       mediatek/mt7622pr2h.bin
+firmware:       mediatek/mt7650e.bin
+firmware:       mediatek/mt7663pr2h.bin
+firmware:       mediatek/mt7668pr2h.bin
+firmware:       mellanox/mlxsw_spectrum-13.2000.1886.mfa2
+firmware:       mixart/miXart8.elf
+firmware:       mixart/miXart8.xlx
+firmware:       mixart/miXart8AES.xlx
+firmware:       moxa/moxa-1110.fw
+firmware:       moxa/moxa-1130.fw
+firmware:       moxa/moxa-1131.fw
+firmware:       moxa/moxa-1150.fw
+firmware:       moxa/moxa-1151.fw
+firmware:       mrvl/sd8688.bin
+firmware:       mrvl/sd8688_helper.bin
+firmware:       mrvl/sd8786_uapsta.bin
+firmware:       mrvl/sd8787_uapsta.bin
+firmware:       mrvl/sd8797_uapsta.bin
+firmware:       mrvl/sd8887_uapsta.bin
+firmware:       mrvl/sd8897_uapsta.bin
+firmware:       mrvl/sd8987_uapsta.bin
+firmware:       mrvl/sdsd8977_combo_v2.bin
+firmware:       mrvl/sdsd8997_combo_v4.bin
+firmware:       mrvl/usb8766_uapsta.bin
+firmware:       mrvl/usb8797_uapsta.bin
+firmware:       mrvl/usb8801_uapsta.bin
+firmware:       mrvl/usbusb8997_combo_v4.bin
+firmware:       mt7601u.bin
+firmware:       mt7603_e1.bin
+firmware:       mt7603_e2.bin
+firmware:       mt7628_e1.bin
+firmware:       mt7628_e2.bin
+firmware:       mt7662.bin
+firmware:       mt7662_rom_patch.bin
+firmware:       mts_cdma.fw
+firmware:       mts_edge.fw
+firmware:       mts_gsm.fw
+firmware:       mts_mt9234mu.fw
+firmware:       mts_mt9234zba.fw
+firmware:       multiface_firmware.bin
+firmware:       multiface_firmware_rev11.bin
+firmware:       mwl8k/fmimage_8363.fw
+firmware:       mwl8k/fmimage_8366.fw
+firmware:       mwl8k/fmimage_8366_ap-3.fw
+firmware:       mwl8k/fmimage_8687.fw
+firmware:       mwl8k/helper_8363.fw
+firmware:       mwl8k/helper_8366.fw
+firmware:       mwl8k/helper_8687.fw
+firmware:       myri10ge_eth_z8e.dat
+firmware:       myri10ge_ethp_z8e.dat
+firmware:       myri10ge_rss_eth_z8e.dat
+firmware:       myri10ge_rss_ethp_z8e.dat
+firmware:       netronome/nic_AMDA0058-0011_2x40.nffw
+firmware:       netronome/nic_AMDA0058-0012_2x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_1x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_4x10.nffw
+firmware:       netronome/nic_AMDA0096-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0097-0001_2x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_4x10_1x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_8x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_1x10_1x25.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x25.nffw
+firmware:       ni6534a.bin
+firmware:       niscrb01.bin
+firmware:       niscrb02.bin
+firmware:       nvidia/gm200/acr/bl.bin
+firmware:       nvidia/gm200/acr/ucode_load.bin
+firmware:       nvidia/gm200/acr/ucode_unload.bin
+firmware:       nvidia/gm200/gr/fecs_bl.bin
+firmware:       nvidia/gm200/gr/fecs_data.bin
+firmware:       nvidia/gm200/gr/fecs_inst.bin
+firmware:       nvidia/gm200/gr/fecs_sig.bin
+firmware:       nvidia/gm200/gr/gpccs_bl.bin
+firmware:       nvidia/gm200/gr/gpccs_data.bin
+firmware:       nvidia/gm200/gr/gpccs_inst.bin
+firmware:       nvidia/gm200/gr/gpccs_sig.bin
+firmware:       nvidia/gm200/gr/sw_bundle_init.bin
+firmware:       nvidia/gm200/gr/sw_ctx.bin
+firmware:       nvidia/gm200/gr/sw_method_init.bin
+firmware:       nvidia/gm200/gr/sw_nonctx.bin
+firmware:       nvidia/gm204/acr/bl.bin
+firmware:       nvidia/gm204/acr/ucode_load.bin
+firmware:       nvidia/gm204/acr/ucode_unload.bin
+firmware:       nvidia/gm204/gr/fecs_bl.bin
+firmware:       nvidia/gm204/gr/fecs_data.bin
+firmware:       nvidia/gm204/gr/fecs_inst.bin
+firmware:       nvidia/gm204/gr/fecs_sig.bin
+firmware:       nvidia/gm204/gr/gpccs_bl.bin
+firmware:       nvidia/gm204/gr/gpccs_data.bin
+firmware:       nvidia/gm204/gr/gpccs_inst.bin
+firmware:       nvidia/gm204/gr/gpccs_sig.bin
+firmware:       nvidia/gm204/gr/sw_bundle_init.bin
+firmware:       nvidia/gm204/gr/sw_ctx.bin
+firmware:       nvidia/gm204/gr/sw_method_init.bin
+firmware:       nvidia/gm204/gr/sw_nonctx.bin
+firmware:       nvidia/gm206/acr/bl.bin
+firmware:       nvidia/gm206/acr/ucode_load.bin
+firmware:       nvidia/gm206/acr/ucode_unload.bin
+firmware:       nvidia/gm206/gr/fecs_bl.bin
+firmware:       nvidia/gm206/gr/fecs_data.bin
+firmware:       nvidia/gm206/gr/fecs_inst.bin
+firmware:       nvidia/gm206/gr/fecs_sig.bin
+firmware:       nvidia/gm206/gr/gpccs_bl.bin
+firmware:       nvidia/gm206/gr/gpccs_data.bin
+firmware:       nvidia/gm206/gr/gpccs_inst.bin
+firmware:       nvidia/gm206/gr/gpccs_sig.bin
+firmware:       nvidia/gm206/gr/sw_bundle_init.bin
+firmware:       nvidia/gm206/gr/sw_ctx.bin
+firmware:       nvidia/gm206/gr/sw_method_init.bin
+firmware:       nvidia/gm206/gr/sw_nonctx.bin
+firmware:       nvidia/gp100/acr/bl.bin
+firmware:       nvidia/gp100/acr/ucode_load.bin
+firmware:       nvidia/gp100/acr/ucode_unload.bin
+firmware:       nvidia/gp100/gr/fecs_bl.bin
+firmware:       nvidia/gp100/gr/fecs_data.bin
+firmware:       nvidia/gp100/gr/fecs_inst.bin
+firmware:       nvidia/gp100/gr/fecs_sig.bin
+firmware:       nvidia/gp100/gr/gpccs_bl.bin
+firmware:       nvidia/gp100/gr/gpccs_data.bin
+firmware:       nvidia/gp100/gr/gpccs_inst.bin
+firmware:       nvidia/gp100/gr/gpccs_sig.bin
+firmware:       nvidia/gp100/gr/sw_bundle_init.bin
+firmware:       nvidia/gp100/gr/sw_ctx.bin
+firmware:       nvidia/gp100/gr/sw_method_init.bin
+firmware:       nvidia/gp100/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/acr/bl.bin
+firmware:       nvidia/gp102/acr/ucode_load.bin
+firmware:       nvidia/gp102/acr/ucode_unload.bin
+firmware:       nvidia/gp102/acr/unload_bl.bin
+firmware:       nvidia/gp102/gr/fecs_bl.bin
+firmware:       nvidia/gp102/gr/fecs_data.bin
+firmware:       nvidia/gp102/gr/fecs_inst.bin
+firmware:       nvidia/gp102/gr/fecs_sig.bin
+firmware:       nvidia/gp102/gr/gpccs_bl.bin
+firmware:       nvidia/gp102/gr/gpccs_data.bin
+firmware:       nvidia/gp102/gr/gpccs_inst.bin
+firmware:       nvidia/gp102/gr/gpccs_sig.bin
+firmware:       nvidia/gp102/gr/sw_bundle_init.bin
+firmware:       nvidia/gp102/gr/sw_ctx.bin
+firmware:       nvidia/gp102/gr/sw_method_init.bin
+firmware:       nvidia/gp102/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/nvdec/scrubber.bin
+firmware:       nvidia/gp102/sec2/desc-1.bin
+firmware:       nvidia/gp102/sec2/desc.bin
+firmware:       nvidia/gp102/sec2/image-1.bin
+firmware:       nvidia/gp102/sec2/image.bin
+firmware:       nvidia/gp102/sec2/sig-1.bin
+firmware:       nvidia/gp102/sec2/sig.bin
+firmware:       nvidia/gp104/acr/bl.bin
+firmware:       nvidia/gp104/acr/ucode_load.bin
+firmware:       nvidia/gp104/acr/ucode_unload.bin
+firmware:       nvidia/gp104/acr/unload_bl.bin
+firmware:       nvidia/gp104/gr/fecs_bl.bin
+firmware:       nvidia/gp104/gr/fecs_data.bin
+firmware:       nvidia/gp104/gr/fecs_inst.bin
+firmware:       nvidia/gp104/gr/fecs_sig.bin
+firmware:       nvidia/gp104/gr/gpccs_bl.bin
+firmware:       nvidia/gp104/gr/gpccs_data.bin
+firmware:       nvidia/gp104/gr/gpccs_inst.bin
+firmware:       nvidia/gp104/gr/gpccs_sig.bin
+firmware:       nvidia/gp104/gr/sw_bundle_init.bin
+firmware:       nvidia/gp104/gr/sw_ctx.bin
+firmware:       nvidia/gp104/gr/sw_method_init.bin
+firmware:       nvidia/gp104/gr/sw_nonctx.bin
+firmware:       nvidia/gp104/nvdec/scrubber.bin
+firmware:       nvidia/gp104/sec2/desc-1.bin
+firmware:       nvidia/gp104/sec2/desc.bin
+firmware:       nvidia/gp104/sec2/image-1.bin
+firmware:       nvidia/gp104/sec2/image.bin
+firmware:       nvidia/gp104/sec2/sig-1.bin
+firmware:       nvidia/gp104/sec2/sig.bin
+firmware:       nvidia/gp106/acr/bl.bin
+firmware:       nvidia/gp106/acr/ucode_load.bin
+firmware:       nvidia/gp106/acr/ucode_unload.bin
+firmware:       nvidia/gp106/acr/unload_bl.bin
+firmware:       nvidia/gp106/gr/fecs_bl.bin
+firmware:       nvidia/gp106/gr/fecs_data.bin
+firmware:       nvidia/gp106/gr/fecs_inst.bin
+firmware:       nvidia/gp106/gr/fecs_sig.bin
+firmware:       nvidia/gp106/gr/gpccs_bl.bin
+firmware:       nvidia/gp106/gr/gpccs_data.bin
+firmware:       nvidia/gp106/gr/gpccs_inst.bin
+firmware:       nvidia/gp106/gr/gpccs_sig.bin
+firmware:       nvidia/gp106/gr/sw_bundle_init.bin
+firmware:       nvidia/gp106/gr/sw_ctx.bin
+firmware:       nvidia/gp106/gr/sw_method_init.bin
+firmware:       nvidia/gp106/gr/sw_nonctx.bin
+firmware:       nvidia/gp106/nvdec/scrubber.bin
+firmware:       nvidia/gp106/sec2/desc-1.bin
+firmware:       nvidia/gp106/sec2/desc.bin
+firmware:       nvidia/gp106/sec2/image-1.bin
+firmware:       nvidia/gp106/sec2/image.bin
+firmware:       nvidia/gp106/sec2/sig-1.bin
+firmware:       nvidia/gp106/sec2/sig.bin
+firmware:       nvidia/gp107/acr/bl.bin
+firmware:       nvidia/gp107/acr/ucode_load.bin
+firmware:       nvidia/gp107/acr/ucode_unload.bin
+firmware:       nvidia/gp107/acr/unload_bl.bin
+firmware:       nvidia/gp107/gr/fecs_bl.bin
+firmware:       nvidia/gp107/gr/fecs_data.bin
+firmware:       nvidia/gp107/gr/fecs_inst.bin
+firmware:       nvidia/gp107/gr/fecs_sig.bin
+firmware:       nvidia/gp107/gr/gpccs_bl.bin
+firmware:       nvidia/gp107/gr/gpccs_data.bin
+firmware:       nvidia/gp107/gr/gpccs_inst.bin
+firmware:       nvidia/gp107/gr/gpccs_sig.bin
+firmware:       nvidia/gp107/gr/sw_bundle_init.bin
+firmware:       nvidia/gp107/gr/sw_ctx.bin
+firmware:       nvidia/gp107/gr/sw_method_init.bin
+firmware:       nvidia/gp107/gr/sw_nonctx.bin
+firmware:       nvidia/gp107/nvdec/scrubber.bin
+firmware:       nvidia/gp107/sec2/desc-1.bin
+firmware:       nvidia/gp107/sec2/desc.bin
+firmware:       nvidia/gp107/sec2/image-1.bin
+firmware:       nvidia/gp107/sec2/image.bin
+firmware:       nvidia/gp107/sec2/sig-1.bin
+firmware:       nvidia/gp107/sec2/sig.bin
+firmware:       nvidia/gp108/acr/bl.bin
+firmware:       nvidia/gp108/acr/ucode_load.bin
+firmware:       nvidia/gp108/acr/ucode_unload.bin
+firmware:       nvidia/gp108/acr/unload_bl.bin
+firmware:       nvidia/gp108/gr/fecs_bl.bin
+firmware:       nvidia/gp108/gr/fecs_data.bin
+firmware:       nvidia/gp108/gr/fecs_inst.bin
+firmware:       nvidia/gp108/gr/fecs_sig.bin
+firmware:       nvidia/gp108/gr/gpccs_bl.bin
+firmware:       nvidia/gp108/gr/gpccs_data.bin
+firmware:       nvidia/gp108/gr/gpccs_inst.bin
+firmware:       nvidia/gp108/gr/gpccs_sig.bin
+firmware:       nvidia/gp108/gr/sw_bundle_init.bin
+firmware:       nvidia/gp108/gr/sw_ctx.bin
+firmware:       nvidia/gp108/gr/sw_method_init.bin
+firmware:       nvidia/gp108/gr/sw_nonctx.bin
+firmware:       nvidia/gp108/nvdec/scrubber.bin
+firmware:       nvidia/gp108/sec2/desc.bin
+firmware:       nvidia/gp108/sec2/image.bin
+firmware:       nvidia/gp108/sec2/sig.bin
+firmware:       nvidia/gv100/acr/bl.bin
+firmware:       nvidia/gv100/acr/ucode_load.bin
+firmware:       nvidia/gv100/acr/ucode_unload.bin
+firmware:       nvidia/gv100/acr/unload_bl.bin
+firmware:       nvidia/gv100/gr/fecs_bl.bin
+firmware:       nvidia/gv100/gr/fecs_data.bin
+firmware:       nvidia/gv100/gr/fecs_inst.bin
+firmware:       nvidia/gv100/gr/fecs_sig.bin
+firmware:       nvidia/gv100/gr/gpccs_bl.bin
+firmware:       nvidia/gv100/gr/gpccs_data.bin
+firmware:       nvidia/gv100/gr/gpccs_inst.bin
+firmware:       nvidia/gv100/gr/gpccs_sig.bin
+firmware:       nvidia/gv100/gr/sw_bundle_init.bin
+firmware:       nvidia/gv100/gr/sw_ctx.bin
+firmware:       nvidia/gv100/gr/sw_method_init.bin
+firmware:       nvidia/gv100/gr/sw_nonctx.bin
+firmware:       nvidia/gv100/nvdec/scrubber.bin
+firmware:       nvidia/gv100/sec2/desc.bin
+firmware:       nvidia/gv100/sec2/image.bin
+firmware:       nvidia/gv100/sec2/sig.bin
+firmware:       orinoco_ezusb_fw
+firmware:       ositech/Xilinx7OD.bin
+firmware:       pca200e_ecd.bin2
+firmware:       pcxhr/dspb1222e.b56
+firmware:       pcxhr/dspb1222hr.b56
+firmware:       pcxhr/dspb882e.b56
+firmware:       pcxhr/dspb882hr.b56
+firmware:       pcxhr/dspb924.b56
+firmware:       pcxhr/dspd1222.d56
+firmware:       pcxhr/dspd222.d56
+firmware:       pcxhr/dspd882.d56
+firmware:       pcxhr/dspe882.e56
+firmware:       pcxhr/dspe924.e56
+firmware:       pcxhr/xlxc1222e.dat
+firmware:       pcxhr/xlxc1222hr.dat
+firmware:       pcxhr/xlxc222.dat
+firmware:       pcxhr/xlxc882e.dat
+firmware:       pcxhr/xlxc882hr.dat
+firmware:       pcxhr/xlxc924.dat
+firmware:       pcxhr/xlxint.dat
+firmware:       phanfw.bin
+firmware:       prism2_ru.fw
+firmware:       prism_ap_fw.bin
+firmware:       prism_sta_fw.bin
+firmware:       qat_895xcc.bin
+firmware:       qat_895xcc_mmp.bin
+firmware:       qat_c3xxx.bin
+firmware:       qat_c3xxx_mmp.bin
+firmware:       qat_c62x.bin
+firmware:       qat_c62x_mmp.bin
+firmware:       qed/qed_init_values_zipped-8.37.7.0.bin
+firmware:       ql2100_fw.bin
+firmware:       ql2200_fw.bin
+firmware:       ql2300_fw.bin
+firmware:       ql2322_fw.bin
+firmware:       ql2400_fw.bin
+firmware:       ql2500_fw.bin
+firmware:       qlogic/1040.bin
+firmware:       qlogic/12160.bin
+firmware:       qlogic/1280.bin
+firmware:       qlogic/sd7220.fw
+firmware:       radeon/ARUBA_me.bin
+firmware:       radeon/ARUBA_pfp.bin
+firmware:       radeon/ARUBA_rlc.bin
+firmware:       radeon/BARTS_mc.bin
+firmware:       radeon/BARTS_me.bin
+firmware:       radeon/BARTS_pfp.bin
+firmware:       radeon/BARTS_smc.bin
+firmware:       radeon/BONAIRE_ce.bin
+firmware:       radeon/BONAIRE_mc.bin
+firmware:       radeon/BONAIRE_mc2.bin
+firmware:       radeon/BONAIRE_me.bin
+firmware:       radeon/BONAIRE_mec.bin
+firmware:       radeon/BONAIRE_pfp.bin
+firmware:       radeon/BONAIRE_rlc.bin
+firmware:       radeon/BONAIRE_sdma.bin
+firmware:       radeon/BONAIRE_smc.bin
+firmware:       radeon/BONAIRE_uvd.bin
+firmware:       radeon/BONAIRE_vce.bin
+firmware:       radeon/BTC_rlc.bin
+firmware:       radeon/CAICOS_mc.bin
+firmware:       radeon/CAICOS_me.bin
+firmware:       radeon/CAICOS_pfp.bin
+firmware:       radeon/CAICOS_smc.bin
+firmware:       radeon/CAYMAN_mc.bin
+firmware:       radeon/CAYMAN_me.bin
+firmware:       radeon/CAYMAN_pfp.bin
+firmware:       radeon/CAYMAN_rlc.bin
+firmware:       radeon/CAYMAN_smc.bin
+firmware:       radeon/CEDAR_me.bin
+firmware:       radeon/CEDAR_pfp.bin
+firmware:       radeon/CEDAR_rlc.bin
+firmware:       radeon/CEDAR_smc.bin
+firmware:       radeon/CYPRESS_me.bin
+firmware:       radeon/CYPRESS_pfp.bin
+firmware:       radeon/CYPRESS_rlc.bin
+firmware:       radeon/CYPRESS_smc.bin
+firmware:       radeon/CYPRESS_uvd.bin
+firmware:       radeon/HAINAN_ce.bin
+firmware:       radeon/HAINAN_mc.bin
+firmware:       radeon/HAINAN_mc2.bin
+firmware:       radeon/HAINAN_me.bin
+firmware:       radeon/HAINAN_pfp.bin
+firmware:       radeon/HAINAN_rlc.bin
+firmware:       radeon/HAINAN_smc.bin
+firmware:       radeon/HAWAII_ce.bin
+firmware:       radeon/HAWAII_mc.bin
+firmware:       radeon/HAWAII_mc2.bin
+firmware:       radeon/HAWAII_me.bin
+firmware:       radeon/HAWAII_mec.bin
+firmware:       radeon/HAWAII_pfp.bin
+firmware:       radeon/HAWAII_rlc.bin
+firmware:       radeon/HAWAII_sdma.bin
+firmware:       radeon/HAWAII_smc.bin
+firmware:       radeon/JUNIPER_me.bin
+firmware:       radeon/JUNIPER_pfp.bin
+firmware:       radeon/JUNIPER_rlc.bin
+firmware:       radeon/JUNIPER_smc.bin
+firmware:       radeon/KABINI_ce.bin
+firmware:       radeon/KABINI_me.bin
+firmware:       radeon/KABINI_mec.bin
+firmware:       radeon/KABINI_pfp.bin
+firmware:       radeon/KABINI_rlc.bin
+firmware:       radeon/KABINI_sdma.bin
+firmware:       radeon/KAVERI_ce.bin
+firmware:       radeon/KAVERI_me.bin
+firmware:       radeon/KAVERI_mec.bin
+firmware:       radeon/KAVERI_pfp.bin
+firmware:       radeon/KAVERI_rlc.bin
+firmware:       radeon/KAVERI_sdma.bin
+firmware:       radeon/MULLINS_ce.bin
+firmware:       radeon/MULLINS_me.bin
+firmware:       radeon/MULLINS_mec.bin
+firmware:       radeon/MULLINS_pfp.bin
+firmware:       radeon/MULLINS_rlc.bin
+firmware:       radeon/MULLINS_sdma.bin
+firmware:       radeon/OLAND_ce.bin
+firmware:       radeon/OLAND_mc.bin
+firmware:       radeon/OLAND_mc2.bin
+firmware:       radeon/OLAND_me.bin
+firmware:       radeon/OLAND_pfp.bin
+firmware:       radeon/OLAND_rlc.bin
+firmware:       radeon/OLAND_smc.bin
+firmware:       radeon/PALM_me.bin
+firmware:       radeon/PALM_pfp.bin
+firmware:       radeon/PITCAIRN_ce.bin
+firmware:       radeon/PITCAIRN_mc.bin
+firmware:       radeon/PITCAIRN_mc2.bin
+firmware:       radeon/PITCAIRN_me.bin
+firmware:       radeon/PITCAIRN_pfp.bin
+firmware:       radeon/PITCAIRN_rlc.bin
+firmware:       radeon/PITCAIRN_smc.bin
+firmware:       radeon/R100_cp.bin
+firmware:       radeon/R200_cp.bin
+firmware:       radeon/R300_cp.bin
+firmware:       radeon/R420_cp.bin
+firmware:       radeon/R520_cp.bin
+firmware:       radeon/R600_me.bin
+firmware:       radeon/R600_pfp.bin
+firmware:       radeon/R600_rlc.bin
+firmware:       radeon/R600_uvd.bin
+firmware:       radeon/R700_rlc.bin
+firmware:       radeon/REDWOOD_me.bin
+firmware:       radeon/REDWOOD_pfp.bin
+firmware:       radeon/REDWOOD_rlc.bin
+firmware:       radeon/REDWOOD_smc.bin
+firmware:       radeon/RS600_cp.bin
+firmware:       radeon/RS690_cp.bin
+firmware:       radeon/RS780_me.bin
+firmware:       radeon/RS780_pfp.bin
+firmware:       radeon/RS780_uvd.bin
+firmware:       radeon/RV610_me.bin
+firmware:       radeon/RV610_pfp.bin
+firmware:       radeon/RV620_me.bin
+firmware:       radeon/RV620_pfp.bin
+firmware:       radeon/RV630_me.bin
+firmware:       radeon/RV630_pfp.bin
+firmware:       radeon/RV635_me.bin
+firmware:       radeon/RV635_pfp.bin
+firmware:       radeon/RV670_me.bin
+firmware:       radeon/RV670_pfp.bin
+firmware:       radeon/RV710_me.bin
+firmware:       radeon/RV710_pfp.bin
+firmware:       radeon/RV710_smc.bin
+firmware:       radeon/RV710_uvd.bin
+firmware:       radeon/RV730_me.bin
+firmware:       radeon/RV730_pfp.bin
+firmware:       radeon/RV730_smc.bin
+firmware:       radeon/RV740_smc.bin
+firmware:       radeon/RV770_me.bin
+firmware:       radeon/RV770_pfp.bin
+firmware:       radeon/RV770_smc.bin
+firmware:       radeon/RV770_uvd.bin
+firmware:       radeon/SUMO2_me.bin
+firmware:       radeon/SUMO2_pfp.bin
+firmware:       radeon/SUMO_me.bin
+firmware:       radeon/SUMO_pfp.bin
+firmware:       radeon/SUMO_rlc.bin
+firmware:       radeon/SUMO_uvd.bin
+firmware:       radeon/TAHITI_ce.bin
+firmware:       radeon/TAHITI_mc.bin
+firmware:       radeon/TAHITI_mc2.bin
+firmware:       radeon/TAHITI_me.bin
+firmware:       radeon/TAHITI_pfp.bin
+firmware:       radeon/TAHITI_rlc.bin
+firmware:       radeon/TAHITI_smc.bin
+firmware:       radeon/TAHITI_uvd.bin
+firmware:       radeon/TAHITI_vce.bin
+firmware:       radeon/TURKS_mc.bin
+firmware:       radeon/TURKS_me.bin
+firmware:       radeon/TURKS_pfp.bin
+firmware:       radeon/TURKS_smc.bin
+firmware:       radeon/VERDE_ce.bin
+firmware:       radeon/VERDE_mc.bin
+firmware:       radeon/VERDE_mc2.bin
+firmware:       radeon/VERDE_me.bin
+firmware:       radeon/VERDE_pfp.bin
+firmware:       radeon/VERDE_rlc.bin
+firmware:       radeon/VERDE_smc.bin
+firmware:       radeon/banks_k_2_smc.bin
+firmware:       radeon/bonaire_ce.bin
+firmware:       radeon/bonaire_k_smc.bin
+firmware:       radeon/bonaire_mc.bin
+firmware:       radeon/bonaire_me.bin
+firmware:       radeon/bonaire_mec.bin
+firmware:       radeon/bonaire_pfp.bin
+firmware:       radeon/bonaire_rlc.bin
+firmware:       radeon/bonaire_sdma.bin
+firmware:       radeon/bonaire_smc.bin
+firmware:       radeon/bonaire_uvd.bin
+firmware:       radeon/hainan_ce.bin
+firmware:       radeon/hainan_k_smc.bin
+firmware:       radeon/hainan_mc.bin
+firmware:       radeon/hainan_me.bin
+firmware:       radeon/hainan_pfp.bin
+firmware:       radeon/hainan_rlc.bin
+firmware:       radeon/hainan_smc.bin
+firmware:       radeon/hawaii_ce.bin
+firmware:       radeon/hawaii_k_smc.bin
+firmware:       radeon/hawaii_mc.bin
+firmware:       radeon/hawaii_me.bin
+firmware:       radeon/hawaii_mec.bin
+firmware:       radeon/hawaii_pfp.bin
+firmware:       radeon/hawaii_rlc.bin
+firmware:       radeon/hawaii_sdma.bin
+firmware:       radeon/hawaii_smc.bin
+firmware:       radeon/kabini_ce.bin
+firmware:       radeon/kabini_me.bin
+firmware:       radeon/kabini_mec.bin
+firmware:       radeon/kabini_pfp.bin
+firmware:       radeon/kabini_rlc.bin
+firmware:       radeon/kabini_sdma.bin
+firmware:       radeon/kaveri_ce.bin
+firmware:       radeon/kaveri_me.bin
+firmware:       radeon/kaveri_mec.bin
+firmware:       radeon/kaveri_mec2.bin
+firmware:       radeon/kaveri_pfp.bin
+firmware:       radeon/kaveri_rlc.bin
+firmware:       radeon/kaveri_sdma.bin
+firmware:       radeon/mullins_ce.bin
+firmware:       radeon/mullins_me.bin
+firmware:       radeon/mullins_mec.bin
+firmware:       radeon/mullins_pfp.bin
+firmware:       radeon/mullins_rlc.bin
+firmware:       radeon/mullins_sdma.bin
+firmware:       radeon/oland_ce.bin
+firmware:       radeon/oland_k_smc.bin
+firmware:       radeon/oland_mc.bin
+firmware:       radeon/oland_me.bin
+firmware:       radeon/oland_pfp.bin
+firmware:       radeon/oland_rlc.bin
+firmware:       radeon/oland_smc.bin
+firmware:       radeon/pitcairn_ce.bin
+firmware:       radeon/pitcairn_k_smc.bin
+firmware:       radeon/pitcairn_mc.bin
+firmware:       radeon/pitcairn_me.bin
+firmware:       radeon/pitcairn_pfp.bin
+firmware:       radeon/pitcairn_rlc.bin
+firmware:       radeon/pitcairn_smc.bin
+firmware:       radeon/si58_mc.bin
+firmware:       radeon/tahiti_ce.bin
+firmware:       radeon/tahiti_mc.bin
+firmware:       radeon/tahiti_me.bin
+firmware:       radeon/tahiti_pfp.bin
+firmware:       radeon/tahiti_rlc.bin
+firmware:       radeon/tahiti_smc.bin
+firmware:       radeon/verde_ce.bin
+firmware:       radeon/verde_k_smc.bin
+firmware:       radeon/verde_mc.bin
+firmware:       radeon/verde_me.bin
+firmware:       radeon/verde_pfp.bin
+firmware:       radeon/verde_rlc.bin
+firmware:       radeon/verde_smc.bin
+firmware:       riptide.hex
+firmware:       rp2.fw
+firmware:       rpm_firmware.bin
+firmware:       rs9113_wlan_qspi.rps
+firmware:       rt2561.bin
+firmware:       rt2561s.bin
+firmware:       rt2661.bin
+firmware:       rt2860.bin
+firmware:       rt2870.bin
+firmware:       rt73.bin
+firmware:       rtl_bt/rtl8723a_fw.bin
+firmware:       rtl_bt/rtl8723b_config.bin
+firmware:       rtl_bt/rtl8723b_fw.bin
+firmware:       rtl_bt/rtl8723bs_config.bin
+firmware:       rtl_bt/rtl8723bs_fw.bin
+firmware:       rtl_bt/rtl8723ds_config.bin
+firmware:       rtl_bt/rtl8723ds_fw.bin
+firmware:       rtl_bt/rtl8761a_config.bin
+firmware:       rtl_bt/rtl8761a_fw.bin
+firmware:       rtl_bt/rtl8821a_config.bin
+firmware:       rtl_bt/rtl8821a_fw.bin
+firmware:       rtl_bt/rtl8822b_config.bin
+firmware:       rtl_bt/rtl8822b_fw.bin
+firmware:       rtl_nic/rtl8105e-1.fw
+firmware:       rtl_nic/rtl8106e-1.fw
+firmware:       rtl_nic/rtl8106e-2.fw
+firmware:       rtl_nic/rtl8107e-1.fw
+firmware:       rtl_nic/rtl8107e-2.fw
+firmware:       rtl_nic/rtl8125a-3.fw
+firmware:       rtl_nic/rtl8168d-1.fw
+firmware:       rtl_nic/rtl8168d-2.fw
+firmware:       rtl_nic/rtl8168e-1.fw
+firmware:       rtl_nic/rtl8168e-2.fw
+firmware:       rtl_nic/rtl8168e-3.fw
+firmware:       rtl_nic/rtl8168f-1.fw
+firmware:       rtl_nic/rtl8168f-2.fw
+firmware:       rtl_nic/rtl8168fp-3.fw
+firmware:       rtl_nic/rtl8168g-2.fw
+firmware:       rtl_nic/rtl8168g-3.fw
+firmware:       rtl_nic/rtl8168h-1.fw
+firmware:       rtl_nic/rtl8168h-2.fw
+firmware:       rtl_nic/rtl8402-1.fw
+firmware:       rtl_nic/rtl8411-1.fw
+firmware:       rtl_nic/rtl8411-2.fw
+firmware:       rtlwifi/rtl8188efw.bin
+firmware:       rtlwifi/rtl8188eufw.bin
+firmware:       rtlwifi/rtl8192cfw.bin
+firmware:       rtlwifi/rtl8192cfwU.bin
+firmware:       rtlwifi/rtl8192cfwU_B.bin
+firmware:       rtlwifi/rtl8192cufw.bin
+firmware:       rtlwifi/rtl8192cufw_A.bin
+firmware:       rtlwifi/rtl8192cufw_B.bin
+firmware:       rtlwifi/rtl8192cufw_TMSC.bin
+firmware:       rtlwifi/rtl8192defw.bin
+firmware:       rtlwifi/rtl8192eefw.bin
+firmware:       rtlwifi/rtl8192eu_nic.bin
+firmware:       rtlwifi/rtl8192sefw.bin
+firmware:       rtlwifi/rtl8712u.bin
+firmware:       rtlwifi/rtl8723aufw_A.bin
+firmware:       rtlwifi/rtl8723aufw_B.bin
+firmware:       rtlwifi/rtl8723aufw_B_NoBT.bin
+firmware:       rtlwifi/rtl8723befw.bin
+firmware:       rtlwifi/rtl8723befw_36.bin
+firmware:       rtlwifi/rtl8723bu_bt.bin
+firmware:       rtlwifi/rtl8723bu_nic.bin
+firmware:       rtlwifi/rtl8723efw.bin
+firmware:       rtlwifi/rtl8821aefw.bin
+firmware:       rtlwifi/rtl8821aefw_29.bin
+firmware:       rtw88/rtw8723d_fw.bin
+firmware:       rtw88/rtw8822b_fw.bin
+firmware:       rtw88/rtw8822c_fw.bin
+firmware:       rtw88/rtw8822c_wow_fw.bin
+firmware:       s5k4ecgx.bin
+firmware:       sd8385.bin
+firmware:       sd8385_helper.bin
+firmware:       sd8686.bin
+firmware:       sd8686_helper.bin
+firmware:       sd8688.bin
+firmware:       sd8688_helper.bin
+firmware:       slicoss/gbdownload.sys
+firmware:       slicoss/gbrcvucode.sys
+firmware:       slicoss/oasisdownload.sys
+firmware:       slicoss/oasisrcvucode.sys
+firmware:       sms1xxx-hcw-55xxx-dvbt-02.fw
+firmware:       sms1xxx-hcw-55xxx-isdbt-02.fw
+firmware:       sms1xxx-nova-a-dvbt-01.fw
+firmware:       sms1xxx-nova-b-dvbt-01.fw
+firmware:       sms1xxx-stellar-dvbt-01.fw
+firmware:       softing-4.6/bcard.bin
+firmware:       softing-4.6/bcard2.bin
+firmware:       softing-4.6/cancard.bin
+firmware:       softing-4.6/cancrd2.bin
+firmware:       softing-4.6/cansja.bin
+firmware:       softing-4.6/ldcard.bin
+firmware:       softing-4.6/ldcard2.bin
+firmware:       solos-FPGA.bin
+firmware:       solos-Firmware.bin
+firmware:       solos-db-FPGA.bin
+firmware:       sun/cassini.bin
+firmware:       symbol_sp24t_prim_fw
+firmware:       symbol_sp24t_sec_fw
+firmware:       tdmb_denver.inp
+firmware:       tdmb_nova_12mhz.inp
+firmware:       tdmb_nova_12mhz_b0.inp
+firmware:       tehuti/bdx.bin
+firmware:       ti-connectivity/wl1251-fw.bin
+firmware:       ti-connectivity/wl1251-nvs.bin
+firmware:       ti-connectivity/wl127x-fw-5-mr.bin
+firmware:       ti-connectivity/wl127x-fw-5-plt.bin
+firmware:       ti-connectivity/wl127x-fw-5-sr.bin
+firmware:       ti-connectivity/wl128x-fw-5-mr.bin
+firmware:       ti-connectivity/wl128x-fw-5-plt.bin
+firmware:       ti-connectivity/wl128x-fw-5-sr.bin
+firmware:       ti-connectivity/wl18xx-fw-4.bin
+firmware:       ti_3410.fw
+firmware:       ti_5052.fw
+firmware:       tigon/tg3.bin
+firmware:       tigon/tg3_tso.bin
+firmware:       tigon/tg3_tso5.bin
+firmware:       ttusb-budget/dspbootcode.bin
+firmware:       ueagle-atm/930-fpga.bin
+firmware:       ueagle-atm/CMV4i.bin
+firmware:       ueagle-atm/CMV4i.bin.v2
+firmware:       ueagle-atm/CMV4p.bin
+firmware:       ueagle-atm/CMV4p.bin.v2
+firmware:       ueagle-atm/CMV9i.bin
+firmware:       ueagle-atm/CMV9i.bin.v2
+firmware:       ueagle-atm/CMV9p.bin
+firmware:       ueagle-atm/CMV9p.bin.v2
+firmware:       ueagle-atm/CMVei.bin
+firmware:       ueagle-atm/CMVei.bin.v2
+firmware:       ueagle-atm/CMVep.bin
+firmware:       ueagle-atm/CMVep.bin.v2
+firmware:       ueagle-atm/DSP4i.bin
+firmware:       ueagle-atm/DSP4p.bin
+firmware:       ueagle-atm/DSP9i.bin
+firmware:       ueagle-atm/DSP9p.bin
+firmware:       ueagle-atm/DSPei.bin
+firmware:       ueagle-atm/DSPep.bin
+firmware:       ueagle-atm/adi930.fw
+firmware:       ueagle-atm/eagle.fw
+firmware:       ueagle-atm/eagleI.fw
+firmware:       ueagle-atm/eagleII.fw
+firmware:       ueagle-atm/eagleIII.fw
+firmware:       ueagle-atm/eagleIV.fw
+firmware:       usb8388.bin
+firmware:       usbdux_firmware.bin
+firmware:       usbduxfast_firmware.bin
+firmware:       usbduxsigma_firmware.bin
+firmware:       v4l-cx231xx-avcore-01.fw
+firmware:       v4l-cx23418-apu.fw
+firmware:       v4l-cx23418-cpu.fw
+firmware:       v4l-cx23418-dig.fw
+firmware:       v4l-cx2341x-dec.fw
+firmware:       v4l-cx2341x-enc.fw
+firmware:       v4l-cx2341x-init.mpg
+firmware:       v4l-cx23885-avcore-01.fw
+firmware:       v4l-cx23885-enc.fw
+firmware:       v4l-cx25840.fw
+firmware:       v4l-pvrusb2-24xxx-01.fw
+firmware:       v4l-pvrusb2-29xxx-01.fw
+firmware:       v4l-pvrusb2-73xxx-01.fw
+firmware:       vicam/firmware.fw
+firmware:       vntwusb.fw
+firmware:       vx/bd56002.boot
+firmware:       vx/bd563s3.boot
+firmware:       vx/bd563v2.boot
+firmware:       vx/bx_1_vp4.b56
+firmware:       vx/bx_1_vxp.b56
+firmware:       vx/l_1_v22.d56
+firmware:       vx/l_1_vp4.d56
+firmware:       vx/l_1_vx2.d56
+firmware:       vx/l_1_vxp.d56
+firmware:       vx/x1_1_vp4.xlx
+firmware:       vx/x1_1_vx2.xlx
+firmware:       vx/x1_1_vxp.xlx
+firmware:       vx/x1_2_v22.xlx
+firmware:       vxge/X3fw-pxe.ncf
+firmware:       vxge/X3fw.ncf
+firmware:       wd719x-risc.bin
+firmware:       wd719x-wcs.bin
+firmware:       whiteheat.fw
+firmware:       whiteheat_loader.fw
+firmware:       wil6210.brd
+firmware:       wil6210.fw
+firmware:       wil6210_sparrow_plus.fw
+firmware:       wil6436.brd
+firmware:       wil6436.fw
+firmware:       wlan/prima/WCNSS_qcom_wlan_nv.bin
+firmware:       xc3028-v27.fw
+firmware:       xc3028L-v36.fw
+firmware:       yam/1200.bin
+firmware:       yam/9600.bin
+firmware:       yamaha/ds1_ctrl.fw
+firmware:       yamaha/ds1_dsp.fw
+firmware:       yamaha/ds1e_ctrl.fw
+firmware:       zd1201-ap.fw
+firmware:       zd1201.fw
+firmware:       zd1211/zd1211_ub
+firmware:       zd1211/zd1211_uphr
+firmware:       zd1211/zd1211_ur
+firmware:       zd1211/zd1211b_ub
+firmware:       zd1211/zd1211b_uphr
+firmware:       zd1211/zd1211b_ur
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/changelog
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/changelog
@@ -0,0 +1,6582 @@
+linux-gkeop-5.4 (5.4.0-1015.16~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1015.16~18.04.1 -proposed tracker
+    (LP: #1923769)
+
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - [Config] gkeop-5.4: update abi for rc-cec
+
+  [ Ubuntu: 5.4.0-1015.16 ]
+
+  * focal/linux-gkeop: 5.4.0-1015.16 -proposed tracker (LP: #1923770)
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - [Config] gkeop: update abi for rc-cec
+  * Disable Atari partition support for cloud kernels (LP: #1908264)
+    - [Config]: Disable ATARI_PARTITION
+  * focal/linux: 5.4.0-73.82 -proposed tracker (LP: #1923781)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * CIFS DFS entries not accessible with 5.4.0-71.74-generic (LP: #1923670)
+    - Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting
+      cifs_sb->prepath."
+  * CVE-2021-29650
+    - Revert "netfilter: x_tables: Update remaining dereference to RCU"
+    - Revert "netfilter: x_tables: Switch synchronization to RCU"
+    - netfilter: x_tables: Use correct memory barriers.
+  * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key
+    (LP: #1918134)
+    - [Packaging] dkms-build{,--nvidia-N} sync back from LRMv4
+  * 5.4 kernel: when iommu is on crashdump fails (LP: #1922738)
+    - iommu/vt-d: Refactor find_domain() helper
+    - iommu/vt-d: Add attach_deferred() helper
+    - iommu/vt-d: Move deferred device attachment into helper function
+    - iommu/vt-d: Do deferred attachment in iommu_need_mapping()
+    - iommu/vt-d: Remove deferred_attach_domain()
+    - iommu/vt-d: Simplify check in identity_mapping()
+  * Backport mlx5e fix for tunnel offload (LP: #1921769)
+    - net/mlx5e: Check tunnel offload is required before setting SWP
+  * Bcache bypasse writeback on caching device with fragmentation (LP: #1900438)
+    - bcache: consider the fragmentation when update the writeback rate
+  * Fix implicit declaration warnings for kselftests/memfd test on newer
+    releases (LP: #1910323)
+    - selftests/memfd: Fix implicit declaration warnings
+  * net/mlx5e: Add missing capability check for uplink follow (LP: #1921104)
+    - net/mlx5e: Add missing capability check for uplink follow
+  * [UBUNUT 21.04] s390/vtime: fix increased steal time accounting
+    (LP: #1921498)
+    - s390/vtime: fix increased steal time accounting
+  * Mute/Mic-mute LEDs are not work on HP 850/840/440 G8 Laptops (LP: #1920030)
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - uapi: nfnetlink_cthelper.h: fix userspace compilation error
+    - powerpc/pseries: Don't enforce MSI affinity with kdump
+    - ath9k: fix transmitting to stations in dynamic SMPS mode
+    - net: Fix gro aggregation for udp encaps with zero csum
+    - net: check if protocol extracted by virtio_net_hdr_set_proto is correct
+    - net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
+    - sh_eth: fix TRSCER mask for SH771x
+    - can: skb: can_skb_set_owner(): fix ref counting if socket was closed before
+      setting skb ownership
+    - can: flexcan: assert FRZ bit in flexcan_chip_freeze()
+    - can: flexcan: enable RX FIFO after FRZ/HALT valid
+    - can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode
+    - can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before
+      entering Normal Mode
+    - tcp: add sanity tests to TCP_QUEUE_SEQ
+    - netfilter: nf_nat: undo erroneous tcp edemux lookup
+    - netfilter: x_tables: gpf inside xt_find_revision()
+    - selftests/bpf: No need to drop the packet when there is no geneve opt
+    - selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier
+    - samples, bpf: Add missing munmap in xdpsock
+    - ibmvnic: always store valid MAC address
+    - mt76: dma: do not report truncated frames to mac80211
+    - powerpc/603: Fix protection of user pages mapped with PROT_NONE
+    - mount: fix mounting of detached mounts onto targets that reside on shared
+      mounts
+    - cifs: return proper error code in statfs(2)
+    - Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
+    - net: enetc: don't overwrite the RSS indirection table when initializing
+    - net/mlx4_en: update moderation when config reset
+    - net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10
+    - nexthop: Do not flush blackhole nexthops when loopback goes down
+    - net: sched: avoid duplicates in classes dump
+    - net: usb: qmi_wwan: allow qmimux add/del with master up
+    - netdevsim: init u64 stats for 32bit hardware
+    - cipso,calipso: resolve a number of problems with the DOI refcounts
+    - net: lapbether: Remove netif_start_queue / netif_stop_queue
+    - net: davicom: Fix regulator not turned off on failed probe
+    - net: davicom: Fix regulator not turned off on driver removal
+    - net: qrtr: fix error return code of qrtr_sendmsg()
+    - ixgbe: fail to create xfrm offload of IPsec tunnel mode SA
+    - net: stmmac: stop each tx channel independently
+    - net: stmmac: fix watchdog timeout during suspend/resume stress test
+    - selftests: forwarding: Fix race condition in mirror installation
+    - perf traceevent: Ensure read cmdlines are null terminated.
+    - net: hns3: fix query vlan mask value error for flow director
+    - net: hns3: fix bug when calculating the TCAM table info
+    - s390/cio: return -EFAULT if copy_to_user() fails again
+    - bnxt_en: reliably allocate IRQ table on reset to avoid crash
+    - drm/compat: Clear bounce structures
+    - drm/shmem-helper: Check for purged buffers in fault handler
+    - drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
+    - drm: meson_drv add shutdown function
+    - s390/cio: return -EFAULT if copy_to_user() fails
+    - s390/crypto: return -EFAULT if copy_to_user() fails
+    - qxl: Fix uninitialised struct field head.surface_id
+    - sh_eth: fix TRSCER mask for R7S9210
+    - media: usbtv: Fix deadlock on suspend
+    - media: v4l: vsp1: Fix uif null pointer access
+    - media: v4l: vsp1: Fix bru null pointer access
+    - media: rc: compile rc-cec.c into rc-core
+    - [Config] update abi for rc-cec
+    - net: hns3: fix error mask definition of flow director
+    - net: enetc: initialize RFS/RSS memories for unused ports too
+    - net: phy: fix save wrong speed and duplex problem if autoneg is on
+    - i2c: rcar: faster irq code to minimize HW race condition
+    - i2c: rcar: optimize cacheline to minimize HW race condition
+    - udf: fix silent AED tagLocation corruption
+    - mmc: mxs-mmc: Fix a resource leak in an error handling path in
+      'mxs_mmc_probe()'
+    - mmc: mediatek: fix race condition between msdc_request_timeout and irq
+    - Platform: OLPC: Fix probe error handling
+    - powerpc/pci: Add ppc_md.discover_phbs()
+    - spi: stm32: make spurious and overrun interrupts visible
+    - powerpc: improve handling of unrecoverable system reset
+    - powerpc/perf: Record counter overflow always if SAMPLE_IP is unset
+    - HID: logitech-dj: add support for the new lightspeed connection iteration
+    - powerpc/64: Fix stack trace not displaying final frame
+    - iommu/amd: Fix performance counter initialization
+    - sparc32: Limit memblock allocation to low memory
+    - sparc64: Use arch_validate_flags() to validate ADI flag
+    - Input: applespi - don't wait for responses to commands indefinitely.
+    - PCI: xgene-msi: Fix race in installing chained irq handler
+    - PCI: mediatek: Add missing of_node_put() to fix reference leak
+    - kbuild: clamp SUBLEVEL to 255
+    - PCI: Fix pci_register_io_range() memory leak
+    - i40e: Fix memory leak in i40e_probe
+    - s390/smp: __smp_rescan_cpus() - move cpumask away from stack
+    - sysctl.c: fix underflow value setting risk in vm_table
+    - scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
+    - scsi: target: core: Add cmd length set before cmd complete
+    - scsi: target: core: Prevent underflow for service actions
+    - ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
+    - ALSA: hda/hdmi: Cancel pending works before suspend
+    - ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support
+    - ALSA: hda: Drop the BATCH workaround for AMD controllers
+    - ALSA: hda: Flush pending unsolicited events before suspend
+    - ALSA: hda: Avoid spurious unsol event handling during S3/S4
+    - ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
+    - ALSA: usb-audio: Apply the control quirk to Plantronics headsets
+    - Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file
+      capabilities")
+    - arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
+    - s390/dasd: fix hanging DASD driver unbind
+    - s390/dasd: fix hanging IO request during DASD driver unbind
+    - software node: Fix node registration
+    - mmc: core: Fix partition switch time for eMMC
+    - mmc: cqhci: Fix random crash when remove mmc module/card
+    - Goodix Fingerprint device is not a modem
+    - USB: gadget: u_ether: Fix a configfs return code
+    - usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio
+      slot
+    - usb: gadget: f_uac1: stop playback on function disable
+    - usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement
+    - usb: dwc3: qcom: Honor wakeup enabled/disabled state
+    - USB: usblp: fix a hang in poll() if disconnected
+    - usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
+    - usb: xhci: do not perform Soft Retry for some xHCI hosts
+    - xhci: Improve detection of device initiated wake signal.
+    - usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
+    - xhci: Fix repeated xhci wake after suspend due to uncleared internal wake
+      state
+    - USB: serial: io_edgeport: fix memory leak in edge_startup
+    - USB: serial: ch341: add new Product ID
+    - USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
+    - USB: serial: cp210x: add some more GE USB IDs
+    - usbip: fix stub_dev to check for stream socket
+    - usbip: fix vhci_hcd to check for stream socket
+    - usbip: fix vudc to check for stream socket
+    - usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
+    - usbip: fix vhci_hcd attach_store() races leading to gpf
+    - usbip: fix vudc usbip_sockfd_store races leading to gpf
+    - misc/pvpanic: Export module FDT device table
+    - misc: fastrpc: restrict user apps from sending kernel RPC messages
+    - staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
+    - staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
+    - staging: rtl8712: unterminated string leads to read overflow
+    - staging: rtl8188eu: fix potential memory corruption in
+      rtw_check_beacon_data()
+    - staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
+    - staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
+    - staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan
+    - staging: comedi: addi_apci_1032: Fix endian problem for COS sample
+    - staging: comedi: addi_apci_1500: Fix endian problem for command sample
+    - staging: comedi: adv_pci1710: Fix endian problem for AI command data
+    - staging: comedi: das6402: Fix endian problem for AI command data
+    - staging: comedi: das800: Fix endian problem for AI command data
+    - staging: comedi: dmm32at: Fix endian problem for AI command data
+    - staging: comedi: me4000: Fix endian problem for AI command data
+    - staging: comedi: pcl711: Fix endian problem for AI command data
+    - staging: comedi: pcl818: Fix endian problem for AI command data
+    - sh_eth: fix TRSCER mask for R7S72100
+    - arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
+    - SUNRPC: Set memalloc_nofs_save() for sync tasks
+    - NFS: Don't revalidate the directory permissions on a lookup failure
+    - NFS: Don't gratuitously clear the inode cache when lookup failed
+    - NFSv4.2: fix return value of _nfs4_get_security_label()
+    - block: rsxx: fix error return code of rsxx_pci_probe()
+    - configfs: fix a use-after-free in __configfs_open_file
+    - arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
+    - hrtimer: Update softirq_expires_next correctly after
+      __hrtimer_get_next_event()
+    - stop_machine: mark helpers __always_inline
+    - include/linux/sched/mm.h: use rcu_dereference in in_vfork()
+    - zram: fix return value on writeback_store
+    - sched/membarrier: fix missing local execution of ipi_sync_rq_state()
+    - powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
+    - binfmt_misc: fix possible deadlock in bm_register_write
+    - x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
+    - KVM: arm64: Fix exclusive limit for IPA size
+    - nvme: unlink head after removing last namespace
+    - nvme: release namespace head reference on error
+    - KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
+    - KVM: arm64: Reject VM creation when the default IPA size is unsupported
+    - xen/events: reset affinity of 2-level event when tearing it down
+    - xen/events: don't unmask an event channel when an eoi is pending
+    - xen/events: avoid handling the same event on two cpus at the same time
+    - Linux 5.4.106
+  * Focal update: v5.4.105 upstream stable release (LP: #1920244)
+    - net: dsa: add GRO support via gro_cells
+    - dm table: fix iterate_devices based device capability checks
+    - dm table: fix DAX iterate_devices based device capability checks
+    - dm table: fix zoned iterate_devices based device capability checks
+    - ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter
+      handling
+    - iommu/amd: Fix sleeping in atomic in increase_address_space()
+    - mwifiex: pcie: skip cancel_work_sync() on reset failure path
+    - platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
+    - platform/x86: acer-wmi: Cleanup accelerometer device handling
+    - platform/x86: acer-wmi: Add new force_caps module parameter
+    - platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
+    - platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
+    - platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch
+      10E SW3-016
+    - HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
+    - media: cx23885: add more quirks for reset DMA on some AMD IOMMU
+    - ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
+    - ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
+    - PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
+    - misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
+    - drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
+    - mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo
+      Winpad A15
+    - nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
+    - nvme-pci: add quirks for Lexar 256GB SSD
+    - Linux 5.4.105
+  * Focal update: v5.4.104 upstream stable release (LP: #1920238)
+    - tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality()
+    - tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality()
+    - btrfs: raid56: simplify tracking of Q stripe presence
+    - btrfs: fix raid6 qstripe kmap
+    - btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
+    - btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
+    - btrfs: unlock extents in btrfs_zero_range in case of quota reservation
+      errors
+    - btrfs: fix warning when creating a directory with smack enabled
+    - PM: runtime: Update device status before letting suppliers suspend
+    - dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
+    - dm verity: fix FEC for RS roots unaligned to block size
+    - drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie
+    - arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
+    - crypto - shash: reduce minimum alignment of shash_desc structure
+    - usbip: tools: fix build error for multiple definition
+    - ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
+    - RDMA/rxe: Fix missing kconfig dependency on CRYPTO
+    - IB/mlx5: Add missing error code
+    - ALSA: hda: intel-nhlt: verify config type
+    - ftrace: Have recordmcount use w8 to read relp->r_info in
+      arm64_is_fake_mcount
+    - rsxx: Return -EFAULT if copy_to_user() fails
+    - r8169: fix resuming from suspend on RTL8105e if machine runs on battery
+    - Linux 5.4.104
+  * Focal update: v5.4.103 upstream stable release (LP: #1920235)
+    - net: usb: qmi_wwan: support ZTE P685M modem
+    - nvme-pci: refactor nvme_unmap_data
+    - nvme-pci: fix error unwind in nvme_map_data
+    - arm64 module: set plt* section addresses to 0x0
+    - MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target='
+    - JFS: more checks for invalid superblock
+    - udlfb: Fix memory leak in dlfb_usb_probe
+    - media: mceusb: sanity check for prescaler value
+    - erofs: fix shift-out-of-bounds of blkszbits
+    - media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate
+    - xfs: Fix assert failure in xfs_setattr_size()
+    - net/af_iucv: remove WARN_ONCE on malformed RX packets
+    - smackfs: restrict bytes count in smackfs write functions
+    - net: fix up truesize of cloned skb in skb_prepare_for_shift()
+    - nbd: handle device refs for DESTROY_ON_DISCONNECT properly
+    - mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
+    - net: bridge: use switchdev for port flags set through sysfs too
+    - net: ag71xx: remove unnecessary MTU reservation
+    - net: fix dev_ifsioc_locked() race condition
+    - dt-bindings: ethernet-controller: fix fixed-link specification
+    - dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/
+    - MIPS: Drop 32-bit asm string functions
+    - drm/virtio: use kvmalloc for large allocations
+    - rsi: Fix TX EAPOL packet handling against iwlwifi AP
+    - rsi: Move card interrupt handling to RX thread
+    - staging: fwserial: Fix error handling in fwserial_create
+    - x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk
+    - vt/consolemap: do font sum unsigned
+    - wlcore: Fix command execute failure 19 for wl12xx
+    - Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl
+    - pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
+    - ath10k: fix wmi mgmt tx queue full due to race condition
+    - x86/build: Treat R_386_PLT32 relocation as R_386_PC32
+    - Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data
+    - staging: most: sound: add sanity check for function argument
+    - staging: bcm2835-audio: Replace unsafe strcpy() with strscpy()
+    - brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet
+    - brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet
+    - drm/hisilicon: Fix use-after-free
+    - crypto: tcrypt - avoid signed overflow in byte count
+    - drm/amdgpu: Add check to prevent IH overflow
+    - PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
+    - drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails
+    - media: uvcvideo: Allow entities with no pads
+    - f2fs: handle unallocated section and zone on pinned/atgc
+    - f2fs: fix to set/clear I_LINKABLE under i_lock
+    - nvme-core: add cancel tagset helpers
+    - nvme-rdma: add clean action for failed reconnection
+    - nvme-tcp: add clean action for failed reconnection
+    - ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr()
+    - btrfs: fix error handling in commit_fs_roots
+    - perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
+    - parisc: Bump 64-bit IRQ stack size to 64 KB
+    - sched/features: Fix hrtick reprogramming
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R
+      tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet
+    - ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
+    - Xen/gnttab: handle p2m update errors on a per-slot basis
+    - xen-netback: respect gnttab_map_refs()'s return value
+    - zsmalloc: account the number of compacted pages correctly
+    - swap: fix swapfile read/write offset
+    - media: v4l: ioctl: Fix memory leak in video_usercopy
+    - ALSA: hda/realtek: Add quirk for Clevo NH55RZQ
+    - ALSA: hda/realtek: Add quirk for Intel NUC 10
+    - ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board
+    - Linux 5.4.103
+  * Focal update: v5.4.102 upstream stable release (LP: #1918974)
+    - vmlinux.lds.h: add DWARF v5 sections
+    - kvm: x86: replace kvm_spec_ctrl_test_value with runtime test on the host
+    - debugfs: be more robust at handling improper input in debugfs_lookup()
+    - debugfs: do not attempt to create a new file before the filesystem is
+      initalized
+    - kdb: Make memory allocations more robust
+    - PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
+    - PCI: Decline to resize resources if boot config must be preserved
+    - virt: vbox: Do not use wait_event_interruptible when called from kernel
+      context
+    - bfq: Avoid false bfq queue merging
+    - ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
+    - MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
+    - random: fix the RNDRESEEDCRNG ioctl
+    - ath10k: Fix error handling in case of CE pipe init failure
+    - Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the
+      probe function
+    - Bluetooth: hci_uart: Fix a race for write_work scheduling
+    - Bluetooth: Fix initializing response id after clearing struct
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Monk
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on TM2
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
+    - memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops
+    - bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h
+    - bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args
+    - arm64: dts: allwinner: A64: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: H6: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card
+    - arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency
+    - arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
+    - cpufreq: brcmstb-avs-cpufreq: Free resources in error path
+    - cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
+    - ACPICA: Fix exception code class checks
+    - usb: gadget: u_audio: Free requests only after callback
+    - Bluetooth: drop HCI device reference before return
+    - Bluetooth: Put HCI device if inquiry procedure interrupts
+    - memory: ti-aemif: Drop child node when jumping out loop
+    - ARM: dts: Configure missing thermal interrupt for 4430
+    - usb: dwc2: Do not update data length if it is 0 on inbound transfers
+    - usb: dwc2: Abort transaction after errors with unknown reason
+    - usb: dwc2: Make "trimming xfer length" a debug message
+    - staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules
+    - ARM: dts: armada388-helios4: assign pinctrl to LEDs
+    - ARM: dts: armada388-helios4: assign pinctrl to each fan
+    - arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to
+      a53-firmware
+    - Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv
+    - arm64: dts: msm8916: Fix reserved and rfsa nodes unit address
+    - ARM: s3c: fix fiq for clang IAS
+    - soc: aspeed: snoop: Add clock control logic
+    - bpf_lru_list: Read double-checked variable once without lock
+    - ath9k: fix data bus crash when setting nf_override via debugfs
+    - ibmvnic: Set to CLOSED state even on error
+    - bnxt_en: reverse order of TX disable and carrier off
+    - xen/netback: fix spurious event detection for common event case
+    - mac80211: fix potential overflow when multiplying to u32 integers
+    - bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
+    - tcp: fix SO_RCVLOWAT related hangs under mem pressure
+    - net: axienet: Handle deferred probe on clock properly
+    - cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4
+      and ulds
+    - b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
+    - ibmvnic: add memory barrier to protect long term buffer
+    - ibmvnic: skip send_request_unmap for timeout reset
+    - net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout
+    - net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning
+    - net: amd-xgbe: Reset link when the link never comes back
+    - net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP
+    - net: mvneta: Remove per-cpu queue mapping for Armada 3700
+    - fbdev: aty: SPARC64 requires FB_ATY_CT
+    - drm/gma500: Fix error return code in psb_driver_load()
+    - gma500: clean up error handling in init
+    - drm/fb-helper: Add missed unlocks in setcmap_legacy()
+    - crypto: sun4i-ss - linearize buffers content must be kept
+    - crypto: sun4i-ss - fix kmap usage
+    - crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled
+    - drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition
+    - MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
+    - MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
+    - media: i2c: ov5670: Fix PIXEL_RATE minimum value
+    - media: imx: Unregister csc/scaler only if registered
+    - media: imx: Fix csc/scaler unregister
+    - media: camss: missing error code in msm_video_register()
+    - media: vsp1: Fix an error handling path in the probe function
+    - media: em28xx: Fix use-after-free in em28xx_alloc_urbs
+    - media: media/pci: Fix memleak in empress_init
+    - media: tm6000: Fix memleak in tm6000_start_stream
+    - media: aspeed: fix error return code in aspeed_video_setup_video()
+    - ASoC: cs42l56: fix up error handling in probe
+    - evm: Fix memleak in init_desc
+    - crypto: bcm - Rename struct device_private to bcm_device_private
+    - drm/sun4i: tcon: fix inverted DCLK polarity
+    - MIPS: properly stop .eh_frame generation
+    - bsg: free the request before return error code
+    - drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction.
+    - drm/amd/display: Fix HDMI deep color output for DCE 6-11.
+    - media: software_node: Fix refcounts in software_node_get_next_child()
+    - media: lmedm04: Fix misuse of comma
+    - media: qm1d1c0042: fix error return code in qm1d1c0042_init()
+    - media: cx25821: Fix a bug when reallocating some dma memory
+    - media: pxa_camera: declare variable when DEBUG is defined
+    - media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
+    - sched/eas: Don't update misfit status if the task is pinned
+    - mtd: parser: imagetag: fix error codes in
+      bcm963xx_parse_imagetag_partitions()
+    - crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error)
+    - drm/nouveau: bail out of nouveau_channel_new if channel init fails
+    - ata: ahci_brcm: Add back regulators management
+    - ASoC: cpcap: fix microphone timeslot mask
+    - mtd: parsers: afs: Fix freeing the part name memory in failure
+    - f2fs: fix to avoid inconsistent quota data
+    - drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
+    - f2fs: fix a wrong condition in __submit_bio
+    - Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind()
+    - ASoC: SOF: debug: Fix a potential issue on string buffer termination
+    - btrfs: clarify error returns values in __load_free_space_cache
+    - hwrng: timeriomem - Fix cooldown period calculation
+    - crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
+    - ima: Free IMA measurement buffer on error
+    - ima: Free IMA measurement buffer after kexec syscall
+    - ASoC: simple-card-utils: Fix device module clock
+    - fs/jfs: fix potential integer overflow on shift of a int
+    - jffs2: fix use after free in jffs2_sum_write_data()
+    - ubifs: Fix memleak in ubifs_init_authentication
+    - ubifs: Fix error return code in alloc_wbufs()
+    - capabilities: Don't allow writing ambiguous v3 file capabilities
+    - HSI: Fix PM usage counter unbalance in ssi_hw_init
+    - clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
+    - clk: meson: clk-pll: make "ret" a signed integer
+    - clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate()
+    - quota: Fix memory leak when handling corrupted quota file
+    - i2c: iproc: handle only slave interrupts which are enabled
+    - i2c: iproc: update slave isr mask (ISR_MASK_SLAVE)
+    - i2c: iproc: handle master read request
+    - spi: cadence-quadspi: Abort read if dummy cycles required are too many
+    - clk: sunxi-ng: h6: Fix CEC clock
+    - HID: core: detect and skip invalid inputs to snto32()
+    - RDMA/siw: Fix handling of zero-sized Read and Receive Queues.
+    - dmaengine: fsldma: Fix a resource leak in the remove function
+    - dmaengine: fsldma: Fix a resource leak in an error handling path of the
+      probe function
+    - dmaengine: owl-dma: Fix a resource leak in the remove function
+    - dmaengine: hsu: disable spurious interrupt
+    - mfd: bd9571mwv: Use devm_mfd_add_devices()
+    - fdt: Properly handle "no-map" field in the memory region
+    - of/fdt: Make sure no-map does not remove already reserved regions
+    - power: reset: at91-sama5d2_shdwc: fix wkupdbc mask
+    - rtc: s5m: select REGMAP_I2C
+    - clocksource/drivers/ixp4xx: Select TIMER_OF when needed
+    - clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
+    - RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
+    - clk: sunxi-ng: h6: Fix clock divider range on some clocks
+    - regulator: axp20x: Fix reference cout leak
+    - certs: Fix blacklist flag type confusion
+    - regulator: s5m8767: Fix reference count leak
+    - spi: atmel: Put allocated master before return
+    - regulator: s5m8767: Drop regulators OF node reference
+    - regulator: core: Avoid debugfs: Directory ... already present! error
+    - isofs: release buffer head before return
+    - auxdisplay: ht16k33: Fix refresh rate handling
+    - objtool: Fix error handling for STD/CLD warnings
+    - objtool: Fix ".cold" section suffix check for newer versions of GCC
+    - IB/umad: Return EIO in case of when device disassociated
+    - IB/umad: Return EPOLLERR in case of when device disassociated
+    - KVM: PPC: Make the VMX instruction emulation routines static
+    - powerpc/47x: Disable 256k page size
+    - mmc: sdhci-sprd: Fix some resource leaks in the remove function
+    - mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
+    - mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to
+      128-bytes
+    - ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
+    - i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct
+    - amba: Fix resource leak for drivers without .remove
+    - IB/mlx5: Return appropriate error code instead of ENOMEM
+    - IB/cm: Avoid a loop when device has 255 ports
+    - tracepoint: Do not fail unregistering a probe due to memory failure
+    - perf tools: Fix DSO filtering when not finding a map for a sampled address
+    - perf vendor events arm64: Fix Ampere eMag event typo
+    - RDMA/rxe: Fix coding error in rxe_recv.c
+    - RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt
+    - RDMA/rxe: Correct skb on loopback path
+    - spi: stm32: properly handle 0 byte transfer
+    - mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
+    - powerpc/pseries/dlpar: handle ibm, configure-connector delay status
+    - powerpc/8xx: Fix software emulation interrupt
+    - clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs
+    - RDMA/hns: Fixed wrong judgments in the goto branch
+    - RDMA/siw: Fix calculation of tx_valid_cpus size
+    - RDMA/hns: Fix type of sq_signal_bits
+    - spi: pxa2xx: Fix the controller numbering for Wildcat Point
+    - regulator: qcom-rpmh: fix pm8009 ldo7
+    - clk: aspeed: Fix APLL calculate formula from ast2600-A2
+    - nfsd: register pernet ops last, unregister first
+    - RDMA/hns: Fixes missing error code of CMDQ
+    - Input: sur40 - fix an error code in sur40_probe()
+    - perf intel-pt: Fix missing CYC processing in PSB
+    - perf intel-pt: Fix premature IPC
+    - perf test: Fix unaligned access in sample parsing test
+    - Input: elo - fix an error code in elo_connect()
+    - sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
+    - misc: eeprom_93xx46: Fix module alias to enable module autoprobe
+    - phy: rockchip-emmc: emmc_phy_init() always return 0
+    - misc: eeprom_93xx46: Add module alias to avoid breaking support for non
+      device tree users
+    - soundwire: cadence: fix ACK/NAK handling
+    - pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
+    - VMCI: Use set_page_dirty_lock() when unregistering guest memory
+    - PCI: Align checking of syscall user config accessors
+    - mei: hbm: call mei_set_devstate() on hbm stop response
+    - drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
+    - drm/msm/mdp5: Fix wait-for-commit for cmd panels
+    - vfio/iommu_type1: Fix some sanity checks in detach group
+    - ext4: fix potential htree index checksum corruption
+    - nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of()
+    - nvmem: core: skip child nodes not matching binding
+    - regmap: sdw: use _no_pm functions in regmap_read/write
+    - i40e: Fix flow for IPv6 next header (extension header)
+    - i40e: Add zero-initialization of AQ command structures
+    - i40e: Fix overwriting flow control settings during driver loading
+    - i40e: Fix addition of RX filters after enabling FW LLDP agent
+    - i40e: Fix VFs not created
+    - i40e: Fix add TC filter for IPv6
+    - vfio/type1: Use follow_pte()
+    - net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
+    - vxlan: move debug check after netdev unregister
+    - ocfs2: fix a use after free on error
+    - mm/memory.c: fix potential pte_unmap_unlock pte error
+    - mm/hugetlb: fix potential double free in hugetlb_register_node() error path
+    - mm/compaction: fix misbehaviors of fast_find_migrateblock()
+    - r8169: fix jumbo packet handling on RTL8168e
+    - arm64: Add missing ISB after invalidating TLB in __primary_switch
+    - i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
+    - mm/rmap: fix potential pte_unmap on an not mapped pte
+    - scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
+    - blk-settings: align max_sectors on "logical_block_size" boundary
+    - ACPI: property: Fix fwnode string properties matching
+    - ACPI: configfs: add missing check after configfs_register_default_group()
+    - HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming
+    - HID: wacom: Ignore attempts to overwrite the touch_max value from HID
+    - Input: raydium_ts_i2c - do not send zero length
+    - Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox
+      Series X|S
+    - Input: joydev - prevent potential read overflow in ioctl
+    - Input: i8042 - add ASUS Zenbook Flip to noselftest list
+    - media: mceusb: Fix potential out-of-bounds shift
+    - USB: serial: option: update interface mapping for ZTE P685M
+    - usb: musb: Fix runtime PM race in musb_queue_resume_work
+    - usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
+    - usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
+    - USB: serial: ftdi_sio: fix FTX sub-integer prescaler
+    - USB: serial: mos7840: fix error code in mos7840_write()
+    - USB: serial: mos7720: fix error code in mos7720_write()
+    - ALSA: hda: Add another CometLake-H PCI ID
+    - ALSA: hda/realtek: modify EAPD in the ALC886
+    - Revert "bcache: Kill btree_io_wq"
+    - bcache: Give btree_io_wq correct semantics again
+    - bcache: Move journal work to new flush wq
+    - drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1
+    - drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2)
+    - drm/nouveau/kms: handle mDP connectors
+    - drm/sched: Cancel and flush all outstanding jobs before finish.
+    - erofs: initialized fields can only be observed after bit is set
+    - tpm_tis: Fix check_locality for correct locality acquisition
+    - tpm_tis: Clean up locality release
+    - KEYS: trusted: Fix migratable=1 failing
+    - btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
+    - btrfs: fix reloc root leak with 0 ref reloc roots on recovery
+    - btrfs: splice remaining dirty_bg's onto the transaction dirty bg list
+    - btrfs: fix extent buffer leak on failure to copy root
+    - crypto: arm64/sha - add missing module aliases
+    - crypto: aesni - prevent misaligned buffers on the stack
+    - crypto: sun4i-ss - checking sg length is not sufficient
+    - crypto: sun4i-ss - handle BigEndian for cipher
+    - crypto: sun4i-ss - initialize need_fallback
+    - seccomp: Add missing return in non-void function
+    - misc: rtsx: init of rts522a add OCP power off when no card is present
+    - drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
+    - pstore: Fix typo in compression option name
+    - dts64: mt7622: fix slow sd card access
+    - staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c
+    - staging: gdm724x: Fix DMA from stack
+    - staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
+    - media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt()
+    - x86/virt: Eat faults on VMXOFF in reboot flows
+    - x86/reboot: Force all cpus to exit VMX root if VMX is supported
+    - powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan
+    - rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
+    - rcu/nocb: Perform deferred wake up before last idle's need_resched() check
+    - floppy: reintroduce O_NDELAY fix
+    - arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into()
+      fails
+    - arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
+    - watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ
+    - watchdog: mei_wdt: request stop on unregister
+    - mtd: spi-nor: sfdp: Fix last erase region marking
+    - mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region
+    - mtd: spi-nor: core: Fix erase type discovery for overlaid region
+    - mtd: spi-nor: core: Add erase size check for erase command initialization
+    - mtd: spi-nor: hisi-sfc: Put child node np on error path
+    - fs/affs: release old buffer head on error path
+    - seq_file: document how per-entry resources are managed.
+    - x86: fix seq_file iteration for pat/memtype.c
+    - hugetlb: fix update_and_free_page contig page struct assumption
+    - hugetlb: fix copy_huge_page_from_user contig page struct assumption
+    - arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55
+    - media: smipcie: fix interrupt handling and IR timeout
+    - module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
+    - mmc: sdhci-esdhc-imx: fix kernel panic when remove module
+    - powerpc/32s: Add missing call to kuep_lock on syscall entry
+    - spmi: spmi-pmic-arb: Fix hw_irq overflow
+    - gpio: pcf857x: Fix missing first interrupt
+    - printk: fix deadlock when kernel panic
+    - cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if
+      available
+    - s390/vtime: fix inline assembly clobber list
+    - virtio/s390: implement virtio-ccw revision 2 correctly
+    - um: mm: check more comprehensively for stub changes
+    - f2fs: fix out-of-repair __setattr_copy()
+    - sparc32: fix a user-triggerable oops in clear_user()
+    - spi: spi-synquacer: fix set_cs handling
+    - gfs2: Don't skip dlm unlock if glock has an lvb
+    - gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end
+    - dm: fix deadlock when swapping to encrypted device
+    - dm writecache: fix writing beyond end of underlying device when shrinking
+    - dm era: Recover committed writeset after crash
+    - dm era: Verify the data block size hasn't changed
+    - dm era: Fix bitset memory leaks
+    - dm era: Use correct value size in equality function of writeset tree
+    - dm era: Reinitialize bitset cache before digesting a new writeset
+    - dm era: only resize metadata in preresume
+    - drm/i915: Reject 446-480MHz HDMI clock on GLK
+    - icmp: introduce helper for nat'd source address in network device context
+    - icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
+    - gtp: use icmp_ndo_send helper
+    - sunvnet: use icmp_ndo_send helper
+    - xfrm: interface: use icmp_ndo_send helper
+    - ipv6: icmp6: avoid indirect call for icmpv6_send()
+    - ipv6: silence compilation warning for non-IPV6 builds
+    - net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
+    - net: sched: fix police ext initialization
+    - dm era: Update in-core bitset after committing the metadata
+    - net: qrtr: Fix memory leak in qrtr_tun_open
+    - ARM: dts: aspeed: Add LCLK to lpc-snoop
+    - Linux 5.4.102
+  * eeh-basic.sh from powerpc in ubuntu_kernel_selftests failed with unexpected
+    operator on F-5.8 (LP: #1909428)
+    - selftests/powerpc: Make the test check in eeh-basic.sh posix compliant
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Thu, 22 Apr 2021 06:19:47 -0600
+
+linux-gkeop-5.4 (5.4.0-1014.15~18.04.1) bionic; urgency=medium
+
+  [ Ubuntu: 5.4.0-1014.15 ]
+
+  * overlayfs calls vfs_setxattr without cap_convert_nscap
+    - vfs: move cap_convert_nscap() call into vfs_setxattr()
+  * CVE-2021-3492
+    - SAUCE: shiftfs: free allocated memory in shiftfs_btrfs_ioctl_fd_replace()
+      error paths
+    - SAUCE: shiftfs: handle copy_to_user() return values correctly
+  * CVE-2021-29154
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-64
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-32
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Tue, 13 Apr 2021 16:34:26 -0300
+
+linux-gkeop-5.4 (5.4.0-1013.14~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1013.14~18.04.1 -proposed tracker
+    (LP: #1921028)
+
+  [ Ubuntu: 5.4.0-1013.14 ]
+
+  * focal/linux-gkeop: 5.4.0-1013.14 -proposed tracker (LP: #1921029)
+  * focal/linux: 5.4.0-71.79 -proposed tracker (LP: #1921040)
+  * selftests: bpf verifier fails after sanitize_ptr_alu fixes (LP: #1920995)
+    - bpf: Simplify alu_limit masking for pointer arithmetic
+    - bpf: Add sanity check for upper ptr_limit
+    - bpf, selftests: Fix up some test_verifier cases for unprivileged
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Fix missing HDMI/DP audio on NVidia card after S3 (LP: #1918228)
+    - ALSA: hda/hdmi: Reduce hda_jack_tbl lookup at unsol event handling
+    - ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
+    - ALSA: hda/hdmi: Move runtime PM resume into hdmi_present_sense_via_verbs()
+    - ALSA: hda/hdmi: Move ELD parse and jack reporting into update_eld()
+  * Focal update: v5.4.101 upstream stable release (LP: #1918170)
+    - HID: make arrays usage and value to be the same
+    - USB: quirks: sort quirk entries
+    - usb: quirks: add quirk to start video capture on ELMO L-12F document camera
+      reliable
+    - ntfs: check for valid standard information attribute
+    - arm64: tegra: Add power-domain for Tegra210 HDA
+    - scripts: use pkg-config to locate libcrypto
+    - scripts: set proper OpenSSL include dir also for sign-file
+    - mm: unexport follow_pte_pmd
+    - mm: simplify follow_pte{,pmd}
+    - KVM: do not assume PTE is writable after follow_pfn
+    - mm: provide a saner PTE walking API for modules
+    - KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped()
+    - NET: usb: qmi_wwan: Adding support for Cinterion MV31
+    - cxgb4: Add new T6 PCI device id 0x6092
+    - cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
+    - scripts/recordmcount.pl: support big endian for ARCH sh
+    - Linux 5.4.101
+  * Focal update: v5.4.100 upstream stable release (LP: #1918168)
+    - KVM: SEV: fix double locking due to incorrect backport
+    - net: qrtr: Fix port ID for control messages
+    - net: bridge: Fix a warning when del bridge sysfs
+    - Xen/x86: don't bail early from clear_foreign_p2m_mapping()
+    - Xen/x86: also check kernel mapping in set_foreign_p2m_mapping()
+    - Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages()
+    - Xen/gntdev: correct error checking in gntdev_map_grant_pages()
+    - xen/arm: don't ignore return errors from set_phys_to_machine
+    - xen-blkback: don't "handle" error by BUG()
+    - xen-netback: don't "handle" error by BUG()
+    - xen-scsiback: don't "handle" error by BUG()
+    - xen-blkback: fix error handling in xen_blkbk_map()
+    - media: pwc: Use correct device for DMA
+    - btrfs: fix backport of 2175bf57dc952 in 5.4.95
+    - Linux 5.4.100
+  * Focal update: v5.4.99 upstream stable release (LP: #1918167)
+    - gpio: ep93xx: fix BUG_ON port F usage
+    - gpio: ep93xx: Fix single irqchip with multi gpiochips
+    - tracing: Do not count ftrace events in top level enable output
+    - tracing: Check length before giving out the filter buffer
+    - arm/xen: Don't probe xenbus as part of an early initcall
+    - cgroup: fix psi monitor for root cgroup
+    - arm64: dts: rockchip: Fix PCIe DT properties on rk3399
+    - arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
+    - ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
+    - platform/x86: hp-wmi: Disable tablet-mode reporting by default
+    - ovl: perform vfs_getxattr() with mounter creds
+    - cap: fix conversions on getxattr
+    - ovl: skip getxattr of security labels
+    - nvme-pci: ignore the subsysem NQN on Phison E16
+    - drm/amd/display: Add more Clock Sources to DCN2.1
+    - drm/amd/display: Fix dc_sink kref count in emulated_link_detect
+    - drm/amd/display: Free atomic state after drm_atomic_commit
+    - drm/amd/display: Decrement refcount of dc_sink before reassignment
+    - riscv: virt_addr_valid must check the address belongs to linear mapping
+    - bfq-iosched: Revert "bfq: Fix computation of shallow depth"
+    - ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
+    - ARM: ensure the signal page contains defined contents
+    - ARM: kexec: fix oops after TLB are invalidated
+    - vmlinux.lds.h: Create section for protection against instrumentation
+    - lkdtm: don't move ctors to .rodata
+    - mt76: dma: fix a possible memory leak in mt76_add_fragment()
+    - drm/vc4: hvs: Fix buffer overflow with the dlist handling
+    - bpf: Check for integer overflow when using roundup_pow_of_two()
+    - netfilter: xt_recent: Fix attempt to update deleted entry
+    - netfilter: nftables: fix possible UAF over chains from packet path in netns
+    - netfilter: flowtable: fix tcp and udp header checksum update
+    - xen/netback: avoid race in xenvif_rx_ring_slots_available()
+    - net: enetc: initialize the RFS and RSS memories
+    - selftests: txtimestamp: fix compilation issue
+    - net: stmmac: set TxQ mode back to DCB after disabling CBS
+    - ibmvnic: Clear failover_pending if unable to schedule
+    - netfilter: conntrack: skip identical origin tuple in same zone only
+    - x86/build: Disable CET instrumentation in the kernel for 32-bit too
+    - net: hns3: add a check for queue_id in hclge_reset_vf_queue()
+    - firmware_loader: align .builtin_fw to 8
+    - drm/sun4i: tcon: set sync polarity for tcon1 channel
+    - drm/sun4i: Fix H6 HDMI PHY configuration
+    - drm/sun4i: dw-hdmi: Fix max. frequency for H6
+    - clk: sunxi-ng: mp: fix parent rate change flag check
+    - i2c: stm32f7: fix configuration of the digital filter
+    - h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
+    - usb: dwc3: ulpi: fix checkpatch warning
+    - usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
+    - rxrpc: Fix clearance of Tx/Rx ring when releasing a call
+    - udp: fix skb_copy_and_csum_datagram with odd segment sizes
+    - net: dsa: call teardown method on probe failure
+    - net: gro: do not keep too many GRO packets in napi->rx_list
+    - net: fix iteration for sctp transport seq_files
+    - net/vmw_vsock: improve locking in vsock_connect_timeout()
+    - net: watchdog: hold device global xmit lock during tx disable
+    - vsock/virtio: update credit only if socket is not closed
+    - vsock: fix locking in vsock_shutdown()
+    - net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
+    - net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
+    - ovl: expand warning in ovl_d_real()
+    - Linux 5.4.99
+  * Focal update: v5.4.98 upstream stable release (LP: #1918158)
+    - tracing/kprobe: Fix to support kretprobe events on unloaded modules
+    - af_key: relax availability checks for skb size calculation
+    - regulator: core: avoid regulator_resolve_supply() race condition
+    - mac80211: 160MHz with extended NSS BW in CSA
+    - ASoC: Intel: Skylake: Zero snd_ctl_elem_value
+    - chtls: Fix potential resource leak
+    - pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
+    - ASoC: ak4458: correct reset polarity
+    - iwlwifi: mvm: skip power command when unbinding vif during CSA
+    - iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
+    - iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
+    - iwlwifi: pcie: fix context info memory leak
+    - iwlwifi: mvm: invalidate IDs of internal stations at mvm start
+    - iwlwifi: mvm: guard against device removal in reprobe
+    - SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
+    - SUNRPC: Handle 0 length opaque XDR object data properly
+    - i2c: mediatek: Move suspend and resume handling to NOIRQ phase
+    - blk-cgroup: Use cond_resched() when destroy blkgs
+    - regulator: Fix lockdep warning resolving supplies
+    - Fix unsynchronized access to sev members through svm_register_enc_region
+    - squashfs: add more sanity checks in id lookup
+    - squashfs: add more sanity checks in inode lookup
+    - squashfs: add more sanity checks in xattr id lookup
+    - Linux 5.4.98
+  * Enforce CONFIG_DRM_BOCHS=m (LP: #1916290)
+    - [Config] Enforce CONFIG_DRM_BOCHS=m
+  * powerpc/eeh-basic.sh in kselftest make P8 node stopped working
+    (LP: #1916468)
+    - selftests/eeh: Skip ahci adapters
+  * Focal update: v5.4.97 upstream stable release (LP: #1916066)
+    - USB: serial: cp210x: add pid/vid for WSDA-200-USB
+    - USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
+    - USB: serial: option: Adding support for Cinterion MV31
+    - arm64: dts: qcom: c630: keep both touchpad devices enabled
+    - arm64: dts: amlogic: meson-g12: Set FL-adj property value
+    - arm64: dts: rockchip: fix vopl iommu irq on px30
+    - bpf, cgroup: Fix optlen WARN_ON_ONCE toctou
+    - bpf, cgroup: Fix problematic bounds check
+    - um: virtio: free vu_dev only with the contained struct device
+    - rxrpc: Fix deadlock around release of dst cached on udp tunnel
+    - arm64: dts: ls1046a: fix dcfg address range
+    - igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr
+    - igc: check return value of ret_val in igc_config_fc_after_link_up
+    - i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues"
+    - net/mlx5: Fix leak upon failure of rule creation
+    - net: lapb: Copy the skb before sending a packet
+    - net: mvpp2: TCAM entry enable should be written after SRAM data
+    - r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set
+    - ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode
+    - nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs
+    - memblock: do not start bottom-up allocations with kernel_end
+    - USB: gadget: legacy: fix an error code in eth_bind()
+    - USB: usblp: don't call usb_set_interface if there's a single alt
+    - usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
+    - usb: dwc2: Fix endpoint direction check in ep_from_windex
+    - usb: dwc3: fix clock issue during resume in OTG mode
+    - usb: xhci-mtk: fix unreleased bandwidth data
+    - usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints
+    - usb: xhci-mtk: break loop when find the endpoint to drop
+    - usb: host: xhci-plat: add priv quirk for skip PHY initialization
+    - ovl: fix dentry leak in ovl_get_redirect
+    - mac80211: fix station rate table updates on assoc
+    - fgraph: Initialize tracing_graph_pause at task creation
+    - kretprobe: Avoid re-registration of the same kretprobe earlier
+    - libnvdimm/dimm: Avoid race between probe and available_slots_show()
+    - genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set
+    - xhci: fix bounce buffer usage for non-sg list case
+    - cifs: report error instead of invalid when revalidating a dentry fails
+    - smb3: Fix out-of-bounds bug in SMB2_negotiate()
+    - smb3: fix crediting for compounding when only one request in flight
+    - mmc: core: Limit retries when analyse of SDIO tuples fails
+    - drm/amd/display: Revert "Fix EDID parsing after resume from suspend"
+    - nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs
+    - KVM: SVM: Treat SVM as unsupported when running as an SEV guest
+    - KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode
+    - ARM: footbridge: fix dc21285 PCI configuration accessors
+    - mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
+    - mm: hugetlb: fix a race between freeing and dissolving the page
+    - mm: hugetlb: fix a race between isolating and freeing page
+    - mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
+    - mm, compaction: move high_pfn to the for loop scope
+    - mm: thp: fix MADV_REMOVE deadlock on shmem THP
+    - x86/build: Disable CET instrumentation in the kernel
+    - x86/apic: Add extra serialization for non-serializing MSRs
+    - iwlwifi: mvm: don't send RFH_QUEUE_CONFIG_CMD with no queues
+    - Input: xpad - sync supported devices with fork on GitHub
+    - iommu/vt-d: Do not use flush-queue when caching-mode is on
+    - md: Set prev_flush_start and flush_bio in an atomic way
+    - neighbour: Prevent a dead entry from updating gc_list
+    - net: ip_tunnel: fix mtu calculation
+    - net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
+    - net: sched: replaced invalid qdisc tree flush helper in qdisc_replace
+    - usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720
+    - Linux 5.4.97
+  * Focal update: v5.4.96 upstream stable release (LP: #1916061)
+    - net: dsa: bcm_sf2: put device node before return
+    - net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
+    - ibmvnic: Ensure that CRQ entry read are correctly ordered
+    - Revert "Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT""
+    - ACPI: thermal: Do not call acpi_thermal_check() directly
+    - arm64: Fix kernel address detection of __is_lm_address()
+    - arm64: Do not pass tagged addresses to __is_lm_address()
+    - tcp: make TCP_USER_TIMEOUT accurate for zero window probes
+    - btrfs: backref, only collect file extent items matching backref offset
+    - btrfs: backref, don't add refs from shared block when resolving normal
+      backref
+    - btrfs: backref, only search backref entries from leaves of the same root
+    - btrfs: backref, use correct count to resolve normal data refs
+    - net_sched: gen_estimator: support large ewma log
+    - phy: cpcap-usb: Fix warning for missing regulator_disable
+    - platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on
+      Estar Beauty HD tablet
+    - platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352
+    - x86: __always_inline __{rd,wr}msr()
+    - scsi: scsi_transport_srp: Don't block target in failfast state
+    - scsi: libfc: Avoid invoking response handler twice if ep is already
+      completed
+    - scsi: fnic: Fix memleak in vnic_dev_init_devcmd2
+    - ASoC: SOF: Intel: hda: Resume codec to do jack detection
+    - mac80211: fix fast-rx encryption check
+    - scsi: ibmvfc: Set default timeout to avoid crash during migration
+    - udf: fix the problem that the disc content is not displayed
+    - nvme: check the PRINFO bit before deciding the host buffer length
+    - selftests/powerpc: Only test lwm/stmw on big endian
+    - drm/amd/display: Update dram_clock_change_latency for DCN2.1
+    - drm/amd/display: Change function decide_dp_link_settings to avoid infinite
+      looping
+    - objtool: Don't fail on missing symbol table
+    - kthread: Extract KTHREAD_IS_PER_CPU
+    - workqueue: Restrict affinity change to rescuer
+    - Linux 5.4.96
+  * Focal update: v5.4.95 upstream stable release (LP: #1916056)
+    - ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition
+    - IPv6: reply ICMP error if the first fragment don't include all headers
+    - nbd: freeze the queue while we're adding connections
+    - ACPI: sysfs: Prefer "compatible" modalias
+    - kernel: kexec: remove the lock operation of system_transition_mutex
+    - ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
+    - ALSA: hda/via: Apply the workaround generically for Clevo machines
+    - media: rc: ensure that uevent can be read directly after rc device register
+    - ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming
+    - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
+    - net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family
+    - s390/vfio-ap: No need to disable IRQ after queue reset
+    - PM: hibernate: flush swap writer after marking
+    - drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs
+    - drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[]
+    - btrfs: fix possible free space tree corruption with online conversion
+    - KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in
+      intel_arch_events[]
+    - KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh()
+    - KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration
+    - KVM: x86: get smi pending status correctly
+    - KVM: Forbid the use of tagged userspace addresses for memslots
+    - xen: Fix XenStore initialisation for XS_LOCAL
+    - leds: trigger: fix potential deadlock with libata
+    - arm64: dts: broadcom: Fix USB DMA address translation for Stingray
+    - mt7601u: fix kernel crash unplugging the device
+    - mt7601u: fix rx buffer refcounting
+    - drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices
+    - drm/i915: Check for all subplatform bits
+    - tee: optee: replace might_sleep with cond_resched
+    - xen-blkfront: allow discard-* nodes to be optional
+    - ARM: imx: build suspend-imx6.S with arm instruction set
+    - netfilter: nft_dynset: add timeout extension to template
+    - xfrm: Fix oops in xfrm_replay_advance_bmp
+    - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
+    - selftests: xfrm: fix test return value override issue in xfrm_policy.sh
+    - xfrm: Fix wraparound in xfrm_policy_addr_delta()
+    - arm64: dts: ls1028a: fix the offset of the reset register
+    - ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status
+    - firmware: imx: select SOC_BUS to fix firmware build
+    - RDMA/cxgb4: Fix the reported max_recv_sge value
+    - ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
+    - pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()
+    - iwlwifi: pcie: use jiffies for memory read spin time limit
+    - iwlwifi: pcie: reschedule in long-running memory reads
+    - mac80211: pause TX while changing interface type
+    - i40e: acquire VSI pointer only after VF is initialized
+    - igc: fix link speed advertising
+    - net/mlx5: Fix memory leak on flow table creation error flow
+    - net/mlx5e: E-switch, Fix rate calculation for overflow
+    - net/mlx5e: Reduce tc unsupported key print level
+    - can: dev: prevent potential information leak in can_fill_info()
+    - nvme-multipath: Early exit if no path is available
+    - selftests: forwarding: Specify interface when invoking mausezahn
+    - iommu/vt-d: Gracefully handle DMAR units with no supported address widths
+    - iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built
+    - rxrpc: Fix memory leak in rxrpc_lookup_local
+    - NFC: fix resource leak when target index is invalid
+    - NFC: fix possible resource leak
+    - ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
+    - team: protect features update by RCU to avoid deadlock
+    - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
+    - Linux 5.4.95
+
+ -- Ian May <ian.may@canonical.com>  Mon, 29 Mar 2021 15:51:19 -0500
+
+linux-gkeop-5.4 (5.4.0-1012.13~18.04.1) bionic; urgency=medium
+
+  [ Ubuntu: 5.4.0-1012.13 ]
+
+  * CVE-2020-27170
+    - bpf: Fix off-by-one for area size in creating mask to left
+  * CVE-2020-27171
+    - bpf: Prohibit alu ops for pointer types not defining ptr_limit
+  * binary assembly failures with CONFIG_MODVERSIONS present (LP: #1919315)
+    - [Packaging] quiet (nomially) benign errors in BUILD script
+  * CVE-2021-3444
+    - bpf: Fix 32 bit src register truncation on div/mod
+    - bpf: Fix truncation handling for mod32 dst reg wrt zero
+  * CVE-2021-27365
+    - scsi: iscsi: Verify lengths on passthrough PDUs
+    - sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
+    - scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE
+  * CVE-2021-27363 // CVE-2021-27364
+    - scsi: iscsi: Restrict sessions and handles to admin capabilities
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 22 Mar 2021 12:56:13 +0100
+
+linux-gkeop-5.4 (5.4.0-1011.12~18.04.2) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1011.12~18.04.2 -proposed tracker
+    (LP: #1916157)
+
+  [ Ubuntu: 5.4.0-1011.12 ]
+
+  * focal/linux-gkeop: 5.4.0-1011.12 -proposed tracker (LP: #1916158)
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - gkeop: [Config] enable CONFIG_MODVERSIONS=y
+    - gkeop: [Packaging] build canonical-certs.pem from branch/arch certs
+    - gkeop: [Config] Allow ASM_MODVERSIONS
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - gkeop: [Config] updateconfigs for USB_BDC_PCI
+  * focal/linux: 5.4.0-67.75 -proposed tracker (LP: #1916169)
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - [Config] enable CONFIG_MODVERSIONS=y
+    - [Packaging] build canonical-certs.pem from branch/arch certs
+    - [Config] add Canonical Livepatch Service key to SYSTEM_TRUSTED_KEYS
+    - [Config] add ubuntu-drivers key to SYSTEM_TRUSTED_KEYS
+    - [Config] Allow ASM_MODVERSIONS and MODULE_REL_CRCS
+  * geneve overlay network on vlan interface broken with offload enabled
+    (LP: #1914447)
+    - net/mlx5e: Fix SWP offsets when vlan inserted by driver
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Fix ODM support in actual build
+  * devlink: don't do reporter recovery if the state is healthy (LP: #1915403)
+    - devlink: don't do reporter recovery if the state is healthy
+  * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver
+    (LP: #1914543)
+    - HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID
+  * Focal update: v5.4.94 upstream stable release (LP: #1915200)
+    - gpio: mvebu: fix pwm .get_state period calculation
+    - futex: Ensure the correct return value from futex_lock_pi()
+    - futex: Replace pointless printk in fixup_owner()
+    - futex: Provide and use pi_state_update_owner()
+    - rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
+    - futex: Use pi_state_update_owner() in put_pi_state()
+    - futex: Simplify fixup_pi_state_owner()
+    - futex: Handle faults correctly for PI futexes
+    - HID: wacom: Correct NULL dereference on AES pen proximity
+    - io_uring: Fix current->fs handling in io_sq_wq_submit_work()
+    - tracing: Fix race in trace_open and buffer resize call
+    - arm64: mm: use single quantity to represent the PA to VA translation
+    - SMB3.1.1: do not log warning message if server doesn't populate salt
+    - tools: Factor HOSTCC, HOSTLD, HOSTAR definitions
+    - dm integrity: conditionally disable "recalculate" feature
+    - writeback: Drop I_DIRTY_TIME_EXPIRE
+    - fs: fix lazytime expiration handling in __writeback_single_inode()
+    - Linux 5.4.94
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - i2c: bpmp-tegra: Ignore unknown I2C_M flags
+    - platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634
+    - ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()
+    - ALSA: hda/via: Add minimum mute flag
+    - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
+    - btrfs: don't get an EINTR during drop_snapshot for reloc
+    - btrfs: fix lockdep splat in btrfs_recover_relocation
+    - btrfs: don't clear ret in btrfs_start_dirty_block_groups
+    - btrfs: send: fix invalid clone operations when cloning from the same file
+      and root
+    - mmc: core: don't initialize block size from ext_csd if not present
+    - mmc: sdhci-xenon: fix 1.8v regulator stabilization
+    - dm: avoid filesystem lookup in dm_get_dev_t()
+    - dm integrity: fix a crash if "recalculate" used without "internal_hash"
+    - drm/atomic: put state on error path
+    - drm/syncobj: Fix use-after-free
+    - drm/i915/gt: Prevent use of engine->wa_ctx after error
+    - ASoC: Intel: haswell: Add missing pm_ops
+    - dm integrity: select CRYPTO_SKCIPHER
+    - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
+    - scsi: qedi: Correct max length of CHAP secret
+    - scsi: sd: Suppress spurious errors when WRITE SAME is being disabled
+    - riscv: Fix kernel time_init()
+    - riscv: Fix sifive serial driver
+    - HID: logitech-dj: add the G602 receiver
+    - HID: Ignore battery for Elan touchscreen on ASUS UX550
+    - clk: tegra30: Add hda clock default rates to clock driver
+    - arm64: make atomic helpers __always_inline
+    - xen: Fix event channel callback via INTX/GSI
+    - x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery
+    - dts: phy: fix missing mdio device and probe failure of vsc8541-01 device
+    - riscv: defconfig: enable gpio support for HiFive Unleashed
+    - drm/amdgpu/psp: fix psp gfx ctrl cmds
+    - drm/amd/display: Fix to be able to stop crc calculation
+    - drm/nouveau/bios: fix issue shadowing expansion ROMs
+    - drm/nouveau/privring: ack interrupts the same way as RM
+    - drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields
+    - drm/nouveau/mmu: fix vram heap sizing
+    - drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0
+    - powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S
+    - pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting
+    - scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression
+    - powerpc: Fix alignment bug within the init sections
+    - i2c: octeon: check correct size of maximum RECV_LEN packet
+    - platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-
+      list
+    - selftests: net: fib_tests: remove duplicate log test
+    - can: dev: can_restart: fix use after free bug
+    - can: vxcan: vxcan_xmit: fix use after free bug
+    - can: peak_usb: fix use after free bugs
+    - iio: ad5504: Fix setting power-down state
+    - cifs: do not fail __smb_send_rqst if non-fatal signals are pending
+    - irqchip/mips-cpu: Set IPI domain parent chip
+    - x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state
+    - x86/topology: Make __max_die_per_package available unconditionally
+    - x86/mmx: Use KFPU_387 for MMX string operations
+    - intel_th: pci: Add Alder Lake-P support
+    - stm class: Fix module init return on allocation failure
+    - serial: mvebu-uart: fix tx lost characters at power off
+    - ehci: fix EHCI host controller initialization sequence
+    - USB: ehci: fix an interrupt calltrace error
+    - usb: gadget: aspeed: fix stop dma register setting.
+    - usb: udc: core: Use lock when write to soft_connect
+    - [Config] updateconfigs for USB_BDC_PCI
+    - usb: bdc: Make bdc pci driver depend on BROKEN
+    - xhci: make sure TRB is fully written before giving it to the controller
+    - xhci: tegra: Delay for disabling LFPS detector
+    - driver core: Extend device_is_dependent()
+    - pinctrl: ingenic: Fix JZ4760 support
+    - x86/cpu/amd: Set __max_die_per_package on AMD
+    - netfilter: rpfilter: mask ecn bits before fib lookup
+    - sh: dma: fix kconfig dependency for G2_DMA
+    - net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext
+    - sh_eth: Fix power down vs. is_opened flag ordering
+    - lightnvm: fix memory leak when submit fails
+    - skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too
+    - kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow
+    - kasan: fix incorrect arguments passing in kasan_add_zero_shadow
+    - udp: mask TOS bits in udp_v4_early_demux()
+    - ipv6: create multicast route with RTPROT_KERNEL
+    - net_sched: avoid shift-out-of-bounds in tcindex_set_parms()
+    - net_sched: reject silly cell_log in qdisc_get_rtab()
+    - ipv6: set multicast flag on the multicast route
+    - net: mscc: ocelot: allow offloading of bridge on top of LAG
+    - net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled
+    - net: dsa: b53: fix an off by one in checking "vlan->vid"
+    - tcp: do not mess with cloned skbs in tcp_add_backlog()
+    - tcp: fix TCP_USER_TIMEOUT with zero window
+    - Linux 5.4.93
+  * High load from process irq/65-i2c-INT3  - kernel module tps6598x
+    (LP: #1883511) // Focal update: v5.4.93 upstream stable release
+    (LP: #1915195)
+    - platform/x86: i2c-multi-instantiate: Don't create platform device for
+      INT3515 ACPI nodes
+  * Focal update: v5.4.92 upstream stable release (LP: #1915186)
+    - usb: ohci: Make distrust_firmware param default to false
+    - compiler.h: Raise minimum version of GCC to 5.1 for arm64
+    - xen/privcmd: allow fetching resource sizes
+    - elfcore: fix building with clang
+    - scsi: lpfc: Make lpfc_defer_acc_rsp static
+    - spi: npcm-fiu: simplify the return expression of npcm_fiu_probe()
+    - spi: npcm-fiu: Disable clock in probe error path
+    - nfsd4: readdirplus shouldn't return parent of export
+    - bpf: Don't leak memory in bpf getsockopt when optlen == 0
+    - bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback
+    - udp: Prevent reuseport_select_sock from reading uninitialized socks
+    - netxen_nic: fix MSI/MSI-x interrupts
+    - net: introduce skb_list_walk_safe for skb segment walking
+    - net: skbuff: disambiguate argument and member for skb_list_walk_safe helper
+    - net: ipv6: Validate GSO SKB before finish IPv6 processing
+    - mlxsw: core: Add validation of transceiver temperature thresholds
+    - mlxsw: core: Increase critical threshold for ASIC thermal zone
+    - net: mvpp2: Remove Pause and Asym_Pause support
+    - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
+    - esp: avoid unneeded kmap_atomic call
+    - net: dcb: Validate netlink message in DCB handler
+    - net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
+    - rxrpc: Call state should be read with READ_ONCE() under some circumstances
+    - net: stmmac: Fixed mtu channged by cache aligned
+    - net: sit: unregister_netdevice on newlink's error path
+    - net: avoid 32 x truesize under-estimation for tiny skbs
+    - rxrpc: Fix handling of an unsupported token type in rxrpc_read()
+    - net, sctp, filter: remap copy_from_user failure error
+    - tipc: fix NULL deref in tipc_link_xmit()
+    - mac80211: do not drop tx nulldata packets on encrypted links
+    - mac80211: check if atf has been disabled in __ieee80211_schedule_txq
+    - spi: cadence: cache reference clock rate during probe
+    - Linux 5.4.92
+  * intel-hid is not loaded on new Intel platform (LP: #1907160)
+    - platform/x86: intel-hid: Add Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: Move MODULE_DEVICE_TABLE() closer to the table
+    - platform/x86: intel-hid: add Rocket Lake ACPI device ID
+  * Support Advantech UNO-420 platform (LP: #1902672)
+    - ODM: MAINTAINERS: Add Advantech AHC1EC0 embedded controller entry
+    - ODM: mfd: ahc1ec0: Add Advantech EC include file used by dt-bindings
+    - ODM: dt-bindings: mfd: ahc1ec0.yaml: Add Advantech embedded controller -
+      AHC1EC0
+    - ODM: mfd: ahc1ec0: Add support for Advantech embedded controller
+    - ODM: hwmon: ahc1ec0-hwmon: Add sub-device hwmon for Advantech embedded
+      controller
+    - ODM: watchdog: ahc1ec0-wdt: Add sub-device watchdog for Advantech embedded
+      controller
+    - ODM: [Config] update config for Advantech devices
+  * Remove scary stack trace from Realtek WiFi driver (LP: #1913263)
+    - rtw88: reduce the log level for failure of tx report
+  * Focal update: v5.4.91 upstream stable release (LP: #1914654)
+    - kbuild: enforce -Werror=return-type
+    - btrfs: prevent NULL pointer dereference in extent_io_tree_panic
+    - ASoC: dapm: remove widget from dirty list on free
+    - x86/hyperv: check cpu mask after interrupt has been disabled
+    - tracing/kprobes: Do the notrace functions check without kprobes on ftrace
+    - [Config] update annotations for KPROBE_EVENTS_ON_NOTRACE
+    - mips: fix Section mismatch in reference
+    - mips: lib: uncached: fix non-standard usage of variable 'sp'
+    - MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
+    - MIPS: relocatable: fix possible boot hangup with KASLR enabled
+    - RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
+    - ACPI: scan: Harden acpi_device_add() against device ID overflows
+    - mm/hugetlb: fix potential missing huge page size info
+    - dm raid: fix discard limits for raid1
+    - dm snapshot: flush merged data before committing metadata
+    - dm integrity: fix the maximum number of arguments
+    - r8152: Add Lenovo Powered USB-C Travel Hub
+    - btrfs: tree-checker: check if chunk item end overflows
+    - drm/i915/backlight: fix CPU mode backlight takeover on LPT
+    - ext4: fix bug for rename with RENAME_WHITEOUT
+    - ext4: don't leak old mountpoint samples
+    - cifs: fix interrupted close commands
+    - dm integrity: fix flush with external metadata device
+    - ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
+    - ARC: build: add uImage.lzma to the top-level target
+    - ARC: build: add boot_targets to PHONY
+    - ARC: build: move symlink creation to arch/arc/Makefile to avoid race
+    - netfilter: ipset: fixes possible oops in mtype_resize
+    - btrfs: fix transaction leak and crash after RO remount caused by qgroup
+      rescan
+    - regulator: bd718x7: Add enable times
+    - ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
+    - habanalabs: register to pci shutdown callback
+    - habanalabs: Fix memleak in hl_device_reset
+    - hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
+    - lib/raid6: Let $(UNROLL) rules work with macOS userland
+    - bfq: Fix computation of shallow depth
+    - arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC
+    - misdn: dsp: select CONFIG_BITREVERSE
+    - net: ethernet: fs_enet: Add missing MODULE_LICENSE
+    - nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
+    - nvmet-rdma: Fix list_del corruption on queue establishment failure
+    - drm/amdgpu: fix a GPU hang issue when remove device
+    - usb: typec: Fix copy paste error for NVIDIA alt-mode description
+    - ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
+    - drm/msm: Call msm_init_vram before binding the gpu
+    - ARM: picoxcell: fix missing interrupt-parent properties
+    - perf intel-pt: Fix 'CPU too large' error
+    - dump_common_audit_data(): fix racy accesses to ->d_name
+    - ASoC: meson: axg-tdm-interface: fix loopback
+    - ASoC: meson: axg-tdmin: fix axg skew offset
+    - ASoC: Intel: fix error code cnl_set_dsp_D0()
+    - nvme-tcp: fix possible data corruption with bio merges
+    - NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
+    - pNFS: We want return-on-close to complete when evicting the inode
+    - pNFS: Mark layout for return if return-on-close was not sent
+    - pNFS: Stricter ordering of layoutget and layoutreturn
+    - NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
+    - NFS: nfs_igrab_and_active must first reference the superblock
+    - ext4: fix superblock checksum failure when setting password salt
+    - RDMA/restrack: Don't treat as an error allocation ID wrapping
+    - RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
+    - bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
+    - RDMA/mlx5: Fix wrong free of blue flame register on error
+    - IB/mlx5: Fix error unwinding when set_has_smi_cap fails
+    - drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is
+      no reset-deassert MIPI-sequence
+    - mm, slub: consider rest of partial list if acquire_slab() fails
+    - iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
+    - net: sunrpc: interpret the return value of kstrtou32 correctly
+    - dm: eliminate potential source of excessive kernel log noise
+    - ALSA: fireface: Fix integer overflow in transmit_midi_msg()
+    - ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
+    - netfilter: conntrack: fix reading nf_conntrack_buckets
+    - netfilter: nf_nat: Fix memleak in nf_nat_init
+    - netfilter: nft_compat: remove flush counter optimization
+    - Linux 5.4.91
+  * Focal update: v5.4.90 upstream stable release (LP: #1913487)
+    - x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_*
+    - vfio iommu: Add dma available capability
+    - net: cdc_ncm: correct overhead in delayed_ndp_size
+    - net: hns3: fix the number of queues actually used by ARQ
+    - net: hns3: fix a phy loopback fail issue
+    - net: stmmac: dwmac-sun8i: Balance internal PHY resource references
+    - net: stmmac: dwmac-sun8i: Balance internal PHY power
+    - net: vlan: avoid leaks on register_vlan_dev() failures
+    - net/sonic: Fix some resource leaks in error handling paths
+    - net: ipv6: fib: flush exceptions when purging route
+    - tools: selftests: add test for changing routes with PTMU exceptions
+    - net: fix pmtu check in nopmtudisc mode
+    - net: ip: always refragment ip defragmented packets
+    - octeontx2-af: fix memory leak of lmac and lmac->name
+    - nexthop: Fix off-by-one error in error path
+    - nexthop: Unlink nexthop group entry in error path
+    - s390/qeth: fix L2 header access in qeth_l3_osa_features_check()
+    - net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE
+    - net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address
+    - net/mlx5e: ethtool, Fix restriction of autoneg with 56G
+    - chtls: Fix hardware tid leak
+    - chtls: Remove invalid set_tcb call
+    - chtls: Fix panic when route to peer not configured
+    - chtls: Replace skb_dequeue with skb_peek
+    - chtls: Added a check to avoid NULL pointer dereference
+    - chtls: Fix chtls resources release sequence
+    - x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR
+    - x86/resctrl: Don't move a task to the same resource group
+    - exfat: Month timestamp metadata accidentally incremented
+    - vmlinux.lds.h: Add PGO and AutoFDO input sections
+    - iio: imu: st_lsm6dsx: fix edge-trigger interrupts
+    - HID: wacom: Fix memory leakage caused by kfifo_alloc
+    - ARM: OMAP2+: omap_device: fix idling of devices during probe
+    - i2c: sprd: use a specific timeout to avoid system hang up issue
+    - dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk()
+    - can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver
+    - can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop()
+    - can: kvaser_pciefd: select CONFIG_CRC32
+    - cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()
+    - spi: stm32: FIFO threshold level - fix align packet size
+    - i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated
+    - dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling
+      path of the probe function
+    - dmaengine: xilinx_dma: check dma_async_device_register return value
+    - dmaengine: xilinx_dma: fix incompatible param warning in _child_probe()
+    - dmaengine: xilinx_dma: fix mixed_enum_type coverity warning
+    - qed: select CONFIG_CRC32
+    - wil6210: select CONFIG_CRC32
+    - block: rsxx: select CONFIG_CRC32
+    - lightnvm: select CONFIG_CRC32
+    - iommu/intel: Fix memleak in intel_irq_remapping_alloc
+    - bpftool: Fix compilation failure for net.o with older glibc
+    - net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
+    - net/mlx5e: Fix two double free cases
+    - regmap: debugfs: Fix a memory leak when calling regmap_attach_dev
+    - wan: ds26522: select CONFIG_BITREVERSE
+    - regulator: qcom-rpmh-regulator: correct hfsmps515 definition
+    - net: mvpp2: disable force link UP during port init procedure
+    - KVM: arm64: Don't access PMCR_EL0 when no PMU is available
+    - block: fix use-after-free in disk_part_iter_next
+    - net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed
+      packet
+    - regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()
+    - Linux 5.4.90
+  * Focal update: v5.4.89 upstream stable release (LP: #1913486)
+    - workqueue: Kick a worker based on the actual activation of delayed works
+    - scsi: ufs: Fix wrong print message in dev_err()
+    - scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk
+      ->poweroff()
+    - scsi: ide: Do not set the RQF_PREEMPT flag for sense requests
+    - scsi: scsi_transport_spi: Set RQF_PM for domain validation commands
+    - lib/genalloc: fix the overflow when size is too big
+    - depmod: handle the case of /sbin/depmod without /sbin in PATH
+    - proc: change ->nlink under proc_subdir_lock
+    - proc: fix lookup in /proc/net subdirectories after setns(2)
+    - i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs
+    - iavf: fix double-release of rtnl_lock
+    - net: mvpp2: Add TCAM entry to drop flow control pause frames
+    - net: mvpp2: prs: fix PPPoE with ipv6 packet parse
+    - net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE
+    - ethernet: ucc_geth: fix use-after-free in ucc_geth_remove()
+    - ethernet: ucc_geth: set dev->max_mtu to 1518
+    - atm: idt77252: call pci_disable_device() on error path
+    - net: mvpp2: Fix GoP port 3 Networking Complex Control configurations
+    - ibmvnic: continue fatal error reset after passive init
+    - net: ethernet: mvneta: Fix error handling in mvneta_probe
+    - virtio_net: Fix recursive call to cpus_read_lock()
+    - net/ncsi: Use real net-device for response handler
+    - net: ethernet: Fix memleak in ethoc_probe
+    - net-sysfs: take the rtnl lock when storing xps_cpus
+    - net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
+    - net-sysfs: take the rtnl lock when storing xps_rxqs
+    - net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc
+    - net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered
+    - tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
+    - net: mvpp2: fix pkt coalescing int-threshold configuration
+    - ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()
+    - net: sched: prevent invalid Scell_log shift count
+    - net: hns: fix return value check in __lb_other_process()
+    - erspan: fix version 1 check in gre_parse_header()
+    - net: hdlc_ppp: Fix issues when mod_timer is called while timer is running
+    - r8169: work around power-saving bug on some chip versions
+    - net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs
+    - net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access
+    - CDC-NCM: remove "connected" log message
+    - net: usb: qmi_wwan: add Quectel EM160R-GL
+    - vhost_net: fix ubuf refcount incorrectly when sendmsg fails
+    - ionic: account for vlan tag len in rx buffer len
+    - net/sched: sch_taprio: ensure to reset/destroy all child qdiscs
+    - kbuild: don't hardcode depmod path
+    - Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close
+    - video: hyperv_fb: Fix the mmap() regression for v5.4.y and older
+    - crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
+    - crypto: asym_tpm: correct zero out potential secrets
+    - powerpc: Handle .text.{hot,unlikely}.* in linker script
+    - staging: mt7621-dma: Fix a resource leak in an error handling path
+    - usb: gadget: enable super speed plus
+    - USB: cdc-acm: blacklist another IR Droid device
+    - USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().
+    - usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion
+    - usb: chipidea: ci_hdrc_imx: add missing put_device() call in
+      usbmisc_get_init_data()
+    - USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set
+    - usb: usbip: vhci_hcd: protect shift size
+    - usb: uas: Add PNY USB Portable SSD to unusual_uas
+    - USB: serial: iuu_phoenix: fix DMA from stack
+    - USB: serial: option: add LongSung M5710 module support
+    - USB: serial: option: add Quectel EM160R-GL
+    - USB: yurex: fix control-URB timeout handling
+    - USB: usblp: fix DMA to stack
+    - ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
+    - usb: gadget: select CONFIG_CRC32
+    - usb: gadget: f_uac2: reset wMaxPacketSize
+    - usb: gadget: function: printer: Fix a memory leak for interface descriptor
+    - usb: gadget: u_ether: Fix MTU size mismatch with RX packet size
+    - USB: gadget: legacy: fix return error code in acm_ms_bind()
+    - usb: gadget: Fix spinlock lockup on usb_function_deactivate
+    - usb: gadget: configfs: Preserve function ordering after bind failure
+    - usb: gadget: configfs: Fix use-after-free issue with udc_name
+    - USB: serial: keyspan_pda: remove unused variable
+    - x86/mm: Fix leak of pmd ptlock
+    - kvm: check tlbs_dirty directly
+    - ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+    - ALSA: hda/conexant: add a new hda codec CX11970
+    - ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
+    - ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256.
+    - btrfs: send: fix wrong file path when there is an inode with a pending rmdir
+    - Revert "device property: Keep secondary firmware node secondary by type"
+    - dmabuf: fix use-after-free of dmabuf's file->f_inode
+    - drm/i915: clear the gpu reloc batch
+    - netfilter: x_tables: Update remaining dereference to RCU
+    - netfilter: ipset: fix shift-out-of-bounds in htable_bits()
+    - netfilter: xt_RATEEST: reject non-null terminated string from userspace
+    - netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
+    - x86/mtrr: Correct the range check before performing MTRR type lookups
+    - KVM: x86: fix shift out of bounds reported by UBSAN
+    - Linux 5.4.89
+  * Focal update: v5.4.88 upstream stable release (LP: #1913223)
+    - Revert "drm/amd/display: Fix memory leaks in S3 resume"
+    - Revert "mtd: spinand: Fix OOB read"
+    - dmaengine: at_hdmac: Substitute kzalloc with kmalloc
+    - dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()
+    - dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate()
+    - kdev_t: always inline major/minor helper functions
+    - iio:imu:bmi160: Fix alignment and data leak issues
+    - fuse: fix bad inode
+    - perf: Break deadlock involving exec_update_mutex
+    - rwsem: Implement down_read_killable_nested
+    - rwsem: Implement down_read_interruptible
+    - exec: Transform exec_update_mutex into a rw_semaphore
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start
+    - Linux 5.4.88
+  * Focal update: v5.4.87 upstream stable release (LP: #1912681)
+    - net/sched: sch_taprio: reset child qdiscs before freeing them
+    - md/raid10: initialize r10_bio->read_slot before use.
+    - thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has
+      changed
+    - ext4: prevent creating duplicate encrypted filenames
+    - ubifs: prevent creating duplicate encrypted filenames
+    - f2fs: prevent creating duplicate encrypted filenames
+    - fscrypt: add fscrypt_is_nokey_name()
+    - fscrypt: remove kernel-internal constants from UAPI header
+    - vfio/pci: Move dummy_resources_list init in vfio_pci_probe()
+    - btrfs: fix race when defragmenting leads to unnecessary IO
+    - ext4: don't remount read-only with errors=continue on reboot
+    - KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL
+    - KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses
+    - KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits
+    - powerpc/bitops: Fix possible undefined behaviour with fls() and fls64()
+    - jffs2: Allow setting rp_size to zero during remounting
+    - jffs2: Fix NULL pointer dereference in rp_size fs option parsing
+    - scsi: block: Fix a race in the runtime power management code
+    - uapi: move constants from <linux/kernel.h> to <linux/const.h>
+    - tools headers UAPI: Sync linux/const.h with the kernel headers
+    - null_blk: Fix zone size initialization
+    - of: fix linker-section match-table corruption
+    - cgroup: Fix memory leak when parsing multiple source parameters
+    - scsi: cxgb4i: Fix TLS dependency
+    - Bluetooth: hci_h5: close serdev device and free hu in h5_close
+    - reiserfs: add check for an invalid ih_entry_count
+    - misc: vmw_vmci: fix kernel info-leak by initializing dbells in
+      vmci_ctx_get_chkpt_doorbells()
+    - media: gp8psk: initialize stats at power control logic
+    - f2fs: fix shift-out-of-bounds in sanity_check_raw_super()
+    - ALSA: seq: Use bool for snd_seq_queue internal flags
+    - ALSA: rawmidi: Access runtime->avail always in spinlock
+    - bfs: don't use WARNING: string when it's just info.
+    - fcntl: Fix potential deadlock in send_sig{io, urg}()
+    - rtc: sun6i: Fix memleak in sun6i_rtc_clk_init
+    - module: set MODULE_STATE_GOING state when a module fails to load
+    - quota: Don't overflow quota file offsets
+    - rtc: pl031: fix resource leak in pl031_probe
+    - powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe()
+    - i3c master: fix missing destroy_workqueue() on error in i3c_master_register
+    - NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode
+    - f2fs: avoid race condition for shrinker count
+    - module: delay kobject uevent until after module init call
+    - fs/namespace.c: WARN if mnt_count has become negative
+    - um: ubd: Submit all data segments atomically
+    - tick/sched: Remove bogus boot "safety" check
+    - ALSA: pcm: Clear the full allocated memory at hw_params
+    - dm verity: skip verity work if I/O error when system is shutting down
+    - Linux 5.4.87
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 01 Mar 2021 11:58:57 +0100
+
+linux-gkeop-5.4 (5.4.0-1010.11~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1010.11~18.04.1 -proposed tracker
+    (LP: #1913145)
+
+  [ Ubuntu: 5.4.0-1010.11 ]
+
+  * focal/linux-gkeop: 5.4.0-1010.11 -proposed tracker (LP: #1913146)
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - [Config] gkeop: updateconfigs for USB_SISUSBVGA_CON
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - BUNTU: [Config] gkeop: updateconfigs for PGTABLE_MAPPING
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - [Config] gkeop: updateconfigs for INFINIBAND_VIRT_DMA
+  * focal/linux: 5.4.0-66.74 -proposed tracker (LP: #1913152)
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Add support for ODM drivers
+    - [Packaging] Turn on ODM support for amd64
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+  * Introduce the new NVIDIA 460-server series and update the 460 series
+    (LP: #1913200)
+    - [Config] dkms-versions -- drop NVIDIA 435 455 and 440-server
+    - [Config] dkms-versions -- add the 460-server nvidia driver
+  * Enable mute and micmute LED on HP EliteBook 850 G7 (LP: #1910102)
+    - ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7
+  * SYNA30B4:00 06CB:CE09 Mouse  on HP EliteBook 850 G7 not working at all
+    (LP: #1908992)
+    - HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device
+  * HD Audio Device PCI ID for the Intel Cometlake-R platform (LP: #1912427)
+    - SAUCE: ALSA: hda: Add Cometlake-R PCI ID
+  * switch to an autogenerated nvidia series based core via dkms-versions
+    (LP: #1912803)
+    - [Packaging] nvidia -- use dkms-versions to define versions built
+    - [Packaging] update-version-dkms -- maintain flags fields
+    - [Config] dkms-versions -- add transitional/skip information for nvidia
+      packages
+  * udpgro.sh in net from ubuntu_kernel_selftests seems not reflecting sub-test
+    result (LP: #1908499)
+    - selftests: fix the return value for UDP GRO test
+  * qede: Kubernetes Internal DNS Failure due to QL41xxx NIC not supporting IPIP
+    tx csum offload (LP: #1909062)
+    - qede: fix offload for IPIP tunnel packets
+  * Use DCPD to control HP DreamColor panel (LP: #1911001)
+    - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix
+  * kvm: Windows 2k19 with Hyper-v role gets stuck on pending hypervisor
+    requests on cascadelake based kvm hosts (LP: #1911848)
+    - KVM: x86: Set KVM_REQ_EVENT if run is canceled with req_immediate_exit set
+  * Ubuntu 20.10 four needed fixes to 'Add driver for Mellanox Connect-IB
+    adapters' (LP: #1905574)
+    - net/mlx5: Fix a race when moving command interface to polling mode
+  * Fix right sounds and mute/micmute LEDs for HP ZBook Fury 15/17 G7 Mobile
+    Workstation (LP: #1910561)
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
+  * Ubuntu 20.04 - multicast counter is not increased in ip -s (LP: #1901842)
+    - net/mlx5e: Fix multicast counter not up-to-date in "ip -s"
+  * eeh-basic.sh in powerpc from ubuntu_kernel_selftests timeout with 5.4 P8 /
+    P9 (LP: #1882503)
+    - selftests/powerpc/eeh: disable kselftest timeout setting for eeh-basic
+  * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639)
+    - Input: i8042 - unbreak Pegatron C15B
+  * CVE-2020-29372
+    - mm: check that mm is still valid in madvise()
+  * update ENA driver, incl. new ethtool stats (LP: #1910291)
+    - net: ena: Change WARN_ON expression in ena_del_napi_in_range()
+    - net: ena: ethtool: convert stat_offset to 64 bit resolution
+    - net: ena: ethtool: Add new device statistics
+    - net: ena: ethtool: add stats printing to XDP queues
+    - net: ena: xdp: add queue counters for xdp actions
+    - net: ena: Change license into format to SPDX in all files
+    - net: ena: Change log message to netif/dev function
+    - net: ena: Capitalize all log strings and improve code readability
+    - net: ena: Remove redundant print of placement policy
+    - net: ena: Change RSS related macros and variables names
+    - net: ena: Fix all static chekers' warnings
+    - drivers/net/ethernet: remove incorrectly formatted doc
+    - net: ena: handle bad request id in ena_netdev
+    - net: ena: fix packet's addresses for rx_offset feature
+  * s390x broken with unknown syscall number on kernels < 5.8 (LP: #1895132)
+    - s390/ptrace: return -ENOSYS when invalid syscall is supplied
+  * Focal update: v5.4.86 upstream stable release (LP: #1910822)
+    - ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
+    - ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
+    - pinctrl: merrifield: Set default bias in case no particular value given
+    - pinctrl: baytrail: Avoid clearing debounce value when turning it off
+    - ARM: dts: sun8i: v3s: fix GIC node memory range
+    - ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
+    - ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
+    - ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
+    - PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
+    - gpio: zynq: fix reference leak in zynq_gpio functions
+    - gpio: mvebu: fix potential user-after-free on probe
+    - scsi: bnx2i: Requires MMU
+    - xsk: Fix xsk_poll()'s return type
+    - xsk: Replace datagram_poll by sock_poll_wait
+    - can: softing: softing_netdev_open(): fix error handling
+    - clk: renesas: r9a06g032: Drop __packed for portability
+    - block: Simplify REQ_OP_ZONE_RESET_ALL handling
+    - block: factor out requeue handling from dispatch code
+    - blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
+    - pinctrl: aspeed: Fix GPIO requests on pass-through banks
+    - netfilter: x_tables: Switch synchronization to RCU
+    - netfilter: nft_compat: make sure xtables destructors have run
+    - netfilter: nft_dynset: fix timeouts later than 23 days
+    - afs: Fix memory leak when mounting with multiple source parameters
+    - Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
+    - gpio: eic-sprd: break loop when getting NULL device resource
+    - netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
+    - selftests/bpf/test_offload.py: Reset ethtool features after failed setting
+    - RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
+    - i40e: Refactor rx_bi accesses
+    - i40e: optimise prefetch page refcount
+    - i40e: avoid premature Rx buffer reuse
+    - ixgbe: avoid premature Rx buffer reuse
+    - selftests: fix poll error in udpgro.sh
+    - net: mvpp2: add mvpp2_phylink_to_port() helper
+    - drm/tegra: replace idr_init() by idr_init_base()
+    - kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
+    - drm/tegra: sor: Disable clocks on error in tegra_sor_init()
+    - habanalabs: put devices before driver removal
+    - arm64: syscall: exit userspace before unmasking exceptions
+    - vxlan: Add needed_headroom for lower device
+    - vxlan: Copy needed_tailroom from lowerdev
+    - scsi: mpt3sas: Increase IOCInit request timeout to 30s
+    - dm table: Remove BUG_ON(in_interrupt())
+    - iwlwifi: pcie: add one missing entry for AX210
+    - drm/amd/display: Init clock value by current vbios CLKs
+    - perf/x86/intel: Check PEBS status correctly
+    - kbuild: avoid split lines in .mod files
+    - soc/tegra: fuse: Fix index bug in get_process_id
+    - usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
+    - USB: serial: option: add interface-number sanity check to flag handling
+    - USB: gadget: f_acm: add support for SuperSpeed Plus
+    - USB: gadget: f_midi: setup SuperSpeed Plus descriptors
+    - usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
+    - USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
+    - usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
+    - ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
+    - ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on
+      Exynos5410
+    - ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU
+    - coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
+    - coresight: tmc-etr: Check if page is valid before dma_map_page()
+    - coresight: tmc-etr: Fix barrier packet insertion for perf buffer
+    - coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
+    - scsi: megaraid_sas: Check user-provided offsets
+    - HID: i2c-hid: add Vero K147 to descriptor override
+    - serial_core: Check for port state when tty is in error state
+    - Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
+    - quota: Sanity-check quota file headers on load
+    - media: msi2500: assign SPI bus number dynamically
+    - crypto: af_alg - avoid undefined behavior accessing salg_name
+    - md: fix a warning caused by a race between concurrent md_ioctl()s
+    - drm/gma500: fix double free of gma_connector
+    - drm/aspeed: Fix Kconfig warning & subsequent build errors
+    - drm/mcde: Fix handling of platform_get_irq() error
+    - drm/tve200: Fix handling of platform_get_irq() error
+    - arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
+    - arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
+    - soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
+    - soc: mediatek: Check if power domains can be powered on at boot time
+    - soc: qcom: geni: More properly switch to DMA mode
+    - Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
+    - RDMA/bnxt_re: Set queue pair state when being queried
+    - rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
+    - selinux: fix error initialization in inode_doinit_with_dentry()
+    - ARM: dts: aspeed: s2600wf: Fix VGA memory region location
+    - RDMA/rxe: Compute PSN windows correctly
+    - x86/mm/ident_map: Check for errors from ident_pud_init()
+    - ARM: p2v: fix handling of LPAE translation in BE mode
+    - x86/apic: Fix x2apic enablement without interrupt remapping
+    - sched/deadline: Fix sched_dl_global_validate()
+    - sched: Reenable interrupts in do_sched_yield()
+    - drm/amdgpu: fix incorrect enum type
+    - crypto: talitos - Endianess in current_desc_hdr()
+    - crypto: talitos - Fix return type of current_desc_hdr()
+    - crypto: inside-secure - Fix sizeof() mismatch
+    - ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
+    - ARM: dts: aspeed: tiogapass: Remove vuart
+    - drm/amdgpu: fix build_coefficients() argument
+    - powerpc/64: Set up a kernel stack for secondaries before cpu_restore()
+    - spi: img-spfi: fix reference leak in img_spfi_resume
+    - f2fs: call f2fs_get_meta_page_retry for nat page
+    - drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
+    - spi: spi-mem: fix reference leak in spi_mem_access_start
+    - ASoC: pcm: DRAIN support reactivation
+    - selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
+    - spi: stm32: fix reference leak in stm32_spi_resume
+    - brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
+    - arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
+    - arm64: dts: exynos: Correct psci compatible used on Exynos7
+    - Bluetooth: Fix null pointer dereference in hci_event_packet()
+    - Bluetooth: hci_h5: fix memory leak in h5_close
+    - spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
+    - spi: mt7621: fix missing clk_disable_unprepare() on error in
+      mt7621_spi_probe
+    - spi: tegra20-slink: fix reference leak in slink ops of tegra20
+    - spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
+    - spi: tegra114: fix reference leak in tegra spi ops
+    - spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in
+      bcm63xx_hsspi_resume
+    - mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
+    - selftest/bpf: Add missed ip6ip6 test back
+    - ASoC: wm8998: Fix PM disable depth imbalance on error
+    - spi: sprd: fix reference leak in sprd_spi_remove
+    - ASoC: arizona: Fix a wrong free in wm8997_probe
+    - RDMa/mthca: Work around -Wenum-conversion warning
+    - MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
+    - crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
+    - staging: greybus: codecs: Fix reference counter leak in error handling
+    - staging: gasket: interrupt: fix the missed eventfd_ctx_put() in
+      gasket_interrupt.c
+    - media: tm6000: Fix sizeof() mismatches
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in
+      mtk_vcodec_release_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
+    - media: v4l2-fwnode: Return -EINVAL for invalid bus-type
+    - ASoC: meson: fix COMPILE_TEST error
+    - scsi: core: Fix VPD LUN ID designator priorities
+    - media: solo6x10: fix missing snd_card_free in error handling case
+    - video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init()
+    - drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
+    - Input: ads7846 - fix race that causes missing releases
+    - Input: ads7846 - fix integer overflow on Rt calculation
+    - Input: ads7846 - fix unaligned access on 7845
+    - usb/max3421: fix return error code in max3421_probe()
+    - spi: mxs: fix reference leak in mxs_spi_probe
+    - selftests/bpf: Fix broken riscv build
+    - powerpc: Avoid broken GCC __attribute__((optimize))
+    - powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
+    - EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId
+    - crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
+    - crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
+    - spi: fix resource leak for drivers without .remove callback
+    - soc: ti: knav_qmss: fix reference leak in knav_queue_probe
+    - soc: ti: Fix reference imbalance in knav_dma_probe
+    - drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
+    - Input: omap4-keypad - fix runtime PM error handling
+    - clk: meson: Kconfig: fix dependency for G12A
+    - RDMA/cxgb4: Validate the number of CQEs
+    - memstick: fix a double-free bug in memstick_check
+    - ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
+    - ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
+    - mmc: pxamci: Fix error return code in pxamci_probe
+    - orinoco: Move context allocation after processing the skb
+    - qtnfmac: fix error return code in qtnf_pcie_probe()
+    - rsi: fix error return code in rsi_reset_card()
+    - cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
+    - dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
+    - arm64: tegra: Fix DT binding for IO High Voltage entry
+    - media: siano: fix memory leak of debugfs members in smsdvb_hotplug
+    - platform/x86: mlx-platform: Remove PSU EEPROM from default platform
+      configuration
+    - platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform
+      configuration
+    - samples: bpf: Fix lwt_len_hist reusing previous BPF map
+    - media: imx214: Fix stop streaming
+    - mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
+    - media: max2175: fix max2175_set_csm_mode() error code
+    - slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
+    - HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
+    - ARM: dts: Remove non-existent i2c1 from 98dx3236
+    - arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
+    - arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
+    - power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
+    - power: supply: bq24190_charger: fix reference leak
+    - genirq/irqdomain: Don't try to free an interrupt that has no mapping
+    - arm64: dts: ls1028a: fix ENETC PTP clock input
+    - arm64: dts: qcom: c630: Polish i2c-hid devices
+    - PCI: Bounds-check command-line resource alignment requests
+    - PCI: Fix overflow in command-line resource alignment requests
+    - PCI: iproc: Fix out-of-bound array accesses
+    - arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
+    - arm64: dts: meson-sm1: fix typo in opp table
+    - soc: amlogic: canvas: add missing put_device() call in meson_canvas_get()
+    - ARM: dts: at91: at91sam9rl: fix ADC triggers
+    - platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
+    - ath10k: Fix the parsing error in service available event
+    - ath10k: Fix an error handling path
+    - ath10k: Release some resources in an error handling path
+    - SUNRPC: rpc_wake_up() should wake up tasks in the correct order
+    - NFSv4.2: condition READDIR's mask for security label based on LSM state
+    - SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
+    - NFSv4: Fix the alignment of page data in the getdeviceinfo reply
+    - net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
+    - lockd: don't use interval-based rebinding over TCP
+    - NFS: switch nfsiod to be an UNBOUND workqueue.
+    - selftests/seccomp: Update kernel config
+    - vfio-pci: Use io_remap_pfn_range() for PCI IO memory
+    - hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
+    - media: saa7146: fix array overflow in vidioc_s_audio()
+    - powerpc/perf: Fix crash with is_sier_available when pmu is not set
+    - powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
+    - clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
+    - clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
+    - iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
+    - ARM: dts: at91: sama5d2: map securam as device
+    - bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
+    - pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
+    - arm64: dts: rockchip: Fix UART pull-ups on rk3328
+    - memstick: r592: Fix error return in r592_probe()
+    - MIPS: Don't round up kernel sections size for memblock_add()
+    - net/mlx5: Properly convey driver version to firmware
+    - ASoC: jz4740-i2s: add missed checks for clk_get()
+    - dm ioctl: fix error return code in target_message
+    - phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
+    - clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne
+    - clocksource/drivers/arm_arch_timer: Correct fault programming of
+      CNTKCTL_EL1.EVNTI
+    - cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: st: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: loongson1: Add missing MODULE_ALIAS
+    - cpufreq: scpi: Add missing MODULE_ALIAS
+    - Bluetooth: btusb: Add the missed release_firmware() in
+      btusb_mtk_setup_firmware()
+    - Bluetooth: btmtksdio: Add the missed release_firmware() in
+      mtk_setup_firmware()
+    - arm64: dts: meson: fix PHY deassert timing requirements
+    - ARM: dts: meson: fix PHY deassert timing requirements
+    - arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
+    - scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
+    - scsi: pm80xx: Fix error return in pm8001_pci_probe()
+    - seq_buf: Avoid type mismatch for seq_buf_init
+    - scsi: fnic: Fix error return code in fnic_probe()
+    - platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx
+      systems
+    - powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops
+    - powerpc/pseries/hibernation: remove redundant cacheinfo update
+    - drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
+    - ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
+    - powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S
+    - usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
+    - usb: oxu210hp-hcd: Fix memory leak in oxu_create
+    - speakup: fix uninitialized flush_lock
+    - nfsd: Fix message level for normal termination
+    - nfs_common: need lock during iterate through the list
+    - x86/kprobes: Restore BTF if the single-stepping is cancelled
+    - platform/chrome: cros_ec_spi: Don't overwrite spi::mode
+    - bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
+    - s390/cio: fix use-after-free in ccw_device_destroy_console
+    - iwlwifi: mvm: hook up missing RX handlers
+    - erofs: avoid using generic_block_bmap
+    - can: m_can: m_can_config_endisable(): remove double clearing of clock stop
+      request bit
+    - RDMA/core: Do not indicate device ready when device enablement fails
+    - remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
+    - remoteproc: qcom: fix reference leak in adsp_start
+    - remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
+    - clk: tegra: Fix duplicated SE clock entry
+    - mtd: rawnand: gpmi: fix reference count leak in gpmi ops
+    - mtd: rawnand: meson: Fix a resource leak in init
+    - mtd: rawnand: gpmi: Fix the random DMA timeout issue
+    - extcon: max77693: Fix modalias string
+    - crypto: atmel-i2c - select CONFIG_BITREVERSE
+    - mac80211: don't set set TDLS STA bandwidth wider than possible
+    - ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
+    - irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
+    - watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
+    - watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
+    - watchdog: sprd: remove watchdog disable from resume fail path
+    - watchdog: sprd: check busy bit before new loading rather than after that
+    - watchdog: Fix potential dereferencing of null pointer
+    - ubifs: Fix error return code in ubifs_init_authentication()
+    - um: Monitor error events in IRQ controller
+    - um: tty: Fix handling of close in tty lines
+    - um: chan_xterm: Fix fd leak
+    - sunrpc: fix xs_read_xdr_buf for partial pages receive
+    - RDMA/cma: Don't overwrite sgid_attr after device is released
+    - nfc: s3fwrn5: Release the nfc firmware
+    - powerpc/ps3: use dma_mapping_error()
+    - sparc: fix handling of page table constructor failure
+    - mm: don't wake kswapd prematurely when watermark boosting is disabled
+    - checkpatch: fix unescaped left brace
+    - lan743x: fix rx_napi_poll/interrupt ping-pong
+    - net: bcmgenet: Fix a resource leak in an error handling path in the probe
+      functin
+    - net: allwinner: Fix some resources leak in the error handling path of the
+      probe and in the remove function
+    - net: korina: fix return value
+    - libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
+    - watchdog: qcom: Avoid context switch in restart handler
+    - watchdog: coh901327: add COMMON_CLK dependency
+    - clk: ti: Fix memleak in ti_fapll_synth_setup
+    - pwm: zx: Add missing cleanup in error path
+    - pwm: lp3943: Dynamically allocate PWM chip base
+    - perf record: Fix memory leak when using '--user-regs=?' to list registers
+    - qlcnic: Fix error code in probe
+    - virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
+    - virtio_net: Fix error code in probe()
+    - virtio_ring: Fix two use after free bugs
+    - clk: at91: sam9x60: remove atmel,osc-bypass support
+    - clk: s2mps11: Fix a resource leak in error handling paths in the probe
+      function
+    - clk: sunxi-ng: Make sure divider tables have sentinel
+    - kconfig: fix return value of do_error_if()
+    - perf probe: Fix memory leak when synthesizing SDT probes
+    - ARM: sunxi: Add machine match for the Allwinner V3 SoC
+    - cfg80211: initialize rekey_data
+    - fix namespaced fscaps when !CONFIG_SECURITY
+    - lwt: Disable BH too in run_lwt_bpf()
+    - drm/amd/display: Prevent bandwidth overflow
+    - drm/amdkfd: Fix leak in dmabuf import
+    - Input: cros_ec_keyb - send 'scancodes' in addition to key events
+    - initramfs: fix clang build failure
+    - Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
+    - vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU
+    - media: gspca: Fix memory leak in probe
+    - media: sunxi-cir: ensure IR is handled when it is continuous
+    - media: netup_unidvb: Don't leak SPI master in probe error path
+    - media: ipu3-cio2: Remove traces of returned buffers
+    - media: ipu3-cio2: Return actual subdev format
+    - media: ipu3-cio2: Serialise access to pad format
+    - media: ipu3-cio2: Validate mbus format in setting subdev format
+    - media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
+    - Input: cyapa_gen6 - fix out-of-bounds stack access
+    - ALSA: hda/ca0132 - Change Input Source enum strings.
+    - Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources
+      walks"
+    - ACPI: PNP: compare the string length in the matching_id()
+    - ALSA: hda: Fix regressions on clear and reconfig sysfs
+    - ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
+    - ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
+    - ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
+    - ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
+    - ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
+    - ALSA: pcm: oss: Fix a few more UBSAN fixes
+    - ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
+    - ALSA: hda/realtek: Add quirk for MSI-GP73
+    - ALSA: hda/realtek: Apply jack fixup for Quanta NL3
+    - ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
+    - ALSA: usb-audio: Disable sample read check if firmware doesn't give back
+    - ALSA: core: memalloc: add page alignment for iram
+    - s390/smp: perform initial CPU reset also for SMT siblings
+    - s390/kexec_file: fix diag308 subcode when loading crash kernel
+    - s390/dasd: fix hanging device offline processing
+    - s390/dasd: prevent inconsistent LCU device data
+    - s390/dasd: fix list corruption of pavgroup group list
+    - s390/dasd: fix list corruption of lcu list
+    - binder: add flag to clear buffer on txn complete
+    - ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
+    - staging: comedi: mf6x4: Fix AI end-of-conversion detection
+    - perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY
+    - perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
+    - powerpc/perf: Exclude kernel samples while counting events in user space.
+    - crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
+    - crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
+    - EDAC/i10nm: Use readl() to access MMIO registers
+    - EDAC/amd64: Fix PCI component registration
+    - cpuset: fix race between hotplug work and later CPU offline
+    - USB: serial: mos7720: fix parallel-port state restore
+    - USB: serial: digi_acceleport: fix write-wakeup deadlocks
+    - USB: serial: keyspan_pda: fix dropped unthrottle interrupts
+    - USB: serial: keyspan_pda: fix write deadlock
+    - USB: serial: keyspan_pda: fix stalled writes
+    - USB: serial: keyspan_pda: fix write-wakeup use-after-free
+    - USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
+    - USB: serial: keyspan_pda: fix write unthrottling
+    - btrfs: do not shorten unpin len for caching block groups
+    - ext4: fix a memory leak of ext4_free_data
+    - ext4: fix deadlock with fs freezing and EA inodes
+    - KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
+    - ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
+    - ARM: dts: at91: sama5d2: fix CAN message ram offset and size
+    - xprtrdma: Fix XDRBUF_SPARSE_PAGES support
+    - powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
+    - powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
+    - powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE
+    - powerpc/xmon: Change printk() to pr_cont()
+    - powerpc/8xx: Fix early debug when SMC1 is relocated
+    - powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
+    - powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
+    - powerpc/powernv/memtrace: Don't leak kernel memory to user space
+    - powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
+    - ima: Don't modify file descriptor mode on the fly
+    - um: Remove use of asprinf in umid.c
+    - ceph: fix race in concurrent __ceph_remove_cap invocations
+    - SMB3: avoid confusing warning message on mount to Azure
+    - ubifs: wbuf: Don't leak kernel memory to flash
+    - jffs2: Fix GC exit abnormally
+    - jffs2: Fix ignoring mounting options problem during remounting
+    - jfs: Fix array index bounds check in dbAdjTree
+    - platform/x86: mlx-platform: remove an unused variable
+    - drm/amd/display: Fix memory leaks in S3 resume
+    - drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
+    - drm/i915: Fix mismatch between misplaced vma check and vma insert
+    - spi: pxa2xx: Fix use-after-free on unbind
+    - spi: spi-sh: Fix use-after-free on unbind
+    - spi: atmel-quadspi: Fix use-after-free on unbind
+    - spi: davinci: Fix use-after-free on unbind
+    - spi: fsl: fix use of spisel_boot signal on MPC8309
+    - spi: gpio: Don't leak SPI master in probe error path
+    - spi: mxic: Don't leak SPI master in probe error path
+    - spi: pic32: Don't leak DMA channels in probe error path
+    - spi: rb4xx: Don't leak SPI master in probe error path
+    - spi: sc18is602: Don't leak SPI master in probe error path
+    - spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
+    - spi: synquacer: Disable clock in probe error path
+    - spi: mt7621: Disable clock in probe error path
+    - spi: mt7621: Don't leak SPI master in probe error path
+    - spi: atmel-quadspi: Disable clock in probe error path
+    - spi: atmel-quadspi: Fix AHB memory accesses
+    - soc: qcom: smp2p: Safely acquire spinlock without IRQs
+    - mtd: spinand: Fix OOB read
+    - mtd: parser: cmdline: Fix parsing of part-names with colons
+    - mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
+    - mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
+    - scsi: qla2xxx: Fix crash during driver load on big endian machines
+    - scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
+    - scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
+    - iio: buffer: Fix demux update
+    - iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in
+      rockchip_saradc_resume
+    - iio:light:rpr0521: Fix timestamp alignment and prevent data leak.
+    - iio:light:st_uvis25: Fix timestamp alignment and prevent data leak.
+    - iio:magnetometer:mag3110: Fix alignment and data leak issues.
+    - iio:pressure:mpl3115: Force alignment of buffer
+    - iio:imu:bmi160: Fix too large a buffer.
+    - iio:adc:ti-ads124s08: Fix buffer being too long.
+    - iio:adc:ti-ads124s08: Fix alignment and data leak issues.
+    - md/cluster: block reshape with remote resync job
+    - md/cluster: fix deadlock when node is doing resync job
+    - pinctrl: sunxi: Always call chained_irq_{enter, exit} in
+      sunxi_pinctrl_irq_handler
+    - clk: ingenic: Fix divider calculation with div tables
+    - clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
+    - clk: tegra: Do not return 0 on failure
+    - device-dax/core: Fix memory leak when rmmod dax.ko
+    - dma-buf/dma-resv: Respect num_fences when initializing the shared fence
+      list.
+    - xen-blkback: set ring->xenblkd to NULL after kthread_stop()
+    - xen/xenbus: Allow watches discard events before queueing
+    - xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
+    - xen/xenbus/xen_bus_type: Support will_handle watch callback
+    - xen/xenbus: Count pending messages for each watch
+    - xenbus/xenbus_backend: Disallow pending watch messages
+    - libnvdimm/namespace: Fix reaping of invalidated block-window-namespace
+      labels
+    - platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
+    - PCI: Fix pci_slot_release() NULL pointer dereference
+    - regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
+    - rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
+    - Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
+    - x86/CPU/AMD: Save AMD NodeId as cpu_die_id
+    - Linux 5.4.86
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info()
+    - ipv4: fix error return code in rtm_to_fib_config()
+    - mac80211: mesh: fix mesh_pathtbl_init() error path
+    - net: bridge: vlan: fix error return code in __vlan_add()
+    - vrf: packets with lladdr src needs dst at input with orig_iif when needs
+      strict
+    - net: hns3: remove a misused pragma packed
+    - udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
+    - enetc: Fix reporting of h/w packet counters
+    - bridge: Fix a deadlock when enabling multicast snooping
+    - net: stmmac: free tx skb buffer in stmmac_resume()
+    - tcp: select sane initial rcvq_space.space for big MSS
+    - tcp: fix cwnd-limited bug for TSO deferral where we send nothing
+    - net/mlx4_en: Avoid scheduling restart task if it is already running
+    - lan743x: fix for potential NULL pointer dereference with bare card
+    - net/mlx4_en: Handle TX error CQE
+    - net: ll_temac: Fix potential NULL dereference in temac_probe()
+    - net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux
+    - net: stmmac: delete the eee_ctrl_timer after napi disabled
+    - ktest.pl: If size of log is too big to email, email error message
+    - USB: dummy-hcd: Fix uninitialized array use in init()
+    - USB: add RESET_RESUME quirk for Snapscan 1212
+    - ALSA: usb-audio: Fix potential out-of-bounds shift
+    - ALSA: usb-audio: Fix control 'access overflow' errors from chmap
+    - xhci: Give USB2 ports time to enter U3 in bus suspend
+    - xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP
+    - USB: UAS: introduce a quirk to set no_write_same
+    - USB: sisusbvga: Make console support depend on BROKEN
+    - [Config] updateconfigs for USB_SISUSBVGA_CON
+    - ALSA: pcm: oss: Fix potential out-of-bounds shift
+    - serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access
+    - KVM: mmu: Fix SPTE encoding of MMIO generation upper half
+    - membarrier: Explicitly sync remote cores when SYNC_CORE is requested
+    - x86/resctrl: Remove unused struct mbm_state::chunks_bw
+    - x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
+    - Linux 5.4.85
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - Kbuild: do not emit debug info for assembly with LLVM_IAS=1
+    - x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
+    - iwlwifi: pcie: limit memory read spin time
+    - arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
+    - iwlwifi: pcie: set LTR to avoid completion timeout
+    - iwlwifi: mvm: fix kernel panic in case of assert during CSA
+    - powerpc: Drop -me200 addition to build flags
+    - arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
+    - ARC: stack unwinding: don't assume non-current task is sleeping
+    - scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
+    - interconnect: qcom: qcs404: Remove GPU and display RPM IDs
+    - ibmvnic: skip tx timeout reset while in resetting
+    - irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
+    - spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
+    - soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
+    - arm64: tegra: Disable the ACONNECT for Jetson TX2
+    - platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
+    - platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad
+      Yoga 11e 4th gen
+    - platform/x86: acer-wmi: add automatic keyboard background light toggle key
+      as KEY_LIGHTS_TOGGLE
+    - platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
+    - platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
+    - can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
+    - ktest.pl: Fix incorrect reboot for grub2bls
+    - Input: cm109 - do not stomp on control URB
+    - Input: i8042 - add Acer laptops to the i8042 reset list
+    - mmc: block: Fixup condition for CMD13 polling for RPMB requests
+    - drm/i915/display/dp: Compute the correct slice count for VDSC on DP
+    - kbuild: avoid static_assert for genksyms
+    - proc: use untagged_addr() for pagemap_read addresses
+    - scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
+    - x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
+    - x86/membarrier: Get rid of a dubious optimization
+    - x86/apic/vector: Fix ordering in vector assignment
+    - mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
+    - [Config] updateconfigs for PGTABLE_MAPPING
+    - compiler.h: fix barrier_data() on clang
+    - Linux 5.4.84
+  * MSFT Touchpad not working on Lenovo Legion-5 15ARH05 (LP: #1887190) // Focal
+    update: v5.4.84 upstream stable release (LP: #1910816)
+    - pinctrl: amd: remove debounce filter setting in IRQ type setting
+  * Focal update: v5.4.83 upstream stable release (LP: #1910784)
+    - pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq
+      pin to output
+    - pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(...,
+      GPIOD_OUT_HIGH)
+    - usb: gadget: f_fs: Use local copy of descriptors for userspace copy
+    - USB: serial: kl5kusb105: fix memleak on open
+    - USB: serial: ch341: add new Product ID for CH341A
+    - USB: serial: ch341: sort device-id entries
+    - USB: serial: option: add Fibocom NL668 variants
+    - USB: serial: option: add support for Thales Cinterion EXS82
+    - USB: serial: option: fix Quectel BG96 matching
+    - tty: Fix ->pgrp locking in tiocspgrp()
+    - tty: Fix ->session locking
+    - ALSA: hda/realtek: Fix bass speaker DAC assignment on Asus Zephyrus G14
+    - ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
+    - ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
+    - ALSA: hda/realtek - Add new codec supported for ALC897
+    - ALSA: hda/generic: Add option to enforce preferred_dacs pairs
+    - ftrace: Fix updating FTRACE_FL_TRAMP
+    - cifs: allow syscalls to be restarted in __smb_send_rqst()
+    - cifs: fix potential use-after-free in cifs_echo_request()
+    - i2c: imx: Don't generate STOP condition if arbitration has been lost
+    - thunderbolt: Fix use-after-free in remove_unplugged_switch()
+    - drm/i915/gt: Program mocs:63 for cache eviction on gen9
+    - scsi: mpt3sas: Fix ioctl timeout
+    - dm writecache: fix the maximum number of arguments
+    - powerpc/64s/powernv: Fix memory corruption when saving SLB entries on MCE
+    - genirq/irqdomain: Add an irq_create_mapping_affinity() function
+    - powerpc/pseries: Pass MSI affinity to irq_create_mapping()
+    - dm: fix bug with RCU locking in dm_blk_report_zones
+    - dm: remove invalid sparse __acquires and __releases annotations
+    - x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
+    - coredump: fix core_pattern parse error
+    - mm: list_lru: set shrinker map bit when child nr_items is not zero
+    - mm/swapfile: do not sleep with a spin lock held
+    - speakup: Reject setting the speakup line discipline outside of speakup
+    - i2c: imx: Fix reset of I2SR_IAL flag
+    - i2c: imx: Check for I2SR_IAL after every byte
+    - spi: bcm2835: Release the DMA channel if probe fails after dma_init
+    - iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
+    - tracing: Fix userstacktrace option for instances
+    - lib/syscall: fix syscall registers retrieval on 32-bit platforms
+    - can: af_can: can_rx_unregister(): remove WARN() statement from list
+      operation sanity check
+    - gfs2: check for empty rgrp tree in gfs2_ri_update
+    - netfilter: ipset: prevent uninit-value in hash_ip6_add
+    - tipc: fix a deadlock when flushing scheduled work
+    - ASoC: wm_adsp: fix error return code in wm_adsp_load()
+    - rtw88: debug: Fix uninitialized memory in debugfs code
+    - i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
+    - dm writecache: remove BUG() and fail gracefully instead
+    - Input: i8042 - fix error return code in i8042_setup_aux()
+    - netfilter: nf_tables: avoid false-postive lockdep splat
+    - netfilter: nftables_offload: set address type in control dissector
+    - x86/insn-eval: Use new for_each_insn_prefix() macro to loop over prefixes
+      bytes
+    - Linux 5.4.83
+  * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels
+    (LP: #1908529)
+    - [dep-8] Allow all hwe kernels
+  * failing ftrace self tests from 5.7+ onwards (LP: #1893024)
+    - SAUCE: Revert "selftests/ftrace: check for do_sys_openat2 in user-memory
+      test"
+  * selftests: test_vxlan_under_vrf: mute unnecessary error message
+    (LP: #1908342)
+    - selftests: test_vxlan_under_vrf: mute unnecessary error message
+  * Focal update: v5.4.82 upstream stable release (LP: #1908564)
+    - devlink: Hold rtnl lock while reading netdev attributes
+    - ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
+    - net/af_iucv: set correct sk_protocol for child sockets
+    - net/tls: missing received data after fast remote close
+    - net/tls: Protect from calling tls_dev_del for TLS RX twice
+    - rose: Fix Null pointer dereference in rose_send_frame()
+    - sock: set sk_err to ee_errno on dequeue from errq
+    - tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
+    - tun: honor IOCB_NOWAIT flag
+    - usbnet: ipheth: fix connectivity with iOS 14
+    - bonding: wait for sysfs kobject destruction before freeing struct slave
+    - staging/octeon: fix up merge error
+    - ima: extend boot_aggregate with kernel measurements
+    - sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
+    - netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
+    - ipv4: Fix tos mask in inet_rtm_getroute()
+    - dt-bindings: net: correct interrupt flags in examples
+    - chelsio/chtls: fix panic during unload reload chtls
+    - ibmvnic: Ensure that SCRQ entry reads are correctly ordered
+    - ibmvnic: Fix TX completion error handling
+    - inet_ecn: Fix endianness of checksum update when setting ECT(1)
+    - net: ip6_gre: set dev->hard_header_len when using header_ops
+    - net/x25: prevent a couple of overflows
+    - cxgb3: fix error return code in t3_sge_alloc_qset()
+    - net: pasemi: fix error return code in pasemi_mac_open()
+    - vxlan: fix error return code in __vxlan_dev_create()
+    - chelsio/chtls: fix a double free in chtls_setkey()
+    - net: mvpp2: Fix error return code in mvpp2_open()
+    - net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
+    - net: openvswitch: ensure LSE is pullable before reading it
+    - net/sched: act_mpls: ensure LSE is pullable before reading it
+    - net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
+    - net/mlx5: Fix wrong address reclaim when command interface is down
+    - ALSA: usb-audio: US16x08: fix value count for level meters
+    - Input: xpad - support Ardwiino Controllers
+    - tracing: Remove WARN_ON in start_thread()
+    - RDMA/i40iw: Address an mmap handler exploit in i40iw
+    - Linux 5.4.82
+  * Focal update: v5.4.81 upstream stable release (LP: #1908562)
+    - spi: bcm-qspi: Fix use-after-free on unbind
+    - spi: bcm2835: Fix use-after-free on unbind
+    - ipv4: use IS_ENABLED instead of ifdef
+    - netfilter: clear skb->next in NF_HOOK_LIST()
+    - btrfs: tree-checker: add missing return after error in root_item
+    - btrfs: tree-checker: add missing returns after data_ref alignment checks
+    - btrfs: don't access possibly stale fs_info data for printing duplicate
+      device
+    - btrfs: fix lockdep splat when reading qgroup config on mount
+    - wireless: Use linux/stddef.h instead of stddef.h
+    - smb3: Call cifs reconnect from demultiplex thread
+    - smb3: Avoid Mid pending list corruption
+    - smb3: Handle error case during offload read path
+    - cifs: fix a memleak with modefromsid
+    - KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
+    - KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
+    - KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
+    - KVM: x86: Fix split-irqchip vs interrupt injection window request
+    - trace: fix potenial dangerous pointer
+    - arm64: pgtable: Fix pte_accessible()
+    - arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
+    - HID: uclogic: Add ID for Trust Flex Design Tablet
+    - HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
+    - HID: cypress: Support Varmilo Keyboards' media hotkeys
+    - HID: add support for Sega Saturn
+    - Input: i8042 - allow insmod to succeed on devices without an i8042
+      controller
+    - HID: hid-sensor-hub: Fix issue with devices with no report ID
+    - staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
+    - HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
+    - dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
+    - x86/xen: don't unbind uninitialized lock_kicker_irq
+    - HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo
+      Edge
+    - HID: Add Logitech Dinovo Edge battery quirk
+    - proc: don't allow async path resolution of /proc/self components
+    - nvme: free sq/cq dbbuf pointers when dbbuf set fails
+    - vhost scsi: fix cmd completion race
+    - dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
+    - scsi: libiscsi: Fix NOP race condition
+    - scsi: target: iscsi: Fix cmd abort fabric stop race
+    - perf/x86: fix sysfs type mismatches
+    - xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
+    - net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
+    - bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
+    - ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
+    - phy: tegra: xusb: Fix dangling pointer on probe failure
+    - iwlwifi: mvm: write queue_sync_state only for sync
+    - batman-adv: set .owner to THIS_MODULE
+    - arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
+    - ARM: dts: dra76x: m_can: fix order of clocks
+    - scsi: ufs: Fix race between shutdown and runtime resume flow
+    - bnxt_en: fix error return code in bnxt_init_one()
+    - bnxt_en: fix error return code in bnxt_init_board()
+    - video: hyperv_fb: Fix the cache type when mapping the VRAM
+    - bnxt_en: Release PCI regions when DMA mask setup fails during probe.
+    - cxgb4: fix the panic caused by non smac rewrite
+    - s390/qeth: make af_iucv TX notification call more robust
+    - s390/qeth: fix af_iucv notification race
+    - s390/qeth: fix tear down of async TX buffers
+    - ibmvnic: fix call_netdevice_notifiers in do_reset
+    - ibmvnic: notify peers when failover and migration happen
+    - powerpc/64s: Fix allnoconfig build since uaccess flush
+    - IB/mthca: fix return value of error branch in mthca_init_cq()
+    - i40e: Fix removing driver while bare-metal VFs pass traffic
+    - nfc: s3fwrn5: use signed integer for parsing GPIO numbers
+    - net: ena: set initial DMA width to avoid intel iommu issue
+    - ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
+    - ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
+    - optee: add writeback to valid memory type
+    - arm64: tegra: Wrong AON HSP reg property size
+    - efivarfs: revert "fix memory leak in efivarfs_create()"
+    - efi: EFI_EARLYCON should depend on EFI
+    - can: gs_usb: fix endianess problem with candleLight firmware
+    - platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
+    - platform/x86: toshiba_acpi: Fix the wrong variable assignment
+    - RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
+    - RDMA/hns: Bugfix for memory window mtpt configuration
+    - can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from
+      request_threaded_irq()'s flags
+    - can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
+    - perf stat: Use proper cpu for shadow stats
+    - perf probe: Fix to die_entrypc() returns error correctly
+    - spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
+    - USB: core: Change %pK for __user pointers to %px
+    - usb: gadget: f_midi: Fix memleak in f_midi_alloc
+    - USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO
+      built-in usb-audio card
+    - usb: gadget: Fix memleak in gadgetfs_fill_super
+    - irqchip/exiu: Fix the index of fwspec for IRQ type
+    - x86/mce: Do not overwrite no_way_out if mce_end() fails
+    - x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
+    - x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
+    - x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
+    - USB: core: Fix regression in Hercules audio card
+    - ASoC: Intel: Skylake: Remove superfluous chip initialization
+    - ASoC: Intel: Skylake: Select hda configuration permissively
+    - ASoC: Intel: Skylake: Enable codec wakeup during chip init
+    - ASoC: Intel: Skylake: Shield against no-NHLT configurations
+    - ASoC: Intel: Allow for ROM init retry on CNL platforms
+    - ASoC: Intel: Skylake: Await purge request ack on CNL
+    - ASoC: Intel: Multiple I/O PCM format support for pipe
+    - ASoC: Intel: Skylake: Automatic DMIC format configuration according to
+      information from NHLT
+    - Linux 5.4.81
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - ah6: fix error return code in ah6_input()
+    - atm: nicstar: Unmap DMA on send error
+    - bnxt_en: read EEPROM A2h address using page 0
+    - devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
+    - Exempt multicast addresses from five-second neighbor lifetime
+    - inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
+    - ipv6: Fix error path to cancel the meseage
+    - lan743x: fix issue causing intermittent kernel log warnings
+    - lan743x: prevent entire kernel HANG on open, for some platforms
+    - mlxsw: core: Use variable timeout for EMAD retries
+    - net: b44: fix error return code in b44_init_one()
+    - net: bridge: add missing counters to ndo_get_stats64 callback
+    - net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
+    - net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
+    - net: Have netpoll bring-up DSA management interface
+    - netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
+    - netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
+    - net: lantiq: Wait for the GPHY firmware to be ready
+    - net/mlx4_core: Fix init_hca fields offset
+    - net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup
+    - net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
+    - net/tls: fix corrupted data in recvmsg
+    - net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
+    - page_frag: Recover from memory pressure
+    - qed: fix error return code in qed_iwarp_ll2_start()
+    - qlcnic: fix error return code in qlcnic_83xx_restart_hw()
+    - sctp: change to hold/put transport for proto_unreach_timer
+    - tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
+    - net/mlx5: Add handling of port type in rule deletion
+    - net/mlx5: Disable QoS when min_rates on all VFs are zero
+    - net: usb: qmi_wwan: Set DTR quirk for MR400
+    - net/ncsi: Fix netlink registration
+    - net: ftgmac100: Fix crash when removing driver
+    - pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
+    - scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
+    - selftests: kvm: Fix the segment descriptor layout to match the actual layout
+    - ACPI: button: Add DMI quirk for Medion Akoya E2228T
+    - arm64: errata: Fix handling of 1418040 with late CPU onlining
+    - arm64: psci: Avoid printing in cpu_psci_cpu_die()
+    - arm64: smp: Tell RCU about CPUs that fail to come online
+    - vfs: remove lockdep bogosity in __sb_start_write
+    - gfs2: fix possible reference leak in gfs2_check_blk_type
+    - hwmon: (pwm-fan) Fix RPM calculation
+    - arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
+    - arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
+    - arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
+    - Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
+    - ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet
+      PHY
+    - ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY
+    - Input: adxl34x - clean up a data type in adxl34x_probe()
+    - MIPS: export has_transparent_hugepage() for modules
+    - arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
+    - arm64: dts imx8mn: Remove non-existent USB OTG2
+    - arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
+    - swiotlb: using SIZE_MAX needs limits.h included
+    - arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point
+    - ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
+    - Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
+    - rfkill: Fix use-after-free in rfkill_resume()
+    - RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
+    - [Config] updateconfigs for INFINIBAND_VIRT_DMA
+    - RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
+    - perf lock: Don't free "lock_seq_stat" if read_count isn't zero
+    - tools, bpftool: Add missing close before bpftool net attach exit
+    - ip_tunnels: Set tunnel option flag when tunnel metadata is present
+    - can: af_can: prevent potential access of uninitialized member in can_rcv()
+    - can: af_can: prevent potential access of uninitialized member in canfd_rcv()
+    - can: dev: can_restart(): post buffer from the right context
+    - can: ti_hecc: Fix memleak in ti_hecc_probe
+    - can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to
+      can_put_echo_skb()
+    - can: peak_usb: fix potential integer overflow on shift of a int
+    - can: flexcan: fix failure handling of pm_runtime_get_sync()
+    - can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
+    - can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for
+      devm_regmap_init()
+    - can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
+    - can: m_can: m_can_handle_state_change(): fix state change
+    - can: m_can: m_can_class_free_dev(): introduce new function
+    - can: m_can: m_can_stop(): set device to software init mode before closing
+    - ASoC: qcom: lpass-platform: Fix memory leak
+    - selftests/bpf: Fix error return code in run_getsockopt_test()
+    - MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
+    - drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()
+    - net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
+    - bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
+    - bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
+    - can: kvaser_pciefd: Fix KCAN bittiming limits
+    - can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
+    - iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header
+    - iommu/vt-d: Avoid panic if iommu init fails in tboot system
+    - can: flexcan: flexcan_chip_start(): fix erroneous
+      flexcan_transceiver_enable() during bus-off recovery
+    - can: m_can: process interrupt only when not runtime suspended
+    - xfs: fix the minrecs logic when dealing with inode root child blocks
+    - xfs: strengthen rmap record flags checking
+    - xfs: return corresponding errcode if xfs_initialize_perag() fail
+    - regulator: ti-abb: Fix array out of bound read access on the first
+      transition
+    - fail_function: Remove a redundant mutex unlock
+    - xfs: revert "xfs: fix rmap key and record comparison functions"
+    - bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
+    - bpf, sockmap: On receive programs try to fast track SK_PASS ingress
+    - bpf, sockmap: Use truesize with sk_rmem_schedule()
+    - bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
+    - efi/x86: Free efi_pgd with free_pages()
+    - libfs: fix error cast of negative value in simple_attr_write()
+    - HID: logitech-hidpp: Add PID for MX Anywhere 2
+    - HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
+    - HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
+    - speakup: Do not let the line discipline be used several times
+    - ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
+    - ALSA: usb-audio: Add delay quirk for all Logitech USB devices
+    - ALSA: ctl: fix error path at adding user-defined element set
+    - ALSA: mixart: Fix mutex deadlock
+    - ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
+    - ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
+    - tty: serial: imx: fix potential deadlock
+    - tty: serial: imx: keep console clocks always on
+    - HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
+    - efivarfs: fix memory leak in efivarfs_create()
+    - staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids
+    - iio: light: fix kconfig dependency bug for VCNL4035
+    - ext4: fix bogus warning in ext4_update_dx_flag()
+    - iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
+    - iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-
+      mode
+    - iio: adc: mediatek: fix unset field
+    - spi: lpspi: Fix use-after-free on unbind
+    - spi: Introduce device-managed SPI controller allocation
+    - spi: npcm-fiu: Don't leak SPI master in probe error path
+    - spi: bcm2835aux: Fix use-after-free on unbind
+    - regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}
+    - regulator: fix memory leak with repeated set_machine_constraints()
+    - regulator: avoid resolve_supply() infinite recursion
+    - regulator: workaround self-referent regulators
+    - xtensa: fix TLBTEMP area placement
+    - xtensa: disable preemption around cache alias management calls
+    - mac80211: minstrel: remove deferred sampling code
+    - mac80211: minstrel: fix tx status processing corner case
+    - mac80211: free sta in sta_info_insert_finish() on errors
+    - s390/cpum_sf.c: fix file permission for cpum_sfb_size
+    - s390/dasd: fix null pointer dereference for ERP requests
+    - Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected
+    - drm/amd/display: Add missing pflip irq for dcn2.0
+    - drm/i915: Handle max_bpc==16
+    - mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel
+      controllers
+    - ptrace: Set PF_SUPERPRIV when checking capability
+    - seccomp: Set PF_SUPERPRIV when checking capability
+    - x86/microcode/intel: Check patch signature before saving microcode for early
+      loading
+    - mm: memcg/slab: fix root memcg vmstats
+    - mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
+    - mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
+    - sched/fair: Fix overutilized update in enqueue_task_fair()
+    - Linux 5.4.80
+  * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint
+    (LP: #1908335)
+    - Input: elan_i2c - add support for high resolution reports
+    - Input: elan_i2c - add new trackpoint report type 0x5F
+    - Input: elantech - fix protocol errors for some trackpoints in SMBus mode
+  * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200)
+    - SAUCE: rtw88: 8723de: let cpu enter c10
+  * [UBUNTU 21.04] s390/pci: vfio-pci mmio being disabled erroneously
+    (LP: #1907265)
+    - s390/pci: Mark all VFs as not implementing PCI_COMMAND_MEMORY
+  * Touchpad not detected on ByteSpeed C15B laptop (LP: #1906128)
+    - Input: i8042 - add ByteSpeed touchpad to noloop table
+  * Fix reading speed and duplex sysfs on igc device (LP: #1906851)
+    - SAUCE: igc: Report speed and duplex as unknown when device is runtime
+      suspended
+  * stack trace in kernel (LP: #1903596)
+    - net: napi: remove useless stack trace
+  * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work
+    (LP: #1906229)
+    - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
+    - PM: ACPI: Refresh wakeup device power configuration every time
+  * CVE-2020-27777
+    - [Config]: Set CONFIG_PPC_RTAS_FILTER
+  * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663)
+    - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - powerpc: Only include kup-radix.h for 64-bit Book3S
+    - MIPS: PCI: Fix MIPS build
+    - powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
+    - net: lantiq: Add locking for TX DMA channel
+    - Input: sunkbd - avoid use-after-free in teardown paths
+    - mac80211: always wind down STA state
+    - can: proc: can_remove_proc(): silence remove_proc_entry warning
+    - KVM: x86: clflushopt should be treated as a no-op by emulation
+    - ACPI: GED: fix -Wformat
+    - Linux 5.4.79
+  * focal/linux: 5.4.0-65.73 -proposed tracker (LP: #1912220)
+  * initramfs unpacking failed (LP: #1835660)
+    - SAUCE: lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Tue, 09 Feb 2021 10:54:34 -0700
+
+linux-gkeop-5.4 (5.4.0-1009.10~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1009.10~18.04.1 -proposed tracker
+    (LP: #1911324)
+
+  [ Ubuntu: 5.4.0-1009.10 ]
+
+  * focal/linux-gkeop: 5.4.0-1009.10 -proposed tracker (LP: #1911325)
+  * focal/linux: 5.4.0-63.71 -proposed tracker (LP: #1911333)
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+  * focal/linux: 5.4.0-62.70 -proposed tracker (LP: #1911144)
+  * CVE-2020-28374
+    - SAUCE: target: fix XCOPY NAA identifier lookup
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - update dkms package versions
+  * CVE-2021-1052 // CVE-2021-1053
+    - [Packaging] NVIDIA -- Add the NVIDIA 460 driver
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 18 Jan 2021 12:20:07 +0100
+
+linux-gkeop-5.4 (5.4.0-1008.9~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1008.9~18.04.1 -proposed tracker
+    (LP: #1907596)
+
+  [ Ubuntu: 5.4.0-1008.9 ]
+
+  * focal/linux-gkeop: 5.4.0-1008.9 -proposed tracker (LP: #1907597)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+  * focal/linux: 5.4.0-59.65 -proposed tracker (LP: #1907604)
+  * focal: selftests/bpf build broken: test_map_init.skel.h: No such file or
+    directory (LP: #1906866)
+    - SAUCE: Revert selftests/ "bpf: Zero-fill re-used per-cpu map element"
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 14 Dec 2020 16:04:32 +0100
+
+linux-gkeop-5.4 (5.4.0-1007.8~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1007.8~18.04.1 -proposed tracker
+    (LP: #1907382)
+
+  [ Ubuntu: 5.4.0-1007.8 ]
+
+  * focal/linux-gkeop: 5.4.0-1007.8 -proposed tracker (LP: #1907383)
+  * focal/linux: 5.4.0-58.64 -proposed tracker (LP: #1907390)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * raid10: discard leads to corrupted file system (LP: #1907262)
+    - Revert "dm raid: remove unnecessary discard limits for raid10"
+    - Revert "dm raid: fix discard limits for raid1 and raid10"
+    - Revert "md/raid10: improve discard request for far layout"
+    - Revert "md/raid10: improve raid10 discard request"
+    - Revert "md/raid10: pull codes that wait for blocked dev into one function"
+    - Revert "md/raid10: extend r10bio devs to raid disks"
+    - Revert "md: add md_submit_discard_bio() for submitting discard bio"
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 10 Dec 2020 16:08:12 +0100
+
+linux-gkeop-5.4 (5.4.0-1006.7~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1006.7~18.04.1 -proposed tracker
+    (LP: #1905916)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update update.conf
+
+  [ Ubuntu: 5.4.0-1006.7 ]
+
+  * focal/linux-gkeop: 5.4.0-1006.7 -proposed tracker (LP: #1905917)
+  * focal/linux: 5.4.0-57.63 -proposed tracker (LP: #1905924)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 02 Dec 2020 15:06:31 +0100
+
+linux-gkeop-5.4 (5.4.0-1005.6) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1005.6 -proposed tracker (LP: #1903173)
+
+  * Bionic update: upstream stable patchset 2020-09-30 (LP: #1897977)
+    - [Config] gke: updateconfigs for VGACON_SOFT_SCROLLBACK
+
+  [ Ubuntu: 5.4.0-55.61~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-55.61~18.04.1 -proposed tracker (LP: #1903174)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update update.conf
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+  * focal/linux: 5.4.0-55.61 -proposed tracker (LP: #1903175)
+  * Update kernel packaging to support forward porting kernels (LP: #1902957)
+    - [Debian] Update for leader included in BACKPORT_SUFFIX
+  * Avoid double newline when running insertchanges (LP: #1903293)
+    - [Packaging] insertchanges: avoid double newline
+  * EFI: Fails when BootCurrent entry does not exist (LP: #1899993)
+    - efivarfs: Replace invalid slashes with exclamation marks in dentries.
+  * CVE-2020-14351
+    - perf/core: Fix race in the perf_mmap_close() function
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull codes that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: fix discard limits for raid1 and raid10
+    - dm raid: remove unnecessary discard limits for raid10
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: drop unnecessary offset_in_page in extent buffer helpers
+    - btrfs: extent_io: do extra check for extent buffer read write functions
+    - btrfs: extent-tree: kill BUG_ON() in __btrfs_free_extent()
+    - btrfs: extent-tree: kill the BUG_ON() in insert_inline_extent_backref()
+    - btrfs: ctree: check key order before merging tree blocks
+  * Ethernet no link lights after reboot (Intel i225-v 2.5G) (LP: #1902578)
+    - igc: Add PHY power management control
+  * Undetected Data corruption in MPI workloads that use VSX for reductions on
+    POWER9 DD2.1 systems (LP: #1902694)
+    - powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation
+    - selftests/powerpc: Make alignment handler test P9N DD2.1 vector CI load
+      workaround
+  * [20.04 FEAT] Support/enhancement of NVMe IPL (LP: #1902179)
+    - s390: nvme ipl
+    - s390: nvme reipl
+    - s390/ipl: support NVMe IPL kernel parameters
+  * uvcvideo: add mapping for HEVC payloads (LP: #1895803)
+    - media: uvcvideo: Add mapping for HEVC payloads
+  * Focal update: v5.4.73 upstream stable release (LP: #1902115)
+    - ibmveth: Switch order of ibmveth_helper calls.
+    - ibmveth: Identify ingress large send packets.
+    - ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
+    - mlx4: handle non-napi callers to napi_poll
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fix pos incrementment in ipv6_route_seq_next
+    - net/smc: fix valid DMBE buffer sizes
+    - net/tls: sendfile fails with ktls offload
+    - net: usb: qmi_wwan: add Cellient MPL200 card
+    - tipc: fix the skb_unshare() in tipc_buf_append()
+    - socket: fix option SO_TIMESTAMPING_NEW
+    - can: m_can_platform: don't call m_can_class_suspend in runtime suspend
+    - can: j1935: j1939_tp_tx_dat_new(): fix missing initialization of skbcnt
+    - net: j1939: j1939_session_fresh_new(): fix missing initialization of skbcnt
+    - net/ipv4: always honour route mtu during forwarding
+    - net_sched: remove a redundant goto chain check
+    - r8169: fix data corruption issue on RTL8402
+    - cxgb4: handle 4-tuple PEDIT to NAT mode translation
+    - binder: fix UAF when releasing todo list
+    - ALSA: bebob: potential info leak in hwdep_read()
+    - ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
+    - nvme-pci: disable the write zeros command for Intel 600P/P3100
+    - chelsio/chtls: fix socket lock
+    - chelsio/chtls: correct netdevice for vlan interface
+    - chelsio/chtls: correct function return and return type
+    - ibmvnic: save changed mac address to adapter->mac_addr
+    - net: ftgmac100: Fix Aspeed ast2600 TX hang issue
+    - net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
+    - net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling
+      ether_setup
+    - net: Properly typecast int values to set sk_max_pacing_rate
+    - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
+    - nexthop: Fix performance regression in nexthop deletion
+    - nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in
+      nfc_genl_fw_download()
+    - r8169: fix operation under forced interrupt threading
+    - selftests: forwarding: Add missing 'rp_filter' configuration
+    - tcp: fix to update snd_wl1 in bulk receiver fast path
+    - icmp: randomize the global rate limiter
+    - ALSA: hda/realtek - set mic to auto detect on a HP AIO machine
+    - ALSA: hda/realtek - Add mute Led support for HP Elitebook 845 G7
+    - ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
+    - cifs: remove bogus debug code
+    - cifs: Return the error from crypt_message when enc/dec key not found.
+    - SMB3: Resolve data corruption of TCP server info fields
+    - KVM: nVMX: Reset the segment cache when stuffing guest segs
+    - KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails
+    - KVM: x86/mmu: Commit zap of remaining invalid pages when recovering lpages
+    - KVM: SVM: Initialize prev_ga_tag before use
+    - ima: Don't ignore errors from crypto_shash_update()
+    - crypto: algif_aead - Do not set MAY_BACKLOG on the async path
+    - crypto: caam/qi - add fallback for XTS with more than 8B IV
+    - EDAC/i5100: Fix error handling order in i5100_init_one()
+    - EDAC/aspeed: Fix handling of platform_get_irq() error
+    - EDAC/ti: Fix handling of platform_get_irq() error
+    - perf/x86/intel/ds: Fix x86_pmu_stop warning for large PEBS
+    - x86/fpu: Allow multiple bits in clearcpuid= parameter
+    - drivers/perf: xgene_pmu: Fix uninitialized resource struct
+    - drivers/perf: thunderx2_pmu: Fix memory resource error handling
+    - sched/fair: Fix wrong cpu selecting from isolated domain
+    - perf/x86/intel/uncore: Update Ice Lake uncore units
+    - perf/x86/intel/uncore: Reduce the number of CBOX counters
+    - x86/nmi: Fix nmi_handle() duration miscalculation
+    - x86/events/amd/iommu: Fix sizeof mismatch
+    - crypto: algif_skcipher - EBUSY on aio should be an error
+    - crypto: mediatek - Fix wrong return value in mtk_desc_ring_alloc()
+    - crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
+    - crypto: picoxcell - Fix potential race condition bug
+    - media: tuner-simple: fix regression in simple_set_radio_freq
+    - media: Revert "media: exynos4-is: Add missed check for
+      pinctrl_lookup_state()"
+    - media: ov5640: Correct Bit Div register in clock tree diagram
+    - media: m5mols: Check function pointer in m5mols_sensor_power
+    - media: uvcvideo: Set media controller entity functions
+    - media: uvcvideo: Silence shift-out-of-bounds warning
+    - media: staging/intel-ipu3: css: Correctly reset some memory
+    - media: omap3isp: Fix memleak in isp_probe
+    - media: i2c: ov5640: Remain in power down for DVP mode unless streaming
+    - media: i2c: ov5640: Separate out mipi configuration from s_power
+    - media: i2c: ov5640: Enable data pins on poweron for DVP mode
+    - media: rcar_drif: Fix fwnode reference leak when parsing DT
+    - media: rcar_drif: Allocate v4l2_async_subdev dynamically
+    - media: rcar-csi2: Allocate v4l2_async_subdev dynamically
+    - crypto: omap-sham - fix digcnt register handling with export/import
+    - hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61}
+    - cypto: mediatek - fix leaks in mtk_desc_ring_alloc
+    - media: mx2_emmaprp: Fix memleak in emmaprp_probe
+    - media: tc358743: initialize variable
+    - media: tc358743: cleanup tc358743_cec_isr
+    - media: rcar-vin: Fix a reference count leak.
+    - media: rockchip/rga: Fix a reference count leak.
+    - media: platform: fcp: Fix a reference count leak.
+    - media: camss: Fix a reference count leak.
+    - media: s5p-mfc: Fix a reference count leak
+    - media: stm32-dcmi: Fix a reference count leak
+    - media: ti-vpe: Fix a missing check and reference count leak
+    - regulator: resolve supply after creating regulator
+    - pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
+    - spi: spi-s3c64xx: swap s3c64xx_spi_set_cs() and s3c64xx_enable_datapath()
+    - spi: spi-s3c64xx: Check return values
+    - blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
+    - ath10k: provide survey info as accumulated data
+    - drm/vkms: fix xrgb on compute crc
+    - Bluetooth: hci_uart: Cancel init work before unregistering
+    - drm/amd/display: Fix wrong return value in dm_update_plane_state()
+    - drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel
+    - ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
+    - ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
+    - ath10k: Fix the size used in a 'dma_free_coherent()' call in an error
+      handling path
+    - wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
+    - ASoC: qcom: lpass-platform: fix memory leak
+    - ASoC: qcom: lpass-cpu: fix concurrency issue
+    - brcmfmac: check ndev pointer
+    - mwifiex: Do not use GFP_KERNEL in atomic context
+    - staging: rtl8192u: Do not use GFP_KERNEL in atomic context
+    - drm/gma500: fix error check
+    - scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
+    - scsi: qla2xxx: Fix wrong return value in qlt_chk_unresolv_exchg()
+    - scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
+    - scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
+    - backlight: sky81452-backlight: Fix refcount imbalance on error
+    - staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()
+    - VMCI: check return value of get_user_pages_fast() for errors
+    - mm/error_inject: Fix allow_error_inject function signatures.
+    - drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
+    - drm/crc-debugfs: Fix memleak in crc_control_write
+    - binder: Remove bogus warning on failed same-process transaction
+    - tty: serial: earlycon dependency
+    - pty: do tty_flip_buffer_push without port->lock in pty_write
+    - pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()
+    - pwm: lpss: Add range limit check for the base_unit register value
+    - drivers/virt/fsl_hypervisor: Fix error handling path
+    - video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
+    - video: fbdev: sis: fix null ptr dereference
+    - video: fbdev: radeon: Fix memleak in radeonfb_pci_register
+    - ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
+    - HID: roccat: add bounds checking in kone_sysfs_write_settings()
+    - drm/msm: Avoid div-by-zero in dpu_crtc_atomic_check()
+    - drm/panfrost: Ensure GPU quirks are always initialised
+    - iomap: Clear page error before beginning a write
+    - pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
+    - pinctrl: mcp23s08: Fix mcp23x17 precious range
+    - net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
+    - scsi: mpt3sas: Fix sync irqs
+    - net: stmmac: use netif_tx_start|stop_all_queues() function
+    - cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
+    - drm: mxsfb: check framebuffer pitch
+    - coresight: etm4x: Handle unreachable sink in perf mode
+    - xhci: don't create endpoint debugfs entry before ring buffer is set.
+    - net: dsa: rtl8366: Check validity of passed VLANs
+    - net: dsa: rtl8366: Refactor VLAN/PVID init
+    - net: dsa: rtl8366: Skip PVID setting if not requested
+    - net: wilc1000: clean up resource in error path of init mon interface
+    - ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
+    - net: dsa: rtl8366rb: Support all 4096 VLANs
+    - spi: omap2-mcspi: Improve performance waiting for CHSTAT
+    - ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
+    - dmaengine: dmatest: Check list for emptiness before access its last entry
+    - misc: mic: scif: Fix error handling path
+    - ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
+    - usb: dwc2: Fix parameter type in function pointer prototype
+    - quota: clear padding in v2r1_mem2diskdqb()
+    - slimbus: core: check get_addr before removing laddr ida
+    - slimbus: core: do not enter to clock pause mode in core
+    - slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback
+    - ASoC: fsl_sai: Instantiate snd_soc_dai_driver
+    - HID: hid-input: fix stylus battery reporting
+    - nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell()
+    - nl80211: fix OBSS PD min and max offset validation
+    - coresight: etm: perf: Fix warning caused by etm_setup_aux failure
+    - ibmvnic: set up 200GBPS speed
+    - qtnfmac: fix resource leaks on unsupported iftype error return path
+    - iio: adc: stm32-adc: fix runtime autosuspend delay when slow polling
+    - net: enic: Cure the enic api locking trainwreck
+    - mfd: sm501: Fix leaks in probe()
+    - iwlwifi: mvm: split a print to avoid a WARNING in ROC
+    - usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
+    - usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
+    - nl80211: fix non-split wiphy information
+    - usb: dwc2: Fix INTR OUT transfers in DDMA mode.
+    - scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
+    - scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
+    - ipmi_si: Fix wrong return value in try_smi_init()
+    - platform/x86: mlx-platform: Remove PSU EEPROM configuration
+    - mwifiex: fix double free
+    - ipvs: clear skb->tstamp in forwarding path
+    - net: korina: fix kfree of rx/tx descriptor array
+    - netfilter: nf_log: missing vlan offload tag and proto
+    - mm/swapfile.c: fix potential memory leak in sys_swapon
+    - mm/memcg: fix device private memcg accounting
+    - mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
+    - fs: fix NULL dereference due to data race in prepend_path()
+    - selftests/ftrace: Change synthetic event name for inter-event-combined test
+    - i3c: master add i3c_master_attach_boardinfo to preserve boardinfo
+    - IB/mlx4: Fix starvation in paravirt mux/demux
+    - IB/mlx4: Adjust delayed work when a dup is observed
+    - powerpc/pseries: Fix missing of_node_put() in rng_init()
+    - powerpc/icp-hv: Fix missing of_node_put() in success path
+    - RDMA/ucma: Fix locking for ctx->events_reported
+    - RDMA/ucma: Add missing locking around rdma_leave_multicast()
+    - mtd: lpddr: fix excessive stack usage with clang
+    - RDMA/hns: Add a check for current state before modifying QP
+    - RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
+    - powerpc/pseries: explicitly reschedule during drmem_lmb list traversal
+    - pseries/drmem: don't cache node id in drmem_lmb struct
+    - RDMA/mlx5: Fix potential race between destroy and CQE poll
+    - mtd: mtdoops: Don't write panic data twice
+    - ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
+    - arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
+    - ida: Free allocated bitmap in error path
+    - xfs: limit entries returned when counting fsmap records
+    - xfs: fix deadlock and streamline xfs_getfsmap performance
+    - xfs: fix high key handling in the rt allocator's query_range function
+    - RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page
+      boundary
+    - RDMA/umem: Prevent small pages from being returned by
+      ib_umem_find_best_pgsz()
+    - RDMA/qedr: Fix qp structure memory leak
+    - RDMA/qedr: Fix use of uninitialized field
+    - RDMA/qedr: Fix return code if accept is called on a destroyed qp
+    - RDMA/qedr: Fix inline size returned for iWARP
+    - powerpc/book3s64/hash/4k: Support large linear mapping range with 4K
+    - powerpc/tau: Use appropriate temperature sample interval
+    - powerpc/tau: Convert from timer to workqueue
+    - powerpc/tau: Remove duplicated set_thresholds() call
+    - powerpc/tau: Check processor type before enabling TAU interrupt
+    - powerpc/tau: Disable TAU between measurements
+    - powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
+    - RDMA/cma: Remove dead code for kernel rdmacm multicast
+    - RDMA/cma: Consolidate the destruction of a cma_multicast in one place
+    - perf intel-pt: Fix "context_switch event has no tid" error
+    - RDMA/hns: Set the unsupported wr opcode
+    - RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
+    - i40iw: Add support to make destroy QP synchronous
+    - perf stat: Skip duration_time in setup_system_wide
+    - RDMA/hns: Fix the wrong value of rnr_retry when querying qp
+    - RDMA/hns: Fix missing sq_sig_type when querying QP
+    - mtd: rawnand: vf610: disable clk on error handling path in probe
+    - mtd: spinand: gigadevice: Only one dummy byte in QUADIO
+    - mtd: spinand: gigadevice: Add QE Bit
+    - kdb: Fix pager search for multi-line strings
+    - overflow: Include header file with SIZE_MAX declaration
+    - RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces
+    - powerpc/perf: Exclude pmc5/6 from the irrelevant PMU group constraints
+    - powerpc/perf/hv-gpci: Fix starting index value
+    - i3c: master: Fix error return in cdns_i3c_master_probe()
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
+    - IB/rdmavt: Fix sizeof mismatch
+    - RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
+    - maiblox: mediatek: Fix handling of platform_get_irq() error
+    - selftests/powerpc: Fix eeh-basic.sh exit codes
+    - f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
+    - RDMA/rxe: Handle skb_clone() failure in rxe_recv.c
+    - mm/page_owner: change split_page_owner to take a count
+    - lib/crc32.c: fix trivial typo in preprocessor condition
+    - ramfs: fix nommu mmap with gaps in the page cache
+    - rapidio: fix error handling path
+    - rapidio: fix the missed put_device() for rio_mport_add_riodev
+    - mailbox: avoid timer start from callback
+    - i2c: rcar: Auto select RESET_CONTROLLER
+    - clk: meson: g12a: mark fclk_div2 as critical
+    - PCI: aardvark: Check for errors from pci_bridge_emul_init() call
+    - PCI: iproc: Set affinity mask on MSI interrupts
+    - rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
+    - PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY
+    - vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn
+    - clk: qcom: gcc-sdm660: Fix wrong parent_map
+    - clk: keystone: sci-clk: fix parsing assigned-clock data during probe
+    - pwm: img: Fix null pointer access in probe
+    - clk: rockchip: Initialize hw to error to avoid undefined behavior
+    - clk: mediatek: add UART0 clock support
+    - module: statically initialize init section freeing data
+    - clk: at91: clk-main: update key before writing AT91_CKGR_MOR
+    - clk: bcm2835: add missing release if devm_clk_hw_register fails
+    - watchdog: Fix memleak in watchdog_cdev_register
+    - watchdog: Use put_device on error
+    - watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3
+    - svcrdma: fix bounce buffers for unaligned offsets and multiple pages
+    - ext4: limit entries returned when counting fsmap records
+    - vfio/pci: Clear token on bypass registration failure
+    - vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
+    - clk: imx8mq: Fix usdhc parents order
+    - SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
+    - Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
+    - Input: stmfts - fix a & vs && typo
+    - Input: ep93xx_keypad - fix handling of platform_get_irq() error
+    - Input: omap4-keypad - fix handling of platform_get_irq() error
+    - Input: twl4030_keypad - fix handling of platform_get_irq() error
+    - Input: sun4i-ps2 - fix handling of platform_get_irq() error
+    - KVM: x86: emulating RDPID failure shall return #UD rather than #GP
+    - scsi: bfa: Fix error return in bfad_pci_init()
+    - netfilter: conntrack: connection timeout after re-register
+    - netfilter: ebtables: Fixes dropping of small packets in bridge nat
+    - netfilter: nf_fwd_netdev: clear timestamp in forwarding path
+    - arm64: dts: meson: vim3: correct led polarity
+    - ARM: dts: imx6sl: fix rng node
+    - ARM: at91: pm: of_node_put() after its usage
+    - ARM: s3c24xx: fix mmc gpio lookup tables
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
+    - arm64: dts: allwinner: h5: remove Mali GPU PMU module
+    - memory: omap-gpmc: Fix a couple off by ones
+    - memory: omap-gpmc: Fix build error without CONFIG_OF
+    - memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
+    - arm64: dts: imx8mq: Add missing interrupts to GPC
+    - arm64: dts: qcom: msm8916: Remove one more thermal trip point unit name
+    - arm64: dts: qcom: pm8916: Remove invalid reg size from wcd_codec
+    - arm64: dts: qcom: msm8916: Fix MDP/DSI interrupts
+    - arm64: dts: renesas: r8a77990: Fix MSIOF1 DMA channels
+    - arm64: dts: renesas: r8a774c0: Fix MSIOF1 DMA channels
+    - arm64: dts: actions: limit address range for pinctrl node
+    - ARM: dts: owl-s500: Fix incorrect PPI interrupt specifiers
+    - soc: fsl: qbman: Fix return value on success
+    - ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
+    - arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
+    - ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
+    - lightnvm: fix out-of-bounds write to array devices->info[]
+    - powerpc/powernv/dump: Fix race while processing OPAL dump
+    - powerpc/pseries: Avoid using addr_to_pfn in real mode
+    - nvmet: fix uninitialized work for zero kato
+    - NTB: hw: amd: fix an issue about leak system resources
+    - sched/features: Fix !CONFIG_JUMP_LABEL case
+    - perf: correct SNOOPX field offset
+    - i2c: core: Restore acpi_walk_dep_device_list() getting called after
+      registering the ACPI i2c devs
+    - md/bitmap: fix memory leak of temporary bitmap
+    - block: ratelimit handle_bad_sector() message
+    - crypto: ccp - fix error handling
+    - x86/asm: Replace __force_order with a memory clobber
+    - x86/mce: Add Skylake quirk for patrol scrub reported errors
+    - media: firewire: fix memory leak
+    - media: ati_remote: sanity check for both endpoints
+    - media: st-delta: Fix reference count leak in delta_run_work
+    - media: sti: Fix reference count leaks
+    - media: exynos4-is: Fix several reference count leaks due to
+      pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak
+    - media: vsp1: Fix runtime PM imbalance on error
+    - media: platform: s3c-camif: Fix runtime PM imbalance on error
+    - media: platform: sti: hva: Fix runtime PM imbalance on error
+    - media: bdisp: Fix runtime PM imbalance on error
+    - media: media/pci: prevent memory leak in bttv_probe
+    - x86/mce: Make mce_rdmsrl() panic on an inaccessible MSR
+    - media: uvcvideo: Ensure all probed info is returned to v4l2
+    - mmc: sdio: Check for CISTPL_VERS_1 buffer size
+    - media: saa7134: avoid a shift overflow
+    - media: venus: fixes for list corruption
+    - fs: dlm: fix configfs memory leak
+    - media: venus: core: Fix runtime PM imbalance in venus_probe
+    - ntfs: add check for mft record size in superblock
+    - ip_gre: set dev->hard_header_len and dev->needed_headroom properly
+    - mac80211: handle lack of sband->bitrates in rates
+    - PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
+    - scsi: mvumi: Fix error return in mvumi_io_attach()
+    - scsi: target: core: Add CONTROL field for trace events
+    - mic: vop: copy data to kernel space then write to io memory
+    - misc: vop: add round_up(x,4) for vring_size to avoid kernel panic
+    - usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc
+    - usb: gadget: function: printer: fix use-after-free in __lock_acquire
+    - udf: Limit sparing table size
+    - udf: Avoid accessing uninitialized data on failed inode read
+    - rtw88: increse the size of rx buffer size
+    - USB: cdc-acm: handle broken union descriptors
+    - usb: dwc3: simple: add support for Hikey 970
+    - can: flexcan: flexcan_chip_stop(): add error handling and propagate error
+      value
+    - ath9k: hif_usb: fix race condition between usb_get_urb() and
+      usb_kill_anchored_urbs()
+    - drm/panfrost: add amlogic reset quirk callback
+    - bpf: Limit caller's stack depth 256 for subprogs with tailcalls
+    - misc: rtsx: Fix memory leak in rtsx_pci_probe
+    - reiserfs: only call unlock_new_inode() if I_NEW
+    - opp: Prevent memory leak in dev_pm_opp_attach_genpd()
+    - xfs: make sure the rt allocator doesn't run off the end
+    - usb: ohci: Default to per-port over-current protection
+    - Bluetooth: Only mark socket zapped after unlocking
+    - drm/msm/a6xx: fix a potential overflow issue
+    - iomap: fix WARN_ON_ONCE() from unprivileged users
+    - scsi: ibmvfc: Fix error return in ibmvfc_probe()
+    - scsi: qla2xxx: Warn if done() or free() are called on an already freed srb
+    - selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
+    - brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
+    - rtl8xxxu: prevent potential memory leak
+    - Fix use after free in get_capset_info callback.
+    - HID: ite: Add USB id match for Acer One S1003 keyboard dock
+    - scsi: qedf: Return SUCCESS if stale rport is encountered
+    - scsi: qedi: Protect active command list to avoid list corruption
+    - scsi: qedi: Fix list_del corruption while removing active I/O
+    - fbmem: add margin check to fb_check_caps()
+    - tty: ipwireless: fix error handling
+    - Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb
+    - ipvs: Fix uninit-value in do_ip_vs_set_ctl()
+    - reiserfs: Fix memory leak in reiserfs_parse_options()
+    - mwifiex: don't call del_timer_sync() on uninitialized timer
+    - ALSA: hda/ca0132 - Add AE-7 microphone selection commands.
+    - ALSA: hda/ca0132 - Add new quirk ID for SoundBlaster AE-7.
+    - scsi: smartpqi: Avoid crashing kernel for controller issues
+    - brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
+    - usb: core: Solve race condition in anchor cleanup functions
+    - scsi: ufs: ufs-qcom: Fix race conditions caused by ufs_qcom_testbus_config()
+    - dmaengine: dw: Add DMA-channels mask cell support
+    - dmaengine: dw: Activate FIFO-mode for memory peripherals only
+    - ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
+    - net: korina: cast KSEG0 address to pointer in kfree
+    - s390/qeth: don't let HW override the configured port role
+    - tty: serial: lpuart: fix lpuart32_write usage
+    - tty: serial: fsl_lpuart: fix lpuart32_poll_get_char
+    - usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
+    - USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
+    - usb: cdns3: gadget: free interrupt after gadget has deleted
+    - eeprom: at25: set minimum read/write access stride to 1
+    - usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
+    - Linux 5.4.73
+  * Focal update: v5.4.72 upstream stable release (LP: #1902111)
+    - perf cs-etm: Move definition of 'traceid_list' global variable from header
+      file
+    - btrfs: don't pass system_chunk into can_overcommit
+    - btrfs: take overcommit into account in inc_block_group_ro
+    - ARM: 8939/1: kbuild: use correct nm executable
+    - ACPI: Always build evged in
+    - Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
+    - Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
+    - Bluetooth: Disconnect if E0 is used for Level 4
+    - media: usbtv: Fix refcounting mixup
+    - USB: serial: option: add Cellient MPL200 card
+    - USB: serial: option: Add Telit FT980-KS composition
+    - staging: comedi: check validity of wMaxPacketSize of usb endpoints found
+    - USB: serial: pl2303: add device-id for HP GC device
+    - USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
+    - reiserfs: Initialize inode keys properly
+    - reiserfs: Fix oops during mount
+    - xen/events: don't use chip_data for legacy IRQs
+    - crypto: bcm - Verify GCM/CCM key length in setkey
+    - crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
+    - Linux 5.4.72
+  * Focal update: v5.4.71 upstream stable release (LP: #1902110)
+    - fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
+    - Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
+    - fbcon: Fix global-out-of-bounds read in fbcon_get_font()
+    - Revert "ravb: Fixed to be able to unload modules"
+    - io_uring: Fix resource leaking when kill the process
+    - io_uring: Fix missing smp_mb() in io_cancel_async_work()
+    - io_uring: Fix remove irrelevant req from the task_list
+    - io_uring: Fix double list add in io_queue_async_work()
+    - net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
+    - drm/nouveau/mem: guard against NULL pointer access in mem_del
+    - vhost: Don't call access_ok() when using IOTLB
+    - vhost: Use vhost_get_used_size() in vhost_vring_set_addr()
+    - usermodehelper: reset umask to default before executing user process
+    - Platform: OLPC: Fix memleak in olpc_ec_probe
+    - platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP
+      Pavilion 11 x360
+    - platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
+    - bpf: Fix sysfs export of empty BTF section
+    - bpf: Prevent .BTF section elimination
+    - platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE
+      reporting
+    - platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse
+    - driver core: Fix probe_count imbalance in really_probe()
+    - perf test session topology: Fix data path
+    - perf top: Fix stdio interface input handling with glibc 2.28+
+    - i2c: i801: Exclude device from suspend direct complete optimization
+    - arm64: dts: stratix10: add status to qspi dts node
+    - Btrfs: send, allow clone operations within the same file
+    - Btrfs: send, fix emission of invalid clone operations within the same file
+    - btrfs: volumes: Use more straightforward way to calculate map length
+    - btrfs: Ensure we trim ranges across block group boundary
+    - btrfs: fix RWF_NOWAIT write not failling when we need to cow
+    - btrfs: allow btrfs_truncate_block() to fallback to nocow for data space
+      reservation
+    - nvme-core: put ctrl ref when module ref get fail
+    - macsec: avoid use-after-free in macsec_handle_frame()
+    - mm/khugepaged: fix filemap page_to_pgoff(page) != offset
+    - net: introduce helper sendpage_ok() in include/linux/net.h
+    - tcp: use sendpage_ok() to detect misused .sendpage
+    - nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
+    - xfrmi: drop ignore_df check before updating pmtu
+    - cifs: Fix incomplete memory allocation on setxattr path
+    - i2c: meson: fix clock setting overwrite
+    - i2c: meson: fixup rate calculation with filter delay
+    - i2c: owl: Clear NACK and BUS error bits
+    - sctp: fix sctp_auth_init_hmacs() error path
+    - team: set dev->needed_headroom in team_setup_by_port()
+    - net: team: fix memory leak in __team_options_register
+    - openvswitch: handle DNAT tuple collision
+    - drm/amdgpu: prevent double kfree ttm->sg
+    - iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
+    - xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
+    - xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
+    - xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
+    - xfrm: clone whole liftime_cur structure in xfrm_do_migrate
+    - net: stmmac: removed enabling eee in EEE set callback
+    - platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP
+    - xfrm: Use correct address family in xfrm_state_find
+    - iavf: use generic power management
+    - iavf: Fix incorrect adapter get in iavf_resume
+    - net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop
+    - bonding: set dev->needed_headroom in bond_setup_by_slave()
+    - mdio: fix mdio-thunder.c dependency & build error
+    - mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path
+    - r8169: fix RTL8168f/RTL8411 EPHY config
+    - net: usb: ax88179_178a: fix missing stop entry in driver_info
+    - virtio-net: don't disable guest csum when disable LRO
+    - net/mlx5: Avoid possible free of command entry while timeout comp handler
+    - net/mlx5: Fix request_irqs error flow
+    - net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU
+    - net/mlx5e: Fix VLAN cleanup flow
+    - net/mlx5e: Fix VLAN create flow
+    - rxrpc: Fix rxkad token xdr encoding
+    - rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
+    - rxrpc: Fix some missing _bh annotations on locking conn->state_lock
+    - rxrpc: The server keyring isn't network-namespaced
+    - rxrpc: Fix server keyring leak
+    - perf: Fix task_function_call() error handling
+    - mmc: core: don't set limits.discard_granularity as 0
+    - mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected
+      by khugepaged
+    - tcp: fix receive window update in tcp_add_backlog()
+    - net/core: check length before updating Ethertype in skb_mpls_{push,pop}
+    - net/tls: race causes kernel panic
+    - net/mlx5e: Fix driver's declaration to support GRE offload
+    - Input: ati_remote2 - add missing newlines when printing module parameters
+    - net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
+    - net_sched: defer tcf_idr_insert() in tcf_action_init_1()
+    - net_sched: commit action insertions together
+    - Linux 5.4.71
+  * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL:
+    can't add fou port 7777, skipping test" (LP: #1891421)
+    - selftests: rtnetlink: load fou module for kci_test_encap_fou() test
+  * alsa/hda/realtek - The front Mic on a HP machine doesn't work (LP: #1899508)
+    - ALSA: hda/realtek - The front Mic on a HP machine doesn't work
+  * Enable brightness control on HP DreamColor panel (LP: #1898865)
+    - drm/i915/dpcd_bl: Unbreak enable_dpcd_backlight modparam
+    - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD
+      quirk
+    - SAUCE: drm/dp: HP DreamColor panel brigntness fix
+  * Fix non-working Intel NVMe after S3 (LP: #1900847)
+    - SAUCE: PCI: Enable ACS quirk on all CML root ports
+  * bcache: Issues with large IO wait in bch_mca_scan() when shrinker is enabled
+    (LP: #1898786)
+    - bcache: remove member accessed from struct btree
+    - bcache: reap c->btree_cache_freeable from the tail in bch_mca_scan()
+    - bcache: reap from tail of c->btree_cache in bch_mca_scan()
+  * Improve descriptions for XFAIL cases in kselftests/net/psock_snd
+    (LP: #1900088)
+    - selftests/net: improve descriptions for XFAIL cases in psock_snd.sh
+  * ceph: fix inode number handling on arches with 32-bit ino_t (LP: #1899582)
+    - ceph: fix inode number handling on arches with 32-bit ino_t
+  * Fix system reboot when disconnecting WiFi (LP: #1899726)
+    - iwlwifi: msix: limit max RX queues for 9000 family
+  * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586)
+    - ALSA: hda: fix jack detection with Realtek codecs when in D3
+  * Focal update: v5.4.70 upstream stable release (LP: #1900632)
+    - btrfs: fix filesystem corruption after a device replace
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS
+      models
+    - USB: gadget: f_ncm: Fix NDP16 datagram validation
+    - gpio: siox: explicitly support only threaded irqs
+    - gpio: mockup: fix resource leak in error path
+    - gpio: tc35894: fix up tc35894 interrupt configuration
+    - clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
+    - vsock/virtio: add transport parameter to the
+      virtio_transport_reset_no_sock()
+    - net: virtio_vsock: Enhance connection semantics
+    - xfs: trim IO to found COW extent limit
+    - Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
+    - iio: adc: qcom-spmi-adc5: fix driver name
+    - ftrace: Move RCU is watching check after recursion check
+    - memstick: Skip allocating card when removing host
+    - drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
+    - clocksource/drivers/timer-gx6605s: Fixup counter reload
+    - libbpf: Remove arch-specific include path in Makefile
+    - drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
+    - drm/sun4i: mixer: Extend regmap max_register
+    - net: dec: de2104x: Increase receive ring size for Tulip
+    - rndis_host: increase sleep time in the query-response loop
+    - nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
+    - fuse: fix the ->direct_IO() treatment of iov_iter
+    - drivers/net/wan/lapbether: Make skb->protocol consistent with the header
+    - drivers/net/wan/hdlc: Set skb->protocol before transmitting
+    - mac80211: Fix radiotap header channel flag for 6GHz band
+    - mac80211: do not allow bigger VHT MPDUs than the hardware supports
+    - tracing: Make the space reserved for the pid wider
+    - tools/io_uring: fix compile breakage
+    - spi: fsl-espi: Only process interrupts for expected events
+    - nvme-pci: fix NULL req in completion handler
+    - nvme-fc: fail new connections to a deleted host or remote port
+    - gpio: sprd: Clear interrupt when setting the type as edge
+    - phy: ti: am654: Fix a leak in serdes_am654_probe()
+    - pinctrl: mvebu: Fix i2c sda definition for 98DX3236
+    - nfs: Fix security label length not being reset
+    - clk: tegra: Always program PLL_E when enabled
+    - clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
+    - iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
+    - gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
+    - gpio/aspeed-sgpio: don't enable all interrupts by default
+    - gpio: aspeed: fix ast2600 bank properties
+    - i2c: cpm: Fix i2c_ram structure
+    - Input: trackpoint - enable Synaptics trackpoints
+    - scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
+    - random32: Restore __latent_entropy attribute on net_rand_state
+    - block/diskstats: more accurate approximation of io_ticks for slow disks
+    - mm: replace memmap_context by meminit_context
+    - mm: don't rely on system state to detect hot-plug operations
+    - nvme: Cleanup and rename nvme_block_nr()
+    - nvme: Introduce nvme_lba_to_sect()
+    - nvme: consolidate chunk_sectors settings
+    - epoll: do not insert into poll queues until all sanity checks are done
+    - epoll: replace ->visited/visited_list with generation count
+    - epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
+    - ep_create_wakeup_source(): dentry name can change under you...
+    - netfilter: ctnetlink: add a range check for l3/l4 protonum
+    - Linux 5.4.70
+  * Focal update: v5.4.69 upstream stable release (LP: #1900624)
+    - kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
+    - selinux: allow labeling before policy is loaded
+    - media: mc-device.c: fix memleak in media_device_register_entity
+    - drm/amd/display: Do not double-buffer DTO adjustments
+    - drm/amdkfd: Fix race in gfx10 context restore handler
+    - dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
+    - scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
+    - ath10k: fix array out-of-bounds access
+    - ath10k: fix memory leak for tpc_stats_final
+    - PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
+    - mm: fix double page fault on arm64 if PTE_AF is cleared
+    - scsi: aacraid: fix illegal IO beyond last LBA
+    - m68k: q40: Fix info-leak in rtc_ioctl
+    - xfs: fix inode fork extent count overflow
+    - gma/gma500: fix a memory disclosure bug due to uninitialized bytes
+    - ASoC: kirkwood: fix IRQ error handling
+    - soundwire: intel/cadence: fix startup sequence
+    - media: smiapp: Fix error handling at NVM reading
+    - drm/amd/display: Free gamma after calculating legacy transfer function
+    - xfs: properly serialise fallocate against AIO+DIO
+    - leds: mlxreg: Fix possible buffer overflow
+    - dm table: do not allow request-based DM to stack on partitions
+    - PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
+    - scsi: fnic: fix use after free
+    - powerpc/64s: Always disable branch profiling for prom_init.o
+    - net: silence data-races on sk_backlog.tail
+    - dax: Fix alloc_dax_region() compile warning
+    - iomap: Fix overflow in iomap_page_mkwrite
+    - f2fs: avoid kernel panic on corruption test
+    - clk/ti/adpll: allocate room for terminating null
+    - drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
+    - ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
+    - mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of
+      cfi_amdstd_setup()
+    - mfd: mfd-core: Protect against NULL call-back function pointer
+    - drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
+    - tpm_crb: fix fTPM on AMD Zen+ CPUs
+    - tracing: Verify if trace array exists before destroying it.
+    - tracing: Adding NULL checks for trace_array descriptor pointer
+    - bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
+    - dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq
+      fails
+    - x86/kdump: Always reserve the low 1M when the crashkernel option is
+      specified
+    - RDMA/qedr: Fix potential use after free
+    - RDMA/i40iw: Fix potential use after free
+    - PCI: Avoid double hpmemsize MMIO window assignment
+    - fix dget_parent() fastpath race
+    - xfs: fix attr leaf header freemap.size underflow
+    - RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
+    - ubi: Fix producing anchor PEBs
+    - mmc: core: Fix size overflow for mmc partitions
+    - gfs2: clean up iopen glock mess in gfs2_create_inode
+    - scsi: pm80xx: Cleanup command when a reset times out
+    - mt76: do not use devm API for led classdev
+    - mt76: add missing locking around ampdu action
+    - debugfs: Fix !DEBUG_FS debugfs_create_automount
+    - SUNRPC: Capture completion of all RPC tasks
+    - CIFS: Use common error handling code in smb2_ioctl_query_info()
+    - CIFS: Properly process SMB3 lease breaks
+    - f2fs: stop GC when the victim becomes fully valid
+    - ASoC: max98090: remove msleep in PLL unlocked workaround
+    - xtensa: fix system_call interaction with ptrace
+    - s390: avoid misusing CALL_ON_STACK for task stack setup
+    - xfs: fix realtime file data space leak
+    - drm/amdgpu: fix calltrace during kmd unload(v3)
+    - arm64: insn: consistently handle exit text
+    - selftests/bpf: De-flake test_tcpbpf
+    - kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
+    - kernel/sys.c: avoid copying possible padding bytes in copy_to_user
+    - KVM: arm/arm64: vgic: Fix potential double free dist->spis in
+      __kvm_vgic_destroy()
+    - module: Remove accidental change of module_enable_x()
+    - xfs: fix log reservation overflows when allocating large rt extents
+    - ALSA: hda: enable regmap internal locking
+    - tipc: fix link overflow issue at socket shutdown
+    - vcc_seq_next should increase position index
+    - neigh_stat_seq_next() should increase position index
+    - rt_cpu_seq_next should increase position index
+    - ipv6_route_seq_next should increase position index
+    - drm/mcde: Handle pending vblank while disabling display
+    - seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
+    - drm/scheduler: Avoid accessing freed bad job.
+    - media: ti-vpe: cal: Restrict DMA to avoid memory corruption
+    - opp: Replace list_kref with a local counter
+    - scsi: qla2xxx: Fix stuck session in GNL
+    - sctp: move trace_sctp_probe_path into sctp_outq_sack
+    - ACPI: EC: Reference count query handlers under lock
+    - scsi: ufs: Make ufshcd_add_command_trace() easier to read
+    - scsi: ufs: Fix a race condition in the tracing code
+    - drm/amd/display: Initialize DSC PPS variables to 0
+    - i2c: tegra: Prevent interrupt triggering after transfer timeout
+    - btrfs: tree-checker: Check leaf chunk item size
+    - dmaengine: zynqmp_dma: fix burst length configuration
+    - s390/cpum_sf: Use kzalloc and minor changes
+    - nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
+    - powerpc/eeh: Only dump stack once if an MMIO loop is detected
+    - Bluetooth: btrtl: Use kvmalloc for FW allocations
+    - tracing: Set kernel_stack's caller size properly
+    - ARM: 8948/1: Prevent OOB access in stacktrace
+    - ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
+    - ceph: ensure we have a new cap before continuing in fill_inode
+    - selftests/ftrace: fix glob selftest
+    - tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
+    - Bluetooth: Fix refcount use-after-free issue
+    - mm/swapfile.c: swap_next should increase position index
+    - mm: pagewalk: fix termination condition in walk_pte_range()
+    - Bluetooth: prefetch channel before killing sock
+    - ALSA: hda: Clear RIRB status before reading WP
+    - skbuff: fix a data race in skb_queue_len()
+    - nfsd: Fix a perf warning
+    - drm/amd/display: fix workaround for incorrect double buffer register for DLG
+      ADL and TTU
+    - audit: CONFIG_CHANGE don't log internal bookkeeping as an event
+    - selinux: sel_avc_get_stat_idx should increase position index
+    - drm/omap: fix possible object reference leak
+    - locking/lockdep: Decrement IRQ context counters when removing lock chain
+    - clk: stratix10: use do_div() for 64-bit calculation
+    - crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi
+      test
+    - mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
+    - mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
+    - ALSA: usb-audio: Don't create a mixer element with bogus volume range
+    - perf test: Fix test trace+probe_vfs_getname.sh on s390
+    - RDMA/rxe: Fix configuration of atomic queue pair attributes
+    - KVM: x86: fix incorrect comparison in trace event
+    - KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
+    - dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
+    - media: staging/imx: Missing assignment in
+      imx_media_capture_device_register()
+    - x86/pkeys: Add check for pkey "overflow"
+    - bpf: Remove recursion prevention from rcu free callback
+    - dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
+    - dmaengine: tegra-apb: Prevent race conditions on channel's freeing
+    - soundwire: bus: disable pm_runtime in sdw_slave_delete
+    - drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
+    - drm/omap: dss: Cleanup DSS ports on initialisation failure
+    - iavf: use tc_cls_can_offload_and_chain0() instead of chain check
+    - firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
+    - random: fix data races at timer_rand_state
+    - bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host
+      removal
+    - ASoC: SOF: ipc: check ipc return value before data copy
+    - media: go7007: Fix URB type for interrupt handling
+    - Bluetooth: guard against controllers sending zero'd events
+    - timekeeping: Prevent 32bit truncation in scale64_check_overflow()
+    - powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
+    - drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
+    - ext4: fix a data race at inode->i_disksize
+    - perf jevents: Fix leak of mapfile memory
+    - mm: avoid data corruption on CoW fault into PFN-mapped VMA
+    - drm/amdgpu: increase atombios cmd timeout
+    - ARM: OMAP2+: Handle errors for cpu_pm
+    - clk: imx: Fix division by zero warning on pfdv2
+    - cpu-topology: Fix the potential data corruption
+    - s390/irq: replace setup_irq() by request_irq()
+    - perf cs-etm: Swap packets for instruction samples
+    - perf cs-etm: Correct synthesizing instruction samples
+    - ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
+    - scsi: aacraid: Disabling TM path and only processing IOP reset
+    - Bluetooth: L2CAP: handle l2cap config request during open state
+    - media: tda10071: fix unsigned sign extension overflow
+    - tty: sifive: Finish transmission before changing the clock
+    - xfs: don't ever return a stale pointer from __xfs_dir3_free_read
+    - xfs: mark dir corrupt when lookup-by-hash fails
+    - ext4: mark block bitmap corrupted when found instead of BUGON
+    - tpm: ibmvtpm: Wait for buffer to be set before proceeding
+    - rtc: sa1100: fix possible race condition
+    - rtc: ds1374: fix possible race condition
+    - nfsd: Don't add locks to closed or closing open stateids
+    - RDMA/cm: Remove a race freeing timewait_info
+    - intel_th: Disallow multi mode on devices where it's broken
+    - KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like
+      the valid ones
+    - drm/msm: fix leaks if initialization fails
+    - drm/msm/a5xx: Always set an OPP supported hardware value
+    - tracing: Use address-of operator on section symbols
+    - thermal: rcar_thermal: Handle probe error gracefully
+    - KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard
+      interrupt context
+    - perf parse-events: Fix 3 use after frees found with clang ASAN
+    - btrfs: do not init a reloc root if we aren't relocating
+    - btrfs: free the reloc_control in a consistent way
+    - r8169: improve RTL8168b FIFO overflow workaround
+    - serial: 8250_port: Don't service RX FIFO if throttled
+    - serial: 8250_omap: Fix sleeping function called from invalid context during
+      probe
+    - serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
+    - perf cpumap: Fix snprintf overflow check
+    - net: axienet: Convert DMA error handler to a work queue
+    - net: axienet: Propagate failure of DMA descriptor setup
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
+    - tools: gpio-hammer: Avoid potential overflow in main
+    - exec: Add exec_update_mutex to replace cred_guard_mutex
+    - exec: Fix a deadlock in strace
+    - selftests/ptrace: add test cases for dead-locks
+    - kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
+    - proc: Use new infrastructure to fix deadlocks in execve
+    - proc: io_accounting: Use new infrastructure to fix deadlocks in execve
+    - perf: Use new infrastructure to fix deadlocks in execve
+    - nvme-multipath: do not reset on unknown status
+    - nvme: Fix ctrl use-after-free during sysfs deletion
+    - nvme: Fix controller creation races with teardown flow
+    - brcmfmac: Fix double freeing in the fmac usb data path
+    - xfs: prohibit fs freezing when using empty transactions
+    - RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
+    - IB/iser: Always check sig MR before putting it to the free pool
+    - scsi: hpsa: correct race condition in offload enabled
+    - SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
+    - svcrdma: Fix leak of transport addresses
+    - netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
+    - PCI: Use ioremap(), not phys_to_virt() for platform ROM
+    - ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
+    - ubifs: ubifs_add_orphan: Fix a memory leak bug
+    - ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
+    - ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra
+      endpoint descriptor
+    - PCI: pciehp: Fix MSI interrupt race
+    - NFS: Fix races nfs_page_group_destroy() vs
+      nfs_destroy_unlinked_subrequests()
+    - drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
+    - powerpc/perf: Implement a global lock to avoid races between trace, core and
+      thread imc events.
+    - mm/kmemleak.c: use address-of operator on section symbols
+    - mm/filemap.c: clear page error before actual read
+    - mm/swapfile: fix data races in try_to_unuse()
+    - mm/vmscan.c: fix data races using kswapd_classzone_idx
+    - SUNRPC: Don't start a timer on an already queued rpc task
+    - nvmet-rdma: fix double free of rdma queue
+    - workqueue: Remove the warning in wq_worker_sleeping()
+    - drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
+    - mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
+    - ALSA: hda: Skip controller resume if not needed
+    - scsi: qedi: Fix termination timeouts in session logout
+    - serial: uartps: Wait for tx_empty in console setup
+    - btrfs: fix setting last_trans for reloc roots
+    - KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
+    - perf stat: Force error in fallback on :k events
+    - bdev: Reduce time holding bd_mutex in sync in blkdev_close()
+    - drivers: char: tlclk.c: Avoid data race between init and interrupt handler
+    - KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
+    - KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
+    - net: openvswitch: use u64 for meter bucket
+    - scsi: aacraid: Fix error handling paths in aac_probe_one()
+    - staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
+    - sparc64: vcc: Fix error return code in vcc_probe()
+    - arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
+    - sched/fair: Eliminate bandwidth race between throttling and distribution
+    - dpaa2-eth: fix error return code in setup_dpni()
+    - dt-bindings: sound: wm8994: Correct required supplies based on actual
+      implementaion
+    - devlink: Fix reporter's recovery condition
+    - atm: fix a memory leak of vcc->user_back
+    - media: venus: vdec: Init registered list unconditionally
+    - perf mem2node: Avoid double free related to realloc
+    - mm/slub: fix incorrect interpretation of s->offset
+    - i2c: tegra: Restore pinmux on system resume
+    - power: supply: max17040: Correct voltage reading
+    - phy: samsung: s5pv210-usb2: Add delay after reset
+    - Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
+    - USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
+    - KVM: x86: handle wrap around 32-bit address space
+    - tipc: fix memory leak in service subscripting
+    - tty: serial: samsung: Correct clock selection logic
+    - ALSA: hda: Fix potential race in unsol event handler
+    - drm/exynos: dsi: Remove bridge node reference in error handling path in
+      probe function
+    - ipmi:bt-bmc: Fix error handling and status check
+    - powerpc/traps: Make unrecoverable NMIs die instead of panic
+    - svcrdma: Fix backchannel return code
+    - fuse: don't check refcount after stealing page
+    - fuse: update attr_version counter on fuse_notify_inval_inode()
+    - USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
+    - coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
+    - arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
+    - scsi: cxlflash: Fix error return code in cxlflash_probe()
+    - arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
+    - drm/amdkfd: fix restore worker race condition
+    - e1000: Do not perform reset in reset_task if we are already down
+    - drm/nouveau/debugfs: fix runtime pm imbalance on error
+    - drm/nouveau: fix runtime pm imbalance on error
+    - drm/nouveau/dispnv50: fix runtime pm imbalance on error
+    - printk: handle blank console arguments passed in.
+    - usb: dwc3: Increase timeout for CmdAct cleared by device controller
+    - btrfs: don't force read-only after error in drop snapshot
+    - btrfs: fix double __endio_write_update_ordered in direct I/O
+    - gpio: rcar: Fix runtime PM imbalance on error
+    - vfio/pci: fix memory leaks of eventfd ctx
+    - KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
+    - perf evsel: Fix 2 memory leaks
+    - perf trace: Fix the selection for architectures to generate the errno name
+      tables
+    - perf stat: Fix duration_time value for higher intervals
+    - perf util: Fix memory leak of prefix_if_not_in
+    - perf metricgroup: Free metric_events on error
+    - perf kcore_copy: Fix module map when there are no modules loaded
+    - PCI: tegra194: Fix runtime PM imbalance on error
+    - ASoC: img-i2s-out: Fix runtime PM imbalance on error
+    - wlcore: fix runtime pm imbalance in wl1271_tx_work
+    - wlcore: fix runtime pm imbalance in wlcore_regdomain_config
+    - mtd: rawnand: gpmi: Fix runtime PM imbalance on error
+    - mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
+    - PCI: tegra: Fix runtime PM imbalance on error
+    - ceph: fix potential race in ceph_check_caps
+    - mm/swap_state: fix a data race in swapin_nr_pages
+    - mm: memcontrol: fix stat-corrupting race in charge moving
+    - rapidio: avoid data race between file operation callbacks and
+      mport_cdev_add().
+    - mtd: parser: cmdline: Support MTD names containing one or more colons
+    - x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
+    - NFS: nfs_xdr_status should record the procedure name
+    - vfio/pci: Clear error and request eventfd ctx after releasing
+    - cifs: Fix double add page to memcg when cifs_readpages
+    - nvme: fix possible deadlock when I/O is blocked
+    - mac80211: skip mpath lookup also for control port tx
+    - scsi: libfc: Handling of extra kref
+    - scsi: libfc: Skip additional kref updating work event
+    - selftests/x86/syscall_nt: Clear weird flags after each test
+    - vfio/pci: fix racy on error and request eventfd ctx
+    - btrfs: qgroup: fix data leak caused by race between writeback and truncate
+    - perf tests: Fix test 68 zstd compression for s390
+    - scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
+    - ubi: fastmap: Free unused fastmap anchor peb during detach
+    - mt76: fix LED link time failure
+    - opp: Increase parsed_static_opps in _of_add_opp_table_v1()
+    - perf parse-events: Use strcmp() to compare the PMU name
+    - ALSA: hda: Always use jackpoll helper for jack update after resume
+    - ALSA: hda: Workaround for spurious wakeups on some Intel platforms
+    - net: openvswitch: use div_u64() for 64-by-32 divisions
+    - nvme: explicitly update mpath disk capacity on revalidation
+    - device_cgroup: Fix RCU list debugging warning
+    - ASoC: pcm3168a: ignore 0 Hz settings
+    - ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
+    - ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
+    - RISC-V: Take text_mutex in ftrace_init_nop()
+    - i2c: aspeed: Mask IRQ status to relevant bits
+    - s390/init: add missing __init annotations
+    - lockdep: fix order in trace_hardirqs_off_caller()
+    - EDAC/ghes: Check whether the driver is on the safe list correctly
+    - drm/amdkfd: fix a memory leak issue
+    - drm/amd/display: update nv1x stutter latencies
+    - drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
+    - objtool: Fix noreturn detection for ignored functions
+    - ieee802154: fix one possible memleak in ca8210_dev_com_init
+    - ieee802154/adf7242: check status of adf7242_read_reg
+    - clocksource/drivers/h8300_timer8: Fix wrong return value in
+      h8300_8timer_init()
+    - batman-adv: bla: fix type misuse for backbone_gw hash indexing
+    - atm: eni: fix the missed pci_disable_device() for eni_init_one()
+    - batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
+    - netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
+    - mac802154: tx: fix use-after-free
+    - bpf: Fix clobbering of r2 in bpf_gen_ld_abs
+    - drm/vc4/vc4_hdmi: fill ASoC card owner
+    - net: qed: Disable aRFS for NPAR and 100G
+    - net: qede: Disable aRFS for NPAR and 100G
+    - net: qed: RDMA personality shouldn't fail VF load
+    - drm/sun4i: sun8i-csc: Secondary CSC register correction
+    - batman-adv: Add missing include for in_interrupt()
+    - nvme-tcp: fix kconfig dependency warning when !CRYPTO
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
+    - batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
+    - bpf: Fix a rcu warning for bpffs map pretty-print
+    - lib80211: fix unmet direct dependendices config warning when !CRYPTO
+    - ALSA: asihpi: fix iounmap in error handler
+    - regmap: fix page selection for noinc reads
+    - regmap: fix page selection for noinc writes
+    - MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
+    - regulator: axp20x: fix LDO2/4 description
+    - KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
+    - KVM: SVM: Add a dedicated INVD intercept routine
+    - mm: validate pmd after splitting
+    - arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
+    - x86/ioapic: Unbreak check_timer()
+    - scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
+    - ALSA: usb-audio: Add delay quirk for H570e USB headsets
+    - ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
+    - ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation
+      P520
+    - lib/string.c: implement stpcpy
+    - tracing: fix double free
+    - s390/dasd: Fix zero write for FBA devices
+    - kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
+    - kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
+    - btrfs: fix overflow when copying corrupt csums for a message
+    - dmabuf: fix NULL pointer dereference in dma_buf_release()
+    - mm, THP, swap: fix allocating cluster for swapfile by mistake
+    - mm/gup: fix gup_fast with dynamic page table folding
+    - s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
+    - KVM: arm64: Assume write fault on S1PTW permission fault on instruction
+      fetch
+    - dm: fix bio splitting and its bio completion order for regular IO
+    - ata: define AC_ERR_OK
+    - ata: make qc_prep return ata_completion_errors
+    - ata: sata_mv, avoid trigerrable BUG_ON
+    - Linux 5.4.69
+  * Focal update: v5.4.68 upstream stable release (LP: #1899511)
+    - af_key: pfkey_dump needs parameter validation
+    - ibmvnic fix NULL tx_pools and rx_tools issue at do_reset
+    - ibmvnic: add missing parenthesis in do_reset()
+    - kprobes: fix kill kprobe which has been marked as gone
+    - mm/thp: fix __split_huge_pmd_locked() for migration PMD
+    - act_ife: load meta modules before tcf_idr_check_alloc()
+    - bnxt_en: Avoid sending firmware messages when AER error is detected.
+    - bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()
+    - cxgb4: fix memory leak during module unload
+    - cxgb4: Fix offset when clearing filter byte counters
+    - geneve: add transport ports in route lookup for geneve
+    - hdlc_ppp: add range checks in ppp_cp_parse_cr()
+    - ip: fix tos reflection in ack and reset packets
+    - ipv4: Initialize flowi4_multipath_hash in data path
+    - ipv4: Update exception handling for multipath routes via same device
+    - ipv6: avoid lockdep issue in fib6_del()
+    - net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under
+      RCU
+    - net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
+    - net: dsa: rtl8366: Properly clear member config
+    - net: Fix bridge enslavement failure
+    - net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
+    - net/mlx5: Fix FTE cleanup
+    - net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc
+    - net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant
+    - nfp: use correct define to return NONE fec
+    - taprio: Fix allowing too small intervals
+    - tipc: Fix memory leak in tipc_group_create_member()
+    - tipc: fix shutdown() of connection oriented socket
+    - tipc: use skb_unshare() instead in tipc_buf_append()
+    - net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
+    - net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
+    - bnxt_en: return proper error codes in bnxt_show_temp
+    - bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
+    - net: lantiq: Wake TX queue again
+    - net: lantiq: use netif_tx_napi_add() for TX NAPI
+    - net: lantiq: Use napi_complete_done()
+    - net: lantiq: Disable IRQs only if NAPI gets scheduled
+    - net: phy: Avoid NPD upon phy_detach() when driver is unbound
+    - net: phy: Do not warn in phy_stop() on PHY_DOWN
+    - net: qrtr: check skb_put_padto() return value
+    - net: add __must_check to skb_put_padto()
+    - mm: memcg: fix memcg reclaim soft lockup
+    - iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
+    - Linux 5.4.68
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+  * tc/ebpf: unable to use BPF_FUNC_skb_change_head (LP: #1896504)
+    - net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
+  * HP Zbook Studio G7 boots into corrupted screen with PSR featured panel
+    (LP: #1897501)
+    - SAUCE: drm/i915/psr: allow overriding PSR disable param by quirk
+    - SAUCE: drm/dp: add DP_QUIRK_FORCE_PSR_CHIP_DEFAULT quirk to CMN prod-ID
+      19-15
+  * Fix broken e1000e device after S3 (LP: #1897755)
+    - SAUCE: e1000e: Increase polling timeout on MDIC ready bit
+  * debian/rules editconfigs does not work on s390x to change s390x only configs
+    (LP: #1863116)
+    - [Packaging] kernelconfig -- only update/edit configurations on architectures
+      we have compiler support
+  * acpi event detection crashes (LP: #1896482)
+    - ACPI: EC: tweak naming in preparation for GpioInt support
+    - ACPI: EC: add support for hardware-reduced systems
+    - ACPI: EC: Avoid passing redundant argument to functions
+    - ACPI: EC: Consolidate event handler installation code
+  * mwifiex stops working after kernel upgrade (LP: #1897299)
+    - mwifiex: Increase AES key storage size to 256 bits
+  * Remove NVMe suspend-to-idle workaround (LP: #1897227)
+    - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3"
+    - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3"
+  * Request for CIFS patches to be available in 5.4 kernel (LP: #1896642)
+    - smb3: remove unused flag passed into close functions
+    - smb3: query attributes on file close
+  * Lenovo ThinkBook 14-IML Touchpad not showing up in /proc/bus/input/devices
+    (LP: #1853277)
+    - i2c: core: Call i2c_acpi_install_space_handler() before
+      i2c_acpi_register_devices()
+  * [Ubuntu 20.10] zPCI DMA tables and bitmap leak on hard unplug (PCI Event
+    0x0304) (LP: #1896216)
+    - s390/pci: fix leak of DMA tables on hard unplug
+  * Thunderbolt3 daisy chain sometimes doesn't work (LP: #1895606)
+    - thunderbolt: Retry DROM read once if parsing fails
+  * btrfs: trimming a btrfs device which has been shrunk previously fails and
+    fills root disk with garbage data (LP: #1896154)
+    - btrfs: trim: fix underflow in trim length to prevent access beyond device
+      boundary
+  * EFA: add support for 0xefa1 devices (LP: #1896791)
+    - RDMA/efa: Expose maximum TX doorbell batch
+    - RDMA/efa: Expose minimum SQ size
+    - RDMA/efa: User/kernel compatibility handshake mechanism
+    - RDMA/efa: Add EFA 0xefa1 PCI ID
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828)
+    - gfs2: initialize transaction tr_ailX_lists earlier
+    - RDMA/bnxt_re: Restrict the max_gids to 256
+    - dsa: Allow forwarding of redirected IGMP traffic
+    - net: handle the return value of pskb_carve_frag_list() correctly
+    - hv_netvsc: Remove "unlikely" from netvsc_select_queue
+    - firmware_loader: fix memory leak for paged buffer
+    - NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
+    - scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
+    - scsi: libfc: Fix for double free()
+    - scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
+    - regulator: pwm: Fix machine constraints application
+    - spi: spi-loopback-test: Fix out-of-bounds read
+    - NFS: Zero-stateid SETATTR should first return delegation
+    - SUNRPC: stop printk reading past end of string
+    - rapidio: Replace 'select' DMAENGINES 'with depends on'
+    - cifs: fix DFS mount with cifsacl/modefromsid
+    - openrisc: Fix cache API compile issue when not inlining
+    - nvme-fc: cancel async events before freeing event struct
+    - nvme-rdma: cancel async events before freeing event struct
+    - nvme-tcp: cancel async events before freeing event struct
+    - block: only call sched requeue_request() for scheduled requests
+    - f2fs: fix indefinite loop scanning for free nid
+    - f2fs: Return EOF on unaligned end of file DIO read
+    - i2c: algo: pca: Reapply i2c bus settings after reset
+    - spi: Fix memory leak on splited transfers
+    - KVM: MIPS: Change the definition of kvm type
+    - clk: davinci: Use the correct size when allocating memory
+    - clk: rockchip: Fix initialization of mux_pll_src_4plls_p
+    - ASoC: qcom: Set card->owner to avoid warnings
+    - ASoC: qcom: common: Fix refcount imbalance on error
+    - powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
+    - ASoC: meson: axg-toddr: fix channel order on g12 platforms
+    - Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
+    - scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
+    - arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
+    - Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
+    - perf test: Fix the "signal" test inline assembly
+    - MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
+    - perf evlist: Fix cpu/thread map leak
+    - perf parse-event: Fix memory leak in evsel->unit
+    - perf test: Free formats for perf pmu parse test
+    - fbcon: Fix user font detection test at fbcon_resize().
+    - MIPS: SNI: Fix spurious interrupts
+    - drm/mediatek: Add exception handing in mtk_drm_probe() if component init
+      fail
+    - drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
+    - arm64: bpf: Fix branch offset in JIT
+    - iommu/amd: Fix potential @entry null deref
+    - i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
+    - riscv: Add sfence.vma after early page table changes
+    - drm/i915: Filter wake_flags passed to default_wake_function
+    - USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin
+      notebook
+    - USB: UAS: fix disconnect by unplugging a hub
+    - usblp: fix race between disconnect() and read()
+    - i2c: i801: Fix resume bug
+    - Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI
+      X570-A PRO"
+    - ALSA: hda: fixup headset for ASUS GX502 laptop
+    - ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
+    - percpu: fix first chunk size calculation for populated bitmap
+    - Input: trackpoint - add new trackpoint variant IDs
+    - Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
+    - serial: 8250_pci: Add Realtek 816a and 816b
+    - x86/boot/compressed: Disable relocation relaxation
+    - s390/zcrypt: fix kmalloc 256k failure
+    - ehci-hcd: Move include to keep CRC stable
+    - powerpc/dma: Fix dma_map_ops::get_required_mask
+    - selftests/vm: fix display of page size in map_hugetlb
+    - dm/dax: Fix table reference counts
+    - mm/memory_hotplug: drain per-cpu pages again during memory offline
+    - dm: Call proper helper to determine dax support
+    - dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
+    - Linux 5.4.67
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828) // Cherry Pick
+    needed for Critical upstream patch for Kernel null pointer dereference -
+    usb-c altmode (LP: #1897963)
+    - usb: typec: ucsi: Prevent mode overrun
+  * Focal update: v5.4.66 upstream stable release (LP: #1896824)
+    - ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix missing video
+    - regulator: push allocation in regulator_ena_gpio_request() out of lock
+    - regulator: remove superfluous lock in regulator_resolve_coupling()
+    - ARM: dts: socfpga: fix register entry for timer3 on Arria10
+    - ARM: dts: ls1021a: fix QuadSPI-memory reg range
+    - ARM: dts: imx7ulp: Correct gpio ranges
+    - RDMA/rxe: Fix memleak in rxe_mem_init_user
+    - RDMA/rxe: Drop pointless checks in rxe_init_ports
+    - RDMA/rxe: Fix panic when calling kmem_cache_create()
+    - RDMA/bnxt_re: Do not report transparent vlan from QP1
+    - drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
+    - arm64: dts: imx8mq: Fix TMU interrupt property
+    - drm/sun4i: Fix dsi dcs long write function
+    - iio: adc: mcp3422: fix locking on error path
+    - iio: adc: mcp3422: fix locking scope
+    - scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
+    - RDMA/core: Fix reported speed and width
+    - scsi: megaraid_sas: Don't call disable_irq from process IRQ poll
+    - scsi: mpt3sas: Don't call disable_irq from IRQ poll handler
+    - soundwire: fix double free of dangling pointer
+    - drm/sun4i: backend: Support alpha property on lowest plane
+    - drm/sun4i: backend: Disable alpha on the lowest plane on the A20
+    - mmc: sdhci-acpi: Clear amd_sdhci_host on reset
+    - mmc: sdhci-msm: Add retries when all tuning phases are found valid
+    - spi: stm32: Rate-limit the 'Communication suspended' message
+    - nvme-fabrics: allow to queue requests for live queues
+    - spi: stm32: fix pm_runtime_get_sync() error checking
+    - block: Set same_page to false in __bio_try_merge_page if ret is false
+    - IB/isert: Fix unaligned immediate-data handling
+    - ARM: dts: bcm: HR2: Fixed QSPI compatible string
+    - ARM: dts: NSP: Fixed QSPI compatible string
+    - ARM: dts: BCM5301X: Fixed QSPI compatible string
+    - arm64: dts: ns2: Fixed QSPI compatible string
+    - ARC: HSDK: wireup perf irq
+    - dmaengine: acpi: Put the CSRT table after using it
+    - netfilter: conntrack: allow sctp hearbeat after connection re-use
+    - drivers/net/wan/lapbether: Added needed_tailroom
+    - NFC: st95hf: Fix memleak in st95hf_in_send_cmd
+    - firestream: Fix memleak in fs_open
+    - ALSA: hda: Fix 2 channel swapping for Tegra
+    - ALSA: hda/tegra: Program WAKEEN register for Tegra
+    - drivers/dma/dma-jz4780: Fix race condition between probe and irq handler
+    - net: hns3: Fix for geneve tx checksum bug
+    - xfs: fix off-by-one in inode alloc block reservation calculation
+    - drivers/net/wan/lapbether: Set network_header before transmitting
+    - cfg80211: Adjust 6 GHz frequency to channel conversion
+    - xfs: initialize the shortform attr header padding entry
+    - irqchip/eznps: Fix build error for !ARC700 builds
+    - nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu
+    - nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
+    - nvme: have nvme_wait_freeze_timeout return if it timed out
+    - nvme-tcp: serialize controller teardown sequences
+    - nvme-tcp: fix timeout handler
+    - nvme-tcp: fix reset hang if controller died in the middle of a reset
+    - nvme-rdma: serialize controller teardown sequences
+    - nvme-rdma: fix timeout handler
+    - nvme-rdma: fix reset hang if controller died in the middle of a reset
+    - nvme-pci: cancel nvme device request before disabling
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
+    - HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller
+    - drivers/net/wan/hdlc_cisco: Add hard_header_len
+    - HID: elan: Fix memleak in elan_input_configured
+    - ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
+    - cpufreq: intel_pstate: Refuse to turn off with HWP enabled
+    - cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled
+    - arm64/module: set trampoline section flags regardless of
+      CONFIG_DYNAMIC_FTRACE
+    - ALSA: hda: hdmi - add Rocketlake support
+    - ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
+    - drm/amdgpu: Fix bug in reporting voltage for CIK
+    - iommu/amd: Do not use IOMMUv2 functionality when SME is active
+    - gcov: Disable gcov build with GCC 10
+    - iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
+    - iio: cros_ec: Set Gyroscope default frequency to 25Hz
+    - iio:light:ltr501 Fix timestamp alignment issue.
+    - iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
+    - iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
+    - iio:adc:ti-adc084s021 Fix alignment and data leak issues.
+    - iio:adc:ina2xx Fix timestamp alignment issue.
+    - iio:adc:max1118 Fix alignment of timestamp and data leak issues
+    - iio:adc:ti-adc081c Fix alignment and data leak issues
+    - iio:magnetometer:ak8975 Fix alignment and data leak issues.
+    - iio:light:max44000 Fix timestamp alignment and prevent data leak.
+    - iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
+    - iio: accel: kxsd9: Fix alignment of local buffer.
+    - iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
+    - iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
+    - staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
+    - btrfs: require only sector size alignment for parent eb bytenr
+    - btrfs: fix lockdep splat in add_missing_dev
+    - btrfs: fix wrong address when faulting in pages in the search ioctl
+    - kobject: Restore old behaviour of kobject_del(NULL)
+    - regulator: push allocation in regulator_init_coupling() outside of lock
+    - regulator: push allocations in create_regulator() outside of lock
+    - regulator: push allocation in set_consumer_device_supply() out of lock
+    - regulator: plug of_node leak in regulator_register()'s error path
+    - regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
+    - scsi: target: iscsi: Fix data digest calculation
+    - scsi: target: iscsi: Fix hang in iscsit_access_np() when getting
+      tpg->np_login_sem
+    - drm/i915/gvt: do not check len & max_len for lri
+    - drm/tve200: Stabilize enable/disable
+    - drm/msm: Disable preemption on all 5xx targets
+    - mmc: sdio: Use mmc_pre_req() / mmc_post_req()
+    - mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
+    - rbd: require global CAP_SYS_ADMIN for mapping and unmapping
+    - RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
+    - RDMA/mlx4: Read pkey table length instead of hardcoded value
+    - fbcon: remove soft scrollback code
+    - fbcon: remove now unusued 'softback_lines' cursor() argument
+    - vgacon: remove software scrollback support
+    - [Config] updateconfigs for VGACON_SOFT_SCROLLBACK
+    - KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
+    - KVM: arm64: Do not try to map PUDs when they are folded into PMD
+    - KVM: fix memory leak in kvm_io_bus_unregister_dev()
+    - debugfs: Fix module state check condition
+    - ARM: dts: vfxxx: Add syscon compatible with OCOTP
+    - video: fbdev: fix OOB read in vga_8planes_imageblit()
+    - staging: greybus: audio: fix uninitialized value issue
+    - phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
+    - usb: core: fix slab-out-of-bounds Read in read_descriptors
+    - USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
+    - USB: serial: option: support dynamic Quectel USB compositions
+    - USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
+    - usb: Fix out of sync data toggle if a configured device is reconfigured
+    - usb: typec: ucsi: acpi: Check the _DEP dependencies
+    - drm/msm/gpu: make ringbuffer readonly
+    - drm/msm: Disable the RPTR shadow
+    - gcov: add support for GCC 10.1
+    - Linux 5.4.66
+
+  [ Ubuntu: 5.4.0-54.60~18.04.1 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Introduce the new NVIDIA 455 series (LP: #1902093)
+    - [Packaging] NVIDIA -- Add the NVIDIA 455 driver
+
+ -- Ian May <ian.may@canonical.com>  Mon, 16 Nov 2020 15:30:46 -0600
+
+linux-gkeop-5.4 (5.4.0-1004.5) bionic; urgency=medium
+
+  * CVE-2020-12351 // CVE-2020-12352 // CVE-2020-24490
+    - [Config] Disable BlueZ highspeed support
+
+  [ Ubuntu: 5.4.0-53.59~18.04.1 ]
+
+  * CVE-2020-8694
+    - powercap: make attributes only readable by root
+
+  [ Ubuntu: 5.4.0-52.57~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-52.57~18.04.1 -proposed tracker (LP: #1899942)
+  * focal/linux: 5.4.0-52.57 -proposed tracker (LP: #1899920)
+  * CVE-2020-12351 // CVE-2020-12352 // CVE-2020-24490
+    - Bluetooth: Disable High Speed by default
+    - Bluetooth: MGMT: Fix not checking if BT_HS is enabled
+    - [Config] Disable BlueZ highspeed support
+  * CVE-2020-12351
+    - Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
+  * CVE-2020-12352
+    - Bluetooth: A2MP: Fix not initializing all members
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Wed, 21 Oct 2020 21:32:51 -0300
+
+linux-gkeop-5.4 (5.4.0-1003.3) bionic; urgency=medium
+
+  [ Ubuntu: 5.4.0-51.56~18.04.1 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  [ Ubuntu: 5.4.0-50.55~18.04.1 ]
+
+  * CVE-2020-16119
+    - SAUCE: dccp: avoid double free of ccid on child socket
+  * CVE-2020-16120
+    - Revert "UBUNTU: SAUCE: overlayfs: ensure mounter privileges when reading
+      directories"
+    - ovl: pass correct flags for opening real directory
+    - ovl: switch to mounter creds in readdir
+    - ovl: verify permissions in ovl_path_open()
+    - ovl: call secutiry hook in ovl_real_ioctl()
+    - ovl: check permission to open real file
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 07 Oct 2020 14:57:12 +0200
+
+linux-gkeop-5.4 (5.4.0-1002.2) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1002.2 -proposed tracker (LP: #1896005)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+
+  * Focal update: v5.4.61 upstream stable release (LP: #1893115)
+    - [Config] update config for SPI_DYNAMIC
+
+  [ Ubuntu: 5.4.0-49.53~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-49.53~18.04.1 -proposed tracker (LP: #1896006)
+  * focal/linux: 5.4.0-49.53 -proposed tracker (LP: #1896007)
+  * Comet Lake PCH-H RAID not support on Ubuntu20.04 (LP: #1892288)
+    - ahci: Add Intel Comet Lake PCH-H PCI ID
+  * Novalink (mkvterm command failure) (LP: #1892546)
+    - tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
+  * Oops and hang when starting LVM snapshots on 5.4.0-47 (LP: #1894780)
+    - SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root kmem_cache
+      destroy"
+  * Intel x710 LOMs do not work on Focal (LP: #1893956)
+    - i40e: Fix LED blinking flow for X710T*L devices
+    - i40e: enable X710 support
+  * Add/Backport EPYC-v3 and EPYC-Rome CPU model (LP: #1887490)
+    - kvm: svm: Update svm_xsaves_supported
+  * Fix non-working NVMe after S3 (LP: #1895718)
+    - SAUCE: PCI: Enable ACS quirk on CML root port
+  * Focal update: v5.4.65 upstream stable release (LP: #1895881)
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: Fix sysctl max for fib_multipath_hash_policy
+    - netlabel: fix problems with mapping removal
+    - net: usb: dm9601: Add USB ID of Keenetic Plus DSL
+    - sctp: not disable bh in the whole sctp_get_port_local()
+    - taprio: Fix using wrong queues in gate mask
+    - tipc: fix shutdown() of connectionless socket
+    - net: disable netpoll on fresh napis
+    - Linux 5.4.65
+  * Focal update: v5.4.64 upstream stable release (LP: #1895880)
+    - HID: quirks: Always poll three more Lenovo PixArt mice
+    - drm/msm/dpu: Fix scale params in plane validation
+    - tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
+    - drm/msm: add shutdown support for display platform_driver
+    - hwmon: (applesmc) check status earlier.
+    - nvmet: Disable keep-alive timer when kato is cleared to 0h
+    - drm/msm: enable vblank during atomic commits
+    - habanalabs: validate FW file size
+    - habanalabs: check correct vmalloc return code
+    - drm/msm/a6xx: fix gmu start on newer firmware
+    - ceph: don't allow setlease on cephfs
+    - drm/omap: fix incorrect lock state
+    - cpuidle: Fixup IRQ state
+    - nbd: restore default timeout when setting it to zero
+    - s390: don't trace preemption in percpu macros
+    - drm/amd/display: Reject overlay plane configurations in multi-display
+      scenarios
+    - drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in
+      amdgpu_dm_update_backlight_caps
+    - drm/amd/display: Retry AUX write when fail occurs
+    - drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
+    - xen/xenbus: Fix granting of vmalloc'd memory
+    - fsldma: fix very broken 32-bit ppc ioread64 functionality
+    - dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
+    - batman-adv: Avoid uninitialized chaddr when handling DHCP
+    - batman-adv: Fix own OGM check in aggregated OGMs
+    - batman-adv: bla: use netif_rx_ni when not in interrupt context
+    - dmaengine: at_hdmac: check return value of of_find_device_by_node() in
+      at_dma_xlate()
+    - rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
+    - rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
+    - MIPS: mm: BMIPS5000 has inclusive physical caches
+    - MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
+    - mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
+    - netfilter: nf_tables: add NFTA_SET_USERDATA if not null
+    - netfilter: nf_tables: incorrect enum nft_list_attributes definition
+    - netfilter: nf_tables: fix destination register zeroing
+    - net: hns: Fix memleak in hns_nic_dev_probe
+    - net: systemport: Fix memleak in bcm_sysport_probe
+    - ravb: Fixed to be able to unload modules
+    - net: arc_emac: Fix memleak in arc_mdio_probe
+    - dmaengine: pl330: Fix burst length if burst size is smaller than bus width
+    - gtp: add GTPA_LINK info to msg sent to userspace
+    - net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
+    - bnxt_en: Don't query FW when netif_running() is false.
+    - bnxt_en: Check for zero dir entries in NVRAM.
+    - bnxt_en: Fix PCI AER error recovery flow
+    - bnxt_en: Fix possible crash in bnxt_fw_reset_task().
+    - bnxt_en: fix HWRM error when querying VF temperature
+    - xfs: fix boundary test in xfs_attr_shortform_verify
+    - bnxt: don't enable NAPI until rings are ready
+    - media: vicodec: add missing v4l2_ctrl_request_hdl_put()
+    - media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
+    - selftests/bpf: Fix massive output from test_maps
+    - net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
+    - netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
+    - nvmet-fc: Fix a missed _irqsave version of spin_lock in
+      'nvmet_fc_fod_op_done()'
+    - nvme: fix controller instance leak
+    - cxgb4: fix thermal zone device registration
+    - perf tools: Correct SNOOPX field offset
+    - net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
+    - fix regression in "epoll: Keep a reference on files added to the check list"
+    - net: gemini: Fix another missing clk_disable_unprepare() in probe
+    - MIPS: add missing MSACSR and upper MSA initialization
+    - xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
+    - perf jevents: Fix suspicious code in fixregex()
+    - tg3: Fix soft lockup when tg3_reset_task() fails.
+    - x86, fakenuma: Fix invalid starting node ID
+    - iommu/vt-d: Serialize IOMMU GCMD register modifications
+    - thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
+    - thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
+    - iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
+    - include/linux/log2.h: add missing () around n in roundup_pow_of_two()
+    - iommu/vt-d: Handle 36bit addressing for x86-32
+    - tracing/kprobes, x86/ptrace: Fix regs argument order for i386
+    - ext2: don't update mtime on COW faults
+    - xfs: don't update mtime on COW faults
+    - ARC: perf: don't bail setup if pct irq missing in device-tree
+    - btrfs: drop path before adding new uuid tree entry
+    - btrfs: allocate scrub workqueues outside of locks
+    - btrfs: set the correct lockdep class for new nodes
+    - btrfs: set the lockdep class for log tree extent buffers
+    - btrfs: tree-checker: fix the error message for transid error
+    - net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
+    - btrfs: fix potential deadlock in the search ioctl
+    - ALSA: ca0106: fix error code handling
+    - ALSA: usb-audio: Add implicit feedback quirk for UR22C
+    - ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
+    - ALSA: hda/hdmi: always check pin power status in i915 pin fixup
+    - ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
+    - ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
+    - ALSA; firewire-tascam: exclude Tascam FE-8 from detection
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
+    - ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
+    - arm64: dts: mt7622: add reset node for mmc device
+    - mmc: mediatek: add optional module reset property
+    - mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
+    - mmc: cqhci: Add cqhci_deactivate()
+    - mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based
+      controllers
+    - media: rc: do not access device via sysfs after rc_unregister_device()
+    - media: rc: uevent sysfs file races with rc_unregister_device()
+    - affs: fix basic permission bits to actually work
+    - block: allow for_each_bvec to support zero len bvec
+    - block: ensure bdi->io_pages is always initialized
+    - libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
+    - blk-iocost: ioc_pd_free() shouldn't assume irq disabled
+    - dmaengine: dw-edma: Fix scatter-gather address calculation
+    - drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
+    - dm writecache: handle DAX to partitions on persistent memory correctly
+    - dm mpath: fix racey management of PG initialization
+    - dm integrity: fix error reporting in bitmap mode after creation
+    - dm crypt: Initialize crypto wait structures
+    - dm cache metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Fix use-after-free in dm_bm_set_read_only
+    - mm: slub: fix conversion of freelist_corrupted()
+    - mm: madvise: fix vma user-after-free
+    - vfio/pci: Fix SR-IOV VF handling with MMIO blocking
+    - perf record: Correct the help info of option "--no-bpf-event"
+    - sdhci: tegra: Add missing TMCLK for data timeout
+    - checkpatch: fix the usage of capture group ( ... )
+    - mm/hugetlb: fix a race between hugetlb sysctl handlers
+    - mm/khugepaged.c: fix khugepaged's request size in collapse_file
+    - cfg80211: regulatory: reject invalid hints
+    - net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
+    - Linux 5.4.64
+  * Focal update: v5.4.63 upstream stable release (LP: #1895879)
+    - HID: core: Correctly handle ReportSize being zero
+    - HID: core: Sanitize event code and type when mapping input
+    - perf record/stat: Explicitly call out event modifiers in the documentation
+    - drm/sched: Fix passing zero to 'PTR_ERR' warning v2
+    - drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
+    - KVM: arm64: Add kvm_extable for vaxorcism code
+    - KVM: arm64: Survive synchronous exceptions caused by AT instructions
+    - KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception
+    - dt-bindings: mmc: tegra: Add tmclk for Tegra210 and later
+    - arm64: tegra: Add missing timeout clock to Tegra194 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra186 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra210 SDMMC
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra210
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra186
+    - scsi: target: tcmu: Fix size in calls to tcmu_flush_dcache_range
+    - scsi: target: tcmu: Optimize use of flush_dcache_page
+    - Linux 5.4.63
+  * Focal update: v5.4.62 upstream stable release (LP: #1895174)
+    - binfmt_flat: revert "binfmt_flat: don't offset the data start"
+    - gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
+    - net: Fix potential wrong skb->protocol in skb_vlan_untag()
+    - net: nexthop: don't allow empty NHA_GROUP
+    - net: qrtr: fix usage of idr in port assignment to socket
+    - net: sctp: Fix negotiation of the number of data streams.
+    - net/smc: Prevent kernel-infoleak in __smc_diag_dump()
+    - tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
+    - net: ena: Make missed_tx stat incremental
+    - net/sched: act_ct: Fix skb double-free in tcf_ct_handle_fragments() error
+      flow
+    - ipvlan: fix device features
+    - ALSA: pci: delete repeated words in comments
+    - ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt
+    - ASoC: img-parallel-out: Fix a reference count leak
+    - ASoC: tegra: Fix reference count leaks.
+    - mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
+    - arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
+    - powerpc/xive: Ignore kmemleak false positives
+    - media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA
+      value in debiirq()
+    - blktrace: ensure our debugfs dir exists
+    - scsi: target: tcmu: Fix crash on ARM during cmd completion
+    - mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs
+    - iommu/iova: Don't BUG on invalid PFNs
+    - drm/amdkfd: Fix reference count leaks.
+    - drm/radeon: fix multiple reference count leak
+    - drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
+    - drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
+    - drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
+    - drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
+    - scsi: lpfc: Fix shost refcount mismatch when deleting vport
+    - xfs: Don't allow logging of XFS_ISTALE inodes
+    - scsi: target: Fix xcopy sess release leak
+    - selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
+    - f2fs: fix error path in do_recover_data()
+    - omapfb: fix multiple reference count leaks due to pm_runtime_get_sync
+    - PCI: Fix pci_create_slot() reference count leak
+    - ARM: dts: ls1021a: output PPS signal on FIPER2
+    - rtlwifi: rtl8192cu: Prevent leaking urb
+    - mips/vdso: Fix resource leaks in genvdso.c
+    - cec-api: prevent leaking memory through hole in structure
+    - HID: quirks: add NOGET quirk for Logitech GROUP
+    - f2fs: fix use-after-free issue
+    - drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
+    - drm/nouveau: fix reference count leak in nv50_disp_atomic_commit
+    - drm/nouveau: Fix reference count leak in nouveau_connector_detect
+    - locking/lockdep: Fix overflow in presentation of average lock-time
+    - btrfs: file: reserve qgroup space after the hole punch range is locked
+    - btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode
+    - scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
+    - ceph: fix potential mdsc use-after-free crash
+    - ceph: do not access the kiocb after aio requests
+    - scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
+    - EDAC/ie31200: Fallback if host bridge device is already initialized
+    - hugetlbfs: prevent filesystem stacking of hugetlbfs
+    - media: davinci: vpif_capture: fix potential double free
+    - KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
+    - powerpc/spufs: add CONFIG_COREDUMP dependency
+    - USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
+    - brcmfmac: Set timeout value when configuring power save
+    - efi: provide empty efi_enter_virtual_mode implementation
+    - arm64: Fix __cpu_logical_map undefined issue
+    - Revert "ath10k: fix DMA related firmware crashes on multiple devices"
+    - sched/uclamp: Protect uclamp fast path code with static key
+    - sched/uclamp: Fix a deadlock when enabling uclamp static key
+    - usb: cdns3: gadget: always zeroed TRB buffer when enable endpoint
+    - PM / devfreq: rk3399_dmc: Add missing of_node_put()
+    - PM / devfreq: rk3399_dmc: Disable devfreq-event device when fails
+    - PM / devfreq: rk3399_dmc: Fix kernel oops when rockchip,pmu is absent
+    - drm/xen: fix passing zero to 'PTR_ERR' warning
+    - drm/xen-front: Fix misused IS_ERR_OR_NULL checks
+    - s390/numa: set node distance to LOCAL_DISTANCE
+    - btrfs: factor out inode items copy loop from btrfs_log_inode()
+    - btrfs: only commit the delayed inode when doing a full fsync
+    - btrfs: only commit delayed items at fsync if we are logging a directory
+    - mm/shuffle: don't move pages between zones and don't read garbage memmaps
+    - mm: fix kthread_use_mm() vs TLB invalidate
+    - mm/cma.c: switch to bitmap_zalloc() for cma bitmap allocation
+    - cma: don't quit at first error when activating reserved areas
+    - gpu/drm: ingenic: Use the plane's src_[x,y] to configure DMA length
+    - drm/ingenic: Fix incorrect assumption about plane->index
+    - drm/amd/display: Trigger modesets on MST DSC connectors
+    - drm/amd/display: Add additional config guards for DCN
+    - drm/amd/display: Fix dmesg warning from setting abm level
+    - mm/vunmap: add cond_resched() in vunmap_pmd_range
+    - EDAC: sb_edac: get rid of unused vars
+    - EDAC: skx_common: get rid of unused type var
+    - EDAC/{i7core,sb,pnd2,skx}: Fix error event severity
+    - PCI: qcom: Add missing ipq806x clocks in PCIe driver
+    - PCI: qcom: Change duplicate PCI reset to phy reset
+    - PCI: qcom: Add missing reset for ipq806x
+    - cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
+    - ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)
+    - media: gpio-ir-tx: improve precision of transmitted signal due to scheduling
+    - block: respect queue limit of max discard segment
+    - block: virtio_blk: fix handling single range discard request
+    - drm/msm/adreno: fix updating ring fence
+    - block: Fix page_is_mergeable() for compound pages
+    - bfq: fix blkio cgroup leakage v4
+    - hwmon: (nct7904) Correct divide by 0
+    - blk-mq: insert request not through ->queue_rq into sw/scheduler queue
+    - blkcg: fix memleak for iolatency
+    - nvme-fc: Fix wrong return value in __nvme_fc_init_request()
+    - nvme: multipath: round-robin: fix single non-optimized path case
+    - null_blk: fix passing of REQ_FUA flag in null_handle_rq
+    - i2c: core: Don't fail PRP0001 enumeration when no ID table exist
+    - i2c: rcar: in slave mode, clear NACK earlier
+    - usb: gadget: f_tcm: Fix some resource leaks in some error paths
+    - spi: stm32: clear only asserted irq flags on interrupt
+    - jbd2: make sure jh have b_transaction set in refile/unfile_buffer
+    - ext4: don't BUG on inconsistent journal feature
+    - ext4: handle read only external journal device
+    - jbd2: abort journal if free a async write error metadata buffer
+    - ext4: handle option set by mount flags correctly
+    - ext4: handle error of ext4_setup_system_zone() on remount
+    - ext4: correctly restore system zone info when remount fails
+    - fs: prevent BUG_ON in submit_bh_wbc()
+    - spi: stm32h7: fix race condition at end of transfer
+    - spi: stm32: fix fifo threshold level in case of short transfer
+    - spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate
+    - spi: stm32: always perform registers configuration prior to transfer
+    - drm/amd/powerplay: correct Vega20 cached smu feature state
+    - drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading
+    - drm/amd/display: Switch to immediate mode for updating infopackets
+    - netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency
+    - can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect
+      corruptions
+    - ALSA: hda/realtek: Add model alc298-samsung-headphone
+    - s390/cio: add cond_resched() in the slow_eval_known_fn() loop
+    - ASoC: wm8994: Avoid attempts to read unreadable registers
+    - selftests: disable rp_filter for icmp_redirect.sh
+    - scsi: fcoe: Fix I/O path allocation
+    - scsi: ufs: Fix possible infinite loop in ufshcd_hold
+    - scsi: ufs: Improve interrupt handling for shared interrupts
+    - scsi: ufs: Clean up completed request without interrupt notification
+    - scsi: qla2xxx: Fix login timeout
+    - scsi: qla2xxx: Check if FW supports MQ before enabling
+    - scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
+    - Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
+    - macvlan: validate setting of multiple remote source MAC addresses
+    - net: gianfar: Add of_node_put() before goto statement
+    - powerpc/perf: Fix soft lockups due to missed interrupt accounting
+    - arm64: Move handling of erratum 1418040 into C code
+    - arm64: Allow booting of late CPUs affected by erratum 1418040
+    - block: fix get_max_io_size()
+    - block: loop: set discard granularity and alignment for block device backed
+      loop
+    - HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
+    - blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART
+    - btrfs: reset compression level for lzo on remount
+    - btrfs: check the right error variable in btrfs_del_dir_entries_in_log
+    - btrfs: fix space cache memory leak after transaction abort
+    - btrfs: detect nocow for swap after snapshot delete
+    - fbcon: prevent user font height or width change from causing potential out-
+      of-bounds access
+    - USB: lvtest: return proper error code in probe
+    - vt: defer kfree() of vc_screenbuf in vc_do_resize()
+    - vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
+    - serial: samsung: Removes the IRQ not found warning
+    - serial: pl011: Fix oops on -EPROBE_DEFER
+    - serial: pl011: Don't leak amba_ports entry on driver register error
+    - serial: stm32: avoid kernel warning on absence of optional IRQ
+    - serial: 8250_exar: Fix number of ports for Commtech PCIe cards
+    - serial: 8250: change lock order in serial8250_do_startup()
+    - writeback: Protect inode->i_io_list with inode->i_lock
+    - writeback: Avoid skipping inode writeback
+    - writeback: Fix sync livelock due to b_dirty_time processing
+    - XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN
+      data pointer which contains XEN specific information.
+    - usb: host: xhci: fix ep context print mismatch in debugfs
+    - xhci: Do warm-reset when both CAS and XDEV_RESUME are set
+    - xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
+    - ARM64: vdso32: Install vdso32 from vdso_install
+    - arm64: vdso32: make vdso32 install conditional
+    - PM: sleep: core: Fix the handling of pending runtime resume requests
+    - powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
+    - device property: Fix the secondary firmware node handling in
+      set_primary_fwnode()
+    - crypto: af_alg - Work around empty control messages without MSG_MORE
+    - genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
+    - irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by
+      mistake
+    - x86/hotplug: Silence APIC only after all interrupts are migrated
+    - drm/amdgpu: Fix buffer overflow in INFO ioctl
+    - drm/amdgpu/gfx10: refine mgcg setting
+    - drm/amd/powerplay: Fix hardmins not being sent to SMU for RV
+    - drm/amd/pm: correct Vega10 swctf limit setting
+    - drm/amd/pm: correct Vega12 swctf limit setting
+    - drm/amd/pm: correct Vega20 swctf limit setting
+    - drm/amd/pm: correct the thermal alert temperature limit settings
+    - USB: yurex: Fix bad gfp argument
+    - usb: uas: Add quirk for PNY Pro Elite
+    - USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
+    - USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
+    - usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
+    - USB: gadget: u_f: add overflow checks to VLA macros
+    - USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
+    - USB: gadget: u_f: Unbreak offset calculation in VLAs
+    - USB: cdc-acm: rework notification_buffer resizing
+    - usb: storage: Add unusual_uas entry for Sony PSZ drives
+    - drm/i915: Fix cmd parser desc matching with masks
+    - usb: dwc3: gadget: Don't setup more than requested
+    - usb: dwc3: gadget: Fix handling ZLP
+    - usb: dwc3: gadget: Handle ZLP for sg requests
+    - fbmem: pull fbcon_update_vcs() out of fb_set_var()
+    - kheaders: remove unneeded 'cat' command piped to 'head' / 'tail'
+    - kheaders: optimize md5sum calculation for in-tree builds
+    - kheaders: optimize header copy for in-tree builds
+    - kheaders: remove the last bashism to allow sh to run it
+    - kheaders: explain why include/config/autoconf.h is excluded from md5sum
+    - kbuild: add variables for compression tools
+    - kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
+    - HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
+    - ALSA: usb-audio: Update documentation comment for MS2109 quirk
+    - io_uring: Fix NULL pointer dereference in io_sq_wq_submit_work()
+    - Linux 5.4.62
+  * DELL LATITUDE 5491 touchscreen doesn't work (LP: #1889446) // Focal update:
+    v5.4.62 upstream stable release (LP: #1895174)
+    - USB: quirks: Add no-lpm quirk for another Raydium touchscreen
+  * [NUC8CCHK][HDA-Intel - HDA Intel PCH, playback] No sound at all
+    (LP: #1875199) // Focal update: v5.4.62 upstream stable release
+    (LP: #1895174)
+    - ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged
+  * Focal update: v5.4.61 upstream stable release (LP: #1893115)
+    - Documentation/llvm: add documentation on building w/ Clang/LLVM
+    - Documentation/llvm: fix the name of llvm-size
+    - net: wan: wanxl: use allow to pass CROSS_COMPILE_M68k for rebuilding
+      firmware
+    - net: wan: wanxl: use $(M68KCC) instead of $(M68KAS) for rebuilding firmware
+    - x86/boot: kbuild: allow readelf executable to be specified
+    - kbuild: remove PYTHON2 variable
+    - kbuild: remove AS variable
+    - kbuild: replace AS=clang with LLVM_IAS=1
+    - kbuild: support LLVM=1 to switch the default tools to Clang/LLVM
+    - drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
+    - gfs2: Improve mmap write vs. punch_hole consistency
+    - gfs2: Never call gfs2_block_zero_range with an open transaction
+    - perf probe: Fix memory leakage when the probe point is not found
+    - khugepaged: khugepaged_test_exit() check mmget_still_valid()
+    - khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
+    - bcache: avoid nr_stripes overflow in bcache_device_init()
+    - btrfs: export helpers for subvolume name/id resolution
+    - btrfs: don't show full path of bind mounts in subvol=
+    - btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
+    - btrfs: add wrapper for transaction abort predicate
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion
+    - can: j1939: transport: j1939_session_tx_dat(): fix use-after-free read in
+      j1939_tp_txtimer()
+    - can: j1939: socket: j1939_sk_bind(): make sure ml_priv is allocated
+    - [Config] update config for SPI_DYNAMIC
+    - spi: Prevent adding devices below an unregistering controller
+    - romfs: fix uninitialized memory leak in romfs_dev_read()
+    - kernel/relay.c: fix memleak on destroy relay channel
+    - uprobes: __replace_page() avoid BUG in munlock_vma_page()
+    - mm: include CMA pages in lowmem_reserve at boot
+    - mm, page_alloc: fix core hung in free_pcppages_bulk()
+    - RDMA/hfi1: Correct an interlock issue for TID RDMA WRITE request
+    - ext4: fix checking of directory entry validity for inline directories
+    - jbd2: add the missing unlock_buffer() in the error path of
+      jbd2_write_superblock()
+    - scsi: zfcp: Fix use-after-free in request timeout handlers
+    - drm/amdgpu/display: use GFP_ATOMIC in dcn20_validate_bandwidth_internal
+    - drm/amd/display: Fix EDID parsing after resume from suspend
+    - drm/amd/display: fix pow() crashing when given base 0
+    - kthread: Do not preempt current task if it is going to call schedule()
+    - opp: Enable resources again if they were disabled earlier
+    - scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
+    - scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM
+    - media: budget-core: Improve exception handling in budget_register()
+    - rtc: goldfish: Enable interrupt in set_alarm() when necessary
+    - media: vpss: clean up resources in init
+    - Input: psmouse - add a newline when printing 'proto' by sysfs
+    - MIPS: Fix unable to reserve memory for Crash kernel
+    - m68knommu: fix overwriting of bits in ColdFire V3 cache control
+    - svcrdma: Fix another Receive buffer leak
+    - xfs: fix inode quota reservation checks
+    - drm/ttm: fix offset in VMAs with a pg_offs in ttm_bo_vm_access
+    - jffs2: fix UAF problem
+    - ceph: fix use-after-free for fsc->mdsc
+    - swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses
+    - cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0
+    - scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases
+    - virtio_ring: Avoid loop when vq is broken in virtqueue_poll
+    - media: camss: fix memory leaks on error handling paths in probe
+    - tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null
+      pointer dereference
+    - xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
+    - alpha: fix annotation of io{read,write}{16,32}be()
+    - fs/signalfd.c: fix inconsistent return codes for signalfd4
+    - ext4: fix potential negative array index in do_split()
+    - ext4: don't allow overlapping system zones
+    - netfilter: nf_tables: nft_exthdr: the presence return value should be
+      little-endian
+    - spi: stm32: fixes suspend/resume management
+    - ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
+    - ASoC: q6routing: add dummy register read/write function
+    - bpf: sock_ops sk access may stomp registers when dst_reg = src_reg
+    - can: j1939: fix kernel-infoleak in j1939_sk_sock2sockaddr_can()
+    - can: j1939: transport: j1939_simple_recv(): ignore local J1939 messages send
+      not by J1939 stack
+    - can: j1939: transport: add j1939_session_skb_find_by_offset() function
+    - i40e: Set RX_ONLY mode for unicast promiscuous on VLAN
+    - i40e: Fix crash during removing i40e driver
+    - net: fec: correct the error path for regulator disable in probe
+    - bonding: show saner speed for broadcast mode
+    - can: j1939: fix support for multipacket broadcast message
+    - can: j1939: cancel rxtimer on multipacket broadcast session complete
+    - can: j1939: abort multipacket broadcast session when timeout occurs
+    - can: j1939: add rxtimer for multipacket broadcast session
+    - bonding: fix a potential double-unregister
+    - s390/runtime_instrumentation: fix storage key handling
+    - s390/ptrace: fix storage key handling
+    - ASoC: msm8916-wcd-analog: fix register Interrupt offset
+    - ASoC: intel: Fix memleak in sst_media_open
+    - vfio/type1: Add proper error unwind for vfio_iommu_replay()
+    - kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
+    - kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode
+    - Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe"
+    - kconfig: qconf: do not limit the pop-up menu to the first row
+    - kconfig: qconf: fix signal connection to invalid slots
+    - efi: avoid error message when booting under Xen
+    - Fix build error when CONFIG_ACPI is not set/enabled:
+    - RDMA/bnxt_re: Do not add user qps to flushlist
+    - afs: Fix NULL deref in afs_dynroot_depopulate()
+    - bonding: fix active-backup failover for current ARP slave
+    - net: ena: Prevent reset after device destruction
+    - net: gemini: Fix missing free_netdev() in error path of
+      gemini_ethernet_port_probe()
+    - hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit()
+    - net: dsa: b53: check for timeout
+    - powerpc/pseries: Do not initiate shutdown when system is running on UPS
+    - efi: add missed destroy_workqueue when efisubsys_init fails
+    - epoll: Keep a reference on files added to the check list
+    - do_epoll_ctl(): clean the failure exits up a bit
+    - mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
+    - xen: don't reschedule in preemption off sections
+    - KVM: Pass MMU notifier range flags to kvm_unmap_hva_range()
+    - KVM: arm64: Only reschedule if MMU_NOTIFIER_RANGE_BLOCKABLE is not set
+    - Linux 5.4.61
+  * [UBUNTU 20.04] zPCI device hot-plug during boot may result in unusable
+    device (LP: #1893778)
+    - s390/pci: ignore stale configuration request event
+  * [SRU] [Focal/OEM-5.6/Groovy]Fix AMD usb host controller lost after stress S3
+    (LP: #1893914)
+    - SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Wed, 23 Sep 2020 00:56:33 -0400
+
+linux-gkeop-5.4 (5.4.0-1001.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1001.1 -proposed tracker (LP: #1895820)
+
+  * Request for eBPF patches into the 5.4 kernel (LP: #1887740)
+    - bpf: Enable retrieval of socket cookie for bind/post-bind hook
+    - bpf: Enable perf event rb output for bpf cgroup progs
+    - bpf: Add netns cookie and enable it for bpf cgroup hooks
+    - bpf, net: Fix build issue when net ns not configured
+    - bpf: Allow to retrieve cgroup v1 classid from v2 hooks
+    - bpf: Enable retrival of pid/tgid/comm from bpf cgroup hooks
+    - bpf: Add get{peer, sock}name attach types for sock_addr
+    - bpf, sk_msg: Add some generic helpers that may be useful from sk_msg
+    - bpf: Add BPF_FUNC_jiffies64
+    - bpf: Add socket assign support
+    - net: Track socket refcounts in skb_steal_sock()
+    - bpf: Don't refcount LISTEN sockets in sk_assign()
+    - bpf: Fix use of sk->sk_reuseport from sk_assign
+
+  [ Ubuntu: 5.4.0-48.52~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-48.52~18.04.1 -proposed tracker (LP: #1894653)
+  * focal/linux: 5.4.0-48.52 -proposed tracker (LP: #1894654)
+  * mm/slub kernel oops on focal kernel 5.4.0-45 (LP: #1895109)
+    - SAUCE: Revert "mm/slub: fix a memory leak in sysfs_slab_add()"
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+  * Introduce the new NVIDIA 450-server and the 450 UDA series (LP: #1887674)
+    - [packaging] add signed modules for nvidia 450 and 450-server
+  * [UBUNTU 20.04] zPCI attach/detach issues with PF/VF linking support
+    (LP: #1892849)
+    - s390/pci: fix zpci_bus_link_virtfn()
+    - s390/pci: re-introduce zpci_remove_device()
+    - s390/pci: fix PF/VF linking on hot plug
+  * [UBUNTU 20.04] kernel: s390/cpum_cf,perf: changeDFLT_CCERROR counter name
+    (LP: #1891454)
+    - s390/cpum_cf, perf: change DFLT_CCERROR counter name
+  * [UBUNTU 20.04] zPCI: Enabling of a reserved PCI function regression
+    introduced by multi-function support (LP: #1891437)
+    - s390/pci: fix enabling a reserved PCI function
+  * CVE-2020-12888
+    - vfio/type1: Support faulting PFNMAP vmas
+    - vfio-pci: Fault mmaps to enable vma tracking
+    - vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
+  *  [Hyper-V] VSS and File Copy daemons intermittently fails to start
+    (LP: #1891224)
+    - [Packaging] Bind hv_vss_daemon startup to hv_vss device
+    - [Packaging] bind hv_fcopy_daemon startup to hv_fcopy device
+  * alsa/hdmi: support nvidia mst hdmi/dp audio (LP: #1867704)
+    - ALSA: hda - Rename snd_hda_pin_sense to snd_hda_jack_pin_sense
+    - ALSA: hda - Add DP-MST jack support
+    - ALSA: hda - Add DP-MST support for non-acomp codecs
+    - ALSA: hda - Add DP-MST support for NVIDIA codecs
+    - ALSA: hda: hdmi - fix regression in connect list handling
+    - ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
+    - ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
+    - ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
+    - ALSA: hda - Fix DP-MST support for NVIDIA codecs
+  * Focal update: v5.4.60 upstream stable release (LP: #1892899)
+    - smb3: warn on confusing error scenario with sec=krb5
+    - genirq/affinity: Make affinity setting if activated opt-in
+    - genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq()
+    - PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
+    - PCI: Add device even if driver attach failed
+    - PCI: qcom: Define some PARF params needed for ipq8064 SoC
+    - PCI: qcom: Add support for tx term offset for rev 2.1.0
+    - btrfs: allow use of global block reserve for balance item deletion
+    - btrfs: free anon block device right after subvolume deletion
+    - btrfs: don't allocate anonymous block device for user invisible roots
+    - btrfs: ref-verify: fix memory leak in add_block_entry
+    - btrfs: stop incremening log_batch for the log root tree when syncing log
+    - btrfs: remove no longer needed use of log_writers for the log root tree
+    - btrfs: don't traverse into the seed devices in show_devname
+    - btrfs: open device without device_list_mutex
+    - btrfs: move the chunk_mutex in btrfs_read_chunk_tree
+    - btrfs: relocation: review the call sites which can be interrupted by signal
+    - btrfs: add missing check for nocow and compression inode flags
+    - btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on
+      relocation tree
+    - btrfs: sysfs: use NOFS for device creation
+    - btrfs: don't WARN if we abort a transaction with EROFS
+    - btrfs: fix race between page release and a fast fsync
+    - btrfs: fix messages after changing compression level by remount
+    - btrfs: only search for left_info if there is no right_info in
+      try_merge_free_space
+    - btrfs: inode: fix NULL pointer dereference if inode doesn't need compression
+    - btrfs: fix memory leaks after failure to lookup checksums during inode
+      logging
+    - btrfs: make sure SB_I_VERSION doesn't get unset by remount
+    - btrfs: fix return value mixup in btrfs_get_extent
+    - arm64: perf: Correct the event index in sysfs
+    - dt-bindings: iio: io-channel-mux: Fix compatible string in example code
+    - iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()
+    - xtensa: add missing exclusive access state management
+    - xtensa: fix xtensa_pmu_setup prototype
+    - cifs: Fix leak when handling lease break for cached root fid
+    - powerpc/ptdump: Fix build failure in hashpagetable.c
+    - powerpc: Allow 4224 bytes of stack expansion for the signal frame
+    - powerpc: Fix circular dependency between percpu.h and mmu.h
+    - pinctrl: ingenic: Enhance support for IRQ_TYPE_EDGE_BOTH
+    - media: vsp1: dl: Fix NULL pointer dereference on unbind
+    - net: ethernet: stmmac: Disable hardware multicast filter
+    - net: stmmac: dwmac1000: provide multicast filter fallback
+    - net/compat: Add missing sock updates for SCM_RIGHTS
+    - md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
+    - bcache: allocate meta data pages as compound pages
+    - bcache: fix overflow in offset_to_stripe()
+    - mac80211: fix misplaced while instead of if
+    - driver core: Avoid binding drivers to dead devices
+    - MIPS: CPU#0 is not hotpluggable
+    - MIPS: qi_lb60: Fix routing to audio amplifier
+    - ext2: fix missing percpu_counter_inc
+    - khugepaged: collapse_pte_mapped_thp() flush the right range
+    - khugepaged: collapse_pte_mapped_thp() protect the pmd lock
+    - ocfs2: change slot number type s16 to u16
+    - mm/page_counter.c: fix protection usage propagation
+    - mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
+    - ftrace: Setup correct FTRACE_FL_REGS flags for module
+    - kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
+    - tracing/hwlat: Honor the tracing_cpumask
+    - tracing: Use trace_sched_process_free() instead of exit() for pid tracing
+    - tracing: Move pipe reference to trace array instead of current_tracer
+    - watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in
+      watchdog_info.options
+    - watchdog: f71808e_wdt: remove use of wrong watchdog_info option
+    - watchdog: f71808e_wdt: clear watchdog timeout occurred flag
+    - ceph: set sec_context xattr on symlink creation
+    - ceph: handle zero-length feature mask in session messages
+    - pseries: Fix 64 bit logical memory block panic
+    - module: Correctly truncate sysfs sections output
+    - perf intel-pt: Fix FUP packet state
+    - perf intel-pt: Fix duplicate branch after CBR
+    - remoteproc: qcom: q6v5: Update running state before requesting stop
+    - remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
+    - remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load
+    - drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()
+    - orangefs: get rid of knob code...
+    - pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
+    - crypto: algif_aead - Only wake up when ctx->more is zero
+    - mfd: arizona: Ensure 32k clock is put on driver unbind and error
+    - octeontx2-af: change (struct qmem)->entry_sz from u8 to u16
+    - mtd: rawnand: fsl_upm: Remove unused mtd var
+    - platform/chrome: cros_ec_ishtp: Fix a double-unlock issue
+    - RDMA/ipoib: Return void from ipoib_ib_dev_stop()
+    - RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()
+    - media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
+    - media: rockchip: rga: Only set output CSC mode for RGB input
+    - IB/uverbs: Set IOVA on IB MR in uverbs layer
+    - selftests/bpf: Test_progs indicate to shell on non-actions
+    - selftests/bpf: test_progs use another shell exit on non-actions
+    - USB: serial: ftdi_sio: make process-packet buffer unsigned
+    - USB: serial: ftdi_sio: clean up receive processing
+    - crypto: af_alg - Fix regression on empty requests
+    - devres: keep both device name and resource name in pretty name
+    - RDMA/counter: Only bind user QPs in auto mode
+    - RDMA/counter: Allow manually bind QPs with different pids to same counter
+    - mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
+    - crypto: caam - Remove broken arc4 support
+    - gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers
+    - gpu: ipu-v3: image-convert: Wait for all EOFs before completing a tile
+    - dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
+    - clk: actions: Fix h_clk for Actions S500 SoC
+    - selftests/powerpc: ptrace-pkey: Rename variables to make it easier to follow
+      code
+    - selftests/powerpc: ptrace-pkey: Update the test to mark an invalid pkey
+      correctly
+    - selftests/powerpc: ptrace-pkey: Don't update expected UAMOR value
+    - iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
+    - clk: qcom: gcc: fix sm8150 GPU and NPU clocks
+    - clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
+    - iommu/vt-d: Enforce PASID devTLB field mask
+    - i2c: rcar: slave: only send STOP event when we have been addressed
+    - clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
+    - clk: clk-atlas6: fix return value check in atlas6_clk_init()
+    - pwm: bcm-iproc: handle clk_get_rate() return
+    - tools build feature: Use CC and CXX from parent
+    - i2c: rcar: avoid race when unregistering slave
+    - nfs: ensure correct writeback errors are returned on close()
+    - ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
+    - clk: bcm2835: Do not use prediv with bcm2711's PLLs
+    - libnvdimm/security: fix a typo
+    - libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
+    - openrisc: Fix oops caused when dumping stack
+    - scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying
+      targetport
+    - nfs: nfs_file_write() should check for writeback errors
+    - watchdog: initialize device before misc_register
+    - md-cluster: Fix potential error pointer dereference in resize_bitmaps()
+    - x86/tsr: Fix tsc frequency enumeration bug on Lightning Mountain SoC
+    - Input: sentelic - fix error return when fsp_reg_write fails
+    - recordmcount: Fix build failure on non arm64
+    - drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
+    - drm/vmwgfx: Fix two list_for_each loop exit tests
+    - net: qcom/emac: add missed clk_disable_unprepare in error path of
+      emac_clks_phase1_init
+    - nfs: Fix getxattr kernel panic and memory overflow
+    - fs/minix: set s_maxbytes correctly
+    - fs/minix: fix block limit check for V1 filesystems
+    - fs/minix: remove expected error message in block_to_path()
+    - fs/ufs: avoid potential u32 multiplication overflow
+    - test_kmod: avoid potential double free in trigger_config_run_type()
+    - i2c: iproc: fix race between client unreg and isr
+    - mfd: dln2: Run event handler loop under spinlock
+    - crypto: algif_aead - fix uninitialized ctx->init
+    - ALSA: echoaudio: Fix potential Oops in snd_echo_resume()
+    - perf bench mem: Always memset source before memcpy
+    - tools build feature: Quote CC and CXX for their arguments
+    - perf/x86/rapl: Fix missing psys sysfs attributes
+    - sh: landisk: Add missing initialization of sh_io_port_base
+    - khugepaged: retract_page_tables() remember to test exit
+    - arm64: dts: marvell: espressobin: add ethernet alias
+    - drm/panfrost: Use kvfree() to free bo->sgts
+    - drm: Added orientation quirk for ASUS tablet model T103HAF
+    - drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
+    - drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume
+    - drm/amd/display: dchubbub p-state warning during surface planes switch
+    - Linux 5.4.60
+    - kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417)
+    - tracepoint: Mark __tracepoint_string's __used
+    - HID: input: Fix devices that return multiple bytes in battery report
+    - nvme: add a Identify Namespace Identification Descriptor list quirk
+    - fs/io_uring.c: Fix uninitialized variable is referenced in io_submit_sqe
+    - clk: qcom: clk-rpmh: Wait for completion when enabling clocks
+    - x86/mce/inject: Fix a wrong assignment of i_mce.status
+    - sched/fair: Fix NOHZ next idle balance
+    - sched: correct SD_flags returned by tl->sd_flags()
+    - arm64: dts: rockchip: fix rk3368-lion gmac reset gpio
+    - arm64: dts: rockchip: fix rk3399-puma vcc5v0-host gpio
+    - arm64: dts: rockchip: fix rk3399-puma gmac reset gpio
+    - EDAC: Fix reference count leaks
+    - crc-t10dif: Fix potential crypto notify dead-lock
+    - arm64: dts: qcom: msm8916: Replace invalid bias-pull-none property
+    - crypto: ccree - fix resource leak on error path
+    - ARM: exynos: MCPM: Restore big.LITTLE cpuidle support
+    - firmware: arm_scmi: Fix SCMI genpd domain probing
+    - arm64: dts: exynos: Fix silent hang after boot on Espresso
+    - sched/uclamp: Fix initialization of struct uclamp_rq
+    - clk: scmi: Fix min and max rate when registering clocks with discrete rates
+    - m68k: mac: Don't send IOP message until channel is idle
+    - m68k: mac: Fix IOP status/control register writes
+    - platform/x86: intel-hid: Fix return value check in check_acpi_dev()
+    - platform/x86: intel-vbtn: Fix return value check in check_acpi_dev()
+    - ARM: dts: gose: Fix ports node name for adv7180
+    - ARM: dts: gose: Fix ports node name for adv7612
+    - ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Add regulator supply to all CPU
+      cores
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Fix CPU supply voltages
+    - spi: lantiq: fix: Rx overflow error in full duplex mode
+    - tpm: Require that all digests are present in TCG_PCR_EVENT2 structures
+    - recordmcount: only record relocation of type R_AARCH64_CALL26 on arm64.
+    - regulator: fix memory leak on error path of regulator_register()
+    - io_uring: fix sq array offset calculation
+    - spi: rockchip: Fix error in SPI slave pio read
+    - ARM: socfpga: PM: add missing put_device() call in
+      socfpga_setup_ocram_self_refresh()
+    - iocost: Fix check condition of iocg abs_vdebt
+    - irqchip/ti-sci-inta: Fix return value about devm_ioremap_resource()
+    - seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
+    - md: raid0/linear: fix dereference before null check on pointer mddev
+    - nvme-tcp: fix controller reset hang during traffic
+    - nvme-rdma: fix controller reset hang during traffic
+    - nvme-multipath: fix logic for non-optimized paths
+    - nvme-multipath: do not fall back to __nvme_find_path() for non-optimized
+      paths
+    - drm/tilcdc: fix leak & null ref in panel_connector_get_modes
+    - soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag
+    - Bluetooth: add a mutex lock to avoid UAF in do_enale_set
+    - loop: be paranoid on exit and prevent new additions / removals
+    - fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls
+    - drm/amdgpu: avoid dereferencing a NULL pointer
+    - drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync
+    - crypto: aesni - Fix build with LLVM_IAS=1
+    - video: fbdev: savage: fix memory leak on error handling path in probe
+    - video: fbdev: neofb: fix memory leak in neo_scan_monitor()
+    - bus: ti-sysc: Add missing quirk flags for usb_host_hs
+    - md-cluster: fix wild pointer of unlock_all_bitmaps()
+    - drm/nouveau/kms/nv50-: Fix disabling dithering
+    - arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding
+    - drm/etnaviv: fix ref count leak via pm_runtime_get_sync
+    - drm/nouveau: fix reference count leak in nouveau_debugfs_strap_peek
+    - drm/nouveau: fix multiple instances of reference count leaks
+    - mmc: sdhci-cadence: do not use hardware tuning for SD mode
+    - btrfs: fix lockdep splat from btrfs_dump_space_info
+    - usb: mtu3: clear dual mode of u3port when disable device
+    - drm: msm: a6xx: fix gpu failure after system resume
+    - drm/msm: Fix a null pointer access in msm_gem_shrinker_count()
+    - drm/debugfs: fix plain echo to connector "force" attribute
+    - drm/radeon: disable AGP by default
+    - irqchip/irq-mtk-sysirq: Replace spinlock with raw_spinlock
+    - mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls
+    - drm/amdgpu/display bail early in dm_pp_get_static_clocks
+    - drm/amd/powerplay: fix compile error with ARCH=arc
+    - bpf: Fix fds_example SIGSEGV error
+    - brcmfmac: keep SDIO watchdog running when console_interval is non-zero
+    - brcmfmac: To fix Bss Info flag definition Bug
+    - brcmfmac: set state of hanger slot to FREE when flushing PSQ
+    - platform/x86: asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15
+    - iwlegacy: Check the return value of pcie_capability_read_*()
+    - gpu: host1x: debug: Fix multiple channels emitting messages simultaneously
+    - ionic: update eid test for overflow
+    - mmc: sdhci-pci-o2micro: Bug fix for O2 host controller Seabird1
+    - usb: gadget: net2280: fix memory leak on probe error handling paths
+    - bdc: Fix bug causing crash after multiple disconnects
+    - usb: bdc: Halt controller on suspend
+    - dyndbg: fix a BUG_ON in ddebug_describe_flags
+    - bcache: fix super block seq numbers comparision in register_cache_set()
+    - ACPICA: Do not increment operation_region reference counts for field units
+    - drm/msm: ratelimit crtc event overflow error
+    - drm/gem: Fix a leak in drm_gem_objects_lookup()
+    - drm/bridge: ti-sn65dsi86: Clear old error bits before AUX transfers
+    - agp/intel: Fix a memory leak on module initialisation failure
+    - mwifiex: Fix firmware filename for sd8977 chipset
+    - mwifiex: Fix firmware filename for sd8997 chipset
+    - btmrvl: Fix firmware filename for sd8977 chipset
+    - btmrvl: Fix firmware filename for sd8997 chipset
+    - video: fbdev: sm712fb: fix an issue about iounmap for a wrong address
+    - console: newport_con: fix an issue about leak related system resources
+    - video: pxafb: Fix the function used to balance a 'dma_alloc_coherent()' call
+    - ath10k: Acquire tx_lock in tx error paths
+    - iio: improve IIO_CONCENTRATION channel type description
+    - drm/etnaviv: Fix error path on failure to enable bus clk
+    - drm/arm: fix unintentional integer overflow on left shift
+    - clk: bcm63xx-gate: fix last clock availability
+    - leds: lm355x: avoid enum conversion warning
+    - Bluetooth: btusb: fix up firmware download sequence
+    - Bluetooth: btmtksdio: fix up firmware download sequence
+    - media: cxusb-analog: fix V4L2 dependency
+    - media: marvell-ccic: Add missed v4l2_async_notifier_cleanup()
+    - media: omap3isp: Add missed v4l2_ctrl_handler_free() for
+      preview_init_entities()
+    - ASoC: SOF: nocodec: add missing .owner field
+    - ASoC: Intel: bxt_rt298: add missing .owner field
+    - scsi: cumana_2: Fix different dev_id between request_irq() and free_irq()
+    - drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline
+    - cxl: Fix kobject memleak
+    - drm/radeon: fix array out-of-bounds read and write issues
+    - staging: vchiq_arm: Add a matching unregister call
+    - iavf: fix error return code in iavf_init_get_resources()
+    - iavf: Fix updating statistics
+    - RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued()
+    - scsi: powertec: Fix different dev_id between request_irq() and free_irq()
+    - scsi: eesox: Fix different dev_id between request_irq() and free_irq()
+    - ipvs: allow connection reuse for unconfirmed conntrack
+    - media: firewire: Using uninitialized values in node_probe()
+    - media: exynos4-is: Add missed check for pinctrl_lookup_state()
+    - media: cros-ec-cec: do not bail on device_init_wakeup failure
+    - xfs: don't eat an EIO/ENOSPC writeback error when scrubbing data fork
+    - xfs: fix reflink quota reservation accounting error
+    - RDMA/rxe: Skip dgid check in loopback mode
+    - PCI: Fix pci_cfg_wait queue locking problem
+    - drm/stm: repair runtime power management
+    - kobject: Avoid premature parent object freeing in kobject_cleanup()
+    - leds: core: Flush scheduled work for system suspend
+    - drm: panel: simple: Fix bpc for LG LB070WV8 panel
+    - phy: exynos5-usbdrd: Calibrating makes sense only for USB2.0 PHY
+    - drm/bridge: sil_sii8620: initialize return of sii8620_readb
+    - scsi: scsi_debug: Add check for sdebug_max_queue during module init
+    - mwifiex: Prevent memory corruption handling keys
+    - kernfs: do not call fsnotify() with name without a parent
+    - powerpc/rtas: don't online CPUs for partition suspend
+    - powerpc/vdso: Fix vdso cpu truncation
+    - RDMA/qedr: SRQ's bug fixes
+    - RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send queue
+    - ima: Have the LSM free its audit rule
+    - staging: rtl8192u: fix a dubious looking mask before a shift
+    - ASoC: meson: fixes the missed kfree() for axg_card_add_tdm_loopback
+    - PCI/ASPM: Add missing newline in sysfs 'policy'
+    - phy: renesas: rcar-gen3-usb2: move irq registration to init
+    - powerpc/book3s64/pkeys: Use PVR check instead of cpu feature
+    - drm/imx: fix use after free
+    - drm/imx: tve: fix regulator_disable error path
+    - gpu: ipu-v3: Restore RGB32, BGR32
+    - spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM
+    - USB: serial: iuu_phoenix: fix led-activity helpers
+    - usb: core: fix quirks_param_set() writing to a const pointer
+    - thermal: ti-soc-thermal: Fix reversed condition in
+      ti_thermal_expose_sensor()
+    - coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb()
+    - powerpc/perf: Fix missing is_sier_aviable() during build
+    - mt76: mt7615: fix potential memory leak in mcu message handler
+    - phy: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - MIPS: OCTEON: add missing put_device() call in dwc3_octeon_device_init()
+    - usb: dwc2: Fix error path in gadget registration
+    - usb: gadget: f_uac2: fix AC Interface Header Descriptor wTotalLength
+    - scsi: megaraid_sas: Clear affinity hint
+    - scsi: mesh: Fix panic after host or bus reset
+    - net: dsa: mv88e6xxx: MV88E6097 does not support jumbo configuration
+    - macintosh/via-macii: Access autopoll_devs when inside lock
+    - PCI: cadence: Fix updating Vendor ID and Subsystem Vendor ID register
+    - RDMA/core: Fix return error value in _ib_modify_qp() to negative
+    - Smack: fix another vsscanf out of bounds
+    - Smack: prevent underflow in smk_set_cipso()
+    - power: supply: check if calc_soc succeeded in pm860x_init_battery
+    - Bluetooth: hci_h5: Set HCI_UART_RESET_ON_INIT to correct flags
+    - Bluetooth: hci_serdev: Only unregister device if it was registered
+    - net: dsa: rtl8366: Fix VLAN semantics
+    - net: dsa: rtl8366: Fix VLAN set-up
+    - xfs: fix inode allocation block res calculation precedence
+    - selftests/powerpc: Squash spurious errors due to device removal
+    - powerpc/32s: Fix CONFIG_BOOK3S_601 uses
+    - powerpc/boot: Fix CONFIG_PPC_MPC52XX references
+    - selftests/powerpc: Fix CPU affinity for child process
+    - RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP
+    - PCI: Release IVRS table in AMD ACS quirk
+    - [Config] update config for ARMADA_AP_CPU_CLK
+    - cpufreq: ap806: fix cpufreq driver needs ap cpu clk
+    - selftests/powerpc: Fix online CPU selection
+    - ASoC: meson: axg-tdm-interface: fix link fmt setup
+    - ASoC: meson: axg-tdmin: fix g12a skew
+    - ASoC: meson: axg-tdm-formatters: fix sclk inversion
+    - ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK
+    - s390/qeth: don't process empty bridge port events
+    - ice: Graceful error handling in HW table calloc failure
+    - rtw88: fix LDPC field for RA info
+    - rtw88: fix short GI capability based on current bandwidth
+    - rtw88: coex: only skip coex triggered by BT info
+    - wl1251: fix always return 0 error
+    - tools, build: Propagate build failures from tools/build/Makefile.build
+    - tools, bpftool: Fix wrong return value in do_dump()
+    - net/mlx5: DR, Change push vlan action sequence
+    - net/mlx5: Delete extra dump stack that gives nothing
+    - net: ethernet: aquantia: Fix wrong return value
+    - liquidio: Fix wrong return value in cn23xx_get_pf_num()
+    - net: spider_net: Fix the size used in a 'dma_free_coherent()' call
+    - fsl/fman: use 32-bit unsigned integer
+    - fsl/fman: fix dereference null return value
+    - fsl/fman: fix unreachable code
+    - fsl/fman: check dereferencing null pointer
+    - fsl/fman: fix eth hash table allocation
+    - net: thunderx: initialize VF's mailbox mutex before first usage
+    - dlm: Fix kobject memleak
+    - ocfs2: fix unbalanced locking
+    - pinctrl-single: fix pcs_parse_pinconf() return value
+    - svcrdma: Fix page leak in svc_rdma_recv_read_chunk()
+    - x86/fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task
+    - crypto: aesni - add compatibility with IAS
+    - af_packet: TPACKET_V3: fix fill status rwlock imbalance
+    - drivers/net/wan/lapbether: Added needed_headroom and a skb->len check
+    - net: Fix potential memory leak in proto_register()
+    - net/nfc/rawsock.c: add CAP_NET_RAW check.
+    - net: phy: fix memory leak in device-create error path
+    - net: Set fput_needed iff FDPUT_FPUT is set
+    - net/tls: Fix kmap usage
+    - vmxnet3: use correct tcp hdr length when packet is encapsulated
+    - net: refactor bind_bucket fastreuse into helper
+    - net: initialize fastreuse on inet_inherit_port
+    - USB: serial: cp210x: re-enable auto-RTS on open
+    - USB: serial: cp210x: enable usb generic throttle/unthrottle
+    - ALSA: hda - fix the micmute led status for Lenovo ThinkCentre AIO
+    - ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support
+    - ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
+    - ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
+    - 9p: Fix memory leak in v9fs_mount
+    - media: media-request: Fix crash if memory allocation fails
+    - drm/ttm/nouveau: don't call tt destroy callback on alloc failure.
+    - io_uring: set ctx sq/cq entry count earlier
+    - NFS: Don't move layouts to plh_return_segs list while in use
+    - NFS: Don't return layout segments that are in use
+    - cpufreq: Fix locking issues with governors
+    - cpufreq: dt: fix oops on armada37xx
+    - include/asm-generic/vmlinux.lds.h: align ro_after_init
+    - spi: spidev: Align buffers for DMA
+    - mtd: rawnand: qcom: avoid write to unavailable register
+    - erofs: fix extended inode could cross boundary
+    - Revert "parisc: Drop LDCW barrier in CAS code when running UP"
+    - Revert "parisc: Use ldcw instruction for SMP spinlock release barrier"
+    - Revert "parisc: Revert "Release spinlocks using ordered store""
+    - parisc: Do not use an ordered store in pa_tlb_lock()
+    - parisc: Implement __smp_store_release and __smp_load_acquire barriers
+    - parisc: mask out enable and reserved bits from sba imask
+    - ARM: 8992/1: Fix unwind_frame for clang-built kernels
+    - irqdomain/treewide: Free firmware node after domain removal
+    - ALSA: usb-audio: add quirk for Pioneer DDJ-RB
+    - tpm: Unify the mismatching TPM space buffer sizes
+    - pstore: Fix linking when crypto API disabled
+    - crypto: hisilicon - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not
+      specified
+    - crypto: qat - fix double free in qat_uclo_create_batch_init_list
+    - crypto: ccp - Fix use of merged scatterlists
+    - crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
+    - bitfield.h: don't compile-time validate _val in FIELD_FIT
+    - fs/minix: check return value of sb_getblk()
+    - fs/minix: don't allow getting deleted inodes
+    - fs/minix: reject too-large maximum file size
+    - xen/balloon: fix accounting in alloc_xenballooned_pages error path
+    - xen/balloon: make the balloon wait interruptible
+    - xen/gntdev: Fix dmabuf import with non-zero sgt offset
+    - s390/dasd: fix inability to use DASD with DIAG driver
+    - s390/gmap: improve THP splitting
+    - io_uring: Fix NULL pointer dereference in loop_rw_iter()
+    - Linux 5.4.59
+  * Regression on NFS: unable to handle page fault in mempool_alloc_slab
+    (LP: #1886277) // Focal update: v5.4.59 upstream stable release
+    (LP: #1892417)
+    - SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417) //
+    CVE-2019-19770 which shows this issue is not a core debugfs issue, but
+    - blktrace: fix debugfs use after free
+  * update ENA driver for LLQ acceleration mode, new hw support (LP: #1890845)
+    - net: ena: change num_queues to num_io_queues for clarity and consistency
+    - net: ena: multiple queue creation related cleanups
+    - net: ena: ethtool: get_channels: use combined only
+    - net: ena: make ethtool -l show correct max number of queues
+    - net: ena: remove redundant print of number of queues
+    - net: ena: ethtool: support set_channels callback
+    - net: ena: implement XDP drop support
+    - net: ena: Implement XDP_TX action
+    - net: ena: Add first_interrupt field to napi struct
+    - net: ena: fix default tx interrupt moderation interval
+    - net: ena: remove set but not used variable 'rx_ring'
+    - net: ena: remove set but not used variable 'hash_key'
+    - net: ena: ethtool: remove redundant non-zero check on rc
+    - net/amazon: Ensure that driver version is aligned to the linux kernel
+    - net: ena: fix broken interface between ENA driver and FW
+    - net: ena: ethtool: clean up minor indentation issue
+    - net: ena: fix incorrect setting of the number of msix vectors
+    - net: ena: fix request of incorrect number of IRQ vectors
+    - net: ena: avoid memory access violation by validating req_id properly
+    - net: ena: fix continuous keep-alive resets
+    - net: ena: Make some functions static
+    - net: ena: avoid unnecessary admin command when RSS function set fails
+    - net: ena: allow setting the hash function without changing the key
+    - net: ena: change default RSS hash function to Toeplitz
+    - net: ena: changes to RSS hash key allocation
+    - net: ena: remove code that does nothing
+    - net: ena: add unmask interrupts statistics to ethtool
+    - net: ena: add support for reporting of packet drops
+    - net: ena: drop superfluous prototype
+    - net: ena: use SHUTDOWN as reset reason when closing interface
+    - net: ena: cosmetic: remove unnecessary spaces and tabs in ena_com.h macros
+    - net: ena: cosmetic: extract code to ena_indirection_table_set()
+    - net: ena: add support for the rx offset feature
+    - net: ena: rename ena_com_free_desc to make API more uniform
+    - net: ena: use explicit variable size for clarity
+    - net: ena: fix ena_com_comp_status_to_errno() return value
+    - net: ena: simplify ena_com_update_intr_delay_resolution()
+    - net: ena: cosmetic: set queue sizes to u32 for consistency
+    - net: ena: cosmetic: fix spelling and grammar mistakes in comments
+    - net: ena: cosmetic: fix line break issues
+    - net: ena: cosmetic: remove unnecessary code
+    - net: ena: cosmetic: code reorderings
+    - net: ena: cosmetic: fix spacing issues
+    - net: ena: cosmetic: minor code changes
+    - net: ena: reduce driver load time
+    - net: ena: xdp: XDP_TX: fix memory leak
+    - net: ena: xdp: update napi budget for DROP and ABORTED
+    - ena_netdev: use generic power management
+    - net: ena: Fix using plain integer as NULL pointer in ena_init_napi_in_range
+    - net: ena: avoid unnecessary rearming of interrupt vector when busy-polling
+    - net: ena: add reserved PCI device ID
+    - net: ena: cosmetic: satisfy gcc warning
+    - net: ena: cosmetic: change ena_com_stats_admin stats to u64
+    - net: ena: add support for traffic mirroring
+    - net: ena: enable support of rss hash key and function changes
+    - net: ena: move llq configuration from ena_probe to ena_device_init()
+    - net: ena: support new LLQ acceleration mode
+  * [SRU] Fix acpi backlight issue on some thinkpads (LP: #1892010)
+    - platform/x86: thinkpad_acpi: not loading brightness_init when _BCL invalid
+  * [SRU][F/OEM-5.6] add a new OLED panel support for brightness control
+    (LP: #1887909)
+    - drm/dp: Lenovo X13 Yoga OLED panel brightness fix
+  * Realtek [10ec:c82f] Subsystem [17aa:c02f] Wifi adapter not found
+    (LP: #1886247)
+    - SAUCE: rtw88: 8822ce: add support for device ID 0xc82f
+  * KVM: Fix zero_page reference counter overflow when using KSM on KVM compute
+    host (LP: #1837810)
+    - KVM: fix overflow of zero page refcount with ksm running
+  * Fix missing HDMI Audio on another HP Desktop (LP: #1891617)
+    - ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop
+  * alsa/sof: support 1 and 3 dmics (LP: #1891585)
+    - SAUCE: ASoC: SOF: intel: hda: support also devices with 1 and 3 dmics
+  * tcp_fastopen_backup_key.sh from net in ubuntu_kernel_selftests failed on
+    Eoan LPAR (LP: #1869134)
+    - tcp: correct read of TFO keys on big endian systems
+  * Fix false-negative return value for rtnetlink.sh in kselftests/net
+    (LP: #1890136)
+    - selftests: rtnetlink: correct the final return value for the test
+    - selftests: rtnetlink: make kci_test_encap() return sub-test result
+  * Focal update: v5.4.58 upstream stable release (LP: #1891387)
+    - USB: serial: qcserial: add EM7305 QDL product ID
+    - perf/core: Fix endless multiplex timer
+    - USB: iowarrior: fix up report size handling for some devices
+    - usb: xhci: define IDs for various ASMedia host controllers
+    - usb: xhci: Fix ASMedia ASM1142 DMA addressing
+    - io_uring: prevent re-read of sqe->opcode
+    - io_uring: Fix use-after-free in io_sq_wq_submit_work()
+    - Revert "ALSA: hda: call runtime_allow() for all hda controllers"
+    - ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
+    - ALSA: hda/ca0132 - Add new quirk ID for Recon3D.
+    - ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.
+    - ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.
+    - ALSA: seq: oss: Serialize ioctls
+    - staging: android: ashmem: Fix lockdep warning for write operation
+    - staging: rtl8712: handle firmware load failure
+    - Staging: rtl8188eu: rtw_mlme: Fix uninitialized variable authmode
+    - Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
+    - omapfb: dss: Fix max fclk divider for omap36xx
+    - binder: Prevent context manager from incrementing ref 0
+    - Smack: fix use-after-free in smk_write_relabel_self()
+    - scripts: add dummy report mode to add_namespace.cocci
+    - vgacon: Fix for missing check in scrollback handling
+    - mtd: properly check all write ioctls for permissions
+    - leds: wm831x-status: fix use-after-free on unbind
+    - leds: lm36274: fix use-after-free on unbind
+    - leds: da903x: fix use-after-free on unbind
+    - leds: lm3533: fix use-after-free on unbind
+    - leds: 88pm860x: fix use-after-free on unbind
+    - net/9p: validate fds in p9_fd_open
+    - drm/nouveau/fbcon: fix module unload when fbcon init has failed for some
+      reason
+    - drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
+    - drm/drm_fb_helper: fix fbdev with sparc64
+    - i2c: slave: improve sanity check when registering
+    - i2c: slave: add sanity check when unregistering
+    - usb: hso: check for return value in hso_serial_common_create()
+    - net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
+    - ALSA: hda: fix NULL pointer dereference during suspend
+    - firmware: Fix a reference count leak.
+    - cfg80211: check vendor command doit pointer before use
+    - igb: reinit_locked() should be called with rtnl_lock
+    - atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
+    - tools lib traceevent: Fix memory leak in process_dynamic_array_len
+    - Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
+    - xattr: break delegations in {set,remove}xattr
+    - Revert "powerpc/kasan: Fix shadow pages allocation failure"
+    - PCI: tegra: Revert tegra124 raw_violation_fixup
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: fix memory leaks on IPV6_ADDRFORM path
+    - ipv6: Fix nexthop refcnt leak when creating ipv6 route info
+    - net: ethernet: mtk_eth_soc: fix MTU warnings
+    - rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
+    - vxlan: Ensure FDB dump is performed under RCU
+    - net: lan78xx: replace bogus endpoint lookup
+    - appletalk: Fix atalk_proc_init() return path
+    - dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
+    - hv_netvsc: do not use VF device if link is down
+    - net: gre: recompute gre csum for sctp over gre tunnels
+    - net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
+    - openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
+    - Revert "vxlan: fix tos value before xmit"
+    - tcp: apply a floor of 1 for RTT samples from TCP timestamps
+    - ima: move APPRAISE_BOOTPARAM dependency on ARCH_POLICY to runtime
+    - [Config] update annotations for IMA_APPRAISE_BOOTPARAM
+    - nfsd: Fix NFSv4 READ on RDMA when using readv
+    - Linux 5.4.58
+  * Focal update: v5.4.57 upstream stable release (LP: #1891064)
+    - random32: update the net random state on interrupt and activity
+    - ARM: percpu.h: fix build error
+    - random: fix circular include dependency on arm64 after addition of percpu.h
+    - random32: remove net_rand_state from the latent entropy gcc plugin
+    - random32: move the pseudo-random 32-bit definitions to prandom.h
+    - arm64: Workaround circular dependency in pointer_auth.h
+    - ext4: fix direct I/O read error
+    - selftests: bpf: Fix detach from sockmap tests
+    - bpf: sockmap: Require attach_bpf_fd when detaching a program
+    - Linux 5.4.57
+  * Focal update: v5.4.56 upstream stable release (LP: #1891063)
+    - crypto: ccp - Release all allocated memory if sha type is invalid
+    - media: rc: prevent memory leak in cx23888_ir_probe
+    - sunrpc: check that domain table is empty at module unload.
+    - ath10k: enable transmit data ack RSSI for QCA9884
+    - PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
+    - mm/filemap.c: don't bother dropping mmap_sem for zero size readahead
+    - ALSA: usb-audio: Add implicit feedback quirk for SSL2
+    - ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series
+      with ALC289
+    - ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus
+      G14(GA401) series with ALC289
+    - ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference
+      board (alc256)
+    - ALSA: hda/hdmi: Fix keep_power assignment for non-component devices
+    - IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE
+    - vhost/scsi: fix up req type endian-ness
+    - 9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work
+    - wireless: Use offsetof instead of custom macro.
+    - ARM: 8986/1: hw_breakpoint: Don't invoke overflow handler on uaccess
+      watchpoints
+    - ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2
+    - ARM: dts: imx6sx-sdb: Fix the phy-mode on fec2
+    - ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect
+    - virtio_balloon: fix up endian-ness for free cmd id
+    - Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
+    - drm/amd/display: Clear dm_state for fast updates
+    - drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
+    - drm/dbi: Fix SPI Type 1 (9-bit) transfer
+    - drm: hold gem reference until object is no longer accessed
+    - rds: Prevent kernel-infoleak in rds_notify_queue_get()
+    - libtraceevent: Fix build with binutils 2.35
+    - net/x25: Fix x25_neigh refcnt leak when x25 disconnect
+    - net/x25: Fix null-ptr-deref in x25_disconnect
+    - ARM: dts sunxi: Relax a bit the CMA pool allocation range
+    - xfrm: Fix crash when the hold queue is used.
+    - ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - nvme-tcp: fix possible hang waiting for icresp response
+    - selftests/net: rxtimestamp: fix clang issues for target arch PowerPC
+    - selftests/net: psock_fanout: fix clang issues for target arch PowerPC
+    - selftests/net: so_txtime: fix clang issues for target arch PowerPC
+    - sh/tlb: Fix PGTABLE_LEVELS > 2
+    - sh: Fix validation of system call number
+    - net: hns3: fix a TX timeout issue
+    - net: hns3: fix aRFS FD rules leftover after add a user FD rule
+    - net/mlx5: E-switch, Destroy TSAR when fail to enable the mode
+    - net/mlx5e: Fix error path of device attach
+    - net/mlx5: Verify Hardware supports requested ptp function on a given pin
+    - net/mlx5e: Modify uplink state on interface up/down
+    - net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev
+    - net: lan78xx: add missing endpoint sanity check
+    - net: lan78xx: fix transfer-buffer memory leak
+    - rhashtable: Fix unprotected RCU dereference in __rht_ptr
+    - mlx4: disable device on shutdown
+    - mlxsw: core: Increase scope of RCU read-side critical section
+    - mlxsw: core: Free EMAD transactions using kfree_rcu()
+    - ibmvnic: Fix IRQ mapping disposal in error path
+    - bpf: Fix map leak in HASH_OF_MAPS map
+    - mac80211: mesh: Free ie data when leaving mesh
+    - mac80211: mesh: Free pending skb when destroying a mpath
+    - arm64/alternatives: move length validation inside the subsection
+    - arm64: csum: Fix handling of bad packets
+    - Bluetooth: fix kernel oops in store_pending_adv_report
+    - net: nixge: fix potential memory leak in nixge_probe()
+    - net: gemini: Fix missing clk_disable_unprepare() in error path of
+      gemini_ethernet_port_probe()
+    - net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
+    - perf tools: Fix record failure when mixed with ARM SPE event
+    - vxlan: fix memleak of fdb
+    - usb: hso: Fix debug compile warning on sparc32
+    - selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion
+    - qed: Disable "MFW indication via attention" SPAM every 5 minutes
+    - selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support
+    - nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame
+    - scsi: core: Run queue in case of I/O resource contention failure
+    - parisc: add support for cmpxchg on u8 pointers
+    - net: ethernet: ravb: exit if re-initialization fails in tx timeout
+    - Revert "i2c: cadence: Fix the hold bit setting"
+    - x86/unwind/orc: Fix ORC for newly forked tasks
+    - x86/stacktrace: Fix reliable check for empty user task stacks
+    - cxgb4: add missing release on skb in uld_send()
+    - xen-netfront: fix potential deadlock in xennet_remove()
+    - RISC-V: Set maximum number of mapped pages correctly
+    - drivers/net/wan: lapb: Corrected the usage of skb_cow
+    - KVM: arm64: Don't inherit exec permission across page-table levels
+    - KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw
+      disabled
+    - x86/i8259: Use printk_deferred() to prevent deadlock
+    - perf tests bp_account: Make global variable static
+    - perf env: Do not return pointers to local variables
+    - perf bench: Share some global variables to fix build with gcc 10
+    - Linux 5.4.56
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 16 Sep 2020 15:08:28 +0200
+
+linux-gkeop-5.4 (5.4.0-1000.0) bionic; urgency=medium
+
+  * Initial gkeop-5.4 packaging
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 15 Sep 2020 11:30:12 +0200
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/config/amd64/config.common.amd64
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/config/amd64/config.common.amd64
@@ -0,0 +1,3 @@
+#
+# Config options for config.common.amd64 automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/config/amd64/config.flavour.gkeop
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/config/amd64/config.flavour.gkeop
@@ -0,0 +1,3 @@
+#
+# Config options for config.flavour.gkeop automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/config/annotations
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/config/annotations
@@ -0,0 +1,27 @@
+# Menu: HEADER
+# FORMAT: 3
+# ARCH: x86
+
+include "../../debian.master/config/annotations"
+
+# Below configs were defined by flavour for amd64. As gkeop only has one
+# flavour, we replace those options with an arch only definition.
+CONFIG_IRQ_FORCED_THREADING_DEFAULT             policy<{'amd64': 'n'}>
+CONFIG_PREEMPT_VOLUNTARY                        policy<{'amd64': 'y'}>
+CONFIG_PREEMPT                                  policy<{'amd64': 'n'}>
+CONFIG_LATENCYTOP                               policy<{'amd64': 'n'}> mark<ENFORCED>
+CONFIG_LATENCYTOP                               note<https://lists.ubuntu.com/archives/kernel-team/2014-July/045006.html, LP#1655986>
+CONFIG_HZ_250                                   policy<{'amd64': 'y'}>
+CONFIG_HZ_1000                                  policy<{'amd64': 'n'}>
+CONFIG_ATARI_PARTITION                             policy<{'amd64': 'n'}>
+CONFIG_ATARI_PARTITION                             mark<ENFORCED> note<LP:1908264>
+CONFIG_MFD_AHC1EC0                              policy<{'amd64': '-'}>
+CONFIG_AHC1EC0_WDT                              policy<{'amd64': '-'}>
+CONFIG_SENSORS_AHC1EC0_HWMON                    policy<{'amd64': '-'}>
+
+# Using LZ4 compression is not supported in Bionic
+CONFIG_KERNEL_LZ4                               policy<{'amd64': 'n'}>
+CONFIG_KERNEL_GZIP                              policy<{'amd64': 'y'}>
+
+# Not building for i386 but just in case we ever do
+CONFIG_INTEL_IOMMU_SVM                          policy<{'amd64': 'y'}>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/config/config.common.ports
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/config/config.common.ports
@@ -0,0 +1,3 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/config/config.common.ubuntu
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/config/config.common.ubuntu
@@ -0,0 +1,8780 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
+CONFIG_104_QUAD_8=m
+CONFIG_60XX_WDT=m
+CONFIG_64BIT=y
+CONFIG_64BIT_TIME=y
+CONFIG_6LOWPAN=m
+# CONFIG_6LOWPAN_DEBUGFS is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_DEST is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_HOP is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE is not set
+# CONFIG_6LOWPAN_GHC_ICMPV6 is not set
+# CONFIG_6LOWPAN_GHC_UDP is not set
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6PACK=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_8129=y
+CONFIG_8139TOO_PIO=y
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_842_COMPRESS=m
+CONFIG_842_DECOMPRESS=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=m
+CONFIG_ABP060MG=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=m
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
+CONFIG_ACER_WMI=m
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_ADXL=y
+CONFIG_ACPI_ALS=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_EINJ=m
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BGRT=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_CMPC=m
+CONFIG_ACPI_CONFIGFS=m
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_CPPC_LIB=y
+CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_CUSTOM_DSDT_FILE=""
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_DEBUG=y
+CONFIG_ACPI_DEBUGGER=y
+CONFIG_ACPI_DEBUGGER_USER=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_EXTLOG=m
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_HMAT=y
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ACPI_LPIT=y
+CONFIG_ACPI_NFIT=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_PROCESSOR_CSTATE=y
+CONFIG_ACPI_PROCESSOR_IDLE=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TAD=m
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_THERMAL_REL=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_WATCHDOG=y
+CONFIG_ACPI_WMI=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ACRN_GUEST=y
+CONFIG_AD2S1200=m
+CONFIG_AD2S1210=m
+CONFIG_AD2S90=m
+CONFIG_AD5064=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_AD5272=m
+CONFIG_AD5360=m
+CONFIG_AD5380=m
+CONFIG_AD5421=m
+CONFIG_AD5446=m
+CONFIG_AD5449=m
+CONFIG_AD5504=m
+CONFIG_AD5592R=m
+CONFIG_AD5592R_BASE=m
+CONFIG_AD5593R=m
+CONFIG_AD5624R_SPI=m
+CONFIG_AD5686=m
+CONFIG_AD5686_SPI=m
+CONFIG_AD5696_I2C=m
+CONFIG_AD5755=m
+CONFIG_AD5758=m
+CONFIG_AD5761=m
+CONFIG_AD5764=m
+CONFIG_AD5791=m
+CONFIG_AD5933=m
+CONFIG_AD7124=m
+CONFIG_AD7150=m
+CONFIG_AD7192=m
+CONFIG_AD7266=m
+CONFIG_AD7280=m
+CONFIG_AD7291=m
+CONFIG_AD7298=m
+CONFIG_AD7303=m
+CONFIG_AD7476=m
+CONFIG_AD7606=m
+CONFIG_AD7606_IFACE_PARALLEL=m
+CONFIG_AD7606_IFACE_SPI=m
+CONFIG_AD7746=m
+CONFIG_AD7766=m
+CONFIG_AD7768_1=m
+CONFIG_AD7780=m
+CONFIG_AD7791=m
+CONFIG_AD7793=m
+CONFIG_AD7816=m
+CONFIG_AD7887=m
+CONFIG_AD7923=m
+CONFIG_AD7949=m
+CONFIG_AD799X=m
+CONFIG_AD8366=m
+CONFIG_AD8801=m
+CONFIG_AD9523=m
+CONFIG_AD9832=m
+CONFIG_AD9834=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_ADE7854=m
+CONFIG_ADE7854_I2C=m
+CONFIG_ADE7854_SPI=m
+CONFIG_ADF4350=m
+CONFIG_ADF4371=m
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_ADIN_PHY=m
+CONFIG_ADIS16080=m
+CONFIG_ADIS16130=m
+CONFIG_ADIS16136=m
+CONFIG_ADIS16201=m
+CONFIG_ADIS16203=m
+CONFIG_ADIS16209=m
+CONFIG_ADIS16240=m
+CONFIG_ADIS16260=m
+CONFIG_ADIS16400=m
+CONFIG_ADIS16460=m
+CONFIG_ADIS16480=m
+CONFIG_ADJD_S311=m
+CONFIG_ADM8211=m
+CONFIG_ADT7316=m
+CONFIG_ADT7316_I2C=m
+CONFIG_ADT7316_SPI=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_ADXL372=m
+CONFIG_ADXL372_I2C=m
+CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS450=m
+CONFIG_AD_SIGMA_DELTA=m
+CONFIG_AFE4403=m
+CONFIG_AFE4404=m
+CONFIG_AFFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+# CONFIG_AFS_DEBUG_CURSOR is not set
+CONFIG_AFS_FS=m
+CONFIG_AFS_FSCACHE=y
+CONFIG_AF_KCM=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
+CONFIG_AF_RXRPC_IPV6=y
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=y
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_AK09911=m
+CONFIG_AK8975=m
+CONFIG_AL3320A=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_ALTERA_FREEZE_BRIDGE=m
+CONFIG_ALTERA_MBOX=m
+CONFIG_ALTERA_MSGDMA=m
+CONFIG_ALTERA_PR_IP_CORE=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_ALX=m
+CONFIG_AM2315=m
+CONFIG_AMD8111_ETH=m
+CONFIG_AMD_IOMMU=y
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_AMD_MEM_ENCRYPT=y
+# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
+CONFIG_AMD_NB=y
+CONFIG_AMD_NUMA=y
+CONFIG_AMD_PHY=m
+CONFIG_AMD_XGBE=m
+CONFIG_AMD_XGBE_DCB=y
+CONFIG_AMD_XGBE_HAVE_ECC=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_AMILO_RFKILL=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDERFS=m
+CONFIG_ANDROID_BINDER_DEVICES=""
+CONFIG_ANDROID_BINDER_IPC=m
+# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
+# CONFIG_ANDROID_VSOC is not set
+CONFIG_APDS9300=m
+CONFIG_APDS9802ALS=m
+CONFIG_APDS9960=m
+CONFIG_APPLE_GMUX=m
+CONFIG_APPLE_PROPERTIES=y
+CONFIG_APPLICOM=m
+CONFIG_AQTION=m
+CONFIG_AQUANTIA_PHY=m
+CONFIG_AR5523=m
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_ARCH_CLOCKSOURCE_INIT=y
+CONFIG_ARCH_CPUIDLE_HALTPOLL=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ARCH_HAS_ADD_PAGES=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_HAS_FILTER_PGPROT=y
+CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_ARCH_HAS_PKEYS=y
+CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_ARCH_HAS_REFCOUNT=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
+CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=32
+CONFIG_ARCH_MMAP_RND_BITS_MIN=28
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_AS3935=m
+CONFIG_ASHMEM=m
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_ASN1=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_ASUS_LAPTOP=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_ASUS_WIRELESS=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+# CONFIG_ASYNC_RAID6_TEST is not set
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ASYNC_XOR=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AT803X_PHY=m
+CONFIG_ATA=y
+CONFIG_ATALK=m
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_ATA_ACPI=y
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_GENERIC=y
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_CE=y
+# CONFIG_ATH10K_DEBUG is not set
+CONFIG_ATH10K_DEBUGFS=y
+CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SDIO=m
+CONFIG_ATH10K_SPECTRAL=y
+CONFIG_ATH10K_TRACING=y
+CONFIG_ATH10K_USB=m
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_ATH6KL_SDIO=m
+# CONFIG_ATH6KL_TRACING is not set
+CONFIG_ATH6KL_USB=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_AHB=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_COMMON_DEBUG=y
+CONFIG_ATH9K_COMMON_SPECTRAL=y
+CONFIG_ATH9K_DEBUGFS=y
+# CONFIG_ATH9K_DYNACK is not set
+CONFIG_ATH9K_HTC=m
+CONFIG_ATH9K_HTC_DEBUGFS=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_HWRNG=y
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_PCI_NO_EEPROM=m
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_STATION_STATISTICS=y
+CONFIG_ATH9K_WOW=y
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATL1=m
+CONFIG_ATL1C=m
+CONFIG_ATL1E=m
+CONFIG_ATL2=m
+CONFIG_ATLAS_PH_SENSOR=m
+CONFIG_ATM=m
+CONFIG_ATMEL=m
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E_TX_RETRY=16
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ATP=m
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_AUFS_BDEV_LOOP=y
+# CONFIG_AUFS_BRANCH_MAX_1023 is not set
+CONFIG_AUFS_BRANCH_MAX_127=y
+# CONFIG_AUFS_BRANCH_MAX_32767 is not set
+# CONFIG_AUFS_BRANCH_MAX_511 is not set
+# CONFIG_AUFS_BR_FUSE is not set
+CONFIG_AUFS_BR_HFSPLUS=y
+# CONFIG_AUFS_BR_RAMFS is not set
+# CONFIG_AUFS_DEBUG is not set
+CONFIG_AUFS_DIRREN=y
+CONFIG_AUFS_EXPORT=y
+# CONFIG_AUFS_FHSM is not set
+CONFIG_AUFS_FS=m
+# CONFIG_AUFS_HNOTIFY is not set
+CONFIG_AUFS_INO_T_64=y
+# CONFIG_AUFS_RDU is not set
+CONFIG_AUFS_SBILIST=y
+# CONFIG_AUFS_SHWH is not set
+CONFIG_AUFS_XATTR=y
+CONFIG_AURORA_NB8800=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_AX88796B_PHY=m
+CONFIG_AXP20X_ADC=m
+CONFIG_AXP20X_POWER=m
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PIO=y
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_B43_BCMA=y
+CONFIG_B43_BCMA_PIO=y
+# CONFIG_B43_BUSES_BCMA is not set
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_SSB is not set
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43_HWRNG=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PIO=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B43_SSB=y
+CONFIG_B44=m
+CONFIG_B44_PCI=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B53=m
+CONFIG_B53_MDIO_DRIVER=m
+CONFIG_B53_MMAP_DRIVER=m
+CONFIG_B53_SERDES=m
+CONFIG_B53_SPI_DRIVER=m
+CONFIG_B53_SRAB_DRIVER=m
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_AAT2870=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
+CONFIG_BACKLIGHT_AS3711=m
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LM3533=m
+CONFIG_BACKLIGHT_LM3630A=m
+CONFIG_BACKLIGHT_LM3639=m
+CONFIG_BACKLIGHT_LP855X=m
+CONFIG_BACKLIGHT_LP8788=m
+CONFIG_BACKLIGHT_LV5207LP=m
+CONFIG_BACKLIGHT_MAX8925=m
+CONFIG_BACKLIGHT_PANDORA=m
+CONFIG_BACKLIGHT_PCF50633=m
+CONFIG_BACKLIGHT_PM8941_WLED=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RAVE_SP=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_SKY81452=m
+CONFIG_BACKLIGHT_WM831X=m
+# CONFIG_BACKTRACE_SELF_TEST is not set
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_BATMAN_V is not set
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+# CONFIG_BATMAN_ADV_DEBUGFS is not set
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_SYSFS=y
+# CONFIG_BATMAN_ADV_TRACING is not set
+CONFIG_BATTERY_88PM860X=m
+CONFIG_BATTERY_AXP20X=m
+CONFIG_BATTERY_BQ27XXX=m
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
+CONFIG_BATTERY_BQ27XXX_HDQ=m
+CONFIG_BATTERY_BQ27XXX_I2C=m
+CONFIG_BATTERY_DA9030=m
+CONFIG_BATTERY_DA9052=m
+CONFIG_BATTERY_DA9150=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2781=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_BATTERY_MAX1721X=m
+CONFIG_BATTERY_RT5033=m
+CONFIG_BATTERY_RX51=m
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_TWL4030_MADC=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+# CONFIG_BCACHE_DEBUG is not set
+CONFIG_BCH=m
+CONFIG_BCM7XXX_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMA_SFLASH=y
+CONFIG_BCMGENET=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BCM_NET_PHYLIB=m
+CONFIG_BE2ISCSI=m
+CONFIG_BE2NET=m
+CONFIG_BE2NET_BE2=y
+CONFIG_BE2NET_BE3=y
+CONFIG_BE2NET_HWMON=y
+CONFIG_BE2NET_LANCER=y
+CONFIG_BE2NET_SKYHAWK=y
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BEFS_FS=m
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
+CONFIG_BFS_FS=m
+CONFIG_BH1750=m
+CONFIG_BH1780=m
+CONFIG_BIG_KEYS=y
+CONFIG_BINARY_PRINTF=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BITREVERSE=y
+CONFIG_BLK_CGROUP=y
+CONFIG_BLK_CGROUP_IOCOST=y
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_BLK_DEBUG_FS=y
+CONFIG_BLK_DEBUG_FS_ZONED=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DM=y
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_MD=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_ZONED=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_RDMA=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLK_RQ_ALLOC_TIME=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_SED_OPAL=y
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BMA180=m
+CONFIG_BMA220=m
+CONFIG_BMC150_ACCEL=m
+CONFIG_BMC150_ACCEL_I2C=m
+CONFIG_BMC150_ACCEL_SPI=m
+CONFIG_BMC150_MAGN=m
+CONFIG_BMC150_MAGN_I2C=m
+CONFIG_BMC150_MAGN_SPI=m
+CONFIG_BME680=m
+CONFIG_BME680_I2C=m
+CONFIG_BME680_SPI=m
+CONFIG_BMG160=m
+CONFIG_BMG160_I2C=m
+CONFIG_BMG160_SPI=m
+CONFIG_BMI160=m
+CONFIG_BMI160_I2C=m
+CONFIG_BMI160_SPI=m
+CONFIG_BMP280=m
+CONFIG_BMP280_I2C=m
+CONFIG_BMP280_SPI=m
+CONFIG_BNA=m
+CONFIG_BNX2=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_BNXT=m
+CONFIG_BNXT_DCB=y
+CONFIG_BNXT_FLOWER_OFFLOAD=y
+CONFIG_BNXT_HWMON=y
+CONFIG_BNXT_SRIOV=y
+CONFIG_BOARD_TPCI200=m
+CONFIG_BONDING=m
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_BOUNCE=y
+CONFIG_BPF=y
+CONFIG_BPFILTER=y
+CONFIG_BPFILTER_UMH=m
+CONFIG_BPF_EVENTS=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
+CONFIG_BPF_STREAM_PARSER=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPQETHER=m
+CONFIG_BQL=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_BRCMDBG is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PCIE=y
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCM_TRACING=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BROADCOM_PHY=m
+CONFIG_BSD_DISKLABEL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_BT=m
+CONFIG_BTREE=y
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_DEBUG is not set
+CONFIG_BTRFS_FS=m
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+CONFIG_BTT=y
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_BCM=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_BREDR=y
+CONFIG_BT_CMTP=m
+CONFIG_BT_DEBUGFS=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_MTK=y
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIRSI=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_MRVL=y
+CONFIG_BT_HCIUART_NOKIA=m
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_RTL=y
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_HIDP=m
+# CONFIG_BT_HS is not set
+CONFIG_BT_INTEL=m
+CONFIG_BT_LE=y
+CONFIG_BT_LEDS=y
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_MTKSDIO=m
+CONFIG_BT_MTKUART=m
+CONFIG_BT_QCA=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_RTL=m
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_WILINK=m
+CONFIG_BUG=y
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_BUILD_BIN2C=y
+CONFIG_BUILD_SALT=""
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_HSI=m
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_SPI_SLAVE=m
+# CONFIG_CAIF_SPI_SYNC is not set
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_USB=m
+CONFIG_CAIF_VIRTIO=m
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_CAN=m
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_CALC_BITTIMING=y
+CONFIG_CAN_CC770=m
+CONFIG_CAN_CC770_ISA=m
+CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_EMS_PCMCIA=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_ESD_USB2=m
+CONFIG_CAN_F81601=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_GW=m
+CONFIG_CAN_HI311X=m
+CONFIG_CAN_IFI_CANFD=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_JANZ_ICAN3=m
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_KVASER_PCIEFD=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN_MCBA_USB=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_M_CAN=m
+CONFIG_CAN_M_CAN_PLATFORM=m
+CONFIG_CAN_M_CAN_TCAN4X5X=m
+CONFIG_CAN_PEAK_PCI=m
+CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
+CONFIG_CAN_PEAK_PCMCIA=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_ISA=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_SOFTING=m
+CONFIG_CAN_SOFTING_CS=m
+CONFIG_CAN_UCAN=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
+CONFIG_CAPI_AVM=y
+CONFIG_CAPI_TRACE=y
+CONFIG_CARDBUS=y
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_CARL9170=m
+# CONFIG_CARL9170_DEBUGFS is not set
+CONFIG_CARL9170_HWRNG=y
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_CASSINI=m
+CONFIG_CAVIUM_PTP=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_CC10001_ADC=m
+CONFIG_CCS811=m
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_CC_IS_GCC=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDNS_I3C_MASTER=m
+CONFIG_CDROM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_CORE=y
+CONFIG_CEC_NOTIFIER=y
+CONFIG_CEC_PLATFORM_DRIVERS=y
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CEPH_FS_SECURITY_LABEL=y
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_CFG80211=m
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CHARGER_88PM860X=m
+CONFIG_CHARGER_ADP5061=m
+CONFIG_CHARGER_AXP20X=m
+CONFIG_CHARGER_BQ2415X=m
+CONFIG_CHARGER_BQ24190=m
+CONFIG_CHARGER_BQ24257=m
+CONFIG_CHARGER_BQ24735=m
+CONFIG_CHARGER_BQ25890=m
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_DA9150=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_LP8727=m
+CONFIG_CHARGER_LP8788=m
+CONFIG_CHARGER_LT3651=m
+CONFIG_CHARGER_MANAGER=y
+CONFIG_CHARGER_MAX14577=m
+CONFIG_CHARGER_MAX77693=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_MAX8997=m
+CONFIG_CHARGER_MAX8998=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_RT9455=m
+CONFIG_CHARGER_SBS=m
+CONFIG_CHARGER_SMB347=m
+CONFIG_CHARGER_TPS65090=m
+CONFIG_CHARGER_TWL4030=m
+CONFIG_CHARGER_WILCO=m
+CONFIG_CHARLCD=m
+CONFIG_CHARLCD_BL_FLASH=y
+# CONFIG_CHARLCD_BL_OFF is not set
+# CONFIG_CHARLCD_BL_ON is not set
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_LIB=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4_FCOE=y
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CHROMEOS_TBMC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CICADA_PHY=m
+CONFIG_CIFS=m
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_SMB_DIRECT is not set
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIO_DAC=m
+CONFIG_CLANG_VERSION=0
+CONFIG_CLEANCACHE=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_CLK_TWL6040=m
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+# CONFIG_CLOCK_THERMAL is not set
+CONFIG_CLS_U32_MARK=y
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CLZ_TAB=y
+CONFIG_CM32181=m
+CONFIG_CM3232=m
+CONFIG_CM3323=m
+CONFIG_CM36651=m
+CONFIG_CMA=y
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_CNIC=m
+CONFIG_CODA_FS=m
+CONFIG_COMEDI=m
+CONFIG_COMEDI_8254=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_8255_PCI=m
+CONFIG_COMEDI_8255_SA=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADDI_WATCHDOG=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7X3X=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_DIO200_ISA=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC236_ISA=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_ISA=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAC02=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_DAS08_ISA=m
+CONFIG_COMEDI_DAS08_PCI=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DAS800=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_ISADMA=m
+CONFIG_COMEDI_ISA_DRIVERS=y
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_MF6X4=m
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_LABPC_ISA=m
+CONFIG_COMEDI_NI_LABPC_ISADMA=m
+CONFIG_COMEDI_NI_LABPC_PCI=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_NI_ROUTING=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_TIOCMD=m
+CONFIG_COMEDI_NI_USB6501=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_CDCE706=m
+CONFIG_COMMON_CLK_CS2000_CP=m
+CONFIG_COMMON_CLK_MAX9485=m
+CONFIG_COMMON_CLK_PALMAS=m
+CONFIG_COMMON_CLK_PWM=m
+CONFIG_COMMON_CLK_S2MPS11=m
+CONFIG_COMMON_CLK_SI5341=m
+CONFIG_COMMON_CLK_SI5351=m
+CONFIG_COMMON_CLK_SI544=m
+CONFIG_COMMON_CLK_WM831X=m
+CONFIG_COMPACTION=y
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_32=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_COMPILE_TEST is not set
+CONFIG_CONFIGFS_FS=y
+CONFIG_CONNECTOR=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_CONSOLE_POLL=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_CORDIC=m
+CONFIG_COREDUMP=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_CORTINA_PHY=m
+CONFIG_COUNTER=m
+# CONFIG_CPA_DEBUG is not set
+CONFIG_CPU5_WDT=m
+CONFIG_CPUMASK_OFFSTACK=y
+CONFIG_CPUSETS=y
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_CPU_ISOLATION=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_HYGON=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_ZHAOXIN=y
+CONFIG_CRAMFS=m
+CONFIG_CRAMFS_BLOCKDEV=y
+CONFIG_CRAMFS_MTD=y
+CONFIG_CRASH_CORE=y
+CONFIG_CRASH_DUMP=y
+CONFIG_CRC16=y
+CONFIG_CRC32=y
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_SELFTEST is not set
+# CONFIG_CRC32_SLICEBY4 is not set
+CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC4=m
+CONFIG_CRC64=m
+CONFIG_CRC7=m
+CONFIG_CRC8=m
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CROS_EC=m
+CONFIG_CROS_EC_CHARDEV=m
+CONFIG_CROS_EC_DEBUGFS=m
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_ISHTP=m
+CONFIG_CROS_EC_LIGHTBAR=m
+CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_EC_SYSFS=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CROS_USBPD_LOGGER=m
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_842=m
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_AES_TI=m
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_CAST_COMMON=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CHACHA20_X86_64=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=y
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_DES3_EDE_X86_64=m
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_I2C=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
+CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
+CONFIG_CRYPTO_DEV_NITROX=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+CONFIG_CRYPTO_DEV_PADLOCK=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_QAT=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_CRYPTO_DEV_SP_CCP=y
+CONFIG_CRYPTO_DEV_SP_PSP=y
+CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_CRYPTO_DH=y
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ENGINE=m
+CONFIG_CRYPTO_ESSIV=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_GHASH=y
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_NHPOLY1305=m
+CONFIG_CRYPTO_NHPOLY1305_AVX2=m
+CONFIG_CRYPTO_NHPOLY1305_SSE2=m
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_OFB=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_POLY1305_X86_64=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SIMD=m
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_STATS=y
+CONFIG_CRYPTO_STREEBOG=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO_ZSTD=m
+CONFIG_CS89x0=m
+CONFIG_CS89x0_PLATFORM=y
+CONFIG_CUSE=m
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_CXD2880_SPI_DRV=m
+CONFIG_CX_ECAT=m
+CONFIG_CYCLADES=m
+CONFIG_CYPRESS_FIRMWARE=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_DA280=m
+CONFIG_DA311=m
+CONFIG_DA9052_WATCHDOG=m
+CONFIG_DA9055_WATCHDOG=m
+CONFIG_DA9062_WATCHDOG=m
+CONFIG_DA9063_WATCHDOG=m
+CONFIG_DA9150_GPADC=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_DAX=y
+CONFIG_DAX_DRIVER=y
+CONFIG_DCA=m
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DCB=y
+CONFIG_DCDBAS=m
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_DE4X5=m
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_ENTRY is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_DWARF4=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_KERNEL_DC is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_DEBUG_MISC=y
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_DEBUG_PLIST is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_RSEQ is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
+CONFIG_DECNET=m
+CONFIG_DECNET_NF_GRABULATOR=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DEFAULT_CUBIC=y
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBTN=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_UART_BACKLIGHT=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_LED=m
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_DEVICE_PRIVATE=y
+# CONFIG_DEVKMEM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEV_APPLETALK=m
+CONFIG_DEV_COREDUMP=y
+CONFIG_DEV_DAX=m
+CONFIG_DEV_DAX_KMEM=m
+CONFIG_DEV_DAX_PMEM=m
+CONFIG_DEV_DAX_PMEM_COMPAT=m
+CONFIG_DEV_PAGEMAP_OPS=y
+CONFIG_DHT11=m
+CONFIG_DIMLIB=y
+CONFIG_DL2K=m
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+CONFIG_DLN2_ADC=m
+CONFIG_DM9102=m
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMARD09=m
+CONFIG_DMARD10=m
+CONFIG_DMAR_TABLE=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ACPI=y
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMA_CMA is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ENGINE_RAID=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+CONFIG_DMA_VIRT_OPS=y
+CONFIG_DMI=y
+CONFIG_DMIID=y
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_DMI_SYSFS=m
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_BUFIO=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_CACHE_SMQ=m
+CONFIG_DM_CLONE=m
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
+CONFIG_DM_DELAY=m
+# CONFIG_DM_DUST is not set
+CONFIG_DM_ERA=m
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_INIT=y
+CONFIG_DM_INTEGRITY=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_LOG_WRITES=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_RAID=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_SWITCH=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_FEC is not set
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_ZONED=m
+CONFIG_DNET=m
+CONFIG_DNOTIFY=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_DOUBLEFAULT=y
+CONFIG_DP83640_PHY=m
+CONFIG_DP83822_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+CONFIG_DP83TC811_PHY=m
+# CONFIG_DPM_WATCHDOG is not set
+CONFIG_DPS310=m
+CONFIG_DPTF_POWER=m
+CONFIG_DQL=y
+CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_DRM=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_CIK=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+CONFIG_DRM_AMD_ACP=y
+CONFIG_DRM_AMD_DC=y
+CONFIG_DRM_AMD_DC_DCN1_0=y
+CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
+CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_CIRRUS_QEMU=m
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+# CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+CONFIG_DRM_GM12U320=m
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I915=m
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG is not set
+# CONFIG_DRM_I915_DEBUG_GUC is not set
+# CONFIG_DRM_I915_DEBUG_MMIO is not set
+# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
+CONFIG_DRM_I915_FORCE_PROBE=""
+CONFIG_DRM_I915_GVT=y
+CONFIG_DRM_I915_GVT_KVMGT=m
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
+# CONFIG_DRM_I915_SELFTEST is not set
+CONFIG_DRM_I915_SPIN_REQUEST=5
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
+CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
+CONFIG_DRM_I915_USERPTR=y
+# CONFIG_DRM_I915_WERROR is not set
+CONFIG_DRM_KMS_CMA_HELPER=y
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_KMS_HELPER=m
+# CONFIG_DRM_LEGACY is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_MIPI_DBI=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_NOUVEAU_SVM is not set
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_PANEL_BRIDGE=y
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_USERPTR is not set
+CONFIG_DRM_SCHED=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_UDL=m
+CONFIG_DRM_VBOXVIDEO=m
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_DRM_VKMS=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_VRAM_HELPER=m
+CONFIG_DRM_XEN=y
+CONFIG_DRM_XEN_FRONTEND=m
+CONFIG_DS1682=m
+CONFIG_DS1803=m
+CONFIG_DS4424=m
+CONFIG_DST_CACHE=y
+CONFIG_DUMMY=m
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_DUMMY_IRQ=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_AF9033=m
+CONFIG_DVB_AS102=m
+CONFIG_DVB_AS102_FE=m
+CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522_V4L=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_IR=y
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_BT8XX=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET_PATCH=m
+CONFIG_DVB_CORE=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24117=m
+CONFIG_DVB_CX24120=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_CXD2099=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_CXD2841ER=m
+CONFIG_DVB_CXD2880=m
+CONFIG_DVB_DDBRIDGE=m
+# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
+# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_DIB9000=m
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_DRX39XYJ=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_DUMMY_FE=m
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_EC100=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+CONFIG_DVB_GP8PSK_FE=m
+CONFIG_DVB_HELENE=m
+CONFIG_DVB_HOPPER=m
+CONFIG_DVB_HORUS3A=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_LG2160=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT3306A=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGS8GL5=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_LNBH25=m
+CONFIG_DVB_LNBH29=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_M88DS3103=m
+CONFIG_DVB_M88RS2000=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_MB86A20S=m
+# CONFIG_DVB_MMAP is not set
+CONFIG_DVB_MN88443X=m
+CONFIG_DVB_MN88472=m
+CONFIG_DVB_MN88473=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_MXL5XX=m
+CONFIG_DVB_NET=y
+CONFIG_DVB_NETUP_UNIDVB=m
+CONFIG_DVB_NGENE=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_PLATFORM_DRIVERS=y
+CONFIG_DVB_PLL=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
+CONFIG_DVB_PT3=m
+CONFIG_DVB_RTL2830=m
+CONFIG_DVB_RTL2832=m
+CONFIG_DVB_RTL2832_SDR=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_S5H1432=m
+CONFIG_DVB_S921=m
+CONFIG_DVB_SI2165=m
+CONFIG_DVB_SI2168=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SMIPCIE=m
+CONFIG_DVB_SP2=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV0910=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_STV6111=m
+CONFIG_DVB_TC90522=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_TDA10071=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA18271C2DD=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TS2020=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+CONFIG_DVB_TUNER_ITD1000=m
+# CONFIG_DVB_ULE_DEBUG is not set
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_CXUSB_ANALOG=y
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIB3000MC=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_ZD1301=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZD1301_DEMOD=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DWC_XLGMAC=m
+CONFIG_DWC_XLGMAC_PCI=m
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC_PCI=m
+CONFIG_DW_EDMA=m
+CONFIG_DW_EDMA_PCIE=m
+CONFIG_DW_I3C_MASTER=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_DYNAMIC_MEMORY_LAYOUT=y
+CONFIG_DYNAMIC_PHYSICAL_MASK=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_E1000E_HWTS=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
+CONFIG_EBC_C384_WDT=m
+CONFIG_ECHO=m
+CONFIG_ECRYPT_FS=y
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_EDAC=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_ATOMIC_SCRUB=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_GHES=y
+CONFIG_EDAC_I10NM=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_IE31200=m
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+CONFIG_EDAC_PND2=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_EDAC_SKX=m
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EDAC_X38=m
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI=y
+CONFIG_EFIVAR_FS=y
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_ESRT=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_MIXED=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_EFI_RCI2_TABLE=y
+CONFIG_EFI_RUNTIME_MAP=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_STUB=y
+CONFIG_EFI_TEST=m
+CONFIG_EFI_VARS=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFS_FS=m
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EL3=m
+CONFIG_ELFCORE=y
+CONFIG_ELF_CORE=y
+# CONFIG_EMBEDDED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_ENA_ETHERNET=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_ENCX24J600=m
+# CONFIG_ENERGY_MODEL is not set
+CONFIG_ENIC=m
+CONFIG_EPIC100=m
+CONFIG_EPOLL=y
+CONFIG_EQUALIZER=m
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_ZIP=y
+CONFIG_ET131X=m
+CONFIG_ETHERNET=y
+CONFIG_ETHOC=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_EVENTFD=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVM=y
+CONFIG_EVM_ADD_XATTRS=y
+CONFIG_EVM_ATTR_FSUUID=y
+CONFIG_EVM_EXTRA_SMACK_XATTRS=y
+# CONFIG_EVM_LOAD_X509 is not set
+# CONFIG_EXFAT_DEBUG_MSG is not set
+CONFIG_EXFAT_DEFAULT_CODEPAGE=437
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_EXFAT_DELAYED_SYNC is not set
+CONFIG_EXFAT_DISCARD=y
+CONFIG_EXFAT_DONT_MOUNT_VFAT=y
+CONFIG_EXFAT_FS=m
+# CONFIG_EXFAT_KERNEL_DEBUG is not set
+CONFIG_EXPERT=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXTCON=y
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_ARIZONA=m
+CONFIG_EXTCON_AXP288=m
+CONFIG_EXTCON_FSA9480=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_INTEL_CHT_WC=m
+CONFIG_EXTCON_INTEL_INT3496=m
+CONFIG_EXTCON_MAX14577=m
+CONFIG_EXTCON_MAX3355=m
+CONFIG_EXTCON_MAX77693=m
+CONFIG_EXTCON_MAX77843=m
+CONFIG_EXTCON_MAX8997=m
+CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_PTN5150=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+CONFIG_EXTCON_USBC_CROS_EC=m
+CONFIG_EXTCON_USB_GPIO=m
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_EZX_PCAP=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_XATTR=y
+# CONFIG_F2FS_IO_TRACE is not set
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F71808E_WDT=m
+CONFIG_FAILOVER=m
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_FARSYNC=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+CONFIG_FAT_FS=y
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FB=y
+CONFIG_FB_3DFX=m
+# CONFIG_FB_3DFX_ACCEL is not set
+# CONFIG_FB_3DFX_I2C is not set
+CONFIG_FB_ARC=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_ATY_CT=y
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_BACKLIGHT=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+CONFIG_FB_DDC=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_HECUBA=m
+CONFIG_FB_HGA=m
+CONFIG_FB_HYPERV=m
+CONFIG_FB_I740=m
+# CONFIG_FB_IBM_GXT4500 is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL_DEBUG is not set
+CONFIG_FB_INTEL_I2C=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_LE80578=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_I2C=y
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_N411=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NOTIFY=y
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_I2C=y
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_I2C=y
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_SM501=m
+CONFIG_FB_SM712=m
+CONFIG_FB_SM750=m
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_SVGALIB=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UDL=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FHANDLE=y
+CONFIG_FIB_RULES=y
+CONFIG_FIELDBUS_DEV=m
+CONFIG_FILE_LOCKING=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FM10K=m
+CONFIG_FONTS=y
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_6x10=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_SUN8x16 is not set
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONT_TER16x32=y
+CONFIG_FORCEDETH=m
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_FPGA=m
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FPGA_DFL_AFU=m
+CONFIG_FPGA_DFL_FME=m
+CONFIG_FPGA_DFL_FME_BRIDGE=m
+CONFIG_FPGA_DFL_FME_MGR=m
+CONFIG_FPGA_DFL_FME_REGION=m
+CONFIG_FPGA_DFL_PCI=m
+CONFIG_FPGA_MGR_ALTERA_CVP=m
+CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
+CONFIG_FPGA_MGR_MACHXO2_SPI=m
+CONFIG_FPGA_MGR_XILINX_SPI=m
+CONFIG_FPGA_REGION=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_VECTOR=y
+CONFIG_FRAME_WARN=1024
+CONFIG_FREEZER=y
+CONFIG_FRONTSWAP=y
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSNOTIFY=y
+CONFIG_FS_DAX=y
+CONFIG_FS_DAX_PMD=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FTL=m
+CONFIG_FTRACE=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_FUJITSU_ES=m
+CONFIG_FUJITSU_LAPTOP=m
+CONFIG_FUJITSU_TABLET=m
+CONFIG_FUNCTION_ERROR_INJECTION=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_FS=y
+CONFIG_FUSION=y
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_LAN=m
+CONFIG_FUSION_LOGGING=y
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_SPI=m
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_FW_LOADER=y
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_FXAS21002C=m
+CONFIG_FXAS21002C_I2C=m
+CONFIG_FXAS21002C_SPI=m
+CONFIG_GACT_PROB=y
+CONFIG_GADGET_UAC1=y
+# CONFIG_GADGET_UAC1_LEGACY is not set
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GARP=m
+CONFIG_GART_IOMMU=y
+CONFIG_GCC_VERSION=70500
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_GDB_SCRIPTS=y
+CONFIG_GENERIC_ADC_BATTERY=m
+CONFIG_GENERIC_ADC_THERMAL=m
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_CPU=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_GENEVE=m
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_GIGASET_BASE=m
+# CONFIG_GIGASET_CAPI is not set
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_GIGASET_M101=m
+CONFIG_GIGASET_M105=m
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
+# CONFIG_GOLDFISH is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GP2AP020A00F=m
+CONFIG_GPD_POCKET_FAN=m
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_104_DIO_48E=m
+CONFIG_GPIO_104_IDIO_16=m
+CONFIG_GPIO_104_IDI_48=m
+CONFIG_GPIO_ACPI=y
+CONFIG_GPIO_ADP5520=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD8111=m
+CONFIG_GPIO_AMDPT=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_BD9571MWV=m
+CONFIG_GPIO_CRYSTAL_COVE=m
+CONFIG_GPIO_DA9052=m
+CONFIG_GPIO_DA9055=m
+CONFIG_GPIO_DLN2=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_EXAR=m
+CONFIG_GPIO_F7188X=m
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_GPIO_MM=m
+CONFIG_GPIO_ICH=m
+CONFIG_GPIO_IT87=m
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_KEMPLD=m
+CONFIG_GPIO_LP3943=m
+CONFIG_GPIO_LP873X=m
+CONFIG_GPIO_LYNXPOINT=y
+CONFIG_GPIO_MADERA=m
+CONFIG_GPIO_MAX3191X=m
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_MENZ127=m
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_PCIE_IDIO_24=m
+CONFIG_GPIO_PCI_IDIO_16=m
+CONFIG_GPIO_PISOSR=m
+CONFIG_GPIO_RC5T583=y
+CONFIG_GPIO_RDC321X=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_SCH311X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_TPS6586X=y
+CONFIG_GPIO_TPS65910=y
+CONFIG_GPIO_TPS65912=m
+CONFIG_GPIO_TPS68470=y
+CONFIG_GPIO_TQMX86=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_UCB1400=m
+CONFIG_GPIO_VIPERBOARD=m
+CONFIG_GPIO_VX855=m
+CONFIG_GPIO_WHISKEY_COVE=m
+CONFIG_GPIO_WINBOND=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_WM8350=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_WS16C48=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GPIO_XRA1403=m
+CONFIG_GRACE_PERIOD=m
+CONFIG_GREENASIA_FF=y
+CONFIG_GREYBUS=m
+CONFIG_GREYBUS_AUDIO=m
+CONFIG_GREYBUS_BOOTROM=m
+CONFIG_GREYBUS_BRIDGED_PHY=m
+CONFIG_GREYBUS_ES2=m
+CONFIG_GREYBUS_FIRMWARE=m
+CONFIG_GREYBUS_GPIO=m
+CONFIG_GREYBUS_HID=m
+CONFIG_GREYBUS_I2C=m
+CONFIG_GREYBUS_LIGHT=m
+CONFIG_GREYBUS_LOG=m
+CONFIG_GREYBUS_LOOPBACK=m
+CONFIG_GREYBUS_POWER=m
+CONFIG_GREYBUS_PWM=m
+CONFIG_GREYBUS_RAW=m
+CONFIG_GREYBUS_SDIO=m
+CONFIG_GREYBUS_SPI=m
+CONFIG_GREYBUS_UART=m
+CONFIG_GREYBUS_USB=m
+CONFIG_GREYBUS_VIBRATOR=m
+CONFIG_GRO_CELLS=y
+CONFIG_GS_FPGABOOT=m
+CONFIG_GTP=m
+# CONFIG_GUP_BENCHMARK is not set
+CONFIG_GVE=m
+CONFIG_HABANA_AI=m
+CONFIG_HALTPOLL_CPUIDLE=m
+CONFIG_HAMACHI=m
+CONFIG_HAMRADIO=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
+# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_EISA=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_NO_POLL=y
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_NMI=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PCI=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RELIABLE_STACKTRACE=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_HAVE_STACK_VALIDATION=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HD44780=m
+CONFIG_HDC100X=m
+CONFIG_HDLC=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_X25=m
+CONFIG_HDMI=y
+CONFIG_HDMI_LPE_AUDIO=m
+# CONFIG_HEADERS_INSTALL is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+# CONFIG_HERMES_PRISM is not set
+# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HI8435=m
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_ALPS=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_APPLEIR=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CMEDIA=m
+CONFIG_HID_CORSAIR=m
+CONFIG_HID_COUGAR=m
+CONFIG_HID_CP2112=m
+CONFIG_HID_CREATIVE_SB0540=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_ELAN=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_GENERIC=m
+CONFIG_HID_GFRM=m
+CONFIG_HID_GOOGLE_HAMMER=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_GT683R=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_HYPERV_MOUSE=m
+CONFIG_HID_ICADE=m
+CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_HID_MACALLY=m
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MALTRON=m
+CONFIG_HID_MAYFLASH=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PENMOUNT=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_CIR=y
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PID=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_REDRAGON=m
+CONFIG_HID_RETRODE=m
+CONFIG_HID_RMI=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_HID_SENSOR_ALS=m
+CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_HID_SENSOR_GYRO_3D=m
+CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
+CONFIG_HID_SENSOR_IIO_COMMON=m
+CONFIG_HID_SENSOR_IIO_TRIGGER=m
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_HID_SENSOR_PRESS=m
+CONFIG_HID_SENSOR_PROX=m
+CONFIG_HID_SENSOR_TEMP=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=m
+CONFIG_HID_STEELSERIES=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_U2FZERO=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_UDRAW_PS3=m
+CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HINIC=m
+CONFIG_HIO=m
+# CONFIG_HIPPI is not set
+CONFIG_HIST_TRIGGERS=y
+CONFIG_HMC6352=m
+CONFIG_HMEM_REPORTING=y
+CONFIG_HMM_MIRROR=y
+CONFIG_HOLTEK_FF=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_CS=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HOTPLUG_SMT=y
+CONFIG_HP03=m
+CONFIG_HP100=m
+CONFIG_HP206C=m
+CONFIG_HPET=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPFS_FS=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_HP_ACCEL=m
+CONFIG_HP_ILO=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_HSA_AMD=y
+CONFIG_HSI=m
+CONFIG_HSI_BOARDINFO=y
+CONFIG_HSI_CHAR=m
+CONFIG_HSR=m
+CONFIG_HSU_DMA=m
+CONFIG_HTC_I2CPLD=y
+CONFIG_HTC_PASIC3=m
+CONFIG_HTS221=m
+CONFIG_HTS221_I2C=m
+CONFIG_HTS221_SPI=m
+CONFIG_HTU21=m
+CONFIG_HUAWEI_WMI=m
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_HWLAT_TRACER=y
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_HWMON_VID=m
+CONFIG_HWPOISON_INJECT=m
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HX711=m
+CONFIG_HYPERV=m
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_HYPERV_BALLOON=m
+CONFIG_HYPERV_IOMMU=y
+CONFIG_HYPERV_KEYBOARD=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_TIMER=y
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_VSOCKETS=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_AMD_MP2=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_CHT_WC=m
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CROS_EC_TUNNEL=m
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_DLN2=m
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_KEMPLD=m
+CONFIG_I2C_MLXCPLD=m
+CONFIG_I2C_MULTI_INSTANTIATE=m
+CONFIG_I2C_MUX=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_SCMI=m
+CONFIG_I2C_SI470X=m
+CONFIG_I2C_SI4713=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+# CONFIG_I2C_SLAVE is not set
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VIPERBOARD=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I40E=m
+CONFIG_I40EVF=m
+CONFIG_I40E_DCB=y
+CONFIG_I6300ESB_WDT=m
+CONFIG_I82092=m
+CONFIG_I8253_LOCK=y
+CONFIG_I8K=m
+CONFIG_IA32_EMULATION=y
+CONFIG_IAQCORE=m
+CONFIG_IAVF=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_IBM_ASM=m
+CONFIG_IBM_RTL=m
+CONFIG_ICE=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_ICS932S401=m
+# CONFIG_IDE is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_IDLE_INJECT=y
+CONFIG_IDLE_PAGE_TRACKING=y
+CONFIG_IE6XX_WDT=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_IEEE802154_ADF7242=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_AT86RF230_DEBUGFS=y
+CONFIG_IEEE802154_ATUSB=m
+CONFIG_IEEE802154_CA8210=m
+CONFIG_IEEE802154_CA8210_DEBUGFS=y
+CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKELB=m
+CONFIG_IEEE802154_HWSIM=m
+CONFIG_IEEE802154_MCR20A=m
+CONFIG_IEEE802154_MRF24J40=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+CONFIG_IFB=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IGB_DCA=y
+CONFIG_IGB_HWMON=y
+CONFIG_IGC=m
+CONFIG_IIO=m
+CONFIG_IIO_ADIS_LIB=m
+CONFIG_IIO_ADIS_LIB_BUFFER=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
+CONFIG_IIO_CONFIGFS=m
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO_MS_SENSORS_I2C=m
+CONFIG_IIO_SIMPLE_DUMMY=m
+# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
+# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
+CONFIG_IIO_SSP_SENSORHUB=m
+CONFIG_IIO_SSP_SENSORS_COMMONS=m
+CONFIG_IIO_ST_ACCEL_3AXIS=m
+CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
+CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
+CONFIG_IIO_ST_GYRO_3AXIS=m
+CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
+CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
+CONFIG_IIO_ST_LSM6DSX=m
+CONFIG_IIO_ST_LSM6DSX_I2C=m
+CONFIG_IIO_ST_LSM6DSX_I3C=m
+CONFIG_IIO_ST_LSM6DSX_SPI=m
+CONFIG_IIO_ST_MAGN_3AXIS=m
+CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
+CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_IIO_ST_PRESS=m
+CONFIG_IIO_ST_PRESS_I2C=m
+CONFIG_IIO_ST_PRESS_SPI=m
+CONFIG_IIO_ST_SENSORS_CORE=m
+CONFIG_IIO_ST_SENSORS_I2C=m
+CONFIG_IIO_ST_SENSORS_SPI=m
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
+# CONFIG_IKCONFIG is not set
+CONFIG_IKHEADERS=m
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_IMA=y
+CONFIG_IMA_APPRAISE=y
+CONFIG_IMA_APPRAISE_BOOTPARAM=y
+# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
+# CONFIG_IMA_ARCH_POLICY is not set
+# CONFIG_IMA_BLACKLIST_KEYRING is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_LSM_RULES=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+# CONFIG_IMA_TEMPLATE is not set
+CONFIG_IMA_TRUSTED_KEYRING=y
+# CONFIG_IMA_WRITE_POLICY is not set
+CONFIG_IMG_ASCII_LCD=m
+CONFIG_INA2XX_ADC=m
+CONFIG_INET=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET_AH=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_INET_ESP=m
+CONFIG_INET_ESP_OFFLOAD=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_RAW_DIAG=m
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_CXGB3=m
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_EFA=m
+# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
+CONFIG_INFINIBAND_HFI1=m
+CONFIG_INFINIBAND_I40IW=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_OPA_VNIC=m
+CONFIG_INFINIBAND_QEDR=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_RDMAVT=m
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_VIRT_DMA=y
+CONFIG_INFINIBAND_VMWARE_PVRDMA=m
+CONFIG_INFTL=m
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_INIT_STACK_NONE=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_INOTIFY_USER=y
+CONFIG_INPUT=y
+CONFIG_INPUT_88PM80X_ONKEY=m
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ARIZONA_HAPTICS=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_DA9052_ONKEY=m
+CONFIG_INPUT_DA9055_ONKEY=m
+CONFIG_INPUT_DA9063_ONKEY=m
+CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2665_HAPTICS=m
+CONFIG_INPUT_DRV2667_HAPTICS=m
+CONFIG_INPUT_E3X0_BUTTON=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_GP2A=m
+CONFIG_INPUT_GPIO_BEEPER=m
+CONFIG_INPUT_GPIO_DECODER=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_GPIO_VIBRA=m
+CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_IMS_PCU=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MAX77693_HAPTIC=m
+CONFIG_INPUT_MAX8925_ONKEY=m
+CONFIG_INPUT_MAX8997_HAPTIC=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_MSM_VIBRATOR=m
+CONFIG_INPUT_PALMAS_PWRBUTTON=m
+CONFIG_INPUT_PCAP=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_PWM_BEEPER=m
+CONFIG_INPUT_PWM_VIBRA=m
+CONFIG_INPUT_RAVE_SP_PWRBUTTON=m
+CONFIG_INPUT_REGULATOR_HAPTIC=m
+CONFIG_INPUT_RETU_PWRBUTTON=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
+CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_INT3406_THERMAL=m
+CONFIG_INT340X_THERMAL=m
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_INTEGRITY_PLATFORM_KEYRING=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_TRUSTED_KEYRING=y
+CONFIG_INTEL_ATOMISP2_PM=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_GTT=y
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_IDLE=y
+CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_INT0002_VGPIO=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_INTEL_IOMMU_SVM=y
+CONFIG_INTEL_IPS=m
+CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
+CONFIG_INTEL_ISH_HID=m
+CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI_HDCP=m
+CONFIG_INTEL_MEI_ME=m
+CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_WDT=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_INTEL_MIC_BUS=m
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_INTEL_MIC_HOST=m
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_INTEL_PCH_THERMAL=m
+CONFIG_INTEL_PMC_CORE=y
+CONFIG_INTEL_PMC_IPC=m
+CONFIG_INTEL_POWERCLAMP=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RAPL=m
+CONFIG_INTEL_RAPL_CORE=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
+CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_SOC_PMIC=y
+CONFIG_INTEL_SOC_PMIC_BXTWC=m
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
+CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
+CONFIG_INTEL_TELEMETRY=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_ACPI=m
+# CONFIG_INTEL_TH_DEBUG is not set
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_PTI=m
+CONFIG_INTEL_TH_STH=m
+CONFIG_INTEL_TURBO_MAX_3=y
+CONFIG_INTEL_TXT=y
+CONFIG_INTEL_VBTN=m
+CONFIG_INTEL_WMI_THUNDERBOLT=m
+CONFIG_INTEL_XWAY_PHY=m
+CONFIG_INTERCONNECT=m
+CONFIG_INTERVAL_TREE=y
+# CONFIG_INTERVAL_TREE_TEST is not set
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_INV_MPU6050_IIO=m
+CONFIG_INV_MPU6050_SPI=m
+CONFIG_IOMMU_API=y
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_ION is not set
+CONFIG_IONIC=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_IOSF_MBI=y
+CONFIG_IOSF_MBI_DEBUG=y
+# CONFIG_IO_DELAY_0X80 is not set
+CONFIG_IO_DELAY_0XED=y
+# CONFIG_IO_DELAY_NONE is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_STRICT_DEVMEM is not set
+CONFIG_IO_URING=y
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IPACK_BUS=m
+CONFIG_IPC_NS=y
+# CONFIG_IPDDP is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_PLAT_DATA=y
+CONFIG_IPMI_POWEROFF=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPV6=y
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_SEG6_BPF=y
+CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPVLAN=m
+CONFIG_IPVLAN_L3S=y
+CONFIG_IPVTAP=m
+CONFIG_IPW2100=m
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2100_MONITOR=y
+CONFIG_IPW2200=m
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPWIRELESS=m
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_DCCP=m
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+# CONFIG_IP_DCCP_CCID3 is not set
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_COMMON=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_SCTP=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMAC=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_MH=m
+CONFIG_IP_VS_MH_TAB_INDEX=12
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_OVF=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SH_TAB_BITS=8
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_WRR=m
+# CONFIG_IRQSOFF_TRACER is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+CONFIG_IRQ_POLL=y
+CONFIG_IRQ_REMAP=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_IRQ_WORK=y
+CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_IMON=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_IMON_RAW=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_RCMM_DECODER=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SERIAL=m
+CONFIG_IR_SERIAL_TRANSMITTER=y
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_ISA_BUS=y
+CONFIG_ISA_BUS_API=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ISCSI_IBFT=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_TARGET=m
+CONFIG_ISCSI_TARGET_CXGB4=m
+CONFIG_ISCSI_TCP=m
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_ISI=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_ISL29125=m
+CONFIG_ISL29501=m
+CONFIG_ISO9660_FS=m
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_ITCO_WDT=m
+CONFIG_ITG3200=m
+CONFIG_IWL3945=m
+CONFIG_IWL4965=m
+CONFIG_IWLDVM=m
+CONFIG_IWLEGACY=m
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_IWLEGACY_DEBUGFS=y
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEBUGFS=y
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBEVF=m
+CONFIG_IXGBEVF_IPSEC=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_IPSEC=y
+CONFIG_JAILHOUSE_GUEST=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_JME=m
+CONFIG_JOLIET=y
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_FSIA6B=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_232=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PXRC=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JSA1212=m
+CONFIG_JUMP_LABEL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_KARMA_PARTITION=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_STACK=1
+# CONFIG_KCOV is not set
+CONFIG_KDB_CONTINUE_CATASTROPHIC=0
+CONFIG_KDB_DEFAULT_ENABLE=0x1
+CONFIG_KDB_KEYBOARD=y
+CONFIG_KEMPLD_WDT=m
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZ4 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_XZ is not set
+CONFIG_KERNFS=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
+CONFIG_KEXEC_CORE=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_JUMP=y
+CONFIG_KEXEC_SIG=y
+# CONFIG_KEXEC_SIG_FORCE is not set
+CONFIG_KEYBOARD_ADC=m
+CONFIG_KEYBOARD_ADP5520=m
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_APPLESPI=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_CROS_EC=m
+CONFIG_KEYBOARD_DLINK_DIR685=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_MTK_PMIC=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_QT1050=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_SAMSUNG=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_TM2_TOUCHKEY=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYS=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_KEYS_REQUEST_CACHE=y
+CONFIG_KEY_DH_OPERATIONS=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KGDB_LOW_LEVEL_TRAP=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_KMX61=m
+CONFIG_KPC2000=y
+CONFIG_KPC2000_CORE=m
+CONFIG_KPC2000_DMA=m
+CONFIG_KPC2000_I2C=m
+CONFIG_KPC2000_SPI=m
+CONFIG_KPROBES=y
+CONFIG_KPROBES_ON_FTRACE=y
+# CONFIG_KPROBES_SANITY_TEST is not set
+CONFIG_KPROBE_EVENTS=y
+# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
+CONFIG_KRETPROBES=y
+CONFIG_KS0108=m
+CONFIG_KS0108_DELAY=2
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS7010=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSM=y
+CONFIG_KSZ884X_PCI=m
+CONFIG_KVM=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_KVM_COMPAT=y
+CONFIG_KVM_DEBUG_FS=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_KVM_GUEST=y
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_MMIO=y
+# CONFIG_KVM_MMU_AUDIT is not set
+CONFIG_KVM_VFIO=y
+CONFIG_KXCJK1013=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9_SPI=m
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+CONFIG_L2TP_ETH=m
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_V3=y
+CONFIG_LAN743X=m
+CONFIG_LANMEDIA=m
+CONFIG_LAPB=m
+CONFIG_LAPBETHER=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LATTICE_ECP3_CONFIG=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_HX8357=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_OTM3225A=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LDISC_AUTOLOAD=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_LDM_PARTITION=y
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_ADP5520=m
+CONFIG_LEDS_APU=m
+CONFIG_LEDS_AS3645A=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_DA903X=m
+CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_LM3532=m
+CONFIG_LEDS_LM3533=m
+CONFIG_LEDS_LM355x=m
+CONFIG_LEDS_LM3601X=m
+CONFIG_LEDS_LM36274=m
+CONFIG_LEDS_LM3642=m
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LP5562=m
+CONFIG_LEDS_LP55XX_COMMON=m
+CONFIG_LEDS_LP8501=m
+CONFIG_LEDS_LP8788=m
+CONFIG_LEDS_MAX8997=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_MENF21BMC=m
+CONFIG_LEDS_MLXCPLD=m
+CONFIG_LEDS_MLXREG=m
+CONFIG_LEDS_MT6323=m
+CONFIG_LEDS_NIC78BX=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA955X_GPIO=y
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_TI_LMU_COMMON=m
+CONFIG_LEDS_TLC591XX=m
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_ACTIVITY=m
+CONFIG_LEDS_TRIGGER_AUDIO=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_USER=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LED_TRIGGER_PHY=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=0
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+# CONFIG_LEGACY_VSYSCALL_NONE is not set
+CONFIG_LEGACY_VSYSCALL_XONLY=y
+CONFIG_LG_LAPTOP=m
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+CONFIG_LIB80211_CRYPT_WEP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_LIBCRC32C=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_LIBNVDIMM=y
+CONFIG_LIDAR_LITE_V2=m
+CONFIG_LIQUIDIO=m
+CONFIG_LIQUIDIO_VF=m
+CONFIG_LIRC=y
+CONFIG_LIVEPATCH=y
+# CONFIG_LKDTM is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_LMP91000=m
+CONFIG_LOAD_UEFI_KEYS=y
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD_V4=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_DOWN_IN_SECURE_BOOT=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
+CONFIG_LOCK_SPIN_ON_OWNER=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIWHEELS_FF=y
+# CONFIG_LOGO is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_LP8788_ADC=m
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_LRU_CACHE=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LSM="lockdown,yama,integrity,apparmor"
+CONFIG_LSM_MMAP_MIN_ADDR=0
+CONFIG_LTC1660=m
+CONFIG_LTC2471=m
+CONFIG_LTC2485=m
+CONFIG_LTC2497=m
+CONFIG_LTC2632=m
+CONFIG_LTE_GDM724X=m
+CONFIG_LTPC=m
+CONFIG_LTR501=m
+CONFIG_LV0104CS=m
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_LXT_PHY=m
+CONFIG_LZ4HC_COMPRESS=m
+CONFIG_LZ4_COMPRESS=m
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_M62332=m
+CONFIG_MAC80211=m
+CONFIG_MAC80211_DEBUGFS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_HWSIM=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_MESSAGE_TRACING=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_MAC802154=m
+CONFIG_MACB=m
+CONFIG_MACB_PCI=m
+CONFIG_MACB_USE_HWSTAMP=y
+CONFIG_MACHZ_WDT=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MACSEC=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MADERA_IRQ=m
+CONFIG_MAG3110=m
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAILBOX=y
+CONFIG_MANAGER_SBS=m
+CONFIG_MANDATORY_FILE_LOCKING=y
+CONFIG_MANTIS_CORE=m
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MARVELL_PHY=m
+# CONFIG_MATOM is not set
+CONFIG_MAX1027=m
+CONFIG_MAX11100=m
+CONFIG_MAX1118=m
+CONFIG_MAX1363=m
+CONFIG_MAX30100=m
+CONFIG_MAX30102=m
+CONFIG_MAX31856=m
+CONFIG_MAX44000=m
+CONFIG_MAX44009=m
+CONFIG_MAX517=m
+CONFIG_MAX5432=m
+CONFIG_MAX5481=m
+CONFIG_MAX5487=m
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MAX8925_POWER=m
+CONFIG_MAX9611=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAXSMP=y
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_MB1232=m
+CONFIG_MC3230=m
+CONFIG_MCB=m
+CONFIG_MCB_LPC=m
+CONFIG_MCB_PCI=m
+# CONFIG_MCORE2 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_MCP3911=m
+CONFIG_MCP4018=m
+CONFIG_MCP41010=m
+CONFIG_MCP4131=m
+CONFIG_MCP4531=m
+CONFIG_MCP4725=m
+CONFIG_MCP4922=m
+CONFIG_MD=y
+CONFIG_MDIO=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_CAVIUM=m
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_I2C=m
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_CLUSTER=m
+CONFIG_MD_FAULTY=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_MEDIA_COMMON_OPTIONS=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_MEDIA_CONTROLLER_DVB=y
+# CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_PCI_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_E4000=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER_M88RS6000T=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MSI001=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_QM1D1B0004=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_SI2157=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18250=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
+CONFIG_MEMBARRIER=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_MEMCG_SWAP=y
+# CONFIG_MEMCG_SWAP_ENABLED is not set
+CONFIG_MEMFD_CREATE=y
+CONFIG_MEMORY=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_MEMSTICK_TIFM_MS=m
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MEMTEST=y
+CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_MENF21BMC_WATCHDOG=m
+CONFIG_MENZ069_WATCHDOG=m
+CONFIG_MEN_A21_WDT=m
+CONFIG_MEN_Z188_ADC=m
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_88PM860X=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_AS3711=y
+CONFIG_MFD_AXP20X=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_DEV=m
+CONFIG_MFD_CS47L15=y
+CONFIG_MFD_CS47L24=y
+CONFIG_MFD_CS47L35=y
+CONFIG_MFD_CS47L85=y
+CONFIG_MFD_CS47L90=y
+CONFIG_MFD_CS47L92=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_DLN2=m
+CONFIG_MFD_INTEL_LPSS=m
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
+CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_LP8788=y
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MADERA_I2C=m
+CONFIG_MFD_MADERA_SPI=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX77843=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MAX8925=y
+CONFIG_MFD_MAX8997=y
+CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MC13XXX=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MC13XXX_SPI=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PALMAS=y
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SMSC=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65090=y
+CONFIG_MFD_TPS6586X=y
+CONFIG_MFD_TPS65910=y
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TPS65912_SPI=y
+CONFIG_MFD_TPS68470=y
+CONFIG_MFD_TPS80031=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_TWL4030_AUDIO=y
+CONFIG_MFD_VIPERBOARD=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM5102=y
+CONFIG_MFD_WM5110=y
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_I2C=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_WM8350=y
+CONFIG_MFD_WM8350_I2C=y
+CONFIG_MFD_WM8400=y
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_WM8997=y
+CONFIG_MFD_WM8998=y
+CONFIG_MICREL_KS8995MA=m
+CONFIG_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_MICROSEMI_PHY=m
+CONFIG_MIC_COSM=m
+CONFIG_MIGRATION=y
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+CONFIG_MISDN=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_HDLC=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_MISDN_L1OIP=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_W6692=m
+# CONFIG_MK8 is not set
+CONFIG_MKISS=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_CORE_GEN2=y
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_ACCEL=y
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_EN_DCB=y
+CONFIG_MLX5_CORE_IPOIB=y
+CONFIG_MLX5_EN_ARFS=y
+CONFIG_MLX5_EN_IPSEC=y
+CONFIG_MLX5_EN_RXNFC=y
+CONFIG_MLX5_EN_TLS=y
+CONFIG_MLX5_ESWITCH=y
+CONFIG_MLX5_FPGA=y
+CONFIG_MLX5_FPGA_IPSEC=y
+CONFIG_MLX5_FPGA_TLS=y
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+CONFIG_MLX5_TLS=y
+CONFIG_MLX90614=m
+CONFIG_MLX90632=m
+CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
+CONFIG_MLXREG_IO=m
+CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_CORE_HWMON=y
+CONFIG_MLXSW_CORE_THERMAL=y
+CONFIG_MLXSW_I2C=m
+CONFIG_MLXSW_MINIMAL=m
+CONFIG_MLXSW_PCI=m
+CONFIG_MLXSW_SPECTRUM=m
+CONFIG_MLXSW_SPECTRUM_DCB=y
+CONFIG_MLXSW_SWITCHIB=m
+CONFIG_MLXSW_SWITCHX2=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLX_WDT=m
+CONFIG_MMA7455=m
+CONFIG_MMA7455_I2C=m
+CONFIG_MMA7455_SPI=m
+CONFIG_MMA7660=m
+CONFIG_MMA8452=m
+CONFIG_MMA9551=m
+CONFIG_MMA9551_CORE=m
+CONFIG_MMA9553=m
+CONFIG_MMC=y
+CONFIG_MMC35240=m
+CONFIG_MMCONF_FAM10H=y
+CONFIG_MMC_ALCOR=m
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_MTK=m
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_F_SDH30=m
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_SPI=m
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MMC_USDHI6ROL0=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_MMU=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_MODIFY_LDT_SYSCALL=y
+CONFIG_MODULES=y
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_ALL=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULE_SIG_HASH="sha512"
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+# CONFIG_MODULE_SIG_SHA1 is not set
+# CONFIG_MODULE_SIG_SHA224 is not set
+# CONFIG_MODULE_SIG_SHA256 is not set
+# CONFIG_MODULE_SIG_SHA384 is not set
+CONFIG_MODULE_SIG_SHA512=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MOST=m
+CONFIG_MOST_CDEV=m
+CONFIG_MOST_I2C=m
+CONFIG_MOST_NET=m
+CONFIG_MOST_SOUND=m
+CONFIG_MOST_USB=m
+CONFIG_MOST_VIDEO=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_SMBUS=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_MPILIB=y
+CONFIG_MPL115=m
+CONFIG_MPL115_I2C=m
+CONFIG_MPL115_SPI=m
+CONFIG_MPL3115=m
+CONFIG_MPLS=y
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_MPLS_ROUTING=m
+# CONFIG_MPSC is not set
+CONFIG_MPU3050=m
+CONFIG_MPU3050_I2C=m
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_MRP=m
+CONFIG_MS5611=m
+CONFIG_MS5611_I2C=m
+CONFIG_MS5611_SPI=m
+CONFIG_MS5637=m
+CONFIG_MSCC_OCELOT_SWITCH=m
+CONFIG_MSDOS_FS=m
+CONFIG_MSDOS_PARTITION=y
+CONFIG_MSI_LAPTOP=m
+CONFIG_MSI_WMI=m
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MS_BLOCK=m
+CONFIG_MT7601U=m
+CONFIG_MT7603E=m
+CONFIG_MT7615E=m
+CONFIG_MT76_CORE=m
+CONFIG_MT76_LEDS=y
+CONFIG_MT76_USB=m
+CONFIG_MT76x02_LIB=m
+CONFIG_MT76x02_USB=m
+CONFIG_MT76x0E=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x0_COMMON=m
+CONFIG_MT76x2E=m
+CONFIG_MT76x2U=m
+CONFIG_MT76x2_COMMON=m
+CONFIG_MTD=m
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DATAFLASH_OTP=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_HYPERBUS=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MCHP23K256=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_ECC_SW_BCH=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_NAND_GPIO=m
+CONFIG_MTD_NAND_MXIC=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_GENERIC=m
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_OOPS=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PHYSMAP_GPIO_ADDR=y
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_RAW_NAND=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SPI_NAND=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_MTD_UBI_GLUEBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_MULTIUSER=y
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_MVMDIO=m
+CONFIG_MWAVE=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+CONFIG_MXC4005=m
+CONFIG_MXC6255=m
+CONFIG_MXM_WMI=m
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NAMESPACES=y
+CONFIG_NATIONAL_PHY=m
+CONFIG_NATSEMI=m
+CONFIG_NAU7802=m
+CONFIG_NCSI_OEM_CMD_GET_MAC=y
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_ND_CLAIM=y
+CONFIG_ND_PFN=m
+CONFIG_NE2K_PCI=m
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NET=y
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETDEVICES=y
+CONFIG_NETDEVSIM=m
+# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_NETLINK_OSF=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETLABEL=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_NETPOLL=y
+CONFIG_NETROM=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_RDMA=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_CT=m
+CONFIG_NET_ACT_CTINFO=m
+CONFIG_NET_ACT_GACT=m
+# CONFIG_NET_ACT_IFE is not set
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_MPLS=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CORE=y
+CONFIG_NET_DEVLINK=y
+CONFIG_NET_DROP_MONITOR=y
+CONFIG_NET_DSA=m
+CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_NET_DSA_LANTIQ_GSWIP=m
+# CONFIG_NET_DSA_LOOP is not set
+CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
+CONFIG_NET_DSA_MT7530=m
+CONFIG_NET_DSA_MV88E6060=m
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_MV88E6XXX_PTP=y
+CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_REALTEK_SMI=m
+CONFIG_NET_DSA_SJA1105=m
+CONFIG_NET_DSA_SJA1105_PTP=y
+CONFIG_NET_DSA_SJA1105_TAS=y
+CONFIG_NET_DSA_SMSC_LAN9303=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
+CONFIG_NET_DSA_TAG_8021Q=m
+CONFIG_NET_DSA_TAG_BRCM=m
+CONFIG_NET_DSA_TAG_BRCM_COMMON=m
+CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
+CONFIG_NET_DSA_TAG_DSA=m
+CONFIG_NET_DSA_TAG_EDSA=m
+CONFIG_NET_DSA_TAG_GSWIP=m
+CONFIG_NET_DSA_TAG_KSZ=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_MTK=m
+CONFIG_NET_DSA_TAG_QCA=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=m
+CONFIG_NET_EGRESS=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_EMATCH_IPT=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_FAILOVER=m
+CONFIG_NET_FC=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_NET_IFE=m
+CONFIG_NET_INGRESS=y
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPVTI=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_NET_NCSI=y
+CONFIG_NET_NS=y
+CONFIG_NET_NSH=m
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_REDIRECT=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_NET_SB1000=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_ETF=m
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_SKBPRIO=m
+CONFIG_NET_SCH_TAPRIO=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SOCK_MSG=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TULIP=y
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_AURORA=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_CORTINA=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_SYNOPSYS=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NET_VENDOR_XILINX=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_NET_VRF=m
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_FDP=m
+CONFIG_NFC_FDP_I2C=m
+CONFIG_NFC_HCI=m
+CONFIG_NFC_MEI_PHY=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MICROREAD_MEI=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_I2C=m
+CONFIG_NFC_MRVL_SPI=m
+CONFIG_NFC_MRVL_UART=m
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_NCI_SPI=m
+CONFIG_NFC_NCI_UART=m
+CONFIG_NFC_NXP_NCI=m
+CONFIG_NFC_NXP_NCI_I2C=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_PN533_I2C=m
+CONFIG_NFC_PN533_USB=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_PN544_MEI=m
+CONFIG_NFC_PORT100=m
+CONFIG_NFC_S3FWRN5=m
+CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_NFC_SHDLC=y
+CONFIG_NFC_SIM=m
+CONFIG_NFC_ST21NFCA=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST95HF=m
+CONFIG_NFC_ST_NCI=m
+CONFIG_NFC_ST_NCI_I2C=m
+CONFIG_NFC_ST_NCI_SPI=m
+CONFIG_NFC_TRF7970A=m
+# CONFIG_NFIT_SECURITY_DEBUG is not set
+CONFIG_NFP=m
+CONFIG_NFP_APP_ABM_NIC=y
+CONFIG_NFP_APP_FLOWER=y
+# CONFIG_NFP_DEBUG is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_FLEXFILELAYOUT=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_SCSILAYOUT=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_DEBUG=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_2=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FIB=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_XFRM=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_BRIDGE=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_DUP_IPV6=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_LOG_NETDEV=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_MASQUERADE=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_REDIRECT=y
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NF_TABLES_SET=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NI903X_WDT=m
+CONFIG_NIC7018_WDT=m
+CONFIG_NILFS2_FS=m
+CONFIG_NIU=m
+CONFIG_NI_XGE_MANAGEMENT_ENET=m
+# CONFIG_NL80211_TESTMODE is not set
+CONFIG_NLATTR=y
+CONFIG_NLMON=m
+CONFIG_NLS=y
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+CONFIG_NOA1305=m
+CONFIG_NODES_SHIFT=10
+CONFIG_NODES_SPAN_OTHER_NODES=y
+CONFIG_NOP_TRACER=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_NOTIFIER_ERROR_INJECTION=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
+CONFIG_NOZOMI=m
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_NO_HZ_FULL is not set
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NR_CPUS=8192
+CONFIG_NR_CPUS_DEFAULT=8192
+CONFIG_NR_CPUS_RANGE_BEGIN=8192
+CONFIG_NR_CPUS_RANGE_END=8192
+CONFIG_NS83820=m
+CONFIG_NTB=m
+# CONFIG_NTB_AMD is not set
+CONFIG_NTB_IDT=m
+CONFIG_NTB_INTEL=m
+CONFIG_NTB_MSI=y
+# CONFIG_NTB_MSI_TEST is not set
+CONFIG_NTB_NETDEV=m
+CONFIG_NTB_PERF=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_SWITCHTEC=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NULL_TTY=m
+CONFIG_NUMA=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NVDIMM_DAX=y
+CONFIG_NVDIMM_KEYS=y
+CONFIG_NVDIMM_PFN=y
+CONFIG_NVM=y
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_NVME_CORE=m
+CONFIG_NVME_FABRICS=m
+CONFIG_NVME_FC=m
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_FC=m
+# CONFIG_NVME_TARGET_FCLOOP is not set
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_TCP=m
+CONFIG_NVME_TCP=m
+CONFIG_NVM_PBLK=m
+# CONFIG_NVM_PBLK_DEBUG is not set
+CONFIG_NVRAM=m
+CONFIG_NV_TCO=m
+CONFIG_NXP_TJA11XX_PHY=m
+CONFIG_N_GSM=m
+CONFIG_N_HDLC=m
+CONFIG_OBJAGG=m
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+# CONFIG_OF is not set
+CONFIG_OID_REGISTRY=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OMFS_FS=m
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_OPT3001=m
+CONFIG_OPTIMIZE_INLINING=y
+CONFIG_OPTPROBES=y
+CONFIG_ORANGEFS_FS=m
+CONFIG_ORINOCO_USB=m
+CONFIG_OSF_PARTITION=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+CONFIG_P54_COMMON=m
+CONFIG_P54_LEDS=y
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
+CONFIG_P54_USB=m
+CONFIG_PA12203001=m
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=m
+CONFIG_PACKING=y
+CONFIG_PADATA=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_PAGE_POISONING=y
+CONFIG_PAGE_POISONING_NO_SANITY=y
+CONFIG_PAGE_POISONING_ZERO=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_TABLE_ISOLATION=y
+CONFIG_PALMAS_GPADC=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_PANEL=m
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PANTHERLORD_FF=y
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_PARAVIRT_XXL=y
+CONFIG_PARIDE=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARMAN=m
+CONFIG_PARPORT=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PARPORT_PANEL=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=y
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PC104=y
+CONFIG_PC300TOO=m
+CONFIG_PC87413_WDT=m
+CONFIG_PCC=y
+CONFIG_PCCARD=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_PCENGINES_APU2=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_PCI=y
+CONFIG_PCI200SYN=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIE_BW is not set
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_EP=y
+CONFIG_PCIE_DW_HOST=y
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW_PLAT_EP=y
+CONFIG_PCIE_DW_PLAT_HOST=y
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCIE_PTM=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCI_ATS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_PCI_EPF_TEST is not set
+CONFIG_PCI_HYPERV=m
+CONFIG_PCI_HYPERV_INTERFACE=m
+CONFIG_PCI_IOV=y
+CONFIG_PCI_LABEL=y
+CONFIG_PCI_LOCKLESS_CONFIG=y
+# CONFIG_PCI_MESON is not set
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+# CONFIG_PCI_P2PDMA is not set
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PF_STUB=m
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_PCI_SW_SWITCHTEC=m
+CONFIG_PCI_XEN=y
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCNET32=m
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PD6729=m
+CONFIG_PDA_POWER=m
+CONFIG_PDC_ADMA=m
+CONFIG_PEAQ_WMI=m
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_PERCPU_TEST is not set
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_EVENTS_AMD_POWER is not set
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHYLINK=m
+CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PHY_CPCAP_USB=m
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_PHY_QCOM_USB_HSIC=m
+CONFIG_PHY_SAMSUNG_USB2=m
+CONFIG_PHY_TUSB1210=m
+CONFIG_PI433=m
+CONFIG_PID_NS=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AMD=y
+CONFIG_PINCTRL_BAYTRAIL=y
+CONFIG_PINCTRL_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_CEDARFORK=m
+CONFIG_PINCTRL_CHERRYVIEW=y
+CONFIG_PINCTRL_CS47L15=y
+CONFIG_PINCTRL_CS47L35=y
+CONFIG_PINCTRL_CS47L85=y
+CONFIG_PINCTRL_CS47L90=y
+CONFIG_PINCTRL_CS47L92=y
+CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_INTEL=m
+CONFIG_PINCTRL_LEWISBURG=m
+CONFIG_PINCTRL_MADERA=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_PINCTRL_SUNRISEPOINT=m
+CONFIG_PINCTRL_SX150X=y
+CONFIG_PINMUX=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+CONFIG_PKCS7_TEST_KEY=m
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PLATFORM_SI4713=m
+CONFIG_PLIP=m
+CONFIG_PLUGIN_HOSTCC=""
+CONFIG_PLX_HERMES=m
+CONFIG_PM=y
+CONFIG_PMBUS=m
+CONFIG_PMC_ATOM=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_PMS7003=m
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_AUTOSLEEP is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_NOTIFIER_ERROR_INJECT=m
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_DEBUG=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_STD_PARTITION=""
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_GC=y
+CONFIG_PM_WAKELOCKS_LIMIT=100
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_PNP=y
+CONFIG_PNPACPI=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_PPDEV=m
+CONFIG_PPP=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_PPTP=m
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_PREEMPTIRQ_EVENTS is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_PRINTER=m
+CONFIG_PRINTK=y
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_PRINTK_NMI=y
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRISM2_USB=m
+# CONFIG_PRISM54 is not set
+CONFIG_PROBE_EVENTS=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_PROC_EVENTS=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_PID_ARCH_STATUS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_THERMAL_MMIO_RAPL=y
+CONFIG_PROC_VMCORE=y
+CONFIG_PROC_VMCORE_DEVICE_DUMP=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+CONFIG_PROFILING=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+CONFIG_PSAMPLE=m
+CONFIG_PSI=y
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_842_COMPRESS is not set
+CONFIG_PSTORE_COMPRESS=y
+CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_DEFLATE_COMPRESS=y
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+# CONFIG_PSTORE_FTRACE is not set
+# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_PMSG is not set
+CONFIG_PSTORE_RAM=m
+# CONFIG_PSTORE_ZSTD_COMPRESS is not set
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_KVM=m
+CONFIG_PUNIT_ATOM_DEBUG=m
+CONFIG_PVH=y
+CONFIG_PVPANIC=m
+CONFIG_PWM=y
+CONFIG_PWM_CRC=y
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_LP3943=m
+CONFIG_PWM_LPSS=y
+CONFIG_PWM_LPSS_PCI=y
+CONFIG_PWM_LPSS_PLATFORM=y
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_TWL=m
+CONFIG_PWM_TWL_LED=m
+CONFIG_QCOM_EMAC=m
+CONFIG_QCOM_HIDMA=m
+CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_SPMI_ADC5=m
+CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_VADC=m
+CONFIG_QCOM_VADC_COMMON=m
+CONFIG_QED=m
+CONFIG_QEDE=m
+CONFIG_QEDF=m
+CONFIG_QEDI=m
+CONFIG_QED_FCOE=y
+CONFIG_QED_ISCSI=y
+CONFIG_QED_LL2=y
+CONFIG_QED_OOO=y
+CONFIG_QED_RDMA=y
+CONFIG_QED_SRIOV=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLGE=m
+CONFIG_QNX4FS_FS=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_QNX6FS_FS=m
+CONFIG_QSEMI_PHY=m
+CONFIG_QTNFMAC=m
+CONFIG_QTNFMAC_PCIE=m
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_QUOTA=y
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QUOTA_TREE=m
+CONFIG_R6040=m
+CONFIG_R8169=m
+CONFIG_R8188EU=m
+CONFIG_R8712U=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_RADIO_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_RADIO_SI476X=m
+CONFIG_RADIO_TEA575X=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_RAID6_PQ=m
+CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_RAID_ATTRS=m
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_RANDOMIZE_MEMORY=y
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
+CONFIG_RANDOM_TRUST_CPU=y
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_CHMAN=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_RAPIDIO_CPS_XX=m
+# CONFIG_RAPIDIO_DEBUG is not set
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_DMA_ENGINE=y
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_ENUM_BASIC=m
+CONFIG_RAPIDIO_MPORT_CDEV=m
+CONFIG_RAPIDIO_RXS_GEN3=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAS=y
+CONFIG_RAS_CEC=y
+# CONFIG_RAS_CEC_DEBUG is not set
+CONFIG_RATIONAL=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAVE_SP_EEPROM=m
+CONFIG_RAVE_SP_WATCHDOG=m
+CONFIG_RAW_DRIVER=m
+# CONFIG_RBTREE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_RCU_EXPERT is not set
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_PERF_TEST=m
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_RC_CORE=m
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_RC_LOOPBACK=m
+CONFIG_RC_MAP=m
+CONFIG_RC_XBOX_DVD=m
+CONFIG_RDMA_RXE=m
+CONFIG_RDMA_SIW=m
+CONFIG_RDS=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZ4=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+CONFIG_RD_XZ=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_REALTEK_PHY=m
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_ENC8=y
+# CONFIG_REED_SOLOMON_TEST is not set
+# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_I3C=m
+CONFIG_REGMAP_IRQ=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_SCCB=m
+CONFIG_REGMAP_SLIMBUS=m
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_SPMI=m
+CONFIG_REGMAP_W1=m
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_88PG86X=m
+CONFIG_REGULATOR_88PM800=m
+CONFIG_REGULATOR_88PM8607=m
+CONFIG_REGULATOR_AAT2870=m
+CONFIG_REGULATOR_AB3100=m
+CONFIG_REGULATOR_ACT8865=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_ANATOP=m
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_AS3711=m
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_BCM590XX=m
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_DA903X=m
+CONFIG_REGULATOR_DA9052=m
+CONFIG_REGULATOR_DA9055=m
+CONFIG_REGULATOR_DA9062=m
+CONFIG_REGULATOR_DA9210=m
+CONFIG_REGULATOR_DA9211=m
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_ISL9305=m
+CONFIG_REGULATOR_LM363X=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_LP872X=m
+CONFIG_REGULATOR_LP8755=m
+CONFIG_REGULATOR_LP8788=m
+CONFIG_REGULATOR_LTC3589=m
+CONFIG_REGULATOR_LTC3676=m
+CONFIG_REGULATOR_MAX14577=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8907=m
+CONFIG_REGULATOR_MAX8925=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_MAX8997=m
+CONFIG_REGULATOR_MAX8998=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MT6311=m
+CONFIG_REGULATOR_MT6323=m
+CONFIG_REGULATOR_MT6397=m
+CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_PV88060=m
+CONFIG_REGULATOR_PV88080=m
+CONFIG_REGULATOR_PV88090=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_RC5T583=m
+CONFIG_REGULATOR_RT5033=m
+CONFIG_REGULATOR_S2MPA01=m
+CONFIG_REGULATOR_S2MPS11=m
+CONFIG_REGULATOR_S5M8767=m
+CONFIG_REGULATOR_SKY81452=m
+CONFIG_REGULATOR_SLG51000=m
+CONFIG_REGULATOR_TPS51632=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS62360=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65086=m
+CONFIG_REGULATOR_TPS65090=m
+CONFIG_REGULATOR_TPS65132=m
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_REGULATOR_TPS6586X=m
+CONFIG_REGULATOR_TPS65910=m
+CONFIG_REGULATOR_TPS65912=m
+CONFIG_REGULATOR_TPS80031=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_WM8994=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_REISERFS_FS_XATTR=y
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_RELAY=y
+CONFIG_RELOCATABLE=y
+CONFIG_REMOTEPROC=y
+CONFIG_RENESAS_PHY=m
+CONFIG_RESET_ATTACK_MITIGATION=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_TI_SYSCON=m
+CONFIG_RETPOLINE=y
+CONFIG_RETU_WATCHDOG=m
+CONFIG_RFD77402=m
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RING_BUFFER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_CORE=m
+CONFIG_RMI4_F03=y
+CONFIG_RMI4_F03_SERIO=m
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F34=y
+CONFIG_RMI4_F54=y
+CONFIG_RMI4_F55=y
+CONFIG_RMI4_I2C=m
+CONFIG_RMI4_SMB=m
+CONFIG_RMI4_SPI=m
+CONFIG_RMNET=m
+CONFIG_ROCKCHIP_PHY=m
+CONFIG_ROCKER=m
+CONFIG_ROCKETPORT=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_ROSE=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPMSG=m
+CONFIG_RPMSG_CHAR=m
+CONFIG_RPMSG_QCOM_GLINK_NATIVE=m
+CONFIG_RPMSG_QCOM_GLINK_RPM=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RPR0521=m
+CONFIG_RPS=y
+CONFIG_RSEQ=y
+CONFIG_RSI_91X=m
+CONFIG_RSI_COEX=y
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2X00=m
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_CRYPTO=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT61PCI=m
+CONFIG_RT73USB=m
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_DRV_88PM80X=m
+CONFIG_RTC_DRV_88PM860X=m
+CONFIG_RTC_DRV_AB3100=m
+CONFIG_RTC_DRV_ABB5ZES3=m
+CONFIG_RTC_DRV_ABEOZ9=m
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_AM1805=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1307_CENTURY=y
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1374_WDT=y
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS1685=y
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+CONFIG_RTC_DRV_DS1742=m
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_DS3232_HWMON=y
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_FTRTC010=m
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_LP8788=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_MAX6916=m
+CONFIG_RTC_DRV_MAX8907=m
+CONFIG_RTC_DRV_MAX8925=m
+CONFIG_RTC_DRV_MAX8997=m
+CONFIG_RTC_DRV_MAX8998=m
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_MT6397=m
+CONFIG_RTC_DRV_PALMAS=m
+CONFIG_RTC_DRV_PCAP=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RC5T583=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RX6110=m
+CONFIG_RTC_DRV_RX8010=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_S5M=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_STK17TA8=m
+# CONFIG_RTC_DRV_TEST is not set
+CONFIG_RTC_DRV_TPS6586X=m
+CONFIG_RTC_DRV_TPS65910=m
+CONFIG_RTC_DRV_TPS80031=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WILCO_EC=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RTC_NVMEM=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8192E=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8XXXU=m
+CONFIG_RTL8XXXU_UNTESTED=y
+CONFIG_RTLBTCOEXIST=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+CONFIG_RTL_CARDS=m
+CONFIG_RTS5208=m
+CONFIG_RTW88=m
+CONFIG_RTW88_8723DE=y
+CONFIG_RTW88_8822BE=y
+CONFIG_RTW88_8822CE=y
+CONFIG_RTW88_CORE=m
+CONFIG_RTW88_DEBUG=y
+CONFIG_RTW88_DEBUGFS=y
+CONFIG_RTW88_PCI=m
+# CONFIG_RTW88_REGD_USER_REG_HINTS is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_RT_MUTEXES=y
+CONFIG_RUNTIME_TESTING_MENU=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_RXKAD=y
+CONFIG_S2IO=m
+CONFIG_SAMPLES=y
+# CONFIG_SAMPLE_CONFIGFS is not set
+# CONFIG_SAMPLE_HW_BREAKPOINT is not set
+# CONFIG_SAMPLE_KDB is not set
+# CONFIG_SAMPLE_KFIFO is not set
+# CONFIG_SAMPLE_KOBJECT is not set
+# CONFIG_SAMPLE_KPROBES is not set
+# CONFIG_SAMPLE_LIVEPATCH is not set
+# CONFIG_SAMPLE_RPMSG_CLIENT is not set
+# CONFIG_SAMPLE_TRACE_EVENTS is not set
+CONFIG_SAMPLE_TRACE_PRINTK=m
+# CONFIG_SAMPLE_VFIO_MDEV_MBOCHS is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MDPY is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MTTY is not set
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_DWC=m
+# CONFIG_SATA_DWC_DEBUG is not set
+CONFIG_SATA_DWC_OLD_DMA=y
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_MOBILE_LPM_POLICY=3
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PMP=y
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIL24=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_ZPODD=y
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_SBITMAP=y
+CONFIG_SBNI=m
+# CONFIG_SBNI_MULTILINE is not set
+CONFIG_SBP_TARGET=m
+CONFIG_SC1200_WDT=m
+CONFIG_SC92031=m
+CONFIG_SCA3000=m
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_SCHED_INFO=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_MC_PRIO=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_SCHED_TRACER=y
+CONFIG_SCIF=m
+CONFIG_SCIF_BUS=m
+CONFIG_SCR24X=m
+CONFIG_SCSI=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FDOMAIN=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_MYRS=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SMARTPQI=m
+CONFIG_SCSI_SNIC=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFS_CDNS_PLATFORM=m
+CONFIG_SCSI_UFS_DWC_TC_PCI=m
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_WD719X=m
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SDIO_UART=m
+# CONFIG_SDMA_VERBOSITY is not set
+CONFIG_SDR_MAX2175=m
+CONFIG_SDR_PLATFORM_DRIVERS=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_APPARMOR=y
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY_INFINIBAND=y
+# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM=y
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
+CONFIG_SECURITY_SAFESETID=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_YAMA=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_AD7314=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADC128D818=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_ADT7310=m
+CONFIG_SENSORS_ADT7410=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ADT7X10=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_AS370=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_DA9052_ADC=m
+CONFIG_SENSORS_DA9055=m
+CONFIG_SENSORS_DELL_SMM=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_HIH6130=m
+CONFIG_SENSORS_HMC5843=m
+CONFIG_SENSORS_HMC5843_I2C=m
+CONFIG_SENSORS_HMC5843_SPI=m
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_INA209=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
+CONFIG_SENSORS_INSPUR_IPSPS=m
+CONFIG_SENSORS_IR35221=m
+CONFIG_SENSORS_IR38064=m
+CONFIG_SENSORS_IRPS5401=m
+CONFIG_SENSORS_ISL29018=m
+CONFIG_SENSORS_ISL29028=m
+CONFIG_SENSORS_ISL68137=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LM3533=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95234=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_LTC2945=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_LTC2978_REGULATOR=y
+CONFIG_SENSORS_LTC2990=m
+CONFIG_SENSORS_LTC3815=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4222=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4260=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX197=m
+CONFIG_SENSORS_MAX20751=m
+CONFIG_SENSORS_MAX31722=m
+CONFIG_SENSORS_MAX31785=m
+CONFIG_SENSORS_MAX31790=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX6621=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MAX6697=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
+CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
+CONFIG_SENSORS_NPCM7XX=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_POWR1220=m
+CONFIG_SENSORS_PXE1610=m
+CONFIG_SENSORS_RM3100=m
+CONFIG_SENSORS_RM3100_I2C=m
+CONFIG_SENSORS_RM3100_SPI=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_STTS751=m
+CONFIG_SENSORS_TC654=m
+CONFIG_SENSORS_TC74=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP103=m
+CONFIG_SENSORS_TMP108=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TPS40422=m
+CONFIG_SENSORS_TPS53679=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_TSL2563=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SENSORS_XGENE=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_EXAR=m
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_8250_LPSS=m
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_MEN_MCB=m
+CONFIG_SERIAL_8250_MID=m
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_RT288X=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=32
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_ARC_NR_PORTS=1
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_IPOCTAL=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_KGDB_NMI=y
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX310X=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_MEN_Z135=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_CORE=m
+CONFIG_SERIAL_SC16IS7XX_I2C=y
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIAL_SCCNXP_CONSOLE=y
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
+CONFIG_SERIO=y
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_ARC_PS2=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_GPIO_PS2=m
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_SERPORT=m
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SFC_FALCON_MTD=y
+CONFIG_SFC_MCDI_LOGGING=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_MTD=y
+CONFIG_SFC_SRIOV=y
+CONFIG_SFI=y
+CONFIG_SFP=m
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SGI_GRU=m
+# CONFIG_SGI_GRU_DEBUG is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_SGI_XP=m
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SHIFT_FS=m
+CONFIG_SHIFT_FS_POSIX_ACL=y
+CONFIG_SHMEM=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_SI1133=m
+CONFIG_SI1145=m
+CONFIG_SI7005=m
+CONFIG_SI7020=m
+CONFIG_SIGNALFD=y
+CONFIG_SIGNATURE=y
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+CONFIG_SIOX=m
+CONFIG_SIOX_BUS_GPIO=m
+CONFIG_SIS190=m
+CONFIG_SIS900=m
+CONFIG_SKB_EXTENSIONS=y
+CONFIG_SKFP=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+# CONFIG_SLAB is not set
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLHC=y
+CONFIG_SLICOSS=m
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLOB is not set
+CONFIG_SLUB=y
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_MEMCG_SYSFS_ON=y
+# CONFIG_SLUB_STATS is not set
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_SMC=m
+CONFIG_SMC_DIAG=m
+CONFIG_SMP=y
+CONFIG_SMSC37B787_WDT=m
+CONFIG_SMSC911X=m
+CONFIG_SMSC9420=m
+CONFIG_SMSC_PHY=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMS_SDIO_DRV=m
+CONFIG_SMS_SIANO_DEBUGFS=y
+CONFIG_SMS_SIANO_MDTV=m
+CONFIG_SMS_SIANO_RC=y
+CONFIG_SMS_USB_DRV=m
+CONFIG_SM_FTL=m
+CONFIG_SND=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_ATMEL_SOC=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_BEBOB=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_DARLA24=m
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_DESIGNWARE_PCM=y
+CONFIG_SND_DICE=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_MOTU=m
+CONFIG_SND_FIREWIRE_TASCAM=m
+CONFIG_SND_FIREWORKS=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_GINA20=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_HDA=m
+CONFIG_SND_HDA_CODEC_ANALOG=m
+CONFIG_SND_HDA_CODEC_CA0110=m
+CONFIG_SND_HDA_CODEC_CA0132=m
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
+CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CMEDIA=m
+CONFIG_SND_HDA_CODEC_CONEXANT=m
+CONFIG_SND_HDA_CODEC_HDMI=m
+CONFIG_SND_HDA_CODEC_REALTEK=m
+CONFIG_SND_HDA_CODEC_SI3054=m
+CONFIG_SND_HDA_CODEC_SIGMATEL=m
+CONFIG_SND_HDA_CODEC_VIA=m
+CONFIG_SND_HDA_COMPONENT=y
+CONFIG_SND_HDA_CORE=m
+CONFIG_SND_HDA_DSP_LOADER=y
+CONFIG_SND_HDA_EXT_CORE=m
+CONFIG_SND_HDA_GENERIC=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_I915=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_I2S_HI6210_I2S=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_INTEL_DSP_CONFIG=m
+CONFIG_SND_INTEL_NHLT=y
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MAX_CARDS=32
+CONFIG_SND_MIA=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_NM256=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_OXFW=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_PCI=y
+CONFIG_SND_PCM=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SEQ_MIDI=m
+CONFIG_SND_SEQ_MIDI_EMUL=m
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_VIRMIDI=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_SOC_AC97_CODEC=m
+CONFIG_SND_SOC_ACPI=m
+CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU1761=m
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU17X1=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_ADAU_UTILS=m
+CONFIG_SND_SOC_AK4104=m
+CONFIG_SND_SOC_AK4118=m
+CONFIG_SND_SOC_AK4458=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_AK4613=m
+CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK5386=m
+CONFIG_SND_SOC_AK5558=m
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_AMD_ACP=m
+CONFIG_SND_SOC_AMD_ACP3x=m
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
+CONFIG_SND_SOC_AMD_RENOIR=m
+CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_BD28623=m
+CONFIG_SND_SOC_BT_SCO=m
+CONFIG_SND_SOC_COMPRESS=y
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+CONFIG_SND_SOC_CS35L32=m
+CONFIG_SND_SOC_CS35L33=m
+CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
+CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_CS4271=m
+CONFIG_SND_SOC_CS4271_I2C=m
+CONFIG_SND_SOC_CS4271_SPI=m
+CONFIG_SND_SOC_CS42L42=m
+CONFIG_SND_SOC_CS42L51=m
+CONFIG_SND_SOC_CS42L51_I2C=m
+CONFIG_SND_SOC_CS42L52=m
+CONFIG_SND_SOC_CS42L56=m
+CONFIG_SND_SOC_CS42L73=m
+CONFIG_SND_SOC_CS42XX8=m
+CONFIG_SND_SOC_CS42XX8_I2C=m
+CONFIG_SND_SOC_CS43130=m
+CONFIG_SND_SOC_CS4341=m
+CONFIG_SND_SOC_CS4349=m
+CONFIG_SND_SOC_CS53L30=m
+CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
+CONFIG_SND_SOC_ES7241=m
+CONFIG_SND_SOC_ES8316=m
+CONFIG_SND_SOC_ES8328=m
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_ES8328_SPI=m
+CONFIG_SND_SOC_FSL_ASRC=m
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_ESAI=m
+CONFIG_SND_SOC_FSL_MICFIL=m
+CONFIG_SND_SOC_FSL_SAI=m
+CONFIG_SND_SOC_FSL_SPDIF=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_SOC_GTM601=m
+CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_HDAC_HDMI=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_IMG=y
+CONFIG_SND_SOC_IMG_I2S_IN=m
+CONFIG_SND_SOC_IMG_I2S_OUT=m
+CONFIG_SND_SOC_IMG_PARALLEL_OUT=m
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m
+CONFIG_SND_SOC_IMG_SPDIF_IN=m
+CONFIG_SND_SOC_IMG_SPDIF_OUT=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_INNO_RK3036=m
+CONFIG_SND_SOC_INTEL_APL=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
+CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
+# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
+# CONFIG_SND_SOC_INTEL_CFL is not set
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+# CONFIG_SND_SOC_INTEL_CML_H is not set
+# CONFIG_SND_SOC_INTEL_CML_LP is not set
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
+# CONFIG_SND_SOC_INTEL_CNL is not set
+CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
+CONFIG_SND_SOC_INTEL_GLK=m
+CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_HASWELL=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_KBL=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_MACH=y
+CONFIG_SND_SOC_INTEL_SKL=m
+CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
+# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
+CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
+CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_ACPI=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_MAX9759=m
+CONFIG_SND_SOC_MAX98088=m
+CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_MAX98373=m
+CONFIG_SND_SOC_MAX98504=m
+CONFIG_SND_SOC_MAX9860=m
+CONFIG_SND_SOC_MAX9867=m
+CONFIG_SND_SOC_MAX98927=m
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
+CONFIG_SND_SOC_MT6351=m
+CONFIG_SND_SOC_MT6358=m
+CONFIG_SND_SOC_MTK_BTCVSD=m
+CONFIG_SND_SOC_NAU8540=m
+CONFIG_SND_SOC_NAU8810=m
+CONFIG_SND_SOC_NAU8822=m
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_NAU8825=m
+CONFIG_SND_SOC_PCM1681=m
+CONFIG_SND_SOC_PCM1789=m
+CONFIG_SND_SOC_PCM1789_I2C=m
+CONFIG_SND_SOC_PCM179X=m
+CONFIG_SND_SOC_PCM179X_I2C=m
+CONFIG_SND_SOC_PCM179X_SPI=m
+CONFIG_SND_SOC_PCM186X=m
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
+CONFIG_SND_SOC_PCM3060=m
+CONFIG_SND_SOC_PCM3060_I2C=m
+CONFIG_SND_SOC_PCM3060_SPI=m
+CONFIG_SND_SOC_PCM3168A=m
+CONFIG_SND_SOC_PCM3168A_I2C=m
+CONFIG_SND_SOC_PCM3168A_SPI=m
+CONFIG_SND_SOC_PCM512x=m
+CONFIG_SND_SOC_PCM512x_I2C=m
+CONFIG_SND_SOC_PCM512x_SPI=m
+CONFIG_SND_SOC_RK3328=m
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RL6347A=m
+CONFIG_SND_SOC_RT286=m
+CONFIG_SND_SOC_RT298=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
+CONFIG_SND_SOC_RT5616=m
+CONFIG_SND_SOC_RT5631=m
+CONFIG_SND_SOC_RT5640=m
+CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5660=m
+CONFIG_SND_SOC_RT5663=m
+CONFIG_SND_SOC_RT5670=m
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+CONFIG_SND_SOC_RT5682=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_SOC_SI476X=m
+CONFIG_SND_SOC_SIGMADSP=m
+CONFIG_SND_SOC_SIGMADSP_I2C=m
+CONFIG_SND_SOC_SIGMADSP_REGMAP=m
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
+CONFIG_SND_SOC_SOF=m
+CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_BAYTRAIL=m
+CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H=m
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP=m
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+# CONFIG_SND_SOC_SOF_DEBUG is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_HDA=m
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1=y
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON=m
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
+CONFIG_SND_SOC_SOF_INTEL_COMMON=m
+CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+CONFIG_SND_SOC_SOF_OPTIONS=m
+CONFIG_SND_SOC_SOF_PCI=m
+CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
+# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_XTENSA=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2305=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_SSM2602_I2C=m
+CONFIG_SND_SOC_SSM2602_SPI=m
+CONFIG_SND_SOC_SSM4567=m
+CONFIG_SND_SOC_STA32X=m
+CONFIG_SND_SOC_STA350=m
+CONFIG_SND_SOC_STI_SAS=m
+CONFIG_SND_SOC_TAS2552=m
+CONFIG_SND_SOC_TAS5086=m
+CONFIG_SND_SOC_TAS571X=m
+CONFIG_SND_SOC_TAS5720=m
+CONFIG_SND_SOC_TAS6424=m
+CONFIG_SND_SOC_TDA7419=m
+CONFIG_SND_SOC_TFA9879=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
+CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC32X4=m
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TOPOLOGY=y
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
+CONFIG_SND_SOC_TSCS454=m
+CONFIG_SND_SOC_UDA1334=m
+CONFIG_SND_SOC_WCD9335=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8524=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8737=m
+CONFIG_SND_SOC_WM8741=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8770=m
+CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8782=m
+CONFIG_SND_SOC_WM8804=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8804_SPI=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8962=m
+CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8985=m
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
+CONFIG_SND_SOC_XILINX_I2S=m
+CONFIG_SND_SOC_XILINX_SPDIF=m
+CONFIG_SND_SOC_XTFPGA_I2S=m
+CONFIG_SND_SOC_ZX_AUD96P22=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_SPI=y
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
+CONFIG_SND_SST_IPC=m
+CONFIG_SND_SST_IPC_ACPI=m
+CONFIG_SND_SST_IPC_PCI=m
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_SYNTH_EMUX=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_VARIAX=m
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VMASTER=y
+CONFIG_SND_VX222=m
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_X86=y
+CONFIG_SND_XEN_FRONTEND=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_SOCK_VALIDATE_XMIT=y
+CONFIG_SOC_TI=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SONYPI_COMPAT=y
+CONFIG_SONY_FF=y
+CONFIG_SONY_LAPTOP=m
+CONFIG_SOUND=m
+CONFIG_SOUNDWIRE=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SP5100_TCO=m
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPI=y
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_AXI_SPI_ENGINE=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_CADENCE=m
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DLN2=m
+CONFIG_SPI_DW_MID_DMA=y
+CONFIG_SPI_DW_MMIO=m
+CONFIG_SPI_DW_PCI=m
+CONFIG_SPI_DYNAMIC=y
+CONFIG_SPI_GPIO=m
+# CONFIG_SPI_INTEL_SPI_PCI is not set
+# CONFIG_SPI_INTEL_SPI_PLATFORM is not set
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_LOOPBACK_TEST=m
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_MTK_QUADSPI=m
+CONFIG_SPI_MXIC=m
+CONFIG_SPI_NXP_FLEXSPI=m
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=m
+# CONFIG_SPI_ROCKCHIP is not set
+CONFIG_SPI_SC18IS602=m
+CONFIG_SPI_SIFIVE=m
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
+CONFIG_SPI_SLAVE_TIME=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+CONFIG_SPI_XCOMM=m
+# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_ZYNQMP_GQSPI=m
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_SPMI=m
+CONFIG_SPS30=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+# CONFIG_SQUASHFS_FILE_CACHE is not set
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_ZSTD=y
+CONFIG_SRAM=y
+CONFIG_SRCU=y
+CONFIG_SRF04=m
+CONFIG_SRF08=m
+CONFIG_SSB=m
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_DRIVER_GPIO=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+# CONFIG_SSB_PCMCIAHOST is not set
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSFDC=m
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_STACKTRACE=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_STACK_TRACER=y
+CONFIG_STACK_VALIDATION=y
+CONFIG_STAGING=y
+CONFIG_STAGING_APEX_DRIVER=m
+CONFIG_STAGING_GASKET_FRAMEWORK=m
+CONFIG_STAGING_MEDIA=y
+# CONFIG_STANDALONE is not set
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_STE10XP=m
+CONFIG_STK3310=m
+CONFIG_STK8312=m
+CONFIG_STK8BA50=m
+CONFIG_STM=m
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PCI=m
+CONFIG_STMMAC_PLATFORM=m
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STM_DUMMY=m
+CONFIG_STM_PROTO_BASIC=m
+CONFIG_STM_PROTO_SYS_T=m
+CONFIG_STM_SOURCE_CONSOLE=m
+CONFIG_STM_SOURCE_FTRACE=m
+CONFIG_STM_SOURCE_HEARTBEAT=m
+CONFIG_STP=m
+CONFIG_STREAM_PARSER=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_STRING_SELFTEST is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_STX104=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25_SPI=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNGEM=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_DEBUG=y
+# CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES is not set
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_SWAP=y
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SUN_PARTITION=y
+CONFIG_SURFACE3_WMI=m
+CONFIG_SURFACE_3_BUTTON=m
+CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+CONFIG_SWAP=y
+CONFIG_SWIOTLB=y
+CONFIG_SWIOTLB_XEN=y
+CONFIG_SWPHY=y
+CONFIG_SW_SYNC=y
+CONFIG_SX9500=m
+CONFIG_SXGBE_ETH=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_SYNC_FILE=y
+CONFIG_SYN_COOKIES=y
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_SYSFS=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYSTEMPORT=m
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
+CONFIG_SYSTEM_BLACKLIST_KEYRING=y
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+CONFIG_SYSTEM_EXTRA_CERTIFICATE=y
+CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSV_FS=m
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_T5403=m
+CONFIG_TABLET_SERIAL_WACOM4=m
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
+CONFIG_TAHVO_USB=m
+CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
+CONFIG_TAP=m
+CONFIG_TARGET_CORE=m
+CONFIG_TASKSTATS=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_TASK_XACCT=y
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=y
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_CORE=y
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_ST33ZP24=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_TCG_TIS_ST33ZP24_SPI=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_VTPM_PROXY=m
+CONFIG_TCG_XEN=m
+CONFIG_TCM_FC=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
+CONFIG_TCM_USER2=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_TCS3414=m
+CONFIG_TCS3472=m
+CONFIG_TEHUTI=m
+CONFIG_TELCLOCK=m
+CONFIG_TERANETICS_PHY=m
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_BITMAP is not set
+CONFIG_TEST_BLACKHOLE_DEV=m
+CONFIG_TEST_BPF=m
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_TEST_OBJAGG is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_PARMAN is not set
+CONFIG_TEST_POWER=m
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_XARRAY is not set
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_THERMAL=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_EMULATION=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THP_SWAP=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_THUNDERBOLT=m
+CONFIG_THUNDERBOLT_NET=m
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_RGX=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TICK_ONESHOT=y
+CONFIG_TIFM_7XX1=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIGON3=m
+CONFIG_TIGON3_HWMON=y
+CONFIG_TIMERFD=y
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_TIPC=m
+CONFIG_TIPC_DIAG=m
+CONFIG_TIPC_MEDIA_IB=y
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_TI_ADC081C=m
+CONFIG_TI_ADC0832=m
+CONFIG_TI_ADC084S021=m
+CONFIG_TI_ADC108S102=m
+CONFIG_TI_ADC12138=m
+CONFIG_TI_ADC128S052=m
+CONFIG_TI_ADC161S626=m
+CONFIG_TI_ADS1015=m
+CONFIG_TI_ADS7950=m
+CONFIG_TI_AM335X_ADC=m
+# CONFIG_TI_CPSW_PHY_SEL is not set
+CONFIG_TI_DAC082S085=m
+CONFIG_TI_DAC5571=m
+CONFIG_TI_DAC7311=m
+CONFIG_TI_DAC7612=m
+CONFIG_TI_ST=m
+CONFIG_TI_TLC4541=m
+CONFIG_TLAN=m
+CONFIG_TLS=m
+CONFIG_TLS_DEVICE=y
+CONFIG_TMD_HERMES=m
+CONFIG_TMP006=m
+CONFIG_TMP007=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_TORTURE_TEST=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+# CONFIG_TOSHIBA_WMI is not set
+CONFIG_TOUCHSCREEN_88PM860X=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ADC=m
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_BU21029=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
+CONFIG_TOUCHSCREEN_DA9034=m
+CONFIG_TOUCHSCREEN_DA9052=m
+CONFIG_TOUCHSCREEN_DMI=y
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_ELAN=y
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_HIDEEP=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+CONFIG_TOUCHSCREEN_RM_TS=m
+CONFIG_TOUCHSCREEN_ROHM_BU21023=m
+CONFIG_TOUCHSCREEN_S6SY761=m
+CONFIG_TOUCHSCREEN_SILEAD=m
+CONFIG_TOUCHSCREEN_SIS_I2C=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_STMFTS=m
+CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
+CONFIG_TOUCHSCREEN_SX8654=m
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_TSC2004=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
+CONFIG_TOUCHSCREEN_TSC200X_CORE=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_ZET6223=m
+CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TPL0102=m
+CONFIG_TPM_KEY_PARSER=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TPS68470_PMIC_OPREGION=y
+CONFIG_TQMX86_WDT=m
+CONFIG_TRACEPOINTS=y
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_TRACER_SNAPSHOT=y
+# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
+CONFIG_TRACE_CLOCK=y
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+CONFIG_TRACING=y
+CONFIG_TRACING_MAP=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TRUSTED_KEYS=y
+CONFIG_TSL2583=m
+CONFIG_TSL2772=m
+CONFIG_TSL4531=m
+CONFIG_TSYS01=m
+CONFIG_TSYS02D=m
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TTY=y
+CONFIG_TTY_PRINTK=y
+CONFIG_TTY_PRINTK_LEVEL=6
+CONFIG_TULIP=m
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_TUN=y
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_MADC=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_TWL6030_GPADC=m
+CONFIG_TWL6040_CORE=y
+CONFIG_TYPEC=m
+CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_MUX_PI3USB30532=m
+CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_RT1711H=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TPS6598X=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_TYPHOON=m
+# CONFIG_UBIFS_ATIME_SUPPORT is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_AUTHENTICATION=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_SECURITY=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UBIFS_FS_ZSTD=y
+# CONFIG_UBSAN is not set
+CONFIG_UBSAN_ALIGNMENT=y
+CONFIG_UCB1400_CORE=m
+CONFIG_UCLAMP_BUCKETS_COUNT=5
+CONFIG_UCLAMP_TASK=y
+CONFIG_UCLAMP_TASK_GROUP=y
+CONFIG_UCS2_STRING=y
+CONFIG_UCSI_ACPI=m
+CONFIG_UCSI_CCG=m
+CONFIG_UDF_FS=m
+CONFIG_UDMABUF=y
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_UFS_DEBUG is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_UHID=m
+CONFIG_UID16=y
+CONFIG_UIO=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_HV_GENERIC=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULI526X=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNICODE=y
+# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
+CONFIG_UNISYSSPAR=y
+CONFIG_UNISYS_VISORBUS=m
+CONFIG_UNISYS_VISORHBA=m
+CONFIG_UNISYS_VISORINPUT=m
+CONFIG_UNISYS_VISORNIC=m
+CONFIG_UNIX=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_UNIX_DIAG=m
+CONFIG_UNIX_SCM=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_UNWINDER_FRAME_POINTER=y
+# CONFIG_UNWINDER_GUESS is not set
+# CONFIG_UNWINDER_ORC is not set
+CONFIG_UPROBES=y
+CONFIG_UPROBE_EVENTS=y
+CONFIG_US5182D=m
+CONFIG_USB=y
+CONFIG_USBIP_CORE=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USBIP_VUDC=m
+CONFIG_USBPCWATCHDOG=m
+CONFIG_USB_ACM=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_AIRSPY=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_AN2720=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_ATM=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_BDC_UDC=m
+CONFIG_USB_BELKIN=y
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_PCI_WRAP=m
+CONFIG_USB_CHAOSKEY=m
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA_PCI=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_CONFIGFS_F_TCM=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_DSBR=m
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_DWC2=y
+# CONFIG_USB_DWC2_DEBUG is not set
+CONFIG_USB_DWC2_HOST=y
+CONFIG_USB_DWC2_PCI=m
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_DUAL_ROLE=y
+# CONFIG_USB_DWC3_GADGET is not set
+CONFIG_USB_DWC3_HAPS=m
+# CONFIG_USB_DWC3_HOST is not set
+CONFIG_USB_DWC3_PCI=m
+CONFIG_USB_DWC3_ULPI=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_EG20T=m
+CONFIG_USB_EHCI_FSL=m
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_EZUSB_FX2=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_MIDI=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_PRINTER=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_TCM=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UAC1_LEGACY=m
+CONFIG_USB_F_UAC2=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_GADGET=m
+CONFIG_USB_GADGETFS=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GL860=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_HID=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+# CONFIG_USB_HCD_TEST_MODE is not set
+CONFIG_USB_HID=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
+CONFIG_USB_HSO=m
+CONFIG_USB_HUB_USB251XB=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_HCD=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+CONFIG_USB_ISP1761_UDC=y
+CONFIG_USB_KAWETH=m
+CONFIG_USB_KBD=m
+CONFIG_USB_KC2190=y
+CONFIG_USB_KEENE=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LD=m
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
+CONFIG_USB_LED_TRIG=y
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_LINK_LAYER_TEST=m
+CONFIG_USB_M5602=m
+# CONFIG_USB_M66592 is not set
+CONFIG_USB_MA901=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MON=m
+CONFIG_USB_MOUSE=m
+CONFIG_USB_MR800=m
+CONFIG_USB_MSI2500=m
+CONFIG_USB_MUSB_DUAL_ROLE=y
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_HDRC=m
+# CONFIG_USB_MUSB_HOST is not set
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CH9200=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PCI=y
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_PHY=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_PULSE8_CEC=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_PXA27X=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RAINSHADOW_CEC=m
+CONFIG_USB_RAREMONO=m
+CONFIG_USB_ROLES_INTEL_XHCI=m
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_F8153X=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_UPD78F0730=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_SI470X=m
+CONFIG_USB_SI4713=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_HCD_ISO=y
+CONFIG_USB_SNP_CORE=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_TEST=m
+CONFIG_USB_TMC=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_UAS=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_VL600=m
+CONFIG_USB_WDM=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_XHCI_DBGCAP=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_ZERO=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USELIB=y
+CONFIG_USERFAULTFD=y
+CONFIG_USERIO=m
+CONFIG_USER_NS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_UTS_NS=y
+CONFIG_UV_MMTIMER=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_WHCI=m
+CONFIG_U_SERIAL_CONSOLE=y
+CONFIG_V4L2_FLASH_LED_CLASS=m
+CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VALIDATE_FS_PARSER=y
+# CONFIG_VBOXGUEST is not set
+CONFIG_VCNL4000=m
+CONFIG_VCNL4035=m
+CONFIG_VEML6070=m
+CONFIG_VERSION_SIGNATURE=""
+CONFIG_VETH=m
+CONFIG_VFAT_FS=y
+CONFIG_VFIO=y
+CONFIG_VFIO_IOMMU_TYPE1=y
+CONFIG_VFIO_MDEV=m
+CONFIG_VFIO_MDEV_DEVICE=m
+CONFIG_VFIO_NOIOMMU=y
+CONFIG_VFIO_PCI=y
+CONFIG_VFIO_PCI_IGD=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_VIRQFD=y
+CONFIG_VGASTATE=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_RING=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_VIA_WDT=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_DMA_SG=m
+CONFIG_VIDEOBUF2_DVB=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_VIDEO_AD5820=m
+CONFIG_VIDEO_AD9389B=m
+CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_ADV7393=m
+CONFIG_VIDEO_ADV7511=m
+CONFIG_VIDEO_ADV7511_CEC=y
+CONFIG_VIDEO_ADV7604=m
+CONFIG_VIDEO_ADV7604_CEC=y
+CONFIG_VIDEO_ADV7842=m
+CONFIG_VIDEO_ADV7842_CEC=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_AK7375=m
+CONFIG_VIDEO_AK881X=m
+CONFIG_VIDEO_APTINA_PLL=m
+CONFIG_VIDEO_ASPEED=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_AU0828_V4L2=y
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_CADENCE=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
+CONFIG_VIDEO_CADENCE_CSI2TX=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_COBALT=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CROS_EC_CEC=m
+CONFIG_VIDEO_CS3308=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_ENABLE_VP3054=y
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_VIDEO_DW9714=m
+CONFIG_VIDEO_DW9807_VCM=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_ET8EK8=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_FB_IVTV_FORCE_PAT=y
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_LOADER=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_GS1662=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_I2C=m
+CONFIG_VIDEO_IMX214=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX274=m
+CONFIG_VIDEO_IMX319=m
+CONFIG_VIDEO_IMX355=m
+CONFIG_VIDEO_IPU3_CIO2=m
+CONFIG_VIDEO_IPU3_IMGU=m
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_IVTV_ALSA=m
+# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_LM3560=m
+CONFIG_VIDEO_LM3646=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_ML86V7667=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_MT9M001=m
+CONFIG_VIDEO_MT9M032=m
+CONFIG_VIDEO_MT9M111=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
+CONFIG_VIDEO_MT9T112=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_MT9V111=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_OV13858=m
+CONFIG_VIDEO_OV2640=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV2680=m
+CONFIG_VIDEO_OV2685=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV5670=m
+CONFIG_VIDEO_OV5675=m
+CONFIG_VIDEO_OV5695=m
+CONFIG_VIDEO_OV6650=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_OV772X=m
+CONFIG_VIDEO_OV7740=m
+CONFIG_VIDEO_OV8856=m
+CONFIG_VIDEO_OV9640=m
+CONFIG_VIDEO_OV9650=m
+# CONFIG_VIDEO_PCI_SKELETON is not set
+CONFIG_VIDEO_PVRUSB2=m
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_PVRUSB2_DVB=y
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5C73M3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA6752HS=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_GO7007=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_SECO_CEC=m
+CONFIG_VIDEO_SECO_RC=y
+CONFIG_VIDEO_SH_VEU=m
+CONFIG_VIDEO_SMIAPP=m
+CONFIG_VIDEO_SMIAPP_PLL=m
+CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_STK1160=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_ST_MIPID02=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TC358743_CEC=y
+CONFIG_VIDEO_TDA1997X=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_THS8200=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW5864=m
+CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_TW9910=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_VIDEO_V4L2_TPG=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIVID_CEC=y
+CONFIG_VIDEO_VIVID_MAX_DEVS=64
+CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIPERBOARD_ADC=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_BLK_SCSI=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_FS=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_PMEM=m
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_VIRTUALIZATION=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_VIRT_WIFI=m
+CONFIG_VITESSE_PHY=m
+CONFIG_VL53L0X_I2C=m
+CONFIG_VL6180=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_VMAP_STACK=y
+CONFIG_VMD=m
+CONFIG_VME_BUS=y
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_FAKE=m
+CONFIG_VME_TSI148=m
+CONFIG_VME_USER=m
+CONFIG_VMIVME_7805=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_VMWARE_VMCI=m
+CONFIG_VMWARE_VMCI_VSOCKETS=m
+CONFIG_VMXNET3=m
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VOP=m
+CONFIG_VOP_BUS=m
+CONFIG_VORTEX=m
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKETS_DIAG=m
+CONFIG_VSOCKMON=m
+CONFIG_VT=y
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_VXLAN=m
+CONFIG_VZ89X=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_SGI=m
+CONFIG_W1_SLAVE_DS2405=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS250X=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS2805=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_WAFER_WDT=m
+CONFIG_WAN=y
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_WANXL=m
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP=y
+# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC is not set
+CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+# CONFIG_WCN36XX_SNAPDRAGON_HACKS is not set
+CONFIG_WDAT_WDT=m
+CONFIG_WDTPCI=m
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PRIV=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WIL6210=m
+CONFIG_WIL6210_DEBUGFS=y
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_WIL6210_TRACING=y
+CONFIG_WILC1000=m
+CONFIG_WILC1000_HW_OOB_INTR=y
+CONFIG_WILC1000_SDIO=m
+CONFIG_WILC1000_SPI=m
+CONFIG_WILCO_EC=m
+CONFIG_WILCO_EC_DEBUGFS=m
+CONFIG_WILCO_EC_EVENTS=m
+CONFIG_WILCO_EC_TELEMETRY=m
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WINBOND_840=m
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+# CONFIG_WIRELESS_WDS is not set
+CONFIG_WIZNET_BUS_ANY=y
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_WIZNET_W5300=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+CONFIG_WLAN_VENDOR_ATH=y
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_WLAN_VENDOR_BROADCOM=y
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+CONFIG_WLAN_VENDOR_RALINK=y
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_POWER=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_WMI_BMOF=m
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+CONFIG_X25=m
+CONFIG_X25_ASY=m
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_X86=y
+CONFIG_X86_16BIT=y
+# CONFIG_X86_5LEVEL is not set
+CONFIG_X86_64=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_ACPI_CPUFREQ=y
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
+# CONFIG_X86_CPA_STATISTICS is not set
+CONFIG_X86_CPUID=m
+CONFIG_X86_CPU_RESCTRL=y
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_X86_DEBUG_FPU=y
+# CONFIG_X86_DECODER_SELFTEST is not set
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_X86_ESPFIX64=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_FEATURE_NAMES=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_HV_CALLBACK_VECTOR=y
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
+# CONFIG_X86_INTEL_MID is not set
+CONFIG_X86_INTEL_MPX=y
+CONFIG_X86_INTEL_PSTATE=y
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
+CONFIG_X86_INTEL_UMIP=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCELOG_LEGACY=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_INJECT=m
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_THRESHOLD=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_X86_NUMACHIP=y
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_PAT=y
+CONFIG_X86_PCC_CPUFREQ=y
+CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY_DEVICE=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_X86_POWERNOW_K8=y
+# CONFIG_X86_PTDUMP is not set
+CONFIG_X86_PTDUMP_CORE=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_X86_SMAP=y
+CONFIG_X86_SPEEDSTEP_CENTRINO=y
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_SYSFB is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_TSC=y
+CONFIG_X86_UV=y
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+# CONFIG_X86_VSMP is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_X86_X2APIC=y
+CONFIG_X86_X32=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
+CONFIG_XEN=y
+CONFIG_XENFS=m
+CONFIG_XEN_512GB=y
+CONFIG_XEN_ACPI=y
+CONFIG_XEN_ACPI_PROCESSOR=y
+CONFIG_XEN_AUTO_XLATE=y
+CONFIG_XEN_BACKEND=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_COMPAT_XENFS=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_EFI=y
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_FRONT_PGDIR_SHBUF=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GNTDEV_DMABUF=y
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_GRANT_DMA_ALLOC=y
+CONFIG_XEN_HAVE_PVMMU=y
+CONFIG_XEN_HAVE_VPMU=y
+CONFIG_XEN_MCE_LOG=y
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_XEN_NETDEV_FRONTEND=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_PV=y
+# CONFIG_XEN_PVCALLS_BACKEND is not set
+CONFIG_XEN_PVCALLS_FRONTEND=m
+CONFIG_XEN_PVH=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_PVHVM_SMP=y
+CONFIG_XEN_PV_SMP=y
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
+CONFIG_XEN_SCSI_BACKEND=m
+CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_XEN_SYMS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_WDT=m
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_XFRM_MIGRATE is not set
+CONFIG_XFRM_OFFLOAD=y
+CONFIG_XFRM_STATISTICS=y
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_USER=m
+# CONFIG_XFS_DEBUG is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_ONLINE_SCRUB is not set
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+CONFIG_XIAOMI_WMI=m
+CONFIG_XILINX_AXI_EMAC=m
+CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_XILINX_PR_DECOUPLER=m
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_VCU=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILINX_XADC=m
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
+CONFIG_XOR_BLOCKS=m
+CONFIG_XPS=y
+CONFIG_XXHASH=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YAM=m
+CONFIG_YELLOWFIN=m
+CONFIG_YENTA=m
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_Z3FOLD=m
+CONFIG_ZBUD=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_ZEROPLUS_FF=y
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZISOFS=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DEVICE=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ZOPT2201=m
+CONFIG_ZPA2326=m
+CONFIG_ZPA2326_I2C=m
+CONFIG_ZPA2326_SPI=m
+CONFIG_ZPOOL=y
+CONFIG_ZRAM=m
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSTD_COMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_ZSWAP=y
+CONFIG_ZX_TDM=m
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/control.d/flavour-control.stub
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/control.d/flavour-control.stub
@@ -0,0 +1,142 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Provides: SRCPKGNAME-image, fuse-module, aufs-dkms, =PROVIDES=${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-PKGVER-ABINUM-FLAVOUR
+Recommends: BOOTLOADER, initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image=SIGN-PEER-PKG=-PKGVER-ABINUM-FLAVOUR
+Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the=SIGN-ME-TXT= Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version PKGVER on DESC
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-extra-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR | linux-image-unsigned-PKGVER-ABINUM-FLAVOUR, crda | wireless-crda
+Description: Linux kernel extra modules for version PKGVER on DESC
+ This package contains the Linux kernel extra modules for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details.
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR-dbgsym
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: SRCPKGNAME-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides the=SIGN-ME-TXT= kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+
+Package: linux-cloud-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud for version PKGVER-ABINUM on
+ =HUMAN=.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/control.d/gkeop.inclusion-list
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/control.d/gkeop.inclusion-list
@@ -0,0 +1,252 @@
+arch/*/{crypto,kernel,oprofile}
+arch/*/kvm/kvm.ko
+arch/powerpc/kvm/kvm-hv.ko
+arch/powerpc/kvm/kvm-pr.ko
+arch/powerpc/kvm/vfio.ko
+arch/powerpc/platforms/powernv/opal-prd.ko
+arch/s390/*
+arch/x86/kvm/kvm-amd.ko
+arch/x86/kvm/kvm-intel.ko
+crypto/*
+drivers/acpi/*
+drivers/ata/acard-ahci.ko
+drivers/ata/ahci.ko
+drivers/ata/ahci_platform.ko
+drivers/ata/ata_generic.ko
+drivers/ata/libahci.ko
+drivers/ata/libahci_platform.ko
+drivers/block/brd.ko
+drivers/block/cryptoloop.ko
+drivers/block/floppy.ko
+drivers/block/loop.ko
+drivers/block/nbd.ko
+drivers/block/rbd.ko
+drivers/block/virtio_blk.ko
+drivers/block/xen-blkfront.ko
+drivers/char/hangcheck-timer.ko
+drivers/char/hw_random/powernv-rng.ko
+drivers/char/hw_random/virtio-rng.ko
+drivers/char/ipmi/*
+drivers/char/ipmi/ipmi_msghandler.ko
+drivers/char/lp.ko
+drivers/char/nvram.ko
+drivers/char/ppdev.ko
+drivers/char/raw.ko
+drivers/char/virtio_console.ko
+drivers/crypto/nx/*
+drivers/crypto/vmx/vmx-crypto.ko
+drivers/firmware/efi/*
+drivers/firmware/iscsi_ibft.ko
+drivers/gpu/drm/ast/ast.ko
+drivers/gpu/drm/drm_kms_helper.ko
+drivers/gpu/drm/drm.ko
+drivers/gpu/drm/ttm/ttm.ko
+drivers/hid/hid-generic.ko
+drivers/hid/hid-hyperv.ko
+drivers/hid/hid.ko
+drivers/hid/usbhid/usbhid.ko
+drivers/hv/*
+drivers/hwmon/ibmpowernv.ko
+drivers/infiniband/core/ib_addr.ko
+drivers/infiniband/core/ib_cm.ko
+drivers/infiniband/core/ib_core.ko
+drivers/infiniband/core/ib_mad.ko
+drivers/infiniband/core/ib_sa.ko
+drivers/infiniband/core/iw_cm.ko
+drivers/infiniband/core/rdma_cm.ko
+drivers/infiniband/ulp/iser/ib_iser.ko
+drivers/infiniband/ulp/isert/ib_isert.ko
+drivers/input/evbug.ko
+drivers/input/gameport/gameport.ko
+drivers/input/input-leds.ko
+drivers/input/joydev.ko
+drivers/input/misc/xen-kbdfront.ko
+drivers/input/mouse/psmouse.ko
+drivers/input/serio/hyperv-keyboard.ko
+drivers/input/serio/serio_raw.ko
+drivers/input/serio/serport.ko
+drivers/input/touchscreen/usbtouchscreen.ko
+drivers/leds/leds-powernv.ko
+drivers/md/*
+drivers/message/fusion*
+drivers/misc/cxl/*
+drivers/misc/eeprom/at24.ko
+drivers/misc/vmw_balloon.ko
+drivers/misc/vmw_vmci/vmw_vmci.ko
+drivers/mtd/cmdlinepart.ko
+drivers/mtd/devices/powernv_flash.ko
+drivers/mtd/ofpart.ko
+drivers/net/appletalk/ipddp.ko
+drivers/net/bonding/bonding.ko
+drivers/net/caif/caif_virtio.ko
+drivers/net/dummy.ko
+drivers/net/eql.ko
+drivers/net/ethernet/8390/8390.ko
+drivers/net/ethernet/8390/ne2k-pci.ko
+drivers/net/ethernet/amazon/ena/ena.ko
+drivers/net/ethernet/amd/pcnet32.ko
+drivers/net/ethernet/broadcom/bnx2x/*
+drivers/net/ethernet/broadcom/tg3.ko
+drivers/net/ethernet/dec/tulip/*
+drivers/net/ethernet/emulex/benet/*
+drivers/net/ethernet/ibm/*
+drivers/net/ethernet/intel/e1000/e1000.ko
+drivers/net/ethernet/intel/e1000e/e1000e.ko
+drivers/net/ethernet/intel/i40e/*
+drivers/net/ethernet/intel/iavf/iavf.ko
+drivers/net/ethernet/intel/igb/*
+drivers/net/ethernet/intel/igbvf/igbvf.ko
+drivers/net/ethernet/intel/ixgbe/*
+drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+drivers/net/ethernet/mellanox/*
+drivers/net/ethernet/netronome/nfp/nfp.ko
+drivers/net/ethernet/realtek/8139cp.ko
+drivers/net/ethernet/realtek/8139too.ko
+drivers/net/fddi/*
+drivers/net/geneve.ko
+drivers/net/hyperv/hv_netvsc.ko
+drivers/net/ifb.ko
+drivers/net/ipvlan/*
+drivers/net/macvlan.ko
+drivers/net/macvtap.ko
+drivers/net/mii.ko
+drivers/net/netconsole.ko
+drivers/net/ppp/*
+drivers/net/ppp/bsd_comp.ko
+drivers/net/slip/*
+drivers/net/veth.ko
+drivers/net/virtio_net.ko
+drivers/net/vmxnet3/vmxnet3.ko
+drivers/net/vxlan.ko
+drivers/net/xen-netback/*
+drivers/net/xen-netfront.ko
+drivers/nvme/host/nvme.ko
+drivers/nvmem/nvmem_core.ko
+drivers/parport/parport.ko
+drivers/parport/parport_pc.ko
+drivers/pci/host/vmd.ko
+drivers/platform/x86/pvpanic.ko
+drivers/pps/pps_core.ko
+drivers/ptp/ptp.ko
+drivers/s390/*
+drivers/s390/block/xpram.ko
+drivers/scsi/aacraid/*
+drivers/scsi/BusLogic.ko
+drivers/scsi/cxlflash/*
+drivers/scsi/device_handler/scsi_dh_alua.ko
+drivers/scsi/device_handler/scsi_dh_emc.ko
+drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+drivers/scsi/device_handler/scsi_dh_rdac.ko
+drivers/scsi/hv_storvsc.ko
+drivers/scsi/ibmvscsi/*
+drivers/scsi/ipr.ko
+drivers/scsi/iscsi_boot_sysfs.ko
+drivers/scsi/iscsi_tcp.ko
+drivers/scsi/libiscsi.ko
+drivers/scsi/libiscsi_tcp.ko
+drivers/scsi/libsas/*
+drivers/scsi/lpfc/*
+drivers/scsi/megaraid/*
+drivers/scsi/mpt3sas/*
+drivers/scsi/osd/libosd.ko
+drivers/scsi/osd/osd.ko
+drivers/scsi/qla1280.ko
+drivers/scsi/qla2xxx/*
+drivers/scsi/raid_class.ko
+drivers/scsi/scsi_transport_fc.ko
+drivers/scsi/scsi_transport_iscsi.ko
+drivers/scsi/scsi_transport_sas.ko
+drivers/scsi/scsi_transport_spi.ko
+drivers/scsi/sd_mod.ko
+drivers/scsi/sr_mod.ko
+drivers/scsi/virtio_scsi.ko
+drivers/scsi/vmw_pvscsi.ko
+drivers/target/target_core*.ko
+drivers/target/loopback/tcm_loop.ko
+drivers/tty/serial/jsm/*
+drivers/uio/uio.ko
+drivers/uio/uio_pdrv_genirq.ko
+drivers/usb/host/*
+drivers/usb/storage/uas.ko
+drivers/usb/storage/usb-storage.ko
+drivers/vfio/*
+drivers/vhost/*
+drivers/video/fbdev/*
+drivers/video/vgastate.ko
+drivers/virtio/*
+drivers/watchdog/softdog.ko
+drivers/xen/*
+! find sound/core -name oss -prune -o -name *.ko -print
+fs/9p/*
+fs/aufs/aufs.ko
+fs/autofs/autofs4.ko
+fs/binfmt_misc.ko
+fs/btrfs/*
+fs/cachefiles/cachefiles.ko
+fs/ceph/*
+fs/cifs/*
+fs/configfs/*
+fs/dlm/dlm.ko
+fs/ecryptfs/*
+fs/efivarfs/*
+fs/exofs/libore.ko
+fs/ext4/*
+fs/fat/*
+fs/fscache/*
+fs/fuse/*
+fs/isofs/*
+fs/lockd/*
+fs/nfs/*
+fs/nfs_common/*
+fs/nfsd/*
+fs/nls/nls_cp437.ko
+fs/nls/nls_iso8859-1.ko
+fs/overlayfs/*
+fs/shiftfs.ko
+fs/squashfs/*
+fs/udf/*
+fs/ufs/*
+fs/xfs/*
+lib/*
+net/6lowpan/*
+net/802/*
+net/8021q/*
+net/9p/*
+net/appletalk/*
+net/atm/*
+net/ax25/*
+net/bpfilter/*
+net/bridge/*
+net/can/*
+net/ceph/libceph.ko
+net/core/*
+net/dccp/*
+net/decnet/*
+net/ieee802154/*
+net/ipv4/*
+net/ipv6/*
+net/ipx/*
+net/key/*
+net/lapb/*
+net/llc/*
+net/netfilter/*
+net/netlink/netlink_diag.ko
+net/netrom/*
+net/openvswitch/*
+net/packet/af_packet_diag.ko
+net/phonet/*
+net/rose/*
+net/rxrpc/*
+net/sched/*
+net/sctp/*
+net/sunrpc/auth_gss/auth_rpcgss.ko
+net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+net/sunrpc/sunrpc.ko
+net/tipc/*
+net/unix/unix_diag.ko
+net/vmw_vsock/*
+net/x25/*
+net/xfrm/*
+sound/drivers/pcsp/snd-pcsp.ko
+sound/pci/snd-ens1370.ko
+sound/soundcore.ko
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/control.d/vars.gkeop
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/control.d/vars.gkeop
@@ -0,0 +1,6 @@
+arch="amd64"
+supported="gkeop"
+target="Geared toward GKE on-prem installations."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [i386 amd64 x32]"
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/control.stub.in
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/control.stub.in
@@ -0,0 +1,115 @@
+Source: SRCPKGNAME
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ libcap-dev <!stage1>,
+ makedumpfile [amd64 i386] <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ default-jdk-headless <!stage1>,
+ java-common <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf i386 ppc64el] <!stage1>,
+ liblzma-dev <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ libnuma-dev [amd64 arm64 i386 ppc64el s390x] <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python-sphinx <!stage1>,
+ python-sphinx-rtd-theme <!stage1>,
+ fontconfig <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-gke/+git/=SERIES= -b gkeop-5.4
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: SRCPKGNAME-source-PKGVER
+Build-Profiles: <!stage1>
+Architecture: all
+Section: devel
+Priority: optional
+Provides: SRCPKGNAME-source
+Depends: ${misc:Depends}, binutils, bzip2, coreutils
+Recommends: libc-dev, gcc, make
+Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev
+Description: Linux kernel source for version PKGVER with Ubuntu patches
+ This package provides the source code for the Linux kernel version
+ PKGVER.
+ .
+ This package is mainly meant for other packages to use, in order to build
+ custom flavours.
+ .
+ If you wish to use this package to create a custom Linux kernel, then it
+ is suggested that you investigate the package kernel-package, which has
+ been designed to ease the task of creating kernel image packages.
+ .
+ If you are simply trying to build third-party modules for your kernel,
+ you do not want this package. Install the appropriate SRCPKGNAME-headers
+ package instead.
+
+Package: SRCPKGNAME-headers-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-tools-PKGVER-ABINUM-<flavour>.
+
+Package: SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud tools for version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-cloud-tools-PKGVER-ABINUM-<flavour>.
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/copyright
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/amd64/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/amd64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/amd64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/amd64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/amd64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/arm64/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/arm64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/arm64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/arm64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/arm64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/armhf/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/armhf/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/i386/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/i386/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/i386/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/i386/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/i386/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/nic-modules
@@ -0,0 +1,14 @@
+e100/d101m_ucode.bin ?
+e100/d101s_ucode.bin ?
+e100/d102e_ucode.bin ?
+bnx2/bnx2-mips-09-6.2.1b.fw ?
+bnx2/bnx2-rv2p-06-6.0.15.fw ?
+bnx2/bnx2-mips-06-6.2.3.fw ?
+bnx2/bnx2-rv2p-09-6.0.17.fw ?
+bnx2/bnx2-rv2p-09ax-6.0.17.fw ?
+bnx2x/bnx2x-e1h-7.12.30.0.fw ?
+bnx2x/bnx2x-e1-7.12.30.0.fw ?
+bnx2x/bnx2x-e2-7.12.30.0.fw ?
+tigon/tg3_tso5.bin ?
+tigon/tg3_tso.bin ?
+tigon/tg3.bin ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/powerpc/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/powerpc/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/powerpc/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/powerpc/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/powerpc/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/powerpc/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/ppc64el/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/ppc64el/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/ppc64el/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/ppc64el/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/s390x/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/s390x/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/s390x/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/s390x/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/s390x/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/firmware/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin ?
+qlogic/12160.bin ?
+qlogic/1280.bin ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/kernel-versions
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/kernel-versions
@@ -0,0 +1,5 @@
+# arch	version		flavour		installedname			suffix	bdep
+amd64	-		gkeop		-				-	-
+
+# Ports
+# arch	version		flavour		installedname			suffix	bdep
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64-virtual/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/amd64/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/amd64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/arm64/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/arm64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/armhf/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/armhf/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/block-modules
@@ -0,0 +1,43 @@
+aoe ?
+aten ?
+bcm2835 ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+hpsa ?
+hio ?
+kbic ?
+ktti ?
+nbd ?
+nvme ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sdhci-tegra ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
+mtip32xx ?
+mmc_block ?
+sdhci ?
+sdhci-pci ?
+sdhci-acpi ?
+tifm_sd ?
+dw_mmc ?
+dw_mmc_pltfm ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/block-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/block-modules.powerpc
@@ -0,0 +1,31 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+kbic ?
+ktti ?
+nbd ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+ps3disk ?
+ps3vram ?
+pt ?
+sx8 ?
+umem ?
+virtio_blk ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/crypto-modules
@@ -0,0 +1,78 @@
+aesni-intel ?
+aes-x86_64 ?
+af_alg ?
+algif_hash ?
+algif_skcipher ?
+ansi_cprng ?
+anubis ?
+arc4 ?
+async_memcpy ?
+async_pq ?
+async_raid6_recov ?
+async_tx ?
+async_xor ?
+authenc ?
+authencesn ?
+blowfish_common ?
+blowfish_generic ?
+blowfish-x86_64 ?
+camellia ?
+cast5 ?
+cast6 ?
+ccm ?
+crc32_generic ?
+crc32c_generic ?
+crc32-vx_s390 ?
+cryptd ?
+cryptoloop ?
+crypto_null ?
+crypto_user ?
+ctr ?
+cts ?
+des_generic ?
+fcrypt ?
+gcm ?
+gf128mul ?
+ghash-clmulni-intel ?
+ghash-generic ?
+khazad ?
+lrw ?
+lzo ?
+md4 ?
+michael_mic ?
+padlock-aes ?
+padlock-sha ?
+paes_s390 ?
+pcbc ?
+pcrypt ?
+pkey ?
+raid6test ?
+rmd128 ?
+rmd160 ?
+rmd256 ?
+rmd320 ?
+salsa20_generic ?
+salsa20-x86_64 ?
+seed ?
+seqiv ?
+serpent_generic ?
+serpent-sse2-x86_64 ?
+sha1-ssse3 ?
+sha512_generic ?
+tcrypt ?
+tea ?
+tgr192 ?
+twofish_common ?
+twofish_generic ?
+twofish-x86_64 ?
+twofish-x86_64-3way ?
+vmac ?
+wp512 ?
+xcbc ?
+xor ?
+xts ?
+zcrypt ?
+zcrypt_cex2a ?
+zcrypt_cex4 ?
+zcrypt_pcixcc ?
+zlib ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/dasd-extra-modules.s390x
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/dasd-extra-modules.s390x
@@ -0,0 +1 @@
+dasd_diag_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/dasd-modules.s390x
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/dasd-modules.s390x
@@ -0,0 +1,3 @@
+dasd_mod ?
+dasd_fba_mod ?
+dasd_eckd_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+firewire-core ?
+firewire-ohci ?
+firewire-sbp2 ?
+firewire-net ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/fs-core-modules
@@ -0,0 +1,6 @@
+ext2 ?
+ext4 ?
+jfs ?
+reiserfs ?
+xfs ?
+zfs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386-virtual/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/i386/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/i386/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/input-modules
@@ -0,0 +1,71 @@
+hid ?
+hid-a4tech ?
+hid-apple ?
+hid-appleir ?
+hid-aureal ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-corsair ?
+hid-cp2112 ?
+hid-cypress ?
+hid-dell ?
+hid-elecom ?
+hid-elo ?
+hid-ezkey ?
+hid-generic ?
+hid-gfrm ?
+hid-gt683r ?
+hid-gyration ?
+hid-holtek-kbd ?
+hid-holtek-mouse ?
+hid-hyperv ?
+hid-kensington ?
+hid-keytouch ?
+hid-kye ?
+hid-lcpower ?
+hid-lenovo ?
+hid-logitech ?
+hid-logitech-dj ?
+hid-logitech-hidpp ?
+hid-magicmouse ?
+hid-microsoft ?
+hid-monterey ?
+hid-multitouch ?
+hid-ntrig ?
+hid-ortek ?
+hid-penmount ?
+hid-petalynx ?
+hid-picolcd ?
+hid-pl ?
+hid-plantronics ?
+hid-primax ?
+hid-rmi ?
+hid-roccat ?
+hid-roccat-arvo ?
+hid-roccat-common ?
+hid-roccat-isku ?
+hid-roccat-kone ?
+hid-roccat-koneplus ?
+hid-roccat-konepure ?
+hid-roccat-kovaplus ?
+hid-roccat-lua ?
+hid-roccat-pyra ?
+hid-roccat-ryos ?
+hid-roccat-savu ?
+hid-samsung ?
+hid-sony ?
+hid-speedlink ?
+hid-sunplus ?
+hid-thingm ?
+hid-tivo ?
+hid-topseed ?
+hid-twinhan ?
+hid-uclogic ?
+hid-waltop ?
+hid-wiimote ?
+hid-xinmo ?
+hid-zydacron ?
+uhid ?
+usbhid ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ipmi-modules
@@ -0,0 +1,5 @@
+ipmi_devintf ?
+ipmi_msghandler ?
+ipmi_poweroff ?
+ipmi_si ?
+ipmi_watchdog ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/kernel-image
@@ -0,0 +1,31 @@
+ast ?
+gpio-pca953x ?
+gpio-regulator ?
+hibmc-drm ?
+i2c-mux ?
+i2c-mux-pinctrl ?
+i2c-tegra ?
+max8907 ?
+max8907-regulator ?
+nvec ?
+nvec_kbd ?
+nvec_paz00 ?
+nvec_power ?
+nvec_ps2 ?
+palmas-regulator ?
+rtc-em3027 ?
+rtc-max8907 ?
+rtc-palmas ?
+rtc-tps6586x ?
+rtc-tps65910 ?
+tps51632-regulator ?
+tps62360-regulator ?
+tps65090-charger ?
+tps65090-regulator ?
+tps6586x-regulator ?
+tps65910-regulator ?
+host1x ?
+tegra-drm ?
+pwm_bl ?
+pwm-tegra ?
+panel-simple ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/md-modules
@@ -0,0 +1,16 @@
+dm-crypt ?
+dm-mirror ?
+dm-raid ?
+dm-snapshot ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid45 ?
+dm-loop ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/message-modules
@@ -0,0 +1,9 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mpt3sas ?
+mptscsih ?
+mptspi ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/message-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/message-modules.powerpc
@@ -0,0 +1,7 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/multipath-modules
@@ -0,0 +1,4 @@
+dm-multipath ?
+dm-round-robin ?
+dm-service-time ?
+dm-queue-length ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/nfs-modules
@@ -0,0 +1,6 @@
+nfs ?
+nfs_acl ?
+nfsv3 ?
+lockd ?
+sunrpc ?
+cifs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/nic-modules
@@ -0,0 +1,209 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+alx ?
+amd8111e ?
+amd-xgbe ?
+aquantia ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+ath5k ?
+ath9k ?
+ath9k_htc ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm87xx ?
+be2net ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bnxt_en ?
+bonding ?
+brcmfmac ?
+brcmsmac ?
+broadcom ?
+xgmac ?
+cassini ?
+ccwgroup ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+ctcm ?
+cxgb4 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+enic ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+fsm ?
+ibmveth ?
+ibmvnic ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hclge ?
+hermes ?
+hfi1 ?
+hinic ?
+hns_dsaf ?
+hns_enet_drv ?
+hns_mdio ?
+hns3 ?
+hp ?
+hp100 ?
+hp-plus ?
+i40e ?
+i40evf ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+iwl3945 ?
+iwl4965 ?
+iwl-legacy ?
+iwldvm ?
+iwlmvm ?
+iwlwifi ?
+ixgb ?
+ixgbe ?
+lance ?
+lanstreamer ?
+lcs ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+marvell ?
+mdio-thunder ?
+mlx4_core ?
+mlx4_en ?
+mlx5_core ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netiucv ?
+netsec ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+nicpf ?
+nicvf ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+qcom-emac ?
+qede ?
+qeth ?
+qeth_l2 ?
+qeth_l3 ?
+qlcnic ?
+r815x ?
+r8169 ?
+rate_control ?
+realtek ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2400pci ?
+rt2500 ?
+rt2500pci ?
+rt2800pci ?
+rt61pci ?
+s2io ?
+sfc ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
+xgene-enet ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/nic-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/nic-modules.powerpc
@@ -0,0 +1,152 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ibmveth ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+ps3_gelic ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/nic-shared-modules
@@ -0,0 +1,26 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+rt2800lib ?
+
+# Atheros library (since drivers are split across nic-modules/nic-usb-modules)
+ath ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/nic-usb-modules
@@ -0,0 +1,34 @@
+ax88179_178a ?
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+rt2800usb ?
+rt2x00usb ?
+cdc_ether ?
+asix ?
+cdc_eem ?
+cdc_ether ?
+cdc-phonet ?
+cdc_subset ?
+dm9601 ?
+gl620a ?
+hso ?
+int51x1 ?
+mcs7830 ?
+net1080 ?
+plusb ?
+rndis_host ?
+r8152 ?
+smsc95xx ?
+zaurus ?
+carl9170 ?
+smsc75xx ?
+smsc95xx ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/pata-modules
@@ -0,0 +1,47 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_macio.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/storage-core-modules
@@ -0,0 +1,2 @@
+#include <storage-core-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppc64el/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppc64el/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/crypto-modules
@@ -0,0 +1,2 @@
+#include <crypto-modules>
+deflate ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/dasd-extra-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/dasd-extra-modules
@@ -0,0 +1 @@
+#include <dasd-extra-modules.s390x>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/dasd-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/dasd-modules
@@ -0,0 +1 @@
+#include <dasd-modules.s390x>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/s390x/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/s390x/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/sata-modules
@@ -0,0 +1,18 @@
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
+ahci_platform ?
+ahci ?
+acard-ahci ?
+libahci ?
+ahci_xgene ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/scsi-modules
@@ -0,0 +1,137 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+sr_mod ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+pm80xx ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+fnic ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsi ?
+ibmvfc ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
+ums-cypress ?
+be2iscsi ?
+3w-sas ?
+isci ?
+mlx4_ib ?
+mlx5_ib ?
+zfcp ?
+sd_mod ?
+hisi_sas_v2_hw ?
+hisi_sas_v3_hw ?
+iscsi_ibft ?
+
+# device handlers
+scsi_dh_alua ?
+scsi_dh_emc ?
+scsi_dh_rdac ?
+scsi_dh_hp_sw ?
+
+smartpqi ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/scsi-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/scsi-modules.powerpc
@@ -0,0 +1,118 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+ibmvfc ?
+ibmvscsi ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+sr_mod ?
+sd_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/serial-modules
@@ -0,0 +1,4 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
+hyperv-keyboard ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/speakup-modules
@@ -0,0 +1,16 @@
+speakup ?
+speakup_acntpc ?
+speakup_acntsa ?
+speakup_apollo ?
+speakup_audptr ?
+speakup_bns ?
+speakup_decext ?
+speakup_dectlk ?
+speakup_dtlk ?
+speakup_dummy ?
+speakup_keypc ?
+speakup_ltlk ?
+speakup_soft ?
+speakup_spkout ?
+speakup_txprt ?
+speakup_decpc ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/storage-core-modules
@@ -0,0 +1,15 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+ata_piix ?
+ata_generic ?
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
+
+# Needed for NVMe disks under VMD PCIe domains
+vmd ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/storage-core-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/storage-core-modules.powerpc
@@ -0,0 +1,13 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop
+
+# Needs to be here for better cdrom initrd layout
+isofs
+
+ps3stor_lib ?
+ps3rom ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/usb-modules
@@ -0,0 +1,15 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
+xhci-hcd ?
+xhci-plat-hcd ?
+ehci-tegra ?
+ehci-msm ?
+ehci-platform ?
+uas ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/virtio-modules
@@ -0,0 +1,11 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
+virtio_scsi ?
+hv_vmbus ?
+hv_utils ?
+hv_netvsc ?
+hv_mouse ?
+hv_storvsc ?
+hv_balloon ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/modules/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/d-i/package-list
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/d-i/package-list
@@ -0,0 +1,203 @@
+Package: kernel-image
+Provides: ext3-modules, ext4-modules, squashfs-modules
+Provides_amd64: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_i386: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_ppc64el: ext3-modules, ext4-modules, fat-modules, squashfs-modules
+Provides_s390x: ext3-modules, ext4-modules, ppp-modules, squashfs-modules
+Description: kernel image and system map
+
+Package: dasd-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: DASD storage support
+
+Package: dasd-extra-modules
+Depends: dasd-modules
+Priority: extra
+Description: DASD storage support -- extras
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: ext2-modules, jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: btrfs-modules, ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Provides: crypto-dm-modules
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Provides: nbd-modules
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
+Package: ipmi-modules
+Depends: kernel-image
+Priority: standard
+Description: ipmi modules
+
+Package: multipath-modules
+Depends: kernel-image
+Priority: extra
+Description: DM-Multipath support
+  This package contains modules for device-mapper multipath support.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/etc/getabis
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/etc/getabis
@@ -0,0 +1,11 @@
+repo_list=(
+	"http://archive.ubuntu.com/ubuntu/pool/main/l/linux-gkeop-5.4"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-gkeop-5.4"
+	"http://archive.ubuntu.com/ubuntu/pool/universe/l/linux-gkeop-5.4"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux-gkeop-5.4"
+	"http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/pool/main/l/linux-gkeop-5.4"
+)
+
+package_prefixes linux-buildinfo
+
+getall amd64 gkeop
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/etc/kernelconfig
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/etc/kernelconfig
@@ -0,0 +1,7 @@
+if [ "$variant" = "ports" ]; then
+	archs=""
+	family='ports'
+else
+	archs="amd64"
+	family='ubuntu'
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/etc/update.conf
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/etc/update.conf
@@ -0,0 +1,8 @@
+# WARNING: we do not create update.conf when we are not a
+# derivative. Various cranky components make use of this.
+# If we start unconditionally creating update.conf we need
+# to fix at least cranky close and cranky rebase.
+RELEASE_REPO=git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-gke/+git/focal
+SOURCE_RELEASE_BRANCH=gkeop-next
+DEBIAN_MASTER=debian.gkeop
+BACKPORT_SUFFIX=~18.04
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/modprobe.d/common.conf
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/modprobe.d/common.conf
@@ -0,0 +1,3 @@
+# LP:1434842 -- disable OSS drivers by default to allow pulseaudio to emulate
+blacklist snd-mixer-oss
+blacklist snd-pcm-oss
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/reconstruct
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/reconstruct
@@ -0,0 +1,65 @@
+# Recreate any symlinks created since the orig.
+# Remove any files deleted from the orig.
+rm -f 'arch/x86/events/intel/rapl.c'
+rm -f 'drivers/crypto/hisilicon/sgl.h'
+rm -f 'drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h'
+rm -f 'drivers/input/serio/i8042-ppcio.h'
+rm -f 'drivers/staging/mt7621-dma/mtk-hsdma.c'
+rm -f 'include/Kbuild'
+rm -f 'include/uapi/rdma/nes-abi.h'
+rm -f 'kernel/elfcore.c'
+chmod +x 'debian.gkeop-5.4/scripts/helpers/copy-files'
+chmod +x 'debian.gkeop-5.4/scripts/helpers/local-mangle'
+chmod +x 'debian/cloud-tools/hv_get_dhcp_info'
+chmod +x 'debian/cloud-tools/hv_get_dns_info'
+chmod +x 'debian/cloud-tools/hv_set_ifconfig'
+chmod +x 'debian/rules'
+chmod +x 'debian/scripts/abi-check'
+chmod +x 'debian/scripts/config-check'
+chmod +x 'debian/scripts/control-create'
+chmod +x 'debian/scripts/dkms-build'
+chmod +x 'debian/scripts/dkms-build--nvidia-N'
+chmod +x 'debian/scripts/file-downloader'
+chmod +x 'debian/scripts/helpers/close'
+chmod +x 'debian/scripts/helpers/open'
+chmod +x 'debian/scripts/helpers/rebase'
+chmod +x 'debian/scripts/link-headers'
+chmod +x 'debian/scripts/misc/arch-has-odm-enabled.sh'
+chmod +x 'debian/scripts/misc/final-checks'
+chmod +x 'debian/scripts/misc/find-missing-sauce.sh'
+chmod +x 'debian/scripts/misc/find-obsolete-firmware'
+chmod +x 'debian/scripts/misc/fw-to-ihex.sh'
+chmod +x 'debian/scripts/misc/gen-auto-reconstruct'
+chmod +x 'debian/scripts/misc/get-firmware'
+chmod +x 'debian/scripts/misc/getabis'
+chmod +x 'debian/scripts/misc/git-ubuntu-log'
+chmod +x 'debian/scripts/misc/insert-changes.pl'
+chmod +x 'debian/scripts/misc/insert-mainline-changes'
+chmod +x 'debian/scripts/misc/insert-ubuntu-changes'
+chmod +x 'debian/scripts/misc/kernel-wedge-arch.pl'
+chmod +x 'debian/scripts/misc/kernelconfig'
+chmod +x 'debian/scripts/misc/retag'
+chmod +x 'debian/scripts/misc/splitconfig.pl'
+chmod +x 'debian/scripts/misc/tristate.sh'
+chmod +x 'debian/scripts/misc/update-aufs.sh'
+chmod +x 'debian/scripts/module-check'
+chmod +x 'debian/scripts/module-inclusion'
+chmod +x 'debian/scripts/retpoline-check'
+chmod +x 'debian/scripts/retpoline-extract'
+chmod +x 'debian/scripts/retpoline-extract-one'
+chmod +x 'debian/templates/extra.postinst.in'
+chmod +x 'debian/templates/extra.postrm.in'
+chmod +x 'debian/templates/headers.postinst.in'
+chmod +x 'debian/templates/image.postinst.in'
+chmod +x 'debian/templates/image.postrm.in'
+chmod +x 'debian/templates/image.preinst.in'
+chmod +x 'debian/templates/image.prerm.in'
+chmod +x 'debian/tests-build/check-aliases'
+chmod +x 'debian/tests/rebuild'
+chmod +x 'debian/tests/ubuntu-regression-suite'
+chmod +x 'samples/bpf/lwt_len_hist.sh'
+chmod +x 'samples/bpf/test_lwt_bpf.sh'
+chmod +x 'scripts/kmsg-doc'
+chmod +x 'scripts/parse-maintainers.pl'
+chmod +x 'update-version-dkms'
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/rules.d/amd64.mk
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/rules.d/amd64.mk
@@ -0,0 +1,36 @@
+human_arch	= 64 bit x86
+build_arch	= x86
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours	= gkeop
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+uefi_signed     = true
+
+do_tools_usbip        = true
+do_tools_cpupower     = true
+do_tools_perf         = true
+do_tools_perf_jvmti   = true
+do_tools_bpftool      = true
+do_tools_x86	      = true
+do_tools_hyperv	      = true
+do_tools_host         = false
+do_tools_common       = false
+do_tools_acpidbg      = true
+
+do_zfs		      = true
+do_dkms_nvidia        = false
+do_dkms_nvidia_server = false
+do_dkms_vbox          = true
+do_dkms_wireguard     = true
+
+do_libc_dev_package   = false
+do_doc_package        = false
+do_extras_package     = true
+disable_d_i           = true
+
+do_enforce_all        = true
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/rules.d/hooks.mk
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/rules.d/hooks.mk
@@ -0,0 +1 @@
+do_enforce_all = true
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/scripts/helpers/copy-files
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/scripts/helpers/copy-files
@@ -0,0 +1,67 @@
+#!/bin/bash -eu
+
+if [ -f debian/debian.env ]; then
+	# shellcheck disable=SC1091
+	. debian/debian.env
+fi
+
+if [ ! -d "${DEBIAN}" ]; then
+	echo You must run this script from the top directory of this repository.
+	exit 1
+fi
+
+CONF="${DEBIAN}"/etc/update.conf
+if [ -f "${CONF}" ]; then
+	# shellcheck disable=SC1090
+	. "${CONF}"
+fi
+
+FOREIGN_ARCHES=""
+LOCAL_CONF="${DEBIAN}/etc/local.conf"
+if [ -f "${LOCAL_CONF}" ]; then
+	# shellcheck disable=SC1090
+	. "${LOCAL_CONF}"
+fi
+
+SKIP_RULES_D=${SKIP_RULES_D:-}
+
+#
+# Pick up any master branch changes to udeb modules or firmware.
+#
+rsync -avc --delete "${DEBIAN_MASTER}/d-i/" "${DEBIAN}/d-i"
+
+#
+# Update configs from master
+#
+rsync -avc --delete "${DEBIAN_MASTER}/config/" "${DEBIAN}/config"
+
+#
+# Update package and DTB settings from master.
+#
+if [ -z "${SKIP_RULES_D}" ] ; then
+	rsync -avc "${DEBIAN_MASTER}/rules.d/"*.mk "${DEBIAN}/rules.d/"
+fi
+
+# Remove the .mk files from the arch's that are not supported
+for i in ${FOREIGN_ARCHES}
+do
+	rm -f "${DEBIAN}/rules.d/${i}.mk"
+	git rm -f --ignore-unmatch "${DEBIAN}/rules.d/${i}.mk" || true
+done
+
+#
+# Update modprobe.d from master
+#
+# Some releases (trusty) don't have this directory, and rsync would fail
+# without this check.
+if [ -d "${DEBIAN}/modprobe.d/" ]; then
+	rsync -avc --delete "${DEBIAN_MASTER}/modprobe.d/" "${DEBIAN}/modprobe.d"
+fi
+
+cp -p "${DEBIAN_MASTER}/control.d/"*.inclusion-list "${DEBIAN}/control.d"
+
+cp -p "${DEBIAN_MASTER}/reconstruct" "${DEBIAN}/reconstruct"
+
+if [ -x "${DEBIAN}/scripts/helpers/local-mangle" ]; then
+	"./${DEBIAN}/scripts/helpers/local-mangle"
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/scripts/helpers/local-mangle
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/scripts/helpers/local-mangle
@@ -0,0 +1,20 @@
+#!/bin/bash -eu
+
+. debian/debian.env
+
+# Use gzip instead of lz4 for amd64
+sed -i -e 's/^CONFIG_KERNEL_LZ4.*$/# CONFIG_KERNEL_LZ4 is not set/' \
+       -e 's/^# CONFIG_KERNEL_GZIP.*$/CONFIG_KERNEL_GZIP=y/' \
+    ${DEBIAN}/config/config.common.ubuntu
+
+# Add deviations from the focal/gkeop config to the backport annotations
+cat <<EOD >>${DEBIAN}/config/annotations
+
+# Using LZ4 compression is not supported in Bionic
+CONFIG_KERNEL_LZ4                               policy<{'amd64': 'n'}>
+CONFIG_KERNEL_GZIP                              policy<{'amd64': 'y'}>
+
+# Not building for i386 but just in case we ever do
+CONFIG_INTEL_IOMMU_SVM                          policy<{'amd64': 'y'}>
+EOD
+
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/tracking-bug
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/tracking-bug
@@ -0,0 +1 @@
+1923769
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop-5.4/variants
+++ linux-gkeop-5.4-5.4.0/debian.gkeop-5.4/variants
@@ -0,0 +1 @@
+-5.4
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/abi/5.4.0-1014.15/abiname
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/abi/5.4.0-1014.15/abiname
@@ -0,0 +1 @@
+1014
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop
@@ -0,0 +1,23820 @@
+EXPORT_SYMBOL	 arch/x86/kvm/kvm 0x753eab9a	kvm_cpu_has_pending_timer
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x27f17d56	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x4cf72566	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x73ae4367	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa9e9f8fe	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xebd29553	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfe490830	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x18c57018	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x847e11cc	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xd3cf913a	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x46d62c63	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xf7ebfeac	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/acpi/video 0x612bd1e5	acpi_video_get_levels
+EXPORT_SYMBOL	 drivers/acpi/video 0x6de7f7ff	acpi_video_get_backlight_type
+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 0x8826c13b	acpi_video_register
+EXPORT_SYMBOL	 drivers/acpi/video 0xccf36551	acpi_video_get_edid
+EXPORT_SYMBOL	 drivers/acpi/video 0xe92ca535	acpi_video_set_dmi_backlight_type
+EXPORT_SYMBOL	 drivers/atm/suni 0x9477d2af	suni_init
+EXPORT_SYMBOL	 drivers/atm/uPD98402 0x79a743ce	uPD98402_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x26591f14	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x3002e6d0	bcma_core_dma_translation
+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/block/paride/paride 0x0662d106	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0b67bd13	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x2c15bb40	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x488b4255	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5ad31b20	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x71121bb9	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x7e8c188b	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x92db86cd	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa5277365	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb0fb1f0d	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe3fbd301	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf78c72f9	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xb2e3121c	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x2f3b1748	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+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 0x9abf85cc	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe3cd18d7	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe3dcccae	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf0cac05c	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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/nvram 0x3ef38dc9	arch_nvram_ops
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8328329f	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xa5afd898	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xda38fc0c	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xfc3f69fc	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x3eb13e51	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x550ba468	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xe27c09e0	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x8fcf5275	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xdf24bf4b	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xe3889e90	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x01cc5291	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x082ed5e1	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0c3f518f	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x12fd2fc3	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1adda472	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1e00a89e	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x22dfbd47	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x24d8159e	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x322ebbb0	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4cc74549	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x566b325a	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5eb9795d	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x63764ad5	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x71f0dae6	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x7a7fa0b8	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x92407805	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9e827a34	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9f8b0c43	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xafcf55ee	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc7ad4bea	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcab3635e	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb56b42b	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xceb37626	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe0d7c225	fw_core_handle_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 0xf0158097	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfcf58e8e	fw_send_request
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x00d65ec5	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0128bc17	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x017d3e94	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03aac6c8	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05dadd0c	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x061f2ba4	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06a8adcd	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070c5c9d	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x072dd889	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0737b0ed	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0911a329	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0911e47f	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09bc811a	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b6aadec	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d73996f	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e30e0f5	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fcf5ac0	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10e0e102	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1173464f	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x117bd56b	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1281a87b	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12ffbe64	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13c30afd	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x157eed4a	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16a45ae5	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17cff3b8	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19245d25	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x196bdda1	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bfefde3	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c0c2afe	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ca6b696	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d70611d	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e235ce2	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e7cf0a7	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2159ba8a	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21b0cd6b	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21f0bda4	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23386d69	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x237d0452	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2552ec93	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x266bf1b9	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x277e6580	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x295c933b	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a0dae47	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a867d10	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2aa6f105	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b5cbd6d	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2be435ac	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c07b622	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d645c20	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d9ceb71	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ea1f53a	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fa14c2f	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ff72397	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x300f2477	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30caa3ae	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30cd01ca	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x333e9d94	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x336bd02a	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x337fc61c	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33aeaec9	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x349687b6	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34ace60f	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34e92409	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3512a2f4	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x352f0c9c	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x356f95e8	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35a73f75	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36024467	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x366cb693	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3910224a	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ac647d1	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b968f20	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c3617da	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d6dd46d	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d706e4b	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3eaddfa0	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ecaa93c	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ed5e8ab	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f66d9b9	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fb80cac	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40135af8	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x402206f7	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x404b5458	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4088ea58	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41562a61	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x415bcf14	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41a42e65	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41c33668	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41dfc25d	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x429d5ee5	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43373c47	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x436752c8	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x444cc8a4	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x444f99ff	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45206597	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x454210f3	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x456a2316	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4638a7d7	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4667a938	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46da37b6	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47aa6f8d	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47da001a	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48e9140d	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48eebf09	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x491a0786	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49d51ab5	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a1c4617	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ab4c1c2	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c409d70	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d270b99	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e372adc	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f386604	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fac2999	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5038893b	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5050d615	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x508a3b6d	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50988037	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50e9d580	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51037985	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51e3a84f	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52f64bb1	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53034bab	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54b6e5ce	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56ed217a	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57c3e00e	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x599096e7	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a3515ed	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b929bef	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5bae861c	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c59300c	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d130aba	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d561f9d	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ddd7a64	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5dec741a	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e182170	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e5c8f23	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e7d31ab	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f2ea3d6	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fe61d1c	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60666628	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x606ff5f9	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x622afcb3	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6258a7e9	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62722f66	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6349d10a	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64ad218c	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64b0b76b	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65d890ff	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66f8cf6e	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x676b5cdc	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x68bd388d	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x699876ae	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a0c85af	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c580b37	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d70525d	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d834a42	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e91626d	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6eaa1107	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6eb6574f	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f7e4126	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fdefcfe	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ff746d5	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70c22eaa	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7193270c	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72722135	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e460a8	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e475d2	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72f284a2	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7329831d	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73a0c208	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73b4430c	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74639237	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75cc4e87	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76090b95	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76173351	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7884c1f3	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79d90dcf	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a4710e6	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7aa7264b	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7db2d600	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e3175ce	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e9fc7de	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7eaffbb8	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8041ba62	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80786b8d	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x814cbfba	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81a6080a	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82042f08	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x846923a2	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8472634c	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84acb136	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8529f000	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8596ee96	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87451ba6	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8828a35f	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89f106ff	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a8d1b0e	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ab3138b	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b03497d	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bad0efa	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c4330b2	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c85e9a6	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cb3dcf3	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f6e43df	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90e99274	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9221d07a	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92d706d7	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9494f70d	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94b9fe1c	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94d7e9ba	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94dc241f	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x962f515b	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9656d6f1	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x965ac5a2	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9675f2ec	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96f8f23f	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97370dd2	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x982a81f6	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x988457ed	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99b5abf8	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a3c1985	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a7a5527	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9abede11	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bbad484	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c09d32f	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c10ad6c	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ce8217f	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d488a8c	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d9d6df7	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e2b377b	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa018e9f0	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa04d11cf	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa29402fe	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2fc642c	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3004262	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa32f8642	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa51eabdd	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5adf67f	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5e1c81b	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6ec70ff	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8fc104f	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa91422a2	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaacf5758	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab567ee6	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabd4cfad	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xacdbb10c	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad585e04	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae3cc5fe	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf0a1168	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf114ca4	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb227e630	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2bce6ee	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb35674bb	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb47f6caa	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4b9a87d	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4fc02e8	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb565fc9a	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb58252a6	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb58b886d	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb618610e	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6863af6	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb698d6a6	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb717fc7a	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb743d2f9	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb76d1766	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb96f55e7	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba8e2b30	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb0cb11d	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb96ad70	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbbc9877b	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcfe6c2e	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbee7722a	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfcdf484	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1636c3d	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2227cb4	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2841b1f	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2fd64b5	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4db7e49	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52297f9	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52c69dd	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc57ee486	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6624f05	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6eea7dc	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc726c815	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc789d4ef	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7d7c4db	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc943eb61	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc99bff65	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb587d11	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb5d49ac	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd509775	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xceba1c10	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcebd677b	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcedf45dc	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd47b5f63	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd53c9080	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd54cc289	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd60dbb15	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6287eaa	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd66dc7c2	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7074531	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd772428f	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8a87f18	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8e8e155	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd94ba43b	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda003094	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaec9ff3	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaf070b3	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb581f89	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc84c229	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdcceb72d	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde7b8bbc	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfc02a51	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe300c4fa	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe384a28c	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3ac08bb	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3e354e7	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3f53cbe	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe426498f	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe435eb81	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe584985a	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7ca6d80	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe849e41d	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9afd1ff	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea8017cf	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea8d1daf	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaca00a7	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebed16ae	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec56ccce	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee2cbc75	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef11f05d	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef919e90	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf040fa71	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0ae381a	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf11d2f1c	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf361aa62	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3a86838	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4ab3956	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf571809d	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5c38473	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf69f2bb0	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6c1a5d5	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf736c43b	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7e0a92a	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfafe883b	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbdffe64	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc50a5e2	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd1fd91c	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe1a50fc	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe5be415	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff880319	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffe02460	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02512519	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x025fd89a	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02938871	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x031a2a6e	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0544cd74	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a778936	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0c3b1b3d	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f9e8c46	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x109c8789	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13914670	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1759df49	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18eb81a2	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1aea0d82	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b2675c2	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d6698e2	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1dad9992	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2104eb41	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x210a37aa	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21f8c9ed	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2353b19f	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23f08e8c	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26b2d92b	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x272ecd2b	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27d3e281	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27fd2698	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28d0228d	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29cad508	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2cf25559	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f376a16	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f6870ab	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2fb525c6	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3023bb7a	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31044b96	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x314f2a7b	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x318ffd26	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32c353d7	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32ed6232	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33de5e6c	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3847de68	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b0a2d0a	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b974035	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3dbdb6fb	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x404a6b60	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44bb2436	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45136568	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x46fa3b46	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x481fd011	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4b427d8d	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c952799	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d2d8796	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d6c0c52	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ddec054	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4de3db29	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ec36186	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4f5a7b1e	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x511938df	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53e42a71	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54ae1b99	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5657d5bd	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x568b1574	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a9e323	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57a61e8a	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a243bc0	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a6dcd01	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b4824d5	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c62bf0f	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5cecd296	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5dc698ba	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5de50f4d	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61a25a91	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6238d1e3	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x64886579	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x661986dc	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66fabc70	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6992acd8	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b50fd02	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6bc614ef	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c5a5a6e	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6d48a779	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7028b954	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70327445	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7125f373	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71978903	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7351c639	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74a19e73	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77754118	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77c2ecba	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x786c667e	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a65add1	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ad47814	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7bbf2e42	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d32dbec	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d33f26d	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eee5762	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f4f8abd	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81c31d24	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82561767	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x838f4362	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84083985	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84b8505d	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88a20eb0	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8913b9d5	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8929b2b6	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x892ff0db	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89aea407	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91a4ef7c	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92152e5d	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94b54c07	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9519330e	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9577c591	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96ec47ee	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x97439148	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b04bd85	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e947ec9	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e9e6530	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ec0915a	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa367fd74	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3be4daf	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3cca62b	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3ccaa1e	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa45654d7	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4fcbfe4	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5c8e1fd	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa832caf9	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9dacc6a	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab4e5345	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac2dab93	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac365f5f	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadaa35ff	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xae791b77	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaeafa11f	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafc4b45e	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb004da3c	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb066645e	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb21d8ce5	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb26fdf66	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb32e10e0	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb418fe5b	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6ab4fd4	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7e18c20	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb95840be	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9d64f45	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbfab2825	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbfc5ce86	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc0ec0941	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc23365c6	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc29985eb	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3c8e48b	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc409c55d	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc49c00c3	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4c376e8	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4c4603a	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5199c34	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc538db66	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5989236	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7a02998	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca8b26f7	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca9b309a	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcac2caeb	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcba123ad	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd06fe12d	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd07ccbc4	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd0a156e7	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd33a1344	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd50e8bce	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5381efc	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5b03ca9	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd68394ef	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6fa8fb4	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd90c66d9	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9fd8dfe	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdbd88020	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdef4d478	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe03f400e	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe109823c	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe1432638	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2479d3f	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2c0c30f	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe39e133b	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3c4a1b4	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe41d39d5	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe62e748e	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7b84868	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7c2610d	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe967e490	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea195d9e	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeddaadbb	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf22e6e87	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf277b1ad	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5b7b99b	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf61ef67b	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf81d4021	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9e81f83	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbdacba6	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbe31654	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x123b4b7e	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3018b6fd	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3aa57c09	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4614f6ef	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x54002fd2	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5b7701f1	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6907d7ee	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6e9b5844	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x943e8aa3	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9d7e631f	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa8407739	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xad1d3f94	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb5b3ade5	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xbb19e956	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xceda1c73	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe60a9c53	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf1b71551	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfa5a0d65	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x071e6e41	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x14ac216b	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1a1b969c	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3687cb1b	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3c64df97	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x460beeb8	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4acb01eb	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4b350dfe	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x53da3eac	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x550a2bcc	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5c4ece5d	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x68607d07	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x848a31bd	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8df0065e	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8fc24db5	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa97bf916	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbf3f3728	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdfe3d469	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe0534ee2	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfb5579ec	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x025d491f	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x09f7f760	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0e4a23d3	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2609e695	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x26b554e1	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x357d5786	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3cd57fc8	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x72ae89e2	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x87370a49	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8b2cd25a	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x93497b6b	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x99668b89	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb95125cb	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbb12736b	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcbd29907	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xce110d9f	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcf86581c	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd2439c84	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe005815a	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x02e5fcb2	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a211e4a	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0ccc4fdc	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e27e91e	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x131b22b8	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x13b812ed	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1a8474bf	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c1b0585	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ef269ea	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x211ae738	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x221cc7df	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x24e1314e	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2843b0a5	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e02be8e	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f5c4ccc	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x334f9b56	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x37375dcd	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3a08ee67	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3cfd6b70	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x41beb363	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x428f66fa	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x451500c9	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4e6d4bc8	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x56c02e8c	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f63416e	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x61f2a9df	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x69d2e1ae	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6b2d9af2	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6d5a1013	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x71d1b251	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74e5e263	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7529e24d	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x770d6ecf	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x785b7722	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e0b7022	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e0f559e	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x80222654	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8215d1f7	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8a2832ef	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8f82eea0	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x91b2b107	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9557a85e	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96e9edc9	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9793ef9a	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x995bc4fd	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9ce8a215	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9e87df4f	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9f314eee	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa04797e7	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa970aa80	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xab51a430	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaba9bbe9	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb1bbfa1f	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb43f046d	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba0b3d06	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc1ebcf34	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc225d610	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc9f24f00	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd6bc6271	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd914cd2d	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe1ce8c8c	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe7de8c48	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf364b76d	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6801a74	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6a06289	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf948ebba	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/vmwgfx/vmwgfx 0x446c961c	ttm_base_object_noref_lookup
+EXPORT_SYMBOL	 drivers/hid/hid 0xa0a1e1b6	hid_bus_type
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x04a19dae	ishtp_set_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x05418ab4	ishtp_set_connection_state
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x089faf4a	ishtp_set_tx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0beec6e9	ishtp_put_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0d7e3a46	ishtp_fw_cl_by_uuid
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x131cbff9	ishtp_trace_callback
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x17710054	ishtp_cl_driver_unregister
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x18e48b8d	ishtp_cl_get_tx_free_rings
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1936ad27	ishtp_cl_connect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1d754465	ishtp_set_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x204a7c3c	ishtp_get_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x253a109c	ishtp_cl_io_rb_recycle
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x27000c77	ishtp_fw_cl_get_client
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x2a17323f	ishtp_reset_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x30332b40	ishtp_cl_link
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x3414ee57	ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x396d08bb	ishtp_dev_to_cl_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x463b6c83	ishtp_get_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4c31bfe1	ishtp_get_ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4f147595	ishtp_cl_unlink
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x56d8b49c	ishtp_cl_free
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58659ebe	ishtp_cl_set_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58b7fbcf	ishtp_device_init
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501	ishtp_get_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x6ca1fcc4	ishtp_recv
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x732718f1	ishtp_send_resume
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7ad08488	ishtp_cl_driver_register
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x815989e7	ishtp_reset_compl_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x83b2822a	ishtp_get_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x86cb4202	ishtp_cl_flush_queues
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8e9e40a2	ishtp_cl_rx_get_rb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8f3ede21	ishtp_start
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x944ca8db	ishtp_cl_tx_empty
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9b2f5227	ishtp_cl_disconnect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9e9b9bd9	ishtp_send_suspend
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb2d3a521	ishtp_bus_remove_all_clients
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbe75a564	ishtp_set_rx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc9d14db2	ishtp_cl_get_tx_free_buffer_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xccd0b9d8	ishtp_cl_send
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf64f793d	ishtp_register_event_cb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf6dd89f9	ishtp_cl_allocate
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfd81e9fc	ish_hw_reset
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfd8c6b3d	ishtp_get_pci_device
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x5bb8c21b	vmbus_recvpacket
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0xbb27bd1e	vmbus_sendpacket
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x0330811b	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+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/i2c/algos/i2c-algo-bit 0x22d870fb	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x87272ab3	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x8a66a567	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x41ee4f65	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xb6d737f1	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x60e418b8	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6a309ddc	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6cc4d968	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x72986536	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3e499f14	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3ed57f16	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5e7f8f30	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x674fe089	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6b70fb94	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6fdd6453	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7425d154	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x75638f5c	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x91fc8646	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa6b8dcf5	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb6586f58	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xcec7d809	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xdeafbbb8	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf2c46063	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf2eeb97f	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf88512ff	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x77293cc4	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xc5944cbf	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xf6448d4a	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x39fa63f2	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xa32b7df6	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x223cbe99	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x77854d50	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x98c07a05	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xbee72021	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xefc73f72	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3a529a63	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4006a08f	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x57d33ce8	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x615b61a2	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x77b23c30	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x97a090b6	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc8a64cde	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xcd4a3c75	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf6b8da4e	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xfb06e590	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4542c953	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x91852b8f	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd30b9c62	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd3d56e65	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x15e30d94	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1a91aaef	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x47d0a1b1	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5334299f	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x71619c80	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x885ba19d	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb1dda451	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb7989468	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc50ff481	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x02281170	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x660e41cc	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x7f8ce147	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x98455785	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xeb22d08e	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x00fff27a	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x08485a73	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe1e56770	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x218bf333	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x358c3328	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x383e2219	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3d603af3	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3fc2cbe0	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x45ae67b7	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5f35f848	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x644c5e5e	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6d6698e7	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x809a925b	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x88bc47aa	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8f60e575	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbf6fd5e9	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc6f35dcc	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcbbee08e	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcd77e6e4	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf5d7b6df	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x5f53d9fd	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xf8dacc11	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x6de7bec2	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x1cf7c736	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xb546b1f4	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xfb9cee70	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x116fc466	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x387e937b	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xee1eada3	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x08b03b90	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xae587a38	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x0a278ee9	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x1c0c346c	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xb966a0de	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x71e50d54	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xfacc257f	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0028a8c9	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x03dcda0d	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x11fac073	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1bcf661a	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x24b9656c	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2a0a1fea	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2f01be63	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x32322448	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x45901294	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5b4cb020	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5c420755	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5cbe5981	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5f30e269	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6f66ffb1	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x858b1dc3	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x92739147	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa025aa42	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd62770bf	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd964df19	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xddc14056	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe2959330	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe94e2253	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xef86dce8	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0xe8b70e39	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x5af4295b	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xb40a2f75	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xef893e24	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xffd00502	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x2995771d	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x872d6a88	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x87e4d9ae	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xe4ded16f	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x41fe9b66	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x655ec0bb	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x1eb808a3	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x48858ebc	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x181b54df	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x2b7d80ee	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x6a62e122	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xd9b99889	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x466064d3	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x54844fc8	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x7a4af7a5	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x9fa2bbf1	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x67e9d2f5	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x93eec7d8	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xa98a58da	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x1fe7e280	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x6367430d	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x89e19e6f	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x98d2c3a3	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xce27c948	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x399d29f9	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xcfad47d2	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x600686e9	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xef5601e3	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xf020a704	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x00295b08	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x16a6f840	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1b0845c9	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1d97a7d9	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3707ccec	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x39bf1097	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x42487dd7	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x4890b57c	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x655d1043	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x75cae316	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x987b9be2	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa86240c8	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xba25770d	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcb56b359	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe5456a38	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xece7fb1f	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf7f3b694	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf8ba6614	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x014f11c1	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x017bab18	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x033c8c9c	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07ae3e68	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08a29d43	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09cba58c	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09e3a9d2	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09fd23fc	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ab5ccf3	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c2de314	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d4325fa	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e88d8c5	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0eedf8aa	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ffb1b0f	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1011d0f0	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x11b2ff54	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1255b0b6	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x134c3ea3	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15aea58c	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x17801a1f	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a0eb610	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1bef33db	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1dc885bb	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e009737	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e44d975	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x220ca7a9	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22119e41	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24156257	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x246a6437	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26cc46a7	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2946c168	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3160b866	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x32221d8a	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3340e643	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x34bd0636	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35af2f7f	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a0a88af	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a967c2a	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ab9537d	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c27958f	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c3cce81	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ddd43dd	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e111175	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x402647f6	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x409ca02f	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x413b057c	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x415d4721	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42f63f98	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43ab0538	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4db23186	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4df19409	ib_redirect_mad_qp
+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 0x4fd29922	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5137b3d3	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x51c26dca	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x530276dc	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5313a1f0	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58daf1ca	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5920c47d	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a6132fe	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ac2fc68	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5accd69e	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cfab4bf	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ed7a549	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5fdfcaee	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6140b551	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6153a093	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6202201d	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62335ea2	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6652a295	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x669cef07	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a0352f3	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e83bb8d	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70764ae4	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70981adb	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x715a0f9f	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x719f6026	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71c3d508	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71c6093b	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72c70d30	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72d3757f	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x760742f2	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x790e09f2	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x791ebeca	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a82dab0	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c283acb	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c842a49	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ceca739	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7dbf8a6d	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8213aa97	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x845c1842	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x85bd2995	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8711f7cd	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x875c8acb	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x885791b2	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88e7e8fb	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a51b843	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a5c96be	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8aac209e	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8abfb88e	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b326708	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b3fd3e8	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b452d63	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b547d3b	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b5bd6f7	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c02c5b9	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c03995a	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8ef23379	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x903b2b3e	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x922ee44b	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x92da9890	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93c80816	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95ac8eff	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95cbd43f	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97d084a6	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a9993c4	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b6c247a	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e32f22c	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa16957e3	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa27ab29e	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa5949f52	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6216e27	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa753e7a4	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7d064e1	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa80d23e3	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacc22a36	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf51bcd5	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0869084	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb08eadb1	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4b38e20	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4f56343	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb53263b3	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb80b3319	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb8a64e88	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba040d3f	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc3d82b8	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd9128f1	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe47f8eb	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe4fd877	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbf7303de	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbff4a200	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc06b763c	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2983303	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc5948b17	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc9389144	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcc753454	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd2a5ee7	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd4e72dc	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xce0a3215	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf0c0949	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf61365a	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd03db547	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd147dbdd	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd351e702	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6f58635	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7620202	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd837cb01	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd8b3edf8	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdcba71d0	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdd161920	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdffe9068	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe39fbd75	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe591bd77	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7d2aaca	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe866efc5	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe874bb2f	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe900a73c	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xebe2ecae	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee23fc0a	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee5f346d	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3ceb03b	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4527627	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5fd2e77	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6a6e84e	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf79e3a1f	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf7ddfddf	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8919a50	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf909d0ba	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb01a19e	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb504300	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc11f6bf	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfd4de561	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe0b410a	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffcfe02a	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x01c149f8	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x05e9f182	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x07e36274	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1085ec29	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1de35b1c	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x22210bbd	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2db4dff6	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2fdf8e2f	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x48276d39	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x578471c4	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x765fd039	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7a53b158	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7a8a96dc	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x92c44921	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9cb16573	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb1632b64	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb78fcf92	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbbd50b1c	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc4b06011	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc4b1fab6	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc85e15ea	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xda775b17	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe3b58e63	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xeb68130b	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xefade986	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfd82b7cd	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x16512c03	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x32165a6b	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3524cbd9	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3735b92c	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x61f81ff0	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x7a1a9bf2	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xaafac377	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xdf933d62	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x051f71c2	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0adde014	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x176d7f2b	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x21be34f7	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x22fc8fa6	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x245d4fd9	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x25fda287	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2ff280ec	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3544112b	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x37ae9b59	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3907490d	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3aaf23a8	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x41d9ec86	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4ece1d06	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x508fec0e	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5300a8ff	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6e6984f7	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x74d9cea9	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x84bf6576	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x90ca9603	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xab3fe9be	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb12150b3	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb12e373d	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb1b6adc7	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb63634e4	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe1e03e8f	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe94149b2	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf5d4cc0a	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x09488119	rvt_add_rnr_timer
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0c98e558	rvt_init_port
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842	ib_rvt_state_ops
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e4f4900	rvt_qp_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x3100641a	rvt_stop_rc_timers
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x33857926	rvt_lkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x33e23d0e	rvt_get_rwqe
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x35fb903d	rvt_compute_aeth
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x41f3ae83	rvt_del_timers_sync
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4824297c	rvt_rc_rnr_retry
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x50de3d10	rvt_cq_enter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x52025364	rvt_register_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x58f7ad7d	rvt_rkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5f86c733	rvt_fast_reg_mr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x645c2e4a	rvt_comm_est
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7260d6c0	rvt_check_ah
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7682e800	rvt_qp_iter_init
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x78bc203e	rvt_invalidate_rkey
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8f0b1ed7	rvt_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x9715f505	rvt_ruc_loopback
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x98a228e6	rvt_mcast_find
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xa1d7c0aa	rvt_copy_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xa9e6d504	rvt_add_retry_timer_ext
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb7538eac	rvt_get_credit
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb7db723d	rvt_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb8e83684	rvt_error_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc1d8dfea	rvt_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd3ba4ecb	rvt_send_complete
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd55f468b	rvt_qp_iter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd5f08dcc	rvt_rc_error
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43	rvt_rnr_tbl_to_usec
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xec468dfe	rvt_restart_sge
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x0d2a72c2	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1cac2fce	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2285f0ec	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x3274e608	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x6daf2768	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xa773e6b9	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xac5acaa8	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xbc566b3b	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xefbefe4c	gameport_open
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x4fd15619	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x92842024	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x93a66d20	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xb30487eb	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe9fa799a	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x350a55dd	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x5c6e5b7d	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe8371aa1	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xb83c1f1f	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x3fa16d91	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x5a26a93b	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xb3687ca9	ad714x_disable
+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 0xe3970f30	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x1698c979	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x078cde80	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x0ff7544b	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x739d0a1b	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x999ab91b	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf3296314	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x6017aa88	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x628abaaa	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x13ec1cf2	amd_iommu_free_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x7be042e6	amd_iommu_init_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x8829c6da	amd_iommu_bind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x99e748f2	amd_iommu_unbind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xbe4c82f4	amd_iommu_set_invalidate_ctx_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xe6f7040f	amd_iommu_set_invalid_ppr_cb
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x01f8b2db	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x12773852	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32fa6fe2	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4d2ced57	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9c04c3a6	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb3921ac9	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbc8ba476	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc82be54b	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcbc3d086	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xce435896	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+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 0x6eddc290	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x88ad6d11	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x998bdd4b	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xde9a90d9	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xe3f4ebeb	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xf51486da	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x00bd80b5	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x068ed342	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1078c674	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x19740ec3	bchannel_senddata
+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 0x26403f21	create_l1
+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 0x42ef8499	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x468714a3	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x59803046	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5a3dcabf	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x63dc4bd9	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x722dffc6	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x7f5b3f1d	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x87730b89	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8bd4f38f	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x94ab23ff	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x95b64045	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x95ce6520	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa70c6cc1	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb88f28f3	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe55edad3	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf9d2fcdb	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfd90e647	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfdf84492	mISDN_unregister_device
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xc28fde54	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 0xf4db7d4e	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x0b6dea0a	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3892ce4d	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3de99c91	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xcbf20fb3	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2f8b4a1f	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x6687d34b	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x82bd2b91	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x98eb4f4d	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xd676dab0	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf9ec238f	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/raid456 0xc6d6775d	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xdd653ae0	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x06ec27f2	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x191ea690	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x19f54247	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x65278965	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6889928b	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x71b5d826	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x79fefdb5	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7f23b892	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7f66c258	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa3003f93	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xaa20134f	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xab0432c9	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe659b481	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x3f86d7f3	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x491a5c6f	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x7d2cc1db	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeba22c3a	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x5a09a23b	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xe6bd1456	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x73141ded	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x789cb997	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x11138e33	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x278c38d3	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x71329324	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xb45c4677	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xb7a8f945	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xcf1f3b93	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa83c1684	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x000eacca	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x00d2b55b	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x089150cc	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1bab9df1	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x32de7de1	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x395b720f	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3e85d449	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x40542a90	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x40565d8b	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x50899c69	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x735c3e7b	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8333c0c4	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x85355732	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa2086bfe	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa6c10588	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xac49f963	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcd21d3dc	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe0ee80dd	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe1452313	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedd29c51	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf03c1f74	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf5cea30a	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf8d9bd5d	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfdf629c1	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0x01971cc3	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0xb8349fbf	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x3d796be2	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x5519d0f7	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x826ad1ad	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xab2445d4	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc38a3ea5	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xd52b69d4	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xdb312d8e	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xe06f361b	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf010f6d4	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x18d7789b	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0x10d22498	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x486f7bc3	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0x34055556	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x71227a36	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x0ca7887b	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xe84d3f98	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0x26c94522	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x4963c843	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x9a895a05	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xa4c07547	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0xf31a6f10	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x09f475b0	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x38a22ec8	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x1658e142	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x1c05bca3	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x3df78f96	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x714970f8	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xc2220418	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xf3877bfd	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2abbc6e9	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x443e3813	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x4875b6e9	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7a847eaa	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x80a6c6dc	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8b59c0c7	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x97e036eb	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9aa091a7	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa256c0a6	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xbacbf61d	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc5b3fa26	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xdf351802	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe4a5a0f5	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf19a1f80	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf3c475ad	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0xa5282839	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0681f027	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0d7bf391	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x1a7f51e5	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x861c23b6	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xa1e4b823	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf7992cd5	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x89db6f23	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x924495f1	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x9304c133	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xbeec134c	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0xda8b37f8	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0xa7b7f220	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x2d051696	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x587b8059	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x773dec7e	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x88967ba1	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9c2e89f9	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa3fcbdf1	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xacdb2d7f	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xb0ae6526	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc0599c0d	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xde656e6e	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe5310ec1	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe9fa16c0	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf8b62bd0	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x741a1ce5	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x87d370c2	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x984ecd88	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x9ac91761	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xae318b07	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x715404db	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0x923936b8	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0x211b684a	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0x9aff4b9d	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0x680f6ede	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x70c6ade6	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xdb08898e	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xf98184bd	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0x186df17a	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x2655a1c3	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xeef07e2c	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0x3f3883f8	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0x75b100d3	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0x91ebd39d	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0x77bc670f	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0x2a152aa9	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0x1659d110	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0x26844fb8	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0xdf1bee83	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x034176f8	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0x9a5de83c	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0xec67da0d	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xd504f77f	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x4d35e297	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0x717eacdd	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0xc610ae65	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x07ee2d4b	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x9fcf9af2	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x42fd9c47	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x4410353a	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x48136d9c	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x46598809	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0xb2de5e03	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0x0c951e06	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x99e5c15b	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0x3720a32b	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0x32dfa0e3	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0xcfbcac7e	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0xbef842a4	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x4a8e6fa4	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x244381f9	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x5b7170fd	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x661a959b	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x9e69fd55	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0xc1c972b9	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0x9e4725eb	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0xd37beff6	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x5bc053ca	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0xd92e5b9d	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0x8f3d7b8f	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0x8b5727a1	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xe9e156fc	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0xfa841f29	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0xbe25d1db	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x93bd7b05	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x7ba8c5ce	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xbe95bcc7	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xce0bc326	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0x9a1b001a	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0x3cb659a5	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0x443df777	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x7a179c5b	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xf9729072	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0x1f4da5f5	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0x51189a78	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xec9f7269	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xfa7fcdc0	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x136effb6	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0x7c5bbc78	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x3f88caa3	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0xd367aad6	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0xa1f9694f	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0xb947c390	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0xe34d88e8	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0xa1baaec1	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0xf06a3fcf	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xc760644f	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xea60c15e	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0xafb18635	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x3ded1a49	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0x9c0ce1f0	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x47b1fcc6	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x64bbf405	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb4d5af73	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdfcf93ca	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe22d7db3	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf4ad5079	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf4d71dda	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x1928d659	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x96f05fe8	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xec0afdf3	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xfa0e3835	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x68db5a1b	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x9912de6e	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xdf40d00e	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x12704f5b	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x17e81b04	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x32154ce6	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x38784111	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x45ab6587	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x7ba6a59c	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9a44ac1f	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xbacf0e03	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdb47641f	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0x9d4e179d	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x03855631	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x3814e3a3	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xb6104b34	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe21f1dd2	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe5a8e3a4	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x13897cdc	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x2c4f3501	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x71837fce	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x72d1d76a	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x75c7743b	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x790150ea	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xbed941a5	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x2e12e306	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x56db219e	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x36330913	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x61616129	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x7ae55aff	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xa09b8547	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x00269c53	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x102e43aa	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x1674cb66	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x3bbc5b3f	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x6cfbfa66	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xf701de4e	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xfe00b515	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0eef6846	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x12d3491d	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x165e8377	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1cf431e0	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3126d15b	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3380716a	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x33bc1d2e	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x479da1f9	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x611ba6c9	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x67744ccc	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8aa47db5	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8acf2ce1	cx88_set_tvnorm
+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 0xade1995c	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc01d1871	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc4ef60fb	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd3c834fc	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd8b37d06	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe32cc63d	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf0e8754f	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xfc4d974e	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0d0668b0	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2e939c8f	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x3b490219	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x6f5d77ea	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x73df59c5	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8832f202	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x92358f3e	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9c8372a8	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa5b248a9	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xafacdbbc	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb60f0303	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb77777e1	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb79c10d4	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc4ea9106	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xcbe3b873	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xdf2e3419	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe89fcd63	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x083f9806	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0be26159	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x14f0aad8	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x2bfc4ad7	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x33884435	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x3d51d958	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5e8c1b34	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x74b6f404	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x75219cb8	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9d83aa78	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc4fd150b	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x36285821	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x004be82c	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x27f8f267	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x37268e22	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4cedbe3a	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4ed666fa	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x5cba696d	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa22dd21d	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x5ccb628f	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xe6f97bf7	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0x76a119e0	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0xf5ad7949	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x202d8b1e	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xcdc32c13	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xef2e2dd4	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0xbe93e94b	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x69421806	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0xb6999f4d	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0xfd628fb1	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x15bc9cd2	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x2cf34272	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x324d7a00	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0x7a5760a4	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0xc02d0354	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0x4ad0961a	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0xfade81d1	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x45d5641f	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x4ee92cb8	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3c8f0c91	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5f52cc4a	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x69d0b49d	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x93a348f1	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9844e6d2	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc7fbaf9c	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc8fce272	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xed4c0293	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfd912b6f	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x03de85dc	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x09c1f692	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x0e65d779	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x239eb8e7	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xbb9c1f79	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xc23c219d	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xdc121347	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xb9e3dc9f	af9005_rc_decode
+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 0x24431176	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3047f9ff	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5433acdc	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5b9157ee	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x734c904e	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93e96a62	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd2a96861	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe8008113	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf6c3be2b	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x4f9b6622	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x680b7ae4	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x55efb49e	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x981e74aa	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x101baa67	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x19c84e9c	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1bec5bb8	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x37be5922	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x5c88ab9c	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x6aa58ed3	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xa6438de0	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe441cb91	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe483bf9f	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x205a2760	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x4c7351b4	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x6012b8e8	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x74af3daa	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x82161bb4	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9d24a86f	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xbc89e5e6	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe1aa11f4	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x0fda2c42	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x557f4ea7	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xf4bed1a2	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xce7b39eb	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xe5bc3821	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0606e6d9	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3c65c9e6	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc4f5f30d	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0600a90b	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x068b69f6	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x06a2b3b7	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x09590371	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0d2b3ec3	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x111b6e4b	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x13231afc	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1eb38d68	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x202f0b61	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2466eeac	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x249a9369	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x251700e6	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x27710885	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28016f62	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28dd242c	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2a845d7d	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30ad79ce	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3525ab5f	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x43a70329	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x45b4b5da	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x549ad19e	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x54fd5fc8	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5a51b874	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x66afd0bf	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x680d7d56	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x711f5849	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x74280cf9	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x74c0a8ab	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78cc17c1	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x881b14c7	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8953b274	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e8e30dc	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8f37e5eb	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x94dc2020	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9d9cb6fd	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab076d91	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab87f6fb	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xac31e079	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xadafed03	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xade23cf5	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb48b0834	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc201c142	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc8eec20a	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xca8e3768	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd454552c	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5019b8e	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5b9fb6a	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdb233e6b	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdec2a80f	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2afcce7	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe3200c2d	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe40ef10b	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe5ac00e9	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe6ac3f54	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe8bd29e8	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf19796f7	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf24c1f15	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf2b8586e	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf313c36b	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf65d2a37	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7c8acfe	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7d1db8c	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf8e2a999	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xffd33e7c	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x06539b96	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x14e76383	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x1c18b4e9	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x641710b5	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x77ca6a45	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x88d9a753	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc113f2a7	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd4be17ff	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xea9c5a15	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xedd5d5a0	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf3a5398a	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xfff2daf8	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0dc42120	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0fee5984	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x10bc1bca	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x16f6ebc7	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x236b360f	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2be5c917	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3a746cdc	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x464b4c0e	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x49ec5a46	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4a2417a8	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4fe67a56	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x597a0ab8	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5cb9dada	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5fdc1cf5	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x617ade37	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6eac9fcd	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8735821a	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x97b1d6d1	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x97cc67df	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9f53e6f3	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa0c5e441	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa27fccda	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa82aad15	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa9ac4054	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb0b0228d	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb1ee504c	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd573bf50	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe5b9bf92	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfe451c86	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x01d0320b	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x070de573	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x09bff398	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1fed58d9	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x25ab20d8	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2d25189f	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x363e6e9d	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3c61edc1	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x42911592	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x48ec4ddc	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4f108cd9	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5295512a	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x54a50660	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5c341071	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5e482286	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x60d01848	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xac97c408	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb8fb5812	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc25cf46e	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc35e521d	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc5d1aecb	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcb9da2c2	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcfa11a5a	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd5f6011c	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdf678c09	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf5c3d43c	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xff31195c	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x2946360b	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x425b49fd	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x569d3453	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x2e7e5ce1	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x9b0cd190	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xc4f2b1dc	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x21679c2a	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xf3517f50	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0ce3c44a	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x2ea1d444	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3a3f85c6	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6fa63f71	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7ba3c74b	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x860e90eb	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8793192d	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9884013a	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9a4e30da	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe2512e33	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe821ac17	mc13xxx_irq_unmask
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x4e9797c8	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x6655ce65	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x69836243	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7cad2c51	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd1f595e5	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xdb60aab4	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x4c8ded1c	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xadcff0f3	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x4811753b	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x1f3f1105	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x9fb36330	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0x1545cfd0	__tracepoint_mei_reg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xa5bff49d	__tracepoint_mei_pci_cfg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xb93bb2a0	__tracepoint_mei_reg_write
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0e8d8209	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2cd4ca13	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x30f9bb53	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3fb2e93d	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x40b62a4f	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4a8af0fc	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7f4ab4a6	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7fef6c20	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa7493146	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd0cb0fc0	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe75c0aa8	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf6985c08	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x09ed35f7	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x0abe86c6	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x6d428987	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xaa97f8a6	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xca46d419	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x03f2876e	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x25a485c9	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x5c081ec5	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x7108e838	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd7f88918	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xdaaa55da	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf17102c8	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x4e3352e1	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x535a0b87	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xdc10f5fc	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xf73bf60b	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xb26f3f39	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x25acb9ea	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x1f81dec6	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x89a6eeb8	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xa29095e2	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x9b7f9113	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xaf61f1d0	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x0a2f8d23	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x7ca6bc02	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x34ff6215	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3cf9e9e1	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6f700b68	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6fb659ef	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x9db4942b	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xbfeb4e40	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xd7b7cd4a	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe0a498b3	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe62b97e1	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xeb7cf33f	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x3eb56ce5	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x99b9481a	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x1dbc7871	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x491f867a	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4bf4782a	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x74a8627b	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x8f337a8c	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x9943ff0a	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcc13bceb	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcf2158a7	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd9a5e5e5	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xee96b755	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x02d107b6	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x32b74f53	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x3ee71d95	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x35b962ef	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x36d8581b	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x391a051e	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3ef59c4f	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3fed4e0c	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x41bbc07d	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x44272772	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x45a6ee1d	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4cb48c98	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4fc4d4dd	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x55b788eb	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x56201ab1	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5780f584	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x57faa0c8	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5db9dd2c	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6c399e8a	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x75284d0c	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7906d590	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7c5982e4	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7da30997	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8e279d6f	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9070c7f1	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9258c2da	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa233fe1b	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa7d19e15	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xafc07f9c	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb07587ea	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbd78d577	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc1829ede	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc46b16d9	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcf5e4923	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd3d28960	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd6a87a15	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdd6388bb	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe1515bb4	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe30bdced	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xeddacaee	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf3826bb4	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x295be9ae	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x2bda73c8	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x5d690287	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8a26cc6f	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8d63ec32	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xff198a22	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x01282d5c	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x65ef56fd	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0xc82eee99	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xc92a942e	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x1b6997d8	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x9d03e683	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xc280c617	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x279a7b79	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x39146173	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x4a668c73	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x51928c25	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x672ae6c2	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x86a039ce	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x8cebf602	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x9b35c68e	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xb654a530	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf56e0052	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x5dbd1485	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x26ec4758	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x29797afe	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
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+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 0x144fb430	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x18d656d1	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2ef3cd65	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3c881893	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3ee14091	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x486e018a	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x76d6b622	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa3b2a543	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6f358f1	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaf3d5e0b	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb9045ce6	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcad05317	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd043d706	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeb5ca29e	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfeb1e944	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xff337017	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x003ba27d	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04014802	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06c9ce89	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0925ed68	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x105c663e	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x229bf8bf	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x261b2d40	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2899a77f	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2dc21f60	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x33703404	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3388331f	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3474dd36	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x36e2a492	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x39197f9a	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a2f1a5a	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48679c60	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48e25f29	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x628de343	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x658b5f63	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x66a7a44c	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6da56c7e	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7478c3d4	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77a19c60	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7bd0f2ff	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7c3c3848	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x88845f89	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8ca1a3e6	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d4e63b0	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8f7309c8	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9a1878c1	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9c096f23	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xad22d380	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb133a1f6	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb8f55433	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc15bd15a	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc4cb7657	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc8e38712	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd510294	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdd8ddfb2	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4b56bb4	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4ea066b	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf03b9e4b	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf989ce19	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf9ef352a	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x113fee6e	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x41a09168	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x46839600	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4bb56ea4	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x6b9476b8	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x90edb5b1	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcf10458f	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x244c3c51	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x5d4543ad	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x896f1d52	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x9a05f4d6	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xbd8461fd	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf04c806c	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 0x4f513e51	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xb5fd69fc	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x404dee62	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xddc29ae6	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xb2f156c7	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xc75e8f7c	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x042cdfdd	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08030e36	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e12a05e	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f04f3da	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x119c7e39	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x131e356e	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26ca4c60	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28400665	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c6cb695	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c8afd60	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x306f8117	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5335d138	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62f9af29	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64e16f2d	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6aa86f76	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c114125	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x728ee42d	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x737acc50	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77d1ecbc	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e43b830	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7eccf258	mlx4_max_tc
+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 0x822b5259	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85647d53	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a3d56af	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b6acc68	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ebf74f1	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90a81c19	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98929f7c	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a320c49	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3a8c25c	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb08e4768	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb35dc352	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4522a07	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb76939e6	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb771dee0	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb77f7e4d	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8e4d7a1	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4428d32	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6147551	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc672b5b1	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc1896f9	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd5a6b23	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf96359df	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd687515	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01ef6ce4	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0574f28e	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06233d91	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06e6ee66	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x093484ef	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0af8bc4f	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0be7e3af	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e266bee	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e3bd40e	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f612bff	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16d928ec	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x178c4c6a	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a4c4cb3	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b5f4254	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ea55a4e	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2271c2c9	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x232b2112	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28fc3cdd	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a3668f9	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2be8fa06	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e529428	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ea0bbf1	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35a9b5a5	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37cae4da	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x396b22cf	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39e0b23b	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d667f99	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3eaab65b	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40435c1c	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42678e96	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43fe617a	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44f03c1d	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45f19278	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x469f0688	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4706f52e	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49d5dd0a	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b50040c	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c2b0dd1	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51261ef6	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x519cc49b	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x532cb025	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5711ea34	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58970ce7	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b40334d	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ed39ca5	mlx5_eswitch_uplink_get_proto_dev
+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 0x628af8f4	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x680b1c80	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ce77c94	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d6c5854	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70bf7c8a	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71512a7c	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a83ba80	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b2a2755	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x808133aa	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80b931df	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84f7b519	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8869d6b1	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d1866e7	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94797e7d	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99a4623b	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a0c9435	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b64e745	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c04ebe3	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d2902ff	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d4855a3	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9df858bd	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9eccf87f	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1dfb94a	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa271ef48	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa697f018	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa85436f2	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa14e8e3	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa180be0	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac6adf8d	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2c76cc0	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7b3c313	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb8d44e27	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb97b2a55	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb3eaab1	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1b3466b	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3357112	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc742f813	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcbe566fc	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xceb9bc0b	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcedce215	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6e4a99a	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd87b2596	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbe429ae	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd03df98	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe59cd872	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe59ee919	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea3a0372	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebf2ade6	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecd8dc76	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef874600	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefa81879	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf06fdd42	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2303e2d	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf295c007	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf31dff52	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf45727d0	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8171c07	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf976fe69	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfab7fc0e	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfdc49249	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfdd54bc8	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe23d1d5	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x1e851187	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15ad0d49	mlxsw_env_get_module_eeprom
+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 0x1ed14376	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x327fbdae	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x42252e8e	mlxsw_core_ptp_transmitted
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x48c8e9f4	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4993aa22	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x53acacb3	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+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 0x65119114	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6ff16a82	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8b00f248	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa37e1128	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaeaf566f	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xb7dfd4bf	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc59e0e3d	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd3ca1c3c	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xffe3cfd8	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x4b80860a	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x5d8155f6	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x32a12701	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x9efb9446	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x01a55607	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x03550af1	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0daf55bb	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x20b60d47	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x35563849	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4205eb52	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4beb7293	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5f2e5132	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x71122d9a	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7e4a049d	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa927ef7c	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd9507e0c	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe2a71577	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x2312b6e4	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4a691ce0	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 0x6e2268d7	qed_get_fcoe_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 0xf7e3c206	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x72c7b5e0	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xae23d376	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x51aa95cb	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x8f42e2e9	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x99ead2e1	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xcf7c4740	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xcf8a4dd2	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x0b8fc1ea	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x165e7eed	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x47dfe699	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x48a8d0f5	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x5f0cf909	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x65301d44	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0xae51262a	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xb0ddfaee	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0xf6c0b86b	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xfe9283ac	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x6eb26b31	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x9a6a2def	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xa96d512a	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x00776753	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xdbe90351	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x2a86a814	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x3684c65e	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x7f30e7b0	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf6d3f2ea	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x0804bce5	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x1847a1b8	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x1ee099a6	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x21d140d8	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x402d016e	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x52c24542	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x640649b1	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xc4caa060	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xd75daa0e	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x2d4d31f1	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x350bc1d2	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x82cf90ac	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x08b241e8	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x162cb5cd	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x2ac3d359	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x35fbfcf2	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x40a5c423	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x41db64b3	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x4fd1c126	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa0f5e3e3	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xef2b2eeb	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf6402cac	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x37d3f119	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x191e0125	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4083d5d6	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x45937431	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4cf4b0e2	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5a469349	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8326081a	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x97abe694	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9b00075f	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xabc69cb9	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xc0ef8d40	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd13108cf	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe98ca7a3	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x01408f7f	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x150c754f	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x19635d9d	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x19c3b181	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2136a12b	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x28e9085f	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2f421c1c	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x304fe597	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x34189b0f	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x36a28dbf	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x394167bc	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b4ac07a	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3e9c43e6	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4ac6e100	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5ae453f7	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x761aaf17	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x76faac1b	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7b90eaab	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7f13d745	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7f828da9	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x96fe1ab1	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x975dce2e	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9826a795	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x99370f0b	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9e3607b4	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa1fc4582	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa292e466	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa78bf6ee	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb534f923	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb60931d6	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb844653b	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb846fc92	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb90e16af	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbae325d0	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbc9804a3	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc0ba369a	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcab9934d	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd3af49c0	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe019bab5	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe97a2407	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xecd37814	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xee7213ba	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xef8dacab	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf0f6cdeb	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf63173fa	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf830a54f	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf9036ddc	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1f4eb18c	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4ec94beb	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5ed8af5b	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7c8ef4f4	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 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd0773e72	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd48b3dc4	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd6efd72f	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd9956156	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdaabf6d3	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdbc5f0f1	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfe04aed9	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0469c904	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0c66b955	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x196f6b6a	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x2dc25c34	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x30127b5f	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3845016a	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x53eebf1c	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5e7bed0b	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x60af6ac3	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6db22b6a	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x83de4151	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x89de0e61	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x96f88602	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9d8959e7	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa8a8a01f	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xba5c1592	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc461498b	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcc2a5033	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd24db85c	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd27eb521	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe0cc5200	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe97a5260	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xeb45e210	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x03c38f35	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a0e117b	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c0035ad	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1381ff99	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x161b456a	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ba70e9a	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bae14d4	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x22b10b06	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24db4944	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x282e3167	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x288eacd3	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x29093ea6	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b4d7f77	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e4a18b0	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3723d410	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3893f8a2	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3925fb72	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c6ac416	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d0bd0f4	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eed147a	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43784da4	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x46a38971	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48cf66e1	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48d53527	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4af9ac83	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b77e2da	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c506235	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5185b98d	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x54d56fd8	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55a19f0a	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x57a62d5e	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x594855d1	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x594ae1c5	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a9f8eeb	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c3b96a8	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x60823496	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x608fb84a	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62a3daf6	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6371a573	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x63d14212	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x63dfbad2	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x65f6e5f7	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ff1e9e8	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7012fec1	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x70327aad	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x71a99d02	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7234abf8	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7260ddc9	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x791ab5e5	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ac2b17f	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b643d35	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f8e0952	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8328c9f2	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8346d8ad	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x87f67be9	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a116bc5	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b600911	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cae17a3	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d48d9eb	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x933f1852	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x947cadc6	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x961940a3	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x967c9163	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9918ca58	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a750862	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa08b79d8	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa88bc708	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa99cf38c	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaada05d2	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xada27af5	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c90128	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb288838e	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb38d9e19	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb796871f	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9a0b467	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbb556a1	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd100671	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd5ab93d	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd82924d	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfc43285	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc00ef6e3	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1cbac3b	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6a8efa3	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc848b32f	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc866c85c	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc90055fc	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1563493	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd949e8b5	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda6c9169	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbcda777	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbf781e6	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdcdf98e2	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe18a50ad	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe35635be	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5049907	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe672a4a8	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6ba878f	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe82dd830	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xec5c48e1	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xefd9168c	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf030e1d8	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf49f4589	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7bc9897	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8c224ca	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9353284	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfafbb833	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xff0db18d	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x017d06c9	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x4704d1bf	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xfaf086c3	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x06d65d29	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x12030554	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x2e00f7fb	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6df2dd68	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x81a94bb4	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x84c26a69	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa6355297	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xaee34aa8	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xb6f04982	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc9a53cbf	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcdf814f1	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe52616aa	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xee4c9e2c	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x3c6742a5	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x5047552c	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0xa8e4c246	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1f6538b6	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4580baf4	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x54e108de	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x58ee6a70	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5bd55f48	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8344a14c	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x873be80a	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8b2dab17	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x98aa09f3	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9b994a7e	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xab435c9e	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xac975fc0	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc9181a47	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd5900d90	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd7b5f454	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdb5a5426	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe4f93cdd	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe9c50358	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xee0fd4e4	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf2598350	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00614179	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00fb6386	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x012a44cd	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x020f3314	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x03557abe	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x076361b4	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x07deeb54	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x09660090	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0b2ed666	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ef285f8	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x146de1f6	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x16e4a09f	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x171f9f14	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1795cddc	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c7690bc	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c95c325	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2428d377	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x26ab2939	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a1299a5	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b580aa4	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2fe9508e	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32ccba2c	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3434d618	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3581c446	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38849b71	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x39355717	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x399cb5f9	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3fe4958f	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45262bd0	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x47187e3b	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x49eeee2a	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f986f54	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51525b57	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5fb81896	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5fbb1e7a	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x651c844a	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6783102c	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x69c4767a	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6d5fe0ad	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6dc011c7	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x70b918d4	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7164402f	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x72fce2fb	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73102e73	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x74c55026	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x77166b17	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x778b5b46	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x77b80d81	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x796b6fbd	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7d23b398	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e62aab6	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f013d8e	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8770b476	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8f24a077	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92a5db7a	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93630931	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96af28af	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96b4d9a1	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x98742fc7	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9dd51cbc	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e84adab	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa52c3cb5	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8970ebb	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa9503cd6	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa993608d	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaa77120e	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac34d9d1	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac9c5f7b	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xad22d859	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xae0a717c	il_hdl_pm_debug_stats
+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 0xb7d30abb	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb9996f57	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbb930403	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc15026a	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdb81652	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc0c236bc	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc9f886bf	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca9ff518	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xccb0d505	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xce1234aa	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xce6c4e91	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcf4e503d	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0105c92	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd24e79cf	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd295dc07	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd626196b	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7645b1d	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda328905	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe4d385dd	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe80582e4	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee98b4d4	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee9d5bf0	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xefb29424	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf1766e9b	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf6927fe7	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8912bb3	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8ba1bdc	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfaabff65	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x034b0fb5	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x07512533	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x08d9c1d7	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x103e8758	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x38ec5173	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3b2529c8	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x40f8d9e9	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x48ca9bf1	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4e8626ca	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5a123615	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x62d7b23c	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6a53dbd3	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x72901681	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x731b5701	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x79b1d6ca	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x87273ef3	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9a707115	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9bbd3b4f	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa8621531	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xab3fa018	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc6a8b07c	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe2785f27	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xebc9844a	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xec4460c7	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf0900189	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x0fdff273	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x179e93cc	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x275720eb	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2a49d34b	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2a9ec787	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x324bfa2f	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9970939e	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa415b9c4	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa79bb492	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xd783920e	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe619f23e	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe6d9ec0a	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe8ab87db	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf319a6e8	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xfc7c4f92	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xa2c1ce7d	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x0243605d	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x057a635c	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x09bf77ca	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0c6d8224	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1206fb6c	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1bf8f628	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x200e2d44	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x212a95c3	rtl92c_dm_check_txpower_tracking
+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 0x2381098e	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2718adb2	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2976ff16	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2e843ff2	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3268ef17	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x353f12e1	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4256ae60	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x429621bd	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x57739108	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5d5329ee	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5e68671d	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5ff73b7f	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x624ad602	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x68aa443a	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6900cef4	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7554cb88	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7af795ae	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8be9581f	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c505a6b	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8d206608	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9e3d2d7d	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9eb81566	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa172f35f	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb100d793	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb6c8ccee	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb94277d7	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf3e56ef	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd66e153f	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdf097d51	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe576c970	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe8cc0708	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe962b882	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf48fcedd	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf8765eba	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x38d489e0	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x73ea2887	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x8cd5ed6c	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xf0b6536b	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x55502323	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x63e7aa5f	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xdbc4120e	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xe42e8cb9	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0657e9cb	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x06ab7ea0	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x29bde9b7	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e1113ea	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f15d876	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x326f132b	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x36498490	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3b679668	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e2ee1e5	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x535a6612	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x579da0a3	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5f625444	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5fcf75da	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x64796380	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x69f95794	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6d6b44e0	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x783bc4a7	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7e9670c2	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x99d4e495	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9cab672f	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaafb57fb	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xad060de1	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb40edfed	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb878532d	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc228b7da	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc37083be	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcc20a927	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdc4efac1	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xee8f4fd8	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf1587216	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf2cce72b	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfee553fd	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x02152229	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x231bb880	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2e1d2725	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4a41d6b2	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4e37ffc3	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5535046c	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x70e086c9	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x77421373	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9880784d	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9ca269c1	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa1aa24b9	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xaa9a1d03	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc4a93cef	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc98359e5	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcac047e1	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xce369ba2	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd6c927b1	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0xa8c2cf8e	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x38e0fe25	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x69b88f8e	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xa3d79860	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xc676c0cd	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x1042a065	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x60647748	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x92d1727c	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x1f7396e1	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xffb286b4	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x86927377	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xc31acb81	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xf2f90f90	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0xd8d758a1	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x73b4fd46	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xb9d7a705	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1546bfab	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1a9142c0	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x9a2126af	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x01910533	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x356b2760	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x39744219	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x64943a84	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7ee59870	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x8cfafe95	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xad76a6d6	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb6e4cd58	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xdbf85221	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf5363006	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x06f5c2cc	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0f9b0103	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1b034983	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x299b37d9	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2ea25049	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x37a1e65f	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5c61136f	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7aa9b540	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x927ef3b7	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9fb99584	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa066150d	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa7244931	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb115bad2	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb1be55c0	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc2871d00	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc846127c	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcc2ba6e2	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xda5e41ee	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1c690765	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2e873583	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2fb1738e	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x370e5127	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x3a4dd27a	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x42077173	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x52c73f3c	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5f680ac3	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x71201415	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x97084d2e	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9a3ddda9	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa83af72d	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xaa7cc576	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb3cd93ef	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdc5156ce	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe0c0245d	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xeafd8abf	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf57f76d7	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfa05acf8	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfe252464	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xa749ccf7	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xdf2a8900	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x008a328d	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x065f81af	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x0a8687d5	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x1b592285	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x236ead89	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x362186e6	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x388ffe9f	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x39f73350	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x423788fc	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x4e82582a	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x56a70724	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x5d3d85b2	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x65800e4a	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x7016cf68	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x70884c63	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x70e380f8	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x7d59d62e	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x7e56be43	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x80823ef4	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x84db532c	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x8a42afc5	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x8d8e53bc	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xb0042cd4	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0xb08699a9	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb13784cd	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xb399e3a9	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb6890ec8	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xc0350f9f	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xcec4c97d	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xd00cd68e	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xd35a10bf	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xfd54167e	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x3e2d76e6	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x903371a8	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x070e37e2	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x164a08ab	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1bf5ae73	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x2fd49575	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x3c24a12d	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x46667123	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x7152adf6	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x78d17845	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x840e4eac	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x878bb291	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8b23c2d4	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9d6117c2	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xae5d8b7d	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xcb24cc51	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xd8e88959	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xde951814	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xed9662cb	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xfe3da217	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x51104f99	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x5fc54bf3	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x77af9e24	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x7888c3ce	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x9e0d4c85	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xaf6051d9	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb333c9b1	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb5c05f86	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xd6a2a088	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf01f94ba	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x9461b8fe	pccard_nonstatic_ops
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0xd437a848	pccard_static_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x4d3584e6	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x8207d9ca	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xb7b9452d	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xef38fefb	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xaa1c36de	cros_ec_lpc_io_bytes_mec
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xc4ebc6b3	cros_ec_lpc_mec_init
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xf5c87c59	cros_ec_lpc_mec_destroy
+EXPORT_SYMBOL	 drivers/platform/x86/dcdbas 0xa75079d6	dcdbas_smi_request
+EXPORT_SYMBOL	 drivers/platform/x86/intel_punit_ipc 0x3a0b563a	intel_punit_ipc_simple_command
+EXPORT_SYMBOL	 drivers/platform/x86/sony-laptop 0xd857cac7	sony_pic_camera_command
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x5e6548da	wmi_driver_unregister
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x719b62bc	__wmi_driver_register
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x328f46c2	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x39695dae	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4fcc10c5	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5ad5d213	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72192eed	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72cdc6c5	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9579486f	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa09c22e4	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xab7bc644	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc1ef363a	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd2ddd8a8	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd91e07c7	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xf2e6ba15	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xfe7ddf73	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0xce583106	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x3d9cece0	NCR_700_intr
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xb1d47dfe	NCR_700_release
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xd9b9da83	NCR_700_detect
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x5e960f85	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x6496ae97	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x9f582447	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xe6fa5e6b	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x02c61cde	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x352f2e4e	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x66f6d2f0	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6f089e49	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7c1ea861	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9fcb8ecc	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa3275a70	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xbc3c77ed	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xc70f8b69	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xc83b004e	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf2664a6b	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x01045fb0	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0cd7aa41	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x121bc568	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x129b9e42	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x198dcc16	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x21c7c2b8	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x30bdc4db	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x30db4221	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x32cd075d	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x385c356a	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x39f26d4f	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x44c67c1a	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x453bb4cd	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x49d7b72c	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4bd9aa36	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x573bc2ed	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x58fc6a62	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x610da17f	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6626d017	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70229ec0	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70c287eb	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c9f074a	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7d0b231b	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f4d238c	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x81309a8f	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x840223ef	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8901603f	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8e78c10a	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x93b425b5	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa4e169c2	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa967401e	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xab2b100a	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaf7047a5	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb53882d1	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb5b46209	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc3d5a325	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5966047	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5ec4cb0	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xccc857a6	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcdee32c4	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd41b272c	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xddb50d6e	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0407d93	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe51761db	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xed5e3b0c	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeda70a6d	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf36ac5b1	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf98979f5	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfad4bd7e	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb6a1517	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfc1a5058	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfed4bb00	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xda28e93d	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xdacac26d	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xe29aceea	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x78f88500	mraid_mm_register_adp
+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/qla2xxx/qla2xxx 0x014963e2	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x0e73960e	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2156f664	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x408ab1f2	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x63b848cb	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x894d1008	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc5c56431	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc6a649a3	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe872de51	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xeb126de2	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf8448c7d	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf997b1d0	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x124560ec	qlogicfas408_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1f55cd70	qlogicfas408_ihandl
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x3fd8cd71	qlogicfas408_detect
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x54db32b8	qlogicfas408_host_reset
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x85948868	qlogicfas408_info
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xcee02c78	qlogicfas408_abort
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe4cfc546	qlogicfas408_disable_ints
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe76b3b20	qlogicfas408_get_chip_type
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xf2b95199	qlogicfas408_setup
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xfcc6bf79	qlogicfas408_biosparam
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0cff4089	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0fc22e9f	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xb2e2a965	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x02562229	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x145a7c47	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1e06c194	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x48522843	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x503ea020	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6d48097f	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x851d1095	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x95c57756	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb6293189	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcbb0410c	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcc01f499	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xdce84b53	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf2711f16	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf5721e1b	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf69db2f5	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xff516516	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x04803961	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x080a5f81	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1aebdaf5	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x249f221c	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x274af96f	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x33b10b0c	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3568ce6c	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x361d2df1	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4c7f28e9	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4dd4c67c	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5a9a8ead	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6014e94d	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7daf2047	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9873c9ea	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9a98bcc1	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb7379e31	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xca0bf13d	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcac99960	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd001fb04	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd0b98330	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd6c2fcf0	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd8125048	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xda2dec48	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdbae6f6e	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe434ec69	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf04ca322	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf6433628	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf68770b2	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf778367b	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x62cb9e56	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x89e23dbe	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xacaf4768	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc4df43e0	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xe9ea517d	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x6e1ac3b8	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x7e811b26	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x8044af84	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x905edb6c	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb6b875a7	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x4d6a1339	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xb32fab43	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x23af00d9	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x691e2aa8	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x74fdc605	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x8224a188	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xa711b326	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xafa2f0b6	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd0f497cd	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd60589a2	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xe02ed111	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x8bd658d0	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xc89d46c2	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x158dca36	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2a41bf44	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2e98a582	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x31fabfaf	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3aec45ec	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x54780b5c	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x58ec0298	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x64f0725e	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x7de849bb	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x941f2cca	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa4333c8b	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf3ec280f	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xfc1c46d9	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x34712074	sdw_cdns_irq
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x3a660504	sdw_cdns_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x482e23b4	cdns_reset_page_addr
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x59070db3	cdns_xfer_msg
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x7e21023e	sdw_cdns_enable_interrupt
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8b5eb1c8	sdw_cdns_exit_reset
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8e95eb09	cdns_bus_conf
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x916162e5	cdns_xfer_msg_defer
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x9606e6a2	cdns_set_sdw_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa76a6fcb	sdw_cdns_thread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc1b63550	sdw_cdns_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc825fb92	sdw_cdns_get_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xd2b18bb3	sdw_cdns_pdi_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xf8554ee6	sdw_cdns_probe
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xfc11ff64	sdw_cdns_config_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x5e07cd60	sdw_intel_exit
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0xf10d2a2f	sdw_intel_init
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1ffbb08f	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3243dfbd	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x426436a0	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4dca20f7	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6dfb16c6	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x70903f60	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x709d81aa	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7202071c	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x739e8be7	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8082548f	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8ea5fd35	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa4bb0c86	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa5c53848	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xce7d59f7	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdee2f89b	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe04e240e	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe0e87ff6	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe254670a	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf8faaab6	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfd544ed6	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x1672f9a0	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x203fe9c2	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x291b741a	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x29581c68	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x34f65d5f	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x35c96e64	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x42169e70	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4c5b9131	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa02cb187	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa615f2e8	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xaf37ecb6	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xba2c8bd5	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd89d78a0	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe6fb2d2c	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe7aade8a	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfcf428fd	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfe69c812	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xaf25892c	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0xe722d7ac	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x067dc71f	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x24166f84	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x7c114712	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x82c8e49e	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8538561a	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x92865dee	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xa29a623e	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb2eea8b8	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb35ca141	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xbc1ad600	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc73af358	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc8e11ec3	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xccdc53c2	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd474ccb3	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xebb529b0	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x298bd9bd	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x52d7bd00	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x67b2d3e0	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x71a15719	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x857a467b	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xbed2ace5	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xccad82a1	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xdb63478b	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xf8b43078	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0x29562993	b1pcmcia_delcard
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xaec3240e	b1pcmcia_addcard_m1
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xea620116	b1pcmcia_addcard_m2
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xf14bf8b1	b1pcmcia_addcard_b1
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x020acc0b	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0342af17	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0489a3d0	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x07f11973	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x096b6ac9	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1b9b0da4	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1d7dce80	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2188850f	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x21b65518	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x25d4d31d	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2da6d8c0	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x40b7ea85	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x49495287	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4a28006d	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5635eb90	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5ff5d203	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62e5970a	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x64181721	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x65f8b0e9	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6935b33e	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6e551a6d	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x75e09ae1	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7dcbe739	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x84d673c7	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x87eed507	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8ba524d2	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8da00e9b	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x912cf144	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x988bb5a6	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9f6bcda1	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa0fc9ce3	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa270be1f	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa39e862e	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xba754975	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbd0855fd	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc13ba465	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc4249bd9	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc7f078cf	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd0cec668	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd6d402dc	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd90ecef4	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdc06dfa4	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe1169aad	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe38fd7e2	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe5a43e98	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe6c552dc	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee8ba210	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf15b558c	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfd94b5c3	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x05eee130	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x08d8579b	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0a393c44	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x16394cd2	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x16d3daa2	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d1da306	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x27a67e84	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x29baccea	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2e318f2b	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x31de4e14	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x32077e07	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x462f3459	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x50ed471e	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x59a371fd	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x59f1a555	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5b651c78	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x63ac6f67	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x647ded5d	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x73f20139	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x783c789d	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x78d8e7ca	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7b90f5cd	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x83d46539	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x840521a1	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x89811a4d	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x958d717e	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x964229ab	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9dff1a36	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9e5f0716	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9ef6383c	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa0d4e802	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa692c700	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa951cd90	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xae1366ea	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb8437740	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbb06bf30	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbcba063f	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbce41aec	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc12aac17	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc1ef1a46	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8020b12	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8a12ca5	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcc70160b	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcdfb648e	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd97ef78c	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdfb76117	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe124fa3a	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe8c22e29	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe9d32beb	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xef4206d9	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf1fa42bc	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf7d5e138	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xffc4f2b6	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x002314bf	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x02b26252	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0b2dffbf	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0f170e8d	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x192c4062	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1d72db22	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1f4c34e4	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x240742ce	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2e328031	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2fe0de6a	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x35bab9da	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x36c19e88	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3ae0a6a6	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3b104cb7	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x40af9267	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4c4ca0ae	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4e0bfb88	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5005e963	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x53c95cba	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5646833d	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x65f8623d	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x842adcd6	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x858a558c	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x96203534	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x988971fa	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9f195a22	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa15d1df6	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa22adf79	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa94d64d5	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb0eb32da	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb254d6c4	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbae410b7	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc7662949	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca1e0eba	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca610768	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcb003880	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcf6163ac	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd1635863	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe128508a	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe76fd1e9	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf2fdb8c5	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf7e976ac	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfbffd835	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfd6d5465	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x06646c08	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0c5c09a3	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cbda0a5	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0f18ce9d	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x120c63a2	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x12d7cb59	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x139bfe14	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x14baff0f	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x17752f88	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1c87b59c	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2313214e	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x25043de1	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x250c2b51	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2629a2d4	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26beff03	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2cffc6be	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2dea2ac4	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x33e497c8	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x36c7b254	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c20d5c0	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c90959f	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x494acdf2	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4daa92da	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4ddb67db	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5383889d	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x561419e8	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5bdc4d1c	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5d990f3d	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x604cc0e0	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x660c6ef3	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x67790e67	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6943baf0	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x74bcaa74	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7997a256	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7b620fec	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x80884284	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8132f0b7	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x81efcf85	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x82d47272	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x841f75c3	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8cea9113	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92a621e1	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92dc5bd1	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x948cbbc8	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9798b85b	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa4898ada	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa701b578	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb4487fad	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb700ac88	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb90525c1	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc129c736	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc3ee0b48	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xca60cb69	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce7888ff	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd300c304	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd85eb253	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd8c5d167	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdfb48aae	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe38d7881	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe5899f80	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe898802c	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xea31aeac	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xecb418e2	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeed81714	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf02025b4	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf0f5595e	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf195ed59	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf48460db	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf4ef07a6	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xffb27d5f	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x111eefed	acpi_parse_art
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x1887763e	acpi_thermal_rel_misc_device_add
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x86c998e6	acpi_thermal_rel_misc_device_remove
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d	acpi_parse_trt
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xf1eae013	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x04757a2e	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x3097d128	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2d705f70	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2fb8606c	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3d764e15	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x539bb692	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5ac34481	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x71fc1331	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7f880eab	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x90b48f70	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaadca9b0	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaafb7e97	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb1c8fda7	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb6b30bf7	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdebe15c1	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x2ca4df9b	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x505e7fa2	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0444cf43	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0d089d6c	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x250ad577	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x376e07a7	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x684db435	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x884b2402	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc7ef5393	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcffdcc48	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xea7e7712	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf4e90108	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf58527d2	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xfabab35d	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xac009eaf	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xf0c2a128	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x2e135850	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x3c5865d4	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa2eb7bbd	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa900e1dc	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x0bc54d13	svga_settile
+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 0x39a89760	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x5732d704	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x6af383e9	svga_tilecopy
+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 0x97717fbe	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xcaed0136	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd64607f4	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x786fc710	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x64338cb9	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x77da94a9	sys_imageblit
+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 0x629a100c	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 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe4793277	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x20b31a30	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x4469abe9	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xd0f3d307	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x16d04f21	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3f751927	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x5655e924	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xc5cfc167	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x39207173	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x44e4c40b	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x409979f7	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x7ce244f9	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xce8a1a57	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xce93b256	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x07742e3a	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x93dcff07	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x4384d8cc	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x4fd92920	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x60018945	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x69270ab4	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xf762fcbe	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x8f41618f	mb862xxfb_init_accel
+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/w1/slaves/w1_ds2780 0x3dacbf8c	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x5d73691b	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x344c7cac	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x852c35f4	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x375545a9	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x80961c16	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x9773d09c	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xf7683b4a	w1_add_master_device
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x04e133fc	iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x75bec08d	iTCO_vendor_pre_stop
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xc8930f32	iTCO_vendor_pre_start
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xed2a3373	iTCO_vendorsupport
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0316397a	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x05c70279	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0c3e0ba5	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0ece7854	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0f691cd6	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x197a18c7	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2f26b044	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x33fc43ca	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x36dda606	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x39a99ee4	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4809a133	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4e7cd7ad	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x544cb4de	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5488738c	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x672a2a5f	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6f21ec77	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x79c5f38a	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7b799540	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7e443ab4	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83522718	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83a85cbc	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa9499ec5	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaaf066cb	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb196a716	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb4896f53	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb6ce9e36	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc60e2b7e	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc7277eda	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcb472fda	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xddd9f965	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdeb5bdc8	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe5a8e6d3	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xec4a8276	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf009a743	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf2711125	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf3f172b8	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf6b957be	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf72f1db4	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfee28242	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x1d14734a	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2a7f71eb	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2f4f86e0	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x56fdbffd	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8490fba0	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xe1be245a	qtree_write_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x3683bb87	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xb7e4ea04	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x0faeb6c8	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x2e9e1981	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xbd9afa2a	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xdad8c183	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe2b2e800	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe47bad93	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/802/p8022 0x71d0a3c7	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xc8fd6d33	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x12d20f64	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x5792ace2	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x03f61505	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x0c9b8a25	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x14327e28	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x1df2edea	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x1df7830a	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x2584bdc0	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x2865c227	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x2c07e1b5	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x4568b4ee	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x46a8e4fa	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x4a23f605	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x4cb8f838	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x4ddc68fb	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x5037274e	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x57061532	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x5e4e7fed	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x691c37a3	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c85b781	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x7560d7ba	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x766bc1e2	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x7f73f3e3	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x86b97c37	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x8dc1d0ff	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x9111e522	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x916f2853	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x946a2b40	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9da4db0d	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xa5c3d1fb	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xad597cb1	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xb82c8ff6	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xba727e8b	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xc609d77f	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xcd6ffcdf	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0xd0bffbf3	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xde691252	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xdf850405	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xf0ccd930	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xf150e9f4	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0xf42b8d85	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xff606136	p9_client_remove
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x0cd90144	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x2c181724	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x97ff7468	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xbdd07b3b	atrtr_get_dev
+EXPORT_SYMBOL	 net/atm/atm 0x0d8c494f	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x315d2f0f	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x567b9eab	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x69f35554	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x6e4b67a6	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x75147f52	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x7d4ae814	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x83706196	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x9c4d49f0	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa51eaca0	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xbb4de408	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xcc11f7a8	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xe4c18584	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x159f0735	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0x1ae10eec	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x3f75c9cf	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x6aea708d	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x77f8fd40	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x7f47d456	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xd45ec198	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xfed2f7f0	ax25_header_ops
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x00b24fb7	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0208dfbe	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x191df5aa	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x19e35cef	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x23cd19c0	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x399955e5	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x46cf6c3c	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4bd0ef7d	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5bd761c5	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5c1aafd1	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x60f289ca	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x66891f8e	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x67824459	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x746fca52	bt_sock_stream_recvmsg
+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 0x7be8032c	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x81bcd35d	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x821c8156	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x826000bf	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x896f1192	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8dbc920c	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8ffbbf48	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9f2644c0	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa4850d62	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa88a5658	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb936e655	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbc9192af	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbffd3f9c	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc13022a6	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc33dae5e	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc387c723	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc3ad9fe3	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xca96e6a8	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd07b9eaa	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd2e2511b	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3594888	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3e3fa28	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd4e12852	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd59d9456	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdc0942dc	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdd2eb724	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdfd752d0	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe04f890c	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe364074a	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfffac037	hci_unregister_dev
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x254ef535	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x69e9f7b2	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xcd911184	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 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 0x523b8986	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x64507831	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xba842a13	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xcdebc0f4	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0xed180e01	get_cfcnfg
+EXPORT_SYMBOL	 net/can/can 0x0ce632f5	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x3abce20b	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x740d78f8	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x880ec297	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xa4816382	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0xff5a55cb	can_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x0057ebbb	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x00e2a134	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x0690f160	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ad43c4d	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x14f87460	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x17e025e7	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x19ec87df	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x20fa6f23	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x24d0f33a	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x253d2966	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2e88ff07	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x329d68de	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x32c9828c	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x33c8a33c	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x36fe28c7	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x3898bfa6	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x399be0a4	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x39e0be51	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b00dbc2	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3cc3b0bb	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d897065	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x3e9b2d92	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ef8f229	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f734a9b	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x3fff021f	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x4113d2c6	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x41617ef8	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x41d1ca61	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4758bf18	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x47b1f121	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x4dce8661	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x502efd51	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x5037388a	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x51f0335b	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x563df4d1	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x57897b3c	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x586f58b3	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5cf4402d	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d33591c	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e0cb924	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x62adb656	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x63ead3b1	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x651d558f	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x65deb940	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f6b0341	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x718a82c4	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x75d2e4dc	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x765c5887	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x7895b595	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x791416a6	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x7a4ffc4c	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x7b2709f9	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7c39bd41	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x7cdf78d5	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x82fa8457	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x86c903c0	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87e9521c	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x8978bc55	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e4cd313	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e999111	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9291f5ee	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x9484c987	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9773f173	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x9792e8a1	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x98e62266	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x9910ee1f	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ba245f0	ceph_auth_verify_authorizer_reply
+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 0x9f481407	ceph_client_gid
+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 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xac60ea06	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaefe88e8	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb45e8783	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb633e936	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xb6d1a7f8	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xb717d0eb	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbdff146c	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf66367c	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf93cdc5	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc0810eca	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xc2848624	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xca75b2f4	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcb1a3976	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfa227a3	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd41f3684	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5c0f0a2	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xd696b057	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7a71dc2	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd9e4dee	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xddb22f92	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xddff940e	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe09c0592	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xe54613ae	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xea6aff8a	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+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 0xf1018ede	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0xf218dc08	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xf2b072bb	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf59d8c23	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8382f20	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa5899a0	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd934c83	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x78d0658c	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xc97e90a6	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x52e0e58b	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xd6f07e1e	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x00493b05	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7b42f801	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x89150d5c	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x9081f925	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xdb0d6f44	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xffbfa266	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x345e9d9a	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xe9c3b3e3	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xb4116371	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x136743c4	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x3243213c	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x6dcb54c8	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xf239d03c	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x447a8042	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x764072ca	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xe61b5ed6	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x5b730693	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x6e689fb9	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xe985eee6	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x9e4a048b	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xf7485fb9	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xc1ed114a	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3269a9ec	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x402330a3	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x5ae134fc	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x9bdb5c43	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd83d55a3	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdb1f0d58	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe7121663	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe7b9d03c	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf447d679	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4140d997	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4cd01db0	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x829746ec	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x1da71368	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xf069efd6	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x7e537404	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xad6e143c	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x988ca99b	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xecc39c94	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x43fa40f9	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x15f42c4a	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x16c171c2	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x266ebdcd	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x2752fb51	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x4df6590e	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x7c166356	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x96300495	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xb64da759	lapb_unregister
+EXPORT_SYMBOL	 net/llc/llc 0x14e7172f	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x2a786573	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x325dd937	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x4658db54	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x8f7a3490	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xac2e342c	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0xfbbd3095	llc_set_station_handler
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x06e1a11f	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x07f7e456	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ae69495	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0b6c51ba	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ed5ac19	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0edfedc1	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x117cb755	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14414330	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x15c434cb	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x190e9bda	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1c60e960	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x25b8f336	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x26b7d743	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x276ecc21	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x29be6e7d	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2d823d19	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x30ed091f	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x32a5234f	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3334cdaa	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3a393897	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f20e1ee	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f714db4	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x455cb7a6	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x489c3d7b	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c9725d8	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4e6df4a4	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5375623d	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x55a4b54b	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x59304538	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5bfef5fb	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x61908bb5	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6381cf34	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x643ad3dd	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x64e8f921	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x664b1aa0	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x66e679ae	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6a831f79	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d736293	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x70ea0929	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x76c00bf9	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x77193d70	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7ac8b9d6	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7be42ad7	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7d18a4cb	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x82e619ff	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8529b4d6	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8631ec3f	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x87694f99	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8882b5f3	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x94fe46e6	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x95249de2	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x98464e52	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9a1f9018	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9bce03a9	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa06e9bfc	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa1cc87cc	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa1e939c0	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa4e5d331	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa5383ed6	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xabea698d	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac377b7d	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac7c781f	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xad6f2567	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb275b301	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb57b840d	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbad1360f	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe18552b	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe77a3b2	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc001d830	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc0959467	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc10f1b81	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc14efa5a	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc89d5105	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca79c556	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcfa24da7	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd06ab83b	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd0ee86e8	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd30a0ff7	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd4a79414	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd8d99c83	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd9150640	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdc9019dc	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe4411b4e	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe836fb03	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeb7a5231	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf2e62096	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf50fc98f	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf7128736	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf79e0249	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf9b95ea8	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfb3bb776	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfc333fff	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x29973b6e	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x2e8fe205	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x4233a393	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x8c3ecb58	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x91221eaf	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xa977475d	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb9e15942	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xdc3685d7	ieee802154_free_hw
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x006a761f	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1ae83614	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x22b583cd	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x26eeeac9	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x28d7e3ea	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2eae0e04	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3c45212b	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x87d582ce	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c2670ab	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa88e4af2	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe21b65a4	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xeb31f665	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xee399b40	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf4830df0	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf601343d	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x3243ee12	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x61527d41	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x00b6ea2c	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x0450ac77	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x3d4d3774	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x95a61b96	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xea6e8e92	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0c7863b5	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x26e2e82c	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x273e381e	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x2e66a4ff	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x42e5f799	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x467bee9c	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x4cb2bf4c	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7e244e3b	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x9ca53e5a	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd03c80f0	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x263c2f3d	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x26ed1c53	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2af97f13	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x54644284	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x585b0761	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5a4044d8	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x718f1632	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7594844a	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7d07c7c5	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x90aedb19	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa0720685	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa5be196b	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xabd94566	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xaf118534	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xba0cdaf9	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc87ac618	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xcafe64f7	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd434dcf1	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdeb62199	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe09f5f44	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xed8d4c04	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x17bcf20c	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1d2a0fc7	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x246f8578	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2cb95f82	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2f495045	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2fab9482	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x37e9d7dd	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x38d83b28	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3a602b6c	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3ee16ba9	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3faa5f6d	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4148ce38	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x51a72e3b	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5b90811a	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5be05a10	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6d3e4ff5	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x74cb6c05	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7d229f78	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x82630cbd	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8eb36d92	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa7da54be	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xacb9637c	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb0b80819	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb1a96309	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb1ac8f28	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xccc53c88	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xcfae2ebb	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xda3b5403	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xda8ba52d	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x061b8e44	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x0ace7274	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x168c0239	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x2baed125	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x38d958f6	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x3b27a076	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x4815af11	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x5e731c1c	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x5e861564	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x62e20783	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x6e0a88fb	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x7241c649	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x735066f2	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x73861cb3	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x7d37e807	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x7f285ee7	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x91696f34	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x95b99120	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xb32bde61	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xb7a62e47	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0xc2a5924c	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xc71c161a	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xdfb207e1	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xe470732a	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0xe619a04e	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x5663ec81	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x70ad9b17	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xdd9a6a60	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xf5fc369f	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x22357371	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x7f6c3a29	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x88fe9bcb	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x8af36499	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x9c3c6b85	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xb5fd78b9	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xc51ac8b1	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xfdacf391	phonet_header_ops
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x04c5e61d	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1a947872	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2085dfc6	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2299a506	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x32c4b35c	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3a421219	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x536ce8bf	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5c0d5479	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6183a279	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6daf6216	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x70c22b15	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x80bc1b8e	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9a68f65f	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb7206efd	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xcb8d4756	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd9047d12	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe33571e8	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/sctp/sctp 0x3908ede0	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x1bc062b4	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x4083f7b8	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x961c104b	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x0c8d8c4c	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x9cdfec70	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xebf7f67d	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x77805082	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x882aa36c	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xcda9046c	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xdb1027dc	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x38f2d5e8	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0x4004405f	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x58e4261c	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x0f8f4a74	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0x40c3e138	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d9e221e	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0e7cdd56	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14a66448	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1569bd5f	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x16db734a	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x18351288	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x18fcc008	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1a38bacb	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1cdbe39d	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2163c625	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x24b1ff98	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x316dd11b	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x31a20429	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3504ae82	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3ae72472	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3b963c29	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3c94632e	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d05e754	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d6495a6	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d6eacc7	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3eeb1ad1	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x42050486	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x469aa0ef	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4a466a7d	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4aa8a89e	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4ea87fc8	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5496fd94	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5807f473	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x59e315bd	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5b47405a	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5c17a407	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5ff8e5f2	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x616385af	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x62ed903a	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x65744711	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6690863b	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ac7d336	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6d80e5d4	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ea70ea3	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x71e87040	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72ad5a4f	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x741e9405	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x781debd1	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79cdb521	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7c8b0990	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d754392	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d8adb5e	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7db026ee	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7dee37a4	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x80ee4649	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x86d22057	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8ca65dc5	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8d7a201b	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x916ac8c4	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x920f6ff4	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93541417	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x95b418d0	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x965cdb9a	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x96c9674b	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x97797e16	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x98638bfb	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9b7c9077	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9cfc3f23	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9fbe1088	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa0926b7f	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa300c4a5	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa9104488	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa91de4f8	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xacff4d7c	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaedde1c0	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1d5f312	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb2def50e	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4d6dd5c	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb95dd3cf	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc108d42f	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc173952e	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc29c1469	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc2d832c3	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc420dc91	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc61f794d	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8c4e796	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7ceb5d3	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xed6d3528	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xef0fd028	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xef6e3a15	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf3d76c59	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf6b9a3e3	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf908ee08	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf96d6fb8	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfa9f811f	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfaff1691	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd70bfd4	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/lib80211 0x160ae605	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x6b5c9179	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0xa0e29ad0	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xad86dd5c	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc38a16a0	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xd6d76d85	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 sound/ac97_bus 0xe37615e7	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0xf4d93a34	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3982e705	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6feb7343	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xa2fb9395	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb1e8987c	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x81092390	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x018f4fc8	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x05a0f3ed	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x07883ec3	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x0b5bc292	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x100c2ffa	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x16975ea3	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x17e64820	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1b78919a	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0x1e132b22	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x282e3cde	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x2c222945	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x38189352	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x38ced0fc	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3f032f02	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x3f06b56f	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x427502ea	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x51f73278	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x6b231de0	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x762115a7	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x86b13699	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x907f3144	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x93a34d1b	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x9c779c0a	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa8681cca	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xa87dd481	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xaad5f612	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0xade42f11	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0xb1299fdb	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb3700124	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0xbbcbc35e	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0xbc3bf992	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xbf4ad1fc	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xc3962cce	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xc3d522a9	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc5a7f953	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0xc87216fc	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xcaee5cc5	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xcd171bdd	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0xd58828eb	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0xda431384	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0xdc4cdd16	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xe44e128a	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0xe6206a8a	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0xed96213f	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xeeeed46b	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0xf4418728	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0xffe685eb	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x300e43bd	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x03bae867	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0ae19b15	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1541820f	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x16b18b46	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x16fc63da	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x19d5cdaf	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3f4d0789	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x41e00500	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4bfd4742	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4d4d4a2a	snd_pcm_release_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 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x59078621	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6529325d	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x706138cd	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x754e2265	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x75870b9a	snd_sgbuf_get_chunk_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x810800da	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8857a9ad	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8b1eb492	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9a25ba2d	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9dec5d7a	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa20d0dbb	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa33d2c66	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa3f75bfd	snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa76caadf	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb55e7a16	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb7f6baa1	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbd835ede	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc179c9a2	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5bd7ff7	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5c5a873	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5de8ddb	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcf7093e9	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd0bb535f	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd21c1a45	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd3f080e3	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd4bd7ea6	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd5e0ae0d	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd7ec8bc4	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe0ca49ff	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xeb4361b9	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf06a5466	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf50c0f12	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf82b7556	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfb42c6ed	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfd8e77f9	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x04b42741	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x060f8918	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x07c8d95b	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0da5bf9b	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2bb8a044	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x41682e2a	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4e1cdb0f	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x56fd2993	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x636ffe62	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x65273bbd	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6bdf66ad	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6d8a2a94	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x98300be7	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x9b8118bb	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa1e7f790	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa26da781	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc9c2b35c	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd7d7e74f	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xebde557d	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfcd61218	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x2b50de6d	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-timer 0x3692f8c0	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x3b59df90	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x45e1f4bf	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0x516e245c	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x5f5d9877	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x649ba352	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x6e14c954	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x94afcc34	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0xa016a427	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0xbcfffb49	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc5ee3ad7	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc89077f4	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0xf1b7a682	snd_timer_resolution
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xe32697ac	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x089a6f67	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5ab076c2	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x66b71464	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x6e96c3e8	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8195098e	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa3f45d65	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xda24323b	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe47c55e2	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe626272b	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x05933c22	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x07b2d27e	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x0ba33cab	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1e86f592	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x58a13a98	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x7d7c3e85	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x8633addc	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xbf8d5a1f	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf2481a04	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x063cd616	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08144e1a	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0f3ed343	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x10638630	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1e0048f9	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1ed8f0de	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3580b6d2	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x37f2ee23	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3b1b2797	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x44ad491e	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4e2cb9bc	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4e9aac14	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x50a92a97	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5acd01b3	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x644e1897	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x719e506e	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7694a14e	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x83505432	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x898c8c95	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8a8ed06a	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa1618122	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa4003e70	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbede7323	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbf133d2c	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc8ab12db	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc926c18c	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xca4d52bd	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd5497f9e	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe3e7b50f	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xea983ce9	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeca3c22b	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf014e205	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x66ab4c33	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xca04bce1	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x14afeb5f	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x30cbc722	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3ac398cf	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3bcef117	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x6b8d1117	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x719cde23	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x93f6fc97	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x9b1b5c99	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x2160cb57	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x3a0b60d6	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x74fe73ed	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xba528af2	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf2ce8ad4	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf8bca700	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x5cfca43a	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xa0497e58	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xb3929879	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xbc0e53d9	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x375bd321	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x72e6a2e1	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x22f08715	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x32a50f80	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x3ce60757	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x3f92da6d	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xa8ed4240	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xc119366f	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x049433dc	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x29917947	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x76a47604	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x7ce03dec	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xd2943b57	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xe831cdc9	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x2762a978	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x37f0279b	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x436fd0e4	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x466b7e0d	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x487e19e1	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x6c30a2b9	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x7aaaabdc	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa2d2bf23	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa9d164fa	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xdd195f0c	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x08d5affd	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x29c092e7	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x37afbc05	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x42c50ec4	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x455e30de	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6625ac3e	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6727fa4c	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7093174e	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9d3c9881	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9df46b13	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa264b323	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa2c53984	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xaca7d784	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb00dc5ea	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xce6e1f58	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe579c3ac	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfad41e42	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/asihpi/snd-asihpi 0x1649ce5a	hpi_send_recv
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x282a28c7	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x320a05c2	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x496caf47	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x4ba45093	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x6eff802e	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xaaf53723	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xc26cda24	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xe0c32293	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xec2c94db	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x36664c8e	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x502b1834	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6d8c8a5d	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0a0fbf75	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1143a1e8	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x19f134a6	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1be8f994	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x22a71941	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x23a988c0	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x37121912	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f1b71d4	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f3068a6	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x651cfaf1	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7f32898e	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7ffa90a1	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x92c77219	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x934a0cf1	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x993080c9	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xaa2f8074	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbfe2267f	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd7af6d99	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd8ac2ba7	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdb1ce1ef	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf37941a1	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x10361540	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x37cbb6b9	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x8b7a412e	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xf6d7f55b	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xf8ece9b0	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x9293dcdd	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xcdeb99b6	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x41afb355	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xd650fe40	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x43c768a3	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xab46f529	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xb3c6ba00	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0xe26acaee	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x1c265d35	sof_tng_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x5e25cf8d	cht_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x81c9b7ec	sof_byt_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8639b9f0	tng_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8cca2008	sof_cht_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xaabb51a4	byt_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0cdd1ba7	hda_codec_i915_exit
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0f87b8cb	hda_codec_jack_wake_enable
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x683137cd	hda_codec_jack_check
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x8efe726f	hda_codec_i915_put
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x9ac5fa8b	hda_codec_i915_get
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xd09fdf3b	hda_codec_i915_init
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xf52a7cef	hda_codec_probe_bus
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x009f95c4	sof_cnl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x5b5be595	apl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x61cf31b7	icl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x703e1716	tgl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x755b752a	sof_apl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xacf31f39	ehl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xf4d48b52	cnl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x33e3451f	intel_ipc_pcm_params
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x6258263e	intel_pcm_close
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xbf025d81	intel_pcm_open
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xc3ecfe1a	intel_ipc_msg_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0458b3a6	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x09b38b44	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0e4cf9f5	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x155ae5d6	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x19c90b83	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1f254bde	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2413439e	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2448dc91	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x26a6e990	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3d92ad2e	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x52f35a81	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x566186a8	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5a0cf49c	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a468eab	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a7e322f	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6bf3ec90	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6c86a1e6	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x70939b75	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x75ad3743	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x78b0ac17	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7be75830	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7e7e795a	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x86d196a9	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa2ce7bba	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa5dedb8f	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xaaa012f7	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xade5b257	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb6a5500a	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb836ec0b	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbcdfc16f	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc25917d0	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc4245425	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc72dc5b3	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcbd74821	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd4fabc91	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xda8e69de	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe14e5fdf	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2959b55	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2e33dd5	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe4b0c313	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe7527bce	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xec6f15ce	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xef858e2b	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf2a3fe8d	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfd19556b	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xff8aebd0	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/xtensa/snd-sof-xtensa-dsp 0xe37b1fbb	sof_xtensa_arch_ops
+EXPORT_SYMBOL	 sound/soundcore 0x1a762953	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x268307f0	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0x30c4622c	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc9197fc2	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xdfc766ee	sound_class
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x25c0bc9a	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x40741dc0	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x85a70fd2	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xa27415ff	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xd844cad0	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xeed2e738	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x293ac667	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x34ac95ae	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x48f920c4	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x7d95566f	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x85659341	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97bb24f2	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9db98086	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xe2935f8c	snd_util_memhdr_free
+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 0x9852ad2a	__snd_usbmidi_create
+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 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x2840aaec	ssd_bm_status
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x368cfd34	ssd_unregister_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x43b8fa08	ssd_get_temperature
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x6521ab53	ssd_reset
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x6dd5c180	ssd_register_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x7418bfc6	ssd_submit_pbio
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xaff98f1d	ssd_set_otprotect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xb0525f70	ssd_get_pciaddr
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xe5a02eb9	ssd_get_label
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xf847cdde	ssd_set_wmode
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xfdc8b559	ssd_get_version
+EXPORT_SYMBOL	 vmlinux 0x0000d0e5	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0015a6e1	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x00271341	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x002da9d2	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x008a7abb	amd_iommu_flush_tlb
+EXPORT_SYMBOL	 vmlinux 0x00a4b044	amd_iommu_deactivate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0x00ac18fd	follow_up
+EXPORT_SYMBOL	 vmlinux 0x00bbc3be	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x00bd5c63	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x00d078ec	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00dba10b	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x00ddb96a	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x00e5c04a	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x00ee25bd	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x00f11160	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x00f73887	skb_put
+EXPORT_SYMBOL	 vmlinux 0x00fb7a32	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x013ee3b8	dst_release
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x014191c1	seq_open
+EXPORT_SYMBOL	 vmlinux 0x014206de	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x014437a6	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x0158aad4	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017a1894	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01a069f8	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x01ae58e5	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x01b2914d	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01c010a6	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x01c21fbd	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x01d7fef8	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x01ea4df0	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x020d3af4	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x0211f72f	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0227e656	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x022ec4f3	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x023d1b90	wrmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x0240c583	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x0276b6fa	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x02995171	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a41486	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02bfff8c	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x02c656b6	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL	 vmlinux 0x02d29a38	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x02e788fb	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f2c585	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x03242148	console_stop
+EXPORT_SYMBOL	 vmlinux 0x03287154	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x03327406	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x03405011	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x03466ac9	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x035a98af	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x036449d1	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036de5d9	dump_page
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x0380847b	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03b0b7ed	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x03b22b52	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x03c7f1dd	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x03da483b	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x03db6c15	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x03db9878	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x03dcff2c	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x03ea5823	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x041c9e4a	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x04757b3e	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x04764487	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04851484	key_link
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x049253fa	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x04959d06	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0x04b5034f	translation_pre_enabled
+EXPORT_SYMBOL	 vmlinux 0x04c62fd7	__memset
+EXPORT_SYMBOL	 vmlinux 0x04c684ef	proc_create
+EXPORT_SYMBOL	 vmlinux 0x04c87759	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04eaddff	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x04f065f4	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x050188f3	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x05034f83	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x050d432e	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x052e4c78	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0544b489	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x054c0aa8	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x05666ae6	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x056bfa86	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x05969d68	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x05aa7863	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05b490ed	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x05d6b000	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x05fbb4fb	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x06052f8d	__memmove
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x0615f0af	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061fa9b4	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x063607cf	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x06362699	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x063ad6ed	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x064512c8	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x0680d609	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x06867079	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x069a770d	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06a97196	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x06b72a93	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06e38f8f	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x06ec8d4a	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x06feec0f	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x07074acc	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x070c6382	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x070edd5f	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x07222982	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x073da36b	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x077aa359	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x07945cf8	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07bbb7f9	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x07be517c	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x07cb3618	amd_iommu_complete_ppr
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x080cccfe	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08303ac5	x86_match_cpu
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0857e5e5	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x0858aa26	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x085bf2fc	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x086a003a	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x08707558	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0x0880e84f	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x089cf897	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x08a5e8b6	km_report
+EXPORT_SYMBOL	 vmlinux 0x08d6d3d7	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x08eaf0bd	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x09082b76	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x0915aa31	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x0926006a	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x0933384a	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x09353033	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x093a219c	ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x093f5c0e	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x0944c43f	node_states
+EXPORT_SYMBOL	 vmlinux 0x095cbf32	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x0968321a	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x097dac99	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x098dcca6	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x099321cd	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09cab6e1	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09df909a	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x09e59158	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a39e34b	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x0a44ac67	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x0a48bbbc	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x0a570007	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x0a59bdb7	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x0a5bc343	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x0a5e72a5	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x0a6182e9	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x0a65e7f3	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x0a76e850	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0abbfa8c	get_super
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0ae8ca12	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0af26983	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x0b00465c	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x0b053cec	native_write_cr4
+EXPORT_SYMBOL	 vmlinux 0x0b108cbc	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b1d80dc	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b2c90a4	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b3628b1	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x0b4cd0a7	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x0b57c908	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b7961da	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x0b7a8281	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x0b7e4028	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x0b97b08a	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0x0b9a4e0a	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x0b9e7f04	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0bb153ed	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x0bb8d8a9	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x0bbf6150	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bc94181	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x0bd77a96	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0be6d647	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x0c08ca96	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c256842	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c278c8c	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0c293a3a	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x0c63964a	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x0c681191	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7ebc52	amd_iommu_domain_enable_v2
+EXPORT_SYMBOL	 vmlinux 0x0c837d8d	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cba7dd8	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0cf1dbd6	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x0cf4c4d6	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x0cfbc447	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d19b223	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x0d3d5d71	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x0d4648b1	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x0d47b489	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x0d47b908	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d63b351	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x0d88232a	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x0d894a72	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x0d8a1958	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x0d8b7ded	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x0d909c54	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x0d981ea6	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x0d9e7c4a	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x0da57a62	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x0dcb311c	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x0dd8b280	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x0ddd278e	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x0e151eed	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e23b37f	alloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x0e589d99	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0ea934c8	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x0eab0dc1	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x0eacf019	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ede9b14	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x0ee4b7bc	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x0f05c7b8	__x86_indirect_thunk_r15
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f0ad876	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x0f15a7f3	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x0f24999c	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x0f2c41f5	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x0f2db8c6	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x0f2e9696	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f67fdf2	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f93e9e7	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd4b628	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x0fd65c1f	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fde0c29	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x0ff80f59	zalloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x10141d95	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x1016d98f	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x101d26fc	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x10219565	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x103b8052	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x1044f08d	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x104a3ab2	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x1063b52e	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1092a8ba	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x10b9dac8	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c912fa	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x10d7310e	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10f5093f	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x1103497f	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11207ccf	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x11369346	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x113c0d16	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x1145e9a8	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x1165ee6f	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x116fd8fc	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1189a5e5	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x11a5adcd	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x11be5585	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x11bf04cb	kern_path
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x11fd308f	amd_iommu_get_v2_domain
+EXPORT_SYMBOL	 vmlinux 0x11fff9af	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x1211f9ad	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x12312acd	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x12387cfe	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x124e6991	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x125c3c5c	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x125da0f1	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x12696c44	vga_switcheroo_unregister_client
+EXPORT_SYMBOL	 vmlinux 0x126dc7a8	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x127731c9	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x12894464	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x129bdcaf	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12beb6a1	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x12c293ae	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x12c570a1	bio_init
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12d628ba	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x12d64dd4	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x12f05b49	dump_align
+EXPORT_SYMBOL	 vmlinux 0x12f2e0e5	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12fb81bc	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x1306ee0e	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x130878f9	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x133f95ff	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x1344d7e6	acpi_enable_gpe
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134ce9ff	ex_handler_clear_fs
+EXPORT_SYMBOL	 vmlinux 0x134ef1d6	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x13507d90	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x1368fd5d	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x1371e61e	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x137f6ca8	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x1389619c	__max_die_per_package
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b38efa	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13dba83c	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x13e4f64e	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0x13ecd86f	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x13f0bd79	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x13f29d6a	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x143f26ab	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x144160aa	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x14439be3	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1472c805	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x1481bfce	kset_register
+EXPORT_SYMBOL	 vmlinux 0x148d336b	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x149af64e	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x14ab03a4	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x14b2b192	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x14b4c997	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x14bc9960	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14d5b946	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x14eaec8a	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x14f3d25c	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150d6f30	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x154fe4c2	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x156448f9	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x156b461c	fget
+EXPORT_SYMBOL	 vmlinux 0x1577ced1	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x158ea373	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x1594be3e	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x15a7e683	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x15b4558a	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15bfd5d8	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x15bfe286	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15cba723	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x15d038b9	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x15f2d64c	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x15f58d45	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16301b34	wrmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x1638d4ff	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x1639c1ec	bio_put
+EXPORT_SYMBOL	 vmlinux 0x1641269c	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x16436cca	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x16531161	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x165403e3	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x165498b8	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x165a9f61	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x165b145c	ex_handler_refcount
+EXPORT_SYMBOL	 vmlinux 0x1664e7c7	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16b33515	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x16b9d42c	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x16bf4900	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e427cc	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x16ea84d2	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x16f53589	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x173b04e9	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x174a3196	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x175e33fb	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x1768485e	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x1769a490	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x17865a8c	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x178befa9	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x178c2a3a	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x17901758	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x179b22d8	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x17a1894a	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x17aad019	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x17b83c8e	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x17be03e2	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x17be68ca	acpi_clear_event
+EXPORT_SYMBOL	 vmlinux 0x17c9827a	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x17fd9210	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x1814282d	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x181518a8	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x18186fc8	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x1822de1a	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x182cfa09	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x1836d5ae	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x184573ad	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x1857cddd	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x18656176	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x187a4ecd	__tracepoint_read_msr
+EXPORT_SYMBOL	 vmlinux 0x1885789b	notify_change
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189b2fc3	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x18a08552	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x18a2a7e0	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x18c5e799	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x18c75b5e	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18e7eaa4	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x19003125	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x190d3261	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x191995a5	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x19220733	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x195db995	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x1967fd03	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x1977c9c3	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x197a9de4	audit_log
+EXPORT_SYMBOL	 vmlinux 0x19846f29	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x19905da5	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x19954193	vga_switcheroo_fini_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c48d49	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x19c81811	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x19d07058	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x19df99b9	acpi_finish_gpe
+EXPORT_SYMBOL	 vmlinux 0x19e5ed44	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x1a105ff4	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x1a118455	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a22f3ea	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x1a2ebc0e	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x1a3050e0	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a466b2f	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1a5ec1f8	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a965c43	mntput
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa99429	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x1abacfa2	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1acb5b77	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x1adf2e90	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x1afbeabf	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b3f59f5	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x1b539f5d	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b5c6d6f	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b6707d2	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b84c80a	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x1b84d188	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1b96d978	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x1b9ba621	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bd7107b	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x1bdcdc6a	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x1be4c425	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x1be8d690	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x1bf3b3e1	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x1c0eeb67	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c29eb78	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x1c2bb10f	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x1c30b155	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x1c332fb1	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c36b9a5	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c6bf9ab	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x1c70815c	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x1c726914	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x1c96657d	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x1c988227	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x1c999ca6	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb61c74	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x1cc6ba20	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x1cd8f47c	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x1ce83cd4	node_data
+EXPORT_SYMBOL	 vmlinux 0x1ceadc93	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d0f548c	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x1d1036ed	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x1d19f77b	physical_mask
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d1b42f8	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d3625a2	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d4ee80d	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x1d4f8773	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x1d5db979	bdget
+EXPORT_SYMBOL	 vmlinux 0x1d613354	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x1d680f02	amd_iommu_flush_page
+EXPORT_SYMBOL	 vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL	 vmlinux 0x1dbaf34c	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x1dc75a2f	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x1dcbd687	__pte2cachemode_tbl
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1df269a9	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x1df3972b	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x1df6c0e0	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x1e038673	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e181407	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e21cd5c	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x1e2d13de	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x1e31b095	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x1e3d1157	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x1e498e5f	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x1e4bb17a	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e76b28b	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x1e7d74e4	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x1e984a02	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1e9f52c7	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb3d4c0	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x1eb734d0	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x1eb922a3	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x1ec54e1b	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x1ec98e8e	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x1ed8b599	__x86_indirect_thunk_r8
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1ef4b1ee	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x1f3c3ba4	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x1f433b7d	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x1f549f57	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x1f561a3f	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x1f76d608	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x1f87d375	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x1f87d787	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x1f87d9b9	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x1fa87007	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x1fb6fd06	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc0cc7c	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd1fa89	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x1fd9efe0	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1feb817b	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x202ab002	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x202c5a53	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x2032e75b	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x2034108c	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x20497526	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x204da2f2	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x2057dd43	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x206713d8	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x206c08fb	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207c01c5	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x2089d728	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x2093a78f	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a743a5	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20ba4f3e	rdmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d42e1f	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20eb28a3	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x20f5226d	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x20ff7141	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x211130c1	alloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x211b72bf	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x21211d95	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x21214b5a	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x21400a3c	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x214e4e20	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x215ced1b	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x2177bd71	acpi_disable_event
+EXPORT_SYMBOL	 vmlinux 0x21806f57	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x2183411c	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x218c6b03	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2197d922	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x21acd216	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c74e03	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x21d1e993	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x21dec6fa	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21ea6167	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x21fcf760	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x224164bf	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x2258441f	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x225eac81	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x22613e95	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x226cd93b	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x22778b0c	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x227b1718	tboot
+EXPORT_SYMBOL	 vmlinux 0x229b0c82	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x22b0f837	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22ba743f	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x22c81b35	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x22de4931	amd_iommu_register_ga_log_notifier
+EXPORT_SYMBOL	 vmlinux 0x22e20f86	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x22f6f8f7	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x230379db	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x2312b175	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x231a4a96	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x232116b9	module_layout
+EXPORT_SYMBOL	 vmlinux 0x232a9caa	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x23411e0f	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x23a5ac1b	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x23a9aba4	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x23b225ef	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x23b270af	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x241b493b	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x243c5920	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246e3262	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2476c2b8	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x247e3882	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x2481b4d2	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x24920733	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x2496b7a6	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x24c298cd	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e1d80b	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x251f275f	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x2524e8be	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x25320b16	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x2549b569	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x254e0093	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x258e7b5f	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x25914ee9	open_exec
+EXPORT_SYMBOL	 vmlinux 0x2595f8d9	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x25a31b41	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0x25a3aaba	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x25a6907f	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x25db1577	do_trace_write_msr
+EXPORT_SYMBOL	 vmlinux 0x25dd8875	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x26006cf2	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x261d7cea	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x26223162	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x26315bde	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263bf2bb	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263ed23b	__x86_indirect_thunk_r12
+EXPORT_SYMBOL	 vmlinux 0x264667d3	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x26754a56	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x2685b971	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26948d96	copy_user_enhanced_fast_string
+EXPORT_SYMBOL	 vmlinux 0x2695ef3a	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x26c0a13d	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x26d0809a	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x26d24cb8	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26ed3b90	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x2713687a	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x2753454b	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x2769fed1	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x27733b8b	d_path
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x279a0933	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x27aaeb29	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27cd1485	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27cecc7f	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x27d18f5d	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x27e38c39	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x27e3e200	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x27e9ce47	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x280d2db2	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281f5af3	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x282cc3e9	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x2832a873	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x2873d349	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287ff8a2	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x288eb46c	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x28b13f43	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x28d567e0	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x28e09af1	iosf_mbi_available
+EXPORT_SYMBOL	 vmlinux 0x2907d4e5	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x292d7ed1	dns_query
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x2938ee34	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x29394df7	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x293ab18b	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x295e46cf	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x295f9e2f	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x29667ca9	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x2989d6c2	simple_link
+EXPORT_SYMBOL	 vmlinux 0x2989d872	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x299d2886	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x29a4049d	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x29aa0ecf	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x29ad8e33	x86_hyper_type
+EXPORT_SYMBOL	 vmlinux 0x29b2859d	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x29bb699d	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x29cb1d56	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x29d0dcd8	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29eb7810	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x2a1319aa	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x2a1809cd	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x2a1cde84	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x2a21d1ef	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x2a2a9095	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a30a45a	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x2a3ea304	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0x2a5852a1	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x2a6283d2	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2aa6500b	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2aebbe01	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x2aefc063	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x2af83411	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x2b36f4ea	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x2b41a95e	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x2b5921cc	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b6debdd	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x2b8a9dae	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x2b93f6f9	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x2b9bed0a	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba2209c	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x2badbd9c	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2c01cd33	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x2c0d6b43	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x2c1c42c5	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c4fd381	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c805acd	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c92deb6	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x2caf63d1	topology_phys_to_logical_die
+EXPORT_SYMBOL	 vmlinux 0x2cb75d36	would_dump
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cdd823a	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2cefaa61	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x2cf6a1bf	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cfff8a7	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x2d051d12	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x2d052156	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d21e756	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x2d244b9e	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x2d27d752	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3d8977	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x2d4653fa	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d4d58f3	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x2d51fc27	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x2d621b39	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x2d75164e	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x2d8e3d87	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2d9fc7fb	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x2da0d0ef	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x2db10a5b	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dbaff2e	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x2dc26faa	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x2dca7955	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0x2ddfcffd	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL	 vmlinux 0x2df0129f	new_inode
+EXPORT_SYMBOL	 vmlinux 0x2dfb7b9b	logfc
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e1a721a	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e2c8a7c	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x2e327f35	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x2e3437d1	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4744f3	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x2e4948d6	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x2e7484fe	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x2e7b7e3e	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x2ea2c95c	__x86_indirect_thunk_rax
+EXPORT_SYMBOL	 vmlinux 0x2ea5cc2e	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x2ea912e9	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x2eaa8816	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ed18966	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x2ed64ee6	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2edfcedc	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2eebeb49	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f0a2ede	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x2f289907	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f48930a	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x2f4b5405	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f783f74	skb_split
+EXPORT_SYMBOL	 vmlinux 0x2f874063	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x2f8ce7b4	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x2fa213d3	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fc8de8f	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x2fc94908	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2feba9f0	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x2fffe3dd	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x303526db	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0x303a9583	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x30731ef5	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x3079704e	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x307ed68f	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x30959972	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b324a8	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x30ba5afc	arp_create
+EXPORT_SYMBOL	 vmlinux 0x30e29a08	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x31181084	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x31367afb	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x3144656f	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x31459c52	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x3148af95	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x3156501a	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x3162a73d	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x316e9915	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x3184b6ef	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x318dd202	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3193009b	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x3194e2e1	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31aa7200	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31cbece7	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x31cff144	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x31d9fe19	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x31e72e8e	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x31e7eb47	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x31f96503	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x31fa52fb	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x31fbbd72	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x3200681a	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0x320c82f5	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x320e418e	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x320f1e9d	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x3210261d	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328bb791	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x329c553f	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32c24e70	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x32ef7443	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x331b7bbc	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x3324ef3b	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x3374957b	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x337c84fa	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x339beab7	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x33a5f4cc	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x33ad0632	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33d2b9a7	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x33d4547d	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x33d45ddc	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f979f3	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x33fd9da4	acpi_get_gpe_device
+EXPORT_SYMBOL	 vmlinux 0x33fdf28c	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x3406cb29	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x342e4daa	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x3441445f	msrs_free
+EXPORT_SYMBOL	 vmlinux 0x3451ec49	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x346d383b	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x346db9cd	sock_pfree
+EXPORT_SYMBOL	 vmlinux 0x34736981	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x3477bac4	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x3489859f	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL	 vmlinux 0x348b2ddd	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x348bc42a	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x348e0f81	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34cfc03e	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f3cadc	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x34f89363	acpi_terminate_debugger
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x3511f09e	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x351bc027	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x35266c71	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354a0058	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x354b4a1e	acpi_ut_trace
+EXPORT_SYMBOL	 vmlinux 0x354e34b1	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x357897e1	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x357ebd61	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x357fde0a	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x3589e9fe	amd_iommu_domain_direct_map
+EXPORT_SYMBOL	 vmlinux 0x358a6d6e	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a4a1c7	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35a9b5f6	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x35c0697b	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x35e8373c	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x35f85493	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x35ffd10a	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x360c3d57	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x363deeaf	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x3640023c	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x36498c51	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x364d896b	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x36521c3a	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3662767d	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x36a57106	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x36acdedc	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x36b22203	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x36b648c8	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x36c11835	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x36ce3ec0	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x373758c0	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3743253e	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3749f989	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x376601ca	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x376ead9b	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377be431	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x378ffd9a	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x379d4395	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b69db4	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37bfe1d5	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x37c3bf2f	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x37c51da9	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x37cf6bd7	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37eef0c0	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x37efeb39	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x37f74190	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x3801d1dc	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x38359339	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x3855bea4	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x385d20a2	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x386e6faa	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x3875d1db	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x3877ed58	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x3879fb88	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x387b07fe	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x38907ca2	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38970e87	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x38a4fbd5	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38cd06a6	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x38d0c281	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x38d839f6	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x38d95edc	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x38e2c028	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x39081193	__max_logical_packages
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x39481eaa	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x3965073b	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x396e9b28	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x398a792f	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x399503db	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x39980b6d	fput
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39a9e1b9	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x39ad24f3	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39c4abd9	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x39e107aa	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x39e3c030	do_trace_read_msr
+EXPORT_SYMBOL	 vmlinux 0x3a00af68	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2d1dfa	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a30f3f6	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x3a3212c0	clk_get
+EXPORT_SYMBOL	 vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL	 vmlinux 0x3a4883a3	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a6a3104	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x3a6efea1	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x3a74b2f1	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x3a889968	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x3a9cbfe7	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x3a9cccb6	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3abce29a	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3adba8a1	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x3aed02fd	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b029f48	acpi_install_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x3b074513	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x3b08bc45	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x3b1917eb	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b2e173c	pid_task
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b3be756	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x3b4686f0	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b727f8c	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x3b8107dc	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b83610f	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x3b8840b4	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b93218e	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x3b97c630	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x3bac6a2c	dev_open
+EXPORT_SYMBOL	 vmlinux 0x3bb001c4	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x3bd98b65	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x3be3782d	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x3be629a7	dqget
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bf08b86	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x3c14a596	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c248d80	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x3c294ad9	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c427f67	cpu_die_map
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c496751	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x3c7a9598	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c99a072	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x3ca5bc10	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x3cbb4e25	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x3cc0aee7	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ceffdf8	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x3cf91fdc	skb_append
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d0a7ad1	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x3d11b5a6	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d24270e	register_console
+EXPORT_SYMBOL	 vmlinux 0x3d42fdbc	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5ae805	proto_register
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d6bf256	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x3d825289	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x3d94a5ff	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x3da171f9	pci_mem_start
+EXPORT_SYMBOL	 vmlinux 0x3dab353e	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dc04a82	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dc69381	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd24090	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x3dd2f40c	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x3dd8f603	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddad542	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x3ddc6c04	x86_bios_cpu_apicid
+EXPORT_SYMBOL	 vmlinux 0x3de1369d	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x3df011b4	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x3df25935	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x3df3ce4d	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x3df3e69c	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dfca881	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0x3e230885	single_release
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2c605d	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x3e47acc3	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x3e5dc5d2	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x3e7a3417	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x3e889c3a	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9b1bf1	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x3ea7e93d	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x3ea8df5b	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x3ec881b6	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f07f888	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x3f09b2b6	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f2937a4	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x3f333757	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x3f393e9e	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x3f3f897c	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f486870	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x3f4b9e29	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f4f9bdd	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x3f54f8fb	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3f593654	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x3f65d14f	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x3f693d3d	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f93e703	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x3faa3b9d	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x3fb8a794	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc4d48a	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x3fd0fb9f	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fd80e64	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x3fdea949	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3fe8759a	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x3fec0328	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x3fef5c97	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x3ff4f6e6	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x3ff5c062	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x3fff255c	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x4034bf8a	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x404d21f1	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x405390da	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x4055a920	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x406be1d9	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a65db1	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40af52f7	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x40b49b5e	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x40b4f2e1	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40c81bcc	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x40c8b5ba	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x4116f303	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x412eaf4f	pci_map_biosrom
+EXPORT_SYMBOL	 vmlinux 0x4142845e	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x41457e8d	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x41506142	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x41855baf	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x4198ca95	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x41c0ba59	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x41c0db86	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x41e0f9c8	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x4210fe29	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x42251bbe	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4234cdf1	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x423bcb71	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424ec06d	vga_switcheroo_init_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x426372c3	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x4287a734	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x428d49e1	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x4291619f	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x42a3a55e	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x42b105db	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42c1caa6	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x42ec6b1d	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x42ef4630	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43145b26	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x43306c85	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x4336e3df	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4384e6f3	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x4386f096	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x438814bb	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x43adb342	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x43b41b12	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x43bd9e92	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x43eb3c61	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43fc0034	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x4400d7cd	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x440796c9	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x440c7e06	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x440db6fc	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x44181f9e	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x441efc32	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x443ba984	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x44414ff2	iosf_mbi_unblock_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x445a81ce	boot_cpu_data
+EXPORT_SYMBOL	 vmlinux 0x447881bd	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x44822910	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x44902cff	acpi_enable_event
+EXPORT_SYMBOL	 vmlinux 0x44946874	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL	 vmlinux 0x44c78983	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44fc36af	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450222b8	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x452f3d21	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x454dc60e	cpu_tlbstate
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x45616a38	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x45790d67	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x4588033c	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x45b767de	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x45c27a1b	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x45c9d3ca	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x45cab31d	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x45cd65a6	file_modified
+EXPORT_SYMBOL	 vmlinux 0x45d246da	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x45d40372	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x45dcdfd1	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x45e1f589	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x45e69e01	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x45e8d7b5	native_write_cr0
+EXPORT_SYMBOL	 vmlinux 0x45f187c1	vga_switcheroo_client_probe_defer
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x460c4f8c	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x461052ad	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x46139bef	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x4629334c	__preempt_count
+EXPORT_SYMBOL	 vmlinux 0x462fa494	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x464079ba	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x46787a1c	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x469a2133	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x469f0b18	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x46af4a0a	dm_io
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46ce3821	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x46d590f4	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x47136a1a	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x4719f511	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x472e05e8	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x4740b3bc	xen_arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x47513e2b	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47764b91	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x4781274e	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47957303	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47b1ef17	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x47bcd2d9	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x47c42a22	cpu_tss_rw
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47d43e91	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x47e43d70	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x4800f799	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x480ef5ce	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x4827f627	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x4828bcb9	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x482b2485	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x48379c3c	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x48476bcb	intel_gtt_insert_page
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4854db60	finish_open
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x485bc376	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x48604c20	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x487802ae	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x487f334c	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x488595ef	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48ac12f1	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48cd5806	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x48d50e79	amd_iommu_register_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x48d8fa18	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x48dcdf42	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x48e29d70	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x48fc938d	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493ef8ef	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x4943f200	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x4950a450	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x4951b442	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x495e378d	__pv_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x49652dfa	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x496698d9	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x497bb65e	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x4983296e	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x498ca1fa	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49b11e08	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b41188	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49d1d562	input_event
+EXPORT_SYMBOL	 vmlinux 0x4a0688b9	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x4a178980	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x4a1b8fa2	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4a21beab	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x4a27edd2	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x4a30db5a	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x4a3b5e69	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a4d71a2	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x4a599df7	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9b7ac7	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abd7a6c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x4ad05ada	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4aef5bf5	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b044f7e	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b0f0750	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x4b23821c	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b822a6e	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x4b9f0a99	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4baa38eb	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bafc718	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x4bbfa8d3	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4bd1122e	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x4bdc2e6b	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x4bdc3f38	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0x4bdd5b9e	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x4be7569d	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x4be80e67	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x4be9a671	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf57e1e	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c0fbd45	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x4c1ac046	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c457457	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x4c4ecfb8	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x4c545ec7	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x4c5e8205	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x4c6b618a	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x4c756cd8	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x4c7c4c34	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x4c8b4a06	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x4c9d28b0	phys_base
+EXPORT_SYMBOL	 vmlinux 0x4ca634f2	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc70509	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x4cd3036f	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x4cd5bc5e	rdmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0x4cdf5dd4	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x4ce76193	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d42b98f	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d791b8f	eisa_bus_type
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da099e2	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x4dc291ba	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dd1092a	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x4dde2e60	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x4de06364	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4dee386a	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e0cb321	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x4e0ecf27	current_task
+EXPORT_SYMBOL	 vmlinux 0x4e13a487	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4e197c3f	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e27406b	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e4980cf	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e777713	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x4e92aeb4	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x4e97cfad	dqput
+EXPORT_SYMBOL	 vmlinux 0x4e9ea227	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ec73b49	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x4ef7b0da	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x4f03a9c7	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x4f0fa146	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f23334b	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f593b03	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x4f9360f4	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x4f9c2956	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fc94737	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x4fcc8ad2	ex_handler_uaccess
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x50472da3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x50607954	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x507f72ed	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x508e24fa	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x50926a69	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x50942603	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x509ef6b5	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50ad5f85	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x50ae7a6d	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d2465e	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x50d68377	arch_phys_wc_del
+EXPORT_SYMBOL	 vmlinux 0x50e3d332	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x50f6d484	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x51123172	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x51189a02	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x5137ec9a	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x5158796a	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x51a63811	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x51bd3a78	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51d9d534	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x51df0600	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x52079208	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x521bfe8d	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x5244793a	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x52449fe6	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x526a53a6	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5279bba6	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52a70f93	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x52b3deff	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x52cf1d2c	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52d96ba9	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x52e0b227	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x52e0fa26	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52f70930	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x52fd3392	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x52fed693	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x53095209	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL	 vmlinux 0x5344fae3	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x53569707	this_cpu_off
+EXPORT_SYMBOL	 vmlinux 0x535ad43b	eisa_driver_register
+EXPORT_SYMBOL	 vmlinux 0x537baf43	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x53a38fc2	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x53a82971	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x53b35688	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53cc12f8	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x53cd3849	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x53d68481	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x53e70419	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x541384f8	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x54175c5f	acpi_read_bit_register
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x542688ff	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x542d0d21	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x5435e704	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x54447ddf	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x544783e9	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x545fbcee	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x546f5d3e	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x5478d720	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x547d4a74	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x547e3344	acpi_disable
+EXPORT_SYMBOL	 vmlinux 0x548c1d8d	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x54a073b9	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54ab82a9	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x54aec519	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x54c16594	amd_iommu_pc_set_reg
+EXPORT_SYMBOL	 vmlinux 0x54d7b05a	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x54e1bdd0	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x5504bc54	seq_write
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550763eb	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x55115817	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x5515c5a4	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x55448887	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55500e6e	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0x556201d9	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x556422b3	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556cca46	x86_apple_machine
+EXPORT_SYMBOL	 vmlinux 0x556ec9d7	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x5572845b	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x55745309	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55b7102f	vga_switcheroo_register_audio_client
+EXPORT_SYMBOL	 vmlinux 0x55cbfb3c	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55f1e0f2	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x55f6be98	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x55f95e07	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x55facd0a	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x55fe5526	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x5601e1f9	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x560db355	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568391bf	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x56873367	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x569fa195	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x56a2af2f	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x56ac86df	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x56b454cd	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d29c5e	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x56daf042	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x56e8b42a	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x56e8bd3f	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x571b1491	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x571f0d20	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x57245fc0	dst_init
+EXPORT_SYMBOL	 vmlinux 0x57459cde	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x576783a6	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x577332cc	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x577839bb	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x57a83d62	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57bfd615	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x57e368c0	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x5827e69d	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x582896fd	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5835e07e	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x586931c2	eisa_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x587f22d7	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5890952a	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58c21e2c	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x59079c23	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x591119fc	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x592df4d7	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x593717d2	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x593c1bac	__x86_indirect_thunk_rbx
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x5962526b	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x597f54c0	native_restore_fl
+EXPORT_SYMBOL	 vmlinux 0x59959055	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x5999b2a2	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a266da	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59a7de1c	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59bac7a8	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x59c0860b	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x59c564d2	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x59d546ba	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x59f85a5d	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a13013d	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a2bb5e2	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0x5a2ee8c5	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x5a3baef6	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5a2271	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5a629faa	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x5a64c989	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a941c76	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x5a9bbf2d	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x5a9edeff	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x5aacfbde	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x5aafbfe3	may_umount
+EXPORT_SYMBOL	 vmlinux 0x5abdc513	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x5ac30d51	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x5ad17964	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x5af5fd78	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x5b2623c7	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b6a710b	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x5b6f9e66	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x5b82a4d8	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x5b883768	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x5b909f31	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x5b928486	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x5b9405f1	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x5ba6540b	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x5bacf5aa	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x5bc33229	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x5bc69e09	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x5bdb4930	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c29a3b5	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x5c336086	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x5c38c8e6	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x5c40703b	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x5c4232d3	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c492e82	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x5c4ffef2	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x5c595376	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x5c6a385b	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x5c799d61	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x5c7a78de	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x5c922e07	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x5c979fda	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x5cbe7465	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x5cdf9a56	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x5ce2cb39	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x5ce618e9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cf8ca36	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5d0584fb	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x5d08c266	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x5d101db4	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x5d135d94	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x5d3b9e29	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d64e2e2	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d84982e	find_vma
+EXPORT_SYMBOL	 vmlinux 0x5d8cc9cb	legacy_pic
+EXPORT_SYMBOL	 vmlinux 0x5da38f85	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x5dd37da8	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x5dda5775	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x5de2f866	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e40a765	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x5e58e702	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e913b51	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed246e6	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ef5ceed	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f06bed5	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f34ca3b	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x5f3606cf	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5f3ab67a	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x5f43cd44	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x5f50ce30	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x5f5605dc	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x5f56663b	rdmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f6c44c6	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x5f797aed	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x5f7d55dc	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5fa5a906	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x5faa652c	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x5fadec82	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x5fb55c0f	set_pages_array_uc
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fe8f65c	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60211195	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6045e86a	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x605db77c	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x6061c444	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x6066d9a1	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x6078c8c4	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x60836991	bdevname
+EXPORT_SYMBOL	 vmlinux 0x6085601b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x60863f6b	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60abaf7a	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60c2bbae	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x60d2298f	set_pages_array_wb
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60da589a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x60e626ca	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x60fe2eee	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0x61008ecf	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x6106cf76	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x61235e44	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x6124857e	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x612c1360	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x614c33b9	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x61670b93	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x616cd62c	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x616e9a56	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x6170c986	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x6192e486	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61abaf3f	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x61b22e35	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x61b5da33	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61d8c7ad	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61f19fd3	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x61fea98a	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x6209da4c	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x621c113d	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6226b9fa	machine_to_phys_mapping
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x622e41c2	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x6272d85b	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x6299f16c	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x62b5c34f	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62d27a06	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x62d763ea	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x62dc9060	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x62deed3f	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x62f316e1	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x62fd0331	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x63122643	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x6313425d	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x6326407c	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x63307587	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x636257f7	get_ibs_caps
+EXPORT_SYMBOL	 vmlinux 0x63628081	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x636649df	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x6391790f	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x63946461	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x63a53702	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d458d6	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63e48fcc	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63fe4cfd	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64119f7e	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x642bca72	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x64369f76	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6457b190	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x6460da9f	d_drop
+EXPORT_SYMBOL	 vmlinux 0x64694666	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b390fd	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x64b7d25e	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64d35000	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x652d3cc5	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6568a656	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x658fd837	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x65973b6d	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65b992ac	xen_alloc_p2m_entry
+EXPORT_SYMBOL	 vmlinux 0x65bb3a9d	pps_event
+EXPORT_SYMBOL	 vmlinux 0x65c32dd0	arp_send
+EXPORT_SYMBOL	 vmlinux 0x65c81980	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d36b27	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x65d39a94	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65da3658	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x65eaa68a	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x663182c9	acpi_get_gpe_status
+EXPORT_SYMBOL	 vmlinux 0x66389da3	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x665796ce	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6673ead4	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66be96a5	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66f69032	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x67041f19	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x671e9dcd	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x67233a78	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x674249c5	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x674c2f88	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x676f334d	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6770b674	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x67812b81	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x67892b59	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x67a6e679	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67cd445e	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x67f1e87b	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x67f82043	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x67f93b4a	amd_iommu_domain_set_gcr3
+EXPORT_SYMBOL	 vmlinux 0x681184d9	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x68383186	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x684f5e87	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x6851664e	wrmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x686127a9	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x686c61d3	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x68738b71	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68813ab6	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x68872c4f	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68ad87ba	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x68af3804	amd_iommu_pc_get_reg
+EXPORT_SYMBOL	 vmlinux 0x68b4a2d3	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x68df5e6a	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x68f0b57b	dev_load
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x6932ed41	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x6939842d	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x693e4890	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x695ec85b	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x69771225	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x697ae228	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL	 vmlinux 0x69acdf38	memcpy
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69ad6dff	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x69b55d40	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x69c2c00c	sock_release
+EXPORT_SYMBOL	 vmlinux 0x69d1f337	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x69d3392b	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a16d85f	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x6a1b274d	padata_start
+EXPORT_SYMBOL	 vmlinux 0x6a261b78	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x6a3939b9	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x6a394545	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x6a3f82f8	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x6a44307c	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x6a539370	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x6a57de95	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6228eb	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x6a6fc7d6	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x6a7dd1be	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x6a95f2d7	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6acb1755	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x6ad7c2d2	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b0d43b6	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x6b26e48e	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b31bbb5	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x6b34d03d	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x6b3a38c5	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b7b5416	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x6b80ba14	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x6b8135b4	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0x6b8283be	convert_art_to_tsc
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6ba446da	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bc624cf	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x6bc87529	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x6bd4a48c	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x6bdb74f6	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6be8358b	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x6beb0299	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x6c1be67e	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c26d4d3	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c559bb0	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c6b92be	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x6c6e8f73	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x6c727487	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cb5b087	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x6cb9ebfc	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x6cbda4a9	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x6cd9b388	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x6cdc595d	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x6ce07d6c	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x6ce4fb57	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x6ce6c94e	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x6cee2f98	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0x6ceea877	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x6cf2821e	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x6cf57f97	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d123b5f	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x6d215909	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d32c9f3	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d42b067	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d71a017	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x6d7abe02	first_ec
+EXPORT_SYMBOL	 vmlinux 0x6d8fbe83	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x6da74397	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x6db30d36	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x6db8ae70	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x6dbb80bc	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x6dbcad8a	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6dfc87c1	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x6dfe3f38	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e280b50	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e3108b3	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x6e3cef11	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x6e40dffd	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e6076c3	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x6e6c604b	update_region
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e746021	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x6e76e9fb	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x6e78abb9	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x6e9b7bf7	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea7575d	acpi_dispatch_gpe
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ed063fd	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x6ed346de	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6ed5abf3	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee66b49	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x6eecda0d	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x6f0442ec	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x6f0ada62	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f448d84	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x6f66377f	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f7cf39c	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x6f8694e9	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f94acf2	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x6f9a4860	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fc18735	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x6fc5fc91	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x6fca9a24	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6ff9e819	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70104f46	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x7040fff9	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0x704aaddf	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x704ecdc4	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x707f41bc	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x709342d9	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70b1e285	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x70cd19be	d_move
+EXPORT_SYMBOL	 vmlinux 0x70ef2761	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x70ef457c	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x70f90b29	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x71062703	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x71253037	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x714d98dd	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x714fe080	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717cde5c	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x719d584b	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x71a18ba7	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a99a11	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x71bbec21	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x71d1a9d7	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x71d8638c	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x7222a067	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x723e93ce	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72598ce9	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x726e72c7	f_setown
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x727821b3	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x727a22d1	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x727da262	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x729b0acc	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x72a78949	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL	 vmlinux 0x72ac3d6f	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0x72b144ea	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72cdd7b9	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x72d4f4f8	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x72de4573	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x72de4746	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x72e898a3	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f67319	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x73254316	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x733f2e87	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x734202b9	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL	 vmlinux 0x735bc48e	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x73675222	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x7367a3cb	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x73701812	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73b06e8c	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x73dd54eb	irq_fpu_usable
+EXPORT_SYMBOL	 vmlinux 0x73ed2616	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x73efcce6	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0x740b0ae7	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742ca5c4	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x74347155	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x74749ea8	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x7481a2de	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74a74114	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74dc8cc8	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x74df1b4a	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f11a3a	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x74f4dc3e	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x74f638ba	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x75170705	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x75207224	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x753ce1a5	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x754d539c	strlen
+EXPORT_SYMBOL	 vmlinux 0x7551436b	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x75666c7b	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x75893971	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x75943e25	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75c59bb6	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d1495d	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75da5671	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x75dc25fc	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x75e92255	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x75eb1486	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x75ecb8b4	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x75f7a5de	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x75ffb26f	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x761f95d5	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x763bad92	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x76422b6b	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x76727a34	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x767dce4b	acpi_disable_all_gpes
+EXPORT_SYMBOL	 vmlinux 0x767ddb02	set_memory_wc
+EXPORT_SYMBOL	 vmlinux 0x7680f0ac	md_error
+EXPORT_SYMBOL	 vmlinux 0x7681a0c2	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x768dfbe7	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76fb08a7	amd_iommu_unregister_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x770bc9eb	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x77344c39	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773d4c94	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x774d14b0	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x77526495	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x77608a16	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x77644c92	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x7765336c	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x776ac226	vga_switcheroo_register_client
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77b0fed9	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c7ae18	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x77d02093	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0x77e50747	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f3d149	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780a0dc9	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x780fdfd1	intel_enable_gtt
+EXPORT_SYMBOL	 vmlinux 0x7812c047	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x78259094	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x78367a5d	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x785f746e	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x7860e802	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788f3e9f	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x789902aa	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78bc19e4	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x78bc927b	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x78c5308c	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x78dc15aa	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x78de6586	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x78dea642	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e5c41f	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x78f98f04	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x790664cb	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x79152375	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x791b74dd	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x791bfca1	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0x7923610f	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x792725c6	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x792d352b	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x7942ea96	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x795a7db0	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x797f7c65	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79ab39ae	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x79d603a6	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x79df9633	ioremap_encrypted
+EXPORT_SYMBOL	 vmlinux 0x79e23f73	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x79ea6659	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a217f5d	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x7a23d328	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x7a27fa83	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a2c511f	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0x7a30412c	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a579410	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x7a6072de	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x7a78eb48	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x7a82cc82	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x7a852685	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x7a88da87	iosf_mbi_write
+EXPORT_SYMBOL	 vmlinux 0x7a8df75d	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x7a8f6105	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa03a50	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad14da6	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ae59e28	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x7aec9089	clear_user
+EXPORT_SYMBOL	 vmlinux 0x7af5753b	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x7aff77a3	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b195529	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x7b1bb006	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x7b27b13d	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b5fe2e6	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x7b64987c	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x7b6c5529	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x7b77cd6a	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x7b7daa34	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bba91f2	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd2476	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x7bbde69d	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x7bbfa973	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x7bfacc7f	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x7c0e0095	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c1d44ed	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x7c251bdc	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x7c298ef3	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x7c33bd17	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x7c36aa2b	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c473b2b	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x7c867674	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x7c93fc21	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7c9f23c5	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x7cade6a7	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc2df15	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x7ccd5e20	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x7cd8d75e	page_offset_base
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce6b157	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d19acb9	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x7d26a5e9	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x7d284af0	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x7d43e6eb	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d51a1f3	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x7d5cd489	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d628444	memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x7d70a196	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x7d764fab	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x7d7cb4c8	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x7d828701	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x7d92e11d	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x7dac0a9e	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dc31a97	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x7dcd775d	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x7dd26f41	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x7dd3b66e	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0a5c30	ex_handler_ext
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e32fc34	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x7e526bfa	__x86_indirect_thunk_r10
+EXPORT_SYMBOL	 vmlinux 0x7e5b2df2	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x7e655f65	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x7e6aa12d	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x7e7bb2a8	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x7e7bcf26	acpi_map_cpu
+EXPORT_SYMBOL	 vmlinux 0x7ea527ee	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ecc38f5	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x7ecc7627	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x7eed1137	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x7f01465a	padata_free
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f0657ca	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x7f0d5cf5	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x7f1236a3	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x7f227d38	dev_close
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f454b03	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f6f405c	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x7f79d01e	ihold
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f802689	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x7fa4842c	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x7fb4af01	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x7fdcab82	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe3b389	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x7feb2367	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x7ff0717f	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x7ffd0a42	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x801f7744	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x8020bd22	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x80420136	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x804af87c	wrmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x8052d750	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x807212ae	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x8088c850	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x809667a7	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a38cf7	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x80a6c9fa	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80bee344	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80cdc76b	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x80d15215	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x81008cc4	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x810c3fad	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x810d1541	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x810d7445	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8113162c	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x811f821a	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x81414794	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815e1081	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x81616240	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x818c05cd	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x8194a527	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81c5b053	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x81cb1bad	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e07752	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81e9866e	ilookup
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x822b90cd	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x822c9c2a	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x823683c8	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x823b6167	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x823c19ea	iosf_mbi_unregister_pmic_bus_access_notifier_unlocked
+EXPORT_SYMBOL	 vmlinux 0x823fb934	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x8249208f	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x8292f177	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x829545a3	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x82adcdb1	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x82b4967b	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x82b5556e	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x82bd4554	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x82bd8f99	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82d5f6d1	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x82ee5732	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x8312aa47	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x831c7b5d	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x83216779	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x83424675	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x8348509c	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x8368b6ae	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x83791c4a	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x837bf581	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x8389e09f	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x839819ce	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83b1295d	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x83b9784a	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83c7c073	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x840faa35	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8421d1f0	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x8428b586	put_disk
+EXPORT_SYMBOL	 vmlinux 0x8454474d	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x845d7d11	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x84626c18	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x8469b620	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x847a1ccc	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x84815f3e	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x848a6dfa	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x848a70c3	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x84a6512c	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x84a65461	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84d6b7c0	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x84df550e	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x84e944b3	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x84e9bc0e	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x85173bfe	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x8538e7a9	intel_gmch_probe
+EXPORT_SYMBOL	 vmlinux 0x8545c73f	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8571f89e	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x858ac0f7	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x859eb1c3	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bbd1f1	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c18288	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x85c4b83f	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e30649	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x860ea932	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x861477ad	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x862463ed	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x862f463c	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863e4a83	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x86402548	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x864754ea	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865446e0	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x8656f0d0	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x86589d64	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86b6d68b	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x86b78968	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x86c3154e	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x86c4cf2a	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x86c7272b	iosf_mbi_read
+EXPORT_SYMBOL	 vmlinux 0x86d1348e	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x86ed0c40	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x86f27420	iosf_mbi_block_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x87218233	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x8744155c	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x874fcd1b	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x876429b2	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x8766e9c5	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x876ae2ae	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x878417cb	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x8785cc7c	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x87906904	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87e221b2	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x881e90d4	get_cpu_entry_area
+EXPORT_SYMBOL	 vmlinux 0x8824c114	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x8834b3c9	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x88359056	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x8846f6cb	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x8848086a	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x886ec450	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88825aa1	d_add
+EXPORT_SYMBOL	 vmlinux 0x8882e96c	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x8888befe	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88ba061e	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x88c14c9b	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x88d06ef6	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x88d36da5	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88fa1455	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x890b2344	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x8935cbb8	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x89365b39	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x89508fde	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x89515567	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x89590af7	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x8981b29f	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x89968857	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x8999be96	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x89abd140	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x89ac3ae7	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x89ac778d	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89bef060	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x89cf1a16	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x89e3da32	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x89e63a80	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x89fa70c8	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x8a03b22a	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x8a0ae4f6	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x8a0cd509	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x8a152148	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a207eb6	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x8a3482b8	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x8a35b432	sme_me_mask
+EXPORT_SYMBOL	 vmlinux 0x8a42ce27	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x8a4432c0	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4ef283	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x8a55e455	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x8a657025	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c7139	acpi_mask_gpe
+EXPORT_SYMBOL	 vmlinux 0x8a79564a	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a97056c	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa02a23	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x8ab218d8	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x8abc89b6	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8add347e	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x8af6a4f0	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b07fa34	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x8b1f721f	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x8b24cfae	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x8b250247	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x8b274a30	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b853415	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b966b63	sn_rtc_cycles_per_second
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba84245	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x8bcd973c	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x8bd577d0	acpi_ut_exit
+EXPORT_SYMBOL	 vmlinux 0x8bdad6ca	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x8bdd2dc6	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x8be3a0db	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x8be6e309	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x8be75098	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x8bf00fd4	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x8c0239ce	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c28ccb5	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c73213f	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x8c745ee2	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x8c9db930	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8cdb44c5	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x8ce30f62	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x8ce67a53	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x8ceccc3e	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x8cf3b082	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x8cf5684b	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x8cf97501	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x8cfe5b32	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x8d120ad8	iunique
+EXPORT_SYMBOL	 vmlinux 0x8d1609cf	console_start
+EXPORT_SYMBOL	 vmlinux 0x8d43c5dd	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5aea08	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x8d5f17a9	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d7633f3	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x8d905d7c	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8dab7380	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x8db22efe	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0x8dc0e613	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x8dd8f561	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8ddfba4e	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x8df7e8d6	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfcd287	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x8dfd340d	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x8e007c4b	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x8e173ff6	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e276d3a	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e2d1236	ex_handler_wrmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0x8e494f00	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8e5f55f8	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e663d0f	zalloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x8e77c646	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x8e7d0a85	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x8e8a05fc	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x8e8e4f19	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x8ea1c2ed	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x8eac8bb0	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x8ebe81d6	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x8ec58260	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x8ef3bd84	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f11acde	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL	 vmlinux 0x8f30c0d5	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f375787	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f38d383	ex_handler_default
+EXPORT_SYMBOL	 vmlinux 0x8f503cab	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x8f596b91	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x8f60a207	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8f80bf11	acpi_install_gpe_raw_handler
+EXPORT_SYMBOL	 vmlinux 0x8f85ea72	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fca784a	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x8fe26235	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x8fe68e90	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ffa4480	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x9020766a	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x90224c0e	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x9023763e	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x905bf098	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x906168b2	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x909ccea7	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x90a966a3	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x90e12c3c	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x90e42dc7	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x90e849d8	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x90fab798	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0x9110970e	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x91147bc7	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x915cc385	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9176145b	acpi_install_global_event_handler
+EXPORT_SYMBOL	 vmlinux 0x918441b6	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91c6fa00	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x921c88bd	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x924407f6	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9256db4c	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x927dfca9	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x92810327	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x92822514	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x92852990	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x929a0a46	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x92a51e56	acpi_debug_print_raw
+EXPORT_SYMBOL	 vmlinux 0x92a91db2	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x92ad4e30	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92df844b	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x92fca040	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930a814f	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x931c13f6	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x931c478f	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x93398d27	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x933a33ed	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x933e26f1	d_delete
+EXPORT_SYMBOL	 vmlinux 0x93473cb6	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x935beedb	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x9385243c	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x93875ee0	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x93a09235	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93aef384	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c2c11f	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x93d5087f	filp_close
+EXPORT_SYMBOL	 vmlinux 0x93dc548d	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x93f4dfd4	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x94077c1d	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x944bc964	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x94581ee4	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x945bef01	read_code
+EXPORT_SYMBOL	 vmlinux 0x94693a69	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x947f53af	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x94838167	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94a97e6f	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x94ab6a27	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c9f830	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x94eec9fd	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x94f7968c	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x94fa1b8d	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x950bb2d8	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x950e7d36	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x95144032	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x951d3167	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x952c51e7	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x9549f89c	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x9574db3e	tso_start
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95a15098	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95c45173	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95ec914d	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x95f502b2	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x961051e4	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x961981e4	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x9625695d	acpi_install_gpe_block
+EXPORT_SYMBOL	 vmlinux 0x9633e48c	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x964ed206	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x965d71de	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x968cb378	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x9696c16f	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x96aa52aa	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c85da4	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96ce9001	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96eab78b	iosf_mbi_modify
+EXPORT_SYMBOL	 vmlinux 0x96ed92ea	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x9710bc88	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9720c5e2	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x97328d22	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x97345062	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x973eeb17	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x9747d03b	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x974fa797	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x9754b910	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x9754c002	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x975b1a85	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x97651e6c	vmemmap_base
+EXPORT_SYMBOL	 vmlinux 0x976777f1	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x978dfca1	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x97928ed5	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x9793afa8	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x979c7577	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97ad4390	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b44627	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x97b62ad5	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c3ee79	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x97cf187c	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x98166d61	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x983a4d3a	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9856ea81	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x9867c73d	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x9875a8e1	single_open
+EXPORT_SYMBOL	 vmlinux 0x98a09ab9	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x98b41316	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98e4384f	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x992d4475	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x9941b65f	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9968327e	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x99745c63	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x997e7588	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x99893768	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x9995845c	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99c84f41	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x99d33796	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99db8eb8	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x99e341ec	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL	 vmlinux 0x99f38db1	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x9a07e5a6	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x9a093c9e	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a188e82	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a268b41	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x9a3a1fba	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x9a483c04	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x9a541fee	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a59e378	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9a5dc324	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x9a679cda	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a94172e	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x9a94d0e2	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x9a9915f6	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x9aa94788	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9aafcc58	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x9ab38252	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x9ac2a173	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x9ad7a582	iosf_mbi_assert_punit_acquired
+EXPORT_SYMBOL	 vmlinux 0x9ae0e12f	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x9aeecba4	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x9af0b209	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x9af8f917	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x9afac931	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x9b0d29b4	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x9b183907	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x9b2055e5	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b30e22e	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b47b041	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b5a9b2a	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x9b5de9ee	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b7d484c	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x9b8245b4	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x9bb3d752	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x9bc05c2e	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x9bc1e761	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x9bc9cb8d	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x9bdbbc1f	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x9bed15f3	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x9bef6144	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x9bf826ba	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x9c04bbcb	simple_open
+EXPORT_SYMBOL	 vmlinux 0x9c0c8093	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c24df04	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x9c255271	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x9c324810	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x9c39d9c8	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9c3d411b	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x9c6331e8	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x9c752e51	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9ca13fad	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cae315d	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x9cb986f2	vmalloc_base
+EXPORT_SYMBOL	 vmlinux 0x9cc9395a	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cd33b6c	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x9cd4c902	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce03a83	pv_ops
+EXPORT_SYMBOL	 vmlinux 0x9ceaa8c6	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x9d099a39	acpi_remove_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d11362c	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x9d1dca59	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x9d267a80	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x9d4355fb	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x9d5b7a14	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d70541a	native_save_fl
+EXPORT_SYMBOL	 vmlinux 0x9d8b9e78	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x9d8ec123	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9d977f14	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x9dab94c0	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x9dbb93ba	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x9dbe46d3	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x9dc49a08	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x9dc690f8	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x9decc59d	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x9df45bc8	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x9df92be2	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x9e00d3bb	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x9e098064	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0f58f3	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x9e0f6688	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e2cb835	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x9e4e1ec7	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e64fbfe	rtc_cmos_read
+EXPORT_SYMBOL	 vmlinux 0x9e683f75	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x9e75a152	build_skb
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e8221dc	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x9e8a628f	amd_iommu_rlookup_table
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9ea701d3	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9eb94193	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed30ee6	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9f130cd3	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x9f24cfce	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x9f3d2fa6	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x9f422b81	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4aa19d	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f56a857	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x9f6878a9	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x9f6aaaaf	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x9f8fe2a6	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9f987b1a	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fcf5960	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x9fd09383	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x9fd84b29	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feb1c89	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x9feb8abb	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x9fede63e	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff612e9	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa002f47e	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa02095a2	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xa023dfb9	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa031feec	nvm_register
+EXPORT_SYMBOL	 vmlinux 0xa0328fc4	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xa03ad1f7	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xa03b55cd	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xa03ec112	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa044925f	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0xa047364b	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa048011b	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa04a8ab9	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xa0523efa	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa05cffc7	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xa0716e8c	__module_get
+EXPORT_SYMBOL	 vmlinux 0xa076126f	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa084f79f	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xa08f4229	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b4f819	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f396ff	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xa0f493d9	efi
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10cdacd	simple_rename
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1359e08	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xa13b5951	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xa142b800	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xa150c75e	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa174bef2	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xa17571d7	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xa17f36af	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xa18d5b6e	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa19da1e8	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0xa1a10db7	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xa1a5c41c	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0xa1b0901b	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xa1b89ba1	phy_attach
+EXPORT_SYMBOL	 vmlinux 0xa1bedd72	amd_iommu_pc_get_max_counters
+EXPORT_SYMBOL	 vmlinux 0xa1c58ca8	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d5893f	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0xa1d6d169	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xa1deada1	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1eff284	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xa1f9a134	__x86_indirect_thunk_rsi
+EXPORT_SYMBOL	 vmlinux 0xa1fa45ec	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xa2004847	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa211d22b	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa212af3b	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xa224c808	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa236cce2	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xa23ca8a8	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xa240f663	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xa24a570a	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xa24b5791	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa25e7166	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa26bc122	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xa28461aa	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xa28b9224	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2a94a3c	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xa2b269e0	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xa2b3e544	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xa2cd4363	follow_down
+EXPORT_SYMBOL	 vmlinux 0xa2d13bc4	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xa2fac413	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xa2fbc622	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0xa30c5b0d	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xa334fbc4	skb_pull
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa3473dc3	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xa38f21b9	amd_iommu_update_ga
+EXPORT_SYMBOL	 vmlinux 0xa398a257	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0xa3a8af2b	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xa3c51d0b	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa3cfa452	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0xa3d13671	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xa3d9ace9	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL	 vmlinux 0xa3e4f871	acpi_initialize_debugger
+EXPORT_SYMBOL	 vmlinux 0xa3eccda2	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xa3fb86ef	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4191c0b	memset_io
+EXPORT_SYMBOL	 vmlinux 0xa4271a43	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xa43f3d4d	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0xa44fdd84	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0xa45786aa	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xa46a5eae	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0xa46cf0ea	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xa47bc098	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xa487c46f	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0xa4893239	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa4b6359d	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4e60815	genl_notify
+EXPORT_SYMBOL	 vmlinux 0xa4faf62a	acpi_disable_gpe
+EXPORT_SYMBOL	 vmlinux 0xa5056338	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa507125e	acpi_clear_gpe
+EXPORT_SYMBOL	 vmlinux 0xa50bcff0	x86_cpu_to_apicid
+EXPORT_SYMBOL	 vmlinux 0xa50dfa2f	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xa514a2e1	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xa51c4bb6	vga_switcheroo_register_handler
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5788d0a	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0xa57a8e85	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xa57def27	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa59dae9e	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xa5a15e3e	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5b40585	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xa5c94c17	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xa5cb64fd	dma_ops
+EXPORT_SYMBOL	 vmlinux 0xa5cd3bb5	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xa5d3a208	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xa5e4cd4f	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xa5e55057	rdmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xa5e6b52f	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xa5eaf882	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61f3296	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xa621edaf	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0xa657b798	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xa6722b55	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xa67369fa	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6825423	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa685d3fc	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xa68e71e1	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xa696d4ad	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xa69b0141	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xa69b728f	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa6ac4589	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0xa6b14d34	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xa6b94584	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xa6c448a6	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xa6dca5f6	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0xa6df0211	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xa6f9e8cb	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xa6fec7ab	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xa708436d	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xa70e0e3f	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xa70f3dff	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0xa72cfb7d	ioremap_wt
+EXPORT_SYMBOL	 vmlinux 0xa7452e16	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa76b2ff5	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa78a032d	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xa78d758c	vga_get
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7a280f5	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xa7c79ff6	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xa7ce4d6c	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xa7d034bf	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7da875a	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xa7e2d50f	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7f2edcd	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xa7f6fa6e	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xa8037724	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xa805ecfc	acpi_release_global_lock
+EXPORT_SYMBOL	 vmlinux 0xa80b003a	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xa81198f7	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa82c0830	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa836ba02	wrmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa87b7722	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa89e2c9a	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xa89f07ba	fget_raw
+EXPORT_SYMBOL	 vmlinux 0xa8bfed62	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8cdee9e	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8ee1f4b	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa901b8b9	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xa908ef45	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa92ecedb	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xa932f3ad	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xa94a09bb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xa95f1454	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa97463c9	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa9785b49	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xa97a61cb	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xa9823bc6	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa9889bb2	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9a182f9	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xa9a8e17f	arch_phys_wc_add
+EXPORT_SYMBOL	 vmlinux 0xa9c72303	amd_iommu_pc_get_max_banks
+EXPORT_SYMBOL	 vmlinux 0xa9d31ae5	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xa9e12ea5	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xa9e5aea5	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xa9e79d0c	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa26cd19	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa3e21ef	misc_register
+EXPORT_SYMBOL	 vmlinux 0xaa495a37	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xaa4cc3b1	fb_is_primary_device
+EXPORT_SYMBOL	 vmlinux 0xaa4e9cf8	migrate_page
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaaa30ccb	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xaab1c39e	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xaab7b125	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xaab82e3d	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0xaac6bd8e	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xaac8c4e8	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad53057	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad7bb38	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaaf2d66e	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xaaf3db90	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab0db18a	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xab160f9a	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xab2f8433	fb_class
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab4c5ab2	bdput
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab65ed80	set_memory_uc
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab6f13eb	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xab714de6	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab88f8dc	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xab8de490	submit_bh
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabaa4c7c	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xabc9c436	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf63482	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2a5a28	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0xac2d77a2	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac57302a	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xac5e01c6	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac80f446	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac9ba0c3	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacaf8dde	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xacb94246	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd32f46	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacea8173	acpi_debug_print
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacfbc71f	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad1036a2	amd_iommu_activate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0xad182ece	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xad240c3a	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xad2951a9	ex_handler_rdmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0xad3005fd	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xad429836	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xad505de3	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xad536c91	x86_cpu_to_acpiid
+EXPORT_SYMBOL	 vmlinux 0xad640848	bdgrab
+EXPORT_SYMBOL	 vmlinux 0xad6430aa	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad6dbd5c	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7dab94	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xad7ec9e1	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xad801b03	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad85a8a8	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0xad976a83	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xada0464c	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadb12bfa	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadc8de43	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xadcaab21	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xaddf8e55	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae24c4a1	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xae2c6d30	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae5251b1	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xae591a48	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae645082	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xae717c28	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xae8a24fc	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xae916d22	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xae9ade33	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xaea3d5fd	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaebdc307	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xaec401ed	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xaec6690c	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xaef77b71	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xaefdd790	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xaf095f7e	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xaf1cbd1e	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xaf2b6fa1	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xaf3a5df7	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xaf3bd20e	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf51384b	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xaf607186	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0xaf63d9a3	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0xaf6a5db8	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf7950f0	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xafa0b588	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafb660ba	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL	 vmlinux 0xafc2da81	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xafc4dcb1	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xafd5ff2c	amd_iommu_v2_supported
+EXPORT_SYMBOL	 vmlinux 0xaffffa9e	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xb007db58	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xb01a9f3c	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb02e6c79	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xb0412d96	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xb046fc19	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xb04a8b31	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb08334f9	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0be3e1e	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0c83185	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0d282db	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e602eb	memmove
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0f6456c	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xb0f976b2	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb139a712	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb157903e	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb15d6e06	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xb16227a3	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb16efa81	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xb181b354	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xb197c9ec	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xb19a5453	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1c6a003	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xb1c8b5ed	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb213d170	lock_rename
+EXPORT_SYMBOL	 vmlinux 0xb214c4c7	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb246e211	acpi_register_debugger
+EXPORT_SYMBOL	 vmlinux 0xb248c24d	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xb25005d3	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xb272d128	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xb272fcdd	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xb27c7ee9	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xb2826eba	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb2a58cc5	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2be064d	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb2e0d0e4	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f3d286	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xb2f74fb6	intel_gmch_remove
+EXPORT_SYMBOL	 vmlinux 0xb2fc5924	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xb3012318	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb3245cae	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xb32a5973	acpi_ut_status_exit
+EXPORT_SYMBOL	 vmlinux 0xb35009ef	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb35363c8	serio_open
+EXPORT_SYMBOL	 vmlinux 0xb3583bc9	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0xb35fb149	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb378c457	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0xb379f09c	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xb3863a67	acpi_set_gpe_wake_mask
+EXPORT_SYMBOL	 vmlinux 0xb3a2dfdf	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb3a61af1	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xb3ab2189	fd_install
+EXPORT_SYMBOL	 vmlinux 0xb3af8b5e	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3dc8081	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xb3e192bf	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb40a75f3	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb41885d7	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb42930a0	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb44b958f	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb459d8b0	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb47cca30	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0xb48c24dd	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xb48c6be9	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb48dc2ab	consume_skb
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a53db2	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xb4dfbd8a	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xb4e5b803	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xb4e955e3	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0xb4f0fa79	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f226a3	tty_name
+EXPORT_SYMBOL	 vmlinux 0xb4fef648	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xb51bcb04	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0xb52dcfb5	vga_switcheroo_unlock_ddc
+EXPORT_SYMBOL	 vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL	 vmlinux 0xb52f3176	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xb532cd7a	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb53ff42b	__put_page
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb574c23e	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab892d	uv_undefined
+EXPORT_SYMBOL	 vmlinux 0xb5cb5c18	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0xb5cbd269	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0xb5cea65c	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xb5d07910	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xb5e54cc9	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5e75bc9	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xb5ef2c29	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xb5fb59df	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xb601be4c	__x86_indirect_thunk_rdx
+EXPORT_SYMBOL	 vmlinux 0xb618b65e	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb63a793c	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0xb63bd09c	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xb643ac6d	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0xb6456257	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb65a9514	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xb665f56d	__cachemode2pte_tbl
+EXPORT_SYMBOL	 vmlinux 0xb674a534	acpi_unmap_cpu
+EXPORT_SYMBOL	 vmlinux 0xb6762668	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb679ad87	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xb67a9621	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6852b38	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6ab5a02	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xb6b6b714	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xb6be7685	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xb6c860e8	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xb6d88d37	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xb7094541	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xb71e1063	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xb723f3ad	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0xb72bb3c5	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb74034cf	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xb743f988	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0xb74b46e0	vga_switcheroo_get_client_state
+EXPORT_SYMBOL	 vmlinux 0xb7593ddc	iosf_mbi_unregister_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xb7676601	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0xb7683456	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0xb76d956a	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7b0f31a	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d0edd0	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xb80cfbe9	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xb814e18a	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xb82ba123	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb8457ea8	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xb86222fc	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xb86f74c5	free_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0xb882dcbd	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xb88a3d9e	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xb89b34f9	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a0b18e	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xb8aca3b9	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8cae2dd	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xb8d4b07f	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xb8da872b	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xb8e42c5d	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0xb8e476e2	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0xb8fa427a	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xb8fd21e0	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xb9020c6a	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb920d658	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb953a659	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xb97f7045	acpi_install_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0xb981f6b5	igrab
+EXPORT_SYMBOL	 vmlinux 0xb9950a98	convert_art_ns_to_tsc
+EXPORT_SYMBOL	 vmlinux 0xb99fe650	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9cf0861	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xb9df3362	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0xb9e276cf	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb9e7429c	memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9fd22cd	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xba0437c0	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba1383f4	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xba13fa02	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xba2f4ee1	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xba2fdeb5	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba61dc09	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xba805a9e	sock_register
+EXPORT_SYMBOL	 vmlinux 0xba839180	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xba88bf84	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xba89997e	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xba8b1100	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0xbaab5194	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xbaae027b	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xbab05054	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xbac4b902	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbadc2cbb	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xbade5b19	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xbae2388b	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xbafc9bbe	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xbb036526	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb09631f	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xbb13595e	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xbb14fe94	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xbb1bac24	acpi_unregister_debugger
+EXPORT_SYMBOL	 vmlinux 0xbb2204d7	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3d4a03	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0xbb483556	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xbb4e4ae6	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb74a725	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xbb8e169a	vga_switcheroo_handler_flags
+EXPORT_SYMBOL	 vmlinux 0xbb94056a	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xbbc8d566	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xbbd25d7d	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbea7f1b	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xbbec6f3a	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xbc035d06	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xbc1a7a65	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc271c40	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xbc33a6af	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xbc349c33	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc3c5901	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xbc510edf	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xbc663000	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xbc8aaf43	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xbc8c65d3	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xbc9d5903	unlock_page
+EXPORT_SYMBOL	 vmlinux 0xbca86443	seq_release
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb18740	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xbcb86ce6	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcf2323e	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xbcf7d699	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xbcfd8125	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xbd00fe8d	serio_close
+EXPORT_SYMBOL	 vmlinux 0xbd095d81	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xbd37818c	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd75f4b1	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xbd7e43b5	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xbd84cd11	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0xbd8bccea	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xbd97d63c	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xbd97fef9	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xbda5c835	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xbda8c08d	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xbdb6dbff	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xbde20447	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xbdeeae5a	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbdf39a21	drop_super
+EXPORT_SYMBOL	 vmlinux 0xbdfb6dbb	__fentry__
+EXPORT_SYMBOL	 vmlinux 0xbe0110e7	acpi_set_gpe
+EXPORT_SYMBOL	 vmlinux 0xbe0a202a	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xbe18aa7b	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xbe278f0b	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xbe2bebce	km_query
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe617ce5	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0xbe667344	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7dbbd8	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe8087d0	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xbe8c47d0	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xbe9d7df9	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xbe9efa9e	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xbea0b906	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xbebd8f11	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0xbec1443c	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xbeca17c4	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xbecad24a	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee3b2cc	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xbee799a1	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xbeee7cd7	set_pages_wb
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbf3193ec	acpi_unregister_ioapic
+EXPORT_SYMBOL	 vmlinux 0xbf552990	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0xbf7d1462	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfd1303e	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xbfd747d6	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0xbfdbfe78	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xbfdc6584	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xbfdcb43a	__x86_indirect_thunk_r11
+EXPORT_SYMBOL	 vmlinux 0xbfe82169	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff5ba86	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xbffe1427	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xc01aaa55	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc03627f1	set_pages_uc
+EXPORT_SYMBOL	 vmlinux 0xc0559729	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xc06f966e	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xc0760f13	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc0823dff	dget_parent
+EXPORT_SYMBOL	 vmlinux 0xc0964546	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3463f	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b40739	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0c1c8db	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xc0d03272	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0xc0e9dad0	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xc0fe54d2	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc111ae64	intel_gtt_get
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc11ed7fc	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0xc11ee0be	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xc12cda69	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xc1365323	acpi_enable_all_wakeup_gpes
+EXPORT_SYMBOL	 vmlinux 0xc14c87da	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc15ec559	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc165a282	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1c37454	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0xc1c49827	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1d92a6b	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xc1e98eb0	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xc2107a2d	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc232b114	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xc2407b08	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc24a426e	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc2753cd1	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xc278c965	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xc29957c3	__x86_indirect_thunk_rcx
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2b80eba	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xc2be161a	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xc2c41ae7	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xc2d146b7	mount_single
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2f1b341	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xc2f80653	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0xc2ff008a	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3135697	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xc32a398e	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc34c6ff7	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xc36273e3	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc380783e	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xc38b3331	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc392ad4f	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xc39aa5ec	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3dbb22c	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc3ecd3cf	mntget
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc40d93ae	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc4428672	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xc46897b0	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47fe677	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0xc498bbbe	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xc4aa31f7	phy_start
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4c33d4b	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xc4efb392	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xc505271f	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc542d95c	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xc54cf2ba	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58958fe	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a81f8e	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xc5a8e5f9	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5cc3c11	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xc5d1afb8	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5e4a5d1	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc606d5e4	eth_header
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc62b49df	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc6331f6a	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc636f6a1	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc65ea421	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc6910aa0	do_trace_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xc6ab9cd8	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xc6b57b85	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xc6b5ed7d	release_firmware
+EXPORT_SYMBOL	 vmlinux 0xc6b84231	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xc6c004f7	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6e97d58	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xc6f26c42	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xc6f29efe	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6fa85af	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc70947ed	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0xc710c9a6	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xc716d085	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc722376c	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc7449708	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0xc770e151	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc789efb9	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7a6a318	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7db3c4f	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc80d9da1	sget
+EXPORT_SYMBOL	 vmlinux 0xc816b285	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc8319378	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0xc83281ad	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xc8473f60	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a847b0	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b5d21d	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xc8cb7182	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xc8d46c21	get_acl
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8e7ecb3	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0xc8e81ad0	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xc90fa68d	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xc91b20ca	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9216a82	recalibrate_cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xc92559c4	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xc9293037	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xc9306a2a	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xc938a96e	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc957a5a0	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc9683614	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc97f6764	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc98690e4	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0xc994a371	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc99f2e02	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e6a3d4	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xc9f34c1d	acpi_acquire_global_lock
+EXPORT_SYMBOL	 vmlinux 0xca1246f6	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca1fc40b	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca44cb81	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xca4be634	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xca525d92	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xca5d91e9	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca75c435	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xca796455	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0xca863efc	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xcabcaa94	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcaee6308	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xcaf25fe6	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf5299b	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb0ca2a7	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0xcb2892f8	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xcb2d9583	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xcb36c827	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb4d416f	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xcb59ee62	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xcb665b52	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xcb6d3a5c	release_pages
+EXPORT_SYMBOL	 vmlinux 0xcb7019c5	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb7fe21f	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba656be	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xcba75462	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbaec807	netdev_err
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd28eaf	file_path
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbe4561c	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xcbeb4cb9	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc0b8b95	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc2ddbb3	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcc313772	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc4ef1c6	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc53c994	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc86438f	__brelse
+EXPORT_SYMBOL	 vmlinux 0xcc86faa4	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xcc8db0e2	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xcc9a1e28	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xcca49339	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xccb35475	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc71279	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xcccb70f6	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xccd30416	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xcce28012	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+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 0xcd0b862a	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xcd15311f	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd319449	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xcd436631	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0xcd47eb68	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xcd6aa65e	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcd88eb0c	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xcd8aacde	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xcd8b679d	phy_resume
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd9449c8	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd66014	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xcdd6eeed	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xcde69ce3	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcde807e5	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xcde99688	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xcdf273c8	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xcdfc28c6	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xce1869f5	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce366bfd	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0xce3c1e2c	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce529755	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xce54017f	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce831938	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xce8b1878	__x86_indirect_thunk_r14
+EXPORT_SYMBOL	 vmlinux 0xce8bc880	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0xce99539c	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb8c960	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xceb9ecbd	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xcebe9596	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xceec6fae	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcef7e391	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf057f70	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xcf0c33fa	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf207009	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0xcf239ad2	load_nls
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf3d1075	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xcf4d33cf	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf61d50d	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xcf66731e	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xcf6b324c	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfa33243	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xcfc0afb7	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xcfc5d860	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xcfcd4444	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xcfe0ccd4	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xd0118492	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd057670f	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0xd059e0ec	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xd05cf5b1	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd06e7d88	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xd08866c2	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a3d9a7	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0xd0a694eb	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0aa1076	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0xd0b0640f	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0bd7642	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xd0c7ffea	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xd0ef1184	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xd0f284b8	mmiotrace_printk
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd10b023c	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xd1201d4e	iput
+EXPORT_SYMBOL	 vmlinux 0xd1240dd1	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0xd12a6e5d	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd140c153	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xd14127f2	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xd15c809a	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xd17264f5	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xd1727a8a	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xd176a0ff	__bforget
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19bd2e1	__tracepoint_write_msr
+EXPORT_SYMBOL	 vmlinux 0xd1a2d0f3	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xd1a3aa51	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd1c3f527	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xd1d15f1b	uv_hub_info_version
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1ea6e75	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xd1f60a89	arch_io_free_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL	 vmlinux 0xd205fb42	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd23f03bf	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd249e08a	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd26cc8c8	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27cf12b	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xd2b576e5	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xd2caf408	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2de34b5	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd311e01f	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xd312524e	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xd317f09e	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xd31b4316	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xd33e143c	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xd34a3e40	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd365eeb3	key_move
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd36e73e8	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xd37de552	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xd3803096	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xd38ba283	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xd38cd261	__default_kernel_pte_mask
+EXPORT_SYMBOL	 vmlinux 0xd3966c7f	vga_put
+EXPORT_SYMBOL	 vmlinux 0xd3991bc2	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xd3a3dd03	release_sock
+EXPORT_SYMBOL	 vmlinux 0xd3a57ee7	param_get_int
+EXPORT_SYMBOL	 vmlinux 0xd3adf8da	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0xd3be237b	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0xd3c53320	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd40037a5	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd42d7a28	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xd4582d08	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd47b7d1a	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48f0823	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xd4912c03	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xd492afa5	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4b02ddb	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4cb784f	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd509c058	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd533a491	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd549d8a2	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0xd55524b7	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xd555b40e	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xd56a0a33	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xd56e9203	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xd58892db	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xd58c7287	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xd59858ca	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5c54b28	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xd5cd3e7a	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xd5d1ef61	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xd5d1f76f	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xd5f45f0c	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd6067eed	init_net
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd63042b1	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd65270d5	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xd65a480e	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xd65c1de8	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0xd67ef4a9	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xd6840b4c	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd6896829	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6b2ed5f	generate_pm_trace
+EXPORT_SYMBOL	 vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xd6c40142	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6dc6505	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xd6def0cf	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ed37ad	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd71ce18e	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xd732ea78	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd751a2bf	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0xd7760084	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xd7772f4f	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xd77f2925	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0xd7a2e11b	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd7b507bc	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xd7bbeb07	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xd7d084ab	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d450f3	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xd7d8473c	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0xd7deb156	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7fd9475	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xd82d5347	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xd846c315	acpi_write_bit_register
+EXPORT_SYMBOL	 vmlinux 0xd84bfa12	can_nice
+EXPORT_SYMBOL	 vmlinux 0xd854a2dd	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd8625edd	set_trace_device
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8c4d45e	free_task
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd8f5ac49	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xd8f885db	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd9006be8	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xd9174265	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd935f8cd	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0xd945d10d	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd94ac952	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0xd94c16ba	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xd94dcbb2	vga_con
+EXPORT_SYMBOL	 vmlinux 0xd9565ba7	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xd95b3d09	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xd9709fb6	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xd971c6c4	xen_arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0xd979a547	__x86_indirect_thunk_rdi
+EXPORT_SYMBOL	 vmlinux 0xd9813ba0	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9acc90c	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9bac014	amd_iommu_device_info
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e2e436	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xd9e3bc41	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xda0d59cd	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xda139360	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xda1ddef1	acpi_mark_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0xda2739f3	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xda299713	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xda29b986	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xda2f5a3d	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4515cf	vmap
+EXPORT_SYMBOL	 vmlinux 0xda50de31	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xda58a152	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda98968b	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xda9e46fa	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaa0a61b	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0xdaac1ad8	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdacaf746	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0xdacd10ac	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0xdacf4db8	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdb16b170	topology_phys_to_logical_pkg
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb503438	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbf21278	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xdc012296	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xdc01f49d	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc182ed9	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xdc3279bd	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xdc344f52	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc4fb205	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5736d5	acpi_register_ioapic
+EXPORT_SYMBOL	 vmlinux 0xdc595427	seq_puts
+EXPORT_SYMBOL	 vmlinux 0xdc7f50bd	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0xdc880f03	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0xdc9942fb	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xdc9f99be	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xdcac07da	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xdcb25b47	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xdcb6c7da	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xdcc1564a	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xdcca19ef	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xdcd0de97	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xdcdd3d46	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0xdce25e07	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xdcfd0e44	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xdd01c848	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd243679	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0xdd2a32d4	current_time
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd7dc444	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd8c8ee0	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xdd9d1d5f	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xdda40160	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xdda994ac	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddb0be71	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0xddcbe1f3	acpi_ut_value_exit
+EXPORT_SYMBOL	 vmlinux 0xddd465e8	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0xde0e116c	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde4eeab5	__register_nmi_handler
+EXPORT_SYMBOL	 vmlinux 0xde6081f3	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0xde788da8	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xde8285bf	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xde8b4dce	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdea9ae98	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee16371	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef501c2	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf2b5bb5	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf34014b	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xdf365ca9	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf4e44cd	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xdf510d8f	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf566a59	__x86_indirect_thunk_r9
+EXPORT_SYMBOL	 vmlinux 0xdf5a1867	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf7f1b75	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xdf8ad0b2	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf8d781f	acpi_update_all_gpes
+EXPORT_SYMBOL	 vmlinux 0xdf905451	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf9d4b1f	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xdfa9af5b	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfbcb495	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfd9abb5	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe8d1e6	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc4a63	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe00c09ee	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe0162ba3	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xe0179f34	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe01e5de0	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xe0263904	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe0334fd0	path_put
+EXPORT_SYMBOL	 vmlinux 0xe033cb29	native_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe048afcb	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0xe05f463e	has_capability
+EXPORT_SYMBOL	 vmlinux 0xe070e92a	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xe07539f6	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xe07c0092	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0a64a73	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0ba81f9	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xe0c2bd7f	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xe0e344f7	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0f89817	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xe10f67ab	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xe1135c62	get_dev_data
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe117b0fc	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe13348be	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xe1338f49	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13a11a8	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe1616290	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xe16bfd94	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xe183fc27	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xe19eb637	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xe1a3a50c	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1ad6ebc	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xe1c29b5d	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1ded082	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe1f5235f	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xe205be5e	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2372f26	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xe23860ed	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xe238ff7b	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xe23d2f25	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe268de36	get_amd_iommu
+EXPORT_SYMBOL	 vmlinux 0xe27b3c79	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0xe293a986	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xe2a147f6	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xe2b5fe3c	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0xe2b79fbd	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe2be66bc	send_sig
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2dd98a1	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe331a002	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe345c92f	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xe34d18ab	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0xe350feac	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xe354aba1	padata_stop
+EXPORT_SYMBOL	 vmlinux 0xe3610294	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xe37d26d3	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xe38c98eb	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xe39a9587	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3a697c1	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3d857ea	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe3df68c4	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe3e1710c	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xe3e46f95	inet_release
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe3fffae9	__x86_indirect_thunk_rbp
+EXPORT_SYMBOL	 vmlinux 0xe4004761	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe40df67a	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xe414878f	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe4371b4d	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe46c1675	set_pages_array_wc
+EXPORT_SYMBOL	 vmlinux 0xe46f83cc	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xe4738093	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0xe4788586	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xe47b3cda	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe48a9a36	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xe4b5bde9	bio_split
+EXPORT_SYMBOL	 vmlinux 0xe4cdfa72	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d80bf4	acpi_enable
+EXPORT_SYMBOL	 vmlinux 0xe5053831	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xe51137c4	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xe512dffb	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xe523320d	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe524a1a5	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xe52ee733	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0xe539b480	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xe545f1e5	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe575edb6	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe597148f	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xe59d255d	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xe5a61cda	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5e6e873	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0xe5e8fac5	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xe5fa88e0	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xe60e04bb	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe61b227d	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xe62a5d4e	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xe62c21c0	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xe630c956	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xe639a9b3	block_write_end
+EXPORT_SYMBOL	 vmlinux 0xe64309ef	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xe6546afd	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xe67ede62	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xe68c4ceb	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6953bb7	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xe6a15bff	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xe6a244cb	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xe6bd8396	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xe6e988f7	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0xe6f7f14c	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xe7067d1f	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xe70877d4	acpi_remove_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xe71c95c2	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe753a664	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0xe7773f5d	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xe787698f	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xe78ee22a	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xe79e9550	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7b00dfb	__x86_indirect_thunk_r13
+EXPORT_SYMBOL	 vmlinux 0xe7b6627e	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d3d304	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7fd4d09	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xe7fe5ce0	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xe801a8f5	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xe81241a5	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xe828a619	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xe834a74d	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0xe8400c3c	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xe846ac30	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe87ef18d	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xe8dcd797	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xe8e23609	processors
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe8feba1d	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe916f51c	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xe9172452	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xe92277a2	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe9648a8e	sock_create
+EXPORT_SYMBOL	 vmlinux 0xe96f6e09	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xe9751806	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xe98a6fb7	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xe995928c	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xe9a5e67f	intel_graphics_stolen_res
+EXPORT_SYMBOL	 vmlinux 0xe9a8fe46	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xe9ada69b	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9ba733a	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xe9c5106e	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9ef94cd	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea16c77f	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0xea21ba83	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea30eb7f	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea3e8850	vga_switcheroo_lock_ddc
+EXPORT_SYMBOL	 vmlinux 0xea3f27ef	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xea4759fd	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xea511eee	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xea5a9e27	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0xea5f44f8	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea7f1b3a	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea956ed7	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xea9d8f65	skb_push
+EXPORT_SYMBOL	 vmlinux 0xeaa11d6e	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xeaa379b4	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xeab01cbd	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeabb884c	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xeac50257	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL	 vmlinux 0xeadaed4e	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeaf8ef11	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xeb0d86dd	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb2e4c04	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xeb31aee8	acpi_trace_point
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3840d9	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xeb3ee42f	bmap
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb59e8c3	native_load_gs_index
+EXPORT_SYMBOL	 vmlinux 0xeb5ca95c	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0xeb5df15c	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xeb7150b2	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb8b1820	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xeb964d9e	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0xeb9e14ec	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba22170	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xebaff89e	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xebb9f0f5	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xebbeebbf	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xebf5d2c1	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec0b09b3	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0xec0dbcf7	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xec1ad2cd	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec445c1b	module_put
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec511245	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xecac8407	__memcpy
+EXPORT_SYMBOL	 vmlinux 0xecb2d8ae	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xeccb93d6	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xecd04271	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xecdde88a	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xece22052	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed0a2e49	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0xed1853de	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xed34ebbc	acpi_any_gpe_status_set
+EXPORT_SYMBOL	 vmlinux 0xed3e309b	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed5bb99c	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedd52af7	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xedd5fb96	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xedf41f4c	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee3248d5	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xee351fc3	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xee4b6e4d	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xee547a52	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee7a41a9	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee7ebefd	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xee85e2fd	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xee86bd09	cpu_info
+EXPORT_SYMBOL	 vmlinux 0xee89ffb1	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee92337a	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0xee942828	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xee9a8a1c	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xeeae4e7d	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xeeb673d4	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xeebe7566	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xeec0577a	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xeed24fbf	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xeee3e886	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0xeef09dd3	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xeef1c127	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xeef8516d	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xef1735c6	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xef40a405	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0xef53e147	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xef638669	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xef74c8e6	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0xef7767ab	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xef82cab8	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefb6c9ec	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf0165e04	seq_path
+EXPORT_SYMBOL	 vmlinux 0xf01a0ad3	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0xf02aea86	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0xf030c7ed	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xf034fbfb	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xf039960f	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xf03cb531	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xf03dfc62	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xf03e091c	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xf03f81cf	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xf055cae4	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xf05c32ad	rdmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf06d4ee5	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0baee9c	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xf0cacae4	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xf0d8968e	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xf0e62fad	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf1305cb4	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xf138490f	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf1848ee2	acpi_install_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xf185264a	filp_open
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a6150c	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xf1a68107	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf1aa83c9	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xf1b047c2	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xf1d9ae4e	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e1e261	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf211d3ae	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xf214edc0	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22d63c1	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0xf2373462	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2499a4c	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf2755df5	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2b81b64	arch_io_reserve_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xf2beafd6	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c5e600	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0xf2d39431	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e87ea0	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xf2fd28ce	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf2fff24a	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xf301a4ef	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xf30965ac	iosf_mbi_register_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xf313316b	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf318a6ac	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf33449c8	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xf33636f3	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf36c4c1e	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xf380c0fd	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3a66872	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xf3ac05a2	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b4fc9b	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xf3b815c1	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xf3cffdb9	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xf3d0bf7d	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3e87e9e	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xf401077e	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xf4025bf2	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf40f8c21	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xf41002b7	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xf428d60d	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xf4334457	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf44380ae	ppp_input
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf4a42d76	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xf4a565fd	wrmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4bc1d4a	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c76a01	start_tty
+EXPORT_SYMBOL	 vmlinux 0xf4d69b0e	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf50ad031	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xf51cdf4e	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xf53a2ce0	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5488eab	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xf5527a20	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xf56f2792	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xf5816c72	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0xf591753d	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a5c84c	msrs_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5bb7b3b	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5ecc4d7	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0xf5eda937	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0xf5f33aa7	amd_iommu_enable_device_erratum
+EXPORT_SYMBOL	 vmlinux 0xf6014361	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xf60ab926	acpi_get_event_status
+EXPORT_SYMBOL	 vmlinux 0xf60d1d36	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf647d31f	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xf654c347	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf680183c	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf6876705	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf6898a0f	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xf696585c	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0xf6a01392	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0xf6ab7f0a	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xf6cf38e1	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xf6cf5fa4	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xf6cfe643	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0xf6de9aa9	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f94a75	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf74e33f2	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76073b7	amd_iommu_domain_clear_gcr3
+EXPORT_SYMBOL	 vmlinux 0xf765f87c	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf7756a9b	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xf77a1929	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xf786d7c8	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xf78eeeeb	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xf79ca3bb	acpi_remove_gpe_block
+EXPORT_SYMBOL	 vmlinux 0xf7a843ec	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xf7a84faa	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xf7c6a945	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xf7e214bf	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xf7e2ac3d	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xf7ef9a79	iosf_mbi_punit_release
+EXPORT_SYMBOL	 vmlinux 0xf7f804dc	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xf8093a55	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xf80be44e	rdmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf81a486c	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf82f5a8c	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xf83751f3	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xf8386d97	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0xf83f9402	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf85173f8	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf86c583f	iget_locked
+EXPORT_SYMBOL	 vmlinux 0xf871f3db	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf87f35fb	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf8930493	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xf89f7b50	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8ba3003	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8cf0602	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8f6fcb4	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xf90169a9	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xf90ab6b1	stream_open
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf9180537	path_get
+EXPORT_SYMBOL	 vmlinux 0xf9194c9a	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xf919f8d4	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xf922f693	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xf92f53b8	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xf9311c6c	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf946098c	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf98329b4	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xf9919055	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xf9938b81	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xf9a361c1	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0xf9a39519	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9a6133d	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xf9a8b116	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xf9b497b9	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xf9b94327	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9cee157	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xf9e1e010	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xfa08eeb0	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa198a3c	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0xfa247930	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa3b01d3	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xfa3d0da9	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa78a80a	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xfa844be9	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa91e6d6	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xfaa1fdf7	__tracepoint_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xfac5f192	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfad3211c	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0xfaefc11f	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xfb0d71a8	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xfb10d054	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0xfb251b8d	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xfb27764b	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xfb359faf	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xfb382f04	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb4c2485	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xfb578fc5	memset
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6b8c56	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xfb6f82f9	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfb9b7be2	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xfba0feb8	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb355f7	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfbf8ad79	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0xfc068b21	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xfc22736a	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39bd38	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc4becac	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xfc4f3b8b	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc62f3db	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xfc6722a3	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xfc6a1ba9	sk_free
+EXPORT_SYMBOL	 vmlinux 0xfc7ae83a	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc890344	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc9c2251	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xfca1b538	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfce4f384	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcf43ed0	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xfd06267b	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xfd09474c	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xfd1637b2	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0xfd16c481	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd7dbe94	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0xfd8853e3	dput
+EXPORT_SYMBOL	 vmlinux 0xfd93ee35	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfd99045c	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0xfd9f634d	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb6576f	acpi_set_debugger_thread_id
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdd2fb3b	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdd8fb48	pci_biosrom_size
+EXPORT_SYMBOL	 vmlinux 0xfde51b9c	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xfdfb792f	amd_iommu_pc_supported
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe356831	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xfe3c5ca0	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe68031b	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xfe6d5afb	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xfe76ed92	init_task
+EXPORT_SYMBOL	 vmlinux 0xfe7b33ff	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0xfe8680da	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe93ea46	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0xfe984849	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0xfe9dac8f	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfead205e	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee7c6cb	seq_read
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef57923	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff22d2d0	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xff306a4b	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xff3c1692	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xff51c48b	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xff5a48d8	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff7b38fe	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffbe8254	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xffc2ead9	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xffc2eb74	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xffc30c3a	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL	 vmlinux 0xffcd7f49	iosf_mbi_punit_acquire
+EXPORT_SYMBOL	 vmlinux 0xffd26f0e	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xffdb4e23	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xffe36474	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xffec804b	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff750d1	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xffffefea	mmc_set_blocklen
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x0ac98858	camellia_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x110a5ea5	camellia_ecb_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x187244da	camellia_xts_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x19ea0a50	camellia_xts_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x4697c03b	xts_camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x701dafab	camellia_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x95625eb9	camellia_ctr_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x9ba73d8e	camellia_ecb_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xbdb3b1d4	camellia_cbc_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x076da75a	camellia_crypt_ctr_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x17d1814f	camellia_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x410e0fb4	camellia_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x62cbf7ba	__camellia_enc_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x69211153	camellia_dec_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x7a1d58de	camellia_decrypt_cbc_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xb53cc66b	__camellia_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xc5e3cec8	__camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x08950a28	glue_xts_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x1acc3c98	glue_cbc_encrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x8bc8df97	glue_ecb_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xb814f25f	glue_ctr_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xc1f8bbfe	glue_xts_crypt_128bit_one
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xff1f9422	glue_cbc_decrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x020a243c	serpent_xts_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x19ee8473	xts_serpent_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x1c871146	__serpent_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x36389d2e	serpent_cbc_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x3f20a4a9	serpent_ecb_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x92dded8c	serpent_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xb2dcc1fa	serpent_ecb_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc59d1a0a	serpent_xts_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc9c39aed	serpent_ctr_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xe809ca7f	serpent_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x1f491d36	twofish_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x7c7bf6e0	twofish_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x4c995a89	__twofish_enc_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x8cccec5b	twofish_dec_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x9dfb11d8	twofish_enc_blk_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xd859828c	twofish_enc_blk_ctr_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xe3784eb9	twofish_dec_blk_cbc_3way
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0344669f	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x03850a21	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x049c95e0	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0589e779	kvm_mmu_slot_leaf_clear_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0639e340	kvm_page_track_register_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0893d40b	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x08bb4709	kvm_hv_assist_page_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x09cbfbae	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0b65bb2e	kvm_vcpu_reload_apic_access_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0b72a5f1	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0b81468b	kvm_set_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d8f4740	kvm_mce_cap_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1014e9bf	kvm_emulate_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x10a1c5e5	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1235000a	kvm_tsc_scaling_ratio_frac_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1272b16e	kvm_vector_hashing_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x13491d60	kvm_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1585b765	kvm_mmu_slot_set_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15f5cf6a	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x18b6f973	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x18fc4053	x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cb2485e	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cf65ffc	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d013832	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d0ef92d	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db1c372	enable_vmware_backdoor
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1dbb02e1	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20747fd5	kvm_apic_write_nodecode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x21c5d806	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x22866cbd	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x255ee55e	kvm_skip_emulated_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x26de7b14	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28411ed7	kvm_max_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2a2855e7	kvm_get_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2a58a45a	kvm_get_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2aa3d0ec	kvm_mmu_free_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2b1069f6	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2bdb9b1b	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2c3fdf71	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2f1dd74d	kvm_spec_ctrl_valid_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x31762763	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x351c2d66	kvm_rdpmc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x35be5612	kvm_emulate_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3632b8fe	kvm_vcpu_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x36ad027b	kvm_lapic_reg_read
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a3026d4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a8b88b9	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b4babdb	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c17b423	kvm_lapic_switch_to_sw_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c19291c	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c8704d1	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc82f45	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d046f8c	reprogram_fixed_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d349620	kvm_lapic_find_highest_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e0637b8	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e08b8b0	kvm_handle_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3eca8bad	kvm_intr_is_single_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3eeea907	kvm_apic_match_dest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3fa3c0ce	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x40d942a9	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x425ba3df	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x42e06a0c	kvm_mmu_unload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x435c577e	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x43819ba2	kvm_requeue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x445d0864	kvm_get_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x44932666	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x45d069ce	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x463535f6	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x487172c9	kvm_mmu_new_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x48e828c2	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4a4c8ed3	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4b8a7665	kvm_hv_get_assist_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4c3c2ca5	kvm_mmu_invpcid_gva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4eeac65f	kvm_fast_pio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4feb81eb	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x52ff0248	reprogram_gp_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x533c60d7	kvm_set_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x555ea1e9	kvm_apic_set_eoi_accelerated
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x561d023a	kvm_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x566356ee	kvm_mmu_clear_dirty_pt_masked
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x566ee497	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x598e8a17	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5aeaaabf	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b2bcc15	kvm_mmu_sync_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b5b44da	current_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5bbdcb36	kvm_inject_nmi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x60d51590	kvm_arch_no_poll
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6243ac82	__kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63270977	kvm_default_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x652688b3	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65ece2a2	__tracepoint_kvm_fast_mmio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66c4423a	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x67405fe1	reprogram_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6755384b	kvm_set_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x677d736f	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68f54e0f	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ad7b156	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ada8f59	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6d520fca	kvm_emulate_wrmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6d7a6d35	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x70a59bb5	kvm_x86_ops
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x72863b8d	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x728bc5f2	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7327c645	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7763a671	__tracepoint_kvm_nested_vmenter_failed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7a0796af	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7af52fb6	__x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7bb91c9a	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7bfede57	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7e266d62	kvm_init_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f748ba0	kvm_mmu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x80c5b5c0	kvm_scale_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8406fe6c	load_pdptrs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8489a9df	kvm_task_switch
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x849344cc	__tracepoint_kvm_pml_full
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x864d8d20	cpuid_query_maxphyaddr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x867690a7	__tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86931b5d	__tracepoint_kvm_avic_incomplete_ipi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8742f625	kvm_lapic_switch_to_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x879f9972	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x87a98741	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8809304c	kvm_vcpu_is_reset_bsp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888c9405	kvm_set_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888d979f	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x893404e9	kvm_can_post_timer_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8a831faa	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8b7ed8e1	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8de5f20c	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8e479af3	kvm_lapic_reg_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x902fe74c	kvm_require_cpl
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x91d4d992	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x92440fd5	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x937aeb49	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94abbd88	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9504fa51	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x95f7348e	kvm_get_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96dbe382	kvm_mpx_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x98489ee3	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9c856029	kvm_arch_register_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa0b30379	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa0ee5e24	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa14e65a5	kvm_emulate_rdmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa15f8b15	kvm_get_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa46350c4	kvm_read_l1_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa55c75ac	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa66177ae	kvm_mmu_unprotect_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa72f37c1	kvm_emulate_instruction_from_buffer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa8702e31	kvm_load_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa8b18408	kvm_set_xcr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa975020d	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xac2c0c42	kvm_put_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xad4307a4	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xafdbec6f	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xafe4c9c4	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb097e540	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb146d852	kvm_set_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb1f29d1a	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb2c0181f	kvm_require_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb3499b72	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb38962d0	kvm_get_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb72c1643	kvm_arch_unregister_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xba64d965	kvm_queue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbe7f85ec	kvm_valid_efer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbf0be10a	kvm_set_cr4
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbfc61ecf	__tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc0839cbf	kvm_set_msi_irq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc13f4f1b	reset_shadow_zero_bits_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1d769b7	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc5f76338	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc73c90ec	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc818ae70	kvm_slot_page_track_remove_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc8758350	kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca3ab5ad	__tracepoint_kvm_ple_window_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcab0c0a4	__tracepoint_kvm_write_tsc_offset
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcb3bd2e7	kvm_deliver_exception_payload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcb8f98da	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbb10963	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbc12128	kvm_mtrr_get_guest_memory_type
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xce3ec378	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xce756c6f	kvm_mmu_slot_largepage_remove_write_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcf780af5	kvm_init_shadow_ept_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcfbf86b9	kvm_mtrr_valid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2082405	kvm_arch_has_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2b01547	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2d15791	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd3727c75	kvm_set_cr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd63dd0d7	kvm_page_track_unregister_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd6953003	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd7403205	kvm_lmsw
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd8ae2ac3	__tracepoint_kvm_pi_irte_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd92d11c9	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd96ed470	kvm_arch_has_assigned_device
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd9822e45	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xda390a15	kvm_lapic_expired_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdc11fdc9	kvm_arch_end_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd0f7fc1	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd9e7aeb	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xddfd4ae3	__kvm_request_immediate_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xde0bd144	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xde8ad354	kvm_get_apic_mode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe0fc69d7	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe16f3ba7	kvm_apic_update_ppr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3a2c92b	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3ccde2b	x86_fpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec06defc	__tracepoint_kvm_avic_unaccelerated_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec2630fc	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xed64ef59	kvm_wait_lapic_expire
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xee98da8f	kvm_set_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf061563c	pdptrs_changed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf0943ac9	kvm_lapic_hv_timer_in_use
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf23d2a58	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf296d5b9	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf47e3dba	kvm_no_apic_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf4cf7389	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf70cdc21	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf73342ed	kvm_arch_start_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf7c91510	kvm_write_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf929c3fe	kvm_get_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfa541ffc	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfab37f10	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfb5813b2	kvm_slot_page_track_add_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfb70e0a2	kvm_set_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfd957e02	handle_ud
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfdb3bf1a	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x00258c97	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x030ac690	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0cdc8e3b	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0de5ae46	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1981c0b5	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3d3be03c	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x43f3d967	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5c7e9b75	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x61723c11	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x636bd120	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x80dfee9f	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x897c5391	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa43dcaa9	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xaf778513	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xb5b2d342	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd6e334dd	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xde03149b	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf965a413	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xa4958b8e	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x039b67c1	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xbc86f6b7	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xe0062468	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x97477da0	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xdf37d3db	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x321d131c	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x3e27b04a	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x43ba5c51	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xd0bf045d	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x144fb61f	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x2ba013a6	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xb218dcb2	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xfacac845	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xffe4cc62	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/chacha_generic 0x260141b0	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x2ff24ba7	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x33c39e76	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xac159a08	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x04778dc4	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x25566fb9	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4b7cdb81	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4e3bdf03	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x706e9e41	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x788a4dbc	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x85a0c841	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8f08d317	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xacb50e56	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc0489382	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe8564f12	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf53bc62e	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfdab0aa1	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x20df9048	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x22d84fc5	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x269118d3	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3e8e2f49	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x65d64b81	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6894ab0e	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x848c0b34	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb72905a9	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc54bf5b0	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe93ee9c1	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf22ef078	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf26f0453	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfe5dc955	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfeb11765	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x1b8dd2dd	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x24b1d15d	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x552e2456	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x7c878e43	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x40bc91ab	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6800fe33	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6cc22cf1	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x708396f8	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x2b1aaf55	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x3f22585c	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xf3a3e041	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x35005d7d	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x00735f47	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x16bb1091	__acpi_nfit_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 0x55c64343	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x626bf7a5	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x8ae505e5	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x1c8984c7	acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x4f6c2360	acpi_smbus_read
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x87bd07bd	acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x96eb492d	acpi_smbus_write
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x09cbf34e	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1098d951	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x13d368c9	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1d066ef6	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x20be4f67	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x261956b7	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x34233e13	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3e528f9c	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x510bdc2f	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56468ebb	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56ce60ff	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x59789152	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6fceafc2	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7728a16e	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7d87b409	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x83094dd6	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x89c7ab9d	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x9eebc2ef	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb7831779	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd233bb5d	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xda659ad8	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe26c0691	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe44c020b	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xeb1eaf99	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1b7bee6b	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1f82c3f7	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x29630c3f	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x4386bc50	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x791f2074	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7df4f09d	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7ee84782	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa2e3cd23	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa9c20fb6	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xad401c73	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xae5cab6c	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7c878b9	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7e2bdaf	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcb9ac489	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcd0eaa8c	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xff264a8d	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x407399e0	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x02ff9464	cfag12864b_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x0ecb2e5d	cfag12864b_disable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x305dc3c6	cfag12864b_isenabled
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x3389f926	cfag12864b_enable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x9522a342	cfag12864b_getrate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0xc48e9d95	cfag12864b_buffer
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-i3c 0x90f078ac	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x0f8e8c0d	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x5442352f	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x1baf0356	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x251e0a48	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x3fc69ec9	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x5e4df485	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x65db298f	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x854eb651	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xb2f47983	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xc0ebc60f	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x118b3420	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1315f20f	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x25cdfd24	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2fc9625e	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3bf2b19e	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3d92fac7	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3f255401	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4b154d0e	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5e5b564c	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6b00ebd6	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6b996994	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x85eb8c6e	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x866d80af	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x89fc9606	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x973761e8	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa725b003	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb691615b	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb97a1211	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc12df7e7	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcb166237	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcf260b8c	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf1798c2b	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf58c1c9e	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf7c8f8d4	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x0f4b75b9	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x374e2263	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x761f06a0	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x93beacd0	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd0c8ecd0	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xec390ec5	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0df45e4c	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0ed9d37f	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1fe76d4f	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x21b549ac	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x22e19bcd	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x23a047d1	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x3a824b2e	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x40ebe826	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x581bf086	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x6f2da89c	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x7954914f	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb37a8037	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb40c3d74	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb77828b5	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb7bb7e82	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd3ddd04b	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf7be55bc	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x30152602	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x34ae69ca	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6b965ff5	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x75c46664	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7b66250c	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x92acd430	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x96cae440	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb6d4bbe0	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xcf2390e5	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xda2c5fa8	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xec24e208	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x26c0a355	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x2ec91600	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x507ff77e	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x6b152300	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x79c7badd	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x0142d2f9	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x5d9c84a7	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x792bb034	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xebba9bf9	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xf42d2740	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x30dddac0	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x37cd65d5	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xefddbec1	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xfa493abf	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0402f387	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x24e09ec3	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x544ac3fe	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x84d49156	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8aaae4cc	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8bfe20ff	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa32846ce	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb442c4b1	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbe283443	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xce3f3a7e	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd716a32a	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdd03ff31	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe2903a5d	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x2b67f096	speedstep_get_frequency
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0xd7ab2c0c	speedstep_detect_processor
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x288d6e43	sev_issue_cmd_external_user
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x2e6a6147	psp_copy_user_blob
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3e059f28	sev_guest_activate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x4073e924	sev_guest_deactivate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x843d6541	sev_guest_decommission
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8fac14a2	sev_guest_df_flush
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x91722dce	sev_platform_status
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xd02e197f	sev_platform_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xe1a92a7d	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0e77c5f5	adf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0ef7b1a0	adf_vf2pf_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0fbd1460	adf_cfg_dev_remove
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x13de2947	adf_send_admin_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x19381779	adf_cfg_section_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x21c869a8	adf_vf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2966144a	adf_init_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2c340eea	adf_devmgr_rm_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x42f46221	adf_dev_in_use
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x43acb995	adf_dev_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x4f8e8a2b	adf_dev_get
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6b52428b	adf_iov_putmsg
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6d9fc052	adf_enable_vf2pf_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x70bfb0b9	qat_crypto_dev_config
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x75adafd6	adf_enable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7608cde6	adf_reset_flr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7a51454a	adf_exit_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x806df556	adf_cfg_add_key_value_param
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x88da5188	adf_vf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8c0f6cd0	adf_devmgr_update_class_index
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x986f980a	adf_vf2pf_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa1a4f21c	adf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa1ed6f0b	adf_dev_started
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xaf2bee11	adf_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb5b9e3ec	adf_exit_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb7aa84f6	adf_sriov_configure
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbc151b21	adf_devmgr_in_reset
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbd552ead	adf_devmgr_add_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbe9f70df	adf_dev_put
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc1b6a6ba	adf_cfg_dev_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc719ba2e	adf_disable_sriov
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc7418831	adf_cleanup_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc8748f96	adf_init_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcc3b167a	adf_clean_vf_map
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xced8f9b7	adf_devmgr_pci_to_accel_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd9768196	adf_dev_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe05e49d8	adf_init_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xeba76d50	adf_reset_sbr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xebe7db4e	adf_disable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xf76c2726	adf_dev_start
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x7f83fb30	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0x7d79217e	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x01a33ab9	dca_unregister_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x0a82a2f4	alloc_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x1943a56a	unregister_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x2b45e499	dca_remove_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x2fc42645	dca_add_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x522d6ff9	dca3_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x88cff550	register_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xaa634427	dca_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xac34ecec	dca_register_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xdaa8140a	free_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x12915abe	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x699b0fef	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x0630747f	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x188d0c62	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x1b3fec86	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x227db14e	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3a7a1057	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x78504374	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xfe065577	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x7cabb7b1	hsu_dma_get_status
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x7e1816f8	hsu_dma_do_irq
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x9dfb6d68	hsu_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xd6d405b2	hsu_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x06bfcaa9	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xe61d65b2	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x09834a72	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x47d3364c	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x66b40510	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xa8cb7354	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xc8ea6abd	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/edac/amd64_edac_mod 0x33629ef8	amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x14878009	amd_report_gart_errors
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x1d34e996	pp_msgs
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x830c469f	amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0xaf761418	amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x7e6f54eb	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xd16bb085	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0147999e	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x18f8a409	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x243d7669	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x34f80d58	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x391c51c6	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x47278688	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x51e6a270	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x62058bf6	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x62babf29	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7723fe57	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x793d4c49	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8a3206cc	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x99915683	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb663ac55	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xba30161c	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbca2ac6a	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdbc691b3	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe432e2d6	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfb636ad8	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x08c9a979	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x25ff02d4	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x423b7274	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x69f372d2	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x7d92b980	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x9acecd0d	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xa8f66056	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb924c5b3	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc84dfab2	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd328d9e6	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd900323e	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xe3140f2a	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x296bd271	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2d3fa5d8	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x42149280	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x5681051a	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x64d74618	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6e6b0ad6	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x8a5d23f3	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9e867d2c	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xaf03978b	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc7239330	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xdf0b60fe	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xee2d81b8	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xeee7a5c4	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x07ef249a	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3875d35c	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x414b8d7f	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x4f1db0b4	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x584c3ec8	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb2fa43de	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xfb253a97	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x0ab183ba	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x19102bba	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x6051a3a4	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xaa64fac0	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xafc10f99	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x36ede572	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x3e0c8cd5	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x92333f6c	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xdd22fd46	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xeb76e1bb	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0xdbffd6e6	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x5573fa38	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x58fd8799	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0038d836	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x05d7d868	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0ea6a9c9	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x1151a466	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x14124dac	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2c284ce0	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3b081a0c	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4a047053	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x607a6b94	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7f58040e	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9b25c467	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9f808f9e	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa802fc2b	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb1cb3b1f	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb74bda82	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbe073662	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc20ef87b	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc8b4b175	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd298512c	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdfc24e0b	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe2f2cdb4	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe33b3571	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xed967c24	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf76c4f9b	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfd27c1bd	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2d1f0216	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3a6daee1	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3c3e5c03	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x4bf16069	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x551010f8	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x64584343	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf23c70de	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x05876c69	i915_gpu_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x08a7896d	i915_gpu_raise
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x402468e9	i915_gpu_lower
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x438d1156	intel_gvt_register_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x500858b9	i915_read_mch_val
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x6fbc5503	intel_gvt_unregister_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe7237b0b	i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x4f62f878	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x72e6e61d	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xd245ced0	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x11f66b02	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x255a13ec	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2b0e7c27	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2fcf1b81	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3129ba5d	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3dd854a0	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x41594606	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x466f2bd9	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x48fa3726	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4b8aae4b	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4cc92ba7	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56b345b7	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x59d6985e	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5e502d53	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6506154a	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x650bfbe7	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6b0e1a04	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x74b75255	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7995cddc	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7da2fda5	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x84df5175	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8898c6db	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b9ae00b	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8fc50997	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9260639f	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x951c04ef	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9d6f4120	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa421d0e4	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa4ed15aa	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xba1c286b	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd2506fd3	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd9504d4c	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd99aa38b	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdcb9cc33	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe30d57b2	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf0bd8b96	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xffc08669	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0604a0ee	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x06c954fa	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x187e3f90	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x286e9f3d	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2d14ae5e	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x353db59a	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x362d386e	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3949850f	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x474622d1	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x48fa70c8	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4eb4b073	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x543188c0	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x55c4f7e5	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x628548db	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x69bb1d25	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6a526aa6	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6e371ff2	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x70e382e4	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x71396b0f	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x99290208	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9af6e7e0	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa1a7ce44	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa1e7b051	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa3134da6	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa9edbac2	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb1bc656c	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbe200d36	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc17287fe	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc584430c	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc879bf10	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd42fa220	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xde5347f2	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe8b2614c	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe94779d2	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xea3db8f0	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xea439ca2	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xeef8ef7c	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf0099bf0	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf09f46da	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf341aa96	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf4e0d3a6	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf711c9a7	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfd10737b	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xff49323d	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xd5813c8e	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0d4be973	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x2a42a663	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x419d0f02	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xcd11cd51	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xe7714286	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xec4df18a	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0f005adf	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x331a0c75	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x39647058	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8db9b101	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x9486c4e9	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa43f194c	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xb27bb104	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe9024bf4	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf8e45a39	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xb40f2ba4	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xf310a98e	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xdf85a2fc	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xeb65c772	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1ac6230b	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1b49e803	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1d2ca3ca	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x24ec4747	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x26a16bce	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2932c504	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2d6f8bf4	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7d6f2294	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7d73eec1	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8981e189	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8fd26002	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xa976de77	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xbf727bef	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc856d183	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc86bd69f	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc97210b2	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcd8a4c89	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x03b81c28	vmbus_sendpacket_pagebuffer
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x11df3292	vmbus_sendpacket_mpb_desc
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x17f64b26	vmbus_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x24033695	vmbus_open
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x31e2e77f	vmbus_free_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x329262c9	vmbus_recvpacket_raw
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x35a944e7	hv_ringbuffer_get_debuginfo
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x46a417ca	vmbus_proto_version
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b2210b8	vmbus_send_tl_connect_request
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x527b6bd0	vmbus_set_chn_rescind_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x5b330aca	vmbus_set_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6520b261	vmbus_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6c391d8c	vmbus_free_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6e9a1e3a	vmbus_hvsock_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x72a36ccd	vmbus_establish_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x74ba41da	vmbus_teardown_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x768ef865	__vmbus_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x7ba8b897	vmbus_connect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8fc8ce2b	vmbus_prep_negotiate_resp
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x98a02dc2	vmbus_are_subchannels_present
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x99a5e9c9	vmbus_setevent
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x9e9b5647	vmbus_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa1952214	vmbus_allocate_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa2c786a5	vmbus_connection
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa345fe92	hv_pkt_iter_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xba986aaa	hv_pkt_iter_first
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xc97123aa	vmbus_disconnect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xcd388c3b	__hv_pkt_iter_next
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xde57ae68	vmbus_set_sc_create_callback
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xd5d6e698	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xe7275dfa	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xea9597fe	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x04b9b3bb	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0ef946ab	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1c8537d2	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x21f3a425	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x38084f22	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x39a26d16	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x4491758a	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6bfb090c	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x72abb0fd	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x88245d71	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa84e1c6c	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb78f32a6	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd5761aa7	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdd11a75c	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe6d7daf2	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xeda2015f	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf0e1c0d0	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf593c406	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf63f7ae1	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x06fb45ac	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x22f0449d	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2bfa07e3	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x405b0fdc	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x4c138312	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc8e5dc1f	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd4979b5f	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xde56a5f8	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xef4a13ec	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x12a6cdc6	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x18d091f7	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xd5684084	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x2efc54fc	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x3fc7affe	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6324e988	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x65ee784a	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x801055cb	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa7104dfc	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb2078e48	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe626db07	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf368613e	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x1857f221	amd_mp2_unregister_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x208712a3	amd_mp2_rw_timeout
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x43a33b5f	amd_mp2_process_event
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x6f31857a	amd_mp2_register_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x72d104c0	amd_mp2_find_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xa543bf74	amd_mp2_bus_enable_set
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xb7ad7506	amd_mp2_rw
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-nforce2 0x58a37600	nforce2_smbus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x04636199	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x46aee278	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x4b5592ed	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xd1d435cd	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x44b3fde8	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x01d9a322	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0db04b75	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1e7e591d	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x212761be	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x37d7aa92	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3ca2fa5f	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x44f98204	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4e904934	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4edb2953	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4fa4c956	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x773a6993	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x776c1c3d	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x77744373	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x83c48ec6	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x86103f67	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x97c9afc0	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa4d7902c	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb128e8a4	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb240962c	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbbcd78e2	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xcb7ceeb4	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd0b2d543	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd4bbeef5	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd609114d	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf0fecb02	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x6d91e36a	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xb5b63f2a	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x1947fe06	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x3d65781c	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x837a2c81	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xf7b12c40	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x431886c2	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xb72ca994	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe6054d5d	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x120e8f44	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xb86674f3	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x143c657e	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x1c52d34e	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x2e92501c	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x35ca3d03	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3d66042a	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x53691174	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7099d103	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x830c50f9	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb68adbb1	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xee053b28	ad_sd_cleanup_buffer_and_trigger
+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 0x2afeb04b	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x74be7da7	iio_channel_cb_get_channels
+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 0xc8d07598	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3773d74b	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x628fb2ec	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xb61d45f1	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x0affe9fe	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x518e0151	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x5baf3d03	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x228a360c	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x35a09017	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x60295fd6	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9df61bdd	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xdd9c25c0	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xdf8dfb40	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe02ef650	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xec88d303	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xf63b95ff	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x184e68e6	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x20cdc3f5	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x55db79f7	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xc0403d50	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x166115b2	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x6de7cdad	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xbb144c5e	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x83b47d45	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x8cf6506d	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xf81b677c	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0841270a	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x09b54fe5	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x2f789b61	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x44cad74a	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x989d69a9	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbca11f7b	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbf98468f	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc4d4e98b	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc97b35dd	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xce48d354	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xde5e73d4	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xfb91a4a1	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xb2cf08c8	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x41529463	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x8c040824	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xdb00edcc	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x08b18ac8	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1a9af95b	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x24af87be	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x25522aa1	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2dc0e42f	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2e65a7d4	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x30642f9f	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x31513367	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x34c036ce	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3a77e4de	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3f58c1a5	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x40975dfc	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4415779b	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x45721c64	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4a871e97	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x52fe8086	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x55de1416	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5819d114	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5a0ec1ac	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5f6eef5a	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x61b637a1	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x663acf84	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x702f5cc6	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x70ab29af	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x779b93e5	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x86385253	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8b5a7f72	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8d2ab2d1	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8d9c6b3c	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9f249b8a	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab58dd3e	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xadcace27	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb0d0722e	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb6765c16	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb7785d19	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbe0b774a	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbff21cd2	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc9449963	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xce5b91ad	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd1150d76	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd33b2587	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd5238e8d	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd63d2e43	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xda648ae5	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe511fc16	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe89fee39	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf24afc68	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf576642f	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfb8fbf51	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfd68d4fc	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x2a93dd24	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x870b037a	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2817ece1	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x5e1e5801	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x86529437	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xe2818801	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf4984bfb	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf7253144	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xc7bdfe58	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x7afb122b	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xae7a1b8e	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x36ccc2b0	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x59d07b0e	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x698fe38e	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6b087b27	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7a07d8fd	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7d4f09dd	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8d2cd566	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x968a0c50	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb9421745	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc795ff7a	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc956125a	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xde68844a	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xea333578	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x1c83c816	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x6faee931	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xbca0981f	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x0e00440d	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x10f20a1a	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x479e8cb8	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x649b4bf1	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0584e708	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1e5e6e84	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1f06598b	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x313ecaf0	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0178f795	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x044e2de8	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x36fa97d8	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3fccda31	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4609f61d	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4b960da4	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5db7c4cc	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x663ccac7	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6ac1d6ef	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8aa3f683	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x971debd9	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb5cc5d01	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2d8f5653	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x48439386	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4d462244	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4f177c8c	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x93388e2a	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x953facfb	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb435842f	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd9b387f3	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe4e7da74	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf00d5908	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0a205e99	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3667d1a1	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6472ff6b	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6b528fef	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6e0231e3	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x7f21a118	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x859c71a2	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xcd75a1f8	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xe61a5fce	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x1c8036d9	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x25f0b8b1	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x2f8cc644	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x651a0d51	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x8be6fedd	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x91f36773	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x065a9806	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x1129440d	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x13e8bdfb	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x30aa5623	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x55b9fed7	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x80d6a990	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x9f236773	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb4b9f9a4	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc002fdf6	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe41c2fb7	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe642bd9a	lp55xx_deinit_device
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0a947a51	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x19a00bc4	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1d49e90e	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x261f688f	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x376dbd32	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3bdc9dae	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x51238e55	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x676eadaa	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x84abf802	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9dd8166b	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xaf0c7405	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc7f373f3	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd5e088d5	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xfa9a5002	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x03f65068	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0a068c3e	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2449a62c	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2c6972d8	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x62f3dee7	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x77d945cc	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7cd75790	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x884665cd	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8e131da4	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xaadce543	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xadb05971	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb5712526	dm_bio_detain
+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 0xbcb5f71d	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc84d5eb6	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xcc4d9e58	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdb1ee94b	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdd4cdb5e	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x48feb18a	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x14797cf3	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5edde0d6	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+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 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x7bc28519	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xa30fdf7c	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 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 0x404d3b40	dm_rh_dirty_log
+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 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 0xa1ef0172	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xb2e6ca10	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xe8507402	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf1a5a4f3	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfce864f5	dm_rh_delay
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf7468416	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x33b8c73c	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9af88910	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9cd96d09	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa6907ab7	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb4609976	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xbfc9be04	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc9b72bd7	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xdb393d84	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf302f322	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf521cd46	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x170c24c9	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x28ddc60b	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2a510d95	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x3c9319cc	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x74c6b40f	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8138c692	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8a52fa62	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0868d278	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0a7cc067	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x13d23e24	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x30f198df	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x3a4b3c1f	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x568ad27d	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6abe5e53	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7289673b	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x732ee15c	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x83d3153b	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xac02ad90	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc79421b1	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc8fe3dfb	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xccd07cec	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xd2328c84	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf020f6fb	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf120720c	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x05b05374	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x09cc2c9e	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e0a5c3e	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e818bbf	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x112dfe2d	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2fff19d6	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3520800d	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x56a2eae7	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x59281d65	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x59a88084	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5eafa241	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x72f06507	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x74257d41	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x76b6982a	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x98cd1df7	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9f3f7a53	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa231532f	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb21409b9	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc32bcf40	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcf573017	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd69437e1	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe669868d	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf13ecd6a	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf74adc14	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf85d805a	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x23bf64fb	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x4786de23	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x7b895800	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x6d6d2d1d	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x286abf63	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x04982def	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0ba262de	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0e682126	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x15e9ecf0	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3c26b283	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x559a6e7f	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5becaa85	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5c3e19a8	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x69b4430c	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x75ff3505	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x79bf69bb	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7c0eb8e2	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7d3877ff	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7f91bfb6	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8793eb3d	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x99dda541	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9c3b7c0c	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa6aeb514	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa80441be	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xae02ded1	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb217f3c8	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb9c604a9	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbc6c8501	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbfe6a988	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc004b633	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc7dd9d55	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd2848acd	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe946be3b	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe98a5fb2	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xee620a88	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfff207d0	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x1ab67bc9	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x9e5be30e	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xbb9e3f86	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xf8d7ebf2	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x38ee99eb	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0xa499f572	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0xc66c1b2f	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x6a2788ef	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x360845e7	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x2e8ecd4c	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xd10f52eb	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x0e630ef7	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x821ebb19	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0387e3a9	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0599a13b	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x05fd8499	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0f85f5c7	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0ff3bd9c	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1013e321	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1162c83c	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2470d1be	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2ac53d0c	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x48a99832	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4950a64c	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4a731e30	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4cae47bb	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4eaf1f79	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x50b7c958	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x53ee156a	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x54f25fcd	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5ae90282	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5b5b97e1	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x70370c5b	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7b718ed4	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7c93b34d	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x81998698	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x89b9e5c9	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8d7bd474	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x910d93f4	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x95daf1cd	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x96d9c3a9	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa2d0a3d0	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xacbb0b4a	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb44bd768	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb4863607	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb7708656	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb9454ba0	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbce619bc	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd8b195b6	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1d4197b	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1f5cfd0	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe28aecf0	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xecd46547	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee4f4cf1	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf24bf541	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4cfe525	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf519a921	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc356f40	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfcc9eb78	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xe5feefaa	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x049da291	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x1fa74687	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2b30b8ac	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x46ba3422	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x57949ac7	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5a54ebaa	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x98f63b2a	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x992738b5	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xafd0ce8e	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xaff328e8	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb9f4dad0	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc91b0dea	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xcb6cda70	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd30589fe	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdaedbafe	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdc0c5384	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe1199fad	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe73d93eb	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xfc0777fd	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x10fabd57	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x127aee50	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x18ba718d	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1afb266e	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1bc262da	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1fcf4abf	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3154fee0	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3186825c	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x45fa90b3	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x51a08f0d	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x62af90ec	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6dcc7738	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x77dcb1f0	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xad5e4764	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc5d7e7a5	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xced57682	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe2e1ab94	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf30f31f7	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xfd24f375	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x0eb4af75	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xa1447664	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xb248f238	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xcdd9f063	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xec31a3e2	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xed23ddab	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xee29bec2	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x3a78857f	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x5b75b51b	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x60c5322a	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xaa9f5758	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xe647d39b	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x3d68e3ce	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x48d27987	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5c6943a1	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x996906db	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xeabe9e9c	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf1346c52	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x38432619	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x7b0cd598	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x3ce47733	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x686f400b	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xaa4fac26	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xcd7348fa	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xd93a1934	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1736bcf0	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x20cefaa4	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x27b1ebd1	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x31c96625	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x37fac4d6	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x43e64cef	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6102d6a4	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x674d10be	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7abc882f	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7b2fb2d2	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x84649d47	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8e34ddf4	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9d7b9567	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb1708501	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd9fb8def	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe18b9ff2	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe3b3dc39	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xfa073e4a	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x95e05db8	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xb5c62813	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x2b5d7f62	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x6971083f	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x1c5dcee5	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x3b75215f	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x7cef0323	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xef2d80a3	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xedfbb20b	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x20bbe6ca	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x8ef09d5f	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xa053a4ef	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xc6771cb3	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x0b1f7fbb	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x013ca89f	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1c09009c	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4119adbf	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x669869a9	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6ecf5619	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6f968693	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7812b456	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x871e6c05	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x8ce74d55	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa314b78c	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa3596474	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb1ef87d2	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb9848cde	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc4781caa	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc6bd50fb	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcdf79c1a	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd7c5ef59	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe93f506f	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf7ea225d	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfe004d55	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x2800358d	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x1a32bdc4	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x18683802	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1eea95a4	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2ddf78a2	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x30fec603	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x45ac96ae	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x54216e8b	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5952656d	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x69f922fd	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x72235846	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7b3d2ea5	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7de9d911	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9f2b0100	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xac79f282	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb09eb679	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb13a9d1d	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe60dac1f	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf25bedf4	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xfa000e2b	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x1e839a9d	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x5058e98d	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x6372eadc	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdca6091b	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x023a95fd	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x9150ff17	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xf12e2d23	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0a8ae2ea	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1bd81eab	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x591e06a0	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x6cf74b07	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7d57696a	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x80e12a10	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xc1bc417b	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd752aaf7	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xf96134a1	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xffa48c54	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1245aae9	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x140aeac6	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x267e5f9d	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2892f5d6	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x387e1088	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x42a5bf63	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4fa4ee1d	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x58f423d6	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5a5ce318	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5b608b68	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6741eafc	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7199bcab	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x80ba7c89	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x83ad2a2b	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x87fa7015	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x90e4c787	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x924a17c1	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x99d2c5f0	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa1f9f565	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xabf64c72	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb2f76a3f	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbe4a8bc4	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc630bc9d	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc9aa20bb	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd9d13f6a	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdd54e0e3	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xde004613	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe30fc06a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe393a75e	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xea019d13	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xeb8527ff	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf3f641eb	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf63e8e21	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfab35bb0	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xffb2e8cd	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x031dbd3c	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x124e4488	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2cdf11b1	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2cf03a50	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2ddbab0e	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3da141e2	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x52d75b03	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5bad8e0d	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x604f9615	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x621a97e1	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7f4f59df	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x80b43bc3	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x83b6b98a	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8494a953	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9e51ad12	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa0b08a67	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa428a0af	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb48ba25a	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd81c023b	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdf375a8e	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe91ec1f9	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xecf9872b	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf5363d6a	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf85deb66	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x29135749	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x30c070ea	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x49c6431a	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x5a3a29a1	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x00025b29	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x75537828	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc9b4be21	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x02f547d4	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x03def322	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x077c57f0	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x083ea7de	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0c941430	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11df593d	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x17b3212c	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x19d306f3	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1e870a4a	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x20636409	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x22e7e770	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2379c407	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x24663706	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28477a19	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x287347d1	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2b8edf23	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2e39ea5a	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3605a48d	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x388f1b59	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3d7e8563	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3e2944f8	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x402e297d	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x488e6630	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d87244	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5303ac51	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x53c0176a	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x54b2b864	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x63289b1c	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x686985cc	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6d5b12eb	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7a99e8b6	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x838f34c8	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x86f5d26b	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8aaad5d1	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8e4b813b	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x90b6fb53	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x91838a3f	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x926b64f5	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x985354c5	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ccd33fe	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ff3948b	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa33b32d1	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xba9ac822	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc64fca87	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc73f4f2f	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcab70cbb	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd4d73671	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd65542f2	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe4983b9f	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe9d7a538	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeb706b19	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf3c5faeb	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf8e007ad	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfd7f81c4	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x10bb2529	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x8ee217b9	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xff566447	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x008ee097	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x1b33dd2d	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x479bad56	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x5cec3e5b	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xa2561a95	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb7fcadf3	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xd213e7d7	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x5fb22906	intel_lpss_suspend
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xa74bdaba	intel_lpss_remove
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xc21cefc2	intel_lpss_prepare
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xd0115bf2	intel_lpss_resume
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xfe348c7c	intel_lpss_probe
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x171ead83	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x27358137	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x3303d813	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x5811eda9	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x616c7b43	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x91be3dbf	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xa6aa4b00	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbaa9cf09	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x26c9861e	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf3c5af42	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf53f0908	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x708948b9	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x79112e33	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x88f1ef5b	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x89feed4f	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x96a9e713	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x9d42e0d5	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb5212981	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x60718ca9	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x75a3fcd3	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x9117693e	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x12d001fe	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1e90ddba	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2710dd53	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x271d0113	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x52c81a20	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5785c38f	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5f5ebd39	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x6425c05f	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x64281c1f	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8441865b	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x844c5a1b	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8c6663b8	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9c94f1eb	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9c992dab	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xadaccac4	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaee66a93	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaeebb6d3	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb3c09da6	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb3cd41e6	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbb530ec6	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc7749b57	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc7794717	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdfa1ece7	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdfac30a7	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xedd3779f	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xeddeabdf	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf0f580aa	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf0f85cea	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x0c352cb2	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x2211abf4	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x301e5e9c	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x58aec2a9	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x70a415bc	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x7dfba174	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x09f86458	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x0f60bc8a	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2464f3c0	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2a1de52f	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x355937e6	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4f20f2ba	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xba4a06ee	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xc1ffc7c3	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd0b95f71	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdeb2ffe7	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xed463a00	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xc04d4c94	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xf7d949e0	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x420c9412	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x81aef5ae	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xacd6901a	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xbe989fff	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xeee1db17	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xf02f94f0	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/si476x-core 0x0a212071	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0e5ab054	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1423d39c	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x15fd9d67	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x20b8720a	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x258a2b80	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4dda4abe	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x56ce5cf1	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x58a00703	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x60769ba3	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x68ff3998	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x72fc40b4	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7a1342b9	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x80857c79	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8be6f841	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x936b35e4	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9f49290c	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa6d12a8d	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa819cd6e	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaac8b533	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb44d4742	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbacdbc38	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbc1f4230	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc172ea87	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc81d8aed	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd016fd6b	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd2cc61fe	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdd139c5f	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe691ca9b	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xee06568a	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf0bde17f	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf18598ef	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf1a88815	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xff263437	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x1af35bbd	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x373c1417	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x507af657	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x591f13f0	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x59d3cb26	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x9582001c	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xae922c3b	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xb37cb727	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xbe8e9eb1	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x7ddbc8c8	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x24a22393	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x3423a008	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x87721af4	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa6140e5f	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xc6e8ed91	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xcb6d15a5	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xde65debf	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0df5b060	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x12f6b693	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1784667d	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1b552c43	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x288da9a4	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2d11bd85	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x34896f5e	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3dc3590b	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x473540b6	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5529bd7b	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5c177922	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5ea27928	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x71d0d5ec	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x77f3dc7b	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8b777f96	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9368297d	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x950ccfb8	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x96364308	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9b91e679	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa11e162b	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa16c57d6	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa41a9804	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd6a08fb1	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf10f4ba7	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0e414cc7	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x39562752	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3bc638d0	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3dbdc891	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6b7ab69c	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x77cbda50	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8348a87d	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9eb17f7b	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9f6e3321	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa4c832bf	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xdd7a6533	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf063fb7c	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf52cc954	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x2482e839	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x8df2a909	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x939c28a8	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xca42d9c3	cb710_sg_dwiter_read_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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x139a64bc	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1a016aa1	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3605a436	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3fe08e17	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x95b95fa1	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa61c5be8	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xcf12702c	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xde3641d7	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x42402ce4	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x83084949	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x9239258f	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x93bc4279	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa507e0f6	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xae028bec	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xce917b9b	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xd526a356	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0112153a	mei_irq_read_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0218fcb1	mei_hbm_pg
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x04a3ae2e	mei_cldev_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0b6fea65	mei_cldev_uuid
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x22456684	mei_cldev_register_rx_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x24d04253	mei_cancel_work
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x25ed55e6	mei_stop
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x2851d49b	mei_irq_compl_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x297037ee	mei_start
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x394cbaf2	mei_cldev_recv_nonblock
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x63839ce9	mei_cldev_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6839957a	mei_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x71c9fc29	mei_cldev_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7f70ceba	mei_cldev_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x90a24af4	mei_fw_status2str
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xad383b87	mei_cldev_enabled
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb1ad7e7f	mei_cldev_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb1b46c36	mei_deregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb367d2b4	mei_hbm_pg_resume
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xc25d0c8f	mei_cldev_register_notif_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xced86a05	mei_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd6c2ffca	__mei_cldev_driver_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xda2be508	mei_write_is_idle
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe36174c6	mei_cldev_ver
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe68e0533	mei_cldev_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xeb734877	mei_irq_write_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xeb7f955c	mei_cldev_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xf5ae04b9	mei_restart
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xfba6217d	mei_device_init
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x60d0ca93	cosm_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x643ad944	cosm_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x8c307591	cosm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf562b585	cosm_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf9daeae5	cosm_find_cdev_by_id
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x33d2a869	mbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x65d6fa22	mbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xec5816d0	mbus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xed6aa085	mbus_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x3149a5bb	scif_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x3858b01e	scif_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xbc35f697	scif_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xc5698aa1	scif_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x09c87181	vop_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x655e5cce	vop_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x89f92fb0	vop_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xef778180	vop_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x02beeaa6	scif_accept
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x06ab4819	scif_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x12f4c256	scif_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x2024cd6f	scif_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3cfc5447	scif_fence_signal
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3f9d5615	scif_put_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x419f1cc9	scif_close
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x489c3936	scif_register_pinned_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x56906b61	scif_client_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x5b47d553	scif_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x61b3c4e4	scif_vreadfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8f2fed3f	scif_get_node_ids
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x99450ca5	scif_open
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x997d1299	scif_listen
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x9cd7ca09	scif_get_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xaceebab6	scif_fence_mark
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xb9f63e04	scif_writeto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xc5360b12	scif_fence_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xcb2ba36b	scif_pin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd0283fd4	scif_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd69775b9	scif_readfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe372aeea	scif_unpin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xeba950b4	scif_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xef151ca3	scif_client_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xf268fbea	scif_bind
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xffa00244	scif_vwriteto
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x5b8bb699	gru_get_next_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x8dc51bdd	gru_create_message_queue
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x9c7283a1	gru_copy_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xd3d2bf04	gru_free_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xde08c325	gru_read_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xeed7d505	gru_send_message_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x1018eee0	xp_restrict_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x12333991	xpc_set_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x345c9217	xpc_disconnect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x39046c7a	xpc_clear_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x48e62c9f	xp_region_size
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x6285dfe8	xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x64ba5017	xp_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68d27065	xp_expand_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68fa7d28	xp_remote_memcpy
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x7d5ba9a9	xpc_registrations
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xc04c7267	xpc_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xe68acd6c	xpc_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xead4f7fe	xp_max_npartitions
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xed1d3813	xp_socket_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xf3b47f67	xp_partition_id
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x024d14bc	vmci_qpair_produce_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x046dd187	vmci_datagram_create_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x056837fb	vmci_get_context_id
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x1fd4782d	vmci_qpair_get_produce_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x2449459d	vmci_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a22fa8a	vmci_datagram_destroy_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b	vmci_qpair_peek
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5591b58e	vmci_context_get_priv_flags
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5e949e0a	vmci_doorbell_destroy
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae	vmci_qpair_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x676bd843	vmci_qpair_consume_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x75fe065a	vmci_send_datagram
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7c74d7a6	vmci_qpair_consume_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef	vmci_qpair_dequeue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x93a7545b	vmci_qpair_dequev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x990fae46	vmci_qpair_enquev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xb572e830	vmci_doorbell_create
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbad935b6	vmci_qpair_peekv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbcb85f62	vmci_doorbell_notify
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc04c7e84	vmci_qpair_get_consume_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc403cafe	vmci_is_context_owner
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xde3abc2e	vmci_datagram_create_handle_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe0cc9c92	vmci_qpair_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe11895c1	vmci_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1	vmci_qpair_enqueue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea143610	vmci_datagram_send
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea61eefe	vmci_qpair_produce_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x069f2a8d	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x07d42747	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0c914c68	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0fcdc6d3	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x107e8709	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x159a12e8	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x16fd6cd8	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1b0e4d58	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x22b036e4	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x26c135f2	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2bb63816	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x361e6102	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3b912bad	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4544bc2b	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x47355a9b	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x55dd3324	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5e23b95d	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x60fa0c35	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x64721aaf	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7739cfbd	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7c024629	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8198308b	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x865d76aa	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9465a04b	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa42ea071	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xaa301313	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb2f642c5	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb7126104	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb9043bdc	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbbc4ffb1	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbc3e2e7a	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbcfa17b5	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbfdc52d6	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd1af69b1	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd7a8606f	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe591b5af	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf492a6fe	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfa9a7538	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfda03982	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14327482	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14d35e73	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x5503b5e9	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x6ddbf83b	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x8861ebe1	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x8f89c111	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb4696c46	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xccf8c01f	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf9e37f0c	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x1d5c289a	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x22750d72	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xe0420d0c	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x02c8ba6e	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x7c9af1be	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xf13175e8	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x930fdce9	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xb8fd5544	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xd422da70	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xff39cf1f	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x3b0f37b3	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x5393c5b8	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0599a314	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0fa02fd3	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x10728009	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x11396cc4	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x190318f5	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1c475495	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x237a2847	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2a5d8845	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3428f5d7	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x35177946	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x368ddcae	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3fdf1b53	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3ffb1e44	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4bcaaf6b	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4c407aec	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4cc16a3a	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4d535961	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5c3c3cf1	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6101afb0	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6175a201	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x68c44992	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7235f62a	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x729eae58	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x73b80365	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7dda0e83	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7e06a5dc	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8503b278	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x868ebf3e	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x878176ff	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8c840c97	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9165ccd2	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x95ed07d6	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x98430082	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9b122067	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa3936fda	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa78dd074	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa8d496fb	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb496411e	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb549cab7	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb921a85a	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbcd6d23f	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcc710cbf	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xce64d19a	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcffc253c	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd300670e	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xdc539fa6	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe24afa82	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe265a3b4	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe9b83808	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xeb530562	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xedbecd70	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf96e299d	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfc0f8ebf	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x13aedbb3	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x47793b44	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x6263db33	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xb6690676	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xe589f25b	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x2e402be4	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5e8fb5b6	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6269c89a	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x627ce11c	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6f738e63	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x7df7bd68	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x8551e922	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x905aed2b	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x9d81d952	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa18fec6a	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xcd6660dc	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd9c502b5	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf9a02243	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3afd4903	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3b6a6c20	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x1a434efd	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0857a89d	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x19f14326	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x22a2a085	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x236ab203	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x24c75933	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2b52ea0a	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x38476579	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x445947e4	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5e332eea	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x666eaa50	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6a024b41	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x763b40d9	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x777c6996	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x78a77439	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7b6a5f06	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7fa68155	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9cf1cd3d	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xaff04a3a	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb32707f7	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb66e9826	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc9e6c534	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xcfa5c2cd	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd5737029	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe8bbaf44	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf5e16f15	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xff8be2a4	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x988a9b2f	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x40578e10	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xb264c373	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x12a9047a	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x13431d1f	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1ebd7dc0	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2eadd0e0	ubi_leb_change
+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 0x4879000d	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x58ef6768	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x79249c97	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7ebe75ae	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x8933c5b2	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9b29ad9d	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb77a47f6	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc62ac04e	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xec990726	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf28377f3	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x24e41bb4	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x9a7bb95e	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x1c339a57	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x1e1afedc	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x47d10e63	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x507b28dc	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x67e18d74	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa7cb12c9	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0084c40b	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0ace994f	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1815945e	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1c50a4e3	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1cc020b2	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x363242fe	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x45d31cde	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x51516f9f	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x59eab692	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5c31aee2	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x60ab0265	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7e8a1d22	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8e268316	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x97f8c039	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x981cee52	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x99a6bf9f	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa186ca68	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa3b2c420	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa6789b21	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xadeaefe2	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc34cfe96	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc8025781	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xcbb457bf	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xdc11dd2f	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xdeacf99c	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xeed80a58	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x166f9dfa	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x8ba94aad	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xdd249d82	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xfa214ad0	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x0c4c8470	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x29d2fb59	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x633bab3d	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x84fda3df	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x8f525758	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb06552b1	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb4c90c91	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf1208909	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x263f677a	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x5bc9f0a4	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb684e186	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xbc2fc811	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xe31d29a3	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x05393845	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x142578f5	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x18b11bc7	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1ab562d9	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x220a06bc	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3fd811ae	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x48e337ef	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x59837154	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5ce018c0	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7a4edb9a	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x902e7588	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xafd49fbb	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc8b2459a	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd32cc56e	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd8b0b6bd	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdd50865f	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xfb99e8a2	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x05bfef40	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x06c2eb36	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x1579d188	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x180e703f	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x45b0fa4c	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5986b916	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x726a093b	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7414bad2	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7567ab46	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7bd38e5b	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x82867e72	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8795b861	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa3d5b399	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xab77d4e1	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xca891390	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xec977a25	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x001ca3c8	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0807ac30	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e711c10	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fdbea78	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x100bd82c	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10b4c34b	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x132048a0	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13614249	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18d6f0ec	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1acbd241	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b378a70	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c9d1c11	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1de52406	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f781b95	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f86c85f	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x221d25b3	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x251a5789	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25393836	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b1f9248	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f7bb028	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x310810a6	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32632b0c	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32aca7b5	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3abcb099	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f077cc6	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x414a3489	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x443a0ffa	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44eba0f0	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4729bc29	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4926c86b	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4956a7bf	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49801fa1	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a55818d	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4bbb151c	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c87fd2b	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4cf6b928	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5053e209	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5238d56f	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52c5d955	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55a4c8eb	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b7d3341	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f62974c	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fb309b2	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fb3df6e	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60237f61	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61421703	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6146247f	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x651b200b	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69dcd5a8	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69fff834	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bd8af3b	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7197d13d	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71fd0e46	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7521a1c6	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7622a321	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x768c002d	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78663d08	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78b0cd67	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d095e3a	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x830a2416	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88380756	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x898242ee	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b6b4a48	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e2bd8a4	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f3bdfb1	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x923bbc84	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x955747c6	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x979c0edf	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9845fd7f	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x990189d7	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x996745a2	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a59ef76	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a90b770	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b4c94c7	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b621d7f	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6b8a2e2	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac951fe0	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xada0164d	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2ac1cea	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3c05db7	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3f0392d	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb86062e2	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd2b0843	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd796dfb	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbde4183c	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4a10e42	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4c374c8	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5fbf22b	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6312b87	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6a547fd	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7ca848c	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7f6e491	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc88e82ba	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc98a235a	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb20eb79	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc84afee	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc9bbb94	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccf1b2eb	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccfa2973	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf3f8410	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3e5e75c	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd42150e7	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5e59898	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6de6dc6	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd92655ed	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9aec894	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbb4e100	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf7d3ba3	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe04462d6	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0685776	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0861381	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0935b6a	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe24e1f7b	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2a9d9a5	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe62afd23	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8b28f0b	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf268b513	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf27a3650	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf282dbe2	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf39af553	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf56a2871	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5e42385	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfb48ec99	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcd33161	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe8c7c64	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff677f13	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05806b63	mlx5_query_port_ets_rate_limit
+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 0x0c9711c4	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17ba4093	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e79aef2	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x227e0447	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24020d2f	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x250232d6	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2633d3d5	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x283bbbd7	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28a63fae	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34ac7c7f	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34b0ed5a	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x385c6feb	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b8c45d1	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cad157d	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f01a15c	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f30fc28	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40d9c9b0	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4909e040	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49a62069	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4db7db8f	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x503d46b5	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5176e832	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5323a754	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x536647a5	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53e1e11f	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x542b3950	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x557e911c	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59890838	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a2b6fcb	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5af94107	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ce10bd3	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d8625a0	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x611d2582	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x620d7153	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64892722	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6692a859	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b14afd4	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b6241a1	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d3293d3	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74ca4c2f	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7856b89b	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a8a2b7d	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c7457e5	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7df04fa2	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81d3b303	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87269b70	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88101c24	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x886d05f4	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b47062c	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b99669b	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8efe6c85	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8f0cf317	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90d67e41	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x921a6c0b	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9266a886	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99c9bef1	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a867d96	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa3d8e26e	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa971061	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xadf2ca4c	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaea445dc	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb63f981c	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6ba3f15	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4b40190	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc75f560d	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc82548ba	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb35eb82	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcecf2b74	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd41422be	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd82f79a6	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8627208	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd93a6ad8	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd99a9ee3	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb2ce9c1	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcd84446	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdec46471	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdedd23f2	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdffe75ed	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0326f8b	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2d77ea4	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe415f431	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefe0aef8	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf26c4c5a	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfac11578	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xd5c96f72	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x0dfa3184	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x181b42ba	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x3184e407	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xbc815a22	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x104da2c8	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x622e9ab6	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x98a6f2b7	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb56299a5	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb722b9bd	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x2d40ceb9	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x98a1e3a7	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xaaa370e4	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xe79ec6b7	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x23942639	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x25fe8617	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x295c5d4e	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x81b54dfa	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x96646b07	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xdca62a7d	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x24d3ba5f	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x5a988ec3	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x8a6acdfe	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xf82bfcd3	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x049730e3	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xa64a6940	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x09625789	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x28ff3429	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2e567344	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x55c27b60	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5dc5d48d	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x636248b9	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6d9ebe7f	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x709023ae	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7c77db83	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x82f09b41	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb398c1b0	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb794b8dc	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb991b759	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc3d2f6ca	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc4b118de	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe43f0f73	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xedb9f342	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xef1fd603	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x59c1a4fa	mdio_i2c_alloc
+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 0x272a7fe8	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x341635c2	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x764c43f5	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x7f12f479	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x096dde18	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x26a95a2d	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x39c4309f	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x491d7d46	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x64b9c4a2	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x71e9cc7e	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x79085a7e	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9e25b1a5	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc367d9c9	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x045fa976	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x3076cf08	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x741df7e4	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x79f8188e	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xe0af6d5c	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x02579b93	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x3426d078	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7a405228	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x9d3808b9	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xac5d5217	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xaeab6770	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc6be78c6	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xe345f90c	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xedaf0974	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x2313f051	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xa9fd35a4	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xbc308379	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xc09c7b36	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xcb06f148	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xd9f50fd1	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1376258e	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2560f217	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2b470f84	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x37b0ee1f	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x38055704	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x40e386c0	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4c9fb58b	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x608080a1	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x67537850	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6b062a03	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6f19fcd0	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6fb8938a	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x88504951	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9445bd7b	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9f9c3e73	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa4c550ad	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xae93500a	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaf0445b7	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb35beb04	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc003dcd2	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc0ce7a83	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc3c8a451	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc5f7f55c	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc68d4dcf	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xcce715e1	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd73053c3	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdc867819	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe590f9be	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xec49b21d	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf26d131a	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf35a94f3	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf3937347	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf8b9705e	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x19a5daaf	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x42ae6220	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x62f7f31b	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xb7037478	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0571b767	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0bd8cbc4	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x156c918d	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x2a64d0c0	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3712b420	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6a222ecc	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7ca358ed	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8336d925	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8bf94e02	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb1487c07	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb3888693	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb4a5b7c9	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcdefc018	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf54eaa0c	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf5a0b2fc	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xfc91b852	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x3730040c	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a92d8ee	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d5643ef	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x815f6e59	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8f70db85	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa2da3197	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02322e59	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x06757aae	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x074f1e57	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0cafbf49	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0d66c31d	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x10b009ad	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x247a963c	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2bbc5dff	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2ca0defe	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x339ce05d	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3987fad5	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3f432bd0	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4350a1b3	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x45e6eea2	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4ff9db6e	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x51895dd7	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x533f381a	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x55e73fba	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5866970c	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x595a5adf	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c245183	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6d90c54e	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71e50a96	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x76196081	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7ac5257b	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x80000b39	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x875e8990	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8f33c585	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x915ffcc7	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9304bb2b	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x968e2762	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9ba1bdb4	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9c86a6ec	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa0a7e075	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa287c5e8	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa4724fd0	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaa8e0aa0	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb68e2535	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb7b10b52	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbbea8cac	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcb604576	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcbba031c	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xccd03887	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce354efd	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcfa5bc22	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd17ec47d	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd3694f3b	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd5872ae6	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdf54b184	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe1532e47	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe480b00d	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe87e2e92	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe9f928b6	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xee2c7fdf	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xee8e8934	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf1b6e12d	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf3f1c184	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfdddfcde	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfded1a1a	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x289b4caf	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x2fb5cea7	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x37f27c9d	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x44ad1e7a	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x55349bea	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xbcf266e8	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xd7571856	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xe9e5987d	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf260f716	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0e90d4ec	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1dd24d7e	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x216a0b8d	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x23f5d255	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3082c48b	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x37b8c3c7	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3973575c	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x52c47240	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5dc74002	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x686da5ce	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6bb380e4	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x76420b56	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x787cb618	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x90138271	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xde7fea69	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf6edacb7	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1e49f45d	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x429e60b6	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x484156a6	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x75134a8a	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x76edaa0c	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xa02b50cd	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc3ed1991	lbtf_bcn_sent
+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 0xde92b12f	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x000a5fc5	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x09a740ea	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x193b870b	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x272d63ee	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2753d480	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x37de0726	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x392c2b50	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5d63fc3b	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x88360e1d	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x945618cb	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9b75b229	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa4342765	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb604be01	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbbc45bc1	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc014a18b	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc4d67cd2	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc509abe0	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcb2d28aa	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd2051580	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe66fb2ba	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf06c28fb	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf6934575	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfb2b4ea0	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfe9192db	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0330a8a4	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x109e67ab	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x16671d87	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ca5aea3	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d030ed9	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1f90562f	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ffade57	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x21d01814	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2b60a894	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x37fe9f47	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x38c4286d	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3c48e7e4	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3d61ee6d	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3e13108f	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4d47fa32	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x503cd21d	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5413f453	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5693a94d	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x57379dc2	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x58cd07f4	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x643787a5	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x66cca76c	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6d272adb	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6eb86613	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7176b779	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7323e9ca	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x75b2d1b4	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7c093ddc	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7f301130	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x816f49a5	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x88999eca	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x90e03fea	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb31396ce	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb6d98d90	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xba590857	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc7d24cb2	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc9dd6a50	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcf0ce916	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd1315e5c	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd21c0d28	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd3c6a9d2	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdc9c891c	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdcce525f	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe0eac59e	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe4471d83	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xea650348	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeabeabce	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xec03f33a	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf09dd84c	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf0f9ab04	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf5120274	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf631ea3a	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfb6b94b9	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x575be01b	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x6cd91023	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x90f341e6	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa65c90f1	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc1170219	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc3751607	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xd4328d45	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xffe5f0da	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x08fdf08a	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x118af452	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2eff2f03	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x6cbdcac2	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x73f45da8	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb5f0e7df	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xf824c938	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0ae35cfa	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0feaf4bb	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x17366c7d	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x182400a5	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1c5b07c0	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1e4eaa30	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1ecf59be	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x20158e72	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x201bbb91	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x23cc3c8f	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2551c7f4	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2ee811bc	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2f4f2b9d	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x31f91095	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x37c00ec7	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x389e967b	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x45c28bab	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4617caa3	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4758a047	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x50c050f7	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x589309fb	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x58c31cc7	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5dc5108f	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6140a958	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x624f8d21	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x646f2cc8	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6e6433e2	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x72915ba5	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x74215295	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x76a4b42c	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ba48e87	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7dc98365	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7f3f74de	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8053b9c0	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x80d9a3cd	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x82c114c1	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e7ea4b4	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8f30b108	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95309e45	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9d455480	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb015e1bf	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb0d3cb88	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb0f6d295	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb4189bf8	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb9054a8f	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbdccefc1	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc29b5330	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5d271ca	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc7d0ac4f	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xca9c7f3d	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcb2129c7	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xce45dd89	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd816d291	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd865845c	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdb945e4f	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe0de9993	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe4e53479	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe68d5500	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe6e1087b	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xece8b107	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf7a3f419	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xff880a88	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xffdb1117	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x01176dfb	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3d0c3f93	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3f15c46c	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x5fd3f38a	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x911f50f1	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x99ad594c	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe8f6091d	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00ae70ac	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0aee4e55	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x10cd63b3	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1137404a	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x14eeaf74	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x155b76ee	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x16060a74	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x298a66d3	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6daecb9f	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x70aa2a95	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x71298bed	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7d2c8d5d	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xaee9c128	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb41888c1	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xcec828b0	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xecbae916	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf06b6f2c	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfa39614f	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfed3f171	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x08ce543e	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0cca6db8	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x162e1b74	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x40b288c5	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x492a4303	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6044be61	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6db4f108	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x93dacee4	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xe0d087cd	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0cee0b9d	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0d2a9ac1	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x131d7d42	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x16228353	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x180350b0	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x24c62968	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2b524389	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2b609b00	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2bbec5c8	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2d7bf1d7	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x37d31378	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x382076ea	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3e81a7c8	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3fb92d03	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42737404	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4708a74f	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4e457b27	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x55009059	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x56b3bcfe	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5715f362	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5abfed38	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x636b4506	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x638622e6	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x69cc1c10	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6d2e3f10	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x789872e1	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8c18efc0	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8c315152	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8d691559	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x98bc1d85	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x98cb3608	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa779733f	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa8ce4af8	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xafd68953	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb045a438	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb8bac5f6	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbb1bfb08	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbbd2bb83	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcba39d47	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd2607493	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdbe5eea8	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe4177d00	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5f3ee0b	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf377ea7f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0d573493	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x12503961	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2d487ead	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x34b4985b	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x432f15d9	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4ff096d1	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5951af0d	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5b3916f6	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x63314261	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x70fdb83f	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x711cb039	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x71d7164f	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7e374799	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9ad0cfe6	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb1338a0f	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcaa36700	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x056450ae	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x08d94970	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0bb51e4d	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0e259558	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0ea33672	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x109ac552	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x11332133	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x13b7d54b	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x164f19b5	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x169d3cf1	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x19c00ed7	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2548b75a	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x260c8174	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x26fd5eb3	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x34ce834e	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b011397	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3f091268	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x45086e1f	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x56065504	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x566ec730	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x64ff02ff	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6694bc83	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6bfd0410	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7cb7b106	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8a2921ca	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x983fc27d	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa19baee9	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa24a3b4f	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaef54e3f	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb38e070d	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xba471d28	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbd76432a	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc5c53d27	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcdcae297	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd4f25358	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5390838	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd53e3206	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd9b1bf67	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdd281afa	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xddf2ca43	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe301786f	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe3fbdc52	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe9884da9	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xed03c6e1	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf44874e1	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfe640719	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x0f2bfad4	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x210acf66	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x879c7bee	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xc7095e07	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xe7b82fdd	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x14be59a2	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x32c9c44e	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xb46b8e95	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xfb61c561	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x02e8d2f2	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x19ab00b7	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x37cab8ed	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x56511fe5	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5be5e2b2	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x92a22f16	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x96d0627f	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaae8ca5f	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xabdc7f88	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xae3f4ed6	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaf319c15	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbd665a65	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd45db706	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd8daf9ed	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xeeb30339	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf80ab790	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0c3991a0	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9f178dbd	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbcaa2bcf	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbf13ff74	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x07f73b71	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0c7a42f7	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0ef699e1	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x14543089	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x18fe5d45	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1947508b	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x340c8f19	rtl8723_phy_save_mac_registers
+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 0x465cc64b	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4e0da6e4	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x53985ee6	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x62862746	rtl8723be_firmware_selfreset
+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 0x8e0dcb96	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa4fbd8fa	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xab241ba6	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xade3344a	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaeae00b5	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc098721c	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcbc07abe	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcf17cfe1	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd3a83066	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd549a1e8	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd9504c00	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xec786556	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf0a4f462	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfb1a5126	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04baefb3	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0cba6bc0	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x11cb98d2	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x133717f4	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2a96bfd2	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c778db5	rtl_deinit_deferred_work
+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 0x42109786	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x49f4b536	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5058d027	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x53f3bd10	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54156dff	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x749926a5	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x787b0c3c	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ca52e57	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90cdec0e	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97193c4d	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa79645ad	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa9aea9fd	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb5744d0b	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb9199219	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc2101e5a	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc9668646	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcfd4056f	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xec7505c7	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xede6c87a	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x22870a0b	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x5cf9a0cd	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x7017494e	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x8b0a1b21	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xdc8282a3	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x01d4d786	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x983f5ed4	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xd9348863	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xf7953f88	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x2e94c97f	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x57849323	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x96ae5aaa	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x03b4f6a8	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0b2bf0d7	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0f0d84e8	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x181e9885	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x186e1901	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x18d3b81c	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1c153b7f	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1f52407e	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x21e144af	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x26cd6d77	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2a3ef526	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3571afb2	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x36af6043	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x36b4c0f4	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x47d0f89b	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4dd939e5	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x52293b8e	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x53b75db5	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5862573e	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5b9386d9	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5caea5e2	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x60e1aa44	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x69d06857	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6ace7527	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6d4549dd	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6f7015f1	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x700a7ec7	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x83fe3e9f	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8979d1ad	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8afb6cb0	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x91f07b73	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9df07933	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xaa1b672d	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xaa85333a	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xab881c19	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb81567ca	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbfc1b4ca	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc0cb3ac0	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc39467b1	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xccc2c3de	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdd0a7599	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe38a190e	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfb35ddde	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x069376ab	nfc_mei_phy_alloc
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x29aad15c	mei_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x6ff205d6	nfc_mei_phy_free
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x13e6f7bf	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x1eadbaa6	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xcec2a75e	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf9a42e24	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1edb2f27	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x34cb6a1a	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x55e404fc	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x8de225b7	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x223ee44e	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x6734eadf	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x70c5b537	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x886270fa	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x9ce9d1fa	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xbed4bc60	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xc8bcce78	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xd0427040	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x235d085a	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x9656d3ea	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xbf138a8f	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 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 0x5d168d74	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 0xbb88d4f7	ntb_transport_unregister_client
+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 0xdd5e349d	ntb_transport_register_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 0x9fed59b0	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xeb44d7b0	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x019e7ba4	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x06c6fbb5	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x15c33e16	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1f701581	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3294da5c	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x37d06732	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3828cc5e	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4354489d	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4388a6ec	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x438bf171	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4422226e	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4bf92299	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5b0745a9	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5e34909e	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x649dfcea	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x68feaa0b	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x71998b15	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x72753c5a	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7dc6f809	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7f5c67bd	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x81710440	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x84701b1b	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8fa6f49b	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9b05cd0c	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa2c19f11	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xac701fdd	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xafc5bd48	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb67cf80b	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc77d2371	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc8651dd3	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xca086ade	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcbab37f5	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdcd50bf9	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xee64f228	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xef78650f	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf37dc2b4	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x093ce169	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0b2c7ddf	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x10a724a8	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x173cf25f	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x2766e155	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x39678b24	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6511e93c	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8284c7d6	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9595414a	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa0b786af	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe1bcf6b1	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfef5d6c3	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0xe8a42467	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x26f01f24	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x34c6e5ab	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x51332fc7	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6b295dd5	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x7ea778b2	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x85444e8c	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xa285207d	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xbb04587d	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xdecb4119	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe0da17cb	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf93ab073	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x91c921ef	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x1591b2c6	hyperv_read_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x221394ae	hyperv_reg_block_invalidate
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xe5f73406	hyperv_write_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xfb921e00	hvpci_block_ops
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x6288d766	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x2a8ac85e	intel_pinctrl_probe_by_hid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x56b7f4de	intel_pinctrl_suspend_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x7f2c8cfa	intel_pinctrl_resume_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xcff3ae21	intel_pinctrl_probe_by_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x18dbe190	wilco_ec_set_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x2041327d	wilco_ec_get_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x78ca6eb6	wilco_ec_get_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xa66c9ee2	wilco_ec_mailbox
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xf3b54717	wilco_ec_set_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x57c46ceb	asus_wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x7557d51a	asus_wmi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0xd950693d	asus_wmi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0x51552fca	dell_rbtn_notifier_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0xa060fe7d	dell_rbtn_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x05a66784	dell_smbios_call_filter
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x12a6e174	dell_smbios_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x1b0b3141	dell_laptop_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x45170471	dell_smbios_call
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x7fd2ce06	dell_smbios_find_token
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb9400dbf	dell_laptop_call_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc2871e79	dell_smbios_error
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc8c4aaf9	dell_smbios_register_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xd6c6b12d	dell_laptop_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x8eef8246	dell_wmi_get_hotfix
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x9559234e	dell_wmi_get_interface_version
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa167d064	dell_wmi_get_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa3dcfa65	dell_wmi_get_descriptor_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_ips 0x46809fa9	ips_link_to_i915_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x659f040f	intel_pmc_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x9bd9354b	intel_pmc_gcr_read64
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xa7f53967	intel_pmc_gcr_write
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xad38eacf	intel_pmc_gcr_update
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc49eaee5	intel_pmc_s0ix_counter_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc845c71a	intel_pmc_ipc_raw_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xd2a5d365	intel_pmc_gcr_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xdea07053	intel_pmc_ipc_simple_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_punit_ipc 0x8ee9455e	intel_punit_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x06f7821f	isst_if_mbox_cmd_set_req
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x21c58190	isst_if_get_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x557d31e4	isst_if_cdev_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x58a8261f	isst_if_mbox_cmd_invalid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x861369f8	isst_resume_common
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x9a5c38f2	isst_store_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xe18f42a5	isst_if_cdev_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x1c7565c2	telemetry_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x35db93a6	telemetry_get_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x3d2a8587	telemetry_set_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x4cb51f18	telemetry_pltconfig_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5847f501	telemetry_clear_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5bb8e91a	telemetry_raw_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x665cd407	telemetry_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x6b892524	telemetry_set_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x82bb2dbe	telemetry_get_evtname
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x90551504	telemetry_add_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xb75bd1e6	telemetry_raw_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xbb9a2726	telemetry_reset_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xd14ffffc	telemetry_update_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe1eb4be1	telemetry_set_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe8847f53	telemetry_get_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xf00771b0	telemetry_get_eventconfig
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x232b5238	mxm_wmi_supported
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x61cdf799	mxm_wmi_call_mxds
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0xe26032eb	mxm_wmi_call_mxmx
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x065b4695	wmi_get_acpi_device_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x17b0f8ca	wmi_get_event_data
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x5bff0c1e	wmidev_block_query
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6068bedf	wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x68267e6b	wmidev_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x76ae31fd	wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xaba842fe	wmi_query_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xc9d4d6d1	wmi_has_guid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xd7752b86	wmi_set_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xe78182ea	set_required_buffer_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xf18bdd75	wmi_install_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x87bdf525	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xae1b3a0a	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xfa25caa1	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x085072d9	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x22555594	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x4e215fcb	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x48a3ecc4	rapl_add_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x6044711d	rapl_remove_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x748a7b21	rapl_remove_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xaaeb5c6a	rapl_add_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xaeaabbf0	rapl_find_package_domain
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x9037ef56	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xaca885ed	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xe9e2d280	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x0c70d908	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x3c75d610	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x90fd08fb	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xad359388	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xc6b6ea44	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xcabf86f3	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x8a62a500	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xc0186f34	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x03c7e938	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x11a8404d	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x129ccf83	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1485ff54	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x18c08d48	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1a11a791	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1a7932c5	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3416f6a2	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x35a28450	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x401fa62b	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4232fdfd	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4b510f46	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4ca7acee	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4da4f335	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x55501459	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x59a5b6d2	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x619edf7a	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x62b43693	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x663cf051	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x677b5dd6	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x69715e93	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7048359f	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x71513583	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7743ce8b	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7d2d8e67	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x805639f3	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x805be408	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x859e8419	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8680baab	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8a8347eb	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9245c81b	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x95456662	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x96408a45	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9e9d98c4	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb165f106	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb4aaee89	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb7b9ad4d	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc27b701c	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc2b7d50e	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcb7a48c6	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcd1c410e	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd47ba396	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe64c8ff2	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf69bc731	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0b01d774	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1354abff	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x192597f8	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x376a9d67	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3a0d59d9	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3bc72444	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x50b48c3e	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x6e48aa78	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9282f43f	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa4282c0d	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa577eba2	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb43559a2	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcbe68a27	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf1fa35f9	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf58ee1a0	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf63fdd89	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x321a4bbd	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xcc9ab448	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c7c6002	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cf9e29e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61eabfa8	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7ff195b0	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc6125854	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd93b63bd	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe13e6489	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x03103594	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0809532e	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x095122c0	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x09514e63	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d99b53f	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1330c248	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x168fe945	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x17b987d8	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x18bff8f6	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1d3211d4	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x20602d8e	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x292a4313	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x33b11b05	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3708ec1a	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4a8a22bf	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4f412931	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5ce58e24	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x61da7eb0	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x64fa4e7a	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6987db33	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6f044ae9	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7259929d	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x788e8249	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7cc2e3e8	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8294ea24	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x82955937	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9020b98a	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9b8fbc4c	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9eade7e9	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb297c02d	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbedb6ef8	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc283fd00	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc738d46c	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcaef6b20	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd9428258	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe2cca23c	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeb02b4fb	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeb560411	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xee4ad4e1	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf0974efe	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf53672fe	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf9fcf1f2	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x105c35f5	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x17c96c0d	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1f301399	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x298fe8d7	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x307f001a	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x45a8d79f	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x59169550	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7a8a14ab	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x927abe42	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa51bdb5f	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xad6d6e51	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc4fefddd	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd2686a1b	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe089a14d	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf2029f9f	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf768351a	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfa6ec8b6	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1fae3f94	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x23c102a9	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x26712560	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x33e131a3	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x41e475ba	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4be3750f	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d5ad3d1	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4fdd4c05	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5c85defb	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x61ac97bb	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6293ca2b	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x65c3b64b	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x73b36421	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x84072f12	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x988d73cc	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xab390129	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xaedd8230	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb823bef4	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd3fe2214	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe19e1c72	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe92742a4	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa2ef181	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfca774d1	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfd391974	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x037fcc7c	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x24e6efb7	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x307be564	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x351c35cb	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x391c2e2f	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x397e4447	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3bc1059c	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3c6c515c	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x40a0025e	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x415f0627	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x471a06b2	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4bd5619e	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4f7d6607	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x524c300f	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x52fc3331	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x71a1d414	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7530f84c	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x78fc9231	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x82e2b440	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x858a43a1	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x86356ebb	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8f70c0f6	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9769d7d3	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa6cef49b	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb194ed19	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcf659749	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd3447de9	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdc4d1638	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdea03676	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdea118f7	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe16ae416	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe9978958	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe9a144b3	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xec231857	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xec4a0890	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xef9a6890	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf164b982	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf46eb859	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf843aab3	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x6ad2e3c4	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x7d44ca11	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xaf81e33c	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xfbd0a336	sas_enable_tlr
+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 0xc316eac3	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 0x3a74ddf8	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5bda5d2f	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x8952d2f1	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9e03d82f	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9e4f05c6	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xbe65b8e9	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x283b6872	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x3f12b78a	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x4c9f635d	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x4fa4dc04	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x668460c1	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x80522ef8	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8ea1337a	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xd8dc1eec	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xf22fe954	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x02152e5b	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2a3e14ed	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x3e9ed522	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xced9eaae	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd7af9dae	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xf3fdfd62	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xfd49972e	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x0d63addb	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x3e5016a6	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x4c9a7911	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x7e07a3b8	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xeb66bb99	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xeec9bead	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0420cb59	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0f67e299	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1bf41671	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x290c493f	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3667c0f8	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3fc2e477	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x485d53ac	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x614724e8	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x70623832	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x76ddfe83	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x835e5dc5	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8665b43d	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8ae5fb93	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8b9c5476	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x911dcc77	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x92e1b8c0	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x969d7fff	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xab7cfbf5	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb65d4e27	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe0eb471a	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe22b9ef4	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe4f1666c	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe5ad5e87	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe850a3d9	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe9a3e8a0	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf2444396	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x3654d555	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x7db9ce81	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xbd7024f1	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-cadence 0xc20f95ec	sdw_cdns_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x5859c682	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6a845266	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6c9ff000	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x88f0043c	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe8cfd34d	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xee17a11f	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x0658c7d1	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8b05400c	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9869215d	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xb1622250	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xeee6564b	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x87a1147b	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xca58cb05	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xcc7ed944	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x080edd14	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x1c765f30	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x26e8260a	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2d01fd14	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x36601bca	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3c9a6d28	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x4644c937	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x613a6b5a	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x63551e6a	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7d14fd18	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7d57cfe9	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa197978b	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa205b62f	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb414dade	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc94cedcd	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd3aaea89	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xeda57597	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf7c7aff6	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x00edcc24	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x02138a36	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0557ac41	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1e751cb6	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1fb710c0	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x22a6cba7	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x31e4a819	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x328df1df	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x35129a1d	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3fb4a591	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x42edc8d2	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x460bf7c8	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4addfa1b	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5681e9a9	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x67374721	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x751b3577	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x78a8ee56	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7a63f81d	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x85b5c5f0	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90c136af	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90f7d6b6	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9308b56a	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x986fcc70	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xabd32a90	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xac291262	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb15b9ec4	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb574f0f5	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb59cc20	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xca2d24fc	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xce97df34	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe2b11816	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe4421901	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe98d1b45	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xebba0324	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf05a0ebe	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf8e4f5bd	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfe194698	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x03516408	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x1b0975c8	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x3de37322	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x77c0d2f3	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x7b1f9c6f	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x8ccba4cf	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xc5a30c12	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xecf719be	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x15b288cb	comedi_pcmcia_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x3adc71ef	comedi_to_pcmcia_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x4cd00c66	comedi_pcmcia_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x5b1c9f58	comedi_pcmcia_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x67359e8c	comedi_pcmcia_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xafe328f1	comedi_pcmcia_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xd009404b	comedi_pcmcia_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x0dcab7ed	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4ae52e01	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x5e2f035a	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x72e4fe08	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x758c94eb	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa3c94ae5	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0xc2828dfe	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x3db97c5e	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x975502c7	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x1f08d901	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x01929a12	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x39d37dd0	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x45702731	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x66f0b617	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa114f04d	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa8206a14	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb1715450	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb4637d01	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc6277f7c	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc7fc1852	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe8b6d64f	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xef845c27	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf4498430	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x219455e6	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x449f8737	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x851b05d6	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x088dad77	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x800ff90b	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x8dea3703	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xb339ef08	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0c8f3c69	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x17c7027c	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3043d333	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3798f113	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4e5040fc	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5606f9dd	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5dd53593	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8126ba7b	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x83824e23	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x86f03892	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x88cd8976	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8b8cbf25	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x986814a7	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xa7146ac2	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb4f58cb7	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbf1da36c	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x6dc4484d	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xf891a670	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x28196998	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x29ac56ca	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x70e36a75	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x8fb89d30	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xbdc00153	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x16387f8f	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1c60f51f	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4aff141f	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4cfa129a	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4ec83f94	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5a233cae	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x60824036	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x72823105	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7487a8c9	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7b6793e2	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x80383284	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x81526dfa	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x819db321	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x841a612f	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x860dffc8	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfe7d150b	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0743bd44	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x9a982668	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xa944c53c	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc5d8dd77	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc8fb249c	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xfba691bb	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x2a317387	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x2f6816c3	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x4a731f6e	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5ec525ee	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb7a6adc5	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xd6de4db6	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xeede59d5	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x1f319100	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x727543bd	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xba99c68c	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xbcee2fb7	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4b376635	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6902b4f9	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x896cbb84	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x8c5ed5fe	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa7fb5427	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb3a6587e	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbac4a87b	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc6f85663	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd3f16775	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdd7320b1	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xed5dd7ba	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf6d6a168	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfbe8cb26	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1e514421	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x31954aa1	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x47b2245f	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5089a362	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x56999614	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7034953a	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8ac945b9	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8e6df6a6	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x93c1d471	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xbc571a90	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc1ce3d27	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc411a2fa	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xef2325e3	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+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 0x944132ea	gb_audio_manager_put_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 0xe88d2704	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x027b738d	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x31bb833c	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x360edcc4	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xcc1ce842	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0xec89ff79	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x0216d25d	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x05dcf4dd	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x08f71c84	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x24043873	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x46b6f6ff	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x55af8df7	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6696c0ea	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6eb302a1	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x78cd513f	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x94ce50ff	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9a233597	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9ef3b4ac	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa8e06f70	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd8c4e0c6	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd8ebaa20	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf38fe6b8	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfe6dda50	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x06be832f	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1db8ca1f	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5b0d8314	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5e401e9b	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6c9db43b	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7e186c97	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xaa16c53d	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbf5e0656	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc10f7200	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc9d99415	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xdbc2d343	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe83c545b	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf224e24e	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xfb174a6e	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x02c29a26	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1f77e23c	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2851daa9	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x45b7d8dd	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4ca37cf3	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6610bad2	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6c6d60b7	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76def27d	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76e8bffe	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x86df49ef	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbe0ff708	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc037a0ce	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc4a3265a	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc911e7f9	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd44f47df	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdfbc50e3	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe4dc71a1	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x1eef86cc	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x370cb18c	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x97765de3	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x05f04543	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x41e3f50c	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6c9de759	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6d4b349d	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa697faff	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa6dfe633	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xda7b625d	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xdf96ceb6	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0871a041	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x08be5972	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x08d512e8	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0e46284e	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x180f8071	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1890d3a9	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1b6e00ba	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1f722272	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1fcd63e5	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x21ca9083	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x39f301f5	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3bda59b6	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4451a14e	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x45bc1610	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x45c2ffe6	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5c73eaf5	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6da96340	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x73ea3c77	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7927e640	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7fd85049	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8e26208d	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8fc8d2c0	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8fc99146	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x97745cb0	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xac778c3b	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb1b6a0ec	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb3186d23	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb512b137	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbee3157e	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcd8b24df	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xda0b6384	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe0c22d0b	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe89e20c2	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf42abdb1	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfaef47ab	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfe264591	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xff337e1a	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x4e2e2493	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x166adeaf	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x3176e36d	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x5dfb203a	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x68fad5d4	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x79938473	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xca1cbcc6	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xf5ae2a2d	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x19cb1566	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x2a5c8d82	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x425cbf0f	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5e75a0d3	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xb0a790a9	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xb4b32f8b	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd97e6794	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x08759db6	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x17cdda43	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x188603ee	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5002fd96	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x544c7803	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x97ddb6b3	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9a7143d5	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb8db9ec6	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc6202565	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd1d4271f	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd3fad561	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xdfd8c6d3	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf9541a68	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xfd0f9dc8	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x112102ae	int340x_thermal_zone_add
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x7929fad1	int340x_thermal_read_trips
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xc89259f9	int340x_thermal_zone_remove
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x09d5c471	intel_soc_dts_iosf_exit
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x26ffc82a	intel_soc_dts_iosf_init
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x9ee07b81	intel_soc_dts_iosf_interrupt_handler
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0xd06dc553	intel_soc_dts_iosf_add_read_only_critical_trip
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x01d23ee1	tb_property_create_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x03be0d9c	tb_ring_alloc_rx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x2f6d0162	tb_service_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x393b4f2f	tb_property_free_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x43af6f6c	tb_xdomain_request
+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 0x53d98cbb	tb_xdomain_enable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x55531177	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 0x693dcf72	__tb_ring_enqueue
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x73ad2acb	tb_property_get_next
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x785eb82c	tb_property_remove
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x8b62f95e	tb_property_add_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x9a7a9062	tb_ring_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa14e3096	tb_xdomain_find_by_uuid
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa3d2b403	tb_property_add_data
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa67e8a33	tb_xdomain_find_by_route
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb7c7cdce	tb_property_add_text
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc132eb57	tb_xdomain_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc5097be1	tb_ring_start
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcafb4b6c	tb_xdomain_disable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcbb11657	tb_ring_free
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xccbcfd08	tb_ring_poll
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd0d6142a	tb_xdomain_response
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd4004ed5	tb_unregister_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xe334db17	tb_ring_alloc_tx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf1cfd1ff	tb_register_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf76028c7	tb_unregister_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xfd719dd4	tb_register_service_driver
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x63796c8b	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9f6487cb	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xf74d97db	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x6ed5be3c	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x8da2cb49	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x19795927	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x1f310789	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x2873e595	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x346eb3db	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x4e7a9944	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x6ffbfd76	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x973579f2	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xc74c3af2	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xffb73a78	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0ff71107	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x58a5950e	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x955be5f8	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x966e7770	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xcd5dcaa1	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xdbd5118c	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x1fb1554b	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x2b268e0c	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3b981984	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x5d5ead68	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x708ac16b	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x84f5a0f2	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8af896d8	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8ea59780	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb1c22ff3	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc33e14f2	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc4aed1f3	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc90eafd8	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd73e2709	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe313f2df	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf4d1a6b2	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x096cf83b	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xe40ebb98	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x259eaa7b	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x8aa38281	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x01be4fb0	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x03f12d0f	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0b3081c5	fsg_store_removable
+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 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 0x1dc1c297	fsg_show_inquiry_string
+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 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 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x447143a8	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x52d88e9e	fsg_store_file
+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 0x56afc93e	fsg_show_cdrom
+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 0x7215938d	fsg_show_removable
+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 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x86f3a425	fsg_store_ro
+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 0x98dd35ca	fsg_store_nofua
+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 0xa42d853c	fsg_lun_close
+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 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 0xbbaa9e35	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc8c9d049	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc9b79571	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcb1f183f	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcd7c3ebb	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xceb822ad	fsg_common_remove_lun
+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 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x06b874cc	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x3b7fd1bc	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5ddbcc64	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6a58ecd2	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6f8bd193	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x72781dda	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x77f86a8b	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa3f6c092	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbc8e56f1	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc63917e0	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xcc4cb2b5	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd3c699b0	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdd9a7dea	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf33e73df	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf560ac08	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0bb16325	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x16541b5f	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1c5e932a	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x20c7ea23	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x24037e32	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2f4ae9e6	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x34b72735	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x529170d8	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x589de08f	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5db6b115	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6038f2d3	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x63b71b20	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6a5315e8	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7578ca7c	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8df4ba6e	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x94afce37	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9c051631	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9fce4d27	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa5e24976	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xad59c58b	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc0d65843	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc38d9eec	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcd39e6fe	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcea89294	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd468ec6c	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9384364	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9c5f1d8	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xda263ed9	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xde6b8356	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe3d155d6	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xffbddcce	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x03139782	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x039dd5dd	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x105f6e67	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x127dedce	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x67195f29	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x6d32ecde	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x89a693fa	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x9469b0c9	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xcbe02f0f	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0eacdbec	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x140ec084	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x18b31ca7	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1ca11dd4	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1e0f6bda	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2e7545fd	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x31fa670f	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3a1f3d62	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4aeae3f1	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4c62ca29	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5213c4f2	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x54fd7534	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x80704f18	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8329c29b	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8bae270f	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x99cde383	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9b66c307	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xad781c61	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb213339d	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc0d8356c	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xde402870	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8457822	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8564428	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xfda2caea	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xffb6e9ae	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x308f8452	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x98686a28	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x63310f1d	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x6b17dcfb	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x72f168ec	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x830551ba	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x99d99ee9	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x9b37c224	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe22c71f2	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe8522f68	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xeff5dab9	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x23f03cd0	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x2fd7878d	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x785263aa	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xe141ad73	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x01835712	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x45976c48	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x8d588f87	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xefae2c58	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xfd2d30fd	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x429354f5	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x5bfa6400	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x6a1d2d4a	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xf32a18e4	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x0c77c2f6	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x09600323	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x153ba30e	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x19db4972	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x20fcffe3	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x384ff17a	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3db8f270	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x43df5260	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x54ae41a0	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x561dff0d	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x66ecd7cb	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x76da7d73	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8da95d07	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x911cce22	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x911e06bf	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa53fc978	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb5e15641	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc3a497ae	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc41605e6	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc7368c4b	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xdbef9061	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf27dd6a2	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x31dfceff	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xe4af1828	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x03ec74b6	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+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 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 0xcfba7d62	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1197c16a	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1666cfb7	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1735e773	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1e5e8f89	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x257c63fb	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x27b9d25b	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d58eb95	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33b11be4	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x39b3957c	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e45b991	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e5a4666	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4351608a	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x46ba84ac	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x55d7e54a	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x59377ee5	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6784070a	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x727a4dca	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7f363757	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8ddcbb17	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8f5688f5	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x981a486f	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9ff4d9dd	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb0d80805	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb2fbcda4	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb6817bdc	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc5ec62db	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd4e16737	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd8173e91	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdc0a4b16	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdecf88e4	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe0aa9733	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfb0539f9	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x3f1e9106	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x443ebd54	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x4556b6f0	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x7acdf72c	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xda353a25	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x192fbd8f	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1b07cd4d	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x23df2304	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2e8d508d	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5270c87d	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5beb54f2	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6a0dd8da	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x76e90b64	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xad3fc0af	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb33bb1ad	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb92edda7	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd4247524	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe7db58fd	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x3a3a8a5f	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x02f74916	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x07ccdbae	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x08f51cfd	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0f619a8b	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x24b7cda2	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x28198fab	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x29677736	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2ac21040	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x366a8d24	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x37048dac	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3d5a2b6f	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b99adfd	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5f5fde8a	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x67231965	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6de1a0e6	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7192226b	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x769dc365	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7734d0a7	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x780ed617	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7fd1185b	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x809c4b28	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x82bbe82f	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x84f299ac	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8732c1cb	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8a6fc245	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8fb873f6	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x92686913	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa19e4827	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa1f784bd	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xac82a160	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xaf0c05fc	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb141c15c	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc709259c	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd47baf8e	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd4fa02cd	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd63c6cff	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xea2e8f77	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xeae63caa	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0x2c63e051	apple_bl_register
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0xdab0f892	apple_bl_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x02954c50	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x0d4a6ef7	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x26c1c8c9	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4f8003aa	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x5fb65f28	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x6dd209cb	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfabe2bc0	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0xc3816d63	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x4247a218	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x6abbe1dc	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x43e19f6c	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x95e38796	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x016e6c20	vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x90c018c6	vmlfb_register_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0e1cee08	viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x1f942c01	viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x30cc9311	viafb_request_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x31469540	viafb_pm_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4606f8d	viafb_irq_disable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4f863e6	viafb_pm_register
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcaefb732	viafb_release_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcd538333	viafb_irq_enable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xfff2dfd2	viafb_gpio_lookup
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x0e338292	visorchannel_signalempty
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x2775591e	visorbus_disable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x4de03230	visorchannel_signalinsert
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x56401853	visorchannel_signalremove
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x927c6da0	visorbus_unregister_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xc455c651	visorchannel_get_guid
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xde6aca35	visorbus_enable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xe3f34226	visorbus_register_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xe7f8b7ac	visorbus_read_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xf28be861	visorbus_write_channel
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2797449b	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x48e251af	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x59e845bd	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xac916f28	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb4995ff7	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb9018be8	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xba864812	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc2d46f18	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd4fac0b6	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xe28cef5c	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xfd7d8fd8	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x1a9ce45b	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x744133c2	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xa2d063fa	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xae25a33f	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xe64c8f79	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x1a95d64c	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x2da2e9b0	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xa36a6d16	dlm_posix_unlock
+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 0xd7e95d98	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xf91a80c2	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x1414747e	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x39a3b6e4	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xa068057c	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xaa2e6ec9	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xc8d6cf8c	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xed704a0d	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xfb939719	lockd_up
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x03267269	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x034e9ecf	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x036130b1	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x06bf6d36	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0775041c	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x079f19bb	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b7c08bf	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0cf622da	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0d8c6b2f	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ee696c0	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10799a76	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x12f39ed1	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1bcf536f	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cffe7e6	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21daab40	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2369e0a6	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x23c589a7	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24d6b400	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x25d844b2	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33f7fd80	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3571874c	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38dddb27	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3e4786b0	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4046b25a	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4611dbcd	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x49c1e759	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e12bb28	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x50047d93	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x504f2f4b	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51581b10	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51890749	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52611590	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x57158f54	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5894c7c1	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5c6b853f	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5fbe71e8	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60c33132	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x628c558f	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x648dc905	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64ddcbd7	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x65f0fa73	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x664b2a8d	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6c4520e4	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6cbbe8bc	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6f8c8dd3	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6fbabb38	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7307fbbd	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x74649160	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7bc85a4f	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d04140a	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8087ac85	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x815027c2	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x85394422	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8785b736	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x885ec051	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8c8c4a8a	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8ce6079c	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f76b28a	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f9e24b0	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fe81957	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94abcf29	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94b0b07f	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x97b26fe9	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x992f440e	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x994d8fc3	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9955d0ce	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9a35ca8f	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9b3a711d	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9cb72267	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d3d47a6	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa021c4fa	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0334134	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa098b3cb	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa3ef5779	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa5998ef3	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa69f1ec5	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa46e902	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xae94fb2d	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaef906fa	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb0873e1a	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb0bf65c2	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb1dfc5fd	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5d97a20	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb68d27e2	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb91d50e7	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb9a36215	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc3bc370	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbd045bb0	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe25f07a	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbf757967	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc333d371	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc76c04e1	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7e24844	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc938bb75	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcaefd6eb	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcb15e2a3	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd15ee0e7	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd27a4519	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd45573ea	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd49d1b8a	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4c1219c	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd75dc896	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd7f2e58b	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb4903df	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb5bc1a1	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb85ee75	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc5fe18f	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc93ff6d	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd006d83	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdde29f51	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde970d71	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe12aedc6	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe33cfbed	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5009af8	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe62c9f9f	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe69642e7	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe9029c71	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe9e25ea1	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeaf796e0	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee577788	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef0ba93c	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef727e8f	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf3daeada	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf434f397	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4949255	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf7edd37f	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf8643f4b	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfab02cff	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfda462da	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xffc6a541	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xe3766efa	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x058d9836	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0c896e41	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0ec6c359	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0fc836db	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1107d7d7	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x113f62c2	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12a5b2bb	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12eeda31	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x13ee0fa7	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x143af321	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x156b5c01	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x27b50ea6	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x28adda73	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2a502f62	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2b8944aa	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x375f6974	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x381aefe1	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3a6072d1	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3ef266ea	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x40db5d27	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4139f1cd	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x414755f8	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x41855b35	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4c0fa0a9	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x55f0d6cb	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x561b0ce0	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x57b58fe8	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x63060ea9	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x658ebf4c	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7376ed7b	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7627aaa1	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x838eaf5b	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x85f2ee24	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8798f33b	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x88b306fd	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8d60c5b5	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x99a057b9	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9a4cf6c6	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa4c551e5	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa572c18b	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae9d838e	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaf692a93	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb05494ff	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1b38b56	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4a38c15	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb7d40fdf	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb870c517	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc6be6b98	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcd992ba3	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc486ae7	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf5634fe	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe8d46f2b	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeb431421	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeebc7536	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf31ce3db	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf95c9c44	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc357629	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc9dd65c	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfdfaeea4	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x3d588eb5	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xa7d43b94	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xb0f80883	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x82691866	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x94af196b	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x0f0b37c3	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x52adcffc	o2nm_get_node_by_ip
+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 0x63ca5476	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x947c1875	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x9f900cdf	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf87aa928	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xfdf6464e	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x008cbaea	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x37563519	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x4d803ffb	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xb787af5f	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd22a44cc	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd366407c	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 0x112bbedc	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x61d3bd7d	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xce3cf660	ocfs2_stack_glue_unregister
+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 0xec06b5cf	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x2336a819	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4fb36c6c	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xbfb4a112	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x4965b9ad	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xd8683b35	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x00fc5293	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x234aebdc	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x16134bf8	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x27e13cc3	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x627242d6	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xba817c9e	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xc267d622	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe83987db	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x521716c5	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x744c27a8	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x783347fa	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xaa978e92	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xac0e4f7b	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xbb501398	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/stp 0x61b45cfa	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0xa55797e6	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x497b09b1	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x72967cec	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 0x2b00bc57	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 0x21152fdc	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x31e8886c	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x8ed2c0a4	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xab2a289b	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb5fe8fee	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb608a4ec	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc0dc5d93	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc8c0089f	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x2fdeb8b0	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x00e63127	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0d19e1bf	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x11444a29	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x187fe726	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1be0e9a7	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1d7ed853	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2392b9d9	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x256b6df4	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3302164c	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4b434a90	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x51ad9563	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7ab87346	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb6dffeca	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xda6072b5	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdd27bbec	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdfb0ab09	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe45774df	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfb8fd290	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/core/failover 0x21c70a89	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x67221c95	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x800bcbd5	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0b889e88	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x132f1a1a	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x16089f7d	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1d596e86	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1e6c4910	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x211e5037	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x21213c9c	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x21312680	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2be1be50	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2e7509f1	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x367b33bd	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3802816f	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x382acee0	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x48d6526d	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x574afb75	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6695baeb	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x674ae378	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x69137bd1	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6c4afcb6	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x76210c40	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9f78eda7	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa074a25e	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa68fde7d	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xabd85cc3	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xaf64d4fa	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb110c2c7	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb5426089	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb5de8593	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb65e3178	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd322c2b1	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdcaf6b73	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xea602b6f	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xeb30a9a8	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x18d40105	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x380b5978	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x5a11feed	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x6feefbe6	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7608cf9d	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x79161dd0	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x15f07714	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x20a8fa9b	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2327f704	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2a01257b	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2d80afb2	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x385d4563	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x41b2e9c4	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5d29dd85	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x76e7970b	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8684fd03	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x87af0bb7	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8bae236a	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8f4441c0	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x943394f5	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9da6c947	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa36f4e6c	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb31b4532	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc79ba49a	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe3d712c4	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe616cad7	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe77528a0	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x6f853c89	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x870d0d62	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9813c2d6	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xca473689	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x171e2fcc	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x4059d28a	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x527099aa	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xb7380910	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x0e82c123	ife_decode
+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 0xaf3b9692	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x580a4004	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xc1b4ec2a	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xcebfa973	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x81e8ca8b	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x9f84f164	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x0c8485ae	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2d9948da	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x5a04c5aa	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x7b80f11d	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xab664ba6	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd2506830	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd61bcef5	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd722e03a	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xdc1ea79e	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xc6eb2c4e	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x08525582	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1cfdc9f2	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2574a0e1	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x290eceaa	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3679bcdc	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3df646cc	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4f8e5b1b	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x542a352e	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x63ac51b1	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6c071740	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x76fb6f18	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xaa5b579e	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbae3c1ce	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc810850a	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcfab7734	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd4cc5268	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x1d524a03	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xf60da4e7	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x541adcf5	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x40965002	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x03ae98ca	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x0e887d90	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xcfc66dab	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xe05a3055	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xed39ae65	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xf367621e	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x63fb6d52	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xcbb93c38	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xef4d9262	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x13846335	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xa8991aba	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x0a3a0bc0	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x18fbc6e7	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x6d173b70	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x7f07139c	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xeb8a3687	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x05cfa44f	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x171985a6	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x4a95bed1	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6f6d998f	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x74225573	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x81d38ed0	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe1486c57	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe5a776eb	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x73c38332	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8a74d8eb	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xe8dba408	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x435088c5	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x5cfc7971	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x7e664895	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x97624c64	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xeb249851	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xbae33289	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x0de5c6a3	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xe6aac83c	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x056a9f46	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x3d71e89b	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x88509e62	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xbdb36bcf	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xdbdc3399	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xe4ae60c9	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x7400c377	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x372ee6af	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x656078a4	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x8b1030db	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x308fe07d	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x62cf142b	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x07c8c587	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0cff621a	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0d7c1580	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x21e70709	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x304134cf	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x32f772f9	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6141fe6d	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x619c549d	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9ab38d02	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9ccb680c	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa0c096bd	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa7a74b5c	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xad7b7bac	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcb81b89a	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd3438fc1	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe9f678f3	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf9600455	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x5c6683da	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0acdfde5	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0b568175	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3b8f4d42	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x45d0b48c	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x52036bba	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5de699c2	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5fbd0134	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6e3ef02f	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x72aeb8e4	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7506d082	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8caa53d2	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xbee82328	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc9d8dd1b	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe1e0f571	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xeb080207	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf0e23987	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x4cc6cf9b	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x86190543	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x92e1be88	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xa7c307d1	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xf70b7be9	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x04b4ac2a	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x098016f4	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0d7a3d00	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1974879e	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1a3b2014	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x26656e4e	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2d03f0bf	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5713d5b0	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5a72dbe9	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x63a09cb0	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x79bbc4ff	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7f2cd6c6	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+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 0xb75b73ea	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcc91c67e	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd078da39	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd4c92a9a	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe1457f63	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe923c41f	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x0539e277	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x2dda0365	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x35e15db4	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xf7614808	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3af11b19	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x5c8912ab	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x73ea5608	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xabb5bdc0	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xfdbeb429	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00d10b0e	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0209b0d1	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x023073de	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0c9174b8	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x102bc6d8	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11311f3b	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x140ca221	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1781c9f0	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x19be7ad8	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1c32af18	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1e074e29	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2194aa94	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x220f86a8	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x234c14d8	nf_connlabels_get
+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 0x2ece1211	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2ff23b8e	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x351f0718	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x37698534	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c30d2bb	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c6a7d24	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x41b8c746	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x436d480b	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x455d6084	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x45b0bdb2	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4624141a	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4cd4a538	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4e0e4752	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53278b37	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x579cfbcd	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x57a1ffeb	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5814d68f	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e1a8c72	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x638a9635	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x64f7d0b3	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x659e5491	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x692f2da7	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6ad41954	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6b54ff14	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6f041885	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7071ba3d	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x732e3cdb	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7354b8d5	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x74a98ac7	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7ecb4176	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8225b1e9	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8333c07b	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x859ba820	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x85a938b2	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x85bb4f32	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x866c6d76	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8b120c73	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ba06b73	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8edd5a74	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x90913e55	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x93bb2b62	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x965e26d4	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b398f17	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9e40cf45	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa1dbdec5	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa328113d	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa608bb5e	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa9a7e047	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaa0c05a9	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xab6bd812	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xac91660f	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf2cf425	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5227d69	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xba141f7f	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc3f3a03	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbf8d2711	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc1a0bade	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc435a15f	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc4e68675	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xca668c3f	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcc3a292d	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcf18f453	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd72aaadf	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeff03bd8	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf357eafa	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfaeaebc9	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xffd26add	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x2be73a7e	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xe5e60255	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0xf933c06f	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x062b3122	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0c762e44	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x23ed9baa	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x31271c78	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x4d1fdfe9	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5463707d	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5a2a62cc	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbe86a2c8	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc0e2c300	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd36eb8fc	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xecaa306c	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x2750c490	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x482b0fba	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x7259c762	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xb1b65a76	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x054e82cc	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x07be0d46	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x1288c916	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xd39ac593	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe8a010a7	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xec69f4dd	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xf3451a57	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xda560995	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x752cca4a	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x17bc4334	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x67459825	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xb5a6aa46	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x33288167	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3c4043d3	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x658389e4	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x69b2c831	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x83053a26	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8e65fa53	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x9e7ba47a	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xad677916	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xaee68c89	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe4bf7703	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe57d7314	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe9d1b419	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x1ca95644	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x472895b0	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x8c99266f	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xb22b94bb	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc1f290a9	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc22fff2d	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x00310030	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x02d40f43	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x16bce04b	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x20ae5a75	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5dc0d007	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x70840f3f	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x83887344	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x8aadf8cb	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9dd93a48	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9e7494d7	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9f1bc600	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xaf9b11d2	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbc70b6d3	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc6d9d1db	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xdf17fbbe	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe9d7fc09	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x01275564	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x11a83247	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x3f272793	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x7e0e8f83	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x82fe18c7	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x842e86a4	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x94350b99	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x957e0953	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xaa35796e	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb605856f	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xdea5da53	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0206af81	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x07a8e3a2	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x10bc04bd	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x17920a11	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x23d49f1a	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27182c80	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27c96a06	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27cbe494	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c7d6f1a	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x30ee1945	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4325d9f9	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x49e77951	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x506693f1	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x599f2612	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5a69c2ae	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5dcba78d	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x64864561	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6aa5b718	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x762bf563	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7ca03dd2	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7d78c008	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x897c6247	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8bd46be7	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f868156	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9ca9e350	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9ff9bcd1	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa6c93280	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xabf20446	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc987dc16	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdf92f4ba	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdfbfa01f	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe1617752	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe9ee370c	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf3c3ac1e	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfa3ecc0b	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x09294ac1	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x99fe58c0	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb31a127	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe17b1986	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf0e3d791	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xfd992547	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x2b7f84b7	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xba939cd1	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbbe42b49	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x12f0b442	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xe6a54910	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x3a78d1fc	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x523ec703	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xade3de59	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xfd023520	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x02150a53	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x93828844	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xc59ca637	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e5ad9d	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0caa6c31	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x109a7f4f	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1ad96e30	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1b97c65f	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x29d34c96	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2c076c78	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3e779048	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x409a2042	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5ba68d8a	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x71efca9a	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7ebd4356	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x93df20ce	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa3678848	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xaa12e960	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc53d239c	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd6c59c5a	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdaf0e9cc	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe3da254b	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf6cbe20a	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf72aaf20	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xa3621e2d	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xefe3fb0c	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x6c879a5a	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x7223d556	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xccec017c	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x11c32781	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x15beede7	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xb22ad799	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x279a5d3c	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x4858b5cd	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x06634b69	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0d16ae89	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x27ae5d40	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x419bea5a	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x67061b07	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x9d4896c7	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x0798d116	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x2e62ef93	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xce20a722	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xec3692f4	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x056b49fb	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1d1a675c	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2c53aba0	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x394d18c3	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45dfc8e6	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4ba85190	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x56ef1e55	rds_conn_create
+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 0x5ccebecd	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5de34234	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x643864a1	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6a3a5d99	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8645adb1	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x951f4631	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xae4f0d8d	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb5ac7b67	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbd66b52d	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc20214a8	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc635da8f	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc8629576	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xcd1ee8c9	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xce9cd1b2	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd77506fd	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe1d45df6	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xeb8393aa	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xebde2695	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf7fb9df0	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd144d58	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd22dd56	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfeed8925	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x325d20f1	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x3e894146	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x775d6126	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xd7829ba8	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x2f363ffb	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x33176dd7	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4a94bfcb	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x5ef62d55	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x72d5a5fd	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa332aec5	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xaac1348f	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd2606731	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd36a9e2f	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe1ecf38b	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x23a7db52	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x80984829	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x9a7a4964	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xca1126bc	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x01f38afc	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x026f062a	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02744b65	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x077082cd	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07b3a173	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x080fcdd9	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0bf255da	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0cf741c8	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0da26b5e	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e47bfb9	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e9ad843	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x110b8939	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1161a64c	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1236b768	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14101e7d	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x151e205b	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17a629a8	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x191112a0	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b0eee82	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b12afa0	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c748c30	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1daf2046	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f034c6a	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1fcffef0	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20e5a1d2	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x215317ef	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21dc845d	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29ed5fb8	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a287546	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a897b61	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cd2bf56	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d424b29	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e4a7aec	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30c95117	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x32b95f42	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x330d7a72	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3426e2c3	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34cbdba1	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x371f4e07	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3ba159b3	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c8bd7e5	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f7cb5db	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x409fbf33	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x44cf2ac1	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x451dd0cc	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45672f59	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x475b74c1	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47ae660a	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47f9dcb1	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4823eb53	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48bbf655	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a334881	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a6f8ab1	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b5cd3b9	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d26b410	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ff66699	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51830ac8	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52216d6f	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x523cebb1	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x528c55d9	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52a30a17	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x535ac220	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x544c5405	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55847bb9	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56a9ce52	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x574f7604	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5766fc8c	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ae96b46	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5bd7eac1	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ca79a76	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ccc061d	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d61c462	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e40704c	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5f6bde97	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6150ef09	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6186cbec	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6213e870	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62674f9f	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62cb1465	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x658cb4ee	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6656fb62	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x667ea4ed	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x673cebb7	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6774f279	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67c6ef98	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x686e7989	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6893f71b	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68c86beb	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b45b19a	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b72babc	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ba3d0d7	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6cf99586	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d61a37e	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d6f261a	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e1805c1	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x700d6a1c	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71b77009	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71e31883	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74b35fc5	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x753095ad	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75511bb9	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76844d77	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76a31429	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76d187f4	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77366839	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79b43a4e	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b2208f3	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b570e73	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d58a7e5	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d5b84c2	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d6373df	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d884872	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7dbf8152	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e64080c	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f124676	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x808c31bc	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81d101a8	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8208f569	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82b863e5	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83260430	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86d2df27	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87ece691	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89bf6a18	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a24bfe3	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a48351c	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c4aafed	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c8a734d	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c9abc3f	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d26561b	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8eee13d8	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ef6b17b	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f043e38	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f25ba33	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91d415c2	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97160bc6	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98b534bf	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a080383	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b1a31dc	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9cc946c9	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e43658b	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9eced009	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa015b97e	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1a09675	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2dff074	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa538ea9e	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5d6148a	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6169095	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7dccffd	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8a1ee57	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8d7e8f8	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9d6a83b	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab94e807	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad09c41d	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad58dd2f	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaedc8a0d	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaff1ade9	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1109dc8	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb11af82c	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb12cc9d2	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb25d9c5c	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4317502	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4402b7d	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb448e6b3	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb55153c5	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9cfe0f3	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbad01110	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc8c59bc	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf03d014	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf285e28	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc13d05d8	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc23d84e3	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc57f18c3	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc63c5f0f	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6736c6d	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc71e6666	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc904ecc6	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbb38625	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf62685b	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf81c84a	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1ae7d43	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1eac200	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd25c5d6a	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd27357b0	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2a18bf3	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2a90a48	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2b6dcd6	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd3007041	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4ebd7f7	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd563e4d0	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5ea9b87	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd70b82e3	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd8849188	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd996e672	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb7e89fc	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdbecd76f	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc2ed26f	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcc020cc	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe090faa8	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3714243	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe460fd01	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5a2f17c	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe73ad5c5	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb640a7d	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec0bfaae	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec85e421	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed6a748f	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef076dca	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf26ef4e9	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4955973	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4b55ddc	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf5a61316	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf5d139a0	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf64eadac	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6eb171c	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf894caed	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf911fbff	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa6619d4	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfac8d93d	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb05c94c	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfbe0dc6e	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc8e38ec	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x934e022b	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xee81e404	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x019c4377	virtio_transport_do_socket_init
+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 0x09f9b0e3	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x319d4500	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x336ff10d	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3c255d28	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4485b97d	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x47970845	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4ccf033c	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4f338e10	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x53385f02	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x548ee720	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54f4c4df	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5cbb2557	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x60b2e4d0	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6cc01dfc	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7240242e	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x73287882	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x733cb535	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x78fd59a9	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x99444737	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa699e413	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa7ce92be	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaa542ba8	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb512ea7b	virtio_transport_dgram_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 0xc6bd1ddd	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc8243a4d	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcf722c23	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd9116da5	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdaf24e7b	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe03165e3	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe03a7d13	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe705839d	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8d3001a	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8f14dff	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xebce06aa	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf2594fd0	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2a3ac3d2	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x36321487	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3657ca3c	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x597c05ed	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5d725f1a	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5e023e50	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6dea34f9	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7a5569c0	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7c10476c	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8a1dfede	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8b657250	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x944cc857	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9abfc029	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa390e365	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa991db8d	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd6a3cae0	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xebd56fa0	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfcfd016e	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x00878382	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x1984b891	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x27eb0fa2	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x678fb415	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x71cd3ae1	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x751aecfb	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x852edfae	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x94644667	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa600bf24	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb7276f22	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xbb3698a5	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe25a02d5	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe7672709	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x00713e19	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x01ddb67c	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x048d76e7	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1b0c194a	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4deb9d37	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x722eb0be	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x78c7daac	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7aaec51f	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7bf93d3c	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x905417f3	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x92c5d424	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa6c39599	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb6bb25c1	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xbd4c3eb1	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf8a39636	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf8d1ebfd	cfg80211_vendor_cmd_reply
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x5a10eae8	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x7e527c31	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xb8ff4768	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xff472255	ipcomp_output
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x8b7fad6b	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0248b1ed	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x1237d07d	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x21ba2369	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x350c927d	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x36bd0b6a	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4e602eec	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8271f0ec	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8f70afdb	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbf099424	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc3989c8d	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xdd8062a0	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x4e2e40dc	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xb8513413	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xd20e6aa9	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xdee950bb	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x239c3ae5	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x27df6e81	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x53a6e390	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x5e8d0e56	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa53ddb68	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa8507e70	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xad4cc94d	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xafd6e7f4	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xec70b073	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xff8911d4	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x12100c67	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x2759510a	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x28b8facf	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x3b58236a	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x691f68ee	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa6b8c58c	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xade9de2b	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xafd1db0a	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd2bb874f	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd8931f95	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf7544c08	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x03d35520	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xa2902965	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x29adbaf6	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2ce9e2a0	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x360ecaa9	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x373139ad	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x42528c77	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x44810a89	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x76d1e0de	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0014de03	snd_hdac_ext_bus_link_power_down_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x001c207a	snd_hdac_ext_bus_link_get
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x054614db	snd_hda_ext_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0935046f	snd_hdac_ext_bus_get_ml_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0e95c753	snd_hdac_ext_bus_ppcap_int_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x14fbd061	snd_hdac_ext_bus_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x15d54fe7	snd_hdac_ext_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x164dbfd2	snd_hdac_ext_link_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x19767116	snd_hdac_ext_link_clear_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x1c7d4be3	snd_hdac_ext_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x239aa111	snd_hdac_ext_stream_set_spib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x24a31dc5	snd_hdac_ext_bus_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x27a2c789	snd_hdac_ext_link_set_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3200b77e	snd_hdac_ext_link_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3d7f58c4	snd_hdac_ext_stream_set_lpib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3ee12e25	snd_hdac_ext_stream_drsm_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x4c7e54db	snd_hdac_ext_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5a2f8aa7	snd_hdac_ext_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5dba18b1	snd_hdac_link_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5e2fc5cb	snd_hdac_ext_bus_link_power_up_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x638b662a	snd_hdac_ext_bus_link_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x7bf3ea81	snd_hdac_ext_stream_set_dpibr
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x88450666	snd_hdac_ext_bus_get_link
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x90eaa086	snd_hdac_ext_stream_init_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9bc2e72e	snd_hdac_ext_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9ccda76d	snd_hdac_ext_bus_ppcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa14a4bf9	snd_hdac_ext_stream_decouple
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa40cc625	snd_hdac_ext_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa5622b4c	snd_hdac_ext_bus_link_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb8fcefd9	snd_hdac_ext_stream_get_spbmaxfifo
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xbb1053a6	snd_hdac_ext_bus_device_remove
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xc6a51792	snd_hdac_ext_stream_spbcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xccdf9171	snd_hdac_ext_link_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd4666545	snd_hda_ext_driver_register
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe24e80ba	snd_hdac_ext_link_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xeb905e9d	snd_hdac_stream_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf448cf64	snd_hdac_ext_bus_link_put
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x007902f3	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x023fe7e3	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x03c418b1	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x04cb8256	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0e913db8	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x135f0b73	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x18986b8a	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1f02dbc1	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x22d8dad9	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23b6602d	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x25545743	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x278000e8	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x298159eb	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3183d3cc	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3570627b	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3933a33c	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3a4fbc8c	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3b15ca21	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d8b3248	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d9b282e	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f584fd3	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40c5074f	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x45578cf9	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4660fab7	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x46d099b9	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x47dce524	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4af9d17c	snd_hdac_i915_set_bclk
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x51f7fa47	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x527d7314	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x52dbb524	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x559d61be	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x594954e2	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5cc5bb5d	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5ce15098	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x65dc1d72	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x682b2f3b	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6876f329	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6a4098da	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6daf4887	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x715246bb	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x78dfc5e2	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x79c64ab6	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7a4407cf	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7b8b761a	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7e5d13e4	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7fab7e24	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85b62925	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85c70f8b	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8a93d631	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8bc7234b	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8c87e7f5	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8e36da5f	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x919f45b4	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x924e3da1	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93ad20ec	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x95d2f7a9	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x967d88be	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f3bfc94	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f52c960	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9fb80a00	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa53ce8f5	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa948ffd6	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaddc45c5	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaf475a7b	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb243f905	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb311b81c	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb9d6f445	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 0xc1257e66	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc399e7a9	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc3bf7996	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8265eab	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc851ae20	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc997346a	snd_hdac_i915_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc99d229e	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd3ab4e81	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd8225cff	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd9743beb	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xda3ab14f	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xded37fa6	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xec8b071f	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf0aae1f7	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf9bb5c51	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfae0a546	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb8a5211	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x11cce10b	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x9195b974	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xfd8185eb	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x348c6f71	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x47565294	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x5d27eb7f	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x931d6898	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc628ba10	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xd109e166	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01c2d260	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03de9d14	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x05aee9bb	snd_hda_apply_verbs
+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 0x0d635789	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ea1a884	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0f270de7	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x131e9a49	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14eedad8	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15159226	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c8f374c	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1ebd61ba	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f066427	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20750b89	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x21882969	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x22d79eca	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26286480	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26cd4bd7	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x278b38ec	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2d8cfe3f	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f207dc0	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f83c8ff	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x348db77e	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3bc26251	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c1d1620	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3f764063	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x439b2400	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x47771e02	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4dc3c15b	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e349de1	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e3b7d6a	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5085484f	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x50c6568f	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x54932b13	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5b171806	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d153e5a	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d2aa8a3	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5dccdaff	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x60fd178e	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x66401edd	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6640d24c	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6a963717	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6ab8ce3a	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b278bb8	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b4625a4	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f9bb9cf	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x70161c49	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x716efa51	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x765aea58	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7853f2e0	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x795f9566	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x797bb3f6	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7afd4af6	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7bd32599	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7c18e5ce	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ea7e260	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x81d59522	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85c1bb3a	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85ca05e0	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x861cb4ea	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8cacf3c8	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e5e9bdb	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9017f3a6	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91757d88	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9181f920	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91a09636	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92108c1f	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x932da763	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x974e2173	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9836ddfb	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9cf3843c	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9d8c7317	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa176a983	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2178c23	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2632a96	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa29f6029	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa70135c9	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa77c8b64	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaa4544ab	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaa5f5055	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab245062	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xabe07f8c	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac385673	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xad05843a	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae3d4111	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaeca63ec	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaf00de8c	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb3064711	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb32b77ac	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb44e4a95	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5bfce76	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5c92b03	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc44fc91	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbfe0e2a6	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc50c10a0	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc5781526	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc7d89203	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc95f7000	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xca3a8197	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb672773	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcbcc883d	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd6cbb373	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9ae658c	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9d7fdcb	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9dfa431	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9e64c44	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb675f6a	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe36c526c	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe8cb0a78	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb46ea06	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb5d3b37	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeddb6d68	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeecdd209	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf086348f	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5ddf821	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf76c9b79	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf82881b8	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf913dd77	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf9bd860e	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfad87799	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfafe0c73	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd05ac3d	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01f4fa3f	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01f8df4f	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x04ddb33c	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x08f63bc1	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0aa3df84	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x24963122	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x40c09ebd	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x551e1d3c	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6de3e366	snd_hda_gen_free
+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 0x87397c56	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x89938619	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9192fbd0	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa09e46b1	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb21d5d69	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc1ba3a50	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc4298945	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xcd45ecc8	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe92b25fe	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xebe96cc3	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeee749c4	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfa5f957b	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfc5b26dc	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x3edd8ee3	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xc2b173b3	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2336e829	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x326916b1	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x37c6fbf7	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x44a34676	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x8f1300e2	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xaef2c17e	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd4ec7443	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe33edb9c	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe8f32c79	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xedfe7791	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x9b18d932	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xe97ee64c	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x10f3ec7c	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x3647ef9d	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x6514c1b9	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x8aa28b57	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe7244bca	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x143d097e	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x84324976	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcfac28c5	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x1366e873	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x4cb41509	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x97d5ae17	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x43f26525	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xe412399d	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hda 0x6275efbd	snd_soc_hdac_hda_get_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x4d697459	hdac_hdmi_jack_port_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x9e1ec135	hdac_hdmi_jack_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x5c445e7b	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x6201e326	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x0da439b8	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8825 0xe68c6d22	nau8825_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x2fae10a9	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x6e51fc98	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xd9487ba3	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x69e150b0	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xf2f168cc	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xea5d62e7	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xfe594773	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x1f24e353	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x4f6f6e20	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x8fd96278	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xc88652b8	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x4cdde79f	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x5734363d	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x8ff9e2f3	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x9528f351	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rl6347a 0xa7aa810f	rl6347a_hw_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xade4bf4c	rl6347a_hw_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt286 0xe0fe5c34	rt286_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt298 0x28d9b2fb	rt298_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x281f064e	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x5a57cccd	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x29039d25	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xe4ff146a	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x48b1d8c1	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x54ed82f6	rt5670_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x5ff72e6f	rt5670_jack_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xaf76dc32	rt5670_jack_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xb39a73a1	rt5670_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0x1a680514	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x67956035	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xa2082ce7	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5682 0x40d3c220	rt5682_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x06169151	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x1f96c8f0	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x7f215bf6	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xd5b4eef1	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xf48bd942	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0xc8b2ff4b	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x88e4cb7b	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xae218e2f	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xec02175f	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xdca1ad22	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x6a0eabf3	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x964e1175	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x9b25a697	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xc7f28e1c	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xdd4b371f	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x976cf5bb	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0xe23b04c6	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x397e543f	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x8994e2ed	fsl_asrc_get_dma_channel
+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-simple-card-utils 0x0cc4107b	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x29defe87	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x39aff364	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4ca08994	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x582f58d0	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x66b3b8c7	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x76036406	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7a5b2b6c	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x85e4db12	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x869b783e	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x96580c00	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9b5b9aec	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xce8dab63	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xddc76d11	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe971052b	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xeadba287	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf9ca3be9	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xfde441ce	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x1d08424c	sst_register_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x1f23d762	sst_unregister_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x388f40d1	intel_sst_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x6a2ac333	sst_alloc_drv_context
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x709cd25f	relocate_imr_addr_mrfld
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x91cd57a9	sst_configure_runtime_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xa94aad79	sst_context_cleanup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xad93237c	sst_context_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x00899c7d	snd_soc_acpi_intel_baytrail_legacy_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x08c27da9	snd_soc_acpi_intel_cml_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a6c545b	snd_soc_acpi_intel_icl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x210ac95b	snd_soc_acpi_intel_cnl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4c028d30	snd_soc_acpi_intel_skl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4ea3c4ed	snd_soc_acpi_intel_glk_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x52195614	snd_soc_acpi_intel_cfl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x59a53c32	snd_soc_acpi_intel_haswell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a93176c	snd_soc_acpi_intel_cherrytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x6038550d	snd_soc_acpi_intel_kbl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x8b43f2f0	snd_soc_acpi_intel_baytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x98f106aa	snd_soc_acpi_intel_bxt_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x9c3d1561	snd_soc_acpi_intel_hda_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xcbb222b3	snd_soc_acpi_intel_tgl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xd5af17b7	snd_soc_acpi_intel_ehl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xe7826509	snd_soc_acpi_intel_broadwell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x09bd4413	sst_dsp_shim_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0d43be6c	sst_dsp_inbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x12ed588c	sst_dsp_shim_read64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16e86983	sst_shim32_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x21ec762b	sst_dsp_shim_read_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x274f1fb7	sst_dsp_stall
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x2fc547ed	sst_dsp_shim_write_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3a5ff8cb	sst_dsp_shim_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3db98ea2	sst_dsp_shim_update_bits64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x4dfe607e	sst_dsp_register_poll
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x55d478ed	sst_memcpy_fromio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x56b256f2	sst_memcpy_toio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x59df2b07	sst_dsp_mailbox_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5b2d5b41	sst_dsp_shim_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5e713958	sst_dsp_boot
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5fc9fa13	sst_dsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6a7772ae	sst_dsp_outbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7dbf2c12	sst_dsp_shim_update_bits_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x84f2fe45	sst_dsp_shim_update_bits_forced_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x851bbe44	sst_dsp_ipc_msg_rx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x874114ca	sst_dsp_dump
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x87cdf7d2	sst_shim32_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x89ee51b2	sst_dsp_shim_write64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x9e0b1655	sst_dsp_shim_update_bits_forced
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xafad4cac	sst_dsp_outbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc1763339	sst_dsp_ipc_msg_tx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd6e3dadf	sst_dsp_wake
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd72a34c2	sst_shim32_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xdaa0dbfc	sst_dsp_inbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xde1168ba	sst_dsp_sleep
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe8de5bac	sst_dsp_shim_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9c6de99	sst_shim32_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xfe68426f	sst_dsp_shim_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xffde314a	sst_dsp_shim_update_bits64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x026c6881	sst_block_alloc_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0bc7d1e4	sst_module_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0dcd78fd	sst_fw_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x15ccee1c	sst_mem_block_register
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x173ebf44	sst_mem_block_unregister_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x19dcc121	sst_fw_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2129d0f8	sst_module_runtime_restore
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2158d759	sst_dsp_dma_put_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2d0b2367	sst_module_runtime_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x30ffa495	sst_fw_unload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x32cd10f2	sst_fw_free_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x34486111	sst_dsp_dma_get_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x3c95fc20	sst_dsp_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x425d868a	sst_module_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x4ccef832	sst_module_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x68d2e146	sst_dsp_dma_copyfrom
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7d7244cf	sst_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7efe2174	sst_module_runtime_save
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x88605122	sst_module_runtime_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x9397f323	sst_block_free_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa7cec9c3	sst_module_runtime_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xbcea59df	sst_module_runtime_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xc95e6d62	sst_module_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd4f8f505	sst_module_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd5317544	sst_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xdc7fc6c4	sst_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe16d993e	sst_fw_reload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe2804ba7	sst_module_runtime_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf2143b5d	sst_dsp_get_offset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf542a83b	sst_dsp_dma_copyto
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x09002c8b	sst_ipc_reply_find_msg
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x26bad37b	sst_ipc_drop_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x40b64cd7	sst_ipc_tx_message_nopm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x8402baf6	sst_ipc_tx_msg_reply_complete
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xb9f09fb2	sst_ipc_tx_message_wait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe4d5d82d	sst_ipc_tx_message_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe5ee6407	sst_ipc_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xea271486	sst_ipc_fini
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x44d5364e	sst_hsw_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xb40ff91f	sst_hsw_device_set_config
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xf9cc0129	sst_hsw_dsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0059e19f	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x00905cc7	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x01f74a59	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x03324706	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x035443f8	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x052c1ced	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08159ece	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08c4f538	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b43b475	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0bf71328	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c45e739	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0d7f285e	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e37b1d2	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0fb2fca6	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1043ea67	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x106d45ed	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1146ddb3	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11628ce3	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x16191075	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1775f808	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x17e8ef01	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x186ee798	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1bc1f3be	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1be5f6f2	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1eb74d4d	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x205e91ae	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20afab82	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22d9701d	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2373b1da	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x24a90565	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x262a3530	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x26df445f	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a2f86bc	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a98625a	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2b12e87d	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ba57d1d	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c9dfa18	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2e88024f	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x30e3f1ee	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x31a14250	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36e580fa	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3713a83f	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x379d7990	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x39d7ffab	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3a6e8285	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3b46b8f9	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cae0564	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cb58b4c	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d4a8932	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d9a0cf0	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f1cd4db	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3face8af	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40fb29f7	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43360b48	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43c681f6	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43edd523	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x44384f67	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x47982a2c	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x481a3d5c	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x48cc3493	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4bdc01b2	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ed95845	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x50ed8650	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5699324f	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x57a4b331	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e03ae68	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e3df80e	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x62b0d06b	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x65faca28	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68901254	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6d672a52	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6dfb5466	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e1332dc	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f07477a	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f15f7aa	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7138666b	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x72a4f197	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73561921	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73708cf7	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7464b563	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x74bcc51d	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75706cf6	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75a9dddf	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x767cabea	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78822e89	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79ff6fc1	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7b30b7c2	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7fbfa14c	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x807d7892	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8187b0d0	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82ce0b8f	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8392ba7e	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84b3557e	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85c73702	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8bd6690f	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8ca40c5d	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8ca60656	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8d07ab0d	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x903327b5	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x923bb2ec	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9289dd2f	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9295a188	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x939bed23	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x93f00c04	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x94d20cea	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x95af5632	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97512c3e	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97bc640a	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9866fcc9	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9875f8e2	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98b001c6	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9cbbbace	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2b511f6	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2b5691c	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa3564eec	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5550224	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa871b506	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa999c8b4	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa21356a	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad8a31b1	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xae428f23	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaee1d9fd	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb0ccb82c	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb166acc4	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb3d1ba76	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb3e0f583	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbba53bd3	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbf2dc1b3	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc02a0eef	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc23f42c7	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc761740c	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc9f40779	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb87cb52	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcbd584a6	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc1a2632	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc1fdc05	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcd355401	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd2cad33e	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd45692c9	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd5753101	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9552b2b	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd98ec671	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xda6c85be	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc45225f	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc7f0ad9	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc85d152	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdec2ae4d	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf5f89bb	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2c765cb	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe38eb1d2	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe5715593	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe6844125	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe903551b	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb315457	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xece90ac4	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee234782	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf229a5ae	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf4a442a6	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf600daef	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf758f12e	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf811ff30	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfa81ac86	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfb732f27	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfb85aa5b	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc5364c6	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc8817d7	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfd5304d8	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xffde790f	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x4f22aa70	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x92ff0098	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xdfc03866	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe50ba16f	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x07efbb8c	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x088a943f	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x28065ed8	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x44bc5cfe	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x531d239f	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x604c98eb	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x85f39531	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8d830217	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9c2490e8	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa984d816	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xace9f92d	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb87181c3	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xdb35f22f	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe498b8e8	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe97f3eea	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x001a66ac	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x00221df6	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x00242185	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0034f3b6	xen_has_pv_nic_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x00432040	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x00443e6f	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00531a17	xen_xlate_map_ballooned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x007a47be	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c9293c	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f4994a	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f95609	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ff0bb5	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01075f32	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x010cbf66	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x011440ed	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x01251974	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0162cf31	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x016f389e	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0174a474	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01848a8e	local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x01864246	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x018b3d1e	intel_pt_validate_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x019557ea	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x0199d233	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a73d4e	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b10fca	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b19361	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c103bb	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c12c32	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c14d3b	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cc90f5	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e45400	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x01eb4576	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee5532	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f16dc1	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f47f84	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0204f8a7	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x02152cd4	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0230a68a	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x0244cbbb	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0249476e	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x024acd82	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0259dacc	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x0266fd46	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x027578b5	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0297cc35	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c9719f	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x02cf83e4	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e02849	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x03063894	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0318dfa7	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x032c2999	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x03392a2f	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x03479cc3	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x03510dbf	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0371c532	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0382d936	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03bd1ead	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c52122	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03dba991	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ff7f2b	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x040f149c	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04328af5	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x04379162	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x0451d5c1	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x0454aaef	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0457f6e8	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x046442c0	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046a97dc	events_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x04810470	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0486c65e	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04903f40	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x049929c0	hv_stimer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b42720	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x04be5898	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04be7029	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d409b1	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d493bd	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d5f508	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d7a5e9	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e290d3	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0508f382	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0509e1fc	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x050e7577	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x051e5b35	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x05274417	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05372f58	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x05399b6b	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x05640a75	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x0569b777	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x057ce420	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x057fe7de	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x05908cd8	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a30edc	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a3ee89	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b80170	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bdb915	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x05de819e	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x05edb5c0	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f98a70	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x06043681	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x060787aa	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x06085bcc	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x06163d4d	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x063f0419	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x06474d29	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x064c1591	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06655040	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x06aa39d9	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c357ad	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d0fe2d	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ff3c27	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0713535f	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0714754a	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07249649	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x072a6f29	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x072dbaa7	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x075aa2f0	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x075b9e79	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076a52ad	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x077a7246	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x07814630	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x07956ca0	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b64d81	hyperv_stop_tsc_emulation
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ce0edc	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e8441e	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x07edeba7	hv_free_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f8994e	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x080b6774	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082312cd	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082fa3e0	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x08357840	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0839ad96	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x08491d2f	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x0850bae0	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x08510c99	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0866c747	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x086a0174	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08a98a0d	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b79fba	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c4efac	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c765cb	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x08cb46c1	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dc77c5	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ed480e	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08eeddf7	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f1c996	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0918ddda	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0919da00	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0925493f	clear_page_orig
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09354613	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f20dd	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x096a7e6f	x86_spec_ctrl_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x096ce54f	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0987a5be	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0987d5ec	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ab5bba	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x09abc55b	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b57fcc	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c9fead	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d735af	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e28e30	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a00df1b	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0a7247	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a112d46	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a19ef27	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22309a	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a267b41	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a35bd16	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3e4cc1	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a502c98	dmar_platform_optin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6880f2	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8e5f21	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abd6473	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac463f1	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad137d3	lpit_read_residency_count_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0adcad3b	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af31bde	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af9bcf7	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b162c6c	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b255942	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4a4160	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b62c380	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6b25d1	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9daafa	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0baa07b7	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bba7a5e	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbdc3e4	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbea622	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc11759	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf6acfe	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bfad441	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c02ed97	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0628ed	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2b5ae9	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c561c25	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c607223	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c767e16	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c894cf9	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c89747b	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c951eca	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca796a2	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cadd624	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb2cdd4	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb746ac	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbe528c	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce31ac7	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0eafa0	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0f5a52	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d15b610	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1dab76	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d437557	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d437a4f	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d478239	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5054c8	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d515e35	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d585553	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d69f54e	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6ce801	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6feaf2	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d7b6c06	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d9948d4	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da8c4a2	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd8153c	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de66748	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de9c292	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e00416b	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e00b89d	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e063825	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0743c6	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0c5773	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1a2c27	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e298702	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e49fd5b	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5e304f	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e68e866	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6af38b	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6f4223	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7c513d	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e83b463	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e85661c	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e903cad	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9717d2	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e972230	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9922e0	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea4109c	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb09b3c	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec9fae6	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecbcd00	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed66d15	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efc1dd7	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eff2885	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0b21fe	pm_trace_rtc_abused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0d8cac	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1ca297	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2c1fd3	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2d7d87	mce_unregister_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f547ca3	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6352bc	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f67592e	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7dbeee	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9450e7	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9b333f	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fab4009	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc37562	amd_smn_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc1969	copy_from_user_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd3fb0b	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe04b87	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0feda49a	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fee1e64	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x10035c9b	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101a8bc3	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x102d7b6e	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x10356e86	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1038b96f	adxl_get_component_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1039856a	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1046e2f9	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x104a6356	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x104a6e5b	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x1088d046	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ae226e	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x10cbacdb	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x11481eae	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x114e2471	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x114f96a2	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x11645a79	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x11652dcd	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a49673	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11cfd1d7	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d7ba39	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e62712	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1247f05e	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1253e971	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x125d78e5	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x125e0114	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x125ff061	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x126e4b50	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1274b182	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x12773b9a	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b5d01f	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c03ebe	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ddd67f	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e0006a	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e285ec	is_uv_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x13138a37	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131d8ca7	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x134c659d	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c08fc	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c6767	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1391b18e	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x1393f66c	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a2bf36	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a87e46	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c26f7b	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d75576	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e3aa9a	smca_banks
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eeb542	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eef47d	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f37a3f	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x140208d3	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x140b6a27	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x141161d0	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142c5f73	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x14509e08	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x146f78bd	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x147f14f4	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1482433c	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x14957da7	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c21e67	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d156ef	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d8ccab	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e4215a	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x150a4f9c	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x15260f41	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x1527f017	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x152b6c68	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x152ce767	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x15380560	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x15395aa1	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15413144	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x15724d2b	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x157e3119	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a71ffc	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a73eee	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d0141c	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d6e672	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9d841	cpuidle_poll_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x161a0953	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x16323102	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x163335be	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x16434c6c	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x164b6bcc	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x166db1b5	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1672915e	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16892b27	uv_bios_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a6d649	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b34b14	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c8c36d	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e27a0b	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e7d21c	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e89cf8	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e97e64	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170aaefe	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x174bc85b	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ef6c2	mce_usable_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1765a9e1	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x1768f0db	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x176adf76	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x177388c6	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c10f1	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x178a33f5	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x178d0f19	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17add64b	gdt_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b33e5d	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b4848c	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bfd0af	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d123ad	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e2b410	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ec130c	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f80604	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x180c1beb	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x180d62dd	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x18582826	amd_pmu_disable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x18650e89	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18726b1c	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877ca13	mce_is_memory_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x187dc090	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x187e0369	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bb2be9	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c9609d	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e2243f	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f596d2	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fd38d9	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fdd687	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x191c4cac	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1921072a	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x192a4b5d	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x19406bfc	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x195d55bd	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x196289e6	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x19681f9b	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a217b2	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a50308	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x19acff09	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c560d1	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d7cc8c	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f60c60	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a192be6	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a40943e	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a490555	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5c5731	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6b5a27	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a79e303	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a824518	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8d18d2	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a943930	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a958ad4	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa37b3c	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab76a63	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afe6840	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff3d55	mce_register_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0191ea	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b06aac3	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b494214	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5ad61e	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6b4986	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b72e962	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8442a0	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b94abfd	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b98aaf7	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba237b0	default_cpu_present_to_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc2542a	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bec2478	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf09409	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c011c10	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c31559d	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c459e7c	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c487d98	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4bab35	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5cde65	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5dcf6f	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5e643b	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7d65ec	__memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7ed2a1	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8e06b6	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9a6f44	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x1caeedf9	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc2b2fc	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd7dee8	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd95cc2	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdc6e88	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdf84ee	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d055d3f	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0f7c95	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1634e1	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3f6f2b	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d685660	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d72d9ac	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d76f4c2	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8575bb	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9ff81e	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da0af8e	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db077cd	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc80e4d	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd87549	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd8850a	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de5e580	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de6c68d	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de8f0dc	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df05a5e	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df3e2c3	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dffff50	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e028693	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e05fe3e	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e12e46b	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e299e11	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e3c4742	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a5f22	sn_partition_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5feb4a	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e720c32	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7509cf	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9f5fe9	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea939fe	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaa97f5	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec53b35	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecc633a	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef49f6e	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f024028	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f04e235	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f078e3d	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1da4bf	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f39c5ba	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f44d51b	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5311b0	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5e4c72	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f67b81d	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f74fec0	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f85f91b	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa31a41	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa71d83	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbed5b6	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc0c1e5	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc672cc	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc8bd66	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x20037e4d	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2055c5cc	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2060d923	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x206d71b6	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x206ed487	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x20809a4d	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2081488f	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x2086e7bd	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x208813f2	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x20899467	hv_stimer0_isr
+EXPORT_SYMBOL_GPL	 vmlinux 0x208b122a	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2099e0e4	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c27fd0	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d8c6d3	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fc4b4c	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2110b846	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x21483a82	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x21508b28	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x21540423	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x215e7a00	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176edbf	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x2180aac8	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x2185063c	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x2191eb4d	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21aad16c	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b12f3d	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d1272b	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x21dc1c69	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fda6da	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x22104616	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221e59fc	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x224bfcac	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2251e9a0	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22542129	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x225b839d	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x225efd4d	intel_svm_is_pasid_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x225f3f65	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x225f5fae	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x22737616	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x22886b00	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x229d7400	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b5ae24	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ca2f95	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d1f988	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d3d49f	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e45428	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fc3440	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x23050123	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23479bad	uv_bios_get_sn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235d089b	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23600409	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x23692ce8	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23955b74	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23979bd2	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b4e0d7	clear_page_rep
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e6b45a	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f3cd02	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f47f5d	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410c338	x86_virt_spec_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x242b5ac3	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2439ebbb	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x243aa3ba	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x243fe5a6	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x24492c46	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2457f9bc	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x246c8cee	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x246df185	hyperv_fill_flush_guest_mapping_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x248ed7a5	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x249855e1	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x249990f8	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a617f5	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x24cfa134	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d560e5	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e3ca68	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e50ad3	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e59ec3	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f25eec	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x250dee0f	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x25216a61	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25353f45	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2556c54e	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2556ebf3	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x255a2e14	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x255fd570	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x258081de	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x258f7b92	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25aebdb4	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b0e5d1	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c7316f	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e593ba	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f02c87	xen_p2m_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f33820	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f52f11	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a7063	xen_start_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2642a968	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x26507167	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265f2c10	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x2661c680	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x2661f430	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x267befd1	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26826bd3	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x269b89c8	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x269e8987	intel_svm_unbind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26aa9fda	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b52537	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6900d	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e44e14	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f18680	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x27000d6c	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x2715027d	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x2717a2b9	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x272239b3	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2731974a	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x273aab74	xen_have_vector_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x274806f0	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x275366c3	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x276cc32f	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x27738550	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x277b4f6a	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x2780bb7c	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x27929003	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x27990c90	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x27af26c1	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c5a4ba	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ec0364	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f53ffc	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fedf4f	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ff9835	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x28278c27	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2828448d	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x282c4247	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2847699c	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x28550974	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x28698af5	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cb9ce	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2894b0e7	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x2895819e	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b3f933	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b817c6	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x28bf3491	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c3e297	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cb3aa6	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d52a46	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e64c64	xen_has_pv_and_legacy_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ec876f	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x29024097	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x293ffcf1	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951a872	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x2959d52a	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x29621fd5	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x29649545	xen_pcpu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x29723007	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x297dce22	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x29840e69	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x29bd6b67	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c781e2	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cd4cdf	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e1b451	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f5cfc3	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f623a5	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x29fed767	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1a5c65	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a21c7b6	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a40b947	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a58ae55	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e3b66	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab5e0d3	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac14701	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad8c544	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae2b98f	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af8d990	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aff68f9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2a0be8	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2ac216	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2befd9	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2f5f28	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b388383	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b67b6b7	mds_idle_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b695891	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b700f86	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7fc385	hv_init_clocksource
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b81669a	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9597ac	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2baf34ce	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb7fda7	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcdf6dc	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bdeeb5a	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bee868d	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf4038a	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2f5a09	x86_family
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c309210	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c55a511	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c55adf3	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5ec99e	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c608819	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6238b4	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7ee329	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c82d4f8	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb0e863	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb8f7a1	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc870c4	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd62c7c	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd943e1	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce34e26	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d080cea	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d12da2b	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d171fc9	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d669e86	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6f016a	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d711d3e	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d78d80b	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7b7c6e	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7db775	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8c855e	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d909fb5	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d91fb4b	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da7f91c	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dbb5088	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc0998d	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd2f69c	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd508f8	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ded4d6f	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df663bf	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e03dc58	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2df7f4	irq_remapping_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f43c0	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e514c52	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e578af4	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e626c90	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8974ab	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed084a0	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed2f8be	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ede2b4c	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1a815a	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f20c120	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3403b1	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f559e2b	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7b5737	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7f8e4c	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f850263	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f86695f	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f973771	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd5b27e	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd73582	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdcfd28	smca_get_long_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ffeb006	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x300e784a	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x300f3469	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x3018df32	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x301b34d4	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3024bcaa	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x305daf23	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x306f5576	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x30748cba	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x307983ac	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3096a700	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cf804f	slow_virt_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dbad71	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ebe8a2	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f6ea55	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ffec1f	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x31128b8e	hv_remove_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3124bcbd	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x31441e9a	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x315a2f59	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165daa3	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x316ce9ce	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3185f26a	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3190f046	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319bc01b	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x31afe6ed	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b69264	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c0d352	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c3913a	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cf594e	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cff085	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d8d4d0	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31fcbed8	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x324d0695	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3274ad77	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3277cc5e	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e3354	__memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bdf05e	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x32be1f88	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bfb634	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c863a7	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3b076	mxcsr_feature_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ed369c	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x32eefeca	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f14cd7	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f5fcd4	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x330fdd59	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x33594208	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3361712a	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x3362b03c	xen_p2m_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3364c594	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33655159	xen_pcpu_hotplug_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3368fea5	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x33770a80	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x339ffb61	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a8c0e3	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x33be3d32	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c1d731	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ce669d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x33dd9940	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x340533bf	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3408d846	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x341baea4	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x341f6995	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34283471	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x342ef5f3	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3442a198	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3447e7df	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x3458d695	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3470bec2	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3477b3e6	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3488aed6	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x349beb46	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a25ac2	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c870fd	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d6484e	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f0b9ab	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f70c6c	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f7b766	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fec404	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ff2b47	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x3507aca5	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3537f7fb	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x35416648	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x354af494	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x355c6df0	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3578e112	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x359a2278	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x35aba345	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x35cf3f52	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e2db96	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x35eeeb5d	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x35fdcf96	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x36170606	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x36586cda	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x3662312c	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3677a0c7	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x367901ad	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x367f8839	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x369e5b17	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ad7640	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5497e	intel_iommu_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x36cf406c	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ddf9a8	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e4ec44	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f140bc	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f6c45f	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x370507ba	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x372ad40d	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3744ab35	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x37604c2c	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x37791aff	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x37794a8c	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377c03bb	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x378c34c3	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37968691	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x379a6502	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x379fca12	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b550a7	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b8e595	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e6bebd	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f292c4	pmc_atom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38198101	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x38198175	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x381c790f	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x382030d9	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x38272dd2	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x3831a7f2	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384728fe	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x38722f80	kernel_fpu_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3874a3b8	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x387613f8	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x38870d5b	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x388715d2	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x38906f5f	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x389f2bc6	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a0827b	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae2925	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae55fe	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b0069d	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b18b02	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c388f2	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c71e82	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e18786	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e9d7ed	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x39032399	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x392edf02	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3931b0f4	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x39426fb1	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3969bc88	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x396b3edb	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e2fd7	ms_hyperv
+EXPORT_SYMBOL_GPL	 vmlinux 0x398466bc	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x398793f7	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3991050a	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x399686f7	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x399f352f	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a440f3	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x39aa76a6	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c70762	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e4cf2f	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fa09ba	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a08853c	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a17a9c7	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2641db	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2c88d3	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a3b7010	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4af5a2	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4e13d9	tty_ldisc_ref
+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 0x3a5feb91	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a606f08	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6267d5	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a69f85b	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7d80f9	xen_max_p2m_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7fdb71	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a83e186	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8bbb8e	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa951ee	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab8294d	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af578f5	hyperv_report_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b071503	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b14c882	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3cd439	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4101d9	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b47c174	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5121fe	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b600f55	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b7f82c8	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b91db5b	intel_pt_handle_vmx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba245a8	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc52a67	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be55f03	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3beebfe7	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf6bf7a	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf84b64	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c007d5c	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e8050	hyperv_pcpu_input_arg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c13ebaf	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b43ec	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3dba0f	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3dbb89	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c433dde	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4782c0	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c5649a2	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c8f36e4	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c93b9e2	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9ab861	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ccaaa22	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd538c1	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cda81a4	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce70155	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d33241a	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d389a65	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d44e069	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d462d0e	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d46c718	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d61186d	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7603af	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d84ef81	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8dccfd	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9f1904	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da14a80	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db0811d	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db7cff4	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbd6a54	pci_msi_set_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc66a31	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc7e33f	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcbbdaf	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcd99b1	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de49576	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df0269c	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfeff3d	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0c9942	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0d3e73	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e144476	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1ece8a	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e319310	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e32d7af	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e42fce7	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4cb57e	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5ceb7f	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6eb003	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6eb9d1	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e746066	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e85d941	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e964bd4	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea018b6	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea6ae1f	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea8fa6a	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee5e38e	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efde9f1	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0a5605	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f100e5e	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f16a0ac	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f23e47b	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3fa5ae	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f49bb6d	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b6caf	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5177f3	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f66af02	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f73c379	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f77ce9a	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f7a712b	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f815a6d	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9e35f4	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae6ab0	hv_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc1997a	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc8af27	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd8e9e0	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x402c5bdb	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x40364565	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x403987be	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40421578	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4053210d	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4058bd4d	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4092619f	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x409c68d8	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x409cc8bc	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x40a489b9	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c3feb0	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d15561	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f44c88	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40fb81a2	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x41042702	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x410b0604	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x410b485d	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x41200129	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129c8c8	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129f5ee	kernel_fpu_begin_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x41458108	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d6d70	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x414f403b	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x4150af54	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x4152b862	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x4158c087	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x41629549	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4164091d	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x416f624e	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x417346d9	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x41812e15	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x41916678	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x419297dd	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x419f79b3	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a19e8a	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41bbbf5c	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c20fba	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d46f82	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e21191	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205c392	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x420d7383	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42167370	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x421a07cd	efi_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42313219	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL	 vmlinux 0x423b8595	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x423e1143	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x42437b41	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x425c1ab6	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4262db49	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x42665d4c	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x428207b0	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4293e0c4	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x429cda40	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x42adbcbc	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b60b25	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b9ccc8	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c057bb	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c63b0f	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x42dc2f46	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e256be	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e6b1b5	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fb5adc	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fbc1af	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x430ae8ff	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x430e2ec4	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x431734b1	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x431a2f19	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4324a0df	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x432f0fe2	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x435af626	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4368ac99	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x436d7006	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4370887c	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x437a2817	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43cdea02	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d3e377	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x43eea417	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x440da8aa	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x4414b7d4	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4441964d	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4447a9ae	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4448206c	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x44687d51	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x44690c3f	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44912494	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c2e7e7	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d24b33	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d4b0f6	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x44db2973	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e5b219	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f35361	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4500ff9a	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x450110e8	perf_assign_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4508d672	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x452196b4	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4541fe0d	mtrr_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x454e376b	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x45594a21	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4563c93b	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4583cf24	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x45907a21	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x45952a5d	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x4598a208	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x459b4c10	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cc1e01	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d14bdf	hypercall_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fb004c	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fc8360	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x460c0c12	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x460c5758	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x460fa763	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x461f024a	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x46370352	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x463d8290	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x463fd03f	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4642fc19	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x46456960	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46721538	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46732422	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x46770212	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46826338	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a4254c	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b3c70d	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b785cb	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d61c93	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d7e021	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e10585	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e879ad	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ef564b	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46fa22f8	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x472f1fcc	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4734f8f4	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4735c995	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4753e14f	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x475a2520	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47795448	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47939908	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a2b163	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47bc9073	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d649ee	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ec5bed	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f9e493	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x48032eff	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x48240d5b	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x482e44f5	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x48385128	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x483d35b0	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x484f43f4	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x486050c3	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x486242b0	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4873352a	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x487a7791	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x487bc415	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x487fa3a9	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x488813d9	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a93c9b	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ac24f5	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ae54d4	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x48da68b1	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e571b5	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e8c5be	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e9d2f1	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f983ca	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x490ab6ff	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49496cc1	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x494e62f7	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x49559e95	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4958b43e	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x49679915	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x498046be	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x49835946	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x498bce6d	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x499204a0	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x49951708	sev_enable_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a8109a	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bc616b	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c14a61	ex_handler_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c7006f	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cd70de	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d0d61f	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f40a24	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a058540	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a147b47	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a285164	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4f30d0	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6a0161	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a70d8e2	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7f342d	uv_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7fd8b7	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a81ea8a	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8cdd15	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8f98c2	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa662ce	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aafb2fb	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab3ae7a	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab4043b	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4adf9f08	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4afc8202	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b13f94e	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17c6c8	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1b06fa	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1d94aa	mce_is_correctable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1fd6d1	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b215119	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b47f742	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56ce05	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5f229b	vmf_insert_pfn_pud
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b64c24d	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6f48b5	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b756cf3	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b762828	start_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b77bdb9	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba93e3e	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb0adb0	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd18675	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bda732c	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bddae5f	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf22c68	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c064953	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2f4540	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3d06f0	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c567899	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6839b6	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6d1d58	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c762b5c	x86_stepping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c87d287	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca314d0	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb070aa	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbd5137	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc3b5f4	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc4e85c	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc9e137	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd40afb	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd8d83d	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce52f14	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cee0a9b	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d207221	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3a93f8	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3cbe2d	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d601fb1	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d67a2ed	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d69d312	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d954b84	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da4c20d	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4daaaebd	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae5e62	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc890ff	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd0a379	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd78300	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de5229d	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfb50a1	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e030e00	del_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e0522b0	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1cf8e9	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e213019	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e32024e	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3c69d7	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e412e22	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e56eb2e	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5d2893	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e728d59	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e81a5d1	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e89c6ba	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8b47fb	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eaef637	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb3029d	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecb9b0e	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecc194c	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed709ea	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efb2cf8	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efee91e	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1196dc	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f19e417	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1c5d5d	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4210af	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f71d853	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8d70d1	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa65c40	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac98a7	machine_check_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb14aa3	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb4a5e2	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbc90de	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbd49b3	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x50047808	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x500520a4	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0x500a9d53	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x504ebbcd	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x504f2464	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508b5de6	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5092a93e	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5097b940	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x509b43ad	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b03f5d	l1tf_vmx_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b0fa60	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b9b141	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1f870	pgprot_writecombine
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x512f2f96	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x51383fda	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5142e8b6	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x5149ab3c	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x514b0cf6	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x514e4c2b	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51586642	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5165f521	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x51775299	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x518a59a5	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x518bc389	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5190104c	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5191ea8c	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b41b69	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ba17e6	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c8de10	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c9c897	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x51cfd902	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d89e05	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e093db	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e777ce	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f325ad	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x52015727	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x52021308	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5213e866	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x521974a8	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x5221150f	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x523164b1	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x5240776e	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525c0273	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52608451	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5266e693	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x52791d2b	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x527d4f30	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x529ecf1c	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a7eed5	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b011ef	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x52bf7282	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e7e6a5	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5306a1a4	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5321bde0	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x533045eb	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x533c745e	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x533d5fb1	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5353cf52	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x536c43ac	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x53784274	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53909a72	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5397c2f3	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x53995468	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x539f157b	pci_xen_swiotlb_init_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a642b3	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a7f533	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x53bf2c27	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c47c53	apic
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cf78ff	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f19f60	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x53fd64bb	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x5402703e	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x54126185	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x54160458	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5421f228	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x54277a0d	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x54391237	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5456831a	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5471c24e	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5473c10a	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x547567e3	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5493fbcd	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x54951154	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x5495f9f1	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c7bb78	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e5f325	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f469d4	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x55073861	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x550ce709	pat_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556bb364	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557c33ee	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x558f1d18	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x559613c2	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x559e546a	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b64aaa	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d95b09	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e20ae0	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e43e82	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e53608	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5601e5d0	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560abee1	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x561430d1	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561c1be7	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5629fea0	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56398615	mark_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x564b67a7	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5652f3cb	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c8b0a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x56623f52	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5666ac52	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x566cbf9c	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5677dcc1	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x56811058	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5699e807	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x569ae4cb	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a127d5	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a715b9	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ac39ad	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b4eeff	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b9b4d3	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x56bbb723	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d322d8	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e05d77	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e57948	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f0f36b	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f921dd	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fae491	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x570f520a	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5718c513	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x573e8f9c	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5747fa84	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x574fc58c	system_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x57584f91	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x577c7510	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5788d02a	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a67709	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a6e3ec	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c7fcd0	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f3a690	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x5800a787	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x580b8068	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831081f	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5837fd52	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5839920d	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5855422d	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x586591be	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587a69d8	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5889c723	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x588abbda	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5893f6ab	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x58971513	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a16d52	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b419fd	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b5cc97	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x58cb2fd2	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d6311d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f03b99	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x590297e6	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x5925d610	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5926a0ef	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x59291348	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x59390d22	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x593d9871	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5949bd5d	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x594bb503	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59933c95	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x59945642	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5999aa9f	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b7200e	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c22800	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c34471	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c6aff4	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e0e5fb	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x59eede04	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fe4c4b	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a251fd8	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a295367	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a385d59	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a39bfe0	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a40217d	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a77e0f2	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8de2e0	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a93ee28	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aac98ae	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aadae33	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aceea34	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x5adbcdce	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af83551	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b037891	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1ea8b1	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b22312f	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2d9248	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b47fc08	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4bcc17	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b84511d	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8580e7	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b87d534	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b884364	hyperv_report_panic_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba31260	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba3e9f7	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba86c52	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb289ac	__tracepoint_extlog_mem_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd4ac9b	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bed0737	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf2b092	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bfef1c9	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c09ecde	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0b5960	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c401732	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6e6e9c	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca9937c	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cafab18	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb290eb	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc0ecbe	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc43ef6	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc62b94	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cca891d	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ccc61b7	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd697c6	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdaa6e4	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce9b551	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfe5514	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d12583d	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d332967	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d405e65	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d463e00	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d774066	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8205e0	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d87b590	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9317d7	uv_teardown_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da85039	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da8fa0b	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db33b94	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbcfa4f	boot_cpu_physical_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ddf4ecb	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de78e77	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dec73da	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df8dca9	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dfedfcf	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0658a4	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3f9574	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e5b805d	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6f028a	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e74cc45	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e79cd26	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7a5cec	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8444f8	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8a0000	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8d3c4c	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8da30b	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e99a768	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9dc791	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee1c975	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eeae448	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f026080	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f02e591	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2fcc83	ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f337012	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3ab72c	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3d660f	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4f193c	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4f6b46	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f78f30b	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f80d24c	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f91fa1a	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9583a0	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5faff533	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb02782	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd26093	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdfa2c1	amd_pmu_enable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe1266d	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe33945	pwm_lpss_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fec0c6f	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fefa4d1	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff1768b	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff34df8	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6018905d	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x601c9924	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x60206725	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x60234025	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6063e8c8	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6069bdce	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6078e518	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6097d44f	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60acf710	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cb0c4e	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d100de	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fc0e48	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x6105fde4	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612b1c64	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x6137a9b7	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x61527afa	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x61674262	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x616cbbf9	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x61809976	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6184cd83	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x618f8c82	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b14da	fpstate_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a1cbe3	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a291ea	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ba15c8	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c5c0cf	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d0b7e7	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d5beaa	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x61eee0ed	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x620f6fd4	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x620fcbac	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6225b27b	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x62690705	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x626d8deb	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x628355f6	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6289ef8b	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x628ba560	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x628e4ba0	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x629131d2	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6296c580	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b40348	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c82aa6	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cae61a	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f2ae9a	x86_vector_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fc9781	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x630dbb5b	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631d9b4a	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6340434e	x86_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x6346da98	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x635475f7	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x635852ba	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x636beb77	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6375eaee	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x637fe2d1	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a9653	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x639357d0	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x639e00d1	xen_find_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c259f7	node_to_amd_nb
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c8fd2b	hv_setup_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d1770e	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d3d09c	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d44115	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e33ab5	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e46cbe	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e49e44	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63eb1836	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f476dd	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x64062229	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x641d5092	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x64252075	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6440c497	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x64436b31	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6458c631	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x646d3f19	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6470a8e2	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x648a9256	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x648cf9b1	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a62e11	acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bdcaa8	hv_get_tsc_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c1fd23	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cef1b1	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d13ea8	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6527a231	dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x652f9a6d	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x65330296	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x65531fac	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x655be80d	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x656bb52c	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6583d66c	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x6591f64d	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x659ec2fb	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b56f63	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c5dd4e	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cb3079	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccbed9	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cd1edc	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x660d3f07	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x66197085	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x662bcc22	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x6630bacc	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663c7f36	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x666ed430	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x669ef428	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a77622	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ae4727	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x66aec06c	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bd2e5b	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ecf6f9	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fe47e9	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x670416bc	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6717f9db	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x672b51de	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6730b7a2	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6732be7c	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735de7b	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6737f4de	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x6737fc68	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x673f62b5	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6753de3a	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x676808d5	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67930cbe	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b205a0	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c82d56	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c8bf56	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c981d2	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x67cc6899	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dbc37e	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dc57da	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcd76b	uv_setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e341e3	uv_bios_freq_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x682f141b	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x684d6d6b	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6862b9f1	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6862bec1	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x688250c5	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689c90fe	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68cecf7c	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d2d815	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f1e54e	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f4664b	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fb3389	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x691d2807	smp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6928c6e0	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6929848d	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6932d705	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x694df79e	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6961c680	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696d7e0b	l1tf_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69921552	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a19d94	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a937fc	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b64bff	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c6356e	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69df9807	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e53df6	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f861c4	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a02a30f	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0ea45d	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a106938	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a260fb2	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a33c717	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6ea414	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a73559c	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a77ea39	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8c58b2	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a919942	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa1958b	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa25b89	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac57e52	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad6f33b	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x6adb54dd	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6addd1e0	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae160c8	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae99c97	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b03c7dd	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1a686d	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b46389c	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4677a2	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6d00e8	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6f4758	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7706dd	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7a4335	hyperv_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b948136	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba0ad56	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc6aac4	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc8499c	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd92cbb	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdd6c89	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2199b1	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b612b	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6931b8	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c726b86	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c796758	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7cbb9e	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c84a2bf	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8e2251	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c914209	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb6c096	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc2ce26	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc92155	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd28086	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdb9f3e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce5e889	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0253f1	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0d979d	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d12421e	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d191909	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1ff855	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d21cc3c	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2b2f03	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3b146c	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d499e63	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d52788d	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d59240a	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d65b1b4	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d695697	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d768a4f	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d915185	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9c3edd	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbb9012	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc9ffc8	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dde57a2	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ded8db5	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df80b9f	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df86ab3	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfe0d3d	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e28ad65	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e31d25d	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3bc97b	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e564692	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e629543	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e71043f	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e72539c	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7eb772	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e83a0c8	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e85b00b	local_touch_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e999a0b	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea7c313	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efc6325	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f06ee5b	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f11084e	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1b9408	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f23af86	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f32a66d	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f78a26e	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d5619	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa676ee	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faa0e0f	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fac6f77	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faf8061	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fcafd37	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fddc196	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe040f0	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffa3723	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffce680	x86_cpu_has_min_microcode_rev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x701cf7ad	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x703f5f94	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x703fd164	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7053d02e	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x70576fee	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x70680d44	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7071cbc6	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x707c7fb0	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x709b956c	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b24c5b	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b82dc8	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dafa2d	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dbc43b	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dc9b93	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ea1925	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x70efdbce	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f5332f	sfi_table_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x70fa804b	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x71007c1d	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7116bf8a	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7116ebeb	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7118363b	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x71236792	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x712646f2	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x71498b53	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x715c3693	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x715f86e7	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7182d4cf	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a9a4a2	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x71aff6e7	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d1c3f1	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x71db8088	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e06c13	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x720988a6	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7215730c	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x723e5096	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x724098f6	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x726105f1	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x72614d07	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x7274020c	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7286fcb6	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x728c8b87	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x7294b2e0	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7296e228	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x729a846a	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a7a0ba	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ae3a8b	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b8536f	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72cf00dd	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d48708	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e8a410	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0c75e	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0cf51	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f38ca9	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x731a8196	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x73250875	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x733c411b	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x73403944	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7346949a	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x73497416	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x73574c7f	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x7361b345	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x736f3e95	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x7383e9d8	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x73870114	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fe32b	amd_get_nodes_per_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a07422	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bbabc5	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c723a3	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e14e1b	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x73eb2f2a	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x74154692	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x7423ad8e	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x74331f09	intel_svm_bind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x743c3e33	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x743f7950	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7444395d	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x744f1408	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452adff	user_return_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74701d9b	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x747930b6	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74865e5a	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x749d05e4	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b4bb92	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c684c9	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c86c16	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d4a270	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d8a2e7	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f60429	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x75124978	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7515bbb7	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521afb6	leave_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752c7c53	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x752df67c	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x75436602	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7554c461	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7577892e	xen_pci_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x75792186	get_xsave_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x757d153e	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x757df763	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x758161ab	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x758e05b6	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a2fc10	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e766a8	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x7611690b	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x76351a2e	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7641df7d	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x767a6950	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7687b90c	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7689ed17	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x768cc7e4	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x768f97c9	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a5760c	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c392cd	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c52a12	__xenmem_reservation_va_mapping_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cfc41f	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d6d985	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d951cd	mce_inject_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7706d51a	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7713312c	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x771ed1be	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x771f1b76	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7724cf5e	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x776e8129	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77da780b	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7801ac71	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7819fd4e	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x78252b06	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7829292c	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x782adb74	hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x78379ff6	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x783de72f	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x784e7686	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7852fc2b	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785acaca	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x785e2eb0	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d84f2	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x78725d34	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x7876d0b4	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c4c2b	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x78812411	hv_stimer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x788d14d3	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x78984c94	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b236d1	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b24587	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d2a7fb	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ea0563	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ea3a1e	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x78efd383	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f7deee	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x78faf343	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x791748c8	adxl_decode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b232f	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x794cd247	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x796900f8	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x796a1e35	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x79778bab	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x79796843	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x79911d34	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991fd8d	crash_vmclear_loaded_vmcss
+EXPORT_SYMBOL_GPL	 vmlinux 0x7993a99e	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a14872	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c347ea	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cd338d	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf1043	fpu_kernel_xstate_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f2a0fa	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a02817d	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a02f579	add_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a03124c	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0e84af	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a13683e	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a241738	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2984a7	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a348439	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a38f07a	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a404fa4	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a453e42	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a767d02	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a786229	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7c5788	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a986c3c	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aa1041b	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aae44c7	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab2bc8d	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab6663f	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ababa8a	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abc95a4	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad7ae56	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adb020c	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae859c8	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aebd2be	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af42a49	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afa3c17	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b1a9dbe	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b22b3ab	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b27c6b2	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2c3442	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3645de	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3e5b67	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ef438	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4f7590	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7baff229	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbae0b4	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbb2970	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc7fb5b	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bceba6b	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcfd6c1	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bda467e	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf5714b	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf70728	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf75367	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfc53a8	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bff4a36	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c20b6a0	load_direct_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c27920a	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2bc5f6	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57421b	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7fd7e5	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c975295	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9f1a70	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca51686	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cac55ec	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc4938f	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccd7f32	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd79fe7	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd7b8f8	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cfa00b9	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e1d95	hv_setup_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1afa93	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d21bb9f	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3f2512	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59ae6a	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d5db783	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7ba63c	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d95b2d4	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d96def2	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d97f90d	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da49f0c	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db23d84	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db89f41	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc69d61	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc7c82b	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+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 0x7e077547	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e08fa26	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0ca548	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e178063	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4631a9	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e63dc1f	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e657f88	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea055c2	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea0c55b	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea1a2bc	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea49edd	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eabdb9f	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eda63c7	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eeb63f4	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef0cd70	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef29fcd	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f09c7c6	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3cae12	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4dc19f	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7494c0	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7f0625	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa50c26	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd30772	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd35f7f	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fdb23eb	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff58126	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff86397	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x8002455c	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x801bb697	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x80275d52	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x804d1b6a	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805f0916	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x806207a6	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8067b7c1	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a068c8	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x80aea2aa	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b1bb02	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c11314	gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d9134c	xen_remap_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x80da198a	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x80dad909	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e4ee68	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ef6f08	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8104f0c3	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x8112a322	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x811e3f0d	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x81201186	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x81221cad	amd_nb_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x812ba27d	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x81316162	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x81334ff3	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8142b284	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x81546059	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x815ff58b	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a13ee	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8186478e	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x81934847	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x819422ad	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a01d1b	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b3c838	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e70809	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x82100bd0	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8214b9db	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x821a6934	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x824f3471	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x827aa103	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x82946c07	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8296b546	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a2bfbf	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c30882	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x831d0d8a	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x832a45d0	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x83398080	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x837e0c61	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8387445b	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x838edf57	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8399e8c0	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b390f7	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x83bb66f2	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cc020b	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cfe410	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e7f2d0	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x83edb592	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f40ecd	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x83fd0ec2	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x840b024f	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8418b179	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x8425c15f	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843526fb	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x843654be	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x843e7359	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x8453abae	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x849377e7	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b268cf	sn_coherency_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84baadc8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x84bf574b	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x84efe411	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f513a5	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x84fba374	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ff8441	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x850c8ff5	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85200ecd	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8526733e	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x852feb62	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x853c9e49	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8548aa7e	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85587791	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x8563554b	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8569f912	pci_msi_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x856f0cc0	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x85702522	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8577c127	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8580c7b4	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x858af17e	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x85931e29	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x85954e1f	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8599c50f	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x859e39a1	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b53133	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb2c45	xen_has_pv_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d98365	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d9ee51	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f24b3e	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f3a7ee	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86010468	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x8609e854	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x86169f3e	amd_smn_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x861b0f1a	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8628892d	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x8654be58	hv_remove_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677f369	pvclock_get_pvti_cpu0_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x86859c19	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8691ea2d	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x869849b5	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8699d72e	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86bedcb9	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e0e923	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8702acb7	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x871ee87d	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x87351efa	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x8735ed3d	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x873f76f1	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x87541440	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8765e592	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x876ba5f7	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8771bc2c	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x87728324	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8776709c	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x877ca829	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87802b3e	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x879c1e46	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a4c2c9	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a615e5	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a67044	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x87aabbed	uv_apicid_hibits
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b49096	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b4a09f	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b93a28	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87cf2881	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e35609	hv_stimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e64181	amd_nb_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ebf9f5	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x88043d9e	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8804e889	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x8811dd2c	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x881dd2ce	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x883b2b51	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x886f3fe5	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x888941f2	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b3ba8f	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x88be0497	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ca2dee	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x88da0f41	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x88f5032c	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x89055458	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x890db4f1	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89437695	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x894f658f	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x89567b30	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x89609c9d	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x896984ff	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x896e548e	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x897b6918	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x897e29f7	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x89816591	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x899d775a	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a7501d	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cab1b9	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cae528	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cf3aec	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a00af1b	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0647bc	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a1d5cb3	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a37d9d9	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4b1e57	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4c9faa	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ca7be	hyperv_flush_guest_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a51f653	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5372ae	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a609058	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6493aa	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a661bcc	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6f219d	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a705b41	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7cb9c4	platform_thermal_package_rate_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a899ee3	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa0c8a7	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa23efd	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa51b7d	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa637b5	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aab2553	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aaf68ef	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac91da6	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad23d69	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad5ceb1	__uv_hub_info_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad764ca	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aeb57e7	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2e021d	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2e57e7	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b42e8e5	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6bff3a	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b767366	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9200fd	lookup_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba28689	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bda969d	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdfccc1	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bea59a7	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bff0b24	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c067797	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c10ce14	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c23ae23	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c28156e	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c57a36f	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5b89b9	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c611b4f	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c642af7	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6b629f	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c81acad	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c82fea8	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8d59a0	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c905758	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9d1661	arch_phys_wc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbcf222	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd6bd2	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc7fe24	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd97ea8	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ce316ec	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cebd6b3	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cee8dc7	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0a5cfe	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d190be0	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d379494	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d557058	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5811c9	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d591391	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5a3706	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d690764	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d77ea35	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9e2d97	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da20b4a	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da76bf4	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da8ead4	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db7be7f	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbcb9ba	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc82f1d	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dfe2302	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e01934a	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e19feb6	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e527d41	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e67d692	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7366c9	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8207ed	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bd4a3	hv_alloc_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea9d3a0	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb7a87b	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebda84a	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec6a92e	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed6c143	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee53e31	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef68724	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef69f52	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f05fa72	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2dd7ca	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2eb429	kvm_arch_para_hints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f403c04	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5760d3	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f70bee8	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f852784	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f85f8fc	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f88b20e	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa3be65	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa6a4d1	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb91cb4	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbf7938	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc4add7	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc83e6c	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd3eaff	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd73c35	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe2374d	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x90055ce5	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x9024f443	mds_user_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x902f11a3	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x904645b2	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x90471994	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x90555891	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x90698d10	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9084b044	clear_page_erms
+EXPORT_SYMBOL_GPL	 vmlinux 0x9088f0e7	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9099e117	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a3b032	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d8cc	hv_is_hyperv_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de0452	platform_thermal_package_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f4296b	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9103feeb	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x910573e9	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x91062043	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x911d19c5	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x912bbf55	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9135a818	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x913ebc8e	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x91448752	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x914aa0b7	hyperv_cs
+EXPORT_SYMBOL_GPL	 vmlinux 0x91598a81	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x91700124	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x917f5362	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x91954393	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x91983148	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bff61f	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cb097f	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e03a02	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e89ee2	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9203ab14	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x92141343	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x9226b25a	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9232d7e3	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d9dba	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9257a27e	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9258937a	e820__mapped_raw_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x9266977a	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x926b9a57	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x92716e3d	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x92862bf1	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b6c470	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c55dd7	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c560d9	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ed606e	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f8cc08	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9311fb3a	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9343415c	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9354e2c5	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9367b7d0	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x936aa0ec	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93768c81	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93940823	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a8223d	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c3439f	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x93cc1425	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d04ad2	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc2586	pgprot_writethrough
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93feb8d7	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9404c71a	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9405f434	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9414e5fe	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x941e9ef2	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424058f	arch_haltpoll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x942a53c0	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x94462aa2	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x944839cc	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x944c4513	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x9464bc2c	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x946cf297	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9471ee9b	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x947b40c6	cpu_smt_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a23d84	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c2b462	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d36dbd	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f296ac	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f47934	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x94fc82bb	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x95072a69	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x950e2e60	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x952a5a5c	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x952e126a	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9544312c	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9548d872	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x955c0e2a	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x955eef4f	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x956e6d1f	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x957d57e9	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9594507d	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e468b0	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95efa1db	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f7b0bf	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x95fa50f8	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x961bac3f	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x961c3d34	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9633bf8a	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9636b39e	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x963c1ffa	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9650fae4	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x965aecd2	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9668fa1d	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9688b217	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x968c4601	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x969d4f22	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a2aef8	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b1030b	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x96bfa2c3	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c8aee9	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d02d07	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ffda18	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x97003ed4	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9707802d	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c230b	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x97131347	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9719bcfd	pmc_atom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x973604c8	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x975021a8	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x97664276	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x976813a1	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9776991f	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x978e8a64	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9797af5d	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x979ee5ad	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b40a79	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c23c8c	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12355	hv_remove_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e91246	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fe5eba	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x980eecf0	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x98155ac7	pwm_lpss_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9819f900	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x98206f1f	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x9827e113	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x9828facf	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98452d77	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x9846a66f	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x985c2dba	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9873d2fc	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ab0a5	amd_get_nb_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x988a1a00	sn_region_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x988f8490	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x98951bee	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x9895ff36	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ad201f	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b3ba55	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98dc9810	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x98dd9ba5	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e1ae3a	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ea48fa	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f4d306	hyperv_flush_guest_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f5fd24	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9908e30e	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930f8a3	uv_bios_change_memprotect
+EXPORT_SYMBOL_GPL	 vmlinux 0x993d2d85	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x99430ba2	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x99470a38	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x99490561	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x994ae4f0	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x994b1887	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x995314d5	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x995951aa	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x999ffa04	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ae25a6	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b20f79	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c011d8	mcsafe_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x99cd6f53	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d69012	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x99da32cd	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f67324	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a03a2df	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0f49a8	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0ff4ff	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a12a086	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a277843	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2f0084	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a356738	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a38d151	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4a5dc1	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4e7319	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5e4f6b	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a648cb5	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6ae7cf	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa71c2a	efi_query_variable_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaac699	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aadf6f8	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9acc132d	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ade66ab	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b03832c	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1179a7	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b21b336	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b865a2e	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b918525	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b98a075	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9c345a	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9f3648	pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba22909	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2fc6b	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bad141d	hv_hypercall_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf1db8d	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c0fe31c	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c15d3a4	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2ca4e1	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2d3e16	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c61340b	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c767254	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7730ff	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c87b2d6	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8c1239	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8da520	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c94a69f	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4e7d1	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccbdf69	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce664fe	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cefb6c7	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d224329	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d337468	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d488277	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d49098d	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d695f5f	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6a311e	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d76b199	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d86312e	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8e82be	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d985873	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db49086	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db8f8ac	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc50311	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcfcd22	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de96f15	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfaa077	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e006414	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0f9ed3	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e31ad7b	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e392023	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e423bbc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e54ad6f	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7ba3c5	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e804a3b	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8b6d37	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8da3a2	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e913e15	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea1de88	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eab0e94	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed7fcca	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edc5d36	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edd0549	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4eb6bc	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f57d299	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f583b02	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f658e26	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f665f15	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d1f6e	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f71bc72	uv_bios_set_legacy_vga_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9b9703	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fab32df	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbb8e4d	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcdcb5a	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff5fd10	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff7e40c	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01ce684	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0203887	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa03330de	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0501695	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06389f6	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08045e1	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0838ad8	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08c5c56	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0996adb	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0bc2b9d	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0befcaa	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3ccc6	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d7c0b0	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0db9a5c	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dc2eb3	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e53b60	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ec9d13	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f03b90	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f27ee3	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f4eed1	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10604d3	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10a91c6	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11f9ab9	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1210975	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1336433	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15a4cd1	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17eff5e	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa182c93f	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xa193fc73	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19d6a2c	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ad92b9	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b98437	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c20f75	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d55d22	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e15725	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e48e7f	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ed9c8b	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2247cc5	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa255f620	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa25c8fe6	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa275a9f3	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27c3e06	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2885c86	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa290ed07	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a95552	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bf42c9	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d64da9	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2da3c45	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e5009d	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e59f34	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fdd5ab	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30ba206	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa311f35c	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31304eb	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fccb7	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fcfdc	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa358bbdd	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35fbfc4	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f6ee8	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3798835	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa388fb27	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3933968	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b0c89f	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ba86a6	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c3cfc8	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3cd62e3	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3daabc1	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f6d67b	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4124d21	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa414e4e3	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa425ec30	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42967fe	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa431732c	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa431aa7f	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4387ee4	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43a8ba1	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4408187	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4426890	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa447a9fa	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44ee937	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452a009	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452c297	hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4572a58	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa458973c	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46c3e60	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46e94f3	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48e538e	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4a6015f	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cb4d9e	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d9031d	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f61435	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa508d826	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50aa783	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50f60fa	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52380a9	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xa527e28b	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53587bc	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa541339f	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa550c31b	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5572806	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xa584b3e3	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586fcdb	uv_min_hub_revision_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59159be	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a40729	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c0f065	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5dce51d	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e2a16f	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6045b6c	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60714d7	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa609b337	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66653b8	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6869592	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6992c54	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6995596	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c35a9b	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cca5fb	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ead6ba	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7127da7	mce_unregister_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7187bda	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73c9256	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73cce3d	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74df928	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa763eeab	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7786323	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7883438	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7976768	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bcdf27	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cf6004	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fabbed	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fe79db	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80037f8	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8131bef	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa844370e	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8445963	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84638bd	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84c285f	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa856f5f8	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa858f0e6	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xa859c6eb	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8629962	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8654461	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86b0542	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87e740f	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa89eb1e2	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8dcd1c6	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e1150f	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e705c9	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f38cf1	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90b4d3e	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9282309	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa937bd77	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96c0364	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9841d1a	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854364	umc_normaddr_to_sysaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa992f351	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9990be9	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ad25df	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ade4d0	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c1c8de	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c5cc1e	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ef7968	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0e3d05	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e2b59	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa35c632	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa48852b	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa49eccf	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4ae983	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4e4eb4	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa547c95	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5aee1c	uv_bios_mq_watchlist_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5c7117	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7c08da	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7f4df8	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa86cfb5	uv_possible_blades
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa96f683	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaafe993a	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab08298b	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xab13bdeb	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1e0e93	hv_setup_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2e715a	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2fd34c	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xab433adc	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xab496c30	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5a3862	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5d61b3	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7afc54	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9174ff	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab925f95	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba75003	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb495f8	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc214c5	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe9bc0f	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xabfbbf23	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0ce30b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1d3503	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5486b1	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7256a6	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9b8d57	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca3fdfe	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc38f46	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaced3bfe	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf4252f	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf42630	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfe2b49	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xad01c434	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xad095c42	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad15e4e4	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2acb79	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xad30917f	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xad37de8f	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3a7ac0	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f0017	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad644a17	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7125c0	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xad85ad01	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8927f4	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadae4500	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb8f873	do_machine_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd8a780	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xade0c06a	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xade63dad	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xadeda0ff	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae146163	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xae195377	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1c8308	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae25bd8d	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae484620	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xae57cd3b	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xae64ead0	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86a936	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86c67a	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86d24b	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a7b72	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xae908a75	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9530b1	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9b0fb1	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeae1206	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf16ff20	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf507028	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5368b6	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf568bff	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb13a42	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc80d76	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd45337	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafded33f	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaffc7292	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0069bec	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb006d5d6	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb00b68f1	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xb00e4386	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08e57d8	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08fd476	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a3ac9d	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a400e1	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bfae24	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e22268	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ed0f56	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12bad14	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1332e4a	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14a28ba	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14e0884	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14f8858	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15c02cd	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1898271	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a02d04	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ae568a	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1cdc235	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ef0548	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2082bf7	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20e5ff7	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21af4f6	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb234126f	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2771991	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb285b8f8	xen_in_preemptible_hcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28c3152	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb293e25b	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a881c3	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aa2089	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aadf75	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2abdc12	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c35cba	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2cdca9d	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d08c1c	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2db44f7	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dfa8ab	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e58504	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2eebf91	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30e9c10	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3137417	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3179d6c	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33a0eb7	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36de26c	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb372aa53	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3866326	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38a4923	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38be02b	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39913f9	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3aac091	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c4b45e	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d4dc0a	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d8051b	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4055ce3	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42b266b	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45554f4	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47706d8	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47972f5	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49039aa	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a1cfcb	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a41fbd	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ac2202	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b663cf	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4cb7405	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d1968b	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501d893	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e1f27	__uv_cpu_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb524c612	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5491998	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5502d97	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55af5c7	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c6db7e	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ce3d64	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d63c5c	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e0fedf	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5eef637	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5f1076f	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5f30e26	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6074632	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60ae52e	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb61147e6	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6252266	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65912dc	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb662b022	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66715c7	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb673d57f	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6826761	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68446c3	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68797f8	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68dfac4	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb694ba8f	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xb698d20c	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c667de	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d1b530	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6fb2779	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7312a17	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7330923	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb733c4df	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74861db	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb761318b	sev_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb764cfef	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76e83c9	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb773588a	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77a6216	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c1aabe	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c25dc1	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cef64e	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d7c12e	hpet_set_alarm_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8156092	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xb817a4cb	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8431ac0	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb845d724	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8588200	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85d230b	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85ffc59	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8756bf5	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb888b8ad	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8921907	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89ff442	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2b1f7	mce_register_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d64462	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9144c4b	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb939eba8	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9444d51	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95433c2	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9705b17	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9736d8b	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99371cd	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b4c2e7	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c16f51	hv_max_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c424fb	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9db99d7	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e1f98a	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba01ec83	hv_stimer_global_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0be7e5	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xba181e3f	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xba29ec37	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4598ab	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4843d9	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4c9afe	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba57d951	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xba68ebbc	__xenmem_reservation_va_mapping_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6f2fac	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xba7b4c14	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xba7e314b	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8e2c38	irqd_cfg
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8fd6bc	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xba90eac9	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xba924edc	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xba984d9b	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9889e8	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa01a82	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac53a71	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacba0e4	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad56f3d	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae4a454	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf9d785	__tss_limit_invalid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafcc200	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0aea4f	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb18d31c	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2f74ed	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3cb3a3	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb409557	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4552c2	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4768f8	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb49fd83	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5a5535	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb677de2	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6d98a7	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb99a122	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba867a3	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb676ce	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc348b4	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe5baf8	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc04bd46	x86_platform
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0b0785	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2764b7	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3915e9	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4de034	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc60dc37	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6a929f	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc736f25	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc893f24	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc92fd05	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcaa6eae	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc656bf	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcca533d	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccdd956	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf31c4e	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0b27cc	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd174761	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1a2865	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1c5f64	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2f2452	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd377590	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd434990	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd4820ae	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb2dfd5	uv_bios_reserved_page_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc28889	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc5ff42	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd00bca	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf9a889	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe07f3fe	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1a260f	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe248956	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3a52df	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe477d4b	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe47cd1a	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe68ad83	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe82fac6	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe850abb	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe925d50	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf10a51e	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf115bea	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3d02c2	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf426a8c	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4a859f	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6664ed	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf666b88	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6b161d	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6b667d	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6e20ff	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf77aa02	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c855f	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c9a6c	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf8b9451	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb02606	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb1be70	hv_setup_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd0f1d7	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfda0bea	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff455bf	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffc8b1b	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02c9504	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0462cf8	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05ad9e8	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc068167c	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06a8fe7	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07ad057	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07c2231	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc080b71b	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bbce6	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b85058	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d543a9	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d812e4	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dbf4aa	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e96037	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f1e77c	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f8945c	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc107481b	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10831b7	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1273169	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1424a66	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc142ecf4	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1481af2	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1537f88	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15ba944	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18cdf36	amd_df_indirect_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19884ab	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19d5c75	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a2fbab	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b7729b	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b9515e	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cde909	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d51221	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1dd5753	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1eace55	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1edcfb8	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f0cd59	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f69707	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccf09	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fe73fc	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ff227e	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20cfd54	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2160384	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2209262	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2447c9e	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc244b11e	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24760bf	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b8971	hv_remove_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc279241d	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27bad30	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc287d96a	kvm_set_posted_intr_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29737c7	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ae70d5	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b09649	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2bb9066	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1e4fe	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c34bfa	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f63418	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fc7a6d	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xc30fccd9	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3256c3d	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc326d3a9	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33773c0	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3386606	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33aa371	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33b37fc	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3a07e9e	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3abeebb	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b2334a	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3bf282d	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d39098	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3edf6aa	save_fsgs_for_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40df109	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4123cbb	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc42d386c	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43a6197	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4611027	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc465b534	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b3673	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49097b6	is_uv_hubless
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4bb1362	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4fb84ad	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5124d84	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc512626a	__supported_pte_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5269ed0	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5390a53	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc565d7d1	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c8f1d	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xc591b527	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5996c8c	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cae5a4	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e9b512	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5fb79a8	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60f16f2	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61b2f0f	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6237007	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62a66c0	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63d901a	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc671b610	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67d13b4	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xc683da81	set_memory_decrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6905b68	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69ac7cc	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6acaaf3	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b10427	ex_handler_fprestore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bfa692	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c4906d	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d2ef89	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7101748	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc717440f	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71896db	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc725de57	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc727ea52	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7488c19	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74bad06	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc756aa5f	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7588779	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc76b0c44	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xc778c7a5	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7842ee8	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xc785c812	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79c064e	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a580c4	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b16136	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cdd4ff	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d8a844	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7db25a8	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e05725	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1cc1c	injectm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8235a21	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc824e6fe	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83732f4	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83989fd	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84439f8	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8555799	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85b066d	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc876fae2	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e487a	sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc883dbe8	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89ab28a	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a48e66	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cda823	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e68a2f	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f162c9	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f7757c	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f9a63b	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8fdaa1d	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc918efca	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9268da7	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9282ce9	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93bc99e	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95b2fac	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc963e8bf	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc973809c	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc976b705	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc977ba9c	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97ee1c0	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc98a5194	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c96494	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d7ac2c	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca161b5d	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2bfec3	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2f6310	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3346b1	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa4a67f	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa68533	cpu_has_xfeatures
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd3a64	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae2277d	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaef011d	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf0304f	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafaebed	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1c694c	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3e88af	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb53a0b4	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb55d78f	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb64db4d	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb67ee03	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb70a4a9	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7cc73a	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970751	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba884be	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1174b5	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc168bdd	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc18c475	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc26c2bb	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc26ce97	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc292b86	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dd1d2	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3e7767	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc477abd	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4a8ae3	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5f3958	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc60ed9c	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc63ada1	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc682bbb	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc710f6d	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc92bcc7	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb5cf92	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdfee6d	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce3c66b	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce8daaa	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea4e34	perf_get_x86_pmu_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf0c485	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfc6896	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0232d3	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd06ce37	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3dd4ba	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4b289b	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd63c67f	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7e6148	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd81a945	switch_fpu_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd847a9b	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd85c924	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda7b90c	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb1e178	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb7c9cd	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcbd25c	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcfc501	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddd3d55	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcded7620	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1a4fa	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf54242	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdfc538f	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xce00d2f5	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce12567b	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xce129587	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1c3b5a	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2959a1	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xce36c966	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xce411c98	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xce46a8a2	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8b9c70	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8cfeff	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaa0edc	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaacf40	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb66bec	sched_clock_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec85da1	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec8cead	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecdc777	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcece15ee	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee54503	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee9563f	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xceea9f7d	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed39a4	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8318	ibft_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf00c253	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0242eb	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf05db5c	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf14e2e8	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf174fb2	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf215ed4	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf27bdba	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf524fcb	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5bf1a0	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf61759b	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6b98a2	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf765838	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7c6a5d	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf88bf1c	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbbc6dd	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfccfa53	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd5d3f2	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03406b4	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0499cb2	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd054b116	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0550895	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06f4256	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0xd071dc7f	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a9825c	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c7bcee	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d0c5c5	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d248dd	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d8f77b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e32df6	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ef2757	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f584ff	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f881ab	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10a1a73	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11f52df	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12bd034	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13485e4	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1381571	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13acdfe	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd14ad69d	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd160c410	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16be075	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17c2563	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ffe19	e820__mapped_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1aeaac9	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b9bc7b	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c1f7f1	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c85688	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cd4d0b	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1de737b	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbc889	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2020e79	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20b7213	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22c9a20	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2387565	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25f636a	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26552e5	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26e501c	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27713c4	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27c8285	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28b9709	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2aaf825	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ab6740	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b723b2	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2be2654	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d1af03	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e83349	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30c4a52	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd332efc6	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33aa84a	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd35a1412	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3673665	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36dfa2a	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38cbfc8	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39ea9c7	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3aa44f6	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3acc547	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d15b30	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e8cd5b	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f04ce9	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ff4ad7	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42643bf	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42690de	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42d6f1e	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4382021	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd43bfd08	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45515fb	ptdump_walk_pgd_level_debugfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd468c244	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49056d8	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4934f13	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49db244	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49f11d9	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bd0578	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c04d79	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4cb533e	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f12b0d	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51f2d2e	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53855e4	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd544a217	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54a9c6b	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54f69e0	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd566d13f	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5834e5f	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5855289	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd58a8c36	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b05b92	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f3bb7b	set_memory_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd607d6c6	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd612e15c	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd613e41d	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6161275	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62855ef	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xd638abf7	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67df3cf	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd685da7d	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69753d7	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd698abfc	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69b6866	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b1fdd6	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b9589e	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6bda367	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d97420	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6dd0650	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e22611	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ef8724	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ffe6fa	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7061503	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71e217d	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71f9aaf	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71fc7f8	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7222c7b	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73ab130	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74de429	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e819	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76bb0a2	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7864e36	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xd792d69f	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b3b099	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7be585b	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d34828	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80a3fd6	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80e746c	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd839320c	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842be4f	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84f2298	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8765bdb	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd889a46b	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88cdbe7	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a266c6	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a74307	isa_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d5ea0e	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8efb4fa	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91f54a2	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92d9971	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f3238	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9367dfc	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9439c9c	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd950d4ea	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96ddf3e	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd983ee48	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd989839b	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98d3374	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98ebf18	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xd998b96b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99ffd62	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a89d1d	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9aff7bc	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9cda1b9	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1af999	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1d3ebd	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f78ee	clear_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2c5ab2	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3d3997	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xda51037d	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xda57134f	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6235d5	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6b5af8	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xda78b28e	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xda90233f	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9f4d49	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaab3365	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab0aa79	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab90f52	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabd06e6	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdadd8850	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf50cb1	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafe6397	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb20a95c	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2b8dfd	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb77811e	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7a85bb	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7e6449	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8562e4	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb88ce97	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd5239d	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdcfa7a	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf37412	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0f8e7a	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc11cb21	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1c672f	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc224c0e	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3687d6	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc373186	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3d60c8	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3ff54b	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc4c9f8f	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5a1b0c	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc62087f	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc648326	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc65c663	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9ac193	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca46043	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd233	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccc16e8	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd03bb76	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd07ea1f	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2bca77	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd32627b	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd429ecf	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd44bef4	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd45a5a4	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4b6438	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd532021	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd552179	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd56f115	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5822f8	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd66e75c	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc46f37	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcf80e3	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde5b905	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf81090	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xde00bb6c	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xde036cc7	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xde082929	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2b95ad	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3c803e	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4220a4	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xde47ee41	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4fbe0a	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xde50cafb	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xde539c68	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xde55776c	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde57b852	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5c5147	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8ab770	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xde98ec1a	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9a3b2c	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea0993f	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebd773d	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2f8de	perf_msr_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xded54044	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedd7973	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee5bca2	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee8f048	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef7591d	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef8bde2	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf05b88e	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1511d1	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1882af	dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1a092a	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1f579e	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf334edb	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf40c027	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4560ca	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf458794	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf481814	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf66637d	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7125cc	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf760910	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf81924d	uv_bios_mq_watchlist_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf840130	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf84721c	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf875c83	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8c4f4a	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8dd66e	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf926a48	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf94eaf1	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9845d8	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf99a3af	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9a6960	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9cc560	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb0e7fa	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb309d5	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc5e260	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff04ac6	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe005a0d5	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0138431	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01953ee	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01eef0a	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe029eadd	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f53ff	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe078d7ff	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe082437e	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xe087e844	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08a2f5c	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a51d4f	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b69986	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d668e4	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ee9f3f	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1063c7d	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12328d2	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12da4e7	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14a2000	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe159e135	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe162b8e8	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1733de9	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xe176c575	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18c070f	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18d791b	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe193ca1f	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a58dd3	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1aa2d62	set_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ad1adc	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1afbc46	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b414ee	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b8d030	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bfa28a	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cccbf6	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d519a1	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1edae75	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xe209c490	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d8dc8	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23da11f	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2497e2f	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24beb59	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26a9e5e	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27e3523	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xe283fa18	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28fc15d	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe295c0ff	is_hpet_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cb03a7	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d2e161	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xe300fd37	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30b538c	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30e49ed	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3319d6d	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34334fb	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3570b74	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe364ecee	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3717a2f	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3768790	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe399b13a	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c7216c	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ff2dc5	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe407cf15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40c0129	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4150713	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe432363f	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43e6282	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44ea235	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45d9af5	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4683a55	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe477ba4d	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48611ac	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48e8454	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48ef340	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe491c85d	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4967d03	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc9466	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e15c59	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f71163	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fbcd94	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5016459	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5154413	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51b0b60	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51cf95b	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe520ba03	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52f2d38	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52fc737	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52fd040	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe554f2ee	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55983c2	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55e07b1	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe57e8edc	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe591084b	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59a1a42	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a80da7	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ca8bcb	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5da3eb1	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f1301e	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe645e09c	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ad8ea	unregister_nmi_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe650e590	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6646439	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe664b31f	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe673c6c1	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68e695e	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a87d77	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b84f9a	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c02996	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6eb9708	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe70969b8	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71438d4	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe740b58a	hv_vp_assist_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74db77a	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe759e97f	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe763bf34	pwm_lpss_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7689eb4	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe790c740	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7aac42d	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ade078	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b71592	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b9da15	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cc176f	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d29e83	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d76926	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f1eb3d	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe804c590	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81d4473	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe825b7c5	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xe830074e	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83eba32	itlb_multihit_kvm_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe867572d	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe89f2366	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8adad97	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8be56d4	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ee77b0	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f55946	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8fc68eb	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91c6d03	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93660a2	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94df56e	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94ee138	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95118ce	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9591531	pwm_lpss_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97c776a	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97da514	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a75313	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9aaf37b	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ab46cd	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ae5277	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce931a	kvm_para_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9dfa46f	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e7ba16	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9eca456	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f0dab6	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0cbf3a	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1eb67c	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2403a0	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2ebffd	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xea524a1c	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6f4359	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7d66cf	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xea8e77e7	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9d0c78	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabe549a	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xeacd0100	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadc40ae	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae4c037	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae5e927	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf402fc	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1fff9d	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3aaff2	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4221ce	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4ab512	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4b3056	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb569de1	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5d0dbb	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6a77fc	set_pages_array_wt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6b16f9	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb74c1d3	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb833c22	xen_has_pv_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb898227	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8c3dd9	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb90b3ac	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb90fd73	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb96dd54	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba76179	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb63abd	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb6a5df	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe0a013	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe18637	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe609b3	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xebeab206	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xec15bec5	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1628e6	pv_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2ac8a1	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xec485f56	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5c2279	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec788566	acpi_target_system_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7ade6c	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9c87df	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb16df4	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb97be7	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf27912	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xed08e540	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xed13363f	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xed16aa99	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2afeb8	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2be504	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2e0d27	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3fd6da	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40c481	kvm_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed69230b	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8d1e7a	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xed956da0	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9b2695	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda2831d	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb5b382	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc28591	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc85c80	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xede68c8f	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xede96e51	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xede98ec5	intel_pt_validate_hw_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xedea3aac	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf47135	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0652b5	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0fc780	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xee13e697	set_personality_ia32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+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 0xee6e4e15	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xee70fa74	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xee878b9b	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xee99559e	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fcda6	apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeebecb0f	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec512b7	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec8b5da	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed0ced2	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed75239	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfe564	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee667d3	fpregs_assert_state_consistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee9bfd4	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeec29e7	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef27c486	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3511be	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3608b3	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xef41cbc4	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef48542c	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef579eff	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5b26c6	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xef63c0cb	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7c259d	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb47dcb	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb6ab28	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb73c81	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc6b29c	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd75f7d	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01be8c2	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0232f3a	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0240d74	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf030b280	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf035d073	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0407ae9	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf050a6c3	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf057aa59	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf057b62f	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06737da	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07bf65b	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a1392c	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a1fac6	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c5338c	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e93f1e	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0eac08e	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10213ba	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1139cdf	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xf118752f	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf128f6e2	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15d7ac5	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xf170ece7	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1767545	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18b397b	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19590de	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1992aa5	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b1274a	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1de0b10	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ee1204	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2127abc	hv_stimer_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf217ad70	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e82c7	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22ef1d3	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23cfd3e	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24d1193	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf257fe28	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26080ad	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf271891d	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27b91fd	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0416	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf280404b	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2845a4d	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2850e11	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b5d046	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d38606	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e8a5cf	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f49582	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31e59ae	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33175f5	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34be0d4	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34d5f2c	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf355b4aa	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3954f31	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b1a074	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d14586	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e03e7e	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e4c418	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ef03c2	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ffabb5	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf406384a	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xf415cdd6	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41cad8e	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42f1a9c	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf44d6f3c	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf453a152	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4693a66	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf473b4e8	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf478d387	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e020f	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4824002	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf487def7	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48e0ce6	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf498e06b	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49a4b06	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a0b015	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b25a2f	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b2b7a0	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4bfdf36	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d44829	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5057232	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51dc113	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52eb15f	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52fcb71	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf538a98c	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5415138	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5550b5e	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5733a86	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59e8da2	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a72ac5	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c84306	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c9a51e	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cbc4b9	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5da561d	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf601560e	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf612073d	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6230e49	fpregs_mark_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62dbb8f	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63ba94e	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63e1df0	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64bb88c	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6505040	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf653d7a2	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6564da4	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf667ccf9	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69f4aa2	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a7620b	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b96d6a	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bbad67	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e1b478	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf700fb4b	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70183d9	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70648d5	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7165192	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71aca98	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71e7d71	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7257384	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73a62b2	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf747bf08	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7500c99	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767ca35	fixed_percpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7904515	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79c3bd9	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c5989b	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ca7edb	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f59d77	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f86f2b	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fad814	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fb72ee	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8148071	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf815799a	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf818a25a	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf823c2d8	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8295971	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8301db1	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8417a2e	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8420145	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf842e201	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8431ef0	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf843a4b2	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84a792b	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8756557	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf881cecd	load_fixmap_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89436ce	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b327f9	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b9bf3d	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8da0698	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fe3986	pat_pfn_immune_to_uc_mtrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92df1c4	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9329c62	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf956385e	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95b0020	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0xf960de3b	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf986d6dd	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98964dd	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98a6bc9	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9997597	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99eade9	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab309f	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c03709	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cf727a	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e762eb	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f36051	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f7212a	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f733bc	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ff4352	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0bb999	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa186267	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa35044a	alternatives_patched
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa3c0d69	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa51c2b8	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5dbebb	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e33b8	isa_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7a5126	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7af257	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7f9bc0	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac1da40	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfacfa410	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae4db7b	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf30ea3	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0fc6bc	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13dd2e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1520a7	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1c7119	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2af036	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2ba82b	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb40cd3e	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb58030d	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60ca09	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb61e567	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8f48f2	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb91e318	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba795de	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc3308c	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdea928	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe5859c	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf77e14	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc04e35b	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc143611	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc162fae	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc18f6b3	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc247db8	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc370582	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3f1857	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc40264b	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc59763d	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6fcb2b	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7866b3	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca669f8	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcabb234	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb52178	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcce139b	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcddec82	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfce5780d	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcec09b8	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf11c7a	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf1d37b	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf3342d	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd401c41	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4d7773	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd736ce9	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd78a312	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7dbbf1	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd931a8a	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9c91e4	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda2d345	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb32b95	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb54da4	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd5b115	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb0be9	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb12dc	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfa7029	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe09ef56	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0f53e3	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe149780	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe19f8ae	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2bbd2e	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3155d6	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3db827	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3f8bb2	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe477cb1	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe546d0b	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe615874	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6fd6ea	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe727411	get_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe85baae	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe92d2f6	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec5c7e7	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed6d476	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed85864	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee22c0c	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee2be05	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef8133c	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xff029439	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1e67b9	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff24bb9f	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xff27dec5	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xff28d732	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3ead98	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xff4724b3	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff701706	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xff706454	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8dcb85	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e74e2	arch_haltpoll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff970be9	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffaffd35	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb990a1	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc05dbe	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc3bd74	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc82e9f	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd16b3c	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xffec4233	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff4cbe5	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffc4d4d	sock_diag_put_meminfo
+USB_STORAGE EXPORT_SYMBOL_GPL 0x11c521e6	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1aa65a37	usb_stor_reset_resume	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 0x208f1855	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2eb9de40	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x37faef9f	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x44aeffbc	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4ee27e51	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x515f6fa2	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6cc306b8	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x732c83d4	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7d32d282	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7e24dc35	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x940f910e	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x95931310	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9a92cc83	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9b4cce36	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaa140d69	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xac041f90	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc54ede07	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xde36d43f	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe4793252	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe5e8e4fe	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf4163345	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf8956786	usb_stor_CB_transport	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop.compiler
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop.modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop.modules
@@ -0,0 +1,5503 @@
+104-quad-8
+3c509
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_dw
+8250_exar
+8250_lpss
+8250_men_mcb
+8250_mid
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+BusLogic
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acer-wireless
+acer-wmi
+acerhdf
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_extlog
+acpi_ipmi
+acpi_pad
+acpi_power_meter
+acpi_tad
+acpi_thermal_rel
+acpiphp_ibm
+acquirewdt
+act8865-regulator
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv7511-v4l2
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+advantechwdt
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aegis128-aesni
+aes_ti
+aesni-intel
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+aha152x_cs
+aha1740
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+airspy
+ak7375
+ak881x
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alienware-wmi
+alim1535_wdt
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+ambassador
+amc6821
+amd
+amd-rng
+amd-xgbe
+amd5536udc_pci
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd_freq_sensitivity
+amd_iommu_v2
+amdgpu
+amilo-rfkill
+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
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+aoe
+apanel
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+apple-gmux
+apple_bl
+appledisplay
+applesmc
+applespi
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcfb
+arcmsr
+arcnet
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3935
+as5011
+asb100
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asus-laptop
+asus-nb-wmi
+asus-wireless
+asus-wmi
+asus_atk0110
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atlas_btns
+atm
+atmel
+atmel-ecc
+atmel-i2c
+atmel-sha204a
+atmel_cs
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avm_cs
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_charger
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish-x86_64
+blowfish_common
+blowfish_generic
+bluecard_cs
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia-aesni-avx-x86_64
+camellia-aesni-avx2
+camellia-x86_64
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5-avx-x86_64
+cast5_generic
+cast6-avx-x86_64
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+ceph
+cfag12864b
+cfag12864bfb
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-x86_64
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_laptop
+chromeos_pstore
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cio-dac
+cirrus
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+clk-cdce706
+clk-cs2000-cp
+clk-max9485
+clk-palmas
+clk-pwm
+clk-s2mps11
+clk-si5341
+clk-si5351
+clk-si544
+clk-twl6040
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm36651
+cm4000_cs
+cm4040_cs
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobalt
+cobra
+coda
+com20020
+com20020-pci
+com20020_cs
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_pcmcia
+comedi_test
+comedi_usb
+comm
+compal-laptop
+contec_pci_dio
+cops
+cordic
+core
+coretemp
+cortina
+cosm_bus
+cosm_client
+counter
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia2
+cpu5wdt
+cpuid
+cpuidle-haltpoll
+cqhci
+cr_bllcd
+cramfs
+crc-itu-t
+crc32-pclmul
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-pclmul
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_ishtp
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_lpcs
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+crvml
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+ct82c710
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062_wdt
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_cs
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcdbas
+ddbridge
+de2104x
+de4x5
+decnet
+defxx
+dell-laptop
+dell-rbtn
+dell-smbios
+dell-smm-hwmon
+dell-smo8800
+dell-uart-backlight
+dell-wmi
+dell-wmi-aio
+dell-wmi-descriptor
+dell-wmi-led
+dell_rbu
+denali
+denali_pci
+des3_ede-x86_64
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dps310
+dpt_i2o
+dptf_power
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dtl1_cs
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-edma
+dw-edma-pcie
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-pci
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+e752x_edac
+earth-pt1
+earth-pt3
+ebc-c384_wdt
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_bhf
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edac_mce_amd
+edt-ft5x06
+ee1004
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts_serial
+ehci-fsl
+ehset
+einj
+ektf2127
+elan_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_pcmcia
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esb2rom
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+eurotechwdt
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-axp288
+extcon-fsa9480
+extcon-gpio
+extcon-intel-cht-wc
+extcon-intel-int3496
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71808e_wdt
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fam15h_power
+fan53555
+farsync
+faulty
+fb_ddc
+fb_sys_fops
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fjes
+fl512
+floppy
+fm10k
+fm801-gp
+fm_drv
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fschmd
+fsia6b
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftsteutates
+fujitsu-laptop
+fujitsu-tablet
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-clmulni-intel
+gigaset
+gl518sm
+gl520sm
+gl620a
+glue_helper
+gluebi
+gm12u320
+gma500_gfx
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpd-pocket-fan
+gpio
+gpio-104-dio-48e
+gpio-104-idi-48
+gpio-104-idio-16
+gpio-adp5520
+gpio-adp5588
+gpio-amd-fch
+gpio-amd8111
+gpio-amdpt
+gpio-arizona
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-crystalcove
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-f7188x
+gpio-generic
+gpio-gpio-mm
+gpio-ich
+gpio-it87
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-ml-ioh
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sch
+gpio-sch311x
+gpio-siox
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-vx855
+gpio-wcove
+gpio-winbond
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-ws16c48
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpu-sched
+gr_udc
+grace
+gre
+greybus
+grip
+grip_mp
+gru
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdaps
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+hecubafb
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfi1
+hfs
+hfsplus
+hgafb
+hi311x
+hi6210-i2s
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-hyperv
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hio
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hopper
+horizon
+horus3a
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp-wireless
+hp-wmi
+hp03
+hp100
+hp206c
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hpwdt
+hsi
+hsi_char
+hso
+hsr
+hsu_dma
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei-wmi
+huawei_cdc_ncm
+hv_balloon
+hv_netvsc
+hv_sock
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hyperv-keyboard
+hyperv_fb
+hysdn
+i10nm_edac
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd-mp2-pci
+i2c-amd-mp2-plat
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-cbus-gpio
+i2c-cht-wc
+i2c-cros-ec-tunnel
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-ismt
+i2c-kempld
+i2c-matroxfb
+i2c-mlxcpld
+i2c-multi-instantiate
+i2c-mux
+i2c-mux-gpio
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-reg
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3000_edac
+i3200_edac
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5000_edac
+i5100_edac
+i5400_edac
+i5500_temp
+i5k_amb
+i6300esb
+i7300_edac
+i740fb
+i7core_edac
+i82092
+i82975x_edac
+i915
+iTCO_vendor_support
+iTCO_wdt
+iavf
+ib700wdt
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_qib
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibm_rtl
+ibmaem
+ibmasm
+ibmasr
+ibmpex
+icc-core
+ice
+ichxrom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad-laptop
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ie31200_edac
+ie6xx_wdt
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int3400_thermal
+int3402_thermal
+int3403_thermal
+int3406_thermal
+int340x_thermal_zone
+int51x1
+intel-cstate
+intel-hid
+intel-ish-ipc
+intel-ishtp
+intel-ishtp-hid
+intel-ishtp-loader
+intel-lpss
+intel-lpss-acpi
+intel-lpss-pci
+intel-rng
+intel-rst
+intel-smartconnect
+intel-vbtn
+intel-wmi-thunderbolt
+intel-xhci-usb-role-switch
+intel-xway
+intel_atomisp2_pm
+intel_bxt_pmic_thermal
+intel_bxtwc_tmu
+intel_cht_int33fe
+intel_chtdc_ti_pwrbtn
+intel_int0002_vgpio
+intel_ips
+intel_menlow
+intel_oaktrail
+intel_pch_thermal
+intel_pmc_ipc
+intel_powerclamp
+intel_punit_ipc
+intel_qat
+intel_quark_i2c_gpio
+intel_rapl_common
+intel_rapl_msr
+intel_soc_dts_iosf
+intel_soc_dts_thermal
+intel_soc_pmic_bxtwc
+intel_soc_pmic_chtdc_ti
+intel_telemetry_core
+intel_telemetry_debugfs
+intel_telemetry_pltdrv
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+intelfb
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ioatdma
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipu3-cio2
+ipu3-imgu
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+ipwireless
+iqs5xx
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+isci
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+isst_if_common
+isst_if_mbox_msr
+isst_if_mbox_pci
+isst_if_mmio
+it87
+it8712f_wdt
+it87_wdt
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k10temp
+k8temp
+kafs
+kalmia
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-amd
+kvm-intel
+kvmgt
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-adp5520
+leds-apu
+leds-as3645a
+leds-bd2802
+leds-blinkm
+leds-clevo-mail
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxcpld
+leds-mlxreg
+leds-mt6323
+leds-nic78bx
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-ss4200
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+legousbtower
+lg-laptop
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmc
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp8755
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltpc
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+macb
+macb_pci
+machxo2-spi
+machzwd
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77693-haptic
+max77693-regulator
+max77693_charger
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mce-inject
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-i2c
+mdio-mscc-miim
+mdio-thunder
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mei
+mei-me
+mei-txe
+mei_hdcp
+mei_phy
+mei_wdt
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+meye
+mf6x4
+mgag200
+mi0283qt
+mic_bus
+mic_card
+mic_cosm
+mic_host
+mic_x100_dma
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microread_mei
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx-platform
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+moxa
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi-laptop
+msi-wmi
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+msr
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwave
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxm-wmi
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n411
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+nettel
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-avx2
+nhpoly1305-sse2
+ni903x_wdt
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_common
+ni_labpc_cs
+ni_labpc_isadma
+ni_labpc_pci
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nic7018_wdt
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_intel
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nv_tco
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nvram
+nxp-nci
+nxp-nci_i2c
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of_xilinx_wdt
+ofb
+omfs
+omninet
+on20
+on26
+onenand
+opa_vnic
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+padlock-aes
+padlock-sha
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panasonic-laptop
+pandora_bl
+panel
+panel-raspberrypi-touchscreen
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pblk
+pc300too
+pc87360
+pc87413_wdt
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcengines-apuv2
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-hyperv
+pci-hyperv-intf
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcmciamtd
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_pcmcia
+peak_usb
+peaq-wmi
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cpcap-usb
+phy-exynos-usb2
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-broxton
+pinctrl-cannonlake
+pinctrl-cedarfork
+pinctrl-denverton
+pinctrl-geminilake
+pinctrl-icelake
+pinctrl-intel
+pinctrl-lewisburg
+pinctrl-madera
+pinctrl-mcp23s08
+pinctrl-sunrisepoint
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn544_mei
+pn_pep
+pnd2_edac
+poly1305-x86_64
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+processor_thermal_device
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp_kvm
+pulse8-cec
+pulsedlight-lidar-lite-v2
+punit_atom_debug
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-cros-ec
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pxa27x_udc
+pxe1610
+pxrc
+qat_c3xxx
+qat_c3xxxvf
+qat_c62x
+qat_c62xvf
+qat_dh895xcc
+qat_dh895xccvf
+qca8k
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quatech_daqp_cs
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rapl
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rdmavt
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-bq32k
+rtc-bq4802
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rc5t583
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wilco-ec
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-laptop
+samsung-q10
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sb_edac
+sbc60xxwdt
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp_target
+sbs
+sbs-battery
+sbs-charger
+sbs-manager
+sbshc
+sc1200wdt
+sc16is7xx
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scif
+scif_bus
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci
+sdhci-acpi
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_f_sdh30
+sdio_uart
+sdricoh_cs
+seco-cec
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent-avx-x86_64
+serpent-avx2
+serpent-sse2-x86_64
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-ssse3
+sha256-ssse3
+sha3_generic
+sha512-ssse3
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sil164
+silead
+sim710
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis-agp
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+skx_edac
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc91c92_cs
+smc_diag
+smiapp
+smiapp-pll
+smipcie
+smm665
+smsc
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-acp3x-pcm-dma
+snd-acp3x-pdm-dma
+snd-acp3x-rn
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-ext-core
+snd-hda-intel
+snd-hdmi-lpe-audio
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel-sst-acpi
+snd-intel-sst-core
+snd-intel-sst-pci
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pci-acp3x
+snd-pcm
+snd-pcm-dmaengine
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-rn-pci-acp3x
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-skl_nau88l25_max98357a
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-acpi-intel-match
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7213
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdac-hda
+snd-soc-hdac-hdmi
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kbl_da7219_max98357a
+snd-soc-kbl_da7219_max98927
+snd-soc-kbl_rt5660
+snd-soc-kbl_rt5663_max98927
+snd-soc-kbl_rt5663_rt5514_max98927
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-nau8825
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rl6347a
+snd-soc-rt286
+snd-soc-rt298
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5651
+snd-soc-rt5660
+snd-soc-rt5663
+snd-soc-rt5670
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rt5682
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-skl_hda_dsp
+snd-soc-skl_nau88l25_ssm4567
+snd-soc-skl_rt286
+snd-soc-sof_rt5682
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sst-acpi
+snd-soc-sst-atom-hifi2-platform
+snd-soc-sst-bdw-rt5677-mach
+snd-soc-sst-broadwell
+snd-soc-sst-bxt-da7219_max98357a
+snd-soc-sst-bxt-rt298
+snd-soc-sst-byt-cht-cx2072x
+snd-soc-sst-byt-cht-da7213
+snd-soc-sst-byt-cht-es8316
+snd-soc-sst-bytcr-rt5640
+snd-soc-sst-bytcr-rt5651
+snd-soc-sst-cht-bsw-max98090_ti
+snd-soc-sst-cht-bsw-nau8824
+snd-soc-sst-cht-bsw-rt5645
+snd-soc-sst-cht-bsw-rt5672
+snd-soc-sst-dsp
+snd-soc-sst-firmware
+snd-soc-sst-glk-rt5682_max98357a
+snd-soc-sst-haswell
+snd-soc-sst-haswell-pcm
+snd-soc-sst-ipc
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-intel-byt
+snd-sof-intel-hda
+snd-sof-intel-hda-common
+snd-sof-intel-ipc
+snd-sof-pci
+snd-sof-xtensa-dsp
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-us122l
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-vxpocket
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+soc_button_array
+softdog
+softing
+softing_cs
+solo6x10
+solos-pci
+sony-btf-mpx
+sony-laptop
+soundcore
+soundwire-bus
+soundwire-cadence
+soundwire-intel
+soundwire-intel-init
+sp2
+sp5100_tco
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-pci
+stmmac-platform
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+stx104
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3-wmi
+surface3_button
+surface3_spi
+surfacepro3_button
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thermal-generic-adc
+thinkpad_acpi
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderbolt
+thunderbolt-net
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads7950
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tlclk
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+topstar-laptop
+torture
+toshiba_acpi
+toshiba_bluetooth
+toshiba_haps
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_nsc
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+tqmx86_wdt
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish-avx-x86_64
+twofish-x86_64
+twofish-x86_64-3way
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+uPD98402
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_hv_generic
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+usnic_verbs
+uss720
+uv_mmtimer
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vboxguest
+vboxsf
+vboxvideo
+vcan
+vcnl4000
+vcnl4035
+veml6070
+ves1820
+ves1x93
+veth
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-camera
+via-cputemp
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+via686a
+via_wdt
+viafb
+vicodec
+video
+video-i2c
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+visorbus
+visorhba
+visorinput
+visornic
+vitesse
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmd
+vme_ca91cx42
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmw_balloon
+vmw_pvrdma
+vmw_pvscsi
+vmw_vmci
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmw_vsock_vmci_transport
+vmwgfx
+vmxnet3
+vop
+vop_bus
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83877f_wdt
+w83977f_wdt
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wilco-charger
+wilco_ec
+wilco_ec_debugfs
+wilco_ec_events
+wilco_ec_telem
+wimax
+winbond-840
+winbond-cir
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wmi
+wmi-bmof
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x38_edac
+x86_pkg_temp_thermal
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-pciback
+xen-pcifront
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-hwmon
+xhci-plat-hcd
+xiaomi-wmi
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_pcie
+xirc2ps_cs
+xircom_cb
+xlnx_vcu
+xor
+xp
+xpad
+xpc
+xpnet
+xr_usb_serial_common
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zatm
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/abi/5.4.0-1014.15/amd64/gkeop.retpoline
@@ -0,0 +1 @@
+# retpoline v1.0
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/abi/5.4.0-1014.15/fwinfo
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/abi/5.4.0-1014.15/fwinfo
@@ -0,0 +1,1559 @@
+firmware:       3826.arm
+firmware:       3com/typhoon.bin
+firmware:       6fire/dmx6fireap.ihx
+firmware:       6fire/dmx6firecf.bin
+firmware:       6fire/dmx6firel2.ihx
+firmware:       BCM2033-FW.bin
+firmware:       BCM2033-MD.hex
+firmware:       BT3CPCC.bin
+firmware:       RTL8192E/boot.img
+firmware:       RTL8192E/data.img
+firmware:       RTL8192E/main.img
+firmware:       RTL8192U/boot.img
+firmware:       RTL8192U/data.img
+firmware:       RTL8192U/main.img
+firmware:       acenic/tg1.bin
+firmware:       acenic/tg2.bin
+firmware:       adaptec/starfire_rx.bin
+firmware:       adaptec/starfire_tx.bin
+firmware:       advansys/3550.bin
+firmware:       advansys/38C0800.bin
+firmware:       advansys/38C1600.bin
+firmware:       advansys/mcode.bin
+firmware:       agere_ap_fw.bin
+firmware:       agere_sta_fw.bin
+firmware:       aic94xx-seq.fw
+firmware:       amdgpu/banks_k_2_smc.bin
+firmware:       amdgpu/bonaire_ce.bin
+firmware:       amdgpu/bonaire_k_smc.bin
+firmware:       amdgpu/bonaire_mc.bin
+firmware:       amdgpu/bonaire_me.bin
+firmware:       amdgpu/bonaire_mec.bin
+firmware:       amdgpu/bonaire_pfp.bin
+firmware:       amdgpu/bonaire_rlc.bin
+firmware:       amdgpu/bonaire_sdma.bin
+firmware:       amdgpu/bonaire_sdma1.bin
+firmware:       amdgpu/bonaire_smc.bin
+firmware:       amdgpu/bonaire_uvd.bin
+firmware:       amdgpu/bonaire_vce.bin
+firmware:       amdgpu/carrizo_ce.bin
+firmware:       amdgpu/carrizo_me.bin
+firmware:       amdgpu/carrizo_mec.bin
+firmware:       amdgpu/carrizo_mec2.bin
+firmware:       amdgpu/carrizo_pfp.bin
+firmware:       amdgpu/carrizo_rlc.bin
+firmware:       amdgpu/carrizo_sdma.bin
+firmware:       amdgpu/carrizo_sdma1.bin
+firmware:       amdgpu/carrizo_uvd.bin
+firmware:       amdgpu/carrizo_vce.bin
+firmware:       amdgpu/fiji_ce.bin
+firmware:       amdgpu/fiji_me.bin
+firmware:       amdgpu/fiji_mec.bin
+firmware:       amdgpu/fiji_mec2.bin
+firmware:       amdgpu/fiji_pfp.bin
+firmware:       amdgpu/fiji_rlc.bin
+firmware:       amdgpu/fiji_sdma.bin
+firmware:       amdgpu/fiji_sdma1.bin
+firmware:       amdgpu/fiji_smc.bin
+firmware:       amdgpu/fiji_uvd.bin
+firmware:       amdgpu/fiji_vce.bin
+firmware:       amdgpu/hainan_ce.bin
+firmware:       amdgpu/hainan_k_smc.bin
+firmware:       amdgpu/hainan_mc.bin
+firmware:       amdgpu/hainan_me.bin
+firmware:       amdgpu/hainan_pfp.bin
+firmware:       amdgpu/hainan_rlc.bin
+firmware:       amdgpu/hainan_smc.bin
+firmware:       amdgpu/hawaii_ce.bin
+firmware:       amdgpu/hawaii_k_smc.bin
+firmware:       amdgpu/hawaii_mc.bin
+firmware:       amdgpu/hawaii_me.bin
+firmware:       amdgpu/hawaii_mec.bin
+firmware:       amdgpu/hawaii_pfp.bin
+firmware:       amdgpu/hawaii_rlc.bin
+firmware:       amdgpu/hawaii_sdma.bin
+firmware:       amdgpu/hawaii_sdma1.bin
+firmware:       amdgpu/hawaii_smc.bin
+firmware:       amdgpu/hawaii_uvd.bin
+firmware:       amdgpu/hawaii_vce.bin
+firmware:       amdgpu/kabini_ce.bin
+firmware:       amdgpu/kabini_me.bin
+firmware:       amdgpu/kabini_mec.bin
+firmware:       amdgpu/kabini_pfp.bin
+firmware:       amdgpu/kabini_rlc.bin
+firmware:       amdgpu/kabini_sdma.bin
+firmware:       amdgpu/kabini_sdma1.bin
+firmware:       amdgpu/kabini_uvd.bin
+firmware:       amdgpu/kabini_vce.bin
+firmware:       amdgpu/kaveri_ce.bin
+firmware:       amdgpu/kaveri_me.bin
+firmware:       amdgpu/kaveri_mec.bin
+firmware:       amdgpu/kaveri_mec2.bin
+firmware:       amdgpu/kaveri_pfp.bin
+firmware:       amdgpu/kaveri_rlc.bin
+firmware:       amdgpu/kaveri_sdma.bin
+firmware:       amdgpu/kaveri_sdma1.bin
+firmware:       amdgpu/kaveri_uvd.bin
+firmware:       amdgpu/kaveri_vce.bin
+firmware:       amdgpu/mullins_ce.bin
+firmware:       amdgpu/mullins_me.bin
+firmware:       amdgpu/mullins_mec.bin
+firmware:       amdgpu/mullins_pfp.bin
+firmware:       amdgpu/mullins_rlc.bin
+firmware:       amdgpu/mullins_sdma.bin
+firmware:       amdgpu/mullins_sdma1.bin
+firmware:       amdgpu/mullins_uvd.bin
+firmware:       amdgpu/mullins_vce.bin
+firmware:       amdgpu/navi10_asd.bin
+firmware:       amdgpu/navi10_ce.bin
+firmware:       amdgpu/navi10_gpu_info.bin
+firmware:       amdgpu/navi10_me.bin
+firmware:       amdgpu/navi10_mec.bin
+firmware:       amdgpu/navi10_mec2.bin
+firmware:       amdgpu/navi10_pfp.bin
+firmware:       amdgpu/navi10_rlc.bin
+firmware:       amdgpu/navi10_sdma.bin
+firmware:       amdgpu/navi10_sdma1.bin
+firmware:       amdgpu/navi10_smc.bin
+firmware:       amdgpu/navi10_sos.bin
+firmware:       amdgpu/navi10_vcn.bin
+firmware:       amdgpu/navi14_asd.bin
+firmware:       amdgpu/navi14_ce.bin
+firmware:       amdgpu/navi14_ce_wks.bin
+firmware:       amdgpu/navi14_gpu_info.bin
+firmware:       amdgpu/navi14_me.bin
+firmware:       amdgpu/navi14_me_wks.bin
+firmware:       amdgpu/navi14_mec.bin
+firmware:       amdgpu/navi14_mec2.bin
+firmware:       amdgpu/navi14_mec2_wks.bin
+firmware:       amdgpu/navi14_mec_wks.bin
+firmware:       amdgpu/navi14_pfp.bin
+firmware:       amdgpu/navi14_pfp_wks.bin
+firmware:       amdgpu/navi14_rlc.bin
+firmware:       amdgpu/navi14_sdma.bin
+firmware:       amdgpu/navi14_sdma1.bin
+firmware:       amdgpu/navi14_smc.bin
+firmware:       amdgpu/navi14_sos.bin
+firmware:       amdgpu/navi14_vcn.bin
+firmware:       amdgpu/oland_ce.bin
+firmware:       amdgpu/oland_k_smc.bin
+firmware:       amdgpu/oland_mc.bin
+firmware:       amdgpu/oland_me.bin
+firmware:       amdgpu/oland_pfp.bin
+firmware:       amdgpu/oland_rlc.bin
+firmware:       amdgpu/oland_smc.bin
+firmware:       amdgpu/picasso_asd.bin
+firmware:       amdgpu/picasso_ce.bin
+firmware:       amdgpu/picasso_gpu_info.bin
+firmware:       amdgpu/picasso_me.bin
+firmware:       amdgpu/picasso_mec.bin
+firmware:       amdgpu/picasso_mec2.bin
+firmware:       amdgpu/picasso_pfp.bin
+firmware:       amdgpu/picasso_rlc.bin
+firmware:       amdgpu/picasso_rlc_am4.bin
+firmware:       amdgpu/picasso_sdma.bin
+firmware:       amdgpu/picasso_vcn.bin
+firmware:       amdgpu/pitcairn_ce.bin
+firmware:       amdgpu/pitcairn_k_smc.bin
+firmware:       amdgpu/pitcairn_mc.bin
+firmware:       amdgpu/pitcairn_me.bin
+firmware:       amdgpu/pitcairn_pfp.bin
+firmware:       amdgpu/pitcairn_rlc.bin
+firmware:       amdgpu/pitcairn_smc.bin
+firmware:       amdgpu/polaris10_ce.bin
+firmware:       amdgpu/polaris10_ce_2.bin
+firmware:       amdgpu/polaris10_k2_smc.bin
+firmware:       amdgpu/polaris10_k_mc.bin
+firmware:       amdgpu/polaris10_k_smc.bin
+firmware:       amdgpu/polaris10_mc.bin
+firmware:       amdgpu/polaris10_me.bin
+firmware:       amdgpu/polaris10_me_2.bin
+firmware:       amdgpu/polaris10_mec.bin
+firmware:       amdgpu/polaris10_mec2.bin
+firmware:       amdgpu/polaris10_mec2_2.bin
+firmware:       amdgpu/polaris10_mec_2.bin
+firmware:       amdgpu/polaris10_pfp.bin
+firmware:       amdgpu/polaris10_pfp_2.bin
+firmware:       amdgpu/polaris10_rlc.bin
+firmware:       amdgpu/polaris10_sdma.bin
+firmware:       amdgpu/polaris10_sdma1.bin
+firmware:       amdgpu/polaris10_smc.bin
+firmware:       amdgpu/polaris10_smc_sk.bin
+firmware:       amdgpu/polaris10_uvd.bin
+firmware:       amdgpu/polaris10_vce.bin
+firmware:       amdgpu/polaris11_ce.bin
+firmware:       amdgpu/polaris11_ce_2.bin
+firmware:       amdgpu/polaris11_k2_smc.bin
+firmware:       amdgpu/polaris11_k_mc.bin
+firmware:       amdgpu/polaris11_k_smc.bin
+firmware:       amdgpu/polaris11_mc.bin
+firmware:       amdgpu/polaris11_me.bin
+firmware:       amdgpu/polaris11_me_2.bin
+firmware:       amdgpu/polaris11_mec.bin
+firmware:       amdgpu/polaris11_mec2.bin
+firmware:       amdgpu/polaris11_mec2_2.bin
+firmware:       amdgpu/polaris11_mec_2.bin
+firmware:       amdgpu/polaris11_pfp.bin
+firmware:       amdgpu/polaris11_pfp_2.bin
+firmware:       amdgpu/polaris11_rlc.bin
+firmware:       amdgpu/polaris11_sdma.bin
+firmware:       amdgpu/polaris11_sdma1.bin
+firmware:       amdgpu/polaris11_smc.bin
+firmware:       amdgpu/polaris11_smc_sk.bin
+firmware:       amdgpu/polaris11_uvd.bin
+firmware:       amdgpu/polaris11_vce.bin
+firmware:       amdgpu/polaris12_ce.bin
+firmware:       amdgpu/polaris12_ce_2.bin
+firmware:       amdgpu/polaris12_k_mc.bin
+firmware:       amdgpu/polaris12_k_smc.bin
+firmware:       amdgpu/polaris12_mc.bin
+firmware:       amdgpu/polaris12_me.bin
+firmware:       amdgpu/polaris12_me_2.bin
+firmware:       amdgpu/polaris12_mec.bin
+firmware:       amdgpu/polaris12_mec2.bin
+firmware:       amdgpu/polaris12_mec2_2.bin
+firmware:       amdgpu/polaris12_mec_2.bin
+firmware:       amdgpu/polaris12_pfp.bin
+firmware:       amdgpu/polaris12_pfp_2.bin
+firmware:       amdgpu/polaris12_rlc.bin
+firmware:       amdgpu/polaris12_sdma.bin
+firmware:       amdgpu/polaris12_sdma1.bin
+firmware:       amdgpu/polaris12_smc.bin
+firmware:       amdgpu/polaris12_uvd.bin
+firmware:       amdgpu/polaris12_vce.bin
+firmware:       amdgpu/raven2_asd.bin
+firmware:       amdgpu/raven2_ce.bin
+firmware:       amdgpu/raven2_gpu_info.bin
+firmware:       amdgpu/raven2_me.bin
+firmware:       amdgpu/raven2_mec.bin
+firmware:       amdgpu/raven2_mec2.bin
+firmware:       amdgpu/raven2_pfp.bin
+firmware:       amdgpu/raven2_rlc.bin
+firmware:       amdgpu/raven2_sdma.bin
+firmware:       amdgpu/raven2_vcn.bin
+firmware:       amdgpu/raven_asd.bin
+firmware:       amdgpu/raven_ce.bin
+firmware:       amdgpu/raven_dmcu.bin
+firmware:       amdgpu/raven_gpu_info.bin
+firmware:       amdgpu/raven_kicker_rlc.bin
+firmware:       amdgpu/raven_me.bin
+firmware:       amdgpu/raven_mec.bin
+firmware:       amdgpu/raven_mec2.bin
+firmware:       amdgpu/raven_pfp.bin
+firmware:       amdgpu/raven_rlc.bin
+firmware:       amdgpu/raven_sdma.bin
+firmware:       amdgpu/raven_vcn.bin
+firmware:       amdgpu/renoir_asd.bin
+firmware:       amdgpu/renoir_ce.bin
+firmware:       amdgpu/renoir_gpu_info.bin
+firmware:       amdgpu/renoir_me.bin
+firmware:       amdgpu/renoir_mec.bin
+firmware:       amdgpu/renoir_mec2.bin
+firmware:       amdgpu/renoir_pfp.bin
+firmware:       amdgpu/renoir_rlc.bin
+firmware:       amdgpu/renoir_sdma.bin
+firmware:       amdgpu/renoir_vcn.bin
+firmware:       amdgpu/si58_mc.bin
+firmware:       amdgpu/stoney_ce.bin
+firmware:       amdgpu/stoney_me.bin
+firmware:       amdgpu/stoney_mec.bin
+firmware:       amdgpu/stoney_pfp.bin
+firmware:       amdgpu/stoney_rlc.bin
+firmware:       amdgpu/stoney_sdma.bin
+firmware:       amdgpu/stoney_uvd.bin
+firmware:       amdgpu/stoney_vce.bin
+firmware:       amdgpu/tahiti_ce.bin
+firmware:       amdgpu/tahiti_mc.bin
+firmware:       amdgpu/tahiti_me.bin
+firmware:       amdgpu/tahiti_pfp.bin
+firmware:       amdgpu/tahiti_rlc.bin
+firmware:       amdgpu/tahiti_smc.bin
+firmware:       amdgpu/tonga_ce.bin
+firmware:       amdgpu/tonga_k_smc.bin
+firmware:       amdgpu/tonga_mc.bin
+firmware:       amdgpu/tonga_me.bin
+firmware:       amdgpu/tonga_mec.bin
+firmware:       amdgpu/tonga_mec2.bin
+firmware:       amdgpu/tonga_pfp.bin
+firmware:       amdgpu/tonga_rlc.bin
+firmware:       amdgpu/tonga_sdma.bin
+firmware:       amdgpu/tonga_sdma1.bin
+firmware:       amdgpu/tonga_smc.bin
+firmware:       amdgpu/tonga_uvd.bin
+firmware:       amdgpu/tonga_vce.bin
+firmware:       amdgpu/topaz_ce.bin
+firmware:       amdgpu/topaz_k_smc.bin
+firmware:       amdgpu/topaz_mc.bin
+firmware:       amdgpu/topaz_me.bin
+firmware:       amdgpu/topaz_mec.bin
+firmware:       amdgpu/topaz_pfp.bin
+firmware:       amdgpu/topaz_rlc.bin
+firmware:       amdgpu/topaz_sdma.bin
+firmware:       amdgpu/topaz_sdma1.bin
+firmware:       amdgpu/topaz_smc.bin
+firmware:       amdgpu/vega10_acg_smc.bin
+firmware:       amdgpu/vega10_asd.bin
+firmware:       amdgpu/vega10_ce.bin
+firmware:       amdgpu/vega10_gpu_info.bin
+firmware:       amdgpu/vega10_me.bin
+firmware:       amdgpu/vega10_mec.bin
+firmware:       amdgpu/vega10_mec2.bin
+firmware:       amdgpu/vega10_pfp.bin
+firmware:       amdgpu/vega10_rlc.bin
+firmware:       amdgpu/vega10_sdma.bin
+firmware:       amdgpu/vega10_sdma1.bin
+firmware:       amdgpu/vega10_smc.bin
+firmware:       amdgpu/vega10_sos.bin
+firmware:       amdgpu/vega10_uvd.bin
+firmware:       amdgpu/vega10_vce.bin
+firmware:       amdgpu/vega12_asd.bin
+firmware:       amdgpu/vega12_ce.bin
+firmware:       amdgpu/vega12_gpu_info.bin
+firmware:       amdgpu/vega12_me.bin
+firmware:       amdgpu/vega12_mec.bin
+firmware:       amdgpu/vega12_mec2.bin
+firmware:       amdgpu/vega12_pfp.bin
+firmware:       amdgpu/vega12_rlc.bin
+firmware:       amdgpu/vega12_sdma.bin
+firmware:       amdgpu/vega12_sdma1.bin
+firmware:       amdgpu/vega12_smc.bin
+firmware:       amdgpu/vega12_sos.bin
+firmware:       amdgpu/vega12_uvd.bin
+firmware:       amdgpu/vega12_vce.bin
+firmware:       amdgpu/vega20_asd.bin
+firmware:       amdgpu/vega20_ce.bin
+firmware:       amdgpu/vega20_me.bin
+firmware:       amdgpu/vega20_mec.bin
+firmware:       amdgpu/vega20_mec2.bin
+firmware:       amdgpu/vega20_pfp.bin
+firmware:       amdgpu/vega20_rlc.bin
+firmware:       amdgpu/vega20_sdma.bin
+firmware:       amdgpu/vega20_sdma1.bin
+firmware:       amdgpu/vega20_smc.bin
+firmware:       amdgpu/vega20_sos.bin
+firmware:       amdgpu/vega20_uvd.bin
+firmware:       amdgpu/vega20_vce.bin
+firmware:       amdgpu/vegam_ce.bin
+firmware:       amdgpu/vegam_me.bin
+firmware:       amdgpu/vegam_mec.bin
+firmware:       amdgpu/vegam_mec2.bin
+firmware:       amdgpu/vegam_pfp.bin
+firmware:       amdgpu/vegam_rlc.bin
+firmware:       amdgpu/vegam_sdma.bin
+firmware:       amdgpu/vegam_sdma1.bin
+firmware:       amdgpu/vegam_smc.bin
+firmware:       amdgpu/vegam_uvd.bin
+firmware:       amdgpu/vegam_vce.bin
+firmware:       amdgpu/verde_ce.bin
+firmware:       amdgpu/verde_k_smc.bin
+firmware:       amdgpu/verde_mc.bin
+firmware:       amdgpu/verde_me.bin
+firmware:       amdgpu/verde_pfp.bin
+firmware:       amdgpu/verde_rlc.bin
+firmware:       amdgpu/verde_smc.bin
+firmware:       ar5523.bin
+firmware:       asihpi/dsp5000.bin
+firmware:       asihpi/dsp6200.bin
+firmware:       asihpi/dsp6205.bin
+firmware:       asihpi/dsp6400.bin
+firmware:       asihpi/dsp6600.bin
+firmware:       asihpi/dsp8700.bin
+firmware:       asihpi/dsp8900.bin
+firmware:       ast_dp501_fw.bin
+firmware:       ath10k/QCA6174/hw2.1/board-2.bin
+firmware:       ath10k/QCA6174/hw2.1/board.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-4.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/board-2.bin
+firmware:       ath10k/QCA6174/hw3.0/board.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-4.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-6.bin
+firmware:       ath10k/QCA9377/hw1.0/board.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-6.bin
+firmware:       ath10k/QCA9887/hw1.0/board-2.bin
+firmware:       ath10k/QCA9887/hw1.0/board.bin
+firmware:       ath10k/QCA9887/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA988X/hw2.0/board-2.bin
+firmware:       ath10k/QCA988X/hw2.0/board.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-2.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-3.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-4.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-5.bin
+firmware:       ath3k-1.fw
+firmware:       ath6k/AR6003/hw2.0/athwlan.bin.z77
+firmware:       ath6k/AR6003/hw2.0/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.0/bdata.bin
+firmware:       ath6k/AR6003/hw2.0/data.patch.bin
+firmware:       ath6k/AR6003/hw2.0/otp.bin.z77
+firmware:       ath6k/AR6003/hw2.1.1/athwlan.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.bin
+firmware:       ath6k/AR6003/hw2.1.1/data.patch.bin
+firmware:       ath6k/AR6003/hw2.1.1/otp.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.bin
+firmware:       ath6k/AR6004/hw1.0/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.bin
+firmware:       ath6k/AR6004/hw1.1/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.2/bdata.bin
+firmware:       ath6k/AR6004/hw1.2/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.3/bdata.bin
+firmware:       ath6k/AR6004/hw1.3/fw.ram.bin
+firmware:       ath9k_htc/htc_7010-1.4.0.fw
+firmware:       ath9k_htc/htc_9271-1.4.0.fw
+firmware:       atmel_at76c502-wpa.bin
+firmware:       atmel_at76c502.bin
+firmware:       atmel_at76c502_3com-wpa.bin
+firmware:       atmel_at76c502_3com.bin
+firmware:       atmel_at76c502d-wpa.bin
+firmware:       atmel_at76c502d.bin
+firmware:       atmel_at76c502e-wpa.bin
+firmware:       atmel_at76c502e.bin
+firmware:       atmel_at76c503-i3861.bin
+firmware:       atmel_at76c503-i3863.bin
+firmware:       atmel_at76c503-rfmd-acc.bin
+firmware:       atmel_at76c503-rfmd.bin
+firmware:       atmel_at76c504-wpa.bin
+firmware:       atmel_at76c504.bin
+firmware:       atmel_at76c504_2958-wpa.bin
+firmware:       atmel_at76c504_2958.bin
+firmware:       atmel_at76c504a_2958-wpa.bin
+firmware:       atmel_at76c504a_2958.bin
+firmware:       atmel_at76c505-rfmd.bin
+firmware:       atmel_at76c505-rfmd2958.bin
+firmware:       atmel_at76c505a-rfmd2958.bin
+firmware:       atmel_at76c505amx-rfmd.bin
+firmware:       atmel_at76c506-wpa.bin
+firmware:       atmel_at76c506.bin
+firmware:       atmsar11.fw
+firmware:       atsc_denver.inp
+firmware:       av7110/bootcode.bin
+firmware:       b43/ucode11.fw
+firmware:       b43/ucode13.fw
+firmware:       b43/ucode14.fw
+firmware:       b43/ucode15.fw
+firmware:       b43/ucode16_lp.fw
+firmware:       b43/ucode16_mimo.fw
+firmware:       b43/ucode24_lcn.fw
+firmware:       b43/ucode25_lcn.fw
+firmware:       b43/ucode25_mimo.fw
+firmware:       b43/ucode26_mimo.fw
+firmware:       b43/ucode29_mimo.fw
+firmware:       b43/ucode30_mimo.fw
+firmware:       b43/ucode33_lcn40.fw
+firmware:       b43/ucode40.fw
+firmware:       b43/ucode42.fw
+firmware:       b43/ucode5.fw
+firmware:       b43/ucode9.fw
+firmware:       b43legacy/ucode2.fw
+firmware:       b43legacy/ucode4.fw
+firmware:       bfubase.frm
+firmware:       bnx2/bnx2-mips-06-6.2.3.fw
+firmware:       bnx2/bnx2-mips-09-6.2.1b.fw
+firmware:       bnx2/bnx2-rv2p-06-6.0.15.fw
+firmware:       bnx2/bnx2-rv2p-09-6.0.17.fw
+firmware:       bnx2/bnx2-rv2p-09ax-6.0.17.fw
+firmware:       bnx2x/bnx2x-e1-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e1h-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e2-7.13.11.0.fw
+firmware:       brcm/bcm43xx-0.fw
+firmware:       brcm/bcm43xx_hdr-0.fw
+firmware:       brcm/brcmfmac43012-sdio.bin
+firmware:       brcm/brcmfmac43143-sdio.bin
+firmware:       brcm/brcmfmac43143.bin
+firmware:       brcm/brcmfmac43236b.bin
+firmware:       brcm/brcmfmac43241b0-sdio.bin
+firmware:       brcm/brcmfmac43241b4-sdio.bin
+firmware:       brcm/brcmfmac43241b5-sdio.bin
+firmware:       brcm/brcmfmac43242a.bin
+firmware:       brcm/brcmfmac4329-sdio.bin
+firmware:       brcm/brcmfmac4330-sdio.bin
+firmware:       brcm/brcmfmac4334-sdio.bin
+firmware:       brcm/brcmfmac43340-sdio.bin
+firmware:       brcm/brcmfmac4335-sdio.bin
+firmware:       brcm/brcmfmac43362-sdio.bin
+firmware:       brcm/brcmfmac4339-sdio.bin
+firmware:       brcm/brcmfmac43430-sdio.bin
+firmware:       brcm/brcmfmac43430a0-sdio.bin
+firmware:       brcm/brcmfmac43455-sdio.bin
+firmware:       brcm/brcmfmac43456-sdio.bin
+firmware:       brcm/brcmfmac4350-pcie.bin
+firmware:       brcm/brcmfmac4350c2-pcie.bin
+firmware:       brcm/brcmfmac4354-sdio.bin
+firmware:       brcm/brcmfmac4356-pcie.bin
+firmware:       brcm/brcmfmac4356-sdio.bin
+firmware:       brcm/brcmfmac43569.bin
+firmware:       brcm/brcmfmac43570-pcie.bin
+firmware:       brcm/brcmfmac4358-pcie.bin
+firmware:       brcm/brcmfmac4359-pcie.bin
+firmware:       brcm/brcmfmac43602-pcie.bin
+firmware:       brcm/brcmfmac4365b-pcie.bin
+firmware:       brcm/brcmfmac4365c-pcie.bin
+firmware:       brcm/brcmfmac4366b-pcie.bin
+firmware:       brcm/brcmfmac4366c-pcie.bin
+firmware:       brcm/brcmfmac4371-pcie.bin
+firmware:       brcm/brcmfmac4373-sdio.bin
+firmware:       brcm/brcmfmac4373.bin
+firmware:       c218tunx.cod
+firmware:       c320tunx.cod
+firmware:       carl9170-1.fw
+firmware:       cavium/cnn55xx_se.fw
+firmware:       cbfw-3.2.5.1.bin
+firmware:       cis/3CCFEM556.cis
+firmware:       cis/3CXEM556.cis
+firmware:       cis/COMpad2.cis
+firmware:       cis/COMpad4.cis
+firmware:       cis/DP83903.cis
+firmware:       cis/LA-PCM.cis
+firmware:       cis/MT5634ZLX.cis
+firmware:       cis/NE2K.cis
+firmware:       cis/PCMLM28.cis
+firmware:       cis/PE-200.cis
+firmware:       cis/PE520.cis
+firmware:       cis/RS-COM-2P.cis
+firmware:       cis/SW_555_SER.cis
+firmware:       cis/SW_7xx_SER.cis
+firmware:       cis/SW_8xx_SER.cis
+firmware:       cis/tamarack.cis
+firmware:       cmmb_ming_app.inp
+firmware:       cmmb_vega_12mhz.inp
+firmware:       cmmb_venice_12mhz.inp
+firmware:       comedi/jr3pci.idm
+firmware:       cp204unx.cod
+firmware:       cpia2/stv0672_vp4.bin
+firmware:       cs46xx/cwc4630
+firmware:       cs46xx/cwcasync
+firmware:       cs46xx/cwcbinhack
+firmware:       cs46xx/cwcdma
+firmware:       cs46xx/cwcsnoop
+firmware:       ct2fw-3.2.5.1.bin
+firmware:       ctefx-desktop.bin
+firmware:       ctefx-r3di.bin
+firmware:       ctefx.bin
+firmware:       ctfw-3.2.5.1.bin
+firmware:       cxgb3/ael2005_opt_edc.bin
+firmware:       cxgb3/ael2005_twx_edc.bin
+firmware:       cxgb3/ael2020_twx_edc.bin
+firmware:       cxgb3/t3b_psram-1.1.0.bin
+firmware:       cxgb3/t3c_psram-1.1.0.bin
+firmware:       cxgb3/t3fw-7.12.0.bin
+firmware:       cxgb4/t4fw.bin
+firmware:       cxgb4/t5fw.bin
+firmware:       cxgb4/t6fw.bin
+firmware:       cyzfirm.bin
+firmware:       daqboard2000_firmware.bin
+firmware:       digiface_firmware.bin
+firmware:       digiface_firmware_rev11.bin
+firmware:       dvb-cx18-mpc718-mt352.fw
+firmware:       dvb-demod-m88ds3103.fw
+firmware:       dvb-demod-m88rs6000.fw
+firmware:       dvb-demod-mn88472-02.fw
+firmware:       dvb-demod-mn88473-01.fw
+firmware:       dvb-demod-si2165.fw
+firmware:       dvb-demod-si2168-a20-01.fw
+firmware:       dvb-demod-si2168-a30-01.fw
+firmware:       dvb-demod-si2168-b40-01.fw
+firmware:       dvb-demod-si2168-d60-01.fw
+firmware:       dvb-fe-af9013.fw
+firmware:       dvb-fe-cx24117.fw
+firmware:       dvb-fe-drxj-mc-1.0.8.fw
+firmware:       dvb-fe-ds3000.fw
+firmware:       dvb-fe-tda10071.fw
+firmware:       dvb-fe-xc4000-1.4.1.fw
+firmware:       dvb-fe-xc4000-1.4.fw
+firmware:       dvb-fe-xc5000-1.6.114.fw
+firmware:       dvb-fe-xc5000c-4.1.30.7.fw
+firmware:       dvb-tuner-si2141-a10-01.fw
+firmware:       dvb-tuner-si2157-a30-01.fw
+firmware:       dvb-tuner-si2158-a20-01.fw
+firmware:       dvb-usb-af9015.fw
+firmware:       dvb-usb-af9035-02.fw
+firmware:       dvb-usb-dib0700-1.20.fw
+firmware:       dvb-usb-dw2101.fw
+firmware:       dvb-usb-dw2102.fw
+firmware:       dvb-usb-dw2104.fw
+firmware:       dvb-usb-dw3101.fw
+firmware:       dvb-usb-ec168.fw
+firmware:       dvb-usb-it9135-01.fw
+firmware:       dvb-usb-it9135-02.fw
+firmware:       dvb-usb-it9303-01.fw
+firmware:       dvb-usb-lme2510-lg.fw
+firmware:       dvb-usb-lme2510-s0194.fw
+firmware:       dvb-usb-lme2510c-lg.fw
+firmware:       dvb-usb-lme2510c-rs2000.fw
+firmware:       dvb-usb-lme2510c-s0194.fw
+firmware:       dvb-usb-lme2510c-s7395.fw
+firmware:       dvb-usb-p1100.fw
+firmware:       dvb-usb-p7500.fw
+firmware:       dvb-usb-s630.fw
+firmware:       dvb-usb-s660.fw
+firmware:       dvb-usb-terratec-h7-az6007.fw
+firmware:       dvb_nova_12mhz.inp
+firmware:       dvb_nova_12mhz_b0.inp
+firmware:       dvb_rio.inp
+firmware:       dvbh_rio.inp
+firmware:       e100/d101m_ucode.bin
+firmware:       e100/d101s_ucode.bin
+firmware:       e100/d102e_ucode.bin
+firmware:       ea/3g_asic.fw
+firmware:       ea/darla20_dsp.fw
+firmware:       ea/darla24_dsp.fw
+firmware:       ea/echo3g_dsp.fw
+firmware:       ea/gina20_dsp.fw
+firmware:       ea/gina24_301_asic.fw
+firmware:       ea/gina24_301_dsp.fw
+firmware:       ea/gina24_361_asic.fw
+firmware:       ea/gina24_361_dsp.fw
+firmware:       ea/indigo_dj_dsp.fw
+firmware:       ea/indigo_djx_dsp.fw
+firmware:       ea/indigo_dsp.fw
+firmware:       ea/indigo_io_dsp.fw
+firmware:       ea/indigo_iox_dsp.fw
+firmware:       ea/layla20_asic.fw
+firmware:       ea/layla20_dsp.fw
+firmware:       ea/layla24_1_asic.fw
+firmware:       ea/layla24_2A_asic.fw
+firmware:       ea/layla24_2S_asic.fw
+firmware:       ea/layla24_dsp.fw
+firmware:       ea/loader_dsp.fw
+firmware:       ea/mia_dsp.fw
+firmware:       ea/mona_2_asic.fw
+firmware:       ea/mona_301_1_asic_48.fw
+firmware:       ea/mona_301_1_asic_96.fw
+firmware:       ea/mona_301_dsp.fw
+firmware:       ea/mona_361_1_asic_48.fw
+firmware:       ea/mona_361_1_asic_96.fw
+firmware:       ea/mona_361_dsp.fw
+firmware:       edgeport/boot.fw
+firmware:       edgeport/boot2.fw
+firmware:       edgeport/down.fw
+firmware:       edgeport/down2.fw
+firmware:       edgeport/down3.bin
+firmware:       emi26/bitstream.fw
+firmware:       emi26/firmware.fw
+firmware:       emi26/loader.fw
+firmware:       emi62/bitstream.fw
+firmware:       emi62/loader.fw
+firmware:       emi62/spdif.fw
+firmware:       emu/audio_dock.fw
+firmware:       emu/emu0404.fw
+firmware:       emu/emu1010_notebook.fw
+firmware:       emu/emu1010b.fw
+firmware:       emu/hana.fw
+firmware:       emu/micro_dock.fw
+firmware:       ene-ub6250/ms_init.bin
+firmware:       ene-ub6250/ms_rdwr.bin
+firmware:       ene-ub6250/msp_rdwr.bin
+firmware:       ene-ub6250/sd_init1.bin
+firmware:       ene-ub6250/sd_init2.bin
+firmware:       ene-ub6250/sd_rdwr.bin
+firmware:       ess/maestro3_assp_kernel.fw
+firmware:       ess/maestro3_assp_minisrc.fw
+firmware:       f2255usb.bin
+firmware:       fm_radio.inp
+firmware:       fm_radio_rio.inp
+firmware:       fw.ram.bin
+firmware:       go7007/go7007fw.bin
+firmware:       go7007/go7007tv.bin
+firmware:       go7007/lr192.fw
+firmware:       go7007/px-m402u.fw
+firmware:       go7007/px-tv402u.fw
+firmware:       go7007/s2250-1.fw
+firmware:       go7007/s2250-2.fw
+firmware:       go7007/wis-startrek.fw
+firmware:       hfi1_dc8051.fw
+firmware:       hfi1_fabric.fw
+firmware:       hfi1_pcie.fw
+firmware:       hfi1_sbus.fw
+firmware:       i1480-phy-0.0.bin
+firmware:       i1480-pre-phy-0.0.bin
+firmware:       i1480-usb-0.0.bin
+firmware:       i2400m-fw-usb-1.5.sbcf
+firmware:       i6050-fw-usb-1.5.sbcf
+firmware:       i915/bxt_dmc_ver1_07.bin
+firmware:       i915/bxt_guc_33.0.0.bin
+firmware:       i915/bxt_huc_ver01_8_2893.bin
+firmware:       i915/cnl_dmc_ver1_07.bin
+firmware:       i915/glk_dmc_ver1_04.bin
+firmware:       i915/glk_guc_33.0.0.bin
+firmware:       i915/glk_huc_ver03_01_2893.bin
+firmware:       i915/icl_dmc_ver1_07.bin
+firmware:       i915/icl_guc_33.0.0.bin
+firmware:       i915/icl_huc_ver8_4_3238.bin
+firmware:       i915/kbl_dmc_ver1_04.bin
+firmware:       i915/kbl_guc_33.0.0.bin
+firmware:       i915/kbl_huc_ver02_00_1810.bin
+firmware:       i915/skl_dmc_ver1_27.bin
+firmware:       i915/skl_guc_33.0.0.bin
+firmware:       i915/skl_huc_ver01_07_1398.bin
+firmware:       i915/tgl_dmc_ver2_04.bin
+firmware:       intel/ibt-11-5.ddc
+firmware:       intel/ibt-11-5.sfi
+firmware:       intel/ibt-12-16.ddc
+firmware:       intel/ibt-12-16.sfi
+firmware:       intel/ice/ddp/ice.pkg
+firmware:       ipw2100-1.3-i.fw
+firmware:       ipw2100-1.3-p.fw
+firmware:       ipw2100-1.3.fw
+firmware:       ipw2200-bss.fw
+firmware:       ipw2200-ibss.fw
+firmware:       ipw2200-sniffer.fw
+firmware:       isci/isci_firmware.bin
+firmware:       isdbt_nova_12mhz.inp
+firmware:       isdbt_nova_12mhz_b0.inp
+firmware:       isdbt_pele.inp
+firmware:       isdbt_rio.inp
+firmware:       isdn/ISAR.BIN
+firmware:       isi4608.bin
+firmware:       isi4616.bin
+firmware:       isi608.bin
+firmware:       isi608em.bin
+firmware:       isi616em.bin
+firmware:       isight.fw
+firmware:       isl3886pci
+firmware:       isl3886usb
+firmware:       isl3887usb
+firmware:       iwlwifi-100-5.ucode
+firmware:       iwlwifi-1000-5.ucode
+firmware:       iwlwifi-105-6.ucode
+firmware:       iwlwifi-135-6.ucode
+firmware:       iwlwifi-2000-6.ucode
+firmware:       iwlwifi-2030-6.ucode
+firmware:       iwlwifi-3160-17.ucode
+firmware:       iwlwifi-3168-29.ucode
+firmware:       iwlwifi-3945-2.ucode
+firmware:       iwlwifi-4965-2.ucode
+firmware:       iwlwifi-5000-5.ucode
+firmware:       iwlwifi-5150-2.ucode
+firmware:       iwlwifi-6000-6.ucode
+firmware:       iwlwifi-6000g2a-6.ucode
+firmware:       iwlwifi-6000g2b-6.ucode
+firmware:       iwlwifi-6050-5.ucode
+firmware:       iwlwifi-7260-17.ucode
+firmware:       iwlwifi-7265-17.ucode
+firmware:       iwlwifi-7265D-29.ucode
+firmware:       iwlwifi-8000C-36.ucode
+firmware:       iwlwifi-8265-36.ucode
+firmware:       iwlwifi-9000-pu-b0-jf-b0-46.ucode
+firmware:       iwlwifi-9260-th-b0-jf-b0-46.ucode
+firmware:       iwlwifi-Qu-a0-hr-a0-50.ucode
+firmware:       iwlwifi-Qu-a0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-b0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-c0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-a0-hr-a0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-jf-b0-50.ucode
+firmware:       iwlwifi-QuQnj-f0-hr-a0-50.ucode
+firmware:       iwlwifi-QuZ-a0-hr-b0-50.ucode
+firmware:       iwlwifi-QuZ-a0-jf-b0-50.ucode
+firmware:       iwlwifi-cc-a0-50.ucode
+firmware:       iwlwifi-so-a0-gf-a0-50.ucode
+firmware:       iwlwifi-so-a0-hr-b0-50.ucode
+firmware:       iwlwifi-so-a0-jf-b0-50.ucode
+firmware:       iwlwifi-ty-a0-gf-a0-50.ucode
+firmware:       kaweth/new_code.bin
+firmware:       kaweth/new_code_fix.bin
+firmware:       kaweth/trigger_code.bin
+firmware:       kaweth/trigger_code_fix.bin
+firmware:       keyspan/mpr.fw
+firmware:       keyspan/usa18x.fw
+firmware:       keyspan/usa19.fw
+firmware:       keyspan/usa19qi.fw
+firmware:       keyspan/usa19qw.fw
+firmware:       keyspan/usa19w.fw
+firmware:       keyspan/usa28.fw
+firmware:       keyspan/usa28x.fw
+firmware:       keyspan/usa28xa.fw
+firmware:       keyspan/usa28xb.fw
+firmware:       keyspan/usa49w.fw
+firmware:       keyspan/usa49wlc.fw
+firmware:       keyspan_pda/keyspan_pda.fw
+firmware:       keyspan_pda/xircom_pgs.fw
+firmware:       korg/k1212.dsp
+firmware:       ks7010sd.rom
+firmware:       lantiq/xrx200_phy11g_a14.bin
+firmware:       lantiq/xrx200_phy11g_a22.bin
+firmware:       lantiq/xrx200_phy22f_a14.bin
+firmware:       lantiq/xrx200_phy22f_a22.bin
+firmware:       lantiq/xrx300_phy11g_a21.bin
+firmware:       lantiq/xrx300_phy22f_a21.bin
+firmware:       lattice-ecp3.bit
+firmware:       lbtf_usb.bin
+firmware:       lgs8g75.fw
+firmware:       libertas/cf8305.bin
+firmware:       libertas/cf8381.bin
+firmware:       libertas/cf8381_helper.bin
+firmware:       libertas/cf8385.bin
+firmware:       libertas/cf8385_helper.bin
+firmware:       libertas/gspi8385.bin
+firmware:       libertas/gspi8385_helper.bin
+firmware:       libertas/gspi8385_hlp.bin
+firmware:       libertas/gspi8686.bin
+firmware:       libertas/gspi8686_hlp.bin
+firmware:       libertas/gspi8686_v9.bin
+firmware:       libertas/gspi8686_v9_helper.bin
+firmware:       libertas/gspi8688.bin
+firmware:       libertas/gspi8688_helper.bin
+firmware:       libertas/sd8385.bin
+firmware:       libertas/sd8385_helper.bin
+firmware:       libertas/sd8686_v8.bin
+firmware:       libertas/sd8686_v8_helper.bin
+firmware:       libertas/sd8686_v9.bin
+firmware:       libertas/sd8686_v9_helper.bin
+firmware:       libertas/sd8688.bin
+firmware:       libertas/sd8688_helper.bin
+firmware:       libertas/usb8388.bin
+firmware:       libertas/usb8388_v5.bin
+firmware:       libertas/usb8388_v9.bin
+firmware:       libertas/usb8682.bin
+firmware:       libertas_cs.fw
+firmware:       libertas_cs_helper.fw
+firmware:       liquidio/lio_210nv_nic.bin
+firmware:       liquidio/lio_210sv_nic.bin
+firmware:       liquidio/lio_23xx_nic.bin
+firmware:       liquidio/lio_410nv_nic.bin
+firmware:       me2600_firmware.bin
+firmware:       me4000_firmware.bin
+firmware:       mediatek/mt7610e.bin
+firmware:       mediatek/mt7610u.bin
+firmware:       mediatek/mt7615_cr4.bin
+firmware:       mediatek/mt7615_n9.bin
+firmware:       mediatek/mt7615_rom_patch.bin
+firmware:       mediatek/mt7622pr2h.bin
+firmware:       mediatek/mt7650e.bin
+firmware:       mediatek/mt7663pr2h.bin
+firmware:       mediatek/mt7668pr2h.bin
+firmware:       mellanox/mlxsw_spectrum-13.2000.1886.mfa2
+firmware:       mixart/miXart8.elf
+firmware:       mixart/miXart8.xlx
+firmware:       mixart/miXart8AES.xlx
+firmware:       moxa/moxa-1110.fw
+firmware:       moxa/moxa-1130.fw
+firmware:       moxa/moxa-1131.fw
+firmware:       moxa/moxa-1150.fw
+firmware:       moxa/moxa-1151.fw
+firmware:       mrvl/sd8688.bin
+firmware:       mrvl/sd8688_helper.bin
+firmware:       mrvl/sd8786_uapsta.bin
+firmware:       mrvl/sd8787_uapsta.bin
+firmware:       mrvl/sd8797_uapsta.bin
+firmware:       mrvl/sd8887_uapsta.bin
+firmware:       mrvl/sd8897_uapsta.bin
+firmware:       mrvl/sd8987_uapsta.bin
+firmware:       mrvl/sdsd8977_combo_v2.bin
+firmware:       mrvl/sdsd8997_combo_v4.bin
+firmware:       mrvl/usb8766_uapsta.bin
+firmware:       mrvl/usb8797_uapsta.bin
+firmware:       mrvl/usb8801_uapsta.bin
+firmware:       mrvl/usbusb8997_combo_v4.bin
+firmware:       mt7601u.bin
+firmware:       mt7603_e1.bin
+firmware:       mt7603_e2.bin
+firmware:       mt7628_e1.bin
+firmware:       mt7628_e2.bin
+firmware:       mt7662.bin
+firmware:       mt7662_rom_patch.bin
+firmware:       mts_cdma.fw
+firmware:       mts_edge.fw
+firmware:       mts_gsm.fw
+firmware:       mts_mt9234mu.fw
+firmware:       mts_mt9234zba.fw
+firmware:       multiface_firmware.bin
+firmware:       multiface_firmware_rev11.bin
+firmware:       mwl8k/fmimage_8363.fw
+firmware:       mwl8k/fmimage_8366.fw
+firmware:       mwl8k/fmimage_8366_ap-3.fw
+firmware:       mwl8k/fmimage_8687.fw
+firmware:       mwl8k/helper_8363.fw
+firmware:       mwl8k/helper_8366.fw
+firmware:       mwl8k/helper_8687.fw
+firmware:       myri10ge_eth_z8e.dat
+firmware:       myri10ge_ethp_z8e.dat
+firmware:       myri10ge_rss_eth_z8e.dat
+firmware:       myri10ge_rss_ethp_z8e.dat
+firmware:       netronome/nic_AMDA0058-0011_2x40.nffw
+firmware:       netronome/nic_AMDA0058-0012_2x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_1x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_4x10.nffw
+firmware:       netronome/nic_AMDA0096-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0097-0001_2x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_4x10_1x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_8x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_1x10_1x25.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x25.nffw
+firmware:       ni6534a.bin
+firmware:       niscrb01.bin
+firmware:       niscrb02.bin
+firmware:       nvidia/gm200/acr/bl.bin
+firmware:       nvidia/gm200/acr/ucode_load.bin
+firmware:       nvidia/gm200/acr/ucode_unload.bin
+firmware:       nvidia/gm200/gr/fecs_bl.bin
+firmware:       nvidia/gm200/gr/fecs_data.bin
+firmware:       nvidia/gm200/gr/fecs_inst.bin
+firmware:       nvidia/gm200/gr/fecs_sig.bin
+firmware:       nvidia/gm200/gr/gpccs_bl.bin
+firmware:       nvidia/gm200/gr/gpccs_data.bin
+firmware:       nvidia/gm200/gr/gpccs_inst.bin
+firmware:       nvidia/gm200/gr/gpccs_sig.bin
+firmware:       nvidia/gm200/gr/sw_bundle_init.bin
+firmware:       nvidia/gm200/gr/sw_ctx.bin
+firmware:       nvidia/gm200/gr/sw_method_init.bin
+firmware:       nvidia/gm200/gr/sw_nonctx.bin
+firmware:       nvidia/gm204/acr/bl.bin
+firmware:       nvidia/gm204/acr/ucode_load.bin
+firmware:       nvidia/gm204/acr/ucode_unload.bin
+firmware:       nvidia/gm204/gr/fecs_bl.bin
+firmware:       nvidia/gm204/gr/fecs_data.bin
+firmware:       nvidia/gm204/gr/fecs_inst.bin
+firmware:       nvidia/gm204/gr/fecs_sig.bin
+firmware:       nvidia/gm204/gr/gpccs_bl.bin
+firmware:       nvidia/gm204/gr/gpccs_data.bin
+firmware:       nvidia/gm204/gr/gpccs_inst.bin
+firmware:       nvidia/gm204/gr/gpccs_sig.bin
+firmware:       nvidia/gm204/gr/sw_bundle_init.bin
+firmware:       nvidia/gm204/gr/sw_ctx.bin
+firmware:       nvidia/gm204/gr/sw_method_init.bin
+firmware:       nvidia/gm204/gr/sw_nonctx.bin
+firmware:       nvidia/gm206/acr/bl.bin
+firmware:       nvidia/gm206/acr/ucode_load.bin
+firmware:       nvidia/gm206/acr/ucode_unload.bin
+firmware:       nvidia/gm206/gr/fecs_bl.bin
+firmware:       nvidia/gm206/gr/fecs_data.bin
+firmware:       nvidia/gm206/gr/fecs_inst.bin
+firmware:       nvidia/gm206/gr/fecs_sig.bin
+firmware:       nvidia/gm206/gr/gpccs_bl.bin
+firmware:       nvidia/gm206/gr/gpccs_data.bin
+firmware:       nvidia/gm206/gr/gpccs_inst.bin
+firmware:       nvidia/gm206/gr/gpccs_sig.bin
+firmware:       nvidia/gm206/gr/sw_bundle_init.bin
+firmware:       nvidia/gm206/gr/sw_ctx.bin
+firmware:       nvidia/gm206/gr/sw_method_init.bin
+firmware:       nvidia/gm206/gr/sw_nonctx.bin
+firmware:       nvidia/gp100/acr/bl.bin
+firmware:       nvidia/gp100/acr/ucode_load.bin
+firmware:       nvidia/gp100/acr/ucode_unload.bin
+firmware:       nvidia/gp100/gr/fecs_bl.bin
+firmware:       nvidia/gp100/gr/fecs_data.bin
+firmware:       nvidia/gp100/gr/fecs_inst.bin
+firmware:       nvidia/gp100/gr/fecs_sig.bin
+firmware:       nvidia/gp100/gr/gpccs_bl.bin
+firmware:       nvidia/gp100/gr/gpccs_data.bin
+firmware:       nvidia/gp100/gr/gpccs_inst.bin
+firmware:       nvidia/gp100/gr/gpccs_sig.bin
+firmware:       nvidia/gp100/gr/sw_bundle_init.bin
+firmware:       nvidia/gp100/gr/sw_ctx.bin
+firmware:       nvidia/gp100/gr/sw_method_init.bin
+firmware:       nvidia/gp100/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/acr/bl.bin
+firmware:       nvidia/gp102/acr/ucode_load.bin
+firmware:       nvidia/gp102/acr/ucode_unload.bin
+firmware:       nvidia/gp102/acr/unload_bl.bin
+firmware:       nvidia/gp102/gr/fecs_bl.bin
+firmware:       nvidia/gp102/gr/fecs_data.bin
+firmware:       nvidia/gp102/gr/fecs_inst.bin
+firmware:       nvidia/gp102/gr/fecs_sig.bin
+firmware:       nvidia/gp102/gr/gpccs_bl.bin
+firmware:       nvidia/gp102/gr/gpccs_data.bin
+firmware:       nvidia/gp102/gr/gpccs_inst.bin
+firmware:       nvidia/gp102/gr/gpccs_sig.bin
+firmware:       nvidia/gp102/gr/sw_bundle_init.bin
+firmware:       nvidia/gp102/gr/sw_ctx.bin
+firmware:       nvidia/gp102/gr/sw_method_init.bin
+firmware:       nvidia/gp102/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/nvdec/scrubber.bin
+firmware:       nvidia/gp102/sec2/desc-1.bin
+firmware:       nvidia/gp102/sec2/desc.bin
+firmware:       nvidia/gp102/sec2/image-1.bin
+firmware:       nvidia/gp102/sec2/image.bin
+firmware:       nvidia/gp102/sec2/sig-1.bin
+firmware:       nvidia/gp102/sec2/sig.bin
+firmware:       nvidia/gp104/acr/bl.bin
+firmware:       nvidia/gp104/acr/ucode_load.bin
+firmware:       nvidia/gp104/acr/ucode_unload.bin
+firmware:       nvidia/gp104/acr/unload_bl.bin
+firmware:       nvidia/gp104/gr/fecs_bl.bin
+firmware:       nvidia/gp104/gr/fecs_data.bin
+firmware:       nvidia/gp104/gr/fecs_inst.bin
+firmware:       nvidia/gp104/gr/fecs_sig.bin
+firmware:       nvidia/gp104/gr/gpccs_bl.bin
+firmware:       nvidia/gp104/gr/gpccs_data.bin
+firmware:       nvidia/gp104/gr/gpccs_inst.bin
+firmware:       nvidia/gp104/gr/gpccs_sig.bin
+firmware:       nvidia/gp104/gr/sw_bundle_init.bin
+firmware:       nvidia/gp104/gr/sw_ctx.bin
+firmware:       nvidia/gp104/gr/sw_method_init.bin
+firmware:       nvidia/gp104/gr/sw_nonctx.bin
+firmware:       nvidia/gp104/nvdec/scrubber.bin
+firmware:       nvidia/gp104/sec2/desc-1.bin
+firmware:       nvidia/gp104/sec2/desc.bin
+firmware:       nvidia/gp104/sec2/image-1.bin
+firmware:       nvidia/gp104/sec2/image.bin
+firmware:       nvidia/gp104/sec2/sig-1.bin
+firmware:       nvidia/gp104/sec2/sig.bin
+firmware:       nvidia/gp106/acr/bl.bin
+firmware:       nvidia/gp106/acr/ucode_load.bin
+firmware:       nvidia/gp106/acr/ucode_unload.bin
+firmware:       nvidia/gp106/acr/unload_bl.bin
+firmware:       nvidia/gp106/gr/fecs_bl.bin
+firmware:       nvidia/gp106/gr/fecs_data.bin
+firmware:       nvidia/gp106/gr/fecs_inst.bin
+firmware:       nvidia/gp106/gr/fecs_sig.bin
+firmware:       nvidia/gp106/gr/gpccs_bl.bin
+firmware:       nvidia/gp106/gr/gpccs_data.bin
+firmware:       nvidia/gp106/gr/gpccs_inst.bin
+firmware:       nvidia/gp106/gr/gpccs_sig.bin
+firmware:       nvidia/gp106/gr/sw_bundle_init.bin
+firmware:       nvidia/gp106/gr/sw_ctx.bin
+firmware:       nvidia/gp106/gr/sw_method_init.bin
+firmware:       nvidia/gp106/gr/sw_nonctx.bin
+firmware:       nvidia/gp106/nvdec/scrubber.bin
+firmware:       nvidia/gp106/sec2/desc-1.bin
+firmware:       nvidia/gp106/sec2/desc.bin
+firmware:       nvidia/gp106/sec2/image-1.bin
+firmware:       nvidia/gp106/sec2/image.bin
+firmware:       nvidia/gp106/sec2/sig-1.bin
+firmware:       nvidia/gp106/sec2/sig.bin
+firmware:       nvidia/gp107/acr/bl.bin
+firmware:       nvidia/gp107/acr/ucode_load.bin
+firmware:       nvidia/gp107/acr/ucode_unload.bin
+firmware:       nvidia/gp107/acr/unload_bl.bin
+firmware:       nvidia/gp107/gr/fecs_bl.bin
+firmware:       nvidia/gp107/gr/fecs_data.bin
+firmware:       nvidia/gp107/gr/fecs_inst.bin
+firmware:       nvidia/gp107/gr/fecs_sig.bin
+firmware:       nvidia/gp107/gr/gpccs_bl.bin
+firmware:       nvidia/gp107/gr/gpccs_data.bin
+firmware:       nvidia/gp107/gr/gpccs_inst.bin
+firmware:       nvidia/gp107/gr/gpccs_sig.bin
+firmware:       nvidia/gp107/gr/sw_bundle_init.bin
+firmware:       nvidia/gp107/gr/sw_ctx.bin
+firmware:       nvidia/gp107/gr/sw_method_init.bin
+firmware:       nvidia/gp107/gr/sw_nonctx.bin
+firmware:       nvidia/gp107/nvdec/scrubber.bin
+firmware:       nvidia/gp107/sec2/desc-1.bin
+firmware:       nvidia/gp107/sec2/desc.bin
+firmware:       nvidia/gp107/sec2/image-1.bin
+firmware:       nvidia/gp107/sec2/image.bin
+firmware:       nvidia/gp107/sec2/sig-1.bin
+firmware:       nvidia/gp107/sec2/sig.bin
+firmware:       nvidia/gp108/acr/bl.bin
+firmware:       nvidia/gp108/acr/ucode_load.bin
+firmware:       nvidia/gp108/acr/ucode_unload.bin
+firmware:       nvidia/gp108/acr/unload_bl.bin
+firmware:       nvidia/gp108/gr/fecs_bl.bin
+firmware:       nvidia/gp108/gr/fecs_data.bin
+firmware:       nvidia/gp108/gr/fecs_inst.bin
+firmware:       nvidia/gp108/gr/fecs_sig.bin
+firmware:       nvidia/gp108/gr/gpccs_bl.bin
+firmware:       nvidia/gp108/gr/gpccs_data.bin
+firmware:       nvidia/gp108/gr/gpccs_inst.bin
+firmware:       nvidia/gp108/gr/gpccs_sig.bin
+firmware:       nvidia/gp108/gr/sw_bundle_init.bin
+firmware:       nvidia/gp108/gr/sw_ctx.bin
+firmware:       nvidia/gp108/gr/sw_method_init.bin
+firmware:       nvidia/gp108/gr/sw_nonctx.bin
+firmware:       nvidia/gp108/nvdec/scrubber.bin
+firmware:       nvidia/gp108/sec2/desc.bin
+firmware:       nvidia/gp108/sec2/image.bin
+firmware:       nvidia/gp108/sec2/sig.bin
+firmware:       nvidia/gv100/acr/bl.bin
+firmware:       nvidia/gv100/acr/ucode_load.bin
+firmware:       nvidia/gv100/acr/ucode_unload.bin
+firmware:       nvidia/gv100/acr/unload_bl.bin
+firmware:       nvidia/gv100/gr/fecs_bl.bin
+firmware:       nvidia/gv100/gr/fecs_data.bin
+firmware:       nvidia/gv100/gr/fecs_inst.bin
+firmware:       nvidia/gv100/gr/fecs_sig.bin
+firmware:       nvidia/gv100/gr/gpccs_bl.bin
+firmware:       nvidia/gv100/gr/gpccs_data.bin
+firmware:       nvidia/gv100/gr/gpccs_inst.bin
+firmware:       nvidia/gv100/gr/gpccs_sig.bin
+firmware:       nvidia/gv100/gr/sw_bundle_init.bin
+firmware:       nvidia/gv100/gr/sw_ctx.bin
+firmware:       nvidia/gv100/gr/sw_method_init.bin
+firmware:       nvidia/gv100/gr/sw_nonctx.bin
+firmware:       nvidia/gv100/nvdec/scrubber.bin
+firmware:       nvidia/gv100/sec2/desc.bin
+firmware:       nvidia/gv100/sec2/image.bin
+firmware:       nvidia/gv100/sec2/sig.bin
+firmware:       orinoco_ezusb_fw
+firmware:       ositech/Xilinx7OD.bin
+firmware:       pca200e_ecd.bin2
+firmware:       pcxhr/dspb1222e.b56
+firmware:       pcxhr/dspb1222hr.b56
+firmware:       pcxhr/dspb882e.b56
+firmware:       pcxhr/dspb882hr.b56
+firmware:       pcxhr/dspb924.b56
+firmware:       pcxhr/dspd1222.d56
+firmware:       pcxhr/dspd222.d56
+firmware:       pcxhr/dspd882.d56
+firmware:       pcxhr/dspe882.e56
+firmware:       pcxhr/dspe924.e56
+firmware:       pcxhr/xlxc1222e.dat
+firmware:       pcxhr/xlxc1222hr.dat
+firmware:       pcxhr/xlxc222.dat
+firmware:       pcxhr/xlxc882e.dat
+firmware:       pcxhr/xlxc882hr.dat
+firmware:       pcxhr/xlxc924.dat
+firmware:       pcxhr/xlxint.dat
+firmware:       phanfw.bin
+firmware:       prism2_ru.fw
+firmware:       prism_ap_fw.bin
+firmware:       prism_sta_fw.bin
+firmware:       qat_895xcc.bin
+firmware:       qat_895xcc_mmp.bin
+firmware:       qat_c3xxx.bin
+firmware:       qat_c3xxx_mmp.bin
+firmware:       qat_c62x.bin
+firmware:       qat_c62x_mmp.bin
+firmware:       qed/qed_init_values_zipped-8.37.7.0.bin
+firmware:       ql2100_fw.bin
+firmware:       ql2200_fw.bin
+firmware:       ql2300_fw.bin
+firmware:       ql2322_fw.bin
+firmware:       ql2400_fw.bin
+firmware:       ql2500_fw.bin
+firmware:       qlogic/1040.bin
+firmware:       qlogic/12160.bin
+firmware:       qlogic/1280.bin
+firmware:       qlogic/sd7220.fw
+firmware:       radeon/ARUBA_me.bin
+firmware:       radeon/ARUBA_pfp.bin
+firmware:       radeon/ARUBA_rlc.bin
+firmware:       radeon/BARTS_mc.bin
+firmware:       radeon/BARTS_me.bin
+firmware:       radeon/BARTS_pfp.bin
+firmware:       radeon/BARTS_smc.bin
+firmware:       radeon/BONAIRE_ce.bin
+firmware:       radeon/BONAIRE_mc.bin
+firmware:       radeon/BONAIRE_mc2.bin
+firmware:       radeon/BONAIRE_me.bin
+firmware:       radeon/BONAIRE_mec.bin
+firmware:       radeon/BONAIRE_pfp.bin
+firmware:       radeon/BONAIRE_rlc.bin
+firmware:       radeon/BONAIRE_sdma.bin
+firmware:       radeon/BONAIRE_smc.bin
+firmware:       radeon/BONAIRE_uvd.bin
+firmware:       radeon/BONAIRE_vce.bin
+firmware:       radeon/BTC_rlc.bin
+firmware:       radeon/CAICOS_mc.bin
+firmware:       radeon/CAICOS_me.bin
+firmware:       radeon/CAICOS_pfp.bin
+firmware:       radeon/CAICOS_smc.bin
+firmware:       radeon/CAYMAN_mc.bin
+firmware:       radeon/CAYMAN_me.bin
+firmware:       radeon/CAYMAN_pfp.bin
+firmware:       radeon/CAYMAN_rlc.bin
+firmware:       radeon/CAYMAN_smc.bin
+firmware:       radeon/CEDAR_me.bin
+firmware:       radeon/CEDAR_pfp.bin
+firmware:       radeon/CEDAR_rlc.bin
+firmware:       radeon/CEDAR_smc.bin
+firmware:       radeon/CYPRESS_me.bin
+firmware:       radeon/CYPRESS_pfp.bin
+firmware:       radeon/CYPRESS_rlc.bin
+firmware:       radeon/CYPRESS_smc.bin
+firmware:       radeon/CYPRESS_uvd.bin
+firmware:       radeon/HAINAN_ce.bin
+firmware:       radeon/HAINAN_mc.bin
+firmware:       radeon/HAINAN_mc2.bin
+firmware:       radeon/HAINAN_me.bin
+firmware:       radeon/HAINAN_pfp.bin
+firmware:       radeon/HAINAN_rlc.bin
+firmware:       radeon/HAINAN_smc.bin
+firmware:       radeon/HAWAII_ce.bin
+firmware:       radeon/HAWAII_mc.bin
+firmware:       radeon/HAWAII_mc2.bin
+firmware:       radeon/HAWAII_me.bin
+firmware:       radeon/HAWAII_mec.bin
+firmware:       radeon/HAWAII_pfp.bin
+firmware:       radeon/HAWAII_rlc.bin
+firmware:       radeon/HAWAII_sdma.bin
+firmware:       radeon/HAWAII_smc.bin
+firmware:       radeon/JUNIPER_me.bin
+firmware:       radeon/JUNIPER_pfp.bin
+firmware:       radeon/JUNIPER_rlc.bin
+firmware:       radeon/JUNIPER_smc.bin
+firmware:       radeon/KABINI_ce.bin
+firmware:       radeon/KABINI_me.bin
+firmware:       radeon/KABINI_mec.bin
+firmware:       radeon/KABINI_pfp.bin
+firmware:       radeon/KABINI_rlc.bin
+firmware:       radeon/KABINI_sdma.bin
+firmware:       radeon/KAVERI_ce.bin
+firmware:       radeon/KAVERI_me.bin
+firmware:       radeon/KAVERI_mec.bin
+firmware:       radeon/KAVERI_pfp.bin
+firmware:       radeon/KAVERI_rlc.bin
+firmware:       radeon/KAVERI_sdma.bin
+firmware:       radeon/MULLINS_ce.bin
+firmware:       radeon/MULLINS_me.bin
+firmware:       radeon/MULLINS_mec.bin
+firmware:       radeon/MULLINS_pfp.bin
+firmware:       radeon/MULLINS_rlc.bin
+firmware:       radeon/MULLINS_sdma.bin
+firmware:       radeon/OLAND_ce.bin
+firmware:       radeon/OLAND_mc.bin
+firmware:       radeon/OLAND_mc2.bin
+firmware:       radeon/OLAND_me.bin
+firmware:       radeon/OLAND_pfp.bin
+firmware:       radeon/OLAND_rlc.bin
+firmware:       radeon/OLAND_smc.bin
+firmware:       radeon/PALM_me.bin
+firmware:       radeon/PALM_pfp.bin
+firmware:       radeon/PITCAIRN_ce.bin
+firmware:       radeon/PITCAIRN_mc.bin
+firmware:       radeon/PITCAIRN_mc2.bin
+firmware:       radeon/PITCAIRN_me.bin
+firmware:       radeon/PITCAIRN_pfp.bin
+firmware:       radeon/PITCAIRN_rlc.bin
+firmware:       radeon/PITCAIRN_smc.bin
+firmware:       radeon/R100_cp.bin
+firmware:       radeon/R200_cp.bin
+firmware:       radeon/R300_cp.bin
+firmware:       radeon/R420_cp.bin
+firmware:       radeon/R520_cp.bin
+firmware:       radeon/R600_me.bin
+firmware:       radeon/R600_pfp.bin
+firmware:       radeon/R600_rlc.bin
+firmware:       radeon/R600_uvd.bin
+firmware:       radeon/R700_rlc.bin
+firmware:       radeon/REDWOOD_me.bin
+firmware:       radeon/REDWOOD_pfp.bin
+firmware:       radeon/REDWOOD_rlc.bin
+firmware:       radeon/REDWOOD_smc.bin
+firmware:       radeon/RS600_cp.bin
+firmware:       radeon/RS690_cp.bin
+firmware:       radeon/RS780_me.bin
+firmware:       radeon/RS780_pfp.bin
+firmware:       radeon/RS780_uvd.bin
+firmware:       radeon/RV610_me.bin
+firmware:       radeon/RV610_pfp.bin
+firmware:       radeon/RV620_me.bin
+firmware:       radeon/RV620_pfp.bin
+firmware:       radeon/RV630_me.bin
+firmware:       radeon/RV630_pfp.bin
+firmware:       radeon/RV635_me.bin
+firmware:       radeon/RV635_pfp.bin
+firmware:       radeon/RV670_me.bin
+firmware:       radeon/RV670_pfp.bin
+firmware:       radeon/RV710_me.bin
+firmware:       radeon/RV710_pfp.bin
+firmware:       radeon/RV710_smc.bin
+firmware:       radeon/RV710_uvd.bin
+firmware:       radeon/RV730_me.bin
+firmware:       radeon/RV730_pfp.bin
+firmware:       radeon/RV730_smc.bin
+firmware:       radeon/RV740_smc.bin
+firmware:       radeon/RV770_me.bin
+firmware:       radeon/RV770_pfp.bin
+firmware:       radeon/RV770_smc.bin
+firmware:       radeon/RV770_uvd.bin
+firmware:       radeon/SUMO2_me.bin
+firmware:       radeon/SUMO2_pfp.bin
+firmware:       radeon/SUMO_me.bin
+firmware:       radeon/SUMO_pfp.bin
+firmware:       radeon/SUMO_rlc.bin
+firmware:       radeon/SUMO_uvd.bin
+firmware:       radeon/TAHITI_ce.bin
+firmware:       radeon/TAHITI_mc.bin
+firmware:       radeon/TAHITI_mc2.bin
+firmware:       radeon/TAHITI_me.bin
+firmware:       radeon/TAHITI_pfp.bin
+firmware:       radeon/TAHITI_rlc.bin
+firmware:       radeon/TAHITI_smc.bin
+firmware:       radeon/TAHITI_uvd.bin
+firmware:       radeon/TAHITI_vce.bin
+firmware:       radeon/TURKS_mc.bin
+firmware:       radeon/TURKS_me.bin
+firmware:       radeon/TURKS_pfp.bin
+firmware:       radeon/TURKS_smc.bin
+firmware:       radeon/VERDE_ce.bin
+firmware:       radeon/VERDE_mc.bin
+firmware:       radeon/VERDE_mc2.bin
+firmware:       radeon/VERDE_me.bin
+firmware:       radeon/VERDE_pfp.bin
+firmware:       radeon/VERDE_rlc.bin
+firmware:       radeon/VERDE_smc.bin
+firmware:       radeon/banks_k_2_smc.bin
+firmware:       radeon/bonaire_ce.bin
+firmware:       radeon/bonaire_k_smc.bin
+firmware:       radeon/bonaire_mc.bin
+firmware:       radeon/bonaire_me.bin
+firmware:       radeon/bonaire_mec.bin
+firmware:       radeon/bonaire_pfp.bin
+firmware:       radeon/bonaire_rlc.bin
+firmware:       radeon/bonaire_sdma.bin
+firmware:       radeon/bonaire_smc.bin
+firmware:       radeon/bonaire_uvd.bin
+firmware:       radeon/hainan_ce.bin
+firmware:       radeon/hainan_k_smc.bin
+firmware:       radeon/hainan_mc.bin
+firmware:       radeon/hainan_me.bin
+firmware:       radeon/hainan_pfp.bin
+firmware:       radeon/hainan_rlc.bin
+firmware:       radeon/hainan_smc.bin
+firmware:       radeon/hawaii_ce.bin
+firmware:       radeon/hawaii_k_smc.bin
+firmware:       radeon/hawaii_mc.bin
+firmware:       radeon/hawaii_me.bin
+firmware:       radeon/hawaii_mec.bin
+firmware:       radeon/hawaii_pfp.bin
+firmware:       radeon/hawaii_rlc.bin
+firmware:       radeon/hawaii_sdma.bin
+firmware:       radeon/hawaii_smc.bin
+firmware:       radeon/kabini_ce.bin
+firmware:       radeon/kabini_me.bin
+firmware:       radeon/kabini_mec.bin
+firmware:       radeon/kabini_pfp.bin
+firmware:       radeon/kabini_rlc.bin
+firmware:       radeon/kabini_sdma.bin
+firmware:       radeon/kaveri_ce.bin
+firmware:       radeon/kaveri_me.bin
+firmware:       radeon/kaveri_mec.bin
+firmware:       radeon/kaveri_mec2.bin
+firmware:       radeon/kaveri_pfp.bin
+firmware:       radeon/kaveri_rlc.bin
+firmware:       radeon/kaveri_sdma.bin
+firmware:       radeon/mullins_ce.bin
+firmware:       radeon/mullins_me.bin
+firmware:       radeon/mullins_mec.bin
+firmware:       radeon/mullins_pfp.bin
+firmware:       radeon/mullins_rlc.bin
+firmware:       radeon/mullins_sdma.bin
+firmware:       radeon/oland_ce.bin
+firmware:       radeon/oland_k_smc.bin
+firmware:       radeon/oland_mc.bin
+firmware:       radeon/oland_me.bin
+firmware:       radeon/oland_pfp.bin
+firmware:       radeon/oland_rlc.bin
+firmware:       radeon/oland_smc.bin
+firmware:       radeon/pitcairn_ce.bin
+firmware:       radeon/pitcairn_k_smc.bin
+firmware:       radeon/pitcairn_mc.bin
+firmware:       radeon/pitcairn_me.bin
+firmware:       radeon/pitcairn_pfp.bin
+firmware:       radeon/pitcairn_rlc.bin
+firmware:       radeon/pitcairn_smc.bin
+firmware:       radeon/si58_mc.bin
+firmware:       radeon/tahiti_ce.bin
+firmware:       radeon/tahiti_mc.bin
+firmware:       radeon/tahiti_me.bin
+firmware:       radeon/tahiti_pfp.bin
+firmware:       radeon/tahiti_rlc.bin
+firmware:       radeon/tahiti_smc.bin
+firmware:       radeon/verde_ce.bin
+firmware:       radeon/verde_k_smc.bin
+firmware:       radeon/verde_mc.bin
+firmware:       radeon/verde_me.bin
+firmware:       radeon/verde_pfp.bin
+firmware:       radeon/verde_rlc.bin
+firmware:       radeon/verde_smc.bin
+firmware:       riptide.hex
+firmware:       rp2.fw
+firmware:       rpm_firmware.bin
+firmware:       rs9113_wlan_qspi.rps
+firmware:       rt2561.bin
+firmware:       rt2561s.bin
+firmware:       rt2661.bin
+firmware:       rt2860.bin
+firmware:       rt2870.bin
+firmware:       rt73.bin
+firmware:       rtl_bt/rtl8723a_fw.bin
+firmware:       rtl_bt/rtl8723b_config.bin
+firmware:       rtl_bt/rtl8723b_fw.bin
+firmware:       rtl_bt/rtl8723bs_config.bin
+firmware:       rtl_bt/rtl8723bs_fw.bin
+firmware:       rtl_bt/rtl8723ds_config.bin
+firmware:       rtl_bt/rtl8723ds_fw.bin
+firmware:       rtl_bt/rtl8761a_config.bin
+firmware:       rtl_bt/rtl8761a_fw.bin
+firmware:       rtl_bt/rtl8821a_config.bin
+firmware:       rtl_bt/rtl8821a_fw.bin
+firmware:       rtl_bt/rtl8822b_config.bin
+firmware:       rtl_bt/rtl8822b_fw.bin
+firmware:       rtl_nic/rtl8105e-1.fw
+firmware:       rtl_nic/rtl8106e-1.fw
+firmware:       rtl_nic/rtl8106e-2.fw
+firmware:       rtl_nic/rtl8107e-1.fw
+firmware:       rtl_nic/rtl8107e-2.fw
+firmware:       rtl_nic/rtl8125a-3.fw
+firmware:       rtl_nic/rtl8168d-1.fw
+firmware:       rtl_nic/rtl8168d-2.fw
+firmware:       rtl_nic/rtl8168e-1.fw
+firmware:       rtl_nic/rtl8168e-2.fw
+firmware:       rtl_nic/rtl8168e-3.fw
+firmware:       rtl_nic/rtl8168f-1.fw
+firmware:       rtl_nic/rtl8168f-2.fw
+firmware:       rtl_nic/rtl8168fp-3.fw
+firmware:       rtl_nic/rtl8168g-2.fw
+firmware:       rtl_nic/rtl8168g-3.fw
+firmware:       rtl_nic/rtl8168h-1.fw
+firmware:       rtl_nic/rtl8168h-2.fw
+firmware:       rtl_nic/rtl8402-1.fw
+firmware:       rtl_nic/rtl8411-1.fw
+firmware:       rtl_nic/rtl8411-2.fw
+firmware:       rtlwifi/rtl8188efw.bin
+firmware:       rtlwifi/rtl8188eufw.bin
+firmware:       rtlwifi/rtl8192cfw.bin
+firmware:       rtlwifi/rtl8192cfwU.bin
+firmware:       rtlwifi/rtl8192cfwU_B.bin
+firmware:       rtlwifi/rtl8192cufw.bin
+firmware:       rtlwifi/rtl8192cufw_A.bin
+firmware:       rtlwifi/rtl8192cufw_B.bin
+firmware:       rtlwifi/rtl8192cufw_TMSC.bin
+firmware:       rtlwifi/rtl8192defw.bin
+firmware:       rtlwifi/rtl8192eefw.bin
+firmware:       rtlwifi/rtl8192eu_nic.bin
+firmware:       rtlwifi/rtl8192sefw.bin
+firmware:       rtlwifi/rtl8712u.bin
+firmware:       rtlwifi/rtl8723aufw_A.bin
+firmware:       rtlwifi/rtl8723aufw_B.bin
+firmware:       rtlwifi/rtl8723aufw_B_NoBT.bin
+firmware:       rtlwifi/rtl8723befw.bin
+firmware:       rtlwifi/rtl8723befw_36.bin
+firmware:       rtlwifi/rtl8723bu_bt.bin
+firmware:       rtlwifi/rtl8723bu_nic.bin
+firmware:       rtlwifi/rtl8723efw.bin
+firmware:       rtlwifi/rtl8821aefw.bin
+firmware:       rtlwifi/rtl8821aefw_29.bin
+firmware:       rtw88/rtw8723d_fw.bin
+firmware:       rtw88/rtw8822b_fw.bin
+firmware:       rtw88/rtw8822c_fw.bin
+firmware:       rtw88/rtw8822c_wow_fw.bin
+firmware:       s5k4ecgx.bin
+firmware:       sd8385.bin
+firmware:       sd8385_helper.bin
+firmware:       sd8686.bin
+firmware:       sd8686_helper.bin
+firmware:       sd8688.bin
+firmware:       sd8688_helper.bin
+firmware:       slicoss/gbdownload.sys
+firmware:       slicoss/gbrcvucode.sys
+firmware:       slicoss/oasisdownload.sys
+firmware:       slicoss/oasisrcvucode.sys
+firmware:       sms1xxx-hcw-55xxx-dvbt-02.fw
+firmware:       sms1xxx-hcw-55xxx-isdbt-02.fw
+firmware:       sms1xxx-nova-a-dvbt-01.fw
+firmware:       sms1xxx-nova-b-dvbt-01.fw
+firmware:       sms1xxx-stellar-dvbt-01.fw
+firmware:       softing-4.6/bcard.bin
+firmware:       softing-4.6/bcard2.bin
+firmware:       softing-4.6/cancard.bin
+firmware:       softing-4.6/cancrd2.bin
+firmware:       softing-4.6/cansja.bin
+firmware:       softing-4.6/ldcard.bin
+firmware:       softing-4.6/ldcard2.bin
+firmware:       solos-FPGA.bin
+firmware:       solos-Firmware.bin
+firmware:       solos-db-FPGA.bin
+firmware:       sun/cassini.bin
+firmware:       symbol_sp24t_prim_fw
+firmware:       symbol_sp24t_sec_fw
+firmware:       tdmb_denver.inp
+firmware:       tdmb_nova_12mhz.inp
+firmware:       tdmb_nova_12mhz_b0.inp
+firmware:       tehuti/bdx.bin
+firmware:       ti-connectivity/wl1251-fw.bin
+firmware:       ti-connectivity/wl1251-nvs.bin
+firmware:       ti-connectivity/wl127x-fw-5-mr.bin
+firmware:       ti-connectivity/wl127x-fw-5-plt.bin
+firmware:       ti-connectivity/wl127x-fw-5-sr.bin
+firmware:       ti-connectivity/wl128x-fw-5-mr.bin
+firmware:       ti-connectivity/wl128x-fw-5-plt.bin
+firmware:       ti-connectivity/wl128x-fw-5-sr.bin
+firmware:       ti-connectivity/wl18xx-fw-4.bin
+firmware:       ti_3410.fw
+firmware:       ti_5052.fw
+firmware:       tigon/tg3.bin
+firmware:       tigon/tg3_tso.bin
+firmware:       tigon/tg3_tso5.bin
+firmware:       ttusb-budget/dspbootcode.bin
+firmware:       ueagle-atm/930-fpga.bin
+firmware:       ueagle-atm/CMV4i.bin
+firmware:       ueagle-atm/CMV4i.bin.v2
+firmware:       ueagle-atm/CMV4p.bin
+firmware:       ueagle-atm/CMV4p.bin.v2
+firmware:       ueagle-atm/CMV9i.bin
+firmware:       ueagle-atm/CMV9i.bin.v2
+firmware:       ueagle-atm/CMV9p.bin
+firmware:       ueagle-atm/CMV9p.bin.v2
+firmware:       ueagle-atm/CMVei.bin
+firmware:       ueagle-atm/CMVei.bin.v2
+firmware:       ueagle-atm/CMVep.bin
+firmware:       ueagle-atm/CMVep.bin.v2
+firmware:       ueagle-atm/DSP4i.bin
+firmware:       ueagle-atm/DSP4p.bin
+firmware:       ueagle-atm/DSP9i.bin
+firmware:       ueagle-atm/DSP9p.bin
+firmware:       ueagle-atm/DSPei.bin
+firmware:       ueagle-atm/DSPep.bin
+firmware:       ueagle-atm/adi930.fw
+firmware:       ueagle-atm/eagle.fw
+firmware:       ueagle-atm/eagleI.fw
+firmware:       ueagle-atm/eagleII.fw
+firmware:       ueagle-atm/eagleIII.fw
+firmware:       ueagle-atm/eagleIV.fw
+firmware:       usb8388.bin
+firmware:       usbdux_firmware.bin
+firmware:       usbduxfast_firmware.bin
+firmware:       usbduxsigma_firmware.bin
+firmware:       v4l-cx231xx-avcore-01.fw
+firmware:       v4l-cx23418-apu.fw
+firmware:       v4l-cx23418-cpu.fw
+firmware:       v4l-cx23418-dig.fw
+firmware:       v4l-cx2341x-dec.fw
+firmware:       v4l-cx2341x-enc.fw
+firmware:       v4l-cx2341x-init.mpg
+firmware:       v4l-cx23885-avcore-01.fw
+firmware:       v4l-cx23885-enc.fw
+firmware:       v4l-cx25840.fw
+firmware:       v4l-pvrusb2-24xxx-01.fw
+firmware:       v4l-pvrusb2-29xxx-01.fw
+firmware:       v4l-pvrusb2-73xxx-01.fw
+firmware:       vicam/firmware.fw
+firmware:       vntwusb.fw
+firmware:       vx/bd56002.boot
+firmware:       vx/bd563s3.boot
+firmware:       vx/bd563v2.boot
+firmware:       vx/bx_1_vp4.b56
+firmware:       vx/bx_1_vxp.b56
+firmware:       vx/l_1_v22.d56
+firmware:       vx/l_1_vp4.d56
+firmware:       vx/l_1_vx2.d56
+firmware:       vx/l_1_vxp.d56
+firmware:       vx/x1_1_vp4.xlx
+firmware:       vx/x1_1_vx2.xlx
+firmware:       vx/x1_1_vxp.xlx
+firmware:       vx/x1_2_v22.xlx
+firmware:       vxge/X3fw-pxe.ncf
+firmware:       vxge/X3fw.ncf
+firmware:       wd719x-risc.bin
+firmware:       wd719x-wcs.bin
+firmware:       whiteheat.fw
+firmware:       whiteheat_loader.fw
+firmware:       wil6210.brd
+firmware:       wil6210.fw
+firmware:       wil6210_sparrow_plus.fw
+firmware:       wil6436.brd
+firmware:       wil6436.fw
+firmware:       wlan/prima/WCNSS_qcom_wlan_nv.bin
+firmware:       xc3028-v27.fw
+firmware:       xc3028L-v36.fw
+firmware:       yam/1200.bin
+firmware:       yam/9600.bin
+firmware:       yamaha/ds1_ctrl.fw
+firmware:       yamaha/ds1_dsp.fw
+firmware:       yamaha/ds1e_ctrl.fw
+firmware:       zd1201-ap.fw
+firmware:       zd1201.fw
+firmware:       zd1211/zd1211_ub
+firmware:       zd1211/zd1211_uphr
+firmware:       zd1211/zd1211_ur
+firmware:       zd1211/zd1211b_ub
+firmware:       zd1211/zd1211b_uphr
+firmware:       zd1211/zd1211b_ur
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/changelog
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/changelog
@@ -0,0 +1,4684 @@
+linux-gkeop (5.4.0-1015.16) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1015.16 -proposed tracker (LP: #1923770)
+
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - [Config] gkeop: update abi for rc-cec
+
+  * Disable Atari partition support for cloud kernels (LP: #1908264)
+    - [Config]: Disable ATARI_PARTITION
+
+  [ Ubuntu: 5.4.0-73.82 ]
+
+  * focal/linux: 5.4.0-73.82 -proposed tracker (LP: #1923781)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * CIFS DFS entries not accessible with 5.4.0-71.74-generic (LP: #1923670)
+    - Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting
+      cifs_sb->prepath."
+  * CVE-2021-29650
+    - Revert "netfilter: x_tables: Update remaining dereference to RCU"
+    - Revert "netfilter: x_tables: Switch synchronization to RCU"
+    - netfilter: x_tables: Use correct memory barriers.
+  * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key
+    (LP: #1918134)
+    - [Packaging] dkms-build{,--nvidia-N} sync back from LRMv4
+  * 5.4 kernel: when iommu is on crashdump fails (LP: #1922738)
+    - iommu/vt-d: Refactor find_domain() helper
+    - iommu/vt-d: Add attach_deferred() helper
+    - iommu/vt-d: Move deferred device attachment into helper function
+    - iommu/vt-d: Do deferred attachment in iommu_need_mapping()
+    - iommu/vt-d: Remove deferred_attach_domain()
+    - iommu/vt-d: Simplify check in identity_mapping()
+  * Backport mlx5e fix for tunnel offload (LP: #1921769)
+    - net/mlx5e: Check tunnel offload is required before setting SWP
+  * Bcache bypasse writeback on caching device with fragmentation (LP: #1900438)
+    - bcache: consider the fragmentation when update the writeback rate
+  * Fix implicit declaration warnings for kselftests/memfd test on newer
+    releases (LP: #1910323)
+    - selftests/memfd: Fix implicit declaration warnings
+  * net/mlx5e: Add missing capability check for uplink follow (LP: #1921104)
+    - net/mlx5e: Add missing capability check for uplink follow
+  * [UBUNUT 21.04] s390/vtime: fix increased steal time accounting
+    (LP: #1921498)
+    - s390/vtime: fix increased steal time accounting
+  * Mute/Mic-mute LEDs are not work on HP 850/840/440 G8 Laptops (LP: #1920030)
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - uapi: nfnetlink_cthelper.h: fix userspace compilation error
+    - powerpc/pseries: Don't enforce MSI affinity with kdump
+    - ath9k: fix transmitting to stations in dynamic SMPS mode
+    - net: Fix gro aggregation for udp encaps with zero csum
+    - net: check if protocol extracted by virtio_net_hdr_set_proto is correct
+    - net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
+    - sh_eth: fix TRSCER mask for SH771x
+    - can: skb: can_skb_set_owner(): fix ref counting if socket was closed before
+      setting skb ownership
+    - can: flexcan: assert FRZ bit in flexcan_chip_freeze()
+    - can: flexcan: enable RX FIFO after FRZ/HALT valid
+    - can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode
+    - can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before
+      entering Normal Mode
+    - tcp: add sanity tests to TCP_QUEUE_SEQ
+    - netfilter: nf_nat: undo erroneous tcp edemux lookup
+    - netfilter: x_tables: gpf inside xt_find_revision()
+    - selftests/bpf: No need to drop the packet when there is no geneve opt
+    - selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier
+    - samples, bpf: Add missing munmap in xdpsock
+    - ibmvnic: always store valid MAC address
+    - mt76: dma: do not report truncated frames to mac80211
+    - powerpc/603: Fix protection of user pages mapped with PROT_NONE
+    - mount: fix mounting of detached mounts onto targets that reside on shared
+      mounts
+    - cifs: return proper error code in statfs(2)
+    - Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
+    - net: enetc: don't overwrite the RSS indirection table when initializing
+    - net/mlx4_en: update moderation when config reset
+    - net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10
+    - nexthop: Do not flush blackhole nexthops when loopback goes down
+    - net: sched: avoid duplicates in classes dump
+    - net: usb: qmi_wwan: allow qmimux add/del with master up
+    - netdevsim: init u64 stats for 32bit hardware
+    - cipso,calipso: resolve a number of problems with the DOI refcounts
+    - net: lapbether: Remove netif_start_queue / netif_stop_queue
+    - net: davicom: Fix regulator not turned off on failed probe
+    - net: davicom: Fix regulator not turned off on driver removal
+    - net: qrtr: fix error return code of qrtr_sendmsg()
+    - ixgbe: fail to create xfrm offload of IPsec tunnel mode SA
+    - net: stmmac: stop each tx channel independently
+    - net: stmmac: fix watchdog timeout during suspend/resume stress test
+    - selftests: forwarding: Fix race condition in mirror installation
+    - perf traceevent: Ensure read cmdlines are null terminated.
+    - net: hns3: fix query vlan mask value error for flow director
+    - net: hns3: fix bug when calculating the TCAM table info
+    - s390/cio: return -EFAULT if copy_to_user() fails again
+    - bnxt_en: reliably allocate IRQ table on reset to avoid crash
+    - drm/compat: Clear bounce structures
+    - drm/shmem-helper: Check for purged buffers in fault handler
+    - drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
+    - drm: meson_drv add shutdown function
+    - s390/cio: return -EFAULT if copy_to_user() fails
+    - s390/crypto: return -EFAULT if copy_to_user() fails
+    - qxl: Fix uninitialised struct field head.surface_id
+    - sh_eth: fix TRSCER mask for R7S9210
+    - media: usbtv: Fix deadlock on suspend
+    - media: v4l: vsp1: Fix uif null pointer access
+    - media: v4l: vsp1: Fix bru null pointer access
+    - media: rc: compile rc-cec.c into rc-core
+    - [Config] update abi for rc-cec
+    - net: hns3: fix error mask definition of flow director
+    - net: enetc: initialize RFS/RSS memories for unused ports too
+    - net: phy: fix save wrong speed and duplex problem if autoneg is on
+    - i2c: rcar: faster irq code to minimize HW race condition
+    - i2c: rcar: optimize cacheline to minimize HW race condition
+    - udf: fix silent AED tagLocation corruption
+    - mmc: mxs-mmc: Fix a resource leak in an error handling path in
+      'mxs_mmc_probe()'
+    - mmc: mediatek: fix race condition between msdc_request_timeout and irq
+    - Platform: OLPC: Fix probe error handling
+    - powerpc/pci: Add ppc_md.discover_phbs()
+    - spi: stm32: make spurious and overrun interrupts visible
+    - powerpc: improve handling of unrecoverable system reset
+    - powerpc/perf: Record counter overflow always if SAMPLE_IP is unset
+    - HID: logitech-dj: add support for the new lightspeed connection iteration
+    - powerpc/64: Fix stack trace not displaying final frame
+    - iommu/amd: Fix performance counter initialization
+    - sparc32: Limit memblock allocation to low memory
+    - sparc64: Use arch_validate_flags() to validate ADI flag
+    - Input: applespi - don't wait for responses to commands indefinitely.
+    - PCI: xgene-msi: Fix race in installing chained irq handler
+    - PCI: mediatek: Add missing of_node_put() to fix reference leak
+    - kbuild: clamp SUBLEVEL to 255
+    - PCI: Fix pci_register_io_range() memory leak
+    - i40e: Fix memory leak in i40e_probe
+    - s390/smp: __smp_rescan_cpus() - move cpumask away from stack
+    - sysctl.c: fix underflow value setting risk in vm_table
+    - scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
+    - scsi: target: core: Add cmd length set before cmd complete
+    - scsi: target: core: Prevent underflow for service actions
+    - ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
+    - ALSA: hda/hdmi: Cancel pending works before suspend
+    - ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support
+    - ALSA: hda: Drop the BATCH workaround for AMD controllers
+    - ALSA: hda: Flush pending unsolicited events before suspend
+    - ALSA: hda: Avoid spurious unsol event handling during S3/S4
+    - ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
+    - ALSA: usb-audio: Apply the control quirk to Plantronics headsets
+    - Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file
+      capabilities")
+    - arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
+    - s390/dasd: fix hanging DASD driver unbind
+    - s390/dasd: fix hanging IO request during DASD driver unbind
+    - software node: Fix node registration
+    - mmc: core: Fix partition switch time for eMMC
+    - mmc: cqhci: Fix random crash when remove mmc module/card
+    - Goodix Fingerprint device is not a modem
+    - USB: gadget: u_ether: Fix a configfs return code
+    - usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio
+      slot
+    - usb: gadget: f_uac1: stop playback on function disable
+    - usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement
+    - usb: dwc3: qcom: Honor wakeup enabled/disabled state
+    - USB: usblp: fix a hang in poll() if disconnected
+    - usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
+    - usb: xhci: do not perform Soft Retry for some xHCI hosts
+    - xhci: Improve detection of device initiated wake signal.
+    - usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
+    - xhci: Fix repeated xhci wake after suspend due to uncleared internal wake
+      state
+    - USB: serial: io_edgeport: fix memory leak in edge_startup
+    - USB: serial: ch341: add new Product ID
+    - USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
+    - USB: serial: cp210x: add some more GE USB IDs
+    - usbip: fix stub_dev to check for stream socket
+    - usbip: fix vhci_hcd to check for stream socket
+    - usbip: fix vudc to check for stream socket
+    - usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
+    - usbip: fix vhci_hcd attach_store() races leading to gpf
+    - usbip: fix vudc usbip_sockfd_store races leading to gpf
+    - misc/pvpanic: Export module FDT device table
+    - misc: fastrpc: restrict user apps from sending kernel RPC messages
+    - staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
+    - staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
+    - staging: rtl8712: unterminated string leads to read overflow
+    - staging: rtl8188eu: fix potential memory corruption in
+      rtw_check_beacon_data()
+    - staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
+    - staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
+    - staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan
+    - staging: comedi: addi_apci_1032: Fix endian problem for COS sample
+    - staging: comedi: addi_apci_1500: Fix endian problem for command sample
+    - staging: comedi: adv_pci1710: Fix endian problem for AI command data
+    - staging: comedi: das6402: Fix endian problem for AI command data
+    - staging: comedi: das800: Fix endian problem for AI command data
+    - staging: comedi: dmm32at: Fix endian problem for AI command data
+    - staging: comedi: me4000: Fix endian problem for AI command data
+    - staging: comedi: pcl711: Fix endian problem for AI command data
+    - staging: comedi: pcl818: Fix endian problem for AI command data
+    - sh_eth: fix TRSCER mask for R7S72100
+    - arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
+    - SUNRPC: Set memalloc_nofs_save() for sync tasks
+    - NFS: Don't revalidate the directory permissions on a lookup failure
+    - NFS: Don't gratuitously clear the inode cache when lookup failed
+    - NFSv4.2: fix return value of _nfs4_get_security_label()
+    - block: rsxx: fix error return code of rsxx_pci_probe()
+    - configfs: fix a use-after-free in __configfs_open_file
+    - arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
+    - hrtimer: Update softirq_expires_next correctly after
+      __hrtimer_get_next_event()
+    - stop_machine: mark helpers __always_inline
+    - include/linux/sched/mm.h: use rcu_dereference in in_vfork()
+    - zram: fix return value on writeback_store
+    - sched/membarrier: fix missing local execution of ipi_sync_rq_state()
+    - powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
+    - binfmt_misc: fix possible deadlock in bm_register_write
+    - x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
+    - KVM: arm64: Fix exclusive limit for IPA size
+    - nvme: unlink head after removing last namespace
+    - nvme: release namespace head reference on error
+    - KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
+    - KVM: arm64: Reject VM creation when the default IPA size is unsupported
+    - xen/events: reset affinity of 2-level event when tearing it down
+    - xen/events: don't unmask an event channel when an eoi is pending
+    - xen/events: avoid handling the same event on two cpus at the same time
+    - Linux 5.4.106
+  * Focal update: v5.4.105 upstream stable release (LP: #1920244)
+    - net: dsa: add GRO support via gro_cells
+    - dm table: fix iterate_devices based device capability checks
+    - dm table: fix DAX iterate_devices based device capability checks
+    - dm table: fix zoned iterate_devices based device capability checks
+    - ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter
+      handling
+    - iommu/amd: Fix sleeping in atomic in increase_address_space()
+    - mwifiex: pcie: skip cancel_work_sync() on reset failure path
+    - platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
+    - platform/x86: acer-wmi: Cleanup accelerometer device handling
+    - platform/x86: acer-wmi: Add new force_caps module parameter
+    - platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
+    - platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
+    - platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch
+      10E SW3-016
+    - HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
+    - media: cx23885: add more quirks for reset DMA on some AMD IOMMU
+    - ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
+    - ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
+    - PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
+    - misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
+    - drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
+    - mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo
+      Winpad A15
+    - nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
+    - nvme-pci: add quirks for Lexar 256GB SSD
+    - Linux 5.4.105
+  * Focal update: v5.4.104 upstream stable release (LP: #1920238)
+    - tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality()
+    - tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality()
+    - btrfs: raid56: simplify tracking of Q stripe presence
+    - btrfs: fix raid6 qstripe kmap
+    - btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
+    - btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
+    - btrfs: unlock extents in btrfs_zero_range in case of quota reservation
+      errors
+    - btrfs: fix warning when creating a directory with smack enabled
+    - PM: runtime: Update device status before letting suppliers suspend
+    - dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
+    - dm verity: fix FEC for RS roots unaligned to block size
+    - drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie
+    - arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
+    - crypto - shash: reduce minimum alignment of shash_desc structure
+    - usbip: tools: fix build error for multiple definition
+    - ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
+    - RDMA/rxe: Fix missing kconfig dependency on CRYPTO
+    - IB/mlx5: Add missing error code
+    - ALSA: hda: intel-nhlt: verify config type
+    - ftrace: Have recordmcount use w8 to read relp->r_info in
+      arm64_is_fake_mcount
+    - rsxx: Return -EFAULT if copy_to_user() fails
+    - r8169: fix resuming from suspend on RTL8105e if machine runs on battery
+    - Linux 5.4.104
+  * Focal update: v5.4.103 upstream stable release (LP: #1920235)
+    - net: usb: qmi_wwan: support ZTE P685M modem
+    - nvme-pci: refactor nvme_unmap_data
+    - nvme-pci: fix error unwind in nvme_map_data
+    - arm64 module: set plt* section addresses to 0x0
+    - MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target='
+    - JFS: more checks for invalid superblock
+    - udlfb: Fix memory leak in dlfb_usb_probe
+    - media: mceusb: sanity check for prescaler value
+    - erofs: fix shift-out-of-bounds of blkszbits
+    - media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate
+    - xfs: Fix assert failure in xfs_setattr_size()
+    - net/af_iucv: remove WARN_ONCE on malformed RX packets
+    - smackfs: restrict bytes count in smackfs write functions
+    - net: fix up truesize of cloned skb in skb_prepare_for_shift()
+    - nbd: handle device refs for DESTROY_ON_DISCONNECT properly
+    - mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
+    - net: bridge: use switchdev for port flags set through sysfs too
+    - net: ag71xx: remove unnecessary MTU reservation
+    - net: fix dev_ifsioc_locked() race condition
+    - dt-bindings: ethernet-controller: fix fixed-link specification
+    - dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/
+    - MIPS: Drop 32-bit asm string functions
+    - drm/virtio: use kvmalloc for large allocations
+    - rsi: Fix TX EAPOL packet handling against iwlwifi AP
+    - rsi: Move card interrupt handling to RX thread
+    - staging: fwserial: Fix error handling in fwserial_create
+    - x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk
+    - vt/consolemap: do font sum unsigned
+    - wlcore: Fix command execute failure 19 for wl12xx
+    - Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl
+    - pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
+    - ath10k: fix wmi mgmt tx queue full due to race condition
+    - x86/build: Treat R_386_PLT32 relocation as R_386_PC32
+    - Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data
+    - staging: most: sound: add sanity check for function argument
+    - staging: bcm2835-audio: Replace unsafe strcpy() with strscpy()
+    - brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet
+    - brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet
+    - drm/hisilicon: Fix use-after-free
+    - crypto: tcrypt - avoid signed overflow in byte count
+    - drm/amdgpu: Add check to prevent IH overflow
+    - PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
+    - drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails
+    - media: uvcvideo: Allow entities with no pads
+    - f2fs: handle unallocated section and zone on pinned/atgc
+    - f2fs: fix to set/clear I_LINKABLE under i_lock
+    - nvme-core: add cancel tagset helpers
+    - nvme-rdma: add clean action for failed reconnection
+    - nvme-tcp: add clean action for failed reconnection
+    - ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr()
+    - btrfs: fix error handling in commit_fs_roots
+    - perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
+    - parisc: Bump 64-bit IRQ stack size to 64 KB
+    - sched/features: Fix hrtick reprogramming
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R
+      tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet
+    - ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
+    - Xen/gnttab: handle p2m update errors on a per-slot basis
+    - xen-netback: respect gnttab_map_refs()'s return value
+    - zsmalloc: account the number of compacted pages correctly
+    - swap: fix swapfile read/write offset
+    - media: v4l: ioctl: Fix memory leak in video_usercopy
+    - ALSA: hda/realtek: Add quirk for Clevo NH55RZQ
+    - ALSA: hda/realtek: Add quirk for Intel NUC 10
+    - ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board
+    - Linux 5.4.103
+  * Focal update: v5.4.102 upstream stable release (LP: #1918974)
+    - vmlinux.lds.h: add DWARF v5 sections
+    - kvm: x86: replace kvm_spec_ctrl_test_value with runtime test on the host
+    - debugfs: be more robust at handling improper input in debugfs_lookup()
+    - debugfs: do not attempt to create a new file before the filesystem is
+      initalized
+    - kdb: Make memory allocations more robust
+    - PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
+    - PCI: Decline to resize resources if boot config must be preserved
+    - virt: vbox: Do not use wait_event_interruptible when called from kernel
+      context
+    - bfq: Avoid false bfq queue merging
+    - ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
+    - MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
+    - random: fix the RNDRESEEDCRNG ioctl
+    - ath10k: Fix error handling in case of CE pipe init failure
+    - Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the
+      probe function
+    - Bluetooth: hci_uart: Fix a race for write_work scheduling
+    - Bluetooth: Fix initializing response id after clearing struct
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Monk
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on TM2
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
+    - memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops
+    - bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h
+    - bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args
+    - arm64: dts: allwinner: A64: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: H6: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card
+    - arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency
+    - arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
+    - cpufreq: brcmstb-avs-cpufreq: Free resources in error path
+    - cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
+    - ACPICA: Fix exception code class checks
+    - usb: gadget: u_audio: Free requests only after callback
+    - Bluetooth: drop HCI device reference before return
+    - Bluetooth: Put HCI device if inquiry procedure interrupts
+    - memory: ti-aemif: Drop child node when jumping out loop
+    - ARM: dts: Configure missing thermal interrupt for 4430
+    - usb: dwc2: Do not update data length if it is 0 on inbound transfers
+    - usb: dwc2: Abort transaction after errors with unknown reason
+    - usb: dwc2: Make "trimming xfer length" a debug message
+    - staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules
+    - ARM: dts: armada388-helios4: assign pinctrl to LEDs
+    - ARM: dts: armada388-helios4: assign pinctrl to each fan
+    - arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to
+      a53-firmware
+    - Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv
+    - arm64: dts: msm8916: Fix reserved and rfsa nodes unit address
+    - ARM: s3c: fix fiq for clang IAS
+    - soc: aspeed: snoop: Add clock control logic
+    - bpf_lru_list: Read double-checked variable once without lock
+    - ath9k: fix data bus crash when setting nf_override via debugfs
+    - ibmvnic: Set to CLOSED state even on error
+    - bnxt_en: reverse order of TX disable and carrier off
+    - xen/netback: fix spurious event detection for common event case
+    - mac80211: fix potential overflow when multiplying to u32 integers
+    - bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
+    - tcp: fix SO_RCVLOWAT related hangs under mem pressure
+    - net: axienet: Handle deferred probe on clock properly
+    - cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4
+      and ulds
+    - b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
+    - ibmvnic: add memory barrier to protect long term buffer
+    - ibmvnic: skip send_request_unmap for timeout reset
+    - net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout
+    - net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning
+    - net: amd-xgbe: Reset link when the link never comes back
+    - net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP
+    - net: mvneta: Remove per-cpu queue mapping for Armada 3700
+    - fbdev: aty: SPARC64 requires FB_ATY_CT
+    - drm/gma500: Fix error return code in psb_driver_load()
+    - gma500: clean up error handling in init
+    - drm/fb-helper: Add missed unlocks in setcmap_legacy()
+    - crypto: sun4i-ss - linearize buffers content must be kept
+    - crypto: sun4i-ss - fix kmap usage
+    - crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled
+    - drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition
+    - MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
+    - MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
+    - media: i2c: ov5670: Fix PIXEL_RATE minimum value
+    - media: imx: Unregister csc/scaler only if registered
+    - media: imx: Fix csc/scaler unregister
+    - media: camss: missing error code in msm_video_register()
+    - media: vsp1: Fix an error handling path in the probe function
+    - media: em28xx: Fix use-after-free in em28xx_alloc_urbs
+    - media: media/pci: Fix memleak in empress_init
+    - media: tm6000: Fix memleak in tm6000_start_stream
+    - media: aspeed: fix error return code in aspeed_video_setup_video()
+    - ASoC: cs42l56: fix up error handling in probe
+    - evm: Fix memleak in init_desc
+    - crypto: bcm - Rename struct device_private to bcm_device_private
+    - drm/sun4i: tcon: fix inverted DCLK polarity
+    - MIPS: properly stop .eh_frame generation
+    - bsg: free the request before return error code
+    - drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction.
+    - drm/amd/display: Fix HDMI deep color output for DCE 6-11.
+    - media: software_node: Fix refcounts in software_node_get_next_child()
+    - media: lmedm04: Fix misuse of comma
+    - media: qm1d1c0042: fix error return code in qm1d1c0042_init()
+    - media: cx25821: Fix a bug when reallocating some dma memory
+    - media: pxa_camera: declare variable when DEBUG is defined
+    - media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
+    - sched/eas: Don't update misfit status if the task is pinned
+    - mtd: parser: imagetag: fix error codes in
+      bcm963xx_parse_imagetag_partitions()
+    - crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error)
+    - drm/nouveau: bail out of nouveau_channel_new if channel init fails
+    - ata: ahci_brcm: Add back regulators management
+    - ASoC: cpcap: fix microphone timeslot mask
+    - mtd: parsers: afs: Fix freeing the part name memory in failure
+    - f2fs: fix to avoid inconsistent quota data
+    - drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
+    - f2fs: fix a wrong condition in __submit_bio
+    - Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind()
+    - ASoC: SOF: debug: Fix a potential issue on string buffer termination
+    - btrfs: clarify error returns values in __load_free_space_cache
+    - hwrng: timeriomem - Fix cooldown period calculation
+    - crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
+    - ima: Free IMA measurement buffer on error
+    - ima: Free IMA measurement buffer after kexec syscall
+    - ASoC: simple-card-utils: Fix device module clock
+    - fs/jfs: fix potential integer overflow on shift of a int
+    - jffs2: fix use after free in jffs2_sum_write_data()
+    - ubifs: Fix memleak in ubifs_init_authentication
+    - ubifs: Fix error return code in alloc_wbufs()
+    - capabilities: Don't allow writing ambiguous v3 file capabilities
+    - HSI: Fix PM usage counter unbalance in ssi_hw_init
+    - clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
+    - clk: meson: clk-pll: make "ret" a signed integer
+    - clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate()
+    - quota: Fix memory leak when handling corrupted quota file
+    - i2c: iproc: handle only slave interrupts which are enabled
+    - i2c: iproc: update slave isr mask (ISR_MASK_SLAVE)
+    - i2c: iproc: handle master read request
+    - spi: cadence-quadspi: Abort read if dummy cycles required are too many
+    - clk: sunxi-ng: h6: Fix CEC clock
+    - HID: core: detect and skip invalid inputs to snto32()
+    - RDMA/siw: Fix handling of zero-sized Read and Receive Queues.
+    - dmaengine: fsldma: Fix a resource leak in the remove function
+    - dmaengine: fsldma: Fix a resource leak in an error handling path of the
+      probe function
+    - dmaengine: owl-dma: Fix a resource leak in the remove function
+    - dmaengine: hsu: disable spurious interrupt
+    - mfd: bd9571mwv: Use devm_mfd_add_devices()
+    - fdt: Properly handle "no-map" field in the memory region
+    - of/fdt: Make sure no-map does not remove already reserved regions
+    - power: reset: at91-sama5d2_shdwc: fix wkupdbc mask
+    - rtc: s5m: select REGMAP_I2C
+    - clocksource/drivers/ixp4xx: Select TIMER_OF when needed
+    - clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
+    - RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
+    - clk: sunxi-ng: h6: Fix clock divider range on some clocks
+    - regulator: axp20x: Fix reference cout leak
+    - certs: Fix blacklist flag type confusion
+    - regulator: s5m8767: Fix reference count leak
+    - spi: atmel: Put allocated master before return
+    - regulator: s5m8767: Drop regulators OF node reference
+    - regulator: core: Avoid debugfs: Directory ... already present! error
+    - isofs: release buffer head before return
+    - auxdisplay: ht16k33: Fix refresh rate handling
+    - objtool: Fix error handling for STD/CLD warnings
+    - objtool: Fix ".cold" section suffix check for newer versions of GCC
+    - IB/umad: Return EIO in case of when device disassociated
+    - IB/umad: Return EPOLLERR in case of when device disassociated
+    - KVM: PPC: Make the VMX instruction emulation routines static
+    - powerpc/47x: Disable 256k page size
+    - mmc: sdhci-sprd: Fix some resource leaks in the remove function
+    - mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
+    - mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to
+      128-bytes
+    - ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
+    - i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct
+    - amba: Fix resource leak for drivers without .remove
+    - IB/mlx5: Return appropriate error code instead of ENOMEM
+    - IB/cm: Avoid a loop when device has 255 ports
+    - tracepoint: Do not fail unregistering a probe due to memory failure
+    - perf tools: Fix DSO filtering when not finding a map for a sampled address
+    - perf vendor events arm64: Fix Ampere eMag event typo
+    - RDMA/rxe: Fix coding error in rxe_recv.c
+    - RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt
+    - RDMA/rxe: Correct skb on loopback path
+    - spi: stm32: properly handle 0 byte transfer
+    - mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
+    - powerpc/pseries/dlpar: handle ibm, configure-connector delay status
+    - powerpc/8xx: Fix software emulation interrupt
+    - clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs
+    - RDMA/hns: Fixed wrong judgments in the goto branch
+    - RDMA/siw: Fix calculation of tx_valid_cpus size
+    - RDMA/hns: Fix type of sq_signal_bits
+    - spi: pxa2xx: Fix the controller numbering for Wildcat Point
+    - regulator: qcom-rpmh: fix pm8009 ldo7
+    - clk: aspeed: Fix APLL calculate formula from ast2600-A2
+    - nfsd: register pernet ops last, unregister first
+    - RDMA/hns: Fixes missing error code of CMDQ
+    - Input: sur40 - fix an error code in sur40_probe()
+    - perf intel-pt: Fix missing CYC processing in PSB
+    - perf intel-pt: Fix premature IPC
+    - perf test: Fix unaligned access in sample parsing test
+    - Input: elo - fix an error code in elo_connect()
+    - sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
+    - misc: eeprom_93xx46: Fix module alias to enable module autoprobe
+    - phy: rockchip-emmc: emmc_phy_init() always return 0
+    - misc: eeprom_93xx46: Add module alias to avoid breaking support for non
+      device tree users
+    - soundwire: cadence: fix ACK/NAK handling
+    - pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
+    - VMCI: Use set_page_dirty_lock() when unregistering guest memory
+    - PCI: Align checking of syscall user config accessors
+    - mei: hbm: call mei_set_devstate() on hbm stop response
+    - drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
+    - drm/msm/mdp5: Fix wait-for-commit for cmd panels
+    - vfio/iommu_type1: Fix some sanity checks in detach group
+    - ext4: fix potential htree index checksum corruption
+    - nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of()
+    - nvmem: core: skip child nodes not matching binding
+    - regmap: sdw: use _no_pm functions in regmap_read/write
+    - i40e: Fix flow for IPv6 next header (extension header)
+    - i40e: Add zero-initialization of AQ command structures
+    - i40e: Fix overwriting flow control settings during driver loading
+    - i40e: Fix addition of RX filters after enabling FW LLDP agent
+    - i40e: Fix VFs not created
+    - i40e: Fix add TC filter for IPv6
+    - vfio/type1: Use follow_pte()
+    - net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
+    - vxlan: move debug check after netdev unregister
+    - ocfs2: fix a use after free on error
+    - mm/memory.c: fix potential pte_unmap_unlock pte error
+    - mm/hugetlb: fix potential double free in hugetlb_register_node() error path
+    - mm/compaction: fix misbehaviors of fast_find_migrateblock()
+    - r8169: fix jumbo packet handling on RTL8168e
+    - arm64: Add missing ISB after invalidating TLB in __primary_switch
+    - i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
+    - mm/rmap: fix potential pte_unmap on an not mapped pte
+    - scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
+    - blk-settings: align max_sectors on "logical_block_size" boundary
+    - ACPI: property: Fix fwnode string properties matching
+    - ACPI: configfs: add missing check after configfs_register_default_group()
+    - HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming
+    - HID: wacom: Ignore attempts to overwrite the touch_max value from HID
+    - Input: raydium_ts_i2c - do not send zero length
+    - Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox
+      Series X|S
+    - Input: joydev - prevent potential read overflow in ioctl
+    - Input: i8042 - add ASUS Zenbook Flip to noselftest list
+    - media: mceusb: Fix potential out-of-bounds shift
+    - USB: serial: option: update interface mapping for ZTE P685M
+    - usb: musb: Fix runtime PM race in musb_queue_resume_work
+    - usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
+    - usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
+    - USB: serial: ftdi_sio: fix FTX sub-integer prescaler
+    - USB: serial: mos7840: fix error code in mos7840_write()
+    - USB: serial: mos7720: fix error code in mos7720_write()
+    - ALSA: hda: Add another CometLake-H PCI ID
+    - ALSA: hda/realtek: modify EAPD in the ALC886
+    - Revert "bcache: Kill btree_io_wq"
+    - bcache: Give btree_io_wq correct semantics again
+    - bcache: Move journal work to new flush wq
+    - drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1
+    - drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2)
+    - drm/nouveau/kms: handle mDP connectors
+    - drm/sched: Cancel and flush all outstanding jobs before finish.
+    - erofs: initialized fields can only be observed after bit is set
+    - tpm_tis: Fix check_locality for correct locality acquisition
+    - tpm_tis: Clean up locality release
+    - KEYS: trusted: Fix migratable=1 failing
+    - btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
+    - btrfs: fix reloc root leak with 0 ref reloc roots on recovery
+    - btrfs: splice remaining dirty_bg's onto the transaction dirty bg list
+    - btrfs: fix extent buffer leak on failure to copy root
+    - crypto: arm64/sha - add missing module aliases
+    - crypto: aesni - prevent misaligned buffers on the stack
+    - crypto: sun4i-ss - checking sg length is not sufficient
+    - crypto: sun4i-ss - handle BigEndian for cipher
+    - crypto: sun4i-ss - initialize need_fallback
+    - seccomp: Add missing return in non-void function
+    - misc: rtsx: init of rts522a add OCP power off when no card is present
+    - drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
+    - pstore: Fix typo in compression option name
+    - dts64: mt7622: fix slow sd card access
+    - staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c
+    - staging: gdm724x: Fix DMA from stack
+    - staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
+    - media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt()
+    - x86/virt: Eat faults on VMXOFF in reboot flows
+    - x86/reboot: Force all cpus to exit VMX root if VMX is supported
+    - powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan
+    - rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
+    - rcu/nocb: Perform deferred wake up before last idle's need_resched() check
+    - floppy: reintroduce O_NDELAY fix
+    - arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into()
+      fails
+    - arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
+    - watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ
+    - watchdog: mei_wdt: request stop on unregister
+    - mtd: spi-nor: sfdp: Fix last erase region marking
+    - mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region
+    - mtd: spi-nor: core: Fix erase type discovery for overlaid region
+    - mtd: spi-nor: core: Add erase size check for erase command initialization
+    - mtd: spi-nor: hisi-sfc: Put child node np on error path
+    - fs/affs: release old buffer head on error path
+    - seq_file: document how per-entry resources are managed.
+    - x86: fix seq_file iteration for pat/memtype.c
+    - hugetlb: fix update_and_free_page contig page struct assumption
+    - hugetlb: fix copy_huge_page_from_user contig page struct assumption
+    - arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55
+    - media: smipcie: fix interrupt handling and IR timeout
+    - module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
+    - mmc: sdhci-esdhc-imx: fix kernel panic when remove module
+    - powerpc/32s: Add missing call to kuep_lock on syscall entry
+    - spmi: spmi-pmic-arb: Fix hw_irq overflow
+    - gpio: pcf857x: Fix missing first interrupt
+    - printk: fix deadlock when kernel panic
+    - cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if
+      available
+    - s390/vtime: fix inline assembly clobber list
+    - virtio/s390: implement virtio-ccw revision 2 correctly
+    - um: mm: check more comprehensively for stub changes
+    - f2fs: fix out-of-repair __setattr_copy()
+    - sparc32: fix a user-triggerable oops in clear_user()
+    - spi: spi-synquacer: fix set_cs handling
+    - gfs2: Don't skip dlm unlock if glock has an lvb
+    - gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end
+    - dm: fix deadlock when swapping to encrypted device
+    - dm writecache: fix writing beyond end of underlying device when shrinking
+    - dm era: Recover committed writeset after crash
+    - dm era: Verify the data block size hasn't changed
+    - dm era: Fix bitset memory leaks
+    - dm era: Use correct value size in equality function of writeset tree
+    - dm era: Reinitialize bitset cache before digesting a new writeset
+    - dm era: only resize metadata in preresume
+    - drm/i915: Reject 446-480MHz HDMI clock on GLK
+    - icmp: introduce helper for nat'd source address in network device context
+    - icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
+    - gtp: use icmp_ndo_send helper
+    - sunvnet: use icmp_ndo_send helper
+    - xfrm: interface: use icmp_ndo_send helper
+    - ipv6: icmp6: avoid indirect call for icmpv6_send()
+    - ipv6: silence compilation warning for non-IPV6 builds
+    - net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
+    - net: sched: fix police ext initialization
+    - dm era: Update in-core bitset after committing the metadata
+    - net: qrtr: Fix memory leak in qrtr_tun_open
+    - ARM: dts: aspeed: Add LCLK to lpc-snoop
+    - Linux 5.4.102
+  * eeh-basic.sh from powerpc in ubuntu_kernel_selftests failed with unexpected
+    operator on F-5.8 (LP: #1909428)
+    - selftests/powerpc: Make the test check in eeh-basic.sh posix compliant
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Tue, 20 Apr 2021 06:50:15 -0600
+
+linux-gkeop (5.4.0-1014.15) focal; urgency=medium
+
+  [ Ubuntu: 5.4.0-72.80 ]
+
+  * overlayfs calls vfs_setxattr without cap_convert_nscap
+    - vfs: move cap_convert_nscap() call into vfs_setxattr()
+  * CVE-2021-3492
+    - SAUCE: shiftfs: free allocated memory in shiftfs_btrfs_ioctl_fd_replace()
+      error paths
+    - SAUCE: shiftfs: handle copy_to_user() return values correctly
+  * CVE-2021-29154
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-64
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-32
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Tue, 13 Apr 2021 11:44:29 +0200
+
+linux-gkeop (5.4.0-1013.14) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1013.14 -proposed tracker (LP: #1921029)
+
+  [ Ubuntu: 5.4.0-71.79 ]
+
+  * focal/linux: 5.4.0-71.79 -proposed tracker (LP: #1921040)
+  * selftests: bpf verifier fails after sanitize_ptr_alu fixes (LP: #1920995)
+    - bpf: Simplify alu_limit masking for pointer arithmetic
+    - bpf: Add sanity check for upper ptr_limit
+    - bpf, selftests: Fix up some test_verifier cases for unprivileged
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Fix missing HDMI/DP audio on NVidia card after S3 (LP: #1918228)
+    - ALSA: hda/hdmi: Reduce hda_jack_tbl lookup at unsol event handling
+    - ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
+    - ALSA: hda/hdmi: Move runtime PM resume into hdmi_present_sense_via_verbs()
+    - ALSA: hda/hdmi: Move ELD parse and jack reporting into update_eld()
+  * Focal update: v5.4.101 upstream stable release (LP: #1918170)
+    - HID: make arrays usage and value to be the same
+    - USB: quirks: sort quirk entries
+    - usb: quirks: add quirk to start video capture on ELMO L-12F document camera
+      reliable
+    - ntfs: check for valid standard information attribute
+    - arm64: tegra: Add power-domain for Tegra210 HDA
+    - scripts: use pkg-config to locate libcrypto
+    - scripts: set proper OpenSSL include dir also for sign-file
+    - mm: unexport follow_pte_pmd
+    - mm: simplify follow_pte{,pmd}
+    - KVM: do not assume PTE is writable after follow_pfn
+    - mm: provide a saner PTE walking API for modules
+    - KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped()
+    - NET: usb: qmi_wwan: Adding support for Cinterion MV31
+    - cxgb4: Add new T6 PCI device id 0x6092
+    - cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
+    - scripts/recordmcount.pl: support big endian for ARCH sh
+    - Linux 5.4.101
+  * Focal update: v5.4.100 upstream stable release (LP: #1918168)
+    - KVM: SEV: fix double locking due to incorrect backport
+    - net: qrtr: Fix port ID for control messages
+    - net: bridge: Fix a warning when del bridge sysfs
+    - Xen/x86: don't bail early from clear_foreign_p2m_mapping()
+    - Xen/x86: also check kernel mapping in set_foreign_p2m_mapping()
+    - Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages()
+    - Xen/gntdev: correct error checking in gntdev_map_grant_pages()
+    - xen/arm: don't ignore return errors from set_phys_to_machine
+    - xen-blkback: don't "handle" error by BUG()
+    - xen-netback: don't "handle" error by BUG()
+    - xen-scsiback: don't "handle" error by BUG()
+    - xen-blkback: fix error handling in xen_blkbk_map()
+    - media: pwc: Use correct device for DMA
+    - btrfs: fix backport of 2175bf57dc952 in 5.4.95
+    - Linux 5.4.100
+  * Focal update: v5.4.99 upstream stable release (LP: #1918167)
+    - gpio: ep93xx: fix BUG_ON port F usage
+    - gpio: ep93xx: Fix single irqchip with multi gpiochips
+    - tracing: Do not count ftrace events in top level enable output
+    - tracing: Check length before giving out the filter buffer
+    - arm/xen: Don't probe xenbus as part of an early initcall
+    - cgroup: fix psi monitor for root cgroup
+    - arm64: dts: rockchip: Fix PCIe DT properties on rk3399
+    - arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
+    - ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
+    - platform/x86: hp-wmi: Disable tablet-mode reporting by default
+    - ovl: perform vfs_getxattr() with mounter creds
+    - cap: fix conversions on getxattr
+    - ovl: skip getxattr of security labels
+    - nvme-pci: ignore the subsysem NQN on Phison E16
+    - drm/amd/display: Add more Clock Sources to DCN2.1
+    - drm/amd/display: Fix dc_sink kref count in emulated_link_detect
+    - drm/amd/display: Free atomic state after drm_atomic_commit
+    - drm/amd/display: Decrement refcount of dc_sink before reassignment
+    - riscv: virt_addr_valid must check the address belongs to linear mapping
+    - bfq-iosched: Revert "bfq: Fix computation of shallow depth"
+    - ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
+    - ARM: ensure the signal page contains defined contents
+    - ARM: kexec: fix oops after TLB are invalidated
+    - vmlinux.lds.h: Create section for protection against instrumentation
+    - lkdtm: don't move ctors to .rodata
+    - mt76: dma: fix a possible memory leak in mt76_add_fragment()
+    - drm/vc4: hvs: Fix buffer overflow with the dlist handling
+    - bpf: Check for integer overflow when using roundup_pow_of_two()
+    - netfilter: xt_recent: Fix attempt to update deleted entry
+    - netfilter: nftables: fix possible UAF over chains from packet path in netns
+    - netfilter: flowtable: fix tcp and udp header checksum update
+    - xen/netback: avoid race in xenvif_rx_ring_slots_available()
+    - net: enetc: initialize the RFS and RSS memories
+    - selftests: txtimestamp: fix compilation issue
+    - net: stmmac: set TxQ mode back to DCB after disabling CBS
+    - ibmvnic: Clear failover_pending if unable to schedule
+    - netfilter: conntrack: skip identical origin tuple in same zone only
+    - x86/build: Disable CET instrumentation in the kernel for 32-bit too
+    - net: hns3: add a check for queue_id in hclge_reset_vf_queue()
+    - firmware_loader: align .builtin_fw to 8
+    - drm/sun4i: tcon: set sync polarity for tcon1 channel
+    - drm/sun4i: Fix H6 HDMI PHY configuration
+    - drm/sun4i: dw-hdmi: Fix max. frequency for H6
+    - clk: sunxi-ng: mp: fix parent rate change flag check
+    - i2c: stm32f7: fix configuration of the digital filter
+    - h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
+    - usb: dwc3: ulpi: fix checkpatch warning
+    - usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
+    - rxrpc: Fix clearance of Tx/Rx ring when releasing a call
+    - udp: fix skb_copy_and_csum_datagram with odd segment sizes
+    - net: dsa: call teardown method on probe failure
+    - net: gro: do not keep too many GRO packets in napi->rx_list
+    - net: fix iteration for sctp transport seq_files
+    - net/vmw_vsock: improve locking in vsock_connect_timeout()
+    - net: watchdog: hold device global xmit lock during tx disable
+    - vsock/virtio: update credit only if socket is not closed
+    - vsock: fix locking in vsock_shutdown()
+    - net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
+    - net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
+    - ovl: expand warning in ovl_d_real()
+    - Linux 5.4.99
+  * Focal update: v5.4.98 upstream stable release (LP: #1918158)
+    - tracing/kprobe: Fix to support kretprobe events on unloaded modules
+    - af_key: relax availability checks for skb size calculation
+    - regulator: core: avoid regulator_resolve_supply() race condition
+    - mac80211: 160MHz with extended NSS BW in CSA
+    - ASoC: Intel: Skylake: Zero snd_ctl_elem_value
+    - chtls: Fix potential resource leak
+    - pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
+    - ASoC: ak4458: correct reset polarity
+    - iwlwifi: mvm: skip power command when unbinding vif during CSA
+    - iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
+    - iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
+    - iwlwifi: pcie: fix context info memory leak
+    - iwlwifi: mvm: invalidate IDs of internal stations at mvm start
+    - iwlwifi: mvm: guard against device removal in reprobe
+    - SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
+    - SUNRPC: Handle 0 length opaque XDR object data properly
+    - i2c: mediatek: Move suspend and resume handling to NOIRQ phase
+    - blk-cgroup: Use cond_resched() when destroy blkgs
+    - regulator: Fix lockdep warning resolving supplies
+    - Fix unsynchronized access to sev members through svm_register_enc_region
+    - squashfs: add more sanity checks in id lookup
+    - squashfs: add more sanity checks in inode lookup
+    - squashfs: add more sanity checks in xattr id lookup
+    - Linux 5.4.98
+  * Enforce CONFIG_DRM_BOCHS=m (LP: #1916290)
+    - [Config] Enforce CONFIG_DRM_BOCHS=m
+  * powerpc/eeh-basic.sh in kselftest make P8 node stopped working
+    (LP: #1916468)
+    - selftests/eeh: Skip ahci adapters
+  * Focal update: v5.4.97 upstream stable release (LP: #1916066)
+    - USB: serial: cp210x: add pid/vid for WSDA-200-USB
+    - USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
+    - USB: serial: option: Adding support for Cinterion MV31
+    - arm64: dts: qcom: c630: keep both touchpad devices enabled
+    - arm64: dts: amlogic: meson-g12: Set FL-adj property value
+    - arm64: dts: rockchip: fix vopl iommu irq on px30
+    - bpf, cgroup: Fix optlen WARN_ON_ONCE toctou
+    - bpf, cgroup: Fix problematic bounds check
+    - um: virtio: free vu_dev only with the contained struct device
+    - rxrpc: Fix deadlock around release of dst cached on udp tunnel
+    - arm64: dts: ls1046a: fix dcfg address range
+    - igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr
+    - igc: check return value of ret_val in igc_config_fc_after_link_up
+    - i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues"
+    - net/mlx5: Fix leak upon failure of rule creation
+    - net: lapb: Copy the skb before sending a packet
+    - net: mvpp2: TCAM entry enable should be written after SRAM data
+    - r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set
+    - ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode
+    - nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs
+    - memblock: do not start bottom-up allocations with kernel_end
+    - USB: gadget: legacy: fix an error code in eth_bind()
+    - USB: usblp: don't call usb_set_interface if there's a single alt
+    - usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
+    - usb: dwc2: Fix endpoint direction check in ep_from_windex
+    - usb: dwc3: fix clock issue during resume in OTG mode
+    - usb: xhci-mtk: fix unreleased bandwidth data
+    - usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints
+    - usb: xhci-mtk: break loop when find the endpoint to drop
+    - usb: host: xhci-plat: add priv quirk for skip PHY initialization
+    - ovl: fix dentry leak in ovl_get_redirect
+    - mac80211: fix station rate table updates on assoc
+    - fgraph: Initialize tracing_graph_pause at task creation
+    - kretprobe: Avoid re-registration of the same kretprobe earlier
+    - libnvdimm/dimm: Avoid race between probe and available_slots_show()
+    - genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set
+    - xhci: fix bounce buffer usage for non-sg list case
+    - cifs: report error instead of invalid when revalidating a dentry fails
+    - smb3: Fix out-of-bounds bug in SMB2_negotiate()
+    - smb3: fix crediting for compounding when only one request in flight
+    - mmc: core: Limit retries when analyse of SDIO tuples fails
+    - drm/amd/display: Revert "Fix EDID parsing after resume from suspend"
+    - nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs
+    - KVM: SVM: Treat SVM as unsupported when running as an SEV guest
+    - KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode
+    - ARM: footbridge: fix dc21285 PCI configuration accessors
+    - mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
+    - mm: hugetlb: fix a race between freeing and dissolving the page
+    - mm: hugetlb: fix a race between isolating and freeing page
+    - mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
+    - mm, compaction: move high_pfn to the for loop scope
+    - mm: thp: fix MADV_REMOVE deadlock on shmem THP
+    - x86/build: Disable CET instrumentation in the kernel
+    - x86/apic: Add extra serialization for non-serializing MSRs
+    - iwlwifi: mvm: don't send RFH_QUEUE_CONFIG_CMD with no queues
+    - Input: xpad - sync supported devices with fork on GitHub
+    - iommu/vt-d: Do not use flush-queue when caching-mode is on
+    - md: Set prev_flush_start and flush_bio in an atomic way
+    - neighbour: Prevent a dead entry from updating gc_list
+    - net: ip_tunnel: fix mtu calculation
+    - net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
+    - net: sched: replaced invalid qdisc tree flush helper in qdisc_replace
+    - usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720
+    - Linux 5.4.97
+  * Focal update: v5.4.96 upstream stable release (LP: #1916061)
+    - net: dsa: bcm_sf2: put device node before return
+    - net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
+    - ibmvnic: Ensure that CRQ entry read are correctly ordered
+    - Revert "Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT""
+    - ACPI: thermal: Do not call acpi_thermal_check() directly
+    - arm64: Fix kernel address detection of __is_lm_address()
+    - arm64: Do not pass tagged addresses to __is_lm_address()
+    - tcp: make TCP_USER_TIMEOUT accurate for zero window probes
+    - btrfs: backref, only collect file extent items matching backref offset
+    - btrfs: backref, don't add refs from shared block when resolving normal
+      backref
+    - btrfs: backref, only search backref entries from leaves of the same root
+    - btrfs: backref, use correct count to resolve normal data refs
+    - net_sched: gen_estimator: support large ewma log
+    - phy: cpcap-usb: Fix warning for missing regulator_disable
+    - platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on
+      Estar Beauty HD tablet
+    - platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352
+    - x86: __always_inline __{rd,wr}msr()
+    - scsi: scsi_transport_srp: Don't block target in failfast state
+    - scsi: libfc: Avoid invoking response handler twice if ep is already
+      completed
+    - scsi: fnic: Fix memleak in vnic_dev_init_devcmd2
+    - ASoC: SOF: Intel: hda: Resume codec to do jack detection
+    - mac80211: fix fast-rx encryption check
+    - scsi: ibmvfc: Set default timeout to avoid crash during migration
+    - udf: fix the problem that the disc content is not displayed
+    - nvme: check the PRINFO bit before deciding the host buffer length
+    - selftests/powerpc: Only test lwm/stmw on big endian
+    - drm/amd/display: Update dram_clock_change_latency for DCN2.1
+    - drm/amd/display: Change function decide_dp_link_settings to avoid infinite
+      looping
+    - objtool: Don't fail on missing symbol table
+    - kthread: Extract KTHREAD_IS_PER_CPU
+    - workqueue: Restrict affinity change to rescuer
+    - Linux 5.4.96
+  * Focal update: v5.4.95 upstream stable release (LP: #1916056)
+    - ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition
+    - IPv6: reply ICMP error if the first fragment don't include all headers
+    - nbd: freeze the queue while we're adding connections
+    - ACPI: sysfs: Prefer "compatible" modalias
+    - kernel: kexec: remove the lock operation of system_transition_mutex
+    - ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
+    - ALSA: hda/via: Apply the workaround generically for Clevo machines
+    - media: rc: ensure that uevent can be read directly after rc device register
+    - ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming
+    - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
+    - net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family
+    - s390/vfio-ap: No need to disable IRQ after queue reset
+    - PM: hibernate: flush swap writer after marking
+    - drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs
+    - drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[]
+    - btrfs: fix possible free space tree corruption with online conversion
+    - KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in
+      intel_arch_events[]
+    - KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh()
+    - KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration
+    - KVM: x86: get smi pending status correctly
+    - KVM: Forbid the use of tagged userspace addresses for memslots
+    - xen: Fix XenStore initialisation for XS_LOCAL
+    - leds: trigger: fix potential deadlock with libata
+    - arm64: dts: broadcom: Fix USB DMA address translation for Stingray
+    - mt7601u: fix kernel crash unplugging the device
+    - mt7601u: fix rx buffer refcounting
+    - drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices
+    - drm/i915: Check for all subplatform bits
+    - tee: optee: replace might_sleep with cond_resched
+    - xen-blkfront: allow discard-* nodes to be optional
+    - ARM: imx: build suspend-imx6.S with arm instruction set
+    - netfilter: nft_dynset: add timeout extension to template
+    - xfrm: Fix oops in xfrm_replay_advance_bmp
+    - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
+    - selftests: xfrm: fix test return value override issue in xfrm_policy.sh
+    - xfrm: Fix wraparound in xfrm_policy_addr_delta()
+    - arm64: dts: ls1028a: fix the offset of the reset register
+    - ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status
+    - firmware: imx: select SOC_BUS to fix firmware build
+    - RDMA/cxgb4: Fix the reported max_recv_sge value
+    - ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
+    - pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()
+    - iwlwifi: pcie: use jiffies for memory read spin time limit
+    - iwlwifi: pcie: reschedule in long-running memory reads
+    - mac80211: pause TX while changing interface type
+    - i40e: acquire VSI pointer only after VF is initialized
+    - igc: fix link speed advertising
+    - net/mlx5: Fix memory leak on flow table creation error flow
+    - net/mlx5e: E-switch, Fix rate calculation for overflow
+    - net/mlx5e: Reduce tc unsupported key print level
+    - can: dev: prevent potential information leak in can_fill_info()
+    - nvme-multipath: Early exit if no path is available
+    - selftests: forwarding: Specify interface when invoking mausezahn
+    - iommu/vt-d: Gracefully handle DMAR units with no supported address widths
+    - iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built
+    - rxrpc: Fix memory leak in rxrpc_lookup_local
+    - NFC: fix resource leak when target index is invalid
+    - NFC: fix possible resource leak
+    - ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
+    - team: protect features update by RCU to avoid deadlock
+    - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
+    - Linux 5.4.95
+
+ -- Ian May <ian.may@canonical.com>  Fri, 26 Mar 2021 13:51:55 -0500
+
+linux-gkeop (5.4.0-1012.13) focal; urgency=medium
+
+  [ Ubuntu: 5.4.0-70.78 ]
+
+  * CVE-2020-27170
+    - bpf: Fix off-by-one for area size in creating mask to left
+  * CVE-2020-27171
+    - bpf: Prohibit alu ops for pointer types not defining ptr_limit
+  * binary assembly failures with CONFIG_MODVERSIONS present (LP: #1919315)
+    - [Packaging] quiet (nomially) benign errors in BUILD script
+
+  [ Ubuntu: 5.4.0-69.77 ]
+
+  * CVE-2021-3444
+    - bpf: Fix 32 bit src register truncation on div/mod
+    - bpf: Fix truncation handling for mod32 dst reg wrt zero
+  * CVE-2021-27365
+    - scsi: iscsi: Verify lengths on passthrough PDUs
+    - sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
+    - scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE
+  * CVE-2021-27363 // CVE-2021-27364
+    - scsi: iscsi: Restrict sessions and handles to admin capabilities
+
+ -- Ian May <ian.may@canonical.com>  Fri, 19 Mar 2021 17:57:29 -0500
+
+linux-gkeop (5.4.0-1011.12) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1011.12 -proposed tracker (LP: #1916158)
+
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - gkeop: [Config] enable CONFIG_MODVERSIONS=y
+    - gkeop: [Packaging] build canonical-certs.pem from branch/arch certs
+    - gkeop: [Config] Allow ASM_MODVERSIONS
+
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - gkeop: [Config] updateconfigs for USB_BDC_PCI
+
+  [ Ubuntu: 5.4.0-67.75 ]
+
+  * focal/linux: 5.4.0-67.75 -proposed tracker (LP: #1916169)
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - [Config] enable CONFIG_MODVERSIONS=y
+    - [Packaging] build canonical-certs.pem from branch/arch certs
+    - [Config] add Canonical Livepatch Service key to SYSTEM_TRUSTED_KEYS
+    - [Config] add ubuntu-drivers key to SYSTEM_TRUSTED_KEYS
+    - [Config] Allow ASM_MODVERSIONS and MODULE_REL_CRCS
+  * geneve overlay network on vlan interface broken with offload enabled
+    (LP: #1914447)
+    - net/mlx5e: Fix SWP offsets when vlan inserted by driver
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Fix ODM support in actual build
+  * devlink: don't do reporter recovery if the state is healthy (LP: #1915403)
+    - devlink: don't do reporter recovery if the state is healthy
+  * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver
+    (LP: #1914543)
+    - HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID
+  * Focal update: v5.4.94 upstream stable release (LP: #1915200)
+    - gpio: mvebu: fix pwm .get_state period calculation
+    - futex: Ensure the correct return value from futex_lock_pi()
+    - futex: Replace pointless printk in fixup_owner()
+    - futex: Provide and use pi_state_update_owner()
+    - rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
+    - futex: Use pi_state_update_owner() in put_pi_state()
+    - futex: Simplify fixup_pi_state_owner()
+    - futex: Handle faults correctly for PI futexes
+    - HID: wacom: Correct NULL dereference on AES pen proximity
+    - io_uring: Fix current->fs handling in io_sq_wq_submit_work()
+    - tracing: Fix race in trace_open and buffer resize call
+    - arm64: mm: use single quantity to represent the PA to VA translation
+    - SMB3.1.1: do not log warning message if server doesn't populate salt
+    - tools: Factor HOSTCC, HOSTLD, HOSTAR definitions
+    - dm integrity: conditionally disable "recalculate" feature
+    - writeback: Drop I_DIRTY_TIME_EXPIRE
+    - fs: fix lazytime expiration handling in __writeback_single_inode()
+    - Linux 5.4.94
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - i2c: bpmp-tegra: Ignore unknown I2C_M flags
+    - platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634
+    - ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()
+    - ALSA: hda/via: Add minimum mute flag
+    - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
+    - btrfs: don't get an EINTR during drop_snapshot for reloc
+    - btrfs: fix lockdep splat in btrfs_recover_relocation
+    - btrfs: don't clear ret in btrfs_start_dirty_block_groups
+    - btrfs: send: fix invalid clone operations when cloning from the same file
+      and root
+    - mmc: core: don't initialize block size from ext_csd if not present
+    - mmc: sdhci-xenon: fix 1.8v regulator stabilization
+    - dm: avoid filesystem lookup in dm_get_dev_t()
+    - dm integrity: fix a crash if "recalculate" used without "internal_hash"
+    - drm/atomic: put state on error path
+    - drm/syncobj: Fix use-after-free
+    - drm/i915/gt: Prevent use of engine->wa_ctx after error
+    - ASoC: Intel: haswell: Add missing pm_ops
+    - dm integrity: select CRYPTO_SKCIPHER
+    - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
+    - scsi: qedi: Correct max length of CHAP secret
+    - scsi: sd: Suppress spurious errors when WRITE SAME is being disabled
+    - riscv: Fix kernel time_init()
+    - riscv: Fix sifive serial driver
+    - HID: logitech-dj: add the G602 receiver
+    - HID: Ignore battery for Elan touchscreen on ASUS UX550
+    - clk: tegra30: Add hda clock default rates to clock driver
+    - arm64: make atomic helpers __always_inline
+    - xen: Fix event channel callback via INTX/GSI
+    - x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery
+    - dts: phy: fix missing mdio device and probe failure of vsc8541-01 device
+    - riscv: defconfig: enable gpio support for HiFive Unleashed
+    - drm/amdgpu/psp: fix psp gfx ctrl cmds
+    - drm/amd/display: Fix to be able to stop crc calculation
+    - drm/nouveau/bios: fix issue shadowing expansion ROMs
+    - drm/nouveau/privring: ack interrupts the same way as RM
+    - drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields
+    - drm/nouveau/mmu: fix vram heap sizing
+    - drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0
+    - powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S
+    - pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting
+    - scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression
+    - powerpc: Fix alignment bug within the init sections
+    - i2c: octeon: check correct size of maximum RECV_LEN packet
+    - platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-
+      list
+    - selftests: net: fib_tests: remove duplicate log test
+    - can: dev: can_restart: fix use after free bug
+    - can: vxcan: vxcan_xmit: fix use after free bug
+    - can: peak_usb: fix use after free bugs
+    - iio: ad5504: Fix setting power-down state
+    - cifs: do not fail __smb_send_rqst if non-fatal signals are pending
+    - irqchip/mips-cpu: Set IPI domain parent chip
+    - x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state
+    - x86/topology: Make __max_die_per_package available unconditionally
+    - x86/mmx: Use KFPU_387 for MMX string operations
+    - intel_th: pci: Add Alder Lake-P support
+    - stm class: Fix module init return on allocation failure
+    - serial: mvebu-uart: fix tx lost characters at power off
+    - ehci: fix EHCI host controller initialization sequence
+    - USB: ehci: fix an interrupt calltrace error
+    - usb: gadget: aspeed: fix stop dma register setting.
+    - usb: udc: core: Use lock when write to soft_connect
+    - [Config] updateconfigs for USB_BDC_PCI
+    - usb: bdc: Make bdc pci driver depend on BROKEN
+    - xhci: make sure TRB is fully written before giving it to the controller
+    - xhci: tegra: Delay for disabling LFPS detector
+    - driver core: Extend device_is_dependent()
+    - pinctrl: ingenic: Fix JZ4760 support
+    - x86/cpu/amd: Set __max_die_per_package on AMD
+    - netfilter: rpfilter: mask ecn bits before fib lookup
+    - sh: dma: fix kconfig dependency for G2_DMA
+    - net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext
+    - sh_eth: Fix power down vs. is_opened flag ordering
+    - lightnvm: fix memory leak when submit fails
+    - skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too
+    - kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow
+    - kasan: fix incorrect arguments passing in kasan_add_zero_shadow
+    - udp: mask TOS bits in udp_v4_early_demux()
+    - ipv6: create multicast route with RTPROT_KERNEL
+    - net_sched: avoid shift-out-of-bounds in tcindex_set_parms()
+    - net_sched: reject silly cell_log in qdisc_get_rtab()
+    - ipv6: set multicast flag on the multicast route
+    - net: mscc: ocelot: allow offloading of bridge on top of LAG
+    - net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled
+    - net: dsa: b53: fix an off by one in checking "vlan->vid"
+    - tcp: do not mess with cloned skbs in tcp_add_backlog()
+    - tcp: fix TCP_USER_TIMEOUT with zero window
+    - Linux 5.4.93
+  * High load from process irq/65-i2c-INT3  - kernel module tps6598x
+    (LP: #1883511) // Focal update: v5.4.93 upstream stable release
+    (LP: #1915195)
+    - platform/x86: i2c-multi-instantiate: Don't create platform device for
+      INT3515 ACPI nodes
+  * Focal update: v5.4.92 upstream stable release (LP: #1915186)
+    - usb: ohci: Make distrust_firmware param default to false
+    - compiler.h: Raise minimum version of GCC to 5.1 for arm64
+    - xen/privcmd: allow fetching resource sizes
+    - elfcore: fix building with clang
+    - scsi: lpfc: Make lpfc_defer_acc_rsp static
+    - spi: npcm-fiu: simplify the return expression of npcm_fiu_probe()
+    - spi: npcm-fiu: Disable clock in probe error path
+    - nfsd4: readdirplus shouldn't return parent of export
+    - bpf: Don't leak memory in bpf getsockopt when optlen == 0
+    - bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback
+    - udp: Prevent reuseport_select_sock from reading uninitialized socks
+    - netxen_nic: fix MSI/MSI-x interrupts
+    - net: introduce skb_list_walk_safe for skb segment walking
+    - net: skbuff: disambiguate argument and member for skb_list_walk_safe helper
+    - net: ipv6: Validate GSO SKB before finish IPv6 processing
+    - mlxsw: core: Add validation of transceiver temperature thresholds
+    - mlxsw: core: Increase critical threshold for ASIC thermal zone
+    - net: mvpp2: Remove Pause and Asym_Pause support
+    - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
+    - esp: avoid unneeded kmap_atomic call
+    - net: dcb: Validate netlink message in DCB handler
+    - net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
+    - rxrpc: Call state should be read with READ_ONCE() under some circumstances
+    - net: stmmac: Fixed mtu channged by cache aligned
+    - net: sit: unregister_netdevice on newlink's error path
+    - net: avoid 32 x truesize under-estimation for tiny skbs
+    - rxrpc: Fix handling of an unsupported token type in rxrpc_read()
+    - net, sctp, filter: remap copy_from_user failure error
+    - tipc: fix NULL deref in tipc_link_xmit()
+    - mac80211: do not drop tx nulldata packets on encrypted links
+    - mac80211: check if atf has been disabled in __ieee80211_schedule_txq
+    - spi: cadence: cache reference clock rate during probe
+    - Linux 5.4.92
+  * intel-hid is not loaded on new Intel platform (LP: #1907160)
+    - platform/x86: intel-hid: Add Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: Move MODULE_DEVICE_TABLE() closer to the table
+    - platform/x86: intel-hid: add Rocket Lake ACPI device ID
+  * Support Advantech UNO-420 platform (LP: #1902672)
+    - ODM: MAINTAINERS: Add Advantech AHC1EC0 embedded controller entry
+    - ODM: mfd: ahc1ec0: Add Advantech EC include file used by dt-bindings
+    - ODM: dt-bindings: mfd: ahc1ec0.yaml: Add Advantech embedded controller -
+      AHC1EC0
+    - ODM: mfd: ahc1ec0: Add support for Advantech embedded controller
+    - ODM: hwmon: ahc1ec0-hwmon: Add sub-device hwmon for Advantech embedded
+      controller
+    - ODM: watchdog: ahc1ec0-wdt: Add sub-device watchdog for Advantech embedded
+      controller
+    - ODM: [Config] update config for Advantech devices
+  * Remove scary stack trace from Realtek WiFi driver (LP: #1913263)
+    - rtw88: reduce the log level for failure of tx report
+  * Focal update: v5.4.91 upstream stable release (LP: #1914654)
+    - kbuild: enforce -Werror=return-type
+    - btrfs: prevent NULL pointer dereference in extent_io_tree_panic
+    - ASoC: dapm: remove widget from dirty list on free
+    - x86/hyperv: check cpu mask after interrupt has been disabled
+    - tracing/kprobes: Do the notrace functions check without kprobes on ftrace
+    - [Config] update annotations for KPROBE_EVENTS_ON_NOTRACE
+    - mips: fix Section mismatch in reference
+    - mips: lib: uncached: fix non-standard usage of variable 'sp'
+    - MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
+    - MIPS: relocatable: fix possible boot hangup with KASLR enabled
+    - RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
+    - ACPI: scan: Harden acpi_device_add() against device ID overflows
+    - mm/hugetlb: fix potential missing huge page size info
+    - dm raid: fix discard limits for raid1
+    - dm snapshot: flush merged data before committing metadata
+    - dm integrity: fix the maximum number of arguments
+    - r8152: Add Lenovo Powered USB-C Travel Hub
+    - btrfs: tree-checker: check if chunk item end overflows
+    - drm/i915/backlight: fix CPU mode backlight takeover on LPT
+    - ext4: fix bug for rename with RENAME_WHITEOUT
+    - ext4: don't leak old mountpoint samples
+    - cifs: fix interrupted close commands
+    - dm integrity: fix flush with external metadata device
+    - ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
+    - ARC: build: add uImage.lzma to the top-level target
+    - ARC: build: add boot_targets to PHONY
+    - ARC: build: move symlink creation to arch/arc/Makefile to avoid race
+    - netfilter: ipset: fixes possible oops in mtype_resize
+    - btrfs: fix transaction leak and crash after RO remount caused by qgroup
+      rescan
+    - regulator: bd718x7: Add enable times
+    - ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
+    - habanalabs: register to pci shutdown callback
+    - habanalabs: Fix memleak in hl_device_reset
+    - hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
+    - lib/raid6: Let $(UNROLL) rules work with macOS userland
+    - bfq: Fix computation of shallow depth
+    - arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC
+    - misdn: dsp: select CONFIG_BITREVERSE
+    - net: ethernet: fs_enet: Add missing MODULE_LICENSE
+    - nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
+    - nvmet-rdma: Fix list_del corruption on queue establishment failure
+    - drm/amdgpu: fix a GPU hang issue when remove device
+    - usb: typec: Fix copy paste error for NVIDIA alt-mode description
+    - ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
+    - drm/msm: Call msm_init_vram before binding the gpu
+    - ARM: picoxcell: fix missing interrupt-parent properties
+    - perf intel-pt: Fix 'CPU too large' error
+    - dump_common_audit_data(): fix racy accesses to ->d_name
+    - ASoC: meson: axg-tdm-interface: fix loopback
+    - ASoC: meson: axg-tdmin: fix axg skew offset
+    - ASoC: Intel: fix error code cnl_set_dsp_D0()
+    - nvme-tcp: fix possible data corruption with bio merges
+    - NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
+    - pNFS: We want return-on-close to complete when evicting the inode
+    - pNFS: Mark layout for return if return-on-close was not sent
+    - pNFS: Stricter ordering of layoutget and layoutreturn
+    - NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
+    - NFS: nfs_igrab_and_active must first reference the superblock
+    - ext4: fix superblock checksum failure when setting password salt
+    - RDMA/restrack: Don't treat as an error allocation ID wrapping
+    - RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
+    - bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
+    - RDMA/mlx5: Fix wrong free of blue flame register on error
+    - IB/mlx5: Fix error unwinding when set_has_smi_cap fails
+    - drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is
+      no reset-deassert MIPI-sequence
+    - mm, slub: consider rest of partial list if acquire_slab() fails
+    - iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
+    - net: sunrpc: interpret the return value of kstrtou32 correctly
+    - dm: eliminate potential source of excessive kernel log noise
+    - ALSA: fireface: Fix integer overflow in transmit_midi_msg()
+    - ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
+    - netfilter: conntrack: fix reading nf_conntrack_buckets
+    - netfilter: nf_nat: Fix memleak in nf_nat_init
+    - netfilter: nft_compat: remove flush counter optimization
+    - Linux 5.4.91
+  * Focal update: v5.4.90 upstream stable release (LP: #1913487)
+    - x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_*
+    - vfio iommu: Add dma available capability
+    - net: cdc_ncm: correct overhead in delayed_ndp_size
+    - net: hns3: fix the number of queues actually used by ARQ
+    - net: hns3: fix a phy loopback fail issue
+    - net: stmmac: dwmac-sun8i: Balance internal PHY resource references
+    - net: stmmac: dwmac-sun8i: Balance internal PHY power
+    - net: vlan: avoid leaks on register_vlan_dev() failures
+    - net/sonic: Fix some resource leaks in error handling paths
+    - net: ipv6: fib: flush exceptions when purging route
+    - tools: selftests: add test for changing routes with PTMU exceptions
+    - net: fix pmtu check in nopmtudisc mode
+    - net: ip: always refragment ip defragmented packets
+    - octeontx2-af: fix memory leak of lmac and lmac->name
+    - nexthop: Fix off-by-one error in error path
+    - nexthop: Unlink nexthop group entry in error path
+    - s390/qeth: fix L2 header access in qeth_l3_osa_features_check()
+    - net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE
+    - net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address
+    - net/mlx5e: ethtool, Fix restriction of autoneg with 56G
+    - chtls: Fix hardware tid leak
+    - chtls: Remove invalid set_tcb call
+    - chtls: Fix panic when route to peer not configured
+    - chtls: Replace skb_dequeue with skb_peek
+    - chtls: Added a check to avoid NULL pointer dereference
+    - chtls: Fix chtls resources release sequence
+    - x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR
+    - x86/resctrl: Don't move a task to the same resource group
+    - exfat: Month timestamp metadata accidentally incremented
+    - vmlinux.lds.h: Add PGO and AutoFDO input sections
+    - iio: imu: st_lsm6dsx: fix edge-trigger interrupts
+    - HID: wacom: Fix memory leakage caused by kfifo_alloc
+    - ARM: OMAP2+: omap_device: fix idling of devices during probe
+    - i2c: sprd: use a specific timeout to avoid system hang up issue
+    - dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk()
+    - can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver
+    - can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop()
+    - can: kvaser_pciefd: select CONFIG_CRC32
+    - cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()
+    - spi: stm32: FIFO threshold level - fix align packet size
+    - i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated
+    - dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling
+      path of the probe function
+    - dmaengine: xilinx_dma: check dma_async_device_register return value
+    - dmaengine: xilinx_dma: fix incompatible param warning in _child_probe()
+    - dmaengine: xilinx_dma: fix mixed_enum_type coverity warning
+    - qed: select CONFIG_CRC32
+    - wil6210: select CONFIG_CRC32
+    - block: rsxx: select CONFIG_CRC32
+    - lightnvm: select CONFIG_CRC32
+    - iommu/intel: Fix memleak in intel_irq_remapping_alloc
+    - bpftool: Fix compilation failure for net.o with older glibc
+    - net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
+    - net/mlx5e: Fix two double free cases
+    - regmap: debugfs: Fix a memory leak when calling regmap_attach_dev
+    - wan: ds26522: select CONFIG_BITREVERSE
+    - regulator: qcom-rpmh-regulator: correct hfsmps515 definition
+    - net: mvpp2: disable force link UP during port init procedure
+    - KVM: arm64: Don't access PMCR_EL0 when no PMU is available
+    - block: fix use-after-free in disk_part_iter_next
+    - net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed
+      packet
+    - regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()
+    - Linux 5.4.90
+  * Focal update: v5.4.89 upstream stable release (LP: #1913486)
+    - workqueue: Kick a worker based on the actual activation of delayed works
+    - scsi: ufs: Fix wrong print message in dev_err()
+    - scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk
+      ->poweroff()
+    - scsi: ide: Do not set the RQF_PREEMPT flag for sense requests
+    - scsi: scsi_transport_spi: Set RQF_PM for domain validation commands
+    - lib/genalloc: fix the overflow when size is too big
+    - depmod: handle the case of /sbin/depmod without /sbin in PATH
+    - proc: change ->nlink under proc_subdir_lock
+    - proc: fix lookup in /proc/net subdirectories after setns(2)
+    - i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs
+    - iavf: fix double-release of rtnl_lock
+    - net: mvpp2: Add TCAM entry to drop flow control pause frames
+    - net: mvpp2: prs: fix PPPoE with ipv6 packet parse
+    - net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE
+    - ethernet: ucc_geth: fix use-after-free in ucc_geth_remove()
+    - ethernet: ucc_geth: set dev->max_mtu to 1518
+    - atm: idt77252: call pci_disable_device() on error path
+    - net: mvpp2: Fix GoP port 3 Networking Complex Control configurations
+    - ibmvnic: continue fatal error reset after passive init
+    - net: ethernet: mvneta: Fix error handling in mvneta_probe
+    - virtio_net: Fix recursive call to cpus_read_lock()
+    - net/ncsi: Use real net-device for response handler
+    - net: ethernet: Fix memleak in ethoc_probe
+    - net-sysfs: take the rtnl lock when storing xps_cpus
+    - net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
+    - net-sysfs: take the rtnl lock when storing xps_rxqs
+    - net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc
+    - net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered
+    - tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
+    - net: mvpp2: fix pkt coalescing int-threshold configuration
+    - ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()
+    - net: sched: prevent invalid Scell_log shift count
+    - net: hns: fix return value check in __lb_other_process()
+    - erspan: fix version 1 check in gre_parse_header()
+    - net: hdlc_ppp: Fix issues when mod_timer is called while timer is running
+    - r8169: work around power-saving bug on some chip versions
+    - net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs
+    - net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access
+    - CDC-NCM: remove "connected" log message
+    - net: usb: qmi_wwan: add Quectel EM160R-GL
+    - vhost_net: fix ubuf refcount incorrectly when sendmsg fails
+    - ionic: account for vlan tag len in rx buffer len
+    - net/sched: sch_taprio: ensure to reset/destroy all child qdiscs
+    - kbuild: don't hardcode depmod path
+    - Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close
+    - video: hyperv_fb: Fix the mmap() regression for v5.4.y and older
+    - crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
+    - crypto: asym_tpm: correct zero out potential secrets
+    - powerpc: Handle .text.{hot,unlikely}.* in linker script
+    - staging: mt7621-dma: Fix a resource leak in an error handling path
+    - usb: gadget: enable super speed plus
+    - USB: cdc-acm: blacklist another IR Droid device
+    - USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().
+    - usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion
+    - usb: chipidea: ci_hdrc_imx: add missing put_device() call in
+      usbmisc_get_init_data()
+    - USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set
+    - usb: usbip: vhci_hcd: protect shift size
+    - usb: uas: Add PNY USB Portable SSD to unusual_uas
+    - USB: serial: iuu_phoenix: fix DMA from stack
+    - USB: serial: option: add LongSung M5710 module support
+    - USB: serial: option: add Quectel EM160R-GL
+    - USB: yurex: fix control-URB timeout handling
+    - USB: usblp: fix DMA to stack
+    - ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
+    - usb: gadget: select CONFIG_CRC32
+    - usb: gadget: f_uac2: reset wMaxPacketSize
+    - usb: gadget: function: printer: Fix a memory leak for interface descriptor
+    - usb: gadget: u_ether: Fix MTU size mismatch with RX packet size
+    - USB: gadget: legacy: fix return error code in acm_ms_bind()
+    - usb: gadget: Fix spinlock lockup on usb_function_deactivate
+    - usb: gadget: configfs: Preserve function ordering after bind failure
+    - usb: gadget: configfs: Fix use-after-free issue with udc_name
+    - USB: serial: keyspan_pda: remove unused variable
+    - x86/mm: Fix leak of pmd ptlock
+    - kvm: check tlbs_dirty directly
+    - ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+    - ALSA: hda/conexant: add a new hda codec CX11970
+    - ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
+    - ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256.
+    - btrfs: send: fix wrong file path when there is an inode with a pending rmdir
+    - Revert "device property: Keep secondary firmware node secondary by type"
+    - dmabuf: fix use-after-free of dmabuf's file->f_inode
+    - drm/i915: clear the gpu reloc batch
+    - netfilter: x_tables: Update remaining dereference to RCU
+    - netfilter: ipset: fix shift-out-of-bounds in htable_bits()
+    - netfilter: xt_RATEEST: reject non-null terminated string from userspace
+    - netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
+    - x86/mtrr: Correct the range check before performing MTRR type lookups
+    - KVM: x86: fix shift out of bounds reported by UBSAN
+    - Linux 5.4.89
+  * Focal update: v5.4.88 upstream stable release (LP: #1913223)
+    - Revert "drm/amd/display: Fix memory leaks in S3 resume"
+    - Revert "mtd: spinand: Fix OOB read"
+    - dmaengine: at_hdmac: Substitute kzalloc with kmalloc
+    - dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()
+    - dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate()
+    - kdev_t: always inline major/minor helper functions
+    - iio:imu:bmi160: Fix alignment and data leak issues
+    - fuse: fix bad inode
+    - perf: Break deadlock involving exec_update_mutex
+    - rwsem: Implement down_read_killable_nested
+    - rwsem: Implement down_read_interruptible
+    - exec: Transform exec_update_mutex into a rw_semaphore
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start
+    - Linux 5.4.88
+  * Focal update: v5.4.87 upstream stable release (LP: #1912681)
+    - net/sched: sch_taprio: reset child qdiscs before freeing them
+    - md/raid10: initialize r10_bio->read_slot before use.
+    - thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has
+      changed
+    - ext4: prevent creating duplicate encrypted filenames
+    - ubifs: prevent creating duplicate encrypted filenames
+    - f2fs: prevent creating duplicate encrypted filenames
+    - fscrypt: add fscrypt_is_nokey_name()
+    - fscrypt: remove kernel-internal constants from UAPI header
+    - vfio/pci: Move dummy_resources_list init in vfio_pci_probe()
+    - btrfs: fix race when defragmenting leads to unnecessary IO
+    - ext4: don't remount read-only with errors=continue on reboot
+    - KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL
+    - KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses
+    - KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits
+    - powerpc/bitops: Fix possible undefined behaviour with fls() and fls64()
+    - jffs2: Allow setting rp_size to zero during remounting
+    - jffs2: Fix NULL pointer dereference in rp_size fs option parsing
+    - scsi: block: Fix a race in the runtime power management code
+    - uapi: move constants from <linux/kernel.h> to <linux/const.h>
+    - tools headers UAPI: Sync linux/const.h with the kernel headers
+    - null_blk: Fix zone size initialization
+    - of: fix linker-section match-table corruption
+    - cgroup: Fix memory leak when parsing multiple source parameters
+    - scsi: cxgb4i: Fix TLS dependency
+    - Bluetooth: hci_h5: close serdev device and free hu in h5_close
+    - reiserfs: add check for an invalid ih_entry_count
+    - misc: vmw_vmci: fix kernel info-leak by initializing dbells in
+      vmci_ctx_get_chkpt_doorbells()
+    - media: gp8psk: initialize stats at power control logic
+    - f2fs: fix shift-out-of-bounds in sanity_check_raw_super()
+    - ALSA: seq: Use bool for snd_seq_queue internal flags
+    - ALSA: rawmidi: Access runtime->avail always in spinlock
+    - bfs: don't use WARNING: string when it's just info.
+    - fcntl: Fix potential deadlock in send_sig{io, urg}()
+    - rtc: sun6i: Fix memleak in sun6i_rtc_clk_init
+    - module: set MODULE_STATE_GOING state when a module fails to load
+    - quota: Don't overflow quota file offsets
+    - rtc: pl031: fix resource leak in pl031_probe
+    - powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe()
+    - i3c master: fix missing destroy_workqueue() on error in i3c_master_register
+    - NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode
+    - f2fs: avoid race condition for shrinker count
+    - module: delay kobject uevent until after module init call
+    - fs/namespace.c: WARN if mnt_count has become negative
+    - um: ubd: Submit all data segments atomically
+    - tick/sched: Remove bogus boot "safety" check
+    - ALSA: pcm: Clear the full allocated memory at hw_params
+    - dm verity: skip verity work if I/O error when system is shutting down
+    - Linux 5.4.87
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Thu, 25 Feb 2021 16:56:32 -0700
+
+linux-gkeop (5.4.0-1010.11) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1010.11 -proposed tracker (LP: #1913146)
+
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - [Config] gkeop: updateconfigs for USB_SISUSBVGA_CON
+
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - BUNTU: [Config] gkeop: updateconfigs for PGTABLE_MAPPING
+
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - [Config] gkeop: updateconfigs for INFINIBAND_VIRT_DMA
+
+  [ Ubuntu: 5.4.0-66.74 ]
+
+  * focal/linux: 5.4.0-66.74 -proposed tracker (LP: #1913152)
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Add support for ODM drivers
+    - [Packaging] Turn on ODM support for amd64
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+  * Introduce the new NVIDIA 460-server series and update the 460 series
+    (LP: #1913200)
+    - [Config] dkms-versions -- drop NVIDIA 435 455 and 440-server
+    - [Config] dkms-versions -- add the 460-server nvidia driver
+  * Enable mute and micmute LED on HP EliteBook 850 G7 (LP: #1910102)
+    - ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7
+  * SYNA30B4:00 06CB:CE09 Mouse  on HP EliteBook 850 G7 not working at all
+    (LP: #1908992)
+    - HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device
+  * HD Audio Device PCI ID for the Intel Cometlake-R platform (LP: #1912427)
+    - SAUCE: ALSA: hda: Add Cometlake-R PCI ID
+  * switch to an autogenerated nvidia series based core via dkms-versions
+    (LP: #1912803)
+    - [Packaging] nvidia -- use dkms-versions to define versions built
+    - [Packaging] update-version-dkms -- maintain flags fields
+    - [Config] dkms-versions -- add transitional/skip information for nvidia
+      packages
+  * udpgro.sh in net from ubuntu_kernel_selftests seems not reflecting sub-test
+    result (LP: #1908499)
+    - selftests: fix the return value for UDP GRO test
+  * qede: Kubernetes Internal DNS Failure due to QL41xxx NIC not supporting IPIP
+    tx csum offload (LP: #1909062)
+    - qede: fix offload for IPIP tunnel packets
+  * Use DCPD to control HP DreamColor panel (LP: #1911001)
+    - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix
+  * kvm: Windows 2k19 with Hyper-v role gets stuck on pending hypervisor
+    requests on cascadelake based kvm hosts (LP: #1911848)
+    - KVM: x86: Set KVM_REQ_EVENT if run is canceled with req_immediate_exit set
+  * Ubuntu 20.10 four needed fixes to 'Add driver for Mellanox Connect-IB
+    adapters' (LP: #1905574)
+    - net/mlx5: Fix a race when moving command interface to polling mode
+  * Fix right sounds and mute/micmute LEDs for HP ZBook Fury 15/17 G7 Mobile
+    Workstation (LP: #1910561)
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
+  * Ubuntu 20.04 - multicast counter is not increased in ip -s (LP: #1901842)
+    - net/mlx5e: Fix multicast counter not up-to-date in "ip -s"
+  * eeh-basic.sh in powerpc from ubuntu_kernel_selftests timeout with 5.4 P8 /
+    P9 (LP: #1882503)
+    - selftests/powerpc/eeh: disable kselftest timeout setting for eeh-basic
+  * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639)
+    - Input: i8042 - unbreak Pegatron C15B
+  * CVE-2020-29372
+    - mm: check that mm is still valid in madvise()
+  * update ENA driver, incl. new ethtool stats (LP: #1910291)
+    - net: ena: Change WARN_ON expression in ena_del_napi_in_range()
+    - net: ena: ethtool: convert stat_offset to 64 bit resolution
+    - net: ena: ethtool: Add new device statistics
+    - net: ena: ethtool: add stats printing to XDP queues
+    - net: ena: xdp: add queue counters for xdp actions
+    - net: ena: Change license into format to SPDX in all files
+    - net: ena: Change log message to netif/dev function
+    - net: ena: Capitalize all log strings and improve code readability
+    - net: ena: Remove redundant print of placement policy
+    - net: ena: Change RSS related macros and variables names
+    - net: ena: Fix all static chekers' warnings
+    - drivers/net/ethernet: remove incorrectly formatted doc
+    - net: ena: handle bad request id in ena_netdev
+    - net: ena: fix packet's addresses for rx_offset feature
+  * s390x broken with unknown syscall number on kernels < 5.8 (LP: #1895132)
+    - s390/ptrace: return -ENOSYS when invalid syscall is supplied
+  * Focal update: v5.4.86 upstream stable release (LP: #1910822)
+    - ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
+    - ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
+    - pinctrl: merrifield: Set default bias in case no particular value given
+    - pinctrl: baytrail: Avoid clearing debounce value when turning it off
+    - ARM: dts: sun8i: v3s: fix GIC node memory range
+    - ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
+    - ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
+    - ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
+    - PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
+    - gpio: zynq: fix reference leak in zynq_gpio functions
+    - gpio: mvebu: fix potential user-after-free on probe
+    - scsi: bnx2i: Requires MMU
+    - xsk: Fix xsk_poll()'s return type
+    - xsk: Replace datagram_poll by sock_poll_wait
+    - can: softing: softing_netdev_open(): fix error handling
+    - clk: renesas: r9a06g032: Drop __packed for portability
+    - block: Simplify REQ_OP_ZONE_RESET_ALL handling
+    - block: factor out requeue handling from dispatch code
+    - blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
+    - pinctrl: aspeed: Fix GPIO requests on pass-through banks
+    - netfilter: x_tables: Switch synchronization to RCU
+    - netfilter: nft_compat: make sure xtables destructors have run
+    - netfilter: nft_dynset: fix timeouts later than 23 days
+    - afs: Fix memory leak when mounting with multiple source parameters
+    - Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
+    - gpio: eic-sprd: break loop when getting NULL device resource
+    - netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
+    - selftests/bpf/test_offload.py: Reset ethtool features after failed setting
+    - RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
+    - i40e: Refactor rx_bi accesses
+    - i40e: optimise prefetch page refcount
+    - i40e: avoid premature Rx buffer reuse
+    - ixgbe: avoid premature Rx buffer reuse
+    - selftests: fix poll error in udpgro.sh
+    - net: mvpp2: add mvpp2_phylink_to_port() helper
+    - drm/tegra: replace idr_init() by idr_init_base()
+    - kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
+    - drm/tegra: sor: Disable clocks on error in tegra_sor_init()
+    - habanalabs: put devices before driver removal
+    - arm64: syscall: exit userspace before unmasking exceptions
+    - vxlan: Add needed_headroom for lower device
+    - vxlan: Copy needed_tailroom from lowerdev
+    - scsi: mpt3sas: Increase IOCInit request timeout to 30s
+    - dm table: Remove BUG_ON(in_interrupt())
+    - iwlwifi: pcie: add one missing entry for AX210
+    - drm/amd/display: Init clock value by current vbios CLKs
+    - perf/x86/intel: Check PEBS status correctly
+    - kbuild: avoid split lines in .mod files
+    - soc/tegra: fuse: Fix index bug in get_process_id
+    - usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
+    - USB: serial: option: add interface-number sanity check to flag handling
+    - USB: gadget: f_acm: add support for SuperSpeed Plus
+    - USB: gadget: f_midi: setup SuperSpeed Plus descriptors
+    - usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
+    - USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
+    - usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
+    - ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
+    - ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on
+      Exynos5410
+    - ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU
+    - coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
+    - coresight: tmc-etr: Check if page is valid before dma_map_page()
+    - coresight: tmc-etr: Fix barrier packet insertion for perf buffer
+    - coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
+    - scsi: megaraid_sas: Check user-provided offsets
+    - HID: i2c-hid: add Vero K147 to descriptor override
+    - serial_core: Check for port state when tty is in error state
+    - Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
+    - quota: Sanity-check quota file headers on load
+    - media: msi2500: assign SPI bus number dynamically
+    - crypto: af_alg - avoid undefined behavior accessing salg_name
+    - md: fix a warning caused by a race between concurrent md_ioctl()s
+    - drm/gma500: fix double free of gma_connector
+    - drm/aspeed: Fix Kconfig warning & subsequent build errors
+    - drm/mcde: Fix handling of platform_get_irq() error
+    - drm/tve200: Fix handling of platform_get_irq() error
+    - arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
+    - arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
+    - soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
+    - soc: mediatek: Check if power domains can be powered on at boot time
+    - soc: qcom: geni: More properly switch to DMA mode
+    - Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
+    - RDMA/bnxt_re: Set queue pair state when being queried
+    - rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
+    - selinux: fix error initialization in inode_doinit_with_dentry()
+    - ARM: dts: aspeed: s2600wf: Fix VGA memory region location
+    - RDMA/rxe: Compute PSN windows correctly
+    - x86/mm/ident_map: Check for errors from ident_pud_init()
+    - ARM: p2v: fix handling of LPAE translation in BE mode
+    - x86/apic: Fix x2apic enablement without interrupt remapping
+    - sched/deadline: Fix sched_dl_global_validate()
+    - sched: Reenable interrupts in do_sched_yield()
+    - drm/amdgpu: fix incorrect enum type
+    - crypto: talitos - Endianess in current_desc_hdr()
+    - crypto: talitos - Fix return type of current_desc_hdr()
+    - crypto: inside-secure - Fix sizeof() mismatch
+    - ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
+    - ARM: dts: aspeed: tiogapass: Remove vuart
+    - drm/amdgpu: fix build_coefficients() argument
+    - powerpc/64: Set up a kernel stack for secondaries before cpu_restore()
+    - spi: img-spfi: fix reference leak in img_spfi_resume
+    - f2fs: call f2fs_get_meta_page_retry for nat page
+    - drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
+    - spi: spi-mem: fix reference leak in spi_mem_access_start
+    - ASoC: pcm: DRAIN support reactivation
+    - selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
+    - spi: stm32: fix reference leak in stm32_spi_resume
+    - brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
+    - arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
+    - arm64: dts: exynos: Correct psci compatible used on Exynos7
+    - Bluetooth: Fix null pointer dereference in hci_event_packet()
+    - Bluetooth: hci_h5: fix memory leak in h5_close
+    - spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
+    - spi: mt7621: fix missing clk_disable_unprepare() on error in
+      mt7621_spi_probe
+    - spi: tegra20-slink: fix reference leak in slink ops of tegra20
+    - spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
+    - spi: tegra114: fix reference leak in tegra spi ops
+    - spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in
+      bcm63xx_hsspi_resume
+    - mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
+    - selftest/bpf: Add missed ip6ip6 test back
+    - ASoC: wm8998: Fix PM disable depth imbalance on error
+    - spi: sprd: fix reference leak in sprd_spi_remove
+    - ASoC: arizona: Fix a wrong free in wm8997_probe
+    - RDMa/mthca: Work around -Wenum-conversion warning
+    - MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
+    - crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
+    - staging: greybus: codecs: Fix reference counter leak in error handling
+    - staging: gasket: interrupt: fix the missed eventfd_ctx_put() in
+      gasket_interrupt.c
+    - media: tm6000: Fix sizeof() mismatches
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in
+      mtk_vcodec_release_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
+    - media: v4l2-fwnode: Return -EINVAL for invalid bus-type
+    - ASoC: meson: fix COMPILE_TEST error
+    - scsi: core: Fix VPD LUN ID designator priorities
+    - media: solo6x10: fix missing snd_card_free in error handling case
+    - video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init()
+    - drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
+    - Input: ads7846 - fix race that causes missing releases
+    - Input: ads7846 - fix integer overflow on Rt calculation
+    - Input: ads7846 - fix unaligned access on 7845
+    - usb/max3421: fix return error code in max3421_probe()
+    - spi: mxs: fix reference leak in mxs_spi_probe
+    - selftests/bpf: Fix broken riscv build
+    - powerpc: Avoid broken GCC __attribute__((optimize))
+    - powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
+    - EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId
+    - crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
+    - crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
+    - spi: fix resource leak for drivers without .remove callback
+    - soc: ti: knav_qmss: fix reference leak in knav_queue_probe
+    - soc: ti: Fix reference imbalance in knav_dma_probe
+    - drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
+    - Input: omap4-keypad - fix runtime PM error handling
+    - clk: meson: Kconfig: fix dependency for G12A
+    - RDMA/cxgb4: Validate the number of CQEs
+    - memstick: fix a double-free bug in memstick_check
+    - ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
+    - ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
+    - mmc: pxamci: Fix error return code in pxamci_probe
+    - orinoco: Move context allocation after processing the skb
+    - qtnfmac: fix error return code in qtnf_pcie_probe()
+    - rsi: fix error return code in rsi_reset_card()
+    - cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
+    - dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
+    - arm64: tegra: Fix DT binding for IO High Voltage entry
+    - media: siano: fix memory leak of debugfs members in smsdvb_hotplug
+    - platform/x86: mlx-platform: Remove PSU EEPROM from default platform
+      configuration
+    - platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform
+      configuration
+    - samples: bpf: Fix lwt_len_hist reusing previous BPF map
+    - media: imx214: Fix stop streaming
+    - mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
+    - media: max2175: fix max2175_set_csm_mode() error code
+    - slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
+    - HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
+    - ARM: dts: Remove non-existent i2c1 from 98dx3236
+    - arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
+    - arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
+    - power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
+    - power: supply: bq24190_charger: fix reference leak
+    - genirq/irqdomain: Don't try to free an interrupt that has no mapping
+    - arm64: dts: ls1028a: fix ENETC PTP clock input
+    - arm64: dts: qcom: c630: Polish i2c-hid devices
+    - PCI: Bounds-check command-line resource alignment requests
+    - PCI: Fix overflow in command-line resource alignment requests
+    - PCI: iproc: Fix out-of-bound array accesses
+    - arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
+    - arm64: dts: meson-sm1: fix typo in opp table
+    - soc: amlogic: canvas: add missing put_device() call in meson_canvas_get()
+    - ARM: dts: at91: at91sam9rl: fix ADC triggers
+    - platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
+    - ath10k: Fix the parsing error in service available event
+    - ath10k: Fix an error handling path
+    - ath10k: Release some resources in an error handling path
+    - SUNRPC: rpc_wake_up() should wake up tasks in the correct order
+    - NFSv4.2: condition READDIR's mask for security label based on LSM state
+    - SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
+    - NFSv4: Fix the alignment of page data in the getdeviceinfo reply
+    - net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
+    - lockd: don't use interval-based rebinding over TCP
+    - NFS: switch nfsiod to be an UNBOUND workqueue.
+    - selftests/seccomp: Update kernel config
+    - vfio-pci: Use io_remap_pfn_range() for PCI IO memory
+    - hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
+    - media: saa7146: fix array overflow in vidioc_s_audio()
+    - powerpc/perf: Fix crash with is_sier_available when pmu is not set
+    - powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
+    - clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
+    - clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
+    - iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
+    - ARM: dts: at91: sama5d2: map securam as device
+    - bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
+    - pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
+    - arm64: dts: rockchip: Fix UART pull-ups on rk3328
+    - memstick: r592: Fix error return in r592_probe()
+    - MIPS: Don't round up kernel sections size for memblock_add()
+    - net/mlx5: Properly convey driver version to firmware
+    - ASoC: jz4740-i2s: add missed checks for clk_get()
+    - dm ioctl: fix error return code in target_message
+    - phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
+    - clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne
+    - clocksource/drivers/arm_arch_timer: Correct fault programming of
+      CNTKCTL_EL1.EVNTI
+    - cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: st: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: loongson1: Add missing MODULE_ALIAS
+    - cpufreq: scpi: Add missing MODULE_ALIAS
+    - Bluetooth: btusb: Add the missed release_firmware() in
+      btusb_mtk_setup_firmware()
+    - Bluetooth: btmtksdio: Add the missed release_firmware() in
+      mtk_setup_firmware()
+    - arm64: dts: meson: fix PHY deassert timing requirements
+    - ARM: dts: meson: fix PHY deassert timing requirements
+    - arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
+    - scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
+    - scsi: pm80xx: Fix error return in pm8001_pci_probe()
+    - seq_buf: Avoid type mismatch for seq_buf_init
+    - scsi: fnic: Fix error return code in fnic_probe()
+    - platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx
+      systems
+    - powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops
+    - powerpc/pseries/hibernation: remove redundant cacheinfo update
+    - drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
+    - ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
+    - powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S
+    - usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
+    - usb: oxu210hp-hcd: Fix memory leak in oxu_create
+    - speakup: fix uninitialized flush_lock
+    - nfsd: Fix message level for normal termination
+    - nfs_common: need lock during iterate through the list
+    - x86/kprobes: Restore BTF if the single-stepping is cancelled
+    - platform/chrome: cros_ec_spi: Don't overwrite spi::mode
+    - bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
+    - s390/cio: fix use-after-free in ccw_device_destroy_console
+    - iwlwifi: mvm: hook up missing RX handlers
+    - erofs: avoid using generic_block_bmap
+    - can: m_can: m_can_config_endisable(): remove double clearing of clock stop
+      request bit
+    - RDMA/core: Do not indicate device ready when device enablement fails
+    - remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
+    - remoteproc: qcom: fix reference leak in adsp_start
+    - remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
+    - clk: tegra: Fix duplicated SE clock entry
+    - mtd: rawnand: gpmi: fix reference count leak in gpmi ops
+    - mtd: rawnand: meson: Fix a resource leak in init
+    - mtd: rawnand: gpmi: Fix the random DMA timeout issue
+    - extcon: max77693: Fix modalias string
+    - crypto: atmel-i2c - select CONFIG_BITREVERSE
+    - mac80211: don't set set TDLS STA bandwidth wider than possible
+    - ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
+    - irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
+    - watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
+    - watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
+    - watchdog: sprd: remove watchdog disable from resume fail path
+    - watchdog: sprd: check busy bit before new loading rather than after that
+    - watchdog: Fix potential dereferencing of null pointer
+    - ubifs: Fix error return code in ubifs_init_authentication()
+    - um: Monitor error events in IRQ controller
+    - um: tty: Fix handling of close in tty lines
+    - um: chan_xterm: Fix fd leak
+    - sunrpc: fix xs_read_xdr_buf for partial pages receive
+    - RDMA/cma: Don't overwrite sgid_attr after device is released
+    - nfc: s3fwrn5: Release the nfc firmware
+    - powerpc/ps3: use dma_mapping_error()
+    - sparc: fix handling of page table constructor failure
+    - mm: don't wake kswapd prematurely when watermark boosting is disabled
+    - checkpatch: fix unescaped left brace
+    - lan743x: fix rx_napi_poll/interrupt ping-pong
+    - net: bcmgenet: Fix a resource leak in an error handling path in the probe
+      functin
+    - net: allwinner: Fix some resources leak in the error handling path of the
+      probe and in the remove function
+    - net: korina: fix return value
+    - libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
+    - watchdog: qcom: Avoid context switch in restart handler
+    - watchdog: coh901327: add COMMON_CLK dependency
+    - clk: ti: Fix memleak in ti_fapll_synth_setup
+    - pwm: zx: Add missing cleanup in error path
+    - pwm: lp3943: Dynamically allocate PWM chip base
+    - perf record: Fix memory leak when using '--user-regs=?' to list registers
+    - qlcnic: Fix error code in probe
+    - virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
+    - virtio_net: Fix error code in probe()
+    - virtio_ring: Fix two use after free bugs
+    - clk: at91: sam9x60: remove atmel,osc-bypass support
+    - clk: s2mps11: Fix a resource leak in error handling paths in the probe
+      function
+    - clk: sunxi-ng: Make sure divider tables have sentinel
+    - kconfig: fix return value of do_error_if()
+    - perf probe: Fix memory leak when synthesizing SDT probes
+    - ARM: sunxi: Add machine match for the Allwinner V3 SoC
+    - cfg80211: initialize rekey_data
+    - fix namespaced fscaps when !CONFIG_SECURITY
+    - lwt: Disable BH too in run_lwt_bpf()
+    - drm/amd/display: Prevent bandwidth overflow
+    - drm/amdkfd: Fix leak in dmabuf import
+    - Input: cros_ec_keyb - send 'scancodes' in addition to key events
+    - initramfs: fix clang build failure
+    - Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
+    - vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU
+    - media: gspca: Fix memory leak in probe
+    - media: sunxi-cir: ensure IR is handled when it is continuous
+    - media: netup_unidvb: Don't leak SPI master in probe error path
+    - media: ipu3-cio2: Remove traces of returned buffers
+    - media: ipu3-cio2: Return actual subdev format
+    - media: ipu3-cio2: Serialise access to pad format
+    - media: ipu3-cio2: Validate mbus format in setting subdev format
+    - media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
+    - Input: cyapa_gen6 - fix out-of-bounds stack access
+    - ALSA: hda/ca0132 - Change Input Source enum strings.
+    - Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources
+      walks"
+    - ACPI: PNP: compare the string length in the matching_id()
+    - ALSA: hda: Fix regressions on clear and reconfig sysfs
+    - ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
+    - ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
+    - ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
+    - ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
+    - ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
+    - ALSA: pcm: oss: Fix a few more UBSAN fixes
+    - ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
+    - ALSA: hda/realtek: Add quirk for MSI-GP73
+    - ALSA: hda/realtek: Apply jack fixup for Quanta NL3
+    - ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
+    - ALSA: usb-audio: Disable sample read check if firmware doesn't give back
+    - ALSA: core: memalloc: add page alignment for iram
+    - s390/smp: perform initial CPU reset also for SMT siblings
+    - s390/kexec_file: fix diag308 subcode when loading crash kernel
+    - s390/dasd: fix hanging device offline processing
+    - s390/dasd: prevent inconsistent LCU device data
+    - s390/dasd: fix list corruption of pavgroup group list
+    - s390/dasd: fix list corruption of lcu list
+    - binder: add flag to clear buffer on txn complete
+    - ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
+    - staging: comedi: mf6x4: Fix AI end-of-conversion detection
+    - perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY
+    - perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
+    - powerpc/perf: Exclude kernel samples while counting events in user space.
+    - crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
+    - crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
+    - EDAC/i10nm: Use readl() to access MMIO registers
+    - EDAC/amd64: Fix PCI component registration
+    - cpuset: fix race between hotplug work and later CPU offline
+    - USB: serial: mos7720: fix parallel-port state restore
+    - USB: serial: digi_acceleport: fix write-wakeup deadlocks
+    - USB: serial: keyspan_pda: fix dropped unthrottle interrupts
+    - USB: serial: keyspan_pda: fix write deadlock
+    - USB: serial: keyspan_pda: fix stalled writes
+    - USB: serial: keyspan_pda: fix write-wakeup use-after-free
+    - USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
+    - USB: serial: keyspan_pda: fix write unthrottling
+    - btrfs: do not shorten unpin len for caching block groups
+    - ext4: fix a memory leak of ext4_free_data
+    - ext4: fix deadlock with fs freezing and EA inodes
+    - KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
+    - ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
+    - ARM: dts: at91: sama5d2: fix CAN message ram offset and size
+    - xprtrdma: Fix XDRBUF_SPARSE_PAGES support
+    - powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
+    - powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
+    - powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE
+    - powerpc/xmon: Change printk() to pr_cont()
+    - powerpc/8xx: Fix early debug when SMC1 is relocated
+    - powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
+    - powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
+    - powerpc/powernv/memtrace: Don't leak kernel memory to user space
+    - powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
+    - ima: Don't modify file descriptor mode on the fly
+    - um: Remove use of asprinf in umid.c
+    - ceph: fix race in concurrent __ceph_remove_cap invocations
+    - SMB3: avoid confusing warning message on mount to Azure
+    - ubifs: wbuf: Don't leak kernel memory to flash
+    - jffs2: Fix GC exit abnormally
+    - jffs2: Fix ignoring mounting options problem during remounting
+    - jfs: Fix array index bounds check in dbAdjTree
+    - platform/x86: mlx-platform: remove an unused variable
+    - drm/amd/display: Fix memory leaks in S3 resume
+    - drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
+    - drm/i915: Fix mismatch between misplaced vma check and vma insert
+    - spi: pxa2xx: Fix use-after-free on unbind
+    - spi: spi-sh: Fix use-after-free on unbind
+    - spi: atmel-quadspi: Fix use-after-free on unbind
+    - spi: davinci: Fix use-after-free on unbind
+    - spi: fsl: fix use of spisel_boot signal on MPC8309
+    - spi: gpio: Don't leak SPI master in probe error path
+    - spi: mxic: Don't leak SPI master in probe error path
+    - spi: pic32: Don't leak DMA channels in probe error path
+    - spi: rb4xx: Don't leak SPI master in probe error path
+    - spi: sc18is602: Don't leak SPI master in probe error path
+    - spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
+    - spi: synquacer: Disable clock in probe error path
+    - spi: mt7621: Disable clock in probe error path
+    - spi: mt7621: Don't leak SPI master in probe error path
+    - spi: atmel-quadspi: Disable clock in probe error path
+    - spi: atmel-quadspi: Fix AHB memory accesses
+    - soc: qcom: smp2p: Safely acquire spinlock without IRQs
+    - mtd: spinand: Fix OOB read
+    - mtd: parser: cmdline: Fix parsing of part-names with colons
+    - mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
+    - mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
+    - scsi: qla2xxx: Fix crash during driver load on big endian machines
+    - scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
+    - scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
+    - iio: buffer: Fix demux update
+    - iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in
+      rockchip_saradc_resume
+    - iio:light:rpr0521: Fix timestamp alignment and prevent data leak.
+    - iio:light:st_uvis25: Fix timestamp alignment and prevent data leak.
+    - iio:magnetometer:mag3110: Fix alignment and data leak issues.
+    - iio:pressure:mpl3115: Force alignment of buffer
+    - iio:imu:bmi160: Fix too large a buffer.
+    - iio:adc:ti-ads124s08: Fix buffer being too long.
+    - iio:adc:ti-ads124s08: Fix alignment and data leak issues.
+    - md/cluster: block reshape with remote resync job
+    - md/cluster: fix deadlock when node is doing resync job
+    - pinctrl: sunxi: Always call chained_irq_{enter, exit} in
+      sunxi_pinctrl_irq_handler
+    - clk: ingenic: Fix divider calculation with div tables
+    - clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
+    - clk: tegra: Do not return 0 on failure
+    - device-dax/core: Fix memory leak when rmmod dax.ko
+    - dma-buf/dma-resv: Respect num_fences when initializing the shared fence
+      list.
+    - xen-blkback: set ring->xenblkd to NULL after kthread_stop()
+    - xen/xenbus: Allow watches discard events before queueing
+    - xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
+    - xen/xenbus/xen_bus_type: Support will_handle watch callback
+    - xen/xenbus: Count pending messages for each watch
+    - xenbus/xenbus_backend: Disallow pending watch messages
+    - libnvdimm/namespace: Fix reaping of invalidated block-window-namespace
+      labels
+    - platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
+    - PCI: Fix pci_slot_release() NULL pointer dereference
+    - regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
+    - rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
+    - Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
+    - x86/CPU/AMD: Save AMD NodeId as cpu_die_id
+    - Linux 5.4.86
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info()
+    - ipv4: fix error return code in rtm_to_fib_config()
+    - mac80211: mesh: fix mesh_pathtbl_init() error path
+    - net: bridge: vlan: fix error return code in __vlan_add()
+    - vrf: packets with lladdr src needs dst at input with orig_iif when needs
+      strict
+    - net: hns3: remove a misused pragma packed
+    - udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
+    - enetc: Fix reporting of h/w packet counters
+    - bridge: Fix a deadlock when enabling multicast snooping
+    - net: stmmac: free tx skb buffer in stmmac_resume()
+    - tcp: select sane initial rcvq_space.space for big MSS
+    - tcp: fix cwnd-limited bug for TSO deferral where we send nothing
+    - net/mlx4_en: Avoid scheduling restart task if it is already running
+    - lan743x: fix for potential NULL pointer dereference with bare card
+    - net/mlx4_en: Handle TX error CQE
+    - net: ll_temac: Fix potential NULL dereference in temac_probe()
+    - net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux
+    - net: stmmac: delete the eee_ctrl_timer after napi disabled
+    - ktest.pl: If size of log is too big to email, email error message
+    - USB: dummy-hcd: Fix uninitialized array use in init()
+    - USB: add RESET_RESUME quirk for Snapscan 1212
+    - ALSA: usb-audio: Fix potential out-of-bounds shift
+    - ALSA: usb-audio: Fix control 'access overflow' errors from chmap
+    - xhci: Give USB2 ports time to enter U3 in bus suspend
+    - xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP
+    - USB: UAS: introduce a quirk to set no_write_same
+    - USB: sisusbvga: Make console support depend on BROKEN
+    - [Config] updateconfigs for USB_SISUSBVGA_CON
+    - ALSA: pcm: oss: Fix potential out-of-bounds shift
+    - serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access
+    - KVM: mmu: Fix SPTE encoding of MMIO generation upper half
+    - membarrier: Explicitly sync remote cores when SYNC_CORE is requested
+    - x86/resctrl: Remove unused struct mbm_state::chunks_bw
+    - x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
+    - Linux 5.4.85
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - Kbuild: do not emit debug info for assembly with LLVM_IAS=1
+    - x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
+    - iwlwifi: pcie: limit memory read spin time
+    - arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
+    - iwlwifi: pcie: set LTR to avoid completion timeout
+    - iwlwifi: mvm: fix kernel panic in case of assert during CSA
+    - powerpc: Drop -me200 addition to build flags
+    - arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
+    - ARC: stack unwinding: don't assume non-current task is sleeping
+    - scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
+    - interconnect: qcom: qcs404: Remove GPU and display RPM IDs
+    - ibmvnic: skip tx timeout reset while in resetting
+    - irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
+    - spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
+    - soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
+    - arm64: tegra: Disable the ACONNECT for Jetson TX2
+    - platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
+    - platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad
+      Yoga 11e 4th gen
+    - platform/x86: acer-wmi: add automatic keyboard background light toggle key
+      as KEY_LIGHTS_TOGGLE
+    - platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
+    - platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
+    - can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
+    - ktest.pl: Fix incorrect reboot for grub2bls
+    - Input: cm109 - do not stomp on control URB
+    - Input: i8042 - add Acer laptops to the i8042 reset list
+    - mmc: block: Fixup condition for CMD13 polling for RPMB requests
+    - drm/i915/display/dp: Compute the correct slice count for VDSC on DP
+    - kbuild: avoid static_assert for genksyms
+    - proc: use untagged_addr() for pagemap_read addresses
+    - scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
+    - x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
+    - x86/membarrier: Get rid of a dubious optimization
+    - x86/apic/vector: Fix ordering in vector assignment
+    - mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
+    - [Config] updateconfigs for PGTABLE_MAPPING
+    - compiler.h: fix barrier_data() on clang
+    - Linux 5.4.84
+  * MSFT Touchpad not working on Lenovo Legion-5 15ARH05 (LP: #1887190) // Focal
+    update: v5.4.84 upstream stable release (LP: #1910816)
+    - pinctrl: amd: remove debounce filter setting in IRQ type setting
+  * Focal update: v5.4.83 upstream stable release (LP: #1910784)
+    - pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq
+      pin to output
+    - pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(...,
+      GPIOD_OUT_HIGH)
+    - usb: gadget: f_fs: Use local copy of descriptors for userspace copy
+    - USB: serial: kl5kusb105: fix memleak on open
+    - USB: serial: ch341: add new Product ID for CH341A
+    - USB: serial: ch341: sort device-id entries
+    - USB: serial: option: add Fibocom NL668 variants
+    - USB: serial: option: add support for Thales Cinterion EXS82
+    - USB: serial: option: fix Quectel BG96 matching
+    - tty: Fix ->pgrp locking in tiocspgrp()
+    - tty: Fix ->session locking
+    - ALSA: hda/realtek: Fix bass speaker DAC assignment on Asus Zephyrus G14
+    - ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
+    - ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
+    - ALSA: hda/realtek - Add new codec supported for ALC897
+    - ALSA: hda/generic: Add option to enforce preferred_dacs pairs
+    - ftrace: Fix updating FTRACE_FL_TRAMP
+    - cifs: allow syscalls to be restarted in __smb_send_rqst()
+    - cifs: fix potential use-after-free in cifs_echo_request()
+    - i2c: imx: Don't generate STOP condition if arbitration has been lost
+    - thunderbolt: Fix use-after-free in remove_unplugged_switch()
+    - drm/i915/gt: Program mocs:63 for cache eviction on gen9
+    - scsi: mpt3sas: Fix ioctl timeout
+    - dm writecache: fix the maximum number of arguments
+    - powerpc/64s/powernv: Fix memory corruption when saving SLB entries on MCE
+    - genirq/irqdomain: Add an irq_create_mapping_affinity() function
+    - powerpc/pseries: Pass MSI affinity to irq_create_mapping()
+    - dm: fix bug with RCU locking in dm_blk_report_zones
+    - dm: remove invalid sparse __acquires and __releases annotations
+    - x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
+    - coredump: fix core_pattern parse error
+    - mm: list_lru: set shrinker map bit when child nr_items is not zero
+    - mm/swapfile: do not sleep with a spin lock held
+    - speakup: Reject setting the speakup line discipline outside of speakup
+    - i2c: imx: Fix reset of I2SR_IAL flag
+    - i2c: imx: Check for I2SR_IAL after every byte
+    - spi: bcm2835: Release the DMA channel if probe fails after dma_init
+    - iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
+    - tracing: Fix userstacktrace option for instances
+    - lib/syscall: fix syscall registers retrieval on 32-bit platforms
+    - can: af_can: can_rx_unregister(): remove WARN() statement from list
+      operation sanity check
+    - gfs2: check for empty rgrp tree in gfs2_ri_update
+    - netfilter: ipset: prevent uninit-value in hash_ip6_add
+    - tipc: fix a deadlock when flushing scheduled work
+    - ASoC: wm_adsp: fix error return code in wm_adsp_load()
+    - rtw88: debug: Fix uninitialized memory in debugfs code
+    - i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
+    - dm writecache: remove BUG() and fail gracefully instead
+    - Input: i8042 - fix error return code in i8042_setup_aux()
+    - netfilter: nf_tables: avoid false-postive lockdep splat
+    - netfilter: nftables_offload: set address type in control dissector
+    - x86/insn-eval: Use new for_each_insn_prefix() macro to loop over prefixes
+      bytes
+    - Linux 5.4.83
+  * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels
+    (LP: #1908529)
+    - [dep-8] Allow all hwe kernels
+  * failing ftrace self tests from 5.7+ onwards (LP: #1893024)
+    - SAUCE: Revert "selftests/ftrace: check for do_sys_openat2 in user-memory
+      test"
+  * selftests: test_vxlan_under_vrf: mute unnecessary error message
+    (LP: #1908342)
+    - selftests: test_vxlan_under_vrf: mute unnecessary error message
+  * Focal update: v5.4.82 upstream stable release (LP: #1908564)
+    - devlink: Hold rtnl lock while reading netdev attributes
+    - ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
+    - net/af_iucv: set correct sk_protocol for child sockets
+    - net/tls: missing received data after fast remote close
+    - net/tls: Protect from calling tls_dev_del for TLS RX twice
+    - rose: Fix Null pointer dereference in rose_send_frame()
+    - sock: set sk_err to ee_errno on dequeue from errq
+    - tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
+    - tun: honor IOCB_NOWAIT flag
+    - usbnet: ipheth: fix connectivity with iOS 14
+    - bonding: wait for sysfs kobject destruction before freeing struct slave
+    - staging/octeon: fix up merge error
+    - ima: extend boot_aggregate with kernel measurements
+    - sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
+    - netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
+    - ipv4: Fix tos mask in inet_rtm_getroute()
+    - dt-bindings: net: correct interrupt flags in examples
+    - chelsio/chtls: fix panic during unload reload chtls
+    - ibmvnic: Ensure that SCRQ entry reads are correctly ordered
+    - ibmvnic: Fix TX completion error handling
+    - inet_ecn: Fix endianness of checksum update when setting ECT(1)
+    - net: ip6_gre: set dev->hard_header_len when using header_ops
+    - net/x25: prevent a couple of overflows
+    - cxgb3: fix error return code in t3_sge_alloc_qset()
+    - net: pasemi: fix error return code in pasemi_mac_open()
+    - vxlan: fix error return code in __vxlan_dev_create()
+    - chelsio/chtls: fix a double free in chtls_setkey()
+    - net: mvpp2: Fix error return code in mvpp2_open()
+    - net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
+    - net: openvswitch: ensure LSE is pullable before reading it
+    - net/sched: act_mpls: ensure LSE is pullable before reading it
+    - net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
+    - net/mlx5: Fix wrong address reclaim when command interface is down
+    - ALSA: usb-audio: US16x08: fix value count for level meters
+    - Input: xpad - support Ardwiino Controllers
+    - tracing: Remove WARN_ON in start_thread()
+    - RDMA/i40iw: Address an mmap handler exploit in i40iw
+    - Linux 5.4.82
+  * Focal update: v5.4.81 upstream stable release (LP: #1908562)
+    - spi: bcm-qspi: Fix use-after-free on unbind
+    - spi: bcm2835: Fix use-after-free on unbind
+    - ipv4: use IS_ENABLED instead of ifdef
+    - netfilter: clear skb->next in NF_HOOK_LIST()
+    - btrfs: tree-checker: add missing return after error in root_item
+    - btrfs: tree-checker: add missing returns after data_ref alignment checks
+    - btrfs: don't access possibly stale fs_info data for printing duplicate
+      device
+    - btrfs: fix lockdep splat when reading qgroup config on mount
+    - wireless: Use linux/stddef.h instead of stddef.h
+    - smb3: Call cifs reconnect from demultiplex thread
+    - smb3: Avoid Mid pending list corruption
+    - smb3: Handle error case during offload read path
+    - cifs: fix a memleak with modefromsid
+    - KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
+    - KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
+    - KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
+    - KVM: x86: Fix split-irqchip vs interrupt injection window request
+    - trace: fix potenial dangerous pointer
+    - arm64: pgtable: Fix pte_accessible()
+    - arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
+    - HID: uclogic: Add ID for Trust Flex Design Tablet
+    - HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
+    - HID: cypress: Support Varmilo Keyboards' media hotkeys
+    - HID: add support for Sega Saturn
+    - Input: i8042 - allow insmod to succeed on devices without an i8042
+      controller
+    - HID: hid-sensor-hub: Fix issue with devices with no report ID
+    - staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
+    - HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
+    - dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
+    - x86/xen: don't unbind uninitialized lock_kicker_irq
+    - HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo
+      Edge
+    - HID: Add Logitech Dinovo Edge battery quirk
+    - proc: don't allow async path resolution of /proc/self components
+    - nvme: free sq/cq dbbuf pointers when dbbuf set fails
+    - vhost scsi: fix cmd completion race
+    - dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
+    - scsi: libiscsi: Fix NOP race condition
+    - scsi: target: iscsi: Fix cmd abort fabric stop race
+    - perf/x86: fix sysfs type mismatches
+    - xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
+    - net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
+    - bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
+    - ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
+    - phy: tegra: xusb: Fix dangling pointer on probe failure
+    - iwlwifi: mvm: write queue_sync_state only for sync
+    - batman-adv: set .owner to THIS_MODULE
+    - arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
+    - ARM: dts: dra76x: m_can: fix order of clocks
+    - scsi: ufs: Fix race between shutdown and runtime resume flow
+    - bnxt_en: fix error return code in bnxt_init_one()
+    - bnxt_en: fix error return code in bnxt_init_board()
+    - video: hyperv_fb: Fix the cache type when mapping the VRAM
+    - bnxt_en: Release PCI regions when DMA mask setup fails during probe.
+    - cxgb4: fix the panic caused by non smac rewrite
+    - s390/qeth: make af_iucv TX notification call more robust
+    - s390/qeth: fix af_iucv notification race
+    - s390/qeth: fix tear down of async TX buffers
+    - ibmvnic: fix call_netdevice_notifiers in do_reset
+    - ibmvnic: notify peers when failover and migration happen
+    - powerpc/64s: Fix allnoconfig build since uaccess flush
+    - IB/mthca: fix return value of error branch in mthca_init_cq()
+    - i40e: Fix removing driver while bare-metal VFs pass traffic
+    - nfc: s3fwrn5: use signed integer for parsing GPIO numbers
+    - net: ena: set initial DMA width to avoid intel iommu issue
+    - ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
+    - ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
+    - optee: add writeback to valid memory type
+    - arm64: tegra: Wrong AON HSP reg property size
+    - efivarfs: revert "fix memory leak in efivarfs_create()"
+    - efi: EFI_EARLYCON should depend on EFI
+    - can: gs_usb: fix endianess problem with candleLight firmware
+    - platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
+    - platform/x86: toshiba_acpi: Fix the wrong variable assignment
+    - RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
+    - RDMA/hns: Bugfix for memory window mtpt configuration
+    - can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from
+      request_threaded_irq()'s flags
+    - can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
+    - perf stat: Use proper cpu for shadow stats
+    - perf probe: Fix to die_entrypc() returns error correctly
+    - spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
+    - USB: core: Change %pK for __user pointers to %px
+    - usb: gadget: f_midi: Fix memleak in f_midi_alloc
+    - USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO
+      built-in usb-audio card
+    - usb: gadget: Fix memleak in gadgetfs_fill_super
+    - irqchip/exiu: Fix the index of fwspec for IRQ type
+    - x86/mce: Do not overwrite no_way_out if mce_end() fails
+    - x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
+    - x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
+    - x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
+    - USB: core: Fix regression in Hercules audio card
+    - ASoC: Intel: Skylake: Remove superfluous chip initialization
+    - ASoC: Intel: Skylake: Select hda configuration permissively
+    - ASoC: Intel: Skylake: Enable codec wakeup during chip init
+    - ASoC: Intel: Skylake: Shield against no-NHLT configurations
+    - ASoC: Intel: Allow for ROM init retry on CNL platforms
+    - ASoC: Intel: Skylake: Await purge request ack on CNL
+    - ASoC: Intel: Multiple I/O PCM format support for pipe
+    - ASoC: Intel: Skylake: Automatic DMIC format configuration according to
+      information from NHLT
+    - Linux 5.4.81
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - ah6: fix error return code in ah6_input()
+    - atm: nicstar: Unmap DMA on send error
+    - bnxt_en: read EEPROM A2h address using page 0
+    - devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
+    - Exempt multicast addresses from five-second neighbor lifetime
+    - inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
+    - ipv6: Fix error path to cancel the meseage
+    - lan743x: fix issue causing intermittent kernel log warnings
+    - lan743x: prevent entire kernel HANG on open, for some platforms
+    - mlxsw: core: Use variable timeout for EMAD retries
+    - net: b44: fix error return code in b44_init_one()
+    - net: bridge: add missing counters to ndo_get_stats64 callback
+    - net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
+    - net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
+    - net: Have netpoll bring-up DSA management interface
+    - netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
+    - netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
+    - net: lantiq: Wait for the GPHY firmware to be ready
+    - net/mlx4_core: Fix init_hca fields offset
+    - net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup
+    - net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
+    - net/tls: fix corrupted data in recvmsg
+    - net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
+    - page_frag: Recover from memory pressure
+    - qed: fix error return code in qed_iwarp_ll2_start()
+    - qlcnic: fix error return code in qlcnic_83xx_restart_hw()
+    - sctp: change to hold/put transport for proto_unreach_timer
+    - tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
+    - net/mlx5: Add handling of port type in rule deletion
+    - net/mlx5: Disable QoS when min_rates on all VFs are zero
+    - net: usb: qmi_wwan: Set DTR quirk for MR400
+    - net/ncsi: Fix netlink registration
+    - net: ftgmac100: Fix crash when removing driver
+    - pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
+    - scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
+    - selftests: kvm: Fix the segment descriptor layout to match the actual layout
+    - ACPI: button: Add DMI quirk for Medion Akoya E2228T
+    - arm64: errata: Fix handling of 1418040 with late CPU onlining
+    - arm64: psci: Avoid printing in cpu_psci_cpu_die()
+    - arm64: smp: Tell RCU about CPUs that fail to come online
+    - vfs: remove lockdep bogosity in __sb_start_write
+    - gfs2: fix possible reference leak in gfs2_check_blk_type
+    - hwmon: (pwm-fan) Fix RPM calculation
+    - arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
+    - arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
+    - arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
+    - Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
+    - ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet
+      PHY
+    - ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY
+    - Input: adxl34x - clean up a data type in adxl34x_probe()
+    - MIPS: export has_transparent_hugepage() for modules
+    - arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
+    - arm64: dts imx8mn: Remove non-existent USB OTG2
+    - arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
+    - swiotlb: using SIZE_MAX needs limits.h included
+    - arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point
+    - ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
+    - Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
+    - rfkill: Fix use-after-free in rfkill_resume()
+    - RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
+    - [Config] updateconfigs for INFINIBAND_VIRT_DMA
+    - RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
+    - perf lock: Don't free "lock_seq_stat" if read_count isn't zero
+    - tools, bpftool: Add missing close before bpftool net attach exit
+    - ip_tunnels: Set tunnel option flag when tunnel metadata is present
+    - can: af_can: prevent potential access of uninitialized member in can_rcv()
+    - can: af_can: prevent potential access of uninitialized member in canfd_rcv()
+    - can: dev: can_restart(): post buffer from the right context
+    - can: ti_hecc: Fix memleak in ti_hecc_probe
+    - can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to
+      can_put_echo_skb()
+    - can: peak_usb: fix potential integer overflow on shift of a int
+    - can: flexcan: fix failure handling of pm_runtime_get_sync()
+    - can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
+    - can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for
+      devm_regmap_init()
+    - can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
+    - can: m_can: m_can_handle_state_change(): fix state change
+    - can: m_can: m_can_class_free_dev(): introduce new function
+    - can: m_can: m_can_stop(): set device to software init mode before closing
+    - ASoC: qcom: lpass-platform: Fix memory leak
+    - selftests/bpf: Fix error return code in run_getsockopt_test()
+    - MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
+    - drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()
+    - net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
+    - bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
+    - bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
+    - can: kvaser_pciefd: Fix KCAN bittiming limits
+    - can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
+    - iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header
+    - iommu/vt-d: Avoid panic if iommu init fails in tboot system
+    - can: flexcan: flexcan_chip_start(): fix erroneous
+      flexcan_transceiver_enable() during bus-off recovery
+    - can: m_can: process interrupt only when not runtime suspended
+    - xfs: fix the minrecs logic when dealing with inode root child blocks
+    - xfs: strengthen rmap record flags checking
+    - xfs: return corresponding errcode if xfs_initialize_perag() fail
+    - regulator: ti-abb: Fix array out of bound read access on the first
+      transition
+    - fail_function: Remove a redundant mutex unlock
+    - xfs: revert "xfs: fix rmap key and record comparison functions"
+    - bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
+    - bpf, sockmap: On receive programs try to fast track SK_PASS ingress
+    - bpf, sockmap: Use truesize with sk_rmem_schedule()
+    - bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
+    - efi/x86: Free efi_pgd with free_pages()
+    - libfs: fix error cast of negative value in simple_attr_write()
+    - HID: logitech-hidpp: Add PID for MX Anywhere 2
+    - HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
+    - HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
+    - speakup: Do not let the line discipline be used several times
+    - ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
+    - ALSA: usb-audio: Add delay quirk for all Logitech USB devices
+    - ALSA: ctl: fix error path at adding user-defined element set
+    - ALSA: mixart: Fix mutex deadlock
+    - ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
+    - ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
+    - tty: serial: imx: fix potential deadlock
+    - tty: serial: imx: keep console clocks always on
+    - HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
+    - efivarfs: fix memory leak in efivarfs_create()
+    - staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids
+    - iio: light: fix kconfig dependency bug for VCNL4035
+    - ext4: fix bogus warning in ext4_update_dx_flag()
+    - iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
+    - iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-
+      mode
+    - iio: adc: mediatek: fix unset field
+    - spi: lpspi: Fix use-after-free on unbind
+    - spi: Introduce device-managed SPI controller allocation
+    - spi: npcm-fiu: Don't leak SPI master in probe error path
+    - spi: bcm2835aux: Fix use-after-free on unbind
+    - regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}
+    - regulator: fix memory leak with repeated set_machine_constraints()
+    - regulator: avoid resolve_supply() infinite recursion
+    - regulator: workaround self-referent regulators
+    - xtensa: fix TLBTEMP area placement
+    - xtensa: disable preemption around cache alias management calls
+    - mac80211: minstrel: remove deferred sampling code
+    - mac80211: minstrel: fix tx status processing corner case
+    - mac80211: free sta in sta_info_insert_finish() on errors
+    - s390/cpum_sf.c: fix file permission for cpum_sfb_size
+    - s390/dasd: fix null pointer dereference for ERP requests
+    - Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected
+    - drm/amd/display: Add missing pflip irq for dcn2.0
+    - drm/i915: Handle max_bpc==16
+    - mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel
+      controllers
+    - ptrace: Set PF_SUPERPRIV when checking capability
+    - seccomp: Set PF_SUPERPRIV when checking capability
+    - x86/microcode/intel: Check patch signature before saving microcode for early
+      loading
+    - mm: memcg/slab: fix root memcg vmstats
+    - mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
+    - mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
+    - sched/fair: Fix overutilized update in enqueue_task_fair()
+    - Linux 5.4.80
+  * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint
+    (LP: #1908335)
+    - Input: elan_i2c - add support for high resolution reports
+    - Input: elan_i2c - add new trackpoint report type 0x5F
+    - Input: elantech - fix protocol errors for some trackpoints in SMBus mode
+  * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200)
+    - SAUCE: rtw88: 8723de: let cpu enter c10
+  * [UBUNTU 21.04] s390/pci: vfio-pci mmio being disabled erroneously
+    (LP: #1907265)
+    - s390/pci: Mark all VFs as not implementing PCI_COMMAND_MEMORY
+  * Touchpad not detected on ByteSpeed C15B laptop (LP: #1906128)
+    - Input: i8042 - add ByteSpeed touchpad to noloop table
+  * Fix reading speed and duplex sysfs on igc device (LP: #1906851)
+    - SAUCE: igc: Report speed and duplex as unknown when device is runtime
+      suspended
+  * stack trace in kernel (LP: #1903596)
+    - net: napi: remove useless stack trace
+  * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work
+    (LP: #1906229)
+    - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
+    - PM: ACPI: Refresh wakeup device power configuration every time
+  * CVE-2020-27777
+    - [Config]: Set CONFIG_PPC_RTAS_FILTER
+  * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663)
+    - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - powerpc: Only include kup-radix.h for 64-bit Book3S
+    - MIPS: PCI: Fix MIPS build
+    - powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
+    - net: lantiq: Add locking for TX DMA channel
+    - Input: sunkbd - avoid use-after-free in teardown paths
+    - mac80211: always wind down STA state
+    - can: proc: can_remove_proc(): silence remove_proc_entry warning
+    - KVM: x86: clflushopt should be treated as a no-op by emulation
+    - ACPI: GED: fix -Wformat
+    - Linux 5.4.79
+
+  [ Ubuntu: 5.4.0-65.73 ]
+
+  * focal/linux: 5.4.0-65.73 -proposed tracker (LP: #1912220)
+  * initramfs unpacking failed (LP: #1835660)
+    - SAUCE: lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+
+  [ Ubuntu: 5.4.0-64.72 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 05 Feb 2021 14:29:16 +0100
+
+linux-gkeop (5.4.0-1009.10) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1009.10 -proposed tracker (LP: #1911325)
+
+  [ Ubuntu: 5.4.0-63.71 ]
+
+  * focal/linux: 5.4.0-63.71 -proposed tracker (LP: #1911333)
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+
+  [ Ubuntu: 5.4.0-62.70 ]
+
+  * focal/linux: 5.4.0-62.70 -proposed tracker (LP: #1911144)
+  * CVE-2020-28374
+    - SAUCE: target: fix XCOPY NAA identifier lookup
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  [ Ubuntu: 5.4.0-60.67 ]
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - update dkms package versions
+  * CVE-2021-1052 // CVE-2021-1053
+    - [Packaging] NVIDIA -- Add the NVIDIA 460 driver
+
+ -- William Breathitt Gray <william.gray@canonical.com>  Thu, 14 Jan 2021 04:28:47 -0500
+
+linux-gkeop (5.4.0-1008.9) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1008.9 -proposed tracker (LP: #1907597)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+
+  [ Ubuntu: 5.4.0-59.65 ]
+
+  * focal/linux: 5.4.0-59.65 -proposed tracker (LP: #1907604)
+  * focal: selftests/bpf build broken: test_map_init.skel.h: No such file or
+    directory (LP: #1906866)
+    - SAUCE: Revert selftests/ "bpf: Zero-fill re-used per-cpu map element"
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 14 Dec 2020 14:35:36 +0100
+
+linux-gkeop (5.4.0-1007.8) focal; urgency=medium
+
+  * focal/linux-gkeop: 5.4.0-1007.8 -proposed tracker (LP: #1907383)
+
+  [ Ubuntu: 5.4.0-58.64 ]
+
+  * focal/linux: 5.4.0-58.64 -proposed tracker (LP: #1907390)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * raid10: discard leads to corrupted file system (LP: #1907262)
+    - Revert "dm raid: remove unnecessary discard limits for raid10"
+    - Revert "dm raid: fix discard limits for raid1 and raid10"
+    - Revert "md/raid10: improve discard request for far layout"
+    - Revert "md/raid10: improve raid10 discard request"
+    - Revert "md/raid10: pull codes that wait for blocked dev into one function"
+    - Revert "md/raid10: extend r10bio devs to raid disks"
+    - Revert "md: add md_submit_discard_bio() for submitting discard bio"
+
+  [ Ubuntu: 5.4.0-56.62 ]
+
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 09 Dec 2020 17:11:37 +0100
+
+linux-gkeop (5.4.0-1005.6) focal; urgency=medium
+
+  * Focal update: v5.4.66 upstream stable release (LP: #1896824)
+    - [Config] gkeop: updateconfigs for VGACON_SOFT_SCROLLBACK
+
+  * Request for eBPF patches into the 5.4 kernel (LP: #1887740)
+    - bpf: Enable retrieval of socket cookie for bind/post-bind hook
+    - bpf: Enable perf event rb output for bpf cgroup progs
+    - bpf: Add netns cookie and enable it for bpf cgroup hooks
+    - bpf, net: Fix build issue when net ns not configured
+    - bpf: Allow to retrieve cgroup v1 classid from v2 hooks
+    - bpf: Enable retrival of pid/tgid/comm from bpf cgroup hooks
+    - bpf: Add get{peer, sock}name attach types for sock_addr
+    - bpf, sk_msg: Add some generic helpers that may be useful from sk_msg
+    - bpf: Add BPF_FUNC_jiffies64
+    - bpf: Add socket assign support
+    - net: Track socket refcounts in skb_steal_sock()
+    - bpf: Don't refcount LISTEN sockets in sk_assign()
+    - bpf: Fix use of sk->sk_reuseport from sk_assign
+
+  [ Ubuntu: 5.4.0-55.61 ]
+
+  * focal/linux: 5.4.0-55.61 -proposed tracker (LP: #1903175)
+  * Update kernel packaging to support forward porting kernels (LP: #1902957)
+    - [Debian] Update for leader included in BACKPORT_SUFFIX
+  * Avoid double newline when running insertchanges (LP: #1903293)
+    - [Packaging] insertchanges: avoid double newline
+  * EFI: Fails when BootCurrent entry does not exist (LP: #1899993)
+    - efivarfs: Replace invalid slashes with exclamation marks in dentries.
+  * CVE-2020-14351
+    - perf/core: Fix race in the perf_mmap_close() function
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull codes that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: fix discard limits for raid1 and raid10
+    - dm raid: remove unnecessary discard limits for raid10
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: drop unnecessary offset_in_page in extent buffer helpers
+    - btrfs: extent_io: do extra check for extent buffer read write functions
+    - btrfs: extent-tree: kill BUG_ON() in __btrfs_free_extent()
+    - btrfs: extent-tree: kill the BUG_ON() in insert_inline_extent_backref()
+    - btrfs: ctree: check key order before merging tree blocks
+  * Ethernet no link lights after reboot (Intel i225-v 2.5G) (LP: #1902578)
+    - igc: Add PHY power management control
+  * Undetected Data corruption in MPI workloads that use VSX for reductions on
+    POWER9 DD2.1 systems (LP: #1902694)
+    - powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation
+    - selftests/powerpc: Make alignment handler test P9N DD2.1 vector CI load
+      workaround
+  * [20.04 FEAT] Support/enhancement of NVMe IPL (LP: #1902179)
+    - s390: nvme ipl
+    - s390: nvme reipl
+    - s390/ipl: support NVMe IPL kernel parameters
+  * uvcvideo: add mapping for HEVC payloads (LP: #1895803)
+    - media: uvcvideo: Add mapping for HEVC payloads
+  * Focal update: v5.4.73 upstream stable release (LP: #1902115)
+    - ibmveth: Switch order of ibmveth_helper calls.
+    - ibmveth: Identify ingress large send packets.
+    - ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
+    - mlx4: handle non-napi callers to napi_poll
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fix pos incrementment in ipv6_route_seq_next
+    - net/smc: fix valid DMBE buffer sizes
+    - net/tls: sendfile fails with ktls offload
+    - net: usb: qmi_wwan: add Cellient MPL200 card
+    - tipc: fix the skb_unshare() in tipc_buf_append()
+    - socket: fix option SO_TIMESTAMPING_NEW
+    - can: m_can_platform: don't call m_can_class_suspend in runtime suspend
+    - can: j1935: j1939_tp_tx_dat_new(): fix missing initialization of skbcnt
+    - net: j1939: j1939_session_fresh_new(): fix missing initialization of skbcnt
+    - net/ipv4: always honour route mtu during forwarding
+    - net_sched: remove a redundant goto chain check
+    - r8169: fix data corruption issue on RTL8402
+    - cxgb4: handle 4-tuple PEDIT to NAT mode translation
+    - binder: fix UAF when releasing todo list
+    - ALSA: bebob: potential info leak in hwdep_read()
+    - ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
+    - nvme-pci: disable the write zeros command for Intel 600P/P3100
+    - chelsio/chtls: fix socket lock
+    - chelsio/chtls: correct netdevice for vlan interface
+    - chelsio/chtls: correct function return and return type
+    - ibmvnic: save changed mac address to adapter->mac_addr
+    - net: ftgmac100: Fix Aspeed ast2600 TX hang issue
+    - net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
+    - net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling
+      ether_setup
+    - net: Properly typecast int values to set sk_max_pacing_rate
+    - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
+    - nexthop: Fix performance regression in nexthop deletion
+    - nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in
+      nfc_genl_fw_download()
+    - r8169: fix operation under forced interrupt threading
+    - selftests: forwarding: Add missing 'rp_filter' configuration
+    - tcp: fix to update snd_wl1 in bulk receiver fast path
+    - icmp: randomize the global rate limiter
+    - ALSA: hda/realtek - set mic to auto detect on a HP AIO machine
+    - ALSA: hda/realtek - Add mute Led support for HP Elitebook 845 G7
+    - ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
+    - cifs: remove bogus debug code
+    - cifs: Return the error from crypt_message when enc/dec key not found.
+    - SMB3: Resolve data corruption of TCP server info fields
+    - KVM: nVMX: Reset the segment cache when stuffing guest segs
+    - KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails
+    - KVM: x86/mmu: Commit zap of remaining invalid pages when recovering lpages
+    - KVM: SVM: Initialize prev_ga_tag before use
+    - ima: Don't ignore errors from crypto_shash_update()
+    - crypto: algif_aead - Do not set MAY_BACKLOG on the async path
+    - crypto: caam/qi - add fallback for XTS with more than 8B IV
+    - EDAC/i5100: Fix error handling order in i5100_init_one()
+    - EDAC/aspeed: Fix handling of platform_get_irq() error
+    - EDAC/ti: Fix handling of platform_get_irq() error
+    - perf/x86/intel/ds: Fix x86_pmu_stop warning for large PEBS
+    - x86/fpu: Allow multiple bits in clearcpuid= parameter
+    - drivers/perf: xgene_pmu: Fix uninitialized resource struct
+    - drivers/perf: thunderx2_pmu: Fix memory resource error handling
+    - sched/fair: Fix wrong cpu selecting from isolated domain
+    - perf/x86/intel/uncore: Update Ice Lake uncore units
+    - perf/x86/intel/uncore: Reduce the number of CBOX counters
+    - x86/nmi: Fix nmi_handle() duration miscalculation
+    - x86/events/amd/iommu: Fix sizeof mismatch
+    - crypto: algif_skcipher - EBUSY on aio should be an error
+    - crypto: mediatek - Fix wrong return value in mtk_desc_ring_alloc()
+    - crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
+    - crypto: picoxcell - Fix potential race condition bug
+    - media: tuner-simple: fix regression in simple_set_radio_freq
+    - media: Revert "media: exynos4-is: Add missed check for
+      pinctrl_lookup_state()"
+    - media: ov5640: Correct Bit Div register in clock tree diagram
+    - media: m5mols: Check function pointer in m5mols_sensor_power
+    - media: uvcvideo: Set media controller entity functions
+    - media: uvcvideo: Silence shift-out-of-bounds warning
+    - media: staging/intel-ipu3: css: Correctly reset some memory
+    - media: omap3isp: Fix memleak in isp_probe
+    - media: i2c: ov5640: Remain in power down for DVP mode unless streaming
+    - media: i2c: ov5640: Separate out mipi configuration from s_power
+    - media: i2c: ov5640: Enable data pins on poweron for DVP mode
+    - media: rcar_drif: Fix fwnode reference leak when parsing DT
+    - media: rcar_drif: Allocate v4l2_async_subdev dynamically
+    - media: rcar-csi2: Allocate v4l2_async_subdev dynamically
+    - crypto: omap-sham - fix digcnt register handling with export/import
+    - hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61}
+    - cypto: mediatek - fix leaks in mtk_desc_ring_alloc
+    - media: mx2_emmaprp: Fix memleak in emmaprp_probe
+    - media: tc358743: initialize variable
+    - media: tc358743: cleanup tc358743_cec_isr
+    - media: rcar-vin: Fix a reference count leak.
+    - media: rockchip/rga: Fix a reference count leak.
+    - media: platform: fcp: Fix a reference count leak.
+    - media: camss: Fix a reference count leak.
+    - media: s5p-mfc: Fix a reference count leak
+    - media: stm32-dcmi: Fix a reference count leak
+    - media: ti-vpe: Fix a missing check and reference count leak
+    - regulator: resolve supply after creating regulator
+    - pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
+    - spi: spi-s3c64xx: swap s3c64xx_spi_set_cs() and s3c64xx_enable_datapath()
+    - spi: spi-s3c64xx: Check return values
+    - blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
+    - ath10k: provide survey info as accumulated data
+    - drm/vkms: fix xrgb on compute crc
+    - Bluetooth: hci_uart: Cancel init work before unregistering
+    - drm/amd/display: Fix wrong return value in dm_update_plane_state()
+    - drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel
+    - ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
+    - ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
+    - ath10k: Fix the size used in a 'dma_free_coherent()' call in an error
+      handling path
+    - wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
+    - ASoC: qcom: lpass-platform: fix memory leak
+    - ASoC: qcom: lpass-cpu: fix concurrency issue
+    - brcmfmac: check ndev pointer
+    - mwifiex: Do not use GFP_KERNEL in atomic context
+    - staging: rtl8192u: Do not use GFP_KERNEL in atomic context
+    - drm/gma500: fix error check
+    - scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
+    - scsi: qla2xxx: Fix wrong return value in qlt_chk_unresolv_exchg()
+    - scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
+    - scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
+    - backlight: sky81452-backlight: Fix refcount imbalance on error
+    - staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()
+    - VMCI: check return value of get_user_pages_fast() for errors
+    - mm/error_inject: Fix allow_error_inject function signatures.
+    - drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
+    - drm/crc-debugfs: Fix memleak in crc_control_write
+    - binder: Remove bogus warning on failed same-process transaction
+    - tty: serial: earlycon dependency
+    - pty: do tty_flip_buffer_push without port->lock in pty_write
+    - pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()
+    - pwm: lpss: Add range limit check for the base_unit register value
+    - drivers/virt/fsl_hypervisor: Fix error handling path
+    - video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
+    - video: fbdev: sis: fix null ptr dereference
+    - video: fbdev: radeon: Fix memleak in radeonfb_pci_register
+    - ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
+    - HID: roccat: add bounds checking in kone_sysfs_write_settings()
+    - drm/msm: Avoid div-by-zero in dpu_crtc_atomic_check()
+    - drm/panfrost: Ensure GPU quirks are always initialised
+    - iomap: Clear page error before beginning a write
+    - pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
+    - pinctrl: mcp23s08: Fix mcp23x17 precious range
+    - net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
+    - scsi: mpt3sas: Fix sync irqs
+    - net: stmmac: use netif_tx_start|stop_all_queues() function
+    - cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
+    - drm: mxsfb: check framebuffer pitch
+    - coresight: etm4x: Handle unreachable sink in perf mode
+    - xhci: don't create endpoint debugfs entry before ring buffer is set.
+    - net: dsa: rtl8366: Check validity of passed VLANs
+    - net: dsa: rtl8366: Refactor VLAN/PVID init
+    - net: dsa: rtl8366: Skip PVID setting if not requested
+    - net: wilc1000: clean up resource in error path of init mon interface
+    - ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
+    - net: dsa: rtl8366rb: Support all 4096 VLANs
+    - spi: omap2-mcspi: Improve performance waiting for CHSTAT
+    - ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
+    - dmaengine: dmatest: Check list for emptiness before access its last entry
+    - misc: mic: scif: Fix error handling path
+    - ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
+    - usb: dwc2: Fix parameter type in function pointer prototype
+    - quota: clear padding in v2r1_mem2diskdqb()
+    - slimbus: core: check get_addr before removing laddr ida
+    - slimbus: core: do not enter to clock pause mode in core
+    - slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback
+    - ASoC: fsl_sai: Instantiate snd_soc_dai_driver
+    - HID: hid-input: fix stylus battery reporting
+    - nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell()
+    - nl80211: fix OBSS PD min and max offset validation
+    - coresight: etm: perf: Fix warning caused by etm_setup_aux failure
+    - ibmvnic: set up 200GBPS speed
+    - qtnfmac: fix resource leaks on unsupported iftype error return path
+    - iio: adc: stm32-adc: fix runtime autosuspend delay when slow polling
+    - net: enic: Cure the enic api locking trainwreck
+    - mfd: sm501: Fix leaks in probe()
+    - iwlwifi: mvm: split a print to avoid a WARNING in ROC
+    - usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
+    - usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
+    - nl80211: fix non-split wiphy information
+    - usb: dwc2: Fix INTR OUT transfers in DDMA mode.
+    - scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
+    - scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
+    - ipmi_si: Fix wrong return value in try_smi_init()
+    - platform/x86: mlx-platform: Remove PSU EEPROM configuration
+    - mwifiex: fix double free
+    - ipvs: clear skb->tstamp in forwarding path
+    - net: korina: fix kfree of rx/tx descriptor array
+    - netfilter: nf_log: missing vlan offload tag and proto
+    - mm/swapfile.c: fix potential memory leak in sys_swapon
+    - mm/memcg: fix device private memcg accounting
+    - mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
+    - fs: fix NULL dereference due to data race in prepend_path()
+    - selftests/ftrace: Change synthetic event name for inter-event-combined test
+    - i3c: master add i3c_master_attach_boardinfo to preserve boardinfo
+    - IB/mlx4: Fix starvation in paravirt mux/demux
+    - IB/mlx4: Adjust delayed work when a dup is observed
+    - powerpc/pseries: Fix missing of_node_put() in rng_init()
+    - powerpc/icp-hv: Fix missing of_node_put() in success path
+    - RDMA/ucma: Fix locking for ctx->events_reported
+    - RDMA/ucma: Add missing locking around rdma_leave_multicast()
+    - mtd: lpddr: fix excessive stack usage with clang
+    - RDMA/hns: Add a check for current state before modifying QP
+    - RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
+    - powerpc/pseries: explicitly reschedule during drmem_lmb list traversal
+    - pseries/drmem: don't cache node id in drmem_lmb struct
+    - RDMA/mlx5: Fix potential race between destroy and CQE poll
+    - mtd: mtdoops: Don't write panic data twice
+    - ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
+    - arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
+    - ida: Free allocated bitmap in error path
+    - xfs: limit entries returned when counting fsmap records
+    - xfs: fix deadlock and streamline xfs_getfsmap performance
+    - xfs: fix high key handling in the rt allocator's query_range function
+    - RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page
+      boundary
+    - RDMA/umem: Prevent small pages from being returned by
+      ib_umem_find_best_pgsz()
+    - RDMA/qedr: Fix qp structure memory leak
+    - RDMA/qedr: Fix use of uninitialized field
+    - RDMA/qedr: Fix return code if accept is called on a destroyed qp
+    - RDMA/qedr: Fix inline size returned for iWARP
+    - powerpc/book3s64/hash/4k: Support large linear mapping range with 4K
+    - powerpc/tau: Use appropriate temperature sample interval
+    - powerpc/tau: Convert from timer to workqueue
+    - powerpc/tau: Remove duplicated set_thresholds() call
+    - powerpc/tau: Check processor type before enabling TAU interrupt
+    - powerpc/tau: Disable TAU between measurements
+    - powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
+    - RDMA/cma: Remove dead code for kernel rdmacm multicast
+    - RDMA/cma: Consolidate the destruction of a cma_multicast in one place
+    - perf intel-pt: Fix "context_switch event has no tid" error
+    - RDMA/hns: Set the unsupported wr opcode
+    - RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
+    - i40iw: Add support to make destroy QP synchronous
+    - perf stat: Skip duration_time in setup_system_wide
+    - RDMA/hns: Fix the wrong value of rnr_retry when querying qp
+    - RDMA/hns: Fix missing sq_sig_type when querying QP
+    - mtd: rawnand: vf610: disable clk on error handling path in probe
+    - mtd: spinand: gigadevice: Only one dummy byte in QUADIO
+    - mtd: spinand: gigadevice: Add QE Bit
+    - kdb: Fix pager search for multi-line strings
+    - overflow: Include header file with SIZE_MAX declaration
+    - RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces
+    - powerpc/perf: Exclude pmc5/6 from the irrelevant PMU group constraints
+    - powerpc/perf/hv-gpci: Fix starting index value
+    - i3c: master: Fix error return in cdns_i3c_master_probe()
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
+    - IB/rdmavt: Fix sizeof mismatch
+    - RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
+    - maiblox: mediatek: Fix handling of platform_get_irq() error
+    - selftests/powerpc: Fix eeh-basic.sh exit codes
+    - f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
+    - RDMA/rxe: Handle skb_clone() failure in rxe_recv.c
+    - mm/page_owner: change split_page_owner to take a count
+    - lib/crc32.c: fix trivial typo in preprocessor condition
+    - ramfs: fix nommu mmap with gaps in the page cache
+    - rapidio: fix error handling path
+    - rapidio: fix the missed put_device() for rio_mport_add_riodev
+    - mailbox: avoid timer start from callback
+    - i2c: rcar: Auto select RESET_CONTROLLER
+    - clk: meson: g12a: mark fclk_div2 as critical
+    - PCI: aardvark: Check for errors from pci_bridge_emul_init() call
+    - PCI: iproc: Set affinity mask on MSI interrupts
+    - rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
+    - PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY
+    - vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn
+    - clk: qcom: gcc-sdm660: Fix wrong parent_map
+    - clk: keystone: sci-clk: fix parsing assigned-clock data during probe
+    - pwm: img: Fix null pointer access in probe
+    - clk: rockchip: Initialize hw to error to avoid undefined behavior
+    - clk: mediatek: add UART0 clock support
+    - module: statically initialize init section freeing data
+    - clk: at91: clk-main: update key before writing AT91_CKGR_MOR
+    - clk: bcm2835: add missing release if devm_clk_hw_register fails
+    - watchdog: Fix memleak in watchdog_cdev_register
+    - watchdog: Use put_device on error
+    - watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3
+    - svcrdma: fix bounce buffers for unaligned offsets and multiple pages
+    - ext4: limit entries returned when counting fsmap records
+    - vfio/pci: Clear token on bypass registration failure
+    - vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
+    - clk: imx8mq: Fix usdhc parents order
+    - SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
+    - Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
+    - Input: stmfts - fix a & vs && typo
+    - Input: ep93xx_keypad - fix handling of platform_get_irq() error
+    - Input: omap4-keypad - fix handling of platform_get_irq() error
+    - Input: twl4030_keypad - fix handling of platform_get_irq() error
+    - Input: sun4i-ps2 - fix handling of platform_get_irq() error
+    - KVM: x86: emulating RDPID failure shall return #UD rather than #GP
+    - scsi: bfa: Fix error return in bfad_pci_init()
+    - netfilter: conntrack: connection timeout after re-register
+    - netfilter: ebtables: Fixes dropping of small packets in bridge nat
+    - netfilter: nf_fwd_netdev: clear timestamp in forwarding path
+    - arm64: dts: meson: vim3: correct led polarity
+    - ARM: dts: imx6sl: fix rng node
+    - ARM: at91: pm: of_node_put() after its usage
+    - ARM: s3c24xx: fix mmc gpio lookup tables
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
+    - arm64: dts: allwinner: h5: remove Mali GPU PMU module
+    - memory: omap-gpmc: Fix a couple off by ones
+    - memory: omap-gpmc: Fix build error without CONFIG_OF
+    - memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
+    - arm64: dts: imx8mq: Add missing interrupts to GPC
+    - arm64: dts: qcom: msm8916: Remove one more thermal trip point unit name
+    - arm64: dts: qcom: pm8916: Remove invalid reg size from wcd_codec
+    - arm64: dts: qcom: msm8916: Fix MDP/DSI interrupts
+    - arm64: dts: renesas: r8a77990: Fix MSIOF1 DMA channels
+    - arm64: dts: renesas: r8a774c0: Fix MSIOF1 DMA channels
+    - arm64: dts: actions: limit address range for pinctrl node
+    - ARM: dts: owl-s500: Fix incorrect PPI interrupt specifiers
+    - soc: fsl: qbman: Fix return value on success
+    - ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
+    - arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
+    - ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
+    - lightnvm: fix out-of-bounds write to array devices->info[]
+    - powerpc/powernv/dump: Fix race while processing OPAL dump
+    - powerpc/pseries: Avoid using addr_to_pfn in real mode
+    - nvmet: fix uninitialized work for zero kato
+    - NTB: hw: amd: fix an issue about leak system resources
+    - sched/features: Fix !CONFIG_JUMP_LABEL case
+    - perf: correct SNOOPX field offset
+    - i2c: core: Restore acpi_walk_dep_device_list() getting called after
+      registering the ACPI i2c devs
+    - md/bitmap: fix memory leak of temporary bitmap
+    - block: ratelimit handle_bad_sector() message
+    - crypto: ccp - fix error handling
+    - x86/asm: Replace __force_order with a memory clobber
+    - x86/mce: Add Skylake quirk for patrol scrub reported errors
+    - media: firewire: fix memory leak
+    - media: ati_remote: sanity check for both endpoints
+    - media: st-delta: Fix reference count leak in delta_run_work
+    - media: sti: Fix reference count leaks
+    - media: exynos4-is: Fix several reference count leaks due to
+      pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak
+    - media: vsp1: Fix runtime PM imbalance on error
+    - media: platform: s3c-camif: Fix runtime PM imbalance on error
+    - media: platform: sti: hva: Fix runtime PM imbalance on error
+    - media: bdisp: Fix runtime PM imbalance on error
+    - media: media/pci: prevent memory leak in bttv_probe
+    - x86/mce: Make mce_rdmsrl() panic on an inaccessible MSR
+    - media: uvcvideo: Ensure all probed info is returned to v4l2
+    - mmc: sdio: Check for CISTPL_VERS_1 buffer size
+    - media: saa7134: avoid a shift overflow
+    - media: venus: fixes for list corruption
+    - fs: dlm: fix configfs memory leak
+    - media: venus: core: Fix runtime PM imbalance in venus_probe
+    - ntfs: add check for mft record size in superblock
+    - ip_gre: set dev->hard_header_len and dev->needed_headroom properly
+    - mac80211: handle lack of sband->bitrates in rates
+    - PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
+    - scsi: mvumi: Fix error return in mvumi_io_attach()
+    - scsi: target: core: Add CONTROL field for trace events
+    - mic: vop: copy data to kernel space then write to io memory
+    - misc: vop: add round_up(x,4) for vring_size to avoid kernel panic
+    - usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc
+    - usb: gadget: function: printer: fix use-after-free in __lock_acquire
+    - udf: Limit sparing table size
+    - udf: Avoid accessing uninitialized data on failed inode read
+    - rtw88: increse the size of rx buffer size
+    - USB: cdc-acm: handle broken union descriptors
+    - usb: dwc3: simple: add support for Hikey 970
+    - can: flexcan: flexcan_chip_stop(): add error handling and propagate error
+      value
+    - ath9k: hif_usb: fix race condition between usb_get_urb() and
+      usb_kill_anchored_urbs()
+    - drm/panfrost: add amlogic reset quirk callback
+    - bpf: Limit caller's stack depth 256 for subprogs with tailcalls
+    - misc: rtsx: Fix memory leak in rtsx_pci_probe
+    - reiserfs: only call unlock_new_inode() if I_NEW
+    - opp: Prevent memory leak in dev_pm_opp_attach_genpd()
+    - xfs: make sure the rt allocator doesn't run off the end
+    - usb: ohci: Default to per-port over-current protection
+    - Bluetooth: Only mark socket zapped after unlocking
+    - drm/msm/a6xx: fix a potential overflow issue
+    - iomap: fix WARN_ON_ONCE() from unprivileged users
+    - scsi: ibmvfc: Fix error return in ibmvfc_probe()
+    - scsi: qla2xxx: Warn if done() or free() are called on an already freed srb
+    - selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
+    - brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
+    - rtl8xxxu: prevent potential memory leak
+    - Fix use after free in get_capset_info callback.
+    - HID: ite: Add USB id match for Acer One S1003 keyboard dock
+    - scsi: qedf: Return SUCCESS if stale rport is encountered
+    - scsi: qedi: Protect active command list to avoid list corruption
+    - scsi: qedi: Fix list_del corruption while removing active I/O
+    - fbmem: add margin check to fb_check_caps()
+    - tty: ipwireless: fix error handling
+    - Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb
+    - ipvs: Fix uninit-value in do_ip_vs_set_ctl()
+    - reiserfs: Fix memory leak in reiserfs_parse_options()
+    - mwifiex: don't call del_timer_sync() on uninitialized timer
+    - ALSA: hda/ca0132 - Add AE-7 microphone selection commands.
+    - ALSA: hda/ca0132 - Add new quirk ID for SoundBlaster AE-7.
+    - scsi: smartpqi: Avoid crashing kernel for controller issues
+    - brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
+    - usb: core: Solve race condition in anchor cleanup functions
+    - scsi: ufs: ufs-qcom: Fix race conditions caused by ufs_qcom_testbus_config()
+    - dmaengine: dw: Add DMA-channels mask cell support
+    - dmaengine: dw: Activate FIFO-mode for memory peripherals only
+    - ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
+    - net: korina: cast KSEG0 address to pointer in kfree
+    - s390/qeth: don't let HW override the configured port role
+    - tty: serial: lpuart: fix lpuart32_write usage
+    - tty: serial: fsl_lpuart: fix lpuart32_poll_get_char
+    - usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
+    - USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
+    - usb: cdns3: gadget: free interrupt after gadget has deleted
+    - eeprom: at25: set minimum read/write access stride to 1
+    - usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
+    - Linux 5.4.73
+  * Focal update: v5.4.72 upstream stable release (LP: #1902111)
+    - perf cs-etm: Move definition of 'traceid_list' global variable from header
+      file
+    - btrfs: don't pass system_chunk into can_overcommit
+    - btrfs: take overcommit into account in inc_block_group_ro
+    - ARM: 8939/1: kbuild: use correct nm executable
+    - ACPI: Always build evged in
+    - Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
+    - Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
+    - Bluetooth: Disconnect if E0 is used for Level 4
+    - media: usbtv: Fix refcounting mixup
+    - USB: serial: option: add Cellient MPL200 card
+    - USB: serial: option: Add Telit FT980-KS composition
+    - staging: comedi: check validity of wMaxPacketSize of usb endpoints found
+    - USB: serial: pl2303: add device-id for HP GC device
+    - USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
+    - reiserfs: Initialize inode keys properly
+    - reiserfs: Fix oops during mount
+    - xen/events: don't use chip_data for legacy IRQs
+    - crypto: bcm - Verify GCM/CCM key length in setkey
+    - crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
+    - Linux 5.4.72
+  * Focal update: v5.4.71 upstream stable release (LP: #1902110)
+    - fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
+    - Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
+    - fbcon: Fix global-out-of-bounds read in fbcon_get_font()
+    - Revert "ravb: Fixed to be able to unload modules"
+    - io_uring: Fix resource leaking when kill the process
+    - io_uring: Fix missing smp_mb() in io_cancel_async_work()
+    - io_uring: Fix remove irrelevant req from the task_list
+    - io_uring: Fix double list add in io_queue_async_work()
+    - net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
+    - drm/nouveau/mem: guard against NULL pointer access in mem_del
+    - vhost: Don't call access_ok() when using IOTLB
+    - vhost: Use vhost_get_used_size() in vhost_vring_set_addr()
+    - usermodehelper: reset umask to default before executing user process
+    - Platform: OLPC: Fix memleak in olpc_ec_probe
+    - platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP
+      Pavilion 11 x360
+    - platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
+    - bpf: Fix sysfs export of empty BTF section
+    - bpf: Prevent .BTF section elimination
+    - platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE
+      reporting
+    - platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse
+    - driver core: Fix probe_count imbalance in really_probe()
+    - perf test session topology: Fix data path
+    - perf top: Fix stdio interface input handling with glibc 2.28+
+    - i2c: i801: Exclude device from suspend direct complete optimization
+    - arm64: dts: stratix10: add status to qspi dts node
+    - Btrfs: send, allow clone operations within the same file
+    - Btrfs: send, fix emission of invalid clone operations within the same file
+    - btrfs: volumes: Use more straightforward way to calculate map length
+    - btrfs: Ensure we trim ranges across block group boundary
+    - btrfs: fix RWF_NOWAIT write not failling when we need to cow
+    - btrfs: allow btrfs_truncate_block() to fallback to nocow for data space
+      reservation
+    - nvme-core: put ctrl ref when module ref get fail
+    - macsec: avoid use-after-free in macsec_handle_frame()
+    - mm/khugepaged: fix filemap page_to_pgoff(page) != offset
+    - net: introduce helper sendpage_ok() in include/linux/net.h
+    - tcp: use sendpage_ok() to detect misused .sendpage
+    - nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
+    - xfrmi: drop ignore_df check before updating pmtu
+    - cifs: Fix incomplete memory allocation on setxattr path
+    - i2c: meson: fix clock setting overwrite
+    - i2c: meson: fixup rate calculation with filter delay
+    - i2c: owl: Clear NACK and BUS error bits
+    - sctp: fix sctp_auth_init_hmacs() error path
+    - team: set dev->needed_headroom in team_setup_by_port()
+    - net: team: fix memory leak in __team_options_register
+    - openvswitch: handle DNAT tuple collision
+    - drm/amdgpu: prevent double kfree ttm->sg
+    - iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
+    - xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
+    - xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
+    - xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
+    - xfrm: clone whole liftime_cur structure in xfrm_do_migrate
+    - net: stmmac: removed enabling eee in EEE set callback
+    - platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP
+    - xfrm: Use correct address family in xfrm_state_find
+    - iavf: use generic power management
+    - iavf: Fix incorrect adapter get in iavf_resume
+    - net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop
+    - bonding: set dev->needed_headroom in bond_setup_by_slave()
+    - mdio: fix mdio-thunder.c dependency & build error
+    - mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path
+    - r8169: fix RTL8168f/RTL8411 EPHY config
+    - net: usb: ax88179_178a: fix missing stop entry in driver_info
+    - virtio-net: don't disable guest csum when disable LRO
+    - net/mlx5: Avoid possible free of command entry while timeout comp handler
+    - net/mlx5: Fix request_irqs error flow
+    - net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU
+    - net/mlx5e: Fix VLAN cleanup flow
+    - net/mlx5e: Fix VLAN create flow
+    - rxrpc: Fix rxkad token xdr encoding
+    - rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
+    - rxrpc: Fix some missing _bh annotations on locking conn->state_lock
+    - rxrpc: The server keyring isn't network-namespaced
+    - rxrpc: Fix server keyring leak
+    - perf: Fix task_function_call() error handling
+    - mmc: core: don't set limits.discard_granularity as 0
+    - mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected
+      by khugepaged
+    - tcp: fix receive window update in tcp_add_backlog()
+    - net/core: check length before updating Ethertype in skb_mpls_{push,pop}
+    - net/tls: race causes kernel panic
+    - net/mlx5e: Fix driver's declaration to support GRE offload
+    - Input: ati_remote2 - add missing newlines when printing module parameters
+    - net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
+    - net_sched: defer tcf_idr_insert() in tcf_action_init_1()
+    - net_sched: commit action insertions together
+    - Linux 5.4.71
+  * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL:
+    can't add fou port 7777, skipping test" (LP: #1891421)
+    - selftests: rtnetlink: load fou module for kci_test_encap_fou() test
+  * alsa/hda/realtek - The front Mic on a HP machine doesn't work (LP: #1899508)
+    - ALSA: hda/realtek - The front Mic on a HP machine doesn't work
+  * Enable brightness control on HP DreamColor panel (LP: #1898865)
+    - drm/i915/dpcd_bl: Unbreak enable_dpcd_backlight modparam
+    - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD
+      quirk
+    - SAUCE: drm/dp: HP DreamColor panel brigntness fix
+  * Fix non-working Intel NVMe after S3 (LP: #1900847)
+    - SAUCE: PCI: Enable ACS quirk on all CML root ports
+  * bcache: Issues with large IO wait in bch_mca_scan() when shrinker is enabled
+    (LP: #1898786)
+    - bcache: remove member accessed from struct btree
+    - bcache: reap c->btree_cache_freeable from the tail in bch_mca_scan()
+    - bcache: reap from tail of c->btree_cache in bch_mca_scan()
+  * Improve descriptions for XFAIL cases in kselftests/net/psock_snd
+    (LP: #1900088)
+    - selftests/net: improve descriptions for XFAIL cases in psock_snd.sh
+  * ceph: fix inode number handling on arches with 32-bit ino_t (LP: #1899582)
+    - ceph: fix inode number handling on arches with 32-bit ino_t
+  * Fix system reboot when disconnecting WiFi (LP: #1899726)
+    - iwlwifi: msix: limit max RX queues for 9000 family
+  * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586)
+    - ALSA: hda: fix jack detection with Realtek codecs when in D3
+  * Focal update: v5.4.70 upstream stable release (LP: #1900632)
+    - btrfs: fix filesystem corruption after a device replace
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS
+      models
+    - USB: gadget: f_ncm: Fix NDP16 datagram validation
+    - gpio: siox: explicitly support only threaded irqs
+    - gpio: mockup: fix resource leak in error path
+    - gpio: tc35894: fix up tc35894 interrupt configuration
+    - clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
+    - vsock/virtio: add transport parameter to the
+      virtio_transport_reset_no_sock()
+    - net: virtio_vsock: Enhance connection semantics
+    - xfs: trim IO to found COW extent limit
+    - Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
+    - iio: adc: qcom-spmi-adc5: fix driver name
+    - ftrace: Move RCU is watching check after recursion check
+    - memstick: Skip allocating card when removing host
+    - drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
+    - clocksource/drivers/timer-gx6605s: Fixup counter reload
+    - libbpf: Remove arch-specific include path in Makefile
+    - drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
+    - drm/sun4i: mixer: Extend regmap max_register
+    - net: dec: de2104x: Increase receive ring size for Tulip
+    - rndis_host: increase sleep time in the query-response loop
+    - nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
+    - fuse: fix the ->direct_IO() treatment of iov_iter
+    - drivers/net/wan/lapbether: Make skb->protocol consistent with the header
+    - drivers/net/wan/hdlc: Set skb->protocol before transmitting
+    - mac80211: Fix radiotap header channel flag for 6GHz band
+    - mac80211: do not allow bigger VHT MPDUs than the hardware supports
+    - tracing: Make the space reserved for the pid wider
+    - tools/io_uring: fix compile breakage
+    - spi: fsl-espi: Only process interrupts for expected events
+    - nvme-pci: fix NULL req in completion handler
+    - nvme-fc: fail new connections to a deleted host or remote port
+    - gpio: sprd: Clear interrupt when setting the type as edge
+    - phy: ti: am654: Fix a leak in serdes_am654_probe()
+    - pinctrl: mvebu: Fix i2c sda definition for 98DX3236
+    - nfs: Fix security label length not being reset
+    - clk: tegra: Always program PLL_E when enabled
+    - clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
+    - iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
+    - gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
+    - gpio/aspeed-sgpio: don't enable all interrupts by default
+    - gpio: aspeed: fix ast2600 bank properties
+    - i2c: cpm: Fix i2c_ram structure
+    - Input: trackpoint - enable Synaptics trackpoints
+    - scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
+    - random32: Restore __latent_entropy attribute on net_rand_state
+    - block/diskstats: more accurate approximation of io_ticks for slow disks
+    - mm: replace memmap_context by meminit_context
+    - mm: don't rely on system state to detect hot-plug operations
+    - nvme: Cleanup and rename nvme_block_nr()
+    - nvme: Introduce nvme_lba_to_sect()
+    - nvme: consolidate chunk_sectors settings
+    - epoll: do not insert into poll queues until all sanity checks are done
+    - epoll: replace ->visited/visited_list with generation count
+    - epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
+    - ep_create_wakeup_source(): dentry name can change under you...
+    - netfilter: ctnetlink: add a range check for l3/l4 protonum
+    - Linux 5.4.70
+  * Focal update: v5.4.69 upstream stable release (LP: #1900624)
+    - kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
+    - selinux: allow labeling before policy is loaded
+    - media: mc-device.c: fix memleak in media_device_register_entity
+    - drm/amd/display: Do not double-buffer DTO adjustments
+    - drm/amdkfd: Fix race in gfx10 context restore handler
+    - dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
+    - scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
+    - ath10k: fix array out-of-bounds access
+    - ath10k: fix memory leak for tpc_stats_final
+    - PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
+    - mm: fix double page fault on arm64 if PTE_AF is cleared
+    - scsi: aacraid: fix illegal IO beyond last LBA
+    - m68k: q40: Fix info-leak in rtc_ioctl
+    - xfs: fix inode fork extent count overflow
+    - gma/gma500: fix a memory disclosure bug due to uninitialized bytes
+    - ASoC: kirkwood: fix IRQ error handling
+    - soundwire: intel/cadence: fix startup sequence
+    - media: smiapp: Fix error handling at NVM reading
+    - drm/amd/display: Free gamma after calculating legacy transfer function
+    - xfs: properly serialise fallocate against AIO+DIO
+    - leds: mlxreg: Fix possible buffer overflow
+    - dm table: do not allow request-based DM to stack on partitions
+    - PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
+    - scsi: fnic: fix use after free
+    - powerpc/64s: Always disable branch profiling for prom_init.o
+    - net: silence data-races on sk_backlog.tail
+    - dax: Fix alloc_dax_region() compile warning
+    - iomap: Fix overflow in iomap_page_mkwrite
+    - f2fs: avoid kernel panic on corruption test
+    - clk/ti/adpll: allocate room for terminating null
+    - drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
+    - ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
+    - mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of
+      cfi_amdstd_setup()
+    - mfd: mfd-core: Protect against NULL call-back function pointer
+    - drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
+    - tpm_crb: fix fTPM on AMD Zen+ CPUs
+    - tracing: Verify if trace array exists before destroying it.
+    - tracing: Adding NULL checks for trace_array descriptor pointer
+    - bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
+    - dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq
+      fails
+    - x86/kdump: Always reserve the low 1M when the crashkernel option is
+      specified
+    - RDMA/qedr: Fix potential use after free
+    - RDMA/i40iw: Fix potential use after free
+    - PCI: Avoid double hpmemsize MMIO window assignment
+    - fix dget_parent() fastpath race
+    - xfs: fix attr leaf header freemap.size underflow
+    - RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
+    - ubi: Fix producing anchor PEBs
+    - mmc: core: Fix size overflow for mmc partitions
+    - gfs2: clean up iopen glock mess in gfs2_create_inode
+    - scsi: pm80xx: Cleanup command when a reset times out
+    - mt76: do not use devm API for led classdev
+    - mt76: add missing locking around ampdu action
+    - debugfs: Fix !DEBUG_FS debugfs_create_automount
+    - SUNRPC: Capture completion of all RPC tasks
+    - CIFS: Use common error handling code in smb2_ioctl_query_info()
+    - CIFS: Properly process SMB3 lease breaks
+    - f2fs: stop GC when the victim becomes fully valid
+    - ASoC: max98090: remove msleep in PLL unlocked workaround
+    - xtensa: fix system_call interaction with ptrace
+    - s390: avoid misusing CALL_ON_STACK for task stack setup
+    - xfs: fix realtime file data space leak
+    - drm/amdgpu: fix calltrace during kmd unload(v3)
+    - arm64: insn: consistently handle exit text
+    - selftests/bpf: De-flake test_tcpbpf
+    - kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
+    - kernel/sys.c: avoid copying possible padding bytes in copy_to_user
+    - KVM: arm/arm64: vgic: Fix potential double free dist->spis in
+      __kvm_vgic_destroy()
+    - module: Remove accidental change of module_enable_x()
+    - xfs: fix log reservation overflows when allocating large rt extents
+    - ALSA: hda: enable regmap internal locking
+    - tipc: fix link overflow issue at socket shutdown
+    - vcc_seq_next should increase position index
+    - neigh_stat_seq_next() should increase position index
+    - rt_cpu_seq_next should increase position index
+    - ipv6_route_seq_next should increase position index
+    - drm/mcde: Handle pending vblank while disabling display
+    - seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
+    - drm/scheduler: Avoid accessing freed bad job.
+    - media: ti-vpe: cal: Restrict DMA to avoid memory corruption
+    - opp: Replace list_kref with a local counter
+    - scsi: qla2xxx: Fix stuck session in GNL
+    - sctp: move trace_sctp_probe_path into sctp_outq_sack
+    - ACPI: EC: Reference count query handlers under lock
+    - scsi: ufs: Make ufshcd_add_command_trace() easier to read
+    - scsi: ufs: Fix a race condition in the tracing code
+    - drm/amd/display: Initialize DSC PPS variables to 0
+    - i2c: tegra: Prevent interrupt triggering after transfer timeout
+    - btrfs: tree-checker: Check leaf chunk item size
+    - dmaengine: zynqmp_dma: fix burst length configuration
+    - s390/cpum_sf: Use kzalloc and minor changes
+    - nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
+    - powerpc/eeh: Only dump stack once if an MMIO loop is detected
+    - Bluetooth: btrtl: Use kvmalloc for FW allocations
+    - tracing: Set kernel_stack's caller size properly
+    - ARM: 8948/1: Prevent OOB access in stacktrace
+    - ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
+    - ceph: ensure we have a new cap before continuing in fill_inode
+    - selftests/ftrace: fix glob selftest
+    - tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
+    - Bluetooth: Fix refcount use-after-free issue
+    - mm/swapfile.c: swap_next should increase position index
+    - mm: pagewalk: fix termination condition in walk_pte_range()
+    - Bluetooth: prefetch channel before killing sock
+    - ALSA: hda: Clear RIRB status before reading WP
+    - skbuff: fix a data race in skb_queue_len()
+    - nfsd: Fix a perf warning
+    - drm/amd/display: fix workaround for incorrect double buffer register for DLG
+      ADL and TTU
+    - audit: CONFIG_CHANGE don't log internal bookkeeping as an event
+    - selinux: sel_avc_get_stat_idx should increase position index
+    - drm/omap: fix possible object reference leak
+    - locking/lockdep: Decrement IRQ context counters when removing lock chain
+    - clk: stratix10: use do_div() for 64-bit calculation
+    - crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi
+      test
+    - mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
+    - mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
+    - ALSA: usb-audio: Don't create a mixer element with bogus volume range
+    - perf test: Fix test trace+probe_vfs_getname.sh on s390
+    - RDMA/rxe: Fix configuration of atomic queue pair attributes
+    - KVM: x86: fix incorrect comparison in trace event
+    - KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
+    - dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
+    - media: staging/imx: Missing assignment in
+      imx_media_capture_device_register()
+    - x86/pkeys: Add check for pkey "overflow"
+    - bpf: Remove recursion prevention from rcu free callback
+    - dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
+    - dmaengine: tegra-apb: Prevent race conditions on channel's freeing
+    - soundwire: bus: disable pm_runtime in sdw_slave_delete
+    - drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
+    - drm/omap: dss: Cleanup DSS ports on initialisation failure
+    - iavf: use tc_cls_can_offload_and_chain0() instead of chain check
+    - firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
+    - random: fix data races at timer_rand_state
+    - bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host
+      removal
+    - ASoC: SOF: ipc: check ipc return value before data copy
+    - media: go7007: Fix URB type for interrupt handling
+    - Bluetooth: guard against controllers sending zero'd events
+    - timekeeping: Prevent 32bit truncation in scale64_check_overflow()
+    - powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
+    - drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
+    - ext4: fix a data race at inode->i_disksize
+    - perf jevents: Fix leak of mapfile memory
+    - mm: avoid data corruption on CoW fault into PFN-mapped VMA
+    - drm/amdgpu: increase atombios cmd timeout
+    - ARM: OMAP2+: Handle errors for cpu_pm
+    - clk: imx: Fix division by zero warning on pfdv2
+    - cpu-topology: Fix the potential data corruption
+    - s390/irq: replace setup_irq() by request_irq()
+    - perf cs-etm: Swap packets for instruction samples
+    - perf cs-etm: Correct synthesizing instruction samples
+    - ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
+    - scsi: aacraid: Disabling TM path and only processing IOP reset
+    - Bluetooth: L2CAP: handle l2cap config request during open state
+    - media: tda10071: fix unsigned sign extension overflow
+    - tty: sifive: Finish transmission before changing the clock
+    - xfs: don't ever return a stale pointer from __xfs_dir3_free_read
+    - xfs: mark dir corrupt when lookup-by-hash fails
+    - ext4: mark block bitmap corrupted when found instead of BUGON
+    - tpm: ibmvtpm: Wait for buffer to be set before proceeding
+    - rtc: sa1100: fix possible race condition
+    - rtc: ds1374: fix possible race condition
+    - nfsd: Don't add locks to closed or closing open stateids
+    - RDMA/cm: Remove a race freeing timewait_info
+    - intel_th: Disallow multi mode on devices where it's broken
+    - KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like
+      the valid ones
+    - drm/msm: fix leaks if initialization fails
+    - drm/msm/a5xx: Always set an OPP supported hardware value
+    - tracing: Use address-of operator on section symbols
+    - thermal: rcar_thermal: Handle probe error gracefully
+    - KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard
+      interrupt context
+    - perf parse-events: Fix 3 use after frees found with clang ASAN
+    - btrfs: do not init a reloc root if we aren't relocating
+    - btrfs: free the reloc_control in a consistent way
+    - r8169: improve RTL8168b FIFO overflow workaround
+    - serial: 8250_port: Don't service RX FIFO if throttled
+    - serial: 8250_omap: Fix sleeping function called from invalid context during
+      probe
+    - serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
+    - perf cpumap: Fix snprintf overflow check
+    - net: axienet: Convert DMA error handler to a work queue
+    - net: axienet: Propagate failure of DMA descriptor setup
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
+    - tools: gpio-hammer: Avoid potential overflow in main
+    - exec: Add exec_update_mutex to replace cred_guard_mutex
+    - exec: Fix a deadlock in strace
+    - selftests/ptrace: add test cases for dead-locks
+    - kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
+    - proc: Use new infrastructure to fix deadlocks in execve
+    - proc: io_accounting: Use new infrastructure to fix deadlocks in execve
+    - perf: Use new infrastructure to fix deadlocks in execve
+    - nvme-multipath: do not reset on unknown status
+    - nvme: Fix ctrl use-after-free during sysfs deletion
+    - nvme: Fix controller creation races with teardown flow
+    - brcmfmac: Fix double freeing in the fmac usb data path
+    - xfs: prohibit fs freezing when using empty transactions
+    - RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
+    - IB/iser: Always check sig MR before putting it to the free pool
+    - scsi: hpsa: correct race condition in offload enabled
+    - SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
+    - svcrdma: Fix leak of transport addresses
+    - netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
+    - PCI: Use ioremap(), not phys_to_virt() for platform ROM
+    - ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
+    - ubifs: ubifs_add_orphan: Fix a memory leak bug
+    - ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
+    - ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra
+      endpoint descriptor
+    - PCI: pciehp: Fix MSI interrupt race
+    - NFS: Fix races nfs_page_group_destroy() vs
+      nfs_destroy_unlinked_subrequests()
+    - drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
+    - powerpc/perf: Implement a global lock to avoid races between trace, core and
+      thread imc events.
+    - mm/kmemleak.c: use address-of operator on section symbols
+    - mm/filemap.c: clear page error before actual read
+    - mm/swapfile: fix data races in try_to_unuse()
+    - mm/vmscan.c: fix data races using kswapd_classzone_idx
+    - SUNRPC: Don't start a timer on an already queued rpc task
+    - nvmet-rdma: fix double free of rdma queue
+    - workqueue: Remove the warning in wq_worker_sleeping()
+    - drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
+    - mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
+    - ALSA: hda: Skip controller resume if not needed
+    - scsi: qedi: Fix termination timeouts in session logout
+    - serial: uartps: Wait for tx_empty in console setup
+    - btrfs: fix setting last_trans for reloc roots
+    - KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
+    - perf stat: Force error in fallback on :k events
+    - bdev: Reduce time holding bd_mutex in sync in blkdev_close()
+    - drivers: char: tlclk.c: Avoid data race between init and interrupt handler
+    - KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
+    - KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
+    - net: openvswitch: use u64 for meter bucket
+    - scsi: aacraid: Fix error handling paths in aac_probe_one()
+    - staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
+    - sparc64: vcc: Fix error return code in vcc_probe()
+    - arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
+    - sched/fair: Eliminate bandwidth race between throttling and distribution
+    - dpaa2-eth: fix error return code in setup_dpni()
+    - dt-bindings: sound: wm8994: Correct required supplies based on actual
+      implementaion
+    - devlink: Fix reporter's recovery condition
+    - atm: fix a memory leak of vcc->user_back
+    - media: venus: vdec: Init registered list unconditionally
+    - perf mem2node: Avoid double free related to realloc
+    - mm/slub: fix incorrect interpretation of s->offset
+    - i2c: tegra: Restore pinmux on system resume
+    - power: supply: max17040: Correct voltage reading
+    - phy: samsung: s5pv210-usb2: Add delay after reset
+    - Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
+    - USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
+    - KVM: x86: handle wrap around 32-bit address space
+    - tipc: fix memory leak in service subscripting
+    - tty: serial: samsung: Correct clock selection logic
+    - ALSA: hda: Fix potential race in unsol event handler
+    - drm/exynos: dsi: Remove bridge node reference in error handling path in
+      probe function
+    - ipmi:bt-bmc: Fix error handling and status check
+    - powerpc/traps: Make unrecoverable NMIs die instead of panic
+    - svcrdma: Fix backchannel return code
+    - fuse: don't check refcount after stealing page
+    - fuse: update attr_version counter on fuse_notify_inval_inode()
+    - USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
+    - coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
+    - arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
+    - scsi: cxlflash: Fix error return code in cxlflash_probe()
+    - arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
+    - drm/amdkfd: fix restore worker race condition
+    - e1000: Do not perform reset in reset_task if we are already down
+    - drm/nouveau/debugfs: fix runtime pm imbalance on error
+    - drm/nouveau: fix runtime pm imbalance on error
+    - drm/nouveau/dispnv50: fix runtime pm imbalance on error
+    - printk: handle blank console arguments passed in.
+    - usb: dwc3: Increase timeout for CmdAct cleared by device controller
+    - btrfs: don't force read-only after error in drop snapshot
+    - btrfs: fix double __endio_write_update_ordered in direct I/O
+    - gpio: rcar: Fix runtime PM imbalance on error
+    - vfio/pci: fix memory leaks of eventfd ctx
+    - KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
+    - perf evsel: Fix 2 memory leaks
+    - perf trace: Fix the selection for architectures to generate the errno name
+      tables
+    - perf stat: Fix duration_time value for higher intervals
+    - perf util: Fix memory leak of prefix_if_not_in
+    - perf metricgroup: Free metric_events on error
+    - perf kcore_copy: Fix module map when there are no modules loaded
+    - PCI: tegra194: Fix runtime PM imbalance on error
+    - ASoC: img-i2s-out: Fix runtime PM imbalance on error
+    - wlcore: fix runtime pm imbalance in wl1271_tx_work
+    - wlcore: fix runtime pm imbalance in wlcore_regdomain_config
+    - mtd: rawnand: gpmi: Fix runtime PM imbalance on error
+    - mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
+    - PCI: tegra: Fix runtime PM imbalance on error
+    - ceph: fix potential race in ceph_check_caps
+    - mm/swap_state: fix a data race in swapin_nr_pages
+    - mm: memcontrol: fix stat-corrupting race in charge moving
+    - rapidio: avoid data race between file operation callbacks and
+      mport_cdev_add().
+    - mtd: parser: cmdline: Support MTD names containing one or more colons
+    - x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
+    - NFS: nfs_xdr_status should record the procedure name
+    - vfio/pci: Clear error and request eventfd ctx after releasing
+    - cifs: Fix double add page to memcg when cifs_readpages
+    - nvme: fix possible deadlock when I/O is blocked
+    - mac80211: skip mpath lookup also for control port tx
+    - scsi: libfc: Handling of extra kref
+    - scsi: libfc: Skip additional kref updating work event
+    - selftests/x86/syscall_nt: Clear weird flags after each test
+    - vfio/pci: fix racy on error and request eventfd ctx
+    - btrfs: qgroup: fix data leak caused by race between writeback and truncate
+    - perf tests: Fix test 68 zstd compression for s390
+    - scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
+    - ubi: fastmap: Free unused fastmap anchor peb during detach
+    - mt76: fix LED link time failure
+    - opp: Increase parsed_static_opps in _of_add_opp_table_v1()
+    - perf parse-events: Use strcmp() to compare the PMU name
+    - ALSA: hda: Always use jackpoll helper for jack update after resume
+    - ALSA: hda: Workaround for spurious wakeups on some Intel platforms
+    - net: openvswitch: use div_u64() for 64-by-32 divisions
+    - nvme: explicitly update mpath disk capacity on revalidation
+    - device_cgroup: Fix RCU list debugging warning
+    - ASoC: pcm3168a: ignore 0 Hz settings
+    - ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
+    - ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
+    - RISC-V: Take text_mutex in ftrace_init_nop()
+    - i2c: aspeed: Mask IRQ status to relevant bits
+    - s390/init: add missing __init annotations
+    - lockdep: fix order in trace_hardirqs_off_caller()
+    - EDAC/ghes: Check whether the driver is on the safe list correctly
+    - drm/amdkfd: fix a memory leak issue
+    - drm/amd/display: update nv1x stutter latencies
+    - drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
+    - objtool: Fix noreturn detection for ignored functions
+    - ieee802154: fix one possible memleak in ca8210_dev_com_init
+    - ieee802154/adf7242: check status of adf7242_read_reg
+    - clocksource/drivers/h8300_timer8: Fix wrong return value in
+      h8300_8timer_init()
+    - batman-adv: bla: fix type misuse for backbone_gw hash indexing
+    - atm: eni: fix the missed pci_disable_device() for eni_init_one()
+    - batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
+    - netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
+    - mac802154: tx: fix use-after-free
+    - bpf: Fix clobbering of r2 in bpf_gen_ld_abs
+    - drm/vc4/vc4_hdmi: fill ASoC card owner
+    - net: qed: Disable aRFS for NPAR and 100G
+    - net: qede: Disable aRFS for NPAR and 100G
+    - net: qed: RDMA personality shouldn't fail VF load
+    - drm/sun4i: sun8i-csc: Secondary CSC register correction
+    - batman-adv: Add missing include for in_interrupt()
+    - nvme-tcp: fix kconfig dependency warning when !CRYPTO
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
+    - batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
+    - bpf: Fix a rcu warning for bpffs map pretty-print
+    - lib80211: fix unmet direct dependendices config warning when !CRYPTO
+    - ALSA: asihpi: fix iounmap in error handler
+    - regmap: fix page selection for noinc reads
+    - regmap: fix page selection for noinc writes
+    - MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
+    - regulator: axp20x: fix LDO2/4 description
+    - KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
+    - KVM: SVM: Add a dedicated INVD intercept routine
+    - mm: validate pmd after splitting
+    - arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
+    - x86/ioapic: Unbreak check_timer()
+    - scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
+    - ALSA: usb-audio: Add delay quirk for H570e USB headsets
+    - ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
+    - ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation
+      P520
+    - lib/string.c: implement stpcpy
+    - tracing: fix double free
+    - s390/dasd: Fix zero write for FBA devices
+    - kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
+    - kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
+    - btrfs: fix overflow when copying corrupt csums for a message
+    - dmabuf: fix NULL pointer dereference in dma_buf_release()
+    - mm, THP, swap: fix allocating cluster for swapfile by mistake
+    - mm/gup: fix gup_fast with dynamic page table folding
+    - s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
+    - KVM: arm64: Assume write fault on S1PTW permission fault on instruction
+      fetch
+    - dm: fix bio splitting and its bio completion order for regular IO
+    - ata: define AC_ERR_OK
+    - ata: make qc_prep return ata_completion_errors
+    - ata: sata_mv, avoid trigerrable BUG_ON
+    - Linux 5.4.69
+  * Focal update: v5.4.68 upstream stable release (LP: #1899511)
+    - af_key: pfkey_dump needs parameter validation
+    - ibmvnic fix NULL tx_pools and rx_tools issue at do_reset
+    - ibmvnic: add missing parenthesis in do_reset()
+    - kprobes: fix kill kprobe which has been marked as gone
+    - mm/thp: fix __split_huge_pmd_locked() for migration PMD
+    - act_ife: load meta modules before tcf_idr_check_alloc()
+    - bnxt_en: Avoid sending firmware messages when AER error is detected.
+    - bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()
+    - cxgb4: fix memory leak during module unload
+    - cxgb4: Fix offset when clearing filter byte counters
+    - geneve: add transport ports in route lookup for geneve
+    - hdlc_ppp: add range checks in ppp_cp_parse_cr()
+    - ip: fix tos reflection in ack and reset packets
+    - ipv4: Initialize flowi4_multipath_hash in data path
+    - ipv4: Update exception handling for multipath routes via same device
+    - ipv6: avoid lockdep issue in fib6_del()
+    - net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under
+      RCU
+    - net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
+    - net: dsa: rtl8366: Properly clear member config
+    - net: Fix bridge enslavement failure
+    - net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
+    - net/mlx5: Fix FTE cleanup
+    - net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc
+    - net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant
+    - nfp: use correct define to return NONE fec
+    - taprio: Fix allowing too small intervals
+    - tipc: Fix memory leak in tipc_group_create_member()
+    - tipc: fix shutdown() of connection oriented socket
+    - tipc: use skb_unshare() instead in tipc_buf_append()
+    - net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
+    - net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
+    - bnxt_en: return proper error codes in bnxt_show_temp
+    - bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
+    - net: lantiq: Wake TX queue again
+    - net: lantiq: use netif_tx_napi_add() for TX NAPI
+    - net: lantiq: Use napi_complete_done()
+    - net: lantiq: Disable IRQs only if NAPI gets scheduled
+    - net: phy: Avoid NPD upon phy_detach() when driver is unbound
+    - net: phy: Do not warn in phy_stop() on PHY_DOWN
+    - net: qrtr: check skb_put_padto() return value
+    - net: add __must_check to skb_put_padto()
+    - mm: memcg: fix memcg reclaim soft lockup
+    - iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
+    - Linux 5.4.68
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+  * tc/ebpf: unable to use BPF_FUNC_skb_change_head (LP: #1896504)
+    - net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
+  * HP Zbook Studio G7 boots into corrupted screen with PSR featured panel
+    (LP: #1897501)
+    - SAUCE: drm/i915/psr: allow overriding PSR disable param by quirk
+    - SAUCE: drm/dp: add DP_QUIRK_FORCE_PSR_CHIP_DEFAULT quirk to CMN prod-ID
+      19-15
+  * Fix broken e1000e device after S3 (LP: #1897755)
+    - SAUCE: e1000e: Increase polling timeout on MDIC ready bit
+  * debian/rules editconfigs does not work on s390x to change s390x only configs
+    (LP: #1863116)
+    - [Packaging] kernelconfig -- only update/edit configurations on architectures
+      we have compiler support
+  * acpi event detection crashes (LP: #1896482)
+    - ACPI: EC: tweak naming in preparation for GpioInt support
+    - ACPI: EC: add support for hardware-reduced systems
+    - ACPI: EC: Avoid passing redundant argument to functions
+    - ACPI: EC: Consolidate event handler installation code
+  * mwifiex stops working after kernel upgrade (LP: #1897299)
+    - mwifiex: Increase AES key storage size to 256 bits
+  * Remove NVMe suspend-to-idle workaround (LP: #1897227)
+    - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3"
+    - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3"
+  * Request for CIFS patches to be available in 5.4 kernel (LP: #1896642)
+    - smb3: remove unused flag passed into close functions
+    - smb3: query attributes on file close
+  * Lenovo ThinkBook 14-IML Touchpad not showing up in /proc/bus/input/devices
+    (LP: #1853277)
+    - i2c: core: Call i2c_acpi_install_space_handler() before
+      i2c_acpi_register_devices()
+  * [Ubuntu 20.10] zPCI DMA tables and bitmap leak on hard unplug (PCI Event
+    0x0304) (LP: #1896216)
+    - s390/pci: fix leak of DMA tables on hard unplug
+  * Thunderbolt3 daisy chain sometimes doesn't work (LP: #1895606)
+    - thunderbolt: Retry DROM read once if parsing fails
+  * btrfs: trimming a btrfs device which has been shrunk previously fails and
+    fills root disk with garbage data (LP: #1896154)
+    - btrfs: trim: fix underflow in trim length to prevent access beyond device
+      boundary
+  * EFA: add support for 0xefa1 devices (LP: #1896791)
+    - RDMA/efa: Expose maximum TX doorbell batch
+    - RDMA/efa: Expose minimum SQ size
+    - RDMA/efa: User/kernel compatibility handshake mechanism
+    - RDMA/efa: Add EFA 0xefa1 PCI ID
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828)
+    - gfs2: initialize transaction tr_ailX_lists earlier
+    - RDMA/bnxt_re: Restrict the max_gids to 256
+    - dsa: Allow forwarding of redirected IGMP traffic
+    - net: handle the return value of pskb_carve_frag_list() correctly
+    - hv_netvsc: Remove "unlikely" from netvsc_select_queue
+    - firmware_loader: fix memory leak for paged buffer
+    - NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
+    - scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
+    - scsi: libfc: Fix for double free()
+    - scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
+    - regulator: pwm: Fix machine constraints application
+    - spi: spi-loopback-test: Fix out-of-bounds read
+    - NFS: Zero-stateid SETATTR should first return delegation
+    - SUNRPC: stop printk reading past end of string
+    - rapidio: Replace 'select' DMAENGINES 'with depends on'
+    - cifs: fix DFS mount with cifsacl/modefromsid
+    - openrisc: Fix cache API compile issue when not inlining
+    - nvme-fc: cancel async events before freeing event struct
+    - nvme-rdma: cancel async events before freeing event struct
+    - nvme-tcp: cancel async events before freeing event struct
+    - block: only call sched requeue_request() for scheduled requests
+    - f2fs: fix indefinite loop scanning for free nid
+    - f2fs: Return EOF on unaligned end of file DIO read
+    - i2c: algo: pca: Reapply i2c bus settings after reset
+    - spi: Fix memory leak on splited transfers
+    - KVM: MIPS: Change the definition of kvm type
+    - clk: davinci: Use the correct size when allocating memory
+    - clk: rockchip: Fix initialization of mux_pll_src_4plls_p
+    - ASoC: qcom: Set card->owner to avoid warnings
+    - ASoC: qcom: common: Fix refcount imbalance on error
+    - powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
+    - ASoC: meson: axg-toddr: fix channel order on g12 platforms
+    - Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
+    - scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
+    - arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
+    - Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
+    - perf test: Fix the "signal" test inline assembly
+    - MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
+    - perf evlist: Fix cpu/thread map leak
+    - perf parse-event: Fix memory leak in evsel->unit
+    - perf test: Free formats for perf pmu parse test
+    - fbcon: Fix user font detection test at fbcon_resize().
+    - MIPS: SNI: Fix spurious interrupts
+    - drm/mediatek: Add exception handing in mtk_drm_probe() if component init
+      fail
+    - drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
+    - arm64: bpf: Fix branch offset in JIT
+    - iommu/amd: Fix potential @entry null deref
+    - i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
+    - riscv: Add sfence.vma after early page table changes
+    - drm/i915: Filter wake_flags passed to default_wake_function
+    - USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin
+      notebook
+    - USB: UAS: fix disconnect by unplugging a hub
+    - usblp: fix race between disconnect() and read()
+    - i2c: i801: Fix resume bug
+    - Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI
+      X570-A PRO"
+    - ALSA: hda: fixup headset for ASUS GX502 laptop
+    - ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
+    - percpu: fix first chunk size calculation for populated bitmap
+    - Input: trackpoint - add new trackpoint variant IDs
+    - Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
+    - serial: 8250_pci: Add Realtek 816a and 816b
+    - x86/boot/compressed: Disable relocation relaxation
+    - s390/zcrypt: fix kmalloc 256k failure
+    - ehci-hcd: Move include to keep CRC stable
+    - powerpc/dma: Fix dma_map_ops::get_required_mask
+    - selftests/vm: fix display of page size in map_hugetlb
+    - dm/dax: Fix table reference counts
+    - mm/memory_hotplug: drain per-cpu pages again during memory offline
+    - dm: Call proper helper to determine dax support
+    - dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
+    - Linux 5.4.67
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828) // Cherry Pick
+    needed for Critical upstream patch for Kernel null pointer dereference -
+    usb-c altmode (LP: #1897963)
+    - usb: typec: ucsi: Prevent mode overrun
+  * Focal update: v5.4.66 upstream stable release (LP: #1896824)
+    - ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix missing video
+    - regulator: push allocation in regulator_ena_gpio_request() out of lock
+    - regulator: remove superfluous lock in regulator_resolve_coupling()
+    - ARM: dts: socfpga: fix register entry for timer3 on Arria10
+    - ARM: dts: ls1021a: fix QuadSPI-memory reg range
+    - ARM: dts: imx7ulp: Correct gpio ranges
+    - RDMA/rxe: Fix memleak in rxe_mem_init_user
+    - RDMA/rxe: Drop pointless checks in rxe_init_ports
+    - RDMA/rxe: Fix panic when calling kmem_cache_create()
+    - RDMA/bnxt_re: Do not report transparent vlan from QP1
+    - drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
+    - arm64: dts: imx8mq: Fix TMU interrupt property
+    - drm/sun4i: Fix dsi dcs long write function
+    - iio: adc: mcp3422: fix locking on error path
+    - iio: adc: mcp3422: fix locking scope
+    - scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
+    - RDMA/core: Fix reported speed and width
+    - scsi: megaraid_sas: Don't call disable_irq from process IRQ poll
+    - scsi: mpt3sas: Don't call disable_irq from IRQ poll handler
+    - soundwire: fix double free of dangling pointer
+    - drm/sun4i: backend: Support alpha property on lowest plane
+    - drm/sun4i: backend: Disable alpha on the lowest plane on the A20
+    - mmc: sdhci-acpi: Clear amd_sdhci_host on reset
+    - mmc: sdhci-msm: Add retries when all tuning phases are found valid
+    - spi: stm32: Rate-limit the 'Communication suspended' message
+    - nvme-fabrics: allow to queue requests for live queues
+    - spi: stm32: fix pm_runtime_get_sync() error checking
+    - block: Set same_page to false in __bio_try_merge_page if ret is false
+    - IB/isert: Fix unaligned immediate-data handling
+    - ARM: dts: bcm: HR2: Fixed QSPI compatible string
+    - ARM: dts: NSP: Fixed QSPI compatible string
+    - ARM: dts: BCM5301X: Fixed QSPI compatible string
+    - arm64: dts: ns2: Fixed QSPI compatible string
+    - ARC: HSDK: wireup perf irq
+    - dmaengine: acpi: Put the CSRT table after using it
+    - netfilter: conntrack: allow sctp hearbeat after connection re-use
+    - drivers/net/wan/lapbether: Added needed_tailroom
+    - NFC: st95hf: Fix memleak in st95hf_in_send_cmd
+    - firestream: Fix memleak in fs_open
+    - ALSA: hda: Fix 2 channel swapping for Tegra
+    - ALSA: hda/tegra: Program WAKEEN register for Tegra
+    - drivers/dma/dma-jz4780: Fix race condition between probe and irq handler
+    - net: hns3: Fix for geneve tx checksum bug
+    - xfs: fix off-by-one in inode alloc block reservation calculation
+    - drivers/net/wan/lapbether: Set network_header before transmitting
+    - cfg80211: Adjust 6 GHz frequency to channel conversion
+    - xfs: initialize the shortform attr header padding entry
+    - irqchip/eznps: Fix build error for !ARC700 builds
+    - nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu
+    - nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
+    - nvme: have nvme_wait_freeze_timeout return if it timed out
+    - nvme-tcp: serialize controller teardown sequences
+    - nvme-tcp: fix timeout handler
+    - nvme-tcp: fix reset hang if controller died in the middle of a reset
+    - nvme-rdma: serialize controller teardown sequences
+    - nvme-rdma: fix timeout handler
+    - nvme-rdma: fix reset hang if controller died in the middle of a reset
+    - nvme-pci: cancel nvme device request before disabling
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
+    - HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller
+    - drivers/net/wan/hdlc_cisco: Add hard_header_len
+    - HID: elan: Fix memleak in elan_input_configured
+    - ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
+    - cpufreq: intel_pstate: Refuse to turn off with HWP enabled
+    - cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled
+    - arm64/module: set trampoline section flags regardless of
+      CONFIG_DYNAMIC_FTRACE
+    - ALSA: hda: hdmi - add Rocketlake support
+    - ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
+    - drm/amdgpu: Fix bug in reporting voltage for CIK
+    - iommu/amd: Do not use IOMMUv2 functionality when SME is active
+    - gcov: Disable gcov build with GCC 10
+    - iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
+    - iio: cros_ec: Set Gyroscope default frequency to 25Hz
+    - iio:light:ltr501 Fix timestamp alignment issue.
+    - iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
+    - iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
+    - iio:adc:ti-adc084s021 Fix alignment and data leak issues.
+    - iio:adc:ina2xx Fix timestamp alignment issue.
+    - iio:adc:max1118 Fix alignment of timestamp and data leak issues
+    - iio:adc:ti-adc081c Fix alignment and data leak issues
+    - iio:magnetometer:ak8975 Fix alignment and data leak issues.
+    - iio:light:max44000 Fix timestamp alignment and prevent data leak.
+    - iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
+    - iio: accel: kxsd9: Fix alignment of local buffer.
+    - iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
+    - iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
+    - staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
+    - btrfs: require only sector size alignment for parent eb bytenr
+    - btrfs: fix lockdep splat in add_missing_dev
+    - btrfs: fix wrong address when faulting in pages in the search ioctl
+    - kobject: Restore old behaviour of kobject_del(NULL)
+    - regulator: push allocation in regulator_init_coupling() outside of lock
+    - regulator: push allocations in create_regulator() outside of lock
+    - regulator: push allocation in set_consumer_device_supply() out of lock
+    - regulator: plug of_node leak in regulator_register()'s error path
+    - regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
+    - scsi: target: iscsi: Fix data digest calculation
+    - scsi: target: iscsi: Fix hang in iscsit_access_np() when getting
+      tpg->np_login_sem
+    - drm/i915/gvt: do not check len & max_len for lri
+    - drm/tve200: Stabilize enable/disable
+    - drm/msm: Disable preemption on all 5xx targets
+    - mmc: sdio: Use mmc_pre_req() / mmc_post_req()
+    - mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
+    - rbd: require global CAP_SYS_ADMIN for mapping and unmapping
+    - RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
+    - RDMA/mlx4: Read pkey table length instead of hardcoded value
+    - fbcon: remove soft scrollback code
+    - fbcon: remove now unusued 'softback_lines' cursor() argument
+    - vgacon: remove software scrollback support
+    - [Config] updateconfigs for VGACON_SOFT_SCROLLBACK
+    - KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
+    - KVM: arm64: Do not try to map PUDs when they are folded into PMD
+    - KVM: fix memory leak in kvm_io_bus_unregister_dev()
+    - debugfs: Fix module state check condition
+    - ARM: dts: vfxxx: Add syscon compatible with OCOTP
+    - video: fbdev: fix OOB read in vga_8planes_imageblit()
+    - staging: greybus: audio: fix uninitialized value issue
+    - phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
+    - usb: core: fix slab-out-of-bounds Read in read_descriptors
+    - USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
+    - USB: serial: option: support dynamic Quectel USB compositions
+    - USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
+    - usb: Fix out of sync data toggle if a configured device is reconfigured
+    - usb: typec: ucsi: acpi: Check the _DEP dependencies
+    - drm/msm/gpu: make ringbuffer readonly
+    - drm/msm: Disable the RPTR shadow
+    - gcov: add support for GCC 10.1
+    - Linux 5.4.66
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 23 Nov 2020 19:00:17 +0100
+
+linux-gkeop (5.4.0-1004.5) focal; urgency=medium
+
+  * Initial gkeop packaging.
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 23 Nov 2020 16:41:15 +0100
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/config/amd64/config.common.amd64
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/config/amd64/config.common.amd64
@@ -0,0 +1,3 @@
+#
+# Config options for config.common.amd64 automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/config/amd64/config.flavour.gkeop
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/config/amd64/config.flavour.gkeop
@@ -0,0 +1,3 @@
+#
+# Config options for config.flavour.gkeop automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/config/annotations
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/config/annotations
@@ -0,0 +1,20 @@
+# Menu: HEADER
+# FORMAT: 3
+# ARCH: x86
+
+include "../../debian.master/config/annotations"
+
+# Below configs were defined by flavour for amd64. As gkeop only has one
+# flavour, we replace those options with an arch only definition.
+CONFIG_IRQ_FORCED_THREADING_DEFAULT             policy<{'amd64': 'n'}>
+CONFIG_PREEMPT_VOLUNTARY                        policy<{'amd64': 'y'}>
+CONFIG_PREEMPT                                  policy<{'amd64': 'n'}>
+CONFIG_LATENCYTOP                               policy<{'amd64': 'n'}> mark<ENFORCED>
+CONFIG_LATENCYTOP                               note<https://lists.ubuntu.com/archives/kernel-team/2014-July/045006.html, LP#1655986>
+CONFIG_HZ_250                                   policy<{'amd64': 'y'}>
+CONFIG_HZ_1000                                  policy<{'amd64': 'n'}>
+CONFIG_ATARI_PARTITION                             policy<{'amd64': 'n'}>
+CONFIG_ATARI_PARTITION                             mark<ENFORCED> note<LP:1908264>
+CONFIG_MFD_AHC1EC0                              policy<{'amd64': '-'}>
+CONFIG_AHC1EC0_WDT                              policy<{'amd64': '-'}>
+CONFIG_SENSORS_AHC1EC0_HWMON                    policy<{'amd64': '-'}>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/config/config.common.ports
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/config/config.common.ports
@@ -0,0 +1,3 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/config/config.common.ubuntu
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/config/config.common.ubuntu
@@ -0,0 +1,8780 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
+CONFIG_104_QUAD_8=m
+CONFIG_60XX_WDT=m
+CONFIG_64BIT=y
+CONFIG_64BIT_TIME=y
+CONFIG_6LOWPAN=m
+# CONFIG_6LOWPAN_DEBUGFS is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_DEST is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_HOP is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE is not set
+# CONFIG_6LOWPAN_GHC_ICMPV6 is not set
+# CONFIG_6LOWPAN_GHC_UDP is not set
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6PACK=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_8129=y
+CONFIG_8139TOO_PIO=y
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_842_COMPRESS=m
+CONFIG_842_DECOMPRESS=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=m
+CONFIG_ABP060MG=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=m
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
+CONFIG_ACER_WMI=m
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_ADXL=y
+CONFIG_ACPI_ALS=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_EINJ=m
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BGRT=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_CMPC=m
+CONFIG_ACPI_CONFIGFS=m
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_CPPC_LIB=y
+CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_CUSTOM_DSDT_FILE=""
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_DEBUG=y
+CONFIG_ACPI_DEBUGGER=y
+CONFIG_ACPI_DEBUGGER_USER=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_EXTLOG=m
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_HMAT=y
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ACPI_LPIT=y
+CONFIG_ACPI_NFIT=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_PROCESSOR_CSTATE=y
+CONFIG_ACPI_PROCESSOR_IDLE=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TAD=m
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_THERMAL_REL=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_WATCHDOG=y
+CONFIG_ACPI_WMI=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ACRN_GUEST=y
+CONFIG_AD2S1200=m
+CONFIG_AD2S1210=m
+CONFIG_AD2S90=m
+CONFIG_AD5064=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_AD5272=m
+CONFIG_AD5360=m
+CONFIG_AD5380=m
+CONFIG_AD5421=m
+CONFIG_AD5446=m
+CONFIG_AD5449=m
+CONFIG_AD5504=m
+CONFIG_AD5592R=m
+CONFIG_AD5592R_BASE=m
+CONFIG_AD5593R=m
+CONFIG_AD5624R_SPI=m
+CONFIG_AD5686=m
+CONFIG_AD5686_SPI=m
+CONFIG_AD5696_I2C=m
+CONFIG_AD5755=m
+CONFIG_AD5758=m
+CONFIG_AD5761=m
+CONFIG_AD5764=m
+CONFIG_AD5791=m
+CONFIG_AD5933=m
+CONFIG_AD7124=m
+CONFIG_AD7150=m
+CONFIG_AD7192=m
+CONFIG_AD7266=m
+CONFIG_AD7280=m
+CONFIG_AD7291=m
+CONFIG_AD7298=m
+CONFIG_AD7303=m
+CONFIG_AD7476=m
+CONFIG_AD7606=m
+CONFIG_AD7606_IFACE_PARALLEL=m
+CONFIG_AD7606_IFACE_SPI=m
+CONFIG_AD7746=m
+CONFIG_AD7766=m
+CONFIG_AD7768_1=m
+CONFIG_AD7780=m
+CONFIG_AD7791=m
+CONFIG_AD7793=m
+CONFIG_AD7816=m
+CONFIG_AD7887=m
+CONFIG_AD7923=m
+CONFIG_AD7949=m
+CONFIG_AD799X=m
+CONFIG_AD8366=m
+CONFIG_AD8801=m
+CONFIG_AD9523=m
+CONFIG_AD9832=m
+CONFIG_AD9834=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_ADE7854=m
+CONFIG_ADE7854_I2C=m
+CONFIG_ADE7854_SPI=m
+CONFIG_ADF4350=m
+CONFIG_ADF4371=m
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_ADIN_PHY=m
+CONFIG_ADIS16080=m
+CONFIG_ADIS16130=m
+CONFIG_ADIS16136=m
+CONFIG_ADIS16201=m
+CONFIG_ADIS16203=m
+CONFIG_ADIS16209=m
+CONFIG_ADIS16240=m
+CONFIG_ADIS16260=m
+CONFIG_ADIS16400=m
+CONFIG_ADIS16460=m
+CONFIG_ADIS16480=m
+CONFIG_ADJD_S311=m
+CONFIG_ADM8211=m
+CONFIG_ADT7316=m
+CONFIG_ADT7316_I2C=m
+CONFIG_ADT7316_SPI=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_ADXL372=m
+CONFIG_ADXL372_I2C=m
+CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS450=m
+CONFIG_AD_SIGMA_DELTA=m
+CONFIG_AFE4403=m
+CONFIG_AFE4404=m
+CONFIG_AFFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+# CONFIG_AFS_DEBUG_CURSOR is not set
+CONFIG_AFS_FS=m
+CONFIG_AFS_FSCACHE=y
+CONFIG_AF_KCM=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
+CONFIG_AF_RXRPC_IPV6=y
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=y
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_AK09911=m
+CONFIG_AK8975=m
+CONFIG_AL3320A=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_ALTERA_FREEZE_BRIDGE=m
+CONFIG_ALTERA_MBOX=m
+CONFIG_ALTERA_MSGDMA=m
+CONFIG_ALTERA_PR_IP_CORE=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_ALX=m
+CONFIG_AM2315=m
+CONFIG_AMD8111_ETH=m
+CONFIG_AMD_IOMMU=y
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_AMD_MEM_ENCRYPT=y
+# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
+CONFIG_AMD_NB=y
+CONFIG_AMD_NUMA=y
+CONFIG_AMD_PHY=m
+CONFIG_AMD_XGBE=m
+CONFIG_AMD_XGBE_DCB=y
+CONFIG_AMD_XGBE_HAVE_ECC=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_AMILO_RFKILL=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDERFS=m
+CONFIG_ANDROID_BINDER_DEVICES=""
+CONFIG_ANDROID_BINDER_IPC=m
+# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
+# CONFIG_ANDROID_VSOC is not set
+CONFIG_APDS9300=m
+CONFIG_APDS9802ALS=m
+CONFIG_APDS9960=m
+CONFIG_APPLE_GMUX=m
+CONFIG_APPLE_PROPERTIES=y
+CONFIG_APPLICOM=m
+CONFIG_AQTION=m
+CONFIG_AQUANTIA_PHY=m
+CONFIG_AR5523=m
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_ARCH_CLOCKSOURCE_INIT=y
+CONFIG_ARCH_CPUIDLE_HALTPOLL=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ARCH_HAS_ADD_PAGES=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_HAS_FILTER_PGPROT=y
+CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_ARCH_HAS_PKEYS=y
+CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_ARCH_HAS_REFCOUNT=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
+CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=32
+CONFIG_ARCH_MMAP_RND_BITS_MIN=28
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_AS3935=m
+CONFIG_ASHMEM=m
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_ASN1=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_ASUS_LAPTOP=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_ASUS_WIRELESS=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+# CONFIG_ASYNC_RAID6_TEST is not set
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ASYNC_XOR=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AT803X_PHY=m
+CONFIG_ATA=y
+CONFIG_ATALK=m
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_ATA_ACPI=y
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_GENERIC=y
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_CE=y
+# CONFIG_ATH10K_DEBUG is not set
+CONFIG_ATH10K_DEBUGFS=y
+CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SDIO=m
+CONFIG_ATH10K_SPECTRAL=y
+CONFIG_ATH10K_TRACING=y
+CONFIG_ATH10K_USB=m
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_ATH6KL_SDIO=m
+# CONFIG_ATH6KL_TRACING is not set
+CONFIG_ATH6KL_USB=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_AHB=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_COMMON_DEBUG=y
+CONFIG_ATH9K_COMMON_SPECTRAL=y
+CONFIG_ATH9K_DEBUGFS=y
+# CONFIG_ATH9K_DYNACK is not set
+CONFIG_ATH9K_HTC=m
+CONFIG_ATH9K_HTC_DEBUGFS=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_HWRNG=y
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_PCI_NO_EEPROM=m
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_STATION_STATISTICS=y
+CONFIG_ATH9K_WOW=y
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATL1=m
+CONFIG_ATL1C=m
+CONFIG_ATL1E=m
+CONFIG_ATL2=m
+CONFIG_ATLAS_PH_SENSOR=m
+CONFIG_ATM=m
+CONFIG_ATMEL=m
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E_TX_RETRY=16
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ATP=m
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_AUFS_BDEV_LOOP=y
+# CONFIG_AUFS_BRANCH_MAX_1023 is not set
+CONFIG_AUFS_BRANCH_MAX_127=y
+# CONFIG_AUFS_BRANCH_MAX_32767 is not set
+# CONFIG_AUFS_BRANCH_MAX_511 is not set
+# CONFIG_AUFS_BR_FUSE is not set
+CONFIG_AUFS_BR_HFSPLUS=y
+# CONFIG_AUFS_BR_RAMFS is not set
+# CONFIG_AUFS_DEBUG is not set
+CONFIG_AUFS_DIRREN=y
+CONFIG_AUFS_EXPORT=y
+# CONFIG_AUFS_FHSM is not set
+CONFIG_AUFS_FS=m
+# CONFIG_AUFS_HNOTIFY is not set
+CONFIG_AUFS_INO_T_64=y
+# CONFIG_AUFS_RDU is not set
+CONFIG_AUFS_SBILIST=y
+# CONFIG_AUFS_SHWH is not set
+CONFIG_AUFS_XATTR=y
+CONFIG_AURORA_NB8800=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_AX88796B_PHY=m
+CONFIG_AXP20X_ADC=m
+CONFIG_AXP20X_POWER=m
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PIO=y
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_B43_BCMA=y
+CONFIG_B43_BCMA_PIO=y
+# CONFIG_B43_BUSES_BCMA is not set
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_SSB is not set
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43_HWRNG=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PIO=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B43_SSB=y
+CONFIG_B44=m
+CONFIG_B44_PCI=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B53=m
+CONFIG_B53_MDIO_DRIVER=m
+CONFIG_B53_MMAP_DRIVER=m
+CONFIG_B53_SERDES=m
+CONFIG_B53_SPI_DRIVER=m
+CONFIG_B53_SRAB_DRIVER=m
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_AAT2870=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
+CONFIG_BACKLIGHT_AS3711=m
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LM3533=m
+CONFIG_BACKLIGHT_LM3630A=m
+CONFIG_BACKLIGHT_LM3639=m
+CONFIG_BACKLIGHT_LP855X=m
+CONFIG_BACKLIGHT_LP8788=m
+CONFIG_BACKLIGHT_LV5207LP=m
+CONFIG_BACKLIGHT_MAX8925=m
+CONFIG_BACKLIGHT_PANDORA=m
+CONFIG_BACKLIGHT_PCF50633=m
+CONFIG_BACKLIGHT_PM8941_WLED=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RAVE_SP=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_SKY81452=m
+CONFIG_BACKLIGHT_WM831X=m
+# CONFIG_BACKTRACE_SELF_TEST is not set
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_BATMAN_V is not set
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+# CONFIG_BATMAN_ADV_DEBUGFS is not set
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_SYSFS=y
+# CONFIG_BATMAN_ADV_TRACING is not set
+CONFIG_BATTERY_88PM860X=m
+CONFIG_BATTERY_AXP20X=m
+CONFIG_BATTERY_BQ27XXX=m
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
+CONFIG_BATTERY_BQ27XXX_HDQ=m
+CONFIG_BATTERY_BQ27XXX_I2C=m
+CONFIG_BATTERY_DA9030=m
+CONFIG_BATTERY_DA9052=m
+CONFIG_BATTERY_DA9150=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2781=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_BATTERY_MAX1721X=m
+CONFIG_BATTERY_RT5033=m
+CONFIG_BATTERY_RX51=m
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_TWL4030_MADC=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+# CONFIG_BCACHE_DEBUG is not set
+CONFIG_BCH=m
+CONFIG_BCM7XXX_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMA_SFLASH=y
+CONFIG_BCMGENET=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BCM_NET_PHYLIB=m
+CONFIG_BE2ISCSI=m
+CONFIG_BE2NET=m
+CONFIG_BE2NET_BE2=y
+CONFIG_BE2NET_BE3=y
+CONFIG_BE2NET_HWMON=y
+CONFIG_BE2NET_LANCER=y
+CONFIG_BE2NET_SKYHAWK=y
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BEFS_FS=m
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
+CONFIG_BFS_FS=m
+CONFIG_BH1750=m
+CONFIG_BH1780=m
+CONFIG_BIG_KEYS=y
+CONFIG_BINARY_PRINTF=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BITREVERSE=y
+CONFIG_BLK_CGROUP=y
+CONFIG_BLK_CGROUP_IOCOST=y
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_BLK_DEBUG_FS=y
+CONFIG_BLK_DEBUG_FS_ZONED=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DM=y
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_MD=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_ZONED=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_RDMA=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLK_RQ_ALLOC_TIME=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_SED_OPAL=y
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BMA180=m
+CONFIG_BMA220=m
+CONFIG_BMC150_ACCEL=m
+CONFIG_BMC150_ACCEL_I2C=m
+CONFIG_BMC150_ACCEL_SPI=m
+CONFIG_BMC150_MAGN=m
+CONFIG_BMC150_MAGN_I2C=m
+CONFIG_BMC150_MAGN_SPI=m
+CONFIG_BME680=m
+CONFIG_BME680_I2C=m
+CONFIG_BME680_SPI=m
+CONFIG_BMG160=m
+CONFIG_BMG160_I2C=m
+CONFIG_BMG160_SPI=m
+CONFIG_BMI160=m
+CONFIG_BMI160_I2C=m
+CONFIG_BMI160_SPI=m
+CONFIG_BMP280=m
+CONFIG_BMP280_I2C=m
+CONFIG_BMP280_SPI=m
+CONFIG_BNA=m
+CONFIG_BNX2=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_BNXT=m
+CONFIG_BNXT_DCB=y
+CONFIG_BNXT_FLOWER_OFFLOAD=y
+CONFIG_BNXT_HWMON=y
+CONFIG_BNXT_SRIOV=y
+CONFIG_BOARD_TPCI200=m
+CONFIG_BONDING=m
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_BOUNCE=y
+CONFIG_BPF=y
+CONFIG_BPFILTER=y
+CONFIG_BPFILTER_UMH=m
+CONFIG_BPF_EVENTS=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
+CONFIG_BPF_STREAM_PARSER=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPQETHER=m
+CONFIG_BQL=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_BRCMDBG is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PCIE=y
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCM_TRACING=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BROADCOM_PHY=m
+CONFIG_BSD_DISKLABEL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_BT=m
+CONFIG_BTREE=y
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_DEBUG is not set
+CONFIG_BTRFS_FS=m
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+CONFIG_BTT=y
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_BCM=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_BREDR=y
+CONFIG_BT_CMTP=m
+CONFIG_BT_DEBUGFS=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_MTK=y
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIRSI=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_MRVL=y
+CONFIG_BT_HCIUART_NOKIA=m
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_RTL=y
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_HIDP=m
+# CONFIG_BT_HS is not set
+CONFIG_BT_INTEL=m
+CONFIG_BT_LE=y
+CONFIG_BT_LEDS=y
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_MTKSDIO=m
+CONFIG_BT_MTKUART=m
+CONFIG_BT_QCA=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_RTL=m
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_WILINK=m
+CONFIG_BUG=y
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_BUILD_BIN2C=y
+CONFIG_BUILD_SALT=""
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_HSI=m
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_SPI_SLAVE=m
+# CONFIG_CAIF_SPI_SYNC is not set
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_USB=m
+CONFIG_CAIF_VIRTIO=m
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_CAN=m
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_CALC_BITTIMING=y
+CONFIG_CAN_CC770=m
+CONFIG_CAN_CC770_ISA=m
+CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_EMS_PCMCIA=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_ESD_USB2=m
+CONFIG_CAN_F81601=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_GW=m
+CONFIG_CAN_HI311X=m
+CONFIG_CAN_IFI_CANFD=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_JANZ_ICAN3=m
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_KVASER_PCIEFD=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN_MCBA_USB=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_M_CAN=m
+CONFIG_CAN_M_CAN_PLATFORM=m
+CONFIG_CAN_M_CAN_TCAN4X5X=m
+CONFIG_CAN_PEAK_PCI=m
+CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
+CONFIG_CAN_PEAK_PCMCIA=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_ISA=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_SOFTING=m
+CONFIG_CAN_SOFTING_CS=m
+CONFIG_CAN_UCAN=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
+CONFIG_CAPI_AVM=y
+CONFIG_CAPI_TRACE=y
+CONFIG_CARDBUS=y
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_CARL9170=m
+# CONFIG_CARL9170_DEBUGFS is not set
+CONFIG_CARL9170_HWRNG=y
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_CASSINI=m
+CONFIG_CAVIUM_PTP=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_CC10001_ADC=m
+CONFIG_CCS811=m
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_CC_IS_GCC=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDNS_I3C_MASTER=m
+CONFIG_CDROM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_CORE=y
+CONFIG_CEC_NOTIFIER=y
+CONFIG_CEC_PLATFORM_DRIVERS=y
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CEPH_FS_SECURITY_LABEL=y
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_CFG80211=m
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CHARGER_88PM860X=m
+CONFIG_CHARGER_ADP5061=m
+CONFIG_CHARGER_AXP20X=m
+CONFIG_CHARGER_BQ2415X=m
+CONFIG_CHARGER_BQ24190=m
+CONFIG_CHARGER_BQ24257=m
+CONFIG_CHARGER_BQ24735=m
+CONFIG_CHARGER_BQ25890=m
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_DA9150=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_LP8727=m
+CONFIG_CHARGER_LP8788=m
+CONFIG_CHARGER_LT3651=m
+CONFIG_CHARGER_MANAGER=y
+CONFIG_CHARGER_MAX14577=m
+CONFIG_CHARGER_MAX77693=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_MAX8997=m
+CONFIG_CHARGER_MAX8998=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_RT9455=m
+CONFIG_CHARGER_SBS=m
+CONFIG_CHARGER_SMB347=m
+CONFIG_CHARGER_TPS65090=m
+CONFIG_CHARGER_TWL4030=m
+CONFIG_CHARGER_WILCO=m
+CONFIG_CHARLCD=m
+CONFIG_CHARLCD_BL_FLASH=y
+# CONFIG_CHARLCD_BL_OFF is not set
+# CONFIG_CHARLCD_BL_ON is not set
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_LIB=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4_FCOE=y
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CHROMEOS_TBMC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CICADA_PHY=m
+CONFIG_CIFS=m
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_SMB_DIRECT is not set
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIO_DAC=m
+CONFIG_CLANG_VERSION=0
+CONFIG_CLEANCACHE=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_CLK_TWL6040=m
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+# CONFIG_CLOCK_THERMAL is not set
+CONFIG_CLS_U32_MARK=y
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CLZ_TAB=y
+CONFIG_CM32181=m
+CONFIG_CM3232=m
+CONFIG_CM3323=m
+CONFIG_CM36651=m
+CONFIG_CMA=y
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_CNIC=m
+CONFIG_CODA_FS=m
+CONFIG_COMEDI=m
+CONFIG_COMEDI_8254=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_8255_PCI=m
+CONFIG_COMEDI_8255_SA=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADDI_WATCHDOG=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7X3X=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_DIO200_ISA=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC236_ISA=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_ISA=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAC02=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_DAS08_ISA=m
+CONFIG_COMEDI_DAS08_PCI=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DAS800=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_ISADMA=m
+CONFIG_COMEDI_ISA_DRIVERS=y
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_MF6X4=m
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_LABPC_ISA=m
+CONFIG_COMEDI_NI_LABPC_ISADMA=m
+CONFIG_COMEDI_NI_LABPC_PCI=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_NI_ROUTING=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_TIOCMD=m
+CONFIG_COMEDI_NI_USB6501=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_CDCE706=m
+CONFIG_COMMON_CLK_CS2000_CP=m
+CONFIG_COMMON_CLK_MAX9485=m
+CONFIG_COMMON_CLK_PALMAS=m
+CONFIG_COMMON_CLK_PWM=m
+CONFIG_COMMON_CLK_S2MPS11=m
+CONFIG_COMMON_CLK_SI5341=m
+CONFIG_COMMON_CLK_SI5351=m
+CONFIG_COMMON_CLK_SI544=m
+CONFIG_COMMON_CLK_WM831X=m
+CONFIG_COMPACTION=y
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_32=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_COMPILE_TEST is not set
+CONFIG_CONFIGFS_FS=y
+CONFIG_CONNECTOR=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_CONSOLE_POLL=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_CORDIC=m
+CONFIG_COREDUMP=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_CORTINA_PHY=m
+CONFIG_COUNTER=m
+# CONFIG_CPA_DEBUG is not set
+CONFIG_CPU5_WDT=m
+CONFIG_CPUMASK_OFFSTACK=y
+CONFIG_CPUSETS=y
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_CPU_ISOLATION=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_HYGON=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_ZHAOXIN=y
+CONFIG_CRAMFS=m
+CONFIG_CRAMFS_BLOCKDEV=y
+CONFIG_CRAMFS_MTD=y
+CONFIG_CRASH_CORE=y
+CONFIG_CRASH_DUMP=y
+CONFIG_CRC16=y
+CONFIG_CRC32=y
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_SELFTEST is not set
+# CONFIG_CRC32_SLICEBY4 is not set
+CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC4=m
+CONFIG_CRC64=m
+CONFIG_CRC7=m
+CONFIG_CRC8=m
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CROS_EC=m
+CONFIG_CROS_EC_CHARDEV=m
+CONFIG_CROS_EC_DEBUGFS=m
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_ISHTP=m
+CONFIG_CROS_EC_LIGHTBAR=m
+CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_EC_SYSFS=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CROS_USBPD_LOGGER=m
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_842=m
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_AES_TI=m
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_CAST_COMMON=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CHACHA20_X86_64=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=y
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_DES3_EDE_X86_64=m
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_I2C=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
+CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
+CONFIG_CRYPTO_DEV_NITROX=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+CONFIG_CRYPTO_DEV_PADLOCK=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_QAT=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_CRYPTO_DEV_SP_CCP=y
+CONFIG_CRYPTO_DEV_SP_PSP=y
+CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_CRYPTO_DH=y
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ENGINE=m
+CONFIG_CRYPTO_ESSIV=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_GHASH=y
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_NHPOLY1305=m
+CONFIG_CRYPTO_NHPOLY1305_AVX2=m
+CONFIG_CRYPTO_NHPOLY1305_SSE2=m
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_OFB=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_POLY1305_X86_64=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SIMD=m
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_STATS=y
+CONFIG_CRYPTO_STREEBOG=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO_ZSTD=m
+CONFIG_CS89x0=m
+CONFIG_CS89x0_PLATFORM=y
+CONFIG_CUSE=m
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_CXD2880_SPI_DRV=m
+CONFIG_CX_ECAT=m
+CONFIG_CYCLADES=m
+CONFIG_CYPRESS_FIRMWARE=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_DA280=m
+CONFIG_DA311=m
+CONFIG_DA9052_WATCHDOG=m
+CONFIG_DA9055_WATCHDOG=m
+CONFIG_DA9062_WATCHDOG=m
+CONFIG_DA9063_WATCHDOG=m
+CONFIG_DA9150_GPADC=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_DAX=y
+CONFIG_DAX_DRIVER=y
+CONFIG_DCA=m
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DCB=y
+CONFIG_DCDBAS=m
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_DE4X5=m
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_ENTRY is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_DWARF4=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_KERNEL_DC is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_DEBUG_MISC=y
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_DEBUG_PLIST is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_RSEQ is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
+CONFIG_DECNET=m
+CONFIG_DECNET_NF_GRABULATOR=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DEFAULT_CUBIC=y
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBTN=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_UART_BACKLIGHT=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_LED=m
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_DEVICE_PRIVATE=y
+# CONFIG_DEVKMEM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEV_APPLETALK=m
+CONFIG_DEV_COREDUMP=y
+CONFIG_DEV_DAX=m
+CONFIG_DEV_DAX_KMEM=m
+CONFIG_DEV_DAX_PMEM=m
+CONFIG_DEV_DAX_PMEM_COMPAT=m
+CONFIG_DEV_PAGEMAP_OPS=y
+CONFIG_DHT11=m
+CONFIG_DIMLIB=y
+CONFIG_DL2K=m
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+CONFIG_DLN2_ADC=m
+CONFIG_DM9102=m
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMARD09=m
+CONFIG_DMARD10=m
+CONFIG_DMAR_TABLE=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ACPI=y
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMA_CMA is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ENGINE_RAID=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+CONFIG_DMA_VIRT_OPS=y
+CONFIG_DMI=y
+CONFIG_DMIID=y
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_DMI_SYSFS=m
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_BUFIO=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_CACHE_SMQ=m
+CONFIG_DM_CLONE=m
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
+CONFIG_DM_DELAY=m
+# CONFIG_DM_DUST is not set
+CONFIG_DM_ERA=m
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_INIT=y
+CONFIG_DM_INTEGRITY=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_LOG_WRITES=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_RAID=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_SWITCH=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_FEC is not set
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_ZONED=m
+CONFIG_DNET=m
+CONFIG_DNOTIFY=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_DOUBLEFAULT=y
+CONFIG_DP83640_PHY=m
+CONFIG_DP83822_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+CONFIG_DP83TC811_PHY=m
+# CONFIG_DPM_WATCHDOG is not set
+CONFIG_DPS310=m
+CONFIG_DPTF_POWER=m
+CONFIG_DQL=y
+CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_DRM=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_CIK=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+CONFIG_DRM_AMD_ACP=y
+CONFIG_DRM_AMD_DC=y
+CONFIG_DRM_AMD_DC_DCN1_0=y
+CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
+CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_CIRRUS_QEMU=m
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+# CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+CONFIG_DRM_GM12U320=m
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I915=m
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG is not set
+# CONFIG_DRM_I915_DEBUG_GUC is not set
+# CONFIG_DRM_I915_DEBUG_MMIO is not set
+# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
+CONFIG_DRM_I915_FORCE_PROBE=""
+CONFIG_DRM_I915_GVT=y
+CONFIG_DRM_I915_GVT_KVMGT=m
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
+# CONFIG_DRM_I915_SELFTEST is not set
+CONFIG_DRM_I915_SPIN_REQUEST=5
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
+CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
+CONFIG_DRM_I915_USERPTR=y
+# CONFIG_DRM_I915_WERROR is not set
+CONFIG_DRM_KMS_CMA_HELPER=y
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_KMS_HELPER=m
+# CONFIG_DRM_LEGACY is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_MIPI_DBI=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_NOUVEAU_SVM is not set
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_PANEL_BRIDGE=y
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_USERPTR is not set
+CONFIG_DRM_SCHED=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_UDL=m
+CONFIG_DRM_VBOXVIDEO=m
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_DRM_VKMS=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_VRAM_HELPER=m
+CONFIG_DRM_XEN=y
+CONFIG_DRM_XEN_FRONTEND=m
+CONFIG_DS1682=m
+CONFIG_DS1803=m
+CONFIG_DS4424=m
+CONFIG_DST_CACHE=y
+CONFIG_DUMMY=m
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_DUMMY_IRQ=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_AF9033=m
+CONFIG_DVB_AS102=m
+CONFIG_DVB_AS102_FE=m
+CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522_V4L=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_IR=y
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_BT8XX=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET_PATCH=m
+CONFIG_DVB_CORE=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24117=m
+CONFIG_DVB_CX24120=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_CXD2099=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_CXD2841ER=m
+CONFIG_DVB_CXD2880=m
+CONFIG_DVB_DDBRIDGE=m
+# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
+# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_DIB9000=m
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_DRX39XYJ=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_DUMMY_FE=m
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_EC100=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+CONFIG_DVB_GP8PSK_FE=m
+CONFIG_DVB_HELENE=m
+CONFIG_DVB_HOPPER=m
+CONFIG_DVB_HORUS3A=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_LG2160=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT3306A=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGS8GL5=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_LNBH25=m
+CONFIG_DVB_LNBH29=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_M88DS3103=m
+CONFIG_DVB_M88RS2000=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_MB86A20S=m
+# CONFIG_DVB_MMAP is not set
+CONFIG_DVB_MN88443X=m
+CONFIG_DVB_MN88472=m
+CONFIG_DVB_MN88473=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_MXL5XX=m
+CONFIG_DVB_NET=y
+CONFIG_DVB_NETUP_UNIDVB=m
+CONFIG_DVB_NGENE=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_PLATFORM_DRIVERS=y
+CONFIG_DVB_PLL=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
+CONFIG_DVB_PT3=m
+CONFIG_DVB_RTL2830=m
+CONFIG_DVB_RTL2832=m
+CONFIG_DVB_RTL2832_SDR=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_S5H1432=m
+CONFIG_DVB_S921=m
+CONFIG_DVB_SI2165=m
+CONFIG_DVB_SI2168=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SMIPCIE=m
+CONFIG_DVB_SP2=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV0910=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_STV6111=m
+CONFIG_DVB_TC90522=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_TDA10071=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA18271C2DD=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TS2020=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+CONFIG_DVB_TUNER_ITD1000=m
+# CONFIG_DVB_ULE_DEBUG is not set
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_CXUSB_ANALOG=y
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIB3000MC=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_ZD1301=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZD1301_DEMOD=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DWC_XLGMAC=m
+CONFIG_DWC_XLGMAC_PCI=m
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC_PCI=m
+CONFIG_DW_EDMA=m
+CONFIG_DW_EDMA_PCIE=m
+CONFIG_DW_I3C_MASTER=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_DYNAMIC_MEMORY_LAYOUT=y
+CONFIG_DYNAMIC_PHYSICAL_MASK=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_E1000E_HWTS=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
+CONFIG_EBC_C384_WDT=m
+CONFIG_ECHO=m
+CONFIG_ECRYPT_FS=y
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_EDAC=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_ATOMIC_SCRUB=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_GHES=y
+CONFIG_EDAC_I10NM=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_IE31200=m
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+CONFIG_EDAC_PND2=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_EDAC_SKX=m
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EDAC_X38=m
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI=y
+CONFIG_EFIVAR_FS=y
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_ESRT=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_MIXED=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_EFI_RCI2_TABLE=y
+CONFIG_EFI_RUNTIME_MAP=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_STUB=y
+CONFIG_EFI_TEST=m
+CONFIG_EFI_VARS=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFS_FS=m
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EL3=m
+CONFIG_ELFCORE=y
+CONFIG_ELF_CORE=y
+# CONFIG_EMBEDDED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_ENA_ETHERNET=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_ENCX24J600=m
+# CONFIG_ENERGY_MODEL is not set
+CONFIG_ENIC=m
+CONFIG_EPIC100=m
+CONFIG_EPOLL=y
+CONFIG_EQUALIZER=m
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_ZIP=y
+CONFIG_ET131X=m
+CONFIG_ETHERNET=y
+CONFIG_ETHOC=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_EVENTFD=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVM=y
+CONFIG_EVM_ADD_XATTRS=y
+CONFIG_EVM_ATTR_FSUUID=y
+CONFIG_EVM_EXTRA_SMACK_XATTRS=y
+# CONFIG_EVM_LOAD_X509 is not set
+# CONFIG_EXFAT_DEBUG_MSG is not set
+CONFIG_EXFAT_DEFAULT_CODEPAGE=437
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_EXFAT_DELAYED_SYNC is not set
+CONFIG_EXFAT_DISCARD=y
+CONFIG_EXFAT_DONT_MOUNT_VFAT=y
+CONFIG_EXFAT_FS=m
+# CONFIG_EXFAT_KERNEL_DEBUG is not set
+CONFIG_EXPERT=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXTCON=y
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_ARIZONA=m
+CONFIG_EXTCON_AXP288=m
+CONFIG_EXTCON_FSA9480=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_INTEL_CHT_WC=m
+CONFIG_EXTCON_INTEL_INT3496=m
+CONFIG_EXTCON_MAX14577=m
+CONFIG_EXTCON_MAX3355=m
+CONFIG_EXTCON_MAX77693=m
+CONFIG_EXTCON_MAX77843=m
+CONFIG_EXTCON_MAX8997=m
+CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_PTN5150=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+CONFIG_EXTCON_USBC_CROS_EC=m
+CONFIG_EXTCON_USB_GPIO=m
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_EZX_PCAP=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_XATTR=y
+# CONFIG_F2FS_IO_TRACE is not set
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F71808E_WDT=m
+CONFIG_FAILOVER=m
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_FARSYNC=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+CONFIG_FAT_FS=y
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FB=y
+CONFIG_FB_3DFX=m
+# CONFIG_FB_3DFX_ACCEL is not set
+# CONFIG_FB_3DFX_I2C is not set
+CONFIG_FB_ARC=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_ATY_CT=y
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_BACKLIGHT=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+CONFIG_FB_DDC=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_HECUBA=m
+CONFIG_FB_HGA=m
+CONFIG_FB_HYPERV=m
+CONFIG_FB_I740=m
+# CONFIG_FB_IBM_GXT4500 is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL_DEBUG is not set
+CONFIG_FB_INTEL_I2C=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_LE80578=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_I2C=y
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_N411=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NOTIFY=y
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_I2C=y
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_I2C=y
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_SM501=m
+CONFIG_FB_SM712=m
+CONFIG_FB_SM750=m
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_SVGALIB=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UDL=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FHANDLE=y
+CONFIG_FIB_RULES=y
+CONFIG_FIELDBUS_DEV=m
+CONFIG_FILE_LOCKING=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FM10K=m
+CONFIG_FONTS=y
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_6x10=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_SUN8x16 is not set
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONT_TER16x32=y
+CONFIG_FORCEDETH=m
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_FPGA=m
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FPGA_DFL_AFU=m
+CONFIG_FPGA_DFL_FME=m
+CONFIG_FPGA_DFL_FME_BRIDGE=m
+CONFIG_FPGA_DFL_FME_MGR=m
+CONFIG_FPGA_DFL_FME_REGION=m
+CONFIG_FPGA_DFL_PCI=m
+CONFIG_FPGA_MGR_ALTERA_CVP=m
+CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
+CONFIG_FPGA_MGR_MACHXO2_SPI=m
+CONFIG_FPGA_MGR_XILINX_SPI=m
+CONFIG_FPGA_REGION=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_VECTOR=y
+CONFIG_FRAME_WARN=1024
+CONFIG_FREEZER=y
+CONFIG_FRONTSWAP=y
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSNOTIFY=y
+CONFIG_FS_DAX=y
+CONFIG_FS_DAX_PMD=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FTL=m
+CONFIG_FTRACE=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_FUJITSU_ES=m
+CONFIG_FUJITSU_LAPTOP=m
+CONFIG_FUJITSU_TABLET=m
+CONFIG_FUNCTION_ERROR_INJECTION=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_FS=y
+CONFIG_FUSION=y
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_LAN=m
+CONFIG_FUSION_LOGGING=y
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_SPI=m
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_FW_LOADER=y
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_FXAS21002C=m
+CONFIG_FXAS21002C_I2C=m
+CONFIG_FXAS21002C_SPI=m
+CONFIG_GACT_PROB=y
+CONFIG_GADGET_UAC1=y
+# CONFIG_GADGET_UAC1_LEGACY is not set
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GARP=m
+CONFIG_GART_IOMMU=y
+CONFIG_GCC_VERSION=90300
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_GDB_SCRIPTS=y
+CONFIG_GENERIC_ADC_BATTERY=m
+CONFIG_GENERIC_ADC_THERMAL=m
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_CPU=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_GENEVE=m
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_GIGASET_BASE=m
+# CONFIG_GIGASET_CAPI is not set
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_GIGASET_M101=m
+CONFIG_GIGASET_M105=m
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
+# CONFIG_GOLDFISH is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GP2AP020A00F=m
+CONFIG_GPD_POCKET_FAN=m
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_104_DIO_48E=m
+CONFIG_GPIO_104_IDIO_16=m
+CONFIG_GPIO_104_IDI_48=m
+CONFIG_GPIO_ACPI=y
+CONFIG_GPIO_ADP5520=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD8111=m
+CONFIG_GPIO_AMDPT=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_BD9571MWV=m
+CONFIG_GPIO_CRYSTAL_COVE=m
+CONFIG_GPIO_DA9052=m
+CONFIG_GPIO_DA9055=m
+CONFIG_GPIO_DLN2=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_EXAR=m
+CONFIG_GPIO_F7188X=m
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_GPIO_MM=m
+CONFIG_GPIO_ICH=m
+CONFIG_GPIO_IT87=m
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_KEMPLD=m
+CONFIG_GPIO_LP3943=m
+CONFIG_GPIO_LP873X=m
+CONFIG_GPIO_LYNXPOINT=y
+CONFIG_GPIO_MADERA=m
+CONFIG_GPIO_MAX3191X=m
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_MENZ127=m
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_PCIE_IDIO_24=m
+CONFIG_GPIO_PCI_IDIO_16=m
+CONFIG_GPIO_PISOSR=m
+CONFIG_GPIO_RC5T583=y
+CONFIG_GPIO_RDC321X=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_SCH311X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_TPS6586X=y
+CONFIG_GPIO_TPS65910=y
+CONFIG_GPIO_TPS65912=m
+CONFIG_GPIO_TPS68470=y
+CONFIG_GPIO_TQMX86=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_UCB1400=m
+CONFIG_GPIO_VIPERBOARD=m
+CONFIG_GPIO_VX855=m
+CONFIG_GPIO_WHISKEY_COVE=m
+CONFIG_GPIO_WINBOND=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_WM8350=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_WS16C48=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GPIO_XRA1403=m
+CONFIG_GRACE_PERIOD=m
+CONFIG_GREENASIA_FF=y
+CONFIG_GREYBUS=m
+CONFIG_GREYBUS_AUDIO=m
+CONFIG_GREYBUS_BOOTROM=m
+CONFIG_GREYBUS_BRIDGED_PHY=m
+CONFIG_GREYBUS_ES2=m
+CONFIG_GREYBUS_FIRMWARE=m
+CONFIG_GREYBUS_GPIO=m
+CONFIG_GREYBUS_HID=m
+CONFIG_GREYBUS_I2C=m
+CONFIG_GREYBUS_LIGHT=m
+CONFIG_GREYBUS_LOG=m
+CONFIG_GREYBUS_LOOPBACK=m
+CONFIG_GREYBUS_POWER=m
+CONFIG_GREYBUS_PWM=m
+CONFIG_GREYBUS_RAW=m
+CONFIG_GREYBUS_SDIO=m
+CONFIG_GREYBUS_SPI=m
+CONFIG_GREYBUS_UART=m
+CONFIG_GREYBUS_USB=m
+CONFIG_GREYBUS_VIBRATOR=m
+CONFIG_GRO_CELLS=y
+CONFIG_GS_FPGABOOT=m
+CONFIG_GTP=m
+# CONFIG_GUP_BENCHMARK is not set
+CONFIG_GVE=m
+CONFIG_HABANA_AI=m
+CONFIG_HALTPOLL_CPUIDLE=m
+CONFIG_HAMACHI=m
+CONFIG_HAMRADIO=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
+# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_EISA=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_NO_POLL=y
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_NMI=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PCI=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RELIABLE_STACKTRACE=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_HAVE_STACK_VALIDATION=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HD44780=m
+CONFIG_HDC100X=m
+CONFIG_HDLC=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_X25=m
+CONFIG_HDMI=y
+CONFIG_HDMI_LPE_AUDIO=m
+# CONFIG_HEADERS_INSTALL is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+# CONFIG_HERMES_PRISM is not set
+# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HI8435=m
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_ALPS=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_APPLEIR=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CMEDIA=m
+CONFIG_HID_CORSAIR=m
+CONFIG_HID_COUGAR=m
+CONFIG_HID_CP2112=m
+CONFIG_HID_CREATIVE_SB0540=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_ELAN=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_GENERIC=m
+CONFIG_HID_GFRM=m
+CONFIG_HID_GOOGLE_HAMMER=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_GT683R=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_HYPERV_MOUSE=m
+CONFIG_HID_ICADE=m
+CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_HID_MACALLY=m
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MALTRON=m
+CONFIG_HID_MAYFLASH=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PENMOUNT=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_CIR=y
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PID=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_REDRAGON=m
+CONFIG_HID_RETRODE=m
+CONFIG_HID_RMI=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_HID_SENSOR_ALS=m
+CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_HID_SENSOR_GYRO_3D=m
+CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
+CONFIG_HID_SENSOR_IIO_COMMON=m
+CONFIG_HID_SENSOR_IIO_TRIGGER=m
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_HID_SENSOR_PRESS=m
+CONFIG_HID_SENSOR_PROX=m
+CONFIG_HID_SENSOR_TEMP=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=m
+CONFIG_HID_STEELSERIES=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_U2FZERO=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_UDRAW_PS3=m
+CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HINIC=m
+CONFIG_HIO=m
+# CONFIG_HIPPI is not set
+CONFIG_HIST_TRIGGERS=y
+CONFIG_HMC6352=m
+CONFIG_HMEM_REPORTING=y
+CONFIG_HMM_MIRROR=y
+CONFIG_HOLTEK_FF=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_CS=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HOTPLUG_SMT=y
+CONFIG_HP03=m
+CONFIG_HP100=m
+CONFIG_HP206C=m
+CONFIG_HPET=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPFS_FS=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_HP_ACCEL=m
+CONFIG_HP_ILO=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_HSA_AMD=y
+CONFIG_HSI=m
+CONFIG_HSI_BOARDINFO=y
+CONFIG_HSI_CHAR=m
+CONFIG_HSR=m
+CONFIG_HSU_DMA=m
+CONFIG_HTC_I2CPLD=y
+CONFIG_HTC_PASIC3=m
+CONFIG_HTS221=m
+CONFIG_HTS221_I2C=m
+CONFIG_HTS221_SPI=m
+CONFIG_HTU21=m
+CONFIG_HUAWEI_WMI=m
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_HWLAT_TRACER=y
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_HWMON_VID=m
+CONFIG_HWPOISON_INJECT=m
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HX711=m
+CONFIG_HYPERV=m
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_HYPERV_BALLOON=m
+CONFIG_HYPERV_IOMMU=y
+CONFIG_HYPERV_KEYBOARD=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_TIMER=y
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_VSOCKETS=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_AMD_MP2=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_CHT_WC=m
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CROS_EC_TUNNEL=m
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_DLN2=m
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_KEMPLD=m
+CONFIG_I2C_MLXCPLD=m
+CONFIG_I2C_MULTI_INSTANTIATE=m
+CONFIG_I2C_MUX=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_SCMI=m
+CONFIG_I2C_SI470X=m
+CONFIG_I2C_SI4713=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+# CONFIG_I2C_SLAVE is not set
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VIPERBOARD=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I40E=m
+CONFIG_I40EVF=m
+CONFIG_I40E_DCB=y
+CONFIG_I6300ESB_WDT=m
+CONFIG_I82092=m
+CONFIG_I8253_LOCK=y
+CONFIG_I8K=m
+CONFIG_IA32_EMULATION=y
+CONFIG_IAQCORE=m
+CONFIG_IAVF=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_IBM_ASM=m
+CONFIG_IBM_RTL=m
+CONFIG_ICE=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_ICS932S401=m
+# CONFIG_IDE is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_IDLE_INJECT=y
+CONFIG_IDLE_PAGE_TRACKING=y
+CONFIG_IE6XX_WDT=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_IEEE802154_ADF7242=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_AT86RF230_DEBUGFS=y
+CONFIG_IEEE802154_ATUSB=m
+CONFIG_IEEE802154_CA8210=m
+CONFIG_IEEE802154_CA8210_DEBUGFS=y
+CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKELB=m
+CONFIG_IEEE802154_HWSIM=m
+CONFIG_IEEE802154_MCR20A=m
+CONFIG_IEEE802154_MRF24J40=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+CONFIG_IFB=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IGB_DCA=y
+CONFIG_IGB_HWMON=y
+CONFIG_IGC=m
+CONFIG_IIO=m
+CONFIG_IIO_ADIS_LIB=m
+CONFIG_IIO_ADIS_LIB_BUFFER=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
+CONFIG_IIO_CONFIGFS=m
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO_MS_SENSORS_I2C=m
+CONFIG_IIO_SIMPLE_DUMMY=m
+# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
+# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
+CONFIG_IIO_SSP_SENSORHUB=m
+CONFIG_IIO_SSP_SENSORS_COMMONS=m
+CONFIG_IIO_ST_ACCEL_3AXIS=m
+CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
+CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
+CONFIG_IIO_ST_GYRO_3AXIS=m
+CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
+CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
+CONFIG_IIO_ST_LSM6DSX=m
+CONFIG_IIO_ST_LSM6DSX_I2C=m
+CONFIG_IIO_ST_LSM6DSX_I3C=m
+CONFIG_IIO_ST_LSM6DSX_SPI=m
+CONFIG_IIO_ST_MAGN_3AXIS=m
+CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
+CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_IIO_ST_PRESS=m
+CONFIG_IIO_ST_PRESS_I2C=m
+CONFIG_IIO_ST_PRESS_SPI=m
+CONFIG_IIO_ST_SENSORS_CORE=m
+CONFIG_IIO_ST_SENSORS_I2C=m
+CONFIG_IIO_ST_SENSORS_SPI=m
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
+# CONFIG_IKCONFIG is not set
+CONFIG_IKHEADERS=m
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_IMA=y
+CONFIG_IMA_APPRAISE=y
+CONFIG_IMA_APPRAISE_BOOTPARAM=y
+# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
+# CONFIG_IMA_ARCH_POLICY is not set
+# CONFIG_IMA_BLACKLIST_KEYRING is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_LSM_RULES=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+# CONFIG_IMA_TEMPLATE is not set
+CONFIG_IMA_TRUSTED_KEYRING=y
+# CONFIG_IMA_WRITE_POLICY is not set
+CONFIG_IMG_ASCII_LCD=m
+CONFIG_INA2XX_ADC=m
+CONFIG_INET=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET_AH=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_INET_ESP=m
+CONFIG_INET_ESP_OFFLOAD=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_RAW_DIAG=m
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_CXGB3=m
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_EFA=m
+# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
+CONFIG_INFINIBAND_HFI1=m
+CONFIG_INFINIBAND_I40IW=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_OPA_VNIC=m
+CONFIG_INFINIBAND_QEDR=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_RDMAVT=m
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_VIRT_DMA=y
+CONFIG_INFINIBAND_VMWARE_PVRDMA=m
+CONFIG_INFTL=m
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_INIT_STACK_NONE=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_INOTIFY_USER=y
+CONFIG_INPUT=y
+CONFIG_INPUT_88PM80X_ONKEY=m
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ARIZONA_HAPTICS=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_DA9052_ONKEY=m
+CONFIG_INPUT_DA9055_ONKEY=m
+CONFIG_INPUT_DA9063_ONKEY=m
+CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2665_HAPTICS=m
+CONFIG_INPUT_DRV2667_HAPTICS=m
+CONFIG_INPUT_E3X0_BUTTON=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_GP2A=m
+CONFIG_INPUT_GPIO_BEEPER=m
+CONFIG_INPUT_GPIO_DECODER=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_GPIO_VIBRA=m
+CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_IMS_PCU=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MAX77693_HAPTIC=m
+CONFIG_INPUT_MAX8925_ONKEY=m
+CONFIG_INPUT_MAX8997_HAPTIC=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_MSM_VIBRATOR=m
+CONFIG_INPUT_PALMAS_PWRBUTTON=m
+CONFIG_INPUT_PCAP=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_PWM_BEEPER=m
+CONFIG_INPUT_PWM_VIBRA=m
+CONFIG_INPUT_RAVE_SP_PWRBUTTON=m
+CONFIG_INPUT_REGULATOR_HAPTIC=m
+CONFIG_INPUT_RETU_PWRBUTTON=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
+CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_INT3406_THERMAL=m
+CONFIG_INT340X_THERMAL=m
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_INTEGRITY_PLATFORM_KEYRING=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_TRUSTED_KEYRING=y
+CONFIG_INTEL_ATOMISP2_PM=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_GTT=y
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_IDLE=y
+CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_INT0002_VGPIO=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_INTEL_IOMMU_SVM=y
+CONFIG_INTEL_IPS=m
+CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
+CONFIG_INTEL_ISH_HID=m
+CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI_HDCP=m
+CONFIG_INTEL_MEI_ME=m
+CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_WDT=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_INTEL_MIC_BUS=m
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_INTEL_MIC_HOST=m
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_INTEL_PCH_THERMAL=m
+CONFIG_INTEL_PMC_CORE=y
+CONFIG_INTEL_PMC_IPC=m
+CONFIG_INTEL_POWERCLAMP=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RAPL=m
+CONFIG_INTEL_RAPL_CORE=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
+CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_SOC_PMIC=y
+CONFIG_INTEL_SOC_PMIC_BXTWC=m
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
+CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
+CONFIG_INTEL_TELEMETRY=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_ACPI=m
+# CONFIG_INTEL_TH_DEBUG is not set
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_PTI=m
+CONFIG_INTEL_TH_STH=m
+CONFIG_INTEL_TURBO_MAX_3=y
+CONFIG_INTEL_TXT=y
+CONFIG_INTEL_VBTN=m
+CONFIG_INTEL_WMI_THUNDERBOLT=m
+CONFIG_INTEL_XWAY_PHY=m
+CONFIG_INTERCONNECT=m
+CONFIG_INTERVAL_TREE=y
+# CONFIG_INTERVAL_TREE_TEST is not set
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_INV_MPU6050_IIO=m
+CONFIG_INV_MPU6050_SPI=m
+CONFIG_IOMMU_API=y
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_ION is not set
+CONFIG_IONIC=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_IOSF_MBI=y
+CONFIG_IOSF_MBI_DEBUG=y
+# CONFIG_IO_DELAY_0X80 is not set
+CONFIG_IO_DELAY_0XED=y
+# CONFIG_IO_DELAY_NONE is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_STRICT_DEVMEM is not set
+CONFIG_IO_URING=y
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IPACK_BUS=m
+CONFIG_IPC_NS=y
+# CONFIG_IPDDP is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_PLAT_DATA=y
+CONFIG_IPMI_POWEROFF=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPV6=y
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_SEG6_BPF=y
+CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPVLAN=m
+CONFIG_IPVLAN_L3S=y
+CONFIG_IPVTAP=m
+CONFIG_IPW2100=m
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2100_MONITOR=y
+CONFIG_IPW2200=m
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPWIRELESS=m
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_DCCP=m
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+# CONFIG_IP_DCCP_CCID3 is not set
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_COMMON=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_SCTP=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMAC=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_MH=m
+CONFIG_IP_VS_MH_TAB_INDEX=12
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_OVF=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SH_TAB_BITS=8
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_WRR=m
+# CONFIG_IRQSOFF_TRACER is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+CONFIG_IRQ_POLL=y
+CONFIG_IRQ_REMAP=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_IRQ_WORK=y
+CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_IMON=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_IMON_RAW=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_RCMM_DECODER=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SERIAL=m
+CONFIG_IR_SERIAL_TRANSMITTER=y
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_ISA_BUS=y
+CONFIG_ISA_BUS_API=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ISCSI_IBFT=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_TARGET=m
+CONFIG_ISCSI_TARGET_CXGB4=m
+CONFIG_ISCSI_TCP=m
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_ISI=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_ISL29125=m
+CONFIG_ISL29501=m
+CONFIG_ISO9660_FS=m
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_ITCO_WDT=m
+CONFIG_ITG3200=m
+CONFIG_IWL3945=m
+CONFIG_IWL4965=m
+CONFIG_IWLDVM=m
+CONFIG_IWLEGACY=m
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_IWLEGACY_DEBUGFS=y
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEBUGFS=y
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBEVF=m
+CONFIG_IXGBEVF_IPSEC=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_IPSEC=y
+CONFIG_JAILHOUSE_GUEST=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_JME=m
+CONFIG_JOLIET=y
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_FSIA6B=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_232=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PXRC=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JSA1212=m
+CONFIG_JUMP_LABEL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_KARMA_PARTITION=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_STACK=1
+# CONFIG_KCOV is not set
+CONFIG_KDB_CONTINUE_CATASTROPHIC=0
+CONFIG_KDB_DEFAULT_ENABLE=0x1
+CONFIG_KDB_KEYBOARD=y
+CONFIG_KEMPLD_WDT=m
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZ4=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_XZ is not set
+CONFIG_KERNFS=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
+CONFIG_KEXEC_CORE=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_JUMP=y
+CONFIG_KEXEC_SIG=y
+# CONFIG_KEXEC_SIG_FORCE is not set
+CONFIG_KEYBOARD_ADC=m
+CONFIG_KEYBOARD_ADP5520=m
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_APPLESPI=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_CROS_EC=m
+CONFIG_KEYBOARD_DLINK_DIR685=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_MTK_PMIC=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_QT1050=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_SAMSUNG=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_TM2_TOUCHKEY=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYS=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_KEYS_REQUEST_CACHE=y
+CONFIG_KEY_DH_OPERATIONS=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KGDB_LOW_LEVEL_TRAP=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_KMX61=m
+CONFIG_KPC2000=y
+CONFIG_KPC2000_CORE=m
+CONFIG_KPC2000_DMA=m
+CONFIG_KPC2000_I2C=m
+CONFIG_KPC2000_SPI=m
+CONFIG_KPROBES=y
+CONFIG_KPROBES_ON_FTRACE=y
+# CONFIG_KPROBES_SANITY_TEST is not set
+CONFIG_KPROBE_EVENTS=y
+# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
+CONFIG_KRETPROBES=y
+CONFIG_KS0108=m
+CONFIG_KS0108_DELAY=2
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS7010=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSM=y
+CONFIG_KSZ884X_PCI=m
+CONFIG_KVM=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_KVM_COMPAT=y
+CONFIG_KVM_DEBUG_FS=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_KVM_GUEST=y
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_MMIO=y
+# CONFIG_KVM_MMU_AUDIT is not set
+CONFIG_KVM_VFIO=y
+CONFIG_KXCJK1013=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9_SPI=m
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+CONFIG_L2TP_ETH=m
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_V3=y
+CONFIG_LAN743X=m
+CONFIG_LANMEDIA=m
+CONFIG_LAPB=m
+CONFIG_LAPBETHER=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LATTICE_ECP3_CONFIG=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_HX8357=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_OTM3225A=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LDISC_AUTOLOAD=y
+# CONFIG_LDM_DEBUG is not set
+CONFIG_LDM_PARTITION=y
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_ADP5520=m
+CONFIG_LEDS_APU=m
+CONFIG_LEDS_AS3645A=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_DA903X=m
+CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_LM3532=m
+CONFIG_LEDS_LM3533=m
+CONFIG_LEDS_LM355x=m
+CONFIG_LEDS_LM3601X=m
+CONFIG_LEDS_LM36274=m
+CONFIG_LEDS_LM3642=m
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LP5562=m
+CONFIG_LEDS_LP55XX_COMMON=m
+CONFIG_LEDS_LP8501=m
+CONFIG_LEDS_LP8788=m
+CONFIG_LEDS_MAX8997=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_MENF21BMC=m
+CONFIG_LEDS_MLXCPLD=m
+CONFIG_LEDS_MLXREG=m
+CONFIG_LEDS_MT6323=m
+CONFIG_LEDS_NIC78BX=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA955X_GPIO=y
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_TI_LMU_COMMON=m
+CONFIG_LEDS_TLC591XX=m
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_ACTIVITY=m
+CONFIG_LEDS_TRIGGER_AUDIO=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_USER=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LED_TRIGGER_PHY=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=0
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+# CONFIG_LEGACY_VSYSCALL_NONE is not set
+CONFIG_LEGACY_VSYSCALL_XONLY=y
+CONFIG_LG_LAPTOP=m
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+CONFIG_LIB80211_CRYPT_WEP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_LIBCRC32C=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_LIBNVDIMM=y
+CONFIG_LIDAR_LITE_V2=m
+CONFIG_LIQUIDIO=m
+CONFIG_LIQUIDIO_VF=m
+CONFIG_LIRC=y
+CONFIG_LIVEPATCH=y
+# CONFIG_LKDTM is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_LMP91000=m
+CONFIG_LOAD_UEFI_KEYS=y
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD_V4=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_DOWN_IN_SECURE_BOOT=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
+CONFIG_LOCK_SPIN_ON_OWNER=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIWHEELS_FF=y
+# CONFIG_LOGO is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_LP8788_ADC=m
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_LRU_CACHE=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LSM="lockdown,yama,integrity,apparmor"
+CONFIG_LSM_MMAP_MIN_ADDR=0
+CONFIG_LTC1660=m
+CONFIG_LTC2471=m
+CONFIG_LTC2485=m
+CONFIG_LTC2497=m
+CONFIG_LTC2632=m
+CONFIG_LTE_GDM724X=m
+CONFIG_LTPC=m
+CONFIG_LTR501=m
+CONFIG_LV0104CS=m
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_LXT_PHY=m
+CONFIG_LZ4HC_COMPRESS=m
+CONFIG_LZ4_COMPRESS=m
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_M62332=m
+CONFIG_MAC80211=m
+CONFIG_MAC80211_DEBUGFS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_HWSIM=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_MESSAGE_TRACING=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_MAC802154=m
+CONFIG_MACB=m
+CONFIG_MACB_PCI=m
+CONFIG_MACB_USE_HWSTAMP=y
+CONFIG_MACHZ_WDT=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MACSEC=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MADERA_IRQ=m
+CONFIG_MAG3110=m
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAILBOX=y
+CONFIG_MANAGER_SBS=m
+CONFIG_MANDATORY_FILE_LOCKING=y
+CONFIG_MANTIS_CORE=m
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MARVELL_PHY=m
+# CONFIG_MATOM is not set
+CONFIG_MAX1027=m
+CONFIG_MAX11100=m
+CONFIG_MAX1118=m
+CONFIG_MAX1363=m
+CONFIG_MAX30100=m
+CONFIG_MAX30102=m
+CONFIG_MAX31856=m
+CONFIG_MAX44000=m
+CONFIG_MAX44009=m
+CONFIG_MAX517=m
+CONFIG_MAX5432=m
+CONFIG_MAX5481=m
+CONFIG_MAX5487=m
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MAX8925_POWER=m
+CONFIG_MAX9611=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAXSMP=y
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_MB1232=m
+CONFIG_MC3230=m
+CONFIG_MCB=m
+CONFIG_MCB_LPC=m
+CONFIG_MCB_PCI=m
+# CONFIG_MCORE2 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_MCP3911=m
+CONFIG_MCP4018=m
+CONFIG_MCP41010=m
+CONFIG_MCP4131=m
+CONFIG_MCP4531=m
+CONFIG_MCP4725=m
+CONFIG_MCP4922=m
+CONFIG_MD=y
+CONFIG_MDIO=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_CAVIUM=m
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_I2C=m
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_CLUSTER=m
+CONFIG_MD_FAULTY=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_MEDIA_COMMON_OPTIONS=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_MEDIA_CONTROLLER_DVB=y
+# CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_PCI_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_E4000=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER_M88RS6000T=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MSI001=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_QM1D1B0004=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_SI2157=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18250=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
+CONFIG_MEMBARRIER=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_MEMCG_SWAP=y
+# CONFIG_MEMCG_SWAP_ENABLED is not set
+CONFIG_MEMFD_CREATE=y
+CONFIG_MEMORY=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_MEMSTICK_TIFM_MS=m
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MEMTEST=y
+CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_MENF21BMC_WATCHDOG=m
+CONFIG_MENZ069_WATCHDOG=m
+CONFIG_MEN_A21_WDT=m
+CONFIG_MEN_Z188_ADC=m
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_88PM860X=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_AS3711=y
+CONFIG_MFD_AXP20X=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_DEV=m
+CONFIG_MFD_CS47L15=y
+CONFIG_MFD_CS47L24=y
+CONFIG_MFD_CS47L35=y
+CONFIG_MFD_CS47L85=y
+CONFIG_MFD_CS47L90=y
+CONFIG_MFD_CS47L92=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_DLN2=m
+CONFIG_MFD_INTEL_LPSS=m
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
+CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_LP8788=y
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MADERA_I2C=m
+CONFIG_MFD_MADERA_SPI=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX77843=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MAX8925=y
+CONFIG_MFD_MAX8997=y
+CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MC13XXX=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MC13XXX_SPI=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PALMAS=y
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SMSC=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65090=y
+CONFIG_MFD_TPS6586X=y
+CONFIG_MFD_TPS65910=y
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TPS65912_SPI=y
+CONFIG_MFD_TPS68470=y
+CONFIG_MFD_TPS80031=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_TWL4030_AUDIO=y
+CONFIG_MFD_VIPERBOARD=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM5102=y
+CONFIG_MFD_WM5110=y
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_I2C=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_WM8350=y
+CONFIG_MFD_WM8350_I2C=y
+CONFIG_MFD_WM8400=y
+CONFIG_MFD_WM8994=m
+CONFIG_MFD_WM8997=y
+CONFIG_MFD_WM8998=y
+CONFIG_MICREL_KS8995MA=m
+CONFIG_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_MICROSEMI_PHY=m
+CONFIG_MIC_COSM=m
+CONFIG_MIGRATION=y
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
+CONFIG_MISDN=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_HDLC=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_MISDN_L1OIP=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_W6692=m
+# CONFIG_MK8 is not set
+CONFIG_MKISS=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_CORE_GEN2=y
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_ACCEL=y
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_EN_DCB=y
+CONFIG_MLX5_CORE_IPOIB=y
+CONFIG_MLX5_EN_ARFS=y
+CONFIG_MLX5_EN_IPSEC=y
+CONFIG_MLX5_EN_RXNFC=y
+CONFIG_MLX5_EN_TLS=y
+CONFIG_MLX5_ESWITCH=y
+CONFIG_MLX5_FPGA=y
+CONFIG_MLX5_FPGA_IPSEC=y
+CONFIG_MLX5_FPGA_TLS=y
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+CONFIG_MLX5_TLS=y
+CONFIG_MLX90614=m
+CONFIG_MLX90632=m
+CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
+CONFIG_MLXREG_IO=m
+CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_CORE_HWMON=y
+CONFIG_MLXSW_CORE_THERMAL=y
+CONFIG_MLXSW_I2C=m
+CONFIG_MLXSW_MINIMAL=m
+CONFIG_MLXSW_PCI=m
+CONFIG_MLXSW_SPECTRUM=m
+CONFIG_MLXSW_SPECTRUM_DCB=y
+CONFIG_MLXSW_SWITCHIB=m
+CONFIG_MLXSW_SWITCHX2=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLX_WDT=m
+CONFIG_MMA7455=m
+CONFIG_MMA7455_I2C=m
+CONFIG_MMA7455_SPI=m
+CONFIG_MMA7660=m
+CONFIG_MMA8452=m
+CONFIG_MMA9551=m
+CONFIG_MMA9551_CORE=m
+CONFIG_MMA9553=m
+CONFIG_MMC=y
+CONFIG_MMC35240=m
+CONFIG_MMCONF_FAM10H=y
+CONFIG_MMC_ALCOR=m
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_MTK=m
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_F_SDH30=m
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_SPI=m
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MMC_USDHI6ROL0=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_MMU=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_MODIFY_LDT_SYSCALL=y
+CONFIG_MODULES=y
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_ALL=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULE_SIG_HASH="sha512"
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+# CONFIG_MODULE_SIG_SHA1 is not set
+# CONFIG_MODULE_SIG_SHA224 is not set
+# CONFIG_MODULE_SIG_SHA256 is not set
+# CONFIG_MODULE_SIG_SHA384 is not set
+CONFIG_MODULE_SIG_SHA512=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MOST=m
+CONFIG_MOST_CDEV=m
+CONFIG_MOST_I2C=m
+CONFIG_MOST_NET=m
+CONFIG_MOST_SOUND=m
+CONFIG_MOST_USB=m
+CONFIG_MOST_VIDEO=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_SMBUS=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_MPILIB=y
+CONFIG_MPL115=m
+CONFIG_MPL115_I2C=m
+CONFIG_MPL115_SPI=m
+CONFIG_MPL3115=m
+CONFIG_MPLS=y
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_MPLS_ROUTING=m
+# CONFIG_MPSC is not set
+CONFIG_MPU3050=m
+CONFIG_MPU3050_I2C=m
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_MRP=m
+CONFIG_MS5611=m
+CONFIG_MS5611_I2C=m
+CONFIG_MS5611_SPI=m
+CONFIG_MS5637=m
+CONFIG_MSCC_OCELOT_SWITCH=m
+CONFIG_MSDOS_FS=m
+CONFIG_MSDOS_PARTITION=y
+CONFIG_MSI_LAPTOP=m
+CONFIG_MSI_WMI=m
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MS_BLOCK=m
+CONFIG_MT7601U=m
+CONFIG_MT7603E=m
+CONFIG_MT7615E=m
+CONFIG_MT76_CORE=m
+CONFIG_MT76_LEDS=y
+CONFIG_MT76_USB=m
+CONFIG_MT76x02_LIB=m
+CONFIG_MT76x02_USB=m
+CONFIG_MT76x0E=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x0_COMMON=m
+CONFIG_MT76x2E=m
+CONFIG_MT76x2U=m
+CONFIG_MT76x2_COMMON=m
+CONFIG_MTD=m
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DATAFLASH_OTP=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_HYPERBUS=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MCHP23K256=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_ECC_SW_BCH=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_NAND_GPIO=m
+CONFIG_MTD_NAND_MXIC=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_GENERIC=m
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_OOPS=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PHYSMAP_GPIO_ADDR=y
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_RAW_NAND=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SPI_NAND=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_MTD_UBI_GLUEBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_MULTIUSER=y
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_MVMDIO=m
+CONFIG_MWAVE=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+CONFIG_MXC4005=m
+CONFIG_MXC6255=m
+CONFIG_MXM_WMI=m
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NAMESPACES=y
+CONFIG_NATIONAL_PHY=m
+CONFIG_NATSEMI=m
+CONFIG_NAU7802=m
+CONFIG_NCSI_OEM_CMD_GET_MAC=y
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_ND_CLAIM=y
+CONFIG_ND_PFN=m
+CONFIG_NE2K_PCI=m
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NET=y
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETDEVICES=y
+CONFIG_NETDEVSIM=m
+# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_NETLINK_OSF=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETLABEL=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_NETPOLL=y
+CONFIG_NETROM=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_RDMA=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_CT=m
+CONFIG_NET_ACT_CTINFO=m
+CONFIG_NET_ACT_GACT=m
+# CONFIG_NET_ACT_IFE is not set
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_MPLS=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CORE=y
+CONFIG_NET_DEVLINK=y
+CONFIG_NET_DROP_MONITOR=y
+CONFIG_NET_DSA=m
+CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_NET_DSA_LANTIQ_GSWIP=m
+# CONFIG_NET_DSA_LOOP is not set
+CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
+CONFIG_NET_DSA_MT7530=m
+CONFIG_NET_DSA_MV88E6060=m
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_MV88E6XXX_PTP=y
+CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_REALTEK_SMI=m
+CONFIG_NET_DSA_SJA1105=m
+CONFIG_NET_DSA_SJA1105_PTP=y
+CONFIG_NET_DSA_SJA1105_TAS=y
+CONFIG_NET_DSA_SMSC_LAN9303=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
+CONFIG_NET_DSA_TAG_8021Q=m
+CONFIG_NET_DSA_TAG_BRCM=m
+CONFIG_NET_DSA_TAG_BRCM_COMMON=m
+CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
+CONFIG_NET_DSA_TAG_DSA=m
+CONFIG_NET_DSA_TAG_EDSA=m
+CONFIG_NET_DSA_TAG_GSWIP=m
+CONFIG_NET_DSA_TAG_KSZ=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_MTK=m
+CONFIG_NET_DSA_TAG_QCA=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=m
+CONFIG_NET_EGRESS=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_EMATCH_IPT=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_FAILOVER=m
+CONFIG_NET_FC=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_NET_IFE=m
+CONFIG_NET_INGRESS=y
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPVTI=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_NET_NCSI=y
+CONFIG_NET_NS=y
+CONFIG_NET_NSH=m
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_REDIRECT=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_NET_SB1000=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_ETF=m
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_SKBPRIO=m
+CONFIG_NET_SCH_TAPRIO=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SOCK_MSG=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TULIP=y
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_AURORA=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_CORTINA=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_SYNOPSYS=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NET_VENDOR_XILINX=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_NET_VRF=m
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_FDP=m
+CONFIG_NFC_FDP_I2C=m
+CONFIG_NFC_HCI=m
+CONFIG_NFC_MEI_PHY=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MICROREAD_MEI=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_I2C=m
+CONFIG_NFC_MRVL_SPI=m
+CONFIG_NFC_MRVL_UART=m
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_NCI_SPI=m
+CONFIG_NFC_NCI_UART=m
+CONFIG_NFC_NXP_NCI=m
+CONFIG_NFC_NXP_NCI_I2C=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_PN533_I2C=m
+CONFIG_NFC_PN533_USB=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_PN544_MEI=m
+CONFIG_NFC_PORT100=m
+CONFIG_NFC_S3FWRN5=m
+CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_NFC_SHDLC=y
+CONFIG_NFC_SIM=m
+CONFIG_NFC_ST21NFCA=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST95HF=m
+CONFIG_NFC_ST_NCI=m
+CONFIG_NFC_ST_NCI_I2C=m
+CONFIG_NFC_ST_NCI_SPI=m
+CONFIG_NFC_TRF7970A=m
+# CONFIG_NFIT_SECURITY_DEBUG is not set
+CONFIG_NFP=m
+CONFIG_NFP_APP_ABM_NIC=y
+CONFIG_NFP_APP_FLOWER=y
+# CONFIG_NFP_DEBUG is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_FLEXFILELAYOUT=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_SCSILAYOUT=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_DEBUG=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_2=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FIB=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_XFRM=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_BRIDGE=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_DUP_IPV6=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_LOG_NETDEV=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_MASQUERADE=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_REDIRECT=y
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NF_TABLES_SET=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NI903X_WDT=m
+CONFIG_NIC7018_WDT=m
+CONFIG_NILFS2_FS=m
+CONFIG_NIU=m
+CONFIG_NI_XGE_MANAGEMENT_ENET=m
+# CONFIG_NL80211_TESTMODE is not set
+CONFIG_NLATTR=y
+CONFIG_NLMON=m
+CONFIG_NLS=y
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+CONFIG_NOA1305=m
+CONFIG_NODES_SHIFT=10
+CONFIG_NODES_SPAN_OTHER_NODES=y
+CONFIG_NOP_TRACER=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_NOTIFIER_ERROR_INJECTION=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
+CONFIG_NOZOMI=m
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_NO_HZ_FULL is not set
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NR_CPUS=8192
+CONFIG_NR_CPUS_DEFAULT=8192
+CONFIG_NR_CPUS_RANGE_BEGIN=8192
+CONFIG_NR_CPUS_RANGE_END=8192
+CONFIG_NS83820=m
+CONFIG_NTB=m
+# CONFIG_NTB_AMD is not set
+CONFIG_NTB_IDT=m
+CONFIG_NTB_INTEL=m
+CONFIG_NTB_MSI=y
+# CONFIG_NTB_MSI_TEST is not set
+CONFIG_NTB_NETDEV=m
+CONFIG_NTB_PERF=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_SWITCHTEC=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NULL_TTY=m
+CONFIG_NUMA=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NVDIMM_DAX=y
+CONFIG_NVDIMM_KEYS=y
+CONFIG_NVDIMM_PFN=y
+CONFIG_NVM=y
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_NVME_CORE=m
+CONFIG_NVME_FABRICS=m
+CONFIG_NVME_FC=m
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_FC=m
+# CONFIG_NVME_TARGET_FCLOOP is not set
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_TCP=m
+CONFIG_NVME_TCP=m
+CONFIG_NVM_PBLK=m
+# CONFIG_NVM_PBLK_DEBUG is not set
+CONFIG_NVRAM=m
+CONFIG_NV_TCO=m
+CONFIG_NXP_TJA11XX_PHY=m
+CONFIG_N_GSM=m
+CONFIG_N_HDLC=m
+CONFIG_OBJAGG=m
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+# CONFIG_OF is not set
+CONFIG_OID_REGISTRY=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OMFS_FS=m
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_OPT3001=m
+CONFIG_OPTIMIZE_INLINING=y
+CONFIG_OPTPROBES=y
+CONFIG_ORANGEFS_FS=m
+CONFIG_ORINOCO_USB=m
+CONFIG_OSF_PARTITION=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+CONFIG_P54_COMMON=m
+CONFIG_P54_LEDS=y
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
+CONFIG_P54_USB=m
+CONFIG_PA12203001=m
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=m
+CONFIG_PACKING=y
+CONFIG_PADATA=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_PAGE_POISONING=y
+CONFIG_PAGE_POISONING_NO_SANITY=y
+CONFIG_PAGE_POISONING_ZERO=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_TABLE_ISOLATION=y
+CONFIG_PALMAS_GPADC=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_PANEL=m
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PANTHERLORD_FF=y
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_PARAVIRT_XXL=y
+CONFIG_PARIDE=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARMAN=m
+CONFIG_PARPORT=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PARPORT_PANEL=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=y
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PC104=y
+CONFIG_PC300TOO=m
+CONFIG_PC87413_WDT=m
+CONFIG_PCC=y
+CONFIG_PCCARD=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_PCENGINES_APU2=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_PCI=y
+CONFIG_PCI200SYN=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIE_BW is not set
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_EP=y
+CONFIG_PCIE_DW_HOST=y
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW_PLAT_EP=y
+CONFIG_PCIE_DW_PLAT_HOST=y
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCIE_PTM=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCI_ATS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_PCI_EPF_TEST is not set
+CONFIG_PCI_HYPERV=m
+CONFIG_PCI_HYPERV_INTERFACE=m
+CONFIG_PCI_IOV=y
+CONFIG_PCI_LABEL=y
+CONFIG_PCI_LOCKLESS_CONFIG=y
+# CONFIG_PCI_MESON is not set
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+# CONFIG_PCI_P2PDMA is not set
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PF_STUB=m
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_PCI_SW_SWITCHTEC=m
+CONFIG_PCI_XEN=y
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCNET32=m
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PD6729=m
+CONFIG_PDA_POWER=m
+CONFIG_PDC_ADMA=m
+CONFIG_PEAQ_WMI=m
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_PERCPU_TEST is not set
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_EVENTS_AMD_POWER is not set
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHYLINK=m
+CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PHY_CPCAP_USB=m
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_PHY_QCOM_USB_HSIC=m
+CONFIG_PHY_SAMSUNG_USB2=m
+CONFIG_PHY_TUSB1210=m
+CONFIG_PI433=m
+CONFIG_PID_NS=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AMD=y
+CONFIG_PINCTRL_BAYTRAIL=y
+CONFIG_PINCTRL_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_CEDARFORK=m
+CONFIG_PINCTRL_CHERRYVIEW=y
+CONFIG_PINCTRL_CS47L15=y
+CONFIG_PINCTRL_CS47L35=y
+CONFIG_PINCTRL_CS47L85=y
+CONFIG_PINCTRL_CS47L90=y
+CONFIG_PINCTRL_CS47L92=y
+CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_INTEL=m
+CONFIG_PINCTRL_LEWISBURG=m
+CONFIG_PINCTRL_MADERA=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_PINCTRL_SUNRISEPOINT=m
+CONFIG_PINCTRL_SX150X=y
+CONFIG_PINMUX=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+CONFIG_PKCS7_TEST_KEY=m
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PLATFORM_SI4713=m
+CONFIG_PLIP=m
+CONFIG_PLUGIN_HOSTCC=""
+CONFIG_PLX_HERMES=m
+CONFIG_PM=y
+CONFIG_PMBUS=m
+CONFIG_PMC_ATOM=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_PMS7003=m
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_AUTOSLEEP is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_NOTIFIER_ERROR_INJECT=m
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_DEBUG=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_STD_PARTITION=""
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_GC=y
+CONFIG_PM_WAKELOCKS_LIMIT=100
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_PNP=y
+CONFIG_PNPACPI=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_PPDEV=m
+CONFIG_PPP=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_PPTP=m
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_PREEMPTIRQ_EVENTS is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_PRINTER=m
+CONFIG_PRINTK=y
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_PRINTK_NMI=y
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRISM2_USB=m
+# CONFIG_PRISM54 is not set
+CONFIG_PROBE_EVENTS=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_PROC_EVENTS=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_PID_ARCH_STATUS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_THERMAL_MMIO_RAPL=y
+CONFIG_PROC_VMCORE=y
+CONFIG_PROC_VMCORE_DEVICE_DUMP=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+CONFIG_PROFILING=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+CONFIG_PSAMPLE=m
+CONFIG_PSI=y
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_842_COMPRESS is not set
+CONFIG_PSTORE_COMPRESS=y
+CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_DEFLATE_COMPRESS=y
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+# CONFIG_PSTORE_FTRACE is not set
+# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_PMSG is not set
+CONFIG_PSTORE_RAM=m
+# CONFIG_PSTORE_ZSTD_COMPRESS is not set
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_KVM=m
+CONFIG_PUNIT_ATOM_DEBUG=m
+CONFIG_PVH=y
+CONFIG_PVPANIC=m
+CONFIG_PWM=y
+CONFIG_PWM_CRC=y
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_LP3943=m
+CONFIG_PWM_LPSS=y
+CONFIG_PWM_LPSS_PCI=y
+CONFIG_PWM_LPSS_PLATFORM=y
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_TWL=m
+CONFIG_PWM_TWL_LED=m
+CONFIG_QCOM_EMAC=m
+CONFIG_QCOM_HIDMA=m
+CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_SPMI_ADC5=m
+CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_VADC=m
+CONFIG_QCOM_VADC_COMMON=m
+CONFIG_QED=m
+CONFIG_QEDE=m
+CONFIG_QEDF=m
+CONFIG_QEDI=m
+CONFIG_QED_FCOE=y
+CONFIG_QED_ISCSI=y
+CONFIG_QED_LL2=y
+CONFIG_QED_OOO=y
+CONFIG_QED_RDMA=y
+CONFIG_QED_SRIOV=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLGE=m
+CONFIG_QNX4FS_FS=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_QNX6FS_FS=m
+CONFIG_QSEMI_PHY=m
+CONFIG_QTNFMAC=m
+CONFIG_QTNFMAC_PCIE=m
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_QUOTA=y
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QUOTA_TREE=m
+CONFIG_R6040=m
+CONFIG_R8169=m
+CONFIG_R8188EU=m
+CONFIG_R8712U=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_RADIO_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_RADIO_SI476X=m
+CONFIG_RADIO_TEA575X=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_RAID6_PQ=m
+CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_RAID_ATTRS=m
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_RANDOMIZE_MEMORY=y
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
+CONFIG_RANDOM_TRUST_CPU=y
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_CHMAN=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_RAPIDIO_CPS_XX=m
+# CONFIG_RAPIDIO_DEBUG is not set
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_DMA_ENGINE=y
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_ENUM_BASIC=m
+CONFIG_RAPIDIO_MPORT_CDEV=m
+CONFIG_RAPIDIO_RXS_GEN3=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAS=y
+CONFIG_RAS_CEC=y
+# CONFIG_RAS_CEC_DEBUG is not set
+CONFIG_RATIONAL=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAVE_SP_EEPROM=m
+CONFIG_RAVE_SP_WATCHDOG=m
+CONFIG_RAW_DRIVER=m
+# CONFIG_RBTREE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_RCU_EXPERT is not set
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_PERF_TEST=m
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_RC_CORE=m
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_RC_LOOPBACK=m
+CONFIG_RC_MAP=m
+CONFIG_RC_XBOX_DVD=m
+CONFIG_RDMA_RXE=m
+CONFIG_RDMA_SIW=m
+CONFIG_RDS=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZ4=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+CONFIG_RD_XZ=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_REALTEK_PHY=m
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_ENC8=y
+# CONFIG_REED_SOLOMON_TEST is not set
+# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_I3C=m
+CONFIG_REGMAP_IRQ=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_SCCB=m
+CONFIG_REGMAP_SLIMBUS=m
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_SPMI=m
+CONFIG_REGMAP_W1=m
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_88PG86X=m
+CONFIG_REGULATOR_88PM800=m
+CONFIG_REGULATOR_88PM8607=m
+CONFIG_REGULATOR_AAT2870=m
+CONFIG_REGULATOR_AB3100=m
+CONFIG_REGULATOR_ACT8865=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_ANATOP=m
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_AS3711=m
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_BCM590XX=m
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_DA903X=m
+CONFIG_REGULATOR_DA9052=m
+CONFIG_REGULATOR_DA9055=m
+CONFIG_REGULATOR_DA9062=m
+CONFIG_REGULATOR_DA9210=m
+CONFIG_REGULATOR_DA9211=m
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_ISL9305=m
+CONFIG_REGULATOR_LM363X=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_LP872X=m
+CONFIG_REGULATOR_LP8755=m
+CONFIG_REGULATOR_LP8788=m
+CONFIG_REGULATOR_LTC3589=m
+CONFIG_REGULATOR_LTC3676=m
+CONFIG_REGULATOR_MAX14577=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8907=m
+CONFIG_REGULATOR_MAX8925=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_MAX8997=m
+CONFIG_REGULATOR_MAX8998=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MT6311=m
+CONFIG_REGULATOR_MT6323=m
+CONFIG_REGULATOR_MT6397=m
+CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_PV88060=m
+CONFIG_REGULATOR_PV88080=m
+CONFIG_REGULATOR_PV88090=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_RC5T583=m
+CONFIG_REGULATOR_RT5033=m
+CONFIG_REGULATOR_S2MPA01=m
+CONFIG_REGULATOR_S2MPS11=m
+CONFIG_REGULATOR_S5M8767=m
+CONFIG_REGULATOR_SKY81452=m
+CONFIG_REGULATOR_SLG51000=m
+CONFIG_REGULATOR_TPS51632=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS62360=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65086=m
+CONFIG_REGULATOR_TPS65090=m
+CONFIG_REGULATOR_TPS65132=m
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_REGULATOR_TPS6586X=m
+CONFIG_REGULATOR_TPS65910=m
+CONFIG_REGULATOR_TPS65912=m
+CONFIG_REGULATOR_TPS80031=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_WM8994=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_REISERFS_FS_XATTR=y
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_RELAY=y
+CONFIG_RELOCATABLE=y
+CONFIG_REMOTEPROC=y
+CONFIG_RENESAS_PHY=m
+CONFIG_RESET_ATTACK_MITIGATION=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_TI_SYSCON=m
+CONFIG_RETPOLINE=y
+CONFIG_RETU_WATCHDOG=m
+CONFIG_RFD77402=m
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_GPIO=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RING_BUFFER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_CORE=m
+CONFIG_RMI4_F03=y
+CONFIG_RMI4_F03_SERIO=m
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F34=y
+CONFIG_RMI4_F54=y
+CONFIG_RMI4_F55=y
+CONFIG_RMI4_I2C=m
+CONFIG_RMI4_SMB=m
+CONFIG_RMI4_SPI=m
+CONFIG_RMNET=m
+CONFIG_ROCKCHIP_PHY=m
+CONFIG_ROCKER=m
+CONFIG_ROCKETPORT=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_ROSE=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPMSG=m
+CONFIG_RPMSG_CHAR=m
+CONFIG_RPMSG_QCOM_GLINK_NATIVE=m
+CONFIG_RPMSG_QCOM_GLINK_RPM=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RPR0521=m
+CONFIG_RPS=y
+CONFIG_RSEQ=y
+CONFIG_RSI_91X=m
+CONFIG_RSI_COEX=y
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2X00=m
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_CRYPTO=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT61PCI=m
+CONFIG_RT73USB=m
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_DRV_88PM80X=m
+CONFIG_RTC_DRV_88PM860X=m
+CONFIG_RTC_DRV_AB3100=m
+CONFIG_RTC_DRV_ABB5ZES3=m
+CONFIG_RTC_DRV_ABEOZ9=m
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_AM1805=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1307_CENTURY=y
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1374_WDT=y
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS1685=y
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+CONFIG_RTC_DRV_DS1742=m
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_DS3232_HWMON=y
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_FTRTC010=m
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_LP8788=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_MAX6916=m
+CONFIG_RTC_DRV_MAX8907=m
+CONFIG_RTC_DRV_MAX8925=m
+CONFIG_RTC_DRV_MAX8997=m
+CONFIG_RTC_DRV_MAX8998=m
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_MT6397=m
+CONFIG_RTC_DRV_PALMAS=m
+CONFIG_RTC_DRV_PCAP=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RC5T583=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RX6110=m
+CONFIG_RTC_DRV_RX8010=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_S5M=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_STK17TA8=m
+# CONFIG_RTC_DRV_TEST is not set
+CONFIG_RTC_DRV_TPS6586X=m
+CONFIG_RTC_DRV_TPS65910=m
+CONFIG_RTC_DRV_TPS80031=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WILCO_EC=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RTC_NVMEM=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8192E=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8XXXU=m
+CONFIG_RTL8XXXU_UNTESTED=y
+CONFIG_RTLBTCOEXIST=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+CONFIG_RTL_CARDS=m
+CONFIG_RTS5208=m
+CONFIG_RTW88=m
+CONFIG_RTW88_8723DE=y
+CONFIG_RTW88_8822BE=y
+CONFIG_RTW88_8822CE=y
+CONFIG_RTW88_CORE=m
+CONFIG_RTW88_DEBUG=y
+CONFIG_RTW88_DEBUGFS=y
+CONFIG_RTW88_PCI=m
+# CONFIG_RTW88_REGD_USER_REG_HINTS is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_RT_MUTEXES=y
+CONFIG_RUNTIME_TESTING_MENU=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_RXKAD=y
+CONFIG_S2IO=m
+CONFIG_SAMPLES=y
+# CONFIG_SAMPLE_CONFIGFS is not set
+# CONFIG_SAMPLE_HW_BREAKPOINT is not set
+# CONFIG_SAMPLE_KDB is not set
+# CONFIG_SAMPLE_KFIFO is not set
+# CONFIG_SAMPLE_KOBJECT is not set
+# CONFIG_SAMPLE_KPROBES is not set
+# CONFIG_SAMPLE_LIVEPATCH is not set
+# CONFIG_SAMPLE_RPMSG_CLIENT is not set
+# CONFIG_SAMPLE_TRACE_EVENTS is not set
+CONFIG_SAMPLE_TRACE_PRINTK=m
+# CONFIG_SAMPLE_VFIO_MDEV_MBOCHS is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MDPY is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MTTY is not set
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_DWC=m
+# CONFIG_SATA_DWC_DEBUG is not set
+CONFIG_SATA_DWC_OLD_DMA=y
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_MOBILE_LPM_POLICY=3
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PMP=y
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIL24=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_ZPODD=y
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_SBITMAP=y
+CONFIG_SBNI=m
+# CONFIG_SBNI_MULTILINE is not set
+CONFIG_SBP_TARGET=m
+CONFIG_SC1200_WDT=m
+CONFIG_SC92031=m
+CONFIG_SCA3000=m
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_SCHED_INFO=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_MC_PRIO=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_SCHED_TRACER=y
+CONFIG_SCIF=m
+CONFIG_SCIF_BUS=m
+CONFIG_SCR24X=m
+CONFIG_SCSI=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FDOMAIN=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_MYRS=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SMARTPQI=m
+CONFIG_SCSI_SNIC=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFS_CDNS_PLATFORM=m
+CONFIG_SCSI_UFS_DWC_TC_PCI=m
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_WD719X=m
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SDIO_UART=m
+# CONFIG_SDMA_VERBOSITY is not set
+CONFIG_SDR_MAX2175=m
+CONFIG_SDR_PLATFORM_DRIVERS=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_APPARMOR=y
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY_INFINIBAND=y
+# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM=y
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
+CONFIG_SECURITY_SAFESETID=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_YAMA=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_AD7314=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADC128D818=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_ADT7310=m
+CONFIG_SENSORS_ADT7410=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ADT7X10=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_AS370=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_DA9052_ADC=m
+CONFIG_SENSORS_DA9055=m
+CONFIG_SENSORS_DELL_SMM=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_HIH6130=m
+CONFIG_SENSORS_HMC5843=m
+CONFIG_SENSORS_HMC5843_I2C=m
+CONFIG_SENSORS_HMC5843_SPI=m
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_INA209=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
+CONFIG_SENSORS_INSPUR_IPSPS=m
+CONFIG_SENSORS_IR35221=m
+CONFIG_SENSORS_IR38064=m
+CONFIG_SENSORS_IRPS5401=m
+CONFIG_SENSORS_ISL29018=m
+CONFIG_SENSORS_ISL29028=m
+CONFIG_SENSORS_ISL68137=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LM3533=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95234=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_LTC2945=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_LTC2978_REGULATOR=y
+CONFIG_SENSORS_LTC2990=m
+CONFIG_SENSORS_LTC3815=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4222=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4260=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX197=m
+CONFIG_SENSORS_MAX20751=m
+CONFIG_SENSORS_MAX31722=m
+CONFIG_SENSORS_MAX31785=m
+CONFIG_SENSORS_MAX31790=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX6621=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MAX6697=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
+CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
+CONFIG_SENSORS_NPCM7XX=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_POWR1220=m
+CONFIG_SENSORS_PXE1610=m
+CONFIG_SENSORS_RM3100=m
+CONFIG_SENSORS_RM3100_I2C=m
+CONFIG_SENSORS_RM3100_SPI=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_STTS751=m
+CONFIG_SENSORS_TC654=m
+CONFIG_SENSORS_TC74=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP103=m
+CONFIG_SENSORS_TMP108=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TPS40422=m
+CONFIG_SENSORS_TPS53679=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_TSL2563=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SENSORS_XGENE=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_EXAR=m
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_8250_LPSS=m
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_MEN_MCB=m
+CONFIG_SERIAL_8250_MID=m
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_RT288X=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=32
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_ARC_NR_PORTS=1
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_IPOCTAL=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_KGDB_NMI=y
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX310X=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_MEN_Z135=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_CORE=m
+CONFIG_SERIAL_SC16IS7XX_I2C=y
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIAL_SCCNXP_CONSOLE=y
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
+CONFIG_SERIO=y
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_ARC_PS2=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_GPIO_PS2=m
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_SERPORT=m
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SFC_FALCON_MTD=y
+CONFIG_SFC_MCDI_LOGGING=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_MTD=y
+CONFIG_SFC_SRIOV=y
+CONFIG_SFI=y
+CONFIG_SFP=m
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SGI_GRU=m
+# CONFIG_SGI_GRU_DEBUG is not set
+CONFIG_SGI_PARTITION=y
+CONFIG_SGI_XP=m
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SHIFT_FS=m
+CONFIG_SHIFT_FS_POSIX_ACL=y
+CONFIG_SHMEM=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_SI1133=m
+CONFIG_SI1145=m
+CONFIG_SI7005=m
+CONFIG_SI7020=m
+CONFIG_SIGNALFD=y
+CONFIG_SIGNATURE=y
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+CONFIG_SIOX=m
+CONFIG_SIOX_BUS_GPIO=m
+CONFIG_SIS190=m
+CONFIG_SIS900=m
+CONFIG_SKB_EXTENSIONS=y
+CONFIG_SKFP=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+# CONFIG_SLAB is not set
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLHC=y
+CONFIG_SLICOSS=m
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLOB is not set
+CONFIG_SLUB=y
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_MEMCG_SYSFS_ON=y
+# CONFIG_SLUB_STATS is not set
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_SMC=m
+CONFIG_SMC_DIAG=m
+CONFIG_SMP=y
+CONFIG_SMSC37B787_WDT=m
+CONFIG_SMSC911X=m
+CONFIG_SMSC9420=m
+CONFIG_SMSC_PHY=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMS_SDIO_DRV=m
+CONFIG_SMS_SIANO_DEBUGFS=y
+CONFIG_SMS_SIANO_MDTV=m
+CONFIG_SMS_SIANO_RC=y
+CONFIG_SMS_USB_DRV=m
+CONFIG_SM_FTL=m
+CONFIG_SND=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_ATMEL_SOC=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_BEBOB=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_DARLA24=m
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_DESIGNWARE_PCM=y
+CONFIG_SND_DICE=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_MOTU=m
+CONFIG_SND_FIREWIRE_TASCAM=m
+CONFIG_SND_FIREWORKS=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_GINA20=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_HDA=m
+CONFIG_SND_HDA_CODEC_ANALOG=m
+CONFIG_SND_HDA_CODEC_CA0110=m
+CONFIG_SND_HDA_CODEC_CA0132=m
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
+CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CMEDIA=m
+CONFIG_SND_HDA_CODEC_CONEXANT=m
+CONFIG_SND_HDA_CODEC_HDMI=m
+CONFIG_SND_HDA_CODEC_REALTEK=m
+CONFIG_SND_HDA_CODEC_SI3054=m
+CONFIG_SND_HDA_CODEC_SIGMATEL=m
+CONFIG_SND_HDA_CODEC_VIA=m
+CONFIG_SND_HDA_COMPONENT=y
+CONFIG_SND_HDA_CORE=m
+CONFIG_SND_HDA_DSP_LOADER=y
+CONFIG_SND_HDA_EXT_CORE=m
+CONFIG_SND_HDA_GENERIC=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_I915=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_I2S_HI6210_I2S=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_INTEL_DSP_CONFIG=m
+CONFIG_SND_INTEL_NHLT=y
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MAX_CARDS=32
+CONFIG_SND_MIA=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_NM256=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_OXFW=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_PCI=y
+CONFIG_SND_PCM=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SEQ_MIDI=m
+CONFIG_SND_SEQ_MIDI_EMUL=m
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_VIRMIDI=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_SOC_AC97_CODEC=m
+CONFIG_SND_SOC_ACPI=m
+CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU1761=m
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU17X1=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_ADAU_UTILS=m
+CONFIG_SND_SOC_AK4104=m
+CONFIG_SND_SOC_AK4118=m
+CONFIG_SND_SOC_AK4458=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_AK4613=m
+CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK5386=m
+CONFIG_SND_SOC_AK5558=m
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_AMD_ACP=m
+CONFIG_SND_SOC_AMD_ACP3x=m
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
+CONFIG_SND_SOC_AMD_RENOIR=m
+CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_BD28623=m
+CONFIG_SND_SOC_BT_SCO=m
+CONFIG_SND_SOC_COMPRESS=y
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+CONFIG_SND_SOC_CS35L32=m
+CONFIG_SND_SOC_CS35L33=m
+CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
+CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_CS4271=m
+CONFIG_SND_SOC_CS4271_I2C=m
+CONFIG_SND_SOC_CS4271_SPI=m
+CONFIG_SND_SOC_CS42L42=m
+CONFIG_SND_SOC_CS42L51=m
+CONFIG_SND_SOC_CS42L51_I2C=m
+CONFIG_SND_SOC_CS42L52=m
+CONFIG_SND_SOC_CS42L56=m
+CONFIG_SND_SOC_CS42L73=m
+CONFIG_SND_SOC_CS42XX8=m
+CONFIG_SND_SOC_CS42XX8_I2C=m
+CONFIG_SND_SOC_CS43130=m
+CONFIG_SND_SOC_CS4341=m
+CONFIG_SND_SOC_CS4349=m
+CONFIG_SND_SOC_CS53L30=m
+CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
+CONFIG_SND_SOC_ES7241=m
+CONFIG_SND_SOC_ES8316=m
+CONFIG_SND_SOC_ES8328=m
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_ES8328_SPI=m
+CONFIG_SND_SOC_FSL_ASRC=m
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_ESAI=m
+CONFIG_SND_SOC_FSL_MICFIL=m
+CONFIG_SND_SOC_FSL_SAI=m
+CONFIG_SND_SOC_FSL_SPDIF=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_SOC_GTM601=m
+CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_HDAC_HDMI=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_IMG=y
+CONFIG_SND_SOC_IMG_I2S_IN=m
+CONFIG_SND_SOC_IMG_I2S_OUT=m
+CONFIG_SND_SOC_IMG_PARALLEL_OUT=m
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m
+CONFIG_SND_SOC_IMG_SPDIF_IN=m
+CONFIG_SND_SOC_IMG_SPDIF_OUT=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_INNO_RK3036=m
+CONFIG_SND_SOC_INTEL_APL=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
+CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
+# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
+# CONFIG_SND_SOC_INTEL_CFL is not set
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+# CONFIG_SND_SOC_INTEL_CML_H is not set
+# CONFIG_SND_SOC_INTEL_CML_LP is not set
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
+# CONFIG_SND_SOC_INTEL_CNL is not set
+CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
+CONFIG_SND_SOC_INTEL_GLK=m
+CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_HASWELL=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_KBL=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_MACH=y
+CONFIG_SND_SOC_INTEL_SKL=m
+CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
+# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
+CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
+CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_ACPI=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_MAX9759=m
+CONFIG_SND_SOC_MAX98088=m
+CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_MAX98373=m
+CONFIG_SND_SOC_MAX98504=m
+CONFIG_SND_SOC_MAX9860=m
+CONFIG_SND_SOC_MAX9867=m
+CONFIG_SND_SOC_MAX98927=m
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
+CONFIG_SND_SOC_MT6351=m
+CONFIG_SND_SOC_MT6358=m
+CONFIG_SND_SOC_MTK_BTCVSD=m
+CONFIG_SND_SOC_NAU8540=m
+CONFIG_SND_SOC_NAU8810=m
+CONFIG_SND_SOC_NAU8822=m
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_NAU8825=m
+CONFIG_SND_SOC_PCM1681=m
+CONFIG_SND_SOC_PCM1789=m
+CONFIG_SND_SOC_PCM1789_I2C=m
+CONFIG_SND_SOC_PCM179X=m
+CONFIG_SND_SOC_PCM179X_I2C=m
+CONFIG_SND_SOC_PCM179X_SPI=m
+CONFIG_SND_SOC_PCM186X=m
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
+CONFIG_SND_SOC_PCM3060=m
+CONFIG_SND_SOC_PCM3060_I2C=m
+CONFIG_SND_SOC_PCM3060_SPI=m
+CONFIG_SND_SOC_PCM3168A=m
+CONFIG_SND_SOC_PCM3168A_I2C=m
+CONFIG_SND_SOC_PCM3168A_SPI=m
+CONFIG_SND_SOC_PCM512x=m
+CONFIG_SND_SOC_PCM512x_I2C=m
+CONFIG_SND_SOC_PCM512x_SPI=m
+CONFIG_SND_SOC_RK3328=m
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RL6347A=m
+CONFIG_SND_SOC_RT286=m
+CONFIG_SND_SOC_RT298=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
+CONFIG_SND_SOC_RT5616=m
+CONFIG_SND_SOC_RT5631=m
+CONFIG_SND_SOC_RT5640=m
+CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5660=m
+CONFIG_SND_SOC_RT5663=m
+CONFIG_SND_SOC_RT5670=m
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+CONFIG_SND_SOC_RT5682=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_SOC_SI476X=m
+CONFIG_SND_SOC_SIGMADSP=m
+CONFIG_SND_SOC_SIGMADSP_I2C=m
+CONFIG_SND_SOC_SIGMADSP_REGMAP=m
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
+CONFIG_SND_SOC_SOF=m
+CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_BAYTRAIL=m
+CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H=m
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP=m
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+# CONFIG_SND_SOC_SOF_DEBUG is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_HDA=m
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1=y
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON=m
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
+CONFIG_SND_SOC_SOF_INTEL_COMMON=m
+CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+CONFIG_SND_SOC_SOF_OPTIONS=m
+CONFIG_SND_SOC_SOF_PCI=m
+CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
+# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_XTENSA=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2305=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_SSM2602_I2C=m
+CONFIG_SND_SOC_SSM2602_SPI=m
+CONFIG_SND_SOC_SSM4567=m
+CONFIG_SND_SOC_STA32X=m
+CONFIG_SND_SOC_STA350=m
+CONFIG_SND_SOC_STI_SAS=m
+CONFIG_SND_SOC_TAS2552=m
+CONFIG_SND_SOC_TAS5086=m
+CONFIG_SND_SOC_TAS571X=m
+CONFIG_SND_SOC_TAS5720=m
+CONFIG_SND_SOC_TAS6424=m
+CONFIG_SND_SOC_TDA7419=m
+CONFIG_SND_SOC_TFA9879=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
+CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC32X4=m
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TOPOLOGY=y
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
+CONFIG_SND_SOC_TSCS454=m
+CONFIG_SND_SOC_UDA1334=m
+CONFIG_SND_SOC_WCD9335=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8524=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8737=m
+CONFIG_SND_SOC_WM8741=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8770=m
+CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8782=m
+CONFIG_SND_SOC_WM8804=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8804_SPI=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8962=m
+CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8985=m
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
+CONFIG_SND_SOC_XILINX_I2S=m
+CONFIG_SND_SOC_XILINX_SPDIF=m
+CONFIG_SND_SOC_XTFPGA_I2S=m
+CONFIG_SND_SOC_ZX_AUD96P22=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_SPI=y
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
+CONFIG_SND_SST_IPC=m
+CONFIG_SND_SST_IPC_ACPI=m
+CONFIG_SND_SST_IPC_PCI=m
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_SYNTH_EMUX=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_VARIAX=m
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VMASTER=y
+CONFIG_SND_VX222=m
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_X86=y
+CONFIG_SND_XEN_FRONTEND=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_SOCK_VALIDATE_XMIT=y
+CONFIG_SOC_TI=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SONYPI_COMPAT=y
+CONFIG_SONY_FF=y
+CONFIG_SONY_LAPTOP=m
+CONFIG_SOUND=m
+CONFIG_SOUNDWIRE=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SP5100_TCO=m
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPI=y
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_AXI_SPI_ENGINE=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_CADENCE=m
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DLN2=m
+CONFIG_SPI_DW_MID_DMA=y
+CONFIG_SPI_DW_MMIO=m
+CONFIG_SPI_DW_PCI=m
+CONFIG_SPI_DYNAMIC=y
+CONFIG_SPI_GPIO=m
+# CONFIG_SPI_INTEL_SPI_PCI is not set
+# CONFIG_SPI_INTEL_SPI_PLATFORM is not set
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_LOOPBACK_TEST=m
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_MTK_QUADSPI=m
+CONFIG_SPI_MXIC=m
+CONFIG_SPI_NXP_FLEXSPI=m
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=m
+# CONFIG_SPI_ROCKCHIP is not set
+CONFIG_SPI_SC18IS602=m
+CONFIG_SPI_SIFIVE=m
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
+CONFIG_SPI_SLAVE_TIME=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+CONFIG_SPI_XCOMM=m
+# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_ZYNQMP_GQSPI=m
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_SPMI=m
+CONFIG_SPS30=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+# CONFIG_SQUASHFS_FILE_CACHE is not set
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_ZSTD=y
+CONFIG_SRAM=y
+CONFIG_SRCU=y
+CONFIG_SRF04=m
+CONFIG_SRF08=m
+CONFIG_SSB=m
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_DRIVER_GPIO=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+# CONFIG_SSB_PCMCIAHOST is not set
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSFDC=m
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_STACKTRACE=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_STACK_TRACER=y
+CONFIG_STACK_VALIDATION=y
+CONFIG_STAGING=y
+CONFIG_STAGING_APEX_DRIVER=m
+CONFIG_STAGING_GASKET_FRAMEWORK=m
+CONFIG_STAGING_MEDIA=y
+# CONFIG_STANDALONE is not set
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_STE10XP=m
+CONFIG_STK3310=m
+CONFIG_STK8312=m
+CONFIG_STK8BA50=m
+CONFIG_STM=m
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PCI=m
+CONFIG_STMMAC_PLATFORM=m
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STM_DUMMY=m
+CONFIG_STM_PROTO_BASIC=m
+CONFIG_STM_PROTO_SYS_T=m
+CONFIG_STM_SOURCE_CONSOLE=m
+CONFIG_STM_SOURCE_FTRACE=m
+CONFIG_STM_SOURCE_HEARTBEAT=m
+CONFIG_STP=m
+CONFIG_STREAM_PARSER=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_STRING_SELFTEST is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_STX104=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25_SPI=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNGEM=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_DEBUG=y
+# CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES is not set
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_SWAP=y
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SUN_PARTITION=y
+CONFIG_SURFACE3_WMI=m
+CONFIG_SURFACE_3_BUTTON=m
+CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+CONFIG_SWAP=y
+CONFIG_SWIOTLB=y
+CONFIG_SWIOTLB_XEN=y
+CONFIG_SWPHY=y
+CONFIG_SW_SYNC=y
+CONFIG_SX9500=m
+CONFIG_SXGBE_ETH=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_SYNC_FILE=y
+CONFIG_SYN_COOKIES=y
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_SYSFS=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYSTEMPORT=m
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
+CONFIG_SYSTEM_BLACKLIST_KEYRING=y
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+CONFIG_SYSTEM_EXTRA_CERTIFICATE=y
+CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSV_FS=m
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_T5403=m
+CONFIG_TABLET_SERIAL_WACOM4=m
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
+CONFIG_TAHVO_USB=m
+CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
+CONFIG_TAP=m
+CONFIG_TARGET_CORE=m
+CONFIG_TASKSTATS=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_TASK_XACCT=y
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=y
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_CORE=y
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_ST33ZP24=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_TCG_TIS_ST33ZP24_SPI=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_VTPM_PROXY=m
+CONFIG_TCG_XEN=m
+CONFIG_TCM_FC=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
+CONFIG_TCM_USER2=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_TCS3414=m
+CONFIG_TCS3472=m
+CONFIG_TEHUTI=m
+CONFIG_TELCLOCK=m
+CONFIG_TERANETICS_PHY=m
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_BITMAP is not set
+CONFIG_TEST_BLACKHOLE_DEV=m
+CONFIG_TEST_BPF=m
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_TEST_OBJAGG is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_PARMAN is not set
+CONFIG_TEST_POWER=m
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_XARRAY is not set
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_THERMAL=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_EMULATION=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THP_SWAP=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_THUNDERBOLT=m
+CONFIG_THUNDERBOLT_NET=m
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_RGX=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TICK_ONESHOT=y
+CONFIG_TIFM_7XX1=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIGON3=m
+CONFIG_TIGON3_HWMON=y
+CONFIG_TIMERFD=y
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_TIPC=m
+CONFIG_TIPC_DIAG=m
+CONFIG_TIPC_MEDIA_IB=y
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_TI_ADC081C=m
+CONFIG_TI_ADC0832=m
+CONFIG_TI_ADC084S021=m
+CONFIG_TI_ADC108S102=m
+CONFIG_TI_ADC12138=m
+CONFIG_TI_ADC128S052=m
+CONFIG_TI_ADC161S626=m
+CONFIG_TI_ADS1015=m
+CONFIG_TI_ADS7950=m
+CONFIG_TI_AM335X_ADC=m
+# CONFIG_TI_CPSW_PHY_SEL is not set
+CONFIG_TI_DAC082S085=m
+CONFIG_TI_DAC5571=m
+CONFIG_TI_DAC7311=m
+CONFIG_TI_DAC7612=m
+CONFIG_TI_ST=m
+CONFIG_TI_TLC4541=m
+CONFIG_TLAN=m
+CONFIG_TLS=m
+CONFIG_TLS_DEVICE=y
+CONFIG_TMD_HERMES=m
+CONFIG_TMP006=m
+CONFIG_TMP007=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_TORTURE_TEST=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+# CONFIG_TOSHIBA_WMI is not set
+CONFIG_TOUCHSCREEN_88PM860X=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ADC=m
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_BU21029=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
+CONFIG_TOUCHSCREEN_DA9034=m
+CONFIG_TOUCHSCREEN_DA9052=m
+CONFIG_TOUCHSCREEN_DMI=y
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_ELAN=y
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_HIDEEP=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+CONFIG_TOUCHSCREEN_RM_TS=m
+CONFIG_TOUCHSCREEN_ROHM_BU21023=m
+CONFIG_TOUCHSCREEN_S6SY761=m
+CONFIG_TOUCHSCREEN_SILEAD=m
+CONFIG_TOUCHSCREEN_SIS_I2C=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_STMFTS=m
+CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
+CONFIG_TOUCHSCREEN_SX8654=m
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_TSC2004=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
+CONFIG_TOUCHSCREEN_TSC200X_CORE=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_ZET6223=m
+CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TPL0102=m
+CONFIG_TPM_KEY_PARSER=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TPS68470_PMIC_OPREGION=y
+CONFIG_TQMX86_WDT=m
+CONFIG_TRACEPOINTS=y
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_TRACER_SNAPSHOT=y
+# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
+CONFIG_TRACE_CLOCK=y
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+CONFIG_TRACING=y
+CONFIG_TRACING_MAP=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TRUSTED_KEYS=y
+CONFIG_TSL2583=m
+CONFIG_TSL2772=m
+CONFIG_TSL4531=m
+CONFIG_TSYS01=m
+CONFIG_TSYS02D=m
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TTY=y
+CONFIG_TTY_PRINTK=y
+CONFIG_TTY_PRINTK_LEVEL=6
+CONFIG_TULIP=m
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_TUN=y
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_MADC=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_TWL6030_GPADC=m
+CONFIG_TWL6040_CORE=y
+CONFIG_TYPEC=m
+CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_MUX_PI3USB30532=m
+CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_RT1711H=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TPS6598X=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_TYPHOON=m
+# CONFIG_UBIFS_ATIME_SUPPORT is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_AUTHENTICATION=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_SECURITY=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UBIFS_FS_ZSTD=y
+# CONFIG_UBSAN is not set
+CONFIG_UBSAN_ALIGNMENT=y
+CONFIG_UCB1400_CORE=m
+CONFIG_UCLAMP_BUCKETS_COUNT=5
+CONFIG_UCLAMP_TASK=y
+CONFIG_UCLAMP_TASK_GROUP=y
+CONFIG_UCS2_STRING=y
+CONFIG_UCSI_ACPI=m
+CONFIG_UCSI_CCG=m
+CONFIG_UDF_FS=m
+CONFIG_UDMABUF=y
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_UFS_DEBUG is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_UHID=m
+CONFIG_UID16=y
+CONFIG_UIO=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_HV_GENERIC=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULI526X=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNICODE=y
+# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
+CONFIG_UNISYSSPAR=y
+CONFIG_UNISYS_VISORBUS=m
+CONFIG_UNISYS_VISORHBA=m
+CONFIG_UNISYS_VISORINPUT=m
+CONFIG_UNISYS_VISORNIC=m
+CONFIG_UNIX=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_UNIX_DIAG=m
+CONFIG_UNIX_SCM=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_UNWINDER_FRAME_POINTER=y
+# CONFIG_UNWINDER_GUESS is not set
+# CONFIG_UNWINDER_ORC is not set
+CONFIG_UPROBES=y
+CONFIG_UPROBE_EVENTS=y
+CONFIG_US5182D=m
+CONFIG_USB=y
+CONFIG_USBIP_CORE=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USBIP_VUDC=m
+CONFIG_USBPCWATCHDOG=m
+CONFIG_USB_ACM=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_AIRSPY=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_AN2720=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_ATM=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_BDC_UDC=m
+CONFIG_USB_BELKIN=y
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_PCI_WRAP=m
+CONFIG_USB_CHAOSKEY=m
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA_PCI=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_CONFIGFS_F_TCM=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_DSBR=m
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_DWC2=y
+# CONFIG_USB_DWC2_DEBUG is not set
+CONFIG_USB_DWC2_HOST=y
+CONFIG_USB_DWC2_PCI=m
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_DUAL_ROLE=y
+# CONFIG_USB_DWC3_GADGET is not set
+CONFIG_USB_DWC3_HAPS=m
+# CONFIG_USB_DWC3_HOST is not set
+CONFIG_USB_DWC3_PCI=m
+CONFIG_USB_DWC3_ULPI=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_EG20T=m
+CONFIG_USB_EHCI_FSL=m
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_EZUSB_FX2=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_MIDI=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_PRINTER=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_TCM=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UAC1_LEGACY=m
+CONFIG_USB_F_UAC2=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_GADGET=m
+CONFIG_USB_GADGETFS=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GL860=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_HID=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+# CONFIG_USB_HCD_TEST_MODE is not set
+CONFIG_USB_HID=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
+CONFIG_USB_HSO=m
+CONFIG_USB_HUB_USB251XB=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_HCD=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+CONFIG_USB_ISP1761_UDC=y
+CONFIG_USB_KAWETH=m
+CONFIG_USB_KBD=m
+CONFIG_USB_KC2190=y
+CONFIG_USB_KEENE=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LD=m
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
+CONFIG_USB_LED_TRIG=y
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_LINK_LAYER_TEST=m
+CONFIG_USB_M5602=m
+# CONFIG_USB_M66592 is not set
+CONFIG_USB_MA901=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MON=m
+CONFIG_USB_MOUSE=m
+CONFIG_USB_MR800=m
+CONFIG_USB_MSI2500=m
+CONFIG_USB_MUSB_DUAL_ROLE=y
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_HDRC=m
+# CONFIG_USB_MUSB_HOST is not set
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CH9200=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PCI=y
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_PHY=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_PULSE8_CEC=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_PXA27X=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RAINSHADOW_CEC=m
+CONFIG_USB_RAREMONO=m
+CONFIG_USB_ROLES_INTEL_XHCI=m
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_F8153X=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_UPD78F0730=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_SI470X=m
+CONFIG_USB_SI4713=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_HCD_ISO=y
+CONFIG_USB_SNP_CORE=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_TEST=m
+CONFIG_USB_TMC=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_UAS=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_VL600=m
+CONFIG_USB_WDM=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_XHCI_DBGCAP=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_ZERO=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USELIB=y
+CONFIG_USERFAULTFD=y
+CONFIG_USERIO=m
+CONFIG_USER_NS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_UTS_NS=y
+CONFIG_UV_MMTIMER=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_WHCI=m
+CONFIG_U_SERIAL_CONSOLE=y
+CONFIG_V4L2_FLASH_LED_CLASS=m
+CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VALIDATE_FS_PARSER=y
+# CONFIG_VBOXGUEST is not set
+CONFIG_VCNL4000=m
+CONFIG_VCNL4035=m
+CONFIG_VEML6070=m
+CONFIG_VERSION_SIGNATURE=""
+CONFIG_VETH=m
+CONFIG_VFAT_FS=y
+CONFIG_VFIO=y
+CONFIG_VFIO_IOMMU_TYPE1=y
+CONFIG_VFIO_MDEV=m
+CONFIG_VFIO_MDEV_DEVICE=m
+CONFIG_VFIO_NOIOMMU=y
+CONFIG_VFIO_PCI=y
+CONFIG_VFIO_PCI_IGD=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_VIRQFD=y
+CONFIG_VGASTATE=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_RING=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_VIA_WDT=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_DMA_SG=m
+CONFIG_VIDEOBUF2_DVB=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_VIDEO_AD5820=m
+CONFIG_VIDEO_AD9389B=m
+CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_ADV7393=m
+CONFIG_VIDEO_ADV7511=m
+CONFIG_VIDEO_ADV7511_CEC=y
+CONFIG_VIDEO_ADV7604=m
+CONFIG_VIDEO_ADV7604_CEC=y
+CONFIG_VIDEO_ADV7842=m
+CONFIG_VIDEO_ADV7842_CEC=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_AK7375=m
+CONFIG_VIDEO_AK881X=m
+CONFIG_VIDEO_APTINA_PLL=m
+CONFIG_VIDEO_ASPEED=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_AU0828_V4L2=y
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_CADENCE=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
+CONFIG_VIDEO_CADENCE_CSI2TX=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_COBALT=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CROS_EC_CEC=m
+CONFIG_VIDEO_CS3308=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_ENABLE_VP3054=y
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_VIDEO_DW9714=m
+CONFIG_VIDEO_DW9807_VCM=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_ET8EK8=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_FB_IVTV_FORCE_PAT=y
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_LOADER=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_GS1662=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_I2C=m
+CONFIG_VIDEO_IMX214=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX274=m
+CONFIG_VIDEO_IMX319=m
+CONFIG_VIDEO_IMX355=m
+CONFIG_VIDEO_IPU3_CIO2=m
+CONFIG_VIDEO_IPU3_IMGU=m
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_IVTV_ALSA=m
+# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_LM3560=m
+CONFIG_VIDEO_LM3646=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_ML86V7667=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_MT9M001=m
+CONFIG_VIDEO_MT9M032=m
+CONFIG_VIDEO_MT9M111=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
+CONFIG_VIDEO_MT9T112=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_MT9V111=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_OV13858=m
+CONFIG_VIDEO_OV2640=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV2680=m
+CONFIG_VIDEO_OV2685=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV5670=m
+CONFIG_VIDEO_OV5675=m
+CONFIG_VIDEO_OV5695=m
+CONFIG_VIDEO_OV6650=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_OV772X=m
+CONFIG_VIDEO_OV7740=m
+CONFIG_VIDEO_OV8856=m
+CONFIG_VIDEO_OV9640=m
+CONFIG_VIDEO_OV9650=m
+# CONFIG_VIDEO_PCI_SKELETON is not set
+CONFIG_VIDEO_PVRUSB2=m
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_PVRUSB2_DVB=y
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_S5C73M3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA6752HS=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_GO7007=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_SECO_CEC=m
+CONFIG_VIDEO_SECO_RC=y
+CONFIG_VIDEO_SH_VEU=m
+CONFIG_VIDEO_SMIAPP=m
+CONFIG_VIDEO_SMIAPP_PLL=m
+CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_STK1160=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_ST_MIPID02=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TC358743_CEC=y
+CONFIG_VIDEO_TDA1997X=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_THS8200=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW5864=m
+CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_TW9910=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_VIDEO_V4L2_TPG=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIVID_CEC=y
+CONFIG_VIDEO_VIVID_MAX_DEVS=64
+CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIPERBOARD_ADC=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_BLK_SCSI=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_FS=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_PMEM=m
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_VIRTUALIZATION=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_VIRT_WIFI=m
+CONFIG_VITESSE_PHY=m
+CONFIG_VL53L0X_I2C=m
+CONFIG_VL6180=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_VMAP_STACK=y
+CONFIG_VMD=m
+CONFIG_VME_BUS=y
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_FAKE=m
+CONFIG_VME_TSI148=m
+CONFIG_VME_USER=m
+CONFIG_VMIVME_7805=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_VMWARE_VMCI=m
+CONFIG_VMWARE_VMCI_VSOCKETS=m
+CONFIG_VMXNET3=m
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VOP=m
+CONFIG_VOP_BUS=m
+CONFIG_VORTEX=m
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKETS_DIAG=m
+CONFIG_VSOCKMON=m
+CONFIG_VT=y
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_VXLAN=m
+CONFIG_VZ89X=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_SGI=m
+CONFIG_W1_SLAVE_DS2405=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS250X=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS2805=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_WAFER_WDT=m
+CONFIG_WAN=y
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_WANXL=m
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP=y
+# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC is not set
+CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+# CONFIG_WCN36XX_SNAPDRAGON_HACKS is not set
+CONFIG_WDAT_WDT=m
+CONFIG_WDTPCI=m
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PRIV=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WIL6210=m
+CONFIG_WIL6210_DEBUGFS=y
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_WIL6210_TRACING=y
+CONFIG_WILC1000=m
+CONFIG_WILC1000_HW_OOB_INTR=y
+CONFIG_WILC1000_SDIO=m
+CONFIG_WILC1000_SPI=m
+CONFIG_WILCO_EC=m
+CONFIG_WILCO_EC_DEBUGFS=m
+CONFIG_WILCO_EC_EVENTS=m
+CONFIG_WILCO_EC_TELEMETRY=m
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WINBOND_840=m
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+# CONFIG_WIRELESS_WDS is not set
+CONFIG_WIZNET_BUS_ANY=y
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_WIZNET_W5300=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+CONFIG_WLAN_VENDOR_ATH=y
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_WLAN_VENDOR_BROADCOM=y
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+CONFIG_WLAN_VENDOR_RALINK=y
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_POWER=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_WMI_BMOF=m
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+CONFIG_X25=m
+CONFIG_X25_ASY=m
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_X86=y
+CONFIG_X86_16BIT=y
+# CONFIG_X86_5LEVEL is not set
+CONFIG_X86_64=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_ACPI_CPUFREQ=y
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
+# CONFIG_X86_CPA_STATISTICS is not set
+CONFIG_X86_CPUID=m
+CONFIG_X86_CPU_RESCTRL=y
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_X86_DEBUG_FPU=y
+# CONFIG_X86_DECODER_SELFTEST is not set
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_X86_ESPFIX64=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_FEATURE_NAMES=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_HV_CALLBACK_VECTOR=y
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
+# CONFIG_X86_INTEL_MID is not set
+CONFIG_X86_INTEL_MPX=y
+CONFIG_X86_INTEL_PSTATE=y
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
+CONFIG_X86_INTEL_UMIP=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCELOG_LEGACY=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_INJECT=m
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_THRESHOLD=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_X86_NUMACHIP=y
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_PAT=y
+CONFIG_X86_PCC_CPUFREQ=y
+CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY_DEVICE=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_X86_POWERNOW_K8=y
+# CONFIG_X86_PTDUMP is not set
+CONFIG_X86_PTDUMP_CORE=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_X86_SMAP=y
+CONFIG_X86_SPEEDSTEP_CENTRINO=y
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_SYSFB is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_TSC=y
+CONFIG_X86_UV=y
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+# CONFIG_X86_VSMP is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_X86_X2APIC=y
+CONFIG_X86_X32=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
+CONFIG_XEN=y
+CONFIG_XENFS=m
+CONFIG_XEN_512GB=y
+CONFIG_XEN_ACPI=y
+CONFIG_XEN_ACPI_PROCESSOR=y
+CONFIG_XEN_AUTO_XLATE=y
+CONFIG_XEN_BACKEND=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_COMPAT_XENFS=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_EFI=y
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_FRONT_PGDIR_SHBUF=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GNTDEV_DMABUF=y
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_GRANT_DMA_ALLOC=y
+CONFIG_XEN_HAVE_PVMMU=y
+CONFIG_XEN_HAVE_VPMU=y
+CONFIG_XEN_MCE_LOG=y
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_XEN_NETDEV_FRONTEND=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_PV=y
+# CONFIG_XEN_PVCALLS_BACKEND is not set
+CONFIG_XEN_PVCALLS_FRONTEND=m
+CONFIG_XEN_PVH=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_PVHVM_SMP=y
+CONFIG_XEN_PV_SMP=y
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
+CONFIG_XEN_SCSI_BACKEND=m
+CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_XEN_SYMS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_WDT=m
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_XFRM_MIGRATE is not set
+CONFIG_XFRM_OFFLOAD=y
+CONFIG_XFRM_STATISTICS=y
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_USER=m
+# CONFIG_XFS_DEBUG is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_ONLINE_SCRUB is not set
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+CONFIG_XIAOMI_WMI=m
+CONFIG_XILINX_AXI_EMAC=m
+CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_XILINX_PR_DECOUPLER=m
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_VCU=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILINX_XADC=m
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
+CONFIG_XOR_BLOCKS=m
+CONFIG_XPS=y
+CONFIG_XXHASH=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YAM=m
+CONFIG_YELLOWFIN=m
+CONFIG_YENTA=m
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_Z3FOLD=m
+CONFIG_ZBUD=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_ZEROPLUS_FF=y
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZISOFS=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DEVICE=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ZOPT2201=m
+CONFIG_ZPA2326=m
+CONFIG_ZPA2326_I2C=m
+CONFIG_ZPA2326_SPI=m
+CONFIG_ZPOOL=y
+CONFIG_ZRAM=m
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSTD_COMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_ZSWAP=y
+CONFIG_ZX_TDM=m
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/control.d/flavour-control.stub
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/control.d/flavour-control.stub
@@ -0,0 +1,142 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Provides: linux-image, fuse-module, aufs-dkms, =PROVIDES=${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-PKGVER-ABINUM-FLAVOUR
+Recommends: BOOTLOADER, initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image=SIGN-PEER-PKG=-PKGVER-ABINUM-FLAVOUR
+Suggests: fdutils, linux-doc | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the=SIGN-ME-TXT= Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version PKGVER on DESC
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-extra-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR | linux-image-unsigned-PKGVER-ABINUM-FLAVOUR, crda | wireless-crda
+Description: Linux kernel extra modules for version PKGVER on DESC
+ This package contains the Linux kernel extra modules for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/changelog.Debian.gz for details.
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR-dbgsym
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides the=SIGN-ME-TXT= kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+
+Package: linux-cloud-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud for version PKGVER-ABINUM on
+ =HUMAN=.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/control.d/gkeop.inclusion-list
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/control.d/gkeop.inclusion-list
@@ -0,0 +1,252 @@
+arch/*/{crypto,kernel,oprofile}
+arch/*/kvm/kvm.ko
+arch/powerpc/kvm/kvm-hv.ko
+arch/powerpc/kvm/kvm-pr.ko
+arch/powerpc/kvm/vfio.ko
+arch/powerpc/platforms/powernv/opal-prd.ko
+arch/s390/*
+arch/x86/kvm/kvm-amd.ko
+arch/x86/kvm/kvm-intel.ko
+crypto/*
+drivers/acpi/*
+drivers/ata/acard-ahci.ko
+drivers/ata/ahci.ko
+drivers/ata/ahci_platform.ko
+drivers/ata/ata_generic.ko
+drivers/ata/libahci.ko
+drivers/ata/libahci_platform.ko
+drivers/block/brd.ko
+drivers/block/cryptoloop.ko
+drivers/block/floppy.ko
+drivers/block/loop.ko
+drivers/block/nbd.ko
+drivers/block/rbd.ko
+drivers/block/virtio_blk.ko
+drivers/block/xen-blkfront.ko
+drivers/char/hangcheck-timer.ko
+drivers/char/hw_random/powernv-rng.ko
+drivers/char/hw_random/virtio-rng.ko
+drivers/char/ipmi/*
+drivers/char/ipmi/ipmi_msghandler.ko
+drivers/char/lp.ko
+drivers/char/nvram.ko
+drivers/char/ppdev.ko
+drivers/char/raw.ko
+drivers/char/virtio_console.ko
+drivers/crypto/nx/*
+drivers/crypto/vmx/vmx-crypto.ko
+drivers/firmware/efi/*
+drivers/firmware/iscsi_ibft.ko
+drivers/gpu/drm/ast/ast.ko
+drivers/gpu/drm/drm_kms_helper.ko
+drivers/gpu/drm/drm.ko
+drivers/gpu/drm/ttm/ttm.ko
+drivers/hid/hid-generic.ko
+drivers/hid/hid-hyperv.ko
+drivers/hid/hid.ko
+drivers/hid/usbhid/usbhid.ko
+drivers/hv/*
+drivers/hwmon/ibmpowernv.ko
+drivers/infiniband/core/ib_addr.ko
+drivers/infiniband/core/ib_cm.ko
+drivers/infiniband/core/ib_core.ko
+drivers/infiniband/core/ib_mad.ko
+drivers/infiniband/core/ib_sa.ko
+drivers/infiniband/core/iw_cm.ko
+drivers/infiniband/core/rdma_cm.ko
+drivers/infiniband/ulp/iser/ib_iser.ko
+drivers/infiniband/ulp/isert/ib_isert.ko
+drivers/input/evbug.ko
+drivers/input/gameport/gameport.ko
+drivers/input/input-leds.ko
+drivers/input/joydev.ko
+drivers/input/misc/xen-kbdfront.ko
+drivers/input/mouse/psmouse.ko
+drivers/input/serio/hyperv-keyboard.ko
+drivers/input/serio/serio_raw.ko
+drivers/input/serio/serport.ko
+drivers/input/touchscreen/usbtouchscreen.ko
+drivers/leds/leds-powernv.ko
+drivers/md/*
+drivers/message/fusion*
+drivers/misc/cxl/*
+drivers/misc/eeprom/at24.ko
+drivers/misc/vmw_balloon.ko
+drivers/misc/vmw_vmci/vmw_vmci.ko
+drivers/mtd/cmdlinepart.ko
+drivers/mtd/devices/powernv_flash.ko
+drivers/mtd/ofpart.ko
+drivers/net/appletalk/ipddp.ko
+drivers/net/bonding/bonding.ko
+drivers/net/caif/caif_virtio.ko
+drivers/net/dummy.ko
+drivers/net/eql.ko
+drivers/net/ethernet/8390/8390.ko
+drivers/net/ethernet/8390/ne2k-pci.ko
+drivers/net/ethernet/amazon/ena/ena.ko
+drivers/net/ethernet/amd/pcnet32.ko
+drivers/net/ethernet/broadcom/bnx2x/*
+drivers/net/ethernet/broadcom/tg3.ko
+drivers/net/ethernet/dec/tulip/*
+drivers/net/ethernet/emulex/benet/*
+drivers/net/ethernet/ibm/*
+drivers/net/ethernet/intel/e1000/e1000.ko
+drivers/net/ethernet/intel/e1000e/e1000e.ko
+drivers/net/ethernet/intel/i40e/*
+drivers/net/ethernet/intel/iavf/iavf.ko
+drivers/net/ethernet/intel/igb/*
+drivers/net/ethernet/intel/igbvf/igbvf.ko
+drivers/net/ethernet/intel/ixgbe/*
+drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+drivers/net/ethernet/mellanox/*
+drivers/net/ethernet/netronome/nfp/nfp.ko
+drivers/net/ethernet/realtek/8139cp.ko
+drivers/net/ethernet/realtek/8139too.ko
+drivers/net/fddi/*
+drivers/net/geneve.ko
+drivers/net/hyperv/hv_netvsc.ko
+drivers/net/ifb.ko
+drivers/net/ipvlan/*
+drivers/net/macvlan.ko
+drivers/net/macvtap.ko
+drivers/net/mii.ko
+drivers/net/netconsole.ko
+drivers/net/ppp/*
+drivers/net/ppp/bsd_comp.ko
+drivers/net/slip/*
+drivers/net/veth.ko
+drivers/net/virtio_net.ko
+drivers/net/vmxnet3/vmxnet3.ko
+drivers/net/vxlan.ko
+drivers/net/xen-netback/*
+drivers/net/xen-netfront.ko
+drivers/nvme/host/nvme.ko
+drivers/nvmem/nvmem_core.ko
+drivers/parport/parport.ko
+drivers/parport/parport_pc.ko
+drivers/pci/host/vmd.ko
+drivers/platform/x86/pvpanic.ko
+drivers/pps/pps_core.ko
+drivers/ptp/ptp.ko
+drivers/s390/*
+drivers/s390/block/xpram.ko
+drivers/scsi/aacraid/*
+drivers/scsi/BusLogic.ko
+drivers/scsi/cxlflash/*
+drivers/scsi/device_handler/scsi_dh_alua.ko
+drivers/scsi/device_handler/scsi_dh_emc.ko
+drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+drivers/scsi/device_handler/scsi_dh_rdac.ko
+drivers/scsi/hv_storvsc.ko
+drivers/scsi/ibmvscsi/*
+drivers/scsi/ipr.ko
+drivers/scsi/iscsi_boot_sysfs.ko
+drivers/scsi/iscsi_tcp.ko
+drivers/scsi/libiscsi.ko
+drivers/scsi/libiscsi_tcp.ko
+drivers/scsi/libsas/*
+drivers/scsi/lpfc/*
+drivers/scsi/megaraid/*
+drivers/scsi/mpt3sas/*
+drivers/scsi/osd/libosd.ko
+drivers/scsi/osd/osd.ko
+drivers/scsi/qla1280.ko
+drivers/scsi/qla2xxx/*
+drivers/scsi/raid_class.ko
+drivers/scsi/scsi_transport_fc.ko
+drivers/scsi/scsi_transport_iscsi.ko
+drivers/scsi/scsi_transport_sas.ko
+drivers/scsi/scsi_transport_spi.ko
+drivers/scsi/sd_mod.ko
+drivers/scsi/sr_mod.ko
+drivers/scsi/virtio_scsi.ko
+drivers/scsi/vmw_pvscsi.ko
+drivers/target/target_core*.ko
+drivers/target/loopback/tcm_loop.ko
+drivers/tty/serial/jsm/*
+drivers/uio/uio.ko
+drivers/uio/uio_pdrv_genirq.ko
+drivers/usb/host/*
+drivers/usb/storage/uas.ko
+drivers/usb/storage/usb-storage.ko
+drivers/vfio/*
+drivers/vhost/*
+drivers/video/fbdev/*
+drivers/video/vgastate.ko
+drivers/virtio/*
+drivers/watchdog/softdog.ko
+drivers/xen/*
+! find sound/core -name oss -prune -o -name *.ko -print
+fs/9p/*
+fs/aufs/aufs.ko
+fs/autofs/autofs4.ko
+fs/binfmt_misc.ko
+fs/btrfs/*
+fs/cachefiles/cachefiles.ko
+fs/ceph/*
+fs/cifs/*
+fs/configfs/*
+fs/dlm/dlm.ko
+fs/ecryptfs/*
+fs/efivarfs/*
+fs/exofs/libore.ko
+fs/ext4/*
+fs/fat/*
+fs/fscache/*
+fs/fuse/*
+fs/isofs/*
+fs/lockd/*
+fs/nfs/*
+fs/nfs_common/*
+fs/nfsd/*
+fs/nls/nls_cp437.ko
+fs/nls/nls_iso8859-1.ko
+fs/overlayfs/*
+fs/shiftfs.ko
+fs/squashfs/*
+fs/udf/*
+fs/ufs/*
+fs/xfs/*
+lib/*
+net/6lowpan/*
+net/802/*
+net/8021q/*
+net/9p/*
+net/appletalk/*
+net/atm/*
+net/ax25/*
+net/bpfilter/*
+net/bridge/*
+net/can/*
+net/ceph/libceph.ko
+net/core/*
+net/dccp/*
+net/decnet/*
+net/ieee802154/*
+net/ipv4/*
+net/ipv6/*
+net/ipx/*
+net/key/*
+net/lapb/*
+net/llc/*
+net/netfilter/*
+net/netlink/netlink_diag.ko
+net/netrom/*
+net/openvswitch/*
+net/packet/af_packet_diag.ko
+net/phonet/*
+net/rose/*
+net/rxrpc/*
+net/sched/*
+net/sctp/*
+net/sunrpc/auth_gss/auth_rpcgss.ko
+net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+net/sunrpc/sunrpc.ko
+net/tipc/*
+net/unix/unix_diag.ko
+net/vmw_vsock/*
+net/x25/*
+net/xfrm/*
+sound/drivers/pcsp/snd-pcsp.ko
+sound/pci/snd-ens1370.ko
+sound/soundcore.ko
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/control.d/linux-doc.stub
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/control.d/linux-doc.stub
@@ -0,0 +1,12 @@
+Package: linux-doc
+Build-Profiles: <!stage1>
+Architecture: all
+Section: doc
+Priority: optional
+Depends: ${misc:Depends}
+Description: Linux kernel specific documentation for version PKGVER
+ This package provides the various documents in the PKGVER kernel
+ Documentation/ subdirectory.  These document kernel subsystems, APIs, device
+ drivers, and so on.  See
+ /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is
+ contained in each file.
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/control.d/linux-libc-dev.stub
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/control.d/linux-libc-dev.stub
@@ -0,0 +1,12 @@
+Package: linux-libc-dev
+Architecture: amd64 armhf arm64 i386 ppc64el riscv64 s390x
+Depends: ${misc:Depends}
+Conflicts: linux-kernel-headers
+Replaces: linux-kernel-headers
+Provides: linux-kernel-headers, aufs-dev
+Multi-Arch: same
+Description: Linux Kernel Headers for development
+ This package provides headers from the Linux kernel.  These headers
+ are used by the installed headers for GNU glibc and other system
+ libraries. They are NOT meant to be used to build third-party modules for
+ your kernel. Use SRCPKGNAME-headers-* packages for that.
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/control.d/vars.gkeop
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/control.d/vars.gkeop
@@ -0,0 +1,6 @@
+arch="amd64"
+supported="Generic"
+target="Geared toward GKE on-prem installations."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64]"
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/control.stub.in
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/control.stub.in
@@ -0,0 +1,117 @@
+Source: SRCPKGNAME
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ makedumpfile [amd64] <!stage1>,
+ libcap-dev <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ default-jdk-headless <!stage1>,
+ java-common <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf ppc64el] <!stage1>,
+ liblzma-dev <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ libnuma-dev [amd64 arm64 ppc64el s390x] <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+ lz4 [amd64 s390x] <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python3-sphinx <!stage1>,
+ python3-sphinx-rtd-theme <!stage1>,
+ fontconfig <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/=SERIES=
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: SRCPKGNAME-source-PKGVER
+Build-Profiles: <!stage1>
+Architecture: all
+Section: devel
+Priority: optional
+Provides: linux-source
+Depends: ${misc:Depends}, binutils, bzip2, coreutils
+Recommends: libc-dev, gcc, make
+Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev
+Description: Linux kernel source for version PKGVER with Ubuntu patches
+ This package provides the source code for the Linux kernel version
+ PKGVER.
+ .
+ This package is mainly meant for other packages to use, in order to build
+ custom flavours.
+ .
+ If you wish to use this package to create a custom Linux kernel, then it
+ is suggested that you investigate the package kernel-package, which has
+ been designed to ease the task of creating kernel image packages.
+ .
+ If you are simply trying to build third-party modules for your kernel,
+ you do not want this package. Install the appropriate SRCPKGNAME-headers
+ package instead.
+
+Package: SRCPKGNAME-headers-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-tools-PKGVER-ABINUM-<flavour>.
+
+Package: SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud tools for version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-cloud-tools-PKGVER-ABINUM-<flavour>.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/copyright
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/amd64/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/amd64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/amd64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/amd64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/amd64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/arm64/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/arm64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/arm64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/arm64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/arm64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/armhf/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/armhf/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/i386/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/i386/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/i386/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/i386/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/i386/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/nic-modules
@@ -0,0 +1,14 @@
+e100/d101m_ucode.bin ?
+e100/d101s_ucode.bin ?
+e100/d102e_ucode.bin ?
+bnx2/bnx2-mips-09-6.2.1b.fw ?
+bnx2/bnx2-rv2p-06-6.0.15.fw ?
+bnx2/bnx2-mips-06-6.2.3.fw ?
+bnx2/bnx2-rv2p-09-6.0.17.fw ?
+bnx2/bnx2-rv2p-09ax-6.0.17.fw ?
+bnx2x/bnx2x-e1h-7.12.30.0.fw ?
+bnx2x/bnx2x-e1-7.12.30.0.fw ?
+bnx2x/bnx2x-e2-7.12.30.0.fw ?
+tigon/tg3_tso5.bin ?
+tigon/tg3_tso.bin ?
+tigon/tg3.bin ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/powerpc/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/powerpc/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/powerpc/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/powerpc/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/powerpc/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/powerpc/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/ppc64el/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/ppc64el/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/ppc64el/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/ppc64el/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/s390x/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/s390x/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/s390x/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/s390x/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/s390x/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/firmware/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin ?
+qlogic/12160.bin ?
+qlogic/1280.bin ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/kernel-versions
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/kernel-versions
@@ -0,0 +1,5 @@
+# arch	version		flavour		installedname			suffix	bdep
+amd64	-		gkeop		-				-	-
+
+# Ports
+# arch	version		flavour		installedname			suffix	bdep
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64-virtual/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/amd64/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/amd64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/arm64/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/arm64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/armhf/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/armhf/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/block-modules
@@ -0,0 +1,43 @@
+aoe ?
+aten ?
+bcm2835 ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+hpsa ?
+hio ?
+kbic ?
+ktti ?
+nbd ?
+nvme ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sdhci-tegra ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
+mtip32xx ?
+mmc_block ?
+sdhci ?
+sdhci-pci ?
+sdhci-acpi ?
+tifm_sd ?
+dw_mmc ?
+dw_mmc_pltfm ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/block-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/block-modules.powerpc
@@ -0,0 +1,31 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+kbic ?
+ktti ?
+nbd ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+ps3disk ?
+ps3vram ?
+pt ?
+sx8 ?
+umem ?
+virtio_blk ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/crypto-modules
@@ -0,0 +1,78 @@
+aesni-intel ?
+aes-x86_64 ?
+af_alg ?
+algif_hash ?
+algif_skcipher ?
+ansi_cprng ?
+anubis ?
+arc4 ?
+async_memcpy ?
+async_pq ?
+async_raid6_recov ?
+async_tx ?
+async_xor ?
+authenc ?
+authencesn ?
+blowfish_common ?
+blowfish_generic ?
+blowfish-x86_64 ?
+camellia ?
+cast5 ?
+cast6 ?
+ccm ?
+crc32_generic ?
+crc32c_generic ?
+crc32-vx_s390 ?
+cryptd ?
+cryptoloop ?
+crypto_null ?
+crypto_user ?
+ctr ?
+cts ?
+des_generic ?
+fcrypt ?
+gcm ?
+gf128mul ?
+ghash-clmulni-intel ?
+ghash-generic ?
+khazad ?
+lrw ?
+lzo ?
+md4 ?
+michael_mic ?
+padlock-aes ?
+padlock-sha ?
+paes_s390 ?
+pcbc ?
+pcrypt ?
+pkey ?
+raid6test ?
+rmd128 ?
+rmd160 ?
+rmd256 ?
+rmd320 ?
+salsa20_generic ?
+salsa20-x86_64 ?
+seed ?
+seqiv ?
+serpent_generic ?
+serpent-sse2-x86_64 ?
+sha1-ssse3 ?
+sha512_generic ?
+tcrypt ?
+tea ?
+tgr192 ?
+twofish_common ?
+twofish_generic ?
+twofish-x86_64 ?
+twofish-x86_64-3way ?
+vmac ?
+wp512 ?
+xcbc ?
+xor ?
+xts ?
+zcrypt ?
+zcrypt_cex2a ?
+zcrypt_cex4 ?
+zcrypt_pcixcc ?
+zlib ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/dasd-extra-modules.s390x
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/dasd-extra-modules.s390x
@@ -0,0 +1 @@
+dasd_diag_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/dasd-modules.s390x
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/dasd-modules.s390x
@@ -0,0 +1,3 @@
+dasd_mod ?
+dasd_fba_mod ?
+dasd_eckd_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+firewire-core ?
+firewire-ohci ?
+firewire-sbp2 ?
+firewire-net ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/fs-core-modules
@@ -0,0 +1,6 @@
+ext2 ?
+ext4 ?
+jfs ?
+reiserfs ?
+xfs ?
+zfs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386-virtual/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/i386/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/i386/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/input-modules
@@ -0,0 +1,71 @@
+hid ?
+hid-a4tech ?
+hid-apple ?
+hid-appleir ?
+hid-aureal ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-corsair ?
+hid-cp2112 ?
+hid-cypress ?
+hid-dell ?
+hid-elecom ?
+hid-elo ?
+hid-ezkey ?
+hid-generic ?
+hid-gfrm ?
+hid-gt683r ?
+hid-gyration ?
+hid-holtek-kbd ?
+hid-holtek-mouse ?
+hid-hyperv ?
+hid-kensington ?
+hid-keytouch ?
+hid-kye ?
+hid-lcpower ?
+hid-lenovo ?
+hid-logitech ?
+hid-logitech-dj ?
+hid-logitech-hidpp ?
+hid-magicmouse ?
+hid-microsoft ?
+hid-monterey ?
+hid-multitouch ?
+hid-ntrig ?
+hid-ortek ?
+hid-penmount ?
+hid-petalynx ?
+hid-picolcd ?
+hid-pl ?
+hid-plantronics ?
+hid-primax ?
+hid-rmi ?
+hid-roccat ?
+hid-roccat-arvo ?
+hid-roccat-common ?
+hid-roccat-isku ?
+hid-roccat-kone ?
+hid-roccat-koneplus ?
+hid-roccat-konepure ?
+hid-roccat-kovaplus ?
+hid-roccat-lua ?
+hid-roccat-pyra ?
+hid-roccat-ryos ?
+hid-roccat-savu ?
+hid-samsung ?
+hid-sony ?
+hid-speedlink ?
+hid-sunplus ?
+hid-thingm ?
+hid-tivo ?
+hid-topseed ?
+hid-twinhan ?
+hid-uclogic ?
+hid-waltop ?
+hid-wiimote ?
+hid-xinmo ?
+hid-zydacron ?
+uhid ?
+usbhid ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ipmi-modules
@@ -0,0 +1,5 @@
+ipmi_devintf ?
+ipmi_msghandler ?
+ipmi_poweroff ?
+ipmi_si ?
+ipmi_watchdog ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/kernel-image
@@ -0,0 +1,31 @@
+ast ?
+gpio-pca953x ?
+gpio-regulator ?
+hibmc-drm ?
+i2c-mux ?
+i2c-mux-pinctrl ?
+i2c-tegra ?
+max8907 ?
+max8907-regulator ?
+nvec ?
+nvec_kbd ?
+nvec_paz00 ?
+nvec_power ?
+nvec_ps2 ?
+palmas-regulator ?
+rtc-em3027 ?
+rtc-max8907 ?
+rtc-palmas ?
+rtc-tps6586x ?
+rtc-tps65910 ?
+tps51632-regulator ?
+tps62360-regulator ?
+tps65090-charger ?
+tps65090-regulator ?
+tps6586x-regulator ?
+tps65910-regulator ?
+host1x ?
+tegra-drm ?
+pwm_bl ?
+pwm-tegra ?
+panel-simple ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/md-modules
@@ -0,0 +1,16 @@
+dm-crypt ?
+dm-mirror ?
+dm-raid ?
+dm-snapshot ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid45 ?
+dm-loop ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/message-modules
@@ -0,0 +1,9 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mpt3sas ?
+mptscsih ?
+mptspi ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/message-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/message-modules.powerpc
@@ -0,0 +1,7 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/multipath-modules
@@ -0,0 +1,4 @@
+dm-multipath ?
+dm-round-robin ?
+dm-service-time ?
+dm-queue-length ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/nfs-modules
@@ -0,0 +1,6 @@
+nfs ?
+nfs_acl ?
+nfsv3 ?
+lockd ?
+sunrpc ?
+cifs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/nic-modules
@@ -0,0 +1,209 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+alx ?
+amd8111e ?
+amd-xgbe ?
+aquantia ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+ath5k ?
+ath9k ?
+ath9k_htc ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm87xx ?
+be2net ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bnxt_en ?
+bonding ?
+brcmfmac ?
+brcmsmac ?
+broadcom ?
+xgmac ?
+cassini ?
+ccwgroup ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+ctcm ?
+cxgb4 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+enic ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+fsm ?
+ibmveth ?
+ibmvnic ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hclge ?
+hermes ?
+hfi1 ?
+hinic ?
+hns_dsaf ?
+hns_enet_drv ?
+hns_mdio ?
+hns3 ?
+hp ?
+hp100 ?
+hp-plus ?
+i40e ?
+i40evf ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+iwl3945 ?
+iwl4965 ?
+iwl-legacy ?
+iwldvm ?
+iwlmvm ?
+iwlwifi ?
+ixgb ?
+ixgbe ?
+lance ?
+lanstreamer ?
+lcs ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+marvell ?
+mdio-thunder ?
+mlx4_core ?
+mlx4_en ?
+mlx5_core ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netiucv ?
+netsec ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+nicpf ?
+nicvf ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+qcom-emac ?
+qede ?
+qeth ?
+qeth_l2 ?
+qeth_l3 ?
+qlcnic ?
+r815x ?
+r8169 ?
+rate_control ?
+realtek ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2400pci ?
+rt2500 ?
+rt2500pci ?
+rt2800pci ?
+rt61pci ?
+s2io ?
+sfc ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
+xgene-enet ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/nic-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/nic-modules.powerpc
@@ -0,0 +1,152 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ibmveth ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+ps3_gelic ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/nic-shared-modules
@@ -0,0 +1,26 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+rt2800lib ?
+
+# Atheros library (since drivers are split across nic-modules/nic-usb-modules)
+ath ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/nic-usb-modules
@@ -0,0 +1,34 @@
+ax88179_178a ?
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+rt2800usb ?
+rt2x00usb ?
+cdc_ether ?
+asix ?
+cdc_eem ?
+cdc_ether ?
+cdc-phonet ?
+cdc_subset ?
+dm9601 ?
+gl620a ?
+hso ?
+int51x1 ?
+mcs7830 ?
+net1080 ?
+plusb ?
+rndis_host ?
+r8152 ?
+smsc95xx ?
+zaurus ?
+carl9170 ?
+smsc75xx ?
+smsc95xx ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/pata-modules
@@ -0,0 +1,47 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_macio.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/storage-core-modules
@@ -0,0 +1,2 @@
+#include <storage-core-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppc64el/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppc64el/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/crypto-modules
@@ -0,0 +1,2 @@
+#include <crypto-modules>
+deflate ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/dasd-extra-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/dasd-extra-modules
@@ -0,0 +1 @@
+#include <dasd-extra-modules.s390x>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/dasd-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/dasd-modules
@@ -0,0 +1 @@
+#include <dasd-modules.s390x>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/s390x/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/s390x/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/sata-modules
@@ -0,0 +1,18 @@
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
+ahci_platform ?
+ahci ?
+acard-ahci ?
+libahci ?
+ahci_xgene ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/scsi-modules
@@ -0,0 +1,137 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+sr_mod ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+pm80xx ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+fnic ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsi ?
+ibmvfc ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
+ums-cypress ?
+be2iscsi ?
+3w-sas ?
+isci ?
+mlx4_ib ?
+mlx5_ib ?
+zfcp ?
+sd_mod ?
+hisi_sas_v2_hw ?
+hisi_sas_v3_hw ?
+iscsi_ibft ?
+
+# device handlers
+scsi_dh_alua ?
+scsi_dh_emc ?
+scsi_dh_rdac ?
+scsi_dh_hp_sw ?
+
+smartpqi ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/scsi-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/scsi-modules.powerpc
@@ -0,0 +1,118 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+ibmvfc ?
+ibmvscsi ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+sr_mod ?
+sd_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/serial-modules
@@ -0,0 +1,4 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
+hyperv-keyboard ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/speakup-modules
@@ -0,0 +1,16 @@
+speakup ?
+speakup_acntpc ?
+speakup_acntsa ?
+speakup_apollo ?
+speakup_audptr ?
+speakup_bns ?
+speakup_decext ?
+speakup_dectlk ?
+speakup_dtlk ?
+speakup_dummy ?
+speakup_keypc ?
+speakup_ltlk ?
+speakup_soft ?
+speakup_spkout ?
+speakup_txprt ?
+speakup_decpc ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/storage-core-modules
@@ -0,0 +1,15 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+ata_piix ?
+ata_generic ?
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
+
+# Needed for NVMe disks under VMD PCIe domains
+vmd ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/storage-core-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/storage-core-modules.powerpc
@@ -0,0 +1,13 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop
+
+# Needs to be here for better cdrom initrd layout
+isofs
+
+ps3stor_lib ?
+ps3rom ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/usb-modules
@@ -0,0 +1,15 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
+xhci-hcd ?
+xhci-plat-hcd ?
+ehci-tegra ?
+ehci-msm ?
+ehci-platform ?
+uas ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/virtio-modules
@@ -0,0 +1,11 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
+virtio_scsi ?
+hv_vmbus ?
+hv_utils ?
+hv_netvsc ?
+hv_mouse ?
+hv_storvsc ?
+hv_balloon ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/modules/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/d-i/package-list
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/d-i/package-list
@@ -0,0 +1,203 @@
+Package: kernel-image
+Provides: ext3-modules, ext4-modules, squashfs-modules
+Provides_amd64: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_i386: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_ppc64el: ext3-modules, ext4-modules, fat-modules, squashfs-modules
+Provides_s390x: ext3-modules, ext4-modules, ppp-modules, squashfs-modules
+Description: kernel image and system map
+
+Package: dasd-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: DASD storage support
+
+Package: dasd-extra-modules
+Depends: dasd-modules
+Priority: extra
+Description: DASD storage support -- extras
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: ext2-modules, jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: btrfs-modules, ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Provides: crypto-dm-modules
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Provides: nbd-modules
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
+Package: ipmi-modules
+Depends: kernel-image
+Priority: standard
+Description: ipmi modules
+
+Package: multipath-modules
+Depends: kernel-image
+Priority: extra
+Description: DM-Multipath support
+  This package contains modules for device-mapper multipath support.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/etc/getabis
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/etc/getabis
@@ -0,0 +1,13 @@
+repo_list=(
+	"http://archive.ubuntu.com/ubuntu/pool/main/l/linux-gkeop"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux-gkeop"
+	"http://archive.ubuntu.com/ubuntu/pool/universe/l/linux-gkeop"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux-gkeop"
+	"http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/pool/main/l/linux-gkeop"
+	"http://ppa.launchpad.net/canonical-kernel-team/unstable/ubuntu/pool/main/l/linux-gkeop"
+	"http://ppa.launchpad.net/canonical-kernel-team/bootstrap/ubuntu/pool/main/l/linux-gkeop"
+)
+
+package_prefixes linux-buildinfo
+
+getall amd64 gkeop
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/etc/kernelconfig
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/etc/kernelconfig
@@ -0,0 +1,7 @@
+if [ "$variant" = "ports" ]; then
+	archs=""
+	family='ports'
+else
+	archs="amd64"
+	family='ubuntu'
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/etc/update.conf
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/etc/update.conf
@@ -0,0 +1,7 @@
+# WARNING: we do not create update.conf when we are not a
+# derivative. Various cranky components make use of this.
+# If we start unconditionally creating update.conf we need
+# to fix at least cranky close and cranky rebase.
+RELEASE_REPO=git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
+SOURCE_RELEASE_BRANCH=master-next
+DEBIAN_MASTER=debian.master
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/modprobe.d/common.conf
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/modprobe.d/common.conf
@@ -0,0 +1,3 @@
+# LP:1434842 -- disable OSS drivers by default to allow pulseaudio to emulate
+blacklist snd-mixer-oss
+blacklist snd-pcm-oss
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/reconstruct
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/reconstruct
@@ -0,0 +1,63 @@
+# Recreate any symlinks created since the orig.
+# Remove any files deleted from the orig.
+rm -f 'arch/x86/events/intel/rapl.c'
+rm -f 'drivers/crypto/hisilicon/sgl.h'
+rm -f 'drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h'
+rm -f 'drivers/input/serio/i8042-ppcio.h'
+rm -f 'drivers/staging/mt7621-dma/mtk-hsdma.c'
+rm -f 'include/Kbuild'
+rm -f 'include/uapi/rdma/nes-abi.h'
+rm -f 'kernel/elfcore.c'
+chmod +x 'debian/cloud-tools/hv_get_dhcp_info'
+chmod +x 'debian/cloud-tools/hv_get_dns_info'
+chmod +x 'debian/cloud-tools/hv_set_ifconfig'
+chmod +x 'debian/rules'
+chmod +x 'debian/scripts/abi-check'
+chmod +x 'debian/scripts/config-check'
+chmod +x 'debian/scripts/control-create'
+chmod +x 'debian/scripts/dkms-build'
+chmod +x 'debian/scripts/dkms-build--nvidia-N'
+chmod +x 'debian/scripts/file-downloader'
+chmod +x 'debian/scripts/helpers/close'
+chmod +x 'debian/scripts/helpers/open'
+chmod +x 'debian/scripts/helpers/rebase'
+chmod +x 'debian/scripts/link-headers'
+chmod +x 'debian/scripts/misc/arch-has-odm-enabled.sh'
+chmod +x 'debian/scripts/misc/final-checks'
+chmod +x 'debian/scripts/misc/find-missing-sauce.sh'
+chmod +x 'debian/scripts/misc/find-obsolete-firmware'
+chmod +x 'debian/scripts/misc/fw-to-ihex.sh'
+chmod +x 'debian/scripts/misc/gen-auto-reconstruct'
+chmod +x 'debian/scripts/misc/get-firmware'
+chmod +x 'debian/scripts/misc/getabis'
+chmod +x 'debian/scripts/misc/git-ubuntu-log'
+chmod +x 'debian/scripts/misc/insert-changes.pl'
+chmod +x 'debian/scripts/misc/insert-mainline-changes'
+chmod +x 'debian/scripts/misc/insert-ubuntu-changes'
+chmod +x 'debian/scripts/misc/kernel-wedge-arch.pl'
+chmod +x 'debian/scripts/misc/kernelconfig'
+chmod +x 'debian/scripts/misc/retag'
+chmod +x 'debian/scripts/misc/splitconfig.pl'
+chmod +x 'debian/scripts/misc/tristate.sh'
+chmod +x 'debian/scripts/misc/update-aufs.sh'
+chmod +x 'debian/scripts/module-check'
+chmod +x 'debian/scripts/module-inclusion'
+chmod +x 'debian/scripts/retpoline-check'
+chmod +x 'debian/scripts/retpoline-extract'
+chmod +x 'debian/scripts/retpoline-extract-one'
+chmod +x 'debian/templates/extra.postinst.in'
+chmod +x 'debian/templates/extra.postrm.in'
+chmod +x 'debian/templates/headers.postinst.in'
+chmod +x 'debian/templates/image.postinst.in'
+chmod +x 'debian/templates/image.postrm.in'
+chmod +x 'debian/templates/image.preinst.in'
+chmod +x 'debian/templates/image.prerm.in'
+chmod +x 'debian/tests-build/check-aliases'
+chmod +x 'debian/tests/rebuild'
+chmod +x 'debian/tests/ubuntu-regression-suite'
+chmod +x 'samples/bpf/lwt_len_hist.sh'
+chmod +x 'samples/bpf/test_lwt_bpf.sh'
+chmod +x 'scripts/kmsg-doc'
+chmod +x 'scripts/parse-maintainers.pl'
+chmod +x 'update-version-dkms'
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/rules.d/amd64.mk
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/rules.d/amd64.mk
@@ -0,0 +1,36 @@
+human_arch	= 64 bit x86
+build_arch	= x86
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours	= gkeop
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+uefi_signed     = true
+
+do_tools_usbip        = true
+do_tools_cpupower     = true
+do_tools_perf         = true
+do_tools_perf_jvmti   = true
+do_tools_bpftool      = true
+do_tools_x86	      = true
+do_tools_hyperv	      = true
+do_tools_host         = false
+do_tools_common       = false
+do_tools_acpidbg      = true
+
+do_zfs		      = true
+do_dkms_nvidia        = false
+do_dkms_nvidia_server = false
+do_dkms_vbox          = true
+do_dkms_wireguard     = true
+
+do_libc_dev_package   = false
+do_doc_package        = false
+do_extras_package     = true
+disable_d_i           = true
+
+do_enforce_all        = true
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/tracking-bug
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/tracking-bug
@@ -0,0 +1 @@
+1923770
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/upstream-stable
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/upstream-stable
@@ -0,0 +1,3 @@
+# The following upstream stable releases have been ported:
+[upstream-stable]
+    linux-5.4.y = v5.4.65
--- linux-gkeop-5.4-5.4.0.orig/debian.gkeop/variants
+++ linux-gkeop-5.4-5.4.0/debian.gkeop/variants
@@ -0,0 +1,2 @@
+--
+-5.4
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/abiname
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/abiname
@@ -0,0 +1 @@
+72
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/generic
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/generic
@@ -0,0 +1,23823 @@
+EXPORT_SYMBOL	 arch/x86/kvm/kvm 0x4eb65aef	kvm_cpu_has_pending_timer
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x27f17d56	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x4cf72566	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x73ae4367	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa9e9f8fe	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xebd29553	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfe490830	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x18c57018	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x847e11cc	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xd3cf913a	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x46d62c63	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xf7ebfeac	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/acpi/video 0x1054795b	acpi_video_get_levels
+EXPORT_SYMBOL	 drivers/acpi/video 0x5763500d	acpi_video_get_edid
+EXPORT_SYMBOL	 drivers/acpi/video 0x6de7f7ff	acpi_video_get_backlight_type
+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 0x8826c13b	acpi_video_register
+EXPORT_SYMBOL	 drivers/acpi/video 0xe92ca535	acpi_video_set_dmi_backlight_type
+EXPORT_SYMBOL	 drivers/atm/suni 0x94478be6	suni_init
+EXPORT_SYMBOL	 drivers/atm/uPD98402 0xa2a94f77	uPD98402_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x26591f14	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x3002e6d0	bcma_core_dma_translation
+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/block/paride/paride 0x0662d106	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0b67bd13	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x2c15bb40	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x488b4255	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5ad31b20	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x71121bb9	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x7e8c188b	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x92db86cd	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa5277365	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb0fb1f0d	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe3fbd301	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf78c72f9	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x2f2c353f	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x016588f6	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+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 0x9abf85cc	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe3cd18d7	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe3dcccae	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf0cac05c	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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/nvram 0x3ef38dc9	arch_nvram_ops
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8328329f	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xa5afd898	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xda38fc0c	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xfc3f69fc	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x3eb13e51	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x550ba468	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xe27c09e0	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x8fcf5275	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xdf24bf4b	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xe3889e90	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x01cc5291	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x082ed5e1	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0c3f518f	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x12fd2fc3	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1adda472	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1e00a89e	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x22dfbd47	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x24d8159e	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x322ebbb0	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4cc74549	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x566b325a	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5eb9795d	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x63764ad5	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x71f0dae6	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x7a7fa0b8	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x92407805	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9e827a34	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9f8b0c43	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xafcf55ee	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc7ad4bea	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcab3635e	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb56b42b	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xceb37626	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe0d7c225	fw_core_handle_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 0xf0158097	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfcf58e8e	fw_send_request
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x00d65ec5	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0128bc17	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x017d3e94	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03977d6f	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03aac6c8	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04df052b	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x056d5144	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05dadd0c	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x061f2ba4	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06a8adcd	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070c5c9d	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x072dd889	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0737b0ed	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0911a329	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0911e47f	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09bc811a	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b6aadec	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d73996f	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e30e0f5	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f6f020b	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fcf5ac0	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10e0e102	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1173464f	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x117bd56b	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1281a87b	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12ffbe64	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13c30afd	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x157eed4a	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16a45ae5	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17cff3b8	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19245d25	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x196bdda1	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bfefde3	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c0c2afe	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ca6b696	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d70611d	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e235ce2	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e7cf0a7	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e9b42c4	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21b0cd6b	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21f0bda4	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23386d69	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x237d0452	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2552ec93	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x266bf1b9	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x277e6580	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a0dae47	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a26fa4e	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a867d10	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2aa6f105	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b5cbd6d	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2be435ac	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c07b622	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d645c20	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d9ceb71	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ea1f53a	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fa14c2f	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ff72397	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x300f2477	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30caa3ae	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30cd01ca	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31dd94a8	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x333e9d94	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x336bd02a	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33aeaec9	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x341c7413	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x349687b6	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34ace60f	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34e92409	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3512a2f4	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x352f0c9c	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x356f95e8	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35a73f75	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36024467	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x366cb693	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3910224a	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ac647d1	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b968f20	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c3617da	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d6dd46d	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d706e4b	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3eaddfa0	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ecaa93c	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ed5e8ab	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f66d9b9	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fb80cac	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40135af8	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x404b5458	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4088ea58	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41562a61	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x415bcf14	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41a42e65	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41c33668	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41dfc25d	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x429d5ee5	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43373c47	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x436752c8	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x444cc8a4	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x444f99ff	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45206597	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x454210f3	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x456a2316	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4638a7d7	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x463c20c4	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4667a938	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46da37b6	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47aa6f8d	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48e9140d	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48eebf09	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x491a0786	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a1c4617	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ab4c1c2	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c24f01e	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c409d70	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d270b99	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e372adc	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fac2999	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5038893b	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5050d615	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x508a3b6d	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50988037	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50e9d580	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51037985	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51e3a84f	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54b6e5ce	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5637e5ce	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56ed217a	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57c3e00e	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x599096e7	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59cf2814	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a3515ed	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b929bef	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5bae861c	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c59300c	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d130aba	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d561f9d	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ddd7a64	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5dec741a	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e182170	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e7d31ab	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f2ea3d6	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f41ebfb	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fe61d1c	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60666628	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x606ff5f9	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x622afcb3	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62722f66	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6349d10a	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64ad218c	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64b0b76b	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65d890ff	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66f8cf6e	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x676b5cdc	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x68bd388d	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x699876ae	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a0c85af	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c580b37	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d70525d	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d834a42	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e91626d	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6eaa1107	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6eb6574f	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f7e4126	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fdefcfe	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ff746d5	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70c22eaa	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70eb086b	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72722135	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e460a8	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e475d2	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72f284a2	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7329831d	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73a0c208	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73b4430c	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74639237	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75cc4e87	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76090b95	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76173351	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7884c1f3	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79d90dcf	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a4710e6	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7aa7264b	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b482404	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7db2d600	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e1c1f4f	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e3175ce	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e9fc7de	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7eaffbb8	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f5bd0ac	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80786b8d	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x814cbfba	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81a6080a	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82042f08	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x846923a2	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8472634c	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84acb136	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8529f000	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8564dfa8	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8596ee96	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8828a35f	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x897106a4	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89770e96	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89f106ff	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a8d1b0e	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ab3138b	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b03497d	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bad0efa	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c4330b2	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c85e9a6	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cb3dcf3	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f4f45cb	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f6e43df	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90e99274	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9221d07a	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92926082	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9494f70d	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94b9fe1c	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94d7e9ba	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94dc241f	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x962f515b	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9656d6f1	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9675f2ec	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96f8f23f	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97370dd2	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97b193ff	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x982a81f6	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x988457ed	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98dbce1a	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99188630	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99b5abf8	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a3c1985	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9abede11	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c09d32f	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c10ad6c	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ce8217f	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d488a8c	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d9d6df7	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa018e9f0	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa04d11cf	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa29402fe	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2fc642c	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa32f8642	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa51eabdd	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5adf67f	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5e1c81b	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6ec70ff	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8fc104f	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa91422a2	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaacf5758	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab567ee6	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabd4cfad	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad585e04	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae3cc5fe	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf114ca4	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb227e630	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb27ca2b1	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2bce6ee	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb35674bb	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb47f6caa	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4b9a87d	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb565fc9a	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb58252a6	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb58b886d	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5e55bc7	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb618610e	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6863af6	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb698d6a6	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb717fc7a	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb743d2f9	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb76d1766	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb96f55e7	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba8e2b30	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb0cb11d	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb330f97	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb96ad70	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc5f7fca	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbee7722a	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfcdf484	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1636c3d	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2227cb4	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2841b1f	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2fd64b5	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4db7e49	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52297f9	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52c69dd	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc57ee486	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6624f05	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6eea7dc	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc726c815	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc789d4ef	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7d7c4db	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc8b39f16	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc943eb61	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca5dd4b5	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb587d11	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb5d49ac	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd509775	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xceba1c10	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcebd677b	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcedf45dc	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd54cc289	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd60dbb15	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6287eaa	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd66dc7c2	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7074531	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd772428f	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8a87f18	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8e8e155	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd94ba43b	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaec9ff3	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaf070b3	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb581f89	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc84c229	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xddabcac7	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde7b8bbc	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfc02a51	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe300c4fa	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe384a28c	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3ac08bb	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3e354e7	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3f53cbe	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe426498f	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe435eb81	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe55f2628	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe584985a	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7ca6d80	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe849e41d	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9afd1ff	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea8017cf	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea8d1daf	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaca00a7	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebed16ae	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec56ccce	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeded4372	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee2cbc75	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef11f05d	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef919e90	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf040fa71	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0ae381a	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf11d2f1c	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf361aa62	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4ab3956	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf571809d	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5c38473	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf69f2bb0	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6c1a5d5	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf736c43b	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7e0a92a	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfafe883b	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe1a50fc	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe5be415	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff880319	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffe02460	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02512519	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x025fd89a	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02938871	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x031a2a6e	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0544cd74	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a778936	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0c3b1b3d	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f9e8c46	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x109c8789	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13914670	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1759df49	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18eb81a2	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1aea0d82	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b2675c2	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d6698e2	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1dad9992	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2104eb41	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x210a37aa	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21f8c9ed	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2353b19f	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23f08e8c	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26b2d92b	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x272ecd2b	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27d3e281	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27fd2698	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28d0228d	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29cad508	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2cf25559	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f376a16	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f6870ab	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2fb525c6	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3023bb7a	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31044b96	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x314f2a7b	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x318ffd26	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32c353d7	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32ed6232	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33de5e6c	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3847de68	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b0a2d0a	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b974035	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3dbdb6fb	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x404a6b60	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44bb2436	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45136568	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x46fa3b46	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x481fd011	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4b427d8d	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c952799	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d2d8796	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d6c0c52	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ddec054	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4de3db29	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ec36186	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4f5a7b1e	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x511938df	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53e42a71	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54ae1b99	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5657d5bd	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x568b1574	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a9e323	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57a61e8a	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a243bc0	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a6dcd01	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b4824d5	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c62bf0f	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5cecd296	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5dc698ba	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5de50f4d	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61a25a91	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6238d1e3	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x64886579	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x661986dc	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66fabc70	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6992acd8	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b50fd02	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6bc614ef	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c5a5a6e	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6d48a779	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7028b954	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70327445	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7125f373	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71978903	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7351c639	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74a19e73	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77754118	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77c2ecba	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x786c667e	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a65add1	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ad47814	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7bbf2e42	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d32dbec	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d33f26d	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eee5762	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f4f8abd	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81c31d24	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82561767	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x838f4362	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84083985	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84b8505d	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88a20eb0	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8913b9d5	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8929b2b6	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x892ff0db	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89aea407	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91a4ef7c	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92152e5d	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94b54c07	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9519330e	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9577c591	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96ec47ee	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x97439148	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b04bd85	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e947ec9	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e9e6530	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ec0915a	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa367fd74	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3be4daf	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3cca62b	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3ccaa1e	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa45654d7	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4fcbfe4	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5c8e1fd	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa832caf9	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9dacc6a	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab4e5345	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac2dab93	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac365f5f	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadaa35ff	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xae791b77	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaeafa11f	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafc4b45e	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb004da3c	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb066645e	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb21d8ce5	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb26fdf66	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb32e10e0	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb418fe5b	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6ab4fd4	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7e18c20	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb95840be	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9d64f45	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbfab2825	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbfc5ce86	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc0ec0941	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc23365c6	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc29985eb	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3c8e48b	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc409c55d	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc49c00c3	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4c376e8	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4c4603a	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5199c34	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc538db66	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5989236	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7a02998	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca8b26f7	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca9b309a	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcac2caeb	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcba123ad	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd06fe12d	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd07ccbc4	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd0a156e7	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd33a1344	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd50e8bce	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5381efc	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5b03ca9	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd68394ef	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6fa8fb4	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd90c66d9	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9fd8dfe	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdbd88020	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdef4d478	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe03f400e	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe109823c	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe1432638	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2479d3f	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2c0c30f	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe39e133b	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3c4a1b4	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe41d39d5	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe62e748e	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7b84868	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7c2610d	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe967e490	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea195d9e	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeddaadbb	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf22e6e87	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf277b1ad	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5b7b99b	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf61ef67b	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf81d4021	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9e81f83	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbdacba6	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbe31654	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x123b4b7e	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3018b6fd	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3aa57c09	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4614f6ef	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x54002fd2	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5b7701f1	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6907d7ee	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6e9b5844	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x943e8aa3	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9d7e631f	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa8407739	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xad1d3f94	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb5b3ade5	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xbb19e956	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xceda1c73	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe60a9c53	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf1b71551	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfa5a0d65	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x071e6e41	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x14ac216b	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1a1b969c	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3687cb1b	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3c64df97	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x460beeb8	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4acb01eb	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4b350dfe	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x53da3eac	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x550a2bcc	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5c4ece5d	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x68607d07	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x848a31bd	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8df0065e	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8fc24db5	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa97bf916	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbf3f3728	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdfe3d469	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe0534ee2	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfb5579ec	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x025d491f	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0e4a23d3	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1c5164cd	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x357d5786	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x377ec592	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3a18e36b	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4c517213	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5bb95f2b	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x66492cb3	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x87370a49	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x87aede3a	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbb12736b	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xce110d9f	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd2439c84	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd3b50339	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xda5d0302	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xec011646	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf3cd0aff	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfd3bbaca	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x02e5fcb2	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a211e4a	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e27e91e	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e9e36ca	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x131b22b8	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x13b812ed	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1a8474bf	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c1b0585	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ca27993	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ef269ea	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x211ae738	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x221cc7df	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x24e1314e	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2843b0a5	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2955fde1	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2ddd874e	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e02be8e	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f5c4ccc	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x334f9b56	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x37375dcd	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3a08ee67	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3cfd6b70	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3f4d5f4c	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x428f66fa	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4d6160bc	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4e6d4bc8	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x56c02e8c	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f63416e	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x61f2a9df	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x69d2e1ae	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6b2d9af2	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6d5a1013	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6fba23c1	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x71d1b251	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74e5e263	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x785b7722	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e0f559e	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x80222654	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8215d1f7	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8f82eea0	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x91b2b107	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9793ef9a	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x995bc4fd	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9e87df4f	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9f314eee	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa04797e7	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa970aa80	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xab51a430	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaeee4f5a	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb43f046d	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba0b3d06	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc12ebcf7	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc1ebcf34	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc225d610	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc4d163f9	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc9f24f00	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd0a5a0f5	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd6bc6271	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd70be2cb	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd914cd2d	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe1ce8c8c	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe7de8c48	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf364b76d	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6801a74	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6a06289	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf948ebba	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/vmwgfx/vmwgfx 0x446c961c	ttm_base_object_noref_lookup
+EXPORT_SYMBOL	 drivers/hid/hid 0xa0a1e1b6	hid_bus_type
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x04a19dae	ishtp_set_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x05418ab4	ishtp_set_connection_state
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x089faf4a	ishtp_set_tx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0beec6e9	ishtp_put_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0d7e3a46	ishtp_fw_cl_by_uuid
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x131cbff9	ishtp_trace_callback
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x17710054	ishtp_cl_driver_unregister
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x18e48b8d	ishtp_cl_get_tx_free_rings
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1936ad27	ishtp_cl_connect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1d754465	ishtp_set_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x204a7c3c	ishtp_get_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x253a109c	ishtp_cl_io_rb_recycle
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x27000c77	ishtp_fw_cl_get_client
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x2a17323f	ishtp_reset_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x30332b40	ishtp_cl_link
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x3414ee57	ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x396d08bb	ishtp_dev_to_cl_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x463b6c83	ishtp_get_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4c31bfe1	ishtp_get_ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4f147595	ishtp_cl_unlink
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x56d8b49c	ishtp_cl_free
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58659ebe	ishtp_cl_set_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58b7fbcf	ishtp_device_init
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501	ishtp_get_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x6ca1fcc4	ishtp_recv
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x732718f1	ishtp_send_resume
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7ad08488	ishtp_cl_driver_register
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x815989e7	ishtp_reset_compl_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x83b2822a	ishtp_get_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x86cb4202	ishtp_cl_flush_queues
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8e9e40a2	ishtp_cl_rx_get_rb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8f3ede21	ishtp_start
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x944ca8db	ishtp_cl_tx_empty
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9b2f5227	ishtp_cl_disconnect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9e9b9bd9	ishtp_send_suspend
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb2d3a521	ishtp_bus_remove_all_clients
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbe75a564	ishtp_set_rx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc9d14db2	ishtp_cl_get_tx_free_buffer_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xccd0b9d8	ishtp_cl_send
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf64f793d	ishtp_register_event_cb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf6dd89f9	ishtp_cl_allocate
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfd81e9fc	ish_hw_reset
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfd8c6b3d	ishtp_get_pci_device
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x5bb8c21b	vmbus_recvpacket
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0xbb27bd1e	vmbus_sendpacket
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x0330811b	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+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/i2c/algos/i2c-algo-bit 0x22d870fb	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x87272ab3	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x8a66a567	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x41ee4f65	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xb6d737f1	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x60e418b8	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6a309ddc	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6cc4d968	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x72986536	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3e499f14	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3ed57f16	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5e7f8f30	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x674fe089	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6b70fb94	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6fdd6453	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7425d154	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x75638f5c	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x91fc8646	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa6b8dcf5	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb6586f58	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xcec7d809	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xdeafbbb8	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf2c46063	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf2eeb97f	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf88512ff	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x77293cc4	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xc5944cbf	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xf6448d4a	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x39fa63f2	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xa32b7df6	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x223cbe99	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x77854d50	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x98c07a05	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xbee72021	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xefc73f72	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3a529a63	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4006a08f	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x57d33ce8	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x615b61a2	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x77b23c30	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x97a090b6	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc8a64cde	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xcd4a3c75	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf6b8da4e	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xfb06e590	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4542c953	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x91852b8f	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd30b9c62	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd3d56e65	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x15e30d94	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1a91aaef	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x47d0a1b1	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5334299f	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x71619c80	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x885ba19d	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb1dda451	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb7989468	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc50ff481	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x02281170	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x660e41cc	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x7f8ce147	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x98455785	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xeb22d08e	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x00fff27a	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x08485a73	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe1e56770	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x218bf333	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x358c3328	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x383e2219	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3d603af3	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3fc2cbe0	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x45ae67b7	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5f35f848	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x644c5e5e	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6d6698e7	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x809a925b	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x88bc47aa	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8f60e575	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbf6fd5e9	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc6f35dcc	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcbbee08e	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcd77e6e4	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf5d7b6df	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x5f53d9fd	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xf8dacc11	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x6de7bec2	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x1cf7c736	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xb546b1f4	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xfb9cee70	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x116fc466	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x387e937b	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xee1eada3	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x08b03b90	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xae587a38	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x0a278ee9	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x1c0c346c	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xb966a0de	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x71e50d54	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xfacc257f	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0028a8c9	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x03dcda0d	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x11fac073	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1bcf661a	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x24b9656c	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2a0a1fea	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2f01be63	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x32322448	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x45901294	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5b4cb020	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5c420755	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5cbe5981	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5f30e269	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6f66ffb1	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x858b1dc3	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x92739147	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa025aa42	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd62770bf	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd964df19	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xddc14056	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe2959330	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe94e2253	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xef86dce8	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0xe8b70e39	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x5af4295b	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xb40a2f75	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xef893e24	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xffd00502	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x2995771d	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x872d6a88	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x87e4d9ae	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xe4ded16f	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x41fe9b66	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x655ec0bb	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x1eb808a3	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x48858ebc	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x181b54df	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x2b7d80ee	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x6a62e122	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xd9b99889	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x466064d3	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x54844fc8	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x7a4af7a5	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x9fa2bbf1	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x67e9d2f5	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x93eec7d8	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xa98a58da	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x1fe7e280	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x6367430d	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x89e19e6f	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x98d2c3a3	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xce27c948	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x399d29f9	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xcfad47d2	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x600686e9	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xef5601e3	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xf020a704	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x31c1ac15	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x34f9966d	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x36e3a1b5	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3b98a4ef	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x57f51f4c	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x59db94dc	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x65da4244	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x72e1d668	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x7463c13a	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8fefdeac	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa3e16485	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa64e729a	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb5dbe8f0	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xbf2bb233	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc2717ddf	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc28a6631	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcd853c4c	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xed3f5550	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0555776c	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06c2d663	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07205709	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0726d8f1	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ca5f041	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f471f71	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f9cfcba	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10b17891	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x11a1d846	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x12740ef9	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15898405	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1780436d	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19372ca4	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a5babac	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1c558710	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1cc05f77	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d24ca96	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d678c81	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e571609	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x20f7f890	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x228d345c	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x25f07d52	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x27a93507	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x283b7490	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a45290c	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c042918	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ea67035	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f0c892a	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33d66481	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x367c8095	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38c24e87	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3948f7cf	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39ddadde	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a5d8895	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a8a601c	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40239a04	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40e2cf9c	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40f29227	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x453d5474	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46292547	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46492132	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x464e3477	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47257a5a	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48a4149a	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x491e5bc7	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4933657a	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+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 0x4ea9388a	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4fdd69a4	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5096f58f	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50ec7ef4	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52c5a8f7	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54c9ec39	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54edb5d2	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x56686cd6	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58a116ce	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c706532	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cb58863	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5eb94828	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6043ba99	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60c7febd	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62030b05	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6217d0f5	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x63d133d2	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64e71a36	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x658207cc	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x660b4958	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6618fd44	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x66d38b7f	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6965f765	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c206b8d	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c3ccf56	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e45da03	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70d26d5e	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71006418	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x713480cc	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71874a59	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x74ed1f99	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a64b760	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7d687b69	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e1773c3	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8190accb	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81d16746	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82e84889	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x84e3ffec	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x84ec1e7a	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8557c6ea	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8692f448	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x87f31e2e	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90d45adf	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x913e3a8f	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x91fb0b3f	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x92c49161	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x92d8d995	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93b8c91e	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94a96443	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94c4c147	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95f0c514	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97ca939b	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x985e67a5	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x98cf4d6e	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ca95e9c	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ceade08	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e84b9c8	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e991c9d	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9eae4b4b	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f59c440	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f85109b	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa12beab3	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa15f8049	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7831095	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa8a301d2	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa0bfd4b	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaaf113b2	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad02b797	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaee67818	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaeefa590	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf9a7129	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xafa86756	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xafbb8a8f	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb32956d1	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb44fb9c7	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb534a0ff	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb64d9f30	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb807ea70	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb888fcbd	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba46f3be	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbb75059e	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbb9ca88b	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd2adade	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe663551	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe88a626	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc17a7504	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc1ffe928	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc316ae96	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc6b5d5ba	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc77cab83	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7cec0fa	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc987fddc	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xca2eba48	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xca8fd81a	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcaf0bef9	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb4fdc78	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb517074	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcc38a023	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcce1b5ad	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xce8c0ac5	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcefac005	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf78733d	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0f078a9	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0ffa566	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd2cd3453	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdacc185f	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdeab8c46	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe0d3aa43	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe282cf0f	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe30b4bf9	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe34438e3	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe48413ca	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe485140c	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe59bd1f8	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe66377cd	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe68b17e1	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8359895	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe99abac0	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeaf6bc11	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb77b04e	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xec5d1438	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee0bb490	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef277ac3	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef5e3107	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf135aedc	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf2d54742	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf484b7f7	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf547a464	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5b9ea7f	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6197ab5	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf77b4c7a	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf780f7f9	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf78cc803	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8463c61	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfa150f68	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfa91b4f9	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff15fa92	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0249965b	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0d500ee3	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x179e5a28	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x210a4883	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x24da7ca6	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3f1a5efd	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x411e8daf	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5b5f3b88	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6bc9aedb	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x94388e3b	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa04a7329	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa7793db2	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa9c5fbf4	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xac7dadc2	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xad9fc58b	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb01a954f	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb64c5faa	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb75cbac2	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc76d14fe	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xccb50294	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd06d8e88	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd26423cb	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xdb35ad79	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe427cee3	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe54de47e	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe9b4f086	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x1c1ee2c8	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x1f20c7e7	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x70fd1c2c	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x750a4b53	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xafbc311b	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd4fbaf1d	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xdc71796b	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xed8bd36c	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x16461c80	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2f3085b3	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x363a7f14	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x37bf17a6	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3f123cba	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x45d18022	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4d63b511	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x59dc4ee6	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x630c2f3f	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x688431d2	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6e3ed49a	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x78d2f9ee	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x83bde988	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x89990074	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8eea4734	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x90d369d6	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x920dde44	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9313d70b	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x95594440	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9dbf837d	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa1b1ba96	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa7e47c69	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xab27d05e	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc204fffb	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd8e4d77e	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe7dd3b96	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xedd2adf9	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xeffda04a	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x009993c1	rvt_qp_iter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x051824e6	rvt_compute_aeth
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842	ib_rvt_state_ops
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x1bf76781	rvt_register_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x24a554c0	rvt_rkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x2751a854	rvt_init_port
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x2b7029ae	rvt_error_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x36cffc75	rvt_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x404ff88f	rvt_ruc_loopback
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4824297c	rvt_rc_rnr_retry
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4a103eaf	rvt_qp_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x504208ac	rvt_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x54257702	rvt_rc_error
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x61f5f3d0	rvt_fast_reg_mr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x6347ba2c	rvt_stop_rc_timers
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x68b8174f	rvt_cq_enter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7b28a280	rvt_comm_est
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x830c393b	rvt_del_timers_sync
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8374925d	rvt_send_complete
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc32f8b96	rvt_qp_iter_init
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xcb1ec649	rvt_get_rwqe
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd548a3c8	rvt_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd7495584	rvt_check_ah
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd8d2fd33	rvt_add_rnr_timer
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe4d1421b	rvt_mcast_find
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43	rvt_rnr_tbl_to_usec
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xeb74a0bb	rvt_restart_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xec787273	rvt_get_credit
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf0c49354	rvt_add_retry_timer_ext
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf3119b83	rvt_invalidate_rkey
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf3f4bb8a	rvt_lkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xfd97b897	rvt_copy_sge
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x0d2a72c2	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1cac2fce	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2285f0ec	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x3274e608	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x6daf2768	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xa773e6b9	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xac5acaa8	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xbc566b3b	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xefbefe4c	gameport_open
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x4fd15619	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x92842024	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x93a66d20	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xb30487eb	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe9fa799a	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x350a55dd	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x5c6e5b7d	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe8371aa1	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xb83c1f1f	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x3fa16d91	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x5a26a93b	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xb3687ca9	ad714x_disable
+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 0xe3970f30	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x1698c979	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x078cde80	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x0ff7544b	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x739d0a1b	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x999ab91b	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf3296314	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x6017aa88	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x628abaaa	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x13ec1cf2	amd_iommu_free_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x7be042e6	amd_iommu_init_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x8829c6da	amd_iommu_bind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x99e748f2	amd_iommu_unbind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xbe4c82f4	amd_iommu_set_invalidate_ctx_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xe6f7040f	amd_iommu_set_invalid_ppr_cb
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x01f8b2db	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x12773852	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32fa6fe2	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4d2ced57	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9c04c3a6	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb3921ac9	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbc8ba476	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc82be54b	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcbc3d086	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xce435896	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+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 0x110a0121	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x29edd0ab	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x407193f2	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x8773f9f5	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x0062e109	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x175108ab	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0e82e4d7	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x155d9082	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x21c35b2c	mISDN_unregister_Bprotocol
+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 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3c0db48f	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x43bb97c4	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x495bcdf9	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+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 0x6478df56	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x699237fb	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6afef4f3	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x97085315	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xacf7a044	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xba52f0da	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc201efdc	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xca022c41	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd323d36a	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd66996e1	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd68a4ccd	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdbde45fd	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe6710d3c	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xeb2c83d4	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf03bce21	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf0becd5f	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf87a529b	get_next_dframe
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xc28fde54	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 0xf4db7d4e	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x0b6dea0a	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3892ce4d	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3de99c91	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xcbf20fb3	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x82bd2b91	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x8924231a	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x921a7f91	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x98eb4f4d	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xd676dab0	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf9ec238f	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/raid456 0x032b28ce	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0xf5080e7c	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x03575662	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x036858f4	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x0f0592d7	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x28f71257	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x41f3469d	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x5b366956	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6220a0ea	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x69b12627	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6f8344e3	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x750bf8d2	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7e1e2ea5	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd04afd03	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xdbde0d5c	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x3f86d7f3	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x491a5c6f	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x7d2cc1db	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeba22c3a	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x5a09a23b	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xe6bd1456	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x73141ded	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x789cb997	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x1bc09998	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x3f43efb5	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xbd264f16	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xdc599a97	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xdea29983	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xedb2f2f0	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa83c1684	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x000eacca	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x089150cc	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1bab9df1	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x32de7de1	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x395b720f	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3bb931f5	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3e85d449	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x40542a90	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x40565d8b	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x50899c69	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x735c3e7b	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8333c0c4	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x85355732	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x89d4cb64	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa2086bfe	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa6c10588	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xac49f963	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcd21d3dc	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe0ee80dd	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedd29c51	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf03c1f74	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf5cea30a	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf8d9bd5d	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfdf629c1	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0x01971cc3	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0xb8349fbf	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x3d796be2	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x5519d0f7	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x826ad1ad	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xab2445d4	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc38a3ea5	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xd52b69d4	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xdb312d8e	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xe06f361b	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf010f6d4	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x18d7789b	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0x10d22498	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x486f7bc3	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0x34055556	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x71227a36	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x0ca7887b	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xe84d3f98	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0x26c94522	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x4963c843	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x9a895a05	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xa4c07547	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0xf31a6f10	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x09f475b0	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x38a22ec8	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x1658e142	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x1c05bca3	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x3df78f96	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x714970f8	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xc2220418	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xf3877bfd	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2abbc6e9	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x443e3813	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x4875b6e9	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7a847eaa	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x80a6c6dc	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8b59c0c7	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x97e036eb	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9aa091a7	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa256c0a6	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xbacbf61d	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc5b3fa26	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xdf351802	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe4a5a0f5	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf19a1f80	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf3c475ad	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0xa5282839	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0681f027	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0d7bf391	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x1a7f51e5	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x861c23b6	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xa1e4b823	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf7992cd5	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x89db6f23	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x924495f1	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x9304c133	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xbeec134c	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0xda8b37f8	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0xa7b7f220	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x2d051696	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x587b8059	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x773dec7e	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x88967ba1	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9c2e89f9	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa3fcbdf1	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xacdb2d7f	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xb0ae6526	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc0599c0d	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xde656e6e	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe5310ec1	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe9fa16c0	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf8b62bd0	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x741a1ce5	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x87d370c2	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x984ecd88	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x9ac91761	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xae318b07	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x715404db	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0x923936b8	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0x211b684a	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0x9aff4b9d	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0x680f6ede	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x70c6ade6	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xdb08898e	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xf98184bd	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0x186df17a	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x2655a1c3	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xeef07e2c	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0x3f3883f8	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0x75b100d3	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0x91ebd39d	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0x77bc670f	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0x2a152aa9	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0x1659d110	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0x26844fb8	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0xdf1bee83	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x034176f8	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0x9a5de83c	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0xec67da0d	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xd504f77f	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x4d35e297	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0x717eacdd	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0xc610ae65	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x07ee2d4b	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x9fcf9af2	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x42fd9c47	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x4410353a	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x48136d9c	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x46598809	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0xb2de5e03	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0x0c951e06	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x99e5c15b	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0x3720a32b	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0x32dfa0e3	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0xcfbcac7e	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0xbef842a4	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x4a8e6fa4	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x244381f9	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x5b7170fd	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x661a959b	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x9e69fd55	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0xc1c972b9	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0x9e4725eb	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0xd37beff6	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x5bc053ca	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0xd92e5b9d	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0x8f3d7b8f	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0x8b5727a1	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xe9e156fc	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0xfa841f29	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0xbe25d1db	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x93bd7b05	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x7ba8c5ce	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xbe95bcc7	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xce0bc326	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0x9a1b001a	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0x3cb659a5	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0x443df777	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x7a179c5b	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xf9729072	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0x1f4da5f5	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0x51189a78	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xec9f7269	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xfa7fcdc0	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x136effb6	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0x7c5bbc78	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x3f88caa3	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0xd367aad6	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0xa1f9694f	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0xb947c390	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0xe34d88e8	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0xa1baaec1	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0xf06a3fcf	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xc760644f	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xea60c15e	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0xafb18635	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x3ded1a49	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0x9c0ce1f0	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x30b20837	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x68cb2d47	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7a5f8831	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7cc75164	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x807f5ddb	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8438929d	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x94df2f8b	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x1928d659	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x96f05fe8	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xec0afdf3	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xfa0e3835	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x68db5a1b	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x9912de6e	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xdf40d00e	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x12704f5b	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x17e81b04	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x32154ce6	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x38784111	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x45ab6587	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x7ba6a59c	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9a44ac1f	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xbacf0e03	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdb47641f	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0x9d4e179d	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x123f14f7	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x5b060230	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x91d4fada	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x939340f4	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xf2787580	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x13897cdc	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x2c4f3501	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x71837fce	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x72d1d76a	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x75c7743b	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x790150ea	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xbed941a5	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x515a69c0	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x582f0cd1	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x8a74783f	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xb247a84b	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xda95c06f	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xdd969362	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x11488e5c	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x3d0e0e08	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x8adf613f	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xa844be62	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xb2768e21	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xc5499660	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xcbc58ef5	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0e6b7a1f	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x394bd16c	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x41cb37b1	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x51bb4705	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5647270a	cx88_risc_buffer
+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 0x6ece433d	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x749a5ea6	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x81cc7329	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8e15ea73	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9c50bb5a	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9e559d12	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9f0e9bc4	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa5cb6105	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa6dc09ce	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xb461a6a4	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xb480197d	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xeb2e65b6	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xeb4881cf	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xecd7fa0e	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf58a786c	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0d0668b0	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2e939c8f	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x3b490219	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x6f5d77ea	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x73df59c5	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8832f202	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x92358f3e	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9c8372a8	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa5b248a9	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xafacdbbc	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb60f0303	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb77777e1	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb79c10d4	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc4ea9106	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xcbe3b873	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xdf2e3419	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe89fcd63	ivtv_claim_stream
+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 0x21758aae	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x44c21893	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5230b044	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x68e4bb04	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7ef24a68	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x96a07d43	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9f61e88e	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa0d47168	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xb6dbaef7	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xccffb70a	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xf8e432f7	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x71e93b90	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x004be82c	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x27f8f267	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x37268e22	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4cedbe3a	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4ed666fa	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x5cba696d	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa22dd21d	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x5ccb628f	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xe6f97bf7	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0x76a119e0	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0xf5ad7949	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x202d8b1e	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xcdc32c13	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xef2e2dd4	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0xbe93e94b	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x69421806	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0xb6999f4d	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0xfd628fb1	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x15bc9cd2	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x2cf34272	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x324d7a00	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0x7a5760a4	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0xc02d0354	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0x4ad0961a	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0xfade81d1	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x45d5641f	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x4ee92cb8	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x04cdc0da	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0529dec6	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0f6b2414	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x26105f30	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x379420dc	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xacca9238	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbb4cec85	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcc33a832	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfccb9d55	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x37918dd3	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x4e0ef3aa	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x522caa8d	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x8291ccd5	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x831437b0	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x87cb5e7f	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xc10cb4d3	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x9af0e54c	af9005_rc_decode
+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 0x00d455d6	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1d9dc478	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x23cc80cb	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x47892806	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9d961a52	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9f1bf443	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa7c53105	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbe48ddfd	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd00d268c	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x45e537ee	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x4eaff68a	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x55efb49e	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x981e74aa	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x101baa67	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x19c84e9c	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1bec5bb8	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x37be5922	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x5c88ab9c	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x6aa58ed3	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xa6438de0	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe441cb91	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe483bf9f	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x205a2760	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x4c7351b4	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x6012b8e8	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x74af3daa	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x82161bb4	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9d24a86f	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xbc89e5e6	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe1aa11f4	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x0fda2c42	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x557f4ea7	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xf4bed1a2	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xce7b39eb	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xe5bc3821	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0606e6d9	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3c65c9e6	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc4f5f30d	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0600a90b	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x068b69f6	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x06a2b3b7	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x09590371	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0d2b3ec3	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x111b6e4b	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x13231afc	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1eb38d68	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x202f0b61	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2466eeac	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x249a9369	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x251700e6	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x27710885	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28016f62	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28dd242c	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2a845d7d	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30ad79ce	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3525ab5f	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x43a70329	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x45b4b5da	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x549ad19e	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x54fd5fc8	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5a51b874	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x66afd0bf	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x680d7d56	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x711f5849	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x74280cf9	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x74c0a8ab	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78cc17c1	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x881b14c7	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8953b274	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e8e30dc	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8f37e5eb	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x94dc2020	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9d9cb6fd	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab076d91	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab87f6fb	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xac31e079	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xadafed03	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xade23cf5	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb48b0834	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc201c142	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc8eec20a	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xca8e3768	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd454552c	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5019b8e	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5b9fb6a	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdb233e6b	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdec2a80f	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2afcce7	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe3200c2d	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe40ef10b	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe5ac00e9	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe6ac3f54	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe8bd29e8	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf19796f7	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf24c1f15	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf2b8586e	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf313c36b	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf65d2a37	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7c8acfe	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7d1db8c	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf8e2a999	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xffd33e7c	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x06539b96	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x14e76383	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x1c18b4e9	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x641710b5	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x77ca6a45	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x88d9a753	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc113f2a7	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd4be17ff	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xea9c5a15	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xedd5d5a0	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf3a5398a	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xfff2daf8	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0dc42120	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0fee5984	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x10bc1bca	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x16f6ebc7	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x236b360f	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2be5c917	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3a746cdc	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x464b4c0e	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x49ec5a46	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4a2417a8	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4fe67a56	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x597a0ab8	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5cb9dada	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5fdc1cf5	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x617ade37	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6eac9fcd	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8735821a	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x97b1d6d1	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x97cc67df	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9f53e6f3	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa0c5e441	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa27fccda	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa82aad15	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa9ac4054	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb0b0228d	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb1ee504c	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd573bf50	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe5b9bf92	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfe451c86	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x01d0320b	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x070de573	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x09bff398	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1fed58d9	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x25ab20d8	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2d25189f	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x363e6e9d	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3c61edc1	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x42911592	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x48ec4ddc	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4f108cd9	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5295512a	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x54a50660	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5c341071	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5e482286	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x60d01848	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xac97c408	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb8fb5812	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc25cf46e	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc35e521d	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc5d1aecb	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcb9da2c2	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcfa11a5a	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd5f6011c	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdf678c09	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf5c3d43c	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xff31195c	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x2946360b	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x425b49fd	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x569d3453	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x2e7e5ce1	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x9b0cd190	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xc4f2b1dc	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x21679c2a	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xf3517f50	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0ce3c44a	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x2ea1d444	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3a3f85c6	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6fa63f71	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7ba3c74b	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x860e90eb	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8793192d	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9884013a	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9a4e30da	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe2512e33	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe821ac17	mc13xxx_irq_unmask
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x4e9797c8	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x6655ce65	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x69836243	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7cad2c51	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd1f595e5	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xdb60aab4	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x4c8ded1c	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xadcff0f3	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x4811753b	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x1f3f1105	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x9fb36330	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0x1545cfd0	__tracepoint_mei_reg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xa5bff49d	__tracepoint_mei_pci_cfg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xb93bb2a0	__tracepoint_mei_reg_write
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0e8d8209	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2cd4ca13	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x30f9bb53	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3fb2e93d	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x40b62a4f	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4a8af0fc	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7f4ab4a6	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7fef6c20	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa7493146	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd0cb0fc0	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe75c0aa8	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf6985c08	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x09ed35f7	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x0abe86c6	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x6d428987	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xaa97f8a6	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xca46d419	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x03f2876e	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x25a485c9	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x5c081ec5	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x7108e838	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd7f88918	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xdaaa55da	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf17102c8	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x4e3352e1	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x535a0b87	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xdc10f5fc	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xf73bf60b	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xb26f3f39	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x25acb9ea	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x1f81dec6	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x08c42fe3	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x6d7592bb	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x9b7f9113	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xaf61f1d0	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x0a2f8d23	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x7ca6bc02	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x34ff6215	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3cf9e9e1	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6f700b68	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6fb659ef	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x9db4942b	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xbfeb4e40	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xd7b7cd4a	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe0a498b3	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe62b97e1	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xeb7cf33f	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x3eb56ce5	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x99b9481a	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x008bcd80	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x20dc6240	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x3a7140e7	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4e202a75	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x54224221	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x8414feea	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x9dcadce7	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xa04d3dcf	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xa3f25ce0	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xdb115343	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x7ec73f47	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x87b450b9	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xbd0efa95	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x00639b14	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x01cc7a76	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x16c6ee50	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x199b93d4	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2b5fc588	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2db5de5d	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2fd272f6	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x37ed2620	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4270afc1	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x466a3c8e	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x46dd2cf4	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x59e32539	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5d3f1b4e	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x716764b7	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x743479b9	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x75088097	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7929fc14	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8c9b9f7b	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x93b5f55d	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x97841e86	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa0725282	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa3261b4e	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa39b98c5	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa5a0435a	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xac85b61c	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb5078eb1	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb8d0a239	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbc2128e6	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc662a9a4	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc9d2ce2e	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcda3c343	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xda0ad4fc	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdd13ef94	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xec56ffd8	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xed3dc008	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xefb684dc	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf279db45	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf9b28b81	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x0328630d	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x217173a1	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x6568af43	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xbe6a0086	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd3bfddf5	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd424d83f	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x133f942b	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x70c767b7	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x26533303	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xeea8ce3b	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x1abe72e8	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x76775290	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x9a3e3265	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x036ad676	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x04276af3	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x046782b3	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x2b8a9d59	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x3fc7b4b1	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x4e14193f	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x7c886476	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xaa2c0410	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xc27895d4	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd6b3b5ae	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0xc3d4b909	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x26ec4758	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x29797afe	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
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+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 0x175700d6	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2a7939c8	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x31c50f00	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3ad64fbd	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x40b76ace	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4b9ae40b	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5a6f084e	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8993c126	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8f8768e2	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x98f625dd	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6f6c424	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb989e06e	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd519821b	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd58d181c	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdbd5e0bc	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xefcf3abc	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x020f179f	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0c5cb793	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0d251c6c	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x127bd231	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17978776	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x18e44da2	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x191ef1b8	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x21f51bf6	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x354a5ea8	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x364d8496	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x452ee46e	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4fcc3dae	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5c7b5fb0	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5ceddcbf	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5f569b55	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6236a4f2	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x635d3586	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68754321	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7294fea6	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74e13f71	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7ccf7847	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x827379da	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x858227aa	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8875b5de	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x934cd562	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x99adee8c	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x99d8fe8d	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9c85df9d	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xada6f1d3	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb61a0ff5	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb984ad9c	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbbfa8daf	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbfe1ab84	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc8fd546e	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcccd67d2	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd52783ed	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd7de142d	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xda748166	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe2819cbd	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe662bda9	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe7ebd8d7	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb27c0a9	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf37111a6	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfe9e27e7	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x052c4743	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x27badf42	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x40e3d7cd	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4e83eef7	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x5f9aa579	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcbc135c2	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xe9b3d938	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x2eef03ba	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x30b871d6	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x40004cf7	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x5b551b6b	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x67aa34c4	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf64f2adb	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xf0da3c25	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xf0e5724e	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x18ef689d	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x211fc6d2	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x4cca558b	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x4e6ac484	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x048dd666	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x090d2e67	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a05e04b	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fa5d4dc	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10079f23	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11cc6567	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18f20724	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ff07894	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x233aa1a0	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x234e0858	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23f01de9	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28d97f3f	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32d19062	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35810362	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35e9b80e	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3abc9423	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b52485b	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d455236	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40ef80e0	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x456896c8	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47b167b5	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52294904	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56181f06	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e447837	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72232c28	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a11328a	mlx4_gen_guid_change_eqe
+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 0x82929f5d	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x881af864	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a0acaea	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x918465a2	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa515985e	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8009fb8	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9eb41c8	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc41f3389	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb906a4e	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd0c3215	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd63f577	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd47eda04	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5646428	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdfc70ac4	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0cf44d4	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7e0928c	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8caf91c	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdcc7dcd	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03d197a4	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x050ad6f9	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0652e612	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07181acd	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x09201f80	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a13b088	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c1b7953	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c91510a	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1864fc64	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1960e728	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b819dfc	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1eb07439	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f5c9c95	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f701dca	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2094c535	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21a34c9c	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21e33eb3	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2255ce27	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x233edffc	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x249aa0e0	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26bbabd5	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28ce52ed	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x295cb729	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2965eebd	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b214901	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b8dc1dc	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e40b42d	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x301e4ea7	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x316e62f6	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38dccfb2	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a18a78e	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e06918d	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f964582	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40d247c4	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4604ced8	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48e162b0	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c641345	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4faef8d5	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x526d3351	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bb34c03	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c135146	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cec6f1d	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60cd5f3e	mlx5_core_query_vendor_id
+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 0x6c0f0479	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6dd03a3e	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e96dc7d	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x700be2e0	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7026715e	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70ec74a8	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73372c83	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74086e60	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7496fc6d	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7547d7e3	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76f20c64	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77d7b020	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77e60ce3	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79aca3da	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79e898af	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ad25921	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7defeb7c	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fb00d69	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80811e1a	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83235a96	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8635a2b3	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x89a3e6f0	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c01d15d	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c1fa1f3	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d2ccb44	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90ceff78	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x974e95d9	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x98bcc51c	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b24c49f	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa11e22f1	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa41c863a	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab940d25	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xadbc3b31	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb04e58b7	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb270c1cd	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4f91fa3	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9fca84a	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd5be8d3	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7504ea2	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc992cbcf	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd15fa69	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd2cc8d5	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcfa697c9	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0e14468	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1b26fa8	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3652ca4	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6630847	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9212f14	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9b166d7	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdba89c39	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xddcd39ce	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdea76c09	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe114ceef	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3688ded	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3aaaa51	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4a75898	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8c5741a	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe97e3e07	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeab2e862	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebaff9f9	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee02fd73	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2ef5f86	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4713a97	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4ce0327	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x1e851187	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x03548e32	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x13a0271d	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+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 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x22aaf232	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x24db65d7	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2f469c3e	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x48a6aebe	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5b87b096	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+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 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6eb40508	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6f696e81	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75ad5f92	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e3b38fb	mlxsw_core_port_devlink_port_get
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa303e5ec	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc19e35d1	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcdeb4d20	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xda4d3e45	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe00b22bf	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xa866e9f0	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xfffbb53c	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xa4879da8	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xfc0b6b2f	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x11c1698b	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x1456abfb	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x1643e397	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x1cce9795	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x598a7938	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x6ace5d7d	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x6ec8a49d	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x79c016a6	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x93e88dd7	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xbb2bf1eb	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd14210d0	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xec8f2d39	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfb5f2243	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4b4d1d22	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x66a2f14c	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x71820e8c	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x86a16ec1	qed_get_iscsi_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/qede/qede 0x43608ed5	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xb8b99bb6	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x36f524c1	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x4a1621e2	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x4b47df8c	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x59b513c5	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xd5849a5e	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x071a4cde	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x144f1931	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0x25e5b71e	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x29166b84	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x5707a58b	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x762abca3	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x9865923e	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0xa0d3db5a	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/mii 0xa1933394	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xd7c9ac21	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x6eb26b31	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x9a6a2def	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xa96d512a	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x00776753	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xdbe90351	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x195d9f43	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x1c8ef848	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x20f28cec	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xb38385c8	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x00620766	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x09c62ed0	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x5f846a7b	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x6192fb26	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x731d93fb	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x973c9837	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xa464ac70	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xac0f1721	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xce52f711	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xabdd9085	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xc2ca4b64	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xcb76773a	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x002eb288	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x29d9ccee	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x2b2bfd60	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3a253546	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3d598b14	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x64754e2d	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xaeb96370	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xce4cdcc7	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xe2cee89b	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf598472c	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x0e465388	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x208d078b	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x36d017a0	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x43ae35aa	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x47d1ad91	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4ac170c5	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa858703a	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd1b0674e	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe0a1caf4	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe6b987de	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe87d44c0	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf028e2ad	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf5ec7213	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x033ceb80	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0fb3961b	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x11b36785	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1358ffac	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x13739930	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x14861b35	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x190cfd33	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1a7ac205	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2238c53a	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x284f6dea	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x28d1ce67	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x336fe928	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x35d39c45	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3a5e6f23	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4205f4dd	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4371b846	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4f9c9afd	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x51741503	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x52d02f8d	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x53f02f8f	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x545553e3	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x562ffa26	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x61f3ef4d	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x635d1d99	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x655b43f1	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x65ebf425	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x75f76571	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7990f137	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7abd92f4	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7f0a9191	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x833bf758	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8396f6d2	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x861d5e30	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8a0c88d3	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9916448d	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa569a8e4	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa6d3bf9d	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xae17aebb	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc11e9302	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc1ee075c	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc943a749	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc9ad4bf2	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcd6ee668	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcf5b64ae	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcf60b32c	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe6946744	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf54d64be	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x020648b5	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0847f523	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x47c3a47a	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6bccaf31	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7bd98fc3	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8421eada	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xaee6e0c0	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb3a9e285	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb3e239fe	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb929661e	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf1ec4d6a	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0ab9b3db	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0c72a0c4	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x31d795eb	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x37bf58a7	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x44259dd6	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x46b124b9	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5d6a4554	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x64271c04	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7087b424	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7cd2d5ef	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x81094a65	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x82921d93	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8f07959b	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9fdb63a9	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa2fa4ebc	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa47b2e87	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa904db1c	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb70cdfc9	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc917abb6	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xca0bea02	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe492d1b4	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe758365a	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf6638271	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x01d3955d	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x02d8a61a	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x03cf755e	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x03ec54f6	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x04d5ae3a	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a4609d5	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d3cc8dc	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x12e2ad03	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x136b5478	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x164b4774	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x168e8e4c	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x258fb042	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x26fe9b64	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x285457c7	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x292f3eca	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c7865a2	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2de74058	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x32a138db	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36132948	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36a09124	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36d35c29	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36dbed77	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x39ab0ef7	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x421a6766	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x42c31658	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x436c6a80	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43840cfc	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43fc373d	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x47940108	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48d0993c	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4aba3bd7	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5031da8d	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x507dc193	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x51142d74	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5155759e	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x52c9bf11	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a1d853c	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5d116e62	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5d3a8f66	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ddac9ca	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6018fb32	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6084d7c0	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x60f08457	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x61a36d05	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6772252d	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x67b532d9	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ab9deed	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c5a6217	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x72f6669d	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74d26288	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7669c92d	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x771e0556	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x79c7ae25	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c20228d	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e8d7256	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x804e0be6	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x80aac144	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x80e8131e	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x81a61a5c	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x826de11f	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a091e89	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a54de5d	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8caea4b8	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f434066	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x955cc52e	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x98d36415	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b5e706e	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b98b801	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c539036	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa128af61	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1fb4785	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2b07fd9	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa888cdd2	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xabcfdcc9	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xae5196a9	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0bcc501	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2d7c9b9	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb557b224	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7f5d6ca	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb819a42a	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbad23988	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbe98042	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcf54d5c	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd288d1d	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc073f94f	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc164bbf6	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc480b374	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5b5a747	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xca5e9695	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcadd012c	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb9ae2c9	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd25bf5d4	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7d06568	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd91a1f70	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1b209ac	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe44f9325	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5c69d4b	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7b770b6	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7fb9004	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe86cb568	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8fa6910	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xecfa5e71	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed86990d	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xee50cd3e	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfacf076c	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcf5bb3e	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe4dff68	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x220d0b03	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x74d994a5	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xdc01cf1b	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x19cf07db	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3393840d	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x38e03dad	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3f175b54	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4a29f043	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4ba4d51e	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x942c06e4	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9a382dfe	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9cddcd0d	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd43db7f0	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe7312130	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xed705f92	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xf7a9a760	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x04af6845	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x05ba10a7	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x79188ab2	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x0f3e8bce	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x11e2d3a6	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x279c9609	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2ab68e17	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x42ac82c4	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x45765842	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4b5956dd	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x64d68db8	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6e1c9f1d	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x7e1c5203	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x81661d13	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8d6da6e8	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x90c3c76b	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x949dfce7	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x97bbb19e	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9c98d59e	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd6280dcd	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe55c1919	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe7a56a56	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf1e63c3e	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x042310b8	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0cfb48f1	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0e42bb6c	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0fa23c20	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0fcd223e	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1b656ed3	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e5afc52	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1ebdc443	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x253b1be7	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x262057ec	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x26a3c7ea	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x279ea278	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2fa4da37	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2fc96e17	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32a9ed71	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x338a46c8	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x387784ac	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38ab95f0	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3c2d532a	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3c3af1de	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ce11d9a	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x40b14955	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x415b2523	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4428b64c	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4590b461	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45f0fa16	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4807b149	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4a88f490	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4b501bcd	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x516f3aa9	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x520bc38b	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5256d821	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x54b2d3b9	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5659c040	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x56f3918a	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5934c5a0	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x59d0cb00	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b4113ad	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5cd4991b	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d734e12	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62b74996	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64ad4584	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c31b344	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6dfae6fc	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6f148d41	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x738a00c7	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7bd66d27	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f51e7ff	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x824cfe10	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8264ef2a	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8291ba0a	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x84e7be86	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x909ba707	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x966e4991	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x987430ab	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99cd1724	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9b38882e	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e2b1bb4	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa14024ff	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa1688b45	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa1b8a743	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa33de4e4	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8f81d8d	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xabd753a3	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb05d60b0	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb06d4f1f	il_irq_handle_error
+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 0xb7bf1640	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7e4cdb2	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbda59253	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbe4ddad1	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbf92dd97	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc0d09132	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc29f89d4	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5e898fc	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc6155111	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc634ec8c	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc7c89091	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc95dd4d7	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd13dd7be	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd1a34544	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd28212e4	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd2cd1e4c	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd513f7fd	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda8c6080	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdedf406d	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf9c95d5	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe411488c	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xec3bfb5f	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee07851e	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf054b962	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf0ebbb34	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf41500fe	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf79158fd	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf845d858	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8e352d6	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9dd4892	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb7ff796	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xff96cc1e	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ee02ceb	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x115efda1	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2104290f	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4445d439	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x502538eb	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x54638d53	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6565ec02	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6c60981f	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6e3a8624	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7cbe3e52	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7e33e158	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x917be8ac	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9d169930	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9f6c5d1f	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa2238d0a	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb535c84a	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc95cd97b	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xca8416ed	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcb263afc	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xce47218c	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd5174ef7	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd860cc78	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe4adfe87	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xea4efe63	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xefd9017a	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x10177b0a	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x271d8b16	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x357a97ec	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x426441c5	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4ea68c22	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x51fd4160	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x5772b27c	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x577d8f70	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6ef16f9c	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xb5ab6b5f	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbdb199f4	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcb551b68	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xd56ce12d	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xdcc143c0	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf0efa30b	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xbed4c106	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x47e67865	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x07ff5ab3	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0de4fa10	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x12511563	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x16fe82b3	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x207a65ba	rtl92c_dm_init_rate_adaptive_mask
+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 0x2910124b	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x29537f6e	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x385ad47c	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4253815c	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x47fd4415	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5413cd05	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x567e307d	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x56d3961d	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x585d15e2	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x58895f63	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x65b5323d	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6622346f	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6fbff91d	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x72d11484	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x768d3375	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x78d0014c	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x79e752fd	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7b2623d5	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7c20ab86	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7e012413	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8179f168	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x88287b89	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c29d6f4	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x94c6ff74	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb1635ad5	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xba0697e2	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xba8f5ac8	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbbaffe3b	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xce8ec0a9	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd32a11a9	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe109911f	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe26fafb5	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xec6baa2d	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf21973cc	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf8aa9bb7	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfa380c93	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x407322f2	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x521beaca	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7d5e765f	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7e570e0b	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x1f5e69a8	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x47bb879d	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x556ffac7	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xc01af5b3	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x06a06130	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ac6a925	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2b9ae2b0	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e03066c	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30224b3e	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3334883e	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x53beff7e	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5e0e161a	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x64ea0add	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x66f80ecd	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6c26f3bd	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x792d7cb2	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x83a4ccb1	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8eee885a	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x902cd3e9	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9520f666	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x96ab2ae2	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa48f7012	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa5507c02	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa87e4c49	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xafaa6c6d	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb67be9fd	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbe3e39e9	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd2afc2c5	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd302a7eb	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe75e7e0d	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe7e0c90f	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed5191f2	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf58b4e79	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf62ad716	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfa964685	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfb25e6d4	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1422d286	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1d427764	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x27543832	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x303bade9	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3538198c	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3d16188e	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x92e81d90	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x97bca39f	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9f7f8878	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa406c94a	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbaa78347	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd2d473b0	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd59a2d3d	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd6f6623c	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xda8c188b	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xde6e4540	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf349e613	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x7d4138eb	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x1cd51f5a	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x6f2455fa	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xd2e591d0	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xfb3125c2	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x1042a065	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x60647748	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x92d1727c	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x1f7396e1	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xffb286b4	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x86927377	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xc31acb81	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xf2f90f90	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0xc21b967e	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x73b4fd46	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xb9d7a705	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1546bfab	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1a9142c0	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x9a2126af	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x01910533	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x356b2760	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x64943a84	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7ee59870	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x89eb2c50	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x8cfafe95	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xad76a6d6	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb6e4cd58	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xdbf85221	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf5363006	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x06f5c2cc	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0f9b0103	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1b034983	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x299b37d9	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2ea25049	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x37a1e65f	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5c61136f	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x927ef3b7	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9fb99584	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa066150d	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa7244931	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb115bad2	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc2871d00	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc846127c	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcc2ba6e2	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcf3c560e	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xda5e41ee	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe3d247dd	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1c690765	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2e873583	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2fb1738e	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x370e5127	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x3a4dd27a	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x42077173	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x52c73f3c	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5f680ac3	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x71201415	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x97084d2e	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9a3ddda9	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa83af72d	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xaa7cc576	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb3cd93ef	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdc5156ce	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe0c0245d	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xeafd8abf	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf57f76d7	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfa05acf8	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfe252464	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x37b11461	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xd72e5f1e	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x008a328d	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x065f81af	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x0a8687d5	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x1b592285	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x236ead89	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x362186e6	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x388ffe9f	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x39f73350	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x423788fc	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x4e82582a	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x56a70724	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x5d3d85b2	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x65800e4a	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x7016cf68	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x70884c63	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x70e380f8	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x7d59d62e	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x7e56be43	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x80823ef4	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x84db532c	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x8a42afc5	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x8d8e53bc	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xb0042cd4	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0xb08699a9	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb13784cd	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xb399e3a9	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb6890ec8	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xc0350f9f	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xcec4c97d	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xd00cd68e	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xd35a10bf	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xfd54167e	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x3e2d76e6	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x903371a8	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x043412a6	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1125b4f2	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x164a08ab	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x37d12980	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x4470029a	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x54050a1b	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x6969bbc3	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x7152adf6	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x717f044a	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x845b0819	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8b23c2d4	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9987163e	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xa0baa627	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xa25dfe2d	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xc0d42afe	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xcbf4e45e	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xcfd04b9c	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xe7b3b624	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x51104f99	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x5fc54bf3	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x77af9e24	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x7888c3ce	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x9e0d4c85	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xaf6051d9	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb333c9b1	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb5c05f86	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xd6a2a088	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf01f94ba	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x9461b8fe	pccard_nonstatic_ops
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0xd437a848	pccard_static_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x6fecf4b9	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x95603572	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xa0dea995	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xcde18ea4	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xaa1c36de	cros_ec_lpc_io_bytes_mec
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xc4ebc6b3	cros_ec_lpc_mec_init
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xf5c87c59	cros_ec_lpc_mec_destroy
+EXPORT_SYMBOL	 drivers/platform/x86/dcdbas 0xa75079d6	dcdbas_smi_request
+EXPORT_SYMBOL	 drivers/platform/x86/intel_punit_ipc 0x3a0b563a	intel_punit_ipc_simple_command
+EXPORT_SYMBOL	 drivers/platform/x86/sony-laptop 0xd857cac7	sony_pic_camera_command
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x5e6548da	wmi_driver_unregister
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x719b62bc	__wmi_driver_register
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x328f46c2	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x39695dae	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4fcc10c5	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5ad5d213	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72192eed	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72cdc6c5	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9579486f	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa09c22e4	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xab7bc644	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc1ef363a	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd2ddd8a8	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd91e07c7	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xf2e6ba15	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xfe7ddf73	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0xce583106	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x3d9cece0	NCR_700_intr
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xb1d47dfe	NCR_700_release
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xd9b9da83	NCR_700_detect
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x5e960f85	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x6496ae97	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x9f582447	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xe6fa5e6b	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x16615fb1	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x302a286e	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x3d63ec26	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7c1c6c61	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xabf04e2f	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xad8845cd	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xcddb0614	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xde51af25	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xe47fbd29	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xec5331f9	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xeea40b55	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x01045fb0	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0cd7aa41	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x121bc568	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x129b9e42	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x198dcc16	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x21c7c2b8	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x30bdc4db	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x30db4221	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x32cd075d	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x385c356a	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x39f26d4f	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x44c67c1a	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x453bb4cd	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x49d7b72c	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4bd9aa36	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x573bc2ed	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x58fc6a62	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x610da17f	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6626d017	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70229ec0	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70c287eb	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c9f074a	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7d0b231b	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f4d238c	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x81309a8f	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x840223ef	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8901603f	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8e78c10a	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x93b425b5	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa4e169c2	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa967401e	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xab2b100a	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaf7047a5	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb53882d1	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb5b46209	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc3d5a325	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5966047	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5ec4cb0	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xccc857a6	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcdee32c4	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd41b272c	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xddb50d6e	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0407d93	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe51761db	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xed5e3b0c	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeda70a6d	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf36ac5b1	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf98979f5	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfad4bd7e	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb6a1517	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfc1a5058	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfed4bb00	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xda28e93d	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xdacac26d	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xe29aceea	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x78f88500	mraid_mm_register_adp
+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/qla2xxx/qla2xxx 0x014963e2	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x0e73960e	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2156f664	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x408ab1f2	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x63b848cb	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x894d1008	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc5c56431	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc6a649a3	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe872de51	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xeb126de2	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf8448c7d	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf997b1d0	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x124560ec	qlogicfas408_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1f55cd70	qlogicfas408_ihandl
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x3fd8cd71	qlogicfas408_detect
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x54db32b8	qlogicfas408_host_reset
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x85948868	qlogicfas408_info
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xcee02c78	qlogicfas408_abort
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe4cfc546	qlogicfas408_disable_ints
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe76b3b20	qlogicfas408_get_chip_type
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xf2b95199	qlogicfas408_setup
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xfcc6bf79	qlogicfas408_biosparam
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0cff4089	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0fc22e9f	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xb2e2a965	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x02562229	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x145a7c47	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1e06c194	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x48522843	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x503ea020	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6d48097f	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x851d1095	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x95c57756	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb6293189	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcbb0410c	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcc01f499	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xdce84b53	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf2711f16	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf5721e1b	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf69db2f5	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xff516516	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x04803961	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x080a5f81	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1aebdaf5	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x249f221c	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x274af96f	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x33b10b0c	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3568ce6c	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x361d2df1	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4c7f28e9	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4dd4c67c	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5a9a8ead	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6014e94d	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7daf2047	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9873c9ea	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9a98bcc1	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb7379e31	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xca0bf13d	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcac99960	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd001fb04	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd0b98330	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd6c2fcf0	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd8125048	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xda2dec48	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdbae6f6e	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe434ec69	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf04ca322	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf6433628	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf68770b2	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf778367b	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x1636dcb7	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3c7db2ec	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x5b09e5f3	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa0904ae5	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xfd1f7f5f	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x6e1ac3b8	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x7e811b26	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x8044af84	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x905edb6c	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb6b875a7	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x4d6a1339	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xb32fab43	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x08f502d2	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x424428a3	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x4b939989	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x6388f96b	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xb11fbfb7	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xb7eea1d8	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xc6fa9b5c	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xce49d8cc	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xe3cf89f2	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x8bd658d0	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xc89d46c2	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x158dca36	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2a41bf44	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2e98a582	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x31fabfaf	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3aec45ec	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x54780b5c	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x58ec0298	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x64f0725e	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x7de849bb	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x941f2cca	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa4333c8b	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf3ec280f	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xfc1c46d9	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x34712074	sdw_cdns_irq
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x3a660504	sdw_cdns_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x482e23b4	cdns_reset_page_addr
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x59070db3	cdns_xfer_msg
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x7e21023e	sdw_cdns_enable_interrupt
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8b5eb1c8	sdw_cdns_exit_reset
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8e95eb09	cdns_bus_conf
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x916162e5	cdns_xfer_msg_defer
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x9606e6a2	cdns_set_sdw_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa76a6fcb	sdw_cdns_thread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc1b63550	sdw_cdns_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc825fb92	sdw_cdns_get_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xd2b18bb3	sdw_cdns_pdi_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xf8554ee6	sdw_cdns_probe
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xfc11ff64	sdw_cdns_config_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x5e07cd60	sdw_intel_exit
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0xf10d2a2f	sdw_intel_init
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1ffbb08f	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3243dfbd	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x426436a0	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4dca20f7	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6dfb16c6	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x70903f60	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x709d81aa	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7202071c	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x739e8be7	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8082548f	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8ea5fd35	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa4bb0c86	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa5c53848	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xce7d59f7	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdee2f89b	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe04e240e	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe0e87ff6	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe254670a	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf8faaab6	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfd544ed6	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x1672f9a0	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x203fe9c2	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x291b741a	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x29581c68	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x34f65d5f	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x35c96e64	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x42169e70	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4c5b9131	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa02cb187	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa615f2e8	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xaf37ecb6	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xba2c8bd5	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd89d78a0	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe6fb2d2c	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe7aade8a	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfcf428fd	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfe69c812	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xaf25892c	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0xe722d7ac	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0e83d2a1	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x23e7bbcc	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x54fcf7ca	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x652a6d9f	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x7a36d269	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8e600274	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8e88ea46	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x91e9d290	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x9412336f	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xa9e41020	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xaf6ed1e5	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xcbfcdbd8	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd50c0b06	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf10151bc	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfbb8ce1c	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x18cf4716	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x40f5301c	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x4161fba7	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x87bfecb9	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x9ed7ab3e	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xa0a5199b	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xae296b87	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd600b7e7	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xe8c7aa85	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0x29562993	b1pcmcia_delcard
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xaec3240e	b1pcmcia_addcard_m1
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xea620116	b1pcmcia_addcard_m2
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xf14bf8b1	b1pcmcia_addcard_b1
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0ac4d5ef	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0cb85663	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0d80a49b	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0ff5debb	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x13b60db8	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x16c92200	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1a33f9a5	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1bdcf59f	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2afa48b5	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2fcb43e1	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3512949c	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3614dcb9	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x36f7bf5a	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3ea7a471	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3f2c89a3	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4c10b3bf	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4d358ae2	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x55121064	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5693d8dd	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5b9adbfc	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5f590f00	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6c2e2ee5	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6f292e7d	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x76ce9404	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x771d7952	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7c32cef9	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7d137e33	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7e6c34c4	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8b75e800	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x902efbf0	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x90c68208	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x93ad0e28	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9b9a5585	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9bb169a9	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa86140ef	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb224bfe6	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb4b20fd4	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb62154c0	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc1361285	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc6ab0c95	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xca82bcf0	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd75adf32	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xea8ce03d	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee037e22	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee3412ef	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf1715e35	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf70a89c1	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf8ced0e0	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf8fea6a0	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0120500c	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x080bb1f4	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x090e9903	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0b262e40	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0d1ab4b3	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0f772f1f	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1f39221b	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x268df8ac	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x291c158f	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3b854f27	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3db9d5d4	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4a5a97c0	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4d470f6d	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x551c8b00	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5b8be042	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5ba024d3	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6005440a	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x689532c4	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x75429bf5	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x782c5fcf	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7ad8fca8	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7ea4e645	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7f397f7e	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x81657c94	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x83217546	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x84c050a8	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x862421f7	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9aeb0cbe	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9c174f41	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa13ef501	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa762c033	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xab8823ff	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xac179ebf	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaefd3580	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaf328063	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb212503f	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc0757b85	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc3009686	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc425b86f	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc528fd20	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc647e025	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd0cea5a5	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdb9db4d4	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xde76055b	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xde7a6e92	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe2bade81	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe32aea70	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe560f92f	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe6a679bb	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xedd88c9f	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf3366cda	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf48b0a00	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf89e233b	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x06e4008e	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x13049968	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1f4c34e4	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x205dbb92	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x241fc8b2	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x264b2cb2	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x28ab3919	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x30add558	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x31afda57	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x39d56001	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3c286034	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x417e424a	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x46b29490	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4aafb57d	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x54008f2a	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5646833d	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5d24f56d	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6bb8292a	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7c7b2936	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7ca1a45e	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x848a84de	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8556aa96	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x863cdd9c	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8df4c5e8	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x93f32696	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa22adf79	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa738c6d5	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa94d64d5	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xaaa400e0	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xadbaa60b	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb254d6c4	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb2953cf4	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb4c71d66	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb8ff927e	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc68b73c1	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc7662949	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc79b25f0	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcd616ae4	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd0704ae5	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdfc0e09c	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe0280698	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe128508a	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe3fa71ba	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xea342ac0	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0211112e	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x05283615	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x08bf5564	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x096c4d04	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0c5c09a3	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0eeb6b47	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x11091ccd	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x13107f3a	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x139bfe14	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x15b8320e	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1901f433	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1d0c72c7	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2141213e	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x230ef11d	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2313214e	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x25043de1	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x250c2b51	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x28ce82ef	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a4f7311	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b014335	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2e72ef4b	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2efb2be3	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2ff381f1	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x363f6065	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x37a87453	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c333fe1	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c90959f	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3f883891	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4ddb67db	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x515d5883	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5c56e8ca	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6cba7e40	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6ff79510	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7621f5ab	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x77e681e6	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7858b791	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7d1469cb	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7fa3b67b	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x80884284	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x865c90e7	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8f9e829f	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8fba06e0	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9164df6f	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x945dcb74	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x94cd47d1	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9cbaf61e	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9db12122	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa0c18e0a	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa18d9c3f	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa20efd34	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9da398d	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xae583cfa	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb0b6822a	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc1106679	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc3ee0b48	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd0449a70	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd055e1c4	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd0b0e4b2	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd300c304	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd5db4c54	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdca8446a	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xde0a2951	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe13f03c5	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe681a32c	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe7a624c5	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe86dcfbf	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe8c1cfc9	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe8d63a0f	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeed81714	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf77d9643	target_execute_cmd
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x111eefed	acpi_parse_art
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x1887763e	acpi_thermal_rel_misc_device_add
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x86c998e6	acpi_thermal_rel_misc_device_remove
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d	acpi_parse_trt
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xf1eae013	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x04757a2e	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x3097d128	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2d705f70	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2fb8606c	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3d764e15	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x539bb692	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5ac34481	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x71fc1331	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7f880eab	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x90b48f70	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaadca9b0	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaafb7e97	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb1c8fda7	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb6b30bf7	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdebe15c1	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x2ca4df9b	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x505e7fa2	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0444cf43	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0d089d6c	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x250ad577	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x376e07a7	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x684db435	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x884b2402	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc7ef5393	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcffdcc48	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xea7e7712	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf4e90108	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf58527d2	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xfabab35d	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x511d83d2	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x59b8fa1e	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x2e135850	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x3c5865d4	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa2eb7bbd	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa900e1dc	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x0bc54d13	svga_settile
+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 0x39a89760	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x5732d704	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x6af383e9	svga_tilecopy
+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 0x97717fbe	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xcaed0136	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd64607f4	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x786fc710	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x64338cb9	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x77da94a9	sys_imageblit
+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 0x629a100c	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 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe4793277	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x20b31a30	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x4469abe9	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xd0f3d307	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x16d04f21	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3f751927	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x5655e924	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xc5cfc167	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x39207173	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x44e4c40b	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x409979f7	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x7ce244f9	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xce8a1a57	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xce93b256	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x07742e3a	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x93dcff07	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x4384d8cc	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x4fd92920	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x60018945	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x69270ab4	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xf762fcbe	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x8f41618f	mb862xxfb_init_accel
+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/w1/slaves/w1_ds2780 0x3dacbf8c	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x5d73691b	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x344c7cac	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x852c35f4	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x375545a9	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x70ccc39c	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x80961c16	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xde015d6b	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x04e133fc	iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x75bec08d	iTCO_vendor_pre_stop
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xc8930f32	iTCO_vendor_pre_start
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xed2a3373	iTCO_vendorsupport
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0316397a	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x05c70279	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0c3e0ba5	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0ece7854	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0f691cd6	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x197a18c7	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2f26b044	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x33fc43ca	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x36dda606	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x39a99ee4	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4809a133	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4e7cd7ad	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x544cb4de	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5488738c	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x672a2a5f	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6f21ec77	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x79c5f38a	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7b799540	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7e443ab4	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83522718	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83a85cbc	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa9499ec5	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaaf066cb	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb196a716	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb4896f53	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb6ce9e36	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc60e2b7e	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc7277eda	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcb472fda	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xddd9f965	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdeb5bdc8	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe5a8e6d3	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xec4a8276	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf009a743	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf2711125	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf3f172b8	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf6b957be	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf72f1db4	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfee28242	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x1d14734a	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2a7f71eb	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2f4f86e0	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x56fdbffd	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8490fba0	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xe1be245a	qtree_write_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x3683bb87	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xb7e4ea04	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x005c331d	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x012c6d75	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x4401cba9	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x5674edb3	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x64888d51	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x7a123e19	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/802/p8022 0x166bac3d	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x9ae111d1	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0xb961a83c	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xd12e3fe4	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x00f3bd2d	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x0dc8e8b1	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x0e14c69a	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x142bd1cd	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x20f33481	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x2132dcb8	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x2178218b	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x229c42a2	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x26f60dbf	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x27430032	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x3bedf89e	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3fde4b65	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x46a8e4fa	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x4ad1d655	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x4daebe2a	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x5037274e	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x51574a66	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x536bd958	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x6ed636dd	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x71cb21f6	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0x7ba03a90	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x83ebf436	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9da4db0d	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xa5c3d1fb	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xaa349bb8	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xad4e3f54	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xad597cb1	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xb464113a	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xbc21495d	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xc7c0cf85	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0xd3313f22	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xdaa99fe0	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0xe543ed81	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe7b220fe	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xe862578c	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xea58896b	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xed5b4ca1	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xf69ae88a	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0xfa94d059	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xfd99603f	p9_client_write
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x3998897d	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x594517ba	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x7490aa52	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xd430f124	atrtr_get_dev
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x3867398c	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x56e58a08	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x5b0506ab	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x6064e590	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x6b1cd5a4	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x6d51d507	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x74299f17	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0x833e246e	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x88771c82	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xab617314	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0xca0536f6	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xd159da79	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xf9a6142d	atm_alloc_charge
+EXPORT_SYMBOL	 net/ax25/ax25 0x040bd51a	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x0e38cbf4	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x36579a0e	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x7a3c7421	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x7ffba447	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x9792f922	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0xac7a2c66	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0xac935319	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0391bc1a	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x09ce83bd	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1404e521	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x174633df	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1aca2e2b	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2091672e	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3a541ce5	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3cddce0c	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x40aa1f93	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x46234e1b	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4feb5705	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5181a85c	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5733b636	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x57ac2964	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x58eea37c	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x59a21946	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5b47181b	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5cf46d73	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5e190cfe	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6ed50543	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6ff185c0	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7046ec28	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7a581c90	l2cap_conn_put
+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 0x7d38a36a	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7ee081b4	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9fdd57fa	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa2c7420b	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xad6b0216	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xae6a29b5	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb31a3657	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbe553c04	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbedc59c3	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc1351be6	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xca5bc759	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcba78628	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcdc70905	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd01fd02f	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd21b7fbd	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd27bf241	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdaf97eb6	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe59566d2	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf2a71114	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfb85f0dd	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfff3d272	hci_unregister_dev
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x373e7aab	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xca9bb8f7	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xdab5b0dd	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 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 0x62a7ab6d	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0x72329dc9	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x93adefba	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xd7395a8a	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0xe58631c5	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/can/can 0x236d2f1e	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x264fd2b7	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x3fb06cd1	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0x8a500c30	can_send
+EXPORT_SYMBOL	 net/can/can 0xa8c8b86f	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0xeb44f362	can_rx_register
+EXPORT_SYMBOL	 net/ceph/libceph 0x011c565c	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x01437207	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x03058ba3	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x0403905c	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x063a778b	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x08c1cc9e	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x0b8fc5ec	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x0e1774f0	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x15ffd5ce	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x160879d3	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x1842f4fa	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x1a4a1f61	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cb56090	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x1f2cdca8	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x23994bf7	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x257097a1	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x34438c2f	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x348f7692	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x38dbbd88	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b1b2a39	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x3bab34d4	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c1bb8f1	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ca2719d	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ce5f225	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x404056df	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x42004558	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x47ffdda6	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b3919b7	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x4bb93ac4	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x533a76fa	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x557ce022	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x59b7178c	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a91531a	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5ccdf3c6	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d6aa14d	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x6356570a	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x636a0c2b	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x667db069	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a50dd94	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6abf59c9	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f398ffd	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x70572d48	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x708cdd83	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x73acb91f	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x7af54bb4	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x7bfdcff8	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7de506cc	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x82d064d9	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87233679	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x880a525b	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x889b805c	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x8d4e6311	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x8d5250fe	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e9b6a21	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x8fb888cd	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x915c6320	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x94929e23	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x9569fbeb	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x9b5a5a0a	ceph_release_page_vector
+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 0x9da93d2d	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x9f2e1e26	ceph_reset_client_addr
+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 0xa10a2b93	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0xa674af2d	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa80dafd6	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xacf0c461	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xae59710d	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0xaf754c61	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb1b8c39d	ceph_monc_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 0xba1c449a	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbdda2ac9	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xbfed5133	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc4f5083c	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xc80643a6	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcb056e7a	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfbf0452	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd74ea91a	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd9e0bae9	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xda3813f3	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb658187	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfd52c14	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0xe08b8c64	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2bf61f5	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe712d9dc	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xe8cc75c6	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xeab0bebe	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xeba648d0	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xece00ee6	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xee5c9e05	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xef384bfd	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce3c3b	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce991c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0xeff63992	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf23d04bb	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf4339781	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xf6e6ffc1	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8c5852e	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa4db2f7	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb68574d	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xfcf7f0e3	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xfda447b8	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xff15c29c	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x1e3b6c47	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xe9b0e1c5	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x8c196a8d	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x9a9039f9	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x2811ef85	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x2c4c927a	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x76dcadbd	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x80428917	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xf7fb6492	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xff5c0289	wpan_phy_new
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x36eddcd7	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x3b8b99a1	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xe889c1bb	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x164e056a	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x1bb16398	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x27929f98	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x66b9a21b	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x1da8029b	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xcb2cf7c8	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xce49918b	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x31a046bf	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xc7599975	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xe2a2bb89	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x5bb298de	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xd5440e5a	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xba68eabe	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3432aff1	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x4e987bc8	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x60ef2abd	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x846534be	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x8ccbf46d	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xac4ae85e	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xaef73b40	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdd2d4df4	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xfe01666d	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x7b083aa4	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x7c64484b	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xf4fd5d1e	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x87f96880	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xf1f796ee	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x44f6fbed	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x47bfbcca	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xd1847270	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xe3deff5a	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0xc0bd295a	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x12d3b45c	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0x14af11e2	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x1dea5aa1	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x81739a69	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x9f88a4de	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xc8a56512	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xcaa05529	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xe8c95136	lapb_data_received
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x7c4f7eea	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xc2ae461b	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0xc510370b	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0xd112036f	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xe72a186c	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xec5de2cf	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0xf0ab4d46	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x000bf21b	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x005d3f51	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x06ca3844	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0bf92476	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0e615ef4	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0eec523f	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ff4b083	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x17343333	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1ee3b078	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1f40dcae	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x213260ca	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x25606008	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2752ae76	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x279ec290	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x292098bd	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x29f6bf6b	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2bfaa7f0	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ef86392	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3636049b	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x36b7720b	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x393708ac	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3c82b089	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3ff75ca4	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x40a2c9ff	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x42417173	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x43456b42	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x45511de0	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x48aecf16	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x48e653a8	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4adbfeb7	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4da45009	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x50e34d49	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x52730840	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x535ecc80	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5de86b15	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6057f822	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x60656379	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x606dfe99	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6330f6b5	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x65111feb	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6792673d	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6908f717	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6934ce9f	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6ee03dd0	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7141a128	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7822a666	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7843bd7c	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7a286eff	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7c6caa1d	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7c798405	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x84fddc06	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x86718076	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8a65e56b	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8ccd93a3	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8da6c643	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x909b8e79	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x90e3f0a2	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9883519f	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9a5e4f69	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9f5ad95d	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa0c40856	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa5e313f4	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa6239c9e	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa7a7d20c	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa9e8cc6d	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbcfc44f4	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbd76ac88	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc01643da	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc18dd35c	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc6d99518	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc730e7b3	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc78259eb	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc91c1c72	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcc43aee7	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xccaa16e9	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcd7199d9	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcdc367e5	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcdf1bd7e	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xce21b06e	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcfa8cd8a	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd81c79b0	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdfbf1016	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xea5fb2c4	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xed2490db	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xee189de2	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf0fd77ae	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf368d4b0	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf8252ad1	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf8917601	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf9338815	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfacc2eab	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfe4fa623	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x38cd4c84	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x446691ba	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x6d8866bc	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x7001225c	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x8f8747a2	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xa250f355	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb112d605	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xd9df8088	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0cbaeee1	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1136d7d7	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1d737ee8	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2961b71f	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x510056c1	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x51532a86	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x563476c1	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5babe225	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9685fb94	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa76f63f5	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa7a120dc	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbb45ece8	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd7521e6c	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf270d812	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfe3de062	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x4b68049d	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x985589a1	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x25427646	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x661cae93	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xb0d290f5	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xb6af298b	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xde5f4623	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x23c21d3a	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3003b7f9	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3965d152	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5030b7fc	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x56fc9018	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5d525a0f	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7a8900bc	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x86e46a46	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8cc5486e	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe0c4c687	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x263c2f3d	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x26ed1c53	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2af97f13	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x54644284	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x585b0761	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5a4044d8	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x718f1632	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7594844a	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7d07c7c5	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x90aedb19	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa0720685	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa5be196b	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xabd94566	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xaf118534	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xba0cdaf9	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc87ac618	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xcafe64f7	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd434dcf1	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdeb62199	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe09f5f44	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xed8d4c04	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x005daaad	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x00d6eb91	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x03acb57e	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x06839d8e	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0ff4a378	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x16a8b459	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x191184f2	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1f192740	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2e5c5c13	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x43041db7	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x51e02fb9	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5eb6838e	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6d536fe1	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x74823da2	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x74d7fbf0	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x77ad5378	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7a511dcb	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7ad9a00d	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa555b7a1	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xafeab948	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb04d353e	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb6fba1f8	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc4276f67	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xdb5daab1	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe9f75d2d	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf0fad97f	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf344d99e	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf90911a5	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfa511246	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nfc 0x105bc734	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x18cbc111	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x1cd2ff5a	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0x31f437ab	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x36d88a3a	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x36e24511	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x3fca1073	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x491d5ca5	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x49a93f04	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x5bea6f09	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x6259eae5	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x63126125	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x70f0adb1	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x7d9aa7a0	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x81a3aa12	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x9ac657b6	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0xade55a95	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xb9147b4a	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xb9800268	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xc6307e1d	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xca7840b9	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0xd045b6b2	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xd5c5e599	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xeee89300	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xfc8fed66	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x5663ec81	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x70ad9b17	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xdd9a6a60	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xf5fc369f	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x0ad53f96	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x1294b33b	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0x3a69630a	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0x506389a2	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x66b7cded	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0x788a74bd	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0xa603f043	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xb08897ed	pn_sock_unhash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x05521e55	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x13c52652	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x19d424c0	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x49874273	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x58d82990	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x686aaf15	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x79f5e448	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7debbf15	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x872faa99	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x93ccc47e	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9b875f28	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xa447695c	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xa81f5ad9	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xaa7a4298	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xab5a5912	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb46cf6e7	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xedcf15bb	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/sctp/sctp 0xbbb65545	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x07e30c56	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x32d5e444	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xe0abe199	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x126323e4	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x7878981d	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x8f8735da	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x5e54165e	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x75f8356a	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xad67a5bf	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xd7db22aa	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x05a5831c	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0xa07ee2dd	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xddbbe722	tls_register_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x65aa365f	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0x9ec7a40c	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0e4e5477	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x162400f9	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1a01824b	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1d8ac8bd	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x22ef8e8a	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2415efa3	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x282eae09	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2b3be30a	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2ce25e0f	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2e606344	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2e8181a7	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x30e53386	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x32e39ab2	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x33767902	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38eb207f	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x39a5a2c6	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bb16500	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4104f3c7	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4142eadc	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x47e66596	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4bc84a91	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4c7e76ea	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4c83ca95	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x50de251f	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x526a0343	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x52fc7ccf	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x53f28427	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5627d4d4	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5a10825d	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5a1a11e4	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5c9a254a	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5d7a0252	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5ed87195	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x60957d4b	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x61d98713	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x62dafdb7	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x636612fd	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x641c40b0	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x65a60278	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6827ebc1	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6a016486	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ac5f142	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6da350f7	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6e9be180	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6f483bce	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x77a4664c	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7a89d539	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7dffd8c1	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x81faee8e	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8336c7ed	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x83ba8bc1	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x848af2d3	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8585a3ba	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a3c7d43	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x91bf2c74	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x91c7a464	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x921ee44a	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x926db029	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x937c0597	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x97ff5251	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9874fed0	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x98ec8e65	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9ac02265	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa1da4f5c	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa4d3c898	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa4da0891	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa797f983	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb5b49603	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb73e07ad	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbab23aae	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbcaef45f	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc2635bc9	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc454ce18	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc78e90d2	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcb83b9c1	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd06b6499	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd0ce971f	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdce2f81d	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe1496720	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe3458a4d	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe54e5d45	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe9fd9983	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xea96d3d3	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf0278b44	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf18690bd	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf18c1b1f	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf3caec11	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf4a29cb9	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf50ac712	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf70c8de5	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfb4741c5	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xff7d5655	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/lib80211 0x03a4a44d	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x0486326b	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0x18b21979	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x2cd665ff	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x462c3f9e	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc042327c	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 sound/ac97_bus 0xe37615e7	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0xf4d93a34	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3982e705	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6feb7343	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xa2fb9395	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb1e8987c	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x81092390	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x018f4fc8	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x05a0f3ed	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x07883ec3	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x0b5bc292	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x100c2ffa	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x16975ea3	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x17e64820	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1b78919a	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0x1e132b22	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x282e3cde	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x2c222945	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x38189352	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x38ced0fc	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3f032f02	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x3f06b56f	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x427502ea	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x51f73278	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x6b231de0	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x762115a7	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x86b13699	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x907f3144	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x93a34d1b	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x9c779c0a	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa8681cca	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xa87dd481	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xaad5f612	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0xade42f11	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0xb1299fdb	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb3700124	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0xbbcbc35e	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0xbc3bf992	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xbf4ad1fc	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xc3962cce	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xc3d522a9	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc5a7f953	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0xc87216fc	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xcaee5cc5	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xcd171bdd	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0xd58828eb	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0xda431384	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0xdc4cdd16	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xe44e128a	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0xe6206a8a	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0xed96213f	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xeeeed46b	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0xf4418728	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0xffe685eb	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x300e43bd	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x03bae867	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0ae19b15	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1541820f	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x16b18b46	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x16fc63da	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x19d5cdaf	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3f4d0789	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x41e00500	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4bfd4742	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4d4d4a2a	snd_pcm_release_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 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x59078621	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6529325d	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x706138cd	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x754e2265	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x75870b9a	snd_sgbuf_get_chunk_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x810800da	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8857a9ad	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8b1eb492	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9a25ba2d	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9dec5d7a	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa20d0dbb	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa33d2c66	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa3f75bfd	snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa76caadf	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb55e7a16	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb7f6baa1	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbd835ede	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc179c9a2	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5bd7ff7	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5c5a873	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5de8ddb	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcf7093e9	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd0bb535f	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd21c1a45	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd3f080e3	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd4bd7ea6	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd5e0ae0d	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd7ec8bc4	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe0ca49ff	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xeb4361b9	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf06a5466	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf50c0f12	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf82b7556	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfb42c6ed	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfd8e77f9	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x04b42741	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x060f8918	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x07c8d95b	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0da5bf9b	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2bb8a044	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x41682e2a	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4e1cdb0f	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x56fd2993	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x636ffe62	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x65273bbd	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6bdf66ad	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6d8a2a94	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x98300be7	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x9b8118bb	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa1e7f790	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa26da781	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc9c2b35c	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd7d7e74f	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xebde557d	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfcd61218	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x2b50de6d	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-timer 0x3692f8c0	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x3b59df90	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x45e1f4bf	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0x516e245c	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x5f5d9877	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x649ba352	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x6e14c954	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x94afcc34	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0xa016a427	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0xbcfffb49	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc5ee3ad7	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc89077f4	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0xf1b7a682	snd_timer_resolution
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xe32697ac	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x089a6f67	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5ab076c2	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x66b71464	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x6e96c3e8	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8195098e	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa3f45d65	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xda24323b	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe47c55e2	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe626272b	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x05933c22	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x07b2d27e	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x0ba33cab	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1e86f592	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x58a13a98	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x7d7c3e85	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x8633addc	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xbf8d5a1f	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf2481a04	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0361eff7	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x063cd616	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08144e1a	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0f3ed343	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x15f144bb	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1e0048f9	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1ed8f0de	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1f70b419	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20c25dcb	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3580b6d2	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x413f8b95	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4e9aac14	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x50a92a97	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x644e1897	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x66aee386	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6a472a32	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7694a14e	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x898c8c95	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8a8ed06a	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa1618122	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa4003e70	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbdffcf8e	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbede7323	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbf133d2c	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc3691882	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc8ab12db	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc926c18c	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd5497f9e	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe3e7b50f	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xea983ce9	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeb5e40d6	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf014e205	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x66ab4c33	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xca04bce1	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x14afeb5f	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x30cbc722	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3ac398cf	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3bcef117	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x6b8d1117	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x719cde23	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x93f6fc97	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x9b1b5c99	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x2160cb57	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x3a0b60d6	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x74fe73ed	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xba528af2	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf2ce8ad4	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf8bca700	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x5cfca43a	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xa0497e58	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xb3929879	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xbc0e53d9	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x375bd321	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x72e6a2e1	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x22f08715	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x32a50f80	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x3ce60757	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x3f92da6d	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xa8ed4240	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xc119366f	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x049433dc	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x29917947	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x76a47604	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x7ce03dec	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xd2943b57	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xe831cdc9	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x2762a978	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x37f0279b	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x436fd0e4	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x466b7e0d	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x487e19e1	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x6c30a2b9	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x7aaaabdc	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa2d2bf23	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa9d164fa	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xdd195f0c	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x08d5affd	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x29c092e7	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x37afbc05	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x42c50ec4	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x455e30de	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6625ac3e	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6727fa4c	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7093174e	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9d3c9881	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9df46b13	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa264b323	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa2c53984	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xaca7d784	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb00dc5ea	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xce6e1f58	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe579c3ac	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfad41e42	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/asihpi/snd-asihpi 0x1649ce5a	hpi_send_recv
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x282a28c7	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x320a05c2	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x496caf47	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x4ba45093	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x6eff802e	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xaaf53723	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xc26cda24	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xe0c32293	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xec2c94db	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x36664c8e	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x502b1834	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6d8c8a5d	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0a0fbf75	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1143a1e8	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x19f134a6	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1be8f994	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x22a71941	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x23a988c0	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x37121912	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f1b71d4	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f3068a6	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x651cfaf1	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7f32898e	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7ffa90a1	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x92c77219	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x934a0cf1	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x993080c9	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xaa2f8074	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbfe2267f	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd7af6d99	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd8ac2ba7	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdb1ce1ef	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf37941a1	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x10361540	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x37cbb6b9	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x8b7a412e	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xf6d7f55b	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xf8ece9b0	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x9293dcdd	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xcdeb99b6	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x41afb355	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xd650fe40	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x43c768a3	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xab46f529	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xb3c6ba00	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0xe26acaee	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x1c265d35	sof_tng_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x5e25cf8d	cht_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x81c9b7ec	sof_byt_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8639b9f0	tng_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8cca2008	sof_cht_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xaabb51a4	byt_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0cdd1ba7	hda_codec_i915_exit
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0f87b8cb	hda_codec_jack_wake_enable
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x683137cd	hda_codec_jack_check
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x8efe726f	hda_codec_i915_put
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x9ac5fa8b	hda_codec_i915_get
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xd09fdf3b	hda_codec_i915_init
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xf52a7cef	hda_codec_probe_bus
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x009f95c4	sof_cnl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x5b5be595	apl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x61cf31b7	icl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x703e1716	tgl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x755b752a	sof_apl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xacf31f39	ehl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xf4d48b52	cnl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x33e3451f	intel_ipc_pcm_params
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x6258263e	intel_pcm_close
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xbf025d81	intel_pcm_open
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xc3ecfe1a	intel_ipc_msg_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0458b3a6	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x09b38b44	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0e4cf9f5	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x155ae5d6	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x19c90b83	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1f254bde	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2413439e	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2448dc91	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x26a6e990	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3d92ad2e	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x52f35a81	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x566186a8	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5a0cf49c	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a468eab	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a7e322f	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6bf3ec90	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6c86a1e6	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x70939b75	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x75ad3743	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x78b0ac17	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7be75830	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7e7e795a	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x86d196a9	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa2ce7bba	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa5dedb8f	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xaaa012f7	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xade5b257	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb6a5500a	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb836ec0b	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbcdfc16f	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc25917d0	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc4245425	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc72dc5b3	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcbd74821	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd4fabc91	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xda8e69de	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe14e5fdf	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2959b55	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2e33dd5	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe4b0c313	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe7527bce	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xec6f15ce	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xef858e2b	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf2a3fe8d	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfd19556b	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xff8aebd0	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/xtensa/snd-sof-xtensa-dsp 0xe37b1fbb	sof_xtensa_arch_ops
+EXPORT_SYMBOL	 sound/soundcore 0x1a762953	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x268307f0	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0x30c4622c	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc9197fc2	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xdfc766ee	sound_class
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x25c0bc9a	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x40741dc0	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x85a70fd2	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xa27415ff	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xd844cad0	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xeed2e738	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x293ac667	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x34ac95ae	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x48f920c4	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x7d95566f	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x85659341	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97bb24f2	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9db98086	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xe2935f8c	snd_util_memhdr_free
+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 0x9852ad2a	__snd_usbmidi_create
+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 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x2840aaec	ssd_bm_status
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x368cfd34	ssd_unregister_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x43b8fa08	ssd_get_temperature
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x6521ab53	ssd_reset
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x6dd5c180	ssd_register_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x7418bfc6	ssd_submit_pbio
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xaff98f1d	ssd_set_otprotect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xb0525f70	ssd_get_pciaddr
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xe5a02eb9	ssd_get_label
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xf847cdde	ssd_set_wmode
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xfdc8b559	ssd_get_version
+EXPORT_SYMBOL	 vmlinux 0x0000d0e5	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0015301f	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x00271341	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x0034caf1	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x0083c66b	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x008a7abb	amd_iommu_flush_tlb
+EXPORT_SYMBOL	 vmlinux 0x00a4b044	amd_iommu_deactivate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0x00a60fa8	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x00bbc3be	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00f11160	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x00f35746	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x00fb7a32	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x0113a87f	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x0123b8d1	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x014191c1	seq_open
+EXPORT_SYMBOL	 vmlinux 0x014206de	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x014437a6	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015dd281	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bcf07a	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x01bedb8f	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01c5a667	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x01d7fef8	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x01f4dcf6	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x01f624c0	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x020d3af4	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x0211f72f	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0227e656	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x023d1b90	wrmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x024622ff	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x025a69b3	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x026b2774	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0272b6af	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02798891	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x02813361	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x02995171	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a41486	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x02a8e085	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x02b62faf	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02c43625	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x02c656b6	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL	 vmlinux 0x02d29a38	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x03327406	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x03405011	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0354f3c6	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x036449d1	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x039f6c92	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x03c7f1dd	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x03db6c15	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x03dcff2c	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x03dfd7aa	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x03ea5823	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x03fa84b9	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x0437b59a	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x0451e2fb	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x0461bdc9	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x04959d06	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0x049f42db	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x04a93777	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x04b5034f	translation_pre_enabled
+EXPORT_SYMBOL	 vmlinux 0x04c339bf	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x04c62fd7	__memset
+EXPORT_SYMBOL	 vmlinux 0x04c684ef	proc_create
+EXPORT_SYMBOL	 vmlinux 0x04d38cb2	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04eec07a	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x05104b31	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x052e4c78	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x05315950	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x053288b7	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x05442505	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x054d2b76	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x058d495d	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x05a3baec	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05b490ed	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x06052f8d	__memmove
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x060f1066	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061fa9b4	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x06362699	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x06453507	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x065b465e	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x065c3f47	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x067324a1	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x0676eca6	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x06a0413c	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06b72a93	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06daf112	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x06e38f8f	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x06ec536e	module_put
+EXPORT_SYMBOL	 vmlinux 0x06f3e3cc	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x06feec0f	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x070c6382	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x070edd5f	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x072c889a	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x073da36b	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x076a54ce	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x0771f645	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x07832624	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x0788ba4b	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x07945cf8	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x07a30b70	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07cb3618	amd_iommu_complete_ppr
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07dc7641	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x08184872	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x081ddac5	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082aa6ad	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08303ac5	x86_match_cpu
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x08424621	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x0857e5e5	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x0858aa26	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x086429cf	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x08707558	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x089cf897	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x08b57296	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x08dc2d9a	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x08e5cdda	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x08eaf0bd	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x08fd2be5	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x09108f65	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0915aa31	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x0926f9a6	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x09353033	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x093a219c	ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x0944c43f	node_states
+EXPORT_SYMBOL	 vmlinux 0x094dde9a	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x09540223	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x096d7d4a	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x0984dc88	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x0987660e	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x098dcca6	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x09bc9f61	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09df909a	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x09e59158	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x09f789f1	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2edd60	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0x0a39e34b	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x0a549339	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x0a55463d	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x0a570007	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x0a5bc343	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x0a5e72a5	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0aca8997	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0adf0e4a	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x0ae920ef	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0afe79cd	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x0b00465c	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x0b0476d0	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x0b053cec	native_write_cr4
+EXPORT_SYMBOL	 vmlinux 0x0b0a635e	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b2115d7	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b2c90a4	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b3628b1	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x0b422b14	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x0b65cf37	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b7961da	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x0b79861c	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x0b7a8281	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x0b92635c	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x0b97b08a	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0x0b9e7f04	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0bb8d8a9	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bcaf6ae	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x0bd44078	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x0bdcc210	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x0be6d647	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x0c08ca96	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c278c8c	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0c293a3a	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7ebc52	amd_iommu_domain_enable_v2
+EXPORT_SYMBOL	 vmlinux 0x0c81522f	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x0c8485e2	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x0c8c83e5	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x0c99de32	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cbaf67f	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cc9d0f8	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x0ccc15de	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0cd5f6e2	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0ce58ba8	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x0cfbc447	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d1740de	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x0d19b223	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x0d214d73	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x0d3f1f56	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x0d47b489	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d5f9d1a	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d70394c	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x0d7c2aff	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x0d894a72	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x0d8b7ded	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x0d9db472	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x0dcb311c	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x0dced39b	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x0dd8b280	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x0ddd278e	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x0e062565	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x0e15db80	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e23b37f	alloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x0e2ab420	has_capability
+EXPORT_SYMBOL	 vmlinux 0x0e319797	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x0e385f6e	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x0e3f6361	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x0e589d99	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x0e629373	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e8307a7	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x0e9f91c2	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x0eacf019	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x0eb7eea1	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ecdc1a1	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x0ede9b14	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x0ee4b7bc	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x0f01f31e	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x0f05c7b8	__x86_indirect_thunk_r15
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f0ad876	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x0f24999c	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x0f2db8c6	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f81acfe	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f93e9e7	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd4b628	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0ff0d703	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x0ff80f59	zalloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x10141d95	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x1016d98f	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x10219565	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x102d886b	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x1049be00	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x10b12ccf	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x10b9dac8	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x10c022d9	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10d7310e	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10e29d8a	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x10f380ef	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x10f9ab6c	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x10fc5b2f	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x110b9cc6	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x11207ccf	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x11369346	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x113c0d16	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x116fcb80	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x119f5f69	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x11a0f742	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x11c66c3a	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x11fd308f	amd_iommu_get_v2_domain
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x1211f9ad	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x12312acd	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x123a5a6e	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x1244cdad	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x1248409d	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x124aee71	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x124e6991	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x1255cdea	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x12696c44	vga_switcheroo_unregister_client
+EXPORT_SYMBOL	 vmlinux 0x127731c9	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x12941606	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12ba23ee	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x12c293ae	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x12c941f9	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12d04c01	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12ff9906	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x130878f9	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x131fa4a7	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x1344d7e6	acpi_enable_gpe
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134ce9ff	ex_handler_clear_fs
+EXPORT_SYMBOL	 vmlinux 0x134d229d	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x134ef1d6	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x13507d90	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x1368fd5d	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x13700840	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x1371e61e	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x137f6ca8	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x1389619c	__max_die_per_package
+EXPORT_SYMBOL	 vmlinux 0x1393e722	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x1395d94f	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13a86132	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x13b38efa	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x13c14232	__free_pages
+EXPORT_SYMBOL	 vmlinux 0x13c9b2f8	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13da636d	iput
+EXPORT_SYMBOL	 vmlinux 0x13dba83c	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x13e4f64e	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0x13e74250	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x13ecd86f	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x13f29d6a	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x1419f25a	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x143f26ab	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x14439be3	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x144b7043	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x144df58a	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1464d8bb	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x14654901	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x1481bfce	kset_register
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14af64d7	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x14b33900	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x14b4c997	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x14b9bf7d	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x14bc9960	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x14c46e3b	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14d5b946	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x14db8002	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x14fa771f	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150ae92b	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x150d6f30	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x153aed8e	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x156448f9	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x158a029f	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x15b4558a	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15bfe286	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x160de0a0	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x162bcea2	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x162f69dd	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x16301b34	wrmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x163e2ee8	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x1643f886	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x165403e3	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x165b145c	ex_handler_refcount
+EXPORT_SYMBOL	 vmlinux 0x1670aac2	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x1697062a	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16b9d42c	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x16bf4900	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e91d36	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x16ea84d2	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x16ed3d7d	iunique
+EXPORT_SYMBOL	 vmlinux 0x16f53589	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x16f54b0c	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x171cfc7c	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x17254de0	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x1729a142	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x172d5fbf	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x173b04e9	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x175e33fb	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x1768485e	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x1769a490	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x17865a8c	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x179b22d8	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x179e47c3	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x17b6f84d	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x17b83c8e	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x17be68ca	acpi_clear_event
+EXPORT_SYMBOL	 vmlinux 0x17bed450	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x1810450a	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x181bf2d6	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x18218d01	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x182cfa09	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x1831b65e	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x1831ea8b	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x1835301f	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x184309a0	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x184573ad	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x1857cddd	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x185fea15	can_nice
+EXPORT_SYMBOL	 vmlinux 0x18621299	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x18656176	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x18703066	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x187a4ecd	__tracepoint_read_msr
+EXPORT_SYMBOL	 vmlinux 0x1885789b	notify_change
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188c3e47	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1890dfea	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x1897c1dd	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x18a2a7e0	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x18a5bff7	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x18c51305	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x18e480ab	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18e7eaa4	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x18f190f4	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x191995a5	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x19220733	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0x1948a377	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x195ce284	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x1967fd03	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x1977c9c3	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x197c7b0e	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x19846f29	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x198bf5c7	simple_link
+EXPORT_SYMBOL	 vmlinux 0x19954193	vga_switcheroo_fini_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x19977428	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19b36af9	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c81811	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x19df99b9	acpi_finish_gpe
+EXPORT_SYMBOL	 vmlinux 0x1a105ff4	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x1a118455	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a2ebc0e	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a46f06f	eth_header
+EXPORT_SYMBOL	 vmlinux 0x1a4fac32	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x1a53d6c2	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x1a62cced	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL	 vmlinux 0x1a66a6eb	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x1a6c83e5	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x1a7ee8f7	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1abacfa2	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x1ac44f06	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1ac87538	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x1adf2e90	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x1ae7ade3	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x1aedc4d6	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x1af31482	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b0c7f19	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x1b16447e	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x1b3f59f5	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x1b539f5d	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b59d27c	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x1b5c6d6f	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b6707d2	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b7812b5	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1b96d978	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x1b9ba621	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1baeb40e	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bb7dabc	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x1bca6c16	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x1bd44824	__put_page
+EXPORT_SYMBOL	 vmlinux 0x1bd5852d	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bdcdc6a	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x1bf3b3e1	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x1c05f025	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x1c0eeb67	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c29eb78	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x1c2bb10f	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x1c332fb1	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c3830c1	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c601f03	km_report
+EXPORT_SYMBOL	 vmlinux 0x1c6bf9ab	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x1c78a564	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x1c8ae275	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x1c96657d	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1ce83cd4	node_data
+EXPORT_SYMBOL	 vmlinux 0x1ced3b28	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x1cf81051	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d103076	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x1d1036ed	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x1d134337	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x1d19f77b	physical_mask
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d263644	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x1d2cab16	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d455dc0	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x1d613354	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x1d680f02	amd_iommu_flush_page
+EXPORT_SYMBOL	 vmlinux 0x1d92fa08	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL	 vmlinux 0x1dc75a2f	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x1dcbd687	__pte2cachemode_tbl
+EXPORT_SYMBOL	 vmlinux 0x1dcd1d4d	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x1dce6acb	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de7ac73	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x1de9f5c1	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x1df2137f	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x1df269a9	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e0fa51a	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e2ada43	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x1e2d13de	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6b4856	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e7d74e4	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x1e8c106a	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x1e9da2c8	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1eaceb58	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb6c814	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x1eb734d0	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x1eb922a3	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x1ecd91d9	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x1ed8b599	__x86_indirect_thunk_r8
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1efd5669	key_link
+EXPORT_SYMBOL	 vmlinux 0x1f33d88d	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x1f433b7d	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x1f8ea1d5	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x1fa87007	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc0cc7c	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd1fa89	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x1fd4b308	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff06dbb	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x2002feae	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x2032e75b	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x204da2f2	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x2051e91e	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x2057dd43	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207c01c5	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x2093a78f	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20ba4f3e	rdmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x20c4a6b9	f_setown
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d23aaf	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x20d42f23	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20daab78	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20f6ecc0	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x2107b48d	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x21083057	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x211130c1	alloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x21192f41	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x211b0f2f	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x21214b5a	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x2126dff9	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x213e507f	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x21400a3c	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x214e4e20	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x21758633	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x2177bd71	acpi_disable_event
+EXPORT_SYMBOL	 vmlinux 0x217ce560	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x2183411c	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2197d922	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x21baf935	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21ca8e8b	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x21d1e993	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x21dec6fa	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x21df4031	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21ea6167	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x21ee5bf0	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x21f3405f	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x21f7a7fa	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x2203d70b	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x22063602	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x2215efbe	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x2249b9da	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x224eec8b	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x225eac81	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x22778b0c	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x227b1718	tboot
+EXPORT_SYMBOL	 vmlinux 0x227fe0ab	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x228e446b	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x22a28fae	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x22ad78a4	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22ba743f	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x22de4931	amd_iommu_register_ga_log_notifier
+EXPORT_SYMBOL	 vmlinux 0x22e20f86	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x22f6f8f7	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x230379db	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x2312b175	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x23135f50	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x232d6691	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x237dd63b	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x2385d753	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x238e1f57	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x23a22130	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x23adde07	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23f73657	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x2411faa9	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x241b493b	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24232e67	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x243bc379	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x243f5fbf	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x244985e9	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246c0d07	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2474d131	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x247e3882	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x2482318f	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x24920733	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x24a4472b	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x24c298cd	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24eb03a9	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x25013f5b	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x25213dc8	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x2524e8be	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x2549b569	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x254e0093	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x2552960f	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257c1a8d	new_inode
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x258e7b5f	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x2595f8d9	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x25a31b41	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0x25a6907f	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x25db1577	do_trace_write_msr
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x26155cb2	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x261bae39	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x2629cd89	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x262e6936	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x26315bde	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263ed23b	__x86_indirect_thunk_r12
+EXPORT_SYMBOL	 vmlinux 0x264667d3	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x26727010	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x2685b971	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x268b59e0	dev_load
+EXPORT_SYMBOL	 vmlinux 0x268fc808	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x26948d96	copy_user_enhanced_fast_string
+EXPORT_SYMBOL	 vmlinux 0x2697bdb6	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x26983a6f	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x26b1277c	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x26c0a13d	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x26c2e0b5	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x26c401a2	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x26d24cb8	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x26e0b5a8	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26ed3b90	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x26efca93	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x26f60bec	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x271065f0	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x271f8d7e	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x27231062	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x276d76d4	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x279bb19c	bmap
+EXPORT_SYMBOL	 vmlinux 0x279db652	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x279ec6a3	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x27a66964	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x27a7b402	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x27a863c6	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x27aaeb29	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27cecc7f	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x27d5925e	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x27dd46f5	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x27e27e92	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x27e38c39	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x27e3e200	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x27e9a103	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x2806dd5d	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x280b03f1	kern_path
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281f5af3	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x282d595b	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x2834e37c	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x284ece79	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x286462b9	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x286666d6	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x28723a12	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287ff8a2	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x28897001	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x28944ec3	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x289f1c95	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x28b014c1	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x28b2dfa9	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x28c37085	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x28da669d	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x28dd319c	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x28e09af1	iosf_mbi_available
+EXPORT_SYMBOL	 vmlinux 0x28f6959f	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x2910db35	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x29394df7	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x293ef885	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x294d78cb	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x29528769	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x295e46cf	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x296cb8ee	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x297015ec	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x2989d872	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x2990d767	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x29aa0ecf	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x29ad8e33	x86_hyper_type
+EXPORT_SYMBOL	 vmlinux 0x29b8aedb	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x29cc71a2	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29e1ff67	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x29eb7810	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x29f66602	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x29f781a3	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x2a0a97db	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x2a1cde84	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x2a21d1ef	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x2a2a9095	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a3ea304	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0x2a48d2e4	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x2a5852a1	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x2a81c5c4	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2aaf1118	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2ae83f86	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x2aebbe01	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x2af13a6a	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x2af83411	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x2b2ba81a	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2b3db718	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b69ef0f	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x2b6debdd	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x2b795b5b	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba2209c	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x2badbd9c	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2bd86799	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x2be6b882	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x2bedbe80	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x2bef8fc8	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x2bf249de	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x2c0338de	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x2c0af4b8	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x2c2109a5	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x2c233114	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c2f3a68	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x2c45b2a2	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x2c4650d7	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c6033ea	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x2c78d407	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2ca1e7c2	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x2caf63d1	topology_phys_to_logical_die
+EXPORT_SYMBOL	 vmlinux 0x2cc1f68e	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cdd823a	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2cea4212	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cfff8a7	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x2d051d12	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d1db82b	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4653fa	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d51fc27	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x2d621b39	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x2d6281ee	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x2d652e65	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x2d714dd7	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2dab0035	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x2db10423	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x2db10a5b	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x2db2e6b4	free_task
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dbe2dd9	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL	 vmlinux 0x2e08802e	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e0f1e9a	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e327f35	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x2e329bb2	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4948d6	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x2e661a61	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x2e7484fe	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x2e7b7e3e	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x2ea2c95c	__x86_indirect_thunk_rax
+EXPORT_SYMBOL	 vmlinux 0x2ea912e9	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ec9cf44	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x2ed18966	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2ee77743	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x2eebeb49	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x2ef4377e	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x2ef9b62a	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f0a2ede	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x2f1a495c	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f379285	find_vma
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f48930a	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f55750a	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f949c4b	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x2fa213d3	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x2fad5eed	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fb872e3	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x2fbd48fc	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x2fc36001	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x2fc8de8f	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x2fc94908	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fe52fa7	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x30424008	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x30731ef5	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x3079704e	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x3080b00d	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x308b2932	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x30959972	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x3096f097	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3129b92e	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x31367afb	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x3156501a	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x3160afa2	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x3184b6ef	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x318dd202	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31a04b66	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x31a41fcb	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x31aa7200	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31b89cce	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x31ba2b20	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x31bcb489	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x31d9fe19	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x31e3c092	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x31e72e8e	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x31e7eb47	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x31ee8aa3	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x320ebf1c	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x325d1249	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x3286ffa2	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x328bb791	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x32a96d85	build_skb
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d059a3	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x33155c8c	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x3317d82e	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x331b7bbc	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x3324ef3b	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL	 vmlinux 0x33327772	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x3374957b	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x337c84fa	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x33a44ffe	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33c69991	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x33e5c9ad	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x33e9e90c	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x33fd9da4	acpi_get_gpe_device
+EXPORT_SYMBOL	 vmlinux 0x3441445f	msrs_free
+EXPORT_SYMBOL	 vmlinux 0x3441734c	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x3441b5de	filp_close
+EXPORT_SYMBOL	 vmlinux 0x344fd44f	pv_ops
+EXPORT_SYMBOL	 vmlinux 0x3453ae9f	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x3461e723	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x346909d5	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x346d383b	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x34715836	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x3477bac4	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x3482dfec	file_modified
+EXPORT_SYMBOL	 vmlinux 0x3489859f	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL	 vmlinux 0x348b2ddd	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x3495a391	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x349890ca	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34a413a4	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x34a69170	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x34acfbe7	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x34b31536	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x34bb0281	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x34cfc03e	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x34da6910	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x34e297a1	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f3cadc	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x34f89363	acpi_terminate_debugger
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x3510eb9a	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x351bc027	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x35266c71	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x352ec84d	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x353b529b	sk_free
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354b4a1e	acpi_ut_trace
+EXPORT_SYMBOL	 vmlinux 0x354e34b1	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x3577a642	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x357897e1	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x357a3002	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x3589e9fe	amd_iommu_domain_direct_map
+EXPORT_SYMBOL	 vmlinux 0x35967952	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35a9b5f6	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x35b0c881	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x35dc3501	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x35f3da76	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x35f85493	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x360c3d57	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x362b90d0	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x36357e66	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x363deeaf	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x364dee8b	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x3657e509	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3694362e	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x369b5f11	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x36a87017	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x36a9dab0	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x36af3b04	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x370b5816	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x370d96b0	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b69db4	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37bfe1d5	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x37c3bf2f	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x37c51da9	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x37c8499c	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x37cf6bd7	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x37d60b3b	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37eef0c0	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x37f74190	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x3801d1dc	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x385d20a2	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x38612cb3	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x3896c57f	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38aa9249	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x38ad3514	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x38af8d25	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x38b96816	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x38d2ecbb	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x38d839f6	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x38d95edc	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38ecb887	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x39081193	__max_logical_packages
+EXPORT_SYMBOL	 vmlinux 0x39367cae	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x39481eaa	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x395f0896	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x3965073b	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x39823cad	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x398a792f	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399a5eb4	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39a9e1b9	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39e3c030	do_trace_read_msr
+EXPORT_SYMBOL	 vmlinux 0x39e9a0cb	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x39ede69d	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x39f41819	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x39f8dc35	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2d1dfa	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a30f3f6	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x3a3212c0	clk_get
+EXPORT_SYMBOL	 vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a5943ad	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x3a74b2f1	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x3a7a95dc	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x3a828151	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ab9d1ad	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x3acd2fd0	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3aed02fd	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x3af382f4	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b029f48	acpi_install_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x3b1917eb	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b53fa7f	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x3b635839	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b702813	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x3b7a3ee8	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b83610f	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b93218e	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x3b94f940	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x3ba4b34a	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x3baa2ce7	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x3bb001c4	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x3bb7a18e	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x3bc9c040	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x3be0be24	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x3be27bd8	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x3be629a7	dqget
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bf169c8	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x3c14a596	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c427f67	cpu_die_map
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c496751	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x3c4af292	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x3c55c147	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x3c727da6	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x3c749914	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x3c7799a7	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c8699af	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x3ca8d27c	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x3cbb4e25	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x3cc0aee7	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x3cc6f2ac	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x3cc71fc0	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x3cc93d9b	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x3cd1ce18	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3cf671aa	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x3cfbf7ba	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d34a64f	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x3d3adf55	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x3d439635	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x3d46b69a	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x3d55a83a	init_net
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5a71a8	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d5ef71d	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x3d7f2cb6	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x3d825289	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x3d8f459a	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x3da0e677	cpu_tlbstate
+EXPORT_SYMBOL	 vmlinux 0x3da171f9	pci_mem_start
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dc69381	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd8f603	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddc0d3e	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x3ddc6c04	x86_bios_cpu_apicid
+EXPORT_SYMBOL	 vmlinux 0x3de1369d	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x3de1e517	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x3df3ce4d	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x3df3e69c	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dfca881	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0x3e08f41b	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x3e0ef6b7	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x3e230885	single_release
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2c605d	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x3e340616	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x3e50b100	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x3e5dc5d2	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x3e889c3a	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9b1bf1	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x3eb545a8	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x3ec881b6	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f0365d4	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f06b3c3	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x3f0d3f11	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f1a9bd6	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x3f2937a4	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x3f333757	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x3f3894d0	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x3f393e9e	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x3f3f897c	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x3f40c75b	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4b9e29	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f4de393	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x3f4f9bdd	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x3f587619	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x3f5916c0	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x3f5b0a9f	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x3f65d14f	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x3f74c2b3	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f93e703	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x3faa3b9d	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x3fb8a794	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc4d48a	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x3fd17eb5	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3fe9fbf1	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x3fec0328	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x3fef5c97	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x4034bf8a	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x404229da	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x4055a920	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x406681dd	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x406b7c9d	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x406caa46	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x40703977	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x408df070	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x4093ad62	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a65db1	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b49b5e	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x40b4f2e1	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40ca50f9	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40d9dcf7	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x40e0e042	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x40ed52d8	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x40f8338f	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x40f85f39	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x410dd4a5	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x410f4946	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x41119c45	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x412dbaf2	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x412eaf4f	pci_map_biosrom
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414912dc	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x415abe55	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x4172459d	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x41803cd4	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x4198ca95	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x41b5adfa	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x41bcafa7	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x41e0f9c8	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x41f684fb	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x42329375	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x423bcb71	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424ec06d	vga_switcheroo_init_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x4255fecb	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x426372c3	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x42764ef6	set_trace_device
+EXPORT_SYMBOL	 vmlinux 0x4291619f	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x4295440d	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42df5b7c	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x42e89160	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x42f589a9	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x4311d339	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x4327161c	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x4336e3df	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x437641c5	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x437eed1a	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43869226	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x4386f096	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x439de858	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x43a91d69	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x43b235fa	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x43bd9e92	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x43c1a807	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x43df19d9	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43f826cc	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x43fe0675	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x440db6fc	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x44191dec	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x442e7d38	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x44303a9b	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x44414ff2	iosf_mbi_unblock_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x444eb108	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x445a81ce	boot_cpu_data
+EXPORT_SYMBOL	 vmlinux 0x44658844	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x44822910	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x448d13b2	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x44902cff	acpi_enable_event
+EXPORT_SYMBOL	 vmlinux 0x44946874	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL	 vmlinux 0x44b6f301	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x44c706dc	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x44c78983	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44f088ba	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450222b8	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x45031a89	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x452cadaa	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x452f3d21	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x45616a38	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x456d35ac	read_code
+EXPORT_SYMBOL	 vmlinux 0x45719ebc	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x45790d67	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x45baf470	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x45c27a1b	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x45c75e79	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x45c7ad1b	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x45d246da	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x45d5fb7f	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x45dcdfd1	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x45e1f589	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x45e69e01	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x45e8d7b5	native_write_cr0
+EXPORT_SYMBOL	 vmlinux 0x45f187c1	vga_switcheroo_client_probe_defer
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x460cc792	release_pages
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x4629334c	__preempt_count
+EXPORT_SYMBOL	 vmlinux 0x462fa494	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x4643336c	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x464c97c2	dm_io
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x465f1dd3	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x465f3f3c	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x46787a1c	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x46924607	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46b7a3b6	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46ce3821	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x4719f511	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x471bc5c4	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x4740b3bc	xen_arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x47513e2b	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47764b91	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47aa0af2	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x47b28f94	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x47bcb55c	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x47c42a22	cpu_tss_rw
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47d43e91	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x480ef5ce	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x482fb5a5	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x483412a6	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x483baf0d	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x48476bcb	intel_gtt_insert_page
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x48519e9d	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x4873febc	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x487f334c	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x488b1193	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x488faba4	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x489f415d	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48c21436	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x48cd5806	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x48d50e79	amd_iommu_register_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x48dcdf42	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x48e29d70	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x48e3f311	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x48e74d9c	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x490256c1	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x4914ea86	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x4920e784	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x49358143	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493ef8ef	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x495e378d	__pv_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x496fefca	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x4983296e	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x498ca1fa	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x498ec468	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x499186c3	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b2c5af	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49d1d562	input_event
+EXPORT_SYMBOL	 vmlinux 0x49d515d8	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x4a30db5a	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x4a3b5e69	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a541068	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x4a6a0edd	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abd7a6c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x4ad904da	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x4ad961f9	__module_get
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4aef5bf5	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afdcc8d	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b132ebf	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x4b4bf8c0	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b78320b	sock_register
+EXPORT_SYMBOL	 vmlinux 0x4b822a6e	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x4b9f0a99	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bc99cfe	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4bd59c94	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x4bdc2e6b	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x4bdc3f38	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0x4be80e67	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf57e1e	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x4c00c583	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c0fbd45	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x4c1da24d	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x4c2b5f73	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c4134b2	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c4ecfb8	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x4c717a6b	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0x4c800ed7	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x4c83a220	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x4c9d28b0	phys_base
+EXPORT_SYMBOL	 vmlinux 0x4ca634f2	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x4cb4d3f1	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4cb580a8	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x4cb70cba	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cccc6b3	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x4cd3036f	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x4cd5bc5e	rdmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0x4ce41e5f	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x4ce9481c	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x4cea35eb	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x4ced86a1	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x4d000897	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d2d95da	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x4d53ea98	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x4d57f61d	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x4d5d3c47	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d74455b	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x4d791b8f	eisa_bus_type
+EXPORT_SYMBOL	 vmlinux 0x4d7be9cf	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x4d8ec8da	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da099e2	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dde2e60	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e0ecf27	current_task
+EXPORT_SYMBOL	 vmlinux 0x4e1a7369	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e346fd1	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e42a737	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x4e4d5209	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e5656f1	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e768480	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x4e777713	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x4e97cfad	dqput
+EXPORT_SYMBOL	 vmlinux 0x4e9ea227	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ec73b49	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x4f03a9c7	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f354f96	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x4f38cf60	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x4f440190	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x4f4e50f9	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x4f4e66d2	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x4f50beeb	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f55b689	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x4f593b03	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x4f7e588c	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x4fa230f5	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x4fa68ed6	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fc94737	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x4fcafcaa	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x4fcc8ad2	ex_handler_uaccess
+EXPORT_SYMBOL	 vmlinux 0x4fdbe8b8	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x4ffdf0e8	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5020ffcf	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x50472da3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x5048a5ef	phy_start
+EXPORT_SYMBOL	 vmlinux 0x50607954	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x50676e22	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50985887	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x509ef6b5	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a74339	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c8055d	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d04441	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x50d68377	arch_phys_wc_del
+EXPORT_SYMBOL	 vmlinux 0x50e3d332	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x50fd8a2d	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x5108feb7	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x51189a02	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x512e721f	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x5137ec9a	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x5158b97c	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x516b9e7f	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5186bc3e	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x519d548e	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x51b46621	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x51bd3a78	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51c8b9b7	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51d7915d	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x51e5fa2d	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x52079208	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5220b078	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x522a6b1b	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x5240022e	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x52444432	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x5244ddf0	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x52618594	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x526a53a6	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5275ffb5	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x528547df	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x52861430	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52aa9b85	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x52ab800f	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52e0b227	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52fd3392	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL	 vmlinux 0x532afd7a	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x53442b88	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x53569707	this_cpu_off
+EXPORT_SYMBOL	 vmlinux 0x53599f97	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x535ad43b	eisa_driver_register
+EXPORT_SYMBOL	 vmlinux 0x537baf43	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x53922981	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x539605b2	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x53968c04	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x539a207b	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x53b35688	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53cd1d32	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x541384f8	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x5413ee29	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x54175c5f	acpi_read_bit_register
+EXPORT_SYMBOL	 vmlinux 0x5422fa75	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x542688ff	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x5435c196	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x54447ddf	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x544783e9	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x545fbcee	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x546f5d3e	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x547e3344	acpi_disable
+EXPORT_SYMBOL	 vmlinux 0x549eb030	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54c16594	amd_iommu_pc_set_reg
+EXPORT_SYMBOL	 vmlinux 0x54d7b05a	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x54e1bdd0	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x54e296c0	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54e8de4b	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x54eec74a	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x54f18b13	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x54f6a242	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x5504bc54	seq_write
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550d7bdc	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x55115817	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551ed7ac	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55500e6e	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0x55621eb1	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x556422b3	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556cca46	x86_apple_machine
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55b7102f	vga_switcheroo_register_audio_client
+EXPORT_SYMBOL	 vmlinux 0x55ddb2b0	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55f95e07	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x55facd0a	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x55fdbbd9	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x566c61a0	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x569f4ef4	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x569fa195	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x56ac86df	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x56bb4d76	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56daf042	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x56de01a2	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x56e00ffd	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x56e22490	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x56e41665	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x56e546c3	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x56f257f4	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x56f9478a	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x56fcd574	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x5701e38e	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x571b1491	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x572a1fa6	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x57410700	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x5742135b	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x574a5dcc	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x576b2231	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x577cebb0	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x579e0453	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x57a551c5	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x57a83d62	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57bfd615	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x57d60660	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x57ef4775	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x58027332	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x5827e69d	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x58589fa1	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x5858a256	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x586931c2	eisa_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x586d5b70	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x587f22d7	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0x587fd2cf	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5890952a	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x589d4c21	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x58a6b2f1	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58adeb4a	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b6850a	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58bcd4ff	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x58c21e2c	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58e798ed	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x5907217d	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x59079c23	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x5908c5c7	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x590dcbd9	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x59186bb9	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x5919c91c	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x592df4d7	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x5931b166	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x593717d2	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x593c1bac	__x86_indirect_thunk_rbx
+EXPORT_SYMBOL	 vmlinux 0x59419f30	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x5955f746	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x5973eec9	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x597f54c0	native_restore_fl
+EXPORT_SYMBOL	 vmlinux 0x59959055	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59b91f2f	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x59bac7a8	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x59c0860b	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x59c564d2	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x59d0c16b	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x59da7c8f	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x59e12fd0	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a1a190e	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a2f29ab	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0x5a3baef6	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x5a3df5ae	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5a2271	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5a629faa	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a90c46c	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a9edeff	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x5aba27dc	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x5ad5a22c	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x5adcac8c	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x5ae7bf0f	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x5b1ecac8	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x5b208a6e	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x5b2370b5	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b4537ed	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b5782e7	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b6c3d7c	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x5b7271f7	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x5b74efa6	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x5bacf5aa	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x5bc69e09	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x5bcfb9b4	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x5bd22112	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bfbe281	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x5c06dd0e	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x5c108973	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x5c2a7c25	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x5c38c8e6	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x5c4232d3	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c436fc9	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x5c4525d0	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5c56498a	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x5c595376	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x5c6a385b	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x5c799d61	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x5c979fda	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x5c9ffacc	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x5cc7814e	bio_init
+EXPORT_SYMBOL	 vmlinux 0x5cd15eaa	release_sock
+EXPORT_SYMBOL	 vmlinux 0x5cdf9a56	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x5ce618e9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5ced705d	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x5cf34923	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cf974ca	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5d101db4	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x5d135d94	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x5d27635c	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d750105	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d8a4a28	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x5d8cc9cb	legacy_pic
+EXPORT_SYMBOL	 vmlinux 0x5d8d2c70	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x5daf2b8a	follow_up
+EXPORT_SYMBOL	 vmlinux 0x5de2f866	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x5de44b5b	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e0d5635	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x5e23a078	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x5e31e389	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e343ca2	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e4d3a2b	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x5e50bc07	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x5e54fb35	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e913b51	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed467ab	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ee6f74b	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x5ef32ce6	skb_append
+EXPORT_SYMBOL	 vmlinux 0x5ef5ceed	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x5ef61d40	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f06bed5	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f1f1aef	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x5f2df8bb	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x5f3606cf	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5f393d6a	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x5f3ab67a	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x5f43cd44	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x5f494eed	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x5f56663b	rdmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x5f5f1453	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x5f65e8f4	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f6c44c6	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f9e79d5	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x5fa5a906	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x5faa652c	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x5fadec82	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x5fb55c0f	set_pages_array_uc
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x60126bd9	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6038f8bd	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6045e86a	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x606831ba	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x6072d0d7	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x60836991	bdevname
+EXPORT_SYMBOL	 vmlinux 0x6085601b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x608b66a5	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x60950d63	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60a34532	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60b3bcb6	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x60d2298f	set_pages_array_wb
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60da589a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x60e626ca	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x60eac5b3	d_path
+EXPORT_SYMBOL	 vmlinux 0x60fe2eee	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0x610077c3	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x610e5e05	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x61235e44	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61324bcd	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x61471936	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x61592eac	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x616632ad	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x6186ad0b	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x6192e486	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61a96137	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x61abaf3f	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x61b22e35	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c81060	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x61e56ee8	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x61e79795	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61fc7180	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x61fd7b16	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x620bb3d9	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x620d1a7c	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x621f8347	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x6226b9fa	machine_to_phys_mapping
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6272d85b	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627c8691	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x6299f16c	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x62b5c34f	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x62b68ddb	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62cbcfe4	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x62d13c74	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x62fd0331	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x6302d801	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x6313425d	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x63307587	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x6345ab96	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x636118f4	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x636257f7	get_ibs_caps
+EXPORT_SYMBOL	 vmlinux 0x63628081	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x63644b56	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x63a53702	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c28fbc	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64108a0d	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x6412adb9	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6443aba9	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x64541da0	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x6460da9f	d_drop
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64adfb14	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x64b390fd	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x64bb7ea2	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64c7d6c9	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x64ccd7e4	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x64d002fe	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x64e27b44	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x64eb753c	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x650e73b1	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x65110491	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x6526f5c3	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x6574809e	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x658fd837	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x659bead3	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a6ac66	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x65b992ac	xen_alloc_p2m_entry
+EXPORT_SYMBOL	 vmlinux 0x65bb3a9d	pps_event
+EXPORT_SYMBOL	 vmlinux 0x65c6b7c5	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x65c81980	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d39a94	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x65d8c3a2	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65da3658	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x661dadec	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x663182c9	acpi_get_gpe_status
+EXPORT_SYMBOL	 vmlinux 0x66470213	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x665796ce	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x668b7977	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66b4e7af	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x66b9f1a0	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x66ce1691	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x66debb27	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66f69032	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x66fbeb09	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x672381d3	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x67261005	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x6736c54b	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x673e9e44	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x674249c5	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6770830f	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x6782ed50	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x6782fa86	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x67a6e679	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67cd445e	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x67e19fb5	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x67f2164c	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x67f93b4a	amd_iommu_domain_set_gcr3
+EXPORT_SYMBOL	 vmlinux 0x68142b8e	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x6831345a	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x6846ce1f	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x685152fc	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x6851664e	wrmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x68557bf1	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x685ac469	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x687a9fb7	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68ad87ba	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x68af3804	amd_iommu_pc_get_reg
+EXPORT_SYMBOL	 vmlinux 0x68b4a2d3	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x68cbecb8	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x68ea5bb7	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x68fc3165	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x69097331	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x6914fe1a	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x695ec85b	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x69843685	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL	 vmlinux 0x69963d95	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x69acdf38	memcpy
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69ad6dff	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x69adc0fa	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x69bb326b	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x69be586d	drop_super
+EXPORT_SYMBOL	 vmlinux 0x69cdab01	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69e2fbe3	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a1b274d	padata_start
+EXPORT_SYMBOL	 vmlinux 0x6a261b78	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6228eb	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x6a83d28d	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6ab34259	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x6ac3a109	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x6ac670e1	user_path_create
+EXPORT_SYMBOL	 vmlinux 0x6acb7240	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6ae3eba9	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6aef94a7	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x6b0cb28a	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x6b15b74f	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b28f834	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b30c54b	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x6b31bbb5	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x6b34d03d	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x6b43397a	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x6b45addc	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b710849	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x6b7b5416	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x6b7c9313	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x6b8135b4	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0x6b8283be	convert_art_to_tsc
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b9dbe30	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x6bc19f59	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bc624cf	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x6bc89bd4	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6c119d9c	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x6c1be67e	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c40afa6	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x6c547b88	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c893c00	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x6c95d8f0	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbca9e3	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x6ce4fb57	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x6ce6c94e	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x6cee2f98	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0x6cee703e	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x6cf068f8	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x6cf2821e	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d1f6b28	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x6d215909	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x6d27a0da	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d5c04a0	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d69dbe2	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x6d71a017	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x6d7abe02	first_ec
+EXPORT_SYMBOL	 vmlinux 0x6d7f1d6a	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x6d8dd094	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x6d96dc43	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x6d9f7d28	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x6da05497	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x6db0aa35	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x6dbbcb88	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x6dbe1555	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6dfe3f38	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e10aeca	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x6e280b50	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e3108b3	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x6e432e39	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x6e491de2	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e6076c3	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x6e6c604b	update_region
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e91588b	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x6e9b8d19	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea7575d	acpi_dispatch_gpe
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ed7d92b	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6edd984e	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x6ee66b49	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x6eecda0d	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x6f0442ec	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x6f06af72	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x6f0c0b96	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x6f13de97	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f1b6c0b	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x6f39f8e8	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f448d84	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x6f505692	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f94acf2	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x6f9c4103	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fdf55b2	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x7040fff9	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0x7044fd7c	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x704aaddf	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x704ecdc4	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x707f41bc	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70b9ee16	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0x70be1d24	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x70c58a5d	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x70cd19be	d_move
+EXPORT_SYMBOL	 vmlinux 0x70ef457c	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x70f119b0	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x70f30ce5	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x7115ee6c	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717cde5c	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x719c3074	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x719d584b	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a777eb	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x71b379a0	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x71bcc799	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x720b10b2	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x7244199b	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x724b76a7	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x7269df6c	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x7272e0a3	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x727c0bd2	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x727face4	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x7293afb7	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL	 vmlinux 0x72ac3d6f	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72c327aa	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x72de4746	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f67319	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x73259759	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x732bc663	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x734202b9	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL	 vmlinux 0x735bc48e	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73820e7f	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x73888a3f	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x73a8d939	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x73d7a771	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x73dd54eb	irq_fpu_usable
+EXPORT_SYMBOL	 vmlinux 0x73e4043c	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x73efcce6	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x73f8c0ed	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x73fe5bb3	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x74000612	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742ca5c4	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x74513cb1	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x74732533	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x74733b08	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x74816872	inet_release
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74e19e17	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x74e36210	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x750cdc5b	console_start
+EXPORT_SYMBOL	 vmlinux 0x7515672b	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x75170705	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x75207224	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x753ce1a5	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x754d539c	strlen
+EXPORT_SYMBOL	 vmlinux 0x75666c7b	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x7580fcca	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x75943e25	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0x75b4a866	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75c59bb6	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0x75cee6d3	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75d7a05e	path_put
+EXPORT_SYMBOL	 vmlinux 0x75e234db	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x75eb1486	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x75ed7c93	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x75ffb26f	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x760865a1	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x7615678b	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x76194c5f	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x761f95d5	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x763ec140	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x76422b6b	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0x7644ef6e	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x76497c35	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x764bcda6	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x765f4391	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x767dce4b	acpi_disable_all_gpes
+EXPORT_SYMBOL	 vmlinux 0x767ddb02	set_memory_wc
+EXPORT_SYMBOL	 vmlinux 0x767fffa1	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x7681a0c2	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x768dfbe7	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76aefd44	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x76b844a6	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76d89495	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x76fb08a7	amd_iommu_unregister_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x76ff31e2	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x7702aa91	simple_open
+EXPORT_SYMBOL	 vmlinux 0x7709a52c	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x770bc9eb	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x77344c39	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x77468899	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x774ca594	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x774f24a7	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x77526495	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x7765336c	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x7766f26a	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x776ac226	vga_switcheroo_register_client
+EXPORT_SYMBOL	 vmlinux 0x77999d2e	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779e3321	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x77a39461	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x77b0fed9	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77d02093	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0x77d0eceb	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77fd8147	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x77ff58c3	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x7804bbc1	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780a0dc9	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x780fdfd1	intel_enable_gtt
+EXPORT_SYMBOL	 vmlinux 0x7812c047	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x785f746e	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x787d7c35	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788f3e9f	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x789902aa	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x789d803f	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a7f1d0	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x78becaa0	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x78d5431c	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x78dea642	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e9035f	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x790bc283	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x79152375	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x79396ac7	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x7942ea96	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x79431465	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x795a7db0	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x7965add5	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x796d3d65	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a14c55	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79b434c5	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x79bad461	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x79df9633	ioremap_encrypted
+EXPORT_SYMBOL	 vmlinux 0x79dfc0cd	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x79e23f73	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x79f52d5e	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x79f7b9ca	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x79fd5f04	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a23d328	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a30412c	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a579410	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x7a88da87	iosf_mbi_write
+EXPORT_SYMBOL	 vmlinux 0x7a8df75d	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa467ff	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x7aa65898	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ac26126	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x7ac6b265	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad22a86	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ae59e28	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x7aec9089	clear_user
+EXPORT_SYMBOL	 vmlinux 0x7aff77a3	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b062849	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x7b1bb006	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b77cd6a	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7ba6a11f	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x7bb2342e	tso_start
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd2476	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x7bebc891	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x7bfacc7f	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x7c0499e2	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x7c0e0095	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c192276	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x7c1d44ed	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x7c205dec	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x7c298ef3	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7ca88f6c	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x7cadf3d7	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cceda13	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x7cd8d75e	page_offset_base
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce6b157	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d43e6eb	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5a7d0b	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x7d5acbe0	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d5f42de	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x7d628444	memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x7d70a196	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x7d765540	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x7da3c4fd	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dc31a97	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x7dcd775d	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x7dd3b66e	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x7ddb6576	init_task
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df35a3a	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x7e0453c3	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0a5c30	ex_handler_ext
+EXPORT_SYMBOL	 vmlinux 0x7e1d8420	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e51add6	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x7e526bfa	__x86_indirect_thunk_r10
+EXPORT_SYMBOL	 vmlinux 0x7e69eb60	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x7e6aa12d	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x7e7bb2a8	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x7e7bcf26	acpi_map_cpu
+EXPORT_SYMBOL	 vmlinux 0x7eb761f4	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x7ebff8c3	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ec8c897	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x7ecc38f5	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x7ee45973	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x7ef3ace2	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x7f01465a	padata_free
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f3be2d0	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x7f3dcc44	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x7f4328c4	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f66233f	md_error
+EXPORT_SYMBOL	 vmlinux 0x7f7d557e	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f87a59c	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x7fceafe5	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7ff7df1b	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x80299be8	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x80420136	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x8049d6fd	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x804af87c	wrmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x8052d750	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x8088c850	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a4ce15	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80aa8847	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x80bd9c34	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d15215	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80e12e92	proto_register
+EXPORT_SYMBOL	 vmlinux 0x80ea800a	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x81008cc4	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8113162c	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x8124e841	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x816dd96a	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x817e4b9f	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x8194a527	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x81a6e279	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x81b20a85	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81d16e5f	dns_query
+EXPORT_SYMBOL	 vmlinux 0x81d9a58e	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x822b90cd	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x822c9c2a	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x822ce7dd	arp_create
+EXPORT_SYMBOL	 vmlinux 0x823683c8	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x823c19ea	iosf_mbi_unregister_pmic_bus_access_notifier_unlocked
+EXPORT_SYMBOL	 vmlinux 0x823f84a4	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x8249208f	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x824e8a88	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x82b4967b	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x82b5556e	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x82b9eff8	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x82c7ee04	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82ee5732	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x83025150	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x8312aa47	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x831c7b5d	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x8332d20f	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x83335159	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x83386ee6	ilookup
+EXPORT_SYMBOL	 vmlinux 0x833cfb4e	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x83424675	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x834ea889	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x8370c359	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x83791c4a	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x837b53f4	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x8394ef5b	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x839819ce	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83a61ebf	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x83b1f789	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x83bd0370	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83c7c073	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x8405b589	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x8421d1f0	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x8445b4b4	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x8446bd9d	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x8457ad29	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x8460c341	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x8469b620	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x847a1ccc	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x848720be	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x848a6dfa	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x848a70c3	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x8492d5c6	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x84a88916	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x85006bcf	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x85173bfe	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x853419d3	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x8537dfba	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x8538e7a9	intel_gmch_probe
+EXPORT_SYMBOL	 vmlinux 0x854ef454	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85589edc	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8577bb8e	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x858ac0f7	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x859eb1c3	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bbd1f1	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c18288	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x85c4b83f	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x85d8e7cb	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e30649	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x860ea932	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x861477ad	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x862463ed	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x862f463c	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x86420395	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x864ae37c	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865446e0	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x8656f0d0	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x86589d64	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x866e43d4	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86aeb72f	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x86c3154e	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x86c7272b	iosf_mbi_read
+EXPORT_SYMBOL	 vmlinux 0x86d1348e	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x86d5917b	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x86ed0c40	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x86f27420	iosf_mbi_block_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x86f9614f	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x86fa4fb9	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x871ae49a	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x873784f9	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x874fcd1b	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x875bbf9e	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8766e9c5	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x878417cb	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x878c0454	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x87aa46ac	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x87b48287	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87c21c7a	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x87f0ce3a	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x881e90d4	get_cpu_entry_area
+EXPORT_SYMBOL	 vmlinux 0x8834b3c9	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x8848086a	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x884dfa41	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x8850191a	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x8880f0d8	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88825aa1	d_add
+EXPORT_SYMBOL	 vmlinux 0x8882e96c	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x8888befe	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88a3ad07	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x88a40179	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88c14c9b	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x88cf9ff8	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x88d06ef6	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x88d36da5	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88fa1455	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x890b2344	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x8933b1f3	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x89515567	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x8966c22e	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x8972213a	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x8991a5ee	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x8999be96	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x89ac3ae7	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x89b33319	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89bef060	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x89ea0d98	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x89ecc5ee	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x89fa7064	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x89fa70c8	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x8a0bd085	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a3482b8	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x8a35b432	sme_me_mask
+EXPORT_SYMBOL	 vmlinux 0x8a3e59c0	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x8a4432c0	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c7139	acpi_mask_gpe
+EXPORT_SYMBOL	 vmlinux 0x8a751680	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x8a79564a	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a8a4089	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x8a973001	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8af0bb4f	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b0fe755	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x8b142959	bdget
+EXPORT_SYMBOL	 vmlinux 0x8b152cad	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x8b1f721f	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x8b24cfae	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x8b408f54	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x8b45c76d	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x8b5603f5	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b5c5cdb	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b66e8a1	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b966b63	sn_rtc_cycles_per_second
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9aeab2	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bc42fdb	mount_single
+EXPORT_SYMBOL	 vmlinux 0x8bcd973c	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x8bd577d0	acpi_ut_exit
+EXPORT_SYMBOL	 vmlinux 0x8bd5f479	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x8bded23c	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x8be3a0db	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x8bf00fd4	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x8c103e15	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x8c249e1d	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x8c2690f4	skb_split
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c32419c	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c3f5f50	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x8c43448d	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x8c6f950c	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x8c73213f	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x8c933b57	path_get
+EXPORT_SYMBOL	 vmlinux 0x8c9b38f1	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cbe1b9c	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cd7a1a2	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8ce30f62	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x8ceccc3e	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x8d00da6c	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x8d159a07	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x8d50574c	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d58141c	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0x8d5aea08	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x8d5d38c0	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x8d612249	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x8d6b15ac	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x8d723482	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d7633f3	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8db22efe	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0x8dc716d4	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x8dd8f561	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x8dd94d68	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df1778f	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x8df7e8d6	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfcd287	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x8dfd340d	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x8e060783	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e21e927	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x8e26c7b3	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e2d1236	ex_handler_wrmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0x8e41e6fc	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x8e494f00	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8e572700	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x8e5f55f8	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e663d0f	zalloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x8e8c3df4	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x8e8e4f19	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x8e999d52	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x8ea1c2ed	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x8ed2c3fb	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x8ed500e7	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x8ede2ddb	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x8ef3bd84	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f11acde	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL	 vmlinux 0x8f30c0d5	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f38d383	ex_handler_default
+EXPORT_SYMBOL	 vmlinux 0x8f40eeaa	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x8f503cab	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x8f596b91	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x8f72fbfa	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x8f7e6e95	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x8f80bf11	acpi_install_gpe_raw_handler
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fc1417b	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x8fc3a0af	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x8fe26235	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x8fe68e90	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x900690cf	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x900ced1b	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x90a966a3	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x90b3fb6b	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x90c2e26e	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x90dacd34	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x90dea462	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x90e12c3c	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x90fefb1e	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x911d15a2	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x91462608	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9176145b	acpi_install_global_event_handler
+EXPORT_SYMBOL	 vmlinux 0x918441b6	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x9189705f	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x9191bee8	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a570db	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x91a706d0	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91af89ce	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x91b79446	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x91c1bd4f	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x91c6fa00	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x921c88bd	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923c2b18	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x924ccb49	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x924d1f2b	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9256db4c	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x92594568	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL	 vmlinux 0x928f2817	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92a51e56	acpi_debug_print_raw
+EXPORT_SYMBOL	 vmlinux 0x92ad4e30	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c1238b	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x92df67f3	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x92e939c8	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x92ea29e8	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92f1183c	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x92fca040	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x933a33ed	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x933e26f1	d_delete
+EXPORT_SYMBOL	 vmlinux 0x93600d5f	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x937bcccb	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x9385243c	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x93875ee0	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x9396699f	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c2c11f	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x93d41596	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x93e81231	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x93e979f3	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x94058e2d	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x9421314f	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944808d2	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x94567458	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x94581ee4	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x9461b775	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x94693a69	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94a97e6f	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94da1d29	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x94e38cc0	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x94eec9fd	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x950816df	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x950bb2d8	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x95144032	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x951f381e	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x95331fde	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x957c9cd2	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x959b331d	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x95a59b5f	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95bea60f	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x95d0a323	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x95d4955b	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x960ff9b7	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x9625695d	acpi_install_gpe_block
+EXPORT_SYMBOL	 vmlinux 0x9627d4d1	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x964283ef	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x964ed206	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x96519f46	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x9654983b	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x965d71de	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x966081cf	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x96608ab8	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x96794dd0	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x968cb378	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x968dfb79	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x969c318f	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x96a159db	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96ba7b77	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c85da4	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96db307e	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96e6eeb0	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x96eab78b	iosf_mbi_modify
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x96fd93ef	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x9720c5e2	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x97345062	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x97473f12	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x9754c002	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x975b1a85	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x97651e6c	vmemmap_base
+EXPORT_SYMBOL	 vmlinux 0x976593fc	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x97928ed5	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97a5b966	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x97ad4390	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c3ee79	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x97c71f2d	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x97e0d169	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x9806a3b9	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x981772b0	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x982147e4	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9867c73d	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x9875a8e1	single_open
+EXPORT_SYMBOL	 vmlinux 0x98958bea	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x98971df2	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x98a09ab9	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x98b41316	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cab2e2	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98e9170f	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x991beaf5	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x9929cf99	fget
+EXPORT_SYMBOL	 vmlinux 0x992ba0cf	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x992f9e03	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x99388cc4	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x994296f8	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x994f8b85	skb_put
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9956e5a4	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x9968327e	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x99745c63	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99aa4eff	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99db8eb8	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL	 vmlinux 0x99f38db1	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x9a07e5a6	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1eb482	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a2499a5	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x9a268b41	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x9a483c04	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a679cda	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0x9a70007e	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a87bdfa	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x9a94172e	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x9aa8783f	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x9aa94788	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9aafcc58	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x9ab1a962	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x9ac2a173	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x9ad7a582	iosf_mbi_assert_punit_acquired
+EXPORT_SYMBOL	 vmlinux 0x9adb7847	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x9aebcaae	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x9aeecba4	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x9aefa3ad	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x9afac931	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x9b2055e5	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b30e22e	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b3810e6	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b647d03	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b8245b4	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x9b9ea9be	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x9bb06e9d	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x9bc1e761	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x9bc9cb8d	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x9bce330a	logfc
+EXPORT_SYMBOL	 vmlinux 0x9bdbbc1f	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x9bef6144	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x9c0c8093	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c1555c5	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c39d9c8	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9c48574b	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x9c4c0b99	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x9c773ba3	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb986f2	vmalloc_base
+EXPORT_SYMBOL	 vmlinux 0x9cc292fb	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9cf4595a	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x9d099a39	acpi_remove_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d25d895	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x9d445c8d	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x9d466ee5	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x9d4b7b0d	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9d5fc8b4	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d62320d	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x9d70541a	native_save_fl
+EXPORT_SYMBOL	 vmlinux 0x9d871251	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x9d8ec123	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9dab94c0	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x9dbe46d3	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9de0eaae	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x9de96117	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x9df92be2	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x9e00d3bb	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0f58f3	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e325a18	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x9e3aba46	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x9e4347ea	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x9e4e1ec7	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e64fbfe	rtc_cmos_read
+EXPORT_SYMBOL	 vmlinux 0x9e683f75	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e8221dc	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x9e8a628f	amd_iommu_rlookup_table
+EXPORT_SYMBOL	 vmlinux 0x9e909a5e	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x9e941fa2	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x9e9f984f	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9eb10439	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec13e45	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed30ee6	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9ede77df	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x9ede8c16	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x9f08593e	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x9f0a95af	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x9f24cfce	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x9f2e4953	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x9f2fc0a0	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x9f3eb5f1	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4aa19d	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f6878a9	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x9f6e84b2	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x9f7143cd	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x9f8fe2a6	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fc4e421	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x9fd09383	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x9fd2868c	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x9fd8064c	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x9fd84b29	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff612e9	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0x9ffdb22a	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa023dfb9	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa031feec	nvm_register
+EXPORT_SYMBOL	 vmlinux 0xa03b55cd	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa043fa86	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xa047364b	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa04a8ab9	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xa0523efa	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa079f8c5	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa084f79f	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xa08f4229	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0xa093f9e4	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0985425	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0xa09e9de4	bio_chain
+EXPORT_SYMBOL	 vmlinux 0xa0a946e6	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b4f819	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0xa0bff28d	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0e8a52b	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f396ff	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xa0f493d9	efi
+EXPORT_SYMBOL	 vmlinux 0xa0f622e5	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0fbf6ea	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa11a07d2	skb_trim
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa13b5951	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xa14a436f	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0xa14b975c	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xa1573cf1	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xa15d8428	task_work_add
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa174bef2	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xa179d7ce	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0xa17f11d8	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xa1bedd72	amd_iommu_pc_get_max_counters
+EXPORT_SYMBOL	 vmlinux 0xa1c58ca8	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d6d169	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1f4f222	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xa1f9a134	__x86_indirect_thunk_rsi
+EXPORT_SYMBOL	 vmlinux 0xa1fa45ec	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa235af09	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xa23897c3	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xa23b9059	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0xa240f663	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa24fa43c	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xa257cd4c	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xa259f8f1	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa25e7166	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa2709425	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xa27c268b	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xa28b9224	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa29a3d0e	igrab
+EXPORT_SYMBOL	 vmlinux 0xa2b6a3ac	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xa2de16e5	fput
+EXPORT_SYMBOL	 vmlinux 0xa30c5b0d	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xa30cbda8	bio_split
+EXPORT_SYMBOL	 vmlinux 0xa31be0b1	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa3473dc3	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xa347d180	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0xa354641f	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xa371a0e9	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xa38f21b9	amd_iommu_update_ga
+EXPORT_SYMBOL	 vmlinux 0xa3a8af2b	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xa3ce97ac	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xa3cfa452	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0xa3d9ace9	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL	 vmlinux 0xa3defb5d	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xa3e4f871	acpi_initialize_debugger
+EXPORT_SYMBOL	 vmlinux 0xa3e87d6d	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xa3ed1640	dev_close
+EXPORT_SYMBOL	 vmlinux 0xa3f34020	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xa407be02	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xa408bdc7	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xa40f37ec	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4191c0b	memset_io
+EXPORT_SYMBOL	 vmlinux 0xa4271a43	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xa45786aa	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xa4687dda	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xa46a5eae	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0xa46cf0ea	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xa474c131	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xa47bc098	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4d4dd47	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4fa644f	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xa4faf62a	acpi_disable_gpe
+EXPORT_SYMBOL	 vmlinux 0xa5056338	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa507125e	acpi_clear_gpe
+EXPORT_SYMBOL	 vmlinux 0xa50bcff0	x86_cpu_to_apicid
+EXPORT_SYMBOL	 vmlinux 0xa50dfa2f	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xa5119cd5	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xa51c4bb6	vga_switcheroo_register_handler
+EXPORT_SYMBOL	 vmlinux 0xa51f3fbd	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0xa52149fb	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa546770c	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0xa54a25bb	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa568d05f	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xa5694266	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xa5788d0a	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa5abf739	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5b152aa	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xa5bed97b	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xa5c13fc4	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xa5c94c17	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xa5cb64fd	dma_ops
+EXPORT_SYMBOL	 vmlinux 0xa5cee26d	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0xa5e55057	rdmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa60d36d2	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0xa60fbeac	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa621edaf	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0xa652ba8f	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xa657b798	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xa6722b55	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xa67cb1f4	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xa681147b	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa69b0141	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa69e2f34	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xa6aae72c	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xa6b14d34	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xa6b5e5a9	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xa6cba4dc	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xa6d6c880	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0xa6dca5f6	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0xa6dd1691	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xa6df0211	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xa6eae744	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xa6ebe15d	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0xa6f32400	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xa6fec7ab	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0xa71ee596	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xa71f247c	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xa72cfb7d	ioremap_wt
+EXPORT_SYMBOL	 vmlinux 0xa72e4998	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xa72f46e0	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xa7452e16	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa75690b9	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0xa7782df8	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa78d758c	vga_get
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7a280f5	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xa7ce4d6c	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7d9f681	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xa7da875a	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7e3c834	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xa7eaafe4	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa805ecfc	acpi_release_global_lock
+EXPORT_SYMBOL	 vmlinux 0xa8095dc4	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xa80b53fe	send_sig
+EXPORT_SYMBOL	 vmlinux 0xa81198f7	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xa816a665	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa822f5b6	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xa82a3790	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa836ba02	wrmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0xa83e3693	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa8a6dab5	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8cdee9e	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xa8ddbbc0	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa901b8b9	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xa908ef45	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa9144666	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa917f3f1	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xa91f2c18	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xa932f3ad	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xa94a09bb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xa960fa4e	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa96985f8	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xa97463c9	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa9785b49	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa9889bb2	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa99d5c5a	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xa9a8e17f	arch_phys_wc_add
+EXPORT_SYMBOL	 vmlinux 0xa9ad6c9e	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xa9c72303	amd_iommu_pc_get_max_banks
+EXPORT_SYMBOL	 vmlinux 0xa9cee4c2	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xa9d31ae5	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xa9e12ea5	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa042326	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa3e21ef	misc_register
+EXPORT_SYMBOL	 vmlinux 0xaa4cc3b1	fb_is_primary_device
+EXPORT_SYMBOL	 vmlinux 0xaa5642c6	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0xaa65f8a5	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa7bc3f3	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0xaa81b46b	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xaaa0e722	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xaaa8ee25	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xaab82e3d	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0xaac6bd8e	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad7bb38	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaaed9c06	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xaafa44da	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab118707	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0xab160f9a	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xab2f8433	fb_class
+EXPORT_SYMBOL	 vmlinux 0xab2fcbe1	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab383461	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab44dc8f	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab65ed80	set_memory_uc
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab738f17	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab7b895c	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xab88f8dc	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabc9c436	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf63482	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xac05fb92	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xac0c002c	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0xac0fabe8	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2fd5d0	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac4b4de6	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac5d6eb2	mntget
+EXPORT_SYMBOL	 vmlinux 0xac5e01c6	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac7bc858	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacaf5b1e	bio_put
+EXPORT_SYMBOL	 vmlinux 0xacbf4540	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xacc27b0b	filp_open
+EXPORT_SYMBOL	 vmlinux 0xacc6d856	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacca3867	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xacd41d5e	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacea8173	acpi_debug_print
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad1036a2	amd_iommu_activate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0xad19a963	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xad2951a9	ex_handler_rdmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0xad40be8e	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xad436fa8	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xad49d9ec	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xad505de3	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xad536c91	x86_cpu_to_acpiid
+EXPORT_SYMBOL	 vmlinux 0xad5fa980	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad6dbd5c	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xad6e5905	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad780511	may_umount
+EXPORT_SYMBOL	 vmlinux 0xad78a982	vfs_create
+EXPORT_SYMBOL	 vmlinux 0xad7ec9e1	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xad7f2828	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xad801b03	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad85a8a8	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadaa8eec	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xadb12bfa	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xadd46a87	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae0a9c1d	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xae2c6d30	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0xae2f3543	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae591a48	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xae8a24fc	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xae9ade33	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xaeb14562	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xaeb87d59	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaed5c648	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0xaeeaf0fe	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xaef61fb3	submit_bh
+EXPORT_SYMBOL	 vmlinux 0xaef77b71	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xaf21c5e1	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xaf2b6fa1	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf576db2	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xaf607186	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0xaf63d9a3	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf7edb62	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0xaf8a5767	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xaf8f2a23	would_dump
+EXPORT_SYMBOL	 vmlinux 0xafa0b588	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafb0919a	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL	 vmlinux 0xafb95540	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xafc2da81	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xafd5ff2c	amd_iommu_v2_supported
+EXPORT_SYMBOL	 vmlinux 0xb018ecdc	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0xb01a9f3c	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb02f0014	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xb04ccd45	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xb05c08d9	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb0777590	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xb083f2d4	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0be3e1e	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0c83185	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e602eb	memmove
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb14459dd	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb157903e	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb17f3297	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xb1949b83	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xb19a5453	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0xb1a554e2	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1c6a003	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb246e211	acpi_register_debugger
+EXPORT_SYMBOL	 vmlinux 0xb25005d3	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xb27968e2	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb2a58cc5	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2ae60e0	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b9f71b	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2d9726a	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xb2dda794	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xb2e0d0e4	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xb2f2a430	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f3d286	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xb2f74fb6	intel_gmch_remove
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb315bfef	dump_skip
+EXPORT_SYMBOL	 vmlinux 0xb31951b4	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb3245cae	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xb32a5973	acpi_ut_status_exit
+EXPORT_SYMBOL	 vmlinux 0xb350cf2f	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb35363c8	serio_open
+EXPORT_SYMBOL	 vmlinux 0xb3583bc9	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0xb35f89db	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb37061b3	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xb3759751	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xb377e32c	put_disk
+EXPORT_SYMBOL	 vmlinux 0xb37d02dd	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0xb3863a67	acpi_set_gpe_wake_mask
+EXPORT_SYMBOL	 vmlinux 0xb3a1353a	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xb3a2dfdf	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb3af8b5e	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xb3c70946	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3e192bf	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xb3ed5b53	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb4066ba7	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xb40a75f3	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xb4122278	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb41ef938	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb42930a0	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb47830cb	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xb47cca30	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0xb48d1c7e	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a52dd0	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xb4ad7d9f	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xb4ae2df4	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xb4b5022a	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xb4cbfd27	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0xb4e955e3	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f226a3	tty_name
+EXPORT_SYMBOL	 vmlinux 0xb4fef648	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xb52dcfb5	vga_switcheroo_unlock_ddc
+EXPORT_SYMBOL	 vmlinux 0xb52dfd87	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL	 vmlinux 0xb532cd7a	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb59a948b	pid_task
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5a8cdd2	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab892d	uv_undefined
+EXPORT_SYMBOL	 vmlinux 0xb5aeb7cb	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0xb5b7902d	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xb5cb5c18	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0xb5cbf102	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xb5d07910	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xb5e4692f	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5e75bc9	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xb5f97a77	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xb5f983bf	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xb601be4c	__x86_indirect_thunk_rdx
+EXPORT_SYMBOL	 vmlinux 0xb618b65e	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb63bd09c	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xb643ac6d	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0xb6456257	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xb6478537	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xb6514869	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xb65398ab	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb665f56d	__cachemode2pte_tbl
+EXPORT_SYMBOL	 vmlinux 0xb674a534	acpi_unmap_cpu
+EXPORT_SYMBOL	 vmlinux 0xb6755205	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67a9621	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6852b38	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a2d1b6	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6ab5a02	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xb6c860e8	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xb6edac5f	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0xb6eec2dd	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0xb71e1063	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xb723f3ad	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb74b46e0	vga_switcheroo_get_client_state
+EXPORT_SYMBOL	 vmlinux 0xb7593ddc	iosf_mbi_unregister_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xb7683456	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0xb7734e3a	sock_create
+EXPORT_SYMBOL	 vmlinux 0xb776a08b	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xb7826f53	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7b0f31a	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0xb7c4482f	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d0edd0	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xb7dffeb5	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xb7e69a52	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xb8066e2c	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xb80cfbe9	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xb814e18a	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb840b5a3	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xb86f74c5	free_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0xb86fb36e	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0xb876ebe1	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0xb89b34f9	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a0b18e	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xb8a9bfc0	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8c2743d	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xb8c2987b	cdev_init
+EXPORT_SYMBOL	 vmlinux 0xb8cae2dd	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xb8e1078f	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xb8e476e2	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb90c2697	unregister_console
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb914a277	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xb933728f	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb953ee12	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xb954c818	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xb97f7045	acpi_install_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0xb9950a98	convert_art_ns_to_tsc
+EXPORT_SYMBOL	 vmlinux 0xb99f8a40	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9b1bcf0	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xb9b3e113	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xb9cf8c36	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xb9d550cd	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xb9d6c161	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0xb9df3362	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0xb9e276cf	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb9e7429c	memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9f642f0	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xb9fd22cd	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba13fa02	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xba2f4ee1	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xba2fdeb5	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba49f8c6	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xba4b7552	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xba585d41	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xba586ddf	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xba590d9d	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xba66b0f8	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xba6c035b	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xba82eca7	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xba839180	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xba846a5f	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xba89997e	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xbab05054	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xbabd8330	fget_raw
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbaf95093	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb05bd99	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xbb13595e	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xbb14fe94	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xbb1bac24	acpi_unregister_debugger
+EXPORT_SYMBOL	 vmlinux 0xbb2204d7	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb483556	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb65803a	dev_open
+EXPORT_SYMBOL	 vmlinux 0xbb8e169a	vga_switcheroo_handler_flags
+EXPORT_SYMBOL	 vmlinux 0xbba48b0d	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xbbaecba8	arp_send
+EXPORT_SYMBOL	 vmlinux 0xbbc8d566	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xbbceea87	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xbbd0bdb9	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xbbd25d7d	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0xbbe53bb9	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbea7f1b	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xbbf2452c	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0xbbf9332c	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xbbfa9cc7	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xbbfffa72	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xbc01a39a	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0xbc035d06	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc407b48	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0xbc585f51	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xbc5b02e3	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0xbc5b2d7b	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xbc5e1a42	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xbc658e51	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xbc663000	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xbc69cb27	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0xbc7e1003	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0xbc85f028	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xbca86443	seq_release
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb18740	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbccaa1ab	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xbcfd8125	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xbd00fe8d	serio_close
+EXPORT_SYMBOL	 vmlinux 0xbd1d25ec	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xbd200de5	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xbd37818c	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xbd45a4a6	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd78cfcc	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbd83ae3d	ihold
+EXPORT_SYMBOL	 vmlinux 0xbd84cd11	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0xbddcdd82	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xbdf1d48d	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xbdfb6dbb	__fentry__
+EXPORT_SYMBOL	 vmlinux 0xbe0110e7	acpi_set_gpe
+EXPORT_SYMBOL	 vmlinux 0xbe278f0b	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xbe2ae953	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0xbe34dcca	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7327be	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0xbe7a7d6e	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xbe7c470d	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe8087d0	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xbe9efa9e	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xbea0b906	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xbeb9130b	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xbec1443c	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xbecfc947	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee3b2cc	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xbeee7cd7	set_pages_wb
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbf0f1f71	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xbf3193ec	acpi_unregister_ioapic
+EXPORT_SYMBOL	 vmlinux 0xbf50cb62	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xbf5877a7	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xbf5fabc4	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xbf7d1462	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xbf977b08	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfa6c0d5	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0xbfa71562	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfdc6584	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xbfdcb43a	__x86_indirect_thunk_r11
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff503eb	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xbff5ba86	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xc0083fcb	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0xc00c1cc7	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xc017c133	sget
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc0254f83	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xc02f9176	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0xc03627f1	set_pages_uc
+EXPORT_SYMBOL	 vmlinux 0xc04d8651	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0xc06f966e	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc0823dff	dget_parent
+EXPORT_SYMBOL	 vmlinux 0xc08dfd2a	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xc0964546	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0ce686a	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0xc0d03272	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0xc0d79c76	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc10112d5	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xc10eb441	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xc111ae64	intel_gtt_get
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc1365323	acpi_enable_all_wakeup_gpes
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc15a03de	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc165a282	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc174129d	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xc19511e7	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xc1a35e35	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xc1c15d91	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0xc1c29f85	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0xc1c49827	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xc1c9bbd4	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc2107a2d	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0xc214d5cb	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc232b114	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xc23abb71	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc26a5d3e	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0xc278c965	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xc2872edb	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0xc28f9daa	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xc29957c3	__x86_indirect_thunk_rcx
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2ad0655	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0xc2b680e8	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0xc2be161a	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xc2c14f51	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc2c41ae7	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xc2d055c4	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0xc2d482a3	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xc2d555d5	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2f80653	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0xc306c250	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc3094ad3	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xc30c2ea2	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3135697	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xc320a844	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xc32a398e	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc342cbb8	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xc343ab4c	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc37a63f0	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38b3331	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc392ad4f	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xc3947256	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0xc39aa5ec	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xc3a9c18e	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3d3e82f	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0xc3dbb22c	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc3eef7e7	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc4026594	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0xc40d93ae	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc4189061	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc442db95	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xc469f900	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc48f6558	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xc498bbbe	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4b0f0c7	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xc4b30497	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0xc4ddb083	bdput
+EXPORT_SYMBOL	 vmlinux 0xc4efb392	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xc4fc4c0c	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0xc4fd0aa4	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xc50383c9	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xc505271f	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc53c710a	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xc53ef29a	register_console
+EXPORT_SYMBOL	 vmlinux 0xc54cf2ba	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc55eedf3	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc585aff1	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xc590c0f9	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a47c1c	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xc5a81e6a	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5b6fbc7	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0xc5cc3c11	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xc5d7ef3d	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5e4a5d1	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc5fdafd6	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc62005e4	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63543d5	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xc636f6a1	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc65ea421	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc6659fd9	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc666de26	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc686254b	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xc6910aa0	do_trace_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xc6a1589b	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xc6b42864	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xc6b57b85	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xc6c004f7	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6e90a61	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0xc6e97d58	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xc6f1e2f8	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xc6f27618	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xc6f29efe	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6ff4046	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xc702059f	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc716d085	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc720bff4	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xc725c71f	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xc76bec20	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xc770e151	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc789efb9	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc79d2779	module_layout
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b1893e	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7cad8f2	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7e47965	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xc7ec2c5f	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0xc7fa5b62	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xc7fc692d	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc81abf78	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc82e8b9a	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xc8319378	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0xc8473f60	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84c74b6	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xc84e3d9d	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8765efc	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc887706a	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8ad5299	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0xc8b65d06	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xc8c01f26	finish_open
+EXPORT_SYMBOL	 vmlinux 0xc8c1a826	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xc8d194ad	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xc8d46c21	get_acl
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8e81ad0	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xc8fc0cc3	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0xc90958fe	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xc90fa68d	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xc9110934	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xc91b20ca	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xc91e6ba2	file_path
+EXPORT_SYMBOL	 vmlinux 0xc91f464e	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0xc9216a82	recalibrate_cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc957a5a0	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xc95c4935	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc97f6764	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc99f2e02	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xc9b0a613	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0xc9b3fe84	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xc9d8083b	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e6a3d4	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xc9f34c1d	acpi_acquire_global_lock
+EXPORT_SYMBOL	 vmlinux 0xc9fb1470	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xc9fb7071	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0xc9fdb8ac	__brelse
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca1fc40b	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca584f8d	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0xca665ad5	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca814c7f	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xca863efc	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xcab166fe	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcad5867a	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcaee6308	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb093cd5	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xcb1c7e26	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xcb2736a8	ppp_input
+EXPORT_SYMBOL	 vmlinux 0xcb2d9583	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xcb38fc24	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb4d416f	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xcb695fee	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb8809ae	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba0d000	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba75462	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbbda884	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc4b64a	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbe7cd67	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xcbe9a964	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xcbeb4cb9	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xcbfb2e57	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc0ac805	dst_release
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc1fb781	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc4ef1c6	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc666659	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0xcc86faa4	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xcc871c7d	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0xcc9a1e28	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+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 0xcd0a61cf	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xcd14caad	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd319449	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xcd47eb68	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xcd776d49	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0xcd83a8f1	dump_align
+EXPORT_SYMBOL	 vmlinux 0xcd88eb0c	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd9e1874	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xcdacb315	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0xcdb3bddb	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd40d4a	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0xcdd6eeed	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xcde130cb	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcde807e5	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xcde99688	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xcdeb8339	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xcdedac85	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0xcdf273c8	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xce0263d5	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xce1d9e2a	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce31ef81	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xce3b418f	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xce4ca793	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce60a831	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xce63c041	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce65e5d8	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce8b1878	__x86_indirect_thunk_r14
+EXPORT_SYMBOL	 vmlinux 0xcea44986	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb9ecbd	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xcec0ddff	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xcee33c70	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xceea39b3	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcef7e391	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf057f70	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf239ad2	load_nls
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf4d33cf	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf61d50d	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xcf6885d0	kernel_write
+EXPORT_SYMBOL	 vmlinux 0xcf6b324c	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfa365f5	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xcfcd4444	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xcfcdfc4a	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0xcfdc3e71	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0xcffa541e	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xd0248935	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04d0c4e	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xd0542822	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xd0556d55	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0xd057670f	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0xd05adf32	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xd05cf5b1	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xd060c518	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd06c0dbb	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xd06e7d88	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a3d9a7	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0bd7642	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xd0e23fb0	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xd0f284b8	mmiotrace_printk
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe19ac	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd10fea72	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd14127f2	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xd157b113	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xd16acd66	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0xd16b654c	skb_push
+EXPORT_SYMBOL	 vmlinux 0xd17a5e58	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd19357e4	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19bd2e1	__tracepoint_write_msr
+EXPORT_SYMBOL	 vmlinux 0xd1b4a9ff	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xd1d15f1b	uv_hub_info_version
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1d8d568	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0xd1f05e38	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xd1f60a89	arch_io_free_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL	 vmlinux 0xd1f970d3	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xd2164628	lease_modify
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd24f92c8	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd28e1165	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0xd292472c	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd29dd5a4	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd2c802b1	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd2eb7434	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xd312524e	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xd3173440	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xd31b4316	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xd3345c2d	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xd34a11d8	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35dcdd2	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd3803096	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xd38cd261	__default_kernel_pte_mask
+EXPORT_SYMBOL	 vmlinux 0xd38fee0f	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0xd3966c7f	vga_put
+EXPORT_SYMBOL	 vmlinux 0xd3a57ee7	param_get_int
+EXPORT_SYMBOL	 vmlinux 0xd3c29029	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xd3e2d851	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3ec9bb1	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xd40037a5	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40d5bdc	__bforget
+EXPORT_SYMBOL	 vmlinux 0xd42d7a28	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xd433d0c9	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0xd451b514	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd458f217	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd476a184	stream_open
+EXPORT_SYMBOL	 vmlinux 0xd47b7d1a	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xd47c7188	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48f0823	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xd492246a	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4ecc495	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fbf30a	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xd51a9bff	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52d478c	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xd52f2b61	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd543e25e	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0xd54cf7b7	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0xd55524b7	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xd5591258	km_query
+EXPORT_SYMBOL	 vmlinux 0xd56a0a33	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xd56e3cd2	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xd56e9203	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xd577b79e	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0xd58f2473	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5bbb15c	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xd5d1ef61	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xd5d1f76f	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xd5d41b6e	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xd5dc6fec	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xd5f45f0c	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd63042b1	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd65a480e	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xd65e132d	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0xd66b7ec3	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd6896829	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd699970f	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6b129e3	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0xd6b2ed5f	generate_pm_trace
+EXPORT_SYMBOL	 vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xd6b49938	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xd6bce5ab	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ed1578	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0xd6ed37ad	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd71ce18e	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xd732ea78	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd7760084	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xd78fca66	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xd7b507bc	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xd7bbeb07	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xd7d084ab	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d450f3	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xd7d8473c	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xd7dc66ef	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0xd7deb156	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7fd9475	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xd807a602	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xd846c315	acpi_write_bit_register
+EXPORT_SYMBOL	 vmlinux 0xd854a2dd	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd885c62a	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0xd88f7015	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0xd89c97f7	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd8f885db	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd9146c96	fd_install
+EXPORT_SYMBOL	 vmlinux 0xd91705d7	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd93caaf8	block_write_end
+EXPORT_SYMBOL	 vmlinux 0xd93ec9da	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd94ac952	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0xd94c16ba	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xd94dcbb2	vga_con
+EXPORT_SYMBOL	 vmlinux 0xd9577fc1	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xd95b3d09	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xd97096c0	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0xd9709fb6	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xd971c6c4	xen_arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0xd9756fc4	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xd979a547	__x86_indirect_thunk_rdi
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd98c8a91	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9bac014	amd_iommu_device_info
+EXPORT_SYMBOL	 vmlinux 0xd9c12e3b	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e2e436	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xd9e46c2b	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xd9f3935e	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0xd9fad83f	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd9fbd2e4	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0xda1d1934	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0xda1ddef1	acpi_mark_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0xda27447f	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xda2f5716	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xda2f5a3d	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4515cf	vmap
+EXPORT_SYMBOL	 vmlinux 0xda45c8ea	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0xda6341f8	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda77dd60	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda8bb6d7	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xda9684de	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xda98968b	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xda9a5723	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdab78b67	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdacaf746	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0xdacd10ac	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0xdacf4db8	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xdad5fe87	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdb12603c	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0xdb16b170	topology_phys_to_logical_pkg
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb3f0a39	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xdb4b0815	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb55fc49	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdba780af	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xdbcccca3	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbf21278	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xdbfe9fdc	audit_log
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc344f52	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xdc3b1bb8	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5736d5	acpi_register_ioapic
+EXPORT_SYMBOL	 vmlinux 0xdc595427	seq_puts
+EXPORT_SYMBOL	 vmlinux 0xdc6bc244	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0xdc7c059d	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xdc7c1098	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0xdc861bce	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0xdcac07da	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xdcb52e1b	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0xdcca19ef	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xdccbceb6	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0xdcd0de97	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xdce25e07	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xdcfd5855	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd32d41f	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd5e5175	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd9d1d5f	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xdda994ac	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddb0be71	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0xddc28308	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xddcbe1f3	acpi_ut_value_exit
+EXPORT_SYMBOL	 vmlinux 0xddce0ebf	try_module_get
+EXPORT_SYMBOL	 vmlinux 0xdddb1800	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xddf641df	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xde225c26	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde4a3b9a	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde4eeab5	__register_nmi_handler
+EXPORT_SYMBOL	 vmlinux 0xde526fa3	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdec979f3	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xded6add8	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xdee16371	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef5a6c7	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdefbcdba	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xdefe8f15	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0xdf180bdc	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xdf2b5bb5	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf34014b	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xdf365ca9	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf397c52	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0xdf4e44cd	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf566a59	__x86_indirect_thunk_r9
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf7f1b75	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf8d781f	acpi_update_all_gpes
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf9d4b1f	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfcf88d3	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffbb32f	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe0162ba3	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xe0179f34	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe0263904	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02bd1c9	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe02db381	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xe033cb29	native_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe0712fff	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xe07539f6	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xe0790567	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe08fb697	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0a64a73	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xe0b06a67	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b37e02	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xe0b6ce42	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xe0d001ce	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0ec3cb9	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xe0f89817	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xe1018ac9	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0xe10f67ab	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xe1135c62	get_dev_data
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe1214d83	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe129e0a0	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0xe12a8723	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe13348be	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe14b9e37	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xe14c7deb	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xe1580109	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xe183fc27	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xe18c6342	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xe19eb637	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xe1a3a50c	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1a8883d	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0xe1c45452	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0xe1db8263	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e13586	dump_page
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe20cba63	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2372f26	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xe23860ed	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe2640443	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xe268de36	get_amd_iommu
+EXPORT_SYMBOL	 vmlinux 0xe26c6e82	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xe27ca7f9	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0xe2a147f6	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xe2aa7a61	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xe2b5fe3c	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0xe2b79fbd	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe2cbef70	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e3572b	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xe2e8c4e5	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe3164098	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe331a002	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe333e131	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xe345c92f	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xe34fb4b4	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xe350feac	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xe354aba1	padata_stop
+EXPORT_SYMBOL	 vmlinux 0xe35ebcf8	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0xe3695dd1	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xe39a9587	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xe3a530c9	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3a697c1	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xe3c55ee2	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0xe3ca5262	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3d857ea	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe3dd4e1f	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xe3df68c4	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f05b3a	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe3fffae9	__x86_indirect_thunk_rbp
+EXPORT_SYMBOL	 vmlinux 0xe4004761	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0xe407d8e0	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe409809f	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe410cd1a	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xe414878f	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0xe4183280	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe4492359	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xe449ed50	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xe44bd0a1	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xe46c1675	set_pages_array_wc
+EXPORT_SYMBOL	 vmlinux 0xe46f83cc	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xe4788586	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xe47bf496	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0xe480c62d	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe492332f	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe49d80a9	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xe4ad727b	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0xe4beccad	sock_release
+EXPORT_SYMBOL	 vmlinux 0xe4d4b8e9	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d80bf4	acpi_enable
+EXPORT_SYMBOL	 vmlinux 0xe4dafefa	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0xe4e6bf1c	bdi_put
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe539b480	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe59524ba	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xe59c3dc4	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0xe59d255d	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xe5a61cda	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5d50db5	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe629c80e	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xe63f0fa2	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0xe6546afd	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6953bb7	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xe6a244cb	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xe6bd274a	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0xe6c49f9c	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xe6d59bb2	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xe6e988f7	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0xe7057d14	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xe70877d4	acpi_remove_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe7278132	get_super
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe75c0467	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xe787698f	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xe78e21b7	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xe78ee22a	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7a5de66	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xe7b00dfb	__x86_indirect_thunk_r13
+EXPORT_SYMBOL	 vmlinux 0xe7b5fc92	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0xe7b6627e	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe7ceb7a9	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7f8cd3e	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xe7fa3fab	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0xe801a8f5	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xe828a619	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xe83a0803	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xe8400c3c	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe8657877	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0xe86beb53	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe8859c12	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0xe8a34c73	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xe8bd98e8	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xe8e23609	processors
+EXPORT_SYMBOL	 vmlinux 0xe8ef73c3	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe8fd8d87	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xe8feba1d	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe9498563	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe97fd7d0	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xe995928c	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xe9a5e67f	intel_graphics_stolen_res
+EXPORT_SYMBOL	 vmlinux 0xe9a8fe46	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9bb1fac	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0xe9df041d	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea16b0a0	default_llseek
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea26ccf9	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea3e8850	vga_switcheroo_lock_ddc
+EXPORT_SYMBOL	 vmlinux 0xea420990	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xea46511c	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xea4759fd	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xea511eee	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xea585dd9	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xea67d3d6	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea79fbb5	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea9d7581	done_path_create
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeabb884c	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeaf52f46	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xeaf8ef11	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xeafdf965	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb2c875a	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xeb2e4c04	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xeb31aee8	acpi_trace_point
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3840d9	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb4dcd07	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0xeb59e8c3	native_load_gs_index
+EXPORT_SYMBOL	 vmlinux 0xeb625b01	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0xeb6ecf3d	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb8b1820	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba22170	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xeba88c12	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xebaff89e	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xebb0d2e4	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xebddaad5	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xebf9f4ee	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0xebfe7242	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec4eee96	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xec55863a	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xec65001d	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xecac8407	__memcpy
+EXPORT_SYMBOL	 vmlinux 0xecb2d8ae	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xeccb93d6	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xecd04271	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xecdde88a	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecea7a6e	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed0598f3	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xed34ebbc	acpi_any_gpe_status_set
+EXPORT_SYMBOL	 vmlinux 0xed41e6b1	mntput
+EXPORT_SYMBOL	 vmlinux 0xed49f317	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xed4cdc70	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0xed4d8176	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed6a75ac	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xed8a569b	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xeda8e83c	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xeddb964f	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xede99d55	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xedf41f4c	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee3248d5	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xee579ff7	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee7a41a9	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xee7b95a1	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee7ebefd	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xee815e14	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xee85e2fd	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xee86bd09	cpu_info
+EXPORT_SYMBOL	 vmlinux 0xee8cec59	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee9380f8	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xee9a8a1c	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xee9e55a4	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xeec3d86e	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xeef09dd3	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xeef8516d	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xef056e54	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xef07b9cf	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xef1735c6	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xef2fc598	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0xef40a405	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0xef4d1fe9	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0xef61b1c9	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0xef74c8e6	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0xef82cab8	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf013d6d7	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xf0165e04	seq_path
+EXPORT_SYMBOL	 vmlinux 0xf030c7ed	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xf039960f	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xf03cb30a	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xf05c32ad	rdmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf06dac25	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xf06ec0e5	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xf07f3ef4	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xf0843adc	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0cacae4	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xf0ce7ca4	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xf0e080fb	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0xf0e1d512	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf1305cb4	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xf13e280b	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0xf1590879	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf17f67a5	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xf1848ee2	acpi_install_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf196419e	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a68107	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf1b3659d	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xf1b95c85	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xf1d0f6bb	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0xf1d9ae4e	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e72618	current_time
+EXPORT_SYMBOL	 vmlinux 0xf1e7b114	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1fecfef	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0xf20f3ef1	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf214edc0	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf23b2055	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2b81b64	arch_io_reserve_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c60548	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xf2ce4bc6	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2eab823	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xf2f6e67f	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xf2fd28ce	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf2fff24a	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xf30965ac	iosf_mbi_register_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xf3137c04	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf3196aca	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf33449c8	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xf3458b61	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf36aa100	dst_init
+EXPORT_SYMBOL	 vmlinux 0xf36c4c1e	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xf37ba947	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3a66872	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xf3ac05a2	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b61e33	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xf3cffdb9	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3e6426a	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xf401077e	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xf409fee1	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf40fa2ba	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xf41a7b98	inet_bind
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf457f4f2	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0xf46d33e4	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf48a52e7	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xf49a1942	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xf4a565fd	wrmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf4a5b4b1	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL	 vmlinux 0xf4b0a2ff	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4bc1d4a	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c76a01	start_tty
+EXPORT_SYMBOL	 vmlinux 0xf4d0b4f8	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf50177bc	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0xf50ad031	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xf53a2ce0	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5488eab	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xf549e2d0	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xf55c30a0	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xf591753d	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0xf59da5d4	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a5c84c	msrs_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5b61261	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xf5b93b99	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0xf5bb7b3b	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xf5cd161b	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf5d28a68	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xf5d660ab	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5eda937	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0xf5f33aa7	amd_iommu_enable_device_erratum
+EXPORT_SYMBOL	 vmlinux 0xf5fb0dc9	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xf6023411	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xf60ab926	acpi_get_event_status
+EXPORT_SYMBOL	 vmlinux 0xf60d1d36	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf64dcdd0	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xf66442b2	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf680183c	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf68c5eeb	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xf696585c	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0xf69e0bcd	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xf6a175b2	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xf6ab7f0a	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xf6d65599	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0xf6d9b6f6	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0xf6dc5202	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fa66fc	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf71d7fbc	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf74e33f2	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76073b7	amd_iommu_domain_clear_gcr3
+EXPORT_SYMBOL	 vmlinux 0xf765f87c	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0xf772e629	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf7756a9b	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xf78a8ee8	udp_poll
+EXPORT_SYMBOL	 vmlinux 0xf78eeeeb	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xf79ca3bb	acpi_remove_gpe_block
+EXPORT_SYMBOL	 vmlinux 0xf7a843ec	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xf7c6a945	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xf7cc8be1	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xf7ef9a79	iosf_mbi_punit_release
+EXPORT_SYMBOL	 vmlinux 0xf7ffb67f	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xf80a46c6	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xf80be44e	rdmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf81a486c	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xf8287200	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf8386d97	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0xf83f9402	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf853ac7a	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf871f3db	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf8848393	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf88f9512	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xf89f7b50	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8cf0602	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8d9572b	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8fb1206	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xf8fc0721	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xf9042736	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf952244d	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xf9626e76	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xf96da3d3	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf979ec82	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf9899de8	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf99e3f66	key_move
+EXPORT_SYMBOL	 vmlinux 0xf9a16c64	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xf9a436e1	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9b497b9	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c828c2	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0xf9df8d5d	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa198a3c	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa2abe59	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa6e30d2	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0xfa7b1fa5	follow_down
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa91e6d6	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xfa9ca2b3	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0xfaa1fdf7	__tracepoint_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xfaab9eda	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0xfac55ec6	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfad3211c	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0xfb07028b	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0xfb0ee314	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xfb132e8a	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xfb1e641d	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0xfb251b8d	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xfb27764b	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xfb359faf	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb3ef4dc	console_stop
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb578fc5	memset
+EXPORT_SYMBOL	 vmlinux 0xfb615ab4	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6f82f9	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb355f7	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc45f2f	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe3bef7	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfc1f3e83	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xfc31ff86	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc349833	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3ac34a	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc4becac	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xfc55e498	open_exec
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc62f3db	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xfc77f34b	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xfc7ae83a	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xfc7d881e	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc890344	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc8f7dd7	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xfc9c2251	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcba5d6f	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcdf0f16	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xfce1235b	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xfce456e7	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd0506a1	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0xfd16c481	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd7dbe94	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0xfd8853e3	dput
+EXPORT_SYMBOL	 vmlinux 0xfd90b085	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xfd93ee35	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb6576f	acpi_set_debugger_thread_id
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdd8fb48	pci_biosrom_size
+EXPORT_SYMBOL	 vmlinux 0xfde2632f	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xfde607ed	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xfdfb792f	amd_iommu_pc_supported
+EXPORT_SYMBOL	 vmlinux 0xfdfefcfd	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe3c5ca0	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0xfe40b5ac	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe60f371	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xfe68031b	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xfe79d666	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfea6662c	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xfead205e	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xfeb133da	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfebeffdd	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xfec5978b	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xfedb0a38	skb_dump
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee7c6cb	seq_read
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1a5d09	path_is_under
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff22d2d0	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff695801	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xff85a86f	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff918c75	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xff986ce7	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffc2eb74	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xffc30c3a	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL	 vmlinux 0xffcd7f49	iosf_mbi_punit_acquire
+EXPORT_SYMBOL	 vmlinux 0xffcdf53b	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0xffdc52ab	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0xffe36474	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xffec804b	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x0ac98858	camellia_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x110a5ea5	camellia_ecb_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x187244da	camellia_xts_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x19ea0a50	camellia_xts_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x4697c03b	xts_camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x701dafab	camellia_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x95625eb9	camellia_ctr_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x9ba73d8e	camellia_ecb_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xbdb3b1d4	camellia_cbc_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x076da75a	camellia_crypt_ctr_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x17d1814f	camellia_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x410e0fb4	camellia_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x62cbf7ba	__camellia_enc_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x69211153	camellia_dec_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x7a1d58de	camellia_decrypt_cbc_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xb53cc66b	__camellia_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xc5e3cec8	__camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x08950a28	glue_xts_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x1acc3c98	glue_cbc_encrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x8bc8df97	glue_ecb_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xb814f25f	glue_ctr_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xc1f8bbfe	glue_xts_crypt_128bit_one
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xff1f9422	glue_cbc_decrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x020a243c	serpent_xts_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x19ee8473	xts_serpent_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x1c871146	__serpent_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x36389d2e	serpent_cbc_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x3f20a4a9	serpent_ecb_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x92dded8c	serpent_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xb2dcc1fa	serpent_ecb_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc59d1a0a	serpent_xts_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc9c39aed	serpent_ctr_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xe809ca7f	serpent_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x1f491d36	twofish_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x7c7bf6e0	twofish_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x4c995a89	__twofish_enc_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x8cccec5b	twofish_dec_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x9dfb11d8	twofish_enc_blk_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xd859828c	twofish_enc_blk_ctr_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xe3784eb9	twofish_dec_blk_cbc_3way
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00d67424	kvm_arch_no_poll
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00dd8091	kvm_arch_register_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x01975147	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x01b018f7	kvm_handle_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0263cf0f	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x02da7113	kvm_set_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x06043bed	kvm_page_track_unregister_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0620abc2	kvm_fast_pio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x077e12db	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0acd09f7	kvm_mmu_slot_largepage_remove_write_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d516e7e	kvm_emulate_wrmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d8f4740	kvm_mce_cap_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x10989883	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x10e40cfc	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1235000a	kvm_tsc_scaling_ratio_frac_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x12575908	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1272b16e	kvm_vector_hashing_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x13214c35	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x135998a3	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x151b70ab	kvm_mmu_free_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15f5cf6a	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cd6b0d7	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cf65ffc	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d013832	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d568a61	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d8b3853	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db1c372	enable_vmware_backdoor
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1e1b5f91	kvm_set_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x23259a17	load_pdptrs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x23f1f96b	kvm_set_cr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x245e69d0	kvm_get_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27c3b71b	kvm_lmsw
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x282ee977	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28411ed7	kvm_max_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28d6afc3	kvm_mtrr_valid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x29d1d54c	kvm_mmu_clear_dirty_pt_masked
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2b396d51	kvm_emulate_instruction_from_buffer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2b74f6fb	kvm_arch_unregister_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2bdb9b1b	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x30603a8c	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x31cb8825	kvm_apic_write_nodecode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x31d2b27c	kvm_set_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3289e203	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x36841c7f	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x38ee6fc4	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a3026d4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b4babdb	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3bbeaa82	kvm_inject_nmi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c0fa0a0	kvm_get_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc2b8da	__x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc82f45	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d515fe6	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d5cd8c9	cpuid_query_maxphyaddr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3d6b47ce	kvm_write_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3f42b373	kvm_apic_match_dest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x40491d71	kvm_arch_end_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x40d6c05a	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4349f139	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x44e15619	kvm_apic_set_eoi_accelerated
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x453634c8	kvm_arch_has_assigned_device
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x455d84ea	kvm_skip_emulated_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x47566869	kvm_x86_ops
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x475c402d	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x48de0f7e	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4a2aebdb	kvm_lapic_switch_to_sw_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4a2b3453	kvm_get_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4b09c9d8	kvm_lapic_find_highest_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4c2e6be3	kvm_slot_page_track_remove_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e50c4bd	kvm_arch_has_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4f1eb6f9	kvm_spec_ctrl_valid_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4f886414	kvm_set_cr4
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x551f4cd2	kvm_rdpmc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x55bd37a6	kvm_emulate_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5631d94a	kvm_vcpu_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x57d4a354	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x598e8a17	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59f18540	kvm_hv_assist_page_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5a7742c6	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b3949b6	kvm_mmu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5eaeb356	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5ecbd73f	x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5f1fdc1d	kvm_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6225c1f6	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6243ac82	__kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63103116	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6311b508	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63270977	kvm_default_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65b42088	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65ece2a2	__tracepoint_kvm_fast_mmio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x660f55a5	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66ada81a	kvm_mmu_unload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66c4423a	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x682a799b	kvm_lapic_reg_read
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68e6957d	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68f54e0f	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ada8f59	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6b66da9a	kvm_vcpu_reload_apic_access_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6b6ba255	kvm_arch_start_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ba643fd	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6da70e47	kvm_set_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ddbbc5a	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6f475676	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6f7f82ef	kvm_emulate_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x70a2a451	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x736508a7	kvm_task_switch
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x744701de	reprogram_gp_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x74c7d8b3	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x756de9d4	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x77486424	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7763a671	__tracepoint_kvm_nested_vmenter_failed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x780f111b	kvm_set_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7885edd9	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x79643e5e	reprogram_fixed_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x79fa200f	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7aad1656	kvm_init_shadow_ept_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7b906593	kvm_requeue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7be48a8c	kvm_set_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f660e03	kvm_mmu_sync_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f6ed621	kvm_slot_page_track_add_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8006b30b	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8079714c	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x81ae0986	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x82752754	kvm_queue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x849344cc	__tracepoint_kvm_pml_full
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x867690a7	__tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86931b5d	__tracepoint_kvm_avic_incomplete_ipi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86a96531	kvm_lapic_hv_timer_in_use
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x88747b14	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888d979f	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ae92ab7	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8c6d10d5	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ca40fbe	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x90623788	pdptrs_changed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x91d4d992	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94abbd88	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9638f2af	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96dbe382	kvm_mpx_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9752645f	kvm_apic_update_ppr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9819e1af	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9a71606a	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9ad29b48	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9b59b0a1	kvm_wait_lapic_expire
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9d961fb6	handle_ud
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9efc0eef	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1bca1d9	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa295c74a	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa3b2e513	kvm_mmu_unprotect_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa3e3427c	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa77b9867	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa93bdfb8	kvm_init_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa975020d	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xab38b353	kvm_deliver_exception_payload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xabd5328a	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xac0455ed	kvm_lapic_expired_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaebd4e53	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaec99080	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaf104e31	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaf2cdf7a	kvm_hv_get_assist_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb097e540	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb1f29d1a	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb29b35d9	reprogram_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb3a033ae	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb53bbb39	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb5b34fc6	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb6234f08	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb6a75618	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb79ad952	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbab1deca	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbbde59b9	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbc217634	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbdfe2b57	__kvm_request_immediate_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbe23f360	kvm_set_msi_irq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbe89b2e0	kvm_get_apic_mode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbf26975b	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbfc61ecf	__tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc114eebc	kvm_valid_efer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc13182e1	kvm_mmu_slot_leaf_clear_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc14d0411	kvm_emulate_rdmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc15ceaa1	kvm_get_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1d769b7	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc29cfa8d	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc703a462	current_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc82a76e2	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc8734f85	kvm_load_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc97c6443	kvm_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca3ab5ad	__tracepoint_kvm_ple_window_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcab0c0a4	__tracepoint_kvm_write_tsc_offset
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcb96eb7a	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcc2f6df6	kvm_put_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcdab734f	kvm_require_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcf2045d0	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd086b2b7	kvm_get_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd13dd2fd	kvm_mmu_slot_set_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd265737c	reset_shadow_zero_bits_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd600087a	kvm_page_track_register_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd8ae2ac3	__tracepoint_kvm_pi_irte_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdaebe9a7	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdb083b94	kvm_read_l1_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd172a15	kvm_mmu_invpcid_gva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd9e7aeb	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe0faf684	kvm_get_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe37152fa	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3ccde2b	x86_fpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe4d1f2eb	kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe80a51f8	kvm_vcpu_is_reset_bsp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe9efeb5e	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec06defc	__tracepoint_kvm_avic_unaccelerated_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec1993a6	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xecdbf498	kvm_mmu_new_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xedb52108	kvm_intr_is_single_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xef448c1c	kvm_require_cpl
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xef79c1fe	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xefb198d9	kvm_mtrr_get_guest_memory_type
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf17fa9dd	kvm_lapic_switch_to_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf18c5eb6	kvm_lapic_reg_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf47e3dba	kvm_no_apic_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf5f4553a	kvm_get_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf9473d31	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf95795cc	kvm_set_xcr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfa541ffc	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfb02c395	kvm_set_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfbc81740	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xff095b11	kvm_can_post_timer_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xffaede90	kvm_scale_tsc
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x01bcefb1	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x07fea274	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x120d29fa	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x24fe6d14	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x32cdf780	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x357b9640	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x41395297	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4827acb5	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4ae239b8	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4db43a18	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5eecd750	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6f05df32	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8d8d757a	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9e0c2831	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa2fb702a	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc78c19d6	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xca0bbe3d	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd3e77042	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xa4958b8e	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x039b67c1	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xbc86f6b7	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xe0062468	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x97477da0	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xdf37d3db	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x321d131c	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x3e27b04a	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x43ba5c51	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xd0bf045d	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x144fb61f	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x2ba013a6	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xb218dcb2	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xfacac845	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xffe4cc62	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/chacha_generic 0x260141b0	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x2ff24ba7	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x33c39e76	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xac159a08	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x04778dc4	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x25566fb9	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4b7cdb81	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4e3bdf03	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x706e9e41	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x788a4dbc	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x85a0c841	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8f08d317	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xacb50e56	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc0489382	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe8564f12	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf53bc62e	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfdab0aa1	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x20df9048	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x22d84fc5	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x269118d3	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3e8e2f49	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x65d64b81	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6894ab0e	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x848c0b34	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb72905a9	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc54bf5b0	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe93ee9c1	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf22ef078	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf26f0453	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfe5dc955	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfeb11765	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x1b8dd2dd	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x24b1d15d	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x552e2456	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x7c878e43	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x40bc91ab	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6800fe33	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6cc22cf1	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x708396f8	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x2b1aaf55	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x3f22585c	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xf3a3e041	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x35005d7d	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x00735f47	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x16bb1091	__acpi_nfit_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 0x55c64343	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x626bf7a5	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x8ae505e5	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x1c8984c7	acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x4f6c2360	acpi_smbus_read
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x87bd07bd	acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x96eb492d	acpi_smbus_write
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x09cbf34e	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1098d951	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x13d368c9	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1d066ef6	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x20be4f67	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x261956b7	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x34233e13	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3e528f9c	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x510bdc2f	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56468ebb	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56ce60ff	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x59789152	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6fceafc2	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7728a16e	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7d87b409	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x83094dd6	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x89c7ab9d	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x9eebc2ef	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb7831779	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd233bb5d	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xda659ad8	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe26c0691	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe44c020b	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xeb1eaf99	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1b7bee6b	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1f82c3f7	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x29630c3f	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x4386bc50	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x791f2074	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7df4f09d	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7ee84782	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa2e3cd23	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa9c20fb6	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xad401c73	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xae5cab6c	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7c878b9	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7e2bdaf	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcb9ac489	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcd0eaa8c	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xff264a8d	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x407399e0	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x02ff9464	cfag12864b_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x0ecb2e5d	cfag12864b_disable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x305dc3c6	cfag12864b_isenabled
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x3389f926	cfag12864b_enable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x9522a342	cfag12864b_getrate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0xc48e9d95	cfag12864b_buffer
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-i3c 0x90f078ac	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x0f8e8c0d	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x5442352f	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x1baf0356	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x251e0a48	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x3fc69ec9	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x5e4df485	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x65db298f	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x854eb651	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xb2f47983	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xc0ebc60f	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x118b3420	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1315f20f	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x25cdfd24	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2fc9625e	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3bf2b19e	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3d92fac7	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3f255401	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4b154d0e	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5e5b564c	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6b00ebd6	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6b996994	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x85eb8c6e	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x866d80af	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x89fc9606	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x973761e8	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa725b003	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb691615b	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb97a1211	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc12df7e7	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcb166237	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcf260b8c	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf1798c2b	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf58c1c9e	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf7c8f8d4	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x367c4c5e	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3758cdcc	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7634c224	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xa0027179	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xa7ff11e1	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xe34d2038	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1d745d35	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x26df0750	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2797da54	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4065a332	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4728f5ed	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x616782b8	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x646c63c4	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x64a239da	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x6ea2c634	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x82038888	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x94a898b6	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa3783d6e	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb6a9da9d	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xc95aeedc	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xca34accb	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd0020636	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd228fa7d	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0ccbb846	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0d93d977	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3a98131a	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x43609c9a	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x736e8ebf	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x802834a0	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x8ac1d989	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xa48fb0e3	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc290beb1	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf47b5e11	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf92e2eaa	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x09c9ed0e	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x354a747e	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x45524394	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x7e9f5b43	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xe0566279	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x4681e6b5	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x56da23f4	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x578f3182	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x71c7f58d	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x7ba63e56	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x121dce03	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x3e10f7da	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x6dc0e72c	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xa9e842f5	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0402f387	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x24e09ec3	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x544ac3fe	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x84d49156	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8aaae4cc	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8bfe20ff	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa32846ce	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb442c4b1	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbe283443	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xce3f3a7e	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd716a32a	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdd03ff31	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe2903a5d	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x2b67f096	speedstep_get_frequency
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0xd7ab2c0c	speedstep_detect_processor
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x288d6e43	sev_issue_cmd_external_user
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x2e6a6147	psp_copy_user_blob
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3e059f28	sev_guest_activate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x4073e924	sev_guest_deactivate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x843d6541	sev_guest_decommission
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8fac14a2	sev_guest_df_flush
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x91722dce	sev_platform_status
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xd02e197f	sev_platform_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xe1a92a7d	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0e77c5f5	adf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0ef7b1a0	adf_vf2pf_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0fbd1460	adf_cfg_dev_remove
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x13de2947	adf_send_admin_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x19381779	adf_cfg_section_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x21c869a8	adf_vf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2966144a	adf_init_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2c340eea	adf_devmgr_rm_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x42f46221	adf_dev_in_use
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x43acb995	adf_dev_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x4f8e8a2b	adf_dev_get
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6b52428b	adf_iov_putmsg
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6d9fc052	adf_enable_vf2pf_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x70bfb0b9	qat_crypto_dev_config
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x75adafd6	adf_enable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7608cde6	adf_reset_flr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7a51454a	adf_exit_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x806df556	adf_cfg_add_key_value_param
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x88da5188	adf_vf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8c0f6cd0	adf_devmgr_update_class_index
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x986f980a	adf_vf2pf_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa1a4f21c	adf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa1ed6f0b	adf_dev_started
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xaf2bee11	adf_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb5b9e3ec	adf_exit_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb7aa84f6	adf_sriov_configure
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbc151b21	adf_devmgr_in_reset
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbd552ead	adf_devmgr_add_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xbe9f70df	adf_dev_put
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc1b6a6ba	adf_cfg_dev_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc719ba2e	adf_disable_sriov
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc7418831	adf_cleanup_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc8748f96	adf_init_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcc3b167a	adf_clean_vf_map
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xced8f9b7	adf_devmgr_pci_to_accel_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd9768196	adf_dev_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe05e49d8	adf_init_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xeba76d50	adf_reset_sbr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xebe7db4e	adf_disable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xf76c2726	adf_dev_start
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x7f83fb30	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0x7d79217e	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x01a33ab9	dca_unregister_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x0a82a2f4	alloc_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x1943a56a	unregister_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x2b45e499	dca_remove_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x2fc42645	dca_add_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x522d6ff9	dca3_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x88cff550	register_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xaa634427	dca_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xac34ecec	dca_register_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xdaa8140a	free_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x12915abe	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x699b0fef	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x0630747f	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x188d0c62	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x1b3fec86	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x227db14e	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3a7a1057	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x78504374	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xfe065577	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x7cabb7b1	hsu_dma_get_status
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x7e1816f8	hsu_dma_do_irq
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x9dfb6d68	hsu_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xd6d405b2	hsu_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x06bfcaa9	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xe61d65b2	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x09834a72	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x47d3364c	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x66b40510	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xa8cb7354	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xc8ea6abd	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/edac/amd64_edac_mod 0x33629ef8	amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x14878009	amd_report_gart_errors
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x1d34e996	pp_msgs
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x830c469f	amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0xaf761418	amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x7e6f54eb	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xd16bb085	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0147999e	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x18f8a409	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x243d7669	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x34f80d58	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x391c51c6	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x47278688	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x51e6a270	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x62058bf6	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x62babf29	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7723fe57	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x793d4c49	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8a3206cc	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x99915683	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb663ac55	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xba30161c	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbca2ac6a	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdbc691b3	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe432e2d6	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfb636ad8	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x08c9a979	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x25ff02d4	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x423b7274	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x69f372d2	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x7d92b980	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x9acecd0d	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xa8f66056	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb924c5b3	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc84dfab2	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd328d9e6	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd900323e	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xe3140f2a	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x296bd271	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2d3fa5d8	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x42149280	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x5681051a	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x64d74618	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6e6b0ad6	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x8a5d23f3	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9e867d2c	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xaf03978b	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc7239330	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xdf0b60fe	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xee2d81b8	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xeee7a5c4	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x07ef249a	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3875d35c	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x414b8d7f	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x4f1db0b4	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x584c3ec8	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb2fa43de	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xfb253a97	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x0ab183ba	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x19102bba	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x6051a3a4	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xaa64fac0	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xafc10f99	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x36ede572	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x3e0c8cd5	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x92333f6c	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xdd22fd46	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xeb76e1bb	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0xdbffd6e6	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x5573fa38	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x58fd8799	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0038d836	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0ea6a9c9	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x14124dac	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x28f3572c	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2c284ce0	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2cff50ea	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x36f72279	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3b081a0c	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5650d13d	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x96c0f341	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9b25c467	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9f1beedf	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9f451cd2	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa802fc2b	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb1cb3b1f	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb74bda82	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbe073662	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc8b4b175	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd0c846e4	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd298512c	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd53f4422	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdfc24e0b	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xed967c24	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf76c4f9b	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfd27c1bd	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2d1f0216	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3a6daee1	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3c3e5c03	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x4bf16069	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x551010f8	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x64584343	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf23c70de	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x05876c69	i915_gpu_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x08a7896d	i915_gpu_raise
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x402468e9	i915_gpu_lower
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x500858b9	i915_read_mch_val
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x6fbc5503	intel_gvt_unregister_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe7237b0b	i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xf1f195ce	intel_gvt_register_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x4f62f878	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x72e6e61d	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xd245ced0	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x11f66b02	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x255a13ec	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2b0e7c27	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2fcf1b81	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3129ba5d	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3dd854a0	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x41594606	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x466f2bd9	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x48fa3726	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4cc92ba7	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56b345b7	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x59d6985e	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5e502d53	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6506154a	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x650bfbe7	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x74b75255	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7995cddc	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7da2fda5	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x84df5175	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8898c6db	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b9ae00b	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8fc50997	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9260639f	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x93fc53e8	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x951c04ef	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9d6f4120	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9e0df5bb	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa421d0e4	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa4ed15aa	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xba1c286b	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd2506fd3	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd9504d4c	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd99aa38b	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdcb9cc33	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe30d57b2	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf0bd8b96	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xffc08669	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0604a0ee	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x06c954fa	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x187e3f90	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x286e9f3d	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2d14ae5e	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x353db59a	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x362d386e	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3949850f	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x474622d1	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x48fa70c8	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4eb4b073	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x543188c0	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x55c4f7e5	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x628548db	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x69bb1d25	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6a526aa6	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6e371ff2	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x70e382e4	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x71396b0f	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x99290208	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9af6e7e0	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa1a7ce44	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa1e7b051	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa3134da6	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa9edbac2	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb1bc656c	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbe200d36	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc17287fe	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc584430c	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc879bf10	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd42fa220	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xde5347f2	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe8b2614c	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe94779d2	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xea3db8f0	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xea439ca2	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xeef8ef7c	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf0099bf0	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf09f46da	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf341aa96	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf4e0d3a6	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf711c9a7	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfd10737b	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xff49323d	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xd5813c8e	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0d4be973	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x2a42a663	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x419d0f02	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xcd11cd51	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xe7714286	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xec4df18a	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0f005adf	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x331a0c75	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x39647058	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8db9b101	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x9486c4e9	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa43f194c	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xb27bb104	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe9024bf4	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf8e45a39	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xb40f2ba4	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xf310a98e	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xdf85a2fc	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xeb65c772	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1ac6230b	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1b49e803	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1d2ca3ca	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x24ec4747	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x26a16bce	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2932c504	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2d6f8bf4	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7d6f2294	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7d73eec1	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8981e189	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8fd26002	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xa976de77	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xbf727bef	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc856d183	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc86bd69f	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc97210b2	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcd8a4c89	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x03b81c28	vmbus_sendpacket_pagebuffer
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x11df3292	vmbus_sendpacket_mpb_desc
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x17f64b26	vmbus_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x24033695	vmbus_open
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x31e2e77f	vmbus_free_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x329262c9	vmbus_recvpacket_raw
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x35a944e7	hv_ringbuffer_get_debuginfo
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x46a417ca	vmbus_proto_version
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b2210b8	vmbus_send_tl_connect_request
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x527b6bd0	vmbus_set_chn_rescind_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x5b330aca	vmbus_set_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6520b261	vmbus_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6c391d8c	vmbus_free_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6e9a1e3a	vmbus_hvsock_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x72a36ccd	vmbus_establish_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x74ba41da	vmbus_teardown_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x768ef865	__vmbus_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x7ba8b897	vmbus_connect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8fc8ce2b	vmbus_prep_negotiate_resp
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x98a02dc2	vmbus_are_subchannels_present
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x99a5e9c9	vmbus_setevent
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x9e9b5647	vmbus_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa1952214	vmbus_allocate_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa2c786a5	vmbus_connection
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa345fe92	hv_pkt_iter_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xba986aaa	hv_pkt_iter_first
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xc97123aa	vmbus_disconnect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xcd388c3b	__hv_pkt_iter_next
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xde57ae68	vmbus_set_sc_create_callback
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xd5d6e698	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xe7275dfa	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xea9597fe	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x202f3793	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2261515b	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3fbaa662	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x45de7143	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x5d0f4078	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6692bfa0	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x70ebe9b7	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7acaf643	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7bebe06f	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x8e3c9605	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa6dcc7e8	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xab1bccc1	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb44630f0	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc1ffb589	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xcfa1cb75	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe4793475	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xeccee46e	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf13d5366	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf44f57b0	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x06fb45ac	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x22f0449d	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2bfa07e3	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x405b0fdc	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x4c138312	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc8e5dc1f	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd4979b5f	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xde56a5f8	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xef4a13ec	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x12a6cdc6	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x18d091f7	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xd5684084	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x2efc54fc	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x3fc7affe	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6324e988	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x65ee784a	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x801055cb	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa7104dfc	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb2078e48	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe626db07	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf368613e	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x1857f221	amd_mp2_unregister_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x208712a3	amd_mp2_rw_timeout
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x43a33b5f	amd_mp2_process_event
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x6f31857a	amd_mp2_register_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x72d104c0	amd_mp2_find_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xa543bf74	amd_mp2_bus_enable_set
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xb7ad7506	amd_mp2_rw
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-nforce2 0x58a37600	nforce2_smbus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x04636199	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x46aee278	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x4b5592ed	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xd1d435cd	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x44b3fde8	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x01d9a322	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0db04b75	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1e7e591d	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x212761be	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x37d7aa92	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3ca2fa5f	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x44f98204	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4e904934	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4edb2953	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4fa4c956	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x773a6993	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x776c1c3d	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x77744373	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x83c48ec6	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x86103f67	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x97c9afc0	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa4d7902c	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb128e8a4	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb240962c	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbbcd78e2	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xcb7ceeb4	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd0b2d543	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd4bbeef5	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd609114d	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf0fecb02	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x6d91e36a	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xb5b63f2a	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x1947fe06	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x3d65781c	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x837a2c81	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xf7b12c40	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x431886c2	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xb72ca994	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe6054d5d	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x120e8f44	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xb86674f3	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x143c657e	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x1c52d34e	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x2e92501c	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x35ca3d03	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3d66042a	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x53691174	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7099d103	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x830c50f9	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb68adbb1	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xee053b28	ad_sd_cleanup_buffer_and_trigger
+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 0x2afeb04b	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x74be7da7	iio_channel_cb_get_channels
+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 0xc8d07598	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3773d74b	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x628fb2ec	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xb61d45f1	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x0affe9fe	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x518e0151	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x5baf3d03	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x228a360c	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x35a09017	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x60295fd6	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9df61bdd	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xdd9c25c0	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xdf8dfb40	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe02ef650	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xec88d303	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xf63b95ff	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x184e68e6	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x20cdc3f5	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x55db79f7	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xc0403d50	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x166115b2	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x6de7cdad	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xbb144c5e	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x83b47d45	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x8cf6506d	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xf81b677c	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0841270a	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x09b54fe5	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x2f789b61	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x44cad74a	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x989d69a9	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbca11f7b	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbf98468f	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc4d4e98b	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc97b35dd	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xce48d354	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xde5e73d4	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xfb91a4a1	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xb2cf08c8	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x41529463	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x8c040824	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xdb00edcc	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x08b18ac8	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1a9af95b	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x24af87be	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x25522aa1	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2dc0e42f	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2e65a7d4	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x30642f9f	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x31513367	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x34c036ce	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3a77e4de	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3f58c1a5	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x40975dfc	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4415779b	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x45721c64	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4a871e97	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x52fe8086	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x55de1416	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5819d114	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5a0ec1ac	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5f6eef5a	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x61b637a1	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x663acf84	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x702f5cc6	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x70ab29af	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x779b93e5	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x86385253	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8b5a7f72	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8d2ab2d1	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8d9c6b3c	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9f249b8a	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab58dd3e	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xadcace27	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb0d0722e	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb6765c16	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb7785d19	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbe0b774a	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbff21cd2	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc9449963	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xce5b91ad	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd1150d76	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd33b2587	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd5238e8d	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd63d2e43	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xda648ae5	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe511fc16	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe89fee39	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf24afc68	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf576642f	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfb8fbf51	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfd68d4fc	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x2a93dd24	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x870b037a	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2817ece1	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x5e1e5801	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x86529437	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xe2818801	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf4984bfb	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf7253144	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xc7bdfe58	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x7afb122b	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xae7a1b8e	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x36ccc2b0	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x59d07b0e	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x698fe38e	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6b087b27	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7a07d8fd	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7d4f09dd	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8d2cd566	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x968a0c50	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb9421745	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc795ff7a	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc956125a	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xde68844a	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xea333578	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x1c83c816	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x6faee931	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xbca0981f	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x0e00440d	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x10f20a1a	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x479e8cb8	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x649b4bf1	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0584e708	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1e5e6e84	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1f06598b	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x313ecaf0	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0178f795	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x044e2de8	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x36fa97d8	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3fccda31	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4609f61d	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4b960da4	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5db7c4cc	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x663ccac7	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6ac1d6ef	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8aa3f683	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x971debd9	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb5cc5d01	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2d8f5653	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x48439386	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4d462244	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4f177c8c	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x93388e2a	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x953facfb	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb435842f	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd9b387f3	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe4e7da74	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf00d5908	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0a205e99	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3667d1a1	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6472ff6b	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6b528fef	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6e0231e3	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x7f21a118	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x859c71a2	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xcd75a1f8	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xe61a5fce	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x1c8036d9	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x25f0b8b1	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x2f8cc644	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x651a0d51	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x8be6fedd	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x91f36773	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x065a9806	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x1129440d	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x13e8bdfb	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x30aa5623	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x55b9fed7	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x80d6a990	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x9f236773	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb4b9f9a4	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc002fdf6	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe41c2fb7	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe642bd9a	lp55xx_deinit_device
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0a947a51	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x19a00bc4	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1d49e90e	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x261f688f	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x376dbd32	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3bdc9dae	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x51238e55	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x676eadaa	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x84abf802	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9dd8166b	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xaf0c7405	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc7f373f3	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd5e088d5	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xfa9a5002	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1120ac62	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1fd28e69	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2db90665	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4a7ee32e	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x618bf766	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x63012ef0	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x650fb9c6	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6c6c7bbe	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8aa00929	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8ea0c9c7	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xad13d76c	dm_cell_put_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 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd69dec9d	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdc9cafe3	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdcd1db64	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe1a5b2ba	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe6c6d814	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf3a5652e	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x48feb18a	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x9ee0cbc1	dm_cache_policy_register
+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 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xd44457e4	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x7bc28519	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xa30fdf7c	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 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 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 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xaf209a39	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xb9b2a2d9	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xe12e34dc	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xe49e15f9	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf227ffbe	dm_rh_bio_to_region
+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/dm-region-hash 0xfe659dae	dm_rh_dirty_log
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf7468416	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x33b8c73c	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9af88910	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9cd96d09	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa6907ab7	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb4609976	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xbfc9be04	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc9b72bd7	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xdb393d84	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf302f322	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf521cd46	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x170c24c9	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x28ddc60b	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2a510d95	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x3c9319cc	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x74c6b40f	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8138c692	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8a52fa62	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0868d278	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0a7cc067	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x13d23e24	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x30f198df	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x3a4b3c1f	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x568ad27d	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6abe5e53	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7289673b	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x732ee15c	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x83d3153b	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xac02ad90	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc79421b1	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc8fe3dfb	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xccd07cec	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xd2328c84	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf020f6fb	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf120720c	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x05b05374	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x09cc2c9e	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e0a5c3e	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e818bbf	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x112dfe2d	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2fff19d6	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3520800d	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x56a2eae7	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x59281d65	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x59a88084	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5eafa241	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x72f06507	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x74257d41	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x76b6982a	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x98cd1df7	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9f3f7a53	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa231532f	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb21409b9	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc32bcf40	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcf573017	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd69437e1	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe669868d	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf13ecd6a	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf74adc14	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf85d805a	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x23bf64fb	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x4786de23	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x7b895800	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x6d6d2d1d	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x286abf63	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x04982def	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0ba262de	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0e682126	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x15e9ecf0	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3c26b283	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x559a6e7f	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5becaa85	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5c3e19a8	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x69b4430c	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x75ff3505	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x79bf69bb	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7c0eb8e2	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7d3877ff	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7f91bfb6	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8793eb3d	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x99dda541	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9c3b7c0c	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa6aeb514	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa80441be	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xae02ded1	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb217f3c8	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb9c604a9	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbc6c8501	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbfe6a988	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc004b633	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc7dd9d55	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd2848acd	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe946be3b	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe98a5fb2	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xee620a88	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfff207d0	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x1ab67bc9	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x9e5be30e	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xbb9e3f86	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xf8d7ebf2	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x38ee99eb	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0xa499f572	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0xc66c1b2f	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x6a2788ef	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x360845e7	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x2e8ecd4c	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xd10f52eb	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x0e630ef7	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x821ebb19	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0387e3a9	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0599a13b	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x05fd8499	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0f85f5c7	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0ff3bd9c	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1013e321	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1162c83c	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2470d1be	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2ac53d0c	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x48a99832	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4950a64c	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4a731e30	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4cae47bb	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4eaf1f79	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x50b7c958	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x53ee156a	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x54f25fcd	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5ae90282	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5b5b97e1	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x70370c5b	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7b718ed4	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7c93b34d	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x81998698	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x89b9e5c9	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8d7bd474	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x910d93f4	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x95daf1cd	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x96d9c3a9	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa2d0a3d0	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xacbb0b4a	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb44bd768	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb4863607	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb7708656	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb9454ba0	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbce619bc	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd8b195b6	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1d4197b	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1f5cfd0	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe28aecf0	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xecd46547	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee4f4cf1	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf24bf541	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4cfe525	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf519a921	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc356f40	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfcc9eb78	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x2fe8a4d6	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x04afbeff	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x078f1b99	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x08450be8	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x1e2e7784	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x1eefdc24	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x25caf3b2	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x284f7b60	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x52aa124a	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x63e9f9a0	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x87a6b55b	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x947e9c66	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xbdffa73c	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xbe3f8741	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd7be67d2	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd83b5208	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd8faf9a8	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdf063b72	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe44fb928	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xffd7677d	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x05ba8646	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2029c43e	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2839c48b	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x37263294	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3fea891b	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x4696a3fa	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x63c0f8bf	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x9243e796	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa2691b54	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xba8d8361	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc84f6986	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd160e37b	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd70f5db9	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdedb36b7	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe5de297c	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe9be5bbc	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xeb81c5f7	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf579bc31	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xfbf1489a	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x5d66ecaa	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x62698890	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x6ae7dd68	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7559350f	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x82d48290	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x9c885baf	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xc6e92b41	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x3a78857f	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x5b75b51b	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x60c5322a	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xaa9f5758	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xe647d39b	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x3d68e3ce	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x48d27987	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5c6943a1	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x996906db	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xeabe9e9c	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf1346c52	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x38432619	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x7b0cd598	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x3ce47733	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x686f400b	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xaa4fac26	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xcd7348fa	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xd93a1934	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1736bcf0	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x20cefaa4	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x27b1ebd1	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x31c96625	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x37fac4d6	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x43e64cef	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6102d6a4	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x674d10be	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7abc882f	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7b2fb2d2	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x84649d47	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8e34ddf4	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9d7b9567	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb1708501	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd9fb8def	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe18b9ff2	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe3b3dc39	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xfa073e4a	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x95e05db8	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xb5c62813	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x2b5d7f62	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x6971083f	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x1c5dcee5	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x3b75215f	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x7cef0323	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xef2d80a3	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xedfbb20b	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x20bbe6ca	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x8ef09d5f	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xa053a4ef	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xc6771cb3	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x0b1f7fbb	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x013ca89f	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1c09009c	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4119adbf	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x669869a9	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6ecf5619	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6f968693	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7812b456	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x871e6c05	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x8ce74d55	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa314b78c	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa3596474	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb1ef87d2	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb9848cde	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc4781caa	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc6bd50fb	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcdf79c1a	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd7c5ef59	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe93f506f	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf7ea225d	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfe004d55	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xeb984eea	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x29d826fb	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x18683802	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1eea95a4	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2ddf78a2	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x30fec603	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x45ac96ae	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x54216e8b	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5952656d	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x69f922fd	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x72235846	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7b3d2ea5	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7de9d911	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9f2b0100	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xac79f282	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb09eb679	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb13a9d1d	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe60dac1f	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf25bedf4	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xfa000e2b	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x1e839a9d	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x5058e98d	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x6372eadc	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdca6091b	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x023a95fd	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x9150ff17	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xf12e2d23	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0a8ae2ea	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1bd81eab	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x591e06a0	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x6cf74b07	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7d57696a	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x80e12a10	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xc1bc417b	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd752aaf7	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xf96134a1	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xffa48c54	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1245aae9	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x140aeac6	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x267e5f9d	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2892f5d6	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x387e1088	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x42a5bf63	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4fa4ee1d	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x58f423d6	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5a5ce318	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5b608b68	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6741eafc	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7199bcab	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x80ba7c89	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x83ad2a2b	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x87fa7015	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x90e4c787	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x924a17c1	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x99d2c5f0	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa1f9f565	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xabf64c72	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb2f76a3f	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbe4a8bc4	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc630bc9d	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc9aa20bb	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd9d13f6a	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdd54e0e3	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xde004613	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe30fc06a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe393a75e	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xea019d13	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xeb8527ff	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf3f641eb	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf63e8e21	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfab35bb0	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xffb2e8cd	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x031dbd3c	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x124e4488	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2cdf11b1	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2cf03a50	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2ddbab0e	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3da141e2	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x52d75b03	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5bad8e0d	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x604f9615	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x621a97e1	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7f4f59df	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x80b43bc3	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x83b6b98a	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8494a953	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9e51ad12	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa0b08a67	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa428a0af	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb48ba25a	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd81c023b	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdf375a8e	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe91ec1f9	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xecf9872b	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf5363d6a	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf85deb66	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x29135749	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x30c070ea	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x49c6431a	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x5a3a29a1	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x00025b29	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x75537828	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc9b4be21	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x02f547d4	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x03def322	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x077c57f0	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x083ea7de	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0c941430	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11df593d	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x17b3212c	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x19d306f3	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1e870a4a	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x20636409	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x22e7e770	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2379c407	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x24663706	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28477a19	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x287347d1	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2b8edf23	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2e39ea5a	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3605a48d	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x388f1b59	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3d7e8563	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3e2944f8	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x402e297d	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x488e6630	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d87244	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5303ac51	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x53c0176a	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x54b2b864	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x63289b1c	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x686985cc	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6d5b12eb	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7a99e8b6	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x838f34c8	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x86f5d26b	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8aaad5d1	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8e4b813b	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x90b6fb53	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x91838a3f	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x926b64f5	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x985354c5	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ccd33fe	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ff3948b	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa33b32d1	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xba9ac822	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc64fca87	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc73f4f2f	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcab70cbb	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd4d73671	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd65542f2	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe4983b9f	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe9d7a538	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeb706b19	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf3c5faeb	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf8e007ad	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfd7f81c4	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x10bb2529	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x8ee217b9	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xff566447	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x119eb80a	write_hwram_command
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x4fec5899	read_acpi_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x7c885b59	write_hw_ram
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x88041395	read_ad_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x008ee097	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x1b33dd2d	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x479bad56	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x5cec3e5b	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xa2561a95	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb7fcadf3	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xd213e7d7	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x5fb22906	intel_lpss_suspend
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xa74bdaba	intel_lpss_remove
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xc21cefc2	intel_lpss_prepare
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xd0115bf2	intel_lpss_resume
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xfe348c7c	intel_lpss_probe
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x171ead83	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x27358137	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x3303d813	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x5811eda9	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x616c7b43	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x91be3dbf	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xa6aa4b00	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbaa9cf09	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x26c9861e	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf3c5af42	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf53f0908	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x708948b9	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x79112e33	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x88f1ef5b	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x89feed4f	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x96a9e713	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x9d42e0d5	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb5212981	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x60718ca9	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x75a3fcd3	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x9117693e	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x06ae71c1	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0ac153bb	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0acc8ffb	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x17e7a48e	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x17ea78ce	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1e8bbc56	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x25953ff6	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2598e3b6	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2d159749	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3d404846	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3d4d9406	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x49f44eb7	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x49f992f7	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x54d2b982	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x54df65c2	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x66a022fa	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x66adfeba	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7e75554a	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7e78890a	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x88d64435	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9e11134e	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9e1ccf0e	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa1f7776c	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdd240e42	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdd29d202	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe1ef6cb2	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe4a2b51d	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xec79cbab	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x0c352cb2	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x2211abf4	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x301e5e9c	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x58aec2a9	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x70a415bc	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x7dfba174	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x10515757	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x1c27c429	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2444d188	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2e0a4c8d	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x74a9ae5e	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x7f77fefb	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x84718ce2	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa3e335e1	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa57bed33	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd4aef6d3	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdd113641	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xab0ce07a	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xc9246fd4	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x2bb5a417	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x402b8c03	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x85a077f9	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x862b8a4a	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xe817c5ab	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xf02f94f0	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/si476x-core 0x0a212071	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0e5ab054	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1423d39c	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x15fd9d67	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x20b8720a	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x258a2b80	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4dda4abe	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x56ce5cf1	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x58a00703	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x60769ba3	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x68ff3998	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x72fc40b4	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7a1342b9	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x80857c79	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8be6f841	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x936b35e4	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9f49290c	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa6d12a8d	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa819cd6e	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaac8b533	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb44d4742	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbacdbc38	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbc1f4230	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc172ea87	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc81d8aed	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd016fd6b	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd2cc61fe	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdd139c5f	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe691ca9b	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xee06568a	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf0bde17f	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf18598ef	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf1a88815	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xff263437	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x1af35bbd	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x373c1417	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x507af657	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x591f13f0	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x59d3cb26	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x9582001c	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xae922c3b	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xb37cb727	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xbe8e9eb1	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x7ddbc8c8	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x24a22393	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x3423a008	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x87721af4	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa6140e5f	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xc6e8ed91	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xcb6d15a5	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xde65debf	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0df5b060	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x12f6b693	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1784667d	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1b552c43	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x288da9a4	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2d11bd85	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x34896f5e	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3dc3590b	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x473540b6	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5529bd7b	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5c177922	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5ea27928	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x71d0d5ec	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x77f3dc7b	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8b777f96	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9368297d	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x950ccfb8	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x96364308	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9b91e679	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa11e162b	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa16c57d6	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa41a9804	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd6a08fb1	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf10f4ba7	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0e414cc7	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x39562752	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3bc638d0	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3dbdc891	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6b7ab69c	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x77cbda50	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8348a87d	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9eb17f7b	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9f6e3321	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa4c832bf	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xdd7a6533	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf063fb7c	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf52cc954	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x2482e839	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x8df2a909	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x939c28a8	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xca42d9c3	cb710_sg_dwiter_read_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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x139a64bc	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1a016aa1	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3605a436	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3fe08e17	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x95b95fa1	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa61c5be8	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xcf12702c	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xde3641d7	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x42402ce4	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x83084949	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x9239258f	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x93bc4279	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa507e0f6	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xae028bec	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xce917b9b	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xd526a356	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0112153a	mei_irq_read_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0218fcb1	mei_hbm_pg
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x04a3ae2e	mei_cldev_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0b6fea65	mei_cldev_uuid
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x22456684	mei_cldev_register_rx_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x24d04253	mei_cancel_work
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x25ed55e6	mei_stop
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x2851d49b	mei_irq_compl_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x297037ee	mei_start
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x394cbaf2	mei_cldev_recv_nonblock
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x63839ce9	mei_cldev_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6839957a	mei_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x71c9fc29	mei_cldev_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7f70ceba	mei_cldev_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x90a24af4	mei_fw_status2str
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xad383b87	mei_cldev_enabled
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb1ad7e7f	mei_cldev_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb1b46c36	mei_deregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb367d2b4	mei_hbm_pg_resume
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xc25d0c8f	mei_cldev_register_notif_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xced86a05	mei_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd6c2ffca	__mei_cldev_driver_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xda2be508	mei_write_is_idle
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe36174c6	mei_cldev_ver
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe68e0533	mei_cldev_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xeb734877	mei_irq_write_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xeb7f955c	mei_cldev_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xf5ae04b9	mei_restart
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xfba6217d	mei_device_init
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x60d0ca93	cosm_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x643ad944	cosm_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x8c307591	cosm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf562b585	cosm_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf9daeae5	cosm_find_cdev_by_id
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x33d2a869	mbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x65d6fa22	mbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xec5816d0	mbus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xed6aa085	mbus_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x3149a5bb	scif_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x3858b01e	scif_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xbc35f697	scif_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xc5698aa1	scif_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x09c87181	vop_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x655e5cce	vop_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x89f92fb0	vop_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xef778180	vop_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x02beeaa6	scif_accept
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x06ab4819	scif_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x12f4c256	scif_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x2024cd6f	scif_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3cfc5447	scif_fence_signal
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3f9d5615	scif_put_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x419f1cc9	scif_close
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x489c3936	scif_register_pinned_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x56906b61	scif_client_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x5b47d553	scif_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x61b3c4e4	scif_vreadfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8f2fed3f	scif_get_node_ids
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x99450ca5	scif_open
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x997d1299	scif_listen
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x9cd7ca09	scif_get_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xaceebab6	scif_fence_mark
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xb9f63e04	scif_writeto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xc5360b12	scif_fence_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xcb2ba36b	scif_pin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd0283fd4	scif_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd69775b9	scif_readfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe372aeea	scif_unpin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xeba950b4	scif_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xef151ca3	scif_client_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xf268fbea	scif_bind
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xffa00244	scif_vwriteto
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x5b8bb699	gru_get_next_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x8dc51bdd	gru_create_message_queue
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x9c7283a1	gru_copy_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xd3d2bf04	gru_free_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xde08c325	gru_read_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xeed7d505	gru_send_message_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x1018eee0	xp_restrict_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x12333991	xpc_set_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x345c9217	xpc_disconnect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x39046c7a	xpc_clear_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x48e62c9f	xp_region_size
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x6285dfe8	xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x64ba5017	xp_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68d27065	xp_expand_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68fa7d28	xp_remote_memcpy
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x7d5ba9a9	xpc_registrations
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xc04c7267	xpc_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xe68acd6c	xpc_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xead4f7fe	xp_max_npartitions
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xed1d3813	xp_socket_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xf3b47f67	xp_partition_id
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x024d14bc	vmci_qpair_produce_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x046dd187	vmci_datagram_create_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x056837fb	vmci_get_context_id
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x1fd4782d	vmci_qpair_get_produce_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x2449459d	vmci_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a22fa8a	vmci_datagram_destroy_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b	vmci_qpair_peek
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5591b58e	vmci_context_get_priv_flags
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5e949e0a	vmci_doorbell_destroy
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae	vmci_qpair_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x676bd843	vmci_qpair_consume_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x75fe065a	vmci_send_datagram
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7c74d7a6	vmci_qpair_consume_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef	vmci_qpair_dequeue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x93a7545b	vmci_qpair_dequev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x990fae46	vmci_qpair_enquev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xb572e830	vmci_doorbell_create
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbad935b6	vmci_qpair_peekv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbcb85f62	vmci_doorbell_notify
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc04c7e84	vmci_qpair_get_consume_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc403cafe	vmci_is_context_owner
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xde3abc2e	vmci_datagram_create_handle_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe0cc9c92	vmci_qpair_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe11895c1	vmci_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1	vmci_qpair_enqueue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea143610	vmci_datagram_send
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea61eefe	vmci_qpair_produce_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x069f2a8d	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x07d42747	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0c914c68	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0fcdc6d3	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x107e8709	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x159a12e8	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x16fd6cd8	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1b0e4d58	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x22b036e4	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x26c135f2	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2bb63816	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x361e6102	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3b912bad	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4544bc2b	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x47355a9b	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x55dd3324	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5e23b95d	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x60fa0c35	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x64721aaf	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7739cfbd	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7c024629	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8198308b	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x865d76aa	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9465a04b	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa42ea071	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xaa301313	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb2f642c5	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb7126104	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb9043bdc	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbbc4ffb1	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbc3e2e7a	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbcfa17b5	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbfdc52d6	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd1af69b1	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd7a8606f	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe591b5af	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf492a6fe	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfa9a7538	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfda03982	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14327482	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14d35e73	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x5503b5e9	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x6ddbf83b	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x8861ebe1	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x8f89c111	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb4696c46	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xccf8c01f	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf9e37f0c	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x1d5c289a	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x22750d72	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xe0420d0c	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x02c8ba6e	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x7c9af1be	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xf13175e8	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x930fdce9	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xb8fd5544	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xd422da70	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xff39cf1f	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x3b0f37b3	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x5393c5b8	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0ec3b4ea	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x108459e0	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x135ee8a6	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1375125b	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x19f5c11c	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1bcd6f9f	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2a932e86	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2afd6952	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x35177946	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3ac98214	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x424dee7e	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x447281a5	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x46f8cc9f	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x47ea7771	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x488f1b43	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4d442773	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x55900349	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x565b34be	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5aea5b45	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5d200f47	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5f790b8c	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x607c4b34	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x61430887	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x63603b5b	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7240f2d5	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x73b6345d	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x73b80365	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x878176ff	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8f09fe2b	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x909afebf	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x97870c62	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x98430082	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x98ddf174	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9d239bdb	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9e7c4fd6	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa3936fda	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa5580910	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa5f495d2	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa6673b6f	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa6ce3e16	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xaf06bd78	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb131aee8	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbb6dd6c5	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc67b6429	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcbea9d82	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd6e81908	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd8614c2b	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe24afa82	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe351874f	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe8d7d1d2	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xea5758fd	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfcbec611	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfd4116c2	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x13aedbb3	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x47793b44	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x6263db33	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xb6690676	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xe589f25b	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x2e402be4	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5e8fb5b6	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6269c89a	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x627ce11c	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6f738e63	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x7df7bd68	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x8551e922	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x905aed2b	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x9d81d952	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa18fec6a	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xcd6660dc	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd9c502b5	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf9a02243	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3afd4903	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3b6a6c20	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x1a434efd	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0857a89d	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x19f14326	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x22a2a085	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x236ab203	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x24c75933	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2b52ea0a	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x38476579	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x445947e4	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5e332eea	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x666eaa50	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6a024b41	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x763b40d9	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x777c6996	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x78a77439	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7b6a5f06	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7fa68155	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9cf1cd3d	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xaff04a3a	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb32707f7	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb66e9826	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc9e6c534	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xcfa5c2cd	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd5737029	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe8bbaf44	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf5e16f15	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xff8be2a4	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x988a9b2f	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x40578e10	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xb264c373	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x12a9047a	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x13431d1f	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1ebd7dc0	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2eadd0e0	ubi_leb_change
+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 0x4879000d	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x58ef6768	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x79249c97	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7ebe75ae	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x8933c5b2	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9b29ad9d	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb77a47f6	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc62ac04e	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xec990726	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf28377f3	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x77975751	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x95159c6c	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x0601793c	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x145509f4	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x563292fa	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x823ff89d	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x91ce8f4a	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xf99270e4	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x175c6c50	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1e52da1b	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1faa96a9	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x381170aa	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x478a19d7	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x4ff50938	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x51b2c3ae	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5821ad89	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6a73c3a2	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x820cc3e5	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x88a11e9d	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8a741288	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x989aa1fb	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9b482a91	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa5810ac8	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xabb0ed6b	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xb6327b0f	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc49971f3	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xcb9b9604	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xcc562aa0	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd6dd5cd0	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xe077cc4d	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xe3f03a8e	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xee8e0fb5	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf379e993	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf6149e67	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x0bc71367	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x3d7b0278	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x7ee0826a	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xe5b5ce88	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x1fd0d4fa	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x36a05571	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x388b5c2c	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x43a35d01	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4f37524b	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc84d7796	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xe0b57ae0	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xe4777bac	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x38e65f63	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x4e5b6a00	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x6fdfc538	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x7cfdc2b8	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x18578a54	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x16a3736f	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x371030f6	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x4ef58897	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x60e907e1	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x79d254ed	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7fa0f01f	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9f90d900	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xac6ddac9	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbcf0e92c	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbe08ab56	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbec8db70	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc09ba4c3	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc99f13f0	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdb686b81	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe683e836	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe7acb998	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe858e488	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x1ef9e5d9	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2cdb3db3	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x34a1f19f	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3a744842	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x46898ae1	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5b3cb518	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6d583969	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x72047c81	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8622d480	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8cf07661	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x905dc516	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9a23d3cd	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9bef8b56	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa6022fb7	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xc13a2b04	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xce18e89f	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01a353bd	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02ae4476	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02ef8c9c	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0523833d	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0791b5d6	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0caed426	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d05d9e5	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fc91467	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1114b4ef	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12655a09	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13afb961	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x140b7095	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x157f17c3	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x160970cb	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16561aa9	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1675e63f	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b4677c0	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c508b9f	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f1776e0	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x241acc42	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x296f49b0	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a687b1e	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ad7dec1	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c218484	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c7dd38f	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2d3da3ac	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34d4f04d	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x374a83e4	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x399737da	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a78b77d	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b280f9b	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dd5bfd9	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e64721e	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f1bf4a0	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x467581f8	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47ade286	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x499d92b1	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49a9917c	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49fb6d3c	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b32b773	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b56db8a	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4fd00aa2	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x523ce593	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57444c7c	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57551d1e	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5755ace3	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57a4fa34	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59d44b22	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b1931f1	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5de2a3a8	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e226e2b	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e9c49f2	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5eef8e56	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f61bb8f	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61a3d936	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6248206f	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64689175	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x696a1453	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d49f9c1	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e968c25	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f06998d	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fae5da3	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70c12d52	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74a35f19	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x783a0540	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79e376c3	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7adb6570	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b39102a	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7edf6d81	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81c8e8f8	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81e9e022	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x834476d0	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8356019d	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x845cb993	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89a3385f	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ac6e5f2	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e9fb9df	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90dc4ac9	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x924d49ce	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9398e594	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99ad4b1a	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b84e42d	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9da9ac3e	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1ed705d	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa37ac954	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa521c120	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa79dd769	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa58f580	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaaf2a630	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaec596ec	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf2d0606	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0e35692	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1044121	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba8f6791	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd525a2c	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdaa199a	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe9c5e71	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4c19292	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7594d97	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9387b7f	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc2d3c18	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcce47d47	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf61bdb0	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd55c2eed	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7049086	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd069843	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe01947b9	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5ba03fa	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe75ac107	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe77d53f3	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebc4fac1	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebf98c5a	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec73a153	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecf3ae19	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee00a7ba	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee45dc3a	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee8196a7	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1196ad6	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf17ed582	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf579285c	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf779993c	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf923be98	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9cab41b	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfb4fd5d8	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd50dcde	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffe4c890	mlx4_qp_modify
+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 0x081a6de0	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x084a4582	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12e4ed8f	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x135a5a12	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14c3318d	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x154ee389	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15a1de2e	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18743ed1	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1951f812	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21a2a4e0	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21e8a347	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x223963c1	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x238513ef	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x247ba3d9	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x259a5f97	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x288bfc22	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fdf4943	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30e777dc	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x312232f9	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x373530c1	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40588209	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4160b927	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cc1cb52	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dda382a	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5170daac	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51a9dd18	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52eb31f2	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5356faef	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53f84afb	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5707ae1a	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5949675b	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a9f794d	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ab56278	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c73bc5e	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x609db2b1	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65bc15b5	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a3506e5	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c468386	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6da4e6a1	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e0ee6ef	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72681b11	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a5afb6e	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7e8972ba	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82e36910	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8364d71a	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x871a7ef6	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88e358c5	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8fd589d3	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ffeb289	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x982f8198	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a2fa3f0	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c5386b6	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4cce476	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4f09ea3	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5fb2ade	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa94a3ab3	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa19f5a6	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad946b0d	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xada325a0	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaeb78761	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb052ed2d	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb73a2af6	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbad2dfc2	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbda2a629	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbeb7d066	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1810a6c	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6aabf31	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8725a6d	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd167e142	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd65c707	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf1286aa	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe06b0f27	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3ef6090	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3f637c3	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7ec46b6	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8e01029	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb1c83bb	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xece8b760	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf06edad3	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5e2bddb	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf705e6db	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfddfa9d6	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe0c0c7f	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe535ec4	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff1a5033	mlx5_core_destroy_qp
+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 0xea71911c	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x0c348bad	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x41a43d48	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x433c7f41	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 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xf53f9375	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x047a63d6	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x0f3cbdd7	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2f5b4e43	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xce74e599	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xdb2ab4a6	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x20dea8f6	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x9a86626e	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xa2a5bc9e	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xf38e2b64	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xf96a09e5	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x43f58cf6	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x714586c7	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x882dc477	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xadd978d4	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xb2fdace7	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x051a625e	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x620abc3c	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xcb9f80f9	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xd44dea27	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x029af046	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x3d87d787	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x09625789	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x28ff3429	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2e567344	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x55c27b60	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5dc5d48d	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x636248b9	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6d9ebe7f	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x709023ae	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7c77db83	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x82f09b41	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb398c1b0	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb794b8dc	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb991b759	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc3d2f6ca	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc4b118de	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe43f0f73	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xedb9f342	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xef1fd603	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x59c1a4fa	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x0ee91def	phylink_of_phy_connect
+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 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+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 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x9397f399	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xd0809a97	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xeaef7476	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x09427451	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x0ed75a4e	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x11e99d02	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x11ea5515	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x529760a3	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x60195df7	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc26b7454	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc745dafd	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xd2cb4aee	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x304b9e27	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x927f39aa	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xcc85183c	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xe99f5663	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xf2f005f5	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x0a3ee0ca	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x17638da9	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x2b783714	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x3598ad7c	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x5b4b5521	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x5e1e55b3	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xa8b0c6dd	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd6708d50	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xede9abd7	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x1424d2b6	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x7e364eb5	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xaf42413b	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xc58357e8	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xf185d837	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xff7477a9	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x040ff464	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x04931187	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0e4af3fe	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0edc4fdc	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x512b57ba	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x52e1bcaf	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x545be9e9	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x567a8109	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5b9ef0e3	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7bf6b05b	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x921a17b1	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x988ee870	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9c79f6b5	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9cdc043b	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9efc0565	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa11aee1f	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa96b2274	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbc0a4a6c	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc47125ee	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc687a294	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xca9c5e88	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd11c9b8c	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd31ceb39	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdc2d44a6	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdd957e7c	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdf197c52	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdfe57bb9	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe740f201	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe745abc4	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf1ed053d	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xff10712f	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xff929ad8	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xffb4a17b	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x2ae87e45	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xc2b5ffd0	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xc7d8eaaf	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xf64ffdf1	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1281a81b	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x28ef8253	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x41765ed6	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4f0b2095	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x5f372fdc	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6f76583e	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7f7f7cd5	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9518c51d	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x959b8ac7	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xabbe496b	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xad2981bd	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcf1ca7c0	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd11195ad	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe47688e7	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf024fa7e	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf0aa5520	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6b90a0fc	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22e412bf	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x23cbfe61	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x65a0aa93	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbedf9ae5	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdab50204	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02322e59	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x05a1f983	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0745a1ec	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x12ecf489	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x12f710b8	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x178284c0	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x19a504ca	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2049d6b7	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2384938d	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2b25f4e8	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3891eee6	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3f432bd0	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4259271a	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x44dc5862	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x47b143b0	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4914ac46	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4facf2bf	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4fb00190	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5a0b507a	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6248310c	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x66e70b7d	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6d9305c0	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6dce08fc	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x70ab5dd2	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x70bb987b	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x712eaa8e	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7b81e16f	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8291bac7	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x89b5f196	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8be5d267	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9086646f	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa0b3f975	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa10f90a1	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa28e09b3	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa32d6f92	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa77d42bf	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xabb3b0ff	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb1335d6d	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb2c9b5de	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb5f41ad7	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb68e2535	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb6fec749	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xba914869	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbb82908d	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc037664a	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc5c9f0a9	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xccbba5b8	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd11dbbc5	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd17ec47d	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd3694f3b	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd6f2c1a1	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd7d32941	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe26ca1e3	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe3fd8479	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe4d14620	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xed3a2dcf	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf1d4da6e	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf23da6c2	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf2c40e9c	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x0ddc730f	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x26bed4c4	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x509cab63	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x766e39fa	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x8be1eef9	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xa7d9939a	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xb1c5bad7	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xe072294a	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf908c184	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0a886098	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0ce272d9	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x194a45e7	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x25849904	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x32b86cb2	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6589ddbf	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x7066f545	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x7c7ee6ab	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8203929d	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x87311dcf	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x9e5b944c	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa1d316e3	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xba345c35	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd4c8fc2b	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd599cf7a	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfcaebfb4	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x146fb19f	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x517f8f76	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x568f3863	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x64dd7760	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x82d88229	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x87eed292	lbtf_cmd_copyback
+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 0xe381e658	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf921147a	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x03d53c19	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x06ff405e	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x13e47921	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x424440ab	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x541571da	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5e935cdd	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x60677cae	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6ad90a26	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6bcd4f92	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x70a69b30	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7a4f1668	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7b9ff5de	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7da79c70	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x889af33d	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x89d8aa40	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x983be061	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x98ae37a7	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9d8a61e4	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb3304ad9	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb36f39aa	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbff0240c	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdbba014b	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf815eb8c	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfc301fac	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x01e5c06f	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x02a991c9	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x04816e53	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x04ca551f	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0a2b5a2f	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0b824925	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0d630399	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x134a0e3a	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1edbd229	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x20ddc8ae	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x22f17ca6	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x25d58415	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x28583193	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x32afdbb2	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3ce4acfd	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3e2587f4	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4143bf6b	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4249f038	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x43a062da	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4406c76c	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x44548635	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4aa72695	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4b55c9eb	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4d40d371	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4f0a5491	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5c094ad5	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x60fdb10c	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x643fc126	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6458ee22	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6d87ce01	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6fde4ac5	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7176b779	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x79ccd2ac	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7f63a250	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x838e4a36	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8c9806fe	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8d99ea2f	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8f31dd72	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x92ae244d	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x99b81d19	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9ac8bdc7	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa346a110	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa8ef1a6a	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xad5368d4	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xae34bf18	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb01e1018	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb5ce318f	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbd6a7d7c	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xccd70588	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd64a3ec6	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd7861a19	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdf4f476b	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe695bd8d	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x00163b6d	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x139f3580	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x28508b0d	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x46af48e0	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x6f0fa39c	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa34e9cf8	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbf02acd3	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc0a0c3b1	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x36171cc7	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x40cab030	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x5371a94d	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x6cbcba5c	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x804b49ad	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa559be23	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb7a93469	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x03608a3b	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x069dcdc3	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x083d9c4c	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x099cda14	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x09e95c42	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x14c05541	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x20062ae6	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x209a85ff	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x21293aa3	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x262325aa	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x280157f2	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2a11c1e2	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2cc49b38	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e5a450d	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35b7c9d1	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d82619	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3f8198ee	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4e2c098b	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4e4c71f0	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x598301bc	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a036a58	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d592159	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x62aa210b	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7187b281	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7bd4e3b5	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7de908e4	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x80229b90	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8122edf1	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x89deeae4	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8adbce51	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8cd60165	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8d07c8c3	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8d4faba3	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x987c8d4a	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9c3447fb	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xabbad95e	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xac6df95a	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaf82d1c5	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb56bfb29	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb71e4202	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbf0464c3	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc2d7bc57	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc55e4838	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc94bb5eb	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcf32bd62	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd0774f29	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd1063fbf	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdbc61cf5	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdc3a675e	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xde125eb2	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe08c1ef2	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe2494ee5	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe3bdbf65	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe60f19af	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xeaa842fa	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xef0181e7	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf1c64d28	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf7dc1484	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf89316ea	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf91f3a5e	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfbb97df4	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfcf897d8	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfecbb92c	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x583580b5	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x6964b940	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7db1ee34	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7f89a68a	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb51afbbd	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xda39185f	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xfe5bdcbd	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0098de76	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x236c5287	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x42eb59d7	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x60ffdde6	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6cefb713	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6edeade3	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7c984e3c	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8434935d	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8c5bb192	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8ed8457f	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x92c3eef4	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x973bf1e7	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9a1b940a	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb5b85acc	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc1853ed1	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd3b14f1a	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xdb03b547	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe8ff9179	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf64f50f3	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1a5dbe1b	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x23f3cdcc	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x72dca510	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x8697015d	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x9ce122f1	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x9e264e9a	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xc6f3b2b0	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xc74be9be	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xead2c519	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x074f1c10	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x09142c06	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0c7f9698	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x19a10a3e	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1b808b53	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x298f7cc8	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2a6578fa	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2c732f01	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2fd6302d	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3163835c	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3ee8a4e2	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42f04311	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x46099588	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x463351d4	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x498a8218	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x51414f8d	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x51d0badf	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x52c39d96	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5d9903a8	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x743d12e6	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x79efcd6c	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x860ac742	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x989c5006	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9faaf62b	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa0addbff	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa35d0d14	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa405d0b1	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa85a67aa	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xaa9e017e	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xab8d4465	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb6b78234	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb9246a74	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xba46a4b1	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xba941148	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc342fb4e	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd0510a4d	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd91f752f	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd9bfea85	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe2763bad	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe89736de	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xea5b164a	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf4bb0188	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf5e4d876	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf7c09e31	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1d62b31e	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1f144a04	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2772791d	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2e787a1c	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2f3abf15	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x35e27319	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x393fc789	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4907f405	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6d748ad3	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x74b4de8b	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9725f3f9	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa70f0140	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb6e79623	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcc91daec	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xceb24677	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd5a45eae	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x08b21a02	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x08ed2cee	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x163d67b2	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x16b43582	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1c14654f	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1d8425ea	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1fd496ab	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x235a2cfd	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x26117195	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x264fa997	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x28306ed9	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2b1282c9	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2f23d5dd	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x33a5e667	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4b477f0a	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4f674938	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x50fc5268	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x545b1d8c	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5b6bee7c	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5b75bd1b	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x615522fc	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x631f211b	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x65f775ba	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x76dad7a5	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7a8a4ce6	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8064b426	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x80ba0071	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8c88f38f	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8df0e2ad	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8f222fdf	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x90511e8d	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x91cfe39e	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x95520ed4	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x98e298e9	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9d3a6e7b	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9e9935eb	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa8bc6f34	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaf63d770	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb2051020	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb5aa4a24	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc7d22baa	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5b2458e	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdbb7f490	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe092fa53	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe211837c	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xee543898	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x1805776c	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x844f54ae	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x861a81aa	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xaef09944	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xd7ea29b2	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x35648d60	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x9e87d7e0	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xef908271	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xf54146fa	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x125ccae3	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1535917e	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x25d7b4c2	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x56303b8d	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x75252d1b	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x764f5034	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8bec4dd0	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x938e8ae7	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaae27f9b	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xad5310a9	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb473b7d0	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbc53c50b	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd11487a1	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd14bd241	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xea7165e6	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf388063e	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x06fda575	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0b64f892	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2f526f6d	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x64e4d11f	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x05409084	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0f67805b	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x13eef55a	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1d99e549	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x240c18bb	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x29a88ab8	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2f16d2e6	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x33820887	rtl8723be_firmware_selfreset
+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 0x441ca811	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x467a2857	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x48603e89	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x48bb2a60	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x61fb4a1e	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x62b2b671	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x62c2247d	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x695bcd0e	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x70e5ccc3	rtl8723_dm_init_dynamic_bb_powersaving
+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 0x9ee3b8aa	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbaf43a07	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd5887361	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xea08934d	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf99df931	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfb93b803	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfc0fa7f4	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xffa077bb	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00b2fa2f	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0af70810	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ea3e0b9	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ee24bdc	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x12be0fa2	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b706261	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1ef421df	rtl_get_hwinfo
+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 0x31d4290c	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x39769959	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3a70e8f7	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x422d0501	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x46dd0414	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4db17b4a	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4dce5eef	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x51780344	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5cac7518	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x68e3a67b	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x761eeaf7	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x81da6a10	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 0x9a9b5109	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9b2f5a87	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa5c9087c	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa8b30a6d	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd4e6b954	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdb53712b	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x4b0613a2	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x6207a614	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x668fda76	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x6f9456cb	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xd6a9e1cd	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x37c8e506	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x3ffe617c	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xbf80417c	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xc285f2be	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x394acb13	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x59d97cde	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xe0ad47d4	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x000fea19	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x00aa9d52	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x05a880ee	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x08b8ab03	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0a2e5b35	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0ad774e3	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x117d2658	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x12a535f1	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x13d247c4	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 0x22967afa	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x285537f4	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x29a3b601	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2f545ee7	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x372e92bb	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x38a2c972	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3d1aac71	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3e62bfbc	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x45750a68	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x48d3da6b	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4c3ad9bc	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4d43b899	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4dbbb8bc	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4fc33666	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x52e62049	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5ff4ce0b	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6dbe2c43	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6e597892	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x76348e3f	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x764109e2	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7b348622	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8601c9f3	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x90e0b4b8	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9af1a58b	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9e15cfac	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9fb96db6	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb75d2675	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc023defb	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc3586a6d	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc6249d57	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcca29379	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcd8e90d3	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xda583f27	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe5e55b0c	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x069376ab	nfc_mei_phy_alloc
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x29aad15c	mei_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x6ff205d6	nfc_mei_phy_free
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x13e6f7bf	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x1eadbaa6	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xcec2a75e	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf9a42e24	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x01b370a4	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x12865ccf	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x96c7cae5	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xfe42c66c	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x223ee44e	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x6734eadf	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x70c5b537	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x886270fa	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x9ce9d1fa	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xbed4bc60	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xc8bcce78	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xd0427040	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x235d085a	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x9656d3ea	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xbf138a8f	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 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 0x5d168d74	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 0xbb88d4f7	ntb_transport_unregister_client
+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 0xdd5e349d	ntb_transport_register_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 0x9fed59b0	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xeb44d7b0	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x08008c71	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x12734696	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1f0dabf0	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x33b860fe	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x436e8293	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x45241e44	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4f1e6b4f	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x58c409c2	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x63d0c632	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6fc1cd5f	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x715cac6d	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x74bc1dd9	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x77ca5b9c	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x798fd69e	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7de183bc	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8702b64a	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8780d995	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9d34cc90	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9f5f23f2	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa276fe3e	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xab8eb5d5	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xab981cf4	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xad6b54d1	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaee2225d	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb63d11df	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb84de893	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbdbaab56	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc10417ba	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd8309fba	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe2bebe0a	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe6a433b9	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe7641834	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe83cca54	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf038c7e9	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf6439cca	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfa0c1606	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x093ce169	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0b2c7ddf	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x10a724a8	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x173cf25f	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x2766e155	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x39678b24	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6511e93c	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8284c7d6	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9595414a	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa0b786af	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe1bcf6b1	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfef5d6c3	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0x6fe5566f	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x02360ec5	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x25b18b17	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x402fd250	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x75f53e26	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x925d5141	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x9455359d	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xae911997	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb61f241a	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xddfca192	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf17ea1e9	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xfa0d50f8	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x91c921ef	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x1591b2c6	hyperv_read_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x221394ae	hyperv_reg_block_invalidate
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xe5f73406	hyperv_write_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xfb921e00	hvpci_block_ops
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x6288d766	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x2a8ac85e	intel_pinctrl_probe_by_hid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x56b7f4de	intel_pinctrl_suspend_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x7f2c8cfa	intel_pinctrl_resume_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xcff3ae21	intel_pinctrl_probe_by_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x18dbe190	wilco_ec_set_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x2041327d	wilco_ec_get_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x78ca6eb6	wilco_ec_get_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xa66c9ee2	wilco_ec_mailbox
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xf3b54717	wilco_ec_set_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x57c46ceb	asus_wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x7557d51a	asus_wmi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0xd950693d	asus_wmi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0x51552fca	dell_rbtn_notifier_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0xa060fe7d	dell_rbtn_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x05a66784	dell_smbios_call_filter
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x12a6e174	dell_smbios_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x1b0b3141	dell_laptop_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x45170471	dell_smbios_call
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x7fd2ce06	dell_smbios_find_token
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb9400dbf	dell_laptop_call_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc2871e79	dell_smbios_error
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc8c4aaf9	dell_smbios_register_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xd6c6b12d	dell_laptop_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x8eef8246	dell_wmi_get_hotfix
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x9559234e	dell_wmi_get_interface_version
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa167d064	dell_wmi_get_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa3dcfa65	dell_wmi_get_descriptor_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_ips 0x46809fa9	ips_link_to_i915_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x659f040f	intel_pmc_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x9bd9354b	intel_pmc_gcr_read64
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xa7f53967	intel_pmc_gcr_write
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xad38eacf	intel_pmc_gcr_update
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc49eaee5	intel_pmc_s0ix_counter_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc845c71a	intel_pmc_ipc_raw_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xd2a5d365	intel_pmc_gcr_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xdea07053	intel_pmc_ipc_simple_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_punit_ipc 0x8ee9455e	intel_punit_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x06f7821f	isst_if_mbox_cmd_set_req
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x21c58190	isst_if_get_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x557d31e4	isst_if_cdev_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x58a8261f	isst_if_mbox_cmd_invalid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x861369f8	isst_resume_common
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x9a5c38f2	isst_store_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xe18f42a5	isst_if_cdev_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x1c7565c2	telemetry_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x35db93a6	telemetry_get_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x3d2a8587	telemetry_set_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x4cb51f18	telemetry_pltconfig_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5847f501	telemetry_clear_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5bb8e91a	telemetry_raw_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x665cd407	telemetry_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x6b892524	telemetry_set_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x82bb2dbe	telemetry_get_evtname
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x90551504	telemetry_add_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xb75bd1e6	telemetry_raw_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xbb9a2726	telemetry_reset_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xd14ffffc	telemetry_update_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe1eb4be1	telemetry_set_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe8847f53	telemetry_get_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xf00771b0	telemetry_get_eventconfig
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x232b5238	mxm_wmi_supported
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x61cdf799	mxm_wmi_call_mxds
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0xe26032eb	mxm_wmi_call_mxmx
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x065b4695	wmi_get_acpi_device_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x17b0f8ca	wmi_get_event_data
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x5bff0c1e	wmidev_block_query
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6068bedf	wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x68267e6b	wmidev_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x76ae31fd	wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xaba842fe	wmi_query_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xc9d4d6d1	wmi_has_guid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xd7752b86	wmi_set_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xe78182ea	set_required_buffer_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xf18bdd75	wmi_install_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x87bdf525	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xae1b3a0a	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xfa25caa1	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x8a1f960a	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xa01ab147	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xe43a0e72	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x05d9b5d5	rapl_add_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x56581a6d	rapl_remove_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x6a718d88	rapl_add_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x8c8132de	rapl_find_package_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xf5b0e8f4	rapl_remove_package
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x45e7114d	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x4d8a257f	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x542ab8e4	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x408c3627	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x42455c41	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x517ae3ad	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x79fc7c11	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x8e9b165d	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xcd6f7a1d	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x399e0e09	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xc0186f34	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0093f242	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0ab24075	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0c402810	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x13b73355	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x18824de8	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x22ba286a	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x242f74f7	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x246d36a7	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2d7a3c83	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2dfec79b	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3974dedc	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3a809e22	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x427f9153	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5087aeeb	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x51a7e40e	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5ed8c421	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5fcc789c	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6166abee	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x74611f77	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x760147b8	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7b4af38e	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7bad6f7e	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7db65630	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x84c55b9d	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x87f1cafc	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8e49ed95	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9464439b	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9703a820	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9ba035ce	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xadcf3f94	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb15db848	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb4c704ec	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb58b9857	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb71880b7	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc0fa22a6	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc2dfb353	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc92d0b2c	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcc073c69	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd696231c	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd9730374	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdc60420e	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe84296aa	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf39b04e7	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf9997149	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3b43ea24	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5aefae34	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x64a3dadb	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x68d345e5	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7c9d55a2	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x81a20067	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x88c0ebe7	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x8c8b40f8	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x8eee4851	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xada1e272	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb2967059	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xba753085	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc98f13c7	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd6743886	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd767cba8	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf0d85929	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x321a4bbd	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xcc9ab448	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c7c6002	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cf9e29e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61eabfa8	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7ff195b0	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc6125854	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd93b63bd	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe13e6489	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x00daac58	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0143af73	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x071d4340	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x091cd04d	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2138fcd0	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x25e3db4f	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x25f2058d	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x33b6c487	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x36c4ee82	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x37b0d77d	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x397b03aa	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x39c05563	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3df9c9db	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x43a35bae	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x43bc8253	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4f599d5e	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x51de5555	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5f58f5a0	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x60bf3a14	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x614feeee	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6809cb07	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6909d55d	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6d6e1723	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6f04277b	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6f97ebf4	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x81a8c8b8	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x84fbc20a	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d3982b9	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x95cee76a	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9efd3c2f	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa58dcb68	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa63a3dbb	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc5e8321d	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd064e990	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd404bf21	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd5f3e97f	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd859567f	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd92ca154	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe04cbf07	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe4c7d0a1	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xee52a06e	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf89e82f7	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x074d3975	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2167809e	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x251597e8	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3156b499	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3b4c735b	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4d05a435	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5b0d53f8	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6266f852	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x95e29104	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa4746019	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xae0b9fb8	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb09b8c1a	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xcdcedd85	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe730a26a	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xea79217e	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xee617c0e	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfa032b31	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1fae3f94	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x23c102a9	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x26712560	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x33e131a3	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x41e475ba	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4be3750f	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d5ad3d1	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4fdd4c05	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5c85defb	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x61ac97bb	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6293ca2b	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x65c3b64b	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x73b36421	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x84072f12	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x988d73cc	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xab390129	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xaedd8230	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb823bef4	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd3fe2214	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe19e1c72	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe92742a4	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa2ef181	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfca774d1	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfd391974	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0b96e878	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x16249b12	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x17a05d58	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x17eb6b44	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1826de7f	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x21dc0665	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2ba6db87	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2c4b94c5	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2eb55b50	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3797a1d4	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3f2db90e	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x447c6c6d	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x46799af5	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4c525d51	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x558c6608	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x55e52cd3	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6345db9a	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 0x754d0766	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7cc31ca9	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7e601924	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7fba9e96	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7ff8268e	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x81949fdf	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8a00e339	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x90569bf2	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x92c11315	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x92c4b132	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x94c65afc	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9fccfb62	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa901b38e	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xabc3f3e6	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb55e355a	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbdca5548	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbf354840	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc71570f4	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd77d3351	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe183fd10	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xee1e5e10	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf3ac380b	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x6ad2e3c4	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x7d44ca11	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xaf81e33c	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xfbd0a336	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x143e13bd	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_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 0x3a74ddf8	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5bda5d2f	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x8952d2f1	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9e03d82f	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9e4f05c6	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xbe65b8e9	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x0019dcd1	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x076f48bb	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x33e60dcb	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x3bf4becc	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x402ad2f9	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x5629d1c0	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x5fad7a39	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xb9373696	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xef4a1b00	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x02152e5b	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2a3e14ed	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x3e9ed522	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xced9eaae	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd7af9dae	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xf3fdfd62	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xfd49972e	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x0b7fbc6e	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x102bf418	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x39e266c7	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x4f444749	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf5aac97f	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf62ee25a	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0420cb59	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0f67e299	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1bf41671	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x290c493f	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3667c0f8	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3fc2e477	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x485d53ac	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x614724e8	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x70623832	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x76ddfe83	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x835e5dc5	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8665b43d	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8ae5fb93	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8b9c5476	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x911dcc77	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x92e1b8c0	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x969d7fff	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xab7cfbf5	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb65d4e27	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe0eb471a	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe22b9ef4	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe4f1666c	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe5ad5e87	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe850a3d9	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe9a3e8a0	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf2444396	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x3654d555	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x7db9ce81	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xbd7024f1	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-cadence 0xc20f95ec	sdw_cdns_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x5859c682	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6a845266	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6c9ff000	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x88f0043c	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe8cfd34d	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xee17a11f	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x0658c7d1	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8b05400c	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9869215d	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xb1622250	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xeee6564b	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x87a1147b	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xca58cb05	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xcc7ed944	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x326c547f	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x4006f053	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x553e8d63	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x5c0b9733	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6907b045	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6b31127d	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7a96662b	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7f23e14a	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8088fda0	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8e9abafe	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9ae238da	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xadc864b7	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xba0e0ac2	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc94e01be	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe6e2f8f7	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xeabb473c	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfacba239	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfbc3a803	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x00edcc24	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x02138a36	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0557ac41	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1e751cb6	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1fb710c0	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x22a6cba7	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x31e4a819	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x328df1df	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x35129a1d	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3fb4a591	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x42edc8d2	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x460bf7c8	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4addfa1b	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5681e9a9	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x67374721	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x751b3577	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x78a8ee56	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7a63f81d	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x85b5c5f0	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90c136af	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90f7d6b6	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9308b56a	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x986fcc70	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xabd32a90	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xac291262	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb15b9ec4	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb574f0f5	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb59cc20	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xca2d24fc	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xce97df34	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe2b11816	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe4421901	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe98d1b45	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xebba0324	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf05a0ebe	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf8e4f5bd	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfe194698	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x03516408	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x1b0975c8	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x3de37322	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x77c0d2f3	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x7b1f9c6f	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x8ccba4cf	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xc5a30c12	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xecf719be	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x15b288cb	comedi_pcmcia_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x3adc71ef	comedi_to_pcmcia_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x4cd00c66	comedi_pcmcia_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x5b1c9f58	comedi_pcmcia_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x67359e8c	comedi_pcmcia_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xafe328f1	comedi_pcmcia_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xd009404b	comedi_pcmcia_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x0dcab7ed	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4ae52e01	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x5e2f035a	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x72e4fe08	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x758c94eb	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa3c94ae5	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0xc2828dfe	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x3db97c5e	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x975502c7	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x1f08d901	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x01929a12	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x39d37dd0	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x45702731	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x66f0b617	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa114f04d	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa8206a14	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb1715450	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb4637d01	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc6277f7c	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc7fc1852	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe8b6d64f	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xef845c27	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf4498430	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x219455e6	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x449f8737	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x851b05d6	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x088dad77	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x800ff90b	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x8dea3703	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xb339ef08	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0c8f3c69	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x17c7027c	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3043d333	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3798f113	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4e5040fc	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5606f9dd	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5dd53593	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8126ba7b	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x83824e23	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x86f03892	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x88cd8976	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8b8cbf25	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x986814a7	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xa7146ac2	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb4f58cb7	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbf1da36c	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x6dc4484d	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xf891a670	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x28196998	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x29ac56ca	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x70e36a75	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x8fb89d30	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xbdc00153	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x16387f8f	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1c60f51f	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4aff141f	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4cfa129a	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4ec83f94	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5a233cae	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x60824036	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x72823105	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7487a8c9	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7b6793e2	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x80383284	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x81526dfa	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x819db321	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x841a612f	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x860dffc8	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfe7d150b	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0743bd44	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x9a982668	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xa944c53c	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc5d8dd77	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc8fb249c	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xfba691bb	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x2a317387	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x2f6816c3	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x4a731f6e	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5ec525ee	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb7a6adc5	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xd6de4db6	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xeede59d5	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x1f319100	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x727543bd	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xba99c68c	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xbcee2fb7	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4b376635	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6902b4f9	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x896cbb84	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x8c5ed5fe	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa7fb5427	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb3a6587e	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbac4a87b	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc6f85663	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd3f16775	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdd7320b1	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xed5dd7ba	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf6d6a168	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfbe8cb26	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1e514421	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x31954aa1	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x47b2245f	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5089a362	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x56999614	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7034953a	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8ac945b9	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8e6df6a6	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x93c1d471	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xbc571a90	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc1ce3d27	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc411a2fa	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xef2325e3	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+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 0x944132ea	gb_audio_manager_put_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 0xe88d2704	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x027b738d	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x31bb833c	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x360edcc4	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xcc1ce842	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0xec89ff79	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x15980edd	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x29c17aa8	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4135286f	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4d645709	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4ff055d9	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x5e91799e	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x60e84bb3	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6d48b440	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7b3b3786	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7cf1c201	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8a6468c1	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8fef5ede	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x955f2139	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xbf3c8537	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcad109ce	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd1532d07	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xda535b02	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x06be832f	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1db8ca1f	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5b0d8314	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5e401e9b	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6c9db43b	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7e186c97	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xaa16c53d	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbf5e0656	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc10f7200	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc9d99415	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xdbc2d343	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe83c545b	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf224e24e	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xfb174a6e	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x02c29a26	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1f77e23c	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2851daa9	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x45b7d8dd	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4ca37cf3	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6610bad2	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6c6d60b7	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76def27d	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76e8bffe	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x86df49ef	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbe0ff708	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc037a0ce	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc4a3265a	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc911e7f9	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd44f47df	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdfbc50e3	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe4dc71a1	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x1eef86cc	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x370cb18c	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x97765de3	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x05f04543	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x41e3f50c	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6c9de759	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6d4b349d	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa697faff	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa6dfe633	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xda7b625d	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xdf96ceb6	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0871a041	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0a0f7210	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x17ea2832	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1b6e00ba	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1f722272	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1fcd63e5	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x21ca9083	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x39f301f5	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3bda59b6	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3f5e967f	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4451a14e	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4510c02f	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x45c2ffe6	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5c73eaf5	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6da96340	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x72c28eb3	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x73ea3c77	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x77946c70	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7fd85049	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8fc8d2c0	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8fc99146	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x97745cb0	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9c20ceb7	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb1b6a0ec	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb3186d23	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb512b137	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbee3157e	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc2c3cf82	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc9dd2d6f	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcd8b24df	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xda0b6384	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe0c22d0b	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe89e20c2	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf42abdb1	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf507f754	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfe264591	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xff337e1a	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x4e2e2493	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x07c0d579	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x392db9fa	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x58bc8b63	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x87e9a2f1	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xabde2c72	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xd4e2b798	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xf7ea02dd	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x19cb1566	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x2a5c8d82	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x425cbf0f	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5e75a0d3	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xb0a790a9	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xb4b32f8b	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd97e6794	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x08759db6	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x17cdda43	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x188603ee	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5002fd96	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x544c7803	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x97ddb6b3	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9a7143d5	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb8db9ec6	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc6202565	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd1d4271f	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd3fad561	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xdfd8c6d3	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf9541a68	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xfd0f9dc8	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x112102ae	int340x_thermal_zone_add
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x7929fad1	int340x_thermal_read_trips
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xc89259f9	int340x_thermal_zone_remove
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x09d5c471	intel_soc_dts_iosf_exit
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x26ffc82a	intel_soc_dts_iosf_init
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x9ee07b81	intel_soc_dts_iosf_interrupt_handler
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0xd06dc553	intel_soc_dts_iosf_add_read_only_critical_trip
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x01d23ee1	tb_property_create_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x03be0d9c	tb_ring_alloc_rx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x2f6d0162	tb_service_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x393b4f2f	tb_property_free_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x43af6f6c	tb_xdomain_request
+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 0x53d98cbb	tb_xdomain_enable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x55531177	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 0x693dcf72	__tb_ring_enqueue
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x73ad2acb	tb_property_get_next
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x785eb82c	tb_property_remove
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x8b62f95e	tb_property_add_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x9a7a9062	tb_ring_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa14e3096	tb_xdomain_find_by_uuid
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa3d2b403	tb_property_add_data
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa67e8a33	tb_xdomain_find_by_route
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb7c7cdce	tb_property_add_text
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc132eb57	tb_xdomain_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc5097be1	tb_ring_start
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcafb4b6c	tb_xdomain_disable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcbb11657	tb_ring_free
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xccbcfd08	tb_ring_poll
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd0d6142a	tb_xdomain_response
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd4004ed5	tb_unregister_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xe334db17	tb_ring_alloc_tx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf1cfd1ff	tb_register_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf76028c7	tb_unregister_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xfd719dd4	tb_register_service_driver
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x63796c8b	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9f6487cb	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xf74d97db	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x82f60dad	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xe0bc0c01	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x19795927	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x1f310789	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x2873e595	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x346eb3db	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x4e7a9944	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x6ffbfd76	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x973579f2	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xc74c3af2	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xffb73a78	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0ff71107	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x58a5950e	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x955be5f8	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x966e7770	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xcd5dcaa1	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xdbd5118c	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0b6c1c9c	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x15529dad	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x1a70bce0	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x2401e9a4	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3dc5b768	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x50dc6657	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x76033b0b	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xaa82b873	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb84a0ec5	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xba0dd6df	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc9dbe630	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xcc590036	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd4a6876a	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xdbca68f8	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe7f5f4a0	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x096cf83b	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xe40ebb98	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x259eaa7b	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x8aa38281	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x01be4fb0	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x03f12d0f	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0b3081c5	fsg_store_removable
+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 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 0x1dc1c297	fsg_show_inquiry_string
+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 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 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x447143a8	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x52d88e9e	fsg_store_file
+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 0x56afc93e	fsg_show_cdrom
+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 0x7215938d	fsg_show_removable
+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 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x86f3a425	fsg_store_ro
+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 0x98dd35ca	fsg_store_nofua
+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 0xa42d853c	fsg_lun_close
+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 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 0xbbaa9e35	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc8c9d049	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc9b79571	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcb1f183f	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcd7c3ebb	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xceb822ad	fsg_common_remove_lun
+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 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2407188c	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x53a78175	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5d2d40ad	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5f1b2c25	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x600b8e8e	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x60b55025	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6c0685bf	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x84100188	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x94fd376a	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xcdb9a27a	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe0ed4b97	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe9838a50	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xefdd548b	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf3c1c9f3	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xfb85f73e	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0bb16325	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x16541b5f	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1c5e932a	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x20c7ea23	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x24037e32	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2f4ae9e6	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x34b72735	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x529170d8	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x589de08f	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5db6b115	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6038f2d3	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x63b71b20	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6a5315e8	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7578ca7c	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8df4ba6e	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x94afce37	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9c051631	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9fce4d27	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa5e24976	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xad59c58b	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc0d65843	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc38d9eec	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcd39e6fe	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcea89294	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd468ec6c	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9384364	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9c5f1d8	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xda263ed9	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xde6b8356	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe3d155d6	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xffbddcce	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x03139782	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x039dd5dd	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x105f6e67	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x127dedce	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x67195f29	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x6d32ecde	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x89a693fa	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x9469b0c9	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xcbe02f0f	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0eacdbec	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x140ec084	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x18b31ca7	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1ca11dd4	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1e0f6bda	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2e7545fd	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x31fa670f	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3a1f3d62	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4aeae3f1	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4c62ca29	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5213c4f2	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x54fd7534	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x80704f18	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8329c29b	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8bae270f	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x99cde383	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9b66c307	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xad781c61	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb213339d	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc0d8356c	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xde402870	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8457822	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8564428	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xfda2caea	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xffb6e9ae	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x308f8452	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x98686a28	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x63310f1d	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x6b17dcfb	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x72f168ec	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x830551ba	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x99d99ee9	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x9b37c224	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe22c71f2	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe8522f68	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xeff5dab9	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x23f03cd0	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x2fd7878d	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x785263aa	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xe141ad73	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x01835712	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x45976c48	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x8d588f87	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xefae2c58	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xfd2d30fd	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x429354f5	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x5bfa6400	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x6a1d2d4a	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xf32a18e4	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x0c77c2f6	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x09600323	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x153ba30e	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x19db4972	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x20fcffe3	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x384ff17a	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3db8f270	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x43df5260	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x54ae41a0	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x561dff0d	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x66ecd7cb	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x76da7d73	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8da95d07	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x911cce22	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x911e06bf	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa53fc978	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb5e15641	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc3a497ae	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc41605e6	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc7368c4b	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xdbef9061	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf27dd6a2	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x31dfceff	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xe4af1828	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x03ec74b6	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+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 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 0xcfba7d62	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1197c16a	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1666cfb7	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1735e773	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1e5e8f89	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x257c63fb	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x27b9d25b	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d58eb95	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33b11be4	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x39b3957c	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e45b991	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e5a4666	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4351608a	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x46ba84ac	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x55d7e54a	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x59377ee5	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6784070a	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x727a4dca	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7f363757	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8ddcbb17	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8f5688f5	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x981a486f	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9ff4d9dd	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb0d80805	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb2fbcda4	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb6817bdc	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc5ec62db	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd4e16737	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd8173e91	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdc0a4b16	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdecf88e4	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe0aa9733	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfb0539f9	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x3f1e9106	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x443ebd54	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x4556b6f0	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x7acdf72c	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xda353a25	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2834d340	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2e8d508d	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x337dceb5	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x55faac46	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6a0dd8da	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6a2650e6	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xad3fc0af	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb92edda7	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xbc789799	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xdfbdc238	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe50a3dc3	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe7db58fd	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe8dbd2c3	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x3a3a8a5f	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0a713f2a	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1037a5fc	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1162cc87	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1995ca94	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1d490bbf	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x30eb3821	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3157e1f7	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3e9eb3e3	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x56f182d2	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x595155f1	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5a79a44b	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5f0d3332	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x61e031a6	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x668c3c74	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x713fb8dd	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7262be06	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x751384ae	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x85935870	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x94763699	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x99521a8c	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa133d291	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa816fe82	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb7f4e403	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbb8ac67b	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc4cdbd10	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc89410a1	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd256b9ec	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd981e9cf	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xda451e47	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xde1383a7	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe7a57d56	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe7dd5154	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe8e1b0c3	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xec90d1ec	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf516decc	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf5af54b6	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf9c687cc	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfa63e0ba	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0x2c63e051	apple_bl_register
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0xdab0f892	apple_bl_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x02954c50	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x0d4a6ef7	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x26c1c8c9	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4f8003aa	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x5fb65f28	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x6dd209cb	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfabe2bc0	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0xc3816d63	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x4247a218	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x6abbe1dc	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x43e19f6c	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x95e38796	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x016e6c20	vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x90c018c6	vmlfb_register_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0e1cee08	viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x1f942c01	viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x30cc9311	viafb_request_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x31469540	viafb_pm_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4606f8d	viafb_irq_disable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4f863e6	viafb_pm_register
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcaefb732	viafb_release_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcd538333	viafb_irq_enable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xfff2dfd2	viafb_gpio_lookup
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x0e338292	visorchannel_signalempty
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x2775591e	visorbus_disable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x4de03230	visorchannel_signalinsert
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x56401853	visorchannel_signalremove
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x927c6da0	visorbus_unregister_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xc455c651	visorchannel_get_guid
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xde6aca35	visorbus_enable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xe3f34226	visorbus_register_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xe7f8b7ac	visorbus_read_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xf28be861	visorbus_write_channel
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2797449b	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x48e251af	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x59e845bd	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xac916f28	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb4995ff7	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb9018be8	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xba864812	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc2d46f18	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd4fac0b6	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xe28cef5c	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xfd7d8fd8	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x1a9ce45b	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x744133c2	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xa2d063fa	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xae25a33f	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xe64c8f79	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x1a95d64c	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x33d692a9	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xa36a6d16	dlm_posix_unlock
+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 0xd7e95d98	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xf91a80c2	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x01b7679d	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x2b064334	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x6a219843	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x74927df1	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xb2c68efe	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xd0f68e99	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xf22aaab0	lockd_down
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x00f1eb35	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x00fe8b79	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x02de0f75	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x051c4819	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a9205c4	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b5b32a5	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1329ba0d	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x145a6033	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1fe0d94a	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x23a33fcb	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x25764c4b	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x269586d1	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2cd1dd47	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f578997	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x31980336	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3bd56cf6	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3bf55e5f	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c4305bf	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d37c333	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f9ce133	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3ff8be47	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3ffd631a	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42a35cae	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x43210d12	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4795ed04	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4980fecf	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a365836	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4d280c30	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4db84d2a	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e9bd873	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4eab0374	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52714cfd	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52b1fa77	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5378f5ff	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x550748ec	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5930d000	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5f99aa28	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ff3bc0a	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x61a82d65	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6210e050	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6262c7bd	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x651739f6	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x652c6e05	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x668fbb91	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x675618af	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6786f154	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6922d3ed	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6bacbf12	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6d52ea33	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x72c7f390	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x72ddb53d	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x75864579	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x770ab73e	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e73cfba	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f5aed43	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x80fa4679	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8137dae1	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x87240f8b	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x88182eff	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x89f68417	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8ae29072	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e79b522	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f0c7115	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a43136	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92bd45c2	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92d5206a	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x967f15da	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x986c0512	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98f25446	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ad04f55	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9bb08a6c	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d057d0a	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e0af19c	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2e57239	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa727de79	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8b0a023	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaac4d6cf	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xabd32fc1	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xacddd97e	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb32723d1	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb52726b0	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5e3b2ed	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb7798e19	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb94600e3	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xba30a033	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xba915c16	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb60aac9	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbd6ea049	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbef98685	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc22b06c1	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc2ea8126	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3ce6b23	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc50c7cc8	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc78f2189	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc951ba00	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca148300	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcbc4ed66	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc56510a	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcd11cdb6	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce0b7008	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce65a3cf	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce85bf51	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce87a392	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcf7de625	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd37696d8	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd45d8119	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4c1219c	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd5761af0	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd86c2238	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd88e1da6	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd91a4ee0	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc5582b3	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe25db6bb	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe2b336c7	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6b78971	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6cc920d	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe71968ff	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe73fb7b3	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb761cbb	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xecf88c5e	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee39dcbd	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf13e7687	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf2290d54	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf22e603f	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf28465d8	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf40dd81f	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf56f33dd	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf7eb1aaa	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf911783e	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf934d278	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x1fb4e09f	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x035c0531	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0c2fbd33	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0f02aaa5	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1250f117	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1af2b5ae	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x20b65d33	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x26583da9	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x26bbadbc	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x280071e6	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2afb520f	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2e1dd37e	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x363e86cf	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36a81924	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x37833454	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3b181c98	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3f5fe356	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3f745c79	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x413a9498	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x419a3ae1	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x44b08911	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5203e111	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x613b566d	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x650ccab0	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6570a478	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x66a12cdd	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x68102d5f	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6cdb08d6	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x77bdb5bc	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7ac6a7a3	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7d646903	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7ea1d80e	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x80839cd8	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x81251500	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8a73b33e	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8c6ff00b	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8e3707fe	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x91cb7eec	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x95d94ced	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x95f0293f	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9f92c451	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa1139b4f	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa132ea9f	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaa02d27a	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaff82fba	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb59b7221	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb7dd4593	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb9123cf9	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbdadec43	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbf6828b0	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc742675a	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcb4e205c	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd5727bf6	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe13d9090	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe1517bc0	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe449f397	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe4d46453	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee102f7d	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xefe35802	pnfs_unregister_layoutdriver
+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 0xfa98420b	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x3165833a	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x7fc7db2f	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x87081183	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x82691866	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x94af196b	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x0a00234f	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x23083b87	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5b8bb841	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5d0349ab	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6e5d999e	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xd6440ce4	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xdcc7c9cb	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x39cd7b47	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x8353d5e4	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xc1c3ff7c	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xcb9d8b4e	dlmlock
+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 0xefe506e0	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfe56b319	dlm_print_one_lock
+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 0x112bbedc	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x61d3bd7d	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xce3cf660	ocfs2_stack_glue_unregister
+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 0xec06b5cf	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x2336a819	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4fb36c6c	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xbfb4a112	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x4965b9ad	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xd8683b35	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x2182309b	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x8d275ff9	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x931611b5	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xa1118818	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xac71f4fd	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xd613684e	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe7661b0c	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xeb584742	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x055c3f2e	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1f166a01	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x2d7a72f7	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x8616afe7	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xbc9b344d	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xc19d2949	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/stp 0x6eb99d06	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0x9f7eca6c	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x4ab000a8	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x7757f439	p9_client_xattrwalk
+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 0x053d996f	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 0x1cf184bf	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x39960e7d	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x46106248	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x5a6c7efa	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x7baf02a7	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x90b8bda0	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xd2e42b6f	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xe525b65c	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x2f5e3baa	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x04e97f04	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0da63bda	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1c1e7ac4	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x394cee6b	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x46227ebe	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x5d19e5aa	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x673ad485	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6ef2801c	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7a197f35	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7ee96d9c	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9012648c	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9bb1a003	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9e14f5f1	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb6d8484b	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xbaa6678d	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xcdc8959f	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xda7bb87c	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe92dfd6d	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/core/failover 0x41369d56	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x5049f599	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x7a44e280	failover_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0cc3e744	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x17eea80c	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x186c18c9	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1d63478c	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1e8afabc	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x24ccae47	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2824aa71	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x31f71cd8	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x33d95b6d	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x37e51369	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x470eb048	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4bddbe9e	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4f741a8a	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x54e7ba25	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6ae704fb	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x736c5490	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x88f1153d	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8937cc06	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x90ac9669	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x91c4e810	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x94629c36	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x96b96cef	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x981ca582	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9f2bf6c4	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa845c7ec	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa87c472b	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb8bd65ef	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbff514f2	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xca49ba77	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcf4eeb74	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdfd758eb	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe7621c34	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfc137d68	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x1e455372	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x4917b0ce	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x774e9de0	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb4120ef2	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xe510ed8e	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xee020202	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0cb596f3	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0fcb10df	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1ed0320f	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4814cc9b	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x593d9157	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x617534cf	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x68c8d801	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x724d3963	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x83127fdb	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8a7988f6	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8c5e2cb8	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x915881fa	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x927db840	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x987ea863	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xac193385	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb5c45238	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc237717e	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc3b54059	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd45d3157	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xeb4b4aec	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf05e78f7	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x2088c1f3	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x33d751d7	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x61539758	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xbdfb0603	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x752bfa5a	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x92e3a429	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x9eb197d9	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xd51e224f	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x3189a891	ife_encode
+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 0xc5a65a7f	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x227935a6	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x60e25082	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xb6b9990a	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x1e2ec581	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x68d7e9d0	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x09515f5f	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x0bcf4fc7	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x215b4a6b	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x22e02a34	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x30308612	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x71305eb2	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x95f607b5	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xaadef8ed	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd2d6b2c6	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x32031184	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x23c1e977	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2877108e	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2d8db1ab	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x35e06cf3	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x54dca13e	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x68215941	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6ba56a90	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x75c2f963	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa98d3a88	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb2d8690e	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbafda463	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd4385cfe	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xef81b646	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf9c565ab	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xfdaf4856	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xfec205d4	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x9c472c98	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x6727874f	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x53a085dc	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x5b82441f	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x35000fe4	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x630e8641	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x863dccfc	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x9fd296e6	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xf211641c	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xb02e2f96	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x2dfae910	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x586ffbe4	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x9b4e5884	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x38fef6dc	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x9576790b	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x81e0a860	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x988be805	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xa6627963	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xc1668ee5	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf85be68b	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x157c9e0b	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1c40a604	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1e7517ff	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x5cf23912	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x76514aa4	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb2e2f793	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xc91203e1	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe68f7b72	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x2c65e6a2	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x758ed9d4	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8cce96be	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x25295480	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x3cdb5262	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x6966cf8d	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x38c8aff5	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xfe70bf1a	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x57ce240e	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x3a7f24dc	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x735fbbdf	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0xd931f1c3	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x349648e2	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x6c89136e	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xc1bd1c4e	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xdb005bd3	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xe6e0426a	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x37498eff	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x21232607	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x6bbbb20c	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x97c02923	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x05534ae4	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x62538105	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x04d349ba	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x25ce1df3	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x286bc466	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x31e52f51	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x368dbfd3	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3c1e3cb3	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x482709df	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x5f0edeae	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6f92d36e	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x98c2bc37	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9db06276	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9f17a39e	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb691db09	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb7c9f062	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbda2d57d	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe23cd951	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe4f71f70	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xb45cb499	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x02c892fd	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x09fa185f	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x130da6b9	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1931dbc0	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1cb82b03	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x24b69bcd	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x2b2267bd	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5926576b	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6a55f8c0	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7527dcac	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x806d8630	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa8831a64	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb8141e33	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd67a89a0	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe53e4d83	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf11189fa	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x38ba16b3	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x4dee5e14	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xb4dad29b	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xed47a2e9	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xfe40ecfe	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0e594259	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1766f7ae	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x28b34444	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2d9d1173	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x3b2e4b2c	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5ad7e7d9	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x623bf008	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7e7e5248	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7fc6d2ac	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8e1cd37a	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x904cc767	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x95c57888	ip_set_get_byname
+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 0xb3f675b2	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcb9c6fab	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcfb01c00	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdb313cf8	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe029ec5d	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf2da27a3	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x0441a9eb	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x07cefdbe	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xe64a57aa	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xfccf2624	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x22fc485d	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x7fff4fe2	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xd5c1b710	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xd65081fe	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xde2f6af3	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x06db6130	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x07e2d199	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x07ef12b5	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0acdaf42	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0f6281b2	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1180140b	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x132fe599	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x153ba216	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x15f20296	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x181ba0af	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x198c53dd	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1aaca902	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1e585556	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x221b2268	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x27b0642e	nf_conntrack_eventmask_report
+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 0x29becbba	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31e8a52f	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x334e6dea	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x34313c0d	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3a0b9f18	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3a342909	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3b4ead29	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x411f99b4	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x43979ab5	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4543c1f3	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4f518f7f	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x579d040b	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x58dd3dbb	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5fbb77cd	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6246dbe4	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x641c7e9a	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x67dc9f9c	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x68a346ae	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x69cf5088	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6bd6ef87	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x70014b6f	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x723f61ac	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77b8ff8f	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7b7a4c04	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7f06a595	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7f99e5af	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7feb0595	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x808170ba	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x808b3dc2	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x85ae705e	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8aace8c1	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8bf44fda	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e28c89f	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x90909926	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9e193867	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9eab598e	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa2cb1847	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa46d7ef2	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa9766551	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xacc8af80	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb15c00db	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5c00706	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbaf7a762	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbe40e346	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc1b0dab4	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc1df7c34	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc549d2ff	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6d03227	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc9937e6b	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcb24acc9	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcd9c92e6	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3624803	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd6f870db	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xde7738ef	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdffb2ae3	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe082e74b	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe704cdb3	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe97b3656	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf1863ff6	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf4250996	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf712f9b6	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf965ee30	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfca14cae	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfcea8a17	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfded38b1	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xff6eb519	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x5d072663	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x20236cee	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x8267579c	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x138ea796	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x2a301a27	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x3c7fa424	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x49956798	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x68807ad7	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x7c854381	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xa7339126	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xb77e5647	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xde7e0a7a	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xfc0bae54	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x03c70ec2	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x311b46a3	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xa4339902	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xe38f7900	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xf7f17317	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x14e88d83	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x20aa8dd2	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x5cf383a0	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6b935d4c	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x8c333b13	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xa9a3141f	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xce23ba25	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x34db1638	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x62015de9	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x7d41e90b	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x9d1ecaca	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xfc06ff8f	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0ebfa795	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x18619dae	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x27831583	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7d91e243	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x84ffbaff	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x886a2f95	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8ce8a99a	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x9b2ff238	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa744215b	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xaa1acb2a	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb1e6b06f	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xd576a0f6	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x14ad370b	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x199bb01b	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x33a6fd19	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x351e0857	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x8bfbe800	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xce176ec7	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0511538d	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0f966631	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1fcedb7f	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x23d6b514	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2cfee69d	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3c3f91f5	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4b6039f8	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x653514bd	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa71f9edc	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa8fb0190	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb472d935	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb5a12f5b	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb7638ba2	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc5d8cfde	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xdfd4c92e	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe4578764	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x4985132c	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x547d948e	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x5a3427cd	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x72fc3968	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x83b3c531	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca1dd897	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xce4be867	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xd1a4b3c1	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xde89d1d8	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe4de706d	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe5f0fb9c	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x02347712	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x051b5bd6	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x05c9f37f	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0ec60c48	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0f868ef0	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x186c2ecb	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2b38b5d3	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x33b0e992	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3ac56556	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3ee25362	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4692a541	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4a034183	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4e5bbb99	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x53af3a4d	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5f96ed40	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6c250ffa	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7100ee21	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x763194f6	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7b66c9ae	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7d0024f2	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x82824fab	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x82fcdb5b	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x963b03dc	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x984dbf1c	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xaa4ff2b7	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc1fc0600	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc213280e	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcbcb5327	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd1cbd50a	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd30c2d08	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd598c509	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdd0dbac9	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdf2c5fe6	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xef29fbb3	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfc49b9f8	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x203163ea	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x31fba9b9	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x40a77eaa	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x6cf70eac	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x9d98bfb9	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xacb75132	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x14c48cf9	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x69f41d5a	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x9f79f078	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35259c0c	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xd74924ec	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x00be7bbb	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x1c9c37f4	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x5f08df01	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xb73c1e79	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x187fddbe	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa0731d99	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xad50d312	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0287077f	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x12b80945	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1a3861d7	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x22994438	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x38eaa98d	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4aee5bac	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4e8c3e52	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x530e7a8c	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x53401359	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6403e41d	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x641701e2	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6b8d0678	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6bd22452	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7abf6842	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7d679cb4	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x949ea4fe	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xab40a53d	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb33ba1c3	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xcf5d50ad	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+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 0xe63fa81b	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe9997fa1	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xd71ae9a1	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xde4f6cd4	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x6c879a5a	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x7223d556	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xccec017c	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x11c32781	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x15beede7	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xb22ad799	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x2783b2d8	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xd1cd763d	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x28c2fd51	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x78c3d8d1	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc3976021	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xcd32bc01	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe1a5e16c	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe6afb177	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x53f50627	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x697b6a64	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xda8bc2b0	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xf33b7162	psample_group_take
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x015b777c	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1abaec8a	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1b6d4efa	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x30484497	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x39d92157	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x498235d8	rds_inc_init
+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 0x764d61c3	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7d9c3d24	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7de8c7ab	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7e3c5e73	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x81328640	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x890021b5	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8e703c19	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9dc6668f	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb1ab457c	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb2eecd79	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xba372ad3	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbea3f205	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2eab502	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc88b4155	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc93ba782	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xcef62eb3	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd2b5cbdb	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdaaaff69	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe31c7389	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xec79947b	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xef55a84d	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf923c599	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd22dd56	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x07d01581	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x09156092	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x3a02b6b8	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x5e3e26bf	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x1b313069	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x23b33437	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x260a68bd	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x308546b4	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x39c88841	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x50badb0e	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x7be18447	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x9970bf0a	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc2751d15	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd33d940c	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x32908692	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x4e6d2944	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x8714b052	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xf8989670	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0082788d	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x00cf0256	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x018a69f8	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0332c6dc	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x03db3c7f	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04a2d648	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05ae138d	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06363a19	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07faf6f0	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x080e83c4	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a1e82b8	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a8e17ad	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b83b8dd	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b8420ca	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0be549c1	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0cae9d4b	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f35bc23	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x107bf9c3	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1244c799	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12a2f807	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13242873	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x134ab3d5	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x144b3f34	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14c41837	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x169f98ae	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16a0c38b	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19905ddd	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a3a027d	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1cb00351	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1cc18dc8	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1dcc25d1	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1fcffef0	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x203ccc1e	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20a9b4e4	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22de2720	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x254ff221	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26604d6c	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x270d365a	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2750cfba	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2855f52c	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a5992af	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2b4f69ef	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c5acf30	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e285945	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e618a7f	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8756df	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31d00fd9	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x33a4c157	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34154274	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35c97c18	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35d4e357	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3657c16f	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36933eb6	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36bfb949	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38248686	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a7be3f1	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b133366	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c768d5e	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e5b4385	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e93ebcd	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f407a1b	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4051c864	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x409fbf33	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40a4f2df	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42128947	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x422b3f6b	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42c9b696	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4412494e	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4535548e	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x454dcd15	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4642d072	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x492c450a	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x499f8aeb	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a738f0b	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b021080	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c31286d	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ce79044	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4da8c2db	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4f0c4b0d	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x512501e5	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51570d8d	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5346fcd4	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x540254c1	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55806f9d	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56e687cb	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57b87c25	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58109c5a	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x590c72be	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a8df839	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b5199ef	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5dda96c1	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e072e9a	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e26df4e	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x602ae77e	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x626ac3be	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65410b26	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65d11f5f	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6677eed5	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x667ea4ed	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x672a0618	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6772a1f7	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x695d6258	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a3f9e27	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a71b154	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c2aeed1	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d3df19d	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6da222c0	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ec635a3	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f1cecbe	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f8b2358	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f9e6e1a	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7169c5c4	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71962f64	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75766179	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78c2a506	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79573e08	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x799b3c5c	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7aa5b0ab	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7acc4503	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b535659	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c51330b	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7dc72d2f	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e6487da	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f574244	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f6a0407	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x808fd085	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x841b8ae1	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8440c390	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x85092ef6	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8629aaa6	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86ec6503	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8737ea1e	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b63a30c	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cae6f15	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e85583b	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e8ee79c	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8fa550e6	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x904e7806	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91ecf401	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x92502402	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x928e2619	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x948adec7	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9691b9d1	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97689cfb	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x987eb79d	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99055ec7	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bea21be	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d6a4340	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9da9f8d2	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e8ce409	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e976fd3	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ed2010c	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa0bc0fdb	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa15ad99b	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1a81c90	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1e7e1c6	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4d968c3	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7169ee6	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9853d38	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9f31683	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac1126c8	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadb946a1	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae6f8d91	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf738296	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xafb4071c	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb064c3de	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2be54e6	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb31a562e	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51d3a44	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb60409f7	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb6285177	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb6c1cb91	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb75d65c4	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb928266f	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9334cf1	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb1afca5	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc086593	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbcbe9de5	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe30923a	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe66110c	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf39b2ca	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf5d3fe4	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf907be9	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc00265dc	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc1a865b8	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc1d802d2	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc34f103e	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc43eedd1	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc4b3afd3	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc9dd05e6	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca6a9022	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca9ae263	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcb06ac38	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbe4e425	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce982416	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0633153	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1df8807	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4461ac8	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd65ed799	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7de3951	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb3da5b5	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb972099	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc60af91	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf261616	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe088a13e	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0dbb5ff	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe30e8623	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe451e56b	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe58353ee	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe693b961	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaa193df	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec429086	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec5ccc07	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf3b78f33	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8838996	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf88cbdd2	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9f06071	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa6ecb5f	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfafd26f7	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb5d49c8	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfed819a4	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x0a479841	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xc53f858f	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x01d184de	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x02bb9b44	virtio_transport_get_credit
+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 0x05de4949	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0662278d	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x087b3ae0	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0bc093a8	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x17b76591	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x19a76be9	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2e0445c8	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3eadd566	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4a480662	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4eef29db	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x51a09da9	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5ca1c01e	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5e9c2633	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x693482b9	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x72f8a654	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7b8e9f23	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7c98449f	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x82a54c0c	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8ccf805c	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9e796556	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa07f6b8e	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa421d3fd	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa4281884	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb0027ba3	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb980fb4a	virtio_transport_dgram_enqueue
+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 0xbe06f523	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc53264c4	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc58ef471	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc8fd6855	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcc6e416e	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcfa010fa	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd583b635	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf32bba1e	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf39192d8	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x03e88164	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x094c99d3	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0a0c4756	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x142212ec	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x322d81ab	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x407b4a06	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5e4608b2	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6f279b64	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7c94d1f5	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8c945d3b	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x94c7b668	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x94db19ed	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa453745d	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa58b6af3	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xae30d17e	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc0e0c386	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc9c63604	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf18ad372	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x249e6d14	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x42ecc050	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x55a0df5f	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5cdad5de	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5d8299c8	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x74724b3e	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7d0ce4c0	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x846a916e	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x8c9a8a1a	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x91fb6c5d	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x926bdfb2	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xac8c3870	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd31d04d2	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0363e19b	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x051c091f	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1230c56a	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x394e1387	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4f105414	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x5ff52434	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x70a4b608	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x80da3c88	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x85923efa	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa0524523	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xaa2a4b38	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc8b61584	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd2e61f2a	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd59a95d6	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe88d9763	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xfcf47b76	cfg80211_wext_giwname
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x64c2cce7	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x6d55b692	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xc75ad1a6	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xce78e46b	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x8b7fad6b	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0248b1ed	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x1237d07d	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x21ba2369	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x350c927d	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x36bd0b6a	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4e602eec	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8271f0ec	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8f70afdb	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbf099424	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc3989c8d	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xdd8062a0	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x4e2e40dc	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xb8513413	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xd20e6aa9	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xdee950bb	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x239c3ae5	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x27df6e81	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x53a6e390	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x5e8d0e56	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa53ddb68	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa8507e70	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xad4cc94d	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xafd6e7f4	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xec70b073	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xff8911d4	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x12100c67	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x2759510a	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x28b8facf	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x3b58236a	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x691f68ee	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa6b8c58c	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xade9de2b	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xafd1db0a	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd2bb874f	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd8931f95	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf7544c08	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x03d35520	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xa2902965	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x29adbaf6	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2ce9e2a0	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x360ecaa9	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x373139ad	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x42528c77	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x44810a89	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9b115d22	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0014de03	snd_hdac_ext_bus_link_power_down_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x001c207a	snd_hdac_ext_bus_link_get
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x054614db	snd_hda_ext_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0935046f	snd_hdac_ext_bus_get_ml_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0e95c753	snd_hdac_ext_bus_ppcap_int_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x14fbd061	snd_hdac_ext_bus_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x15d54fe7	snd_hdac_ext_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x164dbfd2	snd_hdac_ext_link_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x19767116	snd_hdac_ext_link_clear_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x1c7d4be3	snd_hdac_ext_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x239aa111	snd_hdac_ext_stream_set_spib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x24a31dc5	snd_hdac_ext_bus_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x27a2c789	snd_hdac_ext_link_set_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3200b77e	snd_hdac_ext_link_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3d7f58c4	snd_hdac_ext_stream_set_lpib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3ee12e25	snd_hdac_ext_stream_drsm_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x4c7e54db	snd_hdac_ext_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5a2f8aa7	snd_hdac_ext_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5dba18b1	snd_hdac_link_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5e2fc5cb	snd_hdac_ext_bus_link_power_up_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x638b662a	snd_hdac_ext_bus_link_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x7bf3ea81	snd_hdac_ext_stream_set_dpibr
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x88450666	snd_hdac_ext_bus_get_link
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x90eaa086	snd_hdac_ext_stream_init_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9bc2e72e	snd_hdac_ext_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9ccda76d	snd_hdac_ext_bus_ppcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa14a4bf9	snd_hdac_ext_stream_decouple
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa40cc625	snd_hdac_ext_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa5622b4c	snd_hdac_ext_bus_link_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb8fcefd9	snd_hdac_ext_stream_get_spbmaxfifo
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xbb1053a6	snd_hdac_ext_bus_device_remove
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xc6a51792	snd_hdac_ext_stream_spbcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xccdf9171	snd_hdac_ext_link_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd4666545	snd_hda_ext_driver_register
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe24e80ba	snd_hdac_ext_link_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xeb905e9d	snd_hdac_stream_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf448cf64	snd_hdac_ext_bus_link_put
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x007902f3	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x023fe7e3	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x03c418b1	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x04cb8256	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0e913db8	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x135f0b73	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x18986b8a	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1f02dbc1	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x22d8dad9	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23b6602d	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x25545743	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x278000e8	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x298159eb	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3183d3cc	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3570627b	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3933a33c	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3a4fbc8c	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3b15ca21	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d8b3248	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d9b282e	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f584fd3	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40c5074f	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x45578cf9	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4660fab7	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x46d099b9	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x47dce524	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4af9d17c	snd_hdac_i915_set_bclk
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x51f7fa47	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x527d7314	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x52dbb524	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x559d61be	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x594954e2	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5cc5bb5d	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5ce15098	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x65dc1d72	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x682b2f3b	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6876f329	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6a4098da	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6daf4887	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x715246bb	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x78dfc5e2	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x79c64ab6	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7a4407cf	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7b8b761a	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7e5d13e4	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7fab7e24	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85b62925	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85c70f8b	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8a93d631	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8bc7234b	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8c87e7f5	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8e36da5f	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x919f45b4	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x924e3da1	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93ad20ec	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x95d2f7a9	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x967d88be	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f3bfc94	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f52c960	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9fb80a00	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa53ce8f5	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa948ffd6	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaddc45c5	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaf475a7b	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb243f905	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb311b81c	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb9d6f445	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 0xc1257e66	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc399e7a9	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc3bf7996	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8265eab	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc851ae20	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc997346a	snd_hdac_i915_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc99d229e	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd3ab4e81	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd8225cff	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd9743beb	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xda3ab14f	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xded37fa6	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xec8b071f	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf0aae1f7	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf9bb5c51	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfae0a546	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb8a5211	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x11cce10b	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x9195b974	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xfd8185eb	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x348c6f71	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x47565294	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x5d27eb7f	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x931d6898	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc628ba10	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xd109e166	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01c2d260	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03de9d14	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x05aee9bb	snd_hda_apply_verbs
+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 0x0d635789	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0f270de7	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x131e9a49	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14eedad8	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15159226	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c8f374c	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1ebd61ba	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f066427	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20750b89	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x21882969	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2254d6d4	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x22d79eca	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26286480	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x278b38ec	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x29d8c36f	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2d8cfe3f	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f83c8ff	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x348db77e	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3bc26251	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c1d1620	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x47771e02	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4dc3c15b	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e349de1	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e3b7d6a	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5085484f	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x50c6568f	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5b171806	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d153e5a	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d2aa8a3	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5dccdaff	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x60fd178e	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x66401edd	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6640d24c	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6a963717	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6ab8ce3a	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b278bb8	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f9bb9cf	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x70161c49	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x716efa51	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x752759f4	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x765aea58	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x795f9566	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x797bb3f6	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7afd4af6	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7bd32599	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7c18e5ce	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7cca6fe3	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ea7e260	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x81d59522	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x83d0d9ff	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85c1bb3a	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85ca05e0	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x861cb4ea	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8cacf3c8	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8ccc9747	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e5e9bdb	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9017f3a6	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91757d88	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91a09636	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92108c1f	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x923945c0	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x932da763	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x974e2173	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9836ddfb	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9cf3843c	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9d8c7317	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa176a983	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2178c23	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2632a96	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa29f6029	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa70135c9	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa77c8b64	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa8ad7e64	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaa4544ab	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaa5f5055	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab245062	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xabe07f8c	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac385673	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xad05843a	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae3d4111	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaeca63ec	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaf00de8c	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb3064711	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb32b77ac	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb44e4a95	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5bfce76	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5c92b03	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb8f686b5	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc44fc91	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2ab0ada	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc50c10a0	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc5781526	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc95f7000	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xca3a8197	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb672773	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcbcc883d	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd5a305c9	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9ae658c	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9dfa431	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9e64c44	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb675f6a	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe36c526c	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe8cb0a78	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9f7b5d4	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb46ea06	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb5d3b37	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeddb6d68	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeecdd209	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5ddf821	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf76c9b79	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf82881b8	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf913dd77	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf9bd860e	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfaccfc1f	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfad87799	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfafe0c73	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd05ac3d	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfef41547	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01f4fa3f	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01f8df4f	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x04ddb33c	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x08f63bc1	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0aa3df84	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x24963122	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x40c09ebd	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x551e1d3c	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6de3e366	snd_hda_gen_free
+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 0x87397c56	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x89938619	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9192fbd0	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa09e46b1	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb21d5d69	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc1ba3a50	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc4298945	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xcd45ecc8	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe92b25fe	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xebe96cc3	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeee749c4	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfa5f957b	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfc5b26dc	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x3edd8ee3	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xc2b173b3	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2336e829	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x326916b1	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x37c6fbf7	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x44a34676	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x8f1300e2	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xaef2c17e	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd4ec7443	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe33edb9c	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe8f32c79	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xedfe7791	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x9b18d932	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xe97ee64c	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x10f3ec7c	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x3647ef9d	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x6514c1b9	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x8aa28b57	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe7244bca	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x143d097e	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x84324976	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcfac28c5	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x1366e873	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x4cb41509	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x97d5ae17	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x43f26525	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xe412399d	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hda 0x6275efbd	snd_soc_hdac_hda_get_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x4d697459	hdac_hdmi_jack_port_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x9e1ec135	hdac_hdmi_jack_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x5c445e7b	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x6201e326	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x0da439b8	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8825 0xe68c6d22	nau8825_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x2fae10a9	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x6e51fc98	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xd9487ba3	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x69e150b0	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xf2f168cc	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xea5d62e7	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xfe594773	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x1f24e353	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x4f6f6e20	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x8fd96278	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xc88652b8	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x4cdde79f	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x5734363d	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x8ff9e2f3	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x9528f351	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rl6347a 0xa7aa810f	rl6347a_hw_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xade4bf4c	rl6347a_hw_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt286 0xe0fe5c34	rt286_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt298 0x28d9b2fb	rt298_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x281f064e	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x5a57cccd	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x29039d25	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xe4ff146a	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x48b1d8c1	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x54ed82f6	rt5670_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x5ff72e6f	rt5670_jack_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xaf76dc32	rt5670_jack_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xb39a73a1	rt5670_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0x1a680514	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x67956035	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xa2082ce7	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5682 0x40d3c220	rt5682_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x06169151	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x1f96c8f0	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x7f215bf6	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xd5b4eef1	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xf48bd942	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0xc8b2ff4b	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x88e4cb7b	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xae218e2f	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xec02175f	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xdca1ad22	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x6a0eabf3	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x964e1175	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x9b25a697	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xc7f28e1c	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xdd4b371f	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x976cf5bb	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0xe23b04c6	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x397e543f	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x8994e2ed	fsl_asrc_get_dma_channel
+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-simple-card-utils 0x0cc4107b	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x29defe87	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x39aff364	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4ca08994	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x582f58d0	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x66b3b8c7	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x76036406	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7a5b2b6c	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x85e4db12	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x869b783e	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x96580c00	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9b5b9aec	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xce8dab63	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xddc76d11	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe971052b	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xeadba287	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf9ca3be9	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xfde441ce	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x1d08424c	sst_register_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x1f23d762	sst_unregister_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x388f40d1	intel_sst_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x6a2ac333	sst_alloc_drv_context
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x709cd25f	relocate_imr_addr_mrfld
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x91cd57a9	sst_configure_runtime_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xa94aad79	sst_context_cleanup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xad93237c	sst_context_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x00899c7d	snd_soc_acpi_intel_baytrail_legacy_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x08c27da9	snd_soc_acpi_intel_cml_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a6c545b	snd_soc_acpi_intel_icl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x210ac95b	snd_soc_acpi_intel_cnl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4c028d30	snd_soc_acpi_intel_skl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4ea3c4ed	snd_soc_acpi_intel_glk_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x52195614	snd_soc_acpi_intel_cfl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x59a53c32	snd_soc_acpi_intel_haswell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a93176c	snd_soc_acpi_intel_cherrytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x6038550d	snd_soc_acpi_intel_kbl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x8b43f2f0	snd_soc_acpi_intel_baytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x98f106aa	snd_soc_acpi_intel_bxt_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x9c3d1561	snd_soc_acpi_intel_hda_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xcbb222b3	snd_soc_acpi_intel_tgl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xd5af17b7	snd_soc_acpi_intel_ehl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xe7826509	snd_soc_acpi_intel_broadwell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0d88cad6	sst_memcpy_fromio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0ed036e1	sst_dsp_shim_update_bits_forced
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0eeee4c9	sst_memcpy_toio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0ef5795b	sst_dsp_shim_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x1429def1	sst_dsp_shim_update_bits_forced_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16e86983	sst_shim32_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x31d6ef0a	sst_dsp_sleep
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x39245d6f	sst_dsp_wake
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3f766c18	sst_dsp_outbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x42c56659	sst_dsp_shim_read64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x4a7bfb48	sst_dsp_inbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6886937a	sst_dsp_dump
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6adc39f4	sst_dsp_ipc_msg_rx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6f0511fe	sst_dsp_shim_update_bits64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6f87dad1	sst_dsp_shim_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x71c448fe	sst_dsp_shim_read_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7a1d65f7	sst_dsp_shim_write_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x87cdf7d2	sst_shim32_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x915e0dec	sst_dsp_ipc_msg_tx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x996664a7	sst_dsp_shim_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x9d989ed8	sst_dsp_inbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xaa300376	sst_dsp_register_poll
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xad62ae16	sst_dsp_shim_update_bits64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xae407cba	sst_dsp_shim_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xb00e7da3	sst_dsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xb1b6bee8	sst_dsp_boot
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xb8f66579	sst_dsp_shim_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc5cff0cb	sst_dsp_mailbox_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc8889807	sst_dsp_stall
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd72a34c2	sst_shim32_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xdc3673a8	sst_dsp_shim_write64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9c6de99	sst_shim32_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xed640ca6	sst_dsp_shim_update_bits_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xfaac521a	sst_dsp_outbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x026c6881	sst_block_alloc_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0bc7d1e4	sst_module_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0dcd78fd	sst_fw_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x15ccee1c	sst_mem_block_register
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x173ebf44	sst_mem_block_unregister_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x19dcc121	sst_fw_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2129d0f8	sst_module_runtime_restore
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2158d759	sst_dsp_dma_put_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2d0b2367	sst_module_runtime_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x30ffa495	sst_fw_unload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x32cd10f2	sst_fw_free_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x34486111	sst_dsp_dma_get_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x3c95fc20	sst_dsp_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x425d868a	sst_module_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x4ccef832	sst_module_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x68d2e146	sst_dsp_dma_copyfrom
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7d7244cf	sst_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7efe2174	sst_module_runtime_save
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x88605122	sst_module_runtime_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x9397f323	sst_block_free_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa7cec9c3	sst_module_runtime_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xbcea59df	sst_module_runtime_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xc95e6d62	sst_module_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd4f8f505	sst_module_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd5317544	sst_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xdc7fc6c4	sst_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe16d993e	sst_fw_reload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe2804ba7	sst_module_runtime_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf2143b5d	sst_dsp_get_offset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf542a83b	sst_dsp_dma_copyto
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x09002c8b	sst_ipc_reply_find_msg
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x26bad37b	sst_ipc_drop_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x40b64cd7	sst_ipc_tx_message_nopm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x8402baf6	sst_ipc_tx_msg_reply_complete
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xb9f09fb2	sst_ipc_tx_message_wait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe4d5d82d	sst_ipc_tx_message_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe5ee6407	sst_ipc_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xea271486	sst_ipc_fini
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x49936322	sst_hsw_dsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xb40ff91f	sst_hsw_device_set_config
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xf48a5445	sst_hsw_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0059e19f	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0147bae6	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x01abb942	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x01f74a59	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x03324706	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x035443f8	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x03f1aa7a	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x07863915	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08c4f538	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x097b921e	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c45e739	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0d7f285e	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0fb2fca6	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1043ea67	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x106d45ed	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11628ce3	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x13327c98	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x16191075	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1775f808	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x186ee798	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x19b54088	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1bc1f3be	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1d796ee7	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ea3d68f	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1eb74d4d	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x205e91ae	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20afab82	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x23111ea2	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x262a3530	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x26df445f	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a0a6fb7	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a2f86bc	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a98625a	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2b12e87d	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ba57d1d	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c9dfa18	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2da70d6b	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2e88024f	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x30e3f1ee	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32a424f0	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36e580fa	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3713a83f	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3a6e8285	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3b46b8f9	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cb58b4c	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d4a8932	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d9a0cf0	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f1cd4db	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3face8af	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40726044	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40fb29f7	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43360b48	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43c681f6	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43edd523	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x44384f67	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4481a26a	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x45157cba	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46845c7a	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x47982a2c	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x481a3d5c	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x48cc3493	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ed95845	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x50ed8650	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5182d3cf	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x57a4b331	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5cac7821	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5ce4be5e	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e03ae68	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5ff83ab4	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x62b0d06b	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x65faca28	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6720369b	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x686f5e50	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68901254	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6b217646	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e1332dc	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f07477a	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f15f7aa	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x72a4f197	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73561921	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73708cf7	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x748f261c	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x74927e41	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75706cf6	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75a9dddf	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x767cabea	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78822e89	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7fbfa14c	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x807d7892	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8187b0d0	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82c5d348	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82ce0b8f	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8392ba7e	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84b3557e	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85c73702	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x88c15d67	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8d07ab0d	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x923bb2ec	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9289dd2f	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9295a188	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x939bed23	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x93f00c04	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x95af5632	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97512c3e	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97bc640a	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9866fcc9	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98e49b1c	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9cbbbace	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9ee2b1f3	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa07850d2	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2b511f6	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa3564eec	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa773176f	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa871b506	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa0cfe10	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa21356a	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa2f1120	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaaf5d6e7	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad8a31b1	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaddeb6e3	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaee1d9fd	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb0ccb82c	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb166acc4	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb1f1eae4	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb3b13275	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb3e0f583	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbb66886c	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbdb76744	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc02a0eef	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc0b9436a	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc23f42c7	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc2ae76fc	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc315e2a7	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc761740c	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc7d2da6f	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc7d395fb	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8a8e7a0	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb87cb52	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcbd584a6	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc1a2632	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc1fdc05	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcd355401	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd2cad33e	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd45692c9	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9552b2b	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd98ec671	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xda5a5727	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc7f0ad9	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe13c5ae2	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2c765cb	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe38eb1d2	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe5715593	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe865a1bc	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe903551b	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb315457	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb8984b2	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xece90ac4	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee234782	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf0318728	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf229a5ae	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf4a442a6	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf600daef	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf758f12e	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf811ff30	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc5364c6	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc8817d7	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfe74aff3	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xffde790f	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x4f22aa70	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x92ff0098	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xdfc03866	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe50ba16f	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x07efbb8c	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x088a943f	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x28065ed8	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x44bc5cfe	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x531d239f	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x604c98eb	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x85f39531	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8d830217	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9c2490e8	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa984d816	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xace9f92d	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb87181c3	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xdb35f22f	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe498b8e8	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe97f3eea	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x00048721	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x00165c8f	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x0019ccbc	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x001a66ac	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x00221df6	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x00242185	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0034f3b6	xen_has_pv_nic_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x00432040	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00531a17	xen_xlate_map_ballooned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x005f379f	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x007a47be	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x007c2920	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b38bb8	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b74aad	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00da04e2	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ea17b8	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ebf6e1	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f51534	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f95609	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ff0bb5	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01075f32	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x010cbf66	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0112a3e4	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0150c0f9	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01848a8e	local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x018b3d1e	intel_pt_validate_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x018cd65d	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x019557ea	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b10fca	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b8bd44	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c12c32	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c14d3b	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cc90f5	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d0e942	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e45400	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x01eb4576	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee5532	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f16dc1	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f47f84	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0244cbbb	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0247a659	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x024acd82	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0259dacc	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x0266fd46	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a5e0ab	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c9719f	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x02cf83e4	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e02849	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x02eb4bcd	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03115e26	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03329044	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x03392a2f	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x03479cc3	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0371c532	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x039525e9	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03bd1ead	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c52122	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fdfd1d	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fe5a0b	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ff7f2b	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042d7c05	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04328af5	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x04360588	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0451d5c1	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x0454aaef	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0457f6e8	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x045b05b3	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x046442c0	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x048134d2	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0486c65e	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x049929c0	hv_stimer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x04af3931	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b42720	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x04be7029	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d409b1	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d493bd	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d7a5e9	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ebbaea	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0509e1fc	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x050e7577	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x05274417	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0528c111	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0547e7eb	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x055516f2	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x05640a75	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x057ce420	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x057fe7de	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x05908cd8	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x059bd6b1	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a14a05	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a30edc	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bdb915	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x05dd5e20	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x05de819e	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f054dc	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f98a70	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x06043681	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x06163d4d	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x063727ad	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x063f0419	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0648dc70	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x064bdee3	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x0659b5e0	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c357ad	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d0fe2d	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x06f5caba	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x070f262c	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0713535f	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07249649	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x072a6f29	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x072dbaa7	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076a52ad	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x077a7246	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x07956ca0	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b64d81	hyperv_stop_tsc_emulation
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c53462	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ce0edc	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d3783d	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e8441e	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x07edeba7	hv_free_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x080b6774	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082312cd	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x08247e79	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082fa3e0	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x08661d62	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x0880848e	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x0892fde1	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b79fba	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c4efac	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c6b727	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c765cb	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x08caef7f	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x08cb46c1	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d6c274	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dac45f	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f1c996	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x08fd03ad	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0918ddda	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0919da00	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x091ee2c8	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0925493f	clear_page_orig
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x096a7e6f	x86_spec_ctrl_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x096ce54f	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0979db75	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x098b3df1	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x098df2f0	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x09abc55b	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b57fcc	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c9fead	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e28e30	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ea9904	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x09fd323d	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a00df1b	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0a7247	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a112d46	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a19ef27	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22309a	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a267b41	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a502c98	dmar_platform_optin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a5d01bc	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a70e00e	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8e5f21	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8f7c52	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa70c26	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad137d3	lpit_read_residency_count_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af31bde	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af9bcf7	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afde90c	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b162c6c	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b255942	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b270329	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3efc57	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b62c380	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6b25d1	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b96765a	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9daafa	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0baa07b7	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb3ecc7	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb6c0d2	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbea622	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bd680e9	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bea2976	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c02ed97	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0628ed	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0b0cd9	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c45fbd5	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c607223	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c767e16	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c894cf9	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c89747b	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9fcd6b	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca796a2	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cadd624	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cd195c6	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cd1bd67	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cd5b6c8	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0eafa0	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0f5a52	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1dab76	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d437a4f	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d478239	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5054c8	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d585553	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6b89fa	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6feaf2	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d979591	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d9948d4	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd3e216	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de66748	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfe41c7	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e00416b	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0743c6	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1a2c27	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e298702	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3df3e6	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e49fd5b	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5e304f	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6af38b	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b899e	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6f4223	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e720195	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7c513d	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e83b463	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e84bdea	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e85661c	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e903cad	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9717d2	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9922e0	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb09b3c	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb7df6b	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec9fae6	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed66d15	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed6bed5	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eeb539b	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef5f895	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0aea26	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0b21fe	pm_trace_rtc_abused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0f88ca	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1ca297	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2d7d87	mce_unregister_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2ec4a9	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f418507	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f5778c0	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6352bc	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9450e7	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9b333f	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fab4009	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fbd4a13	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fbd55cd	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fbe0097	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc37562	amd_smn_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc1969	copy_from_user_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd3fb0b	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0feda49a	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fee1e64	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff1df63	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff5b950	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fffc479	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101b3084	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x10261fc3	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1038b96f	adxl_get_component_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1045f8b9	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x1046e2f9	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x104a6356	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x104a6e5b	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x106a64cf	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x1089905b	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ae226e	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e0e433	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x111da4b6	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1136d91d	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x11406535	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x11481eae	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x114f96a2	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x115383f0	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x11645a79	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x11652dcd	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x119efd8f	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a49673	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ba76fe	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11caf84c	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11cfd1d7	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e62712	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x122a3bb9	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1247f05e	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x12498093	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1253e971	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x125d78e5	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x125e0114	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x125ff061	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b5d01f	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e0006a	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e285ec	is_uv_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x133a3a5a	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x134c659d	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c08fc	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c6767	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1366531c	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1382f12a	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1393087d	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x139f8e17	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a2bf36	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a87e46	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x13afd21b	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c26f7b	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x13cc15d5	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d75576	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e3aa9a	smca_banks
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eeb542	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eef47d	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f37a3f	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x140208d3	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x140b6a27	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1410e89c	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1414873d	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141b4675	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142c5f73	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x142e2ed0	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x14485598	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x14509e08	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1478dfb5	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x147f14f4	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1482433c	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x148bf493	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x14972fd0	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x149d1197	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c1825e	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c21e67	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d156ef	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d8ccab	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e4215a	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ee7e23	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fcbeb2	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1512a605	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x1527f017	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x152b6c68	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x152ce767	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x15395aa1	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15413144	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15651e77	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x15724d2b	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a73eee	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c85464	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d42fd6	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f2f242	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9d841	cpuidle_poll_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x161a0953	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x16323102	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x163335be	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1635fa1a	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x1645b0c6	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x166db1b5	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x168779fe	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x16892b27	uv_bios_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x168ff2f2	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x16980ba7	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a6d649	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b34b14	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c8c36d	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d2cef7	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e27a0b	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e97e64	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x16fd7787	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x17022ae4	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17091fb8	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1722a9f0	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x174bc85b	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ef6c2	mce_usable_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x175a3755	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1765a9e1	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x1768f0db	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x176adf76	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x177199d3	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x177388c6	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x177437ef	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x178d0f19	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ad35ca	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x17add64b	gdt_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b33e5d	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b4848c	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d123ad	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x17dc1aed	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e2b410	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f80604	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x180298de	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x180d62dd	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x181d3ede	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x18478a7e	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x18582826	amd_pmu_disable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x18650e89	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18726b1c	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877ca13	mce_is_memory_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x1878cfeb	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x187e0369	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b7cbf3	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bb2be9	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d6855c	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18eab655	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fdcf09	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x191c4cac	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1921072a	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x192a4b5d	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x19406bfc	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x194c4d03	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x195d55bd	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x19681f9b	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x196c4995	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a8db9a	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x19acff09	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b20685	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c560d1	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d0c799	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d7cc8c	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f60c60	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0bc8f4	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a192be6	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a490555	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5c5731	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a79e303	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8d18d2	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a958ad4	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab76a63	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab85cec	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae0b707	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae8627c	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afe6840	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff3d55	mce_register_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b518796	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5ad61e	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b72e962	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba237b0	default_cpu_present_to_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc01f21	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc2542a	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd174a0	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be17f07	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be45e09	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bec2478	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bef6774	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf09409	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf20cc8	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c2ceb47	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c31559d	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c459e7c	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5dc16d	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5dcf6f	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7d65ec	__memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1caeedf9	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb21af5	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cce8498	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd7dee8	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd95cc2	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdc6e88	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdf84ee	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf27c20	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf8c9ff	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf94923	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0643da	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0f7c95	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1634e1	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3f6f2b	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d523722	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d59f4b9	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d685660	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d76f4c2	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7a75be	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8575bb	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9ff81e	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da0af8e	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dbc30ce	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc6399a	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc92c0c	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd87549	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd8850a	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de5e580	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de6c68d	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de8f0dc	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dffff50	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e028693	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e12e46b	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e299e11	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e410307	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a5f22	sn_partition_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5feb4a	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e720c32	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9fe739	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea29596	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaa97f5	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec53b35	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eefdc59	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef16b8e	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f024028	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f078e3d	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f39a1bf	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f39c5ba	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4bcdd1	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5311b0	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f74fec0	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f789ab0	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f85f91b	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa31a41	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbed5b6	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc0c1e5	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc672cc	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc8bd66	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd05361	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd3f7ba	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x20037e4d	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x201c3b24	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x204c5a60	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2055c5cc	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x206d71b6	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x206ed487	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x2080cf5d	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x208813f2	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x20899467	hv_stimer0_isr
+EXPORT_SYMBOL_GPL	 vmlinux 0x208b122a	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f1dab0	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fc4b4c	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2110b846	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2111a9c9	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x21166daf	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x21483a82	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x21540423	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2180aac8	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x218a4cdf	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21aad16c	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b7ceec	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d1272b	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fb0324	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fda6da	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x22104616	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221e59fc	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x224bfcac	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2251e9a0	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22542129	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x22584788	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x225efd4d	intel_svm_is_pasid_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x225f3f65	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x22699b04	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x22737616	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x227cb1b2	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x22847d7a	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x22886b00	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x228f1dc9	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x229d7400	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b8a150	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d1f988	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e45428	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e66849	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f85679	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x231cf981	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x232f01bd	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23479bad	uv_bios_get_sn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2347bae7	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23692ce8	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23898630	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x23955b74	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23979bd2	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x239ab899	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b4e0d7	clear_page_rep
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e6b45a	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e6d116	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f3cd02	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410c338	x86_virt_spec_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x242b5ac3	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2457f9bc	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x246df185	hyperv_fill_flush_guest_mapping_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x246e1b19	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x248be821	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x248d8cbb	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x248ed7a5	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x249990f8	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c071ad	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c768ce	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x24dbd0ea	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x24deca34	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e50ad3	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x250dee0f	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x252d1aab	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x25491940	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x25497ea4	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2556c54e	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x255a2e14	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x255fd570	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2569ad08	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x258081de	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x258b2dde	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x258d711b	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x258f7b92	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b0e5d1	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b55988	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ca59d9	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x25db7d37	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e593ba	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f02c87	xen_p2m_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f20f4b	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x261d1802	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x2622e3cb	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a7063	xen_start_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x26507167	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265f2c10	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x26779e03	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x268a7bc9	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x268e56a7	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x269e8987	intel_svm_unbind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26aa9fda	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b52537	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x26be0028	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6900d	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x26db8600	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e44e14	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f18680	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x27000d6c	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x2700c4ed	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27093025	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2715027d	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x2717a2b9	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x271dac38	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2723c438	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x273aab74	xen_have_vector_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2746d283	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x274806f0	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x275a691b	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x275ddc5a	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x276cc32f	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x27738550	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2780bb7c	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x27929003	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x27990c90	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x27bd24ef	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c5a4ba	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x27dc5336	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ec0364	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f53ffc	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fe6f44	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fedf4f	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ff9835	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x28273c9d	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2843b56a	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2847699c	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x285d5000	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x28698af5	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2895819e	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b3f933	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b817c6	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c3dc09	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cb3aa6	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e114bf	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e64c64	xen_has_pv_and_legacy_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f45755	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2903598b	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x291188fb	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x2930ac46	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951a872	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x295562f0	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2959d52a	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x29649545	xen_pcpu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x29723007	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x297dce22	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x29bd6b67	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c211bb	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e1b451	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f623a5	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1a5c65	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a21c7b6	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a40b947	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a58ae55	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a5b379b	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e3b66	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a890b3c	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa53d6d	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab5e0d3	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x2add2011	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af8d990	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aff68f9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2a0be8	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2ac216	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2befd9	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2ec19d	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b47f063	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b67b6b7	mds_idle_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b695891	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6d28cb	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7fc385	hv_init_clocksource
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b81669a	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb7fda7	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bbe806e	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcdd7df	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcdf6dc	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd65449	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bee868d	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf4038a	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2f5a09	x86_family
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3fcaa6	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c4df301	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c52df02	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c55adf3	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5e287b	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7ee329	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c82d4f8	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c886822	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca24890	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb0e863	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc870c4	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd48c13	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd62c7c	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce34e26	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d26a05c	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d27862d	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d437d9d	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d669e86	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6f016a	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7db775	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d909fb5	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9a2450	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da7f91c	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db2f13d	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db939dc	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc0998d	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd2f69c	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dda4ac3	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de46d9c	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2df7f4	irq_remapping_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e46499c	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e605a57	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8974ab	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e9bf425	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea28376	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eceedbf	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed2f8be	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ede2b4c	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eeea0da	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3403b1	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3d637f	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f559e2b	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f69286f	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7f8e4c	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7f8f7f	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f850263	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f973771	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa6f9a8	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd5b27e	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdcfd28	smca_get_long_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff8eef5	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff98f73	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ffeb006	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3018df32	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x301ce96e	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3024bcaa	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x302edbac	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x303c5668	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x303f2dbd	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x305daf23	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x306f5576	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b8ff67	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cf804f	slow_virt_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x30d692fd	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dbad71	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e15b56	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e77136	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e7cf78	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ebe8a2	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f6ea55	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f9b1f7	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x31128b8e	hv_remove_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x31441e9a	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3153089f	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3157ecf0	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165daa3	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x3174014c	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3186a93c	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319bc01b	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b60f73	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x31be9ba3	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bf872a	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c0d352	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c3913a	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c9b086	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cf594e	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d8d4d0	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dc3c83	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31fcbed8	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x32196fdf	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x324d0695	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x325aa444	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x3263f498	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3274ad77	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e3354	__memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3290c211	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x329e74ea	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a75d94	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b2e94a	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32be1f88	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bfb634	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c546bc	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c687ca	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c863a7	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3b076	mxcsr_feature_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ed369c	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ff7c2b	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x330fdd59	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3329d922	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x3330aa34	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x333b450b	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x334f15f6	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x33537c53	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x335826f5	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3361712a	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x3362b03c	xen_p2m_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x33655159	xen_pcpu_hotplug_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x33770a80	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x33bd58eb	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x33be3d32	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ce669d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d5afd8	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x33dd9940	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e3c189	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f856a7	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x341baea4	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x341f6995	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x342ef5f3	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3442a198	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3447e7df	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x345a8af8	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x34691942	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x3470bec2	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3477b3e6	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x347c8d8b	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3488aed6	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c870fd	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d6484e	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ff2b47	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x3507aca5	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3529045c	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x35416648	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x354af494	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3563b242	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3578e112	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3598de72	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x359a2278	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x35af4f7b	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x35cf3f52	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e2db96	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x35ee235d	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x35eeeb5d	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x35fdcf96	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x36170606	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x363aad45	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x36586cda	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x36696e12	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3677a0c7	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x367901ad	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x367f8839	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x369513a4	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a04c67	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5497e	intel_iommu_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x36cf406c	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d35aa4	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e4ec44	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f140bc	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f6c45f	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fa9944	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x37007390	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x372449ac	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x37386b1a	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x375accc8	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x37604c2c	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x377399d8	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377c03bb	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37968691	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b550a7	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e6bebd	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f292c4	pmc_atom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38198101	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x381c790f	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x382030d9	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x38272dd2	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384728fe	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x38543bad	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x385c142d	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3863bac5	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x38722f80	kernel_fpu_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x38843dec	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x388510ec	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x38870d5b	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x38906f5f	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x389f2bc6	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae2925	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae55fe	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b0069d	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b18b02	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b5bca8	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c388f2	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x39032399	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x390cd6fd	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3931b0f4	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3947c39d	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3969bc88	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e2fd7	ms_hyperv
+EXPORT_SYMBOL_GPL	 vmlinux 0x398466bc	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x39859f25	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b261eb	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e319d3	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ea3c0c	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fa09ba	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fe76a1	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a17a9c7	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2641db	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a273fae	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2c88d3	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2d8ad4	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4af5a2	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4e13d9	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a524ac3	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a69f85b	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7d80f9	xen_max_p2m_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7fdb71	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a83e186	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8bbb8e	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa494f9	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa951ee	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad7a0cc	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae2f593	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af578f5	hyperv_report_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b14c882	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3cd439	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4101d9	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b49b138	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4e3927	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5121fe	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b600f55	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b7f82c8	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b91db5b	intel_pt_handle_vmx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba245a8	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc52a67	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd67908	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdcf1f0	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3beebfe7	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf6bf7a	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c007d5c	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e8050	hyperv_pcpu_input_arg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c13ebaf	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2ac66e	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b43ec	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c373112	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3dba0f	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3dbb89	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4782c0	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c77a15d	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7d14a1	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9ab861	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd538c1	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cda81a4	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce70155	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf101c5	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d301bca	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d33241a	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d389a65	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d44e069	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d462d0e	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5e3587	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d61186d	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7603af	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d84ef81	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8dccfd	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d923de7	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db7cff4	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbd6a54	pci_msi_set_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc66a31	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc7e33f	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcbbdaf	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcd99b1	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd0f997	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0d3e73	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e144476	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1ece8a	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e319310	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e32d7af	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3c6ab8	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4cb57e	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e631419	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e746066	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e85d941	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e964bd4	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea018b6	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea6ae1f	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea8dec4	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed30539	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3edbfc06	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0a5605	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f100e5e	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f16a0ac	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f49bb6d	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b6caf	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5177f3	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f66af02	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8a0add	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9fe2cf	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae6ab0	hv_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb4a0e3	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc233b8	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd8e9e0	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4024ad34	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x403987be	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x403bd7f1	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4050698f	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4053210d	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x40695a34	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x40847c04	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x408f1c0f	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4092619f	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40a489b9	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c3feb0	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d15561	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x40eb0a0d	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40fe07a7	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4102c9f0	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x41042702	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x410b485d	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x411d99f5	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x411f87c4	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129f5ee	kernel_fpu_begin_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d6d70	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x414f403b	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x4158c087	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x415a96c3	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4164091d	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x417e6718	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x41812e15	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x419297dd	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x4199fb94	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x419c01e8	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x419f79b3	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a19e8a	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b1b976	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e21191	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f23f0b	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420a99d8	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x420d7383	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42313219	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL	 vmlinux 0x42327fe2	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x423e1143	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x42437b41	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x425c1ab6	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4262db49	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426b5067	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4293e0c4	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x429cda40	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x42adbcbc	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b60b25	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b9ccc8	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c057bb	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c63b0f	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c9522f	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d5633c	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x42dc2f46	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e256be	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f2cf93	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fb5adc	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fbc1af	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x430ae8ff	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x431a2f19	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4324a0df	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x432f0fe2	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x43353f00	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x433fdf5c	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4370887c	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438007db	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c796ef	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d3e377	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d7b606	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x43eea417	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x443023dc	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x443ed4ef	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x4447a9ae	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x44687d51	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c0f372	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c2e7e7	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e5b219	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x44fd82dc	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x4500ff9a	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x450110e8	perf_assign_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4508d672	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x452196b4	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x452eff70	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4535f1d6	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x4541fe0d	mtrr_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x45594a21	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x45613f78	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4563c93b	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x456589c2	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4583cf24	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x458d2a77	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x45907a21	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4598a208	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x459a67b2	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ac8933	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x45afd846	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cc1e01	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d14bdf	hypercall_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d3777e	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e6fcc4	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e7f44b	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fb004c	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fc8360	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4611b428	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x461f024a	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x463d8290	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x463fd03f	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x46456960	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x464a2b93	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46721538	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46732422	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x46770212	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b3c70d	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x46cbea28	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d61c93	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d7c2c0	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d9f501	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x46de2c20	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e4b89a	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4705377f	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x475c0f74	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4775b274	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x47795448	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4794bc42	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a2b163	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47bc9073	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47df08b7	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ec5bed	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f5d6d2	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f9e493	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x48032eff	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x482b14d3	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x483d35b0	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x483f8473	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x486050c3	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4873352a	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x487bc415	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x487fa3a9	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4893757f	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a93c9b	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b21930	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x48da68b1	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e9d2f1	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ede9e2	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f983ca	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x490ab6ff	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x494e62f7	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4958b43e	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x49679915	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x4976ae2e	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x49835946	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4989706f	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x498bce6d	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x498ef085	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x499204a0	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x49951708	sev_enable_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a8109a	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bc616b	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c14a61	ex_handler_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c98ad4	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d0d61f	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f40a24	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f8084e	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a058540	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a147b47	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a353a91	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3de3e3	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4f30d0	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6a0161	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6def6b	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a70d8e2	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7f342d	uv_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7fd8b7	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8f98c2	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa57500	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aafb2fb	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab24e1a	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab3ae7a	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac11151	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4adafc50	vmf_insert_pfn_pud
+EXPORT_SYMBOL_GPL	 vmlinux 0x4adf9f08	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b061f6f	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b13f94e	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17c6c8	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1b06fa	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1d94aa	mce_is_correctable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1fd6d1	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b215119	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b47f742	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56ce05	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5d72d6	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b64c24d	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6f48b5	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b756cf3	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b762828	start_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7dbd53	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba93e3e	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb0adb0	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf22c68	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf6edf4	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c064953	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c0f3aef	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2f4540	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3d06f0	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c567899	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c605a47	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6839b6	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6d1d58	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c762b5c	x86_stepping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c87d287	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca314d0	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca70910	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb070aa	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbd5137	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc4e85c	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd40afb	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce52f14	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cee0a9b	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfcb1b6	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d08a07d	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d207221	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d332f4c	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3338bb	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d39a552	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3a93f8	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4ccbbe	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d67a2ed	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d68bc16	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d69d312	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d6a1d17	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8af8c9	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae5e62	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd0a379	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd2a1b7	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd78300	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd95f74	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd97551	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df269a5	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e030e00	del_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1cf8e9	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e213019	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e2615de	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e2b8e4f	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e412e22	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e56eb2e	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e58d841	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e728d59	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e81a5d1	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eab4f25	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eaef637	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb3029d	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eca1e47	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed709ea	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efee91e	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f04872e	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f19e417	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1c5d5d	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3f2bda	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4210af	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f71d853	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8d70d1	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f929d70	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac98a7	machine_check_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fae38ad	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb14aa3	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbc90de	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbd49b3	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc7db71	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc8a7e0	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fcaccb6	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd892f1	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe687d6	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x50047808	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x500520a4	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0x500a9d53	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x501c3136	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x502d1682	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5034c12f	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x50412861	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x504ebbcd	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x504f2464	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x507a827e	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x509b43ad	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b03f5d	l1tf_vmx_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c6112d	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1f870	pgprot_writecombine
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x512f2f96	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5149ab3c	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x514b0cf6	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x51586642	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5165f521	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x51675533	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x51775299	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x518a59a5	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x518bc389	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b36480	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b41b69	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b659e9	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c9c897	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x51cfd902	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e093db	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e777ce	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x52015727	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x52021308	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x520545cf	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x52127626	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x521624b7	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x521974a8	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x5221150f	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x52236af7	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x522f83dc	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x523164b1	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x5240776e	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525c0273	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52791d2b	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x529ce3dc	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x52bf7282	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d986d2	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e3a287	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5306a1a4	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x533045eb	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5338387e	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x5351b899	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5353cf52	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53909a72	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5397c2f3	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x539f157b	pci_xen_swiotlb_init_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a642b3	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x53bf2c27	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c47c53	apic
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c68690	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c6a607	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f360ba	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f7fcdc	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x53fd64bb	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x5402703e	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x540d30ba	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x54277a0d	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5432bbeb	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x54595ade	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5471c24e	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5473c10a	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x547567e3	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x54951154	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b993eb	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c7bb78	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d35ce4	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e5f325	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x54efe140	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x55073861	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x550ce709	pat_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x55199e69	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x552fe77f	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5575db4b	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557c33ee	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x55946f18	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x5596b0bb	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a79e52	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b9822c	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e43e82	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5601e5d0	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x561430d1	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561c1be7	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56398615	mark_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5652f3cb	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c8b0a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x56811058	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5685b916	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x56862397	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x56881a21	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ac39ad	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b4eeff	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b702dc	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b9b4d3	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d322d8	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f236c4	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f921dd	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fa9244	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fb0140	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x57380390	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x5738bf0d	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x573e8f9c	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x574fc58c	system_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x577c7510	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x57818127	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a6e3ec	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b67c74	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b889c9	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x580b8068	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5837fd52	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5850433f	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5855422d	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x585fe94c	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x586378b7	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x58672f4b	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5889c723	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x588abbda	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x589123c6	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x58971513	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b419fd	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x58bcd3e9	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d6311d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58dd062b	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f03b99	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x5907c4c7	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x591babab	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5925d610	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x59291348	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x592bf2c7	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x59465302	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5949bd5d	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x594bb503	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x59523254	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5988b6cf	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x59945642	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x59968ccb	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5999aa9f	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c22800	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c2bcd3	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c34471	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c6aff4	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x59edc477	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x59eede04	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1c212d	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a251fd8	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a295367	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a385d59	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a40217d	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a42aff2	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a47cc46	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7be8d9	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8de2e0	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa0c82e	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aceea34	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x5adbcdce	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b037891	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1f7602	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b381e59	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b42c781	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b691a07	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8580e7	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b87d534	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b884364	hyperv_report_panic_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba3e9f7	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba86c52	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb289ac	__tracepoint_extlog_mem_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd4ac9b	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bed0737	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf8d7f4	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c09ecde	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c1095b5	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c401732	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c44f810	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c99866c	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cafab18	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb290eb	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc62b94	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cca891d	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ccc61b7	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd697c6	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdaa6e4	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce149a2	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce1c47a	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfaf73e	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfe5514	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d05b456	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0f35d2	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d12583d	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2c61b2	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2cca1e	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2f0819	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d332967	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d405e65	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d71b9dd	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d774066	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d794224	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7d65f6	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8205e0	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9317d7	uv_teardown_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d95a0dc	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9eff0d	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da85039	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da8fa0b	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db33b94	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbb5d8f	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbcfa4f	boot_cpu_physical_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de42993	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dec73da	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dfedfcf	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0658a4	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4947d9	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e63c997	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6f028a	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e74cc45	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7a5cec	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e80c8bb	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8a0000	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8c3293	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8d3c4c	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9485cf	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e99a768	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5edca2fc	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee1c975	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee36d13	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eeae448	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ef1491f	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f026080	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f02e591	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f17fa33	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f1c28c7	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f217197	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2fcc83	ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f337012	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3ab72c	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3d660f	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4cca8b	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4f193c	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f78f30b	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7a9928	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f80d24c	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f82f432	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f8ee2a6	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f91fa1a	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fab4e04	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb02782	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdfa2c1	amd_pmu_enable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe1266d	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe33945	pwm_lpss_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff34df8	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6018905d	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x60206725	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x60234025	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6052e663	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x6063e8c8	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6069bdce	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6078e518	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60acf710	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cb0c4e	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d100de	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d31006	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f285fa	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x61181a19	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x611d0e4f	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61527afa	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x616cbbf9	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x61809976	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b14da	fpstate_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a1cbe3	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a291ea	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c5c0cf	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d0b7e7	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x61eee0ed	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x620f6fd4	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x620fcbac	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6225b27b	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x622efc9e	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x626d8deb	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x628355f6	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6289ef8b	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x628ba560	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x628e4ba0	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x629131d2	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x629527ce	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62ca764e	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cae61a	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cddcc5	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d1c49b	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f2ae9a	x86_vector_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x630a0a97	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x630dbb5b	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x63125f44	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631d9b4a	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x632a7cc4	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x633354f2	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x6340434e	x86_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x63489577	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x635475f7	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x635852ba	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x637fe2d1	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a9653	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x639357d0	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x639e00d1	xen_find_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c259f7	node_to_amd_nb
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c8fd2b	hv_setup_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d3d09c	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d6ef0a	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x63dabee2	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63eb1836	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f476dd	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f8d97e	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x641d5092	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x64436b31	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6458c631	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x64671dbc	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x646d3f19	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x646d9263	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6470a8e2	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x648cf9b1	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x649f849e	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a62e11	acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b8e19f	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bdcaa8	hv_get_tsc_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cbc116	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ee1505	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x650601f7	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x65174cca	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6527a231	dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x652f9a6d	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x65330296	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x65531fac	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6564e173	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6583d66c	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x6591f64d	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x659ec2fb	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c03ff1	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c5dd4e	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c706ba	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c8d7c2	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cb3079	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e322ae	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x660cf68f	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6630bacc	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663c7f36	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x665f2dff	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x669ef428	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ae4727	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x66aec06c	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b479bb	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bd2e5b	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bd5fec	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ecf6f9	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fe47e9	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x67031117	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x672b51de	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6732be7c	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735de7b	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6737fc68	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x677ae4f7	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67930cbe	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x67941d8b	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b205a0	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b39131	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c981d2	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x67cc6899	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dbc37e	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dc57da	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcd76b	uv_setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e341e3	uv_bios_freq_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x67fdbff6	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6803aa62	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x682f141b	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x684d1288	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6862b9f1	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6866922b	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x687381ee	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x68799531	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x688250c5	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6893afa9	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689c90fe	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68add1cb	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x68cecf7c	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x68dc27f5	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e27667	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fb3389	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fd4f1d	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x691d2807	smp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69280837	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6928c6e0	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6932d705	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x6940ef55	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x694df79e	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6961c680	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696d7e0b	l1tf_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f7294	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x697678a6	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6983baea	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69921552	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a937fc	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b49cef	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b64bff	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c6356e	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c6383e	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f4c99c	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f861c4	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fa3774	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0ea45d	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a106938	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a773ccb	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a84ebee	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8c58b2	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a919942	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa568d3	efi_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac4ce6d	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6adb54dd	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae160c8	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae47560	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae99c97	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af14980	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afc90fb	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0f3af3	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2a5201	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b30f7a7	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b363887	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3c8a4b	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b46389c	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4677a2	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6d00e8	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6f4758	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7706dd	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7a4335	hyperv_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8b2f0d	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b948136	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b95b8b9	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc9565c	xen_remap_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bcabd85	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c099327	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0b9ec8	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b612b	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6931b8	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c796758	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7cbb9e	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c914209	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb6c096	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc2ce26	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc92155	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd28086	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdb9f3e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0d979d	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d12421e	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d16c473	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d191909	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2b2f03	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3b146c	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3f7812	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d499e63	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d52788d	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d59240a	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d63d3d7	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d65b1b4	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d71dbe7	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d768a4f	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d88a2c7	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d915185	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da1f656	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da3eedb	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db45cec	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db62ca8	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc54eda	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc6fd37	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc9ffc8	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dde57a2	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x6decd5c4	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ded8db5	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df80b9f	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df86ab3	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfa2966	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e21c9d6	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e360d22	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e564692	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5f32a2	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e71043f	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e85b00b	local_touch_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e961135	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ece21a9	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed0567f	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef61524	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efc6325	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f06ee5b	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f32a66d	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f5785a4	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa676ee	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faa0e0f	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fac6f77	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fcafd37	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffce680	x86_cpu_has_min_microcode_rev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x701cf7ad	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x703f5f94	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x703fd164	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7053d02e	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x70576fee	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7064c9ec	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x707c7fb0	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b24c5b	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dafa2d	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dbc43b	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x70efdbce	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f5332f	sfi_table_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x70fa804b	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x71007c1d	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x710d664e	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7116bf8a	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7133cdf6	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x7145e863	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x71498b53	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x715c3693	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x715f86e7	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7173a844	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x717409e0	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7182d4cf	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x7188462e	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a2b81e	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x71abc2eb	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x71cec981	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d1c3f1	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x71df07ce	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e06c13	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x7215730c	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7222987a	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x722cf2dc	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x722e4172	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x723e5096	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x724098f6	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7286fcb6	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x728c8b87	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x728d926c	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x72938a51	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x729a846a	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a7a0ba	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b8536f	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b9eea7	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ca4e8b	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d48708	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e7c753	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0c75e	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0cf51	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x72fc5124	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x731a8196	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x73250875	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x73481cf8	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7349fe6c	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x73574c7f	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x73614986	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x7361b345	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x7383e9d8	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fe32b	amd_get_nodes_per_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x73905c6e	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a86a59	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x73adc270	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d78abc	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e14e1b	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x73eb21db	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x73eb2f2a	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x73eeadd1	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f56d67	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x74331f09	intel_svm_bind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x743c3e33	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x743f7950	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452adff	user_return_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x746a80ca	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x74701d9b	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x747bf6e4	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x74865e5a	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x749c03a9	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x749d05e4	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b0ae08	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c684c9	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d8a2e7	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f60429	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f9856c	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x750443aa	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7515bbb7	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521afb6	leave_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752c7c53	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x752faf18	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x7577892e	xen_pci_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x75792186	get_xsave_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x757d153e	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x757df763	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x758161ab	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x75822b7f	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x758e05b6	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a2fc10	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x75c9b213	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d59256	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e766a8	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x76064141	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x760cf528	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x760d0883	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x7611690b	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x761450b2	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x7641df7d	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x766e1df6	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x767a6950	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7687b90c	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x768f97c9	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a5760c	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a8e981	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x76aed873	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c392cd	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c52a12	__xenmem_reservation_va_mapping_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d6d985	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d951cd	mce_inject_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x770dd4b5	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7713312c	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x771c9b9f	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x771de163	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x7724cf5e	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x774a732c	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7754a0c2	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x776e8129	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c8cd2c	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77da780b	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7805b96b	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x7810f05e	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x7819fd4e	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x78252b06	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7829292c	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x782adb74	hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x78379ff6	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x783de72f	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x783e551a	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x784309ab	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x784fa9fc	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785acaca	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d84f2	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x7876d0b4	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x78812411	hv_stimer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x788d14d3	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x78984c94	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b236d1	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c0b2e3	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e46575	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ea0563	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x78efd383	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f257b8	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f7deee	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f975ab	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7906fa1b	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x791748c8	adxl_decode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b232f	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x796a1e35	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x79778bab	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x79796843	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991fd8d	crash_vmclear_loaded_vmcss
+EXPORT_SYMBOL_GPL	 vmlinux 0x7993a99e	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c28faf	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c347ea	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf1043	fpu_kernel_xstate_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e8cb60	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x79ee5f40	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a02cedc	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a02f579	add_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0e84af	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a38f07a	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3984cd	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a404fa4	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4c18ef	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7c5788	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8f0813	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a986c3c	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aabe19e	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aae44c7	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ababa8a	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abc95a4	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abcf417	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abdfa4f	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad7ae56	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b1a9dbe	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b22b3ab	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b250ea3	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b27c6b2	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b297cb5	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2c3442	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ef438	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4f7590	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5cdcc1	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6dc91d	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9fa089	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba196e9	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba2f211	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7baff229	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcb03bd	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcfd6c1	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd2906a	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf5714b	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfc53a8	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bff4a36	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c02ec4b	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c20b6a0	load_direct_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2bc5f6	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57421b	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c72257c	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7fd7e5	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8c660a	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c975295	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c998c00	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9f1a70	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca51686	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca92268	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc4938f	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccd7f32	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd79fe7	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd7b8f8	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cfa00b9	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e1d95	hv_setup_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59ae6a	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d5db783	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7ba63c	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d952133	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d95b2d4	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d96def2	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d97f90d	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da49f0c	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db23d84	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc69d61	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd219bc	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+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 0x7e08fa26	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0ca548	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e178063	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e22a093	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3a49a4	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e657f88	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea0c55b	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea1a2bc	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee7cbe1	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eeb63f4	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef29fcd	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f09c7c6	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f16fbba	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f31c17a	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f35abfa	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3cae12	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4dc19f	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7494c0	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7f0625	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa50c26	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb48497	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff1e32e	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff58126	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff86397	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x8002455c	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x800fcb80	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x80275d52	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x80472e17	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x804dfd52	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x806207a6	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8067b7c1	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x806cf54e	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8073af21	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x8073f536	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x8094e583	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x809f2836	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a068c8	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b1bb02	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b32f3d	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c11314	gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ce6704	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80da198a	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x80dad909	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e4ee68	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ef6f08	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f3a3c2	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8104f0c3	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x8112a322	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x81201186	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x812183db	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x81221cad	amd_nb_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x812ba27d	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x81316162	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x813d0d35	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8142b284	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8147d2c9	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x81546059	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x81609682	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8186478e	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x81934847	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x819422ad	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a4297e	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b3c838	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c7b1ad	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e70809	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82011308	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x8214b9db	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x825ebdbf	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8260e2e1	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x827aa103	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x82946c07	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8296b546	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a2bfbf	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a8b2c2	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b63358	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c30882	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e4b84d	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x831d0d8a	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x832a45d0	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x83398080	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833bc17d	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353bc05	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x837bc191	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x837e0c61	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8387445b	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x838edf57	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a14325	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x83afd937	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b390f7	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b70ecf	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x83bb66f2	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cc020b	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x83db1c31	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e2f652	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ea42f6	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x83edb592	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f40ecd	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x840b024f	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8416f363	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843526fb	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x843654be	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x84854c1b	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x848ae620	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x849377e7	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8496396b	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b268cf	sn_coherency_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b3a971	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x84baadc8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x84bf574b	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c55674	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d434f0	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ff8441	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ffa9ba	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851af055	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85200ecd	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x852feb62	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x8548aa7e	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8569f912	pci_msi_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x856f0cc0	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x85702522	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8571b9a0	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x8573fda9	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x8580c7b4	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x858af17e	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x85954e1f	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8599c50f	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x859e39a1	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b09fcd	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb2c45	xen_has_pv_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d0893a	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d9ee51	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e95556	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f3a7ee	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86010468	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x86169f3e	amd_smn_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x861b0f1a	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8628892d	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x8632e396	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x865094e1	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8654be58	hv_remove_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677f369	pvclock_get_pvti_cpu0_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x86859c19	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8691ea2d	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8699d72e	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x869baa84	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a302f5	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b98948	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x86bedcb9	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d77ee8	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x86feaae2	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87069cab	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x871ee87d	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8735ed3d	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x873f76f1	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x87541440	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x875a7ac4	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8765e592	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x87728324	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8776709c	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x87802b3e	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8789bc10	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x879c1e46	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a4c2c9	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x87aabbed	uv_apicid_hibits
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b4a09f	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b7fed3	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b93a28	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c2b7ea	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87cf2881	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x87da15f4	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e35609	hv_stimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e64181	amd_nb_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e650d7	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ebf9f5	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f4fb52	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x88043d9e	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x881dd2ce	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x88359714	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x88674b87	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x886f3fe5	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x887652e3	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x888941f2	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b266f8	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x88d9cf05	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8901d7e0	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x89055458	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8930688f	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8941cd61	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x89437695	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89609c9d	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8965b7c4	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x896e548e	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x89816591	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x899d775a	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89befa20	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c82366	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cab1b9	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cf3aec	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d0be12	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0647bc	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0ec83c	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2f52c4	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a37d9d9	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4c45de	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ca7be	hyperv_flush_guest_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a51f653	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a60fab0	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6493aa	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a661bcc	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6f219d	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a705b41	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7cb9c4	platform_thermal_package_rate_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a899ee3	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8ec4c9	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a90b142	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa23efd	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa51b7d	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa637b5	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aab2553	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aaf68ef	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab12baa	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab9067e	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac3ce58	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad5ceb1	__uv_hub_info_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad764ca	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aeb57e7	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af11d73	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8affb957	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b19f782	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2e021d	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2f5182	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b42e8e5	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b767366	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b865524	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8dc46a	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9200fd	lookup_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba28689	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bda969d	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdfccc1	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be5b543	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bea59a7	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf209f3	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c10ce14	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3e3f24	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c667e7a	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c66a64e	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6b629f	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c82fea8	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c888435	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c905758	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9d1661	arch_phys_wc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb5e22a	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbcf222	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd6bd2	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc7fe24	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc8e565	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0a5cfe	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d190be0	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d379494	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4a19f4	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4b36c4	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5811c9	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5a3706	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d674b78	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d77ea35	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9e2d97	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da76bf4	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da8ead4	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbcb9ba	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc82f1d	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de53694	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e01934a	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e19feb6	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e1ea37e	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e296293	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3637f7	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e527d41	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e65e8c0	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7366c9	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8d4ea3	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e906d5a	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bd4a3	hv_alloc_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea9d3a0	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb7a87b	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb80f1d	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebda84a	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec6a92e	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed6c143	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee53e31	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef69f52	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef94f0e	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f05bb84	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f05fa72	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f224856	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2dd7ca	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2e58f3	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2eb429	kvm_arch_para_hints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f364709	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f403c04	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f480a49	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5760d3	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f70bee8	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f852784	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8e0040	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa6a4d1	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb91cb4	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbf7938	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc83e6c	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd3eaff	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd73c35	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x9010a778	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x9011678a	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9024f443	mds_user_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x902f11a3	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x903c07f5	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906c8055	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x90721e85	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x90798991	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9084b044	clear_page_erms
+EXPORT_SYMBOL_GPL	 vmlinux 0x9099e117	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x909e25c1	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a3b032	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d8cc	hv_is_hyperv_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x90af1fe4	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de0452	platform_thermal_package_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x910059ca	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x9103feeb	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x91062043	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x910b2315	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x91164d7b	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x912940b9	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x912bbf55	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x913ebc8e	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x91448752	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x914aa0b7	hyperv_cs
+EXPORT_SYMBOL_GPL	 vmlinux 0x91609ee3	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x91700124	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x917f5362	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x918cb549	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x91983148	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91be3864	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bf8df7	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bff61f	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cb097f	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e01da7	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e03a02	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e25266	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e89ee2	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f187f1	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x92141343	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9232d7e3	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d9dba	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9253f97a	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x92541fc6	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9254e41a	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9257a27e	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9258937a	e820__mapped_raw_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x9266977a	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x92716e3d	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x92862bf1	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a89569	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b36306	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c55dd7	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c560d9	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f8cc08	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9302e9fc	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x930d6cd7	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9311fb3a	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93131e6d	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318fc32	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x932769db	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f9098	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x9343415c	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9354e2c5	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x936aa0ec	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93768c81	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x93885abf	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a8223d	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b5dc49	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c3439f	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c55295	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d7b06a	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x93db63e0	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc2586	pgprot_writethrough
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93feb8d7	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9404c71a	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9405f434	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424058f	arch_haltpoll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x942a53c0	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x942bdc72	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x94334733	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x943cc2c1	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9442f72a	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x944839cc	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x94488684	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x944d0a41	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x9464bc2c	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x946cf297	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x947b40c6	cpu_smt_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x9487a48a	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a23d84	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c2b462	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d36dbd	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d9e0ca	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x94eaa854	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f296ac	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f47934	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x95072a69	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x952e126a	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9544312c	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9545a352	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9548d872	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9550935a	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x955c0e02	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x955c0e2a	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x955eef4f	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x956e6d1f	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x957d57e9	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9595523e	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95abb18d	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ca4b1f	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d701b7	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e468b0	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95efa1db	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x96128088	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x961c3d34	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x962322ff	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9633bf8a	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9636b39e	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9650fae4	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x965aecd2	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9688b217	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x96bfa2c3	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x96dad16d	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ffda18	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c230b	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x97131347	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9719bcfd	pmc_atom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x973604c8	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x974dad62	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x975021a8	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x97664276	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x976813a1	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x978e8a64	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9797af5d	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x979ee5ad	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x97aa11ff	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b40a79	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b64475	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c23c8c	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12355	hv_remove_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e3d86a	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ec4498	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9806bb57	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x980eecf0	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x98155ac7	pwm_lpss_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x981890bb	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x9819f900	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x98206f1f	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9846a66f	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x985c2dba	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x986bda19	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x986c3a7b	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ab0a5	amd_get_nb_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ec7d0	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x9882bb01	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9888d82b	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x988a1a00	sn_region_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x988f8490	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x98951bee	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x9895ff36	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ad201f	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b3ba55	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x98babaab	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98dc9810	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ea48fa	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f0a0b3	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f4d306	hyperv_flush_guest_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x99015eb9	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x9908e30e	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x992e9b18	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930f8a3	uv_bios_change_memprotect
+EXPORT_SYMBOL_GPL	 vmlinux 0x993efd04	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x99430ba2	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x99470a38	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x995430ec	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b20f79	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c011d8	mcsafe_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c2a133	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x99cd6f53	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x99da32cd	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x99dfc8ec	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f019e8	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f207f8	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0f49a8	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a277843	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2f0084	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a344d6a	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a356738	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4a5dc1	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4e7319	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9f58c5	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa71c2a	efi_query_variable_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaac699	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aad63dc	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aadf6f8	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ab3b5d1	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ab70307	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9acc132d	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1179a7	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b66d5c6	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b865a2e	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b8b358e	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b918525	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b922892	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b98a075	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9c345a	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9f3648	pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2fc6b	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bad141d	hv_hypercall_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be7c261	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c0fe31c	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c15d3a4	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1fbd44	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c20f824	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2ca4e1	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2f3439	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c61340b	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c6baefe	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7730ff	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c87b2d6	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caac8af	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cb42376	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4e7d1	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccb7a59	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccbdf69	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd32b5d	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd762d3	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cefb6c7	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1f1d94	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d224329	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d3eb51e	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d3fc8b6	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d49098d	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6a311e	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d76b199	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8e82be	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d985873	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db49086	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbd9ff8	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcfcd22	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd4b0d8	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddb4157	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfaa077	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e006414	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e06d979	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0f9ed3	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e392023	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e423bbc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e54ad6f	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e804a3b	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8b6d37	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8da3a2	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9a658f	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed48b64	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eecaab6	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f04847e	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f57d299	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f583b02	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f5ea406	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f658e26	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f665f15	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f699734	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d1f6e	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6ed683	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f71bc72	uv_bios_set_legacy_vga_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7b2cfc	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9b9703	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fab32df	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb52d5b	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbb8e4d	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcdcb5a	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd7ef27	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff5fd10	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff7e40c	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ffec7f9	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xa00a0184	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0185b71	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01ce684	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0203887	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa037a880	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06389f6	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08045e1	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08c5c56	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0996adb	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0bc2b9d	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3ccc6	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0db9a5c	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dc2eb3	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e53b60	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ec9d13	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10604d3	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10a91c6	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11cc9ad	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11f9ab9	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1210975	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1242ee9	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1336433	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1443f48	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15a4cd1	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16c0dd1	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a0ed36	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1acd4a3	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ad92b9	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c0564e	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c1d2cd	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1cd9893	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d55d22	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e48e7f	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ed9c8b	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1fc0b43	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2458271	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa246164e	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa255f620	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27c3e06	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2885c86	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa290ed07	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa296539d	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xa29f8330	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bf42c9	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c3c179	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ce2815	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d3bf77	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2db2db4	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e59f34	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f352f8	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fdd5ab	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30ba206	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa311f35c	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31304eb	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31dac90	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa329b63d	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fccb7	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fcfdc	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa357808a	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35fbfc4	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a21a9d	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ba86a6	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c3cfc8	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3daabc1	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f3034f	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4124d21	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa414e4e3	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41b4a02	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41c89e9	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42967fe	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa431732c	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa431aa7f	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xa435def1	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4387ee4	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4408187	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa447a9fa	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452a009	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452c297	hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4572a58	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46c3e60	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46e94f3	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa495d1c2	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49cf123	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ada75d	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d74212	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d9031d	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa507f458	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa508d826	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50aa783	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50f60fa	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52380a9	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xa527e28b	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa528df0d	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53587bc	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5386d13	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa541339f	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54c7d84	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa56fd07a	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57637fa	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xa584b3e3	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586fcdb	uv_min_hub_revision_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59159be	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b52b7f	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c0f065	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c60c3d	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e19ff5	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fc18a3	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fc90c7	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa603c4b9	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6045b6c	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60714d7	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa609b337	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa61779f8	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa61d30cd	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6202377	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65b63d2	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa662965e	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66653b8	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66dad14	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6869592	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ab907c	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ad0afa	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c35a9b	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ead6ba	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f1e922	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7127da7	mce_unregister_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7180bd3	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7187bda	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73cce3d	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74df928	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa762b1a7	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xa771f981	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7883438	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79787c9	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c86758	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cb3593	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7f9e506	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fe79db	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80fa3dd	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83ee924	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa844370e	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84c285f	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa856f5f8	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8629962	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86b0542	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87e740f	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa89eb1e2	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a60f1b	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c53c98	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8cd9ffd	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8dcd1c6	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e1150f	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e931f1	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ec8c50	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f38cf1	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9282309	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92de5d0	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa937bd77	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9444efb	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854364	umc_normaddr_to_sysaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854e78	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa992f351	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99915a4	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a15b26	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a63883	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ad25df	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ade4d0	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9fd3479	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0e3d05	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e2b59	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa35c632	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa451a9a	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa48852b	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa58ca24	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5aee1c	uv_bios_mq_watchlist_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6b1a70	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7c08da	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7f4df8	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa86cfb5	uv_possible_blades
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa89bfb7	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa96f683	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaaffc77	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xaadf4327	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1e0e93	hv_setup_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2e715a	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2fd34c	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xab56aead	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5a3862	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5d61b3	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7afc54	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9174ff	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc214c5	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc9aadf	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0ce30b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0d1b06	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1d3503	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5486b1	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7256a6	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7e797f	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9b8d57	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca3fdfe	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc38f46	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaced3bfe	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf4252f	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf42630	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfe2b49	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xad01c434	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xad09b461	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0b0ae3	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0b462d	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3a7ac0	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f0017	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad85ad01	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xad92f1b2	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xada13a33	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb8f873	do_machine_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xade4f534	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xade63dad	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf61bb3	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae146163	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xae195377	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xae25bd8d	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae357203	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae484620	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xae57cd3b	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae821f7c	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86a936	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a7b72	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xae908a75	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9530b1	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed47e08	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf0e22c3	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf568bff	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf990ee8	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf99bc40	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc80d76	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd2fd50	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd5324b	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe17d4f	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0021ac3	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb004948c	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0069bec	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb00e4386	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03f7aa8	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0530f63	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb078356e	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07aacf8	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0845bbd	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08e57d8	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08fd476	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a3ac9d	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a400e1	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ed0f56	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f3e307	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1292411	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14a28ba	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15c02cd	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1898271	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19f4a80	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a02d04	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1cdc235	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ef0548	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f0207b	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2082bf7	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20e5ff7	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb234126f	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2424676	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2771991	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb285b8f8	xen_in_preemptible_hcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28c3152	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb293e25b	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a881c3	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aadf75	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c35cba	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c39bb7	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d08c1c	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2db44f7	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dfa8ab	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f1ff43	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3045767	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30e9c10	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3137417	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3179d6c	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb330277e	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33e8e8c	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34fa1dd	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36de26c	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb372aa53	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3866326	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38be02b	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39913f9	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39c54bb	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c4fea9	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d4dc0a	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d8051b	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3faae5a	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fe276c	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4055ce3	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb413b12c	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4301bb6	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47706d8	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47972f5	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4882a83	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a1cfcb	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b663cf	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4cb7405	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d1968b	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e1f27	__uv_cpu_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5161cf8	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb524c612	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb526b74a	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb546f9bd	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5491998	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55af5c7	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55e0509	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59f140c	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a4f3de	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ae7c9d	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c6db7e	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ce3d64	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5daee57	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e0fedf	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5fb83c6	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6074632	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60ae52e	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb63211cc	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66715c7	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66d58fb	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68797f8	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68dfac4	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb694ba8f	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c667de	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6fb2779	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7312a17	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb732d5e8	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb733c4df	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74861db	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb761318b	sev_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb764cfef	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76e83c9	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb773588a	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77ec21c	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7bec65a	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c1aabe	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d7c12e	hpet_set_alarm_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8431ac0	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb845d724	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8588200	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85ffc59	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8756bf5	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8921907	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2b1f7	mce_register_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8def74e	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9014280	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9074568	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90c75e8	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9144c4b	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb923ec8d	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95433c2	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb965134a	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9705b17	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9736d8b	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b4c2e7	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b8a022	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c16f51	hv_max_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9dd32d3	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e41308	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba01ec83	hv_stimer_global_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba100398	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xba181e3f	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4088c6	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4170b6	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4598ab	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba57d951	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xba663ead	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xba68ebbc	__xenmem_reservation_va_mapping_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xba820094	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8e2c38	irqd_cfg
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8fd6bc	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xba984d9b	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa14555	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab403ea	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacba0e4	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad56f3d	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae4a454	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaef5ee9	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf9d785	__tss_limit_invalid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb18d31c	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1cfcd0	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1f88aa	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2f74ed	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3cb3a3	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb409557	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4552c2	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4768f8	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb49fd83	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5029aa	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6d8d5c	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb767864	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb95a101	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb96a4f8	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb99a122	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba867a3	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb676ce	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe5baf8	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbf2de1c	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbfe3fbe	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc04bd46	x86_platform
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0602e4	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0b0785	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc248213	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3915e9	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc60dc37	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc736f25	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc916d0b	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc656bf	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcca533d	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccdd956	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf31c4e	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0b27cc	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd162c4d	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1c5f64	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd425a91	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd434990	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd63baa0	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7c36e1	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd888523	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd8be07e	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda7b316	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb2dfd5	uv_bios_reserved_page_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc5ff42	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0402a2	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe07f3fe	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe248956	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3a52df	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe477d4b	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe47cd1a	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5dff76	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe654294	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe68ad83	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe925d50	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec736d0	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeea4d3a	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf10a51e	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf115bea	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3d02c2	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf426a8c	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4a859f	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4f1e09	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6664ed	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf666b88	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6b667d	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf77aa02	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c855f	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c9a6c	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf8b9451	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9b98dd	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb02606	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb1be70	hv_setup_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc64b71	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfccf4b5	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd0f1d7	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfda0bea	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdf5fed	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff455bf	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffb5565	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffc8b1b	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffd09d3	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00cd684	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc028cd4a	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02c9504	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xc03a14cc	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0462cf8	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05ad9e8	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07ad057	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07c2231	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc080b71b	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bbce6	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08e56ea	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b85058	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0bf02a2	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c375bc	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d543a9	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d812e4	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dbf4aa	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e6b4ad	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e8d4c6	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e96037	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f1e77c	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1110ccf	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc113e35f	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc114b05f	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1424a66	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc142ecf4	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1481af2	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1537f88	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15aaedf	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15ba944	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc182346c	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1886f71	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18cdf36	amd_df_indirect_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19884ab	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19d5c75	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a2fbab	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ab4001	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b7729b	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b9515e	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cde909	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d51221	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1dd5753	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1eace55	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f0cd59	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccf09	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fe73fc	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xc206da0d	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc208cfc3	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20cfd54	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2126ca2	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2160384	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2447c9e	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc244b11e	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc253ffef	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b8971	hv_remove_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25e1de8	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26e7722	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xc279241d	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc287d96a	kvm_set_posted_intr_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29737c7	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a23c76	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2bc9656	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1e4fe	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c34bfa	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e4619e	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f3682c	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f63418	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fc7a6d	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xc304f5a6	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xc315cdf3	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc31aa385	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3256c3d	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc326d3a9	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc334d45e	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3368bc9	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc376c039	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38e8911	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3abeebb	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3edf6aa	save_fsgs_for_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fd0b67	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4123cbb	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43a6197	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44d23dc	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b3673	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49097b6	is_uv_hubless
+EXPORT_SYMBOL_GPL	 vmlinux 0xc490ed95	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4aea0d3	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4bb1362	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c0895d	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c7e244	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4d0591e	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4d68e49	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc512626a	__supported_pte_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51ce5f3	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc520f243	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5221108	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5269ed0	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc540d204	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5423c99	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54b7c06	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5540910	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5569760	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+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 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c8f1d	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xc591b527	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5996c8c	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5bc0fec	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cae5a4	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e66863	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e9b512	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ee0b69	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc610944c	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61a9e86	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6237007	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62eba0e	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63d901a	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc671b610	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc683da81	set_memory_decrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6905b68	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a1bfa6	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a3c3ff	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6acaaf3	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b10427	ex_handler_fprestore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bfa692	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c4906d	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6f8e16c	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70c21b3	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7101748	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc717440f	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71896db	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc725de57	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc727ea52	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc72d245a	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74bad06	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7588779	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc778c7a5	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7842ee8	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xc785c812	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79c064e	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79d39ad	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b16136	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cc43d4	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cdd4ff	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d8a844	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1cc1c	injectm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc824e6fe	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83732f4	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83989fd	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84439f8	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xc853c567	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85b066d	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e487a	sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87f5d56	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc883dbe8	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88e3904	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89ab28a	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cda823	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e2c467	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e68a2f	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e692f8	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f162c9	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8fb3c63	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc918efca	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93517f1	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93bc99e	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94d452d	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95336e7	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95b2fac	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc963e8bf	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc970ef10	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97ee1c0	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9bfdcf0	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c96494	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d7ac2c	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d9b119	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f64c84	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xca0481fe	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xca051c44	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2b2e6e	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2eb680	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3346b1	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xca364574	events_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6d5041	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7cf88d	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa4a67f	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa68533	cpu_has_xfeatures
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf0304f	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafd62af	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1c694c	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb26d305	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3e88af	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb53a0b4	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb55d78f	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb6339f6	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb64db4d	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb67ee03	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb70a4a9	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970751	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba884be	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf2f906	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1174b5	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc168bdd	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc26c2bb	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc26ce97	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dd1d2	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3e7767	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4a8c48	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5f3958	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc63ada1	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc682bbb	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7c00c1	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc92bcc7	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc98d6c5	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca0e56f	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xccad2fb4	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb5cf92	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb90ab2	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbbf20c	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdfee6d	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce3c66b	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea4e34	perf_get_x86_pmu_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf0c485	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfbaf8c	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd06ce37	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd23a847	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd337985	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3dd4ba	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd434003	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4947b0	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4b289b	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd63c67f	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd81a945	switch_fpu_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd847a9b	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd85c924	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb1e178	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb7c9cd	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcbd25c	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcfc501	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd42d8d	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddd3d55	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcded7620	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1a4fa	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xce00d2f5	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce12567b	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xce129587	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1c3b5a	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2959a1	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xce36c966	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xce37c9fc	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xce62cb22	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6ce3cd	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce867ee0	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8b9c70	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaa0edc	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaacf40	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb39beb	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb66bec	sched_clock_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec3f075	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec85da1	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec8cead	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee54503	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee9563f	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xceea9f7d	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8318	ibft_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0242eb	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0694f6	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf14e2e8	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf215ed4	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf27bdba	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf367535	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf44befb	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf524fcb	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf61759b	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6b98a2	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf765838	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7c6a5d	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf892ef4	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbbc6dd	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc6b6df	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfccfa53	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd9f167	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfda7201	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe11434	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe5db32	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe87cd3	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd027f522	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02c797e	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03406b4	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03ac8ea	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0499cb2	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd054b116	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0550895	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd059786b	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06b6b0d	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06c541b	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06f4256	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07eee17	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a6e02b	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c7bcee	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d0c5c5	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d248dd	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d8f77b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0dffe0d	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ed98f7	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f584ff	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f881ab	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd103047e	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd109c55a	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10a1a73	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11f52df	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12bd034	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1381571	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13acdfe	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd14ad69d	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16133f6	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16be075	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ffe19	e820__mapped_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd187dac0	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b9bc7b	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c85688	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cd4d0b	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f55330	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbc889	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbe239	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fe49eb	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xd201a0f0	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2020e79	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20ef247	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd212c7a0	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0xd216a7c6	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25a9942	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25f636a	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26552e5	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26632c9	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27713c4	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2aaf825	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b723b2	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d1af03	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d341c9	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d3bab0	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d522f1	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e83349	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2eeb8b5	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30c4a52	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30d13f7	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31596f9	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd317439d	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31835be	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3209320	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd332efc6	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33aa84a	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3673665	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3776e35	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38cfdeb	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3aa44f6	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3acc547	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c5e311	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3fae709	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ff4ad7	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd418cde0	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41a3868	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41f2657	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42643bf	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42ed2fc	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4436c01	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45515fb	ptdump_walk_pgd_level_debugfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4641584	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49056d8	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49db244	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49f11d9	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c014e8	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4cb533e	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd52fcf13	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53855e4	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54f375e	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54f69e0	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55e74d8	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5834e5f	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5855289	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a833c1	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b05b92	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b11ac2	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5c51c1d	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f3bb7b	set_memory_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6092808	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60e5172	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd612b70e	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd612e15c	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd613e41d	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6161275	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd638abf7	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd65d11b2	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xd66679e5	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67600cd	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd685da7d	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69753d7	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd698abfc	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69b6866	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a09039	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a1574d	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b1fdd6	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b9589e	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6cd1386	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d97420	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6dd0650	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e94024	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6edef5f	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ffe6fa	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71a6bd4	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71fc7f8	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73b6002	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74de429	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7615b07	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e819	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76bb0a2	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7864e36	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xd792d69f	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7be585b	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e364a8	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7fbedd4	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd839320c	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842be4f	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84f2298	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a266c6	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a74307	isa_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c059c6	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d5ea0e	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8eb6bad	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8efb4fa	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f3238	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9304e27	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93278b1	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9367dfc	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd967e8d8	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96c154d	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96ddf3e	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd97a1bf8	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xd97f9ef4	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd981f0d3	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd989839b	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98ebf18	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9978cf2	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xd998b96b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99ffd62	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a89d1d	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9aff7bc	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c92c55	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f2dcc8	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1af999	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f78ee	clear_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda217431	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2c5ab2	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xda57134f	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6235d5	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6b5af8	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xda90233f	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xda93526d	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaccf497	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdacf3a4d	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf82d2d	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb17b22b	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1b58e3	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2b8dfd	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7210dd	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb77811e	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb78c4c7	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb799ea4	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7a0787	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7a85bb	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7d6e97	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7e6449	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8562e4	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb88ce97	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb2f7df	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe38118	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf37412	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc027ef9	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0bdfd6	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3687d6	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3a046c	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3d60c8	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3ff54b	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc4c9f8f	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5a1b0c	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc62087f	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc648326	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc65c663	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9ac193	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca46043	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd233	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccacfb6	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccc16e8	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcde9b16	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd304bed	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd45a5a4	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4b6438	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4f7978	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd532021	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd56f115	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd66e75c	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd699970	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd847def	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd88980c	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc46f37	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcf80e3	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde5b905	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xddec76fd	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf1e4a5	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xddff994f	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xde082929	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2b95ad	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde376b3d	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4fbe0a	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xde539c68	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xde55776c	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5e2baa	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde87c44a	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8ab770	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9104e6	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xde98ec1a	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9a3b2c	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9cd268	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea0993f	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb3760d	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebd773d	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2f8de	perf_msr_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee5bca2	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef322a2	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef8bde2	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf05b88e	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1882af	dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1a092a	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf334edb	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf397aaa	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf3c4556	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf458794	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf481814	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5d7131	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf760910	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf81924d	uv_bios_mq_watchlist_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8dd66e	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf926a48	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf99a3af	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9da4ba	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb309d5	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc98a0f	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfdffbd1	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfe77ede	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe005a0d5	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01953ee	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe027fd5d	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe03c42cb	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f53ff	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe082437e	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b69986	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ee9f3f	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12328d2	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe142bdcf	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe147e18d	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe159e135	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15fc870	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xe162dbe5	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1733de9	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xe176c575	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18c070f	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe193ca1f	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a49b2d	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a58dd3	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1aa2d62	set_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ad1adc	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b414ee	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b8d030	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bfa28a	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cccbf6	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d04979	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e200e4	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1fc8a58	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21b2030	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24beb59	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24ce04c	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26a9e5e	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe276728a	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27dbcb1	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe285ba07	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2867f08	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28fc15d	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe295c0ff	is_hpet_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b8d713	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cddf2b	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e9e11e	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30e49ed	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30f1acd	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3570b74	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe363d394	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe364ecee	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xe374b42f	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe379ec24	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3965588	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xe399b13a	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e58e83	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e9b6ff	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe401f1ff	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xe407cf15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40c0129	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40f4ab0	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4150713	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43e6282	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44ea235	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45d9af5	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46512fb	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4683a55	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48611ac	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe491c85d	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4967d03	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bba704	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4df2673	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f71163	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe506350f	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50f9f29	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51b0b60	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51cf95b	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe520ba03	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52fd040	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe554f2ee	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55e07b1	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe572fd75	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe57e8edc	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59a1a42	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a80da7	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ca8bcb	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f1301e	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60cfa81	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe611f748	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe645e09c	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ad8ea	unregister_nmi_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65808ad	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe673c6c1	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe67c9fde	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6950335	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a48b8c	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b84f9a	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b96756	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bd1da0	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d722dc	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e5cbc8	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6fa268c	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6fd041b	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71438d4	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7281b2c	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe740b58a	hv_vp_assist_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74e279b	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe759e97f	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe763bf34	pwm_lpss_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76815d4	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76e465b	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe790c740	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a54c31	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b71592	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cc176f	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cdbfd8	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d29e83	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d76926	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7db0611	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e6a9c4	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f2a818	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe804c590	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81d4473	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81f4f51	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe825b7c5	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83eba32	itlb_multihit_kvm_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85674e3	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe867572d	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe878930c	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8799b50	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a285bb	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8adad97	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8be56d4	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c9f91d	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8dcd8ff	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ea21bc	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9238068	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9265d49	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe935d387	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93660a2	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94df56e	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94ee138	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9591531	pwm_lpss_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9607388	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0xe970a90f	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97c776a	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe985355e	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe988c7ad	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ae5277	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9bd7971	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce931a	kvm_para_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d66c6d	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9dfa46f	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f0dab6	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f64e8f	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea138a92	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2403a0	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2ebffd	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3fd027	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xea524a1c	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6f4359	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7d66cf	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xea850b39	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9d0c78	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9d8a23	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa4c358	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabaf64c	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabe549a	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadc40ae	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae32de6	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae35065	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae4c037	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae5e927	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf402fc	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3d8b9d	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4221ce	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4ab512	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb569de1	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6a77fc	set_pages_array_wt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb74c1d3	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb7f0bda	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb833c22	xen_has_pv_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb898227	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8c3dd9	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8d7798	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb90b3ac	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb962acb	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xebaf9a8c	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb35848	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb63abd	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe0a013	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe18637	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe96fc1	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xec12a5dd	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1628e6	pv_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec181dd7	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2ac8a1	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3cfeb5	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec788566	acpi_target_system_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7a3dcb	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7ade6c	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xec884f77	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec97fa49	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecae909c	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb16df4	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb43f85	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb97be7	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecbc169a	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf27912	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf98e46	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xed05c03d	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xed08e540	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0e2b6b	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed13363f	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xed16aa99	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed29640b	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2be504	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xed32d302	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3fd6da	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40c481	kvm_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed43b4d9	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xed44d45e	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xed46b78a	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4a2a95	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xed606027	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xed69230b	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7671f6	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8aef05	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xed956da0	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9b2695	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9d0115	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda5c49b	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda7561c	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb5b382	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xedbce0d5	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc28591	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xede68c8f	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xede96e51	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xede98ec5	intel_pt_validate_hw_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xedea3aac	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xedef0afb	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0652b5	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xee13e697	set_personality_ia32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee4669db	handle_mm_fault
+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 0xee6e4e15	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xee70fa74	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9ec7f6	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fcda6	apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec512b7	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed0ced2	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfe564	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee667d3	fpregs_assert_state_consistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeec29e7	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef2cbc0	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xef008930	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef27c486	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3511be	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xef41cbc4	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef63c0cb	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xef652ca7	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xef992dca	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb6ab28	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb73c81	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xefbd5ccd	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd75f7d	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00818b4	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0222ac4	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0240d74	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf030b280	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf035d073	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0407ae9	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf050a6c3	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf057b62f	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06737da	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf068bd31	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06b2bf0	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07bf65b	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08f7bdb	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a1392c	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0defb6a	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e93f1e	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ea134c	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0eb7f2a	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10213ba	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xf105ca43	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf11f6a0b	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf128f6e2	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xf134f92f	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf137c86d	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1511627	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15d7ac5	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xf169a1f2	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf170ece7	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1767545	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18b397b	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xf199a83e	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d7afc7	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f57809	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f5f4df	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2127abc	hv_stimer_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf217ad70	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23cfd3e	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24aaebe	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf252d463	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26080ad	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27f0a1c	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e8a5cf	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fca436	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31e59ae	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33175f5	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34ba1b7	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf355b4aa	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36c9d67	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3902448	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3954f31	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39f274d	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a52da2	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b1a074	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c3d117	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c40120	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c5556d	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c6f907	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d14586	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3dc9cee	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ef03c2	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ffabb5	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf406384a	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xf408c471	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42947c4	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42f1a9c	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf44d6f3c	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf453a152	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45f6be5	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4693a66	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf46ad625	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4738bf6	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf473b4e8	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf478d387	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e020f	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4824002	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf487def7	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48e0ce6	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf497c11a	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49aedff	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a0b015	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b25a2f	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b2b7a0	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4bb4b0f	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4bfdf36	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4cacd77	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d44829	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5054127	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5057232	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51dc113	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52eb15f	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52fcb71	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf532df46	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf538a98c	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5415138	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5550b5e	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56d44fa	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5733a86	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf577b34f	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57de27b	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf593c9bb	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a72ac5	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5bfff8b	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c84306	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c9a51e	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cbc4b9	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5deb569	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf601560e	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60c8621	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60e8543	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xf612073d	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6230e49	fpregs_mark_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63ba94e	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf648f6b4	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64bb88c	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6505040	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf653d7a2	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6551ff5	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf667ccf9	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf681bee6	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf683b808	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69c5d5f	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69f4aa2	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a0389d	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a0f116	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a7620b	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6af90cc	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b83011	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b96d6a	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf700fb4b	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70183d9	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70648d5	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71e7d71	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7257384	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73a62b2	crypto_register_shash
+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 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7500c99	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75ef575	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76125d4	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7643b65	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767ca35	fixed_percpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78c79c2	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7904515	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79c3bd9	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bfc988	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c571dc	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c5989b	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ca7edb	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7da4697	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f86f2b	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fb72ee	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fc6c2a	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8075109	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80deecc	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8148071	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81508fc	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xf815799a	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8420145	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf842e201	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf843a4b2	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84a792b	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84d0673	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf874128d	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf881cecd	load_fixmap_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b327f9	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8cb5fea	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8da0698	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fe3986	pat_pfn_immune_to_uc_mtrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf918c8f2	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9199e65	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92b5b20	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92df1c4	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf951d322	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf956385e	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95b0020	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0xf960de3b	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96a6162	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf986d6dd	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98a6bc9	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9997597	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99eade9	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab309f	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b62dfb	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c03709	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c26e7c	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cf727a	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e762eb	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9eb65e3	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f36051	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f4854f	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0438de	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa11c3be	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa186267	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa35044a	alternatives_patched
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa3c0d69	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa51c2b8	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e33b8	isa_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7047be	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7af257	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9bce41	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae4db7b	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0fc6bc	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13dd2e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1520a7	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2af036	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2ba82b	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb40cd3e	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb55abae	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb58030d	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60ca09	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb615f32	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb61e567	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb637dae	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7b9e73	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb81da50	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8f48f2	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb91e318	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba795de	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc3308c	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdea928	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf77e14	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc156c04	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc162fae	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc18f6b3	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc370582	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3f1857	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc4e758b	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc59763d	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6fcb2b	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca669f8	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb52178	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc6af2c	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xfce5780d	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf3342d	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0217aa	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0b86e2	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0dbd58	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd155db7	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd459e01	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4d7773	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd62ad94	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd736ce9	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7dbbf1	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7e6f74	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd8b6e6d	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9c91e4	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda2d627	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb32b95	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdcae10a	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd5b115	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb0be9	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf35d6c	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfa7029	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe09ef56	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe149780	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe156c27	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe19f8ae	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2bbd2e	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2e667f	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe300684	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3db827	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe412a0e	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe546d0b	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe654f3c	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6fd6ea	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe727411	get_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7d6f56	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe85baae	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeadafe1	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec1a3ae	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec222d4	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec5c7e7	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed6d476	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed85864	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee2be05	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef566ad	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xff010ef6	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff029439	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1e67b9	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff28d732	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3ead98	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xff481a7e	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6806ab	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xff701706	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xff706454	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xff7f7081	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8dcb85	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e74e2	arch_haltpoll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff970be9	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffaffd35	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb88c33	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xffbb73e8	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc05dbe	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc3bd74	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc6f28e	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd4a0c3	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xffdf6ee8	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xffec4233	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff4cbe5	gnttab_unmap_refs
+USB_STORAGE EXPORT_SYMBOL_GPL 0x11c521e6	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1aa65a37	usb_stor_reset_resume	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 0x208f1855	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2eb9de40	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x37faef9f	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x44aeffbc	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4ee27e51	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x515f6fa2	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6cc306b8	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x732c83d4	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7d32d282	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7e24dc35	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x940f910e	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x95931310	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9a92cc83	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9b4cce36	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaa140d69	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xac041f90	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc54ede07	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xde36d43f	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe4793252	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe5e8e4fe	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf4163345	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf8956786	usb_stor_CB_transport	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/generic.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/generic.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/generic.modules
@@ -0,0 +1,5506 @@
+104-quad-8
+3c509
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_dw
+8250_exar
+8250_lpss
+8250_men_mcb
+8250_mid
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+BusLogic
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acer-wireless
+acer-wmi
+acerhdf
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_extlog
+acpi_ipmi
+acpi_pad
+acpi_power_meter
+acpi_tad
+acpi_thermal_rel
+acpiphp_ibm
+acquirewdt
+act8865-regulator
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv7511-v4l2
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+advantechwdt
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aegis128-aesni
+aes_ti
+aesni-intel
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+aha152x_cs
+aha1740
+ahc1ec0
+ahc1ec0-hwmon
+ahc1ec0-wdt
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+airspy
+ak7375
+ak881x
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alienware-wmi
+alim1535_wdt
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+ambassador
+amc6821
+amd
+amd-rng
+amd-xgbe
+amd5536udc_pci
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd_freq_sensitivity
+amd_iommu_v2
+amdgpu
+amilo-rfkill
+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
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+aoe
+apanel
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+apple-gmux
+apple_bl
+appledisplay
+applesmc
+applespi
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcfb
+arcmsr
+arcnet
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3935
+as5011
+asb100
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asus-laptop
+asus-nb-wmi
+asus-wireless
+asus-wmi
+asus_atk0110
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atlas_btns
+atm
+atmel
+atmel-ecc
+atmel-i2c
+atmel-sha204a
+atmel_cs
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avm_cs
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_charger
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish-x86_64
+blowfish_common
+blowfish_generic
+bluecard_cs
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia-aesni-avx-x86_64
+camellia-aesni-avx2
+camellia-x86_64
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5-avx-x86_64
+cast5_generic
+cast6-avx-x86_64
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+ceph
+cfag12864b
+cfag12864bfb
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-x86_64
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_laptop
+chromeos_pstore
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cio-dac
+cirrus
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+clk-cdce706
+clk-cs2000-cp
+clk-max9485
+clk-palmas
+clk-pwm
+clk-s2mps11
+clk-si5341
+clk-si5351
+clk-si544
+clk-twl6040
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm36651
+cm4000_cs
+cm4040_cs
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobalt
+cobra
+coda
+com20020
+com20020-pci
+com20020_cs
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_pcmcia
+comedi_test
+comedi_usb
+comm
+compal-laptop
+contec_pci_dio
+cops
+cordic
+core
+coretemp
+cortina
+cosm_bus
+cosm_client
+counter
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia2
+cpu5wdt
+cpuid
+cpuidle-haltpoll
+cqhci
+cr_bllcd
+cramfs
+crc-itu-t
+crc32-pclmul
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-pclmul
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_ishtp
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_lpcs
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+crvml
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+ct82c710
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062_wdt
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_cs
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcdbas
+ddbridge
+de2104x
+de4x5
+decnet
+defxx
+dell-laptop
+dell-rbtn
+dell-smbios
+dell-smm-hwmon
+dell-smo8800
+dell-uart-backlight
+dell-wmi
+dell-wmi-aio
+dell-wmi-descriptor
+dell-wmi-led
+dell_rbu
+denali
+denali_pci
+des3_ede-x86_64
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dps310
+dpt_i2o
+dptf_power
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dtl1_cs
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-edma
+dw-edma-pcie
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-pci
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+e752x_edac
+earth-pt1
+earth-pt3
+ebc-c384_wdt
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_bhf
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edac_mce_amd
+edt-ft5x06
+ee1004
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts_serial
+ehci-fsl
+ehset
+einj
+ektf2127
+elan_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_pcmcia
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esb2rom
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+eurotechwdt
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-axp288
+extcon-fsa9480
+extcon-gpio
+extcon-intel-cht-wc
+extcon-intel-int3496
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71808e_wdt
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fam15h_power
+fan53555
+farsync
+faulty
+fb_ddc
+fb_sys_fops
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fjes
+fl512
+floppy
+fm10k
+fm801-gp
+fm_drv
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fschmd
+fsia6b
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftsteutates
+fujitsu-laptop
+fujitsu-tablet
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-clmulni-intel
+gigaset
+gl518sm
+gl520sm
+gl620a
+glue_helper
+gluebi
+gm12u320
+gma500_gfx
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpd-pocket-fan
+gpio
+gpio-104-dio-48e
+gpio-104-idi-48
+gpio-104-idio-16
+gpio-adp5520
+gpio-adp5588
+gpio-amd-fch
+gpio-amd8111
+gpio-amdpt
+gpio-arizona
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-crystalcove
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-f7188x
+gpio-generic
+gpio-gpio-mm
+gpio-ich
+gpio-it87
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-ml-ioh
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sch
+gpio-sch311x
+gpio-siox
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-vx855
+gpio-wcove
+gpio-winbond
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-ws16c48
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpu-sched
+gr_udc
+grace
+gre
+greybus
+grip
+grip_mp
+gru
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdaps
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+hecubafb
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfi1
+hfs
+hfsplus
+hgafb
+hi311x
+hi6210-i2s
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-hyperv
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hio
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hopper
+horizon
+horus3a
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp-wireless
+hp-wmi
+hp03
+hp100
+hp206c
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hpwdt
+hsi
+hsi_char
+hso
+hsr
+hsu_dma
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei-wmi
+huawei_cdc_ncm
+hv_balloon
+hv_netvsc
+hv_sock
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hyperv-keyboard
+hyperv_fb
+hysdn
+i10nm_edac
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd-mp2-pci
+i2c-amd-mp2-plat
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-cbus-gpio
+i2c-cht-wc
+i2c-cros-ec-tunnel
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-ismt
+i2c-kempld
+i2c-matroxfb
+i2c-mlxcpld
+i2c-multi-instantiate
+i2c-mux
+i2c-mux-gpio
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-reg
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3000_edac
+i3200_edac
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5000_edac
+i5100_edac
+i5400_edac
+i5500_temp
+i5k_amb
+i6300esb
+i7300_edac
+i740fb
+i7core_edac
+i82092
+i82975x_edac
+i915
+iTCO_vendor_support
+iTCO_wdt
+iavf
+ib700wdt
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_qib
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibm_rtl
+ibmaem
+ibmasm
+ibmasr
+ibmpex
+icc-core
+ice
+ichxrom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad-laptop
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ie31200_edac
+ie6xx_wdt
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int3400_thermal
+int3402_thermal
+int3403_thermal
+int3406_thermal
+int340x_thermal_zone
+int51x1
+intel-cstate
+intel-hid
+intel-ish-ipc
+intel-ishtp
+intel-ishtp-hid
+intel-ishtp-loader
+intel-lpss
+intel-lpss-acpi
+intel-lpss-pci
+intel-rng
+intel-rst
+intel-smartconnect
+intel-vbtn
+intel-wmi-thunderbolt
+intel-xhci-usb-role-switch
+intel-xway
+intel_atomisp2_pm
+intel_bxt_pmic_thermal
+intel_bxtwc_tmu
+intel_cht_int33fe
+intel_chtdc_ti_pwrbtn
+intel_int0002_vgpio
+intel_ips
+intel_menlow
+intel_oaktrail
+intel_pch_thermal
+intel_pmc_ipc
+intel_powerclamp
+intel_punit_ipc
+intel_qat
+intel_quark_i2c_gpio
+intel_rapl_common
+intel_rapl_msr
+intel_soc_dts_iosf
+intel_soc_dts_thermal
+intel_soc_pmic_bxtwc
+intel_soc_pmic_chtdc_ti
+intel_telemetry_core
+intel_telemetry_debugfs
+intel_telemetry_pltdrv
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+intelfb
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ioatdma
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipu3-cio2
+ipu3-imgu
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+ipwireless
+iqs5xx
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+isci
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+isst_if_common
+isst_if_mbox_msr
+isst_if_mbox_pci
+isst_if_mmio
+it87
+it8712f_wdt
+it87_wdt
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k10temp
+k8temp
+kafs
+kalmia
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-amd
+kvm-intel
+kvmgt
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-adp5520
+leds-apu
+leds-as3645a
+leds-bd2802
+leds-blinkm
+leds-clevo-mail
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxcpld
+leds-mlxreg
+leds-mt6323
+leds-nic78bx
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-ss4200
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+legousbtower
+lg-laptop
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmc
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp8755
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltpc
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+macb
+macb_pci
+machxo2-spi
+machzwd
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77693-haptic
+max77693-regulator
+max77693_charger
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mce-inject
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-i2c
+mdio-mscc-miim
+mdio-thunder
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mei
+mei-me
+mei-txe
+mei_hdcp
+mei_phy
+mei_wdt
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+meye
+mf6x4
+mgag200
+mi0283qt
+mic_bus
+mic_card
+mic_cosm
+mic_host
+mic_x100_dma
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microread_mei
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx-platform
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+moxa
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi-laptop
+msi-wmi
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+msr
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwave
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxm-wmi
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n411
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+nettel
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-avx2
+nhpoly1305-sse2
+ni903x_wdt
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_common
+ni_labpc_cs
+ni_labpc_isadma
+ni_labpc_pci
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nic7018_wdt
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_intel
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nv_tco
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nvram
+nxp-nci
+nxp-nci_i2c
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of_xilinx_wdt
+ofb
+omfs
+omninet
+on20
+on26
+onenand
+opa_vnic
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+padlock-aes
+padlock-sha
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panasonic-laptop
+pandora_bl
+panel
+panel-raspberrypi-touchscreen
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pblk
+pc300too
+pc87360
+pc87413_wdt
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcengines-apuv2
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-hyperv
+pci-hyperv-intf
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcmciamtd
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_pcmcia
+peak_usb
+peaq-wmi
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cpcap-usb
+phy-exynos-usb2
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-broxton
+pinctrl-cannonlake
+pinctrl-cedarfork
+pinctrl-denverton
+pinctrl-geminilake
+pinctrl-icelake
+pinctrl-intel
+pinctrl-lewisburg
+pinctrl-madera
+pinctrl-mcp23s08
+pinctrl-sunrisepoint
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn544_mei
+pn_pep
+pnd2_edac
+poly1305-x86_64
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+processor_thermal_device
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp_kvm
+pulse8-cec
+pulsedlight-lidar-lite-v2
+punit_atom_debug
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-cros-ec
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pxa27x_udc
+pxe1610
+pxrc
+qat_c3xxx
+qat_c3xxxvf
+qat_c62x
+qat_c62xvf
+qat_dh895xcc
+qat_dh895xccvf
+qca8k
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quatech_daqp_cs
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rapl
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rdmavt
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-bq32k
+rtc-bq4802
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rc5t583
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wilco-ec
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-laptop
+samsung-q10
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sb_edac
+sbc60xxwdt
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp_target
+sbs
+sbs-battery
+sbs-charger
+sbs-manager
+sbshc
+sc1200wdt
+sc16is7xx
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scif
+scif_bus
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci
+sdhci-acpi
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_f_sdh30
+sdio_uart
+sdricoh_cs
+seco-cec
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent-avx-x86_64
+serpent-avx2
+serpent-sse2-x86_64
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-ssse3
+sha256-ssse3
+sha3_generic
+sha512-ssse3
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sil164
+silead
+sim710
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis-agp
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+skx_edac
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc91c92_cs
+smc_diag
+smiapp
+smiapp-pll
+smipcie
+smm665
+smsc
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-acp3x-pcm-dma
+snd-acp3x-pdm-dma
+snd-acp3x-rn
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-ext-core
+snd-hda-intel
+snd-hdmi-lpe-audio
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel-sst-acpi
+snd-intel-sst-core
+snd-intel-sst-pci
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pci-acp3x
+snd-pcm
+snd-pcm-dmaengine
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-rn-pci-acp3x
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-skl_nau88l25_max98357a
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-acpi-intel-match
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7213
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdac-hda
+snd-soc-hdac-hdmi
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kbl_da7219_max98357a
+snd-soc-kbl_da7219_max98927
+snd-soc-kbl_rt5660
+snd-soc-kbl_rt5663_max98927
+snd-soc-kbl_rt5663_rt5514_max98927
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-nau8825
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rl6347a
+snd-soc-rt286
+snd-soc-rt298
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5651
+snd-soc-rt5660
+snd-soc-rt5663
+snd-soc-rt5670
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rt5682
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-skl_hda_dsp
+snd-soc-skl_nau88l25_ssm4567
+snd-soc-skl_rt286
+snd-soc-sof_rt5682
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sst-acpi
+snd-soc-sst-atom-hifi2-platform
+snd-soc-sst-bdw-rt5677-mach
+snd-soc-sst-broadwell
+snd-soc-sst-bxt-da7219_max98357a
+snd-soc-sst-bxt-rt298
+snd-soc-sst-byt-cht-cx2072x
+snd-soc-sst-byt-cht-da7213
+snd-soc-sst-byt-cht-es8316
+snd-soc-sst-bytcr-rt5640
+snd-soc-sst-bytcr-rt5651
+snd-soc-sst-cht-bsw-max98090_ti
+snd-soc-sst-cht-bsw-nau8824
+snd-soc-sst-cht-bsw-rt5645
+snd-soc-sst-cht-bsw-rt5672
+snd-soc-sst-dsp
+snd-soc-sst-firmware
+snd-soc-sst-glk-rt5682_max98357a
+snd-soc-sst-haswell
+snd-soc-sst-haswell-pcm
+snd-soc-sst-ipc
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-intel-byt
+snd-sof-intel-hda
+snd-sof-intel-hda-common
+snd-sof-intel-ipc
+snd-sof-pci
+snd-sof-xtensa-dsp
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-us122l
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-vxpocket
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+soc_button_array
+softdog
+softing
+softing_cs
+solo6x10
+solos-pci
+sony-btf-mpx
+sony-laptop
+soundcore
+soundwire-bus
+soundwire-cadence
+soundwire-intel
+soundwire-intel-init
+sp2
+sp5100_tco
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-pci
+stmmac-platform
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+stx104
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3-wmi
+surface3_button
+surface3_spi
+surfacepro3_button
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thermal-generic-adc
+thinkpad_acpi
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderbolt
+thunderbolt-net
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads7950
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tlclk
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+topstar-laptop
+torture
+toshiba_acpi
+toshiba_bluetooth
+toshiba_haps
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_nsc
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+tqmx86_wdt
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish-avx-x86_64
+twofish-x86_64
+twofish-x86_64-3way
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+uPD98402
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_hv_generic
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+usnic_verbs
+uss720
+uv_mmtimer
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vboxguest
+vboxsf
+vboxvideo
+vcan
+vcnl4000
+vcnl4035
+veml6070
+ves1820
+ves1x93
+veth
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-camera
+via-cputemp
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+via686a
+via_wdt
+viafb
+vicodec
+video
+video-i2c
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+visorbus
+visorhba
+visorinput
+visornic
+vitesse
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmd
+vme_ca91cx42
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmw_balloon
+vmw_pvrdma
+vmw_pvscsi
+vmw_vmci
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmw_vsock_vmci_transport
+vmwgfx
+vmxnet3
+vop
+vop_bus
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83877f_wdt
+w83977f_wdt
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wilco-charger
+wilco_ec
+wilco_ec_debugfs
+wilco_ec_events
+wilco_ec_telem
+wimax
+winbond-840
+winbond-cir
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wmi
+wmi-bmof
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x38_edac
+x86_pkg_temp_thermal
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-pciback
+xen-pcifront
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-hwmon
+xhci-plat-hcd
+xiaomi-wmi
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_pcie
+xirc2ps_cs
+xircom_cb
+xlnx_vcu
+xor
+xp
+xpad
+xpc
+xpnet
+xr_usb_serial_common
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zatm
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/generic.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/generic.retpoline
@@ -0,0 +1 @@
+# retpoline v1.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/lowlatency
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/lowlatency
@@ -0,0 +1,23834 @@
+EXPORT_SYMBOL	 arch/x86/kvm/kvm 0xf8ddf66e	kvm_cpu_has_pending_timer
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x04cb9bb9	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x3c7958b1	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x4353306f	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x53c108c4	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xdee30bc7	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xf40289a5	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x1c203b94	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x2cbde6bf	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x3430b6b9	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sm3_generic 0x99a2efda	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xa3a2fd4b	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/acpi/video 0x6de7f7ff	acpi_video_get_backlight_type
+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 0x8826c13b	acpi_video_register
+EXPORT_SYMBOL	 drivers/acpi/video 0xcb8c94c4	acpi_video_get_edid
+EXPORT_SYMBOL	 drivers/acpi/video 0xd298c961	acpi_video_get_levels
+EXPORT_SYMBOL	 drivers/acpi/video 0xe92ca535	acpi_video_set_dmi_backlight_type
+EXPORT_SYMBOL	 drivers/atm/suni 0x165cdae8	suni_init
+EXPORT_SYMBOL	 drivers/atm/uPD98402 0x1f4b1fc1	uPD98402_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x70f5ff8c	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xa1e45850	bcma_core_dma_translation
+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/block/paride/paride 0x0448fa1f	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x07921906	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x24813ae9	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5030309c	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x52c38487	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x72decb2f	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x8d40b2fc	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa65b73cb	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xbdaac365	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xc10333d9	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe8c5abb4	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xebc707a9	paride_unregister
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xee6bd8d9	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xc9a9158d	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x1ba43c8e	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x33bb35eb	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+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 0xa54f9b58	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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/ipmi/ipmi_msghandler 0xff9f95dd	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/nvram 0x3ef38dc9	arch_nvram_ops
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x9a54de61	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xbaac2a9f	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xbb36864e	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xd56cb748	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x36840e2c	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x3e1b696f	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xe627c178	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x6c832c91	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x7d8ad6fa	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xcab7993e	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x056faa35	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0edf6263	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x16428cbc	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1d6d0625	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2bc3f031	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x30b63c55	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4426170b	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5a1f27f8	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5c1b146e	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5c8c7694	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x76f16cb6	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x7743ba8d	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x85aac205	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8980f206	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9749db76	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa0161ba6	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xad5cc193	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb1d9b0bf	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xbc4b8d44	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc2bfdb46	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc4b946a9	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb55ca6e	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xdb8b8797	fw_core_handle_request
+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 0xed8347ad	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf8f46710	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfa613026	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x01434352	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x014d9882	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x01a49612	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x049e9dfa	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04f57de1	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x067be04a	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07578b1f	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x080c055b	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0892daf0	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08dae0d8	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b70cde1	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b8e266e	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0cb4f8fa	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d724c26	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0dac24e7	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f2d9076	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f624b6a	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x122b1c28	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x128b2500	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x141e3bdc	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x145d0c9d	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1483bb83	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14b03931	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x167af25f	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1748020c	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19114735	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19a64507	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a02f2ac	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a1d2d60	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1aaec320	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b16befb	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b331e2f	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c6918eb	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c9b6c14	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d5a6681	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d6c2742	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1da228a7	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1db40ff9	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e17bda8	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e4523fc	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f2d1030	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fc6dd58	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fcdf050	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x201ceac3	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x202108b8	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x206ad9ea	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20e6613f	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20f4ff95	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2107b04b	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21b15ce2	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21e93999	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21f09df0	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x228d6ec7	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23bba6f1	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23bd9de5	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x253cee20	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25ecd3d2	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x26871d88	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x275cbf60	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28082b10	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28ecea87	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a2d28eb	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b1b4a5e	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b200ffd	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b5aa06f	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2bee845d	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ce4cf39	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e34b837	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f11c3cb	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fa06554	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3033ebdd	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30ed379d	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30fae94e	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3158006e	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x316f88f7	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3255c315	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34586497	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x346decbf	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a64240	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35733303	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3586af67	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x363369eb	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x378adcf3	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3803c93c	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x382fc21f	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b0334a7	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c10c81f	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c157c25	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c423886	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c4d5276	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3dedb446	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3edaed45	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f0dd3c2	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fc691ad	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x400ae446	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4014ca05	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41ea396e	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42fcf9d5	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x434ac618	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x446fe718	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44731f81	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45134dc0	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x451c2c32	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x459cb0fc	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4673b77b	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f7209e	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48666a71	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49ee4e58	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4acc2d68	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ad0de0c	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b11a925	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4beabe45	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c6266f3	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e1a6b49	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f0571b6	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f2e8253	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fdb539e	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x507d79b2	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50fa1afd	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521282bc	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53bd439d	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5457fbbd	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5458e091	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5740ce56	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57be6d85	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57d2fda1	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5820267b	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58b27d27	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58e61d4c	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x595d9504	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5974e8e0	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a2221cf	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a4db946	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a6937ce	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b48dba6	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5badcd6c	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5be54f84	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c0ef1de	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d299e46	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e28f9bb	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e6da2d6	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5eb6c857	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f2e9364	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f67a6f4	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ff09186	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x606d1465	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x608280f1	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6115aed2	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6167a400	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61aa79c7	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62d7414c	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62dedd38	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63321fe7	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63601066	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x640659d6	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x645295af	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x647e1526	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64fc1aae	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65ad2771	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66be7284	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x67017bbf	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x685acdfa	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x699524db	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a969bb2	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b3cca99	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c4b65ec	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c739880	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dc8607a	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ed5d8ce	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7103e073	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x728b6ccd	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x736c3dbd	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74f586fe	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76b5fb96	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78ab1caf	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78bf3ae6	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7926615f	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79d02c31	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79e295a9	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a255e9f	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a567f04	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a7cde85	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c8c6226	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d4891c4	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d8f00ba	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7dcc07cf	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e990eb6	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ecf80ec	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fdf933b	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80123ebb	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x807254ea	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x809380b2	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80ea5ccb	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81eee7ea	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8371675d	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83f42c64	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8581093b	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x861bb525	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x869d9699	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87b01743	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8911f84b	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89cea55f	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a88002a	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ad50059	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c0a4e76	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8dbdae9b	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e418408	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fd22f39	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x903041f2	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x913c6d4e	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x93cc0c42	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x950cf627	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9523d651	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9540e9bc	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9564d2b6	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x959476e0	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95ac2afe	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96d3d04a	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x974a3609	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e81c1b6	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa24a9c7e	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2568b6f	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4476c22	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4a9e688	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6a3d966	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa784e358	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7d74cc0	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7ee6977	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa90924ba	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa983b173	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa05d62b	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac279a8	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabef9284	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac3ffc62	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac706293	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xacf4706a	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae671a29	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaed58bb6	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafeaa2ab	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb000f17e	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0af8d6c	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b4ebb7	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0f77cc4	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb15a76cb	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1c17cf9	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2ea92fc	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb31914c2	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3414398	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3f4bdfd	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4279853	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb445b61c	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5b0b401	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5c00eaa	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb663bb10	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb67a92d3	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6b983fe	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb77bdac2	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7fa7575	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9e5ede5	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba83bcad	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc17a9e3	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc557a61	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcc9e7d5	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd38fc22	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdea999c	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdf60075	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe3a4141	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe818ebe	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfe62df0	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc021ddf9	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc04bbab7	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc09ec9d8	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc13af46c	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc18fccce	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc292feee	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc36754e7	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc398cd44	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3d86dc0	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3fe8456	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc477f344	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4f89cea	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4f9bcb8	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc51c4087	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6c495a8	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc72c0770	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc734b8ac	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7dc5792	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc97ff1d1	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9db9244	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcbbf221b	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd2d5865	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce1bbafd	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce57168d	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce8d77f0	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1dcd4fa	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1e8bde0	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd2423865	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd31dd099	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3928100	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5912349	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd60c4661	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7ad18af	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8745684	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9bfe345	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc88b09a	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdca7dd8a	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde7d476a	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf266c38	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfc8a5d5	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe44b9c8b	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5aa015e	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe6904687	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7613324	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe76dc126	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8c1b579	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9793a21	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe98cdd76	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe99bef5d	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9d355f9	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea399d51	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeafc0d48	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb266015	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb29d932	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed2247d7	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed7a678c	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee23b473	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef545d11	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xefca895a	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf06957aa	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf12e8f46	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf15aded3	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1778126	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf17787a4	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2d27b5c	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4b95c5c	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf522e0af	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf580192e	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf710443f	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf73fcfb3	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf75b5b1a	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf87c50aa	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf88d4d8f	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9dbadc5	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9e50f32	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9edec71	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa3798b8	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb09ce66	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb8de779	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbe7bcb5	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd1ebb6a	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfdaf04f9	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfdca2c09	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe1e834a	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02c0bad7	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x03aa6914	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x03f79d92	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x07b104dc	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x08726a61	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x09cb3b6d	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a954631	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0b65dfd3	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0fb20138	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0fcd871b	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1047e626	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10658bb4	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11f83976	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13231ab7	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x155b1594	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x163ca2ce	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16b9919e	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x175e76a6	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17c1594f	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1830d6a2	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18e2b8c4	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1a51ce29	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c7c36bb	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d17adbe	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d30420e	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f9746a8	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20dad172	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2131ab6d	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x222f707c	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x227e651c	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x22c54f28	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x22f4b0b2	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27394e11	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ac37dbe	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b2502fc	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x315b1850	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32d77149	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32dc9e27	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3340d341	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x343d1189	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x346c7eb3	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34fbe5d7	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3887272f	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3973d95a	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a0104b0	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ba32e2d	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3dfb5af1	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e7ef849	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4035f348	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x40664b16	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x423cdbcb	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x43637b75	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x490b03b6	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4b4b215f	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4bee4c2a	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c8d66e1	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4dbefce1	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e002ee7	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ef85912	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4f6ece66	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5397f2ba	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5872fdb6	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58f4c401	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5d018cf6	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5d30141d	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ebaead1	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x603a96c0	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x605d7853	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63129002	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63365a7a	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6397ac02	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6aafe847	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ba83028	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c2fc003	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e87550b	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ff60f5d	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6fffc674	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70069415	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7057893c	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x745431e0	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74ab6908	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75650771	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x757bf102	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x76f76d46	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x76f7a7be	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77acd5bd	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7809e5ad	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x78319df3	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x794c6f2c	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b98fa10	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7cb3e00c	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7cf7b2b4	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f369ca8	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x826a7983	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x835d8e24	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8487adb3	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85aa9e5f	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87108b89	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87896a68	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8900ed0e	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8a64b0b8	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b666d5c	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c3db467	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8ebaa53b	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9079445e	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x95ae8882	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x973e7057	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x97f0cd4b	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98157ca4	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9892ed2b	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9964ca4a	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9a2d473d	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9bde5312	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa0c20e2b	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5608c11	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5e755d2	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa62cedcc	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa657858b	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa80ee1ce	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9f98ebe	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaac16100	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab659c6a	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadb8775b	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadf1ba6f	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaf7401e3	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb1668e19	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb524935d	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb586e7e6	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb62e585a	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb632c675	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb63408da	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbaa62326	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbab0c35d	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbb057d4c	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbbee6e54	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbcd22e79	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbcde7639	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd9dc36f	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbe48bbdd	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc11ebb1d	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc150275b	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc1e8f83b	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc2d3d423	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc2e0ae53	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc38a2344	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3eaec15	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc50fe529	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc6bdf71f	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc9b468cb	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcaee01ee	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb198681	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcf7bd1a7	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd0d29542	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd109f0b1	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd17e4e8d	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd51a5c23	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6f9fe42	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd8ba2c01	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdaa83fcf	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdac42ae3	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdc5f8e61	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde76bfaf	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdeb1d70d	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdec15037	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe01dd1a9	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe0a23dea	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3b3341d	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe507f04b	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe565e86c	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe6d2881c	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7b3e548	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe9be98d4	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee369cab	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee7563cb	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee79f47c	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xef0f7a1b	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xefe0456a	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf02eb9b8	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf07b57fb	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf132cb90	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf1545986	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf1584306	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2ff0039	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf4c19b0e	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5677c68	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf634950c	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7350eb1	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf858eee4	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9085361	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfa3b1965	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb683f9e	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb7fb7c9	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfeb104b4	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfef9020b	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xff2725ad	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0ddc677f	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1b7ae905	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2a057aec	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x335a0b05	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x448d59af	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6701d353	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6be9dd56	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x888581d7	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x8936a0df	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x935ba76f	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x97350d55	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa283b895	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa5498b26	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xcccd2ec5	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd6b1fa88	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe5bee54d	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf6b837e4	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfebc3c08	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x216012f5	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x28a984af	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x33b7e096	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3ceebbe5	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3f5abecf	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4dc0839f	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5cb7112e	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x653d92e3	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x6dce3cc6	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7164096e	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7aab913a	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7f06a31b	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8c1f6566	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa7b7442c	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb16a8980	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb8504966	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc5a9e158	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd8bcf607	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe38e867b	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfefd0c6c	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0d361fb5	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1a4681d2	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2895d4a5	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3c09a760	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3ea4a4a4	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4854035f	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x51e52556	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x54a7d093	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x596590ae	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5dd9e7dd	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa7cb45e9	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbd48cd93	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc9260954	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd41bfc24	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xde90cbec	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe4792adc	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe67e1f55	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xee916988	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xeec66cdd	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0020c965	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x04cc38ea	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x062d09bb	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0739fc61	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a2cfffc	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a67435c	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0afca456	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c258dfc	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e0b65ac	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x10c41bf5	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x13460a37	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1be93152	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c1b0585	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ccd38a8	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2a69adac	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e21ab58	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f5c4ccc	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x329df714	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3d7a0bf2	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x41fb6f1e	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x44a44933	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4b56c0a5	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4c7895c3	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5232d5b7	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x59f34d5c	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x659c37b7	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x65e0d467	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6c9cc142	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6cbe7ece	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x76bd5195	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7df6bb5d	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7dfe46f1	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e67c9e5	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7f4b2dac	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x83595ab2	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x836c3fa8	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x85ca66e2	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8fd887f1	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8ff4ff79	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x913b6d37	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x918543e8	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x949df183	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x97a758f6	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9b113730	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9b56a293	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9ca1ab08	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9f6d9ad2	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xadc7f474	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xae05efb7	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb4530562	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbdd4029f	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbf138c62	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc3200bef	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcc3295d0	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd0b59c08	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd0ef57d2	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd69908e6	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd83ec2fe	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xda444507	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdbfe0b0f	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe452385f	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe9b39e42	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf05841b0	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfe3c78b3	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfe609e4a	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xff1cb502	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/vmwgfx/vmwgfx 0x446c961c	ttm_base_object_noref_lookup
+EXPORT_SYMBOL	 drivers/hid/hid 0x7e0f321d	hid_bus_type
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x06f043be	ishtp_cl_free
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x07fc121f	ishtp_cl_allocate
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0acfb09c	ishtp_cl_driver_unregister
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x15a52621	ishtp_get_ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x163d1181	ishtp_set_tx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1e9040f7	ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x20eb1ce1	ishtp_cl_unlink
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x23091c3f	ishtp_reset_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x24e07500	ishtp_get_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x30ed3c03	ishtp_trace_callback
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x3f3ce2e9	ishtp_reset_compl_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x43a0f966	ishtp_set_connection_state
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4c2f93af	ishtp_send_suspend
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4e0545e9	ishtp_get_pci_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4e643d58	ishtp_cl_get_tx_free_buffer_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x58b8dfb6	ishtp_cl_driver_register
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5a4b8ae4	ishtp_cl_disconnect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501	ishtp_get_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x768e5b6b	ishtp_device_init
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7cacffca	ishtp_set_rx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x862879f9	ishtp_start
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x939c6a3e	ishtp_cl_get_tx_free_rings
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x95078d7f	ishtp_set_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xa4f316dc	ishtp_bus_remove_all_clients
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb759c17b	ishtp_cl_rx_get_rb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbae1f466	ishtp_set_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbcbed8b0	ishtp_cl_connect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbd0534c5	ishtp_cl_io_rb_recycle
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc2b9d55f	ishtp_register_event_cb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc2c7233e	ishtp_recv
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc6a174b3	ishtp_put_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc8a4c6e2	ishtp_get_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc9f5db3e	ishtp_send_resume
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd70cd73f	ishtp_cl_link
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd75e404d	ishtp_fw_cl_by_uuid
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd809821f	ishtp_cl_tx_empty
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe0e002be	ishtp_cl_set_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe46e20f0	ishtp_cl_flush_queues
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xebf630ae	ishtp_get_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xefafb551	ish_hw_reset
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf33b6d6c	ishtp_dev_to_cl_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xff029f33	ishtp_cl_send
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xff5055de	ishtp_fw_cl_get_client
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x4809cabd	vmbus_sendpacket
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x4bc71837	vmbus_recvpacket
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x6f7053d8	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/i2c/algos/i2c-algo-bit 0x42789e13	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x618f1ab3	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x9a21c00f	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x04d168a0	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x288c0c27	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x74848a6c	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x42711fde	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6925b35e	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xd101e64c	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0a33eff6	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x117bc3bf	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x38ab0a26	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5626f71d	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x79edc91b	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7e8c6648	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x94b9208e	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa71465bc	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa813a5af	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa8e97017	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb1447196	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb6f93c0d	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb7ade9b3	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xc7016047	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xc9d708b6	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe54b7075	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x87980164	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xc8d9aae7	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xd4153118	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x332e2991	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x471d10f1	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x34cc8f42	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x8e38565e	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x9a686cb3	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xabcd8ff6	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xd9009554	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x190c0a0c	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x22b39ea6	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x51cbbd86	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5dfa6bf6	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6a1183a3	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x872c56c6	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa40295d8	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc8e3a813	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xd40e14ec	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf6b72628	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x286e911e	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x571bd4ef	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x5f034dc3	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x9a95d8f4	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x03bd15e0	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1f0571bd	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x4c9e7a34	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x8e840191	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc529b633	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xcffd2e1c	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe714db78	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf61afe4f	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xfd6ea7d2	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x25916db3	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x638cb9e2	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xaa670d4b	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xb070a5fd	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xcba9f022	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x02e175c1	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x984e8af2	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xd8d63808	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0059eff0	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x082bc3bd	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0f249674	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1051f874	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1fcdbdf0	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3c03bc8f	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x516fd475	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6ab41d97	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x896e3ef8	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa0298090	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa1995d6d	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa6843118	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb5b3f918	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb948b478	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbbf5f53f	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcd9eb8f6	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf85e22ec	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x984bc4b3	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xa3c67cc6	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x5ee9c54f	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x02b0ee2e	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x62712f79	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xdf3fc1be	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x14233849	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x5577343f	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x90d6dfd1	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xbc12be2c	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xd73f0d12	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x6c2d8f4f	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x821d5025	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xea7a6cb3	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x4a3feddb	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x67982008	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x060974ca	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x09e32379	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0f672b96	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x190c1f7d	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1caf3043	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x36c9b56e	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3a317405	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x49e31f3b	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5bda1321	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6753c1d4	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6829c547	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6ce0ecaf	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6e2e3187	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x74317d05	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x75be0ae8	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9337eed8	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa3aed9e0	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa4c90403	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xafe445a3	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbefc45c7	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe42c053f	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xea9a44fc	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf1e579e0	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x90d5efbb	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x9b180b0a	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xa95e5f49	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xe6666820	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xf092dcb5	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x1b028fa7	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x42e9c99c	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x5ec75b62	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xc0620c2f	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x5d7c82a8	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x9e76ac29	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x3bbdd66c	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x786cf454	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x08bec473	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xcc751432	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xcf2cca52	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xf2ee362f	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x3c157b0e	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xc6b38a1b	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xc984a39d	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xf889c915	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x0cfd6e5a	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xc483ff9e	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xf9c7bb06	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x054f8d95	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x3deac1a9	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xb10661b0	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xbb70cd13	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xd76c1ccb	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x6ce8a5ce	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x79ace45a	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x313ca05f	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x34f6e02a	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x81fc2b2a	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x195fa33c	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1d3e6713	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1e719f15	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2dced6dd	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3bac376d	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3f30b0b0	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5406572c	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6baf306c	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x73dfec3c	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x7aa61cfc	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8cba0dac	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa32a5f5c	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa8f62cc5	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xaf6816fa	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb52b76f0	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc4ec6a8b	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe08d6591	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf01ecd84	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0043954d	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0051e90f	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x009aaa1d	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00d6a77d	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0285df49	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07e615a0	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08adb5e3	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08ecfd03	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08fe586c	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0dcb19f2	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e64b63b	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10d2d53a	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x127b9bdd	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13b052d4	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15d6d90c	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1732a07d	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x181aae96	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x189e6584	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b1cef76	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1c8e8ba0	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x201490fb	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x212c4a5a	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22a9d1b6	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x25285976	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x25b41ffb	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2627c371	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x27fb7162	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28dfa209	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x29dd0092	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b37c076	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c3d4262	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ccbd4ba	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ee176f4	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f704d7b	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f7eb3b3	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2fd5603f	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30c9fdfe	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33b892fa	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x353bfe08	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36372000	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36cbeaad	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x384b2e99	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x399157f4	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39a7e20e	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a629467	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3cbeb10b	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3dad9206	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3dd168d3	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x436d7ed9	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x439864df	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x471a69bc	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x472fbc18	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4b1e4b3b	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4cbfd486	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4dc43d97	ib_init_ah_from_mcmember
+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 0x4f275419	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x503572c4	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5131ed14	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x55541d97	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x56c3c080	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58344a67	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x583df0fd	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x585bf876	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x59a16afd	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a27577a	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a63dc63	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c8664f9	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cd2decf	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e4a2f86	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ec58c77	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f2fa297	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60afc87e	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60e3e733	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x653df9c7	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x668d6d01	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6764d152	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x686ebfb5	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6bf4000c	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6bfedd41	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6db112cf	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e4f6894	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7163ec7d	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x73c37481	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7530c035	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7712a8b4	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x778dc9d5	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a03f293	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a7283f8	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7de71a26	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x87233ffb	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x873351e3	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8768829b	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x87ce3679	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x87fd29e7	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88998c3d	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a35935d	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a7719c9	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8bb58939	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f283c91	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9023d50d	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x914acf41	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9153e562	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x926836d9	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x931fc5fa	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93e0a9b8	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94d37ecd	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9bae3f5b	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9c9a87bb	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d0ca74e	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f400ffc	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa00fa772	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa0d2bf92	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa1965b85	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa5e9ac07	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa70fcdbc	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa829aec3	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa9ae5eb5	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab37176a	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae4fde4b	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaef074b5	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb006a2bb	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb04784d2	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3447e94	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb349465b	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb367c5c9	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb40e8a36	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5e030d1	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb6ea8c32	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb793b0c9	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb962499f	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb9ebd6cd	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbb99a553	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbcd966ba	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2aefd02	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2ed63de	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc44350fa	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4f81c02	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc5c9a0ba	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc83876ac	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xccc04158	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xce1975c8	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd352c5e8	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd35ee29e	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5070f3d	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5415e29	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd73ab902	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd78e9466	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7ee8758	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd803c531	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0c6a1a	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdb0b09f4	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdca85ed1	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xddc97494	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe0bfd2c5	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe0f9c366	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe2c5662d	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe445fc7b	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4c65614	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5732ad6	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe58efde9	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5cc386d	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5f6e424	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe701f0d6	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe81c0d11	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8f6c6e2	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xea9c1bef	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeadfc3f9	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xed339339	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee3519bf	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef87a9f6	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf07b9695	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf294199c	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf31cf22b	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf388208c	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3cdf84a	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf508a55e	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf56ff148	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf677aa03	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf7f5872f	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf97865a5	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfaaac80e	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc6b123c	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffee4e95	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x13af490c	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1421a476	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x15cbfd84	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x19d643ea	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1a1b9a07	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1fc407f8	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x227401fd	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x45c65588	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4952abf0	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4cff6e80	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x54521a3b	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5e906d33	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x611a6aca	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6597d30f	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6ff39bc6	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7a457245	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7d4585f8	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8436032a	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x89a22206	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x923c14ce	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9a63b7c0	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xad4c0d53	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbd2363f8	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xdce1cc32	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xdff98346	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfe881551	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x1276f047	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x13436f1e	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x4163e193	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x902ca3d9	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xafc55d6f	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe8a34f73	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xfc448dcb	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xfe6ae5d9	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x037c4e5d	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x06ec2c50	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x08da2f1b	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0e5c81b4	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1554332b	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2ae932bc	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x30555376	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x31dad8d0	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x32a118dd	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4283e679	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x58a1ae13	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x641e8ab2	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6b99537c	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7257812e	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7525c547	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x79cb7343	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7a878533	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9530d4d2	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x95f8c266	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9a1515d7	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc368727d	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd3b66459	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdf9e588e	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe43b4a70	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe5c5e19b	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe64d321f	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf1e6d390	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xff889926	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0503a77c	rvt_error_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x064cd424	rvt_get_credit
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842	ib_rvt_state_ops
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0eddf543	rvt_del_timers_sync
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x10e9f874	rvt_fast_reg_mr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x2ba5f4ee	rvt_qp_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x408f7ecb	rvt_rkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4824297c	rvt_rc_rnr_retry
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x516f09da	rvt_add_retry_timer_ext
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5ae1e927	rvt_invalidate_rkey
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5edf3b94	rvt_cq_enter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x690c9a97	rvt_register_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8a25bf7a	rvt_mcast_find
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x9f36c61c	rvt_send_complete
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb1b2925c	rvt_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb1f1f1ce	rvt_restart_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb2a24e41	rvt_copy_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xbae0fe0d	rvt_compute_aeth
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc4e1a7dc	rvt_stop_rc_timers
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc582a202	rvt_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc6d83c1a	rvt_rc_error
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc9361d18	rvt_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xcba90f89	rvt_ruc_loopback
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd1c1cc59	rvt_lkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd78bf01d	rvt_comm_est
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd97226c7	rvt_add_rnr_timer
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43	rvt_rnr_tbl_to_usec
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xeb033dee	rvt_get_rwqe
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xee9aa9bd	rvt_qp_iter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf2078751	rvt_qp_iter_init
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf5b9515e	rvt_init_port
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf9d7708c	rvt_check_ah
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x03409417	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2faae9e5	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x3933c320	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x457ce01c	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x4ab35c26	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x7bcc3d6f	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x7ee2306b	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x86aee155	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x9820e415	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x25c2a004	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x662a8ffe	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x71009b3e	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x8b3cc51a	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xa4291321	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x3cf41725	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x9ba605d4	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xf25224aa	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xa03691e9	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xb18528b5	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xf4ec8239	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xfe779f66	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x013e9a60	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/rmi4/rmi_core 0x47fd61f2	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x18dc459a	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x49314b15	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x803253b8	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xe176f572	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xe2a3b63a	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x2ae48995	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x610e0ea4	ad7879_probe
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x273eb6dd	amd_iommu_init_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x65823cd8	amd_iommu_bind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x9346c882	amd_iommu_unbind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x9e54fa22	amd_iommu_set_invalid_ppr_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xb803bf45	amd_iommu_set_invalidate_ctx_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xd6b09c48	amd_iommu_free_device
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x01f8b2db	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2c43eb83	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2c7f1bd6	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2e106e9c	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32fa6fe2	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7b842317	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc45240f4	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcbc3d086	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcd8d619e	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfec5fa87	capi_ctr_ready
+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 0x28cffbc2	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x9dddb3d9	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xb34d998b	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xe3d03c36	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x2d2b0d99	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x6007c967	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x168683d3	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x254b8e2e	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+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 0x3f38fe45	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x434be51d	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x47a1d6c3	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x52849b6d	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5474a308	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x56ce6408	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5b923c77	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5c1b57de	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x67d4e6e7	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x743330e8	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x92a0861d	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x93411e03	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x965091e6	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa3a44a6f	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa6548280	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xab36fdfc	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xca430c19	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd064ab24	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd0da1a3d	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf3752695	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xffeaddea	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 0x14596f1c	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x85b75716	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x6fd221e9	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x8fd6586b	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa1e1c9d1	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xc21445f3	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1ecd2d39	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2561d631	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x4636aead	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x7e694ac6	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xef44f0ed	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xfe568629	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/raid456 0xe13aa807	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xf29edc9d	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x029fe650	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x75a2d62e	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x8a4f6134	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa96a7a6d	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xc361f823	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd5a3089c	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd6451aa3	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xdca7105f	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe2e3fb7f	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe72337e5	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xecacbe60	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xed584fb4	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xfd1588ed	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x1aca090c	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x1e102e9e	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xa6804dba	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xe6db7ec7	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x4d019a92	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x6f8a398f	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x2196b88f	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x8959c847	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x30d088eb	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x33b98f58	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x3858b6df	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x3e6b532f	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x52f13083	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x786df196	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x144921dd	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x02f23980	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1b7dca63	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2b7e01ce	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2ba54c46	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x32848a82	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b9b8570	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3e7e813b	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x408655c4	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4324ac32	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4fb21aa2	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x851c5fe6	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa907d2af	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3d5d342	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc9b622ab	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcd8ff4a8	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd3b434a8	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd5f06e15	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdde29977	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xde651bb8	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xef661eda	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf18d4064	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf1bf6b39	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf4a2117a	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf9b39e45	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0xc8b19f67	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0x23a2e89a	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x059c1b5b	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x151b4d6d	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x19fd1797	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x1df8f522	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x294e0370	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x39def0dd	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xab3e7d8f	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xb75bddcb	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc495e8b4	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0xf84ae262	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0x96466211	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x3cf0db46	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0x9c4b748c	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x05bddab3	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x2d8160ab	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x30ed386a	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0xe8962e5c	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x8959a866	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x0e2b1a67	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x8dda78f0	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0x820dfe74	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x3b35e040	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0xac7b9a7f	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x52ec0513	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x36f211ee	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x5bde7fee	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x66b83e1c	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x7564516c	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xe4b4cf88	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2b81e7c3	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x635cfdce	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x653b9c35	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x78c1b6eb	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7b9eb5ee	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x83c30684	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8754d43b	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x89731f11	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc2b95c20	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc6c7f0a2	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd29d1b9c	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd41efd5e	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xda6446ce	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe812e495	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf807f1c6	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0xd3f3d822	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x03d4ad44	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x3214f189	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x46b6782d	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x6c3a746b	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xd4c75445	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf27fb230	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x3ced2053	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x6f961973	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x781e9192	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x9899da06	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0x661e120c	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0xd93ac0b7	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x00e260dd	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x09066728	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x189847d8	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x27a1bcfc	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x2c5b71e3	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x3ee8aa4b	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x40e60e97	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x6f71d33c	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x80a41af2	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x8e34be3a	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9ac994a1	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xb810d69f	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe5088734	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x3bff99a3	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x5e412239	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x82f25273	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xadb5c001	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xf7749e74	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x834c2a9b	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0x5d422f92	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0x6f71136b	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0xfd0c7688	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0x85b6306d	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x0d831885	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x583017e4	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xf3fe338c	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0xc250a3e8	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x57c70dac	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xd4daa039	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0xf61e005c	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0x918ea4e8	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0xc36e88f5	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0xe7ec4284	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0x03eba504	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0xf49adc3a	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0xe0964dc5	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0x5f1766fc	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x8f891db1	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0x3dd02bbc	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0x478a5690	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xa19b57fa	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x6c787abc	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0xbf950311	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x4c5bfd12	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x6106fc9c	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0xaea4aa7e	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x27c294e8	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x9f6487f5	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xb6756200	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x13c87792	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0x7df3c136	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0x220f851d	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x570e6e97	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0x9f87ddaa	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0xd8afdaea	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0x44ae4bc9	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0x548838ad	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x0e199979	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x4dc75a29	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x40c97082	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x34829275	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x83709c7f	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0xda7172c6	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0x1c1e4c11	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0x7b35ce2c	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x7d52fc24	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0xffbcf473	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0xf394c0bb	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0xf96e2e2d	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xc3806fc3	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0x6e5dab9e	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0x1b18e15f	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x8673dd03	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x01265c13	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x71b823f2	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xb4855afb	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0xa23a7fd5	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0x2334cea3	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0x73b81850	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x00192993	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xcecc05f7	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0x4adc5a6e	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0x1a506945	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x4fa47c52	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x5944c3fb	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0xf1adf29c	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0xc4a3e24c	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x4b176a26	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0x1ea7ff67	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0x1fcdd488	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0xf72db8b1	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0x91748164	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0x8875e4cb	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0xdef0a4d4	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x1dcc702b	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xfced5105	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0x40ecbaea	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x0383138f	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0xc0bf9726	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x06bb1144	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0c8c4acb	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2834fdcd	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2fb41f8c	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xbcdaf194	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe317ea26	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf26b2c15	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x57bcf3a5	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x874c2bda	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x958d83da	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd8dd9202	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x6109b470	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xc0d3d833	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xdf68c2cc	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x0588d332	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x1b029118	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x2a683c1d	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x2cc8cd32	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x3e0d88ba	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x4149884f	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x56975e18	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x7bde1dab	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xaed29986	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0xbadf8a60	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x42259a5c	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x44d5c652	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x75c9d12b	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xaeab0405	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xbfa216cc	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x0bdb92c7	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x1acfdcab	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x23696455	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x53aebb8b	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x54b58b55	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x8f3aa03c	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xcc5e6f9f	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x02a4a6bf	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x60391112	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x2cc5b3a1	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x4a146c07	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x6985a2d9	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x9ccfdade	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x789c4aaa	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x8e8acc99	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x9b68abf7	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x9d76e29c	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xbb8e25af	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xcfa04bb5	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xe91f286e	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1b4cb8f6	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1f0d8d9d	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x53be8408	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5d949954	cx88_ir_start
+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 0x665c5488	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x739461de	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x7fe85423	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x80cbadbd	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8b02d175	cx88_sram_channel_dump
+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 0x9b1a6fac	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9cc8067e	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9e0ed736	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xb129769c	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xba894512	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc56e76b7	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd93a812f	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xee99ca19	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xeeee62a3	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf7c2999e	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xffe6b395	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x08012ce5	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x11403962	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x39fb7ec8	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5076f316	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x53234e2c	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x53468ee6	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x72594baf	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x960fc60f	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9d020180	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb2dd304d	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xbb17cbe1	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xbda4b5b1	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xbfb6a472	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc0496342	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc9468536	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc99f8a99	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xeea886f2	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0570228f	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x06cd4dea	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0d7a6951	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x24775af8	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x2fd659e0	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x35291d16	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x4ace12ec	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x83c7321b	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9109af17	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xada478f1	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xcf3476f0	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x953dac53	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x1760bbff	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x631ae2fe	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x8a1544f0	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x9d2c981d	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xc026907a	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xdfd6f8b9	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xfec4e94f	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x6e8bcee7	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xb72369f5	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0xeb44d0da	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0x614fd68b	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x3a9bd35a	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x6b364da4	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x8e3ce4cf	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0x90057336	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0xe3094b71	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0x306b6b71	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0x7b907b8d	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x51c84fa3	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x62993953	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x7639a971	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0x4dd28f83	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x1f84cc2c	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0x51689665	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0x1fb48835	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x5f17e056	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xa56418bb	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x174c2cb1	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x35e49e86	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3d3d6d5c	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x780749b6	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa7a53dd1	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbdd12c5d	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc46bc2fa	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd6c8c8fd	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xea62a6b2	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x1dea9f20	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x355e8231	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x3b13a0e0	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x72ea003d	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x73bec82d	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x95211705	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xdbb82e9b	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x100106ca	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	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 0x08e75c88	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0e5a7cfa	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x14550861	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4ecbeed4	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5dac4636	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x714bea83	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xba1c7d25	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbbc9d3b4	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc6e85dc0	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x09219edf	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x2c623649	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x05bab6f7	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xf7f3d47e	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x05601606	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x26dfdb11	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x32a71d59	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x37db567c	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x42e0374c	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xa2241aac	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xb937c123	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xbe5c7bd4	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe3fd0a32	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x04036edf	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x1e5c5488	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x43a42e0e	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x92adb9d5	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xa76eeab3	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xcec59ead	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe04efd91	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xf7a5d539	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x03375529	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x0b86e958	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x896fe110	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x83f5228c	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xa8322346	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x01dad83e	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7a143433	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfcc2dcff	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x00eae95e	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0935f4e3	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0a9d3a16	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0b0c604e	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0d679443	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0f9478ca	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1479b0b3	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1573dcde	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16fe2f84	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1bf653aa	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1f836582	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x358676bc	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x35f648b2	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x460f0fa5	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x46e02022	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4840b20a	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4a629e59	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4a975f5c	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4af261c7	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4d44e2d1	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4f43c420	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5098b7a0	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x55d1a956	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x57aed767	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5bc256fe	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5f78cbfa	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x60140a27	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x61ea8fab	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6739d7fc	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x691b0759	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6b5dccf7	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6cd15f59	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6fb92e6a	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x716ea530	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7b43ed07	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7c0fc0f1	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x81bcae77	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x98809355	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x98a01e94	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9b6e3063	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9be6c6be	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9c4f9058	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab18bd3c	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xac14d365	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xad7d6f62	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xafceefbb	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb98516b2	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbce7aaee	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbe977083	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc67d3260	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc9083b18	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcb397ad3	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcea012d0	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd7ec8ff4	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd93fc655	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe5379f37	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe7925ce8	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xee031183	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xee07a6d2	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xee542714	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xefb7fb29	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf78cb8bd	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf7977e10	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfa8febd1	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x12b883d5	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x2d7c6fcb	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x32c07478	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x9eebc5f6	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd2a56487	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd5cff880	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xda5ad33f	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe4ff3a0b	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe6411e6d	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xeb0a02f4	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xed9b5011	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xfa0f316d	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x082bc3b2	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x08a79525	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0fdd4605	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x136e3d23	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x20c46177	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x22e99264	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x24cbfae0	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x38522318	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3c4a2a67	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4eee9729	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x529e390d	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5f1da10d	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6437812b	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x705ab695	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7442253e	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7987fc08	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7fde7e18	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x803f3e59	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x937a0aa0	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9a36f27d	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xaf13ff80	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb8cca471	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbd176932	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc06b9b62	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc106bdec	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe7a1adab	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf086e9c6	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf3aee08f	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xff4f39f0	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1bf34410	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x24960fa9	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3bf63010	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4cdc066f	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5836b23e	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5bd6c8da	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5eedb562	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x63ca9291	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x71971fff	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8003636b	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x905065c8	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x97dfbdbb	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa828a868	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb0562431	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb655e044	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbef1a497	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc12a35b4	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc4ed8c72	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcf17316b	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd06b18fb	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd8a36b26	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdfa8ecec	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe257ee45	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe2694106	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf0f9ab68	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf2ad8cdb	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfed115ee	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x4d6588d8	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x55b49a52	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xcf2593cc	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x4132b86e	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x4bbbb8be	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xff6cae04	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x9b837f56	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xf28e655f	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0fe3fbeb	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x13549ef5	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8d95e6cd	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x98e6814e	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa900f541	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xba811bfc	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xc1f1409b	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xc5360d8d	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xcca2c830	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe7dff599	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xf20000d7	mc13xxx_reg_rmw
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x0cc60873	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x2ade701a	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x40e4b886	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x54e72201	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x72de031f	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xdf86baab	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x8e53eaea	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xda5645b4	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x4811753b	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x2323e926	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xea513b20	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0x1545cfd0	__tracepoint_mei_reg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xa5bff49d	__tracepoint_mei_pci_cfg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xb93bb2a0	__tracepoint_mei_reg_write
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0148fba1	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x1a9ef0b7	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x32a05a2b	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4609bc39	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4adf70d7	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x51c162e4	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x710bc77e	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x769fc80f	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb23dc0dd	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xce525039	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe1ff56cf	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf4e82c88	tifm_register_driver
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x20bf1a0c	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x31d50264	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x6d9099d5	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xeadc0c9c	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xec6a9de1	cqhci_irq
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x4d3c6127	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x4d8742a9	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x7814be93	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x79ea0003	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xc38dd126	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xe76858c4	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf432ddf3	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x33c1b955	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x60278384	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xa189ce22	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xe3282aa8	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x700d0fc1	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x8f234d0d	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x1f81dec6	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x64d7ec14	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xba71be65	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x2da3075f	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x65964c06	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x04920af7	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xa863f021	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x1377a50f	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x39c230a8	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x40da6268	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x56402019	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x83cd8663	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8db24b70	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xa0aa0938	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xaac52bfa	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xad2b7eb4	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xf9539bf4	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x190f3570	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xed970ccf	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x03286e5e	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x064c2970	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x38647692	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x3a4fb745	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4883d2ac	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x91c216a6	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xa8b6b249	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xadcc6864	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xba528a04	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xf57bc6a0	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x4d47ca5c	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x7dd469d7	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xf4e9039e	com20020_found
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0295ea49	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x096b9767	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0bfa959b	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x123302d7	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x13ef48b5	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x141f3eae	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1e6a22c4	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x22495c12	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x312d42ad	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x33f8ea8e	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x61a1e8e6	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6824c95d	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x71984150	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7e67283d	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7f41b071	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x831097c7	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8383bec5	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8701f0ed	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8a7cdfe0	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8de7dffa	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x907888a3	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x912efdc1	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x985402d6	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9dc10805	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa80bc96d	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaa33943b	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb0d91f3c	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb4763081	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbc6cca39	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbec428b8	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc0aa0f35	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc74cf8cf	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcb989ec4	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcdacca70	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcee94973	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd1a33c4d	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf2ac285d	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfd7b405a	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x07731a71	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x17e91861	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x1a3a6e75	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x5809d90c	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x94078862	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xfd73ec0f	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x84239225	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xbca02160	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x365573ef	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x81ad4a45	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x54d958d9	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x9efb0b08	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xfad891f4	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x404f1d75	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x429ee08c	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x81d971e5	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x893c8043	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x9ef0f0e0	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa87592e2	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xace2031b	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xdf41db6a	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xe7e4e5d4	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xfb9c60e4	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x062248bd	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0xb2d32cad	cavium_ptp_get
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0xf86ce97f	cavium_ptp_put
+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
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+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 0x00d88b96	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x097e1f55	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x28f71dc3	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x31e0b26a	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x35b1c788	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4a781125	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4dec02eb	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5930ca63	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x679c66bd	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6c2b31dd	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6ced995b	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x72d6ac49	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9151de25	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbd2ea3b1	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfd02f64d	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfec17b62	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x02352b04	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x05f1dc14	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x099d0d31	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0efb3371	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x23818b53	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2a6c25f1	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2eb9cfec	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x32435dc5	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x32ceb078	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x35edfcb6	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48a611dc	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x503c7393	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5188901d	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5460c820	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b6238c4	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5fd82023	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x664805d5	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74846559	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x749802c8	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84d6fb1f	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x85c01c42	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x881fece1	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8a02793e	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x902a3715	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x95f1eac6	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9e87e7ab	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8849ce3	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xae34b32b	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xafe7a035	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb3253119	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb506ef58	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc13a923e	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc8573d23	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdb76dbf7	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdbc1673d	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe42f1a70	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe6512687	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe7665169	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea16cb1e	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea81891f	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfa33441d	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfb6602e9	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfc51164e	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff77bfe9	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x10e881ae	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x36f1731b	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x3f581e08	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4663dfa0	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x5fedfa2c	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xa253d81a	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc09dc93b	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x0a39da1f	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x29f4fe8b	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xc32c43b0	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xd58373a3	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xe0974911	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf1ed90aa	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4befb794	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xd1081223	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x031989a7	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x2a706337	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x46a07722	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x6f3409cd	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0171c106	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07ec2224	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d58fc90	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29a784b8	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b071df2	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2cfe47c8	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32271024	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33508e8f	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x436a2224	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49a4641c	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d4b437b	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ddaa2fe	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e5f2ef0	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f09d21b	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5945cd0d	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fb3e17f	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c4d67b0	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f18116d	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fad80e8	mlx4_release_eq
+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 0x84d6f1fd	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b4ac943	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a2ce844	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa93f7c6	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2632d18	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2bafe42	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5515897	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc84ee18	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbef2ec24	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3ac8d07	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4a01701	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc96a7c9c	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca0069ba	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb073a2f	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc59aabd	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3699c7b	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8a140c4	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbc716d3	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd00c5b7	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf42bd6d	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe649ca7d	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf307181b	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf778769f	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf96dd7ed	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe0d7c31	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03acb1ed	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x04355421	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x04553ef1	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0482b74e	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x061fdc3e	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07341d56	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ac64f4d	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0afd0b41	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1098ad8e	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13ff4756	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14ea59e2	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x179a4b37	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17f8abb3	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18bc95a0	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x192ede2d	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x199894fb	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19a875c0	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c4b08aa	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d4c4493	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20b7cddf	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x222ecd8c	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x239acfbc	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24084106	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25942ef9	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x261ce03f	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26aff1bc	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26bec418	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x273e4ec0	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa36fe	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b03d484	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2be10eec	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cc6d5ac	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3159abf6	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3341a354	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x374413ef	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39ac6373	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e18ef09	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45f4264f	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x477c7553	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x50422b90	mlx5_core_create_sq_tracked
+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 0x6323a274	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x648f2210	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65925834	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x685e8e73	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6992bf43	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69a15444	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69ca32fc	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69e9b514	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a8c0516	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e9a7c9c	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78e00764	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a776e90	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x897ec54b	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x910bcc16	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93ce7008	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94dace64	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95f2bd92	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96500522	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cf70e59	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d1b08b7	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e20e1d4	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0d6419d	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa40f7281	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5776a2d	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6578082	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa727cb9e	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75d943f	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac232630	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad99b7f3	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf94a6b6	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb085c0ab	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3493937	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3612a46	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5432334	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb55d1492	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5d279e6	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7d0dc4c	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9ef46db	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba79132a	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb601a3a	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbcbde7a5	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd981859	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe50eaad	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbea2b9e2	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2df2ca9	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc756df8d	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca3b2d02	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcac8a518	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb467dad	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc7e6963	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd92441a	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4ce51bd	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd670e0be	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd83e18ef	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd857c3dc	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd924433c	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda8d672c	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde60d692	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde9443ae	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe09016e5	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe98e11a3	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe9f1bcb1	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea0f5358	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3cb631b	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf82aede2	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9a932b9	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb7f5d69	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x79f405ac	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x086c929d	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x141cbdd6	mlxsw_core_trap_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 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 0x1d2abf1a	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x28cf7184	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x58f98a26	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6043e015	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x607a17cd	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x632084bb	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x72ba2cad	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7949d016	mlxsw_core_skb_receive
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8aca3538	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x96d8ad72	mlxsw_core_rx_listener_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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcd4229db	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd2a8c3fe	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xda1c2649	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfcb112da	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xf1edbc88	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xf3ef3ef7	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x143f134d	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x1bbd6de0	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x2812c6ca	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4cc63483	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5f24cf3e	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x66fcfbeb	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x8a07ff8e	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9ea7632a	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd1553cc8	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xdd8b0d66	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe1d04f63	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe8648ce0	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf6e42d79	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf8f527a1	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfacc6d36	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x37c1db00	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 0x58a2d4bd	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x70e3a562	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x8d3263a7	qed_get_rdma_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/qede/qede 0x13b5f6cd	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x8677808d	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x12ca3b22	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x35f38e08	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x5b65ebdb	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x66468dfd	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xd8673eb6	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x57a81a0c	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x5b637613	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x5f829296	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x65a27207	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0x6ec383b2	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0xc2fb9974	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0xdd4ce229	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xea5445ef	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0xfa974422	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0xfc6d12b0	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x26773db8	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xaa6fdee2	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xbe684efa	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x49ba2d1c	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x6d8b7eee	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x4ef894ae	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x9a8290f9	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x9c75e3ae	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe766d4bc	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x1dbb1822	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x050d6825	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x3436d8a3	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x5573b27b	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xa79b86f3	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xb4fbc37b	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xd7f32c10	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xe61c0602	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xfd114e71	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x11745940	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x24fed58d	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x7465c56a	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x038d980f	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3572faee	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3d4d2c12	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x6ff6edc3	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x7d0140a8	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x8561f272	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa41f4986	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xbe9d49de	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xcc680259	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd50af921	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x37092b6b	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x188e800d	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x29a53af7	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x68891ad4	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8d32434d	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9c313d68	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa4e37200	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa692d38b	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xc2348ceb	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xcee5a453	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd9f7921e	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xdad08295	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe7b96631	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x05bec2e8	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0d2cd379	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0f1dfe7b	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x103cad77	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x12a44fa3	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x17310907	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x18b45ec0	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1917280b	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1a567506	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1b75ba0f	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x25fe88a3	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x299cf2c5	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2ea0f41a	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3175b533	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x323f882c	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3bc603ad	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3f7cd406	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x40875f15	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x419f6dd1	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4f9211f4	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x55ee3d7c	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x56c35dd6	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x589e3c91	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x59f28215	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5be28a7e	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5d2c732f	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x65f664f0	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7286ec20	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x787c653f	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7eec5da9	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x82730af7	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x84125e00	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x92c8fd83	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9661d9f5	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa1f70abb	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xab18ce2c	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb5819aa7	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbafdd727	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbced14e2	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xce7cc868	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xda297355	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe0a703ea	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf3d4837f	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf40d971e	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf4bb39bc	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf6427394	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf65dc29f	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1b126636	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2ad13b49	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7497d95e	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7b66606f	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x861da273	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x923a1d36	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xae6b4617	ath6kl_hif_intr_bh_handler
+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 0xe005331f	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe28b19cd	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe8e04beb	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf8daa333	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x02a13175	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x07ed2641	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x081ff27f	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1ee7aa60	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x268c9a1a	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x30caaabc	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x311f6703	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3285dc46	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x424f049c	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x491a86ca	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x51d97c9d	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x56736910	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5ca01078	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6566aff1	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7534c70b	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9bfcbe53	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb5758078	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc88736c6	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcfd71d9c	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd6f92b77	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd9ab4b33	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf8f9a310	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfb529531	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x00681c80	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x06f5b559	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b71be7f	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e9e45af	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x11038cbc	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x131478ea	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1464dcbf	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1485a396	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x16ddc34e	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x248cfba7	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x25a0270c	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x28376a0b	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x285d6b80	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c427c45	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cb19df5	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e414663	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fe6086c	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3066140f	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x30bbbce6	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x311b3601	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x35573f1e	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x38da0eeb	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b5258f8	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bd83443	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3cb65be9	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3cfc0aec	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d20a08e	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3df86a20	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f09d915	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x40310573	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x495c355f	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b0f83fb	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c637656	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e45e67c	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x50cd4586	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x51a0dff5	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x523e75b0	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x53376fd5	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55df7867	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c798684	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x612272f2	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x61793368	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x61d67acb	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62b6698f	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62c7d7b7	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x64544ca7	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6600064e	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x68b190da	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a6a095e	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b209fd6	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c47caa0	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e060b9b	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74e5ff27	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7550df60	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x76b447a5	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b132ba5	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x86a82fb7	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x89859abc	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d9dbd8f	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x91328389	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x920ab3c6	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x98f85d16	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a819e33	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0fbad4d	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa197d857	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa45a7f99	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8260e0b	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf7b2a23	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf7d5d9f	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2faff9e	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb377036e	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7f363d4	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9a38793	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc004cd89	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1294c76	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1672e74	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2883cbb	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2dfd4ae	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc535ffaa	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5a66152	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc64e34d7	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6c70511	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6f84772	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xced38b92	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf6d038e	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2e8adcd	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd30d21e4	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3e0de2f	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7092722	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8c91406	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda8d5b74	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdaf9e3a8	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb4bcd2c	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbc42d2a	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xded7b9b3	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdffe3606	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe13486f1	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe24f487a	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe417ea56	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe65806aa	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe82906ea	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea8a736d	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb6e4ffb	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeeb47018	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf39dc81d	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf595e2be	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf83580af	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x305589ec	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xa6becdd5	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xf1447e00	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0d1c703d	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x169818af	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x5f41c1a7	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x5f9e73e9	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6c91819c	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7e171a64	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x838e983f	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8a92a487	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8ccf3008	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xab3de879	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd8175cfe	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xddc98dd5	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe1dd52ca	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x0d8b3b5c	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x98847914	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0xfae73162	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x03b4af66	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1891a467	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x20f62ea0	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x32a0d7fb	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x371619e1	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4309e101	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4bad0829	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x65b82e7a	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x69c606a5	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x818de1d6	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x985b26a0	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9ad345c4	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xad00fc55	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb6eb94fa	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd8124738	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe0a39fb9	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xec565685	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf2a5f4c6	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf5fb020b	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfc1cae70	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0439a6b1	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x04eb6094	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0786a566	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0b5b3a73	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x11492e1d	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x124aa90b	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x189c4c9f	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1a4dbb82	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1de5d2fa	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e8423f3	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1eff4049	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1f5d107e	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x20c3f55f	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22868e57	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x24b4bd3c	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x28ff0f3b	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2af7cb35	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ccd2111	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2d8c8990	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2fa006de	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x31c8ec3a	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32d43f39	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32d559da	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3335c5ae	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x333f6fef	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x363daba4	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38eabab3	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38eb0b10	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b24849b	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3cff4f63	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x424e6e5e	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4486e5b9	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4667fe21	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4b500118	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51a3b03a	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x52e7364b	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x536ca7cd	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x54606944	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x57ced716	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58d0fecf	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5a845bb1	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b2c682d	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d2b60f6	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x61d3e561	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x66602143	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x671b6a57	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x698ce317	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6b4f8edb	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6cfdc7af	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6da805ea	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6dd7c551	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6e01066f	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x74df723e	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x755d98d9	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x75ce9e14	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7bd576aa	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fd163a5	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86b3f8c8	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x874b8c98	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8937dcf2	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8baaf03f	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x907987a5	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90db56aa	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x95b2e621	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96e824df	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x98bfe675	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9a3d06a1	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9a4ca49e	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9c6993b5	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa346cc3f	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xadf9ed5f	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaffde499	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb19e3c57	il_pm_ops
+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 0xb941f442	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc02252e	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbd06bfb2	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbf27a48e	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc10f8770	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc3a459e0	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc41eb1d0	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc503f81c	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc52f634e	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5cb232c	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca34418c	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca61af8c	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd74c170b	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd9379b90	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdbb07fb9	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe362f15d	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe72935cd	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7999e4a	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xec0c28c3	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf0bf9271	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf628792f	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf981a922	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfaf45aed	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb9e41cc	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xffbd0e11	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x04e1b27b	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x05f85670	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x073b896e	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0d51b3e4	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x111e4caa	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x177f4085	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x1c420e6b	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x20d6912a	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x21f11ce3	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2223b325	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x22a05f27	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2c762b04	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4b1aa661	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x72d67ecc	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x83fb1e9f	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x90890b7e	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x95028094	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9a4d8e30	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xaa226bb4	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb88203c8	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xbe23cfc0	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xbe9be080	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdb3f6209	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdce8670f	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf75c4c23	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x012743a4	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x1cd9d602	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4391c78d	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4602cc42	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x58f2478f	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x602899d1	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x724f3535	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x735f9e1e	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x76e5bf84	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x8142b396	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x8a7703ee	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x8c0b65be	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9f3a190d	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa9997861	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe51f7e31	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xde515173	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x2928aa27	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x05d0ff5a	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x08358331	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0bbbaad9	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0c7ebbd2	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x14a29e40	rtl92c_phy_lc_calibrate
+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 0x26755e76	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x26e76aad	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2da7698f	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2f7c2b1f	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x340fbd0e	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3df4c104	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x483b24a8	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4d6239f1	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5460a776	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x559bd267	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x55e1d155	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5b3d3c43	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5ca97fc4	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5df8ee3d	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5f8d5d4c	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x63a9251e	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x65db41f6	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x68e1448e	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7949ca1c	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8a8a46d1	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x92ce6246	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x98d7c2ee	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x99684139	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb31a1b9b	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbd33b6d4	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc978a400	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd1c6e606	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd9c4cffc	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe34adfb2	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe64b7b03	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xed79635f	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf3083887	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf4285d0e	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfdd2a927	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfe569b0e	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xff8f1ddb	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x4d128e89	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x5f6bcecf	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7ad3480b	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x83d36410	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x5db6d6d5	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xb6f15890	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xc43398f1	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xcd36c047	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1715df5a	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1e781edb	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1fcf0b47	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d90337d	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2fb3cefd	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3113edcc	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3295f0ec	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x339398dd	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x38630fff	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4886f116	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x50e7a07b	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x573ea2ee	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x57a9f890	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5b60be32	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x68d18d0c	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x745ab583	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x75f9829f	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7c04c94e	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9c4c21ee	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9d38c301	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa8734f83	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb7c5e2ee	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbc7d9e72	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc7e50765	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc846696c	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc94c8faf	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xce95e90d	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xde382539	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe3e6b6c8	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe78aad95	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xebd080a1	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xec96efc7	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x02d07d36	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x09ef6cb7	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0dcd7d3b	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0dfdba74	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x32ea454b	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x39fbcb83	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3ec6504a	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x75a9d727	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x78e28559	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9daf0596	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa51eebe3	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xad42cd98	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbc21f3e4	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe20f1605	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xea05d8ae	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xef621a07	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf6920334	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0xe6821119	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x3da6034c	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xb1aeebdc	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xc5724e8f	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xcf7fdf8d	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x5e2bdd0e	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xa24967d3	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xaa45e77d	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x274c7813	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x7dec0e67	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x8e6ade2c	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xa7ff2f61	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xb2d6a978	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x33666042	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xce10d9e0	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xfb2f204b	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x634191ac	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x6d0007f3	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xa932943c	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x0b2feeff	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x540080b3	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x6c3910ce	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7279abd4	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7a26fe90	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7a59500a	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x9ef7b3ff	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xbd1c3a3d	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xc86f933b	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf13be4a6	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x181d1759	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2a0dc2e9	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x3916cdf4	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x489e3181	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x52250054	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5bf9eb2b	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x66dd5eeb	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8fe4a89b	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x98c4c9dd	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9c530e34	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb55d17e7	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc267d30f	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc8408b0e	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcb8ed5a9	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd212719c	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd30a8f11	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf35c8f7e	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xfef0efdb	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x0c9018ff	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1b81bc50	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2aa8d644	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x45b62ab3	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x46273c3c	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x47293671	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x4aafc90b	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5051cafe	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x87760dd4	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x971f0ed8	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9b65ddf3	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa6e11c4b	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa97602c6	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xaa7225ba	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb850e071	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb8cc53fb	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xcca7a591	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xce215c34	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd58c7bbd	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd85f6343	ntb_db_event
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x0d3abc35	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xb2b4cf02	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x11996bc9	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x158b5e3b	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x1591cc3f	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x1687e6e6	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x1f0962dd	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x2403afd2	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x25c07790	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x3b4f7572	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x413cbfd8	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x4269559d	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x4a48817f	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x5631554e	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x6fe8a4f3	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x7219cd89	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x744b0576	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x79e606cf	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x80aa40d7	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x8156fa03	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x8a8a6589	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x8f9c8feb	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0x97d01350	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x98be37f6	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0xae572fd9	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0xb324c479	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xd009c19c	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xd28c16ed	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0xdba4b22b	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xe8dffdb3	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xe9c5ed6d	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xeb030c93	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xf3029dce	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0xf8214b61	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x42c3e2f1	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xd1dd8fd2	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x07de5850	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x0c8b7e18	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x0e7b1232	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1cda47fc	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1e5ca9d2	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x32902d44	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x4b91cc2f	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x5598ed38	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x5c9c6cd4	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x7f9ea678	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x88fdee52	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x897e2fd7	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8e517b86	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8e8dba39	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9bca0422	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xa1f6c66d	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xf03b73fc	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xf6e10f50	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x0464d009	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x36d5f54d	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x3eacfda2	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x57d25a3c	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x6e23dc52	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x88488070	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x93526701	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb4fb2285	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xba2593fd	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xebeefea4	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x17cc4ff5	pccard_static_ops
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x62b79bc1	pccard_nonstatic_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x7c64dcc7	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xd464aa5a	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xf1c35b04	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xfa4c0593	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xaa1c36de	cros_ec_lpc_io_bytes_mec
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xc4ebc6b3	cros_ec_lpc_mec_init
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xf5c87c59	cros_ec_lpc_mec_destroy
+EXPORT_SYMBOL	 drivers/platform/x86/dcdbas 0xa75079d6	dcdbas_smi_request
+EXPORT_SYMBOL	 drivers/platform/x86/intel_punit_ipc 0x3a0b563a	intel_punit_ipc_simple_command
+EXPORT_SYMBOL	 drivers/platform/x86/sony-laptop 0xd857cac7	sony_pic_camera_command
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x98b59144	__wmi_driver_register
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0xbc453273	wmi_driver_unregister
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x15e7b3d7	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3ddcbdac	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x62c35646	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x7bf38dde	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x930478ee	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9f008e16	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa0f6246b	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa1352781	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa3125bd0	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xab95681f	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xb3023d89	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xb392412e	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xbcc9c2b1	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd3740ee3	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0x86bd02e0	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x358aed0f	NCR_700_detect
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x3d9cece0	NCR_700_intr
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x76ab431d	NCR_700_release
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x7e459ea6	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xd63f3ef2	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xe5a3f36d	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xfeca1765	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x007de8de	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x0b9cd508	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x36837de6	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5a8660bd	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5c42e1a5	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6ae2e0c3	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6e678030	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9cb22c87	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa60c4457	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xcf0123e1	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xda2f0771	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x021499f8	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x053f66a7	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x07432f50	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x074e89f1	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x122a8253	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x14481163	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x18adb8e6	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x21d49e81	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2a4470f9	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x425fc856	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4859c5c4	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x512b4e73	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5768bc50	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5a65a008	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5b887e52	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x60089696	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x620a42b9	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x63778c03	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x684cac91	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6b08b69e	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6e4ff190	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x716509ff	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x74a0acf2	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7d0b231b	_fc_frame_alloc
+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 0x886c4258	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9148a813	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x924e5300	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d671960	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9f3aaedb	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa2812400	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa351a448	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa651314f	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa755e669	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa7708e65	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaeb0253e	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0e824d4	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbdcbe2a0	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc13aa77f	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc1c37bd8	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd7b70b67	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd9d926b2	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xda7c7dfe	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdfc15bf3	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe1fd5010	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe22b2840	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe94ffcfd	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeab9f0a2	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeb73e6eb	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeff05d94	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf796b574	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb6a1517	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xffbec6cf	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x18d9b080	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xb3fa5b90	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xf1c8a827	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x8e973b4a	mraid_mm_register_adp
+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/qla2xxx/qla2xxx 0x0c614c0d	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x1ca7e2b3	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x22f98ae9	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x9126c1cc	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x92432566	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x9b376107	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xaf39f805	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xbe9e1053	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xbeddc1ad	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xcd6de95c	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xd113e5d8	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xee2e70fa	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1f55cd70	qlogicfas408_ihandl
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x21ca130a	qlogicfas408_info
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x2ee4fd44	qlogicfas408_disable_ints
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x38079e31	qlogicfas408_host_reset
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x3fd8cd71	qlogicfas408_detect
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x913904d5	qlogicfas408_biosparam
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xac69d7a5	qlogicfas408_abort
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xc1baa7f0	qlogicfas408_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe76b3b20	qlogicfas408_get_chip_type
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xf2b95199	qlogicfas408_setup
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x1a3d2153	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x9f2be2ee	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xe6b00bb3	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x050988bd	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x08a477a0	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0be54d4c	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x12dcd2c8	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x27fb561b	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2887ec68	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3f014b52	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x4d9f44aa	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x784a099d	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x8362c531	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x8da85a9a	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x8ea56b72	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa1db022c	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa4ab31c8	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xbf55b5ed	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf563fb5e	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0282c746	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2d79a9d4	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x37fbe5de	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3cc57b9a	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5cd2c44c	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5f762f50	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x67f64214	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7389a102	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x73f7701d	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x791e2547	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7e5eb6fb	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8a3ce9a3	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8b4c0d06	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x90b1e776	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x90dd3261	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x952f4ef0	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa6adfde4	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa9861e20	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbcf99510	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc3aa16d4	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc56c03a5	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc7db58ab	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd64c540c	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd6676382	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdfd14643	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe3926952	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe8dcbeef	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf28fee25	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xff47e7a7	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x4357e05b	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x4ec3884e	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x7ab97095	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xb187fcad	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc9a7df71	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x0238f038	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x3fcb7d51	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x694f8cc2	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x81335ac9	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x9443b68a	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xcb05b995	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xe5e8bba2	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x098ab008	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x12200f52	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x19bc3fe5	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x2c30ef79	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x3b448f89	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x669369b8	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xb5cdc5c6	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xcedb17c4	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf973b2b0	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x2e227706	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xf39a103e	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x631aa7c9	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x7ea61634	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8553f838	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x91b80358	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x96f64a24	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x975ef5fe	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbc091b5e	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc523c93e	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xdb191565	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf11506c4	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf54ced04	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf6750042	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xff7799a9	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x0eac9422	sdw_cdns_config_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x1447f86c	sdw_cdns_exit_reset
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x34712074	sdw_cdns_irq
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x60e1c870	cdns_set_sdw_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x8fffdf8c	sdw_cdns_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x99061dbc	cdns_xfer_msg_defer
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x99178c27	cdns_reset_page_addr
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa00cfa1c	sdw_cdns_enable_interrupt
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa76a6fcb	sdw_cdns_thread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xb9ad6d78	sdw_cdns_probe
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xd4bf7009	cdns_bus_conf
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xe4602907	sdw_cdns_pdi_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xea0328ae	sdw_cdns_get_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xf916e997	sdw_cdns_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xfa22e4cf	cdns_xfer_msg
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x05ddd855	sdw_intel_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x5e07cd60	sdw_intel_exit
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x124565b2	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x12f86752	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x239278c1	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2917801f	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x35c67b3c	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x45ed3f89	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5616bcc7	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x636258d1	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x741308ed	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x74382cc7	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x79a70e0a	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7d4a2b48	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7d9c50ad	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x85b7d080	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x87f416b3	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x91409f04	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x992c7ec7	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa4128b97	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa5cc5f89	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfe17f13c	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x175fb800	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x17b6cac3	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x21a4f7bb	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x485edf9e	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x500da83a	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x89d73c54	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x9f0fcb1e	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa38f1966	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xb2c27e07	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xb625957d	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc2fb8291	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc51af44b	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd194044a	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd279cf07	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xde53db4f	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe557fb94	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xf2e9e552	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x79874dd0	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x1e7a7d8a	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x03398db3	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x11333e0a	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x150a5c80	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x1ef7f81f	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x29022cf2	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x2abc8ddb	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x599f9d0e	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x63029980	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x69229743	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x836f8f4f	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x9d2ecab5	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xbbc1d5a7	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd678fa91	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfe8c0d2e	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfeba4863	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x06f65324	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x368625b7	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x3ce6a1b2	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x422fa40d	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xa25f8eb1	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd18d2708	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd752c3da	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xebb9992d	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xf34fad95	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0x29562993	b1pcmcia_delcard
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xaec3240e	b1pcmcia_addcard_m1
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xea620116	b1pcmcia_addcard_m2
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xf14bf8b1	b1pcmcia_addcard_b1
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0433034f	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x063d0267	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x073d4cfa	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0768334d	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0a04b9e4	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0ba5a7f3	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0ed6e0a4	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0ef51adf	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0f12b802	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x13b3906b	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x143885ec	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x18039503	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x18bf2b82	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1e37a7dc	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x20a7f628	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x39c4ccd9	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5c951b7a	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5d8d94b0	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6969febd	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x69d5403c	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6a351973	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x716a2beb	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x775769d9	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7da29ca1	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8cde4b36	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8f25a9ab	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x907f98c0	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9f8345a0	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa039c6fb	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa76025bd	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xaa18c048	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xaa841caf	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb3c950df	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbd6946c7	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc20fe461	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xcbf35ce5	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xcbfa5937	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd3035ec3	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd538d7e0	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd8ae6f1b	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd978b6f6	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdd84d62d	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe115f37e	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe262542c	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe3fdea57	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe752add7	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xeea71081	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf0584f4c	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfd29ce33	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x014adb50	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x040ca36a	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0657fb2b	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x13357563	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1543622e	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2071ebb1	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x26e9902b	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2d5c5459	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2fbcc03d	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3079fdd0	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x33339aca	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x36f5dd1c	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3b083aa9	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3baf90c5	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x41481e26	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4bfaa4ab	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5660b4cc	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x63599689	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x66175ced	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x669dd7fb	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x686cefcf	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x68eee7f8	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x798dfa95	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x85a50859	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x85abb041	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x88341f07	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x889b9286	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8e413f55	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9c13a9ad	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa9cacd10	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xac054b64	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xacd6d99b	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaed57695	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb0525eba	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbc190653	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbca11a28	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc12043d7	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc3436847	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc9620b89	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xce0a39c9	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcf23d88e	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd0435eba	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd26e3bc7	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd39dd403	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd9229323	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdaa58af9	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdebae5af	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdf0278fa	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf3de25a2	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf4d86bd3	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf80e9e3f	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfc48a2aa	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfdab7cdd	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x05216e4f	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0ecce050	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x19db43f8	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1cfa4338	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2242ebfc	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x27333608	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2a9f75d4	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2c8411f5	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2d72d629	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2eec7d49	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3cf5a64d	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x44d08513	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x477d2c74	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x55c38bac	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5671bf87	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5981e6cc	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x60afd436	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x61f840ca	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x66a9328b	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x67bc8939	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7e8a407f	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7f76a797	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x85947341	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x88e5134d	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x903c4ec7	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x94bf1b21	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9b9d93e7	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9f043e76	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa3d558ab	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa79d3315	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb9187a18	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd567edc5	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe0de9165	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe300a646	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe929c33f	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe9f54552	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xef4e8975	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf311e5f4	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf3be5185	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf596fe6f	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf831cf22	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf99d7dd2	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfbab862c	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfdcd7aad	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0049737c	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x03823e0f	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cec5f20	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0ef925af	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x14592613	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1a3e1aef	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1b64c72a	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1b9fb779	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1d7e0dfb	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2313214e	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x29b94d54	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a22faab	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b7c59cb	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2bc65948	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2d210ddc	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x329a6aef	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3ce50fe7	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3d0b0cd3	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x432a6d27	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x495b1252	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4e21b995	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4ff7a9be	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x50de7fa9	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x57ea6476	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5cdcceca	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5d0af651	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5d83289f	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x61dc7807	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x64c70a63	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6b8b10c4	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x742c9df9	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7656bc08	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7bfb3ed1	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7c9a9811	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7e22d8bc	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8474891e	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x875481fd	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x87c14d54	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8c7cfaec	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8d05c505	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8ed7f4f4	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8fc465d2	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9326af71	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x95843386	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x98b81fbc	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9959c4a1	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9f7687a3	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa4c178d0	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa88ea9d8	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xac3ad746	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb0a42aed	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb0f6f60a	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb47aec5c	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb73a1aba	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb8fa2cbe	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbc6da455	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc347ce54	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc4008b07	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc7780808	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcb3946de	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce24b28b	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce42ad5b	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd5ce53eb	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd9f8f022	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe0f90216	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeada84af	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xec4ea98b	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf57f0724	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf60b8757	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfd6cd539	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x111eefed	acpi_parse_art
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x1887763e	acpi_thermal_rel_misc_device_add
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x86c998e6	acpi_thermal_rel_misc_device_remove
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d	acpi_parse_trt
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xb12113d9	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xdc598bb8	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0xff500d81	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x038df1bd	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x1a6a762f	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2e32e021	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2f0c7afc	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x305c0882	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x39fd0fc5	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x46481d7f	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x4790b618	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x673a38be	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7fb4e4b6	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x86675be5	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xc714350d	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe9f91579	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x2c05f621	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x4b9727e5	usb_serial_resume
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0b535fb2	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2beb05e7	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2d0f1ae1	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2d79c72e	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x691e265f	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x71fd9601	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8594252d	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa101377f	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc0400568	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe774ce78	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf8f0fdd2	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xfcd24ee4	mdev_dev
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x7a7f990a	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xd5305030	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x5da9ad6e	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x6097de6b	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xb4725177	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xf88ddfc1	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x104756a4	svga_get_tilemax
+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 0x432ef19e	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x69a59bd8	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83b525a0	svga_tilecursor
+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 0x8b67ba5a	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x9e3dc454	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcd294bf	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x3457be66	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x917c2680	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x8b343fce	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x1595a37a	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+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 0x716280d5	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x71e0d44d	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xbaa83c34	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xf5ac2c0f	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x830712a5	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xa1f0561d	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xa5586e34	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xc7e2fdd3	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x42fc34b1	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0xcb7d9072	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x26ae9aa9	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x3f91b308	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x48e7f4c4	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x77117349	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x818fd0cc	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xe5755e29	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x1dfc3cbe	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x339b2aae	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xb77e73bc	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcbe02d06	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xdd0c129b	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0xe41385a5	mb862xxfb_init_accel
+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/w1/slaves/w1_ds2780 0x092eca75	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x18e54132	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x29bc92dd	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xc9f86269	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x1f5355db	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x5a6c81b0	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xeb10b90d	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xf551dcc8	w1_unregister_family
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x04e133fc	iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x75bec08d	iTCO_vendor_pre_stop
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xc8930f32	iTCO_vendor_pre_start
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xed2a3373	iTCO_vendorsupport
+EXPORT_SYMBOL	 fs/fscache/fscache 0x07890946	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x133416d7	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x18454bee	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1b147679	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3424cc2c	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3d2ac61f	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x401e161d	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x450085d2	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x470ee647	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x48ab4c60	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x48ebf205	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4b1b7f60	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x50fd1dac	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5b9b51ae	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x648d6903	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6b12090e	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6c9e9b8d	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6f2224b2	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x718e138e	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7223bddc	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x75658a13	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7ea42f44	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83a51400	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83bbad9e	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x85153051	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x88ccbc0d	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8c60d4a6	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x90d11413	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9ad88444	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa2a4c30d	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa7f13c94	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xadba5e15	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xae748b3c	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc1c3f88f	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc73fc6d0	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd33199a1	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd9059097	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe73da7a3	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xede6a460	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x1dc8082f	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x68e5f408	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xb3e1aafc	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xd1d0597d	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xd4f5cd98	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xe0831d17	qtree_read_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x10c1a84b	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x7976addc	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x1a6273f8	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x22de6806	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x8c565279	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xa42f229a	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xc3aac68b	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe076a1f0	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/802/p8022 0x57170bc7	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x5e35efa5	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x06af854b	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xaa969d00	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x01bdbdd7	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x05e1eec7	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x0d2c78dc	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x20da6bba	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x213168a9	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x23dc110f	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x2af7d07d	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x2cdf6457	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x4022e3cd	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x44406b0d	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x4c3c2223	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x4dd4bd55	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x4dd7cb55	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x54fe4999	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x58d1a59f	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x59cb777d	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x6cbd934b	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x6d334a00	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x6f50cac2	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x757725a9	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x8026055c	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x86cb69a0	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0x88ca2b90	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x8aafbd8e	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x90bfe529	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9e70cca1	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xa420ca3b	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xb56fecdf	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xbf2014f5	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xc8a5d2c5	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xc937a281	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xc9cac03a	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd3cecc4a	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xdd32d224	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0xe4c6a1e5	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe9b5fe96	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xedf274f3	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xeecf1b17	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xf0a7e762	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xfb6df741	p9_client_readlink
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x0dc149a3	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x47ec5a58	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x6207ef5b	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x6fdf6a62	alloc_ltalkdev
+EXPORT_SYMBOL	 net/atm/atm 0x279f20c3	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x296ca0fa	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x36f99098	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x4855e835	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x6f66a99a	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x830af4a9	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa54b9c4e	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xad48d43f	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xc20e7a1a	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0xc6406790	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xdc5065e2	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xf86cadbc	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0xf8d82cf9	vcc_insert_socket
+EXPORT_SYMBOL	 net/ax25/ax25 0x037336c8	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x1df628ee	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x1e5a301f	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x32713dd6	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x4e7cc720	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x568e997d	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0x8bc0355e	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xed524c2d	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x007ea4f5	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x109bcd00	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1257b12c	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x173dc7b7	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x19a8b54b	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2115c7f2	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x24a12423	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2570ef46	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2838fd73	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3310d1cd	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x341665c5	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x377df4ba	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3a42a570	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3db4cfd6	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3fe45c95	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x424665fc	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x44aaf330	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x491547af	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x499ba894	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5e6726c4	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x611465a5	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x67e157eb	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x75a7a15d	hci_reset_dev
+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 0x7be9e853	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7cd02f02	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7dea4b85	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x85ecb4aa	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8f361e73	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9d4cf859	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9e495c92	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa0fc004c	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xab7b78fa	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xac7da512	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb2408a1f	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcaa24ad5	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xce25e42d	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3b853fa	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd8cff6f3	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdc09e09b	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe50dcdcc	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xecb84789	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf1e833ae	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf35cab84	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xff7c7e72	l2cap_register_user
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x0ce17efd	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x23028fff	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x613dbd84	ebt_unregister_table
+EXPORT_SYMBOL	 net/caif/caif 0x030c99de	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x073f1499	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x08ada0ef	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x0d94fc79	cfcnfg_add_phy_layer
+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 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 0x4eb98083	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/can/can 0x172f9f01	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x428b8d47	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x49c371b8	can_send
+EXPORT_SYMBOL	 net/can/can 0x4d5dfd0c	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0xa29a2ffb	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0xd94e060b	can_proto_register
+EXPORT_SYMBOL	 net/ceph/libceph 0x008ef938	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x066499f9	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x082ac6d6	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x0844c9c1	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x0b0387bd	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x0b8d21e6	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x0c0d99bb	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x0db052de	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x0f4201be	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x12982fdb	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x14d6f9a6	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x15eec69a	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x174cf8e1	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x17d44454	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x1fd76659	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x27841f07	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x2822d2dc	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2dce8552	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x36f3ac6b	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x42562285	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x437a1c51	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x44cd08e1	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b9ec249	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x4bdb9c8e	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x4f67f133	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x50a61daa	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x53957746	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x54af09fe	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x55e2347d	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x567edef4	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d38c5b0	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x5f0b8b03	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x6085d1fa	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x61d8d064	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x62322d5e	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6266cf29	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x64b3b2d0	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x65861074	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6c31d499	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d706f35	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e7757c3	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x70cf39a8	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x70fcaed3	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x76d4609e	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x76d9b048	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x77aecf15	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x78634927	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x7d6d0db8	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x860c0baa	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x8620970b	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x863df481	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x877f6d1a	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x87ab7e40	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8d4bdc63	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x913aa8c6	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x91c8fdce	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x91ffb119	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x951200c7	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x958d6a44	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x9609ec3a	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x97f99c65	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x9a93a694	ceph_osdc_abort_requests
+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 0x9eae0586	ceph_auth_verify_authorizer_reply
+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 0xa2eef094	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xa35ca46d	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xa63d5c57	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xa676a126	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa6b8cfed	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xa7b3ab8c	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0xa7cbbbdc	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xa86ff764	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad414242	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xadf3abb8	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb297aa05	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xb7490a7b	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb18834b	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc0ee0b2	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbea93492	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf4b978f	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf9fdd0b	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc2fd134a	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd70820c6	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7f10955	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xd852031b	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xd8eca143	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xd907884f	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd10878f	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xde15bf1c	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf0080d8	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2be47b2	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0xe577d10d	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe66bf751	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xe88f24a2	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xedaaf46a	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+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 0xf35d6dfc	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf75dbba3	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9e3468a	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa3b2219	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xfdb35e2a	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x4bfca177	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xb64c1e53	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x2adc9651	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xcb881c62	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x5485b0f3	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x54ace9f1	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x6a8878d2	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x91463c60	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xa81d7ab5	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xe773253d	wpan_phy_register
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xbdaab32b	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xf90bfbf8	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/gre 0xe082bdf4	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x103e3280	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xa275d57f	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xc68b331f	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xf873111b	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x1cb30172	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x5b94b44f	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x9d29ccf8	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x0eee2f05	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x69365a27	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x8e167ef6	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x221c34a2	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x96a1cd4f	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x04ceb6d0	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x05bc3726	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3565bba9	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x5845de2c	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x710eed24	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x74df17d9	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x86772b9e	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xae912fb3	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xc2e7c20a	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd1d0d9b0	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x22d22876	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x33123ae7	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xc354d8ed	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xa159a075	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xa5213ef2	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x007cc2cb	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x2f5c3fe2	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x7f8df2b2	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xdfe7a75b	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x03ef9c01	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x1855e8f3	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x19b76ced	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x75753dfd	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x8e180926	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x97bf5432	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xa9df0cb7	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xd15bd6b9	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0xffdb73c9	lapb_unregister
+EXPORT_SYMBOL	 net/llc/llc 0x1a12794e	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x448a4995	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x45420365	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x9b928fc8	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xa1a2c217	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0xd09cfb39	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0xdda58893	llc_add_pack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x00137a84	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x00b127ec	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x036809b3	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0bafe364	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ca05fb7	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0f796d93	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x11668e9f	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x135711b4	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x145b555c	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x16a47a2e	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x18b4d9ec	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1a163e4f	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1c856d02	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1cff9517	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1e7ad10c	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x20c9377a	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2373e5bc	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f3e5f7d	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f864028	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4137b6d9	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x48bfccc4	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4d283505	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x50ac0bbb	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x532312ad	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x535b4c37	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5d206fbe	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5fb4c8bb	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x604b0d91	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x60900db2	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x60bb1f83	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x61b91ce6	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x62a37a93	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x63605ab6	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x652b4918	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x69a0b0b8	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6ae056d5	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6db67728	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x70a90801	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x717caa9d	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x74a8327e	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x76ac05d8	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x76b74f22	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x78f32880	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7eae498a	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7f6df1cf	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x83763bd1	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8412b54e	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x885ead2d	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x89c5fb7a	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8bd27797	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8d43021b	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8f437eee	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9563c8f2	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9646ac0f	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9ec903c2	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa26b0642	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa87ae89b	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa9d76ac6	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac7d3d49	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb050771f	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb71c8cc4	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb74fb0e0	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xba99d279	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbed919ad	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbf30b5e2	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc02e70e4	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc0617d9d	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc590828f	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca5b86a0	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcbb1013f	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcdb4599b	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf365c47	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf77885c	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd6d1ae8b	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd70847af	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd7695f69	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd798766c	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdc1b762d	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdc54e815	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe125c4d2	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe1e7c4a4	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe291c437	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe3cc5770	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe436a126	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xedcc379c	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf37539b6	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf39ee1a1	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf3a67cbe	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf5706484	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf6da9bc4	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf6eb1566	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xff0d078c	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x0c735dbc	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x2946073d	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x601a600c	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x668ed7da	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x6f459687	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x90e96866	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9c4b8136	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xfded147c	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x090d5d6b	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0e5a6e34	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x18a30ec4	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1f6c9c2e	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x31efd860	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3e08e636	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x443ec4e6	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x61a9f146	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x7f5639a6	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x87b805c8	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xafaa16e1	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xb416f149	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd5cf78a9	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd6cac50b	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf3b88597	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x2cc84a5a	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x8014f7fd	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x44e01189	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x7ca16a21	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x8d941516	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x9604f685	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xa76c05a7	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x1beed515	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x357056eb	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x6066646f	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x65a46a9f	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8b9c3522	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x968c0248	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x980ace9a	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa3d1935a	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xb4aafb05	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe2cb0e00	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0b05eda5	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1601ec3a	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1e91ae51	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x295c65c7	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x39a7a6aa	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x459ab719	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x52f5046e	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x53768362	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x66f98bb2	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6b603b49	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6c39b579	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7d14e39f	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7e546e19	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x810f6fb4	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x83919c75	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9e84b65c	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xae02103b	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xaf5ab335	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbbc7aaeb	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd21588f4	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe14b1a4d	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x13c74834	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x14528050	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x20d297b7	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2400a039	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x25ea97a9	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2b4b1d9f	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3b4b99d1	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x55665529	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5b6b8264	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5fc6faa8	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x616d6822	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x71ecffd2	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8aa7b04a	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x94141782	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x951904fb	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x994a5b08	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9f168aa3	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa5b41868	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa6b24aa1	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xadc4cb7d	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xae173968	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb1a71d05	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb26163cc	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb9128462	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xce6e812e	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xcfd7b20e	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xd341bd66	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe91d31bd	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xef9c69b8	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nfc 0x0591d57e	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x0e13d9ac	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0x0ed9c220	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x10cd55a5	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x15e38659	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x17fd3300	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x243b040e	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x2a6329b5	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x4267939d	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x53335830	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x68c249ac	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x728cf503	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x7acf7252	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x91611080	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x93c9da8e	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xa10c12f5	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0xa4a087db	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xa6d54c7e	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xbb2e229e	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xc014a79c	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xc7c8dcf3	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xd4010e8f	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0xebc003f5	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xf5a564a7	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0xfae03994	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x6c40e915	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x817387b5	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x88baa70d	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x8a7cf2db	nfc_digital_register_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x06a6fc2b	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x4e00199e	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x69e828f1	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0x7e66aa24	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x9779587a	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0xb5870b99	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xcc1db92d	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xd6290f88	phonet_proto_unregister
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x00a38723	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0cf319ac	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3d2a41df	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5356d5db	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x648cca77	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x64fb8dd7	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x69e66648	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6cede8ca	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8458cb9c	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xa4057915	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xc89e35a5	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd59b7c90	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe3e0005c	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xef5b634f	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf1ab5010	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf4be400c	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xfa062715	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/sctp/sctp 0x6bac72ca	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x5c9f9fc2	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x90e09651	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xa589709b	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x448a8555	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x6031077d	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xfee68183	xdr_truncate_encode
+EXPORT_SYMBOL	 net/tipc/tipc 0x2971c5eb	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xad4ad62c	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xdc537665	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0xdc5e4453	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x1301bfdc	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0x3b83ab63	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xb053cf83	tls_register_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x5e8e6585	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0x6872fe48	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x047e0784	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x066fad3e	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x067ec94a	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0b12c2bf	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0de1542d	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0eaedc87	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x106c3c1d	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x119afe04	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x12a97321	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x142fa668	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1a9c8e09	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b4cddac	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1c4d698a	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce8597f	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x211387f2	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x220160af	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x239e742c	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x23cc113a	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x24de9f49	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2bd5fb4f	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x301d7345	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3e9f355c	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3f368adf	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3f8c87b2	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x42fa8ae3	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4409fd94	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4480cedb	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4727cf34	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4c1ce1ed	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4cfbddac	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4f2ebaca	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5142f24c	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x544a1621	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x568fb0b4	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x587153f6	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x58a41839	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x59d2649a	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5bc6f25e	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5ffc050b	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6045c7bb	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x61e2f0ad	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x629008df	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63846a0d	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6531b7c2	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69ad1cb3	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ac03f8e	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6cad27d9	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ed78e29	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72d264e1	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x73ef0fc9	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x784ae2cb	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x87bd1e19	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a644733	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b403dde	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8cf66645	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8d9ddde9	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8debe43a	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9bc0a08c	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9c646409	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9fc0ed85	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa268ebb8	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa2f3a5c7	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaf4ae2bb	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1669026	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4607592	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb51d9e9a	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb549ce2d	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb7121eb0	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbb4fd9c3	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbfb48ba6	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc34e8aeb	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc61c2cb9	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc697be26	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc6e0189d	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc78849fb	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc7a6f56b	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd40a5fa1	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd74cf7dc	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdce713e2	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdd3e341e	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe7bf4132	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe9d93af7	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xea6b860c	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeb786e7b	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf06ba87c	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf07ade5f	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf631d70d	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf9098985	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfb530471	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfb7304d3	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfc0c0ff5	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfc89f23b	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/lib80211 0x05bd275a	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0x09ca6394	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x416f189e	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x7efd4497	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc12979de	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xf0a2e763	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 sound/ac97_bus 0x08e92df6	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x9753d995	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x51693e90	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6f6e6291	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x98b47e49	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xad1e2459	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x60920088	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x0070f467	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0x02419105	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0x0414d1b3	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0x11762975	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0x14dceaea	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x23cef313	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x3103fea8	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x34a83e1c	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x34f2e220	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0x37c308e4	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3d5a15ee	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x3f0eca64	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4b825bb4	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x5379af5f	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x55e02448	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0x5af146d8	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0x5b6add05	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0x5cbf96c6	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0x60571ec1	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x61c9ad56	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x69a92f50	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x69be75b9	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x6f33c820	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x6fb2472f	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x79f95f4f	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x7f0a1025	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x88263edd	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x8868e72e	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x8fac7c36	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0x9a6659d6	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x9c5f1760	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0x9fa718d1	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0xa0c41173	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0xa3f7a6f4	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0xa8e357e4	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0xad6559f4	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb2f84e4a	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0xb9ef766e	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0xc316659f	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc7dac180	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xd5f46775	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xe043c22b	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0xeca82eb5	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0xf11bc1d0	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0xfb8fa93e	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0xfc8d4c23	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0xfebe7890	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x0f7ffbcf	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0601c177	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x09469582	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1316fd9e	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1acdf047	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2ac21094	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2ed200d9	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3775153c	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x37c47f4b	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3d392b47	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3e9c7be1	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x40023f3a	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x407c23ef	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x417c0c6a	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4924a3aa	snd_dma_alloc_pages
+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 0x5144a5fe	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x57e2b53f	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5dec6c0f	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6243c061	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x660b6105	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x696d3822	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x70197c15	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x75870b9a	snd_sgbuf_get_chunk_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8288f005	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x878bda01	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8d05cfab	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8da7465e	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x952ffe3b	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa4ba896f	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xaaa092f7	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb5a793de	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb8e92cf7	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbac5c05e	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbd29ccfc	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc23d39c5	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc691377f	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xca7ac1d4	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcc7bd2fe	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcf4ce38f	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd0a0badc	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd0dfaf04	snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd35f7fbf	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe13205a5	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe70f9077	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe7bd979a	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xea213b5e	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x21828fa0	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2e4997a4	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x3ea60a05	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x52a0ba74	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5e84f277	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x617daa45	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x63cca0ed	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x66aed8b6	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6ab6d95f	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6f076ebb	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x99f135ca	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xaa68df32	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc18919e0	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc30b01cd	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xca463f19	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xcc98571d	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd51bdde3	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xdb29e60a	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xde795531	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf7a456a0	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x00dfb558	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+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-timer 0x157929b5	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0x237507dd	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x38f07279	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x39060b8d	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x49a9f91c	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x49b27450	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x62d020d6	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x693cea21	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x70d04c02	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc3887e68	snd_timer_resolution
+EXPORT_SYMBOL	 sound/core/snd-timer 0xcc2a1ca2	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0xf4840fa8	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0xfe7c1b4e	snd_timer_pause
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x3aac98bf	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x007df8c4	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x0d7ece36	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5463f898	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x67eea38f	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x74d2e39d	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x78fc2b6d	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa687d667	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa77a582c	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xb28b9ed5	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x098947a4	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x0aeab8bb	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x17028653	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x19dcb2bc	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x43fbbbb4	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x4d2ffcdc	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xad123c1b	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xbdbc4e3c	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xe155db1f	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x15d4209d	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1aade37d	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1ebf8de3	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2516979e	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x27dc95da	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2973618d	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2b38081d	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2ec681f3	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2f482004	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3ef76da7	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x406c5aa5	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x48fb465a	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x569a6d60	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x66d89208	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6e64ff57	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x70542be7	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x76a66878	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7891cd22	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x78efbfa0	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x90bcf742	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x967a5c81	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x970cf19e	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x977b20bb	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9c51cd57	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9d38517e	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb5107787	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc107fd2c	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xddf79449	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe10f80a3	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe8cc4496	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeee4ad3e	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf0565fb3	cmp_connection_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x8179ebef	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xc721f8eb	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x0faa9b04	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x13b3c9cb	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x5c137082	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x9f39912e	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xb478a380	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcadfb597	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcc8c679b	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xee3aa6a2	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x216befe5	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x2ce2904e	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x7637afc6	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x95ad2a74	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xa2d5680a	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xa3016804	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x08953ae1	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x0edbcada	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x38d7cef7	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x46540c9f	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x371ad5ec	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xc713f335	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x04fa41c6	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x35ca9ddd	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x6acec329	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xbf2335b6	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xdae1cc28	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xe417bf1e	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x1922fc0d	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x25a41e88	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x5bd0e1f7	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x6995b346	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x77965906	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xeaefb1be	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x1c833efa	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x21b29ecd	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x2500ae06	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x3efa2de9	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x40fe574a	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x4d89eb57	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x80a58d30	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xb32e489e	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xb6f01c60	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xe37020c1	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x00eecb8e	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x102c8633	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1ad9bfe2	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2b4d7fd0	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x31a56f17	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3c9a4b6b	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x4e11b09d	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5c2e6f3b	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5fa077a2	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6e4e7776	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x8b762b29	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb2f45f53	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xbca02001	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe5bfbe4d	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xef69b139	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf160c9a3	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfdc73128	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/asihpi/snd-asihpi 0xc57b2ea8	hpi_send_recv
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x1b9dd219	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x3df4c045	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x62069b0f	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x7c11d802	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x8c6a3492	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x8cc5bece	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xbbc06375	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xc977206b	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xfe306f33	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x33b91070	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6b45486f	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xeba23ea4	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0d0c5296	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1210f190	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1a1612c0	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1bbd84ac	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x22284c0e	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3b4d8b73	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x40da3b20	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x56544618	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x64fb8e24	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x79c981e1	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x906c0542	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x9127ca9b	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa22d8484	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa5b4d415	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa6089456	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xad4cc47a	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbc8bcfaa	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xc5bbb37a	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd613c540	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdb081b16	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xfcbecbce	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x1212e0ef	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x334170a3	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xb3a14ec4	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xb614a5e1	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xce31042f	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x1c80790a	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x2d002c38	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x05c3cbec	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x1c558e8d	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x0d5fdac7	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x35ec7e52	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x6f197f19	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x12a5886d	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x5e25cf8d	cht_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x6465625b	sof_cht_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x6966f5bf	sof_byt_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8639b9f0	tng_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xaabb51a4	byt_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xf4891f66	sof_tng_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x072f5ab2	hda_codec_i915_put
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x0d74c97e	hda_codec_i915_init
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x1e1a5387	hda_codec_probe_bus
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x4cafdaa4	hda_codec_jack_check
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x66a0e598	hda_codec_i915_exit
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x7b376163	hda_codec_i915_get
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xb93fa6d7	hda_codec_jack_wake_enable
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x5b5be595	apl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x61cf31b7	icl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x703e1716	tgl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x9df43779	sof_apl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xacf31f39	ehl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xe830d797	sof_cnl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xf4d48b52	cnl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x7a2a9bd6	intel_ipc_pcm_params
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x81e50b89	intel_ipc_msg_data
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x96c615e2	intel_pcm_open
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xc9d5091b	intel_pcm_close
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x019b2e62	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x12cca039	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1ac284f2	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x21c0600b	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x243011bf	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x27ea0a77	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2a27cd95	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2cf738a1	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x32d445c3	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x345a9e32	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3afe5979	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x43d3c8ed	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4b8656bc	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4b89f691	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4ece764e	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x57d9f3ab	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5ab626d3	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5ed7d39e	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6c3fc54c	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x76028e80	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x80dbd611	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x81450384	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x819324d9	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x82a25388	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8f3c3dca	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x94a9b9ee	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x97695770	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9f1aed8e	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xab94dc73	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xadb7dc4d	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb386e814	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xca63cb39	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcaff9d13	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfbe80d3	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd3a4a0cb	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd4aa73dc	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdd91882d	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdf7bf76c	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe19b927b	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe42eb4cc	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe68d7dad	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xeddfb83c	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xee4bf1c6	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf06a0977	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf30a2de9	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfcfb2dc8	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/xtensa/snd-sof-xtensa-dsp 0x6703752e	sof_xtensa_arch_ops
+EXPORT_SYMBOL	 sound/soundcore 0x2f5c2ef5	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x3bea0233	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x4be72b1a	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x50dda1fb	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc1fbbcf4	sound_class
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x050a35ea	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x19a430c5	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x1c38a2b1	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x43afc8c4	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xf746156e	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xf8acfee3	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x293ac667	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x34ac95ae	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x48f920c4	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x7d95566f	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x85659341	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97bb24f2	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9db98086	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xe2935f8c	snd_util_memhdr_free
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x12d0b492	__snd_usbmidi_create
+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 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x0adf07f3	ssd_set_otprotect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x0b33396c	ssd_set_wmode
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x632477cd	ssd_unregister_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x877d1104	ssd_submit_pbio
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xa9bc525f	ssd_bm_status
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xb20d457d	ssd_register_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xb9d8b122	ssd_get_version
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xc2a86d79	ssd_reset
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xca559eb0	ssd_get_pciaddr
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xd03eac38	ssd_get_temperature
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xfa040305	ssd_get_label
+EXPORT_SYMBOL	 vmlinux 0x00037f2b	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x000c0bc9	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x000fd04c	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x00190897	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x0035868c	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x0036c90c	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x0038e719	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x003c13fd	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x004ef78e	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x0091fc7c	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x00a104a3	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x00a40b32	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x00a4b044	amd_iommu_deactivate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0x00aa8a95	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x00c2b439	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x00d50448	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00eb79e1	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x00ede214	amd_iommu_get_v2_domain
+EXPORT_SYMBOL	 vmlinux 0x00f9609c	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x00f9a395	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01065d9c	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0115b723	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x01192b5a	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x013cf6de	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x013f335f	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x0155c494	d_add
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x01841e66	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x0185111c	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x018cc571	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x019216b3	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x01ae8b1e	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01b6fa17	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01c934a2	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x01dbb393	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x01ee4a4b	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x01f82799	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x02357080	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x023d1b90	wrmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x024737fc	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0259002c	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x0271cde3	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02afa4f7	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02bedaf1	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x02c1ed47	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x02c57515	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x02c656b6	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL	 vmlinux 0x02c9209d	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x02cfd5a1	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x02e3366e	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x0324f264	input_event
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x034ba978	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x037516fb	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x038cc01c	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x038debac	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03a45899	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x03b587fd	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x03ceb1d8	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0x03d63e52	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x03dd80b5	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x04011d5b	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x04200048	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x042299ee	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x043014a3	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x043440e4	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x0451aec1	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x04570756	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x04682c5c	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x0494042f	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x04b7981d	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x04b8216c	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x04c62fd7	__memset
+EXPORT_SYMBOL	 vmlinux 0x04cad451	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0x04e3c6b1	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x05186302	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05217f77	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x052b9a2b	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x05380ebb	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x055163e6	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x05620256	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x0580f463	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05d6b26d	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x06052f8d	__memmove
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061e2b90	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x06242597	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x062882b1	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x063ff76b	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x0644bc35	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x064812d2	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x064fc8ac	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x065678cc	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x065ef46b	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x068ad707	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x06989519	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x06a67f60	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06db9327	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x070685a5	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x070e3191	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x0718b637	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x07493d5b	logfc
+EXPORT_SYMBOL	 vmlinux 0x074da370	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x07665f64	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x07a1ee56	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x07a358d0	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x07a88d21	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07c9faf9	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07d2a832	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x07dc9204	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x0821e528	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08303ac5	x86_match_cpu
+EXPORT_SYMBOL	 vmlinux 0x083d6f1f	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0858aa26	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x087faf4b	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x089a2807	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x08b581c6	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x08d30919	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x08d8e173	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x08f602f4	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x09048bcb	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x092e31d9	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x0930bd8b	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x09394c09	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x093a219c	ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x0944c43f	node_states
+EXPORT_SYMBOL	 vmlinux 0x09477e43	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x095f3a4d	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x096596ac	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x098178f3	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09a8c471	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x09b539c7	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x09c08fa3	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x09c0a4e0	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d2b253	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09d86bf0	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x0a024419	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a11ea84	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a21bde7	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a4037aa	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x0a41b680	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x0a5084fd	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0x0a596650	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa8ccfd	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0adabe39	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0b053cec	native_write_cr4
+EXPORT_SYMBOL	 vmlinux 0x0b074c62	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b1d9e09	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b36682f	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x0b3fd520	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x0b4e3cc9	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x0b4f8060	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x0b6a359f	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x0b6da403	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b783fd3	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x0b784c4f	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x0b7d69c4	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x0b80c8bc	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x0b819214	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x0b897a3c	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bcbefd5	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x0be43852	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x0c004800	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x0c062cfa	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c34468a	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x0c36cbd0	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x0c5b6dc9	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x0c5c68c6	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c87eefa	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x0cb110f4	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cbb88b0	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cc89b5b	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0d0238ed	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d3aa79c	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d6ff8f0	vga_put
+EXPORT_SYMBOL	 vmlinux 0x0d754126	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x0d93fced	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x0d9cfcb1	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x0da486d0	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x0dbe9e8b	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x0dcc233e	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x0e0a48a1	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x0e0adff1	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e23b37f	alloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x0e4aca40	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x0e4e287c	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x0e57a257	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x0e5cabfb	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x0e625c0b	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x0e7411d7	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e8fb8eb	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x0ea10208	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x0ebc735e	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ed12814	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x0eec8df4	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x0f012cf4	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x0f02f943	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x0f05c7b8	__x86_indirect_thunk_r15
+EXPORT_SYMBOL	 vmlinux 0x0f07d465	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f1aa2f7	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f4473ac	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x0f79f488	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0fa79199	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fbb8401	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x0fcc6857	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd3836e	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fdd841b	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x0fe61a02	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x0febbb7f	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x0fece738	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x0ff1b20a	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0x0ff242f3	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x0ff80f59	zalloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x1011d570	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x1032ef5d	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x1048fdfc	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x109080fa	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x10b6f568	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10e53c6d	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x10e6e9f4	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x10eb617e	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x10ec7ee6	vga_switcheroo_lock_ddc
+EXPORT_SYMBOL	 vmlinux 0x10efb8d6	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x11035881	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x110b36af	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x11246d69	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x1135e9aa	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x113e8263	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x114cc1a2	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x115f50c6	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x1162e116	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x11792878	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x11887277	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x118b9c02	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x118dc1be	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x119a3b9a	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11e8dd17	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x11f8c0b7	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x12028eda	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x1204be4a	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x120b2698	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x12146f1f	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x123edc3a	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x12634301	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x126af0f9	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x1275721a	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x128a25df	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x129307e3	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x12a07f79	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12c30509	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x12c59081	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12e87d24	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x12ed1e22	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x12efc076	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x12f480fe	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x13217731	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x1344d7e6	acpi_enable_gpe
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134ce9ff	ex_handler_clear_fs
+EXPORT_SYMBOL	 vmlinux 0x1378cf9a	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x1384aad6	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x1384c508	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x13877ea3	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x1389619c	__max_die_per_package
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13a07699	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x13c1f08c	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x13cc22c1	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13d568fd	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x13dc7334	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x13eee737	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x13f34a38	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x141f1ea6	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x1421f180	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x14312b44	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x143ba63f	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x14567b07	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1462f980	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x1481bfce	kset_register
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x1498dea0	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x149fb626	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x14b19504	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x14b4cf13	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x14bc3840	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14ccda7a	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x14cd3c4d	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x14d081cf	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x14d78434	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x151966dc	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x154fac09	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x15686de5	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x1569a8cf	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x156e44a4	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x15750989	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x1580d7fe	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x158bc3ac	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x15b625f1	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bccd49	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15d72758	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x15e8247c	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x15ea4c54	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x15eed36c	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x15f35535	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x15fc7cd8	amd_iommu_flush_page
+EXPORT_SYMBOL	 vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x162bfa7b	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x16301b34	wrmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x1641f732	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x1647f7c1	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x164e3f2c	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x165b145c	ex_handler_refcount
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x1679128c	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x1682c6b3	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x16946670	amd_iommu_enable_device_erratum
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x169a906c	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x16a0ebfb	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x16b15e8a	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x16c3ad28	get_dev_data
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16eb1874	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x16f3c56f	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x173a427d	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x1743d17a	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x174574c6	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x175e33fb	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x1768b03b	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x177e0ae6	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x1780c6cf	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x1783f1ed	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x17971892	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x17a1734a	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x17be68ca	acpi_clear_event
+EXPORT_SYMBOL	 vmlinux 0x17cc6a24	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x17cde50e	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x17ce3f6f	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x17cf3f04	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x1803631e	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x180696c8	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x1819ce1b	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x1824f4bb	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x18258ed6	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x183d7109	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x18535653	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x1856b3aa	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x186733d5	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x1867381a	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x18786327	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x187a4ecd	__tracepoint_read_msr
+EXPORT_SYMBOL	 vmlinux 0x187a921b	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188e15b9	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1891e30a	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x189a753f	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x18a8cbf5	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x18abeb19	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x18cc9f9c	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x18d2fd0b	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x18db25a4	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x18ddddf4	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x18e0404d	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18eca21c	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x197ffd54	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x19870470	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19b37626	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x19b853fd	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19bf61d2	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x19c6a427	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x19df99b9	acpi_finish_gpe
+EXPORT_SYMBOL	 vmlinux 0x1a156228	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x1a16f041	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a1d35dd	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x1a2c9491	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a55e093	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x1a5d599c	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL	 vmlinux 0x1a6bb7b7	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0x1a725fb2	agp_enable
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a82b378	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1ab6a826	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1ac930f5	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x1ada69a1	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x1adf63a7	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x1ae9015c	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b01e880	update_region
+EXPORT_SYMBOL	 vmlinux 0x1b12d635	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x1b13d030	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x1b1e838f	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x1b1f9a7e	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x1b42f37c	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x1b53a588	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b62d26d	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b85470c	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1ba402c5	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1bac7ddc	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bb892e0	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x1bbcd94c	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x1bc2d4eb	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x1bca764f	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1bcd68e5	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x1bd4e98d	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bf8a344	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x1bf9b804	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0x1bffa06a	vga_switcheroo_unregister_client
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c2242fe	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x1c2e561c	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c561277	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x1c568f30	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c5e53b8	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x1c609dea	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x1c6c145d	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x1c72717a	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x1c8c661f	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb3f3cc	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x1cc88907	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x1cc9081f	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x1cde801e	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x1ce18682	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x1d001c32	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x1d0266f5	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d19f77b	physical_mask
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d264e9a	d_delete
+EXPORT_SYMBOL	 vmlinux 0x1d2c4d07	seq_release
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d3efd9e	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d4865ba	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x1d5a9710	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x1dab6f92	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL	 vmlinux 0x1dbb422d	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x1dbc8860	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x1dcbd687	__pte2cachemode_tbl
+EXPORT_SYMBOL	 vmlinux 0x1dcca0ff	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1df365a3	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e1859b0	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e53fac7	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x1e5d35eb	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e831c16	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea7bbbf	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb922a3	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x1ec33f31	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x1ec78a25	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x1ed8b599	__x86_indirect_thunk_r8
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1f43f94e	seq_path
+EXPORT_SYMBOL	 vmlinux 0x1f4abc63	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x1f5284d2	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x1f73b18c	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x1f92a6e4	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x1f96e14e	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x1fab3c3e	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fbe91b5	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x1fbfb66e	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x1fc0cc7c	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd1fa89	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1fee87cd	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x1ff02920	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x1ff9b81c	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x20044d5b	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x202395ed	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x20259d5b	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x202637b3	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x202b8d2e	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x20653930	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207ffc1f	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0x209ba6c2	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a35a3b	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x20a41896	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20ba4f3e	rdmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d2a726	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x2101f728	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x210bacee	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x211130c1	alloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x211c34ad	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x2128f354	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x212b8009	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x212ec1c1	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x2157be7e	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x2162f84a	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x216b4b95	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x2174d0db	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x2177bd71	acpi_disable_event
+EXPORT_SYMBOL	 vmlinux 0x2187003d	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x218dd07a	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21b479c8	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x21b52147	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21d73790	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e5fb45	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x21fc2efa	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x22459a30	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x224e36a9	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x2269435c	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x227b1718	tboot
+EXPORT_SYMBOL	 vmlinux 0x228a00fc	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x229d8b2d	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22c72a90	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x22c7fc6e	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x22cc18a2	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x22d666f7	has_capability
+EXPORT_SYMBOL	 vmlinux 0x22de4931	amd_iommu_register_ga_log_notifier
+EXPORT_SYMBOL	 vmlinux 0x22f9257b	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x23080f82	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x23226e95	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x2322bd31	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x2332b31a	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x233a0a75	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x233be37a	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x233f0e8d	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x234c6447	amd_iommu_domain_set_gcr3
+EXPORT_SYMBOL	 vmlinux 0x235d857d	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x23631b72	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x238c7a33	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x23a05627	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c04357	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24366215	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2447f7f2	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x245ec598	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x24694b90	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x246d36d2	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x247552e4	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x24757cac	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x24909a8a	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x24a4610a	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x24a7932f	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x24afb9dc	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x24bebf76	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24d2a87c	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x24dde97e	eisa_driver_register
+EXPORT_SYMBOL	 vmlinux 0x24e87bb1	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x251448d7	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x25514db0	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x2553b122	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257b6bce	amd_iommu_rlookup_table
+EXPORT_SYMBOL	 vmlinux 0x257f50b3	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x2586c8f8	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x259c6c12	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x25a6b70d	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x25b98730	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x25c6808f	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x25cb0e55	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x25db1577	do_trace_write_msr
+EXPORT_SYMBOL	 vmlinux 0x25e737d8	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x26132fbb	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x26153974	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x261ba7c5	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x262b56ea	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x262cf210	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d8ddf	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263ed23b	__x86_indirect_thunk_r12
+EXPORT_SYMBOL	 vmlinux 0x264954f3	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26948d96	copy_user_enhanced_fast_string
+EXPORT_SYMBOL	 vmlinux 0x269f0fde	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x269fae7a	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x269fe17a	can_nice
+EXPORT_SYMBOL	 vmlinux 0x26a4ed0c	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x26b03525	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x26cc6688	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x26d24cb8	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x26d48ecc	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x26d6dcbb	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26ebcc72	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x2708ebcc	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x2718ff6e	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x2724fcde	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x272aa84c	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x2740877b	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x27564eae	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x275f4d75	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x2778b57b	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x277f689a	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x2797f5e2	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x279f329c	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x27afc455	dqget
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27be39e9	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27d17785	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x27d22608	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x27db0619	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x27dcf8d0	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x27ed3d77	start_tty
+EXPORT_SYMBOL	 vmlinux 0x27ef9863	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x27f715c9	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x27f7ebd1	iunique
+EXPORT_SYMBOL	 vmlinux 0x2808d85b	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x2815d6f8	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x28248e98	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x283b092a	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x28629dbb	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287e2d52	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x2882a240	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x28904e3b	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x289f4101	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x28a83109	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x28ad8854	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x28ce080b	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x28d40d0b	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x28e09af1	iosf_mbi_available
+EXPORT_SYMBOL	 vmlinux 0x28fc532a	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x29073d09	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x290fa090	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x294044cb	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x2963b6eb	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x29690a58	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x29781fa5	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x29ad8e33	x86_hyper_type
+EXPORT_SYMBOL	 vmlinux 0x29d5e9dd	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29f1a0d3	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x29fa112c	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a32ab41	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x2a3f8a80	fb_is_primary_device
+EXPORT_SYMBOL	 vmlinux 0x2a4675f2	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x2a577219	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x2a577789	get_super
+EXPORT_SYMBOL	 vmlinux 0x2a70756c	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x2a757abf	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2aff38ef	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x2b1919a5	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x2b1c623d	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x2b518d98	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb2b57c	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bbb0b81	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2c03beed	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x2c118c36	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x2c2324bf	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c2f59f2	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x2c3f2627	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x2c404690	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c5ad910	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0x2c6fdb05	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x2c819556	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c8e304b	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x2ca512b2	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x2cab8f03	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x2caf63d1	topology_phys_to_logical_die
+EXPORT_SYMBOL	 vmlinux 0x2cb5ec42	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x2cbaefb9	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cd21c64	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2ceef50c	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x2cefcd45	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cfacf6e	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x2d00ca9b	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d28001d	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d365338	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d493c06	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d62bf7b	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0x2d687f04	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x2d708930	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x2d847a7e	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d968e9c	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2dad260c	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dcbf6d0	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0x2dde6f84	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x2de310ea	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x2de3a409	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x2de5f4d1	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x2de6f285	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x2deaa907	inet_release
+EXPORT_SYMBOL	 vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e1dd58f	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x2e1e4bbd	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x2e268730	mntput
+EXPORT_SYMBOL	 vmlinux 0x2e26ba91	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4b39ec	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x2e5dcc91	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x2e66c9d8	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x2e706e95	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x2e8130fe	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x2e828cc7	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x2e992389	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x2e9de0f8	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x2ea2c95c	__x86_indirect_thunk_rax
+EXPORT_SYMBOL	 vmlinux 0x2ea683e5	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ecf5f46	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee1b6f5	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2eed8088	__put_page
+EXPORT_SYMBOL	 vmlinux 0x2ef34f71	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x2ef5fb67	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x2eff32db	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f0564a9	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x2f0e8596	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x2f110a16	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x2f23ef8f	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x2f26f81d	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f2f1a37	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f44e05a	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x2f4d3558	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f57c469	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x2f69bfac	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x2f74f53c	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f83b49a	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x2f8beaa7	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x2f96f993	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fccec10	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x2fd00483	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x2fd2ff69	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2fd3109c	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fe404ba	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x301fa007	_raw_spin_unlock
+EXPORT_SYMBOL	 vmlinux 0x3022a43a	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x3023d740	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x303b339e	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0x30466030	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x3048ab79	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x3049b216	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x305a9868	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x307dd669	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x30943777	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x309554ce	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30dd61ba	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x31130aee	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x3151d7cf	seq_read
+EXPORT_SYMBOL	 vmlinux 0x317054bb	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x317f7876	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x3191033e	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x319517f5	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x319970cb	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31a7e51a	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31e0e58d	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x31efe60d	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x31fe8a08	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x32023d05	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x320bcab2	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x320e287c	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x321adaeb	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x32227790	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x32239c15	vga_switcheroo_register_audio_client
+EXPORT_SYMBOL	 vmlinux 0x322c5fd0	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x32339879	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x3248b830	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x324927ba	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x324b7305	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x3251306f	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x3298487d	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32af6903	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x32c605a2	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x3318f872	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x3324ef3b	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL	 vmlinux 0x332f9da8	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x333490ab	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x33358029	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x33455f23	free_task
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x337b33f8	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x3386da1d	__module_get
+EXPORT_SYMBOL	 vmlinux 0x339aca48	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x33a6de49	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x33ad6b58	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33be29ca	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x33c5cef1	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x33ca91ab	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x33ccdef7	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x33d491ce	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x33ef039f	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x33fd9da4	acpi_get_gpe_device
+EXPORT_SYMBOL	 vmlinux 0x3441445f	msrs_free
+EXPORT_SYMBOL	 vmlinux 0x347c5119	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x3489859f	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL	 vmlinux 0x348dc0b8	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x3491b90b	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x349fcc81	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x34a02f13	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34b5af12	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x34b93c56	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x34bbde15	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x34e16c3d	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x34e67c0d	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f89363	acpi_terminate_debugger
+EXPORT_SYMBOL	 vmlinux 0x350dc922	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x350fe490	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x3513e988	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x35323107	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x353ccfb0	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x35463c7f	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354b4a1e	acpi_ut_trace
+EXPORT_SYMBOL	 vmlinux 0x354f3199	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x35656c64	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x3565745f	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x3569d968	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x359068d3	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a181aa	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b09767	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x35c2c870	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x35d908a1	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x35d9949a	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x35e546b4	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x35eed988	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x35fb03e1	audit_log
+EXPORT_SYMBOL	 vmlinux 0x36001f36	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x3606531c	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x361bc853	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x3625a90c	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x365ab735	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x36796c0b	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x369659e4	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x36b19665	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x36cb0806	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x36ec7887	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x36f70ec7	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x3702ed4c	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x3711f0c0	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x372d9630	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x3731b917	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x374f9afb	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37584cf0	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x3768bdf0	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37ad8eb1	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b75ff6	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37cfab9d	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37e2fd8d	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x37e35b4f	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x37f26b14	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x37f8b8f3	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x381c5f06	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x381ee43d	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x38248797	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x382c3dee	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x383ebc09	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x385683eb	fget
+EXPORT_SYMBOL	 vmlinux 0x3857df63	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x387ed88c	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x38944ab2	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x3897f24e	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38ac4fe5	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x38b39d74	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x38b9ada6	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x38ba0bf2	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x38be38c3	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x38c7462e	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x38d9c519	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38e4b44a	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x38ebc68b	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0x38f0a44e	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x38f1c925	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x39081193	__max_logical_packages
+EXPORT_SYMBOL	 vmlinux 0x390b8e2b	__brelse
+EXPORT_SYMBOL	 vmlinux 0x390f3755	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x391adb7c	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x391f8cfa	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x3924117d	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x39273477	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x39355b91	sk_free
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x394db3ef	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x3972975e	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x3982b4da	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39a361e4	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39d432c3	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x39e3c030	do_trace_read_msr
+EXPORT_SYMBOL	 vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL	 vmlinux 0x3a12be53	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2d1dfa	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a30e14d	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL	 vmlinux 0x3a42abb3	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x3a4ed1ad	dput
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a6e1471	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3af5ff4b	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x3af60fd8	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x3afa5d00	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x3afb8f90	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b029f48	acpi_install_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x3b0cccbf	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0x3b1cccd5	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b25f4e7	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x3b2a1d55	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b36d265	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x3b51e702	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x3b61e1a6	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x3b623ed6	translation_pre_enabled
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b83610f	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b942718	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x3bc15ead	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3beccef6	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x3bfa0cd2	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x3c0657e2	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x3c14a596	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c34548e	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x3c3f1451	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c427f67	cpu_die_map
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c4f4200	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x3c5c710c	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x3c66cd42	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c910ab4	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x3cb2e6a2	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x3cb9eea0	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x3cdc6d74	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x3cde9f97	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d07c933	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x3d08ba68	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x3d0c6b56	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d271433	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5b9a7a	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d7f4c10	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x3d8da4ce	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x3d92fb55	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x3d991fe7	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x3da171f9	pci_mem_start
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3db100e5	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x3db1f001	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddc6c04	x86_bios_cpu_apicid
+EXPORT_SYMBOL	 vmlinux 0x3df31aa5	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e0b50bc	filp_open
+EXPORT_SYMBOL	 vmlinux 0x3e2a10f2	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2e6f00	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x3e40bf61	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x3e504c1f	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x3e5d3f02	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x3e7e8b7c	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3eac8797	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x3ec85920	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x3edd2441	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f005ecd	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x3f04d395	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f09307c	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x3f0b1d5a	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f1e9d1e	find_vma
+EXPORT_SYMBOL	 vmlinux 0x3f3e2a75	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x3f421b5d	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f483fb4	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f55ec69	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x3f5911ba	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x3f606fd1	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f8e009e	bdevname
+EXPORT_SYMBOL	 vmlinux 0x3f9a771e	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x3fb0fb84	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x3fb78cd3	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fd41e3b	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3fe456ad	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x3feea459	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x3ff130a6	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x402fc163	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x403ddd24	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x4054b1bf	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x4055a920	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x4059874b	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x4078f652	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x4087a9bc	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x408c9e69	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b242c5	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x40c3c05b	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40cbdd5c	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x40cfb8e9	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40ef9e61	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x40f5e324	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x40f6e742	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x40fc5e82	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x41203ede	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x4139a9d1	vga_switcheroo_unlock_ddc
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414fd487	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x41610d73	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x416c3b00	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4187c3cd	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418fe706	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x41970b07	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x4198ca95	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x41b9738e	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x41c89c10	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x41ea6cc9	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x41f13f40	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x42129354	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x4217fd31	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x42322967	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x4239efb5	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424f1f6a	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x4272e2e6	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0x427dbc97	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x427ed76f	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x42882ffe	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x42905b31	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x429a30cb	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x429dd299	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42c33148	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x42e95d38	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x430c1e4c	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x431a9a22	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x432a05f1	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x432af806	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4345468d	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x4374f863	simple_open
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x437ec18e	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x438d5e42	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x4396cbe2	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x439e7f35	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x43a19e5f	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x43b0c9c3	preempt_schedule
+EXPORT_SYMBOL	 vmlinux 0x43b2578a	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x43b39704	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x43d9845c	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x43e2cc74	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x43e4304b	may_umount
+EXPORT_SYMBOL	 vmlinux 0x43ea2ed4	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x43f1ce77	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43f8ce96	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x4418a849	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x44414ff2	iosf_mbi_unblock_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x445a7d33	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x445a81ce	boot_cpu_data
+EXPORT_SYMBOL	 vmlinux 0x445ec496	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x447fc445	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x44816848	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x44902cff	acpi_enable_event
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44a1bf29	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL	 vmlinux 0x44c5c23c	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x44d746f4	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x44e042b5	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0x44e2af51	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x44e72727	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44f6e55b	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x4539ab50	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x4546f7a0	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x455d347f	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x4574f267	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x459058fb	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x45953f48	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x459b9af6	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x459c41ee	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x459f039c	file_modified
+EXPORT_SYMBOL	 vmlinux 0x45b794fb	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x45c0b2e2	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x45c25e50	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0x45d02f65	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x45d246da	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x45e1e82d	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x45e2f33d	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x45e37d0f	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x45e69e01	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x45e8d7b5	native_write_cr0
+EXPORT_SYMBOL	 vmlinux 0x45f18c61	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x46080971	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0x4616475b	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x461d787f	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x461f6844	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x4629334c	__preempt_count
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x463739df	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x463b5f50	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x4662521d	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x4690e0c6	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x4695a8fd	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x46994529	kern_path
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46b7700f	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46c7bc9c	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x46c80d76	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x46dd45fd	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x4709d788	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x470ec90a	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x4719f511	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x47221322	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x4740b3bc	xen_arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x475949e1	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x478a4fff	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47a2d052	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x47c42a22	cpu_tss_rw
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47ce7bc8	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x47d52bd3	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x47d552fb	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x47d831c4	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x480716fe	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x480ed21b	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x480ef5ce	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x481ebf02	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x4832cb67	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x48409c08	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x48476bcb	intel_gtt_insert_page
+EXPORT_SYMBOL	 vmlinux 0x484cdcd1	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4857a994	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x4876b75a	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x4880c2f0	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x488a3d3a	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x488f27c9	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x489369a0	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48aa8c03	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48be6c3c	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48c49ac1	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x48cc457d	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x48d50e79	amd_iommu_register_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x48d51115	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x48dd0cdb	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x4920b848	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0x49263911	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493af84b	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x493fcc8f	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x4945e0b3	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x49464d41	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x495e378d	__pv_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x4968441a	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x496c5350	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x4978ce85	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499e5df3	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49a12352	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x49a16cd3	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x49a81097	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b26c5e	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49c48ed1	get_amd_iommu
+EXPORT_SYMBOL	 vmlinux 0x49ffc3ba	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4a144c89	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0x4a249500	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x4a24cd0a	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a4f8fef	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x4a6f9f3b	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9780f2	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x4aa96d90	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abd7a6c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x4ac4aac7	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x4acad3a5	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x4adbd527	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x4adc0609	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afbfc57	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b249c8e	amd_iommu_pc_get_reg
+EXPORT_SYMBOL	 vmlinux 0x4b4e0325	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x4b5354c9	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x4b542031	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b6c19a8	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x4b75b5d7	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4b79d3b7	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x4b914bdd	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x4b98574c	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4bd48300	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x4bdad29d	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4c05ab2c	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x4c0729c2	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c157280	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x4c1e4848	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c43862f	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x4c5bdb6d	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x4c6b5a19	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0x4c778b7c	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x4c84ea72	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x4c89d79a	current_task
+EXPORT_SYMBOL	 vmlinux 0x4c8b4098	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x4c9d28b0	phys_base
+EXPORT_SYMBOL	 vmlinux 0x4cae24d7	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc6eb4f	pid_task
+EXPORT_SYMBOL	 vmlinux 0x4ccc6bde	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x4ccd378a	_raw_write_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0x4cd1281f	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x4cd5bc5e	rdmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0x4cdecd75	skb_put
+EXPORT_SYMBOL	 vmlinux 0x4ce34fcd	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x4cf85b0d	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x4d163d34	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d24238e	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x4d2bc253	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d2eb9d3	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x4d472b22	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x4d56ded3	serio_close
+EXPORT_SYMBOL	 vmlinux 0x4d673ebf	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d8c64e2	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x4d8d2be5	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da101ff	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x4dabbc80	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x4daea075	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x4db03010	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dcbc223	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x4dcdcfe7	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x4ddf7a18	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4deb758d	eisa_bus_type
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4df8f196	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x4e01acb0	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e393b3f	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x4e441774	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x4e47905c	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x4e4b602d	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x4e4c467d	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e510828	import_single_range
+EXPORT_SYMBOL	 vmlinux 0x4e643799	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e814601	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x4e9ea227	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4eceabec	skb_append
+EXPORT_SYMBOL	 vmlinux 0x4ecfac25	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x4f016dd0	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x4f1301b1	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x4f187b89	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f32a83f	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x4f43e58c	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f971560	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x4f985ea1	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x4fc327ca	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fc67935	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x4fcc8ad2	ex_handler_uaccess
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5009c88f	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x5015b123	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x501e0401	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x502f4a32	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x5037ff9a	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x50472da3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x508d8093	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x509e3000	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a7bdf4	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x50a8d24d	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c49ddb	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d68377	arch_phys_wc_del
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x510145c1	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x51159148	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x516aeb59	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x518e0a2f	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x51a36377	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x51aa89d1	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51e81b39	proc_create
+EXPORT_SYMBOL	 vmlinux 0x51fcfa3a	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x52269122	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x5233b89f	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x523bfe4d	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x5245b5ef	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x524cdf58	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x52543d96	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x52828d53	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x52837d86	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x5283a6ed	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52b4fd06	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x52c089e2	new_inode
+EXPORT_SYMBOL	 vmlinux 0x52c60873	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52dcd6d7	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x52e40ad2	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531a9d12	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL	 vmlinux 0x531bbe52	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x53327e3d	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x53569707	this_cpu_off
+EXPORT_SYMBOL	 vmlinux 0x536013f3	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x536f566e	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53c379ca	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x53e0559f	dev_load
+EXPORT_SYMBOL	 vmlinux 0x53f3f16d	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x5402e206	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0x541026fb	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x54151cb6	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x54175c5f	acpi_read_bit_register
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x5428b621	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x542f68b5	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x5435d8fb	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x544f40f5	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x545f08bd	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x54695777	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x54767fff	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x547a7222	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x547e3344	acpi_disable
+EXPORT_SYMBOL	 vmlinux 0x5494ee3a	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x54968198	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x549aef53	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x549c9572	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54b67d7e	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x54bf6488	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x54cb9142	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x54d2206d	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x54de610f	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x54dfacf4	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x54e20306	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54e8524d	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x54e8a709	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x54ee68b8	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x54ff839d	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x55005daf	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x55041108	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550faffa	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551d24aa	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x551e4676	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x554355b9	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x5546e0cb	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x554bbe3a	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x555e1a24	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x55626972	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x556422b3	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x556a8878	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556cca46	x86_apple_machine
+EXPORT_SYMBOL	 vmlinux 0x556e539b	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x557c283d	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x5592a917	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x55d193a2	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x55dfcddb	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e5a643	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x55ec9799	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x55eee18f	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x55f95e07	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x55fff5cb	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x56089659	padata_free
+EXPORT_SYMBOL	 vmlinux 0x56271299	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x562be92f	ilookup
+EXPORT_SYMBOL	 vmlinux 0x562cd033	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x56361b84	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x565993db	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x565ee4cf	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x567a1779	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x56932407	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x56963c8b	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x56af4a6b	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x56b76439	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d58049	read_code
+EXPORT_SYMBOL	 vmlinux 0x56f3ebbb	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x57105c99	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x5745c026	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x574980cf	eisa_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x574afc45	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x5755e328	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x5757f506	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x577567c3	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x57765017	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x57770b1c	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x578268c6	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x578fbe18	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x578fc6ff	console_start
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x579f56f0	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x57a5842c	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x57a83d62	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57c1e678	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0x57dac8ac	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x57de5c35	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x57e56f1d	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x57fbb4eb	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x58051a16	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x580b132f	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x58289b6b	bdget
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x5840e3d3	finish_open
+EXPORT_SYMBOL	 vmlinux 0x584593ba	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x584823a6	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x584c5e0d	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x585695f1	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x587f22d7	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58a40bfd	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58b92a6c	mount_single
+EXPORT_SYMBOL	 vmlinux 0x58cd5df9	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x58de5217	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58f898a3	dqput
+EXPORT_SYMBOL	 vmlinux 0x59331854	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x593c1bac	__x86_indirect_thunk_rbx
+EXPORT_SYMBOL	 vmlinux 0x5948b586	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x595a685b	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x597f54c0	native_restore_fl
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59b50232	init_net
+EXPORT_SYMBOL	 vmlinux 0x59b58bf3	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x59c4da35	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x59d00a3b	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x59d07a02	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x59d8bdd8	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x59e28e7c	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x59f39e24	vga_switcheroo_client_probe_defer
+EXPORT_SYMBOL	 vmlinux 0x59fe229c	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a0ea170	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x5a22972e	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a33e5e8	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a51a2aa	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x5a54f9e7	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x5a5a2271	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5a745e36	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x5a767ab1	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x5a8a38d9	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5aa2cf58	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x5aa620c7	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x5ab6b009	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x5abd71a9	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x5ac6e6dc	dma_ops
+EXPORT_SYMBOL	 vmlinux 0x5ade8f4a	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b36e8a5	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b4473c6	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x5b500efa	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b640ac4	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x5b64e285	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x5b6fc5ac	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x5b75a5d9	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x5b797ac3	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x5b80b3e9	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x5b95662d	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x5ba2e25d	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x5ba376e5	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x5ba44f6c	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x5bb52e47	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bf1e267	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x5c033716	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x5c089a1f	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x5c1f485f	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x5c267fcc	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x5c34e570	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c488662	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x5c53df85	vga_switcheroo_get_client_state
+EXPORT_SYMBOL	 vmlinux 0x5c55021f	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x5c5b7adc	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x5c8314c0	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0x5c86b256	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x5c969c16	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x5cad9e3a	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x5cbedc02	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x5cc05fd9	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x5ce618e9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5cf2e459	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5d024b93	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x5d04158d	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x5d12f39e	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x5d1986c9	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x5d3b7e4d	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x5d3d6df4	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x5d44fb09	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d5294ed	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d95376c	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x5d96e33f	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x5dad8a22	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x5dc6dfef	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x5dd8f72a	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x5ddd11e0	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e18c2b3	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x5e301450	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e3e5025	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x5e43c768	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e826840	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed3ebc8	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x5ed5156a	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ede071c	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x5ef42ef8	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f033ece	dst_release
+EXPORT_SYMBOL	 vmlinux 0x5f045330	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f1c2266	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x5f22456d	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x5f27fca6	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x5f291ae3	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x5f4b6616	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x5f4f9051	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x5f56663b	rdmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f7385f2	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f9b06af	dump_align
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fc84b6d	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x5fef341d	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x5ff65848	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x60090149	init_task
+EXPORT_SYMBOL	 vmlinux 0x60117f74	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x6015d9fc	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x60506040	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x6085601b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60afd9aa	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x60b084fe	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x60b301be	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60bfa3c3	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x60cef1df	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x60d1efa2	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x60d69b48	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x60d845fb	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60e73344	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x60f0dfea	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x611881df	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x61265407	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x6133c2a4	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x614f816b	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x618c20c0	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61a8b754	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x61b3ff17	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c4d8a1	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x61d174c3	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x61dff3fd	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x621ad611	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x6226b9fa	machine_to_phys_mapping
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6231a8fc	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x62608c82	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x62a5b670	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x62b33109	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x62b578c6	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62ca6e2f	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x62f4b28f	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x62fd0331	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x6315881c	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x632f4955	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x635cf96d	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x636257f7	get_ibs_caps
+EXPORT_SYMBOL	 vmlinux 0x636803b8	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x636cfde4	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x63792ca6	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x637e00dc	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0x63824d1c	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x639980ea	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x63a004bb	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63ac993a	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x63b01fe9	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x63c2df08	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c4f09e	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63d7dffc	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x63e82c7b	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63fa5a8e	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0x64022070	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6426a7f7	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x642a92c4	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x643e1bfc	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x6444fc46	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL	 vmlinux 0x6455a906	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x64653cbf	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a58991	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b3fdf3	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64f08406	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x650ccc97	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x6532cf5f	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x654148ac	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x654b4625	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x655c6d96	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x6563bc00	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65b992ac	xen_alloc_p2m_entry
+EXPORT_SYMBOL	 vmlinux 0x65c0cc8d	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x65c64538	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x6602abd0	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x660e584f	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x66118873	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x661ff895	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x662b1ae1	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x663182c9	acpi_get_gpe_status
+EXPORT_SYMBOL	 vmlinux 0x66319578	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x664382e7	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x665796ce	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x66597b77	seq_write
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6663a3e9	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x6695bd02	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x66964000	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x66a693ba	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x66a79db2	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66bedc88	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66e62661	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x6700d06b	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x6732772f	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x675bcc15	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x6770027b	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x6775bdaa	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x677743df	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x679ef5ba	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67c4aaec	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x67dd29ca	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x67def46c	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x67e32099	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x67f1b3e8	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x683575f0	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x68446529	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x6848e028	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x684b875d	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x6851664e	wrmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x6855b08a	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x685e1642	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x685f1821	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x686c726f	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x687006b0	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68826caf	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x68987fb7	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68ae8ff8	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x68b17e5e	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x68d3a19f	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x68ef4b43	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6900ccc0	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x6905b4bf	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x690b9842	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0x690ebb94	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x69196517	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x691e0bd4	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x691f3ed4	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x693d2ef2	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x6954481c	key_move
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x697d514e	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL	 vmlinux 0x698eb2cc	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x69908d4b	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x6990ddda	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x69acd42c	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x69acdf38	memcpy
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b73ad8	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69ecb1f4	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x69f00ba0	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a14f9b5	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x6a1dae1b	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x6a261b78	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x6a4aae7e	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6e2f66	vmap
+EXPORT_SYMBOL	 vmlinux 0x6a7e2fc1	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x6a90e470	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6aa173f7	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x6ab0e1d7	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x6abd5706	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x6ac5947b	amd_iommu_device_info
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6aed8250	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b00584f	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x6b09a53a	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x6b0d6b5f	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2d350d	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b589e8b	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5e00cd	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b66c0de	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x6b7482f9	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x6b8283be	convert_art_to_tsc
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b9c92a9	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x6bb5d58a	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6c055cca	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x6c1bb246	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x6c1c2271	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c269a46	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c2b77ea	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c607a83	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c6c0184	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x6c7e25f1	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x6c8f410b	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x6c9c19f9	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x6cae3fd3	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cb96b13	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x6cbf5aac	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x6cc0e7f3	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x6cc97683	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x6cf384f3	misc_register
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d72d83a	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x6d7465ef	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x6d7abe02	first_ec
+EXPORT_SYMBOL	 vmlinux 0x6d7d90ef	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x6db84fb2	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x6dc1e9ae	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dc4a26c	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6de5c858	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x6de7c067	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x6deda4ec	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e0a6e6f	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e1d2500	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e5e031c	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x6e695c52	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e7d0795	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea7575d	acpi_dispatch_gpe
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6eb0f66b	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x6eba97a7	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x6ec5d72d	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x6ecd0a95	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x6ecd1921	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x6ecf6823	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x6ed52073	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x6ed7d836	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6edb847f	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x6ee5e6eb	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x6eefad94	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x6ef5779f	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x6f0442ec	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f21f7a5	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f5c8ed5	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f80daa0	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6f8db9c0	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f98f8e7	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x6f9e5274	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x6fa12e88	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x6faa1fb1	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdb895a	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fe812b4	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x700769d8	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x7027d8af	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x7040fff9	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x7055b050	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x7071877b	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x707324aa	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x70862367	stream_open
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x709366e6	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x70976eb1	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70d48812	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x70e531e7	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x70eb5ff3	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x70f167c0	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x7103dd07	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x710e5808	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x71149bc7	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x71456af4	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7159d02a	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x716962d6	km_query
+EXPORT_SYMBOL	 vmlinux 0x716ea77e	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x7186dc18	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0x7192c609	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x71a16904	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x71a4fa00	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a6e0bd	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x71b99d9c	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x71e962d2	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x71ee9f5b	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x71fa0338	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x7205ef2b	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x72137e3a	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x721c2a91	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x721e46a3	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x72272c33	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x7231bd4a	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x7260e249	___preempt_schedule_notrace
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x728754a1	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x7287eeb1	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0x729b70f3	path_get
+EXPORT_SYMBOL	 vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72d1b801	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x72d55301	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x730ab1e6	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x73179242	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x732aae41	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x73317c0e	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x7333cdef	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x73352c9f	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x734bb2bd	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x735ec615	console_stop
+EXPORT_SYMBOL	 vmlinux 0x73638fd6	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x737d3162	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73903c39	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x73b79eae	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x73cba418	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x73cf82f3	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x73dd54eb	irq_fpu_usable
+EXPORT_SYMBOL	 vmlinux 0x73e836ba	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x74016476	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x743e9814	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x74412067	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x744cb7e0	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x746b3152	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74c4d728	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x74c6a439	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x74d0e925	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x75293b83	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x7536447e	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x7539eea2	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x7541f9c3	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x754d539c	strlen
+EXPORT_SYMBOL	 vmlinux 0x7560d6c2	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x7574cd3e	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x75943e25	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0x75b9de4a	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x75ba5f21	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75e443ed	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x76147314	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x7620fcc2	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x7622a1fe	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x763de887	set_pages_array_wb
+EXPORT_SYMBOL	 vmlinux 0x763e6126	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x76410fca	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x76513e62	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x767dce4b	acpi_disable_all_gpes
+EXPORT_SYMBOL	 vmlinux 0x767ddb02	set_memory_wc
+EXPORT_SYMBOL	 vmlinux 0x767e9d1e	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x7680d7a6	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76aa25a8	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x76c65d51	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x76d3a84a	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d438cf	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76d9aac2	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x76dfbb6f	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x76fb08a7	amd_iommu_unregister_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x7726ad4b	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773904ce	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x7746338f	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x77466398	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x774ea254	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x776a7e96	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x77702b41	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x7770737d	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x77778858	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x778b6a04	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x778e2f5b	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779d942a	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x77a34197	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x77b0fed9	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x77ba4c2e	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77bea9d3	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x77de7428	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77ecaa73	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x77ee6bec	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780af8f7	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x780fdfd1	intel_enable_gtt
+EXPORT_SYMBOL	 vmlinux 0x7812c047	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x78152f90	file_path
+EXPORT_SYMBOL	 vmlinux 0x78207764	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0x782c0aac	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x78526d0a	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x785bc02d	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x7886315b	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x7888d14e	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x788bb74e	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x7897d697	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a00289	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78d20c26	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x78d48a31	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x78dce1ae	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x78de3548	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78fb2e04	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x7904a9f5	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x79112dc2	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x791799db	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x791ba12e	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x792ad6bb	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x793419c1	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7977866f	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x799a613d	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79bf9e80	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x79c4ef4e	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x79c5cc4f	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x79df9633	ioremap_encrypted
+EXPORT_SYMBOL	 vmlinux 0x79f78338	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x79fdf383	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x79fe8c80	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1a31c1	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a20b3c1	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a2b4538	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x7a311925	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a5b43eb	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x7a604259	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x7a71c33a	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x7a80d4c5	tso_start
+EXPORT_SYMBOL	 vmlinux 0x7a88da87	iosf_mbi_write
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7a9bed01	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ae5a5eb	open_exec
+EXPORT_SYMBOL	 vmlinux 0x7aec9089	clear_user
+EXPORT_SYMBOL	 vmlinux 0x7aff77a3	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b0c799e	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x7b193790	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x7b246fb9	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x7b253507	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x7b2ceea1	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x7b35e8ea	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x7b39284a	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x7b42a9a5	simple_link
+EXPORT_SYMBOL	 vmlinux 0x7b49ced1	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b52fb4c	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x7b5ad5d4	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x7b5b7697	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x7b6f59fd	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bb8eb77	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd2476	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x7bbfa83b	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x7bcf7fd5	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c4d0c4f	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x7c5d7dcd	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x7c67ec1a	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x7c7377d2	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x7c76d1da	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cd0a904	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x7cd70823	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x7cd8d75e	page_offset_base
+EXPORT_SYMBOL	 vmlinux 0x7cde91e8	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d20163a	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x7d241b6d	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x7d2fcf41	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7d31b630	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x7d3fddda	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d4de67a	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x7d51eecb	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d61ac6d	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x7d628444	memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x7d641281	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x7d67a9dd	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x7d68d47f	bio_init
+EXPORT_SYMBOL	 vmlinux 0x7d7c5154	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x7d82c53a	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x7d839080	__bforget
+EXPORT_SYMBOL	 vmlinux 0x7d90aef4	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7db0a6fe	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x7dc933d6	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x7dd04840	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7de8ca75	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0a5c30	ex_handler_ext
+EXPORT_SYMBOL	 vmlinux 0x7e1273d4	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x7e1371ee	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e5259f5	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x7e526bfa	__x86_indirect_thunk_r10
+EXPORT_SYMBOL	 vmlinux 0x7e7bcf26	acpi_map_cpu
+EXPORT_SYMBOL	 vmlinux 0x7e899a01	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x7e8df4f7	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x7eae4112	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x7ebe222c	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x7ec62884	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ee67c5e	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x7ef9d3fd	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x7f005f1d	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f021cf8	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f10ca42	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f36d112	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x7f3f7a5f	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x7f47e59b	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7fb23b57	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x7fda3abf	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fec3a15	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0x7fedf959	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x7ff538f6	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x7ff60b4a	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x7ffe969a	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x801b4170	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x8027721b	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x8028aa8a	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x802c9b51	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x803ae1a0	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x804214d9	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x804af87c	wrmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x804df5a7	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x8074ee0b	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x8080c393	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x808f2aff	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x809989a3	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x809fb88c	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x80a657af	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80cd75d4	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80d9b7c6	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x80dc0be6	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x81035ab0	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x810939fa	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8115ccc7	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x811c0a42	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x812ebde8	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815f10a5	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x816a2c30	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81ae0d5e	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81b7afdc	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x81c7acbd	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x81cdef33	pci_biosrom_size
+EXPORT_SYMBOL	 vmlinux 0x81d16e5f	dns_query
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81fd4db0	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x8216bb7c	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x821e01a1	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x82271de1	pps_event
+EXPORT_SYMBOL	 vmlinux 0x823679ed	ihold
+EXPORT_SYMBOL	 vmlinux 0x823c19ea	iosf_mbi_unregister_pmic_bus_access_notifier_unlocked
+EXPORT_SYMBOL	 vmlinux 0x823cbe79	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x8259228a	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x825ff856	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x8298a9c0	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82c8817a	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x82cdd2af	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x83027167	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x831683b8	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x83244899	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x833f73a5	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x8356e61d	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x8388afde	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x8397b601	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x839d5cb5	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83b0bbdd	drop_super
+EXPORT_SYMBOL	 vmlinux 0x83c03d19	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83c78635	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x83dad9be	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x83f86b4d	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x844e0b88	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x84a90b90	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84d4dbac	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x84f58299	legacy_pic
+EXPORT_SYMBOL	 vmlinux 0x84f9ad44	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x84fc5a12	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x85138d3a	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x851adb43	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x85394fd2	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x853c4cbc	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x854ef262	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x8592ea6c	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x85a43895	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85ba01fa	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85bd95c6	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x85c18288	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x85c5002b	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e3633d	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fbd5db	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x8608a026	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x8659513b	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x865a1bbc	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x867bc242	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86a29207	bmap
+EXPORT_SYMBOL	 vmlinux 0x86ba790d	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x86c55689	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0x86c67294	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x86c6919c	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x86c7272b	iosf_mbi_read
+EXPORT_SYMBOL	 vmlinux 0x86cc81fc	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x86d50c51	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x86ef1a56	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x86f27420	iosf_mbi_block_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x86f89d03	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x87204b14	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x872fb01f	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x87366f93	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x8739ad03	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x87879d74	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x87aab197	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x87b0316e	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x87b1e20c	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x87b3309c	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87cdcf92	phy_start
+EXPORT_SYMBOL	 vmlinux 0x87e32f92	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x8801b11d	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x881e90d4	get_cpu_entry_area
+EXPORT_SYMBOL	 vmlinux 0x882b6c44	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x883f040f	bdput
+EXPORT_SYMBOL	 vmlinux 0x884bde8e	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x8855e8e7	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x885fc790	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x887e0746	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x888e512b	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x8897c235	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x889c2f2d	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x889f8cb0	amd_iommu_complete_ppr
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88b695ee	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88fdff02	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x8906730b	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x891568cb	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x893ff618	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x8958be1e	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x8974c7f6	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x89786718	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x897a3cbf	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x89826b24	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x8993b457	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x89afc5e2	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89ba8870	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x89db8469	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x89f27fcd	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x8a05cdd3	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1f8677	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x8a35b432	sme_me_mask
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4a2c2a	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x8a53e9d2	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c7139	acpi_mask_gpe
+EXPORT_SYMBOL	 vmlinux 0x8a722e1d	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a83a6c0	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x8a900cf3	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x8a9274a2	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aae132e	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x8ab2e20e	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0x8ab91786	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8afff09f	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b12b05c	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x8b20e2a1	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x8b356805	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8b46c2ec	nvm_register
+EXPORT_SYMBOL	 vmlinux 0x8b47bd45	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b63184e	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0x8b7ceba2	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b88600e	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x8b8e4d49	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b966b63	sn_rtc_cycles_per_second
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b99e3c5	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bca6559	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x8bce336b	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8bd577d0	acpi_ut_exit
+EXPORT_SYMBOL	 vmlinux 0x8bdd216f	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x8be9e964	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x8bfd1b72	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x8c023391	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x8c0370ce	single_open
+EXPORT_SYMBOL	 vmlinux 0x8c03d9d8	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x8c0698bd	release_sock
+EXPORT_SYMBOL	 vmlinux 0x8c18fab1	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0x8c243a4c	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c302d1a	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c38ee81	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x8c42070b	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x8c44c8bd	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x8c488e12	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x8c5ec9a2	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x8c76faec	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x8c7f2fa3	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x8c9c8362	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cbb9ea7	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x8cc1dc21	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cc9f3f4	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x8cd0c6a5	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x8cd39fd9	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8ceb6af1	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x8cf6b887	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x8d112f62	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x8d21b4f1	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d569607	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d75ee8b	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x8d7694df	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x8d7f9c9f	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x8d8cc68d	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x8d903eb7	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x8d93325f	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8db22efe	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0x8db5c155	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df571ac	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x8df7e8d6	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8e07bc81	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e2d1236	ex_handler_wrmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0x8e2ef0f0	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x8e36e7af	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x8e5c882a	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e663d0f	zalloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x8e6f1491	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x8e914ab5	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x8e91c62b	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x8eb789ec	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x8ed8e2da	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x8ee6b2e6	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f03c8a0	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x8f0766f7	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x8f11e7d4	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x8f11eae4	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x8f2521a5	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL	 vmlinux 0x8f381f6d	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x8f38d383	ex_handler_default
+EXPORT_SYMBOL	 vmlinux 0x8f3db399	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x8f596b91	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x8f5e2c4d	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x8f6f74cc	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x8f709497	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x8f738456	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x8f80bf11	acpi_install_gpe_raw_handler
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fa3eed3	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x8faa379b	vga_con
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fd720a7	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x8fe1ad06	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x900dff85	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x9016f321	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x903095f1	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x90335b89	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x90409159	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x9059bcda	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0x905a569e	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x90710c3d	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0x90b184a5	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x90cc9135	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x90e092df	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x90e73b0b	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x91209729	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x912ca386	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x912da9dd	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x913724ae	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x915e64ba	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL	 vmlinux 0x9162b716	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9176145b	acpi_install_global_event_handler
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a6e6a4	vga_switcheroo_register_client
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b60dbc	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x91b910c9	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x91cf1be3	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x92192e87	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x921e842d	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923224be	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923cdfba	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x926bd9a6	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x9285df0d	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x9286d64e	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL	 vmlinux 0x928cefe4	get_acl
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92a51e56	acpi_debug_print_raw
+EXPORT_SYMBOL	 vmlinux 0x92aaabfb	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x92b553a6	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92ccfaf0	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x92cdfa25	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x92faeac9	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x93037151	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x932e0e25	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0x93660ad0	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x936b6a1c	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x9372310e	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x937f170f	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x9389b6fb	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x9399f31c	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x93a2dac9	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c7243b	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x93d1330f	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x9400a221	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x942e4c70	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x94317284	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x9434ef6f	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x9438945f	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x943fb606	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x944aa6b7	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x946377a2	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x947b037a	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94a530f2	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c7f62a	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x94cc2c2b	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x94f493f9	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x94fe503f	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x950bb2d8	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954c757f	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955a832f	___preempt_schedule
+EXPORT_SYMBOL	 vmlinux 0x95687123	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95c4ad87	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x95cbed73	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x95dadc58	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95edcbf7	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x95f4a4c8	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x9625695d	acpi_install_gpe_block
+EXPORT_SYMBOL	 vmlinux 0x9633cf02	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x963a05e6	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x964e6af8	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x966be5f2	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x96851ee3	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x969f0c49	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x96a9fe76	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96eab78b	iosf_mbi_modify
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x97144cec	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x9732ca8d	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x9732f3aa	skb_push
+EXPORT_SYMBOL	 vmlinux 0x9736b07a	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x97651e6c	vmemmap_base
+EXPORT_SYMBOL	 vmlinux 0x977acdf0	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x978ded38	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x9791ed0e	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b08e24	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97f16987	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x98046a03	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x980dd918	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x98230ed0	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x98356bb8	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x9842fe21	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x98494791	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x986569f6	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x9867837e	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x9872cad5	serio_open
+EXPORT_SYMBOL	 vmlinux 0x98779ad6	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x9882cb0c	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x988706d7	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x98918811	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x98b933e9	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c3d83e	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98db2f73	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x98db46eb	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98ea3e32	md_error
+EXPORT_SYMBOL	 vmlinux 0x9900b829	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x9910c6cc	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x99114b90	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x992aea83	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x9938fa08	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993c31ce	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x9944b9fa	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9961d9b2	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99c82c03	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a0ffb50	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x9a105d36	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a23ac28	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x9a302c34	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0x9a37990e	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x9a40b1af	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x9a4255f2	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x9a54fd58	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a5f5956	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x9a630758	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a78b03e	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x9a915305	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x9a94d7b3	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x9a99b26d	sock_create
+EXPORT_SYMBOL	 vmlinux 0x9aa1ac87	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x9aa98a22	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ad400e1	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x9ad7a582	iosf_mbi_assert_punit_acquired
+EXPORT_SYMBOL	 vmlinux 0x9aead066	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x9aeffabb	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x9af3dfa2	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x9af49edc	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x9af68464	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x9b0f0295	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b30e22e	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b3cf584	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x9b3f1d26	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x9b415ded	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b4dc7e4	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b5ec1f1	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x9b6499dd	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x9b6a5bef	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x9b6c1e02	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x9b704e33	arp_send
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b856c7e	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x9ba1d3ca	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x9bb5e463	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x9bc59f11	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x9bc8e479	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x9be5da1c	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x9c0bd733	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c1c81ae	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x9c1ff4c1	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c2b57ed	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x9c32bbac	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x9c6ba54f	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x9c6c33e7	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x9c70cf6a	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x9c71be5e	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x9c72e7ae	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9c94bcd7	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x9ca2e0b3	d_move
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb986f2	vmalloc_base
+EXPORT_SYMBOL	 vmlinux 0x9cbb8185	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x9cc79cae	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cd1e7c5	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce26295	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x9d099a39	acpi_remove_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d1d1bb0	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x9d56d1c7	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d6ea139	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x9d70541a	native_save_fl
+EXPORT_SYMBOL	 vmlinux 0x9d76ad17	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x9d79034e	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9d96922b	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x9dbb0699	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dc8ad4c	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x9dd40b77	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x9dd4c95e	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x9e0b0a8c	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0d001d	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e2c8167	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x9e3b4803	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x9e3c359e	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x9e3c4777	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x9e3f56c5	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e5d6cac	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e64fbfe	rtc_cmos_read
+EXPORT_SYMBOL	 vmlinux 0x9e683f75	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e8364eb	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x9e944176	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9ea5973f	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x9ea82644	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec23b1f	put_disk
+EXPORT_SYMBOL	 vmlinux 0x9ec2d7ff	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ec94378	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9eea0d75	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x9eef663c	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x9ef49383	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x9eff44f3	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x9f03ada1	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x9f15c166	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x9f22a48f	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f566199	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x9f7370c7	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fd72279	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe85308	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff0eb99	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa018958a	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa02b33bf	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0xa02b9a11	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0xa02bb5c1	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa0319bf2	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0xa034553e	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0xa0355256	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0xa03b29c3	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa04db135	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa0668f7b	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xa06b589a	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa084f79f	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b41630	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xa0c8ca9e	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xa0d0e14d	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xa0da1603	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f35bab	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f493d9	efi
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa122b757	make_kuid
+EXPORT_SYMBOL	 vmlinux 0xa12d2164	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0xa1498400	inet_getname
+EXPORT_SYMBOL	 vmlinux 0xa16b11dd	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa16db31e	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xa1865e64	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xa191dc02	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0xa1b84d47	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0xa1bedd72	amd_iommu_pc_get_max_counters
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1dffec3	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xa1f1670c	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xa1f3bc96	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0xa1f9a134	__x86_indirect_thunk_rsi
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa20e7020	path_put
+EXPORT_SYMBOL	 vmlinux 0xa2189d82	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xa21f4887	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa2361a64	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xa2498df6	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa250f34a	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0xa25b907a	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa26febd2	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0xa2854b03	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa28ef06e	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0xa292f3aa	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0xa2972137	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xa2b1733b	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xa2b23ba3	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xa2b858c2	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0xa2c29f6f	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xa2de7af0	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xa2edb860	d_path
+EXPORT_SYMBOL	 vmlinux 0xa3017196	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xa3019fa1	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0xa3273b21	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa3769135	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xa37b3788	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0xa37d53fd	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0xa38f21b9	amd_iommu_update_ga
+EXPORT_SYMBOL	 vmlinux 0xa3d37d02	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0xa3da5894	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xa3e4f871	acpi_initialize_debugger
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4191c0b	memset_io
+EXPORT_SYMBOL	 vmlinux 0xa42a377f	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xa42e9aa6	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xa47549cf	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xa47ab424	f_setown
+EXPORT_SYMBOL	 vmlinux 0xa47b049c	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0xa4a20ab2	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xa4b0bce3	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xa4b3689d	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4f52dfa	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0xa4faf62a	acpi_disable_gpe
+EXPORT_SYMBOL	 vmlinux 0xa5056338	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa507125e	acpi_clear_gpe
+EXPORT_SYMBOL	 vmlinux 0xa50bcff0	x86_cpu_to_apicid
+EXPORT_SYMBOL	 vmlinux 0xa51267c2	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa5385047	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0xa54f00da	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5531aad	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xa559c7cf	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xa565651e	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5cc81c7	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xa5ce28e5	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xa5dcd60d	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0xa5e55057	rdmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xa5ffc7aa	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa6150d92	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa6481ba8	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xa66c4789	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa6a01b9d	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xa6aab43b	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0xa6b269e5	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xa6b77f18	__quota_error
+EXPORT_SYMBOL	 vmlinux 0xa6b90547	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xa6ba255f	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xa6d5c757	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xa6df0211	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xa6dfa686	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xa6e41718	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0xa6e6b242	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0xa6e74d9f	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0xa6ec3901	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xa6ffc9ae	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0xa72cfb7d	ioremap_wt
+EXPORT_SYMBOL	 vmlinux 0xa746e8e8	current_time
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa7502d57	register_console
+EXPORT_SYMBOL	 vmlinux 0xa7566d1c	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xa778eda2	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa77e93b9	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xa785a4f2	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xa789fdb7	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7e23b9a	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa805ecfc	acpi_release_global_lock
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa836ba02	wrmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa846028d	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa85e7e35	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa8825b63	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xa895bad7	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa8b23827	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xa8b6f0ef	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xa8bde2d1	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8e17ac9	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8ea6a91	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xa8f5be00	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa9032921	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xa90495d9	amd_iommu_pc_set_reg
+EXPORT_SYMBOL	 vmlinux 0xa90854bc	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xa90a8ec4	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa91bb1e7	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xa94a09bb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xa94fcdab	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa96ec91e	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0xa97463c9	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa9785b49	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xa97d399e	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa99ea994	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xa9a8e17f	arch_phys_wc_add
+EXPORT_SYMBOL	 vmlinux 0xa9bf700f	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xa9c701fe	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xa9c72303	amd_iommu_pc_get_max_banks
+EXPORT_SYMBOL	 vmlinux 0xa9c7aa91	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xa9e8bf91	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa0afbd9	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0xaa2ca148	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa931004	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0xaabf3dbc	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xaac25fbd	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xaac6bd8e	textsearch_register
+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 0xaada4d2d	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaaf07653	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab0d94b3	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0xab0d966a	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xab1d4aef	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab39cea5	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab3b9bc4	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab65ed80	set_memory_uc
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab7bd986	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0xab7e60b5	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xab8470a2	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xaba12e9b	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabc33965	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabcae8f4	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0xabd241d9	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0xabe737fa	padata_start
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac10fec8	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac1d11fb	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0xac1e072c	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xac22ac40	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xac25a775	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac322a1d	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac7077ac	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xac73d4a3	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac8f4afc	vga_switcheroo_fini_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac96e7ef	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xac979e6c	notify_change
+EXPORT_SYMBOL	 vmlinux 0xaca55b35	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacadba44	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xacaeb08e	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xacc12baa	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0xacc1655d	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacdb8894	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0xacea8173	acpi_debug_print
+EXPORT_SYMBOL	 vmlinux 0xacebad39	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xacf07cd2	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacf785cf	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0cfd34	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xad1036a2	amd_iommu_activate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0xad11237e	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0xad1f0b91	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0xad206042	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xad2951a9	ex_handler_rdmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0xad3d4a5e	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xad48a2e0	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xad4d8304	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xad536c91	x86_cpu_to_acpiid
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad91e77f	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadb474e7	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xadb9df74	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadcca00a	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xadf0f9be	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae2a0e02	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae3355e0	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xae430458	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xae526af0	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae6892d3	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xae7acf2f	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xae7b2ff9	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xae9a3e32	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xaeb23ea2	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xaeb7018e	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xaebc5e23	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaebe87d5	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0xaed81cad	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0xaedd3504	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xaef00449	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xaeff1c8c	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf716ee8	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0xaf78da5a	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0xaf82efc4	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL	 vmlinux 0xafc3256a	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xafd5ff2c	amd_iommu_v2_supported
+EXPORT_SYMBOL	 vmlinux 0xaff86aff	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb0537840	sget
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb063b0ae	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xb082c305	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xb089e477	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xb08ace8d	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0bb081c	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xb0be626c	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0c920fe	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e602eb	memmove
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0f8299c	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb114b0ed	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb1195edd	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb124581c	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb12cc9d4	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0xb136709b	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xb13b05a5	module_put
+EXPORT_SYMBOL	 vmlinux 0xb149698b	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb17021a4	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xb19a5453	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0xb1a6ce08	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0xb1ad06a8	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0xb1bd257b	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xb1bdc2ff	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1cb8e77	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0xb1ddafc7	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb2016d26	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xb202fbb6	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb21e6e75	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xb2248baf	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb2422bc4	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb247a039	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xb24a58e6	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xb28aa026	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xb296b1fe	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2aba5af	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b17663	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2c28e80	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xb2d60942	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xb2d60e29	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0xb2daf84f	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xb2e07e1e	clk_get
+EXPORT_SYMBOL	 vmlinux 0xb2ea9a1f	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f74fb6	intel_gmch_remove
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30a2c08	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb31ba947	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32a5973	acpi_ut_status_exit
+EXPORT_SYMBOL	 vmlinux 0xb33113a6	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xb33fa4a2	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xb340399d	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb37a6436	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb37a8f2d	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0xb3863a67	acpi_set_gpe_wake_mask
+EXPORT_SYMBOL	 vmlinux 0xb39c9879	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xb3a2dfdf	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb3c5e736	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3ddf3cf	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb3f88a5f	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0xb3fa5209	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0xb3fb868c	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb40de036	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb43fa8c3	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb4748b62	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0xb47cca30	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0xb47fe821	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0xb488d7a4	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb493b1d6	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0xb4952947	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4ac1134	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xb4bcf1fc	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0xb4d567a9	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xb4e92384	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f6ae57	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0xb507317d	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xb50b2105	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0xb511d34e	mr_dump
+EXPORT_SYMBOL	 vmlinux 0xb52a3177	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL	 vmlinux 0xb53bd693	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb561d930	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb578ff0d	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5a81866	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab892d	uv_undefined
+EXPORT_SYMBOL	 vmlinux 0xb5c32f7f	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0xb5d787bb	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xb5e5876c	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb601be4c	__x86_indirect_thunk_rdx
+EXPORT_SYMBOL	 vmlinux 0xb60514c9	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0xb616ee25	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xb61b5277	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0xb6260069	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb6386bb2	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb63f5664	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xb64dd79e	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb6615304	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0xb664487c	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0xb665f56d	__cachemode2pte_tbl
+EXPORT_SYMBOL	 vmlinux 0xb66c93e2	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xb674a534	acpi_unmap_cpu
+EXPORT_SYMBOL	 vmlinux 0xb676d141	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb688b4d3	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6a977fd	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xb6c164af	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xb6c9e322	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xb6cdcac6	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0xb6d839c2	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xb6debf98	release_pages
+EXPORT_SYMBOL	 vmlinux 0xb6ecb724	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xb719b499	keyring_search
+EXPORT_SYMBOL	 vmlinux 0xb7280b42	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xb731e621	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb73a68f7	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xb7499ecf	processors
+EXPORT_SYMBOL	 vmlinux 0xb7593ddc	iosf_mbi_unregister_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xb7701fc9	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0xb770a540	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xb7872602	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb795441e	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xb79ba67b	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xb7a2cf77	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xb7b66d0f	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xb7b8d84e	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d0a2cb	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0xb7d38840	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xb7d9509b	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0xb80c5faa	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0xb80ce8f4	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xb814e18a	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xb82b2bbe	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb83f6e74	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xb8535db8	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xb86f74c5	free_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0xb8959843	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a271fd	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0xb8a6cb92	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9438c	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8bbf68f	seq_puts
+EXPORT_SYMBOL	 vmlinux 0xb8becb86	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xb8e191b6	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0xb8e84310	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xb8ea92ea	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xb8f1570b	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb90bc4c9	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb920b9e0	eth_header
+EXPORT_SYMBOL	 vmlinux 0xb93ab6e4	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xb93f17e7	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb94cc19a	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0xb9625c20	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xb97f7045	acpi_install_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0xb9950a98	convert_art_ns_to_tsc
+EXPORT_SYMBOL	 vmlinux 0xb99946a4	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9cf93d9	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xb9d86192	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xb9dccc32	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xb9e276cf	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb9e7429c	memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9f7c667	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xb9fee5b7	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba194a48	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xba1cd1d1	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xba2d1e4b	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xba39ff8c	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba6556c0	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xba7093c6	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xba7edc9b	arp_create
+EXPORT_SYMBOL	 vmlinux 0xba878c9c	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xbaa5bdb8	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xbac0a903	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbade451d	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xbae958fe	amd_iommu_domain_direct_map
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb080361	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xbb0dc2a2	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xbb111a38	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xbb13595e	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xbb1bac24	acpi_unregister_debugger
+EXPORT_SYMBOL	 vmlinux 0xbb1f2d08	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb5eaee4	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xbb633e5f	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0xbb66c51a	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0xbb692766	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xbb7936b0	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xbb8bea51	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xbb8e169a	vga_switcheroo_handler_flags
+EXPORT_SYMBOL	 vmlinux 0xbb9b0c7e	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0xbb9c5064	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xbb9f645f	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xbbd5ee51	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0xbbde4046	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0xbbdfbbd0	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc211413	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc42166b	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xbc4b7817	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xbc75e8de	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xbc8ba75e	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb18740	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xbcb36e69	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xbcb66639	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xbcbc72c0	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcbff7ad	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xbcc1d8f5	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbce7e2fe	unlock_page
+EXPORT_SYMBOL	 vmlinux 0xbcf752b4	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0xbd0bc1ed	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xbd2ebd0c	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xbd385320	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xbd423cba	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd65d6b4	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd7e9a21	d_drop
+EXPORT_SYMBOL	 vmlinux 0xbd9625d5	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0xbdb78006	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0xbdd118d4	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xbdf58a71	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xbdfb6dbb	__fentry__
+EXPORT_SYMBOL	 vmlinux 0xbdfc6a28	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xbe0110e7	acpi_set_gpe
+EXPORT_SYMBOL	 vmlinux 0xbe0bf3b7	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xbe0fbe91	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xbe1ffcd8	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xbe2a9a09	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0xbe31b87a	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe56b52f	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe66e1b3	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7994d4	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe80ba29	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xbe860ea0	dst_init
+EXPORT_SYMBOL	 vmlinux 0xbe8b4b66	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xbe954f97	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0xbe9f126a	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbf0d14a1	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xbf1ce92e	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xbf2a8dbf	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xbf2c712b	set_pages_array_uc
+EXPORT_SYMBOL	 vmlinux 0xbf3193ec	acpi_unregister_ioapic
+EXPORT_SYMBOL	 vmlinux 0xbf361baa	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xbf3dc99e	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xbf55f847	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xbf66111e	proto_register
+EXPORT_SYMBOL	 vmlinux 0xbf669b2c	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xbf674916	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xbf70493c	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0xbf7aa0b2	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0xbf7d1462	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xbf90ad31	sock_release
+EXPORT_SYMBOL	 vmlinux 0xbf932f5b	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfc14b18	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfcbd634	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xbfcf7c09	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0xbfdcb43a	__x86_indirect_thunk_r11
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff269aa	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc02bfd2d	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xc04970b5	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xc050a529	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xc056fedc	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0xc06fa8fa	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0aaded8	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xc0ad162e	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0xc0b191e8	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0c9f076	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0xc0e39896	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0xc0f0f6df	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xc0f5136a	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc108ba7f	acpi_register_debugger
+EXPORT_SYMBOL	 vmlinux 0xc1115fe8	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xc111ae64	intel_gtt_get
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc121991a	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xc128de9d	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xc1365323	acpi_enable_all_wakeup_gpes
+EXPORT_SYMBOL	 vmlinux 0xc137be92	dev_open
+EXPORT_SYMBOL	 vmlinux 0xc141f09f	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xc147683c	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc14f8e2f	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc168812d	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc16eadbb	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xc1761080	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xc1807f41	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0xc19602d3	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xc1c3b7c6	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0xc1d87ec1	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1fba8df	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xc20595e2	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0xc225869a	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0xc2260f38	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc2424e8b	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xc25ce1bc	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0xc265270b	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc26d3771	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xc278c965	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xc29957c3	__x86_indirect_thunk_rcx
+EXPORT_SYMBOL	 vmlinux 0xc299d6e0	set_pages_array_wc
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2a4dc41	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xc2b7f140	tty_name
+EXPORT_SYMBOL	 vmlinux 0xc2d54ec5	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0xc2dd88f6	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e958d7	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0xc2ea51c1	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xc2ecaa9f	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xc30382c2	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0xc305ed31	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3284d94	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc39b4287	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xc3bafac2	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3fae30a	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc4017b5c	iput
+EXPORT_SYMBOL	 vmlinux 0xc40e87d5	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc424beba	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xc42697b9	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc453b8d6	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xc45953e2	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc48cfc33	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0xc49923b6	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4ede2f8	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xc5185e18	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc534b114	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xc537e5d8	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xc53805f9	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc557bc30	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc55ded8c	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xc55ec040	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xc5664491	_raw_spin_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xc573a176	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc57e8b41	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58809cb	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a77c4a	intel_gmch_probe
+EXPORT_SYMBOL	 vmlinux 0xc5b0fcd9	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5e4a5d1	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5eda63c	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc5fa121e	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc6153596	vga_switcheroo_init_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc622f37a	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0xc6238c2f	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc638e4b3	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xc639264a	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xc65c5d77	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc6910aa0	do_trace_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xc6b82c49	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0xc6b8f564	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xc6bae75c	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0xc6ca4359	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6e87814	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc700ff6b	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc7109bb7	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc736a4a8	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0xc76857eb	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc7786e4c	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a42941	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b3f0f0	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c8755f	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7d27942	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc81c02aa	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc821ce7e	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xc8290510	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0xc82a678f	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84f804e	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xc865dafc	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xc86d4b3d	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87c3daf	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b2acfd	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0xc8d07d27	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xc8db6252	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc8df6d12	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xc8e6a937	node_data
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8ed0611	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xc8f375c1	_raw_read_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xc900468c	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xc902032a	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xc906572c	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0xc906c4ee	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0xc9131bbb	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0xc91d3bb2	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xc9216a82	recalibrate_cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xc9274a6d	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xc92d3503	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xc93c8d95	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9a14708	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xc9ab6a2f	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xc9b538ff	vga_get
+EXPORT_SYMBOL	 vmlinux 0xc9cf84ce	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xc9dee712	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e524fc	pv_ops
+EXPORT_SYMBOL	 vmlinux 0xc9f34c1d	acpi_acquire_global_lock
+EXPORT_SYMBOL	 vmlinux 0xc9f51380	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0xca0bb0ac	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca20c20a	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca419f47	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca570097	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xca5898d8	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca6b2120	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xca6bb59d	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xca7ac420	fput
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xcaa82954	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0xcabf5e99	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0xcac483c4	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0xcaca4190	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb1a2fa4	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xcb254b5d	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xcb39fe97	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3e4455	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xcb553196	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xcb61447e	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb92c037	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba5ba72	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbbbc08f	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbeb029e	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xcbeb4cb9	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc05cfcd	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0xcc060969	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc1c3e6b	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc39fe43	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0xcc3f6385	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xcc4087ec	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc53c6ef	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xcc5714ff	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc6d404f	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xcc6e3ece	netdev_err
+EXPORT_SYMBOL	 vmlinux 0xcc6fd826	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xcc8e9ece	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0xcca1fbe4	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xcca6d20d	dev_close
+EXPORT_SYMBOL	 vmlinux 0xccadc711	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccda4c9d	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xccdd3877	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0xcce91435	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0xccec9ce4	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccf218e2	blk_mq_requeue_request
+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 0xcd04aeb0	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xcd1b8bdf	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd2c679a	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xcd3bdfb4	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xcd5fc4b8	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xcd68a768	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xcd7229a3	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xcd86d091	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd9435ee	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0xcda5022d	module_layout
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcdecf637	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xcdf16016	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce4c79e7	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce5a3cf5	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce841fa6	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0xce8b1878	__x86_indirect_thunk_r14
+EXPORT_SYMBOL	 vmlinux 0xce8c6081	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceacd8ae	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xcecfcbfe	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xced6c34b	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcef015e2	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcefde5fb	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf03b940	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xcf099076	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0xcf0fe5ff	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf1dc321	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xcf239ad2	load_nls
+EXPORT_SYMBOL	 vmlinux 0xcf24c09e	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf498426	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf5d873f	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf852e63	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xcf949ac6	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfaca666	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xcfb44e1d	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xcfbd18f3	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xcfe81b08	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xd002cdc6	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xd00bb1cc	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd06e0d72	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xd06e717a	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0xd090ec61	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xd096ba74	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xd09ec9fc	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a30549	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0c9bfe9	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xd0cc87ab	skb_split
+EXPORT_SYMBOL	 vmlinux 0xd0cd5e51	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xd0cec307	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0xd0e2ffda	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xd0ed4c32	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xd0f284b8	mmiotrace_printk
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd1162864	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xd12fac6b	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd13fc7b0	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0xd14c2c37	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xd1522482	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0xd1615fd1	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd168f75a	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd190c1aa	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19bd2e1	__tracepoint_write_msr
+EXPORT_SYMBOL	 vmlinux 0xd1b93e59	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0xd1bd1f04	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xd1bd2f52	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0xd1c324bd	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0xd1cc6bd9	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xd1ce5d5f	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xd1d15f1b	uv_hub_info_version
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1f57516	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xd1f60a89	arch_io_free_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL	 vmlinux 0xd1fbed69	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0xd1fe2b26	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0xd2087542	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xd20d1560	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xd216df59	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xd217538a	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd2306407	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xd2373751	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0xd24066b6	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xd241c3cc	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xd244cb90	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd26c9029	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd2869e0c	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xd2938efc	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xd2b58f59	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xd2cb9f80	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd2d19542	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2db2b29	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xd2dd92af	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd301a0f8	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0xd3071e08	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xd30e61f3	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xd314c35e	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0xd3175c2e	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xd32ca3e4	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xd3305d42	would_dump
+EXPORT_SYMBOL	 vmlinux 0xd336fad4	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd38cd261	__default_kernel_pte_mask
+EXPORT_SYMBOL	 vmlinux 0xd39e5ecb	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0xd3bd298e	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0xd3cff287	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3fd7320	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xd3ff0baa	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd4143281	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xd417160a	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xd4186438	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0xd43e22fb	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xd44a95f0	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xd45906b2	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd45ea23e	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xd46fcf31	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xd472c684	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd4964ee9	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0xd49e228b	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0xd49ea480	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a7f7c4	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xd4a872b1	cdev_init
+EXPORT_SYMBOL	 vmlinux 0xd4b075e8	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4bfcf68	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4d7a784	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd541db79	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xd542eb7b	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xd553bb23	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd57a11de	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xd580d303	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0xd5933aed	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xd59fe78f	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0xd5b0e8bc	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5b83baa	dquot_release
+EXPORT_SYMBOL	 vmlinux 0xd5bf6346	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd5c6a1b8	amd_iommu_flush_tlb
+EXPORT_SYMBOL	 vmlinux 0xd5ce7dd0	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xd5d37aef	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xd5e13d6d	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0xd5eae531	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd615390f	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xd63130f7	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c2ca6	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6b2ed5f	generate_pm_trace
+EXPORT_SYMBOL	 vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xd6b98fd3	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0xd6c8368a	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0xd6c867ea	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6d26595	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd6d4f529	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd727689e	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0xd7285b47	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd77ea7f7	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0xd77feae5	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xd78cb706	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xd7a4f031	sock_register
+EXPORT_SYMBOL	 vmlinux 0xd7a8451e	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d4f6e0	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7e8a796	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xd7f3e837	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0xd8132299	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0xd81f52b5	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0xd843d029	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xd84467ae	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0xd846c315	acpi_write_bit_register
+EXPORT_SYMBOL	 vmlinux 0xd84d8f15	task_work_add
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd879b251	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0xd87c37d0	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8c318e2	_raw_write_unlock
+EXPORT_SYMBOL	 vmlinux 0xd8d29a5e	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd8e2858e	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0xd8e65973	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xd8ecf97a	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xd8f0e709	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd94229e7	single_release
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd965d24c	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xd96b6dbe	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0xd971c6c4	xen_arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0xd979a547	__x86_indirect_thunk_rdi
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9862885	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0xd9a3f08b	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9a7b0a8	amd_iommu_domain_enable_v2
+EXPORT_SYMBOL	 vmlinux 0xd9b41994	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9d813ab	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xd9f1c6ba	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xd9f74853	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xda15ac06	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0xda1ddef1	acpi_mark_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0xda2e3165	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xda31120d	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0xda3343ff	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda5b19c9	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0xda697f99	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda792ed8	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda8f165e	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0xda9d920b	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaa09408	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0xdaa7caab	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0xdab6b2ad	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xdabbd554	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xdabe3102	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdacf1d77	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0xdad9eff8	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xdae97c01	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdafb91b1	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xdb16b170	topology_phys_to_logical_pkg
+EXPORT_SYMBOL	 vmlinux 0xdb1708fd	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0xdb1a9e86	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xdb2839a7	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xdb32b94b	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb47b619	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0xdb4f59eb	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb66b838	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb778493	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xdb7876a9	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xdb878cb8	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xdb8c40df	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0xdb994f2e	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbd2b93d	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdc0eb8a1	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0xdc0fc69d	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xdc1188b4	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc38982f	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0xdc43e907	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xdc460c45	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc4bb0f2	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5736d5	acpi_register_ioapic
+EXPORT_SYMBOL	 vmlinux 0xdc688a9d	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0xdc9b279e	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xdcd341f4	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0xdcefaca8	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0xdd0029fc	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd1be79a	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xdd1f00fa	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xdd2320be	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd8e8e70	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddb4f30b	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xddbd6eb5	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0xddbf1e5e	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xddcbe1f3	acpi_ut_value_exit
+EXPORT_SYMBOL	 vmlinux 0xdddd424e	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0xdde37a70	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xdded4127	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde295f67	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0xde36534e	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xde36e487	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xde4ba7c1	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde4eeab5	__register_nmi_handler
+EXPORT_SYMBOL	 vmlinux 0xde62e843	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0xde641949	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0xde761b2e	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xde79fcf3	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xde93759d	mntget
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdec1c703	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0xdecbdb52	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf05c6fc	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xdf0b312e	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xdf259dee	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf3104cd	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0xdf363abf	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf4ece0e	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf566a59	__x86_indirect_thunk_r9
+EXPORT_SYMBOL	 vmlinux 0xdf61a151	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0xdf62454d	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf8d781f	acpi_update_all_gpes
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf946013	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0xdfa62585	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0xdfa9f73c	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdfae09e7	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xdfaf60e3	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfb5e369	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xdfc247aa	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xdfc4eec3	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xdfc54002	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfee0828	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xdffccd78	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0xe01474c8	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0xe0259416	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe033cb29	native_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xe037ab7d	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe0524de7	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0xe057f3c4	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0900d48	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe09bfdda	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xe0a7e45b	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0xe0ad1164	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0bcf6d6	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0xe0db786b	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xe0e15bf0	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0f4f64c	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0xe0f62101	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0xe0f98ad5	inode_permission
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe1222ef3	lock_rename
+EXPORT_SYMBOL	 vmlinux 0xe123c8b2	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe128d9f9	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0xe129e4d5	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe140c188	dump_page
+EXPORT_SYMBOL	 vmlinux 0xe1506354	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xe151fb1f	bio_devname
+EXPORT_SYMBOL	 vmlinux 0xe171bfba	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xe175bdd9	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xe19561a6	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1b6a5b2	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xe1d49d70	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xe1d964ac	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe1f99ef8	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xe1fd840e	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe227857a	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xe22a5445	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xe2347d95	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe23ea763	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0xe25e07bc	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe26f6aff	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0xe285b554	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe2b78861	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0xe2c06547	vga_switcheroo_register_handler
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e62a00	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xe2fb231f	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe31203b2	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xe317b7bb	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe3712c86	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xe3916700	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0xe3958202	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3acf5e5	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0xe3afbe04	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xe3cf9397	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3d857ea	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe3df03d5	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xe3e81e26	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe3fffae9	__x86_indirect_thunk_rbp
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe40c73f6	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xe416eec4	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe42580be	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0xe42da4b9	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe4497d0d	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xe460990b	pci_map_biosrom
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe48a6672	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xe4c00f30	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d80bf4	acpi_enable
+EXPORT_SYMBOL	 vmlinux 0xe4eb8892	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0xe4ff1ace	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xe51da450	fd_install
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe529966e	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0xe539fd7a	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0xe55c3a62	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0xe55cb9c5	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0xe55ec0c8	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56dd32c	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xe56edfdb	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5856cfc	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5b1f499	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c69368	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5cca467	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xe5e952a4	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0xe5e99e3a	amd_iommu_domain_clear_gcr3
+EXPORT_SYMBOL	 vmlinux 0xe6097b22	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe62b4a43	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0xe637eb12	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0xe6420ffd	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0xe649925d	bio_put
+EXPORT_SYMBOL	 vmlinux 0xe6609947	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xe667ca4b	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xe68e8956	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xe690b8b9	phy_connect
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe692b0cd	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0xe6a719fa	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xe6a9d7e5	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xe6ac0c3d	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0xe6b2337f	km_report
+EXPORT_SYMBOL	 vmlinux 0xe6b7e8f3	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xe6d41459	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xe6de907b	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe6e322db	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xe6e48a2c	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xe70877d4	acpi_remove_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xe70ea5dc	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xe70fb497	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xe712359c	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xe7141eb9	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe7279f03	follow_up
+EXPORT_SYMBOL	 vmlinux 0xe72becb4	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xe72cd9b2	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe739bace	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xe753157a	follow_down
+EXPORT_SYMBOL	 vmlinux 0xe757d4cc	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xe7599b1f	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xe7713f50	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xe782da8d	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0xe787698f	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7ac4394	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0xe7afa3f7	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0xe7b00dfb	__x86_indirect_thunk_r13
+EXPORT_SYMBOL	 vmlinux 0xe7b35a49	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0xe7b8b015	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7de3a1a	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0xe7e3a6d4	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xe7ed9639	phy_attach
+EXPORT_SYMBOL	 vmlinux 0xe8137e1d	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0xe81fa105	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0xe8317c7d	dm_io
+EXPORT_SYMBOL	 vmlinux 0xe8356766	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xe8472ea7	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe86b77d0	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0xe87500c6	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xe892e3ab	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0xe8954910	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe914284b	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0xe914570f	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe92fb334	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0xe931b8e2	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xe93ff1c4	cpu_tlbstate
+EXPORT_SYMBOL	 vmlinux 0xe9426454	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0xe943fd24	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xe94c7b1e	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xe951fa1b	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe984dbbd	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xe98727c5	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0xe993c2be	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xe9a5e67f	intel_graphics_stolen_res
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9b2beab	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0xe9b52279	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0xe9d3fc59	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0xe9d6bb9a	bio_chain
+EXPORT_SYMBOL	 vmlinux 0xe9d89ad7	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xe9e8f77d	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea0fb640	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xea14c3d7	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea55fb25	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xea6cbc99	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xea6f4161	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea781b72	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xea7e7235	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xea80dcfc	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea8c68ed	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xea8ed063	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL	 vmlinux 0xead3f461	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeae416bc	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0xeb041d8a	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xeb0ab7f8	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb2e5cb6	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xeb31aee8	acpi_trace_point
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3c2b97	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb4a70b6	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xeb59e8c3	native_load_gs_index
+EXPORT_SYMBOL	 vmlinux 0xeb6a0585	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0xeb6f469e	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xebbe1091	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0xebbfbabc	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0xebd32440	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec19360d	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec9f3506	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xeca00533	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0xeca0983e	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0xeca2bd14	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xecac8407	__memcpy
+EXPORT_SYMBOL	 vmlinux 0xecdd526e	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xece06056	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0xece24988	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecee2d07	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xecf38fca	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed04f211	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xed11880c	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xed21678a	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0xed287c76	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xed299eb8	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xed34ebbc	acpi_any_gpe_status_set
+EXPORT_SYMBOL	 vmlinux 0xed3b9126	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xed3df1a5	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xed4d690c	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xed5596ad	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed6ef440	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0xed719f28	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xed9fe54a	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0xedad5a25	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xedb28eae	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedde1f61	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xede2cc7a	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xedec1d6e	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0xedf41f4c	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee0a49d6	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee2e9b4a	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xee31f8a0	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee6f6db4	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee814cd6	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0xee82dc47	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0xee86bd09	cpu_info
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee931fb6	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xee977a14	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xeead485d	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0xeecdf20c	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xeee26e17	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xeee9b70c	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xeeedd75c	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xeef7a8b0	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0xef2993f4	_raw_read_unlock
+EXPORT_SYMBOL	 vmlinux 0xef2a1df0	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0xef4be041	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xef5c8e77	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xef646bd0	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xef6f2a2e	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xef7944fb	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL	 vmlinux 0xefacd5a8	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefb1b6a0	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xefb86ecb	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefe83c3a	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefebe172	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xefed0555	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xefff17b4	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf00908da	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xf03978f8	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xf0446d2e	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0xf045b576	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0xf0497519	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xf04abdf9	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0xf05a6917	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xf05c32ad	rdmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf06402e0	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0aa3bfd	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xf0ca3e7d	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xf0cd692a	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xf0f0f462	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf110b8ba	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf14943b0	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xf14c9b6f	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0xf1601d81	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0xf16ef83d	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf1848ee2	acpi_install_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xf1916e95	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a02ecb	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xf1a68107	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf1c52139	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0xf1c63a02	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xf1da8d07	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1fd5917	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xf1fe8b9b	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xf20622c4	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22456bf	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0xf2310576	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf24b348d	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf24ea018	__scm_send
+EXPORT_SYMBOL	 vmlinux 0xf261a73e	inet_bind
+EXPORT_SYMBOL	 vmlinux 0xf27b68ab	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf2861afd	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf296bc6d	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2ac6ce2	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0xf2b23b0b	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xf2b81b64	arch_io_reserve_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xf2b8d769	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e9e916	send_sig
+EXPORT_SYMBOL	 vmlinux 0xf2fd28ce	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf30616fd	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xf30965ac	iosf_mbi_register_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf3244a16	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf33c2557	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf35c0de1	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xf36923a8	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xf3866a34	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf38bd35c	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf39edf4c	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3a73d8a	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b94353	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xf3bd0f05	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3ed5e8b	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xf3f3854f	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf3f63795	stop_tty
+EXPORT_SYMBOL	 vmlinux 0xf3fe6e1f	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf413c06c	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf44e6dfc	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xf4526c72	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf475f2d0	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xf4920d72	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xf4a565fd	wrmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL	 vmlinux 0xf4a6b219	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xf4aec522	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4baa475	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4ca0ae5	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0xf4ce55bc	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0xf4d2bc4b	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0xf4d85ab3	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4e2d34f	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xf4f0d5dc	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf514029e	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xf51b3ed3	set_pages_uc
+EXPORT_SYMBOL	 vmlinux 0xf51c043c	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0xf522600e	bio_split
+EXPORT_SYMBOL	 vmlinux 0xf52a8639	__sock_create
+EXPORT_SYMBOL	 vmlinux 0xf52ce27d	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xf534505f	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5626fc2	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xf5657b74	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xf5698ded	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xf57a9073	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xf591753d	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0xf5975e6c	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xf599cba5	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a5c84c	msrs_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5a7e037	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xf5aa2959	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0xf5d23a7c	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0xf5d5d090	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5f36298	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0xf60ab926	acpi_get_event_status
+EXPORT_SYMBOL	 vmlinux 0xf60d925f	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf61d27a4	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0xf62eb973	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xf63b3e01	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf664aa21	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf695312d	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xf697c25e	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xf6b2aca2	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xf6e4f3de	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6ef4622	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf717d2eb	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xf71a8035	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xf735f1a7	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf73f66ba	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xf7505713	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf75a82ce	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0xf75b37cb	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf798f23c	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0xf79ca3bb	acpi_remove_gpe_block
+EXPORT_SYMBOL	 vmlinux 0xf7c3224c	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0xf7c34fac	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0xf7ce67ab	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xf7e99b9f	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xf7ef9a79	iosf_mbi_punit_release
+EXPORT_SYMBOL	 vmlinux 0xf803be8e	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xf80be44e	rdmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf81a9b50	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf8386d97	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf861480b	build_skb
+EXPORT_SYMBOL	 vmlinux 0xf86f997d	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xf870ef64	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf87b0eaf	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xf8851118	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf8a2da5a	fb_class
+EXPORT_SYMBOL	 vmlinux 0xf8a84e4f	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8be4de5	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8cb4835	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8d4faef	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xf8d6bca3	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xf8d77649	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xf8db4bd6	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8fbf701	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0xf8fedaf2	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xf9137e2d	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf924ebda	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf95eb424	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf980d39c	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xf9822970	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xf99695af	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9bcbbb3	seq_open
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c4ec9d	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xf9d924bf	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xf9e6f14f	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xf9e9b31c	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xfa00ec4c	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa187b20	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xfa20c32d	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa3eb2fa	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xfa556ac6	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa774e20	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xfa7b0b5d	key_link
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa9d4721	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0xfa9eaa58	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xfaa1fdf7	__tracepoint_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xfaa5e62d	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfacd4cd3	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0xfadad0c1	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xfae03d3f	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xfaf55362	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xfaf7f4a0	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0xfb0c1ca3	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xfb0ecb7d	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xfb2129c3	set_pages_wb
+EXPORT_SYMBOL	 vmlinux 0xfb251b8d	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xfb341400	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xfb363f6f	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb4047b8	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0xfb40f158	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb498897	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xfb578fc5	memset
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfb754621	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xfb7d81ee	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xfb7e84f9	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xfb844881	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xfb8c155a	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe3b8ed	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0xfbe78e9f	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfc117041	param_get_string
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc357811	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc418569	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc66959c	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xfc7738bf	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc84c360	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xfc897d0c	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfcafe19e	set_trace_device
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfccdba68	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd1dddc	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfce1ad7c	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcf539f1	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xfcfa9c2f	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0xfd01cc1b	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xfd29c2ff	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xfd64cbf0	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd750f08	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0xfd767cd1	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xfd7d1ca6	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xfd829c52	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xfd93ee35	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfd9419f5	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfd9504b3	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xfd9a0f08	vfs_link
+EXPORT_SYMBOL	 vmlinux 0xfd9eeca8	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb6576f	acpi_set_debugger_thread_id
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdd1adc7	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdf2a227	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0xfdfb792f	amd_iommu_pc_supported
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe1f335f	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe4ad9c0	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe6756e3	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xfe7ef374	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0xfe8ff998	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xfe910bcd	igrab
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe937cd6	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xfe9ea57b	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfea00ca3	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xfea01a5b	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0xfeac8b97	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfec8a79d	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee650db	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef573f1	filp_close
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff396fb7	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xff574e16	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xff5cac62	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0xff5fc6d0	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff8cf8b9	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffa3b349	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0xffaa568f	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xffb7bc8a	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffc30c3a	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL	 vmlinux 0xffcd7f49	iosf_mbi_punit_acquire
+EXPORT_SYMBOL	 vmlinux 0xffd21f4b	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x00faf09a	xts_camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x0ac98858	camellia_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x110a5ea5	camellia_ecb_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x187244da	camellia_xts_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x19ea0a50	camellia_xts_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x701dafab	camellia_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x95625eb9	camellia_ctr_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x9ba73d8e	camellia_ecb_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xbdb3b1d4	camellia_cbc_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x076da75a	camellia_crypt_ctr_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x17d1814f	camellia_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x410e0fb4	camellia_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x62cbf7ba	__camellia_enc_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x69211153	camellia_dec_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x7a1d58de	camellia_decrypt_cbc_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xb53cc66b	__camellia_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xc5e3cec8	__camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x7263e270	glue_ctr_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xad851c72	glue_cbc_decrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xc1f8bbfe	glue_xts_crypt_128bit_one
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xd2570f9a	glue_cbc_encrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xe06e6d31	glue_xts_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xf97d6617	glue_ecb_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x020a243c	serpent_xts_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x1c871146	__serpent_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x36389d2e	serpent_cbc_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x3f20a4a9	serpent_ecb_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x7adaeaa4	xts_serpent_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x92dded8c	serpent_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xb2dcc1fa	serpent_ecb_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc59d1a0a	serpent_xts_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xc9c39aed	serpent_ctr_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xe809ca7f	serpent_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x1f491d36	twofish_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x7c7bf6e0	twofish_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x4c995a89	__twofish_enc_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x8cccec5b	twofish_dec_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x9dfb11d8	twofish_enc_blk_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xd859828c	twofish_enc_blk_ctr_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xe3784eb9	twofish_dec_blk_cbc_3way
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x02a4038b	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x02c26b2b	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x02e5e4a9	kvm_mmu_new_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0395b71b	kvm_mmu_invpcid_gva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x045cb6ce	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x06c4b739	kvm_vcpu_reload_apic_access_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0af521af	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d564982	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d8f4740	kvm_mce_cap_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0e37e92a	kvm_slot_page_track_add_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0fd5f9c8	kvm_load_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1235000a	kvm_tsc_scaling_ratio_frac_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1272b16e	kvm_vector_hashing_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x12b3eda8	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1477559f	kvm_emulate_instruction_from_buffer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x14b1820a	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15dacab5	kvm_spec_ctrl_valid_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15f5cf6a	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1936a633	kvm_mmu_free_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x197eaea0	kvm_get_apic_mode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x19a7f949	kvm_slot_page_track_remove_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1a385e55	x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1acc3fb9	cpuid_query_maxphyaddr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1c537750	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cf65ffc	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d013832	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db1c372	enable_vmware_backdoor
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1e5431c2	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1f73e28d	__x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1f925c80	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x203141aa	kvm_lapic_expired_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x22e9a8fd	kvm_scale_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x26014042	kvm_emulate_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2733f3d5	kvm_arch_end_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28411ed7	kvm_max_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x29345ba8	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2bdb9b1b	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2ebaf49d	kvm_get_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2f7b5883	kvm_vcpu_is_reset_bsp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3032bdc2	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x30ce2d20	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x32be31c6	kvm_lapic_find_highest_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x334f4502	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3392c076	current_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x35f28a7d	kvm_vcpu_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x394a22df	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39b965fb	kvm_mmu_unprotect_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a3026d4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b4babdb	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b93adca	kvm_mmu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc82f45	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3dbc042b	kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3fb7eb1c	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3fc70c60	kvm_lapic_hv_timer_in_use
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4064dfe8	kvm_get_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4331281d	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x435d114e	kvm_set_cr4
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4470b1c3	kvm_mmu_slot_largepage_remove_write_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x460db8e8	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4a349c38	reprogram_gp_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4b4bcf0e	load_pdptrs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4d0fd8d2	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4dc07ee3	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4ebb2a43	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4f56eb6a	kvm_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x51ead4e6	kvm_get_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x525b630a	kvm_apic_update_ppr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x527016d9	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x52a454fc	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x53203789	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x53c0646c	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x56dee8e1	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x574a2d9c	kvm_lapic_switch_to_sw_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5789449f	kvm_lmsw
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5966e076	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x598e8a17	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5991c3a5	reprogram_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b1c3627	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b403de8	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5d9f20da	reprogram_fixed_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5e08963f	kvm_queue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fd72da1	kvm_set_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x607c1b30	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6243ac82	__kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x624db55f	kvm_set_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x62993e1f	kvm_lapic_reg_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63270977	kvm_default_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63a5029b	kvm_apic_set_eoi_accelerated
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65ece2a2	__tracepoint_kvm_fast_mmio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66c4423a	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66ef8c56	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68f54e0f	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x695830d8	kvm_page_track_unregister_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ada8f59	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6bf5a4f5	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6cbcc62b	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6d32ac3b	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6d37e3f1	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6f94038d	kvm_require_cpl
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6fbdd011	__kvm_request_immediate_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7013b0bb	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7130ecc7	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x741892eb	kvm_mtrr_get_guest_memory_type
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x75771dee	kvm_wait_lapic_expire
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x75cee107	kvm_init_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x772009f4	kvm_init_shadow_ept_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7763a671	__tracepoint_kvm_nested_vmenter_failed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x794624cb	kvm_set_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x796a9d84	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7d3a0a83	kvm_arch_unregister_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7e881404	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f045e51	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f20026b	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f8085d0	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f90af10	handle_ud
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7fd2e3df	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7ff445c9	kvm_deliver_exception_payload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7ffa6902	kvm_arch_start_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8020f242	kvm_mmu_clear_dirty_pt_masked
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x81ff660f	kvm_can_post_timer_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x848c656f	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x849344cc	__tracepoint_kvm_pml_full
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x85a03f5d	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x867690a7	__tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86931b5d	__tracepoint_kvm_avic_incomplete_ipi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x87cc1676	kvm_task_switch
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888d979f	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x88b63a14	kvm_lapic_switch_to_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8aea181d	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8b0673f1	kvm_arch_no_poll
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8b58952e	kvm_write_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8f2836fd	kvm_emulate_rdmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x91d4d992	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x92ca7642	kvm_fast_pio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x92f709f3	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x932cf5c7	kvm_arch_has_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x932fa443	kvm_mmu_slot_set_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x93e7e805	kvm_rdpmc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94abbd88	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96dbe382	kvm_mpx_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x978ab884	kvm_inject_nmi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x980fb842	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9a046db5	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9a0abee3	kvm_arch_register_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9afe4cee	kvm_requeue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9cae38bc	kvm_apic_write_nodecode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f4f36ec	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa0e615e4	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa16f2baf	kvm_mmu_unload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa20450b3	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa354aed5	kvm_page_track_register_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa3ae5ce0	kvm_valid_efer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa6e9cf9a	kvm_set_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa81dfd11	kvm_emulate_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa975020d	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xacb1c9be	kvm_set_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaec8562d	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xafb11a88	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb097e540	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb1f29d1a	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb2a90f0a	kvm_set_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb3b15596	kvm_set_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb3d5634e	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb62ea89e	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb79e0b2c	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb95ddf2b	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbc167bed	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbd477431	kvm_emulate_wrmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbd59561e	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbf454e3e	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbfc61ecf	__tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1a946b2	pdptrs_changed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1cf42ca	kvm_x86_ops
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1d769b7	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc22acd29	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc3f8a33f	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc52d5515	kvm_get_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc6764866	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc876459a	kvm_mmu_sync_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca3ab5ad	__tracepoint_kvm_ple_window_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcab0c0a4	__tracepoint_kvm_write_tsc_offset
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcafa37a6	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcba442d7	kvm_put_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbb6f1df	kvm_arch_has_assigned_device
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbc00d52	kvm_intr_is_single_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcd5388d3	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcf798c79	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcfe0e756	kvm_lapic_reg_read
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0a0a930	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd1b64f33	kvm_handle_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd209f430	kvm_set_msi_irq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2e6b80d	kvm_read_l1_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2f74e33	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd36b304a	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd7fa35ed	kvm_hv_get_assist_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd8ae2ac3	__tracepoint_kvm_pi_irte_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd9e7aeb	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xde98e433	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdf4ba15c	kvm_get_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdfcacc50	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdff42d4c	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe010b884	kvm_hv_assist_page_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe09c6cb6	kvm_skip_emulated_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe1c486ff	kvm_apic_match_dest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3ccde2b	x86_fpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe432862f	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe519c4d9	kvm_get_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe5cc4305	kvm_get_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe5fa844a	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe80c64bb	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe815f6f5	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xea1da26d	reset_shadow_zero_bits_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xeaf5c961	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec06defc	__tracepoint_kvm_avic_unaccelerated_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec897c3b	kvm_set_xcr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf39e694b	kvm_mmu_slot_leaf_clear_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf47e3dba	kvm_no_apic_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf7ba22e3	kvm_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf8a6e113	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfa541ffc	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfb2ef95a	kvm_mtrr_valid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfd0215c1	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfe0bf8d4	kvm_set_cr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xff9d21d7	kvm_require_dr
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x11dac04a	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1a2fee1f	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3bb925d3	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3d3ff282	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3ff1d5e0	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x434c19e6	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5c6a0efc	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x739dd7e9	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7a692262	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x88f38ca5	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x99516e6b	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa56107d4	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbc957969	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc57ecf46	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xcaded604	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xcc0a6601	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdf31a851	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe5cbfeba	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x29a3c2fc	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xf27635c6	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xae8e6e08	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xebd2d4b9	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x64b3f001	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xc89a5c17	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x0d1bd0b3	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x1be96351	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x96c8dbcb	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xcab0e645	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x06402f9e	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x2e66e207	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xebd74788	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x10a415b5	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x493e8fd5	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+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/chacha_generic 0x98992d5e	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xbfd24164	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xd82dbeea	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xf8d49816	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1ed8bc27	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x21a06469	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x374265b7	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x52310ecc	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x7355b63c	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x76c08dc9	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x7b77bf61	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x923f6368	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa9653098	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xaa261585	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb5e0bc38	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xcd8280f7	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfc10fbc9	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1547cdaf	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x155c538b	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2e50d042	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3f204aad	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4a92bdf6	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8296dce4	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8532a595	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8541ecd1	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8bd42410	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8e74a652	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x97a6a9d1	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb5ef840c	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe33fdd8a	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe8e49b12	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x65127d3e	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xd9e44d4e	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xdde9756e	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xf4cb96ac	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x35bdb2b1	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x87d91d7a	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x9a4cd39c	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x45a24ee0	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xb8b8267b	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xc85ac32e	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xce15b96a	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xf479e907	twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x0bc7d7fa	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x114d7697	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x4639bcda	acpi_nfit_shutdown
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x48931649	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x499bbf57	nfit_get_smbios_id
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x547e3512	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x8d37a117	__acpi_nfit_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x1c8984c7	acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x4f6c2360	acpi_smbus_read
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x87bd07bd	acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x96eb492d	acpi_smbus_write
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x02ad7766	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1d59361e	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x21dcf36d	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x2f2016bb	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3c2cddab	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x51f4a95c	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x59a358b0	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x64654083	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x709eb658	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7d08e3e0	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x80272059	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x806890a8	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x8651f01f	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x933d9215	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x98265ab7	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x9f25c69c	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xacc91fa1	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc95e8719	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd2e831fa	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd348995d	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xf370f462	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xf67bcfa5	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xf94faf2f	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xfcb69ebb	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x0a1f2ffc	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x0b161b56	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x17751ba4	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x29854b05	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x333032e5	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x381f15d7	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x3d392a14	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x507b8a94	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x65c79927	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x6dcdb46d	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x90dbba06	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x9b2cee85	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa5e5ee56	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xad6d84ff	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xd7ae3f7f	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xeb9d25b5	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x8c7bce54	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x02ff9464	cfag12864b_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x0ecb2e5d	cfag12864b_disable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x305dc3c6	cfag12864b_isenabled
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x3389f926	cfag12864b_enable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x9522a342	cfag12864b_getrate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0xc48e9d95	cfag12864b_buffer
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-i3c 0xbfce7f0c	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xb5acb371	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xe5cb04aa	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x235b5f4f	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xdede3864	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x085e9863	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x31bac253	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x74ea7650	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x87b6ee4e	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x5632731d	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x6e506300	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x044e225c	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0f399d6c	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x201ed5b8	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5ab28e69	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x629f7064	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x64b0b01d	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x64d338a8	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x67afae03	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x767ecd5a	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x830c95bb	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x874e133a	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8f8530a7	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x974baee6	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa308f48e	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa3f194f2	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa49cff0d	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb474f796	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xbe7292a1	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc1be95bb	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc372430a	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc5e37cf4	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd0fb975f	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xea477c55	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xed0119f5	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x05c28212	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x2908c81a	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x2c124d7d	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x97541e89	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x9d4489d9	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xe51e3007	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0262e0ad	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0887de31	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x13f60bc3	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2724a8a1	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x489420d1	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x48e51c21	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5441ab37	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5b5c69b7	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x718c2a44	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8838591b	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x9f539138	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xbd8abb07	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xcddaa126	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd410c93b	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd60a29a7	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xec2d6577	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xff957457	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x1e43c3bf	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x8f69c08d	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xae4892c9	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb470cd48	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb88532e6	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xbca47bb7	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc82d94a6	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xd9fe8921	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xe2c14951	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xed6e4e3e	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf95dfc76	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x0436c2fa	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x1c6e4c38	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x5395d5f3	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xac273958	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xb9c7708d	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x36c305bc	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x4e3f4c9d	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xb0e56e0d	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xd579b83a	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xdf2ff77e	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x6204306b	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x8b76d931	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xa0721871	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xf8d82ab8	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x28a0a2dc	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x4eebe4f7	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x74659f49	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7a8b547a	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8775330b	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa3069881	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbc86e871	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd5d35747	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xde2d93c2	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdedc97a8	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe53dc803	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf0ecfad1	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf1c30a38	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x2b67f096	speedstep_get_frequency
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0xd7ab2c0c	speedstep_detect_processor
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x2e6a6147	psp_copy_user_blob
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3e059f28	sev_guest_activate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x4073e924	sev_guest_deactivate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x6b431e9c	sev_issue_cmd_external_user
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x843d6541	sev_guest_decommission
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8fac14a2	sev_guest_df_flush
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x91722dce	sev_platform_status
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xd02e197f	sev_platform_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xee54c4a6	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x02712677	adf_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0dacbcca	adf_enable_vf2pf_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x1024e4ff	adf_reset_sbr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x19e515b9	adf_vf2pf_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x29251329	adf_reset_flr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x313106e8	adf_iov_putmsg
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x3b4fd570	adf_vf2pf_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x3f05505e	adf_send_admin_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x434b0f7b	adf_cfg_dev_remove
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x4cedbf9b	adf_devmgr_in_reset
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x55f47eb8	adf_cfg_section_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x59bb95ee	adf_dev_start
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x5ba4a2f9	adf_cfg_dev_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x5e3374be	adf_disable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6436b4f4	adf_vf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x71f49ea4	adf_devmgr_add_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7c581872	adf_dev_in_use
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7cf1fe09	adf_dev_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7d62e96f	adf_devmgr_update_class_index
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x81dd266a	adf_disable_sriov
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x83fc9958	adf_dev_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x861c28b1	adf_vf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x87bf3917	adf_init_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8ad579dd	adf_enable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8f82d127	adf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x958ea455	adf_dev_started
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb2652ce3	adf_devmgr_pci_to_accel_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb28d47d5	adf_cfg_add_key_value_param
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb5bd007f	adf_dev_get
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc22d1b98	adf_init_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc7f05a51	qat_crypto_dev_config
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcc3b167a	adf_clean_vf_map
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd2dc0dfd	adf_sriov_configure
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xdb3f6c9b	adf_dev_put
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe4e13992	adf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe5a59c97	adf_exit_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe6f0f76e	adf_exit_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xed29ec6b	adf_init_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xf022a72d	adf_devmgr_rm_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xf7c421be	adf_cleanup_etr_data
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x7fcd8e77	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0xf7408564	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x01a33ab9	dca_unregister_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x0a3b8b99	unregister_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x246fa230	free_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x34412785	dca3_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x41d6f2df	dca_remove_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x4492f883	register_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x9ac9586b	alloc_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xa79933c6	dca_add_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xaa634427	dca_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xac34ecec	dca_register_notify
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x7c3cbf53	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xe9f6a336	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3b2c861c	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4409f2e0	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x730e21da	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x8d988632	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xca3902b8	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xee5a75a9	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xf318fad1	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x217c5688	hsu_dma_do_irq
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xa73b92ed	hsu_dma_get_status
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xa8d9967c	hsu_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xea888425	hsu_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x02222b13	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xa649b7e4	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x66d69f72	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x8fa5f8b5	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xf08686f4	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xfd56f6b9	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xfe965a99	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/edac/amd64_edac_mod 0x26921a9c	amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x14878009	amd_report_gart_errors
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x1d34e996	pp_msgs
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x830c469f	amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0xaf761418	amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x358516ae	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x55ada331	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x21ae3c8c	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x2b9064e5	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3f7072b9	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x4a226f4f	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x71c81e3d	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x76be0e2b	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7bc72923	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7c9d091e	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x855aae18	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa9221852	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xacd4c7f6	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb11735e3	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb461faa9	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc13f55ec	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xcba1e70f	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe12a3285	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xec019b21	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xeeddfcda	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfe245469	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b5a5141	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x1162c9b1	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2f9c31d0	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x33821827	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x39b3f05f	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x4c836161	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x865eeae3	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8ff8114a	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xa2937649	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xafbdb469	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc04944c5	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc2c733d5	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2ac30517	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2c0a7f3c	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3a30a4fd	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3f38c796	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4662f3e2	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x47f6b9e8	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x7158b422	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x755d0e66	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x85579677	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xcc1752bd	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf10df744	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf521be17	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xfccae976	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x47eed7b5	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x7244c9c2	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x82bd7769	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x8ceb4aa2	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x914fc944	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x9931b5f4	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xffdfddf4	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x1091b2e5	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x20b34369	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x28124652	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x5e02d632	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xf6e73b74	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x0feaa46e	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x9ea2e30b	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xd8fc7bbf	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xe4b0f11a	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xeed14c80	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0xe1a9cd95	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x10dff977	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x35a38e2f	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x209e5c72	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x293b45f3	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2a25d007	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2a337a57	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3536cfdb	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x37b74a00	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x44a70adb	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x538df0bd	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5c192599	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x64b93df6	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x66e5c38b	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x72859517	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x786ecc24	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x79559984	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x80e31d9f	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8d3a1504	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x907bca2a	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa8da6a44	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xadd7f1cf	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb68c0208	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc2e59477	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xda92ab6a	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xee147e43	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf1bcd20b	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfe96418d	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x1bd9de0e	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x22766244	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x303dea49	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x6ef781bb	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x9619278a	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xc1b58248	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf56d6993	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x05876c69	i915_gpu_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x08a7896d	i915_gpu_raise
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x2b54a2a2	intel_gvt_register_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x402468e9	i915_gpu_lower
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x500858b9	i915_read_mch_val
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x6fbc5503	intel_gvt_unregister_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe7237b0b	i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x64986a2d	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xd8dd835c	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xe366e93d	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x020e33be	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0b105158	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0c9afc48	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1ac68b83	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1c366e77	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1d62c9b1	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x226db72c	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x238b2e80	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4502d6e1	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4d4adc47	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x58b166c6	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x69cf4c12	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6d42ed29	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6fbbf44e	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x74a9e610	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x797e759d	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8057d6b7	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b643f6b	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa4301e13	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb82a8e90	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb8b69736	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbb38cbdc	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbbeb77f4	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbfbf390e	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc0993495	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc0be5550	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc321dcbe	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc58bc27e	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc5c0ae82	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc6ec7230	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc7e6f9af	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcf9e65d6	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xedb8bc0b	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf1089fee	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf9a7d008	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfc2dd3d9	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfe93bb7f	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0077ea99	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0b1f132e	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0f8486ca	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0fa472f6	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1a369c75	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x211279b4	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2592a69a	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x38ccfc32	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x48361d7a	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x51ea3038	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x55ad9dcb	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5943f6fd	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5f08d1fe	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x628e2397	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x65115f02	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6b50399e	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6cb1d967	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x706d2b0e	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x71d2b360	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7200b975	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7b42c8cb	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7b62e29f	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8849666f	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x94bf1175	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9fa61bcb	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa9b6ef18	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xaa6c53af	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xac9b5148	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb56ea3df	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbe7556ce	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc7e2f108	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xca356d12	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcd8852bf	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd23dbd91	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd7a21a44	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdabfbb31	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc1257c4	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdcb72751	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdf1bd67e	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xed08e71a	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xeede8f45	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf8732bc4	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf8be74cc	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfd1b9177	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xf85a3b8a	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x09173961	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x1933ab2c	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x93efbd3f	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xa8421d94	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd3f63eb8	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xda7c068b	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x004c643e	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x14bb36c5	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x1d794a29	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x26854668	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x58e921ac	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x7772f501	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8d56c519	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x92364099	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x94cd0412	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x6a41b9b1	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x154b906d	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x1100cde2	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xfad84cc0	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0736e1ea	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x07435cbb	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x23fd3f22	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x394ef911	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x4c657509	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x559a739c	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6481679b	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6b66206c	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6ee51d63	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x796ce88a	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x94952a9e	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xa0187147	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xaf122160	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcea14d05	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdf961070	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf126ab11	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xfac90257	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x00e2911a	hv_pkt_iter_first
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x23fa24cf	vmbus_sendpacket_mpb_desc
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x2d8a185f	__hv_pkt_iter_next
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x31e2e77f	vmbus_free_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x35a944e7	hv_ringbuffer_get_debuginfo
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x3b67fe7a	__vmbus_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x3e349f8d	vmbus_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x3f47a805	vmbus_recvpacket_raw
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x43a8f637	vmbus_set_sc_create_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x46a417ca	vmbus_proto_version
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b2210b8	vmbus_send_tl_connect_request
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x5af58153	vmbus_are_subchannels_present
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6071f7dd	vmbus_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x65f7c5c9	vmbus_set_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6b699b94	vmbus_set_chn_rescind_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x743402c6	vmbus_teardown_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x787a2c42	hv_pkt_iter_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x7fe01cb2	vmbus_hvsock_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x89e3d497	vmbus_free_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8fc8ce2b	vmbus_prep_negotiate_resp
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x905db48b	vmbus_disconnect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x92ae9e98	vmbus_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa2c786a5	vmbus_connection
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xafbe5af8	vmbus_open
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xb8d34bb1	vmbus_sendpacket_pagebuffer
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xb99ab3ed	vmbus_allocate_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xbc9a02d3	vmbus_connect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xd22098a3	vmbus_establish_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xee6cff97	vmbus_setevent
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x1563d211	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x3fa87649	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xc66ee6ac	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0079d124	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1449e97a	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x18981f32	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x336cd5e0	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x39278cd2	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3f5fb7a5	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x46f2049e	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x52de9ae2	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7e019436	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x893ea44c	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa1fc5205	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xba149b7f	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd46e74f6	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd53bedd7	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd9257076	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdf6d304c	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe18634a2	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe3bf9ce8	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xed52ce7d	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x00adff9c	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x05fe68e7	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x730fc2aa	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9deeaf2e	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa3f90931	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc18fb5f1	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd114d228	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xdf2c370f	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xf5fac3f5	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x5404055d	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x88091352	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xa8e02fe0	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x2910a20c	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x5585f8ff	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6828ecef	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x7165e2db	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x8656452a	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x89a0d6c8	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa535278e	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe9b180e9	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xfe2b5a36	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x42b98cde	amd_mp2_process_event
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x5f7776d3	amd_mp2_unregister_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x65366f67	amd_mp2_bus_enable_set
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x73cc309f	amd_mp2_find_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x7485596d	amd_mp2_rw
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xd0cac708	amd_mp2_rw_timeout
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xfb3e9f7d	amd_mp2_register_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-nforce2 0xdce66238	nforce2_smbus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x0f709bae	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x71f9eaf4	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xa237a282	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xffd35944	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x62da5fbd	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x01b92cc2	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x21889fa5	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x292e5c5c	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3346f8ad	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x34acc764	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3de6ccac	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x43c307f7	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x46da5859	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4bb709f5	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4ce82c77	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5a3e4551	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8e73b4a6	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9a02b84f	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xac8b7f77	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb4211919	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb6fbd3cb	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbf54df84	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc0f358e4	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc551bfdc	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc88aa86f	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd41347d0	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xdbceba54	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe462433e	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xed8ffd3a	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfb9ce6d9	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x343613da	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x3bb464b8	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x10a4e482	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x171922e0	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x2487d272	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x6823c6b5	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x4150f965	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x563cd875	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xd5c3bcb4	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x7aafc2ee	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x7b2540a4	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x0c335c41	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x11d14cd6	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x2857dfbf	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x291029bd	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x295f0beb	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x36dca9c7	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc7256797	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd88b404e	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe925d630	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xfa98d08a	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x1e6947f7	iio_channel_cb_get_iio_dev
+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 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x86592787	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x8db0c283	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xb3082458	devm_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-hw-consumer 0xcb9fe0a9	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xcbf8afcd	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x12422b37	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x8a323480	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x2340d29a	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x297df754	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x2ae159a0	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x38148636	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x41f1be75	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x4e4fb47c	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x51eb8a52	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x521d3fc3	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x8269d8b9	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x978dc31d	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x25188595	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x55c173b5	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x04b39bbc	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x5e50aeaf	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x9d572b5f	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xa4941b50	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xb0b746cd	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x0fcfaad1	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x1d57ac82	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xd0fb477a	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x14b2c02f	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x28ed2fc2	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x3ed6f42b	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x46e12361	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x6ed1bba3	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x787a7d68	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x90870802	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x93944ef7	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc45a4d57	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xdf2e1f09	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf7930d95	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xfaf883f6	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x9b43aa1a	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x1ae6b0fe	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x4670fcd6	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x69f5e32e	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x025d0d29	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0c2994e1	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1030dd6d	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x151a873b	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x17a3fad8	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x23a7f919	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2459b530	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x25717d53	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2675c872	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x296117b7	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2a88ec5a	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2d24f4d0	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3551e342	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35bb8283	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3787d35c	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x38245b40	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3cd30a41	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x428654ee	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x47af1f33	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5e909413	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x66c6ef5d	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x673bec17	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x68c39c79	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6d7a9ccf	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7373f899	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x777e6b58	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x79bcd1f8	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7f316929	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x871cc551	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x906010c8	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9178d69f	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x93367dd8	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x94f88982	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9d89910f	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaa5d02ec	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb16d2f0e	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb485c588	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc707c001	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc7f6f522	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe24d5118	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe372d3f1	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe40ef751	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe55bf3aa	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe7583d85	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xea555dad	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeb78e8c6	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeec3eedd	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf33f8063	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf5c72eea	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf7116c60	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x70b404f6	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x680a5189	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2dfe45ef	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x32d3091f	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x73f37139	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xb9fc170b	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xcce621e0	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd4ea63ba	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x58940015	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x134ab509	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x53d967a5	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0467dc35	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x061bfcbe	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x088d0f51	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0fd44093	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x2f0c832b	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x32bf9d92	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x3d632270	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x64fb17b6	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6fd4b44a	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbf74c6ee	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc6608efd	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe5715638	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xec3a2518	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x4b0647fa	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xaaad8b18	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd4af5690	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x466e7732	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xc44d4801	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x303b6185	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x32fd285d	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x52ac3378	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x69ae9d1a	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x6c4c6def	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x99088929	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x03e6aef7	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x099d18b6	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x273999c3	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x4ed1f7fa	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x536feaa0	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x599e635c	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x78ce8fb0	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x7a74a4c1	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x9fc5ea3e	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xcc34f6e6	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe4a61d8a	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xff222f47	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x00016f48	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x054a5a77	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0ce43932	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x22e038e6	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x35d2a933	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x45c9ae7e	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x485da09a	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x5ea42a15	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x630f37cf	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6479ec11	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x2f12d597	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3eca4e67	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x57aed8fe	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6fd25ab1	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x9319610c	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa279e0bc	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xb73f26b3	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xc9945e1a	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xe4715319	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x03088e4d	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x0eec8d90	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x18c795e7	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x46237dfc	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x6feaa8e5	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x70a2d896	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x03b66958	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x25ffce9b	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x3a2476b1	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x418fec7a	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x6563bdd8	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x7320cdda	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x8df20c4b	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x97411704	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc4f1732e	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xea897b21	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xfb5b12f0	lp55xx_register_leds
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x135d20b9	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x14d5e7f6	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x30d08dc9	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x31f2ad5a	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x5c68bd41	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x5e0e1966	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6e636ea4	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x71261f47	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x7bae0acd	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x929b1355	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x95cebc1e	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xb6975116	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xb9b96cb9	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xca1626fd	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x19ed816e	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1ad9f366	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3752fbff	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3dbb4e56	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3e664109	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x436d5a4a	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x46661a7a	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x58ffaa0b	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x5a83eaf9	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8ded6794	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x974c42cf	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa5eb68c2	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 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 0xbac84169	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xced711b0	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe93635fb	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xed7f83fb	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf721caaf	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x1327ab5c	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7c759a11	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+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 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf2580c4	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x0a707a07	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xac42de14	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 0x04471110	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x15e6a0e3	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x26a173ff	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x350593b9	dm_rh_mark_nosync
+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 0x6175c882	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x6c89a4f0	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+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 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x875f773f	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x2a774964	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x401dc8db	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x616b2705	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x95d5bcfb	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xad2c4adc	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb9f50b6b	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc053d07c	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf0236784	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf0e8ff39	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf1b5a2d0	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x08d6feea	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x112e8ea4	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2f11e8ee	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x3bedcf08	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x8b8d4f41	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xe640180b	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xf671fa1c	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x01f79c40	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0422991f	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0a3a8695	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x131b3ff5	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x1763f03d	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37aa3b7d	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x3d8cf1f2	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x5d15342b	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x70ccc198	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7b74a32b	smscore_onresponse
+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 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xb74d2810	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbe63e232	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc202f1dc	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xca276654	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xdfff8217	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe490d1ad	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe75e9532	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3ae9b0c1	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4c305c58	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x52097370	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x61edd0fd	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x658de069	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6f96fe4e	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x71201e1b	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x78f61d98	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x871f6858	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x88a75a6d	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x93af6df0	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x97bba189	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x994ad895	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9dbf7568	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xad18037d	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb3a7b4ac	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc0d47157	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc6157794	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc72cac86	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd7d61bb5	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd7e5be1e	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd86b6d8f	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xddbcb0c4	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe7286340	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xfee3c312	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x4694e2f4	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x8c39660a	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xecf91043	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0xc03ca12c	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x059fb016	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x015a4787	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x02ed441f	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x120c1a1f	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x12b8a6db	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1ba7716f	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1eae5ece	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x25759b18	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3b7ce88b	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3beb7b45	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x42252a4a	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x62558488	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x62cfdfe6	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x86be3790	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x87b1240f	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8dabb4a0	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9af06eb1	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa1ffb5f4	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa20970a9	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa30f39a3	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa9112c2b	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbec44922	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbf6afc39	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc15fbb6e	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc7561958	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xca53f083	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdb3ef7f1	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe1e28c8e	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe92bb6eb	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xeeef59a6	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf01fc9c4	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfa4ca7f1	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x4bc52a7f	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x65f5b927	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x92e3e916	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xca368075	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x71157003	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0xd00655f7	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x9c700614	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x4cb52701	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0xd6f463b3	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x10e0c48a	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xc9defd4d	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x721f8e41	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x59e16b03	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x007e7a2c	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x03102547	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x074a25d9	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x08ea53ff	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0cf7603b	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x11ad4410	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x16992208	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1e0065df	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2d8a895a	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x31ff897a	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x39bd1557	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3d06ab89	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x486a1812	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x48e9cc62	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x492a637f	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4c94822b	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x52dcbcb0	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5fd1018e	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6529531e	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x78e602f0	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7b0c32d3	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7ba99068	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x84824e5f	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8f200291	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x90013836	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x900d4205	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9097956f	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x95ca65dd	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa19e6542	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa53190d3	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa90a8f64	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xaecf6fac	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb4c89e15	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb8b82c8a	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbbfb5e99	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbfeb6cde	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc0e2c880	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc56b21e3	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc7eab956	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd25e53b0	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee596f61	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4f7aef2	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf5079e97	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf616dead	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf93cc8f0	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfd7b7c68	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x022ca310	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x04cb6fae	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x32ed318c	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x33495931	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x59ea266a	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x61f69437	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x62cef315	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6b9268f4	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6fcc7848	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x7a9b847e	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xabee26f2	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb08fd551	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc2961c07	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd4a0cd4a	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd944d073	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe2869368	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe6833b88	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe9c09161	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf0ba64ec	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xfe4b72f0	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x0ad3a52b	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2ac0fdce	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3996afe0	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x42f8cc40	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x4be16887	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x4fd3f5ab	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x52f2fcb7	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x60da8656	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6820b720	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6f76c3d8	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x91584121	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc1fd6ae2	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc8bfbdc8	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd20abddd	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdc52e5f6	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe35bdb4a	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe7c5c7d7	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf4795f55	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xfc08cd25	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x0c83eeed	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x452e5296	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x55570e57	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x6745ab1e	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x85ef6d1d	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xa51329ea	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xdc1d75a4	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x30f922ec	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x3d02585d	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x4efddaec	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x652ffba4	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x8aee51bf	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x071e42d6	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x0ca8b0dd	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1c6b384c	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x4828c0c0	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x554f1b72	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xdafdf86c	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x4233b551	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x50915cff	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x0c078707	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x4fa9877d	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x85451aa9	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x8b785abe	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xc331ad55	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x00c584e4	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x06b72dcb	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x157cab17	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1ab113c6	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x24457c09	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2a250477	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2fc7bcdd	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4dc27fa6	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x56228086	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x580e76eb	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x81908be6	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8e3334ad	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9ced5104	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9f153331	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa53948b7	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb0fbd15b	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc750fa59	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd07c7b7d	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x1fab0ecf	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x51bade11	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x36a1169a	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x5d0ff225	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x4a17b0cf	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0xb15bb67a	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x54b370e8	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xdb4069eb	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x2b618961	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x1ed5ef0c	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xf01de002	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xc243429a	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xf8191575	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x3e8c9fa8	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0549e2ca	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x07459773	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x25beb245	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x27661c44	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x3a42f5e3	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x3ef82538	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x460dca48	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5306a2bb	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x75a02339	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7bea872b	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7d276ee7	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x87f78d34	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x9e498bbc	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc1e42c16	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc295da9d	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcaf759fa	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd2f1ed98	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xdc742348	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xdfe2c619	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe24d014e	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x8f747899	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x29784eba	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x058e4460	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x18d979fd	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x32c9f035	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3afd1e19	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x460e0c0e	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4d452285	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x51aa841e	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x55815298	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x65f998f2	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6b362436	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa219e3e0	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xaa8e8374	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb7e923e4	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbcdc4a42	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc713e4dd	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf3685502	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf6e454c8	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xffb84fe7	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2cb8b5e1	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x3967e537	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x484cba2b	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xa64d52b2	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x1618a128	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x59effcdc	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x6f43e74b	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x226f3e2e	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x36240a42	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x36fba48e	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x4d3ecb0c	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x55510d06	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x5bb2e0ff	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x960268fc	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x97ca16f9	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xcb04bb80	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe0ff1937	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x01f181b0	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0ba70052	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0ff43023	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1126e7cf	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1bb8cdbb	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x25fa6d85	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x286d8e40	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2c7bafe9	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2e84ddfc	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x398dc563	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x463857f6	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x49035a1a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x559fdf31	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x601b7a67	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x63438c06	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6c46295e	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x71fbcead	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x75db34b8	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7bfcece8	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x81731d69	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x84178531	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x952f2839	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9815af0d	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa090182b	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa3e199a8	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa8ba7caf	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xaf7228c2	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb4925f1b	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbee2cb98	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc7f140ec	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd1062668	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd7cba5ab	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf186a8ad	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf33d36d5	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf887ab65	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0b76efca	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0b7b1393	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1030402f	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x19445c17	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x195bbcf6	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x37a99634	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3f0aa40e	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x419c6956	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5647a801	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5a20cd12	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x89fbbea5	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8d504888	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x99e79194	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa356fe3a	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa53537d4	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xaac54fa6	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb6d82827	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb8947822	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbcd877cb	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc4b1d679	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc5932895	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xcc088c12	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd2c67a8e	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf3254f19	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x2d88c42e	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x44be5e3c	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x8d2e5dd6	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xd6346972	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x01cc604c	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x0923d70b	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x77449e37	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x065cceac	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x072f31ab	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x08c1a990	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x16a72d63	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x18c57653	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x263e020d	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2c704247	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2f171c6b	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x314b2538	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x39c42ba0	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3df9ba56	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x48f760d6	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4a04fe74	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50381e09	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x51792aad	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x538326bf	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x55ad93ca	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x564ae9c5	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x594832c7	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x59c237b3	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5d1f49f2	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x60b23887	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x61880415	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x625616bc	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7228eccd	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7390b73d	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7408960c	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x765e74ec	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x76b2cdf2	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x81fb633e	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8a0e3fae	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x922cbab8	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x975ba9cc	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9b1d5f30	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9c3615da	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9f1a640c	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fb09544	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa20436f0	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa34eeb99	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xab00c75d	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbae5840a	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc1cbf3c7	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc415994f	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc992d4a1	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xca3009a3	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd3c5145e	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xda97f73d	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdc3a629a	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdc636f7b	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe18c5078	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe9f8c4f5	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xecedf945	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xed3db37c	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeda9b40b	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x28936666	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xabd40c5a	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xb282777b	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x6ca827cb	write_hwram_command
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xaa39d01d	read_ad_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xbc834b65	write_hw_ram
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xf8e184e6	read_acpi_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x12b57ebf	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x1d4eb465	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x224ba556	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x2b5b28ed	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xa62a8efd	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xbf184f1f	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xc0532ec4	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x6bde649b	intel_lpss_probe
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x9aab4454	intel_lpss_remove
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xb285ff2c	intel_lpss_prepare
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xec73e138	intel_lpss_resume
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xf34e451b	intel_lpss_suspend
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x26d98c1f	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x3140937f	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x57e87533	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x79f5df58	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x968ae269	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xab3703a9	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xb6665a0b	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xea4da7c6	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x0248ae69	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xca8c5581	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xe42865f0	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x10609287	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x2ab5ac63	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x3da0665b	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x54e3c0e9	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x77afdbef	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x873e54ac	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xce35e50e	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x03653b85	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x4acb383f	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x8df31de1	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x190bdc57	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1ddcbf41	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x24eb55f7	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3c145188	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3c198dc8	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x447d4f71	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x6c7bc218	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7f214c84	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7f2c90c4	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x87907d30	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x879da170	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9f450a80	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9f48d6c0	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9faf2d23	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa8c4117d	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa8c9cd3d	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb5e2e648	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb5ef3a08	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc4a5603c	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc4a8bc7c	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdc70178c	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdc7dcbcc	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xea239801	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebf10c71	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebfcd031	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xee166f39	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf6d7fb44	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf6da2704	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x1c11dc19	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x2bb117fc	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x39bee294	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x6b0b5cdc	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x6bc15cb5	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xf87ebb62	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x146f6643	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x1aca8029	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x752ce1ec	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x77930fc2	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x797bd4e6	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x81af0dcf	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xaac59620	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xcda779e5	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd985851f	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdb895362	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xe3d82f0f	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x7a290944	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x89071d2f	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x0eb93b46	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x17ac104e	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x1f2bc0fd	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x5e35b817	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xa9dd7748	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xfe03799a	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/si476x-core 0x01d2ec5f	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0a8796f0	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1a58512e	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1c7e685e	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2bd13098	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x43c7d64d	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x45d6489e	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4d9f6b7b	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x50d1d7f2	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x525baa74	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x54db9b36	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5acef415	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6072231e	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x616ee99b	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x70ab1d80	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x73f5fa03	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xad8ea508	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb0d34fc5	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb487e185	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc01b2e4b	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc24e63e6	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc4c4fd4e	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc7ab6712	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcb101eab	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcf71db5d	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd183aa94	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd70e4578	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd9bb7c54	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdc2167df	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xddc23f57	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdf726ff9	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xedda680f	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf10050eb	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xfe7c79cc	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x1372800b	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x146fda60	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xa9ac712f	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xc250b648	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xf88e29a5	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x237da61f	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xbe7caaf4	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xc742c55a	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xd2281608	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x34d0dac7	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x1917aad5	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x1d52dbe3	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x49f039a1	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x4f911b47	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x4fd82b95	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x6f332d1b	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xc11b5595	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x00d48135	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0d0c54a3	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1d9d4f7e	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x29644b30	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2a72df9f	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x328cd7c4	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4627a512	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5477bd89	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x568b9b47	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x57599d02	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5b744758	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x609ade88	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x64712109	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x64ef64d9	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6ad12d2e	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x784d799a	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7acf8f40	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x98df650f	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa4e6c260	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbab4fe43	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc3956998	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd6d939fe	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe50c7017	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe735106b	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x220567eb	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x30f578a9	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x461d9c23	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x55e7953a	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x5653f908	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x59539c45	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6dc3d013	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8273813b	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb9faf747	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb9fafc46	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc8d39b35	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xe6cd2adb	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf371095d	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x241efbe6	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x2f021a97	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x89095681	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xd3155a36	cb710_sg_dwiter_read_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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x1f21aa88	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3fde9d49	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x5ab8bf74	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x5c12b35c	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x75204ace	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x8c7fc5e4	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x9faf0c0c	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xb7376489	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x2b183e6b	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3f89276f	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x4106cb26	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x49c7b4cb	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x58e40a9c	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x62339b6a	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x6919677d	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x82ac50db	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x0ab1ff47	mei_device_init
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x1f743611	mei_cldev_recv_nonblock
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x30120956	__mei_cldev_driver_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x382d7fdc	mei_cldev_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x3b7bcd0a	mei_cldev_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x4997586e	mei_irq_compl_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x56f97d0b	mei_stop
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x69e900cb	mei_start
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6da39a55	mei_irq_read_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x79ad771b	mei_cldev_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7ede4a5e	mei_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x81a4bb2a	mei_cldev_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x90a24af4	mei_fw_status2str
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x91b60a6a	mei_cldev_register_rx_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x999e9a09	mei_irq_write_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x9ab4af08	mei_cldev_enabled
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xac86fd09	mei_restart
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb8588ee1	mei_cancel_work
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xbcb874d1	mei_cldev_register_notif_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xbd8ea6f9	mei_hbm_pg_resume
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xbe94820f	mei_deregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xc93e86d2	mei_hbm_pg
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xcfae2b92	mei_cldev_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd230dc8a	mei_cldev_uuid
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd294f3d7	mei_cldev_ver
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe0489c4d	mei_cldev_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xef48e54a	mei_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xf5ca1e44	mei_cldev_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xf6e607db	mei_write_is_idle
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x23213cc3	cosm_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x33802582	cosm_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x46a6426a	cosm_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x8df6c2c4	cosm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf4e9e2c4	cosm_find_cdev_by_id
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x3ab0c795	mbus_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x7fb78c23	mbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x9565db99	mbus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x98d84c85	mbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x2026350b	scif_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x7934dffb	scif_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x867c9448	scif_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xdea8e190	scif_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x4cae9e7b	vop_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x7c101793	vop_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x7d4d0048	vop_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xf3a4fd08	vop_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x008439db	scif_bind
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x0aeb83e8	scif_vreadfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x1154bfcb	scif_register_pinned_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x1933dd59	scif_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x28ad7d22	scif_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x38aa3518	scif_fence_signal
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3f9d5615	scif_put_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x414672e1	scif_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x514a91ac	scif_fence_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x670f4f66	scif_open
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x6e5cef0b	scif_readfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x7d44f71c	scif_listen
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x867699d6	scif_fence_mark
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8f2fed3f	scif_get_node_ids
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x94f5576f	scif_vwriteto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xa863de0f	scif_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xac5616d6	scif_client_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xaf812e01	scif_client_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xb0c0c1bb	scif_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xb5d84e3a	scif_get_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xc638f44c	scif_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xdb8b18dc	scif_accept
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe428e90e	scif_writeto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe8775efb	scif_unpin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xeb97e5d9	scif_pin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xf356bdb4	scif_close
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x5b8bb699	gru_get_next_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x8dc51bdd	gru_create_message_queue
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x9c7283a1	gru_copy_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xd3d2bf04	gru_free_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xde08c325	gru_read_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xeed7d505	gru_send_message_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x1018eee0	xp_restrict_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x12333991	xpc_set_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x345c9217	xpc_disconnect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x39046c7a	xpc_clear_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x48e62c9f	xp_region_size
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x6285dfe8	xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x64ba5017	xp_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68d27065	xp_expand_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68fa7d28	xp_remote_memcpy
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x7d5ba9a9	xpc_registrations
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xc04c7267	xpc_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xe68acd6c	xpc_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xead4f7fe	xp_max_npartitions
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xed1d3813	xp_socket_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xf3b47f67	xp_partition_id
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x024d14bc	vmci_qpair_produce_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x046dd187	vmci_datagram_create_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x056837fb	vmci_get_context_id
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x1fd4782d	vmci_qpair_get_produce_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x2449459d	vmci_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a22fa8a	vmci_datagram_destroy_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a8dceaa	vmci_qpair_enquev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b	vmci_qpair_peek
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5591b58e	vmci_context_get_priv_flags
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5e949e0a	vmci_doorbell_destroy
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae	vmci_qpair_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x676bd843	vmci_qpair_consume_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7241ac3d	vmci_qpair_dequev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x75fe065a	vmci_send_datagram
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7c74d7a6	vmci_qpair_consume_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef	vmci_qpair_dequeue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xb572e830	vmci_doorbell_create
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbcb85f62	vmci_doorbell_notify
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc04c7e84	vmci_qpair_get_consume_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc403cafe	vmci_is_context_owner
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xca28b4df	vmci_qpair_peekv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xde3abc2e	vmci_datagram_create_handle_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe0cc9c92	vmci_qpair_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe11895c1	vmci_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1	vmci_qpair_enqueue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea143610	vmci_datagram_send
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea61eefe	vmci_qpair_produce_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0d3499f4	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0d42094c	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x121a915b	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1a476664	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1cf22d7c	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2f2b7801	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4588b49c	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4c634ecc	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x53501ad3	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6613b4ba	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6cf55ac8	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6eae5bc1	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x75f51c30	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x770460fa	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x79e05985	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8283fc20	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x86ee4eb2	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8f12b137	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x965252ef	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x97a92675	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9aaea6b6	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa293ce9a	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa862f6f8	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa91b6cc0	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xaa357895	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb3beb763	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb42b1eda	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbe446a32	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc2a764ed	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc4020eed	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xcb65ab58	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xcbbf4fee	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd1a38902	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe42219ce	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xed42dca1	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xed5acca0	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf46889f0	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf8acc4c8	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfbb17282	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x1bf4f967	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x45c77744	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x4d8f1eab	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x5fc97365	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x6b5a2cc3	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xedc366c1	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xef70fa99	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf0c3bfb1	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xfdb64f1d	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x03ed530d	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xc1da5373	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xfef3769b	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x129e2be9	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x9f35afbf	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xe167e46f	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x70a082e8	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x36c206f5	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x637ab12d	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x79e5e604	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xb1ddf07b	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xc399ac18	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x006f46f1	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x08e2239f	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0e23c755	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0e4ddb76	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x15264beb	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x259289d8	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2622e805	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x28a0afd9	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x36c3e16c	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3819dd3b	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3d962226	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x45407180	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x45d352af	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4ab18a24	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4d25c2cf	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x502b4727	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5250f2e6	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x52967455	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x55ca79f5	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5d410cd9	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x66318e87	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6e043bb2	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6e61feca	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x728af39a	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x733e02ca	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x74dccff8	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x794c4106	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x86d1e7c0	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x880ff2f8	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8d13a8f2	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8d26ed86	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x90d81553	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xaadeb9e5	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xaba96740	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xba208c94	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbc2fbd3f	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc2c01298	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc2c252e0	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd7e8a81f	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xdb5c4332	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe003d91d	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe3abe938	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe53aa2a6	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xeb05d1b0	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xebaf09f7	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xebdd878e	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xecbc9363	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xed63e078	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xee3aca5e	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xef49e1e8	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xefd8468a	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf3b29c69	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xff86999e	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x327a3ea2	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x3f798f96	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x4507e2e6	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x727ddeb9	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xa03df4c1	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x0cfc6b66	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5938ff92	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x71e7a2e3	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x753fd06d	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x8865483f	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x9980a9a1	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x9b05ff1a	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x9f5a6be1	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa45830da	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xb243e787	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xbd49a3a2	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xcc1ea3d8	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xdcc6a739	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x565536a2	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x84ab4da2	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x4e5964af	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x019282f2	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x16f71b3f	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x277b7993	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x370f139e	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x48246c0d	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x488997c2	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x62356802	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x647d3a9f	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6cf38d7e	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6f00e188	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x747c535b	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x83347587	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x871f9a9c	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9873c864	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa364be32	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xad2af954	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb02f615e	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb4f20ac4	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb76bff5c	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbe68d04d	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc4bf84b4	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc9009bdc	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd91f7be5	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xda92d8c6	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xdfb6f8a8	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf8b07010	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x9e6c66a8	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x3a2a3081	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x7b3262d3	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x126cf6f3	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x21c489e1	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x222847e7	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2fa8dbce	ubi_leb_erase
+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 0x4b27f44a	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x4f931068	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x74ca9ffd	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7fc9ff4b	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xa6bc5513	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xaa76d123	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xbda204e5	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd65a5d6c	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xef83a2e9	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xffbf735b	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xb0b5547b	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xd9dab512	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x105d5ba3	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x1efb554e	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x94a7c388	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xcaa0dad4	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xcc8210e7	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xfde49fa3	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0a44c393	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0d1e0e46	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0f5aff82	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x106737df	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x3022063f	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x3d857d2a	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x43356123	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x48c6e220	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x56eaa805	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6e14ea0e	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6e22d85d	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7233ff96	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x92d1d823	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x952034a4	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x96379278	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9a08b410	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa9721d95	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xb0f04ca5	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xb4f8f453	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xbabdfeb6	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc35aea54	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd164c4df	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xe3c29dd0	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xec31cc99	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xef0e2c78	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xfaaa1bbe	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x1ef0c6b3	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x21608f50	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xb8799e26	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xc85300df	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x22a61b91	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x30afecf1	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4cb24bf6	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4d77d1af	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x58b8633c	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x6e7f0fe0	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x868445e5	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb62e94a0	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x05398144	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x37aee149	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x6cbf8054	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x7f6ae7cf	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x72f1b44a	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x190b54ae	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x23c2c416	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x27788f0a	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5f3711cd	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x66f57fe8	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6eda8f26	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7e1c1fa2	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x87804969	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x899d8615	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8d6662aa	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa1c36bab	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd695eb92	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdf081775	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe0f36fb5	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe7d142c9	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xea34dc0d	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xfdad4cc1	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x18012f04	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x237de538	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3a3ff133	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x496a04d9	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x53b45a8c	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x596aa6b9	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x618e2f7b	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x693c82df	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6fc80947	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8cdcd38e	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x94253d14	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb0e523c4	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xcddf10d4	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xdcb671ec	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe76fed7b	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xec36a31f	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01125d10	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x013fb1fd	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01f5f694	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03ac91fd	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x043ad57a	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08b7b200	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c8f8db4	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e683b03	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f3543d5	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10aa2e5c	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12e3e659	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x147ac409	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15949569	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16c63530	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x179b9039	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18a9bd7d	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1a120e52	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e9e561c	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f2ebdbe	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25efed06	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28dfb5e5	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2be2d8e8	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c0fc5b8	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c9ed375	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2fc08f3a	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x340c78b4	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3925d239	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39569efe	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3965f6a2	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a313c4f	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ad7974a	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f9f2ed5	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x419fe77d	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4258d5a4	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43b74dff	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4497fdc7	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x486ccc5c	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a7c5de6	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4cbd1a52	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f013261	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x571b4ec8	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a019146	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d5b7d9f	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5de2352c	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f0c8c68	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62effda3	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65159e3a	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x66d757b2	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68cb6411	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6986966e	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69a93ccc	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69ebd5a7	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d2c98bb	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75b2e5e5	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x762a69ac	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77d90f16	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79d6a38d	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7abb4b90	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e835654	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f8afef3	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80b651f8	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81526998	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82bd00e5	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x841c7669	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x849686e3	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85edce14	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8683fca6	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8778ea85	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87ffffc1	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8822c3c8	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x890554c4	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x890f1a2e	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8977c1df	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c02dbe1	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x909279a4	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x930d0328	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96a7e27f	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9981909b	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b257848	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c022651	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ca8310c	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fffe788	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa04c9ece	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0e72fdb	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7285b95	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9176ded	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9f375f8	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0b14fcb	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1e599c8	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb26d1510	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2cb49fd	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6f98817	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8dae472	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb997d06f	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba179829	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc9123aa	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbcf2777e	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0d7820a	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3fe3866	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc468df89	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc94a782e	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce1f9320	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd287f997	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd34af744	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3cdd4a1	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6ad08b8	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd90b1a2c	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda63b44a	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda6dbc2f	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd17d2d6	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4001806	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe42eb776	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7fa5a5b	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe94e094d	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9b4760b	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb8493fa	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee3ab1a4	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee9ee66a	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef32b3f9	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeff0b73e	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf87450e5	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8802a66	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf90e11c0	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa1cf1a3	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfae5b548	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc785d7c	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00995b9a	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02cdafeb	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03f80b34	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06ca3a03	mlx5_set_port_tc_bw_alloc
+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 0x0f98b457	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10198ab3	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1148d4ef	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x129d3c99	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18ff697a	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1fbfa9da	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x216d7545	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24b3c608	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e1d922f	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3375e3aa	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x342c2e43	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35103df9	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36975387	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x388b827c	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38e21ac5	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3c253e0c	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d88e1ad	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41a62d4d	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43f2bff5	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4962a586	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c710e0e	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e1d93c0	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f6fbe8f	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x533904c6	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53a72b93	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x540b25c3	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57249ae3	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a86ecab	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60361721	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x655aba4d	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65aa8d38	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6748834d	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c6fe04b	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f3f262a	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6fdbaf42	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73d998c1	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x764295fb	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78a189b8	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79353844	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c4f2e5f	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x813cdf13	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x895167a7	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8cba6336	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d2591af	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x926f58fb	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94a88839	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94c336a6	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96d0fcf6	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f4c1dda	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa118bfe4	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2069483	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa365b349	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaac37f5c	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab73776f	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xacf43846	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6b7685	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae2f4808	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3e88dbc	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbdad5b45	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0f6c9b1	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc58e323d	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc636ddde	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc64c4cbe	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7831970	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcaeab6bf	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd05d9c49	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0afabf7	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd265b13b	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd29424e7	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe180a17d	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe23de585	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe24d1e11	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe56833f8	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeab62f6b	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee0a556d	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee9a902e	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef9d367a	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5f38de6	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc577eed	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xffa2334d	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xffedd71c	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xaa760c64	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/stmicro/stmmac/stmmac 0x17d8cf76	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x6c86e4a3	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x93cb8d3e	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd6a655f8	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2f3b431a	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x936d5730	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xbfdef662	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xc2592119	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xfcbdd28c	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x0e0eb27d	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xa7fa44bd	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xbb1bb704	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xdd8ad2f6	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xb3826325	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x07a5af1a	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x348c9337	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x6fccaf8c	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x78c0b199	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x86a2e69b	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x16bbc6e9	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x330eff70	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xb3585964	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xf0be02bb	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xbfd5cb31	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xe1e31f23	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x034c48f3	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x15833dfd	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x1d1e38e6	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2d1b707c	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x34390591	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x35da6a29	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3afa6b1d	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4be1f1e6	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x56baebc8	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5e246678	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5e6dd0c6	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x634d6828	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x683bce51	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7ba5fe69	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa40380e7	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xad0c77a3	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb79e17bc	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe7f910c9	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x0b53a448	mdio_i2c_alloc
+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 0x29b5c796	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x5da28182	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x68b9d400	phylink_of_phy_connect
+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 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xae7b63a7	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x10826ebe	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x25286273	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x392be85b	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x7fccd663	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xa7c4ca40	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xa86e6f76	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc80d1375	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xf408e6e2	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xf97397d6	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x17c0d513	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x2347d54d	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x5e33a863	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xb13a8a4d	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xc49115a8	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x03d929de	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x079ace14	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x18ade9b7	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x590e1969	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x74417752	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x95cb7537	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc9e312b1	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xcee6e3a1	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xfeba6028	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x019b0c9e	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x5cb7f546	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x863d186b	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xab2670fe	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xcf0cc37c	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xfb29f111	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x01b11d08	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x062909b9	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1c2205c7	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x23a14040	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2993b739	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x33698715	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x34f41e64	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x356eff6d	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x375db796	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4858e629	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4a3f4efd	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4c14463e	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4e27edfe	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4f56bcbd	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4fc029fc	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5a808e9a	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5baff92d	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x67f9eb41	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x748212ee	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7b9495ff	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7daac815	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x91997b75	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x970d655a	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9a2755f7	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaeecc90c	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc1b8a66c	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc745c841	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xcdcc37e3	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd102b244	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd618a610	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe1c0e690	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe3080ab8	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfdef3391	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x589a45e1	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x68cc8bb6	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x731302c0	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x9b18c178	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x09bb75a1	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1bd83589	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x209c8c75	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x2dfe82ba	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3a051c62	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x40e1ac55	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x672d0e12	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x67e35528	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6aef937b	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7161cee6	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x83b18fe7	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x85be12da	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8cffb672	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb19c30c8	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc2ad1077	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc319ba08	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x82116edd	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ad72aa4	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5813d879	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x932a52b6	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9bc11a71	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf4221ab9	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x04d09749	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0d6c006a	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x13e692d0	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x173b4280	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x188ff876	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1a305bf5	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1be7e8d9	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c5d0579	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x264cfeb1	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x292da80a	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x29b186e5	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2dc661eb	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x30345e45	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x30b4fecb	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x30ce1320	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x39bbf436	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3c92320c	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x41703585	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x42e79c74	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4455234e	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x47690788	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x493fbfd5	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4c7349c0	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x50848ca4	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x59f8329b	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x606644af	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x63b3e7d4	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6a850a46	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x760d293b	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7ef63867	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7f619d89	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8372e3c4	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8bb9ea9f	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8e45e71b	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x984c95af	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x989c6b0e	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x995f9ad8	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9c0aeb2c	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9c36be4e	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9e7170a3	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9f8e3e28	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9f9657a2	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa56eb23c	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa6856dcd	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa7167be9	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb71a0b29	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc3f9329e	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc86462b2	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcc3017b3	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd20f49b3	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd73e3c11	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdbb6772b	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xebf17f7f	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xed52976d	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xeef6ef44	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf39288b6	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf5a2ebb4	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf7c1b4ad	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfc9c0169	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x083517d3	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x2075e821	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x4640fe42	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x84390c49	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x9565e010	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xa07fe761	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xdd5cd3b9	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf269f25e	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf70403e7	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0cd89848	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x174c72a4	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x34138524	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x4950165f	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x7b769b83	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x89317106	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x89d692dc	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa0f0df25	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa90e7ecc	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xade9032e	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xae674f63	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb3787cc2	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb75cec50	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc9c6ae41	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd71c5f79	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xff51177f	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x03f1ad19	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x3aafa141	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x4362a683	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x62ceddcd	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x79a7b8e9	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7d777d3d	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x8140a9b5	lbtf_add_card
+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 0xd5c32707	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x03e60e8e	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1032a1e9	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x12f07935	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1712cce8	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x17fa88ab	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x282c438b	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x294803d9	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3522af78	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6a4866da	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6a4ba7be	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6ee184a6	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x718f1c44	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7c77c7c3	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8c6af9cb	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8e58d222	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x94604595	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x949c0437	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9e29868d	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa640ebf4	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa937ae02	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb0b60c6b	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc8c8bd70	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe5669a47	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfde3c0f9	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x00bbbc90	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x02d46a9f	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1024c2f1	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x14c53ed4	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x187a9519	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x22169f21	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x24539de6	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2532f429	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x29a1b030	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x29a70423	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2bc56681	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3814b020	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x39fa14ab	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4505d8eb	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x47191394	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4a016a5b	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4e393dc2	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5567bf50	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5a9a455f	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5bc6d68a	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x61c92e5f	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x70de5d0a	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x73a49f5c	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x74c425c3	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7654280b	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x775e5ec4	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7ca4e5d1	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8360a7f1	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8528e464	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8b4c8554	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8c53d01d	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8cfb5ac9	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x952e72a9	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x953d0a1a	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x95e3e1eb	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x970df86b	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9e773eff	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa0346c55	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa0b7259f	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb0c0b0f6	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbd0d67a5	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc2d0405a	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd6d7be17	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd7369a8d	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd8f43ef6	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe5a33a78	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe87e306f	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe9849f89	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeb2d2781	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xed1ff69a	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xefbac8e4	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf7571400	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf890ff7e	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x33576d0b	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x44b7a4ad	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x527f720d	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa3a84a45	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa63ec5fc	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa8eb4487	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xad3e3a05	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xf8bed791	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2e59aadc	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x5f23696b	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x683159bb	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7019d9f7	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb5b9bdb4	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe723cdad	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe9ae45ea	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x06806a82	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x090510e7	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x09edd75f	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0cb47932	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0e56081f	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0ea0ec93	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x18ae8ffb	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x18d133e4	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1fe2a512	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x212c9057	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x239bf724	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2a7ff54c	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x302a90d8	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x332c601a	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x347deacc	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b373d10	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x43651361	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5349e466	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x55891046	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x642a6119	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x650dad91	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6a0d886d	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6a9d34ae	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c67846a	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6cd22ee7	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6ea6cf77	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x71d52d6b	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7a61f3fe	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x815bba3b	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x819057ae	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8313975c	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84acaaf3	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84f95d10	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x85fe0791	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x877d6c8d	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x88c267f1	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x908cdad4	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9c5f96c7	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9d0aae33	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa06837f3	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa52bf67e	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa77ee5ff	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa83a994f	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaa2e3cad	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaad3b9ab	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb1d7e530	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb58e5e0f	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb8e44ccb	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbc556949	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc0877cb6	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc51cbafa	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5bef63a	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc9868b2c	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcb3cb06b	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xce85d700	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd058d879	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd9914bf0	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdd924077	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xee27ab3f	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf1cf0755	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf6c40bf5	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf72297be	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfaaef466	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x27749d71	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x57a9a7d4	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x66e1cfff	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x8b44c9cc	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xad296a06	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb5bac452	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe5144bcd	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x015b7bbb	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x015f1d1c	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x12cfe989	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1520d0ec	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x16ce5491	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1ce2cbac	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x319bf40a	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x45473ab3	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x617ab774	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8638c3fe	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8c880aaf	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x921c75af	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9d7654a7	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9e0d9a9c	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa2fd8ae0	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xac809ac9	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xbfadf641	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc17acebc	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfadb3ae7	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x429d3339	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x71328cb2	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb3116e41	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb49f0850	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb9f2bf63	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xbebb9225	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xd8cb15de	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xdcdd536c	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf34598f3	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x004c4574	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x024c1b72	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x03993837	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x053410c2	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x087fce75	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x09bacfc2	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b8b67a6	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0f698e0b	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x194ec384	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1b8ccfcf	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2c220c9e	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2ec47840	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x33243b30	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x344116b0	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3609f751	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3f024d39	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x403610bc	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x41f4d0a4	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x44e78585	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4814b4c1	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4bc004f1	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4be07bab	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4fc6e722	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x58fe4be0	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6787839e	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x741e49eb	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7ebbb8ad	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7f72cfd0	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x96b36be2	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa563bdb6	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa9fa119d	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xab558e56	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb660b2d6	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb768a18f	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbf1fdef2	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbff8d0fb	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc18afdb2	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc9c71e54	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd9bc37f5	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xda748375	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdb822d1e	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe46e7b7f	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe9dd6296	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf651848c	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1ae1b74b	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x524a17e8	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x63d88782	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x69b488fc	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x79e4d9e5	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x866a4f72	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8d3102eb	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa4a2f863	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xac749b1f	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xad07df2f	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xae2d91b1	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc2d9cf4e	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xce5d5590	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe635211a	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf2489910	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf6df238f	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x01cffe74	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0594cec2	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x06c46024	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x101fc44c	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10d54491	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x11f7bdba	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1246ebc9	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x14be4ccc	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x15c6d9b0	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x16a6ca5f	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1700ca74	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1ddf26b9	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x20a5e691	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x22f6189c	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2c40f68f	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2e5312a4	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x419dcdb1	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x43abd073	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5cc7004a	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5cfa1d5c	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x69b376b0	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6d4ce083	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x786dccf8	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7a10d995	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7eacd1b3	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x805f476b	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8617ccb6	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x885452d1	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8a0485f3	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9d2bf121	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa9c75751	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb45e99c7	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb6696295	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb96c3d40	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbbaafba3	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbef041c4	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc14d68bc	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc2df532d	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc71a8c88	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd29ec282	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5e23fa9	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdaa82f11	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe2d81d18	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xec6e5b56	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf3c52882	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf706225f	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x19550113	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x2cd86341	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x3afd12b0	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xb1daef36	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xd66a1954	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x80674d54	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x9ef12c48	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xa7298cbc	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xc088c9d6	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0174a8d7	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x097824fc	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x12a57eca	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x163710af	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1ff964ce	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x425b4de9	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x4de42c7c	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x52ec6f79	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5ee5e1bf	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x60e5c9b9	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6b4ce876	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9c6e2f2e	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa05ac6a2	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa528cc0d	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb45c0a77	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc71f93d8	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x276424b9	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa974b7b2	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe9b16392	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf89cc7f0	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0b30750f	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0e2703a3	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0e792e6c	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x147ed330	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x171cdc87	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x24426fcc	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2519834f	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2c79e89b	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x34459349	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x35aa34eb	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x374838ab	rtl8723_dm_init_dynamic_txpower
+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 0x41c049ba	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x692093fd	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x69f3e5ac	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6e1f57b1	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6fe10cd4	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x74515aad	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8b039bba	rtl8723_download_fw
+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 0x97d107d3	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9f483e13	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaf65ddc8	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbd4b1551	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd8b73a80	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe47e07df	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf9a9d031	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0002acda	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x05c2fe27	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x15b339d6	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2cc51ac3	rtl_ips_nic_on
+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 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4fbcd674	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x511ce507	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x51ec7b12	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5a080430	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x762eafe9	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x76396c04	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x79b2ddd5	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7b8cf3d3	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x869c568d	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa153ca9e	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaa3f8394	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb286fc1b	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcd7fe46f	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd1123be4	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdbf00df0	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9666b1e	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeb1a450b	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf36e9ac1	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf79a1eb0	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf9b6bafe	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xff98964e	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0ff43f30	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x18e53fc3	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x1c4dbf0c	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcaafe2ce	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xd7db1c22	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x04700aa4	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x149e4e09	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x2aab83da	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xcae8772c	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x0474a46b	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x92eb1154	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xfa4fe560	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06eeef87	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x13b62338	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x16eb96ba	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x199500a0	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1b65f15c	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1c32e1d7	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1c55bc31	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2141b956	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x25a1ddf4	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2e8d93b7	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x32d6f798	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x36d1c965	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x378c8d94	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3d159f9e	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x41227fbb	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x42ef62a5	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x45c44f88	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x45c7f5ea	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4cc9533b	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x57a6455c	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5a74cedc	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5b3af89f	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5c817cb0	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x66b7394a	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x68b228d3	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x753101cf	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x83288a71	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x848ccb4a	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8fabbb71	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x94706a19	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x94c29721	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9e9de32d	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa30f7c9f	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb0ca4d6e	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc11f6400	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc70baeeb	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc984a5fd	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xca75a20b	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcb0e88e2	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcc8b048e	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf500bfa2	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf98138e1	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xffbb63f6	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x29aad15c	mei_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x74a017ec	nfc_mei_phy_free
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0xf74e413e	nfc_mei_phy_alloc
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x40928e96	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x741cde1f	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x8966cf5f	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xd197ce1d	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x03d71b73	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x4aff5038	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x685d314c	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xcc36c453	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x1820f00f	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x239151a5	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x3aa1caca	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x4b058467	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x662b2fb2	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xadcbdeaa	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xbec418e4	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xf89f0b75	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x0832ff8c	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x1e4e983e	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x6fe620b6	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 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 0x41013a9c	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x49ae596a	ntb_transport_unregister_client
+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 0xb58b6f36	ntb_transport_create_queue
+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 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 0x2ae9ed83	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x91057024	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x07caf6b0	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x08f9a6ee	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0a18a983	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1ec1eccd	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2585f2dd	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2629965c	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x27bfc6c8	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x351fb4d2	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4aa9484c	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4b150c3d	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x576f3abc	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5c4468d4	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x631ed7f7	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64fe4937	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x66ab4d7f	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x69c801db	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x72d8e526	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x75004295	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x79562148	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7da72fb4	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x840ab43f	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9275b8f0	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x92e32abe	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9427330c	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9f640b33	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa60292ba	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xab9cab42	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xac8ccbc8	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb52d00ef	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb911c4a4	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb917f8ee	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc3b8685f	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdb55dcec	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdc748734	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdef1d2e8	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf02a2a22	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x12d2402d	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1e79343f	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x40c28015	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x513f4214	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x98e8c7e1	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9dc1f151	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xd1217af5	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xd54f8cfd	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xdbb695fd	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe6f2b22f	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfcccf2f8	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfe809e14	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0x9e3849a1	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x298fdb3e	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3657e358	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3ea84880	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xa69af217	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xa9d9de2d	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb189603a	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb7c473b1	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xba6c99cc	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xbce25ee5	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xd25a6b2f	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf370efdc	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x39728d59	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x1591b2c6	hyperv_read_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x221394ae	hyperv_reg_block_invalidate
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xe5f73406	hyperv_write_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xfb921e00	hvpci_block_ops
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0xc0217239	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x182e80e7	intel_pinctrl_suspend_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x66c1ef2c	intel_pinctrl_probe_by_uid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xaa2bd6d5	intel_pinctrl_probe_by_hid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xbfb6172a	intel_pinctrl_resume_noirq
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x2a1ec555	wilco_ec_get_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x3147533d	wilco_ec_get_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x4a18cd04	wilco_ec_mailbox
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xb465b269	wilco_ec_set_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xf2ab8b64	wilco_ec_set_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x57c46ceb	asus_wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x87d6e994	asus_wmi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0xcb2f53ec	asus_wmi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0x51552fca	dell_rbtn_notifier_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0xa060fe7d	dell_rbtn_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x1b0b3141	dell_laptop_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x3a13013f	dell_smbios_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x45170471	dell_smbios_call
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x7fd2ce06	dell_smbios_find_token
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb1f35b37	dell_smbios_register_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb9400dbf	dell_laptop_call_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc2871e79	dell_smbios_error
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xd6c6b12d	dell_laptop_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xff043f34	dell_smbios_call_filter
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x8eef8246	dell_wmi_get_hotfix
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x9559234e	dell_wmi_get_interface_version
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa167d064	dell_wmi_get_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa3dcfa65	dell_wmi_get_descriptor_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_ips 0x46809fa9	ips_link_to_i915_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x659f040f	intel_pmc_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x9bd9354b	intel_pmc_gcr_read64
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xa7f53967	intel_pmc_gcr_write
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xad38eacf	intel_pmc_gcr_update
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc49eaee5	intel_pmc_s0ix_counter_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc845c71a	intel_pmc_ipc_raw_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xd2a5d365	intel_pmc_gcr_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xdea07053	intel_pmc_ipc_simple_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_punit_ipc 0x8ee9455e	intel_punit_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x06f7821f	isst_if_mbox_cmd_set_req
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x52b1e62a	isst_if_cdev_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x58a8261f	isst_if_mbox_cmd_invalid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x861369f8	isst_resume_common
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x9a5c38f2	isst_store_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xe18f42a5	isst_if_cdev_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xfbcddead	isst_if_get_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x1c7565c2	telemetry_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x35db93a6	telemetry_get_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x3d2a8587	telemetry_set_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x4cb51f18	telemetry_pltconfig_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5847f501	telemetry_clear_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5bb8e91a	telemetry_raw_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x665cd407	telemetry_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x6b892524	telemetry_set_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x82bb2dbe	telemetry_get_evtname
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x90551504	telemetry_add_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xb75bd1e6	telemetry_raw_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xbb9a2726	telemetry_reset_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xd14ffffc	telemetry_update_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe1eb4be1	telemetry_set_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe8847f53	telemetry_get_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xf00771b0	telemetry_get_eventconfig
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x232b5238	mxm_wmi_supported
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x61cdf799	mxm_wmi_call_mxds
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0xe26032eb	mxm_wmi_call_mxmx
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x065b4695	wmi_get_acpi_device_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x17b0f8ca	wmi_get_event_data
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x41cc9291	set_required_buffer_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x5bef1fbd	wmidev_block_query
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6068bedf	wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6b916703	wmidev_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x76ae31fd	wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xaba842fe	wmi_query_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xc9d4d6d1	wmi_has_guid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xd7752b86	wmi_set_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xf18bdd75	wmi_install_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x178fe169	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xb96ec49f	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xd3f278f0	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x14ec984f	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x166bcd00	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xf19dcc2e	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x4b9c4d19	rapl_remove_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x8c1002af	rapl_find_package_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xae193e3c	rapl_add_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xe235b78b	rapl_remove_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xfa643daa	rapl_add_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x7a9c127b	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xbcb8f4b3	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xe8095ecd	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x0847b06a	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x0c3cbcdd	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x27ba5a29	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x601bc8d1	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xe660cbe5	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xef5a810a	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0xb5dea0a6	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x42bf7513	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x085083a1	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1324428b	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2e52507f	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3032ed45	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x309104c3	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x399155be	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3a997c31	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3ad4f859	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4ab23f4a	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x54f328cb	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5525755b	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x580a0128	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5d992e3e	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x65eadcb4	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x67acb336	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6862a425	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x75fc6a3c	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x77ad711c	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7a83a411	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7aec8619	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x87065c3e	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x89c40207	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x94c44d7a	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9e0137c1	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9fce144a	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa2321686	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa363c200	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa5c13a61	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xaf7820c1	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb228dd39	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb3737b42	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb96de930	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbdd351bf	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc0892077	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc2b6105a	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc75974e9	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcbcdc40f	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xce0e1845	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd35845b1	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd795a7c8	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd8e871ed	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xde34d877	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef59bfc8	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf9225575	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0199f6a2	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x23deac8c	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x39c07888	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3d6be570	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4631be88	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5333e048	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x658789f2	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x996ee645	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xaa5e113f	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbb68642c	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd4b39a88	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe2ea1e05	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf05806c0	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf5c0c2b7	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf65325d1	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf9aa0833	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x07187062	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x2b3789b0	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c7c6002	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cf9e29e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61eabfa8	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7ff195b0	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc6125854	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd93b63bd	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe13e6489	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0839e6eb	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1a1fed77	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1d1d4d38	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x21d8f5f5	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2bf869ae	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2ecb8d5a	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x39757a78	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3d02656b	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3f004949	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x41243791	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x47e760da	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4f62bfbe	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5163fad4	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5b9d55b4	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x61288d56	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x66578d27	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x780f1d80	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7d8c94da	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7dd29e48	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7e90b042	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8500ced4	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8c7ffe33	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8fa00c64	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x913fb492	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9c02325d	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e723b2c	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa27751f3	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa297cfc5	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa61f5e53	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xab95f744	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb1b5c1b9	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb799cf55	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbe7a84f3	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc4039ead	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc9797966	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcd67d619	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcf39e16f	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd48c3153	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe19d8b6b	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xede54aed	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xee160fd3	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf56f0124	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x02655eed	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x09accba4	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2b6dfe0b	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2e296d62	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x370df331	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x45358566	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4ae90feb	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4bdc456b	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4fb1867a	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5df0daf6	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x854bd438	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb3459e83	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbea010fe	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc0c4eb42	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xcf4af87a	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf78ed123	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfd7ca734	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1518b761	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x22c4179c	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2a7fbd4c	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d198b1c	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x561a8c71	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5b44d439	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5f3364f7	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x632d5568	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7332beab	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7435ac0b	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x87b495e0	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x938a12f6	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9e3df31a	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9ed4cd8a	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa4f4b02c	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbae7aeeb	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbe04853c	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc983cbee	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd5858fe5	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd6e73ab4	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe4a5aaa6	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf3726e55	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf6ce960c	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfe1caeba	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x03a3c18d	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0bae8ac5	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x12842766	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x145683bb	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x38417608	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x40c215f5	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x415dbb35	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x41b6c0c8	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x43360072	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4340cf2d	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4db0ec47	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4dba9c49	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x50d6e1d8	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x522ef280	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5780eb5b	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x630a7e0e	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6868ae97	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6d845ff2	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6efc136c	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x79295ea5	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x90a52364	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x91953b8d	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa3853be9	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa84e2bf6	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea1ea9c	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb17f0c0b	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc1c1abfe	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc6ae665f	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc99de526	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcc48a327	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcda26d07	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd1f9ef2f	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd2cd2cc8	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd8ca168d	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdad37314	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe4dd10cf	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xeab5809c	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf0f7d602	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf8e9b686	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x05f30410	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x2e65d7a6	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x6b8db726	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x837ccfa3	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x3da4be9b	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_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 0x29c58785	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x779120b8	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xb453cf27	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xb8f752d6	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xc3649602	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xd024dd79	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x1d1c65ec	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x253b836f	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x352466b6	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x42dbcffb	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x6f9983b2	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8874d5af	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x9b9f83c5	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xa0c3d4cd	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xa4bb4f46	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x3952a0c2	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x8d624df5	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x924025f8	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x94f86401	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x981e7143	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xb80b565d	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xee5ac974	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x51cf9c9f	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xb0abdbf7	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xbe215ee4	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xcc78d81f	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xcf0b2502	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf86e5a21	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x12bc9445	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x14a2ac3a	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1f494f06	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x23db0870	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x256a27be	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2dbf00c5	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2e16ac51	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x36e6b988	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x399c0c47	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5341926a	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x54cf9558	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x658c5b28	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7801c21b	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x78ad3ae1	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7c69c1a8	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7e14ea58	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x81ef823d	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x913965de	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x958e5ad3	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa3e3b994	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa4cd4df7	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc3045a95	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcc846515	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd91f8d06	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe5927402	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xff893b22	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x02a02427	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x7bc4dbdb	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xa441e0e8	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-cadence 0x36c97b4a	sdw_cdns_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x0890708d	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x1aca21bb	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x1d535aa1	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x216343d0	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x4674ac3a	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xd41fe6ac	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x4db00537	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8c621925	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9beac183	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xc80aa54c	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xffa8017a	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x3d49ab23	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x48724841	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x7455d638	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x00e8b9dd	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x057a2c4e	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0e5fff77	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x11963380	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x137b77ff	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x21d8659c	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2836dd5e	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3592077c	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x391a501b	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x81a9b62a	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8abc6863	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8e01c22f	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x90d0faaa	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x929abc1c	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb7d35a7a	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd2cb9c32	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd699d4cb	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe195eafb	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x77fa4c5c	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0d5a9412	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x256860b0	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x274cbfc1	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x38797a49	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3aeddd8e	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x46e61f54	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4a7fbd3a	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4c949ba9	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x515f28a1	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x524500d6	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5b9132fb	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6502b7b8	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6800ca5b	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6b519183	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x762a9851	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7dba6f70	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8013e1e5	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x84db51c6	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x93dd1408	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x962394f0	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x96a19b40	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9833a624	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa2d7cfb4	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa40bc0f3	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa4a7d3c4	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa899bbb6	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbfcaeb37	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc4df8536	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc6531c8d	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xcb098380	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd0e7e7e9	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd50aa8d5	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe0edf75c	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe1cc5296	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfb0dab44	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfffa9334	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x0258297d	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x3a72bbba	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x4877aaa2	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x6226aed4	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x65285a54	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xdcbd3906	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xee8764e2	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xeedeb26b	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x432f1acc	comedi_to_pcmcia_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x6ecc4ecf	comedi_pcmcia_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x71683599	comedi_pcmcia_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x758b3825	comedi_pcmcia_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x79b3e73a	comedi_pcmcia_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xf324de91	comedi_pcmcia_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xfa24ef54	comedi_pcmcia_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x25af2694	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x707ab123	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x81fc3ba3	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa29200ee	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xbc0350b9	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xd6480a65	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x66e0b7ad	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x69ea98ee	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xcca8fa42	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x9e0c4423	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1678c0c4	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1d2c980e	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x3efecc47	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x43546771	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x77d8aaea	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x86080a21	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x8a509c15	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9a43e705	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa49f5f80	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb960d03b	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xbcfd284c	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xbd4ec5c9	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xcbee13ba	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x2d233549	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x7ca7f555	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xa894eced	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x270ff1ad	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x34c80671	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x50522055	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xa73ee71a	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x16abc4f0	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1bc9cb93	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x301cc5b5	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x31e4ad38	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x381e3a0b	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3c4dcdf5	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4375e214	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x49ca3492	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4f7f85b1	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5c7f46c2	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x73244c1e	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8016c8a1	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xd0007b4b	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xe7a1f3ff	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf38e14cc	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf7467dd2	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x2a5f25c8	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xe1f2f4d1	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x0c8a79b5	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x21f00336	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x364a5b3e	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x5c6f841f	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x7aa34335	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x0edcce41	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4d982498	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5334a1a6	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x53ce74c2	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x54489aed	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x64886bda	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7c940649	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x80376b05	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9bb649a2	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9c3df043	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb09f7f6b	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb1c3ace0	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb7990526	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xd3417c23	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xec7e60f3	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xf493a884	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0a768538	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x207079a2	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x3d88ed78	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x43031958	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xe7ed2dd9	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xffe3d378	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x524c4b29	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x6f73bdca	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x86c0422d	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb3eb0fcf	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xc18d5826	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xd3e0de4f	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xea507ca4	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x536a0a11	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x643c188f	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x6d3a18d2	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x9ae96d44	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2582d541	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x35e2114b	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x48bcc27c	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4ed26c42	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x57432c7a	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5ac09ee8	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x78303b53	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xac138b59	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb8f120f4	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc33104fa	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd351c0f0	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd54af042	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf23c12d9	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x048130ae	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x0642d0de	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x434adc39	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x55da4830	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5a378831	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8588f7cf	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x880b0f6c	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x9e4b5de9	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xab21fa50	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xafb99c11	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc080fb28	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xdedd1ab6	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf96acd24	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+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 0x944132ea	gb_audio_manager_put_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 0xe88d2704	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x4051a1c5	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0xea4a853d	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xb10b0219	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xe7344990	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x813dc2d4	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x19deca00	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x1b3d3978	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x36fe5376	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3af01d92	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x516d95f4	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x64e920f8	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x70666780	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x737ee4b9	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa4fac633	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa6fa3c41	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb7612bac	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcb5c1bd5	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xccf8b925	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd7421f9e	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf2e87d6f	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf79d896a	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfe91d86a	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2bdf03e9	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3e8cef3d	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x45cea8eb	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x493ab6f7	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4969b933	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x49b9904c	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5bed13cf	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x73f13605	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x741782da	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7b361d0b	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x95bc2a42	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x9e37ff6d	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xa49f43cc	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xcb43e736	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x02f7bc45	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x0475c09a	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x0f5dddc4	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x110ab4d1	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1dd0363f	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x28f10479	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2d68549c	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x65301cce	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6b491394	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa58c1f6c	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc4ede6c7	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd0558ca3	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd0edb045	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd3c4f785	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdae157c0	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdb64f124	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdd3ab200	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xbbc548c9	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xdf4c82ac	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xf9066846	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x5d0b1ff2	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6a6e5ff3	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6b112e82	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x8ed355b2	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa4ad1243	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa4b184ed	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb0df5f10	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xd5c72813	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0ef0f218	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x12aa14ad	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x137f6509	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1ed9bd86	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x289f735e	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2c727f36	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x37b328b0	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3884cb67	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4056c795	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x466c96b9	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x508a1bf3	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x53d70cde	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x563b68e1	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6341fdf2	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x635befe4	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6c1e697e	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x75b3c8ea	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7b78881a	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x82fcd9e3	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x885d747b	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8c79beec	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9fae11ed	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa45f4a05	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xafa597ce	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb3ccfbbd	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc6741a4c	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xce20b683	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xce48a43a	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcfc8d780	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xdc070f68	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf0ff0008	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf35bebb3	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf63207d1	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf98880bc	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfd0a7b3e	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfd2a9f71	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xff407b9a	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x6015c61c	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x29b5cac5	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x39584fb2	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x6640c94b	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x80072ebf	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xc941f777	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xeca3eff0	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xef767361	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x0a038a23	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x30f0bcf4	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x52baf0b1	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x88db8297	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xa734a9a0	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xe19e1343	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf3da534b	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x067f81cf	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x28464a69	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6ee92d53	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x75893dae	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x93c8b968	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x95a26f65	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb8182e31	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc4f27386	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc9707a5f	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xce303167	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd6d4f63e	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe0df0f75	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe3dd27d4	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf15777f3	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x0745d4cd	int340x_thermal_zone_remove
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x1860e8bd	int340x_thermal_zone_add
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xff2fa733	int340x_thermal_read_trips
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x0c1eaee0	intel_soc_dts_iosf_add_read_only_critical_trip
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x8eee05db	intel_soc_dts_iosf_init
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0xa3dc8b34	intel_soc_dts_iosf_interrupt_handler
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0xd81a400b	intel_soc_dts_iosf_exit
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x01d23ee1	tb_property_create_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x046df3d5	tb_ring_start
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x10732d12	tb_xdomain_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x1acd573e	tb_register_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x1cc42d12	tb_xdomain_find_by_route
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x1f6f9b4c	tb_xdomain_request
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x31a78b5e	tb_xdomain_response
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x325cd616	tb_ring_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x393b4f2f	tb_property_free_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x3e1e1ef1	tb_ring_alloc_rx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x4185b6af	tb_ring_poll
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x42276ddc	tb_xdomain_find_by_uuid
+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 0x557eced2	tb_ring_alloc_tx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x603249ed	tb_unregister_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x60500089	tb_ring_stop
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x658e3d97	tb_property_add_immediate
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x73ad2acb	tb_property_get_next
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x785eb82c	tb_property_remove
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x8b62f95e	tb_property_add_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa28da89b	tb_xdomain_disable_paths
+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 0xce473127	__tb_ring_enqueue
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xe1b98ba0	tb_xdomain_enable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf1cfd1ff	tb_register_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf74aba97	tb_ring_free
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf76028c7	tb_unregister_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xfe2cc727	tb_service_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xfe7afc7c	tb_unregister_service_driver
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x2c383dfd	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9b284221	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xdfa09151	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x7eedb6b2	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xbc777987	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x26aafee7	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x81f27007	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x8733650f	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x10dc6cd3	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x22551a7d	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x37d11444	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x77d1df28	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x813a5159	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x898454c7	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x49a268ca	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x4f63be10	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x900c35a7	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xb3d6e6a7	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xd5540f01	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xd9fcf1e4	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x122159df	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x2b3dc09f	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x384f95e8	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3fe52599	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x72a5f28a	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x7e7626b1	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x858ee3db	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 0x8b18f8c5	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb509ad32	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xbfdb7810	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc489f430	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xcf47b547	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd5444cca	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe9b5af0b	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf80645f1	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x5ec7169b	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xee841283	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x55fbc7f7	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xc1da936a	ffs_single_dev
+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 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 0x23a1a509	fsg_lun_close
+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 0x300cd8cc	fsg_store_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 0x3a1e2233	fsg_store_nofua
+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 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x52c65f86	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x551a6b78	fsg_store_file
+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 0x569cbe97	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x61d7d718	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x63dc1b52	fsg_store_inquiry_string
+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 0x7122b164	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x76e0d638	fsg_lun_fsync_sub
+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 0x857b6dc2	fsg_hs_function
+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 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 0xaadb9388	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab14650b	fsg_show_cdrom
+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 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 0xc365c52a	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc81fefe9	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc9a8bbd4	fsg_show_file
+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 0xef559a17	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xefb6d905	fsg_common_remove_lun
+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_rndis 0x0710e2c3	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x091b3577	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x1f4a8683	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x26bc3bb8	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x4754bbc0	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x75b102d3	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x805a2333	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x90c62545	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x91469bab	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9d4ff5af	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9d8c7c45	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbe6a75ef	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd4849bfa	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xde4c9773	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf11ad0db	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0183414e	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1a0e2f21	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x22f178e4	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x25f5e766	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2ed1636a	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x34afd800	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x468322dc	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4c011ab5	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x537429c7	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5fec2b42	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x608a721b	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6f1d1bff	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7a55e102	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7ccc90f5	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x81d5f0a0	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x822bd86b	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x83113436	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8582ce9c	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa7570697	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa8ffbec8	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb89257a3	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbc7057e3	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc3c14970	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd39dc9ee	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9948669	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe4b89af8	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xeaec433e	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xee06444a	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf18a44d6	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf93b8125	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xfd544951	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x3b853194	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x3f1a1896	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x40ff97ef	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x48663cfe	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x70584fe9	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x8a8ee3ab	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa5e86c99	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa7b2f45a	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xbc5a1fa3	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0dd780ae	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1218b958	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x161fbc3a	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1efd5146	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2311c236	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3075ea61	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x35b756ab	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3776ee5f	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5075a6f3	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5a580fc9	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7411c68c	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7f009bee	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9aeb9196	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9c70f4bf	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9d51cd31	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9dcd41fd	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9f62af50	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbceb7bc0	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc7e5fdb0	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xcdb36d48	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xe645a232	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xea597e8e	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8d8e88a	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xff0f19a5	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xff42f37d	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x4eacc800	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xde8afdf1	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x0ff151bc	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x1c60de23	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x2e9176da	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x86564882	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xc5fccc6b	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd4102060	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd6b86a6b	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd9e5c675	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xf8e94162	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x259f4448	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x2ee9e996	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x37799e2c	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x3e398cb3	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x1246e81c	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x87864bff	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xa55b52e5	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xc7652690	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xed0ea991	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x6dc4d942	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x9f4e3ed6	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xa30d3891	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xafd83411	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x50859154	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x12aa0f59	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x205a9dc3	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2971c1fe	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3411946e	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x34f622da	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x42ba9484	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x557ca124	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x59c4f570	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6cd2421e	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8736f501	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8ee8070c	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x90ba13b9	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x9165bdd4	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa8c3b28f	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb14eb5d8	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb1f438eb	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc4720646	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc496963f	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xce369fac	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xde379309	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xfd8214d5	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x28eaa948	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x4cc1d511	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x2f58c1e6	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x2e60cbcd	tcpm_register_port
+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 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 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x05324637	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x077a0f6a	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x129c0e21	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1420f13d	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1caa7b68	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1dcf110c	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2890d155	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x29b581b8	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2af4f9fa	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2b3f590b	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2b50608a	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x333e021b	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3eae9841	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x41d24285	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x44e48667	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x48be0aaa	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x583d58c4	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x655e2f1d	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6eb35a32	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x79095b8d	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x937206e8	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9d2df8a5	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa0973adc	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa1c77d56	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa411c095	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xadc4a49f	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb4e220b7	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb9175bff	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdb6746af	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe16055a7	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf2519b3c	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf73fe7b9	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x0b4814dc	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x2b01cd09	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x52750b04	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x80364956	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x8e500087	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x0905175c	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x20f3bb53	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2e143e1f	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x30a943ed	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3a626909	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4f4a069f	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x8e044ec4	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xa763cea4	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xbf60c4cc	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe366a296	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xef4e85a1	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf0a3f62d	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xff670f5e	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x29e4c55c	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x08d43bd1	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0bb869e0	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x13ea5033	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x192ea6bb	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1b4eb1d8	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1d4dfb54	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1d742e24	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1f30ee9c	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2dbca1ab	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2df43d08	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x334d4706	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3ac2cd17	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3b2f0e2d	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x498d19e6	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4a4abaa3	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4f662cd3	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x500eb358	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x69116890	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6e5177c3	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x77154f29	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8b6f8e03	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x90e2132c	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x917dac20	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x92b742ab	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x95b6d895	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x97939e40	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x995a8c07	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa4c32927	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa5ab74ee	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa8d866a1	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb9a4db30	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbe2fe49c	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc51649e0	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xcd6d62bf	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdc6ea842	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xecba70a2	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf08dd64e	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf740ddd0	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0x2c63e051	apple_bl_register
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0xdab0f892	apple_bl_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x12269f19	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x1ebbe166	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4293f8f2	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x54571b5e	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x8f60491c	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xe26502fc	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xe3461630	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0xf06788d3	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x28606c54	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x33169cdf	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x0468bfa5	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x09fb14a1	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x016e6c20	vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x90c018c6	vmlfb_register_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0bc0f553	viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0e1cee08	viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x30cc9311	viafb_request_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x31469540	viafb_pm_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4606f8d	viafb_irq_disable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4f863e6	viafb_pm_register
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcaefb732	viafb_release_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcd538333	viafb_irq_enable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xfff2dfd2	viafb_gpio_lookup
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x0e338292	visorchannel_signalempty
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x1e6eace2	visorbus_unregister_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x4de03230	visorchannel_signalinsert
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x56401853	visorchannel_signalremove
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x5f1db004	visorbus_register_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x8afa3efd	visorbus_disable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xade43141	visorbus_read_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xb67308a9	visorbus_write_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xc455c651	visorchannel_get_guid
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xfd92f9ea	visorbus_enable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x039fac99	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x10540b1a	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x220411a7	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x28634fa6	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x45d902eb	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x4f6676bc	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x69b3840e	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x6a46d5cc	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x84ce0253	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa9201254	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xf78ad993	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x46f3c749	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x7381affa	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x9d4ff3f6	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x9e3ed75e	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xe0255881	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x279301e3	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x863ad537	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x41062ec9	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x93201fb9	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xb8d0fedb	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x022f7441	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x15af0e15	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x7c801907	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x8707448f	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xb7cab4d8	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xc68ff8a4	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xd43e65a7	lockd_down
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x03ca15d7	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0509176a	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x055c6b98	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0587a507	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0dd8e3b8	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10835f0c	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x14727247	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x14a06783	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x190650b5	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ac08379	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ad58fbb	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1b8c5373	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1c2f2470	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e67bd0a	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ef77784	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x246d37f7	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2819995d	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2c202a4b	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2dbf7682	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x30bafe5c	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x31a07261	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x347e6a80	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38487ece	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x386ad6bb	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3ae65078	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3b54db80	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d3f7eb7	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3df998d1	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f6b10fd	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x400c4344	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4018349c	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4092089d	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x433406a8	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x44286032	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x44ec84fc	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x477f4e28	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x486feb4f	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x493d4422	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a1b558b	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c0c01ab	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e59bb93	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4ed66127	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4ffe0343	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x509adbb7	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52ac25bd	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5349b339	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x540c548f	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x594dfaf1	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a5b57a2	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5bf059ca	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5c77e35b	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5c7e497a	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ccb9392	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ebf1de5	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5f2a5a5f	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5f2dde88	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x616920ca	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x67113ee1	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6a0c43a3	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6a4182d1	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7279502c	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x783c40cc	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x78da773b	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79a5bef3	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7a04e3c0	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e66d8ec	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x88522709	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x89bb9170	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8a529c63	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fe3ffbc	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x906232d9	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91289df6	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91fd03a6	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9211df35	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9271aea5	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92b57fad	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x966a77bf	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98c4fd5a	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9fb378cc	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa194c3d4	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa462965d	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa494336b	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa64e6424	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa756dfd4	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa757421c	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa89b6280	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9570c6d	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9bad823	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9e51fee	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xad1fff12	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xad5a1b59	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xad5f6560	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2095542	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2c7ddf3	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2fab818	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb33b8d79	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb3f9b0b4	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb7b27c04	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb82fa1ee	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb925f179	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb5b92f2	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbef995d8	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3cf59b6	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc4353bdf	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc6977b1e	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcb186e6d	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcd845e08	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd0089524	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd063ac06	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd099cb8b	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd0be6267	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd3169d76	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd365d946	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4c1219c	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd56d0755	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd74f8ddf	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd84bd42f	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd8fa692a	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdad2121e	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdafaf833	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf07a851	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe08d36cb	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6039749	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xea91e213	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee23e804	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xefe6a878	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf34e0844	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4d149c5	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfa565e1e	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfdf0f9d4	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x4450f05b	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0564d7f4	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x09d94389	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0b179391	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0d8d193f	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1c7085d2	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x20cf9213	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x20e62127	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x220e723c	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x23855157	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x265beccc	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x28b15f41	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2a35dbde	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2b26862a	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x30cd82e7	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3486bdb0	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x35df5a8a	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x35f08dd2	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3f7da1b0	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4df36969	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5964e923	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5b71242d	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5ef1f146	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x625a6c73	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x65593e86	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x663e4908	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x669633fe	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6ec330e0	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6fb9a0ba	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7824d714	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7846a4c7	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x79710f6a	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7d2ab4a2	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8214b2ac	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x84003b00	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8972f215	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x89b22725	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x94d9f5f2	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x96c76777	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x99917d2e	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9a2129b4	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa3984be0	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa53b462e	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa6045696	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaa049fb6	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xadcdb8e5	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaeaaddcb	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb23a96ea	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbac4ea0f	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc7e8d35f	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd2997db4	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd9fca503	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe04d2123	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe28294cb	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf1932bc0	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf30851ee	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf46d3dc4	pnfs_generic_recover_commit_reqs
+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 0xf9bf192e	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfe058621	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfe38d448	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x3165833a	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x7fc7db2f	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x87081183	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x218c3bb0	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x33fb1be3	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x043716db	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58876267	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 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x77a6df2c	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xd3b17e52	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe81052ea	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe99f432c	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xfb4c4633	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x18e4818f	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x2621f718	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x422b32aa	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x84ea4c87	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x85b771eb	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd0ee56bb	dlm_register_domain
+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 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x6bd09d63	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xa8cbf9dd	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xca2ddb1f	ocfs2_kset
+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 0xf323d3c0	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1f0a52fd	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc2252c02	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc5c4e1e8	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x7a90e380	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xae2cef02	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x915b0bcc	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xe302fa4a	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x070bffcd	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x0788ab05	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x9d43d8a2	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xa58d2f9e	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xed551cc5	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xff357c10	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x0b8a5273	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x348dc964	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x38bc92b3	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xb40bf797	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xbd7f73a6	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xc416b7be	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/stp 0x6d65fa7d	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xef8e61b9	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x8857b044	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xdc06c1e5	p9_client_xattrwalk
+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 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xea912633	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x18804929	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x45099136	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x82917f3a	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x87ddd6f7	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xae2c25ae	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xccbcdce6	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xd04aec0c	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xfdec608a	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x9a7bb063	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x00e03bc3	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x14e9b56d	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x256e08be	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3c2f7ef8	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4a2dd4b2	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x573df2d0	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x5b3da6ba	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x610b16a7	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x671b286d	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x70300925	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x80487775	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc2a8d290	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc30fca69	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xcca92a4d	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe05f6943	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf7ad18f0	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfe32d109	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfedf3dc9	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/core/failover 0x27aad828	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xc67de759	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xc7edefc9	failover_register
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x14789e0c	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x16e151eb	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x19b83ea5	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1b71e676	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2e0e6be7	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2f0e4233	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x434fbcd4	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x45008a9e	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x45e03301	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x482dc9db	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x48f3ab96	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4a1dddea	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4bc57e70	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4c4494b7	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x536bf17b	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5902ddba	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6253f9af	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x72a83134	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x77acf58d	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x77e73734	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7a5c1e5c	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7d426a77	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x985c14c4	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa09215e8	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa640b141	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb6c22131	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbb5b7e17	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd12b81cf	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe477cded	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe8b7c67b	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0aa6e10	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf2979085	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf49cf07e	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x05251396	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x0ab34aa8	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7b4f9e91	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7b54fef1	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7f288eee	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xd4d397a7	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0f68e6b5	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x14912a0e	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x25f49c9d	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x35de9acf	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x40b297a2	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x40e6b202	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4e26f5d6	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x56d1a5d7	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x64726535	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6981466e	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8a7be758	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8cd42dda	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x93ade4b5	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9cb8bf66	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbe9b4355	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc260397f	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc595dacd	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd4205e47	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe8ce1bbd	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe9fcb3fc	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xebf94b52	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x04edaab0	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x402cb026	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x8a1ee9a9	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xcafe2d79	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x6f995580	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x7d998947	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x9ef9d61e	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xf1defecc	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x05c20989	ife_decode
+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 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xf094df72	ife_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x41217d6e	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x5644b340	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xc590f9b6	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xc8bd8945	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xdd33c1c8	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x39f344af	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x5e8fc026	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x7ce2243d	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8408f87a	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x89549cf6	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8c37d8a5	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xa48c5fa2	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xbff68aee	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xcd7fce9c	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xb0358865	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x14b3e9b8	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1cf0ed0e	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x21bb2641	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3341eef3	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x38fabd91	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3eff50a9	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x561ff1ab	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x56da6635	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5e603643	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x9a026b76	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd6f07338	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdc743ef3	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe75843ef	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf2be421a	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf9b22fb7	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xfea998d4	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0xd85572ac	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xaaf2a2ae	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xb0804386	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0xe473c107	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x162f40ab	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x27b2e24e	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xae762a36	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xb30dd4c0	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xf9486eee	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x1b80c3d9	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x25e1a062	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x8840119a	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xa195b5e9	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x173bf959	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x39ebb6a2	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x44183854	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xa2352b91	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xd13bdb6b	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xdf7a9bfd	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xee6214fb	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x14b3ebed	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1b5ac3bf	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6abe7e4c	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x882b8f0b	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x8ac449cb	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x8cf45d31	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xcd75106d	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xdcdac9ff	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x221f2d63	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x5fca1d79	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x95210782	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x283bdde7	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x4d59c10e	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x87708afc	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x28e38cd5	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xa859a877	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x54adfb5e	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xb4fa4593	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xc5c1d56d	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0xeae1d899	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x2cd4ade5	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x43949f26	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x51faf596	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xdc73401d	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xfd40e0a0	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x9ce762b0	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x4af86de3	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xbdcd3df4	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xc7677160	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x734804da	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xd875e3e1	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x07227af3	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x213f0ddb	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x29620196	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x449a44d0	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x560d1fc6	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x765ee438	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7efc4a5b	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9259b7d6	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x964afb01	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xaa2a3238	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xca85124b	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd359eb2b	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd5120026	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe8ac00f2	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe95d5648	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xee274d04	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xfeadacc4	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x1f782c4b	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x10eec4bd	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x192bb8bb	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x47427aae	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5f8a81b0	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x62c18b5c	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x706adcef	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8d14d56a	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8fe798da	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x9877ec75	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa692ddb8	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xae44b270	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xaf3072e7	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb575288c	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc04419ea	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xdeebbc01	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf39c8622	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x40bd9ef0	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x6109b7a7	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x65453a9f	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x668ad4cd	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x91f5d5df	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0cc11d6b	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x277a2bb3	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x40b1ab01	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x419902e7	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x4bc85aca	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x580dc32a	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6eb69a29	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7cb032dc	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7e54aecf	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x919a4b12	ip_set_extensions
+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 0xa2f33dbe	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaabe9e61	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb02f1a90	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb4898f18	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc032eea5	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc5bbbacf	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd5020134	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf549842d	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x2fe1bd92	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x5282fef4	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xa00443cd	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xb003effc	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x07b5f56f	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x83c1e7f3	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x9b65fdee	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xc1b72567	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xcb6f7d5c	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x02875c97	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x10056035	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11ae435f	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1387509f	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x18507ea9	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1ae9ec0d	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2288cbdb	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2305be12	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x244153d8	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x27c8cda1	nf_ct_untimeout
+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 0x2aface56	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2babf83e	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36a88d85	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3784e8dc	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x38ed17d8	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c11258d	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3d585a8d	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ec3a6b4	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x414dbc19	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x423060a9	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4333a777	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4395e67e	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x45f28966	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48823e0f	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4b232a1f	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53d190fa	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5464dbeb	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x558274f8	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x58baf426	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5c7b8dc9	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5cfe15ca	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x62db5288	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x63314a6b	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x69fc312f	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6fbd4a68	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6ffe4d74	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x70acd433	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x726bb528	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x76a47271	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x78cccfc0	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7c5687dd	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7ec49201	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x80d501ad	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x84c8f6c2	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8afc94fb	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8daea34a	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e8931cf	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x93ae98db	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x959c2c6f	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa38c0d06	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa3d9556b	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa5a51688	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa6fc4b2e	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaad91c58	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xafc8762d	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb0d2e2c1	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb3b15ff2	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb66f396d	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc391a4e9	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc4111b43	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc5eb0df1	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc7622769	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc83c9614	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcf59c138	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd4b8e401	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd4be7478	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd828e6ee	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd8c2ca71	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe3f1ddae	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe98ea187	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb91e790	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec0cf8b9	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xecd4a725	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeea2089f	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf0a7c9fc	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf0fb8bd6	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf43fbced	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6ce65b1	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf8a39787	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfdb8c174	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfeecb34e	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xf3bd7f6b	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x2d0bc248	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x1b8ccb6c	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x1ecfe316	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x6b7e6509	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xa56c7d8f	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xb1ffd04a	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbbc48a26	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc21d3751	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd2266cf5	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd2ec2a21	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe965295c	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xef9f8e38	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x65a5b27e	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x218a5686	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x365c40ef	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x8c2c4e6e	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xb0fcdb22	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x08566f58	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x27648a61	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x35ab96e1	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x59eeb686	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x5aca3ff3	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x7202c3df	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x87b746a7	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x054a0309	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x5dcc3158	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x9befbefd	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xb7631eae	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xdda1b946	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x06922373	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1e0c886e	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x40e5490f	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6734b7be	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6f13deba	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x86a2ad3b	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8ef6177e	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x97ac4c34	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa484bb26	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcf079a38	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf71d5606	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xfccc2756	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x23b5eacb	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x7eff67eb	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x83d5bcb0	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x971089e7	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xa8ee3d53	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbb97d642	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x27a22432	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2e87f866	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3264d8e3	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x576ae233	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x73a3deab	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x78ee9ee0	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x8a93e742	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9a35d79f	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9a8bdb59	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa0208898	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc5e7994b	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc7e280f3	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd7a56858	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe50128ab	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe5795f7e	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf6094ae0	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1d256ec3	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x22df6bef	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x2a8f0b64	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x54726d71	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x611cbf5b	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x69ded7f6	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x923f3c64	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9ba97dee	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xcfb49d58	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe5541bfb	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xfcd7e7ce	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0d72c633	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0f353a12	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0f3735d9	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x15b085db	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2019f7db	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2a6f897c	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3888b10c	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4810cde5	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51b040d2	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5c4861e4	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5fa252c7	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x601c95e9	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7163072e	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x762ad54d	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7846aef1	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8003b73c	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8312affc	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x84366508	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x89700cef	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8bc244fd	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8d7ea59e	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x95bee63c	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa08b7fc6	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa38c3c29	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa81172dd	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb657102b	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc7bcd7e5	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc7faa776	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc9dff6a3	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdf261577	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe34d00e3	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe3ebb6bd	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe745b1ae	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xeb5c63af	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xff483647	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x09b527b7	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x220b6ebb	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x6493e943	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x8baf1015	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xa8b6d418	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf7aaf66f	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x0adf0638	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x5d78be74	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xf28a90bf	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xe0f22284	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xf1f51e9d	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x1b9d62a3	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x620a89bf	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x9ecc048c	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xe42558d3	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x22a4c7c5	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xc7f383fd	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xd0eda564	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04ad1aa6	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2e25476f	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x30c8a59c	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x31f09c02	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x32920e1c	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x37904c71	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x37a2dd4d	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x39ad34f5	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4b35361c	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5896b747	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5f4f37bc	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x887e1876	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x92036d36	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x92ac4302	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x99bb7f2d	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9f21f4b9	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbac8c0f2	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbee355aa	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+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 0xe8bd58d6	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf1f3b9c2	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfaf62a56	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x61bff2dd	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x8abeeaca	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x0725fd19	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x13b0435f	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xba218321	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x0a5ddfea	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x4289b541	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xa37083fe	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x1f3a6ea7	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x81c83c6c	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x6843624e	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x7dd5999f	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xa69db0dd	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc0054eda	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xd1cdfd28	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe4b019cc	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x10f6487c	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x869a40bc	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xce18e2be	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xdbe01685	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0aad9a12	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1037bf08	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1435af29	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2462811b	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x369f158a	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x371d4cf1	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3cf1891d	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3f582330	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x421a4c9e	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x452c7c3e	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4a3ee7a4	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x55825043	rds_inc_init
+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 0x67212ee6	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x69a5961b	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6a720bea	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x738beb1e	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x73e41df1	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7c8a0878	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x99a08100	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa0b8c0ae	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb0177f30	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbb45a721	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd7c82b13	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe0b9974d	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xecb754a1	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf37a2cc3	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf607f022	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf9018c4e	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd22dd56	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x3f091999	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x6d763228	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xcd4b0fec	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xdf217df6	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x47192e92	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x603202d7	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x66af330b	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x75700a1b	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x91b158c2	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd861c8ce	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe1174295	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xeea5ed2e	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xf3c89b30	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xfc4b11f7	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x4c806575	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x6d312f81	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x7a29d576	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xbf975902	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x00273e65	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02bab706	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02cb5381	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02cfa2a4	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05785db2	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06bc2c40	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06dd1dda	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07ffeffe	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x08e41636	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a5f7917	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0bc06f74	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0cafd6a6	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f3c5eb1	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10270c6a	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1074d5b7	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11549c0f	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11a3a8d3	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11ac5f7c	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x15a94114	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16c4aeea	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16fea509	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x172b1b5f	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17918dc7	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17d0d4d8	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1833e254	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18bf1c38	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18f4eb7c	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18fc8862	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ae680d6	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b168be1	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b18d736	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e4850da	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e59058e	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x218c4dca	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21e33237	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25d7e05c	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26368448	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x277ce6ba	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c2c0638	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d6f4900	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f05e60c	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f7523a0	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2fde3071	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2febdba9	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x316a10b8	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a20060	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3395b26d	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35ba2816	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35fc2bdc	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x369b9cf9	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36e6274a	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3830109c	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38766fb5	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38f49794	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39947231	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a2345bb	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b6f97c9	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b7b121f	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d8e052a	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e32c82b	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3eb64843	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f0e49ea	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3ff67265	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40377601	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40e06001	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42ac6148	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4348ee5b	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4549fff6	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x456d92fd	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x460fffa2	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49f5193a	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b2259ff	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b334a8a	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d1ff461	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d64f4dc	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ee3a42f	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4f6c077a	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4fa2e4cb	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x50a376af	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51c3df6e	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51cec689	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53c67ae0	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x549cfc91	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5802e398	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58b25111	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59e693cc	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e3d9175	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x602e885d	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6299143c	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x630d70ac	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x637a803b	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65c88045	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6874685c	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68f0ff5f	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a9ac5f8	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b5376ac	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6bbebb8c	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6bfe8400	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d0bf097	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74d09b4d	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x766e4073	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x770159a7	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x772b0bc8	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79f3b766	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d35cf9a	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8178e2ad	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83b14ba1	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8642b233	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86675114	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87207076	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88b21eb1	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ab8073b	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ab96a8d	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b47a88c	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c27ac54	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c37eb2d	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cc3d912	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ea911c7	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91f448d4	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x93993656	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9562b6a5	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9689a781	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9acf608c	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ad74b88	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9c4f2824	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d3df5f1	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d884816	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1ad6430	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1affe4e	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3c5ebca	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4790cce	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4e4ba75	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5128022	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa615ac09	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab2227f7	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaba5b4fb	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xabbb4dbe	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xacba855a	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaec86488	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb02d07f1	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb031ee84	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb03db0ad	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1aba3e9	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb3317184	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb81c0e2d	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8672d94	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8ea9998	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8f0c09e	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba2ad69a	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbaac1c76	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb433813	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd21bd4a	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd777409	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbddf41e8	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe0a10dd	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc00afa7e	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2a22a2b	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc52b9aa3	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5de2b38	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc62dab77	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc742abaa	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7d53cfd	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8646a03	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8ecd454	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbea1c2c	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcc873333	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcd21c045	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf883aab	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd094308e	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0c46f91	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1ace2e9	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2a5a6e0	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4fc0e95	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd74adef7	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd90d20ae	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9d6e047	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda226e83	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb137d53	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb886318	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdba632ee	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcf334c8	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdde8cb3c	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdfeebc8b	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe001e11d	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0085d79	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe07f1eef	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe34fcf34	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3643cdd	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3a3a168	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4c90f36	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe50683c1	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6b4bf3c	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8102e05	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe86b460e	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8bcbb0b	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9008de4	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea386b48	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea712ac0	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaf4e3ee	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb20179e	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb32c0d3	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf00bd224	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf135932c	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf15e4ca1	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1d36727	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf290c854	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2da2151	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf411c626	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf49caa5e	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf543a3b7	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8dd890e	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9886884	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9cff20d	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa7e1e3e	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfaad7da0	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb3df819	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc06d9f6	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc2065b4	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdbb7daf	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdd18428	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfe8be0e3	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x02f1bcbb	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x4c3e3049	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03259f47	virtio_transport_stream_has_data
+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 0x0726929e	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0aafd9a9	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0c381b57	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x12f697d4	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x25f462d6	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x26271e64	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x33017d3f	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x38a92eed	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4b3786b6	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x50bab71b	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x52c75f46	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54c43d68	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5a0e0e5f	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x61af5ece	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x74f71631	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7dff6e48	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8b6fe292	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x919b5b87	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x92fc3de6	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9d36b847	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9e87f695	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa01cb904	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa3258f44	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa70e567f	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xabb3976d	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb30513fa	virtio_transport_dgram_bind
+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 0xc02ee7f4	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc28ca480	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd6309226	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd6e9b84f	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdc85ffbf	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde2ca679	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde4a9e56	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf520f7e4	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfc01c776	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x08211142	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x18763c53	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1e7a3e26	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x280b2b0f	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x29a80e11	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2e5e0d4c	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x34403887	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x35072fd3	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4d7ee7ab	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5ac49db2	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x62ff881b	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x71c236fc	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x85f0a6fb	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x900ceaa9	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb73c8071	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xde4e80a3	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf1d5725a	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf6350fb6	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x176d7497	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x496abbe6	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5e96c569	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x6a87d774	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x6e012ed7	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x95444bf7	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x9d5f9b39	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb4ea0179	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xc71b5690	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xc8fad73d	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xddb3ad07	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe08a1e4a	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xee82c493	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x122ba2f1	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x274c6e47	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2fca50d8	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x32000a07	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4aac5eba	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x570acfd8	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x73776473	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x76ea0067	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x9337ce68	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa4dffe82	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xae9e479c	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb73a9b6e	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd038d1b8	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xdf527ef2	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe8fa266d	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xfd13b434	cfg80211_wext_giwmode
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x18c7d77b	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x3cde322d	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x8f4f238c	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xdb3b2331	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x23a9a374	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x014b3c40	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x132a4dbf	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x35801de2	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x3c0206b5	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x3d50a25d	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x75f2cf54	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x7a73da07	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xa61d88a5	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xd0784dc2	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xe6223ef2	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xed8f5c5d	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x3dd2fe15	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x44a8ab1b	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xbc3e34d8	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xf6f085b2	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x13843473	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x151af0d9	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x1aba9fd6	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x32c99303	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x4a293ac9	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x4fbd5b29	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x7a9d43c0	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x9de051e8	snd_pcm_add_chmap_ctls
+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 0xb6649e56	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xc80e035e	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x17407da2	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1feecbf4	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x2fada88a	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x656cbf2d	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x6b59ab0e	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x72619f6c	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x97f93330	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xacd71a32	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xb3274b3a	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xcfb4e583	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf35e3f0e	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xad31a389	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xc1a48098	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2e8fe5da	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x429b2d45	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x671a1436	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x6d952a9d	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xab41fbac	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xaf44fe8b	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xe73fc679	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x02474c45	snd_hdac_ext_link_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x1b62a017	snd_hda_ext_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x237c6a45	snd_hdac_ext_bus_link_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x33128939	snd_hdac_ext_bus_link_power_up_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x33774a49	snd_hdac_stream_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x37ca1fc7	snd_hdac_ext_bus_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3c898b51	snd_hdac_ext_link_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3e8e5ee3	snd_hdac_ext_stream_get_spbmaxfifo
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x47b22fb5	snd_hdac_ext_bus_get_ml_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x497c4e92	snd_hdac_ext_stream_drsm_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x4b4a85bb	snd_hdac_ext_stream_spbcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5649ff63	snd_hdac_ext_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x58ebb3b8	snd_hdac_link_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5e3c7aeb	snd_hdac_ext_bus_get_link
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x60f525bc	snd_hda_ext_driver_register
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x6833d75a	snd_hdac_ext_link_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x787aefbf	snd_hdac_ext_link_set_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x7a7c56b7	snd_hdac_ext_bus_link_get
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x80b71d08	snd_hdac_ext_stream_decouple
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x8df040ac	snd_hdac_ext_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x94ac8f3c	snd_hdac_ext_stream_set_dpibr
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa124395d	snd_hdac_ext_bus_ppcap_int_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa25d11bd	snd_hdac_ext_bus_link_put
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa288313c	snd_hdac_ext_bus_ppcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa5e05faa	snd_hdac_ext_link_clear_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa899d291	snd_hdac_ext_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xae61b1b6	snd_hdac_ext_bus_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb1cda707	snd_hdac_ext_bus_link_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb7da2d09	snd_hdac_ext_bus_link_power_down_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xbd827ed9	snd_hdac_ext_bus_device_remove
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xcd902d50	snd_hdac_ext_stream_set_spib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd73240a8	snd_hdac_ext_link_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd8bbd965	snd_hdac_ext_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd98d6c0e	snd_hdac_ext_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe754f20d	snd_hdac_ext_stream_set_lpib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf352df03	snd_hdac_ext_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf51c2f72	snd_hdac_ext_stream_init_all
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x006d12fd	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x017505af	snd_hdac_i915_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x02cf664e	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0446b1b9	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x078f5cea	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0984793b	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x123b2064	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x131ca97b	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x18863661	snd_hdac_i915_set_bclk
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x197fa1a9	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x19a92f33	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1c6807cd	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1c96f13b	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1cc3b464	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1fa85c10	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23a23b12	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x26287676	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2d0334ba	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2da126e0	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2ef629bb	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x33c25bc0	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x34751bef	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x350e22c2	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x353007d6	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3cef499c	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3e034063	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f1dfcaf	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f596321	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40d76ab2	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x44dc848d	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4b9add20	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5123869b	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x58e771ed	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5d7c91d4	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x60eaa05e	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6318f8ed	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x64cc7daf	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x654c3344	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6914c5ae	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x73489850	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x78a73c16	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7946ea24	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7b8fd3ff	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x80ef37c2	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x81f93402	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x840718a7	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85848034	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85ccc4ad	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x86033702	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x86d1417f	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8790625b	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x894e0634	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8f68e4ca	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8fdc4f79	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x902c39bf	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9063dd60	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93573ecc	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x936bd1cc	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9992f5e6	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a74a956	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9b038cf2	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa4ed27cb	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa4f9fe44	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa8ee3bce	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xadfe72ae	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb007c8b1	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb0b05f18	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb5f85a33	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb8d8434f	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb91fb556	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc4a0ad2b	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8317148	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc87b3c27	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8d50197	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcc78b6ff	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd93df786	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdedec1dd	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe0b6ffb4	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe790facd	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xeaa1a181	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xeb51743f	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf5d15e66	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf7d27db8	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf9b35f7e	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x2106e4b1	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x276df445	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xd988940d	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x19ac9bd3	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x58b477d6	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x980bcb7f	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xbfc15952	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc57ac7b4	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xf9d83deb	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x02d7259b	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x05c5a73f	snd_hda_load_patch
+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 0x09c8e8c2	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0b8504a7	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0d534592	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0d7fda5b	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ea74e56	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0eb906ef	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1087d0ad	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x10cc3c29	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1441ff54	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15736d91	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x17f8ff72	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x18bfecfa	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1a7ea220	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1afd0238	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1d7d693a	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x25e7e46d	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x263f9aab	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26905e28	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26e7fe2f	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x289f6452	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x296ad4b4	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x29b2b3fd	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2c65b84a	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x33d47e1f	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x34bb8e34	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x35234cbc	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x353e2f67	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36e6d549	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x37e58e95	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3845d531	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38be4e8e	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x39221983	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3a4a557d	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x413fca50	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x44c87922	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x462374a5	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4a129547	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4cad7fbb	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5cd319b2	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d58fb1f	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5daf2701	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6160e5bc	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x623eb9d4	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x63ed1038	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x648836c1	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6722f920	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6879310e	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6c9f02f0	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6ebbccad	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f02fd5b	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6fd0f10e	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x71d0a04d	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x77259e8a	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x789587b4	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x794de3d2	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7abdaa9f	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7b75558a	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ff8f80e	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x821dd385	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8514be1c	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8580ba7d	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x86110fe8	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x86a9adc9	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x875078d2	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x882f2c05	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x88a6d09e	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x88f97312	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8917d191	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e81a785	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x900f117c	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92f4bd3a	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x97265ea2	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x988c732b	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9a0cbe9d	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9a8cbf1b	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9b7b5033	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e0162dd	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9ed811c5	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9ef115ae	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa24f42ce	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa4793e15	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa9a7efe6	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaad45969	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab6a06a8	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab6d6ddf	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaba0ef4a	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac8bd022	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xacbdcdb5	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae2d11db	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae5f54e7	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb07556ec	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb6a0183a	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb9792c1d	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2d803fe	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc4155d07	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc487b884	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc6d91faa	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb0e6fc2	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcca50dee	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd1212148	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd17067c6	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd7027e1b	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd7ad9c38	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdec139cb	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdf232061	snd_hda_codec_set_power_to_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 0xe1c6b887	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9dd9128	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xea5988bf	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeade2813	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec203fc6	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec387343	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec704df0	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xedc17788	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xefa10170	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf08016ae	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf0c88feb	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf15ad806	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf48b04b6	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd6d2291	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x001f8b68	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0c579737	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0c57e473	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x11d7b754	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x1d7cacbc	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x21a8e442	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4221e870	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x749a6f4e	snd_hda_gen_mic_autoswitch
+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 0x7d9518c2	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7db18b89	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7f51f9b4	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x85d50aa4	snd_hda_gen_init
+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 0x876ac4c9	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x90bb8d2a	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x99aa7fa0	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb05172f3	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd9c6c188	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xdf6820be	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xec8c89d5	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf609f30d	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf7ae779e	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfae5127d	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x57aa95c8	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xeb2b8874	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x275f11d9	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x53b4e48d	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x56799e64	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x5bd9d4f6	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x843e5f2b	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x906da66b	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x9f2e686f	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xec71606d	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xecbde815	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xfd6723b6	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x731f0cb7	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x843a7074	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x21c23fdf	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x5a92b655	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x85ff7437	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xc27029ca	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xf568448f	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x003c1e57	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x9f67ede9	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcbe090a9	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x1e427a39	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x742cdef8	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x80f41652	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x17f38170	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xd2f4b3da	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hda 0x0b9e06f7	snd_soc_hdac_hda_get_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x13b49864	hdac_hdmi_jack_port_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x9152269f	hdac_hdmi_jack_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x5b3f697c	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x418f768a	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0xbda6d244	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8825 0x3bd206ef	nau8825_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x01054cd2	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x75045807	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xb3ce4d35	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x72b4f42f	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xbb2998a4	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x1eb2f2fd	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x349196b7	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x4de3f476	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x853927ea	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xb0ea206c	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xeb117176	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x21c8acbc	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x67e209ff	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x6f12577d	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xfe938519	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rl6347a 0xa7aa810f	rl6347a_hw_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xade4bf4c	rl6347a_hw_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt286 0x881aba55	rt286_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt298 0xe967be4f	rt298_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x11b905b8	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x473680c8	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x266ae346	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xc09fb3ba	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x22e12cec	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x10550919	rt5670_jack_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x53a6f8f5	rt5670_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x96a25ce1	rt5670_jack_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xb9477abe	rt5670_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0x6598b699	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x5c36fc64	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x67956035	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5682 0xbbba4160	rt5682_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x0aa3c22b	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x197e1e08	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x19a58bd4	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x4d3aca9c	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xe3b11784	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x92dbc3df	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0xc9b89f33	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xf757b3c0	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xffffd534	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xd0be3985	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x717d3b2f	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x2b3805d9	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xca07aab6	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xcf2442c2	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xed740b0f	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x1fcd2c1f	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x92afad78	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x0c56e3d3	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0xb4d2a540	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-simple-card-utils 0x0d4cbfb3	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x1c0cfa66	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2b8d5de5	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3163fdb6	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3d921727	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x422b7750	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x46d77861	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x6b0d2cf1	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9c2b1199	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9d40ac49	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9edf8674	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xa622554d	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xa7596c29	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xdad7c4c5	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe19d09a8	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf2b05a3f	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf31ae3d5	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf4781f36	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0xfa05ec42	sst_unregister_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0xff21612f	sst_register_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x2b30e942	sst_alloc_drv_context
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x709cd25f	relocate_imr_addr_mrfld
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x76da2b03	sst_context_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xb94d8a1d	sst_configure_runtime_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xc8aaf8eb	intel_sst_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xd2a19e96	sst_context_cleanup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x00899c7d	snd_soc_acpi_intel_baytrail_legacy_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x08c27da9	snd_soc_acpi_intel_cml_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a6c545b	snd_soc_acpi_intel_icl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x210ac95b	snd_soc_acpi_intel_cnl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4c028d30	snd_soc_acpi_intel_skl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4ea3c4ed	snd_soc_acpi_intel_glk_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x52195614	snd_soc_acpi_intel_cfl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x59a53c32	snd_soc_acpi_intel_haswell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a93176c	snd_soc_acpi_intel_cherrytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x6038550d	snd_soc_acpi_intel_kbl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x8b43f2f0	snd_soc_acpi_intel_baytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x98f106aa	snd_soc_acpi_intel_bxt_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x9c3d1561	snd_soc_acpi_intel_hda_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xcbb222b3	snd_soc_acpi_intel_tgl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xd5af17b7	snd_soc_acpi_intel_ehl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xe7826509	snd_soc_acpi_intel_broadwell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x048f0d10	sst_dsp_wake
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0ff282f0	sst_dsp_shim_update_bits_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x108a093d	sst_dsp_boot
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x123e543b	sst_dsp_register_poll
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x13048202	sst_dsp_ipc_msg_rx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x15475403	sst_dsp_ipc_msg_tx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16e86983	sst_shim32_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x1fa0c174	sst_dsp_mailbox_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x21ed6858	sst_dsp_shim_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x2a88429a	sst_dsp_shim_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x30c401a6	sst_dsp_shim_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3a760e3d	sst_dsp_shim_write_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x499ceaed	sst_dsp_outbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x4d62ff2b	sst_dsp_inbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5a57e8c8	sst_dsp_dump
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5e734f1c	sst_dsp_shim_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6d68982a	sst_dsp_shim_update_bits64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x774455cb	sst_dsp_shim_read64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7a4a4c0b	sst_dsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x8293e1ab	sst_dsp_shim_update_bits_forced_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x835fbda7	sst_memcpy_fromio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x8479b12a	sst_memcpy_toio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x876c0e68	sst_dsp_shim_update_bits64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x87cdf7d2	sst_shim32_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x88a2e6dc	sst_dsp_outbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xad91355a	sst_dsp_inbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc381a0ee	sst_dsp_shim_update_bits_forced
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc8a3e2e3	sst_dsp_shim_read_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd72a34c2	sst_shim32_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xdd896d45	sst_dsp_shim_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe4a55b69	sst_dsp_sleep
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9c6de99	sst_shim32_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xf08461c8	sst_dsp_shim_write64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xfd3269d8	sst_dsp_stall
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x00b4ac3f	sst_dsp_dma_put_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x01700d00	sst_mem_block_unregister_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x073a8fc3	sst_dsp_get_offset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x111d208c	sst_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x18b7dea0	sst_module_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x1a1ed3ce	sst_fw_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2006c6e9	sst_fw_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x21dfe7c6	sst_module_runtime_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2b200811	sst_module_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2e3faa7c	sst_fw_free_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x3334d8c8	sst_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x58e30e2e	sst_dsp_dma_copyto
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x657ecbb8	sst_module_runtime_save
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x68a4f88d	sst_module_runtime_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7a11a7ec	sst_dsp_dma_get_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x803ae13e	sst_block_alloc_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x814ab0c5	sst_mem_block_register
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x92269887	sst_block_free_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x9929ec95	sst_dsp_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa5f79563	sst_module_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xab89bd82	sst_module_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xae6d89ff	sst_module_runtime_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xaea707fe	sst_module_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd09cf31d	sst_fw_reload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd6ed2725	sst_module_runtime_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd89a9304	sst_module_runtime_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe053c7dd	sst_dsp_dma_copyfrom
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf31a6446	sst_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf6847f20	sst_fw_unload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf86a83c7	sst_module_runtime_restore
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x05b586c8	sst_ipc_tx_message_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x2ec94d12	sst_ipc_reply_find_msg
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x42bacdf6	sst_ipc_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x672e9394	sst_ipc_tx_message_nopm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x8cf33c18	sst_ipc_tx_msg_reply_complete
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xbca3f7bf	sst_ipc_tx_message_wait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xd94760e5	sst_ipc_drop_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xdb9f7641	sst_ipc_fini
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xa98b3bcd	sst_hsw_dsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xb40ff91f	sst_hsw_device_set_config
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xfe3029d8	sst_hsw_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x02bce08d	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x050707da	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x05f046ab	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x07e1e4fb	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0a85aa6a	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0a93a26c	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c20a731	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f0eb7a9	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f3ca23c	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x15173bff	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1782a5b2	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x18cf3e8e	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1927cdc8	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ab2ba18	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1d5fccc0	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1d722cbc	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1faeae62	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20f9a05c	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22b231e1	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22dae8eb	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2e4f0d5e	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2f6d8700	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x30471912	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x310780d0	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x33da475d	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x34dc81ae	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x350eac3e	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3809f3ff	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3836328c	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3ba062ef	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cfb24d4	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f194b7b	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4031a078	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40e2f098	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x429b84cf	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x444c8c2f	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x455eb44e	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x49cf7e73	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4a718375	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4bee1c1e	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4bf414e3	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4bf641e1	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4e6cc6a4	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f408223	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4fe62149	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5194eaa2	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x52a34e74	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x52b52b1a	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x52e96fa4	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5328819e	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53efdd5c	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5697792c	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x56c50e04	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5779746b	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x589c071c	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x59e530ea	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5b38eae3	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e0c43aa	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e8d40c5	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x61c535c2	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x647bef4e	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x65049f85	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x66157bbe	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6790770b	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68a7ca9d	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6d905e04	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6dc10091	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e3bd482	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6eceb8ca	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f0b5447	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x712f928b	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x731a4e7c	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x749f855e	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7569f982	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75ccda1c	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x76315496	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77037532	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7755e1a1	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77d7d6f3	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77f62321	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x785234eb	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79effb8a	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7adfad6f	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8149e994	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x81f78ec8	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x83ab82e4	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8529b18f	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x856af9e4	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x858045d2	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85a6a1bb	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x861fb02d	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x87c32e58	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x87cd22e2	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8839a544	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8a51240d	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8a668c46	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8a702707	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8b351360	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8e98d72d	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x900276ed	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9020839f	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9077ac99	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x953dc3d9	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x966da941	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98df1198	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9d3c655e	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9e24e6c7	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9e5eca61	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa3877215	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa513883b	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa6133724	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa623466e	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad7ee86c	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xae21c637	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaf30c553	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb07670c4	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb33ff3a3	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb37487e5	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb58c954b	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb6ce3ac1	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb6d28b58	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb84fa58f	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb9546a74	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb99d6ab9	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb9b0ecc1	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbbb38292	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbd6b4ed9	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbed8bbd8	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc156546a	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc3306c15	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc45989b0	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8940b89	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb4d82ff	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcbddaa8c	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xccc4dfb5	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd045ba3f	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd2c114e4	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd3799212	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd37e7c55	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd4f98bc0	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd7210cb3	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd79334f4	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8cc090c	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8f9188c	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd93442a6	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdb410216	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc4b8645	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc999576	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdcd58e2c	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdd0e8d47	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xddadefca	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe0e53f80	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe343996d	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe728ee96	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe96affbd	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe9ab9904	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe9f3babe	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xea46b93d	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xea7a1bc6	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xebc1486f	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xec3114d9	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xec742443	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf0645b8b	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf9eb8a9d	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfa867569	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfbbc757b	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc56a3d0	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xffc2c6dc	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x43be41be	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x56eefb56	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xc24235d1	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe5d2389b	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x0d926913	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x18535aaf	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x36629e36	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x366ec89a	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5acc9275	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5dd98e71	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x6a6ec782	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x767f3be2	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x99acf550	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9dac13cd	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa5d2156c	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc2c95808	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc45509e4	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xcfc1469f	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfc2bfa1d	line6_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0005df67	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x002469c7	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x0033a33b	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0034f3b6	xen_has_pv_nic_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x0045aac2	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00531a17	xen_xlate_map_ballooned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x0063f713	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x00662950	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x008c5847	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ace1a7	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c93c33	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0113ba7b	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x011ab9a9	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f3545	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x012a9071	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x01535d7f	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x016c5099	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01751951	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01848a8e	local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x018a89a5	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x018b3d1e	intel_pt_validate_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b10fca	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b9f5ed	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x01baca9c	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c12c32	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c1e4cb	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ce549a	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee5532	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x020f761c	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x021067db	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x02149a44	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x022bbec5	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x025abbc4	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x027c38e4	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b1ac23	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x02bb2433	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x02bd60d3	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e5ef55	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ec2daa	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0309f6a7	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03221605	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x03340237	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0337c7b3	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0344e156	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x034b6839	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x03930fc6	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x039d2a10	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x039d4d61	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x039ec44c	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03aa13f4	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c41d9c	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ee1696	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f13587	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x0401afa1	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0410e24c	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x044bbf4d	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0463710a	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f4174	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x047e7585	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x049929c0	hv_stimer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x049dcd38	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x04a57c9a	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b5ad2f	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x04be2ebd	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c0e221	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c90e7b	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x04de436d	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x04deeeb2	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e8d007	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f009cf	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fd09aa	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x050f9974	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x052a3289	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05355edf	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x05468ba2	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x055a370e	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0570ac2c	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x05737de4	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x059358c6	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0599cc65	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05ce06d1	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05dc6326	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x06075122	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x062e97e1	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x0634f54a	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0641f326	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06683b26	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x066decd0	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x067d4d16	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x068d26e0	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x069ee0b1	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x06abf4f6	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x06de2c35	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0707637b	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x070fc94e	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x0722b0b0	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07295a6d	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x072a1794	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x072dbaa7	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0733b1ed	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x07375610	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x074bd293	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x074fc916	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x07712263	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07751fd5	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x07758670	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a6b515	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b64d81	hyperv_stop_tsc_emulation
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c4b61d	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d80d23	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e70238	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x07edeba7	hv_free_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f4e3cd	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x08071b85	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082526e8	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082b90f0	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0834e11f	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0855e2de	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x08597a58	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x08619ed6	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0863af7a	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0867d624	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x0886782b	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0897814b	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b0b09a	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dcfe6e	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e13a06	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f7cd88	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0912f9c0	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0925493f	clear_page_orig
+EXPORT_SYMBOL_GPL	 vmlinux 0x09289290	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x092e2549	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0931c613	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0934807c	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x09359adb	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x093d3098	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x095741bb	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x09669ecd	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x096a7e6f	x86_spec_ctrl_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x09787cc5	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x099078fd	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x09994142	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x099ea425	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a62e62	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b6a93a	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x09bf5783	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c28323	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x09cfb9b7	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3572b1	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a371a3e	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3d5d54	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a4c25c3	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a502c98	dmar_platform_optin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a54564e	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a65c58c	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8e5a9d	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9aac16	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad137d3	lpit_read_residency_count_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad31c7a	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af565b3	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af62232	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b15c443	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b181462	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2d1f32	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2f375a	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3f82e0	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4aa539	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4de758	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b58c068	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b617364	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8d44f8	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b99a91b	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba3e661	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb432c3	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbd9081	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be4aa99	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x0beba690	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c12314a	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c268f	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c3886ba	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c3da0da	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c43f59c	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c49142b	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c547e84	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c59d1f0	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5a2476	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c65b9ee	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c83e750	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9ad537	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9fbaf9	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca05014	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca39f63	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb06022	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb24040	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb634ae	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbca7c5	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce36d75	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce70fbc	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf21f8b	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cfef384	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d08de37	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d10ffe3	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d234ff8	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2420cd	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2bfd53	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2e439b	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d32353b	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d53f86e	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d55fa35	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d56b369	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db841ae	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db97ee7	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dcc1ed5	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd707c3	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddbecf0	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de2a9a0	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df13add	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfcc451	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1f7b36	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3efbf7	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e4604e8	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e545b79	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b7bb0	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e715b45	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7640f3	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7ea459	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8ab249	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e96c380	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ead371e	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb8a95b	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed39cc7	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed65c63	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eeb8f12	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef9dff1	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efe6b94	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f002856	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0b21fe	pm_trace_rtc_abused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f16e217	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f185696	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1e0e9e	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f22719c	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2a5f66	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2d7d87	mce_unregister_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3386c2	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f537e7c	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ea222	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f92614f	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fab2e7b	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc37562	amd_smn_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc1969	copy_from_user_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcdc721	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcf3463	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd7739c	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff0a301	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff11072	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x10071799	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x100d6c5d	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101d8e62	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x102d85fa	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1038b96f	adxl_get_component_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x104c2647	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x10510887	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x10737348	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x107ccc1a	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1094acf1	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1095174d	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ab9aee	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x10abfb70	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x10b6a863	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ca43c2	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e135bf	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1132a77a	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x11860ec1	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x11892fbd	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x119ebaec	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11aa1dfa	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x11bffa22	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d54abc	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x11da6e97	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f2cf3b	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1204b2d5	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x12071d69	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x122bd987	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x1231099b	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1241f7d5	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x125ca3db	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1278abc7	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x127a0d41	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x12818fb8	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x12893697	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b50554	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c85e6a	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x12cc4e7a	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12df982b	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e285ec	is_uv_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f22688	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f291f8	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1307a81e	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x130f798c	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x13151e9e	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x13165080	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1327ce7b	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1335ab76	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x134d42ee	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1385df1c	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x138937eb	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13975ebb	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x13995db8	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x13999bac	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a8189e	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ada0b4	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b6ed41	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c39795	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d13121	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e1060d	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e3aa9a	smca_banks
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e469c3	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eeb542	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f23e8d	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x140064ff	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1417ab7e	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142a6ec2	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x144f6134	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x14531fdc	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x14589b22	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x145919ae	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x1468b68e	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x14714bff	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x14746f7d	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x14828c5f	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14da6a02	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f9c21b	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x150f2f4b	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x15126be9	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x15384217	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15426b33	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1581671d	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x158b7253	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x158c83ee	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x15cba5d6	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9d841	cpuidle_poll_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x16055a1c	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x160bd6ce	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x160e8aa9	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1616bbb4	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x163163a4	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x16356dc2	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x165e98d2	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x16628add	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x166db1b5	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16815342	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1688d6c2	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x16892b27	uv_bios_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x168c7916	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x1690ed4b	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x1694d54f	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x169f5f99	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a8f8fd	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b274f9	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d2558b	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e3eaa9	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e6ccbb	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e95f9e	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f0ccc0	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x171f28f6	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x171f7327	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x171fcfed	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x1734ea0a	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x174972e9	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ef6c2	mce_usable_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x175433cb	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1758e48c	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x176984cd	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x176adf76	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a56cb	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x1781e39c	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x179039e4	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x1792f5bf	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x179ddec9	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17add64b	gdt_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b8d474	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bcd558	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ca1daf	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d99eb4	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e1d573	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e53e30	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e63bce	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e8aaab	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f807e8	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f94269	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x17fa6f5e	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x182aeca8	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x18412426	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x18464758	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x18570673	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x18582826	amd_pmu_disable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x186200a2	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1864fca1	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x186dc0ec	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1873ead7	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877ca13	mce_is_memory_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x18993dc0	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c69ea8	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f3eab5	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1907c049	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1923414d	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x192c8655	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x192caf01	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x193a1285	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x19586073	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x19633900	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x19644cb2	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x197e4a8a	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x199982d2	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x199f9b10	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c7255c	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19df949e	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0b62cb	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a14ad98	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1aa547	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a2b61de	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3621d3	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3aeaed	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a56d1db	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a72c3f4	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8e38da	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa0e4ce	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa96f58	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aae7fae	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab81d63	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aba3ace	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad398d2	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff0566	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff3d55	mce_register_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b016101	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b202762	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b30e2c6	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4655ae	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b46ad24	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4914f5	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b652b30	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b684b92	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b7f4b71	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b9fcdaa	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba134ad	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba237b0	default_cpu_present_to_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb2eb55	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb64add	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc2c313	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd02214	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdad740	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdc8089	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdc8404	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdd7985	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bebf213	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c2106ca	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4332f3	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+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 0x1c6988b6	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c6d0621	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7d65ec	__memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c813ac8	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c85744f	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c93db4f	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9c0618	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9ecb1e	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca74459	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cabb15c	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7610b	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdfb15a	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce62aa9	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0f38db	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2eb4e9	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d308eac	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3d3c20	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d5aaffc	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d690a68	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d6f1f1d	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7238a1	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d771111	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d792130	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7cf61a	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d878b87	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d883496	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8ba342	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc4fd1a	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc73a5b	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd171b2	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd21929	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de7362c	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dfc4858	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e027314	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1db930	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e31db34	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e3b0c50	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e44eb39	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e4f5c99	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a5f22	sn_partition_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e613a74	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7291b6	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7c152c	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e95c359	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9acc70	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb92acf	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecaa065	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed568eb	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee8e736	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f04d3ce	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f17a543	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f269495	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2eb523	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f475c45	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5b9cad	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f75ef34	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f7fd5ff	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f818c6f	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f85fa87	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f90a6be	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb8ca6c	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbb9213	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc209e7	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc453ec	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc56a3c	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x20179f7e	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x20194400	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x204da85a	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x205d275a	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2062e778	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x206bb2ad	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2070dbfc	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x207659f3	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x207fa67b	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x20826a5f	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20899467	hv_stimer0_isr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a7d73f	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ab447a	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x20db36a4	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x20dd3864	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e42f34	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f384ce	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f609a6	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x20feee57	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x210610e7	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x211a0c14	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2120f9fe	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x212927cc	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x2131e8b4	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x21340973	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x21349c1a	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x2144c55f	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x216c01f0	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x219e4e61	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21af358d	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b04880	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x21bc7f14	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c4cffc	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21dfd823	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ee01c3	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x21f62bc5	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fa1444	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fed08d	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x220491a2	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x2218932f	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x22457b44	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x224719cd	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2256312b	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x226ff60a	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2271e089	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x227932bd	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x228d9bfa	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2291c754	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a7b6d0	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c0db25	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c13f75	cec_pin_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c410b9	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e4fd0d	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ecb186	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2312346d	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x233658c3	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23479bad	uv_bios_get_sn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235219cb	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2358b8c1	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23775f8f	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x238c8ae1	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b4e0d7	clear_page_rep
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bb67b3	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bb9936	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x23cedf90	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e916c9	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e9db9b	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x23ee0d31	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x23ef6222	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f5ef8b	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x23fc386a	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x23fcfbbb	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2406d914	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x240a59f3	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410c338	x86_virt_spec_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x241db566	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x242814b8	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x24308814	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x24399785	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2449a89f	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2455b9c2	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x245bc208	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x2462b470	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2469810f	__rcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x246df185	hyperv_fill_flush_guest_mapping_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x24787926	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x247d6118	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x24950540	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d11512	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d8c1b7	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2524d466	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x2528da1a	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x253ba7be	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x253c38d0	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x25494b19	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2562c956	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x257804f9	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x25855731	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x258e1658	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2595ba2d	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x259660d2	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a46a49	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x25df0b8f	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e6a32c	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f02c87	xen_p2m_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25fcd9c2	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x260ea2e6	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x26121d8f	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a7063	xen_start_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x265192f6	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2655163f	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x2662bcb7	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x26666916	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x26758950	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x269f5041	pci_msi_set_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b1e5fe	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b717c3	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c73b95	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6900d	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed998f	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x27023dee	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x270bd778	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x27202a81	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x273aab74	xen_have_vector_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x27457103	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x274582d1	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2749e860	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x276c2609	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x27739a55	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x277777b2	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x277ab20f	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2791aba2	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x27928475	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2798429e	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2799c546	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a29bb2	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b9c20a	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e34615	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ff9835	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2822f1f0	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x282ca201	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2832a1c8	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x284b15bc	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x28569820	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x287111ae	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x287ca073	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x28898f41	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x289ea0a9	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c8b87a	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d0a438	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e64c64	xen_has_pv_and_legacy_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f195da	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f62f63	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x28fb8a25	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x290a3d6d	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x291837a3	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x291c4e6c	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x291d8197	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x293df5da	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951a872	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x2958c8c2	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x295ffc3c	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x29649545	xen_pcpu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x296e37a3	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x29820689	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d31b78	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f3837f	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f7642c	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1759a0	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a282d89	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a3de80b	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a498898	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a567cca	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a58ae55	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a691945	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7285fb	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e0fa6	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a856823	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8ceaf1	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8d50b3	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a97b193	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9898d6	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a99db69	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae0c4fa	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2afd97d1	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aff68f9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1bd2ea	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b613ccf	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b67b6b7	mds_idle_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6da095	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7fc385	hv_init_clocksource
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8a09f9	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b91f980	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b963264	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9973c1	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9bea11	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9f7f64	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb66837	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb7fda7	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bc9fa3a	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be76e7d	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c183b91	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c1c4c73	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c29a36b	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2ca92b	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2f5a09	x86_family
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c320271	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c371a29	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3dec21	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c41223e	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c4cb4c9	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c51f64c	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c530a2b	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5e088f	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c64d06e	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66512d	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7c2de3	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c877214	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8f2742	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9cb2d6	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd31550	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cfb1598	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0c5e4f	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0c905f	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d12e82f	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1dd05a	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d4fcf63	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6706ab	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d684ba9	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7a3c93	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7b1821	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8e3fdb	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d94c5d4	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9a4b43	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da78f03	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc2ef53	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc9447e	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfc675c	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfde3ca	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e09858f	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2df7f4	irq_remapping_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e634192	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e641678	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e79adb9	cec_pin_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7d77a7	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e811dff	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e867d6a	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8d1714	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8fb973	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e954df5	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea1aadc	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea67a21	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec0d029	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f18de64	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1c0bc4	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3f74f8	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f42dc57	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f488e34	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f501e26	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f69a7d3	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f6ebd90	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f70cfc1	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f737eb5	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f811be2	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc39407	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcdcf35	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdcfd28	smca_get_long_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdd9a39	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff37e38	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x302aef05	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x303e45df	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x304cda3c	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x304f5723	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x30500141	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x305f64b9	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x306f5576	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3072cefe	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3073062c	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x30862d58	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a830fc	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b50c25	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cf804f	slow_virt_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cfae22	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x30df3a57	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e7ea30	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3101e022	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x31128b8e	hv_remove_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x314c4eb9	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165daa3	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31935c23	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x31973d19	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3199cf42	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x319ff3ee	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a74800	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b29ebf	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d2224f	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f31838	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f3636d	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3210b3bc	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3241d9a0	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3246dc87	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x326187bf	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x326e692c	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e3354	__memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x32995ee9	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a09915	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ba3b73	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bae647	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32df3ac5	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3b076	mxcsr_feature_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x32edb9d1	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x32fb2f93	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x32fbd544	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3301bab2	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x3314bad1	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x333ae5ac	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x333e51ea	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x333ee108	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x334380cc	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3362b03c	xen_p2m_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x33655159	xen_pcpu_hotplug_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x336d2c9b	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x337577ba	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c0a06b	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x33dd9940	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e5921f	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f3f9f9	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f4042c	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f9156b	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fe38ea	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x34024500	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3404cd78	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34228d28	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x34494028	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x34599041	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3470d021	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x347c6ab8	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x349f748c	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b68c5e	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b8cd66	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cb83a3	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ce9328	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e82324	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f33ff0	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x35286b8c	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x353ec755	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x353f47c7	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3544e34c	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3572c40a	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x3577f386	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x357fa165	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b4edfc	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b687cf	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c05760	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c18932	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c68a19	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d263f0	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e0fe36	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f65661	intel_svm_bind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x35fd4029	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x35fdf726	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x36079be9	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x3622ab55	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x3627ef13	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x362e6c0b	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x362f1d1b	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x363789eb	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3644f5d5	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x3651045d	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3655bf35	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x3663faf0	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x3667c03b	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x368775f0	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x368ca542	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x36927437	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3695268a	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a60bec	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ae7dac	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x36af9843	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5497e	intel_iommu_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x36bd6eb1	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ecf4fb	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x371e77cb	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3748810a	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x374912c9	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3757ceef	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x375aa1a6	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x377807ca	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b06922	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b48683	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37cb218f	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x37db523e	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e6d0c0	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f292c4	pmc_atom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x38004cba	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38120a57	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x38199e89	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x38290ee7	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384113ef	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3843bfbe	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x38722f80	kernel_fpu_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38afd6b4	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c1ef27	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e0fc30	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fd9b48	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x39016a8e	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x390a93d4	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x39454fae	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x394676ff	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x395bd40b	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x396bd3ff	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e2fd7	ms_hyperv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3979dea3	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x398abe13	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x399b5764	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39bc27b0	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c243fd	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c9f2e8	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x39cc5b1e	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d4ce4a	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ffeb8a	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0a627e	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a158566	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a290e9d	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4b815d	iommu_sva_set_ops
+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 0x3a570fa8	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5a19e0	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a73cd0e	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a79b064	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7d80f9	xen_max_p2m_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8458d4	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a866b4a	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8969a9	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8bbb8e	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa698dd	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab0ee46	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab4b38c	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab91338	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad394c7	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3adb3742	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3adf4d9f	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af578f5	hyperv_report_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afc1526	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b37ac8c	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b40629d	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b52d973	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b589781	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b64d936	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b75049b	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b91db5b	intel_pt_handle_vmx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b94753f	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd2035b	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd46183	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3becd395	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bfb8bb8	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c07f148	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0d2cad	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e8050	hyperv_pcpu_input_arg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c388509	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c70c735	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c87c071	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9c554f	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd2fe58	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf5b245	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d12b38e	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d13bd76	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d30ce14	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d410b8c	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d48a5fc	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d71b041	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d77fa12	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d781917	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9a76a7	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da8891a	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dac7655	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db1cb92	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db33a18	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcb74f1	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcf520a	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df98445	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e29f16b	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e31f6e9	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e36a1ea	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e586b4e	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5c04db	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6719b8	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6d2a1b	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7c2174	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8a5784	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8e8d11	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9d9f3f	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ebbe431	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee73732	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efc6981	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f293a75	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4ad0c5	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b6caf	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f65e579	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f690aa7	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f999056	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae6ab0	hv_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb8dc42	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc5f69b	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe4b657	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ff04946	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffaf443	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x40162e7a	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x4020c889	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4035b77c	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40548f41	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071d648	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x407781cd	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x40785f34	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4090c6d2	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x40963d87	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40bad4d6	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c550ef	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c5c223	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x40df45d3	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e98f8e	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x40eb7ff1	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f59451	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x410270b8	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4107aa5e	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x410bb96b	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x41279d68	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129f5ee	kernel_fpu_begin_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x413a6b54	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x415815ce	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x4158dc26	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x416bfd6a	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x41752783	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x4178e99b	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x419a7319	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a7a9cc	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a9fecf	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x41aa27f0	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b49e21	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c48d00	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c63ee0	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cd65f2	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x41dd2e19	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e2c180	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e56da1	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42007301	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3592	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x422420e6	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x42313219	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL	 vmlinux 0x4252a7d6	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x425b1413	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x425df6c7	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x427d91ce	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x428085c5	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x429a67d3	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x429f8234	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b0f7f0	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x42db5fe6	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e6d647	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x430e27af	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x43164b02	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x431837db	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x433c05fb	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x434bfa3b	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x434f3c7d	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4369942f	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4399252f	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b55ba9	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c605a6	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43fa4c41	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x440dc998	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x4410b8d4	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4415be3b	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4418c7c7	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x444ab686	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44501432	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x445325ee	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x445a43a5	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x445b9bcf	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4483b94e	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x449445fb	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4497ac20	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a63000	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b1da62	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44be3f95	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c32a4d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c5badb	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e22c6c	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x44fc2250	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x450110e8	perf_assign_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x450dc347	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x450ff4b1	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x45200c8b	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4523b8e7	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x45284040	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4541fe0d	mtrr_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4550f873	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x45656409	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x457ba35e	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x458d9e82	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x45907752	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x45980ff6	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c138bf	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d14bdf	hypercall_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f72d45	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x45faadb3	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fb9d47	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4602e9d9	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x461d9e6c	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4620917c	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x462801f3	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x462e90c3	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x463d8290	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x463e83fc	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46619b1d	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46aa5c46	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b56906	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bd4c64	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c3dfb7	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d6a4ff	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x46eb54ce	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f99647	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x47204218	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4743d673	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47633e08	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x476e8adf	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4775ef25	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x477f8bb8	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a2b05c	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a42e26	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a8f704	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47baac39	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x47bce646	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x47be9572	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c09c8c	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f1d79f	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x480eac4a	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x4812f74e	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x4836ea1d	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x486207c1	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4869b93b	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x48784ae4	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a60f89	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b7d2a5	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c08b75	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c3441e	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c528e7	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x48cda1ad	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x48edfbb2	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f712bd	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x490d34a7	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x49153d11	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4916efd6	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x49182298	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x491ac67e	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x49231c11	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49340bb0	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x494c13f4	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x494efcba	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4956e8f6	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x49647504	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x496627d6	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4967d26a	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x497d546e	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x497eac54	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49951708	sev_enable_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a5af22	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x49add82a	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b2315a	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bafedd	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c14a61	ex_handler_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d6c587	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d738a0	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d7fecf	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dc9f0b	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f00909	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f1d2c9	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a34d996	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a51c6e8	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a61a8de	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6228fd	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a657374	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7f342d	uv_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a874e30	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a89ac7f	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8a3ab0	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a98713e	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9c4f8f	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4add66b7	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae49a45	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af3ad59	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b007030	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b034165	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b104814	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1d94aa	mce_is_correctable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2e7b86	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b3e2758	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4d28a5	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56ce05	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6afb71	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6b5bd1	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6e99d1	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b700331	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b762828	start_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b86f29e	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b90b019	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b920bc1	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b972bcd	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bbd976b	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc3e078	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc5fc7b	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be03bb4	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c14fb0d	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c23c082	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c47a1d7	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6278b3	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6b3934	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6d1603	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6f164e	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c7064e1	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c762b5c	x86_stepping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c767591	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c7bd98e	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c825bd3	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c992901	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9bb79c	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca59601	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cacdf79	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb5ce51	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce89c0f	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d1cfce8	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d24c788	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d2fe2b7	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d305206	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d6fc198	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d70a92b	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d778b56	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d908643	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d91e677	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da920ec	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dca2137	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de7c9d1	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de9bd82	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e07dd3e	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e11e6d2	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e2199c2	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e241aa6	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e4cc4b0	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e63bb2d	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6d4a0c	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6fc577	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e7032c0	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e7cfd1c	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e7fd33b	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e83b2a4	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8a8449	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e911ee7	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e974436	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9ba9d2	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea75db2	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb8fc29	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec11d94	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed29089	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f074882	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f284274	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2d4704	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4f66a5	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f590d6f	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6639a7	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6930ad	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac98a7	machine_check_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc1ae7d	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fec64b6	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff44a45	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026380c	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x502a82af	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x502ff8ed	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5034a73d	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x5047ecf7	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x50485539	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x505574be	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x50786f91	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x507a5dcc	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x507d9b55	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508ab24d	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x508d3cc8	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5092eede	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a5caac	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b03f5d	l1tf_vmx_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c2052f	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c7e16d	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1f870	pgprot_writecombine
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f09259	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f1bbd4	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x51074d07	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x51192fcb	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x51213362	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x51567fec	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x515bf892	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x516950a9	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5197aebd	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b96ad5	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c220cc	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c5da4c	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c7793e	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d2893c	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d50c5c	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e4dde4	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e6aad5	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x51faaa5c	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fc63a5	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5222453b	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5233895e	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x523b8ee3	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x529de225	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a28e66	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x52bbe2d4	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x530dd692	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x53148d08	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x5324ef46	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x533a9d91	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x534adda8	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x536c1dde	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x538b66c7	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x538f6a87	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x539298aa	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x539f157b	pci_xen_swiotlb_init_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a760dc	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x53af67fb	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c47c53	apic
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d27a1e	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d3bf06	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5404231b	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x54137d38	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x54314c85	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5448e8eb	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x54571596	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x547a90ed	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a9b60b	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d810e5	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f53899	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f95dc4	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x5501139c	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x550392a0	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5504898c	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x55073861	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x550ce709	pat_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x5517f701	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x552be215	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x553baab6	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5544cfa6	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x554a9d40	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5576995f	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x559a7041	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e85324	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f4c3d2	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x5603cd43	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560f7810	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x562297a8	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5627292e	node_to_amd_nb
+EXPORT_SYMBOL_GPL	 vmlinux 0x562d7565	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56398615	mark_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x564d40da	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c8b0a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x567e0f6e	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x56974157	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x569b8bdf	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b1c356	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x56bc7bc9	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c7b27c	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cc2708	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d31a39	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ddf1b2	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f22019	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x570cbf2b	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x57206b2c	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x5723a805	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x574f6ea3	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x574fc58c	system_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x5756bef0	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57adf982	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b94a2c	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x57bb0419	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57da0f7c	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e1e15c	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x57fb7d3d	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58351b26	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x58409ab9	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x58929f59	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x58950409	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x589b3d8b	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b58489	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d6311d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f03b99	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f10376	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x59330e60	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5939b663	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x594a05d0	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x594bb503	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x5950ebed	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x5959b4eb	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x595d54ee	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x597d7242	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x5981774a	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59852cae	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x599d5419	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a41a36	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c2dd4f	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c6aff4	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x59da0934	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e1ee30	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x59eb20e8	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x59eb431b	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x59f99a58	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fadde7	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1f60c7	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a252a79	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2d5590	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3502c9	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3e6d92	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4172e7	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a5791c5	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aecb5cb	x86_vector_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af16615	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af56c4e	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1208ae	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2055e3	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b654d79	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b74f700	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7d0f88	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b882506	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b884364	hyperv_report_panic_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb289ac	__tracepoint_extlog_mem_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc7fbaf	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bcd2d75	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c130819	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c1f9d97	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2d8284	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2db4a6	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c65832e	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6d6578	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c71b5f9	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c78acde	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c793f2c	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c7c1eec	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c7f6688	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c8a4433	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c95fa94	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c99e090	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c99ee86	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca30a0b	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca713af	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdf5bc7	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce0c8b3	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfe9316	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d048d9a	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0a5131	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0de115	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d102374	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d11e6b0	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d1b616c	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d1dcff3	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d25234b	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d281ba9	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d651e9e	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d77432e	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8b38b8	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9317d7	uv_teardown_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da6adfc	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbcfa4f	boot_cpu_physical_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dd078cf	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de12ff8	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de1eaa2	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dfc486b	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e04abbe	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e1fbd83	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4701c7	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6d4a56	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7bf114	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7fb1f9	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ea41b47	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb61ec7	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ebd36ce	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed671b8	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eecda8d	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5efa3b38	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f25fa2d	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f28f5f7	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f293243	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2acfc6	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2fcc83	ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f344e5c	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4e652a	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4fec06	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f528126	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6308cb	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6dfbde	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6e1367	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f76e007	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f89e383	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9a933c	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fca958e	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fcb6685	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd7bba6	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdfa2c1	amd_pmu_enable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fea5491	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6009afb1	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x60112ec0	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6013d6e9	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x60170ec3	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x603aac9c	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60514dbe	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x605ce1b2	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6061aa6a	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x607104d5	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x60916ae6	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60990924	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b9708b	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ccaab6	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x610d10a8	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x612ecbb7	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x613e96a9	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x614987ad	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x614b5b41	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x615874dd	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6165de75	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6171ea93	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6178947e	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x617f9ccf	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x61815f05	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b14da	fpstate_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b6eaa8	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x61cd7432	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x620ac3da	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x620b95ce	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x621f54e3	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x622efb9d	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x62342d13	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6239166d	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x62470df6	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6279712b	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x628a4357	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x62aea0d3	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cae61a	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e58944	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x62eef819	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fe9e84	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6320ecd1	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6340434e	x86_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x636213b4	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x636894e1	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x637fe2d1	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a9653	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x63a857db	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b80c23	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c6d9ef	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c8fd2b	hv_setup_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ceaead	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d52351	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f5de04	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6403b6c6	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6411298f	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6418a338	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x64195e49	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6421ae22	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x642d12b4	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6430582c	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x6437c7d3	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x643b4d2a	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6448c6ec	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x64669d9c	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x647189de	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x6495da11	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x649bbb40	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a62e11	acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a9ac49	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bdcaa8	hv_get_tsc_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64dc1d74	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x64dd2b28	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x64eeabd6	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x651a1096	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x651cd14e	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6527a231	dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x65385adb	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x653abd8b	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x654287a1	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x65522086	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x65538ea6	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x655ebe8a	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x6566c6c1	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a3543c	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a411c9	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x65afd6bc	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b0ad2d	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b8833e	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cdee5e	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ef3ff5	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x66007c94	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x661e70d2	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x66261f5b	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x662f8e6f	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663d9ac8	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x66585b77	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66996b24	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ab2074	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ac8010	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ae4727	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b8af26	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c007bd	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fa5990	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fba133	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0x67021ecd	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x67084a7f	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x670b736d	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6730260f	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x673a78e2	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x673e8bd3	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x675149a4	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x67544d4f	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x676903f7	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6769ae60	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x6774269a	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6774f9aa	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x677ebe65	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a6f637	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a7cac8	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x67abca85	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x67adfbe3	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ae3dee	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b6a01d	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bc157d	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c360aa	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcc45e	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcd76b	uv_setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e341e3	uv_bios_freq_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f02b94	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x67fb0e22	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x680b556c	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x6812d95d	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6816ba55	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6817dc9d	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x681f83c5	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x68344275	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x6841126a	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68462d9b	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x68602a18	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x6861bc5f	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6879fc15	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68977066	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a477b4	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b762d3	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ee7eea	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fe48e2	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x690c0894	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x691506b0	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x691c83ed	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692a3d1c	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6932ce07	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x694aa7b8	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6951aeee	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6957ebcc	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695a7e6a	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696372be	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x69699523	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x696d7e0b	l1tf_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x6973b4e2	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69946e16	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b59156	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f3db80	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0c6b04	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1002a0	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2cf07c	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a43792b	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4e2650	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6074c9	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a73c60d	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a804344	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a82b3ec	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a88e380	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8f3d06	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a9cb2a0	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a9f0aac	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6abcbd05	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac3e87f	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aca7754	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae7daad	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af3b3be	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af4d1ea	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b197062	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5b3eed	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5c71e8	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b623860	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b64cb18	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7820aa	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7874e6	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7a4335	hyperv_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8ed824	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b919ae3	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b995875	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc2152f	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc47dc3	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be566eb	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf276df	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c26d8a1	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b612b	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c5015c7	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c69366f	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c745bfd	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c74b112	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c80e0ae	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8fdf6c	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cad1fbb	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb0f26b	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb7393c	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbb273b	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf633fe	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf9ce62	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d169ff1	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d36088d	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3b6cf4	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3de69e	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d578d56	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5ce531	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5dc75d	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d65b1b4	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ae0e7	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da75ec4	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc786db	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dee78b4	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6deeaf33	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e05cc25	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e21dd67	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4c6884	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7aa58c	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e85b00b	local_touch_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8f0f32	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e908adf	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea0b14c	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec7a3dc	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eefd1f8	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1c9613	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f2bb76e	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f35b4d3	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f370191	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f420b85	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f4734be	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f4f2e18	xen_remap_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f545adb	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7503a7	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7719dd	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f8cae10	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa668c5	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb7b408	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fba3b83	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc978d1	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd18c93	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffce680	x86_cpu_has_min_microcode_rev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fff7d4a	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x70065e53	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x700871a0	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x70148613	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x70157b56	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7020b3a2	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7026beac	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x703ae608	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x70576fee	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x705dfcc9	ptdump_walk_pgd_level_debugfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x706e1ed4	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x707077a6	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7092463f	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7092a00c	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b2cf75	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b3688a	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70baf27d	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d1dcc5	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f0c248	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f3ce5b	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f5332f	sfi_table_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x70fd6ba4	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71101069	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x711f0ec1	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7121bd97	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x7132cc1f	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x713781fe	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x715a0476	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x715baec5	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7168d24e	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x716dbef4	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x717a48ed	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71921434	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x719b3239	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x719d1ed1	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a3845a	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x71af6580	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b1d45a	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b4bf9b	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x71c6d1e1	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d41627	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d65cbb	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e33b9d	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x71fbb833	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x720615db	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x722df538	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7238dbb3	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x72399ccc	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x724125cd	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x72495a4d	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x724e90a9	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x72545078	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x726f667a	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x727160a7	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x72864cca	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7296cc87	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a14867	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b31eee	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c18d8f	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72cc7aa3	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72df2459	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x73182542	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x731f4707	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x73211278	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x7332ee2f	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7364a0ca	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7368cd9d	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x73757417	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fe32b	amd_get_nodes_per_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x73960643	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x739856f1	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a9f4e2	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ac6e43	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d0891d	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e72d62	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x742baa77	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x7448a787	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452adff	user_return_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x748e5dcc	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x749bcda2	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a013e6	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74bbb0e5	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c6aaf8	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d63d84	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e93eb2	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e9d4f2	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ef1898	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f32c44	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x75128e7c	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7513f7b0	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x751b9e0b	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521afb6	leave_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521da32	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x75290ab2	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x752e75dc	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x754b4e7c	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7550acd3	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x755da9ea	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7570320e	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x75792186	get_xsave_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x758918d9	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7596eb28	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ad764c	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cb8c9e	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e1f89a	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x760e5d30	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x76286c2a	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x763bad89	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x764b81e0	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x76588890	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x76722c0a	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7696fa27	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a1ff2f	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a8dbe1	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bad4a9	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x76be8271	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bf2782	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cf4fe9	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d68409	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d951cd	mce_inject_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76ebbda8	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f48d2f	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x770c6938	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x771f62ec	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7722d396	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772f8aac	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x7730e5e9	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x7734b50f	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x774b7fd1	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x774c7f6f	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x775a9e17	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x77732a0c	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0x7778c9ae	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7785ea94	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77df44ae	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f10b69	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x781f3ae8	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x782adb74	hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x782ecbe6	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x7834a689	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x784a56af	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x784b079a	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x784ebebd	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x78534049	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7866db5e	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x7867f36b	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7870a1e2	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x787bc260	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x787dfd07	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x78812411	hv_stimer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a2586e	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a46ee6	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bbf10a	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bfe7f0	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c82079	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d4bfb9	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x78dd21c7	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x78de7358	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x78eb5584	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f2e166	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f4ba3f	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x791748c8	adxl_decode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x792b553d	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7932c857	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x79370d2b	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7939a826	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x7945a858	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7946ddc9	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x79619234	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7966b3b5	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x797aa498	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x798d4469	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991fd8d	crash_vmclear_loaded_vmcss
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x799b6712	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x799f7a3d	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a141b6	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a8be41	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x79adff9b	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf1043	fpu_kernel_xstate_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a10a52c	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a12f781	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a18bbc9	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a193398	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a46bab1	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4d0f8c	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5c88b3	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7b726a	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a83fd35	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac31679	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae2928c	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae986f3	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af9401e	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b148b0b	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b35ce56	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ef438	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5b91ac	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8ab0ed	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba9e0d2	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc43de2	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc47de2	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcfd6c1	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd38fe3	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7beb38c2	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1002e9	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c17159c	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c17b83e	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c20b6a0	load_direct_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2c5256	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c38afc5	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c40c83f	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c42c0e6	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c435361	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c49fee0	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c4e2ddb	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c518365	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c545ed0	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57421b	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c644f7a	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c649530	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c663fda	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c747332	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f98d1	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c803be4	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94ad9c	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caca5c3	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb36b86	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cec3bd9	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cef784b	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf05eb4	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf149a0	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf4406f	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d037d24	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e1d95	hv_setup_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1474ad	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d27a24f	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2cb41f	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6fe72b	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d890ae5	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d8a307e	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d92362b	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dac04b3	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db34545	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dddd7a2	pci_stop_root_bus
+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 0x7deb7d05	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df8b4ab	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dfe00fe	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e031cf3	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3869b1	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4a7b42	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4b8218	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4c40a0	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e558c20	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6c20b8	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6e7e45	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e83da89	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea1a2bc	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebdcefb	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7edc257d	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee8e1cc	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f215e22	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f23682c	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f2af89f	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f37f1b7	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6dbbe3	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f98f869	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa243d1	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa40a45	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fbbfe92	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc0f6d2	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc617c1	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff5b771	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ffc0357	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8007828e	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x800d23db	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x804a6d7b	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x804b3218	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x804c1d32	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8066d9f1	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x80690729	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x806a380c	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x807db4b8	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80979f81	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ab1143	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bbba73	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c11314	gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c95081	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d0a8f6	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e56f23	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ed05b6	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f707cd	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x80fdf2b9	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ff310d	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x810ecb1a	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x81104386	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x81221cad	amd_nb_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815854e0	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8161ab31	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x81800ac3	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x819a8d16	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x819cb10c	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a11150	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x81abc10d	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b292f6	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x81ba5c57	__xenmem_reservation_va_mapping_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d155b3	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81fdabc1	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x82069adc	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x82236a11	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x82282ce5	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8250ebda	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x825115e0	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x8291519d	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8293b522	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8298172e	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b7160e	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d240cc	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d3f872	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82dff13e	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f61e18	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x82fc8806	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8318491f	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x835ef988	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x836893b4	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x838f66d1	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a7acb9	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b869db	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b8b7de	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x840d27b4	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8418514d	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x841c2444	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x842047c7	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x845ead42	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x848d257a	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a22d10	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a56c92	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b235a8	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b268cf	sn_coherency_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84baadc8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c5c07b	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x84cca51d	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x84eb5607	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x84fbe480	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ff2fc5	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x85000eea	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85244ea5	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x852ed4ab	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x8533e5c7	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x85437af5	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x854b99b1	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85563714	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8571678f	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8582a363	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x859047ac	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a3f2e6	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b6b95e	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb2c45	xen_has_pv_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d9212e	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x85db52ec	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e8139b	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f9e00f	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x86049595	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x860a6c7b	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x86169f3e	amd_smn_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86355c07	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x8642dae4	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x8652a344	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8654be58	hv_remove_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x865d590e	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x866adf66	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677f369	pvclock_get_pvti_cpu0_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x867adf31	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a8e35e	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86dc7659	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x86dcc48d	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e4c634	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ec927e	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f0d760	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x8710015e	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x871160da	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8717c4d9	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x872137b2	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x8727445a	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x8735ed3d	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x873d82c6	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x873f9e2f	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x8746c169	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x874812e1	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x874a3346	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x87840a5c	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a236c8	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a96bfe	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x87aabbed	uv_apicid_hibits
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b6e2c5	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c52906	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c71bdd	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e35609	hv_stimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e64181	amd_nb_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f892d7	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x880c8d24	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x8821a9c3	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8838a345	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8845d34f	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x8857a6ad	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x88831ed2	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x88839dd3	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8884dece	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b0f8f5	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x88bd3ed0	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x88deeb3f	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e3e35c	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ebdd9a	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x890ff0e8	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x89102a17	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x891593b0	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x89278b2b	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x892e784d	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8933b840	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x893427d9	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x895e3b5c	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x897f7d4d	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x89834715	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x899ef78b	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x89acd1d8	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b57c13	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b83bf8	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c81fbd	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ddf8bb	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a217313	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a229660	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3e22d9	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a42640c	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ca7be	hyperv_flush_guest_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a505bfc	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5f8f96	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6a52c5	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7cb9c4	platform_thermal_package_rate_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9bed50	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aab9186	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab335c5	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abd2e7c	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac6019f	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad5ceb1	__uv_hub_info_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad6fc8b	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae073a8	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae4a726	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af9f734	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0788cb	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b173c8c	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1ab869	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b245861	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b253492	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3a057b	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b48b261	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b546a72	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7101a7	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b737617	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b756922	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7919e4	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9200fd	lookup_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b990d1e	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b99252b	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf1bc8b	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0a3a45	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0d1b4b	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c1f062b	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c23e70b	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c47ec8e	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c61f033	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8401dd	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c96a8bd	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9d1661	arch_phys_wc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8caa9028	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd6bd2	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd646e7	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cdcb274	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf922ae	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d07ef83	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0f4134	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1d7423	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d30d6ee	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d409f98	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4738d7	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4877eb	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d522714	__rcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d57cbdd	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6564f4	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc2298a	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc873ba	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deda56a	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e069934	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e0adb56	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e256cc0	irqd_cfg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e37099c	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3f46c6	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e5b21e8	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8be3f0	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92951d	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bd4a3	hv_alloc_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb2906f	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb546cb	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee53e31	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee92aec	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f02844c	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1811b9	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f299f85	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2eb429	kvm_arch_para_hints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f34e1b7	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f414616	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f43dc94	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f49537a	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f49fb94	pci_msi_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f50ae4a	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f716093	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7c4a42	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8bd191	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8c5715	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f934184	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa00757	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb3d8ad	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb4f5c8	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff187c6	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff43fc2	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffaf9ae	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x90091a36	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x900f32af	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x90124bac	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x901d96e1	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x90230fa3	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9024f443	mds_user_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x9058ab2e	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9084b044	clear_page_erms
+EXPORT_SYMBOL_GPL	 vmlinux 0x908d8628	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x9090aa68	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9093cd41	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9099d1a1	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x909e5846	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d8cc	hv_is_hyperv_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c0d11d	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cac5cc	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de0452	platform_thermal_package_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ee7df1	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f7f72f	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9121347e	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x914aa0b7	hyperv_cs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9160e78b	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x919698be	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91b4ddd2	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cbb2b8	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d50efe	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d5c296	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e13331	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x91fb6a09	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cd701	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x920e0fa3	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x92141343	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x9217d37b	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x922108e1	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x9228b1e5	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x922f0d0f	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d9dba	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x92412e1f	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924472df	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x924569fb	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924ee37d	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x9258937a	e820__mapped_raw_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x926ccf2f	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x927d1c4c	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x927e3250	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x9291cc77	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a538e5	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d645a5	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92daf2d9	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db7d9f	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92dd9ba3	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9308a16b	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9323fe0a	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x93333234	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x93595b9f	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x936e5a2c	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x937b3ded	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x938307fd	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x9389f073	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93964eb1	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a1d938	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x93acb4e5	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ada0cc	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c1fef3	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d6c135	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc2586	pgprot_writethrough
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e59d10	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ed6a1c	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ed8678	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fd6d5f	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x94111622	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9420591b	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424058f	arch_haltpoll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9447a1d5	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x945b8951	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x945d1c1e	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x946a3c3d	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x947b40c6	cpu_smt_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x9480e506	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9489c4e1	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9495cb02	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b0410f	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c745a1	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ddde73	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e481ed	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e71d99	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f3b46c	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x94fd3e18	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x9516751e	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x952c3b8d	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x952cb906	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9543c136	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x954e9c91	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x955053e2	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x955a1c5f	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x956494c0	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x956913f6	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x957d54fd	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9580bc81	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x958d443c	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95910668	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x95979153	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a7b683	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b0e1fa	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b56b8d	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bbc815	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef898f	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x95efa1db	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f24918	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x95fd612f	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9606cb6b	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9625431f	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x962e8cf8	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x96357a7d	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x963f1beb	xen_find_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x964fa6cf	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x96524ffe	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x96590d7c	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9667a8d4	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x967d0b80	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9688b217	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x968c7ff5	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9693265a	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a04e25	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a3af24	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x96aba0a1	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d77f14	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x970149b5	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9706583e	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c230b	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c2a34	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9719bcfd	pmc_atom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x973ad446	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x974da54b	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x97531333	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9773bc62	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9788cce1	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x978ca76b	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x979d3e17	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ac2118	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b0b8c8	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x97bf14c5	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c28ce6	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c5a792	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c865b3	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12355	hv_remove_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12a2f	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d9e1b2	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ea8d19	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fd7499	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x98153728	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x9822b670	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9823c83d	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983fd41b	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98565487	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x9858b15e	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x985a9ad9	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x9861bda8	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x9862f28f	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x98644b63	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9876fb37	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ab0a5	amd_get_nb_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x98879e81	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x988a1a00	sn_region_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x989fc18c	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d03f4c	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e87255	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f0de64	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f2e294	pwm_lpss_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f4d306	hyperv_flush_guest_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9912f029	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x992cb3a7	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930f8a3	uv_bios_change_memprotect
+EXPORT_SYMBOL_GPL	 vmlinux 0x993c57c6	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x99430ba2	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x99470a38	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x994d69ad	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9958a3c8	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x996b9030	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x996c26d0	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998a388c	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b55303	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c011d8	mcsafe_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d3a375	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e05ca7	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e345bf	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0219f7	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a3301fe	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a3a4313	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a40a22e	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4b6d80	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4bb1d4	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a83ba43	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8a07ab	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9c8c74	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa71c2a	efi_query_variable_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaac699	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ab598d2	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad08bdc	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9adb3a08	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae22a6f	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af2e12d	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9afa889c	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b023d33	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b08922e	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b31ddd2	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4b44c9	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5999d8	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5a583e	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5b2070	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5e7250	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6e82ed	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7e413b	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b820823	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b966688	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b99500b	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9f3648	pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bad141d	hv_hypercall_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcc3fbc	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd3f68a	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be7dee0	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf7d447	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c16dac3	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c231f97	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c36dba6	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3f93d6	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c4d9e48	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c5f121d	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c6400e9	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c866aac	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cae7b0a	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caf7102	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cb8103f	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cbb2b44	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccba3fc	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd3afd0	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd884a4	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce0bc5e	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cef6e29	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cefa724	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf046f0	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d15807a	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d28b255	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d41eb49	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8c6018	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8e031d	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d919a2d	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9daa2230	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dafe186	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db4b0bc	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbbbbb8	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc2fab5	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd7d2f8	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de586c5	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfcd5b4	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0d8836	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e31ec9a	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3308f0	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3df0d7	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3e6f45	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e423bbc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4b5afe	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5c1a11	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e70ff7f	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e71e2a8	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7dbc86	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8b8aa4	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e97ba48	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec04922	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ece0b1e	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edf1503	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9efd115f	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f014d04	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f01eb8e	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f087ef6	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f244db0	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f2b6b6d	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f370768	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4c867c	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f71bc72	uv_bios_set_legacy_vga_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f83d2f8	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f849a99	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fab32df	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc66af5	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff61f9d	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fff66e8	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa018bdf8	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xa019136b	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa03855f6	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0494b73	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0508ec1	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa067bd24	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f1fb7	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09e3e0e	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a281f0	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a90d46	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ad7a9a	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f3505b	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f8a0b3	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fb2b93	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fec5cf	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1248df1	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xa13cbc69	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa13f2c26	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14989a3	vmf_insert_pfn_pud
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14e05d9	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1637b5d	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1831558	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xa195fd90	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a2d009	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1be747d	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1de0959	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ed9c8b	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2096f45	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa290f861	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2970714	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa29772ab	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a69d70	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a7d56a	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a80229	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b2f6bf	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2be9719	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c3241f	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa310f71b	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3160a9a	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa334f85f	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3394ee0	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33afda0	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3589ebc	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3604028	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36a7fa6	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36c8ea2	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f4ff8	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa37355df	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3852e71	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a82356	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3aae630	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b7fb6b	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c218af	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d9b775	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ed9645	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fbe489	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41f8775	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43be5f8	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44e6801	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452c297	hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4576962	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45e9bc7	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4637356	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4715981	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa480e082	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49401c0	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49e25fe	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4be61c2	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa501d90f	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5256df0	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xa529c6fa	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa560e653	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xa56ce0e5	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57c690a	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586fcdb	uv_min_hub_revision_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa590b4ef	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a1f630	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a6c214	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b89b62	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c11432	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c1dd07	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5da22e5	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e1c419	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5eea62b	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fda269	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60b1080	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6386a58	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa645d4d7	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa647d68c	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa699d5c7	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a6ccb5	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b3e9a5	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d65673	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d90a75	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70435a2	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7127da7	mce_unregister_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7252375	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xa72765c6	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa737e118	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7451bc5	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74dd74e	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa767a4b6	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa778eb33	pwm_lpss_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa780371c	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7993471	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ac720f	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b1254a	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b84b71	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80d5845	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82d1ca3	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8729152	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa883370e	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa886a643	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa88f9f88	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8994944	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a2b35d	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8b3dbb8	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8cb6ca2	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d76e95	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d82ce1	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8da18d4	efi_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f28349	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f72e79	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9061146	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92241c5	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa938cc23	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9408ac7	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xa957f78b	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854364	umc_normaddr_to_sysaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99379ef	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b5965b	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c46509	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e3d489	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa029242	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0b2113	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1e2c7e	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa25f0fe	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e2b59	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3e2044	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4da82e	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4fb728	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5aee1c	uv_bios_mq_watchlist_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa62f093	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6959a3	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa70305f	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7a08a4	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa86cfb5	uv_possible_blades
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaaab6f5	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaaf0d24	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab5ac0b	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacc03e1	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xaade737f	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xaadf5cef	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaea5a3f	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaec3672	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1dc237	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1e0e93	hv_setup_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1ea6c7	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xab20af75	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xab58b9dd	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5c1372	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab872a93	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabaf525f	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xabbd3cfd	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabce1ef7	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xac073d61	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xac12288c	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xac131755	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xac141c92	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xac23f1f2	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3cf6a7	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xac47d122	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xac4b0d9c	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7a9f56	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7e1a73	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xac87f45a	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xac99ed75	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca4ea4d	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xacab64fa	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb496bc	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd037c5	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd07953	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xacdf32e0	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xace5c033	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0fe495	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f0017	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad657326	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xad856b2e	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8d2754	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb8f873	do_machine_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd05b64	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd89e4f	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xade7f9ac	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1423ce	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d0865	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3a9566	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xae467737	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xae67d7a6	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae6bff3b	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xae74d0e0	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae875146	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8bab3c	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9360af	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea01951	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea97b23	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb69e26	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xaebfd172	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed1adb6	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed97483	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaef3d406	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf069214	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf069a91	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf0b1bb4	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2ed94f	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf3374f9	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf62334a	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf760d88	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8c78a6	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa39cb2	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xafabef2e	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xafad07e4	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xafbcf6cf	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xafdbea25	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe1d2e4	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xaffecafe	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0122023	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0168c2f	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb035c592	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0388504	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb038fd65	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03dc5ea	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03dfa13	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0536059	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07f1ab0	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0938956	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a4037c	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b81f57	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ba1289	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0fd4ede	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11a2a74	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11cdf4f	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb133e889	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb13f3a42	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1621d3e	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16d820a	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb179730d	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a398c1	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a86a3b	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ab16a5	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1abc252	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c649a4	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c93d65	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dbb4ee	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ec32bd	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ef0548	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fb7483	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb212c54c	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xb214db58	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb227dcbc	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2425f5e	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb243f7a0	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2582518	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26c63b0	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27e7ac9	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28e92d2	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29e4ef5	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a6ff83	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a848f6	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ac96ea	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dab009	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2deabbe	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2eab807	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fa82d5	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307af96	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30db2b5	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb339ed75	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34169b3	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb353b6d9	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb35b82e8	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb361b990	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36512e9	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38c9e94	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38cf2de	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d2712c	add_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d38515	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3eee479	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f8a0f1	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41d419f	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41eafd6	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42861a3	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43893bb	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4532686	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4564775	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45cea73	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4745b79	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47f031d	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb489eb95	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b1f4dc	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b51d19	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4bf56e4	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c3f50c	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c7665c	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c8c8a6	isa_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4f7ccc9	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb502835e	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e1f27	__uv_cpu_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb513568b	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5183434	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51c391f	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52a13ec	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5421aaf	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5474458	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5562a85	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55af049	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5646180	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56bb36a	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56c220f	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56fda63	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5967658	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a71bee	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b10df0	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b6ced9	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b84552	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c48b73	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5cd3f29	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5dadb0d	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5debb81	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5eff0a8	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5fa57e9	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb608f199	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xb617e86b	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6183f70	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb62d2f57	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb63ade61	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66c0328	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6751b5d	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68b734c	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68dfac4	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69e95e8	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ac3fa9	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c6698d	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c9ec29	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75164a7	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75573d7	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7578af0	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb761318b	sev_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb762390c	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76f2749	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb790916c	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb791ea9a	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79de90b	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cbeafa	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d7c12e	hpet_set_alarm_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e10bad	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e130c4	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e919d9	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80e91f6	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8405e01	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb843a48a	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xb845d724	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85568fb	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb859b67d	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85ef9db	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8651d85	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86e3156	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8af7400	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2b1f7	mce_register_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b49f1c	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c5a066	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d6c5c3	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ecf48f	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb900d357	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb906a85d	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9080c90	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb921abe4	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb926d7ae	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92acdd6	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92d8534	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb950a1ab	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97654e4	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97f0059	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98f5d9e	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99c2c90	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99e1da9	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99f6663	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9afe51e	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c16f51	hv_max_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9cc8641	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d44d56	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ebfb62	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba01ec83	hv_stimer_global_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0f4c7d	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2bb564	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xba313f5f	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xba34a0a5	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xba43aa28	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba63ad98	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xba66a9a1	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xba68ffc4	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6d0016	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0xba717574	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xba794e2e	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xba984d9b	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9d734c	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9fb480	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac338ab	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac85da1	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacc5979	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0xbade56e9	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae48434	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf9d785	__tss_limit_invalid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3588fd	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3c9f70	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3ccafb	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb617e85	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6e240f	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8672df	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb88b8a6	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8feb41	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb916bab	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9bcbf0	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba90774	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbad3479	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbbf6847	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd3454a	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd61ae8	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe4ab6e	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbea2a7c	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc04bd46	x86_platform
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1536fc	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1700a6	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2492ec	events_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2e8c2e	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc5cf7b3	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc60dc37	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc66467d	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6f524c	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc72482f	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc752f99	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc795745	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc889241	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8e7a24	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc99f70b	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9bb39c	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9ffc64	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce271c3	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce7b128	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf3d200	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcfb2df6	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0eb046	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd21e299	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd4c976b	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd4cad1e	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd569873	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5fc6d8	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd66b0f4	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7b46b7	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd801185	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda02c3d	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdaf7579	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb2dfd5	uv_bios_reserved_page_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbaeab6	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf117ff	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0fa6ba	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe160c1e	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe2ec717	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3bb7af	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5ea04a	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe64007a	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe65b69a	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe668557	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6efd95	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe85aad2	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea0c03d	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea9b3fd	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeafd390	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed94b2b	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xbedd3980	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef404a7	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef8ddc5	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf145183	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf15ea25	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf200730	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf2d247d	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf2e3928	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3d02c2	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4f189e	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5ace9a	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5fda5d	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf873598	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9702e5	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb1be70	hv_setup_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb477ec	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbca90f	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc95c07	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd8a8f3	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdb5e6d	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfea359a	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfebbefa	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff1a333	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc012de24	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01f5d71	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0270280	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc046d003	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05f4abe	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06bb599	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07babde	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0889ad0	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08baed7	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bbce6	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09eabb0	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a7dd07	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c3d48a	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c52de3	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d5de1b	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d68c60	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e6e3d5	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f959a6	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10c9af2	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11ba403	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xc137ea41	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13d6881	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14dede6	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc153e63c	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc155973b	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1572f1c	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16e0024	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1890613	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18cdf36	amd_df_indirect_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19d2093	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a1f990	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a66ecc	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a6f744	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b522e8	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d563e4	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1e36995	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ee5bfc	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20837c0	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20dce18	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc227b06e	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25689fa	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b8971	hv_remove_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26a7f71	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2875f05	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc287d96a	kvm_set_posted_intr_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29d3c6e	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b419d2	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b6a0f3	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2bb5d6c	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1fe17	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c64a7c	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e7ee30	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ede700	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f6d130	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3011823	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3274ca1	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc332f813	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc337f90b	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc359a95f	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xc359e412	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36c8df5	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3767b8b	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xc37d5f90	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38129a0	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3952191	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc398df8a	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39bb166	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d86865	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e73279	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e7d33e	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3edf6aa	save_fsgs_for_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fbe419	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc42976fb	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43daa04	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4521fe0	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc459dbff	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4667bc7	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc47e7d01	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49097b6	is_uv_hubless
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49c6b27	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c084ba	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ddf26c	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f7b88f	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4fdd1e0	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5077685	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc512626a	__supported_pte_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5127186	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51e68d0	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc544dca4	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54b01c2	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55e57bc	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc571f6e7	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc588a90f	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5996c8c	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a1998f	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a90045	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b73dd6	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c73cb5	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c7cb7c	del_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cd38c6	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ead217	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ed9ddb	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60f576e	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xc612a51e	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6173c92	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61f2b3e	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6219808	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc635b999	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6361608	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc651d022	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65306eb	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6557780	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc683da81	set_memory_decrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6919e3f	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6987d0e	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a2ee4d	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b10427	ex_handler_fprestore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c358c0	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6cdd529	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e6a948	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e6be76	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e8970b	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e973cb	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70a2793	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7177ab5	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71c03f8	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc723b0b5	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc72928e6	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xc755819d	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78c7b09	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xc794eba7	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79524d5	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a4f511	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bf49e3	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c14599	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d1d8cb	__xenmem_reservation_va_mapping_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e0c5a1	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1cc1c	injectm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc80835d4	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc81dbdf6	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc829111d	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc830fac5	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc841640d	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85b066d	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e487a	sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89da8a3	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89ee66f	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a2c443	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8bec9f2	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cc6f10	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e8165e	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f162c9	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90246dc	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90abd45	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90be425	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91d7b5d	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91ef8c5	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc92dc1a4	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93954b7	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93da34b	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc962abaa	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9883061	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a72977	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a96bf3	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9b293d7	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9cda50b	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9cef9f5	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d7eca0	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e648a2	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ebbbac	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f315af	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f8aad7	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xca179ded	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xca28e41a	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca412fba	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4bc98d	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xca649043	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7f02af	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xca93a865	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa68533	cpu_has_xfeatures
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabaf2f1	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac79c84	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad40d07	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae2e951	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae9288e	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf24ade	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafd87c6	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb058145	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0b1363	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0b4a2c	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3efb95	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb4496c4	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb696188	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb6c661c	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb6e39b0	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb81e4f0	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb8d11b9	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970751	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9716b2	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba1e3dc	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba42a50	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbabf42f	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb45783	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf6664d	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc07dcb6	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2bc219	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2e840a	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4a567b	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc611a49	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc663145	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7e4686	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8f04c3	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8f948f	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc903efe	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca002de	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca4e66d	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb040f7	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb6028d	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb67c3e	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbb3f78	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xccc8e625	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce9ebd2	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea4e34	perf_get_x86_pmu_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd07bce7	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0de359	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd304db4	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd53697b	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6164a9	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd64da63	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6e7379	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd81a945	switch_fpu_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd95d9ef	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda845f3	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdaaecc4	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdab5fdd	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdba231a	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdedc3f2	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1a4fa	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf4768e	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf8c18f	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0f9001	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xce225590	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4f056e	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5143ec	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5d1bdf	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce727ea4	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7c62ad	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7e8acf	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8c3419	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea0548f	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb66bec	sched_clock_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcebf86d0	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xced36c15	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xced4ba47	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcedab633	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee6e289	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed2173	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8318	ibft_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xceee449d	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xceefc745	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf04d15d	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0f050b	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf147776	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf21a118	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf220618	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3135af	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3a6e6e	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3d8a78	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf43e48e	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf56309c	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf56e531	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf597d3d	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5f4fb1	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5f9bfb	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7cc5f6	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf86fc01	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf89ef99	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9cf338	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa1ff27	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc60c01	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff629c6	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff925ec	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffa3075	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd028b500	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04258cd	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd045368a	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04598be	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04b2d60	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd059359e	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06244c0	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07b62e7	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08663e4	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0919a2a	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ab2500	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bb2b4f	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d0c5c5	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d940e0	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e6075b	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd100db7d	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10ce443	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10ec409	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd110d2df	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1177dd8	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12002da	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16a8e2d	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ffe19	e820__mapped_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17fff1e	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a0f6e2	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a16cb4	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1ad5b9e	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1aeaa7c	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c63f4e	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c64d2f	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c92ec0	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cae900	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d8cc02	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d8e150	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e6f19e	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbc889	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2028083	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22a8d9d	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22d232a	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd234600c	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd266129c	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd277e6f3	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28e7914	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd293faf6	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b8c650	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2be8ff6	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d71969	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30c701f	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30c8327	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xd314879c	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32dd299	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd343a073	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37caf26	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd385fcce	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd387598d	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b17d12	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c4aa79	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d77bca	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3dae590	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e11f90	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3fb231e	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40c4072	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd416607a	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4178b1e	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd420fe59	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd427a8b0	isa_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd445d4e4	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4572638	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46e3ac7	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd489c482	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ee0155	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f0a8fc	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fa0cfb	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51bec1f	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd525c09c	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xd52a8fe8	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5417044	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd546474b	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54c74ad	intel_svm_unbind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd56b63da	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57eb39d	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd583b58c	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5849d85	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a6eea8	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5c155f5	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f3bb7b	set_memory_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60d8b8d	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6149847	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61adae5	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd635a328	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63e02fa	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6466152	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd682eee1	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xd68f6220	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6930c6c	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a2d042	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a535a3	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a5e963	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6aac1ad	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ae4b99	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ebefee	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6fad4b4	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6fb7f4e	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7015837	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70e8fe9	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71454c3	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71fa52b	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7315796	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd738a0b2	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73d7584	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7774786	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77d4211	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xd783f596	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd78d8c21	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7a1355f	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7aa3619	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7aaab31	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b048ed	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b5d5cb	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b8b69f	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c1d0df	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c9fb9f	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cbdd04	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d52790	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e69ccb	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8054640	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xd814efa1	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8271229	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd831e5b2	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83f38a0	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd846e736	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd85264ff	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xd854097d	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xd854e1e2	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xd862c547	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87bac4c	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88bc4e3	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b17970	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b2a04b	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b4b618	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d01df4	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8de7fee	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e14908	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e6806b	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f08df8	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fb2c10	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fce3dd	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd907e87f	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xd916c809	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92156eb	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9280e05	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942030c	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96149d5	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96180de	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9736755	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9753a68	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9765580	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9843251	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9850f21	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0xd998b96b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a3fe3f	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a4487d	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a60cd4	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d117e3	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e892e3	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ebbacf	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9fe3840	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0887e7	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xda117a39	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f78ee	clear_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda21dc32	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xda226b0b	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2e3e40	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3eff56	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xda42b42d	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6f6491	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7c75a2	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7faaa2	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa43d72	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab9d5c1	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae0eb64	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf0943b	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf2c7c9	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1e7bb8	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2bcc68	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb4a0a56	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb4d6f9d	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5e7a93	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6da53d	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7f01a8	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb83dda9	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb84786f	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbabc64c	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb6ab26	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb901fb	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc7b7cd	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbced607	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd66738	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd8b263	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdc582c	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc28f215	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc34ed8c	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc89e2f7	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8eebb6	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc947493	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca8e39a	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd233	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcdf8e16	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd05057e	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd20aae1	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2dad3c	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd3c97d2	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd564817	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd667be8	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd66f9c2	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7c6fae	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd81f941	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8a6ee0	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda71c1c	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde10631	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde28b46	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde18c047	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xde192f18	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xde28e7b0	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4747f5	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xde57d95b	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xde66ee7d	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8c8609	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xde945db2	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9dc1d9	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdecb134f	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xded1b073	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2f8de	perf_msr_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xded36cf5	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeef2c45	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1882af	dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf201bbc	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf203b45	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf242ca1	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf35c176	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf3e123d	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4d1f09	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf57373d	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf60a8e7	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6452a8	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf81924d	uv_bios_mq_watchlist_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa3d8aa	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb90b5f	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcc7916	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff60db0	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00af794	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0254629	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0274edb	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02e178d	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0388217	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe03c1dbb	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe051e60c	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f53ff	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe067b63e	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xe070f1dc	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071eba2	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe078afac	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07e39ef	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0851396	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0852943	smp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a4858d	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a7a95e	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c6055a	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e68e2f	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f50f74	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f872bb	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1079c12	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe11a8ea7	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe120a9af	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12fb607	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe13db1fe	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1530ff7	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1536b7f	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1580d40	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15a9082	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15cd03e	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16a86df	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1717ef0	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17fbe67	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1825e54	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18900da	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1910d90	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe195146d	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19ddd64	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1aa2d62	set_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b1e1bf	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b752ed	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d63b99	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1fb3d0b	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ffccfa	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20b3eef	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe223fd6c	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe224aecb	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22fbc4d	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2436467	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe244e452	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2513317	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26302fc	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xe289ebae	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28fd961	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xe295c0ff	is_hpet_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b059ee	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2db228e	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2dfa6bf	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e989d9	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f43d1b	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fafd06	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fd62ca	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe305cc1c	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xe316ef6f	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32bca36	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32d867b	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34c8318	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3582d79	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe364c46c	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe391664e	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c32df6	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cf43d5	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d91c17	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4014577	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe407cf15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe408910b	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40fca30	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe41e440f	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe425dbc8	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe432b0cc	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43862e9	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44ae89d	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45c6236	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46340c9	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47379f1	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48611ac	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe49773a6	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a02990	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a74e9f	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a87835	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4ac84ef	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d515a6	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e93d58	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4ee1e01	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5070b30	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5209bf8	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55cfc2e	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55d33a3	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xe569b78f	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58132f3	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59b40dc	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a4e078	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5acef3f	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b19031	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d1a57f	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6034e4a	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60410bf	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe62a932c	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xe62e75cc	xen_pci_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6313db5	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe63b7a28	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ad8ea	unregister_nmi_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe66a1fbb	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe66c0b1f	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6931621	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c3c4f6	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e9c82c	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe740b58a	hv_vp_assist_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77206c7	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe784a32e	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79e9237	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b5b941	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d06e61	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e4def1	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fd8a72	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81aeb39	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8257427	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82f0053	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83eba32	itlb_multihit_kvm_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83f1c27	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8571fbd	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85e48b1	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85f1f86	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8885057	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8bd3d8c	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c3e895	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ccab3c	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8da48d4	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8dabe56	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ec74fe	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe900f0a7	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xe90135d0	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9022caa	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91d59eb	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xe924c5a2	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe929f4db	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9335b0b	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9436766	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe944c189	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94de9dc	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95a24e3	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9606a9b	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xe96b9d45	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe96c573d	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xe98a07be	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9bab467	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c5c757	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c87098	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ca0a2d	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ca4dfd	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cb8acb	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce931a	kvm_para_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e07e3f	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e8ff96	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ed7cb6	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea24dc2b	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2aacb4	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3002bb	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xea376d28	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3bb8c8	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xea41a1fe	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xea44de40	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5123cd	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6e90f9	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xea909f4a	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9b7a8b	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9ba6e8	set_pages_array_wt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa34ad5	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa94d44	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabe90de	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabfb855	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xead58c86	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadd7d4e	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaea9932	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaeecf4e	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaff17be	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb061eec	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb29cea5	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb2e010d	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb36e2d8	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5864ff	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb614699	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb71f2b2	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb833c22	xen_has_pv_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb87d1c0	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9b89f0	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9d59d8	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebcc40ba	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xebcf42eb	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebec0997	pwm_lpss_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1628e6	pv_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec170f94	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xec18eb4f	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1ae635	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2f0ca1	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xec390449	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xec405500	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec601901	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec6fc1da	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xec70b78a	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec788566	acpi_target_system_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8771c5	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9d0908	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9fc788	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc75c66	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd940a3	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xecdef917	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf27912	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf6e2df	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed30a4da	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40c481	kvm_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed459349	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xed45dd2f	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9a26b8	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xede98ec5	intel_pt_validate_hw_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xee13e697	set_personality_ia32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1728df	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xee24386c	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xee25357a	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xee27b7c1	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xee30750d	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xee32ae2f	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee4594a1	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xee5b9004	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xee67b5c4	regmap_get_raw_read_max
+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 0xee6f2400	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7b26bd	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7d9078	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xee827df6	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xee830aaf	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xee91bbf4	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fcda6	apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec24dbe	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee667d3	fpregs_assert_state_consistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1dcfb4	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3a88b9	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xef42292e	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5f9e8c	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xef655606	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7217f5	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7f6deb	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xef993bf2	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa25e9a	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa4c168	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa6bfab	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaa071a	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb163b9	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xefbb13fd	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc4c96e	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd485e1	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd852e3	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe24f92	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff33a87	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf004672b	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0072b68	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00a00dc	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0156da6	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02627cc	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0350058	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04cbeb8	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf064c632	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0841322	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0922f86	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b1b844	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c5211f	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e76eec	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e93666	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0fe6d95	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10b883e	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1157e12	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1162159	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1272dcd	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf13fce91	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14b170b	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15ff64c	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a70429	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b74e90	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e9546a	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ee0b34	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f0eab2	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fcb66d	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2127abc	hv_stimer_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23bae20	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xf257561a	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2582ff2	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xf265325f	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2684819	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf273de93	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xf276fb7e	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27deee7	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29c102a	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29f0e2d	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a38752	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b6bb86	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c2d604	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d4ca67	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f915a6	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3181cb2	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33f918c	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf35326cd	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xf35c9401	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf35caf84	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36d971a	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf377e878	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37e3344	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38a0a45	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38b504d	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39408f5	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3954f31	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cab216	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d7de59	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ed8f0b	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ee3979	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf40b2fd3	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf40e48c1	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41fd93d	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xf432e7c0	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4374363	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xf453dce7	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4581ecf	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4625b22	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4693a66	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4737e80	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e020f	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4833519	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48df67f	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49e9f2c	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af0c7a	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b2bf9a	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c7bf8e	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d6a7fb	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d73176	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ef211c	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50cde47	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5284e6e	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf533e97e	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53f285f	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xf542baf5	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf558e9fd	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55cba1c	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xf567c308	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56deab3	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56e35d5	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5727e5e	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5750dbc	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf578275b	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58b189a	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a95ad7	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5ad64fe	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d84cba	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e03efd	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e7a0e7	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5edb412	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f1a743	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60aa4ad	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6230e49	fpregs_mark_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62b98d9	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62f2960	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6507bfe	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf660d8a0	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6623d16	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66240e5	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6676103	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6abaa3d	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ba5d4c	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c663b4	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6cb4b93	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6de54e1	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f6cdfe	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70e4a4d	preempt_schedule_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70fbcc9	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71d54cb	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73b5a43	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7449445	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xf744e920	crypto_unregister_acomps
+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 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74f4a3a	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf754b974	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75d0930	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767ca35	fixed_percpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76d8716	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7750462	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77b56ca	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79ce3d0	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a22e54	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7be0ae4	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c4228d	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ce7b40	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d08e93	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7db8df5	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80803c5	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8498785	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8594e2b	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xf85d80b9	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf865e0e0	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf881cecd	load_fixmap_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf884ed5c	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a12e35	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8abb132	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b9458d	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c687aa	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8cc0441	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d6361a	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d8d014	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e22636	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8ecc05f	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f87073	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fe3986	pat_pfn_immune_to_uc_mtrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9077155	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90dcd45	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf911fbdc	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91a6c25	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91bd9c3	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91cb60e	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92c7bde	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92f1d11	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95a8e4a	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95e378c	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf978f41d	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97d4f06	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf981d3c5	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9882d94	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c68eb9	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e3a773	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f505e5	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ff54d4	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa216398	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa26b502	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa35044a	alternatives_patched
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4b3bc3	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5059d3	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5429d5	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5d3628	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa60ecdf	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6157b7	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6188e6	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa61fd83	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa73d187	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa86aec9	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9a030a	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab0c607	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac3714e	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad85f09	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae2d578	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae2e0b6	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaed2bb3	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf5e052	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf6e453	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf957ff	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13dd2e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1e96b5	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb26cc7a	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2851a8	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb3adbbe	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4dd925	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60ca09	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb675f3a	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6a7bf8	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8116ca	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb916192	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba95349	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc492db	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd0bc1c	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd55d77	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd6fffa	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd9484d	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe3c1a3	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0448af	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc09d534	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc16a351	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc18a79b	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19b7fa	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc1d507e	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2700b7	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc300e1d	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc45af32	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc506970	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc686dc9	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc68a7eb	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc68ee95	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc69ac37	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6af6be	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6f2e33	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc909e7f	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcbfe368	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc876a3	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd58444	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfce9a0c6	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0ca7c0	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd310fe4	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd3b0c74	intel_svm_is_pasid_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd3ee073	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd532192	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5cf66b	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd65762e	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd78e736	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd96ad30	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd989140	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb986d0	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbab873	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde639b6	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdee3c43	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf5a627	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe102ff0	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1d28fb	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe245e17	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe24d39e	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe46ed54	pwm_lpss_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5de62e	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe727411	get_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe75f382	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7ed008	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8a6d89	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe959835	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec6b61e	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed33a7e	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedb1a3f	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee08d83	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef5f294	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfefd03ea	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xff02b516	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0xff04667e	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff17cb73	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1e67b9	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2588a4	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2abb6f	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2f9a41	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff63ebb0	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xff7ce8c2	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xff825b97	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e74e2	arch_haltpoll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8ebdd6	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e4198	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xffa2fd9c	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xffa94721	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb07423	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb64646	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb6bb68	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb900e9	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc5ad07	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff0cfb4	device_store_bool
+USB_STORAGE EXPORT_SYMBOL_GPL 0x00f8760a	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x06ecd3cb	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0f45e12d	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1531ead4	fill_inquiry_response	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 0x3d5f2d28	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3e182eac	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x532088e6	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5864517f	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5b9c350d	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x79c6c380	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x83a72ce8	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9ca6ee02	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9eefcfa1	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa726acb9	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xab672514	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xacb9931a	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xbf7eeffb	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xcbc76725	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd79fe528	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe1f0b707	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe57c81df	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe8181da9	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xee4419d6	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xef6c1b86	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/lowlatency.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/lowlatency.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/lowlatency.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/lowlatency.modules
@@ -0,0 +1,5507 @@
+104-quad-8
+3c509
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_dw
+8250_exar
+8250_lpss
+8250_men_mcb
+8250_mid
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+BusLogic
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acer-wireless
+acer-wmi
+acerhdf
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_extlog
+acpi_ipmi
+acpi_pad
+acpi_power_meter
+acpi_tad
+acpi_thermal_rel
+acpiphp_ibm
+acquirewdt
+act8865-regulator
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv7511-v4l2
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+advantechwdt
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aegis128-aesni
+aes_ti
+aesni-intel
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+aha152x_cs
+aha1740
+ahc1ec0
+ahc1ec0-hwmon
+ahc1ec0-wdt
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+airspy
+ak7375
+ak881x
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alienware-wmi
+alim1535_wdt
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+ambassador
+amc6821
+amd
+amd-rng
+amd-xgbe
+amd5536udc_pci
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd_freq_sensitivity
+amd_iommu_v2
+amdgpu
+amilo-rfkill
+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
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+aoe
+apanel
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+apple-gmux
+apple_bl
+appledisplay
+applesmc
+applespi
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcfb
+arcmsr
+arcnet
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3935
+as5011
+asb100
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asus-laptop
+asus-nb-wmi
+asus-wireless
+asus-wmi
+asus_atk0110
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atlas_btns
+atm
+atmel
+atmel-ecc
+atmel-i2c
+atmel-sha204a
+atmel_cs
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avm_cs
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_charger
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish-x86_64
+blowfish_common
+blowfish_generic
+bluecard_cs
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia-aesni-avx-x86_64
+camellia-aesni-avx2
+camellia-x86_64
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5-avx-x86_64
+cast5_generic
+cast6-avx-x86_64
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+cec-gpio
+ceph
+cfag12864b
+cfag12864bfb
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-x86_64
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_laptop
+chromeos_pstore
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cio-dac
+cirrus
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+clk-cdce706
+clk-cs2000-cp
+clk-max9485
+clk-palmas
+clk-pwm
+clk-s2mps11
+clk-si5341
+clk-si5351
+clk-si544
+clk-twl6040
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm36651
+cm4000_cs
+cm4040_cs
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobalt
+cobra
+coda
+com20020
+com20020-pci
+com20020_cs
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_pcmcia
+comedi_test
+comedi_usb
+comm
+compal-laptop
+contec_pci_dio
+cops
+cordic
+core
+coretemp
+cortina
+cosm_bus
+cosm_client
+counter
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia2
+cpu5wdt
+cpuid
+cpuidle-haltpoll
+cqhci
+cr_bllcd
+cramfs
+crc-itu-t
+crc32-pclmul
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-pclmul
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_ishtp
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_lpcs
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+crvml
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+ct82c710
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062_wdt
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_cs
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcdbas
+ddbridge
+de2104x
+de4x5
+decnet
+defxx
+dell-laptop
+dell-rbtn
+dell-smbios
+dell-smm-hwmon
+dell-smo8800
+dell-uart-backlight
+dell-wmi
+dell-wmi-aio
+dell-wmi-descriptor
+dell-wmi-led
+dell_rbu
+denali
+denali_pci
+des3_ede-x86_64
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dps310
+dpt_i2o
+dptf_power
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dtl1_cs
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-edma
+dw-edma-pcie
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-pci
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+e752x_edac
+earth-pt1
+earth-pt3
+ebc-c384_wdt
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_bhf
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edac_mce_amd
+edt-ft5x06
+ee1004
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts_serial
+ehci-fsl
+ehset
+einj
+ektf2127
+elan_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_pcmcia
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esb2rom
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+eurotechwdt
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-axp288
+extcon-fsa9480
+extcon-gpio
+extcon-intel-cht-wc
+extcon-intel-int3496
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71808e_wdt
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fam15h_power
+fan53555
+farsync
+faulty
+fb_ddc
+fb_sys_fops
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fjes
+fl512
+floppy
+fm10k
+fm801-gp
+fm_drv
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fschmd
+fsia6b
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftsteutates
+fujitsu-laptop
+fujitsu-tablet
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-clmulni-intel
+gigaset
+gl518sm
+gl520sm
+gl620a
+glue_helper
+gluebi
+gm12u320
+gma500_gfx
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpd-pocket-fan
+gpio
+gpio-104-dio-48e
+gpio-104-idi-48
+gpio-104-idio-16
+gpio-adp5520
+gpio-adp5588
+gpio-amd-fch
+gpio-amd8111
+gpio-amdpt
+gpio-arizona
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-crystalcove
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-f7188x
+gpio-generic
+gpio-gpio-mm
+gpio-ich
+gpio-it87
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-ml-ioh
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sch
+gpio-sch311x
+gpio-siox
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-vx855
+gpio-wcove
+gpio-winbond
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-ws16c48
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpu-sched
+gr_udc
+grace
+gre
+greybus
+grip
+grip_mp
+gru
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdaps
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+hecubafb
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfi1
+hfs
+hfsplus
+hgafb
+hi311x
+hi6210-i2s
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-hyperv
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hio
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hopper
+horizon
+horus3a
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp-wireless
+hp-wmi
+hp03
+hp100
+hp206c
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hpwdt
+hsi
+hsi_char
+hso
+hsr
+hsu_dma
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei-wmi
+huawei_cdc_ncm
+hv_balloon
+hv_netvsc
+hv_sock
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hyperv-keyboard
+hyperv_fb
+hysdn
+i10nm_edac
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd-mp2-pci
+i2c-amd-mp2-plat
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-cbus-gpio
+i2c-cht-wc
+i2c-cros-ec-tunnel
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-ismt
+i2c-kempld
+i2c-matroxfb
+i2c-mlxcpld
+i2c-multi-instantiate
+i2c-mux
+i2c-mux-gpio
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-reg
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3000_edac
+i3200_edac
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5000_edac
+i5100_edac
+i5400_edac
+i5500_temp
+i5k_amb
+i6300esb
+i7300_edac
+i740fb
+i7core_edac
+i82092
+i82975x_edac
+i915
+iTCO_vendor_support
+iTCO_wdt
+iavf
+ib700wdt
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_qib
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibm_rtl
+ibmaem
+ibmasm
+ibmasr
+ibmpex
+icc-core
+ice
+ichxrom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad-laptop
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ie31200_edac
+ie6xx_wdt
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int3400_thermal
+int3402_thermal
+int3403_thermal
+int3406_thermal
+int340x_thermal_zone
+int51x1
+intel-cstate
+intel-hid
+intel-ish-ipc
+intel-ishtp
+intel-ishtp-hid
+intel-ishtp-loader
+intel-lpss
+intel-lpss-acpi
+intel-lpss-pci
+intel-rng
+intel-rst
+intel-smartconnect
+intel-vbtn
+intel-wmi-thunderbolt
+intel-xhci-usb-role-switch
+intel-xway
+intel_atomisp2_pm
+intel_bxt_pmic_thermal
+intel_bxtwc_tmu
+intel_cht_int33fe
+intel_chtdc_ti_pwrbtn
+intel_int0002_vgpio
+intel_ips
+intel_menlow
+intel_oaktrail
+intel_pch_thermal
+intel_pmc_ipc
+intel_powerclamp
+intel_punit_ipc
+intel_qat
+intel_quark_i2c_gpio
+intel_rapl_common
+intel_rapl_msr
+intel_soc_dts_iosf
+intel_soc_dts_thermal
+intel_soc_pmic_bxtwc
+intel_soc_pmic_chtdc_ti
+intel_telemetry_core
+intel_telemetry_debugfs
+intel_telemetry_pltdrv
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+intelfb
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ioatdma
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipu3-cio2
+ipu3-imgu
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+ipwireless
+iqs5xx
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+isci
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+isst_if_common
+isst_if_mbox_msr
+isst_if_mbox_pci
+isst_if_mmio
+it87
+it8712f_wdt
+it87_wdt
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k10temp
+k8temp
+kafs
+kalmia
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-amd
+kvm-intel
+kvmgt
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-adp5520
+leds-apu
+leds-as3645a
+leds-bd2802
+leds-blinkm
+leds-clevo-mail
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxcpld
+leds-mlxreg
+leds-mt6323
+leds-nic78bx
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-ss4200
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+legousbtower
+lg-laptop
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmc
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp8755
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltpc
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+macb
+macb_pci
+machxo2-spi
+machzwd
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77693-haptic
+max77693-regulator
+max77693_charger
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mce-inject
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-i2c
+mdio-mscc-miim
+mdio-thunder
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mei
+mei-me
+mei-txe
+mei_hdcp
+mei_phy
+mei_wdt
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+meye
+mf6x4
+mgag200
+mi0283qt
+mic_bus
+mic_card
+mic_cosm
+mic_host
+mic_x100_dma
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microread_mei
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx-platform
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+moxa
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi-laptop
+msi-wmi
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+msr
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwave
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxm-wmi
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n411
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+nettel
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-avx2
+nhpoly1305-sse2
+ni903x_wdt
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_common
+ni_labpc_cs
+ni_labpc_isadma
+ni_labpc_pci
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nic7018_wdt
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_intel
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nv_tco
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nvram
+nxp-nci
+nxp-nci_i2c
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of_xilinx_wdt
+ofb
+omfs
+omninet
+on20
+on26
+onenand
+opa_vnic
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+padlock-aes
+padlock-sha
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panasonic-laptop
+pandora_bl
+panel
+panel-raspberrypi-touchscreen
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pblk
+pc300too
+pc87360
+pc87413_wdt
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcengines-apuv2
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-hyperv
+pci-hyperv-intf
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcmciamtd
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_pcmcia
+peak_usb
+peaq-wmi
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cpcap-usb
+phy-exynos-usb2
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-broxton
+pinctrl-cannonlake
+pinctrl-cedarfork
+pinctrl-denverton
+pinctrl-geminilake
+pinctrl-icelake
+pinctrl-intel
+pinctrl-lewisburg
+pinctrl-madera
+pinctrl-mcp23s08
+pinctrl-sunrisepoint
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn544_mei
+pn_pep
+pnd2_edac
+poly1305-x86_64
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+processor_thermal_device
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp_kvm
+pulse8-cec
+pulsedlight-lidar-lite-v2
+punit_atom_debug
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-cros-ec
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pxa27x_udc
+pxe1610
+pxrc
+qat_c3xxx
+qat_c3xxxvf
+qat_c62x
+qat_c62xvf
+qat_dh895xcc
+qat_dh895xccvf
+qca8k
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quatech_daqp_cs
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rapl
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rdmavt
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-bq32k
+rtc-bq4802
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rc5t583
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wilco-ec
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-laptop
+samsung-q10
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sb_edac
+sbc60xxwdt
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp_target
+sbs
+sbs-battery
+sbs-charger
+sbs-manager
+sbshc
+sc1200wdt
+sc16is7xx
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scif
+scif_bus
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci
+sdhci-acpi
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_f_sdh30
+sdio_uart
+sdricoh_cs
+seco-cec
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent-avx-x86_64
+serpent-avx2
+serpent-sse2-x86_64
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-ssse3
+sha256-ssse3
+sha3_generic
+sha512-ssse3
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sil164
+silead
+sim710
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis-agp
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+skx_edac
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc91c92_cs
+smc_diag
+smiapp
+smiapp-pll
+smipcie
+smm665
+smsc
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-acp3x-pcm-dma
+snd-acp3x-pdm-dma
+snd-acp3x-rn
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-ext-core
+snd-hda-intel
+snd-hdmi-lpe-audio
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel-sst-acpi
+snd-intel-sst-core
+snd-intel-sst-pci
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pci-acp3x
+snd-pcm
+snd-pcm-dmaengine
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-rn-pci-acp3x
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-skl_nau88l25_max98357a
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-acpi-intel-match
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7213
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdac-hda
+snd-soc-hdac-hdmi
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kbl_da7219_max98357a
+snd-soc-kbl_da7219_max98927
+snd-soc-kbl_rt5660
+snd-soc-kbl_rt5663_max98927
+snd-soc-kbl_rt5663_rt5514_max98927
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-nau8825
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rl6347a
+snd-soc-rt286
+snd-soc-rt298
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5651
+snd-soc-rt5660
+snd-soc-rt5663
+snd-soc-rt5670
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rt5682
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-skl_hda_dsp
+snd-soc-skl_nau88l25_ssm4567
+snd-soc-skl_rt286
+snd-soc-sof_rt5682
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sst-acpi
+snd-soc-sst-atom-hifi2-platform
+snd-soc-sst-bdw-rt5677-mach
+snd-soc-sst-broadwell
+snd-soc-sst-bxt-da7219_max98357a
+snd-soc-sst-bxt-rt298
+snd-soc-sst-byt-cht-cx2072x
+snd-soc-sst-byt-cht-da7213
+snd-soc-sst-byt-cht-es8316
+snd-soc-sst-bytcr-rt5640
+snd-soc-sst-bytcr-rt5651
+snd-soc-sst-cht-bsw-max98090_ti
+snd-soc-sst-cht-bsw-nau8824
+snd-soc-sst-cht-bsw-rt5645
+snd-soc-sst-cht-bsw-rt5672
+snd-soc-sst-dsp
+snd-soc-sst-firmware
+snd-soc-sst-glk-rt5682_max98357a
+snd-soc-sst-haswell
+snd-soc-sst-haswell-pcm
+snd-soc-sst-ipc
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-intel-byt
+snd-sof-intel-hda
+snd-sof-intel-hda-common
+snd-sof-intel-ipc
+snd-sof-pci
+snd-sof-xtensa-dsp
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-us122l
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-vxpocket
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+soc_button_array
+softdog
+softing
+softing_cs
+solo6x10
+solos-pci
+sony-btf-mpx
+sony-laptop
+soundcore
+soundwire-bus
+soundwire-cadence
+soundwire-intel
+soundwire-intel-init
+sp2
+sp5100_tco
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-pci
+stmmac-platform
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+stx104
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3-wmi
+surface3_button
+surface3_spi
+surfacepro3_button
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thermal-generic-adc
+thinkpad_acpi
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderbolt
+thunderbolt-net
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads7950
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tlclk
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+topstar-laptop
+torture
+toshiba_acpi
+toshiba_bluetooth
+toshiba_haps
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_nsc
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+tqmx86_wdt
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish-avx-x86_64
+twofish-x86_64
+twofish-x86_64-3way
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+uPD98402
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_hv_generic
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+usnic_verbs
+uss720
+uv_mmtimer
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vboxguest
+vboxsf
+vboxvideo
+vcan
+vcnl4000
+vcnl4035
+veml6070
+ves1820
+ves1x93
+veth
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-camera
+via-cputemp
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+via686a
+via_wdt
+viafb
+vicodec
+video
+video-i2c
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+visorbus
+visorhba
+visorinput
+visornic
+vitesse
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmd
+vme_ca91cx42
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmw_balloon
+vmw_pvrdma
+vmw_pvscsi
+vmw_vmci
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmw_vsock_vmci_transport
+vmwgfx
+vmxnet3
+vop
+vop_bus
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83877f_wdt
+w83977f_wdt
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wilco-charger
+wilco_ec
+wilco_ec_debugfs
+wilco_ec_events
+wilco_ec_telem
+wimax
+winbond-840
+winbond-cir
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wmi
+wmi-bmof
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x38_edac
+x86_pkg_temp_thermal
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-pciback
+xen-pcifront
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-hwmon
+xhci-plat-hcd
+xiaomi-wmi
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_pcie
+xirc2ps_cs
+xircom_cb
+xlnx_vcu
+xor
+xp
+xpad
+xpc
+xpnet
+xr_usb_serial_common
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zatm
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/amd64/lowlatency.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/amd64/lowlatency.retpoline
@@ -0,0 +1 @@
+# retpoline v1.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/arm64/generic
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/arm64/generic
@@ -0,0 +1,23549 @@
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-ce-cipher 0x02e28d0d	ce_aes_setkey
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-ce-cipher 0x68f275ad	ce_aes_expandkey
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0x52d67a4e	neon_aes_cbc_encrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0xd5f41819	neon_aes_ecb_encrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0xea11590c	neon_aes_xts_encrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0xefc32a9b	neon_aes_xts_decrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/sha256-arm64 0xb455924d	sha256_block_data_order
+EXPORT_SYMBOL	 arch/arm64/crypto/sha512-arm64 0xcdb6a418	sha512_block_data_order
+EXPORT_SYMBOL	 arch/arm64/lib/xor-neon 0xd4671463	xor_block_inner_neon
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x2fccab1f	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x5d071cd6	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x5d80014a	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x8e22223b	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa331b535	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa747c2a6	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x28c6df7e	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x325bdacb	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x88767217	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0xe978b7bd	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0xeb40e8fa	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/atm/suni 0xae3622c5	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x43dd3a19	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x9416e49a	bcma_core_dma_translation
+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 0x8322ead4	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xfc52415f	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x73f0e19b	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+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 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xb1c5b4ea	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xb47de087	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xdd5ac72f	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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 0x1c2e7214	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x571f654e	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xabb09afc	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xea5c1061	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x8fb696a1	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xc458b4a6	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xeda94f8e	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x61a6c02e	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x8f39a58b	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc4ec6d48	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x17572340	caam_congested
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x19788108	caam_drv_ctx_update
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x37734e06	caam_dpaa2
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x44ae4bc4	qi_cache_free
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x541346f4	caam_drv_ctx_init
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x79ff7d05	caam_drv_ctx_rel
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0xa70f6d71	caam_qi_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0xc0eaa792	qi_cache_alloc
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x150eaef4	caam_jr_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x510b5875	caam_jr_free
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xa6d0fffb	gen_split_key
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xe700c8fc	caam_jr_alloc
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xff847b17	split_key_done
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x2e152bb7	cnstr_shdsc_xts_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x3b54a9ad	cnstr_shdsc_aead_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x76a68e3e	cnstr_shdsc_chachapoly
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x7b0c587f	cnstr_shdsc_rfc4543_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x7b7bcab8	cnstr_shdsc_rfc4543_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x86bcdec7	cnstr_shdsc_xts_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x88430d4c	cnstr_shdsc_aead_null_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x91ac0969	cnstr_shdsc_aead_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa3115081	cnstr_shdsc_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa340e264	cnstr_shdsc_aead_givencap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa99d7fa6	cnstr_shdsc_aead_null_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xebcdd349	cnstr_shdsc_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xf92c5da5	cnstr_shdsc_gcm_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xf95bcf62	cnstr_shdsc_gcm_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xfd807e48	cnstr_shdsc_rfc4106_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xfdf7ec8f	cnstr_shdsc_rfc4106_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0x30a1e372	cnstr_shdsc_sk_hash
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0xb5571dbf	cnstr_shdsc_ahash
+EXPORT_SYMBOL	 drivers/crypto/caam/dpaa2_caam 0xf50c8361	dpaa2_caam_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x2ee60d9c	caam_strstatus
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x53d0fc97	caam_ptr_sz
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xa51f16c7	caam_little_end
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xbd67c092	caam_imx
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xd25da602	caam_dump_sg
+EXPORT_SYMBOL	 drivers/dma/xilinx/xilinx_dma 0x237bbd89	xilinx_vdma_channel_set_config
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x01cde125	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0b83ee50	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x12597113	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1ca21177	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x215e62dc	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x23d828d5	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x24957bed	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x24a3ef54	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x31ec5175	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x40d7a60b	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4370eb2e	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4dcb6678	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4dfe15de	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86843812	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb23388e3	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb2672bae	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb485a962	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb83a039a	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc07f43e4	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc5e36ee4	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc96d2c8f	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd3862b3e	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe1ec2179	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe681916c	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfbbe5c59	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfc503235	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x016b8c96	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x01e20c13	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x023006a6	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02ac4fda	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x031491b9	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05bdda23	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05f0ebc1	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x074d84e6	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x076740ca	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07c7c7e5	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08accf44	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09ad075f	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09e58f14	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a8ead91	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b50c1c5	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b8591d4	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d73df7a	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d99e8e3	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1013f9a4	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10851b68	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1096d70d	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1133cf82	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127355b8	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1487c5a1	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x160a0025	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1648c187	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x179b8466	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18277c4a	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1892339b	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19c4915f	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b50f11e	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b5a851a	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b681d9a	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bfc6251	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d0c67ce	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d3ebadf	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dfddf91	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f301197	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f8d2ab4	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20649a67	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20b664c5	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20bc3064	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2242c037	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2297d485	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x232ca4d8	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x235898de	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23658399	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23a24019	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23ae0bed	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x245dab3c	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2474465c	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25baf118	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27160be0	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x281580e4	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x282f283a	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x289369a7	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a281163	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a3446be	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ab096db	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2bf5d2b6	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f427484	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fd69aed	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30bde225	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x312f9c98	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3140643a	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3147204b	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32b448b4	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33489834	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33c60693	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x344c6683	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a08228	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x350dc9a9	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x358fec19	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x361502e5	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3712e0da	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37b1235f	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3879b9a1	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x393493c7	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3938733e	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39b8bfd0	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a8f0d44	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e4480e3	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f3335d4	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f8441d5	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4139b362	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41f166f2	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x429fb58a	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42a801bf	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44b50a54	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c5f5436	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ce3cb39	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d4bd9e4	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f9a76e4	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fe4fc4c	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fed3e96	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50410b72	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52571067	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527f6548	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5438b0f9	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5462d58a	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54ceccbf	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54ea0d3c	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x561f6e3d	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56797aba	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56d5c92f	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5857f16b	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58d39549	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5952d3d2	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a0d966f	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a34210b	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ae016ad	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5bacc0c1	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cc2203f	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ceb54d9	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d0337fb	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d4b0057	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5dd73593	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ddced90	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e61eb98	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ec934cf	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6074e492	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6440ca60	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6453946c	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64778cf3	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x652dcb7d	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x653b85ab	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x661adac6	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x686c8fce	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x68e9c775	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x68fdf577	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69194b9d	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a246fd9	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d1dea20	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dbf79ea	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e26c608	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fea1d8e	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x701c60a5	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70441e7e	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70a4bbb5	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70c7beaf	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7111a087	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x716a0ea7	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72139751	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7355b068	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x738293c1	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73a0224b	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73bd95ad	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73e317b0	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73fb841f	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74300ecb	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x754a716f	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75959140	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75b2a6d4	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x767f1524	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x783b3995	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78c661f8	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79af9f10	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79baa6f0	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a8c9c5c	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7afa92d0	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7afb5f67	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b920cec	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ba64982	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c7461aa	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7cdf216e	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d3855bf	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e7ab0c4	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e87784c	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f02f064	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80337a92	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80d90670	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80f08b81	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8233acd4	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x825fcc6b	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8262d0d2	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x840842a2	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x840a48e9	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x841b4592	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84ae7ae5	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85ff6147	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8636f70e	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x870203e5	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x887f917e	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x897278f5	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89a68764	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b32d0fb	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a0e2f	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c3b168c	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c42bbd7	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x900b77ba	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x919b0ac8	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x931f4e6a	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x93d71d01	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x93f10d47	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x956c79dd	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96a0f97c	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96ad86af	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x972e59bd	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9765f010	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9797cc3e	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98a4d358	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9acfe302	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9af234c0	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b61cf4e	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b87d151	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9cc8a170	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d768423	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e2ed9db	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e801044	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e90cf8a	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f9f54b1	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa07bc378	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0d43131	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa10808a1	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2c6a53e	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3b60ab8	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3cfab42	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3fd3626	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa517f2f5	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8810e85	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa881efdf	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ebbe24	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa4841ad	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabd90140	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac9ab733	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad347d02	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaed9dbd2	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf261bc1	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafc6e603	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb083b659	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0ad50d2	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb12208ab	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1aa3b55	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb207d478	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb234f695	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2577c74	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3a472f7	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb546df1e	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5985075	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5b077d0	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5de8a89	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6214a6f	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6324ba3	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb659af63	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb65e0e77	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb785b78e	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7950aba	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7ca0026	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8737a1e	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8ab6b79	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba025226	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba4dc24e	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba7572d0	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba764ffa	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba78cea0	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb518d35	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc585a91	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd242dde	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdcf8ecb	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbec57c2c	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfb61989	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfd2c04e	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc057f098	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0b9e0d6	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1f9fc41	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc237846e	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc38cfb61	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc490c75b	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52a6e48	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5629446	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc62e324c	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6cd4676	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc700ecfd	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc87b0d8e	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9894281	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9b98c31	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaf3ac04	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xccc1f13f	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd2361b7	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd9e9f85	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce1306e6	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf4122d0	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfa44058	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfe9bf75	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd07c6a0f	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0b706cc	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0dac69b	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1cd388d	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1d6f845	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd27e0975	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4b4c0f3	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6add632	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6cd08f8	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6ed3e10	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd70c7e74	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8866023	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8faa598	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda403aea	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda793ec3	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb6e7a3d	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbdfa3e0	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc317886	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc7b9b95	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdeed11bd	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf4f9ca0	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe0430e16	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe20f5193	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3a705f2	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe416401e	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5065734	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe50e5e6b	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5b1a8df	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8390504	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe859ffd7	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe86057a4	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8692494	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9050ba8	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb331a7e	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebe72f8a	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed55847b	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedb73227	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee6cbeb8	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee738244	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef27c707	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef7982d9	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef83cc0b	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xefd2cdd2	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf28fed0e	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2e62198	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2e969fb	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf31938b9	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3f007c3	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3ffbb8d	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf433e6aa	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5ca9b8f	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5e62381	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6243f52	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf78bfb5e	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7e68d5b	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf91823ab	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf97a3a29	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf997a2a2	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb6c726f	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc04ccec	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfcc3b6a5	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfcffcd37	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfdd3d9a8	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfdecd451	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe0c7517	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x001aa711	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x00775500	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02fb57d3	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0335b987	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06abba87	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x09015884	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x090de0fd	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0baea693	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0fb9bfab	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0fe1eccf	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1034a293	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10560282	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10926ffe	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x12838f23	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x130c82b6	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13a78df5	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18e3a09b	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ac3eba0	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1e18982e	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f018903	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f155b78	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x213f5ca4	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x22d90ad2	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23223766	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x242ca2d7	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x24f5663c	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x254055d7	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x25f5dbdc	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x263d3294	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2647a88b	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27cda01a	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x291bd9ba	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2a8a803d	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2abd53ae	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b692d55	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2d11710d	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f49a695	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f677ab6	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33525dfb	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x350e4e2b	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x39e35ab9	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a573a1b	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a863be5	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3fd00002	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x41968e0b	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x41b7b613	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x435ae677	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44654173	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45bf7e5b	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45da7bdb	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x47bc8804	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48717991	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4985cc8d	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4cf2baf0	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4dd29536	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e74b232	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4fda3e1c	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4fe67f2b	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4fee1784	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5048eb09	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x505c9ba3	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x510deb69	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51259272	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51f50971	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x52f2add7	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x551d7fd2	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x552a1a4b	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x55848d65	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5bae1918	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e3d344a	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ea3cbe7	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6393ccfd	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63c6a71d	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6405b9e3	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648fcb2f	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x660c5582	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66b59945	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66d63154	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66f29427	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a01f6b8	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a9a506c	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6acf0239	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e82db97	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f3131b9	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f90354f	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7112cf71	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x72a7bfac	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75b462bc	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x769ddee8	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x78cbdc5a	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a0e3833	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b4d15c7	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7c45051a	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7c47875a	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d089013	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7dcb8f76	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eb58c23	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f1eb5ef	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f7260ad	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7fcae1e9	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x803873dd	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8486ebf2	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8615a7a8	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x86391e42	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x875e3bdd	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88639827	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x897a26a6	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8a5fb1c7	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b45af9c	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c76e826	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c8cdec3	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d91e4a3	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8ea46c56	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9201a762	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9374b3e9	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9492c6f4	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96c563f0	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98188db3	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x99b724b7	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b5532a3	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d7f8bf3	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa07ff4fc	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa16c2841	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa19bd03b	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa241da88	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa34571f3	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa365e9cd	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3cfc3d7	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa7b92e8c	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa8ad1d68	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa991f2b8	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab1484cd	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac2c457b	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xad166cb8	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xad1bd1cb	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xae151137	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafaf1b98	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0794687	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb2a5b37d	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb3968ab3	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6cda32e	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7faca6e	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb84823cb	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbc8389a8	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd17b4a5	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf84d820	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc2713b85	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5174ab5	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc58a8e0f	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc9a6585f	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcdae4232	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcee89a31	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcf806bad	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd0d41d3b	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd62f4bed	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd8a670d9	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd8f07b01	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda6b8055	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdae556fb	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb642f1b	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb8cce88	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdbdced46	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdce4a057	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdd2e8dfd	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdfa4dfe3	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdfc7ecc4	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdff28879	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe070df26	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe15595fb	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe36117a0	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3924309	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3bbdd9f	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe4cf3294	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe6449acc	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe6a07d2f	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe93ec535	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xed9c2352	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xede6ba10	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedfa54f3	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xef3c696b	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xefa4d9ff	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf00c3ac1	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf138730c	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf412f34f	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf6d3a634	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf81817dd	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf874a440	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfaab5b71	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb8c0c66	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbb6a436	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc8be895	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfcc136cb	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd37145a	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd4ae2ea	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xff0f6982	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1b57c204	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x22257f39	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3864d116	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3c610326	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x452819e8	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4832b3fb	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4a188141	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x51482edb	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x52fe4c76	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6c5ad289	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x72e88491	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x7334a829	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9f4734bd	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd1f9bef3	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd3722f8e	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe2047249	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xeab90520	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfea45303	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x03fa48f6	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1f4ab056	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x258687c1	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x2bf0666d	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x57857fed	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x63176e90	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x728fb808	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x77d7d3ff	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x80c72e11	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x972cc664	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x975a04d4	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9e1d8f8e	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xab9b2f97	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbfe8703a	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc44ddeca	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xcff35c5e	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xddaf866d	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe0932c70	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe361f1ab	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf8a973c8	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/rockchip/rockchipdrm 0x7230cc15	rockchip_drm_wait_vact_end
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0740d533	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x088f14b8	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x203ad0bc	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x359268cf	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3f6818e9	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4647d054	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4af18d71	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x6835da35	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8195b5c1	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x83bba502	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa3fa283b	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb8016b08	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc8b91318	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc96da49e	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcafe6e71	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd0345d6c	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd172b81c	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe6010adb	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xeec5c1dc	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x216b3500	sun4i_frontend_update_buffer
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x2d279469	sun4i_frontend_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x94789194	sun4i_frontend_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x94c577f7	sun4i_frontend_update_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x957e0118	sun4i_frontend_init
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x96413fdb	sunxi_bt601_yuv2rgb_coef
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xa631b179	sun4i_frontend_format_is_supported
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xd0f71f82	sun4i_frontend_update_coord
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xe13164ef	sun4i_frontend_of_table
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x262a3dbc	sun4i_rgb_init
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x3da745f9	sun4i_dclk_create
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x6c10c7a7	sun4i_tcon_of_table
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0xa4a92993	sun4i_tcon_enable_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0xaba3b8c2	sun4i_lvds_init
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0xccf04c16	sun4i_tcon_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0xe20cdaf6	sun4i_dclk_free
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun8i_tcon_top 0x1f1b13fd	sun8i_tcon_top_set_hdmi_src
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun8i_tcon_top 0x350e5dcd	sun8i_tcon_top_of_table
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun8i_tcon_top 0xe494093e	sun8i_tcon_top_de_config
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e5af711	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x10a01082	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x212e47ea	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x28865a07	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2b85e91d	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2bcd8071	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f96834f	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x388910e1	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3b503fef	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x409ed743	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x449ed6ff	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x47d7adf6	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4bc3c40f	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4cb27756	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4edd0749	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x549ce2f9	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x55ff9f32	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x56f2bcab	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5a364b2b	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5b008c4d	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x64499d28	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6b769af6	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6cfa887a	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74bf6edd	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x757fc366	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x79fa54a8	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7d659e0d	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7fbd2fb0	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x810cfbbd	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x81b453b5	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x846e9f20	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8f13c1c8	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8f28df1e	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x902d21fb	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9b60d3a5	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9f58e118	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa03bff49	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa0dd428b	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa5abe5a7	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa5b93550	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaa874d8e	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xab6e3dcb	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb6d8b52a	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba56f8a0	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba90cfb3	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbf071cab	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc14b4393	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc2ce2f6e	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc35e90b8	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc94fec4e	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc9a435cc	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcdc78760	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd3aec374	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xda50022f	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xde0ed454	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe086f14f	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe0e1f5c8	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe3c14a20	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeb83dfb3	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf1c8974b	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf3b1e0dd	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf8d996d7	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf9f2e563	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/hid/hid 0xa84ac258	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x737e2685	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/i2c/algos/i2c-algo-bit 0x4a013111	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x5a2e78ce	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x8a4074fd	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x43253e7f	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xb1b958b1	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0xc4aa8f7d	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x10a77978	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x6eb5a8ab	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xfa5a84cf	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x101af5ad	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x17b2eab9	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x2e6ab931	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x32ec1dc6	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5df5cdcf	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7a0b6bba	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7ba5fc58	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8a2a894f	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8e9d82c3	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9cb52924	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9d4386ea	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa9c09c42	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xced867ff	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe365b7e5	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe6b0f3ca	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf90b7cc9	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x4b42759f	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x58e404d9	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x6b8b6ef7	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x47b80713	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xb40bbfd8	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x2e0431c2	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x340a4b6d	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x798c4e2c	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x9eec7473	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xa6632540	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x06c5a00d	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x104fffbf	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x11516294	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1d8253ee	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4f7ef5e4	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6603e6dc	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xaa2aac39	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xca970f6e	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xd9110922	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xdb2cb56d	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x33912ffc	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc6575eb9	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc7dd0d92	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xcb30ba6e	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x062d8590	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x22b2e7a4	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x30702edd	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x6b49989d	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x9fe5e3bc	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xaa2ba0d9	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc7595d02	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe38bc83f	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf487ee77	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x3e766b13	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x74486c3f	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x74f2f61f	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xb52bf49c	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xf6ee783e	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x05c5105f	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x0a929bea	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x59f3a0f1	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x128452b4	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x19b2fcef	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1c186c09	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x21db7e62	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x24c4475d	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3768c405	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x55ea0714	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5a4faeaf	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x62c26ebb	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6a7f0a50	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x9533283c	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa640c3b8	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc219f666	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc502970c	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe2177d45	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xec261c66	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf2e633e4	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf383dfb4	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x1d1580fc	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xb646229b	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x083e98bf	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x5f889dd7	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xc4a27097	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xebf1c5c3	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x02170e70	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x2338af6d	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x25ea81fe	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x09996a8a	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x560d2456	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x8501aedb	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xee1d8dd9	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xe29738de	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x2fce8b09	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xcbc2d05a	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0024ea05	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x15677ef4	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x168bc208	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1d075557	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1d65e2e9	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x20bb8927	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x42937eaf	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x43a36fdf	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x4b342767	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x518683d1	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x52a95240	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x54e618b2	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6729586e	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6c15a89b	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7768cf2e	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x786e3366	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x89dc7023	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x923df8e6	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa2bdc742	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa64c6eac	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbd5b1f61	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc86b5e95	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xeda8906e	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x36cd5e6f	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x651f2be8	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x89521fd8	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x89dae760	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xfffff9b9	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x1c3ea64d	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x834a29c2	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x8db0beff	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x8f1e1456	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x696b279f	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xc3604b84	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x7ff56f8d	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xc09f3ae5	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x46ac20e8	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x66226066	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xb834dffa	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xbec0d4dd	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x73031690	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x9102c310	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xb72ec5b0	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xcdb0844b	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xaf01c702	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xb41e4a5f	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xe803922e	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x43799cb3	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x4e0e925b	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xa9ff41d1	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xd6aba909	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xf648027c	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xd4822f8a	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xe23856c7	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x6def44b9	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xaeaba84f	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xded23fd0	st_press_common_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x06bbc9c5	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1163e577	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2bb832c4	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6c9f08c6	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6da4cb87	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x82a0078b	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x96dd9e5a	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9a568ff7	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9ce88b29	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9effd22c	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa77f4c8f	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xae18b194	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb23fbfd5	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcbce48a6	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcc09813c	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe31cf509	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf14eadef	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xfb27a83f	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x02716a89	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0285bab2	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x037d17cb	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03c6ea1f	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0518bc35	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0553017c	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x05a9bb8e	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x066b4b5c	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06f4155e	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0713c4f6	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x087a65ff	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x089dfebd	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b4fc9ed	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e5e4fd4	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10e7f671	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1245e9f4	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x12ca9468	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x12e2ac2e	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x12f8bbcf	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x130683de	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x153916f1	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x167bff97	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x16fcd071	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x176f8a1c	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x17d020a7	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1952bc8e	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x197f9829	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1993a5c9	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19bda91d	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b428ac7	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2044b29b	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x23d9f477	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x27425c8f	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28b00fd6	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28f49b1e	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2961dbf8	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x299e3df8	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x29de6d55	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a45d923	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ae361de	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b16d5ac	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e16b933	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e98bd98	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30080990	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x303fbfaf	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35a4cc5b	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38d37850	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3994f8fa	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a2bf320	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c05fe9b	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d3c976e	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x404dec84	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40abda88	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x415c5aa7	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x41d4d615	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42a30e44	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x431cd637	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4c9da7bc	rdma_restrack_uadd
+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 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x51423d9f	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x531af580	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x544833e0	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x566524ff	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x572da553	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x59dfcf14	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a7b41f8	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5acf94b9	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5df6ce10	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e6d3918	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f16808b	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f3c525b	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60de0181	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61379748	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x63cbaf4c	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x67b6f68b	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x681cf158	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x69e054bb	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6bfef3e2	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e261cde	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70663b83	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x726575d2	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7464f65a	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x750d14d3	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x762d797a	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x76dfac03	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x76f46d23	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x782b24b0	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x78c33add	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79ce6e9c	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7dd644c2	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f34da4f	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81235152	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81adc10f	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x824887c4	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82894f01	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8723539d	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x894c03e0	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a155cb1	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8aeed133	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b7f59f0	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8cbc7b75	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d77537b	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8df7164e	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e91adcf	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8ff251d9	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x91fc4a4d	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93877cd4	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x946be484	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94b1710d	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95e4aeb8	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x98385a1a	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x993fff4f	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9cb1cff7	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ce87b9a	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d6fd914	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9db4845a	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9fc7c575	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa007f9e4	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa06e9209	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa10e9f9a	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa1c2ff28	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa4253f3e	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa4b94e01	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa550061d	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa948667c	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaaad2489	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacd265d4	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad1736e8	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xadcf784f	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0063398	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb154d7f3	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb24b174d	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3b9a00f	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3c9ee65	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3eb927a	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4643db9	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb746c97d	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb77a8db7	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7d7c26c	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb98e204a	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba288aca	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba9e3207	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc4166ff	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc6bb949	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbedd9b2a	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc1ab9db6	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc24b4dd8	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc286e21b	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc3011c7f	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc3fe8cec	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4651069	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc60551cf	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7d43c28	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc88eb9c1	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc9e7e088	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc9f2da52	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xca5d23d6	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd1eec87	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd2af222a	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd2b38363	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd67df88c	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd89ccf5f	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd95d12ba	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdac066c8	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdcea238d	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde1c634f	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde712c81	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdec081e9	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdf721f44	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe0c73f37	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe16a3dfd	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4ddc6d3	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe804be4b	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe87dd405	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8a8c750	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xebb12ec3	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xecad4d0e	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xed18ac61	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xefa85c6b	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf76f92f4	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8eef3ff	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfdc95a02	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe196a57	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfffb7a76	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x08afaed6	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x09a21724	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x11e81635	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x13970cf8	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x19c977e5	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x22dba606	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x24351959	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x29956e8d	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2f41f80f	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x312e57e6	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x31e610ee	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x33ebd386	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3df57238	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x639d1650	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6da37ef7	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7282cfa7	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9fa3b781	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa549a744	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xacdbffbc	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc4e226ac	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcea57f95	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd8bedadf	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe0bc017c	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe92a3c17	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf75f4130	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf9082372	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x13cccb5b	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x2ed7b0a4	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x4e62f31a	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xa03b2c1c	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xa4f664af	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd53eab96	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd5fa163e	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd754f55a	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0574701a	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0b5d30d6	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0e8c0926	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x173614ca	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x279529f1	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x336a1b9d	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5064bb48	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x55e73f59	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7411e995	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7d5aae5f	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x86842444	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8ccb3a65	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9583b363	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xad34014b	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb360b2d8	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb460c413	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb78e455a	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb7c23906	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb93a4221	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbd0fbd29	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc13dcdd7	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc3e0f52d	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd495927e	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd5014a5d	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe0385da6	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe93a969d	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe9f11aa7	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xef4ef179	rdma_create_qp
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x30b97f5f	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x5921e69f	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x60c4b930	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x89be3b16	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xb8980c36	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xdb1c002b	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xe665004a	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xf40e0857	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xf95379d6	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x2285dd45	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x45691b5c	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x5ce25f8b	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xb8f08844	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xc8c6952c	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x773e2260	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xa40467ac	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xb9bfe602	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x25eb9746	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x1ec87983	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x798e8941	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xcbd5a80d	ad714x_disable
+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 0xb9b4673e	cma3000_init
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x8ad933d9	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x00ac2139	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x70904ffc	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x862d9815	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xb6982b2b	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xd124656e	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x3362a446	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xfad30c18	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x01f8b2db	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x09ca4e61	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x1d78fca7	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32fa6fe2	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8642cd9b	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8de6152d	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcbc3d086	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcd964e6a	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xd98f3bb5	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xeb8ae334	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+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 0x104bf467	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x438efb1f	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x4f5a21e4	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x74957e8d	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xb37e74be	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xe4361b60	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0121d74c	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0c7cde47	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x175d7087	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x24772003	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x296d6b4c	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2cef708c	get_next_bframe
+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 0x5022be79	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5437ba72	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5b0f2413	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x64e38266	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8350cd23	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x83ce60c1	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x89e8c882	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x98a18423	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9a76e30f	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9dac04af	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa8a33bb9	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb9f5000b	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc511075f	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xed04d753	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf7fd4c82	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfdb6ea40	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfe6dc773	mISDN_register_Bprotocol
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xd4246f09	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xd8e06dc8	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x186fcf16	omap_mbox_enable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x9cb50481	omap_mbox_disable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xa89ac875	omap_mbox_request_channel
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x29e9c549	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3cc4a837	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa64c8692	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xae98a6bc	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x11ebc4e8	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2240483e	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x226e443e	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x423353ef	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x4dbc8609	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xade106b0	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/raid456 0x35557a8f	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xa06b1be6	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x1ec84aa7	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x26d9407c	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x3d14874d	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x564f9b7a	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x5af8f8e0	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6b6f7ed9	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7879ac07	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x896e62d6	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x9573cabb	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xb770bdd6	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd0483bd2	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf1eb7664	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf849137d	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x01a9230a	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x3d1adf79	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x81d013b8	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc56e20cd	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x3e054ef2	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x3c211559	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xa198ff64	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xc949fada	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x16fd45a9	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x3cae4d5b	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x5ecc4480	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x7cf3dd42	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xd0e3f283	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xfef150ea	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd85017f6	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x007aedb7	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x00fa470c	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x020ca9db	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0cc808bd	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x10fc2dc2	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1e5c6963	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x200a1ad6	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x452ac623	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4db02d66	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x59438a92	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5ee7754b	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x64521ef4	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x65946fcc	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x87610388	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x87d3587c	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8f6b60a7	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x94c83629	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x95ed603a	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb153f38f	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb16eb967	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xbc472226	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xbe5128d2	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe934eab4	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf0fae2e1	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0x94096c74	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0xf15665f3	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x07e10db0	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x408361fb	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x95bccf99	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xbfaa153b	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc0277770	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc7fac73d	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc833f3bb	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xd5d7a887	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xd6794f2c	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x62d090ab	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0xa82a689f	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x49cacd23	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0x7e5c92b3	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0xd5f3fb77	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x2f9f9249	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x9618925e	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0x79ebeffe	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x67333de4	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x22e6e2a4	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x9690f936	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0xeb97cb47	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x68d88f3c	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x911348a9	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x41b11e73	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x2b8f7c2b	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x2f028517	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x4b057210	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xa7ef0a89	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xdc807348	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x14fd2369	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1a82678f	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2221ec1e	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x385d52f1	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x3f3b197d	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x5e85016a	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x65c0c88a	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x6a343e46	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8d0d2457	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc531a600	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xcc152014	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd4453a6c	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd9150268	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xec5ec108	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf77ff2c6	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0xc2ae187b	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0c6be4c0	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x350d0859	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x4c27034c	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x9c4afb01	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xc18e1d40	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xe829b693	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x2c564ba6	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x544fc69a	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xd11888ce	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xf94f56b8	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0xd9ebb7ea	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0x55c0c951	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x28c1f78a	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x477d475d	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x5d5e3744	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x67780f06	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x7b880721	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x98d321a6	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9ba450c3	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa1710723	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc5cddc4e	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xcbc404f2	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xd903d8bf	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xfe85026c	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xff4dba24	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x0b1eaab5	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x1b3ffe9c	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x1c1a75dc	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x4c9d457d	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x9ee42c26	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x13cd21be	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0xb36aeed0	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0xef144c12	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0x5a19167e	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0x98d3f1b0	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x40331d2a	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xa6d7907d	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xebfd3942	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0x30c2fd21	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xb086f34c	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xb9db7e29	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0x33196eb8	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0xa0040d7e	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0xe3fbd664	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0xc1127299	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0xddcc5e4a	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0x999b5bde	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0x0777eb4d	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0xf7169d62	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0xa5c87dc5	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0x15f11278	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0x8d2da9dd	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0x394e62d8	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0xb86d9921	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0x06f49373	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0xc64e3f84	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x6670d68b	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0xea753130	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x6d2344b0	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x000ce1b9	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xfde7c252	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x47af3caa	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0xf8dc37d3	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0xb8a3be86	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x1db99db7	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0x97bc8f71	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0xc99903a7	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0x5a19ebc9	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0x767c4c85	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x5969ce06	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x14dc43ce	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x01e3d868	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x94c2ae81	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0xac397124	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0xa9b282f1	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0xcb314165	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0xa6072da8	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x828fd1c1	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0x986a83ac	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0xd4789ec2	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0xb56e082e	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xa2d52f8a	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0x17d81311	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0x4f12992b	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x327812cd	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x4360b9d5	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x9be04846	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xa5876397	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0xd262f95b	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0xc7683661	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0xd3e4307f	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x3457c887	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xd4a63d12	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0x6ddd88fa	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0xcef3f3f6	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x0493a7a5	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x20e7af4a	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x06a60a6b	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0x3acd8b0c	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0xe73b212e	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0xbdf8f69c	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0xa285f28f	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0x5cc696c8	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0x89afd9ef	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0xb7e0ab5b	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0xf3b8221f	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x8e1628f8	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x9e4c0c01	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0xcbebd778	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x1a39557b	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0x26ea37d5	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0ce117a3	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x165f0174	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x234810de	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x43a26dfe	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x566a3f7d	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6363f760	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdc8480d0	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x12ab75b7	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x44a1bb73	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xca65bdac	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xef20d879	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x3cf3a3d5	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x6917a8d1	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xa708a208	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x09671c95	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x1629e034	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x7c08e4af	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x8e715de5	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xa82f7f98	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xad014b89	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xb4b152cd	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdad71db9	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdfad4276	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0x31945786	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x05f17013	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x1c995381	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x3f0fae53	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xd464b0a3	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe304bc38	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x02dae3a8	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x1273958a	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x48b0c5c5	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x899b1a00	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xa841a4a7	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xc282cb53	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe351a7d6	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x9248358e	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xc3c73c4e	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x307652c8	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x7a5dbd6c	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xc297b3fd	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xe91b759a	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x0f0aec34	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x23189a27	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x590a32e1	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x8f163dac	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xbafdf343	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xd1c941aa	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xff35fbb7	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0598c023	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0e85b373	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x16da456a	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x18049ce2	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x220fd3b5	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3b05ed7f	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3b61f573	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x4a8f2dbe	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x50e25484	cx88_risc_databuffer
+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 0x6302726d	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x76519922	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x7a2cc061	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x825a4295	cx88_newstation
+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 0xa57e0e61	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xac70072f	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc13274ae	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc24193ea	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd1eecbea	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xed4ce75c	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xfb070377	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x18d3a305	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x19a5a808	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2bcff26d	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x467a589d	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x4b01b307	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x4b11eff4	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5beec829	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x76b15d53	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa6f8b296	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xbc145d70	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc64a5a11	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd38b8660	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xdf3b7cdf	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe65f36a1	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xed34f284	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xf840d404	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfa1c5bf7	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x059abe02	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x55cba6d2	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7406375e	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x74dde86a	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x79821c21	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x927f0e7d	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9ad43876	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9c797173	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xceff21c7	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xe8c18271	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xfcffdc44	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x791d9018	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x14d4c3fe	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x29b3534c	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x48856e0e	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xbf45ce45	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xcab7fff4	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xcc8ec995	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xec7f70cc	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x24d9e54b	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xaf3e822b	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0x54d9ccbe	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0x0ba3345b	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x3f925c18	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xa4fa5930	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xf595e7b1	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0x23419eea	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x949760c0	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0xcb047699	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0x860a91ad	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x0f5a9ba8	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x59c68849	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x4507b881	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0xdc382469	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0xb510d89d	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0x8d622e7a	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0x3d7d025a	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x8ba8443d	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x8fe8b09f	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x38362a4b	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x39c1d1e0	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4be9f1a6	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5a1ec013	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x630be332	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc335e652	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe6408e70	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfc1e52f8	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfc51e0af	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x20979d31	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x3b4ae399	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x41f85baf	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x64578c97	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x84c0fa1e	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x88d180fb	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xdaca14d4	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xb8117c8b	af9005_rc_decode
+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 0x232ac6e8	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3181121f	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3b49f8ba	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x67e27e90	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6a6e951f	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x874e9848	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa03edd99	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd8f1d987	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdb804037	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x19747563	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xf39fd7f7	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x10ec585f	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xa12c1373	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x2884a17b	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x30138550	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3611eaa5	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3a65b3ec	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x6044c6b9	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x6fa7a37c	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x8f837c73	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xd113814f	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe7b06b5b	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x302737cf	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x470c6a0d	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x603793f2	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x79136296	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x8e99d936	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xa643a28a	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xc179a146	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xcfa14632	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x13a23608	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x5169e7e5	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x8bf7e5a3	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x8c40b8d2	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xa787b918	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x15c6caa9	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbc3dbfab	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xeec079c5	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x03db9d27	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x045f9b42	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x085271c9	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0a7889e3	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0adebe11	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0d482385	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x13a602b4	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x14fc9506	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x195d8546	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1bb993c4	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2274d81d	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x25df63de	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28503604	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2b0c1804	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2bfd81f5	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2c051774	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30eede13	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x350ba17a	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x37c9f2d4	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x38485b90	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b0ae6e2	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x409f9d20	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x455bc371	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x464c25cd	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x472e8d40	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x512af20b	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x531d5063	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5717725c	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x602cf286	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6143cf80	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x69b2ee59	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x70552d62	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x726740b0	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7306e126	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x730d278d	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x76122a20	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7614cf39	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7897aaea	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x79b741f2	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x85d5a3eb	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89398f53	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89eec3e3	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8a61e99e	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8ecb78b8	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x96c6124d	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x97d1a7dd	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x98262ce4	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9b0d6574	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9dd666f9	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9de088a6	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa1994ce7	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa46a9684	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaca1fe2c	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77c235a	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc10695f0	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc9fdf274	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd049738d	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdbe4fe94	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe295e36a	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf17166f2	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf64fe94f	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf6c1b691	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfae6a9a6	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfc702c19	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x20842cba	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x2a3c9910	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x351a1184	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x52f60a85	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x5b3e0203	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x617f458a	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x70079903	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xb1357597	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xcb06706a	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd6d589cb	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xdfd6f14b	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xfe356f37	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0da18135	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1390160f	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1e90280c	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2f1c6054	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x39dfb232	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4215b795	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x43733096	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x44a258cf	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x498e80b4	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4d68bd47	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x57b9aca8	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5f22d7d5	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x63ef5038	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x79797c59	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7e439dcd	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8ba1b212	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8efe58e2	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x91e1eece	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x96fb9a5d	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9e0681f2	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa59d8e65	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa6765a0f	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xae7bce10	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xaf4a6af5	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb2450b81	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbc3d6e3c	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc5baccad	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc854d3a8	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe47a2693	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x09085aa2	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x0e1fb7a9	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x10c4f371	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x11750348	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2d10bcec	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2eede824	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3e2b0ef0	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x400a0faa	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x406dfd48	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4579fc51	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x49abc48a	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5092f757	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5158b767	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5b024a1b	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x7bc915d7	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x86d499f0	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x86f359b0	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8ff362a6	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x96be140d	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa6316559	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa6b02d4c	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcc6fdcec	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd1ad1ea4	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd6d77f38	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdb401b45	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf563febe	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfb47cf47	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x547af31d	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xdb9660d6	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xec8a771e	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x62a03090	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x8c9497e3	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xf18804b2	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x18a12f6a	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x7a91289c	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x1f8389ba	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3b9f9ca4	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x4b7f502a	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x55604447	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x55b8fe58	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x825c03fe	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8ee148e4	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9cb8a3ce	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa97591c8	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xdf1c9c77	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xf418063c	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/qcom_rpm 0xd520f912	qcom_rpm_write
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x0bcf34e1	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x3d986345	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x891c3fc7	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x94ad36cc	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xa6978d55	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe12321cf	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x4b5b3f8b	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xba1a4ba9	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x5601aece	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x4ee86f1f	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x67f02626	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x20419fc9	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4bc23abc	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x6399b32b	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x6b06c7d8	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x6c1a51cc	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x6d8a875f	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x836ffeb4	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x8a2eaaa3	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb43d3454	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xbbe67b04	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xcbd3fa38	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd2d49c2d	tifm_map_sg
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x0cf9211b	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x11db793b	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xbe9ea251	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xbef21a79	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xe902025b	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x247be5f6	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x48345e61	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x989335f0	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0xe2d5013e	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x31e5047b	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0xbb6312b4	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x0d726958	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x38343e75	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x4ee09044	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x51461fff	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x5370e2fe	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd74a7b0c	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf07748cf	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x4897d294	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x67c65a79	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x709095e2	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xd23715af	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x0ee6efd4	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x58f5d2e3	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x80a59111	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x1ab94ab3	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x9ef6a74e	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x085446be	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x9dac0a7a	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x9d2df490	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xe17652a4	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x102603bc	mtk_ecc_get_parity_bits
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5437e775	mtk_ecc_disable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5de55d81	mtk_ecc_get_stats
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6df58afb	mtk_ecc_release
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x76e53683	mtk_ecc_wait_done
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x8dcc87d2	mtk_ecc_enable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x96b7fe44	of_mtk_ecc_get
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xda64ef4a	mtk_ecc_adjust_strength
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xec8b9207	mtk_ecc_encode
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x134ef9ed	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x20105dbb	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x21ec6ddc	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x2604d1e8	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x26e5cbdf	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3ae30ab3	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x5dff5a9b	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x7217f59c	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xf62e3727	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xf86fecec	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x1d761b3f	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xe0de41ec	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x3868fc6d	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x3d88458b	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x56898fa7	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x63255baa	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xc17fff7b	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xc639eb95	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcf0f403b	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xdd4d563d	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe2967c7e	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xf3be3dcc	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x11c9b1ed	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x4ee13dd9	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xf9e402ec	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x053bd8eb	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x06f707a9	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0c30f4f3	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x13f5d407	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x16195989	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x256443a4	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2575300a	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x301d739b	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x33d71b58	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3b53cc5c	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x426e5f5f	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x47ebb3e9	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x592b80d8	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5b240805	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x60f2efd5	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x784f9bd4	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7a601497	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x80d1f305	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x82af4ccb	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x898aa54c	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9398f512	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x973af2e3	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa30ed6e7	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa3fbd1b9	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa46692be	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa96c27b2	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb4e8b298	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xca595193	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd0585316	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe0b89922	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe2c6f213	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe50252f5	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe7418e27	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xeb417931	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xef5f12d6	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf3053e51	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf42d558d	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf861239c	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x476995cf	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x600f7539	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x85fbb771	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8a4e25d9	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd275db5b	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xef139d25	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x63ca71e4	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xa27c492e	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x2d2cda1a	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x2479ec6e	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x3f122a6f	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x780e7e3d	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x99dfd442	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x0c1c9213	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x89b5b598	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x611dfcb3	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x6b3bed75	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x81f052fb	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x8cb031dc	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x9cd54bfd	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa193d99f	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xbf9e895e	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xcfb2e391	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf0b64c0b	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf113816d	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0xd4e59995	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0xa931638d	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0xc0c59818	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
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+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 0x1827bdbc	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3b7179c7	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4580efa9	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x46a431fd	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x470a6217	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6e7c25f9	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x83defee4	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x86ab8ca6	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8c8a9539	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9a63a07d	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa69a6c75	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe35aad2d	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xecc30f5c	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xececc6d0	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf736b0cf	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfc4722ae	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x08f2b238	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09089699	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f560972	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x15c712e2	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x169fb99c	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1b87c4fe	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1c18fe29	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x28127883	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2db1693e	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2eb15dda	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2efec112	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x348a80f4	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3ac5a789	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3e3d2254	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48a68f59	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5125e388	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x51261b6d	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57c31ecc	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x61a33793	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6252eb89	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x679646f9	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6df0de48	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84830f84	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x89f9d829	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8fc29c01	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x93bb9a28	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9d938d9d	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb0aad0a7	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb7fc1da4	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd82bfcf	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbe5fb643	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc08a7f2d	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd2716ca8	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd54caeea	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd6ff7ad4	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdcc20413	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdde7a63f	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe153a459	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe435c714	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4b7504f	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeefef385	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf1f04f28	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf4c66d8a	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xffda96a7	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0c8cad16	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1b940825	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xa1d3d86e	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xbe5d68ce	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xd474e304	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xdbaa2508	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xfd743a88	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x5ec64368	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x76efa69b	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x8187a038	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x8e06abed	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x9475a7e0	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf42085ad	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x3d54aa03	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xc4455866	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth 0x4412391e	dpaa2_phc_index
+EXPORT_SYMBOL	 drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304	enetc_phc_index
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x3feef83b	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xa589686e	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb4cbcb47	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdc3b68c3	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xff2d8b64	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x6a126a29	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x85e28571	hnae3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x87fcb104	hnae3_register_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xb84af199	hnae3_unregister_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xd09a4fd4	hnae3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xd2847ba1	hnae3_unregister_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xe8c4426f	hnae3_set_client_init_flag
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xfd43f689	hnae3_register_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x1a6ba404	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x298bdf7b	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x2db83d63	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xcdc57fcd	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x0cee09c5	cgx_lmac_linkup_start
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x0ff59a9a	cgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x27c65569	cgx_get_lmac_cnt
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x380cb7a1	cgx_lmac_evh_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x399852d2	cgx_get_cgxcnt_max
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x3e6f11a1	cgx_get_pdata
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x45a34f51	cgx_get_mkex_prfl_info
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x54d178c8	cgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x68dff5d5	cgx_lmac_evh_register
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x93295045	cgx_lmac_addr_get
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xa90238f3	cgx_lmac_promisc_config
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xce7b3103	cgx_set_pkind
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xdaec7b61	cgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xdbeffa32	cgx_get_link_info
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xf66092a2	cgx_lmac_rx_tx_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xfbd0b5b6	cgx_lmac_addr_set
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x1933186e	otx2_mbox_busy_poll_for_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x3afee505	otx2_mbox_init
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x7310b758	otx2_mbox_alloc_msg_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x75e91b78	otx2_mbox_msg_send
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x8f772a3f	otx2_mbox_id2name
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x951d512a	otx2_mbox_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x9dff8922	otx2_mbox_get_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0xb2a28eea	otx2_mbox_nonempty
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0xb9c3ac78	otx2_mbox_wait_for_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0xbc04a276	otx2_reply_invalid_msg
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0xefc93f4c	otx2_mbox_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x037ee596	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07afed51	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f87d3c5	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10d0544d	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17ed1301	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18c526b0	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b5661c9	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b70ea73	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1bc27e25	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d0cbda4	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35acc37b	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38350126	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e7796c6	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50078b0c	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51e3a6a0	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5386ab87	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54504c70	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55ee2ac8	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x571f0180	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57d6d16d	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a95e625	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64469b3d	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x735e58a5	mlx4_is_eq_shared
+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 0x90565491	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x94d122c2	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x981b8d98	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c3646ec	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d86c71d	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1f02d06	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa764d60d	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8390928	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1c7e631	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba6544cb	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc676d997	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcaa4b2e6	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbbcf3b8	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xceebd233	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd082ccd9	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd21bb8e2	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd50f7ebe	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecf8fe44	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3d160d1	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf948118a	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcbd7799	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02fb60b0	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06b3d6d9	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b70573e	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10bdeec5	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15c32c1b	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16c2961e	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1747a634	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18598260	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a417a55	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23722067	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27478e7f	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28aaf3eb	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d69b180	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d7d5139	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d82547a	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f598dc0	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x314fe6b8	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31c291b5	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32d5a06f	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32d722df	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34b1327d	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35110d9d	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3592ea50	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3671f610	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37563c70	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38926fa0	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a832351	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44437a4b	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4801a2ac	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ac9fabb	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c00b196	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c3a34b9	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c6af1bd	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dc3dea6	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f7ec5e3	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53ae3bc2	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53b079cc	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53d1e293	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x54a56489	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56f10caf	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b2bd8af	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c6dc843	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cce6188	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d2d8483	mlx5_core_destroy_cq
+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 0x68829c4a	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a888e26	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b0f3909	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d797b22	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e1d0164	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f9f3bee	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7488b69c	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x763a378b	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7679a22c	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76d9937a	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c9f2e35	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d0e978c	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ff21a30	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81c80527	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84c8e9ce	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88297ca6	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8adb814f	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8afbf3cb	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8bbf407c	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d3c96c2	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9035b4d4	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93107900	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x947940c3	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94a4e3f0	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99e3e269	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a58982f	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b8f16cb	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c637a6f	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e3f77f0	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1a84d18	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa349e0f5	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa817ee91	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab1ec181	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac8eafa5	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad1d18c6	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaed598b1	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4a3a753	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5da2579	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb708d715	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb797b24f	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9f38240	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc07e45c1	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc22195be	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4388424	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6ddb52a	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9a5a36c	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb9acb74	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcebec7f8	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5326db9	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd54f98e4	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7ff65ba	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd80de2e8	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdc1b9e2a	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5156391	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5dcc103	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe61eca6b	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee01b472	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf21420da	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf459ce7a	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf66f6be2	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9498239	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd1140ef	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe2c7c78	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x348851a2	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x0782b36c	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x094f4e6e	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+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 0x1d608908	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x24653432	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a2148d0	mlxsw_core_rx_listener_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 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3b3d417d	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x48e5d94e	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+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 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6e63d947	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x87802b05	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 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa0d654e0	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa20f8456	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa6104d92	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9498c27	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe2b8f387	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2fdc995	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff28595a	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x5e4805ab	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xa876e2ee	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x0c3642dc	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x94949091	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x32e59648	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x6e6b295b	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x70546e6f	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x835b84f4	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x90a3b02d	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9ea29536	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xbdada978	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd123013f	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd2fb86dd	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe832fb56	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfb87c8e1	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xff5bc7aa	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xffc4318a	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x36ef102c	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_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 0xb9b00f80	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xc025ab1e	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xd816963e	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x17f9f3a9	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x3668490c	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x0622bcc9	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x081acb2b	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x1c4b9aac	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x44f6d0f2	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x69e208fb	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/phy/bcm-phy-lib 0xb2778e9e	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x513204ba	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xd6804351	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xabfd7b8b	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xc48ffa44	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-octeon 0x8a1d5c26	octeon_mdiobus_force_mod_depencency
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0x30956a2e	xgene_mdio_rgmii_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0x58d84e1d	xgene_mdio_rgmii_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0xa9cd32f6	xgene_mdio_wr_mac
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0xe1ba194c	xgene_mdio_rd_mac
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0xf6fc1798	xgene_enet_phy_register
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x51a4c260	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xbcc9d8de	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xd44b31da	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf24ff8a7	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0xb53daee4	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x45f14d25	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xa4f1a1c2	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xb13f0ea3	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xcaf8bca5	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xdc48506c	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0xdce83e2e	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xe30d03a7	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xfa962fa9	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x109bc037	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x3e2ee154	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x44b5415e	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x011cdfdd	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x02098bdd	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x198aafba	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x29446f5d	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x37179d75	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3de95703	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x6b3b9f29	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x737a8a68	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x859e9c17	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xe4a40a2b	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x1ee0c6fb	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x199573cb	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x286ec904	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x2d48060f	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x3d5ac65f	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x50523f29	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x653fec6e	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x81d3a10f	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa2cdea92	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb00b3066	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xc66a730c	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd55581fe	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf94de63d	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x02b439c3	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0adaa6f2	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0cdfce4e	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x134ec595	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x18607103	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x27169b31	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2ec32492	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x338ef514	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b3c4f9b	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x45fa42d2	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4b11f68f	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4bc63061	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5129bf1c	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5815cbb8	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5dc618a0	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6a190f26	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6a94bf34	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6c4edf16	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6c87c396	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6f9e58f8	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x78260b92	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x86d0d9da	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x880a65a3	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8b02832d	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8ea9d518	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x983f6767	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x99358fe8	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa5f8ec66	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa97ae1f5	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xac0bc0bd	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb2f0911d	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbaa67443	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc68ad8aa	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6ac1c14	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcd9afc9d	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcf35e55b	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd01e7c73	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd792691f	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xda096851	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe1432a3d	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe40c1dfe	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe48a4648	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf6d90242	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf7fd6de7	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf8854827	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfa70243e	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfeedbd4e	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0075163f	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x60f56494	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x66d776fc	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7150b77e	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x93fc6f08	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa4d76b16	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xac12643a	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb47d9070	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a54acc	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf3c7ce5e	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfcd8a5a4	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0317591c	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0f6c998c	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1e2dd8b7	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x239c383c	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x26d9f891	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x27eeb115	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x2e40b1c7	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x31df2432	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x649a017c	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6ebe81e1	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x939208b9	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9d0b391b	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9fa987f8	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xadb94a2d	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb01b7f0e	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc27c8269	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xce3e6274	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd9261c87	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe6114b50	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xed9bcff8	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf25cc8ba	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf371b208	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfd9281a1	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x00e8dbaa	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x01f258b0	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c84ea0b	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f1b36b9	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x145bda6e	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dfc3835	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ee3c602	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fd25b74	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x25aed5e3	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2740e1a4	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x287cc637	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a0d960c	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d4a5237	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2db800d0	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e7e6415	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x30e5550e	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3186128d	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x344166fe	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x35efd480	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3909159e	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d18e0fb	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4016337e	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x402ba2c3	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x41f5773d	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x422aea55	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x45606a32	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d727843	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d94a5e0	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ef7125b	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x541dc2e3	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x545e0006	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5694571e	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b2c1c26	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x60470128	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x618262af	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x625be90d	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6283e36a	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6455e44c	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ae679b4	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e8f2db6	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x707118a0	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7093185d	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x732f40a4	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x733b2cfc	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x73ecc0f6	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x751613c9	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x76c62cef	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x782b985f	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c6869dd	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d09c2a0	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ed27853	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fca65ad	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x84d0d3a8	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x86aa97b6	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x949c9d2b	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x99cd5c7d	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a76e982	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b724902	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0436277	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4b1e3a4	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa604d942	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa86399cc	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf156bf9	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb116c8ce	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5d92125	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7c631d2	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7d9462a	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb89b5a5d	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9eaec84	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb03388a	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd42db81	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc03d5e3b	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc30acecf	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7e473ca	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcaca3d4e	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce1d9fa1	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcec887f3	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd052dd65	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3a2c6a4	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd50adea3	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7368c26	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd787f91b	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd81c8d84	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9ddb92d	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda871d3b	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbde258c	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdea0b901	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0128e73	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe14c524f	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1dd418c	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1e5c1d1	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1f3b08b	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2ad3199	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5db30ff	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea2d33eb	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea66dc40	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xedd615f5	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xef946592	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf274f5b1	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2bb0d95	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3a08475	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf589c7f2	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf615eb66	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6d01717	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf729357d	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9d83d34	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc551401	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x76be2506	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xd5af57b3	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xf1a7c5f9	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x09b14d8b	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0d60b610	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3bbb7252	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x5038e247	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x52ea1e1a	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x63f8b4df	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x65212d16	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8a1d2cb7	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9a6ddc8f	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9cbd5af4	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa6aa425e	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcb716742	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xdf136e96	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x017fdb37	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x11467a16	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x134f4f4b	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x14d7dfd9	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x30683968	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x45ba99de	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x49394a2e	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x50f4ed61	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5aee21b9	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x7956c569	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8519547c	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8e9f060b	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8f2a3f23	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9ee620cd	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa6b2c6a9	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xce4174ca	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe6c02efa	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xeab31d5e	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf378ca56	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf87264a2	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00414550	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x051269fd	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x06272391	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x07cd26d8	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x095d5581	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ba6db06	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f9b2c0b	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0fe90755	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c51e955	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c85b921	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22365383	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2da2eee8	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2f909a66	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x372fe854	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x384daf72	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3c5c4294	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3daadf53	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3e0183b1	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3fd8a634	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4040be82	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45c37e5a	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c5312e4	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e282572	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4ef45051	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f0a2485	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x505a14b8	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58900b59	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d06972a	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d7eb3da	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62678a8e	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x651e9920	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x654791b5	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x661e5431	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x670b10ee	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x677b3bd9	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x683b2f02	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6be271bb	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c3cf96a	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6f88b470	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7133a001	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x72d9de65	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x75ab0185	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7ab24dd0	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7df54a13	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fe0c7a8	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x80469e5f	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x805afe84	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x83b039f4	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8470427f	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86037824	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x873489a9	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8ea9cdfd	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x91ae6f9d	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9252aa74	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93b7f674	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x943586b1	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x953d0576	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9c0cd96a	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9c6e6a84	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9d73dbdc	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa04611db	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa25dda1e	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa665f7c2	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa7a18521	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa90bc7a7	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb0305546	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb3904596	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb40bb8e2	il_mac_hw_scan
+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 0xb8efd89a	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba82d217	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbbbbc450	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbe5ac26f	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc6aa9d85	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc8169646	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc96a82a0	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcc9bb1d3	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcda726b0	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd5df4221	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd600ea21	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd6859bce	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xde725ca7	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe01fcf08	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe1d4813b	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe2582e78	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe44d1d40	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe5591673	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7a99e35	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7b6725f	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe903a83a	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe9867aca	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf0bac732	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf307b13f	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf5e8238b	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf674699c	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfa805285	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb822c2f	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbb45adf	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xffcf812f	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x07654b8a	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x07c6fd4e	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x24514112	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2751b2b5	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x30663752	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x312262ab	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x34052d22	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3912afb2	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3ee03f1c	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4f7d608f	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x560dba0f	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x66af3d1c	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6703c081	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x82e5b6d5	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8a60e5e3	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8fc6b2c2	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa7f83f19	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xabd7add4	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xadaab326	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb3ab8ec1	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb6993545	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xbce032fb	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc0d82efd	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc4af1042	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdcc513e0	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x01fb7825	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x0679cfe2	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x0861657d	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x0eace839	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x13221e02	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x379fad5e	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x512b7455	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x56bb37cb	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x5ca01463	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x689cb347	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6c3e3c5d	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x80cc3a89	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa9f85f4e	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbd7044f5	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xc52969a0	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x4381e007	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x76ec154c	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x02f03fb5	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0970262d	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0cbd4c27	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x18b432b6	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x209a744e	rtl92c_set_fw_pwrmode_cmd
+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 0x36812b32	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3b7f4d34	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4387ca06	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x44a33f2f	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x48e75db1	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x493a6716	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x513f87ff	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x51bf72f9	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x562529a6	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5dd4855e	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x617f55a4	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x625f0dbf	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x68046601	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6822c0ae	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6f8c573d	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x81133f37	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x83808f6a	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x889bdd01	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x90851c3f	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x930c105b	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9643acc7	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa3adf8c4	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb0ff93a9	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb4d46a9b	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb86e24cc	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xba721b48	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbee2bbcd	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc06602f0	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc31cab30	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xce8a7205	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf43dc7a	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd4993349	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdd97dda2	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf16432dc	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf762cba5	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xff9f1b54	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x69c45486	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x8d8db53c	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xb12a1b89	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xb3d8bb93	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x309d5fa1	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xaafdae8a	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xe29fc663	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xe5c328e5	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x07f1e874	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x187b22f0	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x189dbc7b	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x28dae7db	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e9952f9	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x40eebb07	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x41b8253a	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4b98ba7d	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4d37dd9a	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x57bdb860	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5b4363c2	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5bdb0e90	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5ee589c1	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x60ccc365	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x644c9554	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6c4658d6	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7010e3e4	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8e132553	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90d8a8d4	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x966b8e25	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa193b752	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa280c81c	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb02a6a0f	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb02fb4b7	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbcb574fe	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbe557730	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc5f5c992	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc90de17f	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd6270e5a	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe708afc2	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe7fc4452	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfc751639	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0f8afcf7	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2912e0ce	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x351e15e1	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x388b4f77	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3def8a7e	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5dff1375	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8a99b685	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8e5d33b4	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9b820da6	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9f4dc6c7	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa46250eb	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa9ca23e4	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb23d784b	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb5d8d128	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb61f69c7	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcd4bcdc4	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xfec3aabe	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x03d84589	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x5128aa82	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x57762bb3	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x80c706b3	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xd3870a94	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x3460188e	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x5433eb26	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x89ddd02d	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x9b1916cc	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xf60a2fbe	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x3841bcd1	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x4f88de10	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xd06c245c	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x5030e10c	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x305e0975	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x96ad17f9	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x91ea9f4f	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xb90af64b	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xd5a2ef10	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x288b871d	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x461df955	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x4d7061cc	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x62e62218	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x6a95143c	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x827a8c86	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x9e11df71	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb9f47f64	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf38728a4	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf55e275f	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x02350354	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x060a9826	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0b47efbe	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1e80dac0	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x257cc3f2	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x25c97b59	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x39bae1c8	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4a0b9656	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4b843bcf	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4e680470	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5c1b3f4f	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7383df62	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x851de3d6	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8f503302	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8fef3ceb	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa337039b	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb3280e72	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xfed49eed	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x0645f8cf	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x12170ea5	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x12520793	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x15a39ba2	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x201262ae	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x33b6547c	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x42faa4ee	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x4475be33	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5b23eed3	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5f917d6a	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x63d0c17d	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7c15383e	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x88fbacf0	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9be1aa79	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb20914da	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xbb8f51a8	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xc6507723	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xca79a319	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdb647e5b	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdd440cbf	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x478b5aa0	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x98e42239	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x0157659f	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x10a0b8c5	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x1141c50a	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x17320b2d	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x18ab927a	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x1dc03e82	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x2711ad4d	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x32814196	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x33bc9f1d	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x355746c5	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x35f25569	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x3f2371b6	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x41bfddbc	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0x447a7987	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x454d621d	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x46a89fe7	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x4c92e7de	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3064a4	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x6172d709	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x63107008	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x66abc693	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x8bc84b91	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x94f53518	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x98ecd4cd	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0xa2c03cb9	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0xc2813941	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xc8d9319b	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xd6b8245f	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xebee8fc2	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xf3e69ed5	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xf5a854a1	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xfd6d3e1e	parport_claim
+EXPORT_SYMBOL	 drivers/pci/controller/pcie-iproc 0x9f27a715	iproc_pcie_remove
+EXPORT_SYMBOL	 drivers/pci/controller/pcie-iproc 0xd63352ae	iproc_pcie_setup
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x2a2664f3	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x2bdd6515	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x333387c0	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x4e664772	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x887933f9	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xae7e65a6	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb951814e	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xbe7f737a	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xd55b429d	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf0bd5ce2	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x05bcc34d	pccard_static_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x0f5fafbc	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x59b4aaff	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x5a8a3260	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xc589d8b0	cros_ec_resume
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x257eb2d1	qcom_smd_register_edge
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x3330a1c8	qcom_smd_unregister_edge
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x0beaf735	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x100c202e	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x23b9b948	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3cbf2355	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72c0de8a	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x90d0099c	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9722e375	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9e3e80c0	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa623c0a4	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xb4f1d2e3	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xbaa143e5	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xdcf53de7	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xe9e3fe81	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xf82a2c54	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0xc2111d48	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x07b1ea64	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xb8e1ec76	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xcf723886	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xd4111116	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x01d0f57c	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x240bef26	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x2f50a21d	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x3f9a861d	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5586dedb	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x75a55e8d	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x78ee9596	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x88a49947	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa38aad42	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb42f7fa7	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf5a2a51e	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x10aa93bd	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x12a3dbec	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x232018eb	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2d7c0d8a	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2e5e9f03	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x306dcbcc	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x312600e6	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x31285011	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x32cc49b1	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3eb5591a	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3fdf4e81	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x419bb2be	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x461387bf	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4af85a79	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4c757503	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x51c41b9b	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5a097ac1	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5c1ed4ae	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5c6c5a3c	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5d1b275a	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6309376e	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x65588e33	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6811889e	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x796ba10f	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x796e4024	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7d0b231b	_fc_frame_alloc
+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 0x86fdd52b	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x87578753	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8f610038	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9bb9dab4	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1328995	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa192bac8	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa99a68ab	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xae8de157	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb5a967a4	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb87ac33d	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb936ddde	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb9ea0224	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb9f639f5	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc1e27632	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc4a2bedb	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc9332ed4	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd426d5ec	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd6df5c93	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd9114b24	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdba5936f	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe669f217	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeaf63582	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xedfd9349	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf47ae34b	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf8bc2cb3	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb6a1517	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x366da58e	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x7caded36	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xf4bb3c98	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x722bb0eb	mraid_mm_register_adp
+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/qla2xxx/qla2xxx 0x165b1083	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x1a1870e7	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x34b8191a	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x3e709da1	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x7412326f	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xaa9d22d6	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xb17e0ea0	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xb6e91ba6	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xda29129a	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf26beab4	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf38e9bb4	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf56cd4d9	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x35fdb421	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xd881c05f	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xde5e3728	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x126dfa57	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2e19146e	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3b922c35	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x5b59983a	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x5d4d5306	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x68d12432	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x8db8e90b	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb229fd68	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb5e9a5de	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb61cf380	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xbadb5d9f	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcbef4aa4	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd15080b1	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xdc0dbd84	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf9730126	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xfbcb3475	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x20949984	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2113be8c	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2b45451e	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x345d0f71	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3f393ed1	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x46d58802	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5ab75c99	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5defecdc	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5df54149	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x64014d7b	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7197f2ef	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x725ded14	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x75b0e945	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7ba83b1e	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7c90b49d	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9f84ce90	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xacb6069d	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb5423b99	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xba5b066d	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc4e6e60d	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc953a57b	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xce9e684e	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd6bdc3a1	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd86653f0	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdc06e9d5	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xde0c1e06	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe9a939ab	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xeeded1cf	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xefeb2590	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x11646b60	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x5e7496e1	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x5e904bce	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x85eed13a	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa9200f56	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x4dd705ec	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x6eb6ae84	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x7fa186c7	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x8b624373	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xf0e775e6	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x3a4736e4	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x5e3fef8c	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x0957fcfa	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x5bc84116	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x6f801ef4	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x9c4fa44a	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x9e486eab	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xbfd19cef	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xca55f360	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd677574f	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd731ddb2	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x766f0e21	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xbd1b2cf6	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x030f2d6c	dpaa2_io_service_enqueue_fq
+EXPORT_SYMBOL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x3d01f417	dpaa2_io_service_pull_fq
+EXPORT_SYMBOL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xc4ccef03	dpaa2_io_get_cpu
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x0348ce8f	cmdq_pkt_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x23d0b9f2	cmdq_pkt_clear_event
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x34f6582d	cmdq_pkt_wfe
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x50396152	cmdq_pkt_write_mask
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x6cd9d51f	cmdq_pkt_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xa066b5c3	cmdq_pkt_write
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xa9dc86da	cmdq_pkt_flush_async
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xb1b7bd84	cmdq_mbox_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xe2ec4a13	cmdq_mbox_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xede9ce4c	cmdq_pkt_flush
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2316e26e	geni_se_clk_tbl_get
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2c0b1e5a	geni_se_config_packing
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x39d12849	geni_se_tx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x84f384bf	geni_se_resources_on
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x9b3884d4	geni_se_select_mode
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x9e1f5b24	geni_se_tx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xae82e3ca	geni_se_get_qup_hw_version
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xb1a492dc	geni_se_clk_freq_match
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xc8a11673	geni_se_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xd41be6c0	geni_se_rx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xdd491762	geni_se_resources_off
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xf97270ac	geni_se_rx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x0ef12cc9	qmi_encode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x1b4fd2a4	qmi_send_request
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x21ce5888	qmi_response_type_v01_ei
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x486d865c	qmi_add_lookup
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x68772745	qmi_decode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x90525890	qmi_handle_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa0304d74	qmi_txn_wait
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa42bb9a4	qmi_add_server
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa750f4df	qmi_send_indication
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xb7143814	qmi_txn_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xbbd6a93d	qmi_txn_cancel
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xc3d7f1f6	qmi_send_response
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xcc9d3405	qmi_handle_release
+EXPORT_SYMBOL	 drivers/soc/qcom/smd-rpm 0x3abef80b	qcom_rpm_smd_write
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x34b57571	qcom_smem_alloc
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x5a710273	qcom_smem_get_free_space
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x9979b76e	qcom_smem_virt_to_phys
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0xeeffa750	qcom_smem_get
+EXPORT_SYMBOL	 drivers/soc/qcom/wcnss_ctrl 0xc966e391	qcom_wcnss_open_channel
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x0d6a3015	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1b0a72f1	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1b2de1e1	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x23db6ffc	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x341007e8	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x56001c49	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x5c999e2f	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x6a6ba7f7	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9b4fede6	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda15663a	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe2a4833b	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xeec8fccd	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xefb5d357	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x009d3e52	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0bc07279	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1ac6d782	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x24234be2	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2cd38040	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5b21345e	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x743544d6	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7a5b1794	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7c9db7fb	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x81b0e8c7	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x87373c5c	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x903ce2b0	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x96ab6f26	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xae3f0f15	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xaf19a848	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xbbe458f4	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xbbf938b9	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc923d7a4	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xd110e856	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfe72003f	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x03d613be	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0af550e1	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0c11c9a5	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2105ec02	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x38b5fbb3	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3ed884c3	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x45a349d7	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x5c4ea629	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x63ade1fb	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6918dc6b	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x69e7ee68	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x740a9029	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x76b56fe8	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x84bb9cb6	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x8af5ea7c	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x8cbbfad0	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9f287e22	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa43d1419	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa56c0b5e	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb64f44b5	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xbdb54d00	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc59aa431	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcfe30a2b	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd48c0c01	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf9a7bca7	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x0eec3041	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x1bc2f168	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x5cb2ff22	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x6f22245e	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x7203e1b7	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x72402a08	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x85a6e059	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x987bf2ba	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xa49ca6c0	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xaf388bb2	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc0eeb21b	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc564e446	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xce933314	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xdd3d61b9	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xebfa9d01	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xf685e85a	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfc7e8062	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xce84b778	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0xd7dfdf65	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x07ac678a	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x16de1937	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x1d2d6393	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x4269dd78	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x466856d3	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x47c4d6be	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x4d0ecabf	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x56dbb249	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x649297da	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6ff3341c	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8c229df2	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xab5bb356	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc73ed50e	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd49d60b1	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xde5ab8f2	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x05b5ea8f	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x5581bf20	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x88b1a2e7	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x941bacf9	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xa3cec06e	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xc1fe35ac	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xdd8726df	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xdfa6b7e8	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xfa2fb21e	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x02110a58	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x060a3920	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x067d3ab9	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0a042c8c	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x10752370	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x15a84157	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x24b00740	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2e8e5fe1	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x306ad860	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3843b1c1	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3b1f6242	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3e51df93	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3f5544cf	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4459330a	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x458a407d	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x48cc6510	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x49310b64	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5af88f6b	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5be8b574	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5eca14eb	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6115c4e6	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6304b974	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x662654ef	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6a0a5f04	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6aada553	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6be3c1a5	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7c43e65b	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8c84b4ca	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8eddbcf9	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9291edbf	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x97b6903f	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x98c71f96	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9a7ad89c	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9dd0f7d1	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9fa8ea14	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa4ead5d3	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb11ebe60	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xba0c4523	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbb815d70	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc78304e3	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd2f470ab	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd5dcf025	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe0d40eb6	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee3db5ae	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xefda8798	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf6d4e84d	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf8a317a7	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfbc3d128	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfe597c65	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x035cb0b8	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0484b2d0	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x070c4966	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1927b906	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1c7410c2	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1f7b6731	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x258b66ae	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2f6b01a6	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2ff41eac	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x349fa6f5	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x365ad5ac	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3740b403	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x44a90b74	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x451a67ce	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4db8f0ec	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x53d334da	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x543ebb7d	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x56782472	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x644adbf1	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6641b61c	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6787331d	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x680eac79	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6d803754	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6f012112	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x73651420	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x75570e48	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7d61ef28	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8573caed	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8d1e1f7d	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8f588072	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9179eff4	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9270c916	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x92a9e9b2	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x92b40718	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x93866706	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9473c88b	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9c14075c	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9e948402	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa4aade51	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa72fea2f	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xacc7e0dd	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xae9edc09	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb2e787d3	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb394dd08	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb3e4bb27	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbb54516a	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc0a40945	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc5bf97f6	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc62380bb	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xce44ff85	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd51d0855	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdb34b211	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe33e12df	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x03ec8e32	vchi_connect
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x04390690	vchi_service_use
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x18bb8ba7	vchi_get_peer_version
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x3317ac58	vchiq_initialise
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x347e59c9	vchi_initialise
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x36331e4f	vchi_held_msg_release
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x45a172d0	vchi_queue_kernel_message
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x4784c007	vchi_service_close
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x49a7510f	vchi_disconnect
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x6216493d	vchi_msg_peek
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x6ae198f8	vchi_service_release
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x7b2177c7	vchiq_open_service
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x8561e970	vchi_bulk_queue_receive
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x940e4bdd	vchi_queue_user_message
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x94535fd6	vchiq_bulk_transmit
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xa22e9df3	vchiq_add_connected_callback
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xa7fc046a	vchi_msg_dequeue
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xa90297a8	vchiq_connect
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xbbb12b82	vchi_msg_hold
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xc8b507b7	vchiq_shutdown
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xda468542	vchi_bulk_queue_transmit
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xdaf25f60	vchi_service_open
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xdfae4319	vchiq_add_service
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xe03ce8ca	vchi_service_destroy
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xe928e745	vchi_service_set_option
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xfc90ea41	vchi_msg_remove
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xfe69bc62	vchiq_bulk_receive
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x04feb724	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0ba0aa00	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x18884649	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1a4f9fe3	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1af5e30f	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1b3f5829	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1c2d391d	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1e4a44e7	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x26a13159	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x28b2a2e8	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x313b1059	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x353aa591	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x380fddcf	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x46e39552	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4862286e	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4be7eb20	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4cf7c621	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4d46f20e	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x50a9c1a2	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5abf1a67	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6affe47f	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7220fbd7	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x72d920b2	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x778129e2	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x84254660	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8af48016	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x909a5a68	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x91086788	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9bae1d7f	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa0ec5664	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa3f99647	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa7c30635	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa7d6f8b9	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb2d9e8a4	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb33fa6e7	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc649b306	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc76a226a	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdaa279af	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdb766877	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xea21166a	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf1f2acba	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf240088c	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf96a9831	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfde30d5e	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x07afb9bf	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x07eeca7a	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x08596846	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0af2c75b	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x147379fe	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x20f6bead	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x21296916	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x216d8b22	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x22021414	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2313214e	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a319f78	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b3ae0e3	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2f999950	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x34156a52	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x34a505cb	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3560ba5b	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x39df8193	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x39f46de4	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b72d20d	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3bd65750	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x40e49b45	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4332eafd	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x451cd28e	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x47429a77	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x47d7678b	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x498792f6	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4e38a04b	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x50c6c22f	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5288d1ec	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5295998d	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x546dcde0	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x59f58598	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5d4ce6ae	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x60d503c4	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x61c2ec92	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x620e5b01	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6769756d	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6d58d3bc	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7b765498	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7ebedd4e	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7fb39bd8	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b946f08	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x90f046a9	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9133789b	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9d463348	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa42d704f	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa4edd269	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa7240ef1	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa837c29a	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9c1fac1	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xabcc25b0	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xae9e8231	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb650b9a2	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbe121d97	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc2c15e24	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc45d30bc	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc7287826	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc7adff3d	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce34ab7f	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd4eccfbf	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd6b5050d	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xddd6e18e	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe0621895	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe2b14c57	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe49724a8	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe88e5b55	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf2270025	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf29033be	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf932c629	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf98d06eb	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xf5e8e71e	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xeca4459c	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x685b51f7	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x290d103d	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2bb92d1b	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x33478ca8	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x41f72f03	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x55bf5f3f	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5d1854a6	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x60a17b1c	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x694bcde6	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x89a9fcb5	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x99130638	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaba28574	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb8764baf	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xea67e7b8	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x05bdbb3e	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xead28ce7	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x4a7ba3b4	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x7b6b0763	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x97c91a27	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x97d63a2b	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9ceff551	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa8a2142d	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xbcf20387	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xbe1c6110	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd33218d7	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xef00dbd0	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf5d40e32	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf6dc85a5	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x9567097a	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x96e174f1	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xd4de3b87	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xda96e30d	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x36a30458	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xab3447fc	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x22620639	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x283c09ff	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x4b313ef2	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x796ef7b6	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x171a401a	svga_tilecursor
+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 0x276ece74	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4f83c6de	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x620c939c	svga_settile
+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 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xca0a86a4	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd937bc83	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xf8a5d89b	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x90719bc9	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x9b59e1f4	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0xb5cf9f5c	sys_imageblit
+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 0x993a62b6	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 0x90bf8a0d	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x1d663245	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x3117e59a	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xe2086ed7	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x10cab29e	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3ddee165	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x945033d2	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xb7b2384d	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x9c5b5e93	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0xaad1db25	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x18b58773	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xc85784ad	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xcd4aaeb1	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xf65af6b1	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x06386147	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x4770e7e4	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x57348f67	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x63904762	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x835faff8	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x9f19d693	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xe372e721	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0xa7256b3b	mb862xxfb_init_accel
+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/w1/slaves/w1_ds2780 0x1e42f5f7	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x9d2ae899	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x59b22ac8	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x7086b13b	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/wire 0x065fab14	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x9997b770	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xa8b192c7	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xe6cf7b2d	w1_register_family
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x46d8e825	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x98da1b92	bd70528_wdt_set
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xc4ff65d9	bd70528_wdt_unlock
+EXPORT_SYMBOL	 fs/fscache/fscache 0x01a54219	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x033dcabc	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x09f124e1	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0e9526a4	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x15d4ed47	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x17a43c4b	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1d7b765b	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x246a62bc	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x25fe51e1	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x35b98353	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3a6e44ae	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4702abc4	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x47ae25a1	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6aaa45b8	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6c088cf5	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6cab01c9	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6fda7eda	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x749710c4	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8b3fcae1	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8f0740e8	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x91555a22	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x94094c19	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x946a86e3	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x96c9294f	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xad34ed9b	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb274b64d	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbd15c466	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbe5a087b	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc6338202	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd130cdd4	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdb2405be	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdcb3eae6	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdea7d045	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe1bdb5aa	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0xeb28924f	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf23515d4	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf525c143	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfcaae7b5	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfefc90e0	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x022e743a	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x094b4d54	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x3907e659	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x44e235d9	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xaa44af5e	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xc691afd3	qtree_get_next_id
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xf3d21b20	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0xfebdd703	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x0a860b08	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x733a683a	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xa8aaf85f	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xea1efc26	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xf1a65e75	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xfc7c8b84	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/802/p8022 0x33fd821d	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x503c9349	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x5d779e77	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x75c44a59	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0886766d	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x144b1848	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x178d2da1	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x21939a9e	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x236464ef	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x24f04efb	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x274ee02a	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x2bfe4b7f	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x2df4e8a3	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x30436724	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x3bb2c8ec	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3e9d0684	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x3f120fcc	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x4322088b	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x4386b529	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x47689b98	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x482eb483	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x4b4c3cf5	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x63d0e563	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x77c804e9	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x7810aacf	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x81e92ae2	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x89fd10fd	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x8c6936a0	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x8f55fcb9	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9b2c884c	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xa0b48320	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0xa0be5fd3	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xae8d86fc	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xafe224bf	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xcc8951fa	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd5060ad7	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xd6d9529a	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xd8e6e12c	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0xde85a7ae	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xe0667834	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xe1436908	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe9672734	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xe9ba5566	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xf7b2b0c9	p9_client_cb
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x155a2599	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x5868d7ae	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x6a680b37	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xd3f3ae89	atrtr_get_dev
+EXPORT_SYMBOL	 net/atm/atm 0x0fa7084a	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0x125f58f9	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x2f74ea60	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x3a207a84	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x413a1f35	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x6e65cbc1	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x8847e5cc	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x890b1a5c	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x8c16aa33	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x9be29269	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa794e904	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xc88ae873	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0xee695fc5	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x09839405	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x2ab8da3d	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x37d07264	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x6271d8ae	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x6af816fe	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x7a4225de	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xb0c68124	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xff31ceb6	ax25_linkfail_release
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x029c5e31	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x09bbbb4d	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x16e4772a	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x177366f3	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1afb41cc	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x26e76661	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x29f52d67	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2e7fbe9f	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x32aca432	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3a79f3ae	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x413bbea2	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x43ceb9dd	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4a15b3b2	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4a7be1e3	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4c06f23b	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x50b69816	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x53dd50f8	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x58936f7a	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5dc9b70e	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6008bbcd	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x62924c10	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x77fab506	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7adc5d82	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8551b32b	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x87397d07	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8af5a308	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x904460c4	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x945f6be1	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x953b0e22	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xad4ddfad	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb6b282a3	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc7a03c8c	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc9255f11	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xccb66eb8	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3d760d5	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdf69493a	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdf7c6d1a	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe33d709c	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe3968761	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe5ffe8a4	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe6eccb58	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xec9ba0a1	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfac5a9db	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfec53aaf	hci_register_dev
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x5e7cef67	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x85260fae	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x8dbb8fac	ebt_do_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 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 0x65f1baef	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x6b357730	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x6e0b2efb	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xcd4a32d3	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xddd99c83	caif_connect_client
+EXPORT_SYMBOL	 net/can/can 0x1961f457	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x435a7009	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x4ed15c49	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x990547b0	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xd23131ee	can_send
+EXPORT_SYMBOL	 net/can/can 0xea8f4bdb	can_rx_register
+EXPORT_SYMBOL	 net/ceph/libceph 0x00b96d09	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x021594be	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a78ea2d	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x0c3779f1	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x0e5ff6e8	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ec0e67f	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ed5c70d	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x16c102b8	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x17492cef	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x1793d72b	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x181d4c39	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x1a7cadb6	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x1d7c4487	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x1de90994	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2591eef9	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x26ee7913	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x29e755b9	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2ab6bf79	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x2bec2279	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x31beed52	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x32413468	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x38e81d3d	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x39b539b2	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x3a61a2ea	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b74e129	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x3bad138a	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x449f46c1	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4acac3bb	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b86140f	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x4bd25f57	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x4be8f8d3	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x4ebafaa5	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x4ef9a44b	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x4f0fd115	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x535b16c7	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x55823d60	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x55bf7f62	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x578be8f6	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5b685875	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x6031a3f4	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x62bd1383	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x65e35df8	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x69311829	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x69c9e848	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e59fce7	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e61fbe8	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f23f385	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f9f74f7	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x6fa680ad	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x716e7dc8	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x72a4ae0a	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x74970c5a	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x77944edd	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x791139d7	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x79253c87	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x7a922d2c	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x8140adfe	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x82f4bb72	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x83057b3e	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87c05034	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9613fd17	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x9698d762	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x969b1e24	ceph_msg_data_add_bvecs
+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 0x9fbba67f	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa0060073	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xa10f5305	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xa5ed12c2	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xa60f1d03	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xa61dad7f	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa91a0a98	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xaa62d05e	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0xab94d2cb	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb1340800	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xb15c19f3	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xb265424f	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb6a88109	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xb81f2acb	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xb89da482	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd9142fb	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc29fa6f1	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc39d8087	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xc599c156	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xc7c9d76e	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xc8224b61	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xc9533e05	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xc97b50fe	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcbcb9f32	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xcc984c80	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xcd66f376	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xcf5aa373	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xd00088b0	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xd04e1c8a	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5101771	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe01ba75e	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xe103a4da	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xe1b4b290	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xea138a1b	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+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 0xf37b132e	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9671689	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa4882c6	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x0d4c47c4	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x43d041be	dccp_req_err
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x930f022d	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xb4c0cb5c	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x12665687	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x16ad83f9	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x177b0e1c	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x179fd770	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x3f771de9	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xf9f37430	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x7ec2e0a8	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xe88676f4	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0x0303de4f	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x0f095b26	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xa855c520	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xa96fdaa3	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xc8a6a924	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x3a4b001c	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x94b8d9dd	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xf1cc9d43	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x690c1dcf	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x6d2adff2	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x90c795ad	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x191f79a4	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x56d2e37a	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x9202bfad	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x5034d327	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x67148131	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x8a11e43a	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x9da61038	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x9df3dedd	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa006a7dd	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa11d9166	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd32de20d	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xee08e1e2	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4e592926	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x7d1f5838	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x8cd61721	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x73fc9c26	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xbd8d4e2d	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x3443c402	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x4ba5ce31	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x4770cb12	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x7ffa539d	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x438b4c69	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x04f65307	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x4c67f5f6	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x4e52ef63	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x55a79cfa	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x79c0825b	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xa2edd199	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0xa69591e9	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xcca88e5a	lapb_setparms
+EXPORT_SYMBOL	 net/llc/llc 0x1b5a05ea	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x1d61cf70	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x1f4814a5	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x3e2a3e3e	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0x461bbfaa	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x8fc9d534	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x90078c0f	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x026886c5	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x044b8b5c	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x05313f0d	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x054bc2c5	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x055c7135	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0705e630	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0891373a	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x096772e1	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0b132c77	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x11e8f78e	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x161778f7	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x16348e45	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1696cc09	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x169ec9fc	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x174c9517	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1c54a445	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1d2aff36	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1e07704d	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1f909366	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x20bdda78	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x239388cf	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ccbfbe7	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f6279e6	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f91cfa1	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x30110345	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x339af3f1	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x33a9406b	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3943ac17	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3b32d8eb	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x42499adc	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x431cf335	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4478a1db	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x44c98f67	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4511565e	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b732249	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4d35a0cb	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4fc96cf3	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x58efddb5	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5e582fb6	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x62bc3dc7	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x646be6a0	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6471d714	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x668d8af5	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x674b916e	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x69bfc604	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6da5278c	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6e8a4b1a	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7275bf2d	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7607fa53	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x765a04f5	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7a6c0398	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7c628851	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7cff89fe	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7e0e1e78	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x93ec5cdd	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991e9954	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x99cef410	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa2bbc2d5	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa60a68d2	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa71a4dab	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa7e3b991	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaa90bcf0	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaeaaaf39	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb6f8cf62	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb702c10a	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbfdcb694	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc32df866	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc690cfbc	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc722aada	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcaae61e3	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd00c3023	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd379d6bb	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd42b9011	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd4eabbf3	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdbf6c0df	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdd173dc0	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdd9e17d7	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdf12609b	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdfccb32e	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe0c72276	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe1910c40	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe5580e90	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe5692aa2	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe66f78ba	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe6c4822b	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe8af21ca	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe8c5b2a1	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xea76df6d	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xef9d538b	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf658a34a	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfa345ddc	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfde1ec8a	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x02faa0ba	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x532c8a76	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x53f73c8e	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb711af6a	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xd78e8de1	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xdbd6c033	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf975335c	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xfe4e5c48	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x082b5e53	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x316481cc	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x41ebea5a	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x7763db27	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8ff8238e	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xb24526d0	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xb60cccc9	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbbe27f17	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc00bbcd3	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc3d76bf8	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd4442ce2	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd8f00cd2	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xdf8c53be	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe200cb8d	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe802dc65	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x6212ba1c	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xb36e00a3	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x092eabb4	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x3e5bea05	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x3ecb4c47	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x50cccee7	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xf49a05e7	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x13a72948	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x1a1df27f	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x6e5f4927	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8fc69b9d	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa536e58a	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xabbf9203	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc3c693d1	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xdeaa3a10	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xec38b596	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfa4aea78	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0a8f2c8b	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1289e9c3	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2fa5903d	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3ea90fbf	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x40cf6692	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x418ac5a7	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x4fbe8c09	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x589d2892	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5a456909	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6a7621c3	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6f677ecf	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x710f9811	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9df0217d	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb11746db	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbfc04060	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc510bac6	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc70072e4	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd5d81827	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdc3476fa	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xecac52bd	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf0e576a5	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x08d49b97	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0c8411a0	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x15c6b775	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3010af83	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x397b1729	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3ea8b953	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x41a01720	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5666de88	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x64b39400	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x66f49700	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6ff696c8	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x70b49005	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x77e3e5b3	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7eab224f	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x83ccd0f2	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x88b20a47	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9c8338fc	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa6558fb6	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa73ed621	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa957dee1	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xac8c8f4a	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xae6b1b11	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb46d5477	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc53efaba	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xd4a7dc0c	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xdc9e08a7	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe00fb4d9	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe2da72ba	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xeccc155d	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nfc 0x09a88359	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0x1e436fd2	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x2a0b2023	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x3ce520eb	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x3e05a7b6	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x4816bdde	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x481d4d38	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x515b3710	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x54f2b26e	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x640eaaed	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x685e6ac3	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x6bf8ec0f	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x7a16d695	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x96d92638	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x9b49f2de	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x9e6464fc	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0xa39bbd5c	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xab3fbb51	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0xaee380d8	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xc41251c6	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xc4b5697d	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0xce058ef6	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xd1e4546a	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xe91afe2d	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xff4f89ac	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x7ebea495	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xa269fbbf	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xaa7092e7	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xfe04eb02	nfc_digital_register_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x0cbcad45	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x2465c01b	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x4f3bb4b7	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0x5ae785cf	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x710d5327	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xa194193f	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xaa6ff78c	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0xad10163b	pn_sock_unhash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x043ee68a	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1210c2e5	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x279fa1df	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3fbf6601	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5df8f846	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6348559e	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7b40656b	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7e1c3667	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8cd7b61d	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9096b7f9	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x99579196	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xa73fe71e	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xc8a945b0	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xcd867108	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe386e6d8	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xeb205e57	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf31e7138	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/sctp/sctp 0x301d2175	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x06450ed1	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x515240a1	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xddf85fa3	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x5b517c14	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x6cc1d430	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xe00199b2	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x730251d6	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x766ca207	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0xb5ea9dc4	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xdb8fbcb0	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tls/tls 0x28ec2e98	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x454d5bdc	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0x54a7cbbe	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x8434ab6c	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0xc70c0e0d	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d52d306	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0e11cec7	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0f9c7314	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1540d3c0	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1af31376	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b564cec	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2478c537	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x27cdd295	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x27ee409e	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x293ca4c1	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x29ef717d	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2a1bc134	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2be41b0a	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2d7523f6	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x324e9b1e	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3306c5c5	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x378f8e99	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3aa472aa	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3af9af69	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3cea7a81	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3e88fdd8	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3fc39353	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x45254bf0	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x45dda8ef	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x476f50a6	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x48d56dfb	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x49564809	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4ab26423	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4c798458	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4cfc2ae3	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4d64c73b	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4e885095	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x51134900	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x568ca835	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5a0a773d	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5a5b5191	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x67aa5706	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x68382cf6	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6a26d716	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6afbed40	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6b951ccc	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6c125bce	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6cfbb514	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x701dac8d	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x75569805	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7aede962	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ff2aa26	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8072fda1	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x88758693	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x893c642e	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a2af1ac	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a36812c	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9069ba41	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x90f1cd38	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x939555c2	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x957e1255	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9a4ec1e3	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9bfaefb1	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa00f9e76	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa0895f1a	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa62af49a	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa757ce5b	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xab0a49ab	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xabd95b66	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac52c0a8	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaddbfa8b	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb108f0a0	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1e2ea10	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1f12008	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb27bcb5e	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb3918ef7	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb3b5e052	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb97b7458	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xba61d4f0	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc232aba4	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc642050d	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc67c8ac0	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcee079d0	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcfd6962a	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd1fd2ede	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdb1672e0	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xded4d231	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe247fac2	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe60d9e6e	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe9e12ee8	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeae3b1dd	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xee1b6318	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf20ce3e1	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf22c9af8	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf2bc8031	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd82a74e	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd835cea	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfe1d4991	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/lib80211 0x30596695	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0x93e85f32	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x9cb3ee0a	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xa6659dbe	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xb3aa059f	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xd30aae6d	lib80211_crypt_info_init
+EXPORT_SYMBOL	 sound/ac97_bus 0x16e9ea34	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x3e41a426	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x62fb7422	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7820a43a	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xbe1d2290	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xf64c48ca	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0xb10bc079	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x014be475	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0x018090ea	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0x0c967a19	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0x172908ab	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1bcf99c8	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0x1c161f2e	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x1cc74733	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x1d047dbb	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0x1e0e4fb2	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x27123315	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x33ecc1f9	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x3644a7e0	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x377c2017	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x399ce0f8	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x40d45e0c	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4d37662f	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0x53a9ccd3	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x593f229e	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x5a53b8df	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x5d4b0923	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0x5e2a377b	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x61260435	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x655d774c	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x7219a504	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x748e24a2	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x76e7019d	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x7ca79b30	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x83e9572d	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x97f438b2	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0x9ecfc4f8	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0x9f437421	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0xa3b8162d	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xa695cd31	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0xa93bcb1c	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb9276a22	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0xbbe1a0bf	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xbfcc344c	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xc10fd8dc	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xd016e4ae	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0xe0d14ebc	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xe609e150	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xe63f1f46	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xe7ed7e5a	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0xeb9ff136	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xee428a5c	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xf39d60eb	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0xfeb055df	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0xefe685ba	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x02dfc9f1	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x08136609	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0c6e21e3	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0d3583b3	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0d830eff	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1b234d65	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1c8d29bd	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1fe87717	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x28cbc50d	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2960f8a2	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2a791807	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2bffe170	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x33b11846	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x38f1c48f	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3b1efdce	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x448d9e46	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x47f9d32c	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4950dee5	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4a3290cf	snd_pcm_lib_get_vmalloc_page
+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 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x580d3fab	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x66a540de	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6762ff4f	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7266c970	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7a0c5383	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7d7a43cf	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8179fff5	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x83c2f94a	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x90e68dba	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94fc4363	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x95fba59d	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9c97216c	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xafdac086	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9608f63	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc2482e1c	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc72d6f68	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc8f1d40a	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd70d9bf7	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xdace3ea4	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xdd9a3f3d	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe6eaa883	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xecf269ce	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf78a8f08	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x050cfba4	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0f62be4f	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1567aa29	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1a26d40a	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1dc8448b	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x243912fd	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x511209be	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5b8e0356	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6117d773	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x622bda6b	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6b433c1f	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa138d3d5	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc0a2f93d	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc2350093	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xcc579ce4	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd741c6ab	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd91171eb	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe5342589	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xea43ba72	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf75473f8	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x3f529362	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-timer 0x0605f7bd	snd_timer_resolution
+EXPORT_SYMBOL	 sound/core/snd-timer 0x137804a8	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x25ff71ae	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x3f009c33	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x4ced670a	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x5692f86d	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x570b9aa8	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x5891e4df	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x76592a9b	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0x85dbff53	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0xbc533d0e	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xe5d12926	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0xeb5942a2	snd_timer_pause
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x127a1f41	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x2eaf2854	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x42a7513e	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5c77dda3	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x7f06dcc3	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8356c99b	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x9245111c	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xc19d04e3	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xc507bd4d	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd8e680ac	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1fa379ad	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x23133f36	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x5de43500	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x6be7e08b	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x86e74665	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xa6454933	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd4e396a8	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xed4183e7	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf5afc332	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x00fad558	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0ab29325	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x147cd752	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x150b37b4	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x15a70bcd	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1805cc03	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1b7d0af1	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1e625542	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3c8f49c5	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4ec863b7	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5099dea9	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5a2e6eae	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5dfd6c8d	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x603c027f	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x610fc34e	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x768d0fd4	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x79aa5a3d	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7bacf9e7	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9275e734	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa05daf78	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa1f9ef50	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa4410345	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa7876060	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa95ace6a	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbc714452	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xcd66f6a6	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd149e94f	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd7460397	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd76096b4	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xda20d2b9	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xde5b6c75	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe8a6662e	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x41edf0dd	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x7428d5e1	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x7b91b77f	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x87e46475	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x8d573b9e	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x930a7317	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xa8523d3b	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xc68f5bed	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcff32794	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xdbbf8478	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x134ee9f9	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x5521093e	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x8ac57cd1	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xbece495b	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x34228b2e	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xba0dae4c	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x24b4ee17	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x4e324b01	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x56f520b6	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x5bfc9371	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x73962d22	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xff1e9dde	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1477c792	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1494cbf4	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1947fd25	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2e647698	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3e42e6ff	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x59e50158	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x70c45e19	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x91618907	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa40acc62	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xacb57fbf	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb1e60518	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb6440745	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd168deb0	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd634faa1	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe08000c3	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf065ae7a	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfc250321	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1187d2fd	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6a83ac9a	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xc6bc2965	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0f86bd07	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1f1f83a6	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x2a9cdc5a	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x52226c67	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x5f575394	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x614ebc12	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x76c56543	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x81c51ce0	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8469a7ef	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8d88fced	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa01986db	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa2404fa0	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa2511f7e	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa28be191	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa327f956	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa7c6d73b	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbd894f7f	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xcc3cb202	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd93f436b	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf00d6db1	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xfc240af4	oxygen_read8
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x1395aaab	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x2e29c320	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x82d98160	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xdfed8843	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x080c19e8	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x2c1dd6cd	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x2cff8128	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/qcom/snd-soc-qcom-common 0xff08b735	qcom_snd_parse_of
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x9e5da8f1	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/imx/snd-sof-imx8 0x6b1f1b33	sof_imx8_ops
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0071a782	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x030087e7	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x079915fb	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x09b18cb8	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x11036a50	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x253ddc09	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x262d78ee	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x28340d07	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2f85dc24	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x32ad236b	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3bac075d	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3fd5e665	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x436b113c	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x44da1e5d	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4df567d3	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4fafde8c	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5716ec41	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x60a0ca21	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6e7175b5	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7049cbed	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x72aa85f8	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x75518e9c	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8ea35cb8	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x90334c13	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x93b3c883	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xac615e23	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xac70f583	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb91ee65e	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbad518cf	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbeb4e2e8	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc52b3bf6	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcc8050bb	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xccdc721c	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd3e1be5b	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd4184e59	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xda1a4f2a	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdc86ac22	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xddef112e	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe5bc6546	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe9373fe0	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf1579f15	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf7c631b2	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf86cc569	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf98dd84f	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf9fd78dc	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfd97dbef	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soundcore 0x2d478aa2	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x55c79995	sound_class
+EXPORT_SYMBOL	 sound/soundcore 0x677b0244	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x732557a4	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xf9c6fa19	register_sound_special
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x389c677f	__snd_usbmidi_create
+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 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0024c85b	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x002c8b29	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x0031c694	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x0041cef3	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x00471ac6	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x009808ab	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x009cc489	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00ecc9fe	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x00efcba0	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x00f4155c	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x00ff8845	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01112e63	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x0112a961	phy_start
+EXPORT_SYMBOL	 vmlinux 0x01153516	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x0131b594	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x0135cec0	d_path
+EXPORT_SYMBOL	 vmlinux 0x013c8c29	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x013d72f8	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01505d85	imx_scu_call_rpc
+EXPORT_SYMBOL	 vmlinux 0x01550765	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x01593051	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x015aa0ae	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015f5e8d	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x01790e94	csum_partial_copy
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x018770ef	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01aa3d48	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bab32b	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01cc20ef	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x01ec40a8	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x01f6bc13	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x01f9ab26	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x0208f4b8	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x0238809c	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x02529429	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x025ff522	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x026861c0	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x02698ecd	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02782d8c	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x0284ae8a	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x028c7965	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x02948c1d	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a7d77a	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x02aa1d83	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02c4f0d7	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x02d8d9ff	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x03092271	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x032f7baf	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x033988fb	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x0348954f	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x034f93de	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x0357dcb4	meson_sm_call_write
+EXPORT_SYMBOL	 vmlinux 0x0360329d	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03b59444	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x03c369f5	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x03c818ac	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x03c955c0	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x03cd9be5	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x03ce03eb	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x03d2ce4d	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x03d45178	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x03d48c2b	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x03f5d1d3	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x03feea40	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0x0408c6f2	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x040b066b	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x04177eeb	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x0459f302	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x04657e6d	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x04673adb	qman_ip_rev
+EXPORT_SYMBOL	 vmlinux 0x046e7f0c	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x04745019	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x0477d78b	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x047b0434	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x048d20fe	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x04b2c376	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x04b9cb40	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x04bf5062	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x04e3b2aa	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04edb2b3	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x04f2ae4b	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x052b5c3b	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x052c34c2	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x05364d22	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x054d2fb5	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x055c11b3	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x05859cab	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x05a9abb2	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05bbd847	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x05c97b8a	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x05cc9620	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x05db6697	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x05e2285f	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x05e529b7	padata_start
+EXPORT_SYMBOL	 vmlinux 0x05e6c12a	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x05f4adc5	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x05fa41ea	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x060b8c23	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x065f05f1	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x0668e386	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x069e52aa	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06ceb8d2	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x06cf6c15	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x07020d97	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x07118488	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x0720f8c2	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x074425b8	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x075b2dd1	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x0781ec97	logic_insl
+EXPORT_SYMBOL	 vmlinux 0x079ccf8a	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x07a2f3fe	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07b4f7cf	seq_write
+EXPORT_SYMBOL	 vmlinux 0x07ba31c7	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x07bcbfc6	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x07be5737	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x07c29646	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07d4185d	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x07e9dc67	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x07f0bfd0	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x080de866	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x0819e4e2	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x081af00d	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08356f32	fman_sp_set_buf_pools_in_asc_order_of_buf_sizes
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0847fcee	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x0854f288	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x08734d4c	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x0886f291	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x0887ca17	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0x088b5bef	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x08917116	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x08c6d423	follow_up
+EXPORT_SYMBOL	 vmlinux 0x08e39398	cmd_db_read_addr
+EXPORT_SYMBOL	 vmlinux 0x090486eb	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x09070a94	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x091741f1	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x0937349e	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x0953a41f	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x098ad9e9	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09a21830	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09d82748	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09dfc1a1	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x09e03ff3	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x09ee81e4	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x0a01687f	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a12fbf0	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x0a1485a3	file_path
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a1eb2b0	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2f93d6	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x0a697579	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x0a6c3752	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x0a7395b4	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a7c41c6	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x0a80c22b	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x0aa26b2f	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aac06ff	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0ab431a5	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x0acaecb3	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0adbade0	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0af61e8f	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x0b055df7	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x0b0b1f49	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x0b103d6d	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x0b1a5e00	clk_get
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b44a1a8	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x0b5c5978	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x0b6a230d	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b95dca9	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x0b9cb23e	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x0b9e2de7	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0x0bac4cd1	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x0bb6eeb9	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bcd61a3	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x0bce3032	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x0bd8a507	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x0bf93f6c	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x0bfefd26	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x0bffbdd7	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x0c0f7369	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c176257	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x0c1f4146	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c46da66	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x0c4ec951	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x0c4f0ce7	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7ccf84	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x0c8e76b3	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x0c980833	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x0c9d3344	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x0caaa4eb	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cbdaa45	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cca2ec7	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0ceb705e	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d2f7113	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x0d358fb4	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x0d3f5c1a	fman_get_max_frm
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d5f31d2	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d7e8238	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x0d7e86d5	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x0db814a7	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x0dbc9eb0	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x0dc59774	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x0dd2b312	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x0df101e6	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e2e0e7d	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0e34c023	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x0e376c07	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x0e3961f7	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x0e715e2a	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e7b0feb	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x0e92ca6e	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x0ea879b5	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x0eae42b7	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x0ebfc77f	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x0ec1a6b8	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x0ec3ebc1	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ec752f9	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x0ece6485	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x0ed6b285	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x0eea6044	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x0eea7455	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x0ef4d1d8	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x0f061c36	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f1ff4b5	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x0f2eec19	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f3ea4f1	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x0f721da5	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x0f7c9a8e	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x0f82d166	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f883c41	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x0f8fe4b9	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x0f987221	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fb5f431	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fe0ff7c	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x0ff32a79	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x0ffd8196	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x10002b04	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x100a243b	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x1024e1dc	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x102a25d0	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x102c1f2a	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x10369892	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x104063f1	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x1049e71a	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x1062c7d0	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107cdb78	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x107f92ec	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x1082e347	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x10aa36e9	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x10b5566d	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10d8f006	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10df4ee0	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x10e153af	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x10e4c724	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x10ecf7a7	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11181b2f	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x112f12a8	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x113b2310	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x113e44f9	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x11408d82	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x11424927	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x11534712	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1179b8ac	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x1188b043	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x11bbaed2	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x11c05b64	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x11c4dc14	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x11cbed6f	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x121335d3	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x1226c7f6	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x124272d6	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x12650ce5	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x126fe5b2	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x127878b9	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x127bf198	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x1292b40f	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x129819e4	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x129860af	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12c9a588	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12d96367	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x12e12f4d	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12fb7d95	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x1318e7de	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x135d4208	rpmh_write_batch
+EXPORT_SYMBOL	 vmlinux 0x136bc4d9	path_put
+EXPORT_SYMBOL	 vmlinux 0x137b8fc7	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139dee6e	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b181f7	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x13b5e611	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x13b7f43f	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13e3d2ed	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x13e3ecef	import_single_range
+EXPORT_SYMBOL	 vmlinux 0x13fcf4bc	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x14251214	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x142f10ef	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x143758d6	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x1438c7cc	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x144d570e	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x144da2f0	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x1451f827	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x14664c33	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x14691cf4	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x1478945c	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14994b2a	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x149d7733	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x14b89635	arm64_const_caps_ready
+EXPORT_SYMBOL	 vmlinux 0x14bd8ce3	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14c9d9bc	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x14de2c93	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x14e97f46	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x14f45fcc	bman_free_pool
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x14fbac12	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x150314d9	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x15078eaf	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x151a5118	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x15262c8c	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x152e40e8	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x1542563e	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x15497623	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x1568e41f	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x158d0c3b	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x15aaa7d4	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x15b75a3b	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15d46f9a	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x15ea4898	qman_oos_fq
+EXPORT_SYMBOL	 vmlinux 0x15f373e1	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x160ed742	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x1639f246	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x1661a7b6	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x1671de01	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x1674248a	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x1689b81a	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16a28b0f	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x16ca0ed5	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16d37eef	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x16d3f5ae	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0x16d48ce8	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x16d4a1ea	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e6c928	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x16e7d384	dev_close
+EXPORT_SYMBOL	 vmlinux 0x16e7e2cb	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x16edcdd1	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x17212611	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x1724399f	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x17429225	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x1754ac0e	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x175792f7	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x177c4269	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x1794506e	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x179f33ea	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x17da8958	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x17e73f68	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x17e86224	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x1800d4e1	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x1808b5e4	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x180a95bc	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x18139965	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x181a0ba9	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x183a17fd	bdput
+EXPORT_SYMBOL	 vmlinux 0x18465ddf	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x185b32fa	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x187dcddf	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188c151c	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189c3147	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x18b48e28	__memset_io
+EXPORT_SYMBOL	 vmlinux 0x18c8c6f3	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x18cdd2e3	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x18d8df4e	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18e89d0c	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0x18ea52eb	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x192ac20e	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x1935d65f	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x1948674a	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x1969ad0d	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x1988713e	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19ae8f58	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x19b41d53	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c1165c	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x19c88153	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x19f974ec	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x1a0b2126	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a24a0f9	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x1a3127bc	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x1a335056	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x1a34757d	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0x1a3d54fa	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a6c723b	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a884dc2	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa97921	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x1ab9696d	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1ad064c2	release_pages
+EXPORT_SYMBOL	 vmlinux 0x1ae1c6d4	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x1ae9aa92	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x1aeecb0d	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x1afc0a11	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b136806	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x1b23eee7	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x1b2d38a6	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x1b350cd2	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x1b491120	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x1b4fa883	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b685aac	key_move
+EXPORT_SYMBOL	 vmlinux 0x1b6a9904	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b9434f1	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1bb4fcad	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bb86b9a	xen_start_info
+EXPORT_SYMBOL	 vmlinux 0x1bbb9afc	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x1bc659fa	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x1bc7a1e6	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x1bd405c8	sdei_event_register
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1be87bfd	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x1beb6544	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x1bed4902	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x1bfebfe0	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x1c02e2f4	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x1c0c4362	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x1c126658	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x1c31bae7	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c479018	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x1c521711	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c7fa143	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x1c843842	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x1c89ac87	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x1ca774b0	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x1cab392c	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cdd39ba	logic_outsl
+EXPORT_SYMBOL	 vmlinux 0x1cde9197	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x1cedd856	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x1cf32bab	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x1cf794d4	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x1d000a54	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d1fe4a8	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d289baf	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x1d28a5dd	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d386e1c	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x1d3a0281	bio_init
+EXPORT_SYMBOL	 vmlinux 0x1d3a8063	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x1d3ab67a	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d46b9a6	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x1d53cc1d	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x1d90cbdd	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x1da20d33	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de23675	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x1de67f9b	qcom_scm_io_writel
+EXPORT_SYMBOL	 vmlinux 0x1df3d97d	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x1df4ece0	register_console
+EXPORT_SYMBOL	 vmlinux 0x1dfcf11a	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x1e0373fc	imx_scu_irq_group_enable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e2d6911	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x1e4435a9	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x1e511e44	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x1e516735	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb95395	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x1eccdcdb	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee37ed1	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1ee952c4	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x1eebd037	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x1eee7537	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x1efa6d82	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x1f004b85	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x1f2b20cb	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x1f4062bc	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x1f730ddd	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x1f871b81	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x1f91263e	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x1f9acb47	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x1fa511fb	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x1fac6376	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x1fb0f9e9	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fcd5488	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fdc7df2	_mcount
+EXPORT_SYMBOL	 vmlinux 0x1fe275b7	serio_open
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff5652f	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x1ff6ee97	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x1ffe8c3c	module_layout
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x2006c7f2	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x203c46bb	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x20535130	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x206c314d	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207471d6	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x207aa304	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x20801299	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x2098d921	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a260cc	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x20a48ff1	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20bc4f04	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20e4cb3a	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x212297b4	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x212eeef2	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x21325ef7	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x2160e7fe	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x21694d63	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x216b03b4	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x2184eea7	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x2185c256	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2196217c	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x21a01cb6	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x21a7130c	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x21ae0417	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c228a9	path_get
+EXPORT_SYMBOL	 vmlinux 0x21d7a8de	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x21da0290	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e69091	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x220e55d0	mem_section
+EXPORT_SYMBOL	 vmlinux 0x2222a022	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x22288460	imx_scu_enable_general_irq_channel
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x22321d30	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x2239dd1f	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x22662531	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x22741472	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x229f7a76	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x229f915f	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x22a31cab	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x22a579c9	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x22a8d5e0	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x22ad22b6	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x22b06151	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22c76fbf	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x22c7a0e5	rpmh_write
+EXPORT_SYMBOL	 vmlinux 0x22d8d46f	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x22e3fa9b	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x22ffb34d	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x23009fc1	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x2310608d	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x23120141	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x231312bb	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x231666bf	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x23177b77	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x2320cccd	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x23284f77	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x2329aaa5	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x232d3676	f_setown
+EXPORT_SYMBOL	 vmlinux 0x232f5662	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x2333a41a	mntget
+EXPORT_SYMBOL	 vmlinux 0x233de7be	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x23632df1	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x2366e537	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x236b00ef	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x23732546	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x237a7692	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x237ff1a1	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x239a0b97	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x23b2727a	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x23b9840f	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23ca8994	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x23cab8ec	kern_path
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23eb8520	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x23ebd06b	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x2411fa33	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x2414ebf0	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x241bc5b2	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24231375	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x243779d3	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x245bfbd0	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x2461134e	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2480cf5e	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x2495e82d	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e6dc04	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x24f0aaa9	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x24f68f74	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x252d17ca	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x252dd564	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x25473c9f	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x2566918a	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x2574f223	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x25875222	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x259bfb7b	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x25a65511	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x25af26c2	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x25c0b25f	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x25dcd3af	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x25e12c02	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x25e8db7b	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25ffab52	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x262e0598	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x26305070	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263f0d1f	qman_portal_set_iperiod
+EXPORT_SYMBOL	 vmlinux 0x26477e03	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0x264a82a5	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x266f1bc8	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x267d8dc1	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x2694a1fc	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x26c366c5	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x26d192cb	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x26db68cb	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26f030ba	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x2704d964	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x270e8f98	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x272fc06f	d_add
+EXPORT_SYMBOL	 vmlinux 0x2731f7b7	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x2775ef4f	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x278f36d2	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x27963d4a	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x279cceab	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x27b23e81	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x27bb7d0d	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c3c728	qman_release_fqid
+EXPORT_SYMBOL	 vmlinux 0x27ccd6f4	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27d4f7f8	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x27fa7087	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x2800d0c7	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x2828e942	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x2836f2ed	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x284ef42d	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x284f351b	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x2850a53f	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287d178b	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x28c4eb53	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x28de54f4	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x28f48431	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29295c50	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x29557f42	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x29651970	bmap
+EXPORT_SYMBOL	 vmlinux 0x2967695f	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x297af5be	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x299b2faf	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x29aa2a72	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x29b56f02	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x29bb3f18	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x29c49195	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x29d73801	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29e3e75c	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x29ede559	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x29ef5a2a	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x2a017564	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x2a01a545	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x2a0b2d3e	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x2a2109c7	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a357821	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x2a369411	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2a4f3fa3	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x2a60c2d7	node_states
+EXPORT_SYMBOL	 vmlinux 0x2a680493	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x2a8cc2d1	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2a9d5839	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2aa382e7	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x2ab2ee91	brcmstb_get_product_id
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2abb40cd	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x2ae2da03	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x2af861a0	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x2b0272dd	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x2b11acaa	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x2b1abce3	fman_has_errata_a050385
+EXPORT_SYMBOL	 vmlinux 0x2b2602fd	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b5d13fa	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b7a961b	proc_create
+EXPORT_SYMBOL	 vmlinux 0x2b82b18b	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb5425c	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb7b244	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bd44328	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2bfbab10	__memmove
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c3161c1	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x2c3cb6e3	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x2c4b30a4	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x2c532b9b	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c54beeb	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x2c67d784	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x2c6f5870	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x2c7c7f27	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c91e17c	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x2c9ce001	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x2ca2b0b7	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x2cb0add0	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x2cb2f434	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x2cb325f4	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x2cb761bc	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x2cbaec51	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2ce4081b	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x2cead764	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x2cf01923	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cf9b581	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x2cffb331	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x2d01aeca	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x2d0512b8	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x2d0e982a	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x2d11c811	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d2acc23	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d586f79	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x2d5b0295	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x2d5d95c4	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x2d5ff8f6	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x2d7687e4	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x2d8de230	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2d9d36ed	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x2da124e3	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x2daa2078	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2db597fc	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x2dc958f3	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x2dce2f1c	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2dd4ec9e	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x2ddecd72	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x2e0138bc	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e0cb746	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e22f3a2	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x2e25b34c	single_release
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e2c4ddc	logic_inw
+EXPORT_SYMBOL	 vmlinux 0x2e316edf	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x2e336826	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4bf267	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x2e4cc18e	dput
+EXPORT_SYMBOL	 vmlinux 0x2e57fae9	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x2e680735	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x2e7c21d5	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x2eb41f2c	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x2ebb03ea	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x2ec3453b	qman_schedule_fq
+EXPORT_SYMBOL	 vmlinux 0x2ec4543f	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ec878a0	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x2ecdee8e	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2efd8006	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f333aab	imx_scu_get_handle
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f4216f1	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f59cb66	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f9bf9b3	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fc37bff	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x2fdbe0d5	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fe5b535	qcom_scm_assign_mem
+EXPORT_SYMBOL	 vmlinux 0x2ffaa6f9	filp_open
+EXPORT_SYMBOL	 vmlinux 0x2ffd87d7	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x30004fa1	bio_put
+EXPORT_SYMBOL	 vmlinux 0x3026b52a	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x302e25a2	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x304249b0	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x3051c468	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x307cce4f	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x30816a6d	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30bd5ee0	qman_destroy_fq
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30efd58a	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x310083f9	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x3106294c	stream_open
+EXPORT_SYMBOL	 vmlinux 0x310a3a34	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x311fe31f	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x31323cef	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x314042ee	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x31540204	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x3161c766	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x3166155a	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x318b42f5	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x318c015b	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x3199dd57	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31a4767f	qcom_scm_hdcp_available
+EXPORT_SYMBOL	 vmlinux 0x31aec31c	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x31b37f11	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x31c3c2ed	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x31e513d3	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x32090637	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x32112f86	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x32262646	dump_page
+EXPORT_SYMBOL	 vmlinux 0x323a15b9	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x32456702	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x3252300f	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x32524b2b	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x325449d3	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x32720a3c	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x3273cd59	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x327c95e2	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x3282e385	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x32a08ce8	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x32a97f2f	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x32c48f61	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x32c51569	fb_class
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32dc07b8	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x32ddd471	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x32e0b937	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x32e4d30d	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x32e88cc6	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x32ea8302	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x32f07432	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x33037fd8	logic_outl
+EXPORT_SYMBOL	 vmlinux 0x33051924	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x3312b797	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x33139057	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x333ea695	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x3340cb24	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x33728cf2	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x339bc817	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x33a33497	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x33a884c3	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x33ba71f3	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x33bdb0fa	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x33e40eb5	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x34016677	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x340b876a	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x34222e36	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x34320f28	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x3448e80c	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x344ca9d4	qman_init_fq
+EXPORT_SYMBOL	 vmlinux 0x345821c0	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x3470d8e4	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34a41b10	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x34bee5c8	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x34bee9df	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x34ca1681	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0x34e3fc8d	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x35303713	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x353a52fd	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x3546530e	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x355f23a2	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x3567383e	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x3572e130	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x358763bf	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x3591367b	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a1e116	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b51eb1	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x35ccfa04	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x35e6c62d	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x361d4e2d	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x361d62d1	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x36451ad5	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x365f2f5f	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x366acabe	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x3677a3d4	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x3688704a	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x36a62967	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x36b3b4a1	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x36b7ae61	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x36b9b080	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x36bad480	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x36bdb9df	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x36dc024a	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x36ecc1fd	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x36f2d0e7	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x37021d5c	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x370fe3d8	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x372e1967	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3747c798	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x3774235e	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377d1d6a	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x37986f8a	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37d0e5c2	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x381258b2	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x38165a8f	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x38244612	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x382b84ca	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x3842ea26	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x3852a16a	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x38638b07	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x3871c818	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x388ac46c	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b028e4	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x38d94e85	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38eb783f	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x3907f2e0	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x39215e6c	__bforget
+EXPORT_SYMBOL	 vmlinux 0x392535b8	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x3928efe9	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x39386485	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x394875e1	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x3995fd3a	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39aa8e08	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x39ad8cdd	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39ca922f	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x39e8def3	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x39eb1d13	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x39f6f106	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x39f741ae	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x39f9769f	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x39facda6	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a28c328	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x3a2ba3f1	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a3606f4	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x3a39bf59	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x3a45d45b	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a61a97f	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x3a6dcd5a	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x3a7b2151	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x3a85cc3c	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x3aaede39	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x3ab40c56	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ad55a20	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3ae5c030	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0x3ae761ed	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x3af82b7f	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x3afdb300	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x3afe08e7	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b04d621	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b22b67a	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b552e70	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b65dbe5	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x3b7ea488	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x3b80cc78	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b8b6768	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b936b0d	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x3b978709	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x3baa178e	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x3bafd08e	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x3bc836ba	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3beb8474	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x3beb975e	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x3bfae055	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x3c089178	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c2df1c2	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x3c3170dd	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x3c31787a	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c4134ba	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x3c7ec7ae	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c80c850	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x3c934826	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x3c9aab89	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x3ca20aae	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x3cc60688	dqget
+EXPORT_SYMBOL	 vmlinux 0x3cc83304	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x3cd9ed83	logic_insw
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce5f1f1	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x3cec2e5a	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x3cf8c4cb	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d09a53f	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x3d0af0d8	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d33123c	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x3d3edf09	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x3d4b9cb8	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x3d4faf70	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x3d56a191	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d599afe	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d5dfb97	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x3d677b7e	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x3d8560e4	cpu_hwcaps
+EXPORT_SYMBOL	 vmlinux 0x3d867fb9	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x3d9ee9f0	clear_page
+EXPORT_SYMBOL	 vmlinux 0x3daa2317	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dbd2cac	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x3dc5dec5	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddc8a65	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e064e1e	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x3e0d16fa	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x3e234bf5	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e4c558e	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x3e5e0d8e	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x3e7052a3	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x3e71ef67	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ec3b825	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x3ec73e2b	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x3edffb81	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x3ee85fb0	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f0a6563	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f0fbf6f	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x3f14c2b6	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4602d7	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x3f4aedc2	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f538726	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x3f558326	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x3f677500	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x3f6d6c68	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x3f8181ff	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f91b561	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x3f967bee	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x3f97ffe6	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x3f988ec6	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x3f9b3af6	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x3fada05d	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x3fae5f4b	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x3fbe88d9	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fbfa89c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x3fc52e18	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x3fc864a4	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x3fcb0696	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x3fd1658b	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fdc1408	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3ff7e74b	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x40052c6f	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x4030b67f	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x403ce21f	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x404eb9d9	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x4084ceee	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40ad6625	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x40ba4b63	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x40bb6591	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x40c59e32	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04621	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40f1ac15	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x40f99dd3	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x41019c8e	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x4101af07	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x41029e69	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x4105fff4	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x41328701	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x415e95d5	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x416461b5	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x4198ca95	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x41a48f3b	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x41a8f79a	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x41e69598	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x41e6a347	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x41ea171b	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x41f46d4a	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x422909b2	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4235209d	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x42404c48	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424b2110	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x4261b391	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x42877474	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x429d85c7	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42d5c429	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x42e09291	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x42e3c42b	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x42ea3882	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x42ed527b	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4300bbb0	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x4310e3a7	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x4326007c	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x4334d7a6	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433be87a	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4344d34d	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x4354b6fa	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x4355bc49	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x438b94ac	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x4390c77a	kobject_put
+EXPORT_SYMBOL	 vmlinux 0x43aa50f7	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x43b31662	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x43b602fa	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x43b7caaf	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x43e1a013	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x43ec4b91	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x44008ac1	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x4403bbd0	imx_sc_misc_set_control
+EXPORT_SYMBOL	 vmlinux 0x442accb1	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x442eba55	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x4453b52c	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44b5a3ea	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x44c46602	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x44ce1474	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x44dd6bd2	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x450d9a35	cmd_db_read_slave_id
+EXPORT_SYMBOL	 vmlinux 0x452413a1	qman_alloc_pool_range
+EXPORT_SYMBOL	 vmlinux 0x4524a908	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x452693a4	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x453f8a08	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x45414b04	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x45475eda	msm_pinctrl_probe
+EXPORT_SYMBOL	 vmlinux 0x4547994f	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x4576ca13	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x457f50b0	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x45935297	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x45a446c2	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x45a4f473	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x45ac05b5	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x45b56a1d	sget
+EXPORT_SYMBOL	 vmlinux 0x45b8e0a3	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x45c3e9ae	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x45d19faa	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x45d4c728	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x45d7c991	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x45dbc4be	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x45dd51c1	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x45e69e01	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x45e7fd9c	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x45ed54b5	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x45ed795f	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x46096532	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x461dbd65	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x46281ed9	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x46392ec4	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x464def49	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x46558200	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466a3b91	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x4686a1f9	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x4698fe8a	bman_release
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46b9524c	ihold
+EXPORT_SYMBOL	 vmlinux 0x46bc2ce9	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46d721ac	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x46dd00bc	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x46e3181e	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x46ff7d12	qcom_scm_iommu_secure_ptbl_size
+EXPORT_SYMBOL	 vmlinux 0x470612dc	fman_port_get_qman_channel_id
+EXPORT_SYMBOL	 vmlinux 0x4717a4f5	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x47289faf	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x47315e1d	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x475d7427	fman_get_rx_extra_headroom
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47798793	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x4783a7bf	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x479137ca	imx_scu_irq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47ce8708	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x47d69f1d	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x47e0b720	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x47eb092a	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0x47fd8abf	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x4801237c	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x4829630d	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x4829a47e	memcpy
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x4833e2bb	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x483611bc	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x4837bb10	logic_outsb
+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 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x486d4dbb	fman_set_mac_max_frame
+EXPORT_SYMBOL	 vmlinux 0x487a4d2f	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x487ba761	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x48874515	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x489eda10	memset32
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48aa14b0	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48cd97fd	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x48e57435	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x49048457	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x491d809f	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x49373ae9	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x4953ff02	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x497d67a8	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499d6e1a	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49a70471	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x49a94519	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x49ad84cf	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49cdc6ee	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x49efbc3d	dev_load
+EXPORT_SYMBOL	 vmlinux 0x4a04012b	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x4a0c6522	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x4a1a0462	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x4a2222e3	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x4a2895bd	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x4a3561b6	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x4a377842	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x4a4a5940	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x4a57fa03	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9ad49c	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4ab3fa7c	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x4ab81cb4	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x4ac30b03	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x4adaa273	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4af435e0	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x4af562d8	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x4afb206f	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b02a0ce	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x4b50cb71	cpu_hwcap_keys
+EXPORT_SYMBOL	 vmlinux 0x4b5b1f02	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x4b5dcf6d	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b7b9ee2	finish_open
+EXPORT_SYMBOL	 vmlinux 0x4b9ee1a3	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x4ba70b31	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bb495ae	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x4bbf03c6	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x4bc3614d	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x4bc965de	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4bd06078	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf3ce6f	qman_release_cgrid
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c0b8713	skb_push
+EXPORT_SYMBOL	 vmlinux 0x4c14a912	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x4c1845ce	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x4c2acd0d	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x4c35e887	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c423add	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x4c465c40	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x4c535f9c	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x4c5d64c2	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x4c7375ff	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x4c7428ce	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x4c98649c	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x4ca50227	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x4ca79284	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x4cb792c0	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cd3626c	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x4d0040a0	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d1a7b70	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d2fa265	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x4d4dc944	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d6d4230	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9bfb21	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x4da0b832	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0x4da88404	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dcaa3d9	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e111766	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x4e124470	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x4e149c90	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x4e1e4b22	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x4e1ea7e8	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e2e74c1	qcom_scm_io_readl
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e35be65	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x4e3eca32	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4eb9068c	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x4eb99ac7	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x4ec25259	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ec6609c	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x4ec880d9	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ecb06f7	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x4f01917d	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x4f1063b9	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f478338	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x4f4d832f	dump_align
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f57481e	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x4f5a24ce	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x4f5a4af8	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x4f5d1d0b	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x4f644365	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x4f6cade5	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x4f70e139	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x4fb3a773	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fc3e888	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x4fc5b38c	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x4fcc444f	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x4fd5121d	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x4fe53e1d	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x4feb0cd9	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x4ffc434f	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x500b3188	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x500f687a	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x502ba439	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x5037f50c	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x503f4ef7	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x50677e55	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x5093aa10	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b17d4e	dst_release
+EXPORT_SYMBOL	 vmlinux 0x50b37a57	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c271c6	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50cd2cbb	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x50cd88e4	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x50d4def2	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x50d7ecb4	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x50e2310f	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x50f33a68	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x5102c5f9	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x510de2a2	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x511342b5	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x512d6d91	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x51308280	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x51371e4e	file_modified
+EXPORT_SYMBOL	 vmlinux 0x513929a0	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x513ca2f1	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x515f520b	qman_portal_get_iperiod
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x517b9e97	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x517cdc79	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x5199707d	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x519e5d41	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x51a16f58	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x51b6e90d	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51c210ac	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x51c2e5d0	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x51c8738d	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51e0f8dd	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x51ed8b27	load_nls
+EXPORT_SYMBOL	 vmlinux 0x51f61856	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x5203d176	cmd_db_ready
+EXPORT_SYMBOL	 vmlinux 0x52214a81	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x52569e08	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x528a630c	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x528ffad6	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x5292efd9	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52b4eb6f	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x52b75149	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52df4784	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52f2850a	imx_sc_pm_cpu_start
+EXPORT_SYMBOL	 vmlinux 0x52f95f4f	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x52fac860	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x5302a00f	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x53274963	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x534c710a	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x5352feed	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x537aa6d0	sdei_event_enable
+EXPORT_SYMBOL	 vmlinux 0x537c4c72	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x53888d08	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x539fd29d	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x53a1f7f8	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x53b3bf47	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53d71585	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x540a433f	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x541911f6	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x541c9cdb	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x544daf2a	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x545d3df4	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5461b90e	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x548c0c5c	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x549934d0	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54b80cd9	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x54cf12c2	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x54d730f0	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x54da55fa	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x54f3026b	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x5508f28d	bman_acquire
+EXPORT_SYMBOL	 vmlinux 0x550c7778	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x551909b0	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551c288e	current_time
+EXPORT_SYMBOL	 vmlinux 0x552bb421	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x552db3aa	qman_query_cgr_congested
+EXPORT_SYMBOL	 vmlinux 0x5530adb9	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x55333f3e	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0x55470afa	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x554ffae8	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x55655213	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x55686530	__arch_clear_user
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x558c0187	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x558ea777	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x55ac1f86	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x55ac7b79	pid_task
+EXPORT_SYMBOL	 vmlinux 0x55b68d89	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x55cc4c7f	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e6226a	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x55f72476	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x55f9a2a9	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x55fcda59	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x56109083	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x5614f48a	qman_dqrr_get_ithresh
+EXPORT_SYMBOL	 vmlinux 0x562c9e70	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x56334f95	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x563fc369	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564cd5b9	mii_check_media
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x56706e3d	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x56779636	bdevname
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x568fc592	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x56a8cbcc	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x56b7b2f5	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x5708f3a0	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x571e4dac	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x5725dfec	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x57260486	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x572f526b	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x573d8d1e	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x5742327e	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x574c6c7c	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x5763fa82	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x576491c3	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x576b98b5	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x5770d71f	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x5774da66	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x57823211	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x5782b65e	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x579448b9	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x57973bd6	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x579dea9a	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x57a8d0ef	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57bc888d	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x57c8fcfe	fman_port_bind
+EXPORT_SYMBOL	 vmlinux 0x57e59b08	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x58155f6f	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x581b55c8	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582e857f	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5831a538	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x58418015	follow_down
+EXPORT_SYMBOL	 vmlinux 0x584f4a1f	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x58589578	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x58592599	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x5870660f	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x5884899b	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58a67651	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b53e0b	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58eadbbd	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x590dbab9	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x59282d2a	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x5949d08a	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x595e3b92	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x595f7f42	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x5963c207	inet_release
+EXPORT_SYMBOL	 vmlinux 0x59640e37	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x598d36a3	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x59928f82	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59b69b2a	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x59ce7e48	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x59dd5181	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x59e25ce6	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4b3cc2	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a530f86	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0x5a60b950	qm_channel_pool1
+EXPORT_SYMBOL	 vmlinux 0x5a6cc74e	msm_pinctrl_remove
+EXPORT_SYMBOL	 vmlinux 0x5a82849f	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a9080c5	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a9f1d63	memmove
+EXPORT_SYMBOL	 vmlinux 0x5aa6bf4f	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x5ac2b9cd	mii_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x5ad44ea8	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x5b0610a1	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x5b09d28d	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x5b0fee21	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3d3433	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b527b98	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x5b54903b	qcom_scm_pas_mem_setup
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b618d17	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x5be0fef7	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5be71ca5	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x5be8f7a5	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x5bf12178	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x5bf22eab	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x5c0693a5	console_stop
+EXPORT_SYMBOL	 vmlinux 0x5c0e1a39	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5c24f965	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c483a56	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x5c4c3598	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x5c4dafca	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x5c8c9360	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x5c909dda	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x5c99e673	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x5c9c0112	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x5ccd6803	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x5cd59988	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x5ce0bc48	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5d068731	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x5d0b133e	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x5d112304	__memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x5d1942d9	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x5d1caf87	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x5d2f69c8	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x5d30a93a	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x5d498d06	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d4d076c	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0x5d644a6d	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x5d75b949	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d9ff459	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x5dac4cd6	qman_dqrr_set_ithresh
+EXPORT_SYMBOL	 vmlinux 0x5daec552	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x5db0eb4b	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x5db2a2f1	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x5dbcfa6a	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x5dcaac4f	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x5dccbdbb	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x5de49441	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x5df42989	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x5df871ec	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e17af62	__brelse
+EXPORT_SYMBOL	 vmlinux 0x5e2cbdbb	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x5e2e56cf	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x5e2ee89a	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x5e3240a0	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e49d8de	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x5e59c413	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e5eddd6	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e852b83	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e90b979	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5e964118	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x5eb0424c	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ecbc38b	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed858ac	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ee515ee	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x5eea79bb	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x5eed56b3	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0x5ef7cc14	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f0b6725	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x5f3a0617	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x5f3a4240	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x5f499d8f	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x5f4ea9ca	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x5f658c7a	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x5f6b2501	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f7e8289	has_capability
+EXPORT_SYMBOL	 vmlinux 0x5f92fb6d	sock_create
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f953bae	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x5f9be58a	sk_free
+EXPORT_SYMBOL	 vmlinux 0x5f9fe75c	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x5fb806f8	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fd4e717	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x5febfa46	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x5ff37f52	igrab
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x6023b941	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x602e22fe	imx_dsp_ring_doorbell
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6036f3e0	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x60377d6d	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x604b41d7	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a892c9	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x60aaeb4b	qman_p_irqsource_add
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60b4e134	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x60c9bcb7	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x60d5bf99	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60f3a287	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x610535ab	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x61205cec	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x612a0ae9	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x612b21c4	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x6134685a	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x613d6c57	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x61538e93	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x6153d7ef	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x615d4437	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0x61639a79	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x61656ada	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x616f0d68	fget
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x617f58f0	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61a041fd	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x61a50618	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x61b30b29	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c966a2	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x61ca7453	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6217d470	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x6219b5aa	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x621f994f	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6229ab76	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x623467e2	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x62362f11	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x62387715	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x6266730a	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62832867	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x62bd8b80	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x62beb75d	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c41f92	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x62d96443	qman_dma_portal
+EXPORT_SYMBOL	 vmlinux 0x62dfd21b	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x62e0278d	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x630ef886	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x6322b5af	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x632633bb	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x633534d7	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x6340abb5	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x6346fde4	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x636f0742	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x6372fe49	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x63783314	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x63826ea7	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x6394d0e2	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x639c62fb	iommu_get_dma_cookie
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c19431	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c8129d	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63dcabda	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x63df4b19	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63f2cc03	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x63fb8746	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x64005cc7	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64106fc1	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x643518ea	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x6438ab8e	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64425338	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x644be12c	qman_affine_cpus
+EXPORT_SYMBOL	 vmlinux 0x6450e3ca	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x645b5909	arp_create
+EXPORT_SYMBOL	 vmlinux 0x64690fc4	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648b0e86	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64953529	seq_path
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a3aced	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64a9f626	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64c36937	release_sock
+EXPORT_SYMBOL	 vmlinux 0x64dac238	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x64e97335	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x64f67ff1	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x64fe72e1	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x65118893	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x6535cd1c	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x6543032f	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x654449c3	memset16
+EXPORT_SYMBOL	 vmlinux 0x6551cf61	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x655841f6	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x65699c26	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x656eb60d	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x65744931	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x659f5af1	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x65b93c92	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x663a2c19	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x663cfb3a	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x663f71db	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x664b1e29	qman_delete_cgr
+EXPORT_SYMBOL	 vmlinux 0x6655cda4	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x66754b12	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x668687f6	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x668ec294	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66c4dd7d	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x66ca6e83	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x66d5cd11	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66df0818	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x66e7201f	iommu_put_dma_cookie
+EXPORT_SYMBOL	 vmlinux 0x66f0f6d8	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x66f488a2	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0x66fcd1ad	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x670a8583	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6749f9c9	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x6755a4f9	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x6782c90b	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x679c88d3	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b2de7e	proto_register
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67cc8f61	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x67eb4e0b	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x67f3cfbd	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x67fe112e	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x6805dae6	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x6823fc68	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x68390af6	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x68404fe3	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x6858d570	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x68609429	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x6898c1d2	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x689c46d0	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68c5d35c	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x69324736	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x6933a280	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69508364	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x695431f6	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x695453c5	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x697047ba	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x698dd926	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x69a59650	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x69a93185	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69aee9bd	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69f2ef52	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x6a01d565	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a062f94	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x6a09ff43	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x6a1ca0b0	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x6a294821	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x6a33d89e	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x6a3766b2	qman_delete_cgr_safe
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5f874f	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6d426f	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x6a77d64e	dqput
+EXPORT_SYMBOL	 vmlinux 0x6a8d78d3	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x6a95a369	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6abc12d9	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x6ac8bd59	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0x6ac8f6f2	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6addf2a4	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6afba6a6	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x6b256224	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x6b26390c	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2941b2	__arch_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b394370	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x6b4024b4	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x6b47e034	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x6b4b2933	__ioremap
+EXPORT_SYMBOL	 vmlinux 0x6b51f34c	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5e3d58	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b7e6583	single_open
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6ba7f699	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6bef848e	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x6bf4c273	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x6c0c587c	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x6c18c66c	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x6c1d485a	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x6c2030ee	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c53059a	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c6eada6	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0x6c794287	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x6c992b33	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x6ca8a4ff	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x6ca9f54c	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbdd0eb	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d0536a6	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x6d292dac	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d39636a	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x6d3b26b2	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x6d427197	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x6d4bb42c	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d6a2ee6	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x6d73c95f	logic_outw
+EXPORT_SYMBOL	 vmlinux 0x6d7abe02	first_ec
+EXPORT_SYMBOL	 vmlinux 0x6d7cf165	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x6d7e8bf2	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x6d80f13b	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x6d831390	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0x6d8b554c	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x6daac06a	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x6dc25f07	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6dea367b	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6df8faf7	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e4f4e0a	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x6e537099	mii_check_link
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e6b9a63	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ebea37a	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x6ed169d2	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x6ed208a6	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f198f06	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f674257	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x6f6808b2	key_link
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f841cb6	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f95d21d	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x6f9efdfa	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x6fa17bc7	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x6fa52d77	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x6fb36859	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6febc13d	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x6fed80c1	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70117578	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x7025826b	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x70793020	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x707bdc3d	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x70934e39	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70c2ea6a	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x70cbbf62	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x70d1a18e	qman_release_pool
+EXPORT_SYMBOL	 vmlinux 0x70eaba0c	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x70fa38e8	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x71303345	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x71340a3e	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x7141b88a	logic_insb
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7154d756	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x715a84ef	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x715ee0fe	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x716a955e	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71b99879	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x71e06e84	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x720a35ca	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x72191b1c	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x723e9614	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x724b4867	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x725d8e6a	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x727e5a32	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x72826b3c	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x7286383a	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x72aa1c35	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x72aa91d2	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x72b1ba28	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72c8a647	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x72dd9753	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x72e6bac0	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f2fe95	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x72f8c959	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x730ee17a	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL	 vmlinux 0x7326f0bf	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x7329ca50	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x7349161a	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x7359b0f9	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x735f3595	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x7362e036	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x73739b3e	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x738b68ac	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x73962bc9	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x739b7ba5	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x739e4710	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0x73b1f15f	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x73b4b687	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x740f7ce8	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x743f4126	keygen_port_hashing_init
+EXPORT_SYMBOL	 vmlinux 0x7455d842	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x745a2265	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x7462dcf4	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x7464dc0a	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x7465aeba	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x747617fb	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x748450df	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x74953370	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x74a62123	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74cae031	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x74ddad8e	init_task
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fa3dea	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x74fec53f	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x7508e4cf	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x750ebe9c	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x750f9890	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x7540f5f5	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x75452edb	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x7545a47b	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x755ca6e1	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x7564e03b	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x757191b4	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x7583f931	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x758caa6d	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x758e6c09	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75c257ce	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75e4903f	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x7617560e	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x764356ab	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x765cb625	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x76861319	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x768e009d	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76a4e2c3	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x76acf9a0	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76f3f3b4	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x77044087	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x7705874b	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x77237c4c	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x772c3b39	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773e493f	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x77548de6	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x77640430	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x7767f157	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x7773cfd1	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x7776cbfd	meson_sm_call_read
+EXPORT_SYMBOL	 vmlinux 0x77880b0f	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77b5995e	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x77b7056c	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x77bc01ec	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c81690	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x77cbc538	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x77e19fef	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77ed5918	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x78134e7e	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x78175712	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x78288278	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0x782a4529	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x7832aeb4	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x787efbed	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x789afb75	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x789c08a8	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a4b90d	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x78b29f33	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78f9dbdf	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x79064179	filp_close
+EXPORT_SYMBOL	 vmlinux 0x791c8d18	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x7921cb85	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0x792d942c	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x7960c2e3	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79a3e8cd	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x79a90348	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79bb34f6	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x79c2ac7e	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x79c5760d	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x79c8ce01	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a1c5201	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a407483	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a461670	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x7a4a0f60	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a973939	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7a9e4b94	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x7aa1474d	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aae8c83	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b3f2be0	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x7b4297c5	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b576d37	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x7b6d6b25	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7b8b4156	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x7b8cf70c	kobject_add
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bc2ec39	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x7bc6ce95	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x7be9104c	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x7bebb931	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x7bedf204	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x7bf4290f	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x7c0c1a43	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x7c0ed912	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c22191e	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x7c32700a	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c5563cb	__free_pages
+EXPORT_SYMBOL	 vmlinux 0x7c5b4bae	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x7c5de767	fman_get_mem_region
+EXPORT_SYMBOL	 vmlinux 0x7c6f6a17	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x7c83cfcb	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x7c85e2cb	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x7c8df3ee	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x7c999c42	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x7c9af7cd	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7c9f7d5b	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x7cac58ac	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cd294f7	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce6d544	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cf9a0ed	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0b89ec	would_dump
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d27ac30	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x7d437ec1	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x7d472c4d	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d8b9fa9	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x7d958ef8	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x7daa9569	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7de2ef79	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0f493b	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x7e16de1f	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e4115b5	mii_link_ok
+EXPORT_SYMBOL	 vmlinux 0x7e616276	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x7e819637	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x7e85c7a1	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x7e91363e	seq_release
+EXPORT_SYMBOL	 vmlinux 0x7e97f362	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x7eb95c19	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x7ebd1705	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x7ec77484	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7eeab539	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x7eebde4d	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x7f004780	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f07df14	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f2b808a	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x7f4d7c4a	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f6b7f93	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x7f74756f	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f8cd953	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x7f8ef256	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x7fb4c98f	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x7fdaa163	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x7fdbadba	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x7fdd799d	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x7fe105d7	bman_ip_rev
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7ffcd4e8	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x802311ca	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x802bbe5e	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0x802cf43f	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x80383aa1	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x804d034d	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x8058ad47	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x8061944d	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x80676ffc	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x808c7c8e	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a5275a	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80d6b78c	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x8105dd93	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x81205100	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x813b0c04	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x8146892e	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x818c7ba1	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x818cf8b0	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x819ddc81	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x81b267a4	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81b87930	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x81be31bc	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x81cd2017	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x81d16e5f	dns_query
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e06e42	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81ee9bd2	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x822d4570	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x82491a34	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x827507ae	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x82a128c2	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x82b99e17	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x82c04574	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82cf9185	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82d4e9f4	of_device_register
+EXPORT_SYMBOL	 vmlinux 0x82e23d92	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x82e69438	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x82e825c5	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x82f59ed4	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x83195b29	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x831bf8cf	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x83327bd3	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x833f7559	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x836e793f	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x8397cb5e	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x839a9654	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83b41f90	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x83b45a69	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x83b849e9	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0x83bea07d	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x841b9315	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x841bb47e	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x841ea49e	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0x84568b18	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x845aa0db	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x846191f1	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x84678229	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x84718c60	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x849fa858	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x84a1f07e	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x84a884fe	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x84aaa8b4	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x84ab123f	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x84b63e99	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84cd8383	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0x84d7c8ce	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x84e4c2dd	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x84ee3173	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x8516cd35	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x851fb348	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x8524227a	get_acl
+EXPORT_SYMBOL	 vmlinux 0x85493f24	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x854ebcce	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x856d2169	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x85a0c28f	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x85a483d6	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c18d2b	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x85d1f7f4	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x85d5eaa2	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fedc5c	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x860aad7d	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x862de0b8	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x86371a40	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x86438813	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x86438e6d	sunxi_sram_release
+EXPORT_SYMBOL	 vmlinux 0x86490994	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x864d2171	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x8659038f	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x866288ab	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86af1d14	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x86de8bcf	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x86e76283	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x86e81b6c	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x86ea4005	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x86ef8d8f	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x87262c0c	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x872937cc	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x87376fe4	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8773c22c	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x87907714	arp_send
+EXPORT_SYMBOL	 vmlinux 0x8797634f	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x8797c929	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x87981993	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x879ed015	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87bfb040	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x87d70beb	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x87ead905	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x8821dbfb	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x8825e70c	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x882f7563	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x885123af	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x8854436a	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x8864bbe3	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x886e2ee7	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x88701f5a	logfc
+EXPORT_SYMBOL	 vmlinux 0x887881cf	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x88804336	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x888470ad	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88895ad8	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x88a95128	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88b20c9b	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x88b612d0	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x88d47b54	drop_super
+EXPORT_SYMBOL	 vmlinux 0x88d73554	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88f93833	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x8933b107	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x893a530b	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x8946ea72	fpsimd_context_busy
+EXPORT_SYMBOL	 vmlinux 0x89494e66	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x894c48f4	find_vma
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x895496f2	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x895b3fe0	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x89822df5	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0x898d23e4	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x89954ad1	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x899aa277	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x89a2f77d	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89dcdc13	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x89f66c4c	iproc_msi_exit
+EXPORT_SYMBOL	 vmlinux 0x89f8fd26	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x8a005c61	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x8a0fb2a9	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a33f58f	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x8a4161db	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a5e2b81	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x8a698233	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6bea26	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a970208	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aba3165	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x8ac136ae	imx_sc_misc_get_control
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac60481	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ac90770	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x8ad26782	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x8ad786f7	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x8addf833	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x8afba43c	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x8afcb17c	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b0ce0bc	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x8b1edb41	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x8b2ffd83	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b664455	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bc1e7fd	may_umount
+EXPORT_SYMBOL	 vmlinux 0x8be52dd9	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x8c013d49	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x8c220e6e	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c492c18	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x8c62b97d	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x8c6b2abf	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x8c6c2583	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x8c85b0ab	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cb978a0	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x8cd86059	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8cebc15e	free_task
+EXPORT_SYMBOL	 vmlinux 0x8cf14b8b	get_super
+EXPORT_SYMBOL	 vmlinux 0x8d00da88	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x8d04d86f	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x8d121135	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x8d269e89	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x8d2bf1d9	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x8d2ece02	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x8d51ec0a	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d69bdad	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x8d6ab7f2	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x8d6d570b	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d906fc6	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8da3ef56	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x8dd029ea	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0x8dd54cf2	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x8dd58bff	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x8dd8e36c	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de12d77	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfdf56a	sdei_event_disable
+EXPORT_SYMBOL	 vmlinux 0x8e06c7aa	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x8e168234	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e30ce3f	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x8e395ad0	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x8e57a02f	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e8afb19	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x8e8de0e0	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x8e92f6d0	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x8e93c763	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x8e987064	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x8ec99a79	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x8ecd1858	iommu_dma_get_resv_regions
+EXPORT_SYMBOL	 vmlinux 0x8ecf8375	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x8ed37ad9	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x8eef4f1b	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x8ef4cb6d	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f070eff	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x8f0ef89d	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x8f298114	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x8f4b1614	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x8f4bfec3	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x8f54ce11	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x8f8c729d	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fc2d4c0	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x8fc9ea11	fman_port_cfg_buf_prefix_content
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fda6a7f	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x8fe54d59	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x8ff5a195	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x902f5199	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x90685f3f	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x906beca9	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x906d4225	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x9088fb61	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x908a479d	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x90a3330f	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x90bee288	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x90cc2bb8	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x90ddb731	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x91030e8c	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x91035855	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x910426f8	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x9109ceba	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x9119de71	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x913a0255	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x914bcd86	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9174aea5	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x918715d2	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x918a483a	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x918e59f5	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x9195769d	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b49061	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x91c4ded8	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x91e4033b	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x91f6fbc7	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x920fe443	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x9211577d	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x922d6044	fman_get_pause_cfg
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x9237164f	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x9265fc83	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x9279fdfe	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x927bc436	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x92888155	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x928c2058	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x928dce9f	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x929a3f9d	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x92a5e8a9	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x92adbf1b	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x9300fa66	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930ed3df	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x931cd533	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0x936d9de0	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x938105ea	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x938a2029	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x93947197	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x93a581aa	build_skb
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93bd1685	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x93c17173	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x93c2e212	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x93c97193	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x93cc33b5	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x93cdeb77	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x93e185dc	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x93eb1e0a	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x93eeaab7	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x93fbead8	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x9405a149	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x9406b0e6	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x941035f8	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x9423c996	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x9425e7ee	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x943b0449	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x9463edad	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x9483ebdf	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x948c83da	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94a7375b	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x94a9d9c5	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x94b5ac82	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94e0fef4	fput
+EXPORT_SYMBOL	 vmlinux 0x94e66080	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x94e7af41	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x94fc8d93	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x95107359	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x951e37e4	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x9520559c	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x952d8aed	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x953474d3	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x953e019f	fman_bind
+EXPORT_SYMBOL	 vmlinux 0x95408378	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x95420222	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x95463dcd	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x956a371f	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x9574c9a1	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95a77b15	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x95b19f1b	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x95dc8543	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95e33b11	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x95e79d9f	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x95fde4e2	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x962c3b66	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x9636896d	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x96411cc6	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x96450feb	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x96470bc8	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x964a21d6	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x964d9a2c	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x96746da5	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0x9677cd8b	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x9688de8b	memstart_addr
+EXPORT_SYMBOL	 vmlinux 0x96a17b17	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x96a72141	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96b6a61c	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cb971e	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96d78028	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x96e55d83	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96e766ea	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x971487cb	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x972784e2	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x9733ca09	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97407a1b	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x9756c932	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x9766ac61	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x976ea9bd	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x977e999d	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x979f635e	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97edb2c0	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x97f66987	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x97fb3a41	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x97fb5fad	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x9809a403	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x9809ea7b	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x980d0104	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x982639ac	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x9843291d	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x98499f77	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x984f893a	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x987e772c	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x9884c89a	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x989362cb	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x98975054	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x98bcae91	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cf60b3	strlen
+EXPORT_SYMBOL	 vmlinux 0x98df7218	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x98e4faec	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98fcfce2	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x98fd8ba5	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x99081e67	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x99094fb2	qcom_scm_is_available
+EXPORT_SYMBOL	 vmlinux 0x990f1ad9	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x992dc901	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993afe7c	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9963f7bf	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x9967ee92	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99ee35be	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x99fe1c79	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a180566	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a41e8b7	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a6c8bc7	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a8d5138	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ac3d873	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x9aef3172	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x9b0defaa	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x9b0e4556	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x9b128a66	qcom_scm_set_remote_state
+EXPORT_SYMBOL	 vmlinux 0x9b1b4611	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b28f173	update_region
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b3b010a	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b4a5727	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b56afc5	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x9b5d7bb7	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x9b630536	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x9b68f989	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b94c1f6	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x9ba66d1c	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x9bade02f	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x9bbcafe2	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x9bcc07cb	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x9bd7c7b7	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x9bdb557f	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x9bec05b9	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x9bf56dc1	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x9c0fd08c	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c14a662	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x9c1e5bf5	queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c2ed7b1	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x9c41d2d2	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x9c43a43a	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x9c595f62	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x9c642516	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x9c7383d1	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x9c79e484	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x9c91ef07	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9c9e52d1	skb_split
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cd641e2	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9cdff0d9	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x9cf0a93c	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d1a5e3a	__memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d64ce11	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x9d70c71e	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x9d86b1c5	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9da939ab	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x9db2680d	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x9dbd0d85	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dded17e	dev_open
+EXPORT_SYMBOL	 vmlinux 0x9dee62ac	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x9df21d0e	qman_affine_channel
+EXPORT_SYMBOL	 vmlinux 0x9e01fd2f	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e2f1158	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x9e2fb49f	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x9e356b51	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9e39e2bc	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x9e3f886f	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e55dd81	nvm_register
+EXPORT_SYMBOL	 vmlinux 0x9e5e750d	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e6c0ef0	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x9e78ba60	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e9e9120	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ec8ebbf	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x9ed7c847	brcmstb_get_family_id
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9ed935f9	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9eea6d6d	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x9efc9116	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x9eff8449	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x9f0c24d9	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x9f11e713	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f688e38	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x9f73307e	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x9f77214f	fman_get_revision
+EXPORT_SYMBOL	 vmlinux 0x9f7d7dbb	logic_outsw
+EXPORT_SYMBOL	 vmlinux 0x9f869337	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x9f8b0a00	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fa7e7a2	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa036bdbb	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa074d779	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa09bb852	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0xa0a7696b	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0xa0a8f011	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b3fd47	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xa0c2172a	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0dcbf6b	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f48bad	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0xa0f493d9	efi
+EXPORT_SYMBOL	 vmlinux 0xa0fb56d4	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0ff8f28	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10df8b3	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa142a0e7	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xa14610ee	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xa16725df	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xa180012a	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xa190b2b4	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0xa195224f	of_node_put
+EXPORT_SYMBOL	 vmlinux 0xa1a8c01f	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xa1b32a8e	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa1b5f374	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xa1b63e27	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa1b9533d	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xa1bdc17f	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1f4d9e8	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xa2035ac6	qcom_scm_set_warm_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa2233b51	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa2678106	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xa26c9b93	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xa270cc07	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2af75a8	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xa2b46538	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xa2e3bf8d	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0xa3032969	skb_put
+EXPORT_SYMBOL	 vmlinux 0xa303fc3e	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xa32cf052	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0xa33970c8	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa3530d26	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xa35dd18a	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xa39310c1	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xa3963eed	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xa3f0cd1c	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xa3f539e7	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa417effd	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xa42e58b8	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0xa42ed5d0	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0xa4304df2	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xa43dc3f8	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xa44946a5	init_net
+EXPORT_SYMBOL	 vmlinux 0xa44f8289	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xa4517c13	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xa45bbdfe	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0xa46de444	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0xa487bc34	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xa497eefc	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0xa4b77ecb	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xa4cb5027	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0xa5056338	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa5130bb0	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa53bf1f0	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xa53ca4b4	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5596f38	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xa55b7a4e	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xa5644ab1	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0xa5726dbe	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0xa583ff1a	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5ac6c4e	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0xa5b9e1d1	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xa5c0fd52	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xa5c11bd4	put_disk
+EXPORT_SYMBOL	 vmlinux 0xa5cf71ad	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0xa5ddbc82	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0xa5f7cf37	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0xa5f94656	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa61a91fe	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa636b8a4	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xa6375c1a	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xa649c2f3	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xa67fbcd3	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa69c55ff	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa6bdaff4	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xa6befc58	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xa6c83f2b	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xa6deed65	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xa6df6252	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xa6ebfcb2	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xa6f2f653	sock_register
+EXPORT_SYMBOL	 vmlinux 0xa71acc92	fman_port_config
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa754e0bb	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa758e655	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xa7752686	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0xa776f395	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa7819e95	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xa7827217	fb_blank
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa79e7430	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xa7a1e0bf	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xa7adc43a	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xa7d5e235	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7e54f7b	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xa7e950fe	kobject_init
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7f24445	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0xa7f7e13b	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa81f288f	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xa821d181	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa83250a1	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa8465d72	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa871dc04	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xa893657e	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xa895b02b	mount_single
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8ab1c67	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0xa8aed507	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xa8af3895	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8cafbef	input_event
+EXPORT_SYMBOL	 vmlinux 0xa8cb7191	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xa8d04aa1	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8ef7f43	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8fd7572	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xa9034c2a	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa94c7144	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0xa9507e54	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0xa9543117	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xa95a5024	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa96c51be	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0xa972e207	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xa97463c9	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa984910c	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9b318d6	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0xa9b50881	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xa9bcd7bb	cad_pid
+EXPORT_SYMBOL	 vmlinux 0xa9d2139d	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa317432	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa3d905f	meson_sm_call
+EXPORT_SYMBOL	 vmlinux 0xaa4907e2	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xaa4d511b	mii_ethtool_gset
+EXPORT_SYMBOL	 vmlinux 0xaa5ac216	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa725ef8	md_error
+EXPORT_SYMBOL	 vmlinux 0xaa78fadb	write_one_page
+EXPORT_SYMBOL	 vmlinux 0xaa81a0b5	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0xaa8df7f9	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xaaaa3a3b	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0xaabc29c9	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xaac2cdd6	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xaac4e667	put_user_pages_dirty_lock
+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 0xaadef0e2	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab07e5e4	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xab1aea50	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xab258152	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0xab2a3199	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xab2de7fb	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab4cf2c4	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xab4d1e86	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xab5e42f3	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab6d95bf	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab90e0de	mr_dump
+EXPORT_SYMBOL	 vmlinux 0xab953b31	serio_close
+EXPORT_SYMBOL	 vmlinux 0xab9bd907	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xaba96035	kobject_del
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabde0b0e	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xabde91b6	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0xabdf2f40	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xabe39c96	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0xabf236be	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf8f5c0	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0xabfcde42	skb_dump
+EXPORT_SYMBOL	 vmlinux 0xabffe2ba	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0xac01ddaa	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac3fad30	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xac41988d	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xac466370	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0xac4c1145	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac905baf	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacacd1de	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0xacc1ff0d	qman_volatile_dequeue
+EXPORT_SYMBOL	 vmlinux 0xacc6efab	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacc93bb8	bdget
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xace0bc7f	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xace7cc26	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xacea79d0	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad043b2e	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0xad0770c7	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0xad3ea04c	qman_p_irqsource_remove
+EXPORT_SYMBOL	 vmlinux 0xad66a45b	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad719313	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7dc686	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xad7e77b4	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0xad80a3f1	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad9786b2	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc4a564	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xadda9f22	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae014047	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xae10a119	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0xae121079	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0xae2422f9	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae32b49a	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae742bb5	qman_enqueue
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xae9d8759	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0xae9e8858	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaee05a15	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xaf2b9189	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0xaf30dd64	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf49bee3	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xaf507de1	__arch_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0xaf51e222	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0xaf59cb66	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xaf641882	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf78e2ab	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafaca44a	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xafaf3ef8	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xafb6d383	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0xafc0dfa2	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0xafcdfdbc	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xafdfe5d4	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb0196021	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb034c757	simple_link
+EXPORT_SYMBOL	 vmlinux 0xb04334be	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xb04998e4	dm_io
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb076faf4	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0afa711	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xb0bc6d6e	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0xb0c1cdfe	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0db0593	iget_failed
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0f5c02b	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb112138a	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12262bb	iput
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb12f33a3	vga_get
+EXPORT_SYMBOL	 vmlinux 0xb13dd77f	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb155c8e0	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb178cbfe	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xb17c76cf	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xb17ccdf5	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xb1815c3d	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0xb190f9c4	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xb1af1f8e	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xb1b9b068	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xb1bb4d7d	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xb1be93e7	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1d1525c	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xb1d6e81d	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xb1db9a69	fsl_ifc_find
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb1ec166e	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xb1f07625	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xb2286361	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb23c3dbb	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xb2556c68	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xb255e391	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xb292edaa	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb29a240d	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0xb2a3442f	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xb2a99b47	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b97ddb	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xb2bc7df6	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2c6a052	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0xb2e05b84	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xb2ead97c	kimage_vaddr
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2fbb14d	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb30eedb5	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32391e3	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xb32728bb	qcom_scm_iommu_secure_ptbl_init
+EXPORT_SYMBOL	 vmlinux 0xb34331ab	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xb35de4bb	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb377d33f	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xb384dcb9	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xb3a28ca4	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0xb3a2ebc0	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xb3ae9a15	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xb3c02aeb	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb3cdf6ba	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3dea7ac	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb400ec3e	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb4084a23	sunxi_sram_claim
+EXPORT_SYMBOL	 vmlinux 0xb41526b9	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb422abe1	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb450d84b	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0xb455d3e3	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb4748d08	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xb4805ae0	read_code
+EXPORT_SYMBOL	 vmlinux 0xb4810ed7	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb492d175	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a2cca0	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xb4a3e8f3	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xb4b86057	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xb4b8fc7e	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0xb4ce970b	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xb4d98c3d	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xb4eb3af2	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f42e5b	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0xb50d2eae	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xb533d338	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb547ebb5	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xb54ee0c9	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xb5512721	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb57f1e27	fman_port_disable
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb58cb7a2	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5b153cc	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xb5bf113b	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xb5d97cf6	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xb5de6f0e	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb606fb5b	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xb60c9413	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0xb60d4909	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0xb611b656	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb6662d39	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xb6678b45	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xb667937e	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb676cd0b	qman_create_fq
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6956e40	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6aae144	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xb6c80dfb	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xb6c9afab	node_data
+EXPORT_SYMBOL	 vmlinux 0xb6edf96e	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0xb715b0cd	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xb72df646	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xb7314198	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb74054af	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xb74b3b94	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xb751a33b	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb751cdf3	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0xb771eda6	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xb7729aac	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0xb7744501	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0xb77f36e1	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xb7866a48	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7912f72	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xb79a7d35	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0xb79de6a1	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xb7a17acf	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xb7aaae98	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0xb7b3c5d1	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xb7beb3b5	mii_nway_restart
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7cb89c4	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xb7d27375	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xb7d737d8	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0xb80395c9	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xb8221d9f	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xb8256fa3	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xb82a9d95	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xb830fdbc	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb831d83e	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0xb837626e	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xb855e2bb	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xb85d26eb	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xb8605d9c	qman_p_static_dequeue_add
+EXPORT_SYMBOL	 vmlinux 0xb887c3b5	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xb88e1c97	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0xb892f801	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb89cdeda	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0xb89e43f2	qman_query_fq_np
+EXPORT_SYMBOL	 vmlinux 0xb89e8ebe	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8bf86b6	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0xb8e45863	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xb8eff144	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xb903738e	sdei_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb912d0fd	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0xb913438d	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb9885a80	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xb994fb36	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xb9a4fc16	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9b140aa	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xb9b6febe	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xb9b7e010	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0xb9d8564d	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9fc381a	qcom_scm_hdcp_req
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba112cb4	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xba25eeba	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0xba318c00	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba5809c3	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xba5a1f23	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xba6325ce	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0xba7bad28	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0xba9cffe5	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0xba9ed043	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbad6da5f	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xbae7fc3c	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xbaefad19	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xbafbd0d5	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb21260e	convert_ifc_address
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb2a4df6	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3d30f6	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xbb4810f8	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb687724	bman_new_pool
+EXPORT_SYMBOL	 vmlinux 0xbb6d7619	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xbb6eb1ea	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0xbb82a2f5	console_start
+EXPORT_SYMBOL	 vmlinux 0xbb866497	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0xbbb9c383	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xbbcb2461	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xbbd329ba	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xbbdee29a	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbf5cd17	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xbbf9877c	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xbc07d708	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc2f31d7	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xbc3a5ab0	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc3db743	new_inode
+EXPORT_SYMBOL	 vmlinux 0xbc466768	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xbc4e8d6d	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xbc608c45	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0xbc775fda	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0xbc7ffaa9	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0xbc860f28	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xbc8852b3	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xbc916ac1	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xbca777c5	fman_set_port_params
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb7ee68	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcce9dee	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xbcd949fd	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xbd186ff8	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd4c0a08	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbda547b4	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xbdac8d9a	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xbdc1b6c8	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xbdc39d0b	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xbdc8ad6c	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xbdcf7818	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0xbde13638	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xbe1ba7f2	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xbe2b0b5b	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xbe4590dc	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe49e109	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0xbe4b53c1	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe520e59	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe81e091	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xbe917343	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xbe9cd781	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0xbeb51787	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0xbec5ed8b	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xbec942cb	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0xbed25d2f	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xbedf5d59	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0xbee3047e	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbefe5714	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xbf29e924	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xbf330dc5	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xbf91966e	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0xbf93899f	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbf9e5699	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xbfacf81c	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0xbfb4fbf4	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0xbfb8b85c	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xbfcbc0d2	stmp_reset_block
+EXPORT_SYMBOL	 vmlinux 0xbfdbf349	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xbfdd729f	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xbfe398c1	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff2a363	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xc0136a34	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xc0221da6	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc029830b	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xc045b6e4	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xc04ec343	dquot_release
+EXPORT_SYMBOL	 vmlinux 0xc0715cb0	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc090c085	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xc091d352	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0c64be9	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xc0ccd13f	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xc0ddba18	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc1003034	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc1181d2a	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0xc11d935c	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xc12788d4	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xc14d9399	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc1579516	fman_port_enable
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc164a51c	keygen_init
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc178680b	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xc180929e	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xc1846001	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xc18bd934	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xc197028d	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0xc19bc725	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0xc1d548aa	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1e505c8	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xc1f912f7	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xc1fe01cc	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xc2050974	fman_port_get_tstamp
+EXPORT_SYMBOL	 vmlinux 0xc20de8ad	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc22ffc5e	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xc2310cdc	logic_inl
+EXPORT_SYMBOL	 vmlinux 0xc232e3f8	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0xc23aa0a8	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xc23dfdc7	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0xc24f1fa9	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc2779876	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xc27c1286	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0xc2990d64	d_move
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2dd26ff	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e61f6d	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xc2f52274	__lshrti3
+EXPORT_SYMBOL	 vmlinux 0xc306459f	kset_register
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc31995d7	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0xc3208ca4	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc349f091	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc36f3231	fman_set_mac_active_pause
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc377ecbd	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc3a0bbee	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc3afeda7	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xc3b0af93	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3ee801b	vmap
+EXPORT_SYMBOL	 vmlinux 0xc3f06066	seq_read
+EXPORT_SYMBOL	 vmlinux 0xc3f31a34	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc40975a1	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0xc418ac6f	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4206ddc	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc479c0ad	try_module_get
+EXPORT_SYMBOL	 vmlinux 0xc48347fd	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xc48b5d4a	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0xc4904b1b	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0xc49e760d	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc4b21d2f	qman_get_affine_portal
+EXPORT_SYMBOL	 vmlinux 0xc4b3b0eb	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xc4e5266e	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xc4ecd03e	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xc50417a1	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0xc511b69e	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc553702e	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xc55bb810	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xc567c607	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xc56a41e6	vabits_actual
+EXPORT_SYMBOL	 vmlinux 0xc5717d94	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc57cfb7e	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xc58221a4	mntput
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58b8cb9	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xc5987285	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc59ffd22	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0xc5aae1eb	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5b771e3	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc5c66c1b	seq_open
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6038ca6	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc61ef81b	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0xc62a836f	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xc62e8d8f	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc6390a0b	d_drop
+EXPORT_SYMBOL	 vmlinux 0xc63edfda	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc663d69a	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc66e9519	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xc6867e19	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0xc6a07411	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xc6b1fc3c	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xc6b66ed3	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6f33060	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc74bf45e	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xc7576e39	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xc7668fb3	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xc771f579	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc78eeb1b	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xc7939c14	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xc794acbd	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xc7979aa1	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0xc797cb02	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7f68139	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xc802c903	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xc806ee72	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc81cfab9	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc838c3f5	__ashrti3
+EXPORT_SYMBOL	 vmlinux 0xc8395892	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc8543fc5	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0xc8567ee5	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a3b0df	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8c3c86c	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0xc8c559ac	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0xc8d67e09	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xc8dee1d0	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8ec2e3d	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xc8fac337	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xc8faf039	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xc8fe6281	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xc905ed06	eth_header
+EXPORT_SYMBOL	 vmlinux 0xc917f9a5	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0xc92b8e41	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xc92cbdda	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xc93bf936	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc94a0a38	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc976a0f5	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xc97a53c8	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xc97c7af6	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc98d6d8b	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0xc9957204	__arch_copy_in_user
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9a8208c	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xc9b1ef1c	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xc9b228a3	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xc9d5e146	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xc9d8f9ce	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e1c4b9	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xc9eaf6e8	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0xc9f47186	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xc9f590a3	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0xca13046a	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca1cc5df	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca7582cf	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0xca78db6b	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xca7b92f1	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xca8d1922	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xcabef7e1	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xcac732c0	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcaee9154	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcafb627e	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb071192	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xcb20a05a	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xcb293de3	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0xcb317530	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3df3b4	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xcb4119af	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xcb67c4ab	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb8e8381	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba8b99a	seq_puts
+EXPORT_SYMBOL	 vmlinux 0xcbacd1de	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbbbf235	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbcedb01	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbe7a730	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xcbf477db	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xcbf4dc30	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc0101db	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xcc0622c1	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0xcc07b8f4	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xcc0ea199	dump_skip
+EXPORT_SYMBOL	 vmlinux 0xcc0ead9e	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xcc0f04c1	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc3a0a68	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0xcc445a50	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc56fe87	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc665b6c	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xcc82585e	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xcc87abe1	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xcc933e42	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xcca96248	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccddc912	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xcce46404	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccf70ce0	pci_free_host_bridge
+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 0xcd1ebac3	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd31adc5	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0xcd43ff05	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xcd6348fd	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0xcd6d34c7	msm_pinctrl_dev_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xcd7f0bda	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0xcd86c657	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd975120	sock_release
+EXPORT_SYMBOL	 vmlinux 0xcdab7808	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcddf45c2	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xce036f24	sg_split
+EXPORT_SYMBOL	 vmlinux 0xce221871	bio_split
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce44cd05	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7964ad	of_match_device
+EXPORT_SYMBOL	 vmlinux 0xce7aecdc	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce93f270	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceab9d4e	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xceba2488	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xcec7ea7b	inode_permission
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xceff75fd	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf094bf5	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xcf1a303b	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf271a70	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf36f59d	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xcf383ddf	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xcf47f831	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0xcf4cb712	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf5893c2	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf9107ec	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0xcf979262	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcf9cc2f2	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xcfce75e1	km_report
+EXPORT_SYMBOL	 vmlinux 0xcfd6e3eb	of_node_get
+EXPORT_SYMBOL	 vmlinux 0xcfeb98a8	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xd0115eb3	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0xd029bd97	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0xd029d98e	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd02efa10	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xd03408ac	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04d5e6e	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xd056f9cf	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd099c05e	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0xd09cdcc0	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b2bdf9	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0xd0b42ed6	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0b9c1f9	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0d3c99c	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0facafc	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd109a771	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xd11d2877	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xd12d5ec2	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd1377d13	free_netdev
+EXPORT_SYMBOL	 vmlinux 0xd159cd69	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xd15c662c	mmput_async
+EXPORT_SYMBOL	 vmlinux 0xd179daad	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xd17e1565	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd1855d84	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19a710c	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xd19ec36f	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xd1a41653	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xd1cc4a63	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1e075be	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xd1f86eff	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xd2051916	qcom_scm_cpu_power_down
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd22b92c7	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0xd23f2d93	fman_unregister_intr
+EXPORT_SYMBOL	 vmlinux 0xd246c21b	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0xd2565dfc	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0xd25bc5d4	csum_tcpudp_nofold
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd2803eeb	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xd2947da7	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xd29cbad3	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0xd2a01da1	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xd2a116f0	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xd2b45ee7	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0xd2b7b6c7	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xd2ca89cb	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd2ede695	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xd3016338	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd31d1b77	of_find_property
+EXPORT_SYMBOL	 vmlinux 0xd325a85c	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd3559ef4	__memset
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd366e5c9	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xd36a41e0	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd3836923	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0xd38d03dd	pcibus_to_node
+EXPORT_SYMBOL	 vmlinux 0xd3b9eb58	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xd3dd1c98	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f73063	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xd3fba534	qcom_scm_set_cold_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xd401c0d8	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xd40316db	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40ba969	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xd42b9997	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xd4339de8	qcom_scm_pas_init_image
+EXPORT_SYMBOL	 vmlinux 0xd4510a6c	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd45ee898	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd492422c	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a69d20	qm_channel_caam
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4e2bfd4	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xd4e70c60	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fb9fac	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xd50d8010	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xd510c448	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd54b1a15	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0xd5521a79	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0xd55ca105	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xd5816f51	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xd58cd1ba	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xd5944481	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xd59e2665	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5c296cc	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0xd5e6b029	dst_init
+EXPORT_SYMBOL	 vmlinux 0xd5fd40c1	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd6046dfe	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd6106278	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xd6111a76	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xd61bbbc4	notify_change
+EXPORT_SYMBOL	 vmlinux 0xd623bf5b	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xd62e52c7	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd630b5da	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd64191e8	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd65c13e7	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xd663b0f1	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0xd674a183	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xd6755930	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xd6848393	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd688e5ff	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd68c5d1f	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0xd6931967	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6cb594f	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ed8ffe	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fb8dc2	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd6fea1c8	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd715ac12	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xd71c6d82	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0xd71cae42	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0xd73390a0	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd748a088	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xd74d926e	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xd75b4caf	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xd78673ad	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xd7b16d76	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xd7bcff0f	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0xd7c24be4	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xd7cd19a7	ilookup
+EXPORT_SYMBOL	 vmlinux 0xd7ceb0e3	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d59dee	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xd7de1589	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xd7e3e266	seq_escape
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7fc02f3	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0xd7ff1b8a	__ashlti3
+EXPORT_SYMBOL	 vmlinux 0xd803285a	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xd8049bbf	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xd8131274	qman_alloc_cgrid_range
+EXPORT_SYMBOL	 vmlinux 0xd814c6ed	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xd8210c64	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xd83b1aa7	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xd8494d74	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd86942cc	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xd8695f69	fman_get_qman_channel_id
+EXPORT_SYMBOL	 vmlinux 0xd86d911f	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd89fd49e	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xd89fd787	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8bbd142	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xd8cd531a	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd90088bb	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd94b01f6	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0xd980a542	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd98d9b5b	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xd98e1120	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0xd99441ad	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0xd9a3dfe1	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9b15020	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9c1ffad	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xd9c46524	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xd9c66f26	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xda1ee519	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0xda25662b	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4b9523	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xda53eebd	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda7417ab	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda8be6cc	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdab4bc01	fman_get_bmi_max_fifo_size
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdac57004	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xdadfdd5f	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdb01f7fd	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xdb1f71b3	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0xdb219b24	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb3d6357	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xdb4c5359	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xdb548040	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb7e83f2	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xdb92ff97	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xdb9aefa0	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xdba25b4b	send_sig
+EXPORT_SYMBOL	 vmlinux 0xdba9ed6b	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xdbac29b4	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xdbbb6a82	audit_log
+EXPORT_SYMBOL	 vmlinux 0xdbc1ad8d	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbda6992	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xdbdd17fe	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xdbde48eb	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbe79e2b	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xdbee234b	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xdbf764b2	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xdbfc65a2	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xdc04db9e	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0xdc11ab93	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xdc141f20	can_nice
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc267a62	qman_get_qm_portal_config
+EXPORT_SYMBOL	 vmlinux 0xdc328055	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xdc34158f	fman_port_init
+EXPORT_SYMBOL	 vmlinux 0xdc3bf82a	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc76cde8	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xdc987cf0	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xdca8c3d4	logic_outb
+EXPORT_SYMBOL	 vmlinux 0xdcb5dc83	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xdcb764ad	memset
+EXPORT_SYMBOL	 vmlinux 0xdcc876da	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0xdcd50e25	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xdcd80c5d	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xdce264ad	dev_printk
+EXPORT_SYMBOL	 vmlinux 0xdd0f384d	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd1c3fc8	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xdd1d2779	open_exec
+EXPORT_SYMBOL	 vmlinux 0xdd2adbda	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd3701b2	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd4ba363	__module_get
+EXPORT_SYMBOL	 vmlinux 0xdd4fb884	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xdd62400c	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd7e3192	qcom_scm_pas_auth_and_reset
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd82df32	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd873be1	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0xdd9435fa	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xdda3251d	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0xdda4b389	iunique
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddbc1101	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0xddc15182	simple_open
+EXPORT_SYMBOL	 vmlinux 0xdde62e75	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0xdde74a6b	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0xddf43941	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xddf9af8e	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xde15c872	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xde1e3516	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xde1fc70a	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0xde28a0a8	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde39793a	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde5b6579	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xde5ddf12	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0xde5fb759	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0xde93df2e	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xde9cfd61	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xdea1d468	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xdeb2db80	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xdec20e99	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0xdec76409	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xdeca2e01	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee2d254	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdefb50dc	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xdf24f64f	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf59e6b6	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf6dcb88	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf9207f7	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfd06966	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0xdfd46128	registered_fb
+EXPORT_SYMBOL	 vmlinux 0xdfd7e298	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xdfdac8d0	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe9a221	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffad005	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe0160e24	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xe0278880	rpmh_invalidate
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe0634cd5	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0xe06d6900	processors
+EXPORT_SYMBOL	 vmlinux 0xe0705a96	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xe070cb51	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe084873d	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0885454	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0e5e57a	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xe0fc5a9a	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0xe10c5444	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11861c2	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe1407397	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xe1445418	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0xe149886f	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xe14f7c22	param_set_long
+EXPORT_SYMBOL	 vmlinux 0xe156ec11	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0xe15a1419	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0xe16c5f0b	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1ac8bba	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xe1bc44e6	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0xe1c4eca0	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e446a9	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1e8775d	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe1ebc4ea	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xe1f36009	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xe21223b0	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe22a1e70	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0xe25f5361	fman_reset_mac
+EXPORT_SYMBOL	 vmlinux 0xe26b06fe	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xe26b80c1	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xe27115c5	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xe28458b3	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xe2abb0f4	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xe2b942c9	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2d80084	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xe2dfaba6	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0xe2e0c7c6	__flush_icache_range
+EXPORT_SYMBOL	 vmlinux 0xe2e5cd95	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0xe2e75fda	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe309006e	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xe31225a1	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xe314277e	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xe316cea5	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe32bf0ac	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xe33d9744	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xe3475a33	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0xe34a52bd	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xe353eff0	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xe3553fa5	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xe35aaba3	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xe364c10b	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xe36fb9aa	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xe39e2e5c	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3ab9b91	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3da1fa9	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f00ac3	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0xe3f6dede	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe4092b32	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe40d2264	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0xe411f7ec	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xe43064fb	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe43466c6	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xe4384d34	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0xe43a247b	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xe43b3b81	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe443378b	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xe44fc1d5	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0xe45bd93b	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xe461426f	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0xe46c1f4d	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xe4b636c6	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe4bbc1dd	kimage_voffset
+EXPORT_SYMBOL	 vmlinux 0xe4d43ecd	__put_page
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d73818	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xe4d88d81	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xe4f56e73	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xe4fc9120	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xe5014352	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xe50bea03	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xe50e44db	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xe5114888	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe55ffaaf	fsl_ifc_ctrl_dev
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c3b994	mii_check_gmii_support
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5e0bf86	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xe5e7dee4	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0xe5eb5aff	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xe5f5871d	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe6175980	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0xe61fb11e	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xe62cdff9	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xe6488b54	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe69892ff	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xe6a7fb72	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0xe6c90860	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xe6d62a37	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0xe6ec60dc	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xe6ff321d	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xe710c487	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xe7226bc7	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe73c9fb0	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xe7698027	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0xe7837692	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xe7889fd9	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7b0353b	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe7c275fb	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7dcc74c	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xe7ec1e19	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xe803c4bc	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xe8383f68	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe888dc1f	rpmh_write_async
+EXPORT_SYMBOL	 vmlinux 0xe8abb3cb	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xe8b7ce8a	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xe8b7f684	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xe8e9f43e	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0xe8fb4cfd	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe908d85c	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe916d193	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xe9197682	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xe91bd40b	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xe923eed7	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe9550214	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xe95f7eb4	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xe95f97e1	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xe96774a0	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xe96a5633	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0xe96ed2ad	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0xe96f182c	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0xe97711e5	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0xe97db7a6	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xe97e70b9	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9b35fe8	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xe9c9a86e	skb_append
+EXPORT_SYMBOL	 vmlinux 0xe9cd50d5	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9ebe14e	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xe9f1549e	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea13ec84	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xea19702f	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea3fe7ac	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xea436a45	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea8676ed	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xea87222c	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0xea9bae40	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xeab57716	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xead8c400	bman_get_bpid
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeae94523	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xeb10eb05	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb26ad3a	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb418a64	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xeb43ddb2	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb53c147	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xeb62fd40	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xeb670768	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba433d0	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xebaaa6af	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0xebb84d9e	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xebdd217e	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xebdd4a54	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec150462	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec3b0279	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0xec41716a	qman_alloc_fqid_range
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec4e3aca	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xec677088	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xec6892fe	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0xec6d56c3	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0xec75f0af	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xec82ec4f	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0xeca0411e	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xecafce09	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0xecb02ca1	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xecc740bd	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0xecd12975	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xece7b576	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed07ecaf	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xed10ed51	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0xed2cc762	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xed3593c7	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xed4082e1	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xed4303d5	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xed4a1b45	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed6f773c	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0xed76f3a1	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xed8a2d95	memset64
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xede5a585	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xedfd251c	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee1e95e2	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0xee27010d	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee2ef51c	misc_register
+EXPORT_SYMBOL	 vmlinux 0xee2f393c	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xee3368b8	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee5b865e	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xee6d6f7c	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xee7226fd	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee98325b	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0xeea0e839	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0xeead9bf9	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xeec0cef6	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xeec6f279	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0xeecddb79	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xeed30a22	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0xef3a34a9	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xef4150cb	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xef52f0f2	iproc_msi_init
+EXPORT_SYMBOL	 vmlinux 0xef5efbf8	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xef62b160	tty_name
+EXPORT_SYMBOL	 vmlinux 0xef67e9d4	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0xef6e585b	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xef882ed9	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0xef8ac53d	qcom_scm_restore_sec_cfg
+EXPORT_SYMBOL	 vmlinux 0xef91d1fa	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xefa2edff	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefb55a43	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefe291a4	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0xefec1f6a	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf011c112	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0xf025ad65	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xf02b6045	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0xf040ee24	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf0902ff1	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xf0950403	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0b0e9bc	generic_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf0b2419f	cmd_db_read_aux_data
+EXPORT_SYMBOL	 vmlinux 0xf0bd13fd	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0xf0ce38f5	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xf0d74cd4	padata_free
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf1082a12	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xf123e9ca	tso_start
+EXPORT_SYMBOL	 vmlinux 0xf144180b	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0xf17a9d2f	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf18300ad	logic_inb
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a4ef80	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xf1a69762	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xf1b47038	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e7303d	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf20ce817	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf213f087	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf2251aeb	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xf22a8d83	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xf231492e	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0xf23ead2a	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf242eb35	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf2669a2c	imx_scu_irq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28a2ecb	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xf28f527b	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29cc4ea	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2a3ffb2	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xf2ac6db2	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0xf2b83b98	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0xf2bcb37d	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2d1656b	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xf2dd6f55	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xf2e2bd99	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2f70c25	qman_fq_fqid
+EXPORT_SYMBOL	 vmlinux 0xf3046cb1	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xf30c7308	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf314b58e	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xf330b98f	pps_event
+EXPORT_SYMBOL	 vmlinux 0xf3431591	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf3634e2d	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xf366353c	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0xf372a459	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3918522	qman_retire_fq
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3af3d31	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3e89b41	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xf3ebeb33	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf4157305	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf42514b7	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xf430e070	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf43fa39b	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44ce7a1	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf47e5c2a	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xf4827377	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xf49cf90c	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4cc5358	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f64995	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0xf523bd02	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xf5306128	vga_put
+EXPORT_SYMBOL	 vmlinux 0xf536b650	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf543f6b4	start_tty
+EXPORT_SYMBOL	 vmlinux 0xf546e06a	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf550d4b1	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0xf551289d	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xf55bf0cd	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xf57d62f8	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xf57fbbef	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0xf581c9ae	fd_install
+EXPORT_SYMBOL	 vmlinux 0xf591753d	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a535c9	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0xf5c00ec0	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xf5c21bcf	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xf5e29796	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf601f772	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0xf602a2e9	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xf6115a23	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xf615d381	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xf61c975c	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xf62276ef	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xf633bcc3	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf64bc5a8	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xf656cbc4	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xf65aeb16	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xf65cf311	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf66f3f69	of_iomap
+EXPORT_SYMBOL	 vmlinux 0xf6792218	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xf67991be	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf696ad14	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xf69ce3c1	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xf69e7a4f	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xf69f12ea	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf6aef601	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xf6ce5080	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f3aa52	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf7053af6	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xf705de2a	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0xf7254f75	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xf72f1135	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xf73804de	request_firmware
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf747c36e	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76843b5	qcom_scm_pas_supported
+EXPORT_SYMBOL	 vmlinux 0xf76a9363	d_delete
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf77555cd	__memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xf7adfaa0	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xf7af199a	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xf7ba815d	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xf7c3a20b	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xf7c87777	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xf7ea6311	qman_p_poll_dqrr
+EXPORT_SYMBOL	 vmlinux 0xf7f05c17	fman_port_use_kg_hash
+EXPORT_SYMBOL	 vmlinux 0xf7f62ffb	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xf806bf71	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf8143f85	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xf81a67ae	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xf8278dc1	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf83dbd7a	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf86117d8	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xf868c520	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf882fb9a	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf889ec90	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xf89cc592	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xf8acfb41	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0xf8b32841	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0xf8b6573e	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8dfcf97	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0xf8e168fb	rpmh_flush
+EXPORT_SYMBOL	 vmlinux 0xf8ed0669	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf90c9058	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf91b89ab	fman_sp_build_buffer_struct
+EXPORT_SYMBOL	 vmlinux 0xf92025b6	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xf9267042	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xf9279322	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0xf92bb722	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf944f74f	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xf95c619b	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf97ffd20	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xf9916cbd	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xf998b26b	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9a50ec4	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xf9a626d8	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9d392dd	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0xf9d4a869	km_query
+EXPORT_SYMBOL	 vmlinux 0xf9ed7ba4	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xf9fed136	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa2cbc51	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xfa36a233	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa42e064	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa6764d3	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfaa5c122	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfacca95b	of_root
+EXPORT_SYMBOL	 vmlinux 0xfaf60cd2	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xfb0766ba	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xfb07d99c	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0xfb1327c5	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xfb1e880b	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xfb2168a7	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb3d8c3f	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xfb45f2ad	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb48ad7a	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0xfb4d486e	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xfb602580	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb612b92	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0xfb685d23	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfb78d69a	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0xfb806822	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xfb81f3ff	module_put
+EXPORT_SYMBOL	 vmlinux 0xfb880c2e	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xfba1b471	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaa2c1c	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbac9b0f	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb0080b	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0xfbb01d54	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe4b175	qman_create_cgr
+EXPORT_SYMBOL	 vmlinux 0xfbe5ca6e	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfbf4b76d	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xfc2fb7c9	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc4888bf	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xfc52abc7	qcom_scm_pas_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc62d4e8	fman_register_intr
+EXPORT_SYMBOL	 vmlinux 0xfc65d22b	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xfc706cd2	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc881b89	fman_port_get_hash_result_offset
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc90a066	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xfcb5c263	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcc53884	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0xfcce4f10	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd162da5	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0xfd253912	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xfd2ffc5f	user_revoke
+EXPORT_SYMBOL	 vmlinux 0xfd38e2a1	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0xfd4731cd	skb_pull
+EXPORT_SYMBOL	 vmlinux 0xfd556b63	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xfd5edd21	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xfd636a9b	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xfd65c2e0	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd86ebdc	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xfd88df44	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfda74300	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfddd13a8	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe13dc9d	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe32bd31	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe4b0622	iommu_get_msi_cookie
+EXPORT_SYMBOL	 vmlinux 0xfe570ac6	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0xfe578f49	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xfe5ce64a	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe5ec349	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xfe77cece	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0xfe83aa60	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfea7b9cc	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfec175bb	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfedd3446	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0xfee950ed	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfeec7f53	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff11b557	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff62ea2b	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff7eb17c	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff8fb0c3	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffb41abf	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffbb5b66	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xffddc5d2	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xffea2ce6	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfffd9d96	inet_register_protosw
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x19386c86	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1b67cb0c	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1d196c22	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2dff2f01	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3120799d	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x38c87246	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x42f4ab12	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5888ac3c	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x593ce5c1	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5fa3deed	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7a7bbed1	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7ac21884	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8aeca0e0	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa78ad664	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa895ff06	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd59cab3d	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdd2b7fb8	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe55ac33d	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xc41c2ff1	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x0632ad62	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x5a704ed8	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x78e43bf4	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x7db72930	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xdee5e128	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x4b8cd842	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x622808ac	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x843a5698	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xf36e54b0	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x5838fa34	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xac2e62fd	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xb5d2e5e8	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x07d5a13a	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xd117e7f5	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/chacha_generic 0x1883b596	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x6c49d0e4	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x6f62be55	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x807e09b3	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x004a9e6c	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x087e3dc4	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x239c1e16	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3b505c1d	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x5b3a1ea8	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x69744338	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x876585f4	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8cf1959c	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x95dc1f5a	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x971a0022	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x97f071f9	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa16429cc	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe9eaf7e3	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0d62d564	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x109cfa3d	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x24071ece	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2517d223	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2579e942	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4a8dd22d	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4db06444	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x54268e63	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6ffd0746	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7c654f6b	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xaf8565a3	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc81cf6b0	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe6452891	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf16919ec	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x33b6da30	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xa727fad2	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xd8d02ef6	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xeef19293	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x9f2c1b92	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xb914c94d	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xe216646c	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xf17a5a2d	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x01595444	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x8f654764	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xe00bba79	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x8b912de9	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x06786b83	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x2b272ad0	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x4639bcda	acpi_nfit_shutdown
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x485a450c	__acpi_nfit_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x499bbf57	nfit_get_smbios_id
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x5c265a95	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x64a944fa	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x495cd819	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0xd43b6194	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0x124bed97	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x82e4220c	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x940c5e0c	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x2504e0b9	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xc688fd41	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xab1fcbd6	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xc88dd74c	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xce099fff	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xdeb077b9	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x43851698	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xa5997e44	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x10ab85f2	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x14759d7e	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x16d541d9	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1ff2454e	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2685fb30	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x28111337	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x34ab5d64	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x382e8038	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x44e69059	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x49d636cb	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4ac3d066	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4df8ef51	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x55ea7d8c	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x638f97e1	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6730920c	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x768c0c17	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8f1e758b	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x94bb0337	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9cefcaef	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xaaecc886	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xae352ce5	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe1ecf63f	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe2534bf4	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe3ba42f3	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x31fdd86a	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3fa32fbf	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x43f36650	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x56fdacc4	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x86c1aec4	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xf1aa95ca	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x016475b3	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0bfa3531	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1d2ea102	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x228d3864	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2776f748	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2b8d04ec	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x38365603	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4a745b3b	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x64bb5ac5	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x7b990bae	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8e693ed2	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa913107b	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xaea0a8dc	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd7c52ade	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd860949e	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xdf9e1933	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xed4a4386	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0cd58a67	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x18a87efc	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3374a24f	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3ff9e912	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x46b32500	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x483942f7	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x48ee1769	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x5b4840fb	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x93ac200f	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb3c3899f	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xeeaa8c74	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x13099284	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x5b361bfa	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x5b6a3bd3	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x62ea44b6	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x9b983641	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x111ba711	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x90e59037	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xc7ab9f56	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xf8e9deaf	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xffd7f479	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x11460ae5	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x5e27b5fe	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xb2d58edd	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xbd4c3795	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x0af604c8	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x78197a24	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x971518c1	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xb80e6f25	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xc12e6ac3	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/sunxi-rsb 0x3dc92d1b	__devm_regmap_init_sunxi_rsb
+EXPORT_SYMBOL_GPL	 drivers/bus/sunxi-rsb 0x852f1bff	sunxi_rsb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0x4c8aa0d8	meson_clk_triphase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0xa8c11bfe	meson_clk_phase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/sclk-div 0x9b54bd6e	meson_sclk_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x00d9e064	clk_edp_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x04bf3163	clk_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0650a0db	clk_regmap_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x065574e3	clk_rcg_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x09235977	devm_clk_register_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0ac38699	clk_trion_fixed_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0af56a40	qcom_cc_map
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0cabeb2a	clk_ops_hfpll
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0d678ab9	qcom_reset_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x12ac7e1e	clk_alpha_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x1ed919be	clk_rcg_esc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x205a2ef5	clk_branch2_aon_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2d89517e	clk_branch2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x331ac7b8	qcom_cc_probe_by_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x33e55c5b	clk_alpha_pll_huayra_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x395868a1	qcom_find_freq_floor
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x40e5accd	clk_byte_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x428b605a	clk_pll_sr2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x46e37d43	clk_rcg2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ad24f3b	clk_alpha_pll_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4cc181fc	qcom_cc_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x51fb21a3	clk_pll_configure_sr_hpm_lp
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x524628c8	clk_rcg2_floor_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x5d5f07eb	clk_regmap_mux_closest_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x64447760	clk_enable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x653458b6	qcom_cc_register_rcg_dfs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x66489e5b	clk_rcg_lcc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x667aca03	qcom_cc_really_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6af41b8b	qcom_pll_set_fsm_mode
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6ca8a88d	clk_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x73f8eedb	clk_rcg2_shared_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7404b809	clk_rcg_bypass2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7708b673	clk_pll_vote_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x787e8234	qcom_find_freq
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x81ec30bf	clk_alpha_pll_postdiv_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8212480f	qcom_cc_register_board_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8218c7e1	clk_byte2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8cb1c5b3	clk_fabia_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x911def65	clk_alpha_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x927d652b	qcom_cc_register_sleep_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x951258d4	clk_alpha_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x99f60998	clk_disable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9cb32992	clk_pll_configure_sr
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1839eaf	clk_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa821f919	clk_branch_simple_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xbbe74972	clk_alpha_pll_hwfsm_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc78100cd	clk_dyn_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xccc2b431	clk_trion_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcce7e449	mux_div_set_src_div
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd8fc3e8e	qcom_find_src_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda15b634	clk_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda35a32d	clk_gfx3d_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda967930	clk_alpha_pll_fixed_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdb687f64	clk_branch_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdf674942	clk_alpha_pll_postdiv_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe3b34b5b	clk_regmap_div_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe5bc1f18	clk_rcg_bypass_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xef6a0edc	clk_alpha_pll_regs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf196beb5	clk_regmap_mux_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x03d3a7af	sprd_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x0b579624	sprd_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x20e969aa	sprd_sc_gate_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x3005c034	sprd_mux_helper_get_parent
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x32e68ffc	sprd_div_helper_set_rate
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x4d9bff88	sprd_gate_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x4f90f66d	sprd_clk_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x5be88ca4	sprd_div_helper_round_rate
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x67deac3a	sprd_mux_helper_set_parent
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x86e82b4e	sprd_mux_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0xa4a0f683	sprd_comp_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0xe902b8ee	sprd_clk_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0xfc3762c1	sprd_div_helper_recalc_rate
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x12ad51f4	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x22254025	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x2ed04019	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x37b3bff7	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x45c3caf7	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x540a77b4	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x804736c5	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x834ec949	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb43e7b86	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbe795278	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xcb941b21	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe855f8e3	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf979cd0c	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3d4e7e6f	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x1980c928	hisi_qm_debug_regs_clear
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x1f528e9d	hisi_qm_hw_error_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x253120bc	hisi_qm_get_hw_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x29291230	hisi_qm_get_vft
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x2e52dea1	hisi_qm_set_vft
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x3927d382	hisi_acc_free_sgl_pool
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x4e998658	hisi_qm_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x4fe34f3f	hisi_qm_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x72d2eed6	hisi_qm_hw_error_handle
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x7cdf45b3	hisi_qm_uninit
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x90f17877	hisi_qm_start
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x9c2d114d	hisi_acc_sg_buf_map_to_hw_sgl
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xa030a3ad	hisi_qm_stop_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xaa90f992	hisi_qm_release_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xc579f9ec	hisi_acc_sg_buf_unmap
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xca37a1c6	hisi_qm_get_free_qp_num
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xd271ec9b	hisi_qp_send
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xdc127010	hisi_qm_start_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xe18a108c	hisi_qm_debug_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xeb9ec794	hisi_qm_create_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xecbecdd2	hisi_acc_create_sgl_pool
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0xdca9d347	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x0547947e	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x159503bd	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x16b88131	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x43324d76	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x81c59209	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb3679f57	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xc2f7636e	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xcaf22bae	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xe267ee23	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x2937aa6c	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x45f0bc5b	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x5dfe303b	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x66e63363	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7b18b34c	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x800b0a04	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x891850cb	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x9916d5d9	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x9d8c5497	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa1cfde8b	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa6d1b23f	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xbc18bd91	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xcbb12e7e	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xe0c7e4c6	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xe50b6b82	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xfebec485	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x1f6e9484	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x2c50bc47	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0x74c59ec9	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x0e7b7015	stratix10_svc_done
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x41d5ad1c	stratix10_svc_allocate_memory
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x50f5368a	stratix10_svc_free_channel
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x595b630e	stratix10_svc_free_memory
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0xd3df684d	stratix10_svc_send
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0xf592f5fe	stratix10_svc_request_channel_byname
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x61617108	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xf0b55d80	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x190531a1	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x1efbd30c	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x2267d5be	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x27c925cf	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x30186779	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x426f12e8	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x47874ea2	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x61f83352	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa23f3542	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa61c499c	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb85ae8f2	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbb6d40c7	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbc33ebc5	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbe7de018	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc4866021	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xca913307	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd715e4af	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe1535669	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe8958c0b	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x13e14539	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c9f1fe2	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x601d7b26	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x7071b7f2	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8d91829e	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x93edc375	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x959109f1	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x9911ac53	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xba721d81	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xbf30f106	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf6309450	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf9769c7e	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x1291084c	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x20800af8	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4a62e14a	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x66da99c8	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x69042cb1	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6e3c7f01	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x726da1f1	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x78a84da6	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9823b696	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xcd00f153	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd47a2c01	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd8f867bf	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xeaf03f90	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x8ac1c96d	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x9b4c5d4f	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xa470cb96	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xa6c6f5e7	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xd6bc8d6f	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xd8748770	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xd8eab0a4	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x1d6c8731	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x211de9a0	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x523735cf	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x58fa95a6	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x777d15c1	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x78060f23	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x95a2ced3	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc20faa8f	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc6dd4ac4	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd942f235	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe27d8341	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe73998ca	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x2b5a1d60	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x2f269ea3	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x41f7f8ab	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x50b428ed	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x6f2de99b	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xe4c51bbf	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xf05edcb8	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xfc61c231	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x07b3c5ea	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x69471dc6	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x9dfdf79e	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xad0ce00b	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xde6f8ee3	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x6c75c839	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xc00e9f2c	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x160aa95e	analogix_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x179c7a00	analogix_dp_suspend
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x5b1bb4d3	analogix_dp_stop_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x605bf4f1	analogix_dp_start_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x703b7dcb	analogix_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xa6bb6d00	analogix_dp_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xeb107e23	analogix_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xf0cd92fc	analogix_dp_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 0x157e02b6	dw_hdmi_phy_reset
+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 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 0x5d4b322d	dw_hdmi_probe
+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 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+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 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xc0eb4ec6	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+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 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204	dw_mipi_dsi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x41361ae4	dw_mipi_dsi_set_slave
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x42ac3b2e	dw_mipi_dsi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x4a3c8602	dw_mipi_dsi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0xf9ddca1e	dw_mipi_dsi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x09291933	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x18c2374a	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x23f4b9f5	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x23f5848f	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x387d1b9d	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x455aca0b	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x47340a8b	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4eee7799	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x52fdc3aa	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x545e24f4	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5668e76f	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x56f42571	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6225754f	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6819e952	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6ae891b3	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6e6589df	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x74ce57d6	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7c2a5919	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7d8c6f03	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8ecde52f	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x99b2ac5a	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9ad83c9e	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9fd70ad5	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa036765b	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc7d5c00c	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xcca59679	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdbe3cdb6	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe9b57b7a	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfb5c888a	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2756af72	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x4986c9dc	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x50a072cb	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x806958ad	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x90dabf80	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xeee1d466	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf1dcef4e	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2b36798a	meson_venc_hdmi_supported_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2c73cfcf	meson_venc_hdmi_venc_repeat
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7ab6a4b5	meson_venc_hdmi_mode_set
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7da21708	meson_vclk_vic_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xab5bee2f	meson_venc_hdmi_supported_vic
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xadb70451	meson_vclk_dmt_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xd146b863	meson_vclk_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0xde000bc6	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x45800bad	rcar_lvds_clk_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x7435a77f	rcar_lvds_dual_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xa67682fa	rcar_lvds_clk_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x0965ce0b	rockchip_rgb_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xb2433a74	vop_component_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585	rockchip_rgb_fini
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x0a1496eb	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x16bdb2ab	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xfc8b368b	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x07520fb6	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x07afeb75	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1a14ebf7	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1ff3bbfe	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2b31967b	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x301af33f	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3f8a9454	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x434487f6	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4dddda42	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x54f33024	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56b84a02	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x58b4f2af	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x58cc30ab	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x667406ff	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8529d86f	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8a5e54a6	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8f3873ea	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x980937bc	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9824e1be	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9a7eb473	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb18be80e	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbc6693c1	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc00238f5	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc00d62b7	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc0394608	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc54208ba	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc5be2039	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xce5b73ba	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd10503f6	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd76eb42a	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdb20a19f	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdb20ec49	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xde18c179	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdf5ef9fd	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe4108562	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe94ed9c4	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xffb02629	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0d18a162	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1322ad3b	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x18675165	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1c37c96d	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x224f6884	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x278091cc	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2c00b15c	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2cfbc9ea	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3b2d9972	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3b651d2a	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3c600cea	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x45b9bedb	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x49994f57	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4e5dbb92	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5631dfbf	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x58e42b0f	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x61b21eab	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x628a0ea6	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x73705885	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7740c830	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8ac667f2	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8c8e801a	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8c90c634	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x904f2caf	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9123949f	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x91a06774	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x998c3bde	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9b567a17	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9ea172ba	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa5d9dbc7	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb1385d88	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb1b21046	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb21ed91e	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb329511a	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc4c2a512	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc92cf21e	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcb76e2eb	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd000a4d9	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe5654b98	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe6e0da20	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xeb60754e	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf1910e32	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf634cc8f	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfb3283bc	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xfc706756	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x399e3b29	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xa36c7708	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xc0f9b0e5	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xdd44dd32	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xf7a30b7a	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xffa6ef4a	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x177f55e0	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x184d4fff	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x36dd15f6	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x81bba37a	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe54d71a3	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe99ed846	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe9bbc168	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf723978b	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xfaeae37d	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xdf1f145c	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x456b419b	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x55570ae4	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xd2d99dae	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0b566770	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x32d209a0	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x4c5607d8	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5f973ca8	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x61a14ee4	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6bf2fe31	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8dbbe3de	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8e45b3f7	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb14761c0	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc51a2026	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd3c3aa19	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdcf9cd55	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdd6c0f0c	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe2da7454	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xee9e9d6d	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xef5e58a2	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf4fe1a6d	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf5d2a225	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x2bf56bbd	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x3806a5ef	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x6abb07aa	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0ff67276	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x29fb0d41	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3b5658fc	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3f78b5c1	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x444c37ea	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x52b54433	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6230f7da	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6a4aaf75	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6dbc6e65	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x71fa2048	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x8fe3cf72	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9f71a99d	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa328bac4	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa9c5eaab	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xbe4409bb	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc7499e0f	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe43cbd94	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe4968380	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xecb52328	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x38955684	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x77ef0505	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x801975b2	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x84f52424	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x89dbac73	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x960409e6	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd8e03e42	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xe0d4390a	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xe7eebc94	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x6c687ae2	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x826d7415	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xdb7e16c9	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x151ee3c6	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x1bc00bc1	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x2651a2df	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x4e7008d4	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x68fd8903	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x8f223dd3	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x946f2ac1	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xce1ebe41	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf0801cd9	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x446fd7ca	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x7918e4b3	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xc8cc8058	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xe4da5d59	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x94e22f1e	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x16a5610a	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x16c579e1	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2237f726	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2b1e76cd	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2d2bba1d	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x371acb02	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3c081b5a	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x459f1f48	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x475a3941	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x533df799	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6b29f470	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6e8a8560	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x73415c63	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x89bcd034	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8d8390b7	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x91a3bce2	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa4960c11	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc861a82f	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xce3aff2e	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe0119a18	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe0cc1d2c	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe2a858ad	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe50fd3a2	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xef7c0000	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf7a8e8de	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x903a3f00	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xd70d495a	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x3b993efa	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x64044020	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x8083d594	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xa69fd9bc	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xac23ea00	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xde7ce65a	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe12d5cbf	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xb1423eb4	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xe8e3ccac	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x0e05b92b	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x18c4cb32	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x216519e7	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3e49ff05	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x499745d6	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x4c06177b	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x65323018	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7f91bdbf	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x8662dc41	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd88a0975	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x17fdde17	iio_channel_cb_get_iio_dev
+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 0x4d5fa1bc	iio_channel_get_all_cb
+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 0xb8e37573	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x0e179d20	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x8b2a5f0e	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-hw-consumer 0xd318a6dd	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xcebb9e59	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xdb410da0	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x9f24b0a8	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x1b91d703	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x25138deb	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x41d4653c	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6bbc01a6	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x921dbf47	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x985521f3	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xc933acc2	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xca7a0b04	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xceed26ea	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x1eebaa98	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xb62dc7b8	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xa757085e	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xd1024c70	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x309b7272	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x3dd620f9	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x8aa52eff	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x5f82e987	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x62e39c15	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x69ffcb45	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0572bb7c	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x1f14e413	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x26c0361f	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x2fe6068b	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x7f2adb9c	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb452a427	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb4615f68	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc2e2f6b9	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc60d92c4	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xcecb6b6c	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xd8aa7c65	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf84a6570	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xb3f0ffee	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x79202dfa	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xe070147f	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xf0b7d887	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x04a2d0f9	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x052ffdf3	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0f573152	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x10a91096	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x141231de	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x16af74f7	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1c311779	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x25399436	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26365b29	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x279947a5	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2c8d8791	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x30f07a92	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3506b87a	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3a081ee3	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3c4ccdd0	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3c53f9e1	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3d736fec	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x41c218e4	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x450a67c7	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4871e470	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5d3ac94c	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5ec110bc	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x602dd6dd	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x614cfd84	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x63f8c0d2	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6c0dae93	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x71edb34a	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7205fe8b	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8096be73	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8ace24fc	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x925f5cca	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x935543ff	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9cb0508c	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9f1293ac	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa04e3ffa	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa9ebc31d	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab2a635d	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab6224e2	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xad421e91	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc489bdb8	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd12157ad	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd612599f	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd6430c3b	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd8a934cc	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd8ac43e8	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe4ed2a29	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe9ee3fda	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xed50a37b	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xee404591	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf5907eb7	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x2193e7da	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0xca4b25f2	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x17224920	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x31927837	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x38a000e4	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x5f9f36ac	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xb7988e90	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd57b1d32	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x918bba8c	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x8b9506c5	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xac567fb8	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x03f982a8	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0e235e23	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x358d2929	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x44a95940	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4bf0ea45	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6c3e653a	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7d6deb5c	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8d983d9c	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9710bc21	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xa5307877	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xd197bf7d	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe853b5e6	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe968c053	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x084e909f	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x181afea1	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x39744300	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x9659f2bf	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xc2a1fcdb	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x22a6a11b	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x9f70c8e2	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x02042535	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x1b8827b0	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x341b36df	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xa182d0a7	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x05f2b24b	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x097c32db	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1237ef2c	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x36859034	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x46002daa	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5bbe30f0	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x77bffa8f	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8167b4d3	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x83eba127	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x9714306e	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xa99eccb7	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf5b28fa9	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x3389da00	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x3bdcc540	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4140294c	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7642b3b7	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x8d274362	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x91551d7a	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xcf84b8a7	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd1c64330	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf44fc589	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf9beb7ac	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0x81e513ad	qcom_icc_rpm_smd_available
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0xe8dbdc6c	qcom_icc_rpm_smd_send
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0d216aa0	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x2dcf54de	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x2f0fadcb	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x317acfb4	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3a3bdb12	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x418aaf15	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x758a67b7	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x9d156133	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xd51228a2	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x55bf6b14	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xa5560a5b	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xad06d96c	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xc83bd2e1	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xc85866a8	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xec976753	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x17403107	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x3f8112c9	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x48c1358d	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xbd7f7506	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc8c521b8	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xcb623d83	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xcd8288bb	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xd1755caa	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xd4106de1	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe12a4cd2	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf2ceb7de	lp55xx_unregister_leds
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1d39d832	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x2f308ce7	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x36c7047f	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3bed19c5	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x4fb453f8	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x548970cb	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x5b11e097	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6786e34f	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xa4609f4a	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xa5aeb0ff	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xced8499a	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd94b477b	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe8bd62fd	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xff90f120	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0aabe037	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x12f2dc64	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1e3cbe97	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x41800865	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x49b35a0d	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x5dbe7f2b	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x63e37207	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6cd8b72a	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x712fa5b3	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x83d2a4ce	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x85259826	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8e28f147	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9623a01e	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_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 0xbbb88329	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdadd9172	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdc56d828	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xde325e7e	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x777c3da5	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0c3d932d	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x45584b55	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+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 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x23cd97bf	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x5eb35d33	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 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 0x5535e202	dm_rh_mark_nosync
+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 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 0x884ea5ba	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x93b3319a	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd6b74e35	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xecfc0ad2	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf53b60c1	dm_rh_inc_pending
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf440870f	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x0d5d38a4	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x3418e069	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x71061b46	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x866a4cc0	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9cbc989b	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa92526a1	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xae5add6c	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc6f25b04	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xca6aa09d	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe88f2ae4	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x06589c43	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2819ff52	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x38956a2a	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x48382905	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x5bf39d4d	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x9b496fba	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xbb9ee16d	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0db5fb4e	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x24ef6ae4	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x365829e3	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x408523be	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x47dc6ade	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4996b305	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x552be76d	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x69857988	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6d0e7bd1	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x72d87ff7	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x76a062d9	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7b37eae2	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x82bdfa68	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x855be773	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbd9a18a0	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc3203549	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xdc346903	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x09e386c4	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x24ce9106	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3174f891	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x37850dd2	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x38a8b0f5	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4645de2c	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4d647e52	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4e0d4b1f	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4efbbd97	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5c4ebbe8	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x63ba1cb9	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x71cc4006	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x804fee3a	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x832240d0	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8b85d227	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x939af137	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x96a145f7	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x993fc694	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa62cb589	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa6a8cc45	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa907feb8	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xbad4d4c3	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc5ebe0b7	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe49c661d	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf37c93fe	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x75aa73be	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xaf769d3d	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xbf57485a	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x6c2562e1	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xa5180d35	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0d5afe21	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0e8cd8ae	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x14247584	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1a3b902c	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1a698f41	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x20dd9202	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x241d824f	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x269ea28d	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x49bb75fc	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4fb91ec5	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x66931afd	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x684bde66	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6cb3f782	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6d541959	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6f9c6a92	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x81829469	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x81ffb4f7	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8fce0739	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x998efaba	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9d148170	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa08fe59e	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa64123c9	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa8c07ebb	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa9fbd00f	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xaa523a2d	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xaee7228f	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xafc7f8a4	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc86f192a	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd509f583	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xebd99f4d	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf69b449b	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0xaebc8db1	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xa2eefedc	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xac76e78e	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xbaf4a9af	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x81f75aa2	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0xba3db7f6	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x8c6edda5	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0xe5e18795	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x4030f271	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x46f5d0d7	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0x7387ca5d	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x4ae12f49	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0xdb1f3aed	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x07426507	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1bcd342c	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1bef762a	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1d4cc60f	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x234f1455	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x35c95c0d	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x47bde33e	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4ee70ba9	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4f530dd2	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x60081f5c	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x68b9daa1	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6dc5af57	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6edb7248	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x70bb2946	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x766ed460	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x77a5c0df	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x78b20896	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7a51e824	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8246a6be	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8272777e	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x82c18b8e	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8993c8bd	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8a031d74	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8b78920b	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x929e4f3d	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x993d8f10	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xab0d9d2b	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xac810279	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xadcc9d5d	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb1534805	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbbbf1739	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbca8ee87	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbdb948c3	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbde53c90	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xca08cf5a	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcdee11f2	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd5dd7ea3	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd95dd64e	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe190387f	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe488cb25	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee604fbd	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf1d43430	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf38d5e65	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4f85e2c	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf7cd8eb9	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfa122488	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xffafa508	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0acb1d4f	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x11fdbb76	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x197f0438	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x287d3128	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2b8da970	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x33645499	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x487add38	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x509320d1	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5d53c916	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x62307254	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x64a01888	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x72a21263	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x9d55ab53	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xa9240cb6	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xa9a7c9b3	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb74d62ef	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xbd5a77ca	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xca8ad052	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd2632dbb	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x02f1df76	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x10c99ebd	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x24ab39d4	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x271a0352	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2bf8a381	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2d115373	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3d1f769c	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x47377f82	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x4c46562f	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x55948917	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x55d7d8d9	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x72654079	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x7d806175	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x860ba09a	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x88806629	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8952f22f	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb6ba00ba	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdba65d79	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf0d93031	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x202c5953	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x40381107	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x599ff483	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 0x848f10e4	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x9b189c10	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xc34576d5	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xdc13ccaa	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x8b9046c6	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x9af7d7bc	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xa9b090a7	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xbfa5b452	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xe725eb58	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x0f03b53e	vpu_get_venc_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x5cfde6ae	vpu_ipi_send
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x8f4cc059	vpu_mapping_dm_addr
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x930254fd	vpu_wdt_reg_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xce377996	vpu_get_plat_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xd59581ca	vpu_ipi_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xf6c03f0f	vpu_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xffb5c92b	vpu_get_vdec_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x01918760	hfi_session_destroy
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x0d55d5b4	venus_helper_vb2_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x1b72ee2e	venus_helper_free_dpb_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x25ad85cc	venus_helper_set_dyn_bufmode
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x25c2a617	venus_helper_process_initial_cap_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x27b12c5f	venus_helper_m2m_device_run
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x2862eb11	venus_helper_set_color_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x2d693ecb	venus_helper_m2m_job_abort
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x2db4f2e0	venus_helper_power_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x2e0bd94c	hfi_session_set_property
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x41dae028	venus_helper_set_output_resolution
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x435f293c	venus_helper_get_bufreq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x44b8c4b9	hfi_session_abort
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x4aebcbe9	venus_helper_unregister_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x52a765d2	hfi_session_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x530479e8	venus_helper_set_core_usage
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x54dc9f45	venus_helper_check_codec
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x59d3e327	venus_helper_init_instance
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x5b47d274	venus_helper_acquire_buf_ref
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x5efb5ddb	venus_helper_get_ts_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x608d4183	venus_helper_set_bufsize
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x635ee2fd	venus_helper_process_initial_out_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x660c94bd	venus_helper_alloc_dpb_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x6c97bf30	venus_helper_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x6d085caf	venus_helper_intbufs_free
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x6d3b11a6	hfi_session_get_property
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x7d40209d	venus_helper_set_raw_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x8a331b63	venus_helper_queue_dpb_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa05b1c43	venus_helper_get_opb_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa136ec8b	venus_helper_vb2_buf_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa529f1df	hfi_session_create
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa6c23a85	venus_helper_get_out_fmts
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xafd4ad83	venus_helper_set_multistream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xb5da1da9	venus_helper_get_framesz_raw
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xb9793c67	hfi_session_stop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xc184eae1	venus_helper_set_input_resolution
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xc409dfe9	venus_helper_set_num_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xc64fc98b	hfi_session_start
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xc925ce81	venus_helper_intbufs_realloc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xccbb12cc	venus_helper_set_work_mode
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xd05df161	venus_helper_vb2_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xd145c86c	hfi_session_process_buf
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xd21da2e4	venus_helper_get_framesz
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xe61828ec	venus_helper_vb2_buf_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xe81ef692	venus_helper_intbufs_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xeb5799af	hfi_session_unload_res
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xeb59eb2e	venus_helper_release_buf_ref
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xef9b6d3b	venus_helper_buffers_done
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xf064495f	venus_helper_load_scale_clocks
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xf3ff7fa3	venus_helper_find_buf
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xf4693029	hfi_session_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xf570e97f	hfi_session_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xff12bff4	hfi_session_continue
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x18697299	rcar_fcp_get_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3d858696	rcar_fcp_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x4ad5d888	rcar_fcp_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x5fe6f6e8	rcar_fcp_disable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9877c29f	rcar_fcp_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x05767694	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x0dc6a2f7	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5720d47a	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5ca8e565	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xa8830d7e	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xca647e0b	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x24133e64	vsp1_du_setup_lif
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x2a9be11e	vsp1_du_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x54be6659	vsp1_du_atomic_begin
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x5715e5bb	vsp1_du_atomic_update
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x68e0da82	vsp1_du_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x69a50b8c	vsp1_du_atomic_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xe3545b39	vsp1_du_map_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x10356c17	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x56d17f20	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x5e83b5b7	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x8051dae3	xvip_cleanup_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x8d38dd49	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x98221f1b	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x9ed2bb31	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x16813685	xvtc_of_get
+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 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x2b84a6fe	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x65a5959a	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x6bd43d45	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x7c0cd0bf	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xb1316b35	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xc5838f76	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xe32d9e6e	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b2681b1	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x26eee72c	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x3a63417e	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4685f209	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4f5c3fbb	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x523b1f65	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x5387b756	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6ada9433	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6f3f4fa5	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x83b00848	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x852e4dfa	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9226c9cb	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xabab25cd	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb1a0ee72	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd22bc385	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd2b56e3d	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd8ec2e05	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xeb70d3f3	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x5166c9e8	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x5d00ba8f	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x208abad0	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x8619f735	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x4281803c	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x9ebbba4d	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x204e7267	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x6f1381ed	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x63d02cc7	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x5b55bf9d	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xd2d35bbb	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xb36f3a17	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xdb120f7d	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x9325a52c	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0e1853ef	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x19817f99	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x25c532f3	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x44faa845	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6a9a379d	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x821721b4	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb370d679	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb4190f0d	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb5135d49	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb5fa7fb0	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb9db8799	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc32db07d	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc698c2f3	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcec9e837	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd5d049ad	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd678a6d9	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe0fb8ab7	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe1c70845	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xed61fce0	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xffae35f3	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xfb997a5d	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x96eb1a51	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x0e12799e	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x410a14e7	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4427110c	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4daf0f1a	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x54779ada	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x54c3e152	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x59655922	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5d53ac9d	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7cf481ed	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8989ec43	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa8829369	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbfef0a32	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd324669b	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xdd956598	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xddfab8fb	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xdf242031	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf4c8076c	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xfb273f4e	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x4d8b6eec	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x50fd23a2	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x922eea8b	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xf3939190	tm6000_set_audio_bitrate
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x185c6fd2	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x68c946d6	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xfcc83ef8	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x09f125e1	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3fc4ad9f	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x54724d2f	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x65298dcf	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7319fb05	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7e8b1436	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x83135137	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xa195e2a0	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xb07f6ae0	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd704647f	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x02aa206b	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0ec664ff	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x16ce10e8	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1845e1d1	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x21709516	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2677efe2	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2b6b428a	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3ceaa8c6	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x541a9c14	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x573a725e	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x57bc3b59	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x58b491b5	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6d29da10	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x743e04d9	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x798d537f	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7c7c1796	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x859cc1af	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x874732c6	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x87926e89	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x87c533c3	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8ee4f81d	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x971b3413	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa10e22f9	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa19e2e0a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa2f12dbc	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa543d26c	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xad6529b6	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb2120255	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbe3aed0d	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc1c30c2e	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc3b34fb9	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xee4b06f2	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xefbc23fb	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf6eaef19	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfbab9958	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x05f3be46	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0c8df0c3	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x105811b5	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1b5bc257	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1ebc80c6	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2e8f4096	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x425d0e1e	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4cee7501	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5442edbd	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5e300f99	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x60053318	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6789d597	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x708e60b6	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x810993e4	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x99d96d1a	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9ace9aaa	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9c941efe	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9e4d1a4e	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb761d63f	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xba1a2281	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc360af0b	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xce44b2b2	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe00aeaac	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf0f1664a	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x4074232c	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x6fbd3f7e	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x80540ea0	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xfe0de750	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x625dfbdf	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x6ffce2cc	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x7da7a790	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x012fbe87	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x182ce82e	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x20bd5b04	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x21087f2f	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x22c17925	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x244b1dd1	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x244b51d7	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x34444568	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x38a6dcc9	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3ab69cda	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3eab6233	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4a02dcc7	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4afb47b4	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4efc086e	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x514600e4	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x52156ca1	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x538e5cd4	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5391a474	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x57bc8355	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x57ded8de	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x597f7ff9	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5a3d7416	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5aadbb62	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5d097d4e	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7bdb6cf0	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x805ac200	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x87097232	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x890c8180	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8b402bea	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ce03ed2	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9f55d6c0	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa5d148fd	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa6343f10	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa7bc4419	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb1e88426	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb1fae147	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb6ae73be	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb6dc67d7	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xba5448e4	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc13ea55e	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc39f79d4	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc46e2b48	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc8b00f9e	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd097c165	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd15bd5dd	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd41c2957	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd45ec744	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdcc359f6	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe1566be7	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe395f0f9	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe63bf54b	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe69ce105	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xecbdf4ea	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfff90658	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xa374b6cb	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xb8376759	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xe88d2ff6	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x25004b86	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x3e83ad81	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x3f82ea97	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x4d0d2a56	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x9239c8c4	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xdde12b98	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xe022cc7a	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x0de1be5e	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x0f90ad25	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x42ba9995	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x9cc244ec	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xb79c874d	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbcec3975	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbe37ee92	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xf21f9569	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x4092828f	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x47d21531	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x4f96d718	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x558adafd	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x79f7ccf1	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x895dbf0b	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb5a8f9ab	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb7ef001f	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xd9c786c0	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xe8073879	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x62a498ce	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xce39b6a7	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xe35fa7c4	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0825f229	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x10f53c1d	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x23b0fc9a	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x248b2754	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x27252253	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2728fe13	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3e6d9f49	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x64103f5f	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x641de31f	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x65cf191e	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8474795b	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8479a51b	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9ca10eeb	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9cacd2ab	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaed39593	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaede49d3	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb3f562a6	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb3f8bee6	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbddbe0e7	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc7416457	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc74cb817	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdf9413e7	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdf99cfa7	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xede6889f	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xedeb54df	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf0c07faa	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf0cda3ea	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf290b06e	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x11d96230	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x3a6e9a05	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x68db244d	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x7ad4d125	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xe34aa2cc	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xe490aa38	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x1100bc0b	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x34423922	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x394208ed	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4a297f56	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x55ad7ddb	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5b7fbfc5	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x9fe9b6d4	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xc5dd9645	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xec09d815	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xed02bbc2	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xfb43ff45	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x1ba61ea5	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xb9371765	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x1a9f907e	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x82b3c092	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x92245c31	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x9af1abe5	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xba05724f	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x4019fb8f	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+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/si476x-core 0x023aac7a	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x09707e4f	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1543bd78	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x237e0c2f	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x31841491	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3f945bf8	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x499b68c5	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4bf2daf7	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4ce979f8	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x53744022	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x58c023d3	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5bd8efd8	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5cf9c51a	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x649bfd23	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x748bb0f2	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x751ec7cd	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x798f3eda	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x86a44758	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x88096290	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8b95d81c	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x971b57b1	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x97c678a6	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x98fa2402	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa00637d0	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xae2112ea	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc3029732	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc79c29ae	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd8834bdd	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe30956ab	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe45d9c8a	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe9bcc09f	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xecfe9a72	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xede6b740	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf0372147	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x00352758	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x2716683f	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x47e3768f	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x5df7cc84	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x8196d757	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x6015096e	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xd4d695b4	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x21828774	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x22eea6c0	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x52b83a01	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x9765f131	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x44cd613a	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x5a1c0c75	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x8d69d410	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0xd1308f26	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xa82a3aa9	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xb7fb3056	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xd643426b	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x6b5ab762	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x0a551484	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x32944551	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x49ae925f	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x5bc699f0	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x686a6b16	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x9a639ceb	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xb9caa819	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0fe1076d	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x165da32d	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2ac747a4	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x337b3095	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x47d249b6	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x54ceb281	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5639dc16	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5bb5ebec	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5d0a76fb	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x604d9f8c	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x74c875d8	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x78e65884	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x815baf99	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x88a5552e	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa19d191f	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xab463d47	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb4f29784	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb917b651	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbd6bf4ea	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbe497cf6	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe062cc9a	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe8e7e9da	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xebefb058	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf4a9f217	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x070a3b1a	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x11e45617	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x17ee56ab	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x39e590c8	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x66c53b63	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8d7e4f05	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8d844d28	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8d9c5c12	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9d574e46	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa21320a2	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb602c715	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc547f813	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xe4d16328	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x24324251	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x5001fe33	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x9188acc3	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x9743ec89	cb710_sg_dwiter_read_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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x0bc0e138	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x0dd3ca03	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3899f264	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3cf42ac6	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x94d967cb	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xe034c3e5	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xe0ca1007	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xfce24f55	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x24cd3eff	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x6f7031dd	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x79413b1c	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xb5e1df88	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xcd1d8cad	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xedaa62d5	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xf3ef737e	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xf6442871	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x48dff5d6	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x5296eed5	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xcede1223	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0xa471a246	renesas_sdhi_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0xeb1b5d4b	renesas_sdhi_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0da80a17	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x102a66a1	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1148f051	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1b0a9eaf	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x294a10ff	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3393775b	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x33fa722d	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3d222df9	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3e395184	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x436f08ce	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x44b2287c	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x48db308b	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4e19377f	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x526374f6	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x534e3fc9	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x58fd6e65	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x60e8d686	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x612c804a	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x658f4ca8	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x65d642b6	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6ed3d4f1	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x76b011e9	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7b5a0fe3	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x882f53d1	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x900d7a33	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x90a9862e	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9ab8ca4c	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xaa742491	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb7801914	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc375c342	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc508d2f5	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd0c1e301	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd267a0c8	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xde62fe87	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe9e2cbb0	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe9e599da	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf27fc974	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf87e1c9f	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfe93fdca	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x2238e9bd	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x3f4f30b0	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x684121ce	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x84634752	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb2c81030	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb5beec4b	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xc594312c	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xc61fa891	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xcdb836f0	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x487a3d0d	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x58496b44	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xa65542d3	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xaeeb68f8	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xbb1c5e5c	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xbd4cc024	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xfa832150	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xfb6f9c59	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xff583d0c	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x02a6b5bf	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x3d8f9057	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xc091b5c1	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x221b02a3	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x5c494973	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xd1e2cd25	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xb3dc6424	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x07613eef	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x23efeccc	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xc607d3c5	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x5b0caa92	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xf8e61cc2	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x03fe20da	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x100f7f4f	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x30517172	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x35215f49	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x395c502b	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3ab7e7ab	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3b66a1d2	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3fd668f7	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x40dab7eb	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x46ba8c89	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4912dc18	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4a10ce45	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5184a0dc	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x54c89c50	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x54f4e70f	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5b1b7b56	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5e406424	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5e6c4285	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5fa07c75	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5fda8a6e	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x61f46cb2	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6bf823db	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7222fbee	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x85e6c1d8	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x86e877d8	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x873ac86a	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x92d71473	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x977c81a3	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x98bb895b	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9d92cdb0	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9f55c91a	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9fe82ce7	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa0e843b5	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa2d08d25	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa5619d9d	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa625dba7	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xabcf6e0a	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xaf89273a	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xafcb7fc9	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb0628a3c	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb3705906	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb78b7bd6	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xca260ab9	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcd383d29	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd3106257	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xdaa9a712	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xdca6061d	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe24ec0ab	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe532416e	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe69ece9b	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe9bbf6f4	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf513c950	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfdfb05a9	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x28eb0239	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x424c84dd	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x518b6b50	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x695dc6ad	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x6a972528	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x0bc5409f	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x206fd6e0	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x212f81d0	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x24e7dea7	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x29174aef	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x37e3ea8d	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x4d900f62	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5443e918	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x693e9103	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x7a2697d5	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa2d2e6cc	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xba04aa60	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xc54995f7	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x0020eee9	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x7b0c98df	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x6d602982	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xbc2fac0f	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xf379296f	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x6a1a1519	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x217a68b0	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x364ec9e2	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x3aa8f824	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x42f2bf6e	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x51f4484c	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x618a6080	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x623ade40	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x647fce4d	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x65e36cec	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6964ae3d	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6c427df4	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x701309ed	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x72c61039	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x72f33875	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7bcad8ba	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x88b37e4a	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9753f952	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9c565783	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa0a2e411	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbe042c06	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc1008608	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc7f7ffd2	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd35ba12c	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe350fc1e	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf274edc2	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf996310f	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0xc01a67b4	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x4b751d5c	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x640679c0	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x17660e8f	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 0x56fb5872	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x68089dba	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6bdd2706	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7358e963	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85c820e0	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9688cdc8	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xa3c52ee0	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xbb307049	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xbe48da67	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xcaa064f8	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd61c5538	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf9dcc45f	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xfc081537	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x068d56ec	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x129bbdca	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x1d1a820e	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x1d1d02e7	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x23c2ddd8	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x2f6e5c19	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x619dea47	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x6d06bced	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x7619c9cb	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x9cbb0476	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xbfa241bb	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xe30943a7	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xebebc661	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x77e568a2	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x9cc7495a	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x5098c81e	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x654fa0f3	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x6d7d9d1b	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xdd48bd4e	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xeff29af3	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xfb36631f	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0cd5dbad	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1ad4adb2	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x29975bc7	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x2eaaa9cb	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x3c047fbc	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x3ddcf030	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x444d3d50	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x4c625b0d	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x64cd026c	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7e88a60f	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7ec4f26a	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9808d41c	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9b3c5c2f	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa9577153	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa9d9a575	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xacd245e8	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xb7b5d3af	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xbcbbab0b	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xbe941288	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc152fb7e	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc77c983d	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc9c5b476	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd7b66706	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xee84a7e5	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xefebf1d2	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf1588eb2	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xfc970020	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x216b0c7e	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x8c499988	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xce1f13c2	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xf3dfc1a7	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x000843a8	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x3d47c5c0	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4a4cfb8e	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x569b6daf	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x7962d1f0	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x84229402	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x8d8f4fb4	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc0815a93	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x8904c9f2	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xad0549a3	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xdaa9d79e	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xdd525879	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x6ae5bbb2	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x065fe007	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1b3f9d63	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x215c6409	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x2d91ec02	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x845f894e	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8f6393fc	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x90d78b43	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x99766ff6	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9a9f5440	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa7f08999	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa8588740	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa97858a7	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xb1ad4bcb	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdf7320ee	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe0a54eb8	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xed5400af	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xefa2b0d2	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x32a0e85b	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x345fc8c9	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4169e099	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x44f557a5	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x513419f3	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5ce1ba0f	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5d24b6e8	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x66516979	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6ad2c2fa	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x75cd4f59	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8298b7ae	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x82b47552	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x84079a35	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa490dd5f	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xbff04c8a	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xcd629fef	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x1b6df6e3	arc_emac_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x419f614a	arc_emac_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0225af38	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x065071cb	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06704b49	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06736b8e	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x095aa408	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d5cfe13	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13227f30	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x140ee9de	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14998e5f	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x151b57db	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x156eef54	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b5c0aa5	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c6a0d9a	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d02b472	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d8fb311	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f262ce9	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2350d9c8	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23f03fb3	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x273bf836	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27e6a8c7	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29fe37c6	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b27476d	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b4c9eba	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f9abdff	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31dbbbf7	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31fc6442	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32af0027	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36e3d640	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37055394	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3733b82b	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39d79b38	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3aa772e0	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b12bbb5	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3eceebd5	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ee9f418	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f3fe5de	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f8db29e	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f986851	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x400db8de	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x426ef27f	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4317f96a	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4714d4eb	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4769c6c7	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b04278f	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c1af3cc	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4efcf0f5	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5069e1e1	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54a94ed0	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58ea3a90	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b59202d	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5de6cd18	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60b5d6a7	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x613275d4	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6392e1c0	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x663ffc84	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x669a2cca	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x683ba21a	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b05684e	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c43a4ce	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x717807cc	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71c1eca2	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76116aa5	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77f3bcab	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78380ebd	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7862545d	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cf03e51	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d4cc349	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7edb7d42	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x879562e0	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89ce2860	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cffaa31	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d510a4a	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8da063fa	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90447339	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9285601f	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x940f2282	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97174a95	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98f9a690	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a4d15fb	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b19fa14	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ccaf9d1	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e1aa35f	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1bdf545	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1f2b14d	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2ce5f12	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa61cf05b	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa68dd1eb	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa748769c	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa955e123	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab23c5d4	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabbc1625	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad83569b	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae688977	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb140646d	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb14aa29c	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb21e9a69	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3236235	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb51b3c69	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc506360	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe73b5c2	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbfb87cbb	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc214b19f	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc60ef006	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc895a83c	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc605b9f	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0652cb5	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0774390	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0c74711	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd10485a1	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1624753	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1656550	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd31990f3	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7b8b881	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8682f43	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdda4bf1d	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddb58973	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1604263	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2306fe3	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6c256be	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9bddcc3	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeaaa29a4	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef440378	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef65a53f	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf033bdcd	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf58e0c62	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcb5c3b7	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0042c5b2	mlx5_nic_vport_unaffiliate_multiport
+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 0x083aaed5	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a5fcc27	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e8ee6a8	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11ac96b7	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1626b782	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e3c2345	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20a2c8b1	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23f8f9f5	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24d6c0dc	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cdae81d	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d5ddb50	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e1d6046	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33043497	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4462f32a	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44ac32ff	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45702c02	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x487cb0f0	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4adbbb42	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d4d3450	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f2da159	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f748e03	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x506943b9	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x516c81a2	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5724449b	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57407da7	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bda8469	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bec52ce	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d802df2	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5efc54f0	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60c890c9	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61b2fdce	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62d790da	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65a380b2	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66818db0	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67e04be1	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x688cfd59	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c4715bd	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c9d5a37	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6cb3dfe3	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7612c10d	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ad64978	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cf288fa	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7db95870	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b119388	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b48b6d1	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eb06c99	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x907760fa	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9098f810	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96ce39da	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b6d891f	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa356ef76	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6f5bee4	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7f1db19	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa88ef5e9	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabe0aed4	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaeceb6c1	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf870688	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xafc4fb5c	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb46fe3f4	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4d6b6d3	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb854fdf9	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe0c23c7	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0f14114	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4eabd24	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6f7c7b0	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc727312b	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb13bb3d	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc1abb86	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xccfc25a7	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0186fe8	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd154c15f	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1a092d5	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd701a57b	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb70964a	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf417583	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe530607b	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8adf13d	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb4b8187	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebe5b5f6	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec97e5dd	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee34c6ed	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfaff340f	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe85a558	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff1dfff3	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x950383e8	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/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 0x4ecb769e	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xe72df6e6	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xeceab9aa	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xf85bce9f	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x9ea7749c	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xa04fec9c	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xce3f88cb	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xcf4f28d4	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xfeda4b23	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x1a496e66	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x2104a726	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x347d6772	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x759fe8b8	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x7df10ad3	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x1c69df03	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x67d50487	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x686a837e	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xc4eb3060	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xf4c8e299	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x368fe92e	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x76dd7a8b	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xdc335da7	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xeaba6ec1	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x67439eaa	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x777d4a9f	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x05769003	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x0e4f3216	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x12aa9026	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x142f2cc8	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2b327e98	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3b9a6444	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x58580b65	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5985a3a5	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x637480ca	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x64a71236	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7156b3fc	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x89d3076e	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x92d604ee	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc291372a	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xcc95fb8c	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd9e0b1c9	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xdb1fb4f2	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe9f6ac93	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x7a5026e5	mdio_i2c_alloc
+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 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6ff95107	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x723bbe0e	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x847b4f11	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x904e377c	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x17ab024c	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x522ab4b9	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xa4ccd6e9	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xbf413d1a	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc1489093	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc1e03843	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xcd2c6df1	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xeff23d0d	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xffab6e3a	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x0de61720	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x1b2dbe37	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x678d8c9a	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xe5f88b6a	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xf1ed5096	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x0606d99f	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x0af4913a	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x2ca87cd4	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x6a607c0c	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7a7b4b4d	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7f55d077	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x870aa6fa	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd21f306a	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd6f70c5f	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x0d66df06	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x4707d51f	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x696e69af	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x75eadb87	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x8580b0cc	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xff910814	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x03cb3f29	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x05477042	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x08ba525e	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1169be1c	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1620a366	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x16ee492e	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x187000d6	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1b232e15	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5211b69b	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x558dc0fb	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x579c206c	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6f5f839f	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x737edf3c	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x87ce17d4	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9301c4ec	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9364e03e	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9771955e	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x993f6dc3	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x994af6ae	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9cb8f4a3	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaa7cf7c6	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb6fa361c	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc01bed34	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc369c94c	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc5605013	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd15a0338	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd3a6a5fa	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd98bd9ae	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdb9673b2	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe8682a25	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf4c61eed	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf853e85e	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xff5c947a	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xc068cec2	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xe0c486da	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xe1856072	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xeeab7d91	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x004ddb72	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x061883f4	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0fdfcfd7	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x24a84f99	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x2cecd045	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3728d89b	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x553a1363	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x59325720	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x618fd40a	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6ea39ec1	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7d2043fc	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x811614a7	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x998d38e8	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xbc13c4df	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xca0c828e	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xef4aecd6	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd859ca33	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x012c9398	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x03351349	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e93482c	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1f676651	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x331663ae	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x09042f79	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0b445d8b	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0c3c9939	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x114e6346	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x115c8ee0	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x14efaf05	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x155e9e5b	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x194ea6fe	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1d9720bc	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ea64fd9	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20c2fff1	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2159c4d0	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x32d9ae37	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x38f04061	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3905ff77	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3bc4c998	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3e0fa607	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x40012b2b	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x458d438c	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x478b926c	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x47e5a760	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4acf693f	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4b9f1751	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4d3ac194	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4d91d3eb	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x53fcd32a	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x580f8486	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5be9effb	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5f8fcd36	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x64bb47df	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x65f2a7f9	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6c65259f	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6d2f5b2b	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x718f266c	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7752f16a	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x78760df3	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7af6b02d	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x86931751	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x88960512	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x92de82c3	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x95b902e0	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9b51823c	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb27915aa	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb361bffe	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb4f7b4aa	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb8488a80	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbb53ae3a	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbd2db0e4	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbdc222ad	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc0238d3b	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc2b765fa	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc9012d04	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcd0c6f6c	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd6303e9a	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd79951e5	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdd27fffd	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe53375f2	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xeed76ab3	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfa6c868c	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x0e1598ea	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x3a6bf849	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x74acbec6	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x9b93ef94	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xabb98b7b	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xb5149c02	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xeb874cca	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf1c2a883	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xfb8d7538	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x06942550	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0d9fb97e	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1ca82d31	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x35bdf375	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x69873a21	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x83dfee59	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x989e4c18	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa27ecf28	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb19e8d8d	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb9ed15b1	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xbea8ae76	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc608d64b	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc6e56863	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xdcca4bd0	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf6135e16	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfbdedeb4	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1bcae7f6	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x2eb97152	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x8df05965	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xb703c163	lbtf_add_card
+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 0xcb62cf85	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xd3c6c604	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xef36038e	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xfd3828ca	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0229cfec	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x04d8325a	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x09663e6a	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0f25bece	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x122b6c7a	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x140cf97f	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x16f149ce	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1e7ab0e8	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3ec6ed22	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x452afff5	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5106f17f	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x532636ff	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5dddbf5f	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6aae7467	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7620281f	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9f449972	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xaabaff3d	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xacd67659	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb2461082	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xba45cd67	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc14efb13	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc44d024c	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcfc118a9	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd241c131	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0a6ff6fd	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0d156bff	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0ed6e70e	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x11179f3d	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x11d95291	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x12a4e348	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x146dd06f	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x167cb3f6	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1dcfd97a	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1f0f210f	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2e1e69b1	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x33c51c01	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4199b055	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x465823db	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4a0e3ed0	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x57ce6147	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5b224dc8	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5d728e3a	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5f4e1cca	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x614cf9e9	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x62000afa	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6f133973	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6f9626f8	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6fb6f095	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7e7eebb4	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7f0bde62	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7f9a1ccd	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x85477200	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x871417cd	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x87e22e0b	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8a897139	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8c04c8a7	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8c18974a	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8f2718bf	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9572429f	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x97d066b6	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb1ae4340	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb7b79a1d	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb963eb7e	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbcf4145f	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbfc4792a	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc49bd51e	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcc3d2b8a	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd01eed8d	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd27a3598	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd6065d2c	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xda1dbe51	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xda395be2	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeab05628	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeb7899c0	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf400bfc9	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf9f6f9cb	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfbc3a096	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x1edc2dc2	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x554adde3	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x60fc356f	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x96560c61	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xd2ec66d5	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xd6e9db39	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xe22ec202	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xf098fae3	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x029820e5	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x0d2160fd	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x98fc7af4	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xce2d4f72	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd0fb3af0	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd77008d7	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe32daaec	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0dabc0ea	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0ede91fd	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x110cc4b5	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1120ee2c	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x11f7800b	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x14fa6eaa	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1bcce723	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2c4a3873	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x30f23016	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x34a2a0e6	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3eca3ba1	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4396b5cc	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48648edc	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x49ec3864	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4f80b6ae	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x529c7371	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x59bf2212	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x59d523db	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a20f7ca	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a8adf27	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d3b680d	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5f4ec247	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5ff02d69	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x65df3f19	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6673b1e6	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6848454c	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6f10cee1	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x707f4d03	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x73b98c5f	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7afa40e6	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8008e59d	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x814a9538	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8ea6a406	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x947c483e	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x99cc3e4c	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9aa8a257	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9ff432a7	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa3012282	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa71d566a	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xac2256aa	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb422f158	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb530245b	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb609dee3	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb789ba5c	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbee1dfcb	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc044e433	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc11bf62a	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc43bad36	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5309250	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcf38f99c	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd2377068	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd6824789	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd6b5ac67	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd86a4cfc	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xde895b1e	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe4aefd6f	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe4d96ff6	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe84f6286	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe87f61b4	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xead57966	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xef1af396	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf3131b37	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf8c1f09f	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x159af6b6	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x2986bdb8	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x31a3ec12	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3e9f238c	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x5c8d85f2	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x82185e7c	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc1cf2ca8	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x02fb39bb	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1587a199	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1bbfee92	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x38ca1749	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4819a0e0	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4e4c1bb2	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5385941e	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5b1794ee	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6036f9b1	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x85cd3e22	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa08fa531	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa977a516	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb565b9f3	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xbfc990f4	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc1926312	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc8fd376a	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd5687c2a	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe99c5058	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf2d9a97f	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x012e8e4c	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2ffdd23f	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x455445c1	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x4f13a2b7	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x60ce8e2e	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xbb8e9677	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xbbd3b434	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xe331e9ec	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf838677e	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x013459e8	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x11cf69ed	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1428aaef	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x172c8b04	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x196d7cee	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1a0751a4	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1def5988	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x24472920	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2dcac59d	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x309103b0	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3b6db371	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3b7b7cf4	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x411983d0	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42888048	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x46c8da8d	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4d8ad637	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5283a318	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x57f1bae9	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5fe7f666	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6518977c	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x67ede60c	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x692dc4da	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6a55b014	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6e69c522	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6eb435f5	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x716ae9a7	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7b54e178	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x830dbe9f	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x89c2cceb	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x93985e8d	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9b4d035d	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa7d8f063	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb03b2a45	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcb2467ee	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xce3ebab5	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd145cac9	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd9a764f5	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdfa2803c	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe777eac3	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe807faf5	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe8fa0b1d	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfb7e1e9a	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfdef97fe	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xff2453b3	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x02e59f04	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x031e410b	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3114c406	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3a60e862	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3fc4f9f5	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x50b436cd	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6bd7aabd	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6d9bf937	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7f901302	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb2c34f27	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb5907ea5	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb6449d74	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc70e7088	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd9352d6e	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe950371e	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf723ab7d	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00717469	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0352cf91	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x05bc4d95	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x09c027c7	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0dcccb33	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0e504b25	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0f52dec7	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10244c4c	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10d9403f	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10fa58fb	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1d6617c9	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1dac720f	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2c12083f	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3529814d	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3abccad8	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b0e896c	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b814be1	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x48b80752	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4d919760	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x53cfc850	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x543fdac6	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5548a98e	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5aeab4c6	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x67eab9ce	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x67ee833d	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x76d10567	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7954ba70	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x79d91218	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7b72f322	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7ce49078	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7f2da7e4	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x828da0cb	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8497e909	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8723d517	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9bd5c568	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa5173055	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa5ed1c11	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa6844b67	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb200d3da	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc52178e9	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc8b13bcd	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd498dae2	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xda483618	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe5cd420c	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xea803e26	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf3b2f59e	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x07992e13	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xa6d0227d	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xc3643788	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xdc4c9fae	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xf58c957a	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x052ef6f5	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x8b77030a	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xbfde73c1	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xea6ce7f9	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0c1ec9e8	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x338f511f	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x3f8ad1c7	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x580b8c6b	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x606759dd	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6929912b	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x800c7958	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x82dbb8d1	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8a4741e5	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaacc25c1	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xabc8b211	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb2e8a4cb	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd16bb569	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd92cad74	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xda4c3041	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe1f896d0	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb2ddc0a2	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb5759661	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe3e13759	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfa831da1	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x022f492b	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0f296d2d	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x11548f2e	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1413be3c	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x19951345	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1aa44c9a	rtl8723ae_firmware_selfreset
+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 0x480abea8	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4fe62848	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x59301ac8	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5cf59fdc	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6aa0fd95	rtl8723_phy_init_bb_rf_reg_def
+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 0x9b7efc84	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb33bf041	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbe436549	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc59f9f76	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd13e6027	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd4b1c4b4	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd5814635	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd66c208e	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdaf814e7	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe303da74	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe6760806	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe7190db7	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeb101c60	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xff6fdfb8	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x054f3feb	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x055c625e	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0dfc274b	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x138a9141	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x18491624	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b6f36d3	rtl_init_rx_config
+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 0x2d33e4c6	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4411c26e	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5650ac6e	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x581c7517	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5a2252ea	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5f43e22b	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x64f01672	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x729e4d28	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x837bcfc8	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8771e01f	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8d1ce2fa	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9198bfef	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x93c329f0	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x99fa9e0a	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb28c4b91	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbf04aef2	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbf90a901	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe20ca269	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf6e00833	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x14e97f25	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x5fd4fdd3	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x67283d27	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x6f01053c	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xb60cce0f	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x349c885a	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x8f3cfea1	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xca05b920	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xcb4f661f	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x76143844	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xc210fd30	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xec05e1c4	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x08e5e82f	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x094da297	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0fc563cd	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x149b566c	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x28a74a43	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2cef0bd9	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x30408ccb	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3a1756e6	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4431a7ba	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4631cacc	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x560af90b	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x586048c0	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x595c11fb	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5f3a11e7	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x61f61a18	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7431c6c4	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x756e4782	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7884925b	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7984b888	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8ad449a9	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x99d3e8cc	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa77d70db	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xaafbfdeb	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xacf1e01a	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb030b217	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb3e87f45	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb3e8f139	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb4f82dab	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb6977627	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb769e1a6	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc15ef03e	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc59cbdb1	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc8138fa9	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd017cd29	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd8de0c28	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd9d76380	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdfe8eb00	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe63e68e4	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe843a981	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe8b0399c	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe8e6104f	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xedb37da1	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfe222ae3	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x31639f6e	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x785e69ff	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xc6c57b2a	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xd681e5b2	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x162698ff	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1beb0676	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x92d03596	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xcbf2da41	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x3f0f5a8b	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x4a3dc687	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x5803d53e	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x7f88c79f	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x9196b74c	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xa8ce46e9	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb195941b	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb8fc1b33	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x08d91205	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x93c1fde1	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xb8edba0b	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x1de70599	ntb_transport_register_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 0x76ec8735	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x97c7dccd	ntb_transport_unregister_client
+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 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 0x9307f063	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x99f4e7c8	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x03a11eb7	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x14a3367c	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x256fe5bf	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x279a171b	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2fa9e051	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x30a64736	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x32eefba8	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x41e58a06	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x42b05172	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49c85b30	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x55e9f553	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5706edaf	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x57818260	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5ee348f2	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x60b2a385	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6abd3bc0	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x726a3aaa	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x732e768f	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x79251fb8	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x81bbaa8b	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x87a0c5db	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9dfef889	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9f1b817b	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa3a34623	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xac80f675	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaec809ab	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb19ed31c	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb4574112	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb880a374	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc5b4f0a8	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcbae10f9	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd649535d	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe76c577c	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xefc1f014	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf2d819e6	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf742a837	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x07776626	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x117205fb	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x13104d64	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x13753d1f	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x38453bba	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3a26c9c5	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3d525b20	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x50711910	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x73ff8d4e	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x884013f8	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xef199e15	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf1311222	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0x46c799b1	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x0437d6a4	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x19224ead	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3211a98b	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x47970fa4	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x56a28af7	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x64f3e6ab	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x9f9232e6	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xcfd15d6d	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xee166ce3	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf3a95a48	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xfb3c6104	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x55e02f8a	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pcie-iproc 0x962386f4	iproc_pcie_shutdown
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x63e3b151	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/phy/allwinner/phy-sun4i-usb 0x21bef53b	sun4i_usb_phy_set_squelch_detect
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x1c300af5	ufs_qcom_phy_init_clks
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x437748e2	get_ufs_qcom_phy
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x5c5a51e6	ufs_qcom_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x5e6ab504	ufs_qcom_phy_power_off
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x6f7e2b5b	ufs_qcom_phy_power_on
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x762c9758	ufs_qcom_phy_set_tx_lane_enable
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x967eac9e	ufs_qcom_phy_init_vregulators
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xaf9a2080	ufs_qcom_phy_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xe73ec797	ufs_qcom_phy_save_controller_version
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-usb2 0x00d48f33	omap_usb2_set_comparator
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x058c4aff	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x610a3c7c	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xd850de96	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xebf195cf	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x0961b672	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x160f9161	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xc048fb84	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x5b410c68	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x5bd31030	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xe733282d	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x1521c07f	ptp_qoriq_free
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x1764696a	ptp_qoriq_gettime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x176e8ee7	ptp_qoriq_settime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x2eae82b0	ptp_qoriq_isr
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x53e7fa5d	ptp_qoriq_enable
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x7d0794e6	ptp_qoriq_adjtime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x9358e8d3	ptp_qoriq_adjfine
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xfd062868	ptp_qoriq_init
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x2b4c9ead	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xaa8d4a12	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xb80923ca	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xc6cfda77	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xdb9513c9	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x0462df3b	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x05f8e35a	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x89226a82	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x8a470cbe	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xacd7207d	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xb9a4e4ac	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x8c61633f	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x0bc579df	qcom_add_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1ad8e80b	qcom_add_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x31bfd40e	qcom_unregister_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x3e3779f8	qcom_add_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x50418334	qcom_register_dump_segments
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x77dd46d6	qcom_remove_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x86a84622	qcom_register_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xca3f27f5	qcom_remove_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xda6f4e4e	qcom_remove_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x1cd601e4	qcom_q6v5_wait_for_start
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x2c51f609	qcom_q6v5_request_stop
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x6a8fb1f3	qcom_q6v5_prepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x7aa62885	qcom_q6v5_unprepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xa9e5414f	qcom_q6v5_init
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0x5ca181c0	qcom_add_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0xa881c6fc	qcom_remove_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x985eff90	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x61e46e79	qcom_glink_smem_register
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x72dd75d9	qcom_glink_smem_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x025775b7	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x04b12091	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x088d3f7d	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x09db6ce2	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x162a54c0	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1b6d07e6	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x204181d9	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x24241945	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x335cdb09	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x35ec9bd8	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x384fab12	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x38775bfd	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x49cc43ff	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x49dabb48	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4f15d07a	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x571939fe	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6154d705	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x685ef383	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6d2e20bc	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6dde4cf1	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6f2cb9a4	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x760f7bdd	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x78e285ea	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7c0c58a4	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x96dd6d04	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9b32e892	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9f982b43	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa16b0b39	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa81d8372	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xadf6eb4b	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb060743c	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb11511eb	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb2c48c90	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb670f7cd	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb72d44d9	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbc6991c0	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbe44a634	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd129b5ac	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd26ed6da	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe14afa0a	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe7f15a39	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf0bf9b13	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfb81c141	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfbc7a49a	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0ddae2ec	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1403eb9e	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1c448ce5	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x21549c4f	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x24c46c0e	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x87b04ef0	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xab079fc0	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb4c06e0d	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb4e4723e	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xba83e081	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbfd5342a	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcd2561ff	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcdd17373	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcdecdc89	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf4a049ca	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfd62d915	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x8af3de4e	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xd268ea22	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x004fd0c4	hisi_sas_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x05085d17	hisi_sas_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x0fb73e37	hisi_sas_host_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x18db417e	hisi_sas_sata_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x1a17d023	hisi_sas_notify_phy_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x242b99ef	hisi_sas_debugfs_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x39aba767	hisi_sas_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4214da2c	hisi_sas_phy_down
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4bb29a13	hisi_sas_controller_reset_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4fc22123	hisi_sas_stt
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x554edb92	hisi_sas_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x5a0f3576	hisi_sas_get_fw_info
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x6a8a6719	hisi_sas_slot_task_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x6d3ff997	hisi_sas_phy_oob_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x738dd94d	hisi_sas_probe
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x76f17bbd	hisi_sas_scan_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x8a320857	hisi_sas_phy_enable
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x9b807c91	hisi_sas_get_prog_phy_linkrate_mask
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xa5d140a3	to_hisi_sas_port
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xb03aa9c5	hisi_sas_rst_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xb842ea71	hisi_sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xc0b6199c	hisi_sas_debugfs_exit
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xc3a41131	hisi_sas_debugfs_dump_count
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xd362006b	hisi_sas_sync_irqs
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xddd38bfd	hisi_sas_init_mem
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe330cb74	hisi_sas_sync_rst_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe4687dc9	hisi_sas_controller_reset_prepare
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe987d9aa	hisi_sas_debugfs_enable
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xebfae55c	hisi_sas_get_ata_protocol
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xed8054e6	hisi_sas_stop_phys
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xf93604f3	hisi_sas_release_tasks
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xfd939590	hisi_sas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x05b60a14	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x3dfed51e	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x447bc8a4	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x56038169	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x6bc14b4a	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x9b6e7388	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xccb533fb	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x00ec8aa8	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x05baaa36	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x07ed5b4f	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d80143b	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x10319317	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1c1f001a	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x26344b72	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x267fd3d7	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x273377f0	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2ea9ae34	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x33a86695	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x39509a2f	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3c081698	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3c9133ac	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x423ff849	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x449a9897	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x492463fd	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4cbf24e5	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x62fbaace	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x665574f6	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6688ed88	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6bd5c56b	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x714d2e04	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x725a1759	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x72e6f2fe	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x74725cfb	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x78fdc0f3	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7edc500e	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8711d94d	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x99b11856	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa520c26b	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xab7bd592	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb1d722a0	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc5e81511	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xca1a349f	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdadb0882	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe292f96e	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe88298a8	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xecbe0e4e	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xed4deda7	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf90d4a1c	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfbd7538e	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x21e5e323	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2c617dbf	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x36ae7c7f	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5ce1b016	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6429fac1	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6633a402	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x79cb807f	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x89a9fea2	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x8a6b9dd1	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x8f8893e6	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb0dc74d3	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb6a1d81c	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb6e9a9d1	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc4f64638	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf8014f74	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfcb9be15	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfefb2e8c	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0429cdaa	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x076b7fe9	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0fe55764	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x249d5e5c	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x257175b9	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2d3376c0	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x49be5ac6	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x574c64b0	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6e843d80	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x70f44357	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8548a9e5	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa0a6733d	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xad74e622	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb4535f7d	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd0dab546	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdba0d1e1	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdfd2d78c	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe58b6e95	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe7e62038	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xeb94ed5d	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xeb9e0bfc	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf2b288ab	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf62ee917	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf7e04088	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x01d14737	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0211c017	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x03607144	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x07123bfe	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0d04ea4f	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1680976b	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1a8699ea	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2b3122e3	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x304e91aa	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3273097e	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4a9996fd	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5ec29dfe	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x608cd7b3	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x644ae44c	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x69103465	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6a8d19fc	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6cd97f37	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x877b5c27	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x881630c1	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x88f73102	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x97b2367a	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9b38eb98	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9dd22a54	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa80f101c	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xae48a6ee	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb315bf19	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb37cfc03	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb5e622e7	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbbb5b2b6	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc6dae05e	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcfcb5587	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd3755ff7	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd73db930	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd8732bdd	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xda334c4f	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdfb9d7bb	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe09426fd	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe5a798b3	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xee0dea15	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x7b53e090	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xa4b99602	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xae9dc977	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xe1142bd6	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 0xc362bab2	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 0x06c60d80	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x08025505	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x18101a59	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5591eb6a	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x847d0b1c	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x8fcc743a	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x08c88e82	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x0d6058d7	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x239ffac1	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x27bae0cc	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x2dc40ae0	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x7f714a8e	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x997b7b4d	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xad5daa68	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe700c04d	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x091c3c57	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x619e84f3	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x87ea2ba2	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xc9d9bf7e	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd1249d39	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xeeb52998	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xf6a5d266	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x14f0daad	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x16869b6b	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x41b749f2	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x73048296	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x8c6ff00c	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xfcfd1794	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x05234068	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0f3e55d0	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x15b8ebcd	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1b5eee55	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1f37a4f8	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1fb8ba2a	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x485ea977	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4ed2f3fe	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x558a550d	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x58862e70	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6ea001ff	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6f4bc743	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x70a74353	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x836155fa	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x83dda81b	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb0d30ec1	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb3f90f99	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb49fb500	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb80c449a	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc2340100	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xda803e77	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xdc2a64be	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xdf2a14af	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfae74489	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfc84fc59	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfd6622aa	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x2aba3b0b	meson_canvas_get
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x494128eb	meson_canvas_alloc
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x673c5a86	meson_canvas_config
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xfbd79150	meson_canvas_free
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x0261cd01	dpaa2_io_store_next
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x1b7c4023	dpaa2_io_service_rearm
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x2724c9a9	dpaa2_io_service_register
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x2ea89927	dpaa2_io_service_pull_channel
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x2f10852c	dpaa2_io_service_select
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x3f8992eb	dpaa2_io_service_release
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x4994345c	dpaa2_io_store_destroy
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x6560c60d	dpaa2_io_service_acquire
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x79cf65a1	dpaa2_io_service_enqueue_qd
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x8edafa55	dpaa2_io_query_bp_count
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xb1806eeb	dpaa2_io_store_create
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xb9e81961	dpaa2_io_query_fq_count
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xd85049d7	dpaa2_io_service_deregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x4762cc86	apr_send_pkt
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x530a67a1	__apr_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x98456a0f	apr_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xd63efd89	aprbus
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x03c9a66d	llcc_get_slice_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x0679b34d	llcc_slice_getd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x79a9bfaf	qcom_llcc_remove
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x7c1dc9f4	qcom_llcc_probe
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x7e773088	llcc_get_slice_id
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xad3516c4	llcc_slice_activate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xb534ec76	llcc_slice_deactivate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xb68b1300	llcc_slice_putd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x0c811509	qcom_mdt_load_no_init
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x0cc32b83	qcom_mdt_load
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x4a45bbe9	qcom_mdt_read_metadata
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x7e8717a3	qcom_mdt_get_size
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x7d35b6e6	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xdbcaf450	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xfa05436e	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bcm-qspi 0x63896e67	bcm_qspi_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bcm-qspi 0x832fb88c	bcm_qspi_remove
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bcm-qspi 0xb2c23bf4	bcm_qspi_probe
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x5f33bfdc	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x68782e72	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x7255aa20	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xd7c679c8	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe35ba203	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe3a643b3	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x13d509eb	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x7ee4dc91	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9510ed2e	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xbc9d504b	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xcbfb6ff1	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x21f68632	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x369a4d18	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x8a28301b	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x041c6484	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x1b890034	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x22f1c3ee	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x248af93a	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3423e4ce	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x45fe61d0	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x58e30722	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x77ba4b4e	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x784ad314	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8a670b31	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x98887ed0	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa08510be	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa82fb56a	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xafd784f4	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb77dd02d	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc341445f	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe5945739	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe610fcf1	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0xdf1eaa6d	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0020d75e	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0398b140	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0af8e2e6	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0d42c10c	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x18940ebf	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1b6b8bfe	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1fb5ecdf	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x27a218ee	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2cd4006e	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x314d7672	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x34e0a663	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x410b4718	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x42a3070e	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x469dc4bf	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x46d0ae7d	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5feff63f	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6b6c9285	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7414103b	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x89dc1d49	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8c48fba3	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9af80d9d	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xae3f35ec	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb1b024f2	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb2b3da0a	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc5f053e3	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc77eaa97	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc7b90eb4	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd0d5cd2f	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd26bf3a2	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe1a02b67	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xeae74b1a	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf04697b5	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf065421a	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf0dc040a	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf8dfa311	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfe6e02ba	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x116fd653	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x14e0ff6f	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x564e355e	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x839d9326	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x91e40641	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xbb066f85	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xcc5cfc30	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xfd75e702	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x41094e60	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4ee36522	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x550512b9	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x867ea1c9	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xde45cc88	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xeed766c8	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x6784382a	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x021f6e57	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x6b3aede6	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x58907866	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0b938db2	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x29af1b3d	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x36feeeae	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x42d1e3f0	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x635d7e52	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x79483217	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x8f41e7e6	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa812763d	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xaf50f544	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb97e3623	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xbd83ee90	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc8ff1d75	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe7bf9012	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x4534ee44	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x627a6068	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x7ff63480	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xa0e3415a	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0026a855	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0bbbdb05	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0eb23a04	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x10eca294	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x14e9d55c	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x2736582f	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x2ddfd272	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x341630a2	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x41cbb73a	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8b217790	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x9c519590	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xaf5ddded	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb59c19cc	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc1dd344e	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xcb685b29	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xe1821b29	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xabc82223	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xf91d431a	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x138dc7ba	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x14240e05	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x24a9cdcb	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x40abdd05	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x47194d75	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x47fe6028	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5191a94d	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5914ed73	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5f42a993	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x66172b7a	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x67ba8fe8	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x74485ad5	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xa57fdf73	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb6d5f429	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xe7f8f4b9	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfb32bffd	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0e0765c3	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x2518352b	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x75a1360d	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x97cacd50	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x97d6540c	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xf2e55a48	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x418641e2	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x9a9a25fb	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x9ac8e949	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xa5d1687d	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb780d5b7	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xf5713ddf	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xff26b446	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x2bb84744	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x3351b227	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x3fb0b46f	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5ec5d9ec	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x69cbc306	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x718b8ff4	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x73545376	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x7f8760bf	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x8067425a	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x8e2a35a5	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x911b01a4	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa728a046	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xe9f3c507	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x41b1ac77	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x7e5512ca	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xaddb87f9	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xbbb27d98	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1950d43a	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x19e8ef91	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1ce854fe	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x25a05fd3	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x56ab7346	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x716bcdca	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x89152d87	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb278ba6e	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb7780101	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbcce8400	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc493da91	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd971e625	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf83b9dd6	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x02eafeda	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x0874e625	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x156cbeeb	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x15b93332	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x6bd30017	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7b922e40	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x824a7671	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8f8c7e42	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x9e92a421	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xadb20c86	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc815ec4a	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xd4cba010	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xfb32a6eb	gb_audio_gb_deactivate_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 0x32e6391e	gb_audio_manager_remove
+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 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xb6db3cad	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xbd1b32c6	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x6c8f464b	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0xc2429d4f	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xcc57ba00	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xd2e94bf8	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x4fd83d40	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x024db3fd	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x0be37c73	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x17c36d4a	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x1deb3384	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x2c0a11cf	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x357cf6ec	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3cc1cc93	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x400852bf	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4b8b6390	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6cd445f6	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7477b539	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x77f15626	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x93884e2c	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa8b591d8	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa96ccb1b	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb2724715	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe8f2c161	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0x34a736b2	nal_h264_write_pps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0x66a00434	nal_h264_read_filler
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0x8f362d4c	nal_h264_read_sps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0xc1ac485e	nal_h264_write_filler
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0xd67f47ff	nal_h264_write_sps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0xfa014bd9	nal_h264_read_pps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x1192c734	amvdec_remove_ts
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x31152c36	amvdec_read_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x3c8fde80	amvdec_dst_buf_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x40df2f72	amvdec_write_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x42293109	amvdec_set_canvases
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x4e3d0ce9	amvdec_get_output_size
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x5550cfad	amvdec_add_ts_reorder
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x55f5121b	amvdec_clear_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x5b5307d5	amvdec_dst_buf_done_idx
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x7f093478	amvdec_src_change
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x92c80af1	amvdec_set_par_from_dar
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb3a652a2	amvdec_dst_buf_done_offset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb50b0d8e	amvdec_write_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xdcd39eeb	amvdec_read_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xe05e1362	amvdec_write_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xf8e8718d	amvdec_abort
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x145b8742	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1d44c9cf	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x222f8712	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x34f060bf	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x36539d83	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x64568262	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x77943178	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x864e3a06	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x8ccd71c9	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xa4d6030d	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb8aeadc9	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc89be040	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xd34ee4ed	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xd8619781	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2c357507	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x362d281e	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x36c11c81	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x52daec2e	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x728661dd	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x87896b0f	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8876f3a6	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x89797fac	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8ace2205	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x9204e84c	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa2a10e2e	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc51215cd	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc8d152ca	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd4c3648a	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd930bab0	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdcc118bd	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf021a213	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xbcafffe1	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xc929004e	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xe9b5d836	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x330ff42d	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x34da2b2a	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x72f29d28	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x7f29fdd6	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x81f72c7d	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb1069978	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xe1e970ec	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xf3e8908d	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x00aeeb76	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x021f4992	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0941164c	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0b409639	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0b5271d9	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x12e33f69	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x22eba108	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x33b43cbd	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x44450029	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4a619984	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x500610e5	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e4d7bd0	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x683354c0	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x69976cdc	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6d154027	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7efdea54	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x85db7bf9	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x919fc29c	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x957948d1	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x96d0b89b	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x97b78709	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9965fd4c	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa5f2a938	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa8869e75	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb02d56aa	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb2009597	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc0877825	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcceb3fd1	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd1f42728	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd629b223	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe2ed59d9	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xed8c124b	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xef2ba088	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf0c25b02	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfbaa19f0	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfd1a3d0d	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xffbd5b47	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x1218c624	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x0d5e39fe	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x6c22f186	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x9698be71	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xae3a85f2	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xcedcf6c5	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xded3e4d4	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xe1a7cf59	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x06b87440	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x16c58162	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x33182014	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x6bc177a5	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7c856826	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xafd7203c	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xca82feb2	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x0aea0372	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x17e3f850	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x323f6e45	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x47061e68	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x59298019	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7a8ff885	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x86f5f65e	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x983cbdb7	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9a226087	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa13e3a2a	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd83edef1	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xeb442a92	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf0083dba	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf7dc33ed	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x026f0c8c	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x0328c322	tee_shm_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x0601beec	tee_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x15b1aade	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x294c79ae	tee_client_open_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x460e7450	tee_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x5f179db0	tee_bus_type
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x6492cb10	tee_client_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x80d4b863	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x83a1764d	tee_shm_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x89ee9f5a	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x8abeefb0	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x8f2a54e8	tee_client_open_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xa386bc0a	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb507953f	tee_device_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbae6cc9b	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbaeafbde	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbbc22b23	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc5005c25	tee_client_get_version
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd8b734a0	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xead984e5	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xee4d6879	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf5c4ac31	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf5d16ea7	tee_client_close_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xfb8d3df1	tee_shm_put
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x1c145ac3	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xa3248a22	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xc4bba837	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x03af2f4e	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xb1d32dc4	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x674ac40d	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x7dfdc3d3	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x85f0a300	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x18f87d17	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x26b279e3	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x36f30e65	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x5d1e70f2	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xe88d2fb9	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x17b2fe58	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x2e26566a	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x79baa477	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x7eaf515c	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x8aa2dbe5	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xd6108478	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0e127653	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x7bb6d8a7	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x7c6c3bf5	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xa76691c2	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xcad5398d	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xf4247d06	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3fdd883b	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x531a2e59	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6e9577d6	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6eb35af8	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x70d0fd45	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x7cef5c42	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8b32d1cd	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa7022bc3	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb6a1adbb	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xbaa1cc66	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xcbeb8ff1	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd37c9cee	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd5f63325	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xde9abd5b	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf2a80207	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x2c253df3	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x55104fbc	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x147d4bf3	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x3c02662c	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0ee3ad48	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0f87c10b	fsg_show_nofua
+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 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1858fcab	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1bf377db	fsg_show_file
+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 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2e907815	fsg_common_remove_lun
+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 0x3ff0f34f	fsg_store_inquiry_string
+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 0x462b0c4c	fsg_store_file
+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 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x72e36cf5	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7d3a35dd	fsg_common_set_cdev
+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 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x8736fd0d	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9094aee3	fsg_store_nofua
+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 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 0xadc44e85	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xaf692ca9	fsg_show_ro
+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 0xc9fe3562	fsg_store_cdrom
+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 0xed0fb4f5	fsg_store_ro
+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 0xf851e9ba	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xfddff811	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x05eb9c6c	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x1796e3bd	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x17b87bfa	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2126af07	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x576a1ce6	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5b83d85d	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x678b24db	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x76c1be9b	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xb1837784	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd0072990	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd86bb8f4	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xde0299e6	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe2d5da8a	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xfae191b5	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xfea8f321	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0483f526	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x04a22006	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x277629a9	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2bbd7794	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x32a3bdf5	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3cdb3acd	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x538c789d	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x646e95b6	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6511fea7	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x655ed3b7	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x65700ee5	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x71daf3cc	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x73c11518	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x75bff84e	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7915520a	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7ae286b8	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x873391f6	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8a3d4592	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9d05ff4d	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9f4e4e76	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa1ae8d5b	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xaacdec00	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xad93907e	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xadf1b20a	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb8668a2b	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbdce3292	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd295bb29	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd3f2e058	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf5003d41	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf7f63ac5	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xfb2acf09	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x124bcc9f	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x3d911646	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5261e26b	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5510cc23	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x734c83c5	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x863b8576	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x9bbd1484	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xc454e94d	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xead991c8	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x040226bc	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x08adcc16	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x08edea4a	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1cadfb02	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1f0c688c	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4fd2cda9	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x57a6091f	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x64dca7b5	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6ff23c72	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x72e02173	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x77ff9b33	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7908c0ce	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x79ad8e21	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8125baf4	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x824d8b0d	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x847e636a	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8546d45e	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x973f52d2	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x99b291fb	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xaefbfaf6	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb6b9f3d3	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbe7714ee	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xdccc4023	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xe7c512cf	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xef2e83ec	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x2e7d5338	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x70a9ba49	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x0a86ed49	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x3c439f10	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x7e2e68f9	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x83c81c6c	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb61630eb	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xc012eff2	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd720186a	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd9292c02	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xf247c8b9	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x378e4862	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x525822f5	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7e449ad5	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xfd8e3d0d	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x06c56462	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x142f654b	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x3466a82c	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xa2f0ce72	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xca1689c8	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x76e477c0	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x73930557	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x04f6a140	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x062e2c08	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0ed1bf0d	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x22757128	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x44ff855f	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x451ce16e	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x45bf60ad	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x612edc0b	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6711679b	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x7a35165d	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x7c178f70	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x7f643f70	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa71f431f	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xaa1b924d	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xabaa1dce	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb8022a05	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb93f99c8	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc614e11f	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd27aea39	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd9936ed8	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe49714b7	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x2671f8da	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xe99d8a16	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x0f13a7e1	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x5fc6b0f6	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_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 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x14e71bcf	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1890e04c	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1c4a4dff	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1e5debea	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2273f202	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x23a26254	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x27664487	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33448900	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x430afaf3	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4ce796d0	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x510e3f27	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x58448f65	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x592b888b	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f7b6407	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x645d0930	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x77ddd057	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8cdbf055	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c0c0eeb	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9fcc1092	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa68013ba	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa6fd5c54	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa7f40747	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xac1fbc46	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbe544aba	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbf9877e3	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcecaaf0b	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdf8cc226	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe401b39c	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe4beb9ba	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe9963cff	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf0bb551d	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf8a23d49	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x2d861a0b	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x3477e4ac	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x94efb73a	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xba481a20	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xeef1f3e8	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x03007097	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x0ced5d2b	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x13858249	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4d1d9b96	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x572c4cdb	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x68270591	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6a56ef5a	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x7487e55b	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x7959cd54	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xae7e0872	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xbfcc25c2	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xdf518421	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf443f7bf	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xad0c0834	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x0d4f1903	__vfio_platform_register_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x29d1f410	vfio_platform_unregister_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x86dd9eba	vfio_platform_remove_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x88f4035e	vfio_platform_probe_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x20b7d3f9	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x2adc4a82	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3562e455	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x9f268acb	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xb39debf1	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xb9af9d1c	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xca553db6	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xe042be1c	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xfa1078b1	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x2e25a095	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x395ea81f	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x06f6ed66	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0e8b766a	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x12fc5a88	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x13eea1bd	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1a3aebd2	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2467187a	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x28e3c342	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2f7e9741	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x398eae68	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x415074fd	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x49103543	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b658eb4	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x61d672e8	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x63ba1cf8	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6425c28f	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6738b96d	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x704ad661	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x73588612	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8b367be5	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x97ed69cf	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xad715ee3	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb179baa3	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb2c15887	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbc50215b	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc245813a	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xce9a45ba	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd1d9363d	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd5922e4a	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd7c675e8	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd9f77ea0	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdb468bc6	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe0c466e2	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe678ac20	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe812bb2f	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe847cae1	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xedc41020	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfce9dd79	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xff931eb3	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x17f73a7d	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x3d093010	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x459e6e9c	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x6bc98974	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xc46ea015	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xcb2c632e	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xf13a046c	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x9ad661f3	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x8706b9e6	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xec5755bf	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x0001300d	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x493a301f	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x049af0d1	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x082f5848	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x198407be	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x4369bcd8	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x778184f6	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7aa6ea4b	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xabdda1a7	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb4f07fd3	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc66e2409	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xde8a648a	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xe32d5ea7	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x11a803ea	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x2ec3730c	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x5ad9abb5	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xecabf5bf	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xf2962877	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x696f3137	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0xff57a97b	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x5834f161	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xa9108a0c	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xc6fe8925	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x15dcfa06	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x38859c02	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x59d1f25d	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x74931f18	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x972ca6e7	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xe89df2b7	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xf6c4682b	lockd_up
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x00ed5fe2	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x04d9f5e5	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x04fa77b8	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0594fea4	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x062163b0	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x09baa159	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1aba8ba1	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1b6f85b3	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1bee782a	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d04dacd	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d775e8f	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x204f2a05	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2306d3c6	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24711ef3	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x260f88f7	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2a6f3b9c	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2bf2f1b5	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x323ba2ba	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x328c0013	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33e82146	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38902f16	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3cce9ecb	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3ee8cd87	nfs_put_lock_context
+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 0x40a41860	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4112931f	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x427787e0	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42ac60a1	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x43afa2f3	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x445a3ad3	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x45f109c1	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a53448d	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4f39be4f	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51636aec	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x55a3313e	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x560ecae3	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56da4ed4	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5792ac8a	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b34b64d	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5be77efb	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5c747990	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5df9d65e	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x618c3f5e	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64b0b0f1	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x67e7dbe5	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x67ff0e45	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6a6f4c41	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6b912b40	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6f1df44b	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73ca037f	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x74546a74	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x761223b7	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x78b9c38f	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x790a1071	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7a782a4d	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7b65a6fc	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c327950	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d6be91f	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8181acd1	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x831c368b	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x875d8015	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x876a86d3	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x89e53e5b	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8af9cadf	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8d981e66	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e615adf	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x907f0f3d	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x93679a88	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9584825a	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x95d611e1	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9750fa6b	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x99e31254	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ceb7228	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e5d0f7f	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ebc1142	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ed563d1	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9fa8d374	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0b196f9	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0c0c85e	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0ddabcc	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2feffef	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa50f5608	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa51e8413	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa521e7b2	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa68fee56	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa79df5b1	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa888ba47	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa9d392d	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xab6935cb	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb38edc3f	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb40e137b	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5e771d1	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb6887303	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc3864c3	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6e0cd4	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe3957a6	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc1326e20	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc15500e5	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc1935246	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc712323e	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc91609e6	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc99c8c3b	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca7359d5	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca9bc218	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcaf26650	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcbb66b24	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xccb584c7	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd1f015fc	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2469033	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd44c7e13	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4c1219c	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd6d54dcf	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd829e0c8	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe01c4ea7	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe18fdf04	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe2b4fc06	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe4174131	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe48362c7	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe597d5f9	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5a2284b	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe845020f	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec94dc2f	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee6c2411	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf48f5ac2	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4f87f5f	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf671721b	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf9e68014	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfa0eee6f	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc7d18c9	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfdaa2722	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe442041	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x94eaceac	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0111b299	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x058b54cb	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0927ceef	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0936e943	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0cb50163	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x168c7e52	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1a29e735	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1dbbd684	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1fca9638	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3277f0d7	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3386fd22	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36f2cca1	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3ed9ebb6	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x467f6e59	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4b09bc2c	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5568a8c2	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x572f830b	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5e82b748	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6471cc7b	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x65415060	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x66097f5d	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6ce1c556	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6fa5275f	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x712ad61b	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7e02f4a2	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7e5267ef	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7fb3664d	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x80345522	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x82675b92	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8d67688d	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x930bcb6d	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x94d83629	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x966ba863	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9b82d3ca	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9eb015e3	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9f04eca3	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa0780311	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa424b745	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1c09e35	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb58ff348	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xba7944db	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbfdb2029	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc263709d	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc571eb5b	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcde9cbc1	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe070e749	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe2caa29a	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe362a4d6	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe903d7ba	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xebb1c990	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xefe55323	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf3549809	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf368b992	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf526dba8	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf72e8c82	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf8c3170f	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf95b457d	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfac9083d	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc28b389	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x3165833a	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x7fc7db2f	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x87081183	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x008e6e88	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xdea3a61b	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x36f5a933	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x37195511	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5a6af22a	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x727c7e63	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x97a49933	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb1284926	o2hb_register_callback
+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 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe5c22dba	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x20e38161	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x3d577af6	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x55621327	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x58dea81b	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_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 0xf17f6b8f	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xf6baae9e	dlm_unregister_domain
+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 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x869fe6d7	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x92771f96	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbfbcd86c	ocfs2_stack_glue_unregister
+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 0xdf3d641b	ocfs2_plock
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1234cd9c	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6bd93394	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf9819438	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x28919bca	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x9ce688ed	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x076552cf	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x4a6f0d5f	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x0a448edb	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x1b0b6415	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x58a35f3b	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x8691f30e	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xdca503c1	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xdfc8b757	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x12ce9f66	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x48eb19ad	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x49868196	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x5254ef5d	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xd9268d23	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xe74c9591	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/stp 0x30c01487	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0x341d731d	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x66e0db59	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x84bfd2a3	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 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xbaf5e8c1	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x490a189a	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x91a9cf61	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb018141a	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc1257b12	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc48030a5	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc8b209ba	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xcf315337	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xfa814529	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x7dc39727	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0598f2c4	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1080418e	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3081ef77	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x333e346a	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x392b7f4b	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3d4bfac0	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x5c4c9e51	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7f786ddc	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x811f746f	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x869341b7	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x87d12c49	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x90fd9243	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xa8a83cd9	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc8bb9db0	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xccac408e	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd79ff88f	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf12d6c03	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf236918d	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/core/failover 0x0e72c8e9	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xa7223121	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0xbe5b2687	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0f2e95a0	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1459d03e	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x181ccea9	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x18ca59b9	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x20bf4478	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x222ef7ce	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x273fb4e6	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x35ee7146	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x37cbf132	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4884761d	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4d812677	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6a272570	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x709402b2	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x81b19f35	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x99b1f7f0	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9db43d6a	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa8d7f8f8	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb601dc3e	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbea947bd	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc1b9ddf1	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc25bc2b1	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc294351c	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc5e2e9d6	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd1bfbec6	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd853ab05	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd9a3e16c	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe9baeff2	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xec49d693	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf4bad70a	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf523c061	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf7c8fecd	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfd5401cd	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfdc2ef5b	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x03b85008	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x86fcd02e	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x8f323c5a	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x98a3b1b0	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb6dff636	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xd2682dc0	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1d9169b2	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3ee36182	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x444aa625	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x44515e50	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x492e4305	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4ef5d365	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x682f9125	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x692a5145	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x77b5a1ed	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x832cdbc7	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa498e623	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa766f689	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xac0dd5cf	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xacad54d8	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xae94b16e	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbd5736ec	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbeb2b41e	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc7f73cd8	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xcb46c2ba	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf20b1f1e	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xfde7f8f0	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x34a94c34	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x4ce89c8b	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x6f44c848	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xdf6e3674	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x508f9b45	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xcbcb6552	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xfb6301c1	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xfd345e3d	ieee802154_hdr_peek
+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 0xcd7d1203	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xea5aa55a	ife_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x64bc4686	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xf532d6ae	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xff72c1a1	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x07c01346	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xeea67eaf	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x11e5d630	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x33e953cc	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x41e75ce6	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x6ab098a4	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x855c2cc4	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8aaf4f24	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x934b10fb	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd27ad2b0	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xda3a1e28	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x3d39547c	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1b65c394	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1bd263c6	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2589da27	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x36093b4e	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x47ecb986	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x54af14e5	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5dca0672	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x74a1191d	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa7c853da	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa8eb077e	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb088b7ff	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbd178ddf	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc34ffb56	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc842f0fe	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdd3c8886	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdfe26c2c	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x1476a1a6	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x2d7f2fcf	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xbd484480	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x650d8c1a	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x2b0dd136	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x6e4adbd3	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x84e5bb9b	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x975c2bc0	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xa573051b	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x446b04d9	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x2978af16	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xbf26c216	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xbf92188e	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x1a6dd8a1	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xe2b41015	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x112ee2b5	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x95839eed	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xab6f5ca3	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xef9054a9	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf2f5500e	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x0a81d185	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1377d8d3	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x14ccb83f	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x61e3ce1d	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xa0a38301	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xd317cfcd	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe3036f79	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe83fd5c8	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x7db79f83	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x7fd95e6d	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x86cd6923	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x176ac1ca	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x51160ea4	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xd291d5e2	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xd4184af9	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xe4e90316	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x689d02cd	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x14666939	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x84146a62	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x170c6b4f	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x02c6f8db	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x21eb4e60	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x403c228f	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x886202ef	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xac5f003d	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0xc30ca5b0	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x078a9c07	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xefa2be6c	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xf5dee6b0	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x0c15b994	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xae334d63	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x18d4521b	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x286016c1	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3083d1b6	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3aaeede5	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x417754f9	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x44dad447	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x657a3e9e	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x68450832	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6f0a6bc4	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x85b0a816	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9302fa16	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9e17032e	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa9772d15	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xaa77b5be	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd235cf91	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd5538d2c	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe27d07b3	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x9c6e4e57	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0a174bf5	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x153abfac	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x193eb2bf	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x2e3430a0	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x31b7b80b	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3580e5ef	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x39e0c8d9	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x41b3d0b2	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x53664d13	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5f6832e9	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6e921a08	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8a5e8614	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa1a40104	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa6e20d32	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xbb395d8f	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xdfd23d06	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x4c8eb833	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x503aaee1	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x70dbf4c6	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x870a5f22	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe1aa6d97	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1661c06e	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x21e3ae76	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2a6164e8	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x47246056	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x573cd609	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x613c3544	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x65cf003e	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x708d3286	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x70ae551b	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7ba51b4d	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x83669e23	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8c85c434	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa1d4979f	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb02e3128	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbad7c94c	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcff2f9bf	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd38015f7	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf28a33fe	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x6bd91bdd	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x99f17f64	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xb62bc770	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xd6eb88f2	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x032fb4b2	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x442a6666	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x727c3b57	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x77d7deb9	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbe10ea8e	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x004f2fdf	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x059a4270	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0660af6d	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0833b148	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0b53d451	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0e7f940a	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11323199	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11557ffc	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x14a3bca4	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x190b9ed3	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x19af5658	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1e31365e	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x20283956	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x231b0f4e	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x237ce43e	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x26cf39b7	nf_ct_remove_expect
+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 0x3585a73e	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36c4211d	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36f0ddd5	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3a94134a	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ae63e18	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c9f9803	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4039ab8e	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4103a917	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x44b5cb1f	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4a7ab366	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ece22d9	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4f911bb4	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x54649156	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5837549c	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e8e7888	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x60534f72	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x60b9af4e	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x61af461d	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6244bf43	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6704658a	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x691c1320	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x73599529	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x74b877a3	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x764c4816	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x76eed4f3	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7736d7cb	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7be9fc81	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x822dcd9d	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x832d832f	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x87cdca83	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8af9c1a5	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8b8afcfd	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e2b36b0	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x95fd46e1	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9671a09f	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x97f6bc47	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9a60706b	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9fa649fe	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa6bfbff5	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xae5f4302	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5ef1d0c	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb76727af	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb9e011f1	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb9ea6713	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbae42ef8	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc053d6a6	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc1e9a21d	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc74d2ea5	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xca340328	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcc6b0e67	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd5cf464a	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd7231ff1	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd7a2d85f	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd935e2c6	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdac7ed51	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xde7b6b16	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe670d594	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe700b8a2	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe8385025	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec4cfb9f	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6f57e24	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf8bfe3b1	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfb44abaa	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfc3e1351	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xff004a1f	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xc279e1d1	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x1dbe447c	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0xf84af6cf	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x06e72f32	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x09b14d0e	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x372abcc5	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x3b72f7b4	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x6ec5fa86	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbe13c23e	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd8c05b28	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xddf424f4	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xef43e18b	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xfe03f6f3	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x19db5e4e	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x1210f77b	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x6b4c636e	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x705b6abd	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd05e9abe	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x0f626441	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6d6f47ed	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x9a03229e	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xa666262b	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xaf85db80	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xdbc39db8	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xef2b2913	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x4e6e5d1f	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x865f24f5	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x37abc2ad	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x61c6d299	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xf587bd7d	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1e31989b	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1e90455e	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3b5effef	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4206588d	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6d411d43	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x83f3ad97	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x956949a3	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x96fb1973	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x997a9549	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb2c16f78	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcda3f5a7	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xded8a058	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x3dde28f9	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x4f8d5178	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x5a95acd2	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x6e70a52c	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x94653bdc	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbaac355d	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x04972ccb	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x08fe6278	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0dca226d	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1b4bc859	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4be0c23a	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x50779c4c	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5399ccf1	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x658701b3	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x66a04273	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9aadc321	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9acb1bb4	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xacf49dd6	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc555a033	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc89476e7	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xca73fba6	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xcb211730	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0bc7dd45	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x44bc9097	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x4bc9cf53	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x524e1b1a	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8aae7133	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9189889a	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x925a9066	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9cc55ccc	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xd327b76c	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xde011237	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe98f79f3	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x08eee113	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x110f4487	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1253b241	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x13277ec5	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1cc91feb	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1dbb26b7	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1f939625	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3ce901d7	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x43ef4684	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51608cf1	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5489e411	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x558388e4	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x64e369df	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6ce13d45	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x72383471	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x72859815	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7bee487b	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7c9928f2	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa301f14c	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa36245ed	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa85b51a0	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb0c59a1e	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb5006f5d	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbb93cd6e	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbc3e0e6e	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc8e4e5ba	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc9d23d92	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdfa97089	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe17b7967	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe29a75be	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xea038e50	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xeb16ec00	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xeb90aac6	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xecb5ea72	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf6c021b8	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x1c15f900	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x2e733571	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x82433de3	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x8e7cc15c	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xaca394c2	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xfec6b933	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x6691732a	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x71a5d1ba	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xcf25c42d	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x2cdc33fe	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x53c3c7d1	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x240c0773	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x99f29aec	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xe49bf109	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xe9c0265a	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x987aa5c0	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xab45906b	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xd9b57681	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0ede8cb3	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0f9dc037	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1a387d7c	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x262c5f92	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5cc1a30a	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6b57ee66	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6bfaafbe	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8c8d1232	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa17130f5	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa5469723	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa585c27b	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xace3bbc2	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xad158fdb	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb721382c	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc5a3c1e3	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc9dfe320	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd175c575	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd8b148ae	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xeba26a87	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xee6765e9	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf7e9f40d	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x7930ef24	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xee5c739e	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x081e2ab9	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x46ffb4f1	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xb41284ce	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x07f726bc	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x1233615e	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xdef7b686	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x9aa59fe0	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xf37251c3	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x04ef0c35	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x45e43d96	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x6e9468c9	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x6f5bb8a5	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x7ddf32a9	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc6fcc1c5	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x1b3745df	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x2b0fb16e	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x850a8720	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xcd8231c8	psample_group_put
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x1b0a0e2e	qrtr_endpoint_register
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x329710ce	qrtr_endpoint_post
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xba060912	qrtr_endpoint_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00e2c9ef	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0b486d6f	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0d16821d	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0d84d7ee	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x14c14f4f	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x25851f5f	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3465a416	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x349b6c82	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x35c0c751	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x466fec14	rds_message_addref
+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 0x5db59a41	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6127ae94	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x71d5e802	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x80736725	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8256d408	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x92d40b00	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9842f360	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb6469901	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2399e06	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc8af48a3	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xca2f2c67	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xcec5f191	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdab08579	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe3d98ee4	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf406152d	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf86a0079	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfbbac152	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd22dd56	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xff87775f	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x3a4237a7	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xa4ed44c1	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xd177f0e4	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xe4721bdc	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x00c1cf5c	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x3dffa6f3	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x493ec2f6	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x56a38d85	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc45b9035	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc8e1a652	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xcbdfc565	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd17d2692	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xee14599d	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xfa2c6386	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x5c63a807	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xa07200d5	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xa6ee9ad6	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe8c3622c	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x012fa87e	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02bf53c4	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0388a8ac	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04e5ca8d	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05a1a22c	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05c15960	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0996b8bf	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a44c2d6	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0beb480e	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c7a6810	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0cf478ed	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0cf72026	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e176d91	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e2f8d6e	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f0ea888	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f6d9a78	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ffc1e0f	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10359e4c	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11888e9c	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13b87d59	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14a76bb1	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x15870ae1	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x171b5ea9	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x178b6bbd	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17912d66	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x180e06aa	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1849bf9c	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1947253f	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a3d94c6	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a6d1071	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1afa9dcf	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1de95512	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f1d5c04	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20d0ccbe	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x212739fa	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22eb60a6	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x230af275	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25b48e40	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27042473	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29533fa9	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c07b83a	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c34496b	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cbefddc	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f24fc30	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f925be5	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2fe3d561	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x317471bc	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x331f3d2a	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x338607f1	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x338da272	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x356d326a	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35e7e1dc	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x363a1f0d	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x366b747a	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3827fa0b	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d1f4708	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d47e214	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3eb39e01	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40244099	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40b320a4	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40cdd22b	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41c65e3b	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41da031f	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41f9280f	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x432fe3b6	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x487ad9b6	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49224085	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x496018df	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ad0452b	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c27b9f7	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c7d4850	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d6aa2a2	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4fe4a4d9	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54613d93	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58eb53ba	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59cb1000	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e570725	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5eecdeb7	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ff83faf	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60127b65	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60548965	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6069a227	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x61f39995	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6527c8cc	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x669e1c4b	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66cfbc8a	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6701a7fe	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x699baed1	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69e4605c	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a77b897	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6bd13e13	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e8218f3	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e9e3026	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ee7ebf4	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f5b27bb	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x704ea1a2	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7212fae2	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78993b7b	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c25dbd5	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d3d96b1	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d733b8a	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7dd722aa	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e0cb4ca	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e492f31	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7edd600c	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f6e7a5a	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x835793cd	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83965841	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83ffc0ed	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x84d1cc78	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x874c9ac7	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x881d8ecf	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88656237	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89175dc9	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x894a4e2e	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a845849	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b36fd9b	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b5a12fd	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b8b603e	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bcea2b8	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bf78006	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cd4960a	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e9d06c3	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8fb30a75	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8fcdccca	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x909fa25a	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90ad6f66	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x914fdbe8	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x93f65a06	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x948b6bfc	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95cb5520	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95fa9c19	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9694703a	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96d0451b	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96f97ece	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98075271	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98bd309d	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x996b4a9f	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a08d7fb	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b3fa763	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bbff327	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9c449cb7	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d057f69	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d0ef4a5	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f6e63e9	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa05427bf	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1449962	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa5701a6	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa5e38d7	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaab5cc31	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xababf416	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac1fe1d5	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xacd81a94	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad67c021	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaed8876c	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb044db68	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1d3eeb5	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb5219930	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb7238ada	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb7a73daf	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb833c709	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb91868c5	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb924df4b	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbad12a62	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb4b316d	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf2aa178	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbfed04fe	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc1fae1c9	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc24812f4	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5c8174c	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5e598ac	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5f758fb	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc76498db	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc87948fc	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca0970b5	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca7c88ac	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbc12e3b	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcd464734	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce67bd10	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd111d4b8	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2e306a7	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd3b145c4	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd3ec3543	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5cba337	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd8efde81	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd95bb5ef	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9bffbc0	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdaffd325	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdbbd60bd	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdd825efc	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf3ee3cb	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf6b906b	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe14f7552	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe38bdadc	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3d7a370	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5af1e54	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6039350	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8ded195	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xead81bb2	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeae1ee9e	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb4125d0	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xecefd69c	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed90ff67	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee4d06db	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeed92627	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xefa3a412	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1f67205	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf25e5163	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf41986a1	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf49bbb24	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf54c7add	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf656ce60	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7232c47	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7f17241	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9b638dd	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfbef6eee	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc8499bf	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfcf82f37	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfd77333a	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdfe88be	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff646678	xprt_get
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xab0677fc	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xe2fd51ff	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 0x04b0f923	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x04cb096f	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x08d6afa1	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x10108684	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1d1302da	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1f96774e	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x237e66e0	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2e5e5431	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2fd0d021	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3348a6dd	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3a3d32b4	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3a703fc5	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3bfd22d2	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3fadcb2d	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x477df296	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7084fa6c	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x755d2161	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x76ace2c7	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7a77befd	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x80dd2bd5	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x88869c41	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8f4ae002	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8f589b75	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9a2b9ff1	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9b71c72d	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa438b35f	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb4aee590	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb918901a	virtio_transport_get_buffer_size
+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 0xc5045cbb	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcb10090a	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd932e70c	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xeeda5b7b	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf1c44714	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf7c14abe	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfb73220b	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfbc48df8	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1d92cbc3	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x49a42d8c	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4c564670	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4fbe6495	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5170fe71	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x57726691	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5c1139b4	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x63d3bf9c	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6550880c	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6d6108ee	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x887c8faf	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x902d32f8	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x962f5597	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbc3a3c0d	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe259e381	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe81e4415	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf5ceedfd	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfd356d77	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x3aa77b2c	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x4a643f90	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x75b634b0	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7a71f0d4	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x917f74ce	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xab1cdb15	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xac1856cb	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xafe78070	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb7df39ca	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xc09f4c44	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe42c1daf	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xf4206eb6	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xf962b692	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0a538682	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x121f17f2	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1c757f2d	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1c8bbe36	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2cbc1646	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x301176b0	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x37ca0d00	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x41883a98	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8d22470d	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x9803cfb3	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xab3686aa	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xad170249	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb9478d8c	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xbce48920	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc824760f	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf8b5fb3f	cfg80211_wext_giwname
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x018c28b3	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x8f0c7802	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x986f2df4	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xb30173c0	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x4ad605ac	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x09ad17a1	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x16b2e311	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x1951e2a5	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x662cb93b	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x6c885b31	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x6fd8e446	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x868607bf	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x9c90b86c	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbab2805f	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc5acdb30	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xe3b9ea5b	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x3a135824	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x47d38cf8	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x9592c18a	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xb30d8cc0	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x0cc1d5c0	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x0d104ed4	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x2018dbf5	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x21e1d9e0	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x3a014656	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x493a6c32	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x52d6333f	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x62cc5bef	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x6dfe60be	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa5b5a1b3	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x0e1ddf5c	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x4e2c6d47	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x5845d42e	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8c19587c	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa42d330d	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa6fbf271	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xcda75806	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xdbdfc025	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xe43f4000	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xeb0d9f9d	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xfca0bf99	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x48287eaa	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x762e7aeb	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2463a961	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2b8a8067	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2e684ca0	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x3cae392d	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x3cb9de2b	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x7c095acf	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xa47b4c3d	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x012c29e9	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0375c0f2	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x06a09fb1	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0a460c05	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0a6d9110	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0b301431	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x11547ffd	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x12e82dac	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x159863f2	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1dbd8c08	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1ef971e2	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x20b7cff3	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x20c5b49f	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x259a256a	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2814f82a	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x310e7f14	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x32d302ea	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3777d03d	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x396f4a74	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x39ae0ff6	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x402a624d	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x421757a3	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x43757631	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4cbcd438	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5159dab4	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5810bfbf	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x58cfb73f	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x58ed3e0e	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x590dec5f	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x599aa996	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5ae15aba	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5bb5dbb4	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5e28eca4	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x65583525	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x66f4af06	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67c2674e	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6afa480c	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6d099d78	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6e77e128	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x712e5087	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7268324b	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x72ecff46	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x74fab286	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x79c65892	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7d1c2f59	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7f848efc	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x926f70ec	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93266f08	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93f72415	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9ca8e610	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9cdc0e5d	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa2025062	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa6b34797	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa7c27c82	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa7de850e	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaa3f0670	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xacaf5d35	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaccc6707	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb0acd777	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb32bde75	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb4295234	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb45cfed8	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbea9a74c	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc0b3747b	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc0fb1f4c	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc3dfc715	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc66f6ec4	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc86bcf78	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc873819e	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8fb0b48	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc931d35a	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcc253ebf	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd95b20f3	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd9ef6f58	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdd2e5631	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe55324f6	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe5bf8b77	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xed7d4aef	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xedc6c407	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf09e431d	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfbc618ad	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xffb87887	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x4758c389	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x633eb9e3	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xaace53fb	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x0200fd39	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x6b678701	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x7297c61d	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x85159a9b	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x9f2994a6	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc2f96dda	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x00dca5ca	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x02100539	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x02400c7e	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x04b30747	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x065bf039	snd_hda_codec_load_dsp_trigger
+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 0x084d204f	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x08fd0c76	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0c14433b	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0c814107	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ecc4352	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ed62ff1	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x101abd11	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1056973b	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1123f307	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x144cd838	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14db01cc	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15cb7796	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x16b91ace	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1b9e298a	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x24f507cd	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2526ffc9	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x25c5aebe	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x289ba224	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2bd0934b	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2cd7b1a5	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2fc614d3	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x315cb1ec	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3334c135	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x369e35e5	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x377b9e58	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3cc33d57	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3dabf16f	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3fc87a9b	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x40fd8b2b	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x434bf54a	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x44daeb90	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4654eaa6	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x47637c46	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4824d0bc	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4864e76c	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x48671fcb	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4b0bd1a4	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x51101b53	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x57212a0e	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5a432e64	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5ca29ed9	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d53ab19	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5e784baf	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5f1df273	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x63a9a8c2	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x64cf15b7	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x657e5eef	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x65f15796	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x697dff2e	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x69935cfe	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x69a8b422	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6a02ad3a	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6cdc6147	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6dd4e2d5	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f624560	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x700ededf	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x713f3ef1	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7c6ffc95	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7e1e3b23	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7e54f2bf	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7fcb7018	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x80319af7	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8ba2137d	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8bc65aa0	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8cd96e85	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e9d91a5	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8fc6a5d8	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91e67c46	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92b762ca	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x943cdf9c	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x945ba0b2	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x963a0af1	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x986a9eb0	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x98917ed4	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9b8ec9f3	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9d03005d	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9da5c63f	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9ff993eb	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2699d2e	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2ef0d72	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa4a395b3	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaaf547a7	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xabc05bc5	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb10ac4e6	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb394e067	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb7b792c0	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb905b720	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xba502acd	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbabdc3e9	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbbbd4375	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbd7e7688	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbfec8f91	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc4401ee5	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc53b9eb0	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc8a941d7	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc8d09b19	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc9df72c4	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcd54b480	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcebee24d	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd10e2c02	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd2d2a2c1	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd2d60f68	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd60280b3	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb041779	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdd451d3f	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdfb6c4a0	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe39b2262	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe6827dd7	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe76518cb	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe8c59a36	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec5c9f6c	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xefe5e692	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf6e3ae9f	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf80e230a	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfb7e9be7	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff86927a	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x02021f6e	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x09f28953	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0a476122	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x20607e19	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2bfc5872	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x342d4d3b	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x39687a66	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4cd7ff74	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4f9ede0e	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x53283e7e	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x615aba3d	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x61e0d095	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6e98950e	snd_hda_gen_check_power_status
+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 0x850a1a36	snd_hda_get_path_from_idx
+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 0x930c465d	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9e6df7e9	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb0312f3d	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbd68176f	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbe4fc3e3	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc1d8862e	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc7bdd25e	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd9c49972	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xba0ea23a	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xdfcca4f1	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2e647d78	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x56bf9fab	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x76ba681f	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x7e993685	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x8ea7b251	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x967c9ec3	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xb0fdcd13	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe4def5c8	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe8000346	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xf467f94b	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x17134c1d	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xf584a2ea	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x68eda55a	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xae836b31	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xb0e0b6f0	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xbb6af2a4	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xd1e4b4c9	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x652dc9ee	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x80bc517f	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x93a8d99b	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x0e4794f6	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xb4d66824	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xef2e341f	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x16cc79a3	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x5ca5fa0a	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0xf6eae1cd	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x331ad2a0	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x79479687	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x6adfe491	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xc8f3112d	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xdb08812f	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x6d6f48b9	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xa733b8f5	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x0fffe864	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x2027746e	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x18bc76ba	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x45cf7069	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xec017092	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xec46692d	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x46267cb6	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x5187d1ee	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x8c7ec19d	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xd407d74e	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xab9a0b89	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xaf55d7e2	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x1b34ac6a	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x648ef13a	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x9dead33c	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xaa4c96ba	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xb6828b30	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xc124dc6b	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0xa23d35ed	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0xe89bdc2b	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x15d34aa8	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xe88c0f56	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xc81d9498	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x72952f8e	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x06be021f	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x370b0831	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x92afb21a	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xce1bba11	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0xa16055db	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x91cdc31f	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/imx-pcm-dma 0x3144b615	imx_pcm_dma_init
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x46491d8a	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x8dce1dbb	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-simple-card-utils 0x02b53c99	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x188b3821	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x195538b2	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x1bb1830c	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2528f997	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x268815d7	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2e1b8795	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x33a4da64	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x37c66b44	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x40200619	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x63f516ed	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x790aaf68	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7e0e9a13	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x807484f5	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x97491014	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xacafb96d	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xdf6dba6a	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe9899827	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x1c777033	mtk_afe_add_sub_dai_control
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x2935283a	mtk_afe_fe_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x33dcba4f	mtk_afe_pcm_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x378db567	mtk_afe_combine_sub_dai
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x3f6f3907	mtk_afe_fe_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x433d302a	mtk_afe_fe_hw_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x4517778b	mtk_afe_fe_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x48af6db9	mtk_afe_fe_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x52da742c	mtk_afe_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x6041a496	mtk_dynamic_irq_release
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x6ad24585	mtk_afe_fe_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x737469bc	mtk_afe_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x7be4653f	mtk_afe_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x8e783c64	mtk_afe_fe_startup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x8ecd57ab	mtk_dynamic_irq_acquire
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xdf4c6eac	mtk_afe_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe5149314	mtk_afe_pcm_platform
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x391d3779	axg_fifo_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x73190b0c	axg_fifo_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x792c1ccf	axg_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x8c3669cf	g12a_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x216268ee	axg_tdm_stream_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x30434342	axg_tdm_formatter_event
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x39562711	axg_tdm_formatter_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x9258a990	axg_tdm_stream_stop
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xb0e9b620	axg_tdm_formatter_set_channel_masks
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xd6361dff	axg_tdm_stream_start
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xf2948bf2	axg_tdm_stream_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x73093a23	axg_tdm_set_tdm_slots
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x17a9ec1e	q6adm_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x28421460	q6adm_get_copp_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x30e519ed	q6adm_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x45867755	q6adm_matrix_map
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x369b6eeb	q6afe_port_put
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3997e13a	q6afe_is_rx_port
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3b16d6e7	q6afe_port_stop
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x498d993b	q6afe_get_port_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x5332304f	q6afe_slim_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x7df60063	q6afe_port_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xa0deed10	q6afe_port_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xae809786	q6afe_hdmi_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd4523c59	q6afe_i2s_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xe45246a8	q6afe_port_start
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xfaf22370	q6afe_tdm_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x151ae9d4	q6asm_cmd
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x40299233	q6asm_run
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x5382edf1	q6asm_open_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x600a035d	q6asm_audio_client_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x68db31e2	q6asm_unmap_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x6eb89e95	q6asm_media_format_block_multi_ch_pcm
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x7353d9dd	q6asm_cmd_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x857330c9	q6asm_write_async
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xc5a116a4	q6asm_get_session_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xcc4952e4	q6asm_audio_client_free
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xd599e50f	q6asm_enc_cfg_blk_pcm_format_support
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xdbedfcd9	q6asm_run_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xe060c0a1	q6asm_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xea75a5dd	q6asm_map_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xf37f832c	q6asm_open_write
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x7e52e977	q6core_is_adsp_ready
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x9b02ea0d	q6core_get_svc_api_info
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6dsp-common 0x17142e58	q6dsp_map_channels
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0x5b75f756	q6routing_stream_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0xa7a64259	q6routing_stream_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x05b16bee	asoc_qcom_lpass_cpu_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x729b3758	asoc_qcom_lpass_cpu_platform_remove
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xe6cdf2c9	asoc_qcom_lpass_cpu_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xe869d069	asoc_qcom_lpass_cpu_platform_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-platform 0xd05a953c	asoc_qcom_lpass_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/rockchip/snd-soc-rockchip-pcm 0x4650001b	rockchip_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0047c7a5	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x017d2b39	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x037a95cf	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x041fab27	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x066caa2d	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x06e681b5	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0af8ab48	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c3fedbf	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e0353c0	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e66c9b7	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e7b321e	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0ebac0cb	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f0b75a7	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f656515	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x13eecf77	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x148d31ae	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1627533c	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x16fe6f13	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1742ffcd	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x195d2a39	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x19908001	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1b02620b	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1b3774ee	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1b47bb0c	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1cd919df	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fdc1780	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22b8fa17	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x236b88a6	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2589687b	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2843d3b0	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2af93ad1	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c661778	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2f20dc34	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x33d52d99	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x37e000e8	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x38121a8d	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x38eea8b1	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x39958df3	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3ab2cf16	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d8c87d1	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3efe794b	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f4e10ab	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40baab75	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4236feb2	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46535316	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46bd0488	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46d870a8	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4768b729	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4b46d231	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4c1207b8	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4c1ee3d2	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4df3ad29	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f359737	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4fccc202	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x516e8e41	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x52040c74	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x55507fdd	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x56cb210e	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x59ed8fc2	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5adac47e	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5b8ba480	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5c254981	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5c535486	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5db88f77	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5f5d0ec8	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5fbaa1cb	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x601df0a2	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x610d2692	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6295721d	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x640ae9a0	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x641317de	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x65f5fe2e	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x676dfd30	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x69da9add	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x69ff7d97	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6b9d3c2e	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6c107fec	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6df7280b	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f1911c2	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x70119bc2	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x705f0198	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x70f753a6	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x71d6f768	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x766d16a1	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77571065	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77fa429a	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x780c5bc5	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79442826	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79b711e9	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7d1a7ad1	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7dc64153	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x822af425	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x855140ad	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85a1fb9c	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85ebf593	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x881c91ae	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x91d2e77d	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x92701631	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x92bae6f8	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9350f2b1	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9415973a	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9501b844	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x998c8804	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9d27587e	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9f56803b	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa183b4d1	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa1aa7718	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2f491f4	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2fea9bd	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa34c5d41	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa4f10820	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5954936	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa64da4f1	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa888a4e0	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaaa039a2	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xafeb0197	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb1362ce1	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb87611e9	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbd082dd9	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbe058fc2	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbf63705b	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc0e978db	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc3bc2e96	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc4d419e6	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc7c25f05	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8d9b8c9	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb073c8a	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc7c3219	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xccbbb47e	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xccc51127	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcd4ee7c6	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xce1e0ca4	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xced186b8	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xceea7941	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcf59a57f	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd4d90e24	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd4e7ebf7	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd5ff70f8	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd6107b61	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd63ef07b	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd6c8830c	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd71792ae	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd75fa0a9	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd7bd7165	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd90049d0	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9297a2f	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9f16e04	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xda29b3ae	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdb4b2c5b	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc07fb81	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf352496	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf65621c	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe0717f76	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2aaa569	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe5372aaf	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe6f7c64a	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe9b295c6	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xebe4fe99	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf0884c70	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf3c2b268	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf6c1ddb2	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfaec836a	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfcba7c8d	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfce7df38	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfd8101e0	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfe1e7955	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xff1ac750	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xff349b98	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x58218d8c	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xbe5a5786	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xc66b9573	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xcbfcf89e	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sunxi/sun8i-adda-pr-regmap 0x37a3a5c2	sun8i_adda_pr_regmap_init
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x03673c71	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x09956230	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x134d4993	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x14b923d9	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x22f3f36b	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x707e0956	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8d5f1289	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xac1b9872	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb7663244	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc0c1660b	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc87a796c	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xda88d922	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xeb7755d5	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf8fcca1d	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf9ae5153	line6_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x003e76f8	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x004371f1	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x004fda87	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x005112eb	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0054e34c	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x0085373d	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x008c012b	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x008f23dd	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b2c0f0	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b8c40b	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00dcdef3	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x00de8071	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x00de957f	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x00fb008c	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x010cb30a	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0119b1b5	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x01286c1c	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0129531c	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0133e3ba	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x013533ad	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x014aede7	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0155cfd2	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x015f8cc5	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0166ca90	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0166dbde	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x01705351	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0179633f	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x018618d8	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01886b3b	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x018a14d8	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x01933043	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x01bbbc25	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x01bec281	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d19867	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d8ebc9	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01eb30de	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f1267d	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f21cc9	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01fd58e7	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0208bbff	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x020e2137	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0213e099	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x024893dd	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0254edbb	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x02773473	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x028da2fa	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x029225a3	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02978b06	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x029dd9d5	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a5a1cb	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x02aed239	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d9bac3	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e87eea	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x03084ad8	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x03099cde	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d7205	clk_half_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x032df1bb	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0365dfbe	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a4246b	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b2ab10	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03bfd3a6	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c19287	dprc_get_obj_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d5b00b	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e6309e	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e9a42f	fsl_mc_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f187f1	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x04017bef	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04130169	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0438ae57	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x04458da3	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0464fbfb	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04726629	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x047addd7	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0482f5e2	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x048eb6c4	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x04971164	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bfccb3	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04da3ee0	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e7b541	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ed0dc5	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0509b1b8	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x05152e2b	timer_unstable_counter_workaround
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x052daa9d	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x052e5eb2	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x053459e8	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0538873e	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x053fd5c2	bgmac_enet_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0540ce1e	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0543dd40	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x054b35c4	bgmac_phy_connect_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0578ff4b	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x057ae72d	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x057f054f	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x05825f85	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x05843f09	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0585e8b5	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a2f7f4	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b682d3	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c112d3	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x05cb5ced	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d3ba62	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f2acaf	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x0611c012	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x063fa439	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x065bd1db	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x066227fb	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x066c534f	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x068df775	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x06aa21b9	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b714e9	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c7bcaf	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c7f4a3	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cce0dd	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d13cfa	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d2c50a	fsl_mc_object_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e4433e	sunxi_ccu_set_mmc_timing_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ee65b6	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0725086f	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x07277e79	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x072e15fc	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x07317774	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x07440d0b	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0748f3a7	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0750a248	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x07531873	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x0753b366	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x075c4ad0	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076f70b9	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x0773186e	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x0778d686	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x077c7503	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0789b0d3	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x07955b2e	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b2c19b	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e4d006	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e7046c	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ee0879	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fa055e	scmi_protocol_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fce564	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x080081bd	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x0804be23	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x080f9a74	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0814712e	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x0823cab8	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0837c6dd	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x08469db1	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0852cf01	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x0861ed1a	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x087a39a0	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x088b4ecf	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x088e2979	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c561f2	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e920a5	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ed7dab	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f3ccb9	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907a68f	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x090b71d4	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0921ed31	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x09227622	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x092cac80	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x093d9d7c	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x093fd5ae	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0947f32d	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x094e1bd0	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x094ef6e0	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x09701762	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x0976d5e5	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x098272f4	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x099eab4c	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c71c6b	dpbp_get_attributes
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d3641e	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d41705	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d80b3e	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e49010	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ec0bc1	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x09f8436f	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0321f8	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a10f808	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a239e1d	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a30e353	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3239f3	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a42bc64	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a44aac6	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8bc674	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9679e3	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a97ac78	ahci_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa25605	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aca9d03	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0acae253	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0acbaa88	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0accf035	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af13b45	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af4b438	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af7f726	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af99f91	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b03b2fd	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0e53d3	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b261fe0	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3201e0	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6cad20	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b717b21	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b842726	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8ac846	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b91c9db	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb028d4	hisi_clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf1aa77	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf4d64f	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf99723	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c07ecd4	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c12b4ba	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c48ee1c	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c59d498	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5b9d7e	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c80ada2	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c99f51e	ahci_reset_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc0c947	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cd17130	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce3dd73	bman_is_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce72fad	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce7f376	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf95577	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cfb627a	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d05a871	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2aa8e7	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d380a38	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d380a86	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3a2287	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d40d8be	ti_sci_get_num_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d592b11	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6b7721	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d7505d4	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d79adb5	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d9d2a33	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da20d7b	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da720ea	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc0b3bb	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc1e0b9	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddd52d5	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de3694b	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df45bc5	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e05fce1	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e070ff8	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e08a568	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e21b830	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e27fa18	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e2f6217	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3491dd	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3632be	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3d6ac6	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e444601	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e51ac3d	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e522179	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5bbbff	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5beef1	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e711872	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8425de	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e851691	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e930eeb	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecbd686	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed80f36	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0edef87a	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef1e6d9	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0ebce4	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f14711c	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f18fb27	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f37a006	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f575e8d	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6baf54	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6cd801	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f81e45e	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f87fccd	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9527bc	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faff406	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fb45e8c	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd53712	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd84eb1	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff3f939	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x103241c9	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x106a39ef	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x106d4e98	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x107e8f91	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1091f933	bgmac_enet_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a53115	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x10b746d4	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x10be8dd6	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x10cf0838	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d64338	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d9261e	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d95aed	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x10da536e	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e5199d	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1102ef24	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x112c73f3	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x113ccfbe	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x1143f2d8	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x11484d8e	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x11786de2	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x117cf572	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x119a8f1c	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b99397	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d3b0c3	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d5f062	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f724dc	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x11fda9e2	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1203e887	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x120491d9	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x120bbfe8	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x121711e8	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x121c5343	fsl_mc_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1252f601	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x12560eb3	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x125a2d9a	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x125ae529	dpcon_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x125e92c0	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x126e6c2c	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x127ccbee	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x129b96da	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b901c3	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x12bc65b5	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x12be9517	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d9399c	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f4cb9a	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1302797f	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x130b98ab	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1311cbd4	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x135ab040	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x13607153	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x136ed704	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x139b1558	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x139c8ee1	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a313ea	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a48cf8	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b7c8be	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c0a067	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13dd0514	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1406618b	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x140797ed	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x141081cc	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1415fd46	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141b4bfc	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x143e62fc	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x14630eb9	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1485a307	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x14894fb1	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a048fb	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a2d1db	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ad53ef	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d4e383	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f415e8	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x15069589	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x1510a3e3	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x152107cc	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x153f87b1	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1552c2af	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x155cd3de	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1565bb2b	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1567f6f4	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1596b068	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x159f1caf	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a969b2	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c2a89e	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c5d2da	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c91a4b	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x16026167	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x1606f616	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x1619a188	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x163aed9c	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1643ab55	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x164c0784	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1665662d	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16678d3a	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x167c3442	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1692b271	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1695d1fe	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a1ce59	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b752f4	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c96a64	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d4ea27	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d8f31a	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16eab3a7	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f0a05e	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f93aa6	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x170949c0	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x170d383d	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x171267c0	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1718884d	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x1724fa2f	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x172f9724	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x174aa256	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ab060	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x176dd2de	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c7676	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x1784d74d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x178b0990	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x178cdadc	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x1798e757	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x179cbbf5	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ac4840	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ae2db9	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b6e79f	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d7f2cf	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e2a4b2	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f392bb	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x17fc7d56	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x181ceae5	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x182863f2	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x182f0a60	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1860b1d8	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1897eef7	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a83b7c	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b08dec	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c040d1	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c22b5c	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x18cfe79e	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d2c6b4	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e05f7c	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e9a3c1	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f07a52	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x19072062	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1912be8e	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x191d006d	devm_ti_sci_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x192a148e	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x193e3f5c	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x195504a6	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x19583b8d	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1959168f	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x195e8608	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x19600697	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x196182d2	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x19656b23	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x197a2824	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x19808888	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x198e3127	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a480ef	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a70a8d	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a9f7a9	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b1f7e0	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19ceee7a	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d62059	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f4df34	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fff823	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a016eef	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a080851	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a126db9	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a138afe	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a240f3f	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a59d4a5	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5ff1d5	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6466f7	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a72e1a2	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a898fdb	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a968394	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a97dbc5	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a989715	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a98f296	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa74d3f	fsl_mc_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab6d8cf	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac54adb	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae05cf2	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae56fac	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aec7df2	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6c9aa	clk_regmap_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af929e4	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b15e368	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1aabab	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b2453ac	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b2ab01e	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b394cf6	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3fa3f6	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6bbe2e	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b830349	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1baa49ba	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb96a38	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc3c520	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd176b4	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd6dd9f	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd7c90f	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be74c19	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be77421	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bfd5b1a	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bfec839	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c12df55	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c358df0	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3a3b47	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3ca311	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4dac3f	vfs_listxattr
+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 0x1c74ec45	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c971711	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca4a930	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca7b006	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc7018a	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ccd1d3a	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd20467	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cec3b70	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1516e4	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d262aab	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d299cbb	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2eaf30	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d31143d	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d50f8ae	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7de0d2	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d977730	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9b91d7	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9facb3	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da76adb	meson_clk_mpll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc28f47	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc46c8c	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de80f3c	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e116990	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1233dc	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e124d48	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e189b2b	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e27c7db	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2bce45	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e319396	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e451e08	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a4b99	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e694ad2	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e83fee6	HYPERVISOR_physdev_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e860947	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e899f40	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9b4b66	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee23875	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f126367	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f140b74	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f25c04f	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f30a8ad	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f40b473	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f6d8c42	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f72c116	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f73d650	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f79723a	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9064d4	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa8786d	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbc00c2	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbd2d6b	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc5ebfb	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd71a54	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe263b8	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1feca14f	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x20051a3c	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x200ed953	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2010aa9b	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x20190b70	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2021ae47	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x202beedf	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x203e20e8	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x204295b9	bgmac_enet_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x204d097f	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x205595d8	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x20565df4	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x205ec061	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x206dc82b	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a0d8b3	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b5f6e3	xhci_mtk_sch_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x20bba7b9	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x20bd0200	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c24636	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f9c8b6	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fea5a6	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2118e0ab	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x2123bfe5	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2126cd41	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x21288009	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x21342aaf	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x21358164	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x215f8642	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x2160b502	acpi_irq_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21798e0b	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2182dd8e	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a944a1	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b035f4	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x21badb37	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21f158ad	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x22077fb6	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x222dfc2a	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x22337d8d	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2237b459	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x22423978	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x224dbc8a	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x22801c98	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x2298a986	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x22abb066	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c7b475	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c9564b	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ddbd1d	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e28a07	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2313a7f0	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234af53b	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x234c5b27	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x238ccefc	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x238dd705	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c516ca	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x23cd6199	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d6736b	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23dbfd06	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x23de2b3e	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x23ffb13d	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2416425d	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2421be10	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x242bdc66	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x244dc88b	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x24534415	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x246a31e4	devm_regmap_init_vexpress_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x246bfe3f	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x24778a55	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ad357	rpi_firmware_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x247bb988	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2481f3a1	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2485f7c3	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x248b7a5f	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b6e369	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e1ac50	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24fe7ab5	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x25027791	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x2504ea34	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x250e213f	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25342533	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2537665c	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x254bc5b0	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x256a784c	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x25733820	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x25926b89	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b9f92b	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x25bcbcdd	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x25bf74a1	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ead56a	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f06ce6	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f2db42	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x2618bdaf	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x261bd8d0	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x262dddcf	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2644af8d	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2645450d	ahci_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2657107d	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265ce8e4	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x265d23ad	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x266397c8	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2673cbda	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2677c1eb	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2680ab73	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2686268a	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ae0ae6	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26eedeed	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f0d002	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f22941	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f8032e	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f9ef0c	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x2702605f	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27193324	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x271b5f5a	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x271ea924	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x272e9d77	hisi_reset_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27400f45	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2745e33d	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x2754197f	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x27543f4d	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2754dca1	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x276466e4	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x276b0a17	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x27715e4a	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x277755e7	dpcon_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x279061c6	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a6e85f	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ae8466	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b4fe4b	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c085b2	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c48012	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ca11c3	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ccca30	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d21443	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x27dbad03	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x27dc6924	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e78d35	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x28019294	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x28124b7b	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2819ac95	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2828a239	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x282d1d77	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x282e18c9	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x284832e6	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2854f88a	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x2856522e	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x288021a7	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x288773ba	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x289438fa	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x289847f5	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a88ab4	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+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 0x28cfda05	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f26684	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x29147ebc	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x29493732	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x294aa5f0	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951c97c	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x295b982a	hisi_clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x295bad91	xhci_mtk_reset_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0x29801cda	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2988dc71	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x299b6b6d	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a4e13e	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ac3ea5	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ad8065	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x29b0cec4	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d6e055	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a042d6d	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0a40fa	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0a5745	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a142a16	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1cebf0	handle_fasteoi_ack_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a32e8c1	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a48fc84	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a61b0ec	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7da479	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a868109	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a880565	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa49e45	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa936bd	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aac79f6	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab4a700	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abd33ec	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x2acac8f7	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad13274	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad23ac1	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae5c1ca	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b01a6d2	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0b9a8b	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b228055	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b3521cb	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b35fea5	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b61497e	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b730482	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7941d6	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8a7ecd	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b960b66	qman_is_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba9241b	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bba2d54	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcf692d	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd16a93	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd280e4	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd496f0	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c18d144	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c32c1a3	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c48bfcf	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5994e2	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5c2516	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c61444e	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c64dfbf	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7746a8	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9bb9dd	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb069b2	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbbda79	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc495c5	rpi_firmware_property_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc858b9	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ccf4a11	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce03d8e	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce192da	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cf26e3f	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cf826d2	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d034170	rockchip_pcie_parse_dt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d158086	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d174a69	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1a7f4a	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1aca2d	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1d63c8	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d40f679	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7278f4	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d84fa64	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8a7403	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d901781	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d904082	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9538a0	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da6d97d	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da87392	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daecfd7	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db67d4a	owl_sps_set_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db73a0f	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dbefa6e	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc35d09	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dcaf31e	dpcon_set_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de8a44f	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df307e3	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfcb653	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfccc05	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e251e31	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e25b5bd	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4550c9	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4ebbbc	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e6e9108	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7deb08	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e916c9c	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e9f12be	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea32e74	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea69a59	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebd73cf	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebf794f	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed221cc	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edf2baa	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f009113	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f06b0f3	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f354b74	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f550115	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f57c6f7	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5eeca8	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f651cd5	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7f3daa	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f9cbe0c	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa658c9	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2faec116	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcdb47e	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd39517	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd3b02b	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd72740	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fea3ad2	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff8bcb5	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3009e651	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x30276914	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x302c6557	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3038813b	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3041a836	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x30426c41	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x304c73de	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x304c7b54	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x306b8090	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x306f5576	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x307544a7	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x30777ae8	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x307acee0	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x308c5fe6	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b44390	ti_sci_inta_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b74bf8	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c1bc4c	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c6102c	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dcd8b1	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x3106bd26	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x31214dca	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x3129123d	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x31372770	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x31431151	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x314c59cf	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x314fdaea	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x315caa4e	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165c08e	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319dd221	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ab6f8a	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b3bb63	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bf2f25	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31df313b	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e22f32	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e4d1bd	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3206d297	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x3207e0df	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3207f9a8	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x32095aba	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x321aecc2	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x32235a66	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x323b548d	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3245ba58	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x3247a5df	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x32608f0c	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3268866b	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x32844620	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x32966c4b	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3299fbb4	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b5bb58	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b86ea9	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ba8583	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d834ca	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f58d61	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x33063f1d	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3322085e	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3325acb5	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x332917c5	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x33399c1c	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x333b80bf	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x334753b0	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x334c2094	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3359004b	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3372f969	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x337a905d	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3399a48c	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cb9359	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d59b86	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ddd918	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f1ca4d	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fb1924	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3402f2a2	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x3415d621	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x3416ad25	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x343b4333	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x34458df3	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x344c7057	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x345473df	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x34697e70	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x347e91b7	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3483b533	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3484914e	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3488c673	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x34986d13	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a5fed6	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x34af5505	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b53aff	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b76261	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bd9667	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c3ee64	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x34de4d27	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x34de841c	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e6a94c	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e820e1	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fa3284	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0x35068beb	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x3510bc02	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x35693d44	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x3571496e	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x35748ca2	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3579b6f0	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a384ca	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b4cd43	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c0ed3c	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c1aa68	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c2114d	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c2f7f8	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c8e0c9	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e1280f	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x36320568	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x36353e89	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x3647aa86	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x3655429d	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3656fa14	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x36832947	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x36868020	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x3691de49	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a538d4	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b7df8e	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x36bfd568	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c32401	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x36cd678e	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x36dcfe7f	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fd0878	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x370088ff	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x37010469	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x370fdfaf	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3716b250	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3741dfef	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3746697b	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3757de22	dpbp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x375a1e67	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x37699ec8	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x37781d12	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37870434	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37aa3cb4	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b4104d	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37beb725	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x37cd89ed	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d8bbf1	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e22c24	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e4f44b	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea2cf0	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37eff1f9	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x37fd5739	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x382485e9	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x382a55af	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x382e695f	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x383f61ed	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x384d2a1c	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x386a7a64	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x386fc1db	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x387e50d1	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x388d546e	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x388da3d4	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x3891107e	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x389d878c	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ba0208	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x38bafa6e	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cd0ae0	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cf00a7	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cf3508	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d5f938	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f0e550	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x3905c43f	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x390986fb	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3921625e	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x392bc8ce	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x395cb369	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x39695d61	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x396d43d5	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3972890e	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x39739e00	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x3976144c	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x398e90ca	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x399a48d9	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a217fc	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a2e276	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a93b26	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d1faf0	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e81111	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f1fca0	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f726d1	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a01f2d4	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0bdf6a	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0db729	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a125f71	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a43ea55	reset_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4c6133	of_property_read_variable_u8_array
+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 0x3a567270	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5b266a	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7332ee	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a814bc0	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a902af4	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9cfdd1	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aab795f	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3abf82ee	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac40d3d	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac6856c	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae08a91	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0f6e4b	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b103581	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b16b3d6	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b211ad3	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b285866	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b40efa8	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b51247f	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5b0ddb	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5d659d	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b6f3aed	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b71f6f8	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b78bf02	sunxi_ccu_get_mmc_timing_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b89dd8b	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bab64ed	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb1e29a	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb8fe0f	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd68b64	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bec25b2	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bee8020	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bfcb6e5	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e6a1a	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1f04ab	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c377768	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c39be23	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c43445b	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c5f5ed0	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7081d0	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c82ae5f	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c879823	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c89dfc9	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c8fce21	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9c3cf6	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd54bf1	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd6f158	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cda627d	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce2f47c	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce36ce9	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce77caf	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf349c8	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a9f13	clk_regmap_gate_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d1862c5	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d19528c	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d50b5ed	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d534de7	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d53902c	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6c2928	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6c8ac6	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6d72f3	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d71cf16	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d898db2	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d941e2e	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db8a2dd	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc24095	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dde2e7c	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dde7edd	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df034f9	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df25e07	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df84bc6	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfe12a4	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e076528	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0a67a4	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1445fa	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e2b986e	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e2ded47	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e2e6e24	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e40b4a9	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e605145	ti_sci_release_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9df089	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea050c7	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec0dcaf	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec5f105	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ece6320	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee7feb9	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0385be	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f082d30	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3ee725	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f529e6d	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f535041	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f64cc89	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f800d9d	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f831f42	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8bb386	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f953c07	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f98454e	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbf1643	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbf2829	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fdf4e41	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fea029c	hisi_clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3feab9d9	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4004886d	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x40078e52	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x40232d78	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4039d11d	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4040ed67	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x4048d049	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x4057d07d	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x405ed1a4	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x406028d4	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408147aa	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x408e6c4a	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b519fb	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x40cec03e	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d2172b	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d41595	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e66fdb	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x410d9fd7	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4113609b	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x41237f71	cpu_have_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x412e12a7	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x41502e41	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x41584e4c	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x415b9555	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4163b8ca	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x416acf7a	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x4184a360	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x418f4d65	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x419123ae	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x41997f8c	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c3d6b9	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420d0324	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f1b66	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4215b136	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x421dddc2	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x42210108	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42232cb8	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x422c9c4c	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x422f5f8b	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x42486c4e	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426e01b6	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4289267b	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4290d3ee	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x429adbbe	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ac6a8b	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b02dc8	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x42cb0a81	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d2d6b3	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ea8cf3	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x4305f146	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x43355131	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x433f5cc8	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x43451859	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4346bfba	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4349ed37	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x435c8e46	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x43751884	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x43755c25	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x439f149f	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aed4fe	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b0e028	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b7d8af	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c2a786	__cpu_clear_user_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c5eea5	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ca4a0b	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43fbb75d	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x43fc7cf5	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x43fe700a	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x44121378	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x442a605f	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x443d2aa9	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4449dcda	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44536c9b	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x44720b99	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x44816bc9	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44902dbb	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a793ab	HYPERVISOR_grant_table_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ad20e2	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bd37c3	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d10480	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44eb2243	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x45044645	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x451b8e32	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x452811e7	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x454ef004	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x454f8e90	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4552f541	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561f990	qcom_smem_state_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x45685f22	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x458a0314	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x459b0143	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x459faa6d	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ac354e	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b9fe9e	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ba2682	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x45be363f	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x45be4ad5	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d12caf	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x45dcf3cd	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e7a654	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4629f4d2	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x46354409	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x4635f1d8	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x464602f9	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4662976e	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4673357d	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x4675564b	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x467b8472	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46954921	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a97f4f	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b9e8d5	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bc901c	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ce2e6f	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d68c22	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d73563	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d7cf4e	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x46dc7008	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f23aa6	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x47150533	rockchip_pcie_enable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x473ec505	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x47465543	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x475c4ba6	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x47604fe1	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4771068f	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4780c1f8	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47acefb3	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x47be69d8	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dbbadd	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47eab499	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x480954d3	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x480b3449	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x481069ae	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4815aa79	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x48390341	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x48414a12	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4843a748	qman_portals_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x485c5843	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x4860129d	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x48692957	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x487d579c	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x48891537	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x488d4e1b	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4898acc2	xhci_mtk_sch_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x489e63e1	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x489e91f3	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48abb880	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x48aff828	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bb08a5	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ceb6e8	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48fee570	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4901921f	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x490f88c1	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x4919f3a1	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x4922fc8b	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49660a58	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x49790ed2	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49978b1f	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x499a258a	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a0ad73	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a4e6e6	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x49aab2a4	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c2f452	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cd8d37	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e0fd21	__cpu_copy_user_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a1462bd	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2d9fb2	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5e9027	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a62b0d4	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8eab65	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa0b17c	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac083e9	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4acec676	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad33eec	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad5bf58	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad7d04b	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aed6eef	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b009b32	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b289338	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b424d92	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4b8cd9	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b529c38	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6a86e8	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7e4d3d	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb0850f	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc2813f	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc5f385	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bce7d65	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfb6d4d	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c0b4529	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c17a799	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c1b9507	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c209a5d	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c266385	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c29ca14	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c34b851	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3695b6	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c585336	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c680a4b	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c7f4c97	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c8401ac	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c8dd459	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9333df	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca8b0b1	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb466ac	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdbcd75	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdfa957	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce20968	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfb5af3	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d06fb71	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d20687d	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d29d0fc	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d347d10	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3583f5	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3918fb	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d43a46f	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d449d60	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d44f58e	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d54ab3a	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d5a647b	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d95d6d1	memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db7866e	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dbad491	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dbdb767	ti_sci_get_free_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd2b278	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ddb5465	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de1a0f4	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de8cf52	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df82612	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e10b76e	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e19b1e7	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e2d3298	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e35ec56	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3edd21	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fa258	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e488168	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e4cbcc7	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e62907e	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6d3e12	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6e335d	dprc_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e72c65f	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e84990a	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8e6fc6	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea443af	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed12020	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed3e0b0	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee4a2fe	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee533cb	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee72cc5	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5ece6	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efa174c	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1cb5e1	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f245a0b	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f25cdce	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2648cf	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2eeeaf	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f359724	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3a4749	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f443811	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4be101	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f593a17	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6eec8b	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6f48c0	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f74038d	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7538f5	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f940d32	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f99c6c1	mtk_smi_larb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa1e9c7	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb0ff0b	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb2e3d4	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbf4961	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc13d49	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc49d52	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd761a5	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff3003f	meson_clk_dualdiv_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ffbceb1	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5000dc4c	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x5003d86a	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x500514f2	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x50070fce	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x500735ce	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x50121bcf	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5029cbbd	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x503a22ce	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5045895d	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x504694c3	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5055a1cf	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x509f75fc	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b2c899	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c2ae54	rpi_firmware_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f265e5	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f3ae53	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5106ddfe	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x51111bf2	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x512ff1f2	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5134bc4d	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x513bba2c	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x51486886	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5160d001	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x51667dfe	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x5177b631	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x51881003	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x51916334	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x519beece	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x519c8c00	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b2c881	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c41f63	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e2d328	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x51eace2e	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f05c41	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f865c5	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fa7652	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fc9a6d	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x52089509	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x52154b56	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x52170421	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x526292cc	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x527139a3	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5298a1d8	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x529a3bd8	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x529b805b	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x529d9bd8	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b94151	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ce8b44	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d578e1	hisi_reset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x52dfb83c	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e4ee18	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f6ae1f	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x52fa946e	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x53031574	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x5316258e	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x531cbabc	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x53302120	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x533449e9	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x533e66c3	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x533e8364	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x534b5fb8	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x535814b6	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x535c09f8	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x5360bc6a	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5369effe	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x536dd080	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x539438fb	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a8a0ba	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a9335f	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b2eee6	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b7982a	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x53befe3e	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x5404de1d	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5415fad9	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x542d5815	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5442e7ba	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5447d5f3	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5452113d	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x5457c896	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0x5468bb70	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a25da2	qcom_smem_state_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a666c7	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b8faf9	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x54be5a70	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d2eb01	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e5231b	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ed6eae	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x54eee5a9	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54febcb0	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x551ad0ce	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x551f503d	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55414ac8	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x554cd9dc	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556ab30f	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5588396d	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x55948b11	ti_sci_put_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a20016	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a3cadf	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x55af6eb3	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x55bbfe2e	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d92cbc	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e7705f	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x561111cb	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x56249c60	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x56492291	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x56554674	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x565b844e	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x56637ed7	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x56825845	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5688d5fb	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x568e880e	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x56969cb2	dpbp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a05e8b	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ac5746	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b71ab8	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d626f5	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e0abcc	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e4d171	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x570b955e	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x570e4e4c	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x57225acc	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x57230c1e	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573424df	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x573492ed	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x573d9721	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x575759e2	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5760633d	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x57882b9a	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x578d9f23	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579d34f9	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x579dc9ff	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a72ffd	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c61bb3	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ce5275	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d06022	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e074ea	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f501ec	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x58055097	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x580ce59c	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x58154c50	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x585779a1	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5859afbf	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x5864dc69	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x58696399	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x58706339	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5880b7f7	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x588758d5	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x588b1256	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x589b4001	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58aced4c	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x58c21ee6	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x58c33b55	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d555c6	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e14f15	HYPERVISOR_event_channel_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ed93c3	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x59194754	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x591b2248	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x59484c41	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x594a1b4a	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x594a6dc8	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x594bb503	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x594d3b1f	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x595b572b	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x59641786	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x59768c44	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x59799987	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x597cb8fc	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5982f06f	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x598b4272	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x599a6f92	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x599c650f	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a0a226	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x59aaec73	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ac8f41	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x59aceee6	fsl_mc_portal_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2774b	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b33ccb	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x59bf1701	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d063ab	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d190e5	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d5cf91	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x59da120c	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x59f7a35d	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fca94e	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fcc3c3	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fe70a8	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a34ad40	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a58f620	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a642fe0	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a69362b	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6efcfd	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a75b661	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a80404f	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8efcf6	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abe696e	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad49749	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aeb7773	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b02a975	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b02b6f5	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b0335cb	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b0487f4	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b201cee	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b43cee1	cec_pin_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b692ae9	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b96918a	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba16d75	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc35904	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bcbeffd	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd10a5c	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdf46a5	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5be697bc	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bef8792	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0f77ce	HYPERVISOR_platform_op_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c239ad8	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c290ead	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3477a2	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c35de24	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c552e9b	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6c7241	ahci_start_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c7d8ba9	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb4e153	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc09223	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cccfbb7	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd66888	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdd5448	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cea30c1	dprc_get_obj_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3fe7ea	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d47f90b	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d535a3b	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d64d0b6	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d705858	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7a3be2	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d85d570	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8f8d40	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da4d0a1	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc30432	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dee1cc5	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e175fca	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e22b8a5	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2e718f	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3a4c48	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e430e34	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51eaab	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e712e25	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7978b5	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7b9379	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7e7a4b	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8f79eb	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec4ac9e	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ecf4adf	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ef315b9	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f267d7e	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f33b8b8	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f35cb9d	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f47eb3c	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f49dfbc	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f742e1f	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f75c66c	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb203d5	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fcfdf6f	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff94699	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6001f098	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x600b6a79	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x6032fdbd	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x60442822	phys_to_mach
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x605d5bfa	cache_line_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6065f613	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x60736222	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c277a	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c729d	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608a8caf	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6094ff12	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x609de92b	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60aab626	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d7e69b	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d881cc	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6100caa9	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6107fd40	fsl_mc_resource_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x61082406	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x612dbc61	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x612f05c6	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6134859f	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x61592b27	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6173e01a	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x617bfd02	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x618d02ce	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6195b55b	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a66f08	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ad67ca	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61bc6aa4	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c2c36a	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d4304e	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ffcecd	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x62225937	meson_vid_pll_div_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6243fcdc	__fsl_mc_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6289b543	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a0bd18	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b7d5fd	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c27b4b	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c5f7b6	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c64826	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d7e8bd	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x62dc0277	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x62eab542	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x630a29dc	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631b9129	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x632a2e11	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x633266e8	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6344a7dc	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6349185c	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x635ba362	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x635cc40b	rockchip_pcie_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x6365d942	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6366f916	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x63790964	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x63acad85	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c45b96	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c5bd66	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c5dbd9	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d04790	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x64512f5c	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x6455963a	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x64621e17	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x6463c802	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x646e6957	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x649ffbea	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a52f39	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ab6330	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bf6e38	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d5f866	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x64dd3bef	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x64e91d4f	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f8ee1b	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6519253e	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6520eff2	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6537e46c	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x655c3df7	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x655e09f7	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x655e4879	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6561a824	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6563eb4f	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x656f60e6	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x657efff0	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x65995793	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x659a2146	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a784da	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x65be3006	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e01af9	__sync_icache_dcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e089a3	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e5818a	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ec93f0	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f131b6	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x661da657	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x662052b6	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x66271ae1	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x66412a59	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6646bbe6	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x665546d2	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6666a4c8	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x667288b2	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6686bf9a	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b2789f	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bfe55a	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f2aac2	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6728aec9	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x672d69ec	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x673354ca	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x67392610	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x67443ae5	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x674a76c4	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x67511be8	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6760503b	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x67647809	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792a427	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a0397c	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a3c85b	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bb1d3d	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ca4307	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e6c543	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x67eea1e8	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x680eb716	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x68209167	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x682664fa	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6835212f	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x6865219b	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6869c8eb	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x686ace13	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x687220f6	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x6884140a	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x68859720	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6893a497	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x6898109a	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x689892cd	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x689a9d84	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x689ac4ea	bgmac_adjust_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a4f92f	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a512b4	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ccfa8e	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d0c75c	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d10349	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d796b5	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f42be3	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f54695	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x69046a6a	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x69064601	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x691a820b	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x691bb53c	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x691f04c5	mtk_smi_larb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69291271	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x69293724	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x69302431	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x693585b1	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69558aa4	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x69583490	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x696109b8	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696c1fe7	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6972b2a7	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x697813c5	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x6979873e	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x697b2111	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x699246a7	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x69929cbc	scmi_protocol_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69aba91c	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x69bdf628	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c3fc6f	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f96646	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a093ff8	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1b9fb7	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a21002a	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a22b040	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a27f799	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2f24ea	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3d69c3	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421e5a	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a43c20b	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5763df	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a81e420	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a87893a	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a916d42	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a92315f	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa02eb	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaec965	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab1141c	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad2f59d	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae288cc	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aef01f3	fsl_mc_resource_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af7d989	scmi_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afcb6a1	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b111989	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1b098f	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1f4837	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2d3d64	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4aa4f3	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4b42ce	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b53e9f8	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b834121	bman_portals_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb659ea	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be5b2c1	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be97b53	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfed5cb	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c1c80a2	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c20bb05	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b612b	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c437c73	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c47efbb	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c5d293a	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c69af8b	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c69b31a	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c77d0df	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c804e1b	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb0ce87	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb14727	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb392a6	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb903e0	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbe7d08	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce08a5b	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce3f59f	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce905b3	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf33dbb	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf9da95	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0270be	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d035b47	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1b7cca	dpbp_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1d5aaf	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fde10	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3b15c4	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d4f1369	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d533c93	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5b357e	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7426ae	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7ab7f6	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8a8929	dpbp_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da09cf7	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daecf2a	clk_regmap_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db6d187	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd133d8	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd89a71	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfb08c7	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5c3a9c	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e63e341	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e70dbca	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e81ef71	dpcon_get_attributes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e9bab72	fsl_mc_allocate_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ececfb0	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef59c0a	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f005ff1	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1790ce	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f25ba81	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f340b4b	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f4ac87f	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f63c9f7	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f76592a	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f866687	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f91d7d5	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa0b804	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa1584e	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa25079	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb3e9d5	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc50778	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffb0fb9	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x700341f3	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7028a0e4	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x702e3ec8	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x704a4c47	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x704fd9b8	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x70784e13	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x707e20dd	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x70813894	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x70aa29cf	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ace03e	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b08833	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b8465e	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ba31d1	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ca9258	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d80cb2	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f91b4f	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x70fbb904	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7113c1cc	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x71184627	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x713071b6	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x71495eae	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x7164c8e5	xen_dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e2811	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x71acb117	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x71befa94	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x71c79597	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d0a386	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d8da14	meson_clk_dualdiv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d9d409	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e9713e	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x71eaf948	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ed825f	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x72130b6e	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x72178c4f	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x722c8e02	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x728b32aa	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x72acaaf1	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b484df	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72cf75ea	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72da6eaa	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e15590	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e340e1	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f9bc74	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x730235ec	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x730a1479	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x73176550	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x73212954	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x73239749	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x73242dcd	cpu_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x732eb458	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x73350998	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x733622c3	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7337ba35	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7337e318	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x7382a297	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x7385ac19	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x738741d3	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x738cf7c7	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x739cc91e	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a52304	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a5884a	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a65274	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bf4eee	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c9115d	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d158b2	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d93bdc	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e5009e	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7407fe35	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x741589ae	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x7415cd48	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x743b99d8	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x744d2540	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x744f92b7	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x74568e09	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x74618832	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x74690770	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x747b9946	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x747ba3b2	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x747c54a6	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x747f1178	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7487af37	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a03899	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a505ec	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x74af6eb8	ti_sci_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b083fd	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74bbc79a	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x74bc366c	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c25a82	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c8dc4e	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x74cec3da	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d0839c	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x74db632a	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e9375a	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ecb980	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fa2fd2	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fe65cf	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x750967b1	rockchip_pcie_cfg_configuration_accesses
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x751a0840	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752a1ea3	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x753c3d0e	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x7569a1cf	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x756b8757	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x756feedd	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75c13185	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d0ebcb	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d47799	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dc9c6e	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd8eae	fsl_mc_object_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f7d426	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fa775c	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fac2cd	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb91e0	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x760a4b1e	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x760badf7	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x762a3945	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0x7630681f	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x76312326	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x763e63e0	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x764e0784	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7653efe4	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x769709b0	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a141fb	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76aac9a8	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x76ade189	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bd332d	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d1c399	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e23435	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e30dee	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f07c26	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x76fa4815	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x770054a1	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x77041c39	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7713779d	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772c4b53	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x772edb34	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x774b9b10	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x77501058	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7761afe4	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x77621ba5	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x776c2594	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7776211e	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x777746d9	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7779e13f	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7798519c	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ace345	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d1dd2e	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f2632b	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f3b2d7	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x781675ce	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x781ec7b2	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x783ee866	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x78429856	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785c7525	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x7864c746	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7878a1a4	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x789831e9	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b256dd	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c03720	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cccf04	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f883d4	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x78faf157	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7911692d	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x791b4f5f	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x79224770	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x79340b1d	meson_clk_pll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7934181e	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x7935fcad	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x793d04e5	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a0461	rockchip_pcie_disable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7972cc79	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7973b51a	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x79768574	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x79970a90	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79aa1a89	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c49d16	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x79d82906	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x79dca00f	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e23870	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e2d336	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a047da6	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a050eb0	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a1e0a5b	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a37d696	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3ebd5c	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a672569	xen_xlate_map_ballooned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a68c010	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a80fa80	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a96a94e	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9c387e	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7acfe0d1	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad6cf5c	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adbe0fa	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adc20c2	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af8d4ac	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b118720	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2163bd	HYPERVISOR_tmem_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b54a20c	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b553912	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5e45ec	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6067b8	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b68b3ac	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6ed2fa	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b71ec59	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b76b66b	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b82980c	qcom_smem_state_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8921cc	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8b4416	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8cf8ab	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8d60e0	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8eaf58	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b948b0a	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba8ef60	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba9a276	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab6124	clk_regmap_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7baba0bf	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb6736c	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbd86aa	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc94770	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd05bf8	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd1ad99	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2a2d8c	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3d5baa	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c558e73	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c56206e	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57421b	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c5e3580	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c5e3fbd	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7287ad	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c834c37	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9e7395	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca9ec4c	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccc2bf9	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd673dd	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cdc5a1f	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ce5f231	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ce8551d	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1992a9	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2cfbfd	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2d737d	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d33c555	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d35918b	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d4a850a	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d50c2a3	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6b545f	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6b6314	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7c1112	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dabc3e5	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc63fe1	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd82b68	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddc8597	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dddd2d2	ahci_check_ready
+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 0x7de80041	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df67178	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e035a91	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e064782	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0bde39	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e17bbc8	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e335d44	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3ed349	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3fe7c3	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e46c7b5	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e50c09a	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e62fd9c	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e68c35f	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6e4257	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e783618	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e814b62	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e84fb4f	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8743e3	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e92231c	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e92c8ce	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e932070	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e98262c	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9daad3	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebc3637	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec6acd9	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ece0774	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed64674	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eda2b82	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f021ccb	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f14c5e6	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f158e45	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f177afe	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f18459f	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f1efd4f	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f74844f	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f79a776	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7f5b82	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9418b3	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f98e508	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f997e33	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9e79bd	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa0e66b	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa577e9	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc591e8	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc79b0d	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe1da4b	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe6a57b	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff5f021	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8000433c	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8014c000	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8024d45b	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f9061	meson_clk_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805cdc8a	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8061abb5	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x80706758	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a520e7	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a57b5b	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x80adeea6	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x80afa724	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c11314	gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c87f2b	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e4c041	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f6679f	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x811f6d44	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x812332fb	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x812bf106	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x8140e912	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8142f472	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x81436bd7	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8156fcde	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x81580e91	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8164af11	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x81724129	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x81766298	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x817ce7c0	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x818fd110	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x81921047	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8195c347	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b2f49d	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c0f19c	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c4f2fe	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c876ed	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d8407f	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e70587	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x822d4452	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8234ea84	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8248a875	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x824c51f4	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x824de1a5	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x82698c44	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8276fc62	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x8282f39a	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ac5da2	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b270d7	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x82bd9379	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ce7efa	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x830bb507	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x83233272	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x833501e9	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x83443941	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8349b4d0	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x83637c55	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x836b2c3a	clk_regmap_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8379267b	ahci_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x83885e88	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ae9a28	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b6dbd6	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c79f6b	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e90eab	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ebcaec	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f2506f	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f746e7	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8400031f	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8416d0b8	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843b8adf	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8441bd4a	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x8456065e	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x846c295b	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x8482e3e2	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x8497feea	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8499ef3a	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f354c9	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850acbde	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85231ed3	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8530c861	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x8534e096	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85719683	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x8573ebb2	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x85813e70	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x85815ebf	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x859f99f1	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a6afde	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x85aef789	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85bc81ef	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c09783	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ca7302	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d19b38	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x85eb5ff6	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f06d87	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f4659c	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f93334	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ffee46	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x86008f6c	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86046f76	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8613020c	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8657d30a	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8662ea88	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8662f910	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x866dd542	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x86738bb6	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8695c2d5	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86965ee7	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86bde055	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d3a35c	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x86db1d68	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e2a9da	dprc_get_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f79b83	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x8731ea63	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x87380bd9	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x874e442b	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8759d88f	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x87648c61	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x8780afd6	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x879eeb37	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b6849a	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b818f8	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x87bd4cf4	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c7c841	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x87cadbad	fsl_mc_cleanup_irq_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d3d193	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x87dd9b6d	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x880a7ab5	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x880ae283	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x881f2f80	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x88273445	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x882cfb05	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x883ccde5	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8843b3f3	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x8859d1b1	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x887eb021	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x888bcc59	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c7a80d	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x88cc2380	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x88cf61df	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x88f81a06	ti_sci_get_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x88fc258b	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x890e572f	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8916e4e8	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8927590c	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x892a5f6a	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x8930454a	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x893f995c	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x894c088a	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x8954b991	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x895fdb01	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x898a1991	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a06744	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a4476d	HYPERVISOR_multicall
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a7b0f0	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b29343	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bd5e48	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c09fab	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c128a7	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d14904	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d25a22	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e9a31d	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ea1bbf	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a071df7	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a172881	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a1c14dc	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2980d9	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a324d92	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3b5cd0	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a490fd7	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4c3d70	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4df85a	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a82271c	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8c071d	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a93b126	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa021b4	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa1d7d7	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab2dcb0	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac9c9e1	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x8acd04cb	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8acf4523	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad2f52a	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aee1554	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b071fc4	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b181512	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2bb0f1	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3f9cb7	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b51135e	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5b67e5	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5be6da	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5decec	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b761e0c	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b791a98	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba5afe9	HYPERVISOR_memory_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb3c7ec	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb53585	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bec758b	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bffa31b	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0d8d52	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0eaa04	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c150ee2	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c30dd35	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c332f53	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c49c8de	save_stack_trace_tsk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5c8eb6	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c76b6ba	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8c1362	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c92a6c3	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb14ed0	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb379b4	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb3e121	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb41f7f	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbb40da	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbccaa2	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ccacf4a	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cea3544	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d01866a	mc_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d02fb93	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0333e2	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0619ca	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0c682f	ti_sci_inta_msi_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1606fa	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d254fda	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d26b683	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d397bb4	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3c2f20	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4258f7	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5015ce	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5d7959	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d74e23b	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8aa0fe	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8f6b1d	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9d861a	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da679a7	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dabfe50	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbf7aaa	privcmd_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd223e2	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dfd723e	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dff0ecf	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e270c66	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e2c5479	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4b63a6	hisi_clk_register_gate_sep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e527aaa	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e703f04	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e71b7b4	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e77cb48	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7f0a9c	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e811bdb	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8661c1	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8e1570	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9500b4	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9cf1e1	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea7edd6	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eaba591	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb46cf0	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb839a6	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec561e7	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed5ed57	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edaa82d	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edf2a7c	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eef1649	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef08d2e	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efba8d6	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efc6285	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f06d25a	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2b11ab	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2cb02c	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f33c92f	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4703db	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f749a7c	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f839842	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f9ef282	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa7665f	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc76a65	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fef09f9	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff41530	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffafe1d	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9000004c	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x900123b9	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x901219f1	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9029cbf1	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9078b939	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x907e7814	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x908fcbde	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9091c416	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x90944ca7	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a227a2	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a46ffa	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b763f1	HYPERVISOR_console_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d6fc8a	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ddc87c	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9113cc19	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x912aa2b5	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x914ca41e	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x916fb976	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x917f34d7	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x918e13b6	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x919425fd	pv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x919fec7a	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a32036	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bed8a3	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c59234	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d261cc	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e30809	HYPERVISOR_vm_assist
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f4df15	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f4e118	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f63c20	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91fa742f	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x92009191	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x920eb501	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d9dba	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924e4a1b	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x926ffc83	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x9272a209	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x92856c47	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9293bcda	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a4325a	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a5a2ce	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b6783b	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b6dff8	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x92bf5235	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d55b5c	save_stack_trace_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9306f1e2	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x93349e0c	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9345e74b	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x934a06bb	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x934f037d	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x935997ee	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x936e739f	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9371a91e	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93733c44	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x93750a4b	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x937ad5e0	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x938fb6aa	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93be4fcc	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dfd717	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f07e45	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x940f3d3c	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x94219e91	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943aeaa2	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9441987c	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x944de884	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x945c8526	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x946fd18c	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9477f782	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x949a1b56	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x949d9d39	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b52b0d	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b73cc3	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c03d38	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c77afd	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x94db306c	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e62d2e	__set_phys_to_machine_multi
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f0136c	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x950603ba	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9509b6c0	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x950c7f3b	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x95102917	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95231793	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9523417b	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9523c15e	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9538ece2	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x95434241	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x9549202e	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9549f9db	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x957efb56	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9588a8ab	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a9c449	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b86ee3	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d05d3a	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e0a0af	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e822d1	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ea5cf2	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x95eb7b6a	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95efa1db	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95eff81b	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ff8ebf	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x9616c30c	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x96216880	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c24f1	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x96538d7a	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x96664b33	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x966f2825	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x966f7d4f	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x966ff5f4	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9673c21d	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x96756e6a	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a06eda	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a20f28	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x96afeebb	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b77bf0	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x96be6b07	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c40b87	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d10030	meson_clk_pcie_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d5e320	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e54f62	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ed4477	ahci_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f5a0c5	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c420b	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x970ef6f1	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x97221747	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9725fdbb	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x97321bc9	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9734f730	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97566db6	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x975f8935	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9764f636	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9777d84b	xhci_mtk_add_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x977a15a3	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x978fccbf	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x9791f34e	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x979c21b4	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x979f8c26	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b5fa2d	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c56bad	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x97dc8a2c	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f908bc	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fd6b60	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x98126033	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x981712bb	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x9829c961	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9836a6f5	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9853f979	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98700673	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9880d7e3	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x989d262d	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a46f1d	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ab9a7f	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b55af0	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb8bcf	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cf9621	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x99099723	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x991d3738	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x994b831b	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x995940f3	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d35a9	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x996be1c2	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9986e937	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9989b644	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x998bb661	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x998e4c5e	xhci_mtk_drop_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9995b87a	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a5f2ba	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x99aa7bb8	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ac9b9a	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b0f82e	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c25a85	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d19d29	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d23788	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d521e2	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d68c26	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x99da94ee	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e1213a	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f3fb70	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f52ccf	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5a9e35	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a609970	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7b0eee	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8af65c	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9142b8	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa9f716	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aba6f56	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aca8ec2	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aec4bc4	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af3b054	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af88c8b	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b189d3a	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b2121c8	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b2446d3	ti_sci_inta_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b346cc9	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b38937c	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b438c3e	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4ee20c	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b683b27	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b728055	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2e33b	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd17af9	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be11ea3	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be24699	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bff1a91	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bff9aea	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c20f957	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2b3895	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3d78cd	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c51e79c	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c67665f	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c80ad8c	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c825a1e	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c88d014	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8b131b	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c9bae8e	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca67486	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caa55ca	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cab8f57	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caf6e96	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc66d5c	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cfbd84e	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d051e7d	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d0a733b	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d16d2fb	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d2f7489	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d362392	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d3847db	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4ac00d	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4d0603	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d56af8b	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6deb5e	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d833f23	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d93949c	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9f9c3b	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dabf81c	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de86452	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df7f148	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df9dc3f	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e03d323	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2d35fa	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2e81b6	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e32e1f1	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e528f1d	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e56d497	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5f1797	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e65017e	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e69cbf0	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8566e9	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e879b91	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea04fe2	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea3ff45	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea41e4c	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ead4e06	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eaee097	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb5b3bb	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ece5336	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee83264	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee85322	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef4a715	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f0e5b5f	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f1d56b8	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f1dfca8	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f25ea37	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f327cd8	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f32b76c	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f414ef7	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4e2486	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f517986	HYPERVISOR_hvm_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f550656	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f61a953	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f754146	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f779849	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7c4692	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7f62bb	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f915886	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f961c6a	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb51a04	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc960aa	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff9e9aa	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa00471fc	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa004ad24	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa005dc3b	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02a57b9	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02c9ce7	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xa032cf10	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa043f5ed	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06c81ed	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa077d5a5	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08aa735	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0966e73	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c550e2	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c55392	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c576eb	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ef7568	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fdf995	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10eb0d2	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10edfaa	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1191661	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11c780f	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11f60ff	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1311e92	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa142bb16	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1454ee1	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14b33a7	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14c7919	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1630c58	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17cfc3c	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18c03dc	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa190f913	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xa191a7fb	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1bed92e	dprc_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1bf313e	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c1c304	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ed9c8b	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f60ce9	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa201c4fa	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2039ac3	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa204655e	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22b4b54	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22cdade	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22df65c	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa233389c	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa234502b	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xa245d1b1	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2513817	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2533ed3	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xa259737a	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26423a4	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26a42c8	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27783eb	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27cc175	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2839609	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xa288291a	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xa299b9ee	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b78c1b	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c13dc0	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c569d0	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d13cfe	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d5f916	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa300f73b	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa307a732	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30ec59d	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xa330cb7e	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36643e6	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3824ac8	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38c1436	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a500d7	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a6577c	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d4afc3	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d9d17e	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e86a68	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42e3ba4	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43ff05a	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa453f718	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa461c2e4	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa467996c	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46cc176	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa47fbcd7	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4866c67	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xa489f213	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49328ed	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49fd84e	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c7fee9	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ceb9d5	dpbp_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f2a2ed	acpi_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50d83cb	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xa510eed7	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa528b20d	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5429e46	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54d0a9b	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xa559943c	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa55b3783	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa55ffdc5	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57eb5cc	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586f80b	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xa587e1bc	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58b6f64	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59c72a2	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5af61eb	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d05dbe	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d3b447	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa609efda	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa61363dd	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6153119	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa63065a1	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa63a1f05	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64c916e	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66037be	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa660627a	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa661f819	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xa67191e5	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6810b01	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68eff79	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a05e63	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b4de45	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b65647	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cb531b	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d8e104	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6dd9e35	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7083982	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73138c8	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7376ac7	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xa737d470	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa759b534	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7856098	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78713d4	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a14471	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b3f489	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d7aeac	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7dfcf37	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e8baf3	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fdd06d	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xa809451d	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8117aba	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8178023	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8348b76	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85f4bb7	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xa88cb768	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a6053a	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bd6b56	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bf44dd	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c61434	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e1a488	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa912fb29	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa930143f	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9352636	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa941834e	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9498434	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa950919b	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa951523b	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9554a2a	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9735fda	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99bb74d	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a868e2	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b814b9	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e396f3	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e41e09	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e614e4	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e675ef	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1c5a9a	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa317d16	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa34ac64	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3934d8	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4bfefa	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6de37f	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa8bd6b4	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa8e182f	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa98734e	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9bddd8	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa10148	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa975ee	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab652ed	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab856c4	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac0ab79	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae1bfaf	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab0525d9	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xab0748b9	fsl_mc_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xab07cf11	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xab437174	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4cf2f3	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xab583ef0	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab650a58	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6e678a	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9560ef	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba55d94	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc16fb7	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcf3b3c	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd45848	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xabdf7265	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xabea9054	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xabf36aea	mdio_mux_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xabf58d33	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xac096ea6	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xac22056c	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xac47716c	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6e7b8e	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6f9890	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7c6597	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7e92b8	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xac975362	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xacaee4c2	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb076af	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb5226b	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xacbb8c28	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xaccb3332	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0xace081d8	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xace094b1	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xace2dbf6	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf0712b	hisi_clk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0eb1bf	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad19f24f	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad261882	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xad27b2ce	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2b13cf	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3c0da3	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xad4b11d5	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad6dbac4	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8b3039	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8ef585	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9388a6	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xad99edf5	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9ce505	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadadc091	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb10537	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb19804	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb88b3a	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd0773c	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd9e2c1	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xade28ca3	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xade2fb66	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xade3f019	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xadeb3aa6	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf00e9a	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf821b6	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xadfbbaeb	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae122a43	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1c8984	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xae29455a	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae489dbe	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xae52696f	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xae5592ac	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xae66224d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xae685024	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae6d7ca4	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0xae784ace	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7cc16a	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8665e5	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae95dbda	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9a8d0d	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb4317f	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb6d3b7	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed9fa94	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xaede165b	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeeb5579	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xaef9681c	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf00eb95	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1cacda	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf233428	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf3da3de	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf523ab5	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5465a4	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf61edfd	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf6a2528	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa92ae9	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb07262	__pfn_to_mfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb0d2ff	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xafccb49c	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xafcfe720	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff477f1	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff54113	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff63310	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff67469	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01ac448	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb029d2cb	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb036f339	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb040654e	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0424c75	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb051cf36	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06afa93	fsl_mc_populate_irq_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06fba72	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08a22a3	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb09e176f	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bdc93a	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0c88bd2	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d032db	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0dbf897	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb144651b	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb159bef0	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172bddc	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb177c515	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18d6ee2	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18dba3a	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19b868c	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1be0ebc	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bf7330	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c1b6d7	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dda31d	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e0133b	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f704cd	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xb202aab0	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb221b113	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0xb22d33ad	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb23287b1	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2499b15	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24f6667	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26fa959	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2710675	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2833464	clk_register_hisi_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2836e14	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb285b8f8	xen_in_preemptible_hcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb293e8a0	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a369f0	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b6f8aa	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c7ec39	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c82449	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2cfce3f	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dee59d	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f9b830	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb309857a	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30b89f6	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32335cc	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb332e8e6	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb333d340	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33f42bf	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3579f0b	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb35e2c69	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3606d9c	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3793c76	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3893b5a	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a5507e	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ae1618	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b21a6a	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3cac5a6	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e2eda2	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e3ab6b	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40a9381	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42ddbc0	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44a7041	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4576c52	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a4ef64	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ae9ff7	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c504c1	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c57c3d	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c5e884	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c65171	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d11f63	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d32ff2	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d84a4c	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4fcf3fe	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb518ad40	devm_ti_sci_get_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51e7a99	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52447d6	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52697e8	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52fe997	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb539d7ac	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb554762d	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55d3a78	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55de460	HYPERVISOR_dm_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56d47fa	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58a4ad5	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb590e44d	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5951654	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8f505	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5cc4d0f	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d3fe5c	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d7d77a	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d87310	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e1f259	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e23005	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6133177	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb62e13ba	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xb653ed18	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xb665415e	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66fe828	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67903b4	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68d0044	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b5a8b6	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d0fd8d	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d64d1f	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6fcc998	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71d3dfd	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb724c4ec	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74baedc	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78be592	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79eb876	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b3381f	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80b963c	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81b6f2a	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81b775b	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb850a856	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85732a3	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8573fd0	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86177cf	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8674b05	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8825026	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88b30e9	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb899a7e7	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xb899f8be	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b8ca99	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ba1e6f	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8bbff05	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d8ba70	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8eb07d5	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9023c4a	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91b7a02	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9322b8d	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9399b20	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb949f8ee	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9536179	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96839cb	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97620fe	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97fd580	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9860543	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98adfe7	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b78f04	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9bc6bd3	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d3e9d5	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d4b485	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9def8a7	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba011489	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2679fa	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba3bf48e	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xba431b85	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xba43859e	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba66b042	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6c33d5	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xba85751e	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0xba94443d	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xba984d9b	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9f0f42	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa7b1e7	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab2930b	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab41be6	handle_fasteoi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac3752f	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad2818e	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad5b85e	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbada3a80	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadd9b4f	zynqmp_pm_get_eemi_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbade2294	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadebdef	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae603d4	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf571f1	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb181e8c	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb31bd73	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb415342	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb44d837	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6fffcf	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb71521e	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7485c1	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb899051	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb50661	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc2aa7d	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbcd2105	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd16a4e	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd3608e	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe2e9f7	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc05253a	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1028b6	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2af4d6	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2e8516	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc358949	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8ae50a	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca6a8c0	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd5917e	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce9f85e	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbceeb244	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf0b2b1	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcfbac9d	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3eaaf9	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd57e812	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7d5a8d	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7dbad5	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd92457b	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda89073	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdad87d8	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb5b117	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb946a5	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcf30a4	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xbddf3867	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf269c6	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfb9aca	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfca8ff	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe067341	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe22e2ae	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe2abdab	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3f2b74	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6082f3	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe658768	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6db9f1	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe70a0a4	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe7563f5	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe75bbf9	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbebbd3a1	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec47675	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec85ad4	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed48c20	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef20a63	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefaab37	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf05ad9b	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf0c4bb5	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf27f03e	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3ca25b	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3dcabe	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf797ff6	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7dede9	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf854a73	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9465e9	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfab4b16	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfac2d99	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfaedc1a	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb54173	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd76a2f	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfef2de2	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff312c0	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00b00d7	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc015c68a	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01be484	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01f03ef	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc028cc9a	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04542c2	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04ae3fd	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05285fa	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05978c8	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0726d76	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0xc078e9a8	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07949b0	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07a3bcf	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0820be2	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08f94f1	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a541e7	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0bef115	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c1b0dc	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c9141f	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f69e2c	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f9a723	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc102392f	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1043bd7	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1108d28	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11288c0	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12caf9d	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12fdb2b	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14005cd	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xc144d82a	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16a06f9	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17f3168	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19253b0	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a542d6	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b67395	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b91d6c	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c742f2	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d14ddb	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d59d3a	altr_sysmgr_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1da9df8	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1dc5492	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1dd0a7e	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1e71c76	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f8fca0	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2070e31	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc217cf99	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22091cb	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23664a4	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc260612d	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2675935	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc272cf2e	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280365a	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280ccb1	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2813f85	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29ddee3	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a07d1d	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b7417b	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c06610	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c0c153	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ca46b6	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ceac31	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2da7b81	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e954a4	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2eaf24b	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f4bfe9	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f51606	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xc311f8de	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc313e9a5	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc321af5c	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc324692e	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34aafdb	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc350a419	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc356a851	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc35a011c	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc363d129	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38cbfdb	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3907e58	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xc399064d	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3a9fac9	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b8a714	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c379b9	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4d4d8	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c68c22	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cc09e9	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3db32f0	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea6581	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3eaf00c	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f471f2	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc408ee14	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc42b4312	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4705625	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc480457f	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4877df1	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48e6966	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc497b330	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49ab2c0	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49c1904	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49e626a	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b6444b	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4cd343e	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4eae733	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f7d3f8	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc506a2bb	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc50f45c4	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5154a31	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51874b5	ahci_init_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5410966	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55327c5	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5754dc1	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc579c15a	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57b213e	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc582f110	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5887a2d	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5996c8c	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b07d37	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c576a0	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c6c45f	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f1dbed	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f2e323	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5fe5feb	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60134dc	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xc605a940	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc605ceeb	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61416e5	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62f5baa	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc642c508	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64b861c	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64f0b21	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc662514f	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc676eae7	dprc_set_obj_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68428bb	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69aea4c	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6f693cc	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7330afa	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74db37f	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74e5448	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc750cae7	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc756014f	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xc77348e4	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79413b2	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c6f172	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cc22d7	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d23f6d	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7df9d9f	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e96073	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7efe17a	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f1e523	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc826c6ca	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc842f9b7	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84cea19	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8505aa7	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8559692	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc855fd3f	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8797b2a	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88c64c3	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b1b612	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b3359b	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cb032f	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cf98cf	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d6cd50	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d7e651	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f0c0e8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f6c611	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90fabf0	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91a2bbe	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94a6ded	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94eb8c2	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9569ad5	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xc957eb73	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95f3c9a	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0xc960a9a1	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96d9ecc	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc984bf07	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9929258	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99aa5ce	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99e2499	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a36b2d	bgmac_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9afd663	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9bc9abf	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c481f8	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d1e05b	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d3f656	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d942a6	hisi_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9dfe229	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e212ab	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec2177	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ee1db1	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fbd353	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ff706a	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xca05494c	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1e3771	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xca35fc93	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xca390be9	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7cdc9a	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca8ff896	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca9c1158	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaad1a00	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaeecc7e	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf2c454	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb025130	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb04baf1	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb296303	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2d408d	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3c78b8	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb457a7d	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb551e55	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb6ef254	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7a3620	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb858c09	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb94ade2	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb971ac5	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9ac57a	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9fb3cb	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbfe3c73	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbfec42b	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc243c09	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc58c32e	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc6f3495	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7180a3	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8339a2	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc861411	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc88b06f	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9de221	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb7eb47	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbc6cda	hisi_clk_register_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccb34e9	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce9911c	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf3eb4c	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf7af51	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfb5c01	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0793f9	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd1332c7	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd271f18	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4b5ac5	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8b6d54	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8eb09b	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda74fa0	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdac07ef	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdae254d	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdba1f80	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdba4beb	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1c1a1	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xce049d82	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce16e898	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xce18197e	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2f8a28	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4733dc	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xce55cde7	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5edadf	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6006ac	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xce64da8f	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xce68d482	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce72279d	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xce72c52a	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8874a2	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0xce95b77a	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xce981c9e	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea5d525	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xceacbe44	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcebbe4e5	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xced16488	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xced8edec	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8c16	__set_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef2da88	scmi_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef7b3a4	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xcefd4cb3	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcefe9ea1	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0a2066	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf19ccb6	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf45f4b6	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6551db	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6635d0	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf82c947	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf93119e	qcom_smem_state_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf95dec7	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9bdbdc	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfaa7124	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb56380	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd4bbd5	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe5bc3a	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0144f1a	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd014f307	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0257fe4	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd026d518	HYPERVISOR_vcpu_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0333c18	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd046dfe7	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0531073	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06ddd2a	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08cad97	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08f1296	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09d322e	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bfa25e	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d1e227	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d2e21f	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d5e18c	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d6a290	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd109ceb1	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1138f48	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13ea47e	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13f04c9	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd158665e	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15a60f8	dpcon_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xd161ec28	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16a3a40	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16f739f	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17243d0	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17c12d0	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17d6731	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1803387	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a0d832	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b92e53	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c6b370	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c777d2	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d3bf86	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e730dd	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21cb97d	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2203566	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2215975	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2216744	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22fbd91	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2304d51	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd238f884	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23d06f0	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xd247cbb5	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25a634e	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26fffab	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2802d3a	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd281372c	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28b95e9	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f15141	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f612c3	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3059717	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30b1034	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xd319eaa9	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd358082a	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36900c6	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36eb872	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37478e5	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd378bf7a	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd382ca13	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b1789d	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d9a21b	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e6492e	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e7252a	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41ab35a	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4447070	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xd446c4a3	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46f1728	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd474bf15	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47f592a	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47f9b08	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a1dd2d	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4acc735	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bde4f2	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e7896a	xhci_mtk_check_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ef3bef	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fc4599	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd502a71b	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50de2b3	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53ca8d9	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd547394f	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5491b8f	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54dc0d1	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd585bd9a	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd59033c1	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5eaea42	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ffccb6	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd606eb57	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd622726b	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd624d1dd	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62b9da4	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63331e6	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63a97ff	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63be1f0	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd647ef68	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67cac66	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67f3ed1	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6877745	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6bc9d02	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c24770	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c95667	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d2d588	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f38d50	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f8e242	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70073a1	clk_regmap_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70318ee	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xd711f620	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73d3aa7	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74412d0	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74c9a6c	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75d66e1	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77efb25	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7840c07	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7850e66	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7a164fa	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c81a0c	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80235ab	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84b9998	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8677da2	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xd875357b	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd897cf17	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a20396	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a3045f	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a5292f	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b410e2	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8cb3b7c	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d24416	hisi_clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ecb6dd	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f58882	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9219919	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92396cf	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9354e15	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9403710	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9470f81	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94c14b5	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96b9866	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96ca80e	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd974acbd	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd976e0d7	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd989ab75	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9bd1c35	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c26a5b	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9cf0145	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d67bac	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e6cf37	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff632f	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0264a9	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xda112b84	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2ab33c	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xda360b48	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3a77c2	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3db30f	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4002c0	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7116fc	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9f54c9	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa57905	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa9d53e	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaaa3ce4	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaabf7a1	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab90279	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabedcbc	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdacc8209	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae7aed5	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0697b2	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb295644	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3550ab	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3ed1c9	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb563ecc	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb662307	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb716388	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8486f8	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb88d72c	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba78d95	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba9c7b8	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbaa4cb0	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbbad5cb	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc1a70b	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbce7921	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbce98d6	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbed967e	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbed9783	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbefa6ba	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbfe225f	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1b87f0	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2d8afb	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc312c2d	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3366d8	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc465541	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc64cd68	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7b6ca3	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcad8727	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcb30ae3	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc30031	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccd03e5	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcce3b46	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd73167	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce35b70	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf2c088	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf2cfff	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf5780a	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd050a76	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0f0878	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd247f54	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2ba18f	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd30259f	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd414982	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd487def	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4d81b1	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7384ba	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f64f0	cpu_logical_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9752ec	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9f52a2	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda192fa	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xddb29930	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd2494d	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdddec321	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf602fc	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf7e8b1	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xddfc7f82	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xde057cd7	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1717ed	cec_pin_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde23d198	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xde244d3c	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2ea539	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xde31569f	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xde538cfd	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde76784a	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xde789b50	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9b8fbe	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea70039	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeaed26a	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb698aa	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb79afe	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeba0ced	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebe581e	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee24975	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee4a94c	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee8ecdf	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeeb8ab3	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeef7aee	ahci_print_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1590cc	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2ecf4b	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4488de	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4bae10	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf551005	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf657302	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf67d7ea	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf80d368	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf92b0fa	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf93b850	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa4eaef	xen_dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbb2d66	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc2525d	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffb1b6d	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007b10f	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe014c611	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01d8ca3	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02f5480	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe037666e	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe045cfa8	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xe055fd6d	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0567ff8	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05c67b6	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e6b79	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07df79c	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0862651	rockchip_pcie_get_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09543d8	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe095f4ba	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c7e9c6	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d7a7b6	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e3147c	HYPERVISOR_sched_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ebcfaf	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f61878	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f7aaa5	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe121729d	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1334755	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1366fc5	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1406d96	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14df811	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe150925d	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe159ab2a	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16de434	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1737fca	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1742408	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a201c8	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a251d1	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ac8b57	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b23f77	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20f8f9e	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21a91e3	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23fcc28	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26a5a09	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2716d1a	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2731ade	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2765f24	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2822927	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28e70d1	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29dd2b4	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2af8dd0	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2bbe7ac	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2bca1b8	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2bd75d2	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c511f0	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c93761	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d4e080	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d9a8a9	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e3867a	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e4fee4	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f788d2	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe315df1d	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3435de5	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3489bac	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34bd456	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39ab884	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bf6631	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c5fdb7	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cf18f5	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d566a5	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3dcdc1c	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ebc0ec	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ebf9bd	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3efa776	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f3cda4	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f6319f	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fa1d32	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4034ebc	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe410ea52	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe41c7c1d	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe423805b	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43b22f6	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe446069a	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45c6e8c	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45cc8ab	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45f304d	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe476c74d	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe49af29a	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a82046	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bc4ed9	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e327e2	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e4e044	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51d2310	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5276539	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe551a54e	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5538557	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5681ee0	fsl_mc_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56d3baf	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56e667b	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe574dda0	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5774c4b	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a8b0dc	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ab638e	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b3cd2a	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb1943	hisi_clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d5081a	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5df00ae	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e4080b	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e4670b	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fc1e54	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fcfa94	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fd797a	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6215a10	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe640ca14	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xe649b8b1	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6681286	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe692f99a	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a80cf4	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bd61f2	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ebf0d4	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6fdf2e5	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7108a1a	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe731a641	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7419d41	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7493111	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xe749d04a	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe764f6ad	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76e4ad7	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xe778cd67	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7799e45	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a46c40	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7c2bc6e	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7dd68fc	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eb2bdc	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ed7a80	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f47370	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fdd691	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80676f3	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ac465	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ed312	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83c0198	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83d88df	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83e2327	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84cf1a5	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f36ae	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86af994	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xe875d019	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xe87fcbc5	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88444bb	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8882b5d	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88924f7	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88b357e	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88ba194	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88f97c3	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a28987	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8af8ef7	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8d48cde	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e39605	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f3fde8	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f917e1	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8fa290c	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe924d79c	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe92e5a81	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xe92fa88a	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xe934d7e3	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94de2b2	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xe952ba8f	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe965186c	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9762658	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe978131b	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xe99a5d32	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xe99ae48e	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a22c52	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9abc13a	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b637ce	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c42ed7	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c92f75	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cb40bd	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d12b65	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d50e7d	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e5b73e	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e798e6	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e8071f	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9eb2856	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f09beb	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xea021c89	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1c274f	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xea210d9d	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xea488fb9	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 vmlinux 0xea56e05d	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6030ba	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xea651b20	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6c21ad	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6e81e7	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xea70dcb1	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xea886413	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaaeb5f8	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab2f170	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab75d13	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab8498a	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac13383	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac53d63	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeada09b3	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadb3f90	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae95328	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae9da4a	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaea7762	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaefd256	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf62fb7	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb04edbf	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0b92e8	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb121316	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3f8466	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb424aa2	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb713c4a	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb7778d3	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb782c5c	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb7d6552	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb7f582c	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8e89e6	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba1c578	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xebaf870e	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc7a76d	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd96245	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xebeabe08	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xebeb5b3c	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf08a4a	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf2b09f	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf62b3f	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0b2e97	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xec36578c	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xec36a783	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3cff07	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xec4532b8	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec63e3a6	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8220a0	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8dd4a0	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca47897	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xece510e0	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf39519	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xecfcfc8a	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0e9acf	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1cf740	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xed39b168	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xed444a2f	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4f41ed	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0xed665167	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7e31c1	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7fd52d	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed87fc43	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xedbe4fdc	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xedcebf19	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xede320cc	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xede4222f	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xede6061f	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xede7ce96	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xede8db92	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0f2cff	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xee122021	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xee15c9d1	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xee2b935d	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xee33651b	dpcon_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3e82d3	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xee49fc3d	meson_clk_cpu_dyndiv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xee52ef28	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xee605052	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6056b5	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6458af	efivar_entry_get
+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 0xee966187	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9abc89	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9e0b5a	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeae3a5e	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb40a06	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedf00f1	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeea91f5	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0c5a93	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef2b9d72	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xef2d3605	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xef357b60	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef4788f0	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xef531ed3	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5eb300	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef727249	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xef865da7	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9fa25f	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefad4ab0	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc2b489	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc67cd9	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0xefca94d7	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd80fcf	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd82e5d	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xefec9444	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff932ff	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xefff96ba	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf005f3cc	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d6417	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0207cf9	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02cd7ab	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf033c274	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf03e0f40	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf047d689	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04ce20d	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04f546e	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04ffde8	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf075e019	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0762586	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0800f50	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08396ba	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a19a26	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b5868f	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c40a2e	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0dcd7a5	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e09d92	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f439af	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0fa1aa5	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xf119a715	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf123d802	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12aec32	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf137cba2	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xf139b286	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1464c4f	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14a0b0e	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1500f61	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15c159f	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15e0c3b	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xf169d3f7	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf175d0ec	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17f133b	meson_clk_mpll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf188000e	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a58891	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b26913	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b6198d	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b83d05	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c729eb	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d4ea87	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xf207d269	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xf20be10a	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf20f41a3	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21649a1	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf216d787	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21fe4f1	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf223f07a	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24429d5	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2525810	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf25d0d56	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2802530	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf28c9314	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29064aa	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29b8a80	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a344dd	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a3f5e5	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2bf332c	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c0554f	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c25a53	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f433a3	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31472db	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3281577	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3298466	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32e1161	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf334b332	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3378fde	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34ec4c3	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3679fac	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36d8699	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf372ebe5	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3795ecf	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39a907c	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a03773	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b93e9f	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf415e2df	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf416fca7	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41c700a	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf421339f	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43e739f	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xf448f483	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0xf44f3e5b	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4507033	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45f3598	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf467074b	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xf46e072a	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf482cecd	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4908360	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49e30b6	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4aa18e4	rockchip_pcie_deinit_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c9f59f	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ca95ce	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d925fb	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e21e6b	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e6b8fd	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f418e3	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5070ce8	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50af14f	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51e67c2	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf542a82a	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf596f1b1	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a8df36	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c6ec39	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d2eaf0	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e02e93	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f177a4	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6045efa	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf613e59b	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xf619f442	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61b75b1	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62b093f	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6346fbf	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6388bc0	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64ce1dd	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66c8a11	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xf681dbe6	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf687becb	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf68f6cfc	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ae2d4b	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bf1eed	bgmac_enet_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ce101b	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70b4515	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7192779	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730fb4a	qcom_smem_state_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7332225	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73f4265	sock_prot_inuse_get
+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 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf754e5fa	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75be28e	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76cea0b	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf774def9	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf777a05f	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78a6b74	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78aa704	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7972928	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b92551	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7be30ac	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c01603	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ebdad3	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f13bb7	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f90ae9	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f9d45e	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80254cf	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8070d66	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80c50a7	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81d715f	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81d7f5d	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81d9ae3	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf826863b	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf827ff52	ti_sci_inta_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8369f9b	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf83df4dc	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84205b9	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf86556f4	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf879b745	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88d1b4b	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8993968	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e29e01	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e6a7b1	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f6396b	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91c9ad5	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9289284	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92aca77	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9532535	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95360c2	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9666b87	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xf967422b	HYPERVISOR_xen_version
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9707dd4	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9749b2d	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97774e3	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97879c5	fsl_mc_portal_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf978db11	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97e1ba8	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf990d858	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a084db	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a35069	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b76641	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cd89ed	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9efd978	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f276fb	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0e3b5c	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa2aaa16	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa2ec839	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa392002	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa47af68	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6afc9b	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa79b4d9	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7c1fe6	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7e0519	fsl_mc_portal_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa8bb600	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa925ca1	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa21853	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac16d3b	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad2b9f2	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfadc4fce	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaeb6ee5	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaec551e	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf28e82	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb039136	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb09038e	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1fc848	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2dff87	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb341a32	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb38a0bf	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4d9d0a	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb807484	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbff6c9	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc39e1d	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd7acb1	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe0c80e	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf1c33b	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf73b54	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbfa9bf6	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc000d5b	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0d1b58	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc165794	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b11f3	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc73fa83	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc995241	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9aafca	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9ce9f1	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb36176	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb4fe51	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb58944	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd2bda2	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd9f4e5	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf414ec	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf5a90a	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd05a029	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0632b3	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd07d7d6	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0a3fa8	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd1561a8	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd1cad06	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd215a62	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5fa807	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd635cd6	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6f9ce9	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd742910	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd8dceae	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdaa7d3d	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbb5cf9	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc6dccc	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdda26c5	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde1421a	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe034dbd	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0ddc0b	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe26fb42	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe334aca	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5a05eb	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe683a87	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6fa4c1	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6fb5c0	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe752d3d	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7efe0e	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7f4728	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe873d2b	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8ab28e	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8c378a	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe99a334	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeadff36	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec388cb	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed026b3	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef61fe2	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xfefb299f	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xff03364e	dpcon_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff0c2efc	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff29af55	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2c95f8	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xff463297	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xff46e705	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xff59c526	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff60285a	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0xff669703	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xff693dac	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xff71b9e7	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc02d3d	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xffda835b	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe6fd83	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff09511	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff18cc8	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff7bbd1	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffa5658	usb_hc_died
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0562a373	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x05bab34d	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x16cc19c6	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x18577732	usb_stor_bulk_transfer_buf	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 0x1e4d47cf	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2a33b38f	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2e57b95d	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3d503537	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5041af09	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x545eb172	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x56738ac4	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5aa844ff	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5c698114	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x695685b7	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6c7f631a	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7247366f	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7b4448bc	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9d02858d	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa9a30170	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaedabee4	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb6a5dbee	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf0390c0f	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf8b1ecd8	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf93a1b61	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/arm64/generic.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/arm64/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/arm64/generic.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/arm64/generic.modules
@@ -0,0 +1,6001 @@
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_exar
+8250_men_mcb
+8250_omap
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+a100u2w
+a3d
+a53-pll
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_ipmi
+acpi_power_meter
+acpi_tad
+acpiphp_ibm
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes-arm64
+aes-ce-blk
+aes-ce-ccm
+aes-ce-cipher
+aes-neon-blk
+aes-neon-bs
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci
+ahci_brcm
+ahci_ceva
+ahci_mtk
+ahci_mvebu
+ahci_platform
+ahci_qoriq
+ahci_seattle
+ahci_xgene
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+allegro
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+amba-pl010
+ambakmi
+amc6821
+amd
+amd-xgbe
+amd5536udc_pci
+amd8111e
+amdgpu
+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
+ams369fg06
+analog
+analogix-anx78xx
+analogix_dp
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+ao-cec
+ao-cec-g12a
+aoe
+apbps2
+apcs-msm8916
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+appledisplay
+appletalk
+appletouch
+applicom
+apr
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_emac
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arm_dsu_pmu
+arm_mhu
+arm_scpi
+arm_smmuv3_pmu
+arm_spe_pmu
+armada-37xx-cpufreq
+armada-37xx-rwtm-mailbox
+armada-8k-cpufreq
+armada_37xx_wdt
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_snoc
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axg-audio
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x-rsb
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bam_dma
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-flexrm-mailbox
+bcm-keypad
+bcm-pdc-mailbox
+bcm-phy-lib
+bcm-sba-raid
+bcm-sf2
+bcm203x
+bcm2835
+bcm2835-rng
+bcm2835-v4l2
+bcm2835_thermal
+bcm2835_wdt
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm7038_wdt
+bcm7xxx
+bcm87xx
+bcm_crypto_spu
+bcm_iproc_adc
+bcm_iproc_tsc
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+berlin2-adc
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluefield_edac
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bman-test
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb-avs-cpufreq
+brcmstb_nand
+brcmstb_thermal
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btqcomsmd
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+caam
+caam_jr
+caamalg_desc
+caamhash_desc
+cachefiles
+cadence-quadspi
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camcc-sdm845
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cavium-rng
+cavium-rng-vf
+cavium_ptp
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+clk-bd718x7
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-hi3519
+clk-hi655x
+clk-lochnagar
+clk-max77686
+clk-max9485
+clk-palmas
+clk-phase
+clk-pwm
+clk-qcom
+clk-raspberrypi
+clk-rk808
+clk-rpm
+clk-rpmh
+clk-s2mps11
+clk-scmi
+clk-scpi
+clk-si514
+clk-si5341
+clk-si5351
+clk-si544
+clk-si570
+clk-smd-rpm
+clk-spmi-pmic-div
+clk-sprd
+clk-twl6040
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobra
+coda
+coda-vpu
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-charger
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cppc_cpufreq
+cptpf
+cptvf
+cqhci
+cramfs
+crc-itu-t
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-ce
+crg-hi3516cv300
+crg-hi3798cv200
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_rpmsg
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_ec_vbc
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+decnet
+defxx
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dispcc-sdm845
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dma-axi-dmac
+dmard06
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpaa2-console
+dpaa2-ethsw
+dpaa2_caam
+dpot-dac
+dps310
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw-mipi-dsi
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_drm_dsi
+dw_mmc
+dw_mmc-bluefield
+dw_mmc-exynos
+dw_mmc-hi3798cv200
+dw_mmc-k3
+dw_mmc-pci
+dw_mmc-pltfm
+dw_mmc-rockchip
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-keystone
+dwc3-meson-g12a
+dwc3-of-simple
+dwc3-pci
+dwc3-qcom
+dwmac-altr-socfpga
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-ipq806x
+dwmac-mediatek
+dwmac-meson
+dwmac-meson8b
+dwmac-qcom-ethqos
+dwmac-rk
+dwmac-sun8i
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-mxc
+ehci-platform
+ehset
+einj
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emac_rockchip
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+emxx_udc
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+envelope-detector
+epic100
+eql
+erofs
+error
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-qcom-spmi-misc
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+fastrpc
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fixed
+fjes
+fl512
+flexcan
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+fscache
+fsi-core
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-dpaa2-eth
+fsl-dpaa2-ptp
+fsl-edma
+fsl-edma-common
+fsl-enetc
+fsl-enetc-mdio
+fsl-enetc-ptp
+fsl-enetc-vf
+fsl-mc-dpio
+fsl-mph-dr-of
+fsl-qdma
+fsl_dpa
+fsl_ifc_nand
+fsl_imx8_ddr_perf
+fsl_linflexuart
+fsl_lpuart
+fsl_pq_mdio
+fsl_usb2_udc
+ftdi-elan
+ftdi_sio
+ftl
+ftm-quaddec
+ftsteutates
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gcc-apq8084
+gcc-ipq4019
+gcc-ipq806x
+gcc-ipq8074
+gcc-mdm9615
+gcc-msm8660
+gcc-msm8916
+gcc-msm8960
+gcc-msm8974
+gcc-msm8994
+gcc-msm8996
+gcc-msm8998
+gcc-qcs404
+gcc-sdm660
+gcc-sdm845
+gcc-sm8150
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-ce
+gianfar_driver
+gigaset
+gl518sm
+gl520sm
+gl620a
+glink_ssr
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-amdpt
+gpio-arizona
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-brcmstb
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-eic-sprd
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-mlxbf
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-pmic-eic-sprd
+gpio-raspberrypi-exp
+gpio-rcar
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-sprd
+gpio-syscon
+gpio-thunderx
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xgene-sb
+gpio-xlp
+gpio-xra1403
+gpio-zynq
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpmi_nand
+gpu-sched
+gpucc-sdm845
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hanwang
+hbmc-am654
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hclge
+hclgevf
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfpll
+hfs
+hfsplus
+hi311x
+hi3660-mailbox
+hi6210-i2s
+hi6220-mailbox
+hi6220_reset
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi655x-pmic
+hi655x-regulator
+hi8435
+hibmc-drm
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hip04_eth
+hisi-rng
+hisi-sfc
+hisi-trng-v2
+hisi504_nand
+hisi_dma
+hisi_femac
+hisi_hpre
+hisi_powerkey
+hisi_qm
+hisi_sas_main
+hisi_sas_v1_hw
+hisi_sas_v2_hw
+hisi_sas_v3_hw
+hisi_sec
+hisi_sec2
+hisi_thermal
+hisi_zip
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hnae3
+hns-roce-hw-v1
+hns-roce-hw-v2
+hns3
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hopper
+horus3a
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-bcm-iproc
+i2c-bcm2835
+i2c-brcmstb
+i2c-cbus-gpio
+i2c-cros-ec-tunnel
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-hix5hd2
+i2c-i801
+i2c-imx
+i2c-imx-lpi2c
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-meson
+i2c-mt65xx
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-mv64xxx
+i2c-nforce2
+i2c-nomadik
+i2c-nvidia-gpu
+i2c-ocores
+i2c-owl
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-pxa
+i2c-qcom-geni
+i2c-qup
+i2c-rcar
+i2c-riic
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-sh_mobile
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-synquacer
+i2c-taos-evm
+i2c-thunderx
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xgene-slimpro
+i2c-xiic
+i2c-xlp9xx
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icc-smd-rpm
+ice
+ice40-spi
+icp
+icp_multi
+icplus
+ics932s401
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imon
+imon_raw
+ims-pcu
+imx-cpufreq-dt
+imx-dma
+imx-mailbox
+imx-pcm-dma
+imx-pxp
+imx-rngc
+imx-sdma
+imx214
+imx258
+imx274
+imx2_wdt
+imx319
+imx355
+imx6q-cpufreq
+imx6ul_tsc
+imx7d_adc
+imx7ulp_wdt
+imx_keypad
+imx_rproc
+imx_sc_wdt
+imx_thermal
+imxfb
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+iproc-rng200
+iproc_nand
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it87
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k3dma
+kafs
+kalmia
+kaweth
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kirin-drm
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+komeda
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+kpss-xcc
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+layerscape_edac_mod
+lcc-ipq806x
+lcc-mdm9615
+lcc-msm8960
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-sc27xx-bltc
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lima
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+llc
+llc2
+llcc-sdm845
+llcc-slice
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpasscc-sdm845
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macb_pci
+machxo2-spi
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mailbox-xgene-slimpro
+mali-dp
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell-cesa
+marvell10g
+marvell_nand
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux-gpio
+mdio-mux-meson-g12a
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdio-octeon
+mdio-thunder
+mdio-xgene
+mdt_loader
+me4000
+me_daq
+mediatek-cpufreq
+mediatek-drm
+mediatek-drm-hdmi
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+meson-canvas
+meson-drm
+meson-gx-mmc
+meson-gxl
+meson-ir
+meson-mx-sdio
+meson-rng
+meson-vdec
+meson_dw_hdmi
+meson_gxbb_wdt
+meson_nand
+meson_saradc
+meson_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxbf-tmfifo
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mmcc-apq8084
+mmcc-msm8960
+mmcc-msm8974
+mmcc-msm8996
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6380-regulator
+mt6397
+mt6397-regulator
+mt6577_auxadc
+mt6797-mt6351
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt8183-da7219-max98357
+mt8183-mt6358-ts3a227-max98357
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-btcvsd
+mtk-cir
+mtk-cmdq-helper
+mtk-cmdq-mailbox
+mtk-cqdma
+mtk-hsdma
+mtk-pmic-keys
+mtk-pmic-wrap
+mtk-quadspi
+mtk-rng
+mtk-sd
+mtk-uart-apdma
+mtk-vpu
+mtk_ecc
+mtk_nand
+mtk_thermal
+mtk_wdt
+mtouch
+mtu3
+multipath
+multiq3
+musb_hdrc
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvneta
+mvpp2
+mvsas
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxc_nand
+mxc_w1
+mxcmmc
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxsfb
+mxuport
+myrb
+myri10ge
+myrs
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netsec
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-neon
+ni_6527
+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_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+nps_enet
+ns-thermal
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-bcm-ocotp
+nvmem-imx-iim
+nvmem-imx-ocotp
+nvmem-imx-ocotp-scu
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmem-sc27xx-efuse
+nvmem_meson_efuse
+nvmem_meson_mx_efuse
+nvmem_qfprom
+nvmem_rockchip_efuse
+nvmem_snvs_lpgpr
+nvmem_sunxi_sid
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+octeontx2_af
+octeontx2_mbox
+of-fpga-region
+of_mmc_spi
+of_pmem
+of_xilinx_wdt
+ofb
+ofpart
+ohci-platform
+omap-mailbox
+omap-rng
+omap4-keypad
+omap_hwspinlock
+omfs
+omninet
+onenand
+opencores-kbd
+openvswitch
+opt3001
+optee
+optee-rng
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+owl-dma
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+panfrost
+parade-ps8622
+parkbd
+parman
+parport
+parport_ax88796
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_imx
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pblk
+pc300too
+pc87360
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcie-iproc
+pcie-iproc-platform
+pcie-rockchip-host
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia_core
+pcmcia_rsrc
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcwd_pci
+pcwd_usb
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pfuze100-regulator
+phantom
+phonet
+phram
+phy-am654-serdes
+phy-armada38x-comphy
+phy-bcm-kona-usb2
+phy-bcm-ns-usb2
+phy-bcm-ns-usb3
+phy-bcm-ns2-usbdrd
+phy-bcm-sr-pcie
+phy-bcm-sr-usb
+phy-berlin-sata
+phy-berlin-usb
+phy-brcm-usb-dvr
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-exynos-usb2
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-generic
+phy-gpio-vbus-usb
+phy-hi3660-usb3
+phy-hi6220-usb
+phy-hisi-inno-usb2
+phy-histb-combphy
+phy-isp1301
+phy-mapphone-mdm6600
+phy-meson-g12a-usb2
+phy-meson-g12a-usb3-pcie
+phy-meson-gxl-usb2
+phy-meson-gxl-usb3
+phy-meson8b-usb2
+phy-mtk-tphy
+phy-mtk-ufs
+phy-mtk-xsphy
+phy-mvebu-a3700-comphy
+phy-mvebu-a3700-utmi
+phy-mvebu-cp110-comphy
+phy-ocelot-serdes
+phy-omap-usb2
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-qcom-pcie2
+phy-qcom-qmp
+phy-qcom-qusb2
+phy-qcom-ufs
+phy-qcom-ufs-qmp-14nm
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-rcar-gen2
+phy-rcar-gen3-pcie
+phy-rcar-gen3-usb2
+phy-rcar-gen3-usb3
+phy-rockchip-dp
+phy-rockchip-emmc
+phy-rockchip-inno-hdmi
+phy-rockchip-inno-usb2
+phy-rockchip-pcie
+phy-rockchip-typec
+phy-rockchip-usb
+phy-sun4i-usb
+phy-sun6i-mipi-dphy
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-apq8064
+pinctrl-apq8084
+pinctrl-axp209
+pinctrl-ipq4019
+pinctrl-ipq8064
+pinctrl-ipq8074
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-mdm9615
+pinctrl-msm8660
+pinctrl-msm8916
+pinctrl-msm8960
+pinctrl-msm8994
+pinctrl-msm8996
+pinctrl-msm8998
+pinctrl-msm8x74
+pinctrl-qcs404
+pinctrl-qdf2xxx
+pinctrl-rk805
+pinctrl-sc7180
+pinctrl-sdm660
+pinctrl-sdm845
+pinctrl-sm8150
+pinctrl-spmi-gpio
+pinctrl-spmi-mpp
+pinctrl-ssbi-gpio
+pinctrl-ssbi-mpp
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8916_wdt
+pm8941-pwrkey
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+ptp-qoriq
+ptp_dte
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-bcm-iproc
+pwm-bcm2835
+pwm-beeper
+pwm-berlin
+pwm-brcmstb
+pwm-cros-ec
+pwm-fan
+pwm-fsl-ftm
+pwm-hibvt
+pwm-imx-tpm
+pwm-imx1
+pwm-imx27
+pwm-ir-tx
+pwm-lp3943
+pwm-mediatek
+pwm-meson
+pwm-mtk-disp
+pwm-pca9685
+pwm-rcar
+pwm-regulator
+pwm-renesas-tpu
+pwm-rockchip
+pwm-sprd
+pwm-sun4i
+pwm-tiecap
+pwm-tiehrpwm
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa168_eth
+pxa27x_udc
+pxe1610
+pxrc
+q6adm
+q6afe
+q6afe-dai
+q6asm
+q6asm-dai
+q6core
+q6dsp-common
+q6routing
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-apcs-ipc-mailbox
+qcom-camss
+qcom-coincell
+qcom-cpufreq-hw
+qcom-cpufreq-nvmem
+qcom-emac
+qcom-geni-se
+qcom-pon
+qcom-rng
+qcom-rpmh-regulator
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-pmic
+qcom-spmi-temp-alarm
+qcom-spmi-vadc
+qcom-vadc-common
+qcom-wdt
+qcom_aoss
+qcom_common
+qcom_edac
+qcom_geni_serial
+qcom_glink_native
+qcom_glink_rpm
+qcom_glink_smem
+qcom_gsbi
+qcom_hwspinlock
+qcom_nandc
+qcom_q6v5
+qcom_q6v5_adsp
+qcom_q6v5_mss
+qcom_q6v5_pas
+qcom_q6v5_wcss
+qcom_rpm
+qcom_rpm-regulator
+qcom_smbb
+qcom_smd
+qcom_smd-regulator
+qcom_spmi-regulator
+qcom_sysmon
+qcom_tsens
+qcrypto
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_helpers
+qmi_wwan
+qnoc-qcs404
+qnoc-sdm845
+qnx4
+qnx6
+qoriq-cpufreq
+qoriq_thermal
+qrtr
+qrtr-smd
+qrtr-tun
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+raspberrypi-cpufreq
+raspberrypi-hwmon
+raspberrypi-ts
+ravb
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar-csi2
+rcar-dmac
+rcar-du-drm
+rcar-fcp
+rcar-vin
+rcar_can
+rcar_canfd
+rcar_drif
+rcar_dw_hdmi
+rcar_fdp1
+rcar_gen3_thermal
+rcar_jpu
+rcar_lvds
+rcar_thermal
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+renesas_sdhi_core
+renesas_sdhi_internal_dmac
+renesas_sdhi_sys_dmac
+renesas_usb3
+renesas_usbhs
+renesas_wdt
+repaper
+reset-brcmstb
+reset-hi3660
+reset-meson-audio-arb
+reset-qcom-pdc
+reset-scmi
+reset-ti-sci
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk3399_dmc
+rk805-pwrkey
+rk808
+rk808-regulator
+rk_crypto
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rmtfs_mem
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rockchip-dfi
+rockchip-io-domain
+rockchip-rga
+rockchip_saradc
+rockchip_thermal
+rockchipdrm
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-armada38x
+rtc-as3722
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-brcmstb-waketimer
+rtc-cadence
+rtc-cpcap
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-fsl-ftm-alarm
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-imx-sc
+rtc-imxdi
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-meson-vrtc
+rtc-msm6242
+rtc-mt6397
+rtc-mt7622
+rtc-mxc
+rtc-mxc_v2
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pl031
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sc27xx
+rtc-sd3078
+rtc-sh
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+rza_wdt
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+sahara
+salsa20_generic
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_rcar
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sbsa_gwdt
+sc16is7xx
+sc2731-regulator
+sc2731_charger
+sc27xx-vibra
+sc27xx_adc
+sc27xx_fuel_gauge
+sc92031
+sc9860-clk
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+sci-clk
+sclk-div
+scmi-cpufreq
+scmi-hwmon
+scmi_pm_domain
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci
+sdhci-acpi
+sdhci-brcmstb
+sdhci-cadence
+sdhci-esdhc-imx
+sdhci-iproc
+sdhci-msm
+sdhci-of-arasan
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-dwcmshc
+sdhci-of-esdhc
+sdhci-omap
+sdhci-pci
+sdhci-pltfm
+sdhci-pxav3
+sdhci-sprd
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh-sci
+sh_eth
+sh_mmcif
+sh_mobile_lcdcfb
+sh_veu
+sha1-ce
+sha2-ce
+sha256-arm64
+sha3-ce
+sha3_generic
+sha512-arm64
+sha512-ce
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slic_ds26522
+slicoss
+slim-qcom-ctrl
+slim-qcom-ngd-ctrl
+slimbus
+slip
+slram
+sm3-ce
+sm3_generic
+sm4-ce
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc_diag
+smd-rpm
+smem
+smiapp
+smiapp-pll
+smipcie
+smm665
+smp2p
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsm
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-aloop
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-bcd2000
+snd-bcm2835
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-ens1370
+snd-ens1371
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcm
+snd-pcm-dmaengine
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-apq8016-sbc
+snd-soc-apq8096
+snd-soc-armada-370-db
+snd-soc-audio-graph-card
+snd-soc-bcm2835-i2s
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cpcap
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsi
+snd-soc-fsl-asoc-card
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-imx-audmix
+snd-soc-imx-audmux
+snd-soc-imx-es8328
+snd-soc-imx-sgtl5000
+snd-soc-imx-spdif
+snd-soc-inno-rk3036
+snd-soc-kirkwood
+snd-soc-lochnagar-sc
+snd-soc-lpass-apq8016
+snd-soc-lpass-cpu
+snd-soc-lpass-ipq806x
+snd-soc-lpass-platform
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-meson-axg-fifo
+snd-soc-meson-axg-frddr
+snd-soc-meson-axg-pdm
+snd-soc-meson-axg-sound-card
+snd-soc-meson-axg-spdifin
+snd-soc-meson-axg-spdifout
+snd-soc-meson-axg-tdm-formatter
+snd-soc-meson-axg-tdm-interface
+snd-soc-meson-axg-tdmin
+snd-soc-meson-axg-tdmout
+snd-soc-meson-axg-toddr
+snd-soc-meson-g12a-tohdmitx
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-mt6797-afe
+snd-soc-mt8183-afe
+snd-soc-mtk-common
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-qcom-common
+snd-soc-rcar
+snd-soc-rk3288-hdmi-analog
+snd-soc-rk3328
+snd-soc-rk3399-gru-sound
+snd-soc-rl6231
+snd-soc-rockchip-i2s
+snd-soc-rockchip-max98090
+snd-soc-rockchip-pcm
+snd-soc-rockchip-pdm
+snd-soc-rockchip-rt5645
+snd-soc-rockchip-spdif
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-rt5663
+snd-soc-sdm845
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-sprd-platform
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-storm
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-imx8
+snd-sof-of
+snd-sof-pci
+snd-timer
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+snps_udc_plat
+snvs_pwrkey
+soc_button_array
+socinfo
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundcore
+soundwire-bus
+sp2
+sp805_wdt
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-armada-3700
+spi-axi-spi-engine
+spi-bcm-qspi
+spi-bcm2835
+spi-bcm2835aux
+spi-bitbang
+spi-brcmstb-qspi
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-fsl-dspi
+spi-fsl-lpspi
+spi-fsl-qspi
+spi-geni-qcom
+spi-gpio
+spi-hisi-sfc-v3xx
+spi-imx
+spi-iproc-qspi
+spi-lm70llp
+spi-loopback-test
+spi-meson-spicc
+spi-meson-spifc
+spi-mt65xx
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-orion
+spi-pl022
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-qcom-qspi
+spi-qup
+spi-rockchip
+spi-rspi
+spi-sc18is602
+spi-sh-hspi
+spi-sh-msiof
+spi-sifive
+spi-slave-mt27xx
+spi-slave-system-control
+spi-slave-time
+spi-sprd
+spi-sprd-adi
+spi-sun6i
+spi-synquacer
+spi-thunderx
+spi-tle62x0
+spi-xcomm
+spi-xlp
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+spmi-pmic-arb
+sprd-dma
+sprd-sc27xx-spi
+sprd_hwspinlock
+sprd_serial
+sprd_wdt
+sps30
+sr-thermal
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-pci
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+stratix10-rsu
+stratix10-soc
+stratix10-svc
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sun4i-backend
+sun4i-csi
+sun4i-drm
+sun4i-drm-hdmi
+sun4i-frontend
+sun4i-gpadc
+sun4i-tcon
+sun4i_tv
+sun50i-codec-analog
+sun50i-cpufreq-nvmem
+sun6i-csi
+sun6i-dma
+sun6i_drc
+sun6i_mipi_dsi
+sun8i-adda-pr-regmap
+sun8i-codec
+sun8i-codec-analog
+sun8i-drm-hdmi
+sun8i-mixer
+sun8i_tcon_top
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sunxi
+sunxi-cir
+sunxi-mmc
+sunxi-rsb
+sunxi_wdt
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_gt
+synclinkmp
+synopsys_edac
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tee
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderx-mmc
+thunderx2_pmu
+thunderx_edac
+thunderx_zip
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-sn65dsi86
+ti-tfp410
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_sci_pm_domains
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc_core
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_ftpm_tee
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217
+tps65217-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+turingcc-qcs404
+turris-mox-rwtm
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufs-hisi
+ufs-mediatek
+ufs-qcom
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-dmac
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vc4
+vcan
+vchiq
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+venus-core
+venus-dec
+venus-enc
+ves1820
+ves1x93
+veth
+vexpress-hwmon
+vexpress-regulator
+vf610_adc
+vf610_dac
+vfio
+vfio-amba
+vfio-pci
+vfio-platform
+vfio-platform-amdxgbe
+vfio-platform-base
+vfio-platform-calxedaxgmac
+vfio_iommu_type1
+vfio_mdev
+vfio_platform_bcmflexrm
+vfio_virqfd
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videocc-sdm845
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_pvrdma
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmxnet3
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsp1
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wcn36xx
+wcnss_ctrl
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-dma
+xgene-enet
+xgene-enet-v2
+xgene-hwmon
+xgene-rng
+xgene_edac
+xhci-histb
+xhci-mtk
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_can
+xilinx_dma
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xilinxfb
+xillybus_core
+xillybus_of
+xillybus_pcie
+xircom_cb
+xlnx_vcu
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
+zynqmp-fpga
+zynqmp_dma
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/arm64/generic.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/arm64/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic
@@ -0,0 +1,23056 @@
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0x1cb22bd7	crypto_sha256_arm_finup
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0xb1e2d1c1	crypto_sha256_arm_update
+EXPORT_SYMBOL	 arch/arm/lib/xor-neon 0x0f051164	xor_block_neon_inner
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x022542ef	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x5718c3f8	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x6c972daa	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xece87c30	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xed8715cb	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xee466e10	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x9ddcf064	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0xd1f949c1	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xf1d294ed	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x8396fe0b	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xdb6b88ad	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/atm/suni 0x14e082a6	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x06ab4c1a	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xe287ad78	bcma_core_dma_translation
+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/block/paride/paride 0x124ba190	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x45bdff05	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x47c48aae	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x52041fee	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x628e512c	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x640deeb4	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x896e99e8	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xba1412b3	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xd225616b	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe20574aa	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe8aee6f9	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf0d1bc30	paride_unregister
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x55937702	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x89eae76b	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67a8b164	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x8342360e	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x93dc8e65	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd379d8a4	ipmi_add_smi
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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/ipmi/kcs_bmc 0x7302088a	kcs_bmc_alloc
+EXPORT_SYMBOL	 drivers/char/ipmi/kcs_bmc 0xaa5ea4e0	kcs_bmc_handle_event
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x7ee4b2a1	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8044babc	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xc2dc86cd	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xeb19fbe4	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x1d8a460e	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x9c9d8d63	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xc7d511c2	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x0ef14700	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x6244f5f2	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x6c28f9b1	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x7c3b5995	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x37734e06	caam_dpaa2
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x4e13b93c	gen_split_key
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x58b435ec	caam_jr_alloc
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x8dc465e0	split_key_done
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xb8b4dde7	caam_jr_free
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xcd7b848e	caam_jr_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x06717761	cnstr_shdsc_aead_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x09c41809	cnstr_shdsc_gcm_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x4099709e	cnstr_shdsc_aead_givencap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x46efe449	cnstr_shdsc_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x4b74fe69	cnstr_shdsc_rfc4106_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x4ead8e70	cnstr_shdsc_aead_null_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x6de99a64	cnstr_shdsc_rfc4543_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x756131a7	cnstr_shdsc_aead_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x86089940	cnstr_shdsc_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x893ab046	cnstr_shdsc_aead_null_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x8a8c929e	cnstr_shdsc_xts_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa2ea5326	cnstr_shdsc_gcm_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa970bc2f	cnstr_shdsc_xts_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xbef6ab16	cnstr_shdsc_chachapoly
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xc6c7d14b	cnstr_shdsc_rfc4543_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xe05ab546	cnstr_shdsc_rfc4106_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0x686d05f8	cnstr_shdsc_ahash
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0x9dc00876	cnstr_shdsc_sk_hash
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x2eed504a	caam_ptr_sz
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x8db6e8c5	caam_dump_sg
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xa51f16c7	caam_little_end
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xba4b33e9	caam_strstatus
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xbd67c092	caam_imx
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x19604afc	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x19d3f83f	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1ba577fa	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x20599eb4	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x27ee43c5	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2b00733e	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2f8d28f3	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x410b7e50	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x43a0e33d	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x46ca6b4e	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x473d2e80	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x556601c3	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x65a4d9e4	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x69f08f72	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6fa7f64b	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x74cade05	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x796fb628	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8ec4e37e	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8ec8210c	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x964cfd09	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x96780f2b	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xae74da0f	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb8f3b383	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb0baed7	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcdd91e68	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xdf50a5a1	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe107de5d	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3a6f260	fw_core_handle_bus_reset
+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 0xf0107c1c	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x015050d0	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02f809ac	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0556c098	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0690407c	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08558c0d	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09e8143d	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c0ff621	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c419e5c	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e7aadfe	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e7dddd0	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1043958b	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1159e767	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12769147	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1292a7ed	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16311877	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x163bb53d	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16725752	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1854539a	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a71063f	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c0ee653	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c15036f	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d5c40e5	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1eb59374	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f14b627	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f84a173	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f9cd61d	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20654180	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x208dab5d	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x209adc73	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20c3a655	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20d98af5	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21433acb	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d39f63	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x224b68fd	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x229b1ea7	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23f9755b	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24690cf2	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25175dd5	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x261dcdc7	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271af8c9	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27d23c3f	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27fb8093	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27ff4ff5	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2808d0cc	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28d997b0	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29a0fcc5	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d001483	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d2fe8ab	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d373f99	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2dbb8e8c	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e3cc3dc	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e6242ec	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2eca8dfd	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2efa5b78	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fb01a82	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30373f9a	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30f2f78d	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3106f332	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33059d07	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34cacc6e	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34dbb9d5	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x360e6744	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36391861	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x380b5fbb	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3905ebbb	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c385563	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ca303aa	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3cae3108	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ceda59f	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3dff7043	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e3dfac1	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e3e1397	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f63b769	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40619243	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4085978d	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x413ab89c	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41f1d367	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x421393b8	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x425a7f4c	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43d8ca86	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43e36f01	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x449157ab	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x464fabcc	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x465dfb7b	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x466b813b	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x474f1751	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47d90180	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4834906a	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49aa6c9c	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49af1133	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b8c0f36	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c254d62	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c4b53d9	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d0c1f58	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d0fbd3d	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d4d35e6	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4da50a30	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ff20b6f	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5270f089	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52e178ab	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5317ed3b	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x542f727e	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54a1fca2	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55abea75	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57800c10	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5789a525	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5864a273	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58ccf6f8	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58d54576	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59c357dd	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a6eec48	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b0acc3b	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b1d7ade	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b521588	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ba8e69c	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c64e56b	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c6af664	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5caf4bd8	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cd87545	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ceb9577	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d243119	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d39f6ba	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5df211fe	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e0da641	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60212bdf	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61580706	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x635de122	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x646627c4	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6495172e	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65614db6	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6646bbe5	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6654b25e	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66a3ca29	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6730e35d	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6734a3c2	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69e33904	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69e51019	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ac2276e	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ad13e77	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b0b9550	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b20ecee	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b72e3d7	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c0497e5	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c080bb2	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c9b05e1	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e23a61a	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e3388d6	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fb7c41a	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fdb28d6	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fdb9ef9	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x706af5b6	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x709b205c	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7262a3f0	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x732324ca	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7362c6e6	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x738c7f72	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74437669	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7559d993	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x759f60c6	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76a8dcdf	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76e7fc77	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x772899c6	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x775c0426	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77b07fd3	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77bca3b2	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7869a2d0	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79cfc82f	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d63ceba	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d714248	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e016d38	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f34a107	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7febe193	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8067b12c	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80bc89d2	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81bc6566	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81e46e3b	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8371eae5	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83d66996	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x845d7373	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84e7a750	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85f4cdb3	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8615c0b6	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8637dc4d	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x866cf59a	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x868d1393	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x86c579c8	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87155dff	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8715dded	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87738eaf	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87857ee7	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x88c29215	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x88c46866	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89a4afd3	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8aa58e0c	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ba5308b	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c58eba4	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d20625e	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d87ce4a	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8efa6843	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fb851b0	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fccd5ec	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9030426f	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x919aec9e	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91f207f7	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x93792fe1	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94843518	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96dc874e	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b194846	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b1cb244	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b382b57	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b501746	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c31d1b7	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9caa5651	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9cec8fff	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f7ca3ae	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9fa2fe56	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0b1b4b3	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0f4c548	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33aaf7e	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33fc7c0	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3818b80	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3d3d72a	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa46f2864	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4a65346	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa57aa354	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5eb34b8	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5f9a20a	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa63bf443	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa669940b	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6c75574	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6c75ebe	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa72b6285	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ab5a88	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa992d150	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa1b6e60	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaabb1e22	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab881872	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac5f7257	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xacd189ba	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xace820ca	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad5c1106	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xada08295	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xadefd80c	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf215f8d	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafba9a75	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb01e7d03	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb09d1c5e	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb115e3f1	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1359695	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb209271f	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb20a1a48	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4de6411	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb509454e	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5145bdc	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb517840f	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb52f1e39	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5b3c097	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb605cdd7	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb675dc35	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6fceb5f	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb815bf88	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8313f16	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8ab02de	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9a76410	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba562a1f	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcfeb27a	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe7b9d46	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc049fdd0	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0b3ba19	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc12e76c9	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc17fb9a1	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc320a2f8	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5122620	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc55bf7f1	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc55fc0ac	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5ce9af3	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7aea8c4	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7c42bcf	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc90d306f	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc99cb2ac	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca4ba774	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb257bde	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc6d32c6	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcccc08cc	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd6b4f87	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd75d148	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd804118	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcdad7ae6	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce18c2bc	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce687d5c	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf3df4d2	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd04f59a7	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0e59180	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1fc5f14	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd218b45d	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd405e7b0	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd40f5849	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4132cc6	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd47a47c3	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5305301	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd53c70be	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd54c325d	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6778c7d	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6e6d4ea	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6fd6c59	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda773df9	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdaaff840	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb7c00c3	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc833fbb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc85b72f	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd3e1665	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdda3236e	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdebf751a	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf424426	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe04d20e6	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1c782f1	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe29bcfd5	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe32c740b	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe357caac	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3d607d7	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4d51a96	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe508cf6e	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe589906b	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8f570b5	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9254838	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeafe0297	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb244b22	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb8e8c80	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xecc72d50	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed0c864c	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed6514c0	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedeb26a7	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedf7e8cc	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee32d579	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef20deab	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef76a64c	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf011b9cf	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1c7c518	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf338fe47	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3888234	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4304bc3	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf46db412	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf481c3cb	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf49b8845	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5aa4b53	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6e3fb2c	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf76bf80b	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf858f77a	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9026e6d	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf94cf63f	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9511117	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9c37d45	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9c97042	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9e558ba	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa48b83c	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa81da93	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb032486	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb2295c6	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb298753	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd017610	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd162db1	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd8d392b	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfec139a7	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff03e931	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff6897ab	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff73fc6a	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x007c6272	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x03200173	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x07a768a5	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x07f53a21	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x08984cd0	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0ad8b598	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0b100d92	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0b8f37aa	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e6739f9	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11395953	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x12034441	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x12b77021	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x133867f1	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x138c3c7e	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1411c72d	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x144bd781	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x14813f44	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x14c4221c	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x168e501f	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16d38710	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x177b2bfd	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x178655b6	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17c4c94c	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17ea0f03	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x19df42d8	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1a9e7842	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b8de8c5	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b9076a2	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1e7d5ad7	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ea37627	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f03c3ea	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x22b857fc	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x240e04c1	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x244e4a25	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x276e1724	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c840996	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2dbcc88e	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2dece9d1	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2fba6d29	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x300e6973	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x302a5abd	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3125bf88	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x336d8212	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34b3d48e	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x35054da7	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b32150d	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b900d4a	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3bc7fca0	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f26da58	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4048741c	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x40487519	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44a2e51c	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x459c3061	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x47d4e1db	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48cf051e	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49cb6815	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49e9d9aa	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4a89c003	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4a962d3e	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d3360bb	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d9283ca	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x523c4e6b	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x541515ae	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54263087	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56d2d45c	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5858657a	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x59a214c3	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5be088e1	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ec3a841	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5f92e9f4	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5fd00c34	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6047e9e5	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6086f3f0	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6096f13a	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61d45da2	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6241884e	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x62c72707	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x630f5b7b	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63791579	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6394ebbd	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6420c3bd	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x64ef74d4	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x657117e7	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65aa214f	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65c5a24f	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65d1d404	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x675d1b7f	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x69d9775d	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ac1db9f	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e72f4bb	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e98fa7a	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x714238d7	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71e56950	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x720269ac	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x729b0dab	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x729d69f0	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7325ec45	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74e23795	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x769eddf1	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x773bc6bf	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x773d6fcf	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77c9444d	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x785ddf0d	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7adf035a	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b4a3b46	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7c85fbf4	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7fe420ed	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ffc39b3	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x807dd896	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8ba9de61	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8bd1e9cd	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8e2dea94	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x908c751e	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91cb2073	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92d81c89	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x931e17f7	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9324f454	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94c6c2e5	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96646930	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98cd0214	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98cf907e	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98ff4127	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9bc819c5	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ca033eb	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ce9b3e4	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ef98241	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f3d26bf	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa06927c3	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1336a41	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2e393d9	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa35c839a	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa363c789	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3fef471	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa45815b8	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa77a7142	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9d02a7e	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab09d42c	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb15a764e	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb1c3f04e	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5991359	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5cc3a73	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5f8b16e	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7e6e95f	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb833ffea	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb91d8ba6	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9d34e39	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbb53c533	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd3ce9be	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4abafd5	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4f2986b	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc65d1628	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc75e4a8a	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb3eeaf2	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcbe79b7d	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcd7c1bf2	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2540081	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd3aea9b1	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6a8ea4a	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd77847c7	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd8188c87	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd8ef3dc7	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd91d4bd4	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd974de30	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9bd646c	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9cea96f	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb68bd7b	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde6cdcb0	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe1ecd235	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe271b16b	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2ffd21b	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe48f3fe6	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe4ed91c5	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe53ffc9e	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5ff317c	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea34e79d	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeaf74c2e	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeb582ccd	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xec407a20	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee251448	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee71ec47	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeff2d14c	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf05242ce	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0ddb603	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3640bea	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf6286c8c	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf68e135c	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf77a28f4	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7cfa77d	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf81de22b	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf86f872e	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfafb46a3	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb474b0c	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd410187	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd905be1	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe2b8d4e	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0841a867	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x33a1bc7f	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4246347a	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x46266ffb	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5182d81b	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5bda6da5	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6755c17e	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x7d827ec1	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x846d66b6	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x86612cb6	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x8d4a5f56	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa262e578	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xdd90db64	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe914bbb1	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf0b32283	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf1ef5745	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf80f3278	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xff8745de	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x10c037fe	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x283f986f	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x284fac00	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x311f364d	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3f67f0f5	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3f9e3b7a	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5ae2ebde	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5eae961f	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5f465f9f	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x668d4439	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x72206a61	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x74b55c1a	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x906b80d8	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x958c17ae	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9a00236d	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa1989ba0	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbc65c167	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdba5441c	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe3c121d7	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe8a60694	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/rockchip/rockchipdrm 0xc7fe7299	rockchip_drm_wait_vact_end
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0a79b26f	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x17e4da30	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x20128196	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x26bae384	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x325a9cf0	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5266e1df	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x57691c52	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x65318b53	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x7b59f6a6	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa61ae582	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa73522cf	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb597adc3	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbf755b4e	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd0036a87	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd72abc25	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xedf24630	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf22d09fd	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf698057a	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xff93b0a2	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0000f176	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0924f958	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a643382	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x132b05be	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x137d42ff	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x157f5c15	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x16b0074a	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x18d2602c	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ebc85fe	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2239ca1b	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x28941ac9	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f158554	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x30239666	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x324017a6	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3460f027	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x351cb576	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x38db2ed9	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x396f54a8	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x39780570	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3ec95ae9	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3f524041	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x416e3a22	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x41dc3153	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4d181815	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x51b0e0f6	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x53552990	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5662fa06	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x57050a5c	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5862cb99	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5d749c83	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f3e3b5c	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f78d1e2	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6175f5b1	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x618dac2e	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74275ba2	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7550f646	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x75b89419	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x767592be	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x796d83b8	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7f7cf1f2	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x80cc0fdf	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x835bb318	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x881de7b2	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8be278c9	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x928e034b	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x95d05505	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x97a5c59e	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xadb7a129	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb0a92703	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb90c285f	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba1dab3d	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbfd024f5	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc061625c	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc55b26ba	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc5b7e09a	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcb17469b	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcf5a92fa	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd5dc4d4d	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeb17533e	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf0aa1628	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf17bbb36	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf2186b69	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf8aaab81	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf99ac532	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfb9578b2	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x048a36a4	host1x_driver_unregister
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x090f454e	host1x_client_register
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x0af68368	host1x_syncpt_id
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x0d13a927	host1x_device_exit
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x127a783b	host1x_syncpt_wait
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x1310abb7	host1x_job_pin
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x220ef56d	host1x_syncpt_get_base
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x33b58cf8	host1x_syncpt_get
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x3557bdbb	tegra_mipi_request
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x389ab44f	host1x_job_alloc
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x43799a4e	tegra_mipi_calibrate
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x51de13ce	host1x_syncpt_base_id
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x587ab26a	host1x_device_init
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x59816121	host1x_syncpt_free
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x6801c8d7	host1x_job_add_gather
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x89f4e52e	host1x_syncpt_read_max
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x93325275	host1x_driver_register_full
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x9451a33e	tegra_mipi_free
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xa386bc15	host1x_job_submit
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xa39a186c	host1x_syncpt_incr
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xa524a14f	host1x_client_unregister
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xa733ff60	tegra_mipi_disable
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xb1f89b0a	host1x_job_get
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xb43384db	host1x_job_put
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xbedf1565	host1x_syncpt_read_min
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xc15ecec8	host1x_channel_get
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xc397a5da	host1x_channel_put
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xe2c967bb	host1x_syncpt_incr_max
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xe2d5b253	host1x_syncpt_request
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xecbb892e	host1x_job_unpin
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xf8a79b19	tegra_mipi_enable
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xfcc82b7d	host1x_syncpt_read
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xffb39ae8	host1x_channel_request
+EXPORT_SYMBOL	 drivers/hid/hid 0xb231a615	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+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 0xc0f438dd	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x112143d7	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x26a9648a	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x8f421c0e	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x47760b4e	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xbd163318	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0xcc57dd14	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x3bc07f16	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x8e24704e	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xbd325d54	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x003426f5	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0be275d9	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0ec1133c	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x283f57d7	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x2a5b5026	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x388ed993	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x394cc8cf	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5e125248	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9684f6bc	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb2eca24d	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xc3d7575b	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xcc046d2a	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe5e71abb	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xeaa4c518	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xed37b4ed	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xfa001f28	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x0208512e	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xba0302f9	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xeda116ee	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xa2697cce	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xf2586b8a	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x1a2ec484	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x231d50ae	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x65e4ab55	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xc7e31501	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x6b0473b2	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x17135398	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x2d19de85	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x2ebf2ecb	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x366a9fe5	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x803984bd	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x85c645b7	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb34a5a40	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc9380b21	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe932b6a2	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xfbf96680	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x28c0780b	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x31b782f0	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x6f205235	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xb673a341	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x02101323	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2b1cc5c2	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x913a5b86	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb2d3e953	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc652db9e	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xd214768a	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xd9ee5f7b	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe1798bc6	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe98cfc77	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x343ce0b8	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x9aa4916f	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xb1907634	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xc87f2ead	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xd917bf5c	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x15120a4b	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xb13f066c	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe73c2767	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x06ce6ad8	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0da250d7	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0f511be7	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1d97b9e2	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x24df8878	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x24e9f737	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x452f1da3	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6781e987	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6dfcddbe	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x77a411db	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x85e77146	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa30131a7	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xabd7415b	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbc7108bb	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcf988ca6	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe68759c0	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf3bfc8ee	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf91170d2	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xe2975cd3	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x45b1c1e0	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x2687aeb4	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x8ceab7ed	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x9ee5ca9f	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xa36b2684	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xb008fa75	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xdc404c2e	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x0b63df4a	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x3088ca48	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x35c29566	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x65eafc6f	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x686c377d	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x7e476abc	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xd0c243fb	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x04a75678	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0fc3c415	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x17dabe9f	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x20dde1f8	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x408a7705	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5e44a4ea	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6a842215	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7a103976	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8c1e13da	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x937ab130	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9ddc1c89	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9ede7062	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa4660b87	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa7e8555b	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xae8c9036	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb51deca2	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb5642f5c	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb593e680	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xcf6d87e7	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd18fb3b4	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe893edf1	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xea578c8c	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf972f9f7	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0xa6743552	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x1949ee33	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x83d9e776	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xb67d39f5	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xe5884edf	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x27ce3597	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x3128ce2d	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xdc47c2bb	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xde7b11fa	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x165df599	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x5ac99cfc	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x01dd949c	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xe39809f4	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x33b82fb4	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x5e5d9be2	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x961f1a7b	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xa9d9cd3d	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x270e20ab	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xb2e95790	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xca9d9f79	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xed771bb6	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x4db4878f	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xa41be1a3	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xad0bc471	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x0bf1738e	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x24c09a52	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x2e0e195c	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xbdde036f	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xc488c43e	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x47d7f61b	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xcd761935	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x47a5b4eb	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x51489923	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xebc53ca0	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x0b235bcf	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x11906451	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x178ad129	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x18e94f89	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1b212d1a	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1d51a073	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x29e64584	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x40dfbba1	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x457f2c02	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5c01de11	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x7d5180e5	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc532917e	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xddf72ef3	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe170c1b5	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xeb2748c7	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xed6bdd8e	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf1e028c4	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xff2b9f25	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x011e5d5a	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03ec65c6	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03eddb2e	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08b7f221	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e36d59b	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f83d738	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10e3e90c	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x11a85d11	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13bf4e8f	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x155d0c6e	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x16182823	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x17bc5761	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18903641	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18ce2947	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a98d214	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1acbaf9c	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1c36b736	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1cac068d	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e08ef1d	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1ef3f268	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1f2b8a5a	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24edfd4f	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x27e26c06	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x293dedd8	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a192fbd	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2cc17600	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2deba18b	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30716c57	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3085a353	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30c6dafa	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30f6417a	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x319e7064	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31b92d79	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33dca7d3	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35fb81d8	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x384a73df	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ab4d499	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b2b19d9	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b90fd3c	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bae95c8	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c7e0202	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3cbbff48	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e5cc00b	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40472fe7	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x41f8af31	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42a37fba	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x436fde12	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43c93942	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x450817c7	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x464b4a94	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48fea8bd	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x491ebbeb	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x491f7f8e	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x492e3d20	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+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 0x4f184fff	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f2bdf6d	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4fe6625b	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50509aeb	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50b6ba05	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x510f6fb2	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x520b2638	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ac06e3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x531e5e50	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5415d9b6	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5446b98b	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x57de7b42	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x586fb3f7	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a127833	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5fc0a005	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62165141	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62de281f	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64466234	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65f6329f	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6631b555	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x66c80160	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x67a885ae	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x68adce19	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6ce944a7	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6d0ea17e	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6dc5e1b9	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7092081e	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71b6a448	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x727dab6f	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7506b8d0	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75508b0d	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x775288c3	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7968c8a2	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79706cc0	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79e0b594	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b5cebab	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b8d35c9	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b91b745	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bcb243e	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bf10bcc	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f02871c	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f562d92	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f9cb796	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8031a626	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8044ad24	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x805e760d	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82d4204c	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8456397d	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8818fab0	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x887df39b	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89782abe	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8ca1b5af	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d07bc9d	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d87d50c	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8df93bd3	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8fa6bdd9	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x910e268b	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x918be098	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x91b4cc24	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x926995d5	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94618045	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94f66d2e	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x972d69bd	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x98db380d	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9902ec03	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ace5c74	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9de51328	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa34a8b64	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa3fdd841	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa5104d0e	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaad903fb	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xac51dc0e	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad8344ef	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae4669f5	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaea573d0	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaed132fb	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf9179c0	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1a312e1	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb432c417	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb576331d	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb709209f	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7946288	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7ab89ab	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba43f550	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba6ee536	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba8719b6	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbfaad7d1	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc00ff104	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc17117e9	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2a034a2	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2ac7a58	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc30c9d87	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc386f007	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc38cc727	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc44181e3	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc449916b	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc451fd3c	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4b833be	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4e0bf5b	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4f3439d	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7ed85ba	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb0b5d8e	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcea619a3	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcfbcbd25	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcfde3e4a	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd244013c	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd3836ea9	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd4d479b6	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd4e2ec8d	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5bbe2df	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5e136cb	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6df7361	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd91233b0	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd93d583b	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd97dc1ca	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd97f761e	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda041881	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc009035	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdd2fbfa5	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde8842cc	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdeb9ecbd	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe15498ed	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1ce26e3	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe259045d	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8036c69	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8fd1e5e	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeca6be02	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xed5c3cda	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xefe53b24	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1561feb	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf490cf00	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4c512b7	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6b63aa1	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6e188da	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffe506b5	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0124b7c7	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x036a3079	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x05926ed1	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x10d0dbe8	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x283fc4cb	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x37d567b3	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4e9869e2	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x52d3ef5a	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x59482cb4	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x624f13a2	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6fd48e79	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7222a498	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7f027042	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7f807de3	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8acde2be	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x900656b7	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x92ab6378	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb91fbcef	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde0242a	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd7164de1	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe14cf545	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe916fbcd	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf058bd73	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf1a0ee8c	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf6c9e917	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfa8605e6	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x327e2401	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x617d99e8	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x79024228	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x8d60cd0a	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xab08512b	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe652c4c2	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe8444371	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe8847f71	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x03dd1979	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x05b576b0	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0dce28ae	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x17c86c22	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2b9e9897	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3c55cee8	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3da4b853	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x49d7376d	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x51ba6f48	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x57512333	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5978a0fb	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x62f9e23b	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x64144c5b	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x65f54f79	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6cd0000e	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x70d6c89d	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x71c0bb17	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x77b9dc88	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7e080855	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8674f4d2	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa06499be	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbf605cc0	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc91c7da4	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xcf8bf2a9	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd26751b8	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd59907f5	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe4594da6	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xff4296f5	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x053225b2	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1b36c9d7	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x25196bc9	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2b366296	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x522d56cb	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x81024dea	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x82e61ee8	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x83723f05	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xc5bc06dd	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x09bdc89a	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x35483998	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xd6296547	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xd80366a5	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe2066464	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x221714cd	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x4e097ee4	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe0ba0ffa	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x9059e750	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x020aec85	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x173b535e	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x233f8753	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x38410ab8	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/rmi4/rmi_core 0xfb7778a3	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x27c1138f	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x455ce5dd	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xa5fd8b92	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xceea85cb	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf62f3506	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x8ec41f95	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xa4e4d1e6	ad7879_probe
+EXPORT_SYMBOL	 drivers/iommu/iova 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 drivers/iommu/iova 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x1c965df7	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2bf5b79d	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x31bdd057	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4161b5e2	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x562754bb	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x5b45f11b	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x73fe295e	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9581567a	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa7c4fd6c	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xd8689118	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xdc141cfa	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe8ad9bd1	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+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 0x7cc315e5	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x965907cd	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x9b701ab3	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xcaff1eaa	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x86d4be3e	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xdf0bd37c	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x11ac3cde	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1b72486c	mISDN_freebchannel
+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 0x2cbeeb81	queue_ch_frame
+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 0x4531dea7	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4f0fc3cd	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+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 0x6a356cc5	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6b60d1d2	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6c3fb843	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6f85c28c	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x7b3e9010	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x992f405a	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa2a5b63f	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa4a4eb65	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb5a61aaa	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xbac94c74	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc17a41cc	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc5b680dd	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc888bae6	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xcb601687	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf5c8718b	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfe9d9db6	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfec84421	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xffed14d5	mISDN_register_device
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xd1630fb2	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xf9128a62	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x2f824bb8	omap_mbox_enable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xc1b790bc	omap_mbox_disable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xd7aeb49e	omap_mbox_request_channel
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x0d8904a0	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34c333b4	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x611da4ca	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7782e88f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7e23be52	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x8efff430	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9ac7c147	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xadb6b25e	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xaf788fbb	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc04554f7	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc140a4f7	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2e8205f	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc4022eb3	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc6a36e24	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd2381a89	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd47b1f8e	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd9e35cf8	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3e5dad3	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfa93de35	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/dm-log 0x5407f898	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0x83e82caf	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa29ce554	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0xe9bd50cf	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x11299379	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x23b42455	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x39d05260	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x52b50e90	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x61d10b2d	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xb0238879	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/raid456 0x9d559f0c	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0xffcd842f	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x0f1a0dd0	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x20237668	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x32f6ddc1	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x3fc2c411	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x47b8a430	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x4cab85e1	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7d245dcf	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x9e4617f3	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa7216021	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xb6980c8b	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xcde04d25	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xcfcc39de	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe4fd446a	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x0ad709b8	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x1348fd26	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x80f21ef9	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xe1ba399d	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x2bb1c006	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x8d6b1c1e	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x3addb06b	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x9b8135a8	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x07ee1818	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x5cedf40c	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x5e6fa2ad	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xaf329b56	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xbcfc07e1	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xf0bdb9b6	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xff9955c7	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x006d6880	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x057bf5f3	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1311a010	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1609d70c	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x17e0a077	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1e7a8283	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x21381c3b	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x214d5b4e	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2c12c287	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x30826c1b	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b1e0713	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3fd96ba7	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x42d15a1b	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x43de4b0d	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x453dd22f	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4be5c646	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x54f2d555	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x554ed03a	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6908758b	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b334d3c	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8026ef3e	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82143c17	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x84283373	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x955e089e	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x98c37606	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9bf92754	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9dae5d28	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb59faaea	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xba46b24e	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc0b93899	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc60f8a15	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd4c2c442	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdafc31c5	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe16db682	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe3206026	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe966efcf	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xeb8a44fa	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedda2b2f	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf4c218f4	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfe73d116	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0xea149ad3	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0x8936fd38	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x06fe52cb	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x07b7b953	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x55fbbc61	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7266dde6	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x79ec8cda	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x90774b0a	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa395592a	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xfd27ec07	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xfe271b4b	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x80c98f48	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0xc1457a79	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0xd411f365	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0x1965e2a5	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x4828c531	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x6883b9bb	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xaade9c65	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0xa8bb3fbc	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0xc5347e9f	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x077c15fb	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x43097f90	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0xd3c6c39c	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x420ce10a	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0xdff6b01c	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0xf86a7006	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x3e88840a	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x5b0e5d85	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xa6ada891	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xbbd8388d	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xf6d8a69a	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x01310ca3	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x317e4902	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x51425101	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x68f37ce5	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x6cef0985	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x77664587	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x89713d33	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8d4a6673	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9d753d4a	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa043c992	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa255dfb6	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xaae1dd8e	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc1d63704	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe12d5b38	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xfcd44a59	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0x1c06218d	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x2d04c87b	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x44a24028	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x6d291e17	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x72ad7182	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xe461fcec	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xfd2478a5	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x038ba388	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x6021953d	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x6696acae	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xafe5995a	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0x4461dbcb	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0xd04c46c6	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x057b66e8	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x223acf92	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x377467b7	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x597e3438	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x7316705e	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x741baebf	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x7a4c76f9	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x83c32788	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xbb5091d2	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xcd0e7e75	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xd41f6c3a	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe3a950e5	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe3b62b2f	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x1e7039e7	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x4df68663	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x6040286a	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xb888cc49	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xe3aa0886	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0xfd57e225	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0xdc84ab86	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0xf63981d1	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0xf55b382d	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0xa42f03b7	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x03699ebd	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x95bd6d15	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xa8a7bad5	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0xfef27b4f	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x52eaa790	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xea06ebea	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0x4d04981f	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0x841f3519	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0x7da3bf35	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0x8a611fe2	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0x39f684d1	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0xb73780e9	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0xf8d24541	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0x97249441	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x295ff685	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0xb09cbcad	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0xdc3e2e56	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xa4955c9e	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x8ed4a726	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0x562509cb	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x12a5bbf4	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x46ba26c7	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0xc9eb1778	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x0f8c8902	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x5ff42d81	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x66e6e041	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x883f7d5d	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0x60ae4afa	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0xe8172ce5	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x4d68070f	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0xa2f31b69	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0x3331245b	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0x04c2fe76	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0x8cd46b79	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x9ab815b8	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x2698a72d	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x323c9376	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x3d24261b	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x79a0f782	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0x9a6dc9ef	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0x77c00c54	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0xc13e5dbe	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x5455bc52	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0x4eb0ee3f	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0xdc61e87b	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0xccaa6c02	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0x722a4223	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0x3d0c7d27	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0xe8080635	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x55b8bb11	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x0392356f	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x3df51ebe	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xdb12c4fc	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0x5004e24f	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0xb19d04ff	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0xae5d4f9b	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0xcda74cf3	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0x983b9ec0	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0xa24dc90d	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0xcbf1d05b	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x52e7dade	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x7693d231	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x280ad15c	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0xa63041b0	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x7ae01f68	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0x4609200e	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0x1c56ccc1	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0x45eb5b0b	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0xf06bbdc3	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0x85b2ae4c	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0xa30cb07c	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x2c862ea7	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x3776fdc5	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0xc7d61763	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x02e5dd72	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0xe2a25973	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2ee82091	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3da029a7	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x60d66898	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x76efaf40	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7e890b75	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x933719fe	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdde348f3	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x09b89322	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x433636f6	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x44813246	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xef1a8a8d	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x04f5ae89	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x5d6a7d5a	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xa8007b87	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x0ea6294f	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x377e5546	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x70a4b853	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x7103c5e3	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x89b17928	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x994ca560	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xb5511b75	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xc7740f5a	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xebcc894c	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0x4c211b01	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x352170ca	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x36c5ba0f	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xafd38cd5	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xc5c16fdf	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe5a34d52	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x59a5ad6d	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x5f3aa95c	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x66aefe3e	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x81c04da9	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xc3f5b8d8	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xc798b02f	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xd5a4d368	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xd5a6eb56	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x5be0c114	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x8f470f57	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x0a3f64d3	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x9d5ad04c	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xa10076e2	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xf9008b2c	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x0124afdb	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x501233bf	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x679c0aa6	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x9418fd16	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xb171a649	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xbfa02bd6	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xe1ee2523	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0f4b2cd0	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x18cdb30e	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x252a70da	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x30028b31	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x4346aa36	cx88_set_tvnorm
+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 0x62df5821	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x65224c53	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x69843953	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6ae10ef0	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x70f0aa63	cx88_set_stereo
+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 0x91266310	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa0bafb9a	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa923df54	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xde160cab	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe57ce762	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xeb361a6e	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xee557a29	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xeef68786	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf1b94b2a	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf2ce36b8	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0f283ed6	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x1bc84f8c	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x3feb5612	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x4293551a	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x48724c38	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x601d5c62	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x634813f2	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x6b6ffc94	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9e4c3e2c	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa3d9828b	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa7254ecc	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xbc27e892	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xcc8d1744	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd017ad3f	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd3e23a1a	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd3ef7d18	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xf864dc6b	ivtv_clear_irq_mask
+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 0x31a6d279	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x3e2cb933	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x44def011	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5911165e	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x6c6e2a92	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7f21f6a2	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x8bceffbb	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x95cf77e0	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xabee90de	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc6e9fe4c	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xd721bf0a	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xe0df22e8	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x2fc28257	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x6671c6ea	vdoa_context_configure
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x787fe8a8	vdoa_device_run
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x7fe3d6f9	vdoa_context_create
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0xd96c63ec	vdoa_wait_for_completion
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0xfc58eef7	vdoa_context_destroy
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x4feb12f3	csc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x509ea394	csc_set_coeff
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x900bee28	csc_set_coeff_bypass
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x9daad5cb	csc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x64bec07f	sc_config_scaler
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xae67a309	sc_set_vs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xc1f99e2b	sc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xe1f41aa3	sc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xf938bb77	sc_set_hs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x11330d86	vpdma_get_list_mask
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x127f4e88	vpdma_list_busy
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x163e1a86	vpdma_free_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x16f0b6e4	vpdma_add_cfd_adb
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1d8a5dbd	vpdma_add_abort_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1e26321d	vpdma_misc_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x2982b946	vpdma_hwlist_alloc
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x2c523796	vpdma_enable_list_complete_irq
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3bb6047d	vpdma_create_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3cc73909	vpdma_set_frame_start_event
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x4644c1ba	vpdma_hwlist_get_priv
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x49293b26	vpdma_yuv_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x50ec40af	vpdma_rgb_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x5118bd7d	vpdma_add_sync_on_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x5b7dd2bc	vpdma_set_max_size
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x5c3b31b9	vpdma_set_line_mode
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x60708dc6	vpdma_raw_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x65d23377	vpdma_add_in_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x664dd09f	vpdma_alloc_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x66de013d	vpdma_update_dma_addr
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x832e86c0	vpdma_set_bg_color
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x86c140fc	vpdma_get_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x875cb4ca	vpdma_hwlist_release
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x87c0415e	vpdma_free_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x87ed345c	vpdma_clear_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x8bb2f14b	vpdma_unmap_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x97f311f0	vpdma_add_cfd_block
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xa5988da4	vpdma_map_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xb6bbfe0b	vpdma_list_cleanup
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xbc980869	vpdma_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xbda756fd	vpdma_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xc1e1e69b	vpdma_submit_descs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xdd7f11d3	vpdma_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xf93ba9bf	vpdma_reset_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xfefbda83	vpdma_rawchan_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x0af19271	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x3baf1e27	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa5bd6337	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xb16fc412	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xcdf17ee0	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xd17402b5	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xe17203c6	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x76ec74c5	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xee6b9b95	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0x3c48e2e5	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0x42a31c04	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x2291bd6a	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x31b8b41c	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xbab69757	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0x92a2c19a	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x407ce4b0	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0x7a3359b3	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0x373dbe87	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x7413ebc1	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x40eb458a	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x3e4ec8e8	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0xa1815b8d	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x846f776d	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0xbebd6564	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0x949b8ac0	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x005c2012	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x92e0ade5	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x24ba0fd4	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x285cf6d4	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3623d7a1	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x50e2f50b	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x52d56e4a	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x535bd2fa	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5a400d9d	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5e79f926	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb0e821a9	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x0512e591	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x2a31d32b	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x831fb898	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x9937dc81	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x9ef02aa1	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xa770ca08	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf6a049d8	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x011fdba0	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	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 0x244074c2	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x41f8463f	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x42427c9a	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5c069320	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6e47e997	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa1f2278a	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc2ad474c	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfea6a87	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf36b505f	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x38fdde80	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xef2c7428	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x07d7b229	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x39095aa5	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1d64f5b8	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1f235e15	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3544ecd7	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x7089f33c	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x908becfd	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xae42d1b4	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xbc870b32	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xc4a02b75	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe5cfd65b	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x33c1f2e3	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x45066946	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x6220d602	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x7c287465	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x8f1c4eaa	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9c5804ba	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xa281dcb9	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xa4a20f8b	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x383dcd7a	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xa1804629	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xee45beb5	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xc93fc554	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xe2f8c49e	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0469f15c	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x084798b8	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6d455dec	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x00428d72	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x05448830	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x07f1ffe5	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0fc45466	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1620e625	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1aa2c0ae	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x22016e75	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x27a0a8d7	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x29e2c7bb	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x31f4762d	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x339f1585	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x34f8588f	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x385dd51c	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x398b4dc9	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3ba003b0	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x480cde21	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x48c5cfe5	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4d346d0b	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x50fbb6cc	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x54905244	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x55275e95	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5ecba6f9	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x60704b63	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6470dbe6	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x66cabb83	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6b8773a1	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6e94c354	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x704bafcd	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x796bf215	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7bbeebe6	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7ecbc046	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8030cca4	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8676f2f3	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89ba2c38	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8cb8bc2f	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9324e637	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x978c5105	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x992585ae	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x99f7eabc	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9c44c251	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa415c3a8	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa5226fc6	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa937c96e	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab0b3c4a	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb8c8965e	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xba9fd9cb	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc10e4d9b	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc1bd4acc	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc339e3dd	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xce4597f3	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xceb6e93b	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd594f568	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd824650f	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd9067e42	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd9943836	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2d83de2	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe740bef9	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe8d3ac91	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe9348e4d	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf0bde4dd	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf1630c5a	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf9c2e51f	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfb86d281	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfc6b57d6	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x0b966b54	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x0e532983	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x15b7cc7d	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x2031c7dd	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x3ab058a6	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x417edcdc	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x55dfa788	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x5aeda2d5	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6c5bf3ea	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6ec4c88b	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x98ec2499	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa588677c	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xdd6a7045	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe9a9e4a7	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0ba24e8e	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x13525607	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2864faa3	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2991ba1b	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2c5a594e	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x37738e19	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x45e0cb29	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x53cbf167	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x618cea4f	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x64865c85	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6af8d698	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7260cf81	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x73c9fc3e	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x76e23f6e	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x977ee7f0	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x98247818	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xadebd75b	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb16738e6	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb1a329db	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc4d6e90e	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc7c19269	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcb7b7427	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd0c05294	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd41374b0	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdff1acf3	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe3d949b3	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf2ba24ca	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfadf3e7c	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfdc75692	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x03c2872d	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x067218f8	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x14dab740	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1dda0d64	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1fef7bd2	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x27d5b3b5	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2a11152f	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3a78c27e	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3eb21e08	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4136e0cd	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4a80d3f8	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x622ac0ad	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6ae6837a	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x825bda8c	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8e45e4fd	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa418b6f6	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa4360dc9	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa9559373	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xade98249	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb9c4885a	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc3c69063	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd00296e2	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdb4abdf1	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdc90ac0a	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdf2625d4	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe37c0b44	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfd16f8a5	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x0aaa43f7	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x31d62c26	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xfee73f3e	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x29e7ed87	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x7003485f	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xe856414f	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x403545e2	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x865a8128	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x16bea994	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x1ae8b3a7	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x23628592	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x397866cc	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x758f51ea	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9a6ca376	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xae7a13c5	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xc1c577d3	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd33a5461	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xfd651277	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xfe5407ba	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/qcom_rpm 0x832aed94	qcom_rpm_write
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x1b8bb1ae	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x46a5b127	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x749f0abe	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x820778f9	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xaacc7eaa	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd9c7b30a	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xb6afac8e	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xfbfa359a	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x4010cc85	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x81b3b5de	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xfd895953	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x00a67bc5	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x09b62169	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0a560bd8	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x18446b16	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x29330058	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x39f86aa1	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x5279898a	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x5cafc93a	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7cca3ebb	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb78f74c7	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xbdfc9ced	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xc7195750	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd1e045f7	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x12df79ab	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x2ab2d368	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x5b76cf14	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0xfa2b224c	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x1ae8b320	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x90f06fca	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x08b4f228	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x44eacae5	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x8cb20ad7	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xa532957d	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xbfd5958f	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd8b05838	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf6878efe	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x4fb9de81	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x9b6b8dc5	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x2651044d	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x6885de3f	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x65cb554d	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xd3b69e48	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x102603bc	mtk_ecc_get_parity_bits
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x24351100	mtk_ecc_enable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5437e775	mtk_ecc_disable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5de55d81	mtk_ecc_get_stats
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6df58afb	mtk_ecc_release
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6e49ba6a	of_mtk_ecc_get
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x76e53683	mtk_ecc_wait_done
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x7eb47fa9	mtk_ecc_encode
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xda64ef4a	mtk_ecc_adjust_strength
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x176c7c9b	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x2af5c030	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4854ca9e	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x557c5abf	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x5a971db7	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x959012b6	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x980cf9c6	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd449888f	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd5514d83	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xeb8258b4	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x8decce6a	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xca024f4a	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xf0dfc866	com20020_check
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0da51d75	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x13c11710	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x199619c7	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x20015b09	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x26ae2bd8	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2ad4544d	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x30085b26	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x323f9221	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x33e1d87f	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3d256909	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4135d83e	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x42c58f22	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x496108e4	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x52ca7c50	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x584c9829	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5aac6452	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5d066c27	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6184fe37	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x61fde0d8	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x692c0332	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6c4cd4c6	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6f54b13c	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x782bbcbe	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8ed68151	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x93cef3fc	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x93fa5a11	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa013d2ab	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa79d2c44	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaeef6c89	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaf46f87e	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb3ce6d6d	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd4510415	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd5063934	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd5b6a7e6	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe15f959e	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xed65eb51	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xef5c0cc1	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf89e3214	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x3506ade0	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xbf25dfc9	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xc0478712	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xc3c098af	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd12993a7	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xf14768bc	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x4851ca87	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xdee45bf9	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0xd0197734	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xe38a5b4f	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x63cf64c4	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x82e2b67b	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xcd77f288	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xbb9ceae8	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xd17df58f	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x25a8d91b	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x36c50519	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x3ce76729	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x4a5cc20c	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x4de8ba86	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x5ae37e7e	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa92d6c10	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xbed3d25f	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd7862829	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd932a83d	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x7fa8571d	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1db2f8d7	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x23fd8e66	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3773466c	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x38f944bd	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6303d8bb	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x65b22827	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6cde3244	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7d339519	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa551fd6b	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xab8becfd	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbfc90cc9	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc4c4cd04	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd025ef76	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd37ded9e	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdd12f0ba	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf1167a42	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06c3bfb0	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2f5295e6	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x308ea92e	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x38ff94af	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x426b92e3	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x436b419b	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x47d2ee6f	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48fee6de	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b9f7b82	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4f9a14a5	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x537fa269	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b3469c3	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x62397eef	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68df3f8c	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6b7a8d91	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6bf6882d	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6dbd2eef	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x71f4b5c0	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x781750de	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7b465bfa	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7b88ee18	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x845cdb1a	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa3b41775	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xad02e692	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xad333829	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb3c3ed8f	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb3f18269	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbcdac635	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbdc74c40	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc1a17534	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcab4487b	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd64732e0	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xded2869b	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdf5b7c90	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe2f1ccf8	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe8199b8c	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xebfdc12e	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf0d8d14a	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3a66ddf	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf50de334	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf68dee1d	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf6ba7de4	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf8e1cb8b	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xffa0c02d	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xffbb42f5	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0685233c	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1680a19e	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x9bf51367	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x9d897c8b	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xa7ac05a1	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc98c170f	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xd9e18bfb	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x062023de	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x1ec2a16c	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x2ffa2ee8	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x5abc8aea	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x63952617	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x7b5fbf39	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x2c002178	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x7fb1d80a	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x88e4a978	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xbb7cbe9e	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xca18997a	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xd669da8c	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xfa22bbb5	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0xc6a3868b	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x3dc041c3	hnae3_register_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x587f9a35	hnae3_register_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x7ce5535e	hnae3_unregister_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x949c88f9	hnae3_set_client_init_flag
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xd3c0f50b	hnae3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xd7b7b3be	hnae3_unregister_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xf75a3c60	hnae3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xcecf40a7	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xf8b27fef	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x9c08a02a	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xd99fe822	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02c01f52	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x048a76bb	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x055775ab	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05964150	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x074807f1	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09df4bd2	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c311a4a	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11f3685b	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b1d1b94	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x250e41ce	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27b5558a	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f9a1317	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3328f594	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37faa5b0	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3984be6e	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dcfdaca	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x462dd29b	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48266d56	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49d0f24b	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53ce64aa	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fd76d2e	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e296216	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e5cc95c	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7711749a	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78b3cb59	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f1f41e8	mlx4_test_interrupt
+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 0x8539350c	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85640a5a	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85fdd824	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a6e0376	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b251b6c	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa209959a	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae26881e	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae96dd61	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0052783	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddfc45af	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe04f04af	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb532220	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2429a43	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf27b6054	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf61330e4	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf72f424a	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa5d2242	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfef6f812	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0046f9e8	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02e2ff2f	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x044bcbc5	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05f98dc4	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c2fc676	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c92f619	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f328f8a	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1021e965	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1233a1a4	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12eac1e6	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16af0520	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a45d3b1	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ad4d4cc	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1affbeb9	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c71c165	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26e13c31	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2807856e	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2997cefd	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b12e438	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fedb957	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30110fbe	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32842f82	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x356800e2	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35b46e51	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36387fb1	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3805035a	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38b01df3	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39073a39	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39153c11	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39d010f6	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e6d0627	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3fdf1cda	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x439f642e	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ad7e9d4	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ae40964	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4db57166	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x50bf3a9f	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x528650a4	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55b2f8ca	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58fa7d83	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5afbb423	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b1038cc	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x604f70b5	mlx5_core_create_sq_tracked
+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 0x681750bd	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69791756	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ad8efea	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b56a0fd	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d8ca118	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e40d362	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f0a91a7	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7002c1ab	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70d9080b	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72c48fdc	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72db8486	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73193ce9	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7795b8cf	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78c3903e	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b3b0181	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cafbfbc	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x829be831	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a97a0ea	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ea064a1	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90018bd2	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x909e60b7	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93bab565	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94d346c5	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9572aa1a	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95d47eb2	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x985c8896	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99be3da4	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ce45a5d	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e359232	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f89aeef	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f92ca1e	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9fad3db1	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa30b2970	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa3351a62	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa62cc528	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9997b96	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac9dbcc4	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xace5b6b1	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae181a1e	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf656464	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb050dd6d	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb18720ba	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2126e1a	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3546dde	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6376e6a	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6aac5d1	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbab17bbe	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb26a003	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc9b6e8f	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe13ee55	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc50d0ff6	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc51d9c2f	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8527530	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca394e4d	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcaa7f91d	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd7aaa08	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce922ca9	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf0a3ce2	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd16994c6	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd61544fb	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdabd21e6	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf8cc742	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe07ab88a	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2aa29e3	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3be78c3	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe63fdbb9	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeadf04b5	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeee960a9	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1ac6fad	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1eeca40	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5bb5d2a	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf718ec49	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf91cb24b	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9489f1a	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa8ee3c3	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc61371c	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff05e262	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x88321177	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x20d2f574	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x24199861	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2ee12924	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x41a122c8	mlxsw_core_trap_unregister
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4d716d72	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x520c0755	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63666a27	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65abd96b	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6f5899ef	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x93fa6694	mlxsw_afa_block_append_mirror
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa0e5e5cc	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa347954	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa600760	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5a16446	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbbd7a457	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc7243689	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe01c0d7a	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeca0348c	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfb2e1d22	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x6b438194	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xb82da549	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x2b27edbe	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xe22c42b2	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x22b1dbe7	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7f70f6a1	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x83660bb6	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x8b4f55ed	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x943c5941	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9c83d4fe	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xb8ab5bf0	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xb8c39a48	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xbae40b43	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0824da1	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xdc167f32	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xdcebe5f1	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfe46c3d4	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x1243ffe8	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 0x6f1c0391	qed_get_fcoe_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 0xcc6de9ca	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x2e838ca7	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x3bd86f16	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x5ff6bb1e	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xa92aff60	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xf37a46d1	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x03e7cf94	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0x22096b3a	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x446bf053	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x6d3ac694	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x84a80bf8	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/mii 0x95d0f485	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xa6867fc8	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xbc7f1041	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0xcac67cf3	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xf0733ca6	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x3f2c78fb	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xc3ef50ca	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xc8df5621	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xd3a54ccc	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf59e85ea	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf764cbd0	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0xf1917544	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x03126f14	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x4e80574e	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x7ebe0085	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x822dc14d	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xaf2f7918	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xd53a9410	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xe0bf8c24	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xe0e98334	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x1cd37f5a	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x7b2bc40c	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xad49b91b	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x0038582a	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x25b156f4	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x288786f1	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x7725d0ab	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x82fd9f34	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x8820586e	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x8ecc81e3	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xcd2e2074	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd30787fe	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xef8ec799	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0xf2f1839c	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x2f5898aa	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x36bcfae9	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x58a89177	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5a43b3cd	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5d815bc7	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8f65d45d	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x94e71608	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa91beb1c	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb8ba9514	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xcb92e991	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe10260ce	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe27ecf6d	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x097d713a	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0c36470e	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0d48ac84	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0f1d4240	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x179f903b	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x17e2f6da	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1b52df55	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1cdfdbf0	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1d6cc778	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x240aceb3	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x24c7ca3a	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x26fcaced	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2db14a10	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x30a565e2	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x35bc3dbb	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x385031bf	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b2b7db2	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b341f6a	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3ec5303f	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x426ac05c	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x49fe8a07	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4a2e664f	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4a618869	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4fe525c1	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6a14cda7	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x80c4c458	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x86c9f0e7	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8d985256	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8f0d07fa	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x93d5ea11	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x94a184ee	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x94eb4aa8	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9e4ed0c8	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa66be62a	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xae2778f3	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb714ce71	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb8135480	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbf911e0a	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc0a044ba	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcafcb01e	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd16b6a0d	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd4473f01	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd6285231	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe2b18338	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe33716bc	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf455267d	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf79b5599	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf8fb4e09	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x080dab30	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1421ffbf	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5c0b5b56	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7543c482	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8e0e0c5d	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa36ebc8e	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa6c55258	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xaf67d966	ath6kl_core_cleanup
+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 0xe466e7cd	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xeabf029e	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xec79b810	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x08a63b21	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0f5e6923	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x129e1ae9	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x15503026	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x201e1f09	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x21735d4c	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x386b3cae	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3d0d4f37	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x48dc6b7d	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4b97162d	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x53277233	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x63856469	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7527c9a0	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7a1ce7c9	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7b913d2c	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x956f73b5	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc56cee77	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd1ae8b6f	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd69da6fb	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdce37a0d	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe3cb14c9	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf4dda7b3	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf60d235a	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x06735c45	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d1a458	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b20c722	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c411ab2	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e7cce20	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x10cff0e2	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x11d5cc42	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x153c9491	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1649926d	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1704a932	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x170b5b23	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1721e3f1	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x17643642	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bf3e5d0	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c505124	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f8ff4fe	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2166e487	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2606d744	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x263f2d78	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b1a5ad9	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dbae184	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e11b76f	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3190811b	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36cc7720	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a4b2e6e	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c3562f2	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4053e38f	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x41a6031c	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4371bbb0	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x45718983	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x46e016b2	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a1d6c60	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c1ab065	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ec8df38	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f4467c4	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5100181e	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x53c5fe65	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x57b94dd1	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x58f62ef6	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a2ed82a	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a4821f6	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6299c05b	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62d56c14	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x679540f3	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x68b4b456	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b9c30e1	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e98b0c1	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f1c9ad3	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7046c9c9	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x717447f1	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x758c9673	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75b38c7b	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75c19fc5	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c45c7fc	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d816d74	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7df9abfa	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x82ccf2f7	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x845c9980	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x88cab00a	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c0fc76c	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x90288d38	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x93ad6ecd	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x949b8805	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9683ac8e	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x97ca87dc	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9848ebfc	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9851d34a	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b0c6bfd	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bf9537e	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d05e918	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9de62515	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa10b31eb	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2aa2e9e	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9244271	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf32022d	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41245e1	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb443e0ce	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4a50487	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8679afc	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc067a008	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0cb5367	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc15a159c	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc98f3876	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb002ae6	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdd01870	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce19d523	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce566bc0	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd11864f7	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd13f4e71	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd478fb55	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd549ea7d	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd75d00b0	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7e8dd37	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda29dc2a	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf7ad183	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2628a3d	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3f44156	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe82260a1	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe96774c7	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb9916b2	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xef4af0ed	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xefb172dd	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf14102d8	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf43333c0	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc813836	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc895bc8	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcefeabd	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x52930dff	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x64b95616	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xccc3f9f3	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0fc4bb3e	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3f0668c9	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6631cecc	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6e4eae52	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x702c1b49	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x783c21d0	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8866236e	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xb3b8069d	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xbb6cfcbf	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xbd66cd70	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd72963e0	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xea9cf68b	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xfe871968	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x11728358	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x19b844eb	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1b02d03b	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x21094876	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x23eba585	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5a0458c3	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5bc45c9a	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6a92f0b8	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x732d24e5	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb75f2f0a	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc059bf98	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc3dac596	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd1534a4c	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd1fc5900	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd25de16f	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd51d3826	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdc1b7db5	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe238c02c	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf50a5394	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfcb2f3e7	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x021308cc	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x02886c62	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0bb628a2	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d0c6bff	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d1c1439	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d4c0677	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f55b2a2	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x17d420ec	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x238254e9	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x248cf02b	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2564111d	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2668d05f	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a32f10f	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b36a252	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2c5b80c3	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3038a05b	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3209af44	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32b764d5	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x33edb120	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3948559b	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a6c8971	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ab328be	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b6849ee	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b7483e6	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ced19f1	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3f82d1bc	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4762f0a1	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x47f4aeaa	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4815ab77	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4eb06832	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51afaa29	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x52cdb20c	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5516b744	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x572b4dc5	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5763f701	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5893c62e	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58c757d8	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5937eac3	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5a6e8dda	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b0c5eb8	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5bd3f690	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x61ab220f	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6d3f7ae8	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x70083187	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73c2898c	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x756f9c23	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x75b2cc27	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x778aa440	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x77fa738e	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7a7fa3cf	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7cc8055b	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x80609eca	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x84c8c52c	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x84d97278	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x894e5610	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x896743a6	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x900df6f5	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90c745e4	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x91c857e0	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96ae7c21	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9a57c9a5	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9af37195	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9caa32ee	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9f33850c	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa06877a6	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa47242f9	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa65eff5c	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb27edac8	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb33ef106	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb376f1ec	il_add_station_common
+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 0xb901046b	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb9a4682f	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbf8218b7	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbfdc3aeb	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc3487a76	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc4052fe3	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc4d27274	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc80e876a	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcbd15ff7	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0986ee0	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd277b6d3	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd3dc31b0	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7d64206	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd93c300b	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdaf8e302	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdb8b183e	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf29311f	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf433dcd	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe5a416d5	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe6ae983f	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe76fe79d	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xea557978	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xed87c231	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf112c7c3	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf575163a	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfac70a9c	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd14fd55	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfdde4635	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfe573b59	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x33c2544a	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa44e2870	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xab9db4d3	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x06a70ee8	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2a0d3d4d	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2a2c2298	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4667488f	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4a066773	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x53fe08eb	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5fba211a	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7061d5ba	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x77430665	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7e2c48ba	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x83e87a8b	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x972b5b23	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9913f03c	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa028c791	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xadb0bd97	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb13ee3c6	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb42469db	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xca9d3839	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdbe883f9	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdefeac46	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdfc562a1	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe2aeca30	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe8564d71	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xfc9c4171	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xfcb7fb22	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x180ce35d	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2f7cc639	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x3eae038a	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x5203b201	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x59a48b69	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6651b82a	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x67d1c6f0	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x72b565d3	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x79faa4ab	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7b851ce9	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa647cb66	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa8e1796e	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xaf3599ab	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xc8e704b4	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcc988db6	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xeb4c9831	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x37b751b9	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xc42b8c03	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0323a514	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x06ff7916	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x085bd649	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0a52a636	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x14284325	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x14dfe8cd	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1526f95d	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1765333b	rtl8192_phy_check_is_legal_rfpath
+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 0x293f4bd8	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3040331d	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x36d29c1c	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4b679962	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x50a7d3f1	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x557ffd49	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x57288f72	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x62673fba	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x63936155	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x64492222	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x688eb629	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x693cbaed	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x752fa9fd	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x804c2052	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8a26b42d	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8f66b461	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9c768b15	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa07c5537	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb17a1d2b	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbae80f7c	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbf33b255	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcbef0b2c	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xccfc723d	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcdc66ec3	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcfbb562b	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd246d0c5	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd93dfdc4	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe4b699ec	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf572c0ff	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf9a24ec6	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfd09a212	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfdba9d81	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfdf9505b	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x401be84e	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x67fba811	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xce1922d7	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xf728da33	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x2091d636	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x694d5e59	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x92810593	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xefec254e	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0c0b2b98	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x13b28039	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1741dd52	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x199cb28f	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1fd27b0d	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x230eb99b	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2769cd1a	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3deec40d	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4223d776	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4333bb9a	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x47da4f0b	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5108e234	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x58be9199	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6f895a8a	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7d12d60d	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x851d7dda	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x866a12ca	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x895b6c87	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90073fdd	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x910c371d	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x98137330	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xae42bb6a	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb2dee5dd	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb5fb4bf3	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcd04b930	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdf7fd30d	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe3f4726f	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe4f7bdf1	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe5f969b3	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9155405	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf7fc3045	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfd5a6731	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x08715bf3	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x197327a6	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5b6493bb	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5ccdfddd	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5f9acf22	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x69c4d81c	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x86ac9750	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb30f96e3	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb72d876f	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb8575f42	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc1f8ccd9	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcf36031a	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd4df2a34	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe5b87e0e	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe87af3ca	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xefa496f7	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf4d989f2	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x045858cc	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x16eae46d	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x84fa8a6a	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x9fc1576b	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xc5bb634f	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x07272669	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x31f0ab85	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xc8fa9299	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x0a17b57f	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x6d325c76	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xab097d90	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xcf133805	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xfb5ffe58	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x2042c26c	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x16ffe476	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xcb594bf7	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x3a02d8ea	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xbe8e23ee	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xc42bfb13	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x42481bf8	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x5532b6ea	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7577baa9	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7d7d27fe	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x960c403d	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x961a7044	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x9a5dc875	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xca5572cc	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xde858493	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf68e8dc8	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x049c508d	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0f5346b1	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x13c7c128	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2399f379	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x478ce1db	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x59f704b7	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x59fb0460	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8bc9a483	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x906145c4	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x93e269b5	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9f9325f2	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb0bfc60f	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcb42526f	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd534b6d7	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xdc019932	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xdca409d1	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe20d7c59	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf4563554	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x0702b784	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1ee6397e	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x23a60a0d	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x36c83bb8	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5bccefaa	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8749dc3b	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x968dee52	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb18f7326	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xbc3f8e9e	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xc0e24023	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xc655b3b7	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd1373bb3	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd4f5278e	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd70e33ed	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdd94f0fa	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xeb92f32f	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xee27f835	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xef4d0d0f	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf0a1077c	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf58a74b1	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/parport/parport 0x01727534	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x09a9bd2a	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x145b3568	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x1a59e82c	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x38ef95c5	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x4b13220d	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x50a423e3	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x606747ea	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x61b2005d	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x61b4a34a	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x67e0c473	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x7223504c	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x7a3b551e	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x7da46827	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x874dfacd	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x8b039e7b	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x90bdd312	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x98a438e6	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x9a25843e	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0xa7932b58	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xab8f55d2	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xbddd7bc4	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0xc81621cc	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xcded69cd	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xcfefe8a0	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xd45715bf	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xd5f62ef0	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xeb3e12ac	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0xec71549b	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xed9e4e1e	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xf56b17f7	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xfac409c2	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x3034cbe3	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xee7cd330	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x56193946	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x7e87429e	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x89dc7a2a	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xd9e3e5ea	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x0db7ff37	qcom_smd_register_edge
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x3330a1c8	qcom_smd_unregister_edge
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x056953ef	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x19157c1e	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4beb3a2c	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4cb32b1d	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4fac4a10	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5222317d	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5b3c4b3d	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x8076f066	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x864b4357	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x87c6f389	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc7eff66e	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xe8b77261	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xfb18e886	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xff69e341	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0x1aaf2f8c	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x25950997	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x2ca36d08	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x39e211fa	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x6fdfe743	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x078fab60	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x17fa03d8	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x1e3b7e01	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x573b89d7	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x8aad1555	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xae9b6000	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb3313ebb	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xc3e46f03	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xd52df8f3	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf2192741	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfbb1f201	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x01a6783f	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x037a516b	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x08b62344	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x08cb2216	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x10d9ba69	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1123f02f	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x121fd47e	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x12470729	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1e63ed7c	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1f96e36f	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x239b7791	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x321d0a28	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3e1c4317	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3e21ca13	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3e6427f1	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x41185f10	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x430de4c5	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x43d2fcfe	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x45416183	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x49dc3cf3	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5a5eac92	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5ab41f0c	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5f4f45dd	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x614c02cd	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x65af42bb	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x667adde5	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x68b787f4	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x736ab827	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x74c86bc1	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7557d0c1	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x79d11a04	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c19874e	fc_queuecommand
+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 0x8aeda4dd	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa12fb424	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1def174	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa6e7372a	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaf8c5b87	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0257e29	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7a1daa6	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb84dbeae	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbecd61bc	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc39558e2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc6123fd6	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc6e56da2	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc7faf3be	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc8c4293d	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xccf15913	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd90832af	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xda7d7e5a	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdaf0b837	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0869c4a	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe2756a11	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe2bca5a5	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe58d3b97	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe59fc899	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeb04ba28	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xefc9b4ad	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf6eca8f3	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xff720643	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x333b15ea	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x79a11eea	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x943030ee	sas_prep_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 0xe8db64f7	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x208b11bd	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x28276e59	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x3a84ce5a	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x41f2634a	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x55bfe173	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x6c99c817	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x8b7052d0	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xa8e2898e	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xd65aaa8b	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe5ed2312	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf28e2eff	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf979d10a	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xc4ca1496	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xc7d495fc	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xed5345fb	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x18fc767a	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x31d3f1f7	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x60045d85	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7d23e86d	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x848014e4	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x92ad6707	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb024a1bd	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc4edc70f	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc50d8315	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc7b10f5f	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd6b70226	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd867d9af	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xea3b9a7a	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xed4bc780	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf7ce2023	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xfd359b47	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x02e76f54	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0cac2429	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0e0df1c6	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1fe21709	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x274e7a68	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2feb1261	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x413792fb	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x41b58a8d	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x425c7e53	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x51e006c1	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5a17ec30	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x61d3bc99	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6b626745	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6b91214c	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7089c767	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x781ae02e	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x98ddede6	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xaa230b84	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xae9911f6	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb041f9ab	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb83ac828	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbef0b28c	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc9045227	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xca97716c	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcea107a2	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd9f8412e	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xeac2f735	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf54a3c20	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfa22c12a	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x0a6c83ee	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x1a01da77	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x6c33aae2	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x7fb45f79	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa6e7c7ec	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x15da45b8	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x29dc14bb	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x2ab916f4	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xae260357	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xc5021bdd	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x4169fd06	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xaee56318	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x19f7dfa3	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x1ca99b4f	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x3b5e1547	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x52bcc10d	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x5a5ce67e	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x73f8ee05	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x875045c0	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd4396ce1	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd834cf3b	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x0dd3235e	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x3d8b5e8b	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x12b26a2f	cmdq_pkt_wfe
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x134db152	cmdq_pkt_write
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x52eb8e83	cmdq_pkt_flush_async
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x5ab2e662	cmdq_pkt_write_mask
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x6d61d952	cmdq_pkt_flush
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x782df519	cmdq_pkt_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x78c8bc4f	cmdq_pkt_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x91bd54f2	cmdq_pkt_clear_event
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xaec877cc	cmdq_mbox_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xff4b886e	cmdq_mbox_create
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x0791d6eb	geni_se_clk_freq_match
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x1520925b	geni_se_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2ea1c538	geni_se_config_packing
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x3b4b5270	geni_se_tx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x41ed8158	geni_se_rx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x54b6eeca	geni_se_tx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x6c8ff2ad	geni_se_resources_off
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x84a0f6ad	geni_se_get_qup_hw_version
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x8d2ea986	geni_se_resources_on
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xa112beba	geni_se_select_mode
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xf894d5b2	geni_se_clk_tbl_get
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xf90ef85c	geni_se_rx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x133168aa	qmi_encode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x149b7d6a	qmi_add_server
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x1fb08240	qmi_txn_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x21ce5888	qmi_response_type_v01_ei
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x49c6f122	qmi_handle_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x530f4a34	qmi_handle_release
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x533ceba3	qmi_send_request
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x886258ac	qmi_txn_cancel
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa2ff1ede	qmi_decode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa6c9bffc	qmi_send_response
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xc2a5d3a4	qmi_txn_wait
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xd9b163ab	qmi_send_indication
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xf6c0ee54	qmi_add_lookup
+EXPORT_SYMBOL	 drivers/soc/qcom/smd-rpm 0x46bb046c	qcom_rpm_smd_write
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x5a710273	qcom_smem_get_free_space
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x63ef36e3	qcom_smem_alloc
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x694c56fb	qcom_smem_virt_to_phys
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x932eb0e3	qcom_smem_get
+EXPORT_SYMBOL	 drivers/soc/qcom/wcnss_ctrl 0x8b7a964a	qcom_wcnss_open_channel
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x267cff1c	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2fbea8c9	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x55bdb02e	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x668c7f68	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8bfdf2d6	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa1dabbd5	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa218908e	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa855204f	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc4567e4c	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc75a3b0c	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc8eab6ee	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xcb7ce9ca	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf039639f	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x026d9095	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x132b6b54	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x25a07d93	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x385db1b3	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3e0f679b	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x495ffac7	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x49a9e2a3	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4bf59824	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x597b5583	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5d81fcfa	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x75afae63	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x77b1a9e3	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7bfc1058	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x823c5534	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xad5f4791	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xad9b436b	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb4120bd5	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc750b88b	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdb761ea9	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xff0441e8	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x04f5dc05	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x123d627b	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x1b5d6c90	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x1c8807e2	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2d3e1143	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x306cc4aa	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x37e5a00c	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x39eac46d	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x445c4530	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x446498da	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x58816fcf	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x68a88047	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x733c6140	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x8df37e7b	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x8f82a4cf	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x931fa926	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x95ec5009	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb9126c9c	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xbde6c8d0	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc5312a22	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xe683f63f	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf48a625c	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfb2e3d54	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfc1f86b0	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfe024a75	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xc39d6cb1	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x6f73096a	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x004c03eb	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x03899978	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0b4b0dec	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x251669d0	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x2ce4353a	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x4bb75989	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x51a55bb8	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85e25795	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x9f9419c5	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xa8083547	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xcf2bc8f3	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdbe291b1	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xddc7fb74	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xecaf8555	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf9a8ec82	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x1c736f29	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x30b14f33	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x39398dfe	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x50aaf3b9	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x6b97a8c3	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x96f42c8b	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xc8d8c0b8	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xdebba426	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xf5d4707f	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/nvec/nvec 0x6128956c	nvec_write_async
+EXPORT_SYMBOL	 drivers/staging/nvec/nvec 0x771bdd41	nvec_write_sync
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x053e1196	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0c85adda	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x121b368b	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x125aa78f	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x12bb36c9	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x131a10aa	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2013e5f4	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x27677326	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x29baaa97	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2c123314	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x328526bf	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x34351592	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x34a49666	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x36e71587	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3d25b6f5	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4790977a	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x49f597a2	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4a313176	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4bb44164	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x52a64ec7	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5473b655	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x567afb7d	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x57246e0d	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5b91b739	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5dfb164c	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5e10c1ce	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5e3568b8	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62b1ff9b	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x67c97a80	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7b31a92f	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7d360fd3	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8c26fb2b	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8dd574ce	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x975625dc	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9ef5396b	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa7483b7a	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa866ea78	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb123f810	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb254d745	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc46beacb	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc687f4b8	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc88b1b58	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xca2a9da5	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd86f8446	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdace02bb	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xde0ec148	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe5af5d54	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfa625476	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfe90d17c	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1021c5d6	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x11769935	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x18b9aa68	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1acea74a	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1ee33434	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1f5c3e7c	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1fde44ac	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x254dbed4	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x257729d1	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3043ad85	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x30793a80	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x339e9d3c	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x34ccc8be	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3661edb8	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3e61677d	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4704cc57	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4ea6f441	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x55115157	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x57befd13	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5bac8eff	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x69ba7f25	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6ad510c2	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6f8e52b5	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x790ffb68	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7ffabb5e	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8167c05e	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x824d0075	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x84cd5645	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x875262ec	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x95f78316	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9b2b0d9d	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9dd7ac03	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaa80e420	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xabc4a303	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb0b6cd25	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb5ea9ec6	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbb49d81e	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbc23e372	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc3c414ae	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc50e9c14	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc572d640	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcadd2c69	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcc87b235	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcd53b915	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xce03eb1b	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd47d3438	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd546325c	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd7a0eb49	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe4ca4a67	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe5227225	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe6d3b52f	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe7a08561	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe828423f	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xec92c046	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfb7b5ef2	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0dbba563	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x108c4d7d	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1c3bb709	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x220be696	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x241669e4	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x26c13802	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x30c3bad4	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3528d419	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x37b28c35	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x459bd043	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4f9bdce1	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x52b3ecaa	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x54ec5892	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5502fbeb	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x56b0e29a	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5bc758f4	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6c5e5379	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7a24f103	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x850ef0c5	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x880b94b2	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8b488f25	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8d2f4a26	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9310e2c9	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x96edba04	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x97127ded	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x98e02c3b	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa1fc9571	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa512d155	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa914e7c3	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xae3644c6	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb144e445	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb4e1fd10	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb927f8e3	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd5d4c233	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd76c80bf	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd9f07406	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdb07eb93	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xed4584e4	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xefb56e10	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf193e91b	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf96e11a2	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfb76b25a	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfd30de3a	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xffcff74b	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x00c866c7	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0833a672	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cc9e3ab	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1173f7be	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x151740ef	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x171c6295	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1c3ba59d	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1cbdbe92	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1df27545	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x21a158e2	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2580c901	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x27de3468	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x284ae4cc	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2db2fee9	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x32cd6823	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3bfe7f67	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3e61af93	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4273352e	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4696a69c	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x47170079	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4ce51385	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x52688ea2	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x58368d60	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x59f19e9c	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5cf6d9b3	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5e8d26c2	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5f905415	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x60635723	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6183b0ba	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x655ebb81	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x69641b4a	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6d88daad	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6f7ea667	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x717f65ab	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x758048a4	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x80f80f8a	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8a4e91fe	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8aa71b6e	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b0408ba	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b0e63da	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x91e83c5a	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x933361e3	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9c04bd58	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9d4dd0a5	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa46cdedb	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaa663735	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xada20dac	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaf9d837e	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb03aefd7	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb0fe0f8e	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb6090d87	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc2dff43d	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc3e0d6d0	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc9357671	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc93c05bd	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcb2e8de3	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcbbd43d4	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcdb41732	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xceaa421d	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd3b78118	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdae708df	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe1c4a1b0	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe2bd1aab	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe59d29d7	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xee9bfeff	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xef9c9733	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf2d05af1	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3f5d9a7	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3fee407	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf46a15cf	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf9fc2aeb	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfbedb588	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x665e4576	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xb5cf071e	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x8a7dc190	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x0a41cc0a	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3336a058	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x4b60625d	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x60a826cf	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8f7f42f8	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaa712122	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb5f1dc95	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xbdcd8800	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xbe94f9fe	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xd232b44a	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xeacb2ac3	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xf40ab31f	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xf6b3f123	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x9e1d7e7a	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xade17009	usb_serial_resume
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x02c75d6d	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0f4cb20f	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2225807c	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x61f7ac0d	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8f40e76b	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9566a49c	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa59d76c3	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xb8d32d30	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xbf07ad30	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc2b8eb75	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc9d3abec	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe2cf5dd6	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x05b8cfda	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x0f655355	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x51f16cdb	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x5aabe4e4	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xb4818f5d	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xdb0b2d7d	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xfdc872ae	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x03767d22	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xae540515	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e91ca97	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x367ce26a	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x7bda5e6d	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x821e9390	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xa75ff962	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc7f2440e	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xb7222db1	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xef072b3b	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xf4c3dfd9	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xffef1de1	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x07ead319	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x151e4987	svga_get_tilemax
+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 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x61e63a65	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x6fb1bd76	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x7a445c4e	svga_settile
+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 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xcd96afea	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xfc456a1b	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0xda1845e1	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0xc64ad067	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0xe2ad4fb1	sys_imageblit
+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 0x8ef4520c	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x0655472d	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x1e5141d2	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x55674dd7	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xe11be8a1	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x67534cca	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xcfe13279	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xe2976de7	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xf847411d	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0xad6bcb1c	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0xe3d85c08	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x202ae4ca	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x5f203f1d	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xa06654f9	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xba9acbe2	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x00724bce	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xccd7c36f	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x2cfd5cb5	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x42c6bb70	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x75d81c2b	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x94bf0f9f	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xb0250744	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x4a825099	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x01ea132e	dispc_runtime_put
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x03005606	omapdss_get_version
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x0af69b97	dss_mgr_disable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x137349e0	omapdss_output_set_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x13e8875a	dss_mgr_unregister_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x20efa68c	dss_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2423d741	dispc_ovl_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3082a0b3	dss_feat_get_supported_color_modes
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3982321e	omapdss_register_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d36d54d	dispc_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x42912b0c	dispc_clear_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x45d74ef6	dispc_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4846bf96	omapdss_default_get_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4bd67a8d	dispc_write_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4c33081d	omapdss_compat_uninit
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x518b570e	omapdss_output_unset_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x54f6830a	omapdss_get_default_display_name
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5689afe7	dispc_ovl_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x56c9c0ae	omapdss_unregister_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5a2bb5d2	omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5c5230b9	dss_mgr_disconnect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5d51bcea	omapdss_register_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x617dc370	omap_dss_put_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x636b3461	omap_dss_get_num_overlays
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x66cdd3c9	dispc_mgr_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6b1a3090	omap_dss_ntsc_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6f86762b	omapdss_find_output_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x70e39dae	dss_uninstall_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x827143a1	omap_dispc_unregister_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8322c47a	omap_dss_get_next_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x869219cd	omap_dss_find_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x87fdb051	dispc_mgr_go
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x889f33fa	dss_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x93963a85	dss_feat_get_num_mgrs
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x93ce2f06	dss_mgr_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x967cb4e8	dispc_ovl_set_channel_out
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa13d27f5	dispc_read_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa4f6a175	dispc_mgr_get_sync_lost_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa6b89742	omap_dss_get_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa6d4ed3c	omapdss_unregister_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb3ed5aa9	dispc_mgr_is_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb7f94a15	dispc_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xba8ddcea	dispc_mgr_get_vsync_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbafeee36	dispc_runtime_get
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbe0d4752	omap_video_timings_to_videomode
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc316d876	omap_dss_get_overlay
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc45105c3	dispc_mgr_go_busy
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc9d2f3b2	omapdss_find_mgr_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcb584295	omapdss_default_get_resolution
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcb912181	dss_install_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcc15cadd	dss_mgr_register_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcc197296	omap_dispc_register_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xce466b8f	dispc_ovl_check
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd1067ba7	dispc_ovl_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd70adbc1	videomode_to_omap_video_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd8ed186b	omap_dss_pal_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdb93b838	dispc_free_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xde46e1fb	dss_mgr_start_update
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdede1767	omap_dss_get_overlay_manager
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xe3fe751f	omap_dss_find_output_by_port_node
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xe96c0d5c	omap_dss_find_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xebc67168	omap_dss_get_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xee2bc2d0	omapdss_is_initialized
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xef3b2795	dispc_mgr_get_framedone_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf3f42f16	dss_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4a7fc6d	omapdss_compat_init
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4f63234	dispc_read_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf9427374	dispc_request_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfe40bf95	dss_feat_get_num_ovls
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xffd2cf99	omap_dss_get_num_overlay_managers
+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/w1/slaves/w1_ds2780 0x0a6a57fd	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xd6dcf2f9	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x55b69d3e	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xec923480	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x21870175	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x2bad5370	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x44622a68	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x55ba35df	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x423e4930	bd70528_wdt_set
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x852be095	bd70528_wdt_unlock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xa178cb64	bd70528_wdt_lock
+EXPORT_SYMBOL	 fs/fscache/fscache 0x059a00d2	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x09ddec6b	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x132999ed	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x14ae6c53	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1ae150c4	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1ff7a254	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2145c744	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x22ef6a6c	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x23deac83	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x28467748	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2e4bd3bd	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2ea18a28	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x31c0bc67	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4603f6fc	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x466cbf00	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x47f0786e	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4a9a4181	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x511fd8e0	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5af60e6e	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5b258ec1	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x68e0f8a7	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x69c0ed65	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6f2d85b1	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x701cd162	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7b95d21a	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7bd7525b	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7f4da717	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa3fed72e	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa7d3480c	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb5430b4c	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xba28b8ea	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc27007a2	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcb59a123	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcc1b0b2e	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcc3d78b9	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdfb104af	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf044f928	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf813f2c5	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfceebbc3	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfe1b2714	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2b41bff7	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x583f0438	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xa4880a1f	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xa6324204	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xdc6356e4	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xe0b083ac	qtree_read_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0xa2048e95	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba95c5c0	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0x5a742e56	crc8
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x03f599c7	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0x4feade4b	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x56fc3ea0	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0x619ed575	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x84e0214b	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x8e6fd738	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xbbe7c23c	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0xc48fa976	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xc6e4cd46	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xcb990a55	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcea6747e	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xd212c9f0	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xe49f01b6	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xeb13128b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0xf460a486	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0xf5ea5f5c	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0xf6acec20	lc_find
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x4cc636f2	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x765fd165	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xd02774b1	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x067fa594	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x13d24f16	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1de3f19a	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2a0fd0d0	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2eacbe22	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3281fb74	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3545701d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35bdc817	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3b209a35	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x41e56a18	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x51022053	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x58f4c817	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x63230633	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6443babd	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66dbb4d2	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6cbcd95e	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x71432c37	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x78431876	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7aba5c0b	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7b51b66c	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x910096b6	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9e0ec162	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa9eb465f	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb7872388	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xba2ffeea	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc04b3f8c	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xcdfa135d	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd6205c02	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdac739f6	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf39e441c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf4cbffc3	ZSTD_flushStream
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x05684b78	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x1259cb73	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x1662bc69	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x1fe7eae5	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x3f7068c8	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x9a5a2e8c	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/802/p8022 0x3aa752c5	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x84abebb1	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0xee388e42	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xfa3c4adb	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0171d6f7	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x02d2985a	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x04513a86	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x066dd3b2	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x0faf14a5	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x15b46094	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0x1abde05c	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x22a05bbe	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x361ec165	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x368b6ab0	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x3ab5a598	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x3bd8d6c0	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d986cf9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x40544cc3	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x481f92ce	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x482f4550	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x64de7518	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x6cd0354d	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x6d955866	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x7400d155	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x80bbc6fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x85d99db1	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x88aa4861	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x94089e4a	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x95b89050	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0xa63b8c88	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xad08e842	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xad6578b1	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xaef496de	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xafc2c7d8	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xb20d472e	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xb2907026	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xbb62fee8	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xbd982631	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xcc710195	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xd3401355	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd5d0bf88	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6b1e55e	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xec21de45	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0xecb91548	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0xee0e69b5	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xf0e261ee	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xf42025ee	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xf5b29907	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0xff0cb406	p9_client_setattr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x613937e2	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x7ba08f1c	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x94bcb50b	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xa811bca2	atrtr_get_dev
+EXPORT_SYMBOL	 net/atm/atm 0x0d00ebd1	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x5ceef6f1	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x665e9cfc	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x6b9a3871	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x70f0e10e	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0x87669be0	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x905aff1b	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x99fac2d1	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa476d635	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xb2d1dee9	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xc9cb2263	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xd4f8fdb3	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xf881f371	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0xf99cd25f	register_atm_ioctl
+EXPORT_SYMBOL	 net/ax25/ax25 0x0db60d74	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x646ea89c	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xa7c7659b	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xa9e89789	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xabbb572e	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xcb10850c	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xd5e3eff7	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xf5bbf8f6	ax25_linkfail_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0691ca43	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x104264e5	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1d2cde20	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1e003d65	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2629e493	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x29c9334f	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2b67bdce	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x38de9b61	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4be68a6b	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4da21c5f	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4e5f67a4	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5f725bf1	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x611ecdd6	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6132f5bb	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x643c0574	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x690af5fd	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6a61a7c5	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6d071a55	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x70ea9706	l2cap_is_socket
+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 0x7e4b607c	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x865a6ae9	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8c69dd1c	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x906ef740	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9297c290	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9f921a89	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa2efc021	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa93ce3c1	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xaf0ea8a0	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xaf82f11b	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb132d457	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb312c2be	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb5821f62	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbb4bd80c	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc28c648c	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcb21e4e1	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcdfafa44	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xce7b9be9	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd47d510c	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd568c758	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xddbf2481	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xde9b7ced	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xeb1be042	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf1fe7cfe	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf5e29c29	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x2bf90cd5	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x7bedb73c	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x9e590222	ebt_unregister_table
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x172d6a3e	caif_disconnect_client
+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 0x3d32af83	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x3fea97ec	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x4ae9b164	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x646b921f	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/can/can 0x1b71b8c4	can_send
+EXPORT_SYMBOL	 net/can/can 0x5e4b4f71	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x6938554d	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x82940b16	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xba609d1f	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0xd6c60bea	can_proto_unregister
+EXPORT_SYMBOL	 net/ceph/libceph 0x001ba163	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x0229335b	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x05b7ddb0	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x06198c17	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x06336c02	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x09345c79	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a3c60e0	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0x0dc3c98c	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x0f7b4d03	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x10bd0338	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x12734ae2	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x14e68a53	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x167f2bf7	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cba3f20	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x1e6c33af	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x1eb0c110	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x28354255	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x2ac68333	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x317ac0ee	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x326303aa	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x334e4def	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x34449351	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x3522979c	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x363ff012	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x37d11755	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x39073798	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b9bb5bb	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c98a9fb	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x3cdd90d0	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d0f2a7c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f5356f5	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f69f201	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x45044d94	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x48371169	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x4a3a8a46	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x4eb343b9	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5964fc7f	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a4d0ce7	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e69a6a8	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e9ca2c9	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x61aa10a2	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x6240e390	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x644b6e50	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x65693e91	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6bedd293	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e8a35eb	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x6edb8cb7	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5c5f84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f73a25b	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x7798a3ef	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x798c0cb2	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x7daea138	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x8532d2c0	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x8535e1b4	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x8597f22d	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x88a3fab2	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x8a055170	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ab63ebb	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x8bd5050e	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x8d1a2863	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e6c4e11	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x9063758c	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9487f58b	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x98494b38	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0x98f14bf1	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x99dded72	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x9c91cb3b	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9f722fec	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1b19766	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1f444ec	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xa2a2ddac	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xa4710b24	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa9ab4e70	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xab31d41c	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaefe493e	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb4cf2ef2	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xb4d54b86	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc608146	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe919759	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc1cc9ef7	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xc20c8ca8	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xc30e12a7	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xc3f13269	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xc7079561	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0xc76770a8	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xc7f9e2b6	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xc9ae5de2	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xce53e7a4	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xcf4f4fee	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfcc0e46	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd3ee5f92	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xd41deedb	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd657a443	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xd75f25d2	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd91a0a0c	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb70c544	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe1a5f316	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0xe287322a	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xe30cad25	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe96bd0a6	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xeb541ec3	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xee4ff261	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xf14d11ef	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0xf18e4293	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf198e8a5	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xf28a7f59	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xf2b167c1	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf3b3906e	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf44fa969	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xf562aab7	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xf5da190b	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa32b568	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0xfc339e79	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xfc653354	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xfdfd118f	ceph_monc_stop
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x4a446fb7	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xd353f5be	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x3acbc6bf	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x64f78afa	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x1a019402	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7344fc82	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x982fa906	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xa918ac2c	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xc819a355	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xec84ca0f	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ipv4/fou 0x19741ae4	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x24039ed1	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xfbf8df44	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xff1adff3	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xdeaf6e33	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x2876bae0	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x56466c3b	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xb60d9b32	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xff05c596	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x37c907ab	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xd6696178	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xdb317824	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x197e023b	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x3bf06606	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x6fa21262	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x0112fe74	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x636cec03	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x9855de2e	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x1f2e4e2f	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x416cf1de	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x480d7b0d	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x704ee7b8	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7c2e5b00	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x8c290bf1	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xbd4a0fe1	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xcdca37a9	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd9d95e1e	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x253ad1ac	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x9ef17004	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xba88bad6	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x11e243cd	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xff33439a	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x2bd037d2	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x39dc3262	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xa24a7e13	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xdd111ff9	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x95e77217	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x16432c1c	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x17303adf	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x260c7cb9	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0x2b055dab	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x4e7645ec	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x75a8a235	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xb64fcc74	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xc07e48ea	lapb_data_received
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x55b49704	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x6b3abf85	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0x907e5867	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xa03f5425	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0xace0db9a	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xcc89a117	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0xe9ee9f76	llc_sap_find
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x01a8b6f5	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x03dab963	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x048ccaa9	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0579c37b	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0580844f	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x06fbb75b	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0a6d0915	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0a847299	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0d1a51c2	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0d424b52	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x15698b4a	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x218f877c	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x23845ea3	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2be17a3e	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ca17857	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2fac7d35	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x310120ee	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x31e6c9a1	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x327ed3f5	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3673d9e7	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3c203dfe	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c1c31c7	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4d06b562	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x525e92e1	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x54d35fa6	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x54ef739b	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x60471dc7	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x63175d18	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x64570ec6	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x66e65401	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x674e6d7f	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x67fef8a6	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6a47cbbc	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6f40665c	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x72b48810	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x73d8d0a6	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x75bfc4bb	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x78e18033	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x797f6c86	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7a4e3ee9	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7b43cfd9	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7d66b6ec	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7f0f88a2	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x81b78ac7	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x82c77fc5	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x841a984b	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x85a04976	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x85b34781	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x874fbf79	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x87bfd624	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8fadc29e	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x91acb358	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9224275a	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991c2f7f	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x998e3551	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x99dde5f3	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa18f412c	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa239df15	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa9b06fe9	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xabe43aa8	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xae95cb5f	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3ac416c	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3e32fba	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb5396b55	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb8eb73f9	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbd21abcf	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe7a8246	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc46d1012	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc4968bce	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc9758153	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcc971c36	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcdcd9bca	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf175b4a	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd794b386	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd836ea93	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd97a5f26	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdb35d542	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe085cd8a	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe1addfc8	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe4aa7ed8	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe7422678	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe75c04d5	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe9ab5a63	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xee2cbd16	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf0f53a11	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf52429fc	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf74ee996	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf80ffd20	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf8cc0795	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfc16b273	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfeb0e984	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xffcf09f1	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x7828b1c0	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x8d483b6c	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x95e80d1d	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9f8af2c2	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xc856efd0	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xcfbc4234	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xe9f86a1a	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf9cfd73d	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0a354e5a	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2f03b4e0	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x40e9b411	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x4e0fd68c	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x7bd09ee5	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8ab8931c	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x91fe7fde	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x92d63408	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9418c08f	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9bcf44a8	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa31515e3	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xb33f0de6	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xdaf613f8	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xdf7349da	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfff60e9f	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x46884f4c	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x78cbe042	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x57d5ee33	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x647281f4	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xd20c2c03	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xd2e158d5	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xda92f4e1	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x009cab68	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x2b31338f	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x49569113	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x57868438	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7e081676	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8517e1bd	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa7467c5d	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd1409a51	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xdfd82d6f	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe712ab9d	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0a8b51e9	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1661d057	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x23ec9e54	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x26298b18	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3266247b	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x38edc479	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x4e208340	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x56c4db97	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5881f88e	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5a353399	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5fc194bb	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6699460a	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7bbdb4cd	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x94baa296	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9bf6071d	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9cb3545b	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd8de05f8	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd14585f	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xedfe146d	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf3507a0c	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf457e8c1	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0537fd2f	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x055bd6bd	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0dc100c1	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0ff4817f	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1662ba2c	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x17a00950	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x24ad89a6	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2c20846d	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x37cc6ce8	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x440addd0	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4bc4cbe9	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4cbb1a53	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4df9d964	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4e0f822a	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x573e4d7e	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x63bf1639	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x73e88a57	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7de655e6	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8434abcb	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x88842a3f	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9258b320	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa558ea1c	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xafbec77f	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb49e5e39	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb68d8e9a	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xd7da4e94	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe0823cf2	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe910386a	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xeb7f0d55	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nfc 0x01ebbd8a	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x03578d1a	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x09c9a9bb	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x1079d6bc	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x17fd18be	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x1a7e402d	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x23effafd	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x26a640df	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x35d9e533	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x48c33f4b	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x4fd2e9e0	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x6ada38ee	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x74999cf6	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x930459a8	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x995db517	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xa07a7f79	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0xa222f028	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xb6b5d4ef	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xc1684900	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xca28dd1f	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0xcd603e05	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xd21e4a77	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xde756414	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xf3f2c4f1	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0xfcb37a72	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x036e0ff3	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x9e2a4181	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xbec6c60c	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xe331421e	nfc_digital_free_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x249d6f91	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x35d864b9	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0x55aade89	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0x565882b1	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x7117c8fc	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x792468b0	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0xe7b7373e	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xede3f84c	pn_skb_send
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x141cd567	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2ad8e020	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x42b996b2	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x442474be	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x49a5791b	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5dcb3f91	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x70c37c13	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x74ed9a2c	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x869a9a6c	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8d966b1c	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x99af8d5e	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xac4be89f	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xad8f99c7	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb25548c1	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb5141610	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe7268900	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf7442bba	key_type_rxrpc
+EXPORT_SYMBOL	 net/sctp/sctp 0xdb3e338e	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x5691de94	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x5935ab07	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xd042abc6	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x3116d0a6	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x3c8738be	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xe4e48aab	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x7ad12e4b	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0x8aa1ac68	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xec27900a	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0xf4e0461b	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x3370b3de	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x68bbef46	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xcb41fb48	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x02d6f483	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0x811d38a8	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x00b4529e	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x01af2c62	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x02250236	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x07a92fcc	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x099059ff	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09bbf9a0	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0b72f2c5	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0df57439	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0fced2d5	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1624e28f	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x167e73fa	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x17fbca6b	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1a85e386	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1cc88e7e	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1d3fa092	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1f5c706e	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1f9f0d57	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2270b387	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2b7e20ab	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2b9f6954	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x310f86d0	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3185c440	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x329719b5	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x356e063f	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38cb594a	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3b29e269	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3cb1a373	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d157afd	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3de53b74	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3f0d4d84	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x40a2392e	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x42ed21ed	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x47b83909	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4b2efb96	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4e368200	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4f169e39	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4f5e00c4	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x52417885	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5e867359	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x61e71fff	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x668eb02e	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x68febcc7	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x70bc5137	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7224ccec	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x76481e48	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x778cd4cc	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78fc6f60	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79db13d9	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7b074254	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7b92ad93	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7e827f95	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7f2ca80a	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b24e88f	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8e273e22	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8e937f54	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8ecedd25	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x948c9cba	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x962d1630	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x96debc1e	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9ae3356a	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9bae40f6	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9cc34d36	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa3265562	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa6e71706	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa7766e12	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa79a0c53	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb11561f8	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb87cb4ea	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xba518052	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbbf72ab9	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbd43f7e9	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc25ad570	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc297e7f2	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc2c6f606	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc409bdbe	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc6634f48	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8edd86b	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcba00dd4	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcdcbd1e8	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce7bf0ba	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcedfb00b	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7f6f362	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe11f445c	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe2e52ae7	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe89908b5	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xea9f9e41	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeacf0f2b	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xebdd386e	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf04f884b	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf42f47f2	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf7dcf896	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfaf01f96	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfe326877	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xff2dc113	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xff716360	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xffa481da	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/lib80211 0x0d5cfc95	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0x7488ecd6	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xa278d8d8	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xd0fe7983	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xe9a482b1	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xf758d242	lib80211_crypt_info_init
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x118bf457	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x00114041	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x5677c4ff	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 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xdeaf4f2e	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xfd742da5	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1724fb56	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x17fcf66b	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1cff6e14	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2f853c43	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5f7f98	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x56efbc6b	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdaf3383a	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x42d925ec	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0xe115bc7b	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x01d51f8b	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x057aa6fd	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x100a6db8	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x16e9a987	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x48d14b69	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5245bcc8	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x52e5611f	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x69de7b97	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6aadc422	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6c79dbbc	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6ddd4b4d	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x85f2d677	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa19c2f3a	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa95cafa2	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xb3be175a	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc59b238d	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xeb85aac4	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf1809bdb	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf3e5b9f6	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfb8b2a66	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x26c4adc7	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/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x9410e1a6	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x42932511	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x47c4ee59	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x4810e18a	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8d4e1b60	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa94404db	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xb16b7841	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xb4196b06	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd82dd6c6	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xdd14cf18	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x00344bed	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x12e4fe15	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x30674db4	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x7c7551e6	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x9a3e3e82	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd61d7d8f	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xef8bec0c	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf149a0f0	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xfdac2cf3	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0401e156	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08980fd1	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1db7592d	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1ddfc964	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1f1d5780	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x24b5bc4a	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2668d538	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2bf4efee	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3caa4858	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3e1b6ca8	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4543b9e5	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x54d7099a	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x56672094	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5d61cf7f	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x60730b3b	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x725abd56	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x76eeeacb	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8561b8d4	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x89cd635c	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x98164d19	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9ef76f61	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa089e257	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb3a8b680	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbf7dc347	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc7070b5f	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xccb5bf7e	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd0c1ede8	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd7284fb5	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd79aaa39	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe38f2764	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf93ed619	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xfd560436	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x62da067e	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xd388daa0	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x1e6bcbe2	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x243c982c	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x700f81e7	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x7a2a3a6e	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x8debfb7a	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x94de02b6	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xaecd618c	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xc1634cbb	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x2f3d4ada	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x84e97c8e	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x92302583	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xea43d891	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x486791db	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xabb7aa4a	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x33574530	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x77a86493	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x861d613b	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x99c22d32	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xe73e1bbe	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xfba6222f	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x01320193	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1235ee76	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x190ba6c6	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x24535b67	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x339fd148	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3701838d	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5aad1aa9	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6c313f49	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7a53fc0e	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x80b5585f	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x82cc46ba	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9116c833	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9da6c348	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xab958505	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xbae9bf90	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc3e73605	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfbfe60ca	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x82239ac7	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8ddfa2d2	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb6a41b59	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x089a4e17	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0b58146f	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1939aa9c	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3776c729	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3b7e653a	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x54fffe00	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6aacef19	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6af7ad3e	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x71ed4f60	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x76548891	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x82c96036	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x921f133b	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x9763f931	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x98dde9c6	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb40f71cc	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd7ed19e2	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd98d4263	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdda93ae9	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xec51ec6c	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf129949c	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xff4a83f6	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xda854385	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xed20ee0f	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xf4f4afc8	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xf85e8c3c	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x03b5d182	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x0aaf866a	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x4ad677ab	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/fsl/snd-soc-fsl-utils 0x26e89e3a	fsl_asoc_get_dma_channel
+EXPORT_SYMBOL	 sound/soc/qcom/snd-soc-qcom-common 0xc9edf722	qcom_snd_parse_of
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0890b152	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0b23fe21	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0bd4306a	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0c4482fd	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x11f458e5	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1d8cd032	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x20131cfb	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x21fddcd8	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2a81d137	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x310da700	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3472a622	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x39dfb966	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3f9940c4	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x413beed7	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x443c6e19	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x474deeec	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4969338b	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4a475fb2	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5652f7d4	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x65cff6fe	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6c34c51b	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6cd7375b	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x749f01b5	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7e920b02	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x83b39c1e	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x867d7551	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x91967263	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x97d4fc72	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9a73de1e	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9e6e11d7	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa0d0fbf8	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xad055b2c	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb6000004	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcb4c963b	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcb89c58c	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd6ced085	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd7a9336c	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdce24730	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdd5f255c	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdea4aca0	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdf045a5d	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe368f5d7	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe380179f	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xeb0ec330	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xee41b58d	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf003bd31	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf8ff8da6	snd_sof_fw_unload
+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 0x9a244d8a	__snd_usbmidi_create
+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 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x00043281	init_net
+EXPORT_SYMBOL	 vmlinux 0x000bac74	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x000e9667	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x0013edae	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x001ee95a	imx_ssi_fiq_base
+EXPORT_SYMBOL	 vmlinux 0x00480237	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0x00685815	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x006c330e	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x008ebe54	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x00baa734	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 vmlinux 0x00c623de	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x00ccdfe4	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00f83a6d	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x0106068f	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x0111ebf7	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL	 vmlinux 0x0116c2cd	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 vmlinux 0x011a9e53	elf_hwcap2
+EXPORT_SYMBOL	 vmlinux 0x01298ed3	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x013c79bc	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x014cf022	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x01505d85	imx_scu_call_rpc
+EXPORT_SYMBOL	 vmlinux 0x0151d50f	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x01584e55	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015be3e1	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x0160f17d	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x0174c488	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x01781e2d	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x01830813	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x018a47d7	snd_info_register
+EXPORT_SYMBOL	 vmlinux 0x01a3d310	omap_set_dma_channel_mode
+EXPORT_SYMBOL	 vmlinux 0x01bb40a3	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x01c1bd42	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x01c72108	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x01e4e296	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x01e769d6	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x01f3ff42	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x01f93a46	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x01ffa4c0	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x02087ad1	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL	 vmlinux 0x021ab4de	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x0228c935	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x022fdd64	register_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0258395d	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x02672326	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 vmlinux 0x0286fa28	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a8ea61	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x02b75637	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x02cb2811	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x02cf4691	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x02d28d43	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x02db424f	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x02df50b0	jiffies
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x02fb4209	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x02fc7a3f	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x0317ce86	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x031e8ce3	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x0334795d	icst307_s2div
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x03479d98	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x034fec08	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x035dc381	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x036430e9	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036e84c8	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x03721729	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03aebe79	fb_class
+EXPORT_SYMBOL	 vmlinux 0x03b31a08	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x03b6e09c	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x03ba39b0	v7_flush_user_cache_all
+EXPORT_SYMBOL	 vmlinux 0x03ee96aa	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x03fe8a70	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x04091130	start_tty
+EXPORT_SYMBOL	 vmlinux 0x040ede6d	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x04122448	register_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x042685d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044fb722	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x0457c565	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x04623790	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x0477e009	vga_put
+EXPORT_SYMBOL	 vmlinux 0x047b7d97	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x0489c626	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x04a893d3	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x04ad07f7	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x04ae0988	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x04c6b4c3	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x04c7dd9f	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 vmlinux 0x04daee2b	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04f26b9b	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x05060a90	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x0508088e	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x053bd4a4	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0559b079	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x0565301c	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x056a97e4	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x056b8f04	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x057f56fa	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x05854a1e	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x05906e84	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x059438a0	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x05b0caa0	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05bea2c2	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x05c87ed9	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x05ca18a2	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x05d5494e	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x05e13eb9	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x05ee99a6	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x05efd793	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x05fa5adf	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x0602af18	tegra_dfll_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061df016	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x0621be41	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x0631668e	snd_ctl_remove
+EXPORT_SYMBOL	 vmlinux 0x06337794	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x063efc2c	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x06472aaa	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x0647dd49	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x0648b71a	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x065677db	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x066c2c3c	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x06724b38	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x067c477e	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x067d40bc	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x067ea780	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x06947ea1	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x06acba8f	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06cc2785	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x06f580b8	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x0728878e	import_single_range
+EXPORT_SYMBOL	 vmlinux 0x072a8f8d	__set_fiq_regs
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x074241b5	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x0748d516	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x075a2c33	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x076b5e88	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x077af67c	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x0781b232	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x07839042	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x07944611	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x07a00f41	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07b90e7a	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x07ba278f	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x07bfd48f	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07e2c085	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x07ee1d7b	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x07ee860c	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x07f43aba	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x0804f4a4	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08144384	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0844bf1e	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x08515a29	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x086253a7	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x08690bbf	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x086e2b0b	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x0884ea6f	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x0886d5cd	snd_pcm_set_sync
+EXPORT_SYMBOL	 vmlinux 0x088753d1	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x08883515	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x08944d39	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x08c4fd32	omap_disable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x08d15ee0	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x08e39398	cmd_db_read_addr
+EXPORT_SYMBOL	 vmlinux 0x08f2370b	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x08fc1332	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x091561e8	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x09429441	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x09445b93	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x09477525	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x0952c090	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x09580336	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x095904ba	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x096a27f7	dev_open
+EXPORT_SYMBOL	 vmlinux 0x096aba1f	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x0975791d	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097d5347	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x098735d6	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09ad85a1	sort_r
+EXPORT_SYMBOL	 vmlinux 0x09c417de	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09f24fb1	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x0a1c0a13	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x0a20d621	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL	 vmlinux 0x0a3adcc7	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0x0a68913b	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x0a98993d	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x0aa09d79	omap_vrfb_map_angle
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa92814	key_validate
+EXPORT_SYMBOL	 vmlinux 0x0ab234cf	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ae15130	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0x0ae547ed	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x0aeca900	has_capability
+EXPORT_SYMBOL	 vmlinux 0x0b0b93b9	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x0b117032	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x0b1b939e	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b248e53	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x0b2a4a75	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x0b2b1f16	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b314f54	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x0b32d120	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x0b40d7cf	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0x0b617520	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x0b6590af	snd_device_new
+EXPORT_SYMBOL	 vmlinux 0x0b709411	omap_vrfb_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0ba28813	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x0bc07c6c	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bc5f585	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x0bd34436	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x0c07b52a	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x0c11dee8	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c411c49	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x0c42a991	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c9acb71	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0ca54fee	_test_and_set_bit
+EXPORT_SYMBOL	 vmlinux 0x0ca80963	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x0ca861da	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cb5eae1	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cdd2f3c	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0cea11e7	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x0cebb207	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x0ced70bf	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x0cf1aaa5	tegra_ivc_read_get_next_frame
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d28ef65	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0x0d4c21f7	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d680b47	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x0d8c4977	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x0d93b9f4	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x0da65f7b	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x0dabcbf5	arm_dma_ops
+EXPORT_SYMBOL	 vmlinux 0x0dba5e9a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x0dbc924a	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x0dc1a78c	bin2hex
+EXPORT_SYMBOL	 vmlinux 0x0dcc0711	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x0df6edc6	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x0e05d92f	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x0e10dfad	current_time
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1c8804	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0e298d61	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x0e3e4f00	snd_pcm_new
+EXPORT_SYMBOL	 vmlinux 0x0e652af4	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x0e707691	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x0e740226	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x0e8f7a39	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x0e9f2609	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x0ebb5853	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ec87cd7	bmap
+EXPORT_SYMBOL	 vmlinux 0x0ee699c9	pid_task
+EXPORT_SYMBOL	 vmlinux 0x0eea0399	strscpy
+EXPORT_SYMBOL	 vmlinux 0x0eea0866	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x0eebbaed	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x0ef21ea8	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x0ef78598	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x0f06957f	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f1426eb	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x0f3c6e61	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x0f507d1d	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x0f530f7b	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f977611	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x0f9fc54a	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x0fa2e63f	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x0faee77a	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fc3f034	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x0fcbbb52	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x0fd0b430	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x0fd36f65	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fee1909	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x10018cb0	__pv_offset
+EXPORT_SYMBOL	 vmlinux 0x10068fc7	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x100f68ea	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x103ec821	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x105cb287	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106f13ab	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x1073941e	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x10739f1e	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x10779065	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1085d5ee	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x108dd468	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x108ec503	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x109d0eca	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x10a40c81	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x10a99075	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x10afd893	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x10b2b687	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x10b383fc	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x10ba4817	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c907e2	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x10ccb318	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10f6f38b	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x10f8772b	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x110060b5	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11098061	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x1116c906	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x11387ffb	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x115791b2	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x1165e982	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x11677568	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x116b37d2	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x11726cf4	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x11843438	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x118e00e6	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x119b50e7	elf_check_arch
+EXPORT_SYMBOL	 vmlinux 0x11ad88dc	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x11c9688b	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x11d9f20a	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x11dc38f4	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11e74fe4	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f5dd54	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x11fcfbe0	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 vmlinux 0x120002d3	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120e44e6	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x12139cde	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x121baf8b	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x1240c244	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x12494ad3	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x124de48c	path_get
+EXPORT_SYMBOL	 vmlinux 0x124fcf19	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x1271bbc0	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x127f87c9	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x12928baa	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x12a1ffe9	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 vmlinux 0x12a36513	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12a6038b	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x12a7b3ef	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x12bbdbaf	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12dea71e	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x12e7721b	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x12f19edf	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x1312e334	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x132cb2b5	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x13480190	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x1352528f	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x13526a25	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x1354b448	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x135c4b2f	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x13831437	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x13897a7c	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x13958633	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x139744c7	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x13caa9b3	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13d56b74	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x13d97945	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x13e50ee0	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x13ecc8ee	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x14090cd5	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x1414705e	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x14195227	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x141f73cd	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x14400bcb	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x14418df6	bio_init
+EXPORT_SYMBOL	 vmlinux 0x144d9b2d	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1481741e	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x1482856c	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL	 vmlinux 0x14f7cad1	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15042998	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150d9fb2	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x152acc59	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x153453af	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x153eafeb	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x154a07be	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x1568c3dd	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x1568ccca	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x157e4b7f	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x15855458	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x158d0385	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1597697b	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x15aa65c0	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c06fa8	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x15cb3d70	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x15d30e33	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x15d433c0	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x15ec2a0e	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x15ffebce	dput
+EXPORT_SYMBOL	 vmlinux 0x161fb3df	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x1636b937	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x16372b79	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x163d2417	tegra_io_rail_power_off
+EXPORT_SYMBOL	 vmlinux 0x16431cc2	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x1643d28e	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x164ac403	snd_timer_start
+EXPORT_SYMBOL	 vmlinux 0x16525cc4	xa_find
+EXPORT_SYMBOL	 vmlinux 0x16614ebf	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0x1697b213	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x1699fd42	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x16b33319	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x16bfba67	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x16c0f755	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x1707e6e5	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x17268c5c	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x1738c19e	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x173c98c0	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0x17405433	release_pages
+EXPORT_SYMBOL	 vmlinux 0x174c4e99	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x174e2da1	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x1755babc	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 vmlinux 0x1785c9bb	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x17a022a1	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x17b2892b	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x17d5a525	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x17e2321d	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x17ece1d0	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x17f3b2b4	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x18091427	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x18144ae2	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x181e2e7b	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x183930d2	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x183b44b9	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x184da3d4	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x185845f0	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x185c32cf	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x186d539b	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x1878f1f9	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x187c207f	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1899135e	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x189c5980	arm_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x18a7cea3	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x18aa34c8	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x18b4f624	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18eb1a43	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x19052f96	snd_pcm_hw_refine
+EXPORT_SYMBOL	 vmlinux 0x190be5e8	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x19144344	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x19343a6f	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x193bb17a	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x194894b3	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x194e3141	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x195d4ac9	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x1968ccef	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x1973316c	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x197dc3b3	omap_set_dma_src_burst_mode
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 vmlinux 0x198a007d	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x19947ab8	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x1996376c	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19a56df1	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x1a015c32	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x1a0c3e07	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1a1062c9	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x1a1c3d4b	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x1a20c540	omap_vrfb_supported
+EXPORT_SYMBOL	 vmlinux 0x1a21d691	__ksize
+EXPORT_SYMBOL	 vmlinux 0x1a26c5c8	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x1a2f4e10	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x1a3756c2	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x1a425c27	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x1a4e60d4	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x1a51c881	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x1a5454ca	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x1a5e06ad	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL	 vmlinux 0x1a7bc9ef	xxh32
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a91399d	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa86d18	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x1ab43c3c	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x1ac04bae	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x1ad1f2e7	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x1aded990	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b167b72	snd_pcm_new_stream
+EXPORT_SYMBOL	 vmlinux 0x1b22036d	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x1b25f187	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x1b4f836d	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b6a39ff	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1ba174a9	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x1bb60c06	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x1bb671ef	bdput
+EXPORT_SYMBOL	 vmlinux 0x1bc368b1	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x1bc4c2a5	kobject_put
+EXPORT_SYMBOL	 vmlinux 0x1bc6e260	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x1bd3c946	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x1bd6c1f9	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x1bf563e6	snd_power_wait
+EXPORT_SYMBOL	 vmlinux 0x1c3b7017	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x1c555a65	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 vmlinux 0x1c5dc962	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x1c5e3878	icst525_idx2s
+EXPORT_SYMBOL	 vmlinux 0x1c67df1b	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0x1c6bbe89	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x1c6f2b4f	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x1c777c5c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x1c7bf545	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x1c98899f	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x1c9ccb16	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x1caf4c2b	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d4b0d60	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x1d53dbcd	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1d580cbc	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x1d6e5e7e	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x1d74ed02	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x1d7bed2a	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x1d813da3	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x1d841f19	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x1d988606	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x1dac2f6d	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x1dd2b212	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1e0373fc	imx_scu_irq_group_enable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0badad	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e235ea0	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x1e25fc61	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x1e39ff45	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x1e54faf0	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x1e56d76c	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x1e62972d	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x1e6b66c8	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x1e6c8db5	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e8094d9	key_put
+EXPORT_SYMBOL	 vmlinux 0x1e84749c	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x1e8f17ae	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x1e96b2fc	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x1e96f43d	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb64646	div64_s64
+EXPORT_SYMBOL	 vmlinux 0x1ebad666	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1ee8e662	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0x1eef85b1	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x1f0442c8	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x1f16fb3e	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x1f29fbc4	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x1f3f2d98	put_disk
+EXPORT_SYMBOL	 vmlinux 0x1f6090d3	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x1f6efa0e	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x1fba43b8	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd3c917	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x1fe3263e	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x1fe4f0d8	get_mem_type
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff1aaa4	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x1ff44d95	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x1ff7484d	tegra_ivc_reset
+EXPORT_SYMBOL	 vmlinux 0x1fff0211	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200036a3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x20070ea2	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x20135adf	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x2017579c	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x201bb400	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x2024a6ff	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2057e9d6	bio_put
+EXPORT_SYMBOL	 vmlinux 0x205f2b8c	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x2068a043	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x2070e39f	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x20748d50	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x20766dea	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x2076fb18	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x20846110	down_killable
+EXPORT_SYMBOL	 vmlinux 0x2085838b	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20b51648	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x20bd0452	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x20beedc8	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20f8eed8	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x2106c30d	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 vmlinux 0x21110dbf	mmioset
+EXPORT_SYMBOL	 vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL	 vmlinux 0x211ee9bc	qcom_scm_assign_mem
+EXPORT_SYMBOL	 vmlinux 0x212133db	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0x2128413d	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x212d8797	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x213bc59f	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x2163828a	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x216d759a	mmiocpy
+EXPORT_SYMBOL	 vmlinux 0x218ab764	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x218f94fe	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x2193fb78	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x219443a1	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x219b1366	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21d94703	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e44d23	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x21f7eb8f	claim_fiq
+EXPORT_SYMBOL	 vmlinux 0x21f84d83	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x22032d0d	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x221b9675	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0x221dbfc2	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x22246d88	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2231052d	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x223400f1	sget
+EXPORT_SYMBOL	 vmlinux 0x2254be81	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x22588686	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x2277d558	mx53_revision
+EXPORT_SYMBOL	 vmlinux 0x2291a7aa	snd_card_file_add
+EXPORT_SYMBOL	 vmlinux 0x229499b1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x2295d7f0	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x22af2b8c	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x22b02a4a	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22d4ccd0	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x22d663ae	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x230ba4cd	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x230fd57b	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x231d3274	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x231db40f	dm_io
+EXPORT_SYMBOL	 vmlinux 0x233549c3	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x234668d1	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x234e0188	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 vmlinux 0x235b9ed0	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x23619cff	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x23681b70	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x236c6e02	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x23984eb6	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x23a6f86b	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x23b6c9ef	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23b9fdce	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x23bbdeed	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x23c7cc53	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23f483b7	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x23f9c5ce	xps_needed
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x2401eb66	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x2406a9bc	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x2408a920	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x240a09f5	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x2410940e	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x2423ffd5	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x2429a6b8	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x24396a6f	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x244f9c08	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x24553f36	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x2457368e	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x245f77b6	seq_open
+EXPORT_SYMBOL	 vmlinux 0x246076f8	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x2466e2fc	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x246790df	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x24721470	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x24901adb	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x24a1dae5	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x24a66184	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 vmlinux 0x24b97378	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24ee7d4c	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x25001095	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x250113b4	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x2514c8af	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x251d2500	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x252338be	dns_query
+EXPORT_SYMBOL	 vmlinux 0x25240461	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x252c2730	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x25543f93	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0x255e0900	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x256e875b	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x257062fb	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257ae45c	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x257b8fa8	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x25829f6f	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x2588f3ea	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x25ab17aa	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x25b7d752	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x25c085dc	cqhci_pltfm_init
+EXPORT_SYMBOL	 vmlinux 0x25c24e3d	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25f47713	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x25f750a5	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x260607cd	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x260e5957	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x2626e012	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x2627d3d6	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x2635fb09	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x2639aa2b	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x2653886e	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x26593a6f	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0x2662a453	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x2666c17a	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x267e54bb	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x2681b2c0	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x2690e6c1	_find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0x2697b39b	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x26986c60	tegra_ivc_write_get_next_frame
+EXPORT_SYMBOL	 vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0x26c6ac90	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x26c74112	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x26e53b99	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x27076d51	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x270ac400	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x272420d5	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0x2728f6ad	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x2731cd80	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x2733363a	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x2741e9bc	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x274fd5c0	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x275648ae	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0x275c6d5e	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x2775aede	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c68705	node_states
+EXPORT_SYMBOL	 vmlinux 0x27c7ec65	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0x27d00bd8	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x27d56082	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x27d6f3b5	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x27dcb14c	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x27dcd25a	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x27e01278	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x27e44177	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x27eb784b	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x27ebca61	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x27efe6b1	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281a09e8	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x28291992	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x283deedc	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x28670aac	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x2878e15a	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x2894d7f3	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0x28b15e48	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x28b65b5e	key_link
+EXPORT_SYMBOL	 vmlinux 0x28b7db70	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x28e80c37	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x28e96cb9	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x28f6c181	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x290151c3	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2916f1f9	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x29193876	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x291a14c3	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x291cc8c3	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x29274001	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x293dac84	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x29435c86	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x294e62c3	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x295e0fdb	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x29724123	eth_header
+EXPORT_SYMBOL	 vmlinux 0x299cfe7d	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x29a47fe9	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x29ad5d92	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x29bc278f	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x29c0aec3	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x29d9f26e	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x29daa2c5	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x29db3052	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x2a0be51e	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a37b296	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x2a3aa678	_test_and_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x2a3b794f	console_start
+EXPORT_SYMBOL	 vmlinux 0x2a3e0336	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x2a4a414c	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x2a6e7570	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x2a7c206b	snd_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x2a803bb2	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x2a8710b4	page_address
+EXPORT_SYMBOL	 vmlinux 0x2a98a2c1	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x2aaf17e2	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x2acfa402	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2add256d	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x2ae092a3	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x2ae747f7	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x2b03a2c8	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x2b06cf90	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x2b092f93	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x2b1a1886	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x2b1a4b11	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x2b4ed738	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x2b551afb	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x2b5ab97d	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x2b5f742c	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x2b610030	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x2b676dac	module_layout
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b6a28ad	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x2b7ee398	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x2b88d2f5	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x2b92dab1	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2b99722a	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x2b9c7db3	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb33077	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0x2bc66009	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x2bc93940	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x2bdf8557	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x2bff5887	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x2c043468	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x2c14323a	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c25890f	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x2c2b665a	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x2c2f3bb6	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x2c329e54	tegra_powergate_sequence_power_up
+EXPORT_SYMBOL	 vmlinux 0x2c3aabdf	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x2c6a26db	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x2c6b6974	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x2c7c8e9a	pcibios_min_mem
+EXPORT_SYMBOL	 vmlinux 0x2c81ec75	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c9d3756	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x2ca0f03b	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x2cb32227	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x2cbb283a	skb_push
+EXPORT_SYMBOL	 vmlinux 0x2cc27988	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x2cce7033	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x2cfde9a2	warn_slowpath_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d06d61f	efi
+EXPORT_SYMBOL	 vmlinux 0x2d0e9d6e	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d175b1c	snd_timer_pause
+EXPORT_SYMBOL	 vmlinux 0x2d2583ba	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d603e3b	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x2d69fed6	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x2d6fcc06	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2d790a91	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x2d7f6d14	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d919721	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da81bff	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x2db15732	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0x2db1b08f	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x2dd76358	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x2de5d2d1	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x2dec67cd	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x2df00c36	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x2dfa33e7	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x2e016b57	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x2e06fef6	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x2e0f2dbe	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x2e165c48	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e221ec9	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x2e32b9ed	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e5057d5	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x2e579a73	arp_create
+EXPORT_SYMBOL	 vmlinux 0x2e6a1a1f	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x2e6b407d	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 vmlinux 0x2e768547	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x2e8c0f07	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x2e8c1849	inet_release
+EXPORT_SYMBOL	 vmlinux 0x2ea579ce	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x2eb882ef	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ecbf36b	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x2edfc8e1	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f13cc83	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x2f1a30b6	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x2f1b0d62	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2f217104	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x2f2a6332	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f333aab	imx_scu_get_handle
+EXPORT_SYMBOL	 vmlinux 0x2f3bc532	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x2f3c1eb7	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x2f49e147	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x2f50cbf5	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f5b0fdb	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2f6ea6d2	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x2f89731c	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x2f97d372	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x2fb4579e	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fc545d2	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x2fcb3916	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x2fd7c7aa	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x2fdd897b	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2ff96f96	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x300c090a	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x301d9a5f	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x30275bfb	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x3041f484	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x3071b298	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x30811ffa	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30c3bbc0	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x30d9a471	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x30e11a72	release_and_free_resource
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x3102f757	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x310917fe	sort
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x312936b0	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314b20c8	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x31891e4c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x3198c435	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x31a4767f	qcom_scm_hdcp_available
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31c76c84	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x31eb73f0	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL	 vmlinux 0x31f227ef	audit_log
+EXPORT_SYMBOL	 vmlinux 0x32101ff3	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x32430023	_totalhigh_pages
+EXPORT_SYMBOL	 vmlinux 0x324bc595	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x324fdb83	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3277de18	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL	 vmlinux 0x328c46cf	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x32a7767b	cqhci_resume
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32dd10cd	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x33079b1b	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x330c6967	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x332d5e6d	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x33427886	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x334b1363	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x334fdcbe	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x33584a9e	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0x33689378	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x336c6bb0	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x33746eaa	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x33781e56	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x33819bc8	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x338f218a	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x3398452a	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x33cc8ca3	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x33eef436	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x34084d79	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x340ebedf	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x3424845b	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x34280df7	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x3440934e	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x3452daed	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x345ef14c	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x346e5668	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x349b4277	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a04d71	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x34a92c5f	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x34cf42a7	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x34df18ab	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x34e27491	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x3507127c	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x350ed007	notify_change
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3517d71b	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x352c05d9	release_resource
+EXPORT_SYMBOL	 vmlinux 0x353e3fa5	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x3546d030	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x3549f2c2	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x3551d095	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x3560e651	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x3566442b	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x35696cb2	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x356c14f6	sock_create
+EXPORT_SYMBOL	 vmlinux 0x356d991b	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x3582978e	flush_kernel_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x3589c406	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x35a19f25	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35ab4dcd	snd_card_file_remove
+EXPORT_SYMBOL	 vmlinux 0x35b7a1e0	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x35ea78f5	atomic_io_modify_relaxed
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x36120f20	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x3612c10f	tmio_core_mmc_enable
+EXPORT_SYMBOL	 vmlinux 0x36227459	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x36275b3f	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x362bcd75	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0x36588e6a	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365c012b	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x36749ffe	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x3682fd78	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x36875f29	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x36945ec1	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x369a2bcb	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x36a583eb	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x36bb25ab	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x36bbfc64	can_nice
+EXPORT_SYMBOL	 vmlinux 0x36cb9106	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x36d69557	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x36ddc691	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x36ea7869	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x37174a41	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x37223438	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x374b47eb	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37578e72	init_task
+EXPORT_SYMBOL	 vmlinux 0x377b2da7	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x378b1bf4	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 vmlinux 0x37a2382d	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37ce04a7	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37f614b7	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x3842b3a6	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x3849ea03	snd_ctl_new1
+EXPORT_SYMBOL	 vmlinux 0x386d7bc3	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x386d9ce9	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x386dd261	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x3873db75	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x38862bec	km_report
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x3898f1dc	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x389acf0c	gpmc_configure
+EXPORT_SYMBOL	 vmlinux 0x389ecf9e	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38ae7264	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x38bab7e4	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x38dfbe69	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x38e37114	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x38e5388c	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x38ea287e	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x38f10e0e	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x3917b310	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x3936d18d	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x394e2fa8	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x39609317	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x39661034	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 vmlinux 0x39738f66	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3974d08e	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x398b015e	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x3992bc63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x39974172	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x39a12ca7	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x39a310c8	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x39a7e922	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 vmlinux 0x39c88fd5	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x39d3ce0a	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x39e18f19	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x39f87e56	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x3a1b5a66	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x3a29760f	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x3a2e4eaf	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x3a4e3562	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a6a9008	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x3a74a30e	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 vmlinux 0x3aa593bf	snd_timer_continue
+EXPORT_SYMBOL	 vmlinux 0x3ab7996d	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ac5c545	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x3ac81005	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x3ad6fd8e	krait_get_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0x3ad7fb4c	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x3ae7838e	may_umount
+EXPORT_SYMBOL	 vmlinux 0x3af5990c	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x3b0120a3	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x3b11687f	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x3b1c622f	sk_free
+EXPORT_SYMBOL	 vmlinux 0x3b1f9672	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x3b299067	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x3b52db42	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x3b56d301	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b697738	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x3b7b8af2	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x3b7d341d	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x3b8304f6	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x3b883932	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x3b917bbf	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x3ba91e7c	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x3bb448ad	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL	 vmlinux 0x3bbf79f8	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x3bc4c986	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3bdf590e	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c108131	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c2c5b22	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x3c3b5d0d	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c514d61	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x3c56dedf	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x3c63f540	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c80e2ff	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x3c8b91d4	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x3c8fa52b	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x3c94944b	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x3ca15ac0	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x3ca47c7a	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x3cc3d823	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x3cdf0a9e	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x3ce2539f	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3d039c7a	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x3d1fd114	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0x3d2ace8a	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0x3d364ab0	ihold
+EXPORT_SYMBOL	 vmlinux 0x3d393528	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL	 vmlinux 0x3d52fb7f	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d6f342f	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x3d79ebc7	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x3d87a01b	register_sound_special_device
+EXPORT_SYMBOL	 vmlinux 0x3d89abce	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x3d8a738e	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x3db2e0b5	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x3db7d05f	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dcf1ffa	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3dd878a0	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x3df57805	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x3df5e784	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x3df9c4e8	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e2a2730	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e50cbc9	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x3e7f9e29	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9f70a8	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x3ea52d8e	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x3ebb585b	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x3ec81291	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x3eceadcd	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x3ed104a5	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3eff5a96	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x3efff2af	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x3f301b5a	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x3f3462ad	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x3f3a6da2	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f460e8d	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x3f4af46f	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f62d048	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x3f69904e	snd_dma_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x3f6dbe54	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x3f8074d8	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x3f83cd02	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x3f88c8ae	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3fa2cebe	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x3fb8411f	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fea538c	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3fee5dae	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x3ff60dcf	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x400988e8	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x400f9af8	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x403a93e7	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x403d3241	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0x4074653a	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x407a3275	omap_start_dma
+EXPORT_SYMBOL	 vmlinux 0x40866e4a	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x409641a5	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409c68ce	read_code
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b51c05	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x40bf8f66	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40cee83a	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d402ad	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL	 vmlinux 0x40f92dff	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x40fb8c84	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x41077546	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x4109804f	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x411605db	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x41376e02	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x4139f635	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x413b4179	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x4141005d	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x4144a881	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414975dd	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x414db654	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x417088b4	snd_card_disconnect
+EXPORT_SYMBOL	 vmlinux 0x4176f873	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x41871ada	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418a5367	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x4191e002	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x419b6c90	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x41a023cd	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0x41b78139	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x41bb84fc	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x41c4a610	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x41eb427c	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x41fea3b2	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x42042b32	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x4206d844	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x421170dc	mtd_concat_create
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x421a8e3d	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424ea0cd	snd_register_device
+EXPORT_SYMBOL	 vmlinux 0x4253aa7e	down_write
+EXPORT_SYMBOL	 vmlinux 0x42604384	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x4267c10e	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x427698f8	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x427b1ef2	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x42814992	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x42823e55	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x4283e717	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x4288c317	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 vmlinux 0x429754a5	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x4298b775	v7_flush_kern_cache_all
+EXPORT_SYMBOL	 vmlinux 0x42be76ee	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x42c0336f	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x42cb2467	igrab
+EXPORT_SYMBOL	 vmlinux 0x42d6945b	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x42e50b3e	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x42e81a93	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x42ee994c	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43260481	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x43274e04	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x4354d149	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x4364ae82	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x43655efd	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x4376c530	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4384eb42	__release_region
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43867e0e	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x439d8d51	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x43a94cc7	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x43bd2c1d	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43fb5332	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x4403bbd0	imx_sc_misc_set_control
+EXPORT_SYMBOL	 vmlinux 0x4405d05c	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x4413cb62	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x442495c9	tmio_core_mmc_resume
+EXPORT_SYMBOL	 vmlinux 0x44270ee2	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x44279217	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x44299d26	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x4431d7e0	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x443b94d8	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x444cc8ed	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0x445de455	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL	 vmlinux 0x44654f82	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x447155ad	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x448cc9d8	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x448e306f	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x44befb64	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x44c48306	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x44c7cec3	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x44c9dc6c	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0x44cd870b	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x44d32722	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x44d5f6e3	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x44e5c482	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44f43720	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450d9a35	cmd_db_read_slave_id
+EXPORT_SYMBOL	 vmlinux 0x4515f743	f_setown
+EXPORT_SYMBOL	 vmlinux 0x4520de2f	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x45526685	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x45595597	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x455b6049	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x455bc863	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x4562a134	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x457cd27d	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x4590e1c2	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x45a753b7	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x45b42ffe	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x45b65b2c	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x45bda0d5	system_serial_low
+EXPORT_SYMBOL	 vmlinux 0x45e9103a	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x45ee9a72	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x45f44796	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x462ef0f5	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x4636e9d2	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x4642f786	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x46745c22	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x467de54d	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x468ce418	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x469b7f34	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x46b35ff5	cpu_user
+EXPORT_SYMBOL	 vmlinux 0x46b38a70	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x46bfd55f	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x46bfe1b0	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x46d01373	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x46d1cf4b	nla_put
+EXPORT_SYMBOL	 vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL	 vmlinux 0x46d462c1	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x46f2e5be	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x4702f3a0	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x4704f617	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x472f91a2	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x47324d65	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x4745066a	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x474e4120	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x475452f4	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x4756260d	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x475d84ef	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x477ae47d	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x477bccd1	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x477ecf1d	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x478ca1cb	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x478d9b84	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0x479137ca	imx_scu_irq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47c0475d	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x47c44c52	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47d1e5d7	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x47d8bbd5	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x47e70229	v7_flush_user_cache_range
+EXPORT_SYMBOL	 vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL	 vmlinux 0x47ff8ac4	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x480c2d4f	snd_component_add
+EXPORT_SYMBOL	 vmlinux 0x482fb239	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x483c84b9	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x485d618f	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x4878b854	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x4899adf1	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x48a5b067	__machine_arch_type
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b06465	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x48b1ae27	tegra_io_pad_power_enable
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48bb80db	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x48c4c748	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x48cb057c	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x48cf1ea0	of_iomap
+EXPORT_SYMBOL	 vmlinux 0x48ddc14a	inet_accept
+EXPORT_SYMBOL	 vmlinux 0x48eb87f2	kunmap
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x49046f43	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x4919adc2	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x4924835f	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x4943afb9	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x4979f5b7	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x498cd717	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x49970de8	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x49b54bb8	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x49c4cd11	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x49d3457a	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x49f26466	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x49f836c6	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x4a157860	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 vmlinux 0x4a39e5a1	omap_set_dma_src_params
+EXPORT_SYMBOL	 vmlinux 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 vmlinux 0x4a4646f7	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x4a5bdb31	proto_register
+EXPORT_SYMBOL	 vmlinux 0x4a7b1a4e	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x4a7bdb9b	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9bab9e	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x4aa2d9da	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x4ade8b2e	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x4ae8ee66	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x4aeec132	of_node_put
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b0790a8	snd_pcm_set_ops
+EXPORT_SYMBOL	 vmlinux 0x4b10ae3e	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x4b1ec3e2	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x4b20bcc9	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x4b2511d0	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x4b473ec6	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4b4b638e	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x4b4ff5a4	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x4b547ab6	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b66811d	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x4b935194	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0x4b995863	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x4b9a48ce	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x4b9f9fc0	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x4baabe75	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x4bab4cb6	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x4bacae56	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bb76d5a	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x4bc8013e	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x4bd71895	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x4be85a03	memweight
+EXPORT_SYMBOL	 vmlinux 0x4beda549	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bfc5fb4	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x4bfdcefa	__memset32
+EXPORT_SYMBOL	 vmlinux 0x4bff781b	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x4c000b4b	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x4c0c1c04	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x4c0eced1	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x4c1cca3b	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x4c2ae700	strnstr
+EXPORT_SYMBOL	 vmlinux 0x4c33f103	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c4921e4	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x4c4b730a	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x4c944c04	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x4c9680aa	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x4cb3e7d9	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cbaa7d0	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x4cc2854d	tegra114_clock_assert_dfll_dvco_reset
+EXPORT_SYMBOL	 vmlinux 0x4cca22a8	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x4cd1c81e	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x4cf1c90e	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x4d0038ea	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d1fdadc	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x4d374831	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x4d4b9ed7	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x4d514485	xa_store
+EXPORT_SYMBOL	 vmlinux 0x4d633c89	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x4d634803	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9b6d35	snd_pcm_format_size
+EXPORT_SYMBOL	 vmlinux 0x4da46af3	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x4db747ce	cqhci_irq
+EXPORT_SYMBOL	 vmlinux 0x4dbb5680	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x4dcb822c	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x4de65785	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4df64673	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x4e05bdec	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e394c7b	snd_ctl_find_id
+EXPORT_SYMBOL	 vmlinux 0x4e4395c4	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4e506013	omap_dma_link_lch
+EXPORT_SYMBOL	 vmlinux 0x4e5fe89c	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e727383	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x4e727ee9	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x4e7b728e	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x4e942dc0	snd_info_free_entry
+EXPORT_SYMBOL	 vmlinux 0x4eadd03c	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x4ebc1e7e	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0x4ec43101	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x4ec4f3a2	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0x4ee0e846	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x4ee3c52b	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x4ee98ebd	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x4ee9fa22	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x4ef28304	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x4f053149	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x4f13b3ef	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f22d6f9	completion_done
+EXPORT_SYMBOL	 vmlinux 0x4f2a9fa9	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x4f2d1ccf	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x4f3a43a6	snd_jack_new
+EXPORT_SYMBOL	 vmlinux 0x4f3dca15	seq_release
+EXPORT_SYMBOL	 vmlinux 0x4f6c42ac	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4f6e735e	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 vmlinux 0x4f89c9de	gpmc_cs_free
+EXPORT_SYMBOL	 vmlinux 0x4fa417ce	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4fad982e	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x4fb79c33	snd_device_free
+EXPORT_SYMBOL	 vmlinux 0x4fc858d3	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x4fc8f90c	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x4fd14d09	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x4fea5523	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x4ffb895f	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x50018a5d	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x50065b24	processor
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x50195136	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x5025d759	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x502b6647	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x5033e1fc	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 vmlinux 0x504ab7c6	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x505010df	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x5052f31c	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x505a8c71	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x505dae72	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x507a4a4b	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50af41ef	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b7fef4	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d71bcf	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x50e2ed49	dev_close
+EXPORT_SYMBOL	 vmlinux 0x50e87905	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50fc3f1f	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x50fd6103	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x5118cf07	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x511db825	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x51219f0a	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x5129a46e	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x5130f25a	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x513c5ebf	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x5144efd6	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x514a62ec	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x514cc273	arm_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x517018a2	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0x51a4d254	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x51b49267	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x51ecdc14	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x51f01723	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x51fc3604	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x51ffdee3	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x5203d176	cmd_db_ready
+EXPORT_SYMBOL	 vmlinux 0x52050515	dst_init
+EXPORT_SYMBOL	 vmlinux 0x521fa319	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x522d2554	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x523e57aa	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x5245c680	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x525b7a42	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x525dc084	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x52887ce5	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x5288cd50	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x528c709d	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x5291cd21	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x52983d73	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x52a6dbd7	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x52addb93	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x52aef952	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x52c3920d	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52dc81e9	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 vmlinux 0x52e66070	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x52f2850a	imx_sc_pm_cpu_start
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x5348e9af	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x536060af	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x53683d26	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x536f3f54	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x53942bc5	set_groups
+EXPORT_SYMBOL	 vmlinux 0x53a73efe	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x53ad0bfe	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x53c5f44d	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x53cded94	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x53e46104	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x53f6410c	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x53ff70e4	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x5408b5fb	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x5409af86	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x542a98fe	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x543bec07	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x543fefbf	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x5454ad0a	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x545855f4	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x545c9ad0	tegra_ivc_notified
+EXPORT_SYMBOL	 vmlinux 0x5475ce94	tegra_ivc_init
+EXPORT_SYMBOL	 vmlinux 0x548e269f	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x5490497c	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x5498b461	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x5499f34a	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54b12932	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x54b1d811	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x54b642f3	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x54c844c0	kmap_high
+EXPORT_SYMBOL	 vmlinux 0x54d09c76	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x54d134fe	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x54d78ccd	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x55315f2f	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55523b4b	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x55551df1	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x557fcfa7	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55933ea3	snd_ctl_notify
+EXPORT_SYMBOL	 vmlinux 0x559b966f	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x55a52f77	elm_decode_bch_error_page
+EXPORT_SYMBOL	 vmlinux 0x55aa73cf	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x55bb2d6e	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x55c9508f	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x55e1d7df	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e860ad	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x55f92e0e	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x561ca3f7	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x56386664	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x563952a3	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0x56395937	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x563fb018	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x56498087	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x56598936	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x5667a277	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f1f27	tegra_dfll_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569ea646	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x56a4858e	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x56a6fa56	single_release
+EXPORT_SYMBOL	 vmlinux 0x56b5005b	snd_card_set_id
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56c879f9	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x56d27a95	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x56ded816	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x56f19989	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x56f6b925	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x57131e9f	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x572016cd	nand_write_page_raw
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x57686e74	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x576f4e7f	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x5772631f	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x577e4a84	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x5783c0b2	register_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578fca01	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x57983579	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x57ad42b8	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x57ceedb1	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x57e5170c	qcom_scm_iommu_secure_ptbl_size
+EXPORT_SYMBOL	 vmlinux 0x57ff23f0	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x581318d0	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x581cde4e	up
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x58228e57	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5832f00a	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x583fc683	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x58516557	omap_set_dma_src_data_pack
+EXPORT_SYMBOL	 vmlinux 0x5855b740	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0x58609698	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x5863e267	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x58714c78	snd_timer_global_new
+EXPORT_SYMBOL	 vmlinux 0x587f50d9	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x5880b6c9	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x5887ae10	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58972fcb	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x5899731c	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x58a4a3b5	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58ef11f1	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x58f90fa2	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x58fad869	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5903e6d6	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x5917916f	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x5922fea9	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x592b5bd9	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x593777ec	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL	 vmlinux 0x59546536	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x5969b2fb	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x596c0256	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x59a17bfc	tegra114_clock_tune_cpu_trimmers_high
+EXPORT_SYMBOL	 vmlinux 0x59b1d17c	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x59b7cab6	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x59ca5d0f	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x59d29dab	v7_flush_kern_dcache_area
+EXPORT_SYMBOL	 vmlinux 0x59d92a1f	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL	 vmlinux 0x59e50bb1	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x59e8072d	build_skb
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a14de15	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x5a1735d3	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x5a2eed7a	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x5a2f7c63	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x5a3d0ae8	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x5a3d648f	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a586d1d	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0x5a64a029	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x5a695199	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x5a74ef13	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x5a8f95a1	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x5aa19af8	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x5aa33cde	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x5aadb0c0	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x5ac9f2bf	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x5ad6cbda	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x5add7e97	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x5aeeba96	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x5b04be5a	disable_fiq
+EXPORT_SYMBOL	 vmlinux 0x5b062284	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b17edb0	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b44e77b	seq_write
+EXPORT_SYMBOL	 vmlinux 0x5b7e50b6	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x5b806338	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x5badbb78	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5bbd4bfd	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x5bbe49f4	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x5bdc4318	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bead3a8	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x5bf6b25e	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x5bfb2404	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x5c03cd17	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x5c05fe5f	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x5c12d4b4	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x5c12dad4	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x5c1a0b09	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x5c1e0fad	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x5c225813	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x5c27b672	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x5c2eb058	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x5c2fe6a6	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x5c3e718c	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c716976	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5c7f1284	int_sqrt64
+EXPORT_SYMBOL	 vmlinux 0x5c82ce37	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x5c82d9f1	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x5c912b51	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL	 vmlinux 0x5c989926	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x5c99c6f5	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x5cb57fe1	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x5cb77134	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x5cbd8e69	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x5cd32c03	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x5cd841b4	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x5ce88988	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0x5ce9a942	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d0728d2	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x5d0a1ccf	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x5d1442b1	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x5d15104e	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x5d233b35	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x5d249d9d	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5d2fb355	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x5d357841	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x5d375b84	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0x5d37d658	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x5d46563e	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d736493	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x5d810f97	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d8d5919	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x5d9bb609	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x5d9e5bc0	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x5da22b8e	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x5dacfb94	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x5dae8bb2	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x5daee92d	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x5db77deb	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x5db7a668	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x5db88539	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x5db9c33a	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x5dba71d7	sg_last
+EXPORT_SYMBOL	 vmlinux 0x5dc1c3c2	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x5dcf6341	outer_cache
+EXPORT_SYMBOL	 vmlinux 0x5dd980fe	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x5de5cca2	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x5de5d51b	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x5deacb31	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x5e0a6a5b	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x5e1136a5	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x5e19097f	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e38c830	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0x5e4b4e7d	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x5e4b8b88	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x5e4cba40	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x5e6f91f9	tegra_powergate_remove_clamping
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e7e7081	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x5e7f2c4a	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 vmlinux 0x5e8217cb	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x5e866d85	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0x5e9595dd	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5eacc1c5	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x5eaec564	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x5eaff773	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ebd1ece	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed05bf6	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ee27e7e	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f09c5f9	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x5f18d24f	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x5f454e26	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x5f6e6118	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL	 vmlinux 0x5f78a715	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 vmlinux 0x5f7e45ce	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x5f7ff900	snd_jack_set_parent
+EXPORT_SYMBOL	 vmlinux 0x5f849a69	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5f8ae3b1	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x5f8ebed8	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0x5fb01358	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fb45f1c	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x5fc9f1d3	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x5fe6f1d9	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0x5ff11cc3	pcibios_min_io
+EXPORT_SYMBOL	 vmlinux 0x5ff66dee	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x600443cf	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x60162f1f	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602af9d9	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL	 vmlinux 0x603286b8	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x60445077	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x605006ae	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x60601b6a	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x606204a6	snd_pcm_release_substream
+EXPORT_SYMBOL	 vmlinux 0x60766e6a	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609ca86c	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60baae45	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x60bffe6d	div64_u64
+EXPORT_SYMBOL	 vmlinux 0x60ccb872	bio_split
+EXPORT_SYMBOL	 vmlinux 0x60cf5873	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60eb0c0e	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x60f73d1b	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x60f8d646	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x610197f0	update_region
+EXPORT_SYMBOL	 vmlinux 0x61164938	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x6121bd54	dql_init
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x6141786f	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x6156c7f4	net_dim
+EXPORT_SYMBOL	 vmlinux 0x61582cdd	of_match_device
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x6160720b	misc_register
+EXPORT_SYMBOL	 vmlinux 0x616a58b1	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x616dfbef	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x61b179cb	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x61b50729	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x61b51bc1	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x61b76bb9	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c76b3a	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x61d64518	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x61e5e04a	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61f01fce	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x61f44788	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x61f491a8	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x6207fd8f	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x620d5f1e	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x620de549	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6233389c	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x6233b13a	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x625ac111	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627b3d85	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x627d4340	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x627e2f99	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x628f8b73	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x62a04c8d	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c2d20a	nand_bch_init
+EXPORT_SYMBOL	 vmlinux 0x63060917	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x630f2cb8	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x63231d35	omap_get_dma_src_pos
+EXPORT_SYMBOL	 vmlinux 0x6325fe83	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x6327d02d	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x63359823	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6342f99f	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x63445456	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x6361a625	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63b75fa3	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c98d31	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x63cf2126	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63f744ad	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x640ce3cc	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64412a2d	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x644c2596	kmap
+EXPORT_SYMBOL	 vmlinux 0x64712b9f	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x647af474	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648c1ffa	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64c50b49	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x64c9f180	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x65167d86	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x65168ad7	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x6533afe6	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x6535cbaf	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x6550dc69	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6573077d	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x65774ad4	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x6578533e	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x657fd1c7	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x6586d9da	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659d7d32	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a7af59	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x65ad3395	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0x65b9e6ec	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x65c0d541	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x65c938ae	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x65d2e736	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x65d411e9	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65ebec8e	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x661878d9	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x6618d2da	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x661f9016	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x66206efb	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x662467cb	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0x662b6182	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 vmlinux 0x663b491c	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x66474aa4	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x66575995	d_move
+EXPORT_SYMBOL	 vmlinux 0x66657274	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0x666fe375	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x6674bd14	omap_vrfb_request_ctx
+EXPORT_SYMBOL	 vmlinux 0x667ce71d	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x668166bd	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x668eab47	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x6698d6e5	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x66b428d3	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0x66babcd4	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x66d722c2	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x66d73152	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0x66dece44	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66e4ce0f	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x66e9c280	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x66ef3388	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x66fef6fb	ac97_bus_type
+EXPORT_SYMBOL	 vmlinux 0x67057f39	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x67092819	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x6714a824	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x671af219	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x67332eb7	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x673ba3cf	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6757974d	snd_pcm_suspend_all
+EXPORT_SYMBOL	 vmlinux 0x67607663	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL	 vmlinux 0x67732054	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x6777da71	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x677abe84	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 vmlinux 0x677eba81	module_put
+EXPORT_SYMBOL	 vmlinux 0x6782d34a	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x678a0407	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67ff0df1	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x6808c968	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x680c606a	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x681b1ac2	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x6834caa4	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x68674678	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x688b7619	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x688fa33c	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x68913891	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68e7be7d	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x68ec309a	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x68fb581a	icst307_idx2s
+EXPORT_SYMBOL	 vmlinux 0x69096e97	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x690dbf42	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x690fd817	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x69437a80	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x696496fc	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x696795d4	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x696b13a1	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x697f57e3	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x698c2734	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x699ee56f	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x69a10918	snd_device_register
+EXPORT_SYMBOL	 vmlinux 0x69a3a283	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b6f8d9	omap_set_dma_transfer_params
+EXPORT_SYMBOL	 vmlinux 0x69ba52c5	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x69ce42d8	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x69dcb963	path_put
+EXPORT_SYMBOL	 vmlinux 0x69dd6541	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69e51d08	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x69e7c42d	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x69edc145	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a06fe13	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6a09eb32	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x6a0ce89e	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0x6a124832	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x6a1d8f50	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x6a29642e	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x6a3366df	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x6a4bbc36	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x6a51552b	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a658729	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x6a7c8414	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x6a837a1c	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x6a91ce5d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x6a9b85c5	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x6aa35fcf	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x6aae75ff	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6af7b21a	packing
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b322fbd	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x6b378045	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x6b3a83e2	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x6b3ab66a	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x6b50097f	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5d5173	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x6b604710	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x6b83b12a	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8b7f25	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6bac0f4d	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bcc4ae5	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x6bd10b86	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x6bf3f36f	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x6bffbe39	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x6c0a1f54	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c2acee1	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x6c4b9d89	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x6c5fe929	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c810e42	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x6c8e2e36	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x6caf9923	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cc50942	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x6cc8fe4e	get_acl
+EXPORT_SYMBOL	 vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6ce47f8f	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x6ce7adce	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d17b169	nand_read_page_raw
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d30b1f2	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d3a358d	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x6d4ca2f1	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x6d564985	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL	 vmlinux 0x6d664568	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6d682b1d	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x6d6f56d1	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x6d89b199	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x6d8a8667	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x6da4ac48	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x6dca4a26	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6de3e735	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e1f708e	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x6e21cfdd	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x6e27005f	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x6e336379	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x6e4e7714	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x6e552982	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x6e5752c0	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x6e62cd9a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e931ced	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ec771ec	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6ecdb792	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x6ed89c35	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee1b78f	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x6ee45dc7	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x6ef117ef	snd_jack_report
+EXPORT_SYMBOL	 vmlinux 0x6ef16b04	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 vmlinux 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 vmlinux 0x6f013ecd	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x6f078ed4	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x6f0f8c26	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0x6f126987	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0x6f745f7e	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f909e10	mem_map
+EXPORT_SYMBOL	 vmlinux 0x6fa4089e	snd_ctl_replace
+EXPORT_SYMBOL	 vmlinux 0x6fbe4717	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd2cbd9	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70016709	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x7046b2e6	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x7050c15e	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x70520368	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x705f7a66	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x706789d1	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x70703993	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7084d93d	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x708ad506	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x708c41a0	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x7098f8b6	kern_path
+EXPORT_SYMBOL	 vmlinux 0x70abed88	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x70bf8ff7	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x70f36755	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x70f7a86e	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x70ff10af	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x71037659	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x71167a38	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x711b8a9b	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x712110ab	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x71323fd5	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x716b58cb	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71aab4f8	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL	 vmlinux 0x71d384b1	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x71dfed8d	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x71e480a1	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x71f29e03	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x71f7de4f	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x71fd151d	proc_create
+EXPORT_SYMBOL	 vmlinux 0x7213199a	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x721c2b34	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x7222d104	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x72372ec2	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x7242daf8	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x7261e00c	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x72751179	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x72af01cb	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x72b7abf5	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x72b7f27f	snd_timer_notify
+EXPORT_SYMBOL	 vmlinux 0x72b89adf	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72bb44a9	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0x72bbd94f	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x72be5c33	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x72d0749b	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x72e3bedc	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x7317790e	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x7319c168	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x7321aece	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x7326446a	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x73376fce	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x734457c2	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x73514647	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735c0851	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x735f33b0	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73953862	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x73a9700c	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x73adcc82	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x73ba21b0	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x73d50654	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x73d56ac0	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x73fd5df9	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x740c1d74	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x740cfe71	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741d2d27	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742e8eee	snd_dma_free_pages
+EXPORT_SYMBOL	 vmlinux 0x7431db12	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x7433b894	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x7442ff6f	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x74519f98	drop_super
+EXPORT_SYMBOL	 vmlinux 0x745b42cb	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x747025cb	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x7472fdf6	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x7494e151	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x74a17d0c	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x74ae2728	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x74ae402c	elm_config
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74d642a8	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x74e46dac	imx_ssi_fiq_tx_buffer
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fa9cc6	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x74fcdebf	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x7512d098	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x7512f861	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x751ea0b6	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x754f348a	complete_all
+EXPORT_SYMBOL	 vmlinux 0x75527c88	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x755a2047	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x7567d381	__get_fiq_regs
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75bf768f	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x75c444d6	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x75c8746a	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75f976ed	snd_timer_global_register
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x762b8120	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x764951fc	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x76679e33	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x76699677	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x76734e9b	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x7677ac99	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x767e329c	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x769fbb60	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x76ad9183	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x76b30550	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x76b86a54	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x76bb25d7	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x76cadba9	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x76cd88d2	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x770b967e	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x773a7b77	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x773f0017	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x774677f5	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x77506a32	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x7758d9e6	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x775e9761	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x7788033f	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x778c0dbc	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7791193f	icst525_s2div
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77a684b0	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c27808	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x77cac850	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x77da5e38	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77ee0875	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x77f6c690	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x77f6f183	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x783b977a	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0x784fd69f	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x78598478	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x786980d5	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x78779c0b	set_fiq_handler
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x78863160	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x7895e091	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78b434dc	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x78c59de9	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x78cd0c86	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x78d54cbd	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e8e50f	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x78e96c78	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x78ed761f	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x790038f9	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x7907f096	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x790a2e39	kmap_to_page
+EXPORT_SYMBOL	 vmlinux 0x792a970a	skb_append
+EXPORT_SYMBOL	 vmlinux 0x792d8eea	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x7933010f	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x79413bb8	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x794765d1	mempool_free
+EXPORT_SYMBOL	 vmlinux 0x794979b8	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x794c663d	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x79648cca	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x79868d4f	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x79a1314b	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79c97454	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x79d77e03	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x79e45282	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x79f83d88	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0x79fa1deb	imx_ssi_fiq_rx_buffer
+EXPORT_SYMBOL	 vmlinux 0x79fc577f	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x7a091b57	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a3404a9	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x7a38c959	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x7a3a5e58	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x7a3e8a42	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x7a414347	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a611326	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x7a687b05	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x7a731230	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x7a782652	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x7a79b9f3	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7a7a412f	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x7a85988b	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x7a90e083	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab114bd	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x7ab5aac3	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ac338a2	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x7acb12ac	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad832dd	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x7ada1828	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ade9187	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x7aded2f7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x7ae5634c	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b10953f	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x7b1708fe	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x7b283ce3	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x7b2d63e9	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 vmlinux 0x7b2fb85d	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7b30f214	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x7b3bbcc4	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x7b3ea6ae	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x7b41ac79	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x7b496597	snd_ctl_find_numid
+EXPORT_SYMBOL	 vmlinux 0x7b513ca5	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x7b5c8440	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x7b640077	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x7b6a7fa8	padata_start
+EXPORT_SYMBOL	 vmlinux 0x7b6c50f8	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x7b7de306	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x7b819c03	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x7b82c2d3	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x7ba5a3b4	tegra_powergate_power_off
+EXPORT_SYMBOL	 vmlinux 0x7ba739f8	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x7bd196f5	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x7bda375d	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x7be50fae	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x7be5c116	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x7c090724	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x7c128557	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x7c14bdb1	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c26fd51	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c6cd0ad	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x7c89d5ab	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x7c8cea9e	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL	 vmlinux 0x7cc47f39	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x7ccae83f	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x7cdeeb4d	pgprot_user
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cf759cd	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d09596b	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d0ee3dc	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x7d110ce0	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x7d3019e0	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x7d36e7a7	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x7d474d41	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d4de891	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 vmlinux 0x7d63dab6	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x7d6c2636	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0x7d8492bc	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x7d85f513	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x7d8fea2f	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x7da28131	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dedf16f	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7e0c75c5	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x7e0ce0c3	up_write
+EXPORT_SYMBOL	 vmlinux 0x7e18d522	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x7e19c632	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x7e1e750a	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x7e20fdc3	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x7e24a0fe	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x7e294b65	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e32e7c7	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x7e3916ee	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x7e3cfe6e	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x7e464b5f	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x7e46f5f6	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x7e61bc2b	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x7e66cd75	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x7e6e2eda	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x7e8d75ac	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x7eab0698	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x7eb1ae75	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0x7eb7793c	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x7ebab934	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x7ebce928	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x7ebfd866	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x7ee59355	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x7eec7240	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f0ddbc1	__module_get
+EXPORT_SYMBOL	 vmlinux 0x7f21d361	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f304b27	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7f3da03b	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x7f577f90	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x7f58eaea	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0x7f65eed5	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x7f72ad97	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x7f7abb5b	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f8754d7	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x7f89dbe4	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x7f9b4c41	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x7fad0fa3	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x7fb0149a	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x7fc475d6	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x7fcb9d2f	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x7fcd4b19	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x7fce778e	tegra_ivc_total_queue_size
+EXPORT_SYMBOL	 vmlinux 0x7fd42dab	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x7fde2edb	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe46c01	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x7feddf9d	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x7ff3b187	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x7ffc2542	input_event
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x800e4ffa	__muldi3
+EXPORT_SYMBOL	 vmlinux 0x801c5477	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x8031e4a8	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x8034c3cb	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x8039b3fd	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x8044e71a	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x805a04ef	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x808df3f9	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x80a15318	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x80b30ae3	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x80bd4e23	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x80bfba3b	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x80c4c319	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x80c5e953	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x80c9cb4b	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d52e6e	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x80d57eed	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80daefdb	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x80fc125a	snd_pcm_mmap_data
+EXPORT_SYMBOL	 vmlinux 0x8108ac7a	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x811def5f	dump_page
+EXPORT_SYMBOL	 vmlinux 0x8123e789	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x8141029c	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x814b3598	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x814c4125	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x8150ef6a	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x81800790	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x8183430b	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x819a1904	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 vmlinux 0x81ca8b74	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x81d9ed24	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81de0338	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82193a97	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x822137e2	arm_heavy_mb
+EXPORT_SYMBOL	 vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL	 vmlinux 0x82578c43	serio_open
+EXPORT_SYMBOL	 vmlinux 0x8264809e	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x8265b302	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0x82791350	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x827cfc24	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x82cf395f	dqget
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82e7910f	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x82f886a1	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x82fc5fd3	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x82fd634c	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8307c3cd	clk_get
+EXPORT_SYMBOL	 vmlinux 0x8317116f	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x8320bea8	__umodsi3
+EXPORT_SYMBOL	 vmlinux 0x8329a803	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x834e4a13	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x8351f2dc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x8359ae2e	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x8377fc0d	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x838b252c	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83947a6b	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x8398638f	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x839e9d18	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x83b1f8c2	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x83ba4bf3	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x83c45e57	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83cd0e6f	atomic_io_modify
+EXPORT_SYMBOL	 vmlinux 0x83cf366c	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x83d49998	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x83ed8026	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x83fcc07f	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x83fee6ce	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 vmlinux 0x840c99e5	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x8419791b	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x8428f9da	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x843a2a4c	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x8441c8cb	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x8445ab49	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x8451fdfe	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0x8456e9a7	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x845afb76	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x846c7bbb	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x8471ff29	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x84818f57	tegra_powergate_power_on
+EXPORT_SYMBOL	 vmlinux 0x84848520	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x84a14647	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL	 vmlinux 0x84b78100	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x84c05040	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x84c4cdcc	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x84cd9071	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x84d52082	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x84ea9632	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x850bae40	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x851059b9	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x8518f4f6	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x851ac7d7	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x8528d4ef	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x853628b7	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x853bbf52	follow_up
+EXPORT_SYMBOL	 vmlinux 0x854cf4ea	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x854fec83	tegra_sku_info
+EXPORT_SYMBOL	 vmlinux 0x8552834d	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x85565026	mntput
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8582ebff	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x858950e0	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x8598bc4d	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x85b24ea3	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85d87bd8	dev_load
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85ed34b7	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85f444f5	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x85f5f5ff	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x85f65b8b	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x85f77ef7	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fd359c	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x85fd4aa7	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x86032f09	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x862bc663	memset16
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863e40d0	_snd_ctl_add_slave
+EXPORT_SYMBOL	 vmlinux 0x86443ed9	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x8647e618	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x8666995b	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x866d97d6	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x866f0a71	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x866f6353	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x8671d1f6	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x868f6b5e	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x86a69264	send_sig
+EXPORT_SYMBOL	 vmlinux 0x86b3846b	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x86b66c33	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x86c5dcee	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x86c9d832	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x86e287c6	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x86e2fe60	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x86eb0c08	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x86f32c5c	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x86f8911a	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x87001f88	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x87041014	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x870d5a1c	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x87108483	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x87170496	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x8730ba96	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x8733a305	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x8744ffd3	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x8753a064	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x875a2187	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 vmlinux 0x8766a30c	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x87689a1c	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x879b21e7	of_root
+EXPORT_SYMBOL	 vmlinux 0x879d7a4f	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x87eca06e	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x87f347a1	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x87f3e516	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x87fcca53	seq_read
+EXPORT_SYMBOL	 vmlinux 0x881324d9	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x881a680f	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x8820a9f9	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x88267917	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x8860443e	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x886f210c	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0x887412d5	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88b19f45	system_serial
+EXPORT_SYMBOL	 vmlinux 0x88b469f4	omap_set_dma_callback
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88f9a125	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x890b64be	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 vmlinux 0x890de126	omap_vrfb_setup
+EXPORT_SYMBOL	 vmlinux 0x891eb019	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x893e789b	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x8951c9f7	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x895ced5c	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x896e2194	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x89b13c60	msm_pinctrl_probe
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89e43f8a	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x89ec599b	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x89f2f3ef	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x89f70a28	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x89ff7f03	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x8a0cd9bc	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a34653c	snd_card_register
+EXPORT_SYMBOL	 vmlinux 0x8a3784dc	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a3b1285	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL	 vmlinux 0x8a5412a3	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x8a587707	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x8a668901	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x8a6b807a	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x8a70b46e	snd_ctl_add
+EXPORT_SYMBOL	 vmlinux 0x8a70f9c2	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x8a7a7119	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a93d836	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8a9c472f	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x8aa2dd76	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x8aa30959	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x8aa48fca	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x8aa7b563	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x8ab9409b	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0x8ac00b9c	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x8ac136ae	imx_sc_misc_get_control
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8acd98bd	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x8ad2cb1e	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x8ad43495	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x8ae578a8	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x8ae5ddb2	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x8ae76650	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b15bca0	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0x8b3632d0	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x8b37f113	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x8b413b50	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x8b4eca73	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x8b5416c2	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b74eaf0	simple_link
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba01d3a	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x8ba0ecd4	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x8bae8917	snd_card_free_when_closed
+EXPORT_SYMBOL	 vmlinux 0x8bb3ffb0	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x8bbb014b	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x8bcc36e5	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x8be7792a	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x8bee75d7	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x8bf600cb	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x8c227a00	key_move
+EXPORT_SYMBOL	 vmlinux 0x8c2c9e90	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x8c36fc16	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x8c415ee5	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8c4773ff	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x8c569c3d	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x8c5d254a	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x8c6934bc	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x8c70e19e	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x8c739e06	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x8c79ca61	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x8c7ad697	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x8c83320e	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x8c841d7f	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x8c85b06b	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x8c8ae2cc	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8c8c286a	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x8c92b057	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x8ca0a6af	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x8ca10772	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x8ca2d3f1	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x8cb5677a	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x8cc64d4f	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x8cd263a6	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x8cd8c339	omap_free_dma
+EXPORT_SYMBOL	 vmlinux 0x8ce13cc5	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x8ce18716	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x8ce1c038	omap_enable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x8cfe93c3	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x8d4b7994	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5be5a3	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d7357f8	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x8d7e5a0e	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x8d980634	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x8dc0c007	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x8dd58282	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df27945	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfa0f6a	nla_append
+EXPORT_SYMBOL	 vmlinux 0x8dfed990	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x8dfefc0d	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x8e008755	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x8e0829fe	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x8e0d9545	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x8e116a88	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x8e3f91e2	sound_class
+EXPORT_SYMBOL	 vmlinux 0x8e638b6c	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x8e71ec02	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x8e81b611	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x8e865d3c	arm_delay_ops
+EXPORT_SYMBOL	 vmlinux 0x8e876807	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8e8f38ba	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x8e958fd0	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x8ea2b3d2	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x8eb4cdaf	snd_info_create_module_entry
+EXPORT_SYMBOL	 vmlinux 0x8eb54d90	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x8eb91260	follow_down
+EXPORT_SYMBOL	 vmlinux 0x8ec3b43e	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 vmlinux 0x8ecf6801	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x8edbfffb	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8ef582ee	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x8ef6b960	cqhci_deactivate
+EXPORT_SYMBOL	 vmlinux 0x8ef864c7	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f209100	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x8f2ea76d	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x8f31dd37	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x8f3625fe	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8f3c83e6	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x8f47c495	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x8f595b11	snd_major
+EXPORT_SYMBOL	 vmlinux 0x8f678b07	__stack_chk_guard
+EXPORT_SYMBOL	 vmlinux 0x8f686be9	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x8f907a7a	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fcbe36f	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x8fcfc07c	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fe35457	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x8fe4dc63	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x8fecca13	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x90031342	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x901549f2	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x902e8962	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x9046df9c	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x904a3416	override_creds
+EXPORT_SYMBOL	 vmlinux 0x904fbdd0	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x90609db6	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x906f5252	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x9082ebff	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x9087ab31	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x9093c384	tegra_ivc_read_advance
+EXPORT_SYMBOL	 vmlinux 0x90ae7c1f	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x90cecf0c	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x90ed6aaf	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x910c8586	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x91306da5	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x9150baa3	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x915207c1	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x91659371	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x9171643b	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x9171f022	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x918bdef4	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL	 vmlinux 0x919ac640	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x919bb009	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b3f43c	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x91be5f5f	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x91c0980e	icst_hz
+EXPORT_SYMBOL	 vmlinux 0x91d4597d	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x91f1cbc7	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x9203cf4c	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x921a5993	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x921b07b1	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x921f9f69	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x92356aa8	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923ea194	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x92556a00	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x9277f262	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x927e334b	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x928c3ac4	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x92a85e40	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x92ac99d2	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x92b6c8c3	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c19452	new_inode
+EXPORT_SYMBOL	 vmlinux 0x92cb5cf7	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x92e902de	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x93010057	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x93099a1b	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x930a20c5	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x9326a633	snd_timer_open
+EXPORT_SYMBOL	 vmlinux 0x9326ffec	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x934685e8	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x936e843b	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x93713086	sg_split
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x937ece7a	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93a99982	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93bdaa1f	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x93c2547d	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x93d95b3a	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x940806ba	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 vmlinux 0x94112319	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x941b6411	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x941df67b	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x94205154	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x9425caca	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x943dc8aa	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x9475ac01	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x9483c1b4	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x948f4880	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x94913980	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c43576	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x94e6bb52	snd_jack_set_key
+EXPORT_SYMBOL	 vmlinux 0x950c8215	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0x95143726	filp_close
+EXPORT_SYMBOL	 vmlinux 0x951e5abb	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x952b4909	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x95368d33	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x95531be4	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x955cc2a8	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95907655	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0x95936cd9	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x95d3d918	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x95dbe078	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95ddbfb7	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x95ec0f4c	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x95f82fc2	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x960e2b87	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x9630b2f0	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x963fb253	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x9652a9c9	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x96535d9f	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x96829d09	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x9687aac1	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x9698a272	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x97093116	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x9709dbc5	current_work
+EXPORT_SYMBOL	 vmlinux 0x97106714	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x97115639	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL	 vmlinux 0x972c05e5	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x9733ca9a	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x973bca9b	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x9759e685	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9768a48c	qcom_scm_get_version
+EXPORT_SYMBOL	 vmlinux 0x97704cd6	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x9781f5d9	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97967a3d	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97e2501f	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x97f3a8ce	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x97f8ea00	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x97f9a910	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x982ed875	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x983ac031	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x983e002d	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x984c8a7e	iunique
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x984e8e08	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x9854d359	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x9861e493	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x987c11c7	__pv_phys_pfn_offset
+EXPORT_SYMBOL	 vmlinux 0x98832da8	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x98891450	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x988a48ed	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x9897da1f	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x98a21b5a	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x98ab695e	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x98ae7a68	d_path
+EXPORT_SYMBOL	 vmlinux 0x98b206cf	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x98b59843	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98e06ead	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x99094fb2	qcom_scm_is_available
+EXPORT_SYMBOL	 vmlinux 0x9916b673	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x9922c3a6	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x99373b25	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993b03df	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9965061a	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x996829ea	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x997376ad	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x99836676	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99b3af7b	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x99bb8806	memmove
+EXPORT_SYMBOL	 vmlinux 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99d8cef8	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x99f3ef48	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x9a02c3aa	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x9a0312be	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a12d07b	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x9a1a848a	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x9a1b61e4	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a201ba9	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x9a29d2af	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x9a316575	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x9a4d9764	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a584f0e	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x9a5878fc	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x9a8318ef	v7_coherent_kern_range
+EXPORT_SYMBOL	 vmlinux 0x9a89a7a3	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x9a8b3b5e	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x9a8e1c12	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x9a8fcecb	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x9aa44384	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x9aa9cea4	trace_print_flags_seq_u64
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab5f818	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x9acb8066	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x9ae6cb3b	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0x9af2b240	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x9af3c3ba	d_drop
+EXPORT_SYMBOL	 vmlinux 0x9b0a601a	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x9b128a66	qcom_scm_set_remote_state
+EXPORT_SYMBOL	 vmlinux 0x9b1a241a	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x9b1b7306	xxh64
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b41873c	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b557834	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x9b5985f7	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x9b64ea71	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL	 vmlinux 0x9b831359	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x9b8d9160	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x9b901d34	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x9b9fd85d	free_task
+EXPORT_SYMBOL	 vmlinux 0x9bae9f2d	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x9bbda943	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x9bc4d8e4	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x9c18fdcc	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x9c19942f	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9c327250	arm_coherent_dma_ops
+EXPORT_SYMBOL	 vmlinux 0x9c34635b	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x9c572f65	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x9c5909d4	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x9c5b2bd3	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x9c7419dc	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9c7559ff	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x9c795851	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 vmlinux 0x9c9a3e0b	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb1ce6c	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9cea901c	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x9cf231ac	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x9cf2e793	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x9cf3f83c	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x9cf96753	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x9cfb5bd9	would_dump
+EXPORT_SYMBOL	 vmlinux 0x9cfec020	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x9d06ac33	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x9d071581	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d2d3562	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x9d398567	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x9d4b1629	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x9d5cd559	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0x9d5eb659	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d7be2ad	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x9d8ee5e5	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x9daa29c1	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x9dbe3a85	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x9dbf0b8e	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x9dc08a71	pgprot_kernel
+EXPORT_SYMBOL	 vmlinux 0x9dc1117f	serio_close
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dd1a3b8	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x9deb92c3	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x9dfa187f	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x9dfe828d	nvm_register
+EXPORT_SYMBOL	 vmlinux 0x9e07d524	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2a928d	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e60e4ef	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e6beb58	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 vmlinux 0x9e8bb481	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 vmlinux 0x9e9a9cb4	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9eae3965	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x9eb08d1f	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ecfc329	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x9ed358e9	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x9ed39a54	down_trylock
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9ee0d093	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x9efcdaa1	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x9f37f239	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x9f3de223	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f58c367	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x9f62c028	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x9f82098b	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x9f929ce0	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9f9bb03d	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x9faedcb9	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fb60f7d	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x9fc1d68b	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x9fc33858	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa01c65a8	save_stack_trace_tsk
+EXPORT_SYMBOL	 vmlinux 0xa03b23db	snd_timer_interrupt
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa0634154	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xa06adc77	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0xa06df9e1	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0xa07021d8	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa09911c9	km_query
+EXPORT_SYMBOL	 vmlinux 0xa09cbfc6	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xa0aae687	imx_ssi_fiq_end
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0aefe3e	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0dab4de	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f8bc9e	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xa0fabe49	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa12ca93e	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xa140e39a	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xa1431cc6	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0xa159a513	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xa15d0131	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xa17bd3fc	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xa1839690	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xa18a85da	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0xa1bac121	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xa1bacd91	qcom_scm_set_cold_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xa1bb34bb	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d131ed	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0xa1d9010b	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa20d1b22	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xa21d867e	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xa227f7e3	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xa228ccb2	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xa2387194	simple_open
+EXPORT_SYMBOL	 vmlinux 0xa24491bf	ida_free
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa251055a	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa2695305	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xa279545b	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0xa2817910	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa2887b4b	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2b06f6d	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xa2eb6442	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xa2fbb0c7	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xa32c38ff	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xa3380536	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0xa34192b7	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0xa35f6949	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xa36189f9	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0xa3785665	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0xa38878f8	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0xa39a08fa	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xa39e9fda	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa3a54979	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xa3a8fa4a	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xa3ac158f	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0xa3b144cc	snd_ctl_free_one
+EXPORT_SYMBOL	 vmlinux 0xa3b6e1b7	omap_vrfb_max_height
+EXPORT_SYMBOL	 vmlinux 0xa3c00c06	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xa3c10511	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0xa3c2a3d1	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xa3e5db2c	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xa3e814ff	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xa3eba33f	nand_bch_correct_data
+EXPORT_SYMBOL	 vmlinux 0xa4053c53	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xa407ea56	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0xa4137611	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xa43799a8	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xa448e8a2	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xa44e83c6	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xa44f99a7	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0xa4537d3b	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xa453a174	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xa4552208	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0xa45ffe94	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0xa4610bc6	omap_rev
+EXPORT_SYMBOL	 vmlinux 0xa4838941	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xa486c0df	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xa48e2b90	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0xa48f5b09	omap_dma_set_global_params
+EXPORT_SYMBOL	 vmlinux 0xa497383f	md_error
+EXPORT_SYMBOL	 vmlinux 0xa4b2ec93	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xa4b42c55	omap_set_dma_priority
+EXPORT_SYMBOL	 vmlinux 0xa4b7f2cc	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xa4d586fb	mtd_concat_destroy
+EXPORT_SYMBOL	 vmlinux 0xa4dea7fc	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xa4f0a23e	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xa4f21c44	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0xa51f483f	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xa525fb41	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0xa52e8a7e	snd_timer_close
+EXPORT_SYMBOL	 vmlinux 0xa544565d	consume_skb
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa55a13f3	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xa55e2e95	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0xa566de3c	snd_ctl_remove_id
+EXPORT_SYMBOL	 vmlinux 0xa5684076	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xa56fde1c	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xa5840110	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xa59052f0	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa5ac650c	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xa5b0375e	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0xa60623c9	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xa611871b	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0xa6126577	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa6306f03	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xa64e65c7	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0xa66ad94e	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa68613dd	get_jiffies_64
+EXPORT_SYMBOL	 vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa6997cf5	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xa6a1122f	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xa6a7a2ad	div_s64_rem
+EXPORT_SYMBOL	 vmlinux 0xa6acdada	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0xa6adb60f	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xa6bf5b46	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xa6bf6b9b	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xa6e05f53	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xa6f04e28	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0xa7090031	dump_align
+EXPORT_SYMBOL	 vmlinux 0xa7267fdd	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0xa72957cc	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0xa72c5b95	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xa739b7da	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xa73ee62b	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xa73f3090	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa775edf0	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa77e2dcd	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0xa77f6758	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xa79ee7a9	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xa7b3181c	up_read
+EXPORT_SYMBOL	 vmlinux 0xa7b7a969	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7ecdd6a	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7f3cdb3	tegra_ivc_write_advance
+EXPORT_SYMBOL	 vmlinux 0xa7f74773	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xa800bff6	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0xa8077347	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xa80aa63f	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xa80acb56	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa834d468	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0xa838cb8e	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xa841038a	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa8653f05	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xa880ee22	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xa896b3ee	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xa8a08caf	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8c75b1e	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8d2592b	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0xa8d63cc9	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xa8e8cbca	__bforget
+EXPORT_SYMBOL	 vmlinux 0xa8ec7d34	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0xa8ee65c1	omap_vrfb_adjust_size
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8f7f280	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xa900bd74	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xa90134ef	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xa90f3ed1	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xa910b947	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xa9235c68	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xa927856e	padata_free
+EXPORT_SYMBOL	 vmlinux 0xa92d3b2a	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xa964dd13	gpmc_cs_request
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa982bae1	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0xa992adbc	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xa9982da9	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xa99c4398	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0xa9a7432f	qcom_scm_pas_mem_setup
+EXPORT_SYMBOL	 vmlinux 0xa9b788ad	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xa9b8567c	snd_register_oss_device
+EXPORT_SYMBOL	 vmlinux 0xa9d0c7b3	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0xa9d81a15	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xa9e62409	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xa9ed62d2	tegra_fuse_readl
+EXPORT_SYMBOL	 vmlinux 0xaa0e96c1	snd_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xaa167864	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xaa2dbbfd	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xaa2eb306	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xaa3ab5f1	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xaa3ddf7d	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0xaa53a66b	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa98d46b	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0xaaa55139	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0xaac920e3	file_path
+EXPORT_SYMBOL	 vmlinux 0xaad057f4	__qdisc_calculate_pkt_len
+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 0xaaf86fd2	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xaafd9237	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab154084	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab370723	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab3bb6b8	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xab58aad8	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab66db18	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0xab691d1e	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL	 vmlinux 0xab6eaa50	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab7603e7	imx_ssi_fiq_start
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab80ab58	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xab8c6689	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xab8da3b3	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xab921434	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0xab93ab6c	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0xab9c8f2b	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabd22637	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xabd2bea6	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabfdbfd4	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xac0d1498	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac3ae43a	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xac3e99bf	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 vmlinux 0xac46a915	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xac485936	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac839219	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac889f8e	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xac8c24c5	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xac93a0ea	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xaca06912	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0xaca22adf	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb31ecf	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0xaccc903d	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xaccef9cc	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xace47dbc	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacfabedd	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xacfd7840	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xad01cd36	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0e6bd4	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xad1d6243	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0xad3c4266	__brelse
+EXPORT_SYMBOL	 vmlinux 0xad6bf668	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xad6e5a11	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0xad6f7144	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad77067a	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xadb11ea7	snd_timer_new
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadd22e70	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0xadeba263	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae041065	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xae139597	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xae255351	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae52b659	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xae568c77	snd_pcm_open_substream
+EXPORT_SYMBOL	 vmlinux 0xae8cc13d	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xae9849dd	__request_region
+EXPORT_SYMBOL	 vmlinux 0xaea85524	of_get_min_tck
+EXPORT_SYMBOL	 vmlinux 0xaeb09dc2	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xaeb465d5	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xaec38081	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xaec8e992	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0xaecd56de	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xaed88cab	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xaed945f9	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xaee14877	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0xaee95991	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xaeffd34a	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xaf0a2377	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xaf16f615	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xaf320ec5	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xaf362046	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf50e76d	elf_set_personality
+EXPORT_SYMBOL	 vmlinux 0xaf53a7aa	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0xaf546a5a	nand_scan_with_ids
+EXPORT_SYMBOL	 vmlinux 0xaf699d27	of_node_get
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf7ede38	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xaf7f2dd2	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xaf84865e	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0xaf8aa518	system_rev
+EXPORT_SYMBOL	 vmlinux 0xaf98ead9	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0xaf9a0a2a	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafae6e91	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xaff4502c	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xaff5866e	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb03e408e	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0xb0409b5a	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0xb048ab4e	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xb058b81e	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb067d010	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xb070f037	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xb073bd71	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xb08e969d	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0xb090961f	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a3c5d2	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xb0c0841c	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xb0c66ef3	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xb0d096d2	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0f8a1fb	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0xb10b6654	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xb10c0bd6	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb129e488	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb135f8a2	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0xb13b465a	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xb147a855	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb14facc9	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb19c8c22	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xb1ad28e0	__gnu_mcount_nc
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1ce6f6d	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0xb1d15814	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e273ab	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xb1ff4bd0	dqput
+EXPORT_SYMBOL	 vmlinux 0xb211cbb8	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xb216d331	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0xb218158c	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xb2198de0	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xb21af3b5	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0xb2220121	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb2389589	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0xb248522c	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xb249a391	omap_request_dma
+EXPORT_SYMBOL	 vmlinux 0xb252cf99	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0xb26afeb3	dst_release
+EXPORT_SYMBOL	 vmlinux 0xb286c477	qcom_scm_set_warm_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xb2894d28	kobject_init
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2c368eb	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0xb2c65d1a	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xb2d0053e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xb2d48a2e	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 vmlinux 0xb3066705	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb31dbbf9	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xb32728bb	qcom_scm_iommu_secure_ptbl_init
+EXPORT_SYMBOL	 vmlinux 0xb3454e75	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xb34c33f6	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xb34d8349	tegra_dfll_register
+EXPORT_SYMBOL	 vmlinux 0xb35e9e89	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0xb3652a70	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0xb3667805	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb367743c	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0xb367c984	mxc_set_irq_fiq
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb375dfc3	dquot_release
+EXPORT_SYMBOL	 vmlinux 0xb3952a42	default_llseek
+EXPORT_SYMBOL	 vmlinux 0xb3ace081	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0xb3b24014	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xb3b43e01	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3d6a5ab	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb3e89bce	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb404bd42	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb4286f93	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xb439323e	nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xb4485863	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0xb4519a8f	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0xb45f1642	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xb469f91a	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0xb476c8f4	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb478d4ec	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb494abed	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xb49bfab9	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a4921b	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xb4a984b2	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0xb4d5c293	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb513265e	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xb54bb576	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0xb561ac5b	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xb5694853	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb57ad8c1	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0xb57eaefb	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xb582b101	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xb582cc31	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb59deb42	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5c1f08a	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xb5d0bee0	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xb5d5026f	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xb5db24c2	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xb5ea3172	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0xb5f4a509	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb60a4365	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xb60f707f	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xb61c7480	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0xb62356c0	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xb626325d	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb62db8f7	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0xb62f451c	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xb638273c	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0xb63e1be1	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0xb63ed331	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xb64e72c5	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0xb654df48	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xb6564f70	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb676635d	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb698e2c8	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6b5e903	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xb6b6284e	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0xb6bb8022	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xb6cd2a16	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xb6e5fd6c	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0xb6fac1f8	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xb71e0a1c	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xb72ee467	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xb7362c90	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xb73903fa	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0xb7521f25	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0xb7593d8c	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb77f50e4	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xb78b0721	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb78e2050	qcom_scm_pas_init_image
+EXPORT_SYMBOL	 vmlinux 0xb799b774	open_exec
+EXPORT_SYMBOL	 vmlinux 0xb7a79bec	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xb7a9e4c2	ilookup
+EXPORT_SYMBOL	 vmlinux 0xb7add742	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0xb7b3c916	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0xb7c010d1	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7dce0b1	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xb7df0e97	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xb7f36343	d_add
+EXPORT_SYMBOL	 vmlinux 0xb7f6e62b	snd_pcm_stop
+EXPORT_SYMBOL	 vmlinux 0xb81ebee1	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xb82d50f1	skb_split
+EXPORT_SYMBOL	 vmlinux 0xb855ad82	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xb864b84b	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0xb8876d7b	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xb8959419	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a448a8	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xb8ae306e	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b25ae5	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xb8c66c45	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xb8c6ab74	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xb8fd8049	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xb9039fc9	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xb904507a	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb9137e3c	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0xb91e6e0f	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0xb91fa02a	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0xb92c8320	cqhci_init
+EXPORT_SYMBOL	 vmlinux 0xb92d2ff6	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0xb93aecc9	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0xb93e91f4	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0xb9433811	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb952bbfb	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xb95f98d6	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 vmlinux 0xb97af452	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xb9936b1a	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xb9a21d8e	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xb9a8f03b	omap_stop_dma
+EXPORT_SYMBOL	 vmlinux 0xb9acd3d9	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0xb9dc1376	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xb9dff014	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9fc381a	qcom_scm_hdcp_req
+EXPORT_SYMBOL	 vmlinux 0xba404d91	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba4ae097	enable_fiq
+EXPORT_SYMBOL	 vmlinux 0xba5f31a3	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0xba68e0cc	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0xba795ee0	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0xba87f61d	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 vmlinux 0xbaa7c8c5	krealloc
+EXPORT_SYMBOL	 vmlinux 0xbaaaf552	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0xbaae6ce4	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0xbaae71ac	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xbaaf2617	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xbaf434c2	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xbafc62a8	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb14eb31	bcmp
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb2ecf95	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb43cbe2	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0xbb4b24cd	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0xbb6df778	sg_nents
+EXPORT_SYMBOL	 vmlinux 0xbb72d4fe	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xbb885cef	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0xbb88c737	kunmap_high
+EXPORT_SYMBOL	 vmlinux 0xbb97bced	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xbb9a1764	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xbba4a38b	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xbbae1c15	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xbbb35383	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xbbbb004e	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xbbbf0d3b	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xbbca96dc	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0xbbcff9a4	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0xbbd4bd61	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xbbe930ad	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0xbc10dd97	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xbc2941a3	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xbc2f8f89	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xbc33d96c	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc3c98fd	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xbc51f100	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0xbc60b17e	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xbc760631	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xbc8299a2	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 vmlinux 0xbc8a9ec6	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xbc9516b7	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xbca1627e	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xbca5f5e0	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcf6efb4	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0xbcfeda01	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xbd1b3248	of_match_node
+EXPORT_SYMBOL	 vmlinux 0xbd3d68f4	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0xbd5046ae	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0xbd676640	phy_start
+EXPORT_SYMBOL	 vmlinux 0xbd79dbb8	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0xbd820297	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0xbd8555f8	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xbd8dd285	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xbde03b65	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0xbdf3870d	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xbe0e3cba	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0xbe3b2875	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe58206e	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe66b1de	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0xbe71cdfc	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xbe84f290	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xbeb2c4ba	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0xbeb90476	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xbee2f1e8	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xbee329a6	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xbeefb26f	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef49a9e	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0xbf0b8f37	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0xbf2badac	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xbf3d5c3f	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xbf4d4539	udp_table
+EXPORT_SYMBOL	 vmlinux 0xbf6ea387	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xbf705793	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xbf71dbcf	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xbf7347b2	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xbf75ea6c	tegra114_clock_tune_cpu_trimmers_low
+EXPORT_SYMBOL	 vmlinux 0xbf7e2eed	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0xbf823efb	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xbf90643c	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xbf94a867	mntget
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbf9e154a	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xbfa6bb3b	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xbfaedbc9	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xbfc38388	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xbfc64ee0	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xbfcbc0d2	stmp_reset_block
+EXPORT_SYMBOL	 vmlinux 0xbfcf3e46	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0xbfd95f45	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xbfdf7bc3	mempool_create
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff43f2e	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0xbffb11d6	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc0328c33	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xc05bf8ea	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xc05f1852	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0xc0658821	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a420cd	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xc0a6a8c5	omap_set_dma_dest_burst_mode
+EXPORT_SYMBOL	 vmlinux 0xc0a98385	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc0abc759	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0c05784	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xc0da0e99	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0xc0f43191	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xc0f9459e	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0xc0fb357a	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc104368b	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xc105931e	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0xc10abcb5	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xc112555a	d_delete
+EXPORT_SYMBOL	 vmlinux 0xc13a7ba6	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc15f4ed8	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16477a6	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1947470	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xc19a0235	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xc1c724ae	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xc1d26c14	fput
+EXPORT_SYMBOL	 vmlinux 0xc1d39b32	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1df7389	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xc1e2c742	tegra_io_rail_power_on
+EXPORT_SYMBOL	 vmlinux 0xc1e556cb	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc1ec7289	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xc1fc2423	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xc2059c64	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0xc241cea9	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc2699521	snd_ctl_rename_id
+EXPORT_SYMBOL	 vmlinux 0xc271c3be	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc2788947	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0xc279969a	omap_get_dma_dst_pos
+EXPORT_SYMBOL	 vmlinux 0xc27ab72d	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xc28ac385	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xc2a499a6	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xc2acc033	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xc2b1d4e1	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xc2cc931c	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xc2cf2dde	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0xc2d975c6	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0xc2dab9aa	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e913f3	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xc2ede9c5	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc3236f45	seq_path
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc358aaf8	snprintf
+EXPORT_SYMBOL	 vmlinux 0xc362986f	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xc37274ef	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xc3791ca7	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc392a06b	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xc39c995b	tso_start
+EXPORT_SYMBOL	 vmlinux 0xc39ea306	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xc3cfabcb	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xc3d907a8	migrate_page
+EXPORT_SYMBOL	 vmlinux 0xc3e570db	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xc3ee2f68	nand_create_bbt
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc427e066	omap_vrfb_min_phys_size
+EXPORT_SYMBOL	 vmlinux 0xc4443237	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0xc449ffb0	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xc4632093	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc4657dc8	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47a372e	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xc4a06a33	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xc4a68afa	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xc4be8d83	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xc4c05921	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0xc4f948dc	snd_unregister_oss_device
+EXPORT_SYMBOL	 vmlinux 0xc4fc2490	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc5020721	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0xc50235a4	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0xc50f7b84	omap_rtc_power_off_program
+EXPORT_SYMBOL	 vmlinux 0xc52da066	omap_set_dma_dest_params
+EXPORT_SYMBOL	 vmlinux 0xc5521b93	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0xc567c34d	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xc568d288	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xc56fdd65	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0xc57144cb	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0xc581500f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5b9d43f	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0xc5ee6c48	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63cf620	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc6998242	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xc69d3f20	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0xc6c49afc	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6d0ea1a	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xc6d5169c	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0xc6d67842	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xc6db3a3c	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xc6dd51e1	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc737a0c4	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0xc762fc9a	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0xc77ad7ff	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc78cf3fd	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7ad26ef	get_super
+EXPORT_SYMBOL	 vmlinux 0xc7b32c38	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xc7b3c3c2	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0xc7c0c604	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c1ee67	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7da4325	snd_seq_root
+EXPORT_SYMBOL	 vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL	 vmlinux 0xc7f69b52	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc82b8887	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xc8339e24	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xc83a53bd	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc853ffc6	filp_open
+EXPORT_SYMBOL	 vmlinux 0xc8699359	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87caaa3	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xc8807004	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b35c5b	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xc8b58a25	__memset64
+EXPORT_SYMBOL	 vmlinux 0xc8c8c921	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xc8e24b8f	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xc9036eed	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xc91cb6b4	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xc9422f77	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xc94d8e3b	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0xc959be28	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xc95df02a	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9b14631	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xc9b35a28	ppp_input
+EXPORT_SYMBOL	 vmlinux 0xc9cd8ff1	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0xc9d0fa40	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0xc9da2e7b	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0xc9da7b9e	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0xc9dcb1ae	msm_pinctrl_remove
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9f2a5b0	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xc9fc06f4	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xca0171bf	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca2743bc	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xca34b977	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0xca3ee13c	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca4c004a	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca751453	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0xca7fdd6b	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xca813ce6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xcaab0710	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xcabaf0e2	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xcac565bc	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0xcac7f0ba	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0xcaef8286	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf347df	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xcaf34a26	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xcafe072b	qcom_scm_io_writel
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb3a58e0	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb514c0f	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xcb5b6711	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xcb606eb9	xa_load
+EXPORT_SYMBOL	 vmlinux 0xcb633444	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xcb64fbfd	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xcb779705	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xcb8c753b	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba86f0c	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc70ea7	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd99bfc	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0xcbf1dbd0	utf8len
+EXPORT_SYMBOL	 vmlinux 0xcbfb7817	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xcbfc9105	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xcc0a2dba	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xcc0f8787	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0xcc22de5a	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc30f0f1	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0xcc3b00db	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0xcc3b2cc9	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc749947	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xcc757351	genl_notify
+EXPORT_SYMBOL	 vmlinux 0xcc8143b2	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0xcc8bb192	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xccb5b170	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xccb9cab7	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd00abbc	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcd15eb3d	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xcd22d0c5	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd30b95a	tmio_core_mmc_clk_div
+EXPORT_SYMBOL	 vmlinux 0xcd32ffdc	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL	 vmlinux 0xcd69dc05	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0xcd6a72ed	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xcd7dbbe8	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xcd83e3f6	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xcd966b06	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xcd9be965	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xcd9efddb	console_stop
+EXPORT_SYMBOL	 vmlinux 0xcda1e1a1	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xcdaa2c51	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xcdb34d04	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0xcdc04b2c	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xcdc19416	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdc7e1ae	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xcdd1b5cc	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcdd795fc	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xcddf4146	vga_get
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcdefc7d9	udp_prot
+EXPORT_SYMBOL	 vmlinux 0xcdf2467e	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0xce01a1be	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0xce0656df	kmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xce239ebe	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2d7326	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xce2f61c1	logfc
+EXPORT_SYMBOL	 vmlinux 0xce3ca308	copy_from_user_toio
+EXPORT_SYMBOL	 vmlinux 0xce4c6d96	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce563fbd	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce62914d	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce9e1980	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb052fb	bdget
+EXPORT_SYMBOL	 vmlinux 0xceb867c0	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0xced96832	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xcee47934	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcefebc8a	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf01f610	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf1d6c3e	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xcf25a7bc	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0xcf3128d7	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 vmlinux 0xcf3fac84	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xcf610730	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0xcf65a9a2	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0xcf7b7a71	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0xcf7e1d1d	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xcf86cdac	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xcf87935e	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xcf94816d	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfb9e0e3	ioremap_page
+EXPORT_SYMBOL	 vmlinux 0xcfc27891	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0xcfce4b5c	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xcfe08a0d	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0xcfff0a5c	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xd003a07d	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0xd017b578	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xd034ebce	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xd0402da3	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04c7414	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0xd04e68e9	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0xd04febe9	arm_elf_read_implies_exec
+EXPORT_SYMBOL	 vmlinux 0xd0595ad4	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0687197	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xd07128d3	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xd07f25e0	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xd08a0117	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b95850	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xd0eb3f59	udp_poll
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd10b843e	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xd1124867	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xd1192a7c	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd1474c32	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0xd1704543	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xd17da724	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd194e14d	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xd197e69a	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xd1abe064	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xd1b8c71a	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xd1d279ea	fget_raw
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1dbb569	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xd1e34670	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0xd1efc196	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xd2051916	qcom_scm_cpu_power_down
+EXPORT_SYMBOL	 vmlinux 0xd2061723	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 vmlinux 0xd2097780	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xd21121fc	iput
+EXPORT_SYMBOL	 vmlinux 0xd2378e3e	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0xd23db079	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xd23fb93b	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xd24cb631	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0xd24eb7b5	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xd251e906	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0xd25b0acd	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd2605444	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0xd265bbaa	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27c447f	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xd2871900	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xd2ae87c2	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0xd2bb12bc	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0xd2d4c536	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2df7b31	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xd2eb32b9	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0xd2f3bdfe	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd320a8de	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xd32d6c08	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd32e5046	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xd35956e7	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35f75a1	match_string
+EXPORT_SYMBOL	 vmlinux 0xd361cba4	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd393d005	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0xd39fa6ab	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xd39ff89d	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0xd3a28671	snd_card_free
+EXPORT_SYMBOL	 vmlinux 0xd3b5b480	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0xd3bcc709	tegra_ivc_cleanup
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3ef1fbf	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xd3f1848b	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0xd3fc2eb7	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xd404020b	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd41dde59	bdgrab
+EXPORT_SYMBOL	 vmlinux 0xd433ceb7	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xd43cdeef	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0xd44cfd7f	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0xd451aa07	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xd462f1ae	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xd463ae64	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xd46b54dd	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xd47e23d1	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 vmlinux 0xd481c401	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48fdeef	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a3cd6e	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xd4a5bde4	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xd4ac9426	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0xd4b72a71	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4c01758	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xd4db96ad	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0xd4e2f0e4	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0xd4f4e478	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xd5232fcf	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52d7bb5	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xd53b6210	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xd53cf507	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xd5413ebf	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xd544f0e6	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xd549805b	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xd57d61c0	find_vma
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5bb2918	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0xd5c67e1f	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xd5f52d4f	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xd5f731ab	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xd5fcf47e	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd61fd0bd	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xd622708e	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0xd627480b	strncat
+EXPORT_SYMBOL	 vmlinux 0xd627e1af	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xd63b0453	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xd63e1d93	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xd63fafc2	div64_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xd6455423	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xd64d2a5b	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0xd6502027	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xd6582ab0	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xd6680ce4	contig_page_data
+EXPORT_SYMBOL	 vmlinux 0xd668e0f9	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd6693145	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xd6702453	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd69a6e4f	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xd6a51548	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6bc04ff	cmd_db_read_aux_data
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6e2c7bb	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70a6e14	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xd70bc580	nand_write_oob_std
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd743d9d2	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xd7491cc9	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 vmlinux 0xd751816e	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0xd757a3c6	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xd75b3baf	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xd7829918	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xd78396ec	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xd785e9cc	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xd78f5e2c	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xd797b9a5	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0xd79bdf2c	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xd7cad48b	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xd7ce549e	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xd7d23934	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7ed84ab	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xd81a7fa9	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xd824560d	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xd82a4dc0	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xd82c77d0	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0xd82f0f3f	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0xd833e8df	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xd83dc5e6	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xd8402859	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0xd8410611	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xd84cb516	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xd84cb72d	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd860755b	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xd875584a	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xd89ee11f	krait_set_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8d7fc58	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xd8d8be8f	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xd8da7ae0	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0xd8eb9dfa	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xd8ee94e8	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xd92e7a2a	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0xd93505cd	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xd9373d6c	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xd955d2b7	omap_set_dma_dest_data_pack
+EXPORT_SYMBOL	 vmlinux 0xd9595e15	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0xd9599854	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xd960237d	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xd96ee297	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xd9844531	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9890c7f	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xd98e1590	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd995f4e6	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xd99b3751	pps_event
+EXPORT_SYMBOL	 vmlinux 0xd99d7e9b	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0xd9ac926e	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd9af23b1	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xd9b86597	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL	 vmlinux 0xd9d1992e	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd9d286d7	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9ff9bac	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0xda0cf898	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xda142df0	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0xda1e79f6	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xda23c3d0	nand_read_oob_std
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda3e2f39	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xda52ac7b	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xda5bfc2b	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xda5dfb9d	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xda6fc0b3	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda7d2aa7	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0xda7e2175	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda9a24ab	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xdaa5643e	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xdaa98d3c	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xdaadf58c	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xdab3495e	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdacd814a	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0xdad5e2b7	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xdad97f94	__raw_writesw
+EXPORT_SYMBOL	 vmlinux 0xdaf1f7d1	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb01d2c7	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xdb03a2ab	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xdb13eec6	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0xdb2dec20	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0xdb3370c9	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xdb39c2cb	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0xdb39d825	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb3a829e	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xdb3dbe40	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0xdb3f9d96	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0xdb4292e4	omap_set_dma_params
+EXPORT_SYMBOL	 vmlinux 0xdb63ffe0	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb68d097	release_sock
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb81e2fc	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xdb8c4e94	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xdb904025	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0xdb93e196	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xdb9ca3c5	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdba99713	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0xdbaae4ad	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xdbcbc206	param_set_long
+EXPORT_SYMBOL	 vmlinux 0xdbde376f	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0xdbecfa5e	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xdc01a431	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xdc025263	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xdc0bbea7	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc1a7168	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xdc30098f	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc430db2	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5c7961	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xdc5f2d37	fs_parse
+EXPORT_SYMBOL	 vmlinux 0xdc705979	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xdc77d170	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0xdc818965	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xdc851b5f	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xdc88f1be	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0xdcbbb08b	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xdcec18ea	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xdcf6d045	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0xdd02df7b	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0xdd07ead3	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL	 vmlinux 0xdd1101f8	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xdd1173aa	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xdd130026	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xdd218427	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xdd226fa9	__raw_readsw
+EXPORT_SYMBOL	 vmlinux 0xdd22e83e	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd39afaf	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xdd3ba9a2	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0xdd4ffa9b	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xdd62b2ed	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xdd6cfdf8	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xdd74ebb7	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xdd77a1b2	load_nls
+EXPORT_SYMBOL	 vmlinux 0xdd7e1301	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xdd7e3192	qcom_scm_pas_auth_and_reset
+EXPORT_SYMBOL	 vmlinux 0xdd81421f	trace_print_symbols_seq_u64
+EXPORT_SYMBOL	 vmlinux 0xdd82dc99	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd94321e	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xdd983013	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xdd9c91ce	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xddb32e16	arp_send
+EXPORT_SYMBOL	 vmlinux 0xddd93a23	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xddd9ad98	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xddeaf64a	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xddece5dd	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xde0a55a3	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xde16e90d	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xde34ce0e	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde505276	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xde54b651	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xde59092a	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xde5ae857	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0xde709e0c	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xde77e6f5	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xdec030e5	arm_clear_user
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded290fb	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdee22aaf	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0xdee57759	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xdef43510	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf1dc06b	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xdf1ff49f	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf2ed79a	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0xdf31eebf	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0xdf3a693d	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0xdf448b26	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xdf52def1	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf590b6c	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xdf654ab7	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xdf7f594e	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf97da0b	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xdfa42cd2	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0xdfb9c921	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xdfd33b23	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0xdfd91ce9	omap_type
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe0270203	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xe028a6ca	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xe0354d3c	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0xe03e829e	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xe03f69a7	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xe05a645f	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xe05b6100	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xe05c35b1	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xe05faee3	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xe06699b2	sg_next
+EXPORT_SYMBOL	 vmlinux 0xe0756c30	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xe08527d4	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe099a12a	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0xe09bb611	file_modified
+EXPORT_SYMBOL	 vmlinux 0xe0a2077b	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xe0a53028	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xe0a6b585	request_resource
+EXPORT_SYMBOL	 vmlinux 0xe0a6efb1	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0bef318	icst_hz_to_vco
+EXPORT_SYMBOL	 vmlinux 0xe0c347f2	snd_timer_resolution
+EXPORT_SYMBOL	 vmlinux 0xe0d50661	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xe0df36b6	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xe0fad885	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xe0fed663	single_open
+EXPORT_SYMBOL	 vmlinux 0xe108d63c	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe123cb03	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe1373fb1	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13ee72f	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xe14669db	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xe14cd48a	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0xe153f436	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0xe15ca611	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xe170f6cf	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xe18f4e81	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0xe1973cdc	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1a618f0	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0xe1a9b2ff	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xe1b6cd04	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xe1b80b96	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xe1bbaaa8	bioset_init
+EXPORT_SYMBOL	 vmlinux 0xe1bbb2c9	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xe1bd2298	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0xe1c0ba14	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xe1d9cea7	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe206379a	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xe2274a1c	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xe25c7910	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xe266f098	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0xe2677a15	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xe28e4207	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0xe2ac51be	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d47398	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe308555d	release_firmware
+EXPORT_SYMBOL	 vmlinux 0xe30a10bd	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xe31e0be0	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xe31f237a	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe32f71c2	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0xe337cfea	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xe338c0ce	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xe34481f5	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0xe346f67a	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0xe3482046	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xe360fe6c	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xe3726da5	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0xe3827a31	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0xe38dc759	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0xe3a90dfa	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xe3c20a4b	sock_release
+EXPORT_SYMBOL	 vmlinux 0xe3c9cdf5	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3eb084f	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ee5784	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe40994b6	simple_map_init
+EXPORT_SYMBOL	 vmlinux 0xe428464e	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe439bb22	nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe465ccff	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xe4702b3a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0xe4723422	register_console
+EXPORT_SYMBOL	 vmlinux 0xe477fc9b	memremap
+EXPORT_SYMBOL	 vmlinux 0xe4897f3e	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xe4a4ca97	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xe4af2503	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0xe4c3a2c7	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL	 vmlinux 0xe4ea734b	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xe4effcd5	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xe50f7d45	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0xe519f503	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe5464246	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xe553bd49	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xe5584cc3	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xe55b52d7	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xe5658922	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 vmlinux 0xe56d9824	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0xe5703138	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0xe576caab	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0xe5807e62	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe58642ea	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5c91a73	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xe5ce8c25	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0xe5dbf5e7	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0xe6077a99	bdevname
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe6177aac	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0xe62bd05c	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0xe62d678b	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe630900c	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 vmlinux 0xe6349372	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xe6415d9a	msm_pinctrl_dev_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xe64d4818	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0xe65124d7	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0xe669ba70	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xe66b80a0	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0xe678a57b	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xe68f3b6e	tegra_io_pad_power_disable
+EXPORT_SYMBOL	 vmlinux 0xe693a6ce	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0xe69cc9b4	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0xe6ab1fc0	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xe6c12171	complete
+EXPORT_SYMBOL	 vmlinux 0xe6ccca17	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xe6e28ff1	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0xe6e29564	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xe6ee46cc	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xe6f3a696	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xe70171d0	tc6393xb_lcd_mode
+EXPORT_SYMBOL	 vmlinux 0xe703653a	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL	 vmlinux 0xe71467e3	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0xe729541a	sock_register
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe737c485	imx_scu_enable_general_irq_channel
+EXPORT_SYMBOL	 vmlinux 0xe761bf27	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0xe78bb6fc	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xe78ca800	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xe78edbea	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xe7a0dfa1	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0xe7a2834a	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xe7b7fdc0	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0xe7d21760	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0xe7d35231	kset_register
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7da31ab	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xe7f3dc94	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0xe800e817	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0xe804beb2	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0xe80846e1	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xe809d7fa	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0xe811e543	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xe8397699	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xe83f951c	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0xe842dc8c	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0xe843acf9	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xe84699ea	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0xe85cb314	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0xe878cacc	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0xe8799733	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xe87b7cd4	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xe87b9d3e	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xe8849b0b	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0xe8874189	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0xe887c8d1	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xe8b9a3d4	mx51_revision
+EXPORT_SYMBOL	 vmlinux 0xe8cd0a2c	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0xe8cfce09	tegra114_clock_deassert_dfll_dvco_reset
+EXPORT_SYMBOL	 vmlinux 0xe8e77c6b	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xe8eddd8f	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0xe8ef5a14	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0xe8fe8056	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe9254ff5	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xe926de4c	touch_atime
+EXPORT_SYMBOL	 vmlinux 0xe92c6750	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xe9325f03	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0xe9372dd8	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe95d4eac	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xe97c4103	ioremap
+EXPORT_SYMBOL	 vmlinux 0xe982d389	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0xe99b7111	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0xe9c2b9fa	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xe9c44a26	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0xe9cb3611	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xe9cbf734	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xe9cf5326	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea1dd86b	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xea1f5b88	samsung_rev
+EXPORT_SYMBOL	 vmlinux 0xea2e8add	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea4346f7	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0xea488011	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0xea56420a	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xea60aac3	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea70acb5	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL	 vmlinux 0xea7db735	tegra_dfll_unregister
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea8798f0	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xea96631d	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xea97552b	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xeaa8c6ed	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 vmlinux 0xeab9441f	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xeab99c0c	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xeabf852f	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xeae88793	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xeb03b389	__raw_readsl
+EXPORT_SYMBOL	 vmlinux 0xeb0b9bf9	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0xeb162960	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xeb1b120e	omap_set_dma_write_mode
+EXPORT_SYMBOL	 vmlinux 0xeb283094	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xeb3593fc	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb434c13	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0xeb55a931	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xeb5af69d	_dev_err
+EXPORT_SYMBOL	 vmlinux 0xeb828651	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0xeb88d475	cad_pid
+EXPORT_SYMBOL	 vmlinux 0xebb0c2dc	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xebb8255d	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0xebcd973e	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0xebd08a40	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xebdf0a4f	vmap
+EXPORT_SYMBOL	 vmlinux 0xebece8c3	register_sound_special
+EXPORT_SYMBOL	 vmlinux 0xebfb8f52	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xebfdcbdf	system_serial_high
+EXPORT_SYMBOL	 vmlinux 0xebff8ac9	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xec0770b2	dump_skip
+EXPORT_SYMBOL	 vmlinux 0xec10ca3b	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0xec37a2e8	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec4ef3e9	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xec675bd1	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xec7db6e8	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xec8e1c4c	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xec90492f	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xeca2687f	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0xecb2002e	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xecb688fd	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xecd95773	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0xece436d9	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf5b500	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xecf8a3b4	__raw_writesl
+EXPORT_SYMBOL	 vmlinux 0xed1ea1f1	imx_dsp_ring_doorbell
+EXPORT_SYMBOL	 vmlinux 0xed1f6ef9	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xed389061	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0xed3c991e	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0xed4fd140	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed72c87c	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xed771267	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xed7fda96	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xed85893a	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xed93f29e	__kunmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xed986895	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xeda92577	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xedabcbbc	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0xedb9d62c	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedbff300	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedcc4c96	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xedd9106d	__ashrdi3
+EXPORT_SYMBOL	 vmlinux 0xedeb59d9	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xee0a7980	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0xee0a849d	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0xee1081f8	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xee177bb0	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0xee17b2fa	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee401fad	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xee43fd9b	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xee46ddd6	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee5c4d7c	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0xee5d0f11	tc6393xb_lcd_set_power
+EXPORT_SYMBOL	 vmlinux 0xee5d16df	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0xee688b4e	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0xee7408b7	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xee850df0	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee974316	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0xeeac3127	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0xeec6804c	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0xeee068f3	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xeee24ba9	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xeee3bf56	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xeef04cd7	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xef2dc720	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0xef3d8ae9	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0xef43540d	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0xef4cad92	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0xef852166	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xef8ac53d	qcom_scm_restore_sec_cfg
+EXPORT_SYMBOL	 vmlinux 0xefa778bb	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xefb7bccf	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xefe7eba5	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xefec312f	omap_get_dma_active_status
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf01528a4	dim_turn
+EXPORT_SYMBOL	 vmlinux 0xf016283c	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xf02a6977	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xf02fedea	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xf03bed07	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0xf058222e	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xf0647101	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xf06cee2c	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xf0745df0	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0xf08a6063	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf097c92d	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a343ed	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf0a3ead0	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0xf0afa834	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xf0b2586d	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0xf0c068b8	snd_pcm_new_internal
+EXPORT_SYMBOL	 vmlinux 0xf0c758ff	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xf0e3d1c7	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xf0e476ab	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xf0ed2ef4	__raw_writesb
+EXPORT_SYMBOL	 vmlinux 0xf0ef52e8	down
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf102732a	crc16
+EXPORT_SYMBOL	 vmlinux 0xf108715e	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xf11cbfc1	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xf1329c80	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0xf1465a32	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0xf16a1ac2	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0xf16b46cc	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf16c835f	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0xf17106f4	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0xf1759c06	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xf18a7e4d	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0xf192db4c	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf195e975	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1985bbd	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0xf1abc33f	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xf1ad9c4b	tegra_ivc_align
+EXPORT_SYMBOL	 vmlinux 0xf1c60ddf	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0xf1c8c32a	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0xf1d8cf43	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1ea6f1c	__bswapsi2
+EXPORT_SYMBOL	 vmlinux 0xf214cc8a	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf236c75e	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xf237b969	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xf238c125	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf23fe895	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xf26033e4	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xf2669a2c	imx_scu_irq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf286f585	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xf2888302	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xf29be92e	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xf2a697ae	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xf2ab66c4	do_map_probe
+EXPORT_SYMBOL	 vmlinux 0xf2ad80d9	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf30d9a77	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xf30e6f8a	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0xf312f95c	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf314c31d	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xf31dbe60	map_destroy
+EXPORT_SYMBOL	 vmlinux 0xf31fccbc	__put_page
+EXPORT_SYMBOL	 vmlinux 0xf33d4bfc	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf348ff41	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf35c2cfd	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0xf35ef1f5	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xf360650d	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0xf365ae83	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf396f43a	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0xf39de082	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0xf3a11c35	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3c3f9f6	stream_open
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3f4b637	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0xf3f6d626	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0xf3fe182b	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xf40019c0	tegra114_clock_tune_cpu_trimmers_init
+EXPORT_SYMBOL	 vmlinux 0xf4159868	snd_card_new
+EXPORT_SYMBOL	 vmlinux 0xf4278bbe	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf455fb44	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xf45bebd9	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xf46c40d6	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf49bda52	finish_open
+EXPORT_SYMBOL	 vmlinux 0xf49c7326	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xf4a04498	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xf4ba246e	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xf4baa334	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c679bf	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4dc71ae	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf50232b8	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0xf5043219	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xf5081982	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xf5150d16	tty_name
+EXPORT_SYMBOL	 vmlinux 0xf52dfbd2	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xf53bc32f	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xf53d15c5	fget
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf54280a0	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0xf564412a	__aeabi_ulcmp
+EXPORT_SYMBOL	 vmlinux 0xf5802efa	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xf58b8376	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xf5aeeb6a	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xf5b666ef	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf5c2fa3a	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xf5c92879	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xf5cf1669	cpu_tlb
+EXPORT_SYMBOL	 vmlinux 0xf5de6b3b	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0xf5de7221	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5f9f19f	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xf638972f	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xf63e356c	tegra_ahb_enable_smmu
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf64d5d8a	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0xf64e6ae9	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xf652d359	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf6667a4a	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xf666a997	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xf67c99e1	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xf681f104	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf6854094	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xf69c69e4	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xf6a5ee2e	qcom_scm_io_readl
+EXPORT_SYMBOL	 vmlinux 0xf6b00409	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xf6b07903	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xf6d3f54e	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6fb897a	ioremap_cached
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf6fd8063	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xf6fff3f2	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xf705fa49	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0xf71144bb	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0xf712c990	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xf7163ec9	__raw_readsb
+EXPORT_SYMBOL	 vmlinux 0xf721a65f	__scm_send
+EXPORT_SYMBOL	 vmlinux 0xf72ffb7e	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76843b5	qcom_scm_pas_supported
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL	 vmlinux 0xf783c058	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xf783f5e5	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0xf78c6fcb	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0xf79d2ad5	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xf7a4813f	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xf7af924f	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0xf7c5b9e0	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xf7c8cc41	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0xf7d82fb7	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xf7e89c22	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xf80b6bfa	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf822f636	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf838fd97	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0xf84bc962	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0xf84c3647	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0xf84c9f32	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xf8610781	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xf86f06fb	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xf86f27cd	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf886c7bc	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8c97766	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xf8ce7fe7	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xf8ea4896	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf92ca0d6	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0xf934e5d1	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93dae2e	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf944ec6a	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0xf948b093	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf95548a1	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0xf95a1fc3	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xf964ae58	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf9795588	phy_attach
+EXPORT_SYMBOL	 vmlinux 0xf9931b29	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0xf9a36b47	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c3d27e	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xf9c3e29b	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0xf9f6105c	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xf9f94b6f	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xfa01d0b6	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xfa021f90	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xfa180884	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0xfa23865a	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa4d7c42	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xfa529f92	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xfa5326f3	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa744087	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa9e009f	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0xfaaed159	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0xfabf596c	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xfac2e7e4	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfad9e245	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xfae49fd5	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xfb130635	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0xfb1d287e	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xfb1d7438	down_read
+EXPORT_SYMBOL	 vmlinux 0xfb238962	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xfb26460c	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0xfb2c1fc9	of_get_ddr_timings
+EXPORT_SYMBOL	 vmlinux 0xfb336634	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb5de004	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL	 vmlinux 0xfb95a8aa	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb90472	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbde806a	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xfbed1686	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xfbed4d3e	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xfc1e8388	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0xfc24c07d	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f3589	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfc52abc7	qcom_scm_pas_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfc56ef2e	skb_put
+EXPORT_SYMBOL	 vmlinux 0xfc5c8b1e	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0xfc65459a	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xfc6da417	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xfc7a4ef1	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xfc98b142	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xfc9c51b7	snd_timer_global_free
+EXPORT_SYMBOL	 vmlinux 0xfc9e9fce	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0xfca546cf	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xfca7b35a	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0xfccf9af9	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcecc7c7	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0xfd06c921	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0xfd0b7c37	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xfd1b7385	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfd2bd9aa	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL	 vmlinux 0xfd35ffd9	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xfd590296	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd7b0b65	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0xfd8c5afc	release_fiq
+EXPORT_SYMBOL	 vmlinux 0xfd9fed2d	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0xfda8b786	mount_single
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdcf83c7	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xfde050ca	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xfde4ef2e	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xfdf2eccf	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xfdf4cff0	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xfdfb0750	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xfdfda0c1	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xfdff94e0	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe0a1ed5	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xfe129fac	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0xfe1f481f	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe539332	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe62538b	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xfe6e2931	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xfe719b1f	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0xfe7ba62d	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xfe90c4a6	_find_first_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xfe9df5af	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xfea08e3c	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xfeb579f7	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee119e9	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0xfee12e16	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xfee74d50	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xfef21fe5	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xfef282ea	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefacec4	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff028cc0	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0xff1240a5	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff30b588	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0xff405ef4	snd_info_create_card_entry
+EXPORT_SYMBOL	 vmlinux 0xff50a7df	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0xff53d633	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xff54e357	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xff5c39f1	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 vmlinux 0xff64e9b5	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff69266b	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0xff87c248	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xff8c2e5a	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xff8e1b7b	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff91fa69	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xff944c7d	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xff99e249	rproc_add
+EXPORT_SYMBOL	 vmlinux 0xffa45c36	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xffaca408	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xffaf7506	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0xffb7722d	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xffb94ef0	_test_and_change_bit
+EXPORT_SYMBOL	 vmlinux 0xffbbb66f	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xffcbe314	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xffce2374	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xffe57f34	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff7b213	fd_install
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x0a0d1a16	sha1_update_arm
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x968bef34	sha1_finup_arm
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x015f89af	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x03a4bc5c	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0faead29	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1038e5aa	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x20b96741	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3504450c	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x44bcc129	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x50b8c2f5	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x86984c11	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8d0df051	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x941161a5	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9c87cd58	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbf7014ac	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc3cec82c	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xcd9cd715	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd4952262	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xda20ebd9	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe0155fac	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x441e91f0	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xd8fbfa22	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x5fde47a3	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x72e3e1dd	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x70203c8a	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xe5fb8387	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x600b9539	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x77c9065f	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x98fe76c2	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x9cbb1263	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x88bdc424	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xb792fb32	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x5a4f0100	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x3de7601b	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xf577a698	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/chacha_generic 0x166e3013	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x3030ca4b	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x71b554c1	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x9f2da545	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1714cf55	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2dde86fe	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x31438207	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x36773aa9	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x441e63df	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x56cdd374	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x6ba8357d	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x73bfe84e	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8742f1ed	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa4d1455a	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa956c070	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd89495ed	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe17be53c	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x084333b1	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0d68d0ba	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1113f9a4	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x16798a80	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1768537f	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x207b5d7c	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2c0061ff	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x38b0c536	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4529c1da	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x550bb1a2	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x85a7ea58	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xbf4759b9	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc3eb0f0a	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd92e8468	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x4ce05a7a	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xb3f82d52	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xc739ae8c	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xd947310b	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x0edf9c51	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x40f01d27	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x85eeebf6	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x83391aa3	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x00681ea5	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x1913013b	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x8c3df88e	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x1e6f2c03	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x05aa4a0d	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0x2783d7f7	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-ac97 0x2b8a7411	__devm_regmap_init_ac97
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-ac97 0xc705c7c9	__regmap_init_ac97
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-ac97 0xdddb5648	regmap_ac97_default_volatile
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0xde6179ef	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xcfbaa6a8	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xd03c8f1a	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x10aa5124	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x6edfc87c	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x1874b594	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x467d2d82	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x755f77fb	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xb05ba997	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xb334ba4d	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xe8a6ce1a	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0687d5a7	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x11a62f0b	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1de4d6dd	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x231b3d7b	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x25318d9a	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2c6a86d3	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x35c9b4d2	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6231ddfa	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x646d5d0a	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x647d94b1	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x657da417	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6fdaf129	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7015beff	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x82da0dbb	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8d2f4b2e	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x990eaa69	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9b24e8f6	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xaa04f379	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb7178212	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd08f09ef	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd7befa6b	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdbc8210c	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdd79221d	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf485433c	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x2f056c3d	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x2fe53ed4	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x4cfc2c8d	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x78bb6d64	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xc6334951	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xe6e3b43e	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x03d2b60f	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x11e6e696	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x12511a35	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x3f001f51	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x491dc3df	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x62ddc6b0	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x80adc989	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x81ba0472	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x82f94a2d	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8b3ee4c4	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8e801ec2	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8f0914b4	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa298b4c5	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa348f0a7	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb9fdb01c	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xdaf1251d	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe72b4145	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0a8542b6	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x2a1cf22f	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x2d97dab7	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x34b1673c	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6ccab203	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x73919f3d	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x8d6b64aa	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xac01905e	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xad766c14	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf39c23b4	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf40cb9e0	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x0829290f	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x23556d42	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x5b196ad9	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x77094179	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xcc9f3cf6	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x8e98efd9	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x8ecd8a03	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x993644c0	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xcaedd8c5	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xfa97d840	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x1f5c55d2	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x32d741e5	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xa336091a	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xbbd0ebbc	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x0b417041	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x1d09fc1d	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x6745d340	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xac17a5ba	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xb15d7f85	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0x4c8aa0d8	meson_clk_triphase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0xa8c11bfe	meson_clk_phase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/sclk-div 0x9b54bd6e	meson_sclk_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x00d9e064	clk_edp_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x03e13d6f	qcom_cc_register_rcg_dfs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x04bf3163	clk_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0650a0db	clk_regmap_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x065574e3	clk_rcg_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0ac38699	clk_trion_fixed_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0cabeb2a	clk_ops_hfpll
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0d678ab9	qcom_reset_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x12ac7e1e	clk_alpha_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x1ed919be	clk_rcg_esc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x205a2ef5	clk_branch2_aon_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2d89517e	clk_branch2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2df91853	clk_fabia_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x32127638	qcom_cc_map
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x33e55c5b	clk_alpha_pll_huayra_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x341947f7	qcom_cc_register_sleep_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x395868a1	qcom_find_freq_floor
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x40e5accd	clk_byte_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x428b605a	clk_pll_sr2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x46e37d43	clk_rcg2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ad24f3b	clk_alpha_pll_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x512af5e1	krait_mux_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x51fb21a3	clk_pll_configure_sr_hpm_lp
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x524628c8	clk_rcg2_floor_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x5d5f07eb	clk_regmap_mux_closest_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x64447760	clk_enable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x66489e5b	clk_rcg_lcc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6af41b8b	qcom_pll_set_fsm_mode
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6ca8a88d	clk_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x73f8eedb	clk_rcg2_shared_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7404b809	clk_rcg_bypass2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x749eda9f	clk_alpha_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7708b673	clk_pll_vote_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x787e8234	qcom_find_freq
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x81ec30bf	clk_alpha_pll_postdiv_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8218c7e1	clk_byte2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x911def65	clk_alpha_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x914e6973	qcom_cc_register_board_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x99f60998	clk_disable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9be87908	devm_clk_register_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9cb32992	clk_pll_configure_sr
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1839eaf	clk_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa47b73a4	qcom_cc_probe_by_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa821f919	clk_branch_simple_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb73a2cd3	krait_div2_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xbbe74972	clk_alpha_pll_hwfsm_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc78100cd	clk_dyn_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcb50913f	qcom_cc_really_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xccc2b431	clk_trion_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcce7e449	mux_div_set_src_div
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd8fc3e8e	qcom_find_src_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda15b634	clk_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda35a32d	clk_gfx3d_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda967930	clk_alpha_pll_fixed_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdb687f64	clk_branch_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdf674942	clk_alpha_pll_postdiv_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe3b34b5b	clk_regmap_div_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe5bc1f18	clk_rcg_bypass_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xef6a0edc	clk_alpha_pll_regs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf196beb5	clk_regmap_mux_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf97fe435	qcom_cc_probe
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x005be67a	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x1a2670d4	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x23d1fa20	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x36014071	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3d186105	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3f4129dd	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x41f7f1ad	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x4e557f42	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x578f1fe5	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x68dcdaf6	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8e2a5b85	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8fe4d6d5	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc2974207	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc5966072	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd9dd5795	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x1e52cb4a	bL_cpufreq_unregister
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x5d0b4c24	bL_cpufreq_register
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0x701db540	omap_crypto_align_sg
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0xd5328478	omap_crypto_cleanup
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x1d6bb122	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x3ff138ea	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4f262134	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x50b4b113	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x5525c569	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x5a106e65	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x6de3a657	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x92b41fdf	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xdbe9253f	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x0e59dee7	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x408cb9aa	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x41025de8	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x59c5cf78	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7ca99708	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7dfe43bd	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7e376ec2	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7faf95a2	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa158fb68	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb4bd1cf8	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc171ebab	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc9e829d0	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xd36fbcac	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xf90aeade	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xfb17c35f	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xfd7234e0	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x01fdf38a	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x732f458a	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0xa416ab30	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x67cd125c	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xec116301	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x1537eabf	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x1bac8821	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3a65771d	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3f752b6e	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x41ad94a0	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x51c5932c	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x52da267c	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x6afbce9e	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x704e838e	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x747cadd1	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x9225a241	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x98418a77	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa59dd8d5	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa7a22c1f	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xae6e9e90	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc40901e5	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd36c2927	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xde451288	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xef1974a4	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b96ef	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x14543f08	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2501ad10	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2b184b12	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x3b684aea	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x593eaf8a	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x6e091eb7	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8b60f31f	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x98847173	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb203d4b9	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc1be620c	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf2ed9759	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x02d638c5	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x06b17995	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x08a5b752	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2c67d16d	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x7038012f	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x95da46ca	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xa6a7f46e	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xbbf51ab6	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xbf6e8251	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd6b2147f	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xea0b4248	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xef36badd	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf8c20e7d	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x6ff50017	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x9c054321	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xa8ce0803	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xabe7fa2b	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xe12263f7	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xef745e3c	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xf4652678	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3b0d8e89	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3d979911	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x4884d348	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x57f2a79e	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x60a97912	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x63b5a7d3	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x6ab425ed	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x83f90a1a	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x975b767e	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xa06b5748	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xdcabd88b	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe4ac7aa2	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x62924d22	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x9c03f58d	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0xde0e3520	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x2b8c3eac	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x3502ba2e	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x7877c2ec	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x87dad339	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x881b7fdf	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x0282f035	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x03a61c72	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x6a813b99	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xa1992c63	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xfbcc7c36	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x58b09fed	aspeed_gpio_copro_grab_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x5dcbe46c	aspeed_gpio_copro_set_ops
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0xad66fed8	aspeed_gpio_copro_release_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x50f92018	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x731537a7	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x14e554e6	analogix_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x2261d830	analogix_dp_start_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x83150f5f	analogix_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xab158fa8	analogix_dp_suspend
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xb2b7ea2f	analogix_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xb8021cd9	analogix_dp_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xd5a9a2af	analogix_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xe62bf0af	analogix_dp_stop_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x02ef6a04	dw_hdmi_bind
+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 0x157e02b6	dw_hdmi_phy_reset
+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 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 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 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+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 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xa4b0d44d	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+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 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204	dw_mipi_dsi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x28c11750	dw_mipi_dsi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x41361ae4	dw_mipi_dsi_set_slave
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x42ac3b2e	dw_mipi_dsi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x9bd54521	dw_mipi_dsi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x10a2c762	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x1c3e2fc6	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x261940f1	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3790b16b	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3971b60d	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6c872c8f	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7629d3a8	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x784e5531	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7a45f9f7	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x808e7d91	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x847bb001	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8782413d	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x881b159b	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8ba1d037	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8ea318a4	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x904c189b	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x90a61f32	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x93eb8418	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x98264c8c	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa2441e4c	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa6f85315	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb7d6394e	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbd125bc9	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xcaa7371b	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd564e5ec	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdcabf1a5	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe01a40dc	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe53ef035	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xff893c9c	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x178d05a0	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2fc500f8	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x698c21ce	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x79b994d7	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xc31d176d	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf5838c52	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf683f3ea	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x271683f3	imx_drm_connector_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x3e8f0159	ipu_planes_assign_pre
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x5c4580d0	ipu_plane_disable_deferred
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x5ddbffbe	imx_drm_encoder_parse_of
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0xd475ae07	imx_drm_encoder_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/mcde/mcde_drm 0x44ddde6d	mcde_display_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x290cc9bf	meson_vclk_dmt_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2b36798a	meson_venc_hdmi_supported_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2c73cfcf	meson_venc_hdmi_venc_repeat
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7da21708	meson_vclk_vic_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xab5bee2f	meson_venc_hdmi_supported_vic
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xcbe7a62d	meson_venc_hdmi_mode_set
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xe6ebce64	meson_vclk_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0xf3d5a22c	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x172e5775	rcar_lvds_dual_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x3a80bee8	rcar_lvds_clk_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xc8328569	rcar_lvds_clk_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x6736f7cd	rockchip_rgb_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xb438c83a	vop_component_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585	rockchip_rgb_fini
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x01f4ee1f	ipu_image_convert_adjust
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x03008dd4	ipu_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x050f0d7b	ipu_di_adjust_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x07036df2	ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0728116a	ipu_csi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x090ba543	ipu_cpmem_skip_odd_chroma_rows
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0a9f1b0a	ipu_idmac_buffer_is_ready
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0bf1b7ab	ipu_prg_channel_configure_pending
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e351886	ipu_prg_channel_configure
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e42bd95	ipu_csi_set_dest
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x118160e1	ipu_ic_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x125ac300	ipu_image_convert
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x13952dfe	ipu_dmfc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15ec2ba5	ipu_di_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18730251	ipu_rot_mode_to_degrees
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1881065b	ipu_dp_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18aa0dcd	ipu_image_convert_abort
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1cdf7d8e	ipu_image_convert_prepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1e913d9f	ipu_csi_get_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x20e09f6f	ipu_csi_set_mipi_datatype
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x224803d5	ipu_prg_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2424c9a6	ipu_csi_is_interlaced
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x258a4439	ipu_image_convert_queue
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2c1da387	ipu_idmac_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2cf7ed72	ipu_dc_init_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2e24b22c	ipu_cpmem_set_yuv_planar_full
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2e825a67	ipu_smfc_set_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2f92d651	ipu_ic_task_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3020d65c	ipu_prg_max_active_channels
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3166aec7	ipu_dmfc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x31c3fe0a	ipu_cpmem_set_axi_id
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x356a4900	ipu_image_convert_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3810d05b	ipu_cpmem_set_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3c48deaa	ipu_di_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3d8f18f6	__ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e86ea72	ipu_di_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x415d8937	ipu_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x418a282f	ipu_drm_fourcc_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x425a4b0e	ipu_idmac_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42d3d500	ipu_image_convert_unprepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4917f47a	ipu_ic_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x498b4c7b	ipu_image_convert_enum_format
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4c179b49	ipu_dp_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4f0140dd	ipu_cpmem_zero
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x50501ade	ipu_idmac_clear_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x51475e87	ipu_dmfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x527f3b94	ipu_smfc_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x53de277c	ipu_di_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x542517be	ipu_cpmem_set_yuv_interleaved
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x544ad230	ipu_srm_dp_update
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x55767280	ipu_vdi_set_motion
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x56eeea05	ipu_cpmem_get_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x580d2f81	ipu_vdi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x59637895	ipu_prg_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x59a434a4	ipu_idmac_channel_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5b15aea8	ipu_dp_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5cae270a	ipu_vdi_unsetup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5d2130fb	ipu_ic_task_idma_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x60bdf2ec	ipu_csi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x623722e2	ipu_ic_task_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x626a551f	ipu_prg_present
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x63593ec7	ipu_csi_init_interface
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x63b912d1	ipu_ic_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x66e729d2	ipu_mbus_code_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6e10ec33	ipu_module_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939	ipu_dc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7342bef1	ipu_dp_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x747eaf4e	ipu_image_convert_verify
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x75a93343	ipu_vdi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x75eababc	ipu_cpmem_set_stride
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7db30a07	ipu_dc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8497c7d4	ipu_degrees_to_rot_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x882d3621	ipu_idmac_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x885c552d	ipu_prg_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x886c35aa	ipu_smfc_map_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8a22a447	ipu_idmac_wait_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8eb22643	ipu_dp_set_global_alpha
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ece82bd	ipu_pixelformat_is_planar
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9058e289	ipu_smfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x91ce1a04	ipu_dp_set_window_pos
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x951a09d5	ipu_csi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x97f08d2f	ipu_ic_task_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9b242b26	ipu_csi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9dfa92c8	ipu_idmac_lock_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9f38e177	ipu_dp_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9fce26ea	ipu_prg_format_supported
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9ffbd847	ipu_dc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa07519ea	ipu_cpmem_set_format_rgb
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa3db8dac	ipu_set_ic_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa40681ac	ipu_fsu_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa4b0cabd	ipu_dc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa60b144b	ipu_csi_set_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa8adc101	ipu_pixelformat_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa96882d8	ipu_ic_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xaa4d4781	ipu_cpmem_set_rotation
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xaedeedd4	ipu_idmac_set_double_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xaf9d7a1a	ipu_cpmem_interlaced_scan
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xafdd5b89	ipu_set_csi_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb359c3fc	ipu_dp_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb513bc9f	ipu_cpmem_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xba458b8f	ipu_csi_set_test_generator
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbe5c3fc5	ipu_idmac_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbf983ba6	ipu_vdi_set_field_order
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc17cca2a	ipu_smfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc3c2cdb0	ipu_smfc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4af2e81	ipu_dmfc_config_wait4eot
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4b15642	ipu_csi_set_skip_smfc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc5c3fb13	ipu_idmac_enable_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc6675aa9	ipu_csi_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc677177d	ipu_smfc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc97e7a0f	ipu_di_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcad0e384	ipu_dc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcbea3eec	ipu_di_init_sync_panel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcd7fbaa4	ipu_ic_task_graphics_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xce10db35	ipu_stride_to_bytes
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcf1fb05f	ipu_cpmem_set_high_priority
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd4b442ac	ipu_idmac_select_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd8f285f0	ipu_vdi_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd90c45fa	ipu_idmac_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xdaf69747	ipu_cpmem_set_uv_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe300a959	ipu_dp_setup_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe3d3ff53	ipu_dmfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe5ba6186	ipu_cpmem_set_fmt
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe6243c52	ipu_dc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe840ad67	ipu_module_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe9503f71	ipu_cpmem_set_image
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xea664eb8	ipu_cpmem_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xee773fcc	ipu_cpmem_set_format_passthrough
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xeea12b31	ipu_vdi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf02f90ba	ipu_cpmem_set_resolution
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1440dc1	ipu_ic_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1abac7e	ipu_csi_set_downsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf2294d61	ipu_cpmem_set_block_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf3e450e1	ipu_idmac_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf5303117	ipu_idmac_get_current_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf541df2d	ipu_vdi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf6a1c0d1	ipu_fsu_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xfe7397b8	ipu_idmac_channel_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xfeff581c	ipu_map_irq
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x03b38c67	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x03c24fb7	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0e844708	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x16a0ad74	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1dac46ff	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x21e8f50b	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x272cb1ea	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x29f7da7f	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2ecd89b0	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x32ac972c	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x35504128	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x38b89571	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x39ce6b9f	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4cc18fe6	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4df074a3	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x50517685	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x53591277	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56237731	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5712b4e8	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x579c43c9	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5bb35f25	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x684037de	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6b5659e1	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6d760b2f	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x73149eb8	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x75c9730a	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8a9d17e7	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b0c6307	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8ccb3769	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x91bc6b37	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x95cfb5bc	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa82bb4aa	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xaf500448	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb3104c3f	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc8b4bd85	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe601ced2	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xec8d715b	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf5ea8872	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf5f15193	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf92de227	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfc6a3aa8	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfcd391a8	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfe4eb3ef	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x027ea582	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0dfe11ba	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1053e47a	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x12792a93	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2d1bf92a	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x309dde64	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x33e51617	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x34a1ae56	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x351b01ee	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3570bb28	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3f8b024a	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x472aa582	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x50a9b611	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x50dafedc	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x51c0f901	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x589a1381	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5f90645c	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6263a6f1	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x692fdc95	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x75e226c1	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7f8c5732	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7fe85450	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x82228d0f	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x85891a1d	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8cc7d682	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9073bf92	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x91369476	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x94de106f	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x953b423c	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x990436b5	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9fd33240	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa8a4985b	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xae66a511	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb4acbe90	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb4def1d6	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbd59c319	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcafcea38	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcbd6d616	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcf377e68	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe5eed553	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xebebc45c	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf2b1bd5a	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf550bb57	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfb9bbd41	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x74655091	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0947c1ac	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x1cca635d	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x1feb2721	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x3312ef15	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xbc6dd217	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd5d943db	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0f0b77fd	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x20101586	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x421091a5	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x54435c16	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x680333bb	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa0a0e1ff	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xbdb9d096	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xda2f51ef	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xfe51ebe8	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xad5d278c	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x689bf1e7	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x02a4f2f1	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xda5e19d2	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0x2c823ce5	ssip_slave_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0x77d637f0	ssip_slave_start_tx
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0x8ed38673	ssip_slave_get_master
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0xa95f183f	ssip_slave_running
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0xeca481e9	ssip_reset_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/controllers/omap_ssi 0x110e4416	ssi_waketest
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x136d216c	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x337b3dc2	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x39885776	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x42cb64db	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x4f6579da	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5a905c24	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6a51b8ac	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x72b9f9a0	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x77765067	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8d68d44d	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x9a997379	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xa64523bf	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb9e3c6b3	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc23fa012	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc297d62e	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc47c8efc	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xce1a509b	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe9b8793a	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x0ce5ae89	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x34e6e743	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x7e3b391a	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x04a8d890	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0aec250e	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1358e067	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1ae2ed47	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x44208b0e	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x51906168	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6298a090	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7d268e55	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9d5a0e4f	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9d72f996	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb3d71b1a	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc50e94e9	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xcc913c4c	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xcdb7e990	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe0eef4ac	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe5ecad5e	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xeebdfe80	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf2252c5c	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf5caff1e	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x01ab5674	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x14d88dfd	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1df000f7	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9f9af979	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc97103ef	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xcd66fda9	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd5ee9fcb	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xddde7e42	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xf82eea81	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x51ed6f31	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x6683849a	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xe12795a8	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x1a8acab1	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x720f5566	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x72725f34	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x871481a9	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x873fead0	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xc3d0e997	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xd8ee1fba	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xdc2e74c0	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe3ecbc91	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x28be6ae8	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x4688a3fe	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x6cf63704	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x9d3a73ce	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0xac5279cd	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x037632b9	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x18eb5d3a	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1a606da6	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2b81ecfc	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3e90e04f	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4d8667c0	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x53610b5c	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5fc86292	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x73aa754f	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x74735072	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa77684d6	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa8b77e22	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa965c1f4	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xab3b494c	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbe06cd4e	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbf9b85ab	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc4045f02	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc8103213	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd15ee59f	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd969696a	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe627e46e	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xebaf7be8	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf3d5e808	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf8d9e9f3	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfa318441	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x0b4ed804	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x8d59c7e9	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x5931372a	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xa1b6f1bf	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xc6def827	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xc7c9b6c2	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x27106c25	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xa819fefd	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe7bcc879	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x29bd08fa	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xf21ac429	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x006cc499	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x1b84c736	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x25a14a91	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x30a1303b	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x39ff4dd9	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3abb46ac	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x44564f91	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x5b77c968	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x64864c89	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd786bda2	ad_sd_setup_buffer_and_trigger
+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 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x85510b37	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xd175404b	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xed0175f5	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xfff2647d	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x74a9fa2e	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x7571bf71	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-hw-consumer 0xead9f2d2	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x8b7b9b98	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xffe8bbca	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x705a3684	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00244ac3	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x5abfb1b2	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6cca2dac	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7d96f32b	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x913b3db7	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xb086c814	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xd45cbe2d	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xf774f312	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xfe5ad180	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x013c9242	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xfdb66449	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x53e934f2	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xed098d1e	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x1179e722	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x12e2cca9	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x8059d805	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xbab770a9	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xcd8fbf1f	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xfb06fc73	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0123ed5c	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x47be9196	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x4efec89f	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x72965cc5	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x807e6ded	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x8ab5cc4a	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xadd8da9c	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb714ca3c	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc565b18f	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xdb1d7034	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf15ba5a1	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf68df038	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xc6e500a3	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x4d38207b	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xc4450223	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xdc70e86c	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x03374427	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0943f014	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0abf6ed0	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x150264d0	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1a8faa6f	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2008e90e	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20ce344a	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2275eaf0	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x22d22efa	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x241d67eb	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2b6b4bfc	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x370fed61	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x378595e2	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x44dac27d	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4b35799f	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x523b298d	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x52a4a10e	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x55fedd9b	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5c8a574e	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x60b494b6	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x64657ca4	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x649600cc	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6627cf39	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6946fa8e	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6c41219f	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x74bfc64d	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7c68666c	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x82db8fe0	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x84e18fc1	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8cfbaa21	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8fa21f7c	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x93432411	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x93d52f5c	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9b3901d6	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9b3e265b	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa5da32ae	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa8df96b1	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa95e8573	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaa8ba721	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab83baf9	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaf5dd831	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb54022ea	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc09c28f7	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd127cd01	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd3b89e63	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd73dd9be	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdb929746	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe50f4825	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe6246dbc	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xee8feed1	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf6ba52d2	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x63bab1cf	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x9009588d	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x400515d3	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x457ddc0e	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x9574db0b	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xb5106c84	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd16281af	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd642cee6	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x77c792b1	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xf7ade31a	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xf1f97a56	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0b63450d	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0bcf665f	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4fc8e5d0	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5d9c62c3	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5e9e41e2	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6efd5bd5	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x73c6f9b3	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb6f8f8b7	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc2e2ab25	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc5fc2ff3	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe912675e	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xeca498ba	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xef2b244c	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x4446afb8	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xa6e49a15	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xaa09ab8e	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x79201fd8	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xe24ee132	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x441ef35f	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xa011fe02	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0e4d611f	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x76c0721e	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x8f60c6ef	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xaf327169	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2b1e941e	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2fe5fdb6	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3f560dcb	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6f3c2758	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x82450aa0	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb37dd5dc	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb96b0f53	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc6771c16	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc70b1ea8	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe34ffd28	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe86337d1	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xfef1e072	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x11ea0720	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x21561f29	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x719d5b8f	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7f580c48	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x8ad1221d	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xbc64195e	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd435e48e	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xda66e33f	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xdf34a739	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xfebaa90e	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0x81e513ad	qcom_icc_rpm_smd_available
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0xe8dbdc6c	qcom_icc_rpm_smd_send
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x14450656	free_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x560ca013	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x632be339	find_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x6591423e	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x7b03b40e	reserve_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x89032608	put_iova_domain
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x99b29474	free_iova_fast
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xa4066476	init_iova_domain
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xb9939bcd	queue_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xc76f53b7	alloc_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xdaa3dd25	__free_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xf4901ce0	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x11f56ead	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x19b64ae6	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x21cec6de	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x2330478f	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x4602c954	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x4bccd2da	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x584d6452	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xc735e850	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xdc8b1f5d	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x43a61531	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x687ccca2	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xaf84ac22	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xb4254156	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xf41eb7e8	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xfd3d2fc8	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x15d3a0a3	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x20387e66	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x75b0f6ad	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x8be59ff5	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb2abb9ff	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb6781dfb	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb8b53ae2	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe1232845	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xef6ac695	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf13b041c	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xfc797592	lp55xx_read
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x020e1a9e	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x05c905ba	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0a56a1da	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0b9889bd	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0e7c4ca8	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x258bc9eb	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x38cabd3e	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6e504d2a	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x8274f426	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbcf52873	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc3bfebed	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd0818e11	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xdc88ee66	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xed73fdd5	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xff860b13	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x00af95a1	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x06d94b0a	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x157aa73e	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19a50641	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19acd14e	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x1e382318	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x24935482	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x28991160	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x29ef0066	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2cd1be34	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x3ae1afd1	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4f0216b8	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x56bd5947	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5cb0a24a	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65835607	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x68b2f180	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7baca7fe	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x95286aa1	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x9cedcd57	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa60fcee9	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xafae4e81	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb4b03b2e	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb7500cb5	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc1fd1dbc	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd4cd3c1a	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe278bd6d	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe68d70a9	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee926d8f	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf30b9aa6	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf438022f	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfbd03183	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x14431223	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1cbd02a9	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x23c3aa63	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7dd5700a	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x83ca1ba0	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x92400835	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9c7db42a	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xaa241837	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb5ac464b	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 0xc21b7c33	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd4be6ad7	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdca07c11	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe5e17eaf	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe79ef72b	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe83ad55d	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xec1c7233	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf4aff4af	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x9b83c227	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x03bb93e0	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x20d23373	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x385d0bd4	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5730f8ae	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5b3dc349	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x8f647e48	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x90136207	dm_cache_policy_destroy
+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 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x56e9196c	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x748f0d28	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x15fc2f95	dm_rh_inc_pending
+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 0x73ad526c	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x756c6633	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+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 0x933b398e	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xac3e2cfd	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xae9c307a	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 0xd8aa4284	dm_rh_region_context
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1bf9dc69	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x29c25d50	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x46af8087	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x55f98e63	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x64976f82	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x8a56150c	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa433adbc	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa7083b63	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb8dbd4e1	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6367ed7	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3e25192	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x02cc2765	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x3af91b00	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x4372756d	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x66049a48	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x8e59ff1f	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9ecd52f8	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb549d05c	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xbfec074a	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xcf54cdd3	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xcf5a798c	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x12559c1f	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x1c9445a5	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x3f7e2653	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x455160d4	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x9c1f6ea3	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xc9e964d1	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xd5a08153	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x291381e3	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x43835a8f	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x48bb7382	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4db9459b	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63222b29	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63b8add8	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6e000e45	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+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 0x894f299c	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9f5ae89e	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xacc319d7	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc8494af0	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xd4e8a5c7	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe015c49b	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe0c848e8	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xea4558c4	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf7a04184	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf802a928	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf82d133e	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0aa6af5e	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x16f67eef	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x19d31e69	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1e557549	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2fba71f1	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x30580d49	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3d31f2bd	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x565cdebe	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x57df2e44	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x60a96378	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x61e41aef	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6fd09898	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x745960e5	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7eeeee2e	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8d01b9b9	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9318c766	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9432c896	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb4e820d6	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcb1864fd	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcf9b448e	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd4b44fa7	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd53d08f3	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd8192224	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xdbaaabf0	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xde74a6ae	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe5bcccf3	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xeb8be726	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf1da219b	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf3d4e86d	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x42115416	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xddd39514	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xeecaf408	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x783158aa	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x94ccd9af	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x09ce2eda	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1c9081c7	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x248a50ef	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x2c592873	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x309ed14a	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x31fd49aa	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3b20b2ac	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3d1ba5de	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x42136550	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x42fba791	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x53044385	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5cfebdce	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5ebcaf1f	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x62112a79	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x67b90b38	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x68f91a54	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6d625cc7	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9f7269f8	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xaaffed33	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb64625ce	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xcabc702f	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd1293d51	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd6479e4e	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd9a719c5	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdd2dc16c	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdec457cb	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe6229491	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xea830619	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xeb567849	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xec382587	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xff006621	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x4fa60193	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x2cc544ce	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x32624de8	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x5158dff9	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0xefd6564c	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x27e689b0	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x66f54f2a	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x333bea06	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0xc3d125b3	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x5e2958de	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0x50f262f5	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0xac8dccdf	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x7461ad24	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x01a3080b	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x03d89c54	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x09863942	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1b0846ea	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x20ef49ed	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2214ea67	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2d59a6d1	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x310069f5	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x35e44acd	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x40eae172	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4424d060	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4649393a	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x49bfa3e7	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4de2e4b6	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4ed93a07	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x533c3685	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5a3a66af	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5a7f3482	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5ace7928	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5bd0d79f	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6882ae43	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x86aff19f	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x87c62db2	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8ba10e0d	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8c0dbed4	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x996081dd	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9c907337	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa119f157	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb01d42ac	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb8f24753	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc16c5b3e	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc24204b8	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc4ed21cd	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc6538ddc	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc9123b5a	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xce7e644a	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd0369c80	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd33837a3	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdd841d7e	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xde8c715b	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe283136c	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe8c19681	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xea99fa1c	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xeeba0919	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf3a05f5c	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf7527037	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x5db9c404	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0df87d83	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x17a00eab	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x1d615d5f	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x21d195bd	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2ced92a7	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3d4c45af	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3e40971b	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3f72c4ad	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x4810f73b	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x52488413	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x635ee8a5	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x65210277	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6c51183b	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6fcb79a2	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x75930a8a	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc602187f	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc869379e	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe1293b6f	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe9edfc0e	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x23089f54	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x31979083	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x356c2541	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x415e23d5	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x5712fa39	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6503394e	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x7c164466	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8a03bc18	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa99a4b60	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbfa55a33	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc00a6b78	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc79f0a7e	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xca9fdbf8	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd77f4902	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd9061eed	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdde140ab	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdeaebc87	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe720d5cc	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xeaf854b6	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x49fa15d5	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x5f7d3085	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x62041e28	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 0xb583c603	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xca95d3c0	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xd1283fe1	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xe430daee	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x1329242f	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x1a1f199f	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x2c64a91e	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x8c6a931d	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xa832b3c7	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x1db492dd	vpu_get_vdec_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x5a829319	vpu_get_venc_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x7803d14c	vpu_mapping_dm_addr
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x91b79451	vpu_ipi_send
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x9934148d	vpu_wdt_reg_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xa8763876	vpu_get_plat_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xb37d6c5d	vpu_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xc843dfe3	vpu_ipi_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x085d8e48	omap_vout_try_window
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x0a59c11d	omap_vout_new_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x0d615dfe	omap_vout_default_crop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x3739df24	omap_vout_new_window
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x6e8a3074	omap_vout_new_crop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3d858696	rcar_fcp_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x4ad5d888	rcar_fcp_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x5fe6f6e8	rcar_fcp_disable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9877c29f	rcar_fcp_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9d94baca	rcar_fcp_get_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x29196404	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x597f5871	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xba6711ee	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcee1c3d4	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcf25c2a6	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xd0f2bae1	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x1dda9122	vsp1_du_map_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x369767c8	vsp1_du_atomic_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x6ab78cca	vsp1_du_setup_lif
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x998b4659	vsp1_du_atomic_update
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xb9622928	vsp1_du_atomic_begin
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xd1088d93	vsp1_du_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xe0982d20	vsp1_du_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x359aa9f9	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x43aaa5a0	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x471e63d9	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x7f6f8459	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x853a8de8	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe8c2f6fa	xvip_cleanup_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xf3cd6e51	xvip_enum_frame_size
+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 0x5e781a91	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x89cb4178	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x90f7dfc0	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x7b309c84	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x849de475	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x967570f5	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xcebef830	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xd8335e7d	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x05d26097	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0f748e35	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1aaa6953	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2aae2e88	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x3626a744	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x44df9e96	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4e4b74eb	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x56f37012	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x62541547	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7f49e146	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x999a4d42	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa1986a44	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb95e3c90	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xba09216c	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbe907651	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc345f3e9	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd056ad63	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd7b4e949	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdd036b62	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe3e5dc34	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xfe9275c9	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x858d4d98	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x6fa11208	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0xa7d97c4b	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0xd0577131	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x398bfeaa	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x7c4b7ea1	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x36a19de7	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x5a4e91c9	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x3d078eca	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xca0fd3b2	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xd58b4fb4	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x911c0ceb	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xc3ce8774	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x3d0dcfb6	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x086bc215	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x163f1269	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4076360b	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4723fb8b	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4bf20a2d	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x513cf006	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5760e67e	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5d0d3efe	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6a0e3580	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x74c9cb00	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7695583b	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x88cffc06	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x938eb35d	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x977c48db	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaf842eba	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb065e37c	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc2cb0364	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc5e07753	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe3fd53f6	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf5bd286f	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xbab3cb6a	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xc00c3d98	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x19064dcc	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x24aceabe	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x329eada7	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x39c1da68	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x445d51a2	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5477f8a9	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x58de7072	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6788f682	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x78cdd33b	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7eb8ca7b	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8052e387	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8e99e666	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9fc70e3f	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa56646e2	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd5a5e5f7	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf1552dda	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf709b09a	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf8bde453	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x50861f53	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x575a8d3f	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x8c61136d	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x95bc9386	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x07da17d8	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x8352424b	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xbca3706b	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0181dfd8	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1dff5bc7	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x2bf9c3cc	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x4d7c54e0	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x5da36e9f	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x6a440871	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xac4a6ba3	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xbe2e1a85	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd3a8bb38	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xdd474e10	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x03175996	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x047bebe1	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x17defe1d	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1ceab477	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1da27273	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x216cfef2	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2b42564b	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2d290722	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x31e4e035	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x385fd606	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x39487267	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x39d35fe3	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3ceb6fbe	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x483ea6de	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x487ff0ad	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4d0cbf9f	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x56bf0192	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5772b74c	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6adc377c	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6b440108	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7503190f	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7ef85f22	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x90dc26fd	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9f59384e	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa421d01d	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa5e84736	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xab324adf	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xafa42c32	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xafb33836	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb59d0c58	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb89dfba4	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc422e29d	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xddb6fba4	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe87b8181	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe9aba1f2	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x020084a7	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x10ced7a5	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x143cab2a	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x157af0d6	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1877234a	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x239ce7ac	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5d865369	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7ca9501e	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x895475d7	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa6664e90	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xae6ad74e	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb10624d3	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb71a0558	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc7df0f49	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc8562cff	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xce29fbd9	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdccd6098	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdcd6896f	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdd8c2707	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdfb45bb7	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe34ebacc	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xea60803f	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xeef75525	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf1015075	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x0fd0291f	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x4f5fe4c9	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xc2219169	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xc44739df	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x8d4c0848	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc87e25e7	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xcc0430c7	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x04424ecc	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x062052b7	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1322a2de	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x16691c67	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x178a4812	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x25a0b77f	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x263198bd	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28d7c7f2	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3a34fe5f	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3e3f746c	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3ed28482	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4083f0a7	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4b4faeb1	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4ca374f4	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4d1790c9	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x527968e7	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5870ccb7	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5a2e2ac8	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x60e7e5c5	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x61817752	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x69474d8f	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x69df989c	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x71d6cf6f	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x768de67e	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7747f4ff	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7af0858c	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7b5e49e5	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7cb6a443	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7e26aab5	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7f7cb938	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x81e26fbc	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x82843962	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x843be6fa	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8998b6e0	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8d597684	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8f830f8f	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x93571043	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x951d3d4e	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x977b1f46	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa5067bc5	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa65af562	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaa7eac16	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaad66303	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb1c5a5f9	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc22f4e4f	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc6fd5fcd	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd02cda1e	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd3e531d0	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdcd717ff	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe796f4e3	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe8770199	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeb89c58f	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeeb2f620	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf488edb6	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf489645b	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf65ae30c	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfa976f8f	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xff76573f	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x27ed2092	pl353_smc_set_ecc_mode
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x2eec2ab2	pl353_smc_ecc_is_busy
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x31112d75	pl353_smc_get_nand_int_status_raw
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x80ef3725	pl353_smc_set_ecc_pg_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x84eeb67e	pl353_smc_set_buswidth
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc00d163f	pl353_smc_set_cycles
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc37aa3c1	pl353_smc_clr_nand_int
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xe2603369	pl353_smc_get_ecc_val
+EXPORT_SYMBOL_GPL	 drivers/memory/ti-emif-sram 0x49a8a623	ti_emif_get_mem_type
+EXPORT_SYMBOL_GPL	 drivers/memory/ti-emif-sram 0xbcf322c5	ti_emif_copy_pm_function_table
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x42a63b14	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x4c18474d	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x50a2ccd5	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x2ecec5df	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x3178faf9	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x631b21cf	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x81e60fd9	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xd1cc905a	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xe87f2ad9	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xebda10f0	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x059dc721	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x45b1d1d9	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x4856e879	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xb9421775	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbde74857	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xc253e304	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xd5f6b134	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xff6c15ce	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x29775b24	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x6faec632	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xbbc0d186	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x116e04eb	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x1b775266	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x1f9fba8e	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x40049a85	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x9048b9c8	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x93691334	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xbdb674c4	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x840c7f57	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xb6888957	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xd24feb3f	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f22b1ba	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f2f6dfa	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1204468f	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x12099acf	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x24791931	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x25855d72	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x25888132	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x26ede129	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3d502ac2	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3d5df682	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4c17acb6	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4c1a70f6	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x51315b83	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x513c87c3	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x66b0407e	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x66bd9c3e	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7e6537ce	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7e68eb8e	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x86d4067a	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x86d9da3a	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x882fbea0	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb0b3e0ea	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbd1c0b53	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc5e11b76	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc5ecc736	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe6e0d812	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe6f12765	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf795939f	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x056ad0d9	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x176525b1	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x314a34e6	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x57df6e91	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xde87638a	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xf92188e7	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x09e95e0c	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x27754996	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4aff57ea	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5090191d	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5194248d	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x82386f33	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x85cb1e86	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa01862d9	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd25a0f31	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf3d04c38	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xfb9a2992	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x7c835281	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x8a915945	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x0019c727	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x01ab4bdf	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x3d772f5c	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x608f2d4b	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xb0969ff9	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x57574d7c	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xeecaf484	rave_sp_exec
+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/si476x-core 0x10b932b3	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1262e380	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x149c32fc	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1e728b1c	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x25797e85	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x30393218	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x33fca877	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3f782f4e	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4e0d249e	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4e75a0fb	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x528f8a9b	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5a3d172c	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6618e0dc	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x67f74976	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6f78b3f6	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7372eaab	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x75039c0f	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7e7b0d5a	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8a97a9ba	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x99614090	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9c6858c3	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaa5a52c7	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb9b89940	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbe459c16	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc6159b60	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc6318045	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc8ea2b45	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xccef21e1	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcd2ef6b6	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd01f459c	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd5dc38fe	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdd47e3f4	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf7915cde	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xfc21d94f	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0x7042e93b	ssbi_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0x9f37f940	ssbi_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x6c2d0650	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xf026451a	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x0352127c	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x281ff478	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xa4d438d3	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xfde9e938	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x13f40a5d	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x8766e915	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x97845ab9	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x6a5b5885	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x167a5d7d	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x28bf8895	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x889de64f	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa831b58e	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa8b8a224	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xbc8ae45f	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xfbe3dc35	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x048abcea	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1a0d5857	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2a197d71	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3261861d	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4caaa1fb	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x54fa5b69	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x57a05369	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x67a8d682	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6f93a4e3	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7a78c893	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7b64a9f8	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7fe70ca9	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x819674b8	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9b84a9a1	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9c3ec3ef	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa13523b3	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbc43161a	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc3e08d45	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc7104f2d	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd8654d52	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xdeb31978	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe5f83050	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xeaa17e1b	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xfaa7fdf4	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x52853e12	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x68a44ed2	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x75d57db6	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x7c4e6272	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x7fb0d9b1	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x964c9b0c	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa8a5f40f	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb80fa8cd	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xbaf19c78	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xccb8fe4a	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xed15c509	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf460a05d	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xfb135ed9	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x3ac685e8	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x4273d555	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xeb9e30f8	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xecf68e49	cb710_pci_update_config_reg
+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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x1ccd096b	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1da977cc	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1fbfa424	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x2e6d0eb5	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x96b23e19	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xc1fff922	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xde5b6a9f	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xe40f70b4	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x1c09888c	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3ab61f87	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3f2be496	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x439816f3	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x476a0a24	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x5a39b852	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x8951c0d4	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x90879e0a	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x5b5fa797	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x70275b75	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xa5b9de35	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xe53d6864	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xfaa00d2b	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0xbde90001	renesas_sdhi_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0xf260a975	renesas_sdhi_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x16ce7806	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x1b4752ec	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x3dd724b5	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x5fd6e80b	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x74b36bec	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x8628866c	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x97f35924	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xb1db4b79	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xffd03c47	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x68fd3d65	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x95e318f3	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xaaca3d1b	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x798e4581	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x8a778a07	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xf425c1d7	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x1bb0ec80	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x10fd4d24	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x54da1ccd	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x984cfa1a	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x5e53e128	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xdca0ad18	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x1220d850	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xdae89698	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x41a37640	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x6fc1c1bc	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xf71f9f6d	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0xebf75b66	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0xeee18ed2	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x6eedf7de	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xbe6310a6	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x06b9d7de	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1dc172bf	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3a8e401c	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x422195fc	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x44195d76	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x4b08cd23	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x60e90857	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9b9c09a6	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xaaf31eee	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xba7a1ab7	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd3f02673	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xede7feb8	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf435ede5	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xfc312bf0	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x0e862b03	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x23af1721	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x6ca94e34	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x732dba50	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x765fbeeb	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8144846d	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x9c5ad0fe	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x9f42f2b2	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xab09d648	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb12db4a6	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb24f5f15	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb96d047d	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xdf443b3a	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x0a3031ff	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xec5b5b4e	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x2015b0e7	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x33ce71e8	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x3a6b3acb	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x643e1357	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x6df2c30c	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x73664b2e	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0cc1e233	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x106e8b20	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x2625b292	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x36c1c582	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x37d9371b	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x38062ddf	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x3b83c308	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x4775f76a	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5035cee1	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5fe69f79	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6047a992	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x647f5771	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x666e228c	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6759a67f	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6d8457fc	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7b678d70	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7e2ca1a2	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8bed80a8	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xb0174d09	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc8216f7b	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xcca0b141	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xcd248c57	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd597e09d	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd75d8425	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xe0c6ec65	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xfdde281b	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xfdfd6cc2	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x01b1acae	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x074b313f	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x9d0e01c4	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xe4844de7	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x08677450	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x1098cbf0	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x400aacb1	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x7711d1b3	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb128c5a7	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb8ea4944	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf0ffc77b	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf9fcbd9a	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x285c4c48	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x5068269d	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x671de65a	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb68c74c5	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xa776dc34	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x14acd530	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x485bf83c	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5b6ba4f6	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x760df3b4	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7975841d	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7d238c7b	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x85135df6	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8e4852d7	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8ef55084	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x99ea9945	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9c7397c2	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa2463bce	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbd218032	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc84e3572	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xcd2c4975	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf1bb1bfe	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf5820ae7	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0539260c	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x08e07d50	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0bb27160	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2bc9dfe8	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2e1f466c	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x45debc59	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5332fe2f	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x705de3fc	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x950df952	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x969476f0	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd01895d8	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xdb28b5b9	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xdeff5fe3	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xeb101b98	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xecd0442a	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf7e76c4a	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x52ca3a4d	arc_emac_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x93a889e9	arc_emac_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01035e07	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02a15ceb	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06beb665	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07205d55	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b8a3404	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c29ee51	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1021278d	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12beff75	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x157e1427	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16ab43db	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x171be813	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b978dbb	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ebc0f7d	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f86e1ec	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f98a17c	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ff768d1	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2040a411	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22df4b95	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x233e5271	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24dfce90	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2768add7	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2abb4828	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e8890f8	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f2b5880	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3136c2d8	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31722021	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36a96d0f	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39e0ca0c	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c57576d	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d2c5e1c	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f30b9b5	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f75540b	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f7c5424	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42fdf9c5	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43fa1271	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x448f1e57	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47f1c47b	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x480c8f26	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x487273fa	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a2699d3	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ec7cc9e	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5345fc06	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x544db6f0	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56796a8c	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x574feabb	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b4f1da3	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d92f484	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6064f99a	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x611e95de	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63e261e0	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x644748d9	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x644e9e82	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6572ad0e	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x658f4111	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65e2b747	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x674c5dad	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d8ff48d	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e05eb9c	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ea68dab	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7555392f	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x756ece3b	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75ea6b38	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77cede15	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78dfac0e	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78ec6312	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a2420cc	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ad89a92	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7de645bb	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e240dba	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x827c726b	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82dd448c	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a8d5c99	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8dd44c15	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e29b40a	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ef0cb74	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90bf0167	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91b2aed5	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92fce4ba	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x939de726	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97b52910	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9928eb2a	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a0b3c06	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e1a5eec	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ec866ea	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0522be7	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8de0a3c	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2b732ce	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2b8f115	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb361e67b	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4f92c4b	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb653a9c8	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9354bb5	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbab95abe	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbb76bd4	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbd21d26	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbcc04eef	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc187c0b9	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1d4ae2b	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4921c84	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc65bf795	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc78a80f6	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc96730f1	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccbc45f7	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcdb691a3	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf43bf8a	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf7632d1	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd002970a	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3d0ff14	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9cb10ce	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd6579ae	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf09401d	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe118bf76	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe17043e7	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe22367af	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe509bc25	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe619d2e7	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6812738	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea276705	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee7bf9fa	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf02cc2aa	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1d9787b	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3aaf7d0	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7b3461b	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc472494	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe486e9f	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfebf9983	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x039612ff	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08b01527	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0faf7510	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14092e98	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x146e6877	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14c74144	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14e412e4	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x157bcff5	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19e9c6bf	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d207a6c	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1dd4aa16	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e557031	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2257e1bb	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2725dae6	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x281433af	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b447929	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c7a621f	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d582814	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ef512c0	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b0449ff	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ba6d5bf	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cb73214	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d72bd45	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3dfe0c59	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45ebee09	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c2b2d84	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4df785fb	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x517c7079	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5aed2775	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5aefb292	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ba5ed80	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c5a392e	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6236b9be	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62fe7151	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65fdbaf0	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6617715a	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68bf2bab	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a29ec55	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ab046b4	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d466ac5	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6da369fe	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7221baf4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b5337b1	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f2bf940	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fdbd90d	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83bdc655	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84b7f31c	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88690ea6	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c5f6c27	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eba202f	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8fd5ab10	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x966d46b5	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x975da5b0	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x98fe885e	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cda7126	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d41e672	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa50293c1	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6ca9cdf	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa82d8670	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa8e7bd75	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab5a527d	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabe68d51	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac0ca415	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xafa59664	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb65252b4	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7826fdd	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb2506a7	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3de265f	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc69ce445	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd0c9624	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce408544	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd046c6ac	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd21ad5ad	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8093064	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd98ca4a2	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbf07a3c	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0a14cf9	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1553834	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe72d6904	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeadaf9e7	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee0cb4cf	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefed1352	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf01d6025	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf289b777	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2ecdca2	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf38653bb	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf87fabeb	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa5bd56f	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x2695f52f	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x4be2f862	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe2178bdd	devm_regmap_init_encx24j600
+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 0x0e23df70	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x20ee68cb	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x62f71fa2	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xee003bf5	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x57d75c7d	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x6d10ac16	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x910a4f9c	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xf463de5d	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xfcaae6c0	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x06442b65	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x57f50589	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x5fcfcfb7	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xade6b5ec	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x7490400c	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x13335c3a	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x7ec37a06	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x8fd27cc7	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xb54618bb	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xd324a446	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x3826196a	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x673f5987	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x725cfa8a	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xfd9fb241	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x32453846	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xeb6d6807	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x018e6d36	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x03adbdb7	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x1d8087dd	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x24373994	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x332bf022	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3568c0a7	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x45421d02	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x46345d67	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x469e6a21	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4836a179	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6c969570	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7370b66a	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x77e3914f	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x791b2ed7	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x81e3da9f	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x9d1b7950	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb9226c66	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd8521f65	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x27d72b8e	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x9aa871b3	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x015b7f9c	phylink_of_phy_connect
+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 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+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 0x8b503de4	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xa56270a1	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xe951f1a5	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x06d17bae	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x43229387	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x6d3b3281	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x8001ef63	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xacee8fa2	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xb8d22f85	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xbd88d9be	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xbecdb64b	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xf487fb04	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x021a127c	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x1757f54c	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x3955709d	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x5146669a	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xabf5f233	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x33b1a481	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x37f3068e	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x566c0ee2	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x82bd1cc9	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x9b102964	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xbaf0bdb2	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd6acb55e	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd7372828	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf122d594	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x44130cf5	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x454e5d9b	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x50e357cd	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x7fc84b6c	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x9f5f0c13	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xdf46bb78	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x012fb2f0	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x219a9abf	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x230b4bfd	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x238acd50	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2537fee9	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2a970287	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x35c00155	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x38120a27	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x41fdbea6	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x517275fc	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5c87e019	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x606c4feb	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6508c465	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6712b8e1	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6b5e44f4	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x77bdaa1c	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x78b8f08f	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7fd55fa3	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x810a00a3	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8c672e62	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8db7afa3	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x91937960	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa42b5240	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaa957835	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb261d4fc	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc57fd159	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xce092143	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd3fa88b0	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd6116b50	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe2f124de	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe6e0a753	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf820201d	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfa84b576	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x3b31a2ea	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x57d7fd78	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x5dd6c20d	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xbdeb797c	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1a1bb3e7	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1faa9401	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x298f3898	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4b3c3436	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x5960d1d9	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8516975c	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x926498e4	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9608ed51	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9b84d3e6	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9d3fab23	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xab2ec4b7	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xbdf8ea75	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xca29a368	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xccd0c9d1	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcdb0cd8f	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf7a2e94f	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x770c88b8	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1818eff9	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x347dbdd3	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa1283f33	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe306931e	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf13db624	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0189c36f	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x038450fc	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0571e7b5	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0756b07b	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0d079643	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x18856ac0	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x198acbd6	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c48129a	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ea284e4	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22026c52	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x224b91a4	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2360efee	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x26d8f832	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2b101efd	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2c0f571f	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x30ee2940	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x39353bf1	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3bc4a517	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x472424f6	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4a6996fc	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x55a58e67	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5704956d	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5ef4a44d	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6414355e	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6a574804	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6ab22c16	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6d5ed02c	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6f8e013c	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x788dd35c	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x79507cf1	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x82f7987f	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x88ff8897	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8a6a2abe	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8f9a13bb	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x93160e9e	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9a610579	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9b3fe9f6	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9bd65b20	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa095a4be	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa1b3fc59	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa3c1e4d8	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa52a1f92	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xacee8b72	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xae9aea41	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb1e39cb3	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb38254cd	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb5d515cd	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb728848c	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xba235292	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbabc0b6e	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbd645b4c	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc4e04600	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc8d42aca	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd2b996c5	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd73e75c2	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdec9e66d	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe134a24c	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe8f5dd45	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xed3c37d2	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf8633c00	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf9c0542b	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x08e1fe21	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x0ea1add3	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x159a0e9a	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x25f19cbc	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x33dc2f45	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x61f85e71	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x81fc5477	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x8af52381	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf09dafb3	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0ec8e26c	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x103a23a9	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x10ecc9b5	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x2a704c87	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3064a913	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3b76e3ad	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5465f86a	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6ed7a001	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x88f653e8	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8b901120	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb70c1446	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xbeff0d3a	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xe249bf31	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf0ebabb2	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf7a6167e	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfaccdf45	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1531f90e	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x426ca272	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x49274fb2	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x6842b3e6	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x75d176db	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xb7bffeaa	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc5b4a295	lbtf_bcn_sent
+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 0xfcc26784	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1bcbd9d7	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x24a33788	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x255d1456	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x28d3b848	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x47564163	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x487d9469	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4fc7083f	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x50cce3b7	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5823d2f9	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x617c5c45	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x67e6929e	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7f091dd7	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x837e62f0	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x925b54b1	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x986e8fb4	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9fad3e55	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa116ea80	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc53542ff	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd3dec614	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd99d45f3	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdc9fb3bc	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe13a76ed	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe276205d	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xeaae04d7	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0470bcb6	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0d4f6afd	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1517b227	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x203adda1	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2352f1bd	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x280e2f8c	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2eee10ee	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x35119ce5	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3b492bab	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3b8cdc91	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3edef714	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4081c20a	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x42ab8972	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4d9fec79	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x551c6467	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x58b96119	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5a1707cf	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5d5108ec	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5daecce3	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5fa0b084	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x62bb2369	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x62c8dcab	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x681855a9	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6ec1dff7	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6ff257a6	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x733035fe	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x78afae67	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7b54a4a1	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7ed875ec	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x809573a8	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x81161d1f	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8258199b	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8360e84e	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8937d93d	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x92e38b5e	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9aae305a	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9bb8565c	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa035d9bb	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa50541ab	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xaaf50ebc	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xadbde36a	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb21a97c8	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb6ee2bc5	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbc6e1619	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc2a7f889	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc4aa8df4	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xce56fe82	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcefc83ff	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd41f815b	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd6b9c1ee	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd85f23cf	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe07c7963	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf66a7950	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x4472cdf3	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x6d83f2bf	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7885c91b	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x926ae34a	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbd076793	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbe61130b	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc3b74b9b	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc52ed7db	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x0ccdbdce	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x3891adef	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x3ca66029	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x474086b8	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xac036cd8	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xaccf5a95	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xec0b0bd5	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0183a6e0	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x024b2c7d	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x03fd8194	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0965f3b3	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0aada3fe	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0aeeed26	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0c6c3e8d	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d9048be	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x13980c2e	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x152db7b3	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1ba81eb5	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x27cf79ed	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x355d787a	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3a23d3d4	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3c454af3	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x412259e4	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4300b8d6	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x438ac05b	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4391174d	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48cf2758	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x52dbe7f4	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5b436a90	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6039ee3f	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6333b352	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x694393d6	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6999ebbb	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6b7e1d82	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x73a202eb	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x771d520b	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x782257dd	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x847da456	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8aa887cb	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8b0f00c6	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8d3d6ac0	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e84756e	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x927de6b0	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95958b23	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x98f4091b	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9995ad72	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9d52554a	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa3a7da47	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa3e5aa5c	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb55dccc3	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb65d0821	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb799c972	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbe9f75ed	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc61b7913	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd091d076	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd2e1240e	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdbaf3f64	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdcf780fb	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdffbd4bd	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe2138551	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe668b47e	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe91ead86	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe9b6ae14	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf4d3a573	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf5989863	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf7099623	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf839f7d4	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf95b8272	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfac44aea	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfeac153f	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x211324a8	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x5c3f9c63	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x68389173	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x892cef2c	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x912a3347	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc54a5b0c	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xcdfec3c4	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x000a82b4	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x08847595	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x113bbedf	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x169ae929	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1da70f5c	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x35bad7d0	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x36fa8230	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3809b890	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3cd342c9	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x57209315	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5ecd354f	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x689035bf	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x69e1f60a	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa75cbe27	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xaa6eb3ca	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xac964140	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc8718435	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xcae90312	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xda7a0ff4	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0221801c	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x182ebcc6	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x22ba273c	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x4b4f49a9	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6bcceb61	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xcd6cd0c6	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xdb0b4112	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf6abc871	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xfea3b951	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0706da1c	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0dba58ad	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x14376120	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x169b880b	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x20aadb3d	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x24e64782	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x293d24de	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2a242e2b	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3e3fb53c	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3ebc52d3	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3f4358ca	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x470f8527	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4db5a7b9	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4dc84403	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5143c307	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x526f9f78	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5d0eea7c	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5dd8dcaa	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6944a75d	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7119b15c	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x73392755	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7433dcf1	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x796ed937	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7f499f45	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x81c54a81	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x92807b14	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x955d032b	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9594c46a	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x960986a8	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x97c1893f	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9bedd943	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa02a3658	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa224370f	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xadc48121	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xae4380f6	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb9164c5b	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xba6ceb94	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbe7bcfd6	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd928a6c8	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdafe8b2e	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdd96b50e	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe9a6b7e5	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xedc2f4f9	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf39e081e	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x04984f70	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x125494d8	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2fa6b15c	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2fd80919	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3be1f117	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4aab1d79	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x532d5845	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x61cadc01	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x88333514	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xaac4ac16	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbe821694	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbeca3283	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbf14f1f4	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe9c215eb	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xef4b9995	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf908ba2c	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x002ecd2a	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x06cb92ac	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x09047a5e	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10895783	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x12701d43	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1a8cecb7	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x265b3e54	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x29721c9b	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x30995df2	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3cf792ca	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3fea73e0	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x446f8029	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4a11f12c	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x571d5191	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5a932209	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5abf684c	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x623d97bb	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x65866ae3	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6acb9d59	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6f4adb20	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x70011aee	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x72a6f750	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x78fd82ca	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7b0d0c5d	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7bd84aaa	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7f285e00	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8206c4ec	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8810477e	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa5431d96	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa57a09dc	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa99f1b31	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb4ab732e	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc7797fcc	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc7f4a43d	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc98a5307	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcc3e50c8	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcf361a5b	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd0d630bc	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd1ffe2fb	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd392cd70	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd8735252	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdc72064f	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe002e384	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xea4d1a2b	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xec093471	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf5ca320b	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x6c0b0d9d	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x70417b5b	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x99caef63	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xb1057c0a	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xd8d9d960	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x6d148f7c	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x6ec5b378	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xcbf55f03	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xd5e9fd4f	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x12889a97	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x19a37df8	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2189b683	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2ccd7686	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x58364e91	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5c55c948	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6b11db6f	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7feba2c8	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x80392cb9	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8d709968	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb14ae6a9	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc0a438c1	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xce445d4a	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xda7c9b67	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xec2e8374	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xfaf46b8a	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x33546d34	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4ce8669a	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb230f5ac	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf1a9217e	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x107db704	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1206f10c	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x20f1ca99	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x25f1bc10	rtl8723be_firmware_selfreset
+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 0x446457c3	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4756b3f2	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4d1d55e6	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4dcd9597	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4f0271db	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x56766d22	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x588964d1	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5f5e053a	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6c386ad9	rtl8723_dm_init_dynamic_bb_powersaving
+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 0x9007246f	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x96a8beea	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x97649194	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x98673c16	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa074892e	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa626a2ff	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xab6eeeed	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbe9fa70e	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcb40c64c	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xefb2012e	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf4d211db	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf6db085d	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x008aee7b	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x11d9580d	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x12509ff6	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x187e07b8	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x272c54d6	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c9eab11	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e2125b9	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x35009b96	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37b993b4	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3fd0c9c9	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9c263c91	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9dd991f3	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa1329a8a	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa44edc74	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa959c9ce	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb3ab5f07	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb9c8f23f	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba87a69a	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd00b2139	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd06606ec	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd234597b	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd81e524c	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xef721ccc	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf8ff6add	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf93946a1	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfd3c096e	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xff2b4e5d	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x232a9c9e	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x68f072b4	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xa01c1ba7	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xaf0c1d4c	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xd6e79be7	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x03e656b6	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x131f286c	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x7d9e30de	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x7f997eac	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x3ebe52a6	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xc5d234e1	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xe62384a6	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0617d488	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0a62cbd2	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0ca5dc08	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2de6bf77	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3062367a	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x325d4f52	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x42d1a12c	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x56dd5f02	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x60d7f116	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6276a44c	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6293706c	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x70d73101	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x79ca83f8	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7a8b193f	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x80f3a60a	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8891407b	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8c0a6a65	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8c3ab737	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x931494da	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x95038fb3	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x978f4d96	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9bbc55b9	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9c41c286	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9fd4cc57	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa6c5761b	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa7522ac7	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xad997cac	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb03b73c9	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb2a90d4b	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbba154b2	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc1db71fa	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xca7c8306	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcb3fd4eb	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xce59ecec	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xce9d506c	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcf4b66e3	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd4d1a0dc	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdc16ae1d	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdc2a4513	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdd0944e9	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe0be8b67	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe0dadb39	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe2be4ba7	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe69b21d3	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x252a045b	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xbe852790	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xbf4c2ac1	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xecaff30e	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x16fa855b	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x39d22ba4	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x4a1c08f7	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xa71f7b65	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x04c91a73	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x38ef65a5	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x47a9f729	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x57fb3610	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x6590457f	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x700f1217	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x96062689	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb7051353	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x7fc1b64f	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xc87d59f0	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xf51e50fd	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 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 0x529057cd	ntb_transport_unregister_client
+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 0xab8f9fba	ntb_transport_create_queue
+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 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf94f2646	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x033fc991	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0bcd9021	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0ce68c0f	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0f89bfd0	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x10c3f3e6	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x177c11d0	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x19876274	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1a1520fc	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1a68bbb2	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1bc4920f	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1ca6f2d7	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1da05f4a	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x238a3fd2	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x367293a9	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x402c7e58	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x58247b1c	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x69b109a1	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6f387d06	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x70fe68f5	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7f46c0e7	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x80ca9f6e	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x88623a59	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ab19397	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9029d510	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x957cdf94	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x974bf581	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa1c8f8ee	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa32f22f4	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xae7ab893	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbbe690d0	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbe8ef255	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd1283b76	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd5d9b7bc	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe1f3f8a7	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe610f659	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe7979160	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xeb33e5f4	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xef97b1ed	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x01246d87	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x06fd69d7	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x382e6156	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3a7fa898	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4078675a	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x41cf82ed	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x5357f13f	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8a59d939	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x999b6ecf	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa8cb9f38	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xda08fb69	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe8339b79	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfcc2ed3e	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0xc9a511f5	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x0c37ea96	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x1faf3ec5	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x46303240	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x49862c6e	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x54e3c012	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x586c8958	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x765dabe6	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x83e50c5b	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb1165ee9	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe20fd1f8	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe68b71cd	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x87927681	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xddb93c97	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xe2543955	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xfee33ec7	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x10dbadf3	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x05185bce	ufs_qcom_phy_save_controller_version
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x0f031e4d	ufs_qcom_phy_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x21a6bbaa	get_ufs_qcom_phy
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x452b1713	ufs_qcom_phy_set_tx_lane_enable
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x73bb7271	ufs_qcom_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x7e1b82d0	ufs_qcom_phy_init_clks
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x99c05634	ufs_qcom_phy_power_on
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xc282ffda	ufs_qcom_phy_power_off
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xf121a35b	ufs_qcom_phy_init_vregulators
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x08a0d44b	tegra_xusb_padctl_usb3_save_context
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x0d046a98	tegra124_xusb_padctl_soc
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x3c3d4036	tegra_xusb_padctl_put
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x658e7421	tegra_xusb_padctl_get
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x877e7374	tegra_xusb_padctl_usb3_set_lfps_detect
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0xeffcee49	tegra_xusb_padctl_hsic_set_idle
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0x6bad1126	omap_control_usb_set_mode
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0xb324f415	omap_control_phy_power
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0xe1b1f4b8	omap_control_pcie_pcs
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-usb2 0x00d48f33	omap_usb2_set_comparator
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x0592192d	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xa07bb7d9	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xb5379f50	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xe0016789	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x51e4aace	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x84aecafa	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xfac3309d	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x03ce2794	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x44dd11a9	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xbc95bce7	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x2c94fb1b	ptp_qoriq_adjfine
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x2eae82b0	ptp_qoriq_isr
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x9d6aaece	ptp_qoriq_gettime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xbaead498	ptp_qoriq_free
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xcbba04a3	ptp_qoriq_settime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xd67bd762	ptp_qoriq_enable
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xee693b74	ptp_qoriq_adjtime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xefed2057	ptp_qoriq_init
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x0008915b	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x1db7c2a0	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x389d43ba	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x7469d772	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xdd48eb86	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x020daa22	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x6630e8df	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x8870f660	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x9918d0a4	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xa62763ea	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xe196a79e	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x1abf2879	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x01be833b	qcom_register_dump_segments
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x01f7ff3c	qcom_add_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1e57f158	qcom_add_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x25067878	qcom_add_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x31bfd40e	qcom_unregister_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x520cd93b	qcom_remove_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x86a84622	qcom_register_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xa9d3447d	qcom_remove_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xe2e8ced2	qcom_remove_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x2f309a8e	qcom_q6v5_prepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x3bfa71d8	qcom_q6v5_unprepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x659f89de	qcom_q6v5_wait_for_start
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x6c4414fa	qcom_q6v5_init
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xfee17a18	qcom_q6v5_request_stop
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0x82944614	qcom_add_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0xa881c6fc	qcom_remove_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xf93fec01	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x72dd75d9	qcom_glink_smem_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x9d4eccc3	qcom_glink_smem_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0628a91e	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x07ab39c0	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0e03108e	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x10da70cc	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1aa45e19	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1ef24c07	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1f0bb5ae	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2a6e0015	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x33afb16e	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3789d8e5	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3fa6fdae	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3fe34c34	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4e2bf02f	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4f8b1196	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x561eb501	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5efddf8e	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6a7f1344	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6da558c3	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6fde1677	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6fdfcdbe	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7514d1bc	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7cc4a4fa	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7d410bab	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x81b5946c	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8c095ab2	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8f05ada6	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa8aea372	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa8bbbb6b	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xab98e0e5	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xad6d6d00	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xae4e3b9d	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb831ea44	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcfe23176	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd267f219	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd7c01e54	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdcfd0964	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdd64a02c	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdda3d8a7	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe4c1fb43	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe8254bb0	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xea552697	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf3485a1a	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf441c967	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf76db0d0	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xffc5fb73	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x06399e1c	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x2fdaee26	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3689f200	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3c5d0171	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x536b8fe9	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x563a1b68	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7bbfa272	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xacb2e798	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbddeff23	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc24f426e	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcd52fca0	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd5c1121b	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xded393d5	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe664071e	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf14dbbcc	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfa6af1a0	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x01ef5b38	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x02fe77bb	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x1de01ddd	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x73b8c28a	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc0e9d25e	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xcd880311	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd596513d	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xea0b1f54	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xf5735439	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x559c2254	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0395b819	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x03ea2b1d	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x09b21bbb	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1363b413	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1467dcf5	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1721279a	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x20f229c6	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x23034edc	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x300c0942	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x36b492f5	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3c06aead	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3e3f6532	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3f1c5882	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x512b93b3	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5d45ae93	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5d6859b6	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x673e4e26	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6ef44405	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x71e96ebe	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x741d2429	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x75895871	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7a3f046b	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7fa0256d	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8c188663	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x96a9985e	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x995d540e	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9dcf44b1	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9f5204a7	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xadacfae6	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xaffba3cc	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb3419d98	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb4826772	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc4fd4fc7	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc75f4f45	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc9e178d4	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xce043fa1	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd4ecc5eb	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd55efa42	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd9d1faf3	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe497eb20	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xec144554	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfd47e9f6	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1a7d4609	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2f1aca6f	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x35bd5241	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x40c6b2ad	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x456dfc97	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x478a262e	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x499cce44	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x581b41d9	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x606ebb33	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x66d23a34	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x74b69972	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7a99be68	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa35de716	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb5a8859f	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xef1b47a5	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfbf3e370	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xfe251ed0	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0016f732	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x115507cd	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2830a273	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2834ab65	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2f42000f	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3894eba2	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x455bf1d9	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4b371c43	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4b90b36a	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5279850f	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x59d615f0	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6543f48e	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6a60c77d	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc4fc7ab7	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcee54fa1	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdecd9460	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xded5e1af	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe19a79ac	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe65f2e03	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf2f4521f	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf73c1619	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa9e8d66	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfabf65a5	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfe5f9c26	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0585287d	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x191ccaad	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1e37aa0c	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x26226f72	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2ec999d3	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2eda3fa1	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x37235c4f	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3b1ae710	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3e1d03ff	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x43453206	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47569402	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4b41d2ae	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x50d60d69	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x547efe32	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5d9d2b2c	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x63cf6fc5	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6474feef	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x64848647	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6520fec2	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699f84f1	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6c09f3d1	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x700f075b	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7591593f	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7cd7d6be	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x83e20a47	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84bd608d	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85a2bcc2	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x87d477af	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x95bfbb11	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x97b88fa6	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9a77a1e4	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa3c2afd8	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xad8a3b61	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 0xbed1c676	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc1a8ed67	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc85d5d1c	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcb5577a6	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcdcaf963	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcf1dd477	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd56317d5	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdab8ec1e	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe23966e6	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe49c7709	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf7f24c8b	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x0edf6824	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x37a12361	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x68b78d91	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xa3f853ea	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x10664fa0	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x0b2c3708	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5c93d30e	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x89fc2e60	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9ef3dd08	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xa028de14	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xbbacae3e	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x0338526b	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x56c2689d	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x60001662	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8bb91768	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x9125f7e9	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x94b737d4	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xadee582e	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xba3bff7c	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xddcac38d	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x1d8cda13	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x269fffcf	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x35c1f180	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x4b789b99	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x690cf2f7	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x6b26fdcb	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xfefa735e	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x0cdcab7f	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x4db0eee7	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x7999ef39	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x7fb31af5	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xc5d9e1d4	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf5053075	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0a4a0ea1	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1612cdfd	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x18ed2ac0	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2588ea41	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x38758224	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x499db16f	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x49d47ccb	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4cef22ee	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x58c3dda4	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5ac1d8bb	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5b215a04	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x633be24c	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6bde0227	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7b96ab56	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x83d8ce4e	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x934b6aa7	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa0702cad	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa3ebaea2	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xac465c79	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb5786df2	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xbbcc4b4e	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc90e8fc7	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc9599381	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc96e9ce8	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xed63cd47	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfc71463a	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x494128eb	meson_canvas_alloc
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x673c5a86	meson_canvas_config
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x77f1b597	meson_canvas_get
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xfbd79150	meson_canvas_free
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x392df8cd	__apr_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x6541980f	apr_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x88f9f391	apr_send_pkt
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xb595ea63	aprbus
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x06285798	llcc_slice_deactivate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x09afc16e	llcc_slice_activate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x14f99b76	llcc_get_slice_id
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x2027e82d	llcc_slice_getd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x62ff6e92	llcc_slice_putd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x69e1e01e	qcom_llcc_remove
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xd1358db8	qcom_llcc_probe
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xdffee709	llcc_get_slice_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x97ac0683	qcom_mdt_load
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xddc4a978	qcom_mdt_get_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xe5025e4d	qcom_mdt_read_metadata
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xfa154c6d	qcom_mdt_load_no_init
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x0a45f73c	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x1bd7fb4f	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x21daacfb	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x1ddb0e72	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x23385321	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x2b7ac6db	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x486e184c	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x66b52998	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x7a1e63f2	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x05701d25	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x2c7a40bb	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x7398da5a	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xb2b97d2d	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xd92f7b74	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x9cd6fd2c	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xe90edc7c	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xeefebbfa	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x42ecd33e	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x48f589b7	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x5be750c8	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x619e8745	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x659a2b73	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x80e053a5	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x99d591ec	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa8aab22c	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xbd8d6c76	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xbee3063b	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc33506b5	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc6380b8e	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xcdaa3f26	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xde8d93f1	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xdfc0237f	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xeebe28aa	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf4590844	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf8dbb0e5	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x7fc70856	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x022cec52	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x09348806	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x123d54ae	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1575135f	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x180ddade	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x19fd8b76	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1c32ad9e	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1e25f522	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x24a17e9e	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x26b7dae2	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x27dcbc1c	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2a354b32	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2fd69bc5	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x34fe8258	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x351f7219	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3575745b	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x46141917	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x46f4462b	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4da2c404	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x56ca6b06	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x56f2b6bb	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x610929bc	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x62139ca4	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6553cad1	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x72f2dabd	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7c603837	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8f5fe553	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa00289ae	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb56cb95e	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb8bad5c9	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xce1bee1e	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd268cc26	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd78ef4db	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xed439e11	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xef39e1ec	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfabd10d8	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x36f7fe7e	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x3f634279	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x5585a750	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x76f7e320	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x7ad331c8	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa2c7d56a	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa6aed0b0	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xc93d8215	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x380c6b2b	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4e307e77	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x665720d2	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x88fe2213	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x9e160d68	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xe0fc2347	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0xc46fb61c	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x1bf8358f	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xc5735b41	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x023cc724	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0496256d	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0ef36d57	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x16115d29	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1be01ae4	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1fcd4cf4	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x3c8a166b	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x4b8fe783	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6b30e36f	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x949c0224	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xad1e8536	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb16ba9a5	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xd0caa8b5	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf9912c01	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x9d4c5293	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x9deae4eb	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xebb27e75	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xa8589812	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1c96cbfd	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x24262a31	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x34e2cbaf	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3538e44c	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x36508c99	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4dbbb3bc	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x669ca4a9	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x82314077	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xa2fd5e34	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb0119a8f	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb1736f8f	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb989eb84	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc0e3f189	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc4b63169	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xcc3dd21b	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xe5fce1c1	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xad2e66d9	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xad5ea242	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x164fe2b4	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1ce4ae55	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x37ed584f	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x39d49781	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x662b12b6	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x740027e3	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x79a62afa	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7ba9ea00	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x8f4df407	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x911421bd	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xac397b84	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb591f5fa	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc1c953a1	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc565a1c1	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xde645185	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xf7f598e4	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x5febe31b	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x8ac2f288	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x99230ed5	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x9c759ea4	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xf7d1468e	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xf98b621c	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x12feb1d8	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x212dc9c2	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x4fcd392b	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x790ab1c0	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x7d13f213	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x91938b9f	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xbb22306d	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x15142262	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x15f0c41b	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x2266f109	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x249a8f96	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x81f5c61e	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa7568633	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xb52f3434	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xc74429b2	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xda1a8b7d	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xdbbe4418	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xe74defa2	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xea176b4b	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfac58a8b	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x18574d0a	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x1fd45788	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x50b818e3	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xc8ff126d	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x01072c7e	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x21497a45	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2b0015dd	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3f0d1d1a	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4d6d9791	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5329f0ce	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9418d55f	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x945eeeca	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9b016ef9	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb2f77909	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbf2cf0a4	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xcd4c7a2f	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfe701eed	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2288b7c4	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2d2839d0	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x3df24ab5	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5ce982ee	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7717a3bf	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa56d366c	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xaf75b3bb	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc284da01	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xd533e647	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xdb91a85b	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe577ecdc	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf2c0d09a	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xfc06d37f	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+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 0x864e750a	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 0xee699c45	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x71ea1753	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x73b6fa55	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x51d4655d	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x76bb99c3	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0xe837d40d	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x190ded11	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x2743351a	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x299cd29c	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x37b26347	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3e7b6b84	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3fa892ba	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6b2bd03e	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x79554894	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9d1bcac2	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa8132f0e	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb7116695	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb8769f36	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xc267924d	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcdfaac38	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xdd40de43	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf0bffc27	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf461ea58	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x03c2b78b	imx_media_init_mbus_fmt
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x0861cecd	imx_media_enum_ipu_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x11e9b729	imx_media_dev_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x21ea4d5f	imx_media_capture_device_next_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x27852dab	imx_media_find_mbus_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x2dea1896	imx_media_try_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x30c167d1	imx_media_probe_complete
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x31d584d6	imx_media_pipeline_csi2_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x3bbafdc8	imx_media_capture_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x3f6792de	imx_media_capture_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x415c95ab	imx_media_capture_device_error
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x43a8df38	imx_media_enum_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x472c9a2a	imx_media_capture_device_init
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x566c9a35	imx_media_capture_device_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x5df66219	imx_media_create_csi_of_links
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x60dd6a4a	imx_media_pipeline_set_stream
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x7513eec8	imx_media_init_cfg
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x770f0b78	imx_media_free_dma_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x78cd1b03	imx_media_mbus_fmt_to_pix_fmt
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x859040c5	imx_media_create_of_links
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x8760f64c	imx_media_ipu_image_to_mbus_fmt
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x88fd859f	imx_media_alloc_dma_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x88ff2027	imx_media_find_subdev_by_devname
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x89bf6e05	imx_media_of_add_csi
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x9161759e	imx_media_dev_init
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x94c59d04	imx_media_pipeline_video_device
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x9ecbc324	imx_media_find_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xa631199b	imx_media_grp_id_to_sd_name
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xa98ba391	imx_media_find_ipu_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xaf171c27	imx_media_find_subdev_by_fwnode
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xb10d2c44	imx_media_add_video_device
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xb816c87d	imx_media_mbus_fmt_to_ipu_image
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xe1f8ac28	imx_media_add_of_subdevs
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xf7918930	imx_media_enum_mbus_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xf90c1ac4	imx_media_pipeline_pad
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xfa79d29c	imx_media_pipeline_subdev
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x47a2ec66	amvdec_abort
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x47b06839	amvdec_write_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x7883fb6c	amvdec_write_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x867c4dce	amvdec_read_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x89543ffc	amvdec_read_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x90b2da1f	amvdec_set_par_from_dar
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x94929b0c	amvdec_clear_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xae05cdcd	amvdec_get_output_size
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb5482bbf	amvdec_add_ts_reorder
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb6658c7d	amvdec_dst_buf_done_offset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xbb86922a	amvdec_src_change
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xc218cbf1	amvdec_dst_buf_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xc44f0b13	amvdec_remove_ts
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xe0b5d05a	amvdec_dst_buf_done_idx
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xed4d3392	amvdec_set_canvases
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xf263f0f3	amvdec_write_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x18dc4113	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x244cbe2d	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x27b55388	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x29096fa4	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4d278908	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4d7c4410	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5351e018	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5f8b8b16	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x65d53374	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x9ae009c5	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xa6173d53	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbdb8dc47	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xcd058964	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf3685e59	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/nvec/nvec 0x54767e1b	nvec_msg_free
+EXPORT_SYMBOL_GPL	 drivers/staging/nvec/nvec 0x915fa254	nvec_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/staging/nvec/nvec 0x98400e0e	nvec_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2e7e21d7	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x38f4df2e	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4e062222	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x5962b398	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6b11a038	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x7dbdeffe	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x802f4e49	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8181ceec	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa49f176d	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa713f1b4	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb26e7883	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb87ccff6	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc505fa03	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd0198390	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd36b6b07	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdfbab138	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe3c982a0	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe599f7ed	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf41c727c	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x4c9cbdae	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xf9b7dd51	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xfa11761c	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x4a90a8a0	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x5a0f46dc	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x72b31b4b	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x981bedaf	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x9b213827	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb6de8f50	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb95ea5b0	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xbafe2ac4	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04fb548c	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x061339e9	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x07e015cc	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x10b38a69	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x126b208d	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x14917bb7	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1ab4dc57	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x24354fa6	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x31f1696e	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x33502e80	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3798978a	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x37a3a027	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x396026ab	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3be9205c	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3cf0146c	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4883e21c	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4be62531	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x56221110	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5667d66c	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e2fdb45	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e4bc088	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5fcb8fc8	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x65d01c2d	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x69348db0	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6b51a594	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x73d4af31	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7dccd9c5	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8631b8b4	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x86e813db	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x89b9c358	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8b7ae504	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x921d8f31	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9693a384	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9e69eb2f	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa5328b0e	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xaa152c62	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb8d5fda9	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc68c5912	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd2c4820f	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe40fbb3b	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe86ddddd	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0xf240457b	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x116f0438	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x381cb62d	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x40628c69	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x41a1adc3	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x5b9577bd	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xa4a7686f	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xe459b8ee	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x01e205c7	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x185f163c	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x1bd1d0ba	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x35ffa629	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x366b8725	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x470c167a	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc543b60e	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xe1a64793	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf4654c3f	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x06fb5b5b	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x1184d5c4	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x23b001e2	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x4bb672f6	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x55214f58	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x785e041e	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7abb13a3	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7c717873	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x856ebfd7	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8c101248	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc97afe43	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe0b4ce1a	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf871c3d7	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xfe096d5f	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x053009f0	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x0556c669	tee_client_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x0c3e35cd	tee_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x2e40de1a	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x3e78d242	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x3fd86d76	tee_shm_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x4e017c53	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x6bdef87f	tee_client_close_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x7f3b2c8b	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x870e3fdc	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x9f102d14	tee_client_open_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb52caa88	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb7b5af86	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc5e9f8f4	tee_client_get_version
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc87a4271	tee_shm_put
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xcdeb1164	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd8b8fd78	tee_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe0d3e3f3	tee_bus_type
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe3a12b4b	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe74413b6	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xeb002471	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf3feab29	tee_shm_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf5e9eeb4	tee_client_open_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf90922d5	tee_device_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xfcc89022	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x57a9be31	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9dd09537	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xb1100d4a	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x3353d6a5	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xf72bbebd	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x28749d93	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xb886d69a	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xddd89d3f	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x795feef8	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x964bfee1	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x9aba827d	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xb580bcac	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xce061538	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x00139c0c	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x22705154	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x74266d33	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xc60bbc5c	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xd93bb25d	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xffd6c471	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x2d59936e	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x3274e4b4	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x405c9d52	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x50ffa90f	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x5bbdb939	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xd33cab92	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x04637a23	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x07a16bfe	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x2f972854	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x7eca0eed	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x838a2dd4	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9276bc24	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa376101e	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb002f7d7	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc27988b2	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xca6eb7b9	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe0389b4a	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe099fe28	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe75ef908	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf062722f	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf399b283	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x10bdcd37	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x35067ec4	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x3e50c373	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xf54dff38	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x32b509d2	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x3df5db03	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xb1956bd4	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0d75ea13	fsg_show_removable
+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 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 0x2462511c	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 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 0x423845e4	fsg_ss_bulk_in_comp_desc
+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 0x5fd9ebce	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x63577d98	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x648f5286	fsg_store_ro
+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 0x702f351b	fsg_common_remove_lun
+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 0x818acc77	fsg_lun_fsync_sub
+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 0x8ab61b84	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x8e28b1b8	fsg_store_nofua
+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 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 0xacade694	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xad99dbe6	fsg_show_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 0xce0a6b07	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd095b7b7	fsg_show_cdrom
+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 0xd446b659	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xdab3ebbd	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe7be7d29	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xeac4469c	fsg_show_inquiry_string
+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_rndis 0x0363a3ea	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x0d6de96d	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x169e0db7	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2c594039	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x37e6e7a2	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x837cd775	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x91989a72	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9bb05cb4	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa4fd1bd1	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xb58e1c95	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbf6ad8f8	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xddc5fe62	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe1c755bf	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe929c27c	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xfb474f89	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x02193964	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1c54651c	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1ef482f4	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1ff752d4	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x27e464be	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x34e99ea1	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3de00702	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x44e8ce34	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4500bc7c	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4b8d024b	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4bb3a52a	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x53eadcc3	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5bbfb054	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5d972064	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x60b982bd	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x62693d7e	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6504402d	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6cf705c5	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x72d2084a	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8407cf2e	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8b7cb7f8	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8c7abbaa	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa62a7d42	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xae555517	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb813ba33	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc5cb1f01	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc8c54d69	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd4f631b0	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9d3c45a	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xdfb79555	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xec8494a2	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xecfad291	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf0bcffc2	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x0a505b6f	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x3ca3b8a7	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x4bbca300	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 0x69a9df05	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x7740aaab	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x7b397427	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x7b9261c1	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xce8c6a55	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xfccf6218	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xc602586e	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xee4617d0	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x04576c7a	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x19661bb5	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x3ab6dbd9	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x63dab08a	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x9aca9c71	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xa3ebee21	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb604a057	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb9d1aeb9	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd0c8f403	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-am335x-control 0x2dc04b45	am335x_get_phy_control
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x02741d42	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0x1d6d9131	tegra_ehci_phy_restore_end
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0x88610772	tegra_usb_phy_preresume
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0x9cdd3485	tegra_usb_phy_postresume
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0xca064ba4	tegra_ehci_phy_restore_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x65955be6	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x123d6b19	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x327ef018	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x39472be8	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x41e1542a	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x424c6936	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x47988a32	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x481b99b3	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x4dc543de	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5da91b4a	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5e346b63	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x63eb19f3	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x7ee66b8f	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x9086b50e	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb48f95b3	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbcaf06cf	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc7db42ef	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xcf751453	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd07a1f0e	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe0f791fe	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe9957f24	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf77de23e	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x42051023	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xfb942213	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x47a01ada	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x5e81dc8d	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_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 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x004f06fa	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x07ee566d	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x16f1580b	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1a0588c4	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2ff3fa17	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x32e395b1	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4495f17d	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x46bc0474	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4a03f265	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4eb680fb	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4ed7c097	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54e527cf	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x550c8c81	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x718377e8	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x77952ad4	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7c776771	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7d1738b3	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x91bc8e61	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa1c5ad4f	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa8787ad9	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa8ce0ec3	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xaa7fce5a	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb3c2734d	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb87ccc18	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbf03ef2e	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbf4330f8	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc692a3c2	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xccf2fb2d	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd3d94a68	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd5b7db04	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf3030caf	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfa6cfe3b	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x085126b7	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x74e6b2c2	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x787a4d05	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xcd70fefd	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xf3ca1586	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x103520af	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x12b9f132	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x156f8305	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1995c0a3	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x37a2556e	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3a7cf034	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x750aa5b2	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x82323a1b	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x8fc385a7	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x8ffda8b6	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9514e8c8	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02df0bf	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe7aed822	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x3a0aa293	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x01042f68	__vfio_platform_register_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x06ec5fec	vfio_platform_probe_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x72db1fe0	vfio_platform_unregister_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x922dacd2	vfio_platform_remove_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x260429e7	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x31aca149	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3d95e6ff	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x44b83e00	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x56146e91	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x57656bb4	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x6107c5cc	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x8137112c	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xaabeddcb	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xe1274d81	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x0f49fc3a	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xda858879	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0198cd5c	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x03b97916	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x052a4d30	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0b0b8a11	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x25ef21f1	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2a7fa3a3	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3c5b0f1e	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x418d2d87	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x43724bc9	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x46897fc5	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4761d316	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x53baeeec	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x55fb6c57	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5ddb5d90	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5ddfbe0d	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x65b3ac33	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x679c794a	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x733d1338	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x80c2580a	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8ec55501	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x920552e6	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x92ad54e6	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9e24105e	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9fc44ad7	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa4bde183	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa51c28c1	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xab5deda8	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbd9f92c7	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc4260075	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc6c21689	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd534bd3c	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdff0a41c	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe61065ad	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe690e111	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe730eee0	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xef67e908	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf4655684	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfb0cea42	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x646d0207	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x6b091ec1	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x707af071	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x7f314fa2	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xa2353b01	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfb71ff6c	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfe1ed924	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x82ce1be3	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xaa051547	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xcc1f4ab0	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x1a1eb822	omapdss_of_get_next_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x767e3d49	omapdss_of_find_source_for_first_ep
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd7919994	omapdss_of_get_next_port
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdeda927d	omapdss_of_get_first_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x16386149	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xdb6a5d6b	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x1243fbec	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x156e7942	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x18d51f0a	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2ef69a13	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x3b5d844e	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x658ae610	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x69574d28	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x72981b69	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x76c794d5	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb2ca2780	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb52d7753	w1_triplet
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x0d8a1eca	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x23c52179	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x2b010a74	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x1b39f4d3	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x405d2fce	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x707ae068	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xda46848a	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xe002808b	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xebce9a8d	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xfa02e02e	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x014d4267	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x05b7ff55	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0840069e	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x08db2cb6	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0bb99f48	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c81b787	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0d19e80c	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0d6e57e8	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0d745f77	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x17530f58	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ae87fd1	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1c4a1bdd	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cc2f0a1	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cd974bc	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cf3eb39	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1eda497d	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f6f1dcf	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x210680d0	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26d4635d	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26fd4991	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2ab6e54c	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2aea7cb5	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2b2d444f	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x322a93a2	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x32762fa2	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33873172	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x374ed59b	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x37b64b92	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x383fc425	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3e7dbec8	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f03aff0	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3fa55033	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3fdc0fbc	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42c1f45d	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42d254d2	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x43d4413a	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4411c40a	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4650e091	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x480614f8	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x496a55cc	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x55dfc553	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x566fb941	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x58b08a10	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x58c0d9c8	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5bc43f3e	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6001361e	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63e14e3c	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x640aa667	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x641ac1e0	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x65ac9b5e	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x65c212e8	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x698ccf3b	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6a0057ea	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6a19767e	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6f7ec4f1	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x70ba06e5	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x715b79bc	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x72e66ab7	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73932376	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73adf9d8	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7ae0c4bd	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c5562fc	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e0e0673	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7ebf4ace	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7edf39f4	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7ee70e6d	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7efdd92e	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x856019b1	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8573b29f	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x857c3340	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x86f951e1	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8940504f	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8da3bac5	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8ef0c110	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fedd703	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x929fb8ac	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x947b5d2e	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94e1df06	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e841b4f	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa119e95a	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa73d412b	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaaa14361	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xabcec642	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xabcef24c	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaf982858	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xafe44936	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb0dcadca	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb17e37ac	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb1f9b6c5	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb6e02c37	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb82bff4c	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc123c015	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc2fd3870	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc36f7480	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc6271b1b	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcaa1c4e3	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcbf424d9	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc295054	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd0385175	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd5ebe8b8	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd7c5c7ba	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc2175e4	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd013992	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd5ba14b	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd6f82ca	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdefd9945	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe3620fd9	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe4609942	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5032519	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe61bb1c2	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6ed5f29	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe80222ab	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe95fd0e9	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xea104170	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xea3c72d3	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xea450ec0	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee7b3eaf	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xefa659ea	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4214dfb	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf465b839	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf59fc7a5	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf61fc26a	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf800fbca	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf8aaedf4	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc3425fd	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc5e13dd	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc958eaa	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfdc950f6	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfdfc4dfb	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe10a87b	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe6c2a55	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe6cd3b4	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe913da1	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xffd4cd7f	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xf3d9f4fe	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x036931a1	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x048b25a7	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12b622b6	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x183e877b	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x19218c4b	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1d486709	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1eb25e3c	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2a7df887	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2a9f0d61	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2edcd1ca	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x30697c99	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x351dde84	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36751a61	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x367a1a76	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3855cd3e	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e73f10c	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4862b7c5	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4e65a6c8	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5205f7ed	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x576570e2	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5abb7239	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5af4f8fd	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5c93e2e4	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5f0dce54	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x600ec443	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6116311a	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x62f3fd4f	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x63520720	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x68ae378e	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x694f7410	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6d3a001a	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e16b52a	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x70a85cb7	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x74e0727d	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x87d010a5	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x96a1aefb	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9cff3432	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa02df320	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa3a41cf8	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa45a8853	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb06e9791	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb2292710	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb31f72b3	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4895436	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb85de48c	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbe5ea50a	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc0c2f2ca	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc0f87b17	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc151e45f	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc2342e78	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc3113bd0	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc8d6aab4	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xca1e309a	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcac9675a	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcbc0d938	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd39d574e	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd47830a5	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd674de77	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd774e9ae	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd7883c4d	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdb94ac97	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe1eca9bd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe59b3244	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5a7264c	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xec4f7e87	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeed9dc03	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf32e1dad	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf4ef3687	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7e270d5	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfde07a0b	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x016485c3	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x0cea4215	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x80c9852f	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xa4664c80	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xaef44133	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x02c43f3f	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1db5fdd7	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x364f639b	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xacefc35f	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbab4ece4	o2hb_register_callback
+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 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe10175fb	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe2434b5d	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe3742e4d	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x4dd7c322	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x58d995f2	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xa3a5f68c	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xbaf433da	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xbc635f85	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd88762f0	dlm_unregister_domain
+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 0x22e0ccdb	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x3c2073ec	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x5d3ec6cd	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xeb5582a8	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3397c529	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xa7977ffb	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf30e730a	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x955ee96c	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x6ee66849	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xc493d42a	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x021957e1	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x0f8a2742	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xd4cb6873	raid6_call
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x263751c9	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x8c3dd358	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x3f6928ce	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x40233dcd	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x74164daa	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xa9c7c631	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xb2f13373	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xb9313dfa	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1c3e4354	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x542e468f	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x9f3cc5ce	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xb4fcb5a4	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xc8387ba8	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xd81befbf	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/stp 0x8fe0b9e6	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xdb4707d9	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x14dcbf86	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x99bde2a8	p9_client_xattrwalk
+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 0x64bdf574	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 0x05e0123c	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x436915f9	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x49d0c391	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x7a6edf51	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xd28d44b9	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xeae66c88	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xf23329d6	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xf9bcaad7	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0xe0960ff3	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x01e540ad	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x04391ae6	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0b36f8be	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0c2cafe4	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x170cd356	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x18f0c4e1	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1f285f42	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x470c41e5	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7614243b	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7c2b5660	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x89f0a905	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x952438db	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9d1e0d0f	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xab7ec62b	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xadfdbb97	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdb05af7d	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe92d5943	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf288b59d	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/core/failover 0x06c782ca	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x12c4eb64	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0xa1a43944	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x13edbe22	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x18891f43	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1bdf35dc	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3f4c9351	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4f1aac74	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x53489621	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5dce5e16	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x62b709b2	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x65f32da2	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x69e79b01	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6cfbe8c6	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x71cba41d	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x75dae287	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x77e30ba1	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x835473dd	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x83e4fa71	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x88beaee4	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8d450a78	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8f686045	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x921520d4	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa43e19f0	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc7b4dd92	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xce66d781	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd73cbf09	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdadd7c24	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe4a1f80e	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe90a5a8f	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe9bccc1d	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xec571089	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xef961bcc	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0784aa7	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf55ef99b	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf67a3cca	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xffcc9d88	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x36ba24f6	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x986079b1	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xbde753d1	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc60073e6	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc801ea37	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xfe3b82a4	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x168ed4ee	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1b915987	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x23f58233	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x30453ee5	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3bb92c8d	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x46e4601e	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4b345e29	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c698178	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x66ca69eb	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6c5fcd0c	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x740c08f3	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9570223b	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9741d3a6	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9c7170a3	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9ee5fb38	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb6bc2d90	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbbf94436	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd0d709ed	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xdf538230	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf8963c93	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xfff5b628	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x40d321b4	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x4246138e	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x5bc0a080	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x65ebe502	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x0a2d1e6d	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x17ea1c73	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x1a29d5cd	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x96b5e6e0	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x01de546c	ife_decode
+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 0xab210916	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x421b883c	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xc1563372	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xe86a3521	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x132facd9	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xdddc00ea	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x257a2ce4	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x3857f413	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x64bf0a30	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xa553a50d	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb4f40dbe	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd45c8499	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xec196770	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xedb1d78f	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xf5f72f03	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x9bc35927	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x16bb490d	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1e7e30c2	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2defe565	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x32615218	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x413080d4	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4d235880	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4d750b0d	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6ef2fac2	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x70881a2d	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x75008846	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8bc0837a	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa8b0d71f	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcf48b2c0	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd83c3a5e	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdf96147f	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe273068e	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x92fe47b4	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x640d9bd1	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x4475b55c	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x781f2f66	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x160637df	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x3dac7126	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x5c031466	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x98214b0e	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xa2996fee	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x32710e53	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x196632d5	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x4e8eff65	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x96b50c7c	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x961ef2b7	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xe6e92da1	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x4712701b	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x51b95220	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x68cc6db5	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xa4f99e36	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xbbca519c	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x742ab599	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x75ec40b8	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x8bd58860	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xa47e1860	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb118b621	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xdb90e68e	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xde49ddd2	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xfd37420a	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x1d3b7f0f	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x7d0b7889	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x872a511f	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x28f1cb11	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x295312e8	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x720b3478	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x388f0c2b	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xd3aa3e8d	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x19fbc76d	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x2510c244	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x54c0d916	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x1882fb0f	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x6c3c0018	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x8189aae7	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x822914e6	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xaa1aa048	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xc619b130	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0xb516af3a	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x840b1412	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x8781f502	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x9552f83f	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x5feff2f6	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xc161ca30	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x039f0cd4	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1178c103	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x260497f0	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3692a20a	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6e1a9843	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x92be1a16	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x94be7b22	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa6f304b8	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xafc4ddc4	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbbb0d415	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbc6e48e8	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc619c04c	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcb377eae	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcfdeb7d0	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd92a1e66	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xdc55c6b7	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xfe97ee0d	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x1997d8b8	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0236825f	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x04e10372	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x09e2a4f2	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0efeabf8	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x12ca628e	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x18602e3e	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x486cb98e	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x546d524f	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x62e78447	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x67000f19	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x85865972	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb06932cd	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd92ddf76	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe8da2f22	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xeb92e003	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xfd659f06	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x91949953	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xaf014b2f	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xdeb2728a	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xded15e5a	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xfbb0d6df	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1b7aa1b2	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2bc69bd0	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x34e95191	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x4454469b	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x4d4cd46a	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5137ec8e	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x533b1d9c	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x57bd9d53	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6ab812b2	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x86943248	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8e6f3c27	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8fca7c07	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x913adb9e	ip_set_get_extensions
+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 0xa329dd86	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaaa4bda5	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbbb40548	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbf03a72d	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc225d4f5	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x3ee6b846	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x60409e75	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x71a10b01	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xded5f66e	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x027060f8	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x268a4802	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x7d16471f	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbe03a217	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xd57f6bfc	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xe965fd70	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xfec35b9b	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x040afb40	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x09467462	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc82d46	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0e5dcf5c	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x16671d5c	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1a43bab1	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1fd8c82d	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1fe0b4f2	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x22749939	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2633cc6a	nf_ct_tcp_seqadj_set
+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 0x294c4a09	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2c1ac6bb	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2d594167	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x325bfa18	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x33817086	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3508cfe9	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3d988de8	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x43f94588	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4560c125	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x45e06a2c	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x473e385d	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4af2d9b6	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4c97b27a	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea258d2	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4f4ece5a	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5c6a32cf	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5c815dd2	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e7d22e2	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x64f5f2fe	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6620745d	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6af14b0a	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6f364bf5	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x727e2c78	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x760fc820	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77bfd6f5	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7f78ea15	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x840bb37b	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x86193318	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x871c8192	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a6f6428	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8acf6edd	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8bae56e4	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c6e11f4	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8d084b2f	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e26b72d	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x90316c63	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x98d1b78f	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9ea6c0dc	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa0fb9008	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xabf178bb	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb133d7cd	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5ac482b	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb666ff94	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc0f6183	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbcf9dd9b	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbe9ccade	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbf76485b	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc4e023b1	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc56de196	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6de73b7	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcff914a1	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd24d5721	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd52cd27a	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd56636b8	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd5ec5b67	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdc96cfdd	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdd052bc1	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdfbdd710	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe3209e41	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe373e856	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe3f32026	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe59a6c25	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe5b9e259	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe75748a0	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xede013da	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeebcfd76	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xefc46f54	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf0cc7e84	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf1599ea5	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf561a787	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfa01925b	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfc717e02	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xff9f3381	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xffa302ab	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x030fbf14	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x25d19afa	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x27622f7f	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x1b39393a	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x24025b34	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5de54705	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5fb407c2	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5fd56e3e	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x84186c06	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x98555ba2	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xb1a8139f	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe02fc066	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xf3a8a7ea	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xd5d52c3a	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x00ed021a	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x5ee92df3	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x6df59704	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xacd6dae2	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x11504b5f	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x2d0897a4	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x79875407	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x92c76265	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xbe68a1d3	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xd287cd93	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xfab460cb	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xd91731c2	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x211da388	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x66637c9a	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x989247f9	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xccc7d89a	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x180f2402	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x32ab0ebe	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3acce290	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3ce7dc77	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x882f604b	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x97a557b4	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x97d7667c	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xacd68dbf	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xae384a36	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcf00746a	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe1c3ee5c	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf55edf47	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xab645a37	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbbfdf94f	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbeb9f686	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xd1bd4898	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xdafe3c32	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xfd05dcfc	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0584eb14	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x12e2cd4f	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x166fa7be	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1e20a1c4	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x217cc26a	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3da6e2c5	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x40cfd3f3	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4a2e8851	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x505ce96b	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x525ec66c	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5c609bdb	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x6f58484c	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x75981996	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x82303536	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x8e3316eb	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe9c722fa	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x05ff5fe0	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x13b6db68	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x13f96f69	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1bddc921	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9a3e00f4	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9efc439a	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xad716080	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe9bb0d54	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xf903f83d	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xf94c4c3c	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xfc899b61	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x004673ad	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0950b925	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0c6649af	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1315aff7	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1c1a1531	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x24d68955	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x26ad40a5	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x27929884	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c2ee0f8	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c3048b3	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x363097a2	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x369cfc76	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3ccf1d77	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3d7c4774	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x57b2beda	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5efd25cd	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x695d1145	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x77c15342	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7b415e7a	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x805cc6f4	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x98bc38d2	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9dc1c93f	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9f3f89c4	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa2939ea4	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa95ff9cd	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa9ffc821	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xacd9f14d	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xad047dcb	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbd831854	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe4db6ec	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe6c8412	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc143a4cb	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcb6506be	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd140e262	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd8f8a556	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe05c0374	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe4dd8d8a	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf0d3759c	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf1ce122f	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x10e9fa94	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x24134cdb	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x56be789a	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xa875692a	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xae0613a4	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe45ec0d8	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x40d052b2	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xcd8eef6b	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xfdd80bd5	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x00af14f7	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xf23e8cf8	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x213f647a	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x81fe38d2	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xb9d4a36f	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xc3cba39b	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x2a4773c7	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xb75718f9	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xdda4b6aa	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x13d0fca2	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3012a5d1	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3f1ef70a	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x50b4fdf2	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6c487537	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7669b630	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7a19464a	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x83f173ac	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9d4fa113	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa03200cd	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb8017bf2	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbe71ba37	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xcac6a794	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdea76cda	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf5ca7e1c	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfff825e8	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xcfeed6b1	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xfc26191e	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x399c7d2b	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x55ba8315	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x79d63df5	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x5956d90b	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xf485deed	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xff248b84	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x8d67ffed	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xcaf4760f	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0cc14ce1	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x1d60d8e7	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x2a5c158b	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xbd549159	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xbdb4e464	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xf6830eea	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x0cbfd9f7	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x4cd85eb6	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xaa70db12	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xd20e7c3e	psample_group_put
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x63f532f2	qrtr_endpoint_unregister
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x88a467f9	qrtr_endpoint_register
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xdfb28c77	qrtr_endpoint_post
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x030f0ad3	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x06b0ff69	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1d3ecf6a	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1e77593d	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b377b77	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3d22f36f	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4835eca7	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4bdb9a1a	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4d38c57d	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x50563f6c	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5106b353	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x51b8ead7	rds_send_xmit
+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 0x59fb012f	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x63bad040	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6e847f8f	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x77ac6ce7	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7be13687	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7cb28183	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x827ffdee	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8ef051b7	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa21a196f	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa26fd786	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa3a80f68	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb116e6cc	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbd63c26e	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xca222854	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdb49e997	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xddb45647	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdf209e74	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xeb51162d	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf4c257e8	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x62c024f0	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x9ee50e24	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x79573430	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xd5e793b4	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xe5b83cd9	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xeab5b079	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x0be655dc	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x350efe88	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4865ce70	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6e14ba8a	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x707e0141	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x76b36f40	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x835e886d	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xbbc8b64d	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd2fe3843	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe7785830	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x218e8cf1	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x71a38dec	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x850c578b	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x9b95b7bc	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x001bf956	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x01b18f4e	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x038147ab	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x03f0714c	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0533abcc	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05b22ac0	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x08c95949	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09743d0d	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x098d1b2a	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a9247aa	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ace7a6d	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b60acb9	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b84fea0	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c28008b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c989355	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0df4ae3e	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e3c1ab6	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ea6945b	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f0397cb	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f360de0	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f9903b1	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0fef0523	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10a4e6a2	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1187f63e	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12b10bde	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1302857d	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1467c278	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x15997692	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x166242eb	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16e27d58	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1807e7d1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x212bc247	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2246b722	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x24e606c5	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25e484e4	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2629874f	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26601a3f	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x276264bf	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x279f5c93	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2806e8bf	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2839e4bb	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x28713824	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29094508	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29398eec	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29dce2ea	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ab2ecff	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2b18ed90	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c4fde64	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f33a50b	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f5aaffe	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8ebbe0	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2fcb88c5	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3010a6be	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30a5ad34	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x313fa723	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3462205b	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d5377f	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x37274163	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38656bcc	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a3c1f40	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3bdf54d4	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d5c531c	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3eeffe36	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x413ea7f0	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41ca8641	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4241a314	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x438480e4	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x439eb6b4	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x446febe8	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x449ecb3c	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x46b37f6f	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a00a1a4	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ac850af	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d0e330b	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4f689a06	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4fa26f2d	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x508a7049	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x50fcb89f	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5229e628	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x530f53cc	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54cbef0d	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5562e4a0	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55da8d1e	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56fae528	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x572a42e8	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57e0ee72	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a64748d	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b88b4e4	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c525be6	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d7241a3	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x61f509d4	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6367e935	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x64292975	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x64536014	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66f4474c	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x672c8ea1	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69b47b06	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e69afd7	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f62b841	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f8005b0	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70998660	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70b4f1b2	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7140f2a3	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x757aeef3	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75cb7878	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75e7259d	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76f776a0	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x772ccb09	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77a50361	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7810c1bd	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78a3d436	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b7f0088	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7be61ac7	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e653a63	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81aec82d	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x824fa5b5	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x832c3a84	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x836dde07	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x85afad82	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x860b167b	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x866fbb64	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b367efe	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bf440c8	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cd7e2e6	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ce81621	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8dd5fc11	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e955c84	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f2c23bb	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8fd774f3	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90226b3b	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x909f4a70	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91ae9750	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9224516d	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x925e2dd5	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9417ad7e	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x94e8df07	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95306364	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x958ff4ed	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95d97c34	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9634e4b2	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9960557f	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99698a2f	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9983cb1c	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b5f02a8	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d4519bf	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9dd787ea	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e35963f	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9fb4c811	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2e604b6	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3087918	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa51a7cb5	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7bdd46a	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8b6c727	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9c608d3	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9d43cec	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa72bd0c	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaad34a64	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab1d35a8	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac35ed5c	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac86a168	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad036ebf	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae2d9795	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae713483	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf0a2c4a	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf1c7acd	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb118050c	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1ed93ec	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb20bcaa3	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb230f3d6	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb3dbe7fa	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb402d826	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb559bbe4	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb5c79ab6	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb767ce06	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8344700	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb91fb279	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb99627f8	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbbc38edf	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbde15ea9	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbec8c6d0	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf5750c0	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc169d947	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc214ccac	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc33c8492	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc678b20f	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc829f71c	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8322384	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc844564b	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc9026080	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca864a35	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcb666762	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcc06aa0d	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccfcebba	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcdd890b7	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcde3bc2e	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2f232a5	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2f80440	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd34e7eaa	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4b72703	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4fec1c0	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd77ac61f	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda9e756c	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb04d2bf	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb78e96b	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcc1e1db	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe091e9d0	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe10fbcca	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe1182d09	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2c1fd11	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3fd6fef	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4836861	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4e3e659	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe806e749	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe87ba84c	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe95c348f	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea9864e6	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb1e9072	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeba4f6d6	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xefe16e43	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0306d29	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf272536a	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf38fb6dd	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4d30158	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9e0af38	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9fbcd56	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa658989	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb19bbe5	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdab5f4a	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdae8f59	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x00f23947	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x4147a305	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x01cf90e7	virtio_transport_notify_recv_post_dequeue
+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 0x08a16c2e	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0c32cf90	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0de1d00a	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x16ebec0e	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x17c8e1ba	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x199c6c63	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1a6a5965	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1f077cbe	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x37a9a58b	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x44233439	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x52944043	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54ce6de0	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x61198b70	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x64d62ee4	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x691ca6a0	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x70ca6fc4	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7298d528	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x777fa747	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7d28eea0	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x978e3a11	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9a394404	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa05faa90	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa8d4a8da	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xae2a7d0f	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xafb51143	virtio_transport_notify_send_init
+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 0xbc1d2139	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc0bff209	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc3762f28	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc3a5160f	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc4c255bf	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xddf303ed	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xddf46d28	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf1553480	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf1e9b9c5	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf4c40c7b	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x025baf1e	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1ae9e357	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2317a0a3	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2a8e2df2	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2fc5800d	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x44420515	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4702d2b0	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4b353e3c	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5b245525	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x74e91915	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x89dce40f	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9fdbeb63	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb15d1bec	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb5dbf5a2	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb8af2c53	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcc864af0	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe223aece	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe8595f96	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xefcab657	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf21a2523	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x12426aaa	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x20689d74	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x3e2861d8	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x3f160363	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x4a0a2dce	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7e27fcef	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x8b6605e9	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x910744d3	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa3ea2778	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xad6a67eb	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xc30e7876	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xecdd70c8	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xf0cb2f25	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x135c9535	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1b6cdd2b	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x3d79a6bf	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x48a16d07	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x588fee0d	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x5b00ee21	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x790c35b1	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x85c8293e	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x869c73d2	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8f6b1378	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xbcd3eb48	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc22ebf14	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xca62c120	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xcc0fc29e	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd86bd240	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xed4509e2	cfg80211_vendor_cmd_get_sender
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x7e7fbd3f	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x8395eef9	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xd0dc7728	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xd5930cab	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xc7ff4098	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xd2aef5dc	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0a2f818b	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x1b49cf65	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2d054902	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x5501ac96	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x63bd7fa7	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x891e4424	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xd0c417b2	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x012172ca	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x015fb34e	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x05636f93	snd_hdac_aligned_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x067650c8	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0809623f	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x09fa303a	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1188825c	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x118ca758	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x11ec7031	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x145fe04e	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1480e71e	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1488641f	snd_hdac_aligned_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x15a8df6c	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1868aeeb	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x191825c1	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1a141435	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1d326173	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23ade383	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2a5133cf	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2a817647	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2bbac2d2	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3ba6ffd9	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f05c69d	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x48779851	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4b7a129e	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c829227	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4de94df3	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5024c875	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x557a2514	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x55e0a02a	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5832dd8f	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x68c26d76	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6f1a4e32	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x79fe25af	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7d82ab1d	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7d933da7	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7eb6b2f9	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x86661edc	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x86fe620e	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8ecee31f	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8ef55a50	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x90c27189	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x931b6c0c	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x96c43320	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9b287630	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9b4f3969	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9c62f029	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9d752632	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa4f3dd36	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa6dfddf3	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa7b18932	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xadf20368	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xae171d24	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb66feda5	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb77c5eaa	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb8054e16	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbc8ec0a8	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc01d335c	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc1d8adb9	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc26d6374	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc558b758	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc6c2f14f	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xca962087	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcf23ce78	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd02026b0	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd891b4ed	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd8b4785d	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdb46f702	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdbf5e9df	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xddceec34	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdebfce46	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe00ccb8f	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe13e6974	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe1a831de	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4d5561c	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xecf207c8	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf35c4143	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf537aa16	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf635b624	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf68b4019	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf7dda920	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfa3eb57a	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb30058f	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfd68bdab	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x297aa1d9	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x41e7da7e	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x79d96e34	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x91159149	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc53d1148	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xdb23caac	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xdd7792b3	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01e9283d	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0478f989	snd_hda_sequence_write
+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 0x0884008c	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0954f420	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0a187fba	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0a353c46	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0c75d395	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0cfbaa77	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0d6c49fb	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0fd7574d	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x109adafe	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14597b82	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14740402	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1561f651	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x16610a20	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x168a2585	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x18735a2d	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1b453e54	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1e67828e	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x221585bd	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x225af8a1	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x229a8c6d	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26bf1727	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26c3129a	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x271b609a	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2b931ec2	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2cbaa55a	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2ed8855c	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x300442b2	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x30352264	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x346735ec	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36ccd793	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36f20829	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3b658a44	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3b6840b0	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3cc55653	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3db69d61	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3e9c14f6	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x41d763c6	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x420b1f49	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x47dc648b	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x49331168	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4c31fb17	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4dcef43b	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x501c5dc8	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x56ba9bc2	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x57d92d76	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5942707c	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5a501825	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x608f84d6	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x637226bb	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x693847c8	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7123cf4b	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x74711e87	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x789536ae	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7eaaf288	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7fa939d2	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8053025c	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x811e84e1	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x83b4e5ff	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8499513d	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x84d5af3c	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x87f57e93	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8a590114	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8a7a28fa	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8ceb5cb3	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8eccdfa5	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92a37153	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92ee3f26	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x941cf0da	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x94a003e5	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9822c908	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x985a989a	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9edc811f	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9feae09b	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa1343c79	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa17046b8	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2b9a2ea	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab66eda3	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac45f21b	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb133d585	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb1ad34f6	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb4bd199e	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc414f5d	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc6a2905	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbffee3df	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1a232b6	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2831e18	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2c0b863	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2e24e33	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc546b75d	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc76ada80	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc86344dd	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb7ddb3f	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xce5d8de0	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcfe9e144	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd3ea7aa0	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd423d8b1	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd5e803a9	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd6ee4571	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd760d22d	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdaac375e	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb5ba21e	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb8d59e6	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe1bf46fb	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe290461c	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe7ab9e58	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9dfc1c2	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec492fc0	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec4a6f5f	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf16ac1bc	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf2bf600e	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf325b6c9	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf3c77554	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf4b11ec9	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf4e35adb	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5eb175e	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5edf833	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf65e6747	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf912182b	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd6bad25	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x088b8692	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x306675a8	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x56026d1b	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5632b82f	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x678411e8	snd_hda_activate_path
+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 0x7cc59203	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7d2f6f45	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7f8db0a3	snd_hda_gen_path_power_filter
+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 0x9649cda3	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x973d60fb	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa75a46f2	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc118cb8a	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd61a9952	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xde013ff6	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe298e8a0	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe2a71736	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeb5ecc21	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xee466c63	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeeb14d12	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf0f6d820	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf17e7847	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfbbac9d9	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x19965ed8	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xa8dd0bc0	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x208fa1b3	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x27ec29e7	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x3dbef9a0	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x61e32a31	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x7ef243e6	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x8cd96953	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd7577c3f	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xde67ae25	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xfc4c84c1	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xfd87e040	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x000475dd	arizona_init_spk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x05f722ad	arizona_lhpf3_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x0a7ee15f	arizona_dvfs_up
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x0b2285ff	arizona_init_mono
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x1237b769	arizona_dvfs_sysclk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x18153d8f	arizona_init_dvfs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x19fea184	arizona_anc_ng_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x1de2ccd6	arizona_asrc_rate1
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x20f13f57	arizona_out_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x2bd351f4	arizona_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x3928a6bd	arizona_set_output_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x3a541ecf	arizona_init_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x41265e97	arizona_out_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x46277216	arizona_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x49acc13d	arizona_isrc_fsl
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x568e4dab	arizona_output_anc_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x68050647	arizona_set_fll_refclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x69102a20	arizona_sample_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x6d48beb7	arizona_dvfs_down
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x6de1fb3d	arizona_init_gpio
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x6f251909	arizona_ng_hold
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x729a5ef3	arizona_mixer_values
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x72d48f15	arizona_voice_trigger_switch
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x781001c9	arizona_of_get_audio_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7f26f273	arizona_mixer_texts
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7fcb929a	arizona_sample_rate_val_to_name
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x8434ff33	arizona_in_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x8f52c5b3	arizona_anc_input_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x91533a59	arizona_adsp2_rate_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x92683384	arizona_lhpf1_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x96efdc22	arizona_in_hpf_cut_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa019be88	arizona_init_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa3802919	arizona_lhpf2_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa9ce56b5	arizona_clk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xab4d845c	arizona_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb1085ad1	arizona_set_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb53422f5	arizona_free_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb7d60b2f	arizona_eq_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb9da6f7a	arizona_in_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc0501c23	arizona_lhpf4_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc3956f63	arizona_hp_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc546609c	arizona_init_dai
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc6e92cfa	arizona_in_dmic_osr
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc9c29637	arizona_mixer_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd206490c	arizona_lhpf_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd23d832b	arizona_isrc_fsh
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd543a3b6	arizona_input_analog
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd679096e	arizona_out_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd8eff177	arizona_init_common
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xda634983	arizona_anc_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xdfe804b8	arizona_sample_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe5e39ef3	arizona_in_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe5eac05a	arizona_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xef04ec17	arizona_simple_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xfc63c62f	arizona_init_vol_limit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x8d3dbd45	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xa103383f	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x45dfb600	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x47ad3a2d	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x84ede1c9	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xedf7dfa7	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xf8c022c9	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x190f0888	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x77284c0d	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x839fa5f9	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x4051e5eb	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x4d78735d	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x630ed746	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xacc434a0	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xcba0aef3	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x40eac7f1	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x4d211e36	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98095 0x9aa9307e	max98095_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x148a5c9d	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xa31e68db	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xcd1c700b	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xf36cbd66	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xf4dc114e	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xf6da69ef	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x077913e0	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xde9230ca	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x0574cdd5	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x3d44a227	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x420f0634	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x8e033957	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x79fd65fe	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xaf32954a	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xd54ae127	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xe517661d	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rt5514-spi 0x554467a3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xbb4583f6	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x45615da9	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0xc3a6218a	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xbbd2cf96	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xd9ec2811	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x238e69ad	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0x08f5345c	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x425a794d	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x78e4059a	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xa8c77592	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x0b7712d8	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x10bc0628	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x2e06346c	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x469ca01b	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xd356804b	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x9fabb944	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x5b7cc5ed	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x713f56a1	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xfb7652c5	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x7400705e	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0xe6f2f692	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0x9c396dbd	twl6040_get_dl1_gain
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0xa54c5e42	twl6040_get_hs_step_size
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0xb4d6516b	twl6040_get_clk_id
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0xcc0f205a	twl6040_hs_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0xf0690540	twl6040_get_trim_value
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x05d7041d	wm_adsp_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x15ad1eb1	wm_adsp_compr_handle_irq
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x39bd5c3e	wm_adsp_compr_open
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x3f12617d	wm_adsp1_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x43a9c380	wm_adsp2_component_remove
+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 0x57ee4a70	wm_adsp_compr_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x81f65cdb	wm_adsp_compr_set_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x82966687	wm_adsp_compr_pointer
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x85fd558a	wm_adsp_fw_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8b2ef7e3	wm_adsp2_component_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8e2d76d7	wm_adsp_early_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x93cc6257	wm_adsp1_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x98b78c6c	wm_adsp2_preloader_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x9c7e4e7a	wm_adsp_fw_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xa120af7f	wm_adsp2_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xa6291d72	wm_adsp2_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb22b24f3	wm_adsp2_set_dspclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb4c62511	wm_adsp_compr_copy
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb5e4ebd5	wm_adsp_compr_free
+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 0xe80a582f	wm_adsp2_preloader_put
+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 0xeb9b2442	wm_halo_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xf54081c9	wm_adsp_fw_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xffae30a1	wm_adsp_compr_get_caps
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x169b233d	wm_hubs_vmid_ena
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x308bb756	wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b	wm_hubs_dcs_done
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x757206d5	wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x8aef3828	wm_hubs_set_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x90759ce9	wm_hubs_hpl_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xa4ae0959	wm_hubs_update_class_w
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xa62c35d5	wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xa9a9ff02	wm_hubs_hpr_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xfd027c53	wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x276d429b	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x7413f712	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x76e239b9	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x8567bb68	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0xbae4796f	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x058026a3	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0x3c75b7ba	wm8994_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0x9a6c1429	wm8958_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x6e60a17c	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0xebe28712	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x01fbebd2	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x14678fae	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x172aa6df	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x284540e2	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x44456276	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x45eb5c68	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7558048b	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x78f672dc	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x81f7ef8b	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xba7a2949	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc031ff42	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc30de302	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xcad44a92	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd02a66d7	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd60a8c12	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xeb653730	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf2489c20	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf4b1e4bd	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x01d279ae	mtk_dynamic_irq_acquire
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x08ea21dc	mtk_afe_fe_hw_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x21523c22	mtk_afe_add_sub_dai_control
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x297c6054	mtk_afe_fe_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x478c9e42	mtk_afe_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x4e1ad078	mtk_afe_combine_sub_dai
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x5f706f9c	mtk_afe_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x6dd1b7bc	mtk_afe_fe_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x7937fcd4	mtk_afe_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x839c8fab	mtk_afe_fe_startup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x8ce95f52	mtk_afe_pcm_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x9969b88c	mtk_afe_fe_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xaf0e06b7	mtk_dynamic_irq_release
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xb3a82b27	mtk_afe_pcm_platform
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xb8ee8707	mtk_afe_fe_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xee35cff7	mtk_afe_fe_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xf3305be5	mtk_afe_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x2116cc9f	axg_fifo_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x75479505	axg_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x80b4496e	axg_fifo_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xf78b29e8	g12a_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x16530ebd	axg_tdm_formatter_event
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x2db27767	axg_tdm_stream_stop
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x679cd72f	axg_tdm_stream_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7ec9b56f	axg_tdm_formatter_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x9734c838	axg_tdm_stream_start
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xb711a93e	axg_tdm_stream_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xeaf1cae4	axg_tdm_formatter_set_channel_masks
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-interface 0xf9f88962	axg_tdm_set_tdm_slots
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x0a5eaae3	q6adm_matrix_map
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x28421460	q6adm_get_copp_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0xb06c3e41	q6adm_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0xb0c14a74	q6adm_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x1d9a554a	q6afe_port_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x369b6eeb	q6afe_port_put
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3997e13a	q6afe_is_rx_port
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3b16d6e7	q6afe_port_stop
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x498d993b	q6afe_get_port_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x5332304f	q6afe_slim_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x7df60063	q6afe_port_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xae809786	q6afe_hdmi_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd4523c59	q6afe_i2s_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xe45246a8	q6afe_port_start
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xfaf22370	q6afe_tdm_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x151ae9d4	q6asm_cmd
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x1c2a1256	q6asm_audio_client_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x40299233	q6asm_run
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x5382edf1	q6asm_open_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x56418ca6	q6asm_map_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x68db31e2	q6asm_unmap_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x6eb89e95	q6asm_media_format_block_multi_ch_pcm
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x7353d9dd	q6asm_cmd_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x857330c9	q6asm_write_async
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xc5a116a4	q6asm_get_session_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xcc4952e4	q6asm_audio_client_free
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xd599e50f	q6asm_enc_cfg_blk_pcm_format_support
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xdbedfcd9	q6asm_run_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xe060c0a1	q6asm_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xf37f832c	q6asm_open_write
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x7e52e977	q6core_is_adsp_ready
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x9b02ea0d	q6core_get_svc_api_info
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6dsp-common 0x17142e58	q6dsp_map_channels
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0x5b75f756	q6routing_stream_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0xa7a64259	q6routing_stream_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xbeec13b5	asoc_qcom_lpass_cpu_platform_remove
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xc21bcf58	asoc_qcom_lpass_cpu_platform_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xd9f564b9	asoc_qcom_lpass_cpu_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xffd00307	asoc_qcom_lpass_cpu_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-platform 0xfd351df8	asoc_qcom_lpass_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/rockchip/snd-soc-rockchip-pcm 0x14dc5eff	rockchip_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-idma 0x0340de96	idma_reg_addr_init
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-s3c-dma 0x2cf99240	samsung_asoc_dma_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x1c44bacf	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x5b8003ab	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x6f7a4bef	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x9c9c2bd0	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-pcm 0x5be6a4a6	tegra_pcm_platform_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-pcm 0xbfe41d52	tegra_pcm_platform_register_with_chan_names
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-pcm 0xfdc5a64a	tegra_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0x337bb1a2	tegra_asoc_utils_set_ac97_rate
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0x9876ee83	tegra_asoc_utils_init
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0xcb7b557c	tegra_asoc_utils_set_rate
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0xe719568a	tegra_asoc_utils_fini
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra20-das 0x0d54c9b9	tegra20_das_connect_dap_to_dac
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra20-das 0xb52cfca4	tegra20_das_connect_dac_to_dap
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra20-das 0xbced7431	tegra20_das_connect_dap_to_dap
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x386bbc30	tegra30_ahub_allocate_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x55a40206	tegra30_ahub_disable_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x5d7237ff	tegra30_ahub_set_cif
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x6060e6f9	tegra30_ahub_allocate_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x6fe20143	tegra30_ahub_set_rx_cif_source
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xb419329b	tegra30_ahub_disable_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xb4a9367d	tegra30_ahub_enable_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xb81bca9d	tegra30_ahub_free_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xc78c7125	tegra30_ahub_free_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xccb67e55	tegra124_ahub_set_cif
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xccc98372	tegra30_ahub_enable_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xe549513a	tegra30_ahub_unset_rx_cif_source
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-omap-mcbsp 0xf7c4e1c4	omap_mcbsp_st_add_controls
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-omap-mcpdm 0x52950bd7	omap_mcpdm_configure_dn_offsets
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-edma 0xd7b7ba92	edma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-sdma 0xa606f396	sdma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x0f3ad376	uniphier_aio_i2s_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x22f16393	uniphier_aio_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x77d2f756	uniphier_aio_spdif_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xac60ee0a	uniphier_aio_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xc823a085	uniphier_aio_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xd1e96f18	uniphier_aio_probe
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xd266c1d1	uniphier_aio_dai_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xf9337717	uniphier_aiodma_soc_register_platform
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xffa5425b	uniphier_aio_dai_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x111faa22	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x193af6e2	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 0x31a1eec4	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x44ecf12f	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x490b6f61	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x6bf92f79	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7fdad774	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8930d99e	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa95f7a3b	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc3c4ca22	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc4f2eb8b	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd04895e0	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xdeb374b2	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe7c07bea	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf30d3f5c	line6_read_serial_number
+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 0x000c75d5	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x00197aa3	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x003c637b	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00554f47	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x005d9790	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a5bc48	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b56498	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c09be2	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ce8758	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d91ce1	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0109039a	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x012ecb16	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x015f4656	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0168b4e4	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0169adc5	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x0170cb6c	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0178d02d	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0192b585	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c7e2e9	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d2d89a	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d5bd76	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d747f5	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e05b04	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x02449836	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x025457b8	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x025ebd45	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x026f3380	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0274c194	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0288083c	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a2fca0	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x02aa6c26	nanddev_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b24cd3	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b8de59	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x02badc58	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x02cf89cb	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d3b5f1	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d9db39	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x02db225b	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e45312	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ea61a6	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f30807	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x03000b7f	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d7205	clk_half_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x03315f0c	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x03364046	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033815f6	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x03432f2d	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x03462354	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x03697a66	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x036d8e9b	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x036ddaa7	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a305a7	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a5b79c	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a74c4a	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03dbcee9	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e6a5b1	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x03eae90d	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f4954d	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0405c998	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x040c7d15	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x04107bcc	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0438eebb	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x0450e3b0	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046abfe0	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04753868	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x04805a87	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x04834f57	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x048ee3e7	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x049e4da2	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ae4635	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b0b995	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b35897	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b8c9de	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ba9a47	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c69ee3	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c6a309	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c94ffc	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x04dcce4e	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x04dfc6bd	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f1d9b5	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f69b21	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fa8e93	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fad7ca	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x050eaf91	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x0510878d	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0517db17	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x051c7a33	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05394773	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x054039aa	mtk_smi_larb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x054c4fe2	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e96ad	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x05563fa0	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x055d4c31	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x0560c491	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x05634413	tegra_bpmp_free_mrq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0565d38b	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0569de2b	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f2947	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x059be78b	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x059f177e	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c43c63	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c78571	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c9b954	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x05cd84a2	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x05cf88b0	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x06039858	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x06122337	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x061f3c1f	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0625ab9e	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0638fb75	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x064128ef	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x068a7c14	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x06909c51	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b35358	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b53bd2	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b5ce77	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06bf57d6	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c4e994	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c8805b	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c917fc	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cd56e8	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d9e06a	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e6aead	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e92aea	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ebe794	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x06feb896	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x06febb85	mtd_read_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x07018776	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x074b9601	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x0768c0c0	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x077b04fe	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x079482aa	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0798bef2	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bdc70d	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c24bb0	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e75624	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fa055e	scmi_protocol_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082039a2	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082ae543	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x082d9815	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x084ef04e	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x086d5be8	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0874c630	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x088d23f7	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x08933567	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x08971f79	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x08aa7ab4	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x08aeed7f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b092cc	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b94557	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c73234	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3e2f8	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x08df6232	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e02fb1	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e94300	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x08eb802c	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ee50fa	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x08fef07c	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x090862a1	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0908e209	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x09185e3a	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f0a0f	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0956b414	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x0978a7cd	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x097f20ec	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x09807f23	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x098fb9d5	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x09958968	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x09997d67	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x099b05ef	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b4c7ef	ahci_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09bb94aa	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x09cce7ca	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x09daed06	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x09de36e9	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0a1912	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a19b5b5	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22631c	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a345e63	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a410cbe	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a540ec9	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a57aade	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a972f91	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aafd949	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab1b55a	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abc3d93	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad68da6	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x0adacc0a	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ae5d6aa	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b001b3e	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b144c5f	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1708ca	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b185fb7	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b264568	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b278787	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2970fe	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b415435	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b419d49	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4ce4b0	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b60de42	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b649d12	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6ad107	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b775121	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7d2b09	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8c8d3c	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b90ea8e	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b96525f	ahci_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9c0a88	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba4d262	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0baf2cad	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb028d4	hisi_clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb28929	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbcbf99	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc765ac	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bcf43ec	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be9e824	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf6c9e5	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0134ab	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c286e90	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c377313	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5b1df1	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5f5581	usb_ep_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c70c264	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c864e11	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c8749b9	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c938067	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca33e05	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cabbccb	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cba8b13	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbe21cd	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc2bab3	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc9821f	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cdb4fc2	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf21792	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf99e2c	tegra_bpmp_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cfef91f	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0147e7	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d01b165	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d156c5e	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d17d89f	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d189764	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d231a1b	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d26063a	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d274827	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4ab8f8	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a5939	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d758c21	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d89968f	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8e1863	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d976dd1	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db22454	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd68d38	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd793f9	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e02b045	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0e23d3	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5d3047	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6600a8	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6ca73c	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8a574a	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9e2d07	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eab5794	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ebe8ce0	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec6f765	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec8fedb	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecca7a5	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ece0a18	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecf52a9	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed22d77	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0edcfc19	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ee8d350	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eef9493	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eff0ca3	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0effe103	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1b4103	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1c5bc9	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2cd9c2	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2da3dc	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3c0852	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f45e583	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f55baa2	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6731b2	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fb84bbc	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fbc556d	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcb2825	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd485bf	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe10001	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fedb778	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff7cbf2	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x100359e4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x100ab093	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x100c7660	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x10248481	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1039a493	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x103b9f11	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1043cac3	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1076c664	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x107792cf	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x107907ec	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x107ff872	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a8cd0	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1098ff8c	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x10aa57a8	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x10af2d90	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e4ad9a	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x10eb9cce	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f11333	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x11004ba0	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1104c4d5	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1104ed83	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x110ac8bb	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x11122cd7	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x11245dcd	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x11327686	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1133b5bb	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x113e32db	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x11495509	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x115b8ca2	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x116ecd0a	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x119c5d13	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a60433	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b20b64	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b63236	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c5c49a	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c9cd82	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d7589e	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e521be	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x120948e7	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x121cb7e6	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1227338a	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1227a382	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x122b5f37	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ebb1	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1246aa80	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x125c7f9d	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x12696f94	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x12866f52	hisi_reset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1292686e	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a6351b	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ae9e50	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b73fbd	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b980f0	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d13fbc	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dc81ed	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e0e9da	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ea3b34	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x12fe285b	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1328c07e	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x13463064	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1352bcca	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1356fbb1	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1378214b	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x137e2312	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1381d4f3	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x13889036	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x138ee877	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1396cfb1	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x139a1bc7	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x139a8285	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a69e43	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b8e415	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x13cbae0e	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d2d6e1	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d45fe0	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e11572	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13fdbe48	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x14107895	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x14246b1b	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1430c29e	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 vmlinux 0x14337214	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x14543870	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1456a183	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x14578b22	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x1475cd8d	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1478d1ee	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x149501f7	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a98a21	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x14abafac	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x14b25b77	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x14bee9fa	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c2872d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c2fc74	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ca3c67	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d1b19b	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d9f4c1	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ea0982	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ed70f4	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f263f4	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f683b4	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fe9f0a	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ff1093	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x150ac3b8	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x15161e36	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x152071d2	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x15239861	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x152c8fa0	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1534ab09	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x15350cd4	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15498ab2	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1551a7bc	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x155c72a5	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x155c8908	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x1562aeaf	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x156ecbc4	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x1588bf4f	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x158e6fee	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a2cdee	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b06044	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x15bb4861	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d801cf	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x15dcd694	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e56db1	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x1600e4c3	nand_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1614f61b	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x16328b8a	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x164c9274	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1671d002	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1675640c	mtd_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1679a199	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x167bc637	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x16868e3b	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x169e6116	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c1e9c9	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x16cfc989	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16edf07b	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x16fab58a	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x170f6c1a	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x171254b3	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x173216bc	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x17349fd8	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1738088c	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x174bc721	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x174e3ba7	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x175f3ef6	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17607d9b	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a0633	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c57696	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c924e1	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ead382	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x18020cd0	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x180f5499	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x180f8b71	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1837111a	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x184b6248	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x185c184c	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18865172	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x189aa444	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a23561	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b577d6	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b590ca	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c66992	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c8b3e5	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x18caca30	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x18dbcd7a	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ddfa86	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fccdec	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x1902799a	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x19036639	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x190a7209	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1925b1fe	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x192ea63f	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x193c660f	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x193c9a59	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x194132fa	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x196abb95	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x196bc82e	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x196ca63b	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x198f1795	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1991f0de	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b6963a	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c0dc89	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c1a37c	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c3096b	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c8f22b	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x19da13a9	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e93965	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f6d107	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f7e485	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1c48a1	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a2949c2	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a30e646	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3da414	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a58242e	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a74f2ca	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8eb5a1	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a945836	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab1ceb5	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acbfc3e	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad0f020	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ada7bc5	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x1adf6ad6	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae704fa	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aeb0214	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6c9aa	clk_regmap_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6dc63	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afb896f	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b080ca3	imx_pcm_fiq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b152d84	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b218adf	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b32681c	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3ceb6c	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4259b7	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b47dd71	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b675950	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b707ef4	mtd_write_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b78221d	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b78bb31	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b822f68	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b93cabd	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b995107	mtd_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b9af812	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba8e403	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb52a9a	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc40a8d	gpmc_omap_get_nand_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be586ab	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bed1d9a	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf232a7	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf92df2	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c08a216	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0ce345	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c318510	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c342f5c	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c517014	pinctrl_put
+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 0x1c69d865	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c78b227	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c798d9f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c833c83	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ccd0017	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d05f0b2	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222576	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d31499f	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d36bc11	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d459431	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d55577c	xhci_mtk_add_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d59de4b	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d61e7e1	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d73f2ac	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d807a01	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d94710b	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da76adb	meson_clk_mpll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dadac10	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dba8631	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dbd9977	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd46459	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de721e8	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df549ce	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dfa0246	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e02801b	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e12b11d	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e307691	mtd_writev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e3975b4	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e413655	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e47ddf1	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5327db	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e582a47	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e63bd0a	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7d6157	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7fd978	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8234d4	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecb5407	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee0307b	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1616f7	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1c6265	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2447f6	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2c3d43	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f54b3ee	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5589e4	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f67a9aa	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f716b38	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f774f46	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f811da6	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9678f0	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa92cb4	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1faa39bf	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb600ee	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbf5dbd	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fca0b38	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe4f298	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe95835	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff94526	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ffa0790	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fff6325	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x2001273a	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x200a107d	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x20108f39	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x201090c6	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x20165a39	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x202fc52d	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x203afc33	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x204e15d9	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x205ed8f6	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20907454	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a3b7b8	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b6ea30	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c8e617	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ce4a07	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d4e410	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d5d9a9	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x20dccb97	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x20dcd945	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x20dd522c	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ff3660	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x210d677a	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x2129d6f0	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x214254ca	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x21562a1d	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x215675d9	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2169f729	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x216dd566	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21726652	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2172e896	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x21738e17	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x21803837	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x218c8037	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x218e2846	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2194937c	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2199baa6	sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b1f020	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cc856e	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d7de12	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d89b08	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ea4809	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ebe65b	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fe058b	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x2227dca7	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x22315adf	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x22360b03	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x224df0d5	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x224f5b61	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2256632d	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2261e9e1	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x22648c02	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x22811a28	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x22902fab	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x229491cc	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a52ab9	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a89234	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d9e9a2	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 vmlinux 0x22dfbb92	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f802a4	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f803b2	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x2307ed35	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x230824f0	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x23168323	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2319e4a7	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x231a7cc8	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x23374f9a	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x234db2b8	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23642be5	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x238150af	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23940830	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x23950433	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23a40fae	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x23a8188c	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x23af03fc	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b7afef	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bcbd5b	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c5f65e	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c77d57	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c91e41	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d07048	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e67db3	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x241098eb	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x2434f585	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x244b1d98	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x245ad9fa	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x24722a17	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x24779272	tegra_bpmp_mrq_is_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x24788c28	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ed19a	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x24914d8e	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x249870ea	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x249d9b47	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b43071	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x24cce2f5	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d7810e	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f77dc6	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 vmlinux 0x250dcf2c	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x252b35fb	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x252fd39f	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x25382899	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x254f40f4	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x25557620	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x258fd47a	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x259b1074	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b16b38	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b7adaf	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ca6676	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x25cbf235	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x25d3082b	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ddc529	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e1e1f5	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e96c99	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ec9d98	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x26013610	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x2604863b	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x26371f8d	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2638586b	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265a59f0	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265e75ff	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26958a6d	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x269953a2	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x269bfe3f	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26bb642b	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c0aa54	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c547c0	bL_switcher_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e800f4	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f62352	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x27127d96	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x272e9d77	hisi_reset_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2749260d	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2757fd99	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x275ed223	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x27610c0b	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x27678d48	nand_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2775c576	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x2778d3c4	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x2793f532	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a47def	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a83836	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ad8c1c	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b29e26	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c0db27	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c67353	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d26a6e	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e08da5	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e89ce5	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ee28c1	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x280a30ac	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x282b7d57	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2839b2f7	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x28425db6	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x28524b6f	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286c8abe	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2881db7e	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2887df66	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x288acf15	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a35d7d	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a9d0ae	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ae6a57	tegra_bpmp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cd6ce4	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d0e9cc	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x29048b10	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x29059e46	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2909278f	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2956551c	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x295ad5db	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x295b982a	hisi_clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x297c0339	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x29818a34	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2982543d	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a79486	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c1907e	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cf2470	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d134c4	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f36c69	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a034ec1	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0a40fa	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a3e7db9	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a42cbe1	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a5d3862	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a64318b	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a70e409	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a750d9f	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a797b90	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a86861d	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab8fc65	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac051d4	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x2adcf0c1	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae51a69	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae79f39	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aea22ef	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af19689	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af3e277	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af707d6	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b059bb7	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b09fccc	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0f1ea1	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1542dc	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b23a897	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b30f902	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b346656	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b3e63b6	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b440ef9	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b54b31d	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5d3192	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6df7b8	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b78727c	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8eab91	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b95df2e	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b97ab7a	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba0ad77	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd3fb4e	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be53ac1	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bff38fb	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c118e8b	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c46ed74	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c49ab08	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c4ae942	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5b61b6	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6ce440	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7aad4f	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7dab58	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c87034e	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c871b23	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca0a2f3	cpts_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbb07fd	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ceb4dfb	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cee5c8a	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1453dd	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1dccff	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2c5fdc	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d387efb	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d560d98	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d66d42f	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d689c5a	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d694f4b	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d77ca35	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7fe66b	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daf1ab4	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db3f827	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db67d4a	owl_sps_set_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd0ab65	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd93ceb	sm501_misc_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de225e6	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de61451	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e0314e5	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e04b97f	nand_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e30509c	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3212ac	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e383225	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4261f6	snmp_get_cpu_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e60fcbc	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7e1432	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8148e4	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e84b24a	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e896519	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e94dc44	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea04a38	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea5e73c	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed42233	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef204db	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef23fed	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f037049	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2421be	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f27b509	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f34cf92	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f38d120	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f530197	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5bebf3	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5c1223	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f63e634	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f789578	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f895416	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f89f67a	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa4bde2	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fae6ec1	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x2faead5b	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fbd1097	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc59a5d	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc7504b	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff341bd	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff63ede	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x30096d57	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x302f37a8	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x303cc322	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3043f5cc	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x30471a6d	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x30677628	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069809a	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069e46b	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x308480ab	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x308683d1	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a2b5f5	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x30af7e91	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bf81e0	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ca4346	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cde029	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ef711a	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ff2936	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x310d8148	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x31202d29	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x31271cae	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3140a528	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x315494fb	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x31597ce6	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x31666c41	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x317d8271	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x318981b4	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x318abad2	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x318bd549	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a29fa0	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b7e8e6	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bcbfa1	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c13b2a	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ca1d0d	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d4a4e9	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e739f1	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x32138dc7	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x322492d5	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x322f6c7b	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3230f1f9	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x32518a8d	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x325d5412	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x32628e8e	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x326f8b19	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x32732b45	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x32919fed	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3294744d	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x329b988a	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a2f623	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a3faa4	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a486ec	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a7b051	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c5dc93	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e30fcb	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f25a71	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 vmlinux 0x330b0f14	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x3319c10f	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3325232a	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3372721f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3372e604	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x338a7ca7	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x33941cd8	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x33aa4bb4	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ad989b	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b46aa6	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cd19ac	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d2ff23	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d481bc	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e9e0a2	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f99d12	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fdd6aa	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x34176485	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3419a027	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x342e825e	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3458ef58	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x345ef7a6	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x3461ba36	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x346eb155	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x3483bebe	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3487f061	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x348d274f	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x34908579	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a36aed	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a84df3	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ac50a4	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b0a82e	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cccbeb	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d44ee0	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d4f00a	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d7c157	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ed6ec9	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f7a72c	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x350215a3	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x351e5b85	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3525a6b8	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3535b7f1	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x353f4516	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x35449533	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x35485314	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3553b85a	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x355d20e4	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a391fc	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x35ac5343	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x35af9b5f	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b5db7b	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b6b046	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c40338	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e845eb	cpts_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f2c785	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x36021ebe	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x360c2844	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3616b7ae	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x361fa8d1	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x362de961	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x36529ea9	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3668d4a0	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x366a2b7b	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3684dee4	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x368513f9	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a01a71	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a40d87	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a8ede2	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c19fcb	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c463eb	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d19d58	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d92876	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x37178e31	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x3728e8ed	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x373f3909	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x373fcbd2	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3755f351	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3770e452	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3778cc8a	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x378dd03e	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x379f78dd	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a0e3e6	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b6d579	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e15276	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e3b05c	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ecb018	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f73ec8	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x380255b5	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x380f7db9	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x381501b1	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x38180cb3	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x38182c1c	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x382d8b0c	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x3833ec54	sdhci_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x383a32ec	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x383cf739	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x38604907	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3861ed84	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x386c6e92	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x386dd499	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3880e629	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3885e992	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x38880c82	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a9c2c7	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x38aa4657	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c0c9e4	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d64028	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f08f2e	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0x390251fc	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3904d644	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x390d5b42	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x39163492	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x39174654	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3927da89	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3929c2b6	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x393d1528	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3954dafb	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x39625f1f	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x39977e8a	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x399b3a35	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a50b4e	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b44ebd	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b82181	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ba550f	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d97f63	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x39df5778	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e34fd1	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39edf5fd	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f47ecf	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fa2859	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fce6c8	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a3ffc3b	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a50c486	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5cb69e	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6dc43f	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a80b364	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a83801d	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a87873c	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9336ae	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9d3a45	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9e12ad	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aadc03f	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad8b26f	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae3326a	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae88150	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0bac0f	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0e5854	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b393fc0	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5652e1	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b68840b	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b71c6f7	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b9028da	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba26281	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba27c0a	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba3d4e1	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bbe1fd0	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc1e3f1	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bcac977	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd362f5	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdae1be	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf02f1b	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf046a1	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf807c8	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0bc346	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0ce326	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c185559	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1907ee	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c252154	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c277a72	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c296f97	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3ff322	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c468b17	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4eab8a	mtd_unpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c644712	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c651f33	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c715919	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c72724e	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c89c7cc	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c983d98	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c986f38	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9b9a98	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca531b2	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca7fbbb	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cacd63e	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb18c6f	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb2225d	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb95290	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc3c8ec	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc46b11	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd30dbf	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce833f5	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ceeb9ee	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cfddf63	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a9f13	clk_regmap_gate_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d1066d2	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d14c85d	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d194843	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d23908d	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d49fc73	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d592dc2	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d824ab5	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d98fe07	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da25a03	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db0d2eb	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbe197d	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc1d72e	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfcd202	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e02b6a3	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e31d9c3	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5f5622	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e678f23	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e70d672	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e726f9c	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7387a1	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e775b71	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e794b09	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7b0917	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e89a8b4	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e89cfb9	__mtd_next_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ebd59b4	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ebde52a	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed1bf85	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed563fd	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f060887	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2bd56d	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f32f4c1	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f92f894	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa060eb	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa9ad3a	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb032f6	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc042d4	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc2d5b9	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd10fc9	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd66068	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fdad54f	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe7373f	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fea029c	hisi_clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ff516aa	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4003e8ac	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x400c07a3	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40409570	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x4041bef9	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x405cabeb	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065b6d7	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4079ce44	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0x40840bb1	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x4089323b	rockchip_pcie_parse_dt
+EXPORT_SYMBOL_GPL	 vmlinux 0x40896ae3	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x409ac32a	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b3ffaa	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b48756	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b4d815	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x40da3823	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x40eb0520	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ed05a8	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x410770c3	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x410b38cf	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x41131df6	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129160d	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x412a7fa1	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x412c5df1	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x412f2b1b	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x415df4c3	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x416c2f50	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x41768d20	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x4176ce58	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x4189e500	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x418d80fe	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x419dabed	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a8aa14	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c30f3a	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d274a7	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205ad24	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42327e9e	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42531e9d	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4267c7ac	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x426d5ca9	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x42744b33	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x42887525	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x4291e7a5	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a43455	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a8e9cb	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x42aadcce	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ad681c	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x42adcca1	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ba74ac	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x42be824c	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c17a76	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c8ed2f	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e7a297	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ea9299	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x42efb127	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x43157470	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x43166a27	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x431e8d7e	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x431f6e30	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x433d1f5a	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x43517c50	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x436d58e5	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x43999408	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b934a7	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x43dd4dab	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e04687	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x44005d01	xhci_mtk_reset_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0x4411aed2	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x44339406	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x444610e1	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x444da352	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44514eb0	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x44531e80	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x445e0ea1	__cci_control_port_by_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x44622817	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x4462d958	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x446e5591	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44978a5b	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ba1042	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f38d49	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4502e6c3	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x45058509	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4514e01e	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4520665e	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x453c7bb6	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x453dba63	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x455087cb	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x455ba2d5	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561f990	qcom_smem_state_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4562f8e4	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x456719c3	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x456b6d9a	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x456d4af9	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x45772fdf	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x457c8d48	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x45878664	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x458e4131	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x45973bba	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x459faab5	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a939d8	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ad8b8b	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x45beed61	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d37c66	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d5123e	mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x45df03c1	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e073c1	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e3b2bb	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e84052	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ee4239	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f1bc79	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ff8535	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4605bd6e	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46091ed8	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x460f6b28	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x46101444	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x46171591	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46186c78	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x461a652a	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4621ea01	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x462bfb9a	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x4632a255	xhci_mtk_drop_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x46347561	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46371408	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4642bf01	sm501_unit_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x4643f8fc	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2d3	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x46576291	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4666d268	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x466d2ece	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x466d3502	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x466e5342	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4670926d	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46966a23	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x469c080d	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bcf752	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c06c19	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d619a0	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e6f2ad	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x47317949	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x4733034d	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x47414cc1	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x47509454	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x47611c47	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4763779b	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x477f16e6	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x478452df	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47925794	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d9ac76	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x47da6347	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dd4b2d	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dfb55e	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x48020c1c	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x480b6be0	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4812d668	get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x481c36b2	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x4821a2d6	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x4833cd7c	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 vmlinux 0x48362eef	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x483a08a9	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x483b3f99	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x483cb8b4	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4843d560	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x484548f4	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x484779ef	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4854cc4b	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x48663a68	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x486964a9	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x4876c542	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a54cb6	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a83c05	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ac5622	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bc1afd	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d46e35	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x49156043	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x49196bf5	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x49258ddb	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x49292100	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4931e548	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x49326ef6	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x496e8e5a	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x49750fae	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x497f32c0	nand_erase_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x498fe4b3	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49936914	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x499afc19	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x499e6d2d	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x49aa6312	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b6958a	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b70547	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bada6a	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c2532c	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d5aa62	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e90d0f	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49fc6ac6	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a09e004	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a104c1f	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a20d517	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a28fbbf	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3ac087	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a534c98	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a56f783	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5d608d	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6eff30	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a73b475	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a92972f	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a950d78	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab07f7f	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4abcd091	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac49e00	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae36121	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af63161	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1a2404	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b20a620	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b341ad9	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b36b542	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b63d0c6	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b650503	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b679856	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6b0936	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6e6934	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7289ec	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b753dae	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b79e1b2	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7ba888	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b81c9b6	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b8912ee	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba38862	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb5c932	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc13463	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc44bca	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd41d05	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd4ab10	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be73da5	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be77601	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf839ad	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c0e6f76	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c14786d	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5cbf0d	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6e4c18	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c84b271	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb1cf44	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb58bc3	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc4ce0d	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc94260	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdece73	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce877fb	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf17d9a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf24332	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf726a1	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d018513	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3687d9	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d38f1e0	bL_switcher_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d2770	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d547525	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d6bb44d	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d757ead	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d76f49d	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d7cd38d	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db4b507	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db990f5	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc05250	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df391d4	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e19d907	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1a95f7	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5240a4	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e556aff	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e740768	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e84f33c	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9542c3	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9ea888	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea07421	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea58998	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb4e1ef	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb6205d	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ebcb990	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec46c9d	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eca30c7	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecfa886	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eddcb20	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef1fdba	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef9e64d	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f01ad44	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f034a3d	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f138f3b	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f34b7fc	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f46d120	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f543ff9	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f546853	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6403a0	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f66b972	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f675209	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6c4e30	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6ed613	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72fb50	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f79aba1	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f81b817	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f88710a	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fabd078	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x50002206	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026de5a	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x50326013	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x5036518a	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x503f39e6	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x504c0451	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x506a8e89	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5086c2d9	mvebu_mbus_get_dram_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x508afef4	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a577e7	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a845bf	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b436ec	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c138ef	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c32299	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c594b2	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ca7586	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x50cec6d4	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x51082601	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x51096cfc	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x512f681a	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5137d8cb	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x513c3d3c	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 vmlinux 0x5153bed6	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5165751f	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x516c54a4	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x51732846	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x51754009	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x517e04fa	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x51946fbe	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b59d71	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x51bc0664	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x51be69f4	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c0ea59	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c4e617	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e6c24c	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x51eb0f63	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x520d46bb	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x5214bcb6	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x52281dc1	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52495417	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52567906	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5271dbf4	pci_ioremap_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x527a6365	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x527e4d14	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52acc088	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b3e8a1	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ca01e2	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e49ce5	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ea70ec	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f1bf4e	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f915b9	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x5313d42d	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x532ed739	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x53487fbc	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5353f369	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x535ffb97	mtd_is_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5383189b	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d9999	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x538dc4f3	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x539db697	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a7f763	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x53a86852	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ba34df	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cd4d69	get_tree_mtd
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d98626	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x53e1823e	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x53edc76b	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x540b08ee	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x54172702	cci_disable_port_by_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x5421c223	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x54224c5f	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x542b29dc	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x54334cbc	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x544b2a91	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x5453cf70	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x545b8c07	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x54794302	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x54848cf5	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a14fa1	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a25da2	qcom_smem_state_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b2fb71	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x54bae070	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e9052c	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e9f7a7	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ea2c19	xhci_mtk_sch_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ea3906	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f445d3	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x550b71b2	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x551553d4	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x55672638	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x556b9f8d	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557b774e	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x559d017e	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a7923f	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c43cbc	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d8e0f2	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d93460	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e0819e	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e622b0	sdhci_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ea0b5c	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ea4575	musb_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55efa6d3	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ff3555	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x5609fbbc	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561ec529	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x562be32e	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x562d5ad4	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x563595b1	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5656bf18	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x56680225	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5669990c	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x567d248c	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x567f7fd3	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x5680c2c3	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x5681159f	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5683bd38	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a5e265	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a6a76c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b54919	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b91088	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x56bf2582	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c1a0f0	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c4a08d	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x57030420	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x57075707	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x57131029	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x572b6566	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x57352b30	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x576a7e13	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0x57868090	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a231cc	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b73822	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ce0229	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ce2d95	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e148b2	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x581b9b37	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5821e12b	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x582d65c9	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x583be59a	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x585329ec	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x585f53c4	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587ac04d	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5884d1ca	musb_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x588dd2fd	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x5891b029	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58961dd4	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b62faa	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x58cddeb7	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d8f984	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x58dd54a0	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e07aa4	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e1b10b	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x58fdd5ac	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x590471a2	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x5908a044	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5908a96b	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x591624b6	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x59288483	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x592ef8d7	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x592f4f76	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x5935639f	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x594157bf	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x594f9812	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x594fd28d	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5950ad66	scmi_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x596884b7	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x59759488	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x597df6b9	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x598eab5c	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a1fab8	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b38281	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b6a534	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b75ce9	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x59bf4502	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ca91d6	ahci_print_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x59cae877	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x59cfcb3c	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x59dafb79	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x59df6273	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ef00e0	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x59f11f01	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a044c57	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2592c1	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a291c4c	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2c470a	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2c581f	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4325b4	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4b20f3	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a76e56b	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7d9491	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a843643	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aab9796	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac24451	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac5b21b	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ace2e16	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad1bb0b	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae5b092	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af6b6ca	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b055005	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b0b29b5	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b0f6c13	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2f9123	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b38019e	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b42b3e9	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b575cb7	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b676b4f	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7f64e2	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b84d080	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b953fe3	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba8883e	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd211ed	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd79ab1	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdca3ae	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bea0ea8	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf47e8c	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf9bea2	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0f165a	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0f7f44	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c1a7a61	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2b061f	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2fcc5d	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c33fb6e	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c41900a	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a466d	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c724709	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c8245cd	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c9426d2	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca15798	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb939b1	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc0fffb	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cde44dd	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf31299	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfa0fd1	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfb628e	clk_register_hisi_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d03748f	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2c7af7	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2dcd9a	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3b60bb	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d4173ad	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d455e82	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d605be3	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6246dc	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d708f99	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d75dbca	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d76fe4a	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7bba7e	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d82c6ff	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8ba2c7	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d91afbb	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d975234	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5daaa444	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dab0bc8	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db1e1ba	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbabb60	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc57df2	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dcac218	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df778c5	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dfe5913	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dff6fda	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e073877	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e089756	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0fad77	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e10fe01	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e12ecc1	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2372d6	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e46e7f2	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e48ef83	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e52a815	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e632579	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e63c21c	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6445f3	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e67b71d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6fe9d4	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e750a14	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eadcd7c	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ecdb786	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee07ac9	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ef19872	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x5efe8cf2	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0a2d32	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f17aad4	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2a8c9b	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3165b0	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f36daaf	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4210c0	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f5b96ef	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f648c6a	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f65ce83	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f8fcec3	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f920590	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9c75a7	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9e1a1a	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9f65b9	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x5faa0c17	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb1048f	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8e4d8	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc2c660	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc771ac	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff0c8d3	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x60031262	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x600dac95	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x60154311	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6015c020	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x603aeffc	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x60479e99	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60517441	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6062d864	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x6075d0c7	omap_tll_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x608413c7	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x608cc7a1	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60926baf	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x6096ca24	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x609784ff	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a39b3e	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b8a5dc	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d5520a	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x60e4f5f7	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ec1648	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x61000d92	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x61232d3a	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x613581bc	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x614150ff	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x614782f1	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6157958c	sdhci_set_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x615fc20f	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x616492f1	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x61650f05	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x61725385	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6180d096	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x619a4535	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a3c18c	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a51759	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b152af	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c309d0	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c7fb3e	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d19cb5	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ed89db	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fbc8ca	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x620b57a0	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x623e8b9e	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x625a6864	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x626cccaa	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x627140e0	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6275fc8e	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6290cb0a	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a7e12e	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d0e2a6	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e66272	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f99120	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6301afcf	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x630fc0b6	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63167973	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631c62ae	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x6320c529	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6328eaec	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x637a75b6	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x637ae7a2	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a85b3	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x639416c4	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x639acf3b	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b6f8a7	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x63bb374f	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ec845d	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f2cde6	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x64204b7b	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x64256424	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0x642a858b	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x643725fc	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x643e9b62	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x644bfdcf	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6452386c	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6456f6c2	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x645af6ef	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x64613f98	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x64677680	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x64725d0d	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x64882356	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x648ce443	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64931715	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6493a2df	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a1e362	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b228aa	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b589b0	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bfe58a	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c07d32	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdf082	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64dffe4c	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x64e97224	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x650b082e	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x65162c0c	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x65284995	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x65302099	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6532753a	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x653f2b9e	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x654d6edb	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x654ef3a9	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x65537437	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65def01d	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e456af	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ef34c2	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f37b34	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x66032222	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x66065790	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x660bf172	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x66168b0f	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x661ff961	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x662851a3	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x66380b75	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x663a8a31	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x66425ac6	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x664f23a4	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x665937b1	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x66675f20	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x666c2f19	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x667e4ba3	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6682c370	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66868d65	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668723e9	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x668ebb2d	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x669a9e59	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b1778b	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bfb6e1	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c0e57e	nanddev_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ca4ffa	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66da9e38	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ecf338	tegra_bpmp_request_mrq
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f5fe89	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x670a67b7	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x670b23e8	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x671f89e9	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x672e1b6c	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6734cf9f	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6755cb95	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x676b9193	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6781513c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a42774	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c4a8ad	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e0c14f	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f07849	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f4982e	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x67fcc108	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x68244d5e	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x682c7e9c	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6840637b	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x685b83e2	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x68634fa4	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x68654538	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x68758fda	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x687fca31	imx6q_cpuidle_fec_irqs_used
+EXPORT_SYMBOL_GPL	 vmlinux 0x68814947	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x688277c1	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x68910350	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x689242db	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x6894835c	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a0926d	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a8acdd	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a8d369	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x68c6ae11	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d29b3a	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f02f23	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f37e9f	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fbfca8	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fc1b89	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x690a533b	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x690dd32d	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x69113af9	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x6918621f	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x691c85b6	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692a4f08	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69389636	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x693b21cc	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6945725e	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6967cdb4	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x696fd447	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x69745617	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c9183	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x698224c0	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x698fa878	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x69aa5b6c	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b67cc5	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b8ce9c	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ce8a95	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x69dd7e58	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e0592d	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f11eba	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f6065d	cpts_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3fc554	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a477325	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a634f5e	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7c0cae	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a833ad9	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a891a09	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2e36b	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa558da	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa5e412	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa68a2	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa9995	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab1c8bb	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x6acb0811	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ace1f9f	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad9dd17	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae641b6	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aea1f80	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afbfe08	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0507a7	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1923e0	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b334acc	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b45069a	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b54e844	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6f811a	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b72e663	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b9bb489	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba1e63a	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd0f67c	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd3d007	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdff861	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be35180	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be625bb	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf1ae34	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfe0283	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfe5ca4	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c003dd0	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c08b390	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c19e8e6	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c327f72	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3573f1	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c404b9d	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c43b737	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4486c7	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c589a44	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6822be	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c686af5	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7dde6d	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8c67aa	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8cc2bb	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c935dd1	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c94d527	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd7418e	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0143b5	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0b8c5e	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d16e3b4	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d4a3cd0	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5714a9	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5825a1	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d658497	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8747a0	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da20133	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dad0a2d	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daecf2a	clk_regmap_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc43f43	imx6q_cpuidle_fec_irqs_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddc5519	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddfe23b	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de81712	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df7bfeb	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfa9b71	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfabed1	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfd03b7	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e049393	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e06fbd4	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e29c5b8	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2d4556	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e462624	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eadec2b	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb12aab	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb31e47	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebcc6de	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee08056	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee33fac	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efd19cf	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1f0b7c	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f262da9	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3f37a4	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f4d0488	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f509384	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f51a98f	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f52a318	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f79b075	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faf3e7f	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb04630	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb12702	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb2ea7f	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb7e313	asic3_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fcd5448	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe54b78	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe9bc4f	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fec98ce	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fff84f6	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7000a070	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x70034153	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x70035c5e	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x700802e3	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x700c2440	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x703d9f24	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x704d0764	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7059eab2	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x70652239	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x706d4bf6	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7082b800	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b575e6	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c07f85	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d28a9d	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dc4081	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x70efeb21	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x713abf55	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x713de205	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7150f05a	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x716611e5	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x716aac26	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x7173ca3a	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7178813f	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x717946ff	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x71912f95	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x7194280a	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a3a3c9	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b7b601	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x71dd8113	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71dfea8e	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e0f7ca	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e5667b	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x71eb16c9	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x7209e698	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x721a7103	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x722d7a0a	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x722e4abd	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x723648ea	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x7239ef51	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x72492f89	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x724c3665	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x725994cd	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x725b460d	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x7276eeb0	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x727f660c	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x728526d6	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x72944e89	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x72aee1ad	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b299e1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x72be6596	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x72eda077	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7302203d	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x730f3953	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x731163f8	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x73129f12	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x7316e330	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7343a50e	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x734ef3cd	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x735d7dca	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7365e767	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7373df3d	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x73925e28	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x739bf10e	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a82477	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b98231	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e507fc	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x74057e29	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x74289cd2	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x743daf84	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x743f2f64	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x747931f7	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x748138bb	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x7494f8a2	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a32e17	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x74accdc8	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x74aef93a	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c5ebda	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c9e294	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d87bd6	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x74dbbd05	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ea8ecd	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x751119f3	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x75127aa0	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x751298ed	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x75139a70	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x7513b5ec	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x751f0429	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752da464	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7530ab1d	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7531848a	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x75502e72	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x755ae3c8	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x755c2e46	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x75651c7c	kill_mtd_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x756d9adc	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x757e91b5	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x75849330	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7588767c	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0x758dc621	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x759ad3ef	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x759c9c81	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a1e881	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a8e68d	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bf6cc0	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d50253	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d609c4	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dc9601	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75eeece8	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f5b686	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fedd90	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x760095e0	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x761fdb49	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x7624c296	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x767a170b	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x767d91b0	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x768b1471	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x768bdefd	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x76af906e	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x76b14817	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bc90c5	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c003ea	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c00b4a	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c17dc1	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c7e672	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f909dd	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7708575e	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x770c85be	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x771838b8	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x7720811c	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772e2c26	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7733f83a	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x775eeb1c	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7762e6f1	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x776427b5	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x77677d22	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x77678cbd	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7797bd57	mtd_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x77a7a900	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae37c6	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77be3b75	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77e0766a	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ee1811	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x7801898b	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x7805e77b	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7814abb9	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x781533c5	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7823f5dc	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x783011f1	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x78327aa7	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x783f8fc0	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7842e9f8	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7866ded2	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d1c2c	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x787eaa9a	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x787fc61b	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x788c7790	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x788d8e88	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x78aa0649	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ac4d3d	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b9b3fa	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bf8ad5	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bfd2f6	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c5bda1	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c724b6	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d3bd05	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d4a3ea	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e4b008	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f7bb99	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f8989a	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x792e68f7	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x792f7b9c	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x79340b1d	meson_clk_pll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x793a93dc	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x79419426	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x7945da84	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a0461	rockchip_pcie_disable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x794fdf73	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7953f98a	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7957b98c	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x795bebaf	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x796f03ee	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x797a557b	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x797d5c88	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x798bcfd6	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a4e1f2	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a9d3f7	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf284b	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x79d72267	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f1c20b	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f510d2	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a00d322	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a032dd6	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a03b75b	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a10a190	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3f8959	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a48c932	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a49912d	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4e42d6	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4fcbec	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5a24f1	mtd_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6d7207	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a798bbe	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7f1396	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a846ea8	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aae9e26	tegra_bpmp_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac10ad8	icst_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad76af8	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adc0e4c	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7affe2c0	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b064811	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0db039	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0ef5dd	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5c619f	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b64fff2	omap_iommu_restore_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b70e877	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8123cc	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b856c7d	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b89d216	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b911eb5	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b944c5f	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab6124	clk_regmap_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7baf2fe0	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbecb2d	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcdb83d	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd024f8	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c110894	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1629dc	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2439f4	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3376cb	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c33eee9	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c393dc4	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3b714e	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3b8ff9	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c403969	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c43071b	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6b954e	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7309a2	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c996837	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca02a54	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca514b8	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca8a8dc	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb602e8	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cbd37ef	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc1f583	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc9cba4	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ce94280	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceb0f2b	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf4b569	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cfb2b61	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d07969d	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d137d30	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d179bbf	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d263f28	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d42a2e6	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d4ac805	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d78b3f1	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d79517f	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7c6c31	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da595a0	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da7ccd4	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dac04a4	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddbb8ff	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddebfba	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de48a15	nand_reset_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7deab6a1	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7deda2b1	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7def5b9c	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e02226a	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e08d3c8	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e181417	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e28754d	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2b1c8c	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2e6ab9	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2ecce3	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4175c9	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4dedbc	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5ac5ea	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5fbeaa	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e66fa9c	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6b79c5	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e79b13a	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e83d76e	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e840c22	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e88a006	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e892903	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8b5e50	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e94fcb8	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e975e4d	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e980ea9	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea2aa31	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eac37eb	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb08fe3	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb5fa8e	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec342b5	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed0b3b2	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed6476a	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee39d55	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee5a27c	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7efff6dc	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f064ce8	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0a9945	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f44924b	nand_readid_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f487bc6	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f569fec	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f614219	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7ae882	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8dd2bb	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f91890c	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f924a60	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9e6350	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa720a6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc11f32	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fcc58d2	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd7e6b5	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe9547b	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fec8a11	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fee9dab	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff6d48d	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ffeb91f	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8010eb58	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x80187a52	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x801eb65d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x80319332	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f9061	meson_clk_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805b3c87	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x806b7f29	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x80746ec6	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a167ee	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x80affe2f	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b17b75	omap_get_plat_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b8a08a	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bef68c	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c2b4f0	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c7e9ab	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c92c36	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e4a411	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f11bc2	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f7d128	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f91c84	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x80fa49ed	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x81097e91	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8120f092	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8135d1b5	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x813beaef	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x814c2b10	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x81589b53	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x816e5ac6	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x8194d80b	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a4b600	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x81abc726	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b440b3	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b850fa	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c69a92	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e8ad1a	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f14737	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2b867	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x821450f4	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x82216fe9	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82262045	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x82390ff4	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x823b9f4c	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x823d87ff	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x824994dd	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x824ecf7d	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8255e971	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x825b519b	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x82637926	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x8267bb90	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x82687954	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8271e946	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x828c7357	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 vmlinux 0x829eddd9	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x82abe576	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c78587	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d12c37	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f275df	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f60737	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ff2dda	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8324712c	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x832fdfe3	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x8332623d	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x83338c14	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833a7c41	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x833b7e0b	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x83696a39	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x836b2c3a	clk_regmap_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x839e5d96	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a85ff1	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b026ff	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b8e736	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b9dabe	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c6182d	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c78eb1	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cc1493	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cc4bbc	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d01b1b	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d902ff	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x83dd79da	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f21291	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f451cf	rockchip_pcie_enable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f7c2ee	arm_iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x83fe0446	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x83fee42f	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x84089e83	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x842645c9	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x843b3a96	hisi_clk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8442e88d	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x844712df	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845aa3dc	lpddr2_jedec_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b2069	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0x845d37d1	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x846023d4	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462d710	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x846da6ce	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x847e8adf	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x849d742c	cpts_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a87c47	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b679e3	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d37606	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x84de971d	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f9dfbc	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x85053cd0	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850a790b	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x852869cd	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x854197dc	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x854b28c1	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855a0faa	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x8563440d	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x85650af7	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8565bb08	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x856c15cf	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x856c8de0	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8570f468	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x85722132	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x857331cd	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x8574ca6c	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8592749d	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x859515e2	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85aca8ec	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x85acb812	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x85acd1dc	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x85adadbb	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b2f636	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b3f3cf	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b89832	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d6bcec	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e4631d	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e88f98	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x85eb1801	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f9ab1c	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x85fd829a	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ff2346	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x86083052	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x861c20ed	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86360b3b	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8640be14	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x8640d5f3	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x86549d53	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8659348e	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x865b0349	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x8665230b	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86806218	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x86852c17	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x868b93cc	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x868cc318	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x86920a01	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86abea91	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x86af0336	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b25d92	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b981ad	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c00fc8	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86efab99	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f22f24	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f9f015	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x870d938a	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x8715920f	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x871bc747	cpts_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x87289047	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x8748771c	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x876610db	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x87684dde	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8777db67	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x877af11d	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x877d3ac3	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x879012af	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x879d4ea1	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a0b731	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b2b34e	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c85f5e	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ce1967	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e2d12d	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x87fb252a	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8800019e	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8805a073	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x88117b06	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x881512ac	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x882638b4	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x8827d6bf	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x883ca9d7	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x8876201d	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x887d0446	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x888425e5	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x888a4119	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x888cd538	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x888f21d9	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x88921564	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88de20de	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e02789	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e74b68	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ec231a	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x890873e1	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x8912c10b	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x8923ab5d	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89478077	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x895d409f	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x895e8f78	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x895f8000	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x89615ff9	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8966d4d5	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x89698e58	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x89789999	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x897add91	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0x897b19e7	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0x898fb7dc	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x89905e59	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x89972790	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x899e34cf	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x89acab18	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b8191e	hisi_clk_register_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bfe270	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c190aa	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cc41d4	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x89dca0ff	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x89eb6718	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f5b718	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a03d964	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a116a21	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a1803d3	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3798e0	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3aae0b	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3e751f	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a455704	ahci_start_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5fe28e	tegra_xusb_padctl_legacy_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a628e54	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7b4d87	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8a1014	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9c68a1	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa02161	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aad89f7	exynos_get_pmu_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aae0f9c	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab83758	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac0a1f9	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac545e7	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b06ed57	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0ae5c3	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b282b56	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b33bc04	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3ca54c	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3d6849	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b478f8e	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b491cc8	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b529ce4	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5a855f	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b641e04	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6eb161	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7c58f7	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7feeda	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b860cdd	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8b063e	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b91f7a7	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b938412	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b97ce06	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bab48ab	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8babe23f	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bad5a98	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbeb242	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc1cf28	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc5b398	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd25ad9	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be2ece2	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be5151e	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf177af	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c08ea68	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c1e147e	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2921e2	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2b95ef	rockchip_pcie_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2eab94	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7bd877	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8ef1ee	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8ef50a	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca7a9e2	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca80533	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x8caeeeaa	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb06c41	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb9582b	sm501_find_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf40fe3	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0d88f2	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1c80bd	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d376501	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d398886	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5824cd	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d65bd8a	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6733fb	tegra_xusb_padctl_legacy_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d694698	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6ab9be	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d71445b	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d764ecb	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7bc776	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7d4b68	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e8254	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc11669	lpddr2_jedec_addressing_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd1df02	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dea23fe	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dec2a7e	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dee6d13	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e032b68	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e03b86d	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e18e3fe	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e331b3d	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e336c96	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e359cc0	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e43555b	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4b63a6	hisi_clk_register_gate_sep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e51a3c7	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e602df6	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e737635	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e79f989	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9e2ad4	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea57288	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edd0e45	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef4a0e0	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0b89db	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1a8cf9	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f256adb	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2c0f35	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f532f36	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5867ae	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5a77f3	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f702399	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f725e67	probes_decode_arm_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f76e663	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7e5a73	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f88329a	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f9d3b73	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8faf1222	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbaeb9f	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc80a7e	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe8b2a7	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9017667d	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x901c6c99	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x90328d2a	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x903c1c6a	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x90529dca	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906dd327	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90751117	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x90890f7c	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a09772	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a588e8	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a7d1b0	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x90afb86e	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b34a8b	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b963e2	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x90bccadb	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d23095	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x90db52ae	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e25cba	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ea768b	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec0b50	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec1701	ahci_reset_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ef1664	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f7a1dc	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f851af	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x90fe3088	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9109e24d	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x91249479	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x91284061	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130f6a6	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x91519a16	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x915d365a	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x915f012c	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x915f8a6d	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9163487f	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9168f6ea	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x916c2b06	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x917ac6e5	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x917f8f9e	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x918fd2b7	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x91938636	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91b3c170	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bbfc48	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c1c6b1	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c1f7fc	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d0b7ee	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x91da2198	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ecbe92	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x91fd989a	nand_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x9217b80e	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x921ee10d	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x92264584	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x924a8377	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9252204c	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x926b0d44	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x9275e0bb	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9282f433	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9285ceb2	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a14943	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a45c37	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b57248	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92be2244	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c0567e	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x92cab037	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d57c8f	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d72357	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e04531	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e74b2b	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f86e38	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f9548d	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x92fcd97e	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9320a6c7	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x932f7db3	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9338c648	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x933d8aab	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x933fdb24	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x935b7933	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x936c67a9	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x93729f22	tegra_bpmp_transfer_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x939e7cbd	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a3cc6c	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a5b26a	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a84ec4	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bcccab	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dd4490	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e21581	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e7a7ea	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ee45b2	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f374c4	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f4290f	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f5bbeb	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fb510b	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x94088060	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x941521c9	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f7195	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x942fa6d0	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x9434ef7f	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x943586da	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 vmlinux 0x944c561c	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x944e8680	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x94523c70	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x945c86b5	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x947fb0b8	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9485c781	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x948e2bd6	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x949032f2	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x94abb745	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c22a75	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cb539a	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e49112	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e59b19	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x94fec114	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x9517fdb8	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x95186aa1	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9530d6eb	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x953b4c7c	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x956f0834	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x9581c350	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x958b49ae	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a43145	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a720bf	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b67b4d	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bafa65	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c4560c	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x95cbb322	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ce3773	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ddd600	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f1a0cc	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x96006001	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x960fba12	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x961298e1	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x96160481	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x965e070d	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x96766d5b	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x9686c54f	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9695a65c	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a777da	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x96af5780	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b5c51b	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b8c195	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b9a3c7	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c9d892	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ca63f5	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d10030	meson_clk_pcie_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d8c9b9	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d9ca2c	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x96db92ae	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e1349a	mtk_smi_larb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f6309d	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f8595f	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x96fa6da4	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x96faeac6	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x96fb0912	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x970b3c49	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714c35d	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x97199fb3	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d2533	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d61f0	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x972aa5c4	sdhci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x972f26b0	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x973da5ad	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x97485e24	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x975d21ad	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x975d41cd	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x97659959	usb_ep_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x97679db0	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x97770670	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9797bfcc	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x979fc663	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a17bf3	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x97aac051	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b302cf	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b71dc9	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e938d9	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ebe47e	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x981bc359	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983e5a02	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x985c76a7	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x9870b003	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x98735a50	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x98766ee3	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9883522d	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9883a087	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9894d49d	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x98953a98	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x989eabfa	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ad5d58	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x98aee729	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b2eca8	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d27e2d	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d44caa	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ee38de	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x98eea03a	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f24f93	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f86916	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x99006951	__get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x991caa08	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x992bf3ae	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9938ac8e	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x993cb454	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x993f7ed9	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x994d2c3f	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9954f1f9	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x99678b58	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x996eeb3f	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x99761168	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9984987e	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a2b818	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b9c3cb	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d3b82f	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d96fd2	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x99dd92f3	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ea3631	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x99eb0605	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ee705a	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ffd276	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a048866	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a105610	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a255f3b	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a29ad55	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a315d83	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a46f9d1	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5f88f2	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6ceb7f	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7be06b	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aae14fc	dapm_clock_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abb4378	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad50553	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad56d2d	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad8d2c0	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ade7bb6	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae37b8d	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae9da77	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af09b98	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b0c58d2	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b0fc98e	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b15e85e	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1b1ab4	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b2b5a38	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b499d92	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4b1692	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b53707e	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5f3fa2	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5ff9b3	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6c7854	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7fd3b9	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9a3559	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9b3081	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba6153f	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9babe85a	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb4b427	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb4c9ea	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb54300	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc31592	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc43c67	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc59b19	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd68c70	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be2f388	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf7335a	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bfe07b0	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c02f11c	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c249c1b	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c25878c	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2be429	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c311448	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c350b59	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c5a39f9	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c6029c9	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cb3ae16	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce570a6	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce855c6	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf4ebea	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d0e51a5	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1a38fa	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d311d43	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4ba90c	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d5a3c36	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d82c5c4	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d86e6c5	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8eac49	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9a96d8	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x9da848ed	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba64d7	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcd1fd5	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd47f2d	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ded255d	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfd811f	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfdf722	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e125e66	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e130440	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e19e789	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e272694	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e301776	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e303c8d	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3be7aa	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3c3e69	imx_pcm_fiq_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e644dcd	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e6c8742	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e6f448a	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e71741b	mtd_del_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7d0640	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8e4259	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9de527	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea25202	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eab973a	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee5e40a	__ktime_divns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee87c36	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eeefd18	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef6fe22	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9efacfed	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f04c929	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f06f06a	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f0ffac3	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f140889	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f171af4	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f19546b	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f288564	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3ecce6	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4332f1	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4a51ca	pci_remap_cfgspace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f576a37	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f57ff81	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6ab8fd	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6b3f49	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f76e5aa	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f77d251	nand_deselect_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f954493	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f973d51	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa24a08	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa931e3	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc416fd	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcefa37	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa021ead7	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02b6089	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08ea9be	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa094751d	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0afd03c	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c02d68	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ce4984	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dc7aea	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0df8a99	snd_card_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ef9e4e	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f0658c	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f66169	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f88a5b	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f98882	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fccaf1	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fecf05	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10b0ed7	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa115c776	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa12b4cc4	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa12d940d	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xa13e6c9b	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1532add	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xa157d7d2	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17555f6	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1915c6a	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a9fb00	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1af9cb3	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b3b363	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1bb2048	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1bdc402	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e8fdc1	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ef77bd	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f1bd3a	arm_check_condition
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20a5b9c	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20e87e8	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa21bfd96	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2248102	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2248a0c	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22a3661	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22e4359	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23f684b	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa259684d	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2693fab	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa292449c	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2abb1cc	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bd25da	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c31b2a	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ce4d88	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e043cb	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ef6cdd	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fcecc5	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa311a560	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33744aa	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33cd107	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xa344cf12	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xa346975c	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35021d0	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa360d9b7	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa364cbcf	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f03a6	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3710d12	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38d7ae5	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3aaef15	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ac7e2d	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3acacc0	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ad5df0	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c5e292	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c94998	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e33ac5	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f63aaf	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fdd955	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fe48b5	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa40b6967	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4152cff	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa417de1a	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42b298c	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43086ae	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43aa130	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44d08eb	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44fbefa	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xa456de65	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45dc275	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa47bd549	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4963172	omap_iommu_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4b4ddb9	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4baddac	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cc19b3	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d29185	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4dce27e	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e2763a	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e7e37f	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4eb62a9	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ed1c7f	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f57fcb	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f8f88d	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fab2ca	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4feeb30	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa509d0c6	devm_regmap_init_vexpress_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa519a36f	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa51e376e	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53ece7c	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53f0dd7	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53f3fac	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa540d959	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54aadb8	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa551dbcc	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5523761	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5737528	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58589c7	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58965c9	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a709c2	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5ae6c39	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b4b48a	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d6ac77	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e1eb5a	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e584e2	mvebu_mbus_get_io_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60986a9	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa609df02	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6165828	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xa619e9a3	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6256eeb	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6332117	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65652e3	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66baf95	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66ddbcc	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6710e98	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa685c285	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68ebe2a	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xa698c1ed	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c97b39	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d7ef6a	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6db9ac7	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7008766	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7063cc7	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70e7705	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa713a634	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7164767	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7285944	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xa72b774c	imx_pcm_dma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74dd71a	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7656a14	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0xa765e29f	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa770bbaa	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7802e2e	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78e0ade	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7957569	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a0d6bf	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7aaafde	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ab8689	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7abdcfa	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c407cc	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c8f4a4	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d05c22	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d1cbd7	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d2f575	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e8083a	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fcae46	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa802e225	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80bf426	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80c3d4f	tegra_bpmp_mrq_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80f5790	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8102ae0	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83292f4	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8338b76	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa835eb6a	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83c7303	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84eb0e2	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85111a8	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85438d3	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8625934	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8681721	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86c396d	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86dc2ab	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87f6ec2	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa884cdde	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xa88d4297	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8953448	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8979be5	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a27d5f	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8b0e880	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8b6a48e	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c000e8	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ceff63	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d02bd9	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8eacc85	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8eae8cb	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f19254	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f205cd	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa901cdac	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9296cac	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b7803	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92d11bb	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9347c2b	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96b4a26	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96e4197	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9763d02	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa977122a	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98a83c6	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b2f28b	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b6ebb2	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bd91cb	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c799fb	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9cc4aa7	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e05660	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa01edb1	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa06cf08	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa075d05	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa091ee3	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0bf007	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0eeaed	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa17cc1b	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa19c591	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1b83b6	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2a72bf	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa40309b	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa44acff	omap_tll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa45fb60	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6d2eb5	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9712c5	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab2d67d	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaade2cd3	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaecf75d	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaee0582	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab03e6cf	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1b9964	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0xab252110	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2fa08f	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xab36e728	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4c9dac	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4f4b32	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xab53fbc0	mtd_is_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xab59500b	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6859c0	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xab697417	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6fce07	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7c7ab8	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 vmlinux 0xab903462	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0xab944945	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xab970c07	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabac0f15	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc8aea5	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcda29e	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcfa03b	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd03542	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xabed938c	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xabee03d0	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xac209e8b	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3a793f	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3c9e31	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xac4ca7db	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xac598365	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xac611168	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6328dc	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7be87e	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xac84542d	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xac89e516	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9c9266	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9f5965	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xacae3231	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc7469c	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd74cd0	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xaceee1f4	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf7ed36	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfa06b8	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfdeff8	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xad02c0e6	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xad25b931	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xad336a4a	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3a0c45	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3a591a	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xad4c87e3	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xad4f9f71	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f21cb	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xad61751c	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8d4384	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc215a7	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xadce2ad8	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd1a131	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xadea8d71	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xadfa4c31	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0ee08b	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae338bf3	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4258da	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4df5a3	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0xae5028ba	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xae690f87	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae86ee5e	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9d12af	cci_ace_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb21fb7	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb2541c	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec424b2	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed23e2b	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xaedbc3d6	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaede4d84	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee27acb	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeeed1d7	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0xaefcbe65	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf019b51	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1c7b18	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf652533	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7affa2	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb20d91	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb5d522	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb78523	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc0b3fe	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc94596	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe2c804	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe4aea5	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01df054	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0232477	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0282de0	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ea3be	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ef9f0	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0417e33	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04d1f7b	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06cf0bf	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07356db	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0963bce	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a5f95e	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a6a238	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0aa0ca4	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0c0e158	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0c46940	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d4545c	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ff1b5f	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10ed056	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11625b9	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11ab031	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb133ae64	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15c8e99	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15dc58c	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16debbe	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1756851	arm_iommu_release_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xb179584f	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18110e0	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1849e7a	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xb188e52e	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1aec0e1	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1aec74c	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1b0dd2d	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e8e525	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f9dfe6	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fd02d6	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2252509	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2332e44	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb23ccb76	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xb23dd709	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb246e30f	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24b6291	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24d2e96	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24fb444	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xb25484d1	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb261c898	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26b57f7	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27d6444	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28b9d4c	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2adf03a	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2cf9c08	sdhci_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2da9a01	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e3ddcc	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2edf168	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fd529e	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30c5943	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34cc28a	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3575bcd	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36b16f0	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb381e4e9	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0xb394b69d	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39c7cf9	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39e282b	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3aa8c2e	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3bb7777	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c7cf74	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c91a59	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3cae841	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d5dd45	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d87db6	sm501_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3dd0b51	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3eeaaac	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ef0c8d	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fbb277	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fe9987	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ffe69c	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4044ef4	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40c6376	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40ca91e	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46aeb20	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46b5e48	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46baa7c	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47141ef	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4759d23	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49de221	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ade900	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ae1556	omap_iommu_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4dd5020	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4df5eb5	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eaf282	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4fc34ef	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5218708	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54f603e	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55d5ed7	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55e09c1	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xb560e88e	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56b881b	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb570b9eb	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb583b2bc	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58906a4	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58c939e	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58f1726	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5920ac4	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a65ecf	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b0fe7a	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b37f30	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b44cca	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c62e07	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c93b22	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ce27d6	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5cefbba	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5dcd8a0	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5de2d1f	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ea410d	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5f43908	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60abcc1	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60f10ab	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb642e7f5	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64d293c	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb670838e	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb685c8f2	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0xb693d293	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a1a23e	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a445fb	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a94657	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b605a7	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d77957	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6a1a8	mtd_panic_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f1cff9	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb704f833	nand_select_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70ea06e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7168ea4	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb718e044	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7256415	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0xb725cd5b	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xb730acec	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb733eb3e	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7491c17	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76cbf58	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb771e6b7	bL_switch_request_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7845e4a	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78a7bbc	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79f3922	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b81fa2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cecb2f	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d45630	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7dc1234	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e85da7	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f0e459	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7fc5e8e	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb806b95c	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80a2821	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82566eb	omap_tll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83021c9	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb830ce7e	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8340e5b	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb842e459	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8644a45	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8733dc7	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8752e4d	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8835576	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb883da22	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xb885c6ca	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8956e79	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8a6dcae	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c745c8	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8dbcf1c	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f1c019	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9011dae	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90a1fcd	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9138620	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9176155	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb923375e	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb927b9c5	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb938b0f3	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9418804	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9420a9b	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb94362b3	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xb94fb519	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96a6616	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96b641b	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9732be4	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb987a26b	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9897f49	gpmc_omap_onenand_set_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99a93f5	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b2df21	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9dab01d	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e87b94	bL_switcher_trace_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ed387c	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f27f6d	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f8381c	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ff5d95	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ffc57c	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xba06cb7b	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba141171	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xba225467	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2c7702	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xba44df2b	nand_write_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4cf9fa	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xba5d7f4a	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xba754189	ahci_init_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xba83b5f1	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xba886656	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba953f94	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa11a3d	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa2489c	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaab51fa	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab35461	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9c220	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadfd21b	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae4bf31	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae83636	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaeb7d42	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaedf893	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf8fc80	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1bb392	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2b65a9	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2dd766	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb415bbc	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4c7570	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb58cb98	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb889384	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb902505	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9511c4	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba518ad	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba8b368	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb07b76	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbbfcf82	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc949bb	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbcb6215	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbddc24d	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbf97e05	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbfc64bc	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1df743	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc25958d	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc27aebb	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc36f499	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc55e860	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc91acbc	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc99e38a	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca7498f	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcaaf340	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb83498	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccb48c6	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd15f99	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcddb4e1	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce39ab7	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf720c4	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd06224b	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd109df0	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3ac443	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd4de8a2	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd4dede4	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd66c119	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd921460	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda08734	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb84302	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfcc6be	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfd0e68	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe046c12	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0f1818	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1ccfd1	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe20e1b2	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe611718	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe7e60cf	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe83debd	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe840c73	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe8a19a9	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe8cee0b	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9af246	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed74de3	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee8eafe	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeed0845	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefb53aa	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf01abbc	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf2a71c2	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf348e1a	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf413b77	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5ab541	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5b49fe	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf63f9a5	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf74313f	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf84a483	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb2a2b4	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc0eac7	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfca593f	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdf5f8b	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfee5126	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff5d4fb	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffa2bc4	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffccdde	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffce09b	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00131cf	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0198be7	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01fc6fd	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02d0bf9	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0420b23	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0583e20	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0672a2d	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06b77b3	__cci_control_port_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06d2ea6	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc081c246	bL_switcher_put_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08d26ca	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08e8bd7	rockchip_pcie_get_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a15522	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c4bfa1	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d2e27e	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e34fb5	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e75cec	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f98aa1	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1004bff	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10655da	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1082816	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11b1c16	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc121a0a8	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc128788f	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13a67c5	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc143fb1b	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1597028	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16eebd3	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc179f146	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18125f5	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc190d845	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a02da1	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a1eda9	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ae2ae8	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d2ac8f	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1de7b58	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ee7363	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fab582	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccc5e	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2070ca3	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc207164c	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc215fa4c	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21b3cca	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21d9d32	put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc222ead3	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc223a56d	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc233ebe4	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2371dd2	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc237d6d0	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23cd2d1	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2423edb	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24c9b71	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25679e4	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25c2bde	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2662b5b	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2737fe1	ahci_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27cb77c	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28f67e1	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2990705	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1ae95	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2db7e18	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2dbb95b	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2eb0db6	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fa12e8	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3092a96	arm_iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32fb38d	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33cf3ef	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33e252e	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc348c618	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36a64f0	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36cd31a	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36f9bbb	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xc37473d9	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38637c0	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38d338b	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc397b23a	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39dcf13	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3af549c	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c208d4	mtd_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c5973a	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cfc98f	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d67ec4	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3dd3815	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f04df0	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f36dc4	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40412fb	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40c1c8f	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41ecb3c	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43381e6	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4664fa5	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4743910	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc479015c	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc47d16c8	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48d62b7	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48e4971	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc494d2b5	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a60f07	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c38da4	qcom_smem_state_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ebc9f4	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ef7734	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5104f34	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51af8fc	xhci_mtk_sch_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53e15ce	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5514dd3	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc565ba74	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc56b9cf0	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5965af0	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc598733d	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5bb16db	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c10668	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c495a8	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d3e53c	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e3647c	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e8a3a6	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ff6945	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc600b224	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6017889	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc611b68c	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61a6865	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63e6844	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65bb27d	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc674ddab	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68baa08	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68eb5c2	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc699ff1b	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a1c145	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ad3c59	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b3b04e	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bb1f65	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c3ed50	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ca2c73	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6da971f	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e667f1	thread_notify_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ecf5ae	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6f54386	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6f7e4f9	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc705da20	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xc712bf75	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc721050d	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc725beb7	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7479d0b	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74fcf73	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xc750b831	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75d371a	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc76442f9	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7669213	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xc771f25d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc775b181	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7864a28	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79144f5	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc791f656	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xc795e718	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79a965f	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a31371	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d993a8	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e11e74	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e7ab31	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f60032	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f98c5c	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8109af4	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc811363c	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8225b3c	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc848f1db	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc873389f	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xc875a939	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8789b73	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87c10ee	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc889a1aa	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88a0faa	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88a9f9d	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891136a	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8941595	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89984c3	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89c6701	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b3f508	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c6423d	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc904f2e6	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91b9a27	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xc92a3839	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93e5b3a	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93feb2d	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94c5129	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc951146b	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96e8739	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c1f42f	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c22920	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d393da	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9dd4185	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e6b745	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9eec686	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f5ea6b	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f959b3	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9faea36	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1248fb	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xca27206d	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xca31060f	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3a9208	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3ab270	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3b4bb2	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40b9bd	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xca43e104	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5171cc	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xca737b10	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca942d1b	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac5cb5f	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad2cc76	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad6442d	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xcadbeb28	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xcade6d41	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf1cecb	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf5340a	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1293b8	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2186af	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb22a484	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2970fb	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2b6657	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb527c76	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb645279	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb74e88b	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7a2ec3	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7d4f11	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9bc70a	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbaaeef3	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbbac2d5	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc0ccb4	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc45e73	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbca7486	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd1c98a	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe80fc4	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0caa55	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc115ede	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1a2965	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc20ac52	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5ade85	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc684a80	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc85ed2d	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc89ed8e	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8ae04b	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8e9e01	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc968900	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc97b0ce	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca42980	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xccae1b18	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xccafbee9	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb37392	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb38cb7	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd90a87	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdbb8c3	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1cd57	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce4b802	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce9d149	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf059cf	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf557ed	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf631a8	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd01ac01	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0a44b3	snd_device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd23bf64	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd23e1de	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd297412	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd399787	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3bbb25	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4febd5	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd660cb9	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd68905f	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7c7f9c	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd83c93b	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd928870	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9a64e3	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc50aaa	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc69a2c	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca046e	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca4950	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcfde62	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd0cdda	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdfa7d9f	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0ee257	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1df46a	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xce562fd1	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6b7958	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce775261	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7cde21	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0xce9fc2e6	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaebea5	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb2bcb4	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xcebeef29	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee0f60c	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee230af	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee9e284	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef3897f	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef4d5b4	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf128975	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf1898fc	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf4943df	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf52d809	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf537829	nanddev_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5f05f7	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf667dc1	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6debb7	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7e9776	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf840ac4	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8480b3	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf84b54d	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf87e1fc	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8c125e	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc239dd	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc30fa9	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe29681	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfef3aa0	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff29733	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff3f2f0	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffdff87	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd022c4c3	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd037ac8e	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd049ebcb	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06b2b45	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07adf08	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08011d2	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd085c1b3	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08631c3	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0991924	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0aeca0f	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b2849d	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ce1b80	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e3c9fd	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xd106e614	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12159a7	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13a378e	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15158ce	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1519643	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd167b76f	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd186650c	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1943976	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a5bd18	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a940e2	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1bd1b9b	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c25352	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1ce9d66	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d8c5cb	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1de64eb	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1deecc9	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e36198	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e60d3d	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd201cc02	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd208fea3	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20b8ad4	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217f5b2	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21cb4fc	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22591bb	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22fc977	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2507031	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xd259f554	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26beb86	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27702a3	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd286fd81	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2aeba0d	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bc3efa	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2be4276	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bf8a65	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c0d24a	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2cece20	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d20a16	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d9a850	snd_soc_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e00a5f	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e189d8	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2fe23f6	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3391aaf	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34288d1	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34ae724	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34ef2f7	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd35b18d8	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39071e6	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39a47e0	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a73faa	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ce0ea7	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d4836f	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3db9cf0	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3dbd3ff	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd401c5c1	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41cbe7c	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44aed49	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 vmlinux 0xd454d6b5	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4796dd0	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48ca8d3	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49428b3	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xd494559d	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd495588a	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c7d8f9	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c9ffee	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ce5942	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d16753	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d45be4	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e5bce3	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ed07d8	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f3db27	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fff261	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5105df6	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51d0b85	nand_read_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd536d7c2	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57e05f4	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ac24e5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5cf6aec	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5d29246	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5d745b3	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e2423f	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f2293a	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f7a763	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ff1531	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61e084f	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6282eae	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6380bcd	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63af089	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63ce82a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd657040a	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd68abf1d	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd696c58e	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69acfda	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b3d75d	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c540fc	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e347ec	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f9db4e	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6fde1b5	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6fe417e	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70073a1	clk_regmap_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7182ba3	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7283f11	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7343449	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7356e0c	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74c9b6e	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7588299	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e8f2	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd778dcbe	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77ac685	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd79833c1	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xd79c241c	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7a27c2b	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b2a137	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b3c818	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b411cb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7bfc7d1	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d40695	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d50a66	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd804d6dd	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8134525	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81bbe58	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81dde2a	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd822b12d	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd82eed2c	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd836b1e5	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83d26eb	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83ece1a	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd863de82	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xd86b5aa3	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8723f94	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88526aa	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8addfc7	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b513ea	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c65c94	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d24416	hisi_clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8dbebd0	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e05a28	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e0d6b2	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e0fb1f	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ffacd8	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ffe1de	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9066fa7	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90ae10a	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91e65a3	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9218d1e	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9224065	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92c1d87	ti_cm_get_macid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd935f573	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd959617d	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xd965b3f8	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9793959	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9895fb8	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c3c1f5	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d7b086	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e087db	nanddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e437fe	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ec35af	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f3e65f	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda096be2	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1129c8	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1e2344	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0xda25baf2	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xda27892b	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3b6634	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3d7f2e	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xda410add	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xda461881	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7b277f	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xda806aaa	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xda81ec0b	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xda938d6f	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xda992af8	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9b75e8	ahci_check_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab19839	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab75c29	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaba9c95	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad2e738	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad3acaa	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad5e14d	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaee2b48	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fc81	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb227682	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb22dbf5	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2363b2	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb286260	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7caebc	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8b8163	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb9489b3	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb42ebb	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb6eec7	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb95f71	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbbd77cc	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd2628a	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdb3d7f	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdde3d9	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0d975e	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1a08c6	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1d8899	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1fe010	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc34597e	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc47173d	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc725e4d	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc74f08e	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7564d6	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7ce353	mv_mbus_dram_info_nooverlap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8e7978	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc926901	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9b70e2	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca8ace3	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbb5130	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbbaabe	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd012	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccb5d4e	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcef96b9	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd148e2d	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd21316c	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd230325	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd3e0d33	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4f8150	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5e9958	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd665a17	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd779f3c	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd85063c	lpddr2_jedec_min_tck
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8d461f	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda526b0	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xddab5311	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbb3fc7	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc6cf84	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc6ef44	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc7a638	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd6a7be	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xddddcc9f	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde0fa4f	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde8704f	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf25ef8	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1d4aff	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1d7617	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2286e0	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0xde25f88c	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde28d02a	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xde307e06	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xde326386	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xde43647f	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0xde57a979	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5f00fc	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde70194e	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb4e038	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebf9a03	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec18ae2	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee4847c	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef7acdb	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdefaa217	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf007ff2	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1a12ec	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf255dcf	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf293751	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf484fc9	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4ff688	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf694d2d	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6e2358	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6f59c2	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7fa33b	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8e3a01	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8fc6b7	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9520a0	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9f1dc6	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa25f9e	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa9a51c	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbf96b3	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc459c9	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfd31710	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfdd78aa	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff1516c	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffd3e8b	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xe005c145	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0082da7	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00858dc	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00c66da	snd_compress_new
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00f65b3	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01126d2	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01e8772	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe03f8739	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0422a57	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04e99d7	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05bf1b8	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0618274	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06586eb	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07995bd	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0866a57	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0868d59	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe096321c	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a770a0	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b111b9	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b22b06	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b322aa	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0db57c5	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe121efab	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xe126553f	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe128c56a	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12d337f	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14aea9f	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1502545	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1546a26	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16f0b66	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17d39a4	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18034c3	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe194c934	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19edb62	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a058fd	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cfa261	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d967ca	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20326a6	__put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe214135d	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21ded4b	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22a5081	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d14ed	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2342399	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23c7e4f	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe244eca8	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26a5d54	null_dailink_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26fd05f	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe275add1	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27bab5f	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2992103	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a62994	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cfa4d1	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d3c4ee	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ea7190	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f6fac3	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30df9b3	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32cf07f	arm_iommu_create_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32e8706	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe339105d	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3444ad1	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 vmlinux 0xe346fe72	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe36bb994	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 vmlinux 0xe377571a	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3869805	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38cd967	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3916c1b	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39a6a6c	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a53dfa	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d1deb6	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d2413b	snd_compress_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d6be8f	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e5dc44	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ea700d	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fc8a33	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40556db	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4071e9e	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe42519b4	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4298b3b	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44b756a	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe451cc40	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4544255	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46f6016	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47ef943	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe482012e	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4954950	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a09d7b	rockchip_pcie_deinit_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a60092	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b39191	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b3d451	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4be40f4	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c9f178	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4db605a	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc8b26	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5081a40	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe528653e	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52c2560	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52c97e9	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe535f385	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53c2275	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5513ff5	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5633dab	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58167e3	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59512cc	nand_status_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59ba306	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59ee23f	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c2031b	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cab671	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cab95d	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb1943	hisi_clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d7409c	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60e8d0c	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe61528b5	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe62c6d7f	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xe642202a	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64b338e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe665e6df	mtd_add_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xe67f1874	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6913893	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe69ce2ce	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a01d57	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b5eb34	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b94cb0	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b9e75a	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bb5e41	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6beb483	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d43613	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d81d31	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d91194	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e4c0b7	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e72e76	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f6f77b	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7041a1c	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe705435c	xhci_mtk_check_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71939c0	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe722a9de	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747297d	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7495ca8	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7544719	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75625fb	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7566cdb	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0xe756ff51	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7590754	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7603b58	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76456ac	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7703ba2	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xe775b60a	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78c1b31	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79342a6	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79f74b7	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a38a96	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7dce9aa	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7dda3d6	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e3902c	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ee0626	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f07b82	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe807bdbc	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8082afe	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80b5967	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ba589	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82318f2	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82d9ab3	rockchip_pcie_cfg_configuration_accesses
+EXPORT_SYMBOL_GPL	 vmlinux 0xe833b2b4	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83c52c7	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe863923a	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86fb05b	ahci_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8801b33	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88ecfae	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xe893989d	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b885b5	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8d4f427	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ded172	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8eecb8b	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8efa828	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe90985cf	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe918730b	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91b5252	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93288d8	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95757c3	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95fc3f9	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe967773b	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe970010e	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97d1e9c	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe993a859	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a13e18	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a57106	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a7fe16	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a8a8a8	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9bdd9b0	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c1fc0d	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cf8d5c	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d26bc5	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9da6d10	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9dbcea1	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9dd41aa	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ee185c	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 vmlinux 0xea005f6f	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0910fc	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0xea11363b	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xea114216	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1bb291	bL_switcher_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xea23fbda	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xea40c312	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4a09cb	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5481d6	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xea677cd3	reset_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xea736179	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xea88055b	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xea8c4884	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa04698	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab7c503	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabd1f2e	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeade8f96	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae7995d	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb038e7c	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0df425	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0fcd06	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb11e05b	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1a97d2	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb2e0b0d	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb339ed7	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb425263	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb42c891	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb55ad86	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb55d2ad	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5aba4d	omap_iommu_save_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb615941	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb750d2a	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb804742	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb89e5ba	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9abbee	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba6245c	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbe1622	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebce3506	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe1b94f	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe9a5c2	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0xebec6c95	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf48142	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0b2495	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0f8740	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xec100559	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xec16b566	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xec358ffb	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xec4976c0	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xec603a7a	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec826b98	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8466a8	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xec86ff79	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8e70e9	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9b0fc1	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xecbc65fa	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xecdd1268	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xece7f265	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xecec33dd	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xed170e53	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xed344146	mcpm_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xed38c848	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xed770b55	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed86757c	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8bbe99	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9562ab	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xed99b5d3	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb235a7	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc0077d	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc24a89	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc8fd18	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xedcfddcc	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf458ff	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xee02d1d6	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1d110a	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee5a96fd	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xee5cfaa6	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7c0c75	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7c5aca	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xee91dc9b	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb0b62e	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb717f4	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xeebb52ff	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec0ff2f	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee4248b	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeed4b5d	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef95d96	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1d3558	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xef213b33	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xef256d4d	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6ce359	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xef74e016	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xef83eed1	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92bcfc	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xef94950c	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xef967f53	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaace6e	mv_mbus_dram_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xefac104f	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xefae705f	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc6d0ed	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe1fc5c	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe8b8c1	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffe8dcd	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xefff1ec9	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0419625	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04525e2	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04691a6	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04b03fd	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04c4cab	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04ce2d9	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05829f7	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0814253	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf084e49d	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf090450b	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0930a57	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a18464	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a9a733	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0bdf806	register_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0be8315	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d09d94	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d6a9c5	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f3d097	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf11bfc60	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf11fd25e	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf13cbcc1	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14950ae	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xf149c812	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1725560	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17ac443	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17f133b	meson_clk_mpll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf181cf3c	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d54e	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf185c985	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18db653	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1931a5e	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1bdfdfb	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1df9b1c	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f024e3	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fae6a3	asic3_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf204346f	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2115d3b	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf222ef5f	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22adeb9	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xf247a2d6	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf252b958	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf265af2e	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26811e5	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2732d53	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf276c951	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2822152	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a9a75c	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c73931	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d66294	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d6b0ff	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fe6ba4	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3039326	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30d0231	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30fda27	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32d6f0a	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33824b7	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39f17c2	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a441fe	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b6019e	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b77cc5	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c4541d	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3dbdf0f	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3dd1719	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e1a29e	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3f97c6b	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4187d83	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43dd1cf	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf453a34a	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45e5a9e	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf471b84e	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xf476d9c7	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47b124e	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47c9fe9	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47de486	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48288f5	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48434fe	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf488f446	scmi_protocol_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48a6329	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48ceebd	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49c680a	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b2c7c9	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b9eedf	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c86dec	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4dcc0ce	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ecf5e7	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4efca4e	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f4d00a	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f98013	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc1df8	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc38e8	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51abdff	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xf525cef2	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52e14e9	snmp_fold_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5462bae	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54dd7b9	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57f5ce3	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xf584753c	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5884fee	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a0d9b6	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a618bc	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b3b1e5	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b41374	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c3b077	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c52c60	cpts_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e4ac24	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61baa65	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62a6ca3	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62dd7f3	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64f35e7	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6521f9e	nand_read_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66a0e9f	sdhci_free_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66b16e7	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf67d5750	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf683ff15	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6999b89	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69a2bc5	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6aade26	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ab7b39	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c665aa	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d21974	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d4d6bd	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e48279	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e9b4a5	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f6f708	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70110ae	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70eb7ba	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71255d7	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730fb4a	qcom_smem_state_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf734a846	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75b2491	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76b0a59	read_current_timer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76d308a	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77f538f	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77f8adc	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7953dc4	qcom_smem_state_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b3d18c	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c22fc1	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cf72c1	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7dd975a	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f4b61b	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80d6a9b	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf817a97f	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8188d64	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81b67b0	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8235953	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82aeba7	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f16b3	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf836ea0d	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8403c05	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf86641e1	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf893489f	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89a3d89	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8adef20	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8adf0fa	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8ae8bac	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b8c0b0	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c0869c	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8cb58f5	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d2d960	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f8ecd6	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fd701e	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90bac56	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90fdb71	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90fddcf	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf915dde2	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf923358d	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92d8a27	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93e8575	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9410ff0	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96f8900	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9767c19	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97bf7ba	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97cf047	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97db433	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf998c6e7	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a92988	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9be3091	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d06e60	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d129df	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ea0418	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9edcf3a	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fcf8ee	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa03858a	sram_exec_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa188e20	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1c7fc2	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa27d7ee	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa369b95	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa452378	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4a7dd4	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6022d0	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e6753	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa82f473	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa84c39f	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa862e8a	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa8b9ceb	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa763bf	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab42057	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaba248a	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac1da20	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad00968	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae20147	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae2688b	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xfafded9f	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb09bb47	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb24d4ab	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2c4782	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb36d178	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb3c1e7f	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4376be	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4550f8	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb51f520	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb5682d1	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb608635	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6f85fd	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb712f80	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7a4a7f	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb842fe5	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb10c1a	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb8f089	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd2612b	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdb7cb8	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe1fa09	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe232b8	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbfb512c	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc014cb6	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc339fda	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3973d8	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3fc81e	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc57bc4a	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc587c1e	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc5f0baf	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc608b3a	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc69aaaa	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6ac29d	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6b2e80	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc738acd	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7a4653	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc84321c	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8a744d	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8d7afc	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaf4084	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccae1a5	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccd624e	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd647b6	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf6f8c9	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfea2b8	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd040770	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd125f10	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd12b472	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd1ec6e4	hisi_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd23e3dc	scmi_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd327ed0	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd382f5a	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd41cc84	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4da709	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd661d9d	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6629b3	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7b07cf	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7f58ed	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd8d35cf	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd92444f	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda478a1	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb7f7f7	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb8e9b4	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc756d6	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdcd5d00	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd27de1	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd4e1d9	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb5b0e	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdde7fa5	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdffd1e7	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe00dece	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0bbbd2	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe153f3e	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29b8e1	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29d810	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3ee0eb	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe48eecb	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5e589c	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe642e8a	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe79dbef	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeaae9f1	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb24b88	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedd3e58	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedf8399	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee49006	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee7f084	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeebe198	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeefbd1d	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef15fea	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef67ace	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xff04a4d7	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1ef746	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xff23c530	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff4046ac	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6a8cef	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xff70e663	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xff80e3de	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8d45c6	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb13bd8	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc91721	dev_pm_opp_set_sharing_cpus
+USB_STORAGE EXPORT_SYMBOL_GPL 0x015030fb	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x137571ed	usb_stor_suspend	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 0x2dd959d2	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x32753331	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3f4d1808	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4294b3a8	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x512a7806	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6204563c	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x69892653	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x74f157c1	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x86e84a58	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x880a9570	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x948a43ba	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9afe54b3	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb03aa074	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb2d5f4d2	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb3b3f250	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc4d1763a	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc82b4947	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd54399a2	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd95a7ab8	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe596f7f5	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xeb671fdf	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfa294c8b	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic-lpae
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic-lpae
@@ -0,0 +1,22999 @@
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0x007a2539	crypto_sha256_arm_update
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0x84e7c71d	crypto_sha256_arm_finup
+EXPORT_SYMBOL	 arch/arm/lib/xor-neon 0x0f051164	xor_block_neon_inner
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x0698ddb1	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x60fcdc68	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x69b57b85	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xbe24fad7	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xe6609fc9	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xe831d3c0	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x35d9d2e2	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x37f0da23	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x3b9bdfbc	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x62edd20e	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xa0597708	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/atm/suni 0x9ce9afc6	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x6f360661	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x98db34a9	bcma_core_dma_translation
+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/block/paride/paride 0x0b1ff768	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0b8649b2	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x1470e43d	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x20d062f3	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x92b62c7e	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa8f28b8e	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa970cb51	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xac160a18	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xae267481	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xdaa46295	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xec5acb51	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xeee975be	pi_do_claimed
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xef2154d9	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xe2db92ae	rsi_bt_ops
+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 0x109c1047	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x7064eea7	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+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 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xc4cbaf38	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xc5275c67	ipmi_add_smi
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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/ipmi/kcs_bmc 0x83c8d5ec	kcs_bmc_handle_event
+EXPORT_SYMBOL	 drivers/char/ipmi/kcs_bmc 0x90cf367f	kcs_bmc_alloc
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x31a19ed7	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8ee84af5	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x984d86b9	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xab63b7e6	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x15697f19	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x72f9e6bd	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xbf5e0283	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x00775406	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x5da52b96	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x9d6323c9	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x01530876	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x04aefad9	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x295a0b23	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x410a1c79	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x517fc29c	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x52c7b97e	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x534b2596	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x556601c3	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x561a4dea	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x60a6641e	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x616ef59d	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x69f08f72	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6a56dd6a	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8e2819fe	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8ec4e37e	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9dc3a7b4	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9ec9bd6e	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa8cbc7e4	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb924a56b	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc98e0892	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc9b51afe	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe18bb020	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe1fc50d4	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe22fd853	fw_iso_buffer_destroy
+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 0xe90e0413	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xeb6ba02f	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xeb86e8e9	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf64fe8b1	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfa7c2942	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x003f6e85	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x010aa806	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0157f4c0	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0178794c	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x030c7aaf	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x052fe015	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05bade36	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06315315	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x071c598a	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0865b755	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x095d65dc	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09b4dbc9	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a791374	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b8007de	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c99b427	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d25dd52	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0de9e9fc	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e48fcc0	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x102fe187	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1043958b	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1051f7db	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10fb5e4a	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11b1976c	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x126cf422	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13a26e7a	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1454494c	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x150002ee	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x150c997f	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15ab6194	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1622e719	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1645cd4f	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16621f92	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x177a6f55	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17ac8344	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x186afd70	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18ad18ab	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b09e0a4	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b440f5f	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b461cf3	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c7e7117	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1cd3c170	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d76d180	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dafc801	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ddbc7ce	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ec8a92b	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f0987d3	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f0ce68b	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f7c589d	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21b9285b	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d39f63	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x22311a60	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x223ac773	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2352cf65	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2385f927	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23f21b64	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23f87ea3	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24424c76	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24e14e4e	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x26ae5496	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27d23c3f	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28291ed3	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x282eb0ea	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2923d84b	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x297e72f9	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b370115	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2be0481d	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2bffd7e8	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c62958d	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2da0f62c	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e592fdc	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ed904bb	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x326ea345	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x328e57b0	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x338e4585	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x353100e0	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37917d10	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37b1b4cd	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x380b5fbb	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a90ee27	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3af46c46	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b320c8a	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b6f30df	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3bd95e2b	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3cebd7fd	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3dc9b196	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e540ed6	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4052bc68	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42879390	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43f37057	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44727cb8	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44c302c8	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x466b4437	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46a19e9b	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46ae90ec	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46cb2408	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4834906a	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x487ce5e7	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x488aec59	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x489748b9	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49813722	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49f104e7	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ca4a6b0	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d4cd7a0	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4da50a30	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4dea073a	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4dfe114f	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e20289d	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e929caa	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ea6396b	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f11a0a1	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50f15915	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x516966b3	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527a6766	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53746a41	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53a078e5	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53ad346b	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55cb1ad6	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5662cdf4	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5742d82d	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57f2ece6	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x580a92d3	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x582b9cff	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58a7fc07	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58fcc66f	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a326d43	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5aa66381	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b0acc3b	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b521588	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b8cccfd	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5be40bbf	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e487430	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60cf7b2b	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61169bf9	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6190cf1a	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62be1e5b	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64b73340	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x654b1526	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x657c42f0	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x657dfc84	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65f0c20f	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65f8f7ad	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6658f770	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66b82846	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x676745a6	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x67f234c7	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x690b7e04	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x699c4041	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69eb3f04	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a108ed7	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a7659be	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b0b9550	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6bff8c2f	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6cfeab81	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f5c124f	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fc4ea04	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fc987d5	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fd7d17a	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x704fb4b0	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7151b28a	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72cd470c	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72d414e6	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73de117b	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75dd67fc	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x760a7b80	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x763103c8	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77268b6d	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77f738a0	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78b05f38	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78c38602	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x790875f6	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79ccd4b3	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a2fc4c6	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a617d54	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ace3ce2	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b1682f7	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b817172	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c2f6758	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d87f8ea	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ded2baf	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e016d38	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7efeaea5	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f4cceee	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f883743	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81783fcf	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8344459f	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83a1da52	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83a4ef49	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84913851	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85ba22a2	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x863a51ab	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x863bef5a	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87a33b79	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x888061b6	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x893df3f6	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a9a7659	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b1af599	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b1cc186	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b48f6f8	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bb86e85	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2590e3	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c3cfc36	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c72951b	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d106bfc	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8da44b45	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e0759f3	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9035169a	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91d8265f	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92a3fada	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9393b226	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x940bfc33	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x942b2271	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94665613	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94ace8f7	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94d393c5	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x951d6dad	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96996b0e	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9727f708	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9797a173	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97b21cf4	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98d0b516	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b81cc58	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9baba53f	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c6cf5dd	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c7188bc	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d1ec823	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9df444a1	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e158798	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e1e2055	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f38f02b	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0b6592f	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa13097d7	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2da54c1	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2dd40ed	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa37c3480	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4349f31	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa454d3dc	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa45ecca8	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4896bbd	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9c9e29b	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa4327d6	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaabb1e22	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab53bf8f	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaca0cf81	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xadda1171	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae09c4a8	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafd82dc4	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0c9ec9a	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0eafa64	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1723bd0	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb178217d	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1a8f10d	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1e1ad62	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb35e4bc7	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb38d3cd9	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb38e3263	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3ab0b07	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3b912bf	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3d905de	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3f02bb2	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4e28aed	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5b21d62	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb68ce51c	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb71d4f26	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7688219	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb83301e7	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb85341c4	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8563725	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9718537	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9772d3e	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9bf2650	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9ee761d	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9ef817a	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba42862f	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbabb988c	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb02b89f	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb7b2658	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc3b33c3	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf310f6e	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfcbfe0e	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc076b6ef	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc10f2020	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc14e36a8	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc22d723d	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2c16d23	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2e40ef8	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc39df7e7	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc409798b	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc441e3a6	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5d39ad5	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5e34cdc	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6a90fe1	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7101ee7	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc762915e	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7c42bcf	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc80b793a	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc81ef586	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9bc9686	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaf9857d	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaf9b0a8	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd4b977c	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce096040	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce904ef8	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf1b8dce	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0106434	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1fc5f14	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd20d3b16	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4132cc6	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4bb43ae	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4f434f9	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd53ec6fa	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5702b77	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5e6b013	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd67c184d	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6f19a26	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7981352	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8392697	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd86905ca	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc833fbb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd388a04	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd8f3035	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xddc430af	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde4430bb	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde4654a9	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde6c80dd	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfa2b3fb	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfc45a5c	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfc4ef36	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe25a73b9	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2b81095	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2d072c1	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3cb770b	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5d3d88e	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5fe77d9	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe65d16c8	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe6d9493a	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe824918e	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8564562	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe94e8ecb	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe985885e	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea156e9b	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea6ac383	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaa2103f	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebff6be5	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec5dcb36	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3e7ac4	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedee2a6f	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee18e18e	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee8352ac	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee8e759b	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeeed048f	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf01e9bc4	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf05916db	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf27e548a	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2986c1d	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf343836c	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf396af7b	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf63ad161	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6bdf8f8	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6cc7384	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbc4b263	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd27c628	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd9880f4	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfdf8536f	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe182673	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff094858	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x007bce90	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x00c89a1f	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0290e9f8	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x055824aa	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x05675d6b	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x05f462c0	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06ca651c	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06e3efb1	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06ede69a	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x074a205c	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0d7d102e	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0dc8192a	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x111592d8	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11cfb2eb	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13fec840	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x14233722	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1521a6fe	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16afa184	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16c9d04f	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1cfdd573	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d249cdc	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f89a418	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ff45fbf	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x204388a5	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2070dca3	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2078e028	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20b8010e	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x237b29fd	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23be1f60	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x251ec10a	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x255b61cf	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x25a76073	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x25bc2e7b	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2679c0ba	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x284e35a2	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28e095ed	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29b6f7bf	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29ba7192	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2bb1875b	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2cb51ac0	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2d38af89	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2d51d5e2	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2df755e8	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2febcaab	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3035e13c	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x321dfcab	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33ae1ee7	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3531079a	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x354f9993	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36038a16	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36a36fac	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36b0507e	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36c570c5	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3c59394d	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3c992a50	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3dbe230c	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x402d8494	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x405e3073	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x454d66a9	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45b75fa4	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x46ca9649	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x488de5da	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48d28009	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x491a4375	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x495a41e6	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4a5f71b3	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4b3a50b8	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e1710e9	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4fb4c64b	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50181aa4	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5183d6b7	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51d21684	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x553a8b66	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5560393a	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x55f75d2e	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57c507b6	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57c89d40	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58b637c6	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x59041ae6	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x590d5484	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x59195bea	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a9dce6f	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5dd6ad05	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5de414b1	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x614e11c8	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x632a045d	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63c1daa7	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x652559be	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6564d739	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x689c0d78	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x689c7216	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6947c6c3	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a3a04d9	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b2c9003	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c442a42	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6dd314b0	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e491af7	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e561cf3	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ea1f223	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6fdfbdeb	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74eda742	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x76579459	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a261389	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a47f588	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7cc07c44	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7e20b446	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eaf40d0	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81405e80	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81a82dcc	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x857a8e07	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x86951b51	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x86f4cb58	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x880720b5	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8aa2f13f	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b095a52	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8cd5e2a3	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d0cc4d0	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8eab70bc	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8eed35c0	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f328360	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8fc23528	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x902a8a0e	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90654d8a	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93ceaf90	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x975ecd6e	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x982a80c8	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98763322	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98a0d560	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9a83f2c0	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ad4c3ba	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b23f685	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d1069fd	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa0123cc5	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2558a46	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6776226	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6dabedd	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6e5ad4d	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa8c07bd5	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa8d8fd86	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa94b1029	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadee8ad3	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xae47ac0b	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0ac2a39	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb151af7c	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb15f7901	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb42c0b00	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb535950d	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5ee6460	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6945fb1	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbc89f3e5	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd3586b8	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbdc5a95c	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbdec6e1b	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbe55bc45	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbeaa2a07	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc2133b73	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3cc6f34	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3fa18f4	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc71ee33d	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7a1f5b7	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7bec96b	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc8aa1365	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc9ca4992	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca2915b1	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xce1d8e87	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcebebe46	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd24e15f8	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd578fef8	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5c1a42d	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd79a9f3e	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda28a47d	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda2c03a3	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde075008	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde5fd4cf	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe19a7078	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3140586	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe390e291	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe466e641	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe590bb76	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe773ab6c	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe9a35761	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea39ad88	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea823ab1	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeacd9bef	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeb39c979	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf16d99f9	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf17c774d	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2e6f2c1	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf406b7e6	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9b08583	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfa3d1133	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb14ed32	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfdf70bc2	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfea41293	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfef1ea58	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0d1832e0	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x15a6b9e0	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x257e4867	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x28d4955f	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x38a6568a	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3caf06f4	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4de7179e	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x63174147	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6bbf57aa	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x7bdd0175	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9467ab1d	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x994d2249	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa9ca1560	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc1789b7a	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xcd7c3460	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xdca09eeb	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe9c58a46	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xef4a8126	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0fb0e403	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x12e0c6d2	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1f328f35	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x2fe1d17f	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x38b56a44	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4a7e8e68	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x561c7727	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8036a31e	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9bd4aac6	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa5298ea3	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa793fe39	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xacc0982d	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb09e34e8	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb9e6b825	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbdab8a7f	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbe49f937	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc0d4709e	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe67b115e	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf20eff4a	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfe35a2a1	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/rockchip/rockchipdrm 0x922a0bd7	rockchip_drm_wait_vact_end
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x041363cc	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0bff96bd	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0c4c54ee	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1645085a	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x27e8ed58	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2b125c81	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4a1f3336	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x515ece4c	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x7c7d47d5	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x924a0742	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x97010f69	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa3842aac	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa446ae4c	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa8653147	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb2a70886	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbebd64ac	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc4597f7f	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc6bbae0d	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe1ea7b3e	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x013f5379	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0535e441	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e6cbc9a	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x10f2ba83	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x132b05be	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x134c8409	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x13b12ed7	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1aa9cc61	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1abdb801	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x22d5f0b5	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2880a2af	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x315666ad	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3415a4ac	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3b364c97	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x40004505	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x420944a1	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x43ab2773	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4b87a84d	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4d07930f	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x512ce57e	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x53cdae72	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5468d7e3	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x54fdece0	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x567d9322	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x58f71e3e	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5d538c23	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5defca7f	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5e6b2572	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5fc47ec4	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x69972ca2	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a31f431	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6e809c77	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x70756b71	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74f19c6b	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7a50f849	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x817bfc7f	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8bb98177	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8fa311a1	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x90df389e	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x992c857c	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9b1ac6ba	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa29bd93f	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa622fe84	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa64dc35a	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa7ce0a44	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa9035c3f	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb047a5de	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb8cc057c	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba5c45a9	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc208f47c	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc4cbd649	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc563df29	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc817b88d	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcdcbcb3b	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd15e8ec1	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd47c4f0f	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdcb63112	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe07b1469	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe46724bc	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe769bdde	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe950e9b8	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeabc5179	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfdffa381	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xffcfe4c8	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/hid/hid 0x2b4b5cfe	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x04d9b71b	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+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/i2c/algos/i2c-algo-bit 0x4e44ae3a	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x77123a5e	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x807ade74	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x5f1c7d2d	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x9e792250	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x0aa649d4	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x4a11ab87	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x53bdb076	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xf107cf1c	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x029a985e	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x02cd12e1	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x082e6490	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x12a7bc81	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3c76c491	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7ff630b3	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x90d6e560	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x93a547e2	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9c7569bf	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa363e748	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb0b2f8e1	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbee9d12f	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xcd1c1044	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xd6999f3f	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xfc3043d5	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xfcded0c6	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x4ecb533b	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x5c101246	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xca4d7e3e	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xb570e7fc	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xe6afe1c2	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x28ebc181	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x4b8f1d29	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xa0a8001f	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xcb656075	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x497d639c	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x26aa6349	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x274f2418	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x2c96a6e1	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3b88f289	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x83bd2300	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x91680aaf	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xbb1b7824	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xca53ce76	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe1677d71	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xebc96f9a	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x6656578a	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x8d4b40a3	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x91759a15	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xe49eeee9	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x046688e7	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x26feea94	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x562fc4b0	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x57ede327	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x6218c61c	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x63dfc448	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x9bbcc532	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xdeaa9d47	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe3ee63a6	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x04f16ec0	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x0b771cac	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x2964837e	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x860d51d4	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xbbfe81d5	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x12995d89	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x2bbc1b94	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x533c7e71	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x03d64f04	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x12483d12	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x154d654b	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2300bb44	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3946166e	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3a3d522f	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3a680f1a	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x42318279	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x52dcb0ce	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x61fef51c	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x94398771	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x967b4335	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xae2b4f25	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xce6253b7	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xdb526e4d	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe5b792b1	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xec3d4b6b	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf89c4d48	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xab5e5964	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x00838d91	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x1cf6abfb	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xb21d59cc	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xd24062e1	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x0a05ed4c	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x3b5c412f	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x9282352c	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x4ef77081	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x7f80cc88	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x734ac2bd	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xaca3e8e2	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x7266a14e	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x9e584412	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xbd846ca7	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x03cc68e7	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x07f6fdf0	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x39fc122c	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x4226e99b	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x50e70784	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x54cc1e5c	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x58947e66	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5dea0c81	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x624e6c34	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8253a203	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x997d9f7f	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9e2dfd19	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb3e71530	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb5e8e76b	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc9ca7a24	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xccf1b649	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd0f5748d	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd2e5ef52	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdd006d4a	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe3146636	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf602302e	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xfa679584	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xfaaeab1a	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x61999543	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x0e735a4a	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x2480de9a	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x4badcc05	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x822c8aad	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x425fc9db	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x64b68284	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xa8b7ad01	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xad630ea2	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x25dc374a	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xeb561d2d	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xbe361b77	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xcb1a2496	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x1f40bce7	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x6ac9ce1e	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x8dbfe2ee	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xca1a0af7	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x053adae1	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x822b6475	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xab384024	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xbc9374bf	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x3e084f48	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x9bf126ed	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xc6db41eb	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x1b1d2c8e	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x4cb95a95	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xb0f4d64e	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xc4dfb4fc	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xf19bf1ec	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xb6b492aa	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xb75bbb0d	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x22f82300	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x48af7975	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x93008533	st_press_common_probe
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x0c288bb3	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1549d0bd	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x244f05be	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2cb6d5ce	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3588e9ef	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x57ef81f8	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6210992a	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6e9c0ec5	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6f20671d	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x73bc9490	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x74d9b5f1	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x82435453	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xbdb452b4	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc8eb2016	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcabc0e4c	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xce15dbce	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdf112227	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xff153270	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x000982c6	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0025c47f	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x02b32ce6	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x055f1334	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07d15907	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07fd14ef	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a430c19	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ab8c775	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0bf5a28c	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c0ba7fa	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c52d283	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c82fce3	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0dcbf524	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e1fedb6	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e7ef94e	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x104f4e06	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x108f9bde	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x11e26092	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x129d4aed	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13492f7d	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15651105	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x164f5804	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18075840	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x195b8b3e	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a9ae962	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b8d7f87	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e235e60	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x225d574b	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2780e93b	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2829c5f5	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a6a5526	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2de61c1c	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f43d3d9	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30f6b64a	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31187596	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x32ae759a	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x335b6d3f	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33c09fbe	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3471b16e	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35446c8b	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35a7a2cf	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b0e975d	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3beb5e69	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d3b6724	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d9e74f6	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4079a852	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x418479af	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x418abaa0	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4394be5b	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45b338e0	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x462b584e	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x462be633	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46a4f3b4	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46d906a5	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47a2745a	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47f8929d	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48d1153a	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49401aa4	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4d0b5f62	rdma_nl_put_driver_u64
+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 0x4ede6a28	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4ff121d1	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5117acaa	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x520b2638	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52668966	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ac06e3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x56fd7b22	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x57acfa6c	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x596743d9	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ae35542	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b5c41fb	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c68e8f9	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c8eabfc	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f0fc1b4	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f74e9a8	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60ffbcfc	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x621b12f1	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62e25cce	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x651aa14e	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65f06b59	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6757954f	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x68ad2e82	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6af20120	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6d3d31bb	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6d608592	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f0602b1	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x704e2dc1	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7050fa88	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7057c293	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7172e02b	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72a9f3ea	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x730ee93c	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7647eb0e	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7669e1f1	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7872c88f	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7994bc33	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b026a25	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b9995d7	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bde6805	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e7375d5	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f7d5b58	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x814afac7	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82f0677b	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8843fd1f	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x890579f3	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89073037	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x893500b9	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a6286ab	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8be1bcce	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f84ec14	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8fa1dff1	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93fa2c91	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95f57533	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9998a349	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a0d1385	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a17ed25	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9c4f65a5	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d5366ef	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa0b91147	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2051c43	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa26f1907	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa3f9ecb4	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa4dd22ab	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacd02d54	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacdf150d	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad31454d	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad4c2521	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xadc02f59	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae4d4b01	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf4e795a	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xafaf9bfb	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0b095a5	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0dfe72c	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1a312e1	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2d717c7	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36b9280	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3836c6b	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5b1055d	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb6f2eaef	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba97f874	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbca959c9	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbcc6276e	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd07fe45	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd0bc801	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe557a99	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbee08c8a	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbfac194d	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc1c7c737	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2fca875	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc37820d5	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc410737e	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc60e542c	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc6cca354	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8939285	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8d8ea13	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcba5f842	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcbbbfc70	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf235244	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf2880c0	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf3af4c0	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0843693	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd1044b59	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd156ed5c	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd76957cd	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd9ac1b85	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdcad5481	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde650a46	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe38c7d7f	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe394f150	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe3bd52cb	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe68877a2	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe6927554	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7f73a90	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8036c69	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe86152bf	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8dfc8ec	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9400465	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe979b1b5	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xea89f86d	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf00dcab7	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf07a7b72	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1588969	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf249dfaa	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf56b29b1	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6e085e3	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf71296a5	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf93709d1	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffcec418	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x098bca60	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x21a39708	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x25fe594a	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x26280410	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x26e11905	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x31347ff7	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3b5dc87f	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x53a8a1d2	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63f3ed21	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6f6f75c7	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x71ba4233	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7cbcde0c	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x85cbe3ad	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x89ec2fed	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8bc9faf3	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8fdc081c	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8ff41e3b	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9bd253dc	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9d2840f6	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa443b790	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa5d2dcf8	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa60f7f37	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd3343976	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf067613f	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf2ba0645	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf9f18d0f	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3135e0c5	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x4ef0d6fa	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x656d029e	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x6a3ad630	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xc0fca25f	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xc5e57b6a	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd5a42b4b	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd9c97918	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x11182a13	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x17a9c47e	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x18e56c8b	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1fb4fea7	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2268ac2e	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x29cc37b5	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4b519780	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4f1a3464	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5763c200	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5c02f90b	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x68958e43	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6aae2fb2	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x732df1d6	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7492771b	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7daa8ea8	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7dc81e18	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9eb10b46	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xadce7341	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb0d28364	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb1e23baf	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xba0c34a0	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd6eb7a3d	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdb66ce17	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe1dfa5d3	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xeeea4dce	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf15c3076	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfe4747cc	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfec0a486	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x0dc9ac9a	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2e83137c	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x4de9f7f4	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x4e121806	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xb29e6502	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xbfe4e226	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xc36e7ff6	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xc817248c	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xd66e88dd	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x2cb47f2d	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x67e9aa7a	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x8b70dbe8	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xa14cd08f	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xc90e05bd	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x6a9583f5	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xaf246986	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe57bb37c	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x96672cd9	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x1e8121a8	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x58f2bf8a	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x7a8ba618	ad714x_probe
+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 0xa1f4253b	cma3000_init
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x7af28b68	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x307d40f0	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x63c3a5dd	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xa0f5e4b2	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xbc989ec2	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xbf09be6e	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xb0e6469c	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xeaeccb53	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x00cf9b30	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x0d8e4066	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x1c965df7	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2ff133e6	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x5b45f11b	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x73fe295e	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x929bd8b0	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x92ca4e5a	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9ad2ccae	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa7c4fd6c	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xdb80102d	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe8ad9bd1	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+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 0x4c4313a3	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x57d5d57e	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xa4b82fef	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xc66582ac	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x2eb3b7bb	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x8bc48c94	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x05bce00e	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0fbf86bb	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1f214f97	mISDN_register_Bprotocol
+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 0x28e260bf	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2f14da6e	bchannel_get_rxbuf
+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 0x3857d2d6	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3a60554c	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4932ed40	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4c472094	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4cdd2e09	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x54137195	mISDN_initdchannel
+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 0x669d03d2	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6b0b16d4	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6d539b00	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6f226fa0	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x886d89c6	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa1772ac3	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb1435c70	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc48679c5	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xda8c0808	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe512e1e6	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xecddc8a9	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf11a287a	mISDN_clear_bchannel
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x5e37c367	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x8afe26bc	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xb0a8de17	omap_mbox_enable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xb95c2342	omap_mbox_disable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xcaed8aa5	omap_mbox_request_channel
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x0d8904a0	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34c333b4	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x611da4ca	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7782e88f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7e23be52	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x8efff430	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9ac7c147	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xadb6b25e	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xaf788fbb	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc04554f7	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc140a4f7	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2e8205f	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc4022eb3	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc6a36e24	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd2381a89	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd47b1f8e	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd9e35cf8	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3e5dad3	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfa93de35	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/dm-log 0x6095bc9c	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x811a769f	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x9b0420b2	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa2109133	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x16e13e45	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x650ea92a	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x7fa232df	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x956d8a4c	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x976b08df	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xa9fb5079	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/raid456 0x33f6729b	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0x885705b2	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x01134dc6	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x3c4e76a4	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x9124113a	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xb3d4ee4a	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xc5834217	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xce7f8f34	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xcfec626f	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd36bdf83	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd426402e	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe551bad9	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe780920f	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xec19eb36	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf032ad5b	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x08cce718	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x9406ec28	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x9a73fad6	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xe48ba185	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0xf014deee	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x47b763d4	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x97fb3df5	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xed3ddc27	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x08b825c7	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x5de17e00	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x9678dfac	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x9f2c93c8	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xe4603cd9	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xeb72077d	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5aa81199	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x006d6880	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x02339656	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0c397a12	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0e4905c2	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1609d70c	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x167b0cec	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x17627f6f	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1e7a8283	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x21381c3b	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x214d5b4e	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2bb5ee1e	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2c12c287	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2cfd3479	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x37632d7e	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x380c7604	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3fd96ba7	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x42d15a1b	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4be5c646	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x52c76525	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x69ff3721	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b334d3c	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8026ef3e	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82143c17	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x87e7876e	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x884d1c15	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8aaaa583	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8e1ef173	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x90316067	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9d61d848	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xab3f8858	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xaed21011	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb00a155a	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc0b93899	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcd58e23d	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdafc31c5	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdbdb9c10	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdeef71ed	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedda2b2f	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf48d6326	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfe73d116	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0x13bbc424	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0xc480558c	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x0579bcf9	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x293f4b50	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x4291fab3	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x8ab93efa	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x978e058e	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa7122a46	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc1dffda9	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xd8478b9a	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xe4ade988	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x7b766138	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0x3ecc9b7f	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x95bfee7e	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0xa354d3d2	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x0986d82a	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x3e46f1db	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xd8f4298e	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0x250a5a6b	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x6331b61d	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x2e053d77	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xf03a50c1	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0x0ec3a6f6	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x33f97d58	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0xc2008770	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x9bb4c3dc	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xb77cb576	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xbcd3f9d9	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xdfa0dec6	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xe2290a27	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xfdf37223	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x017365ff	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x09780a63	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1b5237b3	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1cdb6b28	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2a2ad3af	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x34d22c42	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x46d7e024	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x5853e945	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x6796051f	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x6bc07091	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x73c16845	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa219bd26	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xbabe5484	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe534568a	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf9eee66a	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0x699f97e0	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x3e0afc8f	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x727168cd	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x8f6229c8	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xea1e5b0c	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf18af0d5	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf73768d5	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x30b05eed	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x54477e38	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x7c092151	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xacab260f	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0x33194812	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0x693a2f22	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x040a2460	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x0f94e7da	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x4070cd7a	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x664bfc2e	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x6ba8bd02	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x71c1db53	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x83ffbb13	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xb0b16a0b	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xb9acd64c	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc06d6277	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xcf8f3418	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xd4684ba5	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xeb094665	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x46ea7d31	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x948a19d0	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xc456ebc4	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xd6c73144	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xddb90f4b	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x37141288	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0xb5142b75	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0xcf7f47ff	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0xf20a870b	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0xcfad6947	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x7b09657e	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xd0c74116	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xed963d72	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0x3b3057cb	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x41e71f42	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x8ee40c95	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0xb4abc6e8	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0x85809624	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0xc075cf43	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0x80257416	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0xd8f1f625	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0xf0e99bb0	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0x95e5b12f	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0x2ebb71e4	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x83ac24aa	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0x3925607d	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0x7ed18100	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xe53b4185	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x0068c9c2	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0xb997fc90	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x7540cab7	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x8d392c39	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0xa23d987c	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x1017ae78	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xa2b15ab0	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xc28a719e	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x0d2bb819	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0x628bed0e	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0xd02ca37e	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0xa2daf254	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0x64dab546	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0x354b852b	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0x39120ca4	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0x8aaeca09	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x55e729df	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0x77ed9736	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x2a7309c4	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0xca93d8d3	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0xe6e0f4f4	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0x8222535d	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0x6733161c	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0x7b0f6cc9	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x0cf1b182	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0x1614e3ef	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0xd42be6a4	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0x30b78721	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xf2bc7dde	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0x4cf9e175	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0x241c6970	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x2efbc1c9	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x01b7929b	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x3fd0b94a	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xd9376308	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0x63bb7595	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0x109df369	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0xb6459f2f	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x12a3e816	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xa99bcbfa	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0x27590c49	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0xb2f187b4	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x918aa4ff	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0xb5feac10	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x6fd4ca05	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0xc0aaac29	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x3b4e0273	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0xa22e962d	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0xdcc74861	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0x7cad9d25	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0x0c7656e0	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0xc52e3fa0	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0x9b373fe7	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x547096c1	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x8574367f	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0x34b5970b	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0xa6868229	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0x243eed06	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x01b45921	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x09c2f570	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x453f4e3b	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x456b0a0a	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x756c803f	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8d94e952	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xce8e9e04	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x3b43e179	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x8339b2de	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x84cd4d10	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xb70160bf	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x3af0e57f	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x54b96d47	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xe8b24e3a	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x278ad4f6	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x5f154d0a	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x636e1197	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x85a2df8d	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9439426e	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xcb6d25a3	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd2a0417e	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdbf0e5b2	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xe9d49ab4	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0xb8e5aeb5	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x008a5b9d	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x4b50b7cc	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xabd2f817	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xc9d128ea	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xf6178a8d	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x59a5ad6d	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+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 0x0d0f3f56	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x145c9114	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x3094269e	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x42cb0da0	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xc30df9ce	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xdd0a4213	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xf7b50870	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x2c7e1523	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x39025ada	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x03a908ff	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xbe8a92fc	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xce29a244	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xd79d9d73	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x2fd15f3b	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x35d3e754	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x6bcf6a2b	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x6d31a244	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x7107991c	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x7a338c82	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xf8d6188a	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x10a59ded	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x132aabeb	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1ed4f975	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1eef877a	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3a87641a	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3b49cbe8	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x41c1099d	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5a7ff166	cx88_wakeup
+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 0x6e223ec6	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x75d51f3a	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x853505e7	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x89008c72	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d768dd0	cx88_vdev_init
+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 0xb6b8c90d	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xbf301fb5	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd47ad6d9	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xdee605dd	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe3ecde09	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xec6387ab	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf451afa8	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x06ed06ae	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0f4be954	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x13004c50	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x16682f46	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x17436a6b	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2bfc57db	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x367a8607	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x3af8d0b9	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x49e80f67	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x60f3162f	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x74dd2df5	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x79e2e562	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x86d355de	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8ad6ffd5	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc590a6b5	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd8ad1836	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe21364b2	ivtv_ext_init
+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 0x16527a4d	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x3ef42cdb	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5a922fa3	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x6d275f2f	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x6fc36129	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x8f4662e2	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa5a5fac6	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xb14e9e5f	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xb6e8531c	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xbb708fe6	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc6c9b455	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc6e9fe4c	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x3aac92ed	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x1f7e84fa	csc_set_coeff_bypass
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x446d1f7e	csc_set_coeff
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x961f69e5	csc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0xd3a850d2	csc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x10236e20	sc_config_scaler
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x17e079f6	sc_set_vs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x8360e747	sc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xb87b31de	sc_set_hs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xfe2cc5bf	sc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x02cbde67	vpdma_clear_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x03b3afea	vpdma_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x07464bcf	vpdma_add_cfd_block
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x15bde910	vpdma_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1659da6b	vpdma_unmap_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1e26321d	vpdma_misc_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1ee5d41c	vpdma_add_in_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x256f7150	vpdma_list_busy
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x2df514b3	vpdma_set_line_mode
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3269c1e2	vpdma_add_sync_on_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3428c366	vpdma_set_bg_color
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x386e2eba	vpdma_submit_descs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3b3f4afb	vpdma_create_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x49293b26	vpdma_yuv_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x4a8a1610	vpdma_hwlist_get_priv
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x50ec40af	vpdma_rgb_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x60708dc6	vpdma_raw_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x6170ca5e	vpdma_list_cleanup
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x6ea95e2f	vpdma_free_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x73ae3d42	vpdma_add_cfd_adb
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x77d62868	vpdma_set_frame_start_event
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x870fdaf4	vpdma_hwlist_release
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x9759ba6f	vpdma_update_dma_addr
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x99f4ab95	vpdma_set_max_size
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x9de56bd8	vpdma_add_abort_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x9ece601a	vpdma_free_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xaf659e7c	vpdma_map_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xcc78bec4	vpdma_rawchan_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xd0aeae6a	vpdma_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xd549ec21	vpdma_enable_list_complete_irq
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xda62cd06	vpdma_hwlist_alloc
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xebbec4fb	vpdma_alloc_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xebe35a03	vpdma_get_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xf2548d32	vpdma_get_list_mask
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xf82483c6	vpdma_reset_desc_list
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x50cad5af	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa20d00d8	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa8682a4a	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xb661bdf7	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xd668ba80	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xdf84268a	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xe32f27b1	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x6d650dbc	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xff2c5373	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0xfa759b02	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0xab3f30d0	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x526988ab	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x94aaa75e	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xac7f5198	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0x71ef9e38	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x279995f3	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0x567e5f55	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0x1b70b861	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x28b38bcd	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x79ad83a4	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x62eea8e4	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0xb9998b39	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x2b4a0811	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0xa6f2ffd6	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0x4f5f582f	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x13edcace	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x556d0e14	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x02ec8028	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x112ae5f2	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2218e608	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4d26ed67	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x91c0d36c	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa19141cc	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa694a7ed	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb30bc7ad	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf30de8b8	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x28411155	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x2ca793ca	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x33077f58	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x4a1fe4d9	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x84a4f08f	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x956cf253	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xd3e3dfaa	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xc0f71241	af9005_rc_decode
+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 0x1390ee7f	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2b0b4b0e	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x696362a9	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7a5c3883	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x88678c95	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc026a7b8	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd5d17449	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe3d03c26	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf9b33a50	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x57e02fea	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xecdedaee	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xc8018df3	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xf6060b55	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x06cd456d	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x4d1c062b	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x70395b94	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x7637c0c7	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x80047f19	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x90e7b00e	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xa935a9ac	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xc85747ab	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xfd0494e4	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x20dc1781	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x50c6008a	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x555f9a53	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x7566d63a	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x8ef945d3	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x95f00e12	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xd27e8f44	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xf1b1d5b4	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x3c2819f6	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x452ad784	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x971791f3	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x8a807404	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xa14775ce	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x64395303	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x65bad37a	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9a251606	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0724a85c	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x12e667c1	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x175ec291	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b8f8724	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1c519f61	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1c8cd886	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1f8c54ad	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x26b2c03d	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2ef179f6	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2f248f76	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x301be512	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x396c5ddf	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3d58f02a	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3fba004f	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x46b1dda4	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4921bf34	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x494d592e	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4a806d9c	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4cb4abbb	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4f0f6932	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5046635d	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x50cd4b72	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x53b09346	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x55e0fc65	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x57292936	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x57bec4c7	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5caae2ee	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5e5b4d00	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x64aebda8	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6685393e	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6b859560	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6dd2656d	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7896318c	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7a1c88ca	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7e0e64bb	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x82c5221a	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8369b0b6	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x86f4d650	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e5e9b27	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x929a8d5b	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x93f8ade3	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x993372a0	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa2d1082a	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaa78630b	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xac1c7d63	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb79be01d	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbd49b733	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbf341d02	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcabd12c6	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xce7d3a37	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd4cadd2f	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdee1684a	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdfa2d65f	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe4ae2eea	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe57a07a0	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe8ddfa09	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xec74c018	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xee9d8e6a	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xeeed1475	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf324954d	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf72490b5	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf95fb8ee	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfa75bc46	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfb5ad205	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x05a8238b	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x311af0ab	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x35ce8930	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x51cb13f8	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x55d41cbd	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x63bf5f6e	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x71898d59	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x767ed17c	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x9db34662	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc27f4c4d	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc365ee76	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd2ad1ea3	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xeb044ccb	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0681c65e	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x099b6d2c	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1368794f	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x15c49f9b	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x27604822	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x30d2ff1d	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x316fe51b	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x375e34a6	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4c89ebc2	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x584a423a	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5caedf6f	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x674ba13d	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6bf29f55	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x741ec765	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x75c8e577	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7651522c	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x76c721e5	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7f53643d	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9b8e8b7c	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa508db45	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa8c2a27d	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb551a441	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc490c567	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc9d82087	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcbfb4856	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcce177cd	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xef074f02	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xefdf2480	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfe155e24	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x09872111	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x17d9f364	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2bbe65e7	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2d6e5a1a	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2d9ee8e9	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2e0660b5	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x37299a56	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3a699dc7	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x47f5e7f2	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x56adc293	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x588962ee	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x900aabf1	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x96031c88	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x9731a4b9	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x9880b911	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa10a1420	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xaee2850d	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc14e2593	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc179ee51	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcd9cf287	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd542d34f	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd61f3e40	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd77976a0	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdebb770e	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe3a55f80	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf15725e4	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf62331f0	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x119a28e5	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x9c421a8b	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xd848f9fe	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x47619546	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x8ec168a0	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xfffdaa20	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xe6b4ade2	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xeebe7e38	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x03944840	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0e69ce58	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x30f6cf90	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3ccc6729	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x62bb93a1	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6994c954	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x78fd0996	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xaac2b908	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb71a5541	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd9a95e8f	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xf031cf2a	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/qcom_rpm 0x832aed94	qcom_rpm_write
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x382bced7	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x44f3430d	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xc840c202	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xdb914120	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe14475d2	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe9abfab9	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x25325700	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x5f1874c5	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x820ece1f	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x0dc3f0fe	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x7230e77b	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x01d78256	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3836d834	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x39f86aa1	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4bf393da	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4eeedb2d	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x5db9db9e	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x60ec0e76	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x76c05f23	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x97f614cf	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb80fd101	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xc15a125f	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd37280d4	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf081e90e	tifm_free_device
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x4a6ceb49	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x6c560519	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xc8831ca9	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xed6f371e	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xefe789b0	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x18ed932a	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x2ebfe042	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0xbee61145	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0xdb6ce6d0	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0xbabb95fc	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0xf5639fff	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x2aa75f6a	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x7a3954b9	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xad28c1f6	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xb312bffa	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xbb4e5089	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xc8b5bb14	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xca09daba	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xc053e99e	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x2c0b73b7	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x5ca70fce	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x9c39efba	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x6932cdc6	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x6ebe24b9	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x102603bc	mtk_ecc_get_parity_bits
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5437e775	mtk_ecc_disable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5de55d81	mtk_ecc_get_stats
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6df58afb	mtk_ecc_release
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x76e53683	mtk_ecc_wait_done
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x8dcc87d2	mtk_ecc_enable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x923334ad	of_mtk_ecc_get
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xda64ef4a	mtk_ecc_adjust_strength
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xec8b9207	mtk_ecc_encode
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x26d4df78	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x27d3ba6b	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x2b1eae54	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x374a73da	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4ce43883	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x8d4edd48	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x91ce7755	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd15a8690	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe5b8f774	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xf3ba3b54	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x3d7b7ec2	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x66fdd689	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x70bc9317	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0d8bee51	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x14474a18	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1bc38352	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1c19a10e	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1c4e91f2	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2529c3d1	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x30737138	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3220462f	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x35edcf43	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x387b6e26	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x41581b6e	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x47f11eb0	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x47f131b2	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x49e9da3f	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5396645c	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x562cc7ac	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x57a2bbeb	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x57b893cf	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5e621ab7	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x63b71b23	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x75832c80	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x76afb680	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x782faa0d	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x78f51d74	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7d5fc760	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7fe3e511	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8b70babb	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x94affb68	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x95cb2eb9	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9babfd89	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa7475e5f	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa7a87ec4	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb3e35858	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb79d20e0	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbdecc1d3	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd0c644ec	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xec663822	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xef3e4bb9	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x1b025f16	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x360b0e59	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x4848823c	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xa2d0e9a1	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xb253230a	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xce664d0f	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x1ff66b31	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xa11e1dea	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x3f9eaef2	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x2a7889b6	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x2f633d28	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x6610cc06	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x99de4c68	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x4fb0ef78	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xb09414f8	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0b386126	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x21159433	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x2d46206c	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x36a59f5b	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x3a74e76e	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x40a6df81	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x5772c018	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa3247277	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd806cb7e	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf2b2f31f	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x226cdb69	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x05d2c97a	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1db0c5dd	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2c202a5c	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2e553cd2	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x429b2da1	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x56db9932	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5aa3401b	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x60ca676d	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6e960a16	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x77651da2	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9fa5d479	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb3c4ab62	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb9567718	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbac54b6c	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc02e142c	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcb268194	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x05b54220	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0835323f	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x083b2cc9	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x08a925a6	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x11e2322b	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17f5760f	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1e504f42	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1eb461a2	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x28807f39	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2db50d80	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x301ec4d6	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3d81a2	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3e2bfb3f	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x46ab52b3	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5cb34abd	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6832e284	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6b6e3420	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6bdb6d14	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7557495d	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x774dc61f	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7bab5a87	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x898543bb	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x910da395	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x980425de	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9b01995b	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa9f8008c	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb1648e95	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc14535a3	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc3af59e0	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc49d7432	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc9385c8b	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd0da03d	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcf3c838d	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd08a9a67	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd218a16c	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd36f9637	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd87740c3	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd9e1ecb0	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xded2869b	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdfceac9c	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1a8e0ad	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4882e82	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4fb9e6b	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea490640	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xefce142a	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x3747bd63	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4398b624	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4ddf8c74	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x61b915fb	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x6e1ae788	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcb492ffd	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xf8ee1131	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x20c2e7e4	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x30584ae6	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x41c217bb	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xb9703c7e	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xcaec7af1	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xea88b8eb	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 0x973cf82e	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xc3f8908f	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x2c52e3a7	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x7b91fe71	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x89a854a6	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xa987b40e	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xe831cd3e	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x291f4620	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x2424305f	hnae3_set_client_init_flag
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x939a3f85	hnae3_register_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x9aa36ddb	hnae3_unregister_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xaf9b8a9e	hnae3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xcff150fd	hnae3_register_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xfac9b7b8	hnae3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xfcf92654	hnae3_unregister_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x570c580d	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x5bff637f	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x051025d5	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x9f1123bf	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f7ce3d4	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14819b79	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b759cad	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31e4bf14	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c4eea47	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x409502cf	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d4e8853	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54c3e5e5	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56348851	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d792371	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e122932	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f8bc6a9	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fa87492	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62608e16	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6572a557	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ffda42d	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71db13c0	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77c1f286	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x793a7cf3	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a6901c6	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a823c83	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b7bedeb	mlx4_gen_guid_change_eqe
+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 0x843d60fa	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cdc9605	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90c5a2e6	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92322df3	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a5027e1	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e27b301	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0a73b24	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb3e22a3	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc09b506c	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0d9ab2e	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5d307e6	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc81de75b	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc848b682	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcdec0545	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf302895	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5b4ecfe	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1c8128b	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedeae86d	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefae517d	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3fdd8b3	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4da4a80	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7fd24f8	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03def389	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x044bcbc5	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06f1ad8e	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a4148ea	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b1e1577	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c2fc676	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e0edb55	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x109cbbde	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x128d4fbd	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a7a32cc	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1be6706b	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1eee2f05	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22fe6a43	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x247a352f	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x253e0155	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x264e4c40	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2807856e	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2890ecb1	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bdeaaf6	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30cd9c09	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x312bee9e	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x330ea89e	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x332e4f2e	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33bd10fa	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x347b5ec4	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x350fd6c1	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39153c11	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x395ffe8b	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43721c94	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43eb9459	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x487bf27e	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48af7f96	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48f4169d	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ad7e9d4	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b13e607	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51e1289b	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58105aa8	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58fa7d83	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bd22292	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d6845f0	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x604bd3e1	mlx5_core_roce_gid_set
+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 0x6206466a	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6262338c	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64616728	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64fd7531	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x697bb89f	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ffb9add	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70c6ff38	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73099454	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7311ef2d	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73193ce9	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x735c36a1	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74ac01ca	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b6db1e6	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cd72ac0	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d2a65c1	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x867f8b04	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86e74eb1	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87e8fa02	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8add9314	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e138e5a	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e3082aa	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ea35bec	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90018bd2	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9132d0e6	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94f22da5	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9572aa1a	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x959b6fe8	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95d47eb2	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97214930	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9dac056a	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1339f73	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2042818	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa27085cb	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2a20f2d	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa315b30d	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4c3976d	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab3bb03f	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae085ee4	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2be2fac	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6c6f970	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb90ff36d	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba1d865e	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe06c3e1	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe3daa72	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf87ad29	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc087b215	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc105ff70	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc247474c	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc543f398	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc578157b	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc897ac44	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd657923	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcecf1e68	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd269ae2a	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd35160cf	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd50346fc	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd67967d0	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7a572c4	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd863d485	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9b0faa4	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdabd21e6	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf5b8b81	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5eed26c	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7e415fc	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8589b7d	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8c70c9a	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe9d04c4e	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef79dbe8	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1393129	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1eeca40	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2528b96	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf51ce4c6	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf615fbba	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8907b82	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9975e62	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfad2bd71	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfbff9b24	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfccf00e6	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff05e262	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x2dc39e2f	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02731dd7	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x048c7a15	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1463089c	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x207f33e9	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x24aaf0ab	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x33b54420	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x416916b7	mlxsw_core_driver_unregister
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x517640a5	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x56d08e6c	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5fcce33e	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+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 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8105f661	mlxsw_core_port_devlink_port_get
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x90a758a7	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9795fb8b	mlxsw_core_driver_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 0x9a5ab81d	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9c619040	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa600760	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbbd7a457	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc745043f	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeca0348c	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x1e442f74	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xd5b69037	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x00a87b80	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xaabbbe65	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x02283a3e	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0e0c5548	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x2c40de28	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x3355f10c	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4fe7e36a	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5a328121	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5e449319	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x62c110fa	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7b435566	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7c3de93a	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xdf4e512b	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe0a63fe0	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xffb71d62	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9b957960	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xda03a6c7	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xe111f66d	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x3419d5ea	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x37ea153c	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xb67ecb07	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xcc64710c	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xff1f558f	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x30ce176c	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x3505a0f6	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x3f93990b	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0x4c27da84	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x5265fc6a	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0x69f5ef81	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xa2d41919	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xc40566cb	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/mii 0xc6f012e5	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0xc8f217c2	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xeb2869f6	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x0203549a	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x7cd8cdac	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x1f014f19	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x506ab2f5	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x8d0c2cbc	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x17ac42c4	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x39ec84f6	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x608ca3af	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x6d572cb9	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x6fd4c74f	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xb0b8c79f	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0xb11b2ac8	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xcb837d3f	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xee3799e4	team_mode_register
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x780689b3	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x88bc3216	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xb4f50edb	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x04cd9224	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x5fe123d5	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x75e468f2	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x76ad9c2c	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa1bc1ec4	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xc9b89e35	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd11f5df0	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf7b1fbfe	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf9c56808	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xfd853837	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0xe8fe19b2	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x185422f4	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4593e5e1	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x46901695	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6f49ae35	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x7eb9db27	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x83a857bf	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9e8d5af2	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xaa6c08a5	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xae253519	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xdeefe965	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xdf86784d	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xff1b5b97	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x03370d1f	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x04854ccb	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x07feaa10	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0c09ae5c	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0e08ddea	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x10ecae40	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x150fdf8f	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2864f043	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x39b474d7	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3d46087b	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x42f2120b	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x45ec90c6	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x49535981	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x53352bac	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x540cd435	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x56dad588	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x572ff1b4	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x612fd418	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x615ca3a0	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x63fda478	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6606e808	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x668b7b99	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x66d9a687	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6781d61f	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x67c25869	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6c5e1f89	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x753a08fd	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7a87700b	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7b6c8c50	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x81757690	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x85a49e13	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x86c9f0e7	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x90cbd838	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x960be226	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9e57da3b	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa2473e06	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa374ad4a	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb31add2d	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb8a27ab7	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc39493f0	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc86f8fb3	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc9c17833	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd5aea5b4	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd89c7d4b	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd9a81dea	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdece343c	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe3f6ed0d	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf5f9dcf1	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0f008da8	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x10f39f35	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1641bd8b	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x33218a36	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 0x3d5cfe10	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4639a914	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x959ab2ab	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb649072d	ath6kl_cfg80211_suspend
+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 0xc0f65694	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xcbcc59ff	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdde8b140	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x072af350	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x07b4e2d6	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0ef361bf	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x13cd23c2	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x14b05624	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x187c513b	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4151cead	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4d056487	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7965b64a	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x81b22dc9	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x86c09c58	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x904f0672	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa0d8fe58	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa9e45edd	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xaee1dd2b	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb6dfb397	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xbd6316fd	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd511dfd2	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd61fa694	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdcc5ca90	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe6ba9571	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf491b8f1	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfeb0b03b	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0134ae45	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x05e2ffb1	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a77649d	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ce4752e	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0dd36ee6	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e51d6a5	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x101a4336	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1101a37c	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x12a4691c	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x13795a25	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x13e3c371	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a71b373	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1eabf018	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a6f021f	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bbedba8	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fd836d0	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3125b8c3	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a2016e	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x331b7de8	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x33fb2954	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3437e92f	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x39d55ba8	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a4da872	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bf0c5b5	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f3f21e6	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x41e11b9d	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x423cc626	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x45fd82b5	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4888106f	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c373b2c	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d1fb898	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5387b2fb	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55265eed	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x555dba8b	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5838c1f9	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5d8f3526	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5db7b34f	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dd20848	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f5c8442	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f943817	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fd1de0f	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fe6604f	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x60039318	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x659de961	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x69785145	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a3c37cc	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ae5f31e	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e58d729	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74b889c4	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x76036a39	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x76da1581	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x78804275	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x796cf2a5	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x81e8ec31	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x839c5ce7	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x847235db	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x89735b2a	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d951085	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f4060b9	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x91a1da58	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x93c5a2d8	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x94418a03	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x96f0a98b	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x97be84a1	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x98330299	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x99426b42	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x99eb9a60	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a617b1e	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e9f5b0f	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa13aec07	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2d5188c	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa514c1a4	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7bfe081	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7edd3c2	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8c5a624	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa7d6774	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf2cbb8d	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf6cd7c6	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc17cbf06	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2c189ea	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc46dcc16	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb8c92a2	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcce41d50	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd730e85	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce60b1bd	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf02f8b3	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf0d03bd	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0dd83be	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2e97f38	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7aafa29	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda23f966	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda4634eb	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc44c0ee	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfa21e23	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe01a4cf0	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe159ba39	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2fd0e57	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5914704	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe611c82f	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6fe415d	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea4a5441	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb2ac611	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xecce6a3c	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xef1e6c7e	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf58bd904	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6e54699	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf729cbc9	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x164b6e39	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xca4bba44	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xd299bdbf	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x01ac0a85	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0ca8922b	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1235495b	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x27d34048	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x419f5240	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4f940145	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x66b658a7	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7abdc6a4	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa4dca837	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc815dd8e	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xce562801	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe4017f18	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xf31edf19	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x037d7f02	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1a726096	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1e92f936	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x210469c9	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x228754a3	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2de21a68	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x48ea6f03	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4fa004b0	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x50e3463a	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x73d58b67	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x79884b02	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x815bcdb7	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x87fb5e35	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa5417209	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb18e3941	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xbd93b3e6	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xee07f757	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf020c553	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf1013113	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfa451d4c	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x048c82b8	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x070505e2	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a944582	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d3b02d0	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0e6148e9	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f97f117	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x107b59fc	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1539c68c	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x175991e5	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1ccca94a	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2510cc55	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x26e2fd1f	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2849f8fc	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2c22325c	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ec3d51e	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x389b0c8a	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4377e175	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45f32f55	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x47d00fa6	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x602d1c6d	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62beaac1	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x633d1029	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6b6ddf68	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c0a4aee	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c3a1ccb	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c703871	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7177214f	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x754874b5	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x76c2533d	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x777fedad	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b634126	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7c071655	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e85288d	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x823e0f79	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x840fef42	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x84438f3f	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x855922dd	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8674cacf	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86a649a8	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8847e433	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8a9d4a84	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8c0ab0e0	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x91b9c3ba	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92c9acee	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x933c9fd6	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9388e17f	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x948579c4	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96472ec4	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99f5672c	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9dcb7793	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9ebdff21	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa4e66f09	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa6528b93	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaa99eee9	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb083481d	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb38a640a	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb3c6cb6d	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb3c87bb1	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb6cdf898	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba471dcd	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbacf730d	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc46363ca	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc50b4996	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc8342ff4	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca5e4613	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcd25e7b1	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcdbd02a7	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0373b15	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd2ac2701	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd3e74ea4	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd3f3946c	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd87ae46b	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdb73a465	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdbcc2a5d	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdd5fd3bb	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdea439a4	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf89446f	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdff5cf64	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe01f6a3c	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe02cfce2	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe12388ed	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe5ca7fcd	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe6d60c8a	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe94aa7cb	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe9846b1b	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe9dd581a	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeed51614	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xef8c67eb	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf01b9fb2	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf2c906ff	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf2f182de	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf61ef898	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8896f0d	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf8b40777	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbafb7ef	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfe81eee8	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfee104d7	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xff4199e8	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x33c2544a	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa44e2870	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xab9db4d3	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x028debbf	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x02f19931	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x09975ef4	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x1bdf4c31	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x217d7ede	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2901ab80	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x32f98dda	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x39405b38	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5448f1c9	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x57c2301f	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5e06164f	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x60f33415	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6f42825c	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x72e92dde	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x922e422e	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9b5071d6	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9d69dad1	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9f4bb027	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa2e9c141	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd65833ea	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xde5b83eb	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe1a5cf89	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe5142a49	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xeb9e8572	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf3e014b9	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x00738a0a	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x267d43d0	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x393edf02	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x3e591d91	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x54434cb0	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6189bea3	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6b592227	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7077fc9a	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x95d69f36	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9b0c8cf3	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9be7c382	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa5d733dd	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbd60b706	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xc2b11af2	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xc3f4026f	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xeb4c9831	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x9587bab3	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xcaff7c7c	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x06c12882	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x07dbd8db	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x103baeba	_rtl92c_phy_rf_serial_read
+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 0x29ab3507	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2cc86063	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3b52a534	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3c8c1169	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x466aec0e	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4994a2ab	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4a6768f5	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4b8d812c	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4cfcbd79	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x58f3aebd	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x61ff49a2	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x689e2762	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7205c9b4	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7b9f1423	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x884dbc13	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8dc58d12	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8ecc8895	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8ef60af4	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9aea6240	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9da499a5	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa7fc3765	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa8f74aed	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb01aa998	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc3f3cf25	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc6a2de91	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcff5209d	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd1d03695	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdaa9e1d9	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdd576b59	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdf550d5f	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe116e68e	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe6a14826	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xec1e9d09	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xeffda62d	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf8bb9ea2	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfa798dff	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfab4b5cd	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xff71e06c	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x2a441552	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xb850ba1b	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xe973a639	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xf2a37d61	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x014b37a2	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x50434dbe	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xb65ec2e8	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xfa90c87c	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x02af60c0	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x10fc42c0	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b78cfa5	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1d748982	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f0dc79e	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3abb90b3	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e9fe8f9	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3f290983	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x553b90f9	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6cdfaf28	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7218125f	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x79dc7a97	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7ddc3458	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x801bbe6a	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8399f235	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x91c5c17f	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x972252d9	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa7dd1824	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb243738c	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba8c6d65	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbe951a90	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc1f4a32b	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc469f136	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcd62032d	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd6223e4e	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdb432d5b	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe58563cc	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9ef040d	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xecefd55e	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf5a5b38e	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf5e2c373	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfdc76d33	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x014737c8	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x10f4a3f0	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2a14ae1a	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4ae87463	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5e60a063	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5e6b3c18	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x677eed9f	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x69a95d05	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa078659b	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa3f52ee4	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc0d0d511	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc1f4d4a8	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc5d6c524	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe0957064	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xef3ca424	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf90d506a	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xfa93b80d	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0xef8877ad	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x2a156347	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x874aacac	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xadf1caf1	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xe52b1d88	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xade7fd65	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xb10ba79b	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xc3bac8e6	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x2cc5974d	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x39ce0284	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x15e02d7f	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x9d751197	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xe3494481	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0xba99f69a	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x2870a4f7	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xd8418b3c	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x5e80a093	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x6e5da800	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xc113217c	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x4302b1ea	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x553e361b	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x6e6b32ea	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x8d824df4	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x951a9470	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb0538021	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xce345b25	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd121ef5c	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd8059d42	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xe5593246	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0dc07dca	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1169b664	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x13e8885a	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x20fbb0ab	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x21f8ebf9	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2556d3b9	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x39277e03	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4344d4f6	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x656079c9	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6b913eb8	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x791a1e1c	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8b41a83c	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9a8203eb	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa9d8c13b	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb37d2cce	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xbe22106f	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd31b0166	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe5de5234	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x03d611ca	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x0b22755e	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1a438881	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x492037b0	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x531531ea	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x686053de	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x6e8456e3	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x71c4c5f8	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8a2124d9	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9a62d6eb	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xcc791f99	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xcf933af5	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd09d4777	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe21546f7	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe7bf8e17	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe89c7471	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf05a0106	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf198258c	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfb464be2	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfe25503b	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x1d8ed1db	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x5cef6056	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x0661b634	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x090d4cb3	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x14c2a5c5	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x15a82d76	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x1dfa8479	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x2594476c	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x290c073c	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x366229a0	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x3ca93276	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x40a8bf47	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x4a2f22c1	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x519acca6	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x54985561	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x5b303d60	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x6127ffa2	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x61b9daaf	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x7c013a93	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x805bab06	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x950a8ab9	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x9adbd525	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xa1023988	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xa53ab662	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xa58ff92f	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xa973d86b	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xacd33a35	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb8368cf5	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xd1fbda38	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0xdf45e66f	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xec826916	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xf13a892a	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xf1c45ffe	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0xfdaccef5	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x1ad1d2bb	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xb35b7de3	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x0eda845e	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x4a475164	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x8770bf98	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xa8b148eb	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x3330a1c8	qcom_smd_unregister_edge
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0xb07c35d0	qcom_smd_register_edge
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x0a4512ac	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x29ee2434	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x2bab9adb	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x333bb385	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3f9a4dee	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x42996b87	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x624f183e	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x8101e90e	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x99c8936c	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa1a5bc2c	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa99d8891	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xafa0635e	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xcd1ba059	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xedffe06a	rpmsg_send
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0x5f8382ab	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x8a1c8d9b	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x94f930bd	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xa078d662	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xdb163c5e	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x209f062f	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x42ed3293	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5c8e29df	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9b325852	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb06c4af2	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb2d6775e	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb4d7f62e	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xbb7166dd	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xd46bdc13	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xe455b9c6	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xef6bc59a	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x05bfa164	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0a84e8a4	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0c09bb25	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x14251f59	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x16e0cc6a	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x19b183cc	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1c71dbcb	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1f34a390	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x239b7791	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x258b2972	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x280194bc	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2b90d3c9	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2c032718	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x321d0a28	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x367f6ea3	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x383329ce	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3ab5f929	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x44e7bbed	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x469df1a9	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4a3eb614	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4c2b5173	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x56a09af6	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x59116002	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5ab41f0c	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5e75b411	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5f451e3c	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x64fb3caa	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x667adde5	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6bc47bcb	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6d5e0378	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6f2a121c	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x736ab827	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x78ceef83	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7aef2c78	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x80cd52fc	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x824935a7	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x85372864	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x85f17f65	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8a5195e0	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ee19655	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9949f9bc	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa354352e	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaa74ceb5	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7a1daa6	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbb7811a2	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbdb7baf3	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbff9bf1e	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc39558e2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xccccd6f6	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe2756a11	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe2bca5a5	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe31b26de	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe47342da	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeba11b3c	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xec4d652c	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf0db6b17	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf1dff78c	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf594d99d	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf5fd39a6	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x308be43b	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x372207ee	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xc1cf582d	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x8504892d	mraid_mm_register_adp
+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/qla2xxx/qla2xxx 0x29b864bb	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x4894c468	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x48ed195a	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x5232107c	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x72869012	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xa5f5ca99	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc090c91d	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc21e00db	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xcb7236ce	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xcf6c931a	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xd1354a13	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xdd7636ad	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x014a08ee	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x51eba4db	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x7afd09d3	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x13b4dd6d	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x23f52872	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x248480d9	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2c315d7d	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x31dd1601	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x4252acec	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x4aecfd28	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7f0a73f3	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7ff16880	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9492ae34	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa09d5050	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xae3b3781	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc0f3a63f	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc61f0eb0	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xea3ec259	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf8a20d0b	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x079408c1	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0d75c03b	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x11e4a8d1	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x16aeebaf	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x19a55eba	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x216f8e28	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x244d44fc	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2ed032f6	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x31db5695	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3359b229	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3382f1dd	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x44c07261	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x557d384b	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5a9680cd	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5b497c86	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x63d7e34c	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x751596d8	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x76a6fc33	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x77382620	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7dbd9986	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8e6a3a24	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x968199f4	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x987384b8	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xde9d2873	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xea3df6d0	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf655fd24	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfdd9637d	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfe37f0be	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfe7b6ea0	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x01e3f3a4	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x247cff7d	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x25315ed3	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x74aab1ac	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x8a55011d	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x25c63db0	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x44163443	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x4fae8ff8	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x8d68534d	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x8fab7376	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x0322d08c	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xd675745c	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x06a8901b	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x27a93c46	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x449057fa	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x74b19890	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x7f80e7b6	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x87e91ccd	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x8b4f8089	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf5af88c4	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xfa8f7f2f	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x356095fe	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x3e672621	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x0f51b3ef	cmdq_pkt_write
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x3a99874e	cmdq_pkt_wfe
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x59ab9e73	cmdq_pkt_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x8cd5a570	cmdq_pkt_clear_event
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x94887ba0	cmdq_pkt_write_mask
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x9a97c7ae	cmdq_mbox_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xd8b8fbcc	cmdq_pkt_flush_async
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xddbc626d	cmdq_mbox_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xdde7bff5	cmdq_pkt_flush
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xfe92d342	cmdq_pkt_create
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x0261b65d	geni_se_rx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x11ef5531	geni_se_tx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2afbd58a	geni_se_get_qup_hw_version
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x870d7f46	geni_se_resources_on
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x994996dc	geni_se_clk_tbl_get
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x9d11fb03	geni_se_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xa14375d8	geni_se_select_mode
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xcf291ebe	geni_se_clk_freq_match
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xdd49163d	geni_se_resources_off
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xe3fed910	geni_se_tx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xf7cf1dd8	geni_se_config_packing
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xfbfe25b5	geni_se_rx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x133168aa	qmi_encode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x15c0689b	qmi_handle_release
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x20571103	qmi_txn_cancel
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x21ce5888	qmi_response_type_v01_ei
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x34aa12c0	qmi_handle_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x747013f2	qmi_send_indication
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x807ada09	qmi_send_response
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa2ff1ede	qmi_decode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa7f64945	qmi_txn_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xb1eb0d8f	qmi_add_server
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xc3e70fac	qmi_add_lookup
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xf2bffe2b	qmi_txn_wait
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xfce70c5f	qmi_send_request
+EXPORT_SYMBOL	 drivers/soc/qcom/smd-rpm 0x46bb046c	qcom_rpm_smd_write
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x5a710273	qcom_smem_get_free_space
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x63ef36e3	qcom_smem_alloc
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x932eb0e3	qcom_smem_get
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x9979b76e	qcom_smem_virt_to_phys
+EXPORT_SYMBOL	 drivers/soc/qcom/wcnss_ctrl 0x62336b31	qcom_wcnss_open_channel
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x0fcb376a	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x18405f49	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2031c77a	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x27a3e01d	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4bb1e862	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4d9d2a72	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x53ffa46f	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x57cdebfd	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71b7494d	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc1ad7461	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd81aabb9	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xdf064a63	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe9f7746c	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x01e8aa99	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x078bf6f3	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0ded67ac	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3c41d938	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x44a95c57	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4af12702	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4e105017	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5a45d9e5	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x743ed41a	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x751f6de3	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x755204d9	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x86b715a6	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x885610ff	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x978e1d34	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa47c59f6	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb1fad406	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xde1d948d	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe31923f3	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf5a0525c	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf73896a5	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x024690e8	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0a9cedb7	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0eb46dd6	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x1314b30c	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x16c571f2	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x1f50c753	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x443d94c0	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x49a2142c	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x5001f608	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x5e40ce2a	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x625a039d	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6b6f1bff	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x78d1b2b3	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x7f989c59	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9bef83ec	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb508b30a	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc8c5b7ef	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc98240f4	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcdd0d34f	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd2e69f10	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xdb48047c	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xe2b0750f	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf1585690	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf4a8ba5d	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfb59e0ac	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x303e3def	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x30613ecc	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0c750166	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x1760777a	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x37c5c658	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x444363dc	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x54db8b9e	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x5e19aa86	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6347d12b	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6472dbc9	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x81df3601	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8e251976	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x95e52e35	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc6951f92	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc9d69e02	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xcdad4c7c	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd6db2b0d	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x07b8ee20	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x0a0ae5d9	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x1c2268c2	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x2c00fd89	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x4e70f0ce	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x91398740	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xce654b27	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd0e0a8e9	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xed2c15f8	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x00c73464	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x05893e33	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x09a6f780	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x118c97fb	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x11c2d5b6	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x12709012	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x169a5858	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x270e574d	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x27c5958b	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2ac8d391	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x370274ac	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x39b1c073	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3cbb797f	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x46a7bc63	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4caa331f	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5bb69c22	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5daa3d36	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x61cf70f1	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x66311cec	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6ad78a64	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6d91732f	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x77044cc4	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x784663b1	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x866a7b67	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x89dcafce	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8e6078ad	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x905efa3c	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x90e26c40	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x91e7b57d	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9d593049	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xac0ed947	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb063a60c	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb154d665	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb1930113	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb2095b1b	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xba3a581c	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc05fe69b	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc534b693	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc5a15dd5	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xce28e92e	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xcebd0268	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd7dbe79a	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdefdf282	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe243b5f5	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xefe1fdac	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf49950a2	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfb1ba2f1	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfdbf45ba	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfe3fe279	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x03945b0c	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x083bbfa2	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x090d6931	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0abcb3f0	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0d0ccfc7	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0ffe45d3	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x18e1906c	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1da7c7cc	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1e102657	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2178fcd5	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2c81eae5	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2e83efd4	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2faeacfb	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x35bad181	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x382b4418	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3b0ad120	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x40d8bed3	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4f8f7186	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4fb38797	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x50785a84	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5097d318	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x52b220e3	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x56f22f13	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x594fe5f4	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5993cf0d	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5e00bb25	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6620297a	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x683696cf	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6c5d7197	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6fddeb88	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x73a9178e	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x755d6f43	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7e51b382	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x80aab07b	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8aa2726a	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x907abf79	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9d40402f	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9d5f50c2	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9e4b1525	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9effa704	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9f6655bc	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb0b6cd25	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb5edbeb7	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbb512571	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xca5e8c12	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xce29f87c	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd31f71a0	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd6df2b86	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd8f32c83	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdd87a84e	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe2395c89	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe828423f	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf2ff0952	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf76e00f6	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xff0fd555	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x02ccc437	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0fdec771	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x143c7a28	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1ad7b580	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1f67cc6f	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x21cdfdfa	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x276a97d4	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2bd6454d	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3305d7bf	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4642f55b	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x47cfface	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4e723759	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x53894982	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x566cd5ea	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x56ec58aa	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x594abeeb	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5b8d82fa	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5bb1c8ff	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x61dbff87	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x63d37146	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x650f4e16	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x684eeb28	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x71be85a7	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x794e1949	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8572c4f2	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8665ddce	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x88fc6b5e	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9385c940	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x98b375e9	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa4a20c37	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xaa43f716	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb2cf5c6e	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbc2a6f1f	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbd8b6a6f	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbe0f7b51	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc12a3e12	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc6187e2e	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xccc73e48	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd5d5af50	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd6fac47a	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xedd73a9b	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf153cea0	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf6de9323	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfcd4078a	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x002e4dd3	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0104fd0d	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0bb7189f	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0c026bd2	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cbadf08	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1177802f	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1198d50c	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1b2f9fe3	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1caae397	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1efcb250	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2582f923	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26232c18	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x316ac7b9	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x31add86c	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x341a9731	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b11183e	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3bfe7f67	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3ed2a9fe	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3f0d463b	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3f4b55d9	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3f669e47	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x41ff72e8	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x49b3f98f	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x49c63817	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4eec9500	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5052b55d	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x50874ca8	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x515791d2	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5615952c	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x56385bdf	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x58117a6d	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5b392e5b	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5bbe77b7	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6052a81f	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x64a25995	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6c760d2b	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7c0a51a3	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7f4dfa89	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x82368071	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x85113614	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x87504ad1	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x87a62083	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8982458b	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8cd6443e	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8fae9f19	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92349c94	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9909722c	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa362489c	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa6639e45	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa810161b	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xac54cba0	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaf1df8a8	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb35e5797	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb65d8558	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb8b4481b	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb9ed9c3a	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xba4847fb	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc07f130f	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcdf25ef2	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd4d4f2ac	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd74245ad	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdb4e9c09	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdc002552	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe0469e11	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe450c6c1	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe8f2a93a	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xed0241cf	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf05b9369	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3656b44	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfa3f7a8e	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x6bd1c18a	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xb8fa51a5	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x708e14c2	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x173e011b	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x434268a2	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x44c0e72e	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x6f764537	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7304348f	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x77e10415	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x87989566	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x88390c0c	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8c0a9747	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x99a4bc8c	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xa5e32766	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xda99b653	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xf2f9f02f	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x58e1d86f	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xafbbb6f0	usb_serial_resume
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x19bc1b11	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2a8a4ef0	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x3ce26899	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x68081c9c	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x769b234f	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x80a9eefd	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x82e1f520	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa47fdc53	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd8f0a65b	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xdf9ea5eb	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xeafd7efb	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xfd3d8ac4	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x05b8cfda	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x0f655355	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x1661ee3e	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x294d51ba	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x43029ae9	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x51f16cdb	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x8beaf90b	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x49caa72c	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xd5334848	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e91ca97	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x367ce26a	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x7bda5e6d	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x821e9390	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xa75ff962	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc7f2440e	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x30dcabd5	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x3771db83	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xd85305d4	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xe6b78e07	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x12949c81	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1bd6249c	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x3f4816ef	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4346993a	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+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 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xbe4320c2	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdfdb4b93	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xfb13b51a	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0xa92fa5c4	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x75d6d3a6	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0xc46eed85	sys_imageblit
+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 0x7d4b3fe7	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 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xf60a7238	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x2def7037	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x94ec35e2	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xbacfb3cd	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x19bdf954	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x2f83a804	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3b299383	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xa7ef13a9	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0xefbdef1c	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x7e575dae	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x34db7995	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xc80bf685	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xca25f866	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xfbaa43b5	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x6ebe9a61	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xc038b197	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x1ca29ca1	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x2fcaa5ec	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xc42a19db	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xe866fd2f	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xf2db2ee8	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0xd1a2f499	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x01ea132e	dispc_runtime_put
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x03005606	omapdss_get_version
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x0a25ed92	dss_mgr_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x0befb06c	omapdss_default_get_resolution
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x0e3e9fb8	omapdss_find_output_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x127d50a3	dss_mgr_unregister_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x23fb8111	omap_dss_find_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2e921d1e	omap_dss_get_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3082a0b3	dss_feat_get_supported_color_modes
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x35e462d1	omapdss_output_set_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x392702df	omap_dss_put_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3a50573f	dispc_ovl_check
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d36d54d	dispc_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3f517f85	dss_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x42912b0c	dispc_clear_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x45d74ef6	dispc_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x47271e6f	dss_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x48ef5ffa	omap_dss_get_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4bd67a8d	dispc_write_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4c33081d	omapdss_compat_uninit
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x54f6830a	omapdss_get_default_display_name
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5689afe7	dispc_ovl_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x59783cc9	omap_dss_get_next_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5f9b2736	omapdss_default_get_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5fc5118e	omapdss_unregister_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6067dd26	omapdss_output_unset_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x636b3461	omap_dss_get_num_overlays
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x66cdd3c9	dispc_mgr_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6b1a3090	omap_dss_ntsc_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x70e39dae	dss_uninstall_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x79fd6546	omapdss_unregister_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7c854c32	omapdss_register_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7f9656be	omap_dss_get_overlay
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x827143a1	omap_dispc_unregister_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x87fdb051	dispc_mgr_go
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8d1ad7c2	dss_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x93963a85	dss_feat_get_num_mgrs
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x967cb4e8	dispc_ovl_set_channel_out
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x9916779d	omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x99fbf56e	dss_mgr_register_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa13d27f5	dispc_read_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa4f6a175	dispc_mgr_get_sync_lost_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa94aea15	dss_mgr_disconnect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb3ed5aa9	dispc_mgr_is_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb62113e5	omap_dss_get_overlay_manager
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb7f94a15	dispc_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xba8ddcea	dispc_mgr_get_vsync_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbafeee36	dispc_runtime_get
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbb09dabc	omapdss_register_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbe0d4752	omap_video_timings_to_videomode
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc45105c3	dispc_mgr_go_busy
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcc197296	omap_dispc_register_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd1067ba7	dispc_ovl_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd70adbc1	videomode_to_omap_video_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd8ed186b	omap_dss_pal_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdb93b838	dispc_free_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdcb044c6	omap_dss_find_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xddf9e442	dss_mgr_disable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xe10e3d53	dss_mgr_start_update
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xec540e8a	omapdss_find_mgr_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xedb7bf60	omap_dss_find_output_by_port_node
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xee2bc2d0	omapdss_is_initialized
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xef3b2795	dispc_mgr_get_framedone_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4a7fc6d	omapdss_compat_init
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4f63234	dispc_read_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf9427374	dispc_request_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfa95d18f	dispc_ovl_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfb2d9b16	dss_install_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfe40bf95	dss_feat_get_num_ovls
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xffd2cf99	omap_dss_get_num_overlay_managers
+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/w1/slaves/w1_ds2780 0xa7c5f8ce	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xc79742b6	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x95925d8d	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xb805fa5b	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x29870d17	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x3e3bd09a	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x950f267a	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xb2774cbb	w1_register_family
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x4f0adfec	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x5035afc4	bd70528_wdt_unlock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x59bc6ef6	bd70528_wdt_set
+EXPORT_SYMBOL	 fs/fscache/fscache 0x04930a99	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x04ee582f	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x059a00d2	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x08339159	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x18a2a461	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1c671e37	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1d316bd2	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1fb5fb82	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x22aeab2e	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x298279c4	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x31a0a9a4	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x38e9f34f	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3aa1aee1	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3bf17ca4	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x46faa11f	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4f5ab873	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4f688aed	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5c273fa9	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6098539a	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x68aa9244	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6a5b0e71	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6afa5e26	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x701cd560	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7318a907	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7b70535f	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8e398cc4	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9ae719d6	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa0122c25	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa1de70a8	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa3a30d44	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa870a5b3	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb2343f79	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xba0f0488	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbadfd0d4	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc3614e84	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc9660296	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcc729f7c	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe95c714a	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf99c23d1	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfb2f2d88	fscache_obtained_object
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x387a2347	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x5c98816e	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x6c349644	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xa916277e	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xc0e9be4f	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xc70fe146	qtree_entry_unused
+EXPORT_SYMBOL	 lib/crc-itu-t 0xa2048e95	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba95c5c0	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0x5a742e56	crc8
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x03f599c7	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0x4feade4b	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x56fc3ea0	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0x59d17ce7	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x619ed575	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x84e0214b	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0xb4d5d8a8	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xbbe7c23c	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0xc48fa976	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xc6e4cd46	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xcb990a55	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcea6747e	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xd212c9f0	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xeb13128b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0xf460a486	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0xf5ea5f5c	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0xf6acec20	lc_find
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x4cc636f2	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x765fd165	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xd02774b1	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x067fa594	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zstd/zstd_compress 0x13d24f16	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1de3f19a	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2a0fd0d0	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2eacbe22	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3281fb74	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3545701d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35bdc817	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3b209a35	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x41e56a18	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x51022053	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x58f4c817	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x63230633	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6443babd	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66dbb4d2	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6cbcd95e	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x71432c37	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x78431876	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7aba5c0b	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7b51b66c	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x910096b6	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9e0ec162	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa9eb465f	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb7872388	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xba2ffeea	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc04b3f8c	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xcdfa135d	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd6205c02	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdac739f6	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf39e441c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf4cbffc3	ZSTD_flushStream
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x087e7f90	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x08a12fd0	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x4ca38497	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x5b6ceff2	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xd4d7e9de	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe07a6b8d	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/802/p8022 0x67867a37	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x7e5d1611	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x6f3f3c22	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xe695d470	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x01c564e7	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x122ea095	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x21acc724	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x22a05bbe	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x2e7cd20d	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x2fce8bfa	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d986cf9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x413c548d	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x4896cfa6	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x4d3bb4f1	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x5a808586	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x5fbd7d4e	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x60d2b371	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x681360c7	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x6877f626	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x709e045e	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x73c3fac5	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x80bbc6fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x85158641	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x89228d62	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x8956e93a	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x8c0f1999	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x95b89050	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x975b92a9	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xa42675af	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xa58151ad	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xa81b884b	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0xbfe415b8	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xc06d7252	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xc1a1fb0f	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xc8855a1e	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xc914f0bb	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xd04e446c	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0xd23291c9	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd7080c0b	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xd9eae745	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6b1e55e	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xe82b3453	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0xe8ec2694	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xe97226e2	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xee12e8fc	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xeeda11ca	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xf0d1ee38	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0xf1efb970	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xf3377c26	p9_client_attach
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x1cb8514f	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x44f6e68e	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xa098c935	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xfa9e7547	alloc_ltalkdev
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x40365025	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x43aaf193	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x4672f5e8	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x6b9a3871	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x6fd2f8dd	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x8f9a50d9	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xc51f568f	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xc9154378	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0xd19c77ab	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xd2b666b3	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xda5def21	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xdf0f771a	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xe184a2a0	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xfe6429f4	atm_charge
+EXPORT_SYMBOL	 net/ax25/ax25 0x05a1b5f2	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x134b04c6	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x60b22b30	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x7dd3731e	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xbea59812	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd10a3826	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xd3646713	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xd7264331	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0a35a35b	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1dca5f19	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1e3082c6	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2147ca09	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x27a32854	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x290d54d8	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3754f353	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3ee5cabf	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x415d7855	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4324b899	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4d7e1551	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5184992b	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x538ac843	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x57f3ea83	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x590e462a	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x64cfb910	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x662c943a	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7267a97d	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x73b0f7e4	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x74750ff2	hci_recv_frame
+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 0x7be517ec	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7c13f07e	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8472f8ff	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x914efc6f	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x933010ae	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa02091e3	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xab7b9cb3	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xabce9bad	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xac12beeb	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb4b09166	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb71bac47	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbc4c5496	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbfcc284b	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc6dae54e	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc75f0d54	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcb5f0574	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd34a79cb	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7573f46	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe24650da	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe4b237f2	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xed7465ef	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xee79dfea	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf62a45fd	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe00e633	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x2410f569	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x7229e155	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xd107a57a	ebt_do_table
+EXPORT_SYMBOL	 net/caif/caif 0x0aea5db0	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x0eb15728	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x165094b1	caif_enroll_dev
+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 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 0x71f43f18	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb495d757	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/can/can 0x3ce19212	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x73d2483f	can_send
+EXPORT_SYMBOL	 net/can/can 0xa5267ecf	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xd8baaddd	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0xdee63491	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0xedec16af	can_rx_unregister
+EXPORT_SYMBOL	 net/ceph/libceph 0x00ea9b6b	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x018a2d4e	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x027d49a7	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x0555715e	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a3c60e0	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0x0b6f7179	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x1145ec5a	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x154cf2dd	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x190620d0	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x190aae11	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x1aa93fd1	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x1b43c866	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cba3f20	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x1dfd9d4a	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x1e0e87a8	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x22a173dc	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x22f8522c	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x260d30a0	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x29e66110	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x2ebc3e48	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x2f2270bc	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x30fdf265	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x317ac0ee	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x32e0eb5a	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x3313ffa2	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x34b198de	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x34fdcf30	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x3522979c	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x3635f778	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x375ea075	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x39073798	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x3946e862	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x39d12f7f	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d0f2a7c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ff8b42f	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x40f365b4	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x412b873a	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x45044d94	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x46471bd9	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b977abb	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x4e26a0a5	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x4ea918e0	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x4f1e1353	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x51256825	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x5216fa86	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x55346ec6	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5621acd4	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x57ff2d86	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a2d7bb4	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x6316fa3c	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x644b6e50	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x6685d54f	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6edb8cb7	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5c5f84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x72eff8ec	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x73eaf3bb	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x77f223e3	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x78363254	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x7bcdb198	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7f59018a	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ab63ebb	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x8bd5050e	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x8f5dd47c	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x913d68f2	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9aa4a23d	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x9c97ec5b	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9da1d356	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x9dfd6b0b	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ebedf96	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa16bb75c	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1f444ec	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xa5c9ab79	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa99dba1c	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xabb2d7c4	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xac099c2d	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaf6f590f	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xafed95ba	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xb207f3ef	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xb3a831d8	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xb3f0b115	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb5ddf679	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc33a4ce	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc1c1a735	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xc1f97d60	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0xc20c8ca8	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xc316668e	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xc4366513	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0xc464014a	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0xc5baa632	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcd2cad5e	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xcf5ee857	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xd08dca16	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5b37b37	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0xd6ef4ab4	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd91d64bb	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb70c544	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xdbc96ccd	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xde0f1aa0	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe0b236cc	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe200a5ee	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2b199d6	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2b32988	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe85a8db8	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xe912ddc6	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xe9b75d2a	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xea3ff16b	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xeab01972	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xede58748	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xf0edf040	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xf435c515	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xf562aab7	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xf6c954dc	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9aa6b20	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd6aa3c0	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd7839ca	ceph_client_gid
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x9d1a531c	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xa2ff2063	dccp_req_err
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x28ee76ff	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x703dbe92	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x28096771	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x5128d205	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xa031b7fa	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xc84a15bc	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xe60dce0a	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xff78791f	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ipv4/fou 0x19741ae4	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x53d2c2fb	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xe6e28044	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xff1adff3	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0x64a6ed2c	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x3ed5e3f2	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x4278bcd9	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x53d8b82c	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xef918431	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x0afb7e26	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x58511044	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x99e98c83	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x7edde248	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xd607878f	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xe1a41b40	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xa59af58c	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xa78b7b23	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xa1b3b011	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x06cef37e	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3e4309e2	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x66e9d9e8	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xc4034ce2	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd17a3bc9	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdfaad27f	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf20ab913	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf8768989	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xfef42d16	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x2abce7ab	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4b071c3f	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xcf543313	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x37ee6be8	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xab7c7052	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x18a34e28	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x41d240d2	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x358a90f3	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x9997a693	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x30d86d8d	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x11c4f913	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x38575507	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x8242dc2c	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x8f6b6cda	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x8f8d263b	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0xd712efdd	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xf69c67f9	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xf9e2a4bb	lapb_data_received
+EXPORT_SYMBOL	 net/llc/llc 0x0abc14ab	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x17d40b21	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x18659115	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x33e7ca30	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x526c09cf	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x5d1db67f	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xfbcbf745	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x00d60b6a	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0393117d	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x04f970ff	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x05272868	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0a270864	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0abae14d	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x11acc639	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14c727b5	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1cee364a	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1e5b6e67	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x213ac3a7	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x234ed9a1	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x23d5aadf	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x26313156	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x273446e9	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x28dc3cf3	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2cfa6b9d	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x328ef6f2	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x35519378	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3a577c92	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3ca76429	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3cdcc7a0	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3e37806d	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x424d5dd5	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x426dcc7d	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4496b588	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x45a3c932	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4765e778	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4d023d6f	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4d5b07ca	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4e4edf54	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x51b08f27	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x533389b2	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x564e50e2	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x56b4a0cc	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5840362b	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6b38704b	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6e5de22c	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x71142012	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x72be66ed	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x77a7b8db	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7a7a4b45	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7c59d161	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7d228ea8	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7dae2b11	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7e025f4b	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7e162ef1	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8259168c	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x86f961f0	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8bc9806c	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8da936b0	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8f515cb9	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x912a06bb	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9534052a	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x95e05fc3	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x97027e9f	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9813728e	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9ab8ddac	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9b9def04	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9efbb0a6	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa0910a1a	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa767394e	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa85bd4aa	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb17d4824	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3b47fd2	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb538402c	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb571ba4b	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb5d46810	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb8cf2eb9	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbc19b797	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbcb729e6	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbf4a9288	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc30e2034	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc3acbab4	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc3b16495	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc522fe11	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc524bfa1	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc60155a8	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc8ef8440	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc93dc302	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca274d52	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd2a51225	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd44d8cb8	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd7c701ee	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xda2f298f	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe18dfd7e	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe2f839f3	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe8822c2b	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf0c706e0	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf7cb721f	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfe9e066e	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xff461bc2	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x69831377	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x7e2479e9	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9848ce26	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb75f42e2	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xc755114f	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xd4c17c31	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xe831601d	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf0fd47fc	ieee802154_register_hw
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x01846702	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x133ebda3	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3370c408	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x456edc7c	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5bc7904e	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x64dc1b0b	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x70545ee3	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x71980ef6	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x76c84f9a	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x965f7d34	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9e70e5eb	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xaf219e55	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf0f4e319	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfa64f408	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfce15cc7	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x36175a06	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xc762d206	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x7ae8626f	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x8e650b0e	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xbc83c702	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xeea0465b	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xf7e308d9	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0ea1b91a	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7108f29c	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x875b8474	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x93797a62	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc414028e	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd1644bbd	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xdb6c88c1	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xea448fda	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xed9a4016	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xef8f62fb	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x081c5cc4	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1038a8b8	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x22a32bba	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x25aee8ea	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2a310c69	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2e5572ec	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x327a6884	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x41289bd5	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x4ccf94e3	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6da1d1b1	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x912e63ae	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9945360c	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa07dbd6b	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa74853c9	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa84f19e7	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb08d9b17	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd052f128	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd3943056	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd414b34	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe2e43645	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe6c4394c	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1e50c574	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x29831500	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4180b7c0	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4356f75a	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4772709c	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x496612c3	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5c941bef	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5da07f36	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5e0b5a25	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x677d6507	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6ae3194f	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6c480633	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x71872e86	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x76b414ee	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x76d429a5	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7918a8a0	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7dc3d5b8	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x823a044d	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x92541aea	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa51d52d6	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb153c33d	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb3624805	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb52321c9	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb87028cc	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xbe2398f0	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc24b93c1	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xebe02112	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xee8296e0	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf94462e5	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nfc 0x1c414159	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x1d89cefe	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x321ee970	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x37f09f8b	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x49f47fff	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0x4b9b00c1	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x557cd669	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x55a47e7c	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x582e7103	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x59505135	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x5f12c707	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x640cc290	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x667ca3ac	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x781c28a6	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x78a03dfa	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x8f3f5316	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x9498af78	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x9ba86372	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0xac3985aa	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xbf81f1a3	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xdb7fdb21	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0xe6832e7f	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xe6e92087	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xf26a9621	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xf6c74986	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x1ebfe6ab	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x4f0a07f7	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xd4bdbf50	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xefcddf60	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x3526c355	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0x401e0634	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x68a3297c	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0x70f92d40	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x8edee468	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xbdfea36d	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xd53e588b	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0xd8a41996	pn_skb_send
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0e14a736	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2856ec74	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3e7879dc	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3ec8e71c	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x40aab2ab	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4e38efa7	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6e0bd960	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7139fa24	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7abcecb4	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x80fca9ca	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x82edfb3d	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9ad6bdac	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb130237d	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xc25736a4	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xc5c940a6	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xc8c6380c	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf771ef65	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/sctp/sctp 0xad48624c	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x200dcb54	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x3d2eeda6	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xb349cd97	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x0742c358	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x2f0a8661	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x8954d2a3	xdr_truncate_encode
+EXPORT_SYMBOL	 net/tipc/tipc 0x072274d9	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0x10d9f0ce	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0x647ecb5e	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x8b8ab3bf	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x04e0ff7e	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0x7ac7154c	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0xf69449c9	tls_get_record
+EXPORT_SYMBOL	 net/wimax/wimax 0x1a94428e	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0x79e42e8d	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0573f69b	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0dd89965	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0f62d9f9	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0f9d0075	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x13ae9056	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x147284a1	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1965e14a	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ae50972	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b02bb16	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1c5b95d1	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1e72a79e	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x25745fa2	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x25e4be61	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2af5785c	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c6502bb	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c6b6080	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2ef7115f	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3001bc66	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x31c01e0e	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x31cecb79	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x373b3c9d	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38cb594a	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4373311f	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x45e60127	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x472ad499	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4acaa84d	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4bfa57ef	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x506f46dc	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x51b33b50	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x52fff412	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x55894fa0	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5fd899c9	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x661ea642	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6ae15c74	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x704041f2	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7231fc9b	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x725bfa71	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x799b4160	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7bf69316	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7da700d8	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef80144	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x81e2aec5	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8239cce9	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x82a8a30f	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x84d2e4cd	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x859e3455	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x875ae8dd	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8ad00ae0	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b24e88f	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x97ebcaf3	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9b93f223	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9ea42a19	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa4f66f3a	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa5e848d5	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa7ffdfcc	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa84f9d53	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaba6172f	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xacc633f7	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xae85f31e	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb035a590	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb609de48	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb78e202b	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb987765a	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbd6a74ed	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbeb2996a	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbef3c9b3	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbf3b9cb1	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc174ca14	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc1d1d566	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc6ce889e	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc81553ed	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc991a6b9	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc9edba82	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcebb75dd	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd2de93b6	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd51519af	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd6362d91	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7f6f362	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd86f9a46	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xde345f47	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe76b79b0	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe7c52cdc	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe8251598	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeb7dafd4	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xec917266	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xefa3bd74	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf006cbc8	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf079b217	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf48e448b	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf6d9eaef	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf835bb2d	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf8bfc430	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf9d990e0	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfbb6d333	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfe0a7d3c	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xff4a8a8f	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/lib80211 0x21847dd8	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x4fd3a35a	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x9cbb98cb	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x9f46efca	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc85c40e9	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0xf523dc8e	lib80211_crypt_info_free
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x9927b539	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x60319758	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x62a0c1ff	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x95a2a055	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xfb05077b	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1724fb56	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x17fcf66b	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1cff6e14	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2f853c43	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5f7f98	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x56efbc6b	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdaf3383a	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x32878eb5	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x4fb81e3b	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0d0bee89	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1ab6755f	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1bf38024	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2724d0b3	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2b02a2d8	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2fc74060	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x424d496f	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x49d6fef1	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4fa51aac	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x50b9f9e9	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x73a83f9b	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x78b798ae	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x8b3d63a7	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x984d4127	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xbf12ab55	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc6c1e45e	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xcc260c39	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe2521c87	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe2d74d9e	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf5f5d054	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+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 0xb48542ae	snd_seq_device_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x163b0c23	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x3ee3e8fb	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x47a3f0a9	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa8fb5f88	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xadc26bb1	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xb39e9023	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xbc0bff00	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd7ae4ad8	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xdfdbfcc4	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xef11081f	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x0dbb6a25	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x448bf454	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x88d8115a	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x8f7cf95b	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xa9004265	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd5db8ace	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xebdc805a	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf00a3ad2	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xfcbb3570	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x004e7097	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0193e923	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1842fec5	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x335af3ce	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3a3f9736	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3ae77940	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3f1b81ac	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x483995c9	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x522717f5	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5628096f	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5c5256be	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x66f9404c	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x754a5dd1	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7838b30a	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7ab94041	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7cc31614	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x81211db7	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x84372eaf	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8830ce15	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8e246bd7	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8fe42d9a	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x921287de	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa1ad97c9	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb89d8927	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc141b3e1	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc4325ffb	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc8b2427b	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd5cdd462	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe151128a	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe65f9680	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xea5d0549	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf8243af9	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x7ed6a252	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xdfe8a9f7	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x0401e19e	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x07817a3b	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x21bd2556	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x250baaf9	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3d9f8c19	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x935ca917	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xb32a1f69	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xf6d6b1bd	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x4d84cd7d	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xa6e156c7	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xc76645c1	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xfe0c9e49	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xdbda6b52	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xde680879	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x03f3745d	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x2045f9a4	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x38a9e99b	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xa9da382a	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xe14fb735	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xf3e0a393	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x26c56284	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x5a517d56	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x664f7399	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x66534516	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x96332b4d	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xb66aded9	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x432d0ee5	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x4a24fe3a	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x4c61158a	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x50c64a4c	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x544190ea	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5665cca9	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5e5b8542	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6a8cec92	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x82b56da3	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x8589621b	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x95134327	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa2933871	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb79c90d6	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xda5aa824	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xdde52552	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xeb30c6e1	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfb244d14	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x06e6ea0d	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x26c295ef	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x4325ed7c	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x4f15c5d8	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x57679df1	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x953a1f17	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xc2f311e1	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xeab2b8cc	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xec9829c3	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x37e97a60	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd4710df6	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xdd7e0db4	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0219f94c	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x047e9179	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x060c8992	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0d30baa8	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x12017f09	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x2e8945c8	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x61f55c75	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x656068f5	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x71f49ab6	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x876c2430	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x87f4dabf	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x90a1acb3	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa0b597ed	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa46581f9	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa82b1a44	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xab12cb90	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb062bb88	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd038576d	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf6a44e25	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf8dc7187	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xfd97391f	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x0086811b	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x193d5529	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x2c66ce92	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x73ddae15	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x9a90abe3	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x7060a9b3	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xc25a056e	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x8d71eef9	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xacd8acca	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x198d5141	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x5912a153	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xc93b5a37	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/qcom/snd-soc-qcom-common 0x28e6325b	qcom_snd_parse_of
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x02190969	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x087aaafc	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0e87eb77	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0f146e68	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x119a730c	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1f979c50	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x21a13576	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x22266a1f	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x277eba51	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x31862887	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x367ff357	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4497386f	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x45ab547c	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x47b635a7	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4db097bb	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x521f3f5c	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x59761edc	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x60521a2b	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x63219998	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x63690f91	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x652b53a9	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6607aaa8	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x719f82af	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x771ad098	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x77818a83	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7b1d470f	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7f1b2a89	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x81d134e2	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8481ecf3	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8549dda3	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x86ad7ff8	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9ac0570d	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa272cc6d	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xad055b2c	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xad27d644	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb69dc0eb	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb7a972cd	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb8e59b11	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbd6f7e24	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc90daee1	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd6b5ed67	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd9f3defb	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdf100ce9	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe3b23274	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xecce2832	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xed58815a	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf52d7c62	sof_block_write
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x09dc14b8	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x4ce59aaa	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x6160b058	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x72b7d0ff	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x83e6bb9e	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xb2cfee92	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x44db6e41	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x801ce873	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97b7ac12	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9f632a2c	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xbc531e15	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xbe2c305c	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xc0f9c9ea	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xd7295068	snd_util_memhdr_free
+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 0xbb311095	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0000b11c	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x00028c7d	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x001a8ce5	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x001c72d9	nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0x001cd5ef	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x0020c808	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x0027ead1	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x003008b4	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x00373a5d	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x0039f2d8	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x003e459d	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x0047c764	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x004964c9	processor
+EXPORT_SYMBOL	 vmlinux 0x004fd339	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x0055d117	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x005cee78	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x006b972d	arm_dma_ops
+EXPORT_SYMBOL	 vmlinux 0x0084934c	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x009a495d	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x00af4f20	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00f3d46b	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01053a7c	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x010bf761	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL	 vmlinux 0x01160b66	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 vmlinux 0x011a9e53	elf_hwcap2
+EXPORT_SYMBOL	 vmlinux 0x012272c4	filp_close
+EXPORT_SYMBOL	 vmlinux 0x01270ac4	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x012c4b3c	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x0136aad8	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x0149558b	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x01560f1c	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01642f80	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x017ff284	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x01830813	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0193a3bf	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x01985dda	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x01a3d310	omap_set_dma_channel_mode
+EXPORT_SYMBOL	 vmlinux 0x01b1a7e9	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01c72108	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x01e137a6	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x01e37be1	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x01e769d6	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x020e819a	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02175e23	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x0217bc80	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL	 vmlinux 0x0228c648	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x02416596	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x024a4032	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x024f5cc1	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x0279f375	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 vmlinux 0x029c05fc	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a4db16	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x02ab468f	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x02df50b0	jiffies
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x02fad995	can_nice
+EXPORT_SYMBOL	 vmlinux 0x0312a4b4	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x0325cbd6	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x0327214c	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x0334795d	icst307_s2div
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x0341c81e	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x0367f4e0	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x036fa5b5	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x038ef906	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03a8cddc	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x03af9ddb	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x03b49ed9	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x03ba39b0	v7_flush_user_cache_all
+EXPORT_SYMBOL	 vmlinux 0x03df8223	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x03e5dcaf	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x03f79008	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x040498ac	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x04113dda	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x0421bbc0	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0x043e92b0	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044a66c3	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x044fb722	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x0457e866	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x0485c851	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x049d9444	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x04abfe7e	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x04c6b4c3	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 vmlinux 0x04d81ea9	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x04dede36	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ed2f35	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x05013949	clk_get
+EXPORT_SYMBOL	 vmlinux 0x0508088e	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x051aad9d	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x05282f69	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x052dc65b	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x0533b23c	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x0541eb91	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x056f896b	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0x0597675c	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x059893c8	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x05ae9784	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x05b0caa0	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05c5ae4c	vga_put
+EXPORT_SYMBOL	 vmlinux 0x05ca18a2	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x05cd617e	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x05ce5e1a	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x05cf1f79	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x05cf2c1c	snd_info_register
+EXPORT_SYMBOL	 vmlinux 0x05dd9211	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x05e13eb9	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x05e44652	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x0614b650	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x06330b6f	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x06434898	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x06682055	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x06724b38	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x0678c28d	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x067ea780	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x06a442d0	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x06c7cdf2	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06e892b1	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 vmlinux 0x070e31ed	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x0717aca2	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0718af4d	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x073bc4cc	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x073d15f8	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x0745f8f6	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x075a2c33	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x075f3f27	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x077af67c	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x077fffa9	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x0781e091	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x07a4540a	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07b6902e	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07d8f4da	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x07e143da	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x07e2c085	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x07f38bbb	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07f6f822	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08149844	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08388633	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x083d373c	snd_timer_continue
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x08515a29	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x085de693	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x0865bd22	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x08684daa	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x08688c42	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x08690bbf	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x08883515	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x088ea14f	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x08c01014	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x08c4fd32	omap_disable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x08e39398	cmd_db_read_addr
+EXPORT_SYMBOL	 vmlinux 0x08f93bda	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x09187a0a	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x091eb0cc	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x093c8fcf	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x09480f23	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x094c18a9	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x0975ab9f	padata_start
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x098d593a	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x09ad85a1	sort_r
+EXPORT_SYMBOL	 vmlinux 0x09aeba38	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x09b77614	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0x09c5f5c8	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x09c69884	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d42459	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09ff42af	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x0a05f20c	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x0a153288	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x0a1a4cb6	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x0a20d621	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL	 vmlinux 0x0a3237b4	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0x0a4a1acc	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x0a542c29	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x0a60f377	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x0a6222b5	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x0a6b3ded	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa87ee4	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x0aa92814	key_validate
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0aad3aaa	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x0ac8bf06	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad1a747	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x0adb441f	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x0ae343e4	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x0ae547ed	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x0aebb5e3	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x0b1b939e	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b267418	snd_pcm_new_internal
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b39f09f	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x0b40d7cf	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x0b4447af	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0x0b4ad680	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x0b525231	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x0b617520	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b8f5ccd	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bd2887f	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x0bea96bb	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x0c1198da	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x0c1cefbc	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c39b2ee	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x0c3e3450	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x0c3ef451	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x0c415f74	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x0c47a82f	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0ca54fee	_test_and_set_bit
+EXPORT_SYMBOL	 vmlinux 0x0cad3828	snd_card_free
+EXPORT_SYMBOL	 vmlinux 0x0cafc452	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cbba0d6	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc62ff9	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x0ccb1226	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x0cce4243	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0ce8dc69	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x0ce95d74	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d0d23bb	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x0d0dec8a	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x0d37a2d0	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0x0d4fbe77	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d566061	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d6c4e2d	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x0d71b657	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x0d7e22de	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x0d8b21b3	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x0da1b08a	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x0dba5e9a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x0dc1a78c	bin2hex
+EXPORT_SYMBOL	 vmlinux 0x0de4f38c	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x0de53676	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x0dedfef1	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x0dfd9261	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x0e000fac	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x0e005ee5	bdevname
+EXPORT_SYMBOL	 vmlinux 0x0e158dbe	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1c8804	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0e1c92a9	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x0e21ed88	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x0e4dcc69	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x0e52932c	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x0e6cc3dd	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x0e703fb2	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x0e8077e8	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x0e838e3d	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x0ea8a840	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x0eaf27a7	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0eea0399	strscpy
+EXPORT_SYMBOL	 vmlinux 0x0ef0dd9c	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x0ef30a24	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x0efce92f	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f1a3005	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x0f31039a	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x0f314f75	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x0f6151f8	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x0f6758ac	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f9fc54a	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x0fa16ade	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x0fa2bc3b	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fbe0bbf	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x0fd1aecc	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x10018cb0	__pv_offset
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x10437aa9	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x104441cc	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106cc58a	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x106f13ab	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x10739f1e	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1081b3af	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x1085d5ee	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10ec1073	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x10f30f1c	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x10f57814	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x10f8772b	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x113a2d35	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x1145018a	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1173c347	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x1173cd72	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x11793bcd	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x117c75ec	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x117d8d4c	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x1189c268	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x119b50e7	elf_check_arch
+EXPORT_SYMBOL	 vmlinux 0x11acbda9	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x11bb98cf	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x11bbca80	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x11cfdc3c	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x11de3521	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11e9af29	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x1218b851	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x12494ad3	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x124f8ef6	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x1271bbc0	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x12827367	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x129442ec	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x129bbc0b	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12b5ea91	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12dfb2e2	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x12f19edf	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x1305e7c7	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x13060858	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x1308cf3f	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x1310ed83	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x133478bc	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x133aee80	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x133dd835	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x1345dd86	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x135e44cd	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x1360ba62	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x13738155	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x139e6e8b	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x13a0af0a	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x13c9632e	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x1403b0d6	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x14262aa1	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x14627b3c	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1486978a	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0x14879e89	follow_up
+EXPORT_SYMBOL	 vmlinux 0x14893a05	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x149a9a57	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x14a003f0	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x14a24ed8	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x14b8c745	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x14c3c3fc	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL	 vmlinux 0x14ed92a2	audit_log
+EXPORT_SYMBOL	 vmlinux 0x14ef2fb3	snd_device_free
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150b29a4	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x151d382b	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x1529a609	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 vmlinux 0x1538d29a	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x154dde05	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x158e4b6e	d_drop
+EXPORT_SYMBOL	 vmlinux 0x1597001a	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x15998c17	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x15a68e1d	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x15a79949	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x15aab266	skb_append
+EXPORT_SYMBOL	 vmlinux 0x15ac3cfc	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c6173b	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x15d2228b	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x15d433c0	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x15eb0e7a	snd_info_create_card_entry
+EXPORT_SYMBOL	 vmlinux 0x15f7fd61	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x16031cfa	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x1612f71a	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x16195d65	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x161a0ead	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x1620cc27	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x163a1d38	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x164d6fca	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x16525cc4	xa_find
+EXPORT_SYMBOL	 vmlinux 0x165612d3	get_super
+EXPORT_SYMBOL	 vmlinux 0x166fcc5e	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x16980997	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x169938eb	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x169ad5da	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x169eeee0	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x169fe137	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x16b1d9d0	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x16d3b382	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x1702206f	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x17111bfb	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x17150233	bmap
+EXPORT_SYMBOL	 vmlinux 0x1738c19e	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x173c3589	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x174554f3	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x1752b156	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x175d0bb8	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x17669aa8	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x1784b492	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x179e0e23	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x17b02e5d	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x17be0049	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x17d3ae50	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x17e36a04	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x182f2feb	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x1855279d	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x1873324b	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x187e6266	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x1883cbc7	of_get_min_tck
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189aa3f4	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x189c5980	arm_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x18aa88b6	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x18c347b6	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x18cd44ad	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x18ce1052	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x18cee23c	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x18d8efe0	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x18e503f4	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18f4cb27	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x18f58bc3	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x18f76067	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x190df169	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x191ea9cd	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x1945242b	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x195d4ac9	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x19637924	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x196f517d	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x1970297c	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x19715c78	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x197ce300	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x197dc3b3	omap_set_dma_src_burst_mode
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x1986f3d3	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 vmlinux 0x1994d315	d_path
+EXPORT_SYMBOL	 vmlinux 0x19968b30	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19b560ec	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x1a06958f	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x1a08da4d	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x1a11936d	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x1a21d691	__ksize
+EXPORT_SYMBOL	 vmlinux 0x1a28386d	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x1a347dc1	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x1a38accd	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x1a4699e6	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL	 vmlinux 0x1a7bc9ef	xxh32
+EXPORT_SYMBOL	 vmlinux 0x1a7c4e95	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a8fd93d	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa86d18	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x1acb5564	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x1ad1f2e7	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x1ad5ffea	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x1aded990	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x1ae6577d	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b061814	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x1b1430e0	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x1b23de49	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0x1b25f187	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x1b37d234	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x1b3f204d	snd_ctl_free_one
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b76ff5b	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b885945	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x1b981b19	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x1baaf44f	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x1bc7da1c	tc6393xb_lcd_mode
+EXPORT_SYMBOL	 vmlinux 0x1bca2acc	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x1bcf7081	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x1bd64587	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x1be36f7b	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x1bf5fc92	contig_page_data
+EXPORT_SYMBOL	 vmlinux 0x1bf7bd5f	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x1c080d08	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x1c16818b	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x1c1ffd0f	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x1c40ea91	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x1c4c3588	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x1c52bcd6	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x1c5e3878	icst525_idx2s
+EXPORT_SYMBOL	 vmlinux 0x1c6e164e	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x1c777c5c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x1c85e382	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x1c97f7ba	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x1ca8e77b	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x1ca9f32e	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x1caf4c2b	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cba42a3	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x1cc9d93b	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x1cda9d9c	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x1d006917	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 vmlinux 0x1d1fdeab	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x1d256b4e	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d2efd66	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x1d306c95	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x1d37eeed	ioremap
+EXPORT_SYMBOL	 vmlinux 0x1d3a2c4a	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x1d50332b	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x1d5c916f	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x1d815017	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x1d996767	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x1dad8fda	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x1dd3875c	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de1f5d7	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x1de67f9b	qcom_scm_io_writel
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e12a257	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e21be9b	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x1e35b245	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x1e5284e4	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x1e584597	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e8094d9	key_put
+EXPORT_SYMBOL	 vmlinux 0x1e87e693	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x1e8f81d5	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x1e96f43d	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb64646	div64_s64
+EXPORT_SYMBOL	 vmlinux 0x1ecc5f55	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x1ed52f93	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1eeabd84	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x1f000208	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x1f0313c8	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x1f0b2981	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x1f317cca	dqget
+EXPORT_SYMBOL	 vmlinux 0x1f374a0c	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x1f58b867	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x1f734cde	dump_page
+EXPORT_SYMBOL	 vmlinux 0x1f79f54f	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x1f8b8d8f	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x1f9466a9	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x1fb0f8b3	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 vmlinux 0x1fb31f6e	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x1fb691fe	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc3052a	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200036a3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x20070ea2	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x20083b10	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x200f778b	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x201653f8	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x202a6d6e	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x2047f1d8	nand_write_page_raw
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x205238e9	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x2052445c	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x20802940	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x208064e1	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x20846110	down_killable
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20e57c91	snd_card_register
+EXPORT_SYMBOL	 vmlinux 0x20f092a0	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x2107f797	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x21110dbf	mmioset
+EXPORT_SYMBOL	 vmlinux 0x2111bfdb	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL	 vmlinux 0x211e4c9a	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x212133db	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0x21297688	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x213bc59f	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x213bf079	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x214623d1	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x21498d5a	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x215bae84	d_add
+EXPORT_SYMBOL	 vmlinux 0x2169dc05	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x216d759a	mmiocpy
+EXPORT_SYMBOL	 vmlinux 0x216fd1e6	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x217ecf90	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x218cf25f	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21adda2b	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c31f9c	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21ea1ff9	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x21fd44b5	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x21fd70af	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x2224059a	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2235183a	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x22358b7b	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x2238ec1c	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x223d2e2e	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x2248f438	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x2263fc29	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x226b5dc2	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x2277e443	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x228ac6e9	kmap
+EXPORT_SYMBOL	 vmlinux 0x229499b1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x22b0e071	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x22b25ef3	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22c846de	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x22d061e1	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x22de662b	file_path
+EXPORT_SYMBOL	 vmlinux 0x22f3cdf7	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x22fe7ea3	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x23007b0f	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x233e8e27	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x23586fde	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 vmlinux 0x2359eb04	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x235b37ea	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x23619cff	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x2366d299	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x237be085	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x2387eda5	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x23963639	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x23b0c985	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23bbdeed	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x23be2509	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x23c53b24	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x23d5871b	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x23d8bab1	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x23df8a97	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x23e66881	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23f3ee12	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x23f9c5ce	xps_needed
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x23fd6238	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x240e3542	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x2433b61d	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2455dfed	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x24561747	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246790df	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x246a8f01	snd_jack_set_parent
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 vmlinux 0x24b7670a	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x24b97378	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0x24c499a5	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e3787c	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x24f27e4a	fd_install
+EXPORT_SYMBOL	 vmlinux 0x250113b4	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x250ad87a	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x250c3c00	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x250cbc06	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x250dbb24	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x252338be	dns_query
+EXPORT_SYMBOL	 vmlinux 0x2525e6e9	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x2554acc6	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x255c4be3	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x2567e400	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x2571f6ad	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x257ae45c	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x2580f923	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x2586bdb1	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x258919cf	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x258b37e7	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x258d5c85	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x25a10c0b	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x25a6d348	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x25b49fc9	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 vmlinux 0x25d752d8	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x260e5957	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x2622d076	snd_device_register
+EXPORT_SYMBOL	 vmlinux 0x26380ce9	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263db2ed	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x26482c00	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x26692ad5	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x2669377b	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x2675fa10	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x2680e939	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x26857d41	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x2690e6c1	_find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0x26cea85e	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x26d087e6	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x26dcb841	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x26e308a7	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x2704d7e6	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x2729b60e	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273c2fb4	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x27793f4c	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x277efe05	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x2781c5de	tc6393xb_lcd_set_power
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x27983a44	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x27b05e6d	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x27b5e02f	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c68705	node_states
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27d034b7	save_stack_trace_tsk
+EXPORT_SYMBOL	 vmlinux 0x27d0ed03	may_umount
+EXPORT_SYMBOL	 vmlinux 0x27d80bf7	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x27dcd25a	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x27df50e8	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0x280efd5f	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x28109e74	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x28189271	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x28243f18	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x283e1d44	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x286136db	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x2878e15a	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x288477f9	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x28b26468	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x28be6d51	mem_map
+EXPORT_SYMBOL	 vmlinux 0x28c5ec2d	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x28c664f2	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x28e80c37	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x290710ff	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2926ea50	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x292dc53a	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x29356580	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x294e701d	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x2962eb7e	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x29673e7d	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x296d88e0	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x29804600	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x2986e167	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0x298d0d59	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x29914e87	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x29a17b34	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x29a47fe9	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x29c748b7	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 vmlinux 0x29d66d09	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x29d9f26e	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x29e560d8	snd_ctl_remove
+EXPORT_SYMBOL	 vmlinux 0x29f15a13	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x29fcc962	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x2a07e05e	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x2a1d7aa9	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x2a214dc1	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x2a24fd03	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x2a27143a	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2a2dcdde	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a36e425	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x2a3aa678	_test_and_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x2a87881e	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x2a8b32be	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x2a931a7c	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x2aaf3045	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x2ab49f5c	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x2ab6b362	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x2abfe2ea	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x2ac738bb	snd_timer_open
+EXPORT_SYMBOL	 vmlinux 0x2aca9482	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x2acd897a	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x2acfa402	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2afa1bcb	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x2b00adda	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x2b042bf3	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x2b067b57	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x2b09779a	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x2b12b94e	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x2b3066b7	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x2b3d3798	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x2b5ab97d	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b737adc	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x2b7977e2	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x2b846320	single_release
+EXPORT_SYMBOL	 vmlinux 0x2b8729b9	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x2b99722a	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x2b9c7db3	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2baa15c8	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x2bb33077	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0x2bd46209	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0x2bdc3c38	snd_card_file_remove
+EXPORT_SYMBOL	 vmlinux 0x2be380b7	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x2be97f02	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x2bf230c6	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x2bfabdf0	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x2bfbc67f	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x2bff5887	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x2c0cefeb	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x2c14323a	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x2c168ef7	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x2c20a2b1	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x2c229288	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c4a45e6	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x2c56a053	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x2c6b6974	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x2c6f890a	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x2c74ec2e	tty_name
+EXPORT_SYMBOL	 vmlinux 0x2c7c8e9a	pcibios_min_mem
+EXPORT_SYMBOL	 vmlinux 0x2c81ec75	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c8d73ec	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x2c9d3756	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x2ca6344f	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x2cfde9a2	warn_slowpath_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d1f92d1	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x2d276bee	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3efe61	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x2d4aa46c	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d575d67	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x2d6fcc06	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2d72f444	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x2d73f014	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0x2d7e2723	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x2d8a88e5	map_destroy
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da81bff	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x2db15732	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0x2dead7a6	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x2dec67cd	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x2dee47e0	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x2e02ee1e	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x2e08b761	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x2e08e961	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x2e120512	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e339dc1	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x2e3df80b	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e79c812	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x2ea8ccb8	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x2eb3322b	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2eb568d0	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ecf0c5c	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x2ee2a7fa	dst_release
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f1b0d62	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f31d991	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x2f33586d	snd_pcm_new
+EXPORT_SYMBOL	 vmlinux 0x2f46cc45	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x2f4a4b3e	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x2f50cbf5	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f59829e	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x2f5b0fdb	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2f66a6c3	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x2f6ea6d2	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f893fc9	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x2f89731c	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x2f97d372	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fd11662	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x300f0d47	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x3011657e	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x301c8c07	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x301dc65d	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x30275bfb	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x30522a11	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x3065514b	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x306786e0	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x306af76b	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30d9a471	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310917fe	sort
+EXPORT_SYMBOL	 vmlinux 0x311d1c5e	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x3122c440	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3136f2c6	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x31390ff4	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x31463f18	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x314b20c8	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x3155b3dd	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x316654eb	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0x3166bb79	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x31891e4c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x3199b08d	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x31a415dc	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x31a4767f	qcom_scm_hdcp_available
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31b88206	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x31c22a3e	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x31ee9e3b	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL	 vmlinux 0x31fb3cba	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 vmlinux 0x320daa90	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x321d55f0	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0x32209963	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x3238cb28	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x32430023	_totalhigh_pages
+EXPORT_SYMBOL	 vmlinux 0x324d7353	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x326d5a5d	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL	 vmlinux 0x329b61f3	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x329e8038	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x32a06a4f	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x32a26675	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x32a266b0	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x32ac15af	dev_load
+EXPORT_SYMBOL	 vmlinux 0x32b523c1	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x32bc9b56	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d9a145	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x331e0efc	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x33249186	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x3338dace	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x333d10a9	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x33500f14	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x336d9e19	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x3379d56b	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x3392a168	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x339be3a1	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x33b389fc	snd_jack_new
+EXPORT_SYMBOL	 vmlinux 0x33c8f2e2	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x33d6495e	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x33dc036a	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f52d62	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x33f52e8e	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x3406d785	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x344334a9	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0x346ce63d	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x346fcb05	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x346ff4d9	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3471561d	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x347fcc10	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x34821a90	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x3499c064	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x3499d30d	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x349b4277	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a04d71	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x34d31017	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34fb5b0f	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x34ff3b39	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x353e3fa5	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x354a5330	of_node_put
+EXPORT_SYMBOL	 vmlinux 0x35570492	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x35595b43	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x3560e651	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x35696cb2	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x357f326f	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b211e9	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x35b50470	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x35c2e1b4	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x35ea78f5	atomic_io_modify_relaxed
+EXPORT_SYMBOL	 vmlinux 0x35f0fafe	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x35f6a4c8	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x36051435	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x3612c10f	tmio_core_mmc_enable
+EXPORT_SYMBOL	 vmlinux 0x361d0f1e	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x363a9277	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x3653fefd	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x36588e6a	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x366a3245	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x366a8ce2	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x369215c6	key_link
+EXPORT_SYMBOL	 vmlinux 0x369a2bcb	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x369a7e3f	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x369ffeba	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x36ac2a0f	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x36cc0cd2	snd_card_file_add
+EXPORT_SYMBOL	 vmlinux 0x36d69557	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x36e46fe9	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x36f7d847	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x36f99389	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x37092e9c	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x374b47eb	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x376115f6	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x3765edd6	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x376bf2da	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x376f51e8	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x37967185	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 vmlinux 0x37a4f147	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b022f9	sg_split
+EXPORT_SYMBOL	 vmlinux 0x37b4c9e8	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x37bc3170	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x37be6b7d	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37bfd7fb	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x37d6e241	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x37d74572	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37ee5147	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x37f614b7	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x3802bc20	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x38200847	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x38288a60	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x382b9e67	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x383956bb	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x38429228	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x3842b3a6	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x3854e19b	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x385af1b9	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 vmlinux 0x386d9ce9	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x389047a2	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389acf0c	gpmc_configure
+EXPORT_SYMBOL	 vmlinux 0x389ecf9e	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x38a0b432	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b439bc	msm_pinctrl_dev_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x38b80adf	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x38bf895a	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x38f1d100	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x391560fc	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x3915d6fa	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x39304f50	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x3933b97d	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 vmlinux 0x398083d3	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x39816c27	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x3992bc63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x3997b892	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399c0b48	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x399f3e5f	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x39a12ca7	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x39aed699	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 vmlinux 0x39c0aaa0	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x39c27a2b	snd_card_set_id
+EXPORT_SYMBOL	 vmlinux 0x39c88fd5	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x39e7a64e	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x3a0b5688	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a1e077b	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a38bce1	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x3a448437	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a7a68d7	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x3a8ec3e9	module_layout
+EXPORT_SYMBOL	 vmlinux 0x3a9a5258	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x3a9d5f73	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x3ab03763	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ac0591f	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x3ad6fd8e	krait_get_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0x3ad92c0c	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x3addb43a	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x3adf8edb	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x3ae8812d	iunique
+EXPORT_SYMBOL	 vmlinux 0x3af023a5	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x3b05d5af	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x3b21aa81	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x3b299067	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x3b32ae4d	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x3b3da018	nand_bch_correct_data
+EXPORT_SYMBOL	 vmlinux 0x3b405862	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b697738	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x3b6cbd7d	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x3b70e27e	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x3b7c8dc3	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x3b917bbf	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x3b99352e	skb_push
+EXPORT_SYMBOL	 vmlinux 0x3ba7551a	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL	 vmlinux 0x3bdbac2d	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x3be2bdcc	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bfac3f2	inet_accept
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c1be867	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c4cf17e	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x3c4e24c7	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x3c548dcb	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x3c5570c2	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x3c562a33	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x3c60315c	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x3c65cdc4	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x3c7c0524	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x3c7ca473	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3cc449ac	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x3cd27d0a	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce62513	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x3d1e0074	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x3d2d1620	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL	 vmlinux 0x3d52fb7f	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d676f08	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x3d8065b9	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x3d84578c	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x3d9d6c87	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x3db8af82	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x3dc47994	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x3dc4f510	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dcd5c3d	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x3dcf1ffa	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3dd878a0	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x3de2059e	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x3de62924	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x3debd2b4	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x3dec2616	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x3df56ce0	key_move
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e09139e	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x3e25fc4a	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e3d5fe0	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x3e4d35b7	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x3e58cde5	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x3e86508d	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ea265d5	get_acl
+EXPORT_SYMBOL	 vmlinux 0x3eae9647	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x3eb5e4bd	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x3ebcdad3	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x3eccfb92	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x3ed104a5	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f106ea0	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x3f2045d5	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3f291773	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f474458	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x3f4af46f	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f62d048	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x3f77facc	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x3f80d944	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x3f88c8ae	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3fa51493	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x3fb4ec92	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x3fbbfb2f	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc6ff10	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fea538c	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3fea7376	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x3feab629	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x3ff165b0	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3ff83d82	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x4013077b	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x40152da5	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0x4025e6f7	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x403a93e7	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x40429bc7	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x406e2374	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x406e71b9	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0x407a3275	omap_start_dma
+EXPORT_SYMBOL	 vmlinux 0x40839df5	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4094197a	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b51c05	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x40b8f95b	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x40c2ab6a	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x40c2d4f0	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40cf6c61	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d402ad	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40eb573e	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL	 vmlinux 0x40fdd743	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x410886d5	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x410c9f3b	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x4111bdc8	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x412030ce	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x4124c24d	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x414514f1	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414975dd	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x4154c906	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x41647cdf	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x4164ecbe	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0x417d3d40	get_mem_type
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418a5367	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x419a1c36	__bforget
+EXPORT_SYMBOL	 vmlinux 0x41b348d1	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0x41b84f3f	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x41bb84fc	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x41bca07b	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x41e7fbad	arm_coherent_dma_ops
+EXPORT_SYMBOL	 vmlinux 0x42112495	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x4215755a	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x423dcda0	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x424273ad	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x4253aa7e	down_write
+EXPORT_SYMBOL	 vmlinux 0x425d3103	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x42604384	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x4274917d	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x42770642	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x4279323a	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x427d18e2	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x4284defd	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x4298b775	v7_flush_kern_cache_all
+EXPORT_SYMBOL	 vmlinux 0x42a35af3	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x42a92751	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x42b1f6b8	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x42bed83a	cpu_tlb
+EXPORT_SYMBOL	 vmlinux 0x42e95217	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x430274f0	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x4305f555	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x431676c0	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x43424902	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x43436a7b	snd_pcm_open_substream
+EXPORT_SYMBOL	 vmlinux 0x4345916e	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x434850f6	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x435da7e6	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x4360bb4e	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x436222bd	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x4388bc45	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x438d3ba8	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x43b835f6	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x43bd330a	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x43c133a0	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x43c73c34	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x442495c9	tmio_core_mmc_resume
+EXPORT_SYMBOL	 vmlinux 0x44357f5e	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x4442d29d	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x444cc8ed	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL	 vmlinux 0x447e3090	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x448935fd	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x448aa30b	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x44964145	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x449e9728	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x44a12415	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x44acf67e	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x44c9dc6c	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0x44d20c63	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x44d7d3c0	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x44e214d2	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45073ea4	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x450d9a35	cmd_db_read_slave_id
+EXPORT_SYMBOL	 vmlinux 0x451133ce	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x45128a3a	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x45158ce9	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x45315550	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x453727c0	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x4537695e	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x45417ae3	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x454bc79e	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x45519507	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x4562a134	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x4570e4db	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x458c5d10	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x45bbd5d9	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x45bda0d5	system_serial_low
+EXPORT_SYMBOL	 vmlinux 0x45ca8215	module_put
+EXPORT_SYMBOL	 vmlinux 0x45d06c41	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x45d6193d	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x45dc6e5e	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x460f8350	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x462666b9	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x4631cf7c	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x463b6ef6	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x464e4b2c	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x46522e5d	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46bfe1b0	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x46d1cf4b	nla_put
+EXPORT_SYMBOL	 vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL	 vmlinux 0x46f6924c	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x470ca49b	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x471f141c	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x47275c86	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x47338bb8	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x475316c0	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x475528db	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x4756260d	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x4764148f	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x478d9b84	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47a3d751	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x47c0fff0	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47c8beab	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x47d6d462	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x47d8254f	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x47e70229	v7_flush_user_cache_range
+EXPORT_SYMBOL	 vmlinux 0x47eeff36	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL	 vmlinux 0x48134c7c	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 vmlinux 0x482f8cc7	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x483cd3e0	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484f2bf7	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x48674c29	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x4867630b	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x4869ce6e	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x4872dc80	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x489dbc81	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x48a5b067	__machine_arch_type
+EXPORT_SYMBOL	 vmlinux 0x48a655bd	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48bb80db	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x48c2499a	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x48cb057c	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x48e0c5a2	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x49027042	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x49171f89	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x4935af42	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x49374191	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x493a1550	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x4943afb9	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x49970de8	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x499a9cc9	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49a7d464	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x49ad0bba	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x49b095eb	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0x49c2057f	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x49d0162b	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x49d3457a	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x49d46254	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x49eb2906	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x49eeddc6	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x49f26466	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x4a1d9591	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x4a268c03	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x4a35e9cc	__module_get
+EXPORT_SYMBOL	 vmlinux 0x4a39e5a1	omap_set_dma_src_params
+EXPORT_SYMBOL	 vmlinux 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 vmlinux 0x4a4b8451	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x4a519378	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x4a6bb640	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x4a79e7ac	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x4a8703f8	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x4a88fc3e	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4aa648c7	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x4ac4174a	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x4ad9cc24	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x4ade8b2e	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x4aef0428	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x4af79cff	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b174c5c	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x4b17519a	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x4b1ec3e2	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x4b2ff42c	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x4b329da6	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x4b36a4a5	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x4b473ec6	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4b507ffa	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x4b57b3a2	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b64be85	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x4b8ebfb0	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x4b935194	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0x4b99e1b0	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bc04cf4	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x4be85a03	memweight
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bfdcefa	__memset32
+EXPORT_SYMBOL	 vmlinux 0x4c083cde	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x4c098e04	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x4c1cca3b	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x4c216c83	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x4c2ae700	strnstr
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c3ca2c4	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c4a0ada	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x4c522885	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x4c8b9fb7	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0x4ca33570	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x4ca6df37	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc49509	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x4cd9c074	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x4cf23a9c	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d1857dd	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x4d33f1ed	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x4d3481c7	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x4d514485	xa_store
+EXPORT_SYMBOL	 vmlinux 0x4d633c89	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x4d634803	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9b6d35	snd_pcm_format_size
+EXPORT_SYMBOL	 vmlinux 0x4d9b8055	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x4d9f74e4	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x4db0bbc8	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x4dc58057	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x4dd44da8	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x4dd48f02	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2831f	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4df5e724	msm_pinctrl_probe
+EXPORT_SYMBOL	 vmlinux 0x4e05bdec	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4e179e84	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x4e205460	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x4e2e74c1	qcom_scm_io_readl
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e3747d9	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x4e4c1b76	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x4e4ffca0	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x4e506013	omap_dma_link_lch
+EXPORT_SYMBOL	 vmlinux 0x4e6521ef	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e8f06fa	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x4eb5abe5	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x4eb606e3	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x4ec4935f	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x4ee0e846	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x4ee43246	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x4ee98ebd	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x4eefe9a7	snd_timer_global_register
+EXPORT_SYMBOL	 vmlinux 0x4f0734be	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x4f13b3ef	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f22d6f9	completion_done
+EXPORT_SYMBOL	 vmlinux 0x4f288dfa	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x4f28fdbf	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x4f363fd2	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x4f43b3aa	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x4f46fe7b	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x4f4c19c7	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 vmlinux 0x4f89c9de	gpmc_cs_free
+EXPORT_SYMBOL	 vmlinux 0x4f980988	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x4fa417ce	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4fda1551	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x4fdb44e0	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x500fb123	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0x50116c26	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x5024b77b	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x502b6647	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50a245c5	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50becdfc	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x50c544d3	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d45733	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x50d5336a	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x50d71bcf	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x50d9da1b	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x50e105dd	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x50e5224b	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50fd6103	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x510108a3	path_put
+EXPORT_SYMBOL	 vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x514a62ec	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x514cc273	arm_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x517f3a31	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x518ede86	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x519a89a5	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x51ad56b2	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x51cb8e89	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x51e5405a	km_query
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x5203d176	cmd_db_ready
+EXPORT_SYMBOL	 vmlinux 0x52130584	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x5228462d	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x523e57aa	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x525310ba	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x5267c249	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x526bc5b6	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x528c709d	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x52c21b20	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x52c65a5d	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52ddf980	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x52e3d094	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x530c974e	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x5321617b	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x53500a1d	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x5352c5b8	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x53568085	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x536060af	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x537645ed	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x537a844d	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x53909794	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x53942bc5	set_groups
+EXPORT_SYMBOL	 vmlinux 0x539ed3ce	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x53ae5d34	cpu_user
+EXPORT_SYMBOL	 vmlinux 0x53dfe725	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x53e39115	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x53e42d6e	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x53e8148f	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x5420a195	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x5446e3b0	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x546551ff	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x5473b5e8	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x54887370	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x54a347e7	d_delete
+EXPORT_SYMBOL	 vmlinux 0x54a9d5d5	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54dc1e57	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ecec03	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x54f58a97	sock_register
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550b3a3f	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x550fdc68	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x55403b22	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x55460c88	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55571184	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x5562f944	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x55735509	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55b1cb18	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x55bb830d	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x55c214a5	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x55ce1394	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x55cfe9de	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x55d658ca	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e50fc7	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0x55e62382	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x55f6bc80	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x56003d3a	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x560ed1e5	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x56173934	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x56192c9a	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563952a3	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0x563f890c	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x5658ca16	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x5667a277	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x566e45bc	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x56746723	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x5679184d	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x5679dd84	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x56861633	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0x5687e3bf	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x56943b43	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x56a6a8a0	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x56b28c78	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d25590	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x5708e836	dev_close
+EXPORT_SYMBOL	 vmlinux 0x5712e9e6	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x57227f66	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x5725b771	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x572900ed	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x57469b21	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57549931	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x575fccb3	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x57625fb1	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x5786753c	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x57923f9b	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x579a965b	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x579e2d89	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x57a848b4	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x57bba8bc	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x57cd61d4	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x57ceedb1	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x57e5170c	qcom_scm_iommu_secure_ptbl_size
+EXPORT_SYMBOL	 vmlinux 0x57ff23f0	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x581b2895	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x581cde4e	up
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582f27ac	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0x5831ed06	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x5832b056	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x5835a3a1	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x584481b5	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x584fd73a	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x58516557	omap_set_dma_src_data_pack
+EXPORT_SYMBOL	 vmlinux 0x586b6660	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x5887d9e7	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x589c6f10	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x58a4a521	snd_pcm_new_stream
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58c5aa64	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x58d0de92	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x58d18af0	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x58d2b8ab	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58ea519c	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x58fad869	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x58fce4db	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x58fe49d5	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x5903a79b	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x5928329d	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x592b5bd9	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x593e9464	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x5942bde1	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x594c174f	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x594d7cb0	of_root
+EXPORT_SYMBOL	 vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x5995cd0e	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x5999e9b7	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x59b27f7b	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x59b7cab6	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x59bd29e6	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x59c124b5	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x59d29dab	v7_flush_kern_dcache_area
+EXPORT_SYMBOL	 vmlinux 0x59d31760	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x59d9a882	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x59e315fb	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x59e4104f	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL	 vmlinux 0x59fc1ce2	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x59fc306a	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x5a0a21bf	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a13b7db	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x5a14de15	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x5a1fe89c	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x5a332b8d	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a4e3abf	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5a5edeee	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x5a6752cd	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x5a806a4e	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x5a957737	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x5ae49f40	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x5afc15b5	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x5b062284	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b06a92a	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x5b0d0659	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b1f3965	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b44f8ff	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x5b54903b	qcom_scm_pas_mem_setup
+EXPORT_SYMBOL	 vmlinux 0x5b83b64e	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x5b909cea	snd_card_new
+EXPORT_SYMBOL	 vmlinux 0x5badbb78	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5bbe49f4	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x5bd75b27	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c0635d5	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x5c0c8045	register_console
+EXPORT_SYMBOL	 vmlinux 0x5c134896	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c5873a8	snd_timer_global_new
+EXPORT_SYMBOL	 vmlinux 0x5c716976	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5c7f1284	int_sqrt64
+EXPORT_SYMBOL	 vmlinux 0x5c847144	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL	 vmlinux 0x5c9529cc	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x5cbb510a	snd_seq_root
+EXPORT_SYMBOL	 vmlinux 0x5cbd8e69	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x5cc8f2a1	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x5cd841b4	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x5cd88bd2	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x5cda3b63	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x5ce86913	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x5ce9a942	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5cedb512	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cf92baf	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x5cfb52c2	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x5d0f8c05	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x5d13bc20	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x5d1442b1	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x5d14e0d5	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x5d249d9d	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5d37d658	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x5d44ae29	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d5a3458	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5d5c12ba	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x5d810f97	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d92ac5f	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x5da77e23	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x5da9635c	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x5dcf6341	outer_cache
+EXPORT_SYMBOL	 vmlinux 0x5dd5ff24	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x5de5cca2	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x5e00754b	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x5e01c79f	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x5e19f869	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x5e1b9dd1	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x5e24f002	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x5e2c504d	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x5e2d4371	snd_pcm_stop
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e41192c	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x5e547003	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x5e708855	vmap
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 vmlinux 0x5e828321	snd_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x5e85cc96	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x5e866d85	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0x5e94cf40	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea2359d	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 vmlinux 0x5ead91f6	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5eb48641	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x5eb5504a	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x5eb947a8	nvm_register
+EXPORT_SYMBOL	 vmlinux 0x5ec19bdc	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed05bf6	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5eddffc2	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x5ee4cc3d	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x5ef8df9a	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x5eff0eb4	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f1c0874	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x5f1dabc4	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x5f3c092d	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x5f47f7be	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x5f497df8	flush_kernel_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x5f53ace6	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x5f54dd4d	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x5f62e146	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x5f64a3cb	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL	 vmlinux 0x5f849a69	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5fb01358	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fcfcf12	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x5fd192de	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x5ff11cc3	pcibios_min_io
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x60100806	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL	 vmlinux 0x603286b8	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x603d4a6d	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x603f6472	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0x604b8f84	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x604ca5e8	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x60695960	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x606dd314	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x607373cb	import_single_range
+EXPORT_SYMBOL	 vmlinux 0x607e3e10	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60a6e01f	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x60aa6f0b	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x60bf4b4b	input_event
+EXPORT_SYMBOL	 vmlinux 0x60bffe6d	div64_u64
+EXPORT_SYMBOL	 vmlinux 0x60c4d67c	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0x60d7c1a0	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60ec5557	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x6109c240	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x6121bd54	dql_init
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x6154db60	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x6156c7f4	net_dim
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x6168f39d	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x616f8118	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x6199d2d3	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x619fda56	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x61a8e953	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x61b76bb9	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61bcefdc	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x61c76b3a	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x61cb14e6	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x61d1925d	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x61de7b51	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x61e38006	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x620e6630	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x62119330	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x62287209	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6229c3bc	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x6229df36	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x6234b727	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x62499291	phy_start
+EXPORT_SYMBOL	 vmlinux 0x624c726e	find_vma
+EXPORT_SYMBOL	 vmlinux 0x6255c84b	init_task
+EXPORT_SYMBOL	 vmlinux 0x6267a35c	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627d4340	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62cab941	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x62dede27	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x630f2cb8	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x6317a7e2	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x6326555a	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x632827e5	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x6342f99f	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x634306ed	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x63457267	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0x6349c85a	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x635326eb	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x63637a2b	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x6364183c	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x63676a3e	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x637d1026	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x639ceaba	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x639fe1cd	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x63a4431e	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c9e43d	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x63e2c840	snd_ctl_rename_id
+EXPORT_SYMBOL	 vmlinux 0x63e63327	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x63e8a5a4	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63fbd634	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x64004e85	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x6401eca4	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x64396cc7	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64660db5	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x647195f6	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x64776199	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x647af474	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648c1ffa	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x648dc140	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x648f6b9b	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a96bca	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b032f3	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x64d54408	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x64d5db35	bio_split
+EXPORT_SYMBOL	 vmlinux 0x64ed1ed2	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x65168ad7	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652adad7	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x65317d55	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x654316bd	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x654594cc	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x6545ce5a	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x65523b21	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x6554a4ee	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6564ad69	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x656653b6	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x656b9ee0	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x656f3f4d	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x6575640f	register_sound_special_device
+EXPORT_SYMBOL	 vmlinux 0x6578533e	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x658339af	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a0f992	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x65b4c88d	mtd_concat_create
+EXPORT_SYMBOL	 vmlinux 0x65c0a562	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x65d0da98	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x65d139d6	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x65d411e9	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dc5c02	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e37a16	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x65ed19e5	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x65fd3533	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x661b6185	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x661dcf3f	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x6640029d	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x66428903	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x66474aa4	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x665595ca	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x6656f1a4	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x66657274	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0x6666c505	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x6667435f	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668400e3	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x66998d58	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x66a036ef	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x66bb2430	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x66c37718	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x66c6b209	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x66dc65d6	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66e7e753	filp_open
+EXPORT_SYMBOL	 vmlinux 0x66f3a798	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x66fce2c3	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x670f76ff	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x6718d301	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x675ac740	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x675c0119	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL	 vmlinux 0x67771651	nand_create_bbt
+EXPORT_SYMBOL	 vmlinux 0x67808ed1	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x6782d34a	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x678fc567	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0x6798fe38	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67cbf7b1	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x67d2a60d	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x67e58869	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x67f15715	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x67fa44d6	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x6808c968	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x68173a5b	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x684aa2fd	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x685532b9	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68965aa3	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x689e437f	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68c0760f	__free_pages
+EXPORT_SYMBOL	 vmlinux 0x68c5c831	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x68de34a6	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x68df4f2c	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x68e4d95b	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x68eebce1	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x68fb581a	icst307_idx2s
+EXPORT_SYMBOL	 vmlinux 0x690f5769	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x691938f8	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x691f198b	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x692d633a	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x6935bd21	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x693b294d	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x693b6e46	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x693f72f8	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x69420ea2	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x6973a35f	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x6976a4ad	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x69985f4f	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x699e5d7e	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x69ac30bc	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b153cf	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x69b6f8d9	omap_set_dma_transfer_params
+EXPORT_SYMBOL	 vmlinux 0x69cb4c99	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x69d85806	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x69d8754a	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69e51d08	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x69ffd7fe	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a06fe13	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6a098bdf	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x6a206ef7	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x6a317bd6	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x6a41a238	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x6a52f1c9	current_time
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a673791	ioremap_cached
+EXPORT_SYMBOL	 vmlinux 0x6a6d169d	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x6a757061	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6a76eba7	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x6a83f08b	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x6a84e74c	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x6a91ce5d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x6a97dae2	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6abf89a7	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x6ac0d2a6	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x6ac3159d	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6ae71815	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6af7b21a	packing
+EXPORT_SYMBOL	 vmlinux 0x6b069edc	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x6b0f728b	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x6b25e912	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b322fbd	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x6b43d258	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x6b4d928c	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b55f2b6	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x6b576207	drop_super
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b604710	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x6b62bf54	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x6b647179	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x6b6b32f3	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0x6b6dbc90	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x6b75eb75	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6bad4015	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x6bb5a59d	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x6bb93d9e	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bc6fcdc	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x6bd40824	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x6bd738e9	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6bdc91c9	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x6be49ce6	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x6bf7d3c2	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x6c068eee	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x6c0f3c0e	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x6c1b3d26	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL	 vmlinux 0x6c248292	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c785064	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x6c7b0a5e	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x6c810e42	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x6c837d79	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x6c8f182f	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x6c9369d8	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x6c9eebce	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbb3115	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6ce6f03c	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d009223	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x6d08e538	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x6d1ea445	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d4f6c68	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 vmlinux 0x6d5b0071	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x6d5bf068	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL	 vmlinux 0x6d89b199	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x6d958fb5	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6d9d9b78	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x6da99178	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x6dcdddf0	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd56440	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x6df00672	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6dfc245c	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6e11bcb6	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x6e1dae8a	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x6e1e1b30	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x6e224f17	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x6e296396	kset_register
+EXPORT_SYMBOL	 vmlinux 0x6e3e7522	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x6e4e7714	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e74568a	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x6e7c1dee	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x6e86b4fd	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x6e886b42	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ead99c5	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x6eaf1a20	skb_put
+EXPORT_SYMBOL	 vmlinux 0x6ebef58b	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x6ec13eb4	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x6ecdb792	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x6ed2fe63	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x6ed50c7d	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x6ed7fbb2	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ed94faa	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x6ee71257	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6ee75feb	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 vmlinux 0x6f013ecd	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x6f04b2e9	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 vmlinux 0x6f1cab2c	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x6f21d309	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x6f2ecd0a	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x6f31fd63	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x6f48df72	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x6f4d62ea	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x6f571cf6	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x6f57bae7	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x6f682a60	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x6f68a12b	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x6f6923ce	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x6f6ac2d8	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6fa86052	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x6fbd5ee2	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x6fbe4717	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fe07982	nand_bch_init
+EXPORT_SYMBOL	 vmlinux 0x6ff56fd5	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x700278d3	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 vmlinux 0x700c84a9	update_region
+EXPORT_SYMBOL	 vmlinux 0x7011db0c	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x701a15d0	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x70235ce3	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x703e49d3	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x70691ff5	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x70703993	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7084a870	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x70913bee	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x709158f5	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x70bc9964	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x70d9fda3	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x711b8a9b	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x712110ab	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7121d107	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x7122281b	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x712b358e	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x712d145f	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x7142b218	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x716c2f6e	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x71818f9b	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x71a379ae	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a62a19	snd_timer_pause
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a8975f	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x71a9dd31	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL	 vmlinux 0x71e784c2	iput
+EXPORT_SYMBOL	 vmlinux 0x71e7d073	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x71f07106	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x71f7de4f	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x71fac85f	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0x72110037	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x7213bced	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x72198510	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x722cd7f4	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x7239ee87	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x7242fee0	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x725bb3c4	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x725f7f06	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x7274ea6f	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x7277be4f	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x727a5eaf	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x72853beb	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x729aaa7a	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x729bb7e1	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x729f7de8	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72dd434a	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x72e519c1	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x7317790e	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x732f069a	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x733ae5f1	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x734457c2	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735f33b0	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x7364d558	snd_info_free_entry
+EXPORT_SYMBOL	 vmlinux 0x7365d9a3	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x737ad9e5	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x737c77d0	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x7390b92a	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x73a587e6	start_tty
+EXPORT_SYMBOL	 vmlinux 0x73a61615	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x73c9f831	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x73ccc370	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x73d20fb3	omap_get_dma_src_pos
+EXPORT_SYMBOL	 vmlinux 0x73d5610c	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x73e7f589	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x73ed3051	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x740c1d74	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741d2d27	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742fa934	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x743c749b	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x74661343	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x7471b9fe	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74a06195	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x74accc57	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x74ae2728	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74dffa0b	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fa9cc6	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7502700b	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x75130aa4	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x751f3abe	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x7544372c	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x754f348a	complete_all
+EXPORT_SYMBOL	 vmlinux 0x7558f31b	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x755c2259	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x7565aeb7	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x7569b688	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x758c3a18	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x75ae80c4	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0x75bc6f3d	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d24058	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75f1ac0f	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x75fde213	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x761ce7c6	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x7658a878	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x76633728	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x766da7e0	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76ad9183	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x76b0190b	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x76c8f145	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76dfb48b	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0x76f408b6	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x76f4eeb3	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x771b837a	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x7723f0e4	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x7725c56c	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x77327b99	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x775ab3f8	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x776853a9	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x776b1d3f	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x777cdf13	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x7783179b	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0x7791193f	icst525_s2div
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c21718	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x77c80dcc	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x77cbb668	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x77d62f72	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x77e77b1b	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77ed1f72	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x77ee1318	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x77f6c690	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x77f6f183	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x782d1e09	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x783b977a	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0x78426e16	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x7845bb39	dm_io
+EXPORT_SYMBOL	 vmlinux 0x784d1395	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x786dc23b	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788f1a43	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78b38b42	release_pages
+EXPORT_SYMBOL	 vmlinux 0x78ccce16	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e2fad2	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x78f6e80c	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x791256cb	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x7912887b	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x79242069	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x793ac6fa	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x794765d1	mempool_free
+EXPORT_SYMBOL	 vmlinux 0x7963af8b	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x797985cf	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x799b3e0d	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x799c5fe4	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x799f2e3a	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79b3afd2	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x79f4172b	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x79fc577f	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a1ef5ac	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x7a1efb2d	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 vmlinux 0x7a2974ff	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x7a2c5d39	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0x7a3e8a42	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x7a3f60e2	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a465706	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x7a535dcb	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x7a60605b	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x7a888b54	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x7a95ab59	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa16e0b	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aafc633	sound_class
+EXPORT_SYMBOL	 vmlinux 0x7ab2a4f1	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ab9ca0a	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7aded2f7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x7aeba59e	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x7aef9f2a	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x7afb3117	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b102551	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x7b15e5ad	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x7b25b0bf	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x7b27d5c4	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x7b283ce3	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x7b28ccd3	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x7b2fb85d	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7b33ed45	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x7b5c8440	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x7b9f62c4	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0x7bd13cc8	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x7bff1ec3	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c180a85	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x7c19fda5	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c47de17	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x7c51805b	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x7c6a3819	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x7c76d174	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x7c893a09	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x7c8cea9e	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x7c975095	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7ca4e0ca	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x7cadb591	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cbb6be6	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x7cbc00e4	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL	 vmlinux 0x7cd6bf7a	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce249f9	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x7cf15140	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x7cf2eeb7	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cf46879	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x7cf6445a	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d024c1b	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x7d071c75	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d0f33e0	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x7d1fadff	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x7d213993	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x7d22f6a6	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x7d39c813	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x7d42a349	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x7d4373b6	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x7d474d41	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d89faa1	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x7d919d3a	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dbe1ac9	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x7dc3b9a0	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x7dc9c352	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x7dcf30df	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7e0ce0c3	up_write
+EXPORT_SYMBOL	 vmlinux 0x7e14c707	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e320809	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x7e32e7c7	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x7e45d4f2	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x7e7d4ed6	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x7e90c4eb	mount_single
+EXPORT_SYMBOL	 vmlinux 0x7e90eabf	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x7e93c79c	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x7eadae98	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x7ec4d7b5	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x7ec7ac56	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x7ed3d760	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f1091a7	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f304b27	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7f35cbc9	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x7f3fea8d	_snd_ctl_add_slave
+EXPORT_SYMBOL	 vmlinux 0x7f4e3c65	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x7f507997	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f5d4c96	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x7f60f970	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0x7f64b3c9	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x7f6b1618	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x7f767e52	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f80b352	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x7f840c72	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x7f8430d8	register_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0x7f8a40e9	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x7f989641	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x7fa6b6db	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x7fb166dc	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x7fd2db08	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x7fde2edb	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7ff3b187	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x800e4ffa	__muldi3
+EXPORT_SYMBOL	 vmlinux 0x802eea5e	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x803948ab	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x8039b3fd	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x803ccd68	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x803eb723	snd_component_add
+EXPORT_SYMBOL	 vmlinux 0x8041d0da	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x8049a1c6	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x805a5b23	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x805c5f09	dst_init
+EXPORT_SYMBOL	 vmlinux 0x806fc3b1	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 vmlinux 0x807d2eec	logfc
+EXPORT_SYMBOL	 vmlinux 0x80829322	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x8084f484	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x808e2b9d	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x80bb9457	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x80c4c319	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x80c55598	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80ec710d	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x80fac67f	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x8103b30a	padata_free
+EXPORT_SYMBOL	 vmlinux 0x8108ac7a	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x810b8c06	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8114ada2	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x811615f2	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x811afa59	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x814e65a6	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x8165351c	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x816f849e	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x817240a0	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x81808369	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81a1f1b3	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 vmlinux 0x81be0f2e	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x81d54076	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81ebb67b	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x81fbd276	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82085080	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x820a61b6	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x82193a97	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x821c985c	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x822137e2	arm_heavy_mb
+EXPORT_SYMBOL	 vmlinux 0x82217e00	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x8230fb58	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x8240b04d	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x8247098a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL	 vmlinux 0x825531be	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x8265b302	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0x8268efcc	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8283b373	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x82919583	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x82a094ba	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x82c305d1	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82e5e5da	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x82f886a1	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x831aea91	snd_pcm_set_ops
+EXPORT_SYMBOL	 vmlinux 0x831b6c53	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x831f1770	pid_task
+EXPORT_SYMBOL	 vmlinux 0x8320bea8	__umodsi3
+EXPORT_SYMBOL	 vmlinux 0x8323a72c	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x83284b73	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x8329a803	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x8339afc2	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x833fcdc4	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x8351f2dc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x8363eeeb	snd_ctl_notify
+EXPORT_SYMBOL	 vmlinux 0x8377fc0d	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x83896cf1	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83a0e0e4	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x83aaea3f	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x83c2386e	simple_map_init
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83ccde48	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x83cd0e6f	atomic_io_modify
+EXPORT_SYMBOL	 vmlinux 0x83f20e59	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x8404e751	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x840bb797	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x8418c1dd	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x842f6eb6	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x84347f57	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x843a77aa	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x8444ade5	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x844ba419	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x8453ec25	snd_timer_close
+EXPORT_SYMBOL	 vmlinux 0x8453f19d	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x8456e9a7	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8482c711	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x84839d15	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x848bccc4	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x849542de	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x8496556e	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x84aaeee5	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL	 vmlinux 0x84b1f1a9	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x84c18966	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x84c286f9	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x84ca65ce	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x84d8c8bc	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x84e80f48	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x84fa383e	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x850da6f5	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x850f2f04	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x8510d6db	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x85151f8e	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x8517868f	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x853392ae	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x8533c106	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x8553ad7a	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x855a182f	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8568011e	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0x8570c1ed	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x8582ebff	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x85885bd6	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x85a41e4b	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85ccea8f	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x85d310be	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x85dd764f	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x85df6dbf	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85ee1d9e	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x860567bf	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x86060dd7	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x8606e98c	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x8618cf60	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x8627db92	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x862bc663	memset16
+EXPORT_SYMBOL	 vmlinux 0x862bd4d5	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x866f0a71	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x867ee486	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x867ef2b9	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86947a34	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x869ccb43	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x86a2e36b	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x86a6767e	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x86a8e6b4	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x86b4815d	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x86cae90c	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x86dce515	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x86eb0c08	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x86eb993b	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x870d5a1c	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x87238106	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 vmlinux 0x8730e56d	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x8738a404	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x875df79b	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x875e151b	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x8785d41f	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x87888f0c	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x879fcf1e	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x87a76eeb	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87b9a5d4	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x87e35027	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x8806108a	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x88102e5a	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x881560fc	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x88201c6f	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x883c12ca	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x88780891	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x887ebd92	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8897fca5	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x88b19f45	system_serial
+EXPORT_SYMBOL	 vmlinux 0x88b1e500	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x88b2ba3d	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x88b469f4	omap_set_dma_callback
+EXPORT_SYMBOL	 vmlinux 0x88b8b518	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x88d48790	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88f52978	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x89070469	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x890816db	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x890909ec	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x891d52eb	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x89380a4e	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 vmlinux 0x893e789b	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x89462254	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x8950116b	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x8987525a	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89fed493	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x8a195767	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a228152	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0x8a2c0921	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x8a3784dc	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a3aa2c0	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x8a3b1285	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL	 vmlinux 0x8a5324a6	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x8a6f6f72	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a89fa00	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x8a9013bf	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x8a966600	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa30959	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ad3a02c	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x8ae3c74d	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x8ae55ca4	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x8af37758	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x8af4cecc	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b03e489	of_get_ddr_timings
+EXPORT_SYMBOL	 vmlinux 0x8b0a9320	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8b1e2d62	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x8b238d8e	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x8b24e333	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x8b475852	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x8b560d94	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x8b5b008a	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b6803c3	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x8b7d0ca9	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b844fb7	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x8b85607e	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba55366	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x8babc7dc	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x8bdb3bfc	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x8be7fa5c	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x8bea3549	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x8bee75d7	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x8bef539f	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x8bfa5421	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x8c06b102	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x8c0a732c	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x8c0de6cd	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x8c111138	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x8c1a1cf2	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x8c20b80f	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x8c24e67d	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x8c33a37d	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x8c415ee5	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8c5d254a	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x8c5f80e6	snd_ctl_add
+EXPORT_SYMBOL	 vmlinux 0x8c653ab5	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x8c699644	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x8c6f17d5	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x8c9bf170	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x8ca77a11	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x8cc3d8a5	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x8cc5acbf	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x8cca32ce	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x8ccb8f76	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x8cd2f5b5	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x8cd608fd	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x8cd8c339	omap_free_dma
+EXPORT_SYMBOL	 vmlinux 0x8ce13cc5	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x8ce1c038	omap_enable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x8cec902b	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x8cfc15a6	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x8d12d12d	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x8d401dc6	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d66283d	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x8d6f124d	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d8e0f33	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x8d9c3c4a	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x8db3675a	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x8dd9e1af	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8dde8cef	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfa0f6a	nla_append
+EXPORT_SYMBOL	 vmlinux 0x8dfefc0d	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x8e06dc1b	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x8e0a2f84	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x8e116a88	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x8e1d8808	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x8e26ac78	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x8e368cfa	fput
+EXPORT_SYMBOL	 vmlinux 0x8e450d2e	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x8e865d3c	arm_delay_ops
+EXPORT_SYMBOL	 vmlinux 0x8e876807	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8e8e3e2a	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x8e9361d8	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x8e980f02	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x8e9c5185	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x8e9fc2ff	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x8ea009a2	of_match_device
+EXPORT_SYMBOL	 vmlinux 0x8eabef9a	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x8ec9c827	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 vmlinux 0x8ed53a93	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x8edbfffb	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8ee379dd	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x8ef8941a	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f03e5e2	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x8f0d6128	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x8f11d387	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x8f23c499	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x8f2ebb67	serio_close
+EXPORT_SYMBOL	 vmlinux 0x8f30b41f	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x8f3625fe	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8f55f844	page_address
+EXPORT_SYMBOL	 vmlinux 0x8f595b11	snd_major
+EXPORT_SYMBOL	 vmlinux 0x8f678b07	__stack_chk_guard
+EXPORT_SYMBOL	 vmlinux 0x8f7b19f1	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x8f8447da	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x8f907a7a	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fe35457	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x8ff295f8	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x8ff583dc	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8fff755e	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x9000133a	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x901b28cf	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x901eb325	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x902e8962	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x9032e0dc	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x90446844	of_iomap
+EXPORT_SYMBOL	 vmlinux 0x904a3416	override_creds
+EXPORT_SYMBOL	 vmlinux 0x905610e8	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x906f5252	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x907603c7	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x908a748a	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x90a443ff	snd_power_wait
+EXPORT_SYMBOL	 vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x90dff590	arp_send
+EXPORT_SYMBOL	 vmlinux 0x90f1283d	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x9107e4b3	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x910e923d	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x9123975e	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x912675f5	sk_free
+EXPORT_SYMBOL	 vmlinux 0x912942ad	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x912b1996	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x912b4728	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x9130a561	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x91391ce1	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x9143942e	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x91440daa	register_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x914d9fd9	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x9151067f	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x915dd883	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x916a19c9	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x917567aa	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x91821917	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x91851972	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL	 vmlinux 0x919ba92e	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x919c77e7	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b2c56c	seq_release
+EXPORT_SYMBOL	 vmlinux 0x91c0980e	icst_hz
+EXPORT_SYMBOL	 vmlinux 0x91ce685c	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x91ee808f	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x920e397e	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x921b07b1	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x921bd254	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x92339634	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923ea194	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x923f5771	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x92420ffc	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x924a0c44	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x924ea057	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x9257f521	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x9258cbe0	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x926176c3	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x9269b96e	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x926aecc1	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x92979775	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x92a77d50	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x92aa3ebb	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x92b73c38	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c13e3e	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x92d7ccdb	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x92e6ca03	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92f7b3bc	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930cac2c	snd_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x93198603	nand_read_oob_std
+EXPORT_SYMBOL	 vmlinux 0x932080b6	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x93208e64	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x93247103	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x934685e8	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x935bfded	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x937f3cb4	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x93889647	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x938e1867	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x9398ccc4	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93dfc26b	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x93f4bd8e	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x93f6974f	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x93fa583b	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 vmlinux 0x940dce76	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x9411b13e	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x9425caca	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x94358138	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x943dc8aa	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x943eb386	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94a8f528	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x94ba746e	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94eae091	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x9504f8f8	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x9516c568	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x95368d33	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x953a1722	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x953be144	build_skb
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955cc2a8	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x95642a31	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x959dd438	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x95a0409d	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x95af9d8d	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x95bd2a40	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x95c44f4d	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x95d3d918	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x95dbe078	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x960d7b6f	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x961536ca	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x9626e24f	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x9645ed0b	pgprot_user
+EXPORT_SYMBOL	 vmlinux 0x9655dc2e	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x96562dee	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x9669f75b	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x9699d7be	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x96a643c6	vga_get
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96ca558f	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96df73d4	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x96fca5f3	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x9709dbc5	current_work
+EXPORT_SYMBOL	 vmlinux 0x97106714	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x97225083	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x9724813a	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL	 vmlinux 0x972b7cdf	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 vmlinux 0x974d2ff1	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x9755163f	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x97580d48	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x9764c340	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x9768a48c	qcom_scm_get_version
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x979e9e59	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97cc4013	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x97cd693d	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x97ee1c63	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x97ef225f	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x97f9b993	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x981509d1	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x9829e2cb	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x983ac031	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x984bfe02	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x98532574	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x9866aa24	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x987c11c7	__pv_phys_pfn_offset
+EXPORT_SYMBOL	 vmlinux 0x98832da8	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x98855d5f	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x989d32ba	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x98a21b5a	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x98b5eab5	proc_create
+EXPORT_SYMBOL	 vmlinux 0x98babb4f	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x98bb6770	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x98c4d86f	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cdca66	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x98cf6945	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x98d2d2a5	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98edc73e	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x98f378be	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x99035fd3	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x99094fb2	qcom_scm_is_available
+EXPORT_SYMBOL	 vmlinux 0x992b68fa	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993b03df	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9961b891	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x996829ea	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x997adf50	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x9980599d	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x9992ce3c	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x9993e55a	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x999bdec0	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x999db404	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x999fa7a9	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x99bb8806	memmove
+EXPORT_SYMBOL	 vmlinux 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99d95144	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x99eff7c1	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a220caa	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x9a22e1c7	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x9a32ad60	f_setown
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a8318ef	v7_coherent_kern_range
+EXPORT_SYMBOL	 vmlinux 0x9a89a7a3	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x9a9cf564	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x9aa2063d	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x9aa9cea4	trace_print_flags_seq_u64
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab7b4d9	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x9acb8066	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x9aebe9b3	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x9aefc755	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x9af54f72	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x9b128a66	qcom_scm_set_remote_state
+EXPORT_SYMBOL	 vmlinux 0x9b1b7306	xxh64
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b2b5481	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b44de84	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x9b4f78ab	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b57e038	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x9b6cee22	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL	 vmlinux 0x9b713929	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x9b99996f	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x9bc2c61d	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x9bd0bf01	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x9be6d627	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x9be6d90b	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x9bebf25f	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x9c183cd4	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x9c2c8610	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x9c44e551	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x9c55e25e	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x9c5a857e	snd_timer_notify
+EXPORT_SYMBOL	 vmlinux 0x9c7419dc	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9c768e52	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x9c78dfec	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x9c93ba95	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x9ca62ea6	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb50213	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x9cbe62b7	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x9ccbfaa8	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9d06ac33	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d118ceb	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x9d393ec1	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x9d51123b	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x9d52680c	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x9d5cd559	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d79ae7d	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x9d830cee	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0x9d8860da	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x9d8ef49f	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x9da85832	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x9daffeab	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x9dba5696	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9e00676e	of_device_register
+EXPORT_SYMBOL	 vmlinux 0x9e065778	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e160629	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x9e3019e0	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x9e311e1f	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e5fde5c	seq_write
+EXPORT_SYMBOL	 vmlinux 0x9e61ba1e	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 vmlinux 0x9e78ea60	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x9e7fd109	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x9e94363c	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x9e9a9cb4	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ec01e9c	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ec72813	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x9ed0f9d0	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x9ed39a54	down_trylock
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9efec127	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x9f15c54c	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x9f2b281e	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9f33e376	new_inode
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f619f61	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x9f72efab	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0x9f79cd25	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x9f943119	bio_put
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9f9a4538	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x9faf5c51	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fc41e1f	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x9fc9d255	tso_start
+EXPORT_SYMBOL	 vmlinux 0x9fda5569	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe8ade6	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x9fea2dcb	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x9febebdc	dev_open
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9fef8cf5	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa01b2dd8	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xa0296155	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa0503fd4	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xa053c5a1	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa06992db	snd_timer_resolution
+EXPORT_SYMBOL	 vmlinux 0xa06df9e1	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0xa071249b	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0xa07348ce	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xa07a3507	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xa08089d8	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa09c5014	snd_pcm_hw_refine
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0aefe3e	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b8c4c0	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xa0d2bce0	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0e4486a	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f493d9	efi
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa10660a1	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa11aa8d8	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa126413d	path_is_under
+EXPORT_SYMBOL	 vmlinux 0xa12ba5e2	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xa12d83d0	phy_connect
+EXPORT_SYMBOL	 vmlinux 0xa13cc8b9	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0xa14391d3	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0xa156140c	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xa15d0131	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xa17525f7	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xa17bd3fc	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xa1839690	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xa1a3e875	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0xa1a58fb0	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xa1b7c1dd	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xa1bacd91	qcom_scm_set_cold_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1ced088	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0xa1cf6f2f	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xa1d131ed	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1eee454	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xa1f48650	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0xa20110a6	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa20f0b7f	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xa22b7a26	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 vmlinux 0xa23a1f22	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xa2409e6c	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xa24491bf	ida_free
+EXPORT_SYMBOL	 vmlinux 0xa24e5bea	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa258b26e	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xa258e03b	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa261f132	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2a44c03	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xa2b15346	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0xa2bfa9e3	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xa2c91c3d	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0xa2cf4bd2	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xa2de7571	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0xa2f6886b	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xa30eadb9	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xa3181d7c	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xa31c1bf3	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0xa3211f7e	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0xa350e362	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xa3577eea	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xa3599b60	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0xa36d1a56	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xa3788197	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0xa3a3f6fd	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0xa3a5176a	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xa3a54979	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xa3ba27bf	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0xa3c00c06	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xa3ca40a6	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xa3f9f273	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xa3ff7a1a	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xa3ffa961	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0xa402acd8	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0xa41216ef	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xa41be12a	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xa424ee57	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xa43799a8	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xa4463b4c	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0xa4480758	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xa4552208	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0xa4602b70	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0xa4610bc6	omap_rev
+EXPORT_SYMBOL	 vmlinux 0xa48f5b09	omap_dma_set_global_params
+EXPORT_SYMBOL	 vmlinux 0xa4a9ab69	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 vmlinux 0xa4b42c55	omap_set_dma_priority
+EXPORT_SYMBOL	 vmlinux 0xa4b7f2cc	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xa4b85a3b	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xa4d1bd7a	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xa4d80bb3	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xa507da3d	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0xa50ab554	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xa5122c7f	snd_info_create_module_entry
+EXPORT_SYMBOL	 vmlinux 0xa5200ea5	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0xa52d6316	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0xa5354e18	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0xa53ccce5	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xa5403e0f	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5684076	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xa56fde1c	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xa5736a3a	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xa59052f0	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa59be3d2	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xa5a01abc	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0xa5a2cf54	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xa5b2e05c	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0xa5bced53	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xa5c4991f	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0xa5cbf0da	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0xa5d7d0aa	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xa5fef753	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xa608b370	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa62fac54	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xa64bfeff	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xa66ac0e6	md_error
+EXPORT_SYMBOL	 vmlinux 0xa67392c0	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 vmlinux 0xa677ecd5	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa68613dd	get_jiffies_64
+EXPORT_SYMBOL	 vmlinux 0xa68f887f	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa6997cf5	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xa6a7a2ad	div_s64_rem
+EXPORT_SYMBOL	 vmlinux 0xa6ac2f1d	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xa6b2005a	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0xa6b75642	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xa6dc0c03	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0xa70af4ce	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xa714758e	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0xa71fd389	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xa72957cc	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0xa73088ff	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0xa73ee62b	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xa7414f13	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa77c1b88	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xa7812bf0	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xa782a529	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xa7919ec9	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0xa79705ca	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0xa79c1a62	stream_open
+EXPORT_SYMBOL	 vmlinux 0xa79c97f3	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xa7b3181c	up_read
+EXPORT_SYMBOL	 vmlinux 0xa7ba5aeb	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xa7c9d45e	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xa7cbb7fb	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xa7cd215f	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0xa7cfd86d	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0xa7d11453	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eb936d	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xa7ec93cf	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa80acb56	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xa80c25f7	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0xa80d03bc	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0xa8171de6	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xa818dec6	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0xa821d758	rproc_free
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa86225a2	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xa89c1e41	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0xa8a08caf	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xa8a1b0ba	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0xa8a2492c	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8b0b003	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8ea969a	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xa8ec7d34	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8f7f280	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xa904ccc1	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xa92a79d6	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xa932e72c	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xa93d4fea	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xa943e9c9	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xa95ddeef	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xa964dd13	gpmc_cs_request
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa978fb8b	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xa9c5669a	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xa9fa09d6	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xaa1e793f	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0xaa2676f5	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0xaa351348	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xaa51e567	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xaa570e74	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xaa67e374	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa7d125d	follow_down
+EXPORT_SYMBOL	 vmlinux 0xaa87a166	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xaa9fa27f	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xaab2340c	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xaab52948	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad7324d	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaadc4533	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0xaae45619	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xaafd9237	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab1de910	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0xab20693e	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xab30df60	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab443b50	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL	 vmlinux 0xab6eeb08	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xab715654	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab740940	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab80ab58	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xab86053b	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0xab8ddc63	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0xab953601	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0xab98b7e8	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xab99b5ff	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xaba406a6	snd_jack_report
+EXPORT_SYMBOL	 vmlinux 0xaba8138f	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xabc9d1a0	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabd11c8c	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xabedfb37	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf5713c	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xac16573a	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac217901	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xac31b471	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac37a0fb	eth_header
+EXPORT_SYMBOL	 vmlinux 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 vmlinux 0xac49b497	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xac4fb651	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0xac516ba0	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xac57b527	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac67d969	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0xac680fc5	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xac7c185b	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac93e645	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xacaa10f4	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb26732	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0xacb26f5f	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0xacb31ecf	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad01f5df	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad04cf3b	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0xad21c28c	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0xad445058	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0xad536b3b	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xad5399ba	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xad6f7144	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xad999ee1	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xadaba7ba	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xadad5d70	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadd22e70	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0xaded48ab	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae009a26	send_sig
+EXPORT_SYMBOL	 vmlinux 0xae25c141	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0xae2d45d9	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae3f1eff	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xae408e43	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xae5a71ba	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0xae6cf6b6	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0xae6dfcae	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0xae73cd34	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xae7c6134	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0xae81f70d	kunmap
+EXPORT_SYMBOL	 vmlinux 0xae8b0fdc	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xae8f6e90	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0xaea8ec10	simple_link
+EXPORT_SYMBOL	 vmlinux 0xaeade62a	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0xaeb35567	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xaed3a953	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xaed81b5a	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0xaed945f9	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xaee1f948	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xaee93978	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xaee95991	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xaef81c3b	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xaf09c71e	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xaf0aa175	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xaf16f615	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xaf1d04e9	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0xaf1e2c71	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xaf3d1fb0	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf50e76d	elf_set_personality
+EXPORT_SYMBOL	 vmlinux 0xaf53f6d7	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xaf56687b	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf847427	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xaf84865e	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0xaf8aa518	system_rev
+EXPORT_SYMBOL	 vmlinux 0xaf9843ae	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xaf9a0a2a	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafab70c1	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0xafb099e7	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xafcbf4ca	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xafe404c5	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0xafed8e48	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xaff55f92	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb03946f2	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xb0428ca8	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0xb0432d30	mmput_async
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb075f3e9	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xb09b2e1a	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0xb09f42a9	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a3c5d2	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xb0c351d2	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xb0d527f6	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xb0d9fbe5	console_start
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0ec77f0	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0xb0eca720	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xb1050ca1	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12a06ac	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb1304f75	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xb13bfb4b	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xb147a855	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb15983d3	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xb16195f1	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb180dfef	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xb1a120d5	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0xb1ad28e0	__gnu_mcount_nc
+EXPORT_SYMBOL	 vmlinux 0xb1aefa40	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xb1b7257e	seq_puts
+EXPORT_SYMBOL	 vmlinux 0xb1b93dd5	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0xb1c38af8	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1d6e006	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e6004e	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0xb1ff8545	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0xb210a568	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb23a1b68	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0xb23b231b	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xb249a391	omap_request_dma
+EXPORT_SYMBOL	 vmlinux 0xb261a856	try_module_get
+EXPORT_SYMBOL	 vmlinux 0xb26323b8	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xb2816f66	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xb28288c8	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb286c477	qcom_scm_set_warm_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb29c8740	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2ba7432	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0xb2d0053e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xb2d48a2e	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b8619	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb30e6e83	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32728bb	qcom_scm_iommu_secure_ptbl_init
+EXPORT_SYMBOL	 vmlinux 0xb335f4cb	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xb3496733	serio_open
+EXPORT_SYMBOL	 vmlinux 0xb3667805	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb385cd24	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xb38c66ea	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xb3917067	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xb395f824	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xb39b2ce8	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0xb39de773	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xb3a401cf	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xb3b53012	dump_align
+EXPORT_SYMBOL	 vmlinux 0xb3ba2fae	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xb3c6a409	bio_init
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3ea98b8	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xb3ed9970	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xb3f237da	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb3f8a44b	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xb41c80b2	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xb41cfba3	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb44bcd29	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xb44bd2d9	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xb4519a8f	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0xb458270c	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0xb46bf613	open_exec
+EXPORT_SYMBOL	 vmlinux 0xb4766752	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0xb476c8f4	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb47961b2	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb4910192	arm_dma_zone_size
+EXPORT_SYMBOL	 vmlinux 0xb499d1a7	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a69830	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xb4aa1ccf	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xb4b660a5	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xb4bae0c7	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0xb4d3b4c7	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xb4d5c293	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb55673d2	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xb560e4dc	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0xb560f033	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0xb561ac5b	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xb56e61b5	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb594347f	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xb59c245e	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0xb5a0fdd7	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5c1f08a	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xb5c261ca	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xb5de8789	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xb5eb2989	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xb61469a4	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb62f451c	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xb636fc63	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xb647b743	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0xb653e33c	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xb657980e	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0xb6580c6c	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67b0d15	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6b6284e	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0xb6ceeb07	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xb6f7f97b	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xb6f89711	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0xb7010fb3	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xb701340b	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0xb7046051	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xb70e46ff	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xb72559c3	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0xb72b5ef9	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xb732d4e7	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb7362c90	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xb739f063	ac97_bus_type
+EXPORT_SYMBOL	 vmlinux 0xb7784624	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0xb7792358	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb78e2050	qcom_scm_pas_init_image
+EXPORT_SYMBOL	 vmlinux 0xb7af233b	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0xb7b4debf	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0xb7c68ae2	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7c9dbe8	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0xb7dd2301	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xb7df0e97	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xb80e46b4	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xb81254fe	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xb82a2325	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0xb8482475	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb84ceb88	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xb85b08a9	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xb864b84b	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0xb8752a56	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0xb88e78d8	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a6ffeb	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xb8abc485	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b6fd63	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xb8bedef9	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xb8c66c45	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xb8d259ca	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xb8e03d73	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xb8ec1c86	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xb8f13938	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xb8f8df83	kmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb90ba572	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb92c5032	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xb931869e	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb95f98d6	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 vmlinux 0xb98484f8	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xb9970a93	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0xb9a21d8e	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xb9a375d1	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xb9a8f03b	omap_stop_dma
+EXPORT_SYMBOL	 vmlinux 0xb9acd3d9	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0xb9bb259c	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xb9d7efe3	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xb9e1f3d6	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9fc381a	qcom_scm_hdcp_req
+EXPORT_SYMBOL	 vmlinux 0xba0fca20	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xba339719	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba50e4ff	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xba6a7236	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xba74b050	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0xba80d0cd	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0xbaa7c8c5	krealloc
+EXPORT_SYMBOL	 vmlinux 0xbaac27e8	to_ndd
+EXPORT_SYMBOL	 vmlinux 0xbaae6ce4	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0xbad6ba8f	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xbad7c596	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xbaf434c2	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb072370	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xbb14eb31	bcmp
+EXPORT_SYMBOL	 vmlinux 0xbb1d2ba6	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb72d4fe	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xbb7f3e5a	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xbb8c09e0	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xbb9e1640	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xbbb1fadc	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xbbc9d0da	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0xbbcff9a4	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0xbbe3f6cc	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xbbf6d497	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xbc0a5a3b	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xbc10dd97	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xbc3368fe	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc4b712e	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xbc51eaf6	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xbc760631	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xbc77e229	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xbc86ae7b	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0xbc8cdf9c	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xbc9084f0	mntput
+EXPORT_SYMBOL	 vmlinux 0xbc95b837	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0xbca55395	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcbbb37b	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcef63fb	fget_raw
+EXPORT_SYMBOL	 vmlinux 0xbcfa6f23	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xbcfab2c8	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xbd1cb754	snd_ctl_replace
+EXPORT_SYMBOL	 vmlinux 0xbd2723eb	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xbd2da1c4	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xbd56a598	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xbd6ccb5c	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0xbd70cff7	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0xbd74b398	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xbd7bbdd0	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xbd820297	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0xbd8555f8	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xbd8b6547	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xbd8ece1c	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xbd953233	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xbda3e89b	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xbde99664	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xbdf12944	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xbe09ddc1	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0xbe0e3cba	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0xbe3ef365	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe58206e	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe5d93f9	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xbe6de80b	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbe7f70c8	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xbeae4965	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xbec39bb5	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0xbed0fd35	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xbedb9b1d	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xbedf7d3f	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbf11c615	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0xbf27f289	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xbf2d2a79	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xbf4d4539	udp_table
+EXPORT_SYMBOL	 vmlinux 0xbf62eaf9	block_write_end
+EXPORT_SYMBOL	 vmlinux 0xbf6ab66c	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xbf70c648	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xbf7347b2	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xbf9186b2	msm_pinctrl_remove
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfdf7bc3	mempool_create
+EXPORT_SYMBOL	 vmlinux 0xbfe25b8b	snd_pcm_suspend_all
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xc0002ab8	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xc00e2564	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0xc01fb424	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc0715e2f	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07734a2	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc07f3061	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a6a8c5	omap_set_dma_dest_burst_mode
+EXPORT_SYMBOL	 vmlinux 0xc0a98385	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b3b186	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xc0c7e53e	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xc0da0e99	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0xc0e02a15	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xc0fb357a	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc104368b	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xc125f4b9	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xc138710f	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xc13a7ba6	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xc14c4ace	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc1520094	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xc156f0bf	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xc15f4ed8	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc18eac73	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xc1c706f8	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0xc1cf6a1f	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1f013fc	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xc2059c64	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0xc21ac1eb	dput
+EXPORT_SYMBOL	 vmlinux 0xc223b92a	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0xc22d51ce	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc271c3be	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc273c338	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xc27524f5	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xc27b30dd	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xc2874ef6	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xc2a32f6e	keyring_search
+EXPORT_SYMBOL	 vmlinux 0xc2acc033	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xc2b1d4e1	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xc2b929de	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0xc2bbe7ed	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xc2c511ce	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0xc2ced01e	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xc2cf2dde	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0xc2d47cf2	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xc2dde112	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e9cbfb	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xc2ede9c5	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xc2f29875	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0xc2fa7bd0	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc30e45c8	mntget
+EXPORT_SYMBOL	 vmlinux 0xc31fc411	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc345f69a	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xc3516148	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xc3573e05	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0xc358aaf8	snprintf
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc383ce21	fget
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc38db45e	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0xc39916b1	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0xc3dbbf57	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xc3dec92f	fb_class
+EXPORT_SYMBOL	 vmlinux 0xc3e597e5	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xc3e71f24	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xc3ea4ec1	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0xc403ecd6	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xc4096cb9	ihold
+EXPORT_SYMBOL	 vmlinux 0xc413ce84	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc41dc767	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc421911a	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0xc4265d96	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xc42f709d	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xc435b733	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xc4410106	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0xc44e4202	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xc45e6fb9	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xc45f8bdd	flush_signals
+EXPORT_SYMBOL	 vmlinux 0xc4657dc8	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47cca9e	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xc484c7f3	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xc48a62c1	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xc48f1117	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0xc49952ac	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xc49cf3d8	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xc4a03dd4	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xc4bbdd16	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xc4c557a6	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xc4cbb323	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xc50e5fbc	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xc510cfe6	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xc51d65af	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0xc51dd6c0	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0xc524e3d0	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0xc528c0dd	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xc52da066	omap_set_dma_dest_params
+EXPORT_SYMBOL	 vmlinux 0xc5383137	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0xc553321f	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0xc56c51b9	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xc581500f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc598e8ed	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc59a7098	arp_create
+EXPORT_SYMBOL	 vmlinux 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 vmlinux 0xc5aa35f9	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 vmlinux 0xc5bc764b	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0xc5c04b1f	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xc5e0da49	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5ee6c48	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60dc5df	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xc6258df7	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0xc6309652	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63ec6ae	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xc6495215	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xc656d6ef	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc671e1b6	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xc697c594	mtd_concat_destroy
+EXPORT_SYMBOL	 vmlinux 0xc6983b41	kmap_high
+EXPORT_SYMBOL	 vmlinux 0xc6b4bfee	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc710c5fe	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xc71453f3	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0xc7173121	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc7196da6	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc74f5494	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0xc7598776	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xc75eafba	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xc76c5e11	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xc76f6666	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0xc77a1aff	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc787316f	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b4195a	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c431a1	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xc7c45451	ilookup
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7ddea89	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xc7e78fcc	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0xc7ea1a5c	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL	 vmlinux 0xc803c4e1	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc821e8a9	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xc8339e24	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xc839db2f	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc8584583	misc_register
+EXPORT_SYMBOL	 vmlinux 0xc85e8bda	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xc8634d4a	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87fa04b	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc88d6c95	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc894eaf1	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b58a25	__memset64
+EXPORT_SYMBOL	 vmlinux 0xc8f3951c	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xc8f8db8a	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xc8f8f405	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xc8fb5564	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0xc8ffca29	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc920ae43	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xc927ef5a	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xc93e196e	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xc9486699	bdi_register
+EXPORT_SYMBOL	 vmlinux 0xc9589b50	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xc95c216f	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc9896254	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xc996e0db	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xc99cbb83	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9b2e2da	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e666d7	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xc9e9d5f9	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0xca07ce12	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca813ce6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca99be5c	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xcaa3d702	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xcab35eb5	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xcab3bf45	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xcad72ff6	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0xcae07897	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xcaef8286	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb111ddf	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0xcb1acbc7	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xcb26ac9a	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xcb322f7f	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3b432a	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xcb404e3f	inet_bind
+EXPORT_SYMBOL	 vmlinux 0xcb606eb9	xa_load
+EXPORT_SYMBOL	 vmlinux 0xcb8c753b	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba7fdb8	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xcbaa4ab4	inet_release
+EXPORT_SYMBOL	 vmlinux 0xcbb821a0	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc2b771	dqput
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd738c4	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0xcbdcf4de	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbddb26e	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0xcbf1dbd0	utf8len
+EXPORT_SYMBOL	 vmlinux 0xcc23bf21	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc30f0f1	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0xcc3a01f2	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc536ef2	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0xcc546623	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcc588686	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xcc5926e5	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc6604d2	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xcc78cdc0	snd_card_disconnect
+EXPORT_SYMBOL	 vmlinux 0xcc82b68b	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xcc83f838	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xcc9070eb	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0xcc940c9b	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0xcca24816	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0xcca887d4	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xccb5b6d9	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0xccc0166b	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xcccb244c	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccd57b97	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfbf057	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd00abbc	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcd08783a	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xcd18c0aa	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd30b95a	tmio_core_mmc_clk_div
+EXPORT_SYMBOL	 vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL	 vmlinux 0xcd7dbbe8	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xcd9a3bff	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xcda9d122	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0xcdab7623	snd_unregister_oss_device
+EXPORT_SYMBOL	 vmlinux 0xcdb43f3a	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdcfc617	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0xcddb3f63	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0xcddef9bb	snd_jack_set_key
+EXPORT_SYMBOL	 vmlinux 0xcde4a1bf	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xcde6b6de	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcdf7ee8d	finish_open
+EXPORT_SYMBOL	 vmlinux 0xcdfc08b4	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xce015f1b	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0xce0190f6	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xce0417ee	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0xce1a0940	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2b4ec6	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0xce2ee1e4	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0xce303016	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xce3ca308	copy_from_user_toio
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce5f56f6	registered_fb
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce82594f	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceab494c	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0xcedd2c52	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xcede275c	memremap
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xceff626f	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf01f610	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0xcf14b6e3	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf1e71fb	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xcf2d4c21	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0xcf37e654	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 vmlinux 0xcf3fac84	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xcf4dae6a	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xcf53bd29	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xcf5ae66a	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xcf7e1d1d	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xcf856892	snd_ctl_remove_id
+EXPORT_SYMBOL	 vmlinux 0xcf86cdac	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xcf9aa2a2	snd_pcm_release_substream
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfd7a310	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xd0178cd9	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0xd0310363	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04b97a1	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04c7414	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0xd04febe9	arm_elf_read_implies_exec
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd06b3ffb	snd_pcm_set_sync
+EXPORT_SYMBOL	 vmlinux 0xd08513ca	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xd087b3b9	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0aec2f5	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xd0b14006	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xd0b7eb0c	pps_event
+EXPORT_SYMBOL	 vmlinux 0xd0ce6264	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xd0d2d04e	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0xd0e3a923	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xd0e9b828	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd1004cc6	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0xd108b844	sget
+EXPORT_SYMBOL	 vmlinux 0xd109778f	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0xd10eb6d5	bdget
+EXPORT_SYMBOL	 vmlinux 0xd1108cf6	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xd1119f3c	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xd11264e2	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0xd1190fa4	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xd11e6023	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xd13033e6	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd166e85d	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xd180cb07	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd18b56ab	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0xd1982651	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xd19eb702	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0xd1a08d5b	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1dfdc18	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0xd2051916	qcom_scm_cpu_power_down
+EXPORT_SYMBOL	 vmlinux 0xd2264fe3	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd2615838	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xd26d4938	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xd273d0ff	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27c447f	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xd2802d5c	pgprot_kernel
+EXPORT_SYMBOL	 vmlinux 0xd288841c	omap_get_dma_dst_pos
+EXPORT_SYMBOL	 vmlinux 0xd28b93c3	snd_dma_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xd297b836	elm_config
+EXPORT_SYMBOL	 vmlinux 0xd2ab0e0f	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e96728	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xd2eb32b9	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd32d6c08	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd33fcdef	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0xd354dff6	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xd35769e8	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35c3075	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xd35f75a1	match_string
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd384736f	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0xd38e2f86	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0xd39fa6ab	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3a8bf59	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0xd3b7df4a	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xd3be80d3	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xd3be950e	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xd3c55b66	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0xd3e8f2c2	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd4011758	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd41213c8	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0xd41c6b80	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0xd4226d07	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xd424da64	snd_timer_global_free
+EXPORT_SYMBOL	 vmlinux 0xd449a4b5	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xd44d37ee	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0xd45700b1	snd_dma_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd45b0c34	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xd45dd4f8	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xd46b54dd	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xd4810165	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48f3784	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xd48fdeef	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4e2f0e4	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0xd4e572fd	snd_ctl_find_id
+EXPORT_SYMBOL	 vmlinux 0xd4f4e478	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fbf63c	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xd5018f99	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0xd5088302	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd508bd90	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xd524b828	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd536d236	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0xd5407fc2	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xd5477c80	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xd5534b8d	snd_timer_interrupt
+EXPORT_SYMBOL	 vmlinux 0xd568f271	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xd57679e9	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xd581f926	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xd5a32954	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xd5a7c607	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5b53c68	__quota_error
+EXPORT_SYMBOL	 vmlinux 0xd5b60897	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xd5ccd7ea	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xd5d1bf53	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0xd5d4439b	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd5e0d741	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 vmlinux 0xd5ebf2f7	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xd5f52d4f	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd6088b5f	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xd627480b	strncat
+EXPORT_SYMBOL	 vmlinux 0xd634a97d	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0xd63fafc2	div64_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xd642f039	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xd6444ae4	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xd651cb02	proto_register
+EXPORT_SYMBOL	 vmlinux 0xd655704c	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xd6582ab0	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xd65f5d00	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xd66319fb	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0xd663ab19	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xd67ecd0f	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd689227b	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6ae2986	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0xd6bc04ff	cmd_db_read_aux_data
+EXPORT_SYMBOL	 vmlinux 0xd6c5f4af	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6e4fffd	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd718462e	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xd7216ce1	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0xd728ca8a	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xd72a8d14	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd73c6c9b	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xd74109f4	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xd746b9bf	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xd7470654	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0xd75342bf	snd_register_oss_device
+EXPORT_SYMBOL	 vmlinux 0xd75463d2	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0xd769dc34	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0xd770ae7d	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0xd77519d8	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0xd78f18bf	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xd78faf03	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xd797b9a5	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0xd79fdf7f	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd7ae010c	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0xd7bfc498	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xd7cc6994	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7eb9792	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0xd7f1aefb	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xd7fc3233	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xd8084fd3	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd80baa21	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xd83dc5e6	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xd83f08ea	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xd8410611	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xd842a477	register_sound_special
+EXPORT_SYMBOL	 vmlinux 0xd849efb0	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xd857ef0e	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xd85821fb	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xd85b3cc2	seq_path
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd860755b	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xd865ea97	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 vmlinux 0xd86c04a1	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xd874aa39	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xd875584a	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xd897b438	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xd89ee11f	krait_set_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8e0d113	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xd8e62ad4	skb_dump
+EXPORT_SYMBOL	 vmlinux 0xd8ea5889	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xd9029f89	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xd924d62e	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0xd93d9a45	file_modified
+EXPORT_SYMBOL	 vmlinux 0xd9497c42	snd_register_device
+EXPORT_SYMBOL	 vmlinux 0xd94c0772	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xd955d2b7	omap_set_dma_dest_data_pack
+EXPORT_SYMBOL	 vmlinux 0xd96959d2	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xd96976d7	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xd96dca40	kobject_del
+EXPORT_SYMBOL	 vmlinux 0xd9722d4a	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xd97777cf	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xd97a4a05	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xd97d3ba1	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd98e1590	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd9a9f5b2	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0xd9b3f3ab	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0xd9b4ab94	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xd9ba7247	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xd9c13b6e	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xd9c65523	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xd9cb6b2c	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL	 vmlinux 0xd9cfe878	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9f4dd4a	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0xda068caf	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0xda19e6b2	init_net
+EXPORT_SYMBOL	 vmlinux 0xda1e1157	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0xda2605ad	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xda2a2c68	nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda6fc0b3	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda77d50e	snd_ctl_find_numid
+EXPORT_SYMBOL	 vmlinux 0xda7a4210	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xdab0b6f6	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xdab6045b	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xdab9ecd7	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdac6f1de	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xdad97f94	__raw_writesw
+EXPORT_SYMBOL	 vmlinux 0xdae647d7	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xdb03a2ab	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xdb346c75	put_disk
+EXPORT_SYMBOL	 vmlinux 0xdb410f01	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xdb4292e4	omap_set_dma_params
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb6c3799	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0xdb747fc0	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb81e2fc	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xdb89353f	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0xdb9ca3c5	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbaae4ad	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xdbbcd42d	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xdbd6c4a1	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbe50832	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xdc0a64ea	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xdc11c8b8	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5c7961	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xdc77d170	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0xdc7a7239	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0xdc8bf0c3	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xdc904df6	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0xdc9c10ad	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xdca91292	notify_change
+EXPORT_SYMBOL	 vmlinux 0xdcb2ac84	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xdcb44b56	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xdcb464a7	console_stop
+EXPORT_SYMBOL	 vmlinux 0xdce9cd28	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0xdcf6d045	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0xdcf91746	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0xdd081c5f	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL	 vmlinux 0xdd226fa9	__raw_readsw
+EXPORT_SYMBOL	 vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd33af60	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd4ffa9b	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xdd534d1e	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xdd6293ad	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0xdd72e5f5	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd7e3192	qcom_scm_pas_auth_and_reset
+EXPORT_SYMBOL	 vmlinux 0xdd81421f	trace_print_symbols_seq_u64
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdda05b4e	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xddb1a633	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0xddbfb534	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xddd1dcc6	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xddd2f1a4	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xdde217d0	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xdded7b2b	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0xddf39c10	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xddf698ad	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xde01a1ba	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xde281cf5	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xde2c779b	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xde2e360e	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xde30ff0d	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde59092a	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xde639247	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xde83bd8e	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0xde8ac030	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xde91fea5	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0xdea83db7	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xdeadcec2	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0xdeba3a9e	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xdec030e5	arm_clear_user
+EXPORT_SYMBOL	 vmlinux 0xdec5d2d8	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded290fb	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdee43385	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xdef5cbef	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdefd9e03	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xdeffa084	sock_release
+EXPORT_SYMBOL	 vmlinux 0xdf14dfe0	elm_decode_bch_error_page
+EXPORT_SYMBOL	 vmlinux 0xdf2719d1	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf3a693d	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0xdf46f417	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xdf4cbd13	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xdf52def1	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf6ad5ae	bdput
+EXPORT_SYMBOL	 vmlinux 0xdf6cd137	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xdf856045	kunmap_high
+EXPORT_SYMBOL	 vmlinux 0xdf8b8eb8	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf931b5f	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfaf9c2d	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xdfb4dd16	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xdfb89bc8	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xdfcfc7bf	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xdfd91ce9	omap_type
+EXPORT_SYMBOL	 vmlinux 0xdfd9b51c	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe80d2f	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe0033d6a	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xe00d8c4d	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xe015751b	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0xe01c2baa	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0xe028a6ca	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xe03c812f	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xe03ef4b3	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xe072aab3	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0xe0744772	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0xe084e537	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xe08527d4	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0a65779	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b8af11	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xe0bef318	icst_hz_to_vco
+EXPORT_SYMBOL	 vmlinux 0xe0c2bdcb	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xe0cba7a4	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0xe0d2e127	snd_timer_new
+EXPORT_SYMBOL	 vmlinux 0xe0d2e675	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0xe0e071e9	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0xe10850be	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xe10f4d00	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe1143604	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xe123b5af	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe124138d	kern_path
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe13a4806	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe1411b03	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xe153f436	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0xe1683af2	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xe1718721	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xe17b8f85	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xe1901546	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe1973cdc	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xe19ec994	mr_dump
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1a9b2ff	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xe1abae60	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xe1b5b9a4	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xe1db0047	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1e8c73e	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0xe1ea84f9	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xe1f5a75c	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xe20a84c7	snd_pcm_mmap_data
+EXPORT_SYMBOL	 vmlinux 0xe2133536	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xe21d9011	would_dump
+EXPORT_SYMBOL	 vmlinux 0xe2274a1c	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xe22df1c2	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xe240f774	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0xe24b4ba9	seq_read
+EXPORT_SYMBOL	 vmlinux 0xe266f098	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0xe282d941	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0xe28e4207	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0xe29fa806	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xe2ac51be	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xe2af0e98	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xe2b23b36	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0xe2bb9783	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xe2cbc9fa	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xe2cea363	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d09857	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xe2d47398	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30e547a	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe32ea58e	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xe330b755	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xe346f67a	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0xe3474dca	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0xe3482046	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xe34b4d6c	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xe34edca3	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xe3889fa0	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xe3a35203	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0xe3a90dfa	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xe3a98d86	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0xe3b39b65	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3d65e88	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f8dab2	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe428464e	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe43aac04	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0xe43b063d	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xe43bc56e	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe44ea292	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0xe44f8ae1	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xe4597d93	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0xe45a28df	sock_create
+EXPORT_SYMBOL	 vmlinux 0xe45ff037	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0xe465af60	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xe467f0aa	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0xe473fbf8	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xe4b73e67	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL	 vmlinux 0xe4ec67d9	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0xe50b5d7f	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xe51002d8	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe55ecaf8	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xe55f9757	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xe55fb141	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 vmlinux 0xe56ff378	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xe57d8df2	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xe5807e62	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5847415	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe58a748c	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5a51809	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0xe5b20297	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0xe5b3419b	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5da1ff6	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xe5e8b1f9	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xe5e9b645	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0xe5f73acf	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0xe609bdb7	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xe60a0e5a	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe60fb4c2	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe615d59b	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xe61706df	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xe61d4dd6	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0xe62f51a4	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xe6434322	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xe65108f1	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xe662844a	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0xe66c0450	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xe693a6ce	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0xe6a8b539	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xe6b35bd4	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xe6c12171	complete
+EXPORT_SYMBOL	 vmlinux 0xe6c3482f	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0xe6e333f1	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0xe6e3c872	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL	 vmlinux 0xe72f142c	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe758590e	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0xe7591ab5	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xe760fcd6	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe7989e1f	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xe7b710ff	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7d5369f	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0xe7f38a60	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0xe7f41e54	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xe800231b	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0xe808d37a	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xe81836ed	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe82d21aa	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xe82fbdfb	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0xe8349daf	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0xe842dc8c	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0xe853c529	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0xe85b28ea	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0xe8852891	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe89a23ed	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0xe8bdcd63	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xe8c0e6e0	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xe8cd0a2c	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0xe8e07f83	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0xe8f53b5f	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xe9038808	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0xe905be14	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe922de8a	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0xe926df6f	snd_device_new
+EXPORT_SYMBOL	 vmlinux 0xe92f031f	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xe9325f03	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe95a27a0	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0xe9809714	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xe99b7111	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0xe9c80974	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xe9c9ee61	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xe9cbf734	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xe9fa41bb	param_set_long
+EXPORT_SYMBOL	 vmlinux 0xea11bfc4	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xea123b70	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xea1a89dc	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xea1f5b88	samsung_rev
+EXPORT_SYMBOL	 vmlinux 0xea3a5acc	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea72aad0	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL	 vmlinux 0xea7d17dc	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea9b8b3a	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0xeaa75016	__put_page
+EXPORT_SYMBOL	 vmlinux 0xeab4e779	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xeabf69ee	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xeadb80c2	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0xeb03b389	__raw_readsl
+EXPORT_SYMBOL	 vmlinux 0xeb09a8fa	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0xeb0b9bf9	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0xeb17fe20	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xeb1b120e	omap_set_dma_write_mode
+EXPORT_SYMBOL	 vmlinux 0xeb30b5c3	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb41a40f	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xeb55a931	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xeb7eaf76	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xeb880db6	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xeb97a421	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xebab835a	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0xebbf2348	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0xebce3ffd	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xebd3cbeb	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0xebd996e4	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xebdbe105	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xebf81d29	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xebfdcbdf	system_serial_high
+EXPORT_SYMBOL	 vmlinux 0xec003019	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0xec27543b	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xec2d9af8	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0xec34e4bb	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xec3710e9	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xec37a2e8	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xec39adf3	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xec3a7cbd	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xec3ff366	config_item_get
+EXPORT_SYMBOL	 vmlinux 0xec407b73	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xec438c2e	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec5397ea	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0xec5ac418	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xec795f1c	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xec7c0cad	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xec7f33cf	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xec915860	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0xec93af54	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0xecae6e50	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xecb4231e	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xecc8d2c3	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xeccd9486	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xecdb7b79	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecede070	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xecf8a3b4	__raw_writesl
+EXPORT_SYMBOL	 vmlinux 0xecfd20f4	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xed0d217e	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xed16d5f6	register_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0xed346f00	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0xed526afe	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed93f29e	__kunmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xed9a7b39	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0xed9bd900	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xed9d9004	igrab
+EXPORT_SYMBOL	 vmlinux 0xedad2883	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedbc97f2	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedd9106d	__ashrdi3
+EXPORT_SYMBOL	 vmlinux 0xeddb9ee6	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xedeb59d9	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xee013c8d	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0xee12861c	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee3e43ca	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xee430208	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xee43fd9b	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xee577032	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee5d2eb6	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee922b77	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0xee9d2175	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xeea8c61f	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xeeaf7f2d	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xeeb38c9d	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xeeb5a4a7	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xeece6bd3	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xeed274bd	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0xeedbff46	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xeedc0c5f	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xeee220e9	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xeeee302d	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xef1c6bfb	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0xef4069e0	request_firmware
+EXPORT_SYMBOL	 vmlinux 0xef41fd19	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xef4cad92	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0xef53b1bc	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xef53fff5	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xef5c6f2b	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xef80494f	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xef85f2e0	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xef8ac53d	qcom_scm_restore_sec_cfg
+EXPORT_SYMBOL	 vmlinux 0xef8ff348	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xefb7bccf	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xefe5b456	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xefec312f	omap_get_dma_active_status
+EXPORT_SYMBOL	 vmlinux 0xefef8f1a	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xeff8290b	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 vmlinux 0xeffae95e	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf01528a4	dim_turn
+EXPORT_SYMBOL	 vmlinux 0xf0181063	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xf0245c02	d_move
+EXPORT_SYMBOL	 vmlinux 0xf02a6977	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xf0359d2d	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xf04a424f	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0xf065bc47	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xf06acbf4	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xf06cee2c	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xf07126dc	kmap_to_page
+EXPORT_SYMBOL	 vmlinux 0xf0736eeb	do_map_probe
+EXPORT_SYMBOL	 vmlinux 0xf07e8415	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xf081357c	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf094a73d	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xf097174a	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a343ed	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf0af50a9	snd_card_free_when_closed
+EXPORT_SYMBOL	 vmlinux 0xf0bd290b	user_revoke
+EXPORT_SYMBOL	 vmlinux 0xf0c8ac90	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xf0d64185	seq_open
+EXPORT_SYMBOL	 vmlinux 0xf0d661e0	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xf0e3d623	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xf0ed2ef4	__raw_writesb
+EXPORT_SYMBOL	 vmlinux 0xf0ef52e8	down
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf102732a	crc16
+EXPORT_SYMBOL	 vmlinux 0xf108715e	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xf11482ff	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xf118f9a9	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xf12c2abe	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0xf13d8927	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xf161bf56	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xf16e46ed	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0xf18d215b	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xf194c20c	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf19c753d	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xf1a014e7	read_code
+EXPORT_SYMBOL	 vmlinux 0xf1b461b7	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0xf1d71b72	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e58098	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1ea6f1c	__bswapsi2
+EXPORT_SYMBOL	 vmlinux 0xf1f45d4e	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xf1fab50c	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xf1fb3780	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xf21e02b9	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xf21e311e	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf2271182	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xf2281e34	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xf22bf255	free_task
+EXPORT_SYMBOL	 vmlinux 0xf236c75e	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2548249	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xf2669a4a	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xf27a2967	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf2a38f18	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xf2a52ce9	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf2ad80d9	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 vmlinux 0xf2bf8e8f	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf3019c49	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf315a1ae	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf321aae1	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0xf32eac31	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0xf33ded46	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xf346077b	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf348ff41	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf34a9199	nand_write_oob_std
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf36302b7	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0xf376b2f0	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf390420b	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3a11c35	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b47498	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0xf3d664fd	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xf3df24fd	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3e675d2	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0xf3f66a37	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0xf415f9a8	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xf4206e65	nand_read_page_raw
+EXPORT_SYMBOL	 vmlinux 0xf423d6e6	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xf4347604	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 vmlinux 0xf43e134a	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xf4423f1b	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xf4450da9	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf455fb44	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xf46ec8bd	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf482b364	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xf489533f	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xf4982ffe	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xf4a04498	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xf4ac62e7	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0xf4b32ba8	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xf4ba246e	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xf4baa334	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf4bb0748	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4bf3a94	simple_open
+EXPORT_SYMBOL	 vmlinux 0xf4d125bc	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f0e463	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xf4f10777	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0xf4f12e67	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf50e2e7f	path_get
+EXPORT_SYMBOL	 vmlinux 0xf5280ba5	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xf52fea92	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xf537313a	km_report
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5458062	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xf5498000	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0xf564412a	__aeabi_ulcmp
+EXPORT_SYMBOL	 vmlinux 0xf5a3eb27	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xf5b666ef	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf5c76515	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xf5e09dbe	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf6006dc3	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xf6021352	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0xf6078af9	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0xf6178130	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0xf618835e	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf61e3404	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0xf628cec0	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0xf63433d1	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xf639cae6	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf64bb437	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xf6516075	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xf652d359	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf67ddee8	omap_rtc_power_off_program
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf68c5f8f	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xf68e1b6b	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0xf6b4d136	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xf6c44d82	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0xf6d635f1	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0xf6dbdf8e	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xf6e14a8f	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xf6e9f511	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf6fff3f2	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xf705fa49	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0xf706353d	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xf70fa6d0	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0xf7163ec9	__raw_readsb
+EXPORT_SYMBOL	 vmlinux 0xf7283b51	of_node_get
+EXPORT_SYMBOL	 vmlinux 0xf72886d2	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf747d527	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xf751396b	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf758b539	release_sock
+EXPORT_SYMBOL	 vmlinux 0xf767f117	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xf76843b5	qcom_scm_pas_supported
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf7801c67	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL	 vmlinux 0xf78201cb	cad_pid
+EXPORT_SYMBOL	 vmlinux 0xf785035c	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0xf78dfe25	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xf7a51a54	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xf7c1d0e5	__brelse
+EXPORT_SYMBOL	 vmlinux 0xf7e940d5	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xf7f1c260	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82cea2a	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf838fd97	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0xf83f5b0c	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0xf85e5212	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xf86f27cd	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf87d635b	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf89ece1c	skb_split
+EXPORT_SYMBOL	 vmlinux 0xf8a36801	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xf8b39f4a	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8c92dcd	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0xf8d88952	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xf8db33f5	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xf8e2fc6d	snd_timer_start
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8f7254e	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf9382d48	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xf93a9bb1	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf96e4688	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97e39dd	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xf982e25c	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xf987a765	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xf98c406b	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xf9a01d18	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xf9a36b47	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c7c8b6	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0xf9d08aca	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xf9d83329	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xf9e8ee51	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xf9ee7f3a	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0xf9f43d4a	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xf9f599ae	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0xfa021f90	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xfa0979ac	skb_trim
+EXPORT_SYMBOL	 vmlinux 0xfa0f92fb	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xfa392db7	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa5e7c2d	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xfa7fa280	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfaa087fa	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0xfaa0e1ef	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xfaa18fe2	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0xfaa9feb9	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfac934f3	load_nls
+EXPORT_SYMBOL	 vmlinux 0xfafd6ad4	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0xfb142dc2	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xfb1d7438	down_read
+EXPORT_SYMBOL	 vmlinux 0xfb24203f	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xfb27a3b0	nand_scan_with_ids
+EXPORT_SYMBOL	 vmlinux 0xfb336634	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb3532b8	has_capability
+EXPORT_SYMBOL	 vmlinux 0xfb3635a3	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL	 vmlinux 0xfb925660	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0xfb9d614e	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbc8c86b	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xfbd85c5c	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xfbdfd3f1	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfbf60254	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xfc01282f	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xfc1fda1d	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0xfc25d191	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xfc288358	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xfc37ae8c	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0xfc3854fd	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f3589	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfc4d7c7f	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xfc52abc7	qcom_scm_pas_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfc5e2191	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0xfc65459a	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xfc68780b	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xfc6bc75e	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xfc6f76c8	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xfc72d9fc	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xfc96e95f	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xfc9b4322	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xfca546cf	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xfcc48fb5	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0xfccb40bc	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcfab9d5	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xfd10c823	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xfd267528	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL	 vmlinux 0xfd31ea97	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0xfd51311a	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xfd5837cf	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xfd58ffdc	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0xfd675b95	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd74f36a	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0xfd796ba1	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0xfd7c8f42	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xfd7da526	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0xfd9905c9	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb4dc0e	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xfdbe5191	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0xfdc80cec	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfde2c815	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xfdecfea6	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xfdf4cff0	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xfdf55334	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xfdff94e0	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe12c197	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 vmlinux 0xfe171764	ioremap_page
+EXPORT_SYMBOL	 vmlinux 0xfe1aef7f	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xfe1d92e0	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xfe3694e5	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xfe41829c	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe578fcd	single_open
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe7f4bcb	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0xfe90c4a6	_find_first_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xfe96dcc2	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfebd83a8	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0xfec4cdbf	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xfedc327a	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff3f8ea3	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xff4eee55	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xff5b59fe	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff7d4437	snd_ctl_new1
+EXPORT_SYMBOL	 vmlinux 0xff7d7ef9	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0xff8c2e5a	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff9610ee	qcom_scm_assign_mem
+EXPORT_SYMBOL	 vmlinux 0xff996450	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0xff9c5de3	netdev_err
+EXPORT_SYMBOL	 vmlinux 0xffb94ef0	_test_and_change_bit
+EXPORT_SYMBOL	 vmlinux 0xffc24c1c	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xffc61b40	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0xffd4fbd1	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xffe8c38f	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfffea8d2	set_bh_page
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x554462a6	sha1_finup_arm
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0xa06be392	sha1_update_arm
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x03e19263	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x096762f5	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x20002dc4	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x26033b4f	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3601cb64	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4919914b	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6a4e34b8	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8d1370d4	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9022c2f7	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x961493fd	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xabc9a544	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xb2ea846d	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbdad9be0	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc2f04388	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc5a103af	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd0dce103	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd18613c6	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe347e175	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xbdd1f466	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x21eb4bd8	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xa473e50c	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xb4f83d96	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x0dabe694	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x79134dad	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x5ea5addd	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x63bb90bd	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xa5e4e8b1	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xa66f9645	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x5335e426	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xc440f9b4	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x0e0b7712	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x19641472	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2664be38	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+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/chacha_generic 0x23e5df91	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x584e4490	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x724a0aa8	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xcb431d8d	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x21353c29	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2d71f062	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3b984c52	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x6f0546b9	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x770fd15c	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x7d69d19a	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x884b48e1	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x97c36204	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd7852fb1	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd828587a	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf60bebb2	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfac3c910	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfe81fe55	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0856d0a9	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0b6a8900	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0f14cb9a	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x11270270	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x26f721a6	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2df7b249	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x35377a5d	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3df3968e	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x458462df	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x63deca1a	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x850c7f26	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xaf409912	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd3295b06	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfa6f07b8	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x0bfd7518	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x719ee1dc	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x970f1deb	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xd53765f6	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x1c6674c0	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x8f95b589	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xe63eacfe	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x208185d1	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xae6df63c	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xc5fd69b8	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xeec200f4	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x3d4719e7	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x93582296	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0xdc04d65c	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-i3c 0x2eb70af9	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x87924168	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xfc2637cb	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x7ac7e34e	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xb2fe63b5	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x3e5b3b62	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x7e743051	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xb12ad190	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xd2f797a5	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x42c9e44c	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xdc8b1702	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0440d471	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x04b77096	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x084f8098	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x09805dd4	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0e630216	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2fde510d	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x39e72cfd	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x434b9c81	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x47b74168	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4dec6b9e	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5010d2a2	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x74cf3cd7	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x97d966cd	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9fae2e28	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9fae577b	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9fd120bb	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa0fa749a	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xae62675a	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xafa00572	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc985a9ad	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xce5632b8	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe9a262bc	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf69f1b2f	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf8aea304	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3c9f7217	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x800cc538	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x9396f54b	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xaffba813	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd1d41857	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xf712b6aa	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0fec066c	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x112e65a7	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1af4ee97	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x28ea1b3d	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4013c9fb	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x50601e69	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x753b59d6	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x764d5da5	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x7776393b	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x949e94f1	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x9fbad124	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb3c60f9b	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xcf1ed42d	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd2886d44	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd2b90ed5	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe3a8f828	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe890d68e	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0c9898a0	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x126f30a5	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x2350d87b	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x30f1ef12	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3c7308ff	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x45102212	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7851be98	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x81d371ab	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc01f2127	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xce665c0d	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xfe09172d	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x232d2120	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x2bdd3dea	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x50b60a2b	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x64f6c34c	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x878181b8	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x1ed5eb59	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x2b433f8b	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x305ffa98	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x92c2e4dd	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xa707e28a	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x5b0d0651	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x7f3a1578	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xdc20e395	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xe20e29c0	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x6a7dd423	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x6cf9825b	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x76fa4f41	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xb8fd8486	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xdd952d5c	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0x4c8aa0d8	meson_clk_triphase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0xa8c11bfe	meson_clk_phase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/sclk-div 0x9b54bd6e	meson_sclk_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x00d9e064	clk_edp_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x03e13d6f	qcom_cc_register_rcg_dfs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x04bf3163	clk_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0650a0db	clk_regmap_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x065574e3	clk_rcg_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0ac38699	clk_trion_fixed_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0cabeb2a	clk_ops_hfpll
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0d678ab9	qcom_reset_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x12ac7e1e	clk_alpha_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x1ed919be	clk_rcg_esc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x205a2ef5	clk_branch2_aon_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2d89517e	clk_branch2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2df91853	clk_fabia_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x33e55c5b	clk_alpha_pll_huayra_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x395868a1	qcom_find_freq_floor
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x40e5accd	clk_byte_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x428b605a	clk_pll_sr2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x46e37d43	clk_rcg2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4a848352	qcom_cc_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ad24f3b	clk_alpha_pll_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x512af5e1	krait_mux_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x51fb21a3	clk_pll_configure_sr_hpm_lp
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x524628c8	clk_rcg2_floor_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x5d5f07eb	clk_regmap_mux_closest_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x64447760	clk_enable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x66489e5b	clk_rcg_lcc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6af41b8b	qcom_pll_set_fsm_mode
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6ca8a88d	clk_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x73f8eedb	clk_rcg2_shared_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7404b809	clk_rcg_bypass2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x749eda9f	clk_alpha_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x75b6e3ef	devm_clk_register_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x76715de6	qcom_cc_probe_by_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7708b673	clk_pll_vote_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x787e8234	qcom_find_freq
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x81ec30bf	clk_alpha_pll_postdiv_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8218c7e1	clk_byte2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x88521ea3	qcom_cc_really_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x911def65	clk_alpha_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9234bc43	qcom_cc_register_sleep_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x99f60998	clk_disable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9cb32992	clk_pll_configure_sr
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1839eaf	clk_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa821f919	clk_branch_simple_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb73a2cd3	krait_div2_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xbbe74972	clk_alpha_pll_hwfsm_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc6ca63a8	qcom_cc_register_board_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc78100cd	clk_dyn_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xccc2b431	clk_trion_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcce7e449	mux_div_set_src_div
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd8fc3e8e	qcom_find_src_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda15b634	clk_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda35a32d	clk_gfx3d_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda967930	clk_alpha_pll_fixed_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdb687f64	clk_branch_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdebfab98	qcom_cc_map
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdf674942	clk_alpha_pll_postdiv_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe3b34b5b	clk_regmap_div_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe5bc1f18	clk_rcg_bypass_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xef6a0edc	clk_alpha_pll_regs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf196beb5	clk_regmap_mux_div_ops
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x120a58bc	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x153cb47e	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x1beb0b5d	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3c50f908	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3d8aaff0	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x578f1fe5	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7c218bbd	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7cae2b78	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7d34afbe	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x9ea19291	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xab0166a1	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb0050766	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc2974207	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf6240404	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xfc03918d	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x099ceba3	bL_cpufreq_register
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x33bd73ba	bL_cpufreq_unregister
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0x5c2673e4	omap_crypto_cleanup
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0xd9009a51	omap_crypto_align_sg
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0xd1e61a23	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x1524afa0	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x6ae038f4	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x33d30b1f	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x7d27261c	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xafc21b4c	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb428592e	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb7ebd024	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xdb187b37	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xe3ab39cb	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x07489fc3	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x09d82c98	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x1fc2017d	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x42f52eca	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x4da56d41	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x5855ce88	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x5864a67b	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x5e27284b	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x63cf1030	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x86117e26	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x8857b575	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa395634e	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xbd853c3c	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc62005f5	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc9ca6fff	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xed15d0e9	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x55598fe3	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xb648c67b	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0xa9d0f05f	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x4e631893	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xbdb226c9	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0197db4f	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x05264872	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x1149896e	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x2bd133b9	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x32378b06	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3322a9db	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3b94cf5b	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x5826a8bf	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x67066143	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x71976f7b	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7823078d	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa10e1687	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa19d87fc	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa2574ac1	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xba55143c	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbfefac93	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc1570469	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf8020a3b	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf9584384	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x22a91c1d	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x23488a36	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2d24bf40	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x4e9590e9	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8331eab2	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8e1f297d	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xab452b6e	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xad29a40c	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc2ec6f25	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xede6e275	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xfe41ed45	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xff6d669e	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x093ef0eb	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3bf20fac	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x40241760	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4025915c	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x56d80804	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x594945a8	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x5fafe1e6	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6eb942cc	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xa1c4957d	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd0127550	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd26473ee	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd5ce2b50	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd7e50cb0	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x06a97094	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x08ff4d5f	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x2b987c2b	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x52f13832	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x8bcee5aa	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb98fbd29	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xe9ad9cff	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x0026d10a	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x105dca30	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x17aff69f	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a215c0f	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x60a97912	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x6c558670	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x88ef1b2c	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x8c735258	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xa5ec5983	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xa9e598d0	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe172ea3a	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe4ac7aa2	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x0f9d943f	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x3bbe05eb	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0xd827fc08	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x25195f22	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x627aafcd	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x8b6b4ad3	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x9222a84c	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xf50a5582	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x25476fb8	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x3893d5d2	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x63d88cfc	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x920f43db	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xd31427a0	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x5dcbe46c	aspeed_gpio_copro_set_ops
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x6f23cb54	aspeed_gpio_copro_grab_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x910170af	aspeed_gpio_copro_release_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x0f61c3a0	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x1ca83172	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x5d67ee33	analogix_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x5fd0fcb1	analogix_dp_stop_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x6b874bac	analogix_dp_start_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x76d90715	analogix_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x7b156912	analogix_dp_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x7c457a80	analogix_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xe4e38b88	analogix_dp_suspend
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xf7025f1e	analogix_dp_remove
+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 0x157e02b6	dw_hdmi_phy_reset
+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 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 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 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+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 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9ed1b72a	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+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 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xfa1ccc99	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204	dw_mipi_dsi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x41361ae4	dw_mipi_dsi_set_slave
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x42ac3b2e	dw_mipi_dsi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x7d5608b5	dw_mipi_dsi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0xddc58f47	dw_mipi_dsi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x02374bb1	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0bcc70e9	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x10902285	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x11737bb1	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x230ac740	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x25db47bc	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2b09ff37	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2f707ca4	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x38df84cc	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x39fa605f	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3aa9bef3	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3b5dd9e4	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x439ee848	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x47ccd074	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4c4d3b5d	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4e5569d3	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5296577c	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x554e99b6	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6d450aa4	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x759d83fa	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x786a7828	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb1766875	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb7817368	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbf8c00e1	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc4d8de97	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd360d7eb	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf1544e03	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf65e0bdb	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf6a079e7	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x1848f4e0	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x27ef85d1	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x75d55488	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x93c917e2	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xa4d9533c	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xdd1acfef	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xe5e6ced3	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x37004b30	imx_drm_connector_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x489e0a6a	ipu_plane_disable_deferred
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x86db7e32	imx_drm_encoder_parse_of
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0xe2878741	ipu_planes_assign_pre
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0xf5c5066d	imx_drm_encoder_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/mcde/mcde_drm 0xbb9dd16e	mcde_display_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2b36798a	meson_venc_hdmi_supported_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2c73cfcf	meson_venc_hdmi_venc_repeat
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2e60cf7f	meson_vclk_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x68d059c9	meson_vclk_dmt_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7da21708	meson_vclk_vic_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7ff1ec99	meson_venc_hdmi_mode_set
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xab5bee2f	meson_venc_hdmi_supported_vic
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0x296d8a61	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x2c3c1746	rcar_lvds_dual_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x6f647034	rcar_lvds_clk_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xbf1e6d03	rcar_lvds_clk_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x7f30b5dc	vop_component_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xda6ac1ef	rockchip_rgb_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585	rockchip_rgb_fini
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x0e0811f3	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x20440922	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xf8c97dfa	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x023f5266	ipu_prg_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x02b6c855	ipu_image_convert_prepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x050f0d7b	ipu_di_adjust_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x07036df2	ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0728116a	ipu_csi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x076bf5bc	ipu_cpmem_set_format_rgb
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0d863214	ipu_dp_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e1801d5	ipu_idmac_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e42bd95	ipu_csi_set_dest
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x118160e1	ipu_ic_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x12ff7831	ipu_cpmem_get_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x13952dfe	ipu_dmfc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15b08a97	ipu_dc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15ec2ba5	ipu_di_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18730251	ipu_rot_mode_to_degrees
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18aa0dcd	ipu_image_convert_abort
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1927a9ba	ipu_module_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1bec1f22	ipu_csi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1e913d9f	ipu_csi_get_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x20e09f6f	ipu_csi_set_mipi_datatype
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x21b24124	ipu_idmac_wait_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2424c9a6	ipu_csi_is_interlaced
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x255a8159	ipu_idmac_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2bff65bc	ipu_prg_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2cf7ed72	ipu_dc_init_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2e825a67	ipu_smfc_set_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2f92d651	ipu_ic_task_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3020d65c	ipu_prg_max_active_channels
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3023d448	ipu_cpmem_set_format_passthrough
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x307644fb	ipu_cpmem_zero
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3166aec7	ipu_dmfc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x327cfbd0	ipu_srm_dp_update
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3346b669	ipu_ic_task_idma_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x339f7fbc	ipu_idmac_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x38885405	ipu_dc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x38e3ea29	ipu_cpmem_set_yuv_interleaved
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3d2e7fb9	ipu_di_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3d8f18f6	__ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e86ea72	ipu_di_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x418a282f	ipu_drm_fourcc_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x41c4c50c	ipu_fsu_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x41cf0fd4	ipu_prg_present
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42d3d500	ipu_image_convert_unprepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x43356a86	ipu_prg_format_supported
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x43637039	ipu_cpmem_set_block_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x46c31dc8	ipu_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4917f47a	ipu_ic_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x498b4c7b	ipu_image_convert_enum_format
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4c179b49	ipu_dp_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x505a9938	ipu_cpmem_set_high_priority
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x51475e87	ipu_dmfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x527f3b94	ipu_smfc_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x53de277c	ipu_di_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5466a38f	ipu_map_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x55767280	ipu_vdi_set_motion
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x558e945d	ipu_idmac_set_double_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5703ac91	ipu_cpmem_set_axi_id
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5757770e	ipu_cpmem_set_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x580d2f81	ipu_vdi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x58e8f249	ipu_idmac_lock_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x590988b5	ipu_prg_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x59c77ef4	ipu_vdi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5b15aea8	ipu_dp_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5cae270a	ipu_vdi_unsetup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x60bdf2ec	ipu_csi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x623722e2	ipu_ic_task_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x63593ec7	ipu_csi_init_interface
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x66e729d2	ipu_mbus_code_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x69e6bbc3	ipu_cpmem_set_fmt
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6fc0ae06	ipu_idmac_buffer_is_ready
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939	ipu_dc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7733682b	ipu_fsu_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7847b010	ipu_idmac_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7a17df03	ipu_set_csi_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7d6ee251	ipu_smfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x81769b85	ipu_image_convert
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x84647a2b	ipu_prg_channel_configure_pending
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8497c7d4	ipu_degrees_to_rot_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x886c35aa	ipu_smfc_map_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x89d1a617	ipu_idmac_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8a9458d2	ipu_image_convert_verify
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8be45904	ipu_dmfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8d812e35	ipu_idmac_clear_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8eb22643	ipu_dp_set_global_alpha
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ece82bd	ipu_pixelformat_is_planar
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9058e289	ipu_smfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9157e214	ipu_idmac_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x91ce1a04	ipu_dp_set_window_pos
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x92027cfa	ipu_prg_channel_configure
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x951a09d5	ipu_csi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x97f08d2f	ipu_ic_task_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x99a190b2	ipu_dp_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9cc5a000	ipu_cpmem_set_image
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9f38e177	ipu_dp_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa0aa8628	ipu_cpmem_interlaced_scan
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa4b0cabd	ipu_dc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa60b144b	ipu_csi_set_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa6daa1cb	ipu_image_convert_queue
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa8adc101	ipu_pixelformat_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa96882d8	ipu_ic_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa97c96a7	ipu_dp_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xad95021d	ipu_idmac_get_current_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb123060b	ipu_idmac_channel_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb433dd2d	ipu_idmac_channel_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb4528943	ipu_cpmem_set_rotation
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb8e66781	ipu_cpmem_set_resolution
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xba458b8f	ipu_csi_set_test_generator
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbccbb2c4	ipu_cpmem_skip_odd_chroma_rows
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbe026597	ipu_idmac_select_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbf983ba6	ipu_vdi_set_field_order
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc3c2cdb0	ipu_smfc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4756b72	ipu_module_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4af2e81	ipu_dmfc_config_wait4eot
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4b15642	ipu_csi_set_skip_smfc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc603fac7	ipu_image_convert_adjust
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc6675aa9	ipu_csi_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc677177d	ipu_smfc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc7bf23ac	ipu_cpmem_set_yuv_planar_full
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc97e7a0f	ipu_di_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcbea3eec	ipu_di_init_sync_panel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcd7fbaa4	ipu_ic_task_graphics_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xce10db35	ipu_stride_to_bytes
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd2408272	ipu_cpmem_set_uv_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd8f285f0	ipu_vdi_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xdc58d17e	ipu_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe22c1599	ipu_image_convert_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe300a959	ipu_dp_setup_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe3bdfcdc	ipu_idmac_enable_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe48d8e0f	ipu_ic_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe6243c52	ipu_dc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe816a646	ipu_cpmem_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xeea12b31	ipu_vdi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xefbf73f6	ipu_set_ic_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf00dba25	ipu_dc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1440dc1	ipu_ic_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1abac7e	ipu_csi_set_downsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf541df2d	ipu_vdi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf969b447	ipu_cpmem_set_stride
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf9b0f408	ipu_cpmem_dump
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x03228e77	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x12ba31ae	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x23038d5c	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2995a8eb	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x29f7da7f	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2c506627	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x38b89571	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4ed6e79b	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x50517685	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5699729d	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5ecba3d1	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x66c5b47f	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6bbeec64	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x75c9730a	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7935057a	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7bdb86d1	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x81311229	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b0c6307	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8ee44795	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x91935f31	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9265b21d	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9fc02152	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa68c10ea	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa73688a5	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xab7be555	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xae7c66f0	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb267751b	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbff40f34	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc62f161e	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcebecaf0	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd5f22d6e	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd7db459b	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xda3d8542	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe0c887e1	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe1554663	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe6dc3d25	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xea929d5c	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf434d01d	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf608ccca	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfbab7fe2	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfcd391a8	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfde8b656	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xff62a4b4	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0983344c	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0bd94125	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x181a2e16	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1b9281b7	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1dc708f6	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1e68ca07	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2a7b4e0c	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x30b0245e	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x375ffcc7	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x39d1569a	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4641ccf5	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x47a0a957	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4aef69b2	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x52c61701	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x56c5771b	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x58cfb321	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5c8cff95	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5cc5e80c	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6769da46	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6cb0381b	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6e05b5ba	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6e929a3d	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7071b959	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x75f0efcc	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8d8c445d	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x907d19b3	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x93114aa2	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9500ace2	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9c1960e9	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa2a30417	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xaca9dc0b	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb03dc6bd	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc2a6df52	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc556b47c	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc7893a24	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcb89bb01	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd4c0df8b	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd54fddc6	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd6532b64	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd681e60c	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd9b429bd	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc0ee602	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdfe08097	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe273ab36	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xd01fed10	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x15bd92f3	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x7fc1cded	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x81b52ac9	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xc8f1ccb7	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xcf94a299	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xf9ce2f32	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0246ed18	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x1a860ed2	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x30e1a8e3	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x419b73f7	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x5df1c10f	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8126c30b	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xc2c1f595	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xcda0cfec	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe0d5ebbe	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xd1808339	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xef99748c	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x21c59a9a	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x7c9e0cf5	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2771ad6b	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x28835b71	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2d0051f0	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2ec273bc	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x796fff8e	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7dd8c666	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7e7978d6	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x84723d67	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x89f3ca69	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x94f52aa8	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb58211ab	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc822b962	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcbf4428c	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdb916479	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe1e37269	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xea5a24f8	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf29f4e47	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf3fc7993	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x55433102	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x7165f323	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x72062f3f	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x03c77135	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x111a46f2	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x134425a5	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2dd8f804	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x38b90e68	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3bc585a2	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x86347467	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9c832d52	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb6cff8a4	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc094eadc	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc21ea6b7	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc7108bbc	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc7c98eb1	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xca63a008	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdddd9961	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xeab94a19	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xec71568d	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xecd7469d	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf3902611	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x10ee9c22	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2c13e7ec	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x3fa116bf	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x57a85e1b	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x60bda706	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9b5b469a	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc3b0714c	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xe7502f15	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xe9613732	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x57d78cb9	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x6dbc035c	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xc4e1b652	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x064e7b20	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x2a5c7c95	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x496f1782	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x582f0b20	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x767aa0c8	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x88932f9b	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xba8b0b72	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xde1a9ef5	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xea552f3f	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x649193ae	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x8940ba44	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xc9c4662f	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xf5919ac8	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x44dbf03d	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0204d0dd	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0bea186d	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x17344530	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x17deb38d	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x293de8ad	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x321a22e3	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3339b154	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x48e82fd8	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5710479c	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x57877bca	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5e564a26	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x637677fd	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x67ac67a8	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6eb3ca95	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x73f08468	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x79b076e0	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x806af33e	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9258e6c5	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9323e1bf	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x947fddb2	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x986b60ac	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9c3841fc	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc7417155	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xda65239f	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xed6cf433	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x9e44185f	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xd6a5167c	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x77fbe94f	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x848609e3	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xab7fcff7	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xe4861bc2	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x0622bccb	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xd98e13dd	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe3d0f2f5	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x86f9d7eb	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xa1789366	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x23e89ab3	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x6bea8d80	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7841b81a	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x94deaeb9	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9a574c88	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb414548e	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb8a01532	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb914cd5f	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc13a028b	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd6056e96	ad_sd_reset
+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 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xaba38152	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xc7aa388c	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xec0a8061	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xfff2647d	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3ff8184d	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x7db0a1a9	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xa93a56cd	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x13a017de	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xdcc321b0	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x80ab22c7	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x14824747	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x3fdbad39	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7678264f	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x8655c1be	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x90c61be9	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xb6b83eb1	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xca3b2062	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe6071aa9	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xfbf770d5	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x706a754a	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x804ac83c	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x9c16ae96	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xf19376cf	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x139116a7	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x186ebc05	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xb1c55800	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x4a1d03a6	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x4f03c0a5	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xec8267a1	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x07f51ea9	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x2060cad3	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x4084d9c6	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x577e8532	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x58415dda	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x5a14ecc3	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x766dd552	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x830886b6	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x8d110bfc	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xa5d77d0d	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb31e047e	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb4e3cc56	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x3a387087	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x57de8816	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x5903473f	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xd50f447b	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x00b3cad1	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x013f1415	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x02ab554d	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0ba5548c	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0eba11e3	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1e087bb4	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20bea311	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20ce344a	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x37f3418a	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3a804f91	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3f8bf685	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4050f5cf	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x487d6896	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4bd39f0e	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x541f4d0c	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5d24972f	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6127b039	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x64089b0e	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8413fc91	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x84c4c2b8	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x85ae8c7c	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8cbd3b90	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x90e32832	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x91e2c646	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x96fbd24e	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9a6b6421	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa7dec978	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa8525ced	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab1c45f0	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaef87d05	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xafe3e939	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb21a3af8	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc14c5968	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc6770a65	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc9032849	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcaf6e40a	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcb3de6b9	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xccdd5a85	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd17615d8	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd1cb3b3d	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xda78c98a	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdbb7d0f0	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdf33f5ed	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe7dc910d	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xef20d048	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf0740499	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf1e95e4a	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf6c15601	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf823bccb	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf8868868	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfd2661fa	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xbb9bf745	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x84f22e87	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x9a425b2f	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x9da9ceb5	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x9ddae297	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xa47cc120	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xb947538e	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xdb290505	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x27018ea5	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x431ce17b	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xa71f5cea	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x03ffa525	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x11a199b8	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x488e270c	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x53b174e1	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x574bd341	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x60a6dda5	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x82e4bfaa	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9df1eb98	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc21634df	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc4fe9045	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc9bea434	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xeb183728	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xf7391bfd	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x7196147c	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd1998ec1	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd86ae4df	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x866635f4	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x9555d103	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xace25370	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xc838b418	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x42ef05a7	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x5d873301	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x62434113	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xcf6bdb40	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x218976c4	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x228e574a	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3f304a10	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6b95d5fd	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x7c5442d3	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8047682e	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xaa85c898	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xaaaff73b	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xcb65595d	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xcb91b130	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xd444025e	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf39a4a8e	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x012576dd	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x378973e3	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x3d7efc6b	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x580300e0	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6dac0426	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x75ae1411	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x92d67982	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x9ef8bd81	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xcf2d82e8	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe7926703	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0x81e513ad	qcom_icc_rpm_smd_available
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0xe8dbdc6c	qcom_icc_rpm_smd_send
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0ca102cb	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x1bc81396	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x47ae88af	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x4a6c0233	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x7a3ee429	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x96549658	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x9ce2212e	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xbd34c518	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xf70b122a	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x08ac3504	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x11775ce6	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x2f0ee824	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x373e8fe0	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x38da5779	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xe9f5e853	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x0e1ca507	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x213d75fc	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x48f7365a	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x5581ce3a	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x67004a58	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x6d7d33ac	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x826a2a04	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x89399910	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xa5f39aae	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf6318a2d	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xfeb985d4	lp55xx_register_leds
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3c6bb732	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x412256e0	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x51f8d730	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x61260615	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x61b9e219	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6bca7fb0	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x8e3c670e	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9af20560	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xa26ccdf8	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xa491d83e	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xdbef630c	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe73791fb	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xf1749d33	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xf3211d48	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x00af95a1	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x06d94b0a	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x157aa73e	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19a50641	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19acd14e	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x1e382318	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x24935482	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x28991160	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x29ef0066	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2cd1be34	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x3ae1afd1	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4f0216b8	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x56bd5947	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5cb0a24a	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65835607	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x68b2f180	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7baca7fe	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x95286aa1	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x9cedcd57	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa60fcee9	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xafae4e81	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb4b03b2e	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb7500cb5	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc1fd1dbc	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd4cd3c1a	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe278bd6d	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe68d70a9	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee926d8f	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf30b9aa6	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf438022f	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfbd03183	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x08540096	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1087b1f3	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1f335fd1	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2835670e	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2a2fd265	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x37a50091	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3d347adc	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x77c7fe4b	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x84536146	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x85ed154c	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8b62a599	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x931e6bdd	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9a4ab6fe	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_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 0xb7526b1f	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc8d1b2b0	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe51d1520	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe56f48a5	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xf6d97a7a	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x03bb93e0	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x3f98942d	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5730f8ae	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5b3dc349	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7147a988	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x8f647e48	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x90136207	dm_cache_policy_destroy
+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 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x5188bafe	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xe0c8f020	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 0x0a922a49	dm_region_hash_create
+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 0x6afb5f20	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+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 0x87c8b20f	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa3c2f0d8	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa3e7e93e	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf71928c3	dm_rh_inc_pending
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x29c25d50	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x46af8087	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x55f98e63	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x64976f82	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x897df281	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x8a56150c	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa433adbc	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa7083b63	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb8dbd4e1	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6367ed7	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3e25192	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x0af8af1d	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x381df390	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x4d5818e5	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x7f5ff27d	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9a54a309	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb5c793ff	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xd2cba613	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xd6dc73cc	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf111cf59	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf14c29bd	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x34f0ae89	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x37842c9b	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x37c0b3de	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x48087214	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x62c3094f	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x7a6737a3	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xd6d03738	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0b8170a3	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x1a1f89f5	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x2439dde1	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x2629a660	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x44eb70f0	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x610b255a	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63222b29	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6cc7b534	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7330396a	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7773c77d	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7e11fb4d	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x88d08a17	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x8d2741f0	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xa3cc9f6f	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xa674ae24	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xb4b26101	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xb93d6d1a	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xfed70cd9	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0aa6af5e	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0c3cdcf8	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x16f67eef	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1b531cba	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1d6f40e4	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x26aa75ea	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x34b87270	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x35003bd4	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x36ca7980	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3af1d278	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3ca306e3	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x419b16eb	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x42a94147	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x695e1553	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6d913de8	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x785cd4fd	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x79adb4ef	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7eeeee2e	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x953d1d93	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa7c551ac	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb473bf0e	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc249ceda	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd8192224	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe6354b44	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xee9cc722	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf281c485	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf37261ab	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf596adbd	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xfeeba8c0	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x464b6321	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xbf7e6bc1	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xf4e5e813	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0xa1247e1b	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xc2c4b03f	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x02371f8a	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x02650b7d	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0e828d10	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1dbfb7c1	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x218775d1	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x28da80ee	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x38b11af0	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4104f59e	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x429cc95a	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5ed8fd80	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x62718b53	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6f012b8e	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x75063a14	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x76ab2863	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7b05f6dc	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7cc5708d	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x81f900d3	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x91386200	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x92d868fa	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x952bbae8	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9bb9e1cf	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9fd1f8d5	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa0c3de6c	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa4130238	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa770dc4e	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbe613e02	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdac54d79	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdf11c849	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe00f4302	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe38d937a	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf9245ab0	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0xf31997af	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x015ebad3	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x5b300109	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x8fbdd586	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x7c3a4c88	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x664894ab	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x68e601f5	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x6b9fe7d6	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x6a2d1771	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0xfa4a0785	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0x0ca58f4f	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x178ab55f	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0xbe7da0b9	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x05c0ec0a	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x14fffc4d	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x209007c9	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x22ba50dc	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x25736b11	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x25d4df40	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x25d8fc96	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2bf537fc	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2ed14414	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x36142fef	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3c0fb0fb	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x42594d68	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x45e3f6e1	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4654f58e	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x490df7bc	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4a27679b	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x55db7603	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5a1af842	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5d2df982	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6136ab93	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x629ae56a	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6ca57576	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6cafc5e9	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6ee5e1e4	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x728addcd	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x75858a02	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x85f23b40	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8b8cc400	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x98344859	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9e231fd9	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9e7635af	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa1742c8f	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xacdc0271	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xadac25f7	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xae8d45d3	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xaf735d91	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb2720058	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbdecccf6	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbe97e52f	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcd79a3d8	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd846e12d	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xda5a2446	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xde0548fe	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe4aeb2b3	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xea02ceec	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xeff7a1b7	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x45c7192d	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x15f3ff0e	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x37427356	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3b86e5b1	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x45716fbe	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x464095f6	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5553b041	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5806eb81	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x59822147	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6920e645	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x897b37d8	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8aa9f8b1	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x9761845e	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc48e2357	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc95c1138	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xcb1fada2	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd263c184	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xde5f69a7	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe63faf0f	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf6411e74	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x03ef6690	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x0764cef4	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1507d4e4	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x17fee161	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1e0aef1e	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2dd50d5f	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x4fd2bc10	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6b0bf17a	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6f4f4ab6	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8b29916a	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb7aa02fb	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbbbb02a1	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd0857551	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd4174985	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe256ee62	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe697ca46	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xea53f1ee	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xec6f2c3a	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf388b32f	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x01cc8f82	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x1b00bdb5	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x6a021803	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xc8feab53	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xca471460	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xdfc5871b	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xe5e54691	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x685a4c25	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x6d08a8b3	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x7309d69a	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x8e60e44b	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xa11fcf89	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x0256425c	vpu_wdt_reg_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x06b4917a	vpu_mapping_dm_addr
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xac492166	vpu_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xbbe61df4	vpu_get_plat_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xd5db8a4d	vpu_ipi_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xdc1d23b2	vpu_get_vdec_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xe7725d90	vpu_ipi_send
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xf6bf8f9e	vpu_get_venc_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3d858696	rcar_fcp_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x4ad5d888	rcar_fcp_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x5fe6f6e8	rcar_fcp_disable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9877c29f	rcar_fcp_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9b46f665	rcar_fcp_get_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1a2e6a10	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x2b7c835a	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5730d80f	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x9a66f62a	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcccdd9c7	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfb121af	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x5c2ba13f	vsp1_du_atomic_begin
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x6f5d499b	vsp1_du_setup_lif
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x9c020568	vsp1_du_map_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xa1e6e7fb	vsp1_du_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xb043339a	vsp1_du_atomic_update
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xb32aced1	vsp1_du_atomic_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xcbe1bd3a	vsp1_du_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x09f9dc7c	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x0ab79f6e	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x40043769	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xac98eee6	xvip_cleanup_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 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe42436d8	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe91869b9	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xfaaeabb4	xvip_enum_mbus_code
+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 0x4d7fa84d	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x054742e8	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x6f609e62	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x3e789630	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x81f5c738	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xc0ee9385	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xd6332a5a	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xdbd92401	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x05e47a9c	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0f2b8fa8	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1175514a	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1aaa6953	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1cbccc4c	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x42fe569d	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x505309ac	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x62541547	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x662076a5	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6a611d5f	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7c2ad93f	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa2c16d15	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa494c740	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xac29f93c	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xba09216c	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbd37cc1d	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd3b1cb97	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdcfe1883	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf0f11add	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf6a580b5	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf793c18d	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0xe2683cdb	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xcd3a7e91	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0xf6942836	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0xfcc8f3d8	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x612e0f8d	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x9639c3c8	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x14763577	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xc46c491e	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xbebba4bd	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x6e6c8ce9	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xa7b43210	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x67add82f	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xbb8f1212	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x607bb4b2	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x09ef0dab	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0f6f24c8	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x21b08428	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x21e840b4	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x27ab0974	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x3c147096	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x55bbd6fc	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x598933ac	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5ae7a241	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6c284df1	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x74d4d1b3	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7d9f6104	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x90a4aca9	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xbd50e774	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc1cd98aa	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xde071c29	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe34618c0	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe4a8a3d3	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe742e7dc	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xec474d1f	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xc97378bd	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xa9280505	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2dc6889a	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x39c40dfc	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4c1d8a71	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x54649126	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5bdf4fcf	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5e7d9b78	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8025d905	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8712ba3f	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8f68970f	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa0b56ec4	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa39d06e4	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xaa2f7a8e	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbdf45df0	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xce0e91f1	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xce4556b1	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xcefdfa82	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe1cf8951	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf85e91bf	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x27e90701	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x9b5ccb55	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xb3e940d7	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xfa4e256a	tm6000_set_reg
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x412c11f3	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xafb929c9	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xebbf2e8c	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x395d7a75	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x46b314fa	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x848dde35	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x9293b0e5	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd0e73bff	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe1408871	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe22a5cac	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe261a8d1	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xef804b16	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xffdb5ae7	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0ef0c2ab	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x143022c4	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x26e098a0	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2755e161	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2f8f1506	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x30943951	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x34162578	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x380d775c	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3fea460f	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x48434e19	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5328d883	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x57146b82	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x58ca2055	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5db280a1	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5db701a2	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5e4d0cff	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6609c52d	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x68c5aa45	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8e4142ed	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8fa8f92a	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x92265eb2	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x93910e51	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x93cae5e1	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa228ca3d	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa5859aea	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb8076b87	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb88a3887	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbaea184b	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd04bb6ff	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe2fbb15f	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe87cf728	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xec6d026b	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xec7c1f16	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xeebc176c	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf0a2559b	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x11759bb2	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x130b69df	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x213eb177	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x26a4a2a7	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x31520408	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x41a2660e	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4e27e1bc	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5c5de1fc	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5c9fbebe	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x650dfbbf	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x71913db7	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8a27e872	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8c0b1356	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8e036dd1	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x96cd1286	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x98f363dc	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xafbaf6a1	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb566d819	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbd6bffe1	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc15248d5	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xeb4f4324	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xef83ccc6	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf2d2ed84	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf6ce9721	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x092ab6e4	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xbde2e933	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xe9dc615f	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xed7fa00c	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xb8462f53	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc0656451	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc3efa21a	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x032b9c7b	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x04f48821	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0aca2bf1	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x122a94d9	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x178a4812	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1c765cf4	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1c957202	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x25a0b77f	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a8a2a40	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x313105fb	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x332a22d4	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x337ca993	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x36ce7b6e	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3cb4a2a5	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3d8cc209	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4b4a1ef8	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4ced977a	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5806223c	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5996575f	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5c1a4813	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5f682d96	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x61808f5c	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x61817752	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x62ec171a	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6a948f7c	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6f11ebd7	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6f783927	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x72cadf38	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7452a690	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x79dbe5a3	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7ada9c07	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7d05d045	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x82db92c4	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x86686a51	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8a049cca	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9194df73	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9568c527	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x95c4c772	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9abfda55	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ae2e198	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9aead4f8	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ceb1feb	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa5c7a3c0	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa693ed22	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaa8d20b1	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbc2fe728	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc5fb10aa	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc716121f	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc8868256	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc1587d0	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcccb8130	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xccdcccd4	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcea92799	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd46a8414	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdbe27355	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe8770199	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xeee27f5a	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xff76573f	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x27ed2092	pl353_smc_set_ecc_mode
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x2eec2ab2	pl353_smc_ecc_is_busy
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x31112d75	pl353_smc_get_nand_int_status_raw
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x80ef3725	pl353_smc_set_ecc_pg_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x84eeb67e	pl353_smc_set_buswidth
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc00d163f	pl353_smc_set_cycles
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc37aa3c1	pl353_smc_clr_nand_int
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xe2603369	pl353_smc_get_ecc_val
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x46c12831	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x5205e644	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x78934254	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x25fa15a5	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x27e15b5e	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x5d6ffe1d	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xc04421b2	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xc33b3e0c	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xefac6073	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xf3267ae8	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x593c064d	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x60412d93	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x7319ee40	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x77260cdf	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x7e37a6a1	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x886967a2	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xdc03e5be	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xff864dbb	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x2f496343	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xd25297dc	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xebe911de	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x16b00e0c	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x9db33670	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xa1f44302	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xa3078a74	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb19492e3	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xc2693e89	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xf17d1a67	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x2daf8331	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x34a18123	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xd1f71bec	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2f447192	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3b9251f5	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3b9f8db5	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x52dd8997	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x61cc2243	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x78a74cf9	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x78aa90b9	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x80167d4d	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x801ba10d	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x89c84839	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x951d1978	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x98c30afd	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x98ced6bd	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9fa2cffd	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa5efb85f	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaf421100	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaf4fcd40	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb264e635	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb2693a75	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc3236041	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc32ebc01	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd837afd8	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdbf617f1	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdbfbcbb1	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xec770c0c	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xec7ad04c	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf151fb39	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf15c2779	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x89976476	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xab370219	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xba682001	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xbf2714fa	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xed92aab2	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xff9d5fda	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x47ae87cd	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x57dcd56e	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x63b0437d	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x729f5a90	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x7902c1f2	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd71bb3ee	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd7578ebe	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdaa7ab10	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf0705a57	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf5c4ff4d	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf8da442e	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x70edc364	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xcd0cd8e9	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xa0fbdecc	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xafbae34e	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xc9408fcd	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xd13627e1	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xdb70441c	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xe7e4026d	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xeecaf484	rave_sp_exec
+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/si476x-core 0x0c88acc3	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0e6e48ad	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x12785649	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1e206414	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2af5fb5b	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2cc4d17a	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2d8b1852	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3bfe3c1a	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4652e7d7	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4e27cd0c	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x527bf467	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x55d580ce	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x60aead2d	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6dae2eee	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6e56e808	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7035d647	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x79553d45	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7c42c526	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7cdbe5e5	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8333b61b	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x92b72f38	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa4d3144d	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa9d9841f	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaaf5c52f	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xabbed32f	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbedb73c5	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbededa0f	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc0accbb5	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xca7ac6db	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd181721c	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe6c478c5	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xef711163	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf85e46f6	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xface92de	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0xc16da0ac	ssbi_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0xd2549cb0	ssbi_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xa7251054	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xf2b3f6aa	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x91456646	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xafbe8e3d	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xecd766a3	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xf82444f1	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x1aeb3950	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x3acdeb88	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xc57d4290	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x51608163	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x0a11545d	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x2ad4a9f8	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x368cb782	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x5222e4cc	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x59f81c52	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x61c2850c	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x76998654	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x16d284be	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1d132266	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2e2a1fe3	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x39d6f57a	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x48d15536	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4c03833b	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4c9516e9	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x83d83e46	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x86f31118	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x896ca368	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x934a8bb0	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa1f62b18	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa54e422b	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xacab2fd6	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb8e86b1c	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb9db5ae3	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbfad98ef	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd5c12495	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd875dfc4	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd9d84c92	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xdad7f073	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe54ac419	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf8e4ac5d	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xfb128889	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x16b09ba7	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x36ea3072	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3d80ddfe	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3f7b3af6	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x5a280225	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x60cd5983	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6e3560a0	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa6527c9f	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa696c512	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xce6ba22c	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf17d43a4	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf63e0379	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xfd675159	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x46c4bba5	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x7da508b1	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xc096f67b	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xefa3caeb	cb710_sg_dwiter_read_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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x0a907f7c	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1dfb9fee	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x357f22fa	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x41ada53d	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x6579e0d4	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa4ef1c1b	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xbd565740	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xbf2afe78	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x03186c79	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x205053f2	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x224a54ea	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x53acb694	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xd3512d3d	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xdfb6e1a1	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xe0e31bc8	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xe4e972fb	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x5b5fa797	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x70275b75	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x38c8e4f1	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x7a3fd6e9	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xca253309	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0x150c7550	renesas_sdhi_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0x2330d8a6	renesas_sdhi_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x17d2dea7	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x42917ad6	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x4f6296b6	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xa38949b1	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xae819d69	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xaf85731c	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xd6ab973e	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xe48cd10f	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xe6904c9d	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x1207bf18	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x2d2e9af0	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xd030bf66	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x32ba0804	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x4ce843d4	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xc143c782	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xa37d6e83	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x1de00838	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xb05a998e	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xe8546063	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x9cbe82aa	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xbd91d37d	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xac341fd9	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xd7d378d7	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x0a82a93c	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x5c2f8d49	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xfbc46d9b	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x19a190a7	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0xc0501a05	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xbd64e908	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xfe2bbf79	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1212261c	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3070c95d	ubi_leb_write
+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 0x44e9592d	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x57b933bc	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7c21a286	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x86007b3d	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9d14f208	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xae05c654	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb1be2fc9	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xbefacf70	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc4902abe	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd618958d	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xdcbcc95e	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf9db32a8	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x0bc988a0	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x2049935e	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x218f329b	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x3b9966d2	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x744a0bcd	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x74ded7a3	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x7a06d05f	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8aac5c90	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8bd9c088	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xbdb56bfb	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xca4e8e34	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xe8c36080	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xf48363f5	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x03d9e73b	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xb8163de3	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x6b8c2234	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x6f4c1ae5	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x8061971e	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x9464cb16	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa18838e1	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xb5c782d1	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0d3bb1cd	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0f653254	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0fbfd67d	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16e5f15d	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x245e46e7	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x2a703f8c	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x360117ad	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x40e9f6d1	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5298c52f	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x553c3a21	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x5d5f6fc9	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x84f8e8b3	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9f980c54	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xa2fddccc	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xaa5ecdb9	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xb1e35aaf	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xbcd4f226	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc0c9e880	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xca7bb35e	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd0db26c8	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd378099c	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd39bbb03	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xee484a0c	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf0a533d0	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf0e3f1df	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf42a9dd2	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xf697e775	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x07708db7	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xcdf6c6c5	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xd90f6301	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xe3cb9862	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x0368567c	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x0ceccdd4	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x120fb08a	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x2cf5c787	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x5b5e2f68	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb14689f9	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc1dd8700	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xd386c183	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x4f8ad6e2	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb38d9f08	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xde18e7e8	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xfcae2866	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xbebabcc2	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x0ededc8f	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3425bb84	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3b2df953	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3ee367db	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x51f2a513	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x52dd28f1	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x57b4e77b	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x62e44f48	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7a1251f1	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x81304b30	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8bd2c7d6	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9ea973c8	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xac4c4806	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbcce70d2	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc2637daa	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd68a6e51	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xece4cbba	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0801b548	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x209bf6a3	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2145ad66	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2a153fac	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x429191ca	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6907768a	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6a86aa5f	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6efd5036	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7ade2b1b	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8fe15f3b	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x92291a78	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x926384c1	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9f3fe2c3	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb52aa7af	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe1fc7267	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf90a646e	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0xa0e68634	arc_emac_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0xbc8037eb	arc_emac_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09455c6e	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a06137b	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0baeb92b	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bed3757	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e21d557	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e3ef6f8	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13e40af3	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14c0c5ef	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15c83aaf	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1672dce7	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17412a6a	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x176c962b	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17825c0b	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18b35471	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c17d192	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e4e126f	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1eb5bc67	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1efd6772	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20a9850b	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21bdbf66	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22dea30a	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24e4a3f4	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x260e7810	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28a61f77	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31fa4fb2	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3202450e	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3210c674	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32f2db92	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x342b2da6	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x351de0c5	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35259176	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35ee899d	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x372f053e	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39700781	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b750d57	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d23821b	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46aedd96	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4aaba1d1	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50f0cecf	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x524bbc7d	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53160d1c	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5432205b	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55f802db	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56a1e722	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58a1e9f3	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a442637	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d225c32	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e50c787	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e7b1936	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f560d6d	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x603cf39a	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61f2ee28	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x620ea3f9	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6288d0cc	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x650c9f11	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a22d9b8	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6be9e349	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6dd1ef8c	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e34f736	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f9828e6	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71704e00	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77e6835a	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b2aa250	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7de72411	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x816f7ee6	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81c8a601	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89977631	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92e4ba65	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x931e7d82	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9363018d	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95aa6908	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95c949f1	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x992cf90e	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c6652d2	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d620a33	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fa65087	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3736822	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5e7e137	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa62602be	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa717efe9	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb373e6b8	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4f600a0	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5bc48d9	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb89baac1	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9da1909	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc172d62	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd368373	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbfda1161	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0433bdd	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc15ce07c	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4be3430	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7bdacea	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc88052fe	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcac0ee05	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce344b2b	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce6669b3	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1099a03	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd205d0e2	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4fc5ca7	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd9dfa04	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe13a844a	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2f95afa	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2fe5170	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe379a91f	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe447aed6	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4ece270	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5f81fe8	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebf54afd	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefaa89a5	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0384f0c	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0eb619c	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1492b38	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3cd1056	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf452d1e0	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf45ae4da	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf48d05ad	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf68f77c4	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6a7c5c7	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf71b47a5	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf76de0f6	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf814cf74	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf944c226	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa6657e5	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa86087f	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa9fb5d2	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd39161d	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x039612ff	mlx5_core_res_put
+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 0x0c112573	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x130e727c	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13a85bb0	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a9057e8	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f343e04	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23bed73a	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x240b4e45	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ce2ffba	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e860b38	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f939b52	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3526c5b9	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3922eadd	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39a632b6	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f04c682	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42a0cdc6	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45545700	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49062756	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b6aec78	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x514dbcec	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51d02cc8	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x530b2566	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x54689b21	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x54877d08	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59703c70	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61343214	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x63aa05ce	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x653f8f7f	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6747d9d8	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x679a58b8	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67ea6679	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c91c609	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6cc36194	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d393dc4	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71c4eaaf	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x746ae8a2	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b08dbdc	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d584572	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80b28e0a	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84900cbc	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x858083f8	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x85e6182d	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8717b505	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8745da6d	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8fdc8677	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x901e4588	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94289bf9	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94858446	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97c6747e	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e7caee9	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9a17665	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad3ca7c1	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb376e7b7	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb8b2090c	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb951bb56	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9c54588	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb44f47d	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc18cad81	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc18d5335	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc60c80af	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6856482	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc83c4646	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9337104	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9b4bc72	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca4e530f	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb09ff28	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcbb33154	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf4c0d4a	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcfc09c57	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd163f3bc	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd49e1b8a	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd72ded75	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf3b0dfd	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe56b1f7d	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe837ca58	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed9623bc	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee76024e	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef6358e6	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefa4a088	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf38c126c	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf606d81d	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8d5bfb1	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf960cf84	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc9ff55f	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfcea3c46	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe86ae41	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x1aac2637	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x2695f52f	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x4be2f862	regmap_encx24j600_spi_read
+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 0x8b0d47e2	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x9e2577ba	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xbbf18282	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xf27a0cea	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x185dfba6	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2667a086	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x40f56f32	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x4eb24229	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xe0d474bb	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x539a1474	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x6e616e36	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xaf512abb	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xe4cbcdba	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xb0337a9d	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x2242bc73	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x2a5f92a0	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xc4559673	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xc58e64b6	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xf7d024a0	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x137581d4	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x9020160f	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xb67f890e	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xebc19601	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x7878e3c0	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xbac08fbb	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x14e96a60	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x1d984784	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x20742696	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2152693b	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x31e90d2e	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3ef8e4a8	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3fb9c4ce	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x406332be	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4fe5440b	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5c357631	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x60cee338	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6322bbc0	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x634b68ab	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6a7d0bf9	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa51ddbf4	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb6172d2a	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xbdac6fdb	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd2cfcf87	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x2a15e0e0	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0xa75a7a87	mdio_mux_init
+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 0x1e6d0c86	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x5d0c69db	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+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 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x938b209e	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xa82222c8	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x055aa4e8	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x1cd9891f	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x46d2d20a	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x4a4ea907	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x75011007	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9940bf31	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xcd9721ce	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xe3fc3233	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xfc02e999	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x158aec17	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x4470ffa3	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x457ad868	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x45d7aa54	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xc67b910b	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x06002205	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x4fbd5fdf	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7ee5e60a	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xb8d6c8d6	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc23b42ba	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc34c1974	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xdc790e12	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xea02ebd7	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xfe39f042	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x03f327dc	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x2803a817	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x46899d7d	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x81955315	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x9dd6927f	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xa0b11657	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0356a301	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x22496c7b	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x24fca5e7	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x26345a4c	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x33454b97	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3536f958	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x373a7b28	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3cfb9a2e	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3e7065de	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x402ee52b	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x47b68630	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x536f6c4c	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5d7ed613	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7684a6fa	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x76a5495e	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7eaa513a	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7f581028	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7faf9530	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x83195aeb	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8977b2cb	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x96153f7f	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x96f67e6a	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9772d1e4	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaf083519	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc5aaafd3	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xce368cc4	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdaa53ff7	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xebbeddbd	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xec2d72d6	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf6cdfb29	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf8750e2a	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf941ffee	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xffed220d	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x096696b1	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x62538ae9	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x7467f702	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x7f6add03	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x167a6d40	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x20e31bd4	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x229412d3	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x5cb8ca6c	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x627546bb	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7cdba609	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9859498c	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x993cd3f5	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xa1fa0bd5	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcace7694	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcb7ba646	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd49c0e37	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xdad54e11	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xdf1b3352	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe024fb1f	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf12194dc	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb1534eac	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0c8b7049	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e64a3d1	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5a15464f	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5ef32d55	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8b2f2f8	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0189c36f	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0208096e	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0441e959	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x05e1b30f	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x09f207a2	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0abe3d43	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0ae7429f	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0b18bec2	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x149abf76	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1a6a2c7f	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ac9e29c	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1bcd6446	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c48129a	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1fbf5cf0	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x28a7fd3c	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2c0f571f	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3138c82b	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x32f0cf1b	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x33e5921c	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x370f7209	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x37b61f33	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3c776efc	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3cdb0cfa	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3e89cfce	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x43d3d1ea	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x46b0fc14	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5472c7ec	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x55d6d0a2	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5ef4a44d	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x677d9366	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x72ea3db7	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x75393e10	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8716e510	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x895f1a74	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8b28c931	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8b3f9cae	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x93160e9e	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x94768673	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x961e6b13	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x97daf09d	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x987401be	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9bf39f1e	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa0378a72	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb1e39cb3	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb269416e	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb310a720	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbf8e733e	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc4cc6ce1	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc960a863	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xca12375d	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd5e29cb8	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd98efc7e	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdde6bf61	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdec9e66d	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe1ab5b7b	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe5a5fc3e	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe73a66a8	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf3defa08	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf910e5a6	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfc542ced	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfe42ac58	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x0ec6fe5a	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x215b2c92	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x25c004b0	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x29e7dc22	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x4f73a939	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x633992ed	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x6ae6cf19	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x90272238	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xd34dc58a	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x03c52446	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x10c1a37e	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x12ce8aef	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x525a1b44	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x527a7649	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x61a0165a	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6ddbc954	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x76aef5e2	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x83db6850	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x98240204	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa10dcb7a	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xadf0391d	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc81d001c	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xe356ac96	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xeec58881	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfa4fe921	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x37afdd06	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x6a15da30	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x6aadf908	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9b57ba19	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9d343e75	lbtf_bcn_sent
+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 0xc8d23422	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xdc03c417	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xdfd01ed2	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0a9d2e19	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0aa70bd8	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0bb1369e	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0bf11d70	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2328cb87	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x25c6ef6e	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3e7de380	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3ed7f3a1	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x44ca2a75	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x57b4454a	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6b6ad241	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x760b109c	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7907c04c	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x794a1263	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9877f8d1	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa9277b96	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xaf8e3510	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb7464fac	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd5e971d0	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe73b78ea	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe78cf97f	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xea4100db	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xee9440a7	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf910dd07	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x037a64fa	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x120293f9	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x150f6283	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x16177bbd	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1c8f6493	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2410418a	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x26a43730	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2d67539b	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2fd3ede2	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x33fd35fb	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3b04f2e2	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4297593f	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4cef736b	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x550f6eca	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x55860b35	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x579b1d4e	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5eb9b697	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5f0d29cf	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6c0e63b6	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6c4e8859	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x702eff00	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x71110133	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7c0155da	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x80530abb	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x84324b7d	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8610e67b	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8f2f3313	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8f75b414	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9160f35f	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9457ad05	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x962a979c	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9642c5b6	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9f85d14e	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xabc9b876	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xae0b3afa	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xaf214b59	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb21d098d	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb8827025	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbec4e566	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6d120f3	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc72af24e	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc904a527	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd6c47ea3	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd7edd999	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xda52a5e3	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdbeb3e93	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdd49eb65	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xddc75f93	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe3e0499f	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xec862a91	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf235a6d4	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf77e95f6	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfb313a5e	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x2e8e8fa9	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x303a1efb	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x4b7d5393	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x5861c279	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x8ae8747a	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbcc19d1a	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xd9b38f05	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xe6221cff	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x0f12cf8f	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x24c343f2	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2aa5979c	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x54f3d874	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x910545f4	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb0dc88ea	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xff4be3c8	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x02767d28	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x03e27b31	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0423273c	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x065161e6	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0fa1fdfb	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x108fc47b	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a6c183b	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x24d1711f	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e32c7bd	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x30015a1d	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3426b4e8	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3c4c9cb1	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3c964b26	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3f321e7f	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x424aa96e	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x42c5643d	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4db1db96	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4e317023	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x501d6445	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x515d1944	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5316ca11	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x549df5b0	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x55e62dee	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6795b9bf	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6a021df7	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6f9c8750	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x71fa2b30	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x753b95eb	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7f12e91b	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x85b07339	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8722d4ca	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8b764994	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8c32646b	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x97256d24	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9bc70cbe	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9e866ab6	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa02f269f	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa08a87ca	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa0cd39cc	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb6ddb118	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb7026314	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc0874374	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc6ce0c83	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc74fda29	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xced30475	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd1d913c8	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd5cd05ac	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd9300eac	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xde1f62d7	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe0e33a4b	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe30b44ec	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe4b018e3	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe7aded9c	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe8c5240d	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe8cc8c95	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xebcc6ef7	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xec6a0ba4	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xec819055	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf09aefcd	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf2127a2e	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf4e8b0f4	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf58dbea5	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf597daab	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x56402169	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x57f537db	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x828ee827	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xaad29c83	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb911ce12	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb9f4c878	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc753b6fc	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0cdf58a6	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2536c677	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x26d79bd6	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3b15d5a3	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3f9337ab	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4046597f	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4184f88e	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4730daf9	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4bdd3a63	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5b697283	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x677afc09	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8b4ada65	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xaecd9673	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb11d329e	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb968b78b	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc2446193	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd75aa438	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xda101e39	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe6b32529	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0d4c67c0	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1ea80b3a	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x922b991c	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x926b5391	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x97f70f33	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x9a0a5a1f	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb7fe84da	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xba1bef3c	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xffdf02b1	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x01783318	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0e71e453	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x103fb6a8	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1057f081	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x11984b53	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1325ca30	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x15fb6d6b	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1aec7c17	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2106de78	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2b49d310	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2f6a455a	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x34f892d2	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3d680d9f	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4837ef56	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x54d1414d	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x54fd827a	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5c784ec2	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5ea01314	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x61016fdc	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6861842c	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6d82e7c3	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x76284aef	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x77b8f55c	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7cf83400	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x80117cdd	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x84540351	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x886573a0	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x88e1a776	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x91f16152	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x93b8d70f	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9f4af9c8	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xabcf5e66	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xae4c7884	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb2d9e844	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb7d79907	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbb73a408	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc4c2620b	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc8b9fd74	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd994a6c0	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xda964729	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdcdb5345	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe2966645	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe408d656	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xef577074	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0419c3cc	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x05b691cb	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1027c2d9	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x10f40256	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2f812fc0	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x35773b6d	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x403c41ea	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4e05a08e	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x73552a5b	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7e0d1be3	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x98d05add	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcab1c193	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd0538e9c	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdf7d6ce7	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf058ba2a	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf7f294af	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x002b997c	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0257c7eb	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x049c817c	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0ffa36b0	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x124e7839	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1256d81e	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2068a117	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x21dd51a9	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x21ff21ca	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x23e67f9f	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x23eb5b77	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2feae663	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3115cca1	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x38ce4a90	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3d4678d7	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3ff35732	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4174c364	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4a721a05	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5803e7c4	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5f7d82f7	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x60ed25b5	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6aaf4719	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x783ffeb5	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7c12e7f0	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7e9d4474	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x842a442f	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x86d77678	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8b511888	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9d5590fe	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaa6731b3	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb5e632c2	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb8027af1	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbe99f31f	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbf0d8394	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbf2da529	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc00db6c1	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc99fe74c	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcdaae08e	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcf516234	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd07527eb	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd094ebfb	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd28c2153	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd34f2c8a	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdac95356	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xed1167f8	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfa4ef7fd	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x3d5e68a3	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x584b0978	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x96ecd36f	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xe7d54898	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xfcc5cfda	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x38dbef90	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x90cf4645	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xd221f4d0	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xd27571bc	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x104a54de	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x15cfb9f6	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2ac8398f	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x39665348	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x3ceaed06	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x44d21508	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7884e69e	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8faf81af	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x908a9a78	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x98685f05	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xae1d2727	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaef4e869	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb856567f	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc719bfee	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xdaaf2087	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xea1b1806	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2cc3b177	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7a35a99f	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x99be49ec	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc41ae2e3	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0357a319	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0428db5d	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x06707686	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x110200dd	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1958c701	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x20af6896	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x251e8870	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3570ff71	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3ac65a99	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f1be34b	rtl8723_phy_query_bb_reg
+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 0x42a7b409	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5f08733b	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x690ff0f8	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6bf52786	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x79bf9ae7	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8af15051	rtl8723_phy_txpwr_idx_to_dbm
+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 0x8d66811c	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x97b37a72	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbecbe54d	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbff1a087	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcbd825b2	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd31bbaf3	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd84aad96	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe1a42c1c	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe5589f3f	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x01a7ba5c	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x136de0b4	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x13c87ebd	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1516b552	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x16c4cf54	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x18eef5c1	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2579bdf5	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x36243aa5	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37b993b4	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e4e6f04	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5f2e3e56	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7193004b	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7ea43c70	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x85884327	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90a85edc	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97c1c444	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9c4d63d8	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9c6341ee	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba17b119	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc96086a4	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd282efb2	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd2ab215b	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd8de733d	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf76e7972	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf8ff6add	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfa57e831	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfb1808e9	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x7f46aaa6	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xc2146d88	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xe33127e1	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xf7988495	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xfcf4811f	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x47762b91	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x6cec3ed9	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x87c7749a	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xda024095	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x50274544	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x740f7053	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x8c5c3b82	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x03f58b53	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x071b8d6a	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0b198c7d	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x123add40	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1b300698	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1df7d449	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x29ef9af3	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x29fc6f6a	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2f3365bc	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x30dbdb40	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3337960e	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x426c6286	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4a9af01d	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5316ac78	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x53dd6b08	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5826b692	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5e897285	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5ee6b738	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x647631b1	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x663774b9	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x671e01f6	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6eb33df6	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x76763d3b	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x84555e6d	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x848fbbea	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x87902b83	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x98a3ebb4	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9ec2d7dd	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9f83af78	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb85a322f	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbeed7b0b	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc1db71fa	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd2362c2c	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd5139dae	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xde88ea77	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdf97b66a	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe866a0e0	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe9c6d3be	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xec57262d	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xedb339b9	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xee750eb8	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf884385e	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfc124cb8	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfd3d0479	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x22c90b1d	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x55053784	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x8f68c8e9	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xed1fb025	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x038ad4a4	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xbcb08930	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xeaf26e06	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xf23598cb	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x3cd1b711	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x574b8987	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x80a583b2	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x91d237c6	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xa2bdf0ea	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb6b8d37a	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xe3c69b64	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xf129ee53	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x60c0d3e5	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xbb6e19e9	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xeb545949	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x14feb7e1	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x2f92e039	ntb_transport_register_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 0x70973754	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 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 0x92b73fbc	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xa4ecf640	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0f635e1b	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x106360f1	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x19876274	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1a104868	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1b95183f	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1e17bf61	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x21315c36	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x26be6ceb	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2c52a2ae	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2d3b2e20	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2e5724af	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x312e9baf	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3b0bfeaf	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3deb5140	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4ed7e28d	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x52effa39	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x588c053f	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x59817649	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5b2577c4	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5d9c8b50	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7129b81d	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7f84e22c	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x83175211	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ab19397	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x94d9c54e	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x95b84cfa	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa1522946	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa57d0bda	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaa9ff744	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb32c7156	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcca66145	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdeb1dddb	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe297ee8f	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf01a3e5a	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf46f1879	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf4f6656d	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf87584e4	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf910b912	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x03bdb4f4	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x080aed81	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x094ddcbf	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x21f0c3ee	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4470935f	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x472e98b2	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4a8f3779	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x5aa1239a	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6e998b74	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x999b6ecf	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x99a5a7ce	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xb5407bb9	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe28def79	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0xd6c57309	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x0cfa8a37	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2fa7332b	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3734d775	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x4eb4a4e6	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x513bf686	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6f823778	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x935a95a4	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x95e83a52	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb7611cd5	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb76af462	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe1c00569	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xa9888480	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x42cb092f	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x40d38828	ufs_qcom_phy_set_tx_lane_enable
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x4dc2e780	ufs_qcom_phy_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x5c88122e	ufs_qcom_phy_power_off
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x7df0077b	ufs_qcom_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x7fab43fc	ufs_qcom_phy_init_vregulators
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xb1932a46	get_ufs_qcom_phy
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xb284090e	ufs_qcom_phy_init_clks
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xbe910db7	ufs_qcom_phy_power_on
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xc4bd1e17	ufs_qcom_phy_save_controller_version
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0x63f1bb0f	omap_control_usb_set_mode
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0x6ed260a1	omap_control_pcie_pcs
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0xb929075a	omap_control_phy_power
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-usb2 0x00d48f33	omap_usb2_set_comparator
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x02d99209	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x10c83ec7	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x4540d622	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xe76d6002	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x0809ffac	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x44947946	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xd2f9d43b	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x27f1eb7f	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x99e97d1f	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xd479bc58	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x3cb3a91b	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xa41f2ce8	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xa814f31a	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xb3d32326	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xf8f854b1	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x00f35a6b	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x119530cf	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x2f815ba3	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x89d33acc	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xbeb648dc	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xd673157b	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0xb57037c9	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1ba5ebba	qcom_remove_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1d27e366	qcom_add_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x31bfd40e	qcom_unregister_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x3279f60d	qcom_add_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x730d6ef6	qcom_add_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x794f1da5	qcom_remove_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x86a84622	qcom_register_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x88abc9f3	qcom_remove_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xd3155336	qcom_register_dump_segments
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x2cd0750f	qcom_q6v5_unprepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x31c6bcfd	qcom_q6v5_request_stop
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x5590bc82	qcom_q6v5_init
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x7cf91213	qcom_q6v5_prepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xe729e577	qcom_q6v5_wait_for_start
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0x5b9a62a5	qcom_add_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0xa881c6fc	qcom_remove_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x5652bad3	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x252e4550	qcom_glink_smem_register
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x72dd75d9	qcom_glink_smem_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x03911ac0	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x061a097a	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x08399fc0	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0989fbd1	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x09c8b4c2	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0a5d475e	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0b99c751	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1a57a849	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1a71e452	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1b8c04da	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1cf07341	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x22e48ecc	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x435418bd	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4a2c7d2e	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4f7d1502	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5164629d	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5b181920	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5b974ff7	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5dd225cb	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6707ffd2	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x72257dc0	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x732302d9	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7402e087	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8aad99e4	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8f5a7baa	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x90358894	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x94fd1b4e	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x97df5976	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9964c322	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa3e448b6	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xad04cdf8	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xae768523	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb43494bf	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb6835306	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb6a03a51	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbc854b63	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc137fb78	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc397c9a3	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc3cd7bd3	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc5d7a74f	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdaf6c1fa	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdeb0cd00	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe9393d20	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf1cd6d23	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x27d47b6d	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4347b7f6	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x43bf746b	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4b3ce13b	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4ddb7195	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x582765b6	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5a048662	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x676c781b	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x77a52a0b	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x77a9fa7b	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x869a4ba6	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x92079d6b	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9b643172	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9d59ea12	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3d9b44a	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf0e73218	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xc1e3f424	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xfe53d6c5	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c779541	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x34457770	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5b622f32	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5d797693	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x701de270	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xdca05f80	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe0f2944b	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x559c2254	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x02592acc	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0ab8c155	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x10efafec	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1446c7c6	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1eaa96dd	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2022ea34	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2145e2bf	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x21b90e47	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x255f436d	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x30eeb2ad	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3fdf0899	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x43ffddd8	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x49d4f994	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x543c8037	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x55dd315a	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5de9c6ac	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x63ce93c0	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x66410baf	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x700b4441	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x86af4c58	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x89d147d2	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9af663ae	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9dcbc453	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa10bb417	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa29ba1f7	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb465d60c	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb9553a05	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc03c8f57	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc4e7e8f8	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc8001623	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcdac44f3	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd2c88d6c	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd5614848	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdc69e74e	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdd8d8e11	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe42851e0	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe520e5ce	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe723ded1	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe8efe657	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe9f89ed5	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf19d21eb	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf35fd504	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x03930700	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x09aa11a5	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x44ec001c	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x53ddb302	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x611af864	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7595e3b5	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7ce17751	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7f42bd6c	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9d5238a3	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa606ee8a	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xaea92890	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb23f8618	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbe71c480	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd04c37d3	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xdc4e890c	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf3ad2cae	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf86871b8	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x02723968	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0c14bef0	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1996ee72	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1c33c32b	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1ef3506e	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2b7bf5e7	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x323623cb	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d33a0a2	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5b92e4d5	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x74bfac8a	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7c55fd55	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8057aade	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x83611bf3	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x891b99a4	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9224de03	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb18f5248	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbe25ce3f	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdb9b1efb	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xde0c531e	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xde579d59	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe5843192	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf502dffe	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfb6252cc	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfce84a6d	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x09edce69	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1297572f	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x191ccaad	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1ebf45c9	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x20109425	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x257e67b5	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x28268141	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x288c32c7	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2dc33131	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2e07d902	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3e529792	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x41fabd10	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4606b848	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x517e9dd2	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5656d385	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5a0c5e12	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5d9d2b2c	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6520fec2	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x69462007	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x729ae348	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x73f7cbbf	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x781d0e8b	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7cd7d6be	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85a2bcc2	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85ec09e6	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x926e8bdc	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9b58a3be	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9e3bceab	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb0cc1b19	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb187e232	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb4fdd464	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb92a44c0	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbea73a98	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcce95e0b	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcdd8cb00	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd5e8d88c	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xda14af5c	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe13713d1	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe5b926e3	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xec65c2ed	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf1be6dcf	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf4eb7a35	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfad21d1a	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfc36e208	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x3ade1a59	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x4a7b2f08	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x64cb9cb3	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x6bc3505a	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 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xd3dc5ebf	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x0e333431	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x20336e6d	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x39523aee	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x3a5338c3	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9f34267c	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xc0ba44c0	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x29d445c3	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x3011bae5	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x57ff0a7d	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x7e44e7ef	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xade385b7	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xc52289fb	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xcd256d74	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe4cdc0cd	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xfbe2dead	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x317e5952	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x53348219	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x62097deb	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x9791bd48	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x9b9c8245	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xac53e083	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xacfafc9c	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x4c441e82	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x99d88c6a	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x9a7869e5	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xb688c763	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xc4703394	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf4049e36	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0790551b	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0e857be7	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x29a3b18c	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3004723e	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4118b565	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x46824de0	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x48411aaa	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4967b7d5	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4c5a6a54	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5bbdde4c	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x70d1548a	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7a4f5d30	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7b1da7fb	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x81331dec	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x819dd779	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8c0a97f7	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8e7c7638	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa0288063	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb5ae0b28	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xba67bee4	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcf32c493	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd44c4908	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xeff40073	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf1461428	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf2333ae3	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf8f213b4	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x494128eb	meson_canvas_alloc
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x673c5a86	meson_canvas_config
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xa961d70a	meson_canvas_get
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xfbd79150	meson_canvas_free
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x7ad99a38	aprbus
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x8482d87b	apr_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x940c2d1f	__apr_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xa43f9289	apr_send_pkt
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x06285798	llcc_slice_deactivate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x09afc16e	llcc_slice_activate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x14f99b76	llcc_get_slice_id
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x2027e82d	llcc_slice_getd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x62ff6e92	llcc_slice_putd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xc294a5b1	qcom_llcc_probe
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xdffee709	llcc_get_slice_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xec205feb	qcom_llcc_remove
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x96cefd21	qcom_mdt_get_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xc98b7f5d	qcom_mdt_load
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xe27d91f3	qcom_mdt_load_no_init
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xf20b1d92	qcom_mdt_read_metadata
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x01a5e78d	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x43349ac7	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x6b4d2ed3	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x06eb592b	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x40977df9	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6c0675e6	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x8c6f82e2	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xa397e784	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xfcbad325	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x2115b7f7	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x80586d07	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8679b9de	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xb0e3fae4	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xb717fe37	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x2ee830fb	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x79c539be	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xd60c66ee	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x03cd68af	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x04acc856	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0d5e4ce1	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x1062deaa	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x237244c1	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x31633ff0	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3ad2dcb7	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3b6a3291	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x63ccd8b0	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7a8c06a3	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8f445494	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9997767b	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xbae7bf5b	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc4cfa513	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xce77ce2e	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe1b5b5aa	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf04610c1	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf318bb10	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x21288498	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x06508c67	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x07d42eae	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x092c0fb8	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0ddcd170	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x129313be	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1b4cc6a0	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x26828863	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2d902775	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3197c6e0	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3408fa03	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x363dae48	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x395d61bf	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x50a16524	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x56ca204f	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x627b56ad	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x62bc2947	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x64d038d7	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7fbe5ec3	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x83e43e6d	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9053d275	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x95edbc3e	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x979de072	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa1fb1b43	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa4398431	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xac58b305	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb2ad8d3a	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd5329ecc	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe2972f3b	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xee4546a5	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf0de0a24	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf16e8a07	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf3cf83e0	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf74097e3	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfa1ceb97	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfcf1fb82	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfd9a1b1b	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x16bc28c8	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x5aff392c	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x6a1b242a	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x98b404fe	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa155eacb	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa42c868a	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa98bde76	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xaf94bb30	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x09ee8d5b	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4ce4f794	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x559f78f3	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x707cf3de	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x77e8c02a	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x993b05a8	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x11c9be7e	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x1577c310	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x2119e7c4	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x6c6643a1	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0ba0179a	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x42e4fd9c	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x442aa706	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6b5b5088	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6eabccb0	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x7b5717b9	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9852d166	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9eb47deb	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xbc928f58	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc067705c	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf0610fd9	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf222d4ff	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf60f5851	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x440312f1	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x74a19954	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xff2c13aa	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0x8a024a2c	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x04c0b196	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x08a32230	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x19847fa5	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x2547ac4c	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x2df38cfe	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x307f5c59	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x31ae9a60	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x31bac9f7	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x49c71e5d	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x78f7e567	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7d146216	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8d9dd9f0	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbe9f6aa5	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf4b2a82e	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf873ce0b	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xfb909250	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xcee9fe5f	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xf9507b33	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x00809e93	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x089ec5e1	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x0e883133	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1f270334	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x23865295	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x38e95bae	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x3c7b4225	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x464a53cc	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4b7f1eb6	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x6ba83f49	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc6691386	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc98044ac	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xdc762201	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xef96d0dc	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xefb077a3	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfc5f7988	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x07bd2d5e	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x4b044394	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x876fae88	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xb94388cc	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc1f8dcae	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xe95dbfcc	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x02f08d0e	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x08b1b30b	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x6a3abfac	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb0a1429e	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xcf17b6de	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xea1f41bd	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xfd0081cc	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x136969d3	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x1a9fef92	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x261c9d6a	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x3357f0ed	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x3d77ed66	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x4c713fd9	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5736832d	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5b6d6c06	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x707f0ebe	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa7a4c319	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xbec648f5	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xd67eab94	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xebc76c7b	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x1557f019	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x7711931f	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x9b34873a	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xb15cea7e	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x0b52367f	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1828005f	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1dbbc900	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3ccfc0fd	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5f2a37ae	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x7e5e3e53	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9407d4ec	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9426b8e3	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9515f5eb	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x97d4edce	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb6940a2b	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd190af7c	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf405f485	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x160c2c4a	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2fb7ec90	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5b2d0256	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x60d64829	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7f93bc52	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x90127a67	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x96ea16cb	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc0362aa5	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xceb1ba25	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe0bacc65	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf6ba2125	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xfc1035a1	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xff1f79c0	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+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 0x84f1aed9	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 0xe59e9291	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x42500ff2	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0xc7e65289	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x7548e5c0	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xb65a0670	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x1375ee58	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x0eeeb844	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x18d68a1a	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3d9e39a3	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4f49d164	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x5e3a597f	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x61491312	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6ad2abf3	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6cd02b51	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7683a110	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x922ae193	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x997a35ba	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9c7ed9e9	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9ebf388a	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xc2d41477	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcf6d4a45	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xea69a6ee	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xeea14504	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0332e61f	amvdec_write_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0eb7ebfa	amvdec_src_change
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0f058b6b	amvdec_clear_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x30286cdc	amvdec_dst_buf_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x34d8862f	amvdec_add_ts_reorder
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x6554be84	amvdec_read_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x9527a4a8	amvdec_dst_buf_done_idx
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xa7e2cd0d	amvdec_abort
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xa9127a6d	amvdec_set_par_from_dar
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xbe44d6a4	amvdec_write_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xc07e5b61	amvdec_dst_buf_done_offset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xd2866f3c	amvdec_get_output_size
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xd965c5ac	amvdec_remove_ts
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xd9e4edcc	amvdec_write_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xe2c5e63d	amvdec_set_canvases
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xf5601466	amvdec_read_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0270acbc	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0cc2be04	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0d37d0ae	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1437edcd	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x26f057eb	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5818b38a	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6b44a27f	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x709ebbdd	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x9f69ab02	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xa4e662ab	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb0efd0e7	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe194a378	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xef910a0d	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf0536d7a	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x0f5184a0	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x14cbe1ab	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x15434eed	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x160be614	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x19a04f57	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1dba06fa	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x21c0255f	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2e7e21d7	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4b30ee2b	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x51d92cc0	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8118b7f6	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8181ceec	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa34cbf4e	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa92654cb	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xac526f55	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc712c536	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe471e7d5	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xeda42130	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf1f4b326	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x07b428b3	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x4dbdc3b1	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x714be374	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x0d1b598a	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x200a9af4	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x77df9adf	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x78906d2b	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x87ce933a	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xd10f8991	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xd67ba090	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xde1edb8f	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x00676037	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x01683440	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x032b39cd	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04f454f7	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04fb548c	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x08458d2f	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x167cb44a	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1ffa2ed1	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2b83af0c	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2e6d766a	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3798978a	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3b0b7847	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4b8de63f	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4cda8826	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4fb600fa	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x542677c4	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x545f8a9c	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e4bc088	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5f4a136d	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5fcb8fc8	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x607e2a07	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x67c7dd3e	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x74b8cca7	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x76e7926f	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x80e15151	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x817401b1	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x85acb50d	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8e655448	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x911bad87	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa1e7ec0e	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa3176958	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb49c9c8e	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb80dcfaf	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb912e8c9	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcb4412c9	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe075d186	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe8e44ae6	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf38b20de	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf6e92b64	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf735e542	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf8e5dac0	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x54d4e7e9	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x0fe337eb	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x3452f97e	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x37030a4f	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x4597b5ee	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x4709387a	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x83c9fd00	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xb683a746	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x0eb4bc91	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x26284b63	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x2ec11cfd	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x3c3f6fc0	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x54c1ecd1	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5949e943	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc543b60e	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc803de81	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf4654c3f	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x0d830b7e	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x19a7aab4	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3c107d87	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x4c7eb8c0	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x65d8e282	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7201b999	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9809cfb3	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x984e569a	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa5258bcb	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa8dfdbd6	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe3a80b5b	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe606a6f9	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe6a132dc	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xed34ffc1	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x005e5208	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x02a1f4ae	tee_shm_put
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x25e34e72	tee_client_open_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x39e35aa4	tee_client_close_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x51c7f138	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x54ddb78a	tee_client_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x58a2d4f2	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x5cd202b8	tee_shm_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x62fe599b	tee_device_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x63adf158	tee_bus_type
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x6722f92b	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x6a76bc39	tee_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x6b2b9428	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x76477b18	tee_client_get_version
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x799f6753	tee_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x91de42a5	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xa530350e	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb51942fb	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbc077a07	tee_shm_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc0eb6800	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc18357a0	tee_client_open_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc2f59141	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe27967e4	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe95cd3e1	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf0b136b3	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x995a04a1	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xa28c78df	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xdcf314aa	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x2682a352	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x349d3603	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x9e3d084c	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xa66d9c55	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xbcd0546f	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x284b2251	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x4a8e6531	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x5cee9a8a	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x5eb9e3eb	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xd4642460	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x2138e743	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x2bbffd29	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x5eb739be	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x908a75d8	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xdc083937	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xdc471515	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x27daad4c	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x5729265d	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x582b52b1	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x62df27a7	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x6473ad64	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xa42cfbd5	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x032a5879	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x091024ea	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x1af41818	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x1d9459e0	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x292622dd	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x36974517	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3b6cc348	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x4cf12ce0	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x535cab51	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x66c8a21f	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8bd02822	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8eb27945	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb7f36463	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc2e2ffe6	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd80ef87a	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x35c54a66	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x59a22fe7	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x3df5db03	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xdcbb5855	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xe82be92b	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0334335c	fsg_store_file
+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 0x15d4c915	fsg_store_ro
+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 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2df65666	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x310a1185	fsg_store_nofua
+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 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x54ee6d63	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x55dffce9	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x560c6b1e	fsg_store_removable
+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 0x56584b8a	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x65aa9d6a	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x67ebe3db	fsg_store_inquiry_string
+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 0x7191b558	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x768509f8	fsg_show_nofua
+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 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x894e9271	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x92cededb	fsg_common_remove_lun
+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 0x96a4056f	fsg_common_set_cdev
+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 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 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 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xedc30278	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xee15c63d	fsg_lun_open
+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_rndis 0x242781b5	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x326eedc6	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x333c7ab5	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x46af2a6d	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6f29f467	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x807bad93	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x861b570f	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa896ec93	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xabd1aba0	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xac25c331	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xb15ccd59	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbf94968f	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc5918a94	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd335d090	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xebebee83	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x02f55235	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x085e7ad8	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0a804c75	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x20821e74	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x20ebe3cc	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2901ae89	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3406af19	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x40684c71	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x49d44174	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5c015ac7	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5e93cce4	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x613e450f	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x656197d1	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6eeaa166	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7078a2de	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x735ab194	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x81b62446	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x85d2ce9a	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x87b9d7e2	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8e70b3fa	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8fc10759	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x96dfd3db	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9b6fea55	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xac988b17	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbce26811	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbe79de1b	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd112322c	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd4accf3a	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9b4d286	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xdb0e321d	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe9b6675a	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf47331c2	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x2e7142b7	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x43b7fb7d	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x48f7f1c2	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x507b15dc	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5c60ad8f	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa590ca6a	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa66a66ad	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xcdb251f6	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xe4977265	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x6bc05f82	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xda549a42	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x198d953e	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x2ab5452d	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x38d2c84b	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x480e6b2f	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x715eb8f9	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x896e5d68	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x92003489	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xbd104da4	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xf4e7d17d	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-am335x-control 0x1d29ac48	am335x_get_phy_control
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x2d99f8e7	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x7a01d90e	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x01ce53db	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x032d6d71	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x07a9a790	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1820cb86	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2424e5e3	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x41b735c7	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x44d51a06	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6a807469	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6a86e88e	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x754f8bce	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8157fc4b	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8a342531	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x95400766	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa65435b1	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xadf29eb9	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbc70ff83	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbc782258	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc1815aea	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd6004c93	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd83830f2	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf190c2a6	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x601be1f9	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xcd16981c	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6ce85a9b	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x5038aa6b	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_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 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03a686ca	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x05abd9ed	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x10fca484	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1ca627ed	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2e74502b	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3cee0ba1	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x56aff1b6	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6542b75d	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x76366d90	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x766894b9	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x831debdc	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x86cbdba9	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x88d66cb7	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9b780fa0	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa2bd825f	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xabb4ce51	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xadbe89ca	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb1e3dfb8	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb2b5be62	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbeca4655	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc890135c	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcda20ab7	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd0466232	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd40d7a49	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd61be425	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdd7ebc20	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe021dad4	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeba06874	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf4eae3b0	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfa95a565	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfaee44c7	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfd2eb717	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x35e16531	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x44035646	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xb0a707aa	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xbbcbbb2b	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xdb15c575	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1ac1fdf4	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2e3c0338	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4bed113d	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x64f6968a	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6df6c5eb	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x838ea36b	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x89a5d546	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xa820b2ef	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xa87b89cd	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xdea1e26e	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe88bd282	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xedc5d368	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf4444781	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x9bf22b35	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x3ec63e1a	__vfio_platform_register_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x69fe2e00	vfio_platform_probe_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x74029a4e	vfio_platform_remove_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x7afb6ac0	vfio_platform_unregister_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x22b5421e	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x2d6e806f	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x44b83e00	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5537e995	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x577f9b19	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5fbca5fa	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x980bb257	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x9f153d9f	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xa4034140	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xeea29d4e	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x6a648667	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xfbfbfa09	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x02708af5	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x09494549	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x132db1b7	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x24fd75cd	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x250544a6	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x317cfd76	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x37d205c4	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x426e1102	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x43caff07	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x45ff15e4	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x474bd4c4	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x47b8fbec	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4df3b6aa	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x517914eb	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x54d0b1bd	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5b0b9439	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6d06d25a	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x715d0950	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x71f722d7	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x73829017	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7ec5069d	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7f5e676d	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7fbd578c	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x864dd823	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x86a71e55	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8f256604	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x902fb7a9	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x90b23ad8	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x93aba49b	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9f74724e	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xaf7fd38f	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc9717d4a	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd5001b27	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd6955008	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd91adc7f	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe13b3f21	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xed59fac4	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf75f692d	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x146328bd	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x14a226c4	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x54863434	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x730514a6	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x8a7128b5	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x8df10c37	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x9d33d33a	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x29a0e2d6	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x3cb511d9	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xa6547d7b	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5bf41504	omapdss_of_get_next_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6a5ef957	omapdss_of_get_first_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7bd36173	omapdss_of_find_source_for_first_ep
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdead3245	omapdss_of_get_next_port
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x34a8c35d	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xf1d83255	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x07dbee6d	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x359372a2	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x3957eb7d	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x3e7bb0cb	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x4f638dde	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x5220b68c	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x884fd8ce	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa3fb6fb6	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa47a1f7f	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb0b49684	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc1bc324b	w1_touch_bit
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x01407a1a	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x867cfd2b	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xc515d126	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x0d52d7bd	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x184483b7	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x1e8002f9	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x419cd824	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x54f21e0d	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x9596c496	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xe8702f19	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x03468a2c	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x07160436	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0773b447	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x077c3adc	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0e2eb9a1	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1466c536	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x16b60c2e	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x16b80f24	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x16e019eb	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1871ff61	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1a85ff78	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ec53d85	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ed11ab9	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1eda497d	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x203c5f9f	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x20fd9537	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21035588	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x23d9881e	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2ac604fe	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2d4c17f3	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2dd482b5	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2ea2d3b9	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x35b2c21c	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x365efc8f	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x390ac181	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d6b702a	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3efbe69f	nfs_file_write
+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 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x468ea3e0	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4721dcaa	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x50eb0253	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x514d7550	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x516b9471	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x53328df5	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x55888fde	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x572c2035	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x57c199ab	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a7dadc4	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5df61285	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5e337ac2	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ecffa77	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5f258ae2	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5f5c2b99	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x609f9f0e	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60a23239	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62ca541e	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63e14e3c	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6626d497	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66a0609a	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66f25fcf	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x685c6c95	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6acca4f7	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6b6ad0f5	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6cdcbbde	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6d545819	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x70c1257f	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x71d10551	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7370d9c8	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x74c892e9	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x76eee3d2	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79174776	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x796782d5	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7b0661e1	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7da37458	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7ebf4ace	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7feca8db	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x80ffaf0d	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x81142177	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8451455d	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x855926e3	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x86d7450e	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8cfdcce3	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f44c692	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f8478d9	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f8a073e	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x95855263	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x95bb9c24	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x95eb7c3c	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x972859eb	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98468cd2	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98712912	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x998997ec	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9a06cf13	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9f71f192	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa59fd8c3	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa5f7258b	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa63cc846	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa6427928	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa6b588d1	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa7b83c35	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8bfad16	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaaa14361	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xacaf9143	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xadb218a6	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xae84228c	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaeb4a51a	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb23a1028	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb59040d9	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb828efa0	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb8f65255	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb95dee9f	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbaadccda	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb410352	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5ad5a33	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9da666e	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcade1dc8	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc36dadc	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce807259	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd133cbc5	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd289d1c1	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd3a8780b	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd618cace	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd88db487	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdbf3b173	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd10204b	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd244c13	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd41f89d	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdda44a4f	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdec9c42a	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe024b75a	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe092193e	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1796b72	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe244b88a	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6dde543	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe97abca8	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xede99f4a	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee321c55	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef55de2d	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef6a5f5d	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0ddd933	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf148edf6	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf33da799	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4d505ed	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe10a87b	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xff51a3e2	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x4c09c2a3	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x003bf311	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x01782eb2	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1107b7b7	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1c14ec02	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1dfa1cc0	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2045680e	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x26a22a79	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2a8b388f	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2b5af5ac	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2cf56e6c	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x30384475	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x358873c4	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36751a61	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3aca4401	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e73f10c	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4631e8e5	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4aa8c7bb	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5205f7ed	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5637b264	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x61fb7470	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x61ffaf02	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x676d6bd3	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6c1bdc2f	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6d70b36c	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6de489be	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e16b52a	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x749d378e	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x77e8dbc3	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7b4d4133	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7f7d9aa8	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x899202fe	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x91fcaa39	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x996eac35	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9a2daff5	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9db5e925	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9f1cd945	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa02df320	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa6a5fcd6	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa96f167c	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1634bed	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb303afe5	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4895436	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb85de48c	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xba8cd71a	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbb16cf9d	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc0a6234c	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc151e45f	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc1690a5f	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc7820ebd	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc9507cd3	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcac9675a	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcd4bfb65	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd42d8bdd	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd598f0be	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd59cf091	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdd9db3b6	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe1eca9bd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe358692d	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe45d7661	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5a7264c	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5d23fb1	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee468851	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf21d4a0e	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf375a5c4	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf44f3032	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf65c1c31	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf8a26a4c	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf940cd65	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfb91f3db	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfd03e029	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x016485c3	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x0cea4215	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x80c9852f	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x069bdc13	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xeed462e9	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1c08f03c	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x2bdf098d	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x364f639b	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5da0805a	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x67b8c471	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xbfd41441	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf434bb56	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf4f8d529	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x021306f7	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x1a21869f	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x8f2d7469	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x930488c3	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x9d78aac7	dlm_register_domain
+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 0xdece31cd	dlm_register_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 0x15e54b33	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x5cb79d92	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xce7ac031	ocfs2_plock
+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 0xe63c0505	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x57e58ba6	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x81cb70a7	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc954f779	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x955ee96c	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x5c997220	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xc56a31c7	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x021957e1	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x0f8a2742	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xd4cb6873	raid6_call
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x92f963ea	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xa6379a93	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x1dabc3bb	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x30de005f	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0x5bab712d	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x7f16f86f	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x943df2bf	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xd5ab6a09	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4979d582	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x74367a48	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x755184e2	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xc619d1a3	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xf8354df6	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xff0db7f1	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/stp 0xeb36f586	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xee878770	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x3bdc0781	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x4c793288	p9_client_xattrwalk
+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 0x891b5d22	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 0x06fafd59	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x69bb83fe	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x6e418848	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x772ecddc	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb4449764	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc71c5513	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xe18a977a	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xf2978c57	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0xe63b842b	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0beeb3ca	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x14432188	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1c73c264	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1ded037d	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2d518635	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x40372ff0	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x46bcd23a	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x47124469	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7f28969e	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x93fad69e	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x99e1fb61	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xab16c16c	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xac8570e4	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb171b0d8	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb3195f39	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xca5e7835	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe0c4c729	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xeb277235	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/core/failover 0x04d51c34	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x6c9d62ec	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x7aa0d2a7	failover_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x017b6d69	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0c66bd7d	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x13cbe95c	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x18e26d80	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1f360d63	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2f2f262a	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x37606a22	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x432d9fcc	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x51697a05	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x55d07b65	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5638cb0c	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6621bd93	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6791b49b	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x709618a1	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x71a10425	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x728b3de2	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9fe4bb97	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa43e19f0	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xaad79124	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xab842054	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb0165e5e	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb02fb19d	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc264ab31	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc9cc9027	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcead483e	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd1a8c919	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd261b1be	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd759197f	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd7da068a	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe55e73ab	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe8b1e8e3	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0784aa7	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf55ef99b	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf908ab1f	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x1c5d8e87	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x266ea2ab	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x626aca10	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7c1b7190	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xa98c2b03	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xdda06b70	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x01d655b7	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x180465a4	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1a64bbd8	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x311a7bd7	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4f8a7803	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x59a41c31	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x677b5e39	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x77ddd387	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7a0e1c30	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8aefe41a	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa3317bf8	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa6308f5c	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa75b1d82	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xaa44e4f6	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbc77bcfe	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc379e359	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc40e7b0b	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd8a5c9ea	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe5cd5b3e	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xeaf7829b	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf0572e6e	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x27e92d7e	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9b75363f	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xa50c8f3a	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xf5005b6e	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x6beb2483	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xbabe67de	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xdfddc0d9	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xe74a4804	ieee802154_hdr_peek
+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 0x794e8590	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe96f2e12	ife_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x4e2cac55	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x640ddb63	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x737bacf0	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x2f8f9c3b	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x7e49fa82	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x12b6bc42	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x53a6511e	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x77d3091b	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x909d6393	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xa0b30a7e	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb95ba9a3	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xca8c8bf4	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xdfd17fb1	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xf0b69666	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xfe73e081	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x02d59f7f	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x0692a6cc	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1f5ced3b	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2621a8c6	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x365080b6	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3a0e3d63	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x516f3dbd	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5b33b420	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x691e44e2	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x767bcb1f	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8e6c3db0	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x9b7dc45d	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xae626637	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xce1181f4	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe59a9c9e	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf57e7b36	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x9bd1ca2a	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xe07e877f	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x635589f7	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0xe5f1c1b5	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x0599a356	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x1c21aaec	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x23de99d0	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x5b45563c	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x77018864	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xafa4038c	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x2ad34bac	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x5251d1f7	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x8568e3ca	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x228229a4	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xdf3ab933	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x2446c492	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xaa2c86dd	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xdec95bb0	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xe48609a3	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf32a7bdb	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x16ff5195	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x3b05098e	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x4459cb16	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x7ce14f50	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x926bbf4b	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xa7fac52c	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xa87e82f3	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb81879c4	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8e6d2e6c	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xd8285693	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xfe79d882	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x1ff6fc12	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x3596a162	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xaea11396	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x96648371	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xe9cbf72d	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x728d2fca	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x95d88676	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xa4308483	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x691ea022	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x34f90941	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x683cd4bf	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x863fe599	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x95d731f5	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xaccf34fc	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x28c3a2e5	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x096c2225	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x3146cb9b	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x6c04b19a	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xbc9e64ad	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xc97ad496	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x01fcbfb5	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x041beba9	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x47a04133	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x561a8e61	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7c028677	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8221cd28	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x848c10a8	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9a51a90e	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9e480fa2	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa3c7719c	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb42bacb1	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb95abae7	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcb938ff7	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd01195e2	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe8a7daaa	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xea1c2c7d	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf34379db	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x202ef89d	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x019e1749	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x21f6226c	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3268d569	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3ddeb6eb	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x52348ae4	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x555acc55	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5d967f00	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x69193988	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa1e13338	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa209b8c2	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xafac37ae	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb839cdf0	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd4f2c180	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe2d04c41	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf31e9e6b	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xfcedacdb	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x24caacba	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x405c47a2	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x75a0a127	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xd5fc7b32	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xf2e15785	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0b8fa581	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x3949e40c	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x43ba936d	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x45a560ee	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x4747ad19	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x50df6560	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5331d95f	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x69285fb3	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8c631402	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8d7dc164	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x954e2f42	ip_set_get_ip4_port
+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 0xa848ff46	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa8bf830d	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbdeb061b	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc37d00df	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc6d09608	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xce68afbc	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xefb027fd	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x00b86519	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x108eee17	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x78745489	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x96a04ff1	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x268a4802	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3637ffbd	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x4c5a339c	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8aeefe84	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbe03a217	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xc5777c83	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xf9b44e87	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00f15049	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x013d9ef5	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0681a171	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x08f3f0de	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0da800be	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0ee9279b	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0f414e20	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x18af5b1c	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x203df754	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x226c58ab	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x24717230	nf_conntrack_helpers_unregister
+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 0x2c709b18	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31cdeff9	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x33176037	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x331ade18	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x38c0f6fa	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x473e385d	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4a6c9056	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea258d2	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x50982a82	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x52bb7f83	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x55f69f10	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x58384359	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e448235	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x675a99cd	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6803920a	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x684fa88e	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x69075bfc	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6af7cb5e	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7119ee87	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x75ef5661	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x78ae7afa	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x79d1a62f	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x79ff3e70	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7ab30b8e	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7f66221f	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x81110047	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x813d6cd3	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x828dbf0f	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x84c57fe4	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x84cb6c47	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x883ada03	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8aad4d97	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c6e11f4	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8dc67e64	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9311c5f5	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x949122e3	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x94f36165	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x95e6f01b	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9801f826	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x98b251c2	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa0926be6	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa1021d90	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa1915741	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa28caddd	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa47e49d4	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa70a534e	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa94e6ed6	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xab2b3cda	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xabd36480	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xabe6b7ab	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xae03afeb	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xafc7bbfc	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb10ef413	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb7360bab	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb84630a6	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc2acbf94	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xca226854	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcf2d87c2	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3ad9867	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd73ad3e5	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd7e2543d	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd9c8a825	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xda875a67	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdf01f9c8	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe1400462	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe291cbd9	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe3f44d72	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe462ec30	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe4e2c3dc	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe8f35bca	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe95b5a91	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf1d02ff8	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfea6642f	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xf71326ce	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xcbbe6d06	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x2b71c12a	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x17c5624f	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x20421d32	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x440fae2a	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x88039025	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xad6d29fb	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbdf8ab79	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc3f4f847	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe4d63063	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe538f249	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xf0eddc6c	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xb44df556	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x5002e62f	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x6f4d864c	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x80612219	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd8cc5a23	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x2b08cc34	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x51c95803	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x683674e1	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6c852d1e	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x7443159e	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xef66d7ff	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xf5408457	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xad79a973	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x4ab30749	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x44a43b69	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xa398da7c	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xbbb894a6	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0f1dfabe	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3495db60	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3c127d60	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5d44f375	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x67bb3c2a	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6d8ba3af	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x79af9864	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7caf83be	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa51705b2	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcedcc54b	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe850ec3e	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xecb67343	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x1fd92d96	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x20462189	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x5887ba26	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x88c47c89	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x97cc4d8f	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xfa915490	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1a73871e	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x21841282	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2c34a75c	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x30f8b4db	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x36026ba3	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4ce2d473	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4d81ff77	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x65d35d01	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x6eacecf9	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7c523acf	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x936126fd	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbec3253c	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xcd1e2915	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe7760f1a	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf5e697ea	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xfaa87207	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0f2b316a	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1aa45dd0	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x749fd0ff	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8e346544	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x939ef4c1	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9b6acd9a	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa34bbdd8	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa52d50e4	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xcb16ddcb	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xdb5bab32	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe7769af6	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0c4b5a3e	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x11db3631	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1a163cd9	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1b8b192c	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1c1a1531	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x20c1f35c	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c2ee0f8	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2d5cdcfb	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2f3b4056	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3e7baa11	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x44430213	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x53c7c18a	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5feee773	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x650f791f	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6541e86c	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6632e711	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6a606023	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x70fb1663	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x77c15342	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x79e14a57	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x84badf90	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x867ab966	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x91b3303c	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x951b9fdd	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9547c799	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa9ffc821	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb2d40760	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb556cedb	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbc4bc340	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc3b944f7	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc8df5550	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcc8b1ce8	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd13855a8	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd1814f6a	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe0d1313c	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe5ea0832	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xeeaf1926	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf7908a92	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfd9e1577	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x1a26cf60	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x265caf93	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x725f158d	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x79461368	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x7d8b5d4f	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xcd5c6ee5	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x37841c78	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x4c2a2327	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xee863b24	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x512126ad	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x76e1098b	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x5b98339e	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x5feca94b	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x6fcb0157	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x7f7686af	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x62f185c2	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x6be094c3	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x829fa207	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0460615f	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1bc54263	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2efbf5b2	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3191c5d8	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x328569db	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3c8134f3	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3f1ef70a	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x44781bd2	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4f8b5cb8	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6c8d690e	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7ac03dc4	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xafffcf7f	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbe831ee1	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd8aada0b	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf2ea9f4a	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf9f96504	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xcde6c378	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xd765218c	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x9348cc85	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xad797254	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xae879f4e	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x181135fe	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x6f5a0e45	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x9e846115	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x7b217bbb	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xe0d771ef	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x18cdabf2	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x3b118c15	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x6814a0e1	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x9659a30a	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe9048ab7	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xf38bfe32	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x75799e2b	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xa1a4fd61	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xbf5c9b63	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xeee32115	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x0b6fb622	qrtr_endpoint_unregister
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xc053b0db	qrtr_endpoint_register
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xda6e6de2	qrtr_endpoint_post
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0c37d897	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0cbb62e0	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x168fed18	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1cc51ff5	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1d3ecf6a	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2f2d05b9	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x32257078	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x51fff30b	rds_for_each_conn_info
+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 0x5d222f24	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e26d54f	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6baf127e	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6dd1429d	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x71d8f9a8	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7c20a307	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7e28f16b	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x816ca7a5	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x93156470	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9364acd0	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x96d8e33f	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x98e8ef29	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb640c9f3	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc5786a6a	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc9caf243	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd814a20c	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xddf610bc	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe0dac1e4	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe7f12dd0	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf4c257e8	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfcaa7e5d	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xffe5fdc7	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x62c024f0	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x9ee50e24	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x301319ca	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x9318b099	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xb3a76abc	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xca94e3ce	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x61556458	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x668a6e87	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x864ee67f	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8e2b6949	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x96a4d8fd	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa7840623	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc82c8ed4	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd5884050	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xec09e434	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xecc8aed5	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xad2d3d18	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xb8f7f7dd	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe28b5dca	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe6f63ae4	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x00996b63	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x018bb2e1	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02ddeec9	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0477c820	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x062f5fb5	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07961557	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07cf3f0a	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b84fea0	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c28008b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c548d28	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c61323c	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ce207f4	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e4d2159	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0eb4efb8	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f4e79c2	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x121c7c15	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12ed7b62	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1307f683	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x134837c4	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13c0fc27	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x141a000f	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1529f932	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x15befd3d	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16a91d8a	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16dc1cd5	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1807e7d1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x193a8a00	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19aa0d83	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19cdc144	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a0b7aea	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b686d68	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1cec1b7b	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1dc035f9	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e2db94c	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22550d9c	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2415c068	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2570059d	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26239619	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26734c48	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x268941d6	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x268e5e4d	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x274f0b49	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27a19779	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27a350e6	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x282e3339	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a15c47d	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a835574	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cb90f9c	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2dc7b06e	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e15dfa8	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2effd251	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8ebbe0	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3047e813	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30b558a3	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x32256286	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x325e705b	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x328af711	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34edbab9	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3526656d	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x368c26d3	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3ba28806	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40ca6000	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40e15e07	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4295fab1	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x447c2c65	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x44b708b3	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45f253cb	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4606b666	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4673fc14	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49b72081	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a4949db	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a6f373e	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4bea384f	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4cad276f	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d2ed5a5	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dd03750	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ff04051	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52b71436	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53bcb557	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53e83851	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x555f13f4	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56206d83	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b64bb73	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e0e5085	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x601bd807	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60617918	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60648546	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6118535f	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66837e75	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68797e20	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a44d789	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a75bc23	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ae8746d	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b92c505	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c1aaa8e	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c20db42	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c68df45	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f233540	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fe21bff	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70a526dd	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70cda41f	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73a4de1b	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73ad6237	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x747a1ab5	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76576e82	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76edd4ac	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x770dde20	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77a87e7b	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x787e51fa	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x788c6757	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79113507	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b3cec9d	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d38fa04	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80265904	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80ef7001	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8173d7e8	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8385124d	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86ca4b64	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8832329a	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88fa6fd6	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89179116	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c050117	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c0af3c5	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c907063	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cc035d1	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cc798ad	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e8a9f7b	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9224516d	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97644950	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x985544b2	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98714a59	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9880cee2	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98b664f8	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98fffdf1	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bfdd8cb	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ebce617	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa0a52091	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4068307	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa47c87e5	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4f7b7db	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6874bc7	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6b64e49	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6fb1adf	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa83a75b7	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa871240e	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8cb7bd5	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa3e07e6	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa6523f2	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa979dd1	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab84a9a2	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaccda662	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xacf27c62	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad331f39	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae8a80ea	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf8251ec	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb034238f	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb058a69d	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb10b0a13	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb11b8717	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2a41662	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2dc2b67	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb37ab880	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb387e12d	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb3d40ed0	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4d86780	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb86c1e4a	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8c7921a	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8e834ac	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb971c039	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9c7ac07	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd17918c	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe856aaa	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbef4cd73	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc073bd1f	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0ae526c	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc10dff91	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc169d947	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc64292fd	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6f5b67b	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc94ff9c9	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcac5dca0	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcc662ab0	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf026284	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd02f61fd	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd09b6433	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1bdc0fa	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd22bc568	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd22bf076	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd32e8165	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd36eb24c	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd43d4e99	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd50ba7ac	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd571e893	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd865924e	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9458cee	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd99b72ac	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc2093bf	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc561441	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcc7d8c0	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdec9ff47	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0f8fff7	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2c1fd11	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe58d37d5	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5dc08ec	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5fd20d5	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe67c7fb9	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe7356580	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8209048	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8c721db	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe95c348f	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec37c12f	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xecede194	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed2a6e71	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xede53ef3	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedfc8dfe	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef6960fb	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf082a8c5	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf18c3f94	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf24f2f58	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf25c6bdb	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf538af94	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf5849f6f	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf72a59af	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa756bf0	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb45914e	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc407bf4	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfcc0a48e	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfcebcfe0	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff286433	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x91dbf0f4	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xda958739	tls_encrypt_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 0x05a67dd3	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x19f9615d	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1e831c50	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1fe42488	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x31081cc5	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x34bcc38b	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3ce51e81	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3e522a37	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x40866a58	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x41d8186d	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4285b513	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x45edaca1	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4631c6f7	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x627aa5d8	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x673876e5	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6ac32d86	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6ea59922	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x755a62fc	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x762058d4	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8e528593	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8ef7ab84	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9752b243	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9ceffe99	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa9d9860c	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa9fc5029	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb1a6d707	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb1e2efa2	virtio_transport_stream_has_data
+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 0xbd893575	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbec712e3	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbf2ceaf6	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc6198d51	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd4da604e	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf2a58029	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf5a2e8a8	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf838b42c	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xff5a3a08	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0e86406a	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x31cbf77e	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x34b4518b	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x44420515	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4a4895bc	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4b2fc262	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5ebeae02	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x663d1913	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x74e91915	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x76a4612e	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x871c57ce	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x87379de0	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8eb35253	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9155ace0	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa3f5b61b	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xadbd5509	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb1446bf7	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb7425ed8	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc44600cd	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcf8c153b	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x09d06912	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x309bb4c8	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x3e51f079	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x633929ab	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x6f894f98	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x82f186d2	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x847a5f7d	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb145d7ea	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd3e3b1e7	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xda149674	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xda8de0c4	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe6d12679	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe8695b03	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1c0cc8ec	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x49241cae	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4f8d6c61	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x61d2e640	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x6b7965ff	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x734cb663	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x73c09ab2	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x89b6889b	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x9f3b15c7	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xafbc9882	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc9131cff	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xde2c5244	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xdee79a71	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe2d001d7	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe48ca129	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xfac197ef	cfg80211_pmsr_report
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x0b5eafeb	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xc49c4a54	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xeaa1f068	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xf5aeda5e	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x2335208a	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x5fccdde6	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x170de276	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x1944d497	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x2b5c58c5	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x3c65616a	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xabbf42b1	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc1c2a193	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xfed0cd01	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x039e66d6	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x046062a0	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0b74cd58	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0c3912dd	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0fa8b4e3	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x106063bf	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x12f15037	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1349c915	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x136bca96	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x16613914	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x183b7221	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x19441b53	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x19bd294f	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1a0cf27c	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1a84c1c1	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1faec0bc	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x208a6352	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x215342d9	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x221822d8	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23f5a1b8	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2d462779	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x323aa9fd	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x345b4ce3	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x37184d31	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x39426322	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3c2c2a12	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d4b91f8	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d5fd4b0	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40393d85	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40ea7021	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x43f7bfe9	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4943f1cd	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4aafb544	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5621a31d	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x57f59a89	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x58acabb8	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5aa0eb22	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5bc51ff3	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c38617d	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5d38b7fc	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5fa9ae9c	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5fb246c7	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x684034a2	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6f79fe5d	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7414e32a	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x821ca7ea	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x832f767a	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x83ea24f3	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x856768af	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x874604e6	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x889145f2	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x90995f12	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9208cc43	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x97d2e6be	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9e4d5370	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9ee0c68f	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa196c3f3	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa34c7e35	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa473d17b	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa87fd277	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa9225b16	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xadc31481	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaeb5d56a	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb0d11c0b	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb0f6a7c2	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbb0ac98f	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8660907	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xca2c76f4	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd3d844c5	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdbc14f35	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdee14633	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdf503622	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe5181900	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe83f5543	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xecbb0a5b	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xefb2c80b	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf038da08	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf1715bcf	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf64f6b41	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb75381b	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfba07f7a	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfbfc4c4b	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xf37f6ee6	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x2fa025f0	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x326542de	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x3fa98483	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x42b46709	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x84e36850	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x9ee21da1	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0298611a	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x06005b0d	azx_probe_codecs
+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 0x0681607d	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0684a409	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0778df4d	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0810bef8	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0b6f03f0	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ca8de1b	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0cdf48a1	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0d83be8f	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x12eb50ff	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x137504e8	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x19d72e68	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1a19c8b0	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c4648ab	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1ce58d4e	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20e6eece	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2274c7e6	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x247aeaf7	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x28f406a3	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2b5a2528	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2cab27c1	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x317321e4	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3517608c	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x354d3e45	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3676991e	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x370facc0	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x385cb22b	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3910714f	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x39ad1984	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3a1e2a7c	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3aa2720d	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3cc48861	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3d015345	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3de56370	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3ebd5f24	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3f49f20a	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x40d9d522	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x410bdb3a	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x424fb73b	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x43cad3dc	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x44512a0d	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x481e04ea	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x489f6d39	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4aa5822b	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4cffa675	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e954e3f	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x54b48b45	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x552013d2	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x563b3d88	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5c1ef682	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5e8d4e92	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6111d016	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x62a8ed05	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x632b1b06	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x65ac18fa	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x676a30bf	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x684c1b66	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b109e87	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6cf2d8c2	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6d87d363	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f8cab3e	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x722f8542	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x73cd021e	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7428e380	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x74d12d49	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x767db4a8	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7735215c	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7b552fcc	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x82c44ae1	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8307fadb	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x856e5112	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8a3295b5	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8dc57571	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91927cc7	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92150881	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x93127a5c	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9a4352d4	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9ab510e9	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9c034c45	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9c26116c	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9d82ab7d	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e21c2e9	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9ed23377	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa15c50f1	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa33811d9	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa98bf042	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xace69f85	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xad04ac20	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb0a9d777	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb1e3869f	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb6e826a1	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb807379e	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbcac8553	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbf8ecae9	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1296798	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc22d24e3	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc63cbdd6	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc6d909e5	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd22338b5	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd4a26ee8	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd4b56779	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd53123ea	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd7101469	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd93ff869	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb84ab85	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdfd6f8e1	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdfebafc9	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe11b14d0	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe2301340	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe5cbab14	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9c7a357	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xed021850	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xed3b015b	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xed9823e3	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xef73787e	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf46afcd9	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfab2912e	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfaed02a3	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfcf41e2c	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfec56581	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x07e59de0	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2377d6df	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x25d671b2	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2a45c7fb	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4964624e	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5114e6a0	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x605f8d8b	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x68202933	snd_hda_get_path_from_idx
+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 0x7874ecb1	snd_hda_gen_mic_autoswitch
+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 0x895bedfb	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x8dac8732	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9718d793	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x99de593e	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa04cccc6	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb75141d5	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbcab06fc	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc1cb56d2	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd5f7f30f	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd81b1858	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe37989ae	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf92474c2	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfa206d94	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x88ef8116	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xe1130e9f	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2b00a578	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x500167d3	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x63026c4b	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x73dd3421	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x903167bf	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xa1a40fbb	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xa738bba1	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xa7f8a01a	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xb1370461	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd052c0b1	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x0062ba4e	arizona_simple_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x0aca27c1	arizona_in_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x1661714d	arizona_isrc_fsl
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x25601893	arizona_ng_hold
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x2ecad782	arizona_init_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x2f79a511	arizona_lhpf4_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x3ce42424	arizona_hp_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x3d3cfab1	arizona_init_gpio
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x3ef2c042	arizona_init_vol_limit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x459199c2	arizona_init_spk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x45b485c3	arizona_in_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x46277216	arizona_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x4af2a55c	arizona_anc_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x4ca9902b	arizona_lhpf2_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x513e00c8	arizona_init_common
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x60f1225c	arizona_clk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x69102a20	arizona_sample_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x6b1d4601	arizona_in_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x729a5ef3	arizona_mixer_values
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x773a485f	arizona_init_dai
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7902e5e1	arizona_init_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7d418ab6	arizona_lhpf1_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7f26f273	arizona_mixer_texts
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7fcb929a	arizona_sample_rate_val_to_name
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x829fc1e6	arizona_eq_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x891e26ae	arizona_out_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x8df0335b	arizona_isrc_fsh
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x93085440	arizona_in_dmic_osr
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x944a0bb8	arizona_dvfs_sysclk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa332781b	arizona_voice_trigger_switch
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa3d06616	arizona_out_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa9493a3a	arizona_input_analog
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xab4d845c	arizona_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xaeac1728	arizona_output_anc_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb443b69f	arizona_dvfs_up
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb49cc45c	arizona_set_output_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xbd8e6d9a	arizona_of_get_audio_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc30ea498	arizona_in_hpf_cut_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc9c29637	arizona_mixer_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcc2e21f1	arizona_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xccc3c5fd	arizona_adsp2_rate_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcefbe8c6	arizona_init_dvfs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcfa62f6e	arizona_anc_input_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd1c6d9bd	arizona_anc_ng_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd2f8891b	arizona_set_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xdf13acf6	arizona_init_mono
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xdf222c8c	arizona_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xdfe804b8	arizona_sample_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe11d0429	arizona_set_fll_refclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe8c9476e	arizona_out_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe9c4244b	arizona_dvfs_down
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe9e8c83e	arizona_free_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xeade9b9f	arizona_lhpf3_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf2cb75e4	arizona_asrc_rate1
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf93f9a36	arizona_lhpf_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x0c7d7709	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x22d8de7e	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x6aa55d61	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x8935e88d	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x8c582747	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xd7456db9	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe1ffa5fa	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x037ee39e	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x17b6a8d6	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x9f1ca38c	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x3e4398c4	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x5ca9e9f0	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x768feb07	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x07fb5fb4	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x7603b3a1	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0xb2941f65	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x9e715be3	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98095 0xe8010d13	max98095_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0xd7422b1a	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x3c2bba4e	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xe91d5670	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xf40a3a04	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x7ab45f20	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xeeadfa58	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xb825f874	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xf1e8dbab	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x07de8902	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x395cc5b3	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x8fc0c414	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xc7527be6	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x80487e2b	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x983064e0	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x9a4a68f9	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x9b5dba80	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rt5514-spi 0x554467a3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xbb4583f6	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x611709f9	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x819dcc6d	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0xa7320c02	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x0ea5e70f	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x60e84e52	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x7ce1aa61	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xb17bbd79	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xbc652fa8	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x5d24d9d3	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x02bb0f64	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x6b4ebdb7	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xddc14739	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xab6cb526	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0xef0fde06	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x050af4e9	wm_adsp1_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x152d8bf6	wm_adsp1_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x23985eef	wm_adsp_fw_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x2b65e281	wm_adsp_compr_free
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x2cef5a6e	wm_adsp_compr_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x3cda79bd	wm_adsp_compr_get_caps
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x3d59e801	wm_adsp_early_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x3d6c87d2	wm_adsp2_component_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x40b20122	wm_adsp_compr_pointer
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x4bd465a5	wm_adsp_event
+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 0x670b0739	wm_adsp2_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x71d6754b	wm_adsp2_preloader_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x71f689ba	wm_halo_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8a7b434f	wm_adsp_fw_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8f8f740f	wm_adsp_compr_set_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x910dda11	wm_adsp2_preloader_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xaceb72c3	wm_adsp2_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xc343f1b5	wm_adsp_fw_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xcdca5ab5	wm_adsp2_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xd3402a54	wm_adsp2_set_dspclk
+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 0xe43b7f4f	wm_adsp_compr_open
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xe4a06910	wm_adsp_compr_handle_irq
+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 0xedf5b2fd	wm_adsp_compr_copy
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x55aa763c	wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x5c210b52	wm_hubs_hpl_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b	wm_hubs_dcs_done
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x61066e26	wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x65fd68b9	wm_hubs_hpr_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x70a1ec8e	wm_hubs_set_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x757206d5	wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x77dbcaf2	wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xbb054317	wm_hubs_vmid_ena
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xfe6fef79	wm_hubs_update_class_w
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x095c092f	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x547ef8f3	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xad373296	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xdf2c9c06	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x978fd8a8	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x876856f9	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0x02d6e54e	wm8994_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0x2f35c54a	wm8958_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x66326e00	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x894360a3	fsl_asrc_get_dma_channel
+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-simple-card-utils 0x016ce1c2	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x02745603	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x0f6067a8	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x1140c9eb	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x11efad50	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x26d3c5d0	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3e142260	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x44fa49f5	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x453436c3	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x56279ff0	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7f874417	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x81a27ee0	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9b8ecd88	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9f503927	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xab63ffdf	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xaf5946e6	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc823c02f	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe9350bdf	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x00018347	mtk_afe_fe_hw_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x106cafdd	mtk_afe_fe_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x2b74d9ba	mtk_dynamic_irq_release
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x2e93c61b	mtk_afe_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x33dcaefe	mtk_afe_pcm_platform
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x3ad3977d	mtk_afe_combine_sub_dai
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x3d9d2d39	mtk_afe_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x45f3a500	mtk_afe_fe_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x47bd98eb	mtk_dynamic_irq_acquire
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x51c33c56	mtk_afe_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x59e07ea4	mtk_afe_fe_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x77eff46a	mtk_afe_add_sub_dai_control
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x95c4dbff	mtk_afe_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xa6b156e3	mtk_afe_fe_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xeccf5be8	mtk_afe_fe_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xeea94e5e	mtk_afe_fe_startup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xfd50cfed	mtk_afe_pcm_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x0bc18d87	axg_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x691a02af	axg_fifo_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xca3be3e4	axg_fifo_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xf4434dfc	g12a_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x2db27767	axg_tdm_stream_stop
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x31a050a6	axg_tdm_formatter_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x354afdc4	axg_tdm_formatter_event
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x679cd72f	axg_tdm_stream_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x9734c838	axg_tdm_stream_start
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xb711a93e	axg_tdm_stream_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xeaf1cae4	axg_tdm_formatter_set_channel_masks
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x1e59278c	axg_tdm_set_tdm_slots
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x12853fc9	q6adm_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x28421460	q6adm_get_copp_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x5b5d083a	q6adm_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x868a6755	q6adm_matrix_map
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x369b6eeb	q6afe_port_put
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3997e13a	q6afe_is_rx_port
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3b16d6e7	q6afe_port_stop
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x498d993b	q6afe_get_port_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x5332304f	q6afe_slim_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x7df60063	q6afe_port_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xa70b9155	q6afe_port_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xae809786	q6afe_hdmi_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd4523c59	q6afe_i2s_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xe45246a8	q6afe_port_start
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xfaf22370	q6afe_tdm_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x151ae9d4	q6asm_cmd
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x40299233	q6asm_run
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x426a12ea	q6asm_audio_client_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x5382edf1	q6asm_open_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x68db31e2	q6asm_unmap_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x6eb89e95	q6asm_media_format_block_multi_ch_pcm
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x7353d9dd	q6asm_cmd_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x857330c9	q6asm_write_async
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xb4f98cb3	q6asm_map_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xc5a116a4	q6asm_get_session_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xcc4952e4	q6asm_audio_client_free
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xd599e50f	q6asm_enc_cfg_blk_pcm_format_support
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xdbedfcd9	q6asm_run_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xe060c0a1	q6asm_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xf37f832c	q6asm_open_write
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x7e52e977	q6core_is_adsp_ready
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x9b02ea0d	q6core_get_svc_api_info
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6dsp-common 0x17142e58	q6dsp_map_channels
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0x5b75f756	q6routing_stream_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0xa7a64259	q6routing_stream_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x36bacd28	asoc_qcom_lpass_cpu_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x790e4b53	asoc_qcom_lpass_cpu_platform_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x972cc1cc	asoc_qcom_lpass_cpu_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xb6ad3154	asoc_qcom_lpass_cpu_platform_remove
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-platform 0x1c9d0a04	asoc_qcom_lpass_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/rockchip/snd-soc-rockchip-pcm 0x89e275f0	rockchip_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-idma 0x14e9ba13	idma_reg_addr_init
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-s3c-dma 0x7cb41aa9	samsung_asoc_dma_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x351170c0	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x3b5404ec	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x7af0050f	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xec805edc	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-omap-mcbsp 0x001e7b06	omap_mcbsp_st_add_controls
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-edma 0x2a147fec	edma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-sdma 0x4941a019	sdma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x086cdb54	uniphier_aio_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x2f33be8e	uniphier_aio_i2s_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x47887cee	uniphier_aio_dai_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x77eedf66	uniphier_aio_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x7bdf208b	uniphier_aio_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x95e1b2bb	uniphier_aiodma_soc_register_platform
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x98b4a10f	uniphier_aio_spdif_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xa4579132	uniphier_aio_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xdc1907a6	uniphier_aio_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x2e3850eb	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x392fc8ab	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5e751f8c	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7ca31ca3	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8e091e4f	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xab191bb3	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xabcf4038	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc61aeaf1	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd28dcc0f	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd7954dbf	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe0cf5aee	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe4bb1046	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe9f34231	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xee6a60cd	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfb5c9101	line6_write_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x000b8b19	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0017fbc6	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x002546a6	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x003f0127	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x004bb5db	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x005ee6a5	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00691210	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0070a92c	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0072c5d2	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x008603b6	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0088f5e0	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x009f0ba9	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x009fc61a	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a5438f	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x00cbe464	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f2f7c5	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f5ed39	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x00fc4211	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x00fec16e	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0100d8a0	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x01010da6	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x010445ee	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0119c88b	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0133372e	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x01374d31	arm_iommu_create_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x013acda4	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0140a450	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x0141899e	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x0143f778	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x014ec177	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x01525e3b	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x016517fa	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x016acfd9	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x016d5f74	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x0170cb6c	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0182c26a	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a0c0fc	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d747f5	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d7a78c	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e8afc5	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x02037ecc	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0220e662	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x023c14d3	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x024faf27	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0253e1e6	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x025445dc	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x025bb6d3	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x025cdd46	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x025e0d44	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x026577ae	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x026a2e0e	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x026a6607	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x026eb9f0	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x026f3380	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x02866acb	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0290c403	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b24cd3	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b8b64e	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d0246a	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d0fcf1	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x02dfdf64	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e8d48a	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ea61a6	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ecb1f4	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f7dcf2	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d7205	clk_half_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x03315f0c	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0339bdb9	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0353163c	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x03601f4f	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x03662731	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0369568c	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x036d8e9b	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x0379758a	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0390e466	get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c90a75	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c96ccf	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce8eda	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d6d6de	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d916b4	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e55ffd	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fbdf7f	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04136c54	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04240d13	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04307c53	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x043148c9	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x044248c5	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0456eac3	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x045ce2f1	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x045fcacc	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0474841f	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x047880f3	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x047fd5ab	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x0483fba5	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0484e7ad	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x048d98c6	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x04a288bc	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x04a612bc	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ae4635	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b3f56f	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bd60ab	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c13ab5	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c1b471	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d19367	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x04da3066	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e13c31	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ef21ad	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f8d400	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fbf3f5	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fe0e6c	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x051da817	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x05206fb1	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x0525a18b	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x0529284a	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x052e87a6	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0536b192	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x05435a52	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x054a43f6	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x054fa9a8	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x05629784	sm501_misc_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x0578deb8	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x0578ea99	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x057b2207	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0583ebb6	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x05893dbf	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a042fb	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a7a72b	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x05aeab96	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b763d7	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b9e849	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x05be77ff	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bf4fdf	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x05e3a47b	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0600228d	nand_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x06122337	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x06184f57	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x061e754f	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x062529f4	ahci_print_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0625ab0e	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x06357a11	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0643b728	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06548bf2	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x065799c7	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x0658ddd7	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x065d7045	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x066d2e76	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x0681af47	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x069651ed	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x069d5e83	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b53bd2	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d98b41	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e92aea	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ebe794	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ee09d7	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x06f2fcdd	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x071f5f75	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x0721e568	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x07222fff	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07228602	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x0722caf8	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0729981b	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x072ffdaf	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0731346d	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x07482d3a	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x074efd35	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x075a55f5	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x07688d65	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x077f40de	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x07884890	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x079291b5	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0797c4fd	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ae3cec	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b3615c	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c62a66	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d429ac	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d9c614	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e75624	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x07eb95d8	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f07815	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fa055e	scmi_protocol_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082609aa	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x08415507	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x085c9f5d	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x086cb9af	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08829faf	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x089385b9	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x089c003e	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ac9f0d	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x08aeed7f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x08afa490	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c73234	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e60c74	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e94300	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0901464f	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0901553e	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x090f7f71	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x091f18c2	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0932d1f0	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0938ceb9	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x09398812	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0942796c	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f7165	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0956b414	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x09728fe2	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a47083	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b3c096	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09baa591	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c53314	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c5b6af	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ca6f88	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d3bf0e	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x09dc42d1	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e0f397	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a04f319	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a08bc1c	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a08d9c1	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a223bed	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22631c	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a396cfa	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a620692	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a7db579	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8607a2	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aba4e2a	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abb5b8a	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abc3d93	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abdb900	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ae48fa4	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aedd506	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af328a0	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af632e8	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af81118	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afa8c7b	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afe9e07	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b18b725	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2970fe	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b33e804	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b381a24	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3f00f0	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4b2b53	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b56deba	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b572618	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5cfd4d	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6991d6	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b73d3bf	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb028d4	hisi_clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb44ff3	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb8f043	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bd73e8f	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bddc26a	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bfcd299	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c224fdb	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c7c18	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c338ae6	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c4a62c6	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c552506	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5f81bf	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c6d27aa	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c80bdbe	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c824755	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9d9f52	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca9bbb0	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb81c7d	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbcc0df	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc73601	gpmc_omap_onenand_set_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cddb7da	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf6313a	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0dfbd7	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d13bf9b	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3017c3	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d338806	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a5939	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d72eb31	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d899d7b	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8ce9f4	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8de836	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da2f510	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc517bd	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb4256	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de17777	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dedfc69	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e36b5d2	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e38a7ae	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e4ecb9d	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e664fe1	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b642b	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7627b0	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e875ee8	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8a574a	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8b6b5a	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea58bba	nanddev_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb283fb	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec0d5a3	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec7d597	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ece0a18	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f04f004	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2da3dc	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f42e063	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f4d40ce	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f556aa3	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f59a03f	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f61a053	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f8687f9	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9ea249	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa88073	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fac1968	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fdc4720	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe40b47	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe813d6	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe9e51a	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0feac967	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1001a499	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 vmlinux 0x100359e4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x10058764	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x100ab093	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x100b0af8	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x1018028c	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x101a5274	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x10375313	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x103e5115	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1043cac3	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x10536851	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x108b7dd9	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x108ddb66	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1092f3be	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a30625	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x10b886ce	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x10bfd8c9	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d7fac7	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x10dcf827	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e5fdb9	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e7fad0	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ea5033	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f06c9f	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x10fb4f21	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ff2ef0	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1101fc80	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1104c4d5	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x110bf02e	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x112e261d	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x113de406	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x114fe91e	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x115aa17f	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x115cf795	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1162bf78	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x116346ad	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1175b299	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x11827d0b	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a3bffb	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11cd201e	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d699b8	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d7589e	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e5bd7e	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x120c830b	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x123c2fe2	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1245bfdc	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1254b7de	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x12628db8	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1284a238	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x128d41bd	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12946b4f	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a9828e	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b101e1	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x12cb6a5a	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1306ff49	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x13339105	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x134259bd	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x1343cc23	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x135a832b	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1360e44c	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13643e68	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x13645aae	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x136f7f56	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x137c3c05	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x137e2312	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1381d4f3	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x13889036	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x138a73a6	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a60798	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b2fac4	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b7e015	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b9523f	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c13fab	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c1dd1f	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f15ef3	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f2926b	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x14019536	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1411b54a	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x14297f9b	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x142d58fd	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 vmlinux 0x144fcf7b	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x14516db6	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x147d2602	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a98a21	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c2872d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d09b51	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d87b68	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e9ddea	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fd9bd4	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x15032b20	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x150faf97	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x151cecbb	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x152979ee	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x152a33ef	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x152ec8dc	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x154948d8	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15553dd2	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x155c2f8f	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x156c6cee	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x157ccc31	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x158928ac	omap_iommu_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x158e6fee	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b06044	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b9b6e4	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c794fa	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f8b9f8	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x16187e35	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x161d925e	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0x161e647d	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x166189c6	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1697297e	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1699e03d	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b44f17	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b89b05	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c0053a	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d40c82	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d9f9ff	pci_remap_cfgspace
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1709af28	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x17101e94	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x172a8246	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x17303ca0	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1748a038	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x174c1d56	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x174e5b5b	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x17514255	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1751d933	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x175fef3a	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a0633	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x179b6fd5	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a65341	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b054af	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bf6f0d	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x17cd02cb	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d401f2	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d6b722	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f7be93	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x17fa5d65	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x180e963e	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x181ba3ce	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x182c3306	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x183c1bbe	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x184536c8	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x18556c7a	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x186c5ccb	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x18800ef8	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x188c1fc0	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x188ca8eb	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x188f8594	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x18977f0c	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x189a64fa	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x189bc347	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bd3186	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d335eb	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ddfa86	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ea5d60	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fa361a	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ffb24d	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x190186d3	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x1920b878	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1920bef0	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x192a45e8	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x192f13a1	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x193c4913	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x193ce374	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x193fc19e	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x194132fa	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1952fb4d	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1954109e	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1986c23f	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x198aad64	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19ba9c13	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x19bf994d	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c14842	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c9141a	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x19dcc221	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e38605	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19eada91	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x19efc069	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f7f870	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x19feb6e8	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x19feef2d	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1aae44	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a258785	mtd_write_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a2cecee	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a521963	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a656954	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6af649	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a7f8531	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a9cc001	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aaa5d3a	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aadb367	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac2dbc3	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad54cac	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad91673	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae234e9	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6c9aa	clk_regmap_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b240bc0	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b27fcaf	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b2d9f22	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b316150	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3305f2	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3ca2cf	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b456c49	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b46aa90	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b47d619	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4b4da8	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b574440	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5c82ca	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5e7b5e	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6e3cd7	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b72adf7	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b78a199	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b877118	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8d3f01	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1baa3d0c	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb64f9b	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc40a8d	gpmc_omap_get_nand_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bcc55f6	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be8d839	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c39fab0	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44e89f	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c48d132	pm_generic_freeze_noirq
+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 0x1c798d9f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8b5e82	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8f193e	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca22d82	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb44e6a	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ccf8e50	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd2723d	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd8dcca	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cefeb12	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf15cba	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d16f88f	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d182421	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d23e84c	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d266d6f	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2aead8	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d42d8f4	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4bca93	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d54bfeb	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d5d9720	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d61e7e1	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d6779c7	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d777ac1	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8eb76f	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da47641	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da76adb	meson_clk_mpll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db8b164	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd17235	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de7f6bf	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1deb3624	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df208db	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df800f1	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df84cf5	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1d25a5	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e262d49	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2a0372	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e431ef1	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e486e17	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e4a66ce	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e4ed300	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e57049b	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e58c783	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5c5644	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e75e579	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7d6157	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e818eca	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e89aa5d	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8a5c9f	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9211cb	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e95358b	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea098a1	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea42f01	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaa24f3	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecaa991	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x1edc9f88	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eee7aa9	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f33fca6	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f39dc60	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f3e7e5c	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f3f4baa	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4b07db	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4c0cf4	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f53d43b	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f54b3ee	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f576a77	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f649a72	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f64b94b	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f774f46	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f7978d5	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f7bdaa8	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f80cf76	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f81d050	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9a7c4e	mtd_add_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fca0b38	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fcb9836	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fce34da	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdb4354	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdfd27a	xhci_mtk_reset_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe01fc8	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff5b1d0	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x201ca179	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x2020e621	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x202981fd	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x20539221	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x205c80a5	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x205ee88c	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x206a33fe	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x20703534	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x207a6cdf	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20995171	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b0d8cd	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b46219	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x20be4dc3	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x20be8a6e	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c93b6c	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x20cea477	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d0b605	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de8381	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f83d37	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fbbfca	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x21033411	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2103c47f	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x2106fdb5	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x210a589f	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x21447ae5	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x21494650	mvebu_mbus_get_dram_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x21562a1d	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21726652	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x217b4bf2	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x218f6907	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x219cc695	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a90479	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21af8707	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b0c894	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b1f020	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b2e6c7	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x21bd7906	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c4ced8	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21f15c80	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x220daebe	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x22155547	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x22171d49	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2220ae34	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x222bb8ca	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x22378b33	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x22514990	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x22582194	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x22648c02	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x2268f8f1	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x226aef6d	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x226b7f6a	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x229a269c	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x229ad67f	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x229efcb8	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a52ab9	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22aa4698	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b8d52e	sdhci_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x22bc7b36	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x22cd9bc1	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d854ae	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f66ea1	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd2872	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x230511e3	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x231490cc	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x232949e0	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x232fc091	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 vmlinux 0x23344d99	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23472dff	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235383c2	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x235638b3	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2369e62f	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2382ab46	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2384bfd2	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23950433	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x239cc9c5	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b8d7f5	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c93c95	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f55a2e	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x241328e8	ahci_check_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x241b2404	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24497311	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x244be08b	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x244c7da2	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464e4b3	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x246d8f6c	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x2474746c	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x247b2e41	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2498e61d	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c2d3e0	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c33e5c	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d50a71	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e17733	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f21f4b	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2504842b	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x2504f3dc	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x250dc7b1	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x2514738f	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x251798e7	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x25228dd9	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2536e288	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x25457b88	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2554abe5	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x255c76cb	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a2f26f	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a84c72	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x25dfa6ff	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e1cadf	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f5d8ea	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2608491a	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x2617d910	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x261c3c08	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x26311e41	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2638586b	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x26525a84	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2656a38a	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x265b76d5	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2681d607	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26925e83	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2693d38b	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c547c0	bL_switcher_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d589d5	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ea21fb	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f77e3b	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f85135	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x26fd947c	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27278f42	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x272e9d77	hisi_reset_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27361048	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x27540c07	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x2754d58e	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2777a01f	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x27870a86	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x2789302c	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x279237a9	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x279739b0	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x2799dd09	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b70e50	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b737b7	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x27bccc6c	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x27be54d7	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c762c7	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x27cf862c	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d1dc30	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e752bf	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e860b5	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x27edf0dc	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f546a3	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2800e7f8	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x280177b0	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x281e090d	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x28213a2e	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x282b7d57	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x28492c48	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x284db2ab	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x285570a3	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864dd8f	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x2865c64e	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2880a840	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2881dfdd	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2884de3d	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x288adb66	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x288c8913	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x289d362d	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a7db63	nd_fletcher64
+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 0x28b032a6	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f9c395	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2918e110	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x292019f8	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x292c14ce	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x293d6a39	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x293dfd32	mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x295a169a	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x295b982a	hisi_clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2967f763	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x296a381e	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x296e2d90	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x29733950	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2975d979	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x2986ec1d	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2988c54b	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2991402b	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x299a161c	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ab39ba	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x29b6e8bd	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c77ecd	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cbc468	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cf2470	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d25589	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x29df6410	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0a40fa	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0f65c8	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a13e774	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a342f70	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a37f1ce	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a3b8996	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4caa9d	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4e48c1	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a72e4d4	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a845531	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a87b351	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9de65c	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa414df	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2acbefec	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aceb097	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2adbc00a	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aef8d4d	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af38cde	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b054b97	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b11cbb5	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b28ef47	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2b0c02	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b473961	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b476b6c	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b574535	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5e4da8	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5ea67b	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7583f2	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b76c6d6	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b76dd5c	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7a54e6	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b94335f	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba0c505	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba99668	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bbca298	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bc08f27	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf9caba	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bfd61ba	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c481d25	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c517476	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c53e86e	get_tree_mtd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca18535	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca79b80	cpts_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb6f099	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbbf68b	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc409bc	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cce4698	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce6c79b	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cfa582f	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d095679	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0bdecb	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1eeb1d	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d252d30	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d27e8d3	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2bfaa6	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2c6ad4	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d39a170	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d5a4702	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d720eba	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7f53b1	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8870ec	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9f75fe	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da09399	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da12195	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db1532f	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db67d4a	owl_sps_set_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc8874f	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de92c74	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2debd62e	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df38900	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2185ef	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e30509c	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3731b3	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3b31a6	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4261f6	snmp_get_cpu_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e45d966	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e48b565	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5c22c6	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e6b3b7c	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7d0f99	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e86cd38	cpts_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e978608	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eaf255b	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb25109	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb27501	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb738e9	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec0755c	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eed75e2	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0e5180	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f475d71	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4d3851	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5c1223	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f62a7c9	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f63e634	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f895416	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f89f67a	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa3ae8a	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc7504b	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fe6e98b	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3048db56	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x304c78f7	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x3059ce47	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x306047db	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069809a	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x306e7b69	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x307619aa	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x30970589	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x309a56ff	rockchip_pcie_enable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x309f0ff1	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a2b5f5	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x30be5e90	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x310e87bb	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x311e4cfc	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x314c047c	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x31506af8	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3150c1c2	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x315dab31	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x31667db3	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3168ce9d	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x318c769f	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319870a3	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a08342	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b05661	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b81c0b	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b9a0f8	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d612b7	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x31fac2d7	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x320668f0	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x320992f0	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x320a85aa	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x320e12a6	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3212f4d6	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3238b0e0	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x3276795d	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x327735af	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x328541e8	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3289fa9a	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x329a5eb9	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a6068e	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a86dd8	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d28e36	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e563b6	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ea95ec	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f69c8a	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3312bbab	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x331b114c	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x332825a8	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x332b5752	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x332ccfa5	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x3341cb1c	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x334c6d33	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x335fcd58	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x3377a2e0	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x337ff41f	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a0cb2b	sdhci_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b099fa	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x33bfa4d3	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c97013	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cf1ca2	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e4d119	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e9e0a2	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f1a173	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x34091b17	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x340ac0d9	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x342197e9	scmi_protocol_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3426ddad	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3443fab0	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x345bccc4	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x345dbeab	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x345f10ae	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x3461ba36	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x34632acf	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x3465c7d4	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x346c3c6a	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x348b9071	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x34908579	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x349d4433	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a7f7e1	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a84df3	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ac50a4	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ca3ffa	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cb7ff7	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ed88da	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f2bb8e	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f57938	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x35012316	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x3506887a	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3506ec5c	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x351097f6	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x351a0c2b	mtk_smi_larb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x35270302	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x354b324c	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x354ed793	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x355f3227	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x35623a60	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x357f1304	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3582fdb6	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x3584c186	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3592be44	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3593ced9	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a13c8a	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c9516b	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x36078ee3	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3619b46f	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x361fc162	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x36230956	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x362dafc6	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x362de961	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x362fc099	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3641ead4	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x364945c6	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3683822f	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a7a4f7	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b22648	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x36bbc59c	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c02aea	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c238c1	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d70cc1	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x36dfa71a	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e918f9	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f11648	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fddedc	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3706d3ec	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x372676ab	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x372a0483	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x37386d47	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x37416b15	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377e9f0f	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x378ffe8d	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x37aa1cb5	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d1ead1	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e37da3	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea3d12	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x37eee3e7	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x37fe5ef5	omap_iommu_restore_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x385bcefd	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x385c5c2d	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x3873aae8	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x387710a4	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x3880592b	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x38972652	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a9c2c7	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x38aa4657	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b2abe7	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b6619e	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c0c9e4	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cdc53f	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d64028	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x38deea35	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ecfa1a	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f74976	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f852d8	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fdbe2c	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3909bd6d	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x390bdcfd	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3911b25c	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x39174654	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x391cb957	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x392889d2	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x392ee465	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x39340045	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3966a431	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x39683cce	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x396d73f8	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x39860bcf	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a3f512	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x39aa266e	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x39beceea	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d305e9	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x39dd08bb	mtd_is_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e97d1b	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fdee99	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0b2cd2	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0ef989	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a10c3dd	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a14cd49	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a229c3e	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a300331	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a31796e	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a44d29c	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4e8c70	__cci_control_port_by_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a57e8fc	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a694df4	nand_status_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6dc43f	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a78e3a3	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a83d1e4	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8432cd	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a977b68	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a99ce03	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a99fe74	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad7c8d6	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af310a7	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af8451b	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afa91bf	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b2a1cc2	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b2db7e7	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3da72e	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b626a51	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b7b6494	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba26281	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba27c0a	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba98e1a	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb48e2a	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc03d2b	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc51c7f	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdd87da	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be42941	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf02f1b	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bfad7e3	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0bf4ce	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c17fb	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c240461	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c30181b	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c311ee7	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c34a48b	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c34c38f	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3ee8e9	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c40ea11	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c58d815	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c651f33	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c72724e	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c96c654	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca8444f	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc71cfd	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cdf59c1	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce4c85e	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce60b13	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce78fd5	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0350ed	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a6d8b	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a9f13	clk_regmap_gate_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2949d7	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4925c4	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d49fc73	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5ed5ee	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d820cb0	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8f50af	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d994ddb	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da509d7	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da54e1b	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db37208	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db65caf	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbed0e0	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc1d3c7	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd54c42	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dddf5d3	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dde89a7	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de2991e	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1aa972	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e31d9c3	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e39e0c0	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3a4ef7	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3b2ee0	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e423da5	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5163e7	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e55d4f9	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e58536b	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5d640a	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5f5622	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5fd0e5	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e730505	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8282fd	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e87a44c	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea7ce25	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eaab678	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec7d87a	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed2d869	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3edb2b47	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef60eb1	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f02cb0e	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f060887	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f258228	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f36186b	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3b0e46	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f492e01	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5034fc	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f536ef5	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f537d70	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f55485c	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f65e941	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f80e8a1	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f89f779	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f90b7f8	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f911e10	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f952516	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f98ae95	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbf6ae7	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc601a2	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd2187f	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fea029c	hisi_clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ff138a8	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4014883b	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x401c8afd	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x403feb89	mtd_read_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x4042f3fd	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x404640e0	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x404ec98e	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x40553462	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4060b195	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4072d0ac	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4085134e	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4094ce0b	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ab2ade	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x40acbeb3	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x40af43c1	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d81c3e	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x40da4cd1	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x40edc377	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f67015	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40fea3da	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x41125af6	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x412ac840	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x413c1f5a	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x413f3ec8	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x41545a0c	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0x4160ddf4	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x416a7c4e	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x416c2f50	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x41785787	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x418146d0	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x418a5371	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a04054	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x41adb5d5	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b95a77	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c13141	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c30f3a	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c3a687	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x41dfbe9a	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e6f4c8	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x41eaef92	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f03a23	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f24cca	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205ad24	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x421309f9	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x424031fc	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4242ef6c	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x424e21bf	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x42517e07	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x4255ed24	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4282d048	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x42830dbd	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x42887525	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x428c16d1	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x429b6f81	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42aadcce	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b442e9	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x42babe3b	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x42bdd84d	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c64437	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d0dede	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d6153d	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d71e3a	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ea6cbe	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ee75bb	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x42efb127	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f1f320	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x43079642	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x43083d0f	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x430ca8ec	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x431011fb	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x431b58c6	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x431e8d7e	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4333968c	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x43385ed4	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 vmlinux 0x433f6571	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x43417ce7	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x434c52e8	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x435ebca5	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x435ee4af	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x437cc5e9	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x43898ae1	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d75c3	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x438f4177	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a1ab12	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a8156b	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43bb3aa2	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x43cadc78	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d6425a	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f25f11	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x44012def	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x440f8b8a	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x4411aed2	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x44187a91	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4425cec6	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x442dedb9	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x44339406	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x444166fc	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44531e80	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x445e1431	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x4462e811	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x44689bfb	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x447110cf	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4479fb0d	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x447f8b4d	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x4482569b	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ab22e7	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ba1042	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c15368	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c40198	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c46d45	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c528a1	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d53d29	nand_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x44db0023	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x44eeed5c	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4500f794	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4511fd33	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4512ebc9	snd_soc_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x45461945	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x454c7f3d	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4556a0d9	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561f990	qcom_smem_state_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4562f8e4	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x456e1020	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x456ea8a0	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x45736897	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x45803643	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4582353a	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4591ec9a	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x459352e4	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4598e2c8	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x459b0c21	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b26b2f	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b68503	nand_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c3afb6	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c579a2	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c5cbb1	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cd9997	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d07221	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d208d9	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d75e20	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x45eb08c3	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f1bc79	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fd6556	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ff8535	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46067278	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x4610c4af	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x46188243	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0x462bda1f	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4657cb0c	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x466e5342	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4689bc34	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x468ca8d7	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x469a9f1b	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b722fb	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bc6ada	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c06c19	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e0209b	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e48fba	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e806e6	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e8b03b	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f2d1a3	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x47043ceb	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x470f13c4	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x47317949	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x473973dd	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x474b67fe	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x475971ab	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x477d7282	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47815057	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x4781ef36	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x478786a3	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47925794	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x47944cef	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x479e9c18	rockchip_pcie_parse_dt
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c05a60	nand_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ca64d1	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e0110f	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e2aa4f	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x48020c1c	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x480382d2	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x48072229	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x480d33d5	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4818a437	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x48199415	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 vmlinux 0x481b9c5f	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x483133a4	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x483cbf68	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x484437c4	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x484548f4	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x484779ef	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x484f53da	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x485c2d76	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x48740cb1	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x487b26dc	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x489257c5	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x48995ae3	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a09609	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a99253	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bae082	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bf8e25	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x48db1c5d	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e4781b	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f44f16	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4904289f	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x49090bf6	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4917bc2e	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x49187548	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4924a1d9	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x49326ef6	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4933bb14	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x49370688	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4959ea22	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x497194ab	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x498600b9	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4997dc9d	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b4b126	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bada6a	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x49be0a64	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cce6a7	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dfe604	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e1ec6a	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e90d0f	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49ee6549	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f573a1	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f84570	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x49fc7090	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a07b388	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a09e004	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a13bd30	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a54e905	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6c6d79	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a75b58c	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8f957d	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a919069	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa6a583	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aad2fd4	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aad96c8	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac97058	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae7d9e9	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4afce253	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b05adb0	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0c7b1b	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2e84f4	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b30f86c	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b3d8d57	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b40653e	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4e305e	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4ec1c1	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b58ebae	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b63ecb7	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b640dd5	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6b0936	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7f4b22	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b88a5cb	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b8a14b7	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba09a3e	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba5168f	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba53f45	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba82855	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bbec480	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bce5ed0	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be4d353	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be73da5	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be8e3bd	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf52ffa	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c16ae30	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c304360	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c54f802	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5be8b3	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6614eb	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c678646	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c687c3a	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c69bece	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c792efd	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9226d2	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9941ee	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca8cf1b	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cac44b6	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb1cf44	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb7dcdb	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbfa4af	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ccbc7de	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf17d9a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf24332	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf293c8	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0c171c	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0d345f	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d1878c1	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d27a28c	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d2bc386	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3687d9	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d38f1e0	bL_switcher_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4b14e9	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d51b1d7	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d58a5ca	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d7c114a	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d94d673	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d988a44	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc07032	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc4fab0	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc9d578	mtd_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dcd4f03	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd8f3f6	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4def3548	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df391d4	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df67a3f	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df74868	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfc2f33	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e058bbe	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e32906a	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd654	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e4d5ded	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6076c8	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e613723	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e61c529	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e74c5f8	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e95e9d0	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9fd1c3	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eae0ba9	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb5c447	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb7892f	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec1703c	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed2af28	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eda3dbb	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f060192	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0c1276	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f146757	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1867dd	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f33263d	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3a5f7b	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3be859	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f48cf06	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f543ff9	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f546853	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f5a37ab	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f674586	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7e564d	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7e9744	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f81b817	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f86e4a2	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f89d83a	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8f2a3c	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f96d426	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fddb8f4	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe8a983	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe99c53	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fec9be7	dapm_clock_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff738ab	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5000bee3	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x500176fc	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x500824a4	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x5010a7e0	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5012260b	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x50157768	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x502a84a2	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5030e1b9	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x503170b4	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x505da04a	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5078189a	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x507818f6	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508afef4	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x508eb907	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50968827	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x509a35eb	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x509a51d3	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c54b78	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c622a2	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x50cf88d3	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e0d14f	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ec2fb2	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5118292e	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x512b95c6	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x51370570	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x51389b02	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x513cbb10	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 vmlinux 0x514e9c5e	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x51754009	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x5180d824	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x5192fb00	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x51a1a7b9	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ae46af	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51bf80be	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c32eb7	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c74577	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x51faec09	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fe3d2c	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x521dcfd8	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x522e3cb5	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d9c76	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x526d13ea	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x52704ef3	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5275ead7	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x52778a0d	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5296e113	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a7b029	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a8d255	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b3e8a1	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x52c2e2ea	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d9faeb	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x52db4020	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e1f906	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e2392a	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f30089	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f8d56f	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x53107e92	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x53121ea8	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5323f09f	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x5327286c	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x532762f4	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x532eb0ac	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x533ae2cb	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x53427b75	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5350223b	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x535983f8	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x53678951	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5379a8d6	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53972b08	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b07ee7	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b3e753	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x53be434c	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c09d00	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x53df53bc	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x53eaa733	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x5416ed32	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x54172702	cci_disable_port_by_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x543a56a4	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x543ad6d8	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x543c351f	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x54444fba	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x544d0924	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x545f7f21	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x548c28e7	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x548efba1	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x548f6665	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a25da2	qcom_smem_state_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54afc04c	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54bd79de	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c36bc5	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e22242	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e75afb	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e9052c	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ec5b38	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ed58b9	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f22881	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x55031b13	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x550cf380	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x551bda42	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x552689b0	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x5530089e	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x55434e9e	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x55555c8e	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5556b4cf	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x555c2b1b	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f25b4	nand_deselect_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x5561a1e9	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x55845c1e	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x55875f75	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x558e0e2c	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a349f2	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a7d523	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b1dbbb	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x55bfeafe	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c3cc23	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c43cbc	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c52ab0	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c930be	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x55dc8057	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x55dcad8a	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e8eae3	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eaf8b7	xhci_mtk_add_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x56170902	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x562be32e	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5633a028	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5645c5cd	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x56473008	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x564babd0	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x56510f1c	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5653892e	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5657c97a	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c5f67	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x56606785	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x56624735	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x56768f5f	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x567afce6	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5696992e	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a6a76c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c6dfbd	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ead3ad	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5705f03c	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x570dc428	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x570fe163	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5711a4b1	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5721a5f6	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x57465ff0	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x57629ccf	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x576d8143	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579b0c50	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a231cc	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x57afab19	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57cbbf78	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d3f459	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d6fc3f	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d9e38b	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f1cdbd	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x5803527d	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5837d4e0	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x583ce077	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x583f9794	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5841fb7c	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x5847e850	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x584c4f51	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x585f6b1a	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x5861191b	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5874227a	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x5877dda4	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587ac04d	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a66b81	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a72765	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x58c62c9c	register_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x58de5540	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f6d630	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ffbbd7	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5904bbdf	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x5905ca07	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x5922bf3b	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5938c72f	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x594ca08b	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5956843a	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x596dad15	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a1fab8	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b75ce9	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c58d04	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x59dea4a3	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x59df6273	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1ae347	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2464b2	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2c3477	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3c9d76	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a518a2f	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a68233f	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6b0590	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6c2f84	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6e29bd	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a75f32f	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a76e56b	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a856ec2	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9221c0	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a997aa0	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9efe15	mtd_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab17678	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abf6fba	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac24451	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae467e9	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b0cc081	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b177fb4	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b23889a	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b252bfb	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2cf6cd	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b358e12	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b376859	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b458d81	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b543fff	nand_readid_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b5f94ea	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b696151	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6f31fb	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b771107	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b890426	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8986e4	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8ecf5b	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b9aa196	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba8dccd	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbddc97	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bcce7ac	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd13d2e	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd19f20	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5be0ca2a	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bea4b17	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bed0bdd	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c1054be	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c141999	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3c9a65	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c429d63	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4bfe3d	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4ea964	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5616b2	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5ddacf	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c724709	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c78c419	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c795fe5	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c80a615	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c84d1f6	mvebu_mbus_get_io_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c94ad79	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c9944d2	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca143af	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad63cd	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb9dab4	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cea35ef	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf5ef9e	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0c16ae	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d138bd5	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d285ca1	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d36ab47	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d4ba05f	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d546c18	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d69f1ed	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d708f99	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d73f4c2	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d85d925	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d87d0f1	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8ff19f	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d977a31	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da077b0	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da26e4b	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc1d624	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dcf8323	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5deab777	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dec5bf4	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df778c5	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df8a07a	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dff6fda	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e03f297	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e12ecc1	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e1ad242	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e1e6b6d	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e355865	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e359827	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e631333	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e67b71d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6e5416	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e83a73f	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb600a7	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb60a40	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eda3073	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f20a414	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f35ec96	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3674a3	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4520a6	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f5f66e3	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f626b14	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7a5bc0	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7b6b7f	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f847e94	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9e1a1a	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fac62c1	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fae4544	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb6f646	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc2c660	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fcb27f9	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff41a3f	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x602eac7a	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6047722a	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x605d90d0	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x605e2968	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6075d0c7	omap_tll_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6084cb1d	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x608d0edd	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60afaecf	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b23a17	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cb659e	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d93db4	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ef6c43	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ff3941	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x610c062c	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x612e8799	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x614150ff	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x614606b8	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x614782f1	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6152ea71	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x61537ad5	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x61550b04	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x615e5c19	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x616afeb9	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x616b52cf	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x61714ad2	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x619d4c94	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a08f39	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b3fbe5	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b6164a	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b9a8e4	nand_read_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c50c02	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d41d81	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ef079b	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f49716	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6216ba36	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x621c0d44	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6230c415	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x62438abe	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6248c929	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6249cdea	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x627e5794	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6282a228	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x628df6db	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x62907de6	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6292a3f4	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6292b2c0	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6295c5c7	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a055f4	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a4d72d	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a857fb	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x62af7098	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb281e	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bc5fbd	omap_iommu_save_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c01e6e	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d0e2a6	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e6bd2c	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f3f959	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6304bf8f	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x6306a717	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x6307a4fb	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6317756f	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631a4113	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6328bcab	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0x6331032f	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x634392a6	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6345ce28	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x634e8f50	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x63578be3	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x6378d139	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a85b3	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x638e9868	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x638eb0ee	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6392ade6	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x6393562a	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6397d0aa	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x639acf3b	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x63aa59c2	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b6a524	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b9f410	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f3cf53	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fee0a5	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x640aab9e	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x64103d51	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x64256424	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0x642eeec5	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x643cc7ed	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x64453ef3	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x644bfdcf	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x64590f81	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x646b5237	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x647c641c	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x648798fa	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x64897dc5	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x6493a2df	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a3c365	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a5b4ea	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ab680a	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ac93da	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c07d32	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c13c38	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdf082	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d9c8d5	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x64dc25a4	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ed4458	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ef3d06	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f05278	sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f789e9	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f9852d	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x64fc5a30	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ffbf00	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x650b2b87	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x652c776c	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6549efca	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6552e2d1	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x65537437	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x65575819	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x6563d2f8	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x656df73b	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6584bcc5	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a90908	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65dc6cbf	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e3f391	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e58d16	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e8c9a6	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ee06bf	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6608905a	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x662c655b	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x664d8131	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x665ca49a	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6662e89e	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6679fd28	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66932674	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b6721f	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b74fba	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bddb83	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x66be94fd	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ccb599	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d1d3f6	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66dc9abe	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ef697c	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f5fe89	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fb0de8	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fc2bc0	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fde525	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x6708d903	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x671b76cd	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x673101fe	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x673f6258	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x676a4624	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x676b3df5	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x676b9193	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x676f56b3	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6776a6a7	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6781513c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6781b8f4	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6787fdc5	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x678d3760	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67cd227f	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x67cf51ab	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x67d984e9	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f64535	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f9d6f5	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x67fa828e	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x680b1cdc	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x680d39f9	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x68203225	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6822d474	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x682c7c57	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6848819e	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x68758fda	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6879c15d	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6881a2d8	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x68855814	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6894835c	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689c6937	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b55e21	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x68bb04cb	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x68bcd9ca	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d2e5a8	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ef9794	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f37e9f	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f631e0	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fb626a	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fcb30d	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fd4ed2	snd_compress_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x69159e6f	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x691693ca	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x691c85b6	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x691e108e	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692a4f08	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x692c9f67	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692d87ed	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6945725e	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x694ca4c6	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695b240d	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x695ba5b0	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x69670f2b	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x696a5804	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x69783252	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69856d2a	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x698cd240	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x698fb44f	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x699864f4	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a2aa9f	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b030ce	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x69baa54e	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d51a15	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d61204	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d8d51d	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e5b0fb	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e8efbc	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x69eb3ccb	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ed2e4f	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ee3554	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ee459e	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f58149	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a09f688	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a173f09	ahci_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2c78bf	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a30ef8d	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a350e8f	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a37eb10	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a39a417	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3a58d4	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3a95ee	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3c16dd	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4b9da4	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a60a81d	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a619099	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a666844	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7c0cae	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa5e412	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab1c8bb	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab36858	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad1ccf6	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad353d0	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae641b6	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae799cd	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae7e708	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af9259b	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b122d13	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1923e0	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b231dd3	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b334acc	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4e9648	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5cc0f5	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b60744d	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b66d580	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b72e663	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b9009e7	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba7cdd1	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bbb4d65	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bcf0d1e	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd48d8c	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd78922	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdd0da0	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be73d35	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6beb06c2	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c014b8c	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c236a52	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c43b737	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4bb17c	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4f8665	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c539ab0	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c72989c	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7985f1	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c830860	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8bf61a	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c9535c4	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb6189c	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbfb87c	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc2168b	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc7b9c1	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdbb103	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ceda891	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cffed33	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0027f5	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0b8c5e	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1028fb	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d314b64	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d52965b	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d87885b	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8bb3e8	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d993bfa	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9fc5d8	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da5b483	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da5bc03	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daecf2a	clk_regmap_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db1726f	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db3f650	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc68dc5	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dce374d	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dcfa78e	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddc5519	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de00488	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df9ecca	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfabed1	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e16c380	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e222d2d	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e250950	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2d4556	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5815b1	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8a82b0	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8b046e	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8bb191	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e99f3d4	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea3e73f	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea592f4	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eaf4fc4	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ecca4f6	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed61de0	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eed38ef	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef1dd51	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efbeb52	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f003c14	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f02516a	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f06ebcd	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0b6bac	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0c41f2	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1601ee	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f2aa2dd	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f2b4260	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f50c8ec	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f568f16	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f5c7f67	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f6be3d7	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f76124c	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f81cc3e	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9ba412	ahci_init_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d3dd5	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb1b44f	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb7e313	asic3_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe7e448	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6feb4f67	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fec1b8a	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x7003727c	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x700bb3a6	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7017e545	sm501_unit_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x7051253c	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7060c010	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7061c828	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x706fb6a1	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x70707807	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7077a926	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x708ac83b	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x709d82af	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x70af8ca9	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b575e6	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d130a7	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d5cb9f	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e70d03	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ed2199	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0x710153a7	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x7105108d	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x710a83a4	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71137487	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7121b2ee	nand_select_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x7141cb52	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x714926d6	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x714e2a74	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x71685784	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x716f4518	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x717a6b03	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x7190a5cd	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x719ccde3	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ae0f8e	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x71bef52b	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x71cb63d9	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e39241	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ed59ae	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x721a85c0	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7235b8e7	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x723ac7c1	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x72434102	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x72543bdd	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x72671af2	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7275c8ae	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x72800941	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x72aeac76	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x72aee1ad	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x72af0bb5	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b299e1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x72bd5b08	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d5cc2c	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d8c91d	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e26d79	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ea2895	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ee8dbd	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f79420	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f87c3d	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f8996e	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x72fbe350	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x72fc4944	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7301dedd	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7317e660	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x733b9992	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x735fbb45	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x736622f5	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x73662758	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7372fbf1	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x737c7891	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7394f404	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ab342c	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x73abf9d5	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b79f93	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b98231	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ca353c	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d4e197	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d9a6b1	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x73de2b0a	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e3d88b	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e3f60f	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f70ce3	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x740437f3	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7408b0f4	hisi_clk_register_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x740dd3b3	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x7412a388	mtd_writev
+EXPORT_SYMBOL_GPL	 vmlinux 0x74333a27	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x746f65af	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x74925913	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b7c892	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7d9b3	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ce2243	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x74dd4b9f	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e72562	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ee4abc	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x750566cb	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x7513b5ec	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x75300cac	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x753a9bf3	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x75517c21	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x7552fb84	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x75543635	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x755ae3c8	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x755b3820	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x7568a0ba	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x7588ac46	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x758d90a7	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x758f186a	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x75994779	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a4e214	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a84538	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ace5d6	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b90de0	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bf6cc0	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x75c35e35	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d5ab7d	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f59306	xhci_mtk_check_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x76034797	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x76087e80	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x76289b87	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x766a346c	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x766c5821	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x76884248	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7689879b	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x7690b42e	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c36ac8	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c3b5b9	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d707a7	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d900bd	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e9568d	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eff76b	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7702925b	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7706445a	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x7708efba	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x770ccc24	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x771838b8	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b729b	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x772e2c26	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x774a8f7f	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x774d7ce0	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x775ceaf1	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x775eeb1c	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x77795d69	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x7779ef44	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x778fde13	nand_reset_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77aa18ed	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c94595	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77e19ea2	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x77e4baa5	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77fcb74d	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77fe6a8f	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x781227fc	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7823f5dc	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x7847f2d2	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7849ec39	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785c685a	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d1c2c	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x789f19d6	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a8fa82	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ac3db9	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b02280	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bb2e56	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fad400	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x79099610	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x79213450	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7923968b	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x79340b1d	meson_clk_pll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x793a93dc	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79464a4b	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a0461	rockchip_pcie_disable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x795344a5	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7961373a	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x79671da9	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x79903c0c	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x79910c81	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cb76c7	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e59993	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a49c726	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5f823a	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a69b1b3	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a731786	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7f1396	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7f9258	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8093aa	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a93100a	musb_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a956377	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9cd2cb	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aad481d	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab9d275	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac10ad8	icst_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aee7c82	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b03a165	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b06f9ca	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0bea54	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b22c839	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b289a63	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b382072	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3d8b76	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b42626c	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b53df77	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b944c5f	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b953ab6	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9aae47	arm_iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab6124	clk_regmap_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcceb5c	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be197c0	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c0d8c13	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2040cf	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2fca67	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3d7ed5	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c403969	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c705359	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c772307	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c84721a	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca1c6d0	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cbc6bf2	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc04fcb	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc31598	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cde8760	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e4f56	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3e0779	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d56a3fa	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d79fa8f	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d84cd83	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d874adc	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d898968	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d941b3b	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d9fcff9	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da595a0	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da7ccd4	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db665ee	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db92fcb	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db9c5f8	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc37a29	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd09f35	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de64c90	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dff31a4	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e08d3c8	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e099e7f	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0a838e	xhci_mtk_drop_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0ac010	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0e409c	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0f03e2	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e185dbd	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e26bf57	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e49dee6	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5a4ae5	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e641739	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e71578d	ahci_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e79b13a	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9012c2	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea3ad21	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec1f175	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed6476a	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee13647	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eec6ff1	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eeecbc6	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef99e4b	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f01d336	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f02438e	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0efd55	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f159f7a	mtd_unpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f27fd7f	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f31872c	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f46970b	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f46ed7b	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4aae74	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4fd15d	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6cb5c9	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6f256f	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f84dcd5	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8ac6a5	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8dd2bb	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa720a6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb35580	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fbf95c6	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd9618a	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fee9dab	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fef937e	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff25f6a	ahci_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff52eba	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x80187a52	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x801eb65d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8031a17c	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8038da7d	mtd_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f9061	meson_clk_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8053ed08	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x80595129	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x80690ab5	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x806f1ab7	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x80746ec6	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8087d5cf	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x809b4496	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x809f5ba5	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b17b75	omap_get_plat_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c92c36	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x80cd69f6	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x80cf9c61	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d135e8	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d6836b	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f71d2a	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f7d128	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8103eda4	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x811b42b3	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8134ead1	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x813a09d8	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x814d2042	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8153dee7	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815eba9e	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x816e4d0f	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x817353b7	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x8184ffee	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x818d5efc	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b1f477	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b440b3	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x81cb511a	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e39479	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2b867	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x82122301	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8215e568	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x821c192f	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x822d2e7a	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x82408ec1	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x82584d6b	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8263a520	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x826698a4	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0x8279343c	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x827a6774	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x829efd65	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x829f3bb9	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a8e400	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a91598	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b20687	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b8b70f	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d02ee5	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d352f5	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d74f09	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82dc4602	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0x82dee183	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8313d458	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x831954f7	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x831bf58c	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x83207a80	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x83347da0	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833a7c41	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x83407961	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8364b465	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x836a0140	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x836b2c3a	clk_regmap_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x836bc598	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8374110c	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ae0c99	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b7e706	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e61069	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e7f11a	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x84105f9f	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x841cae20	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x841d822b	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8426015f	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x84294375	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x84320a06	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x843329a6	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x84341f62	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x844712df	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x84478fa2	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x8450b7bd	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x845aa3dc	lpddr2_jedec_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b2069	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b96fd	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dca4a	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x845e5f2e	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x846253b4	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x847d9e94	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x847eac3b	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8480ee3b	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x84832363	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x84901fa0	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x849d7b74	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c1f297	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x84e898c6	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f29add	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x8501bcd4	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x85038d28	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851d5a2d	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8523baa0	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8548f4c5	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x85506104	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855d84ed	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x8570f468	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8574ca6c	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x858ca028	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x859c7c08	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a192be	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85aca8ec	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x85acb812	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b208d0	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b3f3cf	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ba853d	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x85be09b6	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c96e7c	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x85eb6533	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f62adc	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8600b9fa	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x86167ca7	rockchip_pcie_cfg_configuration_accesses
+EXPORT_SYMBOL_GPL	 vmlinux 0x8622441a	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x862ebb2a	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x862f0711	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x862fd0f4	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x86410cec	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x864cd346	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8665230b	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86806218	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8690a3cf	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a163d3	mtd_is_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x86aff9e6	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b2f6b0	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b6cff6	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b80f6c	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c2b25d	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cf7793	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x86dd1464	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x86debbe5	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e6a8a3	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f64604	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f9f015	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86fdf96e	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x870d2c6b	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x871c8dc9	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x872728bf	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x872a39bf	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x872b3cdc	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x87327cc4	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x87366639	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x874a304b	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8753df7b	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x8763e5d6	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8771e1d6	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x87737672	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8776c189	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x877d1eff	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x877d3ac3	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x87840b48	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a7788a	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b2b34e	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x87bc4605	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d3c546	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e193c1	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ec1fc5	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f01709	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f5ab6d	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x8805a073	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x881aaf25	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x882967e3	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x883ca9d7	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x883f8e52	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x88466cd0	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x884986d8	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x888a5350	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x888bfef1	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88a79158	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b89cd4	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x88cb2e7f	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x88d98fc5	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x88dc035b	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e4c156	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ea84ef	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8932de0c	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8954745f	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x895d50ca	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x89629c4e	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x89807339	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bcbbc5	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bfe231	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bfe270	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c7cd44	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a013d4e	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0cac6c	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a37e377	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a53208b	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5c5db5	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5e49a6	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62a6eb	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6b1227	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a79e882	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7b4d87	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7ebe15	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa02161	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aad89f7	exynos_get_pmu_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab3e17a	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abac5c2	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8acd06aa	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad9d07c	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae46220	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0aead4	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0e67bc	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b150a33	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b16bfc1	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1c464f	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b339686	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b351006	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b46d3c6	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b529ce4	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6256c1	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6b637a	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6cca51	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8a8238	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b90b640	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b91f7a7	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b97de7e	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9c7014	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8baa07d0	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8baa3d59	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbb1286	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd46208	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd9a693	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bda083e	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bed299f	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bfeb6fb	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c078043	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c156767	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2921e2	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c33ac2d	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c381b28	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3ac7e3	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3f7b3f	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c45cf51	rockchip_pcie_deinit_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c73516a	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c74963f	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7bd877	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c889609	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9eacfb	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x8caeeeaa	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb3caf6	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbca819	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc2ece1	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc5de7c	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ccdc55c	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd9fbb5	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf3d452	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf5b51a	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0bed33	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0e623c	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d203d7b	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d236112	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d2bddca	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d36848b	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d44a646	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5d8d7e	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7bc776	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7d4b68	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d81b31a	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8244bd	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d888ad9	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d88fafa	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d94b2ec	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9e76ff	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da189e1	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x8daf95d6	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc1076c	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc11669	lpddr2_jedec_addressing_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc64187	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd210ef	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ddc63e0	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ddece55	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df8c215	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e34af69	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e355b30	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4b63a6	hisi_clk_register_gate_sep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4c6d86	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e51a3c7	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e670aa4	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e946e23	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e98ae92	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea1d36b	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed5b3d7	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee20877	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee85039	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eecb194	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eed7c07	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0bbd63	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1a8cf9	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2381b7	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f3e7eaf	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f43c1c3	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4be3e9	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4c1d83	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4d7789	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f515d99	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f61d25d	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cdcfe	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f725e67	probes_decode_arm_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f745e7d	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f84b0a9	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa7efd0	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fae5131	sdhci_set_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fcf3b18	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fcfbcb0	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8feff6d9	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff73a82	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9000bf76	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x901a4026	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x901c6c99	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x9021fb73	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906d0c27	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x906dd327	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9077683a	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x90aac229	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d6af2b	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e1a045	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec0b50	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9102e13a	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x91055c9f	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x910d1695	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x910f5c05	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x91416638	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9144cd3a	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x914e926b	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x91517dd9	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x91519a16	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x915b3c22	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x915c77c1	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9168bc7b	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x917bf636	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x91915b1c	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x91938636	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x919e837b	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x919f1437	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a7d502	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x91aeeb30	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x91b61ef7	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d42eb7	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d5861e	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ec4fc8	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ecb00e	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f6d531	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f72e9f	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f86d19	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x92081a1a	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x92327df3	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924f5c70	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x926c1d2b	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x92702f55	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9272c8f8	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9282f433	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x928434e8	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9285ceb2	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92878f69	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x929c85ef	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x929d1b9a	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a3b2f2	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b2550d	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b57248	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b7b0d4	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x92bc66ed	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x92cea291	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d72357	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ea5679	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ec7d40	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f21d2c	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x93068350	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x933193d9	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x934082df	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x93457a24	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x934b01d1	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x935646c9	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9361987f	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x936b5bdd	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x936c8237	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9373d584	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9379ef5c	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x938a342b	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x93927627	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x93964afe	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x93afd495	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b1a873	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bcccab	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c858fa	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ea0e5c	__mtd_next_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f8298c	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fb510b	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x941faed6	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9427bac0	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x9453cb37	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9453f300	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x945a752f	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x945fecde	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x946551d9	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x94656897	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 vmlinux 0x94845182	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9489789e	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x948a4487	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x94956645	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x94abb745	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b74272	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x94bb301f	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94bce053	snd_device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c86e01	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c986be	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x94eadcd1	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f8d402	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x94faa44f	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x95057cb7	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9506e8e8	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x95193067	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x951d4877	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x951f985d	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953393d6	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x953fffec	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x9544f5ee	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x95484c25	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x955924e8	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x955f66d3	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x95642e8c	cpts_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x956683b5	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x9567f09f	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x957bd80c	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9594a024	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x959dbb0b	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a79827	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a81524	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a84d56	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ce089b	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x95cf828e	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e75db4	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e75fe7	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e86124	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f88cb5	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x96026bbf	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9608ed79	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x960e5e88	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x9632c2ed	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x9637566b	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x96481017	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9655ac85	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x96568d46	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x96744e8e	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x9684f73e	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x968e9f36	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9691da19	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b5d713	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x96bef183	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c95a72	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ca63f5	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ccd7ac	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d10030	meson_clk_pcie_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d4dc90	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e7747b	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f4e968	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x97069968	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x97138d2a	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971bf78e	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d61f0	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x971eba31	sdhci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9722d0ba	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x9751a898	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9754693e	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x975d98db	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x97606361	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x97671e17	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x9771752e	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x977317e2	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x97770670	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x977f0fe2	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9785011d	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x979c6a20	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x979e4e18	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b71dc9	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b999ab	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c69a59	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d64299	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97df38b5	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e28713	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ed936e	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fa5770	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x98057611	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x980d7d7c	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x98137949	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x9822e999	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x98231589	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98372bce	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9838032b	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x984e653b	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x98531071	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x988b3c6d	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x989098a1	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x989f6dfe	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a2170d	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b73b1f	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bd9ecc	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d43c75	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d56c50	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e623a2	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f2b1ad	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f6eaf4	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f702cd	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x990b9c50	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x990c207c	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x990c42b1	kill_mtd_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x992e26be	omap_iommu_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x992e3163	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x99497c33	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x994b5f31	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x99621755	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x99978b09	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a51412	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a6cdbb	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c7fefa	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d09a15	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x99dda9ed	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e9363a	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99fa5999	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a00731b	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a00e4cb	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a048866	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a06d578	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a14e2cf	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4e7b5c	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a535981	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5f88f2	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6821b0	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6b2863	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7e4182	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8b211c	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a99d4f3	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ab452b0	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abdae93	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac693b7	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9accaee2	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad56d2d	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad5ce97	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b09b442	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b182c47	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1b9b20	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b239579	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b2d6b09	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b331b5b	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b3fbf69	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b499d92	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5b10bb	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6740cb	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b688aca	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b79fcf0	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b940a96	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba4857f	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x9baeb831	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9baf4fd9	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc3df87	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc4f594	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd1e043	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd32156	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bde308a	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bfcd514	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c0f327f	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1a91a2	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1abc30	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2ad00c	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c302e0a	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c38811d	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3f1e58	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c68b80b	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c74c7a9	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c77d11f	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7b3ce2	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c802e53	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8b1dc2	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca1333d	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cbb1794	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc7d414	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce34f66	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cec16cb	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf49f26	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d10cdd1	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d14ae0c	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1c6c49	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1f5e16	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1f86b4	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d360fd0	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4d9d1c	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d5975d9	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d5e0840	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8f5f56	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9340fa	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d99f431	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba64d7	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbb0afb	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfdf722	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e037f0e	arm_iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0fa617	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e197ad6	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2065e9	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e216426	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e537d8d	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e545a15	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e730573	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7d0640	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb11985	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec684eb	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ecfe940	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee5e40a	__ktime_divns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eee3904	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f10de83	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f140889	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f23311a	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f24e8e6	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f31c83a	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4d0a9a	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f78d902	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f85ffb5	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f8c7155	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9a09e5	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc6e6e8	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd73eda	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe9d531	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa019b24a	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0256494	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02cb5b1	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa03432bd	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0467938	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06d44ae	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06ee971	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0839009	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa085b5e7	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09089d4	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09f8d19	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ba277b	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c66136	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ca666c	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e095dd	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f71676	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa100b336	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa117cc41	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1318cc9	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xa139a620	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1489b56	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14b6823	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1589f8a	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1590784	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa162cd24	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1636bec	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16fa1a7	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17ed89a	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa182b5de	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a4c65c	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a9524d	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c446e9	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e0be50	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e34f0a	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f1bd3a	arm_check_condition
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f36fb5	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f50e37	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2054b6e	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22a04f8	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xa238b442	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23ddb19	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23f684b	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa242bb77	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2511ae4	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2566d8e	ti_cm_get_macid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2697ba2	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27bf674	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa29e9c7c	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2abf61e	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b8d1c6	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bd25da	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c31b2a	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ce4d88	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d2e2fc	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dc497d	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e17edd	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e8e5f1	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30c454d	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31674c6	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa321909b	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa321e73f	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33744aa	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa337bc99	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xa346975c	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34a6788	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34d7723	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3557319	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35f8089	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3609edf	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa363200d	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36e76aa	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa382f93b	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3acc62c	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b57586	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b70cf8	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d25ea0	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d85552	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e3e917	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e5e810	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f732dd	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f824d8	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa405d2d1	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4061432	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa443e0a7	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44fbefa	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xa459e825	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45dc275	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4606bf5	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4633e17	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa476bfc7	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa47b5cfa	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4abf72c	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4adcccc	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4baddac	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c1c398	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c5ca94	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cc19b3	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fab2ca	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50b930c	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa51878e8	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa51a4b83	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa51aecec	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0xa524eda9	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53245ce	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53f0dd7	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5472d14	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54b6d4a	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57629b6	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57b8944	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59c8bfb	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5ab2633	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5acc774	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b4b48a	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b7ed04	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c5e89d	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6077997	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6177aff	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62d9b2c	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6393eb0	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64146d7	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6526d08	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65f04c1	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66e289f	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6887ca0	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a3c35b	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ced277	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ea582d	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f30be3	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f40125	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa703afb6	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70dff79	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7325650	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 vmlinux 0xa75b8273	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76dd0aa	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77e12b7	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7802e2e	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78cce32	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78dc1b9	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a15f13	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a1e000	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7aaafde	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d1cbd7	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e42f4a	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7faa875	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xa810e6a8	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa828ec1a	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa845bd32	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa869b915	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86c396d	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa873e551	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8809166	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8859086	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8953448	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa896abf3	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8aeac68	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d42c00	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e15d94	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f62f09	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90335a9	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xa909811a	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90b116f	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90dde54	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xa925b394	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa928e02b	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b7803	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa949fd24	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa970fcab	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9759068	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9759dff	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa97c2e3f	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xa990d32e	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9919832	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9951290	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9cb42bc	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9db641f	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e05660	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e883ac	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9f674d2	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ff23d8	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa029332	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa22b710	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2a72bf	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3bf2c9	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3d0303	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa44acff	omap_tll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5bbf6f	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a03bf	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa886e4a	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac8c9a6	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaad00667	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae0eb0b	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaea23ef	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaecf75d	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf6a6a3	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1b76dc	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xab238ffa	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2d7050	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xab38aae6	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3924df	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0xab39cb16	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3c1073	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xab42e13a	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4c9dac	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4e13f9	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4f4b32	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xab53117c	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xab56c59c	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xab64f27f	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6d3625	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xab76824b	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xab84b5a6	sdhci_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab87d33f	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8ae021	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 vmlinux 0xab985cbc	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9c1602	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba3dd73	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcda29e	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcfa03b	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd47a10	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd8c1c4	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe7b645	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xabec5b0d	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xac145d87	sm501_find_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xac445cec	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5d6c86	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7083fe	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xac77eae6	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7f29f1	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xac8558f9	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xac976413	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9a1ec5	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9a765e	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacbbe562	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc59564	xhci_mtk_sch_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd63bb3	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf0fdda	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf357f3	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3140be	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xad363734	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xad407f96	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad6565db	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7ac45c	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7c00c4	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9e3587	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9e3881	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9e597f	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadbd54fd	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xadbda618	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc8b899	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xadcc81c1	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xaddd94bd	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xadea9bb0	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf616a4	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1c9ab6	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xae29061e	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae56dd73	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae6e4feb	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xae70376d	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xae746887	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7d160b	nanddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7f2a88	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb273d5	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeba11ab	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xaebd39ad	mtd_panic_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec3d8a8	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xaecccda7	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed232b1	nanddev_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeda2995	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaef4b72f	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf02890b	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf07dd61	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf0dc42f	scmi_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf12bb7b	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf28e222	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2fa105	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf53c440	__get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5ab242	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf6307e3	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7cbd84	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7dff7a	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa7d9a8	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc6085d	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc83e91	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xafca21ca	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd09c3f	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafdf6cc6	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe333c2	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe3da3d	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe58901	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xafea5f3f	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff0823a	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff98b96	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xb00c8594	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0232477	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ef9f0	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04d1f7b	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb053325c	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06044f3	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06142e8	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06a4ff4	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08da59a	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a1860b	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b3f6cf	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0dac791	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10b983d	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11625b9	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1306b73	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb130c0c3	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb13f71b8	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb145e0de	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16e7a1a	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18110e0	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18907c5	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19d4714	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1be6798	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1be7779	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xb205b325	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xb207960c	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20a8750	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21b4443	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb224f316	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2505196	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2542428	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb262baea	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26515d7	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28bf158	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2934558	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xb293ddf8	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29d0622	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a3bcf5	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a60ead	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b1beed	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bf8df3	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c6ac0e	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f1ef98	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30a6493	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30faeff	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3192982	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32e5d66	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33723a6	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33a6059	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb344e949	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb345ce31	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3476483	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb347cff7	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xb352d41f	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb35e99a0	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36d8e6b	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3773b91	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3783894	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38928e4	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39c7cf9	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3db289a	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f3c94b	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fbff60	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xb402afc5	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40c6376	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41465e7	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41a9780	ahci_start_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xb439164c	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46adce6	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47c53dc	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb481384f	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49b5e5b	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49de221	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4bc38fd	mtd_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d75b79	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4da65e3	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4dba41a	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ddef67	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb500ba76	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb521f4d4	null_dailink_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5280a1b	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5327418	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53bf539	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54a5187	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb563579c	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57346be	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5992f5e	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a06657	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b3948e	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b786c3	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c20f78	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5cf4090	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5cf8822	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d1a923	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d46a84	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d66223	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5dcd8a0	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e26eae	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5fc521e	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ff3a5a	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb632653f	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xb655ca03	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65db1c0	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66361eb	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6694562	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6799e9a	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xb685c5b1	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb692c7a2	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c8056	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c7eb30	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ce0909	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d5fc52	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d7639f	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70ea06e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71a1575	snd_compress_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7244873	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7338c31	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7491c17	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74ae27d	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75676d1	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75cc074	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76013d1	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7680c7d	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xb771e6b7	bL_switch_request_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77744dc	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79b99ad	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7acc7a3	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b81fa2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f3944c	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81102bd	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8140739	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8198418	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb819a8b2	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81b1c35	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82566eb	omap_tll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82dc8d7	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8322171	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83473a0	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb851755a	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86ebe34	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8752e4d	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8973938	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c2e14f	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c99a77	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8e818a5	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ecb8de	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ee5698	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f23ebe	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f48311	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9078825	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90a1fcd	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90c8149	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9138620	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9176155	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9375281	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb938ee4b	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9446bbd	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xb948c596	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9552fa5	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96a6616	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb980fa62	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9855f97	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98e6d8b	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99a93f5	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99b8d4a	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99be32c	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9a7ea79	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b07937	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9de89e0	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e87b94	bL_switcher_trace_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ea118c	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f4db7a	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f63d68	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0xba23079e	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b3ec7	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba47ec0d	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba527973	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6f158f	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xba908927	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9bcf16	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa07596	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaacdd05	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaad8cef	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab97bf4	__put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac14c1d	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac6c3ba	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac72989	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad87392	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadf743d	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae4e068	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaed7126	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2d71a8	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3eec43	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb47fef6	cpts_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4c7570	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4d9b20	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb52ad76	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5e62ce	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5f8c20	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb62523e	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7b9c77	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb902505	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9dfdc4	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9e4e2f	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc2d168	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd3e54e	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbddc24d	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe0b80a	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbfcc746	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbffb9f9	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1b111b	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc26d0e0	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc27b2f8	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3b236c	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4132b4	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc53cbbc	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb48445	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce1e7ed	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbceb2156	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf67be6	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf84eb4	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1a4766	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2c9ec7	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3bb316	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda01787	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb0b224	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd43844	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd6f5e9	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde52184	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf49712	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe221c93	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe2c25b9	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe2e59bc	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe2e925b	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe40953b	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe615e75	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe670adf	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6c2a9e	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe740059	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe886a60	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9af246	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9f4195	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbebb9ac5	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed1f40a	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee4effc	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefb53aa	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeff39b0	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf0bcf10	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf26e268	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf330a6e	nand_write_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3985ff	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf568dc4	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf593b70	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7336ee	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7c40b9	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf822dcd	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf8d2529	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfa8bda4	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb16575	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff415a4	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffce09b	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00043ff	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00131cf	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0xc019fbce	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0420b23	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0583e20	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06b77b3	__cci_control_port_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc081c246	bL_switcher_put_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc096aa91	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a3b39f	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a95c7e	mtd_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a9991e	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b139e9	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b7bf7c	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b861ce	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c720af	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d527b0	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dd211e	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e112d3	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e75cec	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0edc932	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f2c1bf	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10655da	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1105510	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1121eef	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1124c96	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13fd738	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1655282	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc171b07a	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ac1c92	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ac9d62	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b2f45c	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b7f4c9	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b9660f	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c9f153	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d1ee5a	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f0ba81	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f3771a	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fb2fb8	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccc5e	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xc200f0cf	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2028aaa	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20cf2d4	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21b3cca	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21bfbbf	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xc222ead3	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22b811f	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xc237c5dc	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23a4b86	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23f2c4c	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xc244f4b0	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc254b1bc	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25debc5	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc265ebe5	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2786ed0	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27f77c6	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2831c89	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc292434e	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29462a6	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ad473e	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2db7e18	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e38ed1	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e3de46	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3316827	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xc336e944	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33ca39d	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33f746a	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33fbc85	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34bbf19	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36bccd9	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xc372c103	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39a1c17	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3aa40dd	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c6e605	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cd6e4b	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d1ea75	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3db8305	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3dd189e	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3de0552	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4001504	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40bb851	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43381e6	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43a41f9	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc47cdd47	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4835895	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48a0011	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a0b0b7	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b71499	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e86598	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f6a113	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f8434c	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51d8bbb	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52721ba	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54bfb83	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55e3aff	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+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 0xc5878315	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58a2717	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58e3a9b	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b86de0	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ddac0c	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e9a2ff	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f58d3e	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6007d5d	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6058e90	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61a6865	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62404f1	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62d64ac	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62e63d2	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc636d9e0	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63f10bf	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc641c062	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64c5dbe	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64d334c	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc653e85c	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65acf17	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc685f71a	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc699a0c4	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a6bfc2	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ace3ba	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bc03d7	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bc203f	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c3ed50	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c8092f	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ca34a0	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e667f1	thread_notify_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xc705afa1	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc714e068	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7382f3b	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7426c20	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75a78ac	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xc771f25d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc77f7be2	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7844afd	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79144f5	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7af1b1f	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bab1a0	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d38935	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d7d313	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f3a142	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc801a6a7	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc804dd55	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc80588bb	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc823383c	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8316d21	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8319f5e	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xc837e447	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xc848f1db	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc864279e	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8668f84	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xc866a46a	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8789b73	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87cfa3b	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88a9f9d	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88b0f31	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88c388e	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88fee76	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891136a	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891a43d	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xc893bc9a	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89412bb	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89c6770	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8adbda0	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8de0bdb	xhci_mtk_sch_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e59754	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc903af3e	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90dcb25	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9101943	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91b5dde	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc920e725	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc927529c	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc956ebbf	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc959aafe	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95ce5ff	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9853a18	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99f8140	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ac14bf	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9be9244	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c1f42f	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d2f326	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d393da	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9da5331	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e3b240	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e658ec	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec819e	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f342ab	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xca0177da	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xca13f5d1	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xca32cf9a	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3ab270	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3ac818	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca469ca5	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4d2ae4	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xca516b30	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xca52a3d7	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca87a0e7	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xca90d1aa	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xca95e55b	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa0c378	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaadbadd	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xcab15dbd	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0xcab3e0cc	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad2cc76	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad3eaaf	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcada0fb0	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcade6d41	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafff8c8	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0eaa17	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1aeefa	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb24c262	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3cee00	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb42feca	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb48a38f	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb49b0ab	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb4fb198	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5f20bc	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb778a25	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7962b1	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7c3154	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb845c27	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbbaf174	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc0ccb4	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc31fed	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc6b2e6	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbdb136b	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe31f08	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbec9225	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc07661b	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc12b5d2	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc155ce3	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc195507	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1f82ee	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc20ac52	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc263b8d	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2eefdc	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3bbed2	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc41eab0	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5426eb	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc59462b	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5d3dac	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc782ff5	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7c1f4a	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8feb23	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc914062	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc94f153	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca8ecda	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca99658	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xccca34dd	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1cd57	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xccee6575	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf59af3	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf727fa	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd01ac01	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0b4f1f	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3c8d17	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd47acc0	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4a8270	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4e8d18	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd607854	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd634a76	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8d3642	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd99074f	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda6dd33	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd59ac6	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd76076	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddb9c31	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddc82b3	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdfdc8e4	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xce005273	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xce133ac6	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1d296c	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xce396e7d	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xce437240	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4cc702	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xce52703d	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xce562fd1	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xce585a6a	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xce647c8c	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xce651333	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6acd73	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6e4d68	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7113cd	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7e1bf2	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8e9309	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xce97deaf	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea79ede	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xceac8668	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xceaf170c	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec64a4f	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec789d1	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xced4f339	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcedc4471	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee0f60c	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee230af	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee2a3f9	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee4f244	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee6049c	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef4d5b4	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef6443d	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf01b1b7	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf236f5b	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf273b41	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3ab406	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3f0941	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf475e7a	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf51bb9b	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5d297b	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5ea491	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6e987f	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7c26dc	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7c4396	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf84d523	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8f93ea	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9c8bf7	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9d0f47	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb03e19	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbb3bf0	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc6bdc0	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc9ab8b	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfdd9976	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe977f0	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff2a2ae	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff72c9e	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffe7b2c	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffec682	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd004cf2b	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd016d4d3	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03053c7	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd042c901	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06b3863	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07836d0	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07babc8	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07eae27	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07ebfa4	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd086b121	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08da131	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08dbe5e	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a7616a	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0cdb462	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e97bae	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11630f6	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12159a7	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd137478e	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13eff65	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13fa536	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1599a83	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15b8195	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15c1be2	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1608792	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd161a61e	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1829d70	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1871c7e	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a61bd2	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b0e708	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b22b0a	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c30b11	musb_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cdfc3c	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d24824	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e0c82b	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1ed1aad	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1edeb43	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20e7529	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xd212b886	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21996b9	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21cb4fc	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2303070	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2350622	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25a8d6a	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26f8fd0	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd275aa7b	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28e7cf7	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d4a916	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2decd80	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ec252a	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2fd6e1a	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3039f60	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30d68ce	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd321b863	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd337198a	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3415468	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3517dae	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd377174f	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3abfc90	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b6db95	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b7e9ea	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b9255c	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c0d239	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e97c21	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e9c8b1	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3fc14be	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd407de66	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd408561f	scmi_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40f5566	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd417e316	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xd433779e	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4493b21	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd479fded	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47cb7dc	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd496bbd5	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49726fa	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49f7454	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a4de3c	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a4e5dd	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b03aad	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b4b96d	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b73291	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ca5178	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ce1009	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ef2589	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f0b3d7	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f73391	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51b188b	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51b5938	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51ff697	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xd526d011	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xd549eec2	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55556f6	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55d74df	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5680066	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5693bc6	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57f82f6	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xd594cdf2	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd59bf41d	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd59c0762	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ab174d	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5abff3f	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ac24e5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5c19829	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e2423f	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e7528f	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ff2808	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61111fb	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62d333e	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6392e69	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63ce82a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64c10a9	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67593be	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6785b32	devm_regmap_init_vexpress_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd68f8211	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6aa31e1	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6beb0c8	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c3a8fb	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d30a4f	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e41e2f	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f07d06	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f59d3f	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70073a1	clk_regmap_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd707b5f2	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7166641	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd738c94c	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74faf04	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xd753afcc	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e8f2	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd78d4b4a	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd794d94f	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b411cb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ce0be9	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d9c086	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7df5aa6	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f14883	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8158a5e	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81bbe58	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8259a23	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842075c	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8546912	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd85fe9b6	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8645119	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8723f94	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88cc232	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b48225	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c9e54b	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8cba4ac	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d24416	hisi_clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8dafae0	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ee960c	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f3359b	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f51f88	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd915b830	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9195caf	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91b6996	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92531e6	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95aec80	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd964c10d	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96f28e2	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99504d1	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99671e4	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a0290f	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a0dc75	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9aabfcc	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9bdaa46	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f3e65f	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda04387c	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0c1054	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1129c8	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xda180ec2	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xda190f0b	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2f868e	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xda410add	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xda41212a	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xda419521	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4466d5	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xda45d9a8	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xda549622	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xda579976	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xda68dc98	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xda728aff	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xda83a58a	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8cd9d5	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8f67c2	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xda938d6f	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xda941285	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa3ddea	cci_ace_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa60c61	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa79931	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabad1af	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabdfe98	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad5e08b	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdadb91aa	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae1c496	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae7c154	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb384feb	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6cd473	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6ff3a3	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8c1c8e	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8c9f1b	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba25354	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba28ba5	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbaf3ca8	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc4f652	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc7d6f6	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd6fb64	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe4197d	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe9e2ca	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbfd8cdc	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc00a1ed	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0ec441	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1cf956	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc281fcf	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc29f1b7	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc435930	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc4cdd71	rockchip_pcie_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc542439	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc561512	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc679271	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7ce353	mv_mbus_dram_info_nooverlap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc88ccdb	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcb24a45	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcb980aa	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbf0e01	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcdb47e5	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd059e6d	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0a06d7	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd21316c	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd36803f	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4313ad	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd57810b	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5a7980	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd6bb7eb	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd6c132a	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd6ee2e5	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd76d91b	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd85063c	lpddr2_jedec_min_tck
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd912dc0	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9f6178	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xddb27301	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc55d2f	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd486dd	cpts_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd6a7be	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xddeb928a	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xde174332	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xde25f88c	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3584ed	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xde412c2e	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xde43bc0a	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xde466f89	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5046ac	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xde588577	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde89b61e	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8bf6ae	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8db4e9	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xde91f1e4	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9299f5	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9d3d71	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea4eaaf	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea8763b	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb7df98	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebd35d3	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedccc28	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedd7322	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedd7f5b	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee4ba74	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef56554	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf09cf31	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf12b426	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1c42cd	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf255dcf	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2a6aca	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf371350	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf3eb6e5	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4412c1	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf510a7c	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6e4296	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7607f8	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7fa33b	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8bc4b1	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9b6a8a	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa274ff	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfae308c	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb78992	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfe5f60b	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff935ad	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff97e05	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01bbafa	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe034d915	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0388a0b	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04e99d7	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe069b871	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07b4c01	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 vmlinux 0xe082f24e	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe088e791	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0893966	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08c265b	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0985782	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09d99be	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a69cba	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b728cb	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c3080c	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c3da71	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d583c9	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0da3d36	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e15792	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e9bede	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0eb3f21	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ee1904	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f935c8	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0fb8241	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe126553f	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14d3d94	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1502545	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe159565a	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1703bad	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1715c92	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17d9ace	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe188dd70	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18cbf77	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1942fa7	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19945f7	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cfa261	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1dd3a48	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e9d60a	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0xe203cf19	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21cd0a9	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d14ed	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23ef091	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe276d369	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27b648c	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27e5445	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xe285087f	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2988edf	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29e883a	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2aa6f20	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c3e356	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cbd690	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cd9991	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cfdb29	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d84fbf	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e31fbd	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f7095f	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f73d85	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe315c4d4	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35d5965	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe372359e	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3882928	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38a2eb8	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b45c2d	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b7014f	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bb5154	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bb80e1	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c8908d	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3dbb650	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f10980	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f3b55e	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fd11ac	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fdf864	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4003e03	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe418e03e	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe442e802	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45b3988	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4660a5d	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe469c715	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46c57ab	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46e732b	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe488c5dc	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48bcd10	arm_iommu_release_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4915625	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4954950	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bfdc9c	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c9f178	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d64900	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc8b26	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e6e244	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f7b6c6	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fe59b5	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe501aa87	qcom_smem_state_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50262e7	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe503d450	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe505826d	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50f4dec	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5121af4	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe520c908	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5406e88	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54603b6	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54be58e	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe559996b	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55a27e6	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5610d01	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56129fa	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56e47f8	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe576c838	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe581b8a7	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe582931c	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58ec8f7	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58f7db8	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5906fea	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59ee23f	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a176a7	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a9ef4a	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c4ae36	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c885ea	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb1943	hisi_clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d3a3d5	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d7409c	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e17c57	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f60096	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe603f262	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a649a	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6379da0	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xe637c633	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64a4858	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ecb1e	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe651d12c	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65461c3	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe655a0da	ahci_reset_em
+EXPORT_SYMBOL_GPL	 vmlinux 0xe662112e	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6885e42	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68a0061	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68be4f6	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68e96e8	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe69e41c5	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a089ac	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ae58a1	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b791f0	cpts_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b965bb	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c2f216	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ca2649	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6cc6669	nand_erase_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d81d31	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6dea2c8	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f359d6	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f59dfe	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7127248	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72064a4	snd_card_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72dd956	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747297d	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74b5da1	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74bef0c	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75625fb	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75894c9	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe775b60a	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7946ed3	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ad2f9f	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ae1df3	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b7ed71	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eb0414	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ed43d0	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fac5e3	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fe8384	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe800db7f	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe822759a	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82318f2	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe827b8d1	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe834e012	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8448bac	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85980fc	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85ae5cf	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe872a08a	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8787888	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88d9283	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88e63ec	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88e727a	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xe89036f6	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe89f5e29	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a035a6	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8aaafe1	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8af07f7	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f0b68c	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f95ef1	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe907e843	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe910b50c	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe92b8cdf	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe948c60b	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9578a18	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe98073f3	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9838d8d	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a7fe16	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b949e6	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cd2339	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d26bc5	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fa71ea	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1216ea	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea18d7b9	ahci_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1bb291	bL_switcher_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1f6e0e	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xea29c6ff	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3090fd	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4a09cb	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5872d2	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5b5869	nanddev_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0xea600ed4	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xea61504a	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7328ee	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xea83943d	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xea8ff0a1	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xea906a82	mtk_smi_larb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9a2ccd	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa82574	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab01eb3	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac73c49	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadc7f87	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1c53e4	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb31ee3d	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb56909f	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb58d941	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb62d938	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb641189	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6bc9f4	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb71ca35	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb84eb2b	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8df7e7	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9abbee	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb6f2a7	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0xebba2887	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbe1622	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebca1359	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xebcc6b69	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd72c25	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xebdb2ea6	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xebdc44ca	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xebead85f	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xebec0c86	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf7ec03	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xec09ca1e	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0e6681	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0ee01a	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0f8740	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1be41b	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1c3cb9	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1e26b2	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1fa4e9	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xec26908c	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2dace1	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xec358ffb	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3635ed	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec43db3a	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xec553b54	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec71343e	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7953e4	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8466a8	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xec85e95e	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8e6464	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xec95724f	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc0a13d	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xecefc4ff	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf90c1e	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0d8e92	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xed18a6fc	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xed18da31	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2234f6	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xed316c43	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed344146	mcpm_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xed38c848	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3ecd93	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xed406c37	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xed465e30	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4a84b5	nand_read_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5c31c6	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5c8bc7	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5d2f12	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5e2f97	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5e6e85	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xed71adb5	reset_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xed74933d	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xed801233	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed826d98	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8bbe99	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xed906701	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0xed92143f	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9562ab	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9f0e71	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb0a4f4	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xeddd951f	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0438b8	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1c8dd2	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xee229eb9	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xee297689	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3f03a5	pci_ioremap_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xee4e10d6	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee53857d	mtd_del_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xee619117	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xee67c5ce	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7e071f	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xee87ced0	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xee8a0fe0	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9a5a57	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea7a456	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeaf7bc9	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb1e6df	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeed5c4c	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef54a8a	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefa02c3	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xef093d50	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0984ba	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0ba72e	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xef213b33	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef2b0312	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xef320ec5	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xef42cbf7	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5dceeb	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6015ae	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef77b81c	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xef83eed1	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef8bd2c2	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92d04b	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa7c109	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaace6e	mv_mbus_dram_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb31e42	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcdea22	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe12f0c	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffa02db	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf000d6f9	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf009f7da	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf020bf59	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0412978	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf041425b	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05b38d0	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06c9192	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08d81e8	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf096de9f	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a5cead	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b89d4c	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0cdbac2	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d0574c	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0fcb54c	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ff7426	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf103bbcb	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10b67b6	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf122ff56	hisi_clk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf127f84c	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf133704d	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14b9dfb	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf158a7dc	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16c1805	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1757ae2	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17f133b	meson_clk_mpll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf188fe69	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18f1c70	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1935c85	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1967dee	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a4f16b	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1aacc5a	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1abf014	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1af62f4	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b20c73	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1bc202f	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1bd61a4	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e26e69	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fae6a3	asic3_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf20b573f	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0xf215ef64	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23ee06f	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24f2dc8	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xf25324be	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf25a6c5f	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf25c4093	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf265ed88	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2745455	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2772492	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27794ff	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29463cf	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf298299e	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2ab2134	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2af3b58	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b4797d	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d38584	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d6b0ff	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3010c34	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf307f461	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3081656	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30fda27	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32d8031	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3409869	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36e6938	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf379faf2	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3885878	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3aa8817	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c03fe2	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ca2455	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d63cba	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d72120	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3dc19d3	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e1f0c9	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ec0b3d	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3fabb6f	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xf402c57e	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4243849	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xf467f14a	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xf46ee878	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xf478ddb0	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47b9dd8	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47de486	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf484e000	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48affab	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48ceebd	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49c680a	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf523d428	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52e14e9	snmp_fold_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53654d1	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53721c9	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5407f87	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf546efeb	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf570b175	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57a9038	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57d04d0	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59a6d71	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59b22f6	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b89d09	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cb44ec	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d153de	sm501_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5dabb88	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5dc8a33	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e48868	hisi_reset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e89f1a	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6061fbc	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6096343	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xf609887c	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6105982	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61515f7	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61baa65	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61cbd90	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf621fcb3	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62a91e8	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62ced9b	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63464d3	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf635418a	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf647f732	rockchip_pcie_get_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6556876	clk_register_hisi_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6580eea	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6645bad	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf664bc7d	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66f9551	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6833eb6	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6859301	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69b6ba0	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a38d53	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ac09c5	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ae4a83	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c68635	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ea94fc	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f1e042	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xf711a73a	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71ea61e	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7226599	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730fb4a	qcom_smem_state_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75ab676	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75f0a13	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf760dc0b	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76b0a59	read_current_timer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf780467a	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7933c52	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf796dd1c	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7971a8c	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79dad11	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b70743	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7dd6fb2	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf822f4fd	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82ea818	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f16b3	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8408e17	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf873dab5	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf87a0371	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8929229	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c1fa37	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c3ca99	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d04cca	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e37c13	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e7f19a	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8eda076	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a909	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3ba1d	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90ac772	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91b7f8a	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf921c258	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9224ad1	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92467f5	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92b912c	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92da8c7	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9315071	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932ab2d	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf939b0ba	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9429237	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf943c97c	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xf949f9c0	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9739ad7	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97fac48	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf984fb40	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9aca984	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b4f544	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d129df	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d602fc	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9eca3a0	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f23809	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f4f28e	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa03858a	sram_exec_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0c69a0	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa26921a	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa40179e	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa47d671	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e64d6	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e6753	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7481f8	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa82f473	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa85bfb1	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa8b72ae	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa75285	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaae1b62	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaaf5699	put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab7db38	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaba248a	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfabf6da1	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac6edd5	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaca5fba	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfacbfedf	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaebcb4f	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaef5eb1	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0c48e2	sdhci_free_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb24d4ab	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2e37d2	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4550f8	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4f9939	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb51f520	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb5ae0e5	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6546bf	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb74741b	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7a4a7f	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7e3c89	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb901ec	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbf2686	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbf431c	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc1b346	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc86a59	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbde960d	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe301c8	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe65da5	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbec6d3d	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbfb512c	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc014cb6	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc06e40a	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2b2da4	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc36cc26	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3771f8	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3973d8	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc48fbcf	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc4a8a14	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc4aacfa	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc4e1158	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc555e23	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc55f389	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc61f3cb	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc847c30	qcom_smem_state_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc882d4a	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc930739	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca61a89	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcba845d	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcba8467	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd04e58	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd26264	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcdaab8a	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0xfce061d0	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfab1b3	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd040770	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd1a6055	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd2a233b	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd544b19	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5f62a7	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7a5de6	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd8d7f12	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd97fcaf	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9fab6d	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda3de7e	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda4fff3	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb43c45	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc2bdda	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc5ddde	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc9cf59	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd076db	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde44f2c	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdea2ec7	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf6aa4c	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe008bf0	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0bbbd2	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe170c0b	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1c0742	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1e61c1	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe24cf65	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29b8e1	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29d810	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe34a313	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe48eacb	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe48eecb	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe4d1d30	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe54375d	hisi_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6e0d0c	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe764367	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7a6bc0	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec31f89	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecf54df	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed9a2f6	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef67ace	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeff3780	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff0de036	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xff112729	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xff14bd82	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xff206822	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xff217320	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xff257247	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2fa53f	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xff33d927	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5af53c	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xff67bd07	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xff699076	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xff70622f	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xff743173	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9007fd	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xff93ef37	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xff976e99	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xff989165	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xffa83d91	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb361fe	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc9977a	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xffcd9194	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xffdc73f4	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xffdfe9e1	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff61d7d	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffd9a1a	kvm_vcpu_gfn_to_hva
+USB_STORAGE EXPORT_SYMBOL_GPL 0x13578e08	usb_stor_bulk_transfer_buf	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 0x27c0bd8b	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x52659bae	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x529348f4	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6ad5d28e	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x706319a3	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x73c8a505	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x79b58338	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x845dcb45	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8e057e42	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8e3a6fd4	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x92002c11	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x93ff7bc9	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x98fe2071	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9dd3d802	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa66a1d30	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa90c1daf	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xad1d8b84	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb0a356d0	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xce62f53c	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd92e765d	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe20987cd	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe3bef4e9	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfeb1fbe8	usb_stor_reset_resume	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic-lpae.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic-lpae.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic-lpae.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic-lpae.modules
@@ -0,0 +1,5820 @@
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_dw
+8250_exar
+8250_men_mcb
+8250_omap
+8250_uniphier
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+a53-pll
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes-arm
+aes-arm-bs
+aes-arm-ce
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci
+ahci_ceva
+ahci_dm816
+ahci_mtk
+ahci_mvebu
+ahci_qoriq
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am35x
+am53c974
+amba-pl010
+ambakmi
+amc6821
+amd
+amd5536udc_pci
+amd8111e
+amdgpu
+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
+ams369fg06
+analog
+analogix-anx78xx
+analogix_dp
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+ao-cec
+ao-cec-g12a
+aoe
+apbps2
+apcs-msm8916
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+applicom
+apr
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_emac
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arm_big_little
+arm_mhu
+arm_scpi
+armada
+armada-37xx-cpufreq
+armada-37xx-rwtm-mailbox
+armada-8k-cpufreq
+armada_37xx_wdt
+arp_tables
+arpt_mangle
+arptable_filter
+artpec6_crypto
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-lpc-ctrl
+aspeed-lpc-snoop
+aspeed-p2a-ctrl
+aspeed-pwm-tacho
+aspeed-smc
+aspeed-vhub
+aspeed-video
+aspeed_adc
+aspeed_gfx
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_snoc
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-hlcdc-dc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796
+ax88796b
+axg-audio
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bL_switcher_dummy_if
+bam_dma
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bcm-keypad
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm47xxsflash
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm63xx_uart
+bcm7xxx
+bcm87xx
+bcma
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+berlin2-adc
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bochs-drm
+bonding
+bpa10x
+bpck
+bpck6
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb_nand
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt-bmc
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btqcomsmd
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence-quadspi
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camcc-sdm845
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chnl_net
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+clk-bd718x7
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-exynos-audss
+clk-hi3519
+clk-hi655x
+clk-lochnagar
+clk-max77686
+clk-max9485
+clk-palmas
+clk-phase
+clk-pwm
+clk-qcom
+clk-rk808
+clk-rpm
+clk-s2mps11
+clk-scmi
+clk-scpi
+clk-si514
+clk-si5341
+clk-si5351
+clk-si544
+clk-si570
+clk-smd-rpm
+clk-spmi-pmic-div
+clk-twl6040
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmtp
+cnic
+cobra
+coda
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+comm
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-charger
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cppi41
+cqhci
+cramfs
+crc-itu-t
+crc32-arm-ce
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-arm-ce
+crg-hi3516cv300
+crg-hi3798cv200
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_rpmsg
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_ec_vbc
+cros_usbpd-charger
+cros_usbpd_logger
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+decnet
+defxx
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dispcc-sdm845
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9000
+dm9601
+dmard06
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dove_thermal
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+dps310
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw-mipi-dsi
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_hdmi-imx
+dw_mipi_dsi-stm
+dw_mmc
+dw_mmc-bluefield
+dw_mmc-exynos
+dw_mmc-hi3798cv200
+dw_mmc-k3
+dw_mmc-pci
+dw_mmc-pltfm
+dw_mmc-rockchip
+dw_wdt
+dwc-xlgmac
+dwc3
+dwc3-exynos
+dwc3-haps
+dwc3-meson-g12a
+dwc3-of-simple
+dwc3-omap
+dwc3-qcom
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-ipq806x
+dwmac-mediatek
+dwmac-meson
+dwmac-meson8b
+dwmac-qcom-ethqos
+dwmac-rk
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-npcm7xx
+ehci-omap
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emac_rockchip
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+emif
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+eni
+enic
+envelope-detector
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-qcom-spmi-misc
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+exynos-gsc
+exynos-lpass
+exynos-rng
+exynos-trng
+exynos_adc
+exynosdrm
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+fastrpc
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fl512
+flexcan
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-ast-cf
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-dcu-drm
+fsl-edma
+fsl-edma-common
+fsl-mph-dr-of
+fsl-qdma
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftgmac100
+ftl
+ftm-quaddec
+ftmac100
+ftsteutates
+ftwdt010_wdt
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_multi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gcc-apq8084
+gcc-ipq4019
+gcc-ipq806x
+gcc-ipq8074
+gcc-mdm9615
+gcc-msm8660
+gcc-msm8916
+gcc-msm8960
+gcc-msm8974
+gcc-msm8994
+gcc-msm8996
+gcc-msm8998
+gcc-qcs404
+gcc-sdm660
+gcc-sdm845
+gcc-sm8150
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+gf2k
+gfs2
+ghash-arm-ce
+gigaset
+gl518sm
+gl520sm
+gl620a
+glink_ssr
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-arizona
+gpio-aspeed
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rcar
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-tqmx86
+gpio-ucb1400
+gpio-uniphier
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpu-sched
+gpucc-sdm845
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hclge
+hclgevf
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfpll
+hfs
+hfsplus
+hi311x
+hi3660-mailbox
+hi6210-i2s
+hi6220-mailbox
+hi6220_reset
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi655x-pmic
+hi655x-regulator
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+highbank-cpufreq
+highbank_l2_edac
+highbank_mc_edac
+hih6130
+hip04_eth
+hisi-rng
+hisi-sfc
+hisi504_nand
+hisi_femac
+hisi_powerkey
+hisi_thermal
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hnae3
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hopper
+horus3a
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-aspeed
+i2c-axxia
+i2c-cbus-gpio
+i2c-cros-ec-tunnel
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-emev2
+i2c-exynos5
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-hix5hd2
+i2c-i801
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-meson
+i2c-mt65xx
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-mv64xxx
+i2c-nforce2
+i2c-nomadik
+i2c-nvidia-gpu
+i2c-ocores
+i2c-owl
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-pxa
+i2c-qcom-geni
+i2c-qup
+i2c-rcar
+i2c-riic
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-sh_mobile
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icc-smd-rpm
+ice
+ice40-spi
+icp_multi
+icplus
+ics932s401
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+impa7
+ims-pcu
+imx-ipu-v3
+imx-ldb
+imx-tve
+imx214
+imx258
+imx274
+imx319
+imx355
+imx6ul_tsc
+imxdrm
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+iproc_nand
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-rx51
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it87
+it913x
+itd1000
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k3dma
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+kcs_bmc
+kcs_bmc_aspeed
+kcs_bmc_npcm7xx
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmx61
+kobil_sct
+komeda
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+kpss-xcc
+krait-cc
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcc-ipq806x
+lcc-mdm9615
+lcc-msm8960
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-ns2
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pm8058
+leds-pwm
+leds-regulator
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lima
+lineage-pem
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+llcc-sdm845
+llcc-slice
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpasscc-sdm845
+lpc_ich
+lpc_sch
+lpddr2_nvm
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macb_pci
+machxo2-spi
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mali-dp
+mantis
+mantis_core
+map_absent
+map_ram
+map_rom
+marvell
+marvell-cesa
+marvell10g
+marvell_nand
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mcde_drm
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-aspeed
+mdio-bcm-unimac
+mdio-bitbang
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-meson-g12a
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdt_loader
+me4000
+me_daq
+mediatek-cpufreq
+mediatek-drm
+mediatek-drm-hdmi
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+meson-canvas
+meson-drm
+meson-gx-mmc
+meson-gxl
+meson-ir
+meson-mx-sdio
+meson-rng
+meson-vdec
+meson_dw_hdmi
+meson_gxbb_wdt
+meson_nand
+meson_saradc
+meson_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+mii
+milbeaut_usio
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mmcc-apq8084
+mmcc-msm8960
+mmcc-msm8974
+mmcc-msm8996
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6380-regulator
+mt6397
+mt6397-regulator
+mt6577_auxadc
+mt6797-mt6351
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt8183-da7219-max98357
+mt8183-mt6358-ts3a227-max98357
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd_dataflash
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-btcvsd
+mtk-cir
+mtk-cmdq-helper
+mtk-cmdq-mailbox
+mtk-cqdma
+mtk-crypto
+mtk-hsdma
+mtk-pmic-keys
+mtk-pmic-wrap
+mtk-quadspi
+mtk-rng
+mtk-sd
+mtk-uart-apdma
+mtk-vpu
+mtk_ecc
+mtk_nand
+mtk_thermal
+mtk_wdt
+mtouch
+mtu3
+multipath
+multiq3
+musb_am335x
+musb_dsps
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv643xx_eth
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvneta
+mvpp2
+mvsas
+mvsdio
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxsfb
+mxuport
+myrb
+myri10ge
+myrs
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nbpfaxi
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-neon
+ni_6527
+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_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicstar
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+npcm_adc
+nps_enet
+ns558
+ns83820
+nsh
+nsp32
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmem-uniphier-efuse
+nvmem_meson_mx_efuse
+nvmem_qfprom
+nvmem_rockchip_efuse
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of-fpga-region
+of_mmc_spi
+of_pmem
+of_xilinx_wdt
+ofb
+omap
+omap-aes-driver
+omap-crypto
+omap-des
+omap-mailbox
+omap-ocp2scp
+omap-rng
+omap-sham
+omap2430
+omap2fb
+omap4-keypad
+omap_hdq
+omap_hwspinlock
+omap_wdt
+omapdss
+omfs
+omninet
+on20
+on26
+onenand
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+optee
+optee-rng
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+orion_nand
+orion_wdt
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+owl-dma
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+panfrost
+parade-ps8622
+parallel-display
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pbias-regulator
+pblk
+pc300too
+pc87360
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcie-rockchip-host
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcwd_pci
+pcwd_usb
+pd
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-am335x
+phy-am335x-control
+phy-armada38x-comphy
+phy-bcm-kona-usb2
+phy-berlin-sata
+phy-berlin-usb
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-dm816x-usb
+phy-exynos-usb2
+phy-exynos5-usbdrd
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-gpio-vbus-usb
+phy-hix5hd2-sata
+phy-isp1301
+phy-mapphone-mdm6600
+phy-meson-g12a-usb2
+phy-meson-g12a-usb3-pcie
+phy-meson-gxl-usb2
+phy-meson-gxl-usb3
+phy-meson8b-usb2
+phy-mtk-tphy
+phy-mtk-ufs
+phy-mtk-xsphy
+phy-mvebu-a3700-comphy
+phy-mvebu-a3700-utmi
+phy-mvebu-cp110-comphy
+phy-ocelot-serdes
+phy-omap-control
+phy-omap-usb2
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-qcom-pcie2
+phy-qcom-qmp
+phy-qcom-qusb2
+phy-qcom-ufs
+phy-qcom-ufs-qmp-14nm
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-rcar-gen2
+phy-rcar-gen3-pcie
+phy-rcar-gen3-usb2
+phy-rcar-gen3-usb3
+phy-rockchip-dp
+phy-rockchip-emmc
+phy-rockchip-inno-hdmi
+phy-rockchip-inno-usb2
+phy-rockchip-pcie
+phy-rockchip-typec
+phy-rockchip-usb
+phy-tahvo
+phy-ti-pipe3
+phy-tusb1210
+phy-twl4030-usb
+phy-twl6030-usb
+phy-uniphier-pcie
+phy-uniphier-usb2
+phy-uniphier-usb3hs
+phy-uniphier-usb3ss
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-apq8064
+pinctrl-apq8084
+pinctrl-axp209
+pinctrl-ipq4019
+pinctrl-ipq8064
+pinctrl-ipq8074
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-mdm9615
+pinctrl-msm8660
+pinctrl-msm8916
+pinctrl-msm8960
+pinctrl-msm8994
+pinctrl-msm8996
+pinctrl-msm8998
+pinctrl-msm8x74
+pinctrl-qcs404
+pinctrl-rk805
+pinctrl-sc7180
+pinctrl-sdm660
+pinctrl-sdm845
+pinctrl-sm8150
+pinctrl-spmi-gpio
+pinctrl-spmi-mpp
+pinctrl-ssbi-gpio
+pinctrl-ssbi-mpp
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+pl353-smc
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8916_wdt
+pm8941-pwrkey
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pmic8xxx-keypad
+pmic8xxx-pwrkey
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-beeper
+pwm-berlin
+pwm-cros-ec
+pwm-fan
+pwm-fsl-ftm
+pwm-hibvt
+pwm-ir-tx
+pwm-lp3943
+pwm-mediatek
+pwm-meson
+pwm-mtk-disp
+pwm-omap-dmtimer
+pwm-pca9685
+pwm-rcar
+pwm-regulator
+pwm-renesas-tpu
+pwm-rockchip
+pwm-samsung
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa168_eth
+pxa27x_udc
+pxe1610
+pxrc
+q6adm
+q6afe
+q6afe-dai
+q6asm
+q6asm-dai
+q6core
+q6dsp-common
+q6routing
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-apcs-ipc-mailbox
+qcom-coincell
+qcom-cpufreq-hw
+qcom-emac
+qcom-geni-se
+qcom-pm8xxx
+qcom-pm8xxx-xoadc
+qcom-pon
+qcom-rng
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-pmic
+qcom-spmi-temp-alarm
+qcom-spmi-vadc
+qcom-vadc-common
+qcom-wdt
+qcom_aoss
+qcom_common
+qcom_edac
+qcom_geni_serial
+qcom_glink_native
+qcom_glink_rpm
+qcom_glink_smem
+qcom_gsbi
+qcom_hwspinlock
+qcom_nandc
+qcom_q6v5
+qcom_q6v5_adsp
+qcom_q6v5_mss
+qcom_q6v5_pas
+qcom_q6v5_wcss
+qcom_rpm
+qcom_rpm-regulator
+qcom_smbb
+qcom_smd
+qcom_smd-regulator
+qcom_spmi-regulator
+qcom_sysmon
+qcom_tsens
+qcrypto
+qcserial
+qed
+qede
+qedf
+qedi
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_helpers
+qmi_wwan
+qnoc-qcs404
+qnx4
+qnx6
+qoriq-cpufreq
+qoriq_thermal
+qrtr
+qrtr-smd
+qrtr-tun
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ravb
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar-csi2
+rcar-dmac
+rcar-du-drm
+rcar-fcp
+rcar-gyroadc
+rcar-vin
+rcar_can
+rcar_canfd
+rcar_drif
+rcar_dw_hdmi
+rcar_fdp1
+rcar_gen3_thermal
+rcar_jpu
+rcar_lvds
+rcar_thermal
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+renesas-ceu
+renesas_sdhi_core
+renesas_sdhi_internal_dmac
+renesas_sdhi_sys_dmac
+renesas_usb3
+renesas_usbhs
+renesas_wdt
+repaper
+reset-hi3660
+reset-meson-audio-arb
+reset-qcom-pdc
+reset-scmi
+reset-ti-syscon
+reset-uniphier
+reset-uniphier-glue
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk3399_dmc
+rk805-pwrkey
+rk808
+rk808-regulator
+rk_crypto
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rmobile-reset
+rmtfs_mem
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rockchip-dfi
+rockchip-io-domain
+rockchip-rga
+rockchip_saradc
+rockchip_thermal
+rockchipdrm
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-armada38x
+rtc-as3722
+rtc-aspeed
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cmos
+rtc-cpcap
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-meson
+rtc-meson-vrtc
+rtc-msm6242
+rtc-mt6397
+rtc-mt7622
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-sh
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+rza_wdt
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3c2410_wdt
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s5p-cec
+s5p-g2d
+s5p-jpeg
+s5p-mfc
+s5p-sss
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_rcar
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sc92031
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+sclk-div
+scmi-cpufreq
+scmi-hwmon
+scmi_pm_domain
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci-cadence
+sdhci-dove
+sdhci-msm
+sdhci-of-arasan
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-dwcmshc
+sdhci-omap
+sdhci-pci
+sdhci-pxav3
+sdhci-s3c
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh-sci
+sh_eth
+sh_mmcif
+sh_mobile_lcdcfb
+sh_veu
+sha1-arm
+sha1-arm-ce
+sha1-arm-neon
+sha2-arm-ce
+sha256-arm
+sha3_generic
+sha512-arm
+shark2
+sharpslpart
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slim-qcom-ngd-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc911x
+smc91x
+smc_diag
+smd-rpm
+smem
+smiapp
+smiapp-pll
+smipcie
+smm665
+smp2p
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsm
+smsmdtv
+smssdio
+smsusb
+snd-aaci
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-apq8016-sbc
+snd-soc-apq8096
+snd-soc-arizona
+snd-soc-armada-370-db
+snd-soc-arndale-rt5631
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-cpcap
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-davinci-mcasp
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-i2s
+snd-soc-idma
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kirkwood
+snd-soc-lochnagar-sc
+snd-soc-lpass-apq8016
+snd-soc-lpass-cpu
+snd-soc-lpass-ipq806x
+snd-soc-lpass-platform
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98095
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-meson-axg-fifo
+snd-soc-meson-axg-frddr
+snd-soc-meson-axg-pdm
+snd-soc-meson-axg-sound-card
+snd-soc-meson-axg-spdifin
+snd-soc-meson-axg-spdifout
+snd-soc-meson-axg-tdm-formatter
+snd-soc-meson-axg-tdm-interface
+snd-soc-meson-axg-tdmin
+snd-soc-meson-axg-tdmout
+snd-soc-meson-axg-toddr
+snd-soc-meson-g12a-tohdmitx
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-mt6797-afe
+snd-soc-mt8183-afe
+snd-soc-mtk-common
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-odroid
+snd-soc-omap-mcbsp
+snd-soc-pcm
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-qcom-common
+snd-soc-rcar
+snd-soc-rk3288-hdmi-analog
+snd-soc-rk3328
+snd-soc-rk3399-gru-sound
+snd-soc-rl6231
+snd-soc-rockchip-i2s
+snd-soc-rockchip-max98090
+snd-soc-rockchip-pcm
+snd-soc-rockchip-pdm
+snd-soc-rockchip-rt5645
+snd-soc-rockchip-spdif
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-rt5663
+snd-soc-s3c-dma
+snd-soc-samsung-spdif
+snd-soc-sdm845
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-smdk-spdif
+snd-soc-smdk-wm8994
+snd-soc-smdk-wm8994pcm
+snd-soc-snow
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-storm
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-ti-edma
+snd-soc-ti-sdma
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tm2-wm5110
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-uniphier-aio-cpu
+snd-soc-uniphier-aio-ld11
+snd-soc-uniphier-aio-pxs2
+snd-soc-uniphier-evea
+snd-soc-wcd9335
+snd-soc-wm-adsp
+snd-soc-wm-hubs
+snd-soc-wm5110
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-wm8994
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-of
+snd-sof-pci
+snd-sonicvibes
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+sni_ave
+snic
+snps_udc_core
+snps_udc_plat
+socinfo
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundwire-bus
+sp2
+sp805_wdt
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-armada-3700
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-geni-qcom
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-meson-spicc
+spi-meson-spifc
+spi-mt65xx
+spi-mxic
+spi-nor
+spi-npcm-fiu
+spi-npcm-pspi
+spi-nxp-fspi
+spi-oc-tiny
+spi-orion
+spi-pl022
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-qcom-qspi
+spi-qup
+spi-rockchip
+spi-rspi
+spi-s3c64xx
+spi-sc18is602
+spi-sh-hspi
+spi-sh-msiof
+spi-sifive
+spi-slave-mt27xx
+spi-slave-system-control
+spi-slave-time
+spi-ti-qspi
+spi-tle62x0
+spi-uniphier
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spmi
+spmi-pmic-arb
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssbi
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-asc
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm-drm
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-pci
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_gt
+synclinkmp
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tee
+tef6862
+tehuti
+teranetics
+test-kprobes
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-cal
+ti-csc
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-sc
+ti-sn65dsi86
+ti-soc-thermal
+ti-tfp410
+ti-tlc4541
+ti-vpdma
+ti-vpe
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_edac
+ti_hecc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+tilcdc
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc
+tmio_mmc_core
+tmio_nand
+tmiofb
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_ftpm_tee
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+turingcc-qcs404
+turris-mox-rwtm
+tusb6010
+tvaudio
+tve200_drm
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_ccg
+uda1342
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufs-hisi
+ufs-mediatek
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+uniphier-mdmac
+uniphier-regulator
+uniphier-sd
+uniphier_thermal
+uniphier_wdt
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-dmac
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+ves1820
+ves1x93
+veth
+vexpress-hwmon
+vexpress-regulator
+vexpress-spc-cpufreq
+vf610_adc
+vf610_dac
+vfio
+vfio-amba
+vfio-pci
+vfio-platform
+vfio-platform-amdxgbe
+vfio-platform-base
+vfio-platform-calxedaxgmac
+vfio_iommu_type1
+vfio_mdev
+vfio_virqfd
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videocc-sdm845
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_pvrdma
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmxnet3
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsp1
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wcn36xx
+wcnss_ctrl
+wd719x
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgmac
+xhci-histb
+xhci-mtk
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xillybus_pcie
+xlnx_vcu
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yurex
+z3fold
+zaurus
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zx-tdm
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic-lpae.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic-lpae.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic.modules
@@ -0,0 +1,5949 @@
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_dw
+8250_exar
+8250_men_mcb
+8250_omap
+8250_uniphier
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+a53-pll
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes-arm
+aes-arm-bs
+aes-arm-ce
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci
+ahci_ceva
+ahci_dm816
+ahci_mtk
+ahci_mvebu
+ahci_qoriq
+ahci_tegra
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am35x
+am53c974
+amba-pl010
+ambakmi
+amc6821
+amd
+amd5536udc_pci
+amd8111e
+amdgpu
+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
+ams369fg06
+analog
+analogix-anx78xx
+analogix_dp
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+ao-cec
+ao-cec-g12a
+aoe
+apbps2
+apcs-msm8916
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+applicom
+apr
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_emac
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arm_big_little
+arm_mhu
+arm_scpi
+armada
+armada-37xx-cpufreq
+armada-37xx-rwtm-mailbox
+armada-8k-cpufreq
+armada_37xx_wdt
+arp_tables
+arpt_mangle
+arptable_filter
+artpec6_crypto
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-lpc-ctrl
+aspeed-lpc-snoop
+aspeed-p2a-ctrl
+aspeed-pwm-tacho
+aspeed-smc
+aspeed-vhub
+aspeed-video
+aspeed_adc
+aspeed_gfx
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_snoc
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-hlcdc-dc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796
+ax88796b
+axg-audio
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bL_switcher_dummy_if
+bam_dma
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bcm-keypad
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm47xxsflash
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm63xx_uart
+bcm7xxx
+bcm87xx
+bcma
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+berlin2-adc
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bochs-drm
+bonding
+bpa10x
+bpck
+bpck6
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb_nand
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt-bmc
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btqcomsmd
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+caam
+caam_jr
+caamalg_desc
+caamhash_desc
+cachefiles
+cadence-quadspi
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camcc-sdm845
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chnl_net
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+clk-bd718x7
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-exynos-audss
+clk-hi3519
+clk-hi655x
+clk-lochnagar
+clk-max77686
+clk-max9485
+clk-palmas
+clk-phase
+clk-pwm
+clk-qcom
+clk-rk808
+clk-rpm
+clk-s2mps11
+clk-scmi
+clk-scpi
+clk-si514
+clk-si5341
+clk-si5351
+clk-si544
+clk-si570
+clk-smd-rpm
+clk-spmi-pmic-div
+clk-twl6040
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmt_speech
+cmtp
+cnic
+cobra
+coda
+coda-vpu
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+comm
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-charger
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cppi41
+cramfs
+crc-itu-t
+crc32-arm-ce
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-arm-ce
+crg-hi3516cv300
+crg-hi3798cv200
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_rpmsg
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_ec_vbc
+cros_usbpd-charger
+cros_usbpd_logger
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da8xx-fb
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+decnet
+defxx
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dispcc-sdm845
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9000
+dm9601
+dmard06
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dove_thermal
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+dps310
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw-mipi-dsi
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_hdmi-imx
+dw_mipi_dsi-stm
+dw_mmc
+dw_mmc-bluefield
+dw_mmc-exynos
+dw_mmc-hi3798cv200
+dw_mmc-k3
+dw_mmc-pci
+dw_mmc-pltfm
+dw_mmc-rockchip
+dw_wdt
+dwc-xlgmac
+dwc3
+dwc3-exynos
+dwc3-haps
+dwc3-meson-g12a
+dwc3-of-simple
+dwc3-omap
+dwc3-qcom
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-ipq806x
+dwmac-mediatek
+dwmac-meson
+dwmac-meson8b
+dwmac-qcom-ethqos
+dwmac-rk
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-mxc
+ehci-npcm7xx
+ehci-omap
+ehci-tegra
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emac_rockchip
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+emif
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+eni
+enic
+envelope-detector
+epat
+epia
+epic100
+eql
+erofs
+error
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-qcom-spmi-misc
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+exynos-gsc
+exynos-lpass
+exynos-rng
+exynos-trng
+exynos_adc
+exynosdrm
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+fastrpc
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fl512
+flexcan
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-ast-cf
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-dcu-drm
+fsl-edma
+fsl-edma-common
+fsl-mph-dr-of
+fsl-qdma
+fsl_imx8_ddr_perf
+fsl_linflexuart
+fsl_lpuart
+fsl_pq_mdio
+fsl_usb2_udc
+ftdi-elan
+ftdi_sio
+ftgmac100
+ftl
+ftm-quaddec
+ftmac100
+ftsteutates
+ftwdt010_wdt
+fujitsu_ts
+fusb300_udc
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_multi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gcc-apq8084
+gcc-ipq4019
+gcc-ipq806x
+gcc-ipq8074
+gcc-mdm9615
+gcc-msm8660
+gcc-msm8916
+gcc-msm8960
+gcc-msm8974
+gcc-msm8994
+gcc-msm8996
+gcc-msm8998
+gcc-qcs404
+gcc-sdm660
+gcc-sdm845
+gcc-sm8150
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+gf2k
+gfs2
+ghash-arm-ce
+gianfar_driver
+gigaset
+gl518sm
+gl520sm
+gl620a
+glink_ssr
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-arizona
+gpio-aspeed
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rcar
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-tqmx86
+gpio-ts4800
+gpio-ts4900
+gpio-ucb1400
+gpio-uniphier
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpmi_nand
+gpu-sched
+gpucc-sdm845
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hclge
+hclgevf
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfpll
+hfs
+hfsplus
+hi311x
+hi3660-mailbox
+hi6210-i2s
+hi6220-mailbox
+hi6220_reset
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi655x-pmic
+hi655x-regulator
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hifn_795x
+highbank-cpufreq
+highbank_l2_edac
+highbank_mc_edac
+hih6130
+hip04_eth
+hisi-rng
+hisi-sfc
+hisi504_nand
+hisi_femac
+hisi_powerkey
+hisi_thermal
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hnae3
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hopper
+horus3a
+host1x
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-aspeed
+i2c-cbus-gpio
+i2c-cros-ec-tunnel
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-emev2
+i2c-exynos5
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-hix5hd2
+i2c-i801
+i2c-imx-lpi2c
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-meson
+i2c-mt65xx
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-mv64xxx
+i2c-nforce2
+i2c-nomadik
+i2c-nvidia-gpu
+i2c-ocores
+i2c-owl
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-pxa
+i2c-qcom-geni
+i2c-qup
+i2c-rcar
+i2c-riic
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-sh_mobile
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tegra
+i2c-tegra-bpmp
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icc-smd-rpm
+ice
+ice40-spi
+icp_multi
+icplus
+ics932s401
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+impa7
+ims-pcu
+imx-cpufreq-dt
+imx-dma
+imx-ipu-v3
+imx-ldb
+imx-mailbox
+imx-media-common
+imx-pxp
+imx-rngc
+imx-sdma
+imx-tve
+imx-vdoa
+imx21-hcd
+imx214
+imx258
+imx274
+imx2_wdt
+imx319
+imx355
+imx6-media
+imx6-media-csi
+imx6-mipi-csi2
+imx6q-cpufreq
+imx6ul_tsc
+imx7-media-csi
+imx7-mipi-csis
+imx7d_adc
+imx7ulp_wdt
+imx_keypad
+imx_rproc
+imx_sc_wdt
+imx_thermal
+imxdrm
+imxfb
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+iova
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+iproc_nand
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-rx51
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+irq-ts4800
+irqbypass
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it87
+it913x
+itd1000
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k3dma
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+kcs_bmc
+kcs_bmc_aspeed
+kcs_bmc_npcm7xx
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmx61
+kobil_sct
+komeda
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+kpss-xcc
+krait-cc
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcc-ipq806x
+lcc-mdm9615
+lcc-msm8960
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-ns2
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pm8058
+leds-pwm
+leds-regulator
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lima
+lineage-pem
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+llcc-sdm845
+llcc-slice
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpasscc-sdm845
+lpc_ich
+lpc_sch
+lpddr2_nvm
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macb_pci
+machxo2-spi
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mali-dp
+mantis
+mantis_core
+map_absent
+map_ram
+map_rom
+marvell
+marvell-cesa
+marvell10g
+marvell_nand
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mcde_drm
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-aspeed
+mdio-bcm-unimac
+mdio-bitbang
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-meson-g12a
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdt_loader
+me4000
+me_daq
+mediatek-cpufreq
+mediatek-drm
+mediatek-drm-hdmi
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+meson-canvas
+meson-drm
+meson-gx-mmc
+meson-gxl
+meson-ir
+meson-mx-sdio
+meson-rng
+meson-vdec
+meson_dw_hdmi
+meson_gxbb_wdt
+meson_nand
+meson_saradc
+meson_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+mii
+milbeaut_usio
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mmcc-apq8084
+mmcc-msm8960
+mmcc-msm8974
+mmcc-msm8996
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6380-regulator
+mt6397
+mt6397-regulator
+mt6577_auxadc
+mt6797-mt6351
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt8183-da7219-max98357
+mt8183-mt6358-ts3a227-max98357
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd_dataflash
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-btcvsd
+mtk-cir
+mtk-cmdq-helper
+mtk-cmdq-mailbox
+mtk-cqdma
+mtk-crypto
+mtk-hsdma
+mtk-pmic-keys
+mtk-pmic-wrap
+mtk-quadspi
+mtk-rng
+mtk-sd
+mtk-uart-apdma
+mtk-vpu
+mtk_ecc
+mtk_nand
+mtk_thermal
+mtk_wdt
+mtouch
+mtu3
+multipath
+multiq3
+musb_am335x
+musb_dsps
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv643xx_eth
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvneta
+mvpp2
+mvsas
+mvsdio
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxc_nand
+mxc_w1
+mxcmmc
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxsfb
+mxuport
+myrb
+myri10ge
+myrs
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nbpfaxi
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-neon
+ni_6527
+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_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicstar
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+nokia-modem
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+npcm_adc
+nps_enet
+ns558
+ns83820
+nsh
+nsp32
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nvec
+nvec_kbd
+nvec_paz00
+nvec_power
+nvec_ps2
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-imx-iim
+nvmem-imx-ocotp
+nvmem-imx-ocotp-scu
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmem-uniphier-efuse
+nvmem_meson_mx_efuse
+nvmem_qfprom
+nvmem_rockchip_efuse
+nvmem_snvs_lpgpr
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of-fpga-region
+of_mmc_spi
+of_xilinx_wdt
+ofb
+ohci-platform
+omap
+omap-aes-driver
+omap-crypto
+omap-des
+omap-mailbox
+omap-ocp2scp
+omap-rng
+omap-sham
+omap-vout
+omap2
+omap2430
+omap2fb
+omap3-isp
+omap3-rom-rng
+omap4-iss
+omap4-keypad
+omap_hdq
+omap_hwspinlock
+omap_remoteproc
+omap_ssi
+omap_wdt
+omapdss
+omfs
+omninet
+on20
+on26
+onenand
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+optee
+optee-rng
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+orion_nand
+orion_wdt
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+owl-dma
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+panfrost
+parade-ps8622
+parallel-display
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_imx
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pbias-regulator
+pblk
+pc300too
+pc87360
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcie-rockchip-host
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcwd_pci
+pcwd_usb
+pd
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-am335x
+phy-am335x-control
+phy-armada38x-comphy
+phy-bcm-kona-usb2
+phy-berlin-sata
+phy-berlin-usb
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-dm816x-usb
+phy-exynos-usb2
+phy-exynos5-usbdrd
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-gpio-vbus-usb
+phy-hix5hd2-sata
+phy-isp1301
+phy-mapphone-mdm6600
+phy-meson-g12a-usb2
+phy-meson-g12a-usb3-pcie
+phy-meson-gxl-usb2
+phy-meson-gxl-usb3
+phy-meson8b-usb2
+phy-mtk-tphy
+phy-mtk-ufs
+phy-mtk-xsphy
+phy-mvebu-a3700-comphy
+phy-mvebu-a3700-utmi
+phy-mvebu-cp110-comphy
+phy-ocelot-serdes
+phy-omap-control
+phy-omap-usb2
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-qcom-pcie2
+phy-qcom-qmp
+phy-qcom-qusb2
+phy-qcom-ufs
+phy-qcom-ufs-qmp-14nm
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-rcar-gen2
+phy-rcar-gen3-pcie
+phy-rcar-gen3-usb2
+phy-rcar-gen3-usb3
+phy-rockchip-dp
+phy-rockchip-emmc
+phy-rockchip-inno-hdmi
+phy-rockchip-inno-usb2
+phy-rockchip-pcie
+phy-rockchip-typec
+phy-rockchip-usb
+phy-tahvo
+phy-tegra-usb
+phy-tegra-xusb
+phy-ti-pipe3
+phy-tusb1210
+phy-twl4030-usb
+phy-twl6030-usb
+phy-uniphier-pcie
+phy-uniphier-usb2
+phy-uniphier-usb3hs
+phy-uniphier-usb3ss
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-apq8064
+pinctrl-apq8084
+pinctrl-axp209
+pinctrl-ipq4019
+pinctrl-ipq8064
+pinctrl-ipq8074
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-mdm9615
+pinctrl-msm8660
+pinctrl-msm8916
+pinctrl-msm8960
+pinctrl-msm8994
+pinctrl-msm8996
+pinctrl-msm8998
+pinctrl-msm8x74
+pinctrl-qcs404
+pinctrl-rk805
+pinctrl-sc7180
+pinctrl-sdm660
+pinctrl-sdm845
+pinctrl-sm8150
+pinctrl-spmi-gpio
+pinctrl-spmi-mpp
+pinctrl-ssbi-gpio
+pinctrl-ssbi-mpp
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+pl353-smc
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8916_wdt
+pm8941-pwrkey
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pmic8xxx-keypad
+pmic8xxx-pwrkey
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp-qoriq
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-beeper
+pwm-berlin
+pwm-cros-ec
+pwm-fan
+pwm-fsl-ftm
+pwm-hibvt
+pwm-imx-tpm
+pwm-imx1
+pwm-imx27
+pwm-ir-tx
+pwm-lp3943
+pwm-mediatek
+pwm-meson
+pwm-mtk-disp
+pwm-omap-dmtimer
+pwm-pca9685
+pwm-rcar
+pwm-regulator
+pwm-renesas-tpu
+pwm-rockchip
+pwm-samsung
+pwm-tegra
+pwm-tiecap
+pwm-tiehrpwm
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa168_eth
+pxa27x_udc
+pxe1610
+pxrc
+q6adm
+q6afe
+q6afe-dai
+q6asm
+q6asm-dai
+q6core
+q6dsp-common
+q6routing
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-apcs-ipc-mailbox
+qcom-coincell
+qcom-cpufreq-hw
+qcom-emac
+qcom-geni-se
+qcom-pm8xxx
+qcom-pm8xxx-xoadc
+qcom-pon
+qcom-rng
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-pmic
+qcom-spmi-temp-alarm
+qcom-spmi-vadc
+qcom-vadc-common
+qcom-wdt
+qcom_aoss
+qcom_common
+qcom_edac
+qcom_geni_serial
+qcom_glink_native
+qcom_glink_rpm
+qcom_glink_smem
+qcom_gsbi
+qcom_hwspinlock
+qcom_nandc
+qcom_q6v5
+qcom_q6v5_adsp
+qcom_q6v5_mss
+qcom_q6v5_pas
+qcom_q6v5_wcss
+qcom_rpm
+qcom_rpm-regulator
+qcom_smbb
+qcom_smd
+qcom_smd-regulator
+qcom_spmi-regulator
+qcom_sysmon
+qcom_tsens
+qcrypto
+qcserial
+qed
+qede
+qedf
+qedi
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_helpers
+qmi_wwan
+qnoc-qcs404
+qnx4
+qnx6
+qoriq-cpufreq
+qoriq_thermal
+qrtr
+qrtr-smd
+qrtr-tun
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ravb
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar-csi2
+rcar-dmac
+rcar-du-drm
+rcar-fcp
+rcar-gyroadc
+rcar-vin
+rcar_can
+rcar_canfd
+rcar_drif
+rcar_dw_hdmi
+rcar_fdp1
+rcar_gen3_thermal
+rcar_jpu
+rcar_lvds
+rcar_thermal
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+regmap-ac97
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+renesas-ceu
+renesas_sdhi_core
+renesas_sdhi_internal_dmac
+renesas_sdhi_sys_dmac
+renesas_usb3
+renesas_usbhs
+renesas_wdt
+repaper
+reset-hi3660
+reset-meson-audio-arb
+reset-qcom-pdc
+reset-scmi
+reset-ti-syscon
+reset-uniphier
+reset-uniphier-glue
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk3399_dmc
+rk805-pwrkey
+rk808
+rk808-regulator
+rk_crypto
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rmobile-reset
+rmtfs_mem
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rockchip-dfi
+rockchip-io-domain
+rockchip-rga
+rockchip_saradc
+rockchip_thermal
+rockchipdrm
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-armada38x
+rtc-as3722
+rtc-aspeed
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cmos
+rtc-cpcap
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-imx-sc
+rtc-imxdi
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-meson
+rtc-meson-vrtc
+rtc-msm6242
+rtc-mt6397
+rtc-mt7622
+rtc-mxc
+rtc-mxc_v2
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-sh
+rtc-snvs
+rtc-stk17ta8
+rtc-tegra
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+rza_wdt
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3c2410_wdt
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s5p-cec
+s5p-g2d
+s5p-jpeg
+s5p-mfc
+s5p-sss
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+sahara
+salsa20_generic
+samsung
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_rcar
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sc92031
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+sclk-div
+scmi-cpufreq
+scmi-hwmon
+scmi_pm_domain
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci-cadence
+sdhci-dove
+sdhci-msm
+sdhci-of-arasan
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-dwcmshc
+sdhci-of-esdhc
+sdhci-omap
+sdhci-pci
+sdhci-pxav3
+sdhci-s3c
+sdhci-tegra
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial-tegra
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh-sci
+sh_eth
+sh_mmcif
+sh_mobile_lcdcfb
+sh_veu
+sha1-arm
+sha1-arm-ce
+sha1-arm-neon
+sha2-arm-ce
+sha256-arm
+sha3_generic
+sha512-arm
+shark2
+sharpslpart
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slic_ds26522
+slicoss
+slim-qcom-ctrl
+slim-qcom-ngd-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc911x
+smc91x
+smc_diag
+smd-rpm
+smem
+smiapp
+smiapp-pll
+smipcie
+smm665
+smp2p
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsm
+smsmdtv
+smssdio
+smsusb
+snd-aaci
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-aloop
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-ens1370
+snd-ens1371
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hda-tegra
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-alc5632
+snd-soc-apq8016-sbc
+snd-soc-apq8096
+snd-soc-arizona
+snd-soc-armada-370-db
+snd-soc-arndale-rt5631
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-cpcap
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-davinci-mcasp
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-eukrea-tlv320
+snd-soc-fsi
+snd-soc-fsl-asoc-card
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-utils
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-i2s
+snd-soc-idma
+snd-soc-imx-audmix
+snd-soc-imx-es8328
+snd-soc-imx-mc13783
+snd-soc-imx-spdif
+snd-soc-imx-ssi
+snd-soc-inno-rk3036
+snd-soc-kirkwood
+snd-soc-lochnagar-sc
+snd-soc-lpass-apq8016
+snd-soc-lpass-cpu
+snd-soc-lpass-ipq806x
+snd-soc-lpass-platform
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98095
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-mc13783
+snd-soc-meson-axg-fifo
+snd-soc-meson-axg-frddr
+snd-soc-meson-axg-pdm
+snd-soc-meson-axg-sound-card
+snd-soc-meson-axg-spdifin
+snd-soc-meson-axg-spdifout
+snd-soc-meson-axg-tdm-formatter
+snd-soc-meson-axg-tdm-interface
+snd-soc-meson-axg-tdmin
+snd-soc-meson-axg-tdmout
+snd-soc-meson-axg-toddr
+snd-soc-meson-g12a-tohdmitx
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-mt6797-afe
+snd-soc-mt8183-afe
+snd-soc-mtk-common
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-odroid
+snd-soc-omap-abe-twl6040
+snd-soc-omap-dmic
+snd-soc-omap-mcbsp
+snd-soc-omap-mcpdm
+snd-soc-omap-twl4030
+snd-soc-omap3pandora
+snd-soc-pcm
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-qcom-common
+snd-soc-rcar
+snd-soc-rk3288-hdmi-analog
+snd-soc-rk3328
+snd-soc-rk3399-gru-sound
+snd-soc-rl6231
+snd-soc-rockchip-i2s
+snd-soc-rockchip-max98090
+snd-soc-rockchip-pcm
+snd-soc-rockchip-pdm
+snd-soc-rockchip-rt5645
+snd-soc-rockchip-spdif
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5663
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rx51
+snd-soc-s3c-dma
+snd-soc-samsung-spdif
+snd-soc-sdm845
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-smdk-spdif
+snd-soc-smdk-wm8994
+snd-soc-smdk-wm8994pcm
+snd-soc-snow
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-storm
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tegra-alc5632
+snd-soc-tegra-max98090
+snd-soc-tegra-pcm
+snd-soc-tegra-rt5640
+snd-soc-tegra-rt5677
+snd-soc-tegra-sgtl5000
+snd-soc-tegra-trimslice
+snd-soc-tegra-utils
+snd-soc-tegra-wm8753
+snd-soc-tegra-wm8903
+snd-soc-tegra-wm9712
+snd-soc-tegra20-ac97
+snd-soc-tegra20-das
+snd-soc-tegra20-i2s
+snd-soc-tegra20-spdif
+snd-soc-tegra30-ahub
+snd-soc-tegra30-i2s
+snd-soc-tfa9879
+snd-soc-ti-edma
+snd-soc-ti-sdma
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tm2-wm5110
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda1334
+snd-soc-uniphier-aio-cpu
+snd-soc-uniphier-aio-ld11
+snd-soc-uniphier-aio-pxs2
+snd-soc-uniphier-evea
+snd-soc-wcd9335
+snd-soc-wm-adsp
+snd-soc-wm-hubs
+snd-soc-wm5110
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-wm8994
+snd-soc-wm9712
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-of
+snd-sof-pci
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+sni_ave
+snic
+snps_udc_core
+snps_udc_plat
+snvs_pwrkey
+socinfo
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundwire-bus
+sp2
+sp805_wdt
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-armada-3700
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-fsl-dspi
+spi-fsl-lpspi
+spi-fsl-qspi
+spi-geni-qcom
+spi-gpio
+spi-imx
+spi-lm70llp
+spi-loopback-test
+spi-meson-spicc
+spi-meson-spifc
+spi-mt65xx
+spi-mxic
+spi-nor
+spi-npcm-fiu
+spi-npcm-pspi
+spi-nxp-fspi
+spi-oc-tiny
+spi-orion
+spi-pl022
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-qcom-qspi
+spi-qup
+spi-rockchip
+spi-rspi
+spi-s3c64xx
+spi-sc18is602
+spi-sh-hspi
+spi-sh-msiof
+spi-sifive
+spi-slave-mt27xx
+spi-slave-system-control
+spi-slave-time
+spi-tegra114
+spi-tegra20-sflash
+spi-tegra20-slink
+spi-ti-qspi
+spi-tle62x0
+spi-uniphier
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spmi
+spmi-pmic-arb
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssbi
+ssd1307fb
+ssfdc
+ssi_protocol
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-asc
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm-drm
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-pci
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_gt
+synclinkmp
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tee
+tef6862
+tegra-bpmp-thermal
+tegra-drm
+tegra-gmi
+tegra-kbc
+tegra-tcu
+tegra-vde
+tegra186-cpufreq
+tegra20-devfreq
+tegra30-devfreq
+tegra_cec
+tegra_nand
+tegra_wdt
+tehuti
+teranetics
+test-kprobes
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-cal
+ti-csc
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-emif-sram
+ti-lmu
+ti-sc
+ti-sn65dsi86
+ti-soc-thermal
+ti-tfp410
+ti-tlc4541
+ti-vpdma
+ti-vpe
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_davinci_emac
+ti_edac
+ti_hecc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+tilcdc
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc
+tmio_mmc_core
+tmio_nand
+tmiofb
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_ftpm_tee
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts4800-ts
+ts4800_wdt
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+turingcc-qcs404
+turris-mox-rwtm
+tusb6010
+tvaudio
+tve200_drm
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_ccg
+uda1342
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufs-hisi
+ufs-mediatek
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+uniphier-mdmac
+uniphier-regulator
+uniphier-sd
+uniphier_thermal
+uniphier_wdt
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-dmac
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+ves1820
+ves1x93
+veth
+vexpress-hwmon
+vexpress-regulator
+vexpress-spc-cpufreq
+vf610_adc
+vf610_dac
+vfio
+vfio-amba
+vfio-pci
+vfio-platform
+vfio-platform-amdxgbe
+vfio-platform-base
+vfio-platform-calxedaxgmac
+vfio_iommu_type1
+vfio_mdev
+vfio_virqfd
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videocc-sdm845
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_pvrdma
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmxnet3
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsp1
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wcn36xx
+wcnss_ctrl
+wd719x
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+wire
+wireguard
+wishbone-serial
+wkup_m3_rproc
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgmac
+xhci-histb
+xhci-mtk
+xhci-plat-hcd
+xhci-tegra
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xillybus_pcie
+xlnx_vcu
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yurex
+z3fold
+zaurus
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zx-tdm
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/armhf/generic.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/armhf/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/fwinfo
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/fwinfo
@@ -0,0 +1,1597 @@
+firmware:       3826.arm
+firmware:       3com/typhoon.bin
+firmware:       6fire/dmx6fireap.ihx
+firmware:       6fire/dmx6firecf.bin
+firmware:       6fire/dmx6firel2.ihx
+firmware:       BCM2033-FW.bin
+firmware:       BCM2033-MD.hex
+firmware:       BT3CPCC.bin
+firmware:       RTL8192E/boot.img
+firmware:       RTL8192E/data.img
+firmware:       RTL8192E/main.img
+firmware:       RTL8192U/boot.img
+firmware:       RTL8192U/data.img
+firmware:       RTL8192U/main.img
+firmware:       acenic/tg1.bin
+firmware:       acenic/tg2.bin
+firmware:       adaptec/starfire_rx.bin
+firmware:       adaptec/starfire_tx.bin
+firmware:       advansys/3550.bin
+firmware:       advansys/38C0800.bin
+firmware:       advansys/38C1600.bin
+firmware:       advansys/mcode.bin
+firmware:       agere_ap_fw.bin
+firmware:       agere_sta_fw.bin
+firmware:       aic94xx-seq.fw
+firmware:       amdgpu/banks_k_2_smc.bin
+firmware:       amdgpu/bonaire_ce.bin
+firmware:       amdgpu/bonaire_k_smc.bin
+firmware:       amdgpu/bonaire_mc.bin
+firmware:       amdgpu/bonaire_me.bin
+firmware:       amdgpu/bonaire_mec.bin
+firmware:       amdgpu/bonaire_pfp.bin
+firmware:       amdgpu/bonaire_rlc.bin
+firmware:       amdgpu/bonaire_sdma.bin
+firmware:       amdgpu/bonaire_sdma1.bin
+firmware:       amdgpu/bonaire_smc.bin
+firmware:       amdgpu/bonaire_uvd.bin
+firmware:       amdgpu/bonaire_vce.bin
+firmware:       amdgpu/carrizo_ce.bin
+firmware:       amdgpu/carrizo_me.bin
+firmware:       amdgpu/carrizo_mec.bin
+firmware:       amdgpu/carrizo_mec2.bin
+firmware:       amdgpu/carrizo_pfp.bin
+firmware:       amdgpu/carrizo_rlc.bin
+firmware:       amdgpu/carrizo_sdma.bin
+firmware:       amdgpu/carrizo_sdma1.bin
+firmware:       amdgpu/carrizo_uvd.bin
+firmware:       amdgpu/carrizo_vce.bin
+firmware:       amdgpu/fiji_ce.bin
+firmware:       amdgpu/fiji_me.bin
+firmware:       amdgpu/fiji_mec.bin
+firmware:       amdgpu/fiji_mec2.bin
+firmware:       amdgpu/fiji_pfp.bin
+firmware:       amdgpu/fiji_rlc.bin
+firmware:       amdgpu/fiji_sdma.bin
+firmware:       amdgpu/fiji_sdma1.bin
+firmware:       amdgpu/fiji_smc.bin
+firmware:       amdgpu/fiji_uvd.bin
+firmware:       amdgpu/fiji_vce.bin
+firmware:       amdgpu/hainan_ce.bin
+firmware:       amdgpu/hainan_k_smc.bin
+firmware:       amdgpu/hainan_mc.bin
+firmware:       amdgpu/hainan_me.bin
+firmware:       amdgpu/hainan_pfp.bin
+firmware:       amdgpu/hainan_rlc.bin
+firmware:       amdgpu/hainan_smc.bin
+firmware:       amdgpu/hawaii_ce.bin
+firmware:       amdgpu/hawaii_k_smc.bin
+firmware:       amdgpu/hawaii_mc.bin
+firmware:       amdgpu/hawaii_me.bin
+firmware:       amdgpu/hawaii_mec.bin
+firmware:       amdgpu/hawaii_pfp.bin
+firmware:       amdgpu/hawaii_rlc.bin
+firmware:       amdgpu/hawaii_sdma.bin
+firmware:       amdgpu/hawaii_sdma1.bin
+firmware:       amdgpu/hawaii_smc.bin
+firmware:       amdgpu/hawaii_uvd.bin
+firmware:       amdgpu/hawaii_vce.bin
+firmware:       amdgpu/kabini_ce.bin
+firmware:       amdgpu/kabini_me.bin
+firmware:       amdgpu/kabini_mec.bin
+firmware:       amdgpu/kabini_pfp.bin
+firmware:       amdgpu/kabini_rlc.bin
+firmware:       amdgpu/kabini_sdma.bin
+firmware:       amdgpu/kabini_sdma1.bin
+firmware:       amdgpu/kabini_uvd.bin
+firmware:       amdgpu/kabini_vce.bin
+firmware:       amdgpu/kaveri_ce.bin
+firmware:       amdgpu/kaveri_me.bin
+firmware:       amdgpu/kaveri_mec.bin
+firmware:       amdgpu/kaveri_mec2.bin
+firmware:       amdgpu/kaveri_pfp.bin
+firmware:       amdgpu/kaveri_rlc.bin
+firmware:       amdgpu/kaveri_sdma.bin
+firmware:       amdgpu/kaveri_sdma1.bin
+firmware:       amdgpu/kaveri_uvd.bin
+firmware:       amdgpu/kaveri_vce.bin
+firmware:       amdgpu/mullins_ce.bin
+firmware:       amdgpu/mullins_me.bin
+firmware:       amdgpu/mullins_mec.bin
+firmware:       amdgpu/mullins_pfp.bin
+firmware:       amdgpu/mullins_rlc.bin
+firmware:       amdgpu/mullins_sdma.bin
+firmware:       amdgpu/mullins_sdma1.bin
+firmware:       amdgpu/mullins_uvd.bin
+firmware:       amdgpu/mullins_vce.bin
+firmware:       amdgpu/navi10_asd.bin
+firmware:       amdgpu/navi10_ce.bin
+firmware:       amdgpu/navi10_gpu_info.bin
+firmware:       amdgpu/navi10_me.bin
+firmware:       amdgpu/navi10_mec.bin
+firmware:       amdgpu/navi10_mec2.bin
+firmware:       amdgpu/navi10_pfp.bin
+firmware:       amdgpu/navi10_rlc.bin
+firmware:       amdgpu/navi10_sdma.bin
+firmware:       amdgpu/navi10_sdma1.bin
+firmware:       amdgpu/navi10_smc.bin
+firmware:       amdgpu/navi10_sos.bin
+firmware:       amdgpu/navi10_vcn.bin
+firmware:       amdgpu/navi14_asd.bin
+firmware:       amdgpu/navi14_ce.bin
+firmware:       amdgpu/navi14_ce_wks.bin
+firmware:       amdgpu/navi14_gpu_info.bin
+firmware:       amdgpu/navi14_me.bin
+firmware:       amdgpu/navi14_me_wks.bin
+firmware:       amdgpu/navi14_mec.bin
+firmware:       amdgpu/navi14_mec2.bin
+firmware:       amdgpu/navi14_mec2_wks.bin
+firmware:       amdgpu/navi14_mec_wks.bin
+firmware:       amdgpu/navi14_pfp.bin
+firmware:       amdgpu/navi14_pfp_wks.bin
+firmware:       amdgpu/navi14_rlc.bin
+firmware:       amdgpu/navi14_sdma.bin
+firmware:       amdgpu/navi14_sdma1.bin
+firmware:       amdgpu/navi14_smc.bin
+firmware:       amdgpu/navi14_sos.bin
+firmware:       amdgpu/navi14_vcn.bin
+firmware:       amdgpu/oland_ce.bin
+firmware:       amdgpu/oland_k_smc.bin
+firmware:       amdgpu/oland_mc.bin
+firmware:       amdgpu/oland_me.bin
+firmware:       amdgpu/oland_pfp.bin
+firmware:       amdgpu/oland_rlc.bin
+firmware:       amdgpu/oland_smc.bin
+firmware:       amdgpu/picasso_asd.bin
+firmware:       amdgpu/picasso_ce.bin
+firmware:       amdgpu/picasso_gpu_info.bin
+firmware:       amdgpu/picasso_me.bin
+firmware:       amdgpu/picasso_mec.bin
+firmware:       amdgpu/picasso_mec2.bin
+firmware:       amdgpu/picasso_pfp.bin
+firmware:       amdgpu/picasso_rlc.bin
+firmware:       amdgpu/picasso_rlc_am4.bin
+firmware:       amdgpu/picasso_sdma.bin
+firmware:       amdgpu/picasso_vcn.bin
+firmware:       amdgpu/pitcairn_ce.bin
+firmware:       amdgpu/pitcairn_k_smc.bin
+firmware:       amdgpu/pitcairn_mc.bin
+firmware:       amdgpu/pitcairn_me.bin
+firmware:       amdgpu/pitcairn_pfp.bin
+firmware:       amdgpu/pitcairn_rlc.bin
+firmware:       amdgpu/pitcairn_smc.bin
+firmware:       amdgpu/polaris10_ce.bin
+firmware:       amdgpu/polaris10_ce_2.bin
+firmware:       amdgpu/polaris10_k2_smc.bin
+firmware:       amdgpu/polaris10_k_mc.bin
+firmware:       amdgpu/polaris10_k_smc.bin
+firmware:       amdgpu/polaris10_mc.bin
+firmware:       amdgpu/polaris10_me.bin
+firmware:       amdgpu/polaris10_me_2.bin
+firmware:       amdgpu/polaris10_mec.bin
+firmware:       amdgpu/polaris10_mec2.bin
+firmware:       amdgpu/polaris10_mec2_2.bin
+firmware:       amdgpu/polaris10_mec_2.bin
+firmware:       amdgpu/polaris10_pfp.bin
+firmware:       amdgpu/polaris10_pfp_2.bin
+firmware:       amdgpu/polaris10_rlc.bin
+firmware:       amdgpu/polaris10_sdma.bin
+firmware:       amdgpu/polaris10_sdma1.bin
+firmware:       amdgpu/polaris10_smc.bin
+firmware:       amdgpu/polaris10_smc_sk.bin
+firmware:       amdgpu/polaris10_uvd.bin
+firmware:       amdgpu/polaris10_vce.bin
+firmware:       amdgpu/polaris11_ce.bin
+firmware:       amdgpu/polaris11_ce_2.bin
+firmware:       amdgpu/polaris11_k2_smc.bin
+firmware:       amdgpu/polaris11_k_mc.bin
+firmware:       amdgpu/polaris11_k_smc.bin
+firmware:       amdgpu/polaris11_mc.bin
+firmware:       amdgpu/polaris11_me.bin
+firmware:       amdgpu/polaris11_me_2.bin
+firmware:       amdgpu/polaris11_mec.bin
+firmware:       amdgpu/polaris11_mec2.bin
+firmware:       amdgpu/polaris11_mec2_2.bin
+firmware:       amdgpu/polaris11_mec_2.bin
+firmware:       amdgpu/polaris11_pfp.bin
+firmware:       amdgpu/polaris11_pfp_2.bin
+firmware:       amdgpu/polaris11_rlc.bin
+firmware:       amdgpu/polaris11_sdma.bin
+firmware:       amdgpu/polaris11_sdma1.bin
+firmware:       amdgpu/polaris11_smc.bin
+firmware:       amdgpu/polaris11_smc_sk.bin
+firmware:       amdgpu/polaris11_uvd.bin
+firmware:       amdgpu/polaris11_vce.bin
+firmware:       amdgpu/polaris12_ce.bin
+firmware:       amdgpu/polaris12_ce_2.bin
+firmware:       amdgpu/polaris12_k_mc.bin
+firmware:       amdgpu/polaris12_k_smc.bin
+firmware:       amdgpu/polaris12_mc.bin
+firmware:       amdgpu/polaris12_me.bin
+firmware:       amdgpu/polaris12_me_2.bin
+firmware:       amdgpu/polaris12_mec.bin
+firmware:       amdgpu/polaris12_mec2.bin
+firmware:       amdgpu/polaris12_mec2_2.bin
+firmware:       amdgpu/polaris12_mec_2.bin
+firmware:       amdgpu/polaris12_pfp.bin
+firmware:       amdgpu/polaris12_pfp_2.bin
+firmware:       amdgpu/polaris12_rlc.bin
+firmware:       amdgpu/polaris12_sdma.bin
+firmware:       amdgpu/polaris12_sdma1.bin
+firmware:       amdgpu/polaris12_smc.bin
+firmware:       amdgpu/polaris12_uvd.bin
+firmware:       amdgpu/polaris12_vce.bin
+firmware:       amdgpu/raven2_asd.bin
+firmware:       amdgpu/raven2_ce.bin
+firmware:       amdgpu/raven2_gpu_info.bin
+firmware:       amdgpu/raven2_me.bin
+firmware:       amdgpu/raven2_mec.bin
+firmware:       amdgpu/raven2_mec2.bin
+firmware:       amdgpu/raven2_pfp.bin
+firmware:       amdgpu/raven2_rlc.bin
+firmware:       amdgpu/raven2_sdma.bin
+firmware:       amdgpu/raven2_vcn.bin
+firmware:       amdgpu/raven_asd.bin
+firmware:       amdgpu/raven_ce.bin
+firmware:       amdgpu/raven_dmcu.bin
+firmware:       amdgpu/raven_gpu_info.bin
+firmware:       amdgpu/raven_kicker_rlc.bin
+firmware:       amdgpu/raven_me.bin
+firmware:       amdgpu/raven_mec.bin
+firmware:       amdgpu/raven_mec2.bin
+firmware:       amdgpu/raven_pfp.bin
+firmware:       amdgpu/raven_rlc.bin
+firmware:       amdgpu/raven_sdma.bin
+firmware:       amdgpu/raven_vcn.bin
+firmware:       amdgpu/renoir_asd.bin
+firmware:       amdgpu/renoir_ce.bin
+firmware:       amdgpu/renoir_gpu_info.bin
+firmware:       amdgpu/renoir_me.bin
+firmware:       amdgpu/renoir_mec.bin
+firmware:       amdgpu/renoir_mec2.bin
+firmware:       amdgpu/renoir_pfp.bin
+firmware:       amdgpu/renoir_rlc.bin
+firmware:       amdgpu/renoir_sdma.bin
+firmware:       amdgpu/renoir_vcn.bin
+firmware:       amdgpu/si58_mc.bin
+firmware:       amdgpu/stoney_ce.bin
+firmware:       amdgpu/stoney_me.bin
+firmware:       amdgpu/stoney_mec.bin
+firmware:       amdgpu/stoney_pfp.bin
+firmware:       amdgpu/stoney_rlc.bin
+firmware:       amdgpu/stoney_sdma.bin
+firmware:       amdgpu/stoney_uvd.bin
+firmware:       amdgpu/stoney_vce.bin
+firmware:       amdgpu/tahiti_ce.bin
+firmware:       amdgpu/tahiti_mc.bin
+firmware:       amdgpu/tahiti_me.bin
+firmware:       amdgpu/tahiti_pfp.bin
+firmware:       amdgpu/tahiti_rlc.bin
+firmware:       amdgpu/tahiti_smc.bin
+firmware:       amdgpu/tonga_ce.bin
+firmware:       amdgpu/tonga_k_smc.bin
+firmware:       amdgpu/tonga_mc.bin
+firmware:       amdgpu/tonga_me.bin
+firmware:       amdgpu/tonga_mec.bin
+firmware:       amdgpu/tonga_mec2.bin
+firmware:       amdgpu/tonga_pfp.bin
+firmware:       amdgpu/tonga_rlc.bin
+firmware:       amdgpu/tonga_sdma.bin
+firmware:       amdgpu/tonga_sdma1.bin
+firmware:       amdgpu/tonga_smc.bin
+firmware:       amdgpu/tonga_uvd.bin
+firmware:       amdgpu/tonga_vce.bin
+firmware:       amdgpu/topaz_ce.bin
+firmware:       amdgpu/topaz_k_smc.bin
+firmware:       amdgpu/topaz_mc.bin
+firmware:       amdgpu/topaz_me.bin
+firmware:       amdgpu/topaz_mec.bin
+firmware:       amdgpu/topaz_pfp.bin
+firmware:       amdgpu/topaz_rlc.bin
+firmware:       amdgpu/topaz_sdma.bin
+firmware:       amdgpu/topaz_sdma1.bin
+firmware:       amdgpu/topaz_smc.bin
+firmware:       amdgpu/vega10_acg_smc.bin
+firmware:       amdgpu/vega10_asd.bin
+firmware:       amdgpu/vega10_ce.bin
+firmware:       amdgpu/vega10_gpu_info.bin
+firmware:       amdgpu/vega10_me.bin
+firmware:       amdgpu/vega10_mec.bin
+firmware:       amdgpu/vega10_mec2.bin
+firmware:       amdgpu/vega10_pfp.bin
+firmware:       amdgpu/vega10_rlc.bin
+firmware:       amdgpu/vega10_sdma.bin
+firmware:       amdgpu/vega10_sdma1.bin
+firmware:       amdgpu/vega10_smc.bin
+firmware:       amdgpu/vega10_sos.bin
+firmware:       amdgpu/vega10_uvd.bin
+firmware:       amdgpu/vega10_vce.bin
+firmware:       amdgpu/vega12_asd.bin
+firmware:       amdgpu/vega12_ce.bin
+firmware:       amdgpu/vega12_gpu_info.bin
+firmware:       amdgpu/vega12_me.bin
+firmware:       amdgpu/vega12_mec.bin
+firmware:       amdgpu/vega12_mec2.bin
+firmware:       amdgpu/vega12_pfp.bin
+firmware:       amdgpu/vega12_rlc.bin
+firmware:       amdgpu/vega12_sdma.bin
+firmware:       amdgpu/vega12_sdma1.bin
+firmware:       amdgpu/vega12_smc.bin
+firmware:       amdgpu/vega12_sos.bin
+firmware:       amdgpu/vega12_uvd.bin
+firmware:       amdgpu/vega12_vce.bin
+firmware:       amdgpu/vega20_asd.bin
+firmware:       amdgpu/vega20_ce.bin
+firmware:       amdgpu/vega20_me.bin
+firmware:       amdgpu/vega20_mec.bin
+firmware:       amdgpu/vega20_mec2.bin
+firmware:       amdgpu/vega20_pfp.bin
+firmware:       amdgpu/vega20_rlc.bin
+firmware:       amdgpu/vega20_sdma.bin
+firmware:       amdgpu/vega20_sdma1.bin
+firmware:       amdgpu/vega20_smc.bin
+firmware:       amdgpu/vega20_sos.bin
+firmware:       amdgpu/vega20_uvd.bin
+firmware:       amdgpu/vega20_vce.bin
+firmware:       amdgpu/vegam_ce.bin
+firmware:       amdgpu/vegam_me.bin
+firmware:       amdgpu/vegam_mec.bin
+firmware:       amdgpu/vegam_mec2.bin
+firmware:       amdgpu/vegam_pfp.bin
+firmware:       amdgpu/vegam_rlc.bin
+firmware:       amdgpu/vegam_sdma.bin
+firmware:       amdgpu/vegam_sdma1.bin
+firmware:       amdgpu/vegam_smc.bin
+firmware:       amdgpu/vegam_uvd.bin
+firmware:       amdgpu/vegam_vce.bin
+firmware:       amdgpu/verde_ce.bin
+firmware:       amdgpu/verde_k_smc.bin
+firmware:       amdgpu/verde_mc.bin
+firmware:       amdgpu/verde_me.bin
+firmware:       amdgpu/verde_pfp.bin
+firmware:       amdgpu/verde_rlc.bin
+firmware:       amdgpu/verde_smc.bin
+firmware:       ar5523.bin
+firmware:       asihpi/dsp5000.bin
+firmware:       asihpi/dsp6200.bin
+firmware:       asihpi/dsp6205.bin
+firmware:       asihpi/dsp6400.bin
+firmware:       asihpi/dsp6600.bin
+firmware:       asihpi/dsp8700.bin
+firmware:       asihpi/dsp8900.bin
+firmware:       ast_dp501_fw.bin
+firmware:       ath10k/QCA6174/hw2.1/board-2.bin
+firmware:       ath10k/QCA6174/hw2.1/board.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-4.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/board-2.bin
+firmware:       ath10k/QCA6174/hw3.0/board.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-4.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-6.bin
+firmware:       ath10k/QCA9377/hw1.0/board.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-6.bin
+firmware:       ath10k/QCA9887/hw1.0/board-2.bin
+firmware:       ath10k/QCA9887/hw1.0/board.bin
+firmware:       ath10k/QCA9887/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA988X/hw2.0/board-2.bin
+firmware:       ath10k/QCA988X/hw2.0/board.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-2.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-3.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-4.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-5.bin
+firmware:       ath3k-1.fw
+firmware:       ath6k/AR6003/hw2.0/athwlan.bin.z77
+firmware:       ath6k/AR6003/hw2.0/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.0/bdata.bin
+firmware:       ath6k/AR6003/hw2.0/data.patch.bin
+firmware:       ath6k/AR6003/hw2.0/otp.bin.z77
+firmware:       ath6k/AR6003/hw2.1.1/athwlan.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.bin
+firmware:       ath6k/AR6003/hw2.1.1/data.patch.bin
+firmware:       ath6k/AR6003/hw2.1.1/otp.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.bin
+firmware:       ath6k/AR6004/hw1.0/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.bin
+firmware:       ath6k/AR6004/hw1.1/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.2/bdata.bin
+firmware:       ath6k/AR6004/hw1.2/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.3/bdata.bin
+firmware:       ath6k/AR6004/hw1.3/fw.ram.bin
+firmware:       ath9k_htc/htc_7010-1.4.0.fw
+firmware:       ath9k_htc/htc_9271-1.4.0.fw
+firmware:       atmel_at76c502-wpa.bin
+firmware:       atmel_at76c502.bin
+firmware:       atmel_at76c502_3com-wpa.bin
+firmware:       atmel_at76c502_3com.bin
+firmware:       atmel_at76c502d-wpa.bin
+firmware:       atmel_at76c502d.bin
+firmware:       atmel_at76c502e-wpa.bin
+firmware:       atmel_at76c502e.bin
+firmware:       atmel_at76c503-i3861.bin
+firmware:       atmel_at76c503-i3863.bin
+firmware:       atmel_at76c503-rfmd-acc.bin
+firmware:       atmel_at76c503-rfmd.bin
+firmware:       atmel_at76c504-wpa.bin
+firmware:       atmel_at76c504.bin
+firmware:       atmel_at76c504_2958-wpa.bin
+firmware:       atmel_at76c504_2958.bin
+firmware:       atmel_at76c504a_2958-wpa.bin
+firmware:       atmel_at76c504a_2958.bin
+firmware:       atmel_at76c505-rfmd.bin
+firmware:       atmel_at76c505-rfmd2958.bin
+firmware:       atmel_at76c505a-rfmd2958.bin
+firmware:       atmel_at76c505amx-rfmd.bin
+firmware:       atmel_at76c506-wpa.bin
+firmware:       atmel_at76c506.bin
+firmware:       atmsar11.fw
+firmware:       atsc_denver.inp
+firmware:       av7110/bootcode.bin
+firmware:       b43/ucode11.fw
+firmware:       b43/ucode13.fw
+firmware:       b43/ucode14.fw
+firmware:       b43/ucode15.fw
+firmware:       b43/ucode16_lp.fw
+firmware:       b43/ucode16_mimo.fw
+firmware:       b43/ucode24_lcn.fw
+firmware:       b43/ucode25_lcn.fw
+firmware:       b43/ucode25_mimo.fw
+firmware:       b43/ucode26_mimo.fw
+firmware:       b43/ucode29_mimo.fw
+firmware:       b43/ucode30_mimo.fw
+firmware:       b43/ucode33_lcn40.fw
+firmware:       b43/ucode40.fw
+firmware:       b43/ucode42.fw
+firmware:       b43/ucode5.fw
+firmware:       b43/ucode9.fw
+firmware:       b43legacy/ucode2.fw
+firmware:       b43legacy/ucode4.fw
+firmware:       bfubase.frm
+firmware:       bnx2/bnx2-mips-06-6.2.3.fw
+firmware:       bnx2/bnx2-mips-09-6.2.1b.fw
+firmware:       bnx2/bnx2-rv2p-06-6.0.15.fw
+firmware:       bnx2/bnx2-rv2p-09-6.0.17.fw
+firmware:       bnx2/bnx2-rv2p-09ax-6.0.17.fw
+firmware:       bnx2x/bnx2x-e1-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e1h-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e2-7.13.11.0.fw
+firmware:       brcm/bcm43xx-0.fw
+firmware:       brcm/bcm43xx_hdr-0.fw
+firmware:       brcm/brcmfmac43012-sdio.bin
+firmware:       brcm/brcmfmac43143-sdio.bin
+firmware:       brcm/brcmfmac43143.bin
+firmware:       brcm/brcmfmac43236b.bin
+firmware:       brcm/brcmfmac43241b0-sdio.bin
+firmware:       brcm/brcmfmac43241b4-sdio.bin
+firmware:       brcm/brcmfmac43241b5-sdio.bin
+firmware:       brcm/brcmfmac43242a.bin
+firmware:       brcm/brcmfmac4329-sdio.bin
+firmware:       brcm/brcmfmac4330-sdio.bin
+firmware:       brcm/brcmfmac4334-sdio.bin
+firmware:       brcm/brcmfmac43340-sdio.bin
+firmware:       brcm/brcmfmac4335-sdio.bin
+firmware:       brcm/brcmfmac43362-sdio.bin
+firmware:       brcm/brcmfmac4339-sdio.bin
+firmware:       brcm/brcmfmac43430-sdio.bin
+firmware:       brcm/brcmfmac43430a0-sdio.bin
+firmware:       brcm/brcmfmac43455-sdio.bin
+firmware:       brcm/brcmfmac43456-sdio.bin
+firmware:       brcm/brcmfmac4350-pcie.bin
+firmware:       brcm/brcmfmac4350c2-pcie.bin
+firmware:       brcm/brcmfmac4354-sdio.bin
+firmware:       brcm/brcmfmac4356-pcie.bin
+firmware:       brcm/brcmfmac4356-sdio.bin
+firmware:       brcm/brcmfmac43569.bin
+firmware:       brcm/brcmfmac43570-pcie.bin
+firmware:       brcm/brcmfmac4358-pcie.bin
+firmware:       brcm/brcmfmac4359-pcie.bin
+firmware:       brcm/brcmfmac43602-pcie.bin
+firmware:       brcm/brcmfmac4365b-pcie.bin
+firmware:       brcm/brcmfmac4365c-pcie.bin
+firmware:       brcm/brcmfmac4366b-pcie.bin
+firmware:       brcm/brcmfmac4366c-pcie.bin
+firmware:       brcm/brcmfmac4371-pcie.bin
+firmware:       brcm/brcmfmac4373-sdio.bin
+firmware:       brcm/brcmfmac4373.bin
+firmware:       c218tunx.cod
+firmware:       c320tunx.cod
+firmware:       carl9170-1.fw
+firmware:       cavium/cnn55xx_se.fw
+firmware:       cbfw-3.2.5.1.bin
+firmware:       cis/3CCFEM556.cis
+firmware:       cis/3CXEM556.cis
+firmware:       cis/COMpad2.cis
+firmware:       cis/COMpad4.cis
+firmware:       cis/DP83903.cis
+firmware:       cis/LA-PCM.cis
+firmware:       cis/MT5634ZLX.cis
+firmware:       cis/NE2K.cis
+firmware:       cis/PCMLM28.cis
+firmware:       cis/PE-200.cis
+firmware:       cis/PE520.cis
+firmware:       cis/RS-COM-2P.cis
+firmware:       cis/SW_555_SER.cis
+firmware:       cis/SW_7xx_SER.cis
+firmware:       cis/SW_8xx_SER.cis
+firmware:       cis/tamarack.cis
+firmware:       cmmb_ming_app.inp
+firmware:       cmmb_vega_12mhz.inp
+firmware:       cmmb_venice_12mhz.inp
+firmware:       comedi/jr3pci.idm
+firmware:       cp204unx.cod
+firmware:       cpia2/stv0672_vp4.bin
+firmware:       cs46xx/cwc4630
+firmware:       cs46xx/cwcasync
+firmware:       cs46xx/cwcbinhack
+firmware:       cs46xx/cwcdma
+firmware:       cs46xx/cwcsnoop
+firmware:       ct2fw-3.2.5.1.bin
+firmware:       ctefx-desktop.bin
+firmware:       ctefx-r3di.bin
+firmware:       ctefx.bin
+firmware:       ctfw-3.2.5.1.bin
+firmware:       cxgb3/ael2005_opt_edc.bin
+firmware:       cxgb3/ael2005_twx_edc.bin
+firmware:       cxgb3/ael2020_twx_edc.bin
+firmware:       cxgb3/t3b_psram-1.1.0.bin
+firmware:       cxgb3/t3c_psram-1.1.0.bin
+firmware:       cxgb3/t3fw-7.12.0.bin
+firmware:       cxgb4/t4fw.bin
+firmware:       cxgb4/t5fw.bin
+firmware:       cxgb4/t6fw.bin
+firmware:       cyzfirm.bin
+firmware:       daqboard2000_firmware.bin
+firmware:       digiface_firmware.bin
+firmware:       digiface_firmware_rev11.bin
+firmware:       dvb-cx18-mpc718-mt352.fw
+firmware:       dvb-demod-m88ds3103.fw
+firmware:       dvb-demod-m88rs6000.fw
+firmware:       dvb-demod-mn88472-02.fw
+firmware:       dvb-demod-mn88473-01.fw
+firmware:       dvb-demod-si2165.fw
+firmware:       dvb-demod-si2168-a20-01.fw
+firmware:       dvb-demod-si2168-a30-01.fw
+firmware:       dvb-demod-si2168-b40-01.fw
+firmware:       dvb-demod-si2168-d60-01.fw
+firmware:       dvb-fe-af9013.fw
+firmware:       dvb-fe-cx24117.fw
+firmware:       dvb-fe-drxj-mc-1.0.8.fw
+firmware:       dvb-fe-ds3000.fw
+firmware:       dvb-fe-tda10071.fw
+firmware:       dvb-fe-xc4000-1.4.1.fw
+firmware:       dvb-fe-xc4000-1.4.fw
+firmware:       dvb-fe-xc5000-1.6.114.fw
+firmware:       dvb-fe-xc5000c-4.1.30.7.fw
+firmware:       dvb-tuner-si2141-a10-01.fw
+firmware:       dvb-tuner-si2157-a30-01.fw
+firmware:       dvb-tuner-si2158-a20-01.fw
+firmware:       dvb-usb-af9015.fw
+firmware:       dvb-usb-af9035-02.fw
+firmware:       dvb-usb-dib0700-1.20.fw
+firmware:       dvb-usb-dw2101.fw
+firmware:       dvb-usb-dw2102.fw
+firmware:       dvb-usb-dw2104.fw
+firmware:       dvb-usb-dw3101.fw
+firmware:       dvb-usb-ec168.fw
+firmware:       dvb-usb-it9135-01.fw
+firmware:       dvb-usb-it9135-02.fw
+firmware:       dvb-usb-it9303-01.fw
+firmware:       dvb-usb-lme2510-lg.fw
+firmware:       dvb-usb-lme2510-s0194.fw
+firmware:       dvb-usb-lme2510c-lg.fw
+firmware:       dvb-usb-lme2510c-rs2000.fw
+firmware:       dvb-usb-lme2510c-s0194.fw
+firmware:       dvb-usb-lme2510c-s7395.fw
+firmware:       dvb-usb-p1100.fw
+firmware:       dvb-usb-p7500.fw
+firmware:       dvb-usb-s630.fw
+firmware:       dvb-usb-s660.fw
+firmware:       dvb-usb-terratec-h7-az6007.fw
+firmware:       dvb_nova_12mhz.inp
+firmware:       dvb_nova_12mhz_b0.inp
+firmware:       dvb_rio.inp
+firmware:       dvbh_rio.inp
+firmware:       e100/d101m_ucode.bin
+firmware:       e100/d101s_ucode.bin
+firmware:       e100/d102e_ucode.bin
+firmware:       ea/3g_asic.fw
+firmware:       ea/darla20_dsp.fw
+firmware:       ea/darla24_dsp.fw
+firmware:       ea/echo3g_dsp.fw
+firmware:       ea/gina20_dsp.fw
+firmware:       ea/gina24_301_asic.fw
+firmware:       ea/gina24_301_dsp.fw
+firmware:       ea/gina24_361_asic.fw
+firmware:       ea/gina24_361_dsp.fw
+firmware:       ea/indigo_dj_dsp.fw
+firmware:       ea/indigo_djx_dsp.fw
+firmware:       ea/indigo_dsp.fw
+firmware:       ea/indigo_io_dsp.fw
+firmware:       ea/indigo_iox_dsp.fw
+firmware:       ea/layla20_asic.fw
+firmware:       ea/layla20_dsp.fw
+firmware:       ea/layla24_1_asic.fw
+firmware:       ea/layla24_2A_asic.fw
+firmware:       ea/layla24_2S_asic.fw
+firmware:       ea/layla24_dsp.fw
+firmware:       ea/loader_dsp.fw
+firmware:       ea/mia_dsp.fw
+firmware:       ea/mona_2_asic.fw
+firmware:       ea/mona_301_1_asic_48.fw
+firmware:       ea/mona_301_1_asic_96.fw
+firmware:       ea/mona_301_dsp.fw
+firmware:       ea/mona_361_1_asic_48.fw
+firmware:       ea/mona_361_1_asic_96.fw
+firmware:       ea/mona_361_dsp.fw
+firmware:       edgeport/boot.fw
+firmware:       edgeport/boot2.fw
+firmware:       edgeport/down.fw
+firmware:       edgeport/down2.fw
+firmware:       edgeport/down3.bin
+firmware:       emi26/bitstream.fw
+firmware:       emi26/firmware.fw
+firmware:       emi26/loader.fw
+firmware:       emi62/bitstream.fw
+firmware:       emi62/loader.fw
+firmware:       emi62/spdif.fw
+firmware:       emu/audio_dock.fw
+firmware:       emu/emu0404.fw
+firmware:       emu/emu1010_notebook.fw
+firmware:       emu/emu1010b.fw
+firmware:       emu/hana.fw
+firmware:       emu/micro_dock.fw
+firmware:       ene-ub6250/ms_init.bin
+firmware:       ene-ub6250/ms_rdwr.bin
+firmware:       ene-ub6250/msp_rdwr.bin
+firmware:       ene-ub6250/sd_init1.bin
+firmware:       ene-ub6250/sd_init2.bin
+firmware:       ene-ub6250/sd_rdwr.bin
+firmware:       ess/maestro3_assp_kernel.fw
+firmware:       ess/maestro3_assp_minisrc.fw
+firmware:       f2255usb.bin
+firmware:       fm_radio.inp
+firmware:       fm_radio_rio.inp
+firmware:       fw.ram.bin
+firmware:       go7007/go7007fw.bin
+firmware:       go7007/go7007tv.bin
+firmware:       go7007/lr192.fw
+firmware:       go7007/px-m402u.fw
+firmware:       go7007/px-tv402u.fw
+firmware:       go7007/s2250-1.fw
+firmware:       go7007/s2250-2.fw
+firmware:       go7007/wis-startrek.fw
+firmware:       hfi1_dc8051.fw
+firmware:       hfi1_fabric.fw
+firmware:       hfi1_pcie.fw
+firmware:       hfi1_sbus.fw
+firmware:       i1480-phy-0.0.bin
+firmware:       i1480-pre-phy-0.0.bin
+firmware:       i1480-usb-0.0.bin
+firmware:       i2400m-fw-usb-1.5.sbcf
+firmware:       i6050-fw-usb-1.5.sbcf
+firmware:       i915/bxt_dmc_ver1_07.bin
+firmware:       i915/bxt_guc_33.0.0.bin
+firmware:       i915/bxt_huc_ver01_8_2893.bin
+firmware:       i915/cnl_dmc_ver1_07.bin
+firmware:       i915/glk_dmc_ver1_04.bin
+firmware:       i915/glk_guc_33.0.0.bin
+firmware:       i915/glk_huc_ver03_01_2893.bin
+firmware:       i915/icl_dmc_ver1_07.bin
+firmware:       i915/icl_guc_33.0.0.bin
+firmware:       i915/icl_huc_ver8_4_3238.bin
+firmware:       i915/kbl_dmc_ver1_04.bin
+firmware:       i915/kbl_guc_33.0.0.bin
+firmware:       i915/kbl_huc_ver02_00_1810.bin
+firmware:       i915/skl_dmc_ver1_27.bin
+firmware:       i915/skl_guc_33.0.0.bin
+firmware:       i915/skl_huc_ver01_07_1398.bin
+firmware:       i915/tgl_dmc_ver2_04.bin
+firmware:       icom_asc.bin
+firmware:       icom_call_setup.bin
+firmware:       icom_res_dce.bin
+firmware:       imx/sdma/sdma-imx6q.bin
+firmware:       imx/sdma/sdma-imx7d.bin
+firmware:       intel/ibt-11-5.ddc
+firmware:       intel/ibt-11-5.sfi
+firmware:       intel/ibt-12-16.ddc
+firmware:       intel/ibt-12-16.sfi
+firmware:       intel/ice/ddp/ice.pkg
+firmware:       ipw2100-1.3-i.fw
+firmware:       ipw2100-1.3-p.fw
+firmware:       ipw2100-1.3.fw
+firmware:       ipw2200-bss.fw
+firmware:       ipw2200-ibss.fw
+firmware:       ipw2200-sniffer.fw
+firmware:       isci/isci_firmware.bin
+firmware:       isdbt_nova_12mhz.inp
+firmware:       isdbt_nova_12mhz_b0.inp
+firmware:       isdbt_pele.inp
+firmware:       isdbt_rio.inp
+firmware:       isdn/ISAR.BIN
+firmware:       isi4608.bin
+firmware:       isi4616.bin
+firmware:       isi608.bin
+firmware:       isi608em.bin
+firmware:       isi616em.bin
+firmware:       isight.fw
+firmware:       isl3886pci
+firmware:       isl3886usb
+firmware:       isl3887usb
+firmware:       iwlwifi-100-5.ucode
+firmware:       iwlwifi-1000-5.ucode
+firmware:       iwlwifi-105-6.ucode
+firmware:       iwlwifi-135-6.ucode
+firmware:       iwlwifi-2000-6.ucode
+firmware:       iwlwifi-2030-6.ucode
+firmware:       iwlwifi-3160-17.ucode
+firmware:       iwlwifi-3168-29.ucode
+firmware:       iwlwifi-3945-2.ucode
+firmware:       iwlwifi-4965-2.ucode
+firmware:       iwlwifi-5000-5.ucode
+firmware:       iwlwifi-5150-2.ucode
+firmware:       iwlwifi-6000-6.ucode
+firmware:       iwlwifi-6000g2a-6.ucode
+firmware:       iwlwifi-6000g2b-6.ucode
+firmware:       iwlwifi-6050-5.ucode
+firmware:       iwlwifi-7260-17.ucode
+firmware:       iwlwifi-7265-17.ucode
+firmware:       iwlwifi-7265D-29.ucode
+firmware:       iwlwifi-8000C-36.ucode
+firmware:       iwlwifi-8265-36.ucode
+firmware:       iwlwifi-9000-pu-b0-jf-b0-46.ucode
+firmware:       iwlwifi-9260-th-b0-jf-b0-46.ucode
+firmware:       iwlwifi-Qu-a0-hr-a0-50.ucode
+firmware:       iwlwifi-Qu-a0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-b0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-c0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-a0-hr-a0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-jf-b0-50.ucode
+firmware:       iwlwifi-QuQnj-f0-hr-a0-50.ucode
+firmware:       iwlwifi-QuZ-a0-hr-b0-50.ucode
+firmware:       iwlwifi-QuZ-a0-jf-b0-50.ucode
+firmware:       iwlwifi-cc-a0-50.ucode
+firmware:       iwlwifi-so-a0-gf-a0-50.ucode
+firmware:       iwlwifi-so-a0-hr-b0-50.ucode
+firmware:       iwlwifi-so-a0-jf-b0-50.ucode
+firmware:       iwlwifi-ty-a0-gf-a0-50.ucode
+firmware:       kaweth/new_code.bin
+firmware:       kaweth/new_code_fix.bin
+firmware:       kaweth/trigger_code.bin
+firmware:       kaweth/trigger_code_fix.bin
+firmware:       keyspan/mpr.fw
+firmware:       keyspan/usa18x.fw
+firmware:       keyspan/usa19.fw
+firmware:       keyspan/usa19qi.fw
+firmware:       keyspan/usa19qw.fw
+firmware:       keyspan/usa19w.fw
+firmware:       keyspan/usa28.fw
+firmware:       keyspan/usa28x.fw
+firmware:       keyspan/usa28xa.fw
+firmware:       keyspan/usa28xb.fw
+firmware:       keyspan/usa49w.fw
+firmware:       keyspan/usa49wlc.fw
+firmware:       keyspan_pda/keyspan_pda.fw
+firmware:       keyspan_pda/xircom_pgs.fw
+firmware:       korg/k1212.dsp
+firmware:       ks7010sd.rom
+firmware:       lantiq/xrx200_phy11g_a14.bin
+firmware:       lantiq/xrx200_phy11g_a22.bin
+firmware:       lantiq/xrx200_phy22f_a14.bin
+firmware:       lantiq/xrx200_phy22f_a22.bin
+firmware:       lantiq/xrx300_phy11g_a21.bin
+firmware:       lantiq/xrx300_phy22f_a21.bin
+firmware:       lattice-ecp3.bit
+firmware:       lbtf_usb.bin
+firmware:       lgs8g75.fw
+firmware:       libertas/cf8305.bin
+firmware:       libertas/cf8381.bin
+firmware:       libertas/cf8381_helper.bin
+firmware:       libertas/cf8385.bin
+firmware:       libertas/cf8385_helper.bin
+firmware:       libertas/gspi8385.bin
+firmware:       libertas/gspi8385_helper.bin
+firmware:       libertas/gspi8385_hlp.bin
+firmware:       libertas/gspi8686.bin
+firmware:       libertas/gspi8686_hlp.bin
+firmware:       libertas/gspi8686_v9.bin
+firmware:       libertas/gspi8686_v9_helper.bin
+firmware:       libertas/gspi8688.bin
+firmware:       libertas/gspi8688_helper.bin
+firmware:       libertas/sd8385.bin
+firmware:       libertas/sd8385_helper.bin
+firmware:       libertas/sd8686_v8.bin
+firmware:       libertas/sd8686_v8_helper.bin
+firmware:       libertas/sd8686_v9.bin
+firmware:       libertas/sd8686_v9_helper.bin
+firmware:       libertas/sd8688.bin
+firmware:       libertas/sd8688_helper.bin
+firmware:       libertas/usb8388.bin
+firmware:       libertas/usb8388_v5.bin
+firmware:       libertas/usb8388_v9.bin
+firmware:       libertas/usb8682.bin
+firmware:       libertas_cs.fw
+firmware:       libertas_cs_helper.fw
+firmware:       liquidio/lio_210nv_nic.bin
+firmware:       liquidio/lio_210sv_nic.bin
+firmware:       liquidio/lio_23xx_nic.bin
+firmware:       liquidio/lio_410nv_nic.bin
+firmware:       me2600_firmware.bin
+firmware:       me4000_firmware.bin
+firmware:       mediatek/mt7610e.bin
+firmware:       mediatek/mt7610u.bin
+firmware:       mediatek/mt7615_cr4.bin
+firmware:       mediatek/mt7615_n9.bin
+firmware:       mediatek/mt7615_rom_patch.bin
+firmware:       mediatek/mt7622pr2h.bin
+firmware:       mediatek/mt7650e.bin
+firmware:       mediatek/mt7663pr2h.bin
+firmware:       mediatek/mt7668pr2h.bin
+firmware:       mellanox/mlxsw_spectrum-13.2000.1886.mfa2
+firmware:       mixart/miXart8.elf
+firmware:       mixart/miXart8.xlx
+firmware:       mixart/miXart8AES.xlx
+firmware:       moxa/moxa-1110.fw
+firmware:       moxa/moxa-1130.fw
+firmware:       moxa/moxa-1131.fw
+firmware:       moxa/moxa-1150.fw
+firmware:       moxa/moxa-1151.fw
+firmware:       mrvl/sd8688.bin
+firmware:       mrvl/sd8688_helper.bin
+firmware:       mrvl/sd8786_uapsta.bin
+firmware:       mrvl/sd8787_uapsta.bin
+firmware:       mrvl/sd8797_uapsta.bin
+firmware:       mrvl/sd8887_uapsta.bin
+firmware:       mrvl/sd8897_uapsta.bin
+firmware:       mrvl/sd8987_uapsta.bin
+firmware:       mrvl/sdsd8977_combo_v2.bin
+firmware:       mrvl/sdsd8997_combo_v4.bin
+firmware:       mrvl/usb8766_uapsta.bin
+firmware:       mrvl/usb8797_uapsta.bin
+firmware:       mrvl/usb8801_uapsta.bin
+firmware:       mrvl/usbusb8997_combo_v4.bin
+firmware:       mt7601u.bin
+firmware:       mt7603_e1.bin
+firmware:       mt7603_e2.bin
+firmware:       mt7628_e1.bin
+firmware:       mt7628_e2.bin
+firmware:       mt7662.bin
+firmware:       mt7662_rom_patch.bin
+firmware:       mts_cdma.fw
+firmware:       mts_edge.fw
+firmware:       mts_gsm.fw
+firmware:       mts_mt9234mu.fw
+firmware:       mts_mt9234zba.fw
+firmware:       multiface_firmware.bin
+firmware:       multiface_firmware_rev11.bin
+firmware:       mwl8k/fmimage_8363.fw
+firmware:       mwl8k/fmimage_8366.fw
+firmware:       mwl8k/fmimage_8366_ap-3.fw
+firmware:       mwl8k/fmimage_8687.fw
+firmware:       mwl8k/helper_8363.fw
+firmware:       mwl8k/helper_8366.fw
+firmware:       mwl8k/helper_8687.fw
+firmware:       myri10ge_eth_z8e.dat
+firmware:       myri10ge_ethp_z8e.dat
+firmware:       myri10ge_rss_eth_z8e.dat
+firmware:       myri10ge_rss_ethp_z8e.dat
+firmware:       netronome/nic_AMDA0058-0011_2x40.nffw
+firmware:       netronome/nic_AMDA0058-0012_2x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_1x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_4x10.nffw
+firmware:       netronome/nic_AMDA0096-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0097-0001_2x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_4x10_1x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_8x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_1x10_1x25.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x25.nffw
+firmware:       ni6534a.bin
+firmware:       niscrb01.bin
+firmware:       niscrb02.bin
+firmware:       nvidia/gk20a/fecs_data.bin
+firmware:       nvidia/gk20a/fecs_inst.bin
+firmware:       nvidia/gk20a/gpccs_data.bin
+firmware:       nvidia/gk20a/gpccs_inst.bin
+firmware:       nvidia/gk20a/sw_bundle_init.bin
+firmware:       nvidia/gk20a/sw_ctx.bin
+firmware:       nvidia/gk20a/sw_method_init.bin
+firmware:       nvidia/gk20a/sw_nonctx.bin
+firmware:       nvidia/gm200/acr/bl.bin
+firmware:       nvidia/gm200/acr/ucode_load.bin
+firmware:       nvidia/gm200/acr/ucode_unload.bin
+firmware:       nvidia/gm200/gr/fecs_bl.bin
+firmware:       nvidia/gm200/gr/fecs_data.bin
+firmware:       nvidia/gm200/gr/fecs_inst.bin
+firmware:       nvidia/gm200/gr/fecs_sig.bin
+firmware:       nvidia/gm200/gr/gpccs_bl.bin
+firmware:       nvidia/gm200/gr/gpccs_data.bin
+firmware:       nvidia/gm200/gr/gpccs_inst.bin
+firmware:       nvidia/gm200/gr/gpccs_sig.bin
+firmware:       nvidia/gm200/gr/sw_bundle_init.bin
+firmware:       nvidia/gm200/gr/sw_ctx.bin
+firmware:       nvidia/gm200/gr/sw_method_init.bin
+firmware:       nvidia/gm200/gr/sw_nonctx.bin
+firmware:       nvidia/gm204/acr/bl.bin
+firmware:       nvidia/gm204/acr/ucode_load.bin
+firmware:       nvidia/gm204/acr/ucode_unload.bin
+firmware:       nvidia/gm204/gr/fecs_bl.bin
+firmware:       nvidia/gm204/gr/fecs_data.bin
+firmware:       nvidia/gm204/gr/fecs_inst.bin
+firmware:       nvidia/gm204/gr/fecs_sig.bin
+firmware:       nvidia/gm204/gr/gpccs_bl.bin
+firmware:       nvidia/gm204/gr/gpccs_data.bin
+firmware:       nvidia/gm204/gr/gpccs_inst.bin
+firmware:       nvidia/gm204/gr/gpccs_sig.bin
+firmware:       nvidia/gm204/gr/sw_bundle_init.bin
+firmware:       nvidia/gm204/gr/sw_ctx.bin
+firmware:       nvidia/gm204/gr/sw_method_init.bin
+firmware:       nvidia/gm204/gr/sw_nonctx.bin
+firmware:       nvidia/gm206/acr/bl.bin
+firmware:       nvidia/gm206/acr/ucode_load.bin
+firmware:       nvidia/gm206/acr/ucode_unload.bin
+firmware:       nvidia/gm206/gr/fecs_bl.bin
+firmware:       nvidia/gm206/gr/fecs_data.bin
+firmware:       nvidia/gm206/gr/fecs_inst.bin
+firmware:       nvidia/gm206/gr/fecs_sig.bin
+firmware:       nvidia/gm206/gr/gpccs_bl.bin
+firmware:       nvidia/gm206/gr/gpccs_data.bin
+firmware:       nvidia/gm206/gr/gpccs_inst.bin
+firmware:       nvidia/gm206/gr/gpccs_sig.bin
+firmware:       nvidia/gm206/gr/sw_bundle_init.bin
+firmware:       nvidia/gm206/gr/sw_ctx.bin
+firmware:       nvidia/gm206/gr/sw_method_init.bin
+firmware:       nvidia/gm206/gr/sw_nonctx.bin
+firmware:       nvidia/gp100/acr/bl.bin
+firmware:       nvidia/gp100/acr/ucode_load.bin
+firmware:       nvidia/gp100/acr/ucode_unload.bin
+firmware:       nvidia/gp100/gr/fecs_bl.bin
+firmware:       nvidia/gp100/gr/fecs_data.bin
+firmware:       nvidia/gp100/gr/fecs_inst.bin
+firmware:       nvidia/gp100/gr/fecs_sig.bin
+firmware:       nvidia/gp100/gr/gpccs_bl.bin
+firmware:       nvidia/gp100/gr/gpccs_data.bin
+firmware:       nvidia/gp100/gr/gpccs_inst.bin
+firmware:       nvidia/gp100/gr/gpccs_sig.bin
+firmware:       nvidia/gp100/gr/sw_bundle_init.bin
+firmware:       nvidia/gp100/gr/sw_ctx.bin
+firmware:       nvidia/gp100/gr/sw_method_init.bin
+firmware:       nvidia/gp100/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/acr/bl.bin
+firmware:       nvidia/gp102/acr/ucode_load.bin
+firmware:       nvidia/gp102/acr/ucode_unload.bin
+firmware:       nvidia/gp102/acr/unload_bl.bin
+firmware:       nvidia/gp102/gr/fecs_bl.bin
+firmware:       nvidia/gp102/gr/fecs_data.bin
+firmware:       nvidia/gp102/gr/fecs_inst.bin
+firmware:       nvidia/gp102/gr/fecs_sig.bin
+firmware:       nvidia/gp102/gr/gpccs_bl.bin
+firmware:       nvidia/gp102/gr/gpccs_data.bin
+firmware:       nvidia/gp102/gr/gpccs_inst.bin
+firmware:       nvidia/gp102/gr/gpccs_sig.bin
+firmware:       nvidia/gp102/gr/sw_bundle_init.bin
+firmware:       nvidia/gp102/gr/sw_ctx.bin
+firmware:       nvidia/gp102/gr/sw_method_init.bin
+firmware:       nvidia/gp102/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/nvdec/scrubber.bin
+firmware:       nvidia/gp102/sec2/desc-1.bin
+firmware:       nvidia/gp102/sec2/desc.bin
+firmware:       nvidia/gp102/sec2/image-1.bin
+firmware:       nvidia/gp102/sec2/image.bin
+firmware:       nvidia/gp102/sec2/sig-1.bin
+firmware:       nvidia/gp102/sec2/sig.bin
+firmware:       nvidia/gp104/acr/bl.bin
+firmware:       nvidia/gp104/acr/ucode_load.bin
+firmware:       nvidia/gp104/acr/ucode_unload.bin
+firmware:       nvidia/gp104/acr/unload_bl.bin
+firmware:       nvidia/gp104/gr/fecs_bl.bin
+firmware:       nvidia/gp104/gr/fecs_data.bin
+firmware:       nvidia/gp104/gr/fecs_inst.bin
+firmware:       nvidia/gp104/gr/fecs_sig.bin
+firmware:       nvidia/gp104/gr/gpccs_bl.bin
+firmware:       nvidia/gp104/gr/gpccs_data.bin
+firmware:       nvidia/gp104/gr/gpccs_inst.bin
+firmware:       nvidia/gp104/gr/gpccs_sig.bin
+firmware:       nvidia/gp104/gr/sw_bundle_init.bin
+firmware:       nvidia/gp104/gr/sw_ctx.bin
+firmware:       nvidia/gp104/gr/sw_method_init.bin
+firmware:       nvidia/gp104/gr/sw_nonctx.bin
+firmware:       nvidia/gp104/nvdec/scrubber.bin
+firmware:       nvidia/gp104/sec2/desc-1.bin
+firmware:       nvidia/gp104/sec2/desc.bin
+firmware:       nvidia/gp104/sec2/image-1.bin
+firmware:       nvidia/gp104/sec2/image.bin
+firmware:       nvidia/gp104/sec2/sig-1.bin
+firmware:       nvidia/gp104/sec2/sig.bin
+firmware:       nvidia/gp106/acr/bl.bin
+firmware:       nvidia/gp106/acr/ucode_load.bin
+firmware:       nvidia/gp106/acr/ucode_unload.bin
+firmware:       nvidia/gp106/acr/unload_bl.bin
+firmware:       nvidia/gp106/gr/fecs_bl.bin
+firmware:       nvidia/gp106/gr/fecs_data.bin
+firmware:       nvidia/gp106/gr/fecs_inst.bin
+firmware:       nvidia/gp106/gr/fecs_sig.bin
+firmware:       nvidia/gp106/gr/gpccs_bl.bin
+firmware:       nvidia/gp106/gr/gpccs_data.bin
+firmware:       nvidia/gp106/gr/gpccs_inst.bin
+firmware:       nvidia/gp106/gr/gpccs_sig.bin
+firmware:       nvidia/gp106/gr/sw_bundle_init.bin
+firmware:       nvidia/gp106/gr/sw_ctx.bin
+firmware:       nvidia/gp106/gr/sw_method_init.bin
+firmware:       nvidia/gp106/gr/sw_nonctx.bin
+firmware:       nvidia/gp106/nvdec/scrubber.bin
+firmware:       nvidia/gp106/sec2/desc-1.bin
+firmware:       nvidia/gp106/sec2/desc.bin
+firmware:       nvidia/gp106/sec2/image-1.bin
+firmware:       nvidia/gp106/sec2/image.bin
+firmware:       nvidia/gp106/sec2/sig-1.bin
+firmware:       nvidia/gp106/sec2/sig.bin
+firmware:       nvidia/gp107/acr/bl.bin
+firmware:       nvidia/gp107/acr/ucode_load.bin
+firmware:       nvidia/gp107/acr/ucode_unload.bin
+firmware:       nvidia/gp107/acr/unload_bl.bin
+firmware:       nvidia/gp107/gr/fecs_bl.bin
+firmware:       nvidia/gp107/gr/fecs_data.bin
+firmware:       nvidia/gp107/gr/fecs_inst.bin
+firmware:       nvidia/gp107/gr/fecs_sig.bin
+firmware:       nvidia/gp107/gr/gpccs_bl.bin
+firmware:       nvidia/gp107/gr/gpccs_data.bin
+firmware:       nvidia/gp107/gr/gpccs_inst.bin
+firmware:       nvidia/gp107/gr/gpccs_sig.bin
+firmware:       nvidia/gp107/gr/sw_bundle_init.bin
+firmware:       nvidia/gp107/gr/sw_ctx.bin
+firmware:       nvidia/gp107/gr/sw_method_init.bin
+firmware:       nvidia/gp107/gr/sw_nonctx.bin
+firmware:       nvidia/gp107/nvdec/scrubber.bin
+firmware:       nvidia/gp107/sec2/desc-1.bin
+firmware:       nvidia/gp107/sec2/desc.bin
+firmware:       nvidia/gp107/sec2/image-1.bin
+firmware:       nvidia/gp107/sec2/image.bin
+firmware:       nvidia/gp107/sec2/sig-1.bin
+firmware:       nvidia/gp107/sec2/sig.bin
+firmware:       nvidia/gp108/acr/bl.bin
+firmware:       nvidia/gp108/acr/ucode_load.bin
+firmware:       nvidia/gp108/acr/ucode_unload.bin
+firmware:       nvidia/gp108/acr/unload_bl.bin
+firmware:       nvidia/gp108/gr/fecs_bl.bin
+firmware:       nvidia/gp108/gr/fecs_data.bin
+firmware:       nvidia/gp108/gr/fecs_inst.bin
+firmware:       nvidia/gp108/gr/fecs_sig.bin
+firmware:       nvidia/gp108/gr/gpccs_bl.bin
+firmware:       nvidia/gp108/gr/gpccs_data.bin
+firmware:       nvidia/gp108/gr/gpccs_inst.bin
+firmware:       nvidia/gp108/gr/gpccs_sig.bin
+firmware:       nvidia/gp108/gr/sw_bundle_init.bin
+firmware:       nvidia/gp108/gr/sw_ctx.bin
+firmware:       nvidia/gp108/gr/sw_method_init.bin
+firmware:       nvidia/gp108/gr/sw_nonctx.bin
+firmware:       nvidia/gp108/nvdec/scrubber.bin
+firmware:       nvidia/gp108/sec2/desc.bin
+firmware:       nvidia/gp108/sec2/image.bin
+firmware:       nvidia/gp108/sec2/sig.bin
+firmware:       nvidia/gv100/acr/bl.bin
+firmware:       nvidia/gv100/acr/ucode_load.bin
+firmware:       nvidia/gv100/acr/ucode_unload.bin
+firmware:       nvidia/gv100/acr/unload_bl.bin
+firmware:       nvidia/gv100/gr/fecs_bl.bin
+firmware:       nvidia/gv100/gr/fecs_data.bin
+firmware:       nvidia/gv100/gr/fecs_inst.bin
+firmware:       nvidia/gv100/gr/fecs_sig.bin
+firmware:       nvidia/gv100/gr/gpccs_bl.bin
+firmware:       nvidia/gv100/gr/gpccs_data.bin
+firmware:       nvidia/gv100/gr/gpccs_inst.bin
+firmware:       nvidia/gv100/gr/gpccs_sig.bin
+firmware:       nvidia/gv100/gr/sw_bundle_init.bin
+firmware:       nvidia/gv100/gr/sw_ctx.bin
+firmware:       nvidia/gv100/gr/sw_method_init.bin
+firmware:       nvidia/gv100/gr/sw_nonctx.bin
+firmware:       nvidia/gv100/nvdec/scrubber.bin
+firmware:       nvidia/gv100/sec2/desc.bin
+firmware:       nvidia/gv100/sec2/image.bin
+firmware:       nvidia/gv100/sec2/sig.bin
+firmware:       nvidia/tegra124/vic03_ucode.bin
+firmware:       nvidia/tegra124/xusb.bin
+firmware:       nvidia/tegra186/xusb.bin
+firmware:       nvidia/tegra210/xusb.bin
+firmware:       orinoco_ezusb_fw
+firmware:       ositech/Xilinx7OD.bin
+firmware:       pca200e.bin
+firmware:       pca200e_ecd.bin2
+firmware:       pcxhr/dspb1222e.b56
+firmware:       pcxhr/dspb1222hr.b56
+firmware:       pcxhr/dspb882e.b56
+firmware:       pcxhr/dspb882hr.b56
+firmware:       pcxhr/dspb924.b56
+firmware:       pcxhr/dspd1222.d56
+firmware:       pcxhr/dspd222.d56
+firmware:       pcxhr/dspd882.d56
+firmware:       pcxhr/dspe882.e56
+firmware:       pcxhr/dspe924.e56
+firmware:       pcxhr/xlxc1222e.dat
+firmware:       pcxhr/xlxc1222hr.dat
+firmware:       pcxhr/xlxc222.dat
+firmware:       pcxhr/xlxc882e.dat
+firmware:       pcxhr/xlxc882hr.dat
+firmware:       pcxhr/xlxc924.dat
+firmware:       pcxhr/xlxint.dat
+firmware:       phanfw.bin
+firmware:       prism2_ru.fw
+firmware:       prism_ap_fw.bin
+firmware:       prism_sta_fw.bin
+firmware:       qat_895xcc.bin
+firmware:       qat_895xcc_mmp.bin
+firmware:       qat_c3xxx.bin
+firmware:       qat_c3xxx_mmp.bin
+firmware:       qat_c62x.bin
+firmware:       qat_c62x_mmp.bin
+firmware:       qcom/a300_pfp.fw
+firmware:       qcom/a300_pm4.fw
+firmware:       qcom/a330_pfp.fw
+firmware:       qcom/a330_pm4.fw
+firmware:       qcom/a420_pfp.fw
+firmware:       qcom/a420_pm4.fw
+firmware:       qcom/a530_pfp.fw
+firmware:       qcom/a530_pm4.fw
+firmware:       qcom/a530_zap.b00
+firmware:       qcom/a530_zap.b01
+firmware:       qcom/a530_zap.b02
+firmware:       qcom/a530_zap.mdt
+firmware:       qcom/a530v3_gpmu.fw2
+firmware:       qcom/a630_gmu.bin
+firmware:       qcom/a630_sqe.fw
+firmware:       qcom/a630_zap.mbn
+firmware:       qed/qed_init_values_zipped-8.37.7.0.bin
+firmware:       ql2100_fw.bin
+firmware:       ql2200_fw.bin
+firmware:       ql2300_fw.bin
+firmware:       ql2322_fw.bin
+firmware:       ql2400_fw.bin
+firmware:       ql2500_fw.bin
+firmware:       qlogic/1040.bin
+firmware:       qlogic/12160.bin
+firmware:       qlogic/1280.bin
+firmware:       qlogic/sd7220.fw
+firmware:       r8a779x_usb3_v1.dlmem
+firmware:       r8a779x_usb3_v2.dlmem
+firmware:       r8a779x_usb3_v3.dlmem
+firmware:       radeon/ARUBA_me.bin
+firmware:       radeon/ARUBA_pfp.bin
+firmware:       radeon/ARUBA_rlc.bin
+firmware:       radeon/BARTS_mc.bin
+firmware:       radeon/BARTS_me.bin
+firmware:       radeon/BARTS_pfp.bin
+firmware:       radeon/BARTS_smc.bin
+firmware:       radeon/BONAIRE_ce.bin
+firmware:       radeon/BONAIRE_mc.bin
+firmware:       radeon/BONAIRE_mc2.bin
+firmware:       radeon/BONAIRE_me.bin
+firmware:       radeon/BONAIRE_mec.bin
+firmware:       radeon/BONAIRE_pfp.bin
+firmware:       radeon/BONAIRE_rlc.bin
+firmware:       radeon/BONAIRE_sdma.bin
+firmware:       radeon/BONAIRE_smc.bin
+firmware:       radeon/BONAIRE_uvd.bin
+firmware:       radeon/BONAIRE_vce.bin
+firmware:       radeon/BTC_rlc.bin
+firmware:       radeon/CAICOS_mc.bin
+firmware:       radeon/CAICOS_me.bin
+firmware:       radeon/CAICOS_pfp.bin
+firmware:       radeon/CAICOS_smc.bin
+firmware:       radeon/CAYMAN_mc.bin
+firmware:       radeon/CAYMAN_me.bin
+firmware:       radeon/CAYMAN_pfp.bin
+firmware:       radeon/CAYMAN_rlc.bin
+firmware:       radeon/CAYMAN_smc.bin
+firmware:       radeon/CEDAR_me.bin
+firmware:       radeon/CEDAR_pfp.bin
+firmware:       radeon/CEDAR_rlc.bin
+firmware:       radeon/CEDAR_smc.bin
+firmware:       radeon/CYPRESS_me.bin
+firmware:       radeon/CYPRESS_pfp.bin
+firmware:       radeon/CYPRESS_rlc.bin
+firmware:       radeon/CYPRESS_smc.bin
+firmware:       radeon/CYPRESS_uvd.bin
+firmware:       radeon/HAINAN_ce.bin
+firmware:       radeon/HAINAN_mc.bin
+firmware:       radeon/HAINAN_mc2.bin
+firmware:       radeon/HAINAN_me.bin
+firmware:       radeon/HAINAN_pfp.bin
+firmware:       radeon/HAINAN_rlc.bin
+firmware:       radeon/HAINAN_smc.bin
+firmware:       radeon/HAWAII_ce.bin
+firmware:       radeon/HAWAII_mc.bin
+firmware:       radeon/HAWAII_mc2.bin
+firmware:       radeon/HAWAII_me.bin
+firmware:       radeon/HAWAII_mec.bin
+firmware:       radeon/HAWAII_pfp.bin
+firmware:       radeon/HAWAII_rlc.bin
+firmware:       radeon/HAWAII_sdma.bin
+firmware:       radeon/HAWAII_smc.bin
+firmware:       radeon/JUNIPER_me.bin
+firmware:       radeon/JUNIPER_pfp.bin
+firmware:       radeon/JUNIPER_rlc.bin
+firmware:       radeon/JUNIPER_smc.bin
+firmware:       radeon/KABINI_ce.bin
+firmware:       radeon/KABINI_me.bin
+firmware:       radeon/KABINI_mec.bin
+firmware:       radeon/KABINI_pfp.bin
+firmware:       radeon/KABINI_rlc.bin
+firmware:       radeon/KABINI_sdma.bin
+firmware:       radeon/KAVERI_ce.bin
+firmware:       radeon/KAVERI_me.bin
+firmware:       radeon/KAVERI_mec.bin
+firmware:       radeon/KAVERI_pfp.bin
+firmware:       radeon/KAVERI_rlc.bin
+firmware:       radeon/KAVERI_sdma.bin
+firmware:       radeon/MULLINS_ce.bin
+firmware:       radeon/MULLINS_me.bin
+firmware:       radeon/MULLINS_mec.bin
+firmware:       radeon/MULLINS_pfp.bin
+firmware:       radeon/MULLINS_rlc.bin
+firmware:       radeon/MULLINS_sdma.bin
+firmware:       radeon/OLAND_ce.bin
+firmware:       radeon/OLAND_mc.bin
+firmware:       radeon/OLAND_mc2.bin
+firmware:       radeon/OLAND_me.bin
+firmware:       radeon/OLAND_pfp.bin
+firmware:       radeon/OLAND_rlc.bin
+firmware:       radeon/OLAND_smc.bin
+firmware:       radeon/PALM_me.bin
+firmware:       radeon/PALM_pfp.bin
+firmware:       radeon/PITCAIRN_ce.bin
+firmware:       radeon/PITCAIRN_mc.bin
+firmware:       radeon/PITCAIRN_mc2.bin
+firmware:       radeon/PITCAIRN_me.bin
+firmware:       radeon/PITCAIRN_pfp.bin
+firmware:       radeon/PITCAIRN_rlc.bin
+firmware:       radeon/PITCAIRN_smc.bin
+firmware:       radeon/R100_cp.bin
+firmware:       radeon/R200_cp.bin
+firmware:       radeon/R300_cp.bin
+firmware:       radeon/R420_cp.bin
+firmware:       radeon/R520_cp.bin
+firmware:       radeon/R600_me.bin
+firmware:       radeon/R600_pfp.bin
+firmware:       radeon/R600_rlc.bin
+firmware:       radeon/R600_uvd.bin
+firmware:       radeon/R700_rlc.bin
+firmware:       radeon/REDWOOD_me.bin
+firmware:       radeon/REDWOOD_pfp.bin
+firmware:       radeon/REDWOOD_rlc.bin
+firmware:       radeon/REDWOOD_smc.bin
+firmware:       radeon/RS600_cp.bin
+firmware:       radeon/RS690_cp.bin
+firmware:       radeon/RS780_me.bin
+firmware:       radeon/RS780_pfp.bin
+firmware:       radeon/RS780_uvd.bin
+firmware:       radeon/RV610_me.bin
+firmware:       radeon/RV610_pfp.bin
+firmware:       radeon/RV620_me.bin
+firmware:       radeon/RV620_pfp.bin
+firmware:       radeon/RV630_me.bin
+firmware:       radeon/RV630_pfp.bin
+firmware:       radeon/RV635_me.bin
+firmware:       radeon/RV635_pfp.bin
+firmware:       radeon/RV670_me.bin
+firmware:       radeon/RV670_pfp.bin
+firmware:       radeon/RV710_me.bin
+firmware:       radeon/RV710_pfp.bin
+firmware:       radeon/RV710_smc.bin
+firmware:       radeon/RV710_uvd.bin
+firmware:       radeon/RV730_me.bin
+firmware:       radeon/RV730_pfp.bin
+firmware:       radeon/RV730_smc.bin
+firmware:       radeon/RV740_smc.bin
+firmware:       radeon/RV770_me.bin
+firmware:       radeon/RV770_pfp.bin
+firmware:       radeon/RV770_smc.bin
+firmware:       radeon/RV770_uvd.bin
+firmware:       radeon/SUMO2_me.bin
+firmware:       radeon/SUMO2_pfp.bin
+firmware:       radeon/SUMO_me.bin
+firmware:       radeon/SUMO_pfp.bin
+firmware:       radeon/SUMO_rlc.bin
+firmware:       radeon/SUMO_uvd.bin
+firmware:       radeon/TAHITI_ce.bin
+firmware:       radeon/TAHITI_mc.bin
+firmware:       radeon/TAHITI_mc2.bin
+firmware:       radeon/TAHITI_me.bin
+firmware:       radeon/TAHITI_pfp.bin
+firmware:       radeon/TAHITI_rlc.bin
+firmware:       radeon/TAHITI_smc.bin
+firmware:       radeon/TAHITI_uvd.bin
+firmware:       radeon/TAHITI_vce.bin
+firmware:       radeon/TURKS_mc.bin
+firmware:       radeon/TURKS_me.bin
+firmware:       radeon/TURKS_pfp.bin
+firmware:       radeon/TURKS_smc.bin
+firmware:       radeon/VERDE_ce.bin
+firmware:       radeon/VERDE_mc.bin
+firmware:       radeon/VERDE_mc2.bin
+firmware:       radeon/VERDE_me.bin
+firmware:       radeon/VERDE_pfp.bin
+firmware:       radeon/VERDE_rlc.bin
+firmware:       radeon/VERDE_smc.bin
+firmware:       radeon/banks_k_2_smc.bin
+firmware:       radeon/bonaire_ce.bin
+firmware:       radeon/bonaire_k_smc.bin
+firmware:       radeon/bonaire_mc.bin
+firmware:       radeon/bonaire_me.bin
+firmware:       radeon/bonaire_mec.bin
+firmware:       radeon/bonaire_pfp.bin
+firmware:       radeon/bonaire_rlc.bin
+firmware:       radeon/bonaire_sdma.bin
+firmware:       radeon/bonaire_smc.bin
+firmware:       radeon/bonaire_uvd.bin
+firmware:       radeon/hainan_ce.bin
+firmware:       radeon/hainan_k_smc.bin
+firmware:       radeon/hainan_mc.bin
+firmware:       radeon/hainan_me.bin
+firmware:       radeon/hainan_pfp.bin
+firmware:       radeon/hainan_rlc.bin
+firmware:       radeon/hainan_smc.bin
+firmware:       radeon/hawaii_ce.bin
+firmware:       radeon/hawaii_k_smc.bin
+firmware:       radeon/hawaii_mc.bin
+firmware:       radeon/hawaii_me.bin
+firmware:       radeon/hawaii_mec.bin
+firmware:       radeon/hawaii_pfp.bin
+firmware:       radeon/hawaii_rlc.bin
+firmware:       radeon/hawaii_sdma.bin
+firmware:       radeon/hawaii_smc.bin
+firmware:       radeon/kabini_ce.bin
+firmware:       radeon/kabini_me.bin
+firmware:       radeon/kabini_mec.bin
+firmware:       radeon/kabini_pfp.bin
+firmware:       radeon/kabini_rlc.bin
+firmware:       radeon/kabini_sdma.bin
+firmware:       radeon/kaveri_ce.bin
+firmware:       radeon/kaveri_me.bin
+firmware:       radeon/kaveri_mec.bin
+firmware:       radeon/kaveri_mec2.bin
+firmware:       radeon/kaveri_pfp.bin
+firmware:       radeon/kaveri_rlc.bin
+firmware:       radeon/kaveri_sdma.bin
+firmware:       radeon/mullins_ce.bin
+firmware:       radeon/mullins_me.bin
+firmware:       radeon/mullins_mec.bin
+firmware:       radeon/mullins_pfp.bin
+firmware:       radeon/mullins_rlc.bin
+firmware:       radeon/mullins_sdma.bin
+firmware:       radeon/oland_ce.bin
+firmware:       radeon/oland_k_smc.bin
+firmware:       radeon/oland_mc.bin
+firmware:       radeon/oland_me.bin
+firmware:       radeon/oland_pfp.bin
+firmware:       radeon/oland_rlc.bin
+firmware:       radeon/oland_smc.bin
+firmware:       radeon/pitcairn_ce.bin
+firmware:       radeon/pitcairn_k_smc.bin
+firmware:       radeon/pitcairn_mc.bin
+firmware:       radeon/pitcairn_me.bin
+firmware:       radeon/pitcairn_pfp.bin
+firmware:       radeon/pitcairn_rlc.bin
+firmware:       radeon/pitcairn_smc.bin
+firmware:       radeon/si58_mc.bin
+firmware:       radeon/tahiti_ce.bin
+firmware:       radeon/tahiti_mc.bin
+firmware:       radeon/tahiti_me.bin
+firmware:       radeon/tahiti_pfp.bin
+firmware:       radeon/tahiti_rlc.bin
+firmware:       radeon/tahiti_smc.bin
+firmware:       radeon/verde_ce.bin
+firmware:       radeon/verde_k_smc.bin
+firmware:       radeon/verde_mc.bin
+firmware:       radeon/verde_me.bin
+firmware:       radeon/verde_pfp.bin
+firmware:       radeon/verde_rlc.bin
+firmware:       radeon/verde_smc.bin
+firmware:       riptide.hex
+firmware:       rp2.fw
+firmware:       rpm_firmware.bin
+firmware:       rs9113_wlan_qspi.rps
+firmware:       rt2561.bin
+firmware:       rt2561s.bin
+firmware:       rt2661.bin
+firmware:       rt2860.bin
+firmware:       rt2870.bin
+firmware:       rt73.bin
+firmware:       rtl_bt/rtl8723a_fw.bin
+firmware:       rtl_bt/rtl8723b_config.bin
+firmware:       rtl_bt/rtl8723b_fw.bin
+firmware:       rtl_bt/rtl8723bs_config.bin
+firmware:       rtl_bt/rtl8723bs_fw.bin
+firmware:       rtl_bt/rtl8723ds_config.bin
+firmware:       rtl_bt/rtl8723ds_fw.bin
+firmware:       rtl_bt/rtl8761a_config.bin
+firmware:       rtl_bt/rtl8761a_fw.bin
+firmware:       rtl_bt/rtl8821a_config.bin
+firmware:       rtl_bt/rtl8821a_fw.bin
+firmware:       rtl_bt/rtl8822b_config.bin
+firmware:       rtl_bt/rtl8822b_fw.bin
+firmware:       rtl_nic/rtl8105e-1.fw
+firmware:       rtl_nic/rtl8106e-1.fw
+firmware:       rtl_nic/rtl8106e-2.fw
+firmware:       rtl_nic/rtl8107e-1.fw
+firmware:       rtl_nic/rtl8107e-2.fw
+firmware:       rtl_nic/rtl8125a-3.fw
+firmware:       rtl_nic/rtl8168d-1.fw
+firmware:       rtl_nic/rtl8168d-2.fw
+firmware:       rtl_nic/rtl8168e-1.fw
+firmware:       rtl_nic/rtl8168e-2.fw
+firmware:       rtl_nic/rtl8168e-3.fw
+firmware:       rtl_nic/rtl8168f-1.fw
+firmware:       rtl_nic/rtl8168f-2.fw
+firmware:       rtl_nic/rtl8168fp-3.fw
+firmware:       rtl_nic/rtl8168g-2.fw
+firmware:       rtl_nic/rtl8168g-3.fw
+firmware:       rtl_nic/rtl8168h-1.fw
+firmware:       rtl_nic/rtl8168h-2.fw
+firmware:       rtl_nic/rtl8402-1.fw
+firmware:       rtl_nic/rtl8411-1.fw
+firmware:       rtl_nic/rtl8411-2.fw
+firmware:       rtlwifi/rtl8188efw.bin
+firmware:       rtlwifi/rtl8188eufw.bin
+firmware:       rtlwifi/rtl8192cfw.bin
+firmware:       rtlwifi/rtl8192cfwU.bin
+firmware:       rtlwifi/rtl8192cfwU_B.bin
+firmware:       rtlwifi/rtl8192cufw.bin
+firmware:       rtlwifi/rtl8192cufw_A.bin
+firmware:       rtlwifi/rtl8192cufw_B.bin
+firmware:       rtlwifi/rtl8192cufw_TMSC.bin
+firmware:       rtlwifi/rtl8192defw.bin
+firmware:       rtlwifi/rtl8192eefw.bin
+firmware:       rtlwifi/rtl8192eu_nic.bin
+firmware:       rtlwifi/rtl8192sefw.bin
+firmware:       rtlwifi/rtl8712u.bin
+firmware:       rtlwifi/rtl8723aufw_A.bin
+firmware:       rtlwifi/rtl8723aufw_B.bin
+firmware:       rtlwifi/rtl8723aufw_B_NoBT.bin
+firmware:       rtlwifi/rtl8723befw.bin
+firmware:       rtlwifi/rtl8723befw_36.bin
+firmware:       rtlwifi/rtl8723bu_bt.bin
+firmware:       rtlwifi/rtl8723bu_nic.bin
+firmware:       rtlwifi/rtl8723efw.bin
+firmware:       rtlwifi/rtl8821aefw.bin
+firmware:       rtlwifi/rtl8821aefw_29.bin
+firmware:       rtw88/rtw8723d_fw.bin
+firmware:       rtw88/rtw8822b_fw.bin
+firmware:       rtw88/rtw8822c_fw.bin
+firmware:       rtw88/rtw8822c_wow_fw.bin
+firmware:       s5k4ecgx.bin
+firmware:       sd8385.bin
+firmware:       sd8385_helper.bin
+firmware:       sd8686.bin
+firmware:       sd8686_helper.bin
+firmware:       sd8688.bin
+firmware:       sd8688_helper.bin
+firmware:       slicoss/gbdownload.sys
+firmware:       slicoss/gbrcvucode.sys
+firmware:       slicoss/oasisdownload.sys
+firmware:       slicoss/oasisrcvucode.sys
+firmware:       sms1xxx-hcw-55xxx-dvbt-02.fw
+firmware:       sms1xxx-hcw-55xxx-isdbt-02.fw
+firmware:       sms1xxx-nova-a-dvbt-01.fw
+firmware:       sms1xxx-nova-b-dvbt-01.fw
+firmware:       sms1xxx-stellar-dvbt-01.fw
+firmware:       softing-4.6/bcard.bin
+firmware:       softing-4.6/bcard2.bin
+firmware:       softing-4.6/cancard.bin
+firmware:       softing-4.6/cancrd2.bin
+firmware:       softing-4.6/cansja.bin
+firmware:       softing-4.6/ldcard.bin
+firmware:       softing-4.6/ldcard2.bin
+firmware:       solos-FPGA.bin
+firmware:       solos-Firmware.bin
+firmware:       solos-db-FPGA.bin
+firmware:       sun/cassini.bin
+firmware:       symbol_sp24t_prim_fw
+firmware:       symbol_sp24t_sec_fw
+firmware:       tdmb_denver.inp
+firmware:       tdmb_nova_12mhz.inp
+firmware:       tdmb_nova_12mhz_b0.inp
+firmware:       tehuti/bdx.bin
+firmware:       ti-connectivity/wl1251-fw.bin
+firmware:       ti-connectivity/wl1251-nvs.bin
+firmware:       ti-connectivity/wl127x-fw-5-mr.bin
+firmware:       ti-connectivity/wl127x-fw-5-plt.bin
+firmware:       ti-connectivity/wl127x-fw-5-sr.bin
+firmware:       ti-connectivity/wl128x-fw-5-mr.bin
+firmware:       ti-connectivity/wl128x-fw-5-plt.bin
+firmware:       ti-connectivity/wl128x-fw-5-sr.bin
+firmware:       ti-connectivity/wl18xx-fw-4.bin
+firmware:       ti_3410.fw
+firmware:       ti_5052.fw
+firmware:       tigon/tg3.bin
+firmware:       tigon/tg3_tso.bin
+firmware:       tigon/tg3_tso5.bin
+firmware:       ttusb-budget/dspbootcode.bin
+firmware:       ueagle-atm/930-fpga.bin
+firmware:       ueagle-atm/CMV4i.bin
+firmware:       ueagle-atm/CMV4i.bin.v2
+firmware:       ueagle-atm/CMV4p.bin
+firmware:       ueagle-atm/CMV4p.bin.v2
+firmware:       ueagle-atm/CMV9i.bin
+firmware:       ueagle-atm/CMV9i.bin.v2
+firmware:       ueagle-atm/CMV9p.bin
+firmware:       ueagle-atm/CMV9p.bin.v2
+firmware:       ueagle-atm/CMVei.bin
+firmware:       ueagle-atm/CMVei.bin.v2
+firmware:       ueagle-atm/CMVep.bin
+firmware:       ueagle-atm/CMVep.bin.v2
+firmware:       ueagle-atm/DSP4i.bin
+firmware:       ueagle-atm/DSP4p.bin
+firmware:       ueagle-atm/DSP9i.bin
+firmware:       ueagle-atm/DSP9p.bin
+firmware:       ueagle-atm/DSPei.bin
+firmware:       ueagle-atm/DSPep.bin
+firmware:       ueagle-atm/adi930.fw
+firmware:       ueagle-atm/eagle.fw
+firmware:       ueagle-atm/eagleI.fw
+firmware:       ueagle-atm/eagleII.fw
+firmware:       ueagle-atm/eagleIII.fw
+firmware:       ueagle-atm/eagleIV.fw
+firmware:       usb8388.bin
+firmware:       usbdux_firmware.bin
+firmware:       usbduxfast_firmware.bin
+firmware:       usbduxsigma_firmware.bin
+firmware:       v4l-cx231xx-avcore-01.fw
+firmware:       v4l-cx23418-apu.fw
+firmware:       v4l-cx23418-cpu.fw
+firmware:       v4l-cx23418-dig.fw
+firmware:       v4l-cx2341x-dec.fw
+firmware:       v4l-cx2341x-enc.fw
+firmware:       v4l-cx2341x-init.mpg
+firmware:       v4l-cx23885-avcore-01.fw
+firmware:       v4l-cx23885-enc.fw
+firmware:       v4l-cx25840.fw
+firmware:       v4l-pvrusb2-24xxx-01.fw
+firmware:       v4l-pvrusb2-29xxx-01.fw
+firmware:       v4l-pvrusb2-73xxx-01.fw
+firmware:       vicam/firmware.fw
+firmware:       vntwusb.fw
+firmware:       vpdma-1b8.bin
+firmware:       vx/bd56002.boot
+firmware:       vx/bd563s3.boot
+firmware:       vx/bd563v2.boot
+firmware:       vx/bx_1_vp4.b56
+firmware:       vx/bx_1_vxp.b56
+firmware:       vx/l_1_v22.d56
+firmware:       vx/l_1_vp4.d56
+firmware:       vx/l_1_vx2.d56
+firmware:       vx/l_1_vxp.d56
+firmware:       vx/x1_1_vp4.xlx
+firmware:       vx/x1_1_vx2.xlx
+firmware:       vx/x1_1_vxp.xlx
+firmware:       vx/x1_2_v22.xlx
+firmware:       vxge/X3fw-pxe.ncf
+firmware:       vxge/X3fw.ncf
+firmware:       wd719x-risc.bin
+firmware:       wd719x-wcs.bin
+firmware:       whiteheat.fw
+firmware:       whiteheat_loader.fw
+firmware:       wil6210.brd
+firmware:       wil6210.fw
+firmware:       wil6210_sparrow_plus.fw
+firmware:       wil6436.brd
+firmware:       wil6436.fw
+firmware:       wlan/prima/WCNSS_qcom_wlan_nv.bin
+firmware:       xc3028-v27.fw
+firmware:       xc3028L-v36.fw
+firmware:       yam/1200.bin
+firmware:       yam/9600.bin
+firmware:       yamaha/ds1_ctrl.fw
+firmware:       yamaha/ds1_dsp.fw
+firmware:       yamaha/ds1e_ctrl.fw
+firmware:       zd1201-ap.fw
+firmware:       zd1201.fw
+firmware:       zd1211/zd1211_ub
+firmware:       zd1211/zd1211_uphr
+firmware:       zd1211/zd1211_ur
+firmware:       zd1211/zd1211b_ub
+firmware:       zd1211/zd1211b_uphr
+firmware:       zd1211/zd1211b_ur
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/ppc64el/generic
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/ppc64el/generic
@@ -0,0 +1,22435 @@
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0x913f1e6d	hvcs_get_partner_info
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0xa73464c7	hvcs_register_connection
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0xbdf97f58	hvcs_free_connection
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0xc39c3704	hvcs_free_partner_info
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x15866bb6	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x2d6294a9	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x63db3698	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x72f8e33f	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x732179fb	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xc3acb87f	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x3ae2fd7e	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x61adbcda	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x971ef10d	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sm3_generic 0x06263f56	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0xda0ceb86	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/atm/suni 0x88849ccd	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x9e3f8756	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xee890945	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/block/paride/paride 0x2d26d398	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x3bd6425a	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x50f40f75	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5e92b7ac	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x760b7ccf	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x8b959b43	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa8ecadc4	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xc22a2007	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xd622f7c2	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xd9f51c78	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xdeef5fdf	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe6055bf5	pi_disconnect
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xf6190dea	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x50456b2e	rsi_bt_ops
+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 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x389edc3d	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x7fb6728d	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x84a0f41f	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x8abc4093	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+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
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+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 0x2151091e	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x3939ca92	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x5d17c1f5	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xa62f03ff	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x02d40c5d	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x9c920727	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xb9868a7a	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x5af61278	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x8860a318	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xa4a9837e	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0569a035	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1c769dcd	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2510cd4f	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2a34c631	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x397f55d6	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a782b82	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3d31ceac	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3fe69a46	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4afa2ec9	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x55cdb937	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x619a44c6	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x7b7cd371	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8279934d	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86322627	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9694c08d	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x98b6ffbe	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xbc9a4a3d	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc29fd66b	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc9227780	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcd6aab30	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcd89c14d	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xce869bfe	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd30ef6cd	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd9cc0099	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe2682d28	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe6b948b9	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x016258f1	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02a4d59d	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02b318b0	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02cd0e1b	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03ca3b0a	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0410413b	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x046a40bd	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04ca24b4	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04d8176e	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x055a6b36	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x057505e5	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06a17854	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06a254d6	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06ad485b	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06ef6050	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a15e12b	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a19fd67	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a903430	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0aee31fa	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c833879	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ca35bae	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d0697eb	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0dc7fd49	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0dd9abda	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0dfdb4ad	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e15c62d	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e8e75e4	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f97d686	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x117a25cb	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1248f209	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12518e31	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12d5d9aa	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14237bce	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14c75c8a	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14fa343f	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15232552	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1548435c	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15efa82e	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16f4ecf8	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1726f6b8	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x177625d3	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x179a52cd	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18b48a23	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18c3720f	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19b967a9	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a298f36	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b28049d	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bb09fb1	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bc9e9fc	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c9fe2bb	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1cf66e6a	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1cf81807	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d87efe0	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dd9e8f0	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e53ae06	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e5701c9	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e79822f	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f32be29	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f5c9499	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2128aa34	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x215f9447	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2186192e	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21cbc1d9	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2310442f	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x236fda07	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23bd189c	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24e1aa07	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25e03677	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x260e5ba2	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2785bc3c	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29aef866	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a616e29	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ae1ebe6	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2aefac09	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ce55b45	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2cef4900	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d1e1495	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d729332	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x303d5399	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31ab077d	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32bea29a	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34e149f6	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35ae70ea	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x365088d2	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36aea903	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x371bd9ea	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37629609	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x379250e7	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x38c30763	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39513c8b	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3998d63f	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39cec797	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3abcd2c8	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ad298ab	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3cc126fc	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ccc6438	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d33b572	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40a8f3f9	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40dac261	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4126c9fe	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41c58f11	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41dc6efb	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42155fc1	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x429ef653	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42dabd85	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43197b1c	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4370d5f2	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44215dd9	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44a09ecb	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x460a121f	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x462e20a1	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46387a93	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47533708	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x477fda16	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a170d75	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a89c01d	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4be1b699	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4cbc15f0	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ce46649	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d942743	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e4f12e2	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e94869c	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ecf338c	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fee5101	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50a467b2	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50ef814b	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50f0b1d1	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x518a0995	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51a3c4bb	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x529da719	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52c02a7c	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52dba078	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53090aa2	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53abcae3	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x547ecc59	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x565028dd	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5676c8a2	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56bfd1af	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x586b3515	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58b757f4	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58c78ae8	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c9c04a0	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cfc6f44	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d095139	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5db3e4e5	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5db70cf0	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e5c9e08	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5eca4751	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f37bd63	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f683e00	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f79e4a9	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd69117	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6099175c	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60a25e86	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60eff144	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x615f6491	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6197bc37	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61b0ad08	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x628444d0	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x628a36e8	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63279a82	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63a98477	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x648874ac	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64b73f9c	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66339256	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x663edbef	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6693bbc3	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x683df94e	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x687a8259	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x699cde34	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a29df8b	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b24dc4a	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c3f16f6	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c69c701	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d8b6d04	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d95495e	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ec4712a	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ee4034d	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f78f45a	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f792970	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x707f3813	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x724a747c	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x729c4f9d	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x730d2fcf	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73760cc8	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7427ef01	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75018c4d	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x751ce920	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7530d47f	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75d1b9a9	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x763957c7	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76aad392	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79d1337c	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b496db0	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7bc7a573	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7be4c4ea	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c45e2bd	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ccd3f2e	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e5dec41	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fb63807	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8195f7cb	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8263ec8c	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82f1874f	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82fda3ad	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8499a852	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84c0c8c6	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84d36f40	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85712eec	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85d959d5	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x866d2dac	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x86a57513	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87929c1b	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x892dee55	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8972ea60	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89d47123	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b60326a	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bea8940	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ce5f853	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d42e1f0	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fc7066d	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9039549a	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90a38831	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90d17d8b	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x920357b7	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x932fc514	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x937787c1	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94287642	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94618e91	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95677223	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95899f74	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x958ed7b6	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9591a8cd	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96487296	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9707608a	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x971f92d1	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97f6baa5	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98434445	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98debc30	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x990b11e2	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9924c96b	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9952ef64	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bb076a2	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c47d76d	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c7fcbba	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d0d335c	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d24a006	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e0c2e37	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f99c4e7	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ff2c779	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa012725a	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0f72f54	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa295389d	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa364102f	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3837792	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa42ac946	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5067b35	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa640c399	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7030fc8	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7124377	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7a26a9b	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa80e43c8	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8855b29	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9323a3a	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabb2c3e0	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac0fd64b	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad06451d	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad533ea1	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad59896c	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaee60bff	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf52ff40	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafa71a9f	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb09957fd	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1ebc21b	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb275a097	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb36e0253	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb387c752	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4dee1cd	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4f603f5	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb63b4593	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb68ef183	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb91e2395	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba146857	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb8639c7	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbbefda6e	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc69e933	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc8c47db	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd1a3819	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd29cc5c	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdd702ba	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdedf8d9	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe8f9210	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbea58220	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf7d7b81	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc011aeba	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc147cdb5	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc156e292	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc478f64a	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4e8562b	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5481ebd	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc57ebfc8	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5980fb2	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5dd9f5b	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7d00867	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc87c35cb	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaa98886	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcdc298e0	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd06e7cb8	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd07bdd23	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd08cd0b2	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3f9667f	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd454dc11	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd465db05	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5ccaa6d	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6822802	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6e0064d	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd76932c7	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd867c8de	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8be14fd	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8c06d1c	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9951159	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9a1b2bd	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda9796e1	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb5289b8	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb7c21b2	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdba110eb	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbe0f3cb	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdcc81497	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd0a2c9c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd8fd798	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdde0df32	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xddf59873	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdeb9138f	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf2142d5	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe01ffa1b	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe035e72b	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe059ab12	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe28b8c1d	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2b39aa5	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2cd21d0	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe36c0907	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4f97258	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe589901f	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe6e23d5b	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe88c6117	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8cff8a7	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea01bacd	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea2fa194	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeadb4f9f	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb3862fa	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb795bc1	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec69b739	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec7b3150	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec8c4d43	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xecc06fab	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed78e329	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedd7598f	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee143752	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeef698f9	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0c09bf0	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1a223d7	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2a68070	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf491582e	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf516c4f4	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf51946fc	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf54353cd	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6ae94c7	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8a4d725	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8adc6cd	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8fdf542	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa256204	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbc3e4a9	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc93fdc8	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd6373e7	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff7b17c7	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0001fb19	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x01f5598d	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0295b01a	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02c69a4b	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0460a122	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x04a2a31e	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x05c1afce	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x090da88d	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x09156713	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0991c8df	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0aeef3bc	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e14a7e1	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e6b489a	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0edadf65	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f450b73	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x121dc1de	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x131af341	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13420c68	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x139055d7	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x14e71431	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1648d49c	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x179cc5b0	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18509291	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ac85054	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b269ed2	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b46659c	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c3f3a7e	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d24bcce	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d46d5fb	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1e34c3e2	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21818bd5	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2238e8e7	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x242dee29	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2471c685	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28959e35	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28aa46f1	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x291795bf	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2bdf74d7	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2dc61905	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2e0b7edf	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x30d6f1c3	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3341f8d0	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3366e23c	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3367cce8	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33d7d2e2	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36f79589	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x373e1785	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x38029cfc	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3861092a	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x391499ea	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3aa78638	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b97d9c2	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ba58db3	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3bd221be	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3cd0b569	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3cf06819	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f4c2822	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f5336b1	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x431197c0	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x43a2c776	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x43ec0ccd	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4470335a	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44b84497	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x45bc6bf4	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x47a41045	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x47ca294f	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x485fb9cf	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48779164	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x499ff458	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5050e0d9	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50f3119e	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51addf92	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x530b543c	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x543a9cf3	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5704875c	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x59bd8b96	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c187733	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c1ef1e2	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5dd62bb5	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5fc28f7a	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5fdcf29f	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ff86b3a	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x60bd1dd6	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65095dc5	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65df12ca	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x67a4f9a8	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x69b3f469	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6cce4c44	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e195b30	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f043dbf	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7002378e	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70c23ae0	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x72456767	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7479f313	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7587be23	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a5ca0b3	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7cfeec11	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d2a71d9	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7e7e4d04	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82c5e05d	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85aeafe2	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87137f49	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87f2a6fa	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88f44726	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8a42c48b	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8a897f17	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b024034	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c187e80	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c1d392e	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8cc0cd05	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8e10d5b9	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8e2365b6	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f0797ca	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f9445cb	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90151986	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90ab7c7d	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x936d2949	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93badf0b	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94be32f8	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x960ef0e1	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98413d19	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x99ec6b2d	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b220a24	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9c0ef4c7	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f07d611	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa119dd97	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1513a52	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9112d0f	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaa591ca4	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xad23eb24	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaddcd072	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafbbf3ab	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0b7f666	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb24d026c	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb2a8ca38	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb38dc721	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb3c80c6d	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb47cb7d7	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51bbe70	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5fe45c4	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb86a1bdf	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb87601f4	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xba861aff	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbadaa46e	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbb902fd7	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf9b9941	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc06fba06	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc286da96	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc42fe015	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5272f39	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5cd9339	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb2c87cd	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcc86c298	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcc8825d0	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xccc7a522	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xceb3460d	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcf0550d8	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcf19dc1e	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd0945470	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd094f10b	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd257c007	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2f9cdc3	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd4ed901b	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5d00ec1	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6626ed0	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6cbbaed	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd831a185	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd89ec5be	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda862fe7	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe052e66a	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe0c710c9	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe0cedd37	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe1ab624a	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2bdb1dd	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3096a19	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3dfd08b	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe430ba94	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe58cbf3c	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe6ca4e9d	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe8a97398	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe9fa37cc	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf1c84f23	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf1d18624	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3256fcd	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf38925e8	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf564a15c	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7f022ae	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf989abad	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfaf24419	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb008112	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb02381d	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb1c52b8	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb70805d	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfcafb446	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xff86d5e5	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0810cdaa	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x23b80b75	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x30a43399	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3d785cc1	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x41706317	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x50166ab1	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x55e8228f	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x56649d9e	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x86138153	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x976827dd	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa37bd26c	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xbf37e76d	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc7aff0ea	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc9c79156	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xcd1919b6	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xcf3d935d	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe21e5f07	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xea301eba	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_panel_orientation_quirks 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x308ccdb0	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x39860fd0	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x505575d2	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7b5043de	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa0391acf	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa4f30106	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa6497297	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xaa3a31bf	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc0df09a4	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc9217d59	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd9514c57	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdaf01a9b	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe01e8070	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe10a6ab3	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe3b6a20c	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe8654307	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xedff9dfe	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf320e907	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf789dac1	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfad68092	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0cebc970	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0ffe5d1d	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2f4fa328	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x381c0292	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x466f2ae6	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4dba50c8	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5d7ed9cc	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x982c84d1	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9b100713	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa5987099	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb64f0b0a	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb69479de	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbe185c82	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc84d5aa5	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcebc047b	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe0526313	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe4179822	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe80a3067	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xead2c83a	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c1c6250	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0eed22b3	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0f591c99	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1326895d	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1604948b	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x17a99d86	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c9094d2	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ff93530	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2c26608b	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x30c979b7	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x31d00fbc	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x31e05fe8	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x31fd4f27	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x32b99895	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3688f41a	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x46eb08f6	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x47d97983	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x47ed77ba	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4b84f0a6	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4fa4070c	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4fa87b0f	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x50cfab80	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x52eb8005	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x548c4e7f	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x54a4f5f7	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x55e84959	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x58f9066b	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5c400320	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6372ae58	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6b94717c	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6d2976e5	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6dd8978a	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x72de7769	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x76c3ea84	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7806fd50	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7e9548b1	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8048f9ba	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87ae655f	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87c401cb	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x881ff065	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8bb816bb	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8d8b081b	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8da24e4e	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8fbd1b99	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x906aa364	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96ab338b	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9ac58a8c	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa9ae808e	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaaa7b09d	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb5322625	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb93e9d7f	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbb96c823	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbc7b7b86	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbd426a41	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc03b5444	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc5683d16	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc6ef1ef2	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcaf88c4c	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd081748e	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd588fb40	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdc5c9a25	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe15393a4	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xec5e8795	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xec9a7cd5	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xec9ee530	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf40a9030	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/hid/hid 0xba968664	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x901097a4	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xc3ef10f4	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xdb87dd95	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x1b42fd44	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x2fb64b71	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x5022f888	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x94cdcfb2	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x97fbbbb0	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xa315796d	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0f2d5621	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x25e6892e	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3367126f	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3dff9dda	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6f509025	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8cd3e725	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9ad1ab31	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb96db9f3	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbf58649a	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xcccf95cb	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xd06d45d0	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xd8adb021	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe8b2b708	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xec83b251	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xeee43e3b	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xef688e31	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x337f4361	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x6edd8bf5	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x97ca1d60	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x61c1533b	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xddac935d	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x10889a53	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x6e8282a2	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x911dfdbd	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xc0e160d8	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x2e03c22a	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x22411510	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3c5e3e65	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3fcc927b	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb6e0b3ab	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb968d13b	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xba4ee516	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xbe7e093a	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xda55d91e	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe094c383	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe8131d79	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x40d4753d	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4c6b4ab4	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd7db4bef	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xe77a744b	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x6845b2db	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x7413d257	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x796989cb	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb1542849	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb214cc7e	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xbbb925ba	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xbf1a49b4	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xbf4680ba	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc765a208	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x6625a53e	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x76359316	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xbb9849be	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xecd8e0b6	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xf5e086d3	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x395e89ab	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xa4a9edf8	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xf1283308	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x14b31c3b	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x166e4795	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x400a9125	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x430104ae	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x678d7177	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6bc54b8a	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x703abf27	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x7d17506b	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x85679db3	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x92ec15cb	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x948ffec3	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa121b59c	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa4d86650	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb6fa61a7	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb7b4985b	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbd2b6383	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xd8ee0040	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xeddd8091	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xfc77fbfb	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x9cb925ce	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x03205a83	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x13863148	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xaf747c32	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x372c6bf1	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x9e5e4beb	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xb98b06c3	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x0bb572f3	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xa85cb006	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x629ea5e6	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x95154c50	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x8e7ff8be	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x18ffc706	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x560e75f9	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x03e6d5bc	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1067836e	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2cf1b86e	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x4374c8b8	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x56774db1	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x58717423	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x590d3808	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x657a841b	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x88a88753	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x89d34cba	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8c9f1f89	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9361482b	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa33ee43b	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xce71a376	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd66c83ff	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xda44ddcd	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdb6a5120	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdbee4815	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe300c42f	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xebd88d09	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf5ea40e6	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf9c83e90	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xfb014332	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x744f9dc8	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x88070c7a	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x8f350f09	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xfbb888bb	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xfed0419c	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x1c6db7e0	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x6e52f4dd	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xa2fcb1a3	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xd67954e9	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xe5a70a2f	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xfcd60f5d	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x6e0d4965	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xaed02438	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x341fb16c	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x3f06e825	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x751a4deb	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xdf90deaa	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x52707793	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x59573ccb	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x71db3954	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xfd0cfd26	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x287fcd62	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x46859491	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x8624a2af	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x10d3b1bb	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x41101e69	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x7d3ba27d	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x97bd7f1f	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xc1309412	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x494447ee	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xb78a37c5	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x351b692f	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xd5aa0944	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xeb0fafd5	st_press_common_probe
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x0380573a	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x03993e5d	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x03cab5e0	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x152f2e56	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x15b4baa4	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1ad235a2	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1eaba313	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3603c9ce	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x383dd65e	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x472a3324	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x501342a3	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x7fdb9e8f	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x801bbc64	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8a7c64fd	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa242dda4	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xafbafc29	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc8f845d8	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd6577e0e	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00e05547	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x01ba0688	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x045db4c5	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x05fc64f6	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06281d23	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x069c61d5	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x072f597d	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07c497b8	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f763bdc	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1181a78f	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x119a234b	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x11f2df33	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1457264f	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x14f07ed6	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b0a85d1	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b409da1	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d671d05	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x20b934bb	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22928621	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2375f06f	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x23bd8274	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26da9ca3	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2765ec37	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28b104f1	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28e71a7b	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a639050	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2aeb7eef	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2afdf151	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e9c59b5	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f5a7168	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3251e5d5	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3292ef01	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x32f4cdb8	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33b14d6b	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x37fa77c6	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3859747c	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bb0d203	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bdc898e	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d8c12a1	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3da0853b	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3dd48d0e	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3f48e819	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fdb1420	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4006da5a	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x405dc35e	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4239f07c	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42718950	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45d289e0	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x469ab65f	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46fe96e2	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47af9f38	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47c294f4	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49c3714d	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4b2f52a4	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4dfdd344	ib_set_client_data
+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 0x4e9e4303	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4ead6b33	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x503bc590	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5073bea7	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52148d66	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54d50518	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x57b182ab	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x582895c3	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58ffc442	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a9d6c37	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c857c81	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cfbe5a1	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5d3b311f	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f7085c6	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5fb4996c	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61308d89	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61c98ba1	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64d582ae	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65788249	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x659b4cf1	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6919367f	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x69e78a64	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6ac57249	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6ba25e73	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x709b1374	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71f43d0a	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72545006	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72f931df	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7397d27d	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x747b2c4b	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x778bdc4c	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x78ca2022	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x796640cf	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a2222c2	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a2476e7	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b8525a1	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ba0ca81	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c022a10	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c1e2b90	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e4c321d	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ee2e593	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80473558	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82364176	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x861d2aed	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88af96a5	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89fc3bef	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8af25692	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8aff7610	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b4c267e	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c28b177	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d60e528	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d90d089	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e051044	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8edeaf25	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x904edbc4	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x927c4029	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93e37e2c	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x959598f7	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x962b9c41	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x96e6764b	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9758a64a	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97fcce5f	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x987d6fbe	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ca170de	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f58e2ff	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2b4960b	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2d975b0	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa4d50172	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa5b81fed	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa82a628c	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab512f50	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xabc18e01	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacdac760	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad2c7ea4	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae854436	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb00479cc	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0050a26	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb00ada1c	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0c67a72	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1aa862a	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1d1c83c	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb23b8c95	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb32b4101	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3821d22	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb477ea6f	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5a959c0	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5c795f7	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb80502e2	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe73c788	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbea077ab	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbf23ebfb	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc0c3e01a	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc3a843c5	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4cc5688	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc707ddbe	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc84b6348	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc87bc941	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc991bd30	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcad71fbc	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcca59fa2	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd54a36f	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcfa68b68	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0d870d5	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd388b0ee	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd54b19d7	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd54ebdd3	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7ad2ee4	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd848a27e	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda28c457	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc70e815	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdce8e5eb	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdfdf6a7b	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe0186b60	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe018c4c4	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe120bec8	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4f3aeee	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8a1d0ae	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9f33a85	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeadb8917	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeaf95c9c	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb46c570	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xecf4cfbe	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeeffd7a9	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf0e1dd32	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf0fbb40b	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf294b4c4	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb430d5f	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfcb9eda1	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfce1252f	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfd13489b	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x03e72b66	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x217cf77f	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x318882ce	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3679fa2d	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x42323277	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4f2ffe62	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4fa30403	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4fea9639	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5fe896c1	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6378c080	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x68e84062	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x68fcebf4	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6e37e94d	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6edd2b6d	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x720d7497	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7781fadc	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8e309bac	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9d46207a	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xba11a2fc	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbc12e30a	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc1327283	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcda6e874	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd9116881	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe013d55b	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe201733b	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfbd94c4d	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x0049a41e	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x2e165430	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x4af5c0bf	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x8fa45117	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb186447a	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xcbb4072a	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xdf5a3b9e	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xee0c48e9	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x07838fe9	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0b94e7cc	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0ffb1f46	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x10d72af4	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x168b4a74	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x17582415	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2038e1b9	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2cdf6840	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2f35d3d3	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x33d045fe	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3ac29ae0	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x540559a8	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x551fcc5c	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x559575ed	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x57f7b393	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5d2d00b9	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6805fd6c	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6d3c643b	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6dacbb8a	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x79b259aa	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7c76d934	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8e413c05	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x92d6b1ab	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9ec03046	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa415a61b	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xaa133aaa	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xcbeb3e1f	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf557b9e1	__rdma_create_id
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x009ac7f8	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1757c985	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x3e17011e	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x8065ea80	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x881e3c82	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x8f6da213	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x98a9cd3b	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xcdb661a3	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xe204a3e5	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x023ec10e	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x3a911153	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xa04ca8c4	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xd07d1ad7	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xf01a60b5	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x418a8808	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xaae82972	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe859a632	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xcf262f9a	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x00cff6ff	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x1bf00b8c	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xaa6f1f99	ad714x_enable
+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 0xe46c2239	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0xe34252b5	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x074b4c74	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x1b71bc5b	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xa3e98c71	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xb3a3d110	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xef61b91c	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x07423753	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xb3868635	ad7879_probe
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x096adc2c	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x1a9276ed	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x75f8b431	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x865dd3ec	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x87e00417	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa30101cc	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xaa115ab5	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbe1c90b2	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcf8b85cf	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe8f11992	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+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 0x1befe60f	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x5607658a	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x6836f2aa	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x88cbd641	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x5ef036ef	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xf3aaed2b	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x09a34a2d	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0be76c17	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0f404635	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x17bf635d	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1e64f32c	mISDN_initdchannel
+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 0x2f7b59ad	mISDN_register_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 0x42b86123	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5c91a4f8	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5d1ac859	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x65fb1b86	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6745b95b	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8d34598a	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x90d44a23	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x92c59913	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9d113d54	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb0d5799d	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc74f18ca	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd346edb4	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd976fb6c	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdce4280a	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdee3d63e	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf8f8bef3	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf9e44491	recv_Echannel
+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 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x8602723b	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xa204f06c	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3c5d035b	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6e16e906	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd3b45a8d	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x0c3fbbf8	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0x12fa6095	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3da30243	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x912316c3	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1fc90cae	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2ac5919f	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x6278f1be	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x741ab88d	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xa13e9e89	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xcc2369d5	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/raid456 0x05e515ae	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0x3fd81a9b	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x0adff022	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x1feb3364	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6795d76b	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x71464f43	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x821b3c0a	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x9e0f2413	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa4b4c9d7	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xc15ed911	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xedcfe351	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xee2156b9	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xeee09af6	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf6ebe4a8	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xff2825ee	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x62ce5dc4	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x84edce20	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb0054041	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeddd64e2	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x0b7e3bf2	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x920e7b3c	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x5f95e00c	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xeed28c7f	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x67df37a5	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x6b0835b6	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x729b32dc	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xc67f9c2f	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xec13630a	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xf8d6d503	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa9220314	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x064fd246	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0a6dde38	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0e4a2282	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x17d6dd6a	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x19de4a26	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x22549944	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x29d58443	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3336f7ff	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x364b80b3	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3e66df97	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3f2201f7	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4502c3be	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x47d36a6e	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4cae8347	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x57844552	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5830a49a	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5e1cb363	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x66a68864	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x66bd7694	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6bfe2b88	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6df01577	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6ef5628b	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x75a75b7f	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x791b7772	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7dddb1c5	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82878c35	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x85ff7c3f	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9c92ccbc	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9dea32eb	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb313211f	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb5a3524f	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc6f6b28a	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc7314930	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc8531cd2	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xce748c8d	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd86a5c39	dvb_free_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdf1b0d9d	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe0668b7b	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe269253f	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xec25f0b6	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ascot2e 0x0e2f6a25	ascot2e_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/atbm8830 0xeb42bde6	atbm8830_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7032150e	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x83aa4b91	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x91ee6c6e	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa107abb4	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa226a627	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xb41a67ee	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xbed9dce5	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf20c7587	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf5681229	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_dig 0x25456fea	au8522_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/bcm3510 0x4e23c450	bcm3510_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22700 0x96060fed	cx22700_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx22702 0xee0b0184	cx22702_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24110 0x415b80d5	cx24110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x14f09d33	cx24113_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xfaa9db7f	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24116 0x7ec8b630	cx24116_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24120 0x7bdbc977	cx24120_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x39f178e6	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x6f65ef9a	cx24123_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2820r 0xfc75c898	cxd2820r_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x2400cc02	cxd2841er_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2841er 0x8bffb3ce	cxd2841er_attach_t_c
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x4e895ab4	cxd2880_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x05b35201	dib0070_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x086d1705	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x4e01aae6	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x5b4e39f3	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xc641cf98	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x03a49c4b	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x13242122	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x56b5b683	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x75703f9a	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7cf7d24c	dib0090_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x949a9598	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa0e4fe4a	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa26ea016	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa474c858	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xae9aa6e4	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc656872f	dib0090_fw_register
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xcfed9444	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd362a5dd	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xeaafa587	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf139f3c9	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mb 0x5f41acdf	dib3000mb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x246db366	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x2fdf29c1	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x835290da	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xbd9f4cef	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xd598db34	dib3000mc_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xddcacca5	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x9c9e2230	dib7000m_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xedb346eb	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xf2fc9b6f	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xf4a6c786	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000p 0x59288904	dib7000p_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib8000 0x6aa9a078	dib8000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x0715c91a	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x0b717355	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x3400811e	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x51983b35	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x57d52e90	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x5f52b2bd	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x8c190107	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x94aec266	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa9ad2c0f	dib9000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xab19f994	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc9bd0e33	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xca84ef44	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf8c31213	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x026951eb	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x19ac31ea	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x3b93c68f	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xcc906b4e	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xdb5ded40	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x6ed2c225	drx39xxj_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxd 0x0b502cf7	drxd_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/drxk 0xaf8783d5	drxk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ds3000 0x20e3eee2	ds3000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb-pll 0x72d2b495	dvb_pll_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x1a62f480	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xb1acd0e8	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xedf810ac	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ec100 0x4bebb6be	ec100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0x1fb78b9c	helene_attach_s
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/helene 0xddb5e20b	helene_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/horus3a 0xb42c3bb8	horus3a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6405 0xff11ee98	isl6405_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6421 0x8eb24aa1	isl6421_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/isl6423 0x86dfdc98	isl6423_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/itd1000 0x8bd5681a	itd1000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ix2505v 0xc8fbef09	ix2505v_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/l64781 0x5cced000	l64781_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lg2160 0xdda6fe0e	lg2160_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3305 0x56dde653	lgdt3305_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt3306a 0xd9ee291a	lgdt3306a_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgdt330x 0x6b2c3101	lgdt330x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0x3eb15c96	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gxx 0x9c9ef3f8	lgs8gxx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh25 0x08ec5346	lnbh25_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x98ab88f5	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0x44380592	lnbp21_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp21 0xaba2fb17	lnbh24_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbp22 0x7ae286e9	lnbp22_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xbab4e956	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xf1686a22	m88ds3103_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88rs2000 0x6c9053d6	m88rs2000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a16 0xa299fd72	mb86a16_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mb86a20s 0x66cc590d	mb86a20s_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt312 0x5ef60676	mt312_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/mt352 0xc7cb6223	mt352_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt200x 0xda63e9ca	nxt200x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/nxt6000 0x32da1ea2	nxt6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51132 0xce3c44ac	or51132_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/or51211 0x8b21c8c2	or51211_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1409 0xbd329bea	s5h1409_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1411 0x02c71979	s5h1411_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x0358f0f4	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x4d086eb4	s5h1420_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1432 0x525b4dd6	s5h1432_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s921 0xec60751e	s921_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/si21xx 0x5fc7dbbe	si21xx_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0xecd88fc9	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp887x 0x41a60f43	sp887x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb0899 0xa55ced0d	stb0899_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6000 0x61127fde	stb6000_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stb6100 0xf7f96520	stb6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0288 0x3f5398fa	stv0288_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0297 0x6220b1d1	stv0297_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0299 0x13ec1542	stv0299_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x0b70030d	stv0367cab_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0x756138ac	stv0367ter_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0367 0xaa903bf4	stv0367ddb_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv0900 0x8eaaca82	stv0900_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv090x 0x9e9a5168	stv090x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110 0x790f0cfa	stv6110_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/stv6110x 0x1de99a7d	stv6110x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10021 0xeeec2250	tda10021_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10023 0xd0b94691	tda10023_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10048 0x8179b5ed	tda10048_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x5c8e2911	tda10045_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda1004x 0x74d57d00	tda10046_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda10086 0x03a92b65	tda10086_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda665x 0x40b79302	tda665x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8083 0x1492cffe	tda8083_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda8261 0xf5e5f842	tda8261_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tda826x 0xd8789fe5	tda826x_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ts2020 0xec28fc10	ts2020_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/tua6100 0x0bf7888a	tua6100_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1820 0x3b48ac85	ves1820_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/ves1x93 0x869f74b6	ves1x93_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x13fc5da2	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x751a52ff	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10036 0x5414bb98	zl10036_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10039 0x8f16abda	zl10039_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zl10353 0xab19080c	zl10353_attach
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0195f9e8	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x58425d03	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x665308aa	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xcd37f628	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe7b328d9	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf115b5ac	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xfa2c2e64	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x19a6def1	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x4cc17fd6	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x4fecead6	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x7b4c939a	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x2e8fda58	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x6e3aa0d3	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xf33281f2	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x11a9d7db	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x434f562c	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x4da8c9d3	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x5c31a0ef	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x616ed5cb	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd3abed07	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd7f8a40f	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xdf858d36	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xed1fa66a	dst_attach
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst_ca 0x9f8834c0	dst_ca_attach
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x1f826f9a	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x327c0a01	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x580fdddb	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xaf92aab3	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xbcd94f8d	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xd0fdb6b0	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 0x000f8d54	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x05a6f4a0	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x38852bbe	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x3f3d8f36	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x73579140	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x88ac29d9	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xa6b20407	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xbc75e63a	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xdad7da41	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x5c9ea8e6	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x9a7a7bcb	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xcec9b4ed	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xe390ebb4	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x0bc8bfc7	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x5017ce2b	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x6a126646	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x8ad42872	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x96e1b466	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x9fbecde4	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xe2a28111	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x043cd55f	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x063b771e	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1d8df36d	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1e37ee52	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3c4e6358	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x42bf7f52	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x4d1accc3	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x50204cb4	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x54a6303f	cx88_ir_stop
+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 0x639edac6	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x7fc8f23d	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8aca23d4	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8e861dc5	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9458daea	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9b91d1e9	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa292d41d	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa5d490c4	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xab88bcd5	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe6262e0b	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf36c4876	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x139bca3e	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5ff82c5d	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x64e0da8f	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x83d57a58	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x885a9741	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8e769d3c	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8f6f5d83	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9a406cd8	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa33ff2ce	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd651bf3a	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd667eb5f	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd701221d	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xdf15cfb1	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe3f589c4	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xec2f827a	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xf8779661	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfdf4cf36	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0826aa16	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0fb5087f	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x36fdea9d	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5c4d0fe0	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5cfa23a4	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x60ea34dc	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x66b5a4b7	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7c15e237	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x90efed11	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xd1411e44	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xd51b63f7	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xf05ae32e	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x3811ad64	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x1798e201	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x3caf87be	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4638e547	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x6cb04207	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x76dc561d	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x9ec07685	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xd6691791	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3db185d4	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x8f150dea	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/tuners/fc0011 0xb76d31e6	fc0011_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0012 0x1154c834	fc0012_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x1dfcd065	fc0013_attach
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x932971f5	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x9d09d758	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/max2165 0xde532194	max2165_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mc44s803 0x5d9ff7db	mc44s803_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2060 0x802e12ff	mt2060_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2131 0xd7839d92	mt2131_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mt2266 0x670335e5	mt2266_attach
+EXPORT_SYMBOL	 drivers/media/tuners/mxl5005s 0x2b35d856	mxl5005s_attach
+EXPORT_SYMBOL	 drivers/media/tuners/qt1010 0x147184af	qt1010_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tda18218 0x7a4fc7a1	tda18218_attach
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x17a5eaa2	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc4000 0x0ac830cd	xc4000_attach
+EXPORT_SYMBOL	 drivers/media/tuners/xc5000 0x125cf191	xc5000_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x59d56ee5	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xc1cae50a	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1b1b5a28	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4ab0bfb7	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x554c4cbc	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9429d0ce	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc67c6d98	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe51ca041	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfc1adbd2	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfe8f5bab	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xffb55a3f	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x27580c9f	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x4b5b66a1	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x6d6a768e	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x92c27106	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xb43439b8	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf0f42145	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf6fdfd05	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x02a254f2	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	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 0x193e1709	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1aa62609	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x36bc4f73	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4aaf1ab8	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x54af628f	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x910a5f81	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa4b41fe5	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa86407c9	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xabbacb6b	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x7654f14c	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xc3149ae7	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x1dae8270	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x2e7584bf	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x12925e68	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x165333e7	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3592bf7b	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x54d406b0	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x5e56ea1c	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x799c6a3c	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xb72976ec	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xebb2bd7d	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xf9f0c2f4	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x18abc9a6	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x246b4b6a	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x60c0f462	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x8e55435f	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xb4d388ce	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xbf5fc97f	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe59d7e84	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xfa8fc2c2	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x55efc5e8	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xd3e5ce36	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xe959e32c	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x99c204c7	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xb205050d	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2b701107	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3e1e7b00	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7ed5f565	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x00c9429f	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0775fd73	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1009d788	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x15bf0639	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1e6fbdaf	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x213572c5	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x273a5b5d	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2a8d2aa1	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2eeabe00	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x383f970b	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3962612d	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bf67870	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3d973f08	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3e6d5d84	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3ecc5164	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x48dab16b	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4f7b43cc	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x53d120a1	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x59c3f0ca	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5a524558	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5e803758	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x67d2d42d	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x69375c1c	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x69d6c81f	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6af94198	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x706242a2	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7587e3ed	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7bd826ef	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x82206500	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89826764	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8aaa39d1	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8ab6a4d9	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x952c2b58	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x95732f96	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9765ee80	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa68a2095	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xacea8a22	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaf134008	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb0cd6623	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb1a98a41	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb75a1f0b	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbd5bb96c	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbdd69144	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc2966b20	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc31cfec8	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc66be416	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc84c690d	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc8840ae6	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcecc9131	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcfca8c84	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd03a5673	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd1161fad	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd6b45fcc	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd7daa0a3	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdba01708	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xddb50b0e	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdf623d15	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe48f0803	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe7eb5cdf	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xed00f8f6	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xee676596	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xef977b23	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf614ab40	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf8b09afc	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x01d5fbaf	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6ef72577	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x85ec6e9f	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x96e22a32	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa330a6de	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xaffb818f	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xbc7dd6b1	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc1941586	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc4432207	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe5db45c6	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf2fe6a98	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf614b1c3	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/host/r592 0x52f1b23b	memstick_debug_get_tpc_name
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0b21bb30	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x14cf6c5e	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x18027ee8	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x187c1a49	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2da09269	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x30f30559	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3bed06b1	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4e021d44	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5763be86	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5808db6f	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x69043182	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x701efdad	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7666cd74	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7c9e4137	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x80c29996	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x90b4243b	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x925e95ca	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x965e0fe9	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xaa9dd8e4	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xae9c3423	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb99c88d2	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbc801587	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc32802d2	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc56c78bd	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcc6006bd	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcf9dad41	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd96f4149	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe8b8f248	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xfe826edd	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1025f539	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x11b84a8c	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x16404e1f	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x19a8dc8b	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x24bfe43a	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x24f874c8	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x45fe344f	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6198cde2	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6624f875	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6c60ea3b	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6f86fc39	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x7ca0e62d	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8b6b6321	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x9478cd74	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa30c99e7	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xab013102	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb27469a7	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb5a105bf	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb98f78cf	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb9d90dca	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbdaa2d23	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc707bbe4	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xda5071ae	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe607234b	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe6382481	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xeebd7da0	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf54e49bf	mptscsih_abort
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x3d7b1cf4	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x692abd80	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xe53d9d2b	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x9169c2bb	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xb1a0d825	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xc836c4f7	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x25ea9315	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xc19b5bab	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x13a04a9b	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x1ee6ad9b	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6b53bdc5	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7c13cbbe	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8084b9dd	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x879f1035	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa66937a4	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xaacf8953	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xce552777	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd9824f4e	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe3099a6b	mc13xxx_irq_free
+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
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+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 0x0fd48d40	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x37b4ccaa	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x49c3c19e	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7b7f9c78	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd62725cc	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe41d9e55	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x60ccf9eb	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xed421ecb	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0xccac9e6e	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x65e7746a	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x9c6d4fd3	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x05e4a568	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ecfb018	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x14379f42	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x1799342e	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x21055bb4	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x773b3aa2	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x8a99a518	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x91bbdace	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x95e705f3	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x9e4e4ed2	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa02935c2	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf70b0b30	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x217a8f92	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x23340a39	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x3b691e25	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x769c90de	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xf3f97793	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x1c626c80	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0xb5487c2c	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x3af467d5	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x4043c8e2	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x62edb8d0	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xe08003cc	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf2c6008b	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xfa76190d	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xfae39c40	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x11d982fb	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x7c30ba1b	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x90e6379f	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xbc736846	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xab793f43	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x3a8020fd	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0xede64382	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x3b7695c4	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x5859a6c0	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x427a2640	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x67002ad0	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x512872c5	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xe99b1c2f	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x112659b8	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x159ad7ae	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x28c7eb6a	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x4382f0e0	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x4b3206c4	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6545ba39	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xa839a31a	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xd10f7252	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xea44e6a3	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xfc292eb8	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x105e65aa	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xe4ca4098	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x18a39daf	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x29c23878	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x42260f5c	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x82ef2721	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x84438e03	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x85c11f94	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xad6cb77c	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd9a1bebe	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe0f49fc5	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xf8a6ccd0	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x828c611f	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x938468b8	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xeb641902	com20020_found
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x10dd1c8a	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x195c833a	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2810c9c1	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x29630d02	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x43733225	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x437ba013	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x475fe1f0	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4844f069	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x532be75e	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x54577c51	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x56f8c33e	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5e233d1a	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x61b4595e	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x63470953	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6c90304e	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x71935912	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7d341a3f	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7e2730cb	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8010be9e	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8a85487b	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8e4d86e9	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x908080ef	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9be4abe0	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xae24f173	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc6c8f4e9	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc9be84ea	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcc921668	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdc50ab1e	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdca78504	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xea2821f0	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xea41018b	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xef17b35f	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xef6dbfc6	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf0691d64	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf0f3cad7	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf5a1e35b	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf7b62863	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfab41b25	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x1c2270e8	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x418146d7	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x41e4c369	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x4f0b5f79	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x60d5c8b3	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xefb8bc9a	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x73c1494e	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x8902daa1	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x00b9a66c	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xe8fe3cc0	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x6d483bf9	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xef4981f8	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xf97e0d8b	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x281c9d81	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xa6b503e6	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x05e75de3	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x37d35dec	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x3bbf8a1d	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x3dba7523	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x694d251d	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x7a8a8e1f	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x92241054	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xbe848222	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xec17d51d	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf2b1ca20	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0xacef1db9	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x3da30940	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0xb4a6abb6	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
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+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 0x0e7c6adf	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0fb02a76	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x167bf67f	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x21d9c833	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x242725dc	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2d964e0d	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3b5af117	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x568fa85c	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x719f08a3	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7be56535	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x861093cd	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x86ad9431	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa0c8162a	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb0891f60	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xea128f34	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfc5bd359	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x05b8d3b1	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0b46d0e1	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x10d18d30	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x11b886db	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1771efcd	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1b12a6f4	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2fe0f2ce	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x351499c2	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x40f028da	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x45324a67	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b64ae77	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x536e79f3	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5745cc4d	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x586d99f4	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x633061a5	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6c43298b	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6c67a791	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6c7ee925	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7650c7b3	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x794848e3	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7954c361	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8188db79	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x83a4dd0b	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x972d4406	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9e45e590	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa42ba7bf	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa6e9c7c5	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xac5e370e	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xae87215e	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb3fbbf1e	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb6e1860e	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbdc149ed	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc53d7651	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc6cb14c4	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xccd34585	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd72c7e4	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce2dba2c	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd8e3d5c2	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdd88eb77	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdfa64236	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe75324c0	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb9dac54	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf1fb0fde	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfcbf8f2a	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfd3645cc	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1c84de84	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1dbdec86	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x2e8f96dc	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x8249900b	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x8c4b760f	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xa4f35d41	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xb5839e8b	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x167de3b6	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x37cf7c03	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x49985118	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x9b276c84	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xc72ef878	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xeed41c7f	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x396360ff	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xd3aadff1	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x11ea9ccc	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xf8fcd671	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x3469c5ce	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xcf20a033	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x024a9e15	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x136f6370	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16030979	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1709bd5a	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1932cc11	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c695e30	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e79aaf8	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2186f19d	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21ad3cdc	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21ceeb70	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24583c49	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25d8af2a	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x354d95e1	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f2b8700	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c9425e5	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4dd6a9a8	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x509d43fb	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5cc460d4	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f11112e	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72a3d674	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x744eeb7b	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7615f591	mlx4_get_module_info
+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 0x8b6c02eb	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f18f932	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91ec724e	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x953fbb5f	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f59635a	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa39a2797	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa49a48e5	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa71785e7	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7ffa7cb	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabc8640d	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaff8bfdc	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb95532d	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc55322e6	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2070976	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8946f20	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd97fc216	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6d068c5	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3c31fa1	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7fbe5d9	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9fbfe77	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd222f67	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff49077b	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x04ea4904	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0505fb12	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0658819c	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x082a4901	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x09f41f3e	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c7f170f	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0dd263ed	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f9e915a	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ffbbb40	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15a0edc8	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17252e67	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b0766ec	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f926483	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x216d35a6	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2180ae74	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22073696	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2291385c	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25447625	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d2a3fe8	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30a80905	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34395b8b	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38cbb9a3	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3990808a	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39b16831	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3aa0e901	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b821493	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3c08e549	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x416bb468	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41a127c6	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x434a0c0e	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4454546c	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x478526ce	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bcbedc9	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dd5f1de	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e7b4570	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55acc94a	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55dcb7af	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56b76e8d	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56f6f470	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58355cbc	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c8bcc8a	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f53d8fb	mlx5_cmd_exec
+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 0x67089210	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x681b5eac	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a1bf8a4	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c5b3460	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d23e9ca	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e3e6803	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70b34ec1	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72192089	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7466beec	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x774358ee	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b1c009c	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b9fa150	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x804fe597	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8050e4d5	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82e744ea	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8569a06d	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d57b6f5	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e0860e1	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e21c4cb	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eda7495	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x91901336	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x91ce777e	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92e99244	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94f9240a	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96f48b78	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x975961a7	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x984a7f13	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9aeeb588	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9be8706c	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cc52f6c	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d14429d	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0e0a8fd	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5c6f63a	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa64a3af0	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac35c748	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad5225ff	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaea2f9e3	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf323f7c	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb12393ed	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1413a41	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb18f6e8d	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3a90abe	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb632da1b	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb79854ac	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb800685b	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9af29fc	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba9cd981	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb6a8098	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbdbd9bba	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe50f41d	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe84f972	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc10fe96f	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc27d217b	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc280fbde	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3206950	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3d705b8	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc628c386	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8a11264	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc92a7df7	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcafe8314	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xceb74b66	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0fbec6c	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd164b986	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8221f51	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9d2455e	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf17d355	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe004d727	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0ed29c4	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0f21223	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2e8a94d	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3233e71	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe474f78a	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7e5dc65	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7ebcec4	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee64c24d	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5484765	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc3dd79e	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd17a7df	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x46f517e4	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+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 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+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 0x1d9ca205	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2397a270	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2837273f	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2b3b845e	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3c2ec4db	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4816370b	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+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 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6d75339f	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+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 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa1f71970	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa5664024	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa72c9247	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xae1e4833	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb2c8eab6	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc7794cf2	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe6b38589	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeb516614	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfb4d6d5f	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xbc8057d7	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xe5a9c368	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x40845b2f	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x59a74342	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x190329a8	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x290798d8	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x3f775986	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x66d00225	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7dcb5a5b	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x864680ba	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x884da8d8	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x8fed4b70	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9e203e43	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc0912c7b	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0ff1340	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd3da45ed	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd3e51c51	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x02ae28b7	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 0x51c497ca	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x57ed6297	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 0xf5d31363	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x066acbb8	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x9226e1ec	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x680e0f85	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x79361e23	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x9d22259b	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xdbd585d4	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xff081f32	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+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/mii 0x0f0ecf7a	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x1a924d44	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0x2ed6e805	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x760b662b	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x78a806a7	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x8d438a2e	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0x8d79bf33	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x8da6acc6	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xae0f7e77	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/mii 0xc075be9e	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xca9cbd08	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x4f931a4e	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x734b7f63	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x31a57735	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x5cbaf742	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-octeon 0x8a1d5c26	octeon_mdiobus_force_mod_depencency
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x27512455	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x28eb4661	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x47dfed69	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x79b60adc	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x3e31b84c	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x5388a68b	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x5aed2429	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x60afafe4	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x62326900	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x74a49a5c	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x93d628db	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x99a55593	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xc55ffa82	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x060e5a1c	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x86bee3a1	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xe475efec	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x188969fd	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x1be99eac	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x35978f86	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3703ce21	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x39058f42	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x7fb78b40	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd81de163	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf2ca2cb5	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf4e8c5d9	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xff5a1725	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0xb7bdc9f8	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x023b6db2	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x25592666	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x29886cf0	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x42274700	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x482ecda2	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4e874042	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5290428b	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x87d094fe	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb0a9b403	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xc748b1a2	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd6e150cc	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf4c24cfa	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x03b6e800	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x051f2a04	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0673c710	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0b49d756	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0d458769	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1319f36b	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x16776d57	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1928da16	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1ae9c998	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1d6eb78d	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2257b207	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3c352e8f	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4139e9b8	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x59ea674e	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x61a304a6	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6202e4c3	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6a61f6ea	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x71348c17	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x75834cd4	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x77d6c096	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x795489d6	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7ed32599	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x87893b65	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x89f34f82	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8a9c929f	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x91b0ca67	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x971cabb8	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa22cd192	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa7fb3833	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa9bcc3b3	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xabac5a77	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbaf5a143	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6b92641	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc9c9fe7e	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xceb79f67	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd41dae25	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd477bcf0	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd5feb635	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd790500d	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xda2e0f77	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdb3341a2	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe24b35d2	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe5b252be	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe9609cec	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeeca407e	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf0327bc6	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf0ed040f	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf169a941	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x270079ed	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x278b90c2	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x30cae7de	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x35806b76	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5986652c	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x957a6349	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xab01e4b2	ath6kl_core_tx_complete
+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 0xdd0e6530	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xead11795	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xed477a49	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf97358d6	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x125c7d71	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x19333b44	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1cbfc9fc	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x20e9c844	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3868d005	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4805123f	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5116ce64	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x55685ba2	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x74823dd5	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7e63042e	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x80133c70	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x84f0ff1f	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8cdfaa64	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9bd5ab6f	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa0dde160	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb66a2986	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc8aa0a5e	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcb69df59	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd36cf66b	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd3fefaf2	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe224de10	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe29b87ac	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf6d16a96	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x00c30776	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x032036e1	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a4955b0	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a666510	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ad328c6	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x13451de1	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x139bbef7	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c97d278	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d82bd6d	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x21a820a3	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24612b5f	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24ddd2f4	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x26ff0442	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x281aaa3c	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cb4a6d6	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x30c68a3d	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x340752c5	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x34239b34	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x360e340c	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x39613c48	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3977fab9	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b58aad3	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3da1fa90	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3faf16cf	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x472f29d0	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x47c80ebd	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x47de2af3	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48c50ff9	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48e6450a	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x49ca2d32	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a68571a	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5306b4f1	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x53abe3c0	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55b00c96	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5817c613	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x583b92eb	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x59235dd7	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x650d07cf	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x67828cb3	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a348bcf	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b3d43fe	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e0e00d2	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x70f5110b	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x713dd178	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75883a78	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x76d2befe	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x76e42593	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x78dc075d	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7aa5fd66	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b09aff4	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d2bd8f6	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f2f273a	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x851cd819	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ed212e2	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fd9ec8e	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9191dd49	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x97d1e3dc	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9cb49b07	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d57ca26	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d6c674b	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0525a76	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3a27e5e	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa526a0ec	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8ed251b	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xab064177	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xad408235	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb24897dc	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb42e8d54	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4f5db03	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6a8ea30	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb70d8000	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb80fbd48	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc8501cb	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2b1c842	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3559114	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4e76027	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc72c01a6	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7f82656	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xca144011	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xca392d18	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcde8926a	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7cf7023	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc4c8dec	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc7aed59	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd01225e	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdda59b01	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1761a45	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4115254	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4357cdf	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe779f6fc	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8b755bd	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9f31f05	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb08e419	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf04b4e91	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf132aca0	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf17f1d78	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf18d9832	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5e5063c	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf74ff5c7	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7d1bfc2	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9f64d12	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa24773d	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa863610	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc1bfe60	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe041f68	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeeb641d	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xff21d624	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x1ecb0b6e	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x27ab320d	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xcff727b4	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1da1fc58	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x224c63b2	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4c954344	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4fc41c11	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x55823f0f	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x5ef0e990	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7d3a1cc5	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8c7ed4ad	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8dab5023	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xbe1be58c	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd340bc6b	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe0b3f937	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xed05a69e	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x35ad9b3f	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x69dd2a4b	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0xe19d076c	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x0645ba35	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x22d5356b	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2b2ce397	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2f3f3901	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x34328081	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x40f92aef	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x45251176	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4b45d32a	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4ee6f935	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6b6a9d7d	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8ac4f7d3	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8c0c2d9a	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x90464d74	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xae126aad	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb047a96b	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc3b80d23	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc8c8484a	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc98a7e62	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xefb2f8fd	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xff3f211d	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0057c6d9	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x05c5e891	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x05cd8ad4	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x061a7fcf	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x08d0ef3f	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x10501e0d	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1087fc3f	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12a9a062	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12bcf9c1	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x17026432	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x21205179	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2427a5c3	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x258495cb	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x27d20936	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x29adf417	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3003e3f3	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x362c577f	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b1cd8c0	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x41ac88c4	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45407a1a	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x47a586c0	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x48e4cb3c	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x49e18b81	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4ee5211d	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x57d20e21	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x59742568	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b52d7cc	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5bcb1bea	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5cc3c6a8	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5cd8480c	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5ced93c9	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d3885ac	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d6ebbc8	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5e4574bf	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f00ace5	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6056a884	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x624adee9	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x66180afc	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x66999cea	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6940ca87	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c6933bc	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x76975e50	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x772d6104	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x79643c96	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x79875654	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7a2fe316	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7abee10f	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8005c581	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8792c949	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8817f7fd	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x88b01e95	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x89ee4aee	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8acc99c7	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8c83a9e4	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8d95fd2d	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92426457	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9574f5b2	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9707e645	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x98cc5bd4	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9f1ab993	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa1289493	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa1abdf47	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa23de491	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa5771522	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa5e0b812	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa6184c6a	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa79b934c	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa9efd2f1	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb264d6e0	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb31daaca	il_leds_exit
+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 0xc47c4482	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc7cecff1	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc91d3c98	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc9828eac	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd4884d80	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd48fa742	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdcf870db	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xde172be9	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf1bd707	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdfa7f381	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe13d2f92	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe2104517	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe6883390	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7eacbd5	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe9e0baa8	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xec2f907b	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xece56720	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xef08e5c6	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xef3d4b5c	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf23fdfb8	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf286df1e	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf2b6067a	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf7a75230	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfa03b608	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfab2b536	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd6a649c	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfeb83141	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfff7c443	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x73d6904e	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe45aec74	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe76e8c18	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0b891057	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x1372992e	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x18142289	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x28984680	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3c2e334c	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4106d4c5	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4654e9f0	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x46ba58a7	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5a3854bc	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x750c958a	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8101923f	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8a6e59ec	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9804fc9b	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9a923fbb	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xab9804e6	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb043340e	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xbd4e9d20	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc22f6dee	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc444683d	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc73211c2	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc7d89499	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcd956391	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xde827c07	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xea606633	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf8982a4d	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x03031c51	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x03358339	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x086412fa	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x40f683c3	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x507a48e9	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x53b42e3f	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x73e95b56	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7a347ad9	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x912fa98c	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xb547eb00	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xba994772	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcb52ad6c	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcbd771b6	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xd3d9f5be	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xdcb61afd	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe8dc0aff	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x5422570e	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x27765329	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x04b8a24f	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0568fdcd	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0b22e6ae	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x10f35597	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x12f6a848	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1a37f43e	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1af65b44	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2043acd2	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x20af6eac	rtl92c_set_fw_pwrmode_cmd
+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 0x34ed5300	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x40262db7	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x40678ff1	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x50a205e6	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x532cdc50	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x56881a8f	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x57013f3c	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5df026eb	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x69b1d8ee	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6c1ec609	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6d22b702	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x781f56a1	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7ae3056d	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7edf1270	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c2094b5	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9a157675	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa43aa3b4	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa87300df	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb8ea4ddc	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbf719402	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc0ad60aa	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc2b30e80	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc48cdb02	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcb86aaa2	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcfe72df1	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd1990485	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe110b476	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe6df270f	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xeb848bc8	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf5044a5f	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfbd8e48c	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfc4f1023	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x308a76b6	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x57df02e3	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7da49ee8	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xae0a8cc6	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x0b9f11fd	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x0f634fa4	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x97378b88	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xb25c0274	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0bb3fdac	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1478fd45	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b5632b1	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x29fd6880	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3438a27f	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x467c2e30	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x491d39f6	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x51fc97f2	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x52c6749a	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x567f4e8b	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5ff0db2c	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x61b55df3	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x63be6e44	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7542e2de	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7bf9112f	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7ece8696	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x84a509ee	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x84ddd998	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90b65055	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa12df834	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa25e8ec9	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa709e7a3	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xabe06212	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xad960fc3	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb137a534	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbff1798d	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc8ca948c	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd4b14837	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd778731f	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfd145586	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfdcafe73	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfeac2c07	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x10f807b2	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x13efca6e	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3608f39f	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x44b9ef06	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4f64f48b	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x66e6eb2f	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x7344927c	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x79709fa3	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9a039362	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb2cac061	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd23e0cd7	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd9ca98a1	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xdde8892d	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe14d72a2	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xeb8f75ff	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf207d385	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf2cd07a9	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0xb4679ec5	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x2248ff34	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x71ec12ba	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x95bba958	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xfa550ff9	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x05d793c5	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x3930ada6	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xb9fd4337	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x055eb6ec	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x8adea225	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x3d0080f6	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x42346aeb	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x765dc567	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x25b72b18	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x183fad2d	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x5effd0a7	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x2c301dd4	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xb0436a11	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xb5455009	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x4d7184ad	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x6c0eec9a	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x6f9e8f3d	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x71cd88ae	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x8980b904	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x9a48515f	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xab2d371e	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb11369f1	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xcc4f208c	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xfa78f934	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0521a8c0	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x339cfb01	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4d0eccd3	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5c758678	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x686c0634	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6aa5740b	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6c87cd15	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7f1978ac	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8edeca18	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x900805ec	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9bd4bc56	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xbd4d8c94	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xce9dc326	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xcecc8982	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd2a4406b	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xdf313db1	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe378bba3	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf80bed15	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x027368ce	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x135442b9	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x36676649	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x452123f2	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x465a7e97	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x493497df	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5369c252	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x73079c3d	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8043f43b	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8781b131	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9552210b	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x969c6531	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x98c9a06e	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa24f8bdb	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb4934aa9	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xbe1c2095	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xc1c99aa5	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe788ba8b	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf1a44007	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf6a54323	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xb6476eb5	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xbff74070	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x0010209f	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x0175a1a0	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x06ed5ffa	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x0e230c97	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x17ae4c00	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x1a9452db	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x1bf37c9d	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x2288e508	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x34355f7f	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x3e259895	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x58228265	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x620ea7b9	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x627d7dda	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x7e56b16c	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x7ecab5e1	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x91ec46bd	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x932a1d9c	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x9720e358	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x9fdf6ab5	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xa0430fb9	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xa3785db7	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xb943b157	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xc0eaf7a0	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xd2e30641	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0xd79b44c6	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xe2caede3	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0xe35949a9	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xe8139554	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0xe9930831	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0xe9f1a8e3	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xeb6a3201	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xfb6e827d	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x5564f0f0	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xeac5bf6e	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x03cbf57f	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x15e08185	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x22349141	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4dc45718	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4ef34929	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x519fd7f3	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x6b9624f8	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa60e6c7f	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xab61a391	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xae170f9c	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xba943d85	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xbff4bc6a	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd159e3f2	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xdd726dfc	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rtc/rtc-ds1685 0x41968a6f	ds1685_rtc_poweroff
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x63ba80ea	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xb3f75317	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xd65275c4	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xdde24c9f	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x23e97820	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5d8fc881	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5e630b6e	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6378351f	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x8bfe1699	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9b808d02	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa715ea6e	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xda5c1c1e	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xe1e94df8	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf41ba3c8	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfa51498b	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x050c8739	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0dbd8982	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x10e68657	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x115af083	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x12dc0a6b	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2701287c	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x27756b26	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2e1cb029	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x31439eeb	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3e7b7b08	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x41519c80	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x41736533	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x451b7228	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x487e0487	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x50e94a40	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5345e87e	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x635e5eb3	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6f468a4d	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x71d93c3c	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x72781768	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x75add8d1	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c770070	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7d0b231b	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7e2b1d7e	fc_exch_seq_send
+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 0x893f6c50	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9360de97	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x95e92138	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x97422ed1	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x98aa1b7b	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d36818b	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa93a9329	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xab1f65a1	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xabd97c7e	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0b4a729	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb1530436	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb45fbf9d	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb9c352d9	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5762996	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc9424de5	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcc2eee59	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd3065a7d	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd7263cfc	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdec6dec4	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0905ff8	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe75e6736	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xea6317f4	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xebbc075a	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf30ebb3d	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf830130c	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf857c631	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb5776f9	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb6a1517	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfbc1d581	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4163ff8f	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x8290d4c7	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xb0d3e2e5	sas_prep_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 0xe3face5c	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x1761a5e9	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x1bc86c71	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x3b243649	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x607c55de	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x78bed095	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x880b033e	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x9515a769	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x995d171d	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x9cebb2d4	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xacab969b	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xff5e1c57	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xff8b6b00	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x20dc2061	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x4b62756a	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xdc2c736e	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1b818ac1	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x33ecfe0f	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x593468ff	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x5c9305a0	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x62244964	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x65d04d2f	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x790fea39	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7a10580a	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x81bb201d	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x8ea4a4ba	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9c90349e	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb56b3529	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcba2638f	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcf91b215	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xdca69586	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xff51869d	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x01171716	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x12c3b476	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x151c5070	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1930ac78	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1e29ac99	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x21cf093e	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x21cfc7de	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x286ef8a9	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x28e13be5	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x36eebf83	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x44cdd7e6	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x462b7f90	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4aa9896a	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x53fa296a	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5e198390	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6d42c5a7	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x739241e1	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x76d84997	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x79341cc3	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8742ef5a	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8d4b9793	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x93b76a96	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa4839531	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xaca1e8f1	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd87bdff8	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdbbddbc6	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe8b9a6f2	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xed51eaef	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xede8cbbd	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x2fbf5f68	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x406d7c42	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc13e6845	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xca4589cb	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xfd010b41	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x41a67a77	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x5278467d	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x0a0b3649	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x0d74cd68	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x0dc1713b	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x4af3b3be	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x57a3b9a7	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x9f82ff0e	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xba157f10	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xe332fb10	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf3e08bf8	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x4e006e67	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x6c59a51d	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x0f5f7ccf	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3fec08a8	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x5b5da74f	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x6f2268fa	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x793464c3	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x84451a17	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x84fe1d6a	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9a2be099	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa0e17fc9	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc0b4b9db	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe25cf79b	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe4ca8807	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe9c5e517	sdw_nread
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x040ec236	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x094deb85	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0e86447b	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x159d0a45	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x16a04394	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x178411ad	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1c16aa2f	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1e9ec2e1	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2f31f49f	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3c779414	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x744b8955	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb43cdf93	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb6f59383	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xbc5891fc	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc6ecc720	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb54caaa	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcd51f478	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xd34a25ab	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf4155a78	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf720695f	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x00e22ef2	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x034a5064	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x03c845a4	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x05a00bd5	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0b3e3199	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x1e0d629e	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x28d4fe60	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2b7c90ec	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x319e8886	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x40e96411	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4ce7d8f7	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x5cb480f2	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x5d29a59f	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6489ab31	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x68b6c312	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x70d8ec43	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x91aefc51	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa127d6c2	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa56a08af	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb92474eb	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd9edc54b	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xde41ba69	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf1a71216	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf2a6f9b3	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf9d68382	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x7f38016e	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x0e2ba0de	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x13324974	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x198ac112	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x3bc08a89	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x4273e8ad	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6fc0c165	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x78d9e798	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x82d25c26	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x9b68fb5e	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb8d4dc78	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc3c9b20e	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xce625525	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd05f454c	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xddf41723	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xe9f06e02	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfb40b79b	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x1c38490e	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x4687d636	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x782901d6	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x88269062	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x8a125768	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x8f981589	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x95c6b50b	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x9cfc2d21	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xccd1d652	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x086db96e	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x119f7abf	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1f8b2d8a	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x220717c4	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x254f857c	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x27cfc625	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2a6ae9e3	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2c6e59dd	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x314469a8	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x337f8dca	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4859ff1b	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4b709d8e	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4d56db9d	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4fc0fbb7	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x54b6c98e	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5b0bfa7d	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5bef0023	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6b419b43	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x70ca62cb	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x70dee087	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7babfd76	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8b419c54	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8bc3a341	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8cffecf1	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8d28522f	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9010da64	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9ac68d28	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9ff2a577	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa618722d	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa7b64ed8	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xaad481bd	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb2a90fe5	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb34695e2	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbbd5f5f3	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbc865b5d	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc0aaa60e	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc448f227	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc70d2f68	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xce012ccc	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd0c02e36	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd8a7c4b2	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdc21ec38	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe0fcc459	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe9cd8cf1	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xeb36ec8d	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xec0640fd	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xeecfab6e	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf0c4e25d	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf7d9da18	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x08792de6	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0e08cf0b	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x13e23e02	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1ebf8ca0	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1f91adcb	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x21d042b8	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x226aca59	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2621c1a1	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2a4a35d4	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2f4c16d2	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3175c3d9	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3891d1fe	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3f9b2fe2	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x42756c9b	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x49085b49	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x50d88865	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5f47e15d	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6a484a51	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6a90f68f	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6ce8aa7b	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7e170941	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8433611e	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x852123b2	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x85e65089	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaa75c4f3	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xae7ba30e	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb00eed74	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb1420505	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb1b389a8	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbcd647f0	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbeee4ec9	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc54a9b6e	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc61d395d	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc66330f1	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc92350ab	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc924a9fe	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc97c25f9	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd4936309	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd9b7c2db	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdf4b769e	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe0de491b	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe5f6df18	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe7e417a2	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xea15d900	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xed8258e5	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf0d42e2f	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf3027754	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf394d1a0	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf3a370cd	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf790ba86	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfcbfda5a	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfe26d686	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xff22312b	is_legal_channel
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0095cc7b	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x00acd2b4	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x053ad164	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0586704d	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x10fd0084	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x12766982	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x130e1ed9	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1367e3cf	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x14951650	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x15c10237	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x17caccf8	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1917e869	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1d30aa48	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1de00865	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x21e297d1	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x29d4d6fa	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x315b27d3	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x372e0375	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x41ef92f7	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5eba91f9	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x661a67fe	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x717579bc	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x727e72e5	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x763bae2d	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x79f1b96e	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7c20b68b	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7cffda15	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x848fc4c7	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x893be138	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9300c3c1	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9bb66de4	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa055a87e	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa184825f	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa24fd68b	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb92f2955	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbe3f560b	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc137b81d	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca02923c	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd4f4b25a	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd518ca26	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd56d9b33	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf9de9926	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfbbcf161	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfd20406f	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x01bd3197	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x02839a5d	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x076c6d79	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x100ba85d	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x128bb8f7	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x178e5efd	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x189b00a7	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1d46cffe	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x24e4d100	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x299a3ab7	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x37f45459	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3edfe45b	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4840e31c	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4a27b21e	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4c33ea46	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5c940409	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5fe15b85	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x60d298a5	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x61909e3b	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x62c168a0	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x635d6879	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x637a542b	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x69fea476	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6a61e189	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6ab04f0c	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6aceae07	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6dc3cdf1	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7000d6be	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7103c5a8	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x78145ad3	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7e47946d	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8a7beea7	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b0bb661	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8c940a89	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8e1740cc	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa3b5712d	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa5e1bb56	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaafbf7ec	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xab567651	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xab980c06	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb1efe527	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb6c67b99	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xba897747	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbdcf0d1d	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc219104c	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc54ef709	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc72ada55	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcb488adb	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcf6c6527	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd7001b01	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdb2ba038	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdf0b7775	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe077d495	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe4b11e41	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe8c662da	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xedd1d8fb	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeded1f6a	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xef5be4b2	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf138fe06	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf1c2805b	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf20833ca	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf53a43e1	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf63b302a	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf7ac02d0	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf9344556	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfb58e3ea	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfbcae322	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfbe0f5c6	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfc0b7734	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfd1ee2ad	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x0a5dacd6	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x5191e1b6	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x3e8bb781	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x00cbe35a	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x4208f898	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x616434db	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x769f16fe	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8402ee6f	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8d6ebecc	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9e289faa	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xa3578217	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xa9c1624b	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xbc30a60c	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdd8cf6c6	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe1a48f39	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe57ccfdd	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x133ddc3d	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xe5efe998	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x12badb04	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x38559cea	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x4c7b6762	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x553c81e1	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x59a95899	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x59b3ef02	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8c69b0bb	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9127f437	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x917bf1df	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc6cc6243	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc863935e	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd82fc94b	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xcb983667	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xf00901a5	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x00cf3d3d	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x1ecfe04d	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x5f6d44e9	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xf8072120	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 0x3df61b09	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4866a584	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+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 0x936470e3	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x9b5557d7	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xc1544953	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xda4bac83	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdba0c9cc	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x4ec530cb	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0xed6a44e9	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x90b3a8ac	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0c93070d	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 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x04062fe4	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x060dda7f	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x6e06cbe8	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x1de7e6c7	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x47cd9e67	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x5a0f11e5	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xa07612f9	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x9e0e3562	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x098f13f5	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x1182fba4	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x1c7f048c	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x2387ccfb	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x7eab7863	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xa2d1c26a	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xa55091c6	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x1de80174	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x272bae7c	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x5f92898b	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x854f3ec9	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xefec7384	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x2b92425c	mb862xxfb_init_accel
+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/w1/slaves/w1_ds2780 0x272fe2ae	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xeab3b2f1	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x849f171d	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xd1928853	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x4f608718	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x55e0d1d8	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x58380e1a	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xf2018ef8	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x29dc2454	bd70528_wdt_set
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x9ca90228	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xfcf5fceb	bd70528_wdt_unlock
+EXPORT_SYMBOL	 fs/fscache/fscache 0x12e65425	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1e8f0110	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2736ae7e	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2a2abc34	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x36559d37	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x41cd95b1	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4539b6cf	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x46dfb13f	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x46fd0b23	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4b3acebe	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x587583c1	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x63cc855a	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6a811301	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6ec373a4	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x75cdc54c	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x77d2af7d	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x91116d52	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9912245d	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa6b452c4	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa8335346	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa85a729e	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xac3562ea	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb3ed617f	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb9ca844c	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xba46e440	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbd1114c8	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc22ddd1a	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc2cf8a10	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd2e8efb1	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdb1ed323	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdbb8bc49	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe76af1aa	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf07dc093	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf241439b	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf280ca1f	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf2a4b474	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfa8c9f72	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfc169011	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfc2d5ca0	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xffa38ee4	fscache_put_operation
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x0d1b9001	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x1232f26c	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x980feb5a	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x98536369	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x9e258a3a	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xd94253d5	qtree_write_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x0ca5f84d	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xcfedf71a	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+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	 lib/raid6/raid6_pq 0xefc78e77	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x3566dcd8	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x48505186	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x49391508	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x8d99e387	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x92038c4c	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xf4928b33	lowpan_nhc_add
+EXPORT_SYMBOL	 net/802/p8022 0x0aeb1016	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xdd184e1d	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x2edf08ce	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xaf144c29	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0976b4d2	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x196602a9	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x1ba7ff75	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x1f953179	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x1feefcca	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x257cc769	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x25bc9119	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x273ddbf3	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x2b32a314	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x2fcba1be	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x36fd68cd	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x468f4700	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x46be6571	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x4c1d2098	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x526e9113	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x5dace9fe	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x65fc3af7	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6802ab25	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x6f8d746b	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x7b226d51	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x7e7c8cd8	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x912cd87e	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x9500103f	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x9682b18f	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0xa6ffd61f	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xa9cbe569	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0xb38cfba9	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xc93d6e5b	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0xc9b3b250	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0xca5ee98b	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xce00d612	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xce3b5d59	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xd21e0014	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd5b5098d	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xda51458a	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xdcada5d5	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xf0cc6eeb	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0xf4ec24b1	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xf6aa98fb	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0xfbb2be1b	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0xfce952cd	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xfcfbd45a	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xff14557e	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x4b4b0187	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x60e23913	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xa799155a	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xbc77ea86	alloc_ltalkdev
+EXPORT_SYMBOL	 net/atm/atm 0x0f551d5f	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x1bfbdc9f	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x2aa23ea8	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x2d3de134	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x305fc0d4	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x48dd8362	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x5714d129	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x69d94be8	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x7a262e99	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x7fbe5b8a	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x809e765e	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0x913836de	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xbe661dbb	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xca87b453	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x0dffbd43	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x5d91b29d	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x6e298c47	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x783182c8	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xc7c682c0	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xd02a5e23	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xdc2fd393	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xedf6dff1	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x000022d6	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x057c8720	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0f189e2e	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x10f4f9c0	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x144829f8	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1541e675	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1faf77c2	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2def1e95	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2faa2c6c	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x310ad027	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x386ec597	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3f0e9f69	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x41bcae78	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4bc7bde4	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4eba8ba1	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x539221b6	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5a16d9f3	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5aa5eea5	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5d7da989	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x661410ae	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x66f35874	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6a1c3d5f	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6f7ed3c1	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x727934e6	hci_conn_check_secure
+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 0x7d0e8e8b	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x84bd8267	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x91498c71	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x957acd56	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x99cfe311	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9a46414a	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa2206391	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb25ffe29	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbb142e2b	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbb335e08	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc2391516	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc60d7cd1	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcbd3963a	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xccc3e960	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd9ff3ba5	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xda5971e2	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf06b0264	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf4699537	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf7a6a985	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe2a5671	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x36b77e53	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x44da0d34	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xa00ccab8	ebt_unregister_table
+EXPORT_SYMBOL	 net/caif/caif 0x0122da95	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x116c8c1a	caif_connect_client
+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 0x3c3c8f37	caif_disconnect_client
+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 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x94eb5b5e	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xabde3fd7	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/can/can 0x57ad6760	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x6338c47e	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x90d0f249	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0x978206c4	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0xabc8ff8f	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0xfaccd1dd	can_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x03ed59a5	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x0b26132d	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x0bdcba65	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x0f3c57a2	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x128d6a12	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x133b0d56	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x1663d6e7	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x1c498c59	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x1f8a82dd	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x24b2b217	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x259c7cf6	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x27493d7b	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x28726326	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x28866fe2	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x288d9c21	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2d2afd08	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x3217cf0c	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x32ad5d12	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x343bdae9	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x363ef29c	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ec3ef97	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x3faa0a97	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x409a862b	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x409c1406	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x42281aae	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x43a3dfeb	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x46a9b84d	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x47606c10	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x4a5d7450	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b5e1ab0	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b5fe047	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x4bd39e86	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x4daa447b	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x5080e82d	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x514702d9	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x529534ea	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x632d4de0	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x65b03143	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x65f7dea2	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x65f9944d	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a008a5a	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6b7538aa	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e069d97	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5b736a	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0x744d3879	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x75327c1c	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x799b4529	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x7b695de1	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e7b0312	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7f3b2193	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x800c2ac9	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x84b32ca2	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x85062fe4	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x8557229e	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x8961abae	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x8a114538	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x8a253e20	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x8c8d17cc	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e1e431b	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x900c53fe	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x98684986	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x9b0a0c35	ceph_msg_new
+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 0x9f4169aa	ceph_open_session
+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 0xa2cdf1b7	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xa471b6db	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa6bea253	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb0a20a3d	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xba058851	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xbae074a7	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc48f69c	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd74ca59	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd750c61	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbfc17b7d	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc1a1b5b7	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc3d5ed3b	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0xc4cc9e5c	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xc51042ff	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xc6893f23	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xd17b36a5	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xd182dea6	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0xd185259a	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd21f28b6	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd45f94c5	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4e869f2	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5c0dd66	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xd70d5f6c	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd9e4ae48	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xd9fc4db0	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0xde2dd8f1	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe0dce345	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2a128e8	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xe4b1c257	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe70deffe	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xe9ec2ed3	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+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 0xf0126b3a	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf5a21145	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0xf81f63f5	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xf882b86c	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb6a65ce	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0xfcd16756	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd15679b	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd2f0f49	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0xfdccac5b	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xfe8782a2	osd_req_op_init
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x6273947e	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xa60460a1	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x38e73ecc	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xc5313091	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x07e183d2	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x1b3a2dfb	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x99d39b04	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xcf3207a5	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xf54ce957	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xff9f3551	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ipv4/fou 0x0b644ce5	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x4015b761	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0x0bd24b1f	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x54c107f6	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x62afc77f	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x6994095d	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xabaf3d18	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x2d6b5640	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x46d78505	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xdbc52db3	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xb8e88b87	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xf57a2e96	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xfe4daaed	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x0e56df35	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xf253752b	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x72d63201	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x26e24d39	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7a1d3567	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x85c86b13	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x9368fe6e	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x954eae6f	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xad0196ef	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xc742dd34	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd79da008	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe4d402b4	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x03b4cb38	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x8ccca1be	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xba45baf0	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x25de8654	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x4a46e230	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x6add5ac0	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x9c11c798	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x6e11b8ca	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xd0ae47f7	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x96242dca	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x0841aca6	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x260a88e7	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x32b27377	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x3ab25a33	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x421ff39f	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0xb7e05e70	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xcaf56b7d	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xef0fb240	lapb_data_received
+EXPORT_SYMBOL	 net/llc/llc 0x00440ae2	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x0c71476b	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x0f7fba80	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x9a18ed5b	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0xdd6098ce	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xe53923bf	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0xf707fd1a	llc_set_station_handler
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0070f349	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x02e26935	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x04f7caac	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x085e3070	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0aa9fb8a	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0cab0816	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ed1eaec	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x12a00cef	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1377758b	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x16e9aa37	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19ab2c18	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1b740911	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1ce37244	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1de16305	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1f212de2	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2026a07a	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x264888e1	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2aab9d9e	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2b0f8b04	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2bad862b	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2d25fc6e	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x344b0205	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x39768601	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x39affa7e	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3b86e086	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3d27d1a7	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4cb42d50	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4f1954e0	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4f265865	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x51536ca3	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5487eb67	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x54c0d948	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x566fc9af	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x58b74e1b	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x59de3688	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5f277d05	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x60dca4e1	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x629a6426	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6326a21d	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x63c5ded2	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x650de500	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x69b13194	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6e555665	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x71d22738	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x791d3eac	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x796003fd	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8045effb	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8b752c67	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8c93272c	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8e37a051	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9181f340	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x928c4211	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x962ef4be	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9c0c230b	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9ce1514c	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9e5e7bdd	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa263120c	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa9033cc2	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xab40d0dc	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac079ca4	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac95bbef	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xad06aefe	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb1d6db0a	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb27fa60e	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3c3cd90	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb67be1d9	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xba6587c7	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbc15e9e7	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe4d6e2b	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe99701a	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc0d2d202	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc47ec1cb	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc91e6768	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca6a72d7	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf41a611	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd54a9911	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe16e1027	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe2197bef	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe2e7df38	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe4857203	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe6b40a56	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe751e612	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe903d11b	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeb85ab37	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xec0ed5cb	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xef354cfa	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf195d6ce	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf52f9736	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf58bb3ad	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfd49d4f9	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfda61ca2	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfe72a5b1	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x03274c6a	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x1f3e4932	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x23f761b2	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x59b879fc	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x8253a0b2	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x96fd5cc8	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xced2f04d	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xdfe284da	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1998e412	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2be144e1	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x41d3c1f7	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x58a8debb	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x613805ac	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x643ba8ec	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x73151b55	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x962de8af	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xb4a768c1	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc0ecb253	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xcc719984	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xdff1270b	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe421ee3e	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xed25bb5f	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfecf02e2	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x16242f14	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xb0dca885	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x0a42318a	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x18afde84	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x44d80172	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xa1a6111d	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xf480e6be	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x261501bd	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3fb6f92e	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x42d0f86d	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x52f058af	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x63304322	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7df2a0ed	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8bf42748	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc18a0346	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd4474f82	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfcb96ac1	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x01eea53a	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1c8e753f	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2775733d	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2abff76f	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x47108455	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x49742cba	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x53a05245	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5bf58166	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x65cd1317	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x68531f88	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x69547eed	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74a5dfa5	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8408f601	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x997890d6	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xaa747f09	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xabd97abf	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb29f33bf	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb37c90ee	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb9721c70	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc03088ca	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf44cd853	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x051b96cb	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x085eb14a	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0913fca1	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0bc727ff	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x13586d8e	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x146cf894	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x174f6f16	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1d126497	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1ed0d0aa	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1fd13faa	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2bc4c967	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x47a84f15	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4b84f4da	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5b0f8674	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x76531b93	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x76fe075f	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x77152f4c	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8b024942	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9c97144e	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9d60e587	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xaef48dc8	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb8cbfd22	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba443d7f	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc13e8136	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc6309c1b	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xec1fae60	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf72313f0	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfa45d4a8	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfa6f38a9	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x2cb1c24e	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x323f9007	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x357b860c	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x3c694ad8	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x49b80b23	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x4abc1848	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x505b076a	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x50682ae1	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x50e890ca	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x5b263070	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0x61146b6f	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x62859561	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x7663ca33	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x803df4a7	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x9a366dff	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x9b7a0a3c	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x9f5b0ed2	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xac139402	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0xc340f409	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xd0802d53	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xd6e20544	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xdc139c94	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xeace3678	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xfae83cd5	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xfc5661f8	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x3760f278	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x6afab3a5	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xc6e2984b	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xf2a2a072	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x0402175c	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x0c180229	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x1f072a60	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0x613e7212	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xad989b6e	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0xc1ef17f5	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xda2dfcbe	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xf1211a2a	pn_sock_hash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x00f34b34	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x020c60f9	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0b5769e2	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x157bca39	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x20060364	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4e1675a4	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5644ca2d	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5f41ed6e	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x69f348df	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8fa70bf0	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9c69c63b	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xaa4a3ba8	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xacd64b71	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb4050f9e	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xdf991fdb	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf617ae99	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xfca40319	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/sctp/sctp 0x0a784ba8	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x1287d841	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x40efa0f8	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x5bb3ec44	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x83380d24	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xe6520a34	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xf40f861a	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x010fae2e	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0x0b25113b	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0x159dc540	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xd20b6bd0	tipc_dump_done
+EXPORT_SYMBOL	 net/tls/tls 0xa7194bee	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0xb6de3661	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xc3ee3904	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x51675f91	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0xf08fc27c	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x00be2b43	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x041bbab5	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0450a686	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0ce19735	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0f434b80	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1073ec27	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1373e325	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14acbab2	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x184821b5	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x18611216	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ad862cf	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1e316909	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x22a70b13	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x239967d6	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x257d45cd	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2630a87c	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x264fc110	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x26f65ddb	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2772e297	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2952e8e3	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2a046508	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2a0a2882	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2bbfeffc	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c3a30ed	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2d119ac4	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x339acefc	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x37172298	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3cdabfd3	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x51524e5d	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x53464561	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x55edf227	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5e705498	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5f65798c	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6b6aae09	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6c18d7dd	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6d38281b	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6e5021f4	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6eed482d	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x71e9364d	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x74ff26a0	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7789825c	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79c3ad30	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d3253d3	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x81cd8d75	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8796af9e	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8c79cf27	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8c880ade	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9059f48d	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x90bc7f08	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x919d88f0	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x927ce6b5	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x94bf5eee	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9529638b	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x967d708f	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9690068a	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9a39c684	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9c22373b	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f849d4a	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa2805e76	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa5c53ab7	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa90b4b3f	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xafa132f2	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xafc850c4	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb97ab62e	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb9ea66bd	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbc8bf91b	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbf378dd5	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbf79e4ef	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc3a9fd1b	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc5dc096d	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc75f191f	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1d4c12	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcde8838f	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcdfc64a6	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcff4318d	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd09cd383	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd0f7e286	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd1658eb9	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd8855aee	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdb58bfcf	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdd4421d7	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdd873288	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xddc0dd2f	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xde9c0680	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdf51fdc1	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe0e99ec5	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe2d0e455	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe2f2e948	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe86af737	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xef097ec3	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf3b0fd6e	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf7792fcc	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfc0520f2	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/lib80211 0x1d8dce3a	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x5af9e9e3	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0x5f1da32e	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x76a204b2	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc80f3beb	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0xcca8f4ef	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 sound/ac97_bus 0x8debff74	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x21c36ade	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 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x4e3ddfdd	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 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x99c9ed49	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xa7ed1537	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe5fa579a	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x072d978b	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x13a17752	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2eed26bf	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5ca523	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x592f6e9b	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xddcf2191	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe60fb228	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x0f3fc920	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x026d985d	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0x09024409	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x091f1afb	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x0bc1b2b7	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0x0f9fba1d	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x16892b77	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x25f58ea2	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x26444d1a	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x34b1cd70	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x34cc153b	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3ec6acc6	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4d2ccb43	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x55f10ab3	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x567b3bda	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x5b870d67	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x60de8e38	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x62c2d477	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0x680c98d3	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x714f6385	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x76989bce	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x7da2381d	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x7f15f91d	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0x80e78fe9	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x82877905	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x8f962a9a	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0x94df66c0	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x9592eaa7	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x9998b434	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0x9c4c8916	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa09e4a24	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0xa5679f09	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0xa5824fe6	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb3131bb4	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0xb3b82e02	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0xb7a9da39	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0xbb9a0b5c	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc897bf9e	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xcb4bcbaf	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0xd363d586	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0xd8c6aaee	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0xde0d9e51	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0xdf13de5f	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xdf3f1f88	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xead5dc90	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xed59f464	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xedae90ff	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0xfdf8ec14	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0xfd599204	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1081d9f0	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11656611	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x135e7bf4	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1618826b	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1c644138	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2cbe6da3	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3243d224	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x35a5bcc8	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3a6f1979	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x407234ee	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x431d8ba0	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4545fe8a	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f8e5a0e	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5f3ddb12	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x618d449c	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6cdce72e	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6e9a424d	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x70548f1f	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x71153f53	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7c46f123	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8958bdab	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8e125fab	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x93503631	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x981e5b0a	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa1d7ca85	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa421d5f2	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xafc4f78a	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb18357c4	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb21bdab2	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xba0dc5f7	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc8d41166	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcaf550ae	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcfd3d254	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd0047797	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd303f249	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe156cc61	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe2ea10ee	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe3b07b31	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe7a241e3	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf1f98451	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf86b2d10	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfdb896cb	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfecc2802	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x13bf235e	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1aa38d65	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x232ff2b1	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x333c34ca	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6088cb3c	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x698648b8	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6ab7468d	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x77d877c2	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x7e6cb315	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x7fcaad72	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x839d07d7	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x86a47b4a	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x8bea67d2	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x90bbede2	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xafef8d24	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc6201ee1	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xcceedc43	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd8b03ed7	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xde9bece1	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe9ca2af5	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x21d51666	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-timer 0x2c654758	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x407beea6	snd_timer_resolution
+EXPORT_SYMBOL	 sound/core/snd-timer 0x450a229f	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x737a9d43	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x7424a9dc	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x7cce3863	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x93d78e4c	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x94595c8d	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x96d5b755	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0xa80b4571	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0xdfa76fa0	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xed03bff6	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0xfd7280f1	snd_timer_close
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x1f472b25	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x03fd6cd9	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x20b0b9aa	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x246572da	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x35b99ce9	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x506983a6	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x870f6d0e	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa6068f13	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xdc5bf733	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xfef581bb	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x11cb53c2	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x15249682	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x3f963001	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x660497c4	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xbfe43cdc	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xcf79fdca	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xda5d2bb1	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf6cb7311	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xff0d538e	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x03de0d71	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1384305c	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x19c82ce7	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x282e06dd	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x31a6d281	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x32b0452f	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x336c1920	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x34545f0d	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x38696b71	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4189e53b	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5183db24	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x629192e5	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6323dbb8	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x672eb8d2	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x69e93200	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6c882d79	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x700b9f51	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x80035e3f	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8ef49d7c	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x92ebdbcd	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9754526c	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9a286e24	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9d29243b	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xae6d4fd0	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb0058820	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xba1737cc	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xceb144fa	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe1e9b5a4	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeb7e8d07	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeca99675	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf4c3b420	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf64fae94	amdtp_stream_update
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x7bec3cdb	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xdf59193f	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3f7075b1	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x4e9cb897	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x56bea597	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x67fa2554	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x95e7c5ba	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xaec3d5b0	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xd179fdc1	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xeb3d71b9	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x0bb8201f	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x188ffdcb	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x23f5e172	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x6d60d0a0	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x120bf8aa	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x328dc8c4	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x2deedc14	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x64af5771	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x77e84f71	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x88368219	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xbd00b9f8	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xc97ddc9e	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x4265abec	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x47aac416	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x592690ed	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x8314b3e1	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x98e8ca2a	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xa21aea0f	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xd964df9e	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xdf959b94	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xdfa64883	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xf0744001	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x477d0581	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7ae257c5	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x862503d7	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x911c6468	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa3c64556	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa6de0970	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa7c6eac1	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa82cee2d	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xac307703	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb5a1d297	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb60df7ff	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc1936d93	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xca1ee1d7	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd8d0e9ba	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xdc3cda50	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xddbe281f	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf6475f64	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6494f74c	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbb275b30	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xfb5499bc	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0178651c	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x053cf047	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x24b52554	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3978edca	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3da79760	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x46ce46a7	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x4c87e12d	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x4f9e5f59	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x5843bd85	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x60ebad15	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6697e004	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x84ac36de	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8534072b	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8d249cff	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa0f4b13e	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa2450ffd	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbe11c6f2	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd9fc180f	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdd082f20	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xe9156cc3	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf8eebbd2	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x55ff596d	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x74d51596	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x6d35a3cf	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xdce58760	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x3037e60b	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x08c2fa11	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0cad0764	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x123aad04	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1331d26d	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x18dec0d3	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x21932acd	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x24acbb43	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x27ba5cc9	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x286eb3d0	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x310fcf0b	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x37acf87e	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3ac0338a	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3f254729	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x419541eb	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x43113002	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x458b4b12	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4658d15e	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4e7c69d5	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x58fcbbf0	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5b5511fe	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5cf482e2	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x636e2d81	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6e97459a	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7064b144	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x76c48422	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x796cac40	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8374d08a	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x867dfd36	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x91dbb882	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa57737db	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa723af50	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb1979df7	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb1d7700a	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb74db53d	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbdf75f0c	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc0eca42f	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xce192cce	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd4a77094	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd560476e	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdb822e4d	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe0fa8c26	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe63101be	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf5342f26	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf6ecfd4b	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf7ff43a5	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf9de59c7	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soundcore 0x46ea73b0	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x518feb8d	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc4d05c28	sound_class
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xcdb6b788	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0xe820b432	register_sound_mixer
+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 0xd6314cdf	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x001406b8	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x001d84ab	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0x003a7a96	h_ipi_redirect
+EXPORT_SYMBOL	 vmlinux 0x003e14d5	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x003eafec	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x00401cb7	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x0049b2c4	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x005088c4	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x006a744b	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x009249fe	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x0096e873	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x00a1ce0b	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x00a8d057	dqget
+EXPORT_SYMBOL	 vmlinux 0x00c4a965	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x00cd97e0	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x00d47d08	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00fe84e3	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x010146ff	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x0103337f	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x01037473	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x01153ea8	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x012a97fc	xor_altivec_4
+EXPORT_SYMBOL	 vmlinux 0x0133fbea	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x0140c525	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x0160da8d	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x01785b1e	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x017edf68	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01982074	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x01adf778	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01d505d0	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x01da453a	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x01e1569a	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x01e65456	paca_ptrs
+EXPORT_SYMBOL	 vmlinux 0x01ed2c58	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x01f32ba8	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x0205a65e	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x0229d095	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x0271abd8	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x028ee1f3	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a88b53	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x02b770cd	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02bc4f05	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x02d9cc9f	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x02dba286	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x02df50b0	jiffies
+EXPORT_SYMBOL	 vmlinux 0x02e6c92b	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x0313e687	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x03151c80	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x03219a49	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x0334e43e	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x0358165e	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x035889ef	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x035c69f9	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x0365e4c8	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037b1788	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x037f9e0c	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x039022e3	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03a07d4d	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x03a5b17b	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x03c6bd3b	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x03e874ab	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x0430cb86	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x043403df	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x043fc2fa	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x0440d8c6	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044e9969	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x04615bce	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x04674142	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0x0467e5aa	d_add
+EXPORT_SYMBOL	 vmlinux 0x047fc1b5	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x0485bd4d	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x04864833	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x048dfaa5	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x04a920ef	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x04acb8a7	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x04b19248	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x04d1099c	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x04d634fa	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04ee83c3	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x04f02b06	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x04f158be	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x04fe0022	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x05186ca4	flush_icache_range
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x052e0b26	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x0530dede	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x05362477	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x05519d30	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x055d6a3a	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x0561c43a	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x0589671e	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x05913b24	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x059a4186	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x059fc217	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05b99995	of_create_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x05c04007	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x06074042	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x062891de	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x062b0ea8	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x065bdad6	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x06770beb	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x06828f81	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x06928214	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06c0b02f	build_skb
+EXPORT_SYMBOL	 vmlinux 0x06c34c51	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x06c43bb8	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06e5bf9a	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x06f11351	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x07161b84	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x0737f5ad	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x0741087d	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x0745a0b6	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x074e9213	down_killable
+EXPORT_SYMBOL	 vmlinux 0x075afa1a	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x076479e7	__debugger_fault_handler
+EXPORT_SYMBOL	 vmlinux 0x076a693a	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x07715b97	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x07835f0b	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x078622ec	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x07889f71	vio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x078d1714	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x07a747ff	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07bd15ac	__debugger_sstep
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x08051f41	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x0813e7ba	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x081fbcb7	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x0825047f	radix__flush_tlb_range
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x082ea454	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x085342fb	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x08778b70	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x088eeccc	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x089e4b16	d_path
+EXPORT_SYMBOL	 vmlinux 0x089e56e6	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x08a3de61	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x08aaf07a	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0x08ab13ed	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x08abbe06	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x0901da0d	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x09046c48	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x092e6d07	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x094d535b	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x096cd961	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x097154c4	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x098a8c68	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09950196	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x099a1e62	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x09a781d0	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x09b9552c	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d32fd2	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09de191f	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x09e14248	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x09e2b31d	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x09e8d01b	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x0a28221f	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a305e14	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a423ec6	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x0a471030	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a69c1d4	memcpy_page_flushcache
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a9ecb71	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa83c76	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0acab280	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ae55357	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x0ae728f5	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x0b171a1e	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x0b1a534f	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b2cd627	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x0b2e1ec7	h_get_mpp
+EXPORT_SYMBOL	 vmlinux 0x0b3769e0	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x0b455979	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x0b51758f	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x0b595598	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x0b6cc13f	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x0b6f1a48	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b74c1c8	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x0b7e9a23	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x0b854607	dst_release
+EXPORT_SYMBOL	 vmlinux 0x0b8a6338	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x0b939a5d	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x0bb763b9	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bd821bb	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x0bf36885	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c228b11	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c2ad52a	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x0c2d4a38	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x0c2fecef	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x0c3d70a4	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x0c45c858	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x0c4bc2da	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7b9925	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x0c851dd6	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x0c93eea4	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x0c99c87d	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x0c9cff3d	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x0ca9bd5e	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x0caccdde	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x0cb0601a	node_states
+EXPORT_SYMBOL	 vmlinux 0x0cb12092	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cd5856a	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0ce3d1be	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x0d040d59	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x0d073f21	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d09729b	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x0d28b9c5	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x0d45db64	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x0d49b93f	__debugger_ipi
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d7d7314	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x0d9fd601	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0x0da40bf9	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x0de0984d	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x0e04cb8f	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x0e050d59	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e2c43eb	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x0e45db07	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x0e59eb1d	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e8f30f6	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x0e9c56aa	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x0ea72003	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x0ebeac62	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ee63d5c	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x0ef21341	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x0ef84368	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f09d89e	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x0f5ad093	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x0f78bc95	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f89ce1c	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x0f9320e9	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x0f96dad3	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x0f97f791	flush_icache_user_range
+EXPORT_SYMBOL	 vmlinux 0x0fa6dfdd	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x0fa90a74	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x0fa961fc	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fafcb33	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x0fb01917	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fc68a91	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fd9f6bb	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x0fda3396	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x0fe31a01	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x0ff6373f	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100f13e5	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x1035f361	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x105f2f23	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106c4be1	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1084003a	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x1087cbb8	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x10a28476	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x10b764da	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10cf9316	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x10d9424a	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10de922b	msi_bitmap_alloc_hwirqs
+EXPORT_SYMBOL	 vmlinux 0x10e0f124	__pud_index_size
+EXPORT_SYMBOL	 vmlinux 0x10f7e601	pnv_cxl_alloc_hwirqs
+EXPORT_SYMBOL	 vmlinux 0x11010206	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x1107b7b5	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x1141e410	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x1156c9d0	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x115c23c7	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1162dfd0	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x116627c9	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x116efb2a	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1171726e	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x117f22ea	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1182d83a	cpuidle_disable
+EXPORT_SYMBOL	 vmlinux 0x118fecc8	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x119d5ada	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x11b7b486	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x11d4314b	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x11dcb94c	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11e1c922	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x12095ea2	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x1216b0d6	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x1238fcf7	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0x123c2f3e	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x12437231	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x126c180a	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x127653c0	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x1287b6f6	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x1296259b	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12b854ea	of_get_ibm_chip_id
+EXPORT_SYMBOL	 vmlinux 0x12b8ff85	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x12c5fb27	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x12ca66a1	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12d10ecb	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x12e5ef0c	rtas_set_power_level
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x1330a92f	vio_disable_interrupts
+EXPORT_SYMBOL	 vmlinux 0x133eed38	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x13541e57	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x136d9d41	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x136f56dd	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x1370156a	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x13743421	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x138f4426	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x139102ef	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13a40022	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x13a70a84	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x13a84c95	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x13b13357	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x13b2995f	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x13b3f4d1	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13e9e33d	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x13ee8461	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x13ef1550	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x13f53da6	CMO_PageSize
+EXPORT_SYMBOL	 vmlinux 0x140e4bd6	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x141183e1	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x141ce8f0	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x1425771a	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x1449c618	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x1454f4f2	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x146b632e	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x147a57a0	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x147e0857	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x148516a5	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x14895bfc	stream_open
+EXPORT_SYMBOL	 vmlinux 0x148b8cd5	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x149cd278	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14a2b413	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x14edaff5	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x15096fef	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1522cb9f	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x15389513	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x157d9796	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x158f3626	sock_create
+EXPORT_SYMBOL	 vmlinux 0x158f4b50	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x15a07ae3	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x15b722d6	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x15b949ee	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c4ed4f	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x15d9377a	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x15de554a	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x15e7d700	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x15ea5366	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x15ef29ba	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x160bd45c	rtas_token
+EXPORT_SYMBOL	 vmlinux 0x1615fe84	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x1616c8ce	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x163d414b	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x16436247	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x16464058	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x1650d434	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x166166f5	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x1672dbf2	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x16762288	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x168a311c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16a55e3a	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x16b997a7	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x16ba674f	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x16c0fdeb	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x16c140fe	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x17042bd4	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x17194450	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x1726c2cb	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x17322112	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x17648396	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x1777c00d	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x1793c8d9	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x17acd040	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x17b38f7a	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x17ca4a75	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x17ef3544	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0x17f262d2	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x17f856c7	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x18255c0d	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x1827522b	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x184392f8	pnv_pci_get_npu_dev
+EXPORT_SYMBOL	 vmlinux 0x184c71e0	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x185a116c	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x187c716d	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x18b31662	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x18c162c0	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x18d1671f	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x18d5455d	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x18d797a3	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x18e49c38	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x19140486	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x1932a9a6	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x1937aa87	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x1942ba4b	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x19471c04	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x194e8f08	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x194ef51f	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x196481a6	pci_find_hose_for_OF_device
+EXPORT_SYMBOL	 vmlinux 0x196a5a99	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0x19763ca1	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x19896e4c	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19a76ab4	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x19b16b34	up_read
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19bd8c2a	bdget
+EXPORT_SYMBOL	 vmlinux 0x19ca1f09	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x19d68628	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x19f02579	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x19f2198e	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x1a070c37	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a423c3a	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x1a4b7dbb	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x1a7d40e7	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x1a7e2b2e	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a82f8a8	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x1a949779	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa2b3f1	tlbie_capable
+EXPORT_SYMBOL	 vmlinux 0x1ab58de2	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x1abff1e6	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1ae419c7	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x1aec53ce	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x1af62a99	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b01aef5	pnv_phb_to_cxl_mode
+EXPORT_SYMBOL	 vmlinux 0x1b09edd7	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x1b132009	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x1b3eb1ad	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x1b59c05b	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x1b625d33	enable_kernel_vsx
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b719709	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b80b923	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x1b84e7ee	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x1b87bb15	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1baae9d6	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x1bb3d708	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x1bb55b92	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x1bbebc1e	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x1bc2d4ec	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x1bc78adf	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x1bd1fe63	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bfd41e1	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x1bfec830	__iounmap_at
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c36fa97	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x1c39e8bd	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x1c3e02e4	memcmp
+EXPORT_SYMBOL	 vmlinux 0x1c49e7ab	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x1c5f4612	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x1c6a10af	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x1c7698cb	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x1c7cfdb1	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x1c7ea288	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x1c93e46f	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x1c987150	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x1ca0ed61	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x1ca1b1be	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cbc33d6	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x1cbd4f6d	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0x1cdd8c74	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x1ce4194c	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x1ce6346b	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x1cf7a3e0	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1d03b077	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d473b0e	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x1d669a8b	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x1d8edd01	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x1d9a7c87	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x1da9382a	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x1dbffc2b	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x1dd4fddf	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1dec5138	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x1df64024	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x1dfc697f	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x1dfddab3	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x1e05526b	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x1e05c8b8	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0bf327	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x1e0ff802	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x1e14b981	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x1e1992cc	__memset64
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e2008d8	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x1e23b7bf	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x1e44a757	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x1e59e357	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e69816a	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e749fa8	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x1e875885	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x1e895131	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x1e8dc452	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1e93d367	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x1e963642	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eaf26ac	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x1ec47b55	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1ef67490	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x1f01fc9a	follow_down
+EXPORT_SYMBOL	 vmlinux 0x1f118028	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x1f212178	mach_pseries
+EXPORT_SYMBOL	 vmlinux 0x1f218ce9	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x1f2289f9	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x1f232399	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x1f3297b3	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x1f3299fa	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x1f36fe96	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x1f49fb80	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x1f4bdae5	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x1f561f71	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x1f5cdd61	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x1f79d262	bmap
+EXPORT_SYMBOL	 vmlinux 0x1f8be824	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x1f9683d1	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x1f9723ec	start_tty
+EXPORT_SYMBOL	 vmlinux 0x1fa25e72	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x1fabe876	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x1fac4e71	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x1fb14f9e	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fbfe0cc	ppc_md
+EXPORT_SYMBOL	 vmlinux 0x1fc38f85	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fe75cad	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1feee096	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x1ff8d19c	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x20107acc	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x2015bc2b	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x2026f30e	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x202b890b	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x20354da5	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x204c189f	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x20711139	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x2073f6e7	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x20a76f3e	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20b0b190	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x20d65886	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20ea79e2	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x20eba0bb	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x20f82119	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x2107e5ad	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x210a00c1	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x210dab6c	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x211c6721	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x21526422	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0x21537694	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x21693915	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x217995f7	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x21850c23	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21abdef2	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x21b60242	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21f3631a	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x21f48755	pnv_cxl_release_hwirq_ranges
+EXPORT_SYMBOL	 vmlinux 0x220e6708	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x220effee	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x221c04a0	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x22299871	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x223a9f5f	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x2243dbe1	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x22445679	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x22633bff	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x228147f2	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x2291d57d	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22f9693a	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x2300b1cd	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x2318fdb2	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x23274d99	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x23293475	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x232bfef4	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x2334fcf1	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 vmlinux 0x233db4e5	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x2344d995	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x23551d1e	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x23619cff	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x236efc4f	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x237ba77b	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x238de696	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x23a77a5e	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x23b5b617	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x23b9951a	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c359d3	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23d0c424	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23eeeea6	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x23f6f02b	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x24073d68	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x2415f740	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x2428ed50	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x244b80df	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246ab3a9	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x2484ebf2	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x248ce7c6	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x2495268e	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x249bf53b	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x24be6c4e	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x24c70fd4	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x24ceec15	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e163f3	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x250b1cb0	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x250cb4c7	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x25148d63	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x25205c9c	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL	 vmlinux 0x25396998	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x253a7793	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x254c9287	ioremap
+EXPORT_SYMBOL	 vmlinux 0x254fd79c	vio_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x25c38585	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x25dcbb38	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x25dcfd34	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x25df662e	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x2603a467	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x260a73d8	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x265789f9	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x2676ce90	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x26797ac8	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x268ae860	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x26a0040b	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x26ade7b6	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x26c6bfb4	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x26e0977a	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26f45839	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x27075316	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x270b94d0	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x27210481	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x272a2d24	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x2737a3bb	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x276c786b	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x276d843a	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x27703194	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0x27730864	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277ecee1	down_write
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x278dd67c	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x279cc44f	inet_release
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27be4284	srp_rport_put
+EXPORT_SYMBOL	 vmlinux 0x27bf536a	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27cf3610	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x27f0bbb7	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x27fbe103	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x27fc5ba0	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x28062c55	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x28102e1f	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281d3b0e	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x28356049	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x283c27a1	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0x2860f915	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287a9cf7	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x287f337a	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x28801c9b	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x2891bf40	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x289ba142	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x28c0b11e	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x28e8a475	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x28e8f1aa	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x28f97127	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2911c668	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x2913e214	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x29246bf1	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x292b977d	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x295ea5c9	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x29646fdc	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0x2969da80	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x29832743	__module_get
+EXPORT_SYMBOL	 vmlinux 0x298510ae	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x299b45ed	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x29d2c73f	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x29e079c2	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29fbc7c0	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x2a0e6979	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x2a14afe5	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x2a171a95	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x2a1f6e34	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x2a29e054	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a5e55c1	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x2a631244	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x2a6e8ee2	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x2a90f707	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2a9aac3f	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x2aa4acde	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x2aace2ef	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x2aaf0abf	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x2ab68c3c	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x2abcc164	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x2abd0df3	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x2ad1a606	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x2ad86c44	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x2ad995b2	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x2b043652	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x2b04d424	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x2b07e8b4	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x2b0b24a4	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x2b1120c8	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x2b38b23a	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x2b3e4382	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x2b3f7630	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x2b3fc7c3	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x2b429af2	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x2b62c1e0	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b721b0e	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x2b856c9e	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x2b8820f1	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x2b96027f	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb6bc01	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x2c0092ff	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0x2c037c36	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c2d1fcb	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x2c381188	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x2c43bc9c	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x2c59ac11	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x2c620616	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL	 vmlinux 0x2c65ca19	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x2c67f49c	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x2c6a957f	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x2c753a61	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x2c7b1fca	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2cc875fd	xmon
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cce3b1e	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x2cdcfdfb	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x2ce2e903	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x2ce6b24f	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cff45a5	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d216914	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x2d234377	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d343505	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4bbbe6	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d530193	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x2d53bbb6	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x2d53e169	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x2d56f636	dm_io
+EXPORT_SYMBOL	 vmlinux 0x2d5c2e77	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x2d63bd7e	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x2d795533	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da53871	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x2db15732	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2dc4e156	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x2dc6b005	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x2dc7ed88	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x2dcdea36	chip_to_vas_id
+EXPORT_SYMBOL	 vmlinux 0x2dce19f1	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x2dd27db0	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x2de71e00	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x2df5992a	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x2e152cbb	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e56392f	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x2e951faa	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x2ea0d8e6	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x2ea6f6b4	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x2eb44a73	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2eddd1bd	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2ef67356	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x2efb4fac	proc_create
+EXPORT_SYMBOL	 vmlinux 0x2f000c44	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f098b6c	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x2f0ed1f3	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x2f2352e6	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x2f2b4321	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f321e11	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x2f471831	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x2f4c7f10	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x2f4f11e9	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f60b4a3	seq_write
+EXPORT_SYMBOL	 vmlinux 0x2f744227	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f8f04fd	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x2f992d9f	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x2fac55cc	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x2fae96de	rtas_data_buf_lock
+EXPORT_SYMBOL	 vmlinux 0x2fb1cc1b	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fc78fcc	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x2fcaadd4	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x2fd4da05	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x2fda817e	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fea3a7b	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x3040d7ea	has_capability
+EXPORT_SYMBOL	 vmlinux 0x3040da88	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x3044b529	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x30474615	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x305dcab9	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x3063531b	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x3064b17b	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x3066132e	path_put
+EXPORT_SYMBOL	 vmlinux 0x3071dc8b	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x308006ab	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x308d2162	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30ac8f8c	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b8b35c	cpu_to_chip_id
+EXPORT_SYMBOL	 vmlinux 0x30c28b30	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x30d72495	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x30e8147b	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x314029c0	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x3157516f	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x3161892c	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x3169f160	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x3171bfe0	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x3189f27d	fd_install
+EXPORT_SYMBOL	 vmlinux 0x31d03476	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x31d4f8a9	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x31dc00ee	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x31e8687c	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x32017468	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x3217c3a3	__memset32
+EXPORT_SYMBOL	 vmlinux 0x321e8e13	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x322ef1ab	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3263dcf3	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x327266f8	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3282a508	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x32a56804	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x32a57820	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x32a67f8f	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x32b1708d	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x32b7d5b2	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x32c01bb0	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x32ca0606	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x32cc1731	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32de8679	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x32eef8b5	would_dump
+EXPORT_SYMBOL	 vmlinux 0x32f407e2	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x334ae07e	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x33537dcb	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x335949e7	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x337dca72	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x3388f003	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x33890b71	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x3399fd51	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x339c00ff	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33d788a9	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x33d843bd	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x33e2f352	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fc903d	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x34018c9d	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x3432c94d	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x343f59f1	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3446a234	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x345c8916	strict_msr_control
+EXPORT_SYMBOL	 vmlinux 0x34620190	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x34650194	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34b84508	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x34d4e70a	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0x34ea5727	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0x34eb793b	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f87804	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x35257e6c	epapr_hypercall_start
+EXPORT_SYMBOL	 vmlinux 0x352a8a7c	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x352bb201	xa_store
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x3555d41d	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x355a6e3a	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x3563e01f	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x35702e26	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x3573e0d0	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x35a464ac	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b1c00e	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x35c32767	xor_altivec_2
+EXPORT_SYMBOL	 vmlinux 0x35cc1a05	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x35e2f2e8	dev_open
+EXPORT_SYMBOL	 vmlinux 0x3608b9c5	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x3622d501	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x36806611	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x3686cc96	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x368c6375	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x368ddb38	d_move
+EXPORT_SYMBOL	 vmlinux 0x3692ac27	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0x36b60a43	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x36bf34b1	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x36c7d2fe	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x36e2046a	dput
+EXPORT_SYMBOL	 vmlinux 0x36e34c9b	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x36e653dc	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x36eaafe2	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x37060b58	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x3712e44b	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x371d2130	check_legacy_ioport
+EXPORT_SYMBOL	 vmlinux 0x372884dd	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x372a9e23	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x37383edd	rtas_get_power_level
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3750a907	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x376fdf67	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x37730564	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x37796cc7	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x3785678f	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x37881764	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x379ad624	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b72fb2	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37bb8d35	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37cfcd85	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x37eb6cf9	vio_cmo_set_dev_desired
+EXPORT_SYMBOL	 vmlinux 0x37fb32f1	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x37feef46	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x381c858a	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x3831c979	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x38389bfd	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x3840bfe4	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x3857b589	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x38649190	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x386556e2	mntget
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38a24367	follow_up
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b4fdb4	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x38c8cf54	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x38c974dd	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x38d12037	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x38eec35a	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x38fb6f7e	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x38fb9933	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x39057602	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x391087f4	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x39143c9e	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x392d2da3	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x3935b07e	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x393a0c88	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x393e19c1	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x39501378	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x396e9b66	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x397267ca	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x39796f33	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x397cf77b	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x39937346	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39b23f11	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39b8945a	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x39cd75c0	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x39d91206	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x39e08566	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x39e22964	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x39e774f7	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x39f9e18c	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a5277d3	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x3a5724f4	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x3a578d51	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x3a5f5821	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x3a6152bb	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x3a669396	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x3a670ea1	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x3a6a50dd	radix__flush_all_mm
+EXPORT_SYMBOL	 vmlinux 0x3a82425a	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x3a875620	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x3a8bc135	dqput
+EXPORT_SYMBOL	 vmlinux 0x3a8cb60c	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x3ab28874	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0x3ab3ddc4	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3abeb36e	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x3afeda3a	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x3b079ce9	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b592c47	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b6fa7ac	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x3b702847	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x3b8e7809	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x3b931df6	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x3b9f0895	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x3ba382e0	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x3bae7011	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x3bb5c13f	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x3bd19c6f	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x3be08044	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x3be1100a	seq_open
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c0354bf	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x3c0712a9	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x3c0a9d1c	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c2b38fe	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c4611d7	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x3c4d89c8	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x3c533114	module_layout
+EXPORT_SYMBOL	 vmlinux 0x3c565564	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x3c7137d4	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c90254c	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x3caacef6	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x3cb37157	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0x3cc4cb8a	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3d108a97	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x3d1b25e1	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x3d1b570b	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x3d1fef40	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x3d226335	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x3d2a2905	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x3d451d89	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5a10a8	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x3d61ee6f	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x3d7caeda	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x3d8336f5	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0x3da216e0	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dae4e7e	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x3dc1f7ac	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3df31452	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfbd3af	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e240331	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e4b78bc	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x3e6245a1	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x3e65a90c	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x3e740459	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x3e7bef40	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x3e8caa3f	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ea6a20f	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x3eb519fd	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x3ed5e453	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f034898	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f18e3a0	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x3f275737	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0x3f2b19f0	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x3f406a3b	enable_kernel_altivec
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f665e49	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x3f6b8f64	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x3f7d378c	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3fa0136f	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc6fa79	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fdc8c17	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3ff2b1ae	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x400db5af	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x402355be	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x4055d56a	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 vmlinux 0x405fb2fe	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x4060144d	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x406b6c6b	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x40717d82	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x40818238	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x40a898a8	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40e2a247	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x40e43f99	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x410c6a9e	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x411ea02c	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x41330261	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x41660eb8	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0x416f8f52	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x418272cc	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x4196fed2	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x41ae718a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x41b02662	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x41ba75d2	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x41e7640a	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x41f6918c	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x41fd5ddc	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x422a503a	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x42369370	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424ae89c	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424e28b3	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x42544627	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x42708164	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x427add7a	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x428fe4b1	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0x4292f50c	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x42998729	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x42aaf4fb	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x42ab661f	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x42c8c94e	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x42e08a11	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x42ee2183	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x42f030bd	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x430b622d	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x430bed85	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x432284e9	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x433274f4	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x4345953c	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x434a75ad	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x4353900a	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x437d653f	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x438624e4	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x43a4938f	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x43a946c0	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x43be1c11	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x43e93082	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x43ec84ca	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x4422ea7d	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x4448aab2	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x4448cdef	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x445721a1	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x4461f864	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x44631d57	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x446955a8	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x446e736e	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x44773152	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x447a1bfe	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x4488bc8a	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x449ffc36	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x44b69ee5	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x44b7fb43	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x44b93cd1	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x44e03d3a	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x44e902fb	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44f2e307	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x44f9ee63	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x44fc2b62	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x44fe3c6f	dump_align
+EXPORT_SYMBOL	 vmlinux 0x44fea6c1	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450aef24	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x450bd37e	__pmd_index_size
+EXPORT_SYMBOL	 vmlinux 0x450d640b	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x450dc478	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x451165b3	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x45130f90	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x452287df	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0x452958ea	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x45420ea8	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x4543531b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x4544a9b9	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x45571240	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x4587d31e	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x45aeeeb2	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x45be4e72	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x45f099b4	machine_id
+EXPORT_SYMBOL	 vmlinux 0x45fcc91d	audit_log
+EXPORT_SYMBOL	 vmlinux 0x46001d34	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x4612c59d	down_trylock
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x461ebfa0	__copy_tofrom_user
+EXPORT_SYMBOL	 vmlinux 0x4622a8a5	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x46344776	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x464795a9	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x4652f4c3	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x465b25f7	serio_open
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x466f60c9	console_stop
+EXPORT_SYMBOL	 vmlinux 0x4674ec42	__pgd_val_bits
+EXPORT_SYMBOL	 vmlinux 0x4676a227	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x4699fca0	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46a635f5	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x46b53db3	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x46b6e768	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46e30a34	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x46f9f2b5	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0x471e6024	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x4720e362	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x472cd19b	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x47420c43	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x47450deb	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x47650dc9	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x479274aa	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47b9c052	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x47c43cfe	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x47c48af3	store_fp_state
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47cb51c7	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x47cdac63	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x47d74a55	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x47ea7a65	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x47f42bb1	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x48038a84	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x4827edfd	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x4829a47e	memcpy
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x482d2ecd	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x482f1afb	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x483ff55e	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x484002cd	udp_set_csum
+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 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486c17db	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x4873030c	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x487d3624	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x4881d284	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48af54b0	drop_super
+EXPORT_SYMBOL	 vmlinux 0x48af7242	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x490375e8	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x4939da9e	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493dcdb3	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x49423c3e	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x49490ba2	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0x4951469b	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x4974a2f6	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x497cd43c	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x497f8c79	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499bfc6d	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49a47001	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x49b9521c	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x49c27b3a	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x49d3aa3f	pps_event
+EXPORT_SYMBOL	 vmlinux 0x49d796de	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x49dc3eb2	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x49e9ba7c	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x49ee7d72	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x4a1f1c98	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x4a44ed22	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a45ee27	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x4a4f95e1	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x4a558af2	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x4a55c8ea	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x4a67bf7e	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x4a7ffd4e	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x4a85b4ca	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x4a95dd42	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4aa394ea	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x4ab19a4c	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x4ab422b4	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x4ac6c367	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x4ac874af	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x4ad2a57a	opal_event_request
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4aed17d7	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x4aef39cb	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b182c36	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x4b2323be	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x4b371cd2	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x4b5dda6d	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b698a52	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x4b904dd3	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x4b9b5cdd	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x4ba37acd	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bc6579f	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf51bc6	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x4bf80376	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x4c04231c	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x4c11435a	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x4c359dd7	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c39c70d	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x4c3a60c1	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x4c40f28b	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c579812	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x4c641c46	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x4c8c9d6d	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0x4c956e49	vio_find_node
+EXPORT_SYMBOL	 vmlinux 0x4c96b0f6	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x4c9ca944	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0x4ca6c260	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x4ca6ef6c	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x4ca74e97	powerpc_debugfs_root
+EXPORT_SYMBOL	 vmlinux 0x4caf4509	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc3bbbb	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0x4cc6534b	cpu_l2_cache_map
+EXPORT_SYMBOL	 vmlinux 0x4cd5ac77	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x4ce4c8f6	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x4ceaa7ad	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x4cf36dc4	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x4d0d913d	file_modified
+EXPORT_SYMBOL	 vmlinux 0x4d0dc154	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x4d10a218	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x4d49b83e	console_start
+EXPORT_SYMBOL	 vmlinux 0x4d548858	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d6d0779	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d7d56b8	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x4d865c5f	vio_register_device_node
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d93ce17	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d98c777	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9fe191	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x4db674bd	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x4db6e45c	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x4dc9b121	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x4dce0735	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x4dd2d8a9	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4dfbd3f0	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x4e0c992f	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x4e203078	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x4e297335	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x4e305482	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e6353ee	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e9ab34e	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x4eae22e4	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x4eb76cd0	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x4eb7ae3d	hvc_get_chars
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ed92a61	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x4ee55e22	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f34e05e	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x4f351ed9	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x4f4b5523	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x4f5173f5	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x4f5623d0	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x4f720eb4	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x4f8807d3	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x4f9f6472	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x4fa65563	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x4ff653f2	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x500a7f5f	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x500cdb93	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x50134e4c	dst_init
+EXPORT_SYMBOL	 vmlinux 0x50525107	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50728839	free_task
+EXPORT_SYMBOL	 vmlinux 0x5079c9d7	__pte_index_size
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50f45ff4	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x50f54b03	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5109e80e	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x512f7df0	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x51326f99	bio_init
+EXPORT_SYMBOL	 vmlinux 0x515e8a05	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x5162c00d	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x5162ec64	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x5171b7b0	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x51850950	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x51a1ab47	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x51ab67fa	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x51c06a26	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x51c309d8	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x5200f480	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x5210e547	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x521db7b9	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x52433db9	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0x524984a2	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x5254dbfc	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x528149f8	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52b27f89	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x52bc1aa2	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x52c49456	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x52cb1441	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x52cb4815	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52fad299	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x5308e350	__vmalloc_start
+EXPORT_SYMBOL	 vmlinux 0x5308efbf	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x530a9808	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x530bce84	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x530ca31e	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x530d590e	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x531ca465	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x532dc211	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x532f6b3b	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x5333bba5	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x5348d819	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x5349056a	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x53673f00	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x539414ee	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x53951a5a	filp_open
+EXPORT_SYMBOL	 vmlinux 0x53b50b2a	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x53c18055	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x53dc0c1d	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x53dec10c	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x53ebb731	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x53f87178	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x5412c7c7	up
+EXPORT_SYMBOL	 vmlinux 0x54156af6	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x542a1e56	vga_put
+EXPORT_SYMBOL	 vmlinux 0x5431f195	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x543c1da9	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x543c423d	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x5441e5e6	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x545bb54d	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x5464d8cf	flush_all_to_thread
+EXPORT_SYMBOL	 vmlinux 0x546508c2	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x5465c391	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x546bf2dd	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x54762a15	kset_register
+EXPORT_SYMBOL	 vmlinux 0x54922a14	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x54a0ed34	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x54a1f9e7	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54abe92a	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x54b5ffdf	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x54cbae37	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x54d0af60	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x54e08824	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x54e3d5fd	__pmd_frag_nr
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x55135e35	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x5513e1e2	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x553dc0e5	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x554ab2c4	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x5550b798	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x5555d6ac	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x555e66dd	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x55686530	__arch_clear_user
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556dab3d	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x5574a982	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x557b3046	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x55865a43	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x5591bbf8	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x55e2d16e	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e4121c	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x55e5ee64	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x560aadd0	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x560bd190	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x56232576	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x562e9776	fsl_lbc_find
+EXPORT_SYMBOL	 vmlinux 0x56311c75	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56455865	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x56672f6a	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x567307c4	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x56974971	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x569f592a	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x56aa97e8	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x56aaf732	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x56ac2a7c	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x56ae7292	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x56c2b95b	rtas_progress
+EXPORT_SYMBOL	 vmlinux 0x56c39e63	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56cdf384	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x56dd3813	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0x56f6c7de	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x56fa8fdc	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x570695c2	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x571523f7	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x5728c71a	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x572ae748	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x574fa49b	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x5754a545	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x575f91be	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x57630dcf	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x577c3bb6	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x57a62c7e	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x57a6c4ea	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x57a88044	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x57bf6464	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x57c5e919	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x57d30f29	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x57d32388	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x57fbd52d	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x58473673	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x5862731b	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x58762389	set_groups
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x590fb93b	sget
+EXPORT_SYMBOL	 vmlinux 0x590fde8a	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x5927a6a6	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x592b0357	iput
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x5954acb6	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x595b01fd	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x595d0946	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x59685cfb	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x59894fa7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x598f2277	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59b1998b	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x59b2469e	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x59b3f0ce	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59eccf51	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x5a00792d	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x5a025f7b	arch_local_irq_restore
+EXPORT_SYMBOL	 vmlinux 0x5a088923	up_write
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a17d2ed	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x5a2514aa	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x5a3bcaa4	bio_put
+EXPORT_SYMBOL	 vmlinux 0x5a3e6a78	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a57125b	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x5a59d001	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x5a644d24	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x5a651e31	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a9f1d63	memmove
+EXPORT_SYMBOL	 vmlinux 0x5aafd4ae	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x5abd932a	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x5ac0b656	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x5ad4bb9c	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x5adc8346	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x5b239a89	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3ae3c9	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x5b3f1fe9	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x5b43f1f1	rtas_service_present
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b667354	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x5b6c5798	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x5b760467	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x5b7f4192	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x5b9828c5	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x5baad735	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x5bb4c0c3	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x5bb9fa81	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x5bc4ca0b	release_pages
+EXPORT_SYMBOL	 vmlinux 0x5bcc4914	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x5be155a7	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bf10c10	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x5c0c02a7	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x5c122ac6	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x5c235d58	read_code
+EXPORT_SYMBOL	 vmlinux 0x5c37f319	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x5c41e9af	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c5bee90	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x5c5c4ed7	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x5c83a3d7	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x5c8afc5e	notify_change
+EXPORT_SYMBOL	 vmlinux 0x5c950994	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x5ca1ac9e	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x5cb77ae1	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x5cc7a6ee	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x5cd1c74d	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x5cd87850	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d08178f	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x5d439eb4	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d58441d	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x5d631530	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x5d78542b	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x5d7ce00a	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d8cda22	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5db780e7	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x5df49be6	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x5df80f1c	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e01915a	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x5e0791e4	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x5e20f545	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e386c5f	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x5e3c3b69	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0x5e5530ac	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x5e563574	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x5e65e2e9	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5e970b8f	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x5ea2fb44	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5eddb914	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0x5efb44b9	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x5efe54ad	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f12c9fe	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x5f12fab7	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x5f1e4dd0	skb_split
+EXPORT_SYMBOL	 vmlinux 0x5f24dd1a	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x5f4dea18	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x5f5171da	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x5f5525ea	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x5f59bc90	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f8606fd	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x5f8651ad	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x5f8a2728	isa_io_base
+EXPORT_SYMBOL	 vmlinux 0x5fb516f8	xa_find
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fd8b548	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x5ff2010b	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x6008f46b	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x60106877	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x6012e04b	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0x6016531a	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x604b8a3d	seq_path
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x608082e6	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60b359ac	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60f16029	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x60f3d62a	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x6108405b	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x6121bd54	dql_init
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x6141abd9	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x614a5782	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x6156efeb	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x618d7165	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c005b1	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x61d1502e	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x61d589ff	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x61dd705c	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x61e8a5db	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x621de744	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x62251ea4	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x6225e098	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x622b0189	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x62381eb7	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x62394009	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x625e2a87	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x6264157c	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x6280f5d8	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x6296f920	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x62a51144	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x62ad0d48	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x62bab082	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x62beaf4a	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c61fbe	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x62e238c7	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x62eb5459	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x631d8b37	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x6330cf90	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x633b4b87	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x635d4ba6	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x639ac778	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x639e9824	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63b3e956	f_setown
+EXPORT_SYMBOL	 vmlinux 0x63bffd8e	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63de5bd8	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x63e002ac	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x63e24f18	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x63eb2c98	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x64180e9a	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x642362d8	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64499209	open_exec
+EXPORT_SYMBOL	 vmlinux 0x64649f0f	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x6468e2a8	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x646bf661	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x64831cb8	xa_extract
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x6490f95c	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b7c3bd	vga_con
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64c5ab41	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x64d23467	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x64e084fd	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x65284857	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x653860ab	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x653c1139	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x65406151	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x65596247	key_move
+EXPORT_SYMBOL	 vmlinux 0x655bc2c7	ihold
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x656e78df	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x657b9994	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x658b1a4d	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659946cf	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65bb58a2	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d8099b	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0x65d8cd66	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x65f4d98d	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x660c0411	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x660c7df0	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x661850d0	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x663448ca	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x66578612	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x665f5aa1	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x66778518	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x668120ef	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x66ac513e	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x66b45cbf	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66b67d5d	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x66bb3cb9	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x66c5282d	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x66d760e1	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66f80411	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x66fe1b6a	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x677d6ab9	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x6788c45f	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x67a03bf4	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x67a2391e	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c53e6e	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x67c782be	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x67cf7d68	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x67d52c44	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x67d5eb22	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x67f3d52d	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x67f468e7	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x67fc472c	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0x680a8279	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x680d2600	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x680fd43f	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x6828ca7e	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x685687b0	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x68624a6a	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x686818bb	down_read
+EXPORT_SYMBOL	 vmlinux 0x686ffeb1	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x68764785	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68940b91	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x68941f7d	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x6899c8c6	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68e46be5	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x68fd7abb	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x68feea0a	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x6909440b	__pgd_table_size
+EXPORT_SYMBOL	 vmlinux 0x690a655f	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x690a97f8	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x691d31a9	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x693c8bac	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x69436cfe	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x69601e97	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x697c46ca	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x698fbab4	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69bd76ce	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x69d07925	vio_enable_interrupts
+EXPORT_SYMBOL	 vmlinux 0x69d8a649	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69deebdf	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x69ff00c5	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a141713	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x6a4af024	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5d3445	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a683062	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x6a6d40c4	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x6a760b6f	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6aac5091	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x6ac096d7	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x6ade6454	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6af54a26	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x6b28fdb2	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x6b2915f8	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5940a5	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5c7ea6	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b7dab84	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b863bb7	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b8e5b1e	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x6b93f453	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x6bc2e2de	arch_free_page
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bcdf7ab	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x6bd86339	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x6bdc127c	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x6be94ed4	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x6bea141b	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x6bf69d9b	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x6bf6bafd	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c28b267	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c3372f2	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x6c439543	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x6c53cbd5	arp_send
+EXPORT_SYMBOL	 vmlinux 0x6c5b164a	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c642d7a	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x6c670608	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x6c765f75	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x6c8ad3d4	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6c956fb7	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x6c9e036b	user_path_create
+EXPORT_SYMBOL	 vmlinux 0x6cb319da	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cb48887	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x6cb978bb	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x6ccafb9f	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x6cd2e0dd	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x6ceb17b0	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d0441d7	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d36d972	can_nice
+EXPORT_SYMBOL	 vmlinux 0x6d44b3b0	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x6d4a4878	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x6d4ff5ee	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x6d52be0a	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d6212f9	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x6d63a64e	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x6d6fcc9f	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x6d789746	mntput
+EXPORT_SYMBOL	 vmlinux 0x6d9c8fb7	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x6da476a7	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x6dafd2f0	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x6dc88fa4	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x6dcbc0c1	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd28a6f	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x6de0615a	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x6ded0c33	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e0ab7c1	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x6e15aa74	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e5bd395	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x6e70bc51	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e86ee5a	radix__flush_tlb_pwc
+EXPORT_SYMBOL	 vmlinux 0x6e9a448d	__pte_frag_nr
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea42f61	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee1a82d	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x6ef32fc3	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x6f08b1c6	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x6f1283ee	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f2a4f98	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x6f2ee938	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x6f351bf5	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x6f4ec073	kobject_put
+EXPORT_SYMBOL	 vmlinux 0x6f6eed3f	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x6f71e581	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6f77cf68	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f8ffdc5	srp_timed_out
+EXPORT_SYMBOL	 vmlinux 0x6f900f63	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x6f978405	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd71a20	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdb9157	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6ff89819	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x6ffc3751	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70064eb9	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x70092b63	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x703028d0	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x7040cee1	radix__local_flush_tlb_mm
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x70641418	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x70794e23	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x708416d4	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x709d364d	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x70b2d304	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x70b9f1e3	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x70c46d50	radix__flush_pmd_tlb_range
+EXPORT_SYMBOL	 vmlinux 0x70c71529	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x70d4c0cf	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x70d9058e	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x70fb9a13	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x71083ee3	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x71093613	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x71128ac8	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x712803c3	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x7131353b	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x7131bf58	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x71380ac8	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x7138d6a0	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x713d06ff	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7153c7c1	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x715d0c36	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x7172ee2c	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x7180dd4d	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x7187bec7	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71f6f04a	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x7216235a	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x72184791	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x724792b2	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x7248af69	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72608c0e	do_uaccess_flush
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x7289189c	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x7291c1ad	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72c98139	__arch_hweight64
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x73113e66	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731a747a	pci_io_base
+EXPORT_SYMBOL	 vmlinux 0x731e5562	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x732b1a29	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x7338f5a7	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x7339f434	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x7357cc64	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x7359e7e5	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x736d891a	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x738c06cf	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x739d946c	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x73a0ed2a	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x73a94d78	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x73ac5bfa	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x73d43841	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x73e50395	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x740822a0	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x740c719f	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413289e	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x7414a5e5	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x74209f11	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x7439fd86	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x7467b687	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74865054	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x74946840	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x74a09d2d	fput
+EXPORT_SYMBOL	 vmlinux 0x74b0340a	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74c3d139	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f1cd69	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x75058194	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x7505c775	__ioremap_at
+EXPORT_SYMBOL	 vmlinux 0x7506ede3	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x751910db	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x7528afd8	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x7531043c	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x7533867d	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x753463b1	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x75412b99	load_nls
+EXPORT_SYMBOL	 vmlinux 0x7546f243	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x754f9a57	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x757dc8ab	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x75a91d97	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x75aa6ca1	__kernel_virt_start
+EXPORT_SYMBOL	 vmlinux 0x75af1f63	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x75b56c79	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x75b6ca6c	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x75bb487f	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75e3fd49	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x75e7947e	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x75f1d6a0	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x7617a6db	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x763d3ccd	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x7651fb52	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x7682b414	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76aa45d3	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x76c2a45b	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76de7b57	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x76f9745e	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x7704f2ca	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x77234d37	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x772b0eab	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773dd750	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x774925b5	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x7775e979	key_put
+EXPORT_SYMBOL	 vmlinux 0x77795a50	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779f1c30	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x77ad72ce	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77d18e87	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x77d985eb	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0x77df031c	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x77e568b2	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f4965b	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x77f77786	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780e32e6	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x7818cfcd	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0x781d11c8	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x781f1f7e	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x78231551	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x7824cd9b	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x78270d33	md_error
+EXPORT_SYMBOL	 vmlinux 0x783ff553	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x7857ee46	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x786f0b48	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x78721e7c	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x788065d2	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x78851d2f	_outsb
+EXPORT_SYMBOL	 vmlinux 0x788ec9f8	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x7893d34f	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a9e905	_numa_mem_
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x7902f66c	__brelse
+EXPORT_SYMBOL	 vmlinux 0x790c01b9	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x79253d56	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x794061a8	of_scan_pci_bridge
+EXPORT_SYMBOL	 vmlinux 0x795c282c	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x796dc718	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7978cfab	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0x7983607f	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79ae422b	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x79c3d1f9	__free_pages
+EXPORT_SYMBOL	 vmlinux 0x79dc4678	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x79df863f	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x79dfe16e	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x79f393f0	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x79f652f8	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x7a08ee6e	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a0f9af3	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a264166	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x7a286ae3	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x7a2e1af7	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x7a36533d	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a4898d3	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x7a71741f	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7a7de0d6	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x7a95d4c9	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7a9d083a	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x7a9d4a79	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab5f8c3	_insw_ns
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7aba86db	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x7ac6b14a	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ae5bf25	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x7af5661e	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b0c7dc1	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x7b15c9b2	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x7b225ef0	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x7b2c7226	uaccess_flush_key
+EXPORT_SYMBOL	 vmlinux 0x7b3c31b6	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x7b5771fc	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x7b624cbd	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x7b62a432	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x7b7a7d8a	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x7b86e4e2	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x7ba14f9c	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x7ba52536	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bd8f50d	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x7bdb61d1	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x7bdeecda	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x7be67a22	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x7be6e988	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x7bf6fe1a	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x7c003aef	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x7c0f0455	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c2c5ffd	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c46e9b4	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x7c54ef87	of_match_device
+EXPORT_SYMBOL	 vmlinux 0x7c63a098	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x7c6b1a87	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x7c6d5612	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x7c83b554	single_open
+EXPORT_SYMBOL	 vmlinux 0x7c90777c	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x7c9159f6	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x7c9291d1	csum_partial_copy_generic
+EXPORT_SYMBOL	 vmlinux 0x7c9aa2db	ilookup
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7c9d7dee	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x7c9e05ef	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x7ca6e7c4	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x7cade717	km_report
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cb2a7f6	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x7cd46330	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x7cda0381	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce4fae8	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d000515	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d11beb0	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x7d138261	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x7d3a7800	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x7d44a2d0	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x7d473867	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d56a050	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x7d59eef3	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d663b0a	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x7d6e0f7f	release_sock
+EXPORT_SYMBOL	 vmlinux 0x7daab00e	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dc97879	rtas_get_error_log_max
+EXPORT_SYMBOL	 vmlinux 0x7dcb6c66	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x7dd59ed2	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x7de440c0	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7dfc8277	isa_mem_base
+EXPORT_SYMBOL	 vmlinux 0x7e1d4010	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x7e2bb538	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x7e2cac07	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x7e2d6436	ida_free
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e5c7a6c	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x7e70e777	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x7e750d09	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x7ea4c8f7	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x7eb25772	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x7ebd31f7	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x7ebf5409	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x7ec39d1a	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x7ec47fc1	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x7ef2d9de	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x7f002ca7	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f12f467	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x7f1aee88	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f3da399	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x7f4bac09	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f58c667	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f5e803f	filp_close
+EXPORT_SYMBOL	 vmlinux 0x7f71fb97	xa_load
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f8980e7	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x7f9d67eb	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x7fa613a1	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x7faa17eb	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x7fd849db	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x7fdd66fe	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x8030bb37	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0x803c503a	dns_query
+EXPORT_SYMBOL	 vmlinux 0x80400674	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x8048a93b	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x805084f9	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x8053e86e	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x805ad431	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x805ef250	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x80741e7f	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x80760a6b	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x808d0cf9	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x8093e427	eth_header
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80afa8e9	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80ce125f	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x80d67c68	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80e135c2	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x80e614ac	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x80ec902f	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x8105cc86	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x810b1c28	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x813d2871	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x8149844d	__put_page
+EXPORT_SYMBOL	 vmlinux 0x814ac4a8	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0x815020ae	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x8168ed9d	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x816af296	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x8175bffd	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x817fcc1f	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81916a58	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x81a07f4e	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x81a1b895	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x81ae9f7b	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x81c0a84f	rtas_set_indicator
+EXPORT_SYMBOL	 vmlinux 0x81c471a0	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x81c6c905	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x81c9dc58	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81df8802	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x81eb8de8	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x81eb9791	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x81f76b4c	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x81fec400	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x81ff7bfb	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x81ffd32c	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x821559d6	__vmalloc_end
+EXPORT_SYMBOL	 vmlinux 0x8235495c	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x825081a4	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x826a07d2	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x82aa75d9	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82caec6e	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x830107fc	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0x83152653	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x8328bbec	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x832f1c60	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x836b3088	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x836ba04c	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x836f1c58	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0x83722383	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x8377e3df	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x837ec90f	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x838243c8	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83a4fffe	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x83b0e9fd	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83d6bcd1	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x83f7504a	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x83f76334	pnv_cxl_ioda_msi_setup
+EXPORT_SYMBOL	 vmlinux 0x83f7cd3c	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x83f9521c	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8402af40	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x84156834	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x841c95bb	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x84202122	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x8429a5c1	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x8448c2c8	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x8485c01b	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x8485cdf5	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x8487dc77	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x849fe807	csum_and_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x84a45f64	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x84a65448	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x84bd69bf	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x84c790b2	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x84db3dcd	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x84dd6b13	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x84f3c134	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x85240323	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x85250ccc	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0x853793b5	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x853f1502	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x854752ed	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x8547aac4	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x8553993e	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8588ebd9	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x8597eb47	plpar_hcall
+EXPORT_SYMBOL	 vmlinux 0x85a5ef92	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x85ab7157	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x85b021ab	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85b806bb	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x85bb8ac7	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x85bbba29	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85daf294	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x85db7cb8	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e9f9e8	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fff59a	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x8619768e	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x861b63f2	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x8627b2d5	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x8632a518	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863d2736	vga_get
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x8650f96a	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x8673a8ed	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86a84f83	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x86b1026f	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x86b18094	complete
+EXPORT_SYMBOL	 vmlinux 0x86b25850	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x86cf3785	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x86db1cbb	rtas_flash_term_hook
+EXPORT_SYMBOL	 vmlinux 0x86df3a4c	of_node_get
+EXPORT_SYMBOL	 vmlinux 0x86e2ae89	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x86e97858	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x86fedd71	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0x86ffe293	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x870366ae	pci_domain_nr
+EXPORT_SYMBOL	 vmlinux 0x871d90ef	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x872a4493	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x872a5283	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x873a53ea	__arch_hweight8
+EXPORT_SYMBOL	 vmlinux 0x874eb0e9	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x874f53a2	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x8754308c	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x8756c914	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x8762bd36	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x8767b41e	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x878b12b8	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x87b28414	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87cb7231	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x87d01024	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x87dbdcdd	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x87dbf9c6	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x87ddcf34	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x87e54312	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x87ed57d5	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x87ee4596	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x87f4116f	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881ced11	simple_link
+EXPORT_SYMBOL	 vmlinux 0x88232160	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x88398c77	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x88466a2b	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x8860ca51	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x8877897e	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88993295	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88b75049	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x88bf96b9	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x88c5caa4	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x88cd7191	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88dd1f8c	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88ff3cd0	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x89151a15	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x8923a72c	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x893030ca	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x894018e4	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x89454ce5	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x895577b0	numa_cpu_lookup_table
+EXPORT_SYMBOL	 vmlinux 0x896b7d3d	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x89797060	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x897f78a0	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x8987f2b3	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x89898459	kvm_irq_bypass
+EXPORT_SYMBOL	 vmlinux 0x898c6504	flush_dcache_icache_page
+EXPORT_SYMBOL	 vmlinux 0x8994fde3	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x89a5f4cb	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x89a97bf4	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x89b0f5c1	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89b58f1a	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x89b81976	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x89d20dc5	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x89d6cbe0	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x89fc22c2	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x89feaf92	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x8a0f797a	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a3ea48a	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a54050b	__pud_cache_index
+EXPORT_SYMBOL	 vmlinux 0x8a696dbe	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c0ae6	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a829fe4	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8a9fae93	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x8aa040f0	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x8aa98510	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x8aad041a	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x8aad7e05	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x8ab231b4	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x8ac0a2f8	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac3bb12	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad39905	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x8ad4a91e	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x8af118ff	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x8afb40d6	simple_open
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b09929d	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x8b29618d	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x8b30f3ab	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x8b50f988	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b6d9a7a	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x8b70bfcf	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x8b7a97c2	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b95ba41	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba13ee6	current_time
+EXPORT_SYMBOL	 vmlinux 0x8bb42722	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x8bcd934b	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x8bcfcc19	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x8bd3661a	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x8bdaa8d3	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x8bded847	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x8be254d5	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x8be70e62	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x8be7a061	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x8be96b51	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x8bee4fe2	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x8bf104d3	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x8c13c4b2	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x8c323888	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0x8c3b072b	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x8c49b706	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x8c72421c	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x8c80633b	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x8c8a98ac	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x8c8e5243	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x8c913cdf	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x8ca45fb9	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x8ca588a3	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x8caba4ab	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x8cac02db	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8cb05ec4	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x8cb796f4	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x8cbff3f9	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cf00c12	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x8cf7e3ef	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0x8d0a8de0	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0x8d0aef6d	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x8d0af4d0	fget
+EXPORT_SYMBOL	 vmlinux 0x8d19f889	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x8d25337f	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x8d2753bc	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x8d38f914	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x8d45e97a	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x8d4bc91d	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d66697a	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d7a39e0	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x8d8c7699	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x8d9c94de	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x8dd63c6c	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de2b2ae	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x8df1bf74	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8e04a5b4	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x8e1fb1a1	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e39b00d	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x8e47e27f	nvm_register
+EXPORT_SYMBOL	 vmlinux 0x8e68979c	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x8e8cfa83	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x8e9203c7	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x8e97cbda	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x8e98eaf2	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x8eac3d17	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x8eb4c6fc	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x8ec04552	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x8ecd08ed	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x8ed7cec2	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x8eeed5f4	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x8ef1ceb2	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f037bbb	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x8f063543	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x8f5b2ce1	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x8f6740a0	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f68da79	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x8f69549b	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x8f6ce4c1	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x8f76d815	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x8f7fc70a	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x8f875d94	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9d76e0	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fbecba6	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x8fc82a34	seq_read
+EXPORT_SYMBOL	 vmlinux 0x8fcd1552	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x8fe6efd2	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ff950b5	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x9023361b	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x903af7d1	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x90423f20	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x90453489	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x9047e9f1	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x905a76f3	tso_start
+EXPORT_SYMBOL	 vmlinux 0x9068fe0f	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x90696e65	bio_split
+EXPORT_SYMBOL	 vmlinux 0x90702f84	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x909854d7	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x90b6ed35	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x90b99886	get_acl
+EXPORT_SYMBOL	 vmlinux 0x90da69d7	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x90f46676	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x90fd672d	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x910f5a03	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x91146ad7	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x9119e56d	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x912557ce	rtas_busy_delay
+EXPORT_SYMBOL	 vmlinux 0x91291645	kvmppc_hv_find_lock_hpte
+EXPORT_SYMBOL	 vmlinux 0x9132c484	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x91372669	km_query
+EXPORT_SYMBOL	 vmlinux 0x914486a7	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x915e1208	tb_ticks_per_usec
+EXPORT_SYMBOL	 vmlinux 0x915faa81	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9168c033	rtas_get_sensor
+EXPORT_SYMBOL	 vmlinux 0x916feaa6	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x9173af34	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x9193fa70	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x919d1163	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91ba1ad1	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x91ed43fe	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x9218053b	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x92243a90	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x92369523	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x92508423	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x92588be8	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x925d89d3	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x927fb25b	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92ae043b	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c9dc25	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x92dfc85c	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930b24da	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x930ef8bc	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x9310ab61	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x932683b8	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x932eec1b	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x93411a40	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x93422247	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x9342fede	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x9346aa05	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x934e72e9	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x934f3719	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x935790b3	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x935c891e	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x9363b47c	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c63cb7	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x93cbcb8f	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0x93ceceb6	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x93d01978	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x93dc25f7	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x93eb26ca	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x93f240e7	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x93fcf301	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x940e3933	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x943dc80f	csum_and_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x94630936	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x94667988	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x9495161c	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x949b1c05	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x94a5fd84	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c518a4	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x94c6d336	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x94ee54ec	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x94f4d2d4	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x94fd82b7	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x9501709a	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x9512e473	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x9514151a	_mcount
+EXPORT_SYMBOL	 vmlinux 0x9522ab62	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x953d9946	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x95527dee	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95a9e6f8	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x95b99e08	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x95c9d001	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x95ccf690	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x95d1eecd	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x95d6ac5b	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x95da5704	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x960aa52e	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x961f7880	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x963a4a45	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x964ca7fd	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x965abe33	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x966a28b2	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x96873651	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x969987fc	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96b4e0e6	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x96bced02	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c9e737	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96ce61e9	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x96d5f4d3	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x9713814c	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x971693be	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x971ec27c	hvc_put_chars
+EXPORT_SYMBOL	 vmlinux 0x97208346	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x972c946f	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x973c09e5	__pgd_index_size
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x974d0ce8	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0x976795ae	find_vma
+EXPORT_SYMBOL	 vmlinux 0x978caf79	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97964edd	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c81c41	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x97f03d6f	vio_cmo_entitlement_update
+EXPORT_SYMBOL	 vmlinux 0x9817dbf0	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x981cf02b	giveup_all
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x982ded29	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x98487216	mach_powernv
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x984f1758	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x985b14fd	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x9878ac5f	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x9881b7ef	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0x9898a2eb	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cf60b3	strlen
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x9900e3a5	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x9908efd3	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x9928af54	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x993881ce	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x99547972	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x99572f7d	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x995f2ef0	node_data
+EXPORT_SYMBOL	 vmlinux 0x996218de	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x998ca45c	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x998e755b	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x9990c6a1	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99a33299	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x99afe916	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99f3fa38	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x9a0af497	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x9a0bb355	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a15625f	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a3139e0	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x9a3b0185	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0x9a3db4e2	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a5eff3f	vmemmap
+EXPORT_SYMBOL	 vmlinux 0x9a63d019	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a7def6b	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x9a941924	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x9aab6f24	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ac55738	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x9acc0157	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x9ad2f601	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x9ad9a4e9	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x9afa7c65	sock_release
+EXPORT_SYMBOL	 vmlinux 0x9b0dc1b1	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x9b1630d6	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x9b17da0e	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0x9b19f965	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b3f7761	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x9b413271	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b52b051	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x9b586531	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x9b7027d9	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x9b74a15e	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x9bb34f3d	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x9bc8a832	__debugger_break_match
+EXPORT_SYMBOL	 vmlinux 0x9bd53e3d	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x9bf5a81c	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x9c1f6809	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x9c20699a	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x9c317709	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x9c4f6817	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x9c66d866	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x9c7d2d6f	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x9c8d1838	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x9c8d2d26	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb98a59	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9cff21e5	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d14983a	ppc_enable_pmcs
+EXPORT_SYMBOL	 vmlinux 0x9d31a82d	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x9d3664cb	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x9d528377	vio_get_attribute
+EXPORT_SYMBOL	 vmlinux 0x9d587e4c	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x9d670ef2	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x9d6af030	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x9d7ce8dd	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x9d7d27b8	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x9d96a9b0	mmu_hash_ops
+EXPORT_SYMBOL	 vmlinux 0x9dab0a95	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x9dc5aa4b	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dcac297	module_put
+EXPORT_SYMBOL	 vmlinux 0x9dce7bea	padata_free
+EXPORT_SYMBOL	 vmlinux 0x9dd8dd57	load_fp_state
+EXPORT_SYMBOL	 vmlinux 0x9de5d8c7	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x9de706b5	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e023752	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x9e08af40	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2a0999	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x9e2c0a74	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x9e39d397	timer_interrupt
+EXPORT_SYMBOL	 vmlinux 0x9e3a916f	validate_sp
+EXPORT_SYMBOL	 vmlinux 0x9e4661ec	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e542172	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x9e550478	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e7538a8	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e7e9603	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x9e7f10f9	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x9e88757a	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x9e97375d	rtas_busy_delay_time
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9ebd121b	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed23083	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9ee1041b	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x9eea5ebc	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x9f037057	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x9f18c4d7	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x9f1a89c8	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x9f21b093	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x9f22cf62	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x9f317894	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x9f433917	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4afaf3	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x9f4f9c3e	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f64ba13	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9f86b72b	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9f9cf2f0	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fab311b	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x9fb0af83	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fb9bdce	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x9fc9d0d4	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa004bed4	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0xa016a04d	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xa01d302f	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xa0262284	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xa0281078	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xa03a7c7e	init_task
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa0545b7d	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xa0554558	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa05ddfb3	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xa073975a	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa07f03f0	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0xa0803c95	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa09a7ed1	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b19dd6	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xa0b3ef5c	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0fd3696	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xa0fe5387	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa1203791	arp_create
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa130ed23	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xa135ae57	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xa14d0aeb	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xa185f95a	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0xa18e42bd	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0xa1a26a5e	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xa1bb266f	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d0b45d	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1e2a3f8	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0xa1e7cc62	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xa1eaa2cd	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xa1f6ce16	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xa1fa4462	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa218f8d0	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xa234facf	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xa236dabf	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa24ff991	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa29493a2	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xa2a0c797	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xa2bbed37	crash_shutdown_register
+EXPORT_SYMBOL	 vmlinux 0xa2c00d10	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xa2eada7c	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0xa30cb316	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xa3201064	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0xa34ea576	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xa3833754	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xa38afe37	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0xa38e691a	ioremap_bot
+EXPORT_SYMBOL	 vmlinux 0xa390ee31	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xa39b4cf2	udelay
+EXPORT_SYMBOL	 vmlinux 0xa3cdeca8	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0xa3e34b53	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xa3f888a5	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xa4006f4a	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xa404197d	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xa4256342	kern_path
+EXPORT_SYMBOL	 vmlinux 0xa43b00bb	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xa43b305d	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0xa45b0f24	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0xa45b1af3	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xa46143e8	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xa46d6e89	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0xa46edcd8	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xa47c033c	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xa48bcfc8	giveup_fpu
+EXPORT_SYMBOL	 vmlinux 0xa49a9b46	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4cb55f5	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4dd576a	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xa5056338	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa51996b7	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xa5241ccb	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa55967ad	clear_user_page
+EXPORT_SYMBOL	 vmlinux 0xa578de89	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xa59466b6	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5a7e370	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5dfddb8	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xa5e04aa6	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa6077023	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61fac8f	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0xa6579f21	__pud_val_bits
+EXPORT_SYMBOL	 vmlinux 0xa658e887	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xa65972b8	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa6a9cffa	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0xa6bddc26	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0xa6c05276	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xa6e4748d	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xa6fd1966	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0xa708ffea	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa75b3706	pseries_enable_reloc_on_exc
+EXPORT_SYMBOL	 vmlinux 0xa768fea4	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xa77808be	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0xa77b1ed6	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa78198b3	of_node_put
+EXPORT_SYMBOL	 vmlinux 0xa78ddb9d	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xa78fc800	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa797f9ef	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xa79bff2d	hpage_shift
+EXPORT_SYMBOL	 vmlinux 0xa7aef745	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0xa7caec5a	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xa7caf64d	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7fd6eb7	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xa8065afd	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0xa837aeb8	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa861bbdd	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa8727b5d	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xa8896319	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xa89a95c9	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xa89e20bc	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xa8c15bb6	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xa8c2b8dc	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0xa8e8ff89	consume_skb
+EXPORT_SYMBOL	 vmlinux 0xa8ebb0b8	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0xa8f11dc5	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8fe3255	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa9233e8e	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0xa9295ea1	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa92c9b2d	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0xa93a1fcf	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0xa93d9bbe	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0xa943b9b8	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xa9478f81	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0xa947bf3c	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0xa94e87e6	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xa952658a	pid_task
+EXPORT_SYMBOL	 vmlinux 0xa955a4c3	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa96f6fd0	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xa97463c9	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0xa9774d06	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa99e6e88	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xa9aa9b0f	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0xa9c80fd7	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xa9dccaea	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xa9dffce5	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xaa05447a	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xaa173779	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xaa207ad9	__vio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xaa39f4a4	get_super
+EXPORT_SYMBOL	 vmlinux 0xaa3f6f04	radix__flush_tlb_kernel_range
+EXPORT_SYMBOL	 vmlinux 0xaa66b07c	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xaa6e4df5	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa8952f1	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xaa8f6711	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xaa9179c4	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xaa98d5f2	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xaaa53a22	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0xaaccddae	adjust_managed_page_count
+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 0xaae2ab1b	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xaaf24413	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xaaf7e2e3	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xaafd772e	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab03dd69	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0xab0e130c	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xab2bf4b5	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3774b5	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xab379797	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab4634ef	new_inode
+EXPORT_SYMBOL	 vmlinux 0xab54ae7a	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab6f0bbd	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xab737d47	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0xab752068	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab80d01c	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xabacfe48	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0xabbc4e2b	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0xabc6427d	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0xabc70f3b	skb_push
+EXPORT_SYMBOL	 vmlinux 0xabf1b42d	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabfdc992	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xac08c180	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac1cb54f	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xac26b820	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0xac2caa45	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac3324bd	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xac430423	__pmd_val_bits
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac77b858	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac891f92	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac98c4a3	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacacafd9	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xacb5a228	commit_creds
+EXPORT_SYMBOL	 vmlinux 0xacb96357	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacc9ed5f	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0576f3	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xad1a12e5	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xad21becf	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0xad27b23b	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xad4f40e0	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xad50cebb	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0xad56f7f1	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad9355c7	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xada7a476	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0xadb0bb65	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadbf3d59	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadc95243	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadcfcd19	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0xadd2bff5	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae1a632b	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xae25c141	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0xae2a1dbb	radix__flush_tlb_page
+EXPORT_SYMBOL	 vmlinux 0xae2b0e1b	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae38720d	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0xae4c8439	__pte_table_size
+EXPORT_SYMBOL	 vmlinux 0xae545f06	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xae60d1e9	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xae661595	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0xae6f5f7b	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xaee5841d	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xaef69150	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0xaf063510	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xaf1ece98	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xaf273b21	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf3ed4f3	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0xaf416233	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xaf4247bb	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xaf4d99bb	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xaf5212e1	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xaf524113	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf6f9306	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0xaf8e9251	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xaf8eb245	bdevname
+EXPORT_SYMBOL	 vmlinux 0xaf9f8f8e	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0xafa01e7d	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xafa0ff8c	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafa62348	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xafe26949	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0xafe3a589	release_firmware
+EXPORT_SYMBOL	 vmlinux 0xafef18b2	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xaff7e19a	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0xaff7f6c1	__debugger_bpt
+EXPORT_SYMBOL	 vmlinux 0xaffce2d3	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0xb00b93fc	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb02e50f8	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xb044f77c	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0xb04e468e	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xb059fb49	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb0760110	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xb07aab63	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0xb08d3802	update_region
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a13058	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xb0b1e583	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xb0c349d7	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xb0c43fcc	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0d30430	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xb0d5cf93	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e8341b	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb10d3f5c	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb123d5a2	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb1310654	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xb143655c	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0xb147a855	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb15bd8fa	tb_ticks_per_sec
+EXPORT_SYMBOL	 vmlinux 0xb1633ba2	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xb1657564	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb16ad722	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0xb1872b10	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xb19d55df	fsl_upm_run_pattern
+EXPORT_SYMBOL	 vmlinux 0xb1a0367f	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xb1a63e94	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1c7899e	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xb1d835db	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1dff424	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb1f66d6d	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xb1f7bdf1	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0xb2004f38	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xb20ad984	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0xb2100df1	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0xb2193089	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb2473628	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0xb25783f0	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb29b331d	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0xb2a10c95	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xb2acc4cd	__msr_check_and_clear
+EXPORT_SYMBOL	 vmlinux 0xb2acd9e5	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b639a8	init_net
+EXPORT_SYMBOL	 vmlinux 0xb2c8ae0a	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb306ff1c	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb31bafce	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb339e968	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xb350f6f2	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb36a4e87	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb36adf1d	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xb388b4da	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3d72ba1	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xb3f45fb3	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4077f25	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xb4153c79	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb4199227	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb4269122	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0xb42e4688	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xb4412b64	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xb4424b2b	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb4633455	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xb4662e25	igrab
+EXPORT_SYMBOL	 vmlinux 0xb46691d7	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xb473e2c2	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xb4791ba1	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xb47be20e	pseries_disable_reloc_on_exc
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49b5197	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4c6cd79	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xb4d7b399	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xb4d9d53a	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f6be3f	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xb50b097e	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xb50f6be7	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0xb51618fd	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0xb5247144	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xb539b516	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xb54c1e27	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0xb5615807	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xb56205ef	bio_devname
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb5794d19	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb58d16f4	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0xb58df9a6	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xb5950bde	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab402f	logfc
+EXPORT_SYMBOL	 vmlinux 0xb5ac73bb	default_llseek
+EXPORT_SYMBOL	 vmlinux 0xb5afa8cd	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xb5c75c01	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xb5c83b75	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xb5d3aacd	bdput
+EXPORT_SYMBOL	 vmlinux 0xb5dc7d8c	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5f75a57	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0xb616f9ee	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xb61a0194	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0xb62382f8	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb631f9c7	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb64e0369	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0xb653b024	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67d450c	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6880856	put_disk
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6996c42	send_sig
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6c24f38	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0xb6dc6e4d	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xb6dffc19	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xb6e18921	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xb6f6a061	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0xb7071b61	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xb708e226	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xb720e1ab	mem_section
+EXPORT_SYMBOL	 vmlinux 0xb72c3cee	d_delete
+EXPORT_SYMBOL	 vmlinux 0xb7314ede	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xb73b0fff	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xb74c3f6a	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb7568cf9	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0xb758d6a8	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0xb76864cb	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb79240d3	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0xb7b2c045	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0xb7b9e785	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xb7bc6adc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xb7be9665	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d2ef3d	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xb7edf2d9	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xb7f5d06f	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0xb7f8fd16	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xb7f9f4e9	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xb80a5d0f	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xb81e8a2a	srp_rport_get
+EXPORT_SYMBOL	 vmlinux 0xb831297b	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb86471ce	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xb8678548	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xb878d463	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0xb8897c9f	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8ad9001	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b4e69f	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8c1fb21	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xb8dddc96	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb921d2f6	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0xb9310907	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb946b038	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xb952b556	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xb955534e	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xb959e672	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0xb9673b7b	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0xb9889730	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xb99d0b0b	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xb9c4dc40	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9ee149b	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0xba0a7309	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba36ed84	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xba3a97be	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba5b9e08	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xba691c85	_insb
+EXPORT_SYMBOL	 vmlinux 0xba6e5bb4	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xbabac1c6	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xbabfd348	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0xbad1faa5	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0xbadbbbb3	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xbaf2075e	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xbaf88949	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb14192b	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xbb15efd5	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xbb216b6e	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb2556c9	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0xbb2ae806	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3e10b0	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xbb3e9e90	__pmd_table_size
+EXPORT_SYMBOL	 vmlinux 0xbb4584c2	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0xbb4c9e6f	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb63f93a	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xbb7c2e77	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xbb87d66d	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xbba60d5a	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xbbaba235	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xbbb7d335	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0xbbc287fc	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xbbc60da6	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0xbbe80ca0	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbc05f0ff	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0xbc0d6075	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xbc10a9d3	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xbc180a9f	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0xbc1c7cbb	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xbc2b6f43	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0xbc316de4	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0xbc38e628	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xbc3b7c74	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc6c1a1c	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xbc7d7aed	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xbc982b06	eeh_subsystem_flags
+EXPORT_SYMBOL	 vmlinux 0xbca1b466	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xbca205f3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcc98047	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xbcecc02d	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xbcf150f9	xor_altivec_5
+EXPORT_SYMBOL	 vmlinux 0xbcf62e0c	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0xbcfdde9a	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xbd0cc380	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xbd108e28	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xbd125e80	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xbd2a67e9	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xbd2ce637	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xbd2f800e	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xbd3689be	of_match_node
+EXPORT_SYMBOL	 vmlinux 0xbd36aced	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0xbd38cace	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbdc0bf5b	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xbdc951d3	path_get
+EXPORT_SYMBOL	 vmlinux 0xbdcca533	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xbdef810b	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0xbdf6bf07	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0xbdf9e5a0	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xbe1ab8e6	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0xbe3939ae	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe52ed1e	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe7ac00a	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xbe813eb8	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xbe8d8ce1	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xbedc8af4	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee91116	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbf04f233	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xbf233187	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0xbf2408cd	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0xbf2a5e6a	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0xbf2f4042	sk_free
+EXPORT_SYMBOL	 vmlinux 0xbf32299a	dev_load
+EXPORT_SYMBOL	 vmlinux 0xbf3e2414	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xbf3e46a1	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xbf4b19f3	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0xbf596f45	_insl_ns
+EXPORT_SYMBOL	 vmlinux 0xbf68a7bf	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0xbf6cf8db	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0xbf6d2354	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0xbf8f8439	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xbf9a0be5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfa0b4db	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xbfa97b84	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0xbfb8b0b7	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfc3e012	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xbfd37d60	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xbfdf6473	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff8182c	plpar_hcall_norets
+EXPORT_SYMBOL	 vmlinux 0xc008413c	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0xc00fdc9d	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0xc016fb41	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc0473fe2	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xc05353a7	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xc05fa21d	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0xc06a49e4	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc09def3e	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0xc0a14b65	keyring_search
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0afd499	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b346d8	opal_nx_coproc_init
+EXPORT_SYMBOL	 vmlinux 0xc0bae6a8	phy_start
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0d6d78f	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xc0dbe0e1	registered_fb
+EXPORT_SYMBOL	 vmlinux 0xc0dd997e	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0xc0fb2adf	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc10364c5	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc1328cee	start_thread
+EXPORT_SYMBOL	 vmlinux 0xc14e2834	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc155c008	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc173e1e7	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xc17ef03b	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xc18392dd	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xc1a90cf2	padata_start
+EXPORT_SYMBOL	 vmlinux 0xc1ce2bd1	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0xc1d40d17	iget_failed
+EXPORT_SYMBOL	 vmlinux 0xc1d46972	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1d903eb	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xc1dfcb50	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xc1e03e20	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xc1e524da	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc1ea4079	mmput_async
+EXPORT_SYMBOL	 vmlinux 0xc1f68821	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xc20a57e9	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xc20e58c5	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xc2276a3f	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc24db0b8	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0xc2524850	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xc252af7d	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0xc25a6fe5	register_console
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc267e8e2	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0xc26b03d6	dump_page
+EXPORT_SYMBOL	 vmlinux 0xc27fc063	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xc294ae26	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc29adac1	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc29d54b6	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xc2bcbe2e	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc316383b	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xc31ea796	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc34c7c76	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc391ba9a	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0xc3a6fffd	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0xc3babd7b	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xc3c576f9	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xc3cf62d3	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0xc3e1a814	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc41d9ab2	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xc4204ecf	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc46a2211	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47cdf9c	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xc4838d15	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xc4a32ec1	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4b0e74f	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xc4cc82ef	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xc4cc9b42	pnv_pci_get_gpu_dev
+EXPORT_SYMBOL	 vmlinux 0xc4d72e3a	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0xc4d7a3e1	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0xc4ea98b3	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xc4f55627	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xc4f8f565	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0xc500c170	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xc5195fcc	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0xc532d8b9	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xc54c0ed9	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc557f221	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0xc563068e	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xc57f2b4d	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc5853928	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a0e79b	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xc5a32390	eeh_dev_release
+EXPORT_SYMBOL	 vmlinux 0xc5a396fd	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5e17453	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5ed20f6	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc5f5ca14	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0xc5f60a0d	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6035b8f	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60deab2	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xc60fd985	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xc618a5c3	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xc61b8087	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc6284fcf	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xc630b71b	rproc_add
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc631a616	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc6369552	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xc64e35f0	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xc6593167	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0xc659bcc2	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc664b528	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc67417ae	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xc68e9804	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xc6b5ee3a	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0xc6bb4033	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xc6c92d14	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6cbe0dd	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0xc6d6af46	ppc_pci_io
+EXPORT_SYMBOL	 vmlinux 0xc6dc66ef	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xc6f08bb7	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xc6f258a6	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f46c4a	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xc70eddfb	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0xc719d67f	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xc71a947c	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc73551f5	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xc749d572	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0xc7619bc0	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xc7785bef	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc7910cca	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xc799cf95	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c31569	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7da455b	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xc7e4a10a	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0xc7f484b1	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xc80adb47	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xc811535b	touch_atime
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84dcfdf	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0xc8515f29	file_path
+EXPORT_SYMBOL	 vmlinux 0xc871ac75	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87b324d	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc88892cf	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0xc88c15fb	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8967ee6	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0xc8a2c334	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b09b4d	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xc8b7de50	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0xc8be2d29	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xc8d38ef5	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0xc8e1dcd0	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0xc8fcc46e	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xc8ffeab8	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0xc9133ffe	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xc9512c1c	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc966ff1b	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9791c4d	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xc97aba6b	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xc97c4d58	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xc97deb5d	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0xc97f87d0	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xc987924d	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9a32591	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0xc9abaf17	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xc9d535eb	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0xc9dc3d79	__pte_frag_size_shift
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xca0ce3fe	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xca0d1606	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca2a45d0	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0xca389cfb	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xca3b28c6	store_vr_state
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca45fc19	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xca5e7fa6	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xca641118	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca72a092	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0xca8894bd	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xcaa8702e	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xcaaf956a	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0xcacc7923	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0xcad2ae91	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb116b8e	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xcb18333d	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xcb2ea0b5	finish_wait
+EXPORT_SYMBOL	 vmlinux 0xcb34a912	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3c8a7d	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xcb4e80cf	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xcb7af101	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba6d149	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xcba84a64	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xcbbdf88a	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc3b94e	eeh_check_failure
+EXPORT_SYMBOL	 vmlinux 0xcbc69b2f	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd7f2a5	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xcbd89017	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc048184	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xcc10d488	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xcc17504d	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc3430e1	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xcc372a68	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc4db28a	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc541301	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0xcc58d1d0	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc6b7d74	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0xccb6eac8	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xccb8f66a	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc2c983	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0xccc6893e	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xccc9d91a	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd0529c7	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xcd0b71ef	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0xcd1196e3	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0xcd229458	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd2e2e3f	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xcd42521a	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xcd45ae1f	sock_register
+EXPORT_SYMBOL	 vmlinux 0xcd553234	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xcd75a821	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xcd868bd4	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xcd86c87f	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xcd99f106	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xcd9c5e65	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0xcda38986	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xcda9c037	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0xcdc0349c	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcde83ed1	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xcdfe6bd7	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xce18bbe1	fsl_lbc_addr
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce3557be	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xce47562a	iunique
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce54c938	complete_all
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce61f984	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xce69bea8	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xce6f1473	d_drop
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807151	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xce85373d	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0xce8d1806	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0xceaa4428	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xcec766f1	__memset16
+EXPORT_SYMBOL	 vmlinux 0xced57f3e	mount_single
+EXPORT_SYMBOL	 vmlinux 0xcee79407	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf0afc31	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf376232	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xcf4cc402	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xcf6640b9	udp_poll
+EXPORT_SYMBOL	 vmlinux 0xcf6cb3bf	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0xcf7b1077	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0xcf8dd2b5	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xcf9352cd	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfc8c5bb	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xcfc9d922	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xcfdf1a21	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xcfe83cba	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xcff93650	clear_inode
+EXPORT_SYMBOL	 vmlinux 0xcffb4832	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xd00426c3	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xd013039a	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xd022ca9e	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xd02a7eab	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xd02f89b0	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd0451830	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd07ec3dd	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0xd0839be3	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xd085aa0a	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xd09c7ece	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xd09cfeb4	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0bb27d8	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0cd082b	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xd0e2c525	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0xd0e44cd8	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xd0ec0656	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xd0ec3dea	fget_raw
+EXPORT_SYMBOL	 vmlinux 0xd0f7a29a	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fbb72d	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xd0fde4f5	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd101c937	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xd1076c94	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd110f51f	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xd11e63b3	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0xd11fc060	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xd125ff1c	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0xd1262886	rtas_data_buf
+EXPORT_SYMBOL	 vmlinux 0xd12d24fc	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xd131b737	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xd1366e20	param_get_string
+EXPORT_SYMBOL	 vmlinux 0xd15ec249	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xd1637cf9	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd18fe5f6	completion_done
+EXPORT_SYMBOL	 vmlinux 0xd1a10354	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0xd1ae800b	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0xd1aeeefa	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0xd1b10e0c	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xd1b5edbd	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd1bec846	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xd1c086d8	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1f41661	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0xd201e39a	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xd20c8f4d	rtas
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd255fac4	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27db516	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xd28572c4	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xd2b5ab88	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0xd2c03342	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd3008397	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd33813bc	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0xd33c32bd	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0xd34b3ca2	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35c8dc7	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd385c216	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xd38b0050	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xd38cda67	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xd3aba404	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0xd3bbe51c	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3ce767f	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xd3de33ed	rps_needed
+EXPORT_SYMBOL	 vmlinux 0xd3e87d79	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f7f69a	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xd4054e61	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40da37e	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xd40f59d9	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xd4266a66	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xd4368fdc	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xd43da35f	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd48fdeef	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a8694b	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4cb2b62	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xd4cbad35	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xd4d7c068	fsl_upm_find
+EXPORT_SYMBOL	 vmlinux 0xd4e43e0d	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xd4ed7ae5	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fd0ec2	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xd4fee469	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xd502b80c	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0xd50cb811	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0xd50eb479	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd5397071	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xd56f5456	_dev_err
+EXPORT_SYMBOL	 vmlinux 0xd5a118da	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd5a3604a	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0xd5b12f7d	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5be130e	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xd5c6023d	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0xd5d80edc	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xd5d99996	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0xd5de3849	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xd5f05fcc	key_validate
+EXPORT_SYMBOL	 vmlinux 0xd5f99f1f	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xd5ff5a59	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xd602fd65	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd604814e	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd66cabda	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xd67b8128	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd6894003	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6902441	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0xd6930f78	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xd69948fb	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6acd959	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6ddc562	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xd6e29d6d	serio_close
+EXPORT_SYMBOL	 vmlinux 0xd6e5b465	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xd6e7608e	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6f3362c	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0xd6fd4053	__arch_hweight32
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd7078b8c	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd722d178	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0xd726ae87	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xd72777ab	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd73e1fee	seq_release
+EXPORT_SYMBOL	 vmlinux 0xd7413e6f	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xd743995b	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xd75750be	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xd75bfc47	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xd77690b4	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xd786c0ea	plpar_hcall9
+EXPORT_SYMBOL	 vmlinux 0xd78b0174	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xd797cdc8	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xd7a74182	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xd7b02f99	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0xd7b18610	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xd7b7a9ef	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xd7c574f0	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0xd7ccb95f	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xd7ce7ca5	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d53e93	may_umount
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7e8a199	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xd7e8bc2f	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xd806d2d2	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0xd8339340	pnv_cxl_release_hwirqs
+EXPORT_SYMBOL	 vmlinux 0xd8439008	vio_h_cop_sync
+EXPORT_SYMBOL	 vmlinux 0xd848a17d	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xd84c12d7	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0xd84d6a6d	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0xd84e058a	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xd8548b30	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8b1f6b4	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xd8b3b2db	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xd8d0d38d	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0xd90325db	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd923e3bf	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0xd92bf0a9	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xd93344fd	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xd93427b3	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xd93529b0	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0xd95aec7f	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xd9658338	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xd97b87e0	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd99b4ced	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0xd9a059d5	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xd9a446f2	decrementer_clockevent
+EXPORT_SYMBOL	 vmlinux 0xd9bac924	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0xd9bfb48e	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9de9bec	bdi_put
+EXPORT_SYMBOL	 vmlinux 0xd9e11ffc	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0xd9e8f7d1	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0xd9e954f0	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xda34409c	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda42f807	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xda4ad3a5	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xda52e52b	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda7f2fc9	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda8cb491	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaaa2a5a	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xdab34f80	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xdab4f3ba	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xdab8a16a	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdac5235e	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xdac545b9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xdacf7265	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0xdad1f91c	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0xdad55a93	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdaed231f	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0xdaff3624	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xdb2e6ca4	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb4ae2a1	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb7e3622	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xdb7fbef2	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0xdb825120	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xdb825cfb	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0xdb89d5da	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xdb8f4711	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0xdb8fe456	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0xdbb7d6f2	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0xdbb92790	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xdbc51c1f	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf3110e	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xdbfa0017	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc170ab3	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xdc18c6cf	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xdc1d3834	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc6e7c71	of_iomap
+EXPORT_SYMBOL	 vmlinux 0xdc849ff0	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0xdc9498dd	down
+EXPORT_SYMBOL	 vmlinux 0xdca21321	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xdca61804	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0xdcaf455a	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0xdcb764ad	memset
+EXPORT_SYMBOL	 vmlinux 0xdcc52e4b	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0xdccf3bdb	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xdcd1e956	radix__local_flush_tlb_page
+EXPORT_SYMBOL	 vmlinux 0xdcdc7682	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xdd0177f1	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0xdd028164	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xdd13e3a3	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xdd1f6c7a	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd623247	tty_name
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd9030af	current_stack_pointer
+EXPORT_SYMBOL	 vmlinux 0xddb3769b	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xddeddb4a	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xddf75782	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0xddfdfa0d	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xde0fb486	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xde1ef1ef	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xde237561	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xde380961	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xde48e9ca	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde5f84db	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xde603f93	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0xde60fbc5	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xde7578c6	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xde8a44a7	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xde91448c	load_vr_state
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdeb952ab	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded646ad	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf0056cd	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xdf00b5d7	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xdf16f84c	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0xdf1ed1ca	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf35ccd0	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xdf44b725	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xdf47b38a	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf8b9bd8	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xdf8e92d1	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xdf8f4223	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfaa7138	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xdfb3b63f	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfd8bb7b	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffa33c3	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0xdffb6a18	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe006ed2b	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xe00b6483	pnv_cxl_get_irq_count
+EXPORT_SYMBOL	 vmlinux 0xe01b18e8	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0xe022e639	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0xe02a7493	msi_bitmap_free_hwirqs
+EXPORT_SYMBOL	 vmlinux 0xe039533c	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xe05ef278	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xe06acd84	of_node_to_nid
+EXPORT_SYMBOL	 vmlinux 0xe0772242	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe07a61f9	proto_register
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b3bd35	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0xe0bba9bd	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xe0dd6fc1	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xe0f665b4	dev_printk
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe1227ae0	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12b0a5c	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe12c519d	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 vmlinux 0xe135e3d5	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe13efb12	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0xe147d479	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0xe1643dde	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xe16fcf4d	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xe1894551	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0xe18cd808	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1ad5729	srp_reconnect_rport
+EXPORT_SYMBOL	 vmlinux 0xe1b59ae9	__debugger
+EXPORT_SYMBOL	 vmlinux 0xe1cd2804	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xe1d48f62	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe1f432e3	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0xe2053c5d	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xe207c700	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xe21b52a5	__bforget
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2269a49	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xe22ed31b	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xe22eef7a	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 vmlinux 0xe23af837	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xe24fd926	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0xe25b7b46	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xe26903aa	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xe2870abd	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0xe2a705f6	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0xe2c49f9a	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e654db	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xe2ecd36b	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30b78ba	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xe30fc722	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0xe311ff46	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0xe31496db	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xe318029e	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe34b318a	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0xe358a518	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xe35e5635	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xe36b262f	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xe3773bb5	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xe38076c2	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xe3853447	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0xe39953db	inode_permission
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3afe4b1	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xe3b416af	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe3b92a97	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0xe3c463b4	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3daf46d	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3eeb535	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xe3f29f70	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xe3f8ba1b	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe402fb4d	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xe405cad8	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xe40ce6c0	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0xe411bc4c	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe42bc22e	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe4507a55	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0xe456f7a7	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xe47bfdac	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0xe4803ef7	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xe484bc2c	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe4911c59	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0xe49f2f98	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xe4b698f0	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4da0fc9	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0xe4e7cff3	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xe4e8490f	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0xe4f55b3d	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xe4fe8ca1	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0xe51ab93a	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xe51b9b7e	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe524764a	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xe53001e6	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0xe547336c	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0xe549769a	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0xe54d4b7e	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xe552f1b9	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe573cb8f	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xe57f008c	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe59159e4	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xe5bb041a	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5cada0d	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xe5d71a61	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0xe5dde4bc	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0xe5e15b14	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xe5e3497f	misc_register
+EXPORT_SYMBOL	 vmlinux 0xe5f98e95	stop_tty
+EXPORT_SYMBOL	 vmlinux 0xe5feeb0b	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xe6128f43	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe61a0b41	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xe61bfb63	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe6322ab9	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0xe63abf02	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0xe66069f3	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xe661a1a3	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0xe66b7e67	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0xe67e7bf9	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xe6818d48	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xe6837df8	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xe684321e	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0xe6861ca9	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6a0b79b	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0xe6b120d9	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0xe6b71f2f	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0xe6bae869	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xe6daf1f2	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0xe6e02671	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0xe6e93191	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xe6fa8db1	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xe70337d6	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0xe712a13c	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe741faa2	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xe7425ca2	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xe74c3f7c	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xe74fedf6	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0xe7543bc0	mac_find_mode
+EXPORT_SYMBOL	 vmlinux 0xe76074bd	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xe77766ae	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xe77ee4a4	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0xe7a068ae	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0xe7a4249e	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xe7a63878	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xe7aab9b6	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xe7ae9a73	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0xe7bff5f8	key_link
+EXPORT_SYMBOL	 vmlinux 0xe7c2908a	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xe7ce7439	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7d4ea0f	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0xe7da15b6	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0xe7e3ceff	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xe7f1b41f	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0xe80922b4	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0xe819799b	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0xe820f894	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xe82b0bf2	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xe8341436	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xe83dffb6	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe845a34e	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xe85e76f9	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0xe862b10e	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xe86feb05	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0xe878cc22	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0xe89ee2fa	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0xe8a0fb9f	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xe8a7978c	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xe8b68bdc	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xe8d54c77	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xe8d5703e	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0xe8dc0d44	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xe8dc5094	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xe8f15cd2	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xe8f5b1be	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xe90ac824	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe92ce010	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0xe93f5e25	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe94755a1	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe966bff3	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xe96dc0f1	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xe975dbe1	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xe985b863	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0xe99665aa	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xe9c2ea9f	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xe9da4c8a	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe9f0f177	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xe9fc8b01	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xea0e7fec	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xea221bd2	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xea318228	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea426e43	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0xea538418	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea8a06d2	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0xea8b16e8	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xea8bb103	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xeaa1383d	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0xeab4240d	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0xeac26386	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xeae20b2d	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xeaf3c9ba	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xeaf3ea35	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0xeb10daf5	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xeb1261e7	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xeb176acf	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb29da91	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb542e5d	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xeb54728b	pnv_pci_get_phb_node
+EXPORT_SYMBOL	 vmlinux 0xeb5e376f	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0xeb64e014	giveup_altivec
+EXPORT_SYMBOL	 vmlinux 0xeb702676	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xeb758615	of_root
+EXPORT_SYMBOL	 vmlinux 0xeb7f1b7a	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xeb822e8e	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xeb8834af	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xeb8c7b7b	cxl_use_count
+EXPORT_SYMBOL	 vmlinux 0xeb8f2d4f	__pmd_frag_size_shift
+EXPORT_SYMBOL	 vmlinux 0xeb9bd19d	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba2a1f7	rtas_indicator_present
+EXPORT_SYMBOL	 vmlinux 0xebb2ded3	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xebd29ae0	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0xebd32cdd	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xebd40367	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0xebe82467	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0xebea0106	cdev_add
+EXPORT_SYMBOL	 vmlinux 0xec24c0b0	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0xec4c2e0b	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xec4c89c7	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xec4fb493	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xec5b0612	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xec5fda7b	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0xec607af3	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xec734440	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xec75eab7	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xec7febf2	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xec875af8	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xec89f3e2	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xec97ead8	__kernel_io_start
+EXPORT_SYMBOL	 vmlinux 0xeca6bdb4	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0xecb04a7f	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xecbb926f	xor_altivec_3
+EXPORT_SYMBOL	 vmlinux 0xecc52664	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xece39796	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xed098b95	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0xed1d8242	pcibus_to_node
+EXPORT_SYMBOL	 vmlinux 0xed52ea0f	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0xed5f61d2	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0xed61e761	migrate_page
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed94b3e8	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0xedadbb1f	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xedb5b8f5	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedc7422d	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xedd12370	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0xedd98b3d	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0xedeebf61	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xedf2a001	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xedfc4aaa	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0xee02f958	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xee25a13e	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee4fa4d9	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee9de2a9	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0xeea22408	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0xeeabee18	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xeeb5c67d	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xeed280ea	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xeed34826	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xeed5bcca	__pud_table_size
+EXPORT_SYMBOL	 vmlinux 0xeefa6de5	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0xeefc593e	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0xeeffa34b	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xef07581b	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0xef0a2705	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xef109c28	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xef12ed8e	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xef2e7aa7	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xef32868f	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0xef3f7b1c	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0xef403fad	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xef6b041f	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xef7fb1c4	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefc54e56	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xefc65d63	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xefe07ffa	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefec107a	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0xefecc1b2	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf00e1cf7	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf01dd4ee	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xf0329ad1	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xf0353231	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xf03b6a02	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xf056be64	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xf0589b6c	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xf0645f48	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf0677631	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xf07350bd	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf07fe9a0	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a2ffd2	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0xf0eebe41	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0xf0f8564d	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf11cd6ce	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf11e0ef9	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xf11f2a9f	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xf1349228	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0xf15e5d97	pnv_cxl_alloc_hwirq_ranges
+EXPORT_SYMBOL	 vmlinux 0xf17da107	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf1912017	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xf191ef1a	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf198e378	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0xf1bb9ce8	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xf1bd222c	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0xf1d18e90	_outsw_ns
+EXPORT_SYMBOL	 vmlinux 0xf1d667ac	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e63929	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1fa492d	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xf2213c0b	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf227e7da	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xf22c14c8	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xf23c860a	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2416111	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0xf264e8ab	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0xf269913b	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xf277c801	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf29abfd3	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2fa316b	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf328962c	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf347c069	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0xf34c3cb0	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0xf34f3bc3	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf3529cab	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf35ad4dc	fsl_lbc_ctrl_dev
+EXPORT_SYMBOL	 vmlinux 0xf365035e	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf38a80ff	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3ae6dab	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3bbcbbc	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3fa200f	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0xf3fff99d	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf425c53d	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xf42d64ca	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf442144a	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf444658b	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xf4495a8f	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf4710005	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf472017a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf485947b	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0xf497cd73	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0xf4b69550	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c33a3e	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xf4d48f37	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f66a27	of_read_drc_info_cell
+EXPORT_SYMBOL	 vmlinux 0xf4fa2649	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf5031974	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xf521132d	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xf5222143	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xf52502ed	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf53ee677	fb_class
+EXPORT_SYMBOL	 vmlinux 0xf53f722e	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xf546979d	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xf54856fc	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0xf5488fd9	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf548bd50	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xf55b3b3d	__arch_hweight16
+EXPORT_SYMBOL	 vmlinux 0xf57c218d	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xf5876d65	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xf58b3e99	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0xf5950264	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a62ecc	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xf5b95c15	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0xf5c4b444	memcpy_flushcache
+EXPORT_SYMBOL	 vmlinux 0xf5d303c7	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xf5ddc299	radix__flush_tlb_mm
+EXPORT_SYMBOL	 vmlinux 0xf5e1558d	crash_shutdown_unregister
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5ec511c	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xf5f54c78	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0xf600f7ff	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xf6030ce4	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xf60adf95	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xf6150d63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xf615afd0	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0xf61928eb	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0xf6252267	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0xf626ceb2	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0xf626f49a	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xf62a7f18	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf6824143	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf683553a	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xf68643a4	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xf6a4562d	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0xf6a5608a	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0xf6be6659	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xf6c7e37c	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xf6c8d423	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6eecadc	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xf6face83	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf7026c77	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xf70b4538	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xf7109d03	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0xf7194782	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf74b2eaf	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf75c987d	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf787a80e	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xf788cd57	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xf79a1b0c	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xf79bdca3	skb_append
+EXPORT_SYMBOL	 vmlinux 0xf7b44630	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xf7b8285e	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xf7c2df39	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf7c3ad69	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xf7c67d1e	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xf7dbcc05	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xf7dd8253	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xf7e13053	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xf8084c2d	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0xf80aa0d5	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf81f47cf	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xf8240512	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf85daa8d	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0xf861c96f	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xf862c147	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xf8633d36	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xf863424d	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf877089b	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xf8776725	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf89601f7	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xf8972c23	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8c27ea1	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0xf8ce2996	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8d84741	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf8e1115e	_outsl_ns
+EXPORT_SYMBOL	 vmlinux 0xf8e4596d	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0xf8ee411b	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8faead7	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0xf9145f8f	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf9194314	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xf9285577	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf9527498	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xf95605b5	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0xf95c7201	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0xf95c9d34	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0xf962685c	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xf96565ed	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xf96ec242	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97958d7	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xf97ad94c	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xf987c093	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0xf9895629	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xf997a043	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xf9a01b77	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9a9915a	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0xf9b1cdcd	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c313ce	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0xf9dfafa3	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0xfa0aadd0	tcp_close
+EXPORT_SYMBOL	 vmlinux 0xfa147d6b	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xfa172e17	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa4b9efd	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xfa55ddd6	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa5fcab1	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xfa670123	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xfa768804	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa8a2a4e	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xfaa164d3	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xfaa401ee	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0xfaa8207e	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0xfab67519	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xfab77636	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xfac30c18	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0xfac40d6c	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfadca94a	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0xfae5bdf6	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0xfaf371f0	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xfafdc3e3	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0xfb090cfe	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0xfb10f2aa	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0xfb232c7e	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xfb24fe6a	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb4699e9	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb4f4411	dev_close
+EXPORT_SYMBOL	 vmlinux 0xfb6529d5	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6e4075	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0xfb6e5e0d	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0xfb738083	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xfb7975aa	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xfb7cfacd	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0xfb8d873a	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xfb9db714	param_set_long
+EXPORT_SYMBOL	 vmlinux 0xfba1533e	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbab6c1b	vmap
+EXPORT_SYMBOL	 vmlinux 0xfbac370b	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbcbb9e0	finish_open
+EXPORT_SYMBOL	 vmlinux 0xfbcd25bf	single_release
+EXPORT_SYMBOL	 vmlinux 0xfbecf426	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xfbf4b557	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3b6c39	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f99c2	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xfc464179	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0xfc8306ec	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xfca7309d	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xfcac78a0	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcbe0853	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd3338f	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0xfcd7c70e	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcdfadc0	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0xfcdfd6c6	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd001361	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xfd04d856	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0xfd175e9f	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0xfd24acad	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xfd36c3f4	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xfd377a6a	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xfd4a1ea9	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xfd508493	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xfd541b92	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xfd54a173	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xfd683e26	skb_put
+EXPORT_SYMBOL	 vmlinux 0xfd6f05c3	inet_bind
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd7efe17	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xfd847190	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xfd99f4a3	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xfd9fd24d	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0xfda5ab14	phy_stop
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb34f75	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0xfdb6cedc	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdcdd183	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdd6bbad	__wake_up
+EXPORT_SYMBOL	 vmlinux 0xfde0fb6e	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xfde16cf1	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0xfded48ed	enable_kernel_fp
+EXPORT_SYMBOL	 vmlinux 0xfdf12e02	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0xfdfbd622	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xfdfcdd5f	__csum_partial
+EXPORT_SYMBOL	 vmlinux 0xfdff71c1	__debugger_iabr_match
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe03da70	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xfe058354	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe2583d3	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0xfe2a4380	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xfe3316f9	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe4f2a6a	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe8d5560	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfeaa42e5	input_event
+EXPORT_SYMBOL	 vmlinux 0xfeabd226	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfeba2607	__scm_send
+EXPORT_SYMBOL	 vmlinux 0xfec93231	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xfecebd66	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0xfed8717f	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xfed88c60	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee2658b	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef29f9a	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff02780b	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xff11c5f9	ppp_input
+EXPORT_SYMBOL	 vmlinux 0xff175aa9	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0xff1765c7	rtas_call
+EXPORT_SYMBOL	 vmlinux 0xff1e2c63	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff2f1cbe	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xff3c7375	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xff5af670	override_creds
+EXPORT_SYMBOL	 vmlinux 0xff5d844a	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff689653	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0xff8bd3b0	cur_cpu_spec
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffa6f7d9	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xffc4c1ad	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xffcbdd0e	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xffe690fd	udp_table
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff20efe	mipi_dsi_device_register_full
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0028bdf8	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x002ad7c2	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0213b80b	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x02856cf2	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0360d7ad	kvmppc_core_pending_dec
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x03e2d6a2	kvmppc_xive_push_vcpu
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x08640035	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0f11f02d	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1050debb	kvmppc_core_queue_dec
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1302be7f	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x13dc287d	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x156057f2	kvmppc_handle_load
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x163e7435	kvmppc_gpa_to_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1718f6d4	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1c3ae0d0	kvmppc_st
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x21cbd183	kvmppc_prepare_to_enter
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x22ea6713	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2a852eaa	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2c648ee6	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2f6542ad	kvmppc_book3s_queue_irqprio
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x316e27fc	__tracepoint_kvm_ppc_instr
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x32095c75	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3d9af4b4	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3e6a5dc4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3f523f2d	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3f580cbb	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3ffc0b44	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x402be9ed	kvmppc_h_logical_ci_store
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x42e905b9	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4302d36e	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4b1ac60b	kvmppc_core_dequeue_dec
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4c510dfc	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4e7b53a2	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4ec767e5	kvmppc_xive_set_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x50a05dfc	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x50f9d53f	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x559451e2	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x55f90546	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x5e4816f5	kvmppc_core_queue_data_storage
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x5fa3ca2b	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6066e35e	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x643fe043	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x654339cb	kvmppc_core_queue_inst_storage
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6a7398f0	kvmppc_core_prepare_to_enter
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6cea30e3	kvmppc_ld
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6ea6b957	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6ede80b1	kvm_init
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7041dde0	kvmppc_pr_ops
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x729ab6a3	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x75f4f695	kvmppc_kvm_pv
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x771d2c23	kvmppc_core_queue_program
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7d8c1694	kvmppc_handle_store
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7f282d98	kvmppc_h_logical_ci_load
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7fe31667	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x82792692	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9005f325	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x934cf0a1	kvmppc_xics_clr_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x95a6b68c	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x963c931d	kvmppc_h_put_tce
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9661b279	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x96ff455f	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9be322d0	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9c1d4c9b	kvmppc_core_queue_machine_check
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9ee45163	kvmppc_xive_clr_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9f68e990	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa50451c2	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa708b7a2	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa715e953	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xaa476ad2	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xab399219	kvmppc_unfixup_split_real
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xab59d373	kvmppc_free_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xad65830d	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xb01e32dd	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xb0227475	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xb041b6d9	kvmppc_h_put_tce_indirect
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xb48d58bc	kvmppc_set_msr
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xbfe14d5f	kvmppc_hv_ops
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc230938d	kvmppc_xics_set_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc2ae792f	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc6cc96d2	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc70e4b59	kvmppc_claim_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc9bb4a9d	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xcc44961f	kvmppc_alloc_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xcc94f76c	kvmppc_sanity_check
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xcece86f8	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xcfd3d788	kvmppc_xics_hcall
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xd2fcda09	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xd9934c3c	kvmppc_xics_rm_complete
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdc10c38a	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdc88c9d8	kvmppc_emulate_mmio
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdd44d2c9	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdd507824	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdd6f2643	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe0545a16	kvmppc_h_stuff_tce
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe09f9d81	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe525876c	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xee5a93c2	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf0f268f5	kvmppc_load_last_inst
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf4da3546	kvmppc_init_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf7e3c3fe	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf81b7f43	kvmppc_rtas_hcall
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-hv 0x85ffb9c1	kvmhv_copy_to_guest_radix
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-hv 0xeac3ad4e	kvmhv_copy_from_guest_radix
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-hv 0xf8aeb0ea	__kvmhv_copy_tofrom_guest_radix
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-pr 0x7e1f846b	kvmppc_emulate_instruction
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x17a38eea	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2f469800	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x375bee5f	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x47b5aa3d	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x47fd43cd	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x702cfe4b	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x747a560b	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7a5f6555	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9cd0d3d8	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbc0ed07f	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbcce3991	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc5b96538	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xca978eb1	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd5aa6c40	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe1535de8	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe4823b9c	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf1ea4b7d	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf3b20003	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xc3d2525c	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x773ede9d	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x4b2485a0	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xd174082c	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x0f1b9e07	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x35b518ba	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x2ce8dbfa	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x88fe7b8f	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xd5394a54	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xde959068	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xdb7824a7	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xf26c312b	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x6cbdd765	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x3cf37b17	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xe17a2658	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/chacha_generic 0x46b9987f	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x4b9d408d	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x69fa14d5	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xbcc8df59	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x02e68d54	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1d1f4fd9	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2bd8d971	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3373b8fd	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x46a3b79f	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4b973c48	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x7031e352	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x809c725d	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa54e2902	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd14c83b2	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd671943e	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe5cccac2	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf5295e1f	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3cb8eebb	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3e7f662a	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x466c4aee	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x53d3f03c	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x56260763	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x5cdc0a68	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x9b8da3b8	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xaba4cf94	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xadb4d324	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb19a2150	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb4a4677c	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xba07dab4	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xbe2ca338	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe2542ede	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x1a69ff29	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x68f843d0	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xfc0e4721	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x5a795bbf	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x2fd7d760	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x941be22d	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xa52e6a91	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x385e5a17	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x09cb9771	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x18069aac	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1a92a17e	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x21772a02	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x4e5b91f5	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x5ddb4033	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x658af3a9	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6bd98129	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7d46b7bd	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x82ee3ea4	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x86d9469b	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x92185bbc	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xac35bfff	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xba980bd4	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc5382150	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc8a4e658	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc8e8e26b	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xce5da88a	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd69249a5	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xdbc4b32b	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xdeca52f7	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe973b43d	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xf931a87b	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xfbcc42b3	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1778c618	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x34cbf293	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x5b10ca68	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8fd50b33	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x928f6f27	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x9e1d5f6d	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xc47ac62b	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xd08f4326	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xda097520	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xdac4a22b	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xe6171788	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xe7704e96	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xe9781ae7	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf069a30c	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf903fd9d	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xfb88de4e	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0xa21d6382	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0x0c313a00	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+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/base/regmap/regmap-i3c 0x46b78bd4	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xe5fe5a9a	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xe7be973a	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x04e94242	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xccb6a745	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x08c01052	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x44901ef4	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x5753e18b	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xa7a7394a	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x87882670	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xa3cba0f4	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x04359a74	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0c8ee5b2	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x11bc9421	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x14e619a8	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x18184cf6	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1e7ffa5f	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2a24fd64	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2ab3fe5c	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x330abee5	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x483e6728	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x77b058eb	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7a12bd6a	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x938cf40a	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa59a9fcc	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb0043644	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb455901b	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xbfcf2512	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc5d387a3	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc5ec5863	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc81c242a	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc8c5e841	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd97ac3ab	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdc69c5a9	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf54021e5	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x071d2ab0	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x243fc793	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x667265be	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7477879d	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7c21c165	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xda6c7d1b	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x08c8d4c2	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2a0200f4	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x36817640	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5dcad44c	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x700a1fae	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x7b04becf	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8baa60f5	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa4412bfa	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa4df85cb	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xaa362ad6	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb9ee1834	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xbbb0ae52	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xcbdf09e6	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd9d17fcc	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xdb160e3f	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xed561b5e	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf57482b5	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x20d33fda	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x21adb324	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x490e0ed3	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x5ea09a56	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x61ea3a78	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7a01bb9e	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7d95f3e5	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xbfc3db6e	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc3085d54	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xcdaba805	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xfb2f1603	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x5a06c4c1	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x880251e8	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x9a9f00fe	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xacac5886	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xae663b4e	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x17636d6c	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x1a0665d8	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x2f1b7134	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x804582e5	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xe47a0a9a	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x19e95cb8	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x2571d2f1	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xe5053719	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xfd880074	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x32696db5	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x39b7deab	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x4906beca	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xa77911cb	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xd256458f	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x56c3ac4b	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x66f54d4c	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x6ed67073	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7e6e113f	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8216a8a9	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x96924208	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb79570c4	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc08c88f7	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd58ba0b9	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe49386a7	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf0726022	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf24ecf17	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf6e0fff9	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0x37b3b5fa	nx842_crypto_compress
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0x54a13d4b	nx842_crypto_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0x67a7a642	nx842_crypto_exit
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0xe48d22b1	nx842_crypto_decompress
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0xa64673bf	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0xfbac50b1	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x6028ee05	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xe958df04	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x00ceeceb	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x04d6cd93	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x207b3943	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4998f714	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x99bc1b5e	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xc39eb0a0	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xcf1a069c	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x19d212aa	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x28ec05b6	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x3436af48	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x3d89e06b	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x4b23c279	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x6f732223	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x9c6006b3	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xac8708a1	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb3b25655	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb46b40d8	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xd1bbb633	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xd7c783a9	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xdff6e3ed	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xe4ac361a	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xf42c61b6	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xfc3a40c3	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x3ca86085	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x8ba165f1	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x6cc95863	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x70b0d467	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xc03c2abf	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xc7d38b3a	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xdb912e08	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x0f031f25	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xecc05138	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x02bb5760	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x05c65a34	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x06080e2e	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0fc12df9	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x1496067e	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3c89beea	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x48446371	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7d0a0f1a	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa7422cde	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb343ae5b	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb7f20fee	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc85cf7de	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xce7c4f91	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xce7e439e	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd4adce51	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdac05d95	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe4128496	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf5812236	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfc5c7759	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2223f8be	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x466068d1	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x542752fb	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x5a91064b	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x9d8e75e6	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xa0e1428e	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xad975794	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb084d738	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc83e35c3	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd5f2f161	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd6b01654	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xe4a192a1	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x342f3011	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x54904666	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x60835399	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6e53cbd2	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x87a14580	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x91a4ecc5	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc157037e	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xca15f731	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xcbea201a	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd557ff63	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xe3f12151	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xebb955d2	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf881ec23	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3b17961d	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3c39e7c3	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x5654e2ed	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x753f8581	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb50f362e	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb7f63848	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xbb590be5	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x076c630c	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x0b39efb0	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x1cf13b37	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x232d5dfc	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x2d91d2c5	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x2e365277	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+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 0x7d7f6cab	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x7eb27608	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xb2638cc3	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd2435af3	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd942f235	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x73f6fac3	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x17e386c7	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0xdecd5b24	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x34f43eaf	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x84b059b8	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x8cf5bb43	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x9784b58c	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xe8ef0ce1	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x53d3160b	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x5e76c4ff	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x7c04db30	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xa2b943da	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xddf1fd08	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x5a9c1b25	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x6aeae6a8	__max730x_remove
+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 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x277fcadc	dw_hdmi_probe
+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 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 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 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+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 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd34bff95	dw_hdmi_bind
+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 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x02e8c7a7	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0cb428c7	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x1ffdd713	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x22d92663	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x257f012e	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x28deae16	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x30bb55ae	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x496c482f	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x497c5381	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4e6cc917	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x55addef8	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6453a9df	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6e41522d	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6edb642e	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7d466107	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7dcb7a81	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9e511a07	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9ec22cd8	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa49008f1	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb0963bbc	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb36f7b24	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb8256c07	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc34a2c32	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd16dc171	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xddbb125d	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe3ca8997	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe6be474a	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe6fb51fe	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xebaad094	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x0359caeb	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x29d91715	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2ce2bd83	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x5e52bc9b	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x6bd21acd	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xcfda02bd	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xe9057bf3	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x23074cab	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x26b8b7a8	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xe8ba8800	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0818f659	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0f13fb07	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15b42c9c	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x176953a8	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1dac2190	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1f1635cb	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1ff4c8e0	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3156ad37	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x33025764	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x330e456f	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4220cae4	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4466ea39	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x48a4a8f7	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4e636df9	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x50c38a98	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5bf5bcd2	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5f8b22aa	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6061a010	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6e6f2b77	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6f21a73b	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x710548f2	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7bf4ca10	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7ff991dc	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x84a88675	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8531da1d	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x85bfb918	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x931b94f2	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x96ee9e9d	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9986883f	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9f9db37c	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa42bc57e	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa7b5536a	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb46572ec	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbfa8456d	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcfc6f277	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd1cb6092	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdf69861c	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe0d1b4ad	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xec888e0e	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf4965b1f	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfc63cd8b	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfc7208e7	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xff89cf25	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0986ab6f	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0d324a89	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x13b82708	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x151c2937	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1fe1b9e0	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2008c274	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x21235ee3	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2940b905	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2a63347b	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x30d14a5b	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x39c4f998	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3a0bb40a	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3a3436a0	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3ba327a1	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3d2af359	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x47204c85	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4b76f8b9	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x59db459b	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x59f4928a	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x62464a10	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6777e577	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6a460bc6	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x71494312	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8f100242	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x915474f7	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x92843d4d	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x967a1cd0	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x992b4dab	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9b0d9e89	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa455575d	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa8ab8c3f	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa8b234f1	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb875fd3f	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xba6804ec	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcfeffab6	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd1a54511	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd1dc079e	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xde32637d	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe2d0c8e3	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe9f3616b	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xedf1c4e9	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf81fcf2f	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfd76205b	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfde964c4	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xce03d070	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x2e5535ab	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x53f7dadf	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x79776ce0	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x96fbf3da	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd75ca948	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd8c18e5a	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x14e2387c	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x2762156d	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x316e7089	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x67e9090c	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x908ab6ff	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x97404605	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa7b99163	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xabbffaf8	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xc2653b43	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x419711f0	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xa0839413	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x027875fe	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xa2afdc63	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x03620772	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x071d3ddb	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x08f45392	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x092a7315	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x249c8ca5	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2da3cc4e	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x58263494	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5d081e09	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6dd88d2a	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6f1dca15	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x748d43fb	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8c92bb58	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xbdd2935d	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcfcbcaaa	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdca014d5	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe8d3e409	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xede4d780	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xfdb8d2c9	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x10b33c26	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x6f0220c7	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xe32c0492	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x091130a5	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1eeb6a43	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2bd3faf2	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3ecbc9b7	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x550748af	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x648b8cce	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x68f85d9f	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x69cfa64f	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x745e7b48	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x75346974	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9ea9a2d0	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa1c5ccdb	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xac312dc2	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb250512e	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdf3e9767	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdf8063cd	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe64ecce1	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf6556125	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xff335537	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x446e02e9	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x529fe394	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x6d328add	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x701872fd	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x948807bb	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xaae49cbf	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xacb268bc	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xeae44c58	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xfe8b9541	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x81cbd07a	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x97ccb728	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x9bb9fb0c	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x0c3f0ec7	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x452b1d76	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x53ca6829	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x8c41b97b	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x92494d86	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa9f42dfc	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xadcf88eb	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb8f93ae7	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xc10f3b5d	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x1dd6ad93	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x3895616e	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x4df9d688	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x984eaf44	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x7f538924	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x17c633da	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1d6da114	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x33729e04	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x33bacb51	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x34732980	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x39c9dc03	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x402ec1a2	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x42917fb7	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x530dabe4	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x65463a26	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x715290cf	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x751a21a0	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x761ed5a0	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x92506816	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9e4bcb28	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa03441e3	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa54f4f9c	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb25bd6ae	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb97773ae	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb9a5d8db	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbd76b249	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd1cf2776	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xdbf70f61	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xee05c865	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfe88ac62	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x2e1ccc59	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xadaebddb	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x16d8b0b8	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x3fe83822	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x43ea6f5d	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xa2a3d92d	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x689aa722	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xcef83099	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe72dd598	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x88d2b331	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xd2737213	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x108b28ec	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x171e4973	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x1f35590b	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x36f5d77b	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x4c830b94	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9298c0df	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xab25bb18	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb93c1a18	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe950100a	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xec7160a9	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x18d612d7	iio_channel_cb_get_iio_dev
+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 0x6c6fabc8	iio_channel_get_all_cb
+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 0x9cdad2ad	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x54597e19	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 0xbb8e9387	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xee487760	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xcb58e701	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xd76d7bae	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x8aecef15	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x6c2c861e	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xccea4927	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x32412f12	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xda5b60c3	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x3f35a9eb	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x42c31b62	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x61e35801	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x065399b0	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xc468b972	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xe24c9bc5	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x054a3ae4	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x075169eb	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x07689085	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x09571eff	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x356ed737	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x3f4d7de0	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x73c5b16a	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x9d2b47d6	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xd0303a20	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xd44c12c8	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xefbd1666	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf1dcd733	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x1a7c3d46	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x4bc6e840	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x8fa2e31c	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xe4271796	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0a25a397	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0a67d4c3	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0afe76b1	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0c522212	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0f4f33b4	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x119346eb	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x128b7c39	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x144b3e62	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1b360de8	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1d7cb3fc	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1fd06e90	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x22e779cf	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2b247097	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x33ce8538	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x34f9297c	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x377574de	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x42894c59	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x48ac4f23	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x52b2f529	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x62455cac	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x670c264c	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6fb9c087	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x732bb9bc	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7538016f	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x75c8d5c7	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x77b9bef3	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7cc72e22	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x826822a3	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x885410ef	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8cd86ea8	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x98260717	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa6d302e1	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb68bb2ba	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb77a3f2f	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb9e2bc12	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbaac7c0f	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbcf8f8f5	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbd44a4a9	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc094fa15	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc7294c1f	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcad26a5e	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd2bf1d97	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdf16727c	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe824c32c	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeb0dc3a4	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeda09b02	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeee3f6e3	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xef91fb70	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf62eaf72	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf7ed174e	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xddb4831a	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0xb0910d6a	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x174e31ab	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x44efc468	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x6bba5586	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x91df7516	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xaf2e1ef7	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xe3918e1e	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xc35ad087	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xfa2e55e6	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x590cfc8f	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x15b92e23	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x27b2137b	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x30e54e20	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x42190b7a	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4408f5df	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4a80b512	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x57a6f4aa	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9e9d1abf	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbfa05ffc	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xcfee9b0b	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xd9fa46a5	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xf1eb88e4	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xfccb29de	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xa37e9625	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd8874a23	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xdaf05e3b	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x6af044fa	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x6bc8c9f4	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x14664243	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x36f4972a	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x9e056cac	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xda26aa1d	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xdc1cf580	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xdd2dcd4b	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0f773c6a	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x12c92130	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1b3da853	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1d160657	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1fb57c5b	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2f24a852	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x31ac3230	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3fa81a07	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8ec4604f	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x96b828ea	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xde6321ae	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe07bc73b	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0080e816	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x07c26d82	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0dbc2ba7	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x1a823b78	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x219f321b	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x29e798d2	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b1ad8e6	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x44ccdad0	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x45298215	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x63130b16	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x88e0d1b5	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x9a9cea09	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd6410618	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x038cb677	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x214c3b34	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x231c1276	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x34c6dc39	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x5c528606	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa11c7f65	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xac8d6b0a	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xde0f0da8	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xeeda8fa4	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x2d5e4af8	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x4f21e2d9	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x7c28156a	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x924aa548	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x9e8deced	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xa974c71f	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x03743c20	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x498dc13a	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x532bb653	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x7ecbbd3d	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x9d34e5e9	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xae6ad522	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb7034f36	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xbc3258b8	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xcd1cca9a	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xdfc3783c	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe2acef74	lp55xx_of_populate_pdata
+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
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x0a0527be	wf_register_client
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x226298b9	wf_register_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x2c717e37	wf_put_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x2d2b6d53	wf_unregister_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x57a1919c	wf_get_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x58b4fa43	wf_put_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x6b7c9348	wf_unregister_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x75147afa	wf_set_overtemp
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xbcace2a5	wf_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xd85c22cb	wf_get_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xda98f3de	wf_register_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xed82a14f	wf_clear_overtemp
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x02662693	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0e836e76	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x379792aa	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x4004793a	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x44b83018	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x4d139445	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x624eef1b	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9025e662	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9b7b1b50	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9edd79ba	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbe59ffdc	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc32a7d13	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc954e403	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xdbc2b9b9	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x10439a81	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19a02ba6	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x24ee2a7c	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2515e866	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2869bc82	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x40430b3f	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4f0eec50	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x52cb1bd3	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5a47b147	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x61f8a4a2	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x666af686	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x77db9ce2	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x78c4e77b	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x83195c57	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x8d0e2577	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x90d77239	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x93c8b623	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x97890220	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x9a530fe1	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa49f3127	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb19c0de4	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb7599baf	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb8cb3ae4	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc3af40d5	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xca6ae723	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xceafa6da	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xcf2b1b68	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd89fb73f	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xed607240	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xefba8a85	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf307604e	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0178bea7	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0f06193a	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17b1b815	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x238405d6	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x29ebc754	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4029b6de	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4e9be989	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x54104423	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7080de4b	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7525e084	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 0x799c56c2	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x89730658	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa0868c1f	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_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 0xc6f75595	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe9557787	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xea011eac	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xeb177783	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x402d1d6a	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x122127ce	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x49d0ed6e	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+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 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x17129c06	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x7d856a95	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 0x1cfb7d4a	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x23e37b77	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x2da22ddc	dm_rh_mark_nosync
+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 0x3dc8768b	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x443822d6	dm_region_hash_create
+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 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 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf1f9882f	dm_rh_dirty_log
+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 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2a97773d	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x31206d4b	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x5c60d7eb	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x652ab425	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb036f318	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc3f17580	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc404126b	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc8de6fa2	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xed8d5a74	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf4f3c088	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xffaa6069	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x0e508e34	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2080f21d	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x26ee0886	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x978cf8b1	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xb0abfb83	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xca6f793d	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xf0bea08a	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x23c6c41b	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x2e7b1c82	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4a392104	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x67a3e30f	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6868ad90	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x72ec1041	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+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 0x8e541963	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x95df0ce4	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x96a13370	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9a5b925e	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9efa9844	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xa0de53cd	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xa5e96b61	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xae7a424e	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xb57d5bbc	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc2545d64	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xdc1b12a4	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x02309166	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x30ddcc49	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3158fe0e	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3541705c	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x39ec9a79	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4125ec62	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x461141fc	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4c17dec6	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5297c624	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5c0596d8	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5c9f66b3	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x72ddb883	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x777c3cf1	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x781f80c1	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7defdad5	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x999f4b6e	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa72f1fe8	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa7342120	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xadd3c911	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb5ced250	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xbaba7ad1	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc04bcd25	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc253f745	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xce70caf6	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd6249b3e	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xdb9fcb76	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe1af9c09	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xeb3652e1	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf0c756e7	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x96883728	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xc5cb087b	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xef96947c	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0xd01c56f9	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xb95efcfc	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x04bb2f6e	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x09a4511b	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0b11315b	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0ed6287b	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x110fcdd3	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x12b643ae	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1b71d517	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x23a7f47d	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x272770b7	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x37cd29de	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x414587e7	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4c38b75a	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x585deccd	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x61015dc9	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x78476a01	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8808845c	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8d74c134	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9c2f7d1a	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9ff0f7bc	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa035d7ca	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa0789263	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa1268731	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xad124f14	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb6b351fa	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xba93958a	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbbbd6204	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xca644379	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd0b9b8ee	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xddfea05a	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xee68580a	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf35acd82	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0xbd6c2cd3	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x302e85c3	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xc2302ae1	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xc8f2ec86	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x1d4d78b1	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x82468ec4	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x44e6b7f5	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x52cad9b6	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0xd5d85941	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0xfd8367d0	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xc417154e	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x92c40acd	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x015d4e9d	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x051d7f57	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x09c338d1	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0d6dbe4b	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x18404b9c	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1ad215d2	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1c6782bc	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1c8eb73c	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x268304b3	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2a4f8564	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2fbb23f1	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x30198dc1	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3173be27	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3240599a	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x370ec9cf	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x398a786c	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3d5a83c0	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x41cef6c5	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x428a77e7	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x466d7553	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4adcc517	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x500be6cf	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5c531e65	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5f09abd4	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x65363c23	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6d29d761	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x779498fa	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x784d3f90	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7cb35caf	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8f5bf019	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x90a9382f	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x974c5a7b	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9f72ed67	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa2056f08	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa35caaa7	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa7d357e3	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xacac3591	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb3f94eb4	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb5af4779	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc4416190	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc4b68df6	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc894fb8f	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc9f5e768	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcc12f885	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdfbe89ad	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe357e693	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x2c8117a8	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x059402d3	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0aa2d163	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0f92310a	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x289f240f	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x37eb6b7e	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x4402dc0a	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x57a48cb6	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x586ef7d0	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5b76937b	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x61151a9d	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6909fad6	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x79c421ae	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x9e69dcad	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xa2cc630f	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xaad918e4	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb2603ee3	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd42289e1	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd94f53c5	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xfb2c79b5	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x13916ce4	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x198bd609	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1da38e10	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x23bf9445	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x31c335ee	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x339cc490	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x394d7e66	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3cfb5d74	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x516c15b8	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x54587f0f	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x545ad4d6	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x55e87268	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x5d1bcd15	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x81b64f59	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x9f40fbcc	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa6c59a99	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xaf4d8b74	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd34ef7bf	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe014d6da	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x36ea9235	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x4b90d731	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x4d4460bf	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x6d209647	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x8b9310bd	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xc608b3d5	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xd663126c	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x31165d18	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x5f46bc1c	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x65af07de	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x91f1800c	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xb350b72a	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xd304a241	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x4a425e6f	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x4ae96b22	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x62d0af76	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x7181053f	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xdbc395ae	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe708e74a	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xf84c6705	xvip_cleanup_resources
+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 0x8a483eed	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x72e6137b	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x78934ee6	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x6df4236b	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x9fe5133a	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xaff4bd7c	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xb2b637e9	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xe55213e4	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x009170a4	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0cb827d6	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2028a520	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x23b1ae4e	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x27832445	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x396df3fd	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x52f288d7	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x5e55ef53	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6a59ef0f	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6b52269e	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x862f4e69	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9943d990	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9954f2bb	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9c19e749	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb75b856c	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc93f02fe	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd46012c5	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd7ad6470	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdb3e7a6a	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe5f0f28a	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xee01e000	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0xc0b6b83e	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xef7a034c	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x7653215f	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x93325227	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0xeb7a9e4f	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x034e89e7	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x1d07d574	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x5e1caa10	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xfbbb4d63	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x3aff53d9	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x909302d8	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x65b6d260	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xa9af1451	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0xc263c583	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0b30d545	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2ea57550	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x39bafc99	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x52c0cd0e	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x63bc1a1b	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x764b4671	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x777321fa	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7983bb1a	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7c706dbe	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x80b8f8c8	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x899a429e	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x97c33daa	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa534b64e	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xba6115e3	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xbcf9c5de	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd1630e8f	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe4d53e11	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf06e2d35	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf2d46400	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf9cf6096	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x104c3ac1	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x0fcee4e0	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x0288368c	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1bb21159	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1de1bee7	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x37c7ecd3	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3f43144e	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6045ff17	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7273f2ae	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x76a6c14d	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8dd6de79	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x95131623	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9f70dd85	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9fa0d7d0	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc01f88a3	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd857479e	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xdbec54d5	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xec5469b7	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xec711de0	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xff555143	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x25980012	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x37f93345	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x8d14300f	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x9fc3622e	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+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
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+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 0xef15cc44	v4l2_hdmi_rx_colorimetry
+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 0x3969d4b0	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x95562338	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xf15fb9e4	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x34a6540d	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x517af261	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x570af534	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x71734f56	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7757b1c3	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7b1f3fef	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x8e0fa36a	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xbb0e340d	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe36cd0da	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe8839b40	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0393f259	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x03ac00ba	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0a1e6fce	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0ed43212	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x19b937b4	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1c355ec8	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1d655879	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1e19a64a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x213b36c8	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x23d30969	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x274a21c7	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x27e4a685	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2b837604	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2e6f9a41	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x36b510c1	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x52665dbe	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x56d99618	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6125922c	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x66876a1e	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6b170db5	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x764fe3b2	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7957d384	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8b7d6884	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9cb48d12	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9e1eac7f	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa1c906fe	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa245dcb0	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xaab2173f	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc55b2101	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc74f8502	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc789766a	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe792c0ba	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xef88eb04	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf45955b7	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfb7906ae	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0ae9c067	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x144c237f	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2095f7c8	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3ce3b187	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4591373e	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5f1f305e	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6386849c	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6ce290b6	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x74a1809c	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x74e9e675	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x77c062fc	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9368869f	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x991d57e4	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa0158edf	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb0868a6c	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc5f2ce06	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc6f173db	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xcb73f290	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xece8149f	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf1418b63	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf369320a	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf4c9f5fb	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf51248ef	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xfedb1302	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x113a7988	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x606bf1fd	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x6df3f77d	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x7a3a292f	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x80a40a3e	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xcc0734e4	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xdbcc4b59	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0075a595	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x02be6b04	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x07236083	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x07ce1e0b	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x07e03066	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11ade13f	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1984a13a	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x19d79ead	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1ec9d22a	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2226fcb1	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x227e471e	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x264917fe	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x27767964	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x278a81fc	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2903fc57	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2e40899f	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x44423d15	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x46419ce9	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x48c8c590	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x52144944	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x53fa8d18	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x562ed9ee	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5c2a23c1	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5c6ec502	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5d708c02	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6bf66d58	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 0x766f3ede	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x769ae327	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x79243661	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7fcb1ebc	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x875b8550	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8d3c483f	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x900c1644	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x953c5e39	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x999ba22c	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa4b9599a	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa6f9c45a	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xabe75c8d	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaed68287	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaef6e308	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb32330f2	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbbf95a58	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbfc6fa2d	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc1365441	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc2d777ee	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc54c5852	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc6ce540c	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xca4d4de0	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcdac87bd	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd1544170	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xda6cb94a	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdc4c36ed	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe8b7f385	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xea653a74	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 0xf35b43ee	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfa7426a1	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfadd6c2c	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfd8d4196	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x04583d70	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x0de01a29	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x8057c6a3	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x25631fd7	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x2f3e52d3	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x61117539	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb9c4419c	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xc04c9289	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xfc05bb88	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xfd0a28b5	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x1f16852a	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x27334a03	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x2f229844	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x44eee85e	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x70aed525	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbeaa5992	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xcc656134	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xde589ff9	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x2b1ecdeb	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x7052c8d9	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x98414a82	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x06f7b26f	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x52cb19b3	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x9a9044a4	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb9944873	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xb9c9006b	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xcfa7f897	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xf4472b22	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x311b247a	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xaea572a8	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xce57a016	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x003dc6bc	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x14835414	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x148e8854	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1e641160	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2c4ef94b	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x35238c79	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x46e147f5	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x57b64918	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x57bb9558	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x66031a4c	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x76f08bb4	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x805314e1	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x805ec8a1	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9d75e3d4	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9d783f94	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaf0778ac	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaf0aa4ec	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb7d20f1c	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb7dfd35c	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc36609ed	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc36bd5ad	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xde40fed8	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xde4d2298	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xec3265a0	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xec3fb9e0	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xec403b4b	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf4e71210	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf4eace50	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x511bc2c0	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x5445a4a4	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x7832f7d7	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xaf3bbbc7	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xbd344eaf	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xfd8e058f	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x1d206f20	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x58be3e53	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5aa77f6e	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x69a71c73	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x6a2f9112	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa0519703	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa1797bb9	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa3f7fe31	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xad09d88c	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xb5f82aeb	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf25e2021	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x54fd232e	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x86998aec	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x1125c57c	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x2fa2b991	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x6650596a	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xab9f8dec	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xf209a650	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x20d9782b	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+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/si476x-core 0x000b50a0	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x07ecd3d8	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x228a7838	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x251ef0e8	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x268cbafa	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2af91951	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x30e04f7b	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3ae8674b	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x470079c4	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x55121c9d	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5d70fbeb	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x64b3c48d	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x72714f59	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x74446700	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x78caa78f	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7bbc49ae	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x87ba4caf	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x918f2acf	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x92f90716	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9fc042ec	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa409d70c	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xab6c6755	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbe01393f	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc400cdd7	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcb0c58ba	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcec1948d	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd2544764	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd405686a	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd4336b41	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd792d0ac	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe16f4da7	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe44c697f	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf7b1125f	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf7ec1df6	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x7ca6dec6	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x845c3974	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xa8a642d1	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xade5e085	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xc09cd863	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x178b816c	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xe7d3f462	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x1ddaa430	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x2a2698cc	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x3ae303ac	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x46e3d923	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x1cd98312	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x61664626	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xa1401f36	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x258ae980	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x54877231	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x77e5d31f	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x77e9df31	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x8fcf8aa0	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xcacc5e03	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xd501040c	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xe3b1c68b	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0aa744c6	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0b79b8b6	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1535e3f2	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1b6480ed	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x207b1a09	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2eddd0ed	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x396c7bb4	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3e83990c	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x57ab62aa	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6c771c9a	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x728a768c	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x73698988	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x76c8e137	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x80122917	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x80a69845	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa30b5c9b	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb60c15d0	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc79f1f35	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xdd28b00e	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xddab0317	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xde86ba85	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe6769046	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xeea5a034	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf8de3ac1	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0a364c64	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0a567f11	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x1deade3c	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x2ee3dc82	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x37b8aa24	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x62f5b8b2	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x632e4800	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6b4da73d	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xaa011214	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xd164cfe6	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xee78ab4f	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf759f39c	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xfd62e19a	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x10e936d6	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x5676c76c	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x6d5ea793	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xe23bac42	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x00c738cd	cxl_fd_open
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x0661435b	cxl_allocate_afu_irqs
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x08921857	cxllib_get_PE_attributes
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x0f298633	cxllib_set_device_dma
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x1ab97e50	cxl_set_master
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x1b3d3b69	cxl_start_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x22c79dac	cxl_fd_mmap
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x289d85a9	cxl_read_adapter_vpd
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x46bbe412	cxl_fd_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x49f63aaf	cxl_fops_get_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x4efc00ef	cxl_set_driver_ops
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x516374e9	cxl_unmap_afu_irq
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x53ea2b3a	cxllib_get_xsl_config
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x5c658b6f	cxllib_switch_phb_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x5d999c5c	cxl_afu_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x60479f23	cxllib_handle_fault
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x663d35c4	cxl_dev_context_init
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x6af5f556	cxl_psa_map
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x715f8047	cxl_release_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x7a418137	cxl_fd_release
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x81f8da8e	cxl_start_work
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x85376255	cxl_fd_ioctl
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x8740bc47	cxl_psa_unmap
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x93475dc3	cxllib_slot_is_supported
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x97240194	cxl_context_events_pending
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xa06f20d8	cxl_stop_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xa6473aa2	cxl_perst_reloads_same_image
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xa834ffbd	cxl_fd_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xb45fd8d6	cxl_set_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xbceb82fd	cxl_get_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xbfd1f6e9	cxl_pci_to_cfg_record
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xc688c82f	cxl_pci_to_afu
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xca6dc3cc	cxl_free_afu_irqs
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xd08b8029	cxl_process_element
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xd24b416c	cxl_get_fd
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xe97a3c8d	cxl_get_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xfb721573	cxl_map_afu_irq
+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
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+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 0x136edaa9	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1a65b2d1	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x33232d6c	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x44f46a26	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x47a64dc3	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa0340380	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xba79161c	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xeb374642	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x0ef607ac	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x185de750	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x611a14d7	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x7e1cffde	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa3f8df84	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xaebbeeaf	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xeea74d39	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xf853c14d	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x03d056ea	ocxl_afu_set_private
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x0e768e0f	ocxl_context_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x1585d600	ocxl_config_set_afu_pasid
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x17badc68	ocxl_afu_get_private
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x228eef71	ocxl_afu_get
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x22ca1e3f	ocxl_afu_config
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x2bcf6d18	ocxl_context_free
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x2d876dd2	ocxl_link_remove_pe
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x323077c7	ocxl_config_set_afu_state
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x37704719	ocxl_link_setup
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x38023857	ocxl_function_fetch_afu
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x383f4dc0	ocxl_config_read_function
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x394a78c6	ocxl_global_mmio_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x52e82770	ocxl_afu_irq_free
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x562d17a1	ocxl_global_mmio_set32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x5bbcdfa5	ocxl_config_get_actag_info
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x5d8814ea	ocxl_link_free_irq
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x6e44c162	ocxl_afu_irq_get_addr
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x71dfd3d0	ocxl_function_config
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x758080a4	ocxl_global_mmio_clear32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x7f3c213e	ocxl_context_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x92541315	ocxl_global_mmio_read64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x9e707df9	ocxl_config_set_TL
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xa0bebdcf	ocxl_afu_irq_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xa3ab132b	ocxl_config_set_actag
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xa5e34eab	ocxl_afu_put
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xb35241b0	ocxl_global_mmio_write64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xb434cf75	ocxl_global_mmio_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xb477a31f	ocxl_irq_set_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xb49540c6	ocxl_function_open
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xc0a2a9ae	ocxl_config_set_afu_actag
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xca971856	ocxl_function_close
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xd7862020	ocxl_function_afu_list
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xdc352ed7	ocxl_global_mmio_set64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xe075e078	ocxl_link_add_pe
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xe897ce82	ocxl_link_release
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xe90e8d80	ocxl_config_read_afu
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xebdc395f	ocxl_link_irq_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xed99055f	ocxl_config_terminate_pasid
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xf28825b8	ocxl_context_attach
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xff98b9d2	ocxl_global_mmio_clear64
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x01ca40f8	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x059ca639	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0bd805f8	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0de51f11	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1c5a303f	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x27c2491b	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3c25542c	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x413d1411	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x420afce6	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4238dfe0	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4d893b6e	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x52e834f5	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x54729c03	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x562b5915	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5bd62b1f	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x663fa6e0	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6ddb7dc8	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6f093fdc	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x77ad34f7	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x81be083f	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x841e5929	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x856be4a1	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x878f02f1	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x89ba4dd4	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x92aa1a84	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa0d1b7f3	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa768bbf3	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xaa398052	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb6e2d679	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbedbc758	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc9701cf3	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xca7c93aa	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd1be27f1	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xdf62fbd2	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe4aae571	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe50b350f	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf134a139	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf6a200a3	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xff28456a	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x04552ede	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x63417d08	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x6f338a84	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x9c8a1c01	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb6e4ca0f	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xc7f4c844	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xcaaf0a83	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xe7f2df8a	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf44b5ca3	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x1faf4b5e	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x20866eb6	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xe2b16ec8	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x003bd9aa	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x7e69927a	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xf3c2162c	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x91fcbf2d	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xb0c4617d	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xcca4a3f8	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xe84727d1	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x8895511c	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xc1780cfa	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x01a207ef	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1569ad27	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x17cb75e1	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2679cfca	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2969c6e4	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2ab9cc5d	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x305664e8	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x332ddab0	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3466ab41	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x38843481	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3946de1b	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x405461d5	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x427fd616	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x46d2cb2c	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x53e44bb1	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x595da1dc	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6c402845	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6cb54f29	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x70846127	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x74aa82d3	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x76236635	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7d151ed8	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x80491143	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x81a5e661	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x858b85e8	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x87f10281	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8848b39f	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x89b477e2	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9005e2f2	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x914d8467	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x915204a8	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9afa13b6	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa50d0a43	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa6b459d7	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xae900853	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xae9c4556	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb06521cb	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb11cce81	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb35c16b5	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb54df869	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xba4c66ed	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc60bea5e	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc6c173c6	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc6ccfbe2	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd2229b66	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xdb56b0d8	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe0031218	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe20435a5	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe8c418ff	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe9e2025a	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xebd2a5e9	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xecc886bc	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xef1be7e6	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf4b676d1	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x006cb418	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x481d3dc0	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x61bc01ca	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xb09ff3b4	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xef96fece	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x08d81030	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x30e66a53	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x47d10092	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x537e33d9	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x57e7045b	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x634fe04d	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x80a55bf0	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x857dee9f	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa350adf1	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xaa69fc83	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xb5a955d1	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf0e69873	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf574f9b1	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x5d992a90	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xbaf445c9	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x10f79bca	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x02c1c240	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x08e44b57	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1eda0fe6	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x300771a8	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x303aef78	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x33ca6806	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x39ec93f7	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x3bf61f17	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x447de353	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x46aa4fba	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x49c3a52d	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x4ee907d7	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5764482d	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5dd21dd2	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6b18c0a5	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8139a554	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8c1e4dc1	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8c615ac7	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa17dc1aa	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xab4c8c1b	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xad3c9637	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xafcf2754	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbb514ba9	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xcc44f1f5	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe1750c8e	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe3056ee3	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x1d85ac7a	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x430d19fc	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xfe1e2c2f	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x0288da3d	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x0959e0b5	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1ea7ff04	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 0x43d6d288	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x45dc8c39	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x5c0c3500	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6b4f7fe8	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6fec91c2	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x70cefacc	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xbb5f48a3	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc29baf56	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xde1658c1	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe7bb6300	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf43062f6	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x34452ff4	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x46d11ea5	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x4cbb7804	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x6216d3e4	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x6e52945d	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb25290a5	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb54b1540	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb5f0386c	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xbdbc9446	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xbe4f6cdc	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xc845f4f8	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xe78a192c	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xf7d46b0b	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x64ec5e7f	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xe4735966	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x10a1973c	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x50f7f5ba	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x923d05b4	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa3b5fbd7	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xb0522810	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xd26f9d8e	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x02495702	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x0573ebbc	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x1b0a8e88	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x230de666	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x2a9f75db	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x42907bda	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x49f6609f	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x4d5be729	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x502e666e	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x535866e8	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x53b4e769	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x61f5dce3	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x6a43f6b0	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x7ceccdd3	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8078a5a7	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x8a3f7196	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9328d174	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x94106a86	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0x9be774bf	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xac331819	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xaeb61115	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc2e23794	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xc6be82e8	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd0d76043	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd296ef67	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xd689d548	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/can-dev 0xecb10d58	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x0cc996ea	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x412294d1	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x5a1b5b5e	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xa6153bb3	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x18a55e78	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x47d7ab86	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4eb8b99a	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x85652b8d	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc45d2bfd	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xd849cbd4	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf1a5f59a	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf5516428	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x6daa176b	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x7c084700	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xbf16d494	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xe98f5277	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x52d0ac4b	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x07ce5706	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1a05fd90	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1dd2d47c	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x62f889ca	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x64c36c4a	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7f1c709d	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8064aec3	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa602d789	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xac6f7e6b	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xae893b57	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd1e7dfbf	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe0f08830	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe857b40d	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe8aaa54c	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xea97cc07	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf73b0412	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xfb2a7513	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0f044d32	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x341b303f	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3573f9db	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4408c25d	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6424cd37	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7256230f	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x81734443	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9e388d95	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa6e2a9a7	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa8d78096	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xae2e8b95	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb3aea466	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe1c5fd51	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xee778465	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf0b6f269	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf331ee31	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00282014	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0296ac89	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06f20219	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08da3c56	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x092f270b	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09cd5605	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0db9601b	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e3f7f9a	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x124eac56	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1781d540	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19097d05	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1a9e27d5	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b853880	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c4f5477	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e0d1d5b	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f5bb80b	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x274bb930	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2951b004	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c90e96f	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f0b1250	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31341868	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32c65a3e	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3353bdbd	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37eb4b32	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a9d15c1	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3afaee3e	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d94b716	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f177112	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x428a49b2	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46a8c4d0	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49425b45	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49521b5c	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a4a1115	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b9d82e3	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x500d5a32	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50696e0b	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x515697c5	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bb7a841	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60ffc776	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x646331c2	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64fa91c9	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x668489cd	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x686bf2c5	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bbf11ea	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d24f585	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72da1999	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73246cff	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x734ec428	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x744742dd	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78d73a1f	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79ea190b	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7bf2d1f0	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f622f3e	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f8cee97	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85eb8e18	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8830372f	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8bfbe4ba	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e5ea286	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8efa880e	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x907c33ea	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90d9ddfc	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9132d2a7	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91c2f5bb	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92cc5694	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93a7bb4d	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x978bda59	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9937346b	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b5708b9	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d24254a	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e8f2bf0	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9eb5770e	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa31f1309	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3f4058f	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4f3e459	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5599666	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6d8cc1b	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6dcb9ab	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa4f72ed	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaae246f9	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xacd09fa2	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae410364	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3f464f0	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4b168d7	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6795157	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb97a895d	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd345e45	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe92190b	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbebe68c7	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3294d50	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4b8e60a	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc52dd0e2	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc61a7d38	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc674f942	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc74b483d	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8641c75	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9273225	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc950f3e1	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9857185	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb9b7769	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc13c0ed	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce859303	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd18ccc95	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3c1e362	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4d7c4aa	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6aadcdb	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7d139b5	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd80fc194	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd87c2e14	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd92fbbcc	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2bf276d	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe47b241c	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe482491e	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6bf2c75	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8038bfc	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8979d62	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9aee258	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea4f410e	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb68acbb	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf31285ce	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf65309b8	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf80577eb	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf81a0c81	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8ae0bf8	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8e5f17d	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf99d4410	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa9a3399	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01d29812	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01e0d44c	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03c4ea91	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0519f62b	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x064519f0	mlx5_core_modify_hca_vport_context
+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 0x094971da	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0abf53fb	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c26892c	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10ce11ac	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13750070	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1533ebd6	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x154104e0	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x185c9e84	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1bf6c872	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f2ff297	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x217bf302	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2259d0a9	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x232ae09d	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23be001b	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x242e4603	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c8aed78	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x334a1df2	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34745442	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3519fcf4	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37b35827	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40695bc7	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x423b993d	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x437fbda9	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e3de152	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5403e2ec	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57818fb3	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59333535	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cd5781f	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x63946056	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a15836d	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b22fa35	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6df7df1b	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f206cd8	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f5923a7	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f5b33d7	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6fc93a1a	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7094caa2	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76296121	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76fd1c74	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78fead57	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x792403ab	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79635322	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87bef153	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x882157e6	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x887ff2e0	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8af61d33	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9111aa7a	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x983be135	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x993f8a32	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99c4e765	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a8f6e84	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c6ee5f7	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa594c2c9	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7b71a77	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7cfb516	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa40ac18	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6bcd51e	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb19d1b7	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc07283e9	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2fc738f	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3b2b54c	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc494decf	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc67275bd	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc74f265f	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7c698b5	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc88e5b85	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc94f4b92	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9820b2b	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca171591	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcfb64cc1	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4c91603	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd539ec5a	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb12cc93	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3729edd	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe92a18ea	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe9442b72	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea5f9c46	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee7d8572	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef66c51e	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf89b198a	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd035144	mlx5_buf_free
+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 0xed31676d	devm_regmap_init_encx24j600
+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 0x128a29ec	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x3a1bcb40	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x4585c74c	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xbd1e9312	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x44d9dbdb	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7f3e84ff	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb386c405	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xda1dff8b	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xec4a4873	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x566f2600	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x87a735a6	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x9d76098f	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xcd1168a3	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xa5fe8d6a	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x39e85f8f	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x410d479b	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x5c9ed544	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x9d890b79	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xd839a9b0	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x0ccd9153	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x9fd56d73	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xafa7cee5	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xdf7daa3a	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x3825a481	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xe378ac2e	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x01b77964	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x0df3221e	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x20855fe3	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4059bbcb	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6554072d	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x660260e0	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6a4baeea	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x99e88e7b	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa9bec7fe	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xaa540187	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xae6da5ba	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb6ef84e6	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xcd5efb7d	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd136821d	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd17f793f	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd7f35764	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf0655c9d	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf43ac3ef	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x0f2df6f7	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x01b3a8ee	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+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 0x27bef722	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x68036ec5	phylink_fixed_state_cb
+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 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xd539951b	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf249eb64	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x542ad1ad	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x5e9de691	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x67e97a2b	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x7f32241e	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x8f45ea23	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x99ec6143	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xb3c308fa	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc270f3c3	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xf39d0bc7	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x592a122a	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x98eaff07	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xb8f74dbe	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xe0ee0a2b	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xeea6f045	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x1146e86b	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x2c9cdaa5	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x46f8e91f	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xb6ddd523	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc1e3e116	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xde0c16ce	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xe6aca5a4	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xea11a691	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf89e4701	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x174ff837	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x59036ba4	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x8c5c8cca	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x936340bc	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xa8ec43b1	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xc3bbe4a8	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0027d8f9	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x00b760c3	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x00dd40f9	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0632ca04	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x07f155fd	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0b35cc0b	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1aa92e5d	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2880361d	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x29c9c859	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3829e632	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x394e9614	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3b0e31d0	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3bb833de	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3caf1279	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x416938e5	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4f12d1cb	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x55cb5e89	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x63accccd	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6c168c96	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7ddaaea6	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x83012ad6	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x86192a7c	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x894c52a8	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8eebcade	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9734e097	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb80694d7	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbd500bb2	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbe217ec8	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc7864d75	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd79fb001	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe3f7b660	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe7f9dd61	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfb215458	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x1ba1fd37	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xcc0c9a7d	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xe8fc1d5c	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xfad62f29	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0a88292d	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1766fa4b	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x37ea2629	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3ab5917f	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3cbc4cf5	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x47232222	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7d8017fa	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8559f2f2	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8dc20634	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8e608b48	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x99b66f00	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd8dbe7f6	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xdc688a5a	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xdf0104b6	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe74b03cf	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xfb34f8c6	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x52869ec3	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x154ba842	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x74519edf	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc1aa92	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcc23995b	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd89f8894	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0c7ff271	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0dbd3874	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0f76b857	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x14b39b12	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x191c2461	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1bf1734a	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x21ece34c	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x229d8b26	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x25514c47	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x29d24fdd	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2afb9cf5	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x311d9f91	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35307150	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35b4d677	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x38a908de	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3dfee887	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3e79e9ba	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x50cbb084	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x51115449	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6799350e	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6830c2a8	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x69bf74f2	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6e4a86d9	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x724e8822	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7307e077	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x75d48ef8	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7bb1a401	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7bb72b0c	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x841780d4	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x89505c18	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8a062121	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8d6bc172	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8eaeb499	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8fb85ac9	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9818a0e0	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x98595c3f	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9e04135a	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9f4ef3a5	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9f693fc1	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa05b99a7	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa321cbac	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa5196a31	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa690f47e	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb2d3b3ac	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb66bdfac	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbfe96608	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc421c18f	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcdf5de9a	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcf912fde	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcfb1344c	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd70c80dc	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdac2ff4a	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xde20d909	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe5655239	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xecdcd74f	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xedf3f402	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xee145aa9	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf238727b	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf57f0617	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfe9d570a	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x062f3577	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x0db09d6b	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x366a1ff3	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x850d4f8b	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xc05755a0	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xe6f588a7	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf2161ed4	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf7907779	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xfe6d083d	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x02f8d60f	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0b67f202	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1b2ddf39	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x23613aca	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x244179d6	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x26966d66	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3d425c9d	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x47fbc759	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x84127ebb	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8f85e4d6	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x9d625925	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa169a36f	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xafdd63cd	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb9737130	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xcf154472	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfdba740b	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x597cd584	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x5fed04ee	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7969130d	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xbbc066e2	lbtf_add_card
+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 0xd67fdecb	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xdeb5c2ae	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf898a04a	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xfdd34c67	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0107d83c	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x03a5eccb	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0ee7899f	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x23e418b4	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x24e6edff	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2524be95	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x44a3c487	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4a6c87dc	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4c0321b4	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5d9ceda4	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5ef9b0c9	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x78b78791	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x87de53dc	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8fd95d73	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9030c12d	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x92d77396	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9dd9fd36	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xaae90642	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xaca0f1aa	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xafe8f875	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc682cc83	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd2ad78b3	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf0e323eb	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf8acbfc5	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x21cd1fd6	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x24e6f407	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2bc21d0d	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2c676076	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2ebc660c	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x34f7dcb5	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x377ade4d	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x387b86a4	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3fa92cd3	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x49c9e76a	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x49ebd29d	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4ff9eb1c	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x50a45d2b	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x55a8c982	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x56e82933	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5e5d34f0	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x63bf0502	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x63ee1c11	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x69ad4ca5	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x69e49fe8	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6a0987ff	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6c6ed316	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6dc12853	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x773a05c7	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x77a9f085	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x81012cfc	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8bb62952	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x935b3b41	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x97d0ea83	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9c2ae794	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa009b1f8	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa436eb0b	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb20ba5aa	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb2549165	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbb03584b	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbdd62c61	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc0fa5352	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc1dc914e	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc304e08d	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc740dbfb	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc7f832ff	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcc74b292	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd155b88a	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd59749e0	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd808832d	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe432474d	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe84acb68	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe9ddb9c6	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeaadbec6	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf22b964b	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf643fc90	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfb1b619e	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfd2c6edb	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x1dde3aa1	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x462dd91c	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x761a059e	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7c7f5058	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7dafa31e	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa0dd549a	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa1a521da	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xef906ce9	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x578c582e	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x5ea1f711	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x64327a13	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa2be0950	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb046f993	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xbb22a203	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe94e65c4	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00b814bc	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x01456215	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x07dfc7a0	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x08061f68	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0985e97e	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0ad89270	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0f3a821f	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x128d2282	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x15c6dc39	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1aee9b0a	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x21650298	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x261e3ec2	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2867e4b3	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2f4a6fbc	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x301bedde	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x365a15c7	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x387c3fba	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b37a6c0	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b76f0b0	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3c959827	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3ccd9db0	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3eb5a88d	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x43bfd475	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x44d3acab	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x54397ac2	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d70810b	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5ff88aea	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x60cebfed	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6fd02ad5	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75d431bb	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7a820b3a	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7c5a5a93	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ed16d73	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7f4654e1	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x891ffc9b	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x89de7bbd	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8d9dc8e9	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9161ae81	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9217895b	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95ae70f0	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x96e891b8	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9a33e043	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9b21e51e	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xac95f57a	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xadc2f1e1	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xae09945d	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xafc1f92e	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb4662627	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb9d44b89	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbb8ad1b8	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbdd56850	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbfd0dcbb	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc22467e7	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc352602f	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd0f5d3e0	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd6d1a1c2	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdfe2cae8	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe2c7316e	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xed7b0c49	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf14109b1	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf97e7ffb	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfaeaea6f	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfeb908c5	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x48839143	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x601a1efa	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x9499c62e	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xbd6e2c75	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xd3c763c3	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xd6715525	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe7a2be67	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x01096cb7	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x02ffbac5	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x09a617d8	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0dc5f3d7	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x318e1654	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3c96dd72	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x65bbef96	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7a89aeeb	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8ad76848	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9fbbd8e2	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa6c9d505	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc32072bf	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xdbe71c78	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe1025237	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xeed61b6a	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf70f3e32	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf77a0218	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf9a4cc76	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfe756414	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x21014cef	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2373c9e6	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x4bc0d22f	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x64e6306e	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x660cf35b	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6aaba166	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xad381989	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xae8459e0	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xba6bd218	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x03a7711c	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x04055e3f	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b9e5300	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x17c1e369	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1f948189	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x29b587e4	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2a544d3d	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2c17a071	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x38141858	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x46840c85	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x48be7d2b	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x49487c81	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4a483fca	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4d52ae9d	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x54d51f4d	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6223296d	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7aa20627	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7cc6e7b0	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x816ea8f9	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8cd0aa23	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8e79427e	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa58ab9ce	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xaf112721	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb2075def	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xba60dc9c	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbffa6bc2	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc26faf0c	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc2b0c4dc	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc79ed646	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcb30a93e	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd21e63ad	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd701eeb4	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd8c27566	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdd8f67c6	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe025db8f	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe32f3ca4	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe35524c9	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe36ec00d	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5129f14	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5e19f87	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xea748909	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xeb42ec28	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf2f21b3a	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfcd8b58a	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x13a07ade	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x25dbec46	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3b7d2557	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x423c7811	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x46381b1a	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4d3b9e29	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6a587755	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7c272f1c	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x85fd85f2	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa3f3e57a	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdb74feba	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdf0f71c6	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe2cc5999	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe5ba7ddc	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xeb363c53	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf6578f46	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0190a76c	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x050f8cc2	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x148eee79	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1a2ee2fb	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1d59127d	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x22ba2b24	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x27d45e8b	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3430bb37	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3966eda7	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3c0016a1	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3fad8ed1	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4043beec	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x48e7bff9	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x524d23a2	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x563b1c65	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5836acd7	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x59085783	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x60d6c2f7	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x673be7ee	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6d66e91b	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6e401434	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x73b50739	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x75ce6342	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x880e9852	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x89c4d98d	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9380d782	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9685b1ac	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0298f6d	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0ce2e1a	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb302b953	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbc259f83	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbc43e86a	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc383691f	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc7e99207	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc8fd6b38	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcc4b1089	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcd1d2d78	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcd34041f	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd6818b2c	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd7f622dd	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd8e474dd	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdf15cfa9	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe63a9362	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xeb71c52b	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xef25019b	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf5c545a2	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x24f39163	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x727b0268	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7842c450	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x8c49ae1f	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x8fb921a9	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x88b1a91b	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x91613271	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xc591f2b2	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xcbfa866d	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x17202584	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x30360c90	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x54c47c54	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x64e6f6bb	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x69d590a3	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6f614eba	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7f7a191d	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8c5ebea8	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x90fe78cf	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x96e0b75a	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xacbf593c	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb2a12e8e	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb33678ae	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc6657f32	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xccc18b61	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf09c8983	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x53efc5ee	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x71f5a071	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7aff3578	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb209875d	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x17189f5c	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x207dd761	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x29d475a9	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2bd7e956	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x31338b88	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x333f625a	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x39c1f924	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3a400adf	rtl8723ae_firmware_selfreset
+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 0x41d8bb5d	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4a1d33e7	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x518fbb3d	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x56bcde9a	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x58a704bd	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x687ddc3d	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8253262e	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x844ed564	rtl8723_phy_save_mac_registers
+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 0x8eafeae7	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaa58594c	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd187f41a	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd2011ca1	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd93e285a	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdb90b416	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdc2c5582	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe7386315	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeb5a6e64	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04932230	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0d0b6636	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1373ae63	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x15202405	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x17759f12	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c57357e	rtl_init_core
+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 0x36dadb9a	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3d4ed150	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4f68d89a	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x575a5e2e	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5c214c75	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5f2b0791	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x62ce7491	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6f76e8ec	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x74708bae	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7ba19cae	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x88081413	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8dd18446	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8f371cb2	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xabbaf4d3	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc25f59c7	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc5c66674	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd43ff5a8	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd5073420	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdcfe550a	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf8457ca9	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x285e5c82	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x9d1618ca	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xb1e062c8	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcc305b44	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xe3854788	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x6a47020c	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x897ef7dc	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xa2676d42	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xa965c57c	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x29ea02fa	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x3048439d	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x67fcd20c	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x00d25765	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x07d5d862	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0aa29837	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x12e61a02	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1701cc95	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1d7a636b	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x26338436	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3140bce2	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x33c81541	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x342a1dd4	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x34559d81	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x34f99e64	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4535bcf1	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4591ff7d	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x45f3ebde	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x48bfb260	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x55001e2c	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5b18eb81	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5b283395	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7388d1a9	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7d6c30a4	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8847c9e7	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9295366a	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x95b2a932	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9f5ded64	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa512cf6d	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa571ea28	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa65adbfe	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa802df4c	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xad64956f	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb58fcc43	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc9a57441	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd031e9a9	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd19ea307	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdb9a7516	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdd5b1066	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe5d80940	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe703aeb5	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xea7ef6bc	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xed0110c3	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xeeadcea8	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf764d693	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xffafddf2	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xce0660f4	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xe62a9026	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf1e9da1b	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf8f8ed14	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1ad82d4b	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1d00e4d8	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x49c36737	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xc69eff98	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x289db6cf	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x474a1dae	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x669030b5	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x6b17b06e	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x8441c2cd	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x8655767f	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x8a6777c7	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb0110eed	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x805fcdde	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xbb1b9676	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xc7d971e1	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+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 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 0xd83dba40	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xe7ffd3f5	ntb_transport_register_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/ntb/ntb_transport 0xfa8aa236	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x0d4f385c	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xf242a6ee	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x00940996	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x00f23648	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x010cbda6	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x038e84c4	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x05a644d5	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0b4fab92	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x10354c11	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x15166a77	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x15eb2e14	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x170318d9	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x38393fa9	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x43f9cf2b	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4bf36b3b	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4fe8ebb8	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5aabd85a	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5c8b1729	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6398bf2d	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x645d05a0	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x701cd21d	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x73718767	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x73fe073b	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x890cc661	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8930a1aa	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8e59d9bb	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9e6fa0d4	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9ed9191d	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb14cce18	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb94c094b	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc4a8e6d6	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcd396cce	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcdb01938	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd39146ba	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd3bf4a1e	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd9f0c99d	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdacf07a3	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf39082ac	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfd469c99	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x052c7067	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0e22d9cf	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x151d4c16	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6eda18f9	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x804a1954	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8cf6e344	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8e21895d	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa298a36d	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xafa7d27b	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xb4867f0e	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xb7aeed3a	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfff037f8	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+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 0xf821984e	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x104d6cce	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x1163c718	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2b6ffaa6	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x582a9702	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x5f29454c	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x704d6ff6	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x8ec78f8d	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xc76bdc60	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xd6feab2e	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf1d5ebd6	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf26c8839	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x95ed9b0c	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/pnv-php 0x07a1952e	pnv_php_find_slot
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/pnv-php 0xee1afc09	pnv_php_set_slot_power_state
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0x01cc7086	rpaphp_slot_head
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0x3055a3d8	rpaphp_check_drc_props
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0x5a3380b9	rpaphp_add_slot
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0xccbe7591	rpaphp_deregister_slot
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0xa28de5c8	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x17e7c0c8	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x96036a71	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xdb02b306	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xf0ea7ee1	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x1df7485b	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x6009723c	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xea302b9c	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x3746d430	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xcccf510b	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xffa724ae	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x04e8e17d	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x1084ec25	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xf48cf66c	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xfade779a	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xfeffb7ae	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x2933f7fd	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x51f14dc1	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x77156869	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xaf5a83b9	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xb7302a0a	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xc7b3dfe4	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x50c1d67b	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x83ad7ca4	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x009a9b77	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x05cfd4f2	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0a1bcd71	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x11d340c2	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x13d6e799	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1623dcc8	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x29780def	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2ce773a7	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2e9819ef	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x31ac8187	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x36c77cc0	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3ba113d0	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3de1ae7b	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4003f4e9	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4495eee9	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x55b660db	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5e4a5b9c	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5ea18179	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x63cb36b0	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6929a526	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6c14abc9	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6c41b2e7	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6f9dbbff	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x792bbc68	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x808f79d3	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x83e8c92d	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8795d4b8	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x891cdadd	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x972d637b	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9f9ff205	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa069fdd7	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa1ad3e12	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa756e44f	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa7ce450f	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb1e8aec8	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb6b661ed	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xda4f4f99	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe7cb7052	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe9e65be1	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xed2551bb	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xed2806bf	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfb1c740f	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfdd66036	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfde77674	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x032007fc	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0b92ce3f	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1239d222	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1b7e292c	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4ebdb45c	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4f2ed627	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x92997f7f	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x98b85a18	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa42377f9	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb7657737	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbbc9669e	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd7562790	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xddefc783	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe0f74f4a	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf10e75cd	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf6278106	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x790c5267	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xd289d765	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x066ec25c	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x33d7f8f1	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x52662d5d	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x77f05b3e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x847bc398	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x9171c424	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xf35c7af8	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x01110402	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0879a550	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0ab6910e	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x110a25b8	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1409d372	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x140ac7d2	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1c9cd1f3	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1dca2b4c	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x23c275ca	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x24627b69	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x24ff09a9	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x27a9fa02	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x309d9530	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3ce31142	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x434d2546	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x46262048	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4a4fc63b	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x57b913b2	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5a4fe65b	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5ff9c7c2	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x65be56bd	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7d03a37e	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x88768555	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x92a83b0a	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x999f7b92	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9ee5ddf3	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9f122df0	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9fd73dca	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa3cc4dcf	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa43b60fb	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa541e22b	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa5e5d417	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa83adcb9	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa8df4196	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xaa424040	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xabb71b3d	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xaf7bf2f7	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb2a52410	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xee325923	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xef1751d0	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf01be4c9	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf442df36	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1e2319e0	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1f49107b	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x36c8e76a	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3ab93f3c	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3bd7c5c1	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3ebaa48c	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x48c7381e	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5368418c	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x58f227ce	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x65689550	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x663aa666	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb8d875ce	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb97d7f7f	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xdb824095	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xdee0714f	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf0445f0d	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf80e910d	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0d561148	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1b73ad9b	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2c7b0576	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2d905e6c	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2dc6d3e0	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2ea8a150	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3a4887a5	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3bb5d9ec	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x508a3d02	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7912c350	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9ce2a3e2	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa1dfb0b8	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb4dc5dac	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc036c308	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcd7e3c3e	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd86a9b6e	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xde579a75	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdf373ed1	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe826053c	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xec2abc83	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf54161cc	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf54d8812	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa5fd23e	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfb78a25f	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x08967213	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x15f38152	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1b9dde65	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x214058be	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x21435464	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x251b8bb8	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2b50d292	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2c669f57	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2ce1a276	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x31b336ba	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3a627340	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3dff3057	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4393ab6c	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x49339a84	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4c8230f2	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5e194094	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6230c307	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x69132bc2	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6baff5d0	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x71aa3cb7	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7fd1ea4b	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x81c86412	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84b6ce28	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84cd03c0	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x87de0f64	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8a152381	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9c8b88a6	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa158a9f0	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xae93b344	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaf27f4a3	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb096e7e3	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb30d9918	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb4adfdef	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbdde4cb5	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc6c0976a	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc9ec2364	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcc31f6db	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcf623775	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd0caca1c	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd7db23ff	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf9938bed	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfb00ed35	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfdd2e2d8	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfdd9ab1f	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x2464c711	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x47eb0961	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x80c7b661	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xc6e9c74d	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 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xfc520315	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x347a5abb	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x34f9489d	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x3bebc9a2	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x5d015f55	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x5d1b0877	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x84c7b068	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8ee55aa4	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe5c5d61a	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xef5329a0	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x5b43503b	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x6fce7d23	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xa0ea4d49	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xa18cce0b	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xc210a96f	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xc643949a	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd23c3962	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x2ac13d23	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x44cfdec8	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x974bab56	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xa3c2b360	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xc52f9462	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xd8bdcfc3	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x07f437e6	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0c753af9	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0db1af3e	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2e38280c	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2e4dbb44	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x59bad9a7	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5fa85c47	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x66518d7d	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x75b6ebcb	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8296241e	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x83322f52	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x84585deb	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8f2e554c	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8f814611	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9836a0a8	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9ffd2558	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa9ec1866	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xaa91ad4f	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xbe0d95a3	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xca4b71e0	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcb6a4323	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd0879640	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xdd209f0b	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf56296d0	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf77e2919	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf7992920	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xa27241f6	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xc8769656	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xed5d8926	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x17cbadfb	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x22dabba1	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x8f43a0b0	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x92608483	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x9443d671	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xdb6dbdb5	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x33979b64	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x6d39088a	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x721325c9	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x86e0db5e	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xaca20ed1	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x11154174	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x5efbfea5	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x8dc3f4d1	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0941a360	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0c577cd9	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x12d8a260	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2f7dc0fd	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x4a34dbc3	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x516a9e4e	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x530c3245	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x58432ee4	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x60a093e6	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6310227f	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x86b61189	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa28e2bc9	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xcb95541a	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xde19f5ab	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe7047360	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf5ad7409	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfb428eef	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfda23c39	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x8f02c390	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0ef94d8e	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0f5751a3	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x12203c22	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1752b60c	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2565a5c4	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x259657fc	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2cc6af92	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x31f7acc2	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x37380018	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3c302b6f	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x40902608	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x508f7a10	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5a0230b8	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5da1d981	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7277a152	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x771762cb	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8220747f	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x876af248	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x894334af	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9c7ea514	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa65ed154	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa6efe2f3	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdc10cb9	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc5eceeba	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc65506a5	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc9c3f984	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xcd0983ef	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd136e1fc	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd3acdd5d	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd4aa4b3f	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdda82bd1	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xde307ca7	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xde3544ed	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe01b7251	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe9249fb2	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf1c9904d	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x2156e9c7	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x52f6521d	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x5ace1700	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x8410fc35	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa53480d3	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xaad9881f	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xcd04ac25	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xe833ddfe	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x1968f0c2	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x66c4afed	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x6a440c40	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x74649b17	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x924971f4	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x9351ec2e	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x27768feb	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x2bc5b744	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x46b3b388	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x5f47f682	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x12ca54fe	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x19182a6b	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1d441f32	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x2f6a9d94	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x53b575a1	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x58d3db84	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x70f1c2af	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x771959c7	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x789eb3b5	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x790fb08e	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x83af6caa	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9f4e461d	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe61ea188	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x2b8ab7a8	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x43341301	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xf45e3aff	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x2d084f91	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x70220f57	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x8123c4c9	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xe057e181	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x056c931c	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0d8a30f3	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x14076293	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x24ebc03d	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x27888da5	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x31acd642	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x37733f21	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x68f086c0	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xa1893212	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xac75e1f1	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb3bbe080	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb9b2a16a	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xba35451e	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbbd4b328	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xd677b13c	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf1422ae2	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xcbeb04a6	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xeef9baa5	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x166c3911	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x66bab692	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x8011382e	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x99e449d1	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xa7f945d6	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x122afee3	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4ee31fe1	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x54e9aef2	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x564d8276	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5ca13076	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x6220878d	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7278b23e	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7b2a510a	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7e7f7a29	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xa3842b75	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xab7517de	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb6d743e0	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xd97418d5	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xe7741773	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xe9b9cfb4	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xeebeeedd	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x6285959a	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x6aeb8d50	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x8c710567	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x9356b043	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xb236d6af	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xddd8ebd8	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x0f59281a	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x224398ba	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x422174cb	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x63c36ea7	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xeccb41e4	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xf428c689	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xf85fdfd6	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x070ec244	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x0d112daa	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x1959547f	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x231950c4	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x47fab41f	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x49ec0af7	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x53d49d95	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x7f0d3605	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x8b734adc	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x96a07ffc	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa87f203a	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xbadfcb72	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xecf5c1b0	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x053e01f7	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x237d60c2	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x33c4e429	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xd7e018f0	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2b9ff118	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3ecaea6b	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x56c8ae9f	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6217e4a3	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x62294bfc	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6dbfdaa8	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x85b9ab4c	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc193064d	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd683e1a9	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdc6c84a8	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdf4e85ba	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xe25cab95	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xe8b3ce94	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x04dd30bb	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x0a289692	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1231bf7f	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x24e84af1	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x31526b52	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x37636c74	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x48ebdde6	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8a18f244	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8a233cac	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x9482fae6	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x9493e096	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xb480e87f	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xd0c290dd	gb_audio_gb_deactivate_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 0x32e6391e	gb_audio_manager_remove
+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 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xe3b5cf59	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xf8e0a0a2	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x5e20dc29	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0xd52eefef	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x9304e7d6	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xc083a3b7	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x16fca331	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x061d0330	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x18200088	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x1feace57	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x237b0ae5	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x350e9480	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x37789bce	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x437bd178	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x574f0be7	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x58a11992	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x69217e7b	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6a4ba6e5	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x76dad8e3	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x93293f43	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa7780736	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xbb1ca584	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd9c06264	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe4e42ab3	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0a8bbd5e	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x27906c99	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2efdea8e	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4b28e7cd	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5322b803	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5ae1b870	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6ab810c2	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x77883a3b	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x97be2a74	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x984f06a6	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb549de59	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbc64a0c2	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe5b5b9c1	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf4335ee5	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x09adff4b	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x0ef1d765	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1652ad5a	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2a37ef85	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x42234b0f	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x45e42971	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x504d58ed	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x5ab79d89	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x5d486401	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x600f990c	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x603674b3	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x606862f6	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x742f375e	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0f6bf	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x9899f183	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xba0088e0	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbdbb099a	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe0b12b34	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe1f51876	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x54fe049d	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x94ba10e1	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x985209e4	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x03288c88	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x2e1e3666	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x478b343d	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x537456cb	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x5c68c130	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x8d15e2e5	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xde141038	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xe3f4c7fc	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0136f699	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0c85d257	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0dbdff7d	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x19e71a58	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1b63144d	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2534075e	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2d1e50af	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x30d05818	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x38c8b1d2	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4073007e	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x416c08db	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x42d2a415	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x44bceb8f	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x56d9ab6e	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x589d4423	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7e630009	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x80d55107	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8e82bf14	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x92e6d7da	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x96182316	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa5bce1ad	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa9ff48d3	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xaed18a1c	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb314f835	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb8de37fd	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbcb9864c	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc4c0ba45	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc62d6d5e	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xce998059	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd24c556f	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd339a8da	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd8381007	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe943fbee	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xeb3b76df	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf017040b	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf46729a0	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfab80fd7	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x7293ac8c	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x283c04b0	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x37a6c5bd	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x673ac418	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x6e402a29	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x800cc3ec	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xd22c5689	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xfc4b5aed	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5c0ae57e	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5f4b9350	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7191f0f0	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xa34eebf4	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd5da85eb	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xe9e08a9e	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xfdefbf6f	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x13353e74	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x137086e6	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x14c3b261	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x1fe5acd5	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x844be9f2	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8f8d301b	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9cafb187	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb92e787e	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xbe504409	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd09d4e56	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd5e3b6f8	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xec554fce	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xec8e71ec	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xfcada7c9	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x2119dc92	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9e234891	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xa2d4ef1a	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x0f40fdf1	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x6d4402ac	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x5955244d	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xc6b9f8c9	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xe9450dcc	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x4178fc07	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x4ee9377e	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xa1553af1	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xcf5d0cee	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xd482e485	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x0c8bf835	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x2109f099	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x34caa4d9	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x3e7c15fd	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x909d5e29	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xc8e14895	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x1ff887ba	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x49144642	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x62219af4	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x8e86cd8d	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xc0e29e42	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xdac43e0c	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0ac65606	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x115a04f6	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3cd8bc67	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x4964b879	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x627db252	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6845746c	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6d9781c0	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6df017dc	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9d7f39a5	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb17a4d67	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xbfd4497b	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc91d23de	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xdcf9a545	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf7f01e22	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf81ba4a1	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb2e8a644	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xc0a3d018	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xa496e576	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xbad80e6c	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xef6da08c	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x12c9f702	fsg_lun_close
+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 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 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3433f8ed	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 0x3af8562b	fsg_show_file
+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 0x423845e4	fsg_ss_bulk_in_comp_desc
+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 0x59069c6f	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x67d422a1	fsg_common_remove_lun
+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 0x6c843362	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x72cb6045	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x74e4486c	fsg_store_file
+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 0x857b6dc2	fsg_hs_function
+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 0x9de08264	fsg_store_ro
+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 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 0xbd45c005	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc9eeaeb2	fsg_store_nofua
+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 0xd23e3ce0	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd266051e	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xde7cd2a0	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe0bb0b75	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe3e8371a	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe7a5fb44	fsg_store_cdrom
+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_rndis 0x129085db	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x19ce6395	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x1b612f4d	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2b6a2e75	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x48f7d7b1	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x553f081c	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x57c9dcd3	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x8c734fb6	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9b6de14b	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa760fbbd	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xaa6c3090	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbbc42744	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdb9aac20	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf95bdb29	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf96bcc4f	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x059c490b	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0ebecc5c	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1aaacefb	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x313313bf	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x324ffc15	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x377836e6	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3cd57f28	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3fc3f62a	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x43b4320c	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x48cebf59	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4fa84f5c	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6648f729	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x68507961	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6cb8b3c1	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7a4b3f27	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7cf9e469	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x80e9dc9e	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x838dc37e	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x838ea488	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x89377e46	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x904ae740	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb6736087	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb7a6bf0a	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbbba1498	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbbed97a7	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc404c8d6	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc56690ea	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd1f75732	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xde8ca78e	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe626ac0f	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe80d4f6b	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x09a4f044	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x30be7809	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x8a648844	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xc6ec0909	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xccaa5236	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xccbd8afd	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xe88a4de6	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xf26860e5	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xf66b3f8b	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x04910b74	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x09383afb	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x13ac9525	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2dfce012	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2ff359e5	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3b6ded55	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5454b463	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5d4b5f4d	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bf2d9a2	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x713fe69d	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x737c1884	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x770217fd	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7a144af9	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x866a3e4d	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x86b7c324	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9b2fd5d9	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa54e1128	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa678215c	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb61ce2cd	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbb67556c	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbf3916a3	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xde7eda10	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8c98b1c	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf9e32099	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xfd58d033	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x20050a3c	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xd34fdffc	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x0d0420ed	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x107c35dc	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x4a13d351	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x594fd152	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x599dc7ce	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x8deb622b	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xa51e519b	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb40b256d	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe201ea29	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x71d641f2	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xabd2a2ac	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb1fa4d18	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xec3b6722	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x23980749	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x6187ffd5	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x71fc3920	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x84097f8c	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xb23aabda	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x4b3dba40	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x1537be48	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x4a0b6c83	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff737bdf	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x591baaee	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0d62f363	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x20859b72	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x228aa454	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x27285aa3	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x334085ed	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5f68e9dc	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6d41b853	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8265fe28	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8bd0051d	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8f4151bf	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x986c567d	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x9ab00afb	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xad1f2817	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xaee4394e	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb4ca42f3	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbc13ecb3	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbd7ce090	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc4810d7e	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd211d29b	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd881ac90	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xfe5577ee	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x4a839d67	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x4fb85ffb	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x4abedc6b	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x0f362e14	tcpm_register_port
+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 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 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0eb5f1bb	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x145db1ff	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x17841ecc	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1a5ad61c	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1bc5a21c	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x26319f44	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3a9513fb	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3b02bce6	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5dba24ab	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6304eb91	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x79e85256	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7dcd8252	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x83c1780d	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8a8b1241	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8d0542d0	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x92ddcdce	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9896ad05	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa5eb0b2a	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa8111203	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xaa522f81	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb4fd8d60	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb8fc1356	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbd3eccb6	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc400b9e0	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcb09cd20	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xddcce607	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe08eb7a2	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf5dafb8c	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf74b44ed	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf8948e61	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfaaed887	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfd89c312	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x68e4e836	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x8b5bc9fb	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x9126e122	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x9cc4b5e2	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xaaeb2d7d	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3183936f	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x454d2075	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x486ed9f8	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x764be577	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x7665fbff	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x83195691	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x96144406	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9e66c301	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb66abe9e	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf09f6ecf	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf50ad93b	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xfbb223fb	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xff91ae6f	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x5f8cbfab	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x012db31d	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x04a2a68f	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x05ed03fe	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x09901750	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0a9b331c	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0f9fafb2	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1ae096aa	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1e4c10a0	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2a8e9b2b	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2f226788	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x37194dad	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4426bcfc	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x46e40910	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x472bb82e	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4cb992f8	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x57fd506f	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x634b1c64	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6571f49b	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6639da5e	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x695ed96c	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7597b82f	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7b12d49f	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7c3a95af	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8222e8d7	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x855d39af	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8820c221	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8b03f121	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa506de5b	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xac46e512	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb1326621	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb2c4500f	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb718d623	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc3780b7a	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc7eae5fe	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xca67c5c0	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xcec26442	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdeb8015e	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf66f89ab	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x112b1881	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x420f9bc4	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x5da968fe	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x73806b91	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x83de6f96	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xab24efcc	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xafd8bcb9	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x69b87260	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x653bc463	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xc2f6fd9a	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x09df65c1	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x695a226b	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x0ac608a1	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x121a2efb	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x384dd5b0	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x68c23310	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x6cafaab0	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb3c61cdd	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xbaeb0166	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xcf6e4fa3	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xf996a462	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xfaf5bcc1	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xfd42ee6d	w1_read_block
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x65fb8fdf	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xa4903802	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xc5673142	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x341d9538	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x36ffb2bb	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x522fe5d6	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x6246d618	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x80438270	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x8e535f70	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xecab1ef1	lockd_down
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x012e0fca	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x03b741f7	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0631cc8f	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x087e38d8	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x08e27f44	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a82d7f0	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0f06fc7f	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x13e92bd5	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1546a8f5	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x15ddd862	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x161f596a	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1718bffa	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x183c02eb	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x18ccc8e5	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1a7e1b78	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1aca0d14	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1bf65432	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d25d747	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ecd9478	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f1e5aea	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x20c828ce	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21199b7d	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21abdf68	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22bebe7f	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x255e8cfc	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2613c331	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2947005b	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2ab04bce	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2d13f3c5	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x325deb1f	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33d907bc	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x366f890b	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3bea62ad	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c90e6f0	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3ce977e6	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3fe44f78	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40d64717	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x43485920	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x43b3aabe	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x45584d1f	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4599c17f	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x490bfcff	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c59ac9f	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4eafbc62	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51dc74c6	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5722d336	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5844739d	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584d5089	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ca5a544	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5da72ea1	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5e3a21e8	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5fa9c5fa	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60203cf9	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66aae041	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6d211c4e	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x709ba148	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x715f37fb	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x78f4490b	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x78f65cfc	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7920f61c	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x792b5b22	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7b26c8bc	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f4bf18c	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7fc18246	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x800772f0	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x808973bd	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x822f0eff	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x856d617a	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x86a59fb0	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8842a506	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8eebfbf6	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x905e6b31	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x916e4046	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92068cc5	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x96387836	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x99d8f207	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9a0be169	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9bfb9b42	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9cfc2104	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d19e312	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e6d20b0	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9f65ef49	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa1659a24	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa188420f	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa1a6a6ab	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa3453f97	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa5afe6e4	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa5cc7a69	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa6f10911	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa83dd564	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa99f0f93	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa04da62	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa0d9a7e	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb108da8d	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2215d11	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2c86906	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2f78b48	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb6494496	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb7b79b9f	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbacf0bd1	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb06e27e	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbdf6fe04	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc2adc6b4	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc45ca8e9	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc52fb32e	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9166d93	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9b92635	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca5c91e5	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcb737bc3	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc3075e5	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcec87fa6	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcf6cf2d9	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd0b285d4	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd22d5322	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd340c297	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd82aea97	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd896acc4	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd8fbbcb7	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd96aafb6	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xddc7f9bc	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe431cca7	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec1270a7	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec569ad5	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf01f3c70	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0d5f2eb	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf457eff3	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf470fe12	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf5c2ee4f	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf8a5a1b8	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe0a3094	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe10a4ce	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe2ed8c3	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xffbef0a1	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xcdc369bb	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x03cc12d8	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0cf2ed5e	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0d931137	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x121133e9	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x16bf20ae	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x18723274	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x19352a25	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1bfdbd2d	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1e5b9bab	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2579af93	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2927a022	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2c44aac1	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2c8a88b3	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x322392d4	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x32d3b224	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4913d86b	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4c63319a	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x53ea10b5	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5edb7391	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5ef57806	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x68cfbf6b	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6a4b89e4	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x70274f1b	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x72fa40fa	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x73928666	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x74aba9af	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x74c9d8e4	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x75972fca	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x773a3db9	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7f1b7c5a	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x802b83b8	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x80e7db51	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x843074ca	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x870cd3c6	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8e187297	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x96826f9a	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa03bd337	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa3506fda	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa3945a21	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaa6e46f3	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xab5b49a7	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaccd29c0	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb0748622	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb0ab91c0	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1d51ddf	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb5205456	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb7713d98	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb9193b85	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc0b8b477	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc0e67de4	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc17d198c	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc4d7e46a	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc61672b5	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xce5418a8	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd5ca506e	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd9f07bc7	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdad17471	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdb970557	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdbb6f2ce	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc53db81	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdd8f780d	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xde2503cd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe0cf17b4	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe3d4ef62	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe68920f1	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xea1f8cef	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xef06c5e1	nfs4_init_ds_session
+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 0xfb811731	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfe76de51	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x77b01b59	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x95beda48	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xcc394287	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x31b43cbd	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xb105015d	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x56fc9875	o2hb_setup_callback
+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 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6dd866ae	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x8b9becb1	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x951ecceb	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xcf51fe4a	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe08b87e6	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf4e161e5	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x0e7ec333	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x72428a86	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xabeeca7f	dlmunlock
+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 0xdddeeb4f	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xe890d7b2	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfcd27fd5	dlm_register_domain
+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 0x4785a513	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x88a74fa7	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xc84ab181	ocfs2_kset
+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 0xf2a9156d	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 kernel/torture 0x07256d50	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x41c62673	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xaf3ddc17	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x7245912a	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xf24b9873	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x3f13052c	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x4b42b0bc	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x0a75799c	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x13c83498	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x31157b81	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x384e246b	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x7aa4fdb6	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xaa25dae2	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x0a66ba3f	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x11ff0f22	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x168ae411	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x55870f93	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x7274ebfd	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xccd9bdf2	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x016d1c1e	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0x202b3edc	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x3588c5ed	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xc30ce982	p9_client_xattrwalk
+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 0x738c14c3	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 0x2ddd55a4	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x49df4fa9	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x4c25ac7d	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb1fea197	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xc050c5b0	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xd84358b3	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xdd1de095	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xf39a6abb	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x8d37a0d5	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0fb679e4	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x245e3b7f	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x48d13d18	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x51e90639	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x545e3d77	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x61bea561	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6f130182	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8b8d2fad	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x940e3ffd	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x99a52ff9	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xa0e64ea5	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xaa73065c	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xae48ba06	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb263be83	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc5e84390	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc90dd967	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xcee089d7	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd45a22a8	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/core/failover 0x5d724069	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x67065dec	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x6d327d9e	failover_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0911e09b	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0c134941	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1151db6f	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x24b07eca	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2fb9cead	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x31db1b32	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3d06a138	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3f291467	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4713e23d	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x50c2bbd5	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x57e7fa7c	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5f4c6127	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x76600002	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80624158	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x818ee507	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x88e26030	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8b7a24f8	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8b8f8b5c	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8e9325d2	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9401c7b9	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x960339f4	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9c444331	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa4e0c7d4	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa6b02ccc	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa7219e39	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb8d70ee2	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbd65b356	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc663fac9	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd2e15894	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd70a8d91	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdf60ad8b	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe1cb1fcf	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe778ab4b	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xeb7c1871	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfb59e72e	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfefeeabe	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x23d4972b	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x7005d8de	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x8cc8b1a2	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x8f98e9a5	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb36447e1	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xf0667cd6	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x04e78168	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0de502e8	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x14cf10b4	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x29301ce1	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2c484a9f	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2fc92b04	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3f1c9eca	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x543d85c1	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x70e230e4	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x719b397f	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7295455e	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x746009ef	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7af3f939	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x81e5a43e	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa81e263d	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa8e03698	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xaa9d4c43	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb8599692	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb8606eec	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd1213821	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xfc812ed7	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x82a9196a	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xcdbd9c7a	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xe4cdd966	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xf1849cfc	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x8e221249	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xb4add8a4	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xcda9e878	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xfab4bf41	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x31e01c9a	ife_encode
+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 0xb2c92c95	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x33831eb1	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xfb7d49be	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xfdba0abc	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x6d505c75	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xdefbe978	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x03592af8	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x160991db	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x1725a2be	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x1e78ff19	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2d39d8c7	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x9859b255	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xae37808f	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xcc376467	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xe5a343ad	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xfdf6b95f	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x12520b2b	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4325b124	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x487966f7	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x51eceb6a	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5484cbf4	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x56ae8c00	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x65aa7e3f	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x7b5f77f4	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xaec4b2ff	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb09ed798	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb0c02cbf	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb46f7a4b	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd7640a98	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xda024a8f	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xeb1b3d1f	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf03da1b5	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0xd18e972f	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x92e5f833	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xddd3ba20	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x422e3acc	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x0235ab12	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x3231922f	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x5e2bc37b	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xd0d54fb1	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xf37a7fb5	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xbccb7bf0	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x26960272	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x491dced4	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x95fffa03	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xeb6d2a8c	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xfb811145	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x1f03cc3e	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x2013d02d	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x99bfa81b	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xca9e662f	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xed1f4af1	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x4d523e39	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x73944771	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x848a0562	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x85271f67	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x9d9d618d	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xef04022f	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xf0045b9a	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xfceaea23	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x1a0804ec	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x6a5f92ca	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x6e5b3114	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x0078e84a	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x31339a05	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x9c298d3b	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x077deeb0	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xe5423104	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xf0463483	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x4afc7e25	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x505de6a6	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x85739ef0	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x1cf3e7da	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x4c7654cd	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x4ce70899	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x602bd73a	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xb0d017b0	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x3bacda99	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x7afe3c1d	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xc9dabb91	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xf7744b8d	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xd51d48d6	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xf84de8fb	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1480908f	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x22cfbc73	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x37fe6627	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3bd48d25	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4b09ba2b	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4cd08e9d	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4fe20181	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x601ecf1f	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x730ead25	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x834b94e9	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8435469e	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8e1b4ada	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9aecf421	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbe007656	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcc17a3f4	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd192e1d7	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd973e592	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xcc72ff2d	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x09a3ebec	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1686d944	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1be74d2f	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x48dfc2ed	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5008bbaa	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x63e063d3	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x753f259b	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x79b3c16a	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x869b1156	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8791b53d	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa06e0e9f	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc2350e88	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xda56ad42	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe10c7aa4	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe63b815b	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe7cd2a07	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x167686b1	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x22d83dbb	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xcbbfec20	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xd207fa11	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe3ac648f	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0bec0010	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1380fadd	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x183402dc	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x21a5d3be	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2e3668d1	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x3808702c	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x42365fb6	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x46f6e6fb	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x813aef07	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+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 0xb0ee0257	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbc077c32	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbc688c43	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc4f56efa	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc6aca572	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd677a106	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe0cbb681	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf7d3cc51	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xfaabd7e8	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x1dfd0730	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x3eaaec0b	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x7fff8fe8	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xec50ca77	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x162e96f1	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x18044da3	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x5be5fc60	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x69c0b67a	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xad326760	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xe2404f1b	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xf2728e70	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00012f6a	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x03635ae4	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0446e775	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x04dd6f6a	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x05315247	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0587f3b0	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0d593603	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x13f5022e	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x14a252f5	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1b1c6567	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1c613c43	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x21714a79	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2192f94e	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x21a45d91	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x243bc7f8	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2593aa79	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x26b98b97	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x27206f75	nf_ct_netns_get
+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 0x29801905	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2f03dff7	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31801750	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3185b5e8	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x338f3fdc	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x34b32ead	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3de8973a	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3eb1bd2d	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x423365b9	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48afd67b	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48c6577e	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ba6824e	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4fac424c	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x57aa0291	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5a69f21d	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5b64b6ca	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5cf03fa1	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6041b1ce	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x66f606e9	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6af96a64	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6bb4c659	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6c975516	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7000dfef	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x73abeb69	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77e37a7e	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7bb811dc	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7cd7aa57	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7f2549eb	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a66c4fc	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ab4ecfa	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x911021bf	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b74495c	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9be3b5e3	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9cc43fd9	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa0fa8179	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa243b56e	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa4ce1c3a	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa6dc17bf	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa80d1e81	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xab994ed1	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb063751e	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb13cba28	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb38ec3ac	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb8523982	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc65aedf3	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcd676c0c	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd02ba547	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd0ae91ce	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd105d4d8	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd18f6d49	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd52b1f37	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdb2f0e23	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe04daa48	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe21041bc	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe43b947c	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe71f5cb5	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb355fac	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb5e0013	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb6e6ae5	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeebad536	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf08e2ecf	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf0b028a3	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfac8e043	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfdba8f28	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe64ef22	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xff40b965	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xe6431e2e	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x71b6ff29	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0xdc19ba28	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x16c3d9c3	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x16c71a68	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x34932803	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x6845b73c	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x999b801f	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbaf181c6	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbdca2938	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe375910a	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe6644664	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xf0456ea3	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x8f1a0d5b	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x3bdbc3c0	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x632b3723	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x6e20de15	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xb7166182	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x23b723c5	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x509f7e0c	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x9092e26c	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xb14d6943	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xb372f46f	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xc985cc39	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xdc79a110	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x627a1513	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xf84cf372	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x4ad96504	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x7181218a	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x78a1396d	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3fd762dc	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x45398fb4	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x572a7537	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x62795776	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x67b9cb55	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x71b5a42c	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7e3b23c6	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8da36d57	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb33fe1cc	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcc8b75d8	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xd5062559	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf13dff97	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x42038c7e	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x58f32813	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x716d7bc4	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xa0ef6b68	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xad87e404	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xdbddf0c5	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x11a5047c	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x14403b41	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x19d9642c	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1fc5d6f1	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x211fc4e5	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2323b21e	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x38242c2b	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5c3efcfd	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x609a260d	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x67777ecb	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x6d78ed76	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x83328887	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x88798748	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9e406e7f	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc761b090	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xefc01623	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x01d2dfe6	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0ab3d7cf	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0e57351e	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x2b8dd21d	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x3ca28531	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x56a62aab	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x6d6399bf	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa1d2ed43	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xaab3e56a	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc1bece7a	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc34b31e1	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x00e94090	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0dbc087a	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0e50e07b	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x14bbeec0	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x152f14f7	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2993d3bf	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x33ce725b	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3732438e	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3901eeab	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3fe2fa50	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x42ec9608	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x49fbf365	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4e523bdc	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51a284a3	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5cd258d0	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6402b389	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x69fb8bc3	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6bf562d1	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x783cb15a	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x847399cc	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85bacb8f	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8815ada8	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x88cc50fa	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x90f76df8	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9647e352	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x97d5e8ee	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x98d2fb5f	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa06e9e3d	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa585a65a	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa69fc9c3	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xba94114f	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf257fc0	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc2299a34	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdc03c297	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe0476d2d	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe38ed999	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf3e1fd42	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfa81feed	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xff676653	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x057004b1	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x48c55f44	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x64949359	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x674ceb52	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x90a7eb4b	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xce2f1a6a	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x10ddc693	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x57b583aa	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x6c54cfec	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x0ca2ef0c	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xa6eca1d9	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x46bcc1d1	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xade975a3	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xc53d18be	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xfed08dde	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x2f63352d	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x692b192a	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xc7e4e9d5	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0263b5e0	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x158d7502	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x16ae45c3	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x17a18f0c	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1a4c1f1a	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x46904309	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5ba9e22d	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6f798231	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x77a3ca2c	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x875599d4	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9319e0aa	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa94d977a	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xac7b7b8e	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbc5e0c89	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc22001f6	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xcc1cf761	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd478703c	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdc7bf37a	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdcc59399	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xeabeb43c	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf85f5a9a	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf8f87f04	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x86bb059a	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x9fa4613e	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x0c698f09	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x83e2409f	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xe7167646	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x4020e4ee	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x429ef813	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xe7ea1d10	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x01bdfb51	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x06f5df9c	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x6ca84397	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x89cf67c9	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x98ec5c86	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xa9037655	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xbae23f50	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xfb2dbe3e	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x18b7727e	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x198b6303	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xc1d8de4f	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xe7c1d37c	psample_group_get
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x01ecb206	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0332f655	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x08c51618	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x13efa7b4	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x16d81c6a	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1c0467eb	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x236fa252	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x241ad2d6	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3ccd79b7	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3f6e0f65	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x47b86268	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4a4cc0af	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4baf3a05	rds_trans_register
+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 0x597bc070	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5d6a8c02	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x64c4e549	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8e6c54ac	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9790ee3d	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x979bfbc7	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbefd70f8	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc6a765d3	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xda48551f	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdb0f303e	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xde2588fa	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe635c256	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe8dccca4	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xee41973e	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf3aafb5a	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf8da9ba1	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x05fc9972	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x58280939	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x9629c8d3	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xb393de6f	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4deb2578	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x517187af	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6801f365	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8c0ece2b	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb05723f7	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb3ccb56c	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb54d10d5	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xbb97a934	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc5099cd8	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd7f98ce4	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x430cd9ec	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x4853f5b5	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x6500d134	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x69adb04e	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02538d9f	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02b4541b	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06d20ae1	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0741986a	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09371205	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0988862e	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c463115	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0da5ce35	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1253b0b6	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x129c0c90	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1371e5af	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14a360c2	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1587f3f4	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x161befc3	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16210a92	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16ca2e46	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x183806f8	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18636d2b	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18b5978b	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x196f2aca	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1cb075b1	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f4178e9	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ff949c4	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x217c4130	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2203e440	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22d3302b	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x23a985e8	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x24abcfdc	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26c313dc	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26c86a8f	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x28229a3f	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a70c14a	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c87ae3a	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c926333	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c977526	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e335ea3	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30b83ab1	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30d6b64f	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30fa50cf	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x317657ac	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x327025a2	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34c25cc9	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34ffb075	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35029f3e	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3592181c	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36be6f29	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36eac2a7	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x371ef8e0	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x37fdd6e1	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3820f05b	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39c346ed	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a77625b	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a9d760d	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b010016	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c5672e3	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e121582	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f21a6d8	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f230aad	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40b21c16	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42104647	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x427b12b8	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4405d095	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x440630f9	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4558e3cd	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x468b16ac	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x46c9e6b3	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47ce6c36	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4852f34e	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48bd932c	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48f158af	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48fb85af	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b7e320c	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c32ee8e	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c3d9ea6	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c99b829	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ec0ac07	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5111b456	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x525bde15	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x550ad900	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55a900fd	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5667ca41	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58438655	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58a913ec	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58e8b529	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58edd92e	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x592c66a8	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59e9cc75	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a60b9d1	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5abb4531	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b150a7a	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5bea7182	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c543c40	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e3f385d	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e644f3f	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60dbbdc6	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6186b46c	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62307004	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x63ee8502	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66a07af2	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67f1a7ae	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6858c860	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68735c28	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68a074ec	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69d2076f	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a0bde3a	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ab0d4eb	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6be764a8	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e26ed6e	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x708a4767	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x736050b9	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x736f74c2	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x751027ff	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75e48f41	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x769d8593	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76e2f6c3	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7889b4e5	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78fc754d	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79b6f06d	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a25ef74	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a61984e	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7bb3feeb	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8297db60	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82f114c2	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x84e9bce0	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86d41ab3	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x873974c5	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x875c24f7	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x884d3c52	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89d9689d	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e089178	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x902f7294	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x907db93c	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90ac81cb	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x920a4d59	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x936aebca	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97949abd	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99030ca2	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a0dc5f3	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a3c1308	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a9cc570	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bac5460	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d489dfb	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9da4cbdd	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e77d452	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f8fce88	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa11caaba	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3352e2a	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3931f53	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa40af51a	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa46df848	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa51c205d	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5558912	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5bc5dac	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa60d45d7	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7d67dce	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac16ec3e	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaccabffc	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xacd1f934	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad33f52e	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae0f1cfa	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf2d7241	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb174e853	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb46396a3	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8c23c58	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8dc17c2	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9465a60	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba9a49d6	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb940ed8	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd0599ef	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf468f2e	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbfb3ec2f	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0052f2f	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0ba1f06	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0ee92ca	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc282d970	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc518a6a7	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6feba10	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7753d39	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc78df91c	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc91b70fa	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcaf86b65	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcb2d1563	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcc7af450	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcccc4eec	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce69f2d2	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0651ed7	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0dbeaa8	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0e9d1f2	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5583154	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd742920f	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9c53c35	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda592af5	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb5f4b65	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdbda0ce5	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc8c6e52	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdd8b9573	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde88c6b0	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf62ea4f	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe151608b	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe1803e88	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe1eb53d2	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe34da5f0	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3ef2078	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe433a909	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5b0929b	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe78f8ad8	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe82803c1	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8634a88	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe88b7e86	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8901f46	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea8f3d84	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaa9a8b7	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaf0599c	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb912dae	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xebbb6aff	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee6507ac	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0231cd1	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0cfea2a	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0d160e7	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1b38f2e	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2373733	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf27c3153	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2e5bc0a	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf635cfec	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6cc07dd	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9bd041e	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa529ba0	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfe26476e	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x1b8da15d	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xc8c412d9	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03876b6f	virtio_transport_free_pkt
+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 0x13cc91d8	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x21af1d91	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2afd730e	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2bac82e1	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2dfbc6f5	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x34fe3e8c	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3dd0f458	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4018e761	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x41df3a13	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x45bd2bb5	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4bd6ea51	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5328f1b0	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x56a43ee7	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5cfe9653	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5e50c047	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x641fcd8b	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6ab7aef8	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6b611fa1	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x71a15538	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7c8a24af	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x83ca9c1e	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x89bd364f	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8b2e53a7	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8bd12cf1	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x98b81f8a	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9ed414e4	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb43d8bee	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb82d04ab	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb85c9d05	virtio_transport_notify_send_pre_block
+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 0xbf99baa5	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc08d5e39	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc0aab056	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc509842d	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xefbe2c13	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf406b68a	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x00c21ee5	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x10ea4e5e	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3c3e8ace	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3ceb1b99	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x410bdc0b	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4fea90bd	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x672eb502	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x782f834b	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9671e427	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa173fdcb	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa519dc20	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb352e55c	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb4068346	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbb6a196e	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc4671080	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcdf474e1	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xdbe6c345	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xeb689ed6	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xed8ec90f	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x3e30a531	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x6796cace	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7666265c	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x938b97dc	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x9f070c30	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa29e4e6c	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa58cb4b8	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xcf4e2035	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd2654409	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe5cb0d88	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xef382f69	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xf4b7be52	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xfbceb6c8	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0b6ea367	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0b890181	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x18a3d659	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x3be315a4	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x41ff5259	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x47cbc7c0	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x48491482	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7cfe5024	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x851e0336	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x87ee0032	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8e1d2f82	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa3bb519a	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa70753a0	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc4a6c249	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe0df1c50	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xec33edf3	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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x15dc083a	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x305ec529	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x4a69c8a5	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xb1307e0e	ipcomp_input
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0xb64e56ef	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0519355b	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x17297eba	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x19d36926	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x3cf0ca07	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x3e74ffb5	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x7d6546b0	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x98cfa7c3	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xdce26ece	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xec813d22	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf5b8d231	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf6699058	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x2d8ef931	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x31e14467	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x4120f804	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x4cb9c851	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x6894ce96	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x73acda25	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8142aedf	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+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 0xce5e2617	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xd7b06e2d	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xfba6b984	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1215a12c	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x203aba7e	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x3abb7874	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x5d15ff49	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x771b7258	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x7a43a1f8	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8290eb66	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8f5a1eef	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x970bb05c	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xbf8e7f28	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xe9e373d1	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x007a5d78	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xd855d3b2	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0db94116	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x216b1140	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x74423099	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x78c07b98	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xa4c8f15d	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xe2e21766	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xf5ba30aa	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x05cfeb94	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x07ca5ca6	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0f0cb37e	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x12295214	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1648e4de	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x16b462fa	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x179e7ccd	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1945e891	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1ec692df	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x22a96036	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x23b76999	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2446f4ec	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x25d05a54	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x296c8e8e	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x312b280d	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x32a456d4	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x34ac1c00	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x36c27177	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x36c829f1	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x40df757c	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x425e9137	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x42aa6aee	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4330c8d6	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4eccb063	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5143c64d	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x532abba6	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x541c21fc	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x550f9f52	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x551c91e0	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x553a2c39	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6037f700	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6431bff9	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6a0f94ae	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6b5ba603	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6c08f7fb	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6ecbd56d	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x710c3feb	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7215f1c2	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7237878e	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x776a94f0	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x82231d07	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x83af5e90	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x841c3bbe	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85c502e6	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8dae4259	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x938e1c27	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x98363e0a	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a88c226	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9cd8760b	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa4121a0f	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa566e9bc	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa5c620ec	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa5d6382a	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaba1487c	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb7c65100	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb8e41a97	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbaba84f5	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbb78b029	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe2054ab	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe9276cd	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc23351ed	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc23c20e4	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc830170b	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc9e14f29	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xca0f15a2	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcd51d5c2	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd331dede	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd4b2a080	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdd1a0b9c	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdec730d3	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdf1f9e7a	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe262ac56	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe3b06005	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe57df7f3	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe892a08c	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe9856bfd	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xead90129	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xee14c177	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf06e03c9	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf5160049	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfd6af049	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfe84767b	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xc6dc7f7c	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x2386f900	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x46456a3a	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x9b3d729d	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xbc8602f1	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xed5eb34e	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xf6ff76ee	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0336783a	snd_hda_jack_set_dirty_all
+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 0x0d546fa4	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ebca2c1	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0f87d76f	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x11c1924e	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1420dbff	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1852b6b1	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x194794aa	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1973d3ee	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1a79e1b5	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1b1352ea	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c3fcdff	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c570c2f	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c677ac0	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1e2f014c	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f0cd4e8	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f734652	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20d7653b	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x213c0dd6	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2287637b	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x234f1c95	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x249048b6	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x25d3977e	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2ae012cf	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2c7d438b	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f2162f9	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x302f8be1	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x31e1d24b	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x331d2668	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x35488908	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36fc17ef	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3b856cf7	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x41e1a4b9	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x425283ba	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x43884865	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x46261078	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4a77ee48	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4cc18526	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e289de2	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4ee35b46	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x548b4d70	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x54ecfafc	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x561c9c01	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d9020c9	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5e290082	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x614df82a	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x61bcad87	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x621cd623	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6514ad13	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x657562fc	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6a42814d	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6bcc714e	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6dd61484	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6e64da05	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x71d039fd	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x74b89c65	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x76f4dca5	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x783f6c6a	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7c129419	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7f2f54a9	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x805410a2	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x82eff4f0	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x83a423a2	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8ab6d285	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8b7e5271	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8c003af0	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8c19c7a9	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8ef7ea65	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x90329b00	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x904f08c3	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x958550fc	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x964df050	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x973c82cb	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x99b16adb	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x99da26d2	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x99dca630	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x99eea8ed	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9c846da4	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9dbc63c6	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e263d70	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa3cb64af	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaae1b231	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xabf0db07	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xad25e769	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaf4e10ff	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb590f15f	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb94250a9	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xba8c5c93	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbd12cdb6	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbf5166cf	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbf8db94d	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc20f205b	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc31b76fa	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc77af861	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcafd4ee9	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcc821fbe	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcc8435a2	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcd0d131c	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcf0720ae	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd21ef73e	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd6ac5c14	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd744a5cf	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd91a49db	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb32226c	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdd8e6661	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe1af3b59	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe406efad	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe4b94aba	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe707acd1	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe87b487c	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9950546	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeb407262	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xef222044	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf60f1b23	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf694a296	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf7c62bb8	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf85d4559	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf975bd25	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfcbecfb0	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfe560df0	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff26b61e	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0a0aaedd	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x1534ba34	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x1879e8b2	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x1b882617	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x1c942f90	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2154a6f4	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2ea31df2	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x493afcfd	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5f91ed74	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7145483d	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x75a1ddeb	snd_hda_gen_build_controls
+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 0x7879ce9d	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x811cb184	snd_hda_gen_parse_auto_config
+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 0x8d5d25f9	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9193984f	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x93bf63eb	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9b637be2	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbf6fb9b7	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbf940b40	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc5f5a3b6	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe28571ca	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf6f01909	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-adau1761 0x8bf1f5de	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xe45f7ab4	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x258f527c	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2cab5d0c	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x56b407ec	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x59ed652c	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x6ae7e636	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x878d504c	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x92a2d4e7	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x973ba3f6	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xb6d96258	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd9ab4198	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x75beb999	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xa92200b7	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x1246c027	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x2dedfe05	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x375ad98c	cs42l51_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x733cbc48	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xaf277081	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xdc2a4d99	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x021e7dda	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x5c96a3be	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x6de072ac	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x57bdd406	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x6be78659	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x7b56495d	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xe58594b2	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xea33778d	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x6a991f8e	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0xa8638dce	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x322699ff	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xa14a438d	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xb6f51650	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x55437ccf	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xb145ba78	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x4767cb53	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x6c5bc599	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x07c00114	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x6ef832be	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xb40e7c3c	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xfc213dc0	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x005d1406	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x36c76ed3	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x5c9e7738	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xe087b037	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+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-rt5645 0x015fc26e	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x1f2ccc44	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x66b1253c	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xadfa586f	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xe671129f	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xee2954ac	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xf4bb1194	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x3e94665a	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0xa11e2ebc	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x34a6fd97	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x5514c466	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0xb0ad57fa	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x32e4b43f	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x39df08e5	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x95d1169e	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x978d677c	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0xbeb58eca	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x60efe0e8	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x4d8854f7	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x787ae75a	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-simple-card-utils 0x0d71b143	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x271a3874	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2e34ef3f	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x36e57486	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x42342b41	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4dfac8ff	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x60768093	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x694511a9	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x6e412317	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x70166077	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x70f61948	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7740be5e	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7a4ccaf9	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9c069cc1	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xb8f774ff	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xbffabf32	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc517aba3	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xcb36637d	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0225666d	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0282e63d	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x052c8ef1	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x076827b5	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x079e9bea	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08532f11	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x09630348	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0aeadb60	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b136bbf	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b7c86ac	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c80dd5a	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c81307d	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0cf56a10	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x132bf8d9	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x139d134d	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x13ea2402	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x144ffd06	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x16f52618	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ce45cda	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fb81fcb	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fefd73d	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20c0f5c4	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20ffd0e8	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x21b808a9	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x229a61eb	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x24af512c	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x25d25d54	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x29c98615	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c6b617c	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c8c27bd	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2cf41045	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2f693176	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x33b08568	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x342b1ae5	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x35551de8	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x364be9dd	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d6f1d98	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f9f1b60	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x41da38cf	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x423bcb47	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43923bb6	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46fce744	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x495e7006	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4e5e5945	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f19208e	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f6b27b8	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x500299ca	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5173f1c2	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x52920110	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x566dccbb	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x56997f65	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5866abe3	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5acf2946	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5d0785ae	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5d958a24	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5eafba81	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5f86be7e	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x64312def	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x646e1ba6	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x650a6cc9	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x673c3c6d	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x69aecb58	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x69fb72a3	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6ad76579	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f25502b	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x70d8de2f	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7289aa9f	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x743e2d19	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x76ac14cf	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79ed713a	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7bffcd34	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e72bb01	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7eb5965a	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7f960cd4	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8140253e	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82a68478	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82bc50eb	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8581a34c	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8699bd16	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8827ee4f	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x88508895	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8872c2ea	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x88e39222	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8abeff0d	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8b5b765f	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8f3b3d72	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9004bde6	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x90b66803	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x978f3ac4	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98242ded	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99905ee6	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9ac4e574	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9d5330df	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9f3bed3b	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa0854ec5	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa18d7b89	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa317a80e	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa3b755d3	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5f3987c	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa75fc158	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa439dc7	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xac6a5fba	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad50ffea	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xadb48ce6	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb00cc6ea	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb2314481	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb235217b	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb2b21778	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb2dbbeaa	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb394bf44	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb71ed0ff	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb7ed150e	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb81d16b3	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb83bd14b	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbc93bb6a	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbca2a7cf	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbebe2163	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbedfa758	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc191ac95	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc205e5fb	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc2bf02d1	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc52cc59f	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc68a9c3b	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc5ae566	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcda33f77	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcdea7559	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd04deda3	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd0500434	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd269b178	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd458aa3f	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd871d61a	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xda786d15	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdd2791ef	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf6d0d49	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe022af97	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe03899e6	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe175ea44	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2841690	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe41e82fa	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe5adda27	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe63e7d00	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe6f0cae2	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe8857792	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe9ac1e86	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe9b8ccc4	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xed747e2a	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xed92e552	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee52da5d	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee52f14d	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xef698851	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf04561c4	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf22bcfc6	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf605bacd	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf7f8d591	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf8220cdc	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf8e354b9	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf936f014	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc1a4511	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc7efc41	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfd748f47	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfdd5a97e	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfe311228	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfec18681	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfedf021b	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xff0de0e1	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xff3f38de	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x16da6b54	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x5d67a504	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x5de9d30e	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe828a45d	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x0bbef777	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x1d8de1bd	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 0x34427818	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x4106ece6	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x43812011	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x51a97009	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x74f018ed	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8eea948a	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9766301e	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xbc9276e8	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xccd0e01b	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xce45e7c4	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xed8039c6	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf9448541	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfde0869d	line6_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x00236397	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x002452ca	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x00460da3	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x0046e492	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x005ae075	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x00607db5	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x00651810	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x006f2a71	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x00802bd2	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x00928af8	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x009a1a23	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x009b3abd	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a0467b	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x00afc870	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b11537	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b7858e	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x00bd975b	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c4cf98	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x00decae4	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x00df98c7	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e3e56d	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e7a69e	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x010e8f9a	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x01157e70	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x013ef04c	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0142cacb	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x014c7260	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x0153142d	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x0159c819	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0166c1a8	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01844280	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01873010	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x01907648	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01aa58b0	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b14097	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ecf46b	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f48df2	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x02079154	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x020bcedb	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0235f63f	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x024eeefd	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x025574be	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x025d5791	pnv_ocxl_get_pasid_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x026f1fc9	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x027c552d	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x02889d10	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x0291ffb6	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c37376	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c7789b	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f7e1ad	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x031196b7	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03165183	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x03242a08	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x032e73ff	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0337c354	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x034b38a6	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x038dfff3	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0394b113	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d17456	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d2791f	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e46530	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ee1772	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0403ed22	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0408e668	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x040a40a7	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x040d5b4d	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x041e8b10	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x041ec506	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x042571ff	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x04258796	opal_flash_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x045ad219	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046be74c	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x046c70d4	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x047da231	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04a48b24	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ca7283	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d3becc	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x04daadcd	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df286a	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df4d51	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e09a06	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e56a15	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x04faa4ab	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x05045b84	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x054d35b3	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0574f04e	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x05764596	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x05767105	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0577a6c7	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x05808db0	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058ede9e	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x05980944	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x0598593a	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x05ccb2e9	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d91126	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x05dd7a1e	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x05fdb797	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x06101db0	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0616590e	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0x061ae973	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x06285d2a	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x062ada61	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x062d8df3	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x0647ce49	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x0662c85b	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x066b3364	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x067770d5	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x06885693	srp_release_transport
+EXPORT_SYMBOL_GPL	 vmlinux 0x06a57c5c	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b7e413	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x06bd11d3	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c21a11	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ca5b16	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d4895b	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d76447	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e4c673	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x07112d96	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07609b9c	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0761da2d	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076707fd	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x076de290	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x0770c5ac	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x07714b6b	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x07747bb2	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x07858797	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0786cdbd	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ba018d	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c7b116	init_phb_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d122f5	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x07dfbeb0	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fb06a5	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x080248b9	cxl_afu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x08113303	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082d80b5	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x082e32d5	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0841bffb	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x08463250	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0849639f	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x0850ec1b	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x085ca085	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x087bd533	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x0883a6d2	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x088997b1	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x08903e1d	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x08971896	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x089e619f	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x08a458e7	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x08a909b6	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x08af2bb8	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b0db5b	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b10b2c	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ce027c	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d625b4	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ef5ce4	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x091c824a	machine_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x092049b6	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0944572d	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x094af376	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x099d4e6d	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ab4d5d	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ddeeb0	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x09df3b12	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e9812e	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a073962	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0949ef	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a129b58	is_xive_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a2776ee	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3a3207	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a51ae5b	virq_to_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a57cdfa	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a7c12d4	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8bc073	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a99bf99	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9b873e	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9d49a2	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aaeed78	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab5e731	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abcb113	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0acda16e	mm_iommu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad6c80f	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ae8e9f6	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af4798b	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0affd5e9	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b09e040	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b270b8f	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b37c7b2	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b614ff7	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6b75b6	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b74805e	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8bff30	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8fe487	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b92ed3f	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b96ea55	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba23419	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba31983	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb31e3c	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bcb2a0c	pnv_ocxl_get_tl_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bce0083	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bdffd53	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be26202	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be75bc5	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0beddd8f	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf684ba	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bfaabbb	pcibios_free_controller_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c06a9b6	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0ae1b0	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1c1f7a	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1f0a1b	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c402cac	replay_system_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c48ddfe	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c49d034	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5b614a	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c811bcc	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c8317b6	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c87b499	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca39bda	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0caac6c6	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cac8546	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc777d2	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce3ee5a	mmu_kernel_ssize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce5f580	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ceadf10	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf18853	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d125ab6	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3fcf18	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d51c28e	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d585a5f	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d78144c	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da1d8b2	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da455fb	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da482e9	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da70ccd	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dbc053e	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de06988	cpu_first_thread_of_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de3086b	flush_altivec_to_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df63c2b	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e070bbc	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1070e1	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e216555	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e323d45	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e33f4ee	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e45946c	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e521b82	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e626e27	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e824135	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e84ddcc	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea2a72b	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb2efc5	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb6e8c4	pnv_ocxl_get_actag
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec31975	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed02d3f	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed22732	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed85095	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x0edd4c1e	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ee8e400	kvmppc_h_set_xdabr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efff130	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2db5f8	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f304d95	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3f48d5	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f56359a	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f57d038	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f79cd62	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7a0b19	cxl_afu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7f8993	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f898679	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f90f452	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa1e804	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fb90ad4	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc11209	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe9c938	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ffa9494	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x102f9b34	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x10349d1d	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1047c596	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x1047d2d7	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x106c94c5	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1080feb0	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1084fad8	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x108851f8	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a0f254	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x10b746c3	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e77a5a	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x10eb73fe	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10fe219a	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ffd3ab	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x110cc18d	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x1114011d	threads_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x111e6dfc	pnv_get_supported_cpuidle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x1121d7f1	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x112d693b	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x113568c0	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x11356b2f	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x114cbdc7	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x11638a69	xive_native_alloc_vp_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x1167a1a6	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x11851dbc	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x11857615	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11bfe56f	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c1a2b6	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c5d446	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d688ed	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x11dcfd8a	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e2bfcf	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x11eedcdc	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f8ffb0	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x120131d2	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1223d048	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1227d521	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1230a2cf	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1247dd9e	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x124c3bc8	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x124df676	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x125247c4	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x12746cb6	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x127f5a03	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x1288e9cf	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x1297eb92	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x129ec6af	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a55b09	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a7c57f	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d0fc73	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d2775c	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e44b7d	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x1302f26e	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1305e341	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x13094b40	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x132288b2	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x13326043	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x133598b8	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x13390b8d	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1344106e	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1346e4b3	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x1347f3b6	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x13523bdc	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x13539266	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13620f44	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1376982c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x13843b27	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a2c46d	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a34ee8	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b0091e	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c523e4	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ca899a	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d2ca0c	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x13dd4904	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f97620	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1416c1db	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142d01d7	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x1434b946	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x14457fb9	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x14479d5a	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x144fae4f	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x14615e7a	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1473c58d	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x147848f9	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x14814038	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ac1663	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x14bee7cc	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x14cc8048	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ebc564	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fccc71	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fe3981	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x151b4cc3	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1529cb0f	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1537c7f2	opal_ipmi_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1552c709	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x15638c9c	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x157f3156	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x158e3ecc	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x15add53a	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x15bdf845	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c21e5e	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c3a5be	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x15da0f51	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e6d7f3	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f43a2e	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x1611cffa	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x162b3345	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16369a27	xive_native_sync_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x168adabd	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x168d27e4	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x16947d42	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1694ea67	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a03b10	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a11357	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b0d498	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c56bf2	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d2855d	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e0c71f	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x16ecb598	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x1707bc01	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x1708924e	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x1708d3b9	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x170de775	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x17173aa9	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x171f79dd	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1727bd26	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1735cbd3	flush_vsx_to_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x173e526e	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1749016f	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x174c37b0	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x17524eb2	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x17528d89	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x175905a3	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x175af3b1	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17604120	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17653811	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x17784770	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c8bad	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x17843fa6	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x179a3d4e	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x179c6b98	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bfe532	set_thread_tidr
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c17d7a	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c2cbfc	hash__alloc_context_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d5609d	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d6bbf4	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x17fa013d	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x1843e540	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x18511b86	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x18570df0	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1862e38a	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x18654dea	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x187270f0	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x187d3737	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x188a23c0	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1898b679	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x189f874d	powernv_get_random_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a40ade	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b264ec	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x18db6bfe	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18eefaaf	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f4715b	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x19156b02	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x192fac55	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x193a4722	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x193f95ce	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x196e1a5f	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x196f0c8b	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x197016fd	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a37d8c	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a421cd	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a085bd0	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0a1215	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1d4131	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1d7386	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a2581ef	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3b5214	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a45e225	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a549be7	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5b5a1b	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5f2631	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a7843ea	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a9c20b1	xive_cleanup_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab2f83e	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab3d20a	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acc5a74	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad2f2c6	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x1adaed9c	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x1add6a1d	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aed98a8	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b031c19	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0b5e68	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0bb909	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b223ea1	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b318a34	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b320af7	pnv_pci_get_presence_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b359918	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3aa5fa	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3ecc46	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4b1d47	eeh_pe_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5d720e	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6f80df	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b735d97	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b76d3cf	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b7e2960	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b9664d1	__destroy_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bad636a	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bad8403	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bbc28ea	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd2cea0	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be55ea4	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0198e6	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0d0158	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c14a1d4	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3d7615	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c415683	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4fe9ee	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5bd709	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c62e34d	opal_get_sensor_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c700f20	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7df74c	kvm_hv_vm_activated
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c88742d	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8a5ae9	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8bca8d	emulate_vsx_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca366a2	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1caf6267	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb2d2c2	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb47734	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbdccc8	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdfd6ce	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d108b63	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2039c9	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2167ad	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d333709	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d433f22	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4b8825	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d679514	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d6f7817	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7e35f0	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d844f1c	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db57880	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db66b37	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db8018f	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dce3d68	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd86ece	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ddf66fd	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de0fa9e	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de70a61	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de7775a	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ded80cd	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df33284	opal_prd_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dfcd459	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0b79d6	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0cf235	opal_get_sensor_data_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2387e2	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e530979	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e57aab6	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5e093f	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e611add	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e679155	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e67dc86	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e6d1837	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e763333	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e88824c	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e89fca6	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e931172	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e955799	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea203bf	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea59a12	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb1a07a	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec0b1bb	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec679e5	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecafd9b	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed87bc8	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x1edac5c3	xive_native_enable_vp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee73cd5	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef7d520	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efa5c06	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efc835d	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f050e36	pnv_pci_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0ca3a1	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2adafe	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f37a0a9	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f43a29d	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f539ea0	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f56d9b1	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f58191a	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f58aba9	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f85fd2b	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8cd0f7	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f931d3e	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f98d038	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa01720	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa27d26	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fad4de8	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc0c5e0	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc7ff60	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fcc9b16	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd5c486	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdb2659	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff3537f	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fff9608	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x20075c3f	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2010e6a3	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2025cb8c	mm_iommu_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x20399c0e	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x2046c4ee	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x204a544b	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x2085c63e	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x209ea567	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a0b9f2	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x20af9c21	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b664c6	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c233fe	is_pnv_opal_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c562e1	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d31622	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e2f6a1	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e4a4a0	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ebc577	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x210cdcb5	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x2113d3e0	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x2114d701	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x211850f5	htab_hash_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x212133f0	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x212c3294	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x21341496	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x214dc5cd	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x21523397	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x215a68c4	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x215e3058	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x216c1cda	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x217912ee	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x217b9619	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x218f5cd3	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x2196ae56	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cb8bda	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cdc282	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d78b12	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e8e4a6	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e93321	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2208f05f	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x220b4c13	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x22313bab	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x225f062c	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x228a7e6b	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x228fdc29	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x229a4fd5	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x229b0eb9	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b5f909	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ceb499	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x22eabed4	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fa8a1b	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2300f9d7	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x23023752	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x2305063b	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x231575b2	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x23166e05	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x231dde6d	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x232d6335	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2358af18	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x236b1a82	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x236c41de	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2378c66f	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x23862f05	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b22906	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b23fd6	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b9d4da	__tracepoint_vfio_pci_npu2_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bb75a0	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c040c6	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c9a3da	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d20897	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23fef637	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x240b2820	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x24240fda	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24489ce9	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x246023e2	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x24680494	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x247312f0	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x248ffc0b	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a3f03a	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b9b061	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b9f356	mmu_partition_table_set_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x24bc34a2	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d1b1cf	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d64c90	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e13e7e	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e58b8c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e680f5	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24fee8a8	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2515a2c1	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x25316482	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x25440e46	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2546f531	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x255115ce	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x2559d24d	kvmppc_h_set_dabr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2579fbc8	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a9aafe	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x25aaf666	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b54d0f	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b73a0d	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x25d3f748	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e103b9	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e9b38c	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f19a69	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x261de414	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x26272262	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x262bdd28	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2644df85	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x2648ccd7	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x26497075	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2650d6a4	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x2671d867	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2673ac9f	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x267bdfd8	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x267f138f	remove_phb_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a1f17a	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26aeb00a	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ce478d	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x26defa95	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e13df5	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x27047f5e	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x271323f6	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x2717346c	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x271a3085	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x274085ea	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2742f167	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x27657645	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2769db19	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x277bca02	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x277e288e	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x27832634	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x279003ee	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x279ba761	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ba56a3	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f454e1	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fde490	kvm_free_hpt_cma
+EXPORT_SYMBOL_GPL	 vmlinux 0x280986cd	vas_win_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x280d9f65	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x28106428	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x2810b94d	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2835a481	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x2844a4c7	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x28730794	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2880af68	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x289d27c9	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8f935	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ad0fbd	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28bf7f49	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c3dd99	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d0b03b	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x28df39a9	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x28df6a36	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e51705	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f3c007	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f4a27c	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x290019c1	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2915bd1b	radix_kvm_prefetch_workaround
+EXPORT_SYMBOL_GPL	 vmlinux 0x291a57f2	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x29256433	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x2940032d	pnv_pci_get_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x295c5785	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x296f07b8	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x2974306f	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x29758f71	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x2986e853	iommu_tce_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x29aa48d0	radix__flush_tlb_lpid_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cf4f29	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d69ff6	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e1a20b	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e399fd	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29faf0c2	get_slice_psize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0a40fa	mdio_bus_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a17b7d4	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a277b9d	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2856ce	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a336698	opal_rtc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7bdc02	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8ebcf4	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a979dcd	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9bd99e	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab80a8d	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abaa552	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac47c73	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2acec291	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae97341	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af1720b	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b02b7c7	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b05ed2a	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b109d4c	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b12b630	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1bae0e	cpu_to_core_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1fba0f	xive_native_disable_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b24963c	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b290fab	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b30816d	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4147ed	kvmppc_hcall_impl_hv_realmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b506edb	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b576179	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5c303b	smp_send_reschedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b695ea8	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b783d3d	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b96075b	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9fee8e	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb9095f	radix__flush_pwc_lpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bbdea17	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd4fd2e	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be32c0d	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be5f5ed	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bed68c5	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf87b68	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c198a8b	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c1f48c5	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3b7a20	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c410002	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c43aeab	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c494804	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c58de75	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5d7431	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c64eb36	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c67fae8	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c680f7d	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb06770	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc11c3a	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc3ed81	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd08fba	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd5df3a	opal_ipmi_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd88f51	kvm_hv_vm_deactivated
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cfb2f3e	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d02c308	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d072131	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1f000f	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2b7b64	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d4ec902	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7202d9	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d764a22	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d873b37	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d92b701	sysfs_add_device_to_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d982249	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9df220	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da2fd1c	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dacb99b	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db0f362	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc4e479	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc6b22b	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd80b30	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2defe115	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e068266	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e0dc0b0	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e659d8b	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e79d108	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8afb4f	vfio_spapr_pci_eeh_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea57e3a	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb88391	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebc159b	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe6575	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec8d7c6	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed023ae	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eda0cc8	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eed9e04	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f393cc9	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3a1be6	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3ae2f4	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3c878b	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4a73c3	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f50e8cb	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f60acb1	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7527ad	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcc9317	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd9abbf	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdd7bd3	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdf8427	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2feb1304	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ffbd18c	opal_message_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x301832fb	opal_async_get_token_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x301d5894	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3020e618	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x30227031	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x303dacc9	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x304e38ff	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3053638f	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3053917a	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x306f5576	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3087d8c7	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090262a	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x30974a97	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x309ca95d	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x309febb3	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a2f58a	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a56bde	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a656db	pnv_pci_get_slot_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x30af4fc3	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ba5e3f	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c3b465	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x30d0ffea	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dd65da	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f2bfea	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f789ca	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x30fdaf6b	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x310cfc4b	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x31109637	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3119d2a0	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x313826e2	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x313a9f1a	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x313cf8c4	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x314b2b47	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x314c3b83	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x315d3b9c	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x316cc465	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x317d592c	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x317ec996	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x31889027	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31965db3	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b8ee30	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bc1edc	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d0dc40	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d4045a	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e1b08a	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e5ff2b	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x31fb84f5	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x320e3d5c	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x320e8c4d	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x321c1115	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x321eb4d7	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224d633	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3239aef3	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x325a6c29	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x327bfae5	cpu_add_dev_attr_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x327ee8bb	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x32804d31	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x328700ec	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x328f098d	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a68cb5	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32aba2dc	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b65953	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32cdaaa3	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0x32feb5e6	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x330f57e2	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3322c123	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x33287c11	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33298fde	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x333ad5d1	pci_hp_remove_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x33413736	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3348e087	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x336deaed	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x33744569	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b1ed9e	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b75e32	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cab935	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e49a60	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fa5f6b	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x34062493	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x341956e9	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x34269bbf	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3427e0c4	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x345b3a79	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3468d96d	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x347a01aa	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x348dc5df	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x34929ae4	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a4b71b	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d2a1af	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f0cf37	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x3515fe86	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x35166fcd	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x351e9112	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x352aea52	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x352f2b15	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x353a2237	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x3549d82f	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x35560c5e	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x355642c8	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3557e52b	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x35609556	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x358acf3c	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x359237c4	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x35af274d	pm_runtime_get_if_in_use
+EXPORT_SYMBOL_GPL	 vmlinux 0x35bdebdb	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x35bfdeb2	kvmppc_host_rm_ops_hv
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c0bf36	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c3f305	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c9b533	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x35dc78b7	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f31c54	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x360e60d1	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x3631b12d	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x3634c12b	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x363b92a8	eeh_pe_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x36694e75	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x36736df7	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x368314ac	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x368998c9	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x368ee825	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x36929f11	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x36973a84	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x36982729	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a4aa6c	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b7e0a5	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x36bb447f	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x36bf04a4	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d7d5e4	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e9aedf	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f17a93	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x37018c55	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3717575a	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x37390404	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x373da723	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x375415b5	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x376bbd9e	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37877465	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x378a494b	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x378bbc40	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x378ddef2	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b297c6	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b62d93	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b77739	save_stack_trace_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x37baa97d	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d5eaf0	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d79583	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0x37dc61e5	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ff7405	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3814dd6a	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x3815da5b	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x381b0691	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3822c171	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x382ec4dc	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x38315ed0	copro_flush_all_slbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384c8784	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3856e7d3	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x385d4a50	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x3868ba29	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x386b48a1	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x386d516d	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x386e0abd	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x38856a82	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3896951f	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a02c41	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b331ae	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x38bac7b4	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c7a4ef	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d23562	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d9b538	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x38dce1aa	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fc2fb0	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3909f139	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x3912061a	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3917388d	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x391a05fe	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3930b61e	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x394b012c	kvmppc_invalidate_hpte
+EXPORT_SYMBOL_GPL	 vmlinux 0x3957c83b	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x395b896c	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x397cf4df	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x399a476d	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a49cc1	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b4dc93	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x39bc01bc	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ca4c6e	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x39cb7e9d	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x39dd5aaf	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e7a020	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x39faee83	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a29051e	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4423f1	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a49906a	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a57f3ba	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6893b2	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a77f8b5	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8765cb	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8fd3ad	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a92a9d6	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9b3074	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aaf8c4e	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab81012	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac7466a	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae04918	eeh_add_device_tree_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae457c3	vas_paste_crb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afab3df	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b016d5f	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b01ac5d	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b040d5e	isa_bridge_pcidev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0b41c1	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0ecf79	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b6c71ea	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b73947b	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b79ed87	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8b450b	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b94a65a	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba5511f	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb161ff	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c00cb31	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c04165e	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c13141e	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c288a8e	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c32042d	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c34a8df	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c51869e	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c53fc05	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c6826f2	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c8b63d1	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9633f2	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9bf07e	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc37da8	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce181f8	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce1967a	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce3cb5a	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce65403	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce7e06c	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf433e1	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf69baf	slice_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cfb796d	kvmppc_save_tm_hv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d259ec9	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d299dfb	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2b2267	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4540fc	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d612305	iommu_direction_to_tce_perm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d640d4e	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d867dd0	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d91669e	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9b1e73	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da407e7	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db5bed2	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc1f36a	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3deb23cc	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df743e4	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e02acf6	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e2838b6	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4e9191	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8d875e	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e99e024	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9b48ae	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea51e0d	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ebd4882	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ecdaa2b	__find_linux_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x3edc8996	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eef786d	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f1a9821	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f21d4e2	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2aeaa1	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4843e2	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f584880	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5a36ac	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5fb100	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f6c812f	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f7d30b1	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9ebfc0	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fad1f36	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae1c58	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fca5213	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fcc3e5d	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fdfd57d	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ff562ee	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffc77c9	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x40176023	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x401ce5b3	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x402618a7	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4027770b	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x403a2484	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40406883	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4048835f	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4051854b	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x405688c3	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407cc559	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x40963c54	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4097df92	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4097f515	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40adda4e	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b5be99	xive_native_populate_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e1f905	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f074d9	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x41088cbb	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x410eb62c	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x411140d1	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4122ba5b	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x4140f701	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d7aae	xive_native_get_queue_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x417e45a0	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x41842d85	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4196f9dc	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a01a50	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a8c8de	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41eb12b8	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4202f5fd	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x423d2b94	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4273fa91	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4281ab2e	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x428970e2	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b1aef9	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d4a22a	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x42eb1e51	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42edbef0	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ef0bc4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x43209df9	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x43263ee2	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x432702e6	mm_iommu_mapped_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4333b476	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x4334e730	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x43364ccc	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x43368a82	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x434f9a8b	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x436d357d	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438ae590	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad43be	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x43bc6f15	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c1bc79	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d2ee42	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x43df598b	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x43eb902d	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ecfe3f	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f326d7	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43fb245c	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x44063e88	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x44097334	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x443448a9	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4453fe90	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4460fe41	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x4472b312	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x447ca239	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x447f237f	pnv_ocxl_unmap_xsl_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4499a29a	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x449fa45d	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a8363c	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b09de0	iommu_tce_check_ioba
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b5c843	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44cab954	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ec3952	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x44fa85a3	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ff059f	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4511c192	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4515783d	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x4516320c	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x451bd5cb	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x451cc633	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x45292d66	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4562f204	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4563ccc3	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x45652310	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x457513c9	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x45814b9b	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4583aa8b	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ce42ef	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cebe88	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x460036b5	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46181cf8	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x461e5aa1	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x4621dc16	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4622353a	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x464cbccd	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x464cd016	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x465bc650	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4662c9d3	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x46696698	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x466d0d29	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x46879bb8	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4689785d	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x468eb179	kvmppc_update_dirty_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a53362	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ad833c	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b07d16	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e465de	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ed59bb	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ed8120	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f1401f	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x47054778	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4705c76c	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x470be6e9	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x47100d5e	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x472fd65d	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4735aca2	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x47386c5e	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x47480210	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x47595cca	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x475cd292	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4764ed45	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4769d80a	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aab72f	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c94a9f	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x47cd7b46	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dac61e	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dc4b59	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ea3433	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ed27db	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f608a9	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x481e5487	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4826420d	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x482739f6	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x4846559f	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x484b77e9	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4854f8e8	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x48573045	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x486e6604	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4873a48d	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x48749a24	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48755f37	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x487ac245	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x48932464	eeh_pe_inject_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x489e3377	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a7fe97	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b78175	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c29d1b	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x48caccb7	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e396e7	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e6a0aa	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x48ef9a5c	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f4dc3d	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f6292d	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x490a9375	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4930d269	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x493461d2	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x49383052	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x495d5eb6	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x4960067c	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x4961b24a	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x49836719	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4985d9bc	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49982ceb	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x499896a1	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a1ac1f	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c1d4d4	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c6eb2d	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dad7f5	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x49de589a	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f3b073	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f91320	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a026413	mm_iommu_mapped_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0effea	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a189a75	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a1a55d2	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a296d0a	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a307187	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a413b5c	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a486225	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4db6a0	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a51abb6	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a584e32	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5e9275	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a72dde5	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8fe4e1	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9f047a	tm_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9f4ecb	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa4e9f4	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa69ba3	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aaa6cb7	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aabadc1	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4abc39ca	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4abe0db3	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac4089c	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4acd1c87	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ade1ce7	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aed72ce	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b024cfe	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b08de7c	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0d5851	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0ea3cb	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b118827	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b178396	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1fd18c	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5b423d	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7820cb	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba0c3fd	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba4521f	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bbc56a9	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8e4d1	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be22454	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4becab31	pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bef0884	pgtable_cache_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfbb122	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c059743	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2484e9	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c326dfc	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3329fa	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c383642	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c396e7a	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c42c2ed	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4460b0	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c492093	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c590c2b	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5ee518	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c62310f	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c821cfc	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9f5ef1	pci_find_bus_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca21621	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb49add	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbfd688	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc0c2d9	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd664ca	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf8407b	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfb6fe8	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d04d639	eeh_dev_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d062bbd	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0f6d80	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d1d637f	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d221a0c	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d286afd	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d364ddb	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d573e35	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d866378	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d90059d	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db0c196	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db4674e	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db80f2c	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc06f4f	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc25cac	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc376f0	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc52c09	pnv_power9_force_smt4_catch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd036a3	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfb0c98	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e02ae70	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1f2d4a	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e368be6	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e4f5fb1	pcibios_claim_one_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e51de73	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e547c68	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5e21e9	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6327aa	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6d84fb	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e83ec02	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9b6347	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb67ac3	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec535dd	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eca6823	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4edbd497	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef205b6	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f108be7	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f18013d	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f247702	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2fd591	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f523d6e	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f631589	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f68bcd1	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f9bb0c0	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa3f4ee	copro_handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa6fde5	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb4c9f0	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb98f28	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb9f98a	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbde51c	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbe7adf	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdd2338	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff772bc	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ffcc381	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ffd18b8	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5004e26f	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x503ff388	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x507a197a	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508377eb	xive_native_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x50879e4f	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x509abdcf	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a504fe	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dd1af5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e53b91	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ed7a95	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x51164d2e	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x513974e0	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x51467dfe	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x515f67b8	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x516a29e3	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5171cfb0	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5182c2e0	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x519a50bf	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x51a47ed6	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x51aa6465	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b65a26	rtc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f2e226	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f7dc66	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x520e857d	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52142d6f	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5235e90e	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52937e67	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x529cf0b4	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b8a4ab	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52dd2173	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ddc343	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e9d6aa	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f78e8b	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x530a0ab3	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x53291f6d	iommu_tce_table_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5335dd11	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x53503fb5	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x535b8647	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x535d8dcb	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5365f92c	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x53666a7c	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x53713119	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x53884839	kvmhv_load_host_pmu
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x5396ff16	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ca434d	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cac1df	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cb2263	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d4b1cd	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d57545	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d6e244	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d9f73a	sensor_group_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x53e01534	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f24775	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x53feeb44	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x54000dc4	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54207b64	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x542f450b	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5438dcf3	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x54458f81	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5457beb9	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x54684a57	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x546c5565	ppc_tb_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5476fdd3	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x548352ca	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x5494a780	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5498a043	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b5efb2	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54cbdfbf	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d15b0a	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d86b7c	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x54dc292a	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x54df46c8	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e9baac	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f974be	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fe0f99	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x55103f8d	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5513e1a2	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x55153f08	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x5537fdc8	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x553cec29	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x555bba5d	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x556cda9b	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x556f6917	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5588879e	kvmppc_entry_trampoline
+EXPORT_SYMBOL_GPL	 vmlinux 0x5589f99b	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5597107e	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b02101	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c2b999	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c533ee	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d96e56	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x55dd5010	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f093a9	opal_write_oppanel_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f63a82	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x56072537	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561ba39c	iommu_tce_xchg_no_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x5620596f	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x562c4167	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x564a6734	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x56503812	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x56adb076	eeh_pe_mark_isolated
+EXPORT_SYMBOL_GPL	 vmlinux 0x56adf42f	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b3dc42	mm_iommu_is_devmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b6699e	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cfa553	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56df131d	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e3e95a	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e622a0	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e99812	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x5703bd52	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x570f3aaa	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x57171aa7	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5720d536	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x5736a330	mm_iommu_ua_to_hpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x57744687	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x57747e53	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5775c714	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x578d075d	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5799facd	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ad146b	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ad4be0	opal_int_eoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b408f5	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ccb6de	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e3184e	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x57eb1609	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x57edf4c0	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x57fe9772	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x5829d75a	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58440b16	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x586f3e4c	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5873784d	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5880e293	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x5892f832	release_pmc_hardware
+EXPORT_SYMBOL_GPL	 vmlinux 0x58977020	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a4312d	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b5244d	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b8e9d9	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x58becd71	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x58c36341	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d0abb4	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d3c040	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f00532	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f3c083	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x58fde4ee	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5909fc18	opal_tpo_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x590f4f6e	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x591fc5aa	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5936a362	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x594318b3	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x594b5848	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x594d404f	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5973921f	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x597502b3	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x597dedb7	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x597feda8	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59917b0e	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x59abeef6	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59be22bc	kvmhv_save_guest_pmu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1729c9	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1b4bd9	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a224169	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a272d19	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a35f5d2	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3f491e	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4d5219	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a57709a	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a65cd08	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a725712	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8f70a7	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac7a795	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae4987c	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b209df9	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b3d4866	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b41a5ba	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b52d888	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6560e1	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6f649e	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b76eb53	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8a6601	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b915da0	cpu_add_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b997381	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b999398	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5baccc4a	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbfa607	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd714cf	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdd2b44	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdf4a2f	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0270bf	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c05e0a8	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2c4612	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c341257	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3627c0	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c38c3a6	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4d9126	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c801d90	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c89d49f	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c998031	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c9ad5a8	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca93935	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca9dd28	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cac089c	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb99d97	kernstart_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb9f12e	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cbb1106	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdf64cb	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf4f793	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d07c694	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d27e81f	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2920c1	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3cdf93	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d40b73d	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6dbea7	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d799541	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7f47eb	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9df175	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9e6d7a	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db4389f	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbac71d	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dcc5a33	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dccf8ff	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df16667	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e00aea4	ucall_norets
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e00d2ae	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e12ef7a	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e16c895	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2c188a	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e305385	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e38fce5	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3a3182	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e46f522	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4cbbd0	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e548665	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e72466a	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9227e1	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eabcf08	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb19dc3	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec8ceec	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec93150	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed0cff6	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed0da6c	tm_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f078332	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0953f4	early_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0a51bf	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f1fc8a2	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f49d6b8	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f510a01	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f543687	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f79a935	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9e2f60	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fab328d	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fac2842	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb3311c	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdc2029	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff2883d	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x6000187c	opal_check_token
+EXPORT_SYMBOL_GPL	 vmlinux 0x6007fc8d	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x600cc455	mmu_slb_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6019c9fb	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x602ea6ba	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x604c0cf2	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6081884a	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60bb439b	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cdc101	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f2a3a2	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f362fa	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6105420c	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x610dfee3	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x611831d1	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6119e2eb	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6125950e	power_supply_set_input_current_limit_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6125f01f	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61314422	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x61349c54	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x613a34df	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6152c962	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6164d2d8	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x616b0cba	mm_iommu_preregistered
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x619a8194	threads_core_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x619bd8d8	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x61abbb1c	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x61baeef7	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c99092	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ca025c	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x61cb5ea6	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fc1179	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x620897c0	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x620a43ed	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x621a1e9a	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x622271a1	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6226c2b5	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6250c810	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x626014f6	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x6262799d	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x62739d9d	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6276ca19	flush_fp_to_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x627e12a1	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x627fba8e	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x628148be	_kvmppc_restore_tm_pr
+EXPORT_SYMBOL_GPL	 vmlinux 0x628f4c92	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b9b6dc	srp_attach_transport
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c379ea	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d53933	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f32685	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f68ab5	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6303ce97	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x633475c7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x633d7cd6	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x6345802c	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x6380688c	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6388f7ef	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x638ce392	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x638fe250	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b86dd3	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c06663	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x63caaca1	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x63dfe30d	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x63edcee2	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fcaa7c	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x640c6019	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x640d41d4	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6426c8d2	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x642a0d37	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x642c5c19	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x6436d48b	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x643875b3	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x643b9ddb	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6444ff62	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x644f327a	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6468008b	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x646bb7ae	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x647b5df1	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x6487daff	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x648a3b47	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x649391c2	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6493a2df	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x64982e37	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x649f2231	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b1f5fb	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x64be1b95	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c6ce5d	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d089fb	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d1ee71	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d7846b	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x64e3b64d	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64fad52d	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x650839d5	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x652a19fc	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x653c5c90	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x655180ae	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x656c9ffd	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6591ec84	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x659f5e58	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b9fd07	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65dbd709	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x65df8985	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e1df15	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e411ae	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e77d50	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x65eac411	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f131b6	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f79b7a	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6623c381	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6626025b	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x6629c030	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x66395a06	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663c0a85	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x663e846e	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665db962	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x666a2be4	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x668dcf5a	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6693bc90	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a7beda	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a9d2ad	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x66abb112	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ad1135	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x66afb53b	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b5733b	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c1cb85	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c400b6	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c6ee8d	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66def30c	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e5e611	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x66eb95ba	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6705ce75	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x671e77ab	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x678a9fe1	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6793da00	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a2088e	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a9a2e3	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ac8f4e	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b87fdd	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bc55a6	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x67cd201d	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f35336	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x6800354f	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x68077ccb	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x6814bbfc	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x6815948e	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6817dd4e	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x6822aff8	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x687603a6	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x68779f3e	srp_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x68786f2e	xive_native_configure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6891ada6	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6894c99e	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689a3fad	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a0d328	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x68c40828	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ce858c	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d59638	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e4511c	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e5ad01	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f8eb43	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fa7509	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6909a38b	opal_rtc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x691efa92	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6928269b	xive_native_disable_vp
+EXPORT_SYMBOL_GPL	 vmlinux 0x692bab83	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x6932f5d7	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x69446897	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69450e4f	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695e34b5	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x69711806	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x697a199b	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x697cbbb4	threads_per_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x698299bc	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x6989b7ab	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b18ca7	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ba6f80	pnv_npu2_unmap_lpar_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x69bd0dc4	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c77d49	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ea1c7d	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f506e4	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fdddf1	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a03562e	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a119cfb	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a143d4a	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a17314b	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a267b4e	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a27632b	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2e4c09	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2e7b37	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3946ad	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3ec53c	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a61c2fb	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6795a5	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6b2ff4	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a700f51	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a79f6e4	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8639fc	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a918653	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a9c4c1e	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa23cb7	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa3b2c8	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa02eb	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab47717	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6abbb2f8	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac0c881	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6acf4f9e	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad065f2	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad2749a	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x6adb46ca	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae2c549	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afe3ee2	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b01387f	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3484b0	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b41d3fa	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5971e7	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5bf67d	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b637b81	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6e5c11	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b713e4e	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b79d8d1	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8b2ee7	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bbb77d4	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bcce619	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdc1d7e	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf2777c	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf8ce90	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c26c9e2	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c31124e	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c361a15	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c42eeb2	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c493e43	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4ba02a	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c60ccaa	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7347ae	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c98791b	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca794c0	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd2ef75	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf4a6a5	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d02ff29	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0b0756	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3c2551	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3c8594	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3ead0d	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d54c8b6	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7af99a	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8050b3	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d85bf21	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d88ecd0	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daf67c6	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd1dbd3	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd49bff	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e06ecd7	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1b67c9	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e472e17	cpu_remove_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e55ec15	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e609aa0	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7bf9fd	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8fb413	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e902de7	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e974d0e	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebdbda6	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec0a96c	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eccd50e	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0088d9	xive_native_sync_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f11424c	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f25313a	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f26d874	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f31f00d	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f32eb37	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f36c2e3	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f37f91a	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f40496f	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f51ecf3	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f55bed9	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f5af4e3	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f692109	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f992e1a	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9a8158	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa3e93b	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb81e9d	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fcbde3c	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd3f583	pci_hp_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe390b5	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6feb5148	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x70183d42	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x70220c06	eeh_iommu_group_to_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7034bef3	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x704cb633	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x704f24ae	kvmppc_restore_tm_hv
+EXPORT_SYMBOL_GPL	 vmlinux 0x705eb268	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x70607cae	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7065982c	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x706d7199	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x708823d7	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x709254dd	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b74d2e	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x70bf8230	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cb3520	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d325c9	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d5b7d0	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dc0fdd	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71144e42	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x711e6331	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x712af76b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x71402c54	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7142efe6	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x71746046	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x71838342	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x7184c978	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x718d6dc5	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7198b88f	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ac5542	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b27b04	__xive_vm_h_ipi
+EXPORT_SYMBOL_GPL	 vmlinux 0x71cf3fd5	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d2cfb7	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x71da6ee4	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x72044f4c	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x72058090	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x72078f5b	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x720c7aa6	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7215ca9b	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x721dd4ca	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x722d5fc7	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x723544db	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x723c070a	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x727656fe	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7277eb3e	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x727c9dcb	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x728211b6	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7292880e	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x729c0e6b	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x729ca190	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ad6aea	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x72bfbade	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x72cf2a18	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f23bc8	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f6249b	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x72fe917b	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x73000b51	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7304bee4	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x730af431	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x7310ab86	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x73145058	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x733761e3	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x736d9f0d	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7378ca41	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x738ab7c7	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x73900e40	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7392910e	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73abf86d	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ada2cb	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b1f131	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e66c52	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ecf1e6	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x73fc0bf4	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7405666f	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x74199b26	opal_leds_set_ind
+EXPORT_SYMBOL_GPL	 vmlinux 0x741f307f	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x742784c1	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x742c664e	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x742f35e1	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x742f8856	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x743640a8	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7436a0dd	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x74399ebd	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x747d0ab0	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7483ded1	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x74882149	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x74889528	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x748cb447	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x74949248	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x749cb89b	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ac150b	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x74af756e	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b2b984	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d24352	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e0ec9e	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e89259	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fbccb5	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7510a2ba	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7519d8a2	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752b2734	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7531005c	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x754ba823	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x75684e4a	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7577ec9e	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x757cfe35	xive_native_get_vp_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x758d7061	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a0a099	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a2f9f4	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ba5933	eeh_dev_check_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bff3c3	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d0b3a3	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f85a12	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x761ab803	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x761f4bac	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x76282e93	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x766319b7	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x76636e30	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x76647872	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7666ca05	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x767d4396	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x767e6125	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x76977b19	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a35e51	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a6574f	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cce3b9	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x76de6a54	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x76ece4f4	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eed1f5	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f2abe0	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f4c85a	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772da984	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7737d67b	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x77398276	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x773a8ff5	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x776d95ce	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x776e1a8d	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x776f1d7f	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x777e5314	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7782d93f	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x778469e4	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x77862311	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x77aa9a7b	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d09291	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d15cb0	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d71cbf	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d7caba	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x77da3436	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f51336	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x77fc7a22	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x77fd091c	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ff8434	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x780ceff2	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7818268f	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x781a895e	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x781e104c	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x7828f3ae	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x78312326	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7835e387	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x78587fd7	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7867578b	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x78706906	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7886901f	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x788f793c	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x78914c9c	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x789448f8	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x789604f8	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x78aa7a84	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bd3a98	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d23893	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x78dad114	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e39b74	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e58a4e	xive_native_has_single_escalation
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e8d4cd	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x79092f3c	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x790b2cb3	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x790e54c7	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x79140b6b	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918bfb7	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x79198983	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x792f65c4	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x793b9b1e	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x79412ca4	iommu_dev_disable_feature
+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 0x79594cd9	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x7963b9a7	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x796912d6	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x79894fa8	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7996a3d0	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79977143	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x799a7d40	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a3d547	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x79aa2434	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x79adf852	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b18cf4	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x79befe07	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c5670a	of_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x79d09bce	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e6922d	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f56c09	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0815fe	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4bb895	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6532cf	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6e7b86	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8231ac	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a865b77	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a95b23b	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab6cbe1	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abf441b	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac18cab	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac34784	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aeb75ab	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0f4474	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b1df89f	pci_address_to_pio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b498a09	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ff8f4	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b557996	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b783824	ppc_breakpoint_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b7d3312	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9d17aa	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bac7eff	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbe6356	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be6bcbe	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bea5eba	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bec7f53	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf2508b	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c025bbd	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c10934b	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c26d803	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2e859f	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c37bc89	pseries_ioei_notifier_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c444706	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c49d07d	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57421b	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6cea28	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6e881b	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c73a9e0	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8acd24	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8f2f28	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca31af1	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caa10a6	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb11229	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccc0854	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd73b84	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ce035d3	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cee8579	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf66905	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d035db3	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d21a94c	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2b2b86	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2d97c5	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3b55b5	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3daf8a	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d62cf34	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6d8629	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d927533	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da49352	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db42c9c	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db8f9c6	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dcc2ea5	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddd5fd4	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de77d96	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df32bfb	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dff2a0c	kvmhv_load_guest_pmu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e07aea9	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0acdbb	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0ad81c	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e17d73b	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1e1bd3	iommu_tce_check_gpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e24ec3d	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2ff23a	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3296db	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e347aa2	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e60c8b9	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e68eb6e	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e834f3b	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e97f38c	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb7e190	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed0720c	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed07b3a	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed3b774	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed6d3ba	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee218b5	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eef3c51	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eefe692	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f1a0caf	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f416418	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f592b30	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f67a6d2	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb40523	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc632db	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fcbadb3	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fffdeab	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x800b2003	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x8016ed27	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x802be331	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x8046d9a7	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805cdd52	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x805f9775	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x80704cd1	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a9de69	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b0fa8f	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bfcf61	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d84b13	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e09988	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x80edf5a0	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8109bc72	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x811de134	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x812e4bba	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8149c2bd	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x815703c8	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x815c3284	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x81674f78	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x818b0340	register_cxl_calls
+EXPORT_SYMBOL_GPL	 vmlinux 0x819485bf	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a84f6a	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x81aad035	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b566bf	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x81cfb6dd	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e67251	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f4060b	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x82000a80	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x820f475b	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x8212432b	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x821bec0e	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8237ddfd	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x823ab6df	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x825ecf18	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8266aab9	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8285dbb4	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x828a5f93	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x829721a0	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d9abb4	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x82db6546	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f1be33	mmu_psize_defs
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f2bca8	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f7a5f0	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8301b8c4	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x830c6530	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x831334f4	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339a678	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833f962c	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x835c1332	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x836d61d0	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x83743837	hash__has_transparent_hugepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x838469e7	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b11129	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c76aaf	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cef5ef	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ff67d5	mmu_feature_keys
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8421a84c	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x84252338	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x84336cfc	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x843c0eee	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8444c28a	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x844c2f3d	vfio_spapr_pci_eeh_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8463a2c5	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x847d1f4d	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x8487a8eb	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b76f28	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ceacd8	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x85009662	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x8508db66	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x852786f7	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x852de012	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x852ff036	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x853b9110	__kvmhv_vcpu_entry_p9
+EXPORT_SYMBOL_GPL	 vmlinux 0x853cd4fe	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8559310d	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x85706cee	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8589dd80	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8596e404	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a3e2bb	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b4f55e	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b5c71e	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x85bfaec3	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d05a44	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x85db4e28	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f07d00	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f09b98	kvmppc_do_h_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x86010f44	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x860f8b6d	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x8618b9da	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86312159	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x86350395	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x866f83d6	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x867cf83c	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x867d3768	pci_traverse_device_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8680a033	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x8683338d	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x86abea1d	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b1e032	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b444f1	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c396df	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c6a9fe	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cd352d	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ee920d	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f169b5	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8701c69e	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x87073fe2	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x870d2915	pnv_ocxl_alloc_xive_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87181908	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x871d7564	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x87259793	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x87283dda	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x872cc674	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x87441c8d	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x874f1397	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x874f6882	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x874fa147	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x87527917	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8759a7ff	pcibios_unmap_io_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x875eba05	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8777346f	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x87975aba	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x879d8441	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b93728	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x87cc8ef4	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d2dc1f	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f26bf9	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x88241a57	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x88243c77	hash_page_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x882e83d7	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8869aad9	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x8886bad2	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x889b213a	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x88a5e5af	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c422c7	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c98345	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x88cb8cde	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x88f9d3a9	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x88fa1c7b	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ffc449	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x8912c3b4	memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x89142147	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a084b	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x891b293b	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x891e3236	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x89240c73	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x892ffa71	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x89360ab7	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x8938fbda	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x895307d2	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x89563252	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x896a1939	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8977590d	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x89950f41	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cdcc73	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x89fc820c	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a09ab39	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0ab9d8	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2aa4e0	analyse_instr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3da5fe	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7ed58d	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9c8efe	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9dbcad	opal_message_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab3f667	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab70541	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab995e5	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abd1120	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ada86e3	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2e64b9	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6c761a	__xive_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7cbeeb	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b817591	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb137a1	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb587f5	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd0bd45	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd4fc09	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd6f934	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bde3a6e	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c01b301	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c047e62	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c051670	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0886d4	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0e68e5	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c13d8e2	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c24c1b1	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c35a63a	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c4daf70	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c662a35	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c67f4df	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6d56e5	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c746348	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7526f1	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c77229f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd94f86	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cdc3329	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cdf27eb	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cec4dca	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf3dd59	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf45696	__xive_vm_h_xirr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d00404d	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d114acd	kvmppc_h_get_tce
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d257b5f	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3b6b97	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d51e92e	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d642b43	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6dc201	ppc64_caches
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6e0d9c	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6e6cdf	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7df186	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8043dc	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d85a38f	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9583f6	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da0c3e3	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8daa6812	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8daccfcf	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbd59e8	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbf5a20	kvmppc_hv_entry_trampoline
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc94a76	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dcdb3f3	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd226f1	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dde29dd	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de13c9a	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8decda77	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df51555	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e028bb1	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e1012b7	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e1d260b	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e296a05	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e488ef7	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e512bd7	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7355b0	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8b6591	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8e8f2e	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8eb1f2	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e905983	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e952b63	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea8d80f	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb9de2c	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed0df33	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed8724d	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee1c417	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee3cae1	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee48511	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8effbdce	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0ec9fe	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f14191b	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f197480	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1a33ca	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1ed9ad	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f38e9d8	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f3d99be	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4f3927	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f530dfb	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f542505	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7a6ad0	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f803ea9	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f87f12d	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8b2af0	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f93f2b1	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa41d50	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb04d68	pnv_ocxl_spa_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb45a42	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbe9ea9	vas_tx_win_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fddaa09	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe38828	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe81c31	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff97e65	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffa82ae	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffdf042	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x90071757	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x901fff8b	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x9029bf0d	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x90406072	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x905a6a0c	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x905fb69c	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x906710d1	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9079ab9c	unregister_cxl_calls
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b06949	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d2207e	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e7240d	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e7827f	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x90edfde2	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f364d1	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x910c3d35	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x911249fa	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x911d18ae	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x91225f22	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x912631f3	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x912662e0	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x912a0bf8	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x913d4d45	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x914284eb	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x914ccbc0	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x914fb6bc	pnv_ocxl_get_xsl_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9158e04d	machine_check_print_event_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x91651549	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9168ab6e	cpu_remove_dev_attr_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x917513bd	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x919a0f21	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a6787b	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8ee9a	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e7ec09	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f1a7cc	iommu_release_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f2d5d4	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x92053109	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9213be29	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x921babc0	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x92223914	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92238bcb	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d9dba	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924d413c	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9256a670	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x92575ce6	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x9270f773	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x927c73b0	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x927cad69	mm_iommu_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x92bd2502	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c098c9	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c925fb	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d04d74	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f0aa28	opal_tpo_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f63dc6	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x92fdab10	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x930240a9	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x93121ab8	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x931f211d	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x934a0aee	kvmppc_subcore_exit_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x934eb312	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x9359f822	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x93617371	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x938b4bb8	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a7f6f4	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x93adfe25	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b63721	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e7037e	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f296c5	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x94011396	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9402d62d	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9409aeab	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x941924cc	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x941cf40c	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x941e17cb	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943b76f2	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x94494d27	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x94781504	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x949ddace	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a07c99	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a38996	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a4fffd	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e359bc	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x950230eb	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x9505ac77	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x9511ffd3	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9513fda0	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953a3d6b	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9543c2d6	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9544f421	mm_iommu_newdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x95454770	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x954aeeaa	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x954d0f6d	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9560ed49	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x956eefae	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x95744e3c	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x958688a1	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x9587bcec	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x958e284d	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x95910dfc	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x959a05ca	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x959f9538	__xive_vm_h_ipoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ff09c	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a0f3f2	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x95af3dc2	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b01f1d	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b1e33b	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b6aa25	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b6fec4	xive_native_free_vp_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d06b8b	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e44df0	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x95eeb2d9	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef749e	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x95efa1db	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f2a1d6	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f8479f	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x961d2eca	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x96402287	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9651a581	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9651d779	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x96537fec	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9658e495	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x966d3d79	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x968cce64	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a057ba	cpu_feature_keys
+EXPORT_SYMBOL_GPL	 vmlinux 0x96aef9b1	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b1e405	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ca63f5	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96cc48b9	xive_native_default_eq_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e0c23a	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x96eb8c12	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x97053efa	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9726971c	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x972769e6	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x972bb87d	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x973f7541	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x97410696	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x974ecc8f	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97586765	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9761b056	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9790dc8d	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x979b0b12	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c8f85c	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d92504	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9805c514	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x98090e81	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x98210d8b	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x982f19d8	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983f8e2e	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x984592e3	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98557580	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9855a697	opal_xscom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9877a58b	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879deb8	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x987e5a25	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x988754f3	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x98af859c	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ba0cba	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ee1e30	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f6aaf5	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fe52e7	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x99193749	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x99533850	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x99713ae9	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9973b31c	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ab203c	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b7114b	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d16eb4	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e31ef3	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99fdf8d3	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a03afac	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a269653	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a3d2d06	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4471da	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a60273d	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7df21e	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a88dcf5	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac602b6	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9acd9324	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ada15ee	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9adf08c3	mmu_linear_psize
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae55c98	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae9d784	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b2705a8	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b437e5b	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b52c21c	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5bebdb	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7292da	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7424ec	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b93ff75	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9719a6	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba0883c	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd04e67	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bde79bc	xive_tima_os
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c35d328	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c46ea04	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c487a90	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c50f16b	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c5b5f60	pnv_npu2_map_lpar_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c90d862	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c91c696	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c928f94	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca1a9f8	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccd789b	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd1c091	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cdc8cca	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce8afac	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d071e84	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d082730	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d194428	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d349e65	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d617442	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d723fe3	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x9da17fd5	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9da1e4da	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dad4fc6	iommu_tce_table_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db33bb6	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc0e56b	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de62a16	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df25ca0	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df2b859	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e097d0b	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e523951	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e631489	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e69af5d	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7705c1	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e90fc8e	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9b3046	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9b6095	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ebcd65f	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec1f364	kvmppc_subcore_enter_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec6d0b6	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ecbfc9d	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed06001	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed91b59	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef58bc5	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f305a58	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3dfe6f	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3fdecd	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6731d3	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f696fca	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f710afb	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f792ec1	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7dd764	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa656f1	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd01fd8	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd563fc	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa003f1a3	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02aee3a	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa049e3f0	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04d3fe7	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0710dbe	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa075ce75	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a0945f	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0aa01c9	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d529ba	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ec147a	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f7b954	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fa0d16	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fb4ee0	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10ec148	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa117832c	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa148e3d6	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa153e388	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15b2874	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15fc380	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1788bf0	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17d6157	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18aecbc	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18c1cd8	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1aeac97	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c9560c	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1df148d	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e62bc9	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ed9c8b	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f24dd7	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa207c258	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20819a4	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa21fdde8	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22104a7	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22e600c	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa253c4e0	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa259b58d	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa25dab03	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa281c08a	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa298af95	xive_native_get_queue_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a78fec	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b51581	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c1d724	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dc0d51	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2de9b2d	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e55c95	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30eca6e	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3224af3	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3235a95	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33d91a8	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa358c08a	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3670f1a	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36b3219	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3731a57	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa377b221	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa37836fb	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a2d9af	walk_system_ram_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b56555	hpte_page_sizes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c1297e	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fc6d74	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4063011	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41d2e91	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42f79a4	__tracepoint_vfio_pci_nvgpu_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44d2040	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4510867	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45b5de2	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa460c9b8	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4881f64	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49b69e0	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4b437ac	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c055ed	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c7dfe8	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ca1043	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d22181	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d9c434	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e27da4	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e7a1db	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa509614f	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5134d4d	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5265a14	srp_rport_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa558b1d3	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa575e44e	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa578a463	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59a9bc2	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a7f183	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b00659	ppc_proc_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b94e16	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c9f50d	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5da2191	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e1b069	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fd1431	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60839bf	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60877cb	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa61518fc	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa61c47a1	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6207061	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6225153	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa63927ef	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa661103f	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xa675815d	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68e38ec	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68f18e6	iommu_take_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0xa694a748	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69a097f	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69db58b	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69dccbf	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a6be57	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b2f5f0	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b7a48b	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cf5680	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d1e06f	splpar_spin_yield
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6db2259	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6df8f24	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6dff84d	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e4c9c3	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6fb053d	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70597ee	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7068878	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70acc12	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa743bfdf	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7449379	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74c536a	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74fa33c	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa750e15d	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76193ba	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa761f258	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ace033	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ae7181	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bc5017	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bd32c8	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e800cc	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xa814d77a	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82b0a21	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa835c95f	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84327ca	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84e7a4d	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85df31c	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86049b1	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a6546a	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a94ff6	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8aedf50	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8af6f9e	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc04e8	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c2b8ac	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e51e23	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e5db9a	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9043793	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9144581	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9193564	save_stack_trace_tsk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa938bf9f	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa946d499	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9510682	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa952305d	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa963db09	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9642069	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96738b9	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9676b7c	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa968b231	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa982ad41	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99a6961	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99d82e0	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99e7447	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a0a6ba	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a0ee26	pnv_pci_get_device_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9abe789	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b75956	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bdd5c1	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c45cee	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ce341e	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e657e2	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e8278d	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa06afec	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1758c5	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2862b9	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2ada15	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa461f90	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa496c2a	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4ce67d	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa71ef9e	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa03227	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac7cdf6	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xaad19f88	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xaad85c28	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaadbd13e	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae134b6	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf2b088	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2fb2c6	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5449b3	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xab569cd6	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xab628980	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab830de0	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xab96deb6	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabaa4c35	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc27bd1	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcebaef	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd91c9a	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xabee8aef	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xabf0fdc6	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xabf30ae6	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xac05bdca	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0624b4	vfio_spapr_iommu_eeh_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xac07dd26	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xac134928	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1e76e6	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3f2ca6	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xac46ff12	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xac52b11f	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xac59c5c6	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xac662d37	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xac70119d	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7590c5	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xac79dfa9	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9192b7	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xacaf8aad	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb848ce	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc3f515	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc8d9d4	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xace685e7	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xace745b1	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfe997e	powerpc_firmware_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0418cc	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xad12bb7a	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1e985e	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1ff8df	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2b358e	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3683f2	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xad38d08a	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3c0f30	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xad504a30	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5ed1bf	kvmppc_find_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad71ad7f	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xad77ce8c	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8368b3	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xada5e915	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xadaafe0e	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xadaf9a97	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb26ca5	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc0f31d	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc71096	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc818ce	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xade73158	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf8753c	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0363fb	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae069c12	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1527b5	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2443dc	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xae28a87d	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3e7e1f	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0xae41d066	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xae442152	dawr_force_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xae47fff7	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7159ab	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae87cad0	memstart_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xae994f44	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeae637b	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaebcbea4	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec427d7	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec9921f	hash_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xaecdb9dd	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed5ad33	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee13f2f	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeed98fd	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeefb172	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xaef5158d	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xaef96aae	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaefd0242	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf17bc4b	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1e10da	opal_int_set_mfrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2d540f	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf36dd3f	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4157ef	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf558cc9	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf60bf1c	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf77041c	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf77b974	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7e7f1d	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf89fd39	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8c0eeb	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8cae34	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8ea148	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8fa4c0	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa77538	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xafba59a6	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xafbe6c9e	kvmppc_hwrng_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd016a4	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xafdd1b1b	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xb025b417	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02e08f2	vmalloc_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb038d3f7	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb038d8c8	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xb042bd63	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xb049ec21	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04cd820	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06634ec	opal_xscom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb084af91	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb084eeeb	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb092da1d	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0944bcc	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0992896	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a26235	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b008ad	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bd14de	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0c21020	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0c9e929	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0cb9249	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0febb73	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11de89e	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xb120ed13	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1315dd3	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1319595	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb151632a	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb170cc4e	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb17b3247	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19c1ee8	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a8f9e4	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a99bb0	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1b1a695	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d157ad	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d549e1	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d8965f	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d9f10b	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e525a7	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fa8097	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20a4bbc	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2243ace	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xb231ab2b	__xive_vm_h_cppr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb23eafc6	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24687c5	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26d7c6d	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb292854e	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a1c8bf	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a653fc	confirm_error_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b42dd5	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bb0f8b	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bbbd4c	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bfc425	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c5c6a2	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d738fb	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dc434c	shared_processor
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e08653	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ed7cd4	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2eea0cf	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3216b3c	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb325d3fe	pcibios_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32f3ce3	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34a3699	pnv_ocxl_map_xsl_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3511edc	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3623b6d	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0xb368cca1	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xb397e2a9	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39aca9f	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39b1e2e	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a818dd	copro_calculate_slb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b8a376	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3cbfac3	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d49d71	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e078e9	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e120b3	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e13dc6	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3eb28fc	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f1b694	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f2db89	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41a6a16	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41acc04	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb422473a	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43df6fb	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e57ff	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44ee4aa	pnv_ocxl_free_xive_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb452e2e0	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4560dc4	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45d8df9	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4674613	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb488588e	tb_to_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a99e9e	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c05843	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d4dec2	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e15c4d	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50a68cb	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5191ebe	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb535a937	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5421b83	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb544d816	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54b1104	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xb553d0e2	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb558bbb2	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57451f0	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xb575cef9	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57ace0a	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5908b04	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a677a5	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5aa10af	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5afafd4	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5bbd988	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c11e50	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c35bd7	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60b5707	of_i8042_aux_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60d52a1	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6101193	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb618636b	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb624b592	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6268100	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb627b06e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xb643c250	xics_wake_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb647a89b	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6490b11	pnv_power9_force_smt4_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64cd6aa	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64f9964	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6583f18	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6638157	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb663aab3	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6757518	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xb675adee	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6811a34	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb693722b	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6947e50	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xb696dc1d	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69f4f01	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a3b185	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c3e595	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e1b6e5	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e1e187	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70172a3	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7027e42	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb713762d	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71616a5	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb723afaa	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73ce640	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb742617c	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7573876	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7610006	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7804fd3	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7872a77	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78bc927	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78cc0d3	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7adf2ac	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b175b5	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b40fcd	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b8305e	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c92c1d	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cca140	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d17fa0	pgtable_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7db9201	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f392cb	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f4cfa7	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80bb345	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80c882d	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81bbee3	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81f89df	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82cdba2	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8319fc2	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb839bc31	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83a93ad	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84fb589	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8583019	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88a64ad	iommu_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb892750b	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb897d057	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89c419d	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8a6925c	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8bec7fc	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90f0ba8	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb911d7f4	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb923fa45	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb951b6ee	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb967fd67	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9682f49	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96f8a38	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98e0015	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99625cf	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99df747	xive_native_has_queue_state_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b44579	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b687eb	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ca0231	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d8375e	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xba022337	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0315ce	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xba114b89	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xba144f56	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xba158769	rtas_cancel_event_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xba163c29	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba3a036f	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xba3d9d1b	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xba587f02	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xba82acfc	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9e486f	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab7cf82	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbabd0077	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xbabd5efb	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac007ff	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad263a7	kvmppc_do_h_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xbad81708	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadaa0de	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaefe826	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafc3cba	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb29d8ca	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3da91b	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb415e0b	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb41acb1	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4fc142	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb548f89	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5fa317	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb87d296	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb94dc1e	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb96c446	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9f9e91	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba063ba	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba25f21	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba478c7	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba94403	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb3bd8b	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbcbb280	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe2e4fc	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe3f29f	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0bd9c7	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc14feec	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc27057f	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc51e15a	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6ce0d1	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc898f3a	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc954220	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdade7e	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf14b50	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf24df8	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf4de9b	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf9e5cc	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd01c9a1	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd13c418	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1beea4	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2d8f02	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd506c05	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd68d8db	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd751116	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd78c859	kvmppc_check_need_tlb_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd793637	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7abbbd	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda6425d	xive_native_alloc_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb9d4ef	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc28bf9	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc2a2da	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdeefdc1	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf837e7	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfe8dbd	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0949fe	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0bc3bd	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0d286b	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe257cb5	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe26b494	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe43e129	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe452f17	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4b4b3d	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe653707	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe810abf	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9424dc	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe95188c	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea63e77	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeabd05d	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xbecd0c17	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xbedb7df3	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeebd703	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef23a01	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef364f7	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf0e9207	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1abd6d	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1cc04b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf2b45c8	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf624949	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf62fad5	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6954e5	pnv_ocxl_spa_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf72fc21	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfaa5cb0	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbca9fa	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbd347c	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbec934	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc4d8af	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd4f9a4	iommu_flush_tce
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd6c479	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff71949	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffaaced	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffd934a	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0033bb7	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0058c17	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02296d6	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc023858e	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xc03d3997	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0647ad5	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc065a455	cpu_core_index_of_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc081193b	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08d0530	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b741a6	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c1f7fa	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c4d36b	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ebdded	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10518ca	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc113b452	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11e4517	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc130772d	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc132ae5a	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13db17b	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14a8fe4	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14add17	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1993623	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b34625	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cb6cc7	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cf753a	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1e26b64	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20ddca9	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21320bc	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2228e99	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28730b5	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2aa338c	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2be6db9	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c275ff	opal_poll_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de9df1	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ee4abd	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc320137e	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32d4008	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc336d476	kvmppc_add_revmap_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38589b8	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc388ed73	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38c9fab	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3944258	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3a90a45	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b9692b	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cdb2b4	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f8438c	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4038e8e	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc412fdf3	radix__flush_all_lpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc424ce1d	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc434f38e	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc437e7e2	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4498209	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44a2977	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44a650c	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44eae24	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc457a52a	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xc45b6d92	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46b5e00	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4801fd8	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a13b50	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a610d6	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b263e4	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f3c6af	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5042ba2	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc50c5957	pcibios_map_io_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5115b18	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51f644e	pcibios_scan_phb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5367611	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55e586e	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc56b5d29	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xc570edd7	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5785d0a	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58533cb	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58ad7a0	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58f5cbd	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5996c8c	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b00481	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b5688c	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c4eb9e	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cfca62	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5defb4b	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e3d65f	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5faa86e	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5fd7447	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc606cd3c	boot_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60d5fb2	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60ea508	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6150b91	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6264f38	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63681b7	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63e2c26	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63f0411	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6472c8b	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64fcc2d	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc658b5db	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6594eed	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc666e812	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68aa252	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a99271	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ce0e15	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d57378	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6dccbd9	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e7d6e3	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ee51d8	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70e7ba5	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7210055	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7283176	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7508730	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7591f61	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7599dc5	iommu_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75cccbe	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc791bb4c	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7927577	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79292c5	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xc798da62	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79a51ce	mm_iommu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e376d4	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e8256a	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f4e89a	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8039305	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83ae7e5	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0xc844529f	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc849106f	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84e928f	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85cbdfe	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc866c294	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc874d7a9	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88b8c4d	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88c449e	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89095f5	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a089ac	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b4610b	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b88d9b	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ba562e	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8da8965	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd758	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e85111	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f7ff1c	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f9c163	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9281b01	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93256ba	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9457565	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0xc952e429	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96100d6	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9627e39	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97513d7	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97ddbd8	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9928d2a	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99e66fb	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a8093d	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c6a27a	xive_native_set_queue_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9cc07c4	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e5af3f	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f8a1ab	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xca024f24	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xca06e614	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1a3b3b	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xca207a8f	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2b239b	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3ad712	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4b5c51	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5a9875	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5e1eb7	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xca679b51	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6ef31e	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xca741ceb	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xca74f666	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca94bf41	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa22e31	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcab7cdc7	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad3573b	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae527e6	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae56204	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0d011c	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb134007	pnv_pci_set_tunnel_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb14c9fa	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb14d41f	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb17cf19	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb418b85	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7005f9	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7ee64c	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb8c147d	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb8ecb4f	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbad643a	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb6d258	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc0dbdd	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc3edfa	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc827f6	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd71888	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbdd5de5	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc087ef7	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0f1009	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1fab88	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3caa3b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3f3315	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4588c6	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc60633b	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc736808	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7d4660	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca3e4ff	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb6cfde	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1e1a3	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xcceae517	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xccec80da	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0b295b	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd152447	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd1b8de7	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd21c426	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd303404	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd50584b	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd5ccccc	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd5f0a02	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd64a875	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd798980	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7ebf82	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7ecfb9	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd83643f	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8c96fb	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd1a841	xive_tima
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddd712d	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdedba9a	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf46f5d	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xce09700d	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1c8bc1	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1ee148	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0xce203e9d	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2cf055	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2d3c2d	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6f2246	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6f6839	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7a4fe8	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7f9531	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xce9058b9	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xce989288	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea06674	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea10e71	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xcead8610	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb07022	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb4b99c	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xced422ea	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef70187	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf21020e	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf2d5cf9	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf335033	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3f5f82	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf472523	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5ee11b	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf684d8c	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf93e867	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9464a8	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9cd597	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbc9287	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc3e062	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfef1cf2	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd000c62d	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd004721f	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00577ad	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd01f4ab6	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03b5084	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04a74b0	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd059b6f6	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd05c0d37	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0659b8b	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06fa6dd	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd079877a	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd079b37f	pci_remove_device_node_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07d9c83	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ba00b6	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bea361	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c23415	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d2da24	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0dffa4e	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e87ae2	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0fae503	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd102df31	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12272c4	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xd124a499	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15dc56e	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd164d041	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xd18cafbd	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd18fa89b	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a9d420	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cddd39	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d50b33	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f653fc	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd208b156	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd209173e	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20fe3e9	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2157c01	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd223c998	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2366946	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24a687d	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2680450	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26cf6c9	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27241d3	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273fea9	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xd283547c	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd285c523	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd287922e	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd289d30b	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd297a0d9	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2aee883	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b53778	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bf365a	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ca2353	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2cddd92	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d67d93	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2dceccc	eeh_add_sysfs_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f11797	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f3b33c	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd310af6d	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd314930e	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xd314f5d0	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3244177	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3388894	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34b9bd7	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3523677	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd353a225	vas_rx_win_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3585371	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36cef8b	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3937bb7	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a5e9f8	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b22dbd	vas_init_rx_win_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b976c0	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c2ee03	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3dd0499	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3de0be5	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f187cc	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f67352	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40c74ec	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4222ef4	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44b48f5	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44cf08c	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4602ad0	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd460f2fd	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd477ab5a	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47d00cf	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd486b177	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48d009b	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4993b04	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4aaf862	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bbf14d	pcibios_free_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c475c5	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c8ed8e	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ce9bed	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d02dbe	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d1f549	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d2bcef	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e09bed	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e5f40c	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xd526c037	cxl_update_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53bd5d2	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53e128f	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5400291	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5403ea6	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd544f83b	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55468ef	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd555e9c4	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55d5aea	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd562f350	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57b4c70	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd59378f1	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5aca58b	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5afa49b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b0eb7b	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ce9ce1	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e516c7	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60385ce	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60d7aa4	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd628f360	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62a29fa	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62b92a4	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6333a4e	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd66b0635	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd680c078	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd68410f5	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a43677	opal_async_release_token
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a9e75f	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6aee028	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b3829e	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6bf625a	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c5d716	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e23be4	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e4a84a	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e6f469	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e7a80e	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f6b687	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6fbe746	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7297f68	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd737eb98	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd742526a	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd750a844	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd757e795	eeh_add_device_tree_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75a388a	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77e732e	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77f9dbc	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7835b26	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7869739	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7aefd17	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7caa019	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cfdba4	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7df3686	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ecc5d1	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ef6699	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f2471d	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8012310	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80cdfda	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd822143b	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xd82a820b	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd82f0bd7	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83e351c	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd841cabe	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd848afec	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd858c40d	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd876fb24	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd877262e	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fcfa5	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88417cc	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd889ea67	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8948a34	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8978f36	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a1b8ff	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd907933a	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90dc87a	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9283d03	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9376093	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98153fa	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd988eb35	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd989719a	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a26982	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9aab353	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c12d2b	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9dbc490	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9dbd6b4	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9eadd37	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9fba2ea	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0d599e	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1424e9	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xda32621f	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3c331a	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xda447f96	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xda49f4fa	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4d33ff	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xda58d1c5	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0xda670a11	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6ef55d	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7baf5e	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda82aa84	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xda839b69	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8745e1	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8b003c	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9508ab	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa132f6	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa51d1c	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa85b39	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaaa4ebc	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac137a8	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaeed404	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafd0397	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0087d2	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0281b0	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0a2002	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb229670	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb31df47	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3794ce	emulate_vsx_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3f25b5	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb42724e	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb970c56	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb9c25ea	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba84f74	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc5ecb9	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbca599a	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd2e450	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd37dd8	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd830e2	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0a000d	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0b2b5b	opal_flash_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1cc2fd	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1e7ca2	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1eb454	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2fa4ea	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc33d3df	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc34a927	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc538935	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5482f9	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc56e52b	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5c38d7	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc73d36b	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8a4889	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8e6953	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8fc29d	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc958617	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccf02aa	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcdf74dd	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce998b1	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf9f754	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd04c934	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd473413	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5b7670	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5d4851	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd6d58bb	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd735170	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd73e7d4	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7aef58	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd851ffc	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd897e64	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xddb60046	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcdcc6f	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd6c396	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd838c1	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde789b2	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xddea0818	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xde064d5f	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xde69da55	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6da754	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde75ed73	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xde7c4ea9	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xde7f6257	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xde99abba	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebe48e4	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeee50cc	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0a988a	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf14e72d	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1e9cfa	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2d424c	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf49aa29	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf52b458	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf659e4c	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf70ed18	eeh_pe_set_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf983f86	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9c8860	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa52158	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff475df	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff568cb	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffc83f5	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0030519	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe022c085	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0370917	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe03b3e38	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0542d99	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe059b67a	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05ac883	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06c161b	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06da2ae	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07c74d4	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08263e5	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09a0d4f	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b443f9	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0bb34d4	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0bdec68	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c371b5	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0dd9464	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe108d302	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cc68a	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1292a86	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12cc06c	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12fec62	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe130c850	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe152679f	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xe157ed8f	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xe161b07b	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe174e9a4	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17c6a92	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0xe192f36b	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19c8ac5	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b5d1fb	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1baa85c	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bc84fb	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c08ec9	vas_init_tx_win_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c28518	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ef6962	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2251cb5	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2529582	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe256401f	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe25a0dc3	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2666fe9	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe269cd53	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26cef52	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe283daf3	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a75068	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c505a5	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d6ec05	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e0f831	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3217508	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3317165	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35eb318	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0xe36942a3	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe37647eb	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3778213	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38c29bc	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3927e41	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39a9bde	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3abced8	pci_add_device_node_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d5329b	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3dd6d7d	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e077ed	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e9a46f	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f344ae	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4009aaf	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40b7b60	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe428d700	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe42e2567	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43ad2b8	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45bbe0e	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4698e10	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46b6a8a	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46f032a	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47fa566	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48364db	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe487d917	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe494177e	__xive_vm_h_eoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4cac684	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4caf7b6	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4cfbd52	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d1e881	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d941dc	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d9a9a3	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fc9662	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe500b9ca	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5015d5f	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50bb2a4	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52364b4	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5289227	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52d1d6a	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe536e63c	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6293	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c7771	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55a3ba9	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55f85db	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55f873c	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xe560fd5c	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5710af2	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5787c92	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58dad2a	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5914b2c	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59c395d	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a0bde3	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a18504	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5af3132	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c04dce	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb9d0b	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5dfc958	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5dfe6e4	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ec503b	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fb3f84	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fc9cc9	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe601a414	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6050443	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60f33d1	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe63253a2	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xe63d71bb	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65344bb	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6658b50	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe66ea810	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe66ec198	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6820159	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6831516	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68e59eb	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a13e7d	xive_native_configure_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a3b76c	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d54843	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d9ab31	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6dcbf94	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6faa0c7	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xe70324f3	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe717fbc1	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71fe38a	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe73053bd	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe737a3cf	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75e78a9	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77fa7c1	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78e599a	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe798fe43	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79c57a0	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ac042c	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cc1af3	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cdbd06	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d34db2	opal_async_wait_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d8d29c	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f06210	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f18b3c	threads_per_subcore
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f83149	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f8ae9d	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fe9bf5	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81c682b	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe823f724	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82ec832	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8513cd9	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86126ce	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86af017	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86ba057	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xe880588a	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe880baf7	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88252e4	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8955277	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b12903	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8cd0c2b	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe909eee3	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9108901	eeh_pe_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe922389e	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xe929a9fd	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93f0342	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94b37be	sysfs_remove_device_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9506579	iommu_tce_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xe952bf9b	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe957bf9f	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97eb9ed	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0xe98fa3f1	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe995f816	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b7baa0	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9da749e	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e7d005	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fd8d5a	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xea01205d	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xea017114	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2708c6	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3b64b2	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3bcb44	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4d8977	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xea55d069	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xea78f64a	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7c300c	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xea86ba98	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xea921e37	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa93eb8	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab5e8a5	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab81d66	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xead486fd	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xead8ecfe	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadf72e1	tm_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf9e3ee	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaff93a4	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0bc5d2	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0dba06	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1a4f29	opal_error_code
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb2e841c	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb30b67e	reserve_pmc_hardware
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3dd435	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9b5559	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba457e4	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba86efc	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf15356	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf68cea	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xec079721	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xec079dbd	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xec17cc64	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1c6659	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec253505	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xec356c53	msr_check_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3c1075	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xec46667f	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xec52207f	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xec58f6ed	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xec616164	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec63cd13	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xec63d699	__tracepoint_vfio_pci_nvgpu_mmap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xec6703d3	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xec70b09e	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xec754f9d	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec84bfb9	opal_leds_get_ind
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca12563	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca52c01	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecabde09	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb7080a	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeccc7df4	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xecfc3cd7	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed19ad6a	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1f46be	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3c2d48	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xed643cca	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6b83e1	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6c0e61	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8cc7fa	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9824b1	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda0eca2	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xedae0709	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xedba06d3	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xedbc0788	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xedfc0dcd	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xee096d31	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee433efd	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xee4b11da	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xee52e724	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6f4c7f	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xee70a92c	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea0a15a	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea4dcde	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb2eee2	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec54d8f	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec56346	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed7b6e6	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee3e2dd	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeeaf0f7	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeef0f86	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef29e98	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xef144913	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1acc08	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xef224867	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xef333d37	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef425477	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef4ddad4	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5cde5a	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef602586	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6d0376	opal_invalid_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7c662e	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xef987438	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa4a6bb	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc0c35b	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc8d183	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd95409	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xefde59bc	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe8931b	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xefee6835	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00212a6	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01c2800	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0219cfe	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf024bd74	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf059f16b	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf086dacc	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf09dc47f	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f658d7	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1066b34	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10afe66	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf11f53d6	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12652fc	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf146b309	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14e35cb	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf155cd59	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18358eb	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1892ceb	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf189376c	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf192eca1	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19b1b0d	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a62b6f	of_i8042_kbd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1bc03bc	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1bd7803	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ccc7c5	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f40e15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xf211a528	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24dc022	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xf251b146	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf263dcb2	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf263f941	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf278885a	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a93593	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2bff243	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2ef857b	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f0b73a	xive_native_get_vp_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fd7af7	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf319c605	vas_copy_crb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32fb1af	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf333d390	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34cc8e6	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37d50f9	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3809d70	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39efd94	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ae9f4a	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b53fcf	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3bccafd	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c698cc	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ceebfa	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3db2acc	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ece92c	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ef6ab7	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3f3fb84	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3f58d17	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4079fe7	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42b337a	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf433f896	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4383c64	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43f26cb	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4519f56	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45893c0	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4745e74	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47bcc90	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf482afa0	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a76dab	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ad2308	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b88f6f	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c88667	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e3dd2a	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f9fad3	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf509112e	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53c1a81	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54258d6	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55380a4	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55cf114	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57efa8b	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5846465	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf587316f	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5adfafa	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5bc9dbc	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c5132e	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cd3243	pnv_ocxl_spa_remove_pe_from_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cdb9bd	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5ceb9b1	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cf0cb7	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d31790	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5df04c7	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e48a8c	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f81793	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fad891	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60b9141	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6105e93	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf610d326	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62708d6	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62da312	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62e0954	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63cec9e	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6468a0a	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6480552	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64f001b	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf652f2e0	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66a6ee5	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xf67f1f79	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf68bf61c	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf68dc582	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6902603	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69803cf	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bc5dd5	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c74e8d	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6cb4664	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72dd762	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72e19bc	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72f47a1	evict_inodes
+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 0xf752704b	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77678d2	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78a5168	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78c496f	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a07d89	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ab1e06	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c9f926	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cd0d9a	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e79b8c	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f498d9	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fa6014	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ffe55f	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8460874	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf853ae78	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8578833	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf865246d	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf86dfa5f	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf87ded21	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88d4802	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89c3d9c	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a2e05a	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a99fb1	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c065cd	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c99364	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d468f3	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9252df2	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92c96e0	pnv_ocxl_set_tl_conf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93ed7cd	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf945d4ac	eeh_pe_state_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95b505e	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9634b64	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf967c131	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97471ef	opal_i2c_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97dfb1f	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf985a944	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a430e7	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b88337	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9bf4d8c	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d3b861	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e4058c	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f37370	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fadf66	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fb895a	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa005b39	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa04e51e	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0811e9	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa34d4ab	kvmppc_clear_ref_hpte
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666640	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa8ad0cb	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9aa8d7	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa9a119	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaaa022d	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfabb6aff	opal_flash_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xfabb74d0	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac8dc48	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad090c5	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad0b140	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf0c059	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf751d3	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf9c283	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb64df53	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb738290	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb739c8f	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7dd592	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7f8928	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb808a90	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb86f45d	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb88a4e5	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba32f4f	srp_rport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba9d05a	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbdbd83	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdc6efd	mpic_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe4d24d	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe96d42	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf828f1	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf95987	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc125ec8	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc234177	_kvmppc_save_tm_pr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc683b45	has_big_cores
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc759b10	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc942eb9	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9d28b2	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca8b051	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaf49b0	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb4f64b	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc3a9c9	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc93f0c	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccc7290	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd86542	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfce49911	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcecf0df	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0988d5	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd15eb3b	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd2622c6	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd2dea95	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd308b7c	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd324b18	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd3e9120	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd57b45d	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda0c732	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbaa1f8	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdcbee26	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde595ed	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdecc453	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf34530	kvm_alloc_hpt_cma
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf7c2ca	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf8982d	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf94859	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe031e87	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe081290	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2c3286	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe51df94	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe86f789	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe877be2	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe877fd5	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe947d8e	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe9981ee	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe9e7ae7	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeaa1558	opal_async_wait_response_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeba13fa	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecb01a4	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfece3393	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed1c3f3	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef323ba	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef51d8c	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff0af7ce	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xff179e22	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2e7edb	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2f7c3c	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xff54619b	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6c02a5	of_scan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xff822bd0	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xff925da6	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd5b9a4	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe777b3	debugfs_create_ulong
+USB_STORAGE EXPORT_SYMBOL_GPL 0x153608a7	usb_stor_transparent_scsi_command	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 0x233d3cf6	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2b0ce847	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x31005673	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3124021c	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3918bfb1	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x44675714	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4a51caa6	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4f16dea0	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x52a53e39	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x558e9b99	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x601d0d83	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6b5a6313	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x71d67975	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7f056aa7	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9c4ea7ba	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9c6a6dbd	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9f49e277	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa9edf72b	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd1ade9bf	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xec332545	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xecdac2a1	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xef95dd03	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf1e7aa02	fill_inquiry_response	drivers/usb/storage/usb-storage
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/ppc64el/generic.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/ppc64el/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/ppc64el/generic.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/ppc64el/generic.modules
@@ -0,0 +1,5192 @@
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_dw
+8250_exar
+8250_men_mcb
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+ahci
+ahci_ceva
+ahci_platform
+ahci_qoriq
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+amc6821
+amd
+amd5536udc_pci
+amd8111e
+amdgpu
+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
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+aoe
+apbps2
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bsr
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+cachefiles
+cadence_wdt
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chipreg
+chnl_net
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmm
+cmtp
+cnic
+cobra
+coda
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+comm
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpc925_edac
+cpcap-adc
+cpcap-battery
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cqhci
+cramfs
+crc-itu-t
+crc-vpmsum_test
+crc32_generic
+crc32c-vpmsum
+crc4
+crc64
+crc7
+crc8
+crct10dif-vpmsum
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cxl
+cxlflash
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+de4x5
+decnet
+defxx
+denali
+denali_pci
+des_generic
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard06
+dmard09
+dmard10
+dmfe
+dmm32at
+dmx3191d
+dn_rtmsg
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+dps310
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_panel_orientation_quirks
+drm_vram_helper
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwmac-dwc-qos-eth
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-platform
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+eni
+enic
+envelope-detector
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+ezusb
+f2fs
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fl512
+flexcan
+floppy
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-edma
+fsl-edma-common
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftm-quaddec
+ftsteutates
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+gigaset
+gl518sm
+gl520sm
+gl620a
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-arizona
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpu-sched
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfs
+hfsplus
+hi311x
+hi6210-i2s
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hopper
+horus3a
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hvcs
+hvcserver
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-cbus-gpio
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-mpc
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-nforce2
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+ibmpowernv
+ibmveth
+ibmvfc
+ibmvmc
+ibmvnic
+ibmvscsi
+ibmvscsis
+icc-core
+ice
+ice40-spi
+icom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+imx6ul_tsc
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_powernv
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it913x
+itd1000
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-hv
+kvm-pr
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-powernv
+leds-pwm
+leds-regulator
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+machxo2-spi
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+md5-ppc
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdio-octeon
+mdio-thunder
+me4000
+me_daq
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlxfw
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_labpc
+ni_labpc_common
+ni_labpc_isadma
+ni_labpc_pci
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+nps_enet
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nx-compress
+nx-compress-powernv
+nx-compress-pseries
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+ocxl
+of-fpga-region
+of_mmc_spi
+of_pmem
+of_xilinx_wdt
+ofb
+ofpart
+ohci-platform
+omap4-keypad
+omfs
+omninet
+on20
+on26
+onenand
+opal-prd
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+papr_scm
+parade-ps8622
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pblk
+pc300too
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-exynos-usb2
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-mapphone-mdm6600
+phy-ocelot-serdes
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-axp209
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-rk805
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+pnv-php
+poly1305_generic
+port100
+powermate
+powernv-op-panel
+powernv-rng
+powernv_flash
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+pseries-rng
+pseries_energy
+psmouse
+psnap
+psxpad-spi
+pt
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-fan
+pwm-fsl-ftm
+pwm-ir-tx
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa27x_udc
+pxe1610
+pxrc
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qoriq_thermal
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar_dw_hdmi
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk805-pwrkey
+rk808
+rk808-regulator
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpadlpar_io
+rpaphp
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtas_flash
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-as3722
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cmos
+rtc-cpcap
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtc_cmos_setup
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sc92031
+sca3000
+scanlog
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci
+sdhci-cadence
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-esdhc
+sdhci-of-hlwd
+sdhci-omap
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-powerpc
+sha3_generic
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc_diag
+smipcie
+smm665
+smsc
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-aloop
+snd-als4000
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-ens1370
+snd-ens1371
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcm
+snd-pcm-dmaengine
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cpcap
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-lochnagar-sc
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-of
+snd-sof-pci
+snd-timer
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+snic
+snps_udc_core
+snps_udc_plat
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundcore
+soundwire-bus
+sp2
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_gt
+synclinkmp
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-sn65dsi86
+ti-tfp410
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_ccg
+uda1342
+udc-core
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_fsl_elbc_gpcm
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+ves1820
+ves1x93
+veth
+vf610_adc
+vf610_dac
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmx-crypto
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdrtas
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+windfarm_core
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_gmii2rgmii
+xilinx_ps2
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xillybus_pcie
+xlnx_vcu
+xor
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yurex
+z3fold
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/ppc64el/generic.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/ppc64el/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/s390x/generic
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/s390x/generic
@@ -0,0 +1,12679 @@
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+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 0x06c0ef0b	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x0dc02a2c	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x6a25fd37	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa9e957c9	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xb32c743a	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfbdfde07	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x9ff4a245	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xd8ee6ffa	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0xf9f090a5	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sm3_generic 0x32eb0b93	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x4fa855c8	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+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/gpu/drm/drm 0x0079a354	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x00af8eb9	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03156232	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04b9107a	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04fdef48	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x056ccfae	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05d0ae4e	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0712e21d	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x075b0222	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0780ad89	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f88521	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08038acc	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x098134f6	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09c3df32	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a1248e9	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a551f36	drm_atomic_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0cccd59a	drm_atomic_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d3875dc	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d43b0e3	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d6e6d75	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f759d15	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fe7360f	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10a12958	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1169ad68	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x122b36c4	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1232856e	drm_bridge_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1379a3c1	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13d6333c	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14e9616a	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14fd34e2	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15dd17fe	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x169c0632	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c9a7d2	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x173ddc71	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1799dbb5	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1818a17d	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1960bb2a	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a081c65	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a8ddb52	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c069878	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c1eace7	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c58be45	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c9d9f5a	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1cbd45bc	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1da55232	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e4c6b33	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fb1e63f	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2021a817	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x217c1b6f	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2199b76d	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2226146e	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2436d9d8	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x258391e2	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25913c76	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x26e2b12c	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271fcebb	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27672c17	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x280f5bf3	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28e8805f	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a0bb9aa	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a7b4709	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a8e511e	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2aa70173	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ab96200	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b6067e9	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d235ef6	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d9685d9	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30d252e9	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31257fd6	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b90f68	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x324207fb	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x324e652c	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x324f757f	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x325f8cb0	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33a1c2e4	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x348b8b39	drm_bridge_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x369f9dc7	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37070582	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x376a82cd	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3779fedd	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3890a421	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3961d4c2	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x397f3ea7	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3bcc0734	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c5ab6b2	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3cbdd8ce	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3dbd7b4b	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f2a2016	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f767383	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x400ca53e	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4045926d	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41851b72	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42896318	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42d6f885	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x432145f5	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4456becb	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44c80683	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45b09174	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46d8b32c	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47306a90	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47f985aa	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48aae0e6	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48ac5e5d	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49f33d58	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a968fb8	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4aa4f6e1	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b21e351	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c9552eb	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d6e1f76	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4decd5a5	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e6e2127	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4eec52a5	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ef10fad	drm_bridge_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f33789c	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fd176cb	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x510c44bd	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x510c8d28	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51777e9e	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54384a04	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54a2ca38	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x562a8d61	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x574428c5	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58519671	drm_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5874f4fe	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59ebc8a6	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ac6a8ad	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ae0dd12	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b04222a	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b26b821	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ba3f814	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c43c2e7	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c5428fd	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d3a6fa2	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f076467	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f1fcb6f	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ff84102	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62060087	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62426e85	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x629cac4d	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x633a8756	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64a9a75d	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64bc92d9	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x654aad24	drm_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65800a10	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65f4ae75	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66551bc7	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6685b95c	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66bcfadf	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x67117bc5	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x685f4c7e	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x687baf23	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a85fa3e	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ad47b67	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6bdf349b	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c862121	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ce2e651	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dc104d0	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0b71b3	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72503474	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73642412	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x741c3657	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74e54f42	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7702d295	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77789080	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77d3d1cf	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78e88ca3	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79055c43	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79f21cf3	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c18297a	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c1f0d5b	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e0ff8ab	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7eee0a81	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fd4bcd5	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x810dac44	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x819333d5	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82142e15	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82724e23	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x831cfe8b	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8379ef62	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83cd16d1	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x840e8443	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84dd3b5a	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84ea524f	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x854a7449	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x86de6c4a	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x870f5ca3	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87815d19	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x878c3ef9	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x892f5702	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89c9a0e2	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a521a99	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b363503	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c1073c7	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cc485c8	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cdf272e	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8dc343d4	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8df018e0	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e322d7e	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fdff528	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x903ea174	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90753c53	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90af4593	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x916513f7	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91754f5e	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9213f5c3	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9273cb6b	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x930e7c33	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x935cf4f9	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x940b354f	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94c0124d	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x956d506d	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9578e72c	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96e54bf7	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97e4393d	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a0ab703	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a2033fa	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b09fb74	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d58ff42	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d7f7ae9	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d802147	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ddcc89c	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ea8fa60	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9eeb1129	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9efe9650	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa017203f	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa04b3fa6	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa04c665f	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa07f2ad4	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa1685f68	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2cce7cd	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3798c33	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3bf65ba	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3e33916	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7c1ed9f	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa850c626	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa86d4189	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa89ddcdd	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ad5d01	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8c08831	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa91d697f	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa923b2f0	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9fb83c6	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa212f4e	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab15a371	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab26a3af	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabb36b73	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac29269d	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xadf485c2	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae6dfba7	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaeded2ad	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf01e66d	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf51db2c	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf593e24	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafe51fea	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafee2e35	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0c0ebf4	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0f616ea	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb166e98d	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1f5d174	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1fb9f50	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb29c7e94	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3351e92	drm_atomic_bridge_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb380ff98	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3a3995d	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb59a9a70	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5bff569	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5c06afa	drm_bridge_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb644a7e5	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8e626ab	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb92518f4	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb92609a7	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba4dfc21	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbbc1c4ec	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbbe68492	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0063123	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0acea0b	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1c3def4	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25b5426	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2b5daba	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc324efb9	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc34855e0	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3c78c92	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc71dfa2d	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7209e20	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc76c9b86	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc782bd23	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9add680	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca76a586	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xccf056cf	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce281d23	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce51d7f5	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf942fa6	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1eab87d	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd2076ba1	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4d47f36	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4f4d5cd	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5f38616	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6d57442	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd92904af	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9fa1dc6	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda5b2eaf	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda61ed7b	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdadcc8da	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbffed9f	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc323f18	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdcfb4cb7	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd4b8545	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde0e2891	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xded5af5a	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf103f7a	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe15c9d81	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1ad7683	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe272edde	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2eb8dce	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe336dad3	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe40df787	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe6d56fbf	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7d12e37	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8dbb722	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9727b0e	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe98109f3	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea7551b1	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeacf9ccf	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec032922	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec982e16	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xecf1c621	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed340af2	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee34e9fd	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee6f5d01	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xefb42673	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0481c9b	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf120990e	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1702926	drm_bridge_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2a1d4a0	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf30947d2	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf39e3d20	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3c72cec	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf485d827	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4b8845d	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4efcbb0	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5555c18	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf59726ab	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf627fbe8	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7433cdc	drm_atomic_bridge_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf92d7889	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf92de084	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb0a9abc	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb4f0470	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd0de52d	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe40ec33	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff5d901b	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff6b18bf	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffc7b882	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffd32502	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfffe01e5	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x021d2ae1	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0360b7c1	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x042ffbda	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0660317c	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c49551	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x08fdeefb	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0bc15c10	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f1d5d81	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f555a06	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x117f39b6	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1257627a	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x131df067	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x191922e7	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1a11444e	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1caafa71	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d62769e	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1da5f671	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ea23e43	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20a9f7df	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20f096c5	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21ec78cc	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x224da425	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2444d163	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x24ad119d	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26eed253	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27ccb29c	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27cfbdbb	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28a1979a	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28dbefbf	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b766c5f	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c9d273e	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2df5c797	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2e379c75	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x30b735fe	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3357114b	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x33eafd36	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34c64fcc	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34e491db	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x365f7cbf	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36b05bab	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x37865a3a	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x39135bcc	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3930a9f4	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x394af4b2	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3991a75c	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a8063f3	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3bb3e780	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3bf0205b	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3c169ce7	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e3b0922	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x405882cd	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4296dde7	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4339ee75	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44fc7eca	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x46456e84	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x484657b0	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49c232f7	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c228722	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4cc526d8	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4f379a00	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5015ccbe	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51ee8983	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54d5093a	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56f756bc	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57f1baf6	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c67793c	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c824862	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5d0b9da3	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e799527	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5f03716f	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5f317016	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63328b8e	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6353bde4	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6615069e	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x666366bd	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x673ecf20	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x69cf38bf	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a29c0e6	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ac633ec	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6bd4b114	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6dd0cc93	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f641449	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f97fee0	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6feb5dc4	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x719d14ca	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x728fef9a	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x744b6b35	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x758662f4	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75eca5d5	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x764d6b36	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77c6f738	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7875c21b	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x79ddc48b	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a6bbc4a	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a976dae	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7af87b1f	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7fb493c3	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8009e766	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x801ec5b1	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x80e6f08b	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81cca4dc	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x835e6901	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8390a70b	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8452286f	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87b8f414	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89af4e2f	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8baa2bfc	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d481a69	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d4eb57c	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8e1c4b0b	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f1b48f4	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93153aa1	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9507a955	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x97953ba7	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x985e53f0	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9cbad94e	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d26e091	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d2a2d08	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d7e34d4	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e01832a	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ed89d1c	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f451d4a	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9fc34b0d	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa09f6326	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa0b61fc5	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa18e5784	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa23b9319	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa27ecd29	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2ef2cb7	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2f5c65b	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5ba90b1	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa62f38a4	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6f6aefa	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa83085d8	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac5a023d	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0de2fe6	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb26c25e5	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5ddd761	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb794f04e	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb901cb99	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9cf37be	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd38a3f8	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbdf75470	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbe187608	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbe877f24	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf00daa4	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf1675b2	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf74a2a4	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c75492	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc630a40a	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc75e4edf	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc91dca8e	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcacd0eb6	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcba9daab	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcc0b40b5	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcf17e2c7	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd25b5ddc	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd285a64a	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd37acf44	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6744f07	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6ddc2dc	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd84cf1de	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd93cd346	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda9ec6b1	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb9eda8d	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdc3d9973	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde285e93	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe047037c	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2c84f3e	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2ca024c	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe8e16d18	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe8f2a1df	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xec213eee	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xec38a979	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeca9a248	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xef2aae3e	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xefc3512f	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2f93e39	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2fef52b	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf34c705e	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf368f477	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3cfad43	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf709ea1c	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7477c3e	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7eecbd9	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb89cf31	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc31ae7b	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc570911	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc6a0cf9	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd2bafa4	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd6a7682	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd9c411c	drm_fb_helper_modinit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfdb48453	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe8f6e88	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffa5c9ec	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_panel_orientation_quirks 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x014ff0eb	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x27a0091e	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4ec5f50e	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x536f4989	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x539cae21	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x542ef1f2	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5a682675	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x6e86b602	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x767ca82f	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x837ec6ac	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x84eea25d	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8dccfb97	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9be588ab	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xac4518d9	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xaca3c81a	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb1b93209	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc6559005	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd086f289	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd795fe6f	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdc41d236	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0011d0c8	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0347cfbd	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x048b2649	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x06c3e16d	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c1eff32	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0e2e8514	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1e77b545	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1fabae77	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x264d6556	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x26892b02	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2807d543	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x298e1cf5	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2b4c5b7a	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e393935	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2ed2f804	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x332844c4	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3e0bccc1	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4048fa71	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4480101c	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x570d1c30	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x588b3b27	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6899382a	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6e34a317	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x713ef4cb	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x73f83f46	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x787e7b21	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7a20a4de	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7dd68a45	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x82ddd2c1	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x867c2020	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87c401cb	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8c0cd64a	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x902e9bcc	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x947733a5	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96ab338b	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96de4d08	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x97d950de	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x996e9f76	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9a619c2c	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9fe2e031	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa2d38a55	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa2e592fc	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaa5e1102	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaa8d2258	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac0e50d1	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xafd9531b	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb0b12c94	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb55b80fb	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb686326f	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc0c9af1f	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc915c572	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc992e5f8	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd0659df7	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdbf020ed	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe3efd8e2	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe6b99211	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeecc436c	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeef3bbaf	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf397be84	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf3fb83a0	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf6016074	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfd659d7a	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfdbb7bce	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xff1057f6	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x0f58596b	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xb6122765	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xbf4ace6c	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x019f7246	i2c_get_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x0957e326	i2c_smbus_xfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x1aa6e737	__i2c_smbus_xfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x1c84fb2e	i2c_release_client
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x35b37cb3	i2c_clients_command
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x38d96778	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x467a97ea	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x55ad1dc2	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x90464735	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x990b8051	i2c_del_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xadf680a6	i2c_verify_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xae5e32f5	i2c_transfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xbae4e750	i2c_add_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xc577175f	i2c_use_client
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xc935c127	i2c_smbus_write_byte
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xccf75c87	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xd47fdb38	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xd74b159b	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xdb88540f	i2c_smbus_read_byte
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xe1fe4e5f	i2c_verify_client
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xe5c93648	i2c_register_driver
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xe97380a1	i2c_put_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xed1c27f2	i2c_del_driver
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xed219f20	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xf563514e	__i2c_transfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xfa472e83	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xfaf6c871	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x04b8fad7	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1e1a786d	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2381ea10	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x50b80b5a	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5dd28988	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5e67074a	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x77cca5e3	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x7c3dcf38	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8463d0b3	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa40800fc	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa4c5504b	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xada25f85	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb500724b	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd4c4bf07	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd7049a40	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdf1b95b6	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdf5472c9	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf122d5cf	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00c5bf09	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x01971045	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03b7b888	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03d6bd02	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x04029ef1	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x046d51e1	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0642be38	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06830b9a	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07c78a9a	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08acba5c	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x093abbac	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b941b11	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0cc5ce7b	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d545ff3	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0fd3f712	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ffc350a	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x104a27f2	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1076f684	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1221faf2	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1253ea87	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x14dac89e	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15f33c0e	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x16761a3f	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x175bf689	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x17f76b8a	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18e98aec	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a63991a	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b94cdb9	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x218d6521	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x23b2e929	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x25dcbaca	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26a7eecc	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x284fc413	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b110919	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2be18baf	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2cb6eaec	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2d1a2e81	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f8cf75b	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3310ee0e	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x344e36b0	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b53a243	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c0b6ebd	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3cf0d139	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d542a95	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3db3e620	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e1bfd3b	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e9e276a	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43ddab9d	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x440640b1	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45686df7	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45b9a91e	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45e2b5ee	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4641241f	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x464ecb15	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4676fd9a	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x471f73f6	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47b6751f	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x495aa0e6	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4a82c0d6	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4dba039a	ib_process_mad_wc
+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 0x503aa7d2	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5290c810	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x530edb54	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54716001	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54fe00d7	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58fb5211	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x591317a7	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5af44462	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b48ac2c	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b924df3	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5bf265f4	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5d3ed434	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e682406	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efe9367	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60aa0ad3	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62a086b3	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x635fe34a	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64319714	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x657e2395	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6586b685	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65f6713b	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6630c890	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x672d4da7	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f683646	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6faf3245	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70fbb9b6	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71d36ae6	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x721c72b6	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x73c8617d	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x780def94	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x78b849e3	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x794c9bb5	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a78dabe	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b0f1be4	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ce0e32a	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7d552b3d	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7d7a4527	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8013f675	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x83bbcac6	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x872c3fc6	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x875be8e1	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8799a648	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x894854be	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c8d4e3f	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f13b7ea	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f9b818e	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x92bda2bb	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93942ec1	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94534a0a	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94d23f1b	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x96ba5822	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x976e4ef0	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x981c8dd3	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x98d12539	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9bd3fb86	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e20ba08	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e8c752b	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f84d6a4	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa0845ecb	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa0a4de1d	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa160eaf9	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2f124c4	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6b5b149	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7075950	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa620b07	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaab467cc	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaeb77d30	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf3384b5	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf4d2de3	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb000d631	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb0d5562a	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb14121b0	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb195fb02	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2ba9909	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3ca0585	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb547cd9e	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb781b7fd	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb959890a	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba291ea7	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe0e811b	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc0900f1f	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc1150701	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2516b04	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2b7240e	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2f1654a	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc357dabc	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc41226de	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc82da41f	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc9240566	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc999b870	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xca6ef272	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb1b09a9	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb208ddb	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xccde4061	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf0e828c	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd1d15dd4	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd240d505	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd3dde84b	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd529f0c9	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7028050	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7b93780	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7e98e61	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd8b12851	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdb594f95	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdcbf13af	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde6cbacc	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe164c47b	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1fc57d7	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4e7401c	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe6e98725	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7c6608e	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8f78afc	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9ceb556	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xea5ca14d	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb8435c9	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef29e2f1	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf25ffb16	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4cb667f	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4fff026	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf572442a	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf897a499	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf920e4b3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf96fc9de	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb973205	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc042528	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc8875a2	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfcab47a4	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfea0ffcf	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff193f8c	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x063c0d78	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2b53f55f	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2d14574d	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x37019be8	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x42ce7367	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x43f5cc20	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x44c769d8	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x495b00ea	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4cce8a0e	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x66ed818a	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x865ff341	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x92436839	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x93a95e32	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x95d5b2b6	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9ed7e918	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa2052642	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa80447e2	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xaa431726	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb22ec8a8	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb3e79c7b	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb90ed369	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc2256a44	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe5c19ee0	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xebd1564e	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf28b894d	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf676ecbd	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x26af81c3	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x27784e50	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x595a019d	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x7180661d	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x874a2bfc	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xa6ce9054	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xa7b3d6a5	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe842975c	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x03742773	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0aba8f0e	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x14852da9	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1c1ef5c9	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1f7049ec	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x46a86f75	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4b6c51f8	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x51e74b25	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x56e69ce3	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x663c4563	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x67de2cb7	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x917c2a24	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x91ddc23a	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb2c0ae97	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb3bbf355	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb8fce56e	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc4994e25	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc4e321ce	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xcfa54bef	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd095b727	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd9bdac30	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe1428290	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe70db133	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xebddb9b8	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xedcf29e5	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xeef58de5	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf03da2d4	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfaeca4e4	rdma_read_gids
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x298f22f9	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x30cc56bf	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x32691456	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34f8e022	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x47eb1d6e	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5d27d8fa	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x605f12f5	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x771ebf74	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x79711460	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9c79f12f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb61edea2	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb9cef37c	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xced5fd02	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf5bdf528	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfb8b580e	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/dm-log 0x258b9ee5	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0x8636b434	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa60d6dfb	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xaf1681ec	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1f261d9b	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x30d8d448	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x692c7269	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x9d205df5	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xc22ceeee	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xe3a5a58d	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/raid456 0x2f968bd9	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xb83f04cb	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0x7268dd32	mfd_cell_enable
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xabfd301f	mfd_cell_disable
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xb6e96cc4	mfd_remove_devices
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xeafe4313	mfd_add_devices
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xf073b838	devm_mfd_add_devices
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xfdf33486	mfd_clone_cell
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00f3f9b1	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0553438b	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x073c7ff3	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x102a99f5	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10608bf4	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1476401b	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x171518a8	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ad1a74e	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2090af4a	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20a44e04	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22fa75ac	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f06ed72	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x370f5fc4	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d9c8350	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4161e961	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41ab9166	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b9d2d2a	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ef040bc	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x541c7185	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55a18522	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5674a410	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ac0261c	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60d87f47	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a5741bc	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e0d3c05	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e634841	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f2111f7	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x742a5160	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x760f1723	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b9dc512	mlx4_SET_PORT_SCHEDULER
+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 0x98f286c8	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5339631	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb80c6083	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba52f5d5	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd450866	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0e7b997	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0eb3c28	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe21fc80e	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe225780e	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe53ffb2b	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe73242e2	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xededce42	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7a38481	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdd35425	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0032ed29	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0049c51d	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00c23345	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x016242ad	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0627ba2d	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0bc2fc90	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0be828b2	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0edd88e8	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11036e8a	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x147fedb4	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17c1bbf5	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1fa40c2a	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x249cebf0	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2618af0a	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x274063f3	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2760f77f	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x285298dc	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a32fb99	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b7c21f1	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f5f4aee	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33eb4b4d	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3679481a	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x367d67ac	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36833162	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e6dd695	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ebbb027	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f48eca2	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4180fb1d	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x498066e6	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d134190	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d245973	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d2a01e3	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fd111a0	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x50d0f16c	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52db237e	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5490feb7	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56e6fb58	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5809f948	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ad7f38a	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ef9dc3f	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60df0c93	mlx5_cmd_cleanup
+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 0x61c3eb8b	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x624df193	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x628bb346	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x675f0a22	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67c9ec58	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68bab1b1	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6cb4db55	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ef9ee1a	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6fd4a504	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70122119	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7582d56e	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78e0f92f	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ab6ed16	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fa75000	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8142cbf4	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8661801c	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8849d47d	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x89d92efe	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9234807f	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x938b0064	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95d984a2	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x974e6370	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f045c06	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9fea5968	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa138a677	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa304d4e4	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa326b5fd	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4f4afa8	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaaf5e7b9	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf56c532	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf9939f9	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xafde5022	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb04a0561	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5c1f789	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5f3fbef	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbba9cd96	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc0506fb	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc88665d	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0687033	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6722adb	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcac54c1d	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb6bd80b	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc7a801f	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd16e9e0	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0cfb1e9	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd84619f0	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd1fce79	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde2fbd2e	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf6f17e8	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe29a360b	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe6d9b58e	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe6e39ef0	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7778970	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7ecab7d	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7f73a24	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe84e97c6	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebd211a8	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeccdf794	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee410fc7	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf0426976	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf24ba15d	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5459f35	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf68ddb4d	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7645c36	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfae1adea	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd11a6ec	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd19ea15	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd349f7d	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff36f36c	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xffb73292	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xa1c70500	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02c6216a	mlxsw_core_trap_register
+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 0x079f9072	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0cf1c48d	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0dd8caa3	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1451327f	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x16969953	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x252de019	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x319a778a	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3a86d254	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+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 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e2424ee	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x632314f1	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+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 0x83d13a5a	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8c748574	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8fe90573	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+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 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa0b91721	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+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 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb1ad46	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcd8eaf71	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+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 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe7f90ca5	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf89fe171	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x36e0f34c	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x468c7a9b	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x1fb59c73	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x00d64f3c	phy_advertise_supported
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0411398f	__phy_write_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0930e4e5	phy_attached_print
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x09f6e43a	phy_device_remove
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0c78a60b	phy_driver_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x10bb4271	phy_device_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x11324e91	genphy_config_eee_advert
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x13c706fc	genphy_aneg_done
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x18fd5077	genphy_soft_reset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1a5c3610	phy_device_free
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1b334b74	mdiobus_write_nested
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1f1aadf6	mdiobus_register_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2382ba7d	phy_detach
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x29e26c9a	phy_ethtool_get_eee
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2a79040b	genphy_restart_aneg
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2d0f2926	mdiobus_get_phy
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2d28d7fb	mdiobus_free
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2d7a185f	phy_support_sym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x30add41a	phy_attach_direct
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x377e79ef	phy_modify_paged
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3782b103	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x37a932ef	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x39625d63	phy_attached_info
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3a7e19b9	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3ba66cf1	phy_start
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3cb5b207	phy_queue_state_machine
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3d71b854	phy_init_hw
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3e27cb4d	mdio_device_remove
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3fa70294	phy_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x40dec6e4	phy_set_max_speed
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x449d60fd	mdiobus_alloc_size
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x472764d1	genphy_read_abilities
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x4848c1f1	genphy_read_status
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x49d32f8c	genphy_resume
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x4d6c0b33	phy_register_fixup_for_id
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x4e0e5297	genphy_update_link
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x518a3b45	genphy_setup_forced
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x55af743f	phy_free_interrupt
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x588e7fcf	phy_stop
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5a17e37b	phy_request_interrupt
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5b335adc	mdio_bus_type
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5b695a75	phy_ethtool_set_wol
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5bca2f99	mdio_device_reset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5dc82b51	phy_start_aneg
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5dd35083	phy_drivers_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6844152d	__mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x69cc7ba7	__phy_read_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6cd3b8cb	phy_remove_link_mode
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6e799d00	phy_driver_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6fdb0e20	phy_drivers_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x71d21d17	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x72613456	mdio_driver_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x751538d4	phy_write_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x7d596e4c	mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x82a0692f	mdiobus_unregister_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x82d8d6d6	mdiobus_scan
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x82e12b7c	mdiobus_read_nested
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x86d44135	phy_connect_direct
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x897ac0b2	phy_aneg_done
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x89f341b6	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x89fd3a6e	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x8ab9c768	phy_init_eee
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x8f0757a7	phy_attach
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x92764e31	phy_print_status
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x951f9b5b	phy_resume
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x9bd947f9	phy_mac_interrupt
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa0f99ae1	phy_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa2d3c71c	genphy_loopback
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa4d3e529	mdio_driver_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa70012a6	phy_set_asym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa8a2e38a	phy_get_eee_err
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xaa40f796	__mdiobus_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xadac8f89	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xadafae44	get_phy_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xae6a06b0	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xbc3c7977	__phy_resume
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc14379fd	phy_read_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc14d7931	phy_ethtool_get_wol
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc7eeb36c	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc925f1e5	mdio_device_create
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xcd41d3f8	genphy_read_lpa
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd1b9eb3a	mdiobus_is_registered_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd53da826	mdio_device_free
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd84f27e8	phy_write_paged
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd864278b	phy_modify_paged_changed
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xdbe1dfb7	phy_connect
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xdc876414	phy_ethtool_set_eee
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xde469eec	phy_validate_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe0da4933	mdiobus_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe3d673dd	phy_register_fixup
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe73a306a	phy_disconnect
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe8bf8df0	phy_support_asym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe95bc94e	mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe9ad3e47	__mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xec5a9d39	__genphy_config_aneg
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xec6d03f7	phy_device_create
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xeccebe05	phy_suspend
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xee481a1a	phy_loopback
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xf0285e71	phy_find_first
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xf4a535c6	genphy_suspend
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xfbcb0f32	phy_set_sym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xff8d38a0	mdio_device_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xffc9a792	phy_read_paged
+EXPORT_SYMBOL	 drivers/net/team/team 0x0aef286c	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x418c36a8	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x5cbec8ca	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x6425bfd3	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x8d764295	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xa5eee31d	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xad1ac91e	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xd49b1132	team_mode_register
+EXPORT_SYMBOL	 drivers/pps/pps_core 0x743be653	pps_lookup_dev
+EXPORT_SYMBOL	 drivers/pps/pps_core 0xbf1d9cf5	pps_unregister_source
+EXPORT_SYMBOL	 drivers/pps/pps_core 0xe2d2eca1	pps_register_source
+EXPORT_SYMBOL	 drivers/pps/pps_core 0xf1820537	pps_event
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x00ecee38	ptp_clock_index
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x17e2f229	ptp_clock_event
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x7e11f648	ptp_clock_unregister
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x98251265	ptp_schedule_worker
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x9de6196c	ptp_find_pin
+EXPORT_SYMBOL	 drivers/ptp/ptp 0xa8306b78	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 drivers/ptp/ptp 0xb37c6bb9	ptp_clock_register
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x0dfac34c	dasd_set_feature
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x1c0d2269	dasd_sleep_on_interruptible
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x21ec2fa3	dasd_enable_device
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x238d3107	dasd_free_erp_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x264d5cab	dasd_ffree_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x29a7abb0	dasd_schedule_requeue
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x35a9feb8	dasd_fmalloc_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x39297095	dasd_eer_write
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x3979c167	dasd_block_set_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x3d0e98d8	dasd_device_set_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x3fe5c4e9	dasd_kick_device
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x4309bc00	dasd_sleep_on
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x457b5747	dasd_default_erp_postaction
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x51b342f5	dasd_set_target_state
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x5b441955	dasd_schedule_block_bh
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x5e1264f0	dasd_sleep_on_immediatly
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x5f0fcbd2	dasd_int_handler
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x6169123d	dasd_device_clear_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x699b9b4e	dasd_sfree_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x86f626ef	dasd_default_erp_action
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xa03e45e2	dasd_term_IO
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xa7d33bce	dasd_alloc_erp_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xab440896	dasd_add_request_tail
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xaf7f9f07	dasd_smalloc_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xb4dcb5de	dasd_sleep_on_queue
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xb80a0411	dasd_start_IO
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xbde39f3a	dasd_add_request_head
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xc134caac	dasd_sleep_on_queue_interruptible
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xd840c54a	dasd_log_sense
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xdb30ca62	dasd_reload_device
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xdb68a28b	dasd_log_sense_dbf
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xe767ed9c	dasd_diag_discipline_pointer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xeba66699	dasd_block_clear_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xfa700842	dasd_schedule_device_bh
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xfc3367af	dasd_debug_area
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0x08e57a2c	hmcdrv_ftp_do
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0x3198b5cb	hmcdrv_ftp_startup
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0x83a6e87f	hmcdrv_ftp_probe
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0xba68949c	hmcdrv_ftp_shutdown
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x00a4bb58	tape_std_mtrew
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x173d8116	tape_std_mtbsr
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x1940cf71	tape_alloc_request
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x23345aac	tape_std_read_backward
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x2546c415	tape_state_verbose
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x319185a6	tape_generic_online
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x3de59ff3	tape_std_write_block
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x424d38b3	tape_std_mtnop
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x43c6f8fa	tape_std_mtload
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x52396a08	tape_std_unassign
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x53291637	tape_std_mtweof
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x57c18d64	tape_std_mtunload
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x585fb9f7	tape_std_mtoffl
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x5de769a0	tape_std_mterase
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x66deb66c	tape_op_verbose
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x6b00a629	tape_std_mtfsf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x6bd1fb09	tape_med_state_set
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x735d2c17	tape_std_read_block_id
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x7914f57a	tape_generic_probe
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x7d4fcd14	tape_std_mtsetblk
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x819f1ad3	tape_do_io_async
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x838332b6	tape_std_mtbsf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x85944ee9	tape_do_io
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x8ca82128	tape_generic_remove
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x97f3159c	tape_core_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x9bcdd3e3	tape_do_io_interruptible
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x9f455d22	tape_std_mtreten
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa0ad2f8b	tape_std_mtfsfm
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa3af0186	tape_put_device
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa5b84851	tape_generic_pm_suspend
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xada38078	tape_mtop
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xae0b463f	tape_generic_offline
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xb1a38841	tape_std_read_block
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xb282f71c	tape_std_mteom
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xbf16c215	tape_std_mtreset
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xc00780a5	tape_std_process_eov
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xc0f522ca	tape_std_mtbsfm
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xc44c6319	tape_std_assign
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xc49c7a8a	tape_cancel_io
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xca7fcc58	tape_dump_sense_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xce794a9a	tape_get_device
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xdc105e90	tape_std_mtcompression
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xe0335036	tape_state_set
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xe6196041	tape_std_display
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xeb3bb298	tape_free_request
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xffbe1589	tape_std_mtfsr
+EXPORT_SYMBOL	 drivers/s390/char/tape_34xx 0xa315113a	tape_34xx_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape_3590 0x6ec8e768	tape_3590_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape_class 0x9fe2ff50	unregister_tape_dev
+EXPORT_SYMBOL	 drivers/s390/char/tape_class 0xc2dfa5b2	register_tape_dev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x1abcfaf1	ccwgroup_remove_ccwdev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x2602f508	ccwgroup_probe_ccwdev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x5de56646	ccwgroup_set_offline
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x61fb23e2	ccwgroup_set_online
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x650b985e	ccwgroup_driver_register
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x8f95ff5e	ccwgroup_driver_unregister
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x9fb1d67e	ccwgroup_create_dev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0xb71efb19	dev_is_ccwgroup
+EXPORT_SYMBOL	 drivers/s390/cio/qdio 0x68654fca	qdio_get_next_buffers
+EXPORT_SYMBOL	 drivers/s390/cio/qdio 0xb3536970	qdio_start_irq
+EXPORT_SYMBOL	 drivers/s390/cio/qdio 0xc2960634	qdio_stop_irq
+EXPORT_SYMBOL	 drivers/s390/crypto/pkey 0xa2396123	pkey_keyblob2pkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x0ce854f0	cca_check_secaeskeytoken
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x102910d7	zcrypt_card_unregister
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x170d6b33	cca_sec2protkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2498c81c	zcrypt_queue_unregister
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2674844a	zcrypt_queue_put
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x274ee02a	ep11_findcard2
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2a1d2fa3	cca_check_secaescipherkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2be1f6aa	ep11_key2protkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2dc30fe9	cca_findcard
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x3440fe93	zcrypt_card_register
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x44435f75	zcrypt_queue_alloc
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x47c5a451	cca_findcard2
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x4aad03c0	cca_gencipherkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x4acd4568	zcrypt_card_free
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x4bb8a363	__tracepoint_s390_zcrypt_rep
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x52a39222	__tracepoint_s390_zcrypt_req
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x5e050fdf	cca_genseckey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x5eaa99ae	zcrypt_send_cprb
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x67cedaeb	zcrypt_rescan_req
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x6d2d037b	zcrypt_card_alloc
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x7dd52fc2	ep11_clr2keyblob
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x9032dd84	zcrypt_device_status_mask_ext
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x9992a66f	cca_clr2seckey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xa053d731	zcrypt_queue_free
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xa54284be	zcrypt_device_status_ext
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xb282926b	cca_get_info
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc0c976b6	ep11_get_domain_info
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc20af440	cca_query_crypto_facility
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc23843b6	ep11_genaeskey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc23b28fb	zcrypt_queue_get
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc3ee9fa0	cca_cipher2protkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xcfd8d3b1	zcrypt_card_get
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xd05a695e	zcrypt_msgtype
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xdf72d58f	zcrypt_card_put
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xea54d73e	cca_clr2cipherkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xee077284	ep11_get_card_info
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xf8d5738f	zcrypt_queue_register
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xfa128312	zcrypt_send_ep11_cprb
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xfcd9b367	ep11_check_aeskeyblob
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0x40b3051a	ctc_mpc_dealloc_ch
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0x56f42138	ctc_mpc_alloc_channel
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0x812fa936	ctc_mpc_establish_connectivity
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0xf5440dc6	ctc_mpc_flow_control
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x28d3cbe9	fsm_settimer
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x30ab97c9	fsm_modtimer
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x39209ed5	kfree_fsm
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x4947f4b3	fsm_deltimer
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x5bbdc3d4	init_fsm
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x75223679	fsm_getstate_str
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0xe8ae8e7a	fsm_addtimer
+EXPORT_SYMBOL	 drivers/s390/net/qeth_l2 0x126d7c53	qeth_osn_register
+EXPORT_SYMBOL	 drivers/s390/net/qeth_l2 0xa38d9357	qeth_osn_assist
+EXPORT_SYMBOL	 drivers/s390/net/qeth_l2 0xe9817a13	qeth_osn_deregister
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x0cbf067c	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x0ed6e08b	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x418887d9	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x43e0f73a	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x8ff49265	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9a0ce6ac	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9e777fe8	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa4cd3aff	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb1f21b1b	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xbfcdfcc9	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xebba153a	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0736b753	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x079af3d2	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x08ef04de	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0b8fe36b	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0d12062e	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0f849372	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11229b88	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11accfb2	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x133b151c	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x15157cb9	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1900af26	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1fd0416d	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x28a4d2f5	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2a1c0b60	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2e7f7b27	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2ee10bcd	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x333debf8	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3a2c9b80	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3b38f779	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3b3ea75e	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x467729b3	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4712a850	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4e7fa8b5	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f5911b2	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x57b67327	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x583d5f9b	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x58ff388a	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5d520b1a	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x699bfdc9	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6a1076ae	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6fa15c6c	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x70f553fd	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x725d1afa	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x775fb871	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7b364c88	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7bdd6f12	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7eaec08c	fc_rport_terminate_io
+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 0x893cb890	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x98e3ff56	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d840d1f	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9dea6bbf	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9375390	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7e82215	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbbbcf620	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbccd64e7	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc0919a59	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc21ed663	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc84fdeff	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd9bdf9d5	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd9eefe37	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdb315f85	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdedbe2da	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe8231d78	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe9b87e43	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xed389eca	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf63596d9	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf9029214	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfccc1ed3	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfe2a324f	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x42f7ad6f	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x90b999e7	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xc9f0fa7f	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x445ef4f7	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x5cbc981a	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x6cd465a4	raid_component_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0a56be00	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x14eee91b	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x39ab4e21	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3dfd1414	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3e98816e	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x578aca16	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6ddeb59c	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7d4ab348	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x804cdb1c	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9b10f87e	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb81c4c5b	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd2fda54d	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd8f845ee	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xea7662a7	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xed7f2124	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xff578b94	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x057886e4	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x165d5645	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x16a2a379	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x19f7499e	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x248e50a8	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x29d1c6b5	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4bb9047c	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4e72d6dc	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x55c9fc82	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x57443c19	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5bdf9111	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6ab8fd92	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7c7e3f52	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x841ca210	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8b3ffd35	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x99ed7830	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9d58fcf1	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa0551ccd	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa3b1dbb1	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa4879282	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xaea0f08b	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbfbc2af8	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc4a3a233	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd2ca2520	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd3785692	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe056f68d	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe11bc2f2	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe8157cc6	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf7ae83ac	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x0f339056	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x677d2e9d	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc03547b0	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xdda4bc16	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xed284c05	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x09415981	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x584711c9	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x9d19d0ca	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb2967544	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xe0a6bdeb	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x03f52fca	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0531b0a2	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x107c7d36	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x16cb1c18	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1c83d8c5	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1e8f4373	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x25897901	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2b48c71b	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2b9b36a9	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x31f61ff6	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3346833a	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x36df6b0b	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x37f210e4	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3ac15fed	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x492e8051	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x529713fb	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x538efd46	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x58bdcaa5	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7477a18c	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7c55f93d	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7d3cc94b	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7eec2d77	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8a6f6cce	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8e6682a8	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8f7bb696	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8f9cfdcf	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9458ab3d	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x96838e96	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x991c5e41	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa6f7e5de	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa874e43d	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc476dc87	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcb3d9b98	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcd593786	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd123385d	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd37e86d0	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd7658177	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xde063b09	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe4c2dca8	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe4c56306	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xeb38b9a4	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf15346bb	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf933d6c1	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xffdb4d64	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x02e39ab8	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x03e2110e	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0d7c1431	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0f7ad9f4	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x14d83d4b	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x16d54c60	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1c6dadaf	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1f5ece54	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1fc2c571	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2098a627	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x22dac617	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x23c40256	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26af30e3	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26d2eeaa	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x288093d0	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2d8fd3fd	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2dfb61eb	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3216cf8d	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x32f90b17	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x33f61a67	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x373b9fc4	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x399cc5f5	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x420f57bf	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x466d426e	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x498f60a2	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4ba97e41	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x52286f93	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5bb7b19f	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x641dc3f8	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6a7621e4	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6bc20e94	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6ee5f03d	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7686c485	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x78ec1cc0	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7c3ded6c	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7f1e739d	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x81b8ef9d	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x830ce7f0	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x89ecdcb7	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8a4b1ff1	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8f3abbaf	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8f6ee72a	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x900d83b2	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9b338abb	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9c5bcf1e	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9da2d63e	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa346a794	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa466a178	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa811f6b4	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9043033	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaea07f8a	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb01848d8	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbb7f1cc5	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbd00adc5	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbd5639ca	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcce600f1	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcfd91d01	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd17ee2b8	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd7fc1161	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdba058e4	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdc8613b7	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe6716037	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe7338bf0	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe750fd33	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe9bb77a4	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xea538969	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xea7077b2	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf0fd2601	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf4fcb8bb	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xffbe82ad	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x0be81cd9	uart_remove_one_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x0c9b8b4f	uart_get_baud_rate
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x0ec555c7	uart_add_one_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x2210df3d	uart_update_timeout
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x3d0aac3d	uart_get_divisor
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x6809bc2c	uart_suspend_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x6dd5e354	uart_unregister_driver
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x72ce5e82	uart_write_wakeup
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x9057828f	uart_match_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xc7357666	uart_resume_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xc9b86c10	uart_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x13847a56	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x284750e0	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x5baaf117	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x5e1f34a7	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x65aa024d	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x6c475122	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8840747b	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9283b158	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xae527737	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc8cb0ed0	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd4e449da	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf70c18c0	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x07dfd89a	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x407a6e1c	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x4232a0c3	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xa6a00ca5	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xaf8a4a7f	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xf3411eb8	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xffa246f7	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x0f9ead1b	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xe628b84f	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/cfbcopyarea 0xab6000c0	cfb_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/cfbfillrect 0xca9049ff	cfb_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/cfbimgblt 0x61f01043	cfb_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x103c0bfd	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x71cc42c2	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x457b8037	sys_imageblit
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0149f577	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0807323b	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x085532f1	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1998cc19	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x21986b9c	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x23b45afc	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3d720ea6	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3f41bbff	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x40b75409	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x432a6739	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x470d75b3	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x47b30f34	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x59e7df6a	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5f1f904d	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6506b4b6	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6a2f0fa2	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6e42b973	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x70b295b7	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x788b1967	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7fb00d32	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8194c7fd	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x897a702e	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa280b3d5	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa31ab3c3	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaca54e71	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xae0f08a7	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xae52c50b	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaeca41a8	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb1c4caaf	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbc5f7c6d	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbcd3480f	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc4cf6b87	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcaf58d32	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd5348360	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd767bbce	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd812f318	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdb408ea4	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe5d940f4	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xeb5a8aca	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf9bf4f15	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x04c66f8d	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x08938acb	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x330e111d	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xabc18882	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xbe0fb64d	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xfa6230ac	qtree_get_next_id
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc-itu-t 0xdf59602c	crc_itu_t
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xc440541c	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xfa0da958	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0f6f0fdb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x17c6b1e1	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x52857213	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x6f1d0c3b	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0x7869961b	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0x79c87149	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0x842128dd	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x88713f97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x955d4873	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0xbbc7a78d	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0xc1a43316	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a4ca05	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xe4a98afa	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0xebae3022	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xf2975256	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xff3f1db8	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xffb12208	lc_is_used
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x0f3dcf29	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x7f7bbb7e	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xe06ae6d6	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x38e157a7	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+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	 lib/zlib_deflate/zlib_deflate 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x00441ef6	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x040c92d1	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x065b14f3	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0b9a9379	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x17823f99	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1ffb27f1	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2411b496	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x273a39e7	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35adbdc6	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x48bfae8e	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x50d289a3	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x515ab572	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x57b1012f	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66a8b7ab	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x785d10c3	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x84e61bae	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x8f2f596d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x97b3b7ca	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa88b0af5	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc2d4374c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc83660bd	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd1ad98e7	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd967de6d	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdc157266	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdfb596f8	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe02d4179	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe14f9e35	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xebe6a8a6	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf2068346	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff471430	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 net/802/p8022 0xb558eb15	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xf80d5305	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x5c79a8e5	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x8442b3ff	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x00dfe8a9	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x033d2124	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x061a54c1	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x11e3e29f	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x1db8456e	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x2f1667e2	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x329555fa	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x48269598	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x50ccb2f9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x518f3d6a	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x57b7f94f	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x62e15b59	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x62f3c086	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c858a7a	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6f948bbc	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x73723030	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x7f5efd30	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x80080294	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x81eb1776	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x8a9d5f63	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x8c4303b9	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x8d5ea5b2	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x8ebefaa4	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x961df875	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x9fcaa803	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xa66464a1	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0xa6a9b31f	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xa95c80fc	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xace28686	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xaf71f0d4	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0xb5f1e093	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xb8ac2fe5	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xba7e3d8e	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xca64ebc8	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd7f02772	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0xda2a9df6	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe7d97e65	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xea690f7f	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0xecf3f8df	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xeea828be	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xf2ce2985	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0xf4146ed3	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xf70002ae	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xf8be051a	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0xf8f8d213	p9_client_cb
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x8b2d937e	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x994375ce	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xeb1bc9b1	ebt_register_table
+EXPORT_SYMBOL	 net/ceph/libceph 0x00541432	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x0228f016	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x07aadec2	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x0886bbe4	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x08ef2244	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x0c74d1e4	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ce74839	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0x184396b3	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x1875e681	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x198017b0	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x1f2ff439	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x20ca8efd	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x28fbc9f5	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x2aa61249	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2e769723	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x32416063	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x34b4cbae	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x3524c308	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x3746c25c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b4bf923	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ea2b583	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x436c23eb	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x441927fd	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x472d6569	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x488126c7	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x4a66d5ff	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x4a7753e9	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x4d5eeee3	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x4dbbdd35	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x4f121058	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x52e131f0	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x52eb7099	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x54284002	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x54f93f19	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x55761cd4	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x576d59b4	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x59e4b764	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d1fc739	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e67291c	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e6e6420	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x602de2a6	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x613f2daa	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x627d9273	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x631dbc8d	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x63c75808	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x65bdce8d	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x66d8f180	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x69da117c	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x723c2a78	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x752b8ed8	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x75b3710b	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x75ef6e2b	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x7790a91c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x779590cc	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x7a0c7efc	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x7a60f8db	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7c39a3ec	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e73aa84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x81d82bea	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0x8335a6a9	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x8375650f	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x843c2501	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x8442a6a8	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x89ce9e44	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x8a9ef709	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x8d29af73	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e178b4e	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x8f838300	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9a4edb58	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x9af926d0	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x9b2fabaf	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x9b982d3d	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9cec8be2	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x9d244e0c	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x9db1288c	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa02ccd90	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xa376f5df	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa724f360	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0xaadec787	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xab893ab9	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaf649d42	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb2871a93	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xb3f46825	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb64ff8bd	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc98cee2	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc2a25a0c	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xc3292238	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xc4474f6a	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0xc8e5b3df	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcc244c0c	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xcc2e0eeb	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xd26ba94e	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd3bc3373	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xdab50d77	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb604729	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xdbe2d853	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xdc6b54b7	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd132b5f	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd3e4813	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xdeddd368	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xdef45205	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe3376bab	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe7ff7346	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0xe85108a4	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xea1572bd	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xeae9773d	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0xec2c4a30	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xf05600ea	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xf1bbdd81	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xf2b311e3	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xf46c6d0d	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xf92d4460	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0xfab27e9e	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb27354c	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xfc5a7f17	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x3691b82f	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x66bc94d2	dccp_req_err
+EXPORT_SYMBOL	 net/ipv4/fou 0x037b491e	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x3899cd11	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xdef70806	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xfc5f64a4	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/gre 0xde3eb9c5	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x2c7b9a7e	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x2ce12877	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x4a7425ed	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x7ae4024e	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x414cc74a	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x5c7728bf	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x8b77e489	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x3e9b3564	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x98fe7b7a	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xbaa9f8a2	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xc18fd4ca	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xef01f58d	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x5bda70c8	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x0002699c	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x5b00bf6e	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x6384cf6c	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x654b5ecc	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7a2825c1	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x80121d28	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd53b8240	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf2fb2cec	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xfec8e809	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x31729c34	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x85452122	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xefa56db3	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x9cda8c08	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xc6c1292c	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x1c914e64	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x869cebca	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xbda789ce	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xdba2efe2	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0xca4e2804	l2tp_ioctl
+EXPORT_SYMBOL	 net/llc/llc 0x0c56f6f5	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x31a2cb68	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x4144e9d7	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x4d52d5a5	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x7d4f9d95	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xd0d4b21d	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xe36f96c2	llc_sap_open
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0df2db84	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1507f7e5	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x15ca5e64	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1a4e2c97	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x267f2406	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x62387519	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x64d59b01	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c251d9c	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c62a3c0	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xca7e7928	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd66257d7	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xdcd05bb6	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf246b730	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf627369e	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfd423458	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x76a33f8c	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xcef4b4d8	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x18913854	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x3e702912	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x7a0d3dac	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xb5554f4b	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xd5993121	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x08276580	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x1445a5ac	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x47f390fb	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7209fb11	xt_table_get_private_protected
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x869d5996	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8781b0ec	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x949494b9	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa2d9c37f	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd48a7a6a	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe127ffc6	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1db5884b	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2afd9dc1	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x415ee446	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x445893db	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4b928dd6	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x54951042	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x55146876	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5a880ddf	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5dc3827c	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x60233a3d	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6b0ed81f	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x85473643	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8e78b08e	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb69e7204	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd25ae936	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xea2e2efd	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf1493f1f	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/sctp/sctp 0xee55e1c1	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x23b22a1a	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x6d52ac2c	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xe58f1b20	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x448f6ced	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x458025e4	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x729be8f0	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x0abf8015	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0x35bba5f8	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0xc36ec93a	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0xe621171c	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tls/tls 0x1497065a	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0x85c10c09	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0xf0a09369	tls_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x0063c020	dqget
+EXPORT_SYMBOL	 vmlinux 0x006a2217	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x00715352	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x0090b807	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x00934ce9	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x0095ce31	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x00ae6ec1	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x00d4c245	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x00dc9758	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x00eb1c3a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x00f0b079	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x00f4a223	_ebc_toupper
+EXPORT_SYMBOL	 vmlinux 0x00f63468	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x0111c506	has_capability
+EXPORT_SYMBOL	 vmlinux 0x011b25ae	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x012d0027	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x014716eb	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01501199	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x01570e71	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015cfb86	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x0174acdd	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x0175f0c0	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x01867a54	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x01a690f7	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x01b1f89a	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01d178f4	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x01e1ec00	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x01e4f843	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x02072bfb	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x020a227d	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x0220b373	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x02215807	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x0228b02f	raw3270_request_add_data
+EXPORT_SYMBOL	 vmlinux 0x02453442	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x024819cc	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0257a9ae	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x026ed639	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x026f2a73	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02852422	kobject_add
+EXPORT_SYMBOL	 vmlinux 0x0286c20a	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x028e1eb0	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x02976b21	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a28eae	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x02a31205	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x02ca22a8	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02cb9834	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f034a1	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x030ce078	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x033c981a	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x034620c4	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x03763ea1	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03898874	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x038c1fc3	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x039ab8a0	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x03bc3285	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x03d2240c	add_virt_timer_periodic
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x0400391c	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x043684c5	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x043f3e80	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044eb942	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x0456ae21	__tracepoint_s390_cio_xsch
+EXPORT_SYMBOL	 vmlinux 0x045fde98	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x04794c06	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x048f07a5	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x04d62a9e	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x04df05ec	debug_unregister
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ec07a7	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x0501b905	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x05289c3d	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x056f5cef	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x05877e2e	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x0587a0b8	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x05a7193c	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05bb7bff	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x05bcf3f1	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x05c0dfc7	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x05d158de	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x05e91bd2	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x05f49c97	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x062b76a9	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x0641a84b	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x066536a3	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x06689c90	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x067d73b4	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x069e83b8	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x06a41895	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x06a5814a	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x06ba61f4	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x06c034f5	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x06ebb1c7	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x06fdd7cc	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x0711e7cb	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x07142105	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x07286cde	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x07297511	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x07376991	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x07509243	seq_write
+EXPORT_SYMBOL	 vmlinux 0x075a0af8	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x079db638	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07c4a748	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07dd502a	s390_arch_random_generate
+EXPORT_SYMBOL	 vmlinux 0x07f37724	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x08001fef	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x0818a8f5	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x0818cac8	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x0824dc87	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x083e0668	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x08456553	match_string
+EXPORT_SYMBOL	 vmlinux 0x084a5b02	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x085897ca	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x085eaf75	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x086693e2	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x087b9d43	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x088c96f6	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x08c66004	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x08d5af1e	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x08dcf579	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x090885b6	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x0929ceff	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x092fa2c4	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x09328310	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x0937f1d2	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x093f08cd	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x0944a115	debug_set_level
+EXPORT_SYMBOL	 vmlinux 0x094e4d43	iucv_root
+EXPORT_SYMBOL	 vmlinux 0x094effa5	__iucv_message_receive
+EXPORT_SYMBOL	 vmlinux 0x095eb0f6	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x09646cc1	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x09667ea2	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x098a75e1	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x098be2a6	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x09b5a18e	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x09bf6fbe	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x09bf8633	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09c9a877	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x09cadd3f	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09d6972f	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x09daa644	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x09f2044c	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2fabc3	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x0a3b7036	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0a6623ed	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x0a712d3c	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a8e10a4	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x0a9376c0	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x0a960a4f	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x0a9bf2fb	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0aacd352	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x0ac0b7e8	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x0ac1b0d2	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x0ae60c27	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b25f951	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x0b2cb334	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b899c1f	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x0b8d11cf	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0x0b985040	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0bb39b38	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0becdb65	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x0c17a68e	zlib_dfltcc_support
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c46da66	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x0c616a18	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x0c65faec	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x0c6ccf20	s390_isolate_bp
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7cf7c6	zero_page_mask
+EXPORT_SYMBOL	 vmlinux 0x0c8b47ba	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x0cacc2d9	__debug_sprintf_event
+EXPORT_SYMBOL	 vmlinux 0x0cb264a1	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc0f4c5	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0ce19729	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0cea7502	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x0d05e9ae	xa_extract
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d206f8e	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x0d3e0e16	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d7d0ccf	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x0dad4cdf	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x0dc9a498	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x0dce188a	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x0dd7ac86	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x0ddb30b1	would_dump
+EXPORT_SYMBOL	 vmlinux 0x0e02baa5	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x0e124b74	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1ecfb7	unregister_adapter_interrupt
+EXPORT_SYMBOL	 vmlinux 0x0e308f27	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x0e30f36e	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x0e46ec03	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x0e4d9f7b	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x0e6f514d	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x0e77cea1	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x0e8e3951	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x0e9c912d	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x0ea763c3	sclp_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x0eab56fa	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0x0ead1d65	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x0eadcf80	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x0eaf22a3	d_move
+EXPORT_SYMBOL	 vmlinux 0x0ebbacd4	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x0ee1e6ce	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x0ee8557d	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f578d26	tty_schedule_flip
+EXPORT_SYMBOL	 vmlinux 0x0f58b995	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x0f59acca	__kernel_fpu_end
+EXPORT_SYMBOL	 vmlinux 0x0f766f27	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f875e10	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x0f8ee51e	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb0441f	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fb360e6	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x0fb91b65	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x0fbd63a4	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x0fc712e7	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x0fd5a8d1	vmap
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0ffc9609	ap_recv
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x10112f05	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x103e7412	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x103f5740	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x1040a83c	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x10497616	memweight
+EXPORT_SYMBOL	 vmlinux 0x104bb514	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x104df510	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x104e47d4	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x105e4baf	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x108cdd3d	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x10b371b5	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c5397e	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x10c8b61a	d_delete
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10da7df4	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11182a33	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x1128151f	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x1158adcd	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x115ad6f6	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1176ba4f	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x1199727a	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x119aae1c	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x11a066bd	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x11a41851	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x11b9b9b6	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x11cbe70b	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x11d03fa3	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x11d21173	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x11dc1033	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f0f083	kernel_cpumcf_avail
+EXPORT_SYMBOL	 vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0x11fb83cb	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120c139f	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x12185e24	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x121891ee	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x1239fc2d	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x124858d9	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x1251a12e	console_mode
+EXPORT_SYMBOL	 vmlinux 0x125b36e0	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x12641250	get_phys_clock
+EXPORT_SYMBOL	 vmlinux 0x126ea78a	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x12721f47	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x1299cc69	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12cc5e5d	xa_find
+EXPORT_SYMBOL	 vmlinux 0x12dc4b8b	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x12e09113	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x12e637e2	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x12efa940	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12fa14a8	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x12fe638d	diag_stat_inc_norecursion
+EXPORT_SYMBOL	 vmlinux 0x130a1274	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x130dac91	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x130ec30a	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x132321a3	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x132f9865	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x13304b2c	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x134299e8	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134f8fa3	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x135acaa7	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x136608b2	__tracepoint_s390_cio_csch
+EXPORT_SYMBOL	 vmlinux 0x13a910b0	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x13b093e0	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x13bd4b57	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13e78828	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x13f91faa	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x13ffb95a	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x14028722	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x1432a0f3	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x144cfb29	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x14695af8	ccw_device_is_multipath
+EXPORT_SYMBOL	 vmlinux 0x146f56f1	nvm_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x1473cad5	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x14797a0f	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x147aaf6e	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14c5e5b3	segment_warning
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14ed4a4d	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150983e1	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x15233a09	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x153c1c1c	arp_send
+EXPORT_SYMBOL	 vmlinux 0x15447fcd	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x154bb89d	dput
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x154e395c	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x1550ab0d	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x156f00f3	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x15745f5b	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x157bb299	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x158bae96	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x15b25ef7	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c457ee	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x15f0cf6a	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x161adf05	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x161b12bb	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x161f7dc0	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x163208f5	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x163a3cd2	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x164581b3	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x1653c5c3	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x1654856e	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x166c95c2	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x16871a6f	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x168c1fe2	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x168e5424	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x1698f7d5	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x169e3db7	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x16b02ac3	update_region
+EXPORT_SYMBOL	 vmlinux 0x16b1db39	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x16baac0e	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x16d39f8d	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x16d4dc45	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x16d8a1ff	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x16e10688	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16fa9aed	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x16fd8f77	tso_start
+EXPORT_SYMBOL	 vmlinux 0x170c49b5	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x170e0355	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x17228302	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x1722db0b	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x172420e7	nvm_unregister_tgt_type
+EXPORT_SYMBOL	 vmlinux 0x17323b86	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x17719295	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x177a1109	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x1792b6b3	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x17aac5ce	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x17b5620f	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x17c13e6e	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x18007d4f	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x1811648c	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x18131497	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x181861cc	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x18241990	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x183b4380	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x184a96d9	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x185777d1	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x18664387	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x187b6f4b	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1897e8be	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x189af8c8	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x189b6bac	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x18a00587	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x18b24831	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x18b5e491	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x18b87cca	sclp_deactivate
+EXPORT_SYMBOL	 vmlinux 0x18d71af5	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x18e0b709	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x190a9222	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x190ad815	__tracepoint_s390_cio_stsch
+EXPORT_SYMBOL	 vmlinux 0x1923193d	skb_append
+EXPORT_SYMBOL	 vmlinux 0x196352ca	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x199896b7	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x199dd093	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19a6bc74	register_service_level
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x1a28add2	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x1a35ab11	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1a9d44d9	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x1aa78325	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x1aac7116	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x1ab5d13f	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1ab7fa70	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x1ac1e09c	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x1ac2c83c	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x1ac6c9e7	get_ccwdev_by_busid
+EXPORT_SYMBOL	 vmlinux 0x1af8e393	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b101a5c	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x1b1f04b7	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x1b21cd35	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x1b39b30d	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x1b3fc800	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x1b405711	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x1b4ca1f1	dev_close
+EXPORT_SYMBOL	 vmlinux 0x1b5eceac	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b770d6a	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b7be5b0	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x1b898827	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x1b9bd7f4	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x1b9ce427	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x1ba04458	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x1ba13495	__cpu_to_node
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bbe919c	console_start
+EXPORT_SYMBOL	 vmlinux 0x1bd75f87	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x1bef6c77	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x1bf301c3	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x1bfca566	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c42691f	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x1c4a5c31	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x1c80de9c	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x1cab94ad	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x1cadd835	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb84975	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x1cb93086	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x1d163cc9	ap_flush_queue
+EXPORT_SYMBOL	 vmlinux 0x1d1da7f9	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d3852da	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x1d3e2765	iucv_path_quiesce
+EXPORT_SYMBOL	 vmlinux 0x1da892ef	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x1dadd920	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x1daec426	ccw_device_dma_free
+EXPORT_SYMBOL	 vmlinux 0x1db5b7b1	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x1db9dc56	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x1dbbd8db	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x1dd10513	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1df097fd	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e1689de	send_sig
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e34deda	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x1e35e8a7	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x1e4834ed	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x1e6b9794	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e705e20	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x1e8a161a	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x1e92a83c	kbd_ascebc
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1ebe0c3f	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1edca166	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x1ede54f2	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x1ee8d6d4	refcount_inc_checked
+EXPORT_SYMBOL	 vmlinux 0x1f0e8d2d	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x1f19f5ad	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x1f1eabc3	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x1f3a19a7	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x1f560f67	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x1f57822e	krealloc
+EXPORT_SYMBOL	 vmlinux 0x1f8a1a32	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0x1fb27078	tcw_get_tccb
+EXPORT_SYMBOL	 vmlinux 0x1fb2ff32	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x1fb41673	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc44f49	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fccd43d	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x1fda8755	__memset32
+EXPORT_SYMBOL	 vmlinux 0x1fdca9b4	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x20248f4f	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x20401c01	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x20496f91	padata_start
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x204f5df4	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x2051ec5a	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x2054eb63	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x205aa86e	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x20639f35	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x20687cd7	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207ffa32	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x20973b94	segment_unload
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20c587cc	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20e4d7fb	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x20ee076e	itcw_add_tidaw
+EXPORT_SYMBOL	 vmlinux 0x21065432	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x21165b4a	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x21248cc7	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x21293174	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x2133be23	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x214bd8b8	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x21798b43	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x21804a82	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x218261aa	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2193162f	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x21aa5fe7	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x21aaaf5f	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x21bb5554	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c1ff91	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x21c3fb7f	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x21d0facb	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e396b9	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x220f3cd5	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x22983c92	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x22a3c230	ccw_device_resume
+EXPORT_SYMBOL	 vmlinux 0x22abc19b	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22dd6d51	tccb_init
+EXPORT_SYMBOL	 vmlinux 0x22dfbb84	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x22e5ae85	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x22f2b07c	kbd_alloc
+EXPORT_SYMBOL	 vmlinux 0x22fdb262	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x22fe60da	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x232684c3	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x23329f71	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x2333813e	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x233eb72b	nvm_register
+EXPORT_SYMBOL	 vmlinux 0x234c17bb	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x2352426c	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x23645ba1	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x236c8c64	memcpy
+EXPORT_SYMBOL	 vmlinux 0x23b0b91e	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c709c8	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x23ea22bd	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x23ee13fd	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x240576e9	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x241d8847	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x24204770	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x242f3562	irq_subclass_register
+EXPORT_SYMBOL	 vmlinux 0x2449a0e1	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x244d14ef	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x2450be39	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x247a3fe4	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x2480d0be	raw3270_start_locked
+EXPORT_SYMBOL	 vmlinux 0x24916a79	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x24b80c56	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x24b91f36	nvm_end_io
+EXPORT_SYMBOL	 vmlinux 0x24c86c50	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x24cd0478	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24f8f206	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x24fbb5c9	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x2503734f	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x250f9744	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x252cf375	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x2534ab77	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x2541cc83	ccw_device_tm_start_timeout
+EXPORT_SYMBOL	 vmlinux 0x2548c032	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x254d0863	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257126bd	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x257c908a	raw3270_add_view
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x25943226	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x25a7b284	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x25b3d308	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25ec1b28	strlen
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x2630669c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x2634b24a	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x2641a1c6	diag224
+EXPORT_SYMBOL	 vmlinux 0x2649073b	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x2649869d	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x2669d71e	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26a5b938	sclp_pci_configure
+EXPORT_SYMBOL	 vmlinux 0x26b6b9cc	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x26b6c910	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x26ba4be5	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x26ca700c	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26e67b51	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x26ef7b31	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x26f6fefe	icmpv6_send
+EXPORT_SYMBOL	 vmlinux 0x270cfe7f	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x2729e702	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x27418353	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275c24a7	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x2761c0b7	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x2767306b	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277908fd	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x279175ac	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x279703aa	kbd_free
+EXPORT_SYMBOL	 vmlinux 0x27a136a2	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x27b04b56	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27eb9cd1	tcw_set_intrg
+EXPORT_SYMBOL	 vmlinux 0x28047ce7	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x28124d50	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x2829ca21	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x2834e43c	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x28684c7b	dev_err_hash
+EXPORT_SYMBOL	 vmlinux 0x286a8fd3	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x287a5f8f	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x28836887	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x288382ef	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x288f29a2	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x28a70692	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x28bdaa8e	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x28d0f0bf	ihold
+EXPORT_SYMBOL	 vmlinux 0x28f5db8e	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x290b0f33	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x291827d4	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x291a9ac4	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x291b0a05	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x2922db9d	init_task
+EXPORT_SYMBOL	 vmlinux 0x2925b9d8	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x29391e7d	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x2956cf37	sclp_remove_processed
+EXPORT_SYMBOL	 vmlinux 0x29681b27	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x296b95d8	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x2973e979	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x29789394	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x2981bcbd	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x298b7594	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x29a2e18c	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x29a90682	bio_split
+EXPORT_SYMBOL	 vmlinux 0x29ad5bc9	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x29b8030f	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x29c50548	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x29cc0042	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x29d901d6	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x29ef5b4d	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x29f8ac48	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x29fec6ce	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x2a04fcc8	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a39eecb	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x2a3b0719	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x2a41d203	dql_init
+EXPORT_SYMBOL	 vmlinux 0x2a55dc2c	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x2a7634d4	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x2a7a5793	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x2a7f4f06	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x2a805563	__kernel_cpumcf_end
+EXPORT_SYMBOL	 vmlinux 0x2a827288	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2a87e95d	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x2a967ea9	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x2aa27b1e	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x2aad1907	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x2ab6db14	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x2ab6de9e	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x2aba5912	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x2af3f454	ssch
+EXPORT_SYMBOL	 vmlinux 0x2af69edb	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x2af894dd	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x2b13c1db	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x2b18ee9a	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b6fbfcb	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x2b93cce7	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2baa8856	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x2bb877c5	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x2bd5cacb	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x2bd644a1	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x2c001311	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x2c0d5ceb	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0x2c0f1582	lockref_get
+EXPORT_SYMBOL	 vmlinux 0x2c0f2fb3	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0x2c1cf773	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x2c252b48	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c29a995	__strnlen_user
+EXPORT_SYMBOL	 vmlinux 0x2c46d39c	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x2c4a72f2	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x2c738bf8	debug_exception_common
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2cbdef7d	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x2cc3a2f4	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cd74934	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x2ce9a7ae	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x2cfc1d64	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x2cfc9a72	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x2cfdfcf1	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2d0c93ca	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39477d	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d512e30	ccw_driver_register
+EXPORT_SYMBOL	 vmlinux 0x2d71a231	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x2d9368f4	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2dc3fce2	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x2dc97d94	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x2dd189ba	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x2de9aeb3	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x2dec736f	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x2e261c94	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x2e3f7e91	filp_open
+EXPORT_SYMBOL	 vmlinux 0x2e41cf9a	raw_copy_in_user
+EXPORT_SYMBOL	 vmlinux 0x2e47d14c	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x2e579121	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2e73e8ed	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x2e80e0d9	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x2e817b59	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x2e874c5a	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x2e8cd12f	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x2e901283	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x2e936e90	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x2ea995c8	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x2ead95ba	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ec98aa2	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x2ed858b3	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x2edcab17	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x2eebdfe0	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x2ef5661d	segment_modify_shared
+EXPORT_SYMBOL	 vmlinux 0x2f039d3f	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f0526d8	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x2f1268cc	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f50cd5a	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2fa5a500	memcmp
+EXPORT_SYMBOL	 vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x2fc21611	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x2fc21c2e	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x2fc49ecd	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x2fcaf387	dev_printk_hash
+EXPORT_SYMBOL	 vmlinux 0x2fcd92e7	ptep_xchg_lazy
+EXPORT_SYMBOL	 vmlinux 0x2fd25a7c	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fee5d90	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x2ff2e7b2	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x2ffffb6f	_ebc_tolower
+EXPORT_SYMBOL	 vmlinux 0x304c4a4d	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x3055e215	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x3099e5a1	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x30a01862	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b4f570	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x30ca504d	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x30d42059	dqput
+EXPORT_SYMBOL	 vmlinux 0x30dd33ad	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30f1217c	dfltcc_deflate
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310579b4	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x311e48b3	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x316a2fd6	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x317f7404	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x31c9d40e	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x31e7b349	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x31eb2c96	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x31f0804a	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x31f21309	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x31f498a1	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x31f7fdb0	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x32223df5	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x322860e1	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x32295c79	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x322cbca8	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x323bffc0	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x3248d38c	mount_single
+EXPORT_SYMBOL	 vmlinux 0x325a2a81	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x327547a9	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x3275689f	smp_ctl_set_bit
+EXPORT_SYMBOL	 vmlinux 0x3280476a	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x32a30bb7	arp_create
+EXPORT_SYMBOL	 vmlinux 0x32ae0796	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x32c6a2d8	_ebcasc_500
+EXPORT_SYMBOL	 vmlinux 0x32c855d0	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x32cccae8	neigh_lookup_nodev
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32ddee5d	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x33140703	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x331a1c09	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x332741fb	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x3342b119	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x335b3089	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x33636ce6	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x338bbef8	__ndelay
+EXPORT_SYMBOL	 vmlinux 0x3399655f	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x33a11450	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x33bf4093	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x33c7f440	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x33cbd63b	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x33d50be4	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x33e639ce	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x33f1515a	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0x33f74de3	_ascebc_500
+EXPORT_SYMBOL	 vmlinux 0x340971f7	km_report
+EXPORT_SYMBOL	 vmlinux 0x340e8467	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x34350c06	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x3460c54a	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x346247ea	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x34710fcd	pid_task
+EXPORT_SYMBOL	 vmlinux 0x34719f23	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x349df2d9	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x34acf20e	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x34af7a28	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x34b55202	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x34ca5750	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f497a7	ida_free
+EXPORT_SYMBOL	 vmlinux 0x35146611	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3522e2ab	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0x35591fbd	nvm_unregister
+EXPORT_SYMBOL	 vmlinux 0x35947bb1	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x3595ed10	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x35a190fc	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35c1c6da	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0x35d0648b	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x35e32af3	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x35e76b2e	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x35f25c95	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x35f59a26	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x3602aba9	raw3270_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x36105653	bio_put
+EXPORT_SYMBOL	 vmlinux 0x362403d4	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x36243db0	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x3626e509	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x36409451	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x36421f92	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x3647ae16	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3682efb9	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x369c7a7e	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x36a726e0	ccw_device_halt
+EXPORT_SYMBOL	 vmlinux 0x36ce84d7	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x36d01ea7	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x36db9710	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x3701cc15	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x370ba4b6	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x3719fba1	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x373458a0	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37698718	d_drop
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b53505	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c840ec	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x37d2c3f4	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x3821f0ac	audit_log
+EXPORT_SYMBOL	 vmlinux 0x382c87d1	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x3832522f	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x386afd3d	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x387dd27e	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x3883e3de	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388d674a	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x38a3695a	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38c1eaba	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x38d1fa7c	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x38d9facc	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x38ddd3d3	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x38f81778	nvm_submit_io
+EXPORT_SYMBOL	 vmlinux 0x38fb57a5	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x39181c38	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x3940a372	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x394ac777	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x39582175	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x3958a9f3	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x39595b1d	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x395ca998	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x3978b602	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x397cfc2f	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x39842e57	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x3995efbf	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x39b0098b	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39c60ac5	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x39d9ab88	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a28f0d0	file_modified
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a2fabbc	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x3a4ea7f9	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a5fc43f	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x3a69e0c7	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x3a7cc638	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x3a965a63	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ab7b59f	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x3ac86af7	ccw_device_tm_start
+EXPORT_SYMBOL	 vmlinux 0x3ac8938b	enable_sacf_uaccess
+EXPORT_SYMBOL	 vmlinux 0x3ae77e15	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x3aece23c	stream_open
+EXPORT_SYMBOL	 vmlinux 0x3b176ce7	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x3b1a715a	ccw_device_set_options
+EXPORT_SYMBOL	 vmlinux 0x3b253b2d	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x3b4c3cc3	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x3b56536b	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x3b62733f	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b74fa1f	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x3b756f6a	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x3bc0ec33	init_net
+EXPORT_SYMBOL	 vmlinux 0x3bc81641	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3bd32df8	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0x3bd6bf8f	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bf805ae	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x3c0b4eee	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x3c109020	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c47817f	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x3c575355	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x3c65cc90	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c92aec0	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x3c94d2e0	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x3cc4402e	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce5a004	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x3cf397af	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x3cfb5d9d	vmemmap
+EXPORT_SYMBOL	 vmlinux 0x3d117a60	itcw_calc_size
+EXPORT_SYMBOL	 vmlinux 0x3d2510e2	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x3d40deca	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x3d510a2c	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d6b3755	empty_name
+EXPORT_SYMBOL	 vmlinux 0x3d6ce4cc	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x3d71af7e	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x3d87276c	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x3d8e54d2	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x3da2333a	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dac2aeb	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3db3b5a6	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3db7771c	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd709ad	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x3ddf5445	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x3df2f577	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dffd94f	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x3e24cb96	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2eb3c1	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x3e30e480	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x3e497c71	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x3e60b9e5	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x3e7401e7	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x3e79a0c7	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x3e8d42b3	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9facd5	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x3eb94250	itcw_add_dcw
+EXPORT_SYMBOL	 vmlinux 0x3ec147e3	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x3ed2421f	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x3ed24aec	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x3f002f2f	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x3f0364f4	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x3f130aaf	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4c23dc	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x3f4da0c8	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x3f55fda6	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x3f5aa04c	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x3f6da862	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x3f87d1e1	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3fa38fc4	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x3fa913da	strspn
+EXPORT_SYMBOL	 vmlinux 0x3fadb213	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x3fb0b9e3	__udelay
+EXPORT_SYMBOL	 vmlinux 0x3fc5c287	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x3fd464e7	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fd8e0e2	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x400f5f53	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x40124b46	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x402305dd	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x4023a6a2	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x4024c1c3	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x402a960a	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x4041cb4c	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x404cfc38	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x4075a851	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x4076e3b1	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40a524e8	path_put
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b764fe	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x40b7c9b2	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x40b98d58	user_path_create
+EXPORT_SYMBOL	 vmlinux 0x40bc2aad	f_setown
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x410034df	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x414618f5	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x4148a3f7	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4149b396	s390_isolate_bp_guest
+EXPORT_SYMBOL	 vmlinux 0x41804f72	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x41826b1f	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x4198ca95	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x4199b8d3	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x41d947ce	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x41ea142a	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x42066bb4	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x420e415e	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x42136584	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x422de416	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4245bc6a	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x42510ffb	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x427d78d9	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x429b1ac7	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x42b1ebe7	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x42c48a0d	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x42ff6638	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43114b48	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x431e6927	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x4327b4db	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x433cec32	proto_register
+EXPORT_SYMBOL	 vmlinux 0x4346dc0b	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x4351fce4	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x435226e8	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4382119d	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43874549	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x4395b354	free_task
+EXPORT_SYMBOL	 vmlinux 0x439baff5	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x43a4938f	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x43bdfa20	console_irq
+EXPORT_SYMBOL	 vmlinux 0x43bf2951	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x43c1d364	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x43cf3bc3	dql_completed
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x4417456a	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x4429e728	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x44430e26	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x4447cd0e	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x444e7369	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x446dfdce	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x447125d8	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x4487f23e	debug_register
+EXPORT_SYMBOL	 vmlinux 0x44883f23	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x4488e99a	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x44b30fb5	csch
+EXPORT_SYMBOL	 vmlinux 0x44cb8cd0	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45029837	logfc
+EXPORT_SYMBOL	 vmlinux 0x45142791	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x451bb109	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x4529088c	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x452b72f4	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x452cbc8b	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x454c566f	fput
+EXPORT_SYMBOL	 vmlinux 0x454fb519	ioremap
+EXPORT_SYMBOL	 vmlinux 0x45589f65	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x4562c9ad	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x45656035	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x4593e6ea	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x45b253c3	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x45b6a8c6	ap_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x45c92313	VMALLOC_END
+EXPORT_SYMBOL	 vmlinux 0x45d3c773	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x45fa6ec8	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x45fb7444	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x45fe2da7	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x463276fb	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x463bdec1	new_inode
+EXPORT_SYMBOL	 vmlinux 0x465d3900	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x4663e89d	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x46721d2a	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x468457d9	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x46921d1a	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x46a0f83a	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x46aaa2be	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x46cc7507	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x46cd8fce	iucv_message_send
+EXPORT_SYMBOL	 vmlinux 0x46cf5071	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x46d59f7d	smp_cpu_mt_shift
+EXPORT_SYMBOL	 vmlinux 0x46e083be	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x46e319aa	tcw_set_data
+EXPORT_SYMBOL	 vmlinux 0x46ef65f1	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x4707ac06	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x471e08cb	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x472317a9	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x4724f0d5	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x47254bbc	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x47345bbe	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x47392e76	sclp_ocf_cpc_name_copy
+EXPORT_SYMBOL	 vmlinux 0x475a7ca9	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0x4762f37e	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x476bfdde	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x477e323f	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x47813d12	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a07802	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x47a0cdcb	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x4823819e	raw3270_buffer_address
+EXPORT_SYMBOL	 vmlinux 0x4829c064	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x483e1e10	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x4845e247	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x48713bf7	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x48786766	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x48895296	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x488c1b35	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x489a6449	__tracepoint_s390_cio_tpi
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48ada7be	set_fs
+EXPORT_SYMBOL	 vmlinux 0x48bd7d18	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x48c1cbbd	seq_read
+EXPORT_SYMBOL	 vmlinux 0x48c84f8f	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x48d364b8	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x48ecfe1e	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x48fa78f3	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490a1c50	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x490c0cb4	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x4911eeec	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x492aab8c	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x4935191c	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493f497f	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x495990f3	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x496b60c6	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x49a1f9a2	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x49a5a458	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x49b06600	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x49bf2a8d	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x49bf9ed4	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x49cd3d35	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x49e138bb	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x49f5515b	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x49f73375	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x49f90a87	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x4a036665	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x4a3cb542	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x4a496a26	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x4a67dafd	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x4a713cf2	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x4a84daab	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x4a93a34c	mntget
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9bb2f5	debug_register_mode
+EXPORT_SYMBOL	 vmlinux 0x4aa0dfd4	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x4ab2acc3	fb_class
+EXPORT_SYMBOL	 vmlinux 0x4ad3bd67	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x4adb950c	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x4aeee662	load_nls
+EXPORT_SYMBOL	 vmlinux 0x4af7e54b	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x4afafbf9	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b28475c	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x4b4cbf8d	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x4b579d07	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b6f6cd0	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x4b79baf6	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x4b9bcc32	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bd18042	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x4be424b0	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x4bfb838a	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x4bfc401f	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x4c1c40a7	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x4c2a7f21	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x4c37e363	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c429414	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x4c4c956e	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x4c64cb08	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x4c69ad2d	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x4c6f4571	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x4ca0421d	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x4cc546e7	ap_queue_init_state
+EXPORT_SYMBOL	 vmlinux 0x4cd8afcf	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x4cf10e0a	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0x4d004c45	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x4d12d6ec	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x4d26ac2f	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x4d26c12c	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x4d33b6c2	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x4d5d2616	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x4d631159	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d68c613	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d8a6af8	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da6236c	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x4dba19dd	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x4dda726b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x4de835d7	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x4dea1053	memchr
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4df98d18	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x4e1b57e2	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x4e3350e5	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e3a4b43	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x4e4924ea	init_virt_timer
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e7858d6	console_stop
+EXPORT_SYMBOL	 vmlinux 0x4e98624f	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x4e9b851a	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x4ea385f0	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ecd86ec	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x4ed7b3b5	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x4edb6f6d	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x4ee53a72	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x4ee5892e	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x4ee6b680	__tracepoint_s390_cio_rsch
+EXPORT_SYMBOL	 vmlinux 0x4eec9dab	arch_spin_lock_wait
+EXPORT_SYMBOL	 vmlinux 0x4eecdce6	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x4f04ac5d	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2cd1b5	__cpcmd
+EXPORT_SYMBOL	 vmlinux 0x4f570170	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x4f76fb03	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x4f8db8a1	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x4fa58c39	nvm_dev_dma_free
+EXPORT_SYMBOL	 vmlinux 0x4faec757	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4fe29905	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5035cbcf	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x505d95d2	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x5061ecaf	airq_iv_free
+EXPORT_SYMBOL	 vmlinux 0x506456eb	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x507b25d0	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x507d6239	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0x5083e9d2	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x5086e387	fd_install
+EXPORT_SYMBOL	 vmlinux 0x509564e3	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50b81542	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c513fd	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d99368	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x50e0a893	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x51019ed5	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x5108f5e3	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x513288e2	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x5143ce65	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x51473316	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x5174f280	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x518bb9e6	diag204
+EXPORT_SYMBOL	 vmlinux 0x5192b8f8	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x51d8ecf0	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x51ddd00d	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x51dfc3ee	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x51e78d75	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x51eb7a33	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x51ed8b35	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x51ef2a29	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x520468d6	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x520cee42	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x522fba1d	raw3270_reset
+EXPORT_SYMBOL	 vmlinux 0x524463e2	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x5245071d	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x52595990	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x525bf037	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x52819990	kernel_cpumcf_alert
+EXPORT_SYMBOL	 vmlinux 0x5289a44b	start_tty
+EXPORT_SYMBOL	 vmlinux 0x528fb55c	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x52d149ad	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52eebf9b	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x52fec0cb	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x530080d4	set_groups
+EXPORT_SYMBOL	 vmlinux 0x532b8461	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x533560db	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x5366476e	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x536f9ea3	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x539761c9	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x53cc585d	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x53de276e	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x540862e2	diag14
+EXPORT_SYMBOL	 vmlinux 0x54172a34	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x54395463	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x543d0b91	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x5445feab	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x5459fdb8	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x54660331	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x5471d079	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x5478ee3e	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x549f382c	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54d6b9d5	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x55103c46	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x55353f12	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x5544cfeb	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x554a384a	__siphash_aligned
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x555ee64b	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x555ef3a2	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x55622e5a	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x55678b4b	bsearch
+EXPORT_SYMBOL	 vmlinux 0x55863fe6	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x558ad521	release_pages
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x558eaf7b	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x55a3f3e0	sclp_add_request
+EXPORT_SYMBOL	 vmlinux 0x55a4debf	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x55ae1300	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x55be1c0a	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55eccdf5	mod_virt_timer
+EXPORT_SYMBOL	 vmlinux 0x55fa44b1	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x55fac526	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x55fbaf1d	smsg_unregister_callback
+EXPORT_SYMBOL	 vmlinux 0x5605acdf	node_data
+EXPORT_SYMBOL	 vmlinux 0x562b9be5	ap_test_config_ctrl_domain
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x564405cb	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x565a0e7b	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x565b4727	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x56626fc0	sget
+EXPORT_SYMBOL	 vmlinux 0x5671f956	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x5681a138	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x568e565f	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x569b0652	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x569bfb2d	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x569d6bc8	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x56b4f918	uv_info
+EXPORT_SYMBOL	 vmlinux 0x56ba41ab	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56c88cf3	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x56ca422a	raw3270_start
+EXPORT_SYMBOL	 vmlinux 0x56d0ef00	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x56d78870	chsc
+EXPORT_SYMBOL	 vmlinux 0x56d9497f	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x57129a4c	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x57154965	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x57727a06	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x5784b01a	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x57cf4bda	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x57e5af8e	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x57fe2886	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x580fbfa1	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x581b288a	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x581dc398	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5835f033	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x5848784f	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x587be511	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5895fe24	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x58acdba7	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58c8e494	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x58cd1b54	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x58d37eb1	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58f13977	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x592ef420	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x593b92ea	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x5949a938	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x598889e8	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5992cece	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59bf1263	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x59bf2caf	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x59c124c7	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x59e5aa62	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x59ee4aad	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x5a015085	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x5a039533	dump_align
+EXPORT_SYMBOL	 vmlinux 0x5a05f4af	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x5a10f98e	del_virt_timer
+EXPORT_SYMBOL	 vmlinux 0x5a165a9d	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x5a2139c0	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x5a3840db	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x5a4751c9	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5e7ea3	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x5a70b562	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x5a7918d8	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x5a8f8a80	pci_iomap_wc_range
+EXPORT_SYMBOL	 vmlinux 0x5a9431f7	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x5a9abdf6	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x5aa0a4ba	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x5ab75a4d	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x5abcfc0c	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x5abec62a	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x5ac276f7	iucv_if
+EXPORT_SYMBOL	 vmlinux 0x5b0158a4	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x5b25b877	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x5b269f2d	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x5b2b28ab	tcw_add_tidaw
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b5c7136	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x5b604bd1	segment_type
+EXPORT_SYMBOL	 vmlinux 0x5b7ae132	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x5b841f15	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x5b8e3617	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x5b9dde88	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x5bcaa3a8	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bfd7f6c	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x5bfe7415	ccw_device_get_id
+EXPORT_SYMBOL	 vmlinux 0x5c1b7126	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x5c2d456c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c51ade0	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x5c546281	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x5c641ee0	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x5c923848	s390_epoch_delta_notifier
+EXPORT_SYMBOL	 vmlinux 0x5cc32bdc	bitmap_copy_le
+EXPORT_SYMBOL	 vmlinux 0x5cc8f66a	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x5cde0cff	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d2ba959	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0x5d3bd09b	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x5d3c5f1b	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x5d3cee3c	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x5d3d047d	dfltcc_can_deflate
+EXPORT_SYMBOL	 vmlinux 0x5d428384	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d4d9f07	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x5d679eb2	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x5d720dff	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x5d7dee6b	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0x5d830297	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5d86bb5c	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x5d905b1d	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x5da27f56	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x5db2e790	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x5db747b3	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x5dc6e67f	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x5dd3cedf	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x5dd672a4	iput
+EXPORT_SYMBOL	 vmlinux 0x5deced07	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x5df5bbb8	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x5df756d7	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5df7b983	kset_register
+EXPORT_SYMBOL	 vmlinux 0x5e178120	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x5e1bc1ec	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x5e1e366e	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x5e20d0e0	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0x5e21cb82	ap_send
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e5b2388	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e66518f	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e85ea61	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x5e86171d	raw3270_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x5e9320e9	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5e9eedfd	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5eb3fd06	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x5ebd7a79	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x5ec2b1e0	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x5ecd1530	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x5ecf9bc4	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x5ecfeec6	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f31fbf2	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x5f39df48	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x5f49d94f	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x5f57b142	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x5f7ab32f	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x5f7e6975	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5f86580f	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x5f88f9b4	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x5f98bdb6	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x5fb1c8d7	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x5fcf9df8	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x5fd00ae4	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x5fd2298e	strnstr
+EXPORT_SYMBOL	 vmlinux 0x5fda0adb	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x5fdc145b	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x5fdcc12a	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x5fdd0474	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6043cd50	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x60524a69	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x60644ffb	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x608287b7	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x608d249b	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60b5c8dd	register_external_irq
+EXPORT_SYMBOL	 vmlinux 0x60c6714c	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x60d8e539	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x6101ed65	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x612ebd5f	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x6149508d	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x6152aabe	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x615fb61a	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x6165e263	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x616ca60a	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x617853a8	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x617c1d60	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x61a88d7e	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x61b10919	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c56f25	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x61ddcfe4	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61f2be2c	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x61f2c569	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x6216a96e	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x624b79f3	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x624c45c1	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0x625e0992	__put_page
+EXPORT_SYMBOL	 vmlinux 0x62643c40	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x626c9a91	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627f576f	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62872da2	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x628edd82	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x62a25500	igrab
+EXPORT_SYMBOL	 vmlinux 0x62a49ef0	single_open
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62da0bdc	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x62ff270b	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x6310882b	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x6312cb2b	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x631c75fe	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x634b9621	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x634bf7e4	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x636b7758	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x636f51cc	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x6371e098	cio_irb
+EXPORT_SYMBOL	 vmlinux 0x63a080b0	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63aa2558	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x63b6293b	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x63bb5aa4	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c5af4c	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63f67aa7	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x6427b97c	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x649a3a36	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64ab5c4e	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x64b639a3	__tracepoint_s390_cio_hsch
+EXPORT_SYMBOL	 vmlinux 0x64beccc3	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x64c3ff9c	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x64cb813e	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x64d5111c	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x64d65a62	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x64fd6b6e	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x65027cdb	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x6518b2b3	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x6543531a	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x6545df95	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x6548f302	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x656ba04b	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x6577f1d0	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a24afb	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x65b46f72	ap_queue_init_reply
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x66048839	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x660e8853	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x66141f7e	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x6642d348	complete
+EXPORT_SYMBOL	 vmlinux 0x66431539	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x664b0317	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x66616a6f	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6670424b	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x667275f6	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x66975bba	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x66b72659	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x66b98575	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x66c00ca8	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x66d3a2f1	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x66da7c40	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66e48fa9	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x66e69897	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x66e89a38	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x670b1d01	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x672144bd	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6721e5a4	down_killable
+EXPORT_SYMBOL	 vmlinux 0x6721f029	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x672b1d6b	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x67365299	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x67433b69	inet6_register_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0x67496d7f	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x675b4221	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x6764da8a	raw3270_request_set_data
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x678c62eb	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67b8aeaf	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x67ea00f3	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x67ebd379	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x67f2afeb	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x67f7ddb3	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x6822903c	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x6833d8bb	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x6837c6a7	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x6859dae9	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x686bcf63	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x687173de	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x68896a7a	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x6893b4d6	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68b50dbb	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x68e485cd	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x68fb05e6	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x68fe9e66	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x69097457	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x690b4087	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x691d6e68	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x691fccc5	input_event
+EXPORT_SYMBOL	 vmlinux 0x69227401	dfltcc_reset
+EXPORT_SYMBOL	 vmlinux 0x69346b6d	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x693973f0	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x6957143a	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6976daec	down_write
+EXPORT_SYMBOL	 vmlinux 0x69aa67ef	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x69ac3da9	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69cf77c8	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x69d85c34	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x6a021805	eth_header
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a1f9352	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x6a2fc3b5	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x6a37c9ea	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x6a44f849	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x6a53aa89	debug_raw_view
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a86596c	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6ab928a9	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x6b12e4f3	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x6b17ea1d	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b5472c5	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b64424e	ccw_device_set_online
+EXPORT_SYMBOL	 vmlinux 0x6b6ebc8c	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x6b70061c	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x6b78a8ff	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b96d548	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x6b970afd	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x6ba72639	ccw_device_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x6bac671b	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x6baca297	__tracepoint_s390_cio_chsc
+EXPORT_SYMBOL	 vmlinux 0x6bb9472b	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x6bc1854a	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bc62777	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x6bcce775	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x6bdf6ba2	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x6bfe1653	iucv_message_receive
+EXPORT_SYMBOL	 vmlinux 0x6c0b7966	key_move
+EXPORT_SYMBOL	 vmlinux 0x6c0cf3a1	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c2ad158	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x6c60994e	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c62cb43	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x6c910e74	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x6c951d69	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cb651b9	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x6cc710ff	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cf971fc	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d08aebc	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x6d1ea6ec	strlcat
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d2a47ad	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d3be6f1	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x6d4581bb	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x6d5bf96f	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x6d619762	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x6d630bc3	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x6d6d845f	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x6d85cceb	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x6dab0254	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x6daea280	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x6db4bd25	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x6dc4acc0	drop_super
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6ddd5a3b	key_link
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e007ffc	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x6e00b8cb	_ebcasc
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e2e5f6d	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x6e33a256	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x6e3c3d90	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6e4a35ec	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x6e4cd9d8	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x6e5d7523	module_put
+EXPORT_SYMBOL	 vmlinux 0x6e63ebf0	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e7def9c	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x6e9ad290	cpu_have_feature
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ebf33c6	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x6ecee431	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee1aea5	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x6ee7187e	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x6eeca1e4	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x6ef84303	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x6efdf2d4	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x6f0d5e7d	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x6f0fccde	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x6f18b0e3	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6f252705	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x6f365e44	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0x6f4cfe2f	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x6f5ef93d	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x6f62d90c	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x6f689943	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x6f70379b	debug_register_view
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f8420a3	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x6f96b273	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x6fa5f671	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fc2745c	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x6fc30de5	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x6fd9c35a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fe9c350	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x702f4acf	udp_table
+EXPORT_SYMBOL	 vmlinux 0x7039920c	ccw_device_tm_start_key
+EXPORT_SYMBOL	 vmlinux 0x7048903f	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x705bbe2c	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x70773f74	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x7088880f	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x708d53ce	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x709a5d89	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x70d5ed93	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x70f51dc7	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x70fbf15e	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x710d43bc	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x711c5d79	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x7120f9bd	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x712135d6	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x71223ca0	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x7145aef0	segment_load
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7153b397	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717823be	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x717da3b9	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71aa5605	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x71ab3724	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x71b2f622	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x71bcf9d9	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x71c8b80c	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x71d630cd	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x71df609c	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x7211f614	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x7217cdc6	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x723b87d6	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x7242e96d	strnchr
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72587f47	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x7264e473	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x7268bff8	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x726b4a66	get_guest_storage_key
+EXPORT_SYMBOL	 vmlinux 0x726de0d3	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x726e1fc8	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x728fab54	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x7293798e	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x72a28132	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72ccd13f	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x72cd6d7c	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x72e449ea	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f02478	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0x730b096c	ap_apqn_in_matrix_owned_by_def_drv
+EXPORT_SYMBOL	 vmlinux 0x73359b7c	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x7361d81e	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x737169a7	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x7378b217	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73869f30	__tracepoint_s390_cio_ssch
+EXPORT_SYMBOL	 vmlinux 0x7389706a	__memset16
+EXPORT_SYMBOL	 vmlinux 0x738e011d	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x7397bae0	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x73bf20c6	_ascebc
+EXPORT_SYMBOL	 vmlinux 0x73c5f24a	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x73c74046	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x73dbbd3b	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x73e25d05	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x73e84423	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x73f7dc44	pudp_xchg_direct
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741f70a9	debug_stop_all
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742ffb37	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x7441b0e3	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x7445d2c4	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x746aa4b1	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x7470b01a	tsb_init
+EXPORT_SYMBOL	 vmlinux 0x747cd04f	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x7481b148	refcount_add_checked
+EXPORT_SYMBOL	 vmlinux 0x74b1581f	ccw_device_set_options_mask
+EXPORT_SYMBOL	 vmlinux 0x74b3ccb7	ap_cancel_message
+EXPORT_SYMBOL	 vmlinux 0x74b6728d	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x74bc8be3	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74d43ee7	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x74dee278	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f99bee	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x74fec098	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x751a43b2	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x751a910b	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x75277c77	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x752ee733	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x7531cb1b	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x753c68ed	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x756e7e96	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x757bfd80	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x75807ab5	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x759a0416	__memset64
+EXPORT_SYMBOL	 vmlinux 0x759a9f2d	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x75ac0197	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x75afa606	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x75b9cf29	hsch
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75be48e1	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x75cebe05	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75e8c930	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x75fcdd6f	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x75fe7cc1	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x760407ee	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x760a3eca	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x764b9f23	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x765c7cb3	sclp
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x7671e001	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0x7673b437	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x7683fff2	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76a0134c	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x76bfc39d	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76e74200	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x77247c5e	ap_bus_force_rescan
+EXPORT_SYMBOL	 vmlinux 0x773428e3	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773fe0c6	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c24aeb	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x77d019fb	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x77d54120	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77ef597d	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x77f4b90b	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x77fc9d40	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x7817c595	raw3270_request_alloc
+EXPORT_SYMBOL	 vmlinux 0x7819aea9	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x781f32af	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x782acba5	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0x782e6245	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x7831b64a	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x7840ca97	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x78454267	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x786c9006	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x78700942	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x78966d86	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x78968d35	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a0e487	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78ad1194	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x78ad1973	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x78bbd57d	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x78bd3a6d	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x78cc49a6	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x78cdee66	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x78deaa88	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78ed7423	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x792d7f0f	down
+EXPORT_SYMBOL	 vmlinux 0x7943e4df	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x7944ebf1	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x794d101c	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x7983bfca	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x798f0a75	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x79c525d2	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x79f21563	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x79f6ebdd	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x79f80bc4	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x79fb8f7c	seg6_hmac_net_init
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a10486c	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a5d9a71	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7a7d60e6	iucv_register
+EXPORT_SYMBOL	 vmlinux 0x7a808e9d	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a96aa63	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ac4b8a5	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x7ac7401c	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ae8640e	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x7af54d7e	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x7afa92a3	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b09529c	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x7b0d59be	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x7b50d073	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x7b5a7137	strncat
+EXPORT_SYMBOL	 vmlinux 0x7b5ace4c	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x7b670068	pgste_perform_essa
+EXPORT_SYMBOL	 vmlinux 0x7b682ea7	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x7b98190b	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x7ba2389a	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x7ba56468	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x7baa7fd8	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x7bac584c	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x7bbabc84	__hsiphash_aligned
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd1050	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x7bbe6815	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x7bd17bf5	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x7bd68dcf	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x7bd7dfd0	ap_test_config_usage_domain
+EXPORT_SYMBOL	 vmlinux 0x7bdf6734	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x7beb0e5c	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x7bfea7eb	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x7c1276a3	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c3819d7	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x7c51c78f	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x7c5d4a3a	sclp_reactivate
+EXPORT_SYMBOL	 vmlinux 0x7c704a7a	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x7c88a4f6	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x7c8d26a2	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x7c9598c7	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x7c99b573	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cbb7005	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0x7ccfdb4c	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x7cd587cd	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce50b91	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d095f3e	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d0dd90b	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x7d23c79c	pci_iomap_wc
+EXPORT_SYMBOL	 vmlinux 0x7d447c05	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d690ffa	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7ddf125f	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df658c8	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x7df9569d	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x7df975f0	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x7e0027e0	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x7e15ffed	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x7e1e0738	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x7e28f0ff	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e493760	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x7e61f63b	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x7e6ce567	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x7e821ba1	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x7e83b234	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x7e9f166d	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x7eada699	zpci_report_error
+EXPORT_SYMBOL	 vmlinux 0x7eb055da	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x7ebc9bd0	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x7ec15e53	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x7ec169e7	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x7ec72ff4	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x7ecd1765	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x7ed0fd8b	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x7ed433af	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x7ed9acda	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x7eef81ba	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x7ef784f2	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7eff6ad7	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f1ab272	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f2f073d	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x7f48d456	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x7f515128	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f543a10	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x7f55a693	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x7f57770b	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7fa78f2d	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x7fabd6ee	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x7fb0563e	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x7fb232c0	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x7fb3a5d4	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x7fc76f0f	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe8db70	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x7ff2039d	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x801100d2	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x80187302	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x801fbe92	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x8030252d	dev_warn_hash
+EXPORT_SYMBOL	 vmlinux 0x80318b30	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x804a4f14	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x805485ab	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x8069dac1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x806f2c92	tcw_set_tccb
+EXPORT_SYMBOL	 vmlinux 0x807c0008	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x80c4e999	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80cf5ff3	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80d7f717	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8124c871	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x8128c039	smsg_register_callback
+EXPORT_SYMBOL	 vmlinux 0x812f78eb	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x8131eb28	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x81502ab0	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x81647042	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x816fd0aa	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81844c9d	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x81894050	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x81d54f3b	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e21b25	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x8217143c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x821cfdd2	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x821d1c46	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x82255f40	add_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x823715a1	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x82667988	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x829b3252	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x82a73295	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x82c2f005	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x82c42d85	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07161	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x82d38bac	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x82f2194e	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x830f76ee	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x83294bb0	del_random_ready_callback
+EXPORT_SYMBOL	 vmlinux 0x832dbb6e	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x832edd5e	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x835287d0	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x835a8e2c	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x8377fbbd	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x83852b94	debug_event_common
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x839e2ef7	nla_put
+EXPORT_SYMBOL	 vmlinux 0x83a0feb7	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x83b3e743	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x83c52fba	xfrm4_protocol_init
+EXPORT_SYMBOL	 vmlinux 0x83c8fcb5	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x83d62c4a	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x83e1438d	raw3270_request_reset
+EXPORT_SYMBOL	 vmlinux 0x83e2eae7	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x83f48169	ccw_device_start_timeout
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x8403bcc9	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x842997b1	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x843efed0	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x8444c200	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x84556b28	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x847bf357	ap_perms_mutex
+EXPORT_SYMBOL	 vmlinux 0x84822f91	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x848d22b6	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x84c18f4f	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x84c66a4d	__tracepoint_s390_diagnose
+EXPORT_SYMBOL	 vmlinux 0x84cf56da	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x84d4c8cc	crc16
+EXPORT_SYMBOL	 vmlinux 0x84d5f6ea	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x84ec562d	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x84f2ad8f	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x8516c14a	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x852a32a7	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x854ac306	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x8550f39d	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85575470	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x856e6cb6	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x8572755a	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x858bae0e	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x858f1cc4	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x859977ee	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x85a3026f	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0x85aa4b30	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x85abc85f	strncmp
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85d01d97	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x85d14264	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x85d3f0df	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fb77d8	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x85fc7a31	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x85fdbe50	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x860d8e82	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x860da6db	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x86237388	arch_read_lock_wait
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x866ccab3	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x86727fe3	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x86749ee3	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x86838a09	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x8689d3f6	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86a08dc4	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x86a8707d	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x86b25ff7	raw3270_request_set_idal
+EXPORT_SYMBOL	 vmlinux 0x86c08f47	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fbce61	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0x870bab9e	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x8722f6cc	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x872762af	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x8727a016	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x87319827	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x874d06de	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x87a5c510	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x87a792ea	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87d3ba75	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x8810534d	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x882fe1fb	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x8833bc7e	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x885f859b	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x886b1e51	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0x88702772	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8891a67e	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x889d2300	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x88b9048c	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x88c5abef	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x88cc5c06	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x88cd9781	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x88d25df6	nvm_submit_io_sync
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88e24eb8	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x893d5945	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x895f47e2	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x89621b96	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0x896290b5	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x89693431	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x89a66eb1	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89bca67f	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x89bf93b1	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x89e1cb79	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x8a1a3de8	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1ef285	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x8a581e42	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x8a599c8c	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x8a5d61c2	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x8a6dee86	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x8a756d73	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x8a7963ce	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a8ab153	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa88feb	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8aed2d03	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b0fc94f	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x8b180085	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x8b55fd4f	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b5c4e56	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b7a21a4	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b93a3b1	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x8b983886	padata_free
+EXPORT_SYMBOL	 vmlinux 0x8b9cf379	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bba6090	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x8bd68f12	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x8bd7405c	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x8bdb7a0e	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x8bdc698c	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x8be7fb9a	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x8bed63fc	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x8beeaa06	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x8bf2029b	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x8bf44a0e	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x8c2bf0ef	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x8c3404cf	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x8c3b8408	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x8c405a0b	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x8c5fb6e2	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x8c63f053	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x8c6592fc	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8c72cb6b	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x8c793ec2	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x8c875be0	tcw_init
+EXPORT_SYMBOL	 vmlinux 0x8cb062a8	iucv_message_reply
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cb85035	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x8cbaa9b8	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x8cfdfc2c	raw_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x8d4b179e	ccw_device_get_ciw
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d59e77a	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x8d67ba5a	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d97ee6c	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x8d9b2333	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x8daae9c9	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x8dcd5ac2	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8deab1bd	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x8df2b0b6	follow_up
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfef6d3	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x8e015c19	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x8e08d85e	finish_open
+EXPORT_SYMBOL	 vmlinux 0x8e281574	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x8e2d39c6	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x8e2e1301	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x8e2e4160	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x8e430f59	inet_release
+EXPORT_SYMBOL	 vmlinux 0x8e49fd79	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x8e51f83f	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x8e55536d	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x8e617e48	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x8e806d71	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x8e8e36e1	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x8e9eab61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x8eaa7dec	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x8ebfafe8	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x8ec7f250	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x8ed30e9c	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x8eec3627	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x8efed0f6	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x8f0963ac	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x8f4f1ae0	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x8f636d23	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x8f69e3ce	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0x8f75aacc	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x8f78f1d6	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x8f813c97	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x8f903f56	skb_put
+EXPORT_SYMBOL	 vmlinux 0x8f96fdf4	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fa55c9e	dns_query
+EXPORT_SYMBOL	 vmlinux 0x8fb5954b	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x8fb6632c	register_key_type
+EXPORT_SYMBOL	 vmlinux 0x8fb8a6ee	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fc92a27	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x8fe5f40d	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ffcf6b0	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x90113d06	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x9058b2fa	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x906f14dd	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x90909d0e	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x90921cb2	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x90a89ca4	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x90bd4517	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x90c45678	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x90c6f24b	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x90efa0ee	find_vma
+EXPORT_SYMBOL	 vmlinux 0x90f9cef0	sk_free
+EXPORT_SYMBOL	 vmlinux 0x910c7a0c	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x9116b417	save_fpu_regs
+EXPORT_SYMBOL	 vmlinux 0x912112a5	filp_close
+EXPORT_SYMBOL	 vmlinux 0x912baff4	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x912f338e	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x91302415	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x914c2635	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x917cf514	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x919c43c7	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91c00dea	raw3270_del_view
+EXPORT_SYMBOL	 vmlinux 0x91de049d	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x91ef5c5c	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0x91ef8243	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x920325dc	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x92043826	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x9206e02b	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x920d02c1	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x920f1a64	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x92146a43	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x922a1127	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x924a79fd	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x924d06e2	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x925a2b86	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x925cf351	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x926192a4	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x92630a62	put_disk
+EXPORT_SYMBOL	 vmlinux 0x929124ef	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x92a53abe	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x92ca8bdc	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x92d2a754	get_acl
+EXPORT_SYMBOL	 vmlinux 0x92d6ea76	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x92dbff21	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x930319ce	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x930baf5b	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x930d681b	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x930e6e62	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x9316d7ca	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x932badf2	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x932c2539	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x93414635	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x93515a7a	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x9355ab1f	__brelse
+EXPORT_SYMBOL	 vmlinux 0x93570987	ccw_device_start_key
+EXPORT_SYMBOL	 vmlinux 0x9362c939	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x937a3c5e	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x938d1f5e	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x938f8073	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93bfb7bd	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x93c18a06	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x93c81596	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x93ce4902	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x93f3f2d8	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x940ee4d6	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x9418324a	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x9422002c	dev_open
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x942f4c5c	iucv_message_reject
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x945775a5	segment_save
+EXPORT_SYMBOL	 vmlinux 0x945fb9dd	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x949d07ad	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x94afc67b	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x94b01062	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x94bc22b9	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94f31333	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x9503b031	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x950c6060	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x9514151a	_mcount
+EXPORT_SYMBOL	 vmlinux 0x951a2dfe	iucv_path_accept
+EXPORT_SYMBOL	 vmlinux 0x95246437	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x95253195	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x953436df	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x953adc3b	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x9542faf7	sclp_unregister
+EXPORT_SYMBOL	 vmlinux 0x9543ede2	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x9575385e	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x95788394	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x957b1fb6	refcount_inc_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0x95814a2b	dst_init
+EXPORT_SYMBOL	 vmlinux 0x9581ea62	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0x95a06eb1	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x95b38ccc	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x95ceb864	key_update
+EXPORT_SYMBOL	 vmlinux 0x95da875e	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x95e63ced	prot_virt_host
+EXPORT_SYMBOL	 vmlinux 0x95e99781	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x95faf274	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0x961d2d50	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x9624e44c	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x9630ee49	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x96404e39	itcw_set_data
+EXPORT_SYMBOL	 vmlinux 0x96614631	debug_unregister_view
+EXPORT_SYMBOL	 vmlinux 0x9669ecc8	monotonic_clock
+EXPORT_SYMBOL	 vmlinux 0x96749f20	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96e69f42	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x96ece4ae	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x97159a1d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x97159ed8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x9715aff4	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x972f5e6d	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x97324eef	debug_hex_ascii_view
+EXPORT_SYMBOL	 vmlinux 0x9745492c	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x974594c1	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x974d0924	__kernel_cpumcf_begin
+EXPORT_SYMBOL	 vmlinux 0x97589068	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x9769269b	ccw_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x97801ba5	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x978ba73f	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97d055d8	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x97ea3003	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x98080228	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x980b733b	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0x9829ea0c	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x9837923b	read_code
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x98616c05	single_release
+EXPORT_SYMBOL	 vmlinux 0x9872f17a	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x987b2cb2	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x9885f134	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x9896333c	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x98c514c8	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x98c57a3f	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98d15654	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x98de1c15	snprintf
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98ebca68	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x98f01ec7	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x98f2df60	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x9942ec77	itcw_finalize
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x99598321	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x995fb6d6	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x996847b6	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x999eb2c5	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x99af5792	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x99be5813	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99dc9bb4	proc_create
+EXPORT_SYMBOL	 vmlinux 0x99f49fa2	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x99f5e056	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x9a0a0c04	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x9a0d089b	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x9a0d77c0	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1f234f	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a4400da	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x9a4d89bb	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x9a50b443	register_console
+EXPORT_SYMBOL	 vmlinux 0x9a5803a5	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a5b0b01	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x9a684494	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x9a6abb70	follow_down
+EXPORT_SYMBOL	 vmlinux 0x9a74caa7	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x9a776dff	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x9a906daf	memscan
+EXPORT_SYMBOL	 vmlinux 0x9aa168b1	bio_init
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab6c6bb	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x9abad5c8	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x9abf90ee	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x9ac536dc	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x9aeeaebf	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x9afc4d31	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x9b14924b	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b51c5a8	refcount_sub_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0x9b64d101	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x9b7d4ace	pmdp_xchg_lazy
+EXPORT_SYMBOL	 vmlinux 0x9b8d07aa	strnlen
+EXPORT_SYMBOL	 vmlinux 0x9ba69c77	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x9bad7835	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x9bc40d46	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x9bc62df2	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x9bc8d827	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x9bcbf24c	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x9bd8bbfb	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x9bfc35d7	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x9bfd1b77	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x9bffb161	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x9c0821ea	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9c23aa02	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x9c2cde2a	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x9c5162ca	misc_register
+EXPORT_SYMBOL	 vmlinux 0x9c6277dd	ipv6_mc_check_icmpv6
+EXPORT_SYMBOL	 vmlinux 0x9c7062be	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x9c794bd5	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x9c7959bb	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x9c7ecab4	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x9c8fabad	raw3270_request_free
+EXPORT_SYMBOL	 vmlinux 0x9ca045a0	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x9ca3805e	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x9ca95a0e	sort
+EXPORT_SYMBOL	 vmlinux 0x9ccfea58	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x9cd171f3	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x9cd37800	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x9cdb5ead	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce4119a	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x9cec6f19	pmdp_xchg_direct
+EXPORT_SYMBOL	 vmlinux 0x9cf6ba74	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x9cfa407f	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d1b5829	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x9d2d7863	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x9d509dca	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x9d581273	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x9d59a0c0	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x9d6d75d7	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x9d7af127	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x9d7e9c31	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x9d802804	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x9d85b3be	tty_name
+EXPORT_SYMBOL	 vmlinux 0x9d8823d2	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x9d98f806	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9de983dc	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x9df185c7	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x9df81db4	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e267e03	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x9e3566a6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x9e3f7be1	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x9e3ff2d5	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e69f0d0	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0x9e805ffc	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x9e85c5b0	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea45a43	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x9ea726f7	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x9eb5b6d2	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed8133a	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x9eda2b1f	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x9ee5ed10	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x9ef4f432	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x9efa02fe	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x9efdcba8	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x9f028b68	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x9f047e1f	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9f1faf0d	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f5d9393	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x9f616630	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fa75f2f	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x9fa874c0	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fcb9266	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x9fcd73dd	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe2c9ac	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa010f38a	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xa0176b75	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xa03e0f7b	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa04f736b	simple_link
+EXPORT_SYMBOL	 vmlinux 0xa054e8ed	iucv_unregister
+EXPORT_SYMBOL	 vmlinux 0xa05d9d53	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa0902249	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa09f6ef8	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xa0a15b49	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0d23a3b	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xa0d3d560	ksize
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f24a11	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10a0439	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xa10d7d34	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa126c93f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xa127d1bf	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0xa1331d5f	notify_change
+EXPORT_SYMBOL	 vmlinux 0xa13c9739	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xa15959dd	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xa164de44	iget_failed
+EXPORT_SYMBOL	 vmlinux 0xa16853a5	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xa1769d56	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0xa197a124	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xa1a8cc6c	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xa1aa84e1	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d5979b	find_first_bit_inv
+EXPORT_SYMBOL	 vmlinux 0xa1e32a65	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0xa1ec8f1c	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa1f4e674	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xa1fee353	tcw_set_tsb
+EXPORT_SYMBOL	 vmlinux 0xa2032ac9	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa2104514	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xa23bbedd	kobject_del
+EXPORT_SYMBOL	 vmlinux 0xa23fb8dd	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0xa2407e0b	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xa2442c4f	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa2578b73	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa267c7e4	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2a47f36	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xa2e24dcc	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xa2fc75e7	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xa303ddda	bdi_register
+EXPORT_SYMBOL	 vmlinux 0xa307438b	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xa31f314b	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xa33b3ed3	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0xa33ee89f	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xa33f7c7c	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0xa34c1c83	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0xa351fc33	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xa352aca5	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xa362bd4e	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xa366a2f2	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xa37959d0	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0xa395433e	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xa3a5be95	memmove
+EXPORT_SYMBOL	 vmlinux 0xa3aacd08	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0xa3ab758b	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0xa3acf85d	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0xa3cef987	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xa3d6cd55	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0xa3dca3f9	tcp_enter_quickack_mode
+EXPORT_SYMBOL	 vmlinux 0xa3ee689a	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0xa3f83a13	reset_guest_reference_bit
+EXPORT_SYMBOL	 vmlinux 0xa3fb691f	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0xa4051bf6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xa4060697	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xa416c8e9	arch_write_lock_wait
+EXPORT_SYMBOL	 vmlinux 0xa42af456	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0xa43a3bf9	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xa44b520a	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0xa44bb9c2	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xa476ee6b	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xa4799d81	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xa4a94d26	find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0xa4b24e7f	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xa4c13a10	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xa4e188e7	strscpy
+EXPORT_SYMBOL	 vmlinux 0xa50483fe	__ksize
+EXPORT_SYMBOL	 vmlinux 0xa52015cd	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa52ae5a8	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa564cff3	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xa56bc0f7	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0xa59158b0	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa5aebe01	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xa5ce9ed0	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xa5fd68e5	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa621d9bb	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xa630f02c	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0xa63e1999	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xa6408781	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xa64a0baf	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xa64ffdd7	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0xa657b2db	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0xa65d3ce2	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xa66708f8	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xa66d3b62	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0xa67d207c	nvm_dev_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa6871c91	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0xa6986d98	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0xa69dd27c	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0xa69e279c	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa6aa3634	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0xa6b996e1	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xa6c9e8aa	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0xa6d4330e	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xa6d582a2	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xa6fe3f6f	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0xa70910f5	utf8len
+EXPORT_SYMBOL	 vmlinux 0xa70cc65c	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xa70ea6d7	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa7113023	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xa725d706	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa76158b7	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xa7666f3e	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0xa7721ae0	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xa7787f47	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa790a42e	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0xa79cffea	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xa7a9cfe0	iucv_message_send2way
+EXPORT_SYMBOL	 vmlinux 0xa7cdbdf2	down_read
+EXPORT_SYMBOL	 vmlinux 0xa7e124c2	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7fd1611	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xa8223179	refcount_dec_checked
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84a8b52	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa8c58830	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xa8e77e7f	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xa8e95a7c	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa92714db	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xa93327e2	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xa949fe6f	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0xa96399e4	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa98e0dfa	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xa991c6a4	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0xa9b1dc6c	down_timeout
+EXPORT_SYMBOL	 vmlinux 0xa9d88f38	key_validate
+EXPORT_SYMBOL	 vmlinux 0xa9d9daa2	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xa9fc5cad	kbd_keycode
+EXPORT_SYMBOL	 vmlinux 0xaa16939f	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xaa1e246a	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0xaa24a71a	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xaa260774	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0xaa5db327	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xaa6806e2	ap_queue_suspend
+EXPORT_SYMBOL	 vmlinux 0xaa6d879b	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab067939	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xab22c6a3	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0xab30aadc	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab39c66e	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xab3bb343	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0xab499672	mr_dump
+EXPORT_SYMBOL	 vmlinux 0xab53a5fa	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab8cfef1	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xab93c86f	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0xab93fac9	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xab9e2f4b	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xaba573f2	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabb5ad13	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0xabb96449	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xabe1431b	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xabe161df	set_pgste_bits
+EXPORT_SYMBOL	 vmlinux 0xabec3a1e	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabffdcf9	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xac154e83	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2bb90c	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac393d28	override_creds
+EXPORT_SYMBOL	 vmlinux 0xac40603a	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xac56b6d3	__tracepoint_s390_cio_msch
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac73b50b	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xac7fd99f	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xac8597d5	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac966a4e	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0xac96fe26	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xaca8cf8f	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb020ce	node_states
+EXPORT_SYMBOL	 vmlinux 0xacb13e61	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacc8a450	dev_notice_hash
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xace2255d	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xace35527	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacf72eac	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0e845a	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xad28b836	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xad4aee39	strncpy
+EXPORT_SYMBOL	 vmlinux 0xad5592ba	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0xad5b72bd	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xad611413	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xad6fc3a3	debug_dflt_header_fn
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad81ced2	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad923bbb	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xad995dac	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0xad9c121f	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xadb1ff4c	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0xadb615ae	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xadba07d8	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xadd84b69	ccw_device_tm_intrg
+EXPORT_SYMBOL	 vmlinux 0xade1e91e	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0xadeeab94	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xadf6a39b	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae319efc	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0xae39b1c2	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xae58ce22	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0xae695cd1	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xae876d03	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xaeba38f2	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xaecc3777	_dev_info_hash
+EXPORT_SYMBOL	 vmlinux 0xaedc9bad	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xaee9590c	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xaef79aa6	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xaf00e884	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xaf155b28	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xaf207d2d	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0xaf264016	sock_release
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf73acda	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0xafa375ab	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xafa7eb0b	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xafcce2e5	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xafd3ca2d	airq_iv_create
+EXPORT_SYMBOL	 vmlinux 0xafe2ab90	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xafe7b013	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xafe82e10	strcspn
+EXPORT_SYMBOL	 vmlinux 0xafec09c0	disable_sacf_uaccess
+EXPORT_SYMBOL	 vmlinux 0xaff619c4	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xb0013e93	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb00d5392	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xb016493d	arch_spin_relax
+EXPORT_SYMBOL	 vmlinux 0xb019012c	bio_chain
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb01cd252	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb063ee32	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0xb06f7310	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb0a5e059	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xb0a98dd8	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0xb0b9de7e	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xb0c347bd	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xb0cc6636	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xb0d8af89	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0eda7e7	iucv_path_sever
+EXPORT_SYMBOL	 vmlinux 0xb10ccc20	request_firmware
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb111dfba	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xb117c3a8	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb1203bb8	ap_perms
+EXPORT_SYMBOL	 vmlinux 0xb128ea21	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb160d7de	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb174ca2a	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xb176c6e9	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xb1a93662	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xb1af6070	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0xb1b8f0bc	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1d7a8da	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e40139	ccw_device_is_pathgroup
+EXPORT_SYMBOL	 vmlinux 0xb2001747	unlock_page
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb290f92e	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0xb2927920	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xb293c18f	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb299eb29	refcount_add_not_zero_checked
+EXPORT_SYMBOL	 vmlinux 0xb2ae5ea7	nla_append
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b0d772	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0xb2c906f8	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xb2cdd966	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0xb2dc73fa	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xb2f4e91e	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xb2f9fb9b	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xb2fafd17	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb31021e6	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32f732d	iget_locked
+EXPORT_SYMBOL	 vmlinux 0xb33bf203	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xb3519718	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb363e327	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb38f3b49	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0xb3b528c9	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xb3bac9f5	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0xb3c0bbd1	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xb3c717b6	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xb3d0b5c3	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb3f99e74	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xb3ff1f69	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xb400d788	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xb4034fdf	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xb408061b	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0xb41f1ab2	ap_queue_message
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb43444b1	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xb43d7fb8	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xb4452664	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xb4503056	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xb46ae3c2	sie64a
+EXPORT_SYMBOL	 vmlinux 0xb47abb17	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xb4847068	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4c23c59	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xb4c3cb1e	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xb4cf1366	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0xb4d4da50	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0xb4d93705	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xb4ddb051	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xb4e5c620	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xb4e7a440	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb50cc9cb	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xb518556e	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0xb5229561	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xb525ea1b	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xb534f61f	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xb5365df7	skb_push
+EXPORT_SYMBOL	 vmlinux 0xb540fbbc	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xb55789ae	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb594c4c8	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5afd7d6	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xb5b338df	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xb5c1007e	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xb5d00393	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5e885a3	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xb5efa580	bmap
+EXPORT_SYMBOL	 vmlinux 0xb605e1c7	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xb605f408	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0xb61625c0	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xb61f376d	build_skb
+EXPORT_SYMBOL	 vmlinux 0xb62b74af	refcount_dec_and_test_checked
+EXPORT_SYMBOL	 vmlinux 0xb63311b6	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb63dfe83	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67d7a1c	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb685de0b	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6bcdaa5	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xb6c2d237	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0xb6d51c20	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xb6da8a1e	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xb6e371cb	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0xb6f06989	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0xb6f6a3e4	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xb6f95958	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xb6fbeefe	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb711b4f5	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xb72b831a	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0xb733b38b	dev_crit_hash
+EXPORT_SYMBOL	 vmlinux 0xb7340bc5	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xb757eec2	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xb764652f	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0xb77e1bdf	skb_split
+EXPORT_SYMBOL	 vmlinux 0xb784167e	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xb788acee	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb799f0b4	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xb7b1bddd	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xb7b507ea	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7cb0e81	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0xb7e5461b	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xb7ee2a2c	diag26c
+EXPORT_SYMBOL	 vmlinux 0xb83c8dfb	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xb84b7ae1	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xb852f785	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0xb854ba44	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0xb8721e87	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xb87d925b	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xb889a9ec	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xb88e4858	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a68bf9	fs_parse
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8e232be	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xb8e77856	ilookup
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb906c8e0	iucv_bus
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb915ceca	itcw_init
+EXPORT_SYMBOL	 vmlinux 0xb9206675	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xb928aa45	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xb9303ab5	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb9550e43	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xb95a01f4	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xb9647893	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xb9b3017d	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0xb9bc8d13	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xb9c0b054	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xb9ce367f	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xb9db405c	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0xb9df5c0d	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xba0b0ecc	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0xba17f7b8	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xba32d33f	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba6cd485	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0xba969527	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xbaa0929e	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xbaa5b812	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xbaac96ce	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0xbaf507c1	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb12f3cb	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb29f4ce	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb657164	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xbb9d0dc5	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xbba6a96e	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xbbc60f84	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xbbe8c47b	seq_release
+EXPORT_SYMBOL	 vmlinux 0xbc0448ab	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xbc3125eb	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xbc3bdc7f	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xbc55e861	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0xbc7bede7	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xbc98f3a4	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xbc9a2dff	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb7eeda	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xbcba1454	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc54a6d	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xbcdba909	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0xbcee5f23	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0xbd109a33	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xbd1e5f37	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xbd22b9e3	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xbd241ec6	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xbd2e8eeb	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xbd30107a	seq_open
+EXPORT_SYMBOL	 vmlinux 0xbd3c1541	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0xbd877d6e	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0xbd935f38	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xbd93aaba	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xbd9a6acc	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xbdaf3d00	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xbdd17de5	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbe028b0a	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xbe10557d	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xbe4592f9	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xbe4d3acc	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe540928	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe8187f9	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xbe85a460	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0xbe89fbf9	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef3bd9a	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef53f33	scnprintf
+EXPORT_SYMBOL	 vmlinux 0xbef563f3	may_umount
+EXPORT_SYMBOL	 vmlinux 0xbf0e01e5	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xbf294219	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0xbf419ff1	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0xbf44b524	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xbf74d34f	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xbf76025a	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xbf8eb66a	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbf9c330e	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xbfc23da6	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0xbfc7f2ee	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xbfcaa18f	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff206a2	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xbffd71e4	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xbffe47e0	ap_driver_register
+EXPORT_SYMBOL	 vmlinux 0xbffe7219	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xc003c637	__strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0xc007e86b	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xc01547c9	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc02bc828	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xc034b555	raw3270_start_irq
+EXPORT_SYMBOL	 vmlinux 0xc0440ee8	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0xc04c082e	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xc06f0724	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0xc07107d2	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xc0756b3e	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc0956051	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a2f815	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b279fd	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xc0c407fb	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xc0e5e4e6	itcw_get_tcw
+EXPORT_SYMBOL	 vmlinux 0xc0f7360f	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0xc0fd237c	xxh32
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc1017449	dm_io
+EXPORT_SYMBOL	 vmlinux 0xc120caa6	diag_stat_inc
+EXPORT_SYMBOL	 vmlinux 0xc125cd72	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xc12e3115	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xc1394dbd	mod_virt_timer_periodic
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc18cf375	module_layout
+EXPORT_SYMBOL	 vmlinux 0xc18d4d96	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xc1a64320	__tracepoint_s390_cio_tsch
+EXPORT_SYMBOL	 vmlinux 0xc1d2a0ab	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc20da1a5	unregister_service_level
+EXPORT_SYMBOL	 vmlinux 0xc212f2ab	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xc2336209	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0xc2380033	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc23c3cd6	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xc27e881c	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xc2862233	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xc294f2ce	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xc2b21b83	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xc2c84ee5	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e9e404	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc3128b80	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0xc3248d4a	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc336a985	dqstats
+EXPORT_SYMBOL	 vmlinux 0xc337b07a	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0xc33c0d95	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xc3415935	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0xc34bd529	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0xc34cffe2	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xc34d11de	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0xc36a66d4	__scm_send
+EXPORT_SYMBOL	 vmlinux 0xc36ac83a	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xc37e4472	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0xc37e5e6f	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0xc3838322	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL	 vmlinux 0xc386f8d7	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc3b23e31	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xc3bddc38	ccw_device_tm_start_timeout_key
+EXPORT_SYMBOL	 vmlinux 0xc3ed95b3	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xc3fc9b83	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xc417afd0	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xc4180389	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xc41f0eff	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42a8967	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0xc44eb4e4	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0xc454681c	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xc45755de	find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xc470c1c6	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xc471ce1a	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc4886a38	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xc48c7e4c	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xc4932b3c	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xc4948efb	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xc49c7a7a	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xc4b9a6f8	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xc4f9c3a4	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xc4fd8560	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xc503eaf7	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0xc5137a23	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xc514cf6b	ccw_device_clear_options
+EXPORT_SYMBOL	 vmlinux 0xc5380766	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xc54dcb0f	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xc5521d50	sclp_register
+EXPORT_SYMBOL	 vmlinux 0xc566965d	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0xc57b41f2	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xc57b8611	diag210
+EXPORT_SYMBOL	 vmlinux 0xc582a47b	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc599ad77	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0xc5ab6aed	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0xc5ad93b8	sie_exit
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5be5147	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xc5d5ee51	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xc5ddf775	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc6080f25	dev_alert_hash
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc610a863	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xc622ea97	stsi
+EXPORT_SYMBOL	 vmlinux 0xc62de109	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc668d84b	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xc66a0314	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xc66d8bf7	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc697ae39	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xc69a518f	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xc6ae4bc6	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xc6b443e8	up
+EXPORT_SYMBOL	 vmlinux 0xc6c24d11	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6d55e7c	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f90e52	ccw_device_get_mdc
+EXPORT_SYMBOL	 vmlinux 0xc6fcc981	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xc7097f75	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0xc739a4d0	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xc748c02d	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xc77e4025	dev_printk
+EXPORT_SYMBOL	 vmlinux 0xc780c483	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc79e4695	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xc7a24d76	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0xc7a446b8	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b0eb72	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xc7b1d02c	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7df6aa1	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xc7f41933	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xc7fe744a	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xc80588c0	open_exec
+EXPORT_SYMBOL	 vmlinux 0xc80b4fc7	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc82c65a5	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc850377d	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0xc8531a8b	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0xc86a6174	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87ade9c	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc8879f6b	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0xc88a8918	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc88ce837	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xc8a64ffe	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8d78283	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xc8d8aa13	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xc8e0ec39	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xc8ec728a	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0xc8ed47a4	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0xc90a3d3f	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xc91d2cae	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0xc91f2c6b	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xc939b9aa	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xc93a6258	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xc947255e	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xc94b9384	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0xc94fdebf	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xc950ca5f	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xc95a4364	debug_sprintf_view
+EXPORT_SYMBOL	 vmlinux 0xc95edf3d	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc964f3f3	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0xc966fc0b	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xc96e3326	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xc96ed6b5	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc97d996c	can_nice
+EXPORT_SYMBOL	 vmlinux 0xc984594c	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0xc9927d6b	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xc9c189ee	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xc9cc3e07	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9f6b55d	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xc9f836f5	sort_r
+EXPORT_SYMBOL	 vmlinux 0xc9fb8500	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca2f9a86	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0xca3bc3de	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca772680	lease_modify
+EXPORT_SYMBOL	 vmlinux 0xca7ba397	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca99f885	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xca9f01c6	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xcab223e7	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0xcabd3e9e	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xcac436e8	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xcac9a327	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xcadca91c	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0xcae3a07a	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xcaeaddeb	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xcaee20d2	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0754a8	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xcb110882	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xcb19b477	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xcb2c69ab	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xcb336531	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xcb34a6e7	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xcb372a21	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb44e3d2	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xcb47c806	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xcb56d1b6	xa_store
+EXPORT_SYMBOL	 vmlinux 0xcb5bde71	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0xcb75166f	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0xcb76560d	ether_setup
+EXPORT_SYMBOL	 vmlinux 0xcb94636c	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbafa99c	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbed9eef	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xcc1ec7be	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xcc26b77c	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xcc2ca453	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc3bb173	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xcc3ed55a	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc611475	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xcc65f84e	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xcca7d78d	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xcca94125	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc4001d	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccec2d1b	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xcced28f8	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0xccf3bfef	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd2fefe6	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0xcd3e9995	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xcd6df2df	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xcd85a9e3	__module_get
+EXPORT_SYMBOL	 vmlinux 0xcdb64b7e	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xcdbbb29f	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xcdbd50f2	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcddd6894	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcdf44e4d	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xcdf4abb7	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0xce0c6c9b	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2ab5e1	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xce2f98ad	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0xce33c1a5	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce54a880	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce5b967d	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0xce64c4a4	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0xce6a4d9c	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xce7384ae	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce842d5c	sock_create
+EXPORT_SYMBOL	 vmlinux 0xce8b41eb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xce972dd2	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xcea3440d	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xcece4b40	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0xced036fe	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xcee35506	bdevname
+EXPORT_SYMBOL	 vmlinux 0xceec8abd	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0xcef5ebab	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0xcef9b1c7	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0xcefe7b08	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf1380a5	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf5f370a	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0xcf6c86ea	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xcf6d283c	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xcf7413a1	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0xcf74bf87	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xcf8bf0ce	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0xcfaedec3	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xcfb010c0	__bforget
+EXPORT_SYMBOL	 vmlinux 0xcfb20994	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xcfb43790	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xcfe0fb03	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xcff0e10e	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xd00d7268	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0xd0124688	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xd01cdf25	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xd02189bd	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0xd024c1e2	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0xd02bf558	get_super
+EXPORT_SYMBOL	 vmlinux 0xd02ed548	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04ac489	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0661fb3	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd06e4839	arch_spin_trylock_retry
+EXPORT_SYMBOL	 vmlinux 0xd08220ef	task_work_add
+EXPORT_SYMBOL	 vmlinux 0xd088cdf4	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xd08c443d	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xd09a91e4	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a5230f	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0c47b98	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd11d8994	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xd129f068	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0xd1470ff7	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xd14be672	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0xd14de9fd	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xd1608339	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xd167ab13	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xd17de455	__kernel_fpu_begin
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd1894210	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xd1953147	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xd19bfb52	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd1b07fae	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xd1b4b419	tcw_get_intrg
+EXPORT_SYMBOL	 vmlinux 0xd1bb881e	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0xd1d318d9	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0xd1d690bd	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xd1d76afb	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1f152ad	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0xd1f7e618	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xd221d7b5	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xd230e57b	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xd2385a2c	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xd23aa1c1	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd288a0b4	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xd29bd708	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0xd2ade0ae	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xd2b251bc	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xd2bb427a	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd3561352	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35dd7f3	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xd365437b	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0xd3679127	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd397b421	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xd3af979c	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xd3da44e9	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f5af4a	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd4077d0f	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xd40f6f36	__jhash_string
+EXPORT_SYMBOL	 vmlinux 0xd41f5402	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xd4285043	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xd42ac32a	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xd448c291	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0xd45dc363	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0xd47a8485	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0xd47d2d7b	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xd48f69c8	tcw_get_tsb
+EXPORT_SYMBOL	 vmlinux 0xd4952cc0	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4b1be89	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4c8c54e	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0xd4db4f2d	get_pgste
+EXPORT_SYMBOL	 vmlinux 0xd4dcafa7	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0xd4e9d05d	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xd4f2c4e8	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xd4f84308	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd5093e12	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52ef956	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd5504f7a	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd55145dd	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0xd55573cf	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xd562f2eb	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xd567e0bf	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xd574df79	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0xd57a959c	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0xd58692c9	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xd5ac023f	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5c4d3f4	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0xd5c6b21c	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xd5ca40f5	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0xd5e90454	ap_domain_index
+EXPORT_SYMBOL	 vmlinux 0xd5f8bc06	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xd5fed28b	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd634632d	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xd666a588	smp_ctl_clear_bit
+EXPORT_SYMBOL	 vmlinux 0xd668e4df	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68a01b8	xa_erase
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd69b3c98	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0xd6c3ef82	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xd6c5fae6	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xd6cd39f1	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6e647dc	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd71a7e9a	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0xd76ab89c	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xd7d045bf	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d7a0e7	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7f768a9	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xd7ff5ef3	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xd801b989	d_path
+EXPORT_SYMBOL	 vmlinux 0xd81621cf	raw3270_deactivate_view
+EXPORT_SYMBOL	 vmlinux 0xd816ccb1	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0xd81af563	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xd820df11	file_path
+EXPORT_SYMBOL	 vmlinux 0xd827fff3	memremap
+EXPORT_SYMBOL	 vmlinux 0xd83849e2	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xd842fefe	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd843dfef	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xd8548b83	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd87953b6	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xd8802c76	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0xd88ab6ea	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8cf03d1	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xd8faa8d6	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0xd8fcda72	cpcmd
+EXPORT_SYMBOL	 vmlinux 0xd90034b7	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xd926e599	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xd933e9fa	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xd94a526d	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0xd94f2531	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xd9510e35	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xd96de8cb	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0xd973b8d0	kernel_write
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9a9e16b	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xd9ae583b	complete_all
+EXPORT_SYMBOL	 vmlinux 0xd9b3f97d	console_devno
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xda0fcbe1	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xda14e436	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xda17bae8	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xda199495	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4ef852	bdget
+EXPORT_SYMBOL	 vmlinux 0xda5214a1	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xda652038	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda7fb918	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xda872864	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdac97957	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xdae162cb	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xdb00a9bc	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xdb2aa97b	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb7afbbc	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0xdb7b9cf1	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0xdb859434	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xdbae11e4	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0xdbb95f83	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xdbba8ace	ccw_device_start_timeout_key
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdc068181	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc1c28f2	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc77d471	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0xdc849b96	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xdc988828	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0xdcbd4bae	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xdcc110b8	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0xdced4138	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xdcf63dfe	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xdd1344cc	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xdd1cdbcb	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd2d917e	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd4bffbf	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xdd4dd1d2	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xdd663815	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xdd6ab0c8	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd92af06	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xddb2cafb	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0xddb8dae8	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xddd0151a	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xddd3b6fe	__put_cred
+EXPORT_SYMBOL	 vmlinux 0xddd3df5e	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xde0bdcff	memset
+EXPORT_SYMBOL	 vmlinux 0xde10e01d	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0xde10f536	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0xde4921c5	current_time
+EXPORT_SYMBOL	 vmlinux 0xde4d4ace	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xde5d72a2	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xde6f22c2	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xde8a415c	xor_block_xc
+EXPORT_SYMBOL	 vmlinux 0xdea47c8f	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xdebe4478	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xdecb5394	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdeda2ae2	tcw_get_data
+EXPORT_SYMBOL	 vmlinux 0xdee1310b	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf0661c8	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0xdf0bdac8	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf39b7bb	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf5a580f	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xdf64eb56	lock_rename
+EXPORT_SYMBOL	 vmlinux 0xdf6ff3f4	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0xdf8ad453	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf98871d	airq_iv_release
+EXPORT_SYMBOL	 vmlinux 0xdfa9acca	smp_cpu_mtid
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfcdb978	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xdfce9cb0	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe9b259	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xdfe9fdfe	sock_register
+EXPORT_SYMBOL	 vmlinux 0xdff15f99	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe00538a4	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xe0241c04	raw3270_activate_view
+EXPORT_SYMBOL	 vmlinux 0xe029d42a	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe0481efb	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0xe0546123	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xe056be75	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xe0709e4f	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xe0735845	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xe07bcada	dev_load
+EXPORT_SYMBOL	 vmlinux 0xe084c37c	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0bc4fb2	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xe0c1115b	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0xe0cd9573	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xe0e4b4e4	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0xe0f1cbba	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0xe0f422c1	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0xe0fc9320	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xe0feaaf6	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0xe104fffc	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe13af26f	sclp_pci_deconfigure
+EXPORT_SYMBOL	 vmlinux 0xe13cc069	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xe144efce	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xe155876d	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0xe15a32d9	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0xe15c9797	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0xe15fd47f	fget
+EXPORT_SYMBOL	 vmlinux 0xe175abce	ptep_xchg_direct
+EXPORT_SYMBOL	 vmlinux 0xe1919ce9	completion_done
+EXPORT_SYMBOL	 vmlinux 0xe1a4f16a	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0xe1ceb195	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e0803c	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xe1e7e40c	rtnl_nla_parse_ifla
+EXPORT_SYMBOL	 vmlinux 0xe2687fd1	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xe2740e56	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0xe28da80b	tccb_add_dcw
+EXPORT_SYMBOL	 vmlinux 0xe28f44aa	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xe29d2d02	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0xe2a8f7c7	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xe2ac2508	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30be315	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xe30c60d6	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe33b66c9	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0xe33d9dd4	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0xe348d14d	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xe351efbc	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xe35fb609	kmemdup
+EXPORT_SYMBOL	 vmlinux 0xe3664531	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xe3d6084a	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xe3d70645	raw3270_request_set_cmd
+EXPORT_SYMBOL	 vmlinux 0xe3e5775a	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe4329092	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0xe437ce71	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xe43d9ab2	slash_name
+EXPORT_SYMBOL	 vmlinux 0xe440aea2	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe46e34cf	ccw_device_get_path_mask
+EXPORT_SYMBOL	 vmlinux 0xe4909f3d	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xe49fc9ad	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xe4a250b6	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xe4d3a9ef	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe5094832	page_table_allocate_pgste
+EXPORT_SYMBOL	 vmlinux 0xe50ae128	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe514d21e	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xe51d609f	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe524e3e2	bcmp
+EXPORT_SYMBOL	 vmlinux 0xe531be02	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0xe53acdce	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0xe54d04dc	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56b0d0f	stsch
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe583c517	airq_iv_scan
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe59b9802	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xe59e6455	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5ea6124	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe615f083	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xe61b7f5f	register_adapter_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe644c472	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xe64798f0	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xe6577a99	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0xe67130ff	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xe68b119f	dev_emerg_hash
+EXPORT_SYMBOL	 vmlinux 0xe68d0e51	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xe6a1b9f9	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xe6e88352	iunique
+EXPORT_SYMBOL	 vmlinux 0xe6ee5fea	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xe6f1486d	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xe6fb2b41	try_module_get
+EXPORT_SYMBOL	 vmlinux 0xe70c2e33	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0xe7102f19	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0xe713a97a	irq_subclass_unregister
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe733dc95	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xe74b9ef4	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xe74d8242	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xe753c4ae	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xe765ffba	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0xe76bbda7	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0xe77cfdd2	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xe7816f6f	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xe790cf19	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xe796f19a	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xe798236d	jiffies
+EXPORT_SYMBOL	 vmlinux 0xe7af2e3c	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xe7c1e256	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7d6dfd6	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0xe7f1c9bd	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xe80fdb17	key_put
+EXPORT_SYMBOL	 vmlinux 0xe81fc16e	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xe82180f0	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0xe82b5514	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xe82be7d4	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xe82e85a4	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xe85e16de	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xe865dbaa	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xe86bd9bb	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xe880dbdf	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xe8a5fe23	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe8b3671d	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe8ba125d	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xe8c5eccf	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xe8cbe913	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xe8d8890c	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xe8de8a80	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xe8e007c3	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe954e25a	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0xe9805c1b	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xe985c974	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0xe989ad1c	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xe9a0f167	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xe9aa7bf8	ccw_device_set_offline
+EXPORT_SYMBOL	 vmlinux 0xe9acbe33	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xe9c58a09	tcw_finalize
+EXPORT_SYMBOL	 vmlinux 0xe9cccce8	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xe9d4b8d4	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xe9d4d656	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xe9d71b6c	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xe9dcbed2	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0xe9e30269	dst_release
+EXPORT_SYMBOL	 vmlinux 0xe9f4f5e5	dquot_release
+EXPORT_SYMBOL	 vmlinux 0xea02d9e3	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xea041ae5	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xea34c8fa	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea872313	find_next_bit_inv
+EXPORT_SYMBOL	 vmlinux 0xead58fb9	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xeae6bf00	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xeaf8cb1e	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xeb1c37f2	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb7d5320	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0xeb91993e	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0xeb9dc55b	ap_owned_by_def_drv
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xebaaf3da	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xebbf1dba	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0xebcb2554	raw3270_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xebcc31d2	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xebdb4acd	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0xebfb7207	ap_parse_mask_str
+EXPORT_SYMBOL	 vmlinux 0xec122c83	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0xec15b5c2	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xec215d3b	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec27c4d1	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xec60462b	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xec6113f1	up_read
+EXPORT_SYMBOL	 vmlinux 0xec61c614	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xec68af9e	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xec8d6b40	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xeccc450d	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xecd1f91d	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xece32f70	km_query
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecede7ff	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xed032f24	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xed210c04	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xed2aa794	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed63e7bb	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xed6cfcc1	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0xed6f8c4b	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xed83c89d	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xed8bdec2	simple_open
+EXPORT_SYMBOL	 vmlinux 0xed902812	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xed91bd85	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xed97fa09	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xed9ec2ed	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedc7ba42	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xede94561	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xedfc8e7e	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xedfdf584	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xee08cada	iucv_message_purge
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee4f36a8	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee7714e3	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0xee8b6cfb	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xee8ca8b6	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee9696a4	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xeeac37f3	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0xeedcf10d	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xeef78983	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xeefa017c	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xef05ed12	kbd_ioctl
+EXPORT_SYMBOL	 vmlinux 0xef1b78e0	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xef45d32c	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xef6c9fcd	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0xef6eb01c	genl_notify
+EXPORT_SYMBOL	 vmlinux 0xef929222	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xefa19196	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xefa27ae7	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0xefa436b6	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xefa4de9b	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefbfbde7	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xefbfde8d	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0xefc67050	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xefd1f399	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0xefe67717	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0xefecf87e	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0xeff558f4	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xeff5bc23	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xefff6d63	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf00611c5	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0xf008a885	seg6_hmac_init
+EXPORT_SYMBOL	 vmlinux 0xf02deaae	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0xf0327d17	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xf03427f8	up_write
+EXPORT_SYMBOL	 vmlinux 0xf03733f4	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0xf047fe29	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xf054768a	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xf05c64f8	iucv_path_connect
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf067a6da	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0xf068d1a5	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf08fcf62	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xf091a53b	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xf091e57e	release_sock
+EXPORT_SYMBOL	 vmlinux 0xf09a5ab3	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a2b042	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xf0aebfc1	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xf0d59b52	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xf0fc9aa8	sclp_cpi_set_data
+EXPORT_SYMBOL	 vmlinux 0xf1062426	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf1180f1a	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0xf11e0ef9	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xf15eba9d	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xf15f3b41	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xf17dab00	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf197be1c	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xf1996d5e	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf19e7338	unregister_external_irq
+EXPORT_SYMBOL	 vmlinux 0xf1bca1cb	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xf1c241a4	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0xf1c33626	dump_skip
+EXPORT_SYMBOL	 vmlinux 0xf1ce2255	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e79b3f	dump_page
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1f3726f	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0xf1fb1969	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0xf20aa553	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xf20af3d9	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22a6358	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2441fb8	cond_set_guest_storage_key
+EXPORT_SYMBOL	 vmlinux 0xf2704f2d	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf2884dfe	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xf291cc37	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xf29f95fc	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xf2b74ba7	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0xf2b8112b	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xf2cb360b	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2fc38f2	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf3168a42	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xf318c242	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0xf3216de3	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xf32cd539	class3270
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf340cbc8	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3509719	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf3574192	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xf369d954	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xf3722228	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xf385e1ff	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf39996cf	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b74f79	__iucv_message_send
+EXPORT_SYMBOL	 vmlinux 0xf3d1a8bb	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3f3c79f	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xf4054f71	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xf4115502	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xf4216765	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf4285d0b	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xf435e152	kern_path
+EXPORT_SYMBOL	 vmlinux 0xf43725fb	s390_arch_random_counter
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf4543272	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xf4644d5e	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf4962698	mntput
+EXPORT_SYMBOL	 vmlinux 0xf497199a	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0xf49f2d27	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xf4a2e531	md_error
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b618f3	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c81c51	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0xf4c99059	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0xf4d13fda	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4dfcce9	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0xf4e1d22c	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xf4f14214	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f1d73f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xf50bea6e	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0xf51c1300	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0xf51f9968	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xf5258cd8	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf542f290	raw_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0xf550909d	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xf55a2b76	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0xf566b2be	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xf56f99de	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xf57457f2	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0xf57e874e	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xf5a54b0b	raw3270_find_view
+EXPORT_SYMBOL	 vmlinux 0xf5ab28e5	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xf5bf12ed	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xf5c164ed	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xf5c16da5	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xf5c97c8e	nvm_register_tgt_type
+EXPORT_SYMBOL	 vmlinux 0xf5d336eb	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xf5da7fcd	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5edfd92	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0xf5f2c541	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf61dead5	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xf633d97f	bio_devname
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf65c763e	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf6736921	d_add
+EXPORT_SYMBOL	 vmlinux 0xf674ecfa	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0xf67cca78	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf683e9be	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0xf68b341d	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0xf6935d4c	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xf6aff23d	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xf6b4c68f	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xf6ccbb8d	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f7181b	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf70281e4	__debug_sprintf_exception
+EXPORT_SYMBOL	 vmlinux 0xf718b7e5	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xf719a3df	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xf7233436	ccw_device_clear
+EXPORT_SYMBOL	 vmlinux 0xf731390e	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0xf7347278	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf73e4a75	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xf74300d7	arch_vcpu_is_preempted
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76d1de0	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0xf76e3ca2	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf773ba18	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xf77ef778	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xf781a7c1	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xf78e71a6	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xf7a596de	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0xf7b92217	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xf7d71918	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0xf7f2b5fb	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf814b51c	fc_mount
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf86e6516	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf8728430	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf89cfde7	VMALLOC_START
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8c4d048	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xf8c59dfa	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xf8cfecd3	seq_path
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf90ae6a8	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf9554d4c	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xf96c5bdb	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xf96f2c37	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xf97fa652	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xf97fff9d	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0xf9912052	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xf9a0226c	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9dcf720	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xf9e016f1	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xf9f50b92	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xfa08227a	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa1fe79c	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xfa233a3e	path_get
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa465e3d	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0xfa48bbbd	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa67ea19	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa88dca8	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0xfa913e6c	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xfaa115eb	bioset_init
+EXPORT_SYMBOL	 vmlinux 0xfaa1caa6	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0xfaad65dc	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xfab9493d	bdput
+EXPORT_SYMBOL	 vmlinux 0xfabdeb05	done_path_create
+EXPORT_SYMBOL	 vmlinux 0xfac75869	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfae936ab	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0xfb33e60d	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb4694b4	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb52484a	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xfb587e97	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb727569	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xfb8cfa94	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xfb9cade3	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaa326f	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb93f95	set_guest_storage_key
+EXPORT_SYMBOL	 vmlinux 0xfbbace33	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbd11007	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0xfbda1fc3	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xfc018081	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xfc257d6e	param_get_string
+EXPORT_SYMBOL	 vmlinux 0xfc342550	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xfc35e741	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f3a2c	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0xfc707539	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xfca5201f	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0xfcabf2d5	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xfcb59c55	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xfccb0a3c	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd62df7	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd2882b7	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0xfd2bedfa	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0xfd3a1e31	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xfd3e2978	inet6_unregister_icmp_sender
+EXPORT_SYMBOL	 vmlinux 0xfd3ef338	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xfd415abb	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0xfd51a6f7	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xfd53da38	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0xfd748217	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xfd80bc3e	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0xfda4f3d4	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdaeac40	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xfdb4de2d	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xfdbd7282	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfde285a5	ap_queue_resume
+EXPORT_SYMBOL	 vmlinux 0xfdf45996	lowcore_ptr
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe0842b4	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xfe15855c	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0xfe193e65	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xfe3a2b29	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe6f2bff	ccw_device_start
+EXPORT_SYMBOL	 vmlinux 0xfe806e45	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xfea9fd7d	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfecccf2f	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfef8add4	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff1f0ae2	add_virt_timer
+EXPORT_SYMBOL	 vmlinux 0xff50c4c4	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xff59103b	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xff5a37f5	airq_iv_alloc
+EXPORT_SYMBOL	 vmlinux 0xff5fb2a1	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xff660930	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xff683f33	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff898b6d	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xff9f5f45	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xffa9bfdb	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0xffb2486b	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xffb44101	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL_GPL	 arch/s390/crypto/sha_common 0x351de32a	s390_sha_update
+EXPORT_SYMBOL_GPL	 arch/s390/crypto/sha_common 0x58f040f9	s390_sha_final
+EXPORT_SYMBOL_GPL	 arch/s390/net/pnet 0xce5f6c64	pnet_id_by_dev_port
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x10cc1807	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x13be623d	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1b68506e	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1f7cf68e	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2e171ff1	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x456abcc6	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4a1018ab	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5947e48e	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5a9b2509	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5fdbc8ec	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x62947907	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x74c2fc8d	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9328c258	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xb246bbb3	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc26b78db	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe3a15f13	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe65ca00e	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf107c6d9	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xd39cf707	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xd999bedc	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x063ef44e	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x4e5a5b2e	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xb461fee4	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xf1de57d2	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x3b976a0f	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x3dd57ca9	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x939a63db	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x79a465fc	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xfb314584	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x01be387b	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xaabe9996	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x245311bd	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2df86bdd	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc42e8ab4	__cast6_decrypt
+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/chacha_generic 0x147697b4	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x8f4ea97c	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xa06a4e5c	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xc3ef3195	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x134a2246	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1b72be3d	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1e56874b	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x327df4ef	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x35a4f18a	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x635951bf	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x814359b4	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8967071c	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x8f2c7c72	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xbfb50390	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc534fdfd	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xdc851364	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe70d8bf6	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x02831b05	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x09682d21	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x339afeb2	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x367f4828	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3cf89b0f	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4195d047	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7859a8da	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8c23350b	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x94ad1398	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xa794e189	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb4ed3f9c	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xbdebb8d1	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd24fe3c7	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xdf017282	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x598f1b61	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x68b09032	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xef12b16d	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x281073c7	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x35a6ed74	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe01bd023	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x3494451a	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xa881e879	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xf1cc0b54	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x9cc1c785	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x56387b3a	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x55db23ad	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xe9a1f7c1	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x1a66851f	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3cc1fd67	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x406fa69b	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4d00a445	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4dcd6eda	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x694d8920	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x6e1f262e	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x89c7fa0a	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x93ba3cca	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x94127043	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xddf512b5	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xe4faf6b6	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xfe5a98ff	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0xc30e1304	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x309fcad9	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x76b9f491	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x931aee97	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xabda57cb	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc6460393	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe4083e51	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x1d08c1bb	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2073e4c8	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x95aabd03	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x9656d0a0	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf1570498	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x153c33dd	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x511b4464	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x8a2fea67	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1727a32f	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1885a116	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1df8f366	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x27ecaf11	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x607c6bfa	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x69ac5041	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x8577b5d9	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x901f852c	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb01bce67	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x1228d562	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x2adc0540	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xbc82b55d	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x00ebc6aa	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x192339b1	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x1c63c1e8	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x732c9149	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x997158ad	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xc131d2a4	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xcd95c172	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xd5dbe43c	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xfd1181e8	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x1a0e8d9d	i2c_client_type
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x1f1eb3d9	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x2259437e	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x24ca669e	i2c_new_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x25fd0078	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x489d9f0a	i2c_bus_type
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x4cffabe8	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x4f27c972	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x528ddc1d	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x5ef60d2a	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x728a2d3f	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x7e80a7a9	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x7e9a1d25	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x7f4c26ad	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xa18ca6a2	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xb02e45ad	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xb1812c46	i2c_match_id
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xbbe2b914	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xd4c46cfd	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xe1bc5af9	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xf33256ca	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xf9fdf01e	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x17ef77e4	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x233491ef	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x35e06a49	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x6256ac7f	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0030b9d1	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0c28370e	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0c5c7bc8	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 0x22e4fdee	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x244d2c99	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2e22bd28	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x395bd8ab	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x72ea7020	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7b2fd677	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8bae967f	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xae49a2c9	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb394df8e	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6988201	dm_cell_lock_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 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd00961df	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf8888ef9	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xfeeeba0f	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xff57a9a8	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2c2284ac	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+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 0xe6024e59	dm_bufio_release
+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
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x796a703b	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x9b135807	dm_cache_policy_register
+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 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xd638ed27	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bb31c4	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe756dac6	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe8c5320d	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xee072c16	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x09eff01b	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xb88c8f45	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x07da5ed1	dm_rh_dirty_log
+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 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 0x91fe5c45	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xc3a56396	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xc45b1265	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xce852b4a	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf802f774	dm_rh_delay
+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 0x00f5a3c8	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0ae4d696	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a0d1b54	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa8d9df84	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa9c4fc6b	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb11cd6c1	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb500e95b	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcbba75fc	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd7016b22	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3b16444	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf551114d	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x835dd421	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8e3e3f4f	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x002f791b	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04c307b0	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05f6d610	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07466d59	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08621cd5	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09b625bd	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b9cee7c	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16c3dbc9	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x191cf006	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ad16dbc	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c13d19e	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f5d59d2	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x225e14ec	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x242dceff	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24c0cc92	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ccd23db	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2de558b9	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e4b2d9c	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33946e53	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x386a6a25	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b07c7b0	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x413b963e	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41872c97	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42c4b891	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x483b57b8	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x487f7e6b	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4881fc38	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d76db5c	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ef80c1c	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x519d5991	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52841b50	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53a57ce2	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5404ec25	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55694d58	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56612f62	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57932bac	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5aa853c4	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c71f2c3	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5da9dda7	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5df8f154	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64d01e06	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a3154ca	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a581ee9	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6de9ccbd	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71f16381	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7258b11d	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73cec506	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76b978db	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78cac632	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79fde306	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c6fa348	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e765dd7	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ea41ace	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x816f4210	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x817654f2	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82a581bf	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8406565c	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88f1874b	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c784e74	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c7a70e3	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e27f34d	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8eb81635	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92454032	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92785cac	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92890651	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9751af4b	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x982f352a	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98dcdf00	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b44eb56	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ca6827f	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e2d02c8	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa12c74cf	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa35b2043	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa61d6e1c	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7d42568	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab20e9e6	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad4aca90	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xadb63216	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae42d87a	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4276096	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4736332	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6cf1fc0	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6ee0e68	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb73d562a	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb786f51f	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9f5881e	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbbb20e4	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc067b26	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbda98630	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe1dba0d	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbeeffca5	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0e62fde	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc26488a8	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2f108b4	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3b5f1f4	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4b44890	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc633aff8	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6d5f517	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc711515e	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc801e68b	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8fb587f	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc941200a	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc769419	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce51855e	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce821546	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1c876a5	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd24ddf40	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3addc06	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6d1184a	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd86e82ec	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8f1b993	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd929e5ca	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdacd549a	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbc2cf85	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde54fe5b	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf46ac77	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3d38d30	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5738186	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeab0f37e	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb412935	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebd1b505	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefdb51a5	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf202eeed	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf532cb74	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9fc0b23	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc1c1680	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x015d8913	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01a19f81	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0300a66b	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x030c33a3	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03143472	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x046e81b5	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x052f353f	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05474823	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x065dcadc	mlx5_accel_esp_modify_xfrm
+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 0x08025a51	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f8d0961	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10759cfe	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10face36	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1263b77b	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15446414	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1561b9a5	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1646c61f	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18f7f9b9	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c1a51ad	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1cb1021d	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20f4169b	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x234013ba	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23e7aef3	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26556ae3	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2832377f	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b195041	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3198b7f8	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3215ea4c	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32ca9027	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3302bdc2	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e522454	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49e5f10c	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bb7e358	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f8157f2	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x505430e1	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52312995	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5319d4f1	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53e6e30b	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a62b8e7	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e16380c	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61e32a35	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x686d6ac5	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d0b0b25	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71eb6775	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x742b0e01	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ac887e5	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7eacf4d6	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x871a91ba	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x898e10cc	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b6edc86	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d9a9a30	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8fce79b1	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92e5b0bf	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97c9802c	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9aae47c3	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ce3e006	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ed62d59	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0027976	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa002d911	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4232a0d	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa2f3734	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaacccf4f	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab01690e	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac233db3	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf93532f	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1a9bf04	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb326a1dc	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3db36af	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb825d8ad	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbbc30492	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd66bbc0	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5081f78	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5ef8a8c	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd10440eb	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdaeebc80	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1076f29	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe87b0d60	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea8b956e	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb8ae005	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeed58e0e	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf0c89f5f	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4afbb33	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8b5a961	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa759da3	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb84e235	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd0ebad7	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x646d8cd7	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x3d430b69	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x540492f9	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x8ec097fb	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x9c79ef58	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xedea0a96	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x20024cd4	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x716f041e	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xb1bf8c12	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xd2853cf9	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x41320b83	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x93ff9c2e	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x006e0cd1	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x179841de	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2d018e44	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x348ffef5	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x47364e25	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x58f775e3	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5f226dfc	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7f3eafe6	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x80a65acd	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x87eac1a8	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x882d7594	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x895a2c4b	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa41372e1	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa7a71db7	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xaad0043c	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xcf13623e	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd95eb0fa	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xfd7ccf51	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x12d4b3c1	fixed_phy_register
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x30500d3e	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x531c6aa6	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0xa29fade4	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0xe8c6aed5	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x046a0824	phy_select_page
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x079a03ea	phy_save_page
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x0cdf6bcc	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x0faf22a5	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x1e80a93a	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x2a0a40fa	mdio_bus_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x31f0e7b6	phy_modify
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x33f5d82f	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x35cbcbb2	phy_modify_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x50b9d0a3	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x598ea4d4	phy_speed_up
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x599a5ceb	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x5a50d98d	phy_start_machine
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x5ab4c600	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x6137547b	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x6e0e869a	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x70b645cc	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x71928233	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x780d1ba2	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x79085cc5	phy_speed_down
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x80733008	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x8dd59469	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x917de433	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xb45bf18d	phy_restore_page
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xb4a321a5	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xbd1f8de2	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xc27cbb4c	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xca8b90ce	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xd32f73d0	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xd4bd01a3	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xda36387f	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xebae585c	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xf2d27340	__phy_modify
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xf399b266	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xfa231c86	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xfff64b03	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x003a855a	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x3f5ca01c	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x5d4c533c	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x6c0a77e2	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x892b4f2b	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9dfda906	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xa594f612	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc547aee4	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xdd888c9a	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x23130d0a	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xbd8011a8	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xcf23e8b6	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xfa200a13	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x07ffe68c	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0d97548c	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0e32d21f	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x15d07ba9	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1a4446c6	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1dccdd84	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x282cfa1c	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x285fa77d	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2fa55ced	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x33909924	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x359355a4	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3aa04ecf	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3e6bfd33	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x58b9144a	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5d0dfa29	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6449130f	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6535c955	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x66b2b36e	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x76327f59	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7b8a2fb7	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x88b22045	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x88badb84	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8e65d041	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ea7396d	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa356228e	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa8905461	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb3f36ef1	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb5ec84f9	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbbca2d6c	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xccb00189	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe2ed6e53	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe9683075	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf00c74a7	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf2088eb3	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf2f9dd82	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfe49ae68	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfe7f4b55	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0850cf1b	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x478ac008	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4e4ea08b	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x5683d8c5	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x59f6cb6f	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x7c88c2c0	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9c20fbc0	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xb7030d47	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xbc8156e5	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xd296411e	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xeec81186	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf2e8a66a	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xfd820254	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3d970c94	nvme_fc_register_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 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x11c4b369	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x16c12759	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x182ce0c5	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x1ee6e8d6	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x205f757b	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x38fa2df5	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x4d3a2bf4	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x4d9c0399	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x57897170	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x8d91fdf8	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x98e2c2e3	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x49431a49	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x56c9195d	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x19227556	dasd_nopav
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x22b5f997	dasd_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x25e434a5	dasd_generic_path_operational
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x2950f567	dasd_generic_remove
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x2bcc53ea	dasd_generic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x2f7936c7	dasd_generic_path_event
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x451ee39a	dasd_free_block
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x49fb2aaf	dasd_alloc_block
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x4d5d3b4d	dasd_device_set_stop_bits
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x54a97f75	dasd_generic_uc_handler
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x553cbbc3	dasd_wakeup_cb
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x56fdb052	dasd_device_is_ro
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x5a95fab2	dasd_get_sense
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x6515a906	dasd_generic_set_offline
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x7f9239c7	dasd_generic_notify
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x851f68ce	dasd_generic_pm_freeze
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x8e4c1888	dasd_generic_space_avail
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xa9adeb45	dasd_generic_set_online
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xb38fe028	dasd_page_cache
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xba9dc58d	dasd_generic_restore_device
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xbe41bf38	dasd_generic_free_discipline
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xc229a3be	dasd_generic_handle_state_change
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xce225a5e	dasd_generic_space_exhaust
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xd292b655	dasd_put_device_wake
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xd2ddc479	dasd_flush_device_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xdfdb35be	dasd_generic_verify_path
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xe6910276	dasd_device_remove_stop_bits
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xec0f16db	dasd_generic_last_path_gone
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xf15784f5	dasd_nofcx
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xfb597b29	dasd_generic_read_dev_chars
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/ccwgroup 0x2f724688	get_ccwgroupdev_by_busid
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/eadm_sch 0x85d9d140	eadm_start_aob
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x11fff978	qdio_inspect_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x334691d4	qdio_activate
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x3cbd33bb	qdio_shutdown
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x40809794	qdio_release_aob
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x4afcd5c4	qdio_free
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x4be4d8e3	qdio_pnso_brinfo
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x7887b04c	qdio_get_ssqd_desc
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x86bfc120	qdio_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x91dc84f1	qdio_allocate
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xa82bb4d7	qdio_alloc_buffers
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xadba96bc	qdio_reset_buffers
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xbed5e8b8	qdio_establish
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xda51080f	do_QDIO
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x049a7965	qeth_do_run_thread
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x04cf8aee	qeth_device_attr_group
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x0b671075	qeth_dbf
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x138ed2d5	qeth_clear_ipacmd_list
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x17ceea55	qeth_init_qdio_queues
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x1bf68c95	qeth_dbf_longtext
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x1c42a9d4	qeth_device_blkt_group
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x1cbd6c97	qeth_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x1ea7e164	qeth_do_ioctl
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x2cd9e4cc	qeth_core_header_cache
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x2d67bd11	qeth_notify_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x41d009a3	qeth_set_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x597a834d	qeth_fix_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x5cbf036c	qeth_drain_output_queues
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x5d17914c	qeth_schedule_recovery
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x5dd748a0	qeth_send_ipa_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x5f3234e7	qeth_iqd_select_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x62121e1d	qeth_stop
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x6968204c	qeth_enable_hw_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x6cfcf312	qeth_qdio_clear_card
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x6d5c5ca5	qeth_print_status_message
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x75222d22	qeth_setadpparms_change_macaddr
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x7615f9ff	qeth_setassparms_cb
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x77e95fec	qeth_hw_trap
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x85b85b9d	qeth_setadp_promisc_mode
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x8f501f7a	qeth_clear_thread_start_bit
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x92a3e91c	qeth_get_diag_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x9bf78448	qeth_get_setassparms_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x9de00f37	qeth_vm_request_mac
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa01496fb	qeth_get_card_by_busid
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa0a93c23	qeth_clear_thread_running_bit
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa3f2ba9c	qeth_put_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa6775484	qeth_prepare_ipa_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa6b0437b	qeth_set_access_ctrl_online
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xabd024bc	qeth_configure_cq
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb3b2100e	qeth_core_hardsetup_card
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb3e5cd91	qeth_poll
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb4a70f9a	qeth_generic_devtype
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb780047c	qeth_count_elements
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb79c541c	qeth_send_simple_setassparms_prot
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb82941bf	qeth_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xba3a672d	qeth_xmit
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xbae05fb3	qeth_features_check
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc0a2e754	qeth_alloc_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc53711fd	qeth_core_get_next_skb
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc6861bbd	qeth_threads_running
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc6994cfd	qeth_do_send_packet
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xcc94cf0d	qeth_get_priority_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xced20cf1	qeth_realloc_buffer_pool
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xd2e8b8a5	qeth_set_allowed_threads
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xd57fab17	qeth_clear_working_pool_list
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xd7c505a7	qeth_trace_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xdf20082f	qeth_ipa_alloc_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xe984b389	qeth_open
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xfa2242b9	qeth_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth_l2 0x1f6452d0	qeth_l2_discipline
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth_l3 0x0fc2dbb4	qeth_l3_discipline
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x08332b6e	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1accded5	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1b00ae5b	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x22ff6029	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x331befcc	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x55687d20	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5a1ce2c5	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5c20a1fb	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x60b68c81	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x8c4f4cf7	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa00893db	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xac1c6951	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcfc8456f	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd5f6ed55	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd944534	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xeae47c53	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf8be759c	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x239072b5	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x67707afc	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x685435a6	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7d942dfb	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x8a26b6e0	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd91d0009	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe8f62d58	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x22bbc44b	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x007eb850	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x01627fea	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x01b2d226	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x02418480	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x04561e39	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0c227f60	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d464414	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x16336c9b	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x18f44572	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2e439cb1	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3069ff05	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x32680b6b	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3c5291de	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4715aa89	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x519a8510	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x54114fe8	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5fdb874f	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x62b3e93a	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x63f1bb5f	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x69779b5f	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6a83911a	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6e6e6cfb	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7d9c55b7	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7f6fab92	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x81700e72	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x82d0c031	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x87d0df3f	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9ca77274	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e0fc9d0	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e620654	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa93a679f	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb12a46d1	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb67ebd0a	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbf7ee837	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc0e5c6cf	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc54d5457	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcd9bffef	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdb937c36	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe0f0c37c	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe51e6917	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf8ca844a	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfabacf3d	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x08d13df7	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0fa29ef2	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x130b5c7f	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x21ae7b0a	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x25491b33	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3b75d20c	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4236896a	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x51029dc8	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x701bf36c	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x822f36b3	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x89ba54f5	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x8ac29f39	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x968a5d71	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbb896904	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbc686ede	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbc78a66a	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe117fb55	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x10e1db24	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1649bf11	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1fa294fc	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x35377180	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x379c0df2	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4b947bf9	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x59d17edf	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x61117a59	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6322185e	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x86c0525c	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8f678cb5	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9545222e	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x95f5ed8e	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa8781075	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbd799306	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc2b4db39	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc5d600cd	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd38f5dca	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xddb1c30a	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf13248d3	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf91fca37	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf9a7cd13	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xffd8804e	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x009073b0	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x07839cd4	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x083f0f61	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0b830b15	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0cd7dd26	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x11a39c3b	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x12bc44fa	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x155f49c2	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x173145bb	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x21af2c3d	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x38424ee7	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3af94390	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3ee19cf7	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x435b51a9	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x454c8851	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4c0ddf5b	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x553aaa90	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x569dbef3	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x61cbcdf1	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6455c188	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x68f443cb	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6bcc9084	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x77920cad	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8f6dc2ed	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x93235432	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x93a16558	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x93ef7108	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x94f0f8c2	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa85ed567	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb95b81ec	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcfcab560	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd5225bde	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe102b578	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe112d95c	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe1858323	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe5e31220	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xea5874e6	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf44b8d2a	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfb0a4986	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x5a4ac008	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xa60203f3	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xa6770456	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xb413186a	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x1aef5258	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_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 0x59700b13	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5974adf2	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x98ba5984	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xa7184cf9	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xabe42f69	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xe5d7dc95	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x34d6a516	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x396b3412	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x6819fbcb	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xbeb098fe	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xeb482417	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf62fe5ba	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x00cfc97a	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x080f508d	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x16dd95ac	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x198448db	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2a1e03a3	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x55a3a6be	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5859655a	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5e286a4c	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8e245ae4	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9255b17d	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x95a40e9b	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x975a3de7	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9ae85f01	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9eb2b332	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa01f907d	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa999c24d	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb5424ae9	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc0b1628e	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xccc1f745	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd655bf23	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xdc019f2e	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe04fc7c3	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe77652f5	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xed6cd102	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfd8b2fed	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfdb5e11b	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0x46d825c7	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0x91dd3d13	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0xeff64277	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0xf63b20a7	uart_insert_char
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x8c5a8811	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9264da18	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xf797a9bd	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xa2fd999d	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x07d1c734	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x529db99e	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x676467cd	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x72ceba03	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xa2c90d85	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xb67e305c	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc3d3704b	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xcfe5e008	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xec66dbfd	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xf495dacd	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x8343541a	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x87c97353	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0099b3ab	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0105e10c	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0142265b	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x05bcc0de	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0c063ce2	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0fac16e2	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x125f86d6	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x12bf2486	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2323541a	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x25934362	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2b948be8	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2d48dce5	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3ee7a7f6	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4041f04a	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4af1d913	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4e39a4a6	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x53b0e633	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7061993a	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7403e616	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8374dd34	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x85bd8155	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x87f65b13	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8de9da79	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8e7a2e74	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x93302bc9	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x942f4d3f	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9f25ea1c	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xabcf709a	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb0966a00	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb9d5d759	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc2116cfd	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc93a39f5	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xcec89483	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd6982a48	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe2e300c1	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf49618f5	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfbe791b6	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfce2a5fa	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x0c139fc6	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x923b6083	fb_sys_read
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x14208965	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4a53a7dd	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xaac22c9d	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x10845ea5	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x1f2034ff	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x2d1742f9	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3549c3ab	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x5cc2dd8a	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xa62206d2	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xaf211379	lockd_down
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x05828ade	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x080be749	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ca64e98	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x112dd459	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x115afc7b	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x11b8c203	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x16f3e177	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x19c597df	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1c4a377a	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1de9db83	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2017c366	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d06c93	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x25532d64	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x27c3f073	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2896c752	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2bda656e	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2e1bbde1	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x30b93c9d	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3110d8e6	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x31dcb928	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x321c526c	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3b53b8d8	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f4f4592	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42d739b6	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x455ff811	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x48a81a96	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x49495915	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a44019d	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a6a1c4b	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e851dcc	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x511681ca	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5183863e	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51ce385a	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5270eeed	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x53c92364	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x579e53eb	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a4c6e47	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b9644a4	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ea4aa22	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60664ece	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x626d537e	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x67e1744e	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x707aae6d	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x70ab8dfc	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x70c1ee74	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7318b2a9	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7436a9e5	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7582dbae	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x77eb90af	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c8472c5	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d075e82	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e9be79e	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x840cb2c0	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x849059d8	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x85db7dfa	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x878b16d6	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x885725c5	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8b9b0ea3	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8c635acc	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e1f6972	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f5b2501	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x903e26f1	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90b08633	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94ac7e46	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x96b6b1e6	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x970ccf2d	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98eecc4c	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ab2f5ed	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0c732ab	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2984501	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2ac846f	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2be18ea	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2f4ae0d	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa6f2e8b5	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa92d8519	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaad67cf9	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xacab648c	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xadb83307	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb32597c2	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb37bc2ae	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb484b542	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb48ad7d4	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb52d2793	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb92bb461	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb80fb93	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc950284	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbcfd1ca5	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbd0e672a	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe1f80c2	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbf46d494	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbfcaa932	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc08b0af8	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc0e21ca3	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc0e62417	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc1ca33b2	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3bcdb46	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc51ea4f5	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc6197c20	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc6c6696f	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7a445e2	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7d5f40f	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc96cfb00	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcbd57e92	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce6da2b4	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcea3f5b6	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcfddf40e	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd14e8ce0	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd1b99f55	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd1e4e4f7	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd256d5f3	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2cf8301	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd3472025	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd45afd46	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4f388d0	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd65e8dbc	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdd2019c1	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde829b3d	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe2d638a4	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe610f809	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6156a34	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe7ad5c45	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe97d3fe0	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb7321af	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xed47d663	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf1ba597a	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf1e0d4fb	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf3c88b97	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf491808b	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf71c96e9	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd48b0d2	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfeb44e60	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x08cb0793	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x00fc5e6d	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0135a838	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x01951d60	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0359d80a	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x099c5090	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x11aee409	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1211ec65	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x18326508	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2728046c	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x30ba2edc	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x35c9fe02	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3638d762	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x397aa279	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3a6fcbeb	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c89cace	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3d5e3b00	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3da0c7e6	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e755857	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x40e67f88	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x56394c10	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5b93f763	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5e79d41f	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x636ded37	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x66a72703	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x68afb84d	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7405bd43	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x76d14281	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7ca25477	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x836be47f	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x88bfeafa	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x89c10c71	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8bb67a87	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x92bcc6dc	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa4d28488	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa7230b92	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xacb7b9ab	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaf24bf56	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xafab5e70	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb00e5aad	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb307118d	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4393103	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb5456c72	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb56d2933	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc3331772	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc6a040bd	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc8c39173	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcd802d7c	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd66152ae	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd72affa4	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd7a21460	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd8c7337c	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdd719fcc	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe2647052	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe666ff76	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeb2298c3	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee51a112	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf45514a1	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf5e29931	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf8649f0d	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfb75f53a	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x33655b87	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x57f08d06	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x9ae23f01	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x77a5112c	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xeb19f1c0	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x14e76063	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4dffe3dd	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5a87976b	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x63654857	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_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 0xc69da06b	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc9d17bed	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf3f56551	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xfa83d357	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x0dbf5a88	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x49cdae4b	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x93be6604	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x9ede83be	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xaf3ff9c9	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xc555169b	dlm_register_domain
+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 0x47c62027	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x546443f5	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x7b17dff2	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+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 0xe6373cb9	ocfs2_kset
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x276916a9	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4158e45f	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6d65e9ff	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x1b0f70f3	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x01d6019a	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xcaad1fd4	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x18efd32f	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x391d9714	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xa51bfd9f	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 net/802/garp 0x19d89c0a	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x2d2cdcf8	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x90ff1cf6	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xc35bacc7	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xc8445c81	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xdecf9361	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4e70e65d	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x6c709cd1	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x7742dde0	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xcb1e4713	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xd557e02a	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xecfc21f1	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/stp 0x50a95604	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xfca5955a	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x870fe168	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xd97f5ea2	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x07db3893	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0e1390e1	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x11cba26e	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x16e02c90	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1d4c1f5b	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x46beb60d	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6469a4d1	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x675d91bb	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x729f0974	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7694fc80	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x803da5a2	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x88a4eeb7	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xa21bf2a2	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb370dde6	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd45256c1	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xef333b81	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xefd3100f	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf30d8132	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/core/failover 0x07d2a7d0	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x3fc40515	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xdcd68f86	failover_register
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x14a90114	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1d0f10e7	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x22f8d08a	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x25a8d2d1	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2af92947	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x371e2611	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x44603a7e	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x50a01af4	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x516fd79e	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x52cafbb1	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x535c843c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x597e9eb3	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5cc52f69	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5f87cf89	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x64b8050b	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6d10747c	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x74203431	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86aef7b6	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9042091c	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x920bec7b	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x92ff3ac4	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x96c67988	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x97a2ad87	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9d905013	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa6847005	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa6b6b56a	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa91b32a6	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xabb7646a	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb74d3398	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb78ee43e	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc020bdfa	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc03e5e1b	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc9f204be	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xca2c0d51	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdd092905	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe4370f5a	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x0919fdba	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x5f69ca87	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x78ed56d5	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xa99c9caf	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc0b2a2d2	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xcff893a6	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x1571631f	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x410cd0a6	ife_decode
+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 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x3f7035dd	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x71abaa99	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x749107a4	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x7e88ed7f	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xa1949ad0	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x41735bde	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x50ee8de3	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x594a39c3	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x5daa2c81	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x6d0a66be	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x6eccdcd4	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x7c4756b3	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xab85dfa7	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xeffc40e5	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x06190ad3	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x37da0ade	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x558c9c25	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6c288adf	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x79addda0	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x7a6aab04	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x81883e3b	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa06f411c	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa2bb2708	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb77393cc	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbce6e424	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc7a6145a	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcc3457ee	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd04d1067	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xda18b280	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdb9e6303	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe99e61a4	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x7e7f46db	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x3cda852e	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x99aec410	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x8c1aa309	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x12839550	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x28680b7c	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x471db794	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x72664c44	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x93019105	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xbe933847	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x0ab122d2	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x96f938b2	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xbfc5f166	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x07b5f269	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x9526a2b5	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x03aa850f	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x9108ff79	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xb0f7fb9d	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xc76948ce	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf65d3ae0	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x0545371a	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x160e6e32	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x2354b039	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x28d453ae	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x4c2be3f2	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x5bc8c5ba	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x8547495e	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xeef91730	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x22995023	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8a54d546	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x912bbe2d	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x4b6fa097	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x810631d2	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xad7dc7db	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x8908dc7c	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xf5fde514	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xb41fee63	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x9934e564	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xdacd8fb6	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x77c6cfd5	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x0551fe07	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x079b2a1e	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x0df220eb	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xdf457cd6	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xf53eb973	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x39f4992e	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x0cc4261d	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xadb363dd	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xaec66679	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x1e36ad0b	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x1edec4f0	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0c32c895	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0cf63d69	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x13148829	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1a3849f0	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x25dca31c	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x512af6f1	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7e739b52	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8d9eb715	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9b8688ad	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9d735758	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc1c2f305	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc3793ef6	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd83d54e5	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd8d00216	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf370642e	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf4c23160	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xfa9f63c1	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x3e0ac811	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x0e33916a	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x20fdc734	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x227d4f4c	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x4471b96d	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x489af4f4	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x031b08c2	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x05028f7d	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x09348cb5	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0b2310aa	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1728f87c	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1ff98e26	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2cd5fd3e	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x476e7be9	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x50a8ad7f	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7fd4e383	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x928cc2c3	ip_set_nfnl_get_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 0xb3bde7c6	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbdd16dc4	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd7000e98	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdbb37fd9	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe359ead9	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xed38090d	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3345887	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf4dc437a	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x57099d9f	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x70fefa81	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xa40f3e7b	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xaa738094	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x27a979fe	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3f85489c	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x4af54be0	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x50eb1bc2	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x9d977191	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xb4749ca2	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xb5e700de	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0108de5c	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x095ccefc	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x10c69328	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x10ca0906	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x10df6148	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11d0e02e	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1cfb151c	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1df00736	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1e380d99	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1ed41fde	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2010e420	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2307367e	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2309da6f	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2745ddb1	nf_ct_remove_expect
+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 0x29397e81	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2dc78f49	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2e453d31	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x304ab63e	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3116c6f1	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x346f1416	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ce1fc32	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3d5bbe33	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x44081cbf	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x45eb94fb	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x47d2b374	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x49a3f33a	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4a9f403b	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4cecc5c2	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ebececf	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x52144ae4	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53068159	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x547ba30b	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x54d90529	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x578c1bfc	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5a7765dd	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5eacb9d3	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x65f4d449	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x68957fbd	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6fafd740	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x721fa722	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x73289225	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x769e5ff3	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x76a894fe	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77cfa587	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x79245eac	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7ce7074d	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x824b823d	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x829df548	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x82c04b7d	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8460d748	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x862e2597	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9042e362	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x922f45d2	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x96f34c46	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b02f70c	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9d4f96e8	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9eea1e3b	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa0b5f683	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa455ebab	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa814648c	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa8383117	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa99531f7	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb2b61658	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb4c30680	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb583665a	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb6ff1b11	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbea249cd	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc9b69b9c	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcbacfe3a	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcbdc8136	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcc5875f4	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xce89a80c	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd63b2992	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd9050dab	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdd54e408	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdf0fe18e	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe18aadf2	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xecae9aa8	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xee0b7a31	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf18db806	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6bebabd	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf8b826ca	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf94ac52e	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfcc69b90	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xc14f40f7	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x2c070929	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0xfa436f70	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0aca8c86	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x151e209c	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x2d2cfd60	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x4b25a086	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x67240b66	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x83b80233	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xa22b8d2b	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xa707a56f	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc13dbaae	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc753692b	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x4831f62a	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x8e2718fe	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x932d7043	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x9dc768cc	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xb025c07f	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x347398b5	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6183a3f0	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x64836804	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6cb2d960	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x94d2053f	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe2e7749b	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xf6337144	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x2b0dae42	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x703240f3	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x1f919f34	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x283bcad8	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xe85e3c4c	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x07c7faad	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x130826e4	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4c954f1f	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5784b9b8	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7499c820	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8623e1c0	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xc133f43a	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xd0737b31	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xd66275c9	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xd96cdc5d	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xdac0c09f	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf2586fcf	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x06a19f63	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x13f64fc8	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x301cae8e	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x31b92d75	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x5661009f	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xd64ed27b	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x093c0e33	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1298fbed	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x16abae5f	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x29e429bd	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2d9be0a5	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x334bec15	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3802e089	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3d7d3b27	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4b695f2c	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x516cdbd1	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7b353c9d	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa281bff7	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb92b8bcf	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc4cd7b8f	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd7376114	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xeabd8704	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1bf886fc	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x5b5464d7	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x65e6cfc9	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x72ea87fa	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x76eb5e32	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x971a384f	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa9a89351	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc084a6c4	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc47219a4	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc5ae5fb6	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xeefac02a	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0142b93b	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0472ca36	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0c31132d	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0c7dd9fc	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0fd1aef4	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e6b75a3	nft_parse_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x20cc3a13	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x257d7560	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2bc3f25e	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2e782084	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x32733153	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x35d87b2c	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x37686e8a	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x47698892	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4b89ae5b	nft_validate_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x552a25e2	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x55c775bb	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5965d2e5	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5da6ba8c	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5e42bcb5	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x62626073	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6706bb1e	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6bc3008e	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7d10bf15	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7d4f085b	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7dc86889	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7fcb51a9	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x85430a76	nft_validate_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8667fda9	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x940bd777	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9e637fe9	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9edab87c	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb010b6b2	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbbbf36d8	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc12920b8	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc1675baa	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe5423157	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf07d7c50	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf5ef17a6	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfd99ad5a	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x2d471cb7	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x52a0587b	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x59d898f0	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x86ad80e2	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x95427d27	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe956159d	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x56ff972a	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xa3141988	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xc98f3463	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x4e0649ac	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x586e75aa	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x099dd071	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x120cfd89	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x16515840	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x5c2524ff	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x07b3c636	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x709d3d1f	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe87c26de	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x09039f69	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x093f844a	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0ca293e6	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0f10509b	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2af990f2	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3155b514	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x37094e84	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3abc65aa	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x46d73982	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6490adb9	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x78e3849e	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x82a045b4	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x95ead3d5	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x994f2921	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xafb38d0a	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb0e892d7	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd150c7df	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd4c62acb	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf761ff09	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf9f55be3	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfb722e6e	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x4e34b896	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xb7b8aa00	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x155afb14	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x681eb3d1	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0d612c16	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x4cd23c08	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x637bc3af	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x8e632c2d	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xad3c3db0	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xed9bf6a5	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x39338835	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x94a06fd1	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x9e496e62	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xe7ba38f2	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x09450e52	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1a94057f	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x253803c7	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x259dd89c	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2cf9d322	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x327927af	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3c469b4f	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x41633cac	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x51646f1f	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5271fcf0	rds_message_unmapped
+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 0x5cf05ad8	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x74a7810e	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7abc8612	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x829ff514	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8506b79d	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8c37a432	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8cf198a9	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9054e88f	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x91fa3199	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x974b02ef	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9d3193f1	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xaedbaaa2	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc92c13c2	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xcebc48cf	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdbb08147	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdd469a2e	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe23571e6	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf1bbab74	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf3811864	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf4286e1b	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x32301c2c	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x592b2140	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x326dd536	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x3f156c32	sctp_for_each_transport
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xba7ee04c	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xdf40fabb	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x1291aa76	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x12ef3946	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x3a3fb64a	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x46043cd9	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4c803f31	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6007b150	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6988fac5	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6b1699f2	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x826dfa9b	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa5d79729	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x5bbb8787	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xab2287b4	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd07fbb84	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd653d6e3	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x01b0b766	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x03574397	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0497ac84	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04c82f36	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05601964	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x056252b0	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ba633b3	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0bd9f183	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e5a9371	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f6889b1	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x117293d1	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11c7afe4	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13fd5bdf	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14f03697	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x168af21a	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16a00511	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1975f631	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a081dab	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a5a0b08	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1aad7c50	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d48653f	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d7c2a03	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1da66199	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20f9d504	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2195b099	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21b1a8de	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2638c177	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x277c8652	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29345351	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29b2719a	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a4c8966	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2af75d65	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c525527	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d0be396	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d9d718a	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30d27212	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x32fbc7f1	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x330afc71	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x33101509	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x339f9e38	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x340743a9	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d1dbca	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x365e743b	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x369a5e3d	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x369f4508	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36b6b2d7	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x375ecada	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x384f76a3	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38555d97	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38ad6b71	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39607456	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a1aabc5	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a2f58f2	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3accf3d6	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b691386	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3be26248	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3fb4d5ce	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42ff6e4e	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x432f3436	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4364f603	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x475da5d8	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a41c1b4	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4affbdd8	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b072207	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c0ad907	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c5ed970	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c9b0e43	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d5d41f8	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac4b98	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x50b9c21a	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x546ed327	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5515081d	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55bfdee9	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x566bc140	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56796e51	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5934e50e	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x593da085	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59d4e8ce	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b72ed7e	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c4a13c4	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c97488e	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d99bc1e	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5eb41f99	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x61526236	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6323efca	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x63428ce4	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x63dcf73d	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x658266db	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66460a97	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66a1634c	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68776e21	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x689ef664	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6950bb92	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e761770	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ebdf3b0	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f5dfbd4	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fa9b110	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x702e4c8c	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x726b8aa3	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7296c337	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73541191	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7638704a	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x766c4626	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76b3271e	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x789f685f	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78d7f0a7	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78f3b156	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7928b984	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7970e041	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b31ad0d	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d1d70c4	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d455eb6	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8116d906	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82963219	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82fb74e9	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82fd4f50	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83f4c8e4	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x854beee3	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8735c8ad	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8834b445	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d53aad6	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d7cf2c6	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ed08c32	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f9f7318	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9245de95	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9335f781	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9472e08a	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x948e7d82	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x963c055c	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9663bb51	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96fe3614	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97de49f9	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b9edab9	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9dba3dd7	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9dd627ce	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e6aa2fa	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa035a015	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1152a2d	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa11c3622	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2ebc43d	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4f36889	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7b566d0	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7e0fa92	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8fc78d1	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa2a4a48	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa6cbff3	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa73d728	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaba28a37	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad311014	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae6e2022	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xafc74370	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb12c5b31	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb24d0fcd	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb29b87d2	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2d1205a	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb50aea4c	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb6a27c5a	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8397cb8	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb930b17b	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba4610a5	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb770211	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbbb83150	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc366025	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd6006c7	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe318352	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbec66fdf	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbeeb84a3	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbefe8abf	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc17e1e65	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc18eef46	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2cbf57f	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3093d3f	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3d8c1d0	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc417a7b7	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc46dffc7	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc583bcb6	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5d2f698	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc62c0a18	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca3a73bc	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcdf0ad66	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcfc4c908	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcfeaae59	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2d19a5e	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd37b04bb	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd558861f	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5b16f60	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5f65110	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd6483fa1	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd6886c98	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd68aa1ef	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd6a9910f	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd86d35be	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc0225b7	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc4fd22d	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc6b6d1e	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde698bd7	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdede56a4	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf2fef0c	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0cb210a	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2209f72	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4527cf2	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4b26d1c	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe56c7e6a	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe65223a6	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe65265e0	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9b0f19e	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9c7dfb7	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea511b6c	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec8e3d55	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeca4c54b	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xecd13f08	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0e3ebb8	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1ba4924	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2038ce8	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2737e04	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf285dbac	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2944702	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf3c58390	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf642a25b	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf69a4470	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6c187b4	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6c213c3	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7aa4594	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7b8a738	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9cff34d	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfbda597b	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc284763	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdb504da	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xffd5a9f3	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x483108bc	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x8e989f63	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x016a78a8	virtio_transport_set_min_buffer_size
+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 0x0679d27f	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1031e8f3	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x178069b7	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1fe02300	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x225336d8	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x240d71a3	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2bb87d34	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2f400ff0	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x32456d29	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x32cc47ef	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4785065b	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x538a1699	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x593a7515	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6d42dec3	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7096684b	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x760769ba	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x789dc640	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x812bd2d0	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x884e9891	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8de79b1a	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa002179e	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa5f7d1ec	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb53036af	virtio_transport_notify_recv_init
+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 0xbfe74487	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc508f188	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xca0a3b9f	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd9323c34	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdad0c99d	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde52c656	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe63a385e	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xeed99726	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf0c83afe	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfb0d2bbc	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfee45df2	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xff82006d	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0bf41435	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1f9fe6a2	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2008d04c	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x41b1464c	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x43866bbc	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4a3e7ae0	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5679a21e	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x70dc41c7	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8754e590	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa0c178e5	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa7668202	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb1ac1d96	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb2de8451	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb64d00f4	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc09f8ae0	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc15eefa7	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc55ea336	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd1a1b1a0	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd9028905	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe98862ed	vsock_deliver_tap
+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
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+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 0x6fe9d536	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xe90efac5	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xefe9fa80	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xf3b94e33	ipcomp_input
+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 0x0015475c	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x001eaca9	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x003ff214	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x008d8b95	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0097c3a0	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a819e1	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b03ea7	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x00bb8621	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x00bef174	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x01004466	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x01413c5f	css_schedule_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0150d1d8	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0168c058	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x01691ae2	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x019be375	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a407e1	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a81fac	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6ae89	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cb1451	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x01de3fb6	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e09058	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e225f3	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f88377	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x02191fde	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x025db9a1	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x02613aea	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x027a79d9	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x028ececc	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x029561de	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e16aa5	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ed9b71	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x030182b5	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0317249a	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x031a5b62	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x032b1b7d	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x039f85c9	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fda486	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0403c323	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x04388743	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f5bb3	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d0f166	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ea8706	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ebe45b	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0528c4a9	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x053562d1	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0560adfd	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x05673b87	chsc_sadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d0c681	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x05e20e4c	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x05e90bac	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x05edcb6b	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x061a6a17	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x061e4a22	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x06420d6b	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0647a180	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06619704	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x066959d9	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x066bca2f	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x066c4517	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x068fc12e	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c96db2	kvm_s390_gisc_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cc9b77	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07253f4f	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x072739c4	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x07297b79	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0746515f	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x075209ed	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0757eede	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x07966de8	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e63d88	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fb2e58	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x080f592f	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x081f3d3a	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0x0824f801	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x08436119	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x086fbe5f	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x087ffb16	gmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0882f167	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bd81b2	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c489ce	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d6d138	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e1756e	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e501f0	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x08fecdaf	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x08fef140	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0906f530	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x09355ccf	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x0941c8e7	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0987c4db	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a89c17	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c12737	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e2963e	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ed1842	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x09f8ed5c	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x09fbe4aa	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3a2ba8	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6af7b2	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a7eb1c5	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aae6801	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aaebe99	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0adcc4f1	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af8fe91	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1b3ac2	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1e1a2c	cio_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1f8ca3	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b27ee50	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b424bed	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4bd27c	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e47b1	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b68d791	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b711196	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b71c0d2	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b749449	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b86a51d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9c3455	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbe5591	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc5481b	clock_comparator_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bdcf00a	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be088de	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bfef183	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c05c4b4	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c4324f8	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca55240	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca6246d	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca9f9b1	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc331c4	nvm_set_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce98653	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d029509	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d06a123	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d09df2e	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d227f9b	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d23c210	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d490d9b	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d675190	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de4eac0	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e24a752	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3805df	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e541f71	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea73547	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb3216a	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed1c813	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f022a05	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1e69ad	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6a374d	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f812799	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc86e61	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fdf7efc	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe47975	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fee77db	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1004afd5	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101696c6	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1060605d	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a68185	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f455ec	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x11241021	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1137370d	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x118fc6c0	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1198ad30	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x11997d04	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x119dd3a9	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b38998	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x11bcdb84	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x11be6be0	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e8a8bc	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1232119c	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x12529134	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x12669aa4	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x127ea177	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x1284f02c	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x128c8e7f	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x12aed10a	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x12cc40e3	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f559d6	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1308707b	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1313d6b0	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x131ff880	s390_pci_dma_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1331fa17	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x136b066f	ccw_device_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x136da86a	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x13823178	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c3bf44	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13fc86a0	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x141250a6	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1414fda9	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1449fff6	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x144ff1b1	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x14be9e2c	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e3e7ac	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e86b60	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ec5c25	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x151117f3	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1523d0d7	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x15348d5d	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x15379810	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x1548e6ec	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1572e1b1	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x157bc422	s390_enable_skey
+EXPORT_SYMBOL_GPL	 vmlinux 0x1586d12f	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c83997	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ed208a	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f1d31f	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x15fd3f6f	gmap_shadow_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x160e47da	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x163e5882	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1659b763	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x167c6afa	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x16935079	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x16ae5e03	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b69bc8	zpci_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d23193	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16ec7dbd	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x17149987	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x171d0712	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x17286654	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x173d1e67	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17731b49	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1784a4ad	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17fdb371	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x182b59a4	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x18303342	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18716c6b	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x18cfa333	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e013f4	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f2b183	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x191a7487	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1922a852	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x194a57e9	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1951b491	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1972b601	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x19941441	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x19946fde	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c30000	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fd636a	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a09127b	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0b8245	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0f903d	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1976c2	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a29844e	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a2f7773	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8e9d02	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa0e93c	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1abbcd8f	enable_cmf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac458a1	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aca6f4d	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad9a807	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af0dc24	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af3bb1e	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0946d8	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1f5ad0	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b504a41	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b65dc73	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6c5a67	chsc_error_from_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b785b09	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b833a6e	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b87fa89	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b88d188	arch_make_page_accessible
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc2fc69	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd329d3	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdaee07	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0b8cd6	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c43d4eb	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c46c983	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4c792d	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4f95df	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5033cf	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8eeaf3	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca41e72	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cba4a66	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cec0738	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d059f08	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0b7da5	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0d4889	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d329d84	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d370243	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d561375	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7df6b7	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d81e4aa	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9532b7	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d973ef6	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da9ae59	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dbfd5be	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc52b84	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd161c0	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd29384	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ddab88a	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dee368c	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e46944c	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e6af6ae	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e6ec13f	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e727547	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7ae12b	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e80ace0	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e82d66d	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb64c22	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1b3b03	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1c9cb6	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1cbc3c	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1e862f	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f3053d3	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f380493	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4027fc	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f78665d	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fada5f5	nvm_get_chunk_meta
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc840b1	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff2ff68	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff9596b	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x200cd837	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x201aa9b1	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x2039c1d8	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b25e7b	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ba4597	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d4a254	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d84232	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e410a9	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e6f928	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x21086296	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b64b33	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e2ad01	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e39f48	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2209e40e	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x2217a54a	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x221db14f	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x224901c0	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2258c7ff	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x226a42f7	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x228045fe	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b73e95	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22bc8d9a	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x22cf3db9	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e20b10	chsc_siosl
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2315138c	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x23154b99	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2316c1cd	kvm_arch_crypto_set_masks
+EXPORT_SYMBOL_GPL	 vmlinux 0x231d779d	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x232b23a9	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x233f5316	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2359430e	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23886854	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x23a943c7	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x23af07df	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b47067	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c4aaf9	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d3ad51	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23de791a	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f73365	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f92ab7	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x24072935	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x240825cc	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x241d9cd0	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x244a329b	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x244de69a	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x245410d5	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x248f0ea1	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x2496b94f	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a423f3	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c6beee	nr_iowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x24cca08c	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7c66	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x25671cc0	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25aa7dd7	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x25add004	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x25becc23	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ef736e	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x2620b7bd	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x262ef9a6	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x26391f3b	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x266c479f	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2687127a	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b50720	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b7ad8e	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x26bad140	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c70056	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e458ce	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f9adfc	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2709da93	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x27400737	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x274669cd	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x27545244	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x27906eca	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a43e51	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x27afb82d	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b211c9	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b25c25	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b64afd	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f55342	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x28152ece	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x282bbf28	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2837e772	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x28439b3c	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2855064d	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x28565a3b	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2858b0d5	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x288d81bd	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2893947c	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d20cbd	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d8b49a	chsc_scm_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2907e284	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x290b617d	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x290f03ae	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x2921a654	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x293a96d5	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x294074e6	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x29886bfd	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x299eda41	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a98424	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e2d983	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1289a7	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1538ca	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a75a1fc	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a80e33f	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a995c0e	cio_tm_start_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab3810d	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab4cc46	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab98d6f	pci_proc_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abcc5e8	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aee07e9	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b05a610	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1cb437	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b50a9a6	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6c4dbb	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7aa15f	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8b1215	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9ae30a	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bbfe9b8	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c14fb11	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c204026	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2ca4d7	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c4dbb42	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c53ad8d	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7d13e2	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca44879	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb3937e	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cca30fe	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd62462	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cdc2515	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce17b2a	vtime_account_irq_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d13cab5	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d15eb50	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d192d30	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d286e93	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d414b00	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7c6a4f	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d966c6c	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2daa2177	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de1f7f8	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df7cbeb	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e0efacb	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e19ebd0	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1b4faf	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1d43cf	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e32c374	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3814a2	css_sch_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3e2066	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3f37dd	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5ecbd2	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e77705c	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8050ce	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eacd05a	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f001b05	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f27a9a4	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f412a81	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4df8db	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4f67c3	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f58667c	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f665dee	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7c3dcc	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd1c8ba	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd378b1	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd7ed55	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd86a88	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3012bc74	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x304898fd	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3049663a	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a137f5	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x30de71eb	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e252d2	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ecd798	gmap_shadow_pgt_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ee341a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3105c959	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3123c929	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x312dee3c	cio_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x314176ce	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3155913b	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3181d326	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x3186853f	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c0d6f7	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x31db52fe	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x31edb1c3	appldata_register_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3201e7cd	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x3207fbec	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x32083467	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x321929be	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3235d0f5	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x324400be	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x324bb1e1	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x324eb057	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x32534e12	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x32734356	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x327c55bc	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x327da6e4	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a06091	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b18775	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b31551	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d44216	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x33403aa6	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3377f4da	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x337aedbd	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a17133	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cdb442	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ce5deb	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fd8a5b	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x3417ba74	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x342d150c	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x342fda1b	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3469e9a8	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x34705f96	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x34746865	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x348905c2	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x348ab670	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x348fd9a3	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x349843d1	scm_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a5e980	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b536ea	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b8db47	zpci_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d72d61	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ebc1b8	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f1574a	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fd2f8b	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x351314df	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x351a7d44	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x351c06a4	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x35254d04	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x35276631	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x353a8905	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x354525c9	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x355545e4	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a18ca5	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d4d3cd	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x35faef64	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3607c5d7	sthyi_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x3609b2c0	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x360c6a00	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x361066fd	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3610b986	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x362f5817	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3653c544	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x366ec383	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x369ee0d3	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a11fe1	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b3523c	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x36be9d7b	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d00ee3	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d19054	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e46f12	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f190d7	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x37119210	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x37241603	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cb830	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x372e4e0f	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3731d2c3	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x37399171	cio_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3757ac7d	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3760459b	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a38e27	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e2d5e9	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f525dd	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f7a29c	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x3809c8fa	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x380d982a	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x380f46eb	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x38157cfc	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3852b73d	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x387302b4	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3873e4b8	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3884a884	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x3884afac	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a686de	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a6ebf4	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b82d48	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fe39e1	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x3907d5f2	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x393ffa6f	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x394cf0bc	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x395f1d09	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x39743820	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x3997c26e	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ae2e6e	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c70693	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f71987	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2b75b6	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2dc07f	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a33405f	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a492f6a	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a57d09d	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8cdc5c	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab0753a	kvm_arch_crypto_clear_masks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac71367	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afcb474	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0ec2be	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b16b016	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3a9ba2	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b46fac6	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b66f699	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b78b7d5	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8366d2	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb838c0	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd10e2a	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf4c3aa	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c010fd0	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0ebaea	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c15d884	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c168688	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c36d833	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4a93b2	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c80c610	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c81c831	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c97f7da	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc60807	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ccfe2c1	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf2ef88	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d1e1300	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d238b49	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d496816	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5bd622	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d73bf89	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d74dbbf	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8b45f9	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d939ebd	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9ab231	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db59b4a	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcfedda	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dea7970	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ded95d3	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e056290	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e12cb2f	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1541ed	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e2620dd	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3c3c2e	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3efaf2	ipl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e66c405	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6a9f8a	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e708e78	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5649b	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed260aa	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee00b85	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee09bfc	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee7c66d	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef7d0ce	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3d1cea	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3d1ee6	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4aa5c9	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f69b842	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f737d05	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f83b99c	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ebbb2	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa2d730	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fde737f	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400e51b2	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x401ad0a3	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x402543fa	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40429cf1	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x404b2bdf	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x405547b0	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ec9a0f	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x41091f63	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x410a3828	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x410f47ef	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x4142c72e	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x41446fdb	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x41489af1	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x41984d83	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ae586b	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ae795c	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cf1962	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d02d98	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d438c4	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x426eb9ec	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4284eaea	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x42908689	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a62041	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ba92d7	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x432afc91	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x432f4b40	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x436659a9	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438f856a	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x439c37a3	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c33665	isc_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d39898	gmap_shadow_sgt
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ea81f9	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x44090b10	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x440be4b9	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x440da4f9	gmap_pmdp_idte_global
+EXPORT_SYMBOL_GPL	 vmlinux 0x443fbdbe	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x44541878	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x4464588c	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x4478222a	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44cdcb60	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d122cb	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e7bcdf	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f58a73	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x44fc11a6	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4523162a	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x452a1348	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x452a97ca	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x45553a7a	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561cf15	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x457271b6	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x457e50b4	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x45834f12	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x4599feaa	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x459cbb8f	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c23146	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cf413f	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d0bd93	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e59c38	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f44ec5	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x45feff17	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x463fd500	ptep_test_and_clear_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46402f77	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x465bc54a	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x46642bfb	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x46846491	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b906a9	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bfb5ae	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ce1081	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d68bec	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x470b0eea	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x4713dc61	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x476390ff	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x476d4a90	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4799cb75	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a1177d	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47af4a32	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x47da03f1	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f5c623	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f7671b	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f9cf18	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4803a40b	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x485a2074	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x4889de25	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x48981599	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bbf525	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c0d321	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d57c41	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f75e3f	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x490eb303	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x491cda16	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x493c95ac	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x494d4eba	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x49534f9e	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x496c60c2	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4976b7dd	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x49888a2e	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4991fd2e	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a62562	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bf8cf9	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d1194d	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dcce81	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0622b7	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a385295	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a65d001	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a70f239	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7805f6	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a82a975	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8dc941	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4acde88d	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae3aa54	ptep_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b151b98	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7f5f64	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7fb95c	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b840dfd	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b85ea7c	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b88f561	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b96729e	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9fe1d3	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba88dcb	chsc_sgib
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd89c5a	css_chsc_characteristics
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bdcf26b	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2cfd15	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3a008a	gmap_register_pte_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c42c86f	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c44a507	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4f251d	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5c57cb	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c8d0cc5	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd82b45	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d02b77e	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d33b154	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d56ebb5	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d7c5fad	css_sch_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d7f5d26	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dbb176f	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc15c41	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd37f3d	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dde2541	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e32b2db	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5ec818	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e630cb1	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6353a4	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e71c0fd	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e96659f	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea53c2d	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec153c6	nr_running
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec7cbd8	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eda64e8	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee448f1	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef2c2ab	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef93aa2	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f01bb5d	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1fffd9	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7a830b	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f9b46bd	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5019e90a	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5048c8eb	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x5056502c	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x507c8dba	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x509379ce	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a19534	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c3f02c	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c6ecc2	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x50db648b	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dcc5cf	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x51110575	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x511cc1e6	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x5130cd4a	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x513a4e08	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x514c9d68	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5151c1df	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x515d14ec	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5165c739	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x517a7975	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5191c9cd	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5191e34c	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d66f23	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e1417d	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5204a1e6	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5218d9f2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x522a520a	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x52316145	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52473fde	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5253b0fd	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x52568c1e	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5267a793	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x528d9735	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a04be0	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ad6c11	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ae3f93	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b8192a	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f459f0	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5307d3fd	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x534c488c	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x5371861e	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5395d2e8	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ac9529	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c3c887	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ca9acd	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d7bf7d	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x53eaa334	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x53fa8ef1	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x541979b1	gmap_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x5424bea6	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x542a93c6	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x542dd857	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x544430ff	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x545f9ab3	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d04a19	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d0e873	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5506ddc6	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x5531edcf	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5564dd57	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5569747e	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x557cd8d4	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x559aa74e	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f2580b	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f8be93	gmap_shadow_r2t
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f91924	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56393e1d	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x56543c23	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x566469c8	gmap_unregister_pte_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5683788b	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a9cf3a	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c1e9c3	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cc37b2	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbf27e	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f34863	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f3cae0	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x57137bec	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573983d5	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x5739c3ee	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x5770a754	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57adc2a3	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c16f30	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f70547	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0x5807ebbe	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x580913dc	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5834fc8b	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5836ad20	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5851006b	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5858ba17	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x586148b7	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x58979591	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a730c0	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d27331	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5931a16b	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x595ed380	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x5961ae6c	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x59788751	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5981dfaf	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x5985a58a	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a07bf9	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c9a6a3	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fe13d8	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a47e992	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a636a05	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a80085b	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9f1575	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa602c7	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac04041	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac74309	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad132e1	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aff0172	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b11c662	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b15b5f7	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bacf92e	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbc74a2	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdfdf1b	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2fe3f0	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c307cd6	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3bd466	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c61720d	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c622e3d	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6d085f	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c702a59	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c75c736	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c844f52	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c900885	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c99c5aa	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c9ac059	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc28ecc	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdf621b	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce90c3f	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf0fedf	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf56ca0	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0119d9	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d292c3d	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2f3119	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d557f6b	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d69bb8d	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dd6d5b5	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ddd9cd4	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dfbad77	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0ec716	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e43ec25	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4958e8	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4e1c98	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6bae67	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e93cbb3	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9ba0a1	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ebdc659	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec0928b	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec2d5bc	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee32422	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eec2d22	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5efca399	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f072594	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f1994fe	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23addc	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f280cab	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7deec6	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f8b9726	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f985153	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb1ad95	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc2569e	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x60020575	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x60157b6c	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x601f5d79	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x6023225b	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x60271fd0	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6029efd5	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60369793	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x60374508	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60c1938b	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x60dc7524	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f6ec88	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x611589c1	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61450a96	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x6161074a	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x61792cdd	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x61910c0a	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6199fab1	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae4b4e	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae5401	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae9ee9	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x61dfcc12	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6235c8b5	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x6246adc9	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b3d99d	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f40acf	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fd0204	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6353f544	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63715d27	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x63989ef2	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x63a57c6e	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c63c56	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ed14ce	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6417b898	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6429eaa1	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x64431075	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x645f0068	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6460da3d	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x64785cea	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x64849cba	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x648b1f51	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x648c0625	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x649af7ac	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bf7a2e	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c98896	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cf9612	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x64e0e73e	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f76609	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faceaf	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x653cd7bf	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x6559062c	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6573fc20	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6585b2d8	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b24e39	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b34f5a	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b74925	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b79c78	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b9de52	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x66067aab	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663e6352	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x663ec59b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x6657c546	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x665d10f1	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x6679f9a1	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x66813da2	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d8fb89	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x66df1275	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fa4b83	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fc9e4a	scm_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x672dd258	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x675d599d	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67755baf	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x677e7552	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6791f57b	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x679cba6c	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b66ec8	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e6bf10	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x67eadc79	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f4d955	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f5c1d6	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x680b2c57	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x6843a9f4	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6877a70b	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6882982d	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68af2cc5	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b20192	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b3c02b	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x68da3078	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x691bbc92	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6942daee	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6950e288	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x697a7448	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x698e7e26	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x69aeb477	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b3436d	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c89658	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f95599	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fef281	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fef90b	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a008077	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1209af	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a20c193	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2197b1	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a479a64	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a562ffb	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a608b96	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a9dc3a5	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac4009b	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aca7237	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aee178e	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b00c6d1	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b053f43	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2c0063	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2fd6c2	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b32304e	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b348cf4	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b40e8a6	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b45a488	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4872aa	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8308fc	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bef0e95	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c446665	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7ccb38	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c822c9a	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c9aba58	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb94bf0	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc1e6c2	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd8354b	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1e9896	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d51cef0	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d77a883	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8df582	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db19d81	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db37e7b	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc6b3eb	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dee3da1	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df48118	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e02555c	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e104c57	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e392ab9	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e52c94d	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e54e27e	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5e256b	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e80934e	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eabb09b	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec12ac6	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef21487	virtio_finalize_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef513ad	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efbafb0	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f02f246	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f393fd9	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f480310	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f52035f	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f60c6b2	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7c5b7f	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7f600c	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f8a6086	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd13eea	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd3d894	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff0b66c	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffc957a	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x70132dcc	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x702e528d	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x705534fa	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x705feb1b	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x7067fd98	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x709328a9	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ad2500	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ba3c32	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70dad4da	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e24128	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e42aef	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f89d53	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f97ec4	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x7103528d	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x710bee1d	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x713e51d2	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71650819	add_bootloader_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x71785b7b	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x717922db	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7179c31c	zpci_iomap_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x718b8ab1	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7190a069	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x71da56bd	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x71df448a	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f393e2	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7252b9f2	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x726539a0	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x72af4371	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x72be1003	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72dfab7f	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f23c3b	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x72fc2b38	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x73008023	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x730258e9	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x73083636	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x734f34a4	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x735b5e7c	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x7368fe7c	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x737c5286	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x73883a47	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7392ca4e	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7398f86e	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b5116e	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bd0324	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d9dfd3	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f38d4c	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f981ac	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7402e3f0	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x74076533	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x74696c11	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x747b5f1d	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x748b7dc4	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b9b575	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x75036aca	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x751d1d72	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x751f97a5	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752e8a9a	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7531b0d9	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x754df5a0	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7554b896	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x75612cf3	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7566e902	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x756e5f3e	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b06f45	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cbfb09	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75da4dd1	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x75eac7ed	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x763badef	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x763f7cca	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x764190a2	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x7650c36a	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x7653ac8a	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x76636c3c	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x76925751	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a4bc40	cmf_readall
+EXPORT_SYMBOL_GPL	 vmlinux 0x76b221c9	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bce3c3	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76ea0477	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x770c65d2	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x774eb87a	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x77577692	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7764ac85	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x778be08f	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x779ee639	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c19e7c	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d259f1	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d8369a	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d8a091	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x780cb47b	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7831375c	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x783a3efe	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7844f0a0	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x784e9838	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x78533dcd	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x78551509	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7859acfb	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x78668a5d	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7885962f	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x788892d7	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7890375e	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a0a69d	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cfd77c	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x791efafd	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x79264080	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x793bb8de	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x7946b45d	gmap_pmdp_invalidate
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x79849745	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x799e0554	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x799e162e	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a2c85e	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b811be	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f542c0	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f7b56b	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f9c8c9	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2c466f	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4153ac	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5883c2	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5bb410	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7dcd9f	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abe23c8	shash_no_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x7acfb59a	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aeaac78	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aecd54a	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af1fc5a	cio_commit_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afa5aa4	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0c65b8	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5411f3	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfdcd81	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2d392d	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3201bd	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3378b3	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c35e60a	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c425ea4	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7bbcfe	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c873f24	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c933f36	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca2d357	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca57491	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca88f6f	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d143ff7	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2bc63b	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d33362f	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3c75a7	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d589123	vtime_account_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6153cb	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d66762b	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7a3046	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d9b8183	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de6cc23	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7def688a	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df524e0	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e152c3e	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4f3f31	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e55376a	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e611a18	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e62ee11	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e73f8d2	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea9d203	gmap_make_secure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebaf5e4	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x7edcfb4b	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7edfdb92	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef0ac76	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f106fee	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f57cac8	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6db960	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb5e7c2	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb9c2a5	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fbcb7c6	gmap_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7feb0060	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fee600a	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x80352741	__gmap_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8070e438	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x807cf929	gmap_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d06b0e	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80df7b3a	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8100a2f6	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x81133f4b	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x811e7d12	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x812ea476	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x8131a2f8	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x81434d9c	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x814b44de	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x81555ed5	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x8157bd78	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8170d5d7	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x818f7b50	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x81970645	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x819c7590	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x81ac13f3	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e88e87	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f464e5	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x82002332	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8237af1c	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x82634236	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x8268320f	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x829654bb	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c5de31	css_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82dac0ae	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x83157441	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x831d7c70	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8322eb0a	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833bebb8	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x834d4b87	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8355705d	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x839edae2	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a42c3a	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x83be552e	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d079f5	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x83da01dd	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e9b185	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x843aff65	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8448bd07	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x846e7720	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x84aca4d5	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x84dda099	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x850ddfa8	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8534e394	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x853c889c	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x85435a34	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x855786cc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x857b02ac	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a12db2	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a5c56e	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b5a539	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x85bcf9a7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x85df013d	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ecdc7a	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8615bba7	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8622e941	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x862decb2	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x864d86c8	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8650e9cc	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86864aa1	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8692294b	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b0b6ba	zpci_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ba36ad	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c4dc3d	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8703a18a	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x875992e4	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x87627259	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c4d4d5	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ee5829	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x880bb4de	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x881a937b	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x881d3d51	udp_destruct_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x88379dc5	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x884aef2e	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x884bb791	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8853e8a3	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x887f177c	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x88a96b65	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x88aaa8bf	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab12cd	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b64f6c	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x88bd0519	gmap_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c3d98b	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x88d3f35e	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x88dcb562	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x88f91dfd	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x890c21f7	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x893e86ee	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8947daa5	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x898c13d6	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x899873bd	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x899f2729	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a6d79c	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d6578e	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x89eea81f	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f12a2c	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f4c3d6	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0b6749	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a16d44a	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a1f047b	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2e7aa9	gmap_discard
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a362f0d	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a37277b	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a63bf7a	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9620ea	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9aacda	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa38160	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab733fc	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0f821f	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1641fd	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b50d5cd	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5a5066	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b71510a	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b73b99d	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b977391	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba22847	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba56808	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8babe05a	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bcff974	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bded20f	zpci_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be701b8	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be97314	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c013395	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2f8347	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c378f32	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5a112c	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5dd3e5	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c65afb9	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6e0943	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c74dc2a	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c837e63	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9a6b0d	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca2693d	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cae1780	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc86e35	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ce3e317	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf100d6	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf2c31f	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d27617b	ccw_device_force_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d469e07	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4a40cc	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5fb4d5	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6aaa8f	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd10fa4	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df0a16f	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dfa4c0d	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8fdc89	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec07969	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edce25b	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efd7190	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f08e81b	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1bba96	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f49021d	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5bf523	__zpci_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8faac364	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fad9e44	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd1d27b	ccw_device_siosl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd4ddb0	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd736bc	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fdf70cb	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fec5ee8	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffcab4f	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x901c0c24	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x901e899b	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x90295936	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x905a8807	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9074c64b	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9076498f	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x9095f42f	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a1c2bc	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a49300	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a93e57	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b50576	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cd245d	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cd3b5d	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dfd29c	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e9333d	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f4c5d4	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x912b240e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x912ee710	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x91320455	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x914b40ec	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x915f9ff3	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9162873c	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x916aab80	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x91808c49	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x918b0022	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x918ba29f	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x91957a31	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x919e7158	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c43e99	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6df45	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x91da7be1	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e1ccdb	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x91eb518d	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92322658	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d7e26	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x9246d123	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a94ce7	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x92abb552	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ae6ed5	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x92be6734	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c2d5ea	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x930b4ff0	ccw_device_get_chp_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93aa4056	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b67b46	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e4020b	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e4ed1b	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f6f07a	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x941423c1	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9425f5a0	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x942b85ca	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x94943717	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9499fb32	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cac507	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x952391c2	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x95584219	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x955cbdaa	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9587d12a	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a37873	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a78464	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c78875	scm_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d18692	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d35958	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d9402d	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x95da5123	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e006e2	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x961d2219	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x962761f6	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x962d0e63	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x963a26a2	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x968e0c49	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x96946fb1	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c8efca	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d52a05	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f26287	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x97149816	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x973df3a6	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x974326ac	css_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97910902	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ea9f10	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fcb32f	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x980ac90a	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x980ee163	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9823b498	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x982a2dad	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x982dd3b2	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x98334b4d	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98618d2f	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x98780a59	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x988cb4df	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x98efdbfc	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x990caddd	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x990d38fa	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x993a9ff3	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x99829b72	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a37964	gmap_pmdp_csp
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e5f999	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6268ba	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a978202	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa6fb4b	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abdb661	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac7fa7c	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae2da16	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aee8816	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af8cbd8	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b21ec99	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5379b3	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5d8dfc	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b61a8f6	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b627f16	cio_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b65489d	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b736d6d	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb56da1	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bbed36c	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd1b255	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be9c29d	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2207c0	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3682bf	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c743459	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cb3c8f5	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd05330	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce171f9	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d06e990	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1d1384	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1d1400	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d206095	udp_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d26179d	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d70a759	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d97b5b7	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc905f7	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de2168e	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de24f07	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e215013	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2b3fab	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4ff3bc	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e650260	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e72cc4c	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e77ddbc	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7e98ed	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8934da	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e89dc22	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9bc7dc	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea7aa53	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec054d5	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edf4503	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f0b9e05	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36104b	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f46a06d	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4e91e5	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f52119c	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f521a84	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f5a81d5	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9f2b48	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x9faaea87	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb4c236	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff9539e	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ffaa569	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0214fbd	cio_enable_subchannel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0567ced	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa095c8bb	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a941bb	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0cc23f3	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e417b4	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa110a7a4	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1651e93	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0xa172ea3d	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa191527a	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19657f1	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ad2be2	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b76150	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c929f4	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1cfe77c	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1eb1e84	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1fc217d	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1fded50	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20e9472	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2448ad5	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa25857c5	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26bed8e	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa28500b5	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa28d6f8f	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa324b7a2	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa343783d	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35a3638	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35f94eb	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa37061d9	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3916a2a	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f4881	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d8e0be	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46bf7fe	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa471982d	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48cf4fd	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4901962	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49c50e3	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa502676e	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53b13ec	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53e1ab2	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5745f0c	gmap_mark_unmergeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57d3420	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57de77d	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58934eb	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5ab0e73	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c8645b	css_general_characteristics
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fbb62f	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60ee846	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa63e0383	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa63e893f	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65c5faf	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66dc309	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6aa729d	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b2403c	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b40095	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d4a6bb	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e39aa3	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa71bfc96	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa729e8e4	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0xa75462b8	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76f2b55	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76f52ec	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fee96c	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa800ffa9	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8072fc1	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80aebca	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80c2265	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xa81522f3	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xa838aea3	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83eb0f0	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa845cf9b	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xa850d8f4	pci_debug_msg_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8554113	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa859bef4	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85d6ebc	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8865774	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa88ea668	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8922b2e	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8aeb16f	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bd0cef	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d96609	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8efeb18	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fabfd3	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92710b3	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa935dfb2	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9441b9e	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xa94f7525	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95ca257	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa967307d	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa991dccb	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ccd9f2	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9d0ab1f	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e257e3	gmap_convert_to_secure
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ff15b9	s390_enable_sie
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa19c6f8	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa23d57b	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa24bec1	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3b035e	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa4a4137	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa59f5ec	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa61de11	irq_stat
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa72f2fa	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa758251	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa822786	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa8520ad	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacc16aa	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacee564	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xaadd2892	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0xab08ebd2	css_sched_sch_todo
+EXPORT_SYMBOL_GPL	 vmlinux 0xab185d51	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xab49e5a7	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xab54f35c	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xab643323	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xab66ab16	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6e7c57	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xab97a97d	s390_handle_mcck
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabac10b7	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0xabbef791	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc77c32	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcbcf68	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0089e5	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1223a7	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1be34f	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1ea578	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xac2f343b	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3343a8	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xac42d4e6	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xac583c54	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5a789c	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5ea25e	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xac803348	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xac97ee18	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb9bcf8	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xace04916	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf3f945	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xad29f9e7	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3dfa13	lgr_info_log
+EXPORT_SYMBOL_GPL	 vmlinux 0xad41c951	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadaaa3ae	diag308
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc6d03c	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae016863	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae366bcd	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae636d37	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae6c4b76	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xae737f78	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae87c067	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaebc534f	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed71326	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xaefa78a5	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf0d9451	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf352b04	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf46cece	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf819f17	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8c3500	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf905c8c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xaffeddd8	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0110e3a	gmap_shadow_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01b6b78	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ea86f	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06b922f	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb097c15e	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a57ba7	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0eafe86	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0fef32b	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb120656c	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12a7c20	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1319f15	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14c4399	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14ebdd3	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15b999d	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb177e8ed	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb17b6ffb	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19f152e	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ac9fc2	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bbc3ff	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bdbe0c	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bddf10	kvm_s390_gisc_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c310fc	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d5a27d	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f47314	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fb8921	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fbc98b	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb200878d	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2051cf9	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20a5965	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21d9662	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb228d9b0	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb230ab2c	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2371fc4	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb251455c	ccw_device_get_util_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26bc6eb	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26cfc9a	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27b56bc	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a8971b	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b3ed63	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c8c51f	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dc3ac5	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3395c7e	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33bbabd	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36eb2a3	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37fa039	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb391891e	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b3bbce	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e1ee4e	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e1ee82	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4151709	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb423f822	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44ab713	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46fbe0b	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47a70ce	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a32cc6	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b1682c	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4cc2b9f	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4cfd03c	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4f26427	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb521553d	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52bb839	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52dd08b	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xb531efc3	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57170b2	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a4d6c2	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ad466d	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c6b9ae	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d102b5	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e8ba4f	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb638f70c	chsc_pnso_brinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6436e00	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64d34e8	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64f28ff	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67d985d	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67e881c	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69ececb	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69ed19f	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a29f9d	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d50158	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6eb3304	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ffebc3	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xb700ce5a	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb700ead4	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xb72cde2b	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7405713	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74d1e30	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77a0273	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7965ab7	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7bc3c69	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cecdff	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7fe5aef	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8037ad1	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80506b4	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81dc55a	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb860c2e3	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb879c5bc	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb891f979	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89a54fc	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c1910a	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c2f8e7	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c8359a	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9153905	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9248307	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92798c7	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9398972	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93a6a2e	zpci_write_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xb947ae40	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95c0e43	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb962bd0c	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97ec30b	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb982f858	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98a055f	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98f9f6c	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c5d6f4	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9dcd1da	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4a4385	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8c6c18	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xba97a7a2	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadd453a	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae0977f	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae55c45	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae8b714	gmap_shadow_r3t
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf04ab6	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb06af8b	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0f6ef2	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb320673	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb338409	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb364295	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb44ab07	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5170c5	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb563d39	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7b3f80	chp_ssd_get_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7e1544	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb935325	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba22fc3	s390_reset_acc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb1fee6	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc121a5	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc40a71	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd63990	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbf5e882	ccw_device_get_schid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc10ee8f	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc118ccb	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc161871	gmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3b4a86	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc46b3d1	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4c4bcc	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7c2e1f	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd3c2d3	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd6f35f	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce1032d	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcea58fc	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0f5668	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd29d570	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2bf341	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd332cc5	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd34beac	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3b949d	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd484318	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd9bebf5	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc5e2c8	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcbd897	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xbddee1f3	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdebd9b8	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe007695	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe020be3	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0c5953	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe250b46	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe254be7	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe530117	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe648b30	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea42558	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbecca477	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeccaa04	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef3aa17	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf16db66	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4e88f4	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5822b4	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf880837	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff02657	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc024fc1d	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xc050b44b	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xc057fd08	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05f1aff	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xc062d9d3	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xc064b7bf	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0913fe8	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b4cf17	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10b0de7	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10ee67a	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14c8661	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1660249	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16f6ef4	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ad0eaa	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d4806d	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ffc6e8	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2079e8e	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219caee	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23c53f4	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26e183b	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc285ccd6	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29b86b7	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2bc832b	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c98814	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc311d664	gmap_pmdp_idte_local
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32076a3	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3251e52	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33de59c	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34228f3	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3527099	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc35d9f20	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc364ce7d	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3673c6b	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ae97f7	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cc85c8	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cc95dc	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d1e898	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3de9bca	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f6fab8	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f950e2	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc414ec68	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41a0c51	chsc_ssqd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43ff696	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44d2f81	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4558f4f	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc45aa179	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4635c7e	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc476632a	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc480eb84	appldata_diag
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48f7eb5	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49be51e	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4bd88d1	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4dde534	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f379b9	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5238408	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc589f085	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc606cf93	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc616bce0	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6333741	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64a3cf7	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc665c958	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6751868	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67a1020	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6bbba0d	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d5b45a	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d69559	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70fe72a	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc710c0da	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7270f3e	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc755c93f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xc779cc25	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b80d0b	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d6545e	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc80d4774	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83d2a1d	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84c4023	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8669e6c	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xc876b3c7	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e6560	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a6e09b	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c178db	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c97eaf	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d7a106	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e30ec7	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e9c5ff	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f47c7d	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xc931a8cf	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93461f9	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93881aa	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc961abf0	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9653a99	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9665e4a	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97177a7	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9723b85	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9bce76a	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca04c3e1	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xca06455b	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xca541308	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xca55aeba	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca98712f	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaac7ef0	pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac35ba5	gmap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaea80ac	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1cbf76	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3395ff	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3b5689	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb76c262	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba9223e	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb39836	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbbabc05	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbbf3028	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc13623	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd919e7	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe7d179	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe951cb	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc10d810	cio_disable_subchannel
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc180370	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc6e6982	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc74f56b	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8474a9	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc967efa	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9acf1f	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9ebaf3	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xccc04f67	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd26b76	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd9bde6	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd9c3ef	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce7fbb8	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd07368c	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0abb72	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd364d13	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8e71a3	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd99cd4e	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde1891b	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde8a4c3	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdea4ea7	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1b0bc	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xce3b5066	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4a7718	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5184bb	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xce55244e	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6a55b2	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xced60735	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0bfb2d	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf40355f	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa75c4f	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd1f013	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfda809a	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe85a30	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xd031b589	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xd037f05a	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0406f2f	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd05de5ba	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd083be63	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0aff12f	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bffefc	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0cbed41	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0dbf108	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e01140	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e8c5ad	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f4d3b2	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd170baad	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17d40b8	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1901df7	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c022ba	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f55663	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2527873	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26bf592	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28dff1e	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2de10fc	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e79416	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f52b2f	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f87e4e	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31481d2	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3243ae8	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33cd801	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36c2ec6	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xd371b757	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38ca983	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a858b3	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3baf7b1	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3cf769c	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d840a6	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3efb072	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f0a6f2	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4081d17	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd411f257	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xd424faef	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd43d148c	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xd441128c	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46023fc	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4763232	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xd477fcdf	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4816b04	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48c0093	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a82290	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b93d12	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4cd377d	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d10ed9	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d55d9e	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d5e499	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fd4a7b	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5044967	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50d21b5	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5171e8d	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5569b6c	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55bebc1	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5c2670e	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ca12ea	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5cf0d72	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5fbf6e0	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd627c027	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd638f0a3	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6869306	gmap_shadow_pgt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b0c17a	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d02a31	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f80a66	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71ce94a	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73534e7	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd737561a	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7559f24	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7983303	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7a6c0bd	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7bb4ba6	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cc3a45	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e131e9	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80a8297	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd810fa3f	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8290fe7	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xd82cd7b6	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd86e15db	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a840a5	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8aa241d	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c387b1	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f01ae8	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f0a4f6	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd900cd92	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9038a83	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9071733	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9077848	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd944a99f	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94da010	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95c1753	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd964bb8f	cio_cancel_halt_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xda150cfb	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1753fb	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3f3e8a	isc_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda47ec34	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xda60a911	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaaa0f06	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab30e47	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdacb7377	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb175797	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb17bbe1	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb28e067	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb38bca0	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3e8731	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6bab57	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6ea7b5	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7906e0	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7f18c0	__gmap_zap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb949fab	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbad278e	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb7248a	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb89ba6	gmap_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc7b85d	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbda0cf2	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc63c5d3	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7ec614	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7ef31e	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc98dd2d	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbb5d0a	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc09307	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce2dfe9	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce968b0	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf7cfe4	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2f29f5	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4478a2	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd69f5b4	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd74183e	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd76e495	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd786d1b	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd95a4fb	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc3da67	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc51804	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdddcee9d	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde2ed9f	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xddea2c68	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0xde056ce0	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xde209968	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2cf948	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xde329c6b	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3c58b7	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xde489b4c	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8f7636	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xde97f890	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xde988464	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea7bed3	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebc20e6	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xded47f34	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeda2c8b	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedc47c0	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeee90b3	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeef3447	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf07617b	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf111814	s390_reset_cmma
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf12c824	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf14037f	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1a96e5	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1e31fe	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1fbc03	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf33d8d6	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf351041	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf360ea1	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf3e9b97	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa51ffa	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc508b7	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02b5838	disable_cmf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe03bd770	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06388fd	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe071d05d	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0aed367	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f10b94	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f4e3d8	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f7768a	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12f9b08	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe134e497	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe13c3aac	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe185af56	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18b2884	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19535ad	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe198283f	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ac8611	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1be7f1c	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f0aac9	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f2de98	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f521e4	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2099f95	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23d9a29	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2662a50	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26d79b8	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2829f07	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xe284403b	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29506a7	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xe297d80b	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a331ef	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a7e15a	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2cb40f1	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe307205a	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3892ce4	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38a9d2a	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b6ce0d	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c2ec55	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e5e42d	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e91c3a	zpci_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40b9d5f	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40e5f30	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4191cb2	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe41eebc3	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe42e0568	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45bded5	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45e745a	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47571bc	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4758f83	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe484c6a1	cio_tm_intrg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe486e451	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d430a9	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f3e2af	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe524d4d9	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52ec0fb	gmap_read_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53010cd	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53e3212	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5549a4c	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe572ba14	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58fab6e	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59edc7c	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a75cd3	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fcb4e3	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6204582	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6494064	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64a554f	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64b9902	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64e7295	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a1cc4c	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b49c83	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6cd421b	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6cd6c64	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e21ec2	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e2c7be	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6faeb76	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe707761b	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xe724aa48	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72e844b	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7337308	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe749f90a	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7689985	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe773305d	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78495b1	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7aceaef	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b718df	chsc_determine_channel_path_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f42e66	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f5206e	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81a5991	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe889dbc7	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88bc852	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88c881d	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a98985	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3f0d8	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe915856f	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91741d1	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9214f4b	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9248403	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9512d3f	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe978cdf5	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9801038	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe98cc345	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b8b610	gmap_unmap_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ba4c00	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9bfabb1	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d15690	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xea04d588	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xea10f454	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7fe801	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xea8829c9	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa02a7f	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabe4c3d	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac61e7d	gmap_map_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xead77419	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xead8618b	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafa84fe	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb000834	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb123f48	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb577f43	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5e7866	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb907eeb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd11202	gmap_shadow
+EXPORT_SYMBOL_GPL	 vmlinux 0xec13c83c	si_swapinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xec374239	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xec4f5042	cmf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xec572f15	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc41e88	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecdecaa0	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xece934de	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xececead3	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2243af	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xed32a38c	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xed36933b	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3d1834	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xed48a163	__zpci_store_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5a3295	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6541de	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xed75dae0	cio_start_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9b0fca	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb48749	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb74f4e	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd87ab2	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf04729	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf41ae0	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf55abb	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xee158669	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xee175d27	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1785b0	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xee27ad1a	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xee2ea71a	chp_get_sch_opm
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3bb97e	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xee525dbb	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xee57cfa2	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xee5bec54	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c633a	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7d0f10	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xee900e78	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9a10c5	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea7db20	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb0784c	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed6599a	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeed9475	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef15ce5	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefaa99d	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xef047a22	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xef13106c	nr_threads
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef55d6c9	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5fc47b	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xef632ad0	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa4dd17	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc2ec10	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe8b1cf	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xefea6f08	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf000abf6	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0359278	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04292f1	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0449da6	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xf047b127	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07d5f3a	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d88751	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e766df	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1515448	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17d580e	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18ba31a	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1986fdc	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a2c867	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a39aec	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21b20e2	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21de7b0	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22af346	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24deec0	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2875d68	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29b7200	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d1e080	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d3772f	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2dbd3c9	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f8312e	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30efedc	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3109bc3	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31a299a	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31d6cba	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf323eb7c	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34463e6	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3689547	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36aa163	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37b7b0d	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37dba03	get_ccwdev_by_dev_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3844807	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3afbc15	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b67584	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41049ee	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41f5625	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4339752	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4940335	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4cf0943	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d7a5ba	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4da71b3	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f9c9e1	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf500a6aa	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5567c68	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55bd1d2	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xf568bc71	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56b3a70	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf572399d	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d749cf	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fdaac9	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf657be8f	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf657c56b	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf67e0e1f	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xf684c621	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6913028	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69b9720	gmap_mprotect_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6de309e	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6df37ab	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7287d10	bpf_trace_run7
+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 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77b900c	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b18b65	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f29c	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d9c604	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e8b288	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8064bef	cio_update_schib
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80d9309	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80e7f4b	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf835d586	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf855ccce	__zpci_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xf85683bc	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xf86b9cb0	cio_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf87af11e	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf887cc18	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89bcd12	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8be840b	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e35dc4	pci_debug_err_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90b3e62	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90ec420	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9662586	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96a833a	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99276d3	appldata_unregister_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a0021f	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a0928b	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b7a974	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c450e9	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9dd9961	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ff5c66	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1649ee	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa17092f	gmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa174a8d	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa216f11	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa28555d	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5b25b7	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5d1d3b	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa737f24	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa9f7c3	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab3fe10	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac753fc	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad447c6	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaebc220	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb325640	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4d0e4d	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb72b875	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb90123d	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0ebf82	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc112174	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2ebbba	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc41a1a3	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc43f5ef	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7f0d10	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8db919	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9b4b44	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcbfaf51	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccf4e9e	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcda6f7a	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xfceeba4e	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0e1804	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd2a481e	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4957b1	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd621b72	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd868589	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd979427	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdad8233	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb369ad	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb94ae1	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdcf6f2c	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdef9dec	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf42395	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe21046c	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3b11eb	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3df470	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe532b6b	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfefa2adb	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff13d8c6	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1d8463	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xff403774	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xff40f055	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xff4f0373	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5567a5	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6d4154	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6de4bc	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6f7f3d	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xff72045a	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8ccae2	gmap_sync_dirty_log_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffa5c7fa	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffcdc4a9	tod_clock_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xffea2fd9	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xffedcd18	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff12250	crypto_shash_final
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/s390x/generic.compiler
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/s390x/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/s390x/generic.modules
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/s390x/generic.modules
@@ -0,0 +1,964 @@
+8021q
+842
+842_compress
+842_decompress
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+adiantum
+adin
+aegis128
+aes_s390
+aes_ti
+af_alg
+af_iucv
+af_key
+af_packet_diag
+ah4
+ah6
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+altera-cvp
+altera-pr-ip-core
+amd
+ansi_cprng
+anubis
+appldata_mem
+appldata_net_sum
+appldata_os
+aquantia
+arc4
+arp_tables
+arpt_mangle
+arptable_filter
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at803x
+aufs
+auth_rpcgss
+authenc
+authencesn
+bcache
+bcm-phy-lib
+bcm7xxx
+bcm87xx
+bfq
+binfmt_misc
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bochs-drm
+bonding
+bpfilter
+br_netfilter
+brd
+bridge
+broadcom
+btrfs
+cachefiles
+camellia_generic
+cast5_generic
+cast6_generic
+cast_common
+ccm
+ccwgroup
+ceph
+cfb
+cfbcopyarea
+cfbfillrect
+cfbimgblt
+ch
+chacha20poly1305
+chacha_generic
+chsc_sch
+cicada
+cifs
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cmac
+coda
+cordic
+cortina
+crc-itu-t
+crc32-vx_s390
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+cryptd
+crypto_engine
+crypto_user
+ctcm
+cuse
+dasd_diag_mod
+dasd_eckd_mod
+dasd_fba_mod
+dasd_mod
+davicom
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcssblk
+deflate
+des_generic
+des_s390
+device_dax
+diag
+diag288_wdt
+dlm
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+drbd
+drm
+drm_kms_helper
+drm_panel_orientation_quirks
+drm_vram_helper
+dummy
+dummy_stm
+dwc-xlgmac
+eadm_sch
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ecc
+ecdh_generic
+echainiv
+ecrdsa_generic
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+eql
+erofs
+esp4
+esp4_offload
+esp6
+esp6_offload
+essiv
+et1011c
+failover
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fixed_phy
+fou
+fou6
+fpga-mgr
+fs3270
+fscache
+fsm
+garp
+geneve
+genwqe_card
+gfs2
+ghash_s390
+gpio-bt8xx
+gpio-generic
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-rdc321x
+grace
+gre
+gtp
+hangcheck-timer
+hmcdrv
+i2c-algo-bit
+i2c-core
+i2c-dev
+i2c-mux
+i2c-stub
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+icp
+icplus
+ifb
+ife
+ila
+inet_diag
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipcomp
+ipcomp6
+ipip
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+irqbypass
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+ism
+isofs
+iw_cm
+kafs
+kcm
+keywrap
+khazad
+kheaders
+kmem
+kyber-iosched
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+lcs
+libarc4
+libceph
+libcrc32c
+libdes
+libfc
+libfcoe
+libiscsi
+libiscsi_tcp
+libphy
+libsas
+linear
+llc
+lockd
+lru_cache
+lrw
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+macsec
+macvlan
+macvtap
+marvell
+marvell10g
+md-cluster
+md4
+mdev
+memory-notifier-error-inject
+mena21_wdt
+mfd-core
+michael_mic
+micrel
+microchip
+microchip_t1
+mip6
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlxfw
+mlxsw_core
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+monreader
+monwriter
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpt3sas
+mrp
+mscc
+msdos
+national
+nb8800
+nbd
+net_failover
+netconsole
+netdevsim
+netiucv
+netlink_diag
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nhpoly1305
+nilfs2
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+notifier-error-inject
+nsh
+ntfs
+null_blk
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+objagg
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ofb
+openvswitch
+oprofile
+orangefs
+overlay
+p8022
+paes_s390
+parman
+pblk
+pcbc
+pci-pf-stub
+pci-stub
+pcrypt
+pkcs7_test_key
+pkcs8_key_parser
+pkey
+pktgen
+pnet
+poly1305_generic
+pps_core
+pretimeout_panic
+prng
+psample
+psnap
+ptp
+qdio
+qeth
+qeth_l2
+qeth_l3
+qsemi
+quota_tree
+quota_v1
+quota_v2
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+raw_diag
+rbd
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+rmd128
+rmd160
+rmd256
+rmd320
+rockchip
+rpcrdma
+rpcsec_gss_krb5
+rxrpc
+s390-trng
+salsa20_generic
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scm_block
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+seed
+serial_core
+serpent_generic
+sha1_s390
+sha256_s390
+sha3_256_s390
+sha3_512_s390
+sha3_generic
+sha512_s390
+sha_common
+shiftfs
+siox-bus-gpio
+siox-core
+sit
+siw
+slicoss
+slim-qcom-ctrl
+slimbus
+sm3_generic
+sm4_generic
+smc
+smc_diag
+smsc
+smsgiucv_app
+softdog
+spl
+st
+st_drv
+ste10Xp
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stp
+streebog_generic
+sunrpc
+switchtec
+syscopyarea
+sysfillrect
+sysimgblt
+tap
+tape
+tape_34xx
+tape_3590
+tape_class
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tcm_fc
+tcm_loop
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tea
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+teranetics
+test_blackhole_dev
+test_bpf
+tgr192
+tipc
+tls
+torture
+tpm_key_parser
+tpm_vtpm_proxy
+trace-printk
+ts_bm
+ts_fsm
+ts_kmp
+ttm
+ttynull
+tunnel4
+tunnel6
+twofish_common
+twofish_generic
+uPD60620
+uartlite
+udf
+udp_diag
+udp_tunnel
+uio
+unix_diag
+veth
+vfio
+vfio-pci
+vfio_ap
+vfio_ccw
+vfio_iommu_type1
+vfio_mdev
+vfio_virqfd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_scsi
+virtiofs
+vitesse
+vmac
+vmlogrdr
+vmur
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vport-geneve
+vport-gre
+vport-vxlan
+vrf
+vsock
+vsock_diag
+vsockmon
+vx855
+vxlan
+wireguard
+wp512
+x_tables
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xilinx_gmii2rgmii
+xlnx_vcu
+xor
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xxhash_generic
+z3fold
+zavl
+zcommon
+zcrypt
+zcrypt_cex2a
+zcrypt_cex2c
+zcrypt_cex4
+zfcp
+zfs
+zlib_deflate
+zlua
+znvpair
+zram
+zstd
+zstd_compress
+zunicode
--- linux-gkeop-5.4-5.4.0.orig/debian.master/abi/5.4.0-72.80/s390x/generic.retpoline
+++ linux-gkeop-5.4-5.4.0/debian.master/abi/5.4.0-72.80/s390x/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-gkeop-5.4-5.4.0.orig/debian.master/changelog
+++ linux-gkeop-5.4-5.4.0/debian.master/changelog
@@ -0,0 +1,24006 @@
+linux (5.4.0-73.82) focal; urgency=medium
+
+  * focal/linux: 5.4.0-73.82 -proposed tracker (LP: #1923781)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * CIFS DFS entries not accessible with 5.4.0-71.74-generic (LP: #1923670)
+    - Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting
+      cifs_sb->prepath."
+
+  * CVE-2021-29650
+    - Revert "netfilter: x_tables: Update remaining dereference to RCU"
+    - Revert "netfilter: x_tables: Switch synchronization to RCU"
+    - netfilter: x_tables: Use correct memory barriers.
+
+  * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key
+    (LP: #1918134)
+    - [Packaging] dkms-build{,--nvidia-N} sync back from LRMv4
+
+  * 5.4 kernel: when iommu is on crashdump fails (LP: #1922738)
+    - iommu/vt-d: Refactor find_domain() helper
+    - iommu/vt-d: Add attach_deferred() helper
+    - iommu/vt-d: Move deferred device attachment into helper function
+    - iommu/vt-d: Do deferred attachment in iommu_need_mapping()
+    - iommu/vt-d: Remove deferred_attach_domain()
+    - iommu/vt-d: Simplify check in identity_mapping()
+
+  * Backport mlx5e fix for tunnel offload (LP: #1921769)
+    - net/mlx5e: Check tunnel offload is required before setting SWP
+
+  * Bcache bypasse writeback on caching device with fragmentation (LP: #1900438)
+    - bcache: consider the fragmentation when update the writeback rate
+
+  * Fix implicit declaration warnings for kselftests/memfd test on newer
+    releases (LP: #1910323)
+    - selftests/memfd: Fix implicit declaration warnings
+
+  * net/mlx5e: Add missing capability check for uplink follow (LP: #1921104)
+    - net/mlx5e: Add missing capability check for uplink follow
+
+  * [UBUNUT 21.04] s390/vtime: fix increased steal time accounting
+    (LP: #1921498)
+    - s390/vtime: fix increased steal time accounting
+
+  * Mute/Mic-mute LEDs are not work on HP 850/840/440 G8 Laptops (LP: #1920030)
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8
+
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - uapi: nfnetlink_cthelper.h: fix userspace compilation error
+    - powerpc/pseries: Don't enforce MSI affinity with kdump
+    - ath9k: fix transmitting to stations in dynamic SMPS mode
+    - net: Fix gro aggregation for udp encaps with zero csum
+    - net: check if protocol extracted by virtio_net_hdr_set_proto is correct
+    - net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
+    - sh_eth: fix TRSCER mask for SH771x
+    - can: skb: can_skb_set_owner(): fix ref counting if socket was closed before
+      setting skb ownership
+    - can: flexcan: assert FRZ bit in flexcan_chip_freeze()
+    - can: flexcan: enable RX FIFO after FRZ/HALT valid
+    - can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode
+    - can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before
+      entering Normal Mode
+    - tcp: add sanity tests to TCP_QUEUE_SEQ
+    - netfilter: nf_nat: undo erroneous tcp edemux lookup
+    - netfilter: x_tables: gpf inside xt_find_revision()
+    - selftests/bpf: No need to drop the packet when there is no geneve opt
+    - selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier
+    - samples, bpf: Add missing munmap in xdpsock
+    - ibmvnic: always store valid MAC address
+    - mt76: dma: do not report truncated frames to mac80211
+    - powerpc/603: Fix protection of user pages mapped with PROT_NONE
+    - mount: fix mounting of detached mounts onto targets that reside on shared
+      mounts
+    - cifs: return proper error code in statfs(2)
+    - Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
+    - net: enetc: don't overwrite the RSS indirection table when initializing
+    - net/mlx4_en: update moderation when config reset
+    - net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10
+    - nexthop: Do not flush blackhole nexthops when loopback goes down
+    - net: sched: avoid duplicates in classes dump
+    - net: usb: qmi_wwan: allow qmimux add/del with master up
+    - netdevsim: init u64 stats for 32bit hardware
+    - cipso,calipso: resolve a number of problems with the DOI refcounts
+    - net: lapbether: Remove netif_start_queue / netif_stop_queue
+    - net: davicom: Fix regulator not turned off on failed probe
+    - net: davicom: Fix regulator not turned off on driver removal
+    - net: qrtr: fix error return code of qrtr_sendmsg()
+    - ixgbe: fail to create xfrm offload of IPsec tunnel mode SA
+    - net: stmmac: stop each tx channel independently
+    - net: stmmac: fix watchdog timeout during suspend/resume stress test
+    - selftests: forwarding: Fix race condition in mirror installation
+    - perf traceevent: Ensure read cmdlines are null terminated.
+    - net: hns3: fix query vlan mask value error for flow director
+    - net: hns3: fix bug when calculating the TCAM table info
+    - s390/cio: return -EFAULT if copy_to_user() fails again
+    - bnxt_en: reliably allocate IRQ table on reset to avoid crash
+    - drm/compat: Clear bounce structures
+    - drm/shmem-helper: Check for purged buffers in fault handler
+    - drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
+    - drm: meson_drv add shutdown function
+    - s390/cio: return -EFAULT if copy_to_user() fails
+    - s390/crypto: return -EFAULT if copy_to_user() fails
+    - qxl: Fix uninitialised struct field head.surface_id
+    - sh_eth: fix TRSCER mask for R7S9210
+    - media: usbtv: Fix deadlock on suspend
+    - media: v4l: vsp1: Fix uif null pointer access
+    - media: v4l: vsp1: Fix bru null pointer access
+    - media: rc: compile rc-cec.c into rc-core
+    - [Config] update abi for rc-cec
+    - net: hns3: fix error mask definition of flow director
+    - net: enetc: initialize RFS/RSS memories for unused ports too
+    - net: phy: fix save wrong speed and duplex problem if autoneg is on
+    - i2c: rcar: faster irq code to minimize HW race condition
+    - i2c: rcar: optimize cacheline to minimize HW race condition
+    - udf: fix silent AED tagLocation corruption
+    - mmc: mxs-mmc: Fix a resource leak in an error handling path in
+      'mxs_mmc_probe()'
+    - mmc: mediatek: fix race condition between msdc_request_timeout and irq
+    - Platform: OLPC: Fix probe error handling
+    - powerpc/pci: Add ppc_md.discover_phbs()
+    - spi: stm32: make spurious and overrun interrupts visible
+    - powerpc: improve handling of unrecoverable system reset
+    - powerpc/perf: Record counter overflow always if SAMPLE_IP is unset
+    - HID: logitech-dj: add support for the new lightspeed connection iteration
+    - powerpc/64: Fix stack trace not displaying final frame
+    - iommu/amd: Fix performance counter initialization
+    - sparc32: Limit memblock allocation to low memory
+    - sparc64: Use arch_validate_flags() to validate ADI flag
+    - Input: applespi - don't wait for responses to commands indefinitely.
+    - PCI: xgene-msi: Fix race in installing chained irq handler
+    - PCI: mediatek: Add missing of_node_put() to fix reference leak
+    - kbuild: clamp SUBLEVEL to 255
+    - PCI: Fix pci_register_io_range() memory leak
+    - i40e: Fix memory leak in i40e_probe
+    - s390/smp: __smp_rescan_cpus() - move cpumask away from stack
+    - sysctl.c: fix underflow value setting risk in vm_table
+    - scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
+    - scsi: target: core: Add cmd length set before cmd complete
+    - scsi: target: core: Prevent underflow for service actions
+    - ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
+    - ALSA: hda/hdmi: Cancel pending works before suspend
+    - ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support
+    - ALSA: hda: Drop the BATCH workaround for AMD controllers
+    - ALSA: hda: Flush pending unsolicited events before suspend
+    - ALSA: hda: Avoid spurious unsol event handling during S3/S4
+    - ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
+    - ALSA: usb-audio: Apply the control quirk to Plantronics headsets
+    - Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file
+      capabilities")
+    - arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
+    - s390/dasd: fix hanging DASD driver unbind
+    - s390/dasd: fix hanging IO request during DASD driver unbind
+    - software node: Fix node registration
+    - mmc: core: Fix partition switch time for eMMC
+    - mmc: cqhci: Fix random crash when remove mmc module/card
+    - Goodix Fingerprint device is not a modem
+    - USB: gadget: u_ether: Fix a configfs return code
+    - usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio
+      slot
+    - usb: gadget: f_uac1: stop playback on function disable
+    - usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement
+    - usb: dwc3: qcom: Honor wakeup enabled/disabled state
+    - USB: usblp: fix a hang in poll() if disconnected
+    - usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
+    - usb: xhci: do not perform Soft Retry for some xHCI hosts
+    - xhci: Improve detection of device initiated wake signal.
+    - usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
+    - xhci: Fix repeated xhci wake after suspend due to uncleared internal wake
+      state
+    - USB: serial: io_edgeport: fix memory leak in edge_startup
+    - USB: serial: ch341: add new Product ID
+    - USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
+    - USB: serial: cp210x: add some more GE USB IDs
+    - usbip: fix stub_dev to check for stream socket
+    - usbip: fix vhci_hcd to check for stream socket
+    - usbip: fix vudc to check for stream socket
+    - usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
+    - usbip: fix vhci_hcd attach_store() races leading to gpf
+    - usbip: fix vudc usbip_sockfd_store races leading to gpf
+    - misc/pvpanic: Export module FDT device table
+    - misc: fastrpc: restrict user apps from sending kernel RPC messages
+    - staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
+    - staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
+    - staging: rtl8712: unterminated string leads to read overflow
+    - staging: rtl8188eu: fix potential memory corruption in
+      rtw_check_beacon_data()
+    - staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
+    - staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
+    - staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan
+    - staging: comedi: addi_apci_1032: Fix endian problem for COS sample
+    - staging: comedi: addi_apci_1500: Fix endian problem for command sample
+    - staging: comedi: adv_pci1710: Fix endian problem for AI command data
+    - staging: comedi: das6402: Fix endian problem for AI command data
+    - staging: comedi: das800: Fix endian problem for AI command data
+    - staging: comedi: dmm32at: Fix endian problem for AI command data
+    - staging: comedi: me4000: Fix endian problem for AI command data
+    - staging: comedi: pcl711: Fix endian problem for AI command data
+    - staging: comedi: pcl818: Fix endian problem for AI command data
+    - sh_eth: fix TRSCER mask for R7S72100
+    - arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
+    - SUNRPC: Set memalloc_nofs_save() for sync tasks
+    - NFS: Don't revalidate the directory permissions on a lookup failure
+    - NFS: Don't gratuitously clear the inode cache when lookup failed
+    - NFSv4.2: fix return value of _nfs4_get_security_label()
+    - block: rsxx: fix error return code of rsxx_pci_probe()
+    - configfs: fix a use-after-free in __configfs_open_file
+    - arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
+    - hrtimer: Update softirq_expires_next correctly after
+      __hrtimer_get_next_event()
+    - stop_machine: mark helpers __always_inline
+    - include/linux/sched/mm.h: use rcu_dereference in in_vfork()
+    - zram: fix return value on writeback_store
+    - sched/membarrier: fix missing local execution of ipi_sync_rq_state()
+    - powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
+    - binfmt_misc: fix possible deadlock in bm_register_write
+    - x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
+    - KVM: arm64: Fix exclusive limit for IPA size
+    - nvme: unlink head after removing last namespace
+    - nvme: release namespace head reference on error
+    - KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
+    - KVM: arm64: Reject VM creation when the default IPA size is unsupported
+    - xen/events: reset affinity of 2-level event when tearing it down
+    - xen/events: don't unmask an event channel when an eoi is pending
+    - xen/events: avoid handling the same event on two cpus at the same time
+    - Linux 5.4.106
+
+  * Focal update: v5.4.105 upstream stable release (LP: #1920244)
+    - net: dsa: add GRO support via gro_cells
+    - dm table: fix iterate_devices based device capability checks
+    - dm table: fix DAX iterate_devices based device capability checks
+    - dm table: fix zoned iterate_devices based device capability checks
+    - ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter
+      handling
+    - iommu/amd: Fix sleeping in atomic in increase_address_space()
+    - mwifiex: pcie: skip cancel_work_sync() on reset failure path
+    - platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
+    - platform/x86: acer-wmi: Cleanup accelerometer device handling
+    - platform/x86: acer-wmi: Add new force_caps module parameter
+    - platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
+    - platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
+    - platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch
+      10E SW3-016
+    - HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
+    - media: cx23885: add more quirks for reset DMA on some AMD IOMMU
+    - ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
+    - ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
+    - PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
+    - misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
+    - drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
+    - mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo
+      Winpad A15
+    - nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
+    - nvme-pci: add quirks for Lexar 256GB SSD
+    - Linux 5.4.105
+
+  * Focal update: v5.4.104 upstream stable release (LP: #1920238)
+    - tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality()
+    - tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality()
+    - btrfs: raid56: simplify tracking of Q stripe presence
+    - btrfs: fix raid6 qstripe kmap
+    - btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
+    - btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
+    - btrfs: unlock extents in btrfs_zero_range in case of quota reservation
+      errors
+    - btrfs: fix warning when creating a directory with smack enabled
+    - PM: runtime: Update device status before letting suppliers suspend
+    - dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
+    - dm verity: fix FEC for RS roots unaligned to block size
+    - drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie
+    - arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
+    - crypto - shash: reduce minimum alignment of shash_desc structure
+    - usbip: tools: fix build error for multiple definition
+    - ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
+    - RDMA/rxe: Fix missing kconfig dependency on CRYPTO
+    - IB/mlx5: Add missing error code
+    - ALSA: hda: intel-nhlt: verify config type
+    - ftrace: Have recordmcount use w8 to read relp->r_info in
+      arm64_is_fake_mcount
+    - rsxx: Return -EFAULT if copy_to_user() fails
+    - r8169: fix resuming from suspend on RTL8105e if machine runs on battery
+    - Linux 5.4.104
+
+  * Focal update: v5.4.103 upstream stable release (LP: #1920235)
+    - net: usb: qmi_wwan: support ZTE P685M modem
+    - nvme-pci: refactor nvme_unmap_data
+    - nvme-pci: fix error unwind in nvme_map_data
+    - arm64 module: set plt* section addresses to 0x0
+    - MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target='
+    - JFS: more checks for invalid superblock
+    - udlfb: Fix memory leak in dlfb_usb_probe
+    - media: mceusb: sanity check for prescaler value
+    - erofs: fix shift-out-of-bounds of blkszbits
+    - media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate
+    - xfs: Fix assert failure in xfs_setattr_size()
+    - net/af_iucv: remove WARN_ONCE on malformed RX packets
+    - smackfs: restrict bytes count in smackfs write functions
+    - net: fix up truesize of cloned skb in skb_prepare_for_shift()
+    - nbd: handle device refs for DESTROY_ON_DISCONNECT properly
+    - mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
+    - net: bridge: use switchdev for port flags set through sysfs too
+    - net: ag71xx: remove unnecessary MTU reservation
+    - net: fix dev_ifsioc_locked() race condition
+    - dt-bindings: ethernet-controller: fix fixed-link specification
+    - dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/
+    - MIPS: Drop 32-bit asm string functions
+    - drm/virtio: use kvmalloc for large allocations
+    - rsi: Fix TX EAPOL packet handling against iwlwifi AP
+    - rsi: Move card interrupt handling to RX thread
+    - staging: fwserial: Fix error handling in fwserial_create
+    - x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk
+    - vt/consolemap: do font sum unsigned
+    - wlcore: Fix command execute failure 19 for wl12xx
+    - Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl
+    - pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
+    - ath10k: fix wmi mgmt tx queue full due to race condition
+    - x86/build: Treat R_386_PLT32 relocation as R_386_PC32
+    - Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data
+    - staging: most: sound: add sanity check for function argument
+    - staging: bcm2835-audio: Replace unsafe strcpy() with strscpy()
+    - brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet
+    - brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet
+    - drm/hisilicon: Fix use-after-free
+    - crypto: tcrypt - avoid signed overflow in byte count
+    - drm/amdgpu: Add check to prevent IH overflow
+    - PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
+    - drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails
+    - media: uvcvideo: Allow entities with no pads
+    - f2fs: handle unallocated section and zone on pinned/atgc
+    - f2fs: fix to set/clear I_LINKABLE under i_lock
+    - nvme-core: add cancel tagset helpers
+    - nvme-rdma: add clean action for failed reconnection
+    - nvme-tcp: add clean action for failed reconnection
+    - ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr()
+    - btrfs: fix error handling in commit_fs_roots
+    - perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
+    - parisc: Bump 64-bit IRQ stack size to 64 KB
+    - sched/features: Fix hrtick reprogramming
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R
+      tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet
+    - ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
+    - Xen/gnttab: handle p2m update errors on a per-slot basis
+    - xen-netback: respect gnttab_map_refs()'s return value
+    - zsmalloc: account the number of compacted pages correctly
+    - swap: fix swapfile read/write offset
+    - media: v4l: ioctl: Fix memory leak in video_usercopy
+    - ALSA: hda/realtek: Add quirk for Clevo NH55RZQ
+    - ALSA: hda/realtek: Add quirk for Intel NUC 10
+    - ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board
+    - Linux 5.4.103
+
+  * Focal update: v5.4.102 upstream stable release (LP: #1918974)
+    - vmlinux.lds.h: add DWARF v5 sections
+    - kvm: x86: replace kvm_spec_ctrl_test_value with runtime test on the host
+    - debugfs: be more robust at handling improper input in debugfs_lookup()
+    - debugfs: do not attempt to create a new file before the filesystem is
+      initalized
+    - kdb: Make memory allocations more robust
+    - PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
+    - PCI: Decline to resize resources if boot config must be preserved
+    - virt: vbox: Do not use wait_event_interruptible when called from kernel
+      context
+    - bfq: Avoid false bfq queue merging
+    - ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
+    - MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
+    - random: fix the RNDRESEEDCRNG ioctl
+    - ath10k: Fix error handling in case of CE pipe init failure
+    - Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the
+      probe function
+    - Bluetooth: hci_uart: Fix a race for write_work scheduling
+    - Bluetooth: Fix initializing response id after clearing struct
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Monk
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on TM2
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
+    - memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops
+    - bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h
+    - bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args
+    - arm64: dts: allwinner: A64: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: H6: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card
+    - arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency
+    - arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
+    - cpufreq: brcmstb-avs-cpufreq: Free resources in error path
+    - cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
+    - ACPICA: Fix exception code class checks
+    - usb: gadget: u_audio: Free requests only after callback
+    - Bluetooth: drop HCI device reference before return
+    - Bluetooth: Put HCI device if inquiry procedure interrupts
+    - memory: ti-aemif: Drop child node when jumping out loop
+    - ARM: dts: Configure missing thermal interrupt for 4430
+    - usb: dwc2: Do not update data length if it is 0 on inbound transfers
+    - usb: dwc2: Abort transaction after errors with unknown reason
+    - usb: dwc2: Make "trimming xfer length" a debug message
+    - staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules
+    - ARM: dts: armada388-helios4: assign pinctrl to LEDs
+    - ARM: dts: armada388-helios4: assign pinctrl to each fan
+    - arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to
+      a53-firmware
+    - Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv
+    - arm64: dts: msm8916: Fix reserved and rfsa nodes unit address
+    - ARM: s3c: fix fiq for clang IAS
+    - soc: aspeed: snoop: Add clock control logic
+    - bpf_lru_list: Read double-checked variable once without lock
+    - ath9k: fix data bus crash when setting nf_override via debugfs
+    - ibmvnic: Set to CLOSED state even on error
+    - bnxt_en: reverse order of TX disable and carrier off
+    - xen/netback: fix spurious event detection for common event case
+    - mac80211: fix potential overflow when multiplying to u32 integers
+    - bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
+    - tcp: fix SO_RCVLOWAT related hangs under mem pressure
+    - net: axienet: Handle deferred probe on clock properly
+    - cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4
+      and ulds
+    - b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
+    - ibmvnic: add memory barrier to protect long term buffer
+    - ibmvnic: skip send_request_unmap for timeout reset
+    - net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout
+    - net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning
+    - net: amd-xgbe: Reset link when the link never comes back
+    - net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP
+    - net: mvneta: Remove per-cpu queue mapping for Armada 3700
+    - fbdev: aty: SPARC64 requires FB_ATY_CT
+    - drm/gma500: Fix error return code in psb_driver_load()
+    - gma500: clean up error handling in init
+    - drm/fb-helper: Add missed unlocks in setcmap_legacy()
+    - crypto: sun4i-ss - linearize buffers content must be kept
+    - crypto: sun4i-ss - fix kmap usage
+    - crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled
+    - drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition
+    - MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
+    - MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
+    - media: i2c: ov5670: Fix PIXEL_RATE minimum value
+    - media: imx: Unregister csc/scaler only if registered
+    - media: imx: Fix csc/scaler unregister
+    - media: camss: missing error code in msm_video_register()
+    - media: vsp1: Fix an error handling path in the probe function
+    - media: em28xx: Fix use-after-free in em28xx_alloc_urbs
+    - media: media/pci: Fix memleak in empress_init
+    - media: tm6000: Fix memleak in tm6000_start_stream
+    - media: aspeed: fix error return code in aspeed_video_setup_video()
+    - ASoC: cs42l56: fix up error handling in probe
+    - evm: Fix memleak in init_desc
+    - crypto: bcm - Rename struct device_private to bcm_device_private
+    - drm/sun4i: tcon: fix inverted DCLK polarity
+    - MIPS: properly stop .eh_frame generation
+    - bsg: free the request before return error code
+    - drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction.
+    - drm/amd/display: Fix HDMI deep color output for DCE 6-11.
+    - media: software_node: Fix refcounts in software_node_get_next_child()
+    - media: lmedm04: Fix misuse of comma
+    - media: qm1d1c0042: fix error return code in qm1d1c0042_init()
+    - media: cx25821: Fix a bug when reallocating some dma memory
+    - media: pxa_camera: declare variable when DEBUG is defined
+    - media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
+    - sched/eas: Don't update misfit status if the task is pinned
+    - mtd: parser: imagetag: fix error codes in
+      bcm963xx_parse_imagetag_partitions()
+    - crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error)
+    - drm/nouveau: bail out of nouveau_channel_new if channel init fails
+    - ata: ahci_brcm: Add back regulators management
+    - ASoC: cpcap: fix microphone timeslot mask
+    - mtd: parsers: afs: Fix freeing the part name memory in failure
+    - f2fs: fix to avoid inconsistent quota data
+    - drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
+    - f2fs: fix a wrong condition in __submit_bio
+    - Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind()
+    - ASoC: SOF: debug: Fix a potential issue on string buffer termination
+    - btrfs: clarify error returns values in __load_free_space_cache
+    - hwrng: timeriomem - Fix cooldown period calculation
+    - crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
+    - ima: Free IMA measurement buffer on error
+    - ima: Free IMA measurement buffer after kexec syscall
+    - ASoC: simple-card-utils: Fix device module clock
+    - fs/jfs: fix potential integer overflow on shift of a int
+    - jffs2: fix use after free in jffs2_sum_write_data()
+    - ubifs: Fix memleak in ubifs_init_authentication
+    - ubifs: Fix error return code in alloc_wbufs()
+    - capabilities: Don't allow writing ambiguous v3 file capabilities
+    - HSI: Fix PM usage counter unbalance in ssi_hw_init
+    - clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
+    - clk: meson: clk-pll: make "ret" a signed integer
+    - clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate()
+    - quota: Fix memory leak when handling corrupted quota file
+    - i2c: iproc: handle only slave interrupts which are enabled
+    - i2c: iproc: update slave isr mask (ISR_MASK_SLAVE)
+    - i2c: iproc: handle master read request
+    - spi: cadence-quadspi: Abort read if dummy cycles required are too many
+    - clk: sunxi-ng: h6: Fix CEC clock
+    - HID: core: detect and skip invalid inputs to snto32()
+    - RDMA/siw: Fix handling of zero-sized Read and Receive Queues.
+    - dmaengine: fsldma: Fix a resource leak in the remove function
+    - dmaengine: fsldma: Fix a resource leak in an error handling path of the
+      probe function
+    - dmaengine: owl-dma: Fix a resource leak in the remove function
+    - dmaengine: hsu: disable spurious interrupt
+    - mfd: bd9571mwv: Use devm_mfd_add_devices()
+    - fdt: Properly handle "no-map" field in the memory region
+    - of/fdt: Make sure no-map does not remove already reserved regions
+    - power: reset: at91-sama5d2_shdwc: fix wkupdbc mask
+    - rtc: s5m: select REGMAP_I2C
+    - clocksource/drivers/ixp4xx: Select TIMER_OF when needed
+    - clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
+    - RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
+    - clk: sunxi-ng: h6: Fix clock divider range on some clocks
+    - regulator: axp20x: Fix reference cout leak
+    - certs: Fix blacklist flag type confusion
+    - regulator: s5m8767: Fix reference count leak
+    - spi: atmel: Put allocated master before return
+    - regulator: s5m8767: Drop regulators OF node reference
+    - regulator: core: Avoid debugfs: Directory ... already present! error
+    - isofs: release buffer head before return
+    - auxdisplay: ht16k33: Fix refresh rate handling
+    - objtool: Fix error handling for STD/CLD warnings
+    - objtool: Fix ".cold" section suffix check for newer versions of GCC
+    - IB/umad: Return EIO in case of when device disassociated
+    - IB/umad: Return EPOLLERR in case of when device disassociated
+    - KVM: PPC: Make the VMX instruction emulation routines static
+    - powerpc/47x: Disable 256k page size
+    - mmc: sdhci-sprd: Fix some resource leaks in the remove function
+    - mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
+    - mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to
+      128-bytes
+    - ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
+    - i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct
+    - amba: Fix resource leak for drivers without .remove
+    - IB/mlx5: Return appropriate error code instead of ENOMEM
+    - IB/cm: Avoid a loop when device has 255 ports
+    - tracepoint: Do not fail unregistering a probe due to memory failure
+    - perf tools: Fix DSO filtering when not finding a map for a sampled address
+    - perf vendor events arm64: Fix Ampere eMag event typo
+    - RDMA/rxe: Fix coding error in rxe_recv.c
+    - RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt
+    - RDMA/rxe: Correct skb on loopback path
+    - spi: stm32: properly handle 0 byte transfer
+    - mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
+    - powerpc/pseries/dlpar: handle ibm, configure-connector delay status
+    - powerpc/8xx: Fix software emulation interrupt
+    - clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs
+    - RDMA/hns: Fixed wrong judgments in the goto branch
+    - RDMA/siw: Fix calculation of tx_valid_cpus size
+    - RDMA/hns: Fix type of sq_signal_bits
+    - spi: pxa2xx: Fix the controller numbering for Wildcat Point
+    - regulator: qcom-rpmh: fix pm8009 ldo7
+    - clk: aspeed: Fix APLL calculate formula from ast2600-A2
+    - nfsd: register pernet ops last, unregister first
+    - RDMA/hns: Fixes missing error code of CMDQ
+    - Input: sur40 - fix an error code in sur40_probe()
+    - perf intel-pt: Fix missing CYC processing in PSB
+    - perf intel-pt: Fix premature IPC
+    - perf test: Fix unaligned access in sample parsing test
+    - Input: elo - fix an error code in elo_connect()
+    - sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
+    - misc: eeprom_93xx46: Fix module alias to enable module autoprobe
+    - phy: rockchip-emmc: emmc_phy_init() always return 0
+    - misc: eeprom_93xx46: Add module alias to avoid breaking support for non
+      device tree users
+    - soundwire: cadence: fix ACK/NAK handling
+    - pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
+    - VMCI: Use set_page_dirty_lock() when unregistering guest memory
+    - PCI: Align checking of syscall user config accessors
+    - mei: hbm: call mei_set_devstate() on hbm stop response
+    - drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
+    - drm/msm/mdp5: Fix wait-for-commit for cmd panels
+    - vfio/iommu_type1: Fix some sanity checks in detach group
+    - ext4: fix potential htree index checksum corruption
+    - nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of()
+    - nvmem: core: skip child nodes not matching binding
+    - regmap: sdw: use _no_pm functions in regmap_read/write
+    - i40e: Fix flow for IPv6 next header (extension header)
+    - i40e: Add zero-initialization of AQ command structures
+    - i40e: Fix overwriting flow control settings during driver loading
+    - i40e: Fix addition of RX filters after enabling FW LLDP agent
+    - i40e: Fix VFs not created
+    - i40e: Fix add TC filter for IPv6
+    - vfio/type1: Use follow_pte()
+    - net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
+    - vxlan: move debug check after netdev unregister
+    - ocfs2: fix a use after free on error
+    - mm/memory.c: fix potential pte_unmap_unlock pte error
+    - mm/hugetlb: fix potential double free in hugetlb_register_node() error path
+    - mm/compaction: fix misbehaviors of fast_find_migrateblock()
+    - r8169: fix jumbo packet handling on RTL8168e
+    - arm64: Add missing ISB after invalidating TLB in __primary_switch
+    - i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
+    - mm/rmap: fix potential pte_unmap on an not mapped pte
+    - scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
+    - blk-settings: align max_sectors on "logical_block_size" boundary
+    - ACPI: property: Fix fwnode string properties matching
+    - ACPI: configfs: add missing check after configfs_register_default_group()
+    - HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming
+    - HID: wacom: Ignore attempts to overwrite the touch_max value from HID
+    - Input: raydium_ts_i2c - do not send zero length
+    - Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox
+      Series X|S
+    - Input: joydev - prevent potential read overflow in ioctl
+    - Input: i8042 - add ASUS Zenbook Flip to noselftest list
+    - media: mceusb: Fix potential out-of-bounds shift
+    - USB: serial: option: update interface mapping for ZTE P685M
+    - usb: musb: Fix runtime PM race in musb_queue_resume_work
+    - usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
+    - usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
+    - USB: serial: ftdi_sio: fix FTX sub-integer prescaler
+    - USB: serial: mos7840: fix error code in mos7840_write()
+    - USB: serial: mos7720: fix error code in mos7720_write()
+    - ALSA: hda: Add another CometLake-H PCI ID
+    - ALSA: hda/realtek: modify EAPD in the ALC886
+    - Revert "bcache: Kill btree_io_wq"
+    - bcache: Give btree_io_wq correct semantics again
+    - bcache: Move journal work to new flush wq
+    - drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1
+    - drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2)
+    - drm/nouveau/kms: handle mDP connectors
+    - drm/sched: Cancel and flush all outstanding jobs before finish.
+    - erofs: initialized fields can only be observed after bit is set
+    - tpm_tis: Fix check_locality for correct locality acquisition
+    - tpm_tis: Clean up locality release
+    - KEYS: trusted: Fix migratable=1 failing
+    - btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
+    - btrfs: fix reloc root leak with 0 ref reloc roots on recovery
+    - btrfs: splice remaining dirty_bg's onto the transaction dirty bg list
+    - btrfs: fix extent buffer leak on failure to copy root
+    - crypto: arm64/sha - add missing module aliases
+    - crypto: aesni - prevent misaligned buffers on the stack
+    - crypto: sun4i-ss - checking sg length is not sufficient
+    - crypto: sun4i-ss - handle BigEndian for cipher
+    - crypto: sun4i-ss - initialize need_fallback
+    - seccomp: Add missing return in non-void function
+    - misc: rtsx: init of rts522a add OCP power off when no card is present
+    - drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
+    - pstore: Fix typo in compression option name
+    - dts64: mt7622: fix slow sd card access
+    - staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c
+    - staging: gdm724x: Fix DMA from stack
+    - staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
+    - media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt()
+    - x86/virt: Eat faults on VMXOFF in reboot flows
+    - x86/reboot: Force all cpus to exit VMX root if VMX is supported
+    - powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan
+    - rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
+    - rcu/nocb: Perform deferred wake up before last idle's need_resched() check
+    - floppy: reintroduce O_NDELAY fix
+    - arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into()
+      fails
+    - arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
+    - watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ
+    - watchdog: mei_wdt: request stop on unregister
+    - mtd: spi-nor: sfdp: Fix last erase region marking
+    - mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region
+    - mtd: spi-nor: core: Fix erase type discovery for overlaid region
+    - mtd: spi-nor: core: Add erase size check for erase command initialization
+    - mtd: spi-nor: hisi-sfc: Put child node np on error path
+    - fs/affs: release old buffer head on error path
+    - seq_file: document how per-entry resources are managed.
+    - x86: fix seq_file iteration for pat/memtype.c
+    - hugetlb: fix update_and_free_page contig page struct assumption
+    - hugetlb: fix copy_huge_page_from_user contig page struct assumption
+    - arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55
+    - media: smipcie: fix interrupt handling and IR timeout
+    - module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
+    - mmc: sdhci-esdhc-imx: fix kernel panic when remove module
+    - powerpc/32s: Add missing call to kuep_lock on syscall entry
+    - spmi: spmi-pmic-arb: Fix hw_irq overflow
+    - gpio: pcf857x: Fix missing first interrupt
+    - printk: fix deadlock when kernel panic
+    - cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if
+      available
+    - s390/vtime: fix inline assembly clobber list
+    - virtio/s390: implement virtio-ccw revision 2 correctly
+    - um: mm: check more comprehensively for stub changes
+    - f2fs: fix out-of-repair __setattr_copy()
+    - sparc32: fix a user-triggerable oops in clear_user()
+    - spi: spi-synquacer: fix set_cs handling
+    - gfs2: Don't skip dlm unlock if glock has an lvb
+    - gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end
+    - dm: fix deadlock when swapping to encrypted device
+    - dm writecache: fix writing beyond end of underlying device when shrinking
+    - dm era: Recover committed writeset after crash
+    - dm era: Verify the data block size hasn't changed
+    - dm era: Fix bitset memory leaks
+    - dm era: Use correct value size in equality function of writeset tree
+    - dm era: Reinitialize bitset cache before digesting a new writeset
+    - dm era: only resize metadata in preresume
+    - drm/i915: Reject 446-480MHz HDMI clock on GLK
+    - icmp: introduce helper for nat'd source address in network device context
+    - icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
+    - gtp: use icmp_ndo_send helper
+    - sunvnet: use icmp_ndo_send helper
+    - xfrm: interface: use icmp_ndo_send helper
+    - ipv6: icmp6: avoid indirect call for icmpv6_send()
+    - ipv6: silence compilation warning for non-IPV6 builds
+    - net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
+    - net: sched: fix police ext initialization
+    - dm era: Update in-core bitset after committing the metadata
+    - net: qrtr: Fix memory leak in qrtr_tun_open
+    - ARM: dts: aspeed: Add LCLK to lpc-snoop
+    - Linux 5.4.102
+
+  * eeh-basic.sh from powerpc in ubuntu_kernel_selftests failed with unexpected
+    operator on F-5.8 (LP: #1909428)
+    - selftests/powerpc: Make the test check in eeh-basic.sh posix compliant
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 14 Apr 2021 18:35:30 +0200
+
+linux (5.4.0-72.80) focal; urgency=medium
+
+  * overlayfs calls vfs_setxattr without cap_convert_nscap
+    - vfs: move cap_convert_nscap() call into vfs_setxattr()
+
+  * CVE-2021-3492
+    - SAUCE: shiftfs: free allocated memory in shiftfs_btrfs_ioctl_fd_replace()
+      error paths
+    - SAUCE: shiftfs: handle copy_to_user() return values correctly
+
+  * CVE-2021-29154
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-64
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-32
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 12 Apr 2021 17:12:08 +0200
+
+linux (5.4.0-71.79) focal; urgency=medium
+
+  * focal/linux: 5.4.0-71.79 -proposed tracker (LP: #1921040)
+
+  * selftests: bpf verifier fails after sanitize_ptr_alu fixes (LP: #1920995)
+    - bpf: Simplify alu_limit masking for pointer arithmetic
+    - bpf: Add sanity check for upper ptr_limit
+    - bpf, selftests: Fix up some test_verifier cases for unprivileged
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Fix missing HDMI/DP audio on NVidia card after S3 (LP: #1918228)
+    - ALSA: hda/hdmi: Reduce hda_jack_tbl lookup at unsol event handling
+    - ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
+    - ALSA: hda/hdmi: Move runtime PM resume into hdmi_present_sense_via_verbs()
+    - ALSA: hda/hdmi: Move ELD parse and jack reporting into update_eld()
+
+  * Focal update: v5.4.101 upstream stable release (LP: #1918170)
+    - HID: make arrays usage and value to be the same
+    - USB: quirks: sort quirk entries
+    - usb: quirks: add quirk to start video capture on ELMO L-12F document camera
+      reliable
+    - ntfs: check for valid standard information attribute
+    - arm64: tegra: Add power-domain for Tegra210 HDA
+    - scripts: use pkg-config to locate libcrypto
+    - scripts: set proper OpenSSL include dir also for sign-file
+    - mm: unexport follow_pte_pmd
+    - mm: simplify follow_pte{,pmd}
+    - KVM: do not assume PTE is writable after follow_pfn
+    - mm: provide a saner PTE walking API for modules
+    - KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped()
+    - NET: usb: qmi_wwan: Adding support for Cinterion MV31
+    - cxgb4: Add new T6 PCI device id 0x6092
+    - cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
+    - scripts/recordmcount.pl: support big endian for ARCH sh
+    - Linux 5.4.101
+
+  * Focal update: v5.4.100 upstream stable release (LP: #1918168)
+    - KVM: SEV: fix double locking due to incorrect backport
+    - net: qrtr: Fix port ID for control messages
+    - net: bridge: Fix a warning when del bridge sysfs
+    - Xen/x86: don't bail early from clear_foreign_p2m_mapping()
+    - Xen/x86: also check kernel mapping in set_foreign_p2m_mapping()
+    - Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages()
+    - Xen/gntdev: correct error checking in gntdev_map_grant_pages()
+    - xen/arm: don't ignore return errors from set_phys_to_machine
+    - xen-blkback: don't "handle" error by BUG()
+    - xen-netback: don't "handle" error by BUG()
+    - xen-scsiback: don't "handle" error by BUG()
+    - xen-blkback: fix error handling in xen_blkbk_map()
+    - media: pwc: Use correct device for DMA
+    - btrfs: fix backport of 2175bf57dc952 in 5.4.95
+    - Linux 5.4.100
+
+  * Focal update: v5.4.99 upstream stable release (LP: #1918167)
+    - gpio: ep93xx: fix BUG_ON port F usage
+    - gpio: ep93xx: Fix single irqchip with multi gpiochips
+    - tracing: Do not count ftrace events in top level enable output
+    - tracing: Check length before giving out the filter buffer
+    - arm/xen: Don't probe xenbus as part of an early initcall
+    - cgroup: fix psi monitor for root cgroup
+    - arm64: dts: rockchip: Fix PCIe DT properties on rk3399
+    - arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
+    - ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
+    - platform/x86: hp-wmi: Disable tablet-mode reporting by default
+    - ovl: perform vfs_getxattr() with mounter creds
+    - cap: fix conversions on getxattr
+    - ovl: skip getxattr of security labels
+    - nvme-pci: ignore the subsysem NQN on Phison E16
+    - drm/amd/display: Add more Clock Sources to DCN2.1
+    - drm/amd/display: Fix dc_sink kref count in emulated_link_detect
+    - drm/amd/display: Free atomic state after drm_atomic_commit
+    - drm/amd/display: Decrement refcount of dc_sink before reassignment
+    - riscv: virt_addr_valid must check the address belongs to linear mapping
+    - bfq-iosched: Revert "bfq: Fix computation of shallow depth"
+    - ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
+    - ARM: ensure the signal page contains defined contents
+    - ARM: kexec: fix oops after TLB are invalidated
+    - vmlinux.lds.h: Create section for protection against instrumentation
+    - lkdtm: don't move ctors to .rodata
+    - mt76: dma: fix a possible memory leak in mt76_add_fragment()
+    - drm/vc4: hvs: Fix buffer overflow with the dlist handling
+    - bpf: Check for integer overflow when using roundup_pow_of_two()
+    - netfilter: xt_recent: Fix attempt to update deleted entry
+    - netfilter: nftables: fix possible UAF over chains from packet path in netns
+    - netfilter: flowtable: fix tcp and udp header checksum update
+    - xen/netback: avoid race in xenvif_rx_ring_slots_available()
+    - net: enetc: initialize the RFS and RSS memories
+    - selftests: txtimestamp: fix compilation issue
+    - net: stmmac: set TxQ mode back to DCB after disabling CBS
+    - ibmvnic: Clear failover_pending if unable to schedule
+    - netfilter: conntrack: skip identical origin tuple in same zone only
+    - x86/build: Disable CET instrumentation in the kernel for 32-bit too
+    - net: hns3: add a check for queue_id in hclge_reset_vf_queue()
+    - firmware_loader: align .builtin_fw to 8
+    - drm/sun4i: tcon: set sync polarity for tcon1 channel
+    - drm/sun4i: Fix H6 HDMI PHY configuration
+    - drm/sun4i: dw-hdmi: Fix max. frequency for H6
+    - clk: sunxi-ng: mp: fix parent rate change flag check
+    - i2c: stm32f7: fix configuration of the digital filter
+    - h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
+    - usb: dwc3: ulpi: fix checkpatch warning
+    - usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
+    - rxrpc: Fix clearance of Tx/Rx ring when releasing a call
+    - udp: fix skb_copy_and_csum_datagram with odd segment sizes
+    - net: dsa: call teardown method on probe failure
+    - net: gro: do not keep too many GRO packets in napi->rx_list
+    - net: fix iteration for sctp transport seq_files
+    - net/vmw_vsock: improve locking in vsock_connect_timeout()
+    - net: watchdog: hold device global xmit lock during tx disable
+    - vsock/virtio: update credit only if socket is not closed
+    - vsock: fix locking in vsock_shutdown()
+    - net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
+    - net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
+    - ovl: expand warning in ovl_d_real()
+    - Linux 5.4.99
+
+  * Focal update: v5.4.98 upstream stable release (LP: #1918158)
+    - tracing/kprobe: Fix to support kretprobe events on unloaded modules
+    - af_key: relax availability checks for skb size calculation
+    - regulator: core: avoid regulator_resolve_supply() race condition
+    - mac80211: 160MHz with extended NSS BW in CSA
+    - ASoC: Intel: Skylake: Zero snd_ctl_elem_value
+    - chtls: Fix potential resource leak
+    - pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
+    - ASoC: ak4458: correct reset polarity
+    - iwlwifi: mvm: skip power command when unbinding vif during CSA
+    - iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
+    - iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
+    - iwlwifi: pcie: fix context info memory leak
+    - iwlwifi: mvm: invalidate IDs of internal stations at mvm start
+    - iwlwifi: mvm: guard against device removal in reprobe
+    - SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
+    - SUNRPC: Handle 0 length opaque XDR object data properly
+    - i2c: mediatek: Move suspend and resume handling to NOIRQ phase
+    - blk-cgroup: Use cond_resched() when destroy blkgs
+    - regulator: Fix lockdep warning resolving supplies
+    - Fix unsynchronized access to sev members through svm_register_enc_region
+    - squashfs: add more sanity checks in id lookup
+    - squashfs: add more sanity checks in inode lookup
+    - squashfs: add more sanity checks in xattr id lookup
+    - Linux 5.4.98
+
+  * Enforce CONFIG_DRM_BOCHS=m (LP: #1916290)
+    - [Config] Enforce CONFIG_DRM_BOCHS=m
+
+  * powerpc/eeh-basic.sh in kselftest make P8 node stopped working
+    (LP: #1916468)
+    - selftests/eeh: Skip ahci adapters
+
+  * Focal update: v5.4.97 upstream stable release (LP: #1916066)
+    - USB: serial: cp210x: add pid/vid for WSDA-200-USB
+    - USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
+    - USB: serial: option: Adding support for Cinterion MV31
+    - arm64: dts: qcom: c630: keep both touchpad devices enabled
+    - arm64: dts: amlogic: meson-g12: Set FL-adj property value
+    - arm64: dts: rockchip: fix vopl iommu irq on px30
+    - bpf, cgroup: Fix optlen WARN_ON_ONCE toctou
+    - bpf, cgroup: Fix problematic bounds check
+    - um: virtio: free vu_dev only with the contained struct device
+    - rxrpc: Fix deadlock around release of dst cached on udp tunnel
+    - arm64: dts: ls1046a: fix dcfg address range
+    - igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr
+    - igc: check return value of ret_val in igc_config_fc_after_link_up
+    - i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues"
+    - net/mlx5: Fix leak upon failure of rule creation
+    - net: lapb: Copy the skb before sending a packet
+    - net: mvpp2: TCAM entry enable should be written after SRAM data
+    - r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set
+    - ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode
+    - nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs
+    - memblock: do not start bottom-up allocations with kernel_end
+    - USB: gadget: legacy: fix an error code in eth_bind()
+    - USB: usblp: don't call usb_set_interface if there's a single alt
+    - usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
+    - usb: dwc2: Fix endpoint direction check in ep_from_windex
+    - usb: dwc3: fix clock issue during resume in OTG mode
+    - usb: xhci-mtk: fix unreleased bandwidth data
+    - usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints
+    - usb: xhci-mtk: break loop when find the endpoint to drop
+    - usb: host: xhci-plat: add priv quirk for skip PHY initialization
+    - ovl: fix dentry leak in ovl_get_redirect
+    - mac80211: fix station rate table updates on assoc
+    - fgraph: Initialize tracing_graph_pause at task creation
+    - kretprobe: Avoid re-registration of the same kretprobe earlier
+    - libnvdimm/dimm: Avoid race between probe and available_slots_show()
+    - genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set
+    - xhci: fix bounce buffer usage for non-sg list case
+    - cifs: report error instead of invalid when revalidating a dentry fails
+    - smb3: Fix out-of-bounds bug in SMB2_negotiate()
+    - smb3: fix crediting for compounding when only one request in flight
+    - mmc: core: Limit retries when analyse of SDIO tuples fails
+    - drm/amd/display: Revert "Fix EDID parsing after resume from suspend"
+    - nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs
+    - KVM: SVM: Treat SVM as unsupported when running as an SEV guest
+    - KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode
+    - ARM: footbridge: fix dc21285 PCI configuration accessors
+    - mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
+    - mm: hugetlb: fix a race between freeing and dissolving the page
+    - mm: hugetlb: fix a race between isolating and freeing page
+    - mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
+    - mm, compaction: move high_pfn to the for loop scope
+    - mm: thp: fix MADV_REMOVE deadlock on shmem THP
+    - x86/build: Disable CET instrumentation in the kernel
+    - x86/apic: Add extra serialization for non-serializing MSRs
+    - iwlwifi: mvm: don't send RFH_QUEUE_CONFIG_CMD with no queues
+    - Input: xpad - sync supported devices with fork on GitHub
+    - iommu/vt-d: Do not use flush-queue when caching-mode is on
+    - md: Set prev_flush_start and flush_bio in an atomic way
+    - neighbour: Prevent a dead entry from updating gc_list
+    - net: ip_tunnel: fix mtu calculation
+    - net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
+    - net: sched: replaced invalid qdisc tree flush helper in qdisc_replace
+    - usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720
+    - Linux 5.4.97
+
+  * Focal update: v5.4.96 upstream stable release (LP: #1916061)
+    - net: dsa: bcm_sf2: put device node before return
+    - net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
+    - ibmvnic: Ensure that CRQ entry read are correctly ordered
+    - Revert "Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT""
+    - ACPI: thermal: Do not call acpi_thermal_check() directly
+    - arm64: Fix kernel address detection of __is_lm_address()
+    - arm64: Do not pass tagged addresses to __is_lm_address()
+    - tcp: make TCP_USER_TIMEOUT accurate for zero window probes
+    - btrfs: backref, only collect file extent items matching backref offset
+    - btrfs: backref, don't add refs from shared block when resolving normal
+      backref
+    - btrfs: backref, only search backref entries from leaves of the same root
+    - btrfs: backref, use correct count to resolve normal data refs
+    - net_sched: gen_estimator: support large ewma log
+    - phy: cpcap-usb: Fix warning for missing regulator_disable
+    - platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on
+      Estar Beauty HD tablet
+    - platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352
+    - x86: __always_inline __{rd,wr}msr()
+    - scsi: scsi_transport_srp: Don't block target in failfast state
+    - scsi: libfc: Avoid invoking response handler twice if ep is already
+      completed
+    - scsi: fnic: Fix memleak in vnic_dev_init_devcmd2
+    - ASoC: SOF: Intel: hda: Resume codec to do jack detection
+    - mac80211: fix fast-rx encryption check
+    - scsi: ibmvfc: Set default timeout to avoid crash during migration
+    - udf: fix the problem that the disc content is not displayed
+    - nvme: check the PRINFO bit before deciding the host buffer length
+    - selftests/powerpc: Only test lwm/stmw on big endian
+    - drm/amd/display: Update dram_clock_change_latency for DCN2.1
+    - drm/amd/display: Change function decide_dp_link_settings to avoid infinite
+      looping
+    - objtool: Don't fail on missing symbol table
+    - kthread: Extract KTHREAD_IS_PER_CPU
+    - workqueue: Restrict affinity change to rescuer
+    - Linux 5.4.96
+
+  * Focal update: v5.4.95 upstream stable release (LP: #1916056)
+    - ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition
+    - IPv6: reply ICMP error if the first fragment don't include all headers
+    - nbd: freeze the queue while we're adding connections
+    - ACPI: sysfs: Prefer "compatible" modalias
+    - kernel: kexec: remove the lock operation of system_transition_mutex
+    - ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
+    - ALSA: hda/via: Apply the workaround generically for Clevo machines
+    - media: rc: ensure that uevent can be read directly after rc device register
+    - ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming
+    - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
+    - net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family
+    - s390/vfio-ap: No need to disable IRQ after queue reset
+    - PM: hibernate: flush swap writer after marking
+    - drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs
+    - drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[]
+    - btrfs: fix possible free space tree corruption with online conversion
+    - KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in
+      intel_arch_events[]
+    - KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh()
+    - KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration
+    - KVM: x86: get smi pending status correctly
+    - KVM: Forbid the use of tagged userspace addresses for memslots
+    - xen: Fix XenStore initialisation for XS_LOCAL
+    - leds: trigger: fix potential deadlock with libata
+    - arm64: dts: broadcom: Fix USB DMA address translation for Stingray
+    - mt7601u: fix kernel crash unplugging the device
+    - mt7601u: fix rx buffer refcounting
+    - drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices
+    - drm/i915: Check for all subplatform bits
+    - tee: optee: replace might_sleep with cond_resched
+    - xen-blkfront: allow discard-* nodes to be optional
+    - ARM: imx: build suspend-imx6.S with arm instruction set
+    - netfilter: nft_dynset: add timeout extension to template
+    - xfrm: Fix oops in xfrm_replay_advance_bmp
+    - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
+    - selftests: xfrm: fix test return value override issue in xfrm_policy.sh
+    - xfrm: Fix wraparound in xfrm_policy_addr_delta()
+    - arm64: dts: ls1028a: fix the offset of the reset register
+    - ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status
+    - firmware: imx: select SOC_BUS to fix firmware build
+    - RDMA/cxgb4: Fix the reported max_recv_sge value
+    - ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
+    - pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()
+    - iwlwifi: pcie: use jiffies for memory read spin time limit
+    - iwlwifi: pcie: reschedule in long-running memory reads
+    - mac80211: pause TX while changing interface type
+    - i40e: acquire VSI pointer only after VF is initialized
+    - igc: fix link speed advertising
+    - net/mlx5: Fix memory leak on flow table creation error flow
+    - net/mlx5e: E-switch, Fix rate calculation for overflow
+    - net/mlx5e: Reduce tc unsupported key print level
+    - can: dev: prevent potential information leak in can_fill_info()
+    - nvme-multipath: Early exit if no path is available
+    - selftests: forwarding: Specify interface when invoking mausezahn
+    - iommu/vt-d: Gracefully handle DMAR units with no supported address widths
+    - iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built
+    - rxrpc: Fix memory leak in rxrpc_lookup_local
+    - NFC: fix resource leak when target index is invalid
+    - NFC: fix possible resource leak
+    - ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
+    - team: protect features update by RCU to avoid deadlock
+    - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
+    - Linux 5.4.95
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 24 Mar 2021 11:25:50 +0100
+
+linux (5.4.0-70.78) focal; urgency=medium
+
+  * CVE-2020-27170
+    - bpf: Fix off-by-one for area size in creating mask to left
+
+  * CVE-2020-27171
+    - bpf: Prohibit alu ops for pointer types not defining ptr_limit
+
+  * binary assembly failures with CONFIG_MODVERSIONS present (LP: #1919315)
+    - [Packaging] quiet (nomially) benign errors in BUILD script
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 19 Mar 2021 12:57:03 +0100
+
+linux (5.4.0-69.77) focal; urgency=medium
+
+  * CVE-2021-3444
+    - bpf: Fix 32 bit src register truncation on div/mod
+    - bpf: Fix truncation handling for mod32 dst reg wrt zero
+
+  * CVE-2021-27365
+    - scsi: iscsi: Verify lengths on passthrough PDUs
+    - sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
+    - scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE
+
+  * CVE-2021-27363 // CVE-2021-27364
+    - scsi: iscsi: Restrict sessions and handles to admin capabilities
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Tue, 16 Mar 2021 12:29:06 +0100
+
+linux (5.4.0-67.75) focal; urgency=medium
+
+  * focal/linux: 5.4.0-67.75 -proposed tracker (LP: #1916169)
+
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - [Config] enable CONFIG_MODVERSIONS=y
+    - [Packaging] build canonical-certs.pem from branch/arch certs
+    - [Config] add Canonical Livepatch Service key to SYSTEM_TRUSTED_KEYS
+    - [Config] add ubuntu-drivers key to SYSTEM_TRUSTED_KEYS
+    - [Config] Allow ASM_MODVERSIONS and MODULE_REL_CRCS
+
+  * geneve overlay network on vlan interface broken with offload enabled
+    (LP: #1914447)
+    - net/mlx5e: Fix SWP offsets when vlan inserted by driver
+
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Fix ODM support in actual build
+
+  * devlink: don't do reporter recovery if the state is healthy (LP: #1915403)
+    - devlink: don't do reporter recovery if the state is healthy
+
+  * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver
+    (LP: #1914543)
+    - HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID
+
+  * Focal update: v5.4.94 upstream stable release (LP: #1915200)
+    - gpio: mvebu: fix pwm .get_state period calculation
+    - futex: Ensure the correct return value from futex_lock_pi()
+    - futex: Replace pointless printk in fixup_owner()
+    - futex: Provide and use pi_state_update_owner()
+    - rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
+    - futex: Use pi_state_update_owner() in put_pi_state()
+    - futex: Simplify fixup_pi_state_owner()
+    - futex: Handle faults correctly for PI futexes
+    - HID: wacom: Correct NULL dereference on AES pen proximity
+    - io_uring: Fix current->fs handling in io_sq_wq_submit_work()
+    - tracing: Fix race in trace_open and buffer resize call
+    - arm64: mm: use single quantity to represent the PA to VA translation
+    - SMB3.1.1: do not log warning message if server doesn't populate salt
+    - tools: Factor HOSTCC, HOSTLD, HOSTAR definitions
+    - dm integrity: conditionally disable "recalculate" feature
+    - writeback: Drop I_DIRTY_TIME_EXPIRE
+    - fs: fix lazytime expiration handling in __writeback_single_inode()
+    - Linux 5.4.94
+
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - i2c: bpmp-tegra: Ignore unknown I2C_M flags
+    - platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634
+    - ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()
+    - ALSA: hda/via: Add minimum mute flag
+    - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
+    - btrfs: don't get an EINTR during drop_snapshot for reloc
+    - btrfs: fix lockdep splat in btrfs_recover_relocation
+    - btrfs: don't clear ret in btrfs_start_dirty_block_groups
+    - btrfs: send: fix invalid clone operations when cloning from the same file
+      and root
+    - mmc: core: don't initialize block size from ext_csd if not present
+    - mmc: sdhci-xenon: fix 1.8v regulator stabilization
+    - dm: avoid filesystem lookup in dm_get_dev_t()
+    - dm integrity: fix a crash if "recalculate" used without "internal_hash"
+    - drm/atomic: put state on error path
+    - drm/syncobj: Fix use-after-free
+    - drm/i915/gt: Prevent use of engine->wa_ctx after error
+    - ASoC: Intel: haswell: Add missing pm_ops
+    - dm integrity: select CRYPTO_SKCIPHER
+    - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
+    - scsi: qedi: Correct max length of CHAP secret
+    - scsi: sd: Suppress spurious errors when WRITE SAME is being disabled
+    - riscv: Fix kernel time_init()
+    - riscv: Fix sifive serial driver
+    - HID: logitech-dj: add the G602 receiver
+    - HID: Ignore battery for Elan touchscreen on ASUS UX550
+    - clk: tegra30: Add hda clock default rates to clock driver
+    - arm64: make atomic helpers __always_inline
+    - xen: Fix event channel callback via INTX/GSI
+    - x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery
+    - dts: phy: fix missing mdio device and probe failure of vsc8541-01 device
+    - riscv: defconfig: enable gpio support for HiFive Unleashed
+    - drm/amdgpu/psp: fix psp gfx ctrl cmds
+    - drm/amd/display: Fix to be able to stop crc calculation
+    - drm/nouveau/bios: fix issue shadowing expansion ROMs
+    - drm/nouveau/privring: ack interrupts the same way as RM
+    - drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields
+    - drm/nouveau/mmu: fix vram heap sizing
+    - drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0
+    - powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S
+    - pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting
+    - scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression
+    - powerpc: Fix alignment bug within the init sections
+    - i2c: octeon: check correct size of maximum RECV_LEN packet
+    - platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-
+      list
+    - selftests: net: fib_tests: remove duplicate log test
+    - can: dev: can_restart: fix use after free bug
+    - can: vxcan: vxcan_xmit: fix use after free bug
+    - can: peak_usb: fix use after free bugs
+    - iio: ad5504: Fix setting power-down state
+    - cifs: do not fail __smb_send_rqst if non-fatal signals are pending
+    - irqchip/mips-cpu: Set IPI domain parent chip
+    - x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state
+    - x86/topology: Make __max_die_per_package available unconditionally
+    - x86/mmx: Use KFPU_387 for MMX string operations
+    - intel_th: pci: Add Alder Lake-P support
+    - stm class: Fix module init return on allocation failure
+    - serial: mvebu-uart: fix tx lost characters at power off
+    - ehci: fix EHCI host controller initialization sequence
+    - USB: ehci: fix an interrupt calltrace error
+    - usb: gadget: aspeed: fix stop dma register setting.
+    - usb: udc: core: Use lock when write to soft_connect
+    - [Config] updateconfigs for USB_BDC_PCI
+    - usb: bdc: Make bdc pci driver depend on BROKEN
+    - xhci: make sure TRB is fully written before giving it to the controller
+    - xhci: tegra: Delay for disabling LFPS detector
+    - driver core: Extend device_is_dependent()
+    - pinctrl: ingenic: Fix JZ4760 support
+    - x86/cpu/amd: Set __max_die_per_package on AMD
+    - netfilter: rpfilter: mask ecn bits before fib lookup
+    - sh: dma: fix kconfig dependency for G2_DMA
+    - net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext
+    - sh_eth: Fix power down vs. is_opened flag ordering
+    - lightnvm: fix memory leak when submit fails
+    - skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too
+    - kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow
+    - kasan: fix incorrect arguments passing in kasan_add_zero_shadow
+    - udp: mask TOS bits in udp_v4_early_demux()
+    - ipv6: create multicast route with RTPROT_KERNEL
+    - net_sched: avoid shift-out-of-bounds in tcindex_set_parms()
+    - net_sched: reject silly cell_log in qdisc_get_rtab()
+    - ipv6: set multicast flag on the multicast route
+    - net: mscc: ocelot: allow offloading of bridge on top of LAG
+    - net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled
+    - net: dsa: b53: fix an off by one in checking "vlan->vid"
+    - tcp: do not mess with cloned skbs in tcp_add_backlog()
+    - tcp: fix TCP_USER_TIMEOUT with zero window
+    - Linux 5.4.93
+
+  * High load from process irq/65-i2c-INT3  - kernel module tps6598x
+    (LP: #1883511) // Focal update: v5.4.93 upstream stable release
+    (LP: #1915195)
+    - platform/x86: i2c-multi-instantiate: Don't create platform device for
+      INT3515 ACPI nodes
+
+  * Focal update: v5.4.92 upstream stable release (LP: #1915186)
+    - usb: ohci: Make distrust_firmware param default to false
+    - compiler.h: Raise minimum version of GCC to 5.1 for arm64
+    - xen/privcmd: allow fetching resource sizes
+    - elfcore: fix building with clang
+    - scsi: lpfc: Make lpfc_defer_acc_rsp static
+    - spi: npcm-fiu: simplify the return expression of npcm_fiu_probe()
+    - spi: npcm-fiu: Disable clock in probe error path
+    - nfsd4: readdirplus shouldn't return parent of export
+    - bpf: Don't leak memory in bpf getsockopt when optlen == 0
+    - bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback
+    - udp: Prevent reuseport_select_sock from reading uninitialized socks
+    - netxen_nic: fix MSI/MSI-x interrupts
+    - net: introduce skb_list_walk_safe for skb segment walking
+    - net: skbuff: disambiguate argument and member for skb_list_walk_safe helper
+    - net: ipv6: Validate GSO SKB before finish IPv6 processing
+    - mlxsw: core: Add validation of transceiver temperature thresholds
+    - mlxsw: core: Increase critical threshold for ASIC thermal zone
+    - net: mvpp2: Remove Pause and Asym_Pause support
+    - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
+    - esp: avoid unneeded kmap_atomic call
+    - net: dcb: Validate netlink message in DCB handler
+    - net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
+    - rxrpc: Call state should be read with READ_ONCE() under some circumstances
+    - net: stmmac: Fixed mtu channged by cache aligned
+    - net: sit: unregister_netdevice on newlink's error path
+    - net: avoid 32 x truesize under-estimation for tiny skbs
+    - rxrpc: Fix handling of an unsupported token type in rxrpc_read()
+    - net, sctp, filter: remap copy_from_user failure error
+    - tipc: fix NULL deref in tipc_link_xmit()
+    - mac80211: do not drop tx nulldata packets on encrypted links
+    - mac80211: check if atf has been disabled in __ieee80211_schedule_txq
+    - spi: cadence: cache reference clock rate during probe
+    - Linux 5.4.92
+
+  * intel-hid is not loaded on new Intel platform (LP: #1907160)
+    - platform/x86: intel-hid: Add Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: Move MODULE_DEVICE_TABLE() closer to the table
+    - platform/x86: intel-hid: add Rocket Lake ACPI device ID
+
+  * Support Advantech UNO-420 platform (LP: #1902672)
+    - ODM: MAINTAINERS: Add Advantech AHC1EC0 embedded controller entry
+    - ODM: mfd: ahc1ec0: Add Advantech EC include file used by dt-bindings
+    - ODM: dt-bindings: mfd: ahc1ec0.yaml: Add Advantech embedded controller -
+      AHC1EC0
+    - ODM: mfd: ahc1ec0: Add support for Advantech embedded controller
+    - ODM: hwmon: ahc1ec0-hwmon: Add sub-device hwmon for Advantech embedded
+      controller
+    - ODM: watchdog: ahc1ec0-wdt: Add sub-device watchdog for Advantech embedded
+      controller
+    - ODM: [Config] update config for Advantech devices
+
+  * Remove scary stack trace from Realtek WiFi driver (LP: #1913263)
+    - rtw88: reduce the log level for failure of tx report
+
+  * Focal update: v5.4.91 upstream stable release (LP: #1914654)
+    - kbuild: enforce -Werror=return-type
+    - btrfs: prevent NULL pointer dereference in extent_io_tree_panic
+    - ASoC: dapm: remove widget from dirty list on free
+    - x86/hyperv: check cpu mask after interrupt has been disabled
+    - tracing/kprobes: Do the notrace functions check without kprobes on ftrace
+    - [Config] update annotations for KPROBE_EVENTS_ON_NOTRACE
+    - mips: fix Section mismatch in reference
+    - mips: lib: uncached: fix non-standard usage of variable 'sp'
+    - MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
+    - MIPS: relocatable: fix possible boot hangup with KASLR enabled
+    - RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
+    - ACPI: scan: Harden acpi_device_add() against device ID overflows
+    - mm/hugetlb: fix potential missing huge page size info
+    - dm raid: fix discard limits for raid1
+    - dm snapshot: flush merged data before committing metadata
+    - dm integrity: fix the maximum number of arguments
+    - r8152: Add Lenovo Powered USB-C Travel Hub
+    - btrfs: tree-checker: check if chunk item end overflows
+    - drm/i915/backlight: fix CPU mode backlight takeover on LPT
+    - ext4: fix bug for rename with RENAME_WHITEOUT
+    - ext4: don't leak old mountpoint samples
+    - cifs: fix interrupted close commands
+    - dm integrity: fix flush with external metadata device
+    - ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
+    - ARC: build: add uImage.lzma to the top-level target
+    - ARC: build: add boot_targets to PHONY
+    - ARC: build: move symlink creation to arch/arc/Makefile to avoid race
+    - netfilter: ipset: fixes possible oops in mtype_resize
+    - btrfs: fix transaction leak and crash after RO remount caused by qgroup
+      rescan
+    - regulator: bd718x7: Add enable times
+    - ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
+    - habanalabs: register to pci shutdown callback
+    - habanalabs: Fix memleak in hl_device_reset
+    - hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
+    - lib/raid6: Let $(UNROLL) rules work with macOS userland
+    - bfq: Fix computation of shallow depth
+    - arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC
+    - misdn: dsp: select CONFIG_BITREVERSE
+    - net: ethernet: fs_enet: Add missing MODULE_LICENSE
+    - nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
+    - nvmet-rdma: Fix list_del corruption on queue establishment failure
+    - drm/amdgpu: fix a GPU hang issue when remove device
+    - usb: typec: Fix copy paste error for NVIDIA alt-mode description
+    - ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
+    - drm/msm: Call msm_init_vram before binding the gpu
+    - ARM: picoxcell: fix missing interrupt-parent properties
+    - perf intel-pt: Fix 'CPU too large' error
+    - dump_common_audit_data(): fix racy accesses to ->d_name
+    - ASoC: meson: axg-tdm-interface: fix loopback
+    - ASoC: meson: axg-tdmin: fix axg skew offset
+    - ASoC: Intel: fix error code cnl_set_dsp_D0()
+    - nvme-tcp: fix possible data corruption with bio merges
+    - NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
+    - pNFS: We want return-on-close to complete when evicting the inode
+    - pNFS: Mark layout for return if return-on-close was not sent
+    - pNFS: Stricter ordering of layoutget and layoutreturn
+    - NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
+    - NFS: nfs_igrab_and_active must first reference the superblock
+    - ext4: fix superblock checksum failure when setting password salt
+    - RDMA/restrack: Don't treat as an error allocation ID wrapping
+    - RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
+    - bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
+    - RDMA/mlx5: Fix wrong free of blue flame register on error
+    - IB/mlx5: Fix error unwinding when set_has_smi_cap fails
+    - drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is
+      no reset-deassert MIPI-sequence
+    - mm, slub: consider rest of partial list if acquire_slab() fails
+    - iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
+    - net: sunrpc: interpret the return value of kstrtou32 correctly
+    - dm: eliminate potential source of excessive kernel log noise
+    - ALSA: fireface: Fix integer overflow in transmit_midi_msg()
+    - ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
+    - netfilter: conntrack: fix reading nf_conntrack_buckets
+    - netfilter: nf_nat: Fix memleak in nf_nat_init
+    - netfilter: nft_compat: remove flush counter optimization
+    - Linux 5.4.91
+
+  * Focal update: v5.4.90 upstream stable release (LP: #1913487)
+    - x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_*
+    - vfio iommu: Add dma available capability
+    - net: cdc_ncm: correct overhead in delayed_ndp_size
+    - net: hns3: fix the number of queues actually used by ARQ
+    - net: hns3: fix a phy loopback fail issue
+    - net: stmmac: dwmac-sun8i: Balance internal PHY resource references
+    - net: stmmac: dwmac-sun8i: Balance internal PHY power
+    - net: vlan: avoid leaks on register_vlan_dev() failures
+    - net/sonic: Fix some resource leaks in error handling paths
+    - net: ipv6: fib: flush exceptions when purging route
+    - tools: selftests: add test for changing routes with PTMU exceptions
+    - net: fix pmtu check in nopmtudisc mode
+    - net: ip: always refragment ip defragmented packets
+    - octeontx2-af: fix memory leak of lmac and lmac->name
+    - nexthop: Fix off-by-one error in error path
+    - nexthop: Unlink nexthop group entry in error path
+    - s390/qeth: fix L2 header access in qeth_l3_osa_features_check()
+    - net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE
+    - net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address
+    - net/mlx5e: ethtool, Fix restriction of autoneg with 56G
+    - chtls: Fix hardware tid leak
+    - chtls: Remove invalid set_tcb call
+    - chtls: Fix panic when route to peer not configured
+    - chtls: Replace skb_dequeue with skb_peek
+    - chtls: Added a check to avoid NULL pointer dereference
+    - chtls: Fix chtls resources release sequence
+    - x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR
+    - x86/resctrl: Don't move a task to the same resource group
+    - exfat: Month timestamp metadata accidentally incremented
+    - vmlinux.lds.h: Add PGO and AutoFDO input sections
+    - iio: imu: st_lsm6dsx: fix edge-trigger interrupts
+    - HID: wacom: Fix memory leakage caused by kfifo_alloc
+    - ARM: OMAP2+: omap_device: fix idling of devices during probe
+    - i2c: sprd: use a specific timeout to avoid system hang up issue
+    - dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk()
+    - can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver
+    - can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop()
+    - can: kvaser_pciefd: select CONFIG_CRC32
+    - cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()
+    - spi: stm32: FIFO threshold level - fix align packet size
+    - i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated
+    - dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling
+      path of the probe function
+    - dmaengine: xilinx_dma: check dma_async_device_register return value
+    - dmaengine: xilinx_dma: fix incompatible param warning in _child_probe()
+    - dmaengine: xilinx_dma: fix mixed_enum_type coverity warning
+    - qed: select CONFIG_CRC32
+    - wil6210: select CONFIG_CRC32
+    - block: rsxx: select CONFIG_CRC32
+    - lightnvm: select CONFIG_CRC32
+    - iommu/intel: Fix memleak in intel_irq_remapping_alloc
+    - bpftool: Fix compilation failure for net.o with older glibc
+    - net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
+    - net/mlx5e: Fix two double free cases
+    - regmap: debugfs: Fix a memory leak when calling regmap_attach_dev
+    - wan: ds26522: select CONFIG_BITREVERSE
+    - regulator: qcom-rpmh-regulator: correct hfsmps515 definition
+    - net: mvpp2: disable force link UP during port init procedure
+    - KVM: arm64: Don't access PMCR_EL0 when no PMU is available
+    - block: fix use-after-free in disk_part_iter_next
+    - net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed
+      packet
+    - regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()
+    - Linux 5.4.90
+
+  * Focal update: v5.4.89 upstream stable release (LP: #1913486)
+    - workqueue: Kick a worker based on the actual activation of delayed works
+    - scsi: ufs: Fix wrong print message in dev_err()
+    - scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk
+      ->poweroff()
+    - scsi: ide: Do not set the RQF_PREEMPT flag for sense requests
+    - scsi: scsi_transport_spi: Set RQF_PM for domain validation commands
+    - lib/genalloc: fix the overflow when size is too big
+    - depmod: handle the case of /sbin/depmod without /sbin in PATH
+    - proc: change ->nlink under proc_subdir_lock
+    - proc: fix lookup in /proc/net subdirectories after setns(2)
+    - i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs
+    - iavf: fix double-release of rtnl_lock
+    - net: mvpp2: Add TCAM entry to drop flow control pause frames
+    - net: mvpp2: prs: fix PPPoE with ipv6 packet parse
+    - net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE
+    - ethernet: ucc_geth: fix use-after-free in ucc_geth_remove()
+    - ethernet: ucc_geth: set dev->max_mtu to 1518
+    - atm: idt77252: call pci_disable_device() on error path
+    - net: mvpp2: Fix GoP port 3 Networking Complex Control configurations
+    - ibmvnic: continue fatal error reset after passive init
+    - net: ethernet: mvneta: Fix error handling in mvneta_probe
+    - virtio_net: Fix recursive call to cpus_read_lock()
+    - net/ncsi: Use real net-device for response handler
+    - net: ethernet: Fix memleak in ethoc_probe
+    - net-sysfs: take the rtnl lock when storing xps_cpus
+    - net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
+    - net-sysfs: take the rtnl lock when storing xps_rxqs
+    - net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc
+    - net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered
+    - tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
+    - net: mvpp2: fix pkt coalescing int-threshold configuration
+    - ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()
+    - net: sched: prevent invalid Scell_log shift count
+    - net: hns: fix return value check in __lb_other_process()
+    - erspan: fix version 1 check in gre_parse_header()
+    - net: hdlc_ppp: Fix issues when mod_timer is called while timer is running
+    - r8169: work around power-saving bug on some chip versions
+    - net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs
+    - net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access
+    - CDC-NCM: remove "connected" log message
+    - net: usb: qmi_wwan: add Quectel EM160R-GL
+    - vhost_net: fix ubuf refcount incorrectly when sendmsg fails
+    - ionic: account for vlan tag len in rx buffer len
+    - net/sched: sch_taprio: ensure to reset/destroy all child qdiscs
+    - kbuild: don't hardcode depmod path
+    - Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close
+    - video: hyperv_fb: Fix the mmap() regression for v5.4.y and older
+    - crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
+    - crypto: asym_tpm: correct zero out potential secrets
+    - powerpc: Handle .text.{hot,unlikely}.* in linker script
+    - staging: mt7621-dma: Fix a resource leak in an error handling path
+    - usb: gadget: enable super speed plus
+    - USB: cdc-acm: blacklist another IR Droid device
+    - USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().
+    - usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion
+    - usb: chipidea: ci_hdrc_imx: add missing put_device() call in
+      usbmisc_get_init_data()
+    - USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set
+    - usb: usbip: vhci_hcd: protect shift size
+    - usb: uas: Add PNY USB Portable SSD to unusual_uas
+    - USB: serial: iuu_phoenix: fix DMA from stack
+    - USB: serial: option: add LongSung M5710 module support
+    - USB: serial: option: add Quectel EM160R-GL
+    - USB: yurex: fix control-URB timeout handling
+    - USB: usblp: fix DMA to stack
+    - ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
+    - usb: gadget: select CONFIG_CRC32
+    - usb: gadget: f_uac2: reset wMaxPacketSize
+    - usb: gadget: function: printer: Fix a memory leak for interface descriptor
+    - usb: gadget: u_ether: Fix MTU size mismatch with RX packet size
+    - USB: gadget: legacy: fix return error code in acm_ms_bind()
+    - usb: gadget: Fix spinlock lockup on usb_function_deactivate
+    - usb: gadget: configfs: Preserve function ordering after bind failure
+    - usb: gadget: configfs: Fix use-after-free issue with udc_name
+    - USB: serial: keyspan_pda: remove unused variable
+    - x86/mm: Fix leak of pmd ptlock
+    - kvm: check tlbs_dirty directly
+    - ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+    - ALSA: hda/conexant: add a new hda codec CX11970
+    - ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
+    - ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256.
+    - btrfs: send: fix wrong file path when there is an inode with a pending rmdir
+    - Revert "device property: Keep secondary firmware node secondary by type"
+    - dmabuf: fix use-after-free of dmabuf's file->f_inode
+    - drm/i915: clear the gpu reloc batch
+    - netfilter: x_tables: Update remaining dereference to RCU
+    - netfilter: ipset: fix shift-out-of-bounds in htable_bits()
+    - netfilter: xt_RATEEST: reject non-null terminated string from userspace
+    - netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
+    - x86/mtrr: Correct the range check before performing MTRR type lookups
+    - KVM: x86: fix shift out of bounds reported by UBSAN
+    - Linux 5.4.89
+
+  * Focal update: v5.4.88 upstream stable release (LP: #1913223)
+    - Revert "drm/amd/display: Fix memory leaks in S3 resume"
+    - Revert "mtd: spinand: Fix OOB read"
+    - dmaengine: at_hdmac: Substitute kzalloc with kmalloc
+    - dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()
+    - dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate()
+    - kdev_t: always inline major/minor helper functions
+    - iio:imu:bmi160: Fix alignment and data leak issues
+    - fuse: fix bad inode
+    - perf: Break deadlock involving exec_update_mutex
+    - rwsem: Implement down_read_killable_nested
+    - rwsem: Implement down_read_interruptible
+    - exec: Transform exec_update_mutex into a rw_semaphore
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start
+    - Linux 5.4.88
+
+  * Focal update: v5.4.87 upstream stable release (LP: #1912681)
+    - net/sched: sch_taprio: reset child qdiscs before freeing them
+    - md/raid10: initialize r10_bio->read_slot before use.
+    - thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has
+      changed
+    - ext4: prevent creating duplicate encrypted filenames
+    - ubifs: prevent creating duplicate encrypted filenames
+    - f2fs: prevent creating duplicate encrypted filenames
+    - fscrypt: add fscrypt_is_nokey_name()
+    - fscrypt: remove kernel-internal constants from UAPI header
+    - vfio/pci: Move dummy_resources_list init in vfio_pci_probe()
+    - btrfs: fix race when defragmenting leads to unnecessary IO
+    - ext4: don't remount read-only with errors=continue on reboot
+    - KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL
+    - KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses
+    - KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits
+    - powerpc/bitops: Fix possible undefined behaviour with fls() and fls64()
+    - jffs2: Allow setting rp_size to zero during remounting
+    - jffs2: Fix NULL pointer dereference in rp_size fs option parsing
+    - scsi: block: Fix a race in the runtime power management code
+    - uapi: move constants from <linux/kernel.h> to <linux/const.h>
+    - tools headers UAPI: Sync linux/const.h with the kernel headers
+    - null_blk: Fix zone size initialization
+    - of: fix linker-section match-table corruption
+    - cgroup: Fix memory leak when parsing multiple source parameters
+    - scsi: cxgb4i: Fix TLS dependency
+    - Bluetooth: hci_h5: close serdev device and free hu in h5_close
+    - reiserfs: add check for an invalid ih_entry_count
+    - misc: vmw_vmci: fix kernel info-leak by initializing dbells in
+      vmci_ctx_get_chkpt_doorbells()
+    - media: gp8psk: initialize stats at power control logic
+    - f2fs: fix shift-out-of-bounds in sanity_check_raw_super()
+    - ALSA: seq: Use bool for snd_seq_queue internal flags
+    - ALSA: rawmidi: Access runtime->avail always in spinlock
+    - bfs: don't use WARNING: string when it's just info.
+    - fcntl: Fix potential deadlock in send_sig{io, urg}()
+    - rtc: sun6i: Fix memleak in sun6i_rtc_clk_init
+    - module: set MODULE_STATE_GOING state when a module fails to load
+    - quota: Don't overflow quota file offsets
+    - rtc: pl031: fix resource leak in pl031_probe
+    - powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe()
+    - i3c master: fix missing destroy_workqueue() on error in i3c_master_register
+    - NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode
+    - f2fs: avoid race condition for shrinker count
+    - module: delay kobject uevent until after module init call
+    - fs/namespace.c: WARN if mnt_count has become negative
+    - um: ubd: Submit all data segments atomically
+    - tick/sched: Remove bogus boot "safety" check
+    - ALSA: pcm: Clear the full allocated memory at hw_params
+    - dm verity: skip verity work if I/O error when system is shutting down
+    - Linux 5.4.87
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 19 Feb 2021 17:11:23 +0100
+
+linux (5.4.0-66.74) focal; urgency=medium
+
+  * focal/linux: 5.4.0-66.74 -proposed tracker (LP: #1913152)
+
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Add support for ODM drivers
+    - [Packaging] Turn on ODM support for amd64
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+
+  * Introduce the new NVIDIA 460-server series and update the 460 series
+    (LP: #1913200)
+    - [Config] dkms-versions -- drop NVIDIA 435 455 and 440-server
+    - [Config] dkms-versions -- add the 460-server nvidia driver
+
+  * Enable mute and micmute LED on HP EliteBook 850 G7 (LP: #1910102)
+    - ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7
+
+  * SYNA30B4:00 06CB:CE09 Mouse  on HP EliteBook 850 G7 not working at all
+    (LP: #1908992)
+    - HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device
+
+  * HD Audio Device PCI ID for the Intel Cometlake-R platform (LP: #1912427)
+    - SAUCE: ALSA: hda: Add Cometlake-R PCI ID
+
+  * switch to an autogenerated nvidia series based core via dkms-versions
+    (LP: #1912803)
+    - [Packaging] nvidia -- use dkms-versions to define versions built
+    - [Packaging] update-version-dkms -- maintain flags fields
+    - [Config] dkms-versions -- add transitional/skip information for nvidia
+      packages
+
+  * udpgro.sh in net from ubuntu_kernel_selftests seems not reflecting sub-test
+    result (LP: #1908499)
+    - selftests: fix the return value for UDP GRO test
+
+  * qede: Kubernetes Internal DNS Failure due to QL41xxx NIC not supporting IPIP
+    tx csum offload (LP: #1909062)
+    - qede: fix offload for IPIP tunnel packets
+
+  * Use DCPD to control HP DreamColor panel (LP: #1911001)
+    - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix
+
+  * kvm: Windows 2k19 with Hyper-v role gets stuck on pending hypervisor
+    requests on cascadelake based kvm hosts (LP: #1911848)
+    - KVM: x86: Set KVM_REQ_EVENT if run is canceled with req_immediate_exit set
+
+  * Ubuntu 20.10 four needed fixes to 'Add driver for Mellanox Connect-IB
+    adapters' (LP: #1905574)
+    - net/mlx5: Fix a race when moving command interface to polling mode
+
+  * Fix right sounds and mute/micmute LEDs for HP ZBook Fury 15/17 G7 Mobile
+    Workstation (LP: #1910561)
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
+
+  * Ubuntu 20.04 - multicast counter is not increased in ip -s (LP: #1901842)
+    - net/mlx5e: Fix multicast counter not up-to-date in "ip -s"
+
+  * eeh-basic.sh in powerpc from ubuntu_kernel_selftests timeout with 5.4 P8 /
+    P9 (LP: #1882503)
+    - selftests/powerpc/eeh: disable kselftest timeout setting for eeh-basic
+
+  * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639)
+    - Input: i8042 - unbreak Pegatron C15B
+
+  * CVE-2020-29372
+    - mm: check that mm is still valid in madvise()
+
+  * update ENA driver, incl. new ethtool stats (LP: #1910291)
+    - net: ena: Change WARN_ON expression in ena_del_napi_in_range()
+    - net: ena: ethtool: convert stat_offset to 64 bit resolution
+    - net: ena: ethtool: Add new device statistics
+    - net: ena: ethtool: add stats printing to XDP queues
+    - net: ena: xdp: add queue counters for xdp actions
+    - net: ena: Change license into format to SPDX in all files
+    - net: ena: Change log message to netif/dev function
+    - net: ena: Capitalize all log strings and improve code readability
+    - net: ena: Remove redundant print of placement policy
+    - net: ena: Change RSS related macros and variables names
+    - net: ena: Fix all static chekers' warnings
+    - drivers/net/ethernet: remove incorrectly formatted doc
+    - net: ena: handle bad request id in ena_netdev
+    - net: ena: fix packet's addresses for rx_offset feature
+
+  * s390x broken with unknown syscall number on kernels < 5.8 (LP: #1895132)
+    - s390/ptrace: return -ENOSYS when invalid syscall is supplied
+
+  * Focal update: v5.4.86 upstream stable release (LP: #1910822)
+    - ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
+    - ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
+    - pinctrl: merrifield: Set default bias in case no particular value given
+    - pinctrl: baytrail: Avoid clearing debounce value when turning it off
+    - ARM: dts: sun8i: v3s: fix GIC node memory range
+    - ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
+    - ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
+    - ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
+    - PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
+    - gpio: zynq: fix reference leak in zynq_gpio functions
+    - gpio: mvebu: fix potential user-after-free on probe
+    - scsi: bnx2i: Requires MMU
+    - xsk: Fix xsk_poll()'s return type
+    - xsk: Replace datagram_poll by sock_poll_wait
+    - can: softing: softing_netdev_open(): fix error handling
+    - clk: renesas: r9a06g032: Drop __packed for portability
+    - block: Simplify REQ_OP_ZONE_RESET_ALL handling
+    - block: factor out requeue handling from dispatch code
+    - blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
+    - pinctrl: aspeed: Fix GPIO requests on pass-through banks
+    - netfilter: x_tables: Switch synchronization to RCU
+    - netfilter: nft_compat: make sure xtables destructors have run
+    - netfilter: nft_dynset: fix timeouts later than 23 days
+    - afs: Fix memory leak when mounting with multiple source parameters
+    - Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
+    - gpio: eic-sprd: break loop when getting NULL device resource
+    - netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
+    - selftests/bpf/test_offload.py: Reset ethtool features after failed setting
+    - RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
+    - i40e: Refactor rx_bi accesses
+    - i40e: optimise prefetch page refcount
+    - i40e: avoid premature Rx buffer reuse
+    - ixgbe: avoid premature Rx buffer reuse
+    - selftests: fix poll error in udpgro.sh
+    - net: mvpp2: add mvpp2_phylink_to_port() helper
+    - drm/tegra: replace idr_init() by idr_init_base()
+    - kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
+    - drm/tegra: sor: Disable clocks on error in tegra_sor_init()
+    - habanalabs: put devices before driver removal
+    - arm64: syscall: exit userspace before unmasking exceptions
+    - vxlan: Add needed_headroom for lower device
+    - vxlan: Copy needed_tailroom from lowerdev
+    - scsi: mpt3sas: Increase IOCInit request timeout to 30s
+    - dm table: Remove BUG_ON(in_interrupt())
+    - iwlwifi: pcie: add one missing entry for AX210
+    - drm/amd/display: Init clock value by current vbios CLKs
+    - perf/x86/intel: Check PEBS status correctly
+    - kbuild: avoid split lines in .mod files
+    - soc/tegra: fuse: Fix index bug in get_process_id
+    - usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
+    - USB: serial: option: add interface-number sanity check to flag handling
+    - USB: gadget: f_acm: add support for SuperSpeed Plus
+    - USB: gadget: f_midi: setup SuperSpeed Plus descriptors
+    - usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
+    - USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
+    - usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
+    - ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
+    - ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on
+      Exynos5410
+    - ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU
+    - coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
+    - coresight: tmc-etr: Check if page is valid before dma_map_page()
+    - coresight: tmc-etr: Fix barrier packet insertion for perf buffer
+    - coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
+    - scsi: megaraid_sas: Check user-provided offsets
+    - HID: i2c-hid: add Vero K147 to descriptor override
+    - serial_core: Check for port state when tty is in error state
+    - Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
+    - quota: Sanity-check quota file headers on load
+    - media: msi2500: assign SPI bus number dynamically
+    - crypto: af_alg - avoid undefined behavior accessing salg_name
+    - md: fix a warning caused by a race between concurrent md_ioctl()s
+    - drm/gma500: fix double free of gma_connector
+    - drm/aspeed: Fix Kconfig warning & subsequent build errors
+    - drm/mcde: Fix handling of platform_get_irq() error
+    - drm/tve200: Fix handling of platform_get_irq() error
+    - arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
+    - arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
+    - soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
+    - soc: mediatek: Check if power domains can be powered on at boot time
+    - soc: qcom: geni: More properly switch to DMA mode
+    - Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
+    - RDMA/bnxt_re: Set queue pair state when being queried
+    - rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
+    - selinux: fix error initialization in inode_doinit_with_dentry()
+    - ARM: dts: aspeed: s2600wf: Fix VGA memory region location
+    - RDMA/rxe: Compute PSN windows correctly
+    - x86/mm/ident_map: Check for errors from ident_pud_init()
+    - ARM: p2v: fix handling of LPAE translation in BE mode
+    - x86/apic: Fix x2apic enablement without interrupt remapping
+    - sched/deadline: Fix sched_dl_global_validate()
+    - sched: Reenable interrupts in do_sched_yield()
+    - drm/amdgpu: fix incorrect enum type
+    - crypto: talitos - Endianess in current_desc_hdr()
+    - crypto: talitos - Fix return type of current_desc_hdr()
+    - crypto: inside-secure - Fix sizeof() mismatch
+    - ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
+    - ARM: dts: aspeed: tiogapass: Remove vuart
+    - drm/amdgpu: fix build_coefficients() argument
+    - powerpc/64: Set up a kernel stack for secondaries before cpu_restore()
+    - spi: img-spfi: fix reference leak in img_spfi_resume
+    - f2fs: call f2fs_get_meta_page_retry for nat page
+    - drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
+    - spi: spi-mem: fix reference leak in spi_mem_access_start
+    - ASoC: pcm: DRAIN support reactivation
+    - selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
+    - spi: stm32: fix reference leak in stm32_spi_resume
+    - brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
+    - arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
+    - arm64: dts: exynos: Correct psci compatible used on Exynos7
+    - Bluetooth: Fix null pointer dereference in hci_event_packet()
+    - Bluetooth: hci_h5: fix memory leak in h5_close
+    - spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
+    - spi: mt7621: fix missing clk_disable_unprepare() on error in
+      mt7621_spi_probe
+    - spi: tegra20-slink: fix reference leak in slink ops of tegra20
+    - spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
+    - spi: tegra114: fix reference leak in tegra spi ops
+    - spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in
+      bcm63xx_hsspi_resume
+    - mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
+    - selftest/bpf: Add missed ip6ip6 test back
+    - ASoC: wm8998: Fix PM disable depth imbalance on error
+    - spi: sprd: fix reference leak in sprd_spi_remove
+    - ASoC: arizona: Fix a wrong free in wm8997_probe
+    - RDMa/mthca: Work around -Wenum-conversion warning
+    - MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
+    - crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
+    - staging: greybus: codecs: Fix reference counter leak in error handling
+    - staging: gasket: interrupt: fix the missed eventfd_ctx_put() in
+      gasket_interrupt.c
+    - media: tm6000: Fix sizeof() mismatches
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in
+      mtk_vcodec_release_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
+    - media: v4l2-fwnode: Return -EINVAL for invalid bus-type
+    - ASoC: meson: fix COMPILE_TEST error
+    - scsi: core: Fix VPD LUN ID designator priorities
+    - media: solo6x10: fix missing snd_card_free in error handling case
+    - video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init()
+    - drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
+    - Input: ads7846 - fix race that causes missing releases
+    - Input: ads7846 - fix integer overflow on Rt calculation
+    - Input: ads7846 - fix unaligned access on 7845
+    - usb/max3421: fix return error code in max3421_probe()
+    - spi: mxs: fix reference leak in mxs_spi_probe
+    - selftests/bpf: Fix broken riscv build
+    - powerpc: Avoid broken GCC __attribute__((optimize))
+    - powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
+    - EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId
+    - crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
+    - crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
+    - spi: fix resource leak for drivers without .remove callback
+    - soc: ti: knav_qmss: fix reference leak in knav_queue_probe
+    - soc: ti: Fix reference imbalance in knav_dma_probe
+    - drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
+    - Input: omap4-keypad - fix runtime PM error handling
+    - clk: meson: Kconfig: fix dependency for G12A
+    - RDMA/cxgb4: Validate the number of CQEs
+    - memstick: fix a double-free bug in memstick_check
+    - ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
+    - ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
+    - mmc: pxamci: Fix error return code in pxamci_probe
+    - orinoco: Move context allocation after processing the skb
+    - qtnfmac: fix error return code in qtnf_pcie_probe()
+    - rsi: fix error return code in rsi_reset_card()
+    - cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
+    - dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
+    - arm64: tegra: Fix DT binding for IO High Voltage entry
+    - media: siano: fix memory leak of debugfs members in smsdvb_hotplug
+    - platform/x86: mlx-platform: Remove PSU EEPROM from default platform
+      configuration
+    - platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform
+      configuration
+    - samples: bpf: Fix lwt_len_hist reusing previous BPF map
+    - media: imx214: Fix stop streaming
+    - mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
+    - media: max2175: fix max2175_set_csm_mode() error code
+    - slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
+    - HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
+    - ARM: dts: Remove non-existent i2c1 from 98dx3236
+    - arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
+    - arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
+    - power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
+    - power: supply: bq24190_charger: fix reference leak
+    - genirq/irqdomain: Don't try to free an interrupt that has no mapping
+    - arm64: dts: ls1028a: fix ENETC PTP clock input
+    - arm64: dts: qcom: c630: Polish i2c-hid devices
+    - PCI: Bounds-check command-line resource alignment requests
+    - PCI: Fix overflow in command-line resource alignment requests
+    - PCI: iproc: Fix out-of-bound array accesses
+    - arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
+    - arm64: dts: meson-sm1: fix typo in opp table
+    - soc: amlogic: canvas: add missing put_device() call in meson_canvas_get()
+    - ARM: dts: at91: at91sam9rl: fix ADC triggers
+    - platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
+    - ath10k: Fix the parsing error in service available event
+    - ath10k: Fix an error handling path
+    - ath10k: Release some resources in an error handling path
+    - SUNRPC: rpc_wake_up() should wake up tasks in the correct order
+    - NFSv4.2: condition READDIR's mask for security label based on LSM state
+    - SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
+    - NFSv4: Fix the alignment of page data in the getdeviceinfo reply
+    - net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
+    - lockd: don't use interval-based rebinding over TCP
+    - NFS: switch nfsiod to be an UNBOUND workqueue.
+    - selftests/seccomp: Update kernel config
+    - vfio-pci: Use io_remap_pfn_range() for PCI IO memory
+    - hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
+    - media: saa7146: fix array overflow in vidioc_s_audio()
+    - powerpc/perf: Fix crash with is_sier_available when pmu is not set
+    - powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
+    - clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
+    - clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
+    - iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
+    - ARM: dts: at91: sama5d2: map securam as device
+    - bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
+    - pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
+    - arm64: dts: rockchip: Fix UART pull-ups on rk3328
+    - memstick: r592: Fix error return in r592_probe()
+    - MIPS: Don't round up kernel sections size for memblock_add()
+    - net/mlx5: Properly convey driver version to firmware
+    - ASoC: jz4740-i2s: add missed checks for clk_get()
+    - dm ioctl: fix error return code in target_message
+    - phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
+    - clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne
+    - clocksource/drivers/arm_arch_timer: Correct fault programming of
+      CNTKCTL_EL1.EVNTI
+    - cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: st: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: loongson1: Add missing MODULE_ALIAS
+    - cpufreq: scpi: Add missing MODULE_ALIAS
+    - Bluetooth: btusb: Add the missed release_firmware() in
+      btusb_mtk_setup_firmware()
+    - Bluetooth: btmtksdio: Add the missed release_firmware() in
+      mtk_setup_firmware()
+    - arm64: dts: meson: fix PHY deassert timing requirements
+    - ARM: dts: meson: fix PHY deassert timing requirements
+    - arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
+    - scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
+    - scsi: pm80xx: Fix error return in pm8001_pci_probe()
+    - seq_buf: Avoid type mismatch for seq_buf_init
+    - scsi: fnic: Fix error return code in fnic_probe()
+    - platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx
+      systems
+    - powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops
+    - powerpc/pseries/hibernation: remove redundant cacheinfo update
+    - drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
+    - ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
+    - powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S
+    - usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
+    - usb: oxu210hp-hcd: Fix memory leak in oxu_create
+    - speakup: fix uninitialized flush_lock
+    - nfsd: Fix message level for normal termination
+    - nfs_common: need lock during iterate through the list
+    - x86/kprobes: Restore BTF if the single-stepping is cancelled
+    - platform/chrome: cros_ec_spi: Don't overwrite spi::mode
+    - bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
+    - s390/cio: fix use-after-free in ccw_device_destroy_console
+    - iwlwifi: mvm: hook up missing RX handlers
+    - erofs: avoid using generic_block_bmap
+    - can: m_can: m_can_config_endisable(): remove double clearing of clock stop
+      request bit
+    - RDMA/core: Do not indicate device ready when device enablement fails
+    - remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
+    - remoteproc: qcom: fix reference leak in adsp_start
+    - remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
+    - clk: tegra: Fix duplicated SE clock entry
+    - mtd: rawnand: gpmi: fix reference count leak in gpmi ops
+    - mtd: rawnand: meson: Fix a resource leak in init
+    - mtd: rawnand: gpmi: Fix the random DMA timeout issue
+    - extcon: max77693: Fix modalias string
+    - crypto: atmel-i2c - select CONFIG_BITREVERSE
+    - mac80211: don't set set TDLS STA bandwidth wider than possible
+    - ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
+    - irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
+    - watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
+    - watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
+    - watchdog: sprd: remove watchdog disable from resume fail path
+    - watchdog: sprd: check busy bit before new loading rather than after that
+    - watchdog: Fix potential dereferencing of null pointer
+    - ubifs: Fix error return code in ubifs_init_authentication()
+    - um: Monitor error events in IRQ controller
+    - um: tty: Fix handling of close in tty lines
+    - um: chan_xterm: Fix fd leak
+    - sunrpc: fix xs_read_xdr_buf for partial pages receive
+    - RDMA/cma: Don't overwrite sgid_attr after device is released
+    - nfc: s3fwrn5: Release the nfc firmware
+    - powerpc/ps3: use dma_mapping_error()
+    - sparc: fix handling of page table constructor failure
+    - mm: don't wake kswapd prematurely when watermark boosting is disabled
+    - checkpatch: fix unescaped left brace
+    - lan743x: fix rx_napi_poll/interrupt ping-pong
+    - net: bcmgenet: Fix a resource leak in an error handling path in the probe
+      functin
+    - net: allwinner: Fix some resources leak in the error handling path of the
+      probe and in the remove function
+    - net: korina: fix return value
+    - libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
+    - watchdog: qcom: Avoid context switch in restart handler
+    - watchdog: coh901327: add COMMON_CLK dependency
+    - clk: ti: Fix memleak in ti_fapll_synth_setup
+    - pwm: zx: Add missing cleanup in error path
+    - pwm: lp3943: Dynamically allocate PWM chip base
+    - perf record: Fix memory leak when using '--user-regs=?' to list registers
+    - qlcnic: Fix error code in probe
+    - virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
+    - virtio_net: Fix error code in probe()
+    - virtio_ring: Fix two use after free bugs
+    - clk: at91: sam9x60: remove atmel,osc-bypass support
+    - clk: s2mps11: Fix a resource leak in error handling paths in the probe
+      function
+    - clk: sunxi-ng: Make sure divider tables have sentinel
+    - kconfig: fix return value of do_error_if()
+    - perf probe: Fix memory leak when synthesizing SDT probes
+    - ARM: sunxi: Add machine match for the Allwinner V3 SoC
+    - cfg80211: initialize rekey_data
+    - fix namespaced fscaps when !CONFIG_SECURITY
+    - lwt: Disable BH too in run_lwt_bpf()
+    - drm/amd/display: Prevent bandwidth overflow
+    - drm/amdkfd: Fix leak in dmabuf import
+    - Input: cros_ec_keyb - send 'scancodes' in addition to key events
+    - initramfs: fix clang build failure
+    - Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
+    - vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU
+    - media: gspca: Fix memory leak in probe
+    - media: sunxi-cir: ensure IR is handled when it is continuous
+    - media: netup_unidvb: Don't leak SPI master in probe error path
+    - media: ipu3-cio2: Remove traces of returned buffers
+    - media: ipu3-cio2: Return actual subdev format
+    - media: ipu3-cio2: Serialise access to pad format
+    - media: ipu3-cio2: Validate mbus format in setting subdev format
+    - media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
+    - Input: cyapa_gen6 - fix out-of-bounds stack access
+    - ALSA: hda/ca0132 - Change Input Source enum strings.
+    - Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources
+      walks"
+    - ACPI: PNP: compare the string length in the matching_id()
+    - ALSA: hda: Fix regressions on clear and reconfig sysfs
+    - ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
+    - ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
+    - ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
+    - ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
+    - ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
+    - ALSA: pcm: oss: Fix a few more UBSAN fixes
+    - ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
+    - ALSA: hda/realtek: Add quirk for MSI-GP73
+    - ALSA: hda/realtek: Apply jack fixup for Quanta NL3
+    - ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
+    - ALSA: usb-audio: Disable sample read check if firmware doesn't give back
+    - ALSA: core: memalloc: add page alignment for iram
+    - s390/smp: perform initial CPU reset also for SMT siblings
+    - s390/kexec_file: fix diag308 subcode when loading crash kernel
+    - s390/dasd: fix hanging device offline processing
+    - s390/dasd: prevent inconsistent LCU device data
+    - s390/dasd: fix list corruption of pavgroup group list
+    - s390/dasd: fix list corruption of lcu list
+    - binder: add flag to clear buffer on txn complete
+    - ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
+    - staging: comedi: mf6x4: Fix AI end-of-conversion detection
+    - perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY
+    - perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
+    - powerpc/perf: Exclude kernel samples while counting events in user space.
+    - crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
+    - crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
+    - EDAC/i10nm: Use readl() to access MMIO registers
+    - EDAC/amd64: Fix PCI component registration
+    - cpuset: fix race between hotplug work and later CPU offline
+    - USB: serial: mos7720: fix parallel-port state restore
+    - USB: serial: digi_acceleport: fix write-wakeup deadlocks
+    - USB: serial: keyspan_pda: fix dropped unthrottle interrupts
+    - USB: serial: keyspan_pda: fix write deadlock
+    - USB: serial: keyspan_pda: fix stalled writes
+    - USB: serial: keyspan_pda: fix write-wakeup use-after-free
+    - USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
+    - USB: serial: keyspan_pda: fix write unthrottling
+    - btrfs: do not shorten unpin len for caching block groups
+    - ext4: fix a memory leak of ext4_free_data
+    - ext4: fix deadlock with fs freezing and EA inodes
+    - KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
+    - ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
+    - ARM: dts: at91: sama5d2: fix CAN message ram offset and size
+    - xprtrdma: Fix XDRBUF_SPARSE_PAGES support
+    - powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
+    - powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
+    - powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE
+    - powerpc/xmon: Change printk() to pr_cont()
+    - powerpc/8xx: Fix early debug when SMC1 is relocated
+    - powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
+    - powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
+    - powerpc/powernv/memtrace: Don't leak kernel memory to user space
+    - powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
+    - ima: Don't modify file descriptor mode on the fly
+    - um: Remove use of asprinf in umid.c
+    - ceph: fix race in concurrent __ceph_remove_cap invocations
+    - SMB3: avoid confusing warning message on mount to Azure
+    - ubifs: wbuf: Don't leak kernel memory to flash
+    - jffs2: Fix GC exit abnormally
+    - jffs2: Fix ignoring mounting options problem during remounting
+    - jfs: Fix array index bounds check in dbAdjTree
+    - platform/x86: mlx-platform: remove an unused variable
+    - drm/amd/display: Fix memory leaks in S3 resume
+    - drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
+    - drm/i915: Fix mismatch between misplaced vma check and vma insert
+    - spi: pxa2xx: Fix use-after-free on unbind
+    - spi: spi-sh: Fix use-after-free on unbind
+    - spi: atmel-quadspi: Fix use-after-free on unbind
+    - spi: davinci: Fix use-after-free on unbind
+    - spi: fsl: fix use of spisel_boot signal on MPC8309
+    - spi: gpio: Don't leak SPI master in probe error path
+    - spi: mxic: Don't leak SPI master in probe error path
+    - spi: pic32: Don't leak DMA channels in probe error path
+    - spi: rb4xx: Don't leak SPI master in probe error path
+    - spi: sc18is602: Don't leak SPI master in probe error path
+    - spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
+    - spi: synquacer: Disable clock in probe error path
+    - spi: mt7621: Disable clock in probe error path
+    - spi: mt7621: Don't leak SPI master in probe error path
+    - spi: atmel-quadspi: Disable clock in probe error path
+    - spi: atmel-quadspi: Fix AHB memory accesses
+    - soc: qcom: smp2p: Safely acquire spinlock without IRQs
+    - mtd: spinand: Fix OOB read
+    - mtd: parser: cmdline: Fix parsing of part-names with colons
+    - mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
+    - mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
+    - scsi: qla2xxx: Fix crash during driver load on big endian machines
+    - scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
+    - scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
+    - iio: buffer: Fix demux update
+    - iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in
+      rockchip_saradc_resume
+    - iio:light:rpr0521: Fix timestamp alignment and prevent data leak.
+    - iio:light:st_uvis25: Fix timestamp alignment and prevent data leak.
+    - iio:magnetometer:mag3110: Fix alignment and data leak issues.
+    - iio:pressure:mpl3115: Force alignment of buffer
+    - iio:imu:bmi160: Fix too large a buffer.
+    - iio:adc:ti-ads124s08: Fix buffer being too long.
+    - iio:adc:ti-ads124s08: Fix alignment and data leak issues.
+    - md/cluster: block reshape with remote resync job
+    - md/cluster: fix deadlock when node is doing resync job
+    - pinctrl: sunxi: Always call chained_irq_{enter, exit} in
+      sunxi_pinctrl_irq_handler
+    - clk: ingenic: Fix divider calculation with div tables
+    - clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
+    - clk: tegra: Do not return 0 on failure
+    - device-dax/core: Fix memory leak when rmmod dax.ko
+    - dma-buf/dma-resv: Respect num_fences when initializing the shared fence
+      list.
+    - xen-blkback: set ring->xenblkd to NULL after kthread_stop()
+    - xen/xenbus: Allow watches discard events before queueing
+    - xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
+    - xen/xenbus/xen_bus_type: Support will_handle watch callback
+    - xen/xenbus: Count pending messages for each watch
+    - xenbus/xenbus_backend: Disallow pending watch messages
+    - libnvdimm/namespace: Fix reaping of invalidated block-window-namespace
+      labels
+    - platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
+    - PCI: Fix pci_slot_release() NULL pointer dereference
+    - regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
+    - rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
+    - Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
+    - x86/CPU/AMD: Save AMD NodeId as cpu_die_id
+    - Linux 5.4.86
+
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info()
+    - ipv4: fix error return code in rtm_to_fib_config()
+    - mac80211: mesh: fix mesh_pathtbl_init() error path
+    - net: bridge: vlan: fix error return code in __vlan_add()
+    - vrf: packets with lladdr src needs dst at input with orig_iif when needs
+      strict
+    - net: hns3: remove a misused pragma packed
+    - udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
+    - enetc: Fix reporting of h/w packet counters
+    - bridge: Fix a deadlock when enabling multicast snooping
+    - net: stmmac: free tx skb buffer in stmmac_resume()
+    - tcp: select sane initial rcvq_space.space for big MSS
+    - tcp: fix cwnd-limited bug for TSO deferral where we send nothing
+    - net/mlx4_en: Avoid scheduling restart task if it is already running
+    - lan743x: fix for potential NULL pointer dereference with bare card
+    - net/mlx4_en: Handle TX error CQE
+    - net: ll_temac: Fix potential NULL dereference in temac_probe()
+    - net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux
+    - net: stmmac: delete the eee_ctrl_timer after napi disabled
+    - ktest.pl: If size of log is too big to email, email error message
+    - USB: dummy-hcd: Fix uninitialized array use in init()
+    - USB: add RESET_RESUME quirk for Snapscan 1212
+    - ALSA: usb-audio: Fix potential out-of-bounds shift
+    - ALSA: usb-audio: Fix control 'access overflow' errors from chmap
+    - xhci: Give USB2 ports time to enter U3 in bus suspend
+    - xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP
+    - USB: UAS: introduce a quirk to set no_write_same
+    - USB: sisusbvga: Make console support depend on BROKEN
+    - [Config] updateconfigs for USB_SISUSBVGA_CON
+    - ALSA: pcm: oss: Fix potential out-of-bounds shift
+    - serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access
+    - KVM: mmu: Fix SPTE encoding of MMIO generation upper half
+    - membarrier: Explicitly sync remote cores when SYNC_CORE is requested
+    - x86/resctrl: Remove unused struct mbm_state::chunks_bw
+    - x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
+    - Linux 5.4.85
+
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - Kbuild: do not emit debug info for assembly with LLVM_IAS=1
+    - x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
+    - iwlwifi: pcie: limit memory read spin time
+    - arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
+    - iwlwifi: pcie: set LTR to avoid completion timeout
+    - iwlwifi: mvm: fix kernel panic in case of assert during CSA
+    - powerpc: Drop -me200 addition to build flags
+    - arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
+    - ARC: stack unwinding: don't assume non-current task is sleeping
+    - scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
+    - interconnect: qcom: qcs404: Remove GPU and display RPM IDs
+    - ibmvnic: skip tx timeout reset while in resetting
+    - irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
+    - spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
+    - soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
+    - arm64: tegra: Disable the ACONNECT for Jetson TX2
+    - platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
+    - platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad
+      Yoga 11e 4th gen
+    - platform/x86: acer-wmi: add automatic keyboard background light toggle key
+      as KEY_LIGHTS_TOGGLE
+    - platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
+    - platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
+    - can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
+    - ktest.pl: Fix incorrect reboot for grub2bls
+    - Input: cm109 - do not stomp on control URB
+    - Input: i8042 - add Acer laptops to the i8042 reset list
+    - mmc: block: Fixup condition for CMD13 polling for RPMB requests
+    - drm/i915/display/dp: Compute the correct slice count for VDSC on DP
+    - kbuild: avoid static_assert for genksyms
+    - proc: use untagged_addr() for pagemap_read addresses
+    - scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
+    - x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
+    - x86/membarrier: Get rid of a dubious optimization
+    - x86/apic/vector: Fix ordering in vector assignment
+    - mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
+    - [Config] updateconfigs for PGTABLE_MAPPING
+    - compiler.h: fix barrier_data() on clang
+    - Linux 5.4.84
+
+  * MSFT Touchpad not working on Lenovo Legion-5 15ARH05 (LP: #1887190) // Focal
+    update: v5.4.84 upstream stable release (LP: #1910816)
+    - pinctrl: amd: remove debounce filter setting in IRQ type setting
+
+  * Focal update: v5.4.83 upstream stable release (LP: #1910784)
+    - pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq
+      pin to output
+    - pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(...,
+      GPIOD_OUT_HIGH)
+    - usb: gadget: f_fs: Use local copy of descriptors for userspace copy
+    - USB: serial: kl5kusb105: fix memleak on open
+    - USB: serial: ch341: add new Product ID for CH341A
+    - USB: serial: ch341: sort device-id entries
+    - USB: serial: option: add Fibocom NL668 variants
+    - USB: serial: option: add support for Thales Cinterion EXS82
+    - USB: serial: option: fix Quectel BG96 matching
+    - tty: Fix ->pgrp locking in tiocspgrp()
+    - tty: Fix ->session locking
+    - ALSA: hda/realtek: Fix bass speaker DAC assignment on Asus Zephyrus G14
+    - ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
+    - ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
+    - ALSA: hda/realtek - Add new codec supported for ALC897
+    - ALSA: hda/generic: Add option to enforce preferred_dacs pairs
+    - ftrace: Fix updating FTRACE_FL_TRAMP
+    - cifs: allow syscalls to be restarted in __smb_send_rqst()
+    - cifs: fix potential use-after-free in cifs_echo_request()
+    - i2c: imx: Don't generate STOP condition if arbitration has been lost
+    - thunderbolt: Fix use-after-free in remove_unplugged_switch()
+    - drm/i915/gt: Program mocs:63 for cache eviction on gen9
+    - scsi: mpt3sas: Fix ioctl timeout
+    - dm writecache: fix the maximum number of arguments
+    - powerpc/64s/powernv: Fix memory corruption when saving SLB entries on MCE
+    - genirq/irqdomain: Add an irq_create_mapping_affinity() function
+    - powerpc/pseries: Pass MSI affinity to irq_create_mapping()
+    - dm: fix bug with RCU locking in dm_blk_report_zones
+    - dm: remove invalid sparse __acquires and __releases annotations
+    - x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
+    - coredump: fix core_pattern parse error
+    - mm: list_lru: set shrinker map bit when child nr_items is not zero
+    - mm/swapfile: do not sleep with a spin lock held
+    - speakup: Reject setting the speakup line discipline outside of speakup
+    - i2c: imx: Fix reset of I2SR_IAL flag
+    - i2c: imx: Check for I2SR_IAL after every byte
+    - spi: bcm2835: Release the DMA channel if probe fails after dma_init
+    - iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
+    - tracing: Fix userstacktrace option for instances
+    - lib/syscall: fix syscall registers retrieval on 32-bit platforms
+    - can: af_can: can_rx_unregister(): remove WARN() statement from list
+      operation sanity check
+    - gfs2: check for empty rgrp tree in gfs2_ri_update
+    - netfilter: ipset: prevent uninit-value in hash_ip6_add
+    - tipc: fix a deadlock when flushing scheduled work
+    - ASoC: wm_adsp: fix error return code in wm_adsp_load()
+    - rtw88: debug: Fix uninitialized memory in debugfs code
+    - i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
+    - dm writecache: remove BUG() and fail gracefully instead
+    - Input: i8042 - fix error return code in i8042_setup_aux()
+    - netfilter: nf_tables: avoid false-postive lockdep splat
+    - netfilter: nftables_offload: set address type in control dissector
+    - x86/insn-eval: Use new for_each_insn_prefix() macro to loop over prefixes
+      bytes
+    - Linux 5.4.83
+
+  * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels
+    (LP: #1908529)
+    - [dep-8] Allow all hwe kernels
+
+  * failing ftrace self tests from 5.7+ onwards (LP: #1893024)
+    - SAUCE: Revert "selftests/ftrace: check for do_sys_openat2 in user-memory
+      test"
+
+  * selftests: test_vxlan_under_vrf: mute unnecessary error message
+    (LP: #1908342)
+    - selftests: test_vxlan_under_vrf: mute unnecessary error message
+
+  * Focal update: v5.4.82 upstream stable release (LP: #1908564)
+    - devlink: Hold rtnl lock while reading netdev attributes
+    - ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
+    - net/af_iucv: set correct sk_protocol for child sockets
+    - net/tls: missing received data after fast remote close
+    - net/tls: Protect from calling tls_dev_del for TLS RX twice
+    - rose: Fix Null pointer dereference in rose_send_frame()
+    - sock: set sk_err to ee_errno on dequeue from errq
+    - tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
+    - tun: honor IOCB_NOWAIT flag
+    - usbnet: ipheth: fix connectivity with iOS 14
+    - bonding: wait for sysfs kobject destruction before freeing struct slave
+    - staging/octeon: fix up merge error
+    - ima: extend boot_aggregate with kernel measurements
+    - sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
+    - netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
+    - ipv4: Fix tos mask in inet_rtm_getroute()
+    - dt-bindings: net: correct interrupt flags in examples
+    - chelsio/chtls: fix panic during unload reload chtls
+    - ibmvnic: Ensure that SCRQ entry reads are correctly ordered
+    - ibmvnic: Fix TX completion error handling
+    - inet_ecn: Fix endianness of checksum update when setting ECT(1)
+    - net: ip6_gre: set dev->hard_header_len when using header_ops
+    - net/x25: prevent a couple of overflows
+    - cxgb3: fix error return code in t3_sge_alloc_qset()
+    - net: pasemi: fix error return code in pasemi_mac_open()
+    - vxlan: fix error return code in __vxlan_dev_create()
+    - chelsio/chtls: fix a double free in chtls_setkey()
+    - net: mvpp2: Fix error return code in mvpp2_open()
+    - net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
+    - net: openvswitch: ensure LSE is pullable before reading it
+    - net/sched: act_mpls: ensure LSE is pullable before reading it
+    - net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
+    - net/mlx5: Fix wrong address reclaim when command interface is down
+    - ALSA: usb-audio: US16x08: fix value count for level meters
+    - Input: xpad - support Ardwiino Controllers
+    - tracing: Remove WARN_ON in start_thread()
+    - RDMA/i40iw: Address an mmap handler exploit in i40iw
+    - Linux 5.4.82
+
+  * Focal update: v5.4.81 upstream stable release (LP: #1908562)
+    - spi: bcm-qspi: Fix use-after-free on unbind
+    - spi: bcm2835: Fix use-after-free on unbind
+    - ipv4: use IS_ENABLED instead of ifdef
+    - netfilter: clear skb->next in NF_HOOK_LIST()
+    - btrfs: tree-checker: add missing return after error in root_item
+    - btrfs: tree-checker: add missing returns after data_ref alignment checks
+    - btrfs: don't access possibly stale fs_info data for printing duplicate
+      device
+    - btrfs: fix lockdep splat when reading qgroup config on mount
+    - wireless: Use linux/stddef.h instead of stddef.h
+    - smb3: Call cifs reconnect from demultiplex thread
+    - smb3: Avoid Mid pending list corruption
+    - smb3: Handle error case during offload read path
+    - cifs: fix a memleak with modefromsid
+    - KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
+    - KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
+    - KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
+    - KVM: x86: Fix split-irqchip vs interrupt injection window request
+    - trace: fix potenial dangerous pointer
+    - arm64: pgtable: Fix pte_accessible()
+    - arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
+    - HID: uclogic: Add ID for Trust Flex Design Tablet
+    - HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
+    - HID: cypress: Support Varmilo Keyboards' media hotkeys
+    - HID: add support for Sega Saturn
+    - Input: i8042 - allow insmod to succeed on devices without an i8042
+      controller
+    - HID: hid-sensor-hub: Fix issue with devices with no report ID
+    - staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
+    - HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
+    - dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
+    - x86/xen: don't unbind uninitialized lock_kicker_irq
+    - HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo
+      Edge
+    - HID: Add Logitech Dinovo Edge battery quirk
+    - proc: don't allow async path resolution of /proc/self components
+    - nvme: free sq/cq dbbuf pointers when dbbuf set fails
+    - vhost scsi: fix cmd completion race
+    - dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
+    - scsi: libiscsi: Fix NOP race condition
+    - scsi: target: iscsi: Fix cmd abort fabric stop race
+    - perf/x86: fix sysfs type mismatches
+    - xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
+    - net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
+    - bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
+    - ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
+    - phy: tegra: xusb: Fix dangling pointer on probe failure
+    - iwlwifi: mvm: write queue_sync_state only for sync
+    - batman-adv: set .owner to THIS_MODULE
+    - arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
+    - ARM: dts: dra76x: m_can: fix order of clocks
+    - scsi: ufs: Fix race between shutdown and runtime resume flow
+    - bnxt_en: fix error return code in bnxt_init_one()
+    - bnxt_en: fix error return code in bnxt_init_board()
+    - video: hyperv_fb: Fix the cache type when mapping the VRAM
+    - bnxt_en: Release PCI regions when DMA mask setup fails during probe.
+    - cxgb4: fix the panic caused by non smac rewrite
+    - s390/qeth: make af_iucv TX notification call more robust
+    - s390/qeth: fix af_iucv notification race
+    - s390/qeth: fix tear down of async TX buffers
+    - ibmvnic: fix call_netdevice_notifiers in do_reset
+    - ibmvnic: notify peers when failover and migration happen
+    - powerpc/64s: Fix allnoconfig build since uaccess flush
+    - IB/mthca: fix return value of error branch in mthca_init_cq()
+    - i40e: Fix removing driver while bare-metal VFs pass traffic
+    - nfc: s3fwrn5: use signed integer for parsing GPIO numbers
+    - net: ena: set initial DMA width to avoid intel iommu issue
+    - ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
+    - ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
+    - optee: add writeback to valid memory type
+    - arm64: tegra: Wrong AON HSP reg property size
+    - efivarfs: revert "fix memory leak in efivarfs_create()"
+    - efi: EFI_EARLYCON should depend on EFI
+    - can: gs_usb: fix endianess problem with candleLight firmware
+    - platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
+    - platform/x86: toshiba_acpi: Fix the wrong variable assignment
+    - RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
+    - RDMA/hns: Bugfix for memory window mtpt configuration
+    - can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from
+      request_threaded_irq()'s flags
+    - can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
+    - perf stat: Use proper cpu for shadow stats
+    - perf probe: Fix to die_entrypc() returns error correctly
+    - spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
+    - USB: core: Change %pK for __user pointers to %px
+    - usb: gadget: f_midi: Fix memleak in f_midi_alloc
+    - USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO
+      built-in usb-audio card
+    - usb: gadget: Fix memleak in gadgetfs_fill_super
+    - irqchip/exiu: Fix the index of fwspec for IRQ type
+    - x86/mce: Do not overwrite no_way_out if mce_end() fails
+    - x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
+    - x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
+    - x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
+    - USB: core: Fix regression in Hercules audio card
+    - ASoC: Intel: Skylake: Remove superfluous chip initialization
+    - ASoC: Intel: Skylake: Select hda configuration permissively
+    - ASoC: Intel: Skylake: Enable codec wakeup during chip init
+    - ASoC: Intel: Skylake: Shield against no-NHLT configurations
+    - ASoC: Intel: Allow for ROM init retry on CNL platforms
+    - ASoC: Intel: Skylake: Await purge request ack on CNL
+    - ASoC: Intel: Multiple I/O PCM format support for pipe
+    - ASoC: Intel: Skylake: Automatic DMIC format configuration according to
+      information from NHLT
+    - Linux 5.4.81
+
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - ah6: fix error return code in ah6_input()
+    - atm: nicstar: Unmap DMA on send error
+    - bnxt_en: read EEPROM A2h address using page 0
+    - devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
+    - Exempt multicast addresses from five-second neighbor lifetime
+    - inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
+    - ipv6: Fix error path to cancel the meseage
+    - lan743x: fix issue causing intermittent kernel log warnings
+    - lan743x: prevent entire kernel HANG on open, for some platforms
+    - mlxsw: core: Use variable timeout for EMAD retries
+    - net: b44: fix error return code in b44_init_one()
+    - net: bridge: add missing counters to ndo_get_stats64 callback
+    - net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
+    - net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
+    - net: Have netpoll bring-up DSA management interface
+    - netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
+    - netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
+    - net: lantiq: Wait for the GPHY firmware to be ready
+    - net/mlx4_core: Fix init_hca fields offset
+    - net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup
+    - net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
+    - net/tls: fix corrupted data in recvmsg
+    - net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
+    - page_frag: Recover from memory pressure
+    - qed: fix error return code in qed_iwarp_ll2_start()
+    - qlcnic: fix error return code in qlcnic_83xx_restart_hw()
+    - sctp: change to hold/put transport for proto_unreach_timer
+    - tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
+    - net/mlx5: Add handling of port type in rule deletion
+    - net/mlx5: Disable QoS when min_rates on all VFs are zero
+    - net: usb: qmi_wwan: Set DTR quirk for MR400
+    - net/ncsi: Fix netlink registration
+    - net: ftgmac100: Fix crash when removing driver
+    - pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
+    - scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
+    - selftests: kvm: Fix the segment descriptor layout to match the actual layout
+    - ACPI: button: Add DMI quirk for Medion Akoya E2228T
+    - arm64: errata: Fix handling of 1418040 with late CPU onlining
+    - arm64: psci: Avoid printing in cpu_psci_cpu_die()
+    - arm64: smp: Tell RCU about CPUs that fail to come online
+    - vfs: remove lockdep bogosity in __sb_start_write
+    - gfs2: fix possible reference leak in gfs2_check_blk_type
+    - hwmon: (pwm-fan) Fix RPM calculation
+    - arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
+    - arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
+    - arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
+    - Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
+    - ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet
+      PHY
+    - ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY
+    - Input: adxl34x - clean up a data type in adxl34x_probe()
+    - MIPS: export has_transparent_hugepage() for modules
+    - arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
+    - arm64: dts imx8mn: Remove non-existent USB OTG2
+    - arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
+    - swiotlb: using SIZE_MAX needs limits.h included
+    - arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point
+    - ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
+    - Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
+    - rfkill: Fix use-after-free in rfkill_resume()
+    - RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
+    - [Config] updateconfigs for INFINIBAND_VIRT_DMA
+    - RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
+    - perf lock: Don't free "lock_seq_stat" if read_count isn't zero
+    - tools, bpftool: Add missing close before bpftool net attach exit
+    - ip_tunnels: Set tunnel option flag when tunnel metadata is present
+    - can: af_can: prevent potential access of uninitialized member in can_rcv()
+    - can: af_can: prevent potential access of uninitialized member in canfd_rcv()
+    - can: dev: can_restart(): post buffer from the right context
+    - can: ti_hecc: Fix memleak in ti_hecc_probe
+    - can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to
+      can_put_echo_skb()
+    - can: peak_usb: fix potential integer overflow on shift of a int
+    - can: flexcan: fix failure handling of pm_runtime_get_sync()
+    - can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
+    - can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for
+      devm_regmap_init()
+    - can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
+    - can: m_can: m_can_handle_state_change(): fix state change
+    - can: m_can: m_can_class_free_dev(): introduce new function
+    - can: m_can: m_can_stop(): set device to software init mode before closing
+    - ASoC: qcom: lpass-platform: Fix memory leak
+    - selftests/bpf: Fix error return code in run_getsockopt_test()
+    - MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
+    - drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()
+    - net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
+    - bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
+    - bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
+    - can: kvaser_pciefd: Fix KCAN bittiming limits
+    - can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
+    - iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header
+    - iommu/vt-d: Avoid panic if iommu init fails in tboot system
+    - can: flexcan: flexcan_chip_start(): fix erroneous
+      flexcan_transceiver_enable() during bus-off recovery
+    - can: m_can: process interrupt only when not runtime suspended
+    - xfs: fix the minrecs logic when dealing with inode root child blocks
+    - xfs: strengthen rmap record flags checking
+    - xfs: return corresponding errcode if xfs_initialize_perag() fail
+    - regulator: ti-abb: Fix array out of bound read access on the first
+      transition
+    - fail_function: Remove a redundant mutex unlock
+    - xfs: revert "xfs: fix rmap key and record comparison functions"
+    - bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
+    - bpf, sockmap: On receive programs try to fast track SK_PASS ingress
+    - bpf, sockmap: Use truesize with sk_rmem_schedule()
+    - bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
+    - efi/x86: Free efi_pgd with free_pages()
+    - libfs: fix error cast of negative value in simple_attr_write()
+    - HID: logitech-hidpp: Add PID for MX Anywhere 2
+    - HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
+    - HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
+    - speakup: Do not let the line discipline be used several times
+    - ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
+    - ALSA: usb-audio: Add delay quirk for all Logitech USB devices
+    - ALSA: ctl: fix error path at adding user-defined element set
+    - ALSA: mixart: Fix mutex deadlock
+    - ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
+    - ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
+    - tty: serial: imx: fix potential deadlock
+    - tty: serial: imx: keep console clocks always on
+    - HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
+    - efivarfs: fix memory leak in efivarfs_create()
+    - staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids
+    - iio: light: fix kconfig dependency bug for VCNL4035
+    - ext4: fix bogus warning in ext4_update_dx_flag()
+    - iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
+    - iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-
+      mode
+    - iio: adc: mediatek: fix unset field
+    - spi: lpspi: Fix use-after-free on unbind
+    - spi: Introduce device-managed SPI controller allocation
+    - spi: npcm-fiu: Don't leak SPI master in probe error path
+    - spi: bcm2835aux: Fix use-after-free on unbind
+    - regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}
+    - regulator: fix memory leak with repeated set_machine_constraints()
+    - regulator: avoid resolve_supply() infinite recursion
+    - regulator: workaround self-referent regulators
+    - xtensa: fix TLBTEMP area placement
+    - xtensa: disable preemption around cache alias management calls
+    - mac80211: minstrel: remove deferred sampling code
+    - mac80211: minstrel: fix tx status processing corner case
+    - mac80211: free sta in sta_info_insert_finish() on errors
+    - s390/cpum_sf.c: fix file permission for cpum_sfb_size
+    - s390/dasd: fix null pointer dereference for ERP requests
+    - Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected
+    - drm/amd/display: Add missing pflip irq for dcn2.0
+    - drm/i915: Handle max_bpc==16
+    - mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel
+      controllers
+    - ptrace: Set PF_SUPERPRIV when checking capability
+    - seccomp: Set PF_SUPERPRIV when checking capability
+    - x86/microcode/intel: Check patch signature before saving microcode for early
+      loading
+    - mm: memcg/slab: fix root memcg vmstats
+    - mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
+    - mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
+    - sched/fair: Fix overutilized update in enqueue_task_fair()
+    - Linux 5.4.80
+
+  * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint
+    (LP: #1908335)
+    - Input: elan_i2c - add support for high resolution reports
+    - Input: elan_i2c - add new trackpoint report type 0x5F
+    - Input: elantech - fix protocol errors for some trackpoints in SMBus mode
+
+  * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200)
+    - SAUCE: rtw88: 8723de: let cpu enter c10
+
+  * [UBUNTU 21.04] s390/pci: vfio-pci mmio being disabled erroneously
+    (LP: #1907265)
+    - s390/pci: Mark all VFs as not implementing PCI_COMMAND_MEMORY
+
+  * Touchpad not detected on ByteSpeed C15B laptop (LP: #1906128)
+    - Input: i8042 - add ByteSpeed touchpad to noloop table
+
+  * Fix reading speed and duplex sysfs on igc device (LP: #1906851)
+    - SAUCE: igc: Report speed and duplex as unknown when device is runtime
+      suspended
+
+  * stack trace in kernel (LP: #1903596)
+    - net: napi: remove useless stack trace
+
+  * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work
+    (LP: #1906229)
+    - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
+    - PM: ACPI: Refresh wakeup device power configuration every time
+
+  * CVE-2020-27777
+    - [Config]: Set CONFIG_PPC_RTAS_FILTER
+
+  * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663)
+    - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41
+
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - powerpc: Only include kup-radix.h for 64-bit Book3S
+    - MIPS: PCI: Fix MIPS build
+    - powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
+    - net: lantiq: Add locking for TX DMA channel
+    - Input: sunkbd - avoid use-after-free in teardown paths
+    - mac80211: always wind down STA state
+    - can: proc: can_remove_proc(): silence remove_proc_entry warning
+    - KVM: x86: clflushopt should be treated as a no-op by emulation
+    - ACPI: GED: fix -Wformat
+    - Linux 5.4.79
+
+ -- Ian May <ian.may@canonical.com>  Wed, 27 Jan 2021 15:44:24 -0600
+
+linux (5.4.0-65.73) focal; urgency=medium
+
+  * focal/linux: 5.4.0-65.73 -proposed tracker (LP: #1912220)
+
+  * initramfs unpacking failed (LP: #1835660)
+    - SAUCE: lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
+
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 18 Jan 2021 17:31:23 +0100
+
+linux (5.4.0-64.72) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 15 Jan 2021 10:50:30 +0100
+
+linux (5.4.0-62.70) focal; urgency=medium
+
+  * focal/linux: 5.4.0-62.70 -proposed tracker (LP: #1911144)
+
+  * CVE-2020-28374
+    - SAUCE: target: fix XCOPY NAA identifier lookup
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Tue, 12 Jan 2021 13:00:40 +0100
+
+linux (5.4.0-60.67) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - update dkms package versions
+
+  * CVE-2021-1052 // CVE-2021-1053
+    - [Packaging] NVIDIA -- Add the NVIDIA 460 driver
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 05 Jan 2021 13:51:33 -0300
+
+linux (5.4.0-59.65) focal; urgency=medium
+
+  * focal/linux: 5.4.0-59.65 -proposed tracker (LP: #1907604)
+
+  * focal: selftests/bpf build broken: test_map_init.skel.h: No such file or
+    directory (LP: #1906866)
+    - SAUCE: Revert selftests/ "bpf: Zero-fill re-used per-cpu map element"
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 10 Dec 2020 12:37:45 +0100
+
+linux (5.4.0-58.64) focal; urgency=medium
+
+  * focal/linux: 5.4.0-58.64 -proposed tracker (LP: #1907390)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * raid10: discard leads to corrupted file system (LP: #1907262)
+    - Revert "dm raid: remove unnecessary discard limits for raid10"
+    - Revert "dm raid: fix discard limits for raid1 and raid10"
+    - Revert "md/raid10: improve discard request for far layout"
+    - Revert "md/raid10: improve raid10 discard request"
+    - Revert "md/raid10: pull codes that wait for blocked dev into one function"
+    - Revert "md/raid10: extend r10bio devs to raid disks"
+    - Revert "md: add md_submit_discard_bio() for submitting discard bio"
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Wed, 09 Dec 2020 02:10:30 -0500
+
+linux (5.4.0-56.62) focal; urgency=medium
+
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Mon, 23 Nov 2020 15:06:56 -0300
+
+linux (5.4.0-55.61) focal; urgency=medium
+
+  * focal/linux: 5.4.0-55.61 -proposed tracker (LP: #1903175)
+
+  * Update kernel packaging to support forward porting kernels (LP: #1902957)
+    - [Debian] Update for leader included in BACKPORT_SUFFIX
+
+  * Avoid double newline when running insertchanges (LP: #1903293)
+    - [Packaging] insertchanges: avoid double newline
+
+  * EFI: Fails when BootCurrent entry does not exist (LP: #1899993)
+    - efivarfs: Replace invalid slashes with exclamation marks in dentries.
+
+  * CVE-2020-14351
+    - perf/core: Fix race in the perf_mmap_close() function
+
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull codes that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: fix discard limits for raid1 and raid10
+    - dm raid: remove unnecessary discard limits for raid10
+
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: drop unnecessary offset_in_page in extent buffer helpers
+    - btrfs: extent_io: do extra check for extent buffer read write functions
+    - btrfs: extent-tree: kill BUG_ON() in __btrfs_free_extent()
+    - btrfs: extent-tree: kill the BUG_ON() in insert_inline_extent_backref()
+    - btrfs: ctree: check key order before merging tree blocks
+
+  * Ethernet no link lights after reboot (Intel i225-v 2.5G) (LP: #1902578)
+    - igc: Add PHY power management control
+
+  * Undetected Data corruption in MPI workloads that use VSX for reductions on
+    POWER9 DD2.1 systems (LP: #1902694)
+    - powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation
+    - selftests/powerpc: Make alignment handler test P9N DD2.1 vector CI load
+      workaround
+
+  * [20.04 FEAT] Support/enhancement of NVMe IPL (LP: #1902179)
+    - s390: nvme ipl
+    - s390: nvme reipl
+    - s390/ipl: support NVMe IPL kernel parameters
+
+  * uvcvideo: add mapping for HEVC payloads (LP: #1895803)
+    - media: uvcvideo: Add mapping for HEVC payloads
+
+  * Focal update: v5.4.73 upstream stable release (LP: #1902115)
+    - ibmveth: Switch order of ibmveth_helper calls.
+    - ibmveth: Identify ingress large send packets.
+    - ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
+    - mlx4: handle non-napi callers to napi_poll
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fix pos incrementment in ipv6_route_seq_next
+    - net/smc: fix valid DMBE buffer sizes
+    - net/tls: sendfile fails with ktls offload
+    - net: usb: qmi_wwan: add Cellient MPL200 card
+    - tipc: fix the skb_unshare() in tipc_buf_append()
+    - socket: fix option SO_TIMESTAMPING_NEW
+    - can: m_can_platform: don't call m_can_class_suspend in runtime suspend
+    - can: j1935: j1939_tp_tx_dat_new(): fix missing initialization of skbcnt
+    - net: j1939: j1939_session_fresh_new(): fix missing initialization of skbcnt
+    - net/ipv4: always honour route mtu during forwarding
+    - net_sched: remove a redundant goto chain check
+    - r8169: fix data corruption issue on RTL8402
+    - cxgb4: handle 4-tuple PEDIT to NAT mode translation
+    - binder: fix UAF when releasing todo list
+    - ALSA: bebob: potential info leak in hwdep_read()
+    - ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
+    - nvme-pci: disable the write zeros command for Intel 600P/P3100
+    - chelsio/chtls: fix socket lock
+    - chelsio/chtls: correct netdevice for vlan interface
+    - chelsio/chtls: correct function return and return type
+    - ibmvnic: save changed mac address to adapter->mac_addr
+    - net: ftgmac100: Fix Aspeed ast2600 TX hang issue
+    - net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
+    - net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling
+      ether_setup
+    - net: Properly typecast int values to set sk_max_pacing_rate
+    - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
+    - nexthop: Fix performance regression in nexthop deletion
+    - nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in
+      nfc_genl_fw_download()
+    - r8169: fix operation under forced interrupt threading
+    - selftests: forwarding: Add missing 'rp_filter' configuration
+    - tcp: fix to update snd_wl1 in bulk receiver fast path
+    - icmp: randomize the global rate limiter
+    - ALSA: hda/realtek - set mic to auto detect on a HP AIO machine
+    - ALSA: hda/realtek - Add mute Led support for HP Elitebook 845 G7
+    - ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
+    - cifs: remove bogus debug code
+    - cifs: Return the error from crypt_message when enc/dec key not found.
+    - SMB3: Resolve data corruption of TCP server info fields
+    - KVM: nVMX: Reset the segment cache when stuffing guest segs
+    - KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails
+    - KVM: x86/mmu: Commit zap of remaining invalid pages when recovering lpages
+    - KVM: SVM: Initialize prev_ga_tag before use
+    - ima: Don't ignore errors from crypto_shash_update()
+    - crypto: algif_aead - Do not set MAY_BACKLOG on the async path
+    - crypto: caam/qi - add fallback for XTS with more than 8B IV
+    - EDAC/i5100: Fix error handling order in i5100_init_one()
+    - EDAC/aspeed: Fix handling of platform_get_irq() error
+    - EDAC/ti: Fix handling of platform_get_irq() error
+    - perf/x86/intel/ds: Fix x86_pmu_stop warning for large PEBS
+    - x86/fpu: Allow multiple bits in clearcpuid= parameter
+    - drivers/perf: xgene_pmu: Fix uninitialized resource struct
+    - drivers/perf: thunderx2_pmu: Fix memory resource error handling
+    - sched/fair: Fix wrong cpu selecting from isolated domain
+    - perf/x86/intel/uncore: Update Ice Lake uncore units
+    - perf/x86/intel/uncore: Reduce the number of CBOX counters
+    - x86/nmi: Fix nmi_handle() duration miscalculation
+    - x86/events/amd/iommu: Fix sizeof mismatch
+    - crypto: algif_skcipher - EBUSY on aio should be an error
+    - crypto: mediatek - Fix wrong return value in mtk_desc_ring_alloc()
+    - crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
+    - crypto: picoxcell - Fix potential race condition bug
+    - media: tuner-simple: fix regression in simple_set_radio_freq
+    - media: Revert "media: exynos4-is: Add missed check for
+      pinctrl_lookup_state()"
+    - media: ov5640: Correct Bit Div register in clock tree diagram
+    - media: m5mols: Check function pointer in m5mols_sensor_power
+    - media: uvcvideo: Set media controller entity functions
+    - media: uvcvideo: Silence shift-out-of-bounds warning
+    - media: staging/intel-ipu3: css: Correctly reset some memory
+    - media: omap3isp: Fix memleak in isp_probe
+    - media: i2c: ov5640: Remain in power down for DVP mode unless streaming
+    - media: i2c: ov5640: Separate out mipi configuration from s_power
+    - media: i2c: ov5640: Enable data pins on poweron for DVP mode
+    - media: rcar_drif: Fix fwnode reference leak when parsing DT
+    - media: rcar_drif: Allocate v4l2_async_subdev dynamically
+    - media: rcar-csi2: Allocate v4l2_async_subdev dynamically
+    - crypto: omap-sham - fix digcnt register handling with export/import
+    - hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61}
+    - cypto: mediatek - fix leaks in mtk_desc_ring_alloc
+    - media: mx2_emmaprp: Fix memleak in emmaprp_probe
+    - media: tc358743: initialize variable
+    - media: tc358743: cleanup tc358743_cec_isr
+    - media: rcar-vin: Fix a reference count leak.
+    - media: rockchip/rga: Fix a reference count leak.
+    - media: platform: fcp: Fix a reference count leak.
+    - media: camss: Fix a reference count leak.
+    - media: s5p-mfc: Fix a reference count leak
+    - media: stm32-dcmi: Fix a reference count leak
+    - media: ti-vpe: Fix a missing check and reference count leak
+    - regulator: resolve supply after creating regulator
+    - pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
+    - spi: spi-s3c64xx: swap s3c64xx_spi_set_cs() and s3c64xx_enable_datapath()
+    - spi: spi-s3c64xx: Check return values
+    - blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
+    - ath10k: provide survey info as accumulated data
+    - drm/vkms: fix xrgb on compute crc
+    - Bluetooth: hci_uart: Cancel init work before unregistering
+    - drm/amd/display: Fix wrong return value in dm_update_plane_state()
+    - drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel
+    - ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
+    - ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
+    - ath10k: Fix the size used in a 'dma_free_coherent()' call in an error
+      handling path
+    - wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
+    - ASoC: qcom: lpass-platform: fix memory leak
+    - ASoC: qcom: lpass-cpu: fix concurrency issue
+    - brcmfmac: check ndev pointer
+    - mwifiex: Do not use GFP_KERNEL in atomic context
+    - staging: rtl8192u: Do not use GFP_KERNEL in atomic context
+    - drm/gma500: fix error check
+    - scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
+    - scsi: qla2xxx: Fix wrong return value in qlt_chk_unresolv_exchg()
+    - scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
+    - scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
+    - backlight: sky81452-backlight: Fix refcount imbalance on error
+    - staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()
+    - VMCI: check return value of get_user_pages_fast() for errors
+    - mm/error_inject: Fix allow_error_inject function signatures.
+    - drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
+    - drm/crc-debugfs: Fix memleak in crc_control_write
+    - binder: Remove bogus warning on failed same-process transaction
+    - tty: serial: earlycon dependency
+    - pty: do tty_flip_buffer_push without port->lock in pty_write
+    - pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()
+    - pwm: lpss: Add range limit check for the base_unit register value
+    - drivers/virt/fsl_hypervisor: Fix error handling path
+    - video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
+    - video: fbdev: sis: fix null ptr dereference
+    - video: fbdev: radeon: Fix memleak in radeonfb_pci_register
+    - ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
+    - HID: roccat: add bounds checking in kone_sysfs_write_settings()
+    - drm/msm: Avoid div-by-zero in dpu_crtc_atomic_check()
+    - drm/panfrost: Ensure GPU quirks are always initialised
+    - iomap: Clear page error before beginning a write
+    - pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
+    - pinctrl: mcp23s08: Fix mcp23x17 precious range
+    - net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
+    - scsi: mpt3sas: Fix sync irqs
+    - net: stmmac: use netif_tx_start|stop_all_queues() function
+    - cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
+    - drm: mxsfb: check framebuffer pitch
+    - coresight: etm4x: Handle unreachable sink in perf mode
+    - xhci: don't create endpoint debugfs entry before ring buffer is set.
+    - net: dsa: rtl8366: Check validity of passed VLANs
+    - net: dsa: rtl8366: Refactor VLAN/PVID init
+    - net: dsa: rtl8366: Skip PVID setting if not requested
+    - net: wilc1000: clean up resource in error path of init mon interface
+    - ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
+    - net: dsa: rtl8366rb: Support all 4096 VLANs
+    - spi: omap2-mcspi: Improve performance waiting for CHSTAT
+    - ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
+    - dmaengine: dmatest: Check list for emptiness before access its last entry
+    - misc: mic: scif: Fix error handling path
+    - ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
+    - usb: dwc2: Fix parameter type in function pointer prototype
+    - quota: clear padding in v2r1_mem2diskdqb()
+    - slimbus: core: check get_addr before removing laddr ida
+    - slimbus: core: do not enter to clock pause mode in core
+    - slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback
+    - ASoC: fsl_sai: Instantiate snd_soc_dai_driver
+    - HID: hid-input: fix stylus battery reporting
+    - nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell()
+    - nl80211: fix OBSS PD min and max offset validation
+    - coresight: etm: perf: Fix warning caused by etm_setup_aux failure
+    - ibmvnic: set up 200GBPS speed
+    - qtnfmac: fix resource leaks on unsupported iftype error return path
+    - iio: adc: stm32-adc: fix runtime autosuspend delay when slow polling
+    - net: enic: Cure the enic api locking trainwreck
+    - mfd: sm501: Fix leaks in probe()
+    - iwlwifi: mvm: split a print to avoid a WARNING in ROC
+    - usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
+    - usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
+    - nl80211: fix non-split wiphy information
+    - usb: dwc2: Fix INTR OUT transfers in DDMA mode.
+    - scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
+    - scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
+    - ipmi_si: Fix wrong return value in try_smi_init()
+    - platform/x86: mlx-platform: Remove PSU EEPROM configuration
+    - mwifiex: fix double free
+    - ipvs: clear skb->tstamp in forwarding path
+    - net: korina: fix kfree of rx/tx descriptor array
+    - netfilter: nf_log: missing vlan offload tag and proto
+    - mm/swapfile.c: fix potential memory leak in sys_swapon
+    - mm/memcg: fix device private memcg accounting
+    - mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
+    - fs: fix NULL dereference due to data race in prepend_path()
+    - selftests/ftrace: Change synthetic event name for inter-event-combined test
+    - i3c: master add i3c_master_attach_boardinfo to preserve boardinfo
+    - IB/mlx4: Fix starvation in paravirt mux/demux
+    - IB/mlx4: Adjust delayed work when a dup is observed
+    - powerpc/pseries: Fix missing of_node_put() in rng_init()
+    - powerpc/icp-hv: Fix missing of_node_put() in success path
+    - RDMA/ucma: Fix locking for ctx->events_reported
+    - RDMA/ucma: Add missing locking around rdma_leave_multicast()
+    - mtd: lpddr: fix excessive stack usage with clang
+    - RDMA/hns: Add a check for current state before modifying QP
+    - RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
+    - powerpc/pseries: explicitly reschedule during drmem_lmb list traversal
+    - pseries/drmem: don't cache node id in drmem_lmb struct
+    - RDMA/mlx5: Fix potential race between destroy and CQE poll
+    - mtd: mtdoops: Don't write panic data twice
+    - ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
+    - arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
+    - ida: Free allocated bitmap in error path
+    - xfs: limit entries returned when counting fsmap records
+    - xfs: fix deadlock and streamline xfs_getfsmap performance
+    - xfs: fix high key handling in the rt allocator's query_range function
+    - RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page
+      boundary
+    - RDMA/umem: Prevent small pages from being returned by
+      ib_umem_find_best_pgsz()
+    - RDMA/qedr: Fix qp structure memory leak
+    - RDMA/qedr: Fix use of uninitialized field
+    - RDMA/qedr: Fix return code if accept is called on a destroyed qp
+    - RDMA/qedr: Fix inline size returned for iWARP
+    - powerpc/book3s64/hash/4k: Support large linear mapping range with 4K
+    - powerpc/tau: Use appropriate temperature sample interval
+    - powerpc/tau: Convert from timer to workqueue
+    - powerpc/tau: Remove duplicated set_thresholds() call
+    - powerpc/tau: Check processor type before enabling TAU interrupt
+    - powerpc/tau: Disable TAU between measurements
+    - powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
+    - RDMA/cma: Remove dead code for kernel rdmacm multicast
+    - RDMA/cma: Consolidate the destruction of a cma_multicast in one place
+    - perf intel-pt: Fix "context_switch event has no tid" error
+    - RDMA/hns: Set the unsupported wr opcode
+    - RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
+    - i40iw: Add support to make destroy QP synchronous
+    - perf stat: Skip duration_time in setup_system_wide
+    - RDMA/hns: Fix the wrong value of rnr_retry when querying qp
+    - RDMA/hns: Fix missing sq_sig_type when querying QP
+    - mtd: rawnand: vf610: disable clk on error handling path in probe
+    - mtd: spinand: gigadevice: Only one dummy byte in QUADIO
+    - mtd: spinand: gigadevice: Add QE Bit
+    - kdb: Fix pager search for multi-line strings
+    - overflow: Include header file with SIZE_MAX declaration
+    - RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces
+    - powerpc/perf: Exclude pmc5/6 from the irrelevant PMU group constraints
+    - powerpc/perf/hv-gpci: Fix starting index value
+    - i3c: master: Fix error return in cdns_i3c_master_probe()
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
+    - IB/rdmavt: Fix sizeof mismatch
+    - RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
+    - maiblox: mediatek: Fix handling of platform_get_irq() error
+    - selftests/powerpc: Fix eeh-basic.sh exit codes
+    - f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
+    - RDMA/rxe: Handle skb_clone() failure in rxe_recv.c
+    - mm/page_owner: change split_page_owner to take a count
+    - lib/crc32.c: fix trivial typo in preprocessor condition
+    - ramfs: fix nommu mmap with gaps in the page cache
+    - rapidio: fix error handling path
+    - rapidio: fix the missed put_device() for rio_mport_add_riodev
+    - mailbox: avoid timer start from callback
+    - i2c: rcar: Auto select RESET_CONTROLLER
+    - clk: meson: g12a: mark fclk_div2 as critical
+    - PCI: aardvark: Check for errors from pci_bridge_emul_init() call
+    - PCI: iproc: Set affinity mask on MSI interrupts
+    - rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
+    - PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY
+    - vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn
+    - clk: qcom: gcc-sdm660: Fix wrong parent_map
+    - clk: keystone: sci-clk: fix parsing assigned-clock data during probe
+    - pwm: img: Fix null pointer access in probe
+    - clk: rockchip: Initialize hw to error to avoid undefined behavior
+    - clk: mediatek: add UART0 clock support
+    - module: statically initialize init section freeing data
+    - clk: at91: clk-main: update key before writing AT91_CKGR_MOR
+    - clk: bcm2835: add missing release if devm_clk_hw_register fails
+    - watchdog: Fix memleak in watchdog_cdev_register
+    - watchdog: Use put_device on error
+    - watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3
+    - svcrdma: fix bounce buffers for unaligned offsets and multiple pages
+    - ext4: limit entries returned when counting fsmap records
+    - vfio/pci: Clear token on bypass registration failure
+    - vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
+    - clk: imx8mq: Fix usdhc parents order
+    - SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
+    - Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
+    - Input: stmfts - fix a & vs && typo
+    - Input: ep93xx_keypad - fix handling of platform_get_irq() error
+    - Input: omap4-keypad - fix handling of platform_get_irq() error
+    - Input: twl4030_keypad - fix handling of platform_get_irq() error
+    - Input: sun4i-ps2 - fix handling of platform_get_irq() error
+    - KVM: x86: emulating RDPID failure shall return #UD rather than #GP
+    - scsi: bfa: Fix error return in bfad_pci_init()
+    - netfilter: conntrack: connection timeout after re-register
+    - netfilter: ebtables: Fixes dropping of small packets in bridge nat
+    - netfilter: nf_fwd_netdev: clear timestamp in forwarding path
+    - arm64: dts: meson: vim3: correct led polarity
+    - ARM: dts: imx6sl: fix rng node
+    - ARM: at91: pm: of_node_put() after its usage
+    - ARM: s3c24xx: fix mmc gpio lookup tables
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
+    - arm64: dts: allwinner: h5: remove Mali GPU PMU module
+    - memory: omap-gpmc: Fix a couple off by ones
+    - memory: omap-gpmc: Fix build error without CONFIG_OF
+    - memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
+    - arm64: dts: imx8mq: Add missing interrupts to GPC
+    - arm64: dts: qcom: msm8916: Remove one more thermal trip point unit name
+    - arm64: dts: qcom: pm8916: Remove invalid reg size from wcd_codec
+    - arm64: dts: qcom: msm8916: Fix MDP/DSI interrupts
+    - arm64: dts: renesas: r8a77990: Fix MSIOF1 DMA channels
+    - arm64: dts: renesas: r8a774c0: Fix MSIOF1 DMA channels
+    - arm64: dts: actions: limit address range for pinctrl node
+    - ARM: dts: owl-s500: Fix incorrect PPI interrupt specifiers
+    - soc: fsl: qbman: Fix return value on success
+    - ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
+    - arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
+    - ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
+    - lightnvm: fix out-of-bounds write to array devices->info[]
+    - powerpc/powernv/dump: Fix race while processing OPAL dump
+    - powerpc/pseries: Avoid using addr_to_pfn in real mode
+    - nvmet: fix uninitialized work for zero kato
+    - NTB: hw: amd: fix an issue about leak system resources
+    - sched/features: Fix !CONFIG_JUMP_LABEL case
+    - perf: correct SNOOPX field offset
+    - i2c: core: Restore acpi_walk_dep_device_list() getting called after
+      registering the ACPI i2c devs
+    - md/bitmap: fix memory leak of temporary bitmap
+    - block: ratelimit handle_bad_sector() message
+    - crypto: ccp - fix error handling
+    - x86/asm: Replace __force_order with a memory clobber
+    - x86/mce: Add Skylake quirk for patrol scrub reported errors
+    - media: firewire: fix memory leak
+    - media: ati_remote: sanity check for both endpoints
+    - media: st-delta: Fix reference count leak in delta_run_work
+    - media: sti: Fix reference count leaks
+    - media: exynos4-is: Fix several reference count leaks due to
+      pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak
+    - media: vsp1: Fix runtime PM imbalance on error
+    - media: platform: s3c-camif: Fix runtime PM imbalance on error
+    - media: platform: sti: hva: Fix runtime PM imbalance on error
+    - media: bdisp: Fix runtime PM imbalance on error
+    - media: media/pci: prevent memory leak in bttv_probe
+    - x86/mce: Make mce_rdmsrl() panic on an inaccessible MSR
+    - media: uvcvideo: Ensure all probed info is returned to v4l2
+    - mmc: sdio: Check for CISTPL_VERS_1 buffer size
+    - media: saa7134: avoid a shift overflow
+    - media: venus: fixes for list corruption
+    - fs: dlm: fix configfs memory leak
+    - media: venus: core: Fix runtime PM imbalance in venus_probe
+    - ntfs: add check for mft record size in superblock
+    - ip_gre: set dev->hard_header_len and dev->needed_headroom properly
+    - mac80211: handle lack of sband->bitrates in rates
+    - PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
+    - scsi: mvumi: Fix error return in mvumi_io_attach()
+    - scsi: target: core: Add CONTROL field for trace events
+    - mic: vop: copy data to kernel space then write to io memory
+    - misc: vop: add round_up(x,4) for vring_size to avoid kernel panic
+    - usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc
+    - usb: gadget: function: printer: fix use-after-free in __lock_acquire
+    - udf: Limit sparing table size
+    - udf: Avoid accessing uninitialized data on failed inode read
+    - rtw88: increse the size of rx buffer size
+    - USB: cdc-acm: handle broken union descriptors
+    - usb: dwc3: simple: add support for Hikey 970
+    - can: flexcan: flexcan_chip_stop(): add error handling and propagate error
+      value
+    - ath9k: hif_usb: fix race condition between usb_get_urb() and
+      usb_kill_anchored_urbs()
+    - drm/panfrost: add amlogic reset quirk callback
+    - bpf: Limit caller's stack depth 256 for subprogs with tailcalls
+    - misc: rtsx: Fix memory leak in rtsx_pci_probe
+    - reiserfs: only call unlock_new_inode() if I_NEW
+    - opp: Prevent memory leak in dev_pm_opp_attach_genpd()
+    - xfs: make sure the rt allocator doesn't run off the end
+    - usb: ohci: Default to per-port over-current protection
+    - Bluetooth: Only mark socket zapped after unlocking
+    - drm/msm/a6xx: fix a potential overflow issue
+    - iomap: fix WARN_ON_ONCE() from unprivileged users
+    - scsi: ibmvfc: Fix error return in ibmvfc_probe()
+    - scsi: qla2xxx: Warn if done() or free() are called on an already freed srb
+    - selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
+    - brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
+    - rtl8xxxu: prevent potential memory leak
+    - Fix use after free in get_capset_info callback.
+    - HID: ite: Add USB id match for Acer One S1003 keyboard dock
+    - scsi: qedf: Return SUCCESS if stale rport is encountered
+    - scsi: qedi: Protect active command list to avoid list corruption
+    - scsi: qedi: Fix list_del corruption while removing active I/O
+    - fbmem: add margin check to fb_check_caps()
+    - tty: ipwireless: fix error handling
+    - Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb
+    - ipvs: Fix uninit-value in do_ip_vs_set_ctl()
+    - reiserfs: Fix memory leak in reiserfs_parse_options()
+    - mwifiex: don't call del_timer_sync() on uninitialized timer
+    - ALSA: hda/ca0132 - Add AE-7 microphone selection commands.
+    - ALSA: hda/ca0132 - Add new quirk ID for SoundBlaster AE-7.
+    - scsi: smartpqi: Avoid crashing kernel for controller issues
+    - brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
+    - usb: core: Solve race condition in anchor cleanup functions
+    - scsi: ufs: ufs-qcom: Fix race conditions caused by ufs_qcom_testbus_config()
+    - dmaengine: dw: Add DMA-channels mask cell support
+    - dmaengine: dw: Activate FIFO-mode for memory peripherals only
+    - ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
+    - net: korina: cast KSEG0 address to pointer in kfree
+    - s390/qeth: don't let HW override the configured port role
+    - tty: serial: lpuart: fix lpuart32_write usage
+    - tty: serial: fsl_lpuart: fix lpuart32_poll_get_char
+    - usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
+    - USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
+    - usb: cdns3: gadget: free interrupt after gadget has deleted
+    - eeprom: at25: set minimum read/write access stride to 1
+    - usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
+    - Linux 5.4.73
+
+  * Focal update: v5.4.72 upstream stable release (LP: #1902111)
+    - perf cs-etm: Move definition of 'traceid_list' global variable from header
+      file
+    - btrfs: don't pass system_chunk into can_overcommit
+    - btrfs: take overcommit into account in inc_block_group_ro
+    - ARM: 8939/1: kbuild: use correct nm executable
+    - ACPI: Always build evged in
+    - Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
+    - Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
+    - Bluetooth: Disconnect if E0 is used for Level 4
+    - media: usbtv: Fix refcounting mixup
+    - USB: serial: option: add Cellient MPL200 card
+    - USB: serial: option: Add Telit FT980-KS composition
+    - staging: comedi: check validity of wMaxPacketSize of usb endpoints found
+    - USB: serial: pl2303: add device-id for HP GC device
+    - USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
+    - reiserfs: Initialize inode keys properly
+    - reiserfs: Fix oops during mount
+    - xen/events: don't use chip_data for legacy IRQs
+    - crypto: bcm - Verify GCM/CCM key length in setkey
+    - crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
+    - Linux 5.4.72
+
+  * Focal update: v5.4.71 upstream stable release (LP: #1902110)
+    - fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
+    - Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
+    - fbcon: Fix global-out-of-bounds read in fbcon_get_font()
+    - Revert "ravb: Fixed to be able to unload modules"
+    - io_uring: Fix resource leaking when kill the process
+    - io_uring: Fix missing smp_mb() in io_cancel_async_work()
+    - io_uring: Fix remove irrelevant req from the task_list
+    - io_uring: Fix double list add in io_queue_async_work()
+    - net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
+    - drm/nouveau/mem: guard against NULL pointer access in mem_del
+    - vhost: Don't call access_ok() when using IOTLB
+    - vhost: Use vhost_get_used_size() in vhost_vring_set_addr()
+    - usermodehelper: reset umask to default before executing user process
+    - Platform: OLPC: Fix memleak in olpc_ec_probe
+    - platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP
+      Pavilion 11 x360
+    - platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
+    - bpf: Fix sysfs export of empty BTF section
+    - bpf: Prevent .BTF section elimination
+    - platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE
+      reporting
+    - platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse
+    - driver core: Fix probe_count imbalance in really_probe()
+    - perf test session topology: Fix data path
+    - perf top: Fix stdio interface input handling with glibc 2.28+
+    - i2c: i801: Exclude device from suspend direct complete optimization
+    - arm64: dts: stratix10: add status to qspi dts node
+    - Btrfs: send, allow clone operations within the same file
+    - Btrfs: send, fix emission of invalid clone operations within the same file
+    - btrfs: volumes: Use more straightforward way to calculate map length
+    - btrfs: Ensure we trim ranges across block group boundary
+    - btrfs: fix RWF_NOWAIT write not failling when we need to cow
+    - btrfs: allow btrfs_truncate_block() to fallback to nocow for data space
+      reservation
+    - nvme-core: put ctrl ref when module ref get fail
+    - macsec: avoid use-after-free in macsec_handle_frame()
+    - mm/khugepaged: fix filemap page_to_pgoff(page) != offset
+    - net: introduce helper sendpage_ok() in include/linux/net.h
+    - tcp: use sendpage_ok() to detect misused .sendpage
+    - nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
+    - xfrmi: drop ignore_df check before updating pmtu
+    - cifs: Fix incomplete memory allocation on setxattr path
+    - i2c: meson: fix clock setting overwrite
+    - i2c: meson: fixup rate calculation with filter delay
+    - i2c: owl: Clear NACK and BUS error bits
+    - sctp: fix sctp_auth_init_hmacs() error path
+    - team: set dev->needed_headroom in team_setup_by_port()
+    - net: team: fix memory leak in __team_options_register
+    - openvswitch: handle DNAT tuple collision
+    - drm/amdgpu: prevent double kfree ttm->sg
+    - iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
+    - xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
+    - xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
+    - xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
+    - xfrm: clone whole liftime_cur structure in xfrm_do_migrate
+    - net: stmmac: removed enabling eee in EEE set callback
+    - platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP
+    - xfrm: Use correct address family in xfrm_state_find
+    - iavf: use generic power management
+    - iavf: Fix incorrect adapter get in iavf_resume
+    - net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop
+    - bonding: set dev->needed_headroom in bond_setup_by_slave()
+    - mdio: fix mdio-thunder.c dependency & build error
+    - mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path
+    - r8169: fix RTL8168f/RTL8411 EPHY config
+    - net: usb: ax88179_178a: fix missing stop entry in driver_info
+    - virtio-net: don't disable guest csum when disable LRO
+    - net/mlx5: Avoid possible free of command entry while timeout comp handler
+    - net/mlx5: Fix request_irqs error flow
+    - net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU
+    - net/mlx5e: Fix VLAN cleanup flow
+    - net/mlx5e: Fix VLAN create flow
+    - rxrpc: Fix rxkad token xdr encoding
+    - rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
+    - rxrpc: Fix some missing _bh annotations on locking conn->state_lock
+    - rxrpc: The server keyring isn't network-namespaced
+    - rxrpc: Fix server keyring leak
+    - perf: Fix task_function_call() error handling
+    - mmc: core: don't set limits.discard_granularity as 0
+    - mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected
+      by khugepaged
+    - tcp: fix receive window update in tcp_add_backlog()
+    - net/core: check length before updating Ethertype in skb_mpls_{push,pop}
+    - net/tls: race causes kernel panic
+    - net/mlx5e: Fix driver's declaration to support GRE offload
+    - Input: ati_remote2 - add missing newlines when printing module parameters
+    - net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
+    - net_sched: defer tcf_idr_insert() in tcf_action_init_1()
+    - net_sched: commit action insertions together
+    - Linux 5.4.71
+
+  * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL:
+    can't add fou port 7777, skipping test" (LP: #1891421)
+    - selftests: rtnetlink: load fou module for kci_test_encap_fou() test
+
+  * alsa/hda/realtek - The front Mic on a HP machine doesn't work (LP: #1899508)
+    - ALSA: hda/realtek - The front Mic on a HP machine doesn't work
+
+  * Enable brightness control on HP DreamColor panel (LP: #1898865)
+    - drm/i915/dpcd_bl: Unbreak enable_dpcd_backlight modparam
+    - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD
+      quirk
+    - SAUCE: drm/dp: HP DreamColor panel brigntness fix
+
+  * Fix non-working Intel NVMe after S3 (LP: #1900847)
+    - SAUCE: PCI: Enable ACS quirk on all CML root ports
+
+  * bcache: Issues with large IO wait in bch_mca_scan() when shrinker is enabled
+    (LP: #1898786)
+    - bcache: remove member accessed from struct btree
+    - bcache: reap c->btree_cache_freeable from the tail in bch_mca_scan()
+    - bcache: reap from tail of c->btree_cache in bch_mca_scan()
+
+  * Improve descriptions for XFAIL cases in kselftests/net/psock_snd
+    (LP: #1900088)
+    - selftests/net: improve descriptions for XFAIL cases in psock_snd.sh
+
+  * ceph: fix inode number handling on arches with 32-bit ino_t (LP: #1899582)
+    - ceph: fix inode number handling on arches with 32-bit ino_t
+
+  * Fix system reboot when disconnecting WiFi (LP: #1899726)
+    - iwlwifi: msix: limit max RX queues for 9000 family
+
+  * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586)
+    - ALSA: hda: fix jack detection with Realtek codecs when in D3
+
+  * Focal update: v5.4.70 upstream stable release (LP: #1900632)
+    - btrfs: fix filesystem corruption after a device replace
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS
+      models
+    - USB: gadget: f_ncm: Fix NDP16 datagram validation
+    - gpio: siox: explicitly support only threaded irqs
+    - gpio: mockup: fix resource leak in error path
+    - gpio: tc35894: fix up tc35894 interrupt configuration
+    - clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
+    - vsock/virtio: add transport parameter to the
+      virtio_transport_reset_no_sock()
+    - net: virtio_vsock: Enhance connection semantics
+    - xfs: trim IO to found COW extent limit
+    - Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
+    - iio: adc: qcom-spmi-adc5: fix driver name
+    - ftrace: Move RCU is watching check after recursion check
+    - memstick: Skip allocating card when removing host
+    - drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
+    - clocksource/drivers/timer-gx6605s: Fixup counter reload
+    - libbpf: Remove arch-specific include path in Makefile
+    - drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
+    - drm/sun4i: mixer: Extend regmap max_register
+    - net: dec: de2104x: Increase receive ring size for Tulip
+    - rndis_host: increase sleep time in the query-response loop
+    - nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
+    - fuse: fix the ->direct_IO() treatment of iov_iter
+    - drivers/net/wan/lapbether: Make skb->protocol consistent with the header
+    - drivers/net/wan/hdlc: Set skb->protocol before transmitting
+    - mac80211: Fix radiotap header channel flag for 6GHz band
+    - mac80211: do not allow bigger VHT MPDUs than the hardware supports
+    - tracing: Make the space reserved for the pid wider
+    - tools/io_uring: fix compile breakage
+    - spi: fsl-espi: Only process interrupts for expected events
+    - nvme-pci: fix NULL req in completion handler
+    - nvme-fc: fail new connections to a deleted host or remote port
+    - gpio: sprd: Clear interrupt when setting the type as edge
+    - phy: ti: am654: Fix a leak in serdes_am654_probe()
+    - pinctrl: mvebu: Fix i2c sda definition for 98DX3236
+    - nfs: Fix security label length not being reset
+    - clk: tegra: Always program PLL_E when enabled
+    - clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
+    - iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
+    - gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
+    - gpio/aspeed-sgpio: don't enable all interrupts by default
+    - gpio: aspeed: fix ast2600 bank properties
+    - i2c: cpm: Fix i2c_ram structure
+    - Input: trackpoint - enable Synaptics trackpoints
+    - scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
+    - random32: Restore __latent_entropy attribute on net_rand_state
+    - block/diskstats: more accurate approximation of io_ticks for slow disks
+    - mm: replace memmap_context by meminit_context
+    - mm: don't rely on system state to detect hot-plug operations
+    - nvme: Cleanup and rename nvme_block_nr()
+    - nvme: Introduce nvme_lba_to_sect()
+    - nvme: consolidate chunk_sectors settings
+    - epoll: do not insert into poll queues until all sanity checks are done
+    - epoll: replace ->visited/visited_list with generation count
+    - epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
+    - ep_create_wakeup_source(): dentry name can change under you...
+    - netfilter: ctnetlink: add a range check for l3/l4 protonum
+    - Linux 5.4.70
+
+  * Focal update: v5.4.69 upstream stable release (LP: #1900624)
+    - kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
+    - selinux: allow labeling before policy is loaded
+    - media: mc-device.c: fix memleak in media_device_register_entity
+    - drm/amd/display: Do not double-buffer DTO adjustments
+    - drm/amdkfd: Fix race in gfx10 context restore handler
+    - dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
+    - scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
+    - ath10k: fix array out-of-bounds access
+    - ath10k: fix memory leak for tpc_stats_final
+    - PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
+    - mm: fix double page fault on arm64 if PTE_AF is cleared
+    - scsi: aacraid: fix illegal IO beyond last LBA
+    - m68k: q40: Fix info-leak in rtc_ioctl
+    - xfs: fix inode fork extent count overflow
+    - gma/gma500: fix a memory disclosure bug due to uninitialized bytes
+    - ASoC: kirkwood: fix IRQ error handling
+    - soundwire: intel/cadence: fix startup sequence
+    - media: smiapp: Fix error handling at NVM reading
+    - drm/amd/display: Free gamma after calculating legacy transfer function
+    - xfs: properly serialise fallocate against AIO+DIO
+    - leds: mlxreg: Fix possible buffer overflow
+    - dm table: do not allow request-based DM to stack on partitions
+    - PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
+    - scsi: fnic: fix use after free
+    - powerpc/64s: Always disable branch profiling for prom_init.o
+    - net: silence data-races on sk_backlog.tail
+    - dax: Fix alloc_dax_region() compile warning
+    - iomap: Fix overflow in iomap_page_mkwrite
+    - f2fs: avoid kernel panic on corruption test
+    - clk/ti/adpll: allocate room for terminating null
+    - drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
+    - ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
+    - mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of
+      cfi_amdstd_setup()
+    - mfd: mfd-core: Protect against NULL call-back function pointer
+    - drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
+    - tpm_crb: fix fTPM on AMD Zen+ CPUs
+    - tracing: Verify if trace array exists before destroying it.
+    - tracing: Adding NULL checks for trace_array descriptor pointer
+    - bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
+    - dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq
+      fails
+    - x86/kdump: Always reserve the low 1M when the crashkernel option is
+      specified
+    - RDMA/qedr: Fix potential use after free
+    - RDMA/i40iw: Fix potential use after free
+    - PCI: Avoid double hpmemsize MMIO window assignment
+    - fix dget_parent() fastpath race
+    - xfs: fix attr leaf header freemap.size underflow
+    - RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
+    - ubi: Fix producing anchor PEBs
+    - mmc: core: Fix size overflow for mmc partitions
+    - gfs2: clean up iopen glock mess in gfs2_create_inode
+    - scsi: pm80xx: Cleanup command when a reset times out
+    - mt76: do not use devm API for led classdev
+    - mt76: add missing locking around ampdu action
+    - debugfs: Fix !DEBUG_FS debugfs_create_automount
+    - SUNRPC: Capture completion of all RPC tasks
+    - CIFS: Use common error handling code in smb2_ioctl_query_info()
+    - CIFS: Properly process SMB3 lease breaks
+    - f2fs: stop GC when the victim becomes fully valid
+    - ASoC: max98090: remove msleep in PLL unlocked workaround
+    - xtensa: fix system_call interaction with ptrace
+    - s390: avoid misusing CALL_ON_STACK for task stack setup
+    - xfs: fix realtime file data space leak
+    - drm/amdgpu: fix calltrace during kmd unload(v3)
+    - arm64: insn: consistently handle exit text
+    - selftests/bpf: De-flake test_tcpbpf
+    - kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
+    - kernel/sys.c: avoid copying possible padding bytes in copy_to_user
+    - KVM: arm/arm64: vgic: Fix potential double free dist->spis in
+      __kvm_vgic_destroy()
+    - module: Remove accidental change of module_enable_x()
+    - xfs: fix log reservation overflows when allocating large rt extents
+    - ALSA: hda: enable regmap internal locking
+    - tipc: fix link overflow issue at socket shutdown
+    - vcc_seq_next should increase position index
+    - neigh_stat_seq_next() should increase position index
+    - rt_cpu_seq_next should increase position index
+    - ipv6_route_seq_next should increase position index
+    - drm/mcde: Handle pending vblank while disabling display
+    - seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
+    - drm/scheduler: Avoid accessing freed bad job.
+    - media: ti-vpe: cal: Restrict DMA to avoid memory corruption
+    - opp: Replace list_kref with a local counter
+    - scsi: qla2xxx: Fix stuck session in GNL
+    - sctp: move trace_sctp_probe_path into sctp_outq_sack
+    - ACPI: EC: Reference count query handlers under lock
+    - scsi: ufs: Make ufshcd_add_command_trace() easier to read
+    - scsi: ufs: Fix a race condition in the tracing code
+    - drm/amd/display: Initialize DSC PPS variables to 0
+    - i2c: tegra: Prevent interrupt triggering after transfer timeout
+    - btrfs: tree-checker: Check leaf chunk item size
+    - dmaengine: zynqmp_dma: fix burst length configuration
+    - s390/cpum_sf: Use kzalloc and minor changes
+    - nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
+    - powerpc/eeh: Only dump stack once if an MMIO loop is detected
+    - Bluetooth: btrtl: Use kvmalloc for FW allocations
+    - tracing: Set kernel_stack's caller size properly
+    - ARM: 8948/1: Prevent OOB access in stacktrace
+    - ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
+    - ceph: ensure we have a new cap before continuing in fill_inode
+    - selftests/ftrace: fix glob selftest
+    - tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
+    - Bluetooth: Fix refcount use-after-free issue
+    - mm/swapfile.c: swap_next should increase position index
+    - mm: pagewalk: fix termination condition in walk_pte_range()
+    - Bluetooth: prefetch channel before killing sock
+    - ALSA: hda: Clear RIRB status before reading WP
+    - skbuff: fix a data race in skb_queue_len()
+    - nfsd: Fix a perf warning
+    - drm/amd/display: fix workaround for incorrect double buffer register for DLG
+      ADL and TTU
+    - audit: CONFIG_CHANGE don't log internal bookkeeping as an event
+    - selinux: sel_avc_get_stat_idx should increase position index
+    - drm/omap: fix possible object reference leak
+    - locking/lockdep: Decrement IRQ context counters when removing lock chain
+    - clk: stratix10: use do_div() for 64-bit calculation
+    - crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi
+      test
+    - mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
+    - mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
+    - ALSA: usb-audio: Don't create a mixer element with bogus volume range
+    - perf test: Fix test trace+probe_vfs_getname.sh on s390
+    - RDMA/rxe: Fix configuration of atomic queue pair attributes
+    - KVM: x86: fix incorrect comparison in trace event
+    - KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
+    - dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
+    - media: staging/imx: Missing assignment in
+      imx_media_capture_device_register()
+    - x86/pkeys: Add check for pkey "overflow"
+    - bpf: Remove recursion prevention from rcu free callback
+    - dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
+    - dmaengine: tegra-apb: Prevent race conditions on channel's freeing
+    - soundwire: bus: disable pm_runtime in sdw_slave_delete
+    - drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
+    - drm/omap: dss: Cleanup DSS ports on initialisation failure
+    - iavf: use tc_cls_can_offload_and_chain0() instead of chain check
+    - firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
+    - random: fix data races at timer_rand_state
+    - bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host
+      removal
+    - ASoC: SOF: ipc: check ipc return value before data copy
+    - media: go7007: Fix URB type for interrupt handling
+    - Bluetooth: guard against controllers sending zero'd events
+    - timekeeping: Prevent 32bit truncation in scale64_check_overflow()
+    - powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
+    - drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
+    - ext4: fix a data race at inode->i_disksize
+    - perf jevents: Fix leak of mapfile memory
+    - mm: avoid data corruption on CoW fault into PFN-mapped VMA
+    - drm/amdgpu: increase atombios cmd timeout
+    - ARM: OMAP2+: Handle errors for cpu_pm
+    - clk: imx: Fix division by zero warning on pfdv2
+    - cpu-topology: Fix the potential data corruption
+    - s390/irq: replace setup_irq() by request_irq()
+    - perf cs-etm: Swap packets for instruction samples
+    - perf cs-etm: Correct synthesizing instruction samples
+    - ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
+    - scsi: aacraid: Disabling TM path and only processing IOP reset
+    - Bluetooth: L2CAP: handle l2cap config request during open state
+    - media: tda10071: fix unsigned sign extension overflow
+    - tty: sifive: Finish transmission before changing the clock
+    - xfs: don't ever return a stale pointer from __xfs_dir3_free_read
+    - xfs: mark dir corrupt when lookup-by-hash fails
+    - ext4: mark block bitmap corrupted when found instead of BUGON
+    - tpm: ibmvtpm: Wait for buffer to be set before proceeding
+    - rtc: sa1100: fix possible race condition
+    - rtc: ds1374: fix possible race condition
+    - nfsd: Don't add locks to closed or closing open stateids
+    - RDMA/cm: Remove a race freeing timewait_info
+    - intel_th: Disallow multi mode on devices where it's broken
+    - KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like
+      the valid ones
+    - drm/msm: fix leaks if initialization fails
+    - drm/msm/a5xx: Always set an OPP supported hardware value
+    - tracing: Use address-of operator on section symbols
+    - thermal: rcar_thermal: Handle probe error gracefully
+    - KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard
+      interrupt context
+    - perf parse-events: Fix 3 use after frees found with clang ASAN
+    - btrfs: do not init a reloc root if we aren't relocating
+    - btrfs: free the reloc_control in a consistent way
+    - r8169: improve RTL8168b FIFO overflow workaround
+    - serial: 8250_port: Don't service RX FIFO if throttled
+    - serial: 8250_omap: Fix sleeping function called from invalid context during
+      probe
+    - serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
+    - perf cpumap: Fix snprintf overflow check
+    - net: axienet: Convert DMA error handler to a work queue
+    - net: axienet: Propagate failure of DMA descriptor setup
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
+    - tools: gpio-hammer: Avoid potential overflow in main
+    - exec: Add exec_update_mutex to replace cred_guard_mutex
+    - exec: Fix a deadlock in strace
+    - selftests/ptrace: add test cases for dead-locks
+    - kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
+    - proc: Use new infrastructure to fix deadlocks in execve
+    - proc: io_accounting: Use new infrastructure to fix deadlocks in execve
+    - perf: Use new infrastructure to fix deadlocks in execve
+    - nvme-multipath: do not reset on unknown status
+    - nvme: Fix ctrl use-after-free during sysfs deletion
+    - nvme: Fix controller creation races with teardown flow
+    - brcmfmac: Fix double freeing in the fmac usb data path
+    - xfs: prohibit fs freezing when using empty transactions
+    - RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
+    - IB/iser: Always check sig MR before putting it to the free pool
+    - scsi: hpsa: correct race condition in offload enabled
+    - SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
+    - svcrdma: Fix leak of transport addresses
+    - netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
+    - PCI: Use ioremap(), not phys_to_virt() for platform ROM
+    - ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
+    - ubifs: ubifs_add_orphan: Fix a memory leak bug
+    - ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
+    - ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra
+      endpoint descriptor
+    - PCI: pciehp: Fix MSI interrupt race
+    - NFS: Fix races nfs_page_group_destroy() vs
+      nfs_destroy_unlinked_subrequests()
+    - drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
+    - powerpc/perf: Implement a global lock to avoid races between trace, core and
+      thread imc events.
+    - mm/kmemleak.c: use address-of operator on section symbols
+    - mm/filemap.c: clear page error before actual read
+    - mm/swapfile: fix data races in try_to_unuse()
+    - mm/vmscan.c: fix data races using kswapd_classzone_idx
+    - SUNRPC: Don't start a timer on an already queued rpc task
+    - nvmet-rdma: fix double free of rdma queue
+    - workqueue: Remove the warning in wq_worker_sleeping()
+    - drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
+    - mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
+    - ALSA: hda: Skip controller resume if not needed
+    - scsi: qedi: Fix termination timeouts in session logout
+    - serial: uartps: Wait for tx_empty in console setup
+    - btrfs: fix setting last_trans for reloc roots
+    - KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
+    - perf stat: Force error in fallback on :k events
+    - bdev: Reduce time holding bd_mutex in sync in blkdev_close()
+    - drivers: char: tlclk.c: Avoid data race between init and interrupt handler
+    - KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
+    - KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
+    - net: openvswitch: use u64 for meter bucket
+    - scsi: aacraid: Fix error handling paths in aac_probe_one()
+    - staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
+    - sparc64: vcc: Fix error return code in vcc_probe()
+    - arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
+    - sched/fair: Eliminate bandwidth race between throttling and distribution
+    - dpaa2-eth: fix error return code in setup_dpni()
+    - dt-bindings: sound: wm8994: Correct required supplies based on actual
+      implementaion
+    - devlink: Fix reporter's recovery condition
+    - atm: fix a memory leak of vcc->user_back
+    - media: venus: vdec: Init registered list unconditionally
+    - perf mem2node: Avoid double free related to realloc
+    - mm/slub: fix incorrect interpretation of s->offset
+    - i2c: tegra: Restore pinmux on system resume
+    - power: supply: max17040: Correct voltage reading
+    - phy: samsung: s5pv210-usb2: Add delay after reset
+    - Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
+    - USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
+    - KVM: x86: handle wrap around 32-bit address space
+    - tipc: fix memory leak in service subscripting
+    - tty: serial: samsung: Correct clock selection logic
+    - ALSA: hda: Fix potential race in unsol event handler
+    - drm/exynos: dsi: Remove bridge node reference in error handling path in
+      probe function
+    - ipmi:bt-bmc: Fix error handling and status check
+    - powerpc/traps: Make unrecoverable NMIs die instead of panic
+    - svcrdma: Fix backchannel return code
+    - fuse: don't check refcount after stealing page
+    - fuse: update attr_version counter on fuse_notify_inval_inode()
+    - USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
+    - coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
+    - arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
+    - scsi: cxlflash: Fix error return code in cxlflash_probe()
+    - arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
+    - drm/amdkfd: fix restore worker race condition
+    - e1000: Do not perform reset in reset_task if we are already down
+    - drm/nouveau/debugfs: fix runtime pm imbalance on error
+    - drm/nouveau: fix runtime pm imbalance on error
+    - drm/nouveau/dispnv50: fix runtime pm imbalance on error
+    - printk: handle blank console arguments passed in.
+    - usb: dwc3: Increase timeout for CmdAct cleared by device controller
+    - btrfs: don't force read-only after error in drop snapshot
+    - btrfs: fix double __endio_write_update_ordered in direct I/O
+    - gpio: rcar: Fix runtime PM imbalance on error
+    - vfio/pci: fix memory leaks of eventfd ctx
+    - KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
+    - perf evsel: Fix 2 memory leaks
+    - perf trace: Fix the selection for architectures to generate the errno name
+      tables
+    - perf stat: Fix duration_time value for higher intervals
+    - perf util: Fix memory leak of prefix_if_not_in
+    - perf metricgroup: Free metric_events on error
+    - perf kcore_copy: Fix module map when there are no modules loaded
+    - PCI: tegra194: Fix runtime PM imbalance on error
+    - ASoC: img-i2s-out: Fix runtime PM imbalance on error
+    - wlcore: fix runtime pm imbalance in wl1271_tx_work
+    - wlcore: fix runtime pm imbalance in wlcore_regdomain_config
+    - mtd: rawnand: gpmi: Fix runtime PM imbalance on error
+    - mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
+    - PCI: tegra: Fix runtime PM imbalance on error
+    - ceph: fix potential race in ceph_check_caps
+    - mm/swap_state: fix a data race in swapin_nr_pages
+    - mm: memcontrol: fix stat-corrupting race in charge moving
+    - rapidio: avoid data race between file operation callbacks and
+      mport_cdev_add().
+    - mtd: parser: cmdline: Support MTD names containing one or more colons
+    - x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
+    - NFS: nfs_xdr_status should record the procedure name
+    - vfio/pci: Clear error and request eventfd ctx after releasing
+    - cifs: Fix double add page to memcg when cifs_readpages
+    - nvme: fix possible deadlock when I/O is blocked
+    - mac80211: skip mpath lookup also for control port tx
+    - scsi: libfc: Handling of extra kref
+    - scsi: libfc: Skip additional kref updating work event
+    - selftests/x86/syscall_nt: Clear weird flags after each test
+    - vfio/pci: fix racy on error and request eventfd ctx
+    - btrfs: qgroup: fix data leak caused by race between writeback and truncate
+    - perf tests: Fix test 68 zstd compression for s390
+    - scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
+    - ubi: fastmap: Free unused fastmap anchor peb during detach
+    - mt76: fix LED link time failure
+    - opp: Increase parsed_static_opps in _of_add_opp_table_v1()
+    - perf parse-events: Use strcmp() to compare the PMU name
+    - ALSA: hda: Always use jackpoll helper for jack update after resume
+    - ALSA: hda: Workaround for spurious wakeups on some Intel platforms
+    - net: openvswitch: use div_u64() for 64-by-32 divisions
+    - nvme: explicitly update mpath disk capacity on revalidation
+    - device_cgroup: Fix RCU list debugging warning
+    - ASoC: pcm3168a: ignore 0 Hz settings
+    - ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
+    - ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
+    - RISC-V: Take text_mutex in ftrace_init_nop()
+    - i2c: aspeed: Mask IRQ status to relevant bits
+    - s390/init: add missing __init annotations
+    - lockdep: fix order in trace_hardirqs_off_caller()
+    - EDAC/ghes: Check whether the driver is on the safe list correctly
+    - drm/amdkfd: fix a memory leak issue
+    - drm/amd/display: update nv1x stutter latencies
+    - drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
+    - objtool: Fix noreturn detection for ignored functions
+    - ieee802154: fix one possible memleak in ca8210_dev_com_init
+    - ieee802154/adf7242: check status of adf7242_read_reg
+    - clocksource/drivers/h8300_timer8: Fix wrong return value in
+      h8300_8timer_init()
+    - batman-adv: bla: fix type misuse for backbone_gw hash indexing
+    - atm: eni: fix the missed pci_disable_device() for eni_init_one()
+    - batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
+    - netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
+    - mac802154: tx: fix use-after-free
+    - bpf: Fix clobbering of r2 in bpf_gen_ld_abs
+    - drm/vc4/vc4_hdmi: fill ASoC card owner
+    - net: qed: Disable aRFS for NPAR and 100G
+    - net: qede: Disable aRFS for NPAR and 100G
+    - net: qed: RDMA personality shouldn't fail VF load
+    - drm/sun4i: sun8i-csc: Secondary CSC register correction
+    - batman-adv: Add missing include for in_interrupt()
+    - nvme-tcp: fix kconfig dependency warning when !CRYPTO
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
+    - batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
+    - bpf: Fix a rcu warning for bpffs map pretty-print
+    - lib80211: fix unmet direct dependendices config warning when !CRYPTO
+    - ALSA: asihpi: fix iounmap in error handler
+    - regmap: fix page selection for noinc reads
+    - regmap: fix page selection for noinc writes
+    - MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
+    - regulator: axp20x: fix LDO2/4 description
+    - KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
+    - KVM: SVM: Add a dedicated INVD intercept routine
+    - mm: validate pmd after splitting
+    - arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
+    - x86/ioapic: Unbreak check_timer()
+    - scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
+    - ALSA: usb-audio: Add delay quirk for H570e USB headsets
+    - ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
+    - ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation
+      P520
+    - lib/string.c: implement stpcpy
+    - tracing: fix double free
+    - s390/dasd: Fix zero write for FBA devices
+    - kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
+    - kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
+    - btrfs: fix overflow when copying corrupt csums for a message
+    - dmabuf: fix NULL pointer dereference in dma_buf_release()
+    - mm, THP, swap: fix allocating cluster for swapfile by mistake
+    - mm/gup: fix gup_fast with dynamic page table folding
+    - s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
+    - KVM: arm64: Assume write fault on S1PTW permission fault on instruction
+      fetch
+    - dm: fix bio splitting and its bio completion order for regular IO
+    - ata: define AC_ERR_OK
+    - ata: make qc_prep return ata_completion_errors
+    - ata: sata_mv, avoid trigerrable BUG_ON
+    - Linux 5.4.69
+
+  * Focal update: v5.4.68 upstream stable release (LP: #1899511)
+    - af_key: pfkey_dump needs parameter validation
+    - ibmvnic fix NULL tx_pools and rx_tools issue at do_reset
+    - ibmvnic: add missing parenthesis in do_reset()
+    - kprobes: fix kill kprobe which has been marked as gone
+    - mm/thp: fix __split_huge_pmd_locked() for migration PMD
+    - act_ife: load meta modules before tcf_idr_check_alloc()
+    - bnxt_en: Avoid sending firmware messages when AER error is detected.
+    - bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()
+    - cxgb4: fix memory leak during module unload
+    - cxgb4: Fix offset when clearing filter byte counters
+    - geneve: add transport ports in route lookup for geneve
+    - hdlc_ppp: add range checks in ppp_cp_parse_cr()
+    - ip: fix tos reflection in ack and reset packets
+    - ipv4: Initialize flowi4_multipath_hash in data path
+    - ipv4: Update exception handling for multipath routes via same device
+    - ipv6: avoid lockdep issue in fib6_del()
+    - net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under
+      RCU
+    - net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
+    - net: dsa: rtl8366: Properly clear member config
+    - net: Fix bridge enslavement failure
+    - net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
+    - net/mlx5: Fix FTE cleanup
+    - net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc
+    - net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant
+    - nfp: use correct define to return NONE fec
+    - taprio: Fix allowing too small intervals
+    - tipc: Fix memory leak in tipc_group_create_member()
+    - tipc: fix shutdown() of connection oriented socket
+    - tipc: use skb_unshare() instead in tipc_buf_append()
+    - net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
+    - net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
+    - bnxt_en: return proper error codes in bnxt_show_temp
+    - bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
+    - net: lantiq: Wake TX queue again
+    - net: lantiq: use netif_tx_napi_add() for TX NAPI
+    - net: lantiq: Use napi_complete_done()
+    - net: lantiq: Disable IRQs only if NAPI gets scheduled
+    - net: phy: Avoid NPD upon phy_detach() when driver is unbound
+    - net: phy: Do not warn in phy_stop() on PHY_DOWN
+    - net: qrtr: check skb_put_padto() return value
+    - net: add __must_check to skb_put_padto()
+    - mm: memcg: fix memcg reclaim soft lockup
+    - iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
+    - Linux 5.4.68
+
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+
+  * tc/ebpf: unable to use BPF_FUNC_skb_change_head (LP: #1896504)
+    - net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
+
+  * HP Zbook Studio G7 boots into corrupted screen with PSR featured panel
+    (LP: #1897501)
+    - SAUCE: drm/i915/psr: allow overriding PSR disable param by quirk
+    - SAUCE: drm/dp: add DP_QUIRK_FORCE_PSR_CHIP_DEFAULT quirk to CMN prod-ID
+      19-15
+
+  * Fix broken e1000e device after S3 (LP: #1897755)
+    - SAUCE: e1000e: Increase polling timeout on MDIC ready bit
+
+  * debian/rules editconfigs does not work on s390x to change s390x only configs
+    (LP: #1863116)
+    - [Packaging] kernelconfig -- only update/edit configurations on architectures
+      we have compiler support
+
+  * acpi event detection crashes (LP: #1896482)
+    - ACPI: EC: tweak naming in preparation for GpioInt support
+    - ACPI: EC: add support for hardware-reduced systems
+    - ACPI: EC: Avoid passing redundant argument to functions
+    - ACPI: EC: Consolidate event handler installation code
+
+  * mwifiex stops working after kernel upgrade (LP: #1897299)
+    - mwifiex: Increase AES key storage size to 256 bits
+
+  * Remove NVMe suspend-to-idle workaround (LP: #1897227)
+    - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3"
+    - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3"
+
+  * Request for CIFS patches to be available in 5.4 kernel (LP: #1896642)
+    - smb3: remove unused flag passed into close functions
+    - smb3: query attributes on file close
+
+  * Lenovo ThinkBook 14-IML Touchpad not showing up in /proc/bus/input/devices
+    (LP: #1853277)
+    - i2c: core: Call i2c_acpi_install_space_handler() before
+      i2c_acpi_register_devices()
+
+  * [Ubuntu 20.10] zPCI DMA tables and bitmap leak on hard unplug (PCI Event
+    0x0304) (LP: #1896216)
+    - s390/pci: fix leak of DMA tables on hard unplug
+
+  * Thunderbolt3 daisy chain sometimes doesn't work (LP: #1895606)
+    - thunderbolt: Retry DROM read once if parsing fails
+
+  * btrfs: trimming a btrfs device which has been shrunk previously fails and
+    fills root disk with garbage data (LP: #1896154)
+    - btrfs: trim: fix underflow in trim length to prevent access beyond device
+      boundary
+
+  * EFA: add support for 0xefa1 devices (LP: #1896791)
+    - RDMA/efa: Expose maximum TX doorbell batch
+    - RDMA/efa: Expose minimum SQ size
+    - RDMA/efa: User/kernel compatibility handshake mechanism
+    - RDMA/efa: Add EFA 0xefa1 PCI ID
+
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828)
+    - gfs2: initialize transaction tr_ailX_lists earlier
+    - RDMA/bnxt_re: Restrict the max_gids to 256
+    - dsa: Allow forwarding of redirected IGMP traffic
+    - net: handle the return value of pskb_carve_frag_list() correctly
+    - hv_netvsc: Remove "unlikely" from netvsc_select_queue
+    - firmware_loader: fix memory leak for paged buffer
+    - NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
+    - scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
+    - scsi: libfc: Fix for double free()
+    - scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
+    - regulator: pwm: Fix machine constraints application
+    - spi: spi-loopback-test: Fix out-of-bounds read
+    - NFS: Zero-stateid SETATTR should first return delegation
+    - SUNRPC: stop printk reading past end of string
+    - rapidio: Replace 'select' DMAENGINES 'with depends on'
+    - cifs: fix DFS mount with cifsacl/modefromsid
+    - openrisc: Fix cache API compile issue when not inlining
+    - nvme-fc: cancel async events before freeing event struct
+    - nvme-rdma: cancel async events before freeing event struct
+    - nvme-tcp: cancel async events before freeing event struct
+    - block: only call sched requeue_request() for scheduled requests
+    - f2fs: fix indefinite loop scanning for free nid
+    - f2fs: Return EOF on unaligned end of file DIO read
+    - i2c: algo: pca: Reapply i2c bus settings after reset
+    - spi: Fix memory leak on splited transfers
+    - KVM: MIPS: Change the definition of kvm type
+    - clk: davinci: Use the correct size when allocating memory
+    - clk: rockchip: Fix initialization of mux_pll_src_4plls_p
+    - ASoC: qcom: Set card->owner to avoid warnings
+    - ASoC: qcom: common: Fix refcount imbalance on error
+    - powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
+    - ASoC: meson: axg-toddr: fix channel order on g12 platforms
+    - Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
+    - scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
+    - arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
+    - Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
+    - perf test: Fix the "signal" test inline assembly
+    - MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
+    - perf evlist: Fix cpu/thread map leak
+    - perf parse-event: Fix memory leak in evsel->unit
+    - perf test: Free formats for perf pmu parse test
+    - fbcon: Fix user font detection test at fbcon_resize().
+    - MIPS: SNI: Fix spurious interrupts
+    - drm/mediatek: Add exception handing in mtk_drm_probe() if component init
+      fail
+    - drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
+    - arm64: bpf: Fix branch offset in JIT
+    - iommu/amd: Fix potential @entry null deref
+    - i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
+    - riscv: Add sfence.vma after early page table changes
+    - drm/i915: Filter wake_flags passed to default_wake_function
+    - USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin
+      notebook
+    - USB: UAS: fix disconnect by unplugging a hub
+    - usblp: fix race between disconnect() and read()
+    - i2c: i801: Fix resume bug
+    - Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI
+      X570-A PRO"
+    - ALSA: hda: fixup headset for ASUS GX502 laptop
+    - ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
+    - percpu: fix first chunk size calculation for populated bitmap
+    - Input: trackpoint - add new trackpoint variant IDs
+    - Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
+    - serial: 8250_pci: Add Realtek 816a and 816b
+    - x86/boot/compressed: Disable relocation relaxation
+    - s390/zcrypt: fix kmalloc 256k failure
+    - ehci-hcd: Move include to keep CRC stable
+    - powerpc/dma: Fix dma_map_ops::get_required_mask
+    - selftests/vm: fix display of page size in map_hugetlb
+    - dm/dax: Fix table reference counts
+    - mm/memory_hotplug: drain per-cpu pages again during memory offline
+    - dm: Call proper helper to determine dax support
+    - dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
+    - Linux 5.4.67
+
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828) // Cherry Pick
+    needed for Critical upstream patch for Kernel null pointer dereference -
+    usb-c altmode (LP: #1897963)
+    - usb: typec: ucsi: Prevent mode overrun
+
+  * Focal update: v5.4.66 upstream stable release (LP: #1896824)
+    - ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix missing video
+    - regulator: push allocation in regulator_ena_gpio_request() out of lock
+    - regulator: remove superfluous lock in regulator_resolve_coupling()
+    - ARM: dts: socfpga: fix register entry for timer3 on Arria10
+    - ARM: dts: ls1021a: fix QuadSPI-memory reg range
+    - ARM: dts: imx7ulp: Correct gpio ranges
+    - RDMA/rxe: Fix memleak in rxe_mem_init_user
+    - RDMA/rxe: Drop pointless checks in rxe_init_ports
+    - RDMA/rxe: Fix panic when calling kmem_cache_create()
+    - RDMA/bnxt_re: Do not report transparent vlan from QP1
+    - drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
+    - arm64: dts: imx8mq: Fix TMU interrupt property
+    - drm/sun4i: Fix dsi dcs long write function
+    - iio: adc: mcp3422: fix locking on error path
+    - iio: adc: mcp3422: fix locking scope
+    - scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
+    - RDMA/core: Fix reported speed and width
+    - scsi: megaraid_sas: Don't call disable_irq from process IRQ poll
+    - scsi: mpt3sas: Don't call disable_irq from IRQ poll handler
+    - soundwire: fix double free of dangling pointer
+    - drm/sun4i: backend: Support alpha property on lowest plane
+    - drm/sun4i: backend: Disable alpha on the lowest plane on the A20
+    - mmc: sdhci-acpi: Clear amd_sdhci_host on reset
+    - mmc: sdhci-msm: Add retries when all tuning phases are found valid
+    - spi: stm32: Rate-limit the 'Communication suspended' message
+    - nvme-fabrics: allow to queue requests for live queues
+    - spi: stm32: fix pm_runtime_get_sync() error checking
+    - block: Set same_page to false in __bio_try_merge_page if ret is false
+    - IB/isert: Fix unaligned immediate-data handling
+    - ARM: dts: bcm: HR2: Fixed QSPI compatible string
+    - ARM: dts: NSP: Fixed QSPI compatible string
+    - ARM: dts: BCM5301X: Fixed QSPI compatible string
+    - arm64: dts: ns2: Fixed QSPI compatible string
+    - ARC: HSDK: wireup perf irq
+    - dmaengine: acpi: Put the CSRT table after using it
+    - netfilter: conntrack: allow sctp hearbeat after connection re-use
+    - drivers/net/wan/lapbether: Added needed_tailroom
+    - NFC: st95hf: Fix memleak in st95hf_in_send_cmd
+    - firestream: Fix memleak in fs_open
+    - ALSA: hda: Fix 2 channel swapping for Tegra
+    - ALSA: hda/tegra: Program WAKEEN register for Tegra
+    - drivers/dma/dma-jz4780: Fix race condition between probe and irq handler
+    - net: hns3: Fix for geneve tx checksum bug
+    - xfs: fix off-by-one in inode alloc block reservation calculation
+    - drivers/net/wan/lapbether: Set network_header before transmitting
+    - cfg80211: Adjust 6 GHz frequency to channel conversion
+    - xfs: initialize the shortform attr header padding entry
+    - irqchip/eznps: Fix build error for !ARC700 builds
+    - nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu
+    - nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
+    - nvme: have nvme_wait_freeze_timeout return if it timed out
+    - nvme-tcp: serialize controller teardown sequences
+    - nvme-tcp: fix timeout handler
+    - nvme-tcp: fix reset hang if controller died in the middle of a reset
+    - nvme-rdma: serialize controller teardown sequences
+    - nvme-rdma: fix timeout handler
+    - nvme-rdma: fix reset hang if controller died in the middle of a reset
+    - nvme-pci: cancel nvme device request before disabling
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
+    - HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller
+    - drivers/net/wan/hdlc_cisco: Add hard_header_len
+    - HID: elan: Fix memleak in elan_input_configured
+    - ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
+    - cpufreq: intel_pstate: Refuse to turn off with HWP enabled
+    - cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled
+    - arm64/module: set trampoline section flags regardless of
+      CONFIG_DYNAMIC_FTRACE
+    - ALSA: hda: hdmi - add Rocketlake support
+    - ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
+    - drm/amdgpu: Fix bug in reporting voltage for CIK
+    - iommu/amd: Do not use IOMMUv2 functionality when SME is active
+    - gcov: Disable gcov build with GCC 10
+    - iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
+    - iio: cros_ec: Set Gyroscope default frequency to 25Hz
+    - iio:light:ltr501 Fix timestamp alignment issue.
+    - iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
+    - iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
+    - iio:adc:ti-adc084s021 Fix alignment and data leak issues.
+    - iio:adc:ina2xx Fix timestamp alignment issue.
+    - iio:adc:max1118 Fix alignment of timestamp and data leak issues
+    - iio:adc:ti-adc081c Fix alignment and data leak issues
+    - iio:magnetometer:ak8975 Fix alignment and data leak issues.
+    - iio:light:max44000 Fix timestamp alignment and prevent data leak.
+    - iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
+    - iio: accel: kxsd9: Fix alignment of local buffer.
+    - iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
+    - iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
+    - staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
+    - btrfs: require only sector size alignment for parent eb bytenr
+    - btrfs: fix lockdep splat in add_missing_dev
+    - btrfs: fix wrong address when faulting in pages in the search ioctl
+    - kobject: Restore old behaviour of kobject_del(NULL)
+    - regulator: push allocation in regulator_init_coupling() outside of lock
+    - regulator: push allocations in create_regulator() outside of lock
+    - regulator: push allocation in set_consumer_device_supply() out of lock
+    - regulator: plug of_node leak in regulator_register()'s error path
+    - regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
+    - scsi: target: iscsi: Fix data digest calculation
+    - scsi: target: iscsi: Fix hang in iscsit_access_np() when getting
+      tpg->np_login_sem
+    - drm/i915/gvt: do not check len & max_len for lri
+    - drm/tve200: Stabilize enable/disable
+    - drm/msm: Disable preemption on all 5xx targets
+    - mmc: sdio: Use mmc_pre_req() / mmc_post_req()
+    - mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
+    - rbd: require global CAP_SYS_ADMIN for mapping and unmapping
+    - RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
+    - RDMA/mlx4: Read pkey table length instead of hardcoded value
+    - fbcon: remove soft scrollback code
+    - fbcon: remove now unusued 'softback_lines' cursor() argument
+    - vgacon: remove software scrollback support
+    - [Config] updateconfigs for VGACON_SOFT_SCROLLBACK
+    - KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
+    - KVM: arm64: Do not try to map PUDs when they are folded into PMD
+    - KVM: fix memory leak in kvm_io_bus_unregister_dev()
+    - debugfs: Fix module state check condition
+    - ARM: dts: vfxxx: Add syscon compatible with OCOTP
+    - video: fbdev: fix OOB read in vga_8planes_imageblit()
+    - staging: greybus: audio: fix uninitialized value issue
+    - phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
+    - usb: core: fix slab-out-of-bounds Read in read_descriptors
+    - USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
+    - USB: serial: option: support dynamic Quectel USB compositions
+    - USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
+    - usb: Fix out of sync data toggle if a configured device is reconfigured
+    - usb: typec: ucsi: acpi: Check the _DEP dependencies
+    - drm/msm/gpu: make ringbuffer readonly
+    - drm/msm: Disable the RPTR shadow
+    - gcov: add support for GCC 10.1
+    - Linux 5.4.66
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 09 Nov 2020 14:56:24 +0100
+
+linux (5.4.0-54.60) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Introduce the new NVIDIA 455 series (LP: #1902093)
+    - [Packaging] NVIDIA -- Add the NVIDIA 455 driver
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 05 Nov 2020 18:03:49 +0100
+
+linux (5.4.0-53.59) focal; urgency=medium
+
+  * CVE-2020-8694
+    - powercap: make attributes only readable by root
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 21 Oct 2020 11:00:29 +0200
+
+linux (5.4.0-52.57) focal; urgency=medium
+
+  * focal/linux: 5.4.0-52.57 -proposed tracker (LP: #1899920)
+
+  * CVE-2020-12351 // CVE-2020-12352 // CVE-2020-24490
+    - Bluetooth: Disable High Speed by default
+    - Bluetooth: MGMT: Fix not checking if BT_HS is enabled
+    - [Config] Disable BlueZ highspeed support
+
+  * CVE-2020-12351
+    - Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
+
+  * CVE-2020-12352
+    - Bluetooth: A2MP: Fix not initializing all members
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 15 Oct 2020 12:28:28 +0200
+
+linux (5.4.0-51.56) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 05 Oct 2020 15:34:26 +0200
+
+linux (5.4.0-50.55) focal; urgency=medium
+
+  * CVE-2020-16119
+    - SAUCE: dccp: avoid double free of ccid on child socket
+
+  * CVE-2020-16120
+    - Revert "UBUNTU: SAUCE: overlayfs: ensure mounter privileges when reading
+      directories"
+    - ovl: pass correct flags for opening real directory
+    - ovl: switch to mounter creds in readdir
+    - ovl: verify permissions in ovl_path_open()
+    - ovl: call secutiry hook in ovl_real_ioctl()
+    - ovl: check permission to open real file
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 30 Sep 2020 10:04:48 -0300
+
+linux (5.4.0-49.53) focal; urgency=medium
+
+  * focal/linux: 5.4.0-49.53 -proposed tracker (LP: #1896007)
+
+  * Comet Lake PCH-H RAID not support on Ubuntu20.04 (LP: #1892288)
+    - ahci: Add Intel Comet Lake PCH-H PCI ID
+
+  * Novalink (mkvterm command failure) (LP: #1892546)
+    - tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
+
+  * Oops and hang when starting LVM snapshots on 5.4.0-47 (LP: #1894780)
+    - SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root kmem_cache
+      destroy"
+
+  * Intel x710 LOMs do not work on Focal (LP: #1893956)
+    - i40e: Fix LED blinking flow for X710T*L devices
+    - i40e: enable X710 support
+
+  * Add/Backport EPYC-v3 and EPYC-Rome CPU model (LP: #1887490)
+    - kvm: svm: Update svm_xsaves_supported
+
+  * Fix non-working NVMe after S3 (LP: #1895718)
+    - SAUCE: PCI: Enable ACS quirk on CML root port
+
+  * Focal update: v5.4.65 upstream stable release (LP: #1895881)
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: Fix sysctl max for fib_multipath_hash_policy
+    - netlabel: fix problems with mapping removal
+    - net: usb: dm9601: Add USB ID of Keenetic Plus DSL
+    - sctp: not disable bh in the whole sctp_get_port_local()
+    - taprio: Fix using wrong queues in gate mask
+    - tipc: fix shutdown() of connectionless socket
+    - net: disable netpoll on fresh napis
+    - Linux 5.4.65
+
+  * Focal update: v5.4.64 upstream stable release (LP: #1895880)
+    - HID: quirks: Always poll three more Lenovo PixArt mice
+    - drm/msm/dpu: Fix scale params in plane validation
+    - tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
+    - drm/msm: add shutdown support for display platform_driver
+    - hwmon: (applesmc) check status earlier.
+    - nvmet: Disable keep-alive timer when kato is cleared to 0h
+    - drm/msm: enable vblank during atomic commits
+    - habanalabs: validate FW file size
+    - habanalabs: check correct vmalloc return code
+    - drm/msm/a6xx: fix gmu start on newer firmware
+    - ceph: don't allow setlease on cephfs
+    - drm/omap: fix incorrect lock state
+    - cpuidle: Fixup IRQ state
+    - nbd: restore default timeout when setting it to zero
+    - s390: don't trace preemption in percpu macros
+    - drm/amd/display: Reject overlay plane configurations in multi-display
+      scenarios
+    - drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in
+      amdgpu_dm_update_backlight_caps
+    - drm/amd/display: Retry AUX write when fail occurs
+    - drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
+    - xen/xenbus: Fix granting of vmalloc'd memory
+    - fsldma: fix very broken 32-bit ppc ioread64 functionality
+    - dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
+    - batman-adv: Avoid uninitialized chaddr when handling DHCP
+    - batman-adv: Fix own OGM check in aggregated OGMs
+    - batman-adv: bla: use netif_rx_ni when not in interrupt context
+    - dmaengine: at_hdmac: check return value of of_find_device_by_node() in
+      at_dma_xlate()
+    - rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
+    - rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
+    - MIPS: mm: BMIPS5000 has inclusive physical caches
+    - MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
+    - mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
+    - netfilter: nf_tables: add NFTA_SET_USERDATA if not null
+    - netfilter: nf_tables: incorrect enum nft_list_attributes definition
+    - netfilter: nf_tables: fix destination register zeroing
+    - net: hns: Fix memleak in hns_nic_dev_probe
+    - net: systemport: Fix memleak in bcm_sysport_probe
+    - ravb: Fixed to be able to unload modules
+    - net: arc_emac: Fix memleak in arc_mdio_probe
+    - dmaengine: pl330: Fix burst length if burst size is smaller than bus width
+    - gtp: add GTPA_LINK info to msg sent to userspace
+    - net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
+    - bnxt_en: Don't query FW when netif_running() is false.
+    - bnxt_en: Check for zero dir entries in NVRAM.
+    - bnxt_en: Fix PCI AER error recovery flow
+    - bnxt_en: Fix possible crash in bnxt_fw_reset_task().
+    - bnxt_en: fix HWRM error when querying VF temperature
+    - xfs: fix boundary test in xfs_attr_shortform_verify
+    - bnxt: don't enable NAPI until rings are ready
+    - media: vicodec: add missing v4l2_ctrl_request_hdl_put()
+    - media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
+    - selftests/bpf: Fix massive output from test_maps
+    - net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
+    - netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
+    - nvmet-fc: Fix a missed _irqsave version of spin_lock in
+      'nvmet_fc_fod_op_done()'
+    - nvme: fix controller instance leak
+    - cxgb4: fix thermal zone device registration
+    - perf tools: Correct SNOOPX field offset
+    - net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
+    - fix regression in "epoll: Keep a reference on files added to the check list"
+    - net: gemini: Fix another missing clk_disable_unprepare() in probe
+    - MIPS: add missing MSACSR and upper MSA initialization
+    - xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
+    - perf jevents: Fix suspicious code in fixregex()
+    - tg3: Fix soft lockup when tg3_reset_task() fails.
+    - x86, fakenuma: Fix invalid starting node ID
+    - iommu/vt-d: Serialize IOMMU GCMD register modifications
+    - thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
+    - thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
+    - iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
+    - include/linux/log2.h: add missing () around n in roundup_pow_of_two()
+    - iommu/vt-d: Handle 36bit addressing for x86-32
+    - tracing/kprobes, x86/ptrace: Fix regs argument order for i386
+    - ext2: don't update mtime on COW faults
+    - xfs: don't update mtime on COW faults
+    - ARC: perf: don't bail setup if pct irq missing in device-tree
+    - btrfs: drop path before adding new uuid tree entry
+    - btrfs: allocate scrub workqueues outside of locks
+    - btrfs: set the correct lockdep class for new nodes
+    - btrfs: set the lockdep class for log tree extent buffers
+    - btrfs: tree-checker: fix the error message for transid error
+    - net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
+    - btrfs: fix potential deadlock in the search ioctl
+    - ALSA: ca0106: fix error code handling
+    - ALSA: usb-audio: Add implicit feedback quirk for UR22C
+    - ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
+    - ALSA: hda/hdmi: always check pin power status in i915 pin fixup
+    - ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
+    - ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
+    - ALSA; firewire-tascam: exclude Tascam FE-8 from detection
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
+    - ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
+    - arm64: dts: mt7622: add reset node for mmc device
+    - mmc: mediatek: add optional module reset property
+    - mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
+    - mmc: cqhci: Add cqhci_deactivate()
+    - mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based
+      controllers
+    - media: rc: do not access device via sysfs after rc_unregister_device()
+    - media: rc: uevent sysfs file races with rc_unregister_device()
+    - affs: fix basic permission bits to actually work
+    - block: allow for_each_bvec to support zero len bvec
+    - block: ensure bdi->io_pages is always initialized
+    - libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
+    - blk-iocost: ioc_pd_free() shouldn't assume irq disabled
+    - dmaengine: dw-edma: Fix scatter-gather address calculation
+    - drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
+    - dm writecache: handle DAX to partitions on persistent memory correctly
+    - dm mpath: fix racey management of PG initialization
+    - dm integrity: fix error reporting in bitmap mode after creation
+    - dm crypt: Initialize crypto wait structures
+    - dm cache metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Fix use-after-free in dm_bm_set_read_only
+    - mm: slub: fix conversion of freelist_corrupted()
+    - mm: madvise: fix vma user-after-free
+    - vfio/pci: Fix SR-IOV VF handling with MMIO blocking
+    - perf record: Correct the help info of option "--no-bpf-event"
+    - sdhci: tegra: Add missing TMCLK for data timeout
+    - checkpatch: fix the usage of capture group ( ... )
+    - mm/hugetlb: fix a race between hugetlb sysctl handlers
+    - mm/khugepaged.c: fix khugepaged's request size in collapse_file
+    - cfg80211: regulatory: reject invalid hints
+    - net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
+    - Linux 5.4.64
+
+  * Focal update: v5.4.63 upstream stable release (LP: #1895879)
+    - HID: core: Correctly handle ReportSize being zero
+    - HID: core: Sanitize event code and type when mapping input
+    - perf record/stat: Explicitly call out event modifiers in the documentation
+    - drm/sched: Fix passing zero to 'PTR_ERR' warning v2
+    - drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
+    - KVM: arm64: Add kvm_extable for vaxorcism code
+    - KVM: arm64: Survive synchronous exceptions caused by AT instructions
+    - KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception
+    - dt-bindings: mmc: tegra: Add tmclk for Tegra210 and later
+    - arm64: tegra: Add missing timeout clock to Tegra194 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra186 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra210 SDMMC
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra210
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra186
+    - scsi: target: tcmu: Fix size in calls to tcmu_flush_dcache_range
+    - scsi: target: tcmu: Optimize use of flush_dcache_page
+    - Linux 5.4.63
+
+  * Focal update: v5.4.62 upstream stable release (LP: #1895174)
+    - binfmt_flat: revert "binfmt_flat: don't offset the data start"
+    - gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
+    - net: Fix potential wrong skb->protocol in skb_vlan_untag()
+    - net: nexthop: don't allow empty NHA_GROUP
+    - net: qrtr: fix usage of idr in port assignment to socket
+    - net: sctp: Fix negotiation of the number of data streams.
+    - net/smc: Prevent kernel-infoleak in __smc_diag_dump()
+    - tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
+    - net: ena: Make missed_tx stat incremental
+    - net/sched: act_ct: Fix skb double-free in tcf_ct_handle_fragments() error
+      flow
+    - ipvlan: fix device features
+    - ALSA: pci: delete repeated words in comments
+    - ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt
+    - ASoC: img-parallel-out: Fix a reference count leak
+    - ASoC: tegra: Fix reference count leaks.
+    - mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
+    - arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
+    - powerpc/xive: Ignore kmemleak false positives
+    - media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA
+      value in debiirq()
+    - blktrace: ensure our debugfs dir exists
+    - scsi: target: tcmu: Fix crash on ARM during cmd completion
+    - mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs
+    - iommu/iova: Don't BUG on invalid PFNs
+    - drm/amdkfd: Fix reference count leaks.
+    - drm/radeon: fix multiple reference count leak
+    - drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
+    - drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
+    - drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
+    - drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
+    - scsi: lpfc: Fix shost refcount mismatch when deleting vport
+    - xfs: Don't allow logging of XFS_ISTALE inodes
+    - scsi: target: Fix xcopy sess release leak
+    - selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
+    - f2fs: fix error path in do_recover_data()
+    - omapfb: fix multiple reference count leaks due to pm_runtime_get_sync
+    - PCI: Fix pci_create_slot() reference count leak
+    - ARM: dts: ls1021a: output PPS signal on FIPER2
+    - rtlwifi: rtl8192cu: Prevent leaking urb
+    - mips/vdso: Fix resource leaks in genvdso.c
+    - cec-api: prevent leaking memory through hole in structure
+    - HID: quirks: add NOGET quirk for Logitech GROUP
+    - f2fs: fix use-after-free issue
+    - drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
+    - drm/nouveau: fix reference count leak in nv50_disp_atomic_commit
+    - drm/nouveau: Fix reference count leak in nouveau_connector_detect
+    - locking/lockdep: Fix overflow in presentation of average lock-time
+    - btrfs: file: reserve qgroup space after the hole punch range is locked
+    - btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode
+    - scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
+    - ceph: fix potential mdsc use-after-free crash
+    - ceph: do not access the kiocb after aio requests
+    - scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
+    - EDAC/ie31200: Fallback if host bridge device is already initialized
+    - hugetlbfs: prevent filesystem stacking of hugetlbfs
+    - media: davinci: vpif_capture: fix potential double free
+    - KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
+    - powerpc/spufs: add CONFIG_COREDUMP dependency
+    - USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
+    - brcmfmac: Set timeout value when configuring power save
+    - efi: provide empty efi_enter_virtual_mode implementation
+    - arm64: Fix __cpu_logical_map undefined issue
+    - Revert "ath10k: fix DMA related firmware crashes on multiple devices"
+    - sched/uclamp: Protect uclamp fast path code with static key
+    - sched/uclamp: Fix a deadlock when enabling uclamp static key
+    - usb: cdns3: gadget: always zeroed TRB buffer when enable endpoint
+    - PM / devfreq: rk3399_dmc: Add missing of_node_put()
+    - PM / devfreq: rk3399_dmc: Disable devfreq-event device when fails
+    - PM / devfreq: rk3399_dmc: Fix kernel oops when rockchip,pmu is absent
+    - drm/xen: fix passing zero to 'PTR_ERR' warning
+    - drm/xen-front: Fix misused IS_ERR_OR_NULL checks
+    - s390/numa: set node distance to LOCAL_DISTANCE
+    - btrfs: factor out inode items copy loop from btrfs_log_inode()
+    - btrfs: only commit the delayed inode when doing a full fsync
+    - btrfs: only commit delayed items at fsync if we are logging a directory
+    - mm/shuffle: don't move pages between zones and don't read garbage memmaps
+    - mm: fix kthread_use_mm() vs TLB invalidate
+    - mm/cma.c: switch to bitmap_zalloc() for cma bitmap allocation
+    - cma: don't quit at first error when activating reserved areas
+    - gpu/drm: ingenic: Use the plane's src_[x,y] to configure DMA length
+    - drm/ingenic: Fix incorrect assumption about plane->index
+    - drm/amd/display: Trigger modesets on MST DSC connectors
+    - drm/amd/display: Add additional config guards for DCN
+    - drm/amd/display: Fix dmesg warning from setting abm level
+    - mm/vunmap: add cond_resched() in vunmap_pmd_range
+    - EDAC: sb_edac: get rid of unused vars
+    - EDAC: skx_common: get rid of unused type var
+    - EDAC/{i7core,sb,pnd2,skx}: Fix error event severity
+    - PCI: qcom: Add missing ipq806x clocks in PCIe driver
+    - PCI: qcom: Change duplicate PCI reset to phy reset
+    - PCI: qcom: Add missing reset for ipq806x
+    - cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
+    - ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)
+    - media: gpio-ir-tx: improve precision of transmitted signal due to scheduling
+    - block: respect queue limit of max discard segment
+    - block: virtio_blk: fix handling single range discard request
+    - drm/msm/adreno: fix updating ring fence
+    - block: Fix page_is_mergeable() for compound pages
+    - bfq: fix blkio cgroup leakage v4
+    - hwmon: (nct7904) Correct divide by 0
+    - blk-mq: insert request not through ->queue_rq into sw/scheduler queue
+    - blkcg: fix memleak for iolatency
+    - nvme-fc: Fix wrong return value in __nvme_fc_init_request()
+    - nvme: multipath: round-robin: fix single non-optimized path case
+    - null_blk: fix passing of REQ_FUA flag in null_handle_rq
+    - i2c: core: Don't fail PRP0001 enumeration when no ID table exist
+    - i2c: rcar: in slave mode, clear NACK earlier
+    - usb: gadget: f_tcm: Fix some resource leaks in some error paths
+    - spi: stm32: clear only asserted irq flags on interrupt
+    - jbd2: make sure jh have b_transaction set in refile/unfile_buffer
+    - ext4: don't BUG on inconsistent journal feature
+    - ext4: handle read only external journal device
+    - jbd2: abort journal if free a async write error metadata buffer
+    - ext4: handle option set by mount flags correctly
+    - ext4: handle error of ext4_setup_system_zone() on remount
+    - ext4: correctly restore system zone info when remount fails
+    - fs: prevent BUG_ON in submit_bh_wbc()
+    - spi: stm32h7: fix race condition at end of transfer
+    - spi: stm32: fix fifo threshold level in case of short transfer
+    - spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate
+    - spi: stm32: always perform registers configuration prior to transfer
+    - drm/amd/powerplay: correct Vega20 cached smu feature state
+    - drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading
+    - drm/amd/display: Switch to immediate mode for updating infopackets
+    - netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency
+    - can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect
+      corruptions
+    - ALSA: hda/realtek: Add model alc298-samsung-headphone
+    - s390/cio: add cond_resched() in the slow_eval_known_fn() loop
+    - ASoC: wm8994: Avoid attempts to read unreadable registers
+    - selftests: disable rp_filter for icmp_redirect.sh
+    - scsi: fcoe: Fix I/O path allocation
+    - scsi: ufs: Fix possible infinite loop in ufshcd_hold
+    - scsi: ufs: Improve interrupt handling for shared interrupts
+    - scsi: ufs: Clean up completed request without interrupt notification
+    - scsi: qla2xxx: Fix login timeout
+    - scsi: qla2xxx: Check if FW supports MQ before enabling
+    - scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
+    - Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
+    - macvlan: validate setting of multiple remote source MAC addresses
+    - net: gianfar: Add of_node_put() before goto statement
+    - powerpc/perf: Fix soft lockups due to missed interrupt accounting
+    - arm64: Move handling of erratum 1418040 into C code
+    - arm64: Allow booting of late CPUs affected by erratum 1418040
+    - block: fix get_max_io_size()
+    - block: loop: set discard granularity and alignment for block device backed
+      loop
+    - HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
+    - blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART
+    - btrfs: reset compression level for lzo on remount
+    - btrfs: check the right error variable in btrfs_del_dir_entries_in_log
+    - btrfs: fix space cache memory leak after transaction abort
+    - btrfs: detect nocow for swap after snapshot delete
+    - fbcon: prevent user font height or width change from causing potential out-
+      of-bounds access
+    - USB: lvtest: return proper error code in probe
+    - vt: defer kfree() of vc_screenbuf in vc_do_resize()
+    - vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
+    - serial: samsung: Removes the IRQ not found warning
+    - serial: pl011: Fix oops on -EPROBE_DEFER
+    - serial: pl011: Don't leak amba_ports entry on driver register error
+    - serial: stm32: avoid kernel warning on absence of optional IRQ
+    - serial: 8250_exar: Fix number of ports for Commtech PCIe cards
+    - serial: 8250: change lock order in serial8250_do_startup()
+    - writeback: Protect inode->i_io_list with inode->i_lock
+    - writeback: Avoid skipping inode writeback
+    - writeback: Fix sync livelock due to b_dirty_time processing
+    - XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN
+      data pointer which contains XEN specific information.
+    - usb: host: xhci: fix ep context print mismatch in debugfs
+    - xhci: Do warm-reset when both CAS and XDEV_RESUME are set
+    - xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
+    - ARM64: vdso32: Install vdso32 from vdso_install
+    - arm64: vdso32: make vdso32 install conditional
+    - PM: sleep: core: Fix the handling of pending runtime resume requests
+    - powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
+    - device property: Fix the secondary firmware node handling in
+      set_primary_fwnode()
+    - crypto: af_alg - Work around empty control messages without MSG_MORE
+    - genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
+    - irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by
+      mistake
+    - x86/hotplug: Silence APIC only after all interrupts are migrated
+    - drm/amdgpu: Fix buffer overflow in INFO ioctl
+    - drm/amdgpu/gfx10: refine mgcg setting
+    - drm/amd/powerplay: Fix hardmins not being sent to SMU for RV
+    - drm/amd/pm: correct Vega10 swctf limit setting
+    - drm/amd/pm: correct Vega12 swctf limit setting
+    - drm/amd/pm: correct Vega20 swctf limit setting
+    - drm/amd/pm: correct the thermal alert temperature limit settings
+    - USB: yurex: Fix bad gfp argument
+    - usb: uas: Add quirk for PNY Pro Elite
+    - USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
+    - USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
+    - usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
+    - USB: gadget: u_f: add overflow checks to VLA macros
+    - USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
+    - USB: gadget: u_f: Unbreak offset calculation in VLAs
+    - USB: cdc-acm: rework notification_buffer resizing
+    - usb: storage: Add unusual_uas entry for Sony PSZ drives
+    - drm/i915: Fix cmd parser desc matching with masks
+    - usb: dwc3: gadget: Don't setup more than requested
+    - usb: dwc3: gadget: Fix handling ZLP
+    - usb: dwc3: gadget: Handle ZLP for sg requests
+    - fbmem: pull fbcon_update_vcs() out of fb_set_var()
+    - kheaders: remove unneeded 'cat' command piped to 'head' / 'tail'
+    - kheaders: optimize md5sum calculation for in-tree builds
+    - kheaders: optimize header copy for in-tree builds
+    - kheaders: remove the last bashism to allow sh to run it
+    - kheaders: explain why include/config/autoconf.h is excluded from md5sum
+    - kbuild: add variables for compression tools
+    - kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
+    - HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
+    - ALSA: usb-audio: Update documentation comment for MS2109 quirk
+    - io_uring: Fix NULL pointer dereference in io_sq_wq_submit_work()
+    - Linux 5.4.62
+
+  * DELL LATITUDE 5491 touchscreen doesn't work (LP: #1889446) // Focal update:
+    v5.4.62 upstream stable release (LP: #1895174)
+    - USB: quirks: Add no-lpm quirk for another Raydium touchscreen
+
+  * [NUC8CCHK][HDA-Intel - HDA Intel PCH, playback] No sound at all
+    (LP: #1875199) // Focal update: v5.4.62 upstream stable release
+    (LP: #1895174)
+    - ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged
+
+  * Focal update: v5.4.61 upstream stable release (LP: #1893115)
+    - Documentation/llvm: add documentation on building w/ Clang/LLVM
+    - Documentation/llvm: fix the name of llvm-size
+    - net: wan: wanxl: use allow to pass CROSS_COMPILE_M68k for rebuilding
+      firmware
+    - net: wan: wanxl: use $(M68KCC) instead of $(M68KAS) for rebuilding firmware
+    - x86/boot: kbuild: allow readelf executable to be specified
+    - kbuild: remove PYTHON2 variable
+    - kbuild: remove AS variable
+    - kbuild: replace AS=clang with LLVM_IAS=1
+    - kbuild: support LLVM=1 to switch the default tools to Clang/LLVM
+    - drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
+    - gfs2: Improve mmap write vs. punch_hole consistency
+    - gfs2: Never call gfs2_block_zero_range with an open transaction
+    - perf probe: Fix memory leakage when the probe point is not found
+    - khugepaged: khugepaged_test_exit() check mmget_still_valid()
+    - khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
+    - bcache: avoid nr_stripes overflow in bcache_device_init()
+    - btrfs: export helpers for subvolume name/id resolution
+    - btrfs: don't show full path of bind mounts in subvol=
+    - btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
+    - btrfs: add wrapper for transaction abort predicate
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion
+    - can: j1939: transport: j1939_session_tx_dat(): fix use-after-free read in
+      j1939_tp_txtimer()
+    - can: j1939: socket: j1939_sk_bind(): make sure ml_priv is allocated
+    - [Config] update config for SPI_DYNAMIC
+    - spi: Prevent adding devices below an unregistering controller
+    - romfs: fix uninitialized memory leak in romfs_dev_read()
+    - kernel/relay.c: fix memleak on destroy relay channel
+    - uprobes: __replace_page() avoid BUG in munlock_vma_page()
+    - mm: include CMA pages in lowmem_reserve at boot
+    - mm, page_alloc: fix core hung in free_pcppages_bulk()
+    - RDMA/hfi1: Correct an interlock issue for TID RDMA WRITE request
+    - ext4: fix checking of directory entry validity for inline directories
+    - jbd2: add the missing unlock_buffer() in the error path of
+      jbd2_write_superblock()
+    - scsi: zfcp: Fix use-after-free in request timeout handlers
+    - drm/amdgpu/display: use GFP_ATOMIC in dcn20_validate_bandwidth_internal
+    - drm/amd/display: Fix EDID parsing after resume from suspend
+    - drm/amd/display: fix pow() crashing when given base 0
+    - kthread: Do not preempt current task if it is going to call schedule()
+    - opp: Enable resources again if they were disabled earlier
+    - scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
+    - scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM
+    - media: budget-core: Improve exception handling in budget_register()
+    - rtc: goldfish: Enable interrupt in set_alarm() when necessary
+    - media: vpss: clean up resources in init
+    - Input: psmouse - add a newline when printing 'proto' by sysfs
+    - MIPS: Fix unable to reserve memory for Crash kernel
+    - m68knommu: fix overwriting of bits in ColdFire V3 cache control
+    - svcrdma: Fix another Receive buffer leak
+    - xfs: fix inode quota reservation checks
+    - drm/ttm: fix offset in VMAs with a pg_offs in ttm_bo_vm_access
+    - jffs2: fix UAF problem
+    - ceph: fix use-after-free for fsc->mdsc
+    - swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses
+    - cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0
+    - scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases
+    - virtio_ring: Avoid loop when vq is broken in virtqueue_poll
+    - media: camss: fix memory leaks on error handling paths in probe
+    - tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null
+      pointer dereference
+    - xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
+    - alpha: fix annotation of io{read,write}{16,32}be()
+    - fs/signalfd.c: fix inconsistent return codes for signalfd4
+    - ext4: fix potential negative array index in do_split()
+    - ext4: don't allow overlapping system zones
+    - netfilter: nf_tables: nft_exthdr: the presence return value should be
+      little-endian
+    - spi: stm32: fixes suspend/resume management
+    - ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
+    - ASoC: q6routing: add dummy register read/write function
+    - bpf: sock_ops sk access may stomp registers when dst_reg = src_reg
+    - can: j1939: fix kernel-infoleak in j1939_sk_sock2sockaddr_can()
+    - can: j1939: transport: j1939_simple_recv(): ignore local J1939 messages send
+      not by J1939 stack
+    - can: j1939: transport: add j1939_session_skb_find_by_offset() function
+    - i40e: Set RX_ONLY mode for unicast promiscuous on VLAN
+    - i40e: Fix crash during removing i40e driver
+    - net: fec: correct the error path for regulator disable in probe
+    - bonding: show saner speed for broadcast mode
+    - can: j1939: fix support for multipacket broadcast message
+    - can: j1939: cancel rxtimer on multipacket broadcast session complete
+    - can: j1939: abort multipacket broadcast session when timeout occurs
+    - can: j1939: add rxtimer for multipacket broadcast session
+    - bonding: fix a potential double-unregister
+    - s390/runtime_instrumentation: fix storage key handling
+    - s390/ptrace: fix storage key handling
+    - ASoC: msm8916-wcd-analog: fix register Interrupt offset
+    - ASoC: intel: Fix memleak in sst_media_open
+    - vfio/type1: Add proper error unwind for vfio_iommu_replay()
+    - kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
+    - kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode
+    - Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe"
+    - kconfig: qconf: do not limit the pop-up menu to the first row
+    - kconfig: qconf: fix signal connection to invalid slots
+    - efi: avoid error message when booting under Xen
+    - Fix build error when CONFIG_ACPI is not set/enabled:
+    - RDMA/bnxt_re: Do not add user qps to flushlist
+    - afs: Fix NULL deref in afs_dynroot_depopulate()
+    - bonding: fix active-backup failover for current ARP slave
+    - net: ena: Prevent reset after device destruction
+    - net: gemini: Fix missing free_netdev() in error path of
+      gemini_ethernet_port_probe()
+    - hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit()
+    - net: dsa: b53: check for timeout
+    - powerpc/pseries: Do not initiate shutdown when system is running on UPS
+    - efi: add missed destroy_workqueue when efisubsys_init fails
+    - epoll: Keep a reference on files added to the check list
+    - do_epoll_ctl(): clean the failure exits up a bit
+    - mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
+    - xen: don't reschedule in preemption off sections
+    - KVM: Pass MMU notifier range flags to kvm_unmap_hva_range()
+    - KVM: arm64: Only reschedule if MMU_NOTIFIER_RANGE_BLOCKABLE is not set
+    - Linux 5.4.61
+
+  * [UBUNTU 20.04] zPCI device hot-plug during boot may result in unusable
+    device (LP: #1893778)
+    - s390/pci: ignore stale configuration request event
+
+  * [SRU] [Focal/OEM-5.6/Groovy]Fix AMD usb host controller lost after stress S3
+    (LP: #1893914)
+    - SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 18 Sep 2020 10:17:00 +0200
+
+linux (5.4.0-48.52) focal; urgency=medium
+
+  * focal/linux: 5.4.0-48.52 -proposed tracker (LP: #1894654)
+
+  * mm/slub kernel oops on focal kernel 5.4.0-45 (LP: #1895109)
+    - SAUCE: Revert "mm/slub: fix a memory leak in sysfs_slab_add()"
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+
+  * Introduce the new NVIDIA 450-server and the 450 UDA series (LP: #1887674)
+    - [packaging] add signed modules for nvidia 450 and 450-server
+
+  * [UBUNTU 20.04] zPCI attach/detach issues with PF/VF linking support
+    (LP: #1892849)
+    - s390/pci: fix zpci_bus_link_virtfn()
+    - s390/pci: re-introduce zpci_remove_device()
+    - s390/pci: fix PF/VF linking on hot plug
+
+  * [UBUNTU 20.04] kernel: s390/cpum_cf,perf: changeDFLT_CCERROR counter name
+    (LP: #1891454)
+    - s390/cpum_cf, perf: change DFLT_CCERROR counter name
+
+  * [UBUNTU 20.04] zPCI: Enabling of a reserved PCI function regression
+    introduced by multi-function support (LP: #1891437)
+    - s390/pci: fix enabling a reserved PCI function
+
+  * CVE-2020-12888
+    - vfio/type1: Support faulting PFNMAP vmas
+    - vfio-pci: Fault mmaps to enable vma tracking
+    - vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
+
+  *  [Hyper-V] VSS and File Copy daemons intermittently fails to start
+    (LP: #1891224)
+    - [Packaging] Bind hv_vss_daemon startup to hv_vss device
+    - [Packaging] bind hv_fcopy_daemon startup to hv_fcopy device
+
+  * alsa/hdmi: support nvidia mst hdmi/dp audio (LP: #1867704)
+    - ALSA: hda - Rename snd_hda_pin_sense to snd_hda_jack_pin_sense
+    - ALSA: hda - Add DP-MST jack support
+    - ALSA: hda - Add DP-MST support for non-acomp codecs
+    - ALSA: hda - Add DP-MST support for NVIDIA codecs
+    - ALSA: hda: hdmi - fix regression in connect list handling
+    - ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
+    - ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
+    - ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
+    - ALSA: hda - Fix DP-MST support for NVIDIA codecs
+
+  * Focal update: v5.4.60 upstream stable release (LP: #1892899)
+    - smb3: warn on confusing error scenario with sec=krb5
+    - genirq/affinity: Make affinity setting if activated opt-in
+    - genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq()
+    - PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
+    - PCI: Add device even if driver attach failed
+    - PCI: qcom: Define some PARF params needed for ipq8064 SoC
+    - PCI: qcom: Add support for tx term offset for rev 2.1.0
+    - btrfs: allow use of global block reserve for balance item deletion
+    - btrfs: free anon block device right after subvolume deletion
+    - btrfs: don't allocate anonymous block device for user invisible roots
+    - btrfs: ref-verify: fix memory leak in add_block_entry
+    - btrfs: stop incremening log_batch for the log root tree when syncing log
+    - btrfs: remove no longer needed use of log_writers for the log root tree
+    - btrfs: don't traverse into the seed devices in show_devname
+    - btrfs: open device without device_list_mutex
+    - btrfs: move the chunk_mutex in btrfs_read_chunk_tree
+    - btrfs: relocation: review the call sites which can be interrupted by signal
+    - btrfs: add missing check for nocow and compression inode flags
+    - btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on
+      relocation tree
+    - btrfs: sysfs: use NOFS for device creation
+    - btrfs: don't WARN if we abort a transaction with EROFS
+    - btrfs: fix race between page release and a fast fsync
+    - btrfs: fix messages after changing compression level by remount
+    - btrfs: only search for left_info if there is no right_info in
+      try_merge_free_space
+    - btrfs: inode: fix NULL pointer dereference if inode doesn't need compression
+    - btrfs: fix memory leaks after failure to lookup checksums during inode
+      logging
+    - btrfs: make sure SB_I_VERSION doesn't get unset by remount
+    - btrfs: fix return value mixup in btrfs_get_extent
+    - arm64: perf: Correct the event index in sysfs
+    - dt-bindings: iio: io-channel-mux: Fix compatible string in example code
+    - iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()
+    - xtensa: add missing exclusive access state management
+    - xtensa: fix xtensa_pmu_setup prototype
+    - cifs: Fix leak when handling lease break for cached root fid
+    - powerpc/ptdump: Fix build failure in hashpagetable.c
+    - powerpc: Allow 4224 bytes of stack expansion for the signal frame
+    - powerpc: Fix circular dependency between percpu.h and mmu.h
+    - pinctrl: ingenic: Enhance support for IRQ_TYPE_EDGE_BOTH
+    - media: vsp1: dl: Fix NULL pointer dereference on unbind
+    - net: ethernet: stmmac: Disable hardware multicast filter
+    - net: stmmac: dwmac1000: provide multicast filter fallback
+    - net/compat: Add missing sock updates for SCM_RIGHTS
+    - md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
+    - bcache: allocate meta data pages as compound pages
+    - bcache: fix overflow in offset_to_stripe()
+    - mac80211: fix misplaced while instead of if
+    - driver core: Avoid binding drivers to dead devices
+    - MIPS: CPU#0 is not hotpluggable
+    - MIPS: qi_lb60: Fix routing to audio amplifier
+    - ext2: fix missing percpu_counter_inc
+    - khugepaged: collapse_pte_mapped_thp() flush the right range
+    - khugepaged: collapse_pte_mapped_thp() protect the pmd lock
+    - ocfs2: change slot number type s16 to u16
+    - mm/page_counter.c: fix protection usage propagation
+    - mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
+    - ftrace: Setup correct FTRACE_FL_REGS flags for module
+    - kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
+    - tracing/hwlat: Honor the tracing_cpumask
+    - tracing: Use trace_sched_process_free() instead of exit() for pid tracing
+    - tracing: Move pipe reference to trace array instead of current_tracer
+    - watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in
+      watchdog_info.options
+    - watchdog: f71808e_wdt: remove use of wrong watchdog_info option
+    - watchdog: f71808e_wdt: clear watchdog timeout occurred flag
+    - ceph: set sec_context xattr on symlink creation
+    - ceph: handle zero-length feature mask in session messages
+    - pseries: Fix 64 bit logical memory block panic
+    - module: Correctly truncate sysfs sections output
+    - perf intel-pt: Fix FUP packet state
+    - perf intel-pt: Fix duplicate branch after CBR
+    - remoteproc: qcom: q6v5: Update running state before requesting stop
+    - remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
+    - remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load
+    - drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()
+    - orangefs: get rid of knob code...
+    - pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
+    - crypto: algif_aead - Only wake up when ctx->more is zero
+    - mfd: arizona: Ensure 32k clock is put on driver unbind and error
+    - octeontx2-af: change (struct qmem)->entry_sz from u8 to u16
+    - mtd: rawnand: fsl_upm: Remove unused mtd var
+    - platform/chrome: cros_ec_ishtp: Fix a double-unlock issue
+    - RDMA/ipoib: Return void from ipoib_ib_dev_stop()
+    - RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()
+    - media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
+    - media: rockchip: rga: Only set output CSC mode for RGB input
+    - IB/uverbs: Set IOVA on IB MR in uverbs layer
+    - selftests/bpf: Test_progs indicate to shell on non-actions
+    - selftests/bpf: test_progs use another shell exit on non-actions
+    - USB: serial: ftdi_sio: make process-packet buffer unsigned
+    - USB: serial: ftdi_sio: clean up receive processing
+    - crypto: af_alg - Fix regression on empty requests
+    - devres: keep both device name and resource name in pretty name
+    - RDMA/counter: Only bind user QPs in auto mode
+    - RDMA/counter: Allow manually bind QPs with different pids to same counter
+    - mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
+    - crypto: caam - Remove broken arc4 support
+    - gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers
+    - gpu: ipu-v3: image-convert: Wait for all EOFs before completing a tile
+    - dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
+    - clk: actions: Fix h_clk for Actions S500 SoC
+    - selftests/powerpc: ptrace-pkey: Rename variables to make it easier to follow
+      code
+    - selftests/powerpc: ptrace-pkey: Update the test to mark an invalid pkey
+      correctly
+    - selftests/powerpc: ptrace-pkey: Don't update expected UAMOR value
+    - iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
+    - clk: qcom: gcc: fix sm8150 GPU and NPU clocks
+    - clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
+    - iommu/vt-d: Enforce PASID devTLB field mask
+    - i2c: rcar: slave: only send STOP event when we have been addressed
+    - clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
+    - clk: clk-atlas6: fix return value check in atlas6_clk_init()
+    - pwm: bcm-iproc: handle clk_get_rate() return
+    - tools build feature: Use CC and CXX from parent
+    - i2c: rcar: avoid race when unregistering slave
+    - nfs: ensure correct writeback errors are returned on close()
+    - ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
+    - clk: bcm2835: Do not use prediv with bcm2711's PLLs
+    - libnvdimm/security: fix a typo
+    - libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
+    - openrisc: Fix oops caused when dumping stack
+    - scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying
+      targetport
+    - nfs: nfs_file_write() should check for writeback errors
+    - watchdog: initialize device before misc_register
+    - md-cluster: Fix potential error pointer dereference in resize_bitmaps()
+    - x86/tsr: Fix tsc frequency enumeration bug on Lightning Mountain SoC
+    - Input: sentelic - fix error return when fsp_reg_write fails
+    - recordmcount: Fix build failure on non arm64
+    - drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
+    - drm/vmwgfx: Fix two list_for_each loop exit tests
+    - net: qcom/emac: add missed clk_disable_unprepare in error path of
+      emac_clks_phase1_init
+    - nfs: Fix getxattr kernel panic and memory overflow
+    - fs/minix: set s_maxbytes correctly
+    - fs/minix: fix block limit check for V1 filesystems
+    - fs/minix: remove expected error message in block_to_path()
+    - fs/ufs: avoid potential u32 multiplication overflow
+    - test_kmod: avoid potential double free in trigger_config_run_type()
+    - i2c: iproc: fix race between client unreg and isr
+    - mfd: dln2: Run event handler loop under spinlock
+    - crypto: algif_aead - fix uninitialized ctx->init
+    - ALSA: echoaudio: Fix potential Oops in snd_echo_resume()
+    - perf bench mem: Always memset source before memcpy
+    - tools build feature: Quote CC and CXX for their arguments
+    - perf/x86/rapl: Fix missing psys sysfs attributes
+    - sh: landisk: Add missing initialization of sh_io_port_base
+    - khugepaged: retract_page_tables() remember to test exit
+    - arm64: dts: marvell: espressobin: add ethernet alias
+    - drm/panfrost: Use kvfree() to free bo->sgts
+    - drm: Added orientation quirk for ASUS tablet model T103HAF
+    - drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
+    - drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume
+    - drm/amd/display: dchubbub p-state warning during surface planes switch
+    - Linux 5.4.60
+    - kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
+
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417)
+    - tracepoint: Mark __tracepoint_string's __used
+    - HID: input: Fix devices that return multiple bytes in battery report
+    - nvme: add a Identify Namespace Identification Descriptor list quirk
+    - fs/io_uring.c: Fix uninitialized variable is referenced in io_submit_sqe
+    - clk: qcom: clk-rpmh: Wait for completion when enabling clocks
+    - x86/mce/inject: Fix a wrong assignment of i_mce.status
+    - sched/fair: Fix NOHZ next idle balance
+    - sched: correct SD_flags returned by tl->sd_flags()
+    - arm64: dts: rockchip: fix rk3368-lion gmac reset gpio
+    - arm64: dts: rockchip: fix rk3399-puma vcc5v0-host gpio
+    - arm64: dts: rockchip: fix rk3399-puma gmac reset gpio
+    - EDAC: Fix reference count leaks
+    - crc-t10dif: Fix potential crypto notify dead-lock
+    - arm64: dts: qcom: msm8916: Replace invalid bias-pull-none property
+    - crypto: ccree - fix resource leak on error path
+    - ARM: exynos: MCPM: Restore big.LITTLE cpuidle support
+    - firmware: arm_scmi: Fix SCMI genpd domain probing
+    - arm64: dts: exynos: Fix silent hang after boot on Espresso
+    - sched/uclamp: Fix initialization of struct uclamp_rq
+    - clk: scmi: Fix min and max rate when registering clocks with discrete rates
+    - m68k: mac: Don't send IOP message until channel is idle
+    - m68k: mac: Fix IOP status/control register writes
+    - platform/x86: intel-hid: Fix return value check in check_acpi_dev()
+    - platform/x86: intel-vbtn: Fix return value check in check_acpi_dev()
+    - ARM: dts: gose: Fix ports node name for adv7180
+    - ARM: dts: gose: Fix ports node name for adv7612
+    - ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Add regulator supply to all CPU
+      cores
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Fix CPU supply voltages
+    - spi: lantiq: fix: Rx overflow error in full duplex mode
+    - tpm: Require that all digests are present in TCG_PCR_EVENT2 structures
+    - recordmcount: only record relocation of type R_AARCH64_CALL26 on arm64.
+    - regulator: fix memory leak on error path of regulator_register()
+    - io_uring: fix sq array offset calculation
+    - spi: rockchip: Fix error in SPI slave pio read
+    - ARM: socfpga: PM: add missing put_device() call in
+      socfpga_setup_ocram_self_refresh()
+    - iocost: Fix check condition of iocg abs_vdebt
+    - irqchip/ti-sci-inta: Fix return value about devm_ioremap_resource()
+    - seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
+    - md: raid0/linear: fix dereference before null check on pointer mddev
+    - nvme-tcp: fix controller reset hang during traffic
+    - nvme-rdma: fix controller reset hang during traffic
+    - nvme-multipath: fix logic for non-optimized paths
+    - nvme-multipath: do not fall back to __nvme_find_path() for non-optimized
+      paths
+    - drm/tilcdc: fix leak & null ref in panel_connector_get_modes
+    - soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag
+    - Bluetooth: add a mutex lock to avoid UAF in do_enale_set
+    - loop: be paranoid on exit and prevent new additions / removals
+    - fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls
+    - drm/amdgpu: avoid dereferencing a NULL pointer
+    - drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync
+    - crypto: aesni - Fix build with LLVM_IAS=1
+    - video: fbdev: savage: fix memory leak on error handling path in probe
+    - video: fbdev: neofb: fix memory leak in neo_scan_monitor()
+    - bus: ti-sysc: Add missing quirk flags for usb_host_hs
+    - md-cluster: fix wild pointer of unlock_all_bitmaps()
+    - drm/nouveau/kms/nv50-: Fix disabling dithering
+    - arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding
+    - drm/etnaviv: fix ref count leak via pm_runtime_get_sync
+    - drm/nouveau: fix reference count leak in nouveau_debugfs_strap_peek
+    - drm/nouveau: fix multiple instances of reference count leaks
+    - mmc: sdhci-cadence: do not use hardware tuning for SD mode
+    - btrfs: fix lockdep splat from btrfs_dump_space_info
+    - usb: mtu3: clear dual mode of u3port when disable device
+    - drm: msm: a6xx: fix gpu failure after system resume
+    - drm/msm: Fix a null pointer access in msm_gem_shrinker_count()
+    - drm/debugfs: fix plain echo to connector "force" attribute
+    - drm/radeon: disable AGP by default
+    - irqchip/irq-mtk-sysirq: Replace spinlock with raw_spinlock
+    - mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls
+    - drm/amdgpu/display bail early in dm_pp_get_static_clocks
+    - drm/amd/powerplay: fix compile error with ARCH=arc
+    - bpf: Fix fds_example SIGSEGV error
+    - brcmfmac: keep SDIO watchdog running when console_interval is non-zero
+    - brcmfmac: To fix Bss Info flag definition Bug
+    - brcmfmac: set state of hanger slot to FREE when flushing PSQ
+    - platform/x86: asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15
+    - iwlegacy: Check the return value of pcie_capability_read_*()
+    - gpu: host1x: debug: Fix multiple channels emitting messages simultaneously
+    - ionic: update eid test for overflow
+    - mmc: sdhci-pci-o2micro: Bug fix for O2 host controller Seabird1
+    - usb: gadget: net2280: fix memory leak on probe error handling paths
+    - bdc: Fix bug causing crash after multiple disconnects
+    - usb: bdc: Halt controller on suspend
+    - dyndbg: fix a BUG_ON in ddebug_describe_flags
+    - bcache: fix super block seq numbers comparision in register_cache_set()
+    - ACPICA: Do not increment operation_region reference counts for field units
+    - drm/msm: ratelimit crtc event overflow error
+    - drm/gem: Fix a leak in drm_gem_objects_lookup()
+    - drm/bridge: ti-sn65dsi86: Clear old error bits before AUX transfers
+    - agp/intel: Fix a memory leak on module initialisation failure
+    - mwifiex: Fix firmware filename for sd8977 chipset
+    - mwifiex: Fix firmware filename for sd8997 chipset
+    - btmrvl: Fix firmware filename for sd8977 chipset
+    - btmrvl: Fix firmware filename for sd8997 chipset
+    - video: fbdev: sm712fb: fix an issue about iounmap for a wrong address
+    - console: newport_con: fix an issue about leak related system resources
+    - video: pxafb: Fix the function used to balance a 'dma_alloc_coherent()' call
+    - ath10k: Acquire tx_lock in tx error paths
+    - iio: improve IIO_CONCENTRATION channel type description
+    - drm/etnaviv: Fix error path on failure to enable bus clk
+    - drm/arm: fix unintentional integer overflow on left shift
+    - clk: bcm63xx-gate: fix last clock availability
+    - leds: lm355x: avoid enum conversion warning
+    - Bluetooth: btusb: fix up firmware download sequence
+    - Bluetooth: btmtksdio: fix up firmware download sequence
+    - media: cxusb-analog: fix V4L2 dependency
+    - media: marvell-ccic: Add missed v4l2_async_notifier_cleanup()
+    - media: omap3isp: Add missed v4l2_ctrl_handler_free() for
+      preview_init_entities()
+    - ASoC: SOF: nocodec: add missing .owner field
+    - ASoC: Intel: bxt_rt298: add missing .owner field
+    - scsi: cumana_2: Fix different dev_id between request_irq() and free_irq()
+    - drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline
+    - cxl: Fix kobject memleak
+    - drm/radeon: fix array out-of-bounds read and write issues
+    - staging: vchiq_arm: Add a matching unregister call
+    - iavf: fix error return code in iavf_init_get_resources()
+    - iavf: Fix updating statistics
+    - RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued()
+    - scsi: powertec: Fix different dev_id between request_irq() and free_irq()
+    - scsi: eesox: Fix different dev_id between request_irq() and free_irq()
+    - ipvs: allow connection reuse for unconfirmed conntrack
+    - media: firewire: Using uninitialized values in node_probe()
+    - media: exynos4-is: Add missed check for pinctrl_lookup_state()
+    - media: cros-ec-cec: do not bail on device_init_wakeup failure
+    - xfs: don't eat an EIO/ENOSPC writeback error when scrubbing data fork
+    - xfs: fix reflink quota reservation accounting error
+    - RDMA/rxe: Skip dgid check in loopback mode
+    - PCI: Fix pci_cfg_wait queue locking problem
+    - drm/stm: repair runtime power management
+    - kobject: Avoid premature parent object freeing in kobject_cleanup()
+    - leds: core: Flush scheduled work for system suspend
+    - drm: panel: simple: Fix bpc for LG LB070WV8 panel
+    - phy: exynos5-usbdrd: Calibrating makes sense only for USB2.0 PHY
+    - drm/bridge: sil_sii8620: initialize return of sii8620_readb
+    - scsi: scsi_debug: Add check for sdebug_max_queue during module init
+    - mwifiex: Prevent memory corruption handling keys
+    - kernfs: do not call fsnotify() with name without a parent
+    - powerpc/rtas: don't online CPUs for partition suspend
+    - powerpc/vdso: Fix vdso cpu truncation
+    - RDMA/qedr: SRQ's bug fixes
+    - RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send queue
+    - ima: Have the LSM free its audit rule
+    - staging: rtl8192u: fix a dubious looking mask before a shift
+    - ASoC: meson: fixes the missed kfree() for axg_card_add_tdm_loopback
+    - PCI/ASPM: Add missing newline in sysfs 'policy'
+    - phy: renesas: rcar-gen3-usb2: move irq registration to init
+    - powerpc/book3s64/pkeys: Use PVR check instead of cpu feature
+    - drm/imx: fix use after free
+    - drm/imx: tve: fix regulator_disable error path
+    - gpu: ipu-v3: Restore RGB32, BGR32
+    - spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM
+    - USB: serial: iuu_phoenix: fix led-activity helpers
+    - usb: core: fix quirks_param_set() writing to a const pointer
+    - thermal: ti-soc-thermal: Fix reversed condition in
+      ti_thermal_expose_sensor()
+    - coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb()
+    - powerpc/perf: Fix missing is_sier_aviable() during build
+    - mt76: mt7615: fix potential memory leak in mcu message handler
+    - phy: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - MIPS: OCTEON: add missing put_device() call in dwc3_octeon_device_init()
+    - usb: dwc2: Fix error path in gadget registration
+    - usb: gadget: f_uac2: fix AC Interface Header Descriptor wTotalLength
+    - scsi: megaraid_sas: Clear affinity hint
+    - scsi: mesh: Fix panic after host or bus reset
+    - net: dsa: mv88e6xxx: MV88E6097 does not support jumbo configuration
+    - macintosh/via-macii: Access autopoll_devs when inside lock
+    - PCI: cadence: Fix updating Vendor ID and Subsystem Vendor ID register
+    - RDMA/core: Fix return error value in _ib_modify_qp() to negative
+    - Smack: fix another vsscanf out of bounds
+    - Smack: prevent underflow in smk_set_cipso()
+    - power: supply: check if calc_soc succeeded in pm860x_init_battery
+    - Bluetooth: hci_h5: Set HCI_UART_RESET_ON_INIT to correct flags
+    - Bluetooth: hci_serdev: Only unregister device if it was registered
+    - net: dsa: rtl8366: Fix VLAN semantics
+    - net: dsa: rtl8366: Fix VLAN set-up
+    - xfs: fix inode allocation block res calculation precedence
+    - selftests/powerpc: Squash spurious errors due to device removal
+    - powerpc/32s: Fix CONFIG_BOOK3S_601 uses
+    - powerpc/boot: Fix CONFIG_PPC_MPC52XX references
+    - selftests/powerpc: Fix CPU affinity for child process
+    - RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP
+    - PCI: Release IVRS table in AMD ACS quirk
+    - [Config] update config for ARMADA_AP_CPU_CLK
+    - cpufreq: ap806: fix cpufreq driver needs ap cpu clk
+    - selftests/powerpc: Fix online CPU selection
+    - ASoC: meson: axg-tdm-interface: fix link fmt setup
+    - ASoC: meson: axg-tdmin: fix g12a skew
+    - ASoC: meson: axg-tdm-formatters: fix sclk inversion
+    - ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK
+    - s390/qeth: don't process empty bridge port events
+    - ice: Graceful error handling in HW table calloc failure
+    - rtw88: fix LDPC field for RA info
+    - rtw88: fix short GI capability based on current bandwidth
+    - rtw88: coex: only skip coex triggered by BT info
+    - wl1251: fix always return 0 error
+    - tools, build: Propagate build failures from tools/build/Makefile.build
+    - tools, bpftool: Fix wrong return value in do_dump()
+    - net/mlx5: DR, Change push vlan action sequence
+    - net/mlx5: Delete extra dump stack that gives nothing
+    - net: ethernet: aquantia: Fix wrong return value
+    - liquidio: Fix wrong return value in cn23xx_get_pf_num()
+    - net: spider_net: Fix the size used in a 'dma_free_coherent()' call
+    - fsl/fman: use 32-bit unsigned integer
+    - fsl/fman: fix dereference null return value
+    - fsl/fman: fix unreachable code
+    - fsl/fman: check dereferencing null pointer
+    - fsl/fman: fix eth hash table allocation
+    - net: thunderx: initialize VF's mailbox mutex before first usage
+    - dlm: Fix kobject memleak
+    - ocfs2: fix unbalanced locking
+    - pinctrl-single: fix pcs_parse_pinconf() return value
+    - svcrdma: Fix page leak in svc_rdma_recv_read_chunk()
+    - x86/fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task
+    - crypto: aesni - add compatibility with IAS
+    - af_packet: TPACKET_V3: fix fill status rwlock imbalance
+    - drivers/net/wan/lapbether: Added needed_headroom and a skb->len check
+    - net: Fix potential memory leak in proto_register()
+    - net/nfc/rawsock.c: add CAP_NET_RAW check.
+    - net: phy: fix memory leak in device-create error path
+    - net: Set fput_needed iff FDPUT_FPUT is set
+    - net/tls: Fix kmap usage
+    - vmxnet3: use correct tcp hdr length when packet is encapsulated
+    - net: refactor bind_bucket fastreuse into helper
+    - net: initialize fastreuse on inet_inherit_port
+    - USB: serial: cp210x: re-enable auto-RTS on open
+    - USB: serial: cp210x: enable usb generic throttle/unthrottle
+    - ALSA: hda - fix the micmute led status for Lenovo ThinkCentre AIO
+    - ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support
+    - ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
+    - ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
+    - 9p: Fix memory leak in v9fs_mount
+    - media: media-request: Fix crash if memory allocation fails
+    - drm/ttm/nouveau: don't call tt destroy callback on alloc failure.
+    - io_uring: set ctx sq/cq entry count earlier
+    - NFS: Don't move layouts to plh_return_segs list while in use
+    - NFS: Don't return layout segments that are in use
+    - cpufreq: Fix locking issues with governors
+    - cpufreq: dt: fix oops on armada37xx
+    - include/asm-generic/vmlinux.lds.h: align ro_after_init
+    - spi: spidev: Align buffers for DMA
+    - mtd: rawnand: qcom: avoid write to unavailable register
+    - erofs: fix extended inode could cross boundary
+    - Revert "parisc: Drop LDCW barrier in CAS code when running UP"
+    - Revert "parisc: Use ldcw instruction for SMP spinlock release barrier"
+    - Revert "parisc: Revert "Release spinlocks using ordered store""
+    - parisc: Do not use an ordered store in pa_tlb_lock()
+    - parisc: Implement __smp_store_release and __smp_load_acquire barriers
+    - parisc: mask out enable and reserved bits from sba imask
+    - ARM: 8992/1: Fix unwind_frame for clang-built kernels
+    - irqdomain/treewide: Free firmware node after domain removal
+    - ALSA: usb-audio: add quirk for Pioneer DDJ-RB
+    - tpm: Unify the mismatching TPM space buffer sizes
+    - pstore: Fix linking when crypto API disabled
+    - crypto: hisilicon - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not
+      specified
+    - crypto: qat - fix double free in qat_uclo_create_batch_init_list
+    - crypto: ccp - Fix use of merged scatterlists
+    - crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
+    - bitfield.h: don't compile-time validate _val in FIELD_FIT
+    - fs/minix: check return value of sb_getblk()
+    - fs/minix: don't allow getting deleted inodes
+    - fs/minix: reject too-large maximum file size
+    - xen/balloon: fix accounting in alloc_xenballooned_pages error path
+    - xen/balloon: make the balloon wait interruptible
+    - xen/gntdev: Fix dmabuf import with non-zero sgt offset
+    - s390/dasd: fix inability to use DASD with DIAG driver
+    - s390/gmap: improve THP splitting
+    - io_uring: Fix NULL pointer dereference in loop_rw_iter()
+    - Linux 5.4.59
+
+  * Regression on NFS: unable to handle page fault in mempool_alloc_slab
+    (LP: #1886277) // Focal update: v5.4.59 upstream stable release
+    (LP: #1892417)
+    - SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
+
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417) //
+    CVE-2019-19770 which shows this issue is not a core debugfs issue, but
+    - blktrace: fix debugfs use after free
+
+  * update ENA driver for LLQ acceleration mode, new hw support (LP: #1890845)
+    - net: ena: change num_queues to num_io_queues for clarity and consistency
+    - net: ena: multiple queue creation related cleanups
+    - net: ena: ethtool: get_channels: use combined only
+    - net: ena: make ethtool -l show correct max number of queues
+    - net: ena: remove redundant print of number of queues
+    - net: ena: ethtool: support set_channels callback
+    - net: ena: implement XDP drop support
+    - net: ena: Implement XDP_TX action
+    - net: ena: Add first_interrupt field to napi struct
+    - net: ena: fix default tx interrupt moderation interval
+    - net: ena: remove set but not used variable 'rx_ring'
+    - net: ena: remove set but not used variable 'hash_key'
+    - net: ena: ethtool: remove redundant non-zero check on rc
+    - net/amazon: Ensure that driver version is aligned to the linux kernel
+    - net: ena: fix broken interface between ENA driver and FW
+    - net: ena: ethtool: clean up minor indentation issue
+    - net: ena: fix incorrect setting of the number of msix vectors
+    - net: ena: fix request of incorrect number of IRQ vectors
+    - net: ena: avoid memory access violation by validating req_id properly
+    - net: ena: fix continuous keep-alive resets
+    - net: ena: Make some functions static
+    - net: ena: avoid unnecessary admin command when RSS function set fails
+    - net: ena: allow setting the hash function without changing the key
+    - net: ena: change default RSS hash function to Toeplitz
+    - net: ena: changes to RSS hash key allocation
+    - net: ena: remove code that does nothing
+    - net: ena: add unmask interrupts statistics to ethtool
+    - net: ena: add support for reporting of packet drops
+    - net: ena: drop superfluous prototype
+    - net: ena: use SHUTDOWN as reset reason when closing interface
+    - net: ena: cosmetic: remove unnecessary spaces and tabs in ena_com.h macros
+    - net: ena: cosmetic: extract code to ena_indirection_table_set()
+    - net: ena: add support for the rx offset feature
+    - net: ena: rename ena_com_free_desc to make API more uniform
+    - net: ena: use explicit variable size for clarity
+    - net: ena: fix ena_com_comp_status_to_errno() return value
+    - net: ena: simplify ena_com_update_intr_delay_resolution()
+    - net: ena: cosmetic: set queue sizes to u32 for consistency
+    - net: ena: cosmetic: fix spelling and grammar mistakes in comments
+    - net: ena: cosmetic: fix line break issues
+    - net: ena: cosmetic: remove unnecessary code
+    - net: ena: cosmetic: code reorderings
+    - net: ena: cosmetic: fix spacing issues
+    - net: ena: cosmetic: minor code changes
+    - net: ena: reduce driver load time
+    - net: ena: xdp: XDP_TX: fix memory leak
+    - net: ena: xdp: update napi budget for DROP and ABORTED
+    - ena_netdev: use generic power management
+    - net: ena: Fix using plain integer as NULL pointer in ena_init_napi_in_range
+    - net: ena: avoid unnecessary rearming of interrupt vector when busy-polling
+    - net: ena: add reserved PCI device ID
+    - net: ena: cosmetic: satisfy gcc warning
+    - net: ena: cosmetic: change ena_com_stats_admin stats to u64
+    - net: ena: add support for traffic mirroring
+    - net: ena: enable support of rss hash key and function changes
+    - net: ena: move llq configuration from ena_probe to ena_device_init()
+    - net: ena: support new LLQ acceleration mode
+
+  * [SRU] Fix acpi backlight issue on some thinkpads (LP: #1892010)
+    - platform/x86: thinkpad_acpi: not loading brightness_init when _BCL invalid
+
+  * [SRU][F/OEM-5.6] add a new OLED panel support for brightness control
+    (LP: #1887909)
+    - drm/dp: Lenovo X13 Yoga OLED panel brightness fix
+
+  * Realtek [10ec:c82f] Subsystem [17aa:c02f] Wifi adapter not found
+    (LP: #1886247)
+    - SAUCE: rtw88: 8822ce: add support for device ID 0xc82f
+
+  * KVM: Fix zero_page reference counter overflow when using KSM on KVM compute
+    host (LP: #1837810)
+    - KVM: fix overflow of zero page refcount with ksm running
+
+  * Fix missing HDMI Audio on another HP Desktop (LP: #1891617)
+    - ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop
+
+  * alsa/sof: support 1 and 3 dmics (LP: #1891585)
+    - SAUCE: ASoC: SOF: intel: hda: support also devices with 1 and 3 dmics
+
+  * tcp_fastopen_backup_key.sh from net in ubuntu_kernel_selftests failed on
+    Eoan LPAR (LP: #1869134)
+    - tcp: correct read of TFO keys on big endian systems
+
+  * Fix false-negative return value for rtnetlink.sh in kselftests/net
+    (LP: #1890136)
+    - selftests: rtnetlink: correct the final return value for the test
+    - selftests: rtnetlink: make kci_test_encap() return sub-test result
+
+  * Focal update: v5.4.58 upstream stable release (LP: #1891387)
+    - USB: serial: qcserial: add EM7305 QDL product ID
+    - perf/core: Fix endless multiplex timer
+    - USB: iowarrior: fix up report size handling for some devices
+    - usb: xhci: define IDs for various ASMedia host controllers
+    - usb: xhci: Fix ASMedia ASM1142 DMA addressing
+    - io_uring: prevent re-read of sqe->opcode
+    - io_uring: Fix use-after-free in io_sq_wq_submit_work()
+    - Revert "ALSA: hda: call runtime_allow() for all hda controllers"
+    - ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
+    - ALSA: hda/ca0132 - Add new quirk ID for Recon3D.
+    - ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.
+    - ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.
+    - ALSA: seq: oss: Serialize ioctls
+    - staging: android: ashmem: Fix lockdep warning for write operation
+    - staging: rtl8712: handle firmware load failure
+    - Staging: rtl8188eu: rtw_mlme: Fix uninitialized variable authmode
+    - Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
+    - omapfb: dss: Fix max fclk divider for omap36xx
+    - binder: Prevent context manager from incrementing ref 0
+    - Smack: fix use-after-free in smk_write_relabel_self()
+    - scripts: add dummy report mode to add_namespace.cocci
+    - vgacon: Fix for missing check in scrollback handling
+    - mtd: properly check all write ioctls for permissions
+    - leds: wm831x-status: fix use-after-free on unbind
+    - leds: lm36274: fix use-after-free on unbind
+    - leds: da903x: fix use-after-free on unbind
+    - leds: lm3533: fix use-after-free on unbind
+    - leds: 88pm860x: fix use-after-free on unbind
+    - net/9p: validate fds in p9_fd_open
+    - drm/nouveau/fbcon: fix module unload when fbcon init has failed for some
+      reason
+    - drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
+    - drm/drm_fb_helper: fix fbdev with sparc64
+    - i2c: slave: improve sanity check when registering
+    - i2c: slave: add sanity check when unregistering
+    - usb: hso: check for return value in hso_serial_common_create()
+    - net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
+    - ALSA: hda: fix NULL pointer dereference during suspend
+    - firmware: Fix a reference count leak.
+    - cfg80211: check vendor command doit pointer before use
+    - igb: reinit_locked() should be called with rtnl_lock
+    - atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
+    - tools lib traceevent: Fix memory leak in process_dynamic_array_len
+    - Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
+    - xattr: break delegations in {set,remove}xattr
+    - Revert "powerpc/kasan: Fix shadow pages allocation failure"
+    - PCI: tegra: Revert tegra124 raw_violation_fixup
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: fix memory leaks on IPV6_ADDRFORM path
+    - ipv6: Fix nexthop refcnt leak when creating ipv6 route info
+    - net: ethernet: mtk_eth_soc: fix MTU warnings
+    - rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
+    - vxlan: Ensure FDB dump is performed under RCU
+    - net: lan78xx: replace bogus endpoint lookup
+    - appletalk: Fix atalk_proc_init() return path
+    - dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
+    - hv_netvsc: do not use VF device if link is down
+    - net: gre: recompute gre csum for sctp over gre tunnels
+    - net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
+    - openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
+    - Revert "vxlan: fix tos value before xmit"
+    - tcp: apply a floor of 1 for RTT samples from TCP timestamps
+    - ima: move APPRAISE_BOOTPARAM dependency on ARCH_POLICY to runtime
+    - [Config] update annotations for IMA_APPRAISE_BOOTPARAM
+    - nfsd: Fix NFSv4 READ on RDMA when using readv
+    - Linux 5.4.58
+
+  * Focal update: v5.4.57 upstream stable release (LP: #1891064)
+    - random32: update the net random state on interrupt and activity
+    - ARM: percpu.h: fix build error
+    - random: fix circular include dependency on arm64 after addition of percpu.h
+    - random32: remove net_rand_state from the latent entropy gcc plugin
+    - random32: move the pseudo-random 32-bit definitions to prandom.h
+    - arm64: Workaround circular dependency in pointer_auth.h
+    - ext4: fix direct I/O read error
+    - selftests: bpf: Fix detach from sockmap tests
+    - bpf: sockmap: Require attach_bpf_fd when detaching a program
+    - Linux 5.4.57
+
+  * Focal update: v5.4.56 upstream stable release (LP: #1891063)
+    - crypto: ccp - Release all allocated memory if sha type is invalid
+    - media: rc: prevent memory leak in cx23888_ir_probe
+    - sunrpc: check that domain table is empty at module unload.
+    - ath10k: enable transmit data ack RSSI for QCA9884
+    - PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
+    - mm/filemap.c: don't bother dropping mmap_sem for zero size readahead
+    - ALSA: usb-audio: Add implicit feedback quirk for SSL2
+    - ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series
+      with ALC289
+    - ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus
+      G14(GA401) series with ALC289
+    - ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference
+      board (alc256)
+    - ALSA: hda/hdmi: Fix keep_power assignment for non-component devices
+    - IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE
+    - vhost/scsi: fix up req type endian-ness
+    - 9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work
+    - wireless: Use offsetof instead of custom macro.
+    - ARM: 8986/1: hw_breakpoint: Don't invoke overflow handler on uaccess
+      watchpoints
+    - ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2
+    - ARM: dts: imx6sx-sdb: Fix the phy-mode on fec2
+    - ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect
+    - virtio_balloon: fix up endian-ness for free cmd id
+    - Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
+    - drm/amd/display: Clear dm_state for fast updates
+    - drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
+    - drm/dbi: Fix SPI Type 1 (9-bit) transfer
+    - drm: hold gem reference until object is no longer accessed
+    - rds: Prevent kernel-infoleak in rds_notify_queue_get()
+    - libtraceevent: Fix build with binutils 2.35
+    - net/x25: Fix x25_neigh refcnt leak when x25 disconnect
+    - net/x25: Fix null-ptr-deref in x25_disconnect
+    - ARM: dts sunxi: Relax a bit the CMA pool allocation range
+    - xfrm: Fix crash when the hold queue is used.
+    - ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - nvme-tcp: fix possible hang waiting for icresp response
+    - selftests/net: rxtimestamp: fix clang issues for target arch PowerPC
+    - selftests/net: psock_fanout: fix clang issues for target arch PowerPC
+    - selftests/net: so_txtime: fix clang issues for target arch PowerPC
+    - sh/tlb: Fix PGTABLE_LEVELS > 2
+    - sh: Fix validation of system call number
+    - net: hns3: fix a TX timeout issue
+    - net: hns3: fix aRFS FD rules leftover after add a user FD rule
+    - net/mlx5: E-switch, Destroy TSAR when fail to enable the mode
+    - net/mlx5e: Fix error path of device attach
+    - net/mlx5: Verify Hardware supports requested ptp function on a given pin
+    - net/mlx5e: Modify uplink state on interface up/down
+    - net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev
+    - net: lan78xx: add missing endpoint sanity check
+    - net: lan78xx: fix transfer-buffer memory leak
+    - rhashtable: Fix unprotected RCU dereference in __rht_ptr
+    - mlx4: disable device on shutdown
+    - mlxsw: core: Increase scope of RCU read-side critical section
+    - mlxsw: core: Free EMAD transactions using kfree_rcu()
+    - ibmvnic: Fix IRQ mapping disposal in error path
+    - bpf: Fix map leak in HASH_OF_MAPS map
+    - mac80211: mesh: Free ie data when leaving mesh
+    - mac80211: mesh: Free pending skb when destroying a mpath
+    - arm64/alternatives: move length validation inside the subsection
+    - arm64: csum: Fix handling of bad packets
+    - Bluetooth: fix kernel oops in store_pending_adv_report
+    - net: nixge: fix potential memory leak in nixge_probe()
+    - net: gemini: Fix missing clk_disable_unprepare() in error path of
+      gemini_ethernet_port_probe()
+    - net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
+    - perf tools: Fix record failure when mixed with ARM SPE event
+    - vxlan: fix memleak of fdb
+    - usb: hso: Fix debug compile warning on sparc32
+    - selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion
+    - qed: Disable "MFW indication via attention" SPAM every 5 minutes
+    - selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support
+    - nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame
+    - scsi: core: Run queue in case of I/O resource contention failure
+    - parisc: add support for cmpxchg on u8 pointers
+    - net: ethernet: ravb: exit if re-initialization fails in tx timeout
+    - Revert "i2c: cadence: Fix the hold bit setting"
+    - x86/unwind/orc: Fix ORC for newly forked tasks
+    - x86/stacktrace: Fix reliable check for empty user task stacks
+    - cxgb4: add missing release on skb in uld_send()
+    - xen-netfront: fix potential deadlock in xennet_remove()
+    - RISC-V: Set maximum number of mapped pages correctly
+    - drivers/net/wan: lapb: Corrected the usage of skb_cow
+    - KVM: arm64: Don't inherit exec permission across page-table levels
+    - KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw
+      disabled
+    - x86/i8259: Use printk_deferred() to prevent deadlock
+    - perf tests bp_account: Make global variable static
+    - perf env: Do not return pointers to local variables
+    - perf bench: Share some global variables to fix build with gcc 10
+    - Linux 5.4.56
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Thu, 10 Sep 2020 12:12:09 +0200
+
+linux (5.4.0-47.51) focal; urgency=medium
+
+  * focal/linux: 5.4.0-47.51 -proposed tracker (LP: #1894315)
+
+  * CVE-2020-14386
+    - SAUCE: net/packet: fix overflow in tpacket_rcv
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 04 Sep 2020 16:08:25 -0300
+
+linux (5.4.0-45.49) focal; urgency=medium
+
+  * focal/linux: 5.4.0-45.49 -proposed tracker (LP: #1893050)
+
+  * [Potential Regression] dscr_inherit_exec_test from powerpc in
+    ubuntu_kernel_selftests failed on B/E/F (LP: #1888332)
+    - powerpc/64s: Don't init FSCR_DSCR in __init_FSCR()
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 26 Aug 2020 15:15:45 +0200
+
+linux (5.4.0-44.48) focal; urgency=medium
+
+  * focal/linux: 5.4.0-44.48 -proposed tracker (LP: #1891049)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * ipsec: policy priority management is broken (LP: #1890796)
+    - xfrm: policy: match with both mark and mask on user interfaces
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Mon, 10 Aug 2020 14:57:15 -0600
+
+linux (5.4.0-43.47) focal; urgency=medium
+
+  * focal/linux: 5.4.0-43.47 -proposed tracker (LP: #1890746)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Devlink -  add RoCE disable kernel support  (LP: #1877270)
+    - devlink: Add new "enable_roce" generic device param
+    - net/mlx5: Document flow_steering_mode devlink param
+    - net/mlx5: Handle "enable_roce" devlink param
+    - IB/mlx5: Rename profile and init methods
+    - IB/mlx5: Load profile according to RoCE enablement state
+    - net/mlx5: Remove unneeded variable in mlx5_unload_one
+    - net/mlx5: Add devlink reload
+    - IB/mlx5: Do reverse sequence during device removal
+
+  * msg_zerocopy.sh in net from ubuntu_kernel_selftests failed (LP: #1812620)
+    - selftests/net: relax cpu affinity requirement in msg_zerocopy test
+
+  * Enlarge hisi_sec2 capability (LP: #1890222)
+    - Revert "UBUNTU: [Config] Disable hisi_sec2 temporarily"
+    - crypto: hisilicon - update SEC driver module parameter
+
+  * Fix missing HDMI/DP Audio on an HP Desktop (LP: #1890441)
+    - ALSA: hda/hdmi: Add quirk to force connectivity
+
+  * Fix IOMMU error on AMD Radeon Pro W5700 (LP: #1890306)
+    - PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken
+
+  * ASoC:amd:renoir:  the dmic can't record sound after suspend and resume
+    (LP: #1890220)
+    - SAUCE: ASoC: amd: renoir: restore two more registers during resume
+
+  * No sound, Dummy output on Acer Swift 3 SF314-57G with Ice Lake core-i7  CPU
+    (LP: #1877757)
+    - ASoC: SOF: Intel: hda: fix generic hda codec support
+
+  * Fix right speaker of HP laptop (LP: #1889375)
+    - SAUCE: hda/realtek: Fix right speaker of HP laptop
+
+  * blk_update_request error when mount nvme partition (LP: #1872383)
+    - SAUCE: nvme-pci: prevent SK hynix PC400 from using Write Zeroes command
+
+  * soc/amd/renoir: detect dmic from acpi table (LP: #1887734)
+    - ASoC: amd: add logic to check dmic hardware runtime
+    - ASoC: amd: add ACPI dependency check
+    - ASoC: amd: fixed kernel warnings
+
+  * soc/amd/renoir: change the module name to make it work with ucm3
+    (LP: #1888166)
+    - AsoC: amd: add missing snd- module prefix to the acp3x-rn driver kernel
+      module
+    - SAUCE: remove a kernel module since its name is changed
+
+  * Focal update: v5.4.55 upstream stable release (LP: #1890343)
+    - AX.25: Fix out-of-bounds read in ax25_connect()
+    - AX.25: Prevent out-of-bounds read in ax25_sendmsg()
+    - dev: Defer free of skbs in flush_backlog
+    - drivers/net/wan/x25_asy: Fix to make it work
+    - ip6_gre: fix null-ptr-deref in ip6gre_init_net()
+    - net-sysfs: add a newline when printing 'tx_timeout' by sysfs
+    - net: udp: Fix wrong clean up for IS_UDPLITE macro
+    - qrtr: orphan socket in qrtr_release()
+    - rtnetlink: Fix memory(net_device) leak when ->newlink fails
+    - rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA
+    - tcp: allow at most one TLP probe per flight
+    - AX.25: Prevent integer overflows in connect and sendmsg
+    - sctp: shrink stream outq only when new outcnt < old outcnt
+    - sctp: shrink stream outq when fails to do addstream reconf
+    - udp: Copy has_conns in reuseport_grow().
+    - udp: Improve load balancing for SO_REUSEPORT.
+    - regmap: debugfs: check count when read regmap file
+    - PM: wakeup: Show statistics for deleted wakeup sources again
+    - Revert "dpaa_eth: fix usage as DSA master, try 3"
+    - Linux 5.4.55
+
+  * Add support for Atlantic NIC firmware v4 (LP: #1886908)
+    - net: atlantic: simplify hw_get_fw_version() usage
+    - net: atlantic: align return value of ver_match function with function name
+    - net: atlantic: add support for FW 4.x
+
+  * perf vendor events s390: Add new deflate counters for IBM z15 (LP: #1888551)
+    - perf vendor events s390: Add new deflate counters for IBM z15
+
+  * Focal update: v5.4.54 upstream stable release (LP: #1889669)
+    - soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
+    - gpio: arizona: handle pm_runtime_get_sync failure case
+    - gpio: arizona: put pm_runtime in case of failure
+    - pinctrl: amd: fix npins for uart0 in kerncz_groups
+    - mac80211: allow rx of mesh eapol frames with default rx key
+    - scsi: scsi_transport_spi: Fix function pointer check
+    - xtensa: fix __sync_fetch_and_{and,or}_4 declarations
+    - xtensa: update *pos in cpuinfo_op.next
+    - scsi: mpt3sas: Fix unlock imbalance
+    - drivers/net/wan/lapbether: Fixed the value of hard_header_len
+    - ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
+    - net: sky2: initialize return of gm_phy_read
+    - drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
+    - scsi: mpt3sas: Fix error returns in BRM_status_show
+    - scsi: dh: Add Fujitsu device to devinfo and dh lists
+    - dm: use bio_uninit instead of bio_disassociate_blkg
+    - drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
+    - fuse: fix weird page warning
+    - irqdomain/treewide: Keep firmware node unconditionally allocated
+    - ARM: dts: imx6qdl-gw551x: Do not use 'simple-audio-card,dai-link'
+    - ARM: dts: imx6qdl-gw551x: fix audio SSI
+    - dmabuf: use spinlock to access dmabuf->name
+    - drm/amd/display: Check DMCU Exists Before Loading
+    - SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO
+      compeletion")
+    - btrfs: reloc: fix reloc root leak and NULL pointer dereference
+    - btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway
+      balance
+    - uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix
+      GDB regression
+    - ALSA: hda/realtek: Fixed ALC298 sound bug by adding quirk for Samsung
+      Notebook Pen S
+    - ALSA: info: Drop WARN_ON() from buffer NULL sanity check
+    - ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
+    - btrfs: fix double free on ulist after backref resolution failure
+    - btrfs: fix mount failure caused by race with umount
+    - btrfs: fix page leaks after failure to lock page for delalloc
+    - bnxt_en: Fix race when modifying pause settings.
+    - bnxt_en: Fix completion ring sizing with TPA enabled.
+    - fpga: dfl: pci: reduce the scope of variable 'ret'
+    - fpga: dfl: fix bug in port reset handshake
+    - hippi: Fix a size used in a 'pci_free_consistent()' in an error handling
+      path
+    - vsock/virtio: annotate 'the_virtio_vsock' RCU pointer
+    - ax88172a: fix ax88172a_unbind() failures
+    - RDMA/mlx5: Use xa_lock_irq when access to SRQ table
+    - ASoC: Intel: bytcht_es8316: Add missed put_device()
+    - net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual
+      configuration
+    - ieee802154: fix one possible memleak in adf7242_probe
+    - drm: sun4i: hdmi: Fix inverted HPD result
+    - net: smc91x: Fix possible memory leak in smc_drv_probe()
+    - bonding: check error value of register_netdevice() immediately
+    - mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
+    - ionic: use offset for ethtool regs data
+    - ionic: fix up filter locks and debug msgs
+    - net: ag71xx: add missed clk_disable_unprepare in error path of probe
+    - net: hns3: fix error handling for desc filling
+    - net: dsa: microchip: call phy_remove_link_mode during probe
+    - netdevsim: fix unbalaced locking in nsim_create()
+    - qed: suppress "don't support RoCE & iWARP" flooding on HW init
+    - qed: suppress false-positives interrupt error messages on HW init
+    - ipvs: fix the connection sync failed in some cases
+    - net: ethernet: ave: Fix error returns in ave_init
+    - Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms"
+    - nfsd4: fix NULL dereference in nfsd/clients display code
+    - enetc: Remove the mdio bus on PF probe bailout
+    - i2c: rcar: always clear ICSAR to avoid side effects
+    - i2c: i2c-qcom-geni: Fix DMA transfer race
+    - bonding: check return value of register_netdevice() in bond_newlink()
+    - geneve: fix an uninitialized value in geneve_changelink()
+    - serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
+    - scripts/decode_stacktrace: strip basepath from all paths
+    - scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
+    - HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
+    - HID: alps: support devices with report id 2
+    - HID: steam: fixes race in handling device list.
+    - HID: apple: Disable Fn-key key-re-mapping on clone keyboards
+    - dmaengine: tegra210-adma: Fix runtime PM imbalance on error
+    - Input: add `SW_MACHINE_COVER`
+    - ARM: dts: n900: remove mmc1 card detect gpio
+    - spi: mediatek: use correct SPI_CFG2_REG MACRO
+    - regmap: dev_get_regmap_match(): fix string comparison
+    - hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
+    - dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu
+    - dmaengine: ioat setting ioat timeout as module parameter
+    - Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
+    - Input: elan_i2c - only increment wakeup count on touch
+    - usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant
+    - usb: dwc3: pci: add support for the Intel Jasper Lake
+    - usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
+    - usb: cdns3: ep0: fix some endian issues
+    - usb: cdns3: trace: fix some endian issues
+    - hwmon: (adm1275) Make sure we are reading enough data for different chips
+    - drm/amdgpu/gfx10: fix race condition for kiq
+    - drm/amdgpu: fix preemption unit test
+    - hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D
+    - platform/x86: ISST: Add new PCI device ids
+    - platform/x86: asus-wmi: allow BAT1 battery name
+    - hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
+    - ALSA: hda/realtek - fixup for yet another Intel reference board
+    - drivers/perf: Fix kernel panic when rmmod PMU modules during perf sampling
+    - arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
+    - x86: math-emu: Fix up 'cmp' insn for clang ias
+    - asm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible()
+    - drivers/perf: Prevent forced unbinding of PMU drivers
+    - RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
+    - binder: Don't use mmput() from shrinker function.
+    - usb: xhci-mtk: fix the failure of bandwidth allocation
+    - usb: xhci: Fix ASM2142/ASM3142 DMA addressing
+    - Revert "cifs: Fix the target file was deleted when rename failed."
+    - iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU
+    - tty: xilinx_uartps: Really fix id assignment
+    - staging: wlan-ng: properly check endpoint types
+    - staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
+    - staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
+    - staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
+    - staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
+    - serial: tegra: fix CREAD handling for PIO
+    - serial: 8250: fix null-ptr-deref in serial8250_start_tx()
+    - serial: 8250_mtk: Fix high-speed baud rates clamping
+    - /dev/mem: Add missing memory barriers for devmem_inode
+    - fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
+    - vt: Reject zero-sized screen buffer size.
+    - Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
+    - mm/mmap.c: close race between munmap() and expand_upwards()/downwards()
+    - mm/memcg: fix refcount error while moving and swapping
+    - mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
+    - khugepaged: fix null-pointer dereference due to race
+    - io-mapping: indicate mapping failure
+    - mmc: sdhci-of-aspeed: Fix clock divider calculation
+    - drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
+    - drm/amd/powerplay: fix a crash when overclocking Vega M
+    - parisc: Add atomic64_set_release() define to avoid CPU soft lockups
+    - x86, vmlinux.lds: Page-align end of ..page_aligned sections
+    - ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo
+      Miix 2 10
+    - ASoC: qcom: Drop HAS_DMA dependency to fix link failure
+    - ASoC: topology: fix kernel oops on route addition error
+    - ASoC: topology: fix tlvs in error handling for widget_dmixer
+    - dm integrity: fix integrity recalculation that is improperly skipped
+    - ath9k: Fix regression with Atheros 9271
+    - Linux 5.4.54
+
+  * Focal update: v5.4.53 upstream stable release (LP: #1888560)
+    - crypto: atmel - Fix selection of CRYPTO_AUTHENC
+    - crypto: atmel - Fix build error of CRYPTO_AUTHENC
+    - net: atlantic: fix ip dst and ipv6 address filters
+    - net: rmnet: fix lower interface leak
+    - bridge: mcast: Fix MLD2 Report IPv6 payload length check
+    - genetlink: remove genl_bind
+    - ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg
+    - ipv6: fib6_select_path can not use out path for nexthop objects
+    - ipv6: Fix use of anycast address with loopback
+    - l2tp: remove skb_dst_set() from l2tp_xmit_skb()
+    - llc: make sure applications use ARPHRD_ETHER
+    - net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
+    - net_sched: fix a memory leak in atm_tc_init()
+    - sched: consistently handle layer3 header accesses in the presence of VLANs
+    - tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
+    - tcp: make sure listeners don't initialize congestion-control state
+    - tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
+    - tcp: md5: do not send silly options in SYNCOOKIES
+    - vlan: consolidate VLAN parsing code and limit max parsing depth
+    - tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
+    - tcp: md5: allow changing MD5 keys in all socket states
+    - cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
+    - cgroup: Fix sock_cgroup_data on big-endian.
+    - ip: Fix SO_MARK in RST, ACK and ICMP packets
+    - arm64: Introduce a way to disable the 32bit vdso
+    - arm64: arch_timer: Allow an workaround descriptor to disable compat vdso
+    - arm64: arch_timer: Disable the compat vdso for cores affected by
+      ARM64_WORKAROUND_1418040
+    - drm/msm: fix potential memleak in error branch
+    - drm/msm/dpu: allow initialization of encoder locks during encoder init
+    - drm/exynos: Properly propagate return value in drm_iommu_attach_device()
+    - drm/exynos: fix ref count leak in mic_pre_enable
+    - x86/fpu: Reset MXCSR to default in kernel_fpu_begin()
+    - thermal/drivers: imx: Fix missing of_node_put() at probe time
+    - blk-mq-debugfs: update blk_queue_flag_name[] accordingly for new flags
+    - m68k: nommu: register start of the memory with memblock
+    - m68k: mm: fix node memblock init
+    - dt-bindings: mailbox: zynqmp_ipi: fix unit address
+    - cifs: prevent truncation from long to int in wait_for_free_credits
+    - arm64/alternatives: use subsections for replacement sequences
+    - tpm_tis: extra chip->ops check on error path in tpm_tis_core_init
+    - gfs2: read-only mounts should grab the sd_freeze_gl glock
+    - i2c: eg20t: Load module automatically if ID matches
+    - arm64/alternatives: don't patch up internal branches
+    - iio:magnetometer:ak8974: Fix alignment and data leak issues
+    - iio:humidity:hdc100x Fix alignment and data leak issues
+    - iio: magnetometer: ak8974: Fix runtime PM imbalance on error
+    - iio: core: add missing IIO_MOD_H2/ETHANOL string identifiers
+    - iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
+    - iio: pressure: zpa2326: handle pm_runtime_get_sync failure
+    - iio:humidity:hts221 Fix alignment and data leak issues
+    - iio:pressure:ms5611 Fix buffer element alignment
+    - iio:health:afe4403 Fix timestamp alignment and prevent data leak.
+    - spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer
+    - net: dsa: bcm_sf2: Fix node reference count
+    - of: of_mdio: Correct loop scanning logic
+    - net: macb: call pm_runtime_put_sync on failure path
+    - net: ethernet: mvneta: Do not error out in non serdes modes
+    - net: ethernet: mvneta: Add back interface mode validation
+    - Revert "usb/ohci-platform: Fix a warning when hibernating"
+    - Revert "usb/ehci-platform: Set PM runtime as active on resume"
+    - Revert "usb/xhci-plat: Set PM runtime as active on resume"
+    - net: sfp: add support for module quirks
+    - net: sfp: add some quirks for GPON modules
+    - ARM: OMAP4+: remove pdata quirks for omap4+ iommus
+    - ARM: OMAP2+: Add workaround for DRA7 DSP MStandby errata i879
+    - ARM: OMAP2+: use separate IOMMU pdata to fix DRA7 IPU1 boot
+    - mmc: mmci: Support any block sizes for ux500v2 and qcom variant
+    - HID: quirks: Remove ITE 8595 entry from hid_have_special_driver
+    - ARM: at91: pm: add quirk for sam9x60's ulp1
+    - drm/sun4i: tcon: Separate quirks for tcon0 and tcon1 on A20
+    - scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled
+    - [Config] updateconfigs for BLK_DEV_SR_VENDOR
+    - bus: ti-sysc: Rename clk related quirks to pre_reset and post_reset quirks
+    - bus: ti-sysc: Consider non-existing registers too when matching quirks
+    - bus: ti-sysc: Handle module unlock quirk needed for some RTC
+    - bus: ti-sysc: Detect display subsystem related devices
+    - arm64: dts: g12-common: add parkmode_disable_ss_quirk on DWC3 controller
+    - bus: ti-sysc: Detect EDMA and set quirk flags for tptc
+    - ALSA: usb-audio: Add support for MOTU MicroBook IIc
+    - Input: goodix - fix touch coordinates on Cube I15-TC
+    - ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp
+      (0951:16d8)
+    - doc: dt: bindings: usb: dwc3: Update entries for disabling SS instances in
+      park mode
+    - mmc: sdhci: do not enable card detect interrupt for gpio cd type
+    - ALSA: usb-audio: Rewrite registration quirk handling
+    - ACPI: video: Use native backlight on Acer Aspire 5783z
+    - ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S
+    - ALSA: usb-audio: Add quirk for Focusrite Scarlett 2i2
+    - Input: mms114 - add extra compatible for mms345l
+    - ACPI: video: Use native backlight on Acer TravelMate 5735Z
+    - bus: ti-sysc: Use optional clocks on for enable and wait for softreset bit
+    - ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight S
+    - iio:health:afe4404 Fix timestamp alignment and prevent data leak.
+    - soundwire: intel: fix memory leak with devm_kasprintf
+    - dmaengine: sh: usb-dmac: set tx_result parameters
+    - phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked
+    - arm64: dts: meson: add missing gxl rng clock
+    - arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
+    - bus: ti-sysc: Fix wakeirq sleeping function called from invalid context
+    - bus: ti-sysc: Fix sleeping function called from invalid context for RTC
+      quirk
+    - bus: ti-sysc: Do not disable on suspend for no-idle
+    - iio: adc: ad7780: Fix a resource handling path in 'ad7780_probe()'
+    - dmaengine: dw: Initialize channel before each transfer
+    - dmaengine: dmatest: stop completed threads when running without set channel
+    - spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate
+    - usb: gadget: udc: atmel: fix uninitialized read in debug printk
+    - staging: comedi: verify array index is correct before using it
+    - clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER
+    - clk: AST2600: Add mux for EMMC clock
+    - NFS: Fix interrupted slots by sending a solo SEQUENCE operation
+    - fuse: don't ignore errors from fuse_writepages_fill()
+    - ARM: dts: Fix dcan driver probe failed on am437x platform
+    - Revert "thermal: mediatek: fix register index error"
+    - xprtrdma: fix incorrect header size calculations
+    - ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema
+    - arm64: dts: spcfpga: Align GIC, NAND and UART nodenames with dtschema
+    - keys: asymmetric: fix error return code in software_key_query()
+    - regmap: debugfs: Don't sleep while atomic for fast_io regmaps
+    - copy_xstate_to_kernel: Fix typo which caused GDB regression
+    - arm: dts: mt7623: add phy-mode property for gmac2
+    - soc: qcom: socinfo: add missing soc_id sysfs entry
+    - habanalabs: Align protection bits configuration of all TPCs
+    - PCI/PM: Call .bridge_d3() hook only if non-NULL
+    - perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode
+    - soc: qcom: rpmh: Update dirty flag only when data changes
+    - soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
+    - soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS
+    - soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request
+    - RDMA/mlx5: Verify that QP is created with RQ or SQ
+    - mtd: rawnand: marvell: Fix the condition on a return code
+    - mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet
+      registered
+    - mtd: rawnand: marvell: Fix probe error path
+    - mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
+    - mtd: rawnand: brcmnand: correctly verify erased pages
+    - mtd: rawnand: brcmnand: fix CS0 layout
+    - mtd: rawnand: oxnas: Keep track of registered devices
+    - mtd: rawnand: oxnas: Unregister all devices on error
+    - mtd: rawnand: oxnas: Release all devices in the _remove() path
+    - clk: qcom: gcc: Add GPU and NPU clocks for SM8150
+    - clk: qcom: gcc: Add missing UFS clocks for SM8150
+    - slimbus: core: Fix mismatch in of_node_get/put
+    - HID: logitech-hidpp: avoid repeated "multiplier = " log messages
+    - HID: magicmouse: do not set up autorepeat
+    - HID: quirks: Always poll Obins Anne Pro 2 keyboard
+    - HID: quirks: Ignore Simply Automated UPB PIM
+    - ALSA: line6: Perform sanity check for each URB creation
+    - ALSA: line6: Sync the pending work cancel at disconnection
+    - ALSA: usb-audio: Fix race against the error recovery URB submission
+    - ALSA: hda/realtek - change to suitable link model for ASUS platform
+    - ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series
+      with ALC289
+    - ALSA: hda/realtek: Enable headset mic of Acer TravelMate B311R-31 with
+      ALC256
+    - ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
+    - ALSA: hda/realtek - Enable Speaker for ASUS UX563
+    - USB: c67x00: fix use after free in c67x00_giveback_urb
+    - usb: dwc2: Fix shutdown callback in platform
+    - usb: chipidea: core: add wakeup support for extcon
+    - usb: gadget: function: fix missing spinlock in f_uac1_legacy
+    - USB: serial: iuu_phoenix: fix memory corruption
+    - USB: serial: cypress_m8: enable Simply Automated UPB PIM
+    - USB: serial: ch341: add new Product ID for CH340
+    - USB: serial: option: add GosunCn GM500 series
+    - virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match
+      upstream
+    - virt: vbox: Fix guest capabilities mask check
+    - Revert "tty: xilinx_uartps: Fix missing id assignment to the console"
+    - virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial
+    - serial: mxs-auart: add missed iounmap() in probe failure and remove
+    - ovl: fix regression with re-formatted lower squashfs
+    - ovl: inode reference leak in ovl_is_inuse true case.
+    - ovl: relax WARN_ON() when decoding lower directory file handle
+    - ovl: fix unneeded call to ovl_change_flags()
+    - fuse: ignore 'data' argument of mount(..., MS_REMOUNT)
+    - fuse: use ->reconfigure() instead of ->remount_fs()
+    - fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS
+    - Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"
+    - mei: bus: don't clean driver pointer
+    - Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list
+    - uio_pdrv_genirq: Remove warning when irq is not specified
+    - uio_pdrv_genirq: fix use without device tree and no interrupt
+    - scsi: megaraid_sas: Remove undefined ENABLE_IRQ_POLL macro
+    - timer: Prevent base->clk from moving backward
+    - timer: Fix wheel index calculation on last level
+    - riscv: use 16KB kernel stack on 64-bit
+    - hwmon: (emc2103) fix unable to change fan pwm1_enable attribute
+    - powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey
+    - powerpc/pseries/svm: Fix incorrect check for shared_lppaca_size
+    - intel_th: pci: Add Jasper Lake CPU support
+    - intel_th: pci: Add Tiger Lake PCH-H support
+    - intel_th: pci: Add Emmitsburg PCH support
+    - intel_th: Fix a NULL dereference when hub driver is not loaded
+    - dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
+    - dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler
+    - dmaengine: fsl-edma-common: correct DSIZE_32BYTE
+    - misc: atmel-ssc: lock with mutex instead of spinlock
+    - thermal: int3403_thermal: Downgrade error message
+    - thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power
+    - arm64: ptrace: Override SPSR.SS when single-stepping is enabled
+    - arm64: ptrace: Consistently use pseudo-singlestep exceptions
+    - arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return
+    - sched: Fix unreliable rseq cpu_id for new tasks
+    - sched/fair: handle case of task_h_load() returning 0
+    - genirq/affinity: Handle affinity setting on inactive interrupts correctly
+    - drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()
+    - drm/i915/gt: Ignore irq enabling on the virtual engines
+    - block: fix splitting segments on boundary masks
+    - block: fix get_max_segment_size() overflow on 32bit arch
+    - libceph: don't omit recovery_deletes in target_copy()
+    - rxrpc: Fix trace string
+    - spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH
+    - ionic: export features for vlans to use
+    - iommu/vt-d: Make Intel SVM code 64-bit only
+    - drm/i915/gvt: Fix two CFL MMIO handling caused by regression.
+    - gpio: pca953x: disable regmap locking for automatic address incrementing
+    - Linux 5.4.53
+
+  * linux-libc-dev broken for crossbuilding, Multi-Arch:same violation
+    (LP: #1886188)
+    - [Packaging] Produce linux-libc-dev package for riscv64
+    - [Debian] Disallow building linux-libc-dev from linux-riscv
+
+  * [UBUNTU 20.04] DIF and DIX support in zfcp (s390x) is broken and the kernel
+    crashes unconditionally (LP: #1887124)
+    - scsi: zfcp: signal incomplete or error for sync exchange config/port data
+    - scsi: zfcp: diagnostics buffer caching and use for exchange port data
+    - scsi: zfcp: add diagnostics buffer for exchange config data
+    - scsi: zfcp: support retrieval of SFP Data via Exchange Port Data
+    - scsi: zfcp: introduce sysfs interface for diagnostics of local SFP
+      transceiver
+    - scsi: zfcp: implicitly refresh port-data diagnostics when reading sysfs
+    - scsi: zfcp: introduce sysfs interface to read the local B2B-Credit
+    - scsi: zfcp: implicitly refresh config-data diagnostics when reading sysfs
+    - scsi: zfcp: move maximum age of diagnostic buffers into a per-adapter
+      variable
+    - scsi: zfcp: proper indentation to reduce confusion in zfcp_erp_required_act
+    - scsi: zfcp: fix wrong data and display format of SFP+ temperature
+    - scsi: zfcp: expose fabric name as common fc_host sysfs attribute
+    - scsi: zfcp: wire previously driver-specific sysfs attributes also to fc_host
+    - scsi: zfcp: fix fc_host attributes that should be unknown on local link down
+    - scsi: zfcp: auto variables for dereferenced structs in open port handler
+    - scsi: zfcp: report FC Endpoint Security in sysfs
+    - scsi: zfcp: log FC Endpoint Security of connections
+    - scsi: zfcp: trace FC Endpoint Security of FCP devices and connections
+    - scsi: zfcp: enhance handling of FC Endpoint Security errors
+    - scsi: zfcp: log FC Endpoint Security errors
+    - scsi: zfcp: use fallthrough;
+    - scsi: zfcp: Move shost modification after QDIO (re-)open into fenced
+      function
+    - scsi: zfcp: Move shost updates during xconfig data handling into fenced
+      function
+    - scsi: zfcp: Move fc_host updates during xport data handling into fenced
+      function
+    - scsi: zfcp: Fence fc_host updates during link-down handling
+    - scsi: zfcp: Move p-t-p port allocation to after xport data
+    - scsi: zfcp: Fence adapter status propagation for common statuses
+    - scsi: zfcp: Fence early sysfs interfaces for accesses of shost objects
+    - scsi: zfcp: Move allocation of the shost object to after xconf- and xport-
+      data
+
+  * Enable Quectel EG95 LTE modem [2c7c:0195]  (LP: #1886744)
+    - net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
+    - USB: serial: option: add Quectel EG95 LTE modem
+
+  * Kernel Regression between 5.4.0-26 and 5.4.0-40 causes laptop internal audio
+    devices to fail to load w/o unacceptable workaround (Lenovo IdeaPad 5
+    15IIL05) (LP: #1886341)
+    - ASoC: SOF: intel: hda: Modify signature for hda_codec_probe_bus()
+    - ASoC: SOF: Intel: drop HDA codec upon probe failure
+    - ASoC: SOF: Intel: hda: move i915 init earlier
+
+  * [UBUNTU 20.04] smc: SMC connections hang with later-level implementations
+    (LP: #1882088)
+    - net/smc: tolerate future SMCD versions
+
+  * zfs: backport AES-GCM performance accelleration (LP: #1881107)
+    - debian/dkms-versions: update ZFS dkms package version (LP: #1881107)
+
+  * Regression in kernel 4.15.0-91 causes kernel panic with Bcache
+    (LP: #1867916)
+    - bcache: check and adjust logical block size for backing devices
+
+  * [SRU][OEM-5.6/U] Fix r8117 firmware base issue (LP: #1885072)
+    - r8169: add helper r8168g_phy_param
+    - r8169: add support for RTL8117
+    - r8169: load firmware for RTL8168fp/RTL8117
+    - r8169: fix OCP access on RTL8117
+    - r8169: fix firmware not resetting tp->ocp_base
+
+  * [UBUNTU 20.04] Deflate counters reported by lscpumf are not valid or
+    available with perf (LP: #1881096)
+    - s390/cpum_cf: Add new extended counters for IBM z15
+
+  * shiftfs: O_TMPFILE reports ESTALE (LP: #1872757)
+    - SAUCE: shiftfs: prevent ESTALE for LOOKUP_JUMP lookups
+
+  * shiftfs: fix btrfs regression (LP: #1884767)
+    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: fix dentry revalidation"
+
+  * Focal update: v5.4.52 upstream stable release (LP: #1887853)
+    - KVM: s390: reduce number of IO pins to 1
+    - spi: spi-fsl-dspi: Adding shutdown hook
+    - spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer
+    - regmap: fix alignment issue
+    - perf/x86/rapl: Move RAPL support to common x86 code
+    - perf/x86/rapl: Fix RAPL config variable bug
+    - [Packaging] module intel-rapl-perf rename
+    - ARM: dts: omap4-droid4: Fix spi configuration and increase rate
+    - drm/ttm: Fix dma_fence refcnt leak when adding move fence
+    - drm/tegra: hub: Do not enable orphaned window group
+    - gpu: host1x: Detach driver on unregister
+    - drm: mcde: Fix display initialization problem
+    - ASoC: SOF: Intel: add PCI ID for CometLake-S
+    - ALSA: hda: Intel: add missing PCI IDs for ICL-H, TGL-H and EKL
+    - spi: spidev: fix a race between spidev_release and spidev_remove
+    - spi: spidev: fix a potential use-after-free in spidev_release()
+    - net: ethernet: mvneta: Fix Serdes configuration for SoCs without comphy
+    - net: ethernet: mvneta: Add 2500BaseX support for SoCs without comphy
+    - ixgbe: protect ring accesses with READ- and WRITE_ONCE
+    - i40e: protect ring accesses with READ- and WRITE_ONCE
+    - ibmvnic: continue to init in CRQ reset returns H_CLOSED
+    - powerpc/kvm/book3s64: Fix kernel crash with nested kvm & DEBUG_VIRTUAL
+    - iommu/vt-d: Don't apply gfx quirks to untrusted devices
+    - drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
+    - drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
+    - s390/kasan: fix early pgm check handler execution
+    - cifs: update ctime and mtime during truncate
+    - ARM: imx6: add missing put_device() call in imx6q_suspend_init()
+    - scsi: mptscsih: Fix read sense data size
+    - usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
+    - block: release bip in a right way in error path
+    - nvme-rdma: assign completion vector correctly
+    - x86/entry: Increase entry_stack size to a full page
+    - sched/core: Check cpus_mask, not cpus_ptr in __set_cpus_allowed_ptr(), to
+      fix mask corruption
+    - net: qrtr: Fix an out of bounds read qrtr_endpoint_post()
+    - gpio: pca953x: Override IRQ for one of the expanders on Galileo Gen 2
+    - gpio: pca953x: Fix GPIO resource leak on Intel Galileo Gen 2
+    - nl80211: don't return err unconditionally in nl80211_start_ap()
+    - drm/mediatek: Check plane visibility in atomic_update
+    - bpf, sockmap: RCU splat with redirect and strparser error or TLS
+    - bpf, sockmap: RCU dereferenced psock may be used outside RCU block
+    - netfilter: ipset: call ip_set_free() instead of kfree()
+    - net: mvneta: fix use of state->speed
+    - net: cxgb4: fix return error value in t4_prep_fw
+    - IB/sa: Resolv use-after-free in ib_nl_make_request()
+    - net: dsa: microchip: set the correct number of ports
+    - netfilter: conntrack: refetch conntrack after nf_conntrack_update()
+    - perf report TUI: Fix segmentation fault in perf_evsel__hists_browse()
+    - perf intel-pt: Fix recording PEBS-via-PT with registers
+    - perf intel-pt: Fix PEBS sample for XMM registers
+    - smsc95xx: check return value of smsc95xx_reset
+    - smsc95xx: avoid memory leak in smsc95xx_bind
+    - net: hns3: add a missing uninit debugfs when unload driver
+    - net: hns3: fix use-after-free when doing self test
+    - ALSA: compress: fix partial_drain completion state
+    - RDMA/siw: Fix reporting vendor_part_id
+    - arm64: kgdb: Fix single-step exception handling oops
+    - nbd: Fix memory leak in nbd_add_socket
+    - cxgb4: fix all-mask IP address comparison
+    - IB/mlx5: Fix 50G per lane indication
+    - qed: Populate nvm-file attributes while reading nvm config partition.
+    - net/mlx5: Fix eeprom support for SFP module
+    - net/mlx5e: Fix 50G per lane indication
+    - bnxt_en: fix NULL dereference in case SR-IOV configuration fails
+    - net: macb: fix wakeup test in runtime suspend/resume routines
+    - net: macb: mark device wake capable when "magic-packet" property present
+    - net: macb: fix call to pm_runtime in the suspend/resume functions
+    - mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
+    - mlxsw: pci: Fix use-after-free in case of failed devlink reload
+    - IB/hfi1: Do not destroy hfi1_wq when the device is shut down
+    - IB/hfi1: Do not destroy link_wq when the device is shut down
+    - ALSA: opl3: fix infoleak in opl3
+    - ALSA: hda - let hs_mic be picked ahead of hp_mic
+    - ALSA: usb-audio: add quirk for MacroSilicon MS2109
+    - ALSA: usb-audio: Add implicit feedback quirk for RTX6001
+    - ALSA: hda/realtek - Fix Lenovo Thinkpad X1 Carbon 7th quirk subdevice id
+    - ALSA: hda/realtek - Enable audio jacks of Acer vCopperbox with ALC269VC
+    - ALSA: hda/realtek: Enable headset mic of Acer C20-820 with ALC269VC
+    - ALSA: hda/realtek: Enable headset mic of Acer Veriton N4660G with ALC269VC
+    - KVM: arm64: Fix definition of PAGE_HYP_DEVICE
+    - KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART
+    - KVM: arm64: Annotate hyp NMI-related functions as __always_inline
+    - KVM: x86: bit 8 of non-leaf PDPEs is not reserved
+    - KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
+    - KVM: x86: Mark CR4.TSD as being possibly owned by the guest
+    - KVM: arm64: Fix kvm_reset_vcpu() return code being incorrect with SVE
+    - kallsyms: Refactor kallsyms_show_value() to take cred
+    - module: Refactor section attr into bin attribute
+    - module: Do not expose section addresses to non-CAP_SYSLOG
+    - kprobes: Do not expose probe addresses to non-CAP_SYSLOG
+    - bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
+    - btrfs: fix fatal extent_buffer readahead vs releasepage race
+    - btrfs: fix double put of block group with nocow
+    - drm/radeon: fix double free
+    - drm/amdgpu: don't do soft recovery if gpu_recovery=0
+    - dm: use noio when sending kobject event
+    - mmc: meson-gx: limit segments to 1 when dram-access-quirk is needed
+    - ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
+    - ARC: elf: use right ELF_ARCH
+    - s390/setup: init jump labels before command line parsing
+    - s390/mm: fix huge pte soft dirty copying
+    - blk-mq: consider non-idle request as "inflight" in blk_mq_rq_inflight()
+    - dm writecache: reject asynchronous pmem devices
+    - perf scripts python: export-to-postgresql.py: Fix struct.pack() int argument
+    - perf scripts python: exported-sql-viewer.py: Fix zero id in call graph
+      'Find' result
+    - perf scripts python: exported-sql-viewer.py: Fix zero id in call tree 'Find'
+      result
+    - perf scripts python: exported-sql-viewer.py: Fix unexpanded 'Find' result
+    - pwm: jz4740: Fix build failure
+    - s390: Change s390_kernel_write() return type to match memcpy()
+    - s390/maccess: add no DAT mode to kernel_write
+    - Linux 5.4.52
+
+  * Focal update: v5.4.45 upstream stable release (LP: #1882802) // Focal
+    update: v5.4.52 upstream stable release (LP: #1887853)
+    - Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race
+      window"
+
+  * Focal update: v5.4.51 upstream stable release (LP: #1886995)
+    - io_uring: make sure async workqueue is canceled on exit
+    - mm: fix swap cache node allocation mask
+    - EDAC/amd64: Read back the scrub rate PCI register on F15h
+    - usbnet: smsc95xx: Fix use-after-free after removal
+    - sched/debug: Make sd->flags sysctl read-only
+    - mm/slub.c: fix corrupted freechain in deactivate_slab()
+    - mm/slub: fix stack overruns with SLUB_STATS
+    - rxrpc: Fix race between incoming ACK parser and retransmitter
+    - usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
+    - tools lib traceevent: Add append() function helper for appending strings
+    - tools lib traceevent: Handle __attribute__((user)) in field names
+    - s390/debug: avoid kernel warning on too large number of pages
+    - nvme-multipath: set bdi capabilities once
+    - nvme-multipath: fix deadlock between ana_work and scan_work
+    - nvme-multipath: fix deadlock due to head->lock
+    - nvme-multipath: fix bogus request queue reference put
+    - kgdb: Avoid suspicious RCU usage warning
+    - selftests: tpm: Use /bin/sh instead of /bin/bash
+    - crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
+    - drm/msm/dpu: fix error return code in dpu_encoder_init
+    - rxrpc: Fix afs large storage transmission performance drop
+    - RDMA/counter: Query a counter before release
+    - cxgb4: use unaligned conversion for fetching timestamp
+    - cxgb4: parse TC-U32 key values and masks natively
+    - cxgb4: fix endian conversions for L4 ports in filters
+    - cxgb4: use correct type for all-mask IP address comparison
+    - cxgb4: fix SGE queue dump destination buffer context
+    - hwmon: (max6697) Make sure the OVERT mask is set correctly
+    - hwmon: (acpi_power_meter) Fix potential memory leak in
+      acpi_power_meter_add()
+    - thermal/drivers/mediatek: Fix bank number settings on mt8183
+    - thermal/drivers/rcar_gen3: Fix undefined temperature if negative
+    - nfsd4: fix nfsdfs reference count loop
+    - nfsd: fix nfsdfs inode reference count leak
+    - drm: sun4i: hdmi: Remove extra HPD polling
+    - virtio-blk: free vblk-vqs in error path of virtblk_probe()
+    - SMB3: Honor 'posix' flag for multiuser mounts
+    - nvme: fix identify error status silent ignore
+    - nvme: fix a crash in nvme_mpath_add_disk
+    - samples/vfs: avoid warning in statx override
+    - i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
+    - i2c: mlxcpld: check correct size of maximum RECV_LEN packet
+    - spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
+    - nfsd: apply umask on fs without ACL support
+    - Revert "ALSA: usb-audio: Improve frames size computation"
+    - SMB3: Honor 'seal' flag for multiuser mounts
+    - SMB3: Honor persistent/resilient handle flags for multiuser mounts
+    - SMB3: Honor lease disabling for multiuser mounts
+    - SMB3: Honor 'handletimeout' flag for multiuser mounts
+    - cifs: Fix the target file was deleted when rename failed.
+    - MIPS: lantiq: xway: sysctrl: fix the GPHY clock alias names
+    - MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
+    - drm/amd/display: Only revalidate bandwidth on medium and fast updates
+    - drm/amdgpu: use %u rather than %d for sclk/mclk
+    - drm/amdgpu/atomfirmware: fix vram_info fetching for renoir
+    - dma-buf: Move dma_buf_release() from fops to dentry_ops
+    - irqchip/gic: Atomically update affinity
+    - mm, compaction: fully assume capture is not NULL in compact_zone_order()
+    - mm, compaction: make capture control handling safe wrt interrupts
+    - x86/resctrl: Fix memory bandwidth counter width for AMD
+    - dm zoned: assign max_io_len correctly
+    - [Config] updateconfigs for EFI_CUSTOM_SSDT_OVERLAYS
+    - efi: Make it possible to disable efivar_ssdt entirely
+    - Linux 5.4.51
+
+  * Focal update: v5.4.50 upstream stable release (LP: #1885942)
+    - block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed
+    - enetc: Fix tx rings bitmap iteration range, irq handling
+    - geneve: allow changing DF behavior after creation
+    - ibmveth: Fix max MTU limit
+    - mld: fix memory leak in ipv6_mc_destroy_dev()
+    - mvpp2: ethtool rxtx stats fix
+    - net: bridge: enfore alignment for ethernet address
+    - net: core: reduce recursion limit value
+    - net: Do not clear the sock TX queue in sk_set_socket()
+    - net: fix memleak in register_netdevice()
+    - net: Fix the arp error in some cases
+    - net: increment xmit_recursion level in dev_direct_xmit()
+    - net: usb: ax88179_178a: fix packet alignment padding
+    - openvswitch: take into account de-fragmentation/gso_size in
+      execute_check_pkt_len
+    - rocker: fix incorrect error handling in dma_rings_init
+    - rxrpc: Fix notification call on completion of discarded calls
+    - sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
+    - tcp: don't ignore ECN CWR on pure ACK
+    - tcp: grow window for OOO packets only for SACK flows
+    - tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes
+    - ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()
+    - net: phy: Check harder for errors in get_phy_id()
+    - ip_tunnel: fix use-after-free in ip_tunnel_lookup()
+    - sch_cake: don't try to reallocate or unshare skb unconditionally
+    - sch_cake: don't call diffserv parsing code when it is not needed
+    - sch_cake: fix a few style nits
+    - tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
+    - Revert "i2c: tegra: Fix suspending in active runtime PM state"
+    - btrfs: fix a block group ref counter leak after failure to remove block
+      group
+    - net: sched: export __netdev_watchdog_up()
+    - fix a braino in "sparc32: fix register window handling in
+      genregs32_[gs]et()"
+    - ALSA: usb-audio: Fix potential use-after-free of streams
+    - binder: fix null deref of proc->context
+    - USB: ohci-sm501: Add missed iounmap() in remove
+    - usb: dwc2: Postponed gadget registration to the udc class driver
+    - usb: add USB_QUIRK_DELAY_INIT for Logitech C922
+    - USB: ehci: reopen solution for Synopsys HC bug
+    - usb: host: xhci-mtk: avoid runtime suspend when removing hcd
+    - xhci: Poll for U0 after disabling USB2 LPM
+    - usb: host: ehci-exynos: Fix error check in exynos_ehci_probe()
+    - usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs
+    - ALSA: usb-audio: Add implicit feedback quirk for SSL2+.
+    - ALSA: usb-audio: add quirk for Denon DCD-1500RE
+    - ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG)
+    - ALSA: usb-audio: Fix OOB access of mixer element list
+    - usb: cdns3: trace: using correct dir value
+    - usb: cdns3: ep0: fix the test mode set incorrectly
+    - usb: cdns3: ep0: add spinlock for cdns3_check_new_setup
+    - scsi: qla2xxx: Keep initiator ports after RSCN
+    - scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action
+    - cifs: Fix cached_fid refcnt leak in open_shroot
+    - cifs/smb3: Fix data inconsistent when punch hole
+    - cifs/smb3: Fix data inconsistent when zero file range
+    - xhci: Fix incorrect EP_STATE_MASK
+    - xhci: Fix enumeration issue when setting max packet size for FS devices.
+    - xhci: Return if xHCI doesn't support LPM
+    - cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
+    - loop: replace kill_bdev with invalidate_bdev
+    - IB/mad: Fix use after free when destroying MAD agent
+    - IB/hfi1: Fix module use count flaw due to leftover module put calls
+    - bus: ti-sysc: Flush posted write on enable and disable
+    - bus: ti-sysc: Ignore clockactivity unless specified as a quirk
+    - ARM: OMAP2+: Fix legacy mode dss_reset
+    - xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
+    - ASoC: q6asm: handle EOS correctly
+    - efi/tpm: Verify event log header before parsing
+    - efi/esrt: Fix reference count leak in esre_create_sysfs_entry.
+    - ASoc: q6afe: add support to get port direction
+    - ASoC: qcom: common: set correct directions for dailinks
+    - regualtor: pfuze100: correct sw1a/sw2 on pfuze3000
+    - RDMA/siw: Fix pointer-to-int-cast warning in siw_rx_pbl()
+    - ASoC: fsl_ssi: Fix bclk calculation for mono channel
+    - samples/bpf: xdp_redirect_cpu: Set MAX_CPUS according to NR_CPUS
+    - bpf, xdp, samples: Fix null pointer dereference in *_user code
+    - ARM: dts: am335x-pocketbeagle: Fix mmc0 Write Protect
+    - ARM: dts: Fix duovero smsc interrupt for suspend
+    - x86/resctrl: Fix a NULL vs IS_ERR() static checker warning in
+      rdt_cdp_peer_get()
+    - regmap: Fix memory leak from regmap_register_patch
+    - devmap: Use bpf_map_area_alloc() for allocating hash buckets
+    - bpf: Don't return EINVAL from {get,set}sockopt when optlen > PAGE_SIZE
+    - ARM: dts: NSP: Correct FA2 mailbox node
+    - rxrpc: Fix handling of rwind from an ACK packet
+    - RDMA/rvt: Fix potential memory leak caused by rvt_alloc_rq
+    - RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532
+    - RDMA/cma: Protect bind_list and listen_list while finding matching cm id
+    - ASoC: rockchip: Fix a reference count leak.
+    - s390/qeth: fix error handling for isolation mode cmds
+    - RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads()
+    - selftests/net: report etf errors correctly
+    - iommu/vt-d: Enable PCI ACS for platform opt in hint
+    - iommu/vt-d: Update scalable mode paging structure coherency
+    - net: qed: fix left elements count calculation
+    - net: qed: fix async event callbacks unregistering
+    - net: qede: stop adding events on an already destroyed workqueue
+    - net: qed: fix NVMe login fails over VFs
+    - net: qed: fix excessive QM ILT lines consumption
+    - net: qede: fix PTP initialization on recovery
+    - net: qede: fix use-after-free on recovery and AER handling
+    - cxgb4: move handling L2T ARP failures to caller
+    - ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram()
+    - scsi: lpfc: Avoid another null dereference in lpfc_sli4_hba_unset()
+    - usb: gadget: udc: Potential Oops in error handling code
+    - usb: renesas_usbhs: getting residue from callback_result
+    - nvme: don't protect ns mutation with ns->head->lock
+    - netfilter: ipset: fix unaligned atomic access
+    - net: bcmgenet: use hardware padding of runt frames
+    - clk: sifive: allocate sufficient memory for struct __prci_data
+    - i2c: fsi: Fix the port number field in status register
+    - i2c: core: check returned size of emulated smbus block read
+    - afs: Fix storage of cell names
+    - sched/deadline: Initialize ->dl_boosted
+    - sched/core: Fix PI boosting between RT and DEADLINE tasks
+    - sata_rcar: handle pm_runtime_get_sync failure cases
+    - ata/libata: Fix usage of page address by page_address in
+      ata_scsi_mode_select_xlat function
+    - drm/amd/display: Use kfree() to free rgb_user in
+      calculate_user_regamma_ramp()
+    - riscv/atomic: Fix sign extension for RV64I
+    - hwrng: ks-sa - Fix runtime PM imbalance on error
+    - ibmvnic: Harden device login requests
+    - net: alx: fix race condition in alx_remove
+    - test_objagg: Fix potential memory leak in error handling
+    - pinctrl: qcom: spmi-gpio: fix warning about irq chip reusage
+    - pinctrl: tegra: Use noirq suspend/resume callbacks
+    - s390/ptrace: pass invalid syscall numbers to tracing
+    - s390/ptrace: fix setting syscall number
+    - s390/vdso: Use $(LD) instead of $(CC) to link vDSO
+    - s390/vdso: fix vDSO clock_getres()
+    - arm64: sve: Fix build failure when ARM64_SVE=y and SYSCTL=n
+    - kbuild: improve cc-option to clean up all temporary files
+    - recordmcount: support >64k sections
+    - kprobes: Suppress the suspicious RCU warning on kprobes
+    - blktrace: break out of blktrace setup on concurrent calls
+    - block: update hctx map when use multiple maps
+    - RISC-V: Don't allow write+exec only page mapping request in mmap
+    - ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table
+    - ALSA: hda/realtek - Add quirk for MSI GE63 laptop
+    - ACPI: sysfs: Fix pm_profile_attr type
+    - erofs: fix partially uninitialized misuse in z_erofs_onlinepage_fixup
+    - KVM: X86: Fix MSR range of APIC registers in X2APIC mode
+    - KVM: nVMX: Plumb L2 GPA through to PML emulation
+    - KVM: VMX: Stop context switching MSR_IA32_UMWAIT_CONTROL
+    - x86/cpu: Use pinning mask for CR4 bits needing to be 0
+    - x86/asm/64: Align start of __clear_user() loop to 16-bytes
+    - btrfs: fix bytes_may_use underflow when running balance and scrub in
+      parallel
+    - btrfs: fix data block group relocation failure due to concurrent scrub
+    - btrfs: check if a log root exists before locking the log_mutex on unlink
+    - btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof
+    - mm/slab: use memzero_explicit() in kzfree()
+    - ocfs2: avoid inode removal while nfsd is accessing it
+    - ocfs2: load global_inode_alloc
+    - ocfs2: fix value of OCFS2_INVALID_SLOT
+    - ocfs2: fix panic on nfs server over ocfs2
+    - mm/memcontrol.c: add missed css_put()
+    - arm64: perf: Report the PC value in REGS_ABI_32 mode
+    - arm64: dts: imx8mm-evk: correct ldo1/ldo2 voltage range
+    - arm64: dts: imx8mn-ddr4-evk: correct ldo1/ldo2 voltage range
+    - tracing: Fix event trigger to accept redundant spaces
+    - ring-buffer: Zero out time extend if it is nested and not absolute
+    - drm/amd: fix potential memleak in err branch
+    - drm: rcar-du: Fix build error
+    - drm/radeon: fix fb_div check in ni_init_smc_spll_table()
+    - drm/amdgpu: add fw release for sdma v5_0
+    - Staging: rtl8723bs: prevent buffer overflow in update_sta_support_rate()
+    - sunrpc: fixed rollback in rpc_gssd_dummy_populate()
+    - SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment()
+    - pNFS/flexfiles: Fix list corruption if the mirror count changes
+    - NFSv4 fix CLOSE not waiting for direct IO compeletion
+    - xprtrdma: Fix handling of RDMA_ERROR replies
+    - dm writecache: correct uncommitted_block when discarding uncommitted entry
+    - dm writecache: add cond_resched to loop in persistent_memory_claim()
+    - xfs: add agf freeblocks verify in xfs_agf_verify
+    - Revert "tty: hvc: Fix data abort due to race in hvc_open"
+    - Linux 5.4.50
+
+  * Focal update: v5.4.49 upstream stable release (LP: #1885322)
+    - power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select
+    - clk: sunxi: Fix incorrect usage of round_down()
+    - ASoC: tegra: tegra_wm8903: Support nvidia, headset property
+    - i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
+    - ASoC: SOF: imx8: Fix randbuild error
+    - iio: pressure: bmp280: Tolerate IRQ before registering
+    - remoteproc: Fix IDR initialisation in rproc_alloc()
+    - clk: qcom: msm8916: Fix the address location of pll->config_reg
+    - ASoC: fsl_esai: Disable exception interrupt before scheduling tasklet
+    - backlight: lp855x: Ensure regulators are disabled on probe failure
+    - ARM: dts: renesas: Fix IOMMU device node names
+    - ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type
+    - ARM: integrator: Add some Kconfig selections
+    - ARM: dts: stm32: Add missing ethernet PHY reset on AV96
+    - scsi: core: free sgtables in case command setup fails
+    - scsi: qedi: Check for buffer overflow in qedi_set_path()
+    - arm64: dts: meson: fixup SCP sram nodes
+    - ALSA: isa/wavefront: prevent out of bounds write in ioctl
+    - PCI: Allow pci_resize_resource() for devices on root bus
+    - scsi: qla2xxx: Fix issue with adapter's stopping state
+    - Input: edt-ft5x06 - fix get_default register write access
+    - powerpc/kasan: Fix stack overflow by increasing THREAD_SHIFT
+    - rtc: mc13xxx: fix a double-unlock issue
+    - iio: bmp280: fix compensation of humidity
+    - f2fs: report delalloc reserve as non-free in statfs for project quota
+    - i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
+    - remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use
+    - clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
+    - usblp: poison URBs upon disconnect
+    - serial: 8250: Fix max baud limit in generic 8250 port
+    - misc: fastrpc: Fix an incomplete memory release in fastrpc_rpmsg_probe()
+    - misc: fastrpc: fix potential fastrpc_invoke_ctx leak
+    - dm mpath: switch paths in dm_blk_ioctl() code path
+    - arm64: dts: armada-3720-turris-mox: forbid SDR104 on SDIO for FCC purposes
+    - arm64: dts: armada-3720-turris-mox: fix SFP binding
+    - arm64: dts: juno: Fix GIC child nodes
+    - pinctrl: ocelot: Fix GPIO interrupt decoding on Jaguar2
+    - clk: renesas: cpg-mssr: Fix STBCR suspend/resume handling
+    - ASoC: SOF: Do nothing when DSP PM callbacks are not set
+    - arm64: dts: fvp: Fix GIC child nodes
+    - PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only
+      register
+    - ps3disk: use the default segment boundary
+    - arm64: dts: fvp/juno: Fix node address fields
+    - vfio/pci: fix memory leaks in alloc_perm_bits()
+    - coresight: tmc: Fix TMC mode read in tmc_read_prepare_etb()
+    - RDMA/mlx5: Add init2init as a modify command
+    - scsi: hisi_sas: Do not reset phy timer to wait for stray phy up
+    - PCI: pci-bridge-emul: Fix PCIe bit conflicts
+    - m68k/PCI: Fix a memory leak in an error handling path
+    - gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-
+      registration
+    - usb: gadget: core: sync interrupt before unbind the udc
+    - powerpc/ptdump: Add _PAGE_COHERENT flag
+    - mfd: wm8994: Fix driver operation if loaded as modules
+    - scsi: cxgb3i: Fix some leaks in init_act_open()
+    - clk: zynqmp: fix memory leak in zynqmp_register_clocks
+    - scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
+    - scsi: vhost: Notify TCM about the maximum sg entries supported per command
+    - clk: clk-flexgen: fix clock-critical handling
+    - IB/mlx5: Fix DEVX support for MLX5_CMD_OP_INIT2INIT_QP command
+    - powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7
+      events run
+    - nfsd: Fix svc_xprt refcnt leak when setup callback client failed
+    - PCI: vmd: Filter resource type bits from shadow register
+    - RDMA/core: Fix several reference count leaks.
+    - cifs: set up next DFS target before generic_ip_connect()
+    - ASoC: qcom: q6asm-dai: kCFI fix
+    - powerpc/crashkernel: Take "mem=" option into account
+    - pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case
+    - sparc32: mm: Don't try to free page-table pages if ctor() fails
+    - yam: fix possible memory leak in yam_init_driver
+    - NTB: ntb_pingpong: Choose doorbells based on port number
+    - NTB: Fix the default port and peer numbers for legacy drivers
+    - mksysmap: Fix the mismatch of '.L' symbols in System.map
+    - apparmor: fix introspection of of task mode for unconfined tasks
+    - net: dsa: lantiq_gswip: fix and improve the unsupported interface error
+    - f2fs: handle readonly filesystem in f2fs_ioc_shutdown()
+    - ASoC: meson: add missing free_irq() in error path
+    - bpf, sockhash: Fix memory leak when unlinking sockets in sock_hash_free
+    - scsi: sr: Fix sr_probe() missing deallocate of device minor
+    - scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
+    - x86/purgatory: Disable various profiling and sanitizing options
+    - staging: greybus: fix a missing-check bug in gb_lights_light_config()
+    - arm64: dts: mt8173: fix unit name warnings
+    - scsi: qedi: Do not flush offload work if ARP not resolved
+    - arm64: dts: qcom: msm8916: remove unit name for thermal trip points
+    - ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
+    - RDMA/mlx5: Fix udata response upon SRQ creation
+    - gpio: dwapb: Append MODULE_ALIAS for platform driver
+    - scsi: qedf: Fix crash when MFW calls for protocol stats while function is
+      still probing
+    - pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries
+    - virtiofs: schedule blocking async replies in separate worker
+    - arm64: dts: qcom: fix pm8150 gpio interrupts
+    - firmware: qcom_scm: fix bogous abuse of dma-direct internals
+    - staging: gasket: Fix mapping refcnt leak when put attribute fails
+    - staging: gasket: Fix mapping refcnt leak when register/store fails
+    - ALSA: usb-audio: Improve frames size computation
+    - ALSA: usb-audio: Fix racy list management in output queue
+    - s390/qdio: put thinint indicator after early error
+    - tty: hvc: Fix data abort due to race in hvc_open
+    - slimbus: ngd: get drvdata from correct device
+    - clk: meson: meson8b: Fix the first parent of vid_pll_in_sel
+    - clk: meson: meson8b: Fix the polarity of the RESET_N lines
+    - clk: meson: meson8b: Fix the vclk_div{1, 2, 4, 6, 12}_en gate bits
+    - gpio: pca953x: fix handling of automatic address incrementing
+    - thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
+    - clk: meson: meson8b: Don't rely on u-boot to init all GP_PLL registers
+    - ASoC: max98373: reorder max98373_reset() in resume
+    - soundwire: slave: don't init debugfs on device registration error
+    - HID: intel-ish-hid: avoid bogus uninitialized-variable warning
+    - usb: dwc3: gadget: Properly handle ClearFeature(halt)
+    - usb: dwc3: gadget: Properly handle failed kick_transfer
+    - staging: wilc1000: Increase the size of wid_list array
+    - staging: sm750fb: add missing case while setting FB_VISUAL
+    - PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths
+    - i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
+    - serial: amba-pl011: Make sure we initialize the port.lock spinlock
+    - drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a
+      driver developer is foolish
+    - PCI: rcar: Fix incorrect programming of OB windows
+    - PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
+    - scsi: qla2xxx: Fix warning after FC target reset
+    - ALSA: firewire-lib: fix invalid assignment to union data for directional
+      parameter
+    - power: supply: lp8788: Fix an error handling path in
+      'lp8788_charger_probe()'
+    - power: supply: smb347-charger: IRQSTAT_D is volatile
+    - ASoC: SOF: core: fix error return code in sof_probe_continue()
+    - arm64: dts: msm8996: Fix CSI IRQ types
+    - scsi: target: loopback: Fix READ with data and sensebytes
+    - scsi: mpt3sas: Fix double free warnings
+    - SoC: rsnd: add interrupt support for SSI BUSIF buffer
+    - ASoC: ux500: mop500: Fix some refcounted resources issues
+    - ASoC: ti: omap-mcbsp: Fix an error handling path in 'asoc_mcbsp_probe()'
+    - pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
+    - dlm: remove BUG() before panic()
+    - USB: ohci-sm501: fix error return code in ohci_hcd_sm501_drv_probe()
+    - clk: ti: composite: fix memory leak
+    - PCI: Fix pci_register_host_bridge() device_register() error handling
+    - powerpc/64: Don't initialise init_task->thread.regs
+    - tty: n_gsm: Fix SOF skipping
+    - tty: n_gsm: Fix waking up upper tty layer when room available
+    - ALSA: usb-audio: Add duplex sound support for USB devices using implicit
+      feedback
+    - HID: Add quirks for Trust Panora Graphic Tablet
+    - PCI/PM: Assume ports without DLL Link Active train links in 100 ms
+    - habanalabs: increase timeout during reset
+    - ipmi: use vzalloc instead of kmalloc for user creation
+    - powerpc/64s/exception: Fix machine check no-loss idle wakeup
+    - powerpc/pseries/ras: Fix FWNMI_VALID off by one
+    - drivers: phy: sr-usb: do not use internal fsm for USB2 phy init
+    - powerpc/ps3: Fix kexec shutdown hang
+    - vfio-pci: Mask cap zero
+    - usb/ohci-platform: Fix a warning when hibernating
+    - drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
+    - ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet
+    - USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
+    - tty: n_gsm: Fix bogus i++ in gsm_data_kick
+    - fpga: dfl: afu: Corrected error handling levels
+    - clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
+    - RDMA/hns: Bugfix for querying qkey
+    - RDMA/hns: Fix cmdq parameter of querying pf timer resource
+    - scsi: target: tcmu: Userspace must not complete queued commands
+    - firmware: imx: scu: Fix possible memory leak in imx_scu_probe()
+    - fuse: fix copy_file_range cache issues
+    - fuse: copy_file_range should truncate cache
+    - arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
+    - arm64: tegra: Fix flag for 64-bit resources in 'ranges' property
+    - powerpc/64s/pgtable: fix an undefined behaviour
+    - dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
+    - PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
+    - PCI: dwc: Fix inner MSI IRQ domain registration
+    - PCI: amlogic: meson: Don't use FAST_LINK_MODE to set up link
+    - IB/cma: Fix ports memory leak in cma_configfs
+    - watchdog: da9062: No need to ping manually before setting timeout
+    - usb: dwc2: gadget: move gadget resume after the core is in L0 state
+    - USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in
+      s3c2410_udc_nuke
+    - usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
+    - usb: gadget: fix potential double-free in m66592_probe.
+    - usb: gadget: Fix issue with config_ep_by_speed function
+    - scripts: headers_install: Exit with error on config leak
+    - RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
+    - x86/apic: Make TSC deadline timer detection message visible
+    - mfd: stmfx: Reset chip on resume as supply was disabled
+    - mfd: stmfx: Fix stmfx_irq_init error path
+    - mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt
+    - powerpc/32s: Don't warn when mapping RO data ROX.
+    - ASoC: fix incomplete error-handling in img_i2s_in_probe.
+    - scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd()
+    - clk: bcm2835: Fix return type of bcm2835_register_gate
+    - scsi: ufs-qcom: Fix scheduling while atomic issue
+    - KVM: PPC: Book3S HV: Ignore kmemleak false positives
+    - KVM: PPC: Book3S: Fix some RCU-list locks
+    - clk: sprd: return correct type of value for _sprd_pll_recalc_rate
+    - clk: ast2600: Fix AHB clock divider for A1
+    - misc: xilinx-sdfec: improve get_user_pages_fast() error handling
+    - /dev/mem: Revoke mappings when a driver claims the region
+    - net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
+    - NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
+    - of: Fix a refcounting bug in __of_attach_node_sysfs()
+    - input: i8042 - Remove special PowerPC handling
+    - powerpc/4xx: Don't unmap NULL mbase
+    - extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()'
+    - ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
+    - vfio/mdev: Fix reference count leak in add_mdev_supported_type
+    - rtc: rv3028: Add missed check for devm_regmap_init_i2c()
+    - mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe()
+    - rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID
+    - openrisc: Fix issue with argument clobbering for clone/fork
+    - drm/nouveau/disp/gm200-: fix NV_PDISP_SOR_HDMI2_CTRL(n) selection
+    - ceph: don't return -ESTALE if there's still an open file
+    - nfsd4: make drc_slab global, not per-net
+    - gfs2: Allow lock_nolock mount to specify jid=X
+    - scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
+    - scsi: ufs: Don't update urgent bkops level when toggling auto bkops
+    - pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
+    - pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
+    - nfsd: safer handling of corrupted c_type
+    - drm/amd/display: Revalidate bandwidth before commiting DC updates
+    - crypto: omap-sham - add proper load balancing support for multicore
+    - geneve: change from tx_error to tx_dropped on missing metadata
+    - lib/zlib: remove outdated and incorrect pre-increment optimization
+    - include/linux/bitops.h: avoid clang shift-count-overflow warnings
+    - selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
+    - blktrace: use errno instead of bi_status
+    - blktrace: fix endianness in get_pdu_int()
+    - blktrace: fix endianness for blk_log_remap()
+    - gfs2: fix use-after-free on transaction ail lists
+    - net: marvell: Fix OF_MDIO config check
+    - ntb_perf: pass correct struct device to dma_alloc_coherent
+    - ntb_tool: pass correct struct device to dma_alloc_coherent
+    - NTB: ntb_tool: reading the link file should not end in a NULL byte
+    - NTB: Revert the change to use the NTB device dev for DMA allocations
+    - NTB: perf: Don't require one more memory window than number of peers
+    - NTB: perf: Fix support for hardware that doesn't have port numbers
+    - NTB: perf: Fix race condition when run with ntb_test
+    - NTB: ntb_test: Fix bug when counting remote files
+    - i2c: icy: Fix build with CONFIG_AMIGA_PCMCIA=n
+    - drivers/perf: hisi: Fix wrong value for all counters enable
+    - selftests/net: in timestamping, strncpy needs to preserve null byte
+    - f2fs: don't return vmalloc() memory from f2fs_kmalloc()
+    - afs: Fix memory leak in afs_put_sysnames()
+    - ASoC: core: only convert non DPCM link to DPCM link
+    - ASoC: SOF: nocodec: conditionally set dpcm_capture/dpcm_playback flags
+    - ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet
+    - ASoC: rt5645: Add platform-data for Asus T101HA
+    - bpf/sockmap: Fix kernel panic at __tcp_bpf_recvmsg
+    - bpf, sockhash: Synchronize delete from bucket list on map free
+    - tracing/probe: Fix bpf_task_fd_query() for kprobes and uprobes
+    - drm/sun4i: hdmi ddc clk: Fix size of m divider
+    - libbpf: Handle GCC noreturn-turned-volatile quirk
+    - scsi: acornscsi: Fix an error handling path in acornscsi_probe()
+    - x86/idt: Keep spurious entries unset in system_vectors
+    - net/filter: Permit reading NET in load_bytes_relative when MAC not set
+    - nvme-pci: use simple suspend when a HMB is enabled
+    - nfs: set invalid blocks after NFSv4 writes
+    - xdp: Fix xsk_generic_xmit errno
+    - iavf: fix speed reporting over virtchnl
+    - bpf: Fix memlock accounting for sock_hash
+    - usb/xhci-plat: Set PM runtime as active on resume
+    - usb: host: ehci-platform: add a quirk to avoid stuck
+    - usb/ehci-platform: Set PM runtime as active on resume
+    - perf report: Fix NULL pointer dereference in
+      hists__fprintf_nr_sample_events()
+    - perf stat: Fix NULL pointer dereference
+    - ext4: stop overwrite the errcode in ext4_setup_super
+    - bcache: fix potential deadlock problem in btree_gc_coalesce
+    - powerpc: Fix kernel crash in show_instructions() w/DEBUG_VIRTUAL
+    - afs: Fix non-setting of mtime when writing into mmap
+    - afs: afs_write_end() should change i_size under the right lock
+    - afs: Fix EOF corruption
+    - afs: Always include dir in bulk status fetch from afs_do_lookup()
+    - afs: Set error flag rather than return error from file status decode
+    - afs: Fix the mapping of the UAEOVERFLOW abort code
+    - bnxt_en: Return from timer if interface is not in open state.
+    - scsi: ufs-bsg: Fix runtime PM imbalance on error
+    - block: Fix use-after-free in blkdev_get()
+    - mvpp2: remove module bugfix
+    - arm64: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
+    - drm: encoder_slave: fix refcouting error for modules
+    - ext4: fix partial cluster initialization when splitting extent
+    - ext4: avoid utf8_strncasecmp() with unstable name
+    - drm/dp_mst: Reformat drm_dp_check_act_status() a bit
+    - drm/qxl: Use correct notify port address when creating cursor ring
+    - drm/amdgpu: Replace invalid device ID with a valid device ID
+    - selinux: fix double free
+    - jbd2: clean __jbd2_journal_abort_hard() and __journal_abort_soft()
+    - ext4: avoid race conditions when remounting with options that change dax
+    - drm/dp_mst: Increase ACT retry timeout to 3s
+    - drm/amd/display: Use swap() where appropriate
+    - x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
+    - block: nr_sects_write(): Disable preemption on seqcount write
+    - net/mlx5: DR, Fix freeing in dr_create_rc_qp()
+    - f2fs: split f2fs_d_compare() from f2fs_match_name()
+    - f2fs: avoid utf8_strncasecmp() with unstable name
+    - s390: fix syscall_get_error for compat processes
+    - drm/i915: Fix AUX power domain toggling across TypeC mode resets
+    - drm/msm: Check for powered down HW in the devfreq callbacks
+    - drm/i915/gem: Avoid iterating an empty list
+    - drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
+    - drm/connector: notify userspace on hotplug after register complete
+    - drm/amd/display: Use kvfree() to free coeff in build_regamma()
+    - drm/i915/icl+: Fix hotplug interrupt disabling after storm detection
+    - Revert "drm/amd/display: disable dcn20 abm feature for bring up"
+    - crypto: algif_skcipher - Cap recv SG list at ctx->used
+    - crypto: algboss - don't wait during notifier callback
+    - tracing/probe: Fix memleak in fetch_op_data operations
+    - kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
+    - kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
+    - e1000e: Do not wake up the system via WOL if device wakeup is disabled
+    - net: octeon: mgmt: Repair filling of RX ring
+    - pwm: jz4740: Enhance precision in calculation of duty cycle
+    - sched/rt, net: Use CONFIG_PREEMPTION.patch
+    - net: core: device_rename: Use rwsem instead of a seqcount
+    - Linux 5.4.49
+
+  * Computer is frozen after suspend (LP: #1867983) // Focal update: v5.4.49
+    upstream stable release (LP: #1885322)
+    - libata: Use per port sync for detach
+
+  * Focal update: v5.4.48 upstream stable release (LP: #1885023)
+    - ACPI: GED: use correct trigger type field in _Exx / _Lxx handling
+    - drm/amdgpu: fix and cleanup amdgpu_gem_object_close v4
+    - ath10k: Fix the race condition in firmware dump work queue
+    - drm: bridge: adv7511: Extend list of audio sample rates
+    - media: staging: imgu: do not hold spinlock during freeing mmu page table
+    - media: imx: imx7-mipi-csis: Cleanup and fix subdev pad format handling
+    - crypto: ccp -- don't "select" CONFIG_DMADEVICES
+    - media: vicodec: Fix error codes in probe function
+    - media: si2157: Better check for running tuner in init
+    - objtool: Ignore empty alternatives
+    - spi: spi-mem: Fix Dual/Quad modes on Octal-capable devices
+    - drm/amdgpu: Init data to avoid oops while reading pp_num_states.
+    - arm64/kernel: Fix range on invalidating dcache for boot page tables
+    - libbpf: Fix memory leak and possible double-free in hashmap__clear
+    - spi: pxa2xx: Apply CS clk quirk to BXT
+    - x86,smap: Fix smap_{save,restore}() alternatives
+    - sched/fair: Refill bandwidth before scaling
+    - net: atlantic: make hw_get_regs optional
+    - net: ena: fix error returning in ena_com_get_hash_function()
+    - efi/libstub/x86: Work around LLVM ELF quirk build regression
+    - ath10k: remove the max_sched_scan_reqs value
+    - arm64: cacheflush: Fix KGDB trap detection
+    - media: staging: ipu3: Fix stale list entries on parameter queue failure
+    - rtw88: fix an issue about leak system resources
+    - spi: dw: Zero DMA Tx and Rx configurations on stack
+    - ACPICA: Dispatcher: add status checks
+    - block: alloc map and request for new hardware queue
+    - arm64: insn: Fix two bugs in encoding 32-bit logical immediates
+    - block: reset mapping if failed to update hardware queue count
+    - drm: rcar-du: Set primary plane zpos immutably at initializing
+    - lockdown: Allow unprivileged users to see lockdown status
+    - ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
+    - platform/x86: dell-laptop: don't register micmute LED if there is no token
+    - MIPS: Loongson: Build ATI Radeon GPU driver as module
+    - Bluetooth: Add SCO fallback for invalid LMP parameters error
+    - kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
+    - kgdb: Prevent infinite recursive entries to the debugger
+    - pmu/smmuv3: Clear IRQ affinity hint on device removal
+    - ACPI/IORT: Fix PMCG node single ID mapping handling
+    - mips: Fix cpu_has_mips64r1/2 activation for MIPS32 CPUs
+    - spi: dw: Enable interrupts in accordance with DMA xfer mode
+    - clocksource: dw_apb_timer: Make CPU-affiliation being optional
+    - clocksource: dw_apb_timer_of: Fix missing clockevent timers
+    - media: dvbdev: Fix tuner->demod media controller link
+    - btrfs: account for trans_block_rsv in may_commit_transaction
+    - btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
+    - ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
+    - batman-adv: Revert "disable ethtool link speed detection when auto
+      negotiation off"
+    - ice: Fix memory leak
+    - ice: Fix for memory leaks and modify ICE_FREE_CQ_BUFS
+    - mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error
+    - Bluetooth: btmtkuart: Improve exception handling in btmtuart_probe()
+    - spi: dw: Fix Rx-only DMA transfers
+    - x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
+    - net: vmxnet3: fix possible buffer overflow caused by bad DMA value in
+      vmxnet3_get_rss()
+    - x86: fix vmap arguments in map_irq_stack
+    - staging: android: ion: use vmap instead of vm_map_ram
+    - ath10k: fix kernel null pointer dereference
+    - media: staging/intel-ipu3: Implement lock for stream on/off operations
+    - spi: Respect DataBitLength field of SpiSerialBusV2() ACPI resource
+    - brcmfmac: fix wrong location to get firmware feature
+    - regulator: qcom-rpmh: Fix typos in pm8150 and pm8150l
+    - tools api fs: Make xxx__mountpoint() more scalable
+    - e1000: Distribute switch variables for initialization
+    - dt-bindings: display: mediatek: control dpi pins mode to avoid leakage
+    - drm/mediatek: set dpi pin mode to gpio low to avoid leakage current
+    - audit: fix a net reference leak in audit_send_reply()
+    - media: dvb: return -EREMOTEIO on i2c transfer failure.
+    - media: platform: fcp: Set appropriate DMA parameters
+    - MIPS: Make sparse_init() using top-down allocation
+    - ath10k: add flush tx packets for SDIO chip
+    - Bluetooth: btbcm: Add 2 missing models to subver tables
+    - audit: fix a net reference leak in audit_list_rules_send()
+    - Drivers: hv: vmbus: Always handle the VMBus messages on CPU0
+    - dpaa2-eth: fix return codes used in ndo_setup_tc
+    - netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
+    - selftests/bpf: Fix memory leak in extract_build_id()
+    - net: bcmgenet: set Rx mode before starting netif
+    - net: bcmgenet: Fix WoL with password after deep sleep
+    - lib/mpi: Fix 64-bit MIPS build with Clang
+    - exit: Move preemption fixup up, move blocking operations down
+    - sched/core: Fix illegal RCU from offline CPUs
+    - drivers/perf: hisi: Fix typo in events attribute array
+    - iocost_monitor: drop string wrap around numbers when outputting json
+    - net: lpc-enet: fix error return code in lpc_mii_init()
+    - selinux: fix error return code in policydb_read()
+    - drivers: net: davinci_mdio: fix potential NULL dereference in
+      davinci_mdio_probe()
+    - media: cec: silence shift wrapping warning in __cec_s_log_addrs()
+    - net: allwinner: Fix use correct return type for ndo_start_xmit()
+    - powerpc/spufs: fix copy_to_user while atomic
+    - libertas_tf: avoid a null dereference in pointer priv
+    - xfs: clean up the error handling in xfs_swap_extents
+    - Crypto/chcr: fix for ccm(aes) failed test
+    - MIPS: Truncate link address into 32bit for 32bit kernel
+    - mips: cm: Fix an invalid error code of INTVN_*_ERR
+    - kgdb: Fix spurious true from in_dbg_master()
+    - xfs: reset buffer write failure state on successful completion
+    - xfs: fix duplicate verification from xfs_qm_dqflush()
+    - platform/x86: intel-vbtn: Use acpi_evaluate_integer()
+    - platform/x86: intel-vbtn: Split keymap into buttons and switches parts
+    - platform/x86: intel-vbtn: Do not advertise switches to userspace if they are
+      not there
+    - platform/x86: intel-vbtn: Also handle tablet-mode switch on "Detachable" and
+      "Portable" chassis-types
+    - iwlwifi: avoid debug max amsdu config overwriting itself
+    - nvme: refine the Qemu Identify CNS quirk
+    - nvme-pci: align io queue count with allocted nvme_queue in nvme_probe
+    - nvme-tcp: use bh_lock in data_ready
+    - ath10k: Remove msdu from idr when management pkt send fails
+    - wcn36xx: Fix error handling path in 'wcn36xx_probe()'
+    - net: qed*: Reduce RX and TX default ring count when running inside kdump
+      kernel
+    - drm/mcde: dsi: Fix return value check in mcde_dsi_bind()
+    - mt76: avoid rx reorder buffer overflow
+    - md: don't flush workqueue unconditionally in md_open
+    - raid5: remove gfp flags from scribble_alloc()
+    - iocost: don't let vrate run wild while there's no saturation signal
+    - veth: Adjust hard_start offset on redirect XDP frames
+    - net/mlx5e: IPoIB, Drop multicast packets that this interface sent
+    - rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
+    - mwifiex: Fix memory corruption in dump_station
+    - kgdboc: Use a platform device to handle tty drivers showing up late
+    - x86/boot: Correct relocation destination on old linkers
+    - sched: Defend cfs and rt bandwidth quota against overflow
+    - mips: MAAR: Use more precise address mask
+    - mips: Add udelay lpj numbers adjustment
+    - crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
+    - crypto: stm32/crc32 - fix run-time self test issue.
+    - crypto: stm32/crc32 - fix multi-instance
+    - drm/amd/powerpay: Disable gfxoff when setting manual mode on picasso and
+      raven
+    - drm/amdgpu: Sync with VM root BO when switching VM to CPU update mode
+    - selftests/bpf: CONFIG_IPV6_SEG6_BPF required for test_seg6_loop.o
+    - x86/mm: Stop printing BRK addresses
+    - MIPS: tools: Fix resource leak in elf-entry.c
+    - m68k: mac: Don't call via_flush_cache() on Mac IIfx
+    - btrfs: improve global reserve stealing logic
+    - btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new
+      qgroup
+    - macvlan: Skip loopback packets in RX handler
+    - PCI: Don't disable decoding when mmio_always_on is set
+    - MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
+    - bcache: fix refcount underflow in bcache_device_free()
+    - mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
+    - staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core
+    - mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core
+    - ice: fix potential double free in probe unrolling
+    - ixgbe: fix signed-integer-overflow warning
+    - iwlwifi: mvm: fix aux station leak
+    - mmc: sdhci-esdhc-imx: fix the mask for tuning start point
+    - spi: dw: Return any value retrieved from the dma_transfer callback
+    - cpuidle: Fix three reference count leaks
+    - platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
+    - platform/x86: intel-hid: Add a quirk to support HP Spectre X2 (2015)
+    - platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop"
+      chasis-type
+    - platform/x86: asus_wmi: Reserve more space for struct bias_args
+    - libbpf: Fix perf_buffer__free() API for sparse allocs
+    - bpf: Fix map permissions check
+    - bpf: Refactor sockmap redirect code so its easy to reuse
+    - bpf: Fix running sk_skb program types with ktls
+    - selftests/bpf, flow_dissector: Close TAP device FD after the test
+    - kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
+    - string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
+    - btrfs: free alien device after device add
+    - btrfs: include non-missing as a qualifier for the latest_bdev
+    - btrfs: send: emit file capabilities after chown
+    - btrfs: force chunk allocation if our global rsv is larger than metadata
+    - btrfs: fix error handling when submitting direct I/O bio
+    - btrfs: fix wrong file range cleanup after an error filling dealloc range
+    - btrfs: fix space_info bytes_may_use underflow after nocow buffered write
+    - btrfs: fix space_info bytes_may_use underflow during space cache writeout
+    - powerpc/mm: Fix conditions to perform MMU specific management by blocks on
+      PPC32.
+    - mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
+    - mm: initialize deferred pages with interrupts enabled
+    - mm/pagealloc.c: call touch_nmi_watchdog() on max order boundaries in
+      deferred init
+    - mm: call cond_resched() from deferred_init_memmap()
+    - ima: Fix ima digest hash table key calculation
+    - ima: Switch to ima_hash_algo for boot aggregate
+    - ima: Evaluate error in init_ima()
+    - ima: Directly assign the ima_default_policy pointer to ima_rules
+    - ima: Call ima_calc_boot_aggregate() in ima_eventdigest_init()
+    - ima: Remove __init annotation from ima_pcrread()
+    - evm: Fix possible memory leak in evm_calc_hmac_or_hash()
+    - ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
+    - ext4: fix error pointer dereference
+    - ext4: fix race between ext4_sync_parent() and rename()
+    - PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
+    - PCI: Add Loongson vendor ID
+    - x86/amd_nb: Add AMD family 17h model 60h PCI IDs
+    - ima: Remove redundant policy rule set in add_rules()
+    - ima: Set again build_ima_appraise variable
+    - PCI: Program MPS for RCiEP devices
+    - e1000e: Relax condition to trigger reset for ME workaround
+    - carl9170: remove P2P_GO support
+    - media: go7007: fix a miss of snd_card_free
+    - media: cedrus: Program output format during each run
+    - serial: 8250: Avoid error message on reprobe
+    - Bluetooth: hci_bcm: fix freeing not-requested IRQ
+    - b43legacy: Fix case where channel status is corrupted
+    - b43: Fix connection problem with WPA3
+    - b43_legacy: Fix connection problem with WPA3
+    - media: ov5640: fix use of destroyed mutex
+    - clk: mediatek: assign the initial value to clk_init_data of mtk_mux
+    - hwmon: (k10temp) Add AMD family 17h model 60h PCI match
+    - EDAC/amd64: Add AMD family 17h model 60h PCI IDs
+    - power: vexpress: add suppress_bind_attrs to true
+    - power: supply: core: fix HWMON temperature labels
+    - power: supply: core: fix memory leak in HWMON error path
+    - pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
+    - pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
+    - gnss: sirf: fix error return code in sirf_probe()
+    - sparc32: fix register window handling in genregs32_[gs]et()
+    - sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
+    - dm crypt: avoid truncating the logical block size
+    - alpha: fix memory barriers so that they conform to the specification
+    - powerpc/fadump: use static allocation for reserved memory ranges
+    - powerpc/fadump: consider reserved ranges while reserving memory
+    - powerpc/fadump: Account for memory_limit while reserving memory
+    - kernel/cpu_pm: Fix uninitted local in cpu_pm
+    - ARM: tegra: Correct PL310 Auxiliary Control Register initialization
+    - soc/tegra: pmc: Select GENERIC_PINCONF
+    - ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
+    - ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
+    - ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
+    - drivers/macintosh: Fix memleak in windfarm_pm112 driver
+    - powerpc/32s: Fix another build failure with CONFIG_PPC_KUAP_DEBUG
+    - powerpc/kasan: Fix issues by lowering KASAN_SHADOW_END
+    - powerpc/kasan: Fix shadow pages allocation failure
+    - powerpc/32: Disable KASAN with pages bigger than 16k
+    - powerpc/64s: Don't let DT CPU features set FSCR_DSCR
+    - powerpc/64s: Save FSCR to init_task.thread.fscr after feature init
+    - kbuild: force to build vmlinux if CONFIG_MODVERSION=y
+    - sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate
+      registrations.
+    - sunrpc: clean up properly in gss_mech_unregister()
+    - mtd: rawnand: Fix nand_gpio_waitrdy()
+    - mtd: rawnand: onfi: Fix redundancy detection check
+    - mtd: rawnand: brcmnand: fix hamming oob layout
+    - mtd: rawnand: diskonchip: Fix the probe error path
+    - mtd: rawnand: sharpsl: Fix the probe error path
+    - mtd: rawnand: ingenic: Fix the probe error path
+    - mtd: rawnand: xway: Fix the probe error path
+    - mtd: rawnand: orion: Fix the probe error path
+    - mtd: rawnand: socrates: Fix the probe error path
+    - mtd: rawnand: oxnas: Fix the probe error path
+    - mtd: rawnand: sunxi: Fix the probe error path
+    - mtd: rawnand: plat_nand: Fix the probe error path
+    - mtd: rawnand: pasemi: Fix the probe error path
+    - mtd: rawnand: mtk: Fix the probe error path
+    - mtd: rawnand: tmio: Fix the probe error path
+    - w1: omap-hdq: cleanup to add missing newline for some dev_dbg
+    - f2fs: fix checkpoint=disable:%u%%
+    - perf probe: Do not show the skipped events
+    - perf probe: Fix to check blacklist address correctly
+    - perf probe: Check address correctness by map instead of _etext
+    - perf symbols: Fix debuginfo search for Ubuntu
+    - perf symbols: Fix kernel maps for kcore and eBPF
+    - Linux 5.4.48
+
+  * The thread level parallelism would be a bottleneck when searching for the
+    shared pmd by using hugetlbfs (LP: #1882039)
+    - hugetlbfs: take read_lock on i_mmap for PMD sharing
+
+  * Support Audio Mute LED for two new HP laptops (LP: #1884251)
+    - ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems
+
+  * Focal update: v5.4.47 upstream stable release (LP: #1884089)
+    - ipv6: fix IPV6_ADDRFORM operation logic
+    - mlxsw: core: Use different get_trend() callbacks for different thermal zones
+    - net_failover: fixed rollback in net_failover_open()
+    - tun: correct header offsets in napi frags mode
+    - bridge: Avoid infinite loop when suppressing NS messages with invalid
+      options
+    - vxlan: Avoid infinite loop when suppressing NS messages with invalid options
+    - bpf: Support llvm-objcopy for vmlinux BTF
+    - elfnote: mark all .note sections SHF_ALLOC
+    - Input: mms114 - fix handling of mms345l
+    - ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
+    - sched/fair: Don't NUMA balance for kthreads
+    - Input: synaptics - add a second working PNP_ID for Lenovo T470s
+    - csky: Fixup abiv2 syscall_trace break a4 & a5
+    - gfs2: Even more gfs2_find_jhead fixes
+    - drivers/net/ibmvnic: Update VNIC protocol version reporting
+    - powerpc/xive: Clear the page tables for the ESB IO mapping
+    - spi: dw: Fix native CS being unset
+    - ath9k_htc: Silence undersized packet warnings
+    - smack: avoid unused 'sip' variable warning
+    - RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated
+    - padata: add separate cpuhp node for CPUHP_PADATA_DEAD
+    - s390/pci: Log new handle in clp_disable_fh()
+    - x86/cpu/amd: Make erratum #1054 a legacy erratum
+    - KVM: x86: only do L1TF workaround on affected processors
+    - PCI/PM: Adjust pcie_wait_for_link_delay() for caller delay
+    - perf probe: Accept the instance number of kretprobe event
+    - mm: add kvfree_sensitive() for freeing sensitive data objects
+    - selftests: fix flower parent qdisc
+    - fanotify: fix ignore mask logic for events on child and on dir
+    - aio: fix async fsync creds
+    - ipv4: fix a RCU-list lock in fib_triestat_seq_show
+    - iwlwifi: mvm: fix NVM check for 3168 devices
+    - sctp: fix possibly using a bad saddr with a given dst
+    - sctp: fix refcount bug in sctp_wfree
+    - x86_64: Fix jiffies ODR violation
+    - x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs
+    - x86/speculation: Prevent rogue cross-process SSBD shutdown
+    - x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced
+      IBRS.
+    - x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches.
+    - x86/reboot/quirks: Add MacBook6,1 reboot quirk
+    - perf/x86/intel: Add more available bits for OFFCORE_RESPONSE of Intel
+      Tremont
+    - KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be generated
+    - KVM: x86: respect singlestep when emulating instruction
+    - KVM: x86: Fix APIC page invalidation race
+    - powerpc/ptdump: Properly handle non standard page size
+    - ASoC: max9867: fix volume controls
+    - io_uring: use kvfree() in io_sqe_buffer_register()
+    - efi/efivars: Add missing kobject_put() in sysfs entry creation error path
+    - smb3: fix incorrect number of credits when ioctl MaxOutputResponse > 64K
+    - smb3: add indatalen that can be a non-zero value to calculation of credit
+      charge in smb2 ioctl
+    - watchdog: imx_sc_wdt: Fix reboot on crash
+    - ALSA: es1688: Add the missed snd_card_free()
+    - ALSA: fireface: fix configuration error for nominal sampling transfer
+      frequency
+    - ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines
+    - ALSA: pcm: disallow linking stream to itself
+    - ALSA: pcm: fix snd_pcm_link() lockdep splat
+    - ALSA: usb-audio: Fix inconsistent card PM state after resume
+    - ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt
+      Dock
+    - ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
+    - ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
+    - ACPI: GED: add support for _Exx / _Lxx handler methods
+    - ACPI: PM: Avoid using power resources if there are none for D0
+    - arm64: acpi: fix UBSAN warning
+    - lib/lzo: fix ambiguous encoding bug in lzo-rle
+    - nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
+    - spi: dw: Fix controller unregister order
+    - spi: Fix controller unregister order
+    - spi: pxa2xx: Fix controller unregister order
+    - spi: pxa2xx: Fix runtime PM ref imbalance on probe error
+    - spi: bcm2835: Fix controller unregister order
+    - spi: bcm2835aux: Fix controller unregister order
+    - spi: bcm-qspi: Handle clock probe deferral
+    - spi: bcm-qspi: when tx/rx buffer is NULL set to 0
+    - PM: runtime: clk: Fix clk_pm_runtime_get() error path
+    - gup: document and work around "COW can break either way" issue
+    - crypto: cavium/nitrox - Fix 'nitrox_get_first_device()' when ndevlist is
+      fully iterated
+    - crypto: algapi - Avoid spurious modprobe on LOADED
+    - crypto: drbg - fix error return code in drbg_alloc_state()
+    - x86/{mce,mm}: Unmap the entire page if the whole page is affected and
+      poisoned
+    - firmware: imx: warn on unexpected RX
+    - firmware: imx-scu: Support one TX and one RX
+    - firmware: imx: scu: Fix corruption of header
+    - crypto: virtio: Fix use-after-free in virtio_crypto_skcipher_finalize_req()
+    - crypto: virtio: Fix src/dst scatterlist calculation in
+      __virtio_crypto_skcipher_do_req()
+    - crypto: virtio: Fix dest length calculation in
+      __virtio_crypto_skcipher_do_req()
+    - dccp: Fix possible memleak in dccp_init and dccp_fini
+    - selftests/net: in rxtimestamp getopt_long needs terminating null entry
+    - net/mlx5: drain health workqueue in case of driver load error
+    - net/mlx5: Fix fatal error handling during device load
+    - net/mlx5e: Fix repeated XSK usage on one channel
+    - ovl: initialize error in ovl_copy_xattr
+    - proc: Use new_inode not new_inode_pseudo
+    - remoteproc: Fall back to using parent memory pool if no dedicated available
+    - remoteproc: Fix and restore the parenting hierarchy for vdev
+    - cpufreq: Fix up cpufreq_boost_set_sw()
+    - EDAC/skx: Use the mcmtr register to retrieve close_pg/bank_xor_enable
+    - video: vt8500lcdfb: fix fallthrough warning
+    - video: fbdev: w100fb: Fix a potential double free.
+    - KVM: nVMX: Skip IBPB when switching between vmcs01 and vmcs02
+    - KVM: nSVM: fix condition for filtering async PF
+    - KVM: nSVM: leave ASID aside in copy_vmcb_control_area
+    - KVM: nVMX: Consult only the "basic" exit reason when routing nested exit
+    - KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
+    - KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
+    - KVM: arm64: Stop writing aarch32's CSSELR into ACTLR
+    - KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
+    - scsi: megaraid_sas: TM command refire leads to controller firmware crash
+    - scsi: lpfc: Fix negation of else clause in lpfc_prep_node_fc4type
+    - selftests/ftrace: Return unsupported if no error_log file
+    - ath9k: Fix use-after-free Read in htc_connect_service
+    - ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
+    - ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
+    - ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
+    - ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
+    - Smack: slab-out-of-bounds in vsscanf
+    - drm/vkms: Hold gem object while still in-use
+    - mm/slub: fix a memory leak in sysfs_slab_add()
+    - fat: don't allow to mount if the FAT length == 0
+    - perf: Add cond_resched() to task_function_call()
+    - agp/intel: Reinforce the barrier after GTT updates
+    - mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
+    - mmc: mmci_sdmmc: fix DMA API warning overlapping mappings
+    - mmc: tmio: Further fixup runtime PM management at remove
+    - mmc: uniphier-sd: call devm_request_irq() after tmio_mmc_host_probe()
+    - ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description
+    - mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card()
+    - mmc: sdio: Fix several potential memory leaks in mmc_sdio_init_card()
+    - block/floppy: fix contended case in floppy_queue_rq()
+    - xen/pvcalls-back: test for errors when calling backend_connect()
+    - KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception
+    - KVM: arm64: Save the host's PtrAuth keys in non-preemptible context
+    - Linux 5.4.47
+
+  * apparmor reference leak causes refcount_t overflow with af_alg_accept()
+    (LP: #1883962)
+    - apparmor: check/put label on apparmor_sk_clone_security()
+
+  * Focal update: v5.4.46 upstream stable release (LP: #1883184)
+    - devinet: fix memleak in inetdev_init()
+    - l2tp: add sk_family checks to l2tp_validate_socket
+    - l2tp: do not use inet_hash()/inet_unhash()
+    - net/mlx5: Fix crash upon suspend/resume
+    - net: stmmac: enable timestamp snapshot for required PTP packets in dwmac
+      v5.10a
+    - net: usb: qmi_wwan: add Telit LE910C1-EUX composition
+    - NFC: st21nfca: add missed kfree_skb() in an error path
+    - nfp: flower: fix used time of merge flow statistics
+    - vsock: fix timeout in vsock_accept()
+    - net: check untrusted gso_size at kernel entry
+    - net: be more gentle about silly gso requests coming from user
+    - USB: serial: qcserial: add DW5816e QDL support
+    - USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
+    - USB: serial: option: add Telit LE910C1-EUX compositions
+    - USB: serial: ch341: add basis for quirk detection
+    - iio:chemical:sps30: Fix timestamp alignment
+    - iio: vcnl4000: Fix i2c swapped word reading.
+    - iio:chemical:pms7003: Fix timestamp alignment and prevent data leak.
+    - iio: adc: stm32-adc: fix a wrong error message when probing interrupts
+    - usb: musb: start session in resume for host port
+    - usb: musb: Fix runtime PM imbalance on error
+    - vt: keyboard: avoid signed integer overflow in k_ascii
+    - tty: hvc_console, fix crashes on parallel open/close
+    - staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
+    - CDC-ACM: heed quirk also in error handling
+    - nvmem: qfprom: remove incorrect write support
+    - uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly
+      aligned
+    - Revert "net/mlx5: Annotate mutex destroy for root ns"
+    - Linux 5.4.46
+
+  * Focal update: v5.4.45 upstream stable release (LP: #1882802)
+    - mm: Fix mremap not considering huge pmd devmap
+    - HID: sony: Fix for broken buttons on DS3 USB dongles
+    - HID: multitouch: enable multi-input as a quirk for some devices
+    - HID: i2c-hid: add Schneider SCL142ALM to descriptor override
+    - p54usb: add AirVasT USB stick device-id
+    - mt76: mt76x02u: Add support for newer versions of the XBox One wifi adapter
+    - mmc: fix compilation of user API
+    - media: Revert "staging: imgu: Address a compiler warning on alignment"
+    - media: staging: ipu3-imgu: Move alignment attribute to field
+    - scsi: ufs: Release clock if DMA map fails
+    - net: dsa: mt7530: set CPU port to fallback mode
+    - airo: Fix read overflows sending packets
+    - RDMA/qedr: Fix qpids xarray api used
+    - RDMA/qedr: Fix synchronization methods and memory leaks in qedr
+    - ARC: Fix ICCM & DCCM runtime size checks
+    - ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
+    - evm: Fix RCU list related warnings
+    - scsi: pm: Balance pm_only counter of request queue during system resume
+    - i2c: altera: Fix race between xfer_msg and isr thread
+    - io_uring: initialize ctx->sqo_wait earlier
+    - x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
+    - net: bmac: Fix read of MAC address from ROM
+    - drm/edid: Add Oculus Rift S to non-desktop list
+    - s390/mm: fix set_huge_pte_at() for empty ptes
+    - null_blk: return error for invalid zone size
+    - net/ethernet/freescale: rework quiesce/activate for ucc_geth
+    - net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
+    - selftests: mlxsw: qos_mc_aware: Specify arping timeout as an integer
+    - net: smsc911x: Fix runtime PM imbalance on error
+    - Linux 5.4.45
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Sat, 08 Aug 2020 02:05:56 -0400
+
+linux (5.4.0-42.46) focal; urgency=medium
+
+  * focal/linux: 5.4.0-42.46 -proposed tracker (LP: #1887069)
+
+  * linux 4.15.0-109-generic network DoS regression vs -108 (LP: #1886668)
+    - SAUCE: Revert "netprio_cgroup: Fix unlimited memory leak of v2 cgroups"
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Thu, 09 Jul 2020 19:50:26 -0400
+
+linux (5.4.0-41.45) focal; urgency=medium
+
+  * focal/linux: 5.4.0-41.45 -proposed tracker (LP: #1885855)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * CVE-2019-19642
+    - kernel/relay.c: handle alloc_percpu returning NULL in relay_open
+
+  * CVE-2019-16089
+    - SAUCE: nbd_genl_status: null check for nla_nest_start
+
+  * CVE-2020-11935
+    - aufs: do not call i_readcount_inc()
+
+  * ip_defrag.sh in net from ubuntu_kernel_selftests failed with 5.0 / 5.3 / 5.4
+    kernel (LP: #1826848)
+    - selftests: net: ip_defrag: ignore EPERM
+
+  * Update lockdown patches (LP: #1884159)
+    - SAUCE: acpi: disallow loading configfs acpi tables when locked down
+
+  * seccomp_bpf fails on powerpc (LP: #1885757)
+    - SAUCE: selftests/seccomp: fix ptrace tests on powerpc
+
+  * Introduce the new NVIDIA 418-server and 440-server series, and update the
+    current NVIDIA drivers (LP: #1881137)
+    - [packaging] add signed modules for the 418-server and the 440-server
+      flavours
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 03 Jul 2020 10:32:54 +0200
+
+linux (5.4.0-40.44) focal; urgency=medium
+
+  * linux-oem-5.6-tools-common and -tools-host should be dropped (LP: #1881120)
+    - [Packaging] Add Conflicts/Replaces to remove linux-oem-5.6-tools-common and
+      -tools-host
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Slow send speed with Intel I219-V on Ubuntu 18.04.1 (LP: #1802691)
+    - e1000e: Disable TSO for buffer overrun workaround
+
+  * CVE-2020-0543
+    - UBUNTU/SAUCE: x86/speculation/srbds: do not try to turn mitigation off when
+      not supported
+
+  * Realtek 8723DE [10ec:d723] subsystem [10ec:d738]  disconnects unsolicitedly
+    when Bluetooth is paired: Reason: 23=IEEE8021X_FAILED (LP: #1878147)
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: Move driver IQK to set channel before
+      association for 11N chip"
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: fix rate for a while after being
+      connected"
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: No retry and report for auth and assoc"
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: 8723d: Add coex support"
+    - rtw88: add a debugfs entry to dump coex's info
+    - rtw88: add a debugfs entry to enable/disable coex mechanism
+    - rtw88: 8723d: Add coex support
+    - SAUCE: rtw88: coex: 8723d: set antanna control owner
+    - SAUCE: rtw88: coex: 8723d: handle BT inquiry cases
+    - SAUCE: rtw88: fix EAPOL 4-way failure by finish IQK earlier
+
+  * CPU stress test fails with focal kernel (LP: #1867900)
+    - [Config] Disable hisi_sec2 temporarily
+
+  * Enforce all config annotations (LP: #1879327)
+    - [Config]: do not enforce CONFIG_VERSION_SIGNATURE
+    - [Config]: prepare to enforce all
+    - [Config]: enforce all config options
+
+  * Focal update: v5.4.44 upstream stable release (LP: #1881927)
+    - ax25: fix setsockopt(SO_BINDTODEVICE)
+    - dpaa_eth: fix usage as DSA master, try 3
+    - net: don't return invalid table id error when we fall back to PF_UNSPEC
+    - net: dsa: mt7530: fix roaming from DSA user ports
+    - net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend
+    - __netif_receive_skb_core: pass skb by reference
+    - net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*
+    - net: ipip: fix wrong address family in init error path
+    - net/mlx5: Add command entry handling completion
+    - net: mvpp2: fix RX hashing for non-10G ports
+    - net: nlmsg_cancel() if put fails for nhmsg
+    - net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
+    - net: revert "net: get rid of an signed integer overflow in
+      ip_idents_reserve()"
+    - net sched: fix reporting the first-time use timestamp
+    - net/tls: fix race condition causing kernel panic
+    - nexthop: Fix attribute checking for groups
+    - r8152: support additional Microsoft Surface Ethernet Adapter variant
+    - sctp: Don't add the shutdown timer if its already been added
+    - sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and
+      socket is closed
+    - tipc: block BH before using dst_cache
+    - net/mlx5e: kTLS, Destroy key object after destroying the TIS
+    - net/mlx5e: Fix inner tirs handling
+    - net/mlx5: Fix memory leak in mlx5_events_init
+    - net/mlx5e: Update netdev txq on completions during closure
+    - net/mlx5: Fix error flow in case of function_setup failure
+    - net/mlx5: Annotate mutex destroy for root ns
+    - net/tls: fix encryption error checking
+    - net/tls: free record only on encryption error
+    - net: sun: fix missing release regions in cas_init_one().
+    - net/mlx4_core: fix a memory leak bug.
+    - mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload
+      fails
+    - ARM: dts: rockchip: fix phy nodename for rk3228-evb
+    - ARM: dts: rockchip: fix phy nodename for rk3229-xms6
+    - arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
+    - arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
+    - ARM: dts: rockchip: swap clock-names of gpu nodes
+    - ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
+    - gpio: tegra: mask GPIO IRQs during IRQ shutdown
+    - ALSA: usb-audio: add mapping for ASRock TRX40 Creator
+    - net: microchip: encx24j600: add missed kthread_stop
+    - gfs2: move privileged user check to gfs2_quota_lock_check
+    - gfs2: Grab glock reference sooner in gfs2_add_revoke
+    - drm/amdgpu: drop unnecessary cancel_delayed_work_sync on PG ungate
+    - drm/amd/powerplay: perform PG ungate prior to CG ungate
+    - drm/amdgpu: Use GEM obj reference for KFD BOs
+    - cachefiles: Fix race between read_waiter and read_copier involving op->to_do
+    - usb: dwc3: pci: Enable extcon driver for Intel Merrifield
+    - usb: phy: twl6030-usb: Fix a resource leak in an error handling path in
+      'twl6030_usb_probe()'
+    - usb: gadget: legacy: fix redundant initialization warnings
+    - net: freescale: select CONFIG_FIXED_PHY where needed
+    - IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
+    - riscv: stacktrace: Fix undefined reference to `walk_stackframe'
+    - clk: ti: am33xx: fix RTC clock parent
+    - csky: Fixup msa highest 3 bits mask
+    - csky: Fixup perf callchain unwind
+    - csky: Fixup remove duplicate irq_disable
+    - hwmon: (nct7904) Fix incorrect range of temperature limit registers
+    - cifs: Fix null pointer check in cifs_read
+    - csky: Fixup raw_copy_from_user()
+    - samples: bpf: Fix build error
+    - drivers: net: hamradio: Fix suspicious RCU usage warning in bpqether.c
+    - Input: usbtouchscreen - add support for BonXeon TP
+    - Input: evdev - call input_flush_device() on release(), not flush()
+    - Input: xpad - add custom init packet for Xbox One S controllers
+    - Input: dlink-dir685-touchkeys - fix a typo in driver name
+    - Input: i8042 - add ThinkPad S230u to i8042 reset list
+    - Input: synaptics-rmi4 - really fix attn_data use-after-free
+    - Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
+    - ARM: 8970/1: decompressor: increase tag size
+    - ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
+    - ARM: uaccess: integrate uaccess_save and uaccess_restore
+    - ARM: uaccess: fix DACR mismatch with nested exceptions
+    - gpio: exar: Fix bad handling for ida_simple_get error path
+    - arm64: dts: mt8173: fix vcodec-enc clock
+    - soc: mediatek: cmdq: return send msg error code
+    - gpu/drm: Ingenic: Fix opaque pointer casted to wrong type
+    - IB/qib: Call kobject_put() when kobject_init_and_add() fails
+    - ARM: dts/imx6q-bx50v3: Set display interface clock parents
+    - ARM: dts: bcm2835-rpi-zero-w: Fix led polarity
+    - ARM: dts: bcm: HR2: Fix PPI interrupt types
+    - mmc: block: Fix use-after-free issue for rpmb
+    - gpio: pxa: Fix return value of pxa_gpio_probe()
+    - gpio: bcm-kona: Fix return value of bcm_kona_gpio_probe()
+    - RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
+    - ALSA: hwdep: fix a left shifting 1 by 31 UB bug
+    - ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
+    - ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
+    - exec: Always set cap_ambient in cap_bprm_set_creds
+    - clk: qcom: gcc: Fix parent for gpll0_out_even
+    - ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio
+    - ALSA: hda/realtek - Add new codec supported for ALC287
+    - libceph: ignore pool overlay and cache logic on redirects
+    - ceph: flush release queue when handling caps for unknown inode
+    - RDMA/core: Fix double destruction of uobject
+    - drm/amd/display: drop cursor position check in atomic test
+    - IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode
+    - mm,thp: stop leaking unreleased file pages
+    - mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
+    - fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
+    - include/asm-generic/topology.h: guard cpumask_of_node() macro argument
+    - Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT"
+    - gpio: fix locking open drain IRQ lines
+    - iommu: Fix reference count leak in iommu_group_alloc.
+    - parisc: Fix kernel panic in mem_init()
+    - cfg80211: fix debugfs rename crash
+    - x86/syscalls: Revert "x86/syscalls: Make __X32_SYSCALL_BIT be unsigned long"
+    - mac80211: mesh: fix discovery timer re-arming issue / crash
+    - x86/dma: Fix max PFN arithmetic overflow on 32 bit systems
+    - copy_xstate_to_kernel(): don't leave parts of destination uninitialized
+    - xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
+    - xfrm: do pskb_pull properly in __xfrm_transport_prep
+    - xfrm: remove the xfrm_state_put call becofe going to out_reset
+    - xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
+    - xfrm interface: fix oops when deleting a x-netns interface
+    - xfrm: fix a warning in xfrm_policy_insert_list
+    - xfrm: fix a NULL-ptr deref in xfrm_local_error
+    - xfrm: fix error in comment
+    - ip_vti: receive ipip packet by calling ip_tunnel_rcv
+    - netfilter: nft_reject_bridge: enable reject with bridge vlan
+    - netfilter: ipset: Fix subcounter update skip
+    - netfilter: conntrack: make conntrack userspace helpers work again
+    - netfilter: nfnetlink_cthelper: unbreak userspace helper support
+    - netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
+    - esp6: get the right proto for transport mode in esp6_gso_encap
+    - bnxt_en: Fix accumulation of bp->net_stats_prev.
+    - ieee80211: Fix incorrect mask for default PE duration
+    - xsk: Add overflow check for u64 division, stored into u32
+    - qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
+    - crypto: chelsio/chtls: properly set tp->lsndtime
+    - nexthops: Move code from remove_nexthop_from_groups to remove_nh_grp_entry
+    - nexthops: don't modify published nexthop groups
+    - nexthop: Expand nexthop_is_multipath in a few places
+    - ipv4: nexthop version of fib_info_nh_uses_dev
+    - net: dsa: declare lockless TX feature for slave ports
+    - bonding: Fix reference count leak in bond_sysfs_slave_add.
+    - netfilter: conntrack: comparison of unsigned in cthelper confirmation
+    - netfilter: conntrack: Pass value of ctinfo to __nf_conntrack_update
+    - netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
+    - perf: Make perf able to build with latest libbfd
+    - Linux 5.4.44
+
+  * Focal update: v5.4.43 upstream stable release (LP: #1881178)
+    - i2c: dev: Fix the race between the release of i2c_dev and cdev
+    - KVM: SVM: Fix potential memory leak in svm_cpu_init()
+    - ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
+    - evm: Check also if *tfm is an error pointer in init_desc()
+    - ima: Fix return value of ima_write_policy()
+    - ubifs: fix wrong use of crypto_shash_descsize()
+    - ACPI: EC: PM: Avoid flushing EC work when EC GPE is inactive
+    - mtd: spinand: Propagate ECC information to the MTD structure
+    - fix multiplication overflow in copy_fdtable()
+    - ubifs: remove broken lazytime support
+    - i2c: fix missing pm_runtime_put_sync in i2c_device_probe
+    - iommu/amd: Fix over-read of ACPI UID from IVRS table
+    - evm: Fix a small race in init_desc()
+    - i2c: mux: demux-pinctrl: Fix an error handling path in
+      'i2c_demux_pinctrl_probe()'
+    - ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
+    - afs: Don't unlock fetched data pages until the op completes successfully
+    - mtd: Fix mtd not registered due to nvmem name collision
+    - kbuild: avoid concurrency issue in parallel building dtbs and dtbs_check
+    - net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()
+    - gcc-common.h: Update for GCC 10
+    - HID: multitouch: add eGalaxTouch P80H84 support
+    - HID: alps: Add AUI1657 device ID
+    - HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead
+    - scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
+    - scsi: qla2xxx: Delete all sessions before unregister local nvme port
+    - configfs: fix config_item refcnt leak in configfs_rmdir()
+    - vhost/vsock: fix packet delivery order to monitoring devices
+    - aquantia: Fix the media type of AQC100 ethernet controller in the driver
+    - component: Silence bind error on -EPROBE_DEFER
+    - net/ena: Fix build warning in ena_xdp_set()
+    - scsi: ibmvscsi: Fix WARN_ON during event pool release
+    - HID: i2c-hid: reset Synaptics SYNA2393 on resume
+    - x86/mm/cpa: Flush direct map alias during cpa
+    - ibmvnic: Skip fatal error reset after passive init
+    - x86/apic: Move TSC deadline timer debug printk
+    - gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
+    - HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock
+    - ceph: fix double unlock in handle_cap_export()
+    - stmmac: fix pointer check after utilization in stmmac_interrupt
+    - USB: core: Fix misleading driver bug report
+    - platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
+    - iommu/amd: Call domain_flush_complete() in update_domain()
+    - drm/amd/display: Prevent dpcd reads with passive dongles
+    - KVM: selftests: Fix build for evmcs.h
+    - ARM: futex: Address build warning
+    - scripts/gdb: repair rb_first() and rb_last()
+    - ALSA: hda - constify and cleanup static NodeID tables
+    - ALSA: hda: patch_realtek: fix empty macro usage in if block
+    - ALSA: hda: Manage concurrent reg access more properly
+    - ALSA: hda/realtek - Add supported new mute Led for HP
+    - ALSA: hda/realtek - Add HP new mute led supported for ALC236
+    - ALSA: hda/realtek: Add quirk for Samsung Notebook
+    - ALSA: hda/realtek - Enable headset mic of ASUS GL503VM with ALC295
+    - ALSA: hda/realtek - Enable headset mic of ASUS UX550GE with ALC295
+    - ALSA: hda/realtek: Enable headset mic of ASUS UX581LV with ALC295
+    - KVM: x86: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c
+    - ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio
+      option
+    - ALSA: pcm: fix incorrect hw_base increase
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme
+    - ALSA: hda/realtek - Add more fixup entries for Clevo machines
+    - scsi: qla2xxx: Do not log message when reading port speed via sysfs
+    - scsi: target: Put lun_ref at end of tmr processing
+    - arm64: Fix PTRACE_SYSEMU semantics
+    - drm/etnaviv: fix perfmon domain interation
+    - apparmor: Fix aa_label refcnt leak in policy_update
+    - dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
+    - drm/etnaviv: Fix a leak in submit_pin_objects()
+    - dmaengine: dmatest: Restore default for channel
+    - dmaengine: owl: Use correct lock in owl_dma_get_pchan()
+    - vsprintf: don't obfuscate NULL and error pointers
+    - drm/i915/gvt: Init DPLL/DDI vreg for virtual display instead of inheritance.
+    - drm/i915: Propagate error from completed fences
+    - powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
+    - powerpc/64s: Disable STRICT_KERNEL_RWX
+    - bpf: Avoid setting bpf insns pages read-only when prog is jited
+    - kbuild: Remove debug info from kallsyms linking
+    - Revert "gfs2: Don't demote a glock until its revokes are written"
+    - media: fdp1: Fix R-Car M3-N naming in debug message
+    - staging: iio: ad2s1210: Fix SPI reading
+    - staging: kpc2000: fix error return code in kp2000_pcie_probe()
+    - staging: greybus: Fix uninitialized scalar variable
+    - iio: sca3000: Remove an erroneous 'get_device()'
+    - iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
+    - iio: adc: ti-ads8344: Fix channel selection
+    - misc: rtsx: Add short delay after exit from ASPM
+    - tty: serial: add missing spin_lock_init for SiFive serial console
+    - mei: release me_cl object reference
+    - ipack: tpci200: fix error return code in tpci200_register()
+    - s390/kaslr: add support for R_390_JMP_SLOT relocation type
+    - device-dax: don't leak kernel memory to user space after unloading kmem
+    - rapidio: fix an error in get_user_pages_fast() error handling
+    - kasan: disable branch tracing for core runtime
+    - rxrpc: Fix the excessive initial retransmission timeout
+    - rxrpc: Fix a memory leak in rxkad_verify_response()
+    - s390/kexec_file: fix initrd location for kdump kernel
+    - flow_dissector: Drop BPF flow dissector prog ref on netns cleanup
+    - x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
+    - iio: adc: stm32-adc: Use dma_request_chan() instead
+      dma_request_slave_channel()
+    - iio: adc: stm32-adc: fix device used to request dma
+    - iio: adc: stm32-dfsdm: Use dma_request_chan() instead
+      dma_request_slave_channel()
+    - iio: adc: stm32-dfsdm: fix device used to request dma
+    - rxrpc: Trace discarded ACKs
+    - rxrpc: Fix ack discard
+    - tpm: check event log version before reading final events
+    - sched/fair: Reorder enqueue/dequeue_task_fair path
+    - sched/fair: Fix reordering of enqueue/dequeue_task_fair()
+    - sched/fair: Fix enqueue_task_fair() warning some more
+    - Linux 5.4.43
+
+  * Focal update: v5.4.42 upstream stable release (LP: #1879759)
+    - net: dsa: Do not make user port errors fatal
+    - shmem: fix possible deadlocks on shmlock_user_lock
+    - net: phy: microchip_t1: add lan87xx_phy_init to initialize the lan87xx phy.
+    - KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read
+    - gpio: pca953x: Fix pca953x_gpio_set_config
+    - SUNRPC: Add "@len" parameter to gss_unwrap()
+    - SUNRPC: Fix GSS privacy computation of auth->au_ralign
+    - net/sonic: Fix a resource leak in an error handling path in
+      'jazz_sonic_probe()'
+    - net: moxa: Fix a potential double 'free_irq()'
+    - ftrace/selftests: workaround cgroup RT scheduling issues
+    - drop_monitor: work around gcc-10 stringop-overflow warning
+    - virtio-blk: handle block_device_operations callbacks after hot unplug
+    - sun6i: dsi: fix gcc-4.8
+    - net_sched: fix tcm_parent in tc filter dump
+    - scsi: sg: add sg_remove_request in sg_write
+    - mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
+    - dpaa2-eth: properly handle buffer size restrictions
+    - net: fix a potential recursive NETDEV_FEAT_CHANGE
+    - netlabel: cope with NULL catmap
+    - net: phy: fix aneg restart in phy_ethtool_set_eee
+    - net: stmmac: fix num_por initialization
+    - pppoe: only process PADT targeted at local interfaces
+    - Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
+    - tcp: fix error recovery in tcp_zerocopy_receive()
+    - tcp: fix SO_RCVLOWAT hangs with fat skbs
+    - virtio_net: fix lockdep warning on 32 bit
+    - dpaa2-eth: prevent array underflow in update_cls_rule()
+    - hinic: fix a bug of ndo_stop
+    - net: dsa: loop: Add module soft dependency
+    - net: ipv4: really enforce backoff for redirects
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+    - net: tcp: fix rx timestamp behavior for tcp_recvmsg
+    - nfp: abm: fix error return code in nfp_abm_vnic_alloc()
+    - r8169: re-establish support for RTL8401 chip version
+    - umh: fix memory leak on execve failure
+    - riscv: fix vdso build with lld
+    - dmaengine: pch_dma.c: Avoid data race between probe and irq handler
+    - dmaengine: mmp_tdma: Do not ignore slave config validation errors
+    - dmaengine: mmp_tdma: Reset channel error on release
+    - selftests/ftrace: Check the first record for kprobe_args_type.tc
+    - cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
+    - ALSA: hda/hdmi: fix race in monitor detection during probe
+    - drm/amd/powerplay: avoid using pm_en before it is initialized revised
+    - drm/amd/display: check if REFCLK_CNTL register is present
+    - drm/amd/display: Update downspread percent to match spreadsheet for DCN2.1
+    - drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
+    - drm/amdgpu: simplify padding calculations (v2)
+    - drm/amdgpu: invalidate L2 before SDMA IBs (v2)
+    - ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
+    - gfs2: Another gfs2_walk_metadata fix
+    - mmc: sdhci-pci-gli: Fix no irq handler from suspend
+    - IB/hfi1: Fix another case where pq is left on waitlist
+    - ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake()
+    - pinctrl: sunrisepoint: Fix PAD lock register offset for SPT-H
+    - pinctrl: baytrail: Enable pin configuration setting for GPIO chip
+    - pinctrl: qcom: fix wrong write in update_dual_edge
+    - pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
+    - bpf: Fix error return code in map_lookup_and_delete_elem()
+    - ALSA: firewire-lib: fix 'function sizeof not defined' error of tracepoints
+      format
+    - i40iw: Fix error handling in i40iw_manage_arp_cache()
+    - drm/i915: Don't enable WaIncreaseLatencyIPCEnabled when IPC is disabled
+    - bpf, sockmap: msg_pop_data can incorrecty set an sge length
+    - bpf, sockmap: bpf_tcp_ingress needs to subtract bytes from sg.size
+    - mmc: alcor: Fix a resource leak in the error path for ->probe()
+    - mmc: sdhci-pci-gli: Fix can not access GL9750 after reboot from Windows 10
+    - mmc: core: Check request type before completing the request
+    - mmc: core: Fix recursive locking issue in CQE recovery path
+    - mmc: block: Fix request completion in the CQE timeout path
+    - gfs2: More gfs2_find_jhead fixes
+    - fork: prevent accidental access to clone3 features
+    - drm/amdgpu: force fbdev into vram
+    - NFS: Fix fscache super_cookie index_key from changing after umount
+    - nfs: fscache: use timespec64 in inode auxdata
+    - NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
+    - netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
+    - drm/i915/gvt: Fix kernel oops for 3-level ppgtt guest
+    - arm64: fix the flush_icache_range arguments in machine_kexec
+    - nfs: fix NULL deference in nfs4_get_valid_delegation
+    - SUNRPC: Signalled ASYNC tasks need to exit
+    - netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
+    - netfilter: nft_set_rbtree: Add missing expired checks
+    - RDMA/rxe: Always return ERR_PTR from rxe_create_mmap_info()
+    - IB/mlx4: Test return value of calls to ib_get_cached_pkey
+    - IB/core: Fix potential NULL pointer dereference in pkey cache
+    - RDMA/core: Fix double put of resource
+    - RDMA/iw_cxgb4: Fix incorrect function parameters
+    - hwmon: (da9052) Synchronize access with mfd
+    - s390/ism: fix error return code in ism_probe()
+    - mm, memcg: fix inconsistent oom event behavior
+    - NFSv3: fix rpc receive buffer size for MOUNT call
+    - pnp: Use list_for_each_entry() instead of open coding
+    - net/rds: Use ERR_PTR for rds_message_alloc_sgs()
+    - Stop the ad-hoc games with -Wno-maybe-initialized
+    - [Config] updateconfigs for CC_HAS_WARN_MAYBE_UNINITIALIZED
+    - gcc-10: disable 'zero-length-bounds' warning for now
+    - gcc-10: disable 'array-bounds' warning for now
+    - gcc-10: disable 'stringop-overflow' warning for now
+    - gcc-10: disable 'restrict' warning for now
+    - gcc-10 warnings: fix low-hanging fruit
+    - gcc-10: mark more functions __init to avoid section mismatch warnings
+    - gcc-10: avoid shadowing standard library 'free()' in crypto
+    - usb: usbfs: correct kernel->user page attribute mismatch
+    - USB: usbfs: fix mmap dma mismatch
+    - ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
+    - ALSA: hda/realtek - Add COEF workaround for ASUS ZenBook UX431DA
+    - ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
+    - ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
+    - usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
+    - usb: host: xhci-plat: keep runtime active when removing host
+    - usb: cdns3: gadget: prev_req->trb is NULL for ep0
+    - usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
+    - Make the "Reducing compressed framebufer size" message be DRM_INFO_ONCE()
+    - ARM: dts: dra7: Fix bus_dma_limit for PCIe
+    - ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
+    - ARM: dts: imx6dl-yapp4: Fix Ursa board Ethernet connection
+    - drm/amd/display: add basic atomic check for cursor plane
+    - powerpc/32s: Fix build failure with CONFIG_PPC_KUAP_DEBUG
+    - cifs: fix leaked reference on requeued write
+    - x86: Fix early boot crash on gcc-10, third try
+    - x86/unwind/orc: Fix error handling in __unwind_start()
+    - exec: Move would_dump into flush_old_exec
+    - clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
+    - dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
+    - fanotify: fix merging marks masks with FAN_ONDIR
+    - usb: gadget: net2272: Fix a memory leak in an error handling path in
+      'net2272_plat_probe()'
+    - usb: gadget: audio: Fix a missing error return value in audio_bind()
+    - usb: gadget: legacy: fix error return code in gncm_bind()
+    - usb: gadget: legacy: fix error return code in cdc_bind()
+    - clk: Unlink clock if failed to prepare or enable
+    - arm64: dts: meson-g12b-khadas-vim3: add missing frddr_a status property
+    - arm64: dts: meson-g12-common: fix dwc2 clock names
+    - arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328
+      boards
+    - arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
+    - arm64: dts: imx8mn: Change SDMA1 ahb clock for imx8mn
+    - ARM: dts: r8a73a4: Add missing CMT1 interrupts
+    - arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes
+    - ARM: dts: r8a7740: Add missing extal2 to CPG node
+    - SUNRPC: Revert 241b1f419f0e ("SUNRPC: Remove xdr_buf_trim()")
+    - bpf: Fix sk_psock refcnt leak when receiving message
+    - KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
+    - Makefile: disallow data races on gcc-10 as well
+    - Linux 5.4.42
+
+  * upgrading to 4.15.0-99-generic breaks the sound and the trackpad
+    (LP: #1875916) // Focal update: v5.4.42 upstream stable release
+    (LP: #1879759)
+    - Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
+
+  * Pop sound from build-in speaker during cold boot and resume from S3
+    (LP: #1866357) // Focal update: v5.4.42 upstream stable release
+    (LP: #1879759)
+    - ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
+
+  * tpm: fix TIS locality timeout problems (LP: #1881710)
+    - SAUCE: tpm: fix TIS locality timeout problems
+
+  * [UBUNTU 20.04] s390x/pci: fix linking between PF and VF for multifunction
+    devices (LP: #1879704)
+    - PCI/IOV: Introduce pci_iov_sysfs_link() function
+    - s390/pci: create links between PFs and VFs
+
+  * Performing function level reset of AMD onboard USB and audio devices causes
+    system lockup (LP: #1865988)
+    - SAUCE: PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
+    - SAUCE: PCI: Avoid FLR for AMD Starship USB 3.0
+
+  * seccomp_benchmark times out on eoan (LP: #1881576)
+    - SAUCE: selftests/seccomp: use 90s as timeout
+
+  * ASoC/amd: add audio driver for amd renoir (LP: #1881046)
+    - ASoC: amd: add Renoir ACP3x IP register header
+    - ASoC: amd: add Renoir ACP PCI driver
+    - ASoC: amd: add acp init/de-init functions
+    - ASoC: amd: create acp3x pdm platform device
+    - ASoC: amd: add ACP3x PDM platform driver
+    - ASoC: amd: irq handler changes for ACP3x PDM dma driver
+    - ASoC: amd: add acp3x pdm driver dma ops
+    - ASoC: amd: add ACP PDM DMA driver dai ops
+    - ASoC: amd: add Renoir ACP PCI driver PM ops
+    - ASoC: amd: add ACP PDM DMA driver pm ops
+    - ASoC: amd: enable Renoir acp3x drivers build
+    - ASoC: amd: create platform devices for Renoir
+    - ASoC: amd: RN machine driver using dmic
+    - ASoC: amd: enable build for RN machine driver
+    - ASoC: amd: fix kernel warning
+    - ASoC: amd: refactoring dai_hw_params() callback
+    - ASoC: amd: return error when acp de-init fails
+    - [Config]: enable amd renoir ASoC audio
+
+  * Fix for secure boot rules in IMA arch policy on powerpc (LP: #1877955)
+    - powerpc/ima: Fix secure boot rules in ima arch policy
+
+  * [UBUNTU 20.04] s390x/pci: s390_pci_mmio_write/read fail when MIO
+    instructions are available (LP: #1874055)
+    - s390/pci: Fix s390_mmio_read/write with MIO
+
+  * security: lockdown: remove trailing semicolon before function body
+    (LP: #1880660)
+    - SAUCE: (lockdown) security: lockdown: remove trailing semicolon before
+      function body
+
+  * Fix incorrect speed/duplex when I210 device is runtime suspended
+    (LP: #1880656)
+    - igb: Report speed and duplex as unknown when device is runtime suspended
+
+  * [OMEN by HP Laptop 15-dh0xxx, Realtek ALC285, Black Mic, Left] Recording
+    problem (LP: #1874698)
+    - ASoC: SOF: Intel: hda: allow operation without i915 gfx
+    - ASoC: intel/skl/hda - add no-HDMI cases to generic HDA driver
+
+  * CVE-2020-13143
+    - USB: gadget: fix illegal array access in binding with UDC
+
+  * rtl8723bu wifi issue after being turned off (LP: #1878296)
+    - rtl8xxxu: Improve TX performance of RTL8723BU on rtl8xxxu driver
+    - rtl8xxxu: add bluetooth co-existence support for single antenna
+    - rtl8xxxu: remove set but not used variable 'rate_mask'
+    - rtl8xxxu: Remove set but not used variable 'vif', 'dev', 'len'
+
+  * Fix Pericom USB controller OHCI/EHCI PME# defect (LP: #1879321)
+    - serial: 8250_pci: Move Pericom IDs to pci_ids.h
+    - PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
+
+  * shiftfs: fix btrfs snapshot deletion (LP: #1879688)
+    - SAUCE: shiftfs: let userns root destroy subvolumes from other users
+
+  * [UBUNTU 20.04] s390x/pci: enumerate pci functions per physical adapter
+    (LP: #1874056)
+    - s390/pci: Improve handling of unset UID
+    - s390/pci: embedding hotplug_slot in zdev
+    - s390/pci: Expose new port attribute for PCIe functions
+    - s390/pci: adaptation of iommu to multifunction
+    - s390/pci: define kernel parameters for PCI multifunction
+    - s390/pci: define RID and RID available
+    - s390/pci: create zPCI bus
+    - s390/pci: adapt events for zbus
+    - s390/pci: Handling multifunctions
+    - s390/pci: Do not disable PF when VFs exist
+    - s390/pci: Documentation for zPCI
+    - s390/pci: removes wrong PCI multifunction assignment
+
+  * update-initramfs complains of missing amdgpu firmware files (LP: #1873325)
+    - SAUCE: drm/amdgpu: Remove unreleased arcturus and navi12 firmware from
+      modinfo
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Mon, 22 Jun 2020 17:59:17 -0300
+
+linux (5.4.0-39.43) focal; urgency=medium
+
+  * dkms-build: downloads fail in private PPAs (LP: #1883874)
+    - dkms-build: apt-cache policy elides username:password information
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 19 Jun 2020 11:56:47 +0200
+
+linux (5.4.0-37.41) focal; urgency=medium
+
+  * CVE-2020-0543
+    - SAUCE: x86/speculation/spectre_v2: Exclude Zhaoxin CPUs from SPECTRE_V2
+    - SAUCE: x86/cpu: Add a steppings field to struct x86_cpu_id
+    - SAUCE: x86/cpu: Add 'table' argument to cpu_matches()
+    - SAUCE: x86/speculation: Add Special Register Buffer Data Sampling (SRBDS)
+      mitigation
+    - SAUCE: x86/speculation: Add SRBDS vulnerability and mitigation documentation
+    - SAUCE: x86/speculation: Add Ivy Bridge to affected list
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Wed, 03 Jun 2020 11:24:23 -0300
+
+linux (5.4.0-34.38) focal; urgency=medium
+
+  * focal/linux: 5.4.0-34.38 -proposed tracker (LP: #1880118)
+
+  * debian/scripts/file-downloader does not handle positive failures correctly
+    (LP: #1878897)
+    - [Packaging] file-downloader not handling positive failures correctly
+
+  * Focal update: v5.4.41 upstream stable release (LP: #1878649)
+    - USB: serial: qcserial: Add DW5816e support
+    - nvme: refactor nvme_identify_ns_descs error handling
+    - nvme: fix possible hang when ns scanning fails during error recovery
+    - tracing/kprobes: Fix a double initialization typo
+    - net: macb: Fix runtime PM refcounting
+    - drm/amdgpu: move kfd suspend after ip_suspend_phase1
+    - drm/amdgpu: drop redundant cg/pg ungate on runpm enter
+    - vt: fix unicode console freeing with a common interface
+    - tty: xilinx_uartps: Fix missing id assignment to the console
+    - devlink: fix return value after hitting end in region read
+    - dp83640: reverse arguments to list_add_tail
+    - fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
+    - ipv6: Use global sernum for dst validation with nexthop objects
+    - mlxsw: spectrum_acl_tcam: Position vchunk in a vregion list properly
+    - neigh: send protocol value in neighbor create notification
+    - net: dsa: Do not leave DSA master with NULL netdev_ops
+    - net: macb: fix an issue about leak related system resources
+    - net: macsec: preserve ingress frame ordering
+    - net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
+    - net_sched: sch_skbprio: add message validation to skbprio_change()
+    - net: stricter validation of untrusted gso packets
+    - net: tc35815: Fix phydev supported/advertising mask
+    - net/tls: Fix sk_psock refcnt leak in bpf_exec_tx_verdict()
+    - net/tls: Fix sk_psock refcnt leak when in tls_data_ready()
+    - net: usb: qmi_wwan: add support for DW5816e
+    - nfp: abm: fix a memory leak bug
+    - sch_choke: avoid potential panic in choke_reset()
+    - sch_sfq: validate silly quantum values
+    - tipc: fix partial topology connection closure
+    - tunnel: Propagate ECT(1) when decapsulating as recommended by RFC6040
+    - bnxt_en: Fix VF anti-spoof filter setup.
+    - bnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF.
+    - bnxt_en: Improve AER slot reset.
+    - bnxt_en: Return error when allocating zero size context memory.
+    - bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
+    - net/mlx5: DR, On creation set CQ's arm_db member to right value
+    - net/mlx5: Fix forced completion access non initialized command entry
+    - net/mlx5: Fix command entry leak in Internal Error State
+    - net: mvpp2: prevent buffer overflow in mvpp22_rss_ctx()
+    - net: mvpp2: cls: Prevent buffer overflow in mvpp2_ethtool_cls_rule_del()
+    - HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
+    - sctp: Fix bundling of SHUTDOWN with COOKIE-ACK
+    - Revert "HID: wacom: generic: read the number of expected touches on a per
+      collection basis"
+    - HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
+    - HID: wacom: Report 2nd-gen Intuos Pro S center button status over BT
+    - USB: uas: add quirk for LaCie 2Big Quadra
+    - usb: chipidea: msm: Ensure proper controller reset using role switch API
+    - USB: serial: garmin_gps: add sanity checking for data length
+    - tracing: Add a vmalloc_sync_mappings() for safe measure
+    - crypto: arch/nhpoly1305 - process in explicit 4k chunks
+    - KVM: s390: Remove false WARN_ON_ONCE for the PQAP instruction
+    - KVM: VMX: Explicitly clear RFLAGS.CF and RFLAGS.ZF in VM-Exit RSB path
+    - KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER
+    - KVM: arm64: Fix 32bit PC wrap-around
+    - arm64: hugetlb: avoid potential NULL dereference
+    - drm: ingenic-drm: add MODULE_DEVICE_TABLE
+    - ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
+    - epoll: atomically remove wait entry on wake up
+    - eventpoll: fix missing wakeup for ovflist in ep_poll_callback
+    - mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
+    - mm: limit boost_watermark on small zones
+    - ceph: demote quotarealm lookup warning to a debug message
+    - staging: gasket: Check the return value of gasket_get_bar_index()
+    - coredump: fix crash when umh is disabled
+    - iocost: protect iocg->abs_vdebt with iocg->waitq.lock
+    - batman-adv: fix batadv_nc_random_weight_tq
+    - batman-adv: Fix refcnt leak in batadv_show_throughput_override
+    - batman-adv: Fix refcnt leak in batadv_store_throughput_override
+    - batman-adv: Fix refcnt leak in batadv_v_ogm_process
+    - x86/entry/64: Fix unwind hints in register clearing code
+    - x86/entry/64: Fix unwind hints in kernel exit path
+    - x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
+    - x86/unwind/orc: Don't skip the first frame for inactive tasks
+    - x86/unwind/orc: Prevent unwinding before ORC initialization
+    - x86/unwind/orc: Fix error path for bad ORC entry type
+    - x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
+    - KVM: x86: Fixes posted interrupt check for IRQs delivery modes
+    - arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in sev_pin_memory()
+    - netfilter: nat: never update the UDP checksum when it's 0
+    - netfilter: nf_osf: avoid passing pointer to local var
+    - objtool: Fix stack offset tracking for indirect CFAs
+    - iommu/virtio: Reverse arguments to list_add
+    - scripts/decodecode: fix trapping instruction formatting
+    - mm, memcg: fix error return value of mem_cgroup_css_alloc()
+    - bdi: move bdi_dev_name out of line
+    - bdi: add a ->dev_name field to struct backing_dev_info
+    - fsnotify: replace inode pointer with an object id
+    - fanotify: merge duplicate events on parent and child
+    - Linux 5.4.41
+
+  * Intel GPU Hangs : random screen freezing w/ Ubuntu 20.04 (Linux 5.4)
+    i915_active_acquire (LP: #1868551)
+    - drm/i915: Hold reference to intel_frontbuffer as we track activity
+    - drm/i915: fix uninitialized pointer reads on pointers to and from
+
+  * Kernel panic due to NULL ringbuffer vaddr dereference in i915 (LP: #1877394)
+    - Revert "UBUNTU: SAUCE: drm/i915: Synchronize active and retire callbacks"
+    - drm/i915/gt: Make intel_ring_unpin() safe for concurrent pint
+
+  * add 16-bit width registers support for EEPROM at24 device (LP: #1876699)
+    - regmap-i2c: add 16-bit width registers support
+
+  * [UBUNTU 20.04] PSI generates overhead on s390x (LP: #1876044)
+    - Ubuntu: [Config] Set CONFIG_PSI_DEFAULT_DISABLED=y on s390x
+
+  * Focal update: v5.4.40 upstream stable release (LP: #1878040)
+    - vhost: vsock: kick send_pkt worker once device is started
+    - drm/bridge: analogix_dp: Split bind() into probe() and real bind()
+    - ASoC: topology: Check return value of soc_tplg_create_tlv
+    - ASoC: topology: Check return value of soc_tplg_*_create
+    - ASoC: topology: Check soc_tplg_add_route return value
+    - ASoC: topology: Check return value of pcm_new_ver
+    - ASoC: topology: Check return value of soc_tplg_dai_config
+    - selftests/ipc: Fix test failure seen after initial test run
+    - ASoC: sgtl5000: Fix VAG power-on handling
+    - ASoC: topology: Fix endianness issue
+    - usb: dwc3: gadget: Properly set maxpacket limit
+    - ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode
+    - ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
+    - ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
+    - remoteproc: qcom_q6v5_mss: fix a bug in q6v5_probe()
+    - drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay
+      table v0 (e.g Hawaii)
+    - wimax/i2400m: Fix potential urb refcnt leak
+    - net: stmmac: fix enabling socfpga's ptp_ref_clock
+    - net: stmmac: Fix sub-second increment
+    - ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent
+    - ASoC: rsnd: Fix "status check failed" spam for multi-SSI
+    - cifs: protect updating server->dstaddr with a spinlock
+    - scripts/config: allow colons in option strings for sed
+    - cifs: do not share tcons with DFS
+    - tracing: Fix memory leaks in trace_events_hist.c
+    - lib/mpi: Fix building for powerpc with clang
+    - mac80211: sta_info: Add lockdep condition for RCU list usage
+    - net: bcmgenet: suppress warnings on failed Rx SKB allocations
+    - net: systemport: suppress warnings on failed Rx SKB allocations
+    - drm/i915: Extend WaDisableDARBFClkGating to icl,ehl,tgl
+    - sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
+    - Revert "software node: Simplify software_node_release() function"
+    - hexagon: clean up ioremap
+    - hexagon: define ioremap_uc
+    - ALSA: hda: Match both PCI ID and SSID for driver blacklist
+    - x86/kvm: fix a missing-prototypes "vmread_error"
+    - platform/x86: GPD pocket fan: Fix error message when temp-limits are out of
+      range
+    - ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late()
+    - mac80211: add ieee80211_is_any_nullfunc()
+    - cgroup, netclassid: remove double cond_resched
+    - libbpf: Fix readelf output parsing for Fedora
+    - mm/mremap: Add comment explaining the untagging behaviour of mremap()
+    - Revert "drm/amd/display: setting the DIG_MODE to the correct value."
+    - tools headers UAPI: Sync copy of arm64's asm/unistd.h with the kernel
+      sources
+    - udp: document udp_rcv_segment special case for looped packets
+    - PM / devfreq: Add missing locking while setting suspend_freq
+    - Linux 5.4.40
+
+  * Focal update: v5.4.39 upstream stable release (LP: #1877592)
+    - dma-buf: Fix SET_NAME ioctl uapi
+    - drm/edid: Fix off-by-one in DispID DTD pixel clock
+    - drm/amd/display: Fix green screen issue after suspend
+    - drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
+    - drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
+    - drm/qxl: qxl_release use after free
+    - NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION
+    - btrfs: fix transaction leak in btrfs_recover_relocation
+    - btrfs: fix block group leak when removing fails
+    - btrfs: fix partial loss of prealloc extent past i_size after fsync
+    - btrfs: transaction: Avoid deadlock due to bad initialization timing of
+      fs_info::journal_info
+    - mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout
+      loop
+    - mmc: sdhci-xenon: fix annoying 1.8V regulator warning
+    - mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
+    - mmc: sdhci-msm: Enable host capabilities pertains to R1b response
+    - mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY
+    - mmc: meson-mx-sdio: remove the broken ->card_busy() op
+    - crypto: caam - fix the address of the last entry of S/G
+    - ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
+    - ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID
+    - ALSA: hda/hdmi: fix without unlocked before return
+    - ALSA: line6: Fix POD HD500 audio playback
+    - ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
+    - i2c: amd-mp2-pci: Fix Oops in amd_mp2_pci_init() error handling
+    - Drivers: hv: vmbus: Fix Suspend-to-Idle for Generation-2 VM
+    - dlmfs_file_write(): fix the bogosity in handling non-zero *ppos
+    - IB/rdmavt: Always return ERR_PTR from rvt_create_mmap_info()
+    - PM: ACPI: Output correct message on target power state
+    - PM: hibernate: Freeze kernel threads in software_resume()
+    - dm verity fec: fix hash block number in verity_fec_decode
+    - dm writecache: fix data corruption when reloading the target
+    - dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath
+    - ARM: dts: imx6qdl-sr-som-ti: indicate powering off wifi is safe
+    - scsi: qla2xxx: set UNLOADING before waiting for session deletion
+    - scsi: qla2xxx: check UNLOADING before posting async work
+    - RDMA/mlx5: Set GRH fields in query QP on RoCE
+    - RDMA/mlx4: Initialize ib_spec on the stack
+    - RDMA/siw: Fix potential siw_mem refcnt leak in siw_fastreg_mr()
+    - RDMA/core: Prevent mixed use of FDs between shared ufiles
+    - RDMA/core: Fix race between destroy and release FD object
+    - RDMA/cm: Fix ordering of xa_alloc_cyclic() in ib_create_cm_id()
+    - RDMA/cm: Fix an error check in cm_alloc_id_priv()
+    - i2c: iproc: generate stop event for slave writes
+    - vfio: avoid possible overflow in vfio_iommu_type1_pin_pages
+    - vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn()
+    - iommu/qcom: Fix local_base status check
+    - scsi: target/iblock: fix WRITE SAME zeroing
+    - iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system
+    - i2c: aspeed: Avoid i2c interrupt status clear race condition.
+    - ALSA: opti9xx: shut up gcc-10 range warning
+    - Fix use after free in get_tree_bdev()
+    - nvme: prevent double free in nvme_alloc_ns() error handling
+    - nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
+    - dmaengine: dmatest: Fix iteration non-stop logic
+    - dmaengine: dmatest: Fix process hang when reading 'wait' parameter
+    - arm64: vdso: Add -fasynchronous-unwind-tables to cflags
+    - selinux: properly handle multiple messages in selinux_netlink_send()
+    - Linux 5.4.39
+
+  * Focal update: v5.4.38 upstream stable release (LP: #1876767)
+    - Linux 5.4.38
+
+  * Focal update: v5.4.37 upstream stable release (LP: #1876765)
+    - remoteproc: Fix wrong rvring index computation
+    - ubifs: Fix ubifs_tnc_lookup() usage in do_kill_orphans()
+    - printk: queue wake_up_klogd irq_work only if per-CPU areas are ready
+    - ASoC: stm32: sai: fix sai probe
+    - usb: dwc3: gadget: Do link recovery for SS and SSP
+    - kbuild: fix DT binding schema rule again to avoid needless rebuilds
+    - usb: gadget: udc: bdc: Remove unnecessary NULL checks in bdc_req_complete
+    - usb: gadget: udc: atmel: Fix vbus disconnect handling
+    - afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate
+    - afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH
+    - iio:ad7797: Use correct attribute_group
+    - propagate_one(): mnt_set_mountpoint() needs mount_lock
+    - counter: 104-quad-8: Add lock guards - generic interface
+    - s390/ftrace: fix potential crashes when switching tracers
+    - ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs
+    - ASoC: tas571x: disable regulators on failed probe
+    - ASoC: wm8960: Fix wrong clock after suspend & resume
+    - drivers: soc: xilinx: fix firmware driver Kconfig dependency
+    - nfsd: memory corruption in nfsd4_lock()
+    - bpf: Forbid XADD on spilled pointers for unprivileged users
+    - i2c: altera: use proper variable to hold errno
+    - rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket
+    - net/cxgb4: Check the return from t4_query_params properly
+    - xfs: acquire superblock freeze protection on eofblocks scans
+    - svcrdma: Fix trace point use-after-free race
+    - svcrdma: Fix leak of svc_rdma_recv_ctxt objects
+    - net/mlx5e: Don't trigger IRQ multiple times on XSK wakeup to avoid WQ
+      overruns
+    - net/mlx5e: Get the latest values from counters in switchdev mode
+    - PCI: Add ACS quirk for Zhaoxin multi-function devices
+    - PCI: Make ACS quirk implementations more uniform
+    - PCI: Unify ACS quirk desired vs provided checking
+    - PCI: Add Zhaoxin Vendor ID
+    - PCI: Add ACS quirk for Zhaoxin Root/Downstream Ports
+    - PCI: Move Apex Edge TPU class quirk to fix BAR assignment
+    - ARM: dts: bcm283x: Disable dsi0 node
+    - cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled
+    - s390/pci: do not set affinity for floating irqs
+    - net/mlx5: Fix failing fw tracer allocation on s390
+    - sched/core: Fix reset-on-fork from RT with uclamp
+    - perf/core: fix parent pid/tid in task exit events
+    - netfilter: nat: fix error handling upon registering inet hook
+    - PM: sleep: core: Switch back to async_schedule_dev()
+    - blk-iocost: Fix error on iocost_ioc_vrate_adj
+    - um: ensure `make ARCH=um mrproper` removes
+      arch/$(SUBARCH)/include/generated/
+    - bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
+    - bpf, x86_32: Fix clobbering of dst for BPF_JSET
+    - bpf, x86_32: Fix logic error in BPF_LDX zero-extension
+    - mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy
+      path
+    - xfs: clear PF_MEMALLOC before exiting xfsaild thread
+    - bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
+    - libbpf: Initialize *nl_pid so gcc 10 is happy
+    - net: fec: set GPR bit on suspend by DT configuration.
+    - x86: hyperv: report value of misc_features
+    - signal: check sig before setting info in kill_pid_usb_asyncio
+    - afs: Fix length of dump of bad YFSFetchStatus record
+    - xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
+    - ALSA: hda: Release resources at error in delayed probe
+    - ALSA: hda: Keep the controller initialization even if no codecs found
+    - ALSA: hda: Explicitly permit using autosuspend if runtime PM is supported
+    - scsi: target: fix PR IN / READ FULL STATUS for FC
+    - scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN
+    - objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings
+    - objtool: Support Clang non-section symbols in ORC dump
+    - xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
+    - ALSA: hda: call runtime_allow() for all hda controllers
+    - net: stmmac: socfpga: Allow all RGMII modes
+    - mac80211: fix channel switch trigger from unknown mesh peer
+    - arm64: Delete the space separator in __emit_inst
+    - ext4: use matching invalidatepage in ext4_writepage
+    - ext4: increase wait time needed before reuse of deleted inode numbers
+    - ext4: convert BUG_ON's to WARN_ON's in mballoc.c
+    - blk-mq: Put driver tag in blk_mq_dispatch_rq_list() when no budget
+    - hwmon: (jc42) Fix name to have no illegal characters
+    - taprio: do not use BIT() in TCA_TAPRIO_ATTR_FLAG_* definitions
+    - qed: Fix race condition between scheduling and destroying the slowpath
+      workqueue
+    - Crypto: chelsio - Fixes a hang issue during driver registration
+    - net: use indirect call wrappers for skb_copy_datagram_iter()
+    - qed: Fix use after free in qed_chain_free
+    - ext4: check for non-zero journal inum in ext4_calculate_overhead
+    - ASoC: soc-core: disable route checks for legacy devices
+    - ASoC: stm32: spdifrx: fix regmap status check
+    - Linux 5.4.37
+
+  * Focal update: v5.4.36 upstream stable release (LP: #1876361)
+    - ext4: fix extent_status fragmentation for plain files
+    - f2fs: fix to avoid memory leakage in f2fs_listxattr
+    - net, ip_tunnel: fix interface lookup with no key
+    - [Config] updateconfigs for ARM64_ERRATUM_1542419
+    - arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419
+    - arm64: Fake the IminLine size on systems affected by Neoverse-N1 #1542419
+    - arm64: compat: Workaround Neoverse-N1 #1542419 for compat user-space
+    - arm64: Silence clang warning on mismatched value/register sizes
+    - tools/testing/nvdimm: Fix compilation failure without
+      CONFIG_DEV_DAX_PMEM_COMPAT
+    - watchdog: reset last_hw_keepalive time at start
+    - scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
+    - scsi: lpfc: Fix crash after handling a pci error
+    - scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG
+    - scsi: libfc: If PRLI rejected, move rport to PLOGI state
+    - ceph: return ceph_mdsc_do_request() errors from __get_parent()
+    - ceph: don't skip updating wanted caps when cap is stale
+    - pwm: rcar: Fix late Runtime PM enablement
+    - nvme-tcp: fix possible crash in write_zeroes processing
+    - scsi: iscsi: Report unbind session event when the target has been removed
+    - tools/test/nvdimm: Fix out of tree build
+    - ASoC: Intel: atom: Take the drv->lock mutex before calling
+      sst_send_slot_map()
+    - nvme: fix deadlock caused by ANA update wrong locking
+    - drm/amd/display: Update stream adjust in dc_stream_adjust_vmin_vmax
+    - dma-direct: fix data truncation in dma_direct_get_required_mask()
+    - kernel/gcov/fs.c: gcov_seq_next() should increase position index
+    - selftests: kmod: fix handling test numbers above 9
+    - ipc/util.c: sysvipc_find_ipc() should increase position index
+    - kconfig: qconf: Fix a few alignment issues
+    - lib/raid6/test: fix build on distros whose /bin/sh is not bash
+    - s390/cio: generate delayed uevent for vfio-ccw subchannels
+    - s390/cio: avoid duplicated 'ADD' uevents
+    - loop: Better discard support for block devices
+    - Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs
+      enabled"
+    - powerpc/pseries: Fix MCE handling on pseries
+    - nvme: fix compat address handling in several ioctls
+    - pwm: renesas-tpu: Fix late Runtime PM enablement
+    - pwm: bcm2835: Dynamically allocate base
+    - perf/core: Disable page faults when getting phys address
+    - drm/amd/display: Calculate scaling ratios on every medium/full update
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
+    - ALSA: usb-audio: Add Pioneer DJ DJM-250MK2 quirk
+    - drm/amd/display: Not doing optimize bandwidth if flip pending.
+    - cxgb4: fix adapter crash due to wrong MC size
+    - cxgb4: fix large delays in PTP synchronization
+    - ipv4: Update fib_select_default to handle nexthop objects
+    - ipv6: fix restrict IPV6_ADDRFORM operation
+    - macsec: avoid to set wrong mtu
+    - macvlan: fix null dereference in macvlan_device_event()
+    - mlxsw: Fix some IS_ERR() vs NULL bugs
+    - net: bcmgenet: correct per TX/RX ring statistics
+    - net/mlx4_en: avoid indirect call in TX completion
+    - net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
+    - net: openvswitch: ovs_ct_exit to be done under ovs_lock
+    - net: stmmac: dwmac-meson8b: Add missing boundary to RGMII TX clock array
+    - net/x25: Fix x25_neigh refcnt leak when receiving frame
+    - sched: etf: do not assume all sockets are full blown
+    - selftests: Fix suppress test in fib_tests.sh
+    - tcp: cache line align MAX_TCP_HEADER
+    - team: fix hang in team_mode_get()
+    - vrf: Fix IPv6 with qdisc and xfrm
+    - net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
+    - net: dsa: b53: Fix valid setting for MDB entries
+    - net: dsa: b53: Fix ARL register definitions
+    - net: dsa: b53: Rework ARL bin logic
+    - net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL
+    - vxlan: use the correct nlattr array in NL_SET_ERR_MSG_ATTR
+    - geneve: use the correct nlattr array in NL_SET_ERR_MSG_ATTR
+    - xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
+    - vrf: Check skb for XFRM_TRANSFORMED flag
+    - KEYS: Avoid false positive ENOMEM error on key read
+    - ALSA: hda: Remove ASUS ROG Zenith from the blacklist
+    - ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos
+    - ALSA: usb-audio: Add connector notifier delegation
+    - iio: core: remove extra semi-colon from devm_iio_device_register() macro
+    - iio: st_sensors: rely on odr mask to know if odr can be set
+    - iio: adc: stm32-adc: fix sleep in atomic context
+    - iio: adc: ti-ads8344: properly byte swap value
+    - iio: xilinx-xadc: Fix ADC-B powerdown
+    - iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
+    - iio: xilinx-xadc: Fix sequencer configuration for aux channels in
+      simultaneous mode
+    - iio: xilinx-xadc: Make sure not exceed maximum samplerate
+    - USB: sisusbvga: Change port variable from signed to unsigned
+    - USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70
+      RGB RAPIDFIRE
+    - USB: early: Handle AMD's spec-compliant identifiers, too
+    - USB: core: Fix free-while-in-use bug in the USB S-Glibrary
+    - USB: hub: Fix handling of connect changes during sleep
+    - USB: hub: Revert commit bd0e6c9614b9 ("usb: hub: try old enumeration scheme
+      first for high speed devices")
+    - tty: serial: owl: add "much needed" clk_prepare_enable()
+    - vmalloc: fix remap_vmalloc_range() bounds checks
+    - staging: gasket: Fix incongruency in handling of sysfs entries creation
+    - coredump: fix null pointer dereference on coredump
+    - mm/hugetlb: fix a addressing exception caused by huge_pte_offset
+    - mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
+    - tools/vm: fix cross-compile build
+    - ALSA: usx2y: Fix potential NULL dereference
+    - ALSA: hda/realtek - Fix unexpected init_amp override
+    - ALSA: hda/realtek - Add new codec supported for ALC245
+    - ALSA: hda/hdmi: Add module option to disable audio component binding
+    - ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
+    - ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices
+    - tpm/tpm_tis: Free IRQ if probing fails
+    - tpm: fix wrong return value in tpm_pcr_extend
+    - tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
+    - KVM: s390: Return last valid slot if approx index is out-of-bounds
+    - KVM: Check validity of resolved slot when searching memslots
+    - KVM: VMX: Enable machine check support for 32bit targets
+    - tty: hvc: fix buffer overflow during hvc_alloc().
+    - tty: rocket, avoid OOB access
+    - usb-storage: Add unusual_devs entry for JMicron JMS566
+    - signal: Avoid corrupting si_pid and si_uid in do_notify_parent
+    - audit: check the length of userspace generated audit records
+    - ASoC: dapm: fixup dapm kcontrol widget
+    - mac80211: populate debugfs only after cfg80211 init
+    - SUNRPC: Fix backchannel RPC soft lockups
+    - iwlwifi: pcie: actually release queue memory in TVQM
+    - iwlwifi: mvm: beacon statistics shouldn't go backwards
+    - iwlwifi: mvm: limit maximum queue appropriately
+    - iwlwifi: mvm: Do not declare support for ACK Enabled Aggregation
+    - iwlwifi: mvm: fix inactive TID removal return value usage
+    - cifs: fix uninitialised lease_key in open_shroot()
+    - ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y
+    - powerpc/setup_64: Set cache-line-size based on cache-block-size
+    - staging: comedi: dt2815: fix writing hi byte of analog output
+    - staging: comedi: Fix comedi_device refcnt leak in comedi_open
+    - vt: don't hardcode the mem allocation upper bound
+    - vt: don't use kmalloc() for the unicode screen buffer
+    - staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
+    - staging: vt6656: Fix calling conditions of vnt_set_bss_mode
+    - staging: vt6656: Fix drivers TBTT timing counter.
+    - staging: vt6656: Fix pairwise key entry save.
+    - staging: vt6656: Power save stop wake_up_count wrap around.
+    - cdc-acm: close race betrween suspend() and acm_softint
+    - cdc-acm: introduce a cool down
+    - UAS: no use logging any details in case of ENODEV
+    - UAS: fix deadlock in error handling and PM flushing work
+    - fpga: dfl: pci: fix return value of cci_pci_sriov_configure
+    - usb: dwc3: gadget: Fix request completion check
+    - usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
+    - usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change
+    - usb: typec: altmode: Fix typec_altmode_get_partner sometimes returning an
+      invalid pointer
+    - xhci: Fix handling halted endpoint even if endpoint ring appears empty
+    - xhci: prevent bus suspend if a roothub port detected a over-current
+      condition
+    - xhci: Don't clear hub TT buffer on ep0 protocol stall
+    - serial: sh-sci: Make sure status register SCxSR is read in correct sequence
+    - Revert "serial: uartps: Fix uartps_major handling"
+    - Revert "serial: uartps: Use the same dynamic major number for all ports"
+    - Revert "serial: uartps: Fix error path when alloc failed"
+    - Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES"
+    - Revert "serial: uartps: Change uart ID port allocation"
+    - Revert "serial: uartps: Move Port ID to device data structure"
+    - Revert "serial: uartps: Register own uart console and driver structures"
+    - powerpc/kuap: PPC_KUAP_DEBUG should depend on PPC_KUAP
+    - powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
+    - compat: ARM64: always include asm-generic/compat.h
+    - Linux 5.4.36
+
+  * Focal update: v5.4.35 upstream stable release (LP: #1875660)
+    - ext4: use non-movable memory for superblock readahead
+    - watchdog: sp805: fix restart handler
+    - xsk: Fix out of boundary write in __xsk_rcv_memcpy
+    - arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
+    - arm, bpf: Fix offset overflow for BPF_MEM BPF_DW
+    - objtool: Fix switch table detection in .text.unlikely
+    - scsi: sg: add sg_remove_request in sg_common_write
+    - ALSA: hda: Honor PM disablement in PM freeze and thaw_noirq ops
+    - ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN.
+    - kbuild, btf: Fix dependencies for DEBUG_INFO_BTF
+    - netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
+    - irqchip/mbigen: Free msi_desc on device teardown
+    - ALSA: hda: Don't release card at firmware loading error
+    - xsk: Add missing check on user supplied headroom size
+    - of: unittest: kmemleak on changeset destroy
+    - of: unittest: kmemleak in of_unittest_platform_populate()
+    - of: unittest: kmemleak in of_unittest_overlay_high_level()
+    - of: overlay: kmemleak in dup_and_fixup_symbol_prop()
+    - x86/Hyper-V: Unload vmbus channel in hv panic callback
+    - x86/Hyper-V: Trigger crash enlightenment only once during system crash.
+    - x86/Hyper-V: Report crash register data or kmsg before running crash kernel
+    - x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not
+      set
+    - x86/Hyper-V: Report crash data in die() when panic_on_oops is set
+    - afs: Fix missing XDR advance in xdr_decode_{AFS,YFS}FSFetchStatus()
+    - afs: Fix decoding of inline abort codes from version 1 status records
+    - afs: Fix rename operation status delivery
+    - afs: Fix afs_d_validate() to set the right directory version
+    - afs: Fix race between post-modification dir edit and readdir/d_revalidate
+    - block, bfq: turn put_queue into release_process_ref in
+      __bfq_bic_change_cgroup
+    - block, bfq: make reparent_leaf_entity actually work only on leaf entities
+    - block, bfq: invoke flush_idle_tree after reparent_active_queues in
+      pd_offline
+    - rbd: avoid a deadlock on header_rwsem when flushing notifies
+    - rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
+    - x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump
+    - drm/ttm: flush the fence on the bo after we individualize the reservation
+      object
+    - clk: Don't cache errors from clk_ops::get_phase()
+    - clk: at91: usb: continue if clk_hw_round_rate() return zero
+    - net/mlx5e: Enforce setting of a single FEC mode
+    - f2fs: fix the panic in do_checkpoint()
+    - ARM: dts: rockchip: fix vqmmc-supply property name for rk3188-bqedison2qc
+    - arm64: dts: allwinner: a64: Fix display clock register range
+    - power: supply: bq27xxx_battery: Silence deferred-probe error
+    - clk: tegra: Fix Tegra PMC clock out parents
+    - arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194
+    - arm64: tegra: Fix Tegra194 PCIe compatible string
+    - arm64: dts: clearfog-gt-8k: set gigabit PHY reset deassert delay
+    - soc: imx: gpc: fix power up sequencing
+    - dma-coherent: fix integer overflow in the reserved-memory dma allocation
+    - rtc: 88pm860x: fix possible race condition
+    - NFS: alloc_nfs_open_context() must use the file cred when available
+    - NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
+    - NFSv4.2: error out when relink swapfile
+    - ARM: dts: rockchip: fix lvds-encoder ports subnode for rk3188-bqedison2qc
+    - KVM: PPC: Book3S HV: Fix H_CEDE return code for nested guests
+    - f2fs: fix to show norecovery mount option
+    - phy: uniphier-usb3ss: Add Pro5 support
+    - NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
+    - f2fs: Fix mount failure due to SPO after a successful online resize FS
+    - f2fs: Add a new CP flag to help fsck fix resize SPO issues
+    - s390/cpuinfo: fix wrong output when CPU0 is offline
+    - hibernate: Allow uswsusp to write to swap
+    - btrfs: add RCU locks around block group initialization
+    - powerpc/prom_init: Pass the "os-term" message to hypervisor
+    - powerpc/maple: Fix declaration made after definition
+    - s390/cpum_sf: Fix wrong page count in error message
+    - ext4: do not commit super on read-only bdev
+    - um: ubd: Prevent buffer overrun on command completion
+    - cifs: Allocate encryption header through kmalloc
+    - mm/hugetlb: fix build failure with HUGETLB_PAGE but not HUGEBTLBFS
+    - drm/nouveau/svm: check for SVM initialized before migrating
+    - drm/nouveau/svm: fix vma range check for migration
+    - include/linux/swapops.h: correct guards for non_swap_entry()
+    - percpu_counter: fix a data race at vm_committed_as
+    - compiler.h: fix error in BUILD_BUG_ON() reporting
+    - KVM: s390: vsie: Fix possible race when shadowing region 3 tables
+    - drm/nouveau: workaround runpm fail by disabling PCI power management on
+      certain intel bridges
+    - leds: core: Fix warning message when init_data
+    - x86: ACPI: fix CPU hotplug deadlock
+    - csky: Fixup cpu speculative execution to IO area
+    - drm/amdkfd: kfree the wrong pointer
+    - NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
+    - csky: Fixup get wrong psr value from phyical reg
+    - f2fs: fix NULL pointer dereference in f2fs_write_begin()
+    - ACPICA: Fixes for acpiExec namespace init file
+    - um: falloc.h needs to be directly included for older libc
+    - drm/vc4: Fix HDMI mode validation
+    - iommu/virtio: Fix freeing of incomplete domains
+    - iommu/vt-d: Fix mm reference leak
+    - ext2: fix empty body warnings when -Wextra is used
+    - iommu/vt-d: Silence RCU-list debugging warning in dmar_find_atsr()
+    - iommu/vt-d: Fix page request descriptor size
+    - ext2: fix debug reference to ext2_xattr_cache
+    - sunrpc: Fix gss_unwrap_resp_integ() again
+    - csky: Fixup init_fpu compile warning with __init
+    - power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute
+      Sticks.
+    - libnvdimm: Out of bounds read in __nd_ioctl()
+    - iommu/amd: Fix the configuration of GCR3 table root pointer
+    - f2fs: fix to wait all node page writeback
+    - drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init
+    - net: dsa: bcm_sf2: Fix overflow checks
+    - dma-debug: fix displaying of dma allocation type
+    - fbdev: potential information leak in do_fb_ioctl()
+    - ARM: dts: sunxi: Fix DE2 clocks register range
+    - iio: si1133: read 24-bit signed integer for measurement
+    - fbmem: Adjust indentation in fb_prepare_logo and fb_blank
+    - tty: evh_bytechan: Fix out of bounds accesses
+    - locktorture: Print ratio of acquisitions, not failures
+    - mtd: rawnand: free the nand_device object
+    - mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to
+      OOB
+    - docs: Fix path to MTD command line partition parser
+    - mtd: lpddr: Fix a double free in probe()
+    - mtd: phram: fix a double free issue in error path
+    - KEYS: Don't write out to userspace while holding key semaphore
+    - bpf: fix buggy r0 retval refinement for tracing helpers
+    - bpf: Test_verifier, bpf_get_stack return value add <0
+    - bpf: Test_progs, add test to catch retval refine error handling
+    - SAUCE: bpf: Test_progs, fix test_get_stack_rawtp_err.c build
+    - bpf, test_verifier: switch bpf_get_stack's 0 s> r8 test
+    - Linux 5.4.35
+
+  * Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW),
+    REV=0x354 [8086:a0f0] subsystem id [1a56:1651] wireless adapter not found
+    due to firmware crash (LP: #1874685)
+    - iwlwifi: pcie: handle QuZ configs with killer NICs as well
+
+  * Support DMIC micmute LED on HP platforms (LP: #1876859)
+    - ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
+    - ALSA: hda/realtek - Enable micmute LED on and HP system
+    - ALSA: hda/realtek - Add LED class support for micmute LED
+    - ALSA: hda/realtek - Fix unused variable warning w/o
+      CONFIG_LEDS_TRIGGER_AUDIO
+    - ASoC: SOF: Update correct LED status at the first time usage of
+      update_mute_led()
+
+  * linux: riscv: set max_pfn to the PFN of the last page (LP: #1876885)
+    - riscv: set max_pfn to the PFN of the last page
+
+  * Dell XPS 13 9300 mirror mode doesn't work sometimes with WD19TB
+    (LP: #1877013)
+    - drm/i915/perf: Do not clear pollin for small user read buffers
+
+  * [UBUNTU 20.04] s390x/pci: do not allow to create more pci functions than
+    configured via CONFIG_PCI_NR_FUNCTIONS (LP: #1874057)
+    - s390/pci: Fix zpci_alloc_domain() over allocation
+
+  * [Ubuntu 20.04] net/mlx5e: Fix endianness handling in pedit mask
+    (LP: #1872726)
+    - net/mlx5e: Fix endianness handling in pedit mask
+
+  * rtkit-daemon[*]: Failed to make ourselves RT: Operation not permitted after
+    upgrade to 20.04 (LP: #1875665)
+    - [Config] Turn off CONFIG_RT_GROUP_SCHED everywhere
+
+  * ceph -- Unable to mount ceph volume on s390x (LP: #1875863)
+    - ceph: fix endianness bug when handling MDS session feature bits
+
+  * Do not treat unresolved test case in ftrace from ubuntu_kernel_selftests as
+    failure (LP: #1877958)
+    - ftrace/selftest: make unresolved cases cause failure if --fail-unresolved
+      set
+
+  * Add support for Ambiq micro AM1805 RTC chip (LP: #1876667)
+    - SAUCE: rtc: add am-1805 RTC driver
+
+  * alsa/sof: kernel oops on the machine without Intel hdmi audio codec (a
+    regression in the  asoc machine driver) (LP: #1874359)
+    - SAUCE: ASoC: intel/skl/hda - fix oops on systems without i915 audio codec
+
+  * 'Elan touchpad' not detected on 'Lenovo ThinkBook 15 IIL' (LP: #1861610)
+    - SAUCE: Input: elan_i2c - add more hardware ID for Lenovo laptop
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 25 May 2020 17:05:37 +0200
+
+linux (5.4.0-33.37) focal; urgency=medium
+
+  * focal/linux: 5.4.0-33.37 -proposed tracker (LP: #1879926)
+
+  * Docker registry doesn't stay up and keeps restarting (LP: #1879690)
+    - Revert "UBUNTU: SAUCE: overlayfs: fix shitfs special-casing"
+    - Revert "UBUNTU: SAUCE: overlayfs: use shiftfs hacks only with shiftfs as
+      underlay"
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Thu, 21 May 2020 14:34:26 +0200
+
+linux (5.4.0-31.35) focal; urgency=medium
+
+  * focal/linux: 5.4.0-31.35 -proposed tracker (LP: #1877253)
+
+  * Intermittent display blackouts on event (LP: #1875254)
+    - drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only
+
+  * Unable to handle kernel pointer dereference in virtual kernel address space
+    on Eoan (LP: #1876645)
+    - SAUCE: overlayfs: fix shitfs special-casing
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 07 May 2020 11:05:18 +0200
+
+linux (5.4.0-30.34) focal; urgency=medium
+
+  * focal/linux: 5.4.0-30.34 -proposed tracker (LP: #1875385)
+
+  * ubuntu/focal64 fails to mount Vagrant shared folders  (LP: #1873506)
+    - [Packaging] Move virtualbox modules to linux-modules
+    - [Packaging] Remove vbox and zfs modules from generic.inclusion-list
+
+  * linux-image-5.0.0-35-generic breaks checkpointing of container
+    (LP: #1857257)
+    - SAUCE: overlayfs: use shiftfs hacks only with shiftfs as underlay
+
+  * shiftfs: broken shiftfs nesting (LP: #1872094)
+    - SAUCE: shiftfs: record correct creator credentials
+
+  * Add debian/rules targets to compile/run kernel selftests (LP: #1874286)
+    - [Packaging] add support to compile/run selftests
+
+  * shiftfs: O_TMPFILE reports ESTALE (LP: #1872757)
+    - SAUCE: shiftfs: fix dentry revalidation
+
+  * LIO hanging in iscsit_free_session and iscsit_stop_session (LP: #1871688)
+    - scsi: target: iscsi: calling iscsit_stop_session() inside
+      iscsit_close_session() has no effect
+
+  * [ICL] TC port in legacy/static mode can't be detected due TCCOLD
+    (LP: #1868936)
+    - SAUCE: drm/i915: Align power domain names with port names
+    - SAUCE: drm/i915/display: Move out code to return the digital_port of the aux
+      ch
+    - SAUCE: drm/i915/display: Add intel_legacy_aux_to_power_domain()
+    - SAUCE: drm/i915/display: Split hsw_power_well_enable() into two
+    - SAUCE: drm/i915/tc/icl: Implement TC cold sequences
+    - SAUCE: drm/i915/tc: Skip ref held check for TC legacy aux power wells
+    - SAUCE: drm/i915/tc/tgl: Implement TC cold sequences
+    - SAUCE: drm/i915/tc: Catch TC users accessing FIA registers without enable
+      aux
+    - SAUCE: drm/i915/tc: Do not warn when aux power well of static TC ports
+      timeout
+
+  * alsa/sof: external mic can't be deteced on Lenovo and HP laptops
+    (LP: #1872569)
+    - SAUCE: ASoC: intel/skl/hda - set autosuspend timeout for hda codecs
+
+  * amdgpu kernel errors in Linux 5.4 (LP: #1871248)
+    - drm/amd/display: Stop if retimer is not available
+
+  * Focal update: v5.4.34 upstream stable release (LP: #1874111)
+    - amd-xgbe: Use __napi_schedule() in BH context
+    - hsr: check protocol version in hsr_newlink()
+    - l2tp: Allow management of tunnels and session in user namespace
+    - net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode
+    - net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
+    - net: ipv6: do not consider routes via gateways for anycast address check
+    - net: phy: micrel: use genphy_read_status for KSZ9131
+    - net: qrtr: send msgs from local of same id as broadcast
+    - net: revert default NAPI poll timeout to 2 jiffies
+    - net: tun: record RX queue in skb before do_xdp_generic()
+    - net: dsa: mt7530: move mt7623 settings out off the mt7530
+    - net: ethernet: mediatek: move mt7623 settings out off the mt7530
+    - net/mlx5: Fix frequent ioread PCI access during recovery
+    - net/mlx5e: Add missing release firmware call
+    - net/mlx5e: Fix nest_level for vlan pop action
+    - net/mlx5e: Fix pfnum in devlink port attribute
+    - net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
+    - ovl: fix value of i_ino for lower hardlink corner case
+    - scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
+    - platform/chrome: cros_ec_rpmsg: Fix race with host event
+    - jbd2: improve comments about freeing data buffers whose page mapping is NULL
+    - acpi/nfit: improve bounds checking for 'func'
+    - perf report: Fix no branch type statistics report issue
+    - pwm: pca9685: Fix PWM/GPIO inter-operation
+    - ext4: fix incorrect group count in ext4_fill_super error message
+    - ext4: fix incorrect inodes per group in error message
+    - clk: at91: sam9x60: fix usb clock parents
+    - clk: at91: usb: use proper usbs_mask
+    - ARM: dts: imx7-colibri: fix muxing of usbc_det pin
+    - arm64: dts: librem5-devkit: add a vbus supply to usb0
+    - usb: dwc3: gadget: Don't clear flags before transfer ended
+    - ASoC: Intel: mrfld: fix incorrect check on p->sink
+    - ASoC: Intel: mrfld: return error codes when an error occurs
+    - ALSA: hda/realtek - Enable the headset mic on Asus FX505DT
+    - ALSA: usb-audio: Filter error from connector kctl ops, too
+    - ALSA: usb-audio: Don't override ignore_ctl_error value from the map
+    - ALSA: usb-audio: Don't create jack controls for PCM terminals
+    - ALSA: usb-audio: Check mapping at creating connector controls, too
+    - arm64: vdso: don't free unallocated pages
+    - keys: Fix proc_keys_next to increase position index
+    - tracing: Fix the race between registering 'snapshot' event trigger and
+      triggering 'snapshot' operation
+    - btrfs: check commit root generation in should_ignore_root
+    - nl80211: fix NL80211_ATTR_FTM_RESPONDER policy
+    - mac80211: fix race in ieee80211_register_hw()
+    - mac80211_hwsim: Use kstrndup() in place of kasprintf()
+    - net/mlx5e: Encapsulate updating netdev queues into a function
+    - net/mlx5e: Rename hw_modify to preactivate
+    - net/mlx5e: Use preactivate hook to set the indirection table
+    - drm/amd/powerplay: force the trim of the mclk dpm_levels if OD is enabled
+    - drm/amdgpu: fix the hw hang during perform system reboot and reset
+    - i2c: designware: platdrv: Remove DPM_FLAG_SMART_SUSPEND flag on BYT and CHT
+    - ext4: do not zeroout extents beyond i_disksize
+    - irqchip/ti-sci-inta: Fix processing of masked irqs
+    - x86/resctrl: Preserve CDP enable over CPU hotplug
+    - x86/resctrl: Fix invalid attempt at removing the default resource group
+    - scsi: target: remove boilerplate code
+    - scsi: target: fix hang when multiple threads try to destroy the same iscsi
+      session
+    - x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE
+    - Linux 5.4.34
+
+  * Focal update: v5.4.33 upstream stable release (LP: #1873481)
+    - ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage
+    - bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
+    - ARM: dts: Fix dm814x Ethernet by changing to use rgmii-id mode
+    - bpf: Fix deadlock with rq_lock in bpf_send_signal()
+    - iwlwifi: mvm: Fix rate scale NSS configuration
+    - Input: tm2-touchkey - add support for Coreriver TC360 variant
+    - soc: fsl: dpio: register dpio irq handlers after dpio create
+    - rxrpc: Abstract out the calculation of whether there's Tx space
+    - rxrpc: Fix call interruptibility handling
+    - net: stmmac: platform: Fix misleading interrupt error msg
+    - net: vxge: fix wrong __VA_ARGS__ usage
+    - hinic: fix a bug of waitting for IO stopped
+    - hinic: fix the bug of clearing event queue
+    - hinic: fix out-of-order excution in arm cpu
+    - hinic: fix wrong para of wait_for_completion_timeout
+    - hinic: fix wrong value of MIN_SKB_LEN
+    - selftests/net: add definition for SOL_DCCP to fix compilation errors for old
+      libc
+    - cxgb4/ptp: pass the sign of offset delta in FW CMD
+    - drm/scheduler: fix rare NULL ptr race
+    - cfg80211: Do not warn on same channel at the end of CSA
+    - qlcnic: Fix bad kzalloc null test
+    - i2c: st: fix missing struct parameter description
+    - i2c: pca-platform: Use platform_irq_get_optional
+    - media: rc: add keymap for Videostrong KII Pro
+    - cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL
+    - staging: wilc1000: avoid double unlocking of 'wilc->hif_cs' mutex
+    - media: venus: hfi_parser: Ignore HEVC encoding for V1
+    - firmware: arm_sdei: fix double-lock on hibernate with shared events
+    - null_blk: Fix the null_add_dev() error path
+    - null_blk: Handle null_add_dev() failures properly
+    - null_blk: fix spurious IO errors after failed past-wp access
+    - media: imx: imx7_mipi_csis: Power off the source when stopping streaming
+    - media: imx: imx7-media-csi: Fix video field handling
+    - xhci: bail out early if driver can't accress host in resume
+    - x86: Don't let pgprot_modify() change the page encryption bit
+    - dma-mapping: Fix dma_pgprot() for unencrypted coherent pages
+    - block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices
+    - debugfs: Check module state before warning in {full/open}_proxy_open()
+    - irqchip/versatile-fpga: Handle chained IRQs properly
+    - time/sched_clock: Expire timer in hardirq context
+    - media: allegro: fix type of gop_length in channel_create message
+    - sched: Avoid scale real weight down to zero
+    - selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
+    - PCI/switchtec: Fix init_completion race condition with poll_wait()
+    - block, bfq: move forward the getting of an extra ref in bfq_bfqq_move
+    - media: i2c: video-i2c: fix build errors due to 'imply hwmon'
+    - libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
+    - pstore/platform: fix potential mem leak if pstore_init_fs failed
+    - gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
+    - gfs2: Don't demote a glock until its revokes are written
+    - cpufreq: imx6q: fix error handling
+    - x86/boot: Use unsigned comparison for addresses
+    - efi/x86: Ignore the memory attributes table on i386
+    - genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
+    - block: Fix use-after-free issue accessing struct io_cq
+    - media: i2c: ov5695: Fix power on and off sequences
+    - usb: dwc3: core: add support for disabling SS instances in park mode
+    - irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
+    - md: check arrays is suspended in mddev_detach before call quiesce operations
+    - firmware: fix a double abort case with fw_load_sysfs_fallback
+    - spi: spi-fsl-dspi: Replace interruptible wait queue with a simple completion
+    - locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
+    - block, bfq: fix use-after-free in bfq_idle_slice_timer_body
+    - btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker is
+      at least queued
+    - btrfs: remove a BUG_ON() from merge_reloc_roots()
+    - btrfs: restart relocate_tree_blocks properly
+    - btrfs: track reloc roots based on their commit root bytenr
+    - ASoC: fix regwmask
+    - ASoC: dapm: connect virtual mux with default value
+    - ASoC: dpcm: allow start or stop during pause for backend
+    - ASoC: topology: use name_prefix for new kcontrol
+    - usb: gadget: f_fs: Fix use after free issue as part of queue failure
+    - usb: gadget: composite: Inform controller driver of self-powered
+    - ALSA: usb-audio: Add mixer workaround for TRX40 and co
+    - ALSA: hda: Add driver blacklist
+    - ALSA: hda: Fix potential access overflow in beep helper
+    - ALSA: ice1724: Fix invalid access for enumerated ctl items
+    - ALSA: pcm: oss: Fix regression by buffer overflow fix
+    - ALSA: hda/realtek - a fake key event is triggered by running shutup
+    - ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
+    - ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
+    - ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
+    - ALSA: hda/realtek - Add quirk for Lenovo Carbon X1 8th gen
+    - ALSA: hda/realtek - Add quirk for MSI GL63
+    - media: venus: firmware: Ignore secure call error on first resume
+    - media: hantro: Read be32 words starting at every fourth byte
+    - media: ti-vpe: cal: fix disable_irqs to only the intended target
+    - media: ti-vpe: cal: fix a kernel oops when unloading module
+    - seccomp: Add missing compat_ioctl for notify
+    - acpi/x86: ignore unspecified bit positions in the ACPI global lock field
+    - ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE
+    - ACPI: PM: s2idle: Refine active GPEs check
+    - thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
+    - nvmet-tcp: fix maxh2cdata icresp parameter
+    - efi/x86: Add TPM related EFI tables to unencrypted mapping checks
+    - PCI: pciehp: Fix indefinite wait on sysfs requests
+    - PCI/ASPM: Clear the correct bits when enabling L1 substates
+    - PCI: Add boot interrupt quirk mechanism for Xeon chipsets
+    - PCI: qcom: Fix the fixup of PCI_VENDOR_ID_QCOM
+    - PCI: endpoint: Fix for concurrent memory allocation in OB address region
+    - sched/fair: Fix enqueue_task_fair warning
+    - tpm: Don't make log failures fatal
+    - tpm: tpm1_bios_measurements_next should increase position index
+    - tpm: tpm2_bios_measurements_next should increase position index
+    - cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
+    - genirq/debugfs: Add missing sanity checks to interrupt injection
+    - irqchip/versatile-fpga: Apply clear-mask earlier
+    - io_uring: remove bogus RLIMIT_NOFILE check in file registration
+    - pstore: pstore_ftrace_seq_next should increase position index
+    - MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
+    - MIPS: OCTEON: irq: Fix potential NULL pointer dereference
+    - PM / Domains: Allow no domain-idle-states DT property in genpd when parsing
+    - PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there
+    - ath9k: Handle txpower changes even when TPC is disabled
+    - signal: Extend exec_id to 64bits
+    - x86/tsc_msr: Use named struct initializers
+    - x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
+    - x86/tsc_msr: Make MSR derived TSC frequency more accurate
+    - x86/entry/32: Add missing ASM_CLAC to general_protection entry
+    - platform/x86: asus-wmi: Support laptops where the first battery is named
+      BATT
+    - KVM: nVMX: Properly handle userspace interrupt window request
+    - KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
+    - KVM: s390: vsie: Fix delivery of addressing exceptions
+    - KVM: x86: Allocate new rmap and large page tracking when moving memslot
+    - KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
+    - KVM: x86: Gracefully handle __vmalloc() failure during VM allocation
+    - KVM: VMX: Add a trampoline to fix VMREAD error handling
+    - KVM: VMX: fix crash cleanup when KVM wasn't used
+    - smb3: fix performance regression with setting mtime
+    - CIFS: Fix bug which the return value by asynchronous read is error
+    - mtd: spinand: Stop using spinand->oobbuf for buffering bad block markers
+    - mtd: spinand: Do not erase the block before writing a bad block marker
+    - btrfs: Don't submit any btree write bio if the fs has errors
+    - Btrfs: fix crash during unmount due to race with delayed inode workers
+    - btrfs: reloc: clean dirty subvols if we fail to start a transaction
+    - btrfs: set update the uuid generation as soon as possible
+    - btrfs: drop block from cache on error in relocation
+    - btrfs: fix missing file extent item for hole after ranged fsync
+    - btrfs: unset reloc control if we fail to recover
+    - btrfs: fix missing semaphore unlock in btrfs_sync_file
+    - btrfs: use nofs allocations for running delayed items
+    - remoteproc: qcom_q6v5_mss: Don't reassign mpss region on shutdown
+    - remoteproc: qcom_q6v5_mss: Reload the mba region on coredump
+    - remoteproc: Fix NULL pointer dereference in rproc_virtio_notify
+    - crypto: rng - Fix a refcounting bug in crypto_rng_reset()
+    - crypto: mxs-dcp - fix scatterlist linearization for hash
+    - erofs: correct the remaining shrink objects
+    - io_uring: honor original task RLIMIT_FSIZE
+    - mmc: sdhci-of-esdhc: fix esdhc_reset() for different controller versions
+    - powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
+    - tools: gpio: Fix out-of-tree build regression
+    - net: qualcomm: rmnet: Allow configuration updates to existing devices
+    - arm64: dts: allwinner: h6: Fix PMU compatible
+    - sched/core: Remove duplicate assignment in sched_tick_remote()
+    - arm64: dts: allwinner: h5: Fix PMU compatible
+    - mm, memcg: do not high throttle allocators based on wraparound
+    - dm writecache: add cond_resched to avoid CPU hangs
+    - dm integrity: fix a crash with unusually large tag size
+    - dm verity fec: fix memory leak in verity_fec_dtr
+    - dm clone: Add overflow check for number of regions
+    - dm clone metadata: Fix return type of dm_clone_nr_of_hydrated_regions()
+    - XArray: Fix xas_pause for large multi-index entries
+    - xarray: Fix early termination of xas_for_each_marked
+    - crypto: caam/qi2 - fix chacha20 data size error
+    - crypto: caam - update xts sector size for large input length
+    - crypto: ccree - protect against empty or NULL scatterlists
+    - crypto: ccree - only try to map auth tag if needed
+    - crypto: ccree - dec auth tag size from cryptlen map
+    - scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
+    - scsi: ufs: fix Auto-Hibern8 error detection
+    - ARM: dts: exynos: Fix polarity of the LCD SPI bus on UniversalC210 board
+    - arm64: dts: ti: k3-am65: Add clocks to dwc3 nodes
+    - arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
+    - selftests: vm: drop dependencies on page flags from mlock2 tests
+    - selftests/vm: fix map_hugetlb length used for testing read and write
+    - selftests/powerpc: Add tlbie_test in .gitignore
+    - vfio: platform: Switch to platform_get_irq_optional()
+    - drm/i915/gem: Flush all the reloc_gpu batch
+    - drm/etnaviv: rework perfmon query infrastructure
+    - drm: Remove PageReserved manipulation from drm_pci_alloc
+    - drm/amdgpu/powerplay: using the FCLK DPM table to set the MCLK
+    - drm/amdgpu: unify fw_write_wait for new gfx9 asics
+    - powerpc/pseries: Avoid NULL pointer dereference when drmem is unavailable
+    - nfsd: fsnotify on rmdir under nfsd/clients/
+    - NFS: Fix use-after-free issues in nfs_pageio_add_request()
+    - NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
+    - ext4: fix a data race at inode->i_blocks
+    - fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
+    - ocfs2: no need try to truncate file beyond i_size
+    - perf tools: Support Python 3.8+ in Makefile
+    - s390/diag: fix display of diagnose call statistics
+    - Input: i8042 - add Acer Aspire 5738z to nomux list
+    - ftrace/kprobe: Show the maxactive number on kprobe_events
+    - clk: ingenic/jz4770: Exit with error if CGU init failed
+    - clk: ingenic/TCU: Fix round_rate returning error
+    - kmod: make request_module() return an error when autoloading is disabled
+    - cpufreq: powernv: Fix use-after-free
+    - hfsplus: fix crash and filesystem corruption when deleting files
+    - ipmi: fix hung processes in __get_guid()
+    - xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
+    - powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
+    - powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
+    - powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE
+      entries
+    - powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs
+    - powerpc/64: Setup a paca before parsing device tree etc.
+    - powerpc/xive: Fix xmon support on the PowerNV platform
+    - powerpc/kprobes: Ignore traps that happened in real mode
+    - powerpc/64: Prevent stack protection in early boot
+    - scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
+    - powerpc: Make setjmp/longjmp signature standard
+    - arm64: Always force a branch protection mode when the compiler has one
+    - dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
+    - dm clone: replace spin_lock_irqsave with spin_lock_irq
+    - dm clone: Fix handling of partial region discards
+    - dm clone: Add missing casts to prevent overflows and data corruption
+    - Revert "drm/dp_mst: Remove VCPI while disabling topology mgr"
+    - drm/dp_mst: Fix clearing payload state on topology disable
+    - drm/amdgpu: fix gfx hang during suspend with video playback (v2)
+    - drm/i915/icl+: Don't enable DDI IO power on a TypeC port in TBT mode
+    - powerpc/kasan: Fix kasan_remap_early_shadow_ro()
+    - mmc: sdhci: Convert sdhci_set_timeout_irq() to non-static
+    - mmc: sdhci: Refactor sdhci_set_timeout()
+    - bpf: Fix tnum constraints for 32-bit comparisons
+    - mfd: dln2: Fix sanity checking for endpoints
+    - efi/x86: Fix the deletion of variables in mixed mode
+    - ASoC: stm32: sai: Add missing cleanup
+    - Linux 5.4.33
+    - SUNRPC: fix krb5p mount to provide large enough buffer in rq_rcvsize
+
+  * Panic on suspend/resume Kernel panic - not syncing: stack-protector: Kernel
+    stack is corrupted in: sata_pmp_eh_recover+0xa2b/0xa40 (LP: #1821434) //
+    Focal update: v5.4.33 upstream stable release (LP: #1873481)
+    - libata: Return correct status in sata_pmp_eh_recover_pm() when
+      ATA_DFLAG_DETACH is set
+
+  * Focal update: v5.4.32 upstream stable release (LP: #1873292)
+    - cxgb4: fix MPS index overwrite when setting MAC address
+    - ipv6: don't auto-add link-local address to lag ports
+    - net: dsa: bcm_sf2: Do not register slave MDIO bus with OF
+    - net: dsa: bcm_sf2: Ensure correct sub-node is parsed
+    - net: dsa: mt7530: fix null pointer dereferencing in port5 setup
+    - net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before
+      accessing PHY registers
+    - net_sched: add a temporary refcnt for struct tcindex_data
+    - net_sched: fix a missing refcnt in tcindex_init()
+    - net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting
+    - tun: Don't put_page() for all negative return values from XDP program
+    - mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE
+    - r8169: change back SG and TSO to be disabled by default
+    - s390: prevent leaking kernel address in BEAR
+    - random: always use batched entropy for get_random_u{32,64}
+    - usb: dwc3: gadget: Wrap around when skip TRBs
+    - uapi: rename ext2_swab() to swab() and share globally in swab.h
+    - slub: improve bit diffusion for freelist ptr obfuscation
+    - tools/accounting/getdelays.c: fix netlink attribute length
+    - hwrng: imx-rngc - fix an error path
+    - ACPI: PM: Add acpi_[un]register_wakeup_handler()
+    - platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()
+    - ASoC: jz4740-i2s: Fix divider written at incorrect offset in register
+    - IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
+    - IB/hfi1: Fix memory leaks in sysfs registration and unregistration
+    - IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads
+    - ARM: imx: Enable ARM_ERRATA_814220 for i.MX6UL and i.MX7D
+    - ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A
+    - ceph: remove the extra slashes in the server path
+    - ceph: canonicalize server path in place
+    - include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for
+      swap
+    - RDMA/ucma: Put a lock around every call to the rdma_cm layer
+    - RDMA/cma: Teach lockdep about the order of rtnl and lock
+    - RDMA/siw: Fix passive connection establishment
+    - Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
+    - RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
+    - blk-mq: Keep set->nr_hw_queues and set->map[].nr_queues in sync
+    - fbcon: fix null-ptr-deref in fbcon_switch
+    - iommu/vt-d: Allow devices with RMRRs to use identity domain
+    - Linux 5.4.32
+
+  * Focal update: v5.4.31 upstream stable release (LP: #1871651)
+    - nvme-rdma: Avoid double freeing of async event data
+    - kconfig: introduce m32-flag and m64-flag
+    - drm/amd/display: Add link_rate quirk for Apple 15" MBP 2017
+    - drm/bochs: downgrade pci_request_region failure from error to warning
+    - initramfs: restore default compression behavior
+    - drm/amdgpu: fix typo for vcn1 idle check
+    - [Packaging] add libcap-dev dependency
+    - tools/power turbostat: Fix gcc build warnings
+    - tools/power turbostat: Fix missing SYS_LPI counter on some Chromebooks
+    - tools/power turbostat: Fix 32-bit capabilities warning
+    - net/mlx5e: kTLS, Fix TCP seq off-by-1 issue in TX resync flow
+    - XArray: Fix xa_find_next for large multi-index entries
+    - padata: fix uninitialized return value in padata_replace()
+    - brcmfmac: abort and release host after error
+    - misc: rtsx: set correct pcr_ops for rts522A
+    - misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices
+    - misc: pci_endpoint_test: Avoid using module parameter to determine irqtype
+    - PCI: sysfs: Revert "rescan" file renames
+    - coresight: do not use the BIT() macro in the UAPI header
+    - mei: me: add cedar fork device ids
+    - nvmem: check for NULL reg_read and reg_write before dereferencing
+    - extcon: axp288: Add wakeup support
+    - power: supply: axp288_charger: Add special handling for HP Pavilion x2 10
+    - Revert "dm: always call blk_queue_split() in dm_process_bio()"
+    - ALSA: hda/ca0132 - Add Recon3Di quirk to handle integrated sound on EVGA X99
+      Classified motherboard
+    - soc: mediatek: knows_txdone needs to be set in Mediatek CMDQ helper
+    - net/mlx5e: kTLS, Fix wrong value in record tracker enum
+    - iwlwifi: consider HE capability when setting LDPC
+    - iwlwifi: yoyo: don't add TLV offset when reading FIFOs
+    - iwlwifi: dbg: don't abort if sending DBGC_SUSPEND_RESUME fails
+    - rxrpc: Fix sendmsg(MSG_WAITALL) handling
+    - IB/hfi1: Ensure pq is not left on waitlist
+    - tcp: fix TFO SYNACK undo to avoid double-timestamp-undo
+    - watchdog: iTCO_wdt: Export vendorsupport
+    - watchdog: iTCO_wdt: Make ICH_RES_IO_SMI optional
+    - i2c: i801: Do not add ICH_RES_IO_SMI for the iTCO_wdt device
+    - net: Fix Tx hash bound checking
+    - padata: always acquire cpu_hotplug_lock before pinst->lock
+    - mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
+    - Linux 5.4.31
+
+  * Add hw timestamps to received skbs in peak_canfd (LP: #1874124)
+    - can: peak_canfd: provide hw timestamps in rx skbs
+
+  * kselftest: seccomp kill_after_ptrace() timeout (LP: #1872047)
+    - SAUCE: kselftest/runner: allow to properly deliver signals to tests
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 05 May 2020 12:36:10 +0200
+
+linux (5.4.0-29.33) focal; urgency=medium
+
+  * focal/linux: 5.4.0-29.33 -proposed tracker (LP: #1875858)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Add signed modules for the 435 NVIDIA driver (LP: #1875888)
+    - [Packaging] NVIDIA -- add signed modules for the 435 NVIDIA driver
+
+  * built-using constraints preventing uploads (LP: #1875601)
+    - temporarily drop Built-Using data
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 29 Apr 2020 15:34:16 +0200
+
+linux (5.4.0-28.32) focal; urgency=medium
+
+  * CVE-2020-11884
+    - SAUCE: s390/mm: fix page table upgrade vs 2ndary address mode accesses
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 22 Apr 2020 11:08:40 -0300
+
+linux (5.4.0-26.30) focal; urgency=medium
+
+  * focal/linux: 5.4.0-26.30 -proposed tracker (LP: #1873882)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * swap storms kills interactive use (LP: #1861359)
+    - SAUCE: drm/i915: prevent direct writeback from the shrinker
+
+  * 5.4.0-24.28 does not seem to apply rtprio, whereas -21 does. (LP: #1873315)
+    - [Config] lowlatency: turn off RT_GROUP_SCHED
+
+  * [RTL810xE] No ethernet connection (LP: #1871182)
+    - net: phy: realtek: fix handling of RTL8105e-integrated PHY
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 20 Apr 2020 18:33:49 +0200
+
+linux (5.4.0-25.29) focal; urgency=medium
+
+  * focal/linux: 5.4.0-25.29 -proposed tracker (LP: #1873459)
+
+  * [TGL] VMD support in TGL (LP: #1855954)
+    - PCI: vmd: Add bus 224-255 restriction decode
+    - PCI: vmd: Add device id for VMD device 8086:9A0B
+
+  * Can not see the storage with Intel RAID On mode enabled on Intel Comet Lake
+    (LP: #1871812)
+    - ahci: Add Intel Comet Lake PCH RAID PCI ID
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 17 Apr 2020 08:41:16 -0500
+
+linux (5.4.0-24.28) focal; urgency=medium
+
+  * focal/linux: 5.4.0-24.28 -proposed tracker (LP: #1871939)
+
+  * getitimer returns it_value=0 erroneously (LP: #1349028)
+    - [Config] CONTEXT_TRACKING_FORCE policy should be unset
+
+  * 12d1:1038 Dual-Role OTG device on non-HNP port - unable to enumerate USB
+    device on port 1 (LP: #1047527)
+    - [Config] USB_OTG_FSM policy not needed
+
+  * Add DCPD backlight support for HP CML system (LP: #1871589)
+    - SAUCE: drm/i915: Force DPCD backlight mode for HP CML 2020 system
+
+  * Backlight brightness cannot be adjusted using keys (LP: #1860303)
+    - SAUCE drm/i915: Force DPCD backlight mode for HP Spectre x360 Convertible
+      13t-aw100
+
+  * CVE-2020-11494
+    - slcan: Don't transmit uninitialized stack data in padding
+
+  * Ubuntu Kernel Support for OpenPOWER NV Secure & Trusted Boot (LP: #1866909)
+    - powerpc: Detect the secure boot mode of the system
+    - powerpc/ima: Add support to initialize ima policy rules
+    - powerpc: Detect the trusted boot state of the system
+    - powerpc/ima: Define trusted boot policy
+    - ima: Make process_buffer_measurement() generic
+    - certs: Add wrapper function to check blacklisted binary hash
+    - ima: Check against blacklisted hashes for files with modsig
+    - powerpc/ima: Update ima arch policy to check for blacklist
+    - powerpc/ima: Indicate kernel modules appended signatures are enforced
+    - powerpc/powernv: Add OPAL API interface to access secure variable
+    - powerpc: expose secure variables to userspace via sysfs
+    - x86/efi: move common keyring handler functions to new file
+    - powerpc: Load firmware trusted keys/hashes into kernel keyring
+    - x86/efi: remove unused variables
+
+  * [roce-0227]sync mainline kernel 5.6rc3  roce patchset into ubuntu HWE kernel
+    branch (LP: #1864950)
+    - RDMA/hns: Cleanups of magic numbers
+    - RDMA/hns: Optimize eqe buffer allocation flow
+    - RDMA/hns: Add the workqueue framework for flush cqe handler
+    - RDMA/hns: Delayed flush cqe process with workqueue
+    - RDMA/hns: fix spelling mistake: "attatch" -> "attach"
+    - RDMA/hns: Initialize all fields of doorbells to zero
+    - RDMA/hns: Treat revision HIP08_A as a special case
+    - RDMA/hns: Use flush framework for the case in aeq
+    - RDMA/hns: Stop doorbell update while qp state error
+    - RDMA/hns: Optimize qp destroy flow
+    - RDMA/hns: Optimize qp context create and destroy flow
+    - RDMA/hns: Optimize qp number assign flow
+    - RDMA/hns: Optimize qp buffer allocation flow
+    - RDMA/hns: Optimize qp param setup flow
+    - RDMA/hns: Optimize kernel qp wrid allocation flow
+    - RDMA/hns: Optimize qp doorbell allocation flow
+    - RDMA/hns: Check if depth of qp is 0 before configure
+
+  * [hns3-0316]sync mainline kernel 5.6rc4  hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1867586)
+    - net: hns3: modify an unsuitable print when setting unknown duplex to fibre
+    - net: hns3: add enabled TC numbers and DWRR weight info in debugfs
+    - net: hns3: add support for dump MAC ID and loopback status in debugfs
+    - net: hns3: add missing help info for QS shaper in debugfs
+    - net: hns3: fix some mixed type assignment
+    - net: hns3: rename macro HCLGE_MAX_NCL_CONFIG_LENGTH
+    - net: hns3: remove an unnecessary resetting check in
+      hclge_handle_hw_ras_error()
+    - net: hns3: delete some reduandant code
+    - net: hns3: add a check before PF inform VF to reset
+    - net: hns3: print out status register when VF receives unknown source
+      interrupt
+    - net: hns3: print out command code when dump fails in debugfs
+    - net: hns3: synchronize some print relating to reset issue
+    - net: hns3: delete unnecessary logs after kzalloc fails
+
+  * [SRU][F/U/OEM-5.6] UBUNTU: SAUCE: Fix amdgpu hang during acpi event
+    (LP: #1871316)
+    - SAUCE: drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event
+
+  * alsa: make the dmic detection align to the mainline kernel-5.6
+    (LP: #1871284)
+    - ALSA: hda: add Intel DSP configuration / probe code
+    - ALSA: hda: fix intel DSP config
+    - ALSA: hda: Allow non-Intel device probe gracefully
+    - ALSA: hda: More constifications
+    - ALSA: hda: Rename back to dmic_detect option
+    - [Config] SND_INTEL_DSP_CONFIG=m
+
+  * add_key05 from ubuntu_ltp_syscalls failed (LP: #1869644)
+    - KEYS: reaching the keys quotas correctly
+
+  * Fix authentication fail on Realtek WiFi 8723de (LP: #1871300)
+    - SAUCE: rtw88: No retry and report for auth and assoc
+    - SAUCE: rtw88: fix rate for a while after being connected
+    - SAUCE: rtw88: Move driver IQK to set channel before association for 11N chip
+
+  * Add Mute LED support for an HP laptop (LP: #1871090)
+    - ALSA: hda/realtek: Enable mute LED on an HP system
+
+  * dscr_sysfs_test / futex_bench / tm-unavailable  in powerpc from
+    ubuntu_kernel_selftests timeout on PowerPC nodes with B-5.3 (LP: #1864642)
+    - Revert "UBUNTU: SAUCE: selftests/powerpc -- Disable timeout for benchmark
+      and tm tests"
+    - selftests/powerpc: Turn off timeout setting for benchmarks, dscr, signal, tm
+
+  * Update 20.0.4 NVMe Core, NVMe FC Transport and nvme-cli for Broadcom Emulex
+    lpfc driver 12.6.0.x dependencies (LP: #1856340)
+    - nvme-fc: Sync nvme-fc header to FC-NVME-2
+    - nvme-fc and nvmet-fc: sync with FC-NVME-2 header changes
+    - nvme-fc: Set new cmd set indicator in nvme-fc cmnd iu
+    - nvme-fc: clarify error messages
+    - nvme-fc: ensure association_id is cleared regardless of a Disconnect LS
+    - nvme: resync include/linux/nvme.h with nvmecli
+    - nvme: Fix parsing of ANA log page
+
+  * Update Broadcom Emulex lpfc driver in 5.4 to 12.6.0.x from 5.5
+    (LP: #1855303)
+    - scsi: lpfc: Fix pt2pt discovery on SLI3 HBAs
+    - scsi: lpfc: Fix premature re-enabling of interrupts in lpfc_sli_host_down
+    - scsi: lpfc: Fix miss of register read failure check
+    - scsi: lpfc: Fix NVME io abort failures causing hangs
+    - scsi: lpfc: Fix device recovery errors after PLOGI failures
+    - scsi: lpfc: Fix GPF on scsi command completion
+    - scsi: lpfc: Fix NVMe ABTS in response to receiving an ABTS
+    - scsi: lpfc: Fix coverity errors on NULL pointer checks
+    - scsi: lpfc: Fix host hang at boot or slow boot
+    - scsi: lpfc: Update async event logging
+    - scsi: lpfc: Complete removal of FCoE T10 PI support on SLI-4 adapters
+    - scsi: lpfc: cleanup: remove unused fcp_txcmlpq_cnt
+    - scsi: lpfc: Update lpfc version to 12.4.0.1
+    - scsi: lpfc: Make function lpfc_defer_pt2pt_acc static
+    - scsi: lpfc: fix lpfc_nvmet_mrq to be bound by hdw queue count
+    - scsi: lpfc: Fix reporting of read-only fw error errors
+    - scsi: lpfc: Fix lockdep errors in sli_ringtx_put
+    - scsi: lpfc: fix coverity error of dereference after null check
+    - scsi: lpfc: Slight fast-path performance optimizations
+    - scsi: lpfc: Remove lock contention target write path
+    - scsi: lpfc: Revise interrupt coalescing for missing scenarios
+    - scsi: lpfc: Make FW logging dynamically configurable
+    - scsi: lpfc: Add log macros to allow print by serverity or verbosity setting
+    - scsi: lpfc: Add FA-WWN Async Event reporting
+    - scsi: lpfc: Add FC-AL support to lpe32000 models
+    - scsi: lpfc: Add additional discovery log messages
+    - scsi: lpfc: Update lpfc version to 12.6.0.0
+    - scsi: lpfc: lpfc_attr: Fix Use plain integer as NULL pointer
+    - scsi: lpfc: lpfc_nvmet: Fix Use plain integer as NULL pointer
+    - scsi: lpfc: fix build error of lpfc_debugfs.c for vfree/vmalloc
+    - scsi: lpfc: fix spelling error in MAGIC_NUMER_xxx
+    - scsi: lpfc: Fix NULL check before mempool_destroy is not needed
+    - scsi: lpfc: Make lpfc_debugfs_ras_log_data static
+    - scsi: lpfc: Fix configuration of BB credit recovery in service parameters
+    - scsi: lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port
+      bounce
+    - scsi: lpfc: Fix dynamic fw log enablement check
+    - scsi: lpfc: Sync with FC-NVMe-2 SLER change to require Conf with SLER
+    - scsi: lpfc: Clarify FAWNN error message
+    - scsi: lpfc: Add registration for CPU Offline/Online events
+    - scsi: lpfc: Change default IRQ model on AMD architectures
+    - scsi: lpfc: Add enablement of multiple adapter dumps
+    - scsi: lpfc: Update lpfc version to 12.6.0.1
+    - scsi: lpfc: Fix a kernel warning triggered by lpfc_sli4_enable_intr()
+    - scsi: lpfc: Fix lpfc_cpumask_of_node_init()
+    - scsi: lpfc: fix inlining of lpfc_sli4_cleanup_poll_list()
+    - scsi: lpfc: Initialize cpu_map for not present cpus
+    - scsi: lpfc: revise nvme max queues to be hdwq count
+    - scsi: lpfc: Update lpfc version to 12.6.0.2
+    - scsi: lpfc: size cpu map by last cpu id set
+    - scsi: lpfc: Fix incomplete NVME discovery when target
+    - scsi: lpfc: Fix missing check for CSF in Write Object Mbox Rsp
+    - scsi: lpfc: Fix Fabric hostname registration if system hostname changes
+    - scsi: lpfc: Fix ras_log via debugfs
+    - scsi: lpfc: Fix disablement of FC-AL on lpe35000 models
+    - scsi: lpfc: Fix unmap of dpp bars affecting next driver load
+    - scsi: lpfc: Fix MDS Latency Diagnostics Err-drop rates
+    - scsi: lpfc: Fix improper flag check for IO type
+    - scsi: lpfc: Update lpfc version to 12.6.0.3
+    - scsi: lpfc: Fix RQ buffer leakage when no IOCBs available
+    - scsi: lpfc: Fix lpfc_io_buf resource leak in lpfc_get_scsi_buf_s4 error path
+    - scsi: lpfc: Fix broken Credit Recovery after driver load
+    - scsi: lpfc: Fix registration of ELS type support in fdmi
+    - scsi: lpfc: Fix release of hwq to clear the eq relationship
+    - scsi: lpfc: Fix compiler warning on frame size
+    - scsi: lpfc: Fix coverity errors in fmdi attribute handling
+    - scsi: lpfc: Remove handler for obsolete ELS - Read Port Status (RPS)
+    - scsi: lpfc: Clean up hba max_lun_queue_depth checks
+    - scsi: lpfc: Update lpfc version to 12.6.0.4
+    - scsi: lpfc: Copyright updates for 12.6.0.4 patches
+    - scsi: fc: Update Descriptor definition and add RDF and Link Integrity FPINs
+    - scsi: lpfc: add RDF registration and Link Integrity FPIN logging
+
+  * lockdown on power (LP: #1855668) // Ubuntu Kernel Support for OpenPOWER NV
+    Secure & Trusted Boot (LP: #1866909)
+    - [Config] Enable configs for OpenPOWER NV Secure & Trusted Boot
+
+  * lockdown on power (LP: #1855668)
+    - SAUCE: (lockdown) powerpc: lock down kernel in secure boot mode
+
+  * Focal update: v5.4.30 upstream stable release (LP: #1870571)
+    - mac80211: Check port authorization in the ieee80211_tx_dequeue() case
+    - mac80211: fix authentication with iwlwifi/mvm
+    - serial: sprd: Fix a dereference warning
+    - vt: selection, introduce vc_is_sel
+    - vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
+    - vt: switch vt_dont_switch to bool
+    - vt: vt_ioctl: remove unnecessary console allocation checks
+    - vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
+    - vt: vt_ioctl: fix use-after-free in vt_in_use()
+    - platform/x86: pmc_atom: Add Lex 2I385SW to critclk_systems DMI table
+    - bpf: Explicitly memset the bpf_attr structure
+    - bpf: Explicitly memset some bpf info structures declared on the stack
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 CHT + AXP288 model
+    - net: ks8851-ml: Fix IO operations, again
+    - clk: imx: Align imx sc clock msg structs to 4
+    - clk: imx: Align imx sc clock parent msg structs to 4
+    - clk: ti: am43xx: Fix clock parent for RTC clock
+    - libceph: fix alloc_msg_with_page_vector() memory leaks
+    - arm64: alternative: fix build with clang integrated assembler
+    - perf map: Fix off by one in strncpy() size argument
+    - ARM: dts: oxnas: Fix clear-mask property
+    - ARM: bcm2835-rpi-zero-w: Add missing pinctrl name
+    - ARM: dts: imx6: phycore-som: fix arm and soc minimum voltage
+    - ARM: dts: N900: fix onenand timings
+    - ARM: dts: sun8i: r40: Move AHCI device node based on address order
+    - arm64: dts: ls1043a-rdb: correct RGMII delay mode to rgmii-id
+    - arm64: dts: ls1046ardb: set RGMII interfaces to RGMII_ID mode
+    - Linux 5.4.30
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_RT_GROUP_SCHED=y
+    - SAUCE: powerpc/ima: require IMA module signatures only if MODULE_SIG is not
+      enabled
+    - SAUCE: Update aufs to 5.4.3 20200302
+    - SAUCE: drm/amdgpu: Remove missing firmware files from modinfo
+    - SAUCE: drm/i915: Fix ref->mutex deadlock in i915_active_wait()
+    - SAUCE: drm/i915: Synchronize active and retire callbacks
+    - SAUCE: apparmor: add a valid state flags check
+    - SAUCE: aapparmor: add consistency check between state and dfa diff encode
+      flags
+    - SAUCE: aapparmor: remove useless aafs_create_symlink
+    - SAUCE: aapparmor: fail unpack if profile mode is unknown
+    - SAUCE: apparmor: ensure that dfa state tables have entries
+    - SAUCE: apparmor: fix potential label refcnt leak in aa_change_profile
+    - SAUCE: security/apparmor/label.c: Clean code by removing redundant
+      instructions
+    - [Config] Remove PCIEASPM_DEBUG from annotations
+    - [Config] Remove HEADER_TEST from annotations
+    - SAUCE: selftests/seccomp: allow clock_nanosleep instead of nanosleep
+    - [Debian] Allow building linux-libc-dev from linux-riscv
+    - [Packaging] Remove riscv64 packaging from master kernel
+    - [Config] Remove CONFIG_SND_HDA_INTEL_DETECT_DMIC from annotations
+
+  * Miscellaneous upstream changes
+    - net/bpfilter: remove superfluous testing message
+    - apparmor: increase left match history buffer size
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 09 Apr 2020 16:49:54 -0500
+
+linux (5.4.0-23.27) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Enable riscv64 build
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sat, 04 Apr 2020 14:03:47 -0500
+
+linux (5.4.0-22.26) focal; urgency=medium
+
+  * focal/linux: 5.4.0-22.26 -proposed tracker (LP: #1870502)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - [Packaging] update helper scripts
+    - update dkms package versions
+
+  * [SFC-0316]sync mainline kernel 5.7rc1 SFC patchset into ubuntu HWE kernel
+    branch (LP: #1867588)
+    - spi: Allow SPI controller override device buswidth
+    - spi: HiSilicon v3xx: Properly set CMD_CONFIG for Dual/Quad modes
+    - spi: HiSilicon v3xx: Use DMI quirk to set controller buswidth override bits
+
+  * [hns3-0316]sync mainline kernel 5.6rc4  hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1867586)
+    - net: hns3: fix VF VLAN table entries inconsistent issue
+    - net: hns3: fix RMW issue for VLAN filter switch
+    - net: hns3: clear port base VLAN when unload PF
+
+  * [sas-0316]sync mainline kernel 5.6rc1 roce patchset into ubuntu HWE kernel
+    branch (LP: #1867587)
+    - scsi: hisi_sas: use threaded irq to process CQ interrupts
+    - scsi: hisi_sas: replace spin_lock_irqsave/spin_unlock_restore with
+      spin_lock/spin_unlock
+    - scsi: hisi_sas: Replace magic number when handle channel interrupt
+    - scsi: hisi_sas: Modify the file permissions of trigger_dump to write only
+    - scsi: hisi_sas: Add prints for v3 hw interrupt converge and automatic
+      affinity
+    - scsi: hisi_sas: Rename hisi_sas_cq.pci_irq_mask
+
+  * Revert "nvme_fc: add module to ops template to allow module references"
+    (LP: #1869947)
+    - SAUCE: Revert "nvme_fc: add module to ops template to allow module
+      references"
+
+  * suspend only works once on ThinkPad X1 Carbon gen 7 (LP: #1865570)
+    - Revert "UBUNTU: SAUCE: e1000e: Disable s0ix flow for X1 Carbon 7th"
+    - SAUCE: e1000e: bump up timeout to wait when ME un-configure ULP mode
+
+  * Focal update: v5.4.29 upstream stable release (LP: #1870142)
+    - mmc: core: Allow host controllers to require R1B for CMD6
+    - mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard
+    - mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command
+    - mmc: sdhci-omap: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
+    - mmc: sdhci-tegra: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
+    - ACPI: PM: s2idle: Rework ACPI events synchronization
+    - cxgb4: fix throughput drop during Tx backpressure
+    - cxgb4: fix Txq restart check during backpressure
+    - geneve: move debug check after netdev unregister
+    - hsr: fix general protection fault in hsr_addr_is_self()
+    - ipv4: fix a RCU-list lock in inet_dump_fib()
+    - macsec: restrict to ethernet devices
+    - mlxsw: pci: Only issue reset when system is ready
+    - mlxsw: spectrum_mr: Fix list iteration in error path
+    - net/bpfilter: fix dprintf usage for /dev/kmsg
+    - net: cbs: Fix software cbs to consider packet sending time
+    - net: dsa: Fix duplicate frames flooded by learning
+    - net: dsa: mt7530: Change the LINK bit to reflect the link status
+    - net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop
+    - net: ena: Add PCI shutdown handler to allow safe kexec
+    - net: mvneta: Fix the case where the last poll did not process all rx
+    - net/packet: tpacket_rcv: avoid a producer race condition
+    - net: phy: dp83867: w/a for fld detect threshold bootstrapping issue
+    - net: phy: mdio-bcm-unimac: Fix clock handling
+    - net: phy: mdio-mux-bcm-iproc: check clk_prepare_enable() return value
+    - net: qmi_wwan: add support for ASKEY WWHC050
+    - net/sched: act_ct: Fix leak of ct zone template on replace
+    - net_sched: cls_route: remove the right filter from hashtable
+    - net_sched: hold rtnl lock in tcindex_partial_destroy_work()
+    - net_sched: keep alloc_hash updated after hash allocation
+    - net: stmmac: dwmac-rk: fix error path in rk_gmac_probe
+    - NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
+    - r8169: re-enable MSI on RTL8168c
+    - slcan: not call free_netdev before rtnl_unlock in slcan_open
+    - tcp: also NULL skb->dev when copy was needed
+    - tcp: ensure skb->dev is NULL before leaving TCP stack
+    - tcp: repair: fix TCP_QUEUE_SEQ implementation
+    - vxlan: check return value of gro_cells_init()
+    - bnxt_en: Fix Priority Bytes and Packets counters in ethtool -S.
+    - bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets()
+    - bnxt_en: Return error if bnxt_alloc_ctx_mem() fails.
+    - bnxt_en: Free context memory after disabling PCI in probe error path.
+    - bnxt_en: Reset rings if ring reservation fails during open()
+    - net: ip_gre: Separate ERSPAN newlink / changelink callbacks
+    - net: ip_gre: Accept IFLA_INFO_DATA-less configuration
+    - hsr: use rcu_read_lock() in hsr_get_node_{list/status}()
+    - hsr: add restart routine into hsr_get_node_list()
+    - hsr: set .netnsok flag
+    - net/mlx5: DR, Fix postsend actions write length
+    - net/mlx5e: Enhance ICOSQ WQE info fields
+    - net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
+    - net/mlx5e: Fix ICOSQ recovery flow with Striding RQ
+    - net/mlx5e: Do not recover from a non-fatal syndrome
+    - cgroup-v1: cgroup_pidlist_next should update position index
+    - nfs: add minor version to nfs_server_key for fscache
+    - cpupower: avoid multiple definition with gcc -fno-common
+    - drivers/of/of_mdio.c:fix of_mdiobus_register()
+    - cgroup1: don't call release_agent when it is ""
+    - [Config] updateconfigs for DPAA_ERRATUM_A050385
+    - dt-bindings: net: FMan erratum A050385
+    - arm64: dts: ls1043a: FMan erratum A050385
+    - fsl/fman: detect FMan erratum A050385
+    - drm/amd/display: update soc bb for nv14
+    - drm/amdgpu: correct ROM_INDEX/DATA offset for VEGA20
+    - drm/exynos: Fix cleanup of IOMMU related objects
+    - iommu/vt-d: Silence RCU-list debugging warnings
+    - s390/qeth: don't reset default_out_queue
+    - s390/qeth: handle error when backing RX buffer
+    - scsi: ipr: Fix softlockup when rescanning devices in petitboot
+    - mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
+    - dpaa_eth: Remove unnecessary boolean expression in dpaa_get_headroom
+    - sxgbe: Fix off by one in samsung driver strncpy size arg
+    - net: hns3: fix "tc qdisc del" failed issue
+    - iommu/vt-d: Fix debugfs register reads
+    - iommu/vt-d: Populate debugfs if IOMMUs are detected
+    - iwlwifi: mvm: fix non-ACPI function
+    - i2c: hix5hd2: add missed clk_disable_unprepare in remove
+    - Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()
+    - Input: fix stale timestamp on key autorepeat events
+    - Input: synaptics - enable RMI on HP Envy 13-ad105ng
+    - Input: avoid BIT() macro usage in the serio.h UAPI header
+    - IB/rdmavt: Free kernel completion queue when done
+    - RDMA/core: Fix missing error check on dev_set_name()
+    - gpiolib: Fix irq_disable() semantics
+    - RDMA/nl: Do not permit empty devices names during RDMA_NLDEV_CMD_NEWLINK/SET
+    - RDMA/mad: Do not crash if the rdma device does not have a umad interface
+    - ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL
+    - ceph: fix memory leak in ceph_cleanup_snapid_map()
+    - ARM: dts: dra7: Add bus_dma_limit for L3 bus
+    - ARM: dts: omap5: Add bus_dma_limit for L3 bus
+    - x86/ioremap: Fix CONFIG_EFI=n build
+    - perf probe: Fix to delete multiple probe event
+    - perf probe: Do not depend on dwfl_module_addrsym()
+    - rtlwifi: rtl8188ee: Fix regression due to commit d1d1a96bdb44
+    - tools: Let O= makes handle a relative path with -C option
+    - scripts/dtc: Remove redundant YYLOC global declaration
+    - scsi: sd: Fix optimal I/O size for devices that change reported values
+    - nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type
+    - mac80211: drop data frames without key on encrypted links
+    - mac80211: mark station unauthorized before key removal
+    - mm/swapfile.c: move inode_lock out of claim_swapfile
+    - drivers/base/memory.c: indicate all memory blocks as removable
+    - mm/sparse: fix kernel crash with pfn_section_valid check
+    - mm: fork: fix kernel_stack memcg stats for various stack implementations
+    - gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk
+    - gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT + AXP288 model
+    - bpf: Fix cgroup ref leak in cgroup_bpf_inherit on out-of-memory
+    - RDMA/core: Ensure security pkey modify is not lost
+    - afs: Fix handling of an abort from a service handler
+    - genirq: Fix reference leaks on irq affinity notifiers
+    - xfrm: handle NETDEV_UNREGISTER for xfrm device
+    - vti[6]: fix packet tx through bpf_redirect() in XinY cases
+    - RDMA/mlx5: Fix the number of hwcounters of a dynamic counter
+    - RDMA/mlx5: Fix access to wrong pointer while performing flush due to error
+    - RDMA/mlx5: Block delay drop to unprivileged users
+    - xfrm: fix uctx len check in verify_sec_ctx_len
+    - xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
+    - xfrm: policy: Fix doulbe free in xfrm_policy_timer
+    - afs: Fix client call Rx-phase signal handling
+    - afs: Fix some tracing details
+    - afs: Fix unpinned address list during probing
+    - ieee80211: fix HE SPR size calculation
+    - mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX
+    - netfilter: flowtable: reload ip{v6}h in nf_flow_tuple_ip{v6}
+    - netfilter: nft_fwd_netdev: validate family and chain type
+    - netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress
+    - i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status()
+    - bpf, x32: Fix bug with JMP32 JSET BPF_X checking upper bits
+    - bpf: Initialize storage pointers to NULL to prevent freeing garbage pointer
+    - bpf/btf: Fix BTF verification of enum members in struct/union
+    - bpf, sockmap: Remove bucket->lock from sock_{hash|map}_free
+    - ARM: dts: sun8i-a83t-tbs-a711: Fix USB OTG mode detection
+    - vti6: Fix memory leak of skb if input policy check fails
+    - r8169: fix PHY driver check on platforms w/o module softdeps
+    - clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources
+    - USB: serial: option: add support for ASKEY WWHC050
+    - USB: serial: option: add BroadMobi BM806U
+    - USB: serial: option: add Wistron Neweb D19Q1
+    - USB: cdc-acm: restore capability check order
+    - USB: serial: io_edgeport: fix slab-out-of-bounds read in
+      edge_interrupt_callback
+    - usb: musb: fix crash with highmen PIO and usbmon
+    - media: flexcop-usb: fix endpoint sanity check
+    - media: usbtv: fix control-message timeouts
+    - staging: kpc2000: prevent underflow in cpld_reconfigure()
+    - staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
+    - staging: wlan-ng: fix ODEBUG bug in prism2sta_disconnect_usb
+    - staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
+    - ahci: Add Intel Comet Lake H RAID PCI ID
+    - libfs: fix infoleak in simple_attr_read()
+    - media: ov519: add missing endpoint sanity checks
+    - media: dib0700: fix rc endpoint lookup
+    - media: stv06xx: add missing descriptor sanity checks
+    - media: xirlink_cit: add missing descriptor sanity checks
+    - media: v4l2-core: fix a use-after-free bug of sd->devnode
+    - update wireguard dkms package version
+    - [Config] updateconfigs for NET_REDIRECT
+    - net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build
+    - Linux 5.4.29
+
+  * Restore kernel control of PCIe DPC via option (LP: #1869423)
+    - PCI/DPC: Add "pcie_ports=dpc-native" to allow DPC without AER control
+
+  * swap storms kills interactive use (LP: #1861359)
+    - SAUCE: mm/page_alloc.c: disable memory reclaim watermark boosting by default
+
+  * sysfs: incorrect network device permissions on network namespace change
+    (LP: #1865359)
+    - sysfs: add sysfs_file_change_owner()
+    - sysfs: add sysfs_link_change_owner()
+    - sysfs: add sysfs_group{s}_change_owner()
+    - sysfs: add sysfs_change_owner()
+    - device: add device_change_owner()
+    - drivers/base/power: add dpm_sysfs_change_owner()
+    - net-sysfs: add netdev_change_owner()
+    - net-sysfs: add queue_change_owner()
+    - net: fix sysfs permssions when device changes network namespace
+    - sysfs: fix static inline declaration of sysfs_groups_change_owner()
+
+  * Kernel Oops - general protection fault: 0000 [#1] SMP PTI after
+    disconnecting thunderbolt docking station (LP: #1864754)
+    - SAUCE: ptp: free ptp clock properly
+
+  * [Selftests] Apply various fixes and improvements (LP: #1870543)
+    - SAUCE: selftests: net: ip_defrag: limit packet to 1000 fragments
+    - SAUCE: kselftest/runner: avoid using timeout if timeout is disabled
+    - SAUCE: selftests/seccomp -- Disable timeout for seccomp tests
+
+  * Focal update: v5.4.28 upstream stable release (LP: #1869061)
+    - locks: fix a potential use-after-free problem when wakeup a waiter
+    - locks: reinstate locks_delete_block optimization
+    - spi: spi-omap2-mcspi: Support probe deferral for DMA channels
+    - drm/mediatek: Find the cursor plane instead of hard coding it
+    - phy: ti: gmii-sel: fix set of copy-paste errors
+    - phy: ti: gmii-sel: do not fail in case of gmii
+    - ARM: dts: dra7-l4: mark timer13-16 as pwm capable
+    - spi: qup: call spi_qup_pm_resume_runtime before suspending
+    - powerpc: Include .BTF section
+    - cifs: fix potential mismatch of UNC paths
+    - cifs: add missing mount option to /proc/mounts
+    - ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
+    - spi: pxa2xx: Add CS control clock quirk
+    - spi/zynqmp: remove entry that causes a cs glitch
+    - drm/exynos: dsi: propagate error value and silence meaningless warning
+    - drm/exynos: dsi: fix workaround for the legacy clock name
+    - drm/exynos: hdmi: don't leak enable HDMI_EN regulator if probe fails
+    - drivers/perf: fsl_imx8_ddr: Correct the CLEAR bit definition
+    - drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer
+    - altera-stapl: altera_get_note: prevent write beyond end of 'key'
+    - dm bio record: save/restore bi_end_io and bi_integrity
+    - dm integrity: use dm_bio_record and dm_bio_restore
+    - riscv: avoid the PIC offset of static percpu data in module beyond 2G limits
+    - ASoC: stm32: sai: manage rebind issue
+    - spi: spi_register_controller(): free bus id on error paths
+    - riscv: Force flat memory model with no-mmu
+    - riscv: Fix range looking for kernel image memblock
+    - drm/amdgpu: clean wptr on wb when gpu recovery
+    - drm/amd/display: Clear link settings on MST disable connector
+    - drm/amd/display: fix dcc swath size calculations on dcn1
+    - xenbus: req->body should be updated before req->state
+    - xenbus: req->err should be updated before req->state
+    - block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
+    - parse-maintainers: Mark as executable
+    - binderfs: use refcount for binder control devices too
+    - Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
+    - usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
+    - USB: serial: option: add ME910G1 ECM composition 0x110b
+    - usb: host: xhci-plat: add a shutdown
+    - USB: serial: pl2303: add device-id for HP LD381
+    - usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller 1022:145c
+    - usb: typec: ucsi: displayport: Fix NULL pointer dereference
+    - usb: typec: ucsi: displayport: Fix a potential race during registration
+    - USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
+    - USB: cdc-acm: fix rounding error in TIOCSSERIAL
+    - ALSA: line6: Fix endless MIDI read loop
+    - ALSA: hda/realtek - Enable headset mic of Acer X2660G with ALC662
+    - ALSA: hda/realtek - Enable the headset of Acer N50-600 with ALC662
+    - ALSA: seq: virmidi: Fix running status after receiving sysex
+    - ALSA: seq: oss: Fix running status after receiving sysex
+    - ALSA: pcm: oss: Avoid plugin buffer overflow
+    - ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
+    - tty: fix compat TIOCGSERIAL leaking uninitialized memory
+    - tty: fix compat TIOCGSERIAL checking wrong function ptr
+    - iio: chemical: sps30: fix missing triggered buffer dependency
+    - iio: st_sensors: remap SMO8840 to LIS2DH12
+    - iio: trigger: stm32-timer: disable master mode when stopping
+    - iio: accel: adxl372: Set iio_chan BE
+    - iio: magnetometer: ak8974: Fix negative raw values in sysfs
+    - iio: adc: stm32-dfsdm: fix sleep in atomic context
+    - iio: adc: at91-sama5d2_adc: fix differential channels in triggered mode
+    - iio: light: vcnl4000: update sampling periods for vcnl4200
+    - iio: light: vcnl4000: update sampling periods for vcnl4040
+    - mmc: rtsx_pci: Fix support for speed-modes that relies on tuning
+    - mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2
+    - mmc: sdhci-cadence: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN for UniPhier
+    - CIFS: fiemap: do not return EINVAL if get nothing
+    - kbuild: Disable -Wpointer-to-enum-cast
+    - staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
+    - staging: greybus: loopback_test: fix poll-mask build breakage
+    - staging/speakup: fix get_word non-space look-ahead
+    - intel_th: msu: Fix the unexpected state warning
+    - intel_th: Fix user-visible error codes
+    - intel_th: pci: Add Elkhart Lake CPU support
+    - modpost: move the namespace field in Module.symvers last
+    - rtc: max8907: add missing select REGMAP_IRQ
+    - arm64: compat: Fix syscall number of compat_clock_getres
+    - xhci: Do not open code __print_symbolic() in xhci trace events
+    - btrfs: fix log context list corruption after rename whiteout error
+    - drm/amd/amdgpu: Fix GPR read from debugfs (v2)
+    - drm/lease: fix WARNING in idr_destroy
+    - stm class: sys-t: Fix the use of time_after()
+    - memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event
+    - mm, memcg: fix corruption on 64-bit divisor in memory.high throttling
+    - mm, memcg: throttle allocators based on ancestral memory.high
+    - mm/hotplug: fix hot remove failure in SPARSEMEM|!VMEMMAP case
+    - mm: do not allow MADV_PAGEOUT for CoW pages
+    - epoll: fix possible lost wakeup on epoll_ctl() path
+    - mm: slub: be more careful about the double cmpxchg of freelist
+    - mm, slub: prevent kmalloc_node crashes and memory leaks
+    - page-flags: fix a crash at SetPageError(THP_SWAP)
+    - x86/mm: split vmalloc_sync_all()
+    - futex: Fix inode life-time issue
+    - futex: Unbreak futex hashing
+    - arm64: smp: fix smp_send_stop() behaviour
+    - arm64: smp: fix crash_smp_send_stop() behaviour
+    - nvmet-tcp: set MSG_MORE only if we actually have more to send
+    - drm/bridge: dw-hdmi: fix AVI frame colorimetry
+    - staging: greybus: loopback_test: fix potential path truncation
+    - staging: greybus: loopback_test: fix potential path truncations
+    - Linux 5.4.28
+
+  * Pop sound from build-in speaker during cold boot and resume from S3
+    (LP: #1866357) // Focal update: v5.4.28 upstream stable release
+    (LP: #1869061)
+    - ALSA: hda/realtek: Fix pop noise on ALC225
+
+  * Focal update: v5.4.28 upstream stable release (LP: #1869061)
+    - perf/x86/amd: Add support for Large Increment per Cycle Events
+    - EDAC/amd64: Add family ops for Family 19h Models 00h-0Fh
+    - x86/MCE/AMD, EDAC/mce_amd: Add new Load Store unit McaType
+    - EDAC/mce_amd: Always load on SMCA systems
+    - x86/amd_nb: Add Family 19h PCI IDs
+    - EDAC/amd64: Drop some family checks for newer systems
+
+  * Update mpt3sas Driver to 33.100.00.00 for Ubuntu 20.04 (LP: #1863574)
+    - scsi: mpt3sas: Register trace buffer based on NVDATA settings
+    - scsi: mpt3sas: Display message before releasing diag buffer
+    - scsi: mpt3sas: Free diag buffer without any status check
+    - scsi: mpt3sas: Maintain owner of buffer through UniqueID
+    - scsi: mpt3sas: clear release bit when buffer reregistered
+    - scsi: mpt3sas: Reuse diag buffer allocated at load time
+    - scsi: mpt3sas: Add app owned flag support for diag buffer
+    - scsi: mpt3sas: Fail release cmnd if diag buffer is released
+    - scsi: mpt3sas: Use Component img header to get Package ver
+    - scsi: mpt3sas: Fix module parameter max_msix_vectors
+    - scsi: mpt3sas: Bump mpt3sas driver version to 32.100.00.00
+    - scsi: mpt3sas: Clean up some indenting
+    - scsi: mpt3sas: change allocation option
+    - scsi: mpt3sas: Update MPI Headers to v02.00.57
+    - scsi: mpt3sas: Add support for NVMe shutdown
+    - scsi: mpt3sas: renamed _base_after_reset_handler function
+    - scsi: mpt3sas: Add support IOCs new state named COREDUMP
+    - scsi: mpt3sas: Handle CoreDump state from watchdog thread
+    - scsi: mpt3sas: print in which path firmware fault occurred
+    - scsi: mpt3sas: Optimize mpt3sas driver logging
+    - scsi: mpt3sas: Print function name in which cmd timed out
+    - scsi: mpt3sas: Remove usage of device_busy counter
+    - scsi: mpt3sas: Update drive version to 33.100.00.00
+
+  * Ubuntu 20.04: megaraid_sas driver update to version 07.713.01.00-rc1
+    (LP: #1863581)
+    - scsi: megaraid_sas: Unique names for MSI-X vectors
+    - scsi: megaraid_sas: remove unused variables 'debugBlk','fusion'
+    - compat_ioctl: use correct compat_ptr() translation in drivers
+    - scsi: megaraid_sas: Make poll_aen_lock static
+    - scsi: megaraid_sas: Reset adapter if FW is not in READY state after device
+      resume
+    - scsi: megaraid_sas: Set no_write_same only for Virtual Disk
+    - scsi: megaraid_sas: Update optimal queue depth for SAS and NVMe devices
+    - scsi: megaraid_sas: Do not kill host bus adapter, if adapter is already dead
+    - scsi: megaraid_sas: Do not kill HBA if JBOD Seqence map or RAID map is
+      disabled
+    - scsi: megaraid_sas: Do not set HBA Operational if FW is not in operational
+      state
+    - scsi: megaraid_sas: Re-Define enum DCMD_RETURN_STATUS
+    - scsi: megaraid_sas: Limit the number of retries for the IOCTLs causing
+      firmware fault
+    - scsi: megaraid_sas: Use Block layer API to check SCSI device in-flight IO
+      requests
+    - scsi: megaraid_sas: Update driver version to 07.713.01.00-rc1
+    - scsi: megaraid_sas: fixup MSIx interrupt setup during resume
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 03 Apr 2020 16:28:40 +0200
+
+linux (5.4.0-21.25) focal; urgency=medium
+
+  * CVE-2020-8835
+    - SAUCE: bpf: undo incorrect __reg_bound_offset32 handling
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 26 Mar 2020 17:51:28 -0300
+
+linux (5.4.0-20.24) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (lockdown) Reduce lockdown level to INTEGRITY for secure boot
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 23 Mar 2020 14:54:04 -0500
+
+linux (5.4.0-19.23) focal; urgency=medium
+
+  * focal/linux: 5.4.0-19.23 -proposed tracker (LP: #1868347)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - update dkms package versions
+
+  * Focal update: v5.4.27 upstream stable release (LP: #1868538)
+    - netfilter: hashlimit: do not use indirect calls during gc
+    - netfilter: xt_hashlimit: unregister proc file before releasing mutex
+    - drm/amdgpu: Fix TLB invalidation request when using semaphore
+    - ACPI: watchdog: Allow disabling WDAT at boot
+    - HID: apple: Add support for recent firmware on Magic Keyboards
+    - ACPI: watchdog: Set default timeout in probe
+    - HID: hid-bigbenff: fix general protection fault caused by double kfree
+    - HID: hid-bigbenff: call hid_hw_stop() in case of error
+    - HID: hid-bigbenff: fix race condition for scheduled work during removal
+    - selftests/rseq: Fix out-of-tree compilation
+    - tracing: Fix number printing bug in print_synth_event()
+    - cfg80211: check reg_rule for NULL in handle_channel_custom()
+    - scsi: libfc: free response frame from GPN_ID
+    - net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
+    - net: ks8851-ml: Fix IRQ handling and locking
+    - mac80211: rx: avoid RCU list traversal under mutex
+    - net: ll_temac: Fix race condition causing TX hang
+    - net: ll_temac: Add more error handling of dma_map_single() calls
+    - net: ll_temac: Fix RX buffer descriptor handling on GFP_ATOMIC pressure
+    - net: ll_temac: Handle DMA halt condition caused by buffer underrun
+    - blk-mq: insert passthrough request into hctx->dispatch directly
+    - drm/amdgpu: fix memory leak during TDR test(v2)
+    - kbuild: add dtbs_check to PHONY
+    - kbuild: add dt_binding_check to PHONY in a correct place
+    - signal: avoid double atomic counter increments for user accounting
+    - slip: not call free_netdev before rtnl_unlock in slip_open
+    - net: phy: mscc: fix firmware paths
+    - hinic: fix a irq affinity bug
+    - hinic: fix a bug of setting hw_ioctxt
+    - hinic: fix a bug of rss configuration
+    - net: rmnet: fix NULL pointer dereference in rmnet_newlink()
+    - net: rmnet: fix NULL pointer dereference in rmnet_changelink()
+    - net: rmnet: fix suspicious RCU usage
+    - net: rmnet: remove rcu_read_lock in rmnet_force_unassociate_device()
+    - net: rmnet: do not allow to change mux id if mux id is duplicated
+    - net: rmnet: use upper/lower device infrastructure
+    - net: rmnet: fix bridge mode bugs
+    - net: rmnet: fix packet forwarding in rmnet bridge mode
+    - sfc: fix timestamp reconstruction at 16-bit rollover points
+    - jbd2: fix data races at struct journal_head
+    - blk-mq: insert flush request to the front of dispatch queue
+    - net: qrtr: fix len of skb_put_padto in qrtr_node_enqueue
+    - ARM: 8957/1: VDSO: Match ARMv8 timer in cntvct_functional()
+    - ARM: 8958/1: rename missed uaccess .fixup section
+    - mm: slub: add missing TID bump in kmem_cache_alloc_bulk()
+    - HID: google: add moonball USB id
+    - HID: add ALWAYS_POLL quirk to lenovo pixart mouse
+    - ARM: 8961/2: Fix Kbuild issue caused by per-task stack protector GCC plugin
+    - ipv4: ensure rcu_read_lock() in cipso_v4_error()
+    - Linux 5.4.27
+
+  * This laptop contains a touchpadwhich is not recognized. (LP: #1858299) //
+    Focal update: v5.4.27 upstream stable release (LP: #1868538)
+    - HID: i2c-hid: add Trekstor Surfbook E11B to descriptor override
+
+  * suspend only works once on ThinkPad X1 Carbon gen 7 (LP: #1865570)
+    - SAUCE: e1000e: Disable s0ix flow for X1 Carbon 7th
+
+  *  Make Dell WD19 dock more reliable after suspend (LP: #1868217)
+    - xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3
+    - xhci: Wait until link state trainsits to U0 after setting USB_SS_PORT_LS_U0
+    - xhci: Finetune host initiated USB3 rootport link suspend and resume
+    - USB: Disable LPM on WD19's Realtek Hub
+
+  * update-version-dkms doesn't add a BugLink (LP: #1867790)
+    - [Packaging] Add BugLink to update-version-dkms commit
+
+  * enable realtek ethernet device ASPM function (LP: #1836030)
+    - PCI/ASPM: Add L1 PM substate support to pci_disable_link_state()
+    - PCI/ASPM: Allow re-enabling Clock PM
+    - PCI/ASPM: Remove pcie_aspm_enabled() unnecessary locking
+    - PCI/ASPM: Add pcie_aspm_get_link()
+    - PCI/ASPM: Add sysfs attributes for controlling ASPM link states
+
+  * Update SmartPQI driver in Focal to 1.2.10-025 (LP: #1864484)
+    - scsi: smartpqi: clean up indentation of a statement
+    - scsi: smartpqi: remove set but not used variable 'ctrl_info'
+    - scsi: smartpqi: clean up an indentation issue
+    - scsi: smartpqi: fix controller lockup observed during force reboot
+    - scsi: smartpqi: fix call trace in device discovery
+    - scsi: smartpqi: add inquiry timeouts
+    - scsi: smartpqi: fix LUN reset when fw bkgnd thread is hung
+    - scsi: smartpqi: change TMF timeout from 60 to 30 seconds
+    - scsi: smartpqi: correct syntax issue
+    - scsi: smartpqi: fix problem with unique ID for physical device
+    - scsi: smartpqi: remove unused manifest constants
+    - scsi: smartpqi: Align driver syntax with oob
+    - scsi: smartpqi: bump version
+
+  * [roce-0111]sync mainline kernel 5.5rc6 roce patchset into ubuntu HWE kernel
+    branch (LP: #1859269)
+    - RDMA/hns: Modify variable/field name from vlan to vlan_id
+    - RDMA/hns: Fix a spelling mistake in a macro
+    - RDMA/hns: Delete BITS_PER_BYTE redefinition
+    - RDMA/core: Move core content from ib_uverbs to ib_core
+    - RDMA/core: Create mmap database and cookie helper functions
+    - RDMA: Connect between the mmap entry and the umap_priv structure
+    - RDMA/hns: Remove unsupported modify_port callback
+    - RDMA/hns: Delete unnecessary variable max_post
+    - RDMA/hns: Remove unnecessary structure hns_roce_sqp
+    - RDMA/hns: Delete unnecessary uar from hns_roce_cq
+    - RDMA/hns: Modify fields of struct hns_roce_srq
+    - RDMA/hns: Replace not intuitive function/macro names
+    - RDMA/hns: Simplify doorbell initialization code
+    - RDMA/hns: Modify hns_roce_hw_v2_get_cfg to simplify the code
+    - RDMA/hns: Fix non-standard error codes
+    - RDMA/hns: Modify appropriate printings
+    - dma-mapping: remove the DMA_ATTR_WRITE_BARRIER flag
+    - IB/umem: remove the dmasync argument to ib_umem_get
+    - RDMA/hns: Redefine interfaces used in creating cq
+    - RDMA/hns: Redefine the member of hns_roce_cq struct
+    - RDMA/hns: Rename the functions used inside creating cq
+    - RDMA/hns: Delete unnecessary callback functions for cq
+    - RDMA/hns: Remove unused function hns_roce_init_eq_table()
+    - RDMA/hns: Update the value of qp type
+    - RDMA/hns: Delete unnessary parameters in hns_roce_v2_qp_modify()
+    - RDMA/hns: Remove redundant print information
+    - RDMA/hns: Replace custom macros HNS_ROCE_ALIGN_UP
+    - RDMA/hns: Fix coding style issues
+    - RDMA/hns: Add support for reporting wc as software mode
+    - RDMA/hns: Remove some redundant variables related to capabilities
+    - RDMA/hns: Add interfaces to get pf capabilities from firmware
+    - RDMA/hns: Get pf capabilities from firmware
+    - RDMA/hns: Add support for extended atomic in userspace
+
+  * dmaengine: hisilicon: Add Kunpeng DMA engine support (LP: #1864442)
+    - dmaengine: hisilicon: Add Kunpeng DMA engine support
+    - [Config] CONFIG_HISI_DMA=m
+
+  * Add support for Realtek 8723DE wireless adapter (LP: #1780590)
+    - rtw88: 8822c: fix boolreturn.cocci warnings
+    - rtw88: remove redundant flag check helper function
+    - rtw88: pci: reset H2C queue indexes in a single write
+    - rtw88: not to enter or leave PS under IRQ
+    - rtw88: not to control LPS by each vif
+    - rtw88: remove unused lps state check helper
+    - rtw88: LPS enter/leave should be protected by lock
+    - rtw88: leave PS state for dynamic mechanism
+    - rtw88: add deep power save support
+    - rtw88: not to enter LPS by coex strategy
+    - rtw88: select deep PS mode when module is inserted
+    - rtw88: add deep PS PG mode for 8822c
+    - rtw88: remove misleading module parameter rtw_fw_support_lps
+    - mac80211: simplify TX aggregation start
+    - rtw88: check firmware leave lps successfully
+    - rtw88: allows to set RTS in TX descriptor
+    - rtw88: add driver TX queue support
+    - rtw88: take over rate control from mac80211
+    - rtw88: report tx rate to mac80211 stack
+    - rtw88: add TX-AMSDU support
+    - rtw88: flush hardware tx queues
+    - rtw88: Don't set RX_FLAG_DECRYPTED if packet has no encryption
+    - rtw88: configure TX queue EDCA parameters
+    - rtw88: raise firmware version debug level
+    - rtw88: use struct rtw_fw_hdr to access firmware header
+    - rtw88: Fix an error message
+    - rtw88: config 8822c multicast address in MAC init flow
+    - rtw88: add NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 support
+    - rtw88: Use rtw_write8_set to set SYS_FUNC
+    - rtw88: pci: config phy after chip info is setup
+    - rtw88: use a for loop in rtw_power_mode_change(), not goto
+    - rtw88: include interrupt.h for tasklet_struct
+    - rtw88: mark rtw_fw_hdr __packed
+    - rtw88: use macro to check the current band
+    - rtw88: add power tracking support
+    - rtw88: Enable 802.11ac beamformee support
+    - rtw88: add set_bitrate_mask support
+    - rtw88: add phy_info debugfs to show Tx/Rx physical status
+    - rtw88: fix GENMASK_ULL for u64
+    - rtw88: fix sparse warnings for DPK
+    - rtw88: fix sparse warnings for power tracking
+    - rtw88: 8822b: add RFE type 3 support
+    - rtw88: use rtw_phy_pg_cfg_pair struct, not arrays
+    - rtw88: rearrange if..else statements for rx rate indexes
+    - rtw88: avoid FW info flood
+    - rtw88: remove redundant null pointer check on arrays
+    - rtw88: raise LPS threshold to 50, for less power consumption
+    - rtw88: fix potential NULL pointer access for firmware
+    - rtw88: signal completion even on firmware-request failure
+    - rtw88: remove duplicated include from ps.c
+    - rtw88: pci: use macros to access PCI DBI/MDIO registers
+    - rtw88: pci: use for loop instead of while loop for DBI/MDIO
+    - rtw88: pci: enable CLKREQ function if host supports it
+    - rtw88: allows to enable/disable HCI link PS mechanism
+    - rtw88: pci: reset ring index when release skbs in tx ring
+    - rtw88: pci: reset dma when reset pci trx ring
+    - rtw88: add interface config for 8822c
+    - rtw88: load wowlan firmware if wowlan is supported
+    - rtw88: support wowlan feature for 8822c
+    - rtw88: Add wowlan pattern match support
+    - rtw88: Add wowlan net-detect support
+    - rtw88: fix TX secondary channel offset of 40M if current bw is 20M or 40M
+    - rtw88: 8822c: update power sequence to v15
+    - rtw88: remove unused spinlock
+    - rtw88: remove unused variable 'in_lps'
+    - rtw88: remove unused vif pointer in struct rtw_vif
+    - rtw88: use rtw_hci_stop() instead of rtwdev->hci.ops->stop()
+    - rtw88: assign NULL to skb after being kfree()'ed
+    - rtw88: change max_num_of_tx_queue() definition to inline in pci.h
+    - rtw88: use true,false for bool variable
+    - rtw88: use shorter delay time to poll PS state
+    - rtw88: Fix return value of rtw_wow_check_fw_status
+    - SAUCE: rtw88: add regulatory process strategy for different chipset
+    - SAUCE: rtw88: support dynamic user regulatory setting
+    - SAUCE: rtw88: Use secondary channel offset enumeration
+    - SAUCE: rtw88: 8822c: modify rf protection setting
+    - SAUCE: rtw88: disable TX-AMSDU on 2.4G band
+    - SAUCE: Revert "rtw88: disable TX-AMSDU on 2.4G band"
+    - SAUCE: rtw88: disable TX-AMSDU on 2.4G band
+    - SAUCE: rtw88: remove unused parameter vif in rtw_lps_pg_info_get()
+    - SAUCE: rtw88: add rtw_read8_mask and rtw_read16_mask
+    - SAUCE: rtw88: pci: 8822c should set clock delay to zero
+    - SAUCE: rtw88: move rtw_enter_ips() to the last when config
+    - SAUCE: rtw88: avoid holding mutex for cancel_delayed_work_sync()
+    - SAUCE: rtw88: add ciphers to suppress error message
+    - SAUCE: rtw88: 8822c: update power sequence to v16
+    - SAUCE: rtw88: Fix incorrect beamformee role setting
+    - SAUCE: rtw88: don't hold all IRQs disabled for PS operations
+    - SAUCE: rtw88: extract alloc rsvd_page and h2c skb routines
+    - SAUCE: rtw88: associate reserved pages with each vif
+    - SAUCE: rtw88: add adaptivity support for EU/JP regulatory
+    - SAUCE: rtw88: 8723d: Add basic chip capabilities
+    - SAUCE: rtw88: 8723d: add beamform wrapper functions
+    - SAUCE: rtw88: 8723d: Add power sequence
+    - SAUCE: rtw88: 8723d: Add RF read/write ops
+    - SAUCE: rtw88: 8723d: Add mac/bb/rf/agc/power_limit tables
+    - SAUCE: rtw88: 8723d: Add cfg_ldo25 to control LDO25
+    - SAUCE: rtw88: 8723d: Add new chip op efuse_grant() to control efuse access
+    - SAUCE: rtw88: 8723d: Add read_efuse to recognize efuse info from map
+    - SAUCE: rtw88: add legacy firmware download for 8723D devices
+    - SAUCE: rtw88: no need to send additional information to legacy firmware
+    - SAUCE: rtw88: 8723d: Add mac power-on/-off function
+    - SAUCE: rtw88: decompose while(1) loop of power sequence polling command
+    - SAUCE: rtw88: 8723d: 11N chips don't support H2C queue
+    - SAUCE: rtw88: 8723d: implement set_tx_power_index ops
+    - SAUCE: rtw88: 8723d: Organize chip TX/RX FIFO
+    - SAUCE: rtw88: 8723d: initialize mac/bb/rf basic functions
+    - SAUCE: rtw88: 8723d: Add DIG parameter
+    - SAUCE: rtw88: 8723d: Add query_rx_desc
+    - SAUCE: rtw88: 8723d: Add set_channel
+    - SAUCE: rtw88: handle C2H_CCX_TX_RPT to know if packet TX'ed successfully
+    - SAUCE: rtw88: 8723d: 11N chips don't support LDPC
+    - SAUCE: rtw88: set default port to firmware
+    - SAUCE: rtw88: update tx descriptor of mgmt and rsvd page packets
+    - SAUCE: rtw88: sar: add SAR of TX power limit
+    - SAUCE: rtw88: sar: Load static SAR table from ACPI WRDS method
+    - SAUCE: rtw88: sar: Load dynamic SAR table from ACPI methods
+    - SAUCE: rtw88: sar: apply dynamic SAR table to tx power limit
+    - SAUCE: rtw88: sar: add sar_work to poll if dynamic SAR table is changed
+    - SAUCE: rtw88: sar: dump sar information via debugfs
+    - SAUCE: rtw88: 8723d: Add chip_ops::false_alarm_statistics
+    - SAUCE: rtw88: 8723d: Set IG register for CCK rate
+    - SAUCE: rtw88: 8723d: add interface configurations table
+    - SAUCE: rtw88: 8723d: Add LC calibration
+    - SAUCE: rtw88: 8723d: add IQ calibration
+    - SAUCE: rtw88: 8723d: Add power tracking
+    - SAUCE: rtw88: 8723d: Add shutdown callback to disable BT USB suspend
+    - SAUCE: rtw88: 8723d: implement flush queue
+    - SAUCE: rtw88: 8723d: set ltecoex register address in chip_info
+    - SAUCE: rtw88: 8723d: Add coex support
+    - SAUCE: rtw88: fill zeros to words 0x06 and 0x07 of security cam entry
+    - SAUCE: rtw88: 8723d: Add 8723DE to Kconfig and Makefile
+    - [Config] CONFIG_RTW88_8723DE=y
+
+  * [Ubuntu 20.04] Unset HIBERNATION and PM kernel config options for focal
+    (LP: #1867753)
+    - [Config] CONFIG_HIBERNATION=n and CONFIG_PM=n for s390x
+
+  * [20.04 FEAT] Base KVM setup for secure guests - kernel part (LP: #1835531)
+    - KVM: s390: Cleanup kvm_arch_init error path
+    - KVM: s390: Cleanup initial cpu reset
+    - KVM: s390: Add new reset vcpu API
+    - s390/protvirt: introduce host side setup
+    - s390/protvirt: add ultravisor initialization
+    - s390/mm: provide memory management functions for protected KVM guests
+    - s390/mm: add (non)secure page access exceptions handlers
+    - s390/protvirt: Add sysfs firmware interface for Ultravisor information
+    - KVM: s390/interrupt: do not pin adapter interrupt pages
+    - KVM: s390: protvirt: Add UV debug trace
+    - KVM: s390: add new variants of UV CALL
+    - KVM: s390: protvirt: Add initial vm and cpu lifecycle handling
+    - KVM: s390: protvirt: Secure memory is not mergeable
+    - KVM: s390/mm: Make pages accessible before destroying the guest
+    - KVM: s390: protvirt: Handle SE notification interceptions
+    - KVM: s390: protvirt: Instruction emulation
+    - KVM: s390: protvirt: Implement interrupt injection
+    - KVM: s390: protvirt: Add SCLP interrupt handling
+    - KVM: s390: protvirt: Handle spec exception loops
+    - KVM: s390: protvirt: Add new gprs location handling
+    - KVM: S390: protvirt: Introduce instruction data area bounce buffer
+    - KVM: s390: protvirt: handle secure guest prefix pages
+    - KVM: s390/mm: handle guest unpin events
+    - KVM: s390: protvirt: Write sthyi data to instruction data area
+    - KVM: s390: protvirt: STSI handling
+    - KVM: s390: protvirt: disallow one_reg
+    - KVM: s390: protvirt: Do only reset registers that are accessible
+    - KVM: s390: protvirt: Only sync fmt4 registers
+    - KVM: s390: protvirt: Add program exception injection
+    - KVM: s390: protvirt: UV calls in support of diag308 0, 1
+    - KVM: s390: protvirt: Report CPU state to Ultravisor
+    - KVM: s390: protvirt: Support cmd 5 operation state
+    - KVM: s390: protvirt: Mask PSW interrupt bits for interception 104 and 112
+    - KVM: s390: protvirt: do not inject interrupts after start
+    - KVM: s390: protvirt: Add UV cpu reset calls
+    - DOCUMENTATION: Protected virtual machine introduction and IPL
+    - KVM: s390: protvirt: introduce and enable KVM_CAP_S390_PROTECTED
+    - KVM: s390: protvirt: Add KVM api documentation
+    - mm/gup/writeback: add callbacks for inaccessible pages
+
+  * Sys oopsed with sysfs test in ubuntu_stress_smoke_test on X-hwe ARM64
+    (LP: #1866772)
+    - ACPI: sysfs: copy ACPI data using io memory copying
+
+  * Focal update: v5.4.26 upstream stable release (LP: #1867903)
+    - virtio_balloon: Adjust label in virtballoon_probe
+    - ALSA: hda/realtek - More constifications
+    - cgroup, netclassid: periodically release file_lock on classid updating
+    - gre: fix uninit-value in __iptunnel_pull_header
+    - inet_diag: return classid for all socket types
+    - ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface
+    - ipvlan: add cond_resched_rcu() while processing muticast backlog
+    - ipvlan: do not add hardware address of master to its unicast filter list
+    - ipvlan: do not use cond_resched_rcu() in ipvlan_process_multicast()
+    - ipvlan: don't deref eth hdr before checking it's set
+    - macvlan: add cond_resched() during multicast processing
+    - net: dsa: fix phylink_start()/phylink_stop() calls
+    - net: dsa: mv88e6xxx: fix lockup on warm boot
+    - net: fec: validate the new settings in fec_enet_set_coalesce()
+    - net: hns3: fix a not link up issue when fibre port supports autoneg
+    - net/ipv6: use configured metric when add peer route
+    - netlink: Use netlink header as base to calculate bad attribute offset
+    - net: macsec: update SCI upon MAC address change.
+    - net: nfc: fix bounds checking bugs on "pipe"
+    - net/packet: tpacket_rcv: do not increment ring index on drop
+    - net: phy: bcm63xx: fix OOPS due to missing driver name
+    - net: stmmac: dwmac1000: Disable ACS if enhanced descs are not used
+    - net: systemport: fix index check to avoid an array out of bounds access
+    - sfc: detach from cb_page in efx_copy_channel()
+    - slip: make slhc_compress() more robust against malicious packets
+    - taprio: Fix sending packets without dequeueing them
+    - bonding/alb: make sure arp header is pulled before accessing it
+    - bnxt_en: reinitialize IRQs when MTU is modified
+    - bnxt_en: fix error handling when flashing from file
+    - cgroup: memcg: net: do not associate sock with unrelated cgroup
+    - net: memcg: late association of sock to memcg
+    - net: memcg: fix lockdep splat in inet_csk_accept()
+    - devlink: validate length of param values
+    - devlink: validate length of region addr/len
+    - fib: add missing attribute validation for tun_id
+    - nl802154: add missing attribute validation
+    - nl802154: add missing attribute validation for dev_type
+    - can: add missing attribute validation for termination
+    - macsec: add missing attribute validation for port
+    - net: fq: add missing attribute validation for orphan mask
+    - net: taprio: add missing attribute validation for txtime delay
+    - team: add missing attribute validation for port ifindex
+    - team: add missing attribute validation for array index
+    - tipc: add missing attribute validation for MTU property
+    - nfc: add missing attribute validation for SE API
+    - nfc: add missing attribute validation for deactivate target
+    - nfc: add missing attribute validation for vendor subcommand
+    - net: phy: avoid clearing PHY interrupts twice in irq handler
+    - net: phy: fix MDIO bus PM PHY resuming
+    - net/ipv6: need update peer route when modify metric
+    - net/ipv6: remove the old peer route if change it to a new one
+    - selftests/net/fib_tests: update addr_metric_test for peer route testing
+    - net: dsa: Don't instantiate phylink for CPU/DSA ports unless needed
+    - net: phy: Avoid multiple suspends
+    - cgroup: cgroup_procs_next should increase position index
+    - cgroup: Iterate tasks that did not finish do_exit()
+    - netfilter: nf_tables: fix infinite loop when expr is not available
+    - iwlwifi: mvm: Do not require PHY_SKU NVM section for 3168 devices
+    - iommu/vt-d: quirk_ioat_snb_local_iommu: replace WARN_TAINT with pr_warn +
+      add_taint
+    - netfilter: nf_conntrack: ct_cpu_seq_next should increase position index
+    - netfilter: synproxy: synproxy_cpu_seq_next should increase position index
+    - netfilter: xt_recent: recent_seq_next should increase position index
+    - netfilter: x_tables: xt_mttg_seq_next should increase position index
+    - workqueue: don't use wq_select_unbound_cpu() for bound works
+    - drm/amd/display: remove duplicated assignment to grph_obj_type
+    - drm/i915: be more solid in checking the alignment
+    - drm/i915: Defer semaphore priority bumping to a workqueue
+    - mmc: sdhci-pci-gli: Enable MSI interrupt for GL975x
+    - pinctrl: falcon: fix syntax error
+    - ktest: Add timeout for ssh sync testing
+    - cifs_atomic_open(): fix double-put on late allocation failure
+    - gfs2_atomic_open(): fix O_EXCL|O_CREAT handling on cold dcache
+    - KVM: x86: clear stale x86_emulate_ctxt->intercept value
+    - KVM: nVMX: avoid NULL pointer dereference with incorrect EVMCS GPAs
+    - ARC: define __ALIGN_STR and __ALIGN symbols for ARC
+    - fuse: fix stack use after return
+    - s390/dasd: fix data corruption for thin provisioned devices
+    - ipmi_si: Avoid spurious errors for optional IRQs
+    - blk-iocost: fix incorrect vtime comparison in iocg_is_idle()
+    - fscrypt: don't evict dirty inodes after removing key
+    - macintosh: windfarm: fix MODINFO regression
+    - x86/ioremap: Map EFI runtime services data as encrypted for SEV
+    - efi: Fix a race and a buffer overflow while reading efivars via sysfs
+    - efi: Add a sanity check to efivar_store_raw()
+    - i2c: designware-pci: Fix BUG_ON during device removal
+    - mt76: fix array overflow on receiving too many fragments for a packet
+    - perf/amd/uncore: Replace manual sampling check with CAP_NO_INTERRUPT flag
+    - x86/mce: Fix logic and comments around MSR_PPIN_CTL
+    - iommu/dma: Fix MSI reservation allocation
+    - iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + add_taint
+    - iommu/vt-d: Fix RCU list debugging warnings
+    - iommu/vt-d: Fix a bug in intel_iommu_iova_to_phys() for huge page
+    - batman-adv: Don't schedule OGM for disabled interface
+    - clk: imx8mn: Fix incorrect clock defines
+    - pinctrl: meson-gxl: fix GPIOX sdio pins
+    - pinctrl: imx: scu: Align imx sc msg structs to 4
+    - virtio_ring: Fix mem leak with vring_new_virtqueue()
+    - drm/i915/gvt: Fix dma-buf display blur issue on CFL
+    - pinctrl: core: Remove extra kref_get which blocks hogs being freed
+    - drm/i915/gvt: Fix unnecessary schedule timer when no vGPU exits
+    - driver code: clarify and fix platform device DMA mask allocation
+    - iommu/vt-d: Fix RCU-list bugs in intel_iommu_init()
+    - i2c: gpio: suppress error on probe defer
+    - nl80211: add missing attribute validation for critical protocol indication
+    - nl80211: add missing attribute validation for beacon report scanning
+    - nl80211: add missing attribute validation for channel switch
+    - perf bench futex-wake: Restore thread count default to online CPU count
+    - netfilter: cthelper: add missing attribute validation for cthelper
+    - netfilter: nft_payload: add missing attribute validation for payload csum
+      flags
+    - netfilter: nft_tunnel: add missing attribute validation for tunnels
+    - netfilter: nf_tables: dump NFTA_CHAIN_FLAGS attribute
+    - netfilter: nft_chain_nat: inet family is missing module ownership
+    - iommu/vt-d: Fix the wrong printing in RHSA parsing
+    - iommu/vt-d: Ignore devices with out-of-spec domain number
+    - i2c: acpi: put device when verifying client fails
+    - iommu/amd: Fix IOMMU AVIC not properly update the is_run bit in IRTE
+    - ipv6: restrict IPV6_ADDRFORM operation
+    - net/smc: check for valid ib_client_data
+    - net/smc: cancel event worker during device removal
+    - Linux 5.4.26
+
+  * please help enable CONFIG_EROFS_FS_ZIP (LP: #1867099)
+    - [Config] CONFIG_EROFS_FS_ZIP=y
+    - [Config] CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+
+  * All PS/2 ports on PS/2 Serial add-in bracket are not working after S3
+    (LP: #1866734)
+    - SAUCE: Input: i8042 - fix the selftest retry logic
+
+  * [UBUNTU 20.04] virtio-blk disks can go dissfunctional when swiotlb fills up
+    (LP: #1867109)
+    - virtio-blk: fix hw_queue stopped on arbitrary error
+    - virtio-blk: improve virtqueue error to BLK_STS
+
+  * Focal update: v5.4.25 upstream stable release (LP: #1867178)
+    - block, bfq: get extra ref to prevent a queue from being freed during a group
+      move
+    - block, bfq: do not insert oom queue into position tree
+    - net: dsa: bcm_sf2: Forcibly configure IMP port for 1Gb/sec
+    - net: stmmac: fix notifier registration
+    - dm thin metadata: fix lockdep complaint
+    - RDMA/core: Fix pkey and port assignment in get_new_pps
+    - RDMA/core: Fix use of logical OR in get_new_pps
+    - kbuild: fix 'No such file or directory' warning when cleaning
+    - kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic
+    - blktrace: fix dereference after null check
+    - ALSA: hda: do not override bus codec_mask in link_get()
+    - serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE
+    - selftests: fix too long argument
+    - usb: gadget: composite: Support more than 500mA MaxPower
+    - usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags
+    - usb: gadget: serial: fix Tx stall after buffer overflow
+    - habanalabs: halt the engines before hard-reset
+    - habanalabs: do not halt CoreSight during hard reset
+    - habanalabs: patched cb equals user cb in device memset
+    - drm/msm/mdp5: rate limit pp done timeout warnings
+    - drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI
+    - drm/modes: Make sure to parse valid rotation value from cmdline
+    - drm/modes: Allow DRM_MODE_ROTATE_0 when applying video mode parameters
+    - scsi: megaraid_sas: silence a warning
+    - drm/msm/dsi: save pll state before dsi host is powered off
+    - drm/msm/dsi/pll: call vco set rate explicitly
+    - selftests: forwarding: use proto icmp for {gretap, ip6gretap}_mac testing
+    - selftests: forwarding: vxlan_bridge_1d: fix tos value
+    - net: atlantic: check rpc result and wait for rpc address
+    - net: ks8851-ml: Remove 8-bit bus accessors
+    - net: ks8851-ml: Fix 16-bit data access
+    - net: ks8851-ml: Fix 16-bit IO operation
+    - net: ethernet: dm9000: Handle -EPROBE_DEFER in dm9000_parse_dt()
+    - watchdog: da9062: do not ping the hw during stop()
+    - s390/cio: cio_ignore_proc_seq_next should increase position index
+    - s390: make 'install' not depend on vmlinux
+    - efi: Only print errors about failing to get certs if EFI vars are found
+    - net/mlx5: DR, Fix matching on vport gvmi
+    - nvme/pci: Add sleep quirk for Samsung and Toshiba drives
+    - nvme-pci: Use single IRQ vector for old Apple models
+    - x86/boot/compressed: Don't declare __force_order in kaslr_64.c
+    - s390/qdio: fill SL with absolute addresses
+    - nvme: Fix uninitialized-variable warning
+    - ice: Don't tell the OS that link is going down
+    - x86/xen: Distribute switch variables for initialization
+    - net: thunderx: workaround BGX TX Underflow issue
+    - csky/mm: Fixup export invalid_pte_table symbol
+    - csky: Set regs->usp to kernel sp, when the exception is from kernel
+    - csky/smp: Fixup boot failed when CONFIG_SMP
+    - csky: Fixup ftrace modify panic
+    - csky: Fixup compile warning for three unimplemented syscalls
+    - arch/csky: fix some Kconfig typos
+    - selftests: forwarding: vxlan_bridge_1d: use more proper tos value
+    - firmware: imx: scu: Ensure sequential TX
+    - binder: prevent UAF for binderfs devices
+    - binder: prevent UAF for binderfs devices II
+    - ALSA: hda/realtek - Add Headset Mic supported
+    - ALSA: hda/realtek - Add Headset Button supported for ThinkPad X1
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
+    - ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294
+    - cifs: don't leak -EAGAIN for stat() during reconnect
+    - cifs: fix rename() by ensuring source handle opened with DELETE bit
+    - usb: storage: Add quirk for Samsung Fit flash
+    - usb: quirks: add NO_LPM quirk for Logitech Screen Share
+    - usb: dwc3: gadget: Update chain bit correctly when using sg list
+    - usb: cdns3: gadget: link trb should point to next request
+    - usb: cdns3: gadget: toggle cycle bit before reset endpoint
+    - usb: core: hub: fix unhandled return by employing a void function
+    - usb: core: hub: do error out if usb_autopm_get_interface() fails
+    - usb: core: port: do error out if usb_autopm_get_interface() fails
+    - vgacon: Fix a UAF in vgacon_invert_region
+    - mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking
+      page tables prot_numa
+    - mm: fix possible PMD dirty bit lost in set_pmd_migration_entry()
+    - mm, hotplug: fix page online with DEBUG_PAGEALLOC compiled but not enabled
+    - fat: fix uninit-memory access for partial initialized inode
+    - btrfs: fix RAID direct I/O reads with alternate csums
+    - arm64: dts: socfpga: agilex: Fix gmac compatible
+    - arm: dts: dra76x: Fix mmc3 max-frequency
+    - tty:serial:mvebu-uart:fix a wrong return
+    - tty: serial: fsl_lpuart: free IDs allocated by IDA
+    - serial: 8250_exar: add support for ACCES cards
+    - vt: selection, close sel_buffer race
+    - vt: selection, push console lock down
+    - vt: selection, push sel_lock up
+    - media: hantro: Fix broken media controller links
+    - media: mc-entity.c: use & to check pad flags, not ==
+    - media: vicodec: process all 4 components for RGB32 formats
+    - media: v4l2-mem2mem.c: fix broken links
+    - perf intel-pt: Fix endless record after being terminated
+    - perf intel-bts: Fix endless record after being terminated
+    - perf cs-etm: Fix endless record after being terminated
+    - perf arm-spe: Fix endless record after being terminated
+    - spi: spidev: Fix CS polarity if GPIO descriptors are used
+    - x86/pkeys: Manually set X86_FEATURE_OSPKE to preserve existing changes
+    - s390/pci: Fix unexpected write combine on resource
+    - s390/mm: fix panic in gup_fast on large pud
+    - dmaengine: imx-sdma: fix context cache
+    - dmaengine: imx-sdma: Fix the event id check to include RX event for UART6
+    - dmaengine: tegra-apb: Fix use-after-free
+    - dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
+    - dm integrity: fix recalculation when moving from journal mode to bitmap mode
+    - dm integrity: fix a deadlock due to offloading to an incorrect workqueue
+    - dm integrity: fix invalid table returned due to argument count mismatch
+    - dm cache: fix a crash due to incorrect work item cancelling
+    - dm: report suspended device during destroy
+    - dm writecache: verify watermark during resume
+    - dm zoned: Fix reference counter initial value of chunk works
+    - dm: fix congested_fn for request-based device
+    - arm64: dts: meson-sm1-sei610: add missing interrupt-names
+    - ARM: dts: ls1021a: Restore MDIO compatible to gianfar
+    - spi: bcm63xx-hsspi: Really keep pll clk enabled
+    - drm/virtio: make resource id workaround runtime switchable.
+    - drm/virtio: fix resource id creation race
+    - ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
+    - ASoC: topology: Fix memleak in soc_tplg_manifest_load()
+    - ASoC: SOF: Fix snd_sof_ipc_stream_posn()
+    - ASoC: intel: skl: Fix pin debug prints
+    - ASoC: intel: skl: Fix possible buffer overflow in debug outputs
+    - powerpc: define helpers to get L1 icache sizes
+    - powerpc: Convert flush_icache_range & friends to C
+    - powerpc/mm: Fix missing KUAP disable in flush_coherent_icache()
+    - ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output
+    - ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path
+    - ASoC: Intel: Skylake: Fix available clock counter incrementation
+    - ASoC: dapm: Correct DAPM handling of active widgets during shutdown
+    - spi: atmel-quadspi: fix possible MMIO window size overrun
+    - drm/panfrost: Don't try to map on error faults
+    - drm: kirin: Revert "Fix for hikey620 display offset problem"
+    - drm/sun4i: Add separate DE3 VI layer formats
+    - drm/sun4i: Fix DE2 VI layer format support
+    - drm/sun4i: de2/de3: Remove unsupported VI layer formats
+    - drm/i915: Program MBUS with rmw during initialization
+    - drm/i915/selftests: Fix return in assert_mmap_offset()
+    - phy: mapphone-mdm6600: Fix timeouts by adding wake-up handling
+    - phy: mapphone-mdm6600: Fix write timeouts with shorter GPIO toggle interval
+    - ARM: dts: imx6: phycore-som: fix emmc supply
+    - arm64: dts: imx8qxp-mek: Remove unexisting Ethernet PHY
+    - firmware: imx: misc: Align imx sc msg structs to 4
+    - firmware: imx: scu-pd: Align imx sc msg structs to 4
+    - firmware: imx: Align imx_sc_msg_req_cpu_start to 4
+    - soc: imx-scu: Align imx sc msg structs to 4
+    - Revert "RDMA/cma: Simplify rdma_resolve_addr() error flow"
+    - RDMA/rw: Fix error flow during RDMA context initialization
+    - RDMA/nldev: Fix crash when set a QP to a new counter but QPN is missing
+    - RDMA/siw: Fix failure handling during device creation
+    - RDMA/iwcm: Fix iwcm work deallocation
+    - RDMA/core: Fix protection fault in ib_mr_pool_destroy
+    - regulator: stm32-vrefbuf: fix a possible overshoot when re-enabling
+    - RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
+    - IB/hfi1, qib: Ensure RCU is locked when accessing list
+    - ARM: imx: build v7_cpu_resume() unconditionally
+    - ARM: dts: am437x-idk-evm: Fix incorrect OPP node names
+    - ARM: dts: dra7xx-clocks: Fixup IPU1 mux clock parent source
+    - ARM: dts: imx7-colibri: Fix frequency for sd/mmc
+    - hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT()
+    - dma-buf: free dmabuf->name in dma_buf_release()
+    - dmaengine: coh901318: Fix a double lock bug in dma_tc_handle()
+    - arm64: dts: meson: fix gxm-khadas-vim2 wifi
+    - bus: ti-sysc: Fix 1-wire reset quirk
+    - EDAC/synopsys: Do not print an error with back-to-back snprintf() calls
+    - powerpc: fix hardware PMU exception bug on PowerVM compatibility mode
+      systems
+    - efi/x86: Align GUIDs to their size in the mixed mode runtime wrapper
+    - efi/x86: Handle by-ref arguments covering multiple pages in mixed mode
+    - efi: READ_ONCE rng seed size before munmap
+    - block, bfq: get a ref to a group when adding it to a service tree
+    - block, bfq: remove ifdefs from around gets/puts of bfq groups
+    - csky: Implement copy_thread_tls
+    - drm/virtio: module_param_named() requires linux/moduleparam.h
+    - Linux 5.4.25
+
+  * Miscellaneous Ubuntu changes
+    - hio -- remove duplicated MODULE_DEVICE_TABLE declaration
+    - [Config] Add initial riscv64 config
+    - [Config] Bring riscv64 in line with other arches
+    - [Packaging] Add riscv64 arch support
+    - [Packaging] Add initial riscv64 abi
+    - [Config] updateconfigs for riscv64
+    - [Config] Update annotations for riscv64
+    - SAUCE: r8169: disable ASPM L1.1
+    - update wireguard dkms package version
+    - [Config] garbage collect PCIEASPM_DEBUG
+    - [Config] gcc version updateconfigs
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: platform/x86: dell-uart-backlight: move retry block"
+    - RISC-V: Do not invoke SBI call if cpumask is empty
+    - RISC-V: Issue a local tlbflush if possible.
+    - RISC-V: Issue a tlb page flush if possible
+    - riscv: add support for SECCOMP and SECCOMP_FILTER
+    - riscv: reject invalid syscalls below -1
+    - mtd: spi-nor: Add support for is25wp256
+    - PCI/ASPM: Remove PCIEASPM_DEBUG Kconfig option and related code
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 23 Mar 2020 13:03:48 +0100
+
+linux (5.4.0-18.22) focal; urgency=medium
+
+  * focal/linux: 5.4.0-18.22 -proposed tracker (LP: #1866488)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+
+  * Add sysfs attribute to show remapped NVMe (LP: #1863621)
+    - SAUCE: ata: ahci: Add sysfs attribute to show remapped NVMe device count
+
+  * [20.04 FEAT] Compression improvements in Linux kernel (LP: #1830208)
+    - lib/zlib: add s390 hardware support for kernel zlib_deflate
+    - s390/boot: rename HEAP_SIZE due to name collision
+    - lib/zlib: add s390 hardware support for kernel zlib_inflate
+    - s390/boot: add dfltcc= kernel command line parameter
+    - lib/zlib: add zlib_deflate_dfltcc_enabled() function
+    - btrfs: use larger zlib buffer for s390 hardware compression
+    - [Config] Introducing s390x specific kernel config option CONFIG_ZLIB_DFLTCC
+
+  * [UBUNTU 20.04] s390x/pci: increase CONFIG_PCI_NR_FUNCTIONS to 512 in kernel
+    config (LP: #1866056)
+    - [Config] Increase CONFIG_PCI_NR_FUNCTIONS from 64 to 512 starting with focal
+      on s390x
+
+  * CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set (LP: #1865332)
+    - [Config] CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+
+  * Dell XPS 13 9300 Intel 1650S wifi [34f0:1651] fails to load firmware
+    (LP: #1865962)
+    - iwlwifi: remove IWL_DEVICE_22560/IWL_DEVICE_FAMILY_22560
+    - iwlwifi: 22000: fix some indentation
+    - iwlwifi: pcie: rx: use rxq queue_size instead of constant
+    - iwlwifi: allocate more receive buffers for HE devices
+    - iwlwifi: remove some outdated iwl22000 configurations
+    - iwlwifi: assume the driver_data is a trans_cfg, but allow full cfg
+
+  * [FOCAL][REGRESSION] Intel Gen 9 brightness cannot be controlled
+    (LP: #1861521)
+    - Revert "USUNTU: SAUCE: drm/i915: Force DPCD backlight mode on Dell Precision
+      4K sku"
+    - Revert "UBUNTU: SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd
+      Gen 4K AMOLED panel"
+    - SAUCE: drm/dp: Introduce EDID-based quirks
+    - SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED
+      panel
+    - SAUCE: drm/i915: Force DPCD backlight mode for some Dell CML 2020 panels
+
+  * [20.04 FEAT] Enable proper kprobes on ftrace support (LP: #1865858)
+    - s390/ftrace: save traced function caller
+    - s390: support KPROBES_ON_FTRACE
+
+  * alsa/sof: load different firmware on different platforms (LP: #1857409)
+    - ASoC: SOF: Intel: hda: use fallback for firmware name
+    - ASoC: Intel: acpi-match: split CNL tables in three
+    - ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary names.
+
+  * [UBUNTU 20.04] Enable CONFIG_NET_SWITCHDEV in kernel config for s390x
+    starting with focal (LP: #1865452)
+    - [Config] Enable CONFIG_NET_SWITCHDEV in kernel config for s390x starting
+      with focal
+
+  * Focal update: v5.4.24 upstream stable release (LP: #1866333)
+    - io_uring: grab ->fs as part of async offload
+    - EDAC: skx_common: downgrade message importance on missing PCI device
+    - net: dsa: b53: Ensure the default VID is untagged
+    - net: fib_rules: Correctly set table field when table number exceeds 8 bits
+    - net: macb: ensure interface is not suspended on at91rm9200
+    - net: mscc: fix in frame extraction
+    - net: phy: restore mdio regs in the iproc mdio driver
+    - net: sched: correct flower port blocking
+    - net/tls: Fix to avoid gettig invalid tls record
+    - nfc: pn544: Fix occasional HW initialization failure
+    - qede: Fix race between rdma destroy workqueue and link change event
+    - Revert "net: dev: introduce support for sch BYPASS for lockless qdisc"
+    - udp: rehash on disconnect
+    - sctp: move the format error check out of __sctp_sf_do_9_1_abort
+    - bnxt_en: Improve device shutdown method.
+    - bnxt_en: Issue PCIe FLR in kdump kernel to cleanup pending DMAs.
+    - bonding: add missing netdev_update_lockdep_key()
+    - net: export netdev_next_lower_dev_rcu()
+    - bonding: fix lockdep warning in bond_get_stats()
+    - ipv6: Fix route replacement with dev-only route
+    - ipv6: Fix nlmsg_flags when splitting a multipath route
+    - ipmi:ssif: Handle a possible NULL pointer reference
+    - drm/msm: Set dma maximum segment size for mdss
+    - sched/core: Don't skip remote tick for idle CPUs
+    - timers/nohz: Update NOHZ load in remote tick
+    - sched/fair: Prevent unlimited runtime on throttled group
+    - dax: pass NOWAIT flag to iomap_apply
+    - mac80211: consider more elements in parsing CRC
+    - cfg80211: check wiphy driver existence for drvinfo report
+    - s390/zcrypt: fix card and queue total counter wrap
+    - qmi_wwan: re-add DW5821e pre-production variant
+    - qmi_wwan: unconditionally reject 2 ep interfaces
+    - NFSv4: Fix races between open and dentry revalidation
+    - perf/smmuv3: Use platform_get_irq_optional() for wired interrupt
+    - perf/x86/intel: Add Elkhart Lake support
+    - perf/x86/cstate: Add Tremont support
+    - perf/x86/msr: Add Tremont support
+    - ceph: do not execute direct write in parallel if O_APPEND is specified
+    - ARM: dts: sti: fixup sound frame-inversion for stihxxx-b2120.dtsi
+    - drm/amd/display: Do not set optimized_require to false after plane disable
+    - RDMA/siw: Remove unwanted WARN_ON in siw_cm_llp_data_ready()
+    - drm/amd/display: Check engine is not NULL before acquiring
+    - drm/amd/display: Limit minimum DPPCLK to 100MHz.
+    - drm/amd/display: Add initialitions for PLL2 clock source
+    - amdgpu: Prevent build errors regarding soft/hard-float FP ABI tags
+    - soc/tegra: fuse: Fix build with Tegra194 configuration
+    - i40e: Fix the conditional for i40e_vc_validate_vqs_bitmaps
+    - net: ena: fix potential crash when rxfh key is NULL
+    - net: ena: fix uses of round_jiffies()
+    - net: ena: add missing ethtool TX timestamping indication
+    - net: ena: fix incorrect default RSS key
+    - net: ena: rss: do not allocate key when not supported
+    - net: ena: rss: fix failure to get indirection table
+    - net: ena: rss: store hash function as values and not bits
+    - net: ena: fix incorrectly saving queue numbers when setting RSS indirection
+      table
+    - net: ena: fix corruption of dev_idx_to_host_tbl
+    - net: ena: ethtool: use correct value for crc32 hash
+    - net: ena: ena-com.c: prevent NULL pointer dereference
+    - ice: update Unit Load Status bitmask to check after reset
+    - cifs: Fix mode output in debugging statements
+    - cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
+    - mac80211: fix wrong 160/80+80 MHz setting
+    - nvme/tcp: fix bug on double requeue when send fails
+    - nvme: prevent warning triggered by nvme_stop_keep_alive
+    - nvme/pci: move cqe check after device shutdown
+    - ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
+    - audit: fix error handling in audit_data_to_entry()
+    - audit: always check the netlink payload length in audit_receive_msg()
+    - ACPICA: Introduce ACPI_ACCESS_BYTE_WIDTH() macro
+    - ACPI: watchdog: Fix gas->access_width usage
+    - KVM: VMX: check descriptor table exits on instruction emulation
+    - HID: ite: Only bind to keyboard USB interface on Acer SW5-012 keyboard dock
+    - HID: core: fix off-by-one memset in hid_report_raw_event()
+    - HID: core: increase HID report buffer size to 8KiB
+    - drm/amdgpu: Drop DRIVER_USE_AGP
+    - drm/radeon: Inline drm_get_pci_dev
+    - macintosh: therm_windtunnel: fix regression when instantiating devices
+    - tracing: Disable trace_printk() on post poned tests
+    - Revert "PM / devfreq: Modify the device name as devfreq(X) for sysfs"
+    - amdgpu/gmc_v9: save/restore sdpif regs during S3
+    - cpufreq: Fix policy initialization for internal governor drivers
+    - io_uring: fix 32-bit compatability with sendmsg/recvmsg
+    - netfilter: ipset: Fix "INFO: rcu detected stall in hash_xxx" reports
+    - net/smc: transfer fasync_list in case of fallback
+    - vhost: Check docket sk_family instead of call getname
+    - netfilter: ipset: Fix forceadd evaluation path
+    - netfilter: xt_hashlimit: reduce hashlimit_mutex scope for htable_put()
+    - HID: alps: Fix an error handling path in 'alps_input_configured()'
+    - HID: hiddev: Fix race in in hiddev_disconnect()
+    - MIPS: VPE: Fix a double free and a memory leak in 'release_vpe()'
+    - i2c: altera: Fix potential integer overflow
+    - i2c: jz4780: silence log flood on txabrt
+    - drm/i915/gvt: Fix orphan vgpu dmabuf_objs' lifetime
+    - drm/i915/gvt: Separate display reset from ALL_ENGINES reset
+    - nl80211: fix potential leak in AP start
+    - mac80211: Remove a redundant mutex unlock
+    - kbuild: fix DT binding schema rule to detect command line changes
+    - hv_netvsc: Fix unwanted wakeup in netvsc_attach()
+    - usb: charger: assign specific number for enum value
+    - nvme-pci: Hold cq_poll_lock while completing CQEs
+    - s390/qeth: vnicc Fix EOPNOTSUPP precedence
+    - net: netlink: cap max groups which will be considered in netlink_bind()
+    - net: atlantic: fix use after free kasan warn
+    - net: atlantic: fix potential error handling
+    - net: atlantic: fix out of range usage of active_vlans array
+    - net/smc: no peer ID in CLC decline for SMCD
+    - net: ena: make ena rxfh support ETH_RSS_HASH_NO_CHANGE
+    - selftests: Install settings files to fix TIMEOUT failures
+    - kbuild: remove header compile test
+    - kbuild: move headers_check rule to usr/include/Makefile
+    - kbuild: remove unneeded variable, single-all
+    - kbuild: make single target builds even faster
+    - namei: only return -ECHILD from follow_dotdot_rcu()
+    - mwifiex: drop most magic numbers from mwifiex_process_tdls_action_frame()
+    - mwifiex: delete unused mwifiex_get_intf_num()
+    - KVM: SVM: Override default MMIO mask if memory encryption is enabled
+    - KVM: Check for a bad hva before dropping into the ghc slow path
+    - sched/fair: Optimize select_idle_cpu
+    - f2fs: fix to add swap extent correctly
+    - RDMA/hns: Simplify the calculation and usage of wqe idx for post verbs
+    - RDMA/hns: Bugfix for posting a wqe with sge
+    - drivers: net: xgene: Fix the order of the arguments of
+      'alloc_etherdev_mqs()'
+    - ima: ima/lsm policy rule loading logic bug fixes
+    - kprobes: Set unoptimized flag after unoptimizing code
+    - lib/vdso: Make __arch_update_vdso_data() logic understandable
+    - lib/vdso: Update coarse timekeeper unconditionally
+    - pwm: omap-dmtimer: put_device() after of_find_device_by_node()
+    - perf hists browser: Restore ESC as "Zoom out" of DSO/thread/etc
+    - perf ui gtk: Add missing zalloc object
+    - x86/resctrl: Check monitoring static key in the MBM overflow handler
+    - KVM: x86: Remove spurious kvm_mmu_unload() from vcpu destruction path
+    - KVM: x86: Remove spurious clearing of async #PF MSR
+    - rcu: Allow only one expedited GP to run concurrently with wakeups
+    - ubifs: Fix ino_t format warnings in orphan_delete()
+    - thermal: db8500: Depromote debug print
+    - thermal: brcmstb_thermal: Do not use DT coefficients
+    - netfilter: nft_tunnel: no need to call htons() when dumping ports
+    - netfilter: nf_flowtable: fix documentation
+    - bus: tegra-aconnect: Remove PM_CLK dependency
+    - xfs: clear kernel only flags in XFS_IOC_ATTRMULTI_BY_HANDLE
+    - locking/lockdep: Fix lockdep_stats indentation problem
+    - mm/debug.c: always print flags in dump_page()
+    - mm/gup: allow FOLL_FORCE for get_user_pages_fast()
+    - mm/huge_memory.c: use head to check huge zero page
+    - mm, thp: fix defrag setting if newline is not used
+    - kvm: nVMX: VMWRITE checks VMCS-link pointer before VMCS field
+    - kvm: nVMX: VMWRITE checks unsupported field before read-only field
+    - blktrace: Protect q->blk_trace with RCU
+    - Linux 5.4.24
+
+  * Focal update: v5.4.23 upstream stable release (LP: #1866165)
+    - iommu/qcom: Fix bogus detach logic
+    - ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs
+    - ALSA: hda/realtek - Apply quirk for MSI GP63, too
+    - ALSA: hda/realtek - Apply quirk for yet another MSI laptop
+    - ASoC: codec2codec: avoid invalid/double-free of pcm runtime
+    - ASoC: sun8i-codec: Fix setting DAI data format
+    - tpm: Initialize crypto_id of allocated_banks to HASH_ALGO__LAST
+    - ecryptfs: fix a memory leak bug in parse_tag_1_packet()
+    - ecryptfs: fix a memory leak bug in ecryptfs_init_messaging()
+    - btrfs: handle logged extent failure properly
+    - thunderbolt: Prevent crash if non-active NVMem file is read
+    - USB: misc: iowarrior: add support for 2 OEMed devices
+    - USB: misc: iowarrior: add support for the 28 and 28L devices
+    - USB: misc: iowarrior: add support for the 100 device
+    - e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm
+    - floppy: check FDC index for errors before assigning it
+    - vt: fix scrollback flushing on background consoles
+    - vt: selection, handle pending signals in paste_selection
+    - vt: vt_ioctl: fix race in VT_RESIZEX
+    - staging: android: ashmem: Disallow ashmem memory from being remapped
+    - staging: vt6656: fix sign of rx_dbm to bb_pre_ed_rssi.
+    - xhci: Force Maximum Packet size for Full-speed bulk devices to valid range.
+    - xhci: fix runtime pm enabling for quirky Intel hosts
+    - xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms
+    - xhci: Fix memory leak when caching protocol extended capability PSI tables -
+      take 2
+    - usb: host: xhci: update event ring dequeue pointer on purpose
+    - USB: core: add endpoint-blacklist quirk
+    - USB: quirks: blacklist duplicate ep on Sound Devices USBPre2
+    - usb: uas: fix a plug & unplug racing
+    - USB: Fix novation SourceControl XL after suspend
+    - USB: hub: Don't record a connect-change event during reset-resume
+    - USB: hub: Fix the broken detection of USB3 device in SMSC hub
+    - usb: dwc2: Fix SET/CLEAR_FEATURE and GET_STATUS flows
+    - usb: dwc3: gadget: Check for IOC/LST bit in TRB->ctrl fields
+    - usb: dwc3: debug: fix string position formatting mixup with ret and len
+    - scsi: Revert "target/core: Inline transport_lun_remove_cmd()"
+    - staging: rtl8188eu: Fix potential security hole
+    - staging: rtl8188eu: Fix potential overuse of kernel memory
+    - staging: rtl8723bs: Fix potential security hole
+    - staging: rtl8723bs: Fix potential overuse of kernel memory
+    - drm/panfrost: perfcnt: Reserve/use the AS attached to the perfcnt MMU
+      context
+    - powerpc/8xx: Fix clearing of bits 20-23 in ITLB miss
+    - powerpc/eeh: Fix deadlock handling dead PHB
+    - powerpc/tm: Fix clearing MSR[TS] in current when reclaiming on signal
+      delivery
+    - powerpc/entry: Fix an #if which should be an #ifdef in entry_32.S
+    - powerpc/hugetlb: Fix 512k hugepages on 8xx with 16k page size
+    - powerpc/hugetlb: Fix 8M hugepages on 8xx
+    - arm64: memory: Add missing brackets to untagged_addr() macro
+    - jbd2: fix ocfs2 corrupt when clearing block group bits
+    - x86/ima: use correct identifier for SetupMode variable
+    - x86/mce/amd: Publish the bank pointer only after setup has succeeded
+    - x86/mce/amd: Fix kobject lifetime
+    - x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF
+    - serial: 8250: Check UPF_IRQ_SHARED in advance
+    - tty/serial: atmel: manage shutdown in case of RS485 or ISO7816 mode
+    - tty: serial: imx: setup the correct sg entry for tx dma
+    - tty: serial: qcom_geni_serial: Fix RX cancel command failure
+    - serdev: ttyport: restore client ops on deregistration
+    - MAINTAINERS: Update drm/i915 bug filing URL
+    - ACPI: PM: s2idle: Check fixed wakeup events in acpi_s2idle_wake()
+    - mm/memcontrol.c: lost css_put in memcg_expand_shrinker_maps()
+    - nvme-multipath: Fix memory leak with ana_log_buf
+    - genirq/irqdomain: Make sure all irq domain flags are distinct
+    - mm/vmscan.c: don't round up scan size for online memory cgroup
+    - mm/sparsemem: pfn_to_page is not valid yet on SPARSEMEM
+    - lib/stackdepot.c: fix global out-of-bounds in stack_slabs
+    - mm: Avoid creating virtual address aliases in brk()/mmap()/mremap()
+    - drm/amdgpu/soc15: fix xclk for raven
+    - drm/amdgpu/gfx9: disable gfxoff when reading rlc clock
+    - drm/amdgpu/gfx10: disable gfxoff when reading rlc clock
+    - drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
+    - drm/i915: Wean off drm_pci_alloc/drm_pci_free
+    - drm/i915: Update drm/i915 bug filing URL
+    - sched/psi: Fix OOB write when writing 0 bytes to PSI files
+    - KVM: nVMX: Don't emulate instructions in guest mode
+    - KVM: x86: don't notify userspace IOAPIC on edge-triggered interrupt EOI
+    - ext4: fix a data race in EXT4_I(inode)->i_disksize
+    - ext4: add cond_resched() to __ext4_find_entry()
+    - ext4: fix potential race between online resizing and write operations
+    - ext4: fix potential race between s_group_info online resizing and access
+    - ext4: fix potential race between s_flex_groups online resizing and access
+    - ext4: fix mount failure with quota configured as module
+    - ext4: rename s_journal_flag_rwsem to s_writepages_rwsem
+    - ext4: fix race between writepages and enabling EXT4_EXTENTS_FL
+    - KVM: nVMX: Refactor IO bitmap checks into helper function
+    - KVM: nVMX: Check IO instruction VM-exit conditions
+    - KVM: nVMX: clear PIN_BASED_POSTED_INTR from nested pinbased_ctls only when
+      apicv is globally disabled
+    - KVM: nVMX: handle nested posted interrupts when apicv is disabled for L1
+    - KVM: apic: avoid calculating pending eoi from an uninitialized val
+    - btrfs: destroy qgroup extent records on transaction abort
+    - btrfs: fix bytes_may_use underflow in prealloc error condtition
+    - btrfs: reset fs_root to NULL on error in open_ctree
+    - btrfs: do not check delayed items are empty for single transaction cleanup
+    - Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered
+      extents
+    - Btrfs: fix race between shrinking truncate and fiemap
+    - btrfs: don't set path->leave_spinning for truncate
+    - Btrfs: fix deadlock during fast fsync when logging prealloc extents beyond
+      eof
+    - Revert "dmaengine: imx-sdma: Fix memory leak"
+    - drm/i915/gvt: more locking for ppgtt mm LRU list
+    - drm/bridge: tc358767: fix poll timeouts
+    - drm/i915/gt: Protect defer_request() from new waiters
+    - drm/msm/dpu: fix BGR565 vs RGB565 confusion
+    - scsi: Revert "RDMA/isert: Fix a recently introduced regression related to
+      logout"
+    - scsi: Revert "target: iscsi: Wait for all commands to finish before freeing
+      a session"
+    - usb: gadget: composite: Fix bMaxPower for SuperSpeedPlus
+    - usb: dwc2: Fix in ISOC request length checking
+    - staging: rtl8723bs: fix copy of overlapping memory
+    - staging: greybus: use after free in gb_audio_manager_remove_all()
+    - ASoC: atmel: fix atmel_ssc_set_audio link failure
+    - ASoC: fsl_sai: Fix exiting path on probing failure
+    - ecryptfs: replace BUG_ON with error handling code
+    - iommu/vt-d: Fix compile warning from intel-svm.h
+    - crypto: rename sm3-256 to sm3 in hash_algo_name
+    - genirq/proc: Reject invalid affinity masks (again)
+    - bpf, offload: Replace bitwise AND by logical AND in
+      bpf_prog_offload_info_fill
+    - arm64: lse: Fix LSE atomics with LLVM
+    - io_uring: fix __io_iopoll_check deadlock in io_sq_thread
+    - ALSA: rawmidi: Avoid bit fields for state flags
+    - ALSA: seq: Avoid concurrent access to queue flags
+    - ALSA: seq: Fix concurrent access to queue current tick/time
+    - netfilter: xt_hashlimit: limit the max size of hashtable
+    - rxrpc: Fix call RCU cleanup using non-bh-safe locks
+    - io_uring: prevent sq_thread from spinning when it should stop
+    - ata: ahci: Add shutdown to freeze hardware resources of ahci
+    - xen: Enable interrupts when calling _cond_resched()
+    - net/mlx5e: Reset RQ doorbell counter before moving RQ state from RST to RDY
+    - net/mlx5: Fix sleep while atomic in mlx5_eswitch_get_vepa
+    - net/mlx5e: Fix crash in recovery flow without devlink reporter
+    - s390/kaslr: Fix casts in get_random
+    - s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in
+      storage_key_init_range
+    - bpf: Selftests build error in sockmap_basic.c
+    - ASoC: SOF: Intel: hda: Add iDisp4 DAI
+    - Linux 5.4.23
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/net -- disable timeout
+    - SAUCE: selftests/net -- disable l2tp.sh test
+    - SAUCE: selftests/ftrace: Use printf instead of echo in kprobe syntax error
+      tests
+    - SAUCE: selftests/powerpc -- Disable timeout for benchmark and tm tests
+    - SAUCE: selftests/ftrace: Escape additional strings in kprobe syntax error
+      tests
+    - SAUCE: Revert "UBUNTU: SAUCE: blk/core: Gracefully handle unset
+      make_request_fn"
+    - [Packaging] prevent duplicated entries in modules.ignore
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sat, 07 Mar 2020 10:23:40 -0600
+
+linux (5.4.0-17.21) focal; urgency=medium
+
+  * focal/linux: 5.4.0-17.20 -proposed tracker (LP: #1865025)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: drm/i915/execlists: fix off by one in execlists_update_context()
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Thu, 27 Feb 2020 14:29:02 +0100
+
+linux (5.4.0-16.19) focal; urgency=medium
+
+  * focal/linux: 5.4.0-16.19 -proposed tracker (LP: #1864889)
+
+  * system hang: i915 Resetting rcs0 for hang on rcs0 (LP: #1861395)
+    - drm/i915/execlists: Always force a context reload when rewinding RING_TAIL
+
+  * nsleep-lat / set-timer-lat / inconsistency-check / raw_skew from timer in
+    ubuntu_kernel_selftests timeout on 5.3 / 5.4 (LP: #1864626)
+    - selftests/timers: Turn off timeout setting
+
+  * [sfc-0121]enable the HiSilicon v3xx SFC driver (LP: #1860401)
+    - spi: Add HiSilicon v3xx SPI NOR flash controller driver
+    - MAINTAINERS: Add a maintainer for the HiSilicon v3xx SFC driver
+    - [Config] CONFIG_SPI_HISI_SFC_V3XX=m
+
+  * [hns3-0217]sync mainline kernel 5.6rc1 hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1863575)
+    - net: hns3: add management table after IMP reset
+    - net: hns3: fix VF bandwidth does not take effect in some case
+    - net: hns3: fix a copying IPv6 address error in hclge_fd_get_flow_tuples()
+
+  * [hns3-0111]sync mainline kernel 5.5rc6 hns3 patchset into ubuntu HWE kernel
+    branch Edit (LP: #1859261)
+    - net: hns3: schedule hclgevf_service by using delayed workqueue
+    - net: hns3: remove mailbox and reset work in hclge_main
+    - net: hns3: remove unnecessary work in hclgevf_main
+    - net: hns3: allocate WQ with WQ_MEM_RECLAIM flag
+    - net: hns3: do not schedule the periodic task when reset fail
+    - net: hns3: check FE bit before calling hns3_add_frag()
+    - net: hns3: remove useless mutex vport_cfg_mutex in the struct hclge_dev
+    - net: hns3: optimization for CMDQ uninitialization
+    - net: hns3: get FD rules location before dump in debugfs
+    - net: hns3: implement ndo_features_check ops for hns3 driver
+    - net: hns3: add some VF VLAN information for command "ip link show"
+    - net: hns3: add a log for getting chain failure in
+      hns3_nic_uninit_vector_data()
+    - net: hns3: only print misc interrupt status when handling fails
+    - net: hns3: add trace event support for HNS3 driver
+    - net: hns3: re-organize vector handle
+    - net: hns3: modify the IRQ name of TQP vector
+    - net: hns3: modify an unsuitable log in hclge_map_ring_to_vector()
+    - net: hns3: modify the IRQ name of misc vectors
+    - net: hns3: add protection when get SFP speed as 0
+    - net: hns3: replace an unsuitable variable type in
+      hclge_inform_reset_assert_to_vf()
+    - net: hns3: modify an unsuitable reset level for hardware error
+    - net: hns3: split hclge_reset() into preparing and rebuilding part
+    - net: hns3: split hclgevf_reset() into preparing and rebuilding part
+    - net: hns3: refactor the precedure of PF FLR
+    - net: hns3: refactor the procedure of VF FLR
+    - net: hns3: enlarge HCLGE_RESET_WAIT_CNT
+    - net: hns3: modify hclge_func_reset_sync_vf()'s return type to void
+    - net: hns3: refactor the notification scheme of PF reset
+
+  * alsa/hda/realtek: fix a mute led regression on Lenovo X1 Carbon
+    (LP: #1864576)
+    - SAUCE: ALSA: hda/realtek - Fix a regression for mute led on Lenovo Carbon X1
+
+  * ipc/sem.c : process loops infinitely in exit_sem() (LP: #1858834)
+    - Revert "ipc, sem: remove uneeded sem_undo_list lock usage in exit_sem()"
+
+  * r8152 init may take up to 40 seconds at initialization with Dell WD19/WD19DC
+    during hotplug (LP: #1864284)
+    - UBUNTU SAUCE: r8151: check disconnect status after long sleep
+
+  * Update kernel options CONFIG_NR_CPUS and CONFIG_NUMA_EMU for focal
+    (LP: #1864198)
+    - Ubuntu: [Config] Update kernel options CONFIG_NR_CPUS and CONFIG_NUMA_EMU
+
+  * ftrace test in ubuntu_kernel_selftests will timeout randomly (LP: #1864172)
+    - tracing/selftests: Turn off timeout setting
+
+  * Another Dell AIO backlight issue (LP: #1863880)
+    - SAUCE: platform/x86: dell-uart-backlight: move retry block
+
+  * Backport GetFB2 ioctl (LP: #1863874)
+    - SAUCE: drm: Add getfb2 ioctl
+
+  * [20.04] Allow to reset an opencapi adapter (LP: #1862121)
+    - powerpc/powernv/ioda: Fix ref count for devices with their own PE
+    - powerpc/powernv/ioda: Protect PE list
+    - powerpc/powernv/ioda: set up PE on opencapi device when enabling
+    - powerpc/powernv/ioda: Release opencapi device
+    - powerpc/powernv/ioda: Find opencapi slot for a device node
+    - pci/hotplug/pnv-php: Remove erroneous warning
+    - pci/hotplug/pnv-php: Improve error msg on power state change failure
+    - pci/hotplug/pnv-php: Register opencapi slots
+    - pci/hotplug/pnv-php: Relax check when disabling slot
+    - pci/hotplug/pnv-php: Wrap warnings in macro
+    - ocxl: Add PCI hotplug dependency to Kconfig
+
+  * alsa/asoc: export the number of dmic to userspace to work with the latest
+    ucm2 (focal) (LP: #1864400)
+    - ASoC: add control components management
+    - ASoC: intel/skl/hda - export number of digital microphones via control
+      components
+
+  * alsa/sof: let sof driver work with topology with volume and led control
+    (focal) (LP: #1864398)
+    - ASoC: SOF: enable dual control for pga
+    - AsoC: SOF: refactor control load code
+    - ASoC: SOF: acpi led support for switch controls
+    - ASoC: SOF: topology: check errors when parsing LED tokens
+
+  * machine doesn't come up after suspend and re-opening the lid (LP: #1861837)
+    - ASoC: SOF: trace: fix unconditional free in trace release
+
+  * 5.3.0-23-generic causes fans to spin when idle (LP: #1853044)
+    - drm/i915/gt: Close race between engine_park and intel_gt_retire_requests
+    - drm/i915/gt: Adapt engine_park synchronisation rules for engine_retire
+    - drm/i915/gt: Schedule request retirement when timeline idles
+
+  * Focal update: 5.4.22 upstream stable release (LP: #1864488)
+    - core: Don't skip generic XDP program execution for cloned SKBs
+    - enic: prevent waking up stopped tx queues over watchdog reset
+    - net/smc: fix leak of kernel memory to user space
+    - net: dsa: tag_qca: Make sure there is headroom for tag
+    - net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS
+    - net/sched: flower: add missing validation of TCA_FLOWER_FLAGS
+    - drm/gma500: Fixup fbdev stolen size usage evaluation
+    - ath10k: Fix qmi init error handling
+    - wil6210: fix break that is never reached because of zero'ing of a retry
+      counter
+    - drm/qxl: Complete exception handling in qxl_device_init()
+    - rcu/nocb: Fix dump_tree hierarchy print always active
+    - rcu: Fix missed wakeup of exp_wq waiters
+    - rcu: Fix data-race due to atomic_t copy-by-value
+    - f2fs: preallocate DIO blocks when forcing buffered_io
+    - f2fs: call f2fs_balance_fs outside of locked page
+    - media: meson: add missing allocation failure check on new_buf
+    - clk: meson: pll: Fix by 0 division in __pll_params_to_rate()
+    - cpu/hotplug, stop_machine: Fix stop_machine vs hotplug order
+    - brcmfmac: Fix memory leak in brcmf_p2p_create_p2pdev()
+    - brcmfmac: Fix use after free in brcmf_sdio_readframes()
+    - PCI: Fix pci_add_dma_alias() bitmask size
+    - drm/amd/display: Map ODM memory correctly when doing ODM combine
+    - leds: pca963x: Fix open-drain initialization
+    - ext4: fix ext4_dax_read/write inode locking sequence for IOCB_NOWAIT
+    - ALSA: ctl: allow TLV read operation for callback type of element in locked
+      case
+    - gianfar: Fix TX timestamping with a stacked DSA driver
+    - pinctrl: sh-pfc: sh7264: Fix CAN function GPIOs
+    - printk: fix exclusive_console replaying
+    - drm/mipi_dbi: Fix off-by-one bugs in mipi_dbi_blank()
+    - drm/msm/adreno: fix zap vs no-zap handling
+    - pxa168fb: Fix the function used to release some memory in an error handling
+      path
+    - media: ov5640: Fix check for PLL1 exceeding max allowed rate
+    - media: i2c: mt9v032: fix enum mbus codes and frame sizes
+    - media: sun4i-csi: Deal with DRAM offset
+    - media: sun4i-csi: Fix data sampling polarity handling
+    - media: sun4i-csi: Fix [HV]sync polarity handling
+    - clk: at91: sam9x60: fix programmable clock prescaler
+    - powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE
+      number
+    - clk: meson: meson8b: make the CCF use the glitch-free mali mux
+    - gpio: gpio-grgpio: fix possible sleep-in-atomic-context bugs in
+      grgpio_irq_map/unmap()
+    - iommu/vt-d: Fix off-by-one in PASID allocation
+    - x86/fpu: Deactivate FPU state after failure during state load
+    - char/random: silence a lockdep splat with printk()
+    - media: sti: bdisp: fix a possible sleep-in-atomic-context bug in
+      bdisp_device_run()
+    - kernel/module: Fix memleak in module_add_modinfo_attrs()
+    - IB/core: Let IB core distribute cache update events
+    - pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins
+    - efi/x86: Map the entire EFI vendor string before copying it
+    - MIPS: Loongson: Fix potential NULL dereference in loongson3_platform_init()
+    - sparc: Add .exit.data section.
+    - net: ethernet: ixp4xx: Standard module init
+    - raid6/test: fix a compilation error
+    - uio: fix a sleep-in-atomic-context bug in uio_dmem_genirq_irqcontrol()
+    - drm/amdgpu/sriov: workaround on rev_id for Navi12 under sriov
+    - spi: fsl-lpspi: fix only one cs-gpio working
+    - drm/nouveau/nouveau: fix incorrect sizeof on args.src an args.dst
+    - usb: gadget: udc: fix possible sleep-in-atomic-context bugs in gr_probe()
+    - usb: dwc2: Fix IN FIFO allocation
+    - clocksource/drivers/bcm2835_timer: Fix memory leak of timer
+    - drm/amd/display: Clear state after exiting fixed active VRR state
+    - kselftest: Minimise dependency of get_size on C library interfaces
+    - jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info
+      when load journal
+    - ext4: fix deadlock allocating bio_post_read_ctx from mempool
+    - clk: ti: dra7: fix parent for gmac_clkctrl
+    - x86/sysfb: Fix check for bad VRAM size
+    - pwm: omap-dmtimer: Simplify error handling
+    - udf: Allow writing to 'Rewritable' partitions
+    - dmaengine: fsl-qdma: fix duplicated argument to &&
+    - wan/hdlc_x25: fix skb handling
+    - powerpc/iov: Move VF pdev fixup into pcibios_fixup_iov()
+    - tracing: Fix tracing_stat return values in error handling paths
+    - tracing: Fix very unlikely race of registering two stat tracers
+    - ARM: 8952/1: Disable kmemleak on XIP kernels
+    - ext4, jbd2: ensure panic when aborting with zero errno
+    - ath10k: Correct the DMA direction for management tx buffers
+    - rtw88: fix rate mask for 1SS chip
+    - brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362
+    - selftests: settings: tests can be in subsubdirs
+    - rtc: i2c/spi: Avoid inclusion of REGMAP support when not needed
+    - drm/amd/display: Retrain dongles when SINK_COUNT becomes non-zero
+    - tracing: Simplify assignment parsing for hist triggers
+    - nbd: add a flush_workqueue in nbd_start_device
+    - KVM: s390: ENOTSUPP -> EOPNOTSUPP fixups
+    - Btrfs: keep pages dirty when using btrfs_writepage_fixup_worker
+    - drivers/block/zram/zram_drv.c: fix error return codes not being returned in
+      writeback_store
+    - block, bfq: do not plug I/O for bfq_queues with no proc refs
+    - kconfig: fix broken dependency in randconfig-generated .config
+    - clk: qcom: Don't overwrite 'cfg' in clk_rcg2_dfs_populate_freq()
+    - clk: qcom: rcg2: Don't crash if our parent can't be found; return an error
+    - drm/amdkfd: Fix a bug in SDMA RLC queue counting under HWS mode
+    - bpf, sockhash: Synchronize_rcu before free'ing map
+    - drm/amdgpu: remove 4 set but not used variable in
+      amdgpu_atombios_get_connector_info_from_object_table
+    - ath10k: correct the tlv len of ath10k_wmi_tlv_op_gen_config_pno_start
+    - drm/amdgpu: Ensure ret is always initialized when using SOC15_WAIT_ON_RREG
+    - drm/panel: simple: Add Logic PD Type 28 display support
+    - arm64: dts: rockchip: Fix NanoPC-T4 cooling maps
+    - modules: lockdep: Suppress suspicious RCU usage warning
+    - ASoC: intel: sof_rt5682: Add quirk for number of HDMI DAI's
+    - ASoC: intel: sof_rt5682: Add support for tgl-max98357a-rt5682
+    - regulator: rk808: Lower log level on optional GPIOs being not available
+    - net/wan/fsl_ucc_hdlc: reject muram offsets above 64K
+    - NFC: port100: Convert cpu_to_le16(le16_to_cpu(E1) + E2) to use
+      le16_add_cpu().
+    - arm64: dts: allwinner: H6: Add PMU mode
+    - arm64: dts: allwinner: H5: Add PMU node
+    - arm: dts: allwinner: H3: Add PMU node
+    - opp: Free static OPPs on errors while adding them
+    - selinux: ensure we cleanup the internal AVC counters on error in
+      avc_insert()
+    - arm64: dts: qcom: msm8996: Disable USB2 PHY suspend by core
+    - padata: validate cpumask without removed CPU during offline
+    - clk: imx: Add correct failure handling for clk based helpers
+    - ARM: exynos_defconfig: Bring back explicitly wanted options
+    - ARM: dts: imx6: rdu2: Disable WP for USDHC2 and USDHC3
+    - ARM: dts: imx6: rdu2: Limit USBH1 to Full Speed
+    - bus: ti-sysc: Implement quirk handling for CLKDM_NOAUTO
+    - PCI: iproc: Apply quirk_paxc_bridge() for module as well as built-in
+    - media: cx23885: Add support for AVerMedia CE310B
+    - PCI: Add generic quirk for increasing D3hot delay
+    - PCI: Increase D3 delay for AMD Ryzen5/7 XHCI controllers
+    - gpu/drm: ingenic: Avoid null pointer deference in plane atomic update
+    - selftests/net: make so_txtime more robust to timer variance
+    - media: v4l2-device.h: Explicitly compare grp{id,mask} to zero in v4l2_device
+      macros
+    - reiserfs: Fix spurious unlock in reiserfs_fill_super() error handling
+    - samples/bpf: Set -fno-stack-protector when building BPF programs
+    - r8169: check that Realtek PHY driver module is loaded
+    - fore200e: Fix incorrect checks of NULL pointer dereference
+    - netfilter: nft_tunnel: add the missing ERSPAN_VERSION nla_policy
+    - ALSA: usx2y: Adjust indentation in snd_usX2Y_hwdep_dsp_status
+    - PCI: Add nr_devfns parameter to pci_add_dma_alias()
+    - PCI: Add DMA alias quirk for PLX PEX NTB
+    - b43legacy: Fix -Wcast-function-type
+    - ipw2x00: Fix -Wcast-function-type
+    - iwlegacy: Fix -Wcast-function-type
+    - rtlwifi: rtl_pci: Fix -Wcast-function-type
+    - orinoco: avoid assertion in case of NULL pointer
+    - drm/amdgpu: fix KIQ ring test fail in TDR of SRIOV
+    - clk: qcom: smd: Add missing bimc clock
+    - ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1
+    - nfsd: Clone should commit src file metadata too
+    - scsi: ufs: Complete pending requests in host reset and restore path
+    - scsi: aic7xxx: Adjust indentation in ahc_find_syncrate
+    - crypto: inside-secure - add unspecified HAS_IOMEM dependency
+    - drm/mediatek: handle events when enabling/disabling crtc
+    - clk: renesas: rcar-gen3: Allow changing the RPC[D2] clocks
+    - ARM: dts: r8a7779: Add device node for ARM global timer
+    - selinux: ensure we cleanup the internal AVC counters on error in
+      avc_update()
+    - scsi: lpfc: Fix: Rework setting of fdmi symbolic node name registration
+    - arm64: dts: qcom: db845c: Enable ath10k 8bit host-cap quirk
+    - iommu/amd: Check feature support bit before accessing MSI capability
+      registers
+    - iommu/amd: Only support x2APIC with IVHD type 11h/40h
+    - iommu/iova: Silence warnings under memory pressure
+    - clk: actually call the clock init before any other callback of the clock
+    - dmaengine: Store module owner in dma_device struct
+    - dmaengine: imx-sdma: Fix memory leak
+    - bpf: Print error message for bpftool cgroup show
+    - net: phy: realtek: add logging for the RGMII TX delay configuration
+    - crypto: chtls - Fixed memory leak
+    - x86/vdso: Provide missing include file
+    - PM / devfreq: exynos-ppmu: Fix excessive stack usage
+    - PM / devfreq: rk3399_dmc: Add COMPILE_TEST and HAVE_ARM_SMCCC dependency
+    - drm/fbdev: Fallback to non tiled mode if all tiles not present
+    - pinctrl: sh-pfc: sh7269: Fix CAN function GPIOs
+    - reset: uniphier: Add SCSSI reset control for each channel
+    - ASoC: soc-topology: fix endianness issues
+    - fbdev: fix numbering of fbcon options
+    - RDMA/rxe: Fix error type of mmap_offset
+    - clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock
+    - ALSA: sh: Fix unused variable warnings
+    - clk: Use parent node pointer during registration if necessary
+    - clk: uniphier: Add SCSSI clock gate for each channel
+    - ALSA: hda/realtek - Apply mic mute LED quirk for Dell E7xx laptops, too
+    - ALSA: sh: Fix compile warning wrt const
+    - net: phy: fixed_phy: fix use-after-free when checking link GPIO
+    - tools lib api fs: Fix gcc9 stringop-truncation compilation error
+    - vfio/spapr/nvlink2: Skip unpinning pages on error exit
+    - ASoC: Intel: sof_rt5682: Ignore the speaker amp when there isn't one.
+    - ACPI: button: Add DMI quirk for Razer Blade Stealth 13 late 2019 lid switch
+    - iommu/vt-d: Match CPU and IOMMU paging mode
+    - iommu/vt-d: Avoid sending invalid page response
+    - drm/amdkfd: Fix permissions of hang_hws
+    - mlx5: work around high stack usage with gcc
+    - RDMA/hns: Avoid printing address of mtt page
+    - drm: remove the newline for CRC source name.
+    - usb: dwc3: use proper initializers for property entries
+    - ARM: dts: stm32: Add power-supply for DSI panel on stm32f469-disco
+    - usbip: Fix unsafe unaligned pointer usage
+    - udf: Fix free space reporting for metadata and virtual partitions
+    - drm/mediatek: Add gamma property according to hardware capability
+    - staging: rtl8188: avoid excessive stack usage
+    - IB/hfi1: Add software counter for ctxt0 seq drop
+    - IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats
+    - soc/tegra: fuse: Correct straps' address for older Tegra124 device trees
+    - efi/x86: Don't panic or BUG() on non-critical error conditions
+    - rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls
+    - Input: edt-ft5x06 - work around first register access error
+    - bnxt: Detach page from page pool before sending up the stack
+    - x86/nmi: Remove irq_work from the long duration NMI handler
+    - wan: ixp4xx_hss: fix compile-testing on 64-bit
+    - clocksource: davinci: only enable clockevents once tim34 is initialized
+    - arm64: dts: rockchip: fix dwmmc clock name for px30
+    - arm64: dts: rockchip: add reg property to brcmf sub-nodes
+    - ARM: dts: rockchip: add reg property to brcmf sub node for
+      rk3188-bqedison2qc
+    - ALSA: usb-audio: Add boot quirk for MOTU M Series
+    - ASoC: atmel: fix build error with CONFIG_SND_ATMEL_SOC_DMA=m
+    - raid6/test: fix a compilation warning
+    - tty: synclinkmp: Adjust indentation in several functions
+    - tty: synclink_gt: Adjust indentation in several functions
+    - misc: xilinx_sdfec: fix xsdfec_poll()'s return type
+    - visorbus: fix uninitialized variable access
+    - driver core: platform: Prevent resouce overflow from causing infinite loops
+    - driver core: Print device when resources present in really_probe()
+    - ASoC: SOF: Intel: hda-dai: fix compilation warning in pcm_prepare
+    - bpf: Return -EBADRQC for invalid map type in __bpf_tx_xdp_map
+    - vme: bridges: reduce stack usage
+    - drm/nouveau/secboot/gm20b: initialize pointer in gm20b_secboot_new()
+    - drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from fw
+    - drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handler
+    - drm/nouveau/drm/ttm: Remove set but not used variable 'mem'
+    - drm/nouveau/fault/gv100-: fix memory leak on module unload
+    - dm thin: don't allow changing data device during thin-pool reload
+    - gpiolib: Set lockdep class for hierarchical irq domains
+    - drm/vmwgfx: prevent memory leak in vmw_cmdbuf_res_add
+    - perf/imx_ddr: Fix cpu hotplug state cleanup
+    - usb: musb: omap2430: Get rid of musb .set_vbus for omap2430 glue
+    - kbuild: remove *.tmp file when filechk fails
+    - iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE
+    - ALSA: usb-audio: unlock on error in probe
+    - f2fs: set I_LINKABLE early to avoid wrong access by vfs
+    - f2fs: free sysfs kobject
+    - scsi: ufs: pass device information to apply_dev_quirks
+    - scsi: ufs-mediatek: add apply_dev_quirks variant operation
+    - scsi: iscsi: Don't destroy session if there are outstanding connections
+    - crypto: essiv - fix AEAD capitalization and preposition use in help text
+    - ALSA: usb-audio: add implicit fb quirk for MOTU M Series
+    - RDMA/mlx5: Don't fake udata for kernel path
+    - arm64: lse: fix LSE atomics with LLVM's integrated assembler
+    - arm64: fix alternatives with LLVM's integrated assembler
+    - drm/amd/display: fixup DML dependencies
+    - EDAC/sifive: Fix return value check in ecc_register()
+    - KVM: PPC: Remove set but not used variable 'ra', 'rs', 'rt'
+    - arm64: dts: ti: k3-j721e-main: Add missing power-domains for smmu
+    - sched/core: Fix size of rq::uclamp initialization
+    - sched/topology: Assert non-NUMA topology masks don't (partially) overlap
+    - perf/x86/amd: Constrain Large Increment per Cycle events
+    - watchdog/softlockup: Enforce that timestamp is valid on boot
+    - debugobjects: Fix various data races
+    - ASoC: SOF: Intel: hda: Fix SKL dai count
+    - regulator: vctrl-regulator: Avoid deadlock getting and setting the voltage
+    - f2fs: fix memleak of kobject
+    - x86/mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd
+    - pwm: omap-dmtimer: Remove PWM chip in .remove before making it unfunctional
+    - cmd64x: potential buffer overflow in cmd64x_program_timings()
+    - ide: serverworks: potential overflow in svwks_set_pio_mode()
+    - pwm: Remove set but not set variable 'pwm'
+    - btrfs: fix possible NULL-pointer dereference in integrity checks
+    - btrfs: safely advance counter when looking up bio csums
+    - btrfs: device stats, log when stats are zeroed
+    - module: avoid setting info->name early in case we can fall back to
+      info->mod->name
+    - remoteproc: Initialize rproc_class before use
+    - regulator: core: Fix exported symbols to the exported GPL version
+    - irqchip/mbigen: Set driver .suppress_bind_attrs to avoid remove problems
+    - ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()
+    - spi: spi-fsl-qspi: Ensure width is respected in spi-mem operations
+    - kbuild: use -S instead of -E for precise cc-option test in Kconfig
+    - objtool: Fix ARCH=x86_64 build error
+    - x86/decoder: Add TEST opcode to Group3-2
+    - s390: adjust -mpacked-stack support check for clang 10
+    - s390/ftrace: generate traced function stack frame
+    - driver core: platform: fix u32 greater or equal to zero comparison
+    - bpf, btf: Always output invariant hit in pahole DWARF to BTF transform
+    - ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
+    - sunrpc: Fix potential leaks in sunrpc_cache_unhash()
+    - drm/nouveau/mmu: fix comptag memory leak
+    - powerpc/sriov: Remove VF eeh_dev state when disabling SR-IOV
+    - media: uvcvideo: Add a quirk to force GEO GC6500 Camera bits-per-pixel value
+    - btrfs: separate definition of assertion failure handlers
+    - btrfs: Fix split-brain handling when changing FSID to metadata uuid
+    - bcache: cached_dev_free needs to put the sb page
+    - bcache: rework error unwinding in register_bcache
+    - bcache: fix use-after-free in register_bcache()
+    - iommu/vt-d: Remove unnecessary WARN_ON_ONCE()
+    - alarmtimer: Make alarmtimer platform device child of RTC device
+    - selftests: bpf: Reset global state between reuseport test runs
+    - jbd2: switch to use jbd2_journal_abort() when failed to submit the commit
+      record
+    - jbd2: make sure ESHUTDOWN to be recorded in the journal superblock
+    - powerpc/pseries/lparcfg: Fix display of Maximum Memory
+    - selftests/eeh: Bump EEH wait time to 60s
+    - ARM: 8951/1: Fix Kexec compilation issue.
+    - ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82
+    - hostap: Adjust indentation in prism2_hostapd_add_sta
+    - rtw88: fix potential NULL skb access in TX ISR
+    - iwlegacy: ensure loop counter addr does not wrap and cause an infinite loop
+    - cifs: fix unitialized variable poential problem with network I/O cache lock
+      patch
+    - cifs: Fix mount options set in automount
+    - cifs: fix NULL dereference in match_prepath
+    - bpf: map_seq_next should always increase position index
+    - powerpc/mm: Don't log user reads to 0xffffffff
+    - ceph: check availability of mds cluster on mount after wait timeout
+    - rbd: work around -Wuninitialized warning
+    - drm/amd/display: do not allocate display_mode_lib unnecessarily
+    - irqchip/gic-v3: Only provision redistributors that are enabled in ACPI
+    - drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
+    - char: hpet: Fix out-of-bounds read bug
+    - ftrace: fpid_next() should increase position index
+    - trigger_next should increase position index
+    - radeon: insert 10ms sleep in dce5_crtc_load_lut
+    - powerpc: Do not consider weak unresolved symbol relocations as bad
+    - btrfs: do not do delalloc reservation under page lock
+    - ocfs2: make local header paths relative to C files
+    - ocfs2: fix a NULL pointer dereference when call
+      ocfs2_update_inode_fsync_trans()
+    - lib/scatterlist.c: adjust indentation in __sg_alloc_table
+    - reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
+    - bcache: fix memory corruption in bch_cache_accounting_clear()
+    - bcache: explicity type cast in bset_bkey_last()
+    - bcache: fix incorrect data type usage in btree_flush_write()
+    - irqchip/gic-v3-its: Reference to its_invall_cmd descriptor when building
+      INVALL
+    - nvmet: Pass lockdep expression to RCU lists
+    - nvme-pci: remove nvmeq->tags
+    - iwlwifi: mvm: Fix thermal zone registration
+    - iwlwifi: mvm: Check the sta is not NULL in iwl_mvm_cfg_he_sta()
+    - asm-generic/tlb: add missing CONFIG symbol
+    - microblaze: Prevent the overflow of the start
+    - brd: check and limit max_part par
+    - drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_latency
+    - drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_voltage
+    - NFS: Fix memory leaks
+    - help_next should increase position index
+    - i40e: Relax i40e_xsk_wakeup's return value when PF is busy
+    - cifs: log warning message (once) if out of disk space
+    - virtio_balloon: prevent pfn array overflow
+    - fuse: don't overflow LLONG_MAX with end offset
+    - mlxsw: spectrum_dpipe: Add missing error path
+    - drm/amdgpu/display: handle multiple numbers of fclks in dcn_calcs.c (v2)
+    - bcache: properly initialize 'path' and 'err' in register_bcache()
+    - rtc: Kconfig: select REGMAP_I2C when necessary
+    - Linux 5.4.22
+
+  * Focal update: 5.4.22 upstream stable release (LP: #1864488) //
+    CVE-2019-19076.
+    - Revert "nfp: abm: fix memory leak in nfp_abm_u32_knode_replace"
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Revert "UBUNTU: [Debian] Update linux source package name in
+      debian/tests/*"
+    - SAUCE: selftests: fix undefined lable cleanup build error
+    - SAUCE: selftests: fix undefined macro RET_IF() build error
+    - [Packaging] Include modules.builtin.modinfo in linux-modules
+    - update dkms package versions
+    - Revert "UBUNTU: [Debian] Update package name in getabis repo list"
+
+  * Miscellaneous upstream changes
+    - libbpf: Extract and generalize CPU mask parsing logic
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 26 Feb 2020 12:22:51 -0600
+
+linux (5.4.0-15.18) focal; urgency=medium
+
+  * focal/linux: 5.4.0-15.18 -proposed tracker (LP: #1864085)
+
+  * Focal update: v5.4.21 upstream stable release (LP: #1864046)
+    - Input: synaptics - switch T470s to RMI4 by default
+    - Input: synaptics - enable SMBus on ThinkPad L470
+    - Input: synaptics - remove the LEN0049 dmi id from topbuttonpad list
+    - ALSA: usb-audio: Fix UAC2/3 effect unit parsing
+    - ALSA: hda/realtek - Add more codec supported Headset Button
+    - ALSA: hda/realtek - Fix silent output on MSI-GL73
+    - ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
+    - ACPI: EC: Fix flushing of pending work
+    - ACPI: PM: s2idle: Avoid possible race related to the EC GPE
+    - ACPICA: Introduce acpi_any_gpe_status_set()
+    - ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system
+    - ALSA: usb-audio: sound: usb: usb true/false for bool return type
+    - ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000
+    - ext4: don't assume that mmp_nodename/bdevname have NUL
+    - ext4: fix support for inode sizes > 1024 bytes
+    - ext4: fix checksum errors with indexed dirs
+    - ext4: add cond_resched() to ext4_protect_reserved_inode
+    - ext4: improve explanation of a mount failure caused by a misconfigured
+      kernel
+    - Btrfs: fix race between using extent maps and merging them
+    - btrfs: ref-verify: fix memory leaks
+    - btrfs: print message when tree-log replay starts
+    - btrfs: log message when rw remount is attempted with unclean tree-log
+    - ARM: npcm: Bring back GPIOLIB support
+    - gpio: xilinx: Fix bug where the wrong GPIO register is written to
+    - arm64: ssbs: Fix context-switch when SSBS is present on all CPUs
+    - xprtrdma: Fix DMA scatter-gather list mapping imbalance
+    - cifs: make sure we do not overflow the max EA buffer size
+    - EDAC/sysfs: Remove csrow objects on errors
+    - EDAC/mc: Fix use-after-free and memleaks during device removal
+    - KVM: nVMX: Use correct root level for nested EPT shadow page tables
+    - perf/x86/amd: Add missing L2 misses event spec to AMD Family 17h's event map
+    - s390/pkey: fix missing length of protected key on return
+    - s390/uv: Fix handling of length extensions
+    - drm/vgem: Close use-after-free race in vgem_gem_create
+    - drm/panfrost: Make sure the shrinker does not reclaim referenced BOs
+    - bus: moxtet: fix potential stack buffer overflow
+    - nvme: fix the parameter order for nvme_get_log in nvme_get_fw_slot_info
+    - drivers: ipmi: fix off-by-one bounds check that leads to a out-of-bounds
+      write
+    - IB/mlx5: Return failure when rts2rts_qp_counters_set_id is not supported
+    - IB/hfi1: Acquire lock to release TID entries when user file is closed
+    - IB/hfi1: Close window for pq and request coliding
+    - IB/rdmavt: Reset all QPs when the device is shut down
+    - IB/umad: Fix kernel crash while unloading ib_umad
+    - RDMA/core: Fix invalid memory access in spec_filter_size
+    - RDMA/iw_cxgb4: initiate CLOSE when entering TERM
+    - RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create
+    - RDMA/rxe: Fix soft lockup problem due to using tasklets in softirq
+    - RDMA/core: Fix protection fault in get_pkey_idx_qp_list
+    - s390/time: Fix clk type in get_tod_clock
+    - sched/uclamp: Reject negative values in cpu_uclamp_write()
+    - spmi: pmic-arb: Set lockdep class for hierarchical irq domains
+    - perf/x86/intel: Fix inaccurate period in context switch for auto-reload
+    - hwmon: (pmbus/ltc2978) Fix PMBus polling of MFR_COMMON definitions.
+    - mac80211: fix quiet mode activation in action frames
+    - cifs: fix mount option display for sec=krb5i
+    - arm64: dts: fast models: Fix FVP PCI interrupt-map property
+    - KVM: x86: Mask off reserved bit from #DB exception payload
+    - perf stat: Don't report a null stalled cycles per insn metric
+    - NFSv4.1 make cachethis=no for writes
+    - Revert "drm/sun4i: drv: Allow framebuffer modifiers in mode config"
+    - jbd2: move the clearing of b_modified flag to the journal_unmap_buffer()
+    - jbd2: do not clear the BH_Mapped flag when forgetting a metadata buffer
+    - ext4: choose hardlimit when softlimit is larger than hardlimit in
+      ext4_statfs_project()
+    - KVM: x86/mmu: Fix struct guest_walker arrays for 5-level paging
+    - gpio: add gpiod_toggle_active_low()
+    - mmc: core: Rework wp-gpio handling
+    - Linux 5.4.21
+
+  * Fix AMD Stoney Ridge screen flickering under 4K resolution (LP: #1864005)
+    - iommu/amd: Disable IOMMU on Stoney Ridge systems
+
+  * Focal Fossa (20.04) feature request - Enable CONFIG_X86_UV (LP: #1863810)
+    - [Config] CONFIG_X86_UV=y
+
+  * [UBUNTU 20.04] Enable proper reset/recovery of s390x/pci functions in error
+    state (LP: #1863768)
+    - s390/pci: Recover handle in clp_set_pci_fn()
+    - s390/pci: Fix possible deadlock in recover_store()
+
+  * [20.04 FEAT] Enhanced handling of secure keys and protected keys
+    (LP: #1853303)
+    - s390/zcrypt: enable card/domain autoselect on ep11 cprbs
+    - s390/zcrypt: ep11 structs rework, export zcrypt_send_ep11_cprb
+    - s390/zcrypt: add new low level ep11 functions support file
+    - s390/zcrypt: extend EP11 card and queue sysfs attributes
+    - s390/pkey/zcrypt: Support EP11 AES secure keys
+
+  * [20.04 FEAT] paes self test (LP: #1854948)
+    - s390/pkey: use memdup_user() to simplify code
+    - s390/pkey: Add support for key blob with clear key value
+    - s390/crypto: Rework on paes implementation
+    - s390/crypto: enable clear key values for paes ciphers
+    - crypto/testmgr: enable selftests for paes-s390 ciphers
+
+  * Sometimes can't adjust brightness on Dell AIO (LP: #1862885)
+    - SAUCE: platform/x86: dell-uart-backlight: increase retry times
+
+  * change the ASoC card name and card longname to meet the requirement of alsa-
+    lib-1.2.1 (Focal) (LP: #1862712)
+    - ASoC: improve the DMI long card code in asoc-core
+    - ASoC: DMI long name - avoid to add board name if matches with product name
+    - ASoC: intel - fix the card names
+
+  * Support Headset Mic on HP cPC (LP: #1862313)
+    - ALSA: hda/realtek - Add Headset Mic supported for HP cPC
+    - ALSA: hda/realtek - Fixed one of HP ALC671 platform Headset Mic supported
+
+  * [hns3-0205]sync mainline kernel 5.5rc7 hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1861972)
+    - net: hns3: replace snprintf with scnprintf in hns3_dbg_cmd_read
+    - net: hns3: replace snprintf with scnprintf in hns3_update_strings
+    - net: hns3: limit the error logging in the hns3_clean_tx_ring()
+    - net: hns3: do not reuse pfmemalloc pages
+    - net: hns3: set VF's default reset_type to HNAE3_NONE_RESET
+    - net: hns3: move duplicated macro definition into header
+    - net: hns3: refine the input parameter 'size' for snprintf()
+    - net: hns3: rewrite a log in hclge_put_vector()
+    - net: hns3: delete unnecessary blank line and space for cleanup
+    - net: hns3: remove redundant print on ENOMEM
+
+  * [acc-0205]sync mainline kernel 5.5rc6 acc patchset into ubuntu HWE kernel
+    branch (LP: #1861976)
+    - crypto: hisilicon/sec2 - Use atomics instead of __sync
+    - crypto: hisilicon - still no need to check return value of debugfs_create
+      functions
+    - crypto: hisilicon - Update debugfs usage of SEC V2
+    - crypto: hisilicon - fix print/comment of SEC V2
+    - crypto: hisilicon - Update some names on SEC V2
+    - crypto: hisilicon - Update QP resources of SEC V2
+    - crypto: hisilicon - Adjust some inner logic
+    - crypto: hisilicon - Add callback error check
+    - crypto: hisilicon - Add branch prediction macro
+    - crypto: hisilicon - redefine skcipher initiation
+    - crypto: hisilicon - Add aead support on SEC2
+    - crypto: hisilicon - Bugfixed tfm leak
+    - crypto: hisilicon - Fixed some tiny bugs of HPRE
+    - crypto: hisilicon - adjust hpre_crt_para_get
+    - crypto: hisilicon - add branch prediction macro
+    - crypto: hisilicon - fix spelling mistake "disgest" -> "digest"
+
+  * [spi-0115]spi: dw: use "smp_mb()" to avoid sending spi data error
+    (LP: #1859744)
+    - spi: dw: use "smp_mb()" to avoid sending spi data error
+
+  * [tpm-0115]EFI/stub: tpm: enable tpm eventlog function for ARM64 platform
+    (LP: #1859743)
+    - efi: libstub/tpm: enable tpm eventlog function for ARM platforms
+
+  * Restrict xmon to read-only-mode if kernel is locked down (LP: #1863562)
+    - powerpc/xmon: Restrict when kernel is locked down
+
+  * [CML-H] Add intel_thermal_pch driver support Comet Lake -H (LP: #1853219)
+    - thermal: intel: intel_pch_thermal: Add Comet Lake (CML) platform support
+
+  * Root can lift kernel lockdown via USB/IP (LP: #1861238)
+    - Revert "UBUNTU: SAUCE: (lockdown) Add a SysRq option to lift kernel
+      lockdown"
+
+  * Dell XPS 13 (7390) Display Flickering - 19.10  (LP: #1849947)
+    - SAUCE: drm/i915: Disable PSR by default on all platforms
+
+  * Focal update: v5.4.20 upstream stable release (LP: #1863589)
+    - ASoC: pcm: update FE/BE trigger order based on the command
+    - hv_sock: Remove the accept port restriction
+    - IB/mlx4: Fix memory leak in add_gid error flow
+    - IB/srp: Never use immediate data if it is disabled by a user
+    - IB/mlx4: Fix leak in id_map_find_del
+    - RDMA/netlink: Do not always generate an ACK for some netlink operations
+    - RDMA/i40iw: fix a potential NULL pointer dereference
+    - RDMA/core: Fix locking in ib_uverbs_event_read
+    - RDMA/uverbs: Verify MR access flags
+    - RDMA/cma: Fix unbalanced cm_id reference count during address resolve
+    - RDMA/umem: Fix ib_umem_find_best_pgsz()
+    - scsi: ufs: Fix ufshcd_probe_hba() reture value in case
+      ufshcd_scsi_add_wlus() fails
+    - PCI/IOV: Fix memory leak in pci_iov_add_virtfn()
+    - ath10k: pci: Only dump ATH10K_MEM_REGION_TYPE_IOREG when safe
+    - PCI/switchtec: Use dma_set_mask_and_coherent()
+    - PCI/switchtec: Fix vep_vector_number ioread width
+    - PCI: tegra: Fix afi_pex2_ctrl reg offset for Tegra30
+    - PCI: Don't disable bridge BARs when assigning bus resources
+    - PCI/AER: Initialize aer_fifo
+    - iwlwifi: mvm: avoid use after free for pmsr request
+    - bpftool: Don't crash on missing xlated program instructions
+    - bpf, sockmap: Don't sleep while holding RCU lock on tear-down
+    - bpf, sockhash: Synchronize_rcu before free'ing map
+    - selftests/bpf: Test freeing sockmap/sockhash with a socket in it
+    - bpf: Improve bucket_log calculation logic
+    - bpf, sockmap: Check update requirements after locking
+    - nfs: NFS_SWAP should depend on SWAP
+    - NFS: Revalidate the file size on a fatal write error
+    - NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes()
+    - NFS: Fix fix of show_nfs_errors
+    - NFSv4: pnfs_roc() must use cred_fscmp() to compare creds
+    - NFSv4: try lease recovery on NFS4ERR_EXPIRED
+    - NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals
+    - x86/boot: Handle malformed SRAT tables during early ACPI parsing
+    - rtc: hym8563: Return -EINVAL if the time is known to be invalid
+    - rtc: cmos: Stop using shared IRQ
+    - watchdog: qcom: Use platform_get_irq_optional() for bark irq
+    - ARC: [plat-axs10x]: Add missing multicast filter number to GMAC node
+    - platform/x86: intel_mid_powerbtn: Take a copy of ddata
+    - arm64: dts: qcom: msm8998: Fix tcsr syscon size
+    - arm64: dts: uDPU: fix broken ethernet
+    - ARM: dts: at91: Reenable UART TX pull-ups
+    - ARM: dts: am43xx: add support for clkout1 clock
+    - arm64: dts: renesas: r8a77990: ebisu: Remove clkout-lr-synchronous from
+      sound
+    - arm64: dts: marvell: clearfog-gt-8k: fix switch cpu port node
+    - ARM: dts: meson8: use the actual frequency for the GPU's 182.1MHz OPP
+    - ARM: dts: meson8b: use the actual frequency for the GPU's 364MHz OPP
+    - ARM: dts: at91: sama5d3: fix maximum peripheral clock rates
+    - ARM: dts: at91: sama5d3: define clock rate range for tcb1
+    - tools/power/acpi: fix compilation error
+    - soc: qcom: rpmhpd: Set 'active_only' for active only power domains
+    - Revert "powerpc/pseries/iommu: Don't use dma_iommu_ops on secure guests"
+    - powerpc/ptdump: Fix W+X verification call in mark_rodata_ro()
+    - powerpc/ptdump: Only enable PPC_CHECK_WX with STRICT_KERNEL_RWX
+    - powerpc/papr_scm: Fix leaking 'bus_desc.provider_name' in some paths
+    - powerpc/pseries/vio: Fix iommu_table use-after-free refcount warning
+    - powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce
+      for DDW
+    - iommu/arm-smmu-v3: Populate VMID field for CMDQ_OP_TLBI_NH_VA
+    - ARM: at91: pm: use SAM9X60 PMC's compatible
+    - ARM: at91: pm: use of_device_id array to find the proper shdwc node
+    - KVM: arm/arm64: vgic-its: Fix restoration of unmapped collections
+    - ARM: 8949/1: mm: mark free_memmap as __init
+    - sched/uclamp: Fix a bug in propagating uclamp value in new cgroups
+    - arm64: cpufeature: Fix the type of no FP/SIMD capability
+    - arm64: cpufeature: Set the FP/SIMD compat HWCAP bits properly
+    - arm64: ptrace: nofpsimd: Fail FP/SIMD regset operations
+    - KVM: arm/arm64: Fix young bit from mmu notifier
+    - KVM: arm: Fix DFSR setting for non-LPAE aarch32 guests
+    - KVM: arm: Make inject_abt32() inject an external abort instead
+    - KVM: arm64: pmu: Don't increment SW_INCR if PMCR.E is unset
+    - KVM: arm64: pmu: Fix chained SW_INCR counters
+    - KVM: arm64: Treat emulated TVAL TimerValue as a signed 32-bit integer
+    - arm64: nofpsmid: Handle TIF_FOREIGN_FPSTATE flag cleanly
+    - mtd: onenand_base: Adjust indentation in onenand_read_ops_nolock
+    - mtd: sharpslpart: Fix unsigned comparison to zero
+    - crypto: testmgr - don't try to decrypt uninitialized buffers
+    - crypto: artpec6 - return correct error code for failed setkey()
+    - crypto: atmel-sha - fix error handling when setting hmac key
+    - crypto: caam/qi2 - fix typo in algorithm's driver name
+    - drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at probe
+    - media: i2c: adv748x: Fix unsafe macros
+    - dt-bindings: iio: adc: ad7606: Fix wrong maxItems value
+    - bcache: avoid unnecessary btree nodes flushing in btree_flush_write()
+    - selinux: revert "stop passing MAY_NOT_BLOCK to the AVC upon follow_link"
+    - selinux: fix regression introduced by move_mount(2) syscall
+    - pinctrl: sh-pfc: r8a77965: Fix DU_DOTCLKIN3 drive/bias control
+    - pinctrl: sh-pfc: r8a7778: Fix duplicate SDSELF_B and SD1_CLK_B
+    - regmap: fix writes to non incrementing registers
+    - mfd: max77650: Select REGMAP_IRQ in Kconfig
+    - clk: meson: g12a: fix missing uart2 in regmap table
+    - dmaengine: axi-dmac: add a check for devm_regmap_init_mmio
+    - mwifiex: Fix possible buffer overflows in mwifiex_ret_wmm_get_status()
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_append_vsie_tlv()
+    - libertas: don't exit from lbs_ibss_join_existing() with RCU read lock held
+    - libertas: make lbs_ibss_join_existing() return error code on rates overflow
+    - selinux: fall back to ref-walk if audit is required
+    - Linux 5.4.20
+
+  * Focal update: v5.4.19 upstream stable release (LP: #1863588)
+    - sparc32: fix struct ipc64_perm type definition
+    - bnxt_en: Move devlink_register before registering netdev
+    - cls_rsvp: fix rsvp_policy
+    - gtp: use __GFP_NOWARN to avoid memalloc warning
+    - l2tp: Allow duplicate session creation with UDP
+    - net: hsr: fix possible NULL deref in hsr_handle_frame()
+    - net_sched: fix an OOB access in cls_tcindex
+    - net: stmmac: Delete txtimer in suspend()
+    - bnxt_en: Fix TC queue mapping.
+    - rxrpc: Fix use-after-free in rxrpc_put_local()
+    - rxrpc: Fix insufficient receive notification generation
+    - rxrpc: Fix missing active use pinning of rxrpc_local object
+    - rxrpc: Fix NULL pointer deref due to call->conn being cleared on disconnect
+    - tcp: clear tp->total_retrans in tcp_disconnect()
+    - tcp: clear tp->delivered in tcp_disconnect()
+    - tcp: clear tp->data_segs{in|out} in tcp_disconnect()
+    - tcp: clear tp->segs_{in|out} in tcp_disconnect()
+    - ionic: fix rxq comp packet type mask
+    - MAINTAINERS: correct entries for ISDN/mISDN section
+    - netdevsim: fix stack-out-of-bounds in nsim_dev_debugfs_init()
+    - bnxt_en: Fix logic that disables Bus Master during firmware reset.
+    - media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
+    - mfd: dln2: More sanity checking for endpoints
+    - netfilter: ipset: fix suspicious RCU usage in find_set_and_id
+    - ipc/msg.c: consolidate all xxxctl_down() functions
+    - tracing/kprobes: Have uname use __get_str() in print_fmt
+    - tracing: Fix sched switch start/stop refcount racy updates
+    - rcu: Use *_ONCE() to protect lockless ->expmask accesses
+    - rcu: Avoid data-race in rcu_gp_fqs_check_wake()
+    - srcu: Apply *_ONCE() to ->srcu_last_gp_end
+    - rcu: Use READ_ONCE() for ->expmask in rcu_read_unlock_special()
+    - nvmet: Fix error print message at nvmet_install_queue function
+    - nvmet: Fix controller use after free
+    - Bluetooth: btusb: fix memory leak on fw
+    - Bluetooth: btusb: Disable runtime suspend on Realtek devices
+    - brcmfmac: Fix memory leak in brcmf_usbdev_qinit
+    - usb: dwc3: gadget: Check END_TRANSFER completion
+    - usb: dwc3: gadget: Delay starting transfer
+    - usb: typec: tcpci: mask event interrupts when remove driver
+    - objtool: Silence build output
+    - usb: gadget: f_fs: set req->num_sgs as 0 for non-sg transfer
+    - usb: gadget: legacy: set max_speed to super-speed
+    - usb: gadget: f_ncm: Use atomic_t to track in-flight request
+    - usb: gadget: f_ecm: Use atomic_t to track in-flight request
+    - ALSA: usb-audio: Fix endianess in descriptor validation
+    - ALSA: usb-audio: Annotate endianess in Scarlett gen2 quirk
+    - ALSA: dummy: Fix PCM format loop in proc output
+    - memcg: fix a crash in wb_workfn when a device disappears
+    - mm/sparse.c: reset section's mem_map when fully deactivated
+    - mmc: sdhci-pci: Make function amd_sdhci_reset static
+    - utimes: Clamp the timestamps in notify_change()
+    - mm/memory_hotplug: fix remove_memory() lockdep splat
+    - mm: thp: don't need care deferred split queue in memcg charge move path
+    - mm: move_pages: report the number of non-attempted pages
+    - media/v4l2-core: set pages dirty upon releasing DMA buffers
+    - media: v4l2-core: compat: ignore native command codes
+    - media: v4l2-rect.h: fix v4l2_rect_map_inside() top/left adjustments
+    - lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more()
+    - irqdomain: Fix a memory leak in irq_domain_push_irq()
+    - x86/cpu: Update cached HLE state on write to TSX_CTRL_CPUID_CLEAR
+    - platform/x86: intel_scu_ipc: Fix interrupt support
+    - ALSA: hda: Apply aligned MMIO access only conditionally
+    - ALSA: hda: Add Clevo W65_67SB the power_save blacklist
+    - ALSA: hda: Add JasperLake PCI ID and codec vid
+    - arm64: acpi: fix DAIF manipulation with pNMI
+    - KVM: arm64: Correct PSTATE on exception entry
+    - KVM: arm/arm64: Correct CPSR on exception entry
+    - KVM: arm/arm64: Correct AArch32 SPSR on exception entry
+    - KVM: arm64: Only sign-extend MMIO up to register width
+    - MIPS: syscalls: fix indentation of the 'SYSNR' message
+    - MIPS: fix indentation of the 'RELOCS' message
+    - MIPS: boot: fix typo in 'vmlinux.lzma.its' target
+    - s390/mm: fix dynamic pagetable upgrade for hugetlbfs
+    - powerpc/mmu_gather: enable RCU_TABLE_FREE even for !SMP case
+    - powerpc/ptdump: Fix W+X verification
+    - powerpc/xmon: don't access ASDR in VMs
+    - powerpc/pseries: Advance pfn if section is not present in lmb_is_removable()
+    - powerpc/32s: Fix bad_kuap_fault()
+    - powerpc/32s: Fix CPU wake-up from sleep mode
+    - tracing: Fix now invalid var_ref_vals assumption in trace action
+    - PCI: tegra: Fix return value check of pm_runtime_get_sync()
+    - PCI: keystone: Fix outbound region mapping
+    - PCI: keystone: Fix link training retries initiation
+    - PCI: keystone: Fix error handling when "num-viewport" DT property is not
+      populated
+    - mmc: spi: Toggle SPI polarity, do not hardcode it
+    - ACPI: video: Do not export a non working backlight interface on MSI MS-7721
+      boards
+    - ACPI / battery: Deal with design or full capacity being reported as -1
+    - ACPI / battery: Use design-cap for capacity calculations if full-cap is not
+      available
+    - ACPI / battery: Deal better with neither design nor full capacity not being
+      reported
+    - alarmtimer: Unregister wakeup source when module get fails
+    - fscrypt: don't print name of busy file when removing key
+    - ubifs: don't trigger assertion on invalid no-key filename
+    - ubifs: Fix wrong memory allocation
+    - ubifs: Fix FS_IOC_SETFLAGS unexpectedly clearing encrypt flag
+    - ubifs: Fix deadlock in concurrent bulk-read and writepage
+    - mmc: sdhci-of-at91: fix memleak on clk_get failure
+    - ASoC: SOF: core: free trace on errors
+    - hv_balloon: Balloon up according to request page number
+    - mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile
+    - nvmem: core: fix memory abort in cleanup path
+    - crypto: api - Check spawn->alg under lock in crypto_drop_spawn
+    - crypto: ccree - fix backlog memory leak
+    - crypto: ccree - fix AEAD decrypt auth fail
+    - crypto: ccree - fix pm wrongful error reporting
+    - crypto: ccree - fix FDE descriptor sequence
+    - crypto: ccree - fix PM race condition
+    - padata: Remove broken queue flushing
+    - fs: allow deduplication of eof block into the end of the destination file
+    - scripts/find-unused-docs: Fix massive false positives
+    - erofs: fix out-of-bound read for shifted uncompressed block
+    - scsi: megaraid_sas: Do not initiate OCR if controller is not in ready state
+    - scsi: qla2xxx: Fix mtcp dump collection failure
+    - cpupower: Revert library ABI changes from commit ae2917093fb60bdc1ed3e
+    - power: supply: axp20x_ac_power: Fix reporting online status
+    - power: supply: ltc2941-battery-gauge: fix use-after-free
+    - ovl: fix wrong WARN_ON() in ovl_cache_update_ino()
+    - ovl: fix lseek overflow on 32bit
+    - f2fs: choose hardlimit when softlimit is larger than hardlimit in
+      f2fs_statfs_project()
+    - f2fs: fix miscounted block limit in f2fs_statfs_project()
+    - f2fs: code cleanup for f2fs_statfs_project()
+    - f2fs: fix dcache lookup of !casefolded directories
+    - f2fs: fix race conditions in ->d_compare() and ->d_hash()
+    - PM: core: Fix handling of devices deleted during system-wide resume
+    - cpufreq: Avoid creating excessively large stack frames
+    - of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
+    - ARM: dma-api: fix max_pfn off-by-one error in __dma_supported()
+    - dm zoned: support zone sizes smaller than 128MiB
+    - dm space map common: fix to ensure new block isn't already in use
+    - dm writecache: fix incorrect flush sequence when doing SSD mode commit
+    - dm crypt: fix GFP flags passed to skcipher_request_alloc()
+    - dm crypt: fix benbi IV constructor crash if used in authenticated mode
+    - dm thin metadata: use pool locking at end of dm_pool_metadata_close
+    - scsi: qla2xxx: Fix stuck login session using prli_pend_timer
+    - ASoC: SOF: Introduce state machine for FW boot
+    - ASoC: SOF: core: release resources on errors in probe_continue
+    - tracing: Annotate ftrace_graph_hash pointer with __rcu
+    - tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
+    - ftrace: Add comment to why rcu_dereference_sched() is open coded
+    - ftrace: Protect ftrace_graph_hash with ftrace_sync
+    - crypto: pcrypt - Avoid deadlock by using per-instance padata queues
+    - btrfs: fix improper setting of scanned for range cyclic write cache pages
+    - btrfs: Handle another split brain scenario with metadata uuid feature
+    - riscv, bpf: Fix broken BPF tail calls
+    - selftests/bpf: Fix perf_buffer test on systems w/ offline CPUs
+    - bpf, devmap: Pass lockdep expression to RCU lists
+    - libbpf: Fix realloc usage in bpf_core_find_cands
+    - tc-testing: fix eBPF tests failure on linux fresh clones
+    - samples/bpf: Don't try to remove user's homedir on clean
+    - samples/bpf: Xdp_redirect_cpu fix missing tracepoint attach
+    - selftests/bpf: Fix test_attach_probe
+    - selftests/bpf: Skip perf hw events test if the setup disabled it
+    - selftests: bpf: Use a temporary file in test_sockmap
+    - selftests: bpf: Ignore FIN packets for reuseport tests
+    - crypto: api - fix unexpectedly getting generic implementation
+    - crypto: hisilicon - Use the offset fields in sqe to avoid need to split
+      scatterlists
+    - crypto: ccp - set max RSA modulus size for v3 platform devices as well
+    - crypto: arm64/ghash-neon - bump priority to 150
+    - crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
+    - crypto: atmel-aes - Fix counter overflow in CTR mode
+    - crypto: api - Fix race condition in crypto_spawn_alg
+    - crypto: picoxcell - adjust the position of tasklet_init and fix missed
+      tasklet_kill
+    - powerpc/futex: Fix incorrect user access blocking
+    - scsi: qla2xxx: Fix unbound NVME response length
+    - NFS: Fix memory leaks and corruption in readdir
+    - NFS: Directory page cache pages need to be locked when read
+    - nfsd: fix filecache lookup
+    - jbd2_seq_info_next should increase position index
+    - ext4: fix deadlock allocating crypto bounce page from mempool
+    - ext4: fix race conditions in ->d_compare() and ->d_hash()
+    - Btrfs: fix missing hole after hole punching and fsync when using NO_HOLES
+    - Btrfs: make deduplication with range including the last block work
+    - Btrfs: fix infinite loop during fsync after rename operations
+    - btrfs: set trans->drity in btrfs_commit_transaction
+    - btrfs: drop log root for dropped roots
+    - Btrfs: fix race between adding and putting tree mod seq elements and nodes
+    - btrfs: flush write bio if we loop in extent_write_cache_pages
+    - btrfs: Correctly handle empty trees in find_first_clear_extent_bit
+    - ARM: tegra: Enable PLLP bypass during Tegra124 LP1
+    - iwlwifi: don't throw error when trying to remove IGTK
+    - mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
+    - sunrpc: expiry_time should be seconds not timeval
+    - gfs2: fix gfs2_find_jhead that returns uninitialized jhead with seq 0
+    - gfs2: move setting current->backing_dev_info
+    - gfs2: fix O_SYNC write handling
+    - drm: atmel-hlcdc: use double rate for pixel clock only if supported
+    - drm: atmel-hlcdc: enable clock before configuring timing engine
+    - drm: atmel-hlcdc: prefer a lower pixel-clock than requested
+    - drm/rect: Avoid division by zero
+    - media: iguanair: fix endpoint sanity check
+    - media: rc: ensure lirc is initialized before registering input device
+    - tools/kvm_stat: Fix kvm_exit filter name
+    - xen/balloon: Support xend-based toolstack take two
+    - watchdog: fix UAF in reboot notifier handling in watchdog core code
+    - bcache: add readahead cache policy options via sysfs interface
+    - eventfd: track eventfd_signal() recursion depth
+    - aio: prevent potential eventfd recursion on poll
+    - KVM: x86: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks
+    - KVM: x86: Refactor prefix decoding to prevent Spectre-v1/L1TF attacks
+    - KVM: x86: Protect pmu_intel.c from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect DR-based index computations from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect kvm_lapic_reg_write() from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect kvm_hv_msr_[get|set]_crash_data() from Spectre-v1/L1TF
+      attacks
+    - KVM: x86: Protect ioapic_write_indirect() from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect MSR-based index computations in pmu.h from Spectre-v1/L1TF
+      attacks
+    - KVM: x86: Protect ioapic_read_indirect() from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect MSR-based index computations from Spectre-v1/L1TF attacks
+      in x86.c
+    - KVM: x86: Protect x86_decode_insn from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect MSR-based index computations in fixed_msr_to_seg_unit()
+      from Spectre-v1/L1TF attacks
+    - KVM: x86: Fix potential put_fpu() w/o load_fpu() on MPX platform
+    - KVM: PPC: Book3S HV: Uninit vCPU if vcore creation fails
+    - KVM: PPC: Book3S PR: Free shared page if mmu initialization fails
+    - kvm/svm: PKU not currently supported
+    - KVM: VMX: Add non-canonical check on writes to RTIT address MSRs
+    - KVM: x86: Don't let userspace set host-reserved cr4 bits
+    - KVM: x86: Free wbinvd_dirty_mask if vCPU creation fails
+    - KVM: x86: Handle TIF_NEED_FPU_LOAD in kvm_{load,put}_guest_fpu()
+    - KVM: x86: Ensure guest's FPU state is loaded when accessing for emulation
+    - KVM: x86: Revert "KVM: X86: Fix fpu state crash in kvm guest"
+    - KVM: s390: do not clobber registers during guest reset/store status
+    - ocfs2: fix oops when writing cloned file
+    - mm/page_alloc.c: fix uninitialized memmaps on a partially populated last
+      section
+    - arm64: dts: qcom: qcs404-evb: Set vdd_apc regulator in high power mode
+    - mm/mmu_gather: invalidate TLB correctly on batch allocation failure and
+      flush
+    - clk: tegra: Mark fuse clock as critical
+    - drm/amd/dm/mst: Ignore payload update failures
+    - virtio-balloon: initialize all vq callbacks
+    - virtio-pci: check name when counting MSI-X vectors
+    - fix up iter on short count in fuse_direct_io()
+    - broken ping to ipv6 linklocal addresses on debian buster
+    - percpu: Separate decrypted varaibles anytime encryption can be enabled
+    - ASoC: meson: axg-fifo: fix fifo threshold setup
+    - scsi: qla2xxx: Fix the endianness of the qla82xx_get_fw_size() return type
+    - scsi: csiostor: Adjust indentation in csio_device_reset
+    - scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free
+    - scsi: ufs: Recheck bkops level if bkops is disabled
+    - mtd: spi-nor: Split mt25qu512a (n25q512a) entry into two
+    - phy: qualcomm: Adjust indentation in read_poll_timeout
+    - ext2: Adjust indentation in ext2_fill_super
+    - powerpc/44x: Adjust indentation in ibm4xx_denali_fixup_memsize
+    - drm: msm: mdp4: Adjust indentation in mdp4_dsi_encoder_enable
+    - NFC: pn544: Adjust indentation in pn544_hci_check_presence
+    - ppp: Adjust indentation into ppp_async_input
+    - net: smc911x: Adjust indentation in smc911x_phy_configure
+    - net: tulip: Adjust indentation in {dmfe, uli526x}_init_module
+    - IB/mlx5: Fix outstanding_pi index for GSI qps
+    - IB/core: Fix ODP get user pages flow
+    - nfsd: fix delay timer on 32-bit architectures
+    - nfsd: fix jiffies/time_t mixup in LRU list
+    - nfsd: Return the correct number of bytes written to the file
+    - virtio-balloon: Fix memory leak when unloading while hinting is in progress
+    - virtio_balloon: Fix memory leaks on errors in virtballoon_probe()
+    - ubi: fastmap: Fix inverted logic in seen selfcheck
+    - ubi: Fix an error pointer dereference in error handling code
+    - ubifs: Fix memory leak from c->sup_node
+    - regulator: core: Add regulator_is_equal() helper
+    - ASoC: sgtl5000: Fix VDDA and VDDIO comparison
+    - bonding/alb: properly access headers in bond_alb_xmit()
+    - devlink: report 0 after hitting end in region read
+    - dpaa_eth: support all modes with rate adapting PHYs
+    - net: dsa: b53: Always use dev->vlan_enabled in b53_configure_vlan()
+    - net: dsa: bcm_sf2: Only 7278 supports 2Gb/sec IMP port
+    - net: dsa: microchip: enable module autoprobe
+    - net: mvneta: move rx_dropped and rx_errors in per-cpu stats
+    - net_sched: fix a resource leak in tcindex_set_parms()
+    - net: stmmac: fix a possible endless loop
+    - net: systemport: Avoid RBUF stuck in Wake-on-LAN mode
+    - net/mlx5: IPsec, Fix esp modify function attribute
+    - net/mlx5: IPsec, fix memory leak at mlx5_fpga_ipsec_delete_sa_ctx
+    - net: macb: Remove unnecessary alignment check for TSO
+    - net: macb: Limit maximum GEM TX length in TSO
+    - taprio: Fix enabling offload with wrong number of traffic classes
+    - taprio: Fix still allowing changing the flags during runtime
+    - taprio: Add missing policy validation for flags
+    - taprio: Use taprio_reset_tc() to reset Traffic Classes configuration
+    - taprio: Fix dropping packets when using taprio + ETF offloading
+    - ipv6/addrconf: fix potential NULL deref in inet6_set_link_af()
+    - qed: Fix timestamping issue for L2 unicast ptp packets.
+    - drop_monitor: Do not cancel uninitialized work item
+    - net/mlx5: Fix deadlock in fs_core
+    - net/mlx5: Deprecate usage of generic TLS HW capability bit
+    - ASoC: Intel: skl_hda_dsp_common: Fix global-out-of-bounds bug
+    - mfd: da9062: Fix watchdog compatible string
+    - mfd: rn5t618: Mark ADC control register volatile
+    - mfd: bd70528: Fix hour register mask
+    - x86/timer: Don't skip PIT setup when APIC is disabled or in legacy mode
+    - btrfs: use bool argument in free_root_pointers()
+    - btrfs: free block groups after free'ing fs trees
+    - drm/dp_mst: Remove VCPI while disabling topology mgr
+    - KVM: x86/mmu: Apply max PA check for MMIO sptes to 32-bit KVM
+    - KVM: x86: use CPUID to locate host page table reserved bits
+    - KVM: x86: Use gpa_t for cr2/gpa to fix TDP support on 32-bit KVM
+    - KVM: x86: fix overlap between SPTE_MMIO_MASK and generation
+    - KVM: nVMX: vmread should not set rflags to specify success in case of #PF
+    - KVM: Use vcpu-specific gva->hva translation when querying host page size
+    - KVM: Play nice with read-only memslots when querying host page size
+    - cifs: fail i/o on soft mounts if sessionsetup errors out
+    - x86/apic/msi: Plug non-maskable MSI affinity race
+    - clocksource: Prevent double add_timer_on() for watchdog_timer
+    - perf/core: Fix mlock accounting in perf_mmap()
+    - rxrpc: Fix service call disconnection
+    - regulator fix for "regulator: core: Add regulator_is_equal() helper"
+    - powerpc/kuap: Fix set direction in allow/prevent_user_access()
+    - Linux 5.4.19
+    - [Config] updateconfigs following v5.4.19 stable update
+
+  * 5.4.0-11 crash on cryptsetup open (LP: #1860231) // Focal update: v5.4.19
+    upstream stable release (LP: #1863588)
+    - dm: fix potential for q->make_request_fn NULL pointer
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [debian] ignore missing wireguard module
+    - debian: remove snapdragon config, rules and flavour
+    - [Config] updateconfigs following snapdragon removal
+    - remove snapdragon abi files
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 20 Feb 2020 11:42:30 -0600
+
+linux (5.4.0-14.17) focal; urgency=medium
+
+  * Empty entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 19 Feb 2020 11:46:35 -0600
+
+linux-5.4 (5.4.0-14.17) focal; urgency=medium
+
+  * focal/linux-5.4: 5.4.0-14.17 -proposed tracker (LP: #1862255)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Boot log is swamped with "debugfs: Directory 'imc' with parent 'powerpc'
+    already present" messages on kernel 5.4 (LP: #1861379)
+    - powerpc/powernv: Avoid re-registration of imc debugfs directory
+
+  * CVE-2019-3016
+    - SAUCE: x86/kvm: Be careful not to clear KVM_VCPU_FLUSH_TLB bit
+    - SAUCE: x86/kvm: Introduce kvm_(un)map_gfn()
+    - SAUCE: x86/kvm: Cache gfn to pfn translation
+    - SAUCE: x86/KVM: Make sure KVM_VCPU_FLUSH_TLB flag is not missed
+    - SAUCE: x86/KVM: Clean up host's steal time structure
+
+  * installing linux-modules-nvidia does not remove nvidia-dkms, and the kernel
+    prioritizes the wrong version of the module from disk (LP: #1856414)
+    - Revert "UBUNTU: [Packaging] dkms -- switch basic provides to *-modules"
+    - Revert "UBUNTU: [Packaging] dkms -- add Provides: specifiers for existing
+      zfs/nvidia/vbox"
+    - Revert "UBUNTU: [packaging] dkms-build -- include versioned provides"
+    - [Packaging] wireguard -- drop provides
+
+  * Focal update: v5.4.18 upstream stable release (LP: #1862203)
+    - vfs: fix do_last() regression
+    - cifs: fix soft mounts hanging in the reconnect code
+    - x86/resctrl: Fix a deadlock due to inaccurate reference
+    - x86/resctrl: Fix use-after-free when deleting resource groups
+    - x86/resctrl: Fix use-after-free due to inaccurate refcount of rdtgroup
+    - e1000e: Drop unnecessary __E1000_DOWN bit twiddling
+    - e1000e: Revert "e1000e: Make watchdog use delayed work"
+    - gfs2: Another gfs2_find_jhead fix
+    - perf c2c: Fix return type for histogram sorting comparision functions
+    - PM / devfreq: Add new name attribute for sysfs
+    - tools lib: Fix builds when glibc contains strlcpy()
+    - arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
+    - mm/mempolicy.c: fix out of bounds write in mpol_parse_str()
+    - reiserfs: Fix memory leak of journal device string
+    - media: digitv: don't continue if remote control state can't be read
+    - media: af9005: uninitialized variable printked
+    - media: vp7045: do not read uninitialized values if usb transfer fails
+    - media: gspca: zero usb_buf
+    - media: dvb-usb/dvb-usb-urb.c: initialize actlen to 0
+    - tomoyo: Use atomic_t for statistics counter
+    - ttyprintk: fix a potential deadlock in interrupt context issue
+    - Bluetooth: Fix race condition in hci_release_sock()
+    - cgroup: Prevent double killing of css when enabling threaded cgroup
+    - clk: sunxi-ng: v3s: Fix incorrect number of hw_clks.
+    - arm64: dts: meson-sm1-sei610: add gpio bluetooth interrupt
+    - ARM: dts: sun8i: a83t: Correct USB3503 GPIOs polarity
+    - ARM: dts: am57xx-beagle-x15/am57xx-idk: Remove "gpios" for endpoint dt nodes
+    - ARM: dts: beagle-x15-common: Model 5V0 regulator
+    - soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot
+    - tools lib traceevent: Fix memory leakage in filter_event
+    - rseq: Unregister rseq for clone CLONE_VM
+    - clk: sunxi-ng: sun8i-r: Fix divider on APB0 clock
+    - clk: sunxi-ng: h6-r: Fix AR100/R_APB2 parent order
+    - mac80211: mesh: restrict airtime metric to peered established plinks
+    - clk: mmp2: Fix the order of timer mux parents
+    - ASoC: rt5640: Fix NULL dereference on module unload
+    - s390/zcrypt: move ap device reset from bus to driver code
+    - i40e: Fix virtchnl_queue_select bitmap validation
+    - ixgbevf: Remove limit of 10 entries for unicast filter list
+    - ixgbe: Fix calculation of queue with VFs and flow director on interface flap
+    - igb: Fix SGMII SFP module discovery for 100FX/LX.
+    - iavf: remove current MAC address filter on VF reset
+    - platform/x86: GPD pocket fan: Allow somewhat lower/higher temperature limits
+    - platform/x86: intel_pmc_core: update Comet Lake platform driver
+    - ASoC: hdac_hda: Fix error in driver removal after failed probe
+    - ASoC: sti: fix possible sleep-in-atomic
+    - qmi_wwan: Add support for Quectel RM500Q
+    - parisc: Use proper printk format for resource_size_t
+    - lkdtm/bugs: fix build error in lkdtm_UNSET_SMEP
+    - wireless: fix enabling channel 12 for custom regulatory domain
+    - cfg80211: Fix radar event during another phy CAC
+    - mac80211: Fix TKIP replay protection immediately after key setup
+    - wireless: wext: avoid gcc -O3 warning
+    - perf/x86/intel/uncore: Add PCI ID of IMC for Xeon E3 V5 Family
+    - perf/x86/intel/uncore: Remove PCIe3 unit for SNR
+    - riscv: delete temporary files
+    - XArray: Fix xas_pause at ULONG_MAX
+    - iwlwifi: pcie: allocate smaller dev_cmd for TX headers
+    - iwlwifi: Don't ignore the cap field upon mcc update
+    - iwlwifi: dbg: force stop the debug monitor HW
+    - Input: evdev - convert kzalloc()/vzalloc() to kvzalloc()
+    - ARM: dts: am335x-boneblack-common: fix memory size
+    - xfrm: interface: do not confirm neighbor when do pmtu update
+    - Input: max77650-onkey - add of_match table
+    - scsi: fnic: do not queue commands during fwreset
+    - ARM: 8955/1: virt: Relax arch timer version check during early boot
+    - led: max77650: add of_match table
+    - tee: optee: Fix compilation issue with nommu
+    - r8152: get default setting of WOL before initializing
+    - r8152: disable U2P3 for RTL8153B
+    - r8152: Disable PLA MCU clock speed down
+    - r8152: disable test IO for RTL8153B
+    - r8152: avoid the MCU to clear the lanwake
+    - r8152: disable DelayPhyPwrChg
+    - ARM: dts: am43x-epos-evm: set data pin directions for spi0 and spi1
+    - qlcnic: Fix CPU soft lockup while collecting firmware dump
+    - powerpc/fsl/dts: add fsl,erratum-a011043
+    - net/fsl: treat fsl,erratum-a011043
+    - net: fsl/fman: rename IF_MODE_XGMII to IF_MODE_10G
+    - seq_tab_next() should increase position index
+    - l2t_seq_next should increase position index
+    - netfilter: conntrack: sctp: use distinct states for new SCTP connections
+    - netfilter: nf_tables_offload: fix check the chain offload flag
+    - net: Fix skb->csum update in inet_proto_csum_replace16().
+    - btrfs: do not zero f_bavail if we have available space
+    - cpuidle: teo: Avoid using "early hits" incorrectly
+    - flow_dissector: Fix to use new variables for port ranges in bpf hook
+    - dm thin: fix use-after-free in metadata_pre_commit_callback
+    - perf report: Fix no libunwind compiled warning break s390 issue
+    - mm/migrate.c: also overwrite error when it is bigger than zero
+    - ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization
+      order
+    - Revert "rsi: fix potential null dereference in rsi_probe()"
+    - tracing/uprobe: Fix to make trace_uprobe_filter alignment safe
+    - Linux 5.4.18
+
+  *  Integrate Intel SGX driver into linux-azure (LP: #1844245)
+    - [Packaging] Add systemd service to load intel_sgx
+
+  * Focal update: v5.4.17 upstream stable release (LP: #1861784)
+    - Bluetooth: btusb: fix non-atomic allocation in completion handler
+    - orinoco_usb: fix interface sanity check
+    - rsi_91x_usb: fix interface sanity check
+    - usb: dwc3: pci: add ID for the Intel Comet Lake -V variant
+    - usb: host: xhci-tegra: set MODULE_FIRMWARE for tegra186
+    - USB: serial: ir-usb: add missing endpoint sanity check
+    - USB: serial: ir-usb: fix link-speed handling
+    - USB: serial: ir-usb: fix IrLAP framing
+    - usb: dwc3: turn off VBUS when leaving host mode
+    - usb: typec: wcove: fix "op-sink-microwatt" default that was in mW
+    - usb: typec: fusb302: fix "op-sink-microwatt" default that was in mW
+    - staging: most: net: fix buffer overflow
+    - staging: wlan-ng: ensure error return is actually returned
+    - staging: vt6656: correct packet types for CTS protect, mode.
+    - staging: vt6656: use NULLFUCTION stack on mac80211
+    - staging: vt6656: Fix false Tx excessive retries reporting.
+    - serial: 8250_bcm2835aux: Fix line mismatch on driver unbind
+    - serial: imx: fix a race condition in receive path
+    - debugfs: Return -EPERM when locked down
+    - component: do not dereference opaque pointer in debugfs
+    - binder: fix log spam for existing debugfs file creation.
+    - mei: hdcp: bind only with i915 on the same PCH
+    - mei: me: add comet point (lake) H device ids
+    - iio: adc: stm32-dfsdm: fix single conversion
+    - iio: st_gyro: Correct data for LSM9DS0 gyro
+    - driver core: Fix test_async_driver_probe if NUMA is disabled
+    - crypto: chelsio - fix writing tfm flags to wrong place
+    - CIFS: Fix task struct use-after-free on reconnect
+    - cifs: set correct max-buffer-size for smb2_ioctl_init()
+    - cifs: Fix memory allocation in __smb2_handle_cancelled_cmd()
+    - ath9k: fix storage endpoint lookup
+    - brcmfmac: fix interface sanity check
+    - rtl8xxxu: fix interface sanity check
+    - zd1211rw: fix storage endpoint lookup
+    - net_sched: ematch: reject invalid TCF_EM_SIMPLE
+    - net_sched: fix ops->bind_class() implementations
+    - net_sched: walk through all child classes in tc_bind_tclass()
+    - net: socionext: fix possible user-after-free in netsec_process_rx
+    - net: socionext: fix xdp_result initialization in netsec_process_rx
+    - udp: segment looped gso packets correctly
+    - mlxsw: minimal: Fix an error handling path in 'mlxsw_m_port_create()'
+    - net: include struct nhmsg size in nh nlmsg size
+    - rxrpc: Fix use-after-free in rxrpc_receive_data()
+    - arc: eznps: fix allmodconfig kconfig warning
+    - HID: Add quirk for Xin-Mo Dual Controller
+    - HID: ite: Add USB id match for Acer SW5-012 keyboard dock
+    - HID: asus: Ignore Asus vendor-page usage-code 0xff events
+    - HID: Add quirk for incorrect input length on Lenovo Y720
+    - HID: intel-ish-hid: ipc: add CMP device id
+    - HID: wacom: Recognize new MobileStudio Pro PID
+    - ASoC: SOF: fix fault at driver unload after failed probe
+    - ASoC: SOF: Intel: hda: hda-dai: fix oops on hda_link .hw_free
+    - drivers/hid/hid-multitouch.c: fix a possible null pointer access.
+    - phy: qcom-qmp: Increase PHY ready timeout
+    - ASoC: fsl_audmix: add missed pm_runtime_disable
+    - ASoC: topology: Prevent use-after-free in snd_soc_get_pcm_runtime()
+    - phy: cpcap-usb: Prevent USB line glitches from waking up modem
+    - HID: intel-ish-hid: ipc: Add Tiger Lake PCI device ID
+    - watchdog: max77620_wdt: fix potential build errors
+    - watchdog: rn5t618_wdt: fix module aliases
+    - watchdog: orion: fix platform_get_irq() complaints
+    - usb: musb: jz4740: Silence error if code is -EPROBE_DEFER
+    - can: tcan4x5x: tcan4x5x_parse_config(): reset device before register access
+    - spi: spi-dw: Add lock protect dw_spi rx/tx to prevent concurrent calls
+    - net: Google gve: Remove dma_wmb() before ringing doorbell
+    - drivers/net/b44: Change to non-atomic bit operations on pwol_mask
+    - net: wan: sdla: Fix cast from pointer to integer of different size
+    - gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP
+    - iommu/dma: fix variable 'cookie' set but not used
+    - drm/amd/display: Reduce HDMI pixel encoding if max clock is exceeded
+    - stmmac: debugfs entry name is not be changed when udev rename device name.
+    - atm: eni: fix uninitialized variable warning
+    - HID: steam: Fix input device disappearing
+    - extcon-intel-cht-wc: Don't reset USB data connection at probe
+    - ASoC: Intel: cht_bsw_rt5645: Add quirk for boards using pmc_plt_clk_0
+    - drm/amdgpu/SRIOV: add navi12 pci id for SRIOV (v2)
+    - libbpf: Fix BTF-defined map's __type macro handling of arrays
+    - staging: mt7621-pci: add quirks for 'E2' revision using
+      'soc_device_attribute'
+    - platform/x86: dell-laptop: disable kbd backlight on Inspiron 10xx
+    - PCI: Add DMA alias quirk for Intel VCA NTB
+    - media: dvbsky: add support for eyeTV Geniatech T2 lite
+    - bus: ti-sysc: Handle mstandby quirk and use it for musb
+    - bus: ti-sysc: Use swsup quirks also for am335x musb
+    - spi: pxa2xx: Add support for Intel Comet Lake-H
+    - iommu/amd: Support multiple PCI DMA aliases in device table
+    - iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping
+    - perf/imx_ddr: Add enhanced AXI ID filter support
+    - ARM: config: aspeed-g5: Enable 8250_DW quirks
+    - ARM: OMAP2+: SmartReflex: add omap_sr_pdata definition
+    - mmc: sdhci-pci: Quirk for AMD SDHC Device 0x7906
+    - mmc: sdhci-pci: Add support for Intel JSL
+    - bus: ti-sysc: Add module enable quirk for audio AESS
+    - usb-storage: Disable UAS on JMicron SATA enclosure
+    - ALSA: hda/realtek - Move some alc236 pintbls to fallback table
+    - Bluetooth: Allow combination of BDADDR_PROPERTY and INVALID_BDADDR quirks
+    - Bluetooth: btbcm: Use the BDADDR_PROPERTY quirk
+    - bus: ti-sysc: Fix missing force mstandby quirk handling
+    - rsi: fix use-after-free on failed probe and unbind
+    - rsi: fix use-after-free on probe errors
+    - rsi: fix memory leak on failed URB submission
+    - rsi: fix non-atomic allocation in completion handler
+    - crypto: af_alg - Use bh_lock_sock in sk_destruct
+    - crypto: vmx - reject xts inputs that are too short
+    - crypto: caam - do not reset pointer size from MCFGR register
+    - crypto: pcrypt - Fix user-after-free on module unload
+    - KVM: arm64: Write arch.mdcr_el2 changes since last vcpu_load on VHE
+    - Revert "um: Enable CONFIG_CONSTRUCTORS"
+    - power/supply: ingenic-battery: Don't change scale if there's only one
+    - Linux 5.4.17
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] dkms -- switch basic provides to *-modules
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 06 Feb 2020 16:30:48 -0600
+
+linux-5.4 (5.4.0-13.16) focal; urgency=medium
+
+  * focal/linux-5.4: 5.4.0-13.16 -proposed tracker (LP: #1861352)
+
+  * system hang: i915 Resetting rcs0 for hang on rcs0 (LP: #1861395)
+    - drm/i915/gt: Detect if we miss WaIdleLiteRestore
+
+  * Focal update: v5.4.16 upstream stable release (LP: #1861385)
+    - can, slip: Protect tty->disc_data in write_wakeup and close with RCU
+    - firestream: fix memory leaks
+    - gtp: make sure only SOCK_DGRAM UDP sockets are accepted
+    - ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions
+    - net: bcmgenet: Use netif_tx_napi_add() for TX NAPI
+    - net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM
+    - net: ip6_gre: fix moving ip6gre between namespaces
+    - net, ip6_tunnel: fix namespaces move
+    - net, ip_tunnel: fix namespaces move
+    - net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link()
+    - net_sched: fix datalen for ematch
+    - net_sched: use validated TCA_KIND attribute in tc_new_tfilter()
+    - net-sysfs: Fix reference count leak
+    - net: usb: lan78xx: Add .ndo_features_check
+    - Revert "udp: do rmem bulk free even if the rx sk queue is empty"
+    - tcp_bbr: improve arithmetic division in bbr_update_bw()
+    - tcp: do not leave dangling pointers in tp->highest_sack
+    - tun: add mutex_unlock() call and napi.skb clearing in tun_get_user()
+    - airo: Fix possible info leak in AIROOLDIOCTL/SIOCDEVPRIVATE
+    - airo: Add missing CAP_NET_ADMIN check in AIROOLDIOCTL/SIOCDEVPRIVATE
+    - mlxsw: spectrum_acl: Fix use-after-free during reload
+    - fou: Fix IPv6 netlink policy
+    - net: Fix packet reordering caused by GRO and listified RX cooperation
+    - net/mlx5: Fix lowest FDB pool size
+    - net/mlx5: Update the list of the PCI supported devices
+    - net/mlx5: DR, Enable counter on non-fwd-dest objects
+    - net/mlx5: E-Switch, Prevent ingress rate configuration of uplink rep
+    - net/mlx5: DR, use non preemptible call to get the current cpu number
+    - net/mlx5e: kTLS, Fix corner-case checks in TX resync flow
+    - net/mlx5e: kTLS, Remove redundant posts in TX resync flow
+    - net/mlx5e: kTLS, Do not send decrypted-marked SKBs via non-accel path
+    - ipv4: Detect rollover in specific fib table dump
+    - Revert "io_uring: only allow submit from owning task"
+    - afs: Fix characters allowed into cell names
+    - hwmon: (adt7475) Make volt2reg return same reg as reg2volt input
+    - hwmon: (core) Do not use device managed functions for memory allocations
+    - ceph: hold extra reference to r_parent over life of request
+    - PCI: Mark AMD Navi14 GPU rev 0xc5 ATS as broken
+    - drm/panfrost: Add the panfrost_gem_mapping concept
+    - drm/i915: Align engine->uabi_class/instance with i915_drm.h
+    - PM: hibernate: fix crashes with init_on_free=1
+    - tracing: trigger: Replace unneeded RCU-list traversals
+    - tracing/uprobe: Fix double perf_event linking on multiprobe uprobe
+    - tracing: Do not set trace clock if tracefs lockdown is in effect
+    - tracing: Fix histogram code when expression has same var as value
+    - powerpc/mm/hash: Fix sharing context ids between kernel & userspace
+    - powerpc/xive: Discard ESB load value when interrupt is invalid
+    - Revert "iwlwifi: mvm: fix scan config command size"
+    - iwlwifi: mvm: don't send the IWL_MVM_RXQ_NSSN_SYNC notif to Rx queues
+    - XArray: Fix infinite loop with entry at ULONG_MAX
+    - XArray: Fix xa_find_after with multi-index entries
+    - XArray: Fix xas_find returning too many entries
+    - pinctrl: sunrisepoint: Add missing Interrupt Status register offset
+    - iommu/vt-d: Call __dmar_remove_one_dev_info with valid pointer
+    - Input: keyspan-remote - fix control-message timeouts
+    - Revert "Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers"
+    - ARM: 8950/1: ftrace/recordmcount: filter relocation types
+    - mmc: tegra: fix SDR50 tuning override
+    - mmc: sdhci: fix minimum clock rate for v3 controller
+    - mmc: sdhci_am654: Remove Inverted Write Protect flag
+    - mmc: sdhci_am654: Reset Command and Data line after tuning
+    - mlxsw: switchx2: Do not modify cloned SKBs during xmit
+    - net/tls: fix async operation
+    - Input: pm8xxx-vib - fix handling of separate enable register
+    - Input: sur40 - fix interface sanity checks
+    - Input: gtco - fix endpoint sanity check
+    - Input: aiptek - fix endpoint sanity check
+    - Input: pegasus_notetaker - fix endpoint sanity check
+    - Input: sun4i-ts - add a check for devm_thermal_zone_of_sensor_register
+    - netfilter: nft_osf: add missing check for DREG attribute
+    - lib: Reduce user_access_begin() boundaries in strncpy_from_user() and
+      strnlen_user()
+    - iommu/amd: Fix IOMMU perf counter clobbering during init
+    - readdir: make user_access_begin() use the real access range
+    - leds: gpio: Fix uninitialized gpio label for fwnode based probe
+    - hsr: Fix a compilation error
+    - hwmon: (nct7802) Fix voltage limits to wrong registers
+    - hwmon: (nct7802) Fix non-working alarm on voltages
+    - scsi: RDMA/isert: Fix a recently introduced regression related to logout
+    - tracing: xen: Ordered comparison of function pointers
+    - iwlwifi: mvm: fix SKB leak on invalid queue
+    - iwlwifi: mvm: fix potential SKB leak on TXQ TX
+    - drm/i915/userptr: fix size calculation
+    - xfrm: support output_mark for offload ESP packets
+    - net, sk_msg: Don't check if sock is locked when tearing down psock
+    - do_last(): fetch directory ->i_mode and ->i_uid before it's too late
+    - readdir: be more conservative with directory entry names
+    - net/sonic: Add mutual exclusion for accessing shared state
+    - net/sonic: Clear interrupt flags immediately
+    - net/sonic: Use MMIO accessors
+    - net/sonic: Fix interface error stats collection
+    - net/sonic: Fix receive buffer handling
+    - net/sonic: Avoid needless receive descriptor EOL flag updates
+    - net/sonic: Improve receive descriptor status flag check
+    - net/sonic: Fix receive buffer replenishment
+    - net/sonic: Quiesce SONIC before re-initializing descriptor memory
+    - net/sonic: Fix command register usage
+    - net/sonic: Fix CAM initialization
+    - net/sonic: Prevent tx watchdog timeout
+    - media: v4l2-ioctl.c: zero reserved fields for S/TRY_FMT
+    - netfilter: ipset: use bitmap infrastructure completely
+    - netfilter: nf_tables: add __nft_chain_type_get()
+    - netfilter: nf_tables: autoload modules from the abort path
+    - net/x25: fix nonblocking connect
+    - Linux 5.4.16
+
+  * Build and ship a signed wireguard.ko (LP: #1861284)
+    - [Packaging] wireguard -- add support for building signed .ko
+    - [Config] wireguard -- enable on all architectures
+
+  * installing linux-modules-nvidia does not remove nvidia-dkms, and the kernel
+    prioritizes the wrong version of the module from disk (LP: #1856414)
+    - [packaging] dkms-build -- include versioned provides
+    - [Packaging] dkms -- add Provides: specifiers for existing zfs/nvidia/vbox
+
+  * dkms artifacts may expire from the pool (LP: #1850958)
+    - [Packaging] autoreconstruct -- manage executable debian files
+    - [packaging] handle downloads from the librarian better
+
+  * QAT drivers for C3XXX and C62X not included as modules (LP: #1845959)
+    - [Config] CRYPTO_DEV_QAT_C3XXX=m, CRYPTO_DEV_QAT_C62X=m and
+      CRYPTO_DEV_QAT_DH895xCC=m
+
+  * 5.4.0-11 crash on cryptsetup open (LP: #1860231)
+    - SAUCE: blk/core: Gracefully handle unset make_request_fn
+
+  * multi-zone raid0 corruption (LP: #1850540)
+    - SAUCE: md/raid0: Use kernel specific layout
+
+  * ipsec interfaces: fix sending with bpf_redirect() / AF_PACKET sockets
+    (LP: #1860969)
+    - vti[6]: fix packet tx through bpf_redirect()
+    - xfrm interface: fix packet tx through bpf_redirect()
+
+  * Focal update: v5.4.15 upstream stable release (LP: #1861091)
+    - drm/i915: Fix pid leak with banned clients
+    - libbpf: Fix compatibility for kernels without need_wakeup
+    - libbpf: Fix memory leak/double free issue
+    - libbpf: Fix potential overflow issue
+    - libbpf: Fix another potential overflow issue in bpf_prog_linfo
+    - libbpf: Make btf__resolve_size logic always check size error condition
+    - bpf: Force .BTF section start to zero when dumping from vmlinux
+    - samples: bpf: update map definition to new syntax BTF-defined map
+    - samples/bpf: Fix broken xdp_rxq_info due to map order assumptions
+    - ARM: dts: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel
+    - ARM: OMAP2+: Add missing put_device() call in omapdss_init_of()
+    - xfs: Sanity check flags of Q_XQUOTARM call
+    - i2c: stm32f7: rework slave_id allocation
+    - i2c: i2c-stm32f7: fix 10-bits check in slave free id search loop
+    - mfd: intel-lpss: Add default I2C device properties for Gemini Lake
+    - SUNRPC: Fix svcauth_gss_proxy_init()
+    - SUNRPC: Fix backchannel latency metrics
+    - powerpc/security: Fix debugfs data leak on 32-bit
+    - powerpc/pseries: Enable support for ibm,drc-info property
+    - powerpc/kasan: Fix boot failure with RELOCATABLE && FSL_BOOKE
+    - powerpc/archrandom: fix arch_get_random_seed_int()
+    - tipc: reduce sensitive to retransmit failures
+    - tipc: update mon's self addr when node addr generated
+    - tipc: fix potential memory leak in __tipc_sendmsg()
+    - tipc: fix wrong socket reference counter after tipc_sk_timeout() returns
+    - tipc: fix wrong timeout input for tipc_wait_for_cond()
+    - net/mlx5e: Fix free peer_flow when refcount is 0
+    - phy: lantiq: vrx200-pcie: fix error return code in
+      ltq_vrx200_pcie_phy_power_on()
+    - net: phy: broadcom: Fix RGMII delays configuration for BCM54210E
+    - phy: ti: gmii-sel: fix mac tx internal delay for rgmii-rxid
+    - mt76: mt76u: fix endpoint definition order
+    - mt7601u: fix bbp version check in mt7601u_wait_bbp_ready
+    - ice: fix stack leakage
+    - s390/pkey: fix memory leak within _copy_apqns_from_user()
+    - nfsd: depend on CRYPTO_MD5 for legacy client tracking
+    - crypto: amcc - restore CRYPTO_AES dependency
+    - crypto: sun4i-ss - fix big endian issues
+    - perf map: No need to adjust the long name of modules
+    - leds: tlc591xx: update the maximum brightness
+    - soc/tegra: pmc: Fix crashes for hierarchical interrupts
+    - soc: qcom: llcc: Name regmaps to avoid collisions
+    - soc: renesas: Add missing check for non-zero product register address
+    - soc: aspeed: Fix snoop_file_poll()'s return type
+    - watchdog: sprd: Fix the incorrect pointer getting from driver data
+    - ipmi: Fix memory leak in __ipmi_bmc_register
+    - sched/core: Further clarify sched_class::set_next_task()
+    - gpiolib: No need to call gpiochip_remove_pin_ranges() twice
+    - rtw88: fix beaconing mode rsvd_page memory violation issue
+    - rtw88: fix error handling when setup efuse info
+    - drm/panfrost: Add missing check for pfdev->regulator
+    - drm: panel-lvds: Potential Oops in probe error handling
+    - drm/amdgpu: remove excess function parameter description
+    - hwrng: omap3-rom - Fix missing clock by probing with device tree
+    - dpaa2-eth: Fix minor bug in ethtool stats reporting
+    - drm/rockchip: Round up _before_ giving to the clock framework
+    - software node: Get reference to parent swnode in get_parent op
+    - PCI: mobiveil: Fix csr_read()/write() build issue
+    - drm: rcar_lvds: Fix color mismatches on R-Car H2 ES2.0 and later
+    - net: netsec: Correct dma sync for XDP_TX frames
+    - ACPI: platform: Unregister stale platform devices
+    - pwm: sun4i: Fix incorrect calculation of duty_cycle/period
+    - regulator: bd70528: Add MODULE_ALIAS to allow module auto loading
+    - drm/amdgpu/vi: silence an uninitialized variable warning
+    - power: supply: bd70528: Add MODULE_ALIAS to allow module auto loading
+    - firmware: imx: Remove call to devm_of_platform_populate
+    - libbpf: Don't use kernel-side u32 type in xsk.c
+    - rcu: Fix uninitialized variable in nocb_gp_wait()
+    - dpaa_eth: perform DMA unmapping before read
+    - dpaa_eth: avoid timestamp read on error paths
+    - scsi: ufs: delete redundant function ufshcd_def_desc_sizes()
+    - net: openvswitch: don't unlock mutex when changing the user_features fails
+    - hv_netvsc: flag software created hash value
+    - rt2800: remove errornous duplicate condition
+    - net: neigh: use long type to store jiffies delta
+    - net: axienet: Fix error return code in axienet_probe()
+    - selftests: gen_kselftest_tar.sh: Do not clobber kselftest/
+    - rtc: bd70528: fix module alias to autoload module
+    - packet: fix data-race in fanout_flow_is_huge()
+    - i2c: stm32f7: report dma error during probe
+    - kselftests: cgroup: Avoid the reuse of fd after it is deallocated
+    - firmware: arm_scmi: Fix doorbell ring logic for !CONFIG_64BIT
+    - mmc: sdio: fix wl1251 vendor id
+    - mmc: core: fix wl1251 sdio quirks
+    - tee: optee: Fix dynamic shm pool allocations
+    - tee: optee: fix device enumeration error handling
+    - workqueue: Add RCU annotation for pwq list walk
+    - SUNRPC: Fix another issue with MIC buffer space
+    - sched/cpufreq: Move the cfs_rq_util_change() call to cpufreq_update_util()
+    - mt76: mt76u: rely on usb_interface instead of usb_dev
+    - dma-direct: don't check swiotlb=force in dma_direct_map_resource
+    - afs: Remove set but not used variables 'before', 'after'
+    - dmaengine: ti: edma: fix missed failure handling
+    - drm/radeon: fix bad DMA from INTERRUPT_CNTL2
+    - xdp: Fix cleanup on map free for devmap_hash map type
+    - platform/chrome: wilco_ec: fix use after free issue
+    - block: fix memleak of bio integrity data
+    - s390/qeth: fix dangling IO buffers after halt/clear
+    - net-sysfs: Call dev_hold always in netdev_queue_add_kobject
+    - gpio: aspeed: avoid return type warning
+    - phy/rockchip: inno-hdmi: round clock rate down to closest 1000 Hz
+    - optee: Fix multi page dynamic shm pool alloc
+    - Linux 5.4.15
+
+  * Focal update: v5.4.14 upstream stable release (LP: #1861090)
+    - ARM: dts: meson8: fix the size of the PMU registers
+    - clk: qcom: gcc-sdm845: Add missing flag to votable GDSCs
+    - soc: amlogic: meson-ee-pwrc: propagate PD provider registration errors
+    - soc: amlogic: meson-ee-pwrc: propagate errors from pm_genpd_init()
+    - dt-bindings: reset: meson8b: fix duplicate reset IDs
+    - ARM: dts: imx6q-dhcom: fix rtc compatible
+    - arm64: dts: ls1028a: fix endian setting for dcfg
+    - arm64: dts: imx8mm: Change SDMA1 ahb clock for imx8mm
+    - bus: ti-sysc: Fix iterating over clocks
+    - clk: Don't try to enable critical clocks if prepare failed
+    - Revert "gpio: thunderx: Switch to GPIOLIB_IRQCHIP"
+    - arm64: dts: imx8mq-librem5-devkit: use correct interrupt for the
+      magnetometer
+    - ASoC: msm8916-wcd-digital: Reset RX interpolation path after use
+    - ASoC: stm32: sai: fix possible circular locking
+    - ASoC: stm32: dfsdm: fix 16 bits record
+    - ASoC: msm8916-wcd-analog: Fix selected events for MIC BIAS External1
+    - ASoC: msm8916-wcd-analog: Fix MIC BIAS Internal1
+    - ARM: OMAP2+: Fix ti_sysc_find_one_clockdomain to check for to_clk_hw_omap
+    - ARM: dts: imx7ulp: fix reg of cpu node
+    - ARM: dts: imx6q-dhcom: Fix SGTL5000 VDDIO regulator connection
+    - ASoC: Intel: bytcht_es8316: Fix Irbis NB41 netbook quirk
+    - ALSA: dice: fix fallback from protocol extension into limited functionality
+    - ALSA: seq: Fix racy access for queue timer in proc read
+    - ALSA: firewire-tascam: fix corruption due to spin lock without restoration
+      in SoftIRQ context
+    - ALSA: usb-audio: fix sync-ep altsetting sanity check
+    - arm64: dts: allwinner: a64: olinuxino: Fix SDIO supply regulator
+    - arm64: dts: allwinner: a64: olinuxino: Fix eMMC supply regulator
+    - arm64: dts: agilex/stratix10: fix pmu interrupt numbers
+    - Fix built-in early-load Intel microcode alignment
+    - clk: sunxi-ng: r40: Allow setting parent rate for external clock outputs
+    - block: fix an integer overflow in logical block size
+    - fuse: fix fuse_send_readpages() in the syncronous read case
+    - io_uring: only allow submit from owning task
+    - cpuidle: teo: Fix intervals[] array indexing bug
+    - ARM: dts: am571x-idk: Fix gpios property to have the correct gpio number
+    - ARM: davinci: select CONFIG_RESET_CONTROLLER
+    - perf: Correctly handle failed perf_get_aux_event()
+    - iio: adc: ad7124: Fix DT channel configuration
+    - iio: imu: st_lsm6dsx: Fix selection of ST_LSM6DS3_ID
+    - iio: light: vcnl4000: Fix scale for vcnl4040
+    - iio: chemical: pms7003: fix unmet triggered buffer dependency
+    - iio: buffer: align the size of scan bytes to size of the largest element
+    - USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx
+    - USB: serial: option: Add support for Quectel RM500Q
+    - USB: serial: opticon: fix control-message timeouts
+    - USB: serial: option: add support for Quectel RM500Q in QDL mode
+    - USB: serial: suppress driver bind attributes
+    - USB: serial: ch341: handle unbound port at reset_resume
+    - USB: serial: io_edgeport: handle unbound ports on URB completion
+    - USB: serial: io_edgeport: add missing active-port sanity check
+    - USB: serial: keyspan: handle unbound ports
+    - USB: serial: quatech2: handle unbound ports
+    - staging: comedi: ni_routes: fix null dereference in ni_find_route_source()
+    - staging: comedi: ni_routes: allow partial routing information
+    - scsi: fnic: fix invalid stack access
+    - scsi: mptfusion: Fix double fetch bug in ioctl
+    - ptrace: reintroduce usage of subjective credentials in ptrace_has_cap()
+    - mtd: rawnand: gpmi: Fix suspend/resume problem
+    - mtd: rawnand: gpmi: Restore nfc timing setup after suspend/resume
+    - usb: core: hub: Improved device recognition on remote wakeup
+    - cpu/SMT: Fix x86 link error without CONFIG_SYSFS
+    - x86/resctrl: Fix an imbalance in domain_remove_cpu()
+    - x86/CPU/AMD: Ensure clearing of SME/SEV features is maintained
+    - locking/rwsem: Fix kernel crash when spinning on RWSEM_OWNER_UNKNOWN
+    - perf/x86/intel/uncore: Fix missing marker for
+      snr_uncore_imc_freerunning_events
+    - x86/efistub: Disable paging at mixed mode entry
+    - s390/zcrypt: Fix CCA cipher key gen with clear key value function
+    - scsi: storvsc: Correctly set number of hardware queues for IDE disk
+    - mtd: spi-nor: Fix selection of 4-byte addressing opcodes on Spansion
+    - drm/i915: Add missing include file <linux/math64.h>
+    - x86/resctrl: Fix potential memory leak
+    - efi/earlycon: Fix write-combine mapping on x86
+    - s390/setup: Fix secure ipl message
+    - clk: samsung: exynos5420: Keep top G3D clocks enabled
+    - perf hists: Fix variable name's inconsistency in hists__for_each() macro
+    - locking/lockdep: Fix buffer overrun problem in stack_trace[]
+    - perf report: Fix incorrectly added dimensions as switch perf data file
+    - mm/shmem.c: thp, shmem: fix conflict of above-47bit hint address and PMD
+      alignment
+    - mm/huge_memory.c: thp: fix conflict of above-47bit hint address and PMD
+      alignment
+    - mm: memcg/slab: fix percpu slab vmstats flushing
+    - mm: memcg/slab: call flush_memcg_workqueue() only if memcg workqueue is
+      valid
+    - mm, debug_pagealloc: don't rely on static keys too early
+    - btrfs: rework arguments of btrfs_unlink_subvol
+    - btrfs: fix invalid removal of root ref
+    - btrfs: do not delete mismatched root refs
+    - btrfs: relocation: fix reloc_root lifespan and access
+    - btrfs: fix memory leak in qgroup accounting
+    - btrfs: check rw_devices, not num_devices for balance
+    - Btrfs: always copy scrub arguments back to user space
+    - mm/memory_hotplug: don't free usage map when removing a re-added early
+      section
+    - mm/page-writeback.c: avoid potential division by zero in wb_min_max_ratio()
+    - mm: khugepaged: add trace status description for SCAN_PAGE_HAS_PRIVATE
+    - ARM: dts: imx6qdl-sabresd: Remove incorrect power supply assignment
+    - ARM: dts: imx6sx-sdb: Remove incorrect power supply assignment
+    - ARM: dts: imx6sl-evk: Remove incorrect power supply assignment
+    - ARM: dts: imx6sll-evk: Remove incorrect power supply assignment
+    - ARM: dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL
+    - ARM: dts: imx7: Fix Toradex Colibri iMX7S 256MB NAND flash support
+    - net: stmmac: 16KB buffer must be 16 byte aligned
+    - net: stmmac: Enable 16KB buffer size
+    - reset: Fix {of,devm}_reset_control_array_get kerneldoc return types
+    - tipc: fix potential hanging after b/rcast changing
+    - tipc: fix retrans failure due to wrong destination
+    - net: fix kernel-doc warning in <linux/netdevice.h>
+    - block: Fix the type of 'sts' in bsg_queue_rq()
+    - drm/amd/display: Reorder detect_edp_sink_caps before link settings read.
+    - bpf: Fix incorrect verifier simulation of ARSH under ALU32
+    - bpf: Sockmap/tls, during free we may call tcp_bpf_unhash() in loop
+    - bpf: Sockmap, ensure sock lock held during tear down
+    - bpf: Sockmap/tls, push write_space updates through ulp updates
+    - bpf: Sockmap, skmsg helper overestimates push, pull, and pop bounds
+    - bpf: Sockmap/tls, msg_push_data may leave end mark in place
+    - bpf: Sockmap/tls, tls_sw can create a plaintext buf > encrypt buf
+    - bpf: Sockmap/tls, skmsg can have wrapped skmsg that needs extra chaining
+    - bpf: Sockmap/tls, fix pop data with SK_DROP return code
+    - i2c: tegra: Fix suspending in active runtime PM state
+    - i2c: tegra: Properly disable runtime PM on driver's probe error
+    - cfg80211: fix deadlocks in autodisconnect work
+    - cfg80211: fix memory leak in nl80211_probe_mesh_link
+    - cfg80211: fix memory leak in cfg80211_cqm_rssi_update
+    - cfg80211: fix page refcount issue in A-MSDU decap
+    - bpf/sockmap: Read psock ingress_msg before sk_receive_queue
+    - i2c: iop3xx: Fix memory leak in probe error path
+    - netfilter: fix a use-after-free in mtype_destroy()
+    - netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
+    - netfilter: nat: fix ICMP header corruption on ICMP errors
+    - netfilter: nft_tunnel: fix null-attribute check
+    - netfilter: nft_tunnel: ERSPAN_VERSION must not be null
+    - netfilter: nf_tables: remove WARN and add NLA_STRING upper limits
+    - netfilter: nf_tables: store transaction list locally while requesting module
+    - netfilter: nf_tables: fix flowtable list del corruption
+    - NFC: pn533: fix bulk-message timeout
+    - net: bpf: Don't leak time wait and request sockets
+    - bpftool: Fix printing incorrect pointer in btf_dump_ptr
+    - batman-adv: Fix DAT candidate selection on little endian systems
+    - macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()
+    - hv_netvsc: Fix memory leak when removing rndis device
+    - net: avoid updating qdisc_xmit_lock_key in netdev_update_lockdep_key()
+    - net: dsa: tag_qca: fix doubled Tx statistics
+    - net: hns3: pad the short frame before sending to the hardware
+    - net: hns: fix soft lockup when there is not enough memory
+    - net: phy: dp83867: Set FORCE_LINK_GOOD to default after reset
+    - net/sched: act_ife: initalize ife->metalist earlier
+    - net: usb: lan78xx: limit size of local TSO packets
+    - net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info
+    - ptp: free ptp device pin descriptors properly
+    - r8152: add missing endpoint sanity check
+    - tcp: fix marked lost packets not being retransmitted
+    - bnxt_en: Fix NTUPLE firmware command failures.
+    - bnxt_en: Fix ipv6 RFS filter matching logic.
+    - bnxt_en: Do not treat DSN (Digital Serial Number) read failure as fatal.
+    - net: ethernet: ave: Avoid lockdep warning
+    - net: systemport: Fixed queue mapping in internal ring map
+    - net: dsa: sja1105: Don't error out on disabled ports with no phy-mode
+    - net: dsa: tag_gswip: fix typo in tagger name
+    - net: sched: act_ctinfo: fix memory leak
+    - net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec
+    - i40e: prevent memory leak in i40e_setup_macvlans
+    - drm/amdgpu: allow direct upload save restore list for raven2
+    - sh_eth: check sh_eth_cpu_data::dual_port when dumping registers
+    - mlxsw: spectrum: Do not modify cloned SKBs during xmit
+    - mlxsw: spectrum: Wipe xstats.backlog of down ports
+    - mlxsw: spectrum_qdisc: Include MC TCs in Qdisc counters
+    - net: stmmac: selftests: Make it work in Synopsys AXS101 boards
+    - net: stmmac: selftests: Mark as fail when received VLAN ID != expected
+    - selftests: mlxsw: qos_mc_aware: Fix mausezahn invocation
+    - net: stmmac: selftests: Update status when disabling RSS
+    - net: stmmac: tc: Do not setup flower filtering if RSS is enabled
+    - devlink: Wait longer before warning about unset port type
+    - xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk
+    - dt-bindings: Add missing 'properties' keyword enclosing 'snps,tso'
+    - tcp: refine rule to allow EPOLLOUT generation under mem pressure
+    - irqchip: Place CONFIG_SIFIVE_PLIC into the menu
+    - arm64: dts: qcom: msm8998: Disable coresight by default
+    - cw1200: Fix a signedness bug in cw1200_load_firmware()
+    - arm64: dts: meson: axg: fix audio fifo reg size
+    - arm64: dts: meson: g12: fix audio fifo reg size
+    - arm64: dts: meson-gxl-s905x-khadas-vim: fix gpio-keys-polled node
+    - arm64: dts: renesas: r8a77970: Fix PWM3
+    - arm64: dts: marvell: Add AP806-dual missing CPU clocks
+    - cfg80211: check for set_wiphy_params
+    - tick/sched: Annotate lockless access to last_jiffies_update
+    - arm64: dts: marvell: Fix CP110 NAND controller node multi-line comment
+      alignment
+    - arm64: dts: renesas: r8a774a1: Remove audio port node
+    - arm64: dts: imx8mm-evk: Assigned clocks for audio plls
+    - arm64: dts: qcom: sdm845-cheza: delete zap-shader
+    - ARM: dts: imx6ul-kontron-n6310-s: Disable the snvs-poweroff driver
+    - arm64: dts: allwinner: a64: Re-add PMU node
+    - ARM: dts: dra7: fix cpsw mdio fck clock
+    - arm64: dts: juno: Fix UART frequency
+    - ARM: dts: Fix sgx sysconfig register for omap4
+    - Revert "arm64: dts: juno: add dma-ranges property"
+    - mtd: devices: fix mchp23k256 read and write
+    - mtd: cfi_cmdset_0002: only check errors when ready in cfi_check_err_status()
+    - mtd: cfi_cmdset_0002: fix delayed error detection on HyperFlash
+    - um: Don't trace irqflags during shutdown
+    - um: virtio_uml: Disallow modular build
+    - reiserfs: fix handling of -EOPNOTSUPP in reiserfs_for_each_xattr
+    - scsi: esas2r: unlock on error in esas2r_nvram_read_direct()
+    - scsi: qla4xxx: fix double free bug
+    - scsi: bnx2i: fix potential use after free
+    - scsi: target: core: Fix a pr_debug() argument
+    - scsi: lpfc: fix: Coverity: lpfc_get_scsi_buf_s3(): Null pointer dereferences
+    - scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI
+    - scsi: qla2xxx: fix rports not being mark as lost in sync fabric scan
+    - scsi: core: scsi_trace: Use get_unaligned_be*()
+    - scsi: lpfc: Fix list corruption detected in lpfc_put_sgl_per_hdwq
+    - scsi: lpfc: Fix hdwq sgl locks and irq handling
+    - scsi: lpfc: Fix a kernel warning triggered by lpfc_get_sgl_per_hdwq()
+    - rtw88: fix potential read outside array boundary
+    - perf probe: Fix wrong address verification
+    - perf script: Allow --time with --reltime
+    - clk: sprd: Use IS_ERR() to validate the return value of
+      syscon_regmap_lookup_by_phandle()
+    - clk: imx7ulp: Correct system clock source option #7
+    - clk: imx7ulp: Correct DDR clock mux options
+    - regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
+    - hwmon: (pmbus/ibm-cffps) Switch LEDs to blocking brightness call
+    - hwmon: (pmbus/ibm-cffps) Fix LED blink behavior
+    - perf script: Fix --reltime with --time
+    - scsi: lpfc: use hdwq assigned cpu for allocation
+    - Linux 5.4.14
+
+  * Focal update: v5.4.13 upstream stable release (LP: #1861085)
+    - HID: hidraw, uhid: Always report EPOLLOUT
+    - rtc: mt6397: fix alarm register overwrite
+    - phy: mapphone-mdm6600: Fix uninitialized status value regression
+    - RDMA/bnxt_re: Avoid freeing MR resources if dereg fails
+    - RDMA/bnxt_re: Fix Send Work Entry state check while polling completions
+    - IB/hfi1: Don't cancel unused work item
+    - mtd: rawnand: stm32_fmc2: avoid to lock the CPU bus
+    - i2c: bcm2835: Store pointer to bus clock
+    - ASoC: SOF: imx8: fix memory allocation failure check on priv->pd_dev
+    - ASoC: soc-core: Set dpcm_playback / dpcm_capture
+    - ASoC: stm32: spdifrx: fix inconsistent lock state
+    - ASoC: stm32: spdifrx: fix race condition in irq handler
+    - ASoC: stm32: spdifrx: fix input pin state management
+    - pinctrl: lochnagar: select GPIOLIB
+    - netfilter: nft_flow_offload: fix underflow in flowtable reference counter
+    - ASoC: SOF: imx8: Fix dsp_box offset
+    - mtd: onenand: omap2: Pass correct flags for prep_dma_memcpy
+    - gpio: zynq: Fix for bug in zynq_gpio_restore_context API
+    - pinctrl: meson: Fix wrong shift value when get drive-strength
+    - selftests: loopback.sh: skip this test if the driver does not support
+    - iommu/vt-d: Unlink device if failed to add to group
+    - iommu: Remove device link to group on failure
+    - bpf: cgroup: prevent out-of-order release of cgroup bpf
+    - fs: move guard_bio_eod() after bio_set_op_attrs
+    - scsi: mpt3sas: Fix double free in attach error handling
+    - gpio: Fix error message on out-of-range GPIO in lookup table
+    - PM / devfreq: tegra: Add COMMON_CLK dependency
+    - PCI: amlogic: Fix probed clock names
+    - drm/tegra: Fix ordering of cleanup code
+    - hsr: add hsr root debugfs directory
+    - hsr: rename debugfs file when interface name is changed
+    - hsr: reset network header when supervision frame is created
+    - s390/qeth: fix qdio teardown after early init error
+    - s390/qeth: fix false reporting of VNIC CHAR config failure
+    - s390/qeth: Fix vnicc_is_in_use if rx_bcast not set
+    - s390/qeth: vnicc Fix init to default
+    - s390/qeth: fix initialization on old HW
+    - cifs: Adjust indentation in smb2_open_file
+    - scsi: smartpqi: Update attribute name to `driver_version`
+    - MAINTAINERS: Append missed file to the database
+    - ath9k: use iowrite32 over __raw_writel
+    - can: j1939: fix address claim code example
+    - dt-bindings: reset: Fix brcmstb-reset example
+    - reset: brcmstb: Remove resource checks
+    - afs: Fix missing cell comparison in afs_test_super()
+    - perf vendor events s390: Remove name from L1D_RO_EXCL_WRITES description
+    - syscalls/x86: Wire up COMPAT_SYSCALL_DEFINE0
+    - syscalls/x86: Use COMPAT_SYSCALL_DEFINE0 for IA32 (rt_)sigreturn
+    - syscalls/x86: Use the correct function type for sys_ni_syscall
+    - syscalls/x86: Fix function types in COND_SYSCALL
+    - hsr: fix slab-out-of-bounds Read in hsr_debugfs_rename()
+    - btrfs: simplify inode locking for RWF_NOWAIT
+    - netfilter: nf_tables_offload: release flow_rule on error from commit path
+    - netfilter: nft_meta: use 64-bit time arithmetic
+    - ASoC: dt-bindings: mt8183: add missing update
+    - ASoC: simple_card_utils.h: Add missing include
+    - ASoC: fsl_esai: Add spin lock to protect reset, stop and start
+    - ASoC: core: Fix compile warning with CONFIG_DEBUG_FS=n
+    - ASoC: rsnd: fix DALIGN register for SSIU
+    - RDMA/hns: Prevent undefined behavior in hns_roce_set_user_sq_size()
+    - RDMA/hns: remove a redundant le16_to_cpu
+    - RDMA/hns: Modify return value of restrack functions
+    - RDMA/counter: Prevent QP counter manual binding in auto mode
+    - RDMA/siw: Fix port number endianness in a debug message
+    - RDMA/hns: Fix build error again
+    - RDMA/hns: Release qp resources when failed to destroy qp
+    - xprtrdma: Add unique trace points for posting Local Invalidate WRs
+    - xprtrdma: Connection becomes unstable after a reconnect
+    - xprtrdma: Fix MR list handling
+    - xprtrdma: Close window between waking RPC senders and posting Receives
+    - RDMA/hns: Fix to support 64K page for srq
+    - RDMA/hns: Bugfix for qpc/cqc timer configuration
+    - rdma: Remove nes ABI header
+    - RDMA/mlx5: Return proper error value
+    - RDMA/srpt: Report the SCSI residual to the initiator
+    - uaccess: Add non-pagefault user-space write function
+    - bpf: Make use of probe_user_write in probe write helper
+    - bpf: skmsg, fix potential psock NULL pointer dereference
+    - bpf: Support pre-2.25-binutils objcopy for vmlinux BTF
+    - libbpf: Fix Makefile' libbpf symbol mismatch diagnostic
+    - afs: Fix use-after-loss-of-ref
+    - afs: Fix afs_lookup() to not clobber the version on a new dentry
+    - keys: Fix request_key() cache
+    - scsi: enclosure: Fix stale device oops with hot replug
+    - scsi: sd: Clear sdkp->protection_type if disk is reformatted without PI
+    - platform/mellanox: fix potential deadlock in the tmfifo driver
+    - platform/x86: asus-wmi: Fix keyboard brightness cannot be set to 0
+    - platform/x86: GPD pocket fan: Use default values when wrong modparams are
+      given
+    - asm-generic/nds32: don't redefine cacheflush primitives
+    - Documentation/ABI: Fix documentation inconsistency for mlxreg-io sysfs
+      interfaces
+    - Documentation/ABI: Add missed attribute for mlxreg-io sysfs interfaces
+    - xprtrdma: Fix create_qp crash on device unload
+    - xprtrdma: Fix completion wait during device removal
+    - xprtrdma: Fix oops in Receive handler after device removal
+    - dm: add dm-clone to the documentation index
+    - scsi: ufs: Give an unique ID to each ufs-bsg
+    - crypto: cavium/nitrox - fix firmware assignment to AE cores
+    - crypto: hisilicon - select NEED_SG_DMA_LENGTH in qm Kconfig
+    - crypto: arm64/aes-neonbs - add return value of skcipher_walk_done() in
+      __xts_crypt()
+    - crypto: virtio - implement missing support for output IVs
+    - crypto: algif_skcipher - Use chunksize instead of blocksize
+    - crypto: geode-aes - convert to skcipher API and make thread-safe
+    - NFSv2: Fix a typo in encode_sattr()
+    - nfsd: Fix cld_net->cn_tfm initialization
+    - nfsd: v4 support requires CRYPTO_SHA256
+    - NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()
+    - NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn
+    - iio: imu: st_lsm6dsx: fix gyro gain definitions for LSM9DS1
+    - iio: imu: adis16480: assign bias value only if operation succeeded
+    - mei: fix modalias documentation
+    - clk: meson: axg-audio: fix regmap last register
+    - clk: samsung: exynos5420: Preserve CPU clocks configuration during
+      suspend/resume
+    - clk: Fix memory leak in clk_unregister()
+    - dmaengine: dw: platform: Mark 'hclk' clock optional
+    - clk: imx: pll14xx: Fix quick switch of S/K parameter
+    - rsi: fix potential null dereference in rsi_probe()
+    - affs: fix a memory leak in affs_remount
+    - pinctl: ti: iodelay: fix error checking on pinctrl_count_index_with_args
+      call
+    - pinctrl: sh-pfc: Fix PINMUX_IPSR_PHYS() to set GPSR
+    - pinctrl: sh-pfc: Do not use platform_get_irq() to count interrupts
+    - pinctrl: lewisburg: Update pin list according to v1.1v6
+    - Revert "drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper."
+    - drm/amdgpu: cleanup creating BOs at fixed location (v2)
+    - drm/amdgpu/discovery: reserve discovery data at the top of VRAM
+    - scsi: sd: enable compat ioctls for sed-opal
+    - arm64: dts: apq8096-db820c: Increase load on l21 for SDCARD
+    - af_unix: add compat_ioctl support
+    - compat_ioctl: handle SIOCOUTQNSD
+    - PCI: aardvark: Use LTSSM state to build link training flag
+    - PCI: aardvark: Fix PCI_EXP_RTCTL register configuration
+    - PCI: dwc: Fix find_next_bit() usage
+    - PCI: Fix missing bridge dma_ranges resource list cleanup
+    - PCI/PM: Clear PCIe PME Status even for legacy power management
+    - tools: PCI: Fix fd leakage
+    - PCI/PTM: Remove spurious "d" from granularity message
+    - powerpc/powernv: Disable native PCIe port management
+    - MIPS: PCI: remember nasid changed by set interrupt affinity
+    - MIPS: Loongson: Fix return value of loongson_hwmon_init
+    - MIPS: SGI-IP27: Fix crash, when CPUs are disabled via nr_cpus parameter
+    - tty: serial: imx: use the sg count from dma_map_sg
+    - tty: serial: pch_uart: correct usage of dma_unmap_sg
+    - ARM: 8943/1: Fix topology setup in case of CPU hotplug for CONFIG_SCHED_MC
+    - media: ov6650: Fix incorrect use of JPEG colorspace
+    - media: ov6650: Fix some format attributes not under control
+    - media: ov6650: Fix .get_fmt() V4L2_SUBDEV_FORMAT_TRY support
+    - media: ov6650: Fix default format not applied on device probe
+    - media: rcar-vin: Fix incorrect return statement in rvin_try_format()
+    - media: hantro: h264: Fix the frame_num wraparound case
+    - media: v4l: cadence: Fix how unsued lanes are handled in 'csi2rx_start()'
+    - media: exynos4-is: Fix recursive locking in isp_video_release()
+    - media: coda: fix deadlock between decoder picture run and start command
+    - media: cedrus: Use correct H264 8x8 scaling list
+    - media: hantro: Do not reorder H264 scaling list
+    - media: aspeed-video: Fix memory leaks in aspeed_video_probe
+    - media: hantro: Set H264 FIELDPIC_FLAG_E flag correctly
+    - iommu/mediatek: Correct the flush_iotlb_all callback
+    - iommu/mediatek: Add a new tlb_lock for tlb_flush
+    - memory: mtk-smi: Add PM suspend and resume ops
+    - Revert "ubifs: Fix memory leak bug in alloc_ubifs_info() error path"
+    - ubifs: Fixed missed le64_to_cpu() in journal
+    - ubifs: do_kill_orphans: Fix a memory leak bug
+    - spi: sprd: Fix the incorrect SPI register
+    - mtd: spi-nor: fix silent truncation in spi_nor_read()
+    - mtd: spi-nor: fix silent truncation in spi_nor_read_raw()
+    - spi: pxa2xx: Set controller->max_transfer_size in dma mode
+    - spi: atmel: fix handling of cs_change set on non-last xfer
+    - spi: rspi: Use platform_get_irq_byname_optional() for optional irqs
+    - spi: lpspi: fix memory leak in fsl_lpspi_probe
+    - iwlwifi: mvm: consider ieee80211 station max amsdu value
+    - rtlwifi: Remove unnecessary NULL check in rtl_regd_init
+    - iwlwifi: mvm: fix support for single antenna diversity
+    - sch_cake: Add missing NLA policy entry TCA_CAKE_SPLIT_GSO
+    - f2fs: fix potential overflow
+    - NFSD fixing possible null pointer derefering in copy offload
+    - rtc: msm6242: Fix reading of 10-hour digit
+    - rtc: brcmstb-waketimer: add missed clk_disable_unprepare
+    - rtc: bd70528: Add MODULE ALIAS to autoload module
+    - gpio: mpc8xxx: Add platform device to gpiochip->parent
+    - scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
+    - scsi: target/iblock: Fix protection error with blocks greater than 512B
+    - selftests: firmware: Fix it to do root uid check and skip
+    - rseq/selftests: Turn off timeout setting
+    - riscv: export flush_icache_all to modules
+    - mips: cacheinfo: report shared CPU map
+    - mips: Fix gettimeofday() in the vdso library
+    - tomoyo: Suppress RCU warning at list_for_each_entry_rcu().
+    - MIPS: Prevent link failure with kcov instrumentation
+    - drm/arm/mali: make malidp_mw_connector_helper_funcs static
+    - rxrpc: Unlock new call in rxrpc_new_incoming_call() rather than the caller
+    - rxrpc: Don't take call->user_mutex in rxrpc_new_incoming_call()
+    - rxrpc: Fix missing security check on incoming calls
+    - dmaengine: k3dma: Avoid null pointer traversal
+    - s390/qeth: lock the card while changing its hsuid
+    - ioat: ioat_alloc_ring() failure handling.
+    - drm/amdgpu: enable gfxoff for raven1 refresh
+    - media: intel-ipu3: Align struct ipu3_uapi_awb_fr_config_s to 32 bytes
+    - kbuild/deb-pkg: annotate libelf-dev dependency as :native
+    - hexagon: parenthesize registers in asm predicates
+    - hexagon: work around compiler crash
+    - ocfs2: call journal flush to mark journal as empty after journal recovery
+      when mount
+    - Linux 5.4.13
+    - [Config] updateconfigs following v5.4.13 stable update
+
+  * [hns3-0111]sync mainline kernel 5.5rc6 hns3 patchset into ubuntu HWE kernel
+    branch Edit (LP: #1859261)
+    - net: hns3: make array tick_array static, makes object smaller
+    - net: hns3: add support for setting VF link status on the host
+    - net: hns3: add support for spoof check setting
+    - net: hns3: add support for setting VF trust
+    - net: hns3: add support for configuring bandwidth of VF on the host
+    - net: hns3: add support for configuring VF MAC from the host
+    - net: hns3: support tx-scatter-gather-fraglist feature
+    - net: hns3: remove struct hns3_nic_ring_data in hns3_enet module
+    - net: hns3: optimized MAC address in management table.
+    - net: hns3: minor optimization for barrier in IO path
+    - net: hns3: introduce ring_to_netdev() in enet module
+    - net: hns3: make struct hns3_enet_ring cacheline aligned
+    - net: hns3: minor cleanup for hns3_handle_rx_bd()
+    - net: hns3: do not allocate linear data for fraglist skb
+    - net: hns3: dump some debug information when reset fail
+    - net: hns3: cleanup some magic numbers
+    - net: hns3: cleanup some coding style issues
+    - net: hns3: cleanup a format-truncation warning
+    - net: hns3: optimize local variable initialization
+    - net: hns3: add or modify some comments
+    - net: hns3: cleanup some print format warning
+    - net: hns3: cleanup byte order issues when printed
+    - net: hns3: remove unused macros
+    - net: hns3: fix for TX queue not restarted problem
+    - net: hns3: fix a use after free problem in hns3_nic_maybe_stop_tx()
+    - net: hns3: fix VF ID issue for setting VF VLAN
+
+  * [Dell Vostro 5490] proposed linux-oem-osp1 suspend resume fails
+    (LP: #1860642)
+    - Revert "ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary names."
+    - Revert "ASoC: Intel: acpi-match: split CNL tables in three"
+    - Revert "ASoC: SOF: Intel: hda: use fallback for firmware name"
+
+  * shiftfs: prevent lower dentries from going negative during unlink
+    (LP: #1860041)
+    - SAUCE: shiftfs: prevent lower dentries from going negative during unlink
+
+  * [SRU][B/OEM-B/OEM-OSP1/D/E/Unstable] UBUNTU: SAUCE: Use native backlight on
+    Lenovo E41-25/45 (LP: #1859561)
+    - SAUCE: ACPI: video: Use native backlight on Lenovo E41-25/45
+
+  * Dell AIO can't adjust brightness (LP: #1858761)
+    - SAUCE: platform/x86: dell-uart-backlight: add retry for get scalar status
+
+  * [20.04 FEAT] qeth: Support for HiperSockets Multi-Write (LP: #1853292)
+    - s390/qdio: implement IQD Multi-Write
+    - s390/qeth: use IQD Multi-Write
+
+  * debian/tests/corosync: gfs2_jadd fails with ENOTTY for i386 package on amd64
+    kernel (LP: #1859827)
+    - gfs2: add compat_ioctl support
+
+  * Reduce s2idle power consumption when ethernet cable is connected on e1000e
+    (LP: #1859126)
+    - e1000e: Add support for S0ix
+
+  * USB key cannot be detected by hotplug on Sunix USB Type-A 3.1 Gen 2 card
+    [1b21:2142]  (LP: #1858988)
+    - SAUCE: PCI: Avoid ASMedia XHCI USB PME# from D0 defect
+
+  * [scsi-1130]scsi: scsi_transport_sas: Fix memory leak when removing devices
+    (LP: #1854550)
+    - scsi: scsi_transport_sas: Fix memory leak when removing devices
+
+  * Focal update: v5.4.12 upstream stable release (LP: #1860131)
+    - chardev: Avoid potential use-after-free in 'chrdev_open()'
+    - i2c: fix bus recovery stop mode timing
+    - powercap: intel_rapl: add NULL pointer check to rapl_mmio_cpu_online()
+    - usb: chipidea: host: Disable port power only if previously enabled
+    - ALSA: usb-audio: Apply the sample rate quirk for Bose Companion 5
+    - ALSA: hda/realtek - Add new codec supported for ALCS1200A
+    - ALSA: hda/realtek - Set EAPD control to default for ALC222
+    - ALSA: hda/realtek - Add quirk for the bass speaker on Lenovo Yoga X1 7th gen
+    - tpm: Revert "tpm_tis: reserve chip for duration of tpm_tis_core_init"
+    - tpm: Revert "tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for
+      interrupts"
+    - tpm: Revert "tpm_tis_core: Turn on the TPM before probing IRQ's"
+    - tpm: Handle negative priv->response_len in tpm_common_read()
+    - rtc: sun6i: Add support for RTC clocks on R40
+    - kernel/trace: Fix do not unregister tracepoints when register
+      sched_migrate_task fail
+    - tracing: Have stack tracer compile when MCOUNT_INSN_SIZE is not defined
+    - tracing: Change offset type to s32 in preempt/irq tracepoints
+    - HID: Fix slab-out-of-bounds read in hid_field_extract
+    - HID: uhid: Fix returning EPOLLOUT from uhid_char_poll
+    - HID: hidraw: Fix returning EPOLLOUT from hidraw_poll
+    - HID: hid-input: clear unmapped usages
+    - Input: add safety guards to input_set_keycode()
+    - Input: input_event - fix struct padding on sparc64
+    - drm/i915: Add Wa_1408615072 and Wa_1407596294 to icl,ehl
+    - Revert "drm/amdgpu: Set no-retry as default."
+    - drm/sun4i: tcon: Set RGB DCLK min. divider based on hardware model
+    - drm/fb-helper: Round up bits_per_pixel if possible
+    - drm/dp_mst: correct the shifting in DP_REMOTE_I2C_READ
+    - drm/i915: Add Wa_1407352427:icl,ehl
+    - drm/i915/gt: Mark up virtual engine uabi_instance
+    - IB/hfi1: Adjust flow PSN with the correct resync_psn
+    - can: kvaser_usb: fix interface sanity check
+    - can: gs_usb: gs_usb_probe(): use descriptors of current altsetting
+    - can: tcan4x5x: tcan4x5x_can_probe(): get the device out of standby before
+      register access
+    - can: mscan: mscan_rx_poll(): fix rx path lockup when returning from polling
+      to irq mode
+    - can: can_dropped_invalid_skb(): ensure an initialized headroom in outgoing
+      CAN sk_buffs
+    - gpiolib: acpi: Turn dmi_system_id table into a generic quirk table
+    - gpiolib: acpi: Add honor_wakeup module-option + quirk mechanism
+    - pstore/ram: Regularize prz label allocation lifetime
+    - staging: vt6656: set usb_set_intfdata on driver fail.
+    - staging: vt6656: Fix non zero logical return of, usb_control_msg
+    - usb: cdns3: should not use the same dev_id for shared interrupt handler
+    - usb: ohci-da8xx: ensure error return on variable error is set
+    - USB-PD tcpm: bad warning+size, PPS adapters
+    - USB: serial: option: add ZLP support for 0x1bc7/0x9010
+    - usb: musb: fix idling for suspend after disconnect interrupt
+    - usb: musb: Disable pullup at init
+    - usb: musb: dma: Correct parameter passed to IRQ handler
+    - staging: comedi: adv_pci1710: fix AI channels 16-31 for PCI-1713
+    - staging: vt6656: correct return of vnt_init_registers.
+    - staging: vt6656: limit reg output to block size
+    - staging: rtl8188eu: Add device code for TP-Link TL-WN727N v5.21
+    - serdev: Don't claim unsupported ACPI serial devices
+    - iommu/vt-d: Fix adding non-PCI devices to Intel IOMMU
+    - tty: link tty and port before configuring it as console
+    - tty: always relink the port
+    - arm64: Move __ARCH_WANT_SYS_CLONE3 definition to uapi headers
+    - arm64: Implement copy_thread_tls
+    - arm: Implement copy_thread_tls
+    - parisc: Implement copy_thread_tls
+    - riscv: Implement copy_thread_tls
+    - xtensa: Implement copy_thread_tls
+    - clone3: ensure copy_thread_tls is implemented
+    - um: Implement copy_thread_tls
+    - staging: vt6656: remove bool from vnt_radio_power_on ret
+    - mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf
+    - rpmsg: char: release allocated memory
+    - scsi: bfa: release allocated memory in case of error
+    - rtl8xxxu: prevent leaking urb
+    - HID: hiddev: fix mess in hiddev_open()
+    - USB: Fix: Don't skip endpoint descriptors with maxpacket=0
+    - phy: cpcap-usb: Fix error path when no host driver is loaded
+    - phy: cpcap-usb: Fix flakey host idling and enumerating of devices
+    - netfilter: arp_tables: init netns pointer in xt_tgchk_param struct
+    - netfilter: conntrack: dccp, sctp: handle null timeout argument
+    - netfilter: ipset: avoid null deref when IPSET_ATTR_LINENO is present
+    - drm/i915/gen9: Clear residual context state on context switch
+    - Linux 5.4.12
+
+  * Focal update: v5.4.11 upstream stable release (LP: #1860130)
+    - USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
+    - bpf: Fix passing modified ctx to ld/abs/ind instruction
+    - ASoC: rt5682: fix i2c arbitration lost issue
+    - spi: pxa2xx: Add support for Intel Jasper Lake
+    - regulator: fix use after free issue
+    - ASoC: max98090: fix possible race conditions
+    - spi: fsl: Fix GPIO descriptor support
+    - gpio: Handle counting of Freescale chipselects
+    - spi: fsl: Handle the single hardwired chipselect case
+    - locking/spinlock/debug: Fix various data races
+    - netfilter: ctnetlink: netns exit must wait for callbacks
+    - netfilter: nf_tables_offload: Check for the NETDEV_UNREGISTER event
+    - libtraceevent: Fix lib installation with O=
+    - libtraceevent: Copy pkg-config file to output folder when using O=
+    - regulator: core: fix regulator_register() error paths to properly release
+      rdev
+    - x86/efi: Update e820 with reserved EFI boot services data to fix kexec
+      breakage
+    - ASoC: Intel: bytcr_rt5640: Update quirk for Teclast X89
+    - selftests: netfilter: use randomized netns names
+    - efi/gop: Return EFI_NOT_FOUND if there are no usable GOPs
+    - efi/gop: Return EFI_SUCCESS if a usable GOP was found
+    - efi/gop: Fix memory leak in __gop_query32/64()
+    - efi/earlycon: Remap entire framebuffer after page initialization
+    - ARM: dts: imx6ul: imx6ul-14x14-evk.dtsi: Fix SPI NOR probing
+    - ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
+    - netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
+    - netfilter: nft_set_rbtree: bogus lookup/get on consecutive elements in named
+      sets
+    - netfilter: nf_tables: validate NFT_SET_ELEM_INTERVAL_END
+    - netfilter: nf_tables: validate NFT_DATA_VALUE after nft_data_init()
+    - netfilter: nf_tables: skip module reference count bump on object updates
+    - netfilter: nf_tables_offload: return EOPNOTSUPP if rule specifies no actions
+    - ARM: dts: BCM5301X: Fix MDIO node address/size cells
+    - selftests/ftrace: Fix to check the existence of set_ftrace_filter
+    - selftests/ftrace: Fix ftrace test cases to check unsupported
+    - selftests/ftrace: Do not to use absolute debugfs path
+    - selftests/ftrace: Fix multiple kprobe testcase
+    - selftests: safesetid: Move link library to LDLIBS
+    - selftests: safesetid: Check the return value of setuid/setgid
+    - selftests: safesetid: Fix Makefile to set correct test program
+    - ARM: exynos_defconfig: Restore debugfs support
+    - ARM: dts: Cygnus: Fix MDIO node address/size cells
+    - spi: spi-cavium-thunderx: Add missing pci_release_regions()
+    - reset: Do not register resource data for missing resets
+    - ASoC: topology: Check return value for snd_soc_add_dai_link()
+    - ASoC: topology: Check return value for soc_tplg_pcm_create()
+    - ASoC: SOF: loader: snd_sof_fw_parse_ext_data log warning on unknown header
+    - ASoC: SOF: Intel: split cht and byt debug window sizes
+    - ARM: dts: am335x-sancloud-bbe: fix phy mode
+    - ARM: omap2plus_defconfig: Add back DEBUG_FS
+    - ARM: dts: bcm283x: Fix critical trip point
+    - arm64: dts: ls1028a: fix typo in TMU calibration data
+    - bpf, riscv: Limit to 33 tail calls
+    - bpf, mips: Limit to 33 tail calls
+    - bpftool: Don't crash on missing jited insns or ksyms
+    - perf metricgroup: Fix printing event names of metric group with multiple
+      events
+    - perf header: Fix false warning when there are no duplicate cache entries
+    - spi: spi-ti-qspi: Fix a bug when accessing non default CS
+    - ARM: dts: am437x-gp/epos-evm: fix panel compatible
+    - kselftest/runner: Print new line in print of timeout log
+    - kselftest: Support old perl versions
+    - samples: bpf: Replace symbol compare of trace_event
+    - samples: bpf: fix syscall_tp due to unused syscall
+    - arm64: dts: ls1028a: fix reboot node
+    - ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS
+    - pinctrl: aspeed-g6: Fix LPC/eSPI mux configuration
+    - bus: ti-sysc: Fix missing reset delay handling
+    - clk: walk orphan list on clock provider registration
+    - mac80211: fix TID field in monitor mode transmit
+    - cfg80211: fix double-free after changing network namespace
+    - pinctrl: pinmux: fix a possible null pointer in pinmux_can_be_used_for_gpio
+    - powerpc: Ensure that swiotlb buffer is allocated from low memory
+    - btrfs: Fix error messages in qgroup_rescan_init
+    - Btrfs: fix cloning range with a hole when using the NO_HOLES feature
+    - powerpc/vcpu: Assume dedicated processors as non-preempt
+    - powerpc/spinlocks: Include correct header for static key
+    - btrfs: handle error in btrfs_cache_block_group
+    - Btrfs: fix hole extent items with a zero size after range cloning
+    - ocxl: Fix potential memory leak on context creation
+    - bpf: Clear skb->tstamp in bpf_redirect when necessary
+    - habanalabs: rate limit error msg on waiting for CS
+    - habanalabs: remove variable 'val' set but not used
+    - bnx2x: Do not handle requests from VFs after parity
+    - bnx2x: Fix logic to get total no. of PFs per engine
+    - cxgb4: Fix kernel panic while accessing sge_info
+    - net: usb: lan78xx: Fix error message format specifier
+    - parisc: fix compilation when KEXEC=n and KEXEC_FILE=y
+    - parisc: add missing __init annotation
+    - rfkill: Fix incorrect check to avoid NULL pointer dereference
+    - ASoC: wm8962: fix lambda value
+    - regulator: rn5t618: fix module aliases
+    - spi: nxp-fspi: Ensure width is respected in spi-mem operations
+    - clk: at91: fix possible deadlock
+    - staging: axis-fifo: add unspecified HAS_IOMEM dependency
+    - iommu/iova: Init the struct iova to fix the possible memleak
+    - kconfig: don't crash on NULL expressions in expr_eq()
+    - scripts: package: mkdebian: add missing rsync dependency
+    - perf/x86: Fix potential out-of-bounds access
+    - perf/x86/intel: Fix PT PMI handling
+    - sched/psi: Fix sampling error and rare div0 crashes with cgroups and high
+      uptime
+    - psi: Fix a division error in psi poll()
+    - usb: typec: fusb302: Fix an undefined reference to 'extcon_get_state'
+    - block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT
+    - fs: avoid softlockups in s_inodes iterators
+    - fs: call fsnotify_sb_delete after evict_inodes
+    - perf/smmuv3: Remove the leftover put_cpu() in error path
+    - iommu/dma: Relax locking in iommu_dma_prepare_msi()
+    - io_uring: don't wait when under-submitting
+    - clk: Move clk_core_reparent_orphans() under CONFIG_OF
+    - net: stmmac: selftests: Needs to check the number of Multicast regs
+    - net: stmmac: Determine earlier the size of RX buffer
+    - net: stmmac: Do not accept invalid MTU values
+    - net: stmmac: xgmac: Clear previous RX buffer size
+    - net: stmmac: RX buffer size must be 16 byte aligned
+    - net: stmmac: Always arm TX Timer at end of transmission start
+    - s390/purgatory: do not build purgatory with kcov, kasan and friends
+    - drm/exynos: gsc: add missed component_del
+    - tpm/tpm_ftpm_tee: add shutdown call back
+    - xsk: Add rcu_read_lock around the XSK wakeup
+    - net/mlx5e: Fix concurrency issues between config flow and XSK
+    - net/i40e: Fix concurrency issues between config flow and XSK
+    - net/ixgbe: Fix concurrency issues between config flow and XSK
+    - platform/x86: pcengines-apuv2: fix simswap GPIO assignment
+    - arm64: cpu_errata: Add Hisilicon TSV110 to spectre-v2 safe list
+    - block: Fix a lockdep complaint triggered by request queue flushing
+    - s390/dasd/cio: Interpret ccw_device_get_mdc return value correctly
+    - s390/dasd: fix memleak in path handling error case
+    - block: fix memleak when __blk_rq_map_user_iov() is failed
+    - parisc: Fix compiler warnings in debug_core.c
+    - sbitmap: only queue kyber's wait callback if not already active
+    - s390/qeth: handle error due to unsupported transport mode
+    - s390/qeth: fix promiscuous mode after reset
+    - s390/qeth: don't return -ENOTSUPP to userspace
+    - llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
+    - hv_netvsc: Fix unwanted rx_table reset
+    - selftests: pmtu: fix init mtu value in description
+    - tracing: Do not create directories if lockdown is in affect
+    - gtp: fix bad unlock balance in gtp_encap_enable_socket
+    - macvlan: do not assume mac_header is set in macvlan_broadcast()
+    - net: dsa: mv88e6xxx: Preserve priority when setting CPU port.
+    - net: freescale: fec: Fix ethtool -d runtime PM
+    - net: stmmac: dwmac-sun8i: Allow all RGMII modes
+    - net: stmmac: dwmac-sunxi: Allow all RGMII modes
+    - net: stmmac: Fixed link does not need MDIO Bus
+    - net: usb: lan78xx: fix possible skb leak
+    - pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
+    - sch_cake: avoid possible divide by zero in cake_enqueue()
+    - sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
+    - tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
+    - vxlan: fix tos value before xmit
+    - mlxsw: spectrum_qdisc: Ignore grafting of invisible FIFO
+    - net: sch_prio: When ungrafting, replace with FIFO
+    - vlan: fix memory leak in vlan_dev_set_egress_priority
+    - vlan: vlan_changelink() should propagate errors
+    - macb: Don't unregister clks unconditionally
+    - net/mlx5: Move devlink registration before interfaces load
+    - net: dsa: mv88e6xxx: force cmode write on 6141/6341
+    - net/mlx5e: Always print health reporter message to dmesg
+    - net/mlx5: DR, No need for atomic refcount for internal SW steering resources
+    - net/mlx5e: Fix hairpin RSS table size
+    - net/mlx5: DR, Init lists that are used in rule's member
+    - usb: dwc3: gadget: Fix request complete check
+    - USB: core: fix check for duplicate endpoints
+    - USB: serial: option: add Telit ME910G1 0x110a composition
+    - usb: missing parentheses in USE_NEW_SCHEME
+    - Linux 5.4.11
+
+  * Focal update: v5.4.10 upstream stable release (LP: #1860127)
+    - powerpc/pmem: Fix kernel crash due to wrong range value usage in
+      flush_dcache_range
+    - Linux 5.4.10
+
+  * Focal update: v5.4.9 upstream stable release (LP: #1860125)
+    - drm/mcde: dsi: Fix invalid pointer dereference if panel cannot be found
+    - nvme_fc: add module to ops template to allow module references
+    - nvme-fc: fix double-free scenarios on hw queues
+    - drm/amdgpu: add check before enabling/disabling broadcast mode
+    - drm/amdgpu: add header line for power profile on Arcturus
+    - drm/amdgpu: add cache flush workaround to gfx8 emit_fence
+    - drm/amd/display: Map DSC resources 1-to-1 if numbers of OPPs and DSCs are
+      equal
+    - drm/amd/display: Fixed kernel panic when booting with DP-to-HDMI dongle
+    - drm/amd/display: Change the delay time before enabling FEC
+    - drm/amd/display: Reset steer fifo before unblanking the stream
+    - drm/amd/display: update dispclk and dppclk vco frequency
+    - nvme/pci: Fix write and poll queue types
+    - nvme/pci: Fix read queue count
+    - iio: st_accel: Fix unused variable warning
+    - iio: adc: max9611: Fix too short conversion time delay
+    - PM / devfreq: Fix devfreq_notifier_call returning errno
+    - PM / devfreq: Set scaling_max_freq to max on OPP notifier error
+    - PM / devfreq: Don't fail devfreq_dev_release if not in list
+    - afs: Fix afs_find_server lookups for ipv4 peers
+    - afs: Fix SELinux setting security label on /afs
+    - RDMA/cma: add missed unregister_pernet_subsys in init failure
+    - rxe: correctly calculate iCRC for unaligned payloads
+    - scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
+    - scsi: qla2xxx: Use explicit LOGO in target mode
+    - scsi: qla2xxx: Drop superfluous INIT_WORK of del_work
+    - scsi: qla2xxx: Don't call qlt_async_event twice
+    - scsi: qla2xxx: Fix PLOGI payload and ELS IOCB dump length
+    - scsi: qla2xxx: Configure local loop for N2N target
+    - scsi: qla2xxx: Send Notify ACK after N2N PLOGI
+    - scsi: qla2xxx: Don't defer relogin unconditonally
+    - scsi: qla2xxx: Ignore PORT UPDATE after N2N PLOGI
+    - scsi: iscsi: qla4xxx: fix double free in probe
+    - scsi: libsas: stop discovering if oob mode is disconnected
+    - scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
+    - staging/wlan-ng: add CRC32 dependency in Kconfig
+    - drm/nouveau: Move the declaration of struct nouveau_conn_atom up a bit
+    - drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware
+    - drm/nouveau/kms/nv50-: fix panel scaling
+    - usb: gadget: fix wrong endpoint desc
+    - net: make socket read/write_iter() honor IOCB_NOWAIT
+    - afs: Fix mountpoint parsing
+    - afs: Fix creation calls in the dynamic root to fail with EOPNOTSUPP
+    - raid5: need to set STRIPE_HANDLE for batch head
+    - md: raid1: check rdev before reference in raid1_sync_request func
+    - s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
+    - s390/cpum_sf: Avoid SBD overflow condition in irq handler
+    - RDMA/counter: Prevent auto-binding a QP which are not tracked with res
+    - IB/mlx4: Follow mirror sequence of device add during device removal
+    - IB/mlx5: Fix steering rule of drop and count
+    - xen-blkback: prevent premature module unload
+    - xen/balloon: fix ballooned page accounting without hotplug enabled
+    - ALSA: hda/realtek - Add Bass Speaker and fixed dac for bass speaker
+    - ALSA: hda/realtek - Enable the bass speaker of ASUS UX431FLC
+    - ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
+    - tcp: fix data-race in tcp_recvmsg()
+    - shmem: pin the file in shmem_fault() if mmap_sem is dropped
+    - taskstats: fix data-race
+    - ALSA: hda - Downgrade error message for single-cmd fallback
+    - netfilter: nft_tproxy: Fix port selector on Big Endian
+    - block: add bio_truncate to fix guard_bio_eod
+    - mm: drop mmap_sem before calling balance_dirty_pages() in write fault
+    - ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
+    - ALSA: usb-audio: fix set_format altsetting sanity check
+    - ALSA: hda - Apply sync-write workaround to old Intel platforms, too
+    - ALSA: hda/realtek - Add headset Mic no shutup for ALC283
+    - drm/sun4i: hdmi: Remove duplicate cleanup calls
+    - drm/amdgpu/smu: add metrics table lock
+    - drm/amdgpu/smu: add metrics table lock for arcturus (v2)
+    - drm/amdgpu/smu: add metrics table lock for navi (v2)
+    - drm/amdgpu/smu: add metrics table lock for vega20 (v2)
+    - MIPS: BPF: Disable MIPS32 eBPF JIT
+    - MIPS: BPF: eBPF JIT: check for MIPS ISA compliance in Kconfig
+    - MIPS: Avoid VDSO ABI breakage due to global register variable
+    - media: pulse8-cec: fix lost cec_transmit_attempt_done() call
+    - media: cec: CEC 2.0-only bcast messages were ignored
+    - media: cec: avoid decrementing transmit_queue_sz if it is 0
+    - media: cec: check 'transmit_in_progress', not 'transmitting'
+    - mm/memory_hotplug: shrink zones when offlining memory
+    - mm/zsmalloc.c: fix the migrated zspage statistics.
+    - memcg: account security cred as well to kmemcg
+    - mm: move_pages: return valid node id in status if the page is already on the
+      target node
+    - mm/oom: fix pgtables units mismatch in Killed process message
+    - ocfs2: fix the crash due to call ocfs2_get_dlm_debug once less
+    - pstore/ram: Write new dumps to start of recycled zones
+    - pstore/ram: Fix error-path memory leak in persistent_ram_new() callers
+    - gcc-plugins: make it possible to disable CONFIG_GCC_PLUGINS again
+    - locks: print unsigned ino in /proc/locks
+    - selftests/seccomp: Zero out seccomp_notif
+    - seccomp: Check that seccomp_notif is zeroed out by the user
+    - samples/seccomp: Zero out members based on seccomp_notif_sizes
+    - selftests/seccomp: Catch garbage on SECCOMP_IOCTL_NOTIF_RECV
+    - dmaengine: Fix access to uninitialized dma_slave_caps
+    - dmaengine: dma-jz4780: Also break descriptor chains on JZ4725B
+    - Btrfs: fix infinite loop during nocow writeback due to race
+    - compat_ioctl: block: handle Persistent Reservations
+    - compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
+    - compat_ioctl: block: handle BLKGETZONESZ/BLKGETNRZONES
+    - bpf: Fix precision tracking for unbounded scalars
+    - ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
+    - ata: ahci_brcm: Fix AHCI resources management
+    - ata: ahci_brcm: Add missing clock management during recovery
+    - ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
+    - libata: Fix retrieving of active qcs
+    - gpio: xtensa: fix driver build
+    - gpiolib: fix up emulated open drain outputs
+    - clocksource: riscv: add notrace to riscv_sched_clock
+    - riscv: ftrace: correct the condition logic in function graph tracer
+    - rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30
+    - tracing: Fix lock inversion in trace_event_enable_tgid_record()
+    - tracing: Avoid memory leak in process_system_preds()
+    - tracing: Have the histogram compare functions convert to u64 first
+    - tracing: Fix endianness bug in histogram trigger
+    - samples/trace_printk: Wait for IRQ work to finish
+    - io_uring: use current task creds instead of allocating a new one
+    - mm/gup: fix memory leak in __gup_benchmark_ioctl
+    - apparmor: fix aa_xattrs_match() may sleep while holding a RCU lock
+    - dmaengine: virt-dma: Fix access after free in vchan_complete()
+    - gen_initramfs_list.sh: fix 'bad variable name' error
+    - ALSA: cs4236: fix error return comparison of an unsigned integer
+    - ALSA: pcm: Yet another missing check of non-cached buffer type
+    - ALSA: firewire-motu: Correct a typo in the clock proc string
+    - scsi: lpfc: Fix rpi release when deleting vport
+    - exit: panic before exit_mm() on global init exit
+    - ftrace: Avoid potential division by zero in function profiler
+    - spi: spi-fsl-dspi: Fix 16-bit word order in 32-bit XSPI mode
+    - drm/msm: include linux/sched/task.h
+    - PM / devfreq: Check NULL governor in available_governors_show
+    - sunrpc: fix crash when cache_head become valid before update
+    - arm64: dts: qcom: msm8998-clamshell: Remove retention idle state
+    - nfsd4: fix up replay_matches_cache()
+    - powerpc: Chunk calls to flush_dcache_range in arch_*_memory
+    - HID: i2c-hid: Reset ALPS touchpads on resume
+    - net/sched: annotate lockless accesses to qdisc->empty
+    - kernel/module.c: wakeup processes in module_wq on module unload
+    - ACPI: sysfs: Change ACPI_MASKABLE_GPE_MAX to 0x100
+    - perf callchain: Fix segfault in thread__resolve_callchain_sample()
+    - iommu/vt-d: Remove incorrect PSI capability check
+    - of: overlay: add_changeset_property() memory leak
+    - cifs: Fix potential softlockups while refreshing DFS cache
+    - firmware: arm_scmi: Avoid double free in error flow
+    - xfs: don't check for AG deadlock for realtime files in bunmapi
+    - platform/x86: pmc_atom: Add Siemens CONNECT X300 to critclk_systems DMI
+      table
+    - netfilter: nf_queue: enqueue skbs with NULL dst
+    - net, sysctl: Fix compiler warning when only cBPF is present
+    - watchdog: tqmx86_wdt: Fix build error
+    - regulator: axp20x: Fix axp20x_set_ramp_delay
+    - regulator: bd70528: Remove .set_ramp_delay for bd70528_ldo_ops
+    - spi: uniphier: Fix FIFO threshold
+    - regulator: axp20x: Fix AXP22x ELDO2 regulator enable bitmask
+    - powerpc/mm: Mark get_slice_psize() & slice_addr_is_low() as notrace
+    - Bluetooth: btusb: fix PM leak in error case of setup
+    - Bluetooth: delete a stray unlock
+    - Bluetooth: Fix memory leak in hci_connect_le_scan
+    - arm64: dts: meson-gxl-s905x-khadas-vim: fix uart_A bluetooth node
+    - arm64: dts: meson-gxm-khadas-vim2: fix uart_A bluetooth node
+    - media: flexcop-usb: ensure -EIO is returned on error condition
+    - regulator: ab8500: Remove AB8505 USB regulator
+    - media: usb: fix memory leak in af9005_identify_state
+    - dt-bindings: clock: renesas: rcar-usb2-clock-sel: Fix typo in example
+    - arm64: dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed
+      warning
+    - phy: renesas: rcar-gen3-usb2: Use platform_get_irq_optional() for optional
+      irq
+    - tty: serial: msm_serial: Fix lockup for sysrq and oops
+    - cifs: Fix lookup of root ses in DFS referral cache
+    - fs: cifs: Fix atime update check vs mtime
+    - fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
+    - ath9k_htc: Modify byte order for an error message
+    - ath9k_htc: Discard undersized packets
+    - drm/i915/execlists: Fix annotation for decoupling virtual request
+    - xfs: periodically yield scrub threads to the scheduler
+    - net: add annotations on hh->hh_len lockless accesses
+    - ubifs: ubifs_tnc_start_commit: Fix OOB in layout_in_gaps
+    - btrfs: get rid of unique workqueue helper functions
+    - Btrfs: only associate the locked page with one async_chunk struct
+    - s390/smp: fix physical to logical CPU map for SMT
+    - mm/sparse.c: mark populate_section_memmap as __meminit
+    - xen/blkback: Avoid unmapping unmapped grant pages
+    - lib/ubsan: don't serialize UBSAN report
+    - efi: Don't attempt to map RCI2 config table if it doesn't exist
+    - perf/x86/intel/bts: Fix the use of page_private()
+    - net: annotate lockless accesses to sk->sk_pacing_shift
+    - hsr: avoid debugfs warning message when module is remove
+    - hsr: fix error handling routine in hsr_dev_finalize()
+    - hsr: fix a race condition in node list insertion and deletion
+    - mm/hugetlb: defer freeing of huge pages if in non-task context
+    - Linux 5.4.9
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Update package name in getabis repo list
+    - [Packaging] Fix ubuntu-regression-suite python dependency for hwe kernel
+    - [Config] Fix typo in annotations file
+    - [Packaging] move linux-doc and linux-libc-dev stubs to debian.master
+    - update dkms package versions
+
+  * Miscellaneous upstream changes
+    - ASoC: SOF: Intel: fix HDA codec driver probe with multiple controllers
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Thu, 30 Jan 2020 16:34:17 +0100
+
+linux-5.4 (5.4.0-12.15) focal; urgency=medium
+
+  * No change, rebuild to use new binutils
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Tue, 21 Jan 2020 14:43:14 +0100
+
+linux-5.4 (5.4.0-11.14) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Update ubuntu-regression-suite dependency to python2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 09 Jan 2020 09:35:50 -0600
+
+linux-5.4 (5.4.0-10.13) focal; urgency=medium
+
+  * focal/linux-5.4: 5.4.0-10.13 -proposed tracker (LP: #1858880)
+
+  * PAN is broken for execute-only user mappings on ARMv8 (LP: #1858815)
+    - arm64: Revert support for execute-only user mappings
+
+  * linux build and autopkg tests need to use python2 instead of python
+    (LP: #1858487)
+    - [Packaging] Remove python-dev build dependency
+
+  * Support ath10k hardware rfkill (LP: #1858166)
+    - ath10k: add support for hardware rfkill
+
+  * [SRU][B/OEM-B/OEM-OSP1/D/E/F] Add LG I2C touchscreen multitouch support
+    (LP: #1857541)
+    - SAUCE: HID: multitouch: Add LG MELF0410 I2C touchscreen support
+
+  * usb-audio: the mic can't record any sound after resume on Dell Dock WD19
+    (LP: #1857496)
+    - ALSA: usb-audio: set the interface format after resume on Dell WD19
+
+  * alsa/sof: load different firmware on different platforms (LP: #1857409)
+    - ASoC: SOF: Intel: hda: use fallback for firmware name
+    - ASoC: Intel: acpi-match: split CNL tables in three
+    - ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary names.
+
+  * Make vfio-pci built-in or xhci_hcd optional (LP: #1770845)
+    - [Config]: built-in VFIO_PCI for amd64
+
+  * multi-zone raid0 corruption (LP: #1850540)
+    - SAUCE: md/raid0: Link to wiki with guidance on multi-zone RAID0 layout
+      migration
+
+  * [hpre-1017]sync mainline kernel 5.4rc3 hpre patchset into ubuntu HWE kernel
+    branch (LP: #1850117) // [acc-1130]sync mainline kernel 5.5rc1 acc  patchset
+    into ubuntu HWE kernel branch (LP: #1854549)
+    - [Config] Enable HISI crypto drivers and update previous module
+
+  * [hpre-1017]sync mainline kernel 5.4rc3 hpre patchset into ubuntu HWE kernel
+    branch (LP: #1850117)
+    - crypto: hisilicon - add HiSilicon HPRE accelerator
+    - crypto: hisilicon - add SRIOV support for HPRE
+    - crypto: hisilicon - Add debugfs for HPRE
+    - MAINTAINERS: Add maintainer for HiSilicon HPRE driver
+    - Documentation: Add debugfs doc for hisi_hpre
+
+  * [acc-1130]sync mainline kernel 5.5rc1 acc  patchset into ubuntu HWE kernel
+    branch (LP: #1854549)
+    - crypto: hisilicon - allow compile-testing on x86
+    - crypto: hisilicon - merge sgl support to hisi_qm module
+    - crypto: hisilicon - add sgl_sge_nr module param for zip
+    - crypto: hisilicon - fix large sgl memory allocation problem when disable
+      smmu
+    - crypto: hisilicon - misc fix about sgl
+    - crypto: hisilicon - select NEED_SG_DMA_LENGTH in qm Kconfig
+    - crypto: hisilicon: Fix misuse of GENMASK macro
+    - crypto: hisilicon - tiny fix about QM/ZIP error callback print
+    - crypto: hisilicon - Fix using plain integer as NULL pointer
+    - crypto: hisilicon - fix param should be static when not external.
+    - crypto: hisilicon - fix endianness verification problem of QM
+    - crypto: hisilicon - use sgl API to get sgl dma addr and len
+    - crypto: hisilicon - fix to return sub-optimal device when best device has no
+      qps
+    - crypto: hisilicon - replace #ifdef with IS_ENABLED for CONFIG_NUMA
+    - crypto: hisilicon - add vfs_num module param for zip
+    - crypto: hisilicon - no need to check return value of debugfs_create
+      functions
+    - crypto: hisilicon - add HiSilicon SEC V2 driver
+    - crypto: hisilicon - add SRIOV for HiSilicon SEC
+    - crypto: hisilicon - add DebugFS for HiSilicon SEC
+    - crypto: hisilicon - fix a NULL vs IS_ERR() bug in sec_create_qp_ctx()
+    - hwrng: hisi - add HiSilicon TRNG driver support
+    - MAINTAINERS: Add maintainer for HiSilicon TRNG V2 driver
+    - MAINTAINERS: Add maintainer for HiSilicon SEC V2 driver
+    - Documentation: add DebugFS doc for HiSilicon SEC
+
+  * [sas-1130]enable sas DFX Function for 1620 soc (LP: #1854548)
+    - scsi: hisi_sas: Don't create debugfs dump folder twice
+    - scsi: hisi_sas: Set the BIST init value before enabling BIST
+    - scsi: hisi_sas: Add timestamp for a debugfs dump
+    - scsi: hisi_sas: Add debugfs file structure for CQ
+    - scsi: hisi_sas: Add debugfs file structure for DQ
+    - scsi: hisi_sas: Add debugfs file structure for registers
+    - scsi: hisi_sas: Add debugfs file structure for port
+    - scsi: hisi_sas: Add debugfs file structure for IOST
+    - scsi: hisi_sas: Add debugfs file structure for ITCT
+    - scsi: hisi_sas: Add debugfs file structure for IOST cache
+    - scsi: hisi_sas: Add debugfs file structure for ITCT cache
+    - scsi: hisi_sas: Allocate memory for multiple dumps of debugfs
+    - scsi: hisi_sas: Add module parameter for debugfs dump count
+    - scsi: hisi_sas: Add ability to have multiple debugfs dumps
+    - scsi: hisi_sas: Record the phy down event in debugfs
+    - scsi: hisi_sas: Relocate call to hisi_sas_debugfs_exit()
+
+  * scsi: hisi_sas: Return directly if init hardware failed (LP: #1855958)
+    - scsi: hisi_sas: Return directly if init hardware failed
+
+  * [sas-1126]scsi: hisi_sas: use wait_for_completion_timeout() when clearing
+    ITCT (LP: #1853999)
+    - scsi: hisi_sas: use wait_for_completion_timeout() when clearing ITCT
+
+  * Focal update: v5.4.8 upstream stable release (LP: #1858429)
+    - Revert "MIPS: futex: Restore \n after sync instructions"
+    - Revert "MIPS: futex: Emit Loongson3 sync workarounds within asm"
+    - scsi: lpfc: Fix spinlock_irq issues in lpfc_els_flush_cmd()
+    - scsi: lpfc: Fix discovery failures when target device connectivity bounces
+    - scsi: mpt3sas: Fix clear pending bit in ioctl status
+    - scsi: lpfc: Fix locking on mailbox command completion
+    - scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA
+    - gpio: mxc: Only get the second IRQ when there is more than one IRQ
+    - scsi: lpfc: Fix list corruption in lpfc_sli_get_iocbq
+    - Input: atmel_mxt_ts - disable IRQ across suspend
+    - f2fs: fix to update time in lazytime mode
+    - powerpc/papr_scm: Fix an off-by-one check in papr_scm_meta_{get, set}
+    - tools/power/x86/intel-speed-select: Remove warning for unused result
+    - platform/x86: peaq-wmi: switch to using polled mode of input devices
+    - iommu: rockchip: Free domain on .domain_free
+    - iommu/tegra-smmu: Fix page tables in > 4 GiB memory
+    - dmaengine: xilinx_dma: Clear desc_pendingcount in xilinx_dma_reset
+    - scsi: target: compare full CHAP_A Algorithm strings
+    - scsi: lpfc: Fix hardlockup in lpfc_abort_handler
+    - scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices
+    - scsi: csiostor: Don't enable IRQs too early
+    - scsi: hisi_sas: Replace in_softirq() check in hisi_sas_task_exec()
+    - scsi: hisi_sas: Delete the debugfs folder of hisi_sas when the probe fails
+    - powerpc/pseries: Mark accumulate_stolen_time() as notrace
+    - powerpc/pseries: Don't fail hash page table insert for bolted mapping
+    - Input: st1232 - do not reset the chip too early
+    - selftests/powerpc: Fixup clobbers for TM tests
+    - powerpc/tools: Don't quote $objdump in scripts
+    - dma-debug: add a schedule point in debug_dma_dump_mappings()
+    - dma-mapping: Add vmap checks to dma_map_single()
+    - dma-mapping: fix handling of dma-ranges for reserved memory (again)
+    - dmaengine: fsl-qdma: Handle invalid qdma-queue0 IRQ
+    - leds: lm3692x: Handle failure to probe the regulator
+    - leds: an30259a: add a check for devm_regmap_init_i2c
+    - leds: trigger: netdev: fix handling on interface rename
+    - clocksource/drivers/asm9260: Add a check for of_clk_get
+    - clocksource/drivers/timer-of: Use unique device name instead of timer
+    - dtc: Use pkg-config to locate libyaml
+    - selftests/powerpc: Skip tm-signal-sigreturn-nt if TM not available
+    - powerpc/security/book3s64: Report L1TF status in sysfs
+    - powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning
+    - ext4: update direct I/O read lock pattern for IOCB_NOWAIT
+    - ext4: iomap that extends beyond EOF should be marked dirty
+    - jbd2: Fix statistics for the number of logged blocks
+    - scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and WRITE(6)
+    - scsi: lpfc: Fix unexpected error messages during RSCN handling
+    - scsi: lpfc: Fix duplicate unreg_rpi error in port offline flow
+    - f2fs: fix to update dir's i_pino during cross_rename
+    - clk: qcom: smd: Add missing pnoc clock
+    - clk: qcom: Allow constant ratio freq tables for rcg
+    - clk: clk-gpio: propagate rate change to parent
+    - irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary
+    - irqchip: ingenic: Error out if IRQ domain creation failed
+    - dma-direct: check for overflows on 32 bit DMA addresses
+    - fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
+    - iommu/arm-smmu-v3: Don't display an error when IRQ lines are missing
+    - i2c: stm32f7: fix & reorder remove & probe error handling
+    - iomap: fix return value of iomap_dio_bio_actor on 32bit systems
+    - Input: ili210x - handle errors from input_mt_init_slots()
+    - scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer dereferences
+    - scsi: zorro_esp: Limit DMA transfers to 65536 bytes (except on Fastlane)
+    - PCI: rpaphp: Fix up pointer to first drc-info entry
+    - scsi: ufs: fix potential bug which ends in system hang
+    - powerpc/pseries/cmm: Implement release() function for sysfs device
+    - PCI: rpaphp: Don't rely on firmware feature to imply drc-info support
+    - PCI: rpaphp: Annotate and correctly byte swap DRC properties
+    - PCI: rpaphp: Correctly match ibm, my-drc-index to drc-name when using drc-
+      info
+    - powerpc/security: Fix wrong message when RFI Flush is disable
+    - powerpc/eeh: differentiate duplicate detection message
+    - powerpc/book3s/mm: Update Oops message to print the correct translation in
+      use
+    - scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE
+    - clk: pxa: fix one of the pxa RTC clocks
+    - bcache: at least try to shrink 1 node in bch_mca_scan()
+    - HID: quirks: Add quirk for HP MSU1465 PIXART OEM mouse
+    - dt-bindings: Improve validation build error handling
+    - HID: logitech-hidpp: Silence intermittent get_battery_capacity errors
+    - ARM: 8937/1: spectre-v2: remove Brahma-B53 from hardening
+    - libnvdimm/btt: fix variable 'rc' set but not used
+    - HID: Improve Windows Precision Touchpad detection.
+    - HID: rmi: Check that the RMI_STARTED bit is set before unregistering the RMI
+      transport device
+    - watchdog: imx7ulp: Fix reboot hang
+    - watchdog: prevent deferral of watchdogd wakeup on RT
+    - watchdog: Fix the race between the release of watchdog_core_data and cdev
+    - powerpc/fixmap: Use __fix_to_virt() instead of fix_to_virt()
+    - scsi: pm80xx: Fix for SATA device discovery
+    - scsi: ufs: Fix error handing during hibern8 enter
+    - scsi: scsi_debug: num_tgts must be >= 0
+    - scsi: NCR5380: Add disconnect_mask module parameter
+    - scsi: target: core: Release SPC-2 reservations when closing a session
+    - scsi: ufs: Fix up auto hibern8 enablement
+    - scsi: iscsi: Don't send data to unbound connection
+    - scsi: target: iscsi: Wait for all commands to finish before freeing a
+      session
+    - f2fs: Fix deadlock in f2fs_gc() context during atomic files handling
+    - habanalabs: skip VA block list update in reset flow
+    - gpio/mpc8xxx: fix qoriq GPIO reading
+    - platform/x86: intel_pmc_core: Fix the SoC naming inconsistency
+    - gpio: mpc8xxx: Don't overwrite default irq_set_type callback
+    - gpio: lynxpoint: Setup correct IRQ handlers
+    - tools/power/x86/intel-speed-select: Ignore missing config level
+    - Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic
+    - apparmor: fix unsigned len comparison with less than zero
+    - drm/amdgpu: Call find_vma under mmap_sem
+    - scripts/kallsyms: fix definitely-lost memory leak
+    - powerpc: Don't add -mabi= flags when building with Clang
+    - cifs: Fix use-after-free bug in cifs_reconnect()
+    - um: virtio: Keep reading on -EAGAIN
+    - io_uring: io_allocate_scq_urings() should return a sane state
+    - of: unittest: fix memory leak in attach_node_and_children
+    - cdrom: respect device capabilities during opening action
+    - cifs: move cifsFileInfo_put logic into a work-queue
+    - perf script: Fix brstackinsn for AUXTRACE
+    - perf regs: Make perf_reg_name() return "unknown" instead of NULL
+    - s390/zcrypt: handle new reply code FILTERED_BY_HYPERVISOR
+    - mailbox: imx: Clear the right interrupts at shutdown
+    - libfdt: define INT32_MAX and UINT32_MAX in libfdt_env.h
+    - s390/unwind: filter out unreliable bogus %r14
+    - s390/cpum_sf: Check for SDBT and SDB consistency
+    - ocfs2: fix passing zero to 'PTR_ERR' warning
+    - mailbox: imx: Fix Tx doorbell shutdown path
+    - s390: disable preemption when switching to nodat stack with CALL_ON_STACK
+    - selftests: vm: add fragment CONFIG_TEST_VMALLOC
+    - mm/hugetlbfs: fix error handling when setting up mounts
+    - kernel: sysctl: make drop_caches write-only
+    - userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
+    - Revert "powerpc/vcpu: Assume dedicated processors as non-preempt"
+    - sctp: fix err handling of stream initialization
+    - md: make sure desc_nr less than MD_SB_DISKS
+    - Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection"
+    - netfilter: ebtables: compat: reject all padding in matches/watchers
+    - 6pack,mkiss: fix possible deadlock
+    - powerpc: Fix __clear_user() with KUAP enabled
+    - net/smc: add fallback check to connect()
+    - netfilter: bridge: make sure to pull arp header in br_nf_forward_arp()
+    - inetpeer: fix data-race in inet_putpeer / inet_putpeer
+    - net: add a READ_ONCE() in skb_peek_tail()
+    - net: icmp: fix data-race in cmp_global_allow()
+    - hrtimer: Annotate lockless access to timer->state
+    - tomoyo: Don't use nifty names on sockets.
+    - uaccess: disallow > INT_MAX copy sizes
+    - drm: limit to INT_MAX in create_blob ioctl
+    - xfs: fix mount failure crash on invalid iclog memory access
+    - cxgb4/cxgb4vf: fix flow control display for auto negotiation
+    - net: dsa: bcm_sf2: Fix IP fragment location and behavior
+    - net/mlxfw: Fix out-of-memory error in mfa2 flash burning
+    - net: phy: aquantia: add suspend / resume ops for AQR105
+    - net/sched: act_mirred: Pull mac prior redir to non mac_header_xmit device
+    - net/sched: add delete_empty() to filters and use it in cls_flower
+    - net_sched: sch_fq: properly set sk->sk_pacing_status
+    - net: stmmac: dwmac-meson8b: Fix the RGMII TX delay on Meson8b/8m2 SoCs
+    - ptp: fix the race between the release of ptp_clock and cdev
+    - tcp: Fix highest_sack and highest_sack_seq
+    - udp: fix integer overflow while computing available space in sk_rcvbuf
+    - bnxt_en: Fix MSIX request logic for RDMA driver.
+    - bnxt_en: Free context memory in the open path if firmware has been reset.
+    - bnxt_en: Return error if FW returns more data than dump length
+    - bnxt_en: Fix bp->fw_health allocation and free logic.
+    - bnxt_en: Remove unnecessary NULL checks for fw_health
+    - bnxt_en: Fix the logic that creates the health reporters.
+    - bnxt_en: Add missing devlink health reporters for VFs.
+    - mlxsw: spectrum_router: Skip loopback RIFs during MAC validation
+    - mlxsw: spectrum: Use dedicated policer for VRRP packets
+    - net: add bool confirm_neigh parameter for dst_ops.update_pmtu
+    - ip6_gre: do not confirm neighbor when do pmtu update
+    - gtp: do not confirm neighbor when do pmtu update
+    - net/dst: add new function skb_dst_update_pmtu_no_confirm
+    - tunnel: do not confirm neighbor when do pmtu update
+    - vti: do not confirm neighbor when do pmtu update
+    - sit: do not confirm neighbor when do pmtu update
+    - net/dst: do not confirm neighbor for vxlan and geneve pmtu update
+    - net: dsa: sja1105: Reconcile the meaning of TPID and TPID2 for E/T and
+      P/Q/R/S
+    - net: marvell: mvpp2: phylink requires the link interrupt
+    - gtp: fix wrong condition in gtp_genl_dump_pdp()
+    - gtp: avoid zero size hashtable
+    - bonding: fix active-backup transition after link failure
+    - tcp: do not send empty skb from tcp_write_xmit()
+    - tcp/dccp: fix possible race __inet_lookup_established()
+    - hv_netvsc: Fix tx_table init in rndis_set_subchannel()
+    - gtp: fix an use-after-free in ipv4_pdp_find()
+    - gtp: do not allow adding duplicate tid and ms_addr pdp context
+    - bnxt: apply computed clamp value for coalece parameter
+    - ipv6/addrconf: only check invalid header values when NETLINK_F_STRICT_CHK is
+      set
+    - net: phylink: fix interface passed to mac_link_up
+    - net: ena: fix napi handler misbehavior when the napi budget is zero
+    - vhost/vsock: accept only packets with the right dst_cid
+    - mmc: sdhci-of-esdhc: fix up erratum A-008171 workaround
+    - mmc: sdhci-of-esdhc: re-implement erratum A-009204 workaround
+    - mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
+    - Linux 5.4.8
+
+  * Focal update: v5.4.7 upstream stable release (LP: #1858428) // Focal update:
+    v5.4.8 upstream stable release (LP: #1858429)
+    - [Config] updateconfigs following v5.4.7 stable update
+
+  * Focal update: v5.4.7 upstream stable release (LP: #1858428)
+    - af_packet: set defaule value for tmo
+    - fjes: fix missed check in fjes_acpi_add
+    - mod_devicetable: fix PHY module format
+    - net: dst: Force 4-byte alignment of dst_metrics
+    - net: gemini: Fix memory leak in gmac_setup_txqs
+    - net: hisilicon: Fix a BUG trigered by wrong bytes_compl
+    - net: nfc: nci: fix a possible sleep-in-atomic-context bug in
+      nci_uart_tty_receive()
+    - net: phy: ensure that phy IDs are correctly typed
+    - net: qlogic: Fix error paths in ql_alloc_large_buffers()
+    - net-sysfs: Call dev_hold always in rx_queue_add_kobject
+    - net: usb: lan78xx: Fix suspend/resume PHY register access error
+    - nfp: flower: fix stats id allocation
+    - qede: Disable hardware gro when xdp prog is installed
+    - qede: Fix multicast mac configuration
+    - sctp: fix memleak on err handling of stream initialization
+    - sctp: fully initialize v4 addr in some functions
+    - selftests: forwarding: Delete IPv6 address at the end
+    - neighbour: remove neigh_cleanup() method
+    - bonding: fix bond_neigh_init()
+    - dpaa2-ptp: fix double free of the ptp_qoriq IRQ
+    - mlxsw: spectrum_router: Remove unlikely user-triggerable warning
+    - net: ethernet: ti: davinci_cpdma: fix warning "device driver frees DMA
+      memory with different size"
+    - net: stmmac: platform: Fix MDIO init for platforms without PHY
+    - net: dsa: b53: Fix egress flooding settings
+    - NFC: nxp-nci: Fix probing without ACPI
+    - btrfs: don't double lock the subvol_sem for rename exchange
+    - btrfs: do not call synchronize_srcu() in inode_tree_del
+    - Btrfs: make tree checker detect checksum items with overlapping ranges
+    - btrfs: return error pointer from alloc_test_extent_buffer
+    - Btrfs: fix missing data checksums after replaying a log tree
+    - btrfs: send: remove WARN_ON for readonly mount
+    - btrfs: abort transaction after failed inode updates in create_subvol
+    - btrfs: skip log replay on orphaned roots
+    - btrfs: do not leak reloc root if we fail to read the fs root
+    - btrfs: handle ENOENT in btrfs_uuid_tree_iterate
+    - Btrfs: fix removal logic of the tree mod log that leads to use-after-free
+      issues
+    - ALSA: pcm: Avoid possible info leaks from PCM stream buffers
+    - ALSA: hda/ca0132 - Keep power on during processing DSP response
+    - ALSA: hda/ca0132 - Avoid endless loop
+    - ALSA: hda/ca0132 - Fix work handling in delayed HP detection
+    - drm/vc4/vc4_hdmi: fill in connector info
+    - drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
+    - drm: mst: Fix query_payload ack reply struct
+    - drm/mipi-dbi: fix a loop in debugfs code
+    - drm/panel: Add missing drm_panel_init() in panel drivers
+    - drm: exynos: exynos_hdmi: use cec_notifier_conn_(un)register
+    - drm: Use EOPNOTSUPP, not ENOTSUPP
+    - drm/amd/display: verify stream link before link test
+    - drm/bridge: analogix-anx78xx: silence -EPROBE_DEFER warnings
+    - drm/amd/display: OTC underflow fix
+    - iio: max31856: add missing of_node and parent references to iio_dev
+    - iio: light: bh1750: Resolve compiler warning and make code more readable
+    - drm/amdgpu/sriov: add ring_stop before ring_create in psp v11 code
+    - drm/amdgpu: grab the id mgr lock while accessing passid_mapping
+    - drm/ttm: return -EBUSY on pipelining with no_gpu_wait (v2)
+    - drm/amd/display: Rebuild mapped resources after pipe split
+    - ath10k: add cleanup in ath10k_sta_state()
+    - drm/amd/display: Handle virtual signal type in disable_link()
+    - ath10k: Check if station exists before forwarding tx airtime report
+    - spi: Add call to spi_slave_abort() function when spidev driver is released
+    - drm/meson: vclk: use the correct G12A frac max value
+    - staging: rtl8192u: fix multiple memory leaks on error path
+    - staging: rtl8188eu: fix possible null dereference
+    - rtlwifi: prevent memory leak in rtl_usb_probe
+    - libertas: fix a potential NULL pointer dereference
+    - Revert "pinctrl: sh-pfc: r8a77990: Fix MOD_SEL1 bit30 when using SSI_SCK2
+      and SSI_WS2"
+    - Revert "pinctrl: sh-pfc: r8a77990: Fix MOD_SEL1 bit31 when using SIM0_D"
+    - ath10k: fix backtrace on coredump
+    - IB/iser: bound protection_sg size by data_sg size
+    - drm/komeda: Workaround for broken FLIP_COMPLETE timestamps
+    - spi: gpio: prevent memory leak in spi_gpio_probe
+    - media: am437x-vpfe: Setting STD to current value is not an error
+    - media: cedrus: fill in bus_info for media device
+    - media: seco-cec: Add a missing 'release_region()' in an error handling path
+    - media: vim2m: Fix abort issue
+    - media: vim2m: Fix BUG_ON in vim2m_device_release()
+    - media: max2175: Fix build error without CONFIG_REGMAP_I2C
+    - media: ov6650: Fix control handler not freed on init error
+    - media: i2c: ov2659: fix s_stream return value
+    - media: ov6650: Fix crop rectangle alignment not passed back
+    - media: i2c: ov2659: Fix missing 720p register config
+    - media: ov6650: Fix stored frame format not in sync with hardware
+    - media: ov6650: Fix stored crop rectangle not in sync with hardware
+    - tools/power/cpupower: Fix initializer override in hsw_ext_cstates
+    - media: venus: core: Fix msm8996 frequency table
+    - ath10k: fix offchannel tx failure when no ath10k_mac_tx_frm_has_freq
+    - media: vimc: Fix gpf in rmmod path when stream is active
+    - drm/amd/display: Set number of pipes to 1 if the second pipe was disabled
+    - pinctrl: devicetree: Avoid taking direct reference to device name string
+    - drm/sun4i: dsi: Fix TCON DRQ set bits
+    - drm/amdkfd: fix a potential NULL pointer dereference (v2)
+    - x86/math-emu: Check __copy_from_user() result
+    - drm/amd/powerplay: A workaround to GPU RESET on APU
+    - selftests/bpf: Correct path to include msg + path
+    - drm/amd/display: set minimum abm backlight level
+    - media: venus: Fix occasionally failures to suspend
+    - rtw88: fix NSS of hw_cap
+    - drm/amd/display: fix struct init in update_bounding_box
+    - usb: renesas_usbhs: add suspend event support in gadget mode
+    - crypto: aegis128-neon - use Clang compatible cflags for ARM
+    - hwrng: omap3-rom - Call clk_disable_unprepare() on exit only if not idled
+    - regulator: max8907: Fix the usage of uninitialized variable in
+      max8907_regulator_probe()
+    - tools/memory-model: Fix data race detection for unordered store and load
+    - media: flexcop-usb: fix NULL-ptr deref in flexcop_usb_transfer_init()
+    - media: cec-funcs.h: add status_req checks
+    - media: meson/ao-cec: move cec_notifier_cec_adap_register after hw setup
+    - drm/bridge: dw-hdmi: Refuse DDC/CI transfers on the internal I2C controller
+    - samples: pktgen: fix proc_cmd command result check logic
+    - block: Fix writeback throttling W=1 compiler warnings
+    - drm/amdkfd: Fix MQD size calculation
+    - MIPS: futex: Emit Loongson3 sync workarounds within asm
+    - mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
+    - drm/drm_vblank: Change EINVAL by the correct errno
+    - selftests/bpf: Fix btf_dump padding test case
+    - libbpf: Fix struct end padding in btf_dump
+    - libbpf: Fix passing uninitialized bytes to setsockopt
+    - net/smc: increase device refcount for added link group
+    - team: call RCU read lock when walking the port_list
+    - media: cx88: Fix some error handling path in 'cx8800_initdev()'
+    - crypto: inside-secure - Fix a maybe-uninitialized warning
+    - crypto: aegis128/simd - build 32-bit ARM for v8 architecture explicitly
+    - misc: fastrpc: fix memory leak from miscdev->name
+    - media: ti-vpe: vpe: Fix Motion Vector vpdma stride
+    - media: ti-vpe: vpe: fix a v4l2-compliance warning about invalid pixel format
+    - media: ti-vpe: vpe: fix a v4l2-compliance failure about frame sequence
+      number
+    - media: ti-vpe: vpe: Make sure YUYV is set as default format
+    - media: ti-vpe: vpe: fix a v4l2-compliance failure causing a kernel panic
+    - media: ti-vpe: vpe: ensure buffers are cleaned up properly in abort cases
+    - drm/amd/display: Properly round nominal frequency for SPD
+    - drm/amd/display: wait for set pipe mcp command completion
+    - media: ti-vpe: vpe: fix a v4l2-compliance failure about invalid sizeimage
+    - drm/amd/display: add new active dongle to existent w/a
+    - syscalls/x86: Use the correct function type in SYSCALL_DEFINE0
+    - drm/amd/display: Fix dongle_caps containing stale information.
+    - extcon: sm5502: Reset registers during initialization
+    - drm/amd/display: Program DWB watermarks from correct state
+    - x86/mm: Use the correct function type for native_set_fixmap()
+    - ath10k: Correct error handling of dma_map_single()
+    - rtw88: coex: Set 4 slot mode for A2DP
+    - drm/bridge: dw-hdmi: Restore audio when setting a mode
+    - perf test: Report failure for mmap events
+    - perf report: Add warning when libunwind not compiled in
+    - perf test: Avoid infinite loop for task exit case
+    - perf vendor events arm64: Fix Hisi hip08 DDRC PMU eventname
+    - usb: usbfs: Suppress problematic bind and unbind uevents.
+    - drm/amd/powerplay: avoid disabling ECC if RAS is enabled for VEGA20
+    - iio: adc: max1027: Reset the device at probe time
+    - Bluetooth: btusb: avoid unused function warning
+    - Bluetooth: missed cpu_to_le16 conversion in hci_init4_req
+    - Bluetooth: Workaround directed advertising bug in Broadcom controllers
+    - Bluetooth: hci_core: fix init for HCI_USER_CHANNEL
+    - bpf/stackmap: Fix deadlock with rq_lock in bpf_get_stack()
+    - x86/mce: Lower throttling MCE messages' priority to warning
+    - drm/amd/display: enable hostvm based on roimmu active for dcn2.1
+    - drm/amd/display: fix header for RN clk mgr
+    - drm/amdgpu: fix amdgpu trace event print string format error
+    - staging: iio: ad9834: add a check for devm_clk_get
+    - power: supply: cpcap-battery: Check voltage before orderly_poweroff
+    - perf tests: Disable bp_signal testing for arm64
+    - selftests/bpf: Make a copy of subtest name
+    - net: hns3: log and clear hardware error after reset complete
+    - RDMA/hns: Fix wrong parameters when initial mtt of srq->idx_que
+    - drm/gma500: fix memory disclosures due to uninitialized bytes
+    - ASoC: soc-pcm: fixup dpcm_prune_paths() loop continue
+    - rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot
+    - RDMA/siw: Fix SQ/RQ drain logic
+    - ipmi: Don't allow device module unload when in use
+    - x86/ioapic: Prevent inconsistent state when moving an interrupt
+    - media: cedrus: Fix undefined shift with a SHIFT_AND_MASK_BITS macro
+    - media: aspeed: set hsync and vsync polarities to normal before starting mode
+      detection
+    - drm/nouveau: Don't grab runtime PM refs for HPD IRQs
+    - media: ov6650: Fix stored frame interval not in sync with hardware
+    - media: ad5820: Define entity function
+    - media: ov5640: Make 2592x1944 mode only available at 15 fps
+    - media: st-mipid02: add a check for devm_gpiod_get_optional
+    - media: imx7-mipi-csis: Add a check for devm_regulator_get
+    - media: aspeed: clear garbage interrupts
+    - media: smiapp: Register sensor after enabling runtime PM on the device
+    - md: no longer compare spare disk superblock events in super_load
+    - staging: wilc1000: potential corruption in wilc_parse_join_bss_param()
+    - md/bitmap: avoid race window between md_bitmap_resize and
+      bitmap_file_clear_bit
+    - drm: Don't free jobs in wait_event_interruptible()
+    - EDAC/amd64: Set grain per DIMM
+    - arm64: psci: Reduce the waiting time for cpu_psci_cpu_kill()
+    - drm/amd/display: setting the DIG_MODE to the correct value.
+    - i40e: initialize ITRN registers with correct values
+    - drm/amd/display: correctly populate dpp refclk in fpga
+    - i40e: Wrong 'Advertised FEC modes' after set FEC to AUTO
+    - net: phy: dp83867: enable robust auto-mdix
+    - drm/tegra: sor: Use correct SOR index on Tegra210
+    - regulator: core: Release coupled_rdevs on regulator_init_coupling() error
+    - ubsan, x86: Annotate and allow __ubsan_handle_shift_out_of_bounds() in
+      uaccess regions
+    - spi: sprd: adi: Add missing lock protection when rebooting
+    - ACPI: button: Add DMI quirk for Medion Akoya E2215T
+    - RDMA/qedr: Fix memory leak in user qp and mr
+    - RDMA/hns: Fix memory leak on 'context' on error return path
+    - RDMA/qedr: Fix srqs xarray initialization
+    - RDMA/core: Set DMA parameters correctly
+    - staging: wilc1000: check if device is initialzied before changing vif
+    - gpu: host1x: Allocate gather copy for host1x
+    - net: dsa: LAN9303: select REGMAP when LAN9303 enable
+    - phy: renesas: phy-rcar-gen2: Fix the array off by one warning
+    - phy: qcom-usb-hs: Fix extcon double register after power cycle
+    - s390/time: ensure get_clock_monotonic() returns monotonic values
+    - s390: add error handling to perf_callchain_kernel
+    - s390/mm: add mm_pxd_folded() checks to pxd_free()
+    - net: hns3: add struct netdev_queue debug info for TX timeout
+    - libata: Ensure ata_port probe has completed before detach
+    - loop: fix no-unmap write-zeroes request behavior
+    - net/mlx5e: Verify that rule has at least one fwd/drop action
+    - pinctrl: sh-pfc: sh7734: Fix duplicate TCLK1_B
+    - ALSA: bebob: expand sleep just after breaking connections for protocol
+      version 1
+    - iio: dln2-adc: fix iio_triggered_buffer_postenable() position
+    - libbpf: Fix error handling in bpf_map__reuse_fd()
+    - Bluetooth: Fix advertising duplicated flags
+    - ALSA: pcm: Fix missing check of the new non-cached buffer type
+    - spi: sifive: disable clk when probe fails and remove
+    - ASoC: SOF: imx: fix reverse CONFIG_SND_SOC_SOF_OF dependency
+    - pinctrl: qcom: sc7180: Add missing tile info in SDC_QDSD_PINGROUP/UFS_RESET
+    - pinctrl: amd: fix __iomem annotation in amd_gpio_irq_handler()
+    - ixgbe: protect TX timestamping from API misuse
+    - cpufreq: sun50i: Fix CPU speed bin detection
+    - media: rcar_drif: fix a memory disclosure
+    - media: v4l2-core: fix touch support in v4l_g_fmt
+    - nvme: introduce "Command Aborted By host" status code
+    - media: staging/imx: Use a shorter name for driver
+    - nvmem: imx-ocotp: reset error status on probe
+    - nvmem: core: fix nvmem_cell_write inline function
+    - ASoC: SOF: topology: set trigger order for FE DAI link
+    - media: vivid: media_device_cleanup was called too early
+    - spi: dw: Fix Designware SPI loopback
+    - bnx2x: Fix PF-VF communication over multi-cos queues.
+    - spi: img-spfi: fix potential double release
+    - ALSA: timer: Limit max amount of slave instances
+    - RDMA/core: Fix return code when modify_port isn't supported
+    - drm: msm: a6xx: fix debug bus register configuration
+    - rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt()
+    - perf probe: Fix to find range-only function instance
+    - perf cs-etm: Fix definition of macro TO_CS_QUEUE_NR
+    - perf probe: Fix to list probe event with correct line number
+    - perf jevents: Fix resource leak in process_mapfile() and main()
+    - perf probe: Walk function lines in lexical blocks
+    - perf probe: Fix to probe an inline function which has no entry pc
+    - perf probe: Fix to show ranges of variables in functions without entry_pc
+    - perf probe: Fix to show inlined function callsite without entry_pc
+    - libsubcmd: Use -O0 with DEBUG=1
+    - perf probe: Fix to probe a function which has no entry pc
+    - perf tools: Fix cross compile for ARM64
+    - perf tools: Splice events onto evlist even on error
+    - drm/amdgpu: disallow direct upload save restore list from gfx driver
+    - drm/amd/powerplay: fix struct init in renoir_print_clk_levels
+    - drm/amdgpu: fix potential double drop fence reference
+    - ice: Check for null pointer dereference when setting rings
+    - xen/gntdev: Use select for DMA_SHARED_BUFFER
+    - perf parse: If pmu configuration fails free terms
+    - perf probe: Skip overlapped location on searching variables
+    - net: avoid potential false sharing in neighbor related code
+    - perf probe: Return a better scope DIE if there is no best scope
+    - perf probe: Fix to show calling lines of inlined functions
+    - perf probe: Skip end-of-sequence and non statement lines
+    - perf probe: Filter out instances except for inlined subroutine and
+      subprogram
+    - libbpf: Fix negative FD close() in xsk_setup_xdp_prog()
+    - s390/bpf: Use kvcalloc for addrs array
+    - cgroup: freezer: don't change task and cgroups status unnecessarily
+    - selftests: proc: Make va_max 1MB
+    - drm/amdgpu: Avoid accidental thread reactivation.
+    - media: exynos4-is: fix wrong mdev and v4l2 dev order in error path
+    - ath10k: fix get invalid tx rate for Mesh metric
+    - fsi: core: Fix small accesses and unaligned offsets via sysfs
+    - selftests: net: Fix printf format warnings on arm
+    - media: pvrusb2: Fix oops on tear-down when radio support is not present
+    - soundwire: intel: fix PDI/stream mapping for Bulk
+    - crypto: atmel - Fix authenc support when it is set to m
+    - ice: delay less
+    - media: si470x-i2c: add missed operations in remove
+    - media: cedrus: Use helpers to access capture queue
+    - media: v4l2-ctrl: Lock main_hdl on operations of requests_queued.
+    - iio: cros_ec_baro: set info_mask_shared_by_all_available field
+    - EDAC/ghes: Fix grain calculation
+    - media: vicodec: media_device_cleanup was called too early
+    - media: vim2m: media_device_cleanup was called too early
+    - spi: pxa2xx: Add missed security checks
+    - ASoC: rt5677: Mark reg RT5677_PWR_ANLG2 as volatile
+    - iio: dac: ad5446: Add support for new AD5600 DAC
+    - bpf, testing: Workaround a verifier failure for test_progs
+    - ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic format constraint
+    - net: dsa: sja1105: Disallow management xmit during switch reset
+    - r8169: respect EEE user setting when restarting network
+    - s390/disassembler: don't hide instruction addresses
+    - net: ethernet: ti: Add dependency for TI_DAVINCI_EMAC
+    - nvme: Discard workaround for non-conformant devices
+    - parport: load lowlevel driver if ports not found
+    - bcache: fix static checker warning in bcache_device_free()
+    - cpufreq: Register drivers only after CPU devices have been registered
+    - qtnfmac: fix debugfs support for multiple cards
+    - qtnfmac: fix invalid channel information output
+    - x86/crash: Add a forward declaration of struct kimage
+    - qtnfmac: fix using skb after free
+    - RDMA/efa: Clear the admin command buffer prior to its submission
+    - tracing: use kvcalloc for tgid_map array allocation
+    - MIPS: ralink: enable PCI support only if driver for mt7621 SoC is selected
+    - tracing/kprobe: Check whether the non-suffixed symbol is notrace
+    - iwlwifi: mvm: fix unaligned read of rx_pkt_status
+    - ASoC: wm8904: fix regcache handling
+    - regulator: core: Let boot-on regulators be powered off
+    - spi: tegra20-slink: add missed clk_unprepare
+    - tun: fix data-race in gro_normal_list()
+    - xhci-pci: Allow host runtime PM as default also for Intel Ice Lake xHCI
+    - crypto: virtio - deal with unsupported input sizes
+    - mmc: tmio: Add MMC_CAP_ERASE to allow erase/discard/trim requests
+    - btrfs: don't prematurely free work in end_workqueue_fn()
+    - btrfs: don't prematurely free work in run_ordered_work()
+    - sched/uclamp: Fix overzealous type replacement
+    - ASoC: wm2200: add missed operations in remove and probe failure
+    - spi: st-ssc4: add missed pm_runtime_disable
+    - ASoC: wm5100: add missed pm_runtime_disable
+    - perf/core: Fix the mlock accounting, again
+    - selftests, bpf: Fix test_tc_tunnel hanging
+    - selftests, bpf: Workaround an alu32 sub-register spilling issue
+    - bnxt_en: Return proper error code for non-existent NVM variable
+    - net: phy: avoid matching all-ones clause 45 PHY IDs
+    - firmware_loader: Fix labels with comma for builtin firmware
+    - ASoC: Intel: bytcr_rt5640: Update quirk for Acer Switch 10 SW5-012 2-in-1
+    - x86/insn: Add some Intel instructions to the opcode map
+    - net-af_xdp: Use correct number of channels from ethtool
+    - brcmfmac: remove monitor interface when detaching
+    - perf session: Fix decompression of PERF_RECORD_COMPRESSED records
+    - perf probe: Fix to show function entry line as probe-able
+    - s390/crypto: Fix unsigned variable compared with zero
+    - s390/kasan: support memcpy_real with TRACE_IRQFLAGS
+    - bnxt_en: Improve RX buffer error handling.
+    - iwlwifi: check kasprintf() return value
+    - fbtft: Make sure string is NULL terminated
+    - ASoC: soc-pcm: check symmetry before hw_params
+    - net: ethernet: ti: ale: clean ale tbl on init and intf restart
+    - mt76: fix possible out-of-bound access in mt7615_fill_txs/mt7603_fill_txs
+    - s390/cpumf: Adjust registration of s390 PMU device drivers
+    - crypto: sun4i-ss - Fix 64-bit size_t warnings
+    - crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
+    - mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED
+    - crypto: vmx - Avoid weird build failures
+    - libtraceevent: Fix memory leakage in copy_filter_type
+    - mips: fix build when "48 bits virtual memory" is enabled
+    - drm/amdgpu: fix bad DMA from INTERRUPT_CNTL2
+    - ice: Only disable VF state when freeing each VF resources
+    - ice: Fix setting coalesce to handle DCB configuration
+    - net: phy: initialise phydev speed and duplex sanely
+    - tools, bpf: Fix build for 'make -s tools/bpf O=<dir>'
+    - RDMA/bnxt_re: Fix missing le16_to_cpu
+    - RDMA/bnxt_re: Fix stat push into dma buffer on gen p5 devices
+    - bpf: Provide better register bounds after jmp32 instructions
+    - RDMA/bnxt_re: Fix chip number validation Broadcom's Gen P5 series
+    - ibmvnic: Fix completion structure initialization
+    - net: wireless: intel: iwlwifi: fix GRO_NORMAL packet stalling
+    - MIPS: futex: Restore \n after sync instructions
+    - btrfs: don't prematurely free work in reada_start_machine_worker()
+    - btrfs: don't prematurely free work in scrub_missing_raid56_worker()
+    - Revert "mmc: sdhci: Fix incorrect switch to HS mode"
+    - mmc: mediatek: fix CMD_TA to 2 for MT8173 HS200/HS400 mode
+    - tpm_tis: reserve chip for duration of tpm_tis_core_init
+    - tpm: fix invalid locking in NONBLOCKING mode
+    - iommu: fix KASAN use-after-free in iommu_insert_resv_region
+    - iommu: set group default domain before creating direct mappings
+    - iommu/vt-d: Fix dmar pte read access not set error
+    - iommu/vt-d: Set ISA bridge reserved region as relaxable
+    - iommu/vt-d: Allocate reserved region for ISA with correct permission
+    - can: xilinx_can: Fix missing Rx can packets on CANFD2.0
+    - can: m_can: tcan4x5x: add required delay after reset
+    - can: j1939: j1939_sk_bind(): take priv after lock is held
+    - can: flexcan: fix possible deadlock and out-of-order reception after wakeup
+    - can: flexcan: poll MCR_LPM_ACK instead of GPR ACK for stop mode
+      acknowledgment
+    - can: kvaser_usb: kvaser_usb_leaf: Fix some info-leaks to USB devices
+    - spi: dw: Correct handling of native chipselect
+    - spi: cadence: Correct handling of native chipselect
+    - usb: xhci: Fix build warning seen with CONFIG_PM=n
+    - drm/amdgpu: fix uninitialized variable pasid_mapping_needed
+    - ath10k: Revert "ath10k: add cleanup in ath10k_sta_state()"
+    - RDMA/siw: Fix post_recv QP state locking
+    - md: avoid invalid memory access for array sb->dev_roles
+    - s390/ftrace: fix endless recursion in function_graph tracer
+    - ARM: dts: Fix vcsi regulator to be always-on for droid4 to prevent hangs
+    - can: flexcan: add low power enter/exit acknowledgment helper
+    - usbip: Fix receive error in vhci-hcd when using scatter-gather
+    - usbip: Fix error path of vhci_recv_ret_submit()
+    - spi: fsl: don't map irq during probe
+    - spi: fsl: use platform_get_irq() instead of of_irq_to_resource()
+    - efi/memreserve: Register reservations as 'reserved' in /proc/iomem
+    - cpufreq: Avoid leaving stale IRQ work items during CPU offline
+    - KEYS: asymmetric: return ENOMEM if akcipher_request_alloc() fails
+    - mm: vmscan: protect shrinker idr replace with CONFIG_MEMCG
+    - USB: EHCI: Do not return -EPIPE when hub is disconnected
+    - intel_th: pci: Add Comet Lake PCH-V support
+    - intel_th: pci: Add Elkhart Lake SOC support
+    - intel_th: Fix freeing IRQs
+    - intel_th: msu: Fix window switching without windows
+    - platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128 bytes
+    - staging: comedi: gsc_hpdi: check dma_alloc_coherent() return value
+    - tty/serial: atmel: fix out of range clock divider handling
+    - serial: sprd: Add clearing break interrupt operation
+    - pinctrl: baytrail: Really serialize all register accesses
+    - clk: imx: clk-imx7ulp: Add missing sentinel of ulp_div_table
+    - clk: imx: clk-composite-8m: add lock to gate/mux
+    - clk: imx: pll14xx: fix clk_pll14xx_wait_lock
+    - ext4: fix ext4_empty_dir() for directories with holes
+    - ext4: check for directory entries too close to block end
+    - ext4: unlock on error in ext4_expand_extra_isize()
+    - ext4: validate the debug_want_extra_isize mount option at parse time
+    - iocost: over-budget forced IOs should schedule async delay
+    - KVM: PPC: Book3S HV: Fix regression on big endian hosts
+    - kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
+    - kvm: x86: Host feature SSBD doesn't imply guest feature AMD_SSBD
+    - KVM: arm/arm64: Properly handle faulting of device mappings
+    - KVM: arm64: Ensure 'params' is initialised when looking up sys register
+    - x86/MCE/AMD: Do not use rdmsr_safe_on_cpu() in smca_configure()
+    - x86/MCE/AMD: Allow Reserved types to be overwritten in smca_banks[]
+    - x86/mce: Fix possibly incorrect severity calculation on AMD
+    - powerpc/vcpu: Assume dedicated processors as non-preempt
+    - powerpc/irq: fix stack overflow verification
+    - ocxl: Fix concurrent AFU open and device removal
+    - mmc: sdhci-msm: Correct the offset and value for DDR_CONFIG register
+    - mmc: sdhci-of-esdhc: Revert "mmc: sdhci-of-esdhc: add erratum A-009204
+      support"
+    - mmc: sdhci: Update the tuning failed messages to pr_debug level
+    - mmc: sdhci-of-esdhc: fix P2020 errata handling
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK
+    - mmc: sdhci: Add a quirk for broken command queuing
+    - nbd: fix shutdown and recv work deadlock v2
+    - iwlwifi: pcie: move power gating workaround earlier in the flow
+    - Linux 5.4.7
+
+  * Focal update: v5.4.6 upstream stable release (LP: #1858427)
+    - Revert "UBUNTU: SAUCE: drm/i915/fbc: disable framebuffer compression on
+      IceLake"
+    - USB: Fix incorrect DMA allocations for local memory pool drivers
+    - mmc: block: Make card_busy_detect() a bit more generic
+    - mmc: block: Add CMD13 polling for MMC IOCTLS with R1B response
+    - mmc: core: Drop check for mmc_card_is_removable() in mmc_rescan()
+    - mmc: core: Re-work HW reset for SDIO cards
+    - PCI/switchtec: Read all 64 bits of part_event_bitmap
+    - PCI/PM: Always return devices to D0 when thawing
+    - PCI: pciehp: Avoid returning prematurely from sysfs requests
+    - PCI: Fix Intel ACS quirk UPDCR register address
+    - PCI/MSI: Fix incorrect MSI-X masking on resume
+    - PCI: Do not use bus number zero from EA capability
+    - PCI: rcar: Fix missing MACCTLR register setting in initialization sequence
+    - PCI: Apply Cavium ACS quirk to ThunderX2 and ThunderX3
+    - PM / QoS: Redefine FREQ_QOS_MAX_DEFAULT_VALUE to S32_MAX
+    - block: fix "check bi_size overflow before merge"
+    - xtensa: use MEMBLOCK_ALLOC_ANYWHERE for KASAN shadow map
+    - gfs2: Multi-block allocations in gfs2_page_mkwrite
+    - gfs2: fix glock reference problem in gfs2_trans_remove_revoke
+    - xtensa: fix TLB sanity checker
+    - xtensa: fix syscall_set_return_value
+    - rpmsg: glink: Set tail pointer to 0 at end of FIFO
+    - rpmsg: glink: Fix reuse intents memory leak issue
+    - rpmsg: glink: Fix use after free in open_ack TIMEOUT case
+    - rpmsg: glink: Put an extra reference during cleanup
+    - rpmsg: glink: Fix rpmsg_register_device err handling
+    - rpmsg: glink: Don't send pending rx_done during remove
+    - rpmsg: glink: Free pending deferred work on remove
+    - cifs: smbd: Return -EAGAIN when transport is reconnecting
+    - cifs: smbd: Only queue work for error recovery on memory registration
+    - cifs: smbd: Add messages on RDMA session destroy and reconnection
+    - cifs: smbd: Return -EINVAL when the number of iovs exceeds SMBDIRECT_MAX_SGE
+    - cifs: smbd: Return -ECONNABORTED when trasnport is not in connected state
+    - cifs: Don't display RDMA transport on reconnect
+    - CIFS: Respect O_SYNC and O_DIRECT flags during reconnect
+    - CIFS: Close open handle after interrupted close
+    - CIFS: Do not miss cancelled OPEN responses
+    - CIFS: Fix NULL pointer dereference in mid callback
+    - ARM: dts: s3c64xx: Fix init order of clock providers
+    - ARM: tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
+    - vfio/pci: call irq_bypass_unregister_producer() before freeing irq
+    - dma-buf: Fix memory leak in sync_file_merge()
+    - drm/panfrost: Fix a race in panfrost_ioctl_madvise()
+    - drm/panfrost: Fix a BO leak in panfrost_ioctl_mmap_bo()
+    - drm/panfrost: Fix a race in panfrost_gem_free_object()
+    - drm/mgag200: Extract device type from flags
+    - drm/mgag200: Store flags from PCI driver data in device structure
+    - drm/mgag200: Add workaround for HW that does not support 'startadd'
+    - drm/mgag200: Flag all G200 SE A machines as broken wrt <startadd>
+    - drm: meson: venc: cvbs: fix CVBS mode matching
+    - dm mpath: remove harmful bio-based optimization
+    - dm btree: increase rebalance threshold in __rebalance2()
+    - dm clone metadata: Track exact changes per transaction
+    - dm clone metadata: Use a two phase commit
+    - dm clone: Flush destination device before committing metadata
+    - dm thin metadata: Add support for a pre-commit callback
+    - dm thin: Flush data device before committing metadata
+    - scsi: ufs: Disable autohibern8 feature in Cadence UFS
+    - scsi: iscsi: Fix a potential deadlock in the timeout handler
+    - scsi: qla2xxx: Ignore NULL pointer in tcm_qla2xxx_free_mcmd
+    - scsi: qla2xxx: Initialize free_work before flushing it
+    - scsi: qla2xxx: Added support for MPI and PEP regions for ISP28XX
+    - scsi: qla2xxx: Change discovery state before PLOGI
+    - scsi: qla2xxx: Correctly retrieve and interpret active flash region
+    - scsi: qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd
+    - drm/nouveau/kms/nv50-: Call outp_atomic_check_view() before handling PBN
+    - drm/nouveau/kms/nv50-: Store the bpc we're using in nv50_head_atom
+    - drm/nouveau/kms/nv50-: Limit MST BPC to 8
+    - drm/i915/fbc: Disable fbc by default on all glk+
+    - drm/radeon: fix r1xx/r2xx register checker for POT textures
+    - drm/dp_mst: Correct the bug in drm_dp_update_payload_part1()
+    - drm/amd/display: re-enable wait in pipelock, but add timeout
+    - drm/amd/display: add default clocks if not able to fetch them
+    - drm/amdgpu: initialize vm_inv_eng0_sem for gfxhub and mmhub
+    - drm/amdgpu: invalidate mmhub semaphore workaround in gmc9/gmc10
+    - drm/amdgpu/gfx10: explicitly wait for cp idle after halt/unhalt
+    - drm/amdgpu/gfx10: re-init clear state buffer after gpu reset
+    - drm/i915/gvt: Fix cmd length check for MI_ATOMIC
+    - drm/amdgpu: avoid using invalidate semaphore for picasso
+    - drm/amdgpu: add invalidate semaphore limit for SRIOV and picasso in gmc9
+    - ALSA: hda: Fix regression by strip mask fix
+    - Linux 5.4.6
+
+  * Focal update: v5.4.5 upstream stable release (LP: #1858426)
+    - inet: protect against too small mtu values.
+    - mqprio: Fix out-of-bounds access in mqprio_dump
+    - net: bridge: deny dev_set_mac_address() when unregistering
+    - net: dsa: fix flow dissection on Tx path
+    - net: ethernet: ti: cpsw: fix extra rx interrupt
+    - net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
+    - net_sched: validate TCA_KIND attribute in tc_chain_tmplt_add()
+    - net: thunderx: start phy before starting autonegotiation
+    - net/tls: Fix return values to avoid ENOTSUPP
+    - openvswitch: support asymmetric conntrack
+    - tcp: md5: fix potential overestimation of TCP option space
+    - tipc: fix ordering of tipc module init and exit routine
+    - net/mlx5e: Query global pause state before setting prio2buffer
+    - net: ipv6: add net argument to ip6_dst_lookup_flow
+    - net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
+    - tcp: fix rejected syncookies due to stale timestamps
+    - tcp: tighten acceptance of ACKs not matching a child socket
+    - tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
+    - net: core: rename indirect block ingress cb function
+    - net: sched: allow indirect blocks to bind to clsact in TC
+    - cls_flower: Fix the behavior using port ranges with hw-offload
+    - gre: refetch erspan header from skb->data after pskb_may_pull()
+    - Fixed updating of ethertype in function skb_mpls_pop
+    - hsr: fix a NULL pointer dereference in hsr_dev_xmit()
+    - net: Fixed updating of ethertype in skb_mpls_push()
+    - net/mlx5e: Fix TXQ indices to be sequential
+    - act_ct: support asymmetric conntrack
+    - net/mlx5e: Fix SFF 8472 eeprom length
+    - net/mlx5e: Fix freeing flow with kfree() and not kvfree()
+    - net/mlx5e: Fix translation of link mode into speed
+    - net/mlx5e: ethtool, Fix analysis of speed setting
+    - page_pool: do not release pool until inflight == 0.
+    - xdp: obtain the mem_id mutex before trying to remove an entry.
+    - ionic: keep users rss hash across lif reset
+    - net: mscc: ocelot: unregister the PTP clock on deinit
+    - r8169: add missing RX enabling for WoL on RTL8125
+    - Linux 5.4.5
+
+  * Focal update: v5.4.4 upstream stable release (LP: #1858424)
+    - usb: gadget: configfs: Fix missing spin_lock_init()
+    - usb: gadget: pch_udc: fix use after free
+    - nvme: Namepace identification descriptor list is optional
+    - Revert "nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T"
+    - scsi: lpfc: Fix bad ndlp ptr in xri aborted handling
+    - scsi: zfcp: trace channel log even for FCP command responses
+    - scsi: qla2xxx: Do command completion on abort timeout
+    - scsi: qla2xxx: Fix driver unload hang
+    - scsi: qla2xxx: Fix double scsi_done for abort path
+    - scsi: qla2xxx: Fix memory leak when sending I/O fails
+    - compat_ioctl: add compat_ptr_ioctl()
+    - ceph: fix compat_ioctl for ceph_dir_operations
+    - media: venus: remove invalid compat_ioctl32 handler
+    - USB: uas: honor flag to avoid CAPACITY16
+    - USB: uas: heed CAPACITY_HEURISTICS
+    - USB: documentation: flags on usb-storage versus UAS
+    - usb: Allow USB device to be warm reset in suspended state
+    - usb: host: xhci-tegra: Correct phy enable sequence
+    - binder: fix incorrect calculation for num_valid
+    - staging: exfat: fix multiple definition error of `rename_file'
+    - staging: rtl8188eu: fix interface sanity check
+    - staging: rtl8712: fix interface sanity check
+    - staging: vchiq: call unregister_chrdev_region() when driver registration
+      fails
+    - staging: gigaset: fix general protection fault on probe
+    - staging: gigaset: fix illegal free on probe errors
+    - staging: gigaset: add endpoint-type sanity check
+    - usb: xhci: only set D3hot for pci device
+    - xhci: Fix memory leak in xhci_add_in_port()
+    - xhci: fix USB3 device initiated resume race with roothub autosuspend
+    - xhci: Increase STS_HALT timeout in xhci_suspend()
+    - xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour.
+    - xhci: make sure interrupts are restored to correct state
+    - interconnect: qcom: sdm845: Walk the list safely on node removal
+    - interconnect: qcom: qcs404: Walk the list safely on node removal
+    - usb: common: usb-conn-gpio: Don't log an error on probe deferral
+    - ARM: dts: pandora-common: define wl1251 as child node of mmc3
+    - iio: adis16480: Add debugfs_reg_access entry
+    - iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw
+    - iio: adis16480: Fix scales factors
+    - iio: humidity: hdc100x: fix IIO_HUMIDITYRELATIVE channel reporting
+    - iio: imu: inv_mpu6050: fix temperature reporting using bad unit
+    - iio: adc: ad7606: fix reading unnecessary data from device
+    - iio: adc: ad7124: Enable internal reference
+    - USB: atm: ueagle-atm: add missing endpoint check
+    - USB: idmouse: fix interface sanity checks
+    - USB: serial: io_edgeport: fix epic endpoint lookup
+    - usb: roles: fix a potential use after free
+    - USB: adutux: fix interface sanity check
+    - usb: core: urb: fix URB structure initialization function
+    - usb: mon: Fix a deadlock in usbmon between mmap and read
+    - tpm: add check after commands attribs tab allocation
+    - tpm: Switch to platform_get_irq_optional()
+    - EDAC/altera: Use fast register IO for S10 IRQs
+    - brcmfmac: disable PCIe interrupts before bus reset
+    - mtd: spear_smi: Fix Write Burst mode
+    - mtd: rawnand: Change calculating of position page containing BBM
+    - virt_wifi: fix use-after-free in virt_wifi_newlink()
+    - virtio-balloon: fix managed page counts when migrating pages between zones
+    - usb: dwc3: pci: add ID for the Intel Comet Lake -H variant
+    - usb: dwc3: gadget: Fix logical condition
+    - usb: dwc3: gadget: Clear started flag for non-IOC
+    - usb: dwc3: ep0: Clear started flag on completion
+    - phy: renesas: rcar-gen3-usb2: Fix sysfs interface of "role"
+    - usb: typec: fix use after free in typec_register_port()
+    - iwlwifi: pcie: fix support for transmitting SKBs with fraglist
+    - btrfs: check page->mapping when loading free space cache
+    - btrfs: use btrfs_block_group_cache_done in update_block_group
+    - btrfs: use refcount_inc_not_zero in kill_all_nodes
+    - Btrfs: fix metadata space leak on fixup worker failure to set range as
+      delalloc
+    - Btrfs: fix negative subv_writers counter and data space leak after buffered
+      write
+    - btrfs: Avoid getting stuck during cyclic writebacks
+    - btrfs: Remove btrfs_bio::flags member
+    - Btrfs: send, skip backreference walking for extents with many references
+    - btrfs: record all roots for rename exchange on a subvol
+    - rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address
+    - rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer
+    - rtlwifi: rtl8192de: Fix missing enable interrupt flag
+    - lib: raid6: fix awk build warnings
+    - ovl: fix corner case of non-unique st_dev;st_ino
+    - ovl: relax WARN_ON() on rename to self
+    - hwrng: omap - Fix RNG wait loop timeout
+    - dm writecache: handle REQ_FUA
+    - dm zoned: reduce overhead of backing device checks
+    - workqueue: Fix spurious sanity check failures in destroy_workqueue()
+    - workqueue: Fix pwq ref leak in rescuer_thread()
+    - ASoC: rt5645: Fixed buddy jack support.
+    - ASoC: rt5645: Fixed typo for buddy jack support.
+    - ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report
+    - ASoC: fsl_audmix: Add spin lock to protect tdms
+    - md: improve handling of bio with REQ_PREFLUSH in md_flush_request()
+    - blk-mq: avoid sysfs buffer overflow with too many CPU cores
+    - cgroup: pids: use atomic64_t for pids->limit
+    - wil6210: check len before memcpy() calls
+    - ar5523: check NULL before memcpy() in ar5523_cmd()
+    - s390/mm: properly clear _PAGE_NOEXEC bit when it is not supported
+    - media: hantro: Fix s_fmt for dynamic resolution changes
+    - media: hantro: Fix motion vectors usage condition
+    - media: hantro: Fix picture order count table enable
+    - media: vimc: sen: remove unused kthread_sen field
+    - media: bdisp: fix memleak on release
+    - media: radio: wl1273: fix interrupt masking on release
+    - media: cec.h: CEC_OP_REC_FLAG_ values were swapped
+    - cpuidle: Do not unset the driver if it is there already
+    - cpuidle: teo: Ignore disabled idle states that are too deep
+    - cpuidle: teo: Rename local variable in teo_select()
+    - cpuidle: teo: Consider hits and misses metrics of disabled states
+    - cpuidle: teo: Fix "early hits" handling for disabled idle states
+    - cpuidle: use first valid target residency as poll time
+    - erofs: zero out when listxattr is called with no xattr
+    - perf tests: Fix out of bounds memory access
+    - drm/panfrost: Open/close the perfcnt BO
+    - powerpc/perf: Disable trace_imc pmu
+    - intel_th: Fix a double put_device() in error path
+    - intel_th: pci: Add Ice Lake CPU support
+    - intel_th: pci: Add Tiger Lake CPU support
+    - PM / devfreq: Lock devfreq in trans_stat_show
+    - cpufreq: powernv: fix stack bloat and hard limit on number of CPUs
+    - ALSA: fireface: fix return value in error path of isochronous resources
+      reservation
+    - ALSA: oxfw: fix return value in error path of isochronous resources
+      reservation
+    - ACPI / utils: Move acpi_dev_get_first_match_dev() under CONFIG_ACPI
+    - ACPI: LPSS: Add LNXVIDEO -> BYT I2C7 to lpss_device_links
+    - ACPI: LPSS: Add LNXVIDEO -> BYT I2C1 to lpss_device_links
+    - ACPI: LPSS: Add dmi quirk for skipping _DEP check for some device-links
+    - ACPI / hotplug / PCI: Allocate resources directly under the non-hotplug
+      bridge
+    - ACPI: OSL: only free map once in osl.c
+    - ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()
+    - ACPI: EC: Rework flushing of pending work
+    - ACPI: PM: Avoid attaching ACPI PM domain to certain devices
+    - pinctrl: rza2: Fix gpio name typos
+    - pinctrl: armada-37xx: Fix irq mask access in armada_37xx_irq_set_type()
+    - pinctrl: samsung: Add of_node_put() before return in error path
+    - pinctrl: samsung: Fix device node refcount leaks in Exynos wakeup controller
+      init
+    - pinctrl: samsung: Fix device node refcount leaks in S3C24xx wakeup
+      controller init
+    - pinctrl: samsung: Fix device node refcount leaks in init code
+    - pinctrl: samsung: Fix device node refcount leaks in S3C64xx wakeup
+      controller init
+    - mmc: host: omap_hsmmc: add code for special init of wl1251 to get rid of
+      pandora_wl1251_init_card
+    - ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity
+    - RDMA/core: Fix ib_dma_max_seg_size()
+    - ppdev: fix PPGETTIME/PPSETTIME ioctls
+    - stm class: Lose the protocol driver when dropping its reference
+    - coresight: Serialize enabling/disabling a link device.
+    - powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB
+    - powerpc/xive: Prevent page fault issues in the machine crash handler
+    - powerpc: Allow flush_icache_range to work across ranges >4GB
+    - powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts
+    - video/hdmi: Fix AVI bar unpack
+    - quota: Check that quota is not dirty before release
+    - ext2: check err when partial != NULL
+    - quota: fix livelock in dquot_writeback_dquots
+    - ext4: Fix credit estimate for final inode freeing
+    - reiserfs: fix extended attributes on the root directory
+    - scsi: qla2xxx: Fix SRB leak on switch command timeout
+    - scsi: qla2xxx: Fix a dma_pool_free() call
+    - Revert "scsi: qla2xxx: Fix memory leak when sending I/O fails"
+    - iio: ad7949: kill pointless "readback"-handling code
+    - iio: ad7949: fix channels mixups
+    - omap: pdata-quirks: revert pandora specific gpiod additions
+    - omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251
+    - powerpc: Avoid clang warnings around setjmp and longjmp
+    - powerpc: Fix vDSO clock_getres()
+    - mm, memfd: fix COW issue on MAP_PRIVATE and F_SEAL_FUTURE_WRITE mappings
+    - mm: memcg/slab: wait for !root kmem_cache refcnt killing on root kmem_cache
+      destruction
+    - ext4: work around deleting a file with i_nlink == 0 safely
+    - firmware: qcom: scm: Ensure 'a0' status code is treated as signed
+    - s390/smp,vdso: fix ASCE handling
+    - s390/kaslr: store KASLR offset for early dumps
+    - mm/shmem.c: cast the type of unmap_start to u64
+    - powerpc: Define arch_is_kernel_initmem_freed() for lockdep
+    - USB: dummy-hcd: increase max number of devices to 32
+    - rtc: disable uie before setting time and enable after
+    - splice: only read in as much information as there is pipe buffer space
+    - ext4: fix a bug in ext4_wait_for_tail_page_commit
+    - ext4: fix leak of quota reservations
+    - blk-mq: make sure that line break can be printed
+    - workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
+    - r8169: fix rtl_hw_jumbo_disable for RTL8168evl
+    - EDAC/ghes: Do not warn when incrementing refcount on 0
+    - Linux 5.4.4
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Change source package to linux-5.4
+    - [Packaging] Don't use SRCPKGNAME for linux-libc-dev
+    - [Packaging] Remove linux-source-3 Provides: from linux-source
+    - [Packaging] Fix linux-doc in linux-image Suggests:
+    - [Debian] Read variants list into a variable
+    - [Packaging] Generate linux-libc-dev package only for primary variant
+    - [Packaging] Generate linux-doc for only the primary variant
+    - [Debian] Update linux source package name in debian/tests/*
+    - [Config] update annotations to match config changes
+    - [Config] disable PCI_MESON
+    - SAUCE: tools: hv: Update shebang to use python3 instead of python
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 08 Jan 2020 15:00:54 -0600
+
+linux-5.4 (5.4.0-9.12) focal; urgency=medium
+
+  * Empty entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 17 Dec 2019 07:09:13 -0600
+
+linux (5.4.0-9.12) focal; urgency=medium
+
+  * alsa/hda/realtek: the line-out jack doens't work on a dell AIO
+    (LP: #1855999)
+    - SAUCE: ALSA: hda/realtek - Line-out jack doesn't work on a Dell AIO
+
+  * scsi: hisi_sas: Check sas_port before using it (LP: #1855952)
+    - scsi: hisi_sas: Check sas_port before using it
+
+  * CVE-2019-19078
+    - ath10k: fix memory leak
+
+  * cifs: DFS Caching feature causing problems traversing multi-tier DFS setups
+    (LP: #1854887)
+    - cifs: Fix retrieval of DFS referrals in cifs_mount()
+
+  * Support DPCD aux brightness control (LP: #1856134)
+    - SAUCE: drm/i915: Fix eDP DPCD aux max backlight calculations
+    - SAUCE: drm/i915: Assume 100% brightness when not in DPCD control mode
+    - SAUCE: drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight()
+    - SAUCE: drm/i915: Auto detect DPCD backlight support by default
+    - SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED
+      panel
+    - USUNTU: SAUCE: drm/i915: Force DPCD backlight mode on Dell Precision 4K sku
+
+  * The system cannot resume from S3 if user unplugs the TB16 during suspend
+    state (LP: #1849269)
+    - PCI: pciehp: Do not disable interrupt twice on suspend
+    - PCI: pciehp: Prevent deadlock on disconnect
+
+  * change kconfig of the soundwire bus driver from y to m (LP: #1855685)
+    - [Config]: SOUNDWIRE=m
+
+  * alsa/sof: change to use hda hdmi codec driver to make hdmi audio on the
+    docking station work (LP: #1855666)
+    - ALSA: hda/hdmi - implement mst_no_extra_pcms flag
+    - ASoC: hdac_hda: add support for HDMI/DP as a HDA codec
+    - ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi
+    - ASoC: Intel: skl-hda-dsp-generic: fix include guard name
+    - ASoC: SOF: Intel: add support for snd-hda-codec-hdmi
+    - ASoC: Intel: bxt-da7219-max98357a: common hdmi codec support
+    - ASoC: Intel: glk_rt5682_max98357a: common hdmi codec support
+    - ASoC: intel: sof_rt5682: common hdmi codec support
+    - ASoC: Intel: bxt_rt298: common hdmi codec support
+    - ASoC: SOF: enable sync_write in hdac_bus
+    - [config]: SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+
+  * Fix unusable USB hub on Dell TB16 after S3 (LP: #1855312)
+    - SAUCE: USB: core: Make port power cycle a seperate helper function
+    - SAUCE: USB: core: Attempt power cycle port when it's in eSS.Disabled state
+
+  * Focal update: v5.4.3 upstream stable release (LP: #1856583)
+    - rsi: release skb if rsi_prepare_beacon fails
+    - arm64: tegra: Fix 'active-low' warning for Jetson TX1 regulator
+    - arm64: tegra: Fix 'active-low' warning for Jetson Xavier regulator
+    - perf scripts python: exported-sql-viewer.py: Fix use of TRUE with SQLite
+    - sparc64: implement ioremap_uc
+    - lp: fix sparc64 LPSETTIMEOUT ioctl
+    - time: Zero the upper 32-bits in __kernel_timespec on 32-bit
+    - mailbox: tegra: Fix superfluous IRQ error message
+    - staging/octeon: Use stubs for MIPS && !CAVIUM_OCTEON_SOC
+    - usb: gadget: u_serial: add missing port entry locking
+    - serial: 8250-mtk: Use platform_get_irq_optional() for optional irq
+    - tty: serial: fsl_lpuart: use the sg count from dma_map_sg
+    - tty: serial: msm_serial: Fix flow control
+    - serial: pl011: Fix DMA ->flush_buffer()
+    - serial: serial_core: Perform NULL checks for break_ctl ops
+    - serial: stm32: fix clearing interrupt error flags
+    - serial: 8250_dw: Avoid double error messaging when IRQ absent
+    - serial: ifx6x60: add missed pm_runtime_disable
+    - mwifiex: Re-work support for SDIO HW reset
+    - io_uring: fix dead-hung for non-iter fixed rw
+    - io_uring: transform send/recvmsg() -ERESTARTSYS to -EINTR
+    - fuse: fix leak of fuse_io_priv
+    - fuse: verify nlink
+    - fuse: verify write return
+    - fuse: verify attributes
+    - io_uring: fix missing kmap() declaration on powerpc
+    - io_uring: ensure req->submit is copied when req is deferred
+    - SUNRPC: Avoid RPC delays when exiting suspend
+    - ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC
+    - ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
+    - ALSA: pcm: oss: Avoid potential buffer overflows
+    - ALSA: hda - Add mute led support for HP ProBook 645 G4
+    - ALSA: hda: Modify stream stripe mask only when needed
+    - soc: mediatek: cmdq: fixup wrong input order of write api
+    - Input: synaptics - switch another X1 Carbon 6 to RMI/SMbus
+    - Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
+    - Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
+    - Input: goodix - add upside-down quirk for Teclast X89 tablet
+    - coresight: etm4x: Fix input validation for sysfs.
+    - Input: Fix memory leak in psxpad_spi_probe
+    - media: rc: mark input device as pointing stick
+    - x86/mm/32: Sync only to VMALLOC_END in vmalloc_sync_all()
+    - CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
+    - CIFS: Fix SMB2 oplock break processing
+    - tty: vt: keyboard: reject invalid keycodes
+    - can: slcan: Fix use-after-free Read in slcan_open
+    - nfsd: Ensure CLONE persists data and metadata changes to the target file
+    - nfsd: restore NFSv3 ACL support
+    - kernfs: fix ino wrap-around detection
+    - jbd2: Fix possible overflow in jbd2_log_space_left()
+    - drm/msm: fix memleak on release
+    - drm: damage_helper: Fix race checking plane->state->fb
+    - drm/i810: Prevent underflow in ioctl
+    - arm64: Validate tagged addresses in access_ok() called from kernel threads
+    - arm64: dts: exynos: Revert "Remove unneeded address space mapping for soc
+      node"
+    - KVM: PPC: Book3S HV: XIVE: Free previous EQ page when setting up a new one
+    - KVM: PPC: Book3S HV: XIVE: Fix potential page leak on error path
+    - KVM: PPC: Book3S HV: XIVE: Set kvm->arch.xive when VPs are allocated
+    - KVM: nVMX: Always write vmcs02.GUEST_CR3 during nested VM-Enter
+    - KVM: arm/arm64: vgic: Don't rely on the wrong pending table
+    - KVM: x86: do not modify masked bits of shared MSRs
+    - KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
+    - KVM: x86: Remove a spurious export of a static function
+    - KVM: x86: Grab KVM's srcu lock when setting nested state
+    - crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr
+    - crypto: atmel-aes - Fix IV handling when req->nbytes < ivsize
+    - crypto: af_alg - cast ki_complete ternary op to int
+    - crypto: geode-aes - switch to skcipher for cbc(aes) fallback
+    - crypto: ccp - fix uninitialized list head
+    - crypto: ecdh - fix big endian bug in ECC library
+    - crypto: user - fix memory leak in crypto_report
+    - spi: spi-fsl-qspi: Clear TDH bits in FLSHCR register
+    - spi: stm32-qspi: Fix kernel oops when unbinding driver
+    - spi: atmel: Fix CS high support
+    - spi: Fix SPI_CS_HIGH setting when using native and GPIO CS
+    - spi: Fix NULL pointer when setting SPI_CS_HIGH for GPIO CS
+    - can: ucan: fix non-atomic allocation in completion handler
+    - RDMA/qib: Validate ->show()/store() callbacks before calling them
+    - rfkill: allocate static minor
+    - bdev: Factor out bdev revalidation into a common helper
+    - bdev: Refresh bdev size for disks without partitioning
+    - iomap: Fix pipe page leakage during splicing
+    - thermal: Fix deadlock in thermal thermal_zone_device_check
+    - vcs: prevent write access to vcsu devices
+    - Revert "serial/8250: Add support for NI-Serial PXI/PXIe+485 devices"
+    - binder: Fix race between mmap() and binder_alloc_print_pages()
+    - binder: Prevent repeated use of ->mmap() via NULL mapping
+    - binder: Handle start==NULL in binder_update_page_range()
+    - KVM: x86: fix out-of-bounds write in KVM_GET_EMULATED_CPUID (CVE-2019-19332)
+    - ALSA: hda - Fix pending unsol events at shutdown
+    - cpufreq: imx-cpufreq-dt: Correct i.MX8MN's default speed grade value
+    - md/raid0: Fix an error message in raid0_make_request()
+    - drm/mcde: Fix an error handling path in 'mcde_probe()'
+    - watchdog: aspeed: Fix clock behaviour for ast2600
+    - EDAC/ghes: Fix locking and memory barrier issues
+    - perf script: Fix invalid LBR/binary mismatch error
+    - kselftest: Fix NULL INSTALL_PATH for TARGETS runlist
+    - Linux 5.4.3
+
+  * Realtek ALC256M with DTS Audio Processing internal microphone doesn't work
+    on Redmi Book 14 2019 (LP: #1846148) // Focal update: v5.4.3 upstream stable
+    release (LP: #1856583)
+    - ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] add python depends to ubuntu-regression-suite
+    - SAUCE: selftests: net: tls: remove recv_rcvbuf test
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 16 Dec 2019 14:54:19 -0600
+
+linux (5.4.0-8.11) focal; urgency=medium
+
+  * focal/linux: 5.4.0-8.9 -proposed tracker (LP: #1855448)
+
+  * update ENA driver for DIMLIB dynamic interrupt moderation (LP: #1853180)
+    - SAUCE: net: ena: fix issues in setting interrupt moderation params in
+      ethtool
+    - SAUCE: net: ena: fix too long default tx interrupt moderation interval
+
+  * Kernel build log filled with "/bin/bash: line 5: warning: command
+    substitution: ignored null byte in input" (LP: #1853843)
+    - [Debian] Fix warnings when checking for modules signatures
+
+  * hwe-edge kernel 5.3.0-23.25 kernel does not boot on Precision 5720 AIO
+    (LP: #1852581)
+    - [Packaging] Fix module signing with older modinfo
+
+  * Fix MST support on Ice Lake (LP: #1854432)
+    - drm/i915: fix port checks for MST support on gen >= 11
+
+  * headphone has noise as not mute on dell machines with alc236/256
+    (LP: #1854401)
+    - SAUCE: ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
+
+  * [CML-S62] Need enable intel_pmc_core driver patch for Comet lake- S 6+2
+    (LP: #1847450)
+    - SAUCE: platform/x86: intel_pmc_core: Add Comet Lake (CML) platform support
+      to intel_pmc_core driver
+
+  * CVE-2019-14901
+    - SAUCE: mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
+
+  * CVE-2019-14896 // CVE-2019-14897
+    - SAUCE: libertas: Fix two buffer overflows at parsing bss descriptor
+
+  * CVE-2019-14895
+    - SAUCE: mwifiex: fix possible heap overflow in mwifiex_process_country_ie()
+
+  * [CML-S62] Need enable intel_rapl patch support for Comet lake- S 6+2
+    (LP: #1847454)
+    - powercap/intel_rapl: add support for CometLake Mobile
+    - powercap/intel_rapl: add support for Cometlake desktop
+
+  * External microphone can't work on some dell machines with the codec alc256
+    or alc236 (LP: #1853791)
+    - SAUCE: ALSA: hda/realtek - Move some alc256 pintbls to fallback table
+    - SAUCE: ALSA: hda/realtek - Move some alc236 pintbls to fallback table
+
+  * remount of multilower moved pivoted-root overlayfs root, results in I/O
+    errors on some modified files (LP: #1824407)
+    - SAUCE: ovl: fix lookup failure on multi lower squashfs
+
+  * [CML-S62] Need enable turbostat patch support for Comet lake- S 6+2
+    (LP: #1847451)
+    - SAUCE: tools/power turbostat: Add Cometlake support
+
+  * CONFIG_ARCH_ROCKCHIP is not set in ubuntu 18.04 aarch64,arm64 (LP: #1825222)
+    - [Config] Enable ROCKCHIP support for arm64
+
+  * [broadwell-rt286, playback] Since Linux 5.2rc2 audio playback no longer
+    works on Dell Venue 11 Pro 7140 (LP: #1846539)
+    - SAUCE: ASoC: SOF: Intel: Broadwell: clarify mutual exclusion with legacy
+      driver
+
+  * i40e: general protection fault in i40e_config_vf_promiscuous_mode
+    (LP: #1852663)
+    - SAUCE: i40e Fix GPF when deleting VMs
+
+  * libbpf check_abi fails on ppc64el (LP: #1854974)
+    - libbpf: Fix readelf output parsing on powerpc with recent binutils
+
+  * CVE-2019-19050
+    - crypto: user - fix memory leak in crypto_reportstat
+
+  * Make hotplugging docking station to Thunderbolt port more reliable
+    (LP: #1853991)
+    - PCI/PM: Add pcie_wait_for_link_delay()
+    - PCI/PM: Add missing link delays required by the PCIe spec
+
+  * i915: Display flickers (monitor loses signal briefly) during "flickerfree"
+    boot, while showing the BIOS logo on a black background (LP: #1836858)
+    - [Config] FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+
+  * [CML] New device id's for CMP-H (LP: #1846335)
+    - i2c: i801: Add support for Intel Comet Lake PCH-H
+    - mtd: spi-nor: intel-spi: Add support for Intel Comet Lake-H SPI serial flash
+    - mfd: intel-lpss: Add Intel Comet Lake PCH-H PCI IDs
+
+  * Focal update: v5.4.2 upstream stable release (LP: #1855326)
+    - io_uring: async workers should inherit the user creds
+    - net: separate out the msghdr copy from ___sys_{send,recv}msg()
+    - net: disallow ancillary data for __sys_{send,recv}msg_file()
+    - crypto: inside-secure - Fix stability issue with Macchiatobin
+    - driver core: platform: use the correct callback type for bus_find_device
+    - usb: dwc2: use a longer core rest timeout in dwc2_core_reset()
+    - staging: wilc1000: fix illegal memory access in wilc_parse_join_bss_param()
+    - staging: rtl8192e: fix potential use after free
+    - staging: rtl8723bs: Drop ACPI device ids
+    - staging: rtl8723bs: Add 024c:0525 to the list of SDIO device-ids
+    - USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
+    - mei: bus: prefix device names on bus with the bus name
+    - mei: me: add comet point V device id
+    - thunderbolt: Power cycle the router if NVM authentication fails
+    - x86/fpu: Don't cache access to fpu_fpregs_owner_ctx
+    - gve: Fix the queue page list allocated pages count
+    - macvlan: schedule bc_work even if error
+    - mdio_bus: don't use managed reset-controller
+    - net: dsa: sja1105: fix sja1105_parse_rgmii_delays()
+    - net: macb: add missed tasklet_kill
+    - net: psample: fix skb_over_panic
+    - net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
+    - openvswitch: fix flow command message size
+    - sctp: Fix memory leak in sctp_sf_do_5_2_4_dupcook
+    - slip: Fix use-after-free Read in slip_open
+    - sctp: cache netns in sctp_ep_common
+    - openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
+    - openvswitch: remove another BUG_ON()
+    - net/tls: take into account that bpf_exec_tx_verdict() may free the record
+    - net/tls: free the record on encryption error
+    - net: skmsg: fix TLS 1.3 crash with full sk_msg
+    - selftests/tls: add a test for fragmented messages
+    - net/tls: remove the dead inplace_crypto code
+    - net/tls: use sg_next() to walk sg entries
+    - selftests: bpf: test_sockmap: handle file creation failures gracefully
+    - selftests: bpf: correct perror strings
+    - tipc: fix link name length check
+    - selftests: pmtu: use -oneline for ip route list cache
+    - r8169: fix jumbo configuration for RTL8168evl
+    - r8169: fix resume on cable plug-in
+    - ext4: add more paranoia checking in ext4_expand_extra_isize handling
+    - Revert "jffs2: Fix possible null-pointer dereferences in
+      jffs2_add_frag_to_fragtree()"
+    - crypto: talitos - Fix build error by selecting LIB_DES
+    - HID: core: check whether Usage Page item is after Usage ID items
+    - platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
+    - platform/x86: hp-wmi: Fix ACPI errors caused by passing 0 as input size
+    - Linux 5.4.2
+
+  * no HDMI video output since GDM greeter after linux-oem-osp1 version
+    5.0.0-1026 (LP: #1852386)
+    - drm/i915: Add new CNL PCH ID seen on a CML platform
+    - SAUCE: drm/i915: Fix detection for a CMP-V PCH
+
+  * Please add patch fixing RK818 ID detection (LP: #1853192)
+    - SAUCE: mfd: rk808: Fix RK818 ID template
+
+  * Raydium Touchscreen on ThinkPad L390 does not work (LP: #1849721)
+    - HID: i2c-hid: fix no irq after reset on raydium 3118
+
+  * Touchpad doesn't work on Dell Inspiron 7000 2-in-1 (LP: #1851901)
+    - Revert "UBUNTU: SAUCE: mfd: intel-lpss: add quirk for Dell XPS 13 7390
+      2-in-1"
+    - lib: devres: add a helper function for ioremap_uc
+    - mfd: intel-lpss: Use devm_ioremap_uc for MMIO
+
+  * Lenovo dock MAC Address pass through doesn't work in Ubuntu  (LP: #1827961)
+    - r8152: Add macpassthru support for ThinkPad Thunderbolt 3 Dock Gen 2
+
+  * Disable unreliable HPET on CFL-H system (LP: #1852216)
+    - SAUCE: x86/intel: Disable HPET on Intel Coffe Lake H platforms
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] Enable virtualbox dkms build
+    - [Config] update annotations to match current configs
+    - SAUCE: Add exfat module to signature inclusion list
+
+  * Miscellaneous upstream changes
+    - Bluetooth: Fix invalid-free in bcsp_close()
+    - ath9k_hw: fix uninitialized variable data
+    - ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
+    - ath10k: Fix HOST capability QMI incompatibility
+    - ath10k: restore QCA9880-AR1A (v1) detection
+    - Revert "Bluetooth: hci_ll: set operational frequency earlier"
+    - Revert "dm crypt: use WQ_HIGHPRI for the IO and crypt workqueues"
+    - md/raid10: prevent access of uninitialized resync_pages offset
+    - x86/insn: Fix awk regexp warnings
+    - x86/speculation: Fix incorrect MDS/TAA mitigation status
+    - x86/speculation: Fix redundant MDS mitigation message
+    - nbd: prevent memory leak
+    - x86/stackframe/32: Repair 32-bit Xen PV
+    - x86/xen/32: Make xen_iret_crit_fixup() independent of frame layout
+    - x86/xen/32: Simplify ring check in xen_iret_crit_fixup()
+    - x86/doublefault/32: Fix stack canaries in the double fault handler
+    - x86/pti/32: Size initial_page_table correctly
+    - x86/cpu_entry_area: Add guard page for entry stack on 32bit
+    - x86/entry/32: Fix IRET exception
+    - x86/entry/32: Use %ss segment where required
+    - x86/entry/32: Move FIXUP_FRAME after pushing %fs in SAVE_ALL
+    - x86/entry/32: Unwind the ESPFIX stack earlier on exception entry
+    - x86/entry/32: Fix NMI vs ESPFIX
+    - selftests/x86/mov_ss_trap: Fix the SYSENTER test
+    - selftests/x86/sigreturn/32: Invalidate DS and ES when abusing the kernel
+    - x86/pti/32: Calculate the various PTI cpu_entry_area sizes correctly, make
+      the CPU_ENTRY_AREA_PAGES assert precise
+    - x86/entry/32: Fix FIXUP_ESPFIX_STACK with user CR3
+    - futex: Prevent robust futex exit race
+    - ALSA: usb-audio: Fix NULL dereference at parsing BADD
+    - ALSA: usb-audio: Fix Scarlett 6i6 Gen 2 port data
+    - media: vivid: Set vid_cap_streaming and vid_out_streaming to true
+    - media: vivid: Fix wrong locking that causes race conditions on streaming
+      stop
+    - media: usbvision: Fix invalid accesses after device disconnect
+    - media: usbvision: Fix races among open, close, and disconnect
+    - cpufreq: Add NULL checks to show() and store() methods of cpufreq
+    - futex: Move futex exit handling into futex code
+    - futex: Replace PF_EXITPIDONE with a state
+    - exit/exec: Seperate mm_release()
+    - futex: Split futex_mm_release() for exit/exec
+    - futex: Set task::futex_state to DEAD right after handling futex exit
+    - futex: Mark the begin of futex exit explicitly
+    - futex: Sanitize exit state handling
+    - futex: Provide state handling for exec() as well
+    - futex: Add mutex around futex exit
+    - futex: Provide distinct return value when owner is exiting
+    - futex: Prevent exit livelock
+    - media: uvcvideo: Fix error path in control parsing failure
+    - media: b2c2-flexcop-usb: add sanity checking
+    - media: cxusb: detect cxusb_ctrl_msg error in query
+    - media: imon: invalid dereference in imon_touch_event
+    - media: mceusb: fix out of bounds read in MCE receiver buffer
+    - ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs
+    - USBIP: add config dependency for SGL_ALLOC
+    - usbip: tools: fix fd leakage in the function of read_attr_usbip_status
+    - usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
+    - usb-serial: cp201x: support Mark-10 digital force gauge
+    - USB: chaoskey: fix error case of a timeout
+    - appledisplay: fix error handling in the scheduled work
+    - USB: serial: mos7840: add USB ID to support Moxa UPort 2210
+    - USB: serial: mos7720: fix remote wakeup
+    - USB: serial: mos7840: fix remote wakeup
+    - USB: serial: option: add support for DW5821e with eSIM support
+    - USB: serial: option: add support for Foxconn T77W968 LTE modules
+    - staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
+    - powerpc/book3s64: Fix link stack flush on context switch
+    - KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel
+    - Linux 5.4.1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 06 Dec 2019 15:53:53 -0600
+
+linux (5.4.0-7.8) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/bpf: Comment out BPF_CORE_READ's which cause clang to
+      segfault
+    - Update nvidia-430 to nvidia-440
+    - [Config] Enable nvidia dkms build
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 25 Nov 2019 15:02:30 +0100
+
+linux (5.4.0-6.7) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] updateconfigs after rebase to 5.4-rc8
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc7
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 18 Nov 2019 12:08:01 +0100
+
+linux (5.4.0-5.6) focal; urgency=medium
+
+  * refcount underflow and type confusion in shiftfs (LP: #1850867) //
+    CVE-2019-15793
+    - SAUCE: shiftfs: Correct id translation for lower fs operations
+
+  * refcount underflow and type confusion in shiftfs (LP: #1850867) //
+    CVE-2019-15792
+    - SAUCE: shiftfs: prevent type confusion
+
+  * refcount underflow and type confusion in shiftfs (LP: #1850867) //
+    CVE-2019-15791
+    - SAUCE: shiftfs: Fix refcount underflow in btrfs ioctl handling
+
+  * Some EFI systems fail to boot in efi_init() when booted via maas
+    (LP: #1851810)
+    - SAUCE: efi: efi_get_memory_map -- increase map headroom
+
+  * seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test (LP: #1849281)
+    - SAUCE: seccomp: rework define for SECCOMP_USER_NOTIF_FLAG_CONTINUE
+    - SAUCE: seccomp: avoid overflow in implicit constant conversion
+
+  * dkms artifacts may expire from the pool (LP: #1850958)
+    - [Packaging] dkms -- try launchpad librarian for pool downloads
+    - [Packaging] dkms -- dkms-build quieten wget verbiage
+
+  * tsc marked unstable after entered PC10 on Intel CoffeeLake (LP: #1840239)
+    - SAUCE: x86/intel: Disable HPET on Intel Coffe Lake platforms
+    - SAUCE: x86/intel: Disable HPET on Intel Ice Lake platforms
+
+  * shiftfs: prevent exceeding project quotas (LP: #1849483)
+    - SAUCE: shiftfs: drop CAP_SYS_RESOURCE from effective capabilities
+
+  * shiftfs: fix fallocate() (LP: #1849482)
+    - SAUCE: shiftfs: setup correct s_maxbytes limit
+
+  * The alsa hda driver is not loaded due to the missing of PCIID for Comet
+    Lake-S [8086:a3f0] (LP: #1852070)
+    - SAUCE: ALSA: hda: Add Cometlake-S PCI ID
+
+  * Can't adjust brightness on DELL UHD dGPU AIO (LP: #1813877)
+    - SAUCE: platform/x86: dell-uart-backlight: add missing status command
+    - SAUCE: platform/x86: dell-uart-backlight: load driver by scalar status
+    - SAUCE: platform/x86: dell-uart-backlight: add force parameter
+    - SAUCE: platform/x86: dell-uart-backlight: add quirk for old platforms
+
+  * s_iflags overlap prevents unprivileged overlayfs mounts (LP: #1851677)
+    - SAUCE: fs: Move SB_I_NOSUID to the top of s_iflags
+
+  * ubuntu-aufs-modified mmap_region() breaks refcounting in overlayfs/shiftfs
+    error path (LP: #1850994) // CVE-2019-15794
+    - SAUCE: shiftfs: Restore vm_file value when lower fs mmap fails
+    - SAUCE: ovl: Restore vm_file value when lower fs mmap fails
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Convert update-aufs.sh to use aufs5
+    - SAUCE: import aufs driver
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 13 Nov 2019 11:56:35 -0800
+
+linux (5.4.0-4.5) focal; urgency=medium
+
+  * High power consumption using 5.0.0-25-generic (LP: #1840835)
+    - PCI: Add a helper to check Power Resource Requirements _PR3 existence
+    - ALSA: hda: Allow HDA to be runtime suspended when dGPU is not bound to a
+      driver
+    - PCI: Fix missing inline for pci_pr3_present()
+
+  * Fix signing of staging modules in eoan (LP: #1850234)
+    - [Packaging] Leave unsigned modules unsigned after adding .gnu_debuglink
+
+  * [20.04 FEAT] Set Architecture Level (ALS) to z13 (LP: #1837525)
+    - [Config] s390x bump march to z13, with tune to z15
+
+  * Miscellaneous Ubuntu changes
+    - [Debian]: do not skip tests for linux-hwe-edge
+    - update dkms package versions
+    - [Config] re-enable zfs
+    - [Config] rename module virtio_fs to virtiofs
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc6
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 04 Nov 2019 15:12:02 +0100
+
+linux (5.4.0-3.4) focal; urgency=medium
+
+  * seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test (LP: #1849281)
+    - SAUCE: seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test
+
+  * cloudimg: no iavf/i40evf module so no network available with SR-IOV enabled
+    cloud (LP: #1848481)
+    - [Packaging] include iavf/i40evf in generic
+
+  * CVE-2019-17666
+    - SAUCE: rtlwifi: Fix potential overflow on P2P code
+
+  * Change Config Option CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE for s390x from yes
+    to no (LP: #1848492)
+    - [Config] Change Config Option CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE for s390x
+      from yes to no
+
+  * Add Intel Comet Lake ethernet support (LP: #1848555)
+    - SAUCE: e1000e: Add support for Comet Lake
+
+  * seccomp: add SECCOMP_USER_NOTIF_FLAG_CONTINUE    (LP: #1847744)
+    - SAUCE: seccomp: add SECCOMP_USER_NOTIF_FLAG_CONTINUE
+    - SAUCE: seccomp: test SECCOMP_USER_NOTIF_FLAG_CONTINUE
+
+  * drm/i915: Fix the issue of "azx_get_response timeout" for hdmi audio on ICL
+    platforms (LP: #1847192)
+    - SAUCE: drm/i915: Fix audio power up sequence for gen10+ display
+    - SAUCE: drm/i915: extend audio CDCLK>=2*BCLK constraint to more platforms
+
+  * PM / hibernate: fix potential memory corruption (LP: #1847118)
+    - SAUCE: PM / hibernate: memory_bm_find_bit -- tighten node optimisation
+
+  * [regression] NoNewPrivileges incompatible with Apparmor (LP: #1844186)
+    - SAUCE: apparmor: fix nnp subset test for unconfined
+
+  * overlayfs: allow with shiftfs as underlay (LP: #1846272)
+    - SAUCE: overlayfs: allow with shiftfs as underlay
+
+  * eoan: alsa/sof: Enable SOF_HDA link and codec (LP: #1848490)
+    - [Config] Fix SOF Kconfig options
+
+  * linux won't build when new virtualbox version is present on the archive
+    (LP: #1848788)
+    - [Packaging]: download virtualbox from sources
+
+  * Miscellaneous Ubuntu changes
+    - [Config] update annotations from configs
+    - [Config] updateconfigs after rebase to 5.4-rc5
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 29 Oct 2019 12:01:27 -0500
+
+linux (5.4.0-2.3) eoan; urgency=medium
+
+  * Add installer support for iwlmvm adapters (LP: #1848236)
+    - d-i: Add iwlmvm to nic-modules
+
+  * shiftfs: rework how shiftfs opens files (LP: #1846265)
+    - SAUCE: shiftfs: rework how shiftfs opens files
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] updateconfigs after rebase to 5.4-rc4
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc4
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 21 Oct 2019 17:31:26 +0200
+
+linux (5.4.0-1.2) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] updateconfigs after rebase to 5.4-rc3
+    - [Config] add flexfb, fbtft_device and rio500 to modules.ignore
+    - [Config] amd64: ignore fbtft and all dependent modules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc3
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 14 Oct 2019 19:48:52 +0200
+
+linux (5.4.0-0.1) eoan; urgency=medium
+
+  * Enable the Dragonboards out of Eoan/master arm64 kernel (LP: #1846704)
+    - [Packaging] arm64: snapdragon: introduce a snapdragon flavour
+    - [Packaging] arm64: snapdragon: switch kernel format to Image
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8916=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8994=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8996=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8998=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_RPMH=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_BAM_DMA=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_HIDMA_MGMT=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_HIDMA=y
+    - [Config] arm64: snapdragon: CONFIG_COMMON_CLK_QCOM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_RPMH=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8916=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8994=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_MMCC_8996=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8998=y
+    - [Config] arm64: snapdragon: CONFIG_HWSPINLOCK_QCOM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_APCS_IPC=y
+    - [Config] arm64: snapdragon: CONFIG_RPMSG_QCOM_GLINK_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_GENI_SE=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMEM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMD_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMP2P=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMSM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_QFPROM=y
+    - [Config] arm64: snapdragon: CONFIG_SERIAL_QCOM_GENI=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_TSENS=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_SMD_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_SMD_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_RPMSG_QCOM_SMD=y
+    - [Config] arm64: snapdragon: CONFIG_MFD_QCOM_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_SCSI_UFSHCD=y
+    - [Config] arm64: snapdragon: CONFIG_SCSI_UFSHCD_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_SCSI_UFS_HISI=y
+    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI=y
+    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI_PLTFM=y
+    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI_MSM=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_SPMI=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_USB_HS=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_QMP=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_UFS=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_USB_HSIC=y
+    - [Config] arm64: snapdragon: CONFIG_USB_CHIPIDEA_OF=y
+    - [Config] arm64: snapdragon: CONFIG_USB_EHCI_HCD_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_EXTCON_USB_GPIO=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_FIXED_VOLTAGE=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_GPIO=y
+    - [Config] arm64: snapdragon: CONFIG_USB_HSIC_USB3503=y
+    - [Config] arm64: snapdragon: CONFIG_USB_NET_DRIVERS=y
+    - [Config] arm64: snapdragon: CONFIG_USB_OTG=y
+    - [Config] arm64: snapdragon: CONFIG_USB_XHCI_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_USB_OHCI_HCD_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_USB_MUSB_HDRC=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3_PCI=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3_OF_SIMPLE=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3_QCOM=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_PWM=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_A53PLL=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_APCS_MSM8916=y
+    - [Config] arm64: snapdragon: CONFIG_NLS_ISO8859_1=y
+    - [Config] arm64: snapdragon: CONFIG_USB_USBNET=y
+    - [Config] arm64: snapdragon: CONFIG_CRYPTO_DEV_QCOM_RNG=y
+    - [Config] arm64: snapdragon: CONFIG_POWER_RESET_QCOM_PON=y
+    - [Config] arm64: snapdragon: CONFIG_INPUT_PM8941_PWRKEY=y
+    - [Config] arm64: snapdragon: CONFIG_KEYBOARD_GPIO=y
+    - [Config] arm64: snapdragon: CONFIG_RTC_DRV_PM8XXX=y
+
+  * Miscellaneous Ubuntu changes
+    - [Config] updateconfigs after rebase to 5.4-rc2
+    - SAUCE: (lockdown) Make get_cert_list() not complain about cert lists that
+      aren't present.
+    - SAUCE: (lockdown) Add efi_status_to_str() and rework efi_status_to_err().
+    - SAUCE: (lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (lockdown) security: lockdown: expose a hook to lock the kernel down
+    - SAUCE: (lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure boot
+      mode
+    - SAUCE: (lockdown) efi: Lock down the kernel if booted in secure boot mode
+    - SAUCE: (lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (lockdown) KEYS: Make use of platform keyring for module signature
+      verify
+    - SAUCE: (lockdown) arm64: Allow locking down the kernel under EFI secure boot
+    - SAUCE: (lockdown) security: lockdown: Make
+      CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT more generic
+    - SAUCE: (lockdown) s390/ipl: lockdown kernel when booted secure
+    - [Config] Enable lockdown under secure boot
+    - SAUCE: import aufs driver
+    - SAUCE: aufs: rwsem owner changed to atmoic_long_t in 5.3
+    - SAUCE: aufs: add "WITH Linux-syscall-note" to SPDX tag of uapi headers
+    - [Config] enable aufs
+    - update dkms package versions
+    - [Config] disable zfs
+    - [Config] disable nvidia dkms build
+    - [Config] disable virtualbox dkms build
+    - [Debian] Generate stub reconstruct for -rc kernels
+    - Revert "UBUNTU: SAUCE: (namespace) block_dev: Forbid unprivileged mounting
+      when device is opened for writing"
+    - Revert "UBUNTU: SAUCE: (namespace) ext4: Add module parameter to enable user
+      namespace mounts"
+    - Revert "UBUNTU: SAUCE: (namespace) ext4: Add support for unprivileged mounts
+      from user namespaces"
+    - Revert "UBUNTU: SAUCE: (namespace) mtd: Check permissions towards mtd block
+      device inode when mounting"
+    - Revert "UBUNTU: SAUCE: (namespace) block_dev: Check permissions towards
+      block device inode when mounting"
+    - Revert "UBUNTU: SAUCE: (namespace) block_dev: Support checking inode
+      permissions in lookup_bdev()"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 11 Oct 2019 16:42:41 -0500
+
+linux (5.4.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 08 Oct 2019 09:59:00 -0500
+
+linux (5.3.0-17.18) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-17.18 -proposed tracker (LP: #1846641)
+
+  * CVE-2019-17056
+    - nfc: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17055
+    - mISDN: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17054
+    - appletalk: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17053
+    - ieee802154: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17052
+    - ax25: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-15098
+    - ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
+
+  * xHCI on AMD Stoney Ridge cannot detect USB 2.0 or 1.1 devices.
+    (LP: #1846470)
+    - x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect
+
+  * Re-enable linux-libc-dev build on i386 (LP: #1846508)
+    - [Packaging] Build only linux-libc-dev for i386
+    - [Debian] final-checks -- ignore archtictures with no binaries
+
+  * arm64: loop on boot after installing linux-generic-hwe-18.04-edge/bionic-
+    proposed (LP: #1845820)
+    - [Config] Disable CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT
+
+  * Revert ESE DASD discard support (LP: #1846219)
+    - SAUCE: Revert "s390/dasd: Add discard support for ESE volumes"
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 03 Oct 2019 16:57:05 -0500
+
+linux (5.3.0-16.17) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-16.17 -proposed tracker (LP: #1846204)
+
+  * zfs fails to build on s390x  with debug symbols enabled (LP: #1846143)
+    - SAUCE: s390: Mark atomic const ops always inline
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 01 Oct 2019 07:46:43 -0500
+
+linux (5.3.0-15.16) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-15.16 -proposed tracker (LP: #1845987)
+
+  * Drop i386 build for 19.10 (LP: #1845714)
+    - [Packaging] Remove x32 arch references from control files
+    - [Debian] final-checks -- Get arch list from debian/control
+
+  * ZFS kernel modules lack debug symbols (LP: #1840704)
+    - [Debian] Fix conditional for setting zfs debug package path
+
+  * Use pyhon3-sphinx instead of python-sphinx for building html docs
+    (LP: #1845808)
+    - [Packaging] Update sphinx build dependencies to python3 packages
+
+  * Kernel panic with 19.10 beta image (LP: #1845454)
+    - efi/tpm: Don't access event->count when it isn't mapped.
+    - efi/tpm: don't traverse an event log with no events
+    - efi/tpm: only set efi_tpm_final_log_size after successful event log parsing
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 30 Sep 2019 11:57:20 -0500
+
+linux (5.3.0-14.15) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-14.15 -proposed tracker (LP: #1845728)
+
+  * Drop i386 build for 19.10 (LP: #1845714)
+    - [Debian] Remove support for producing i386 kernels
+    - [Debian] Don't use CROSS_COMPILE for i386 configs
+
+  * udevadm trigger will fail when trying to add /sys/devices/vio/
+    (LP: #1845572)
+    - SAUCE: powerpc/vio: drop bus_type from parent device
+
+  * Trying to online dasd drive results in invalid input/output from the kernel
+    on z/VM (LP: #1845323)
+    - SAUCE: s390/dasd: Fix error handling during online processing
+
+  * intel-lpss driver conflicts with write-combining MTRR region (LP: #1845584)
+    - SAUCE: mfd: intel-lpss: add quirk for Dell XPS 13 7390 2-in-1
+
+  * Support Hi1620 zip hw accelerator (LP: #1845355)
+    - [Config] Enable HiSilicon QM/ZIP as modules
+    - crypto: hisilicon - add queue management driver for HiSilicon QM module
+    - crypto: hisilicon - add hardware SGL support
+    - crypto: hisilicon - add HiSilicon ZIP accelerator support
+    - crypto: hisilicon - add SRIOV support for ZIP
+    - Documentation: Add debugfs doc for hisi_zip
+    - crypto: hisilicon - add debugfs for ZIP and QM
+    - MAINTAINERS: add maintainer for HiSilicon QM and ZIP controller driver
+    - crypto: hisilicon - fix kbuild warnings
+    - crypto: hisilicon - add dependency for CRYPTO_DEV_HISI_ZIP
+    - crypto: hisilicon - init curr_sgl_dma to fix compile warning
+    - crypto: hisilicon - add missing single_release
+    - crypto: hisilicon - fix error handle in hisi_zip_create_req_q
+    - crypto: hisilicon - Fix warning on printing %p with dma_addr_t
+    - crypto: hisilicon - Fix return value check in hisi_zip_acompress()
+    - crypto: hisilicon - avoid unused function warning
+
+  * SafeSetID LSM should be built but disabled by default (LP: #1845391)
+    - LSM: SafeSetID: Stop releasing uninitialized ruleset
+    - [Config] Build SafeSetID LSM but don't enable it by default
+
+  * CONFIG_LSM should not specify loadpin since it is not built (LP: #1845383)
+    - [Config] loadpin shouldn't be in CONFIG_LSM
+
+  * Add new pci-id's for CML-S, ICL (LP: #1845317)
+    - drm/i915/icl: Add missing device ID
+    - drm/i915/cml: Add Missing PCI IDs
+
+  * Thunderbolt support for ICL (LP: #1844680)
+    - thunderbolt: Correct path indices for PCIe tunnel
+    - thunderbolt: Move NVM upgrade support flag to struct icm
+    - thunderbolt: Use 32-bit writes when writing ring producer/consumer
+    - thunderbolt: Do not fail adding switch if some port is not implemented
+    - thunderbolt: Hide switch attributes that are not set
+    - thunderbolt: Expose active parts of NVM even if upgrade is not supported
+    - thunderbolt: Add support for Intel Ice Lake
+    - ACPI / property: Add two new Thunderbolt property GUIDs to the list
+
+  * Ubuntu 19.10 -  Additional PCI patch and fix (LP: #1844668)
+    - s390/pci: fix MSI message data
+
+  * Enhanced Hardware Support - Finalize Naming (LP: #1842774)
+    - s390: add support for IBM z15 machines
+    - [Config] CONFIG_MARCH_Z15=n, CONFIG_TUNE_Z15=n
+
+  * Eoan update: v5.3.1 upstream stable release (LP: #1845642)
+    - USB: usbcore: Fix slab-out-of-bounds bug during device reset
+    - media: tm6000: double free if usb disconnect while streaming
+    - phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
+    - ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
+    - net/sched: fix race between deactivation and dequeue for NOLOCK qdisc
+    - net_sched: let qdisc_put() accept NULL pointer
+    - udp: correct reuseport selection with connected sockets
+    - xen-netfront: do not assume sk_buff_head list is empty in error handling
+    - net: dsa: Fix load order between DSA drivers and taggers
+    - net: stmmac: Hold rtnl lock in suspend/resume callbacks
+    - KVM: coalesced_mmio: add bounds checking
+    - Documentation: sphinx: Add missing comma to list of strings
+    - firmware: google: check if size is valid when decoding VPD data
+    - serial: sprd: correct the wrong sequence of arguments
+    - tty/serial: atmel: reschedule TX after RX was started
+    - nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
+    - Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
+    - ovl: fix regression caused by overlapping layers detection
+    - phy: qcom-qmp: Correct ready status, again
+    - floppy: fix usercopy direction
+    - media: technisat-usb2: break out of loop at end of buffer
+    - Linux 5.3.1
+
+  * ZFS kernel modules lack debug symbols (LP: #1840704)
+    - [Debian]: Remove hardcoded $(pkgdir) in debug symbols handling
+    - [Debian]: Handle debug symbols for modules in extras too
+    - [Debian]: Check/link modules with debug symbols after DKMS modules
+    - [Debian]: Warn about modules without debug symbols
+    - [Debian]: dkms-build: new parameter for debug package directory
+    - [Debian]: dkms-build: zfs: support for debug symbols
+    - [Debian]: dkms-build: Avoid executing post-processor scripts twice
+    - [Debian]: dkms-build: Move zfs special-casing into configure script
+
+  * /proc/self/maps paths missing on live session (was vlc won't start; eoan
+    19.10 & bionic 18.04 ubuntu/lubuntu/kubuntu/xubuntu/ubuntu-mate dailies)
+    (LP: #1842382)
+    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: enable overlayfs on shiftfs"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 27 Sep 2019 16:08:06 -0500
+
+linux (5.3.0-13.14) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-13.14 -proposed tracker (LP: #1845105)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Remove binutils-dev build dependency
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 23 Sep 2019 19:26:43 -0500
+
+linux (5.3.0-12.13) eoan; urgency=medium
+
+  * Change kernel compression method to improve boot speed (LP: #1840934)
+    - [Packaging] Add lz4 build dependency for s390x
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Remove spl and zfs source
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 17 Sep 2019 13:36:26 +0200
+
+linux (5.3.0-11.12) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-11.12 -proposed tracker (LP: #1844144)
+
+  *  Suspend to RAM(S3) does not wake up for latest megaraid and mpt3sas
+    adapters(SAS3.5 onwards) (LP: #1838751)
+    - PCI: Restore Resizable BAR size bits correctly for 1MB BARs
+
+  * s390/setup: Actually init kernel lock down (LP: #1843961)
+    - SAUCE: (lockdown) s390/setup: Actually init kernel lock down
+
+  * cherrypick has_sipl fix (LP: #1843960)
+    - SAUCE: s390/sclp: Fix bit checked for has_sipl
+
+  * Change kernel compression method to improve boot speed (LP: #1840934)
+    - [Config]: Switch kernel compression from LZO to LZ4 on s390x
+
+  * Installation fails on eoan/PowerVM : missing /dev/nvram (LP: #1837726)
+    - [Config] CONFIG_NVRAM=y for ppc64el
+
+  * Miscellaneous Ubuntu changes
+    - [Config]: remove nvram from ppc64el modules ABI
+    - [Config] Update annotations for recent config changes
+    - SAUCE: sched: Add __ASSEMBLY__ guards around struct clone_args
+    - SAUCE: i2c: qcom-geni: Disable DMA processing on the Lenovo Yoga C630
+    - SAUCE: arm64: dts: qcom: Add Lenovo Yoga C630
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 16 Sep 2019 16:18:27 +0200
+
+linux (5.3.0-10.11) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-10.11 -proposed tracker (LP: #1843232)
+
+  * No sound inputs from the external microphone and headset on a Dell machine
+    (LP: #1842265)
+    - SAUCE: ALSA: hda - Expand pin_match function to match upcoming new tbls
+    - SAUCE: ALSA: hda - Define a fallback_pin_fixup_tbl for alc269 family
+
+  * Horizontal corrupted line at top of screen caused by framebuffer compression
+    (LP: #1840236)
+    - SAUCE: drm/i915/fbc: disable framebuffer compression on IceLake
+
+  * Add bpftool to linux-tools-common (LP: #1774815)
+    - [Debian] package bpftool in linux-tools-common
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc8
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 09 Sep 2019 10:00:41 +0200
+
+linux (5.3.0-9.10) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-9.10 -proposed tracker (LP: #1842393)
+
+  * shiftfs: mark kmem_cache as reclaimable (LP: #1842059)
+    - SAUCE: shiftfs: mark slab objects SLAB_RECLAIM_ACCOUNT
+
+  * shiftfs: drop entries from cache on unlink (LP: #1841977)
+    - SAUCE: shiftfs: fix buggy unlink logic
+
+  * Fix touchpad IRQ storm after S3 (LP: #1841396)
+    - pinctrl: intel: remap the pin number to gpio offset for irq enabled pin
+
+  * Please include DTBs for arm64 laptops (LP: #1842050)
+    - arm64: dts: qcom: Add Lenovo Miix 630
+    - arm64: dts: qcom: Add HP Envy x2
+    - arm64: dts: qcom: Add Asus NovaGo TP370QL
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: import aufs driver
+    - [Packaging]: ignore vbox modules when vbox is disabled
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc7
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Tue, 03 Sep 2019 10:27:33 +0200
+
+linux (5.3.0-8.9) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+  * Change kernel compression method to improve boot speed (LP: #1840934)
+    - [Config] change kernel compression method to improve boot speed
+    - [Packaging] add build dependencies for compression algorithms
+
+  * realtek r8822be kernel module fails after update to linux kernel-headers
+    5.0.0-21 (LP: #1838133)
+    - rtw88: Fix misuse of GENMASK macro
+    - rtw88: pci: Rearrange the memory usage for skb in RX ISR
+    - rtw88: pci: Use DMA sync instead of remapping in RX ISR
+    - rtw88: debug: dump tx power indexes in use
+    - rtw88: use txpwr_lmt_cfg_pair struct, not arrays
+    - rtw88: pci: remove set but not used variable 'ip_sel'
+    - rtw88: allow c2h operation in irq context
+    - rtw88: enclose c2h cmd handle with mutex
+    - rtw88: add BT co-existence support
+    - SAUCE: rtw88: pci: enable MSI interrupt
+
+  * VIMC module not available (CONFIG_VIDEO_VIMC not set) (LP: #1831482)
+    - [Config] Enable VIMC module
+
+  * Goodix touchpad may drop first input event (LP: #1840075)
+    - Revert "UBUNTU: SAUCE: i2c: designware: add G3 3590 into i2c quirk"
+    - Revert "UBUNTU: SAUCE: i2c: designware: add Inpiron 7591 into i2c quirk"
+    - Revert "UBUNTU: SAUCE: i2c: designware: add Inpiron/Vostro 7590 into i2c
+      quirk"
+    - Revert "UBUNTU: SAUCE: i2c: designware: Add disable runtime pm quirk"
+    - mfd: intel-lpss: Remove D3cold delay
+
+  * Include Sunix serial/parallel driver (LP: #1826716)
+    - serial: 8250_pci: Add support for Sunix serial boards
+    - parport: parport_serial: Add support for Sunix Multi I/O boards
+
+  * enable lockdown on s390x when Secure IPL is performed (LP: #1839622)
+    - SAUCE: (lockdown) s390/ipl: lockdown kernel when booted secure
+    - Ubuntu: [Config] Enable CONFIG_LOCK_DOWN_KERNEL on s390x.
+
+  * UBUNTU: SAUCE: shiftfs: pass correct point down (LP: #1837231)
+    - SAUCE: shiftfs: pass correct point down
+
+  * shiftfs: add O_DIRECT support (LP: #1837223)
+    - SAUCE: shiftfs: add O_DIRECT support
+
+  * Miscellaneous Ubuntu changes
+    - [Config] enable secureboot signing on s390x
+    - [Config] CONFIG_TEST_BLACKHOLE_DEV=m
+    - SAUCE: selftests: fib_tests: assign address to dummy1 for rp_filter tests
+    - [Debian] disable dkms builds for autopktest rebuilds
+    - update dkms package versions
+    - [Config] updateconfigs after v5.3-rc6 rebase
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc5
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 26 Aug 2019 10:09:42 +0200
+
+linux (5.3.0-7.8) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+  * Miscellaneous Ubuntu changes
+    - [Config] updateconfigs after v5.3-rc5 rebase
+    - remove missing module after updateconfigs
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc5
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 19 Aug 2019 15:31:24 +0200
+
+linux (5.3.0-6.7) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/bpf: prevent headers to be compiled as C code
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 14 Aug 2019 13:25:01 -0500
+
+linux (5.3.0-5.6) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] enable zfs build
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 13 Aug 2019 09:16:06 -0500
+
+linux (5.3.0-4.5) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+
+  * bcache: bch_allocator_thread(): hung task timeout (LP: #1784665) // Tight
+    timeout for bcache removal causes spurious failures (LP: #1796292)
+    - SAUCE: bcache: fix deadlock in bcache_allocator
+
+  * shiftfs: allow overlayfs (LP: #1838677)
+    - SAUCE: shiftfs: enable overlayfs on shiftfs
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Revert "kbuild: modpost: do not parse unnecessary rules for vmlinux
+      modpost"
+    - update dkms package versions
+    - enable nvidia dkms build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 12 Aug 2019 10:41:27 -0500
+
+linux (5.3.0-3.4) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - SAUCE: aufs: add "WITH Linux-syscall-note" to SPDX tag of uapi headers
+    - [Config] add mux-* to modules.ignore
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc3
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 05 Aug 2019 18:17:09 +0200
+
+linux (5.3.0-2.3) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] add build dependincy on fontconfig
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 29 Jul 2019 12:18:46 -0400
+
+linux (5.3.0-1.2) eoan; urgency=medium
+
+  * System does not auto detect disconnection of external monitor (LP: #1835001)
+    - SAUCE: drm/i915: Add support for retrying hotplug
+    - SAUCE: drm/i915: Enable hotplug retry
+
+  * Please enable CONFIG_SCSI_UFS_QCOM as a module on arm64 (LP: #1837332)
+    - [Config] Enable CONFIG_SCSI_UFS_QCOM as a module on arm64.
+
+  * Add arm64 CONFIG_ARCH_MESON=y and related configs Edit (LP: #1820530)
+    - [Config] enable ARCH_MESON
+    - remove missing module
+    - [Config] update annotations after enabling ARCH_MESON for arm64
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: KVM: PPC: comment implicit fallthrough
+    - update dkms package versions
+    - [Config] enable vbox dkms build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 28 Jul 2019 23:10:16 -0400
+
+linux (5.3.0-0.1) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and
+      KEXEC_SIG_FORCE
+    - SAUCE: (efi-lockdown) kexec_file: Restrict at runtime if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) lockdown: Print current->comm in restriction messages
+    - SAUCE: (efi-lockdown) kexec: Allow kexec_file() with appropriate IMA policy
+      when locked down
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) KEYS: Make use of platform keyring for module
+      signature verify
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) furter KEXEC_VERIFY_SIG -> KEXEC_SIG updates
+    - SAUCE: (efi-lockdown) arm64: add kernel config option to lock down when in
+      Secure Boot mode
+    - SAUCE: import aufs driver
+    - SAUCE: aufs: rwsem owner changed to atmoic_long_t in 5.3
+    - [Config] disable zfs dkms build
+    - [Config] disable nvidia dkms build
+    - [Config] disable vbox dkms build
+    - SAUCE: perf diff: use llabs for s64 vaules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 23 Jul 2019 21:45:44 -0500
+
+linux (5.3.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 22 Jul 2019 10:19:04 -0500
+
+linux (5.2.0-9.10) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * input/mouse: alps trackpoint-only device doesn't work (LP: #1836752)
+    - SAUCE: Input: alps - don't handle ALPS cs19 trackpoint-only device
+    - SAUCE: Input: alps - fix a mismatch between a condition check and its
+      comment
+
+  * System does not auto detect disconnection of external monitor (LP: #1835001)
+    - SAUCE: drm/i915: Add support for retrying hotplug
+    - SAUCE: drm/i915: Enable hotplug retry
+
+  * alsa/hdmi: add icelake hdmi audio support for a Dell machine (LP: #1836916)
+    - SAUCE: ALSA: hda/hdmi - Remove duplicated define
+    - SAUCE: ALSA: hda/hdmi - Fix i915 reverse port/pin mapping
+
+  * First click on Goodix touchpad doesn't be recognized after runtime suspended
+    (LP: #1836836)
+    - SAUCE: i2c: designware: add G3 3590 into i2c quirk
+
+  * ixgbe{vf} - Physical Function gets IRQ when VF checks link state
+    (LP: #1836760)
+    - ixgbevf: Use cached link state instead of re-reading the value for ethtool
+
+  * Doing multiple squashfs (and other loop?) mounts in parallel breaks
+    (LP: #1836914)
+    - SAUCE: Revert "loop: Don't change loop device under exclusive opener"
+
+  * hibmc-drm Causes Unreadable Display for Huawei amd64 Servers (LP: #1762940)
+    - SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64
+    - [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only
+    - [Config] add hibmc-drm to modules.ignore
+
+  * hda/realtek: can't detect external mic on a Dell machine (LP: #1836755)
+    - ALSA: hda/realtek: apply ALC891 headset fixup to one Dell machine
+
+  * Enable Armada SOCs and MVPP2 NIC driver for disco/generic arm64
+    (LP: #1835054)
+    - [Config] Enable Armada SOCs and MVPP2 NIC driver for disco/generic arm64
+
+  * Unhide Nvidia HDA audio controller (LP: #1836308)
+    - PCI: Enable NVIDIA HDA controllers
+
+  * Intel ethernet I219 may wrongly detect connection speed as 10Mbps
+    (LP: #1836177)
+    - e1000e: Make watchdog use delayed work
+
+  * Sometimes touchpad(goodix) can't use tap function (LP: #1836020)
+    - SAUCE: i2c: designware: add Inpiron/Vostro 7590 into i2c quirk
+    - SAUCE: i2c: designware: add Inpiron 7591 into i2c quirk
+
+  * Intel ethernet I219 has slow RX speed (LP: #1836152)
+    - e1000e: add workaround for possible stalled packet
+    - e1000e: disable force K1-off feature
+
+  * bcache: risk of data loss on I/O errors in backing or caching devices
+    (LP: #1829563)
+    - Revert "bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()"
+
+  * bnx2x driver causes 100% CPU load (LP: #1832082)
+    - bnx2x: Prevent ptp_task to be rescheduled indefinitely
+
+  * fcf-protection=none patch with new version
+    - Revert "UBUNTU: SAUCE: kbuild: add -fcf-protection=none to retpoline flags"
+    - SAUCE: kbuild: add -fcf-protection=none when using retpoline flags
+
+  * CVE-2019-12614
+    - powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property()
+
+  * Eoan update: v5.2.1 upstream stable release (LP: #1836622)
+    - crypto: lrw - use correct alignmask
+    - crypto: talitos - rename alternative AEAD algos.
+    - fscrypt: don't set policy for a dead directory
+    - udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
+    - media: stv0297: fix frequency range limit
+    - ALSA: usb-audio: Fix parse of UAC2 Extension Units
+    - ALSA: hda/realtek - Headphone Mic can't record after S3
+    - tpm: Actually fail on TPM errors during "get random"
+    - tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
+    - block: fix .bi_size overflow
+    - block, bfq: NULL out the bic when it's no longer valid
+    - perf intel-pt: Fix itrace defaults for perf script
+    - perf auxtrace: Fix itrace defaults for perf script
+    - perf intel-pt: Fix itrace defaults for perf script intel-pt documentation
+    - perf pmu: Fix uncore PMU alias list for ARM64
+    - perf thread-stack: Fix thread stack return from kernel for kernel-only case
+    - perf header: Assign proper ff->ph in perf_event__synthesize_features()
+    - x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
+    - x86/tls: Fix possible spectre-v1 in do_get_thread_area()
+    - Documentation: Add section about CPU vulnerabilities for Spectre
+    - Documentation/admin: Remove the vsyscall=native documentation
+    - mwifiex: Don't abort on small, spec-compliant vendor IEs
+    - USB: serial: ftdi_sio: add ID for isodebug v1
+    - USB: serial: option: add support for GosunCn ME3630 RNDIS mode
+    - Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
+    - p54usb: Fix race between disconnect and firmware loading
+    - usb: gadget: f_fs: data_len used before properly set
+    - usb: gadget: ether: Fix race between gether_disconnect and rx_submit
+    - usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
+    - usb: renesas_usbhs: add a workaround for a race condition of workqueue
+    - drivers/usb/typec/tps6598x.c: fix portinfo width
+    - drivers/usb/typec/tps6598x.c: fix 4CC cmd write
+    - p54: fix crash during initialization
+    - staging: comedi: dt282x: fix a null pointer deref on interrupt
+    - staging: wilc1000: fix error path cleanup in wilc_wlan_initialize()
+    - staging: bcm2835-camera: Restore return behavior of ctrl_set_bitrate()
+    - staging: comedi: amplc_pci230: fix null pointer deref on interrupt
+    - staging: mt7621-pci: fix PCIE_FTS_NUM_LO macro
+    - HID: Add another Primax PIXART OEM mouse quirk
+    - lkdtm: support llvm-objcopy
+    - binder: fix memory leak in error path
+    - binder: return errors from buffer copy functions
+    - iio: adc: stm32-adc: add missing vdda-supply
+    - coresight: Potential uninitialized variable in probe()
+    - coresight: etb10: Do not call smp_processor_id from preemptible
+    - coresight: tmc-etr: Do not call smp_processor_id() from preemptible
+    - coresight: tmc-etr: alloc_perf_buf: Do not call smp_processor_id from
+      preemptible
+    - coresight: tmc-etf: Do not call smp_processor_id from preemptible
+    - carl9170: fix misuse of device driver API
+    - Revert "x86/build: Move _etext to actual end of .text"
+    - VMCI: Fix integer overflow in VMCI handle arrays
+    - staging: vchiq_2835_arm: revert "quit using custom down_interruptible()"
+    - staging: vchiq: make wait events interruptible
+    - staging: vchiq: revert "switch to wait_for_completion_killable"
+    - staging: fsl-dpaa2/ethsw: fix memory leak of switchdev_work
+    - staging: bcm2835-camera: Replace spinlock protecting context_map with mutex
+    - staging: bcm2835-camera: Ensure all buffers are returned on disable
+    - staging: bcm2835-camera: Remove check of the number of buffers supplied
+    - staging: bcm2835-camera: Handle empty EOS buffers whilst streaming
+    - staging: rtl8712: reduce stack usage, again
+    - Linux 5.2.1
+    - [Config] updateconfigs after v5.2.1 stable update
+
+  * fcf-protection=none patch with upstream version
+    - Revert "UBUNTU: SAUCE: add -fcf-protection=none to retpoline flags"
+    - SAUCE: kbuild: add -fcf-protection=none to retpoline flags
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/ftrace: avoid failure when trying to probe a notrace
+      function
+    - SAUCE: selftests/powerpc/ptrace: fix build failure
+    - update dkms package versions
+    - [Packaging] add zlua to zfs-modules.ignore
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 19 Jul 2019 15:04:45 -0500
+
+linux (5.2.0-8.9) eoan; urgency=medium
+
+  * linux: 5.2.0-8.9 -proposed tracker (LP: #1835700)
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] replace zfs and spl build with zfs 0.8.1-1ubuntu1
+    - SAUCE: test_bpf: remove expected fail for Ctx heavy transformations test on
+      s390
+    - SAUCE: add -fcf-protection=none to retpoline flags
+    - SAUCE: usbip: ensure strings copied using strncpy are null-terminated
+    - SAUCE: usbip: add -Wno-address-of-packed-member to EXTRA_CFLAGS
+    - SAUCE: perf jvmti: ensure strncpy result is null-terminated
+    - update dkms package versions
+    - add removed zfs modules to modules.ignore
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 08 Jul 2019 07:13:41 -0500
+
+linux (5.2.0-7.8) eoan; urgency=medium
+
+  * Kernel panic upon resetting ixgbe SR-IOV VFIO virtual function using 5.0
+    kernel (LP: #1829652)
+    - SAUCE: ixgbe: Avoid NULL pointer dereference with VF on non-IPsec hw
+
+  * Hi1620 driver updates from upstream 5.2 merge window (LP: #1830815)
+    - net: hns3: initialize CPU reverse mapping
+    - net: hns3: refine the flow director handle
+    - net: hns3: add aRFS support for PF
+    - net: hns3: fix for FEC configuration
+    - RDMA/hns: Remove unnecessary print message in aeq
+    - RDMA/hns: Update CQE specifications
+    - RDMA/hns: Move spin_lock_irqsave to the correct place
+    - RDMA/hns: Remove jiffies operation in disable interrupt context
+    - RDMA/hns: Replace magic numbers with #defines
+    - net: hns3: fix compile warning without CONFIG_RFS_ACCEL
+    - net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro
+    - net: hns3: add support for dump firmware statistics by debugfs
+    - net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has
+      registered
+    - net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE client has
+      registered
+    - net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC client has
+      registered
+    - net: hns3: modify hclge_init_client_instance()
+    - net: hns3: modify hclgevf_init_client_instance()
+    - net: hns3: add handshake with hardware while doing reset
+    - net: hns3: stop schedule reset service while unloading driver
+    - net: hns3: adjust hns3_uninit_phy()'s location in the hns3_client_uninit()
+    - net: hns3: fix a memory leak issue for hclge_map_unmap_ring_to_vf_vector
+    - RDMA/hns: Bugfix for posting multiple srq work request
+    - net: hns3: remove redundant core reset
+    - net: hns3: don't configure new VLAN ID into VF VLAN table when it's full
+    - net: hns3: fix VLAN filter restore issue after reset
+    - net: hns3: set the port shaper according to MAC speed
+    - net: hns3: add a check to pointer in error_detected and slot_reset
+    - net: hns3: set ops to null when unregister ad_dev
+    - net: hns3: add handling of two bits in MAC tunnel interrupts
+    - net: hns3: remove setting bit of reset_requests when handling mac tunnel
+      interrupts
+    - net: hns3: add opcode about query and clear RAS & MSI-X to special opcode
+    - net: hns3: delay and separate enabling of NIC and ROCE HW errors
+    - RDMA/hns: fix inverted logic of readl read and shift
+    - RDMA/hns: Bugfix for filling the sge of srq
+    - net: hns3: log detail error info of ROCEE ECC and AXI errors
+    - net: hns3: fix wrong size of mailbox responding data
+    - net: hns3: make HW GRO handling compliant with SW GRO
+    - net: hns3: replace numa_node_id with numa_mem_id for buffer reusing
+    - net: hns3: refactor hns3_get_new_int_gl function
+    - net: hns3: trigger VF reset if a VF has an over_8bd_nfe_err
+    - net: hns3: delete the redundant user NIC codes
+    - net: hns3: small changes for magic numbers
+    - net: hns3: use macros instead of magic numbers
+    - net: hns3: refactor PF/VF RSS hash key configuration
+    - net: hns3: some modifications to simplify and optimize code
+    - net: hns3: fix some coding style issues
+    - net: hns3: delay setting of reset level for hw errors until slot_reset is
+      called
+    - net: hns3: fix avoid unnecessary resetting for the H/W errors which do not
+      require reset
+    - net: hns3: process H/W errors occurred before HNS dev initialization
+    - net: hns3: add recovery for the H/W errors occurred before the HNS dev
+      initialization
+    - net: hns3: some changes of MSI-X bits in PPU(RCB)
+    - net: hns3: extract handling of mpf/pf msi-x errors into functions
+    - net: hns3: clear restting state when initializing HW device
+    - net: hns3: free irq when exit from abnormal branch
+    - net: hns3: fix for dereferencing before null checking
+    - net: hns3: fix for skb leak when doing selftest
+    - net: hns3: delay ring buffer clearing during reset
+    - net: hns3: some variable modification
+    - net: hns3: fix dereference of ae_dev before it is null checked
+    - scsi: hisi_sas: Delete PHY timers when rmmod or probe failed
+    - scsi: hisi_sas: Fix the issue of argument mismatch of printing ecc errors
+    - scsi: hisi_sas: Reduce HISI_SAS_SGE_PAGE_CNT in size
+    - scsi: hisi_sas: Change the type of some numbers to unsigned
+    - scsi: hisi_sas: Ignore the error code between phy down to phy up
+    - scsi: hisi_sas: Disable stash for v3 hw
+    - net: hns3: Add missing newline at end of file
+    - RDMa/hns: Don't stuck in endless timeout loop
+
+  * Sometimes touchpad automatically trigger double click (LP: #1833484)
+    - SAUCE: i2c: designware: Add disable runtime pm quirk
+
+  * Add pointstick support on HP ZBook 17 G5 (LP: #1833387)
+    - Revert "HID: multitouch: Support ALPS PTP stick with pid 0x120A"
+
+  * depmod may prefer unsigned l-r-m nvidia modules to signed modules
+    (LP: #1834479)
+    - [Packaging] dkms-build--nvidia-N -- clean up unsigned ko files
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/powerpc: disable signal_fuzzer test
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 01 Jul 2019 07:22:18 -0500
+
+linux (5.2.0-6.7) eoan; urgency=medium
+
+  * hinic: fix oops due to race in set_rx_mode (LP: #1832048)
+    - hinic: fix a bug in set rx mode
+
+  * Miscellaneous Ubuntu changes
+    - rebase to v5.2-rc6
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 23 Jun 2019 23:36:11 -0500
+
+linux (5.2.0-5.6) eoan; urgency=medium
+
+  * QCA9377 isn't being recognized sometimes (LP: #1757218)
+    - SAUCE: USB: Disable USB2 LPM at shutdown
+
+  * shiftfs: allow changing ro/rw for subvolumes (LP: #1832316)
+    - SAUCE: shiftfs: allow changing ro/rw for subvolumes
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Packaging] replace nvidia-418 dkms build with nvidia-430
+    - SAUCE: import aufs driver
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 17 Jun 2019 15:04:12 -0500
+
+linux (5.2.0-4.5) eoan; urgency=medium
+
+  * arm64: cma_alloc errors at boot (LP: #1823753)
+    - [Config] Bump CMA_SIZE_MBYTES to 32 on arm64
+    - dma-contiguous: add dma_{alloc,free}_contiguous() helpers
+    - dma-contiguous: use fallback alloc_pages for single pages
+    - dma-contiguous: fix !CONFIG_DMA_CMA version of dma_{alloc,
+      free}_contiguous()
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_MFD_TQMX86=n for s390x
+    - [Config] CONFIG_GPIO_AMD_FCH=n for s390x
+    - [Config] CONFIG_BACKLIGHT_CLASS_DEVICE=n on s390x
+    - [Config] CONFIG_LCD_CLASS_DEVICE=n for s390x
+    - [Config] CONFIG_DRM_ETNAVIV=m for armhf generic-lpae
+    - [Config] CONFIG_DRM_NOUVEAU_SVM=n
+    - [Config] CONFIG_HWMON=n for s390x
+    - [Config] CONFIG_NEW_LEDS=n for s390x
+    - [Config] CONFIG_MTD_NAND_OMAP2=y for armhf
+    - [Config] CONFIG_VOP_BUS=n for non-amd64 arches
+    - [Config] CONFIG_TI_CPSW_PHY_SEL=n
+    - [Config] CONFIG_INTERCONNECT=n for s390x
+    - [Config] CONFIG_SCSI_GDTH=n for s390x
+    - [Config] CONFIG_PACKING=n for s390x
+    - [Config] CONFIG_ARCH_MILBEAUT=y for armhf
+    - [Config] update annotations following config review
+    - update dkms package versions
+    - [Config] enable nvidia dkms build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 10 Jun 2019 07:00:11 -0500
+
+linux (5.2.0-3.4) eoan; urgency=medium
+
+  * [18.04/18.10] File libperf-jvmti.so is missing in linux-tools-common deb on
+    Ubuntu (LP: #1761379)
+    - [Packaging] Support building libperf-jvmti.so
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Revert "bpf, selftest: test global data/bss/rodata sections"
+    - update dkms package versions
+    - [Config] enable zfs
+    - rebase to v5.2-rc3
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 02 Jun 2019 21:48:50 -0500
+
+linux (5.2.0-2.3) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: perf arm64: Fix mksyscalltbl when system kernel headers are ahead of
+      the kernel
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 28 May 2019 07:12:39 -0500
+
+linux (5.2.0-1.2) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_INTEGRITY_PLATFORM_KEYRING=y
+    - update dkms package versions
+    - [Config] enable vbox dkms build
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 27 May 2019 21:11:27 -0500
+
+linux (5.2.0-0.1) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: import aufs driver
+    - [Packaging] disable ZFS
+    - [Packaging] disable nvidia
+    - [Packaging] dkms-build -- expand paths searched for make.log files
+    - add virtualbox-guest-dkms dkms package build
+    - enable vbox dkms build for amd64 and i386
+    - update dkms package versions
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and
+      KEXEC_SIG_FORCE
+    - SAUCE: (efi-lockdown) kexec_file: Restrict at runtime if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) lockdown: Print current->comm in restriction messages
+    - SAUCE: (efi-lockdown) kexec: Allow kexec_file() with appropriate IMA policy
+      when locked down
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) KEYS: Make use of platform keyring for module
+      signature verify
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) furter KEXEC_VERIFY_SIG -> KEXEC_SIG updates
+    - SAUCE: (efi-lockdown) arm64: add kernel config option to lock down when in
+      Secure Boot mode
+    - update dkms package versions
+    - [Config] disable vbox build
+    - SAUCE: s390: mark __cpacf_check_opcode() and cpacf_query_func() as
+      __always_inline
+    - SAUCE: IB/mlx5: use size_t instead of u64 when dividing
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 21 May 2019 11:18:43 -0500
+
+linux (5.2.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 21 May 2019 07:34:43 -0500
+
+linux (5.1.0-2.2) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+
+  * Eoan update: v5.1.2 upstream stable release (LP: #1829050)
+    - x86/msr-index: Cleanup bit defines
+    - x86/speculation: Consolidate CPU whitelists
+    - x86/speculation/mds: Add basic bug infrastructure for MDS
+    - x86/speculation/mds: Add BUG_MSBDS_ONLY
+    - x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests
+    - x86/speculation/mds: Add mds_clear_cpu_buffers()
+    - x86/speculation/mds: Clear CPU buffers on exit to user
+    - x86/kvm/vmx: Add MDS protection when L1D Flush is not active
+    - x86/speculation/mds: Conditionally clear CPU buffers on idle entry
+    - x86/speculation/mds: Add mitigation control for MDS
+    - x86/speculation/mds: Add sysfs reporting for MDS
+    - x86/speculation/mds: Add mitigation mode VMWERV
+    - Documentation: Move L1TF to separate directory
+    - Documentation: Add MDS vulnerability documentation
+    - x86/speculation/mds: Add mds=full,nosmt cmdline option
+    - x86/speculation: Move arch_smt_update() call to after mitigation decisions
+    - x86/speculation/mds: Add SMT warning message
+    - x86/speculation/mds: Fix comment
+    - x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off
+    - cpu/speculation: Add 'mitigations=' cmdline option
+    - x86/speculation: Support 'mitigations=' cmdline option
+    - powerpc/speculation: Support 'mitigations=' cmdline option
+    - s390/speculation: Support 'mitigations=' cmdline option
+    - x86/speculation/mds: Add 'mitigations=' support for MDS
+    - x86/mds: Add MDSUM variant to the MDS documentation
+    - Documentation: Correct the possible MDS sysfs values
+    - x86/speculation/mds: Fix documentation typo
+    - Linux 5.1.2
+
+  * Eoan update: v5.1.1 upstream stable release (LP: #1829046)
+    - Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup()
+    - ubsan: Fix nasty -Wbuiltin-declaration-mismatch GCC-9 warnings
+    - staging: greybus: power_supply: fix prop-descriptor request size
+    - staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context.
+    - staging: most: cdev: fix chrdev_region leak in mod_exit
+    - staging: most: sound: pass correct device when creating a sound card
+    - usb: dwc3: Allow building USB_DWC3_QCOM without EXTCON
+    - usb: dwc3: Fix default lpm_nyet_threshold value
+    - USB: serial: f81232: fix interrupt worker not stop
+    - USB: cdc-acm: fix unthrottle races
+    - usb-storage: Set virt_boundary_mask to avoid SG overflows
+    - genirq: Prevent use-after-free and work list corruption
+    - intel_th: pci: Add Comet Lake support
+    - iio: adc: qcom-spmi-adc5: Fix of-based module autoloading
+    - cpufreq: armada-37xx: fix frequency calculation for opp
+    - ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for
+      hibernate
+    - soc: sunxi: Fix missing dependency on REGMAP_MMIO
+    - scsi: lpfc: change snprintf to scnprintf for possible overflow
+    - scsi: qla2xxx: Fix incorrect region-size setting in optrom SYSFS routines
+    - scsi: qla2xxx: Set remote port devloss timeout to 0
+    - scsi: qla2xxx: Fix device staying in blocked state
+    - Bluetooth: hidp: fix buffer overflow
+    - Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
+    - Bluetooth: Fix not initializing L2CAP tx_credits
+    - Bluetooth: hci_bcm: Fix empty regulator supplies for Intel Macs
+    - UAS: fix alignment of scatter/gather segments
+    - ASoC: Intel: avoid Oops if DMA setup fails
+    - i3c: Fix a shift wrap bug in i3c_bus_set_addr_slot_status()
+    - locking/futex: Allow low-level atomic operations to return -EAGAIN
+    - arm64: futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP
+    - Linux 5.1.1
+
+  * shiftfs: lock security sensitive superblock flags (LP: #1827122)
+    - SAUCE: shiftfs: lock down certain superblock flags
+
+  * Please package libbpf (which is done out of the kernel src) in Debian [for
+    19.10] (LP: #1826410)
+    - SAUCE: tools -- fix add ability to disable libbfd
+
+  * ratelimit cma_alloc messages (LP: #1828092)
+    - SAUCE: cma: ratelimit cma_alloc error messages
+
+  * Headphone jack switch sense is inverted: plugging in headphones disables
+    headphone output (LP: #1824259)
+    - ASoC: rt5645: Headphone Jack sense inverts on the LattePanda board
+
+  * There are 4 HDMI/Displayport audio output listed in sound setting without
+    attach any HDMI/DP monitor (LP: #1827967)
+    - ALSA: hda/hdmi - Read the pin sense from register when repolling
+    - ALSA: hda/hdmi - Consider eld_valid when reporting jack event
+
+  * CONFIG_LOG_BUF_SHIFT set to 14 is too low on arm64 (LP: #1824864)
+    - [Config] CONFIG_LOG_BUF_SHIFT=18 on all 64bit arches
+
+  * CTAUTO:DevOps:860.50:devops4fp1:Error occurred during LINUX Dmesg error
+    Checking for all LINUX clients for devops4p10 (LP: #1766201)
+    - SAUCE: integrity: downgrade error to warning
+
+  * linux-buildinfo: pull out ABI information into its own package
+    (LP: #1806380)
+    - [Packaging] autoreconstruct -- base tag is always primary mainline version
+
+  * [SRU] Please sync vbox modules from virtualbox 6.0.6 on next kernel update
+    (LP: #1825210)
+    - vbox-update: updates for renamed makefiles
+    - ubuntu: vbox -- update to 6.0.6-dfsg-1
+
+  * autofs kernel module missing (LP: #1824333)
+    - [Config] Update autofs4 path in inclusion list
+
+  * The Realtek card reader does not enter PCIe 1.1/1.2 (LP: #1825487)
+    - SAUCE: misc: rtsx: Fixed rts5260 power saving parameter and sd glitch
+
+  * CVE-2019-3874
+    - sctp: implement memory accounting on tx path
+    - sctp: implement memory accounting on rx path
+
+  * apparmor does not start in Disco LXD containers (LP: #1824812)
+    - SAUCE: shiftfs: use separate llseek method for directories
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] autoreconstruct -- remove for -rc kernels
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) furter KEXEC_VERIFY_SIG -> KEXEC_SIG updates
+    - [Config] (efi-lockdown): update configs after efi lockdown patch refresh
+    - [Packaging] don't delete efi_parser.c
+    - vbox-update -- do not fix up KERN_DIR or KBUILD_EXTMOD
+    - ubuntu: vbox -- update to 6.0.6-dfsg-2
+    - add nvidia-418 dkms build
+    - remove virtualbox guest drivers
+    - [Packaging] dkms-build -- expand paths searched for make.log files
+    - add virtualbox-guest-dkms dkms package build
+    - enable vbox dkms build for amd64 and i386
+    - [Config] update configs for v5.1(-rc7)? rebase
+    - update dkms package versions
+    - Add the ability to lock down access to the running kernel image
+    - Enforce module signatures if the kernel is locked down
+    - Restrict /dev/{mem,kmem,port} when the kernel is locked down
+    - kexec_load: Disable at runtime if the kernel is locked down
+    - Copy secure_boot flag in boot params across kexec reboot
+    - kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE
+    - kexec_file: Restrict at runtime if the kernel is locked down
+    - hibernate: Disable when the kernel is locked down
+    - uswsusp: Disable when the kernel is locked down
+    - PCI: Lock down BAR access when the kernel is locked down
+    - x86: Lock down IO port access when the kernel is locked down
+    - x86/msr: Restrict MSR access when the kernel is locked down
+    - ACPI: Limit access to custom_method when the kernel is locked down
+    - acpi: Ignore acpi_rsdp kernel param when the kernel has been locked down
+    - acpi: Disable ACPI table override if the kernel is locked down
+    - acpi: Disable APEI error injection if the kernel is locked down
+    - Prohibit PCMCIA CIS storage when the kernel is locked down
+    - Lock down TIOCSSERIAL
+    - Lock down module params that specify hardware parameters (eg. ioport)
+    - x86/mmiotrace: Lock down the testmmiotrace module
+    - Lock down /proc/kcore
+    - Lock down kprobes
+    - bpf: Restrict kernel image access functions when the kernel is locked down
+    - Lock down perf
+    - debugfs: Restrict debugfs when the kernel is locked down
+    - lockdown: Print current->comm in restriction messages
+    - kexec: Allow kexec_file() with appropriate IMA policy when locked down
+    - Make get_cert_list() not complain about cert lists that aren't present.
+    - Add efi_status_to_str() and rework efi_status_to_err().
+    - Make get_cert_list() use efi_status_to_str() to print error messages.
+    - efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode
+    - efi: Lock down the kernel if booted in secure boot mode
+    - KEYS: Make use of platform keyring for module signature verify
+
+  * Miscellaneous upstream changes
+    - ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14)
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 14 May 2019 12:32:56 -0500
+
+linux (5.1.0-1.1) eoan; urgency=medium
+
+  * bionic: fork out linux-snapdragon into its own topic kernel (LP: #1820868)
+    - [Packaging]: really drop snapdragon
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: fix vbox use of MAP_SHARED
+    - SAUCE: fix vbox use of vm_fault_t
+    - [Packaging] disable ZFS
+    - [Packaging] disable nvidia
+    - SAUCE: perf annotate: Fix build on 32 bit for BPF annotation
+    - [Config]: updateconfig after rebase to v5.1-rc
+    - [Config]: build ETNAVIV only on arm platforms
+    - [Config]: Disable CMA on non-arm platforms
+    - [Config]: MMC_CQHCI is needed by some built-in drivers
+    - [Config]: a.out support has been deprecated
+    - [Config]: R3964 was marked as BROKEN
+    - [Config]: Add SENSIRION_SGP30 module
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: tools: lib/bpf -- add generated headers to search
+      path"
+    - Revert "UBUNTU: SAUCE: btqcomsmd: introduce BT_QCOMSMD_HACK"
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 25 Apr 2019 10:03:25 -0300
+
+linux (5.1.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 25 Apr 2019 09:49:47 -0300
+
+linux (5.0.0-13.14) disco; urgency=medium
+
+  * linux: 5.0.0-13.14 -proposed tracker (LP: #1824819)
+
+  * Display only has 640x480 (LP: #1824677)
+    - Revert "UBUNTU: SAUCE: drm/nouveau: Disable nouveau driver by default"
+
+  * shiftfs: use after free when checking mount options (LP: #1824735)
+    - SAUCE: shiftfs: prevent use-after-free when verifying mount options
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 15 Apr 2019 09:11:23 -0500
+
+linux (5.0.0-12.13) disco; urgency=medium
+
+  * linux: 5.0.0-12.13 -proposed tracker (LP: #1824726)
+
+  * Linux 5.0 black screen on boot, display flickers (i915 regression with
+    certain laptop panels) (LP: #1824216)
+    - drm/i915/dp: revert back to max link rate and lane count on eDP
+
+  * kernel BUG at fs/attr.c:287 when using shiftfs (LP: #1824717)
+    - SAUCE: shiftfs: fix passing of attrs to underaly for setattr
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 14 Apr 2019 13:38:05 -0500
+
+linux (5.0.0-11.12) disco; urgency=medium
+
+  * linux: 5.0.0-11.12 -proposed tracker (LP: #1824383)
+
+  * hns3: PPU_PF_ABNORMAL_INT_ST over_8bd_no_fe found [error status=0x1]
+    (LP: #1824194)
+    - net: hns3: fix for not calculating tx bd num correctly
+
+  * disco: unable to use iptables/enable ufw under -virtual kernel
+    (LP: #1823862)
+    - [Packaging] add bpfilter to linux-modules
+
+  * Make shiftfs a module rather than built-in (LP: #1824354)
+    - [Config] CONFIG_SHIFT_FS=m
+
+  * shiftfs: chown sets untranslated ids in lower fs (LP: #1824350)
+    - SAUCE: shiftfs: use translated ids when chaning lower fs attrs
+
+  * [Hyper-V] KVP daemon fails to start on first boot of disco VM (LP: #1820063)
+    - [Packaging] bind hv_kvp_daemon startup to hv_kvp device
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 11 Apr 2019 10:17:19 -0500
+
+linux (5.0.0-10.11) disco; urgency=medium
+
+  * linux: 5.0.0-10.11 -proposed tracker (LP: #1823936)
+
+  * Apparmor enforcement failure in lxc selftests (LP: #1823379)
+    - SAUCE: apparmor: Restore Y/N in /sys for apparmor's "enabled"
+
+  * systemd cause kernel trace "BUG: unable to handle kernel paging request at
+    6db23a14" on Cosmic i386 (LP: #1813244)
+    - openvswitch: fix flow actions reallocation
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 09 Apr 2019 08:30:38 -0500
+
+linux (5.0.0-9.10) disco; urgency=medium
+
+  * linux: 5.0.0-9.10 -proposed tracker (LP: #1823228)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] update helper scripts
+    - [Packaging] resync retpoline extraction
+
+  * Huawei Hi1822 NIC has poor performance (LP: #1820187)
+    - net-next/hinic: replace disable_irq_nosync/enable_irq
+
+  * Add uid shifting overlay filesystem (shiftfs) (LP: #1823186)
+    - shiftfs: uid/gid shifting bind mount
+    - shiftfs: rework and extend
+    - shiftfs: support some btrfs ioctls
+    - [Config] enable shiftfs
+
+  * Cannot boot or install - have to use nomodeset (LP: #1821820)
+    - Revert "drm/i915/fbdev: Actually configure untiled displays"
+
+  * Disco update: v5.0.6 upstream stable release (LP: #1823060)
+    - netfilter: nf_tables: fix set double-free in abort path
+    - dccp: do not use ipv6 header for ipv4 flow
+    - genetlink: Fix a memory leak on error path
+    - gtp: change NET_UDP_TUNNEL dependency to select
+    - ipv6: make ip6_create_rt_rcu return ip6_null_entry instead of NULL
+    - mac8390: Fix mmio access size probe
+    - mISDN: hfcpci: Test both vendor & device ID for Digium HFC4S
+    - net: aquantia: fix rx checksum offload for UDP/TCP over IPv6
+    - net: datagram: fix unbounded loop in __skb_try_recv_datagram()
+    - net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec
+    - net: phy: meson-gxl: fix interrupt support
+    - net: rose: fix a possible stack overflow
+    - net: stmmac: fix memory corruption with large MTUs
+    - net-sysfs: call dev_hold if kobject_init_and_add success
+    - net: usb: aqc111: Extend HWID table by QNAP device
+    - packets: Always register packet sk in the same order
+    - rhashtable: Still do rehash when we get EEXIST
+    - sctp: get sctphdr by offset in sctp_compute_cksum
+    - sctp: use memdup_user instead of vmemdup_user
+    - tcp: do not use ipv6 header for ipv4 flow
+    - tipc: allow service ranges to be connect()'ed on RDM/DGRAM
+    - tipc: change to check tipc_own_id to return in tipc_net_stop
+    - tipc: fix cancellation of topology subscriptions
+    - tun: properly test for IFF_UP
+    - vrf: prevent adding upper devices
+    - vxlan: Don't call gro_cells_destroy() before device is unregistered
+    - thunderx: enable page recycling for non-XDP case
+    - thunderx: eliminate extra calls to put_page() for pages held for recycling
+    - net: dsa: mv88e6xxx: fix few issues in mv88e6390x_port_set_cmode
+    - net: mii: Fix PAUSE cap advertisement from linkmode_adv_to_lcl_adv_t()
+      helper
+    - net: phy: don't clear BMCR in genphy_soft_reset
+    - r8169: fix cable re-plugging issue
+    - ila: Fix rhashtable walker list corruption
+    - tun: add a missing rcu_read_unlock() in error path
+    - powerpc/fsl: Fix the flush of branch predictor.
+    - Btrfs: fix incorrect file size after shrinking truncate and fsync
+    - btrfs: remove WARN_ON in log_dir_items
+    - btrfs: don't report readahead errors and don't update statistics
+    - btrfs: Fix bound checking in qgroup_trace_new_subtree_blocks
+    - btrfs: Avoid possible qgroup_rsv_size overflow in
+      btrfs_calculate_inode_block_rsv_size
+    - Btrfs: fix assertion failure on fsync with NO_HOLES enabled
+    - locks: wake any locks blocked on request before deadlock check
+    - tracing: initialize variable in create_dyn_event()
+    - ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time
+    - powerpc: bpf: Fix generation of load/store DW instructions
+    - vfio: ccw: only free cp on final interrupt
+    - NFS: Fix nfs4_lock_state refcounting in nfs4_alloc_{lock,unlock}data()
+    - NFS: fix mount/umount race in nlmclnt.
+    - NFSv4.1 don't free interrupted slot on open
+    - net: dsa: qca8k: remove leftover phy accessors
+    - ALSA: rawmidi: Fix potential Spectre v1 vulnerability
+    - ALSA: seq: oss: Fix Spectre v1 vulnerability
+    - ALSA: pcm: Fix possible OOB access in PCM oss plugins
+    - ALSA: pcm: Don't suspend stream in unrecoverable PCM state
+    - ALSA: hda/realtek - Fixed Headset Mic JD not stable
+    - ALSA: hda/realtek: merge alc_fixup_headset_jack to alc295_fixup_chromebook
+    - ALSA: hda/realtek - Add support headset mode for DELL WYSE AIO
+    - ALSA: hda/realtek - Add support headset mode for New DELL WYSE NB
+    - ALSA: hda/realtek: Enable headset MIC of Acer AIO with ALC286
+    - ALSA: hda/realtek: Enable headset MIC of Acer Aspire Z24-890 with ALC286
+    - ALSA: hda/realtek - Add support for Acer Aspire E5-523G/ES1-432 headset mic
+    - ALSA: hda/realtek: Enable ASUS X441MB and X705FD headset MIC with ALC256
+    - ALSA: hda/realtek: Enable headset mic of ASUS P5440FF with ALC256
+    - ALSA: hda/realtek: Enable headset MIC of ASUS X430UN and X512DK with ALC256
+    - ALSA: hda/realtek - Fix speakers on Acer Predator Helios 500 Ryzen laptops
+    - kbuild: modversions: Fix relative CRC byte order interpretation
+    - fs/open.c: allow opening only regular files during execve()
+    - ocfs2: fix inode bh swapping mixup in ocfs2_reflink_inodes_lock
+    - scsi: sd: Fix a race between closing an sd device and sd I/O
+    - scsi: sd: Quiesce warning if device does not report optimal I/O size
+    - scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host
+    - scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP
+      devices
+    - drm/rockchip: vop: reset scale mode when win is disabled
+    - tty/serial: atmel: Add is_half_duplex helper
+    - tty/serial: atmel: RS485 HD w/DMA: enable RX after TX is stopped
+    - tty: mxs-auart: fix a potential NULL pointer dereference
+    - tty: atmel_serial: fix a potential NULL pointer dereference
+    - tty: serial: qcom_geni_serial: Initialize baud in qcom_geni_console_setup
+    - staging: comedi: ni_mio_common: Fix divide-by-zero for DIO cmdtest
+    - staging: olpc_dcon_xo_1: add missing 'const' qualifier
+    - staging: speakup_soft: Fix alternate speech with other synths
+    - staging: vt6655: Remove vif check from vnt_interrupt
+    - staging: vt6655: Fix interrupt race condition on device start up.
+    - staging: erofs: fix to handle error path of erofs_vmap()
+    - staging: erofs: fix error handling when failed to read compresssed data
+    - staging: erofs: keep corrupted fs from crashing kernel in erofs_readdir()
+    - serial: max310x: Fix to avoid potential NULL pointer dereference
+    - serial: mvebu-uart: Fix to avoid a potential NULL pointer dereference
+    - serial: sh-sci: Fix setting SCSCR_TIE while transferring data
+    - USB: serial: cp210x: add new device id
+    - USB: serial: ftdi_sio: add additional NovaTech products
+    - USB: serial: mos7720: fix mos_parport refcount imbalance on error path
+    - USB: serial: option: set driver_info for SIM5218 and compatibles
+    - USB: serial: option: add support for Quectel EM12
+    - USB: serial: option: add Olicard 600
+    - ACPI / CPPC: Fix guaranteed performance handling
+    - Disable kgdboc failed by echo space to /sys/module/kgdboc/parameters/kgdboc
+    - fs/proc/proc_sysctl.c: fix NULL pointer dereference in put_links
+    - drivers/block/zram/zram_drv.c: fix idle/writeback string compare
+    - blk-mq: fix sbitmap ws_active for shared tags
+    - cpufreq: intel_pstate: Also use CPPC nominal_perf for base_frequency
+    - cpufreq: scpi: Fix use after free
+    - drm/vgem: fix use-after-free when drm_gem_handle_create() fails
+    - drm/vkms: fix use-after-free when drm_gem_handle_create() fails
+    - drm/i915: Mark AML 0x87CA as ULX
+    - drm/i915/gvt: Fix MI_FLUSH_DW parsing with correct index check
+    - drm/i915/icl: Fix the TRANS_DDI_FUNC_CTL2 bitfield macro
+    - gpio: exar: add a check for the return value of ida_simple_get fails
+    - gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input
+    - phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG PHYs
+    - usb: mtu3: fix EXTCON dependency
+    - USB: gadget: f_hid: fix deadlock in f_hidg_write()
+    - usb: common: Consider only available nodes for dr_mode
+    - mm/memory.c: fix modifying of page protection by insert_pfn()
+    - usb: host: xhci-rcar: Add XHCI_TRUST_TX_LENGTH quirk
+    - xhci: Fix port resume done detection for SS ports with LPM enabled
+    - usb: xhci: dbc: Don't free all memory with spinlock held
+    - xhci: Don't let USB3 ports stuck in polling state prevent suspend
+    - usb: cdc-acm: fix race during wakeup blocking TX traffic
+    - usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps
+    - usb: typec: Fix unchecked return value
+    - mm/hotplug: fix offline undo_isolate_page_range()
+    - mm: add support for kmem caches in DMA32 zone
+    - iommu/io-pgtable-arm-v7s: request DMA32 memory, and improve debugging
+    - mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT is specified
+    - mm/debug.c: fix __dump_page when mapping->host is not set
+    - mm/memory_hotplug.c: fix notification in offline error path
+    - mm/page_isolation.c: fix a wrong flag in set_migratetype_isolate()
+    - mm/migrate.c: add missing flush_dcache_page for non-mapped page migrate
+    - perf pmu: Fix parser error for uncore event alias
+    - perf intel-pt: Fix TSC slip
+    - objtool: Query pkg-config for libelf location
+    - powerpc/pseries/energy: Use OF accessor functions to read ibm,drc-indexes
+    - powerpc/64: Fix memcmp reading past the end of src/dest
+    - powerpc/pseries/mce: Fix misleading print for TLB mutlihit
+    - watchdog: Respect watchdog cpumask on CPU hotplug
+    - cpu/hotplug: Prevent crash when CPU bringup fails on CONFIG_HOTPLUG_CPU=n
+    - x86/smp: Enforce CONFIG_HOTPLUG_CPU when SMP=y
+    - KVM: Reject device ioctls from processes other than the VM's creator
+    - KVM: x86: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts
+    - KVM: x86: update %rip after emulating IO
+    - bpf: do not restore dst_reg when cur_state is freed
+    - mt76x02u: use usb_bulk_msg to upload firmware
+    - Linux 5.0.6
+
+  * RDMA/hns updates for disco (LP: #1822897)
+    - RDMA/hns: Fix the bug with updating rq head pointer when flush cqe
+    - RDMA/hns: Bugfix for the scene without receiver queue
+    - RDMA/hns: Add constraint on the setting of local ACK timeout
+    - RDMA/hns: Modify the pbl ba page size for hip08
+    - RDMA/hns: RDMA/hns: Assign rq head pointer when enable rq record db
+    - RDMA/hns: Add the process of AEQ overflow for hip08
+    - RDMA/hns: Add SCC context allocation support for hip08
+    - RDMA/hns: Add SCC context clr support for hip08
+    - RDMA/hns: Add timer allocation support for hip08
+    - RDMA/hns: Remove set but not used variable 'rst'
+    - RDMA/hns: Make some function static
+    - RDMA/hns: Fix the Oops during rmmod or insmod ko when reset occurs
+    - RDMA/hns: Fix the chip hanging caused by sending mailbox&CMQ during reset
+    - RDMA/hns: Fix the chip hanging caused by sending doorbell during reset
+    - RDMA/hns: Limit minimum ROCE CQ depth to 64
+    - RDMA/hns: Fix the state of rereg mr
+    - RDMA/hns: Set allocated memory to zero for wrid
+    - RDMA/hns: Delete useful prints for aeq subtype event
+    - RDMA/hns: Configure capacity of hns device
+    - RDMA/hns: Modify qp&cq&pd specification according to UM
+    - RDMA/hns: Bugfix for set hem of SCC
+    - RDMA/hns: Use GFP_ATOMIC in hns_roce_v2_modify_qp
+
+  * autopkgtests run too often, too much and don't skip enough (LP: #1823056)
+    - Set +x on rebuild testcase.
+    - Skip rebuild test, for regression-suite deps.
+    - Make ubuntu-regression-suite skippable on unbootable kernels.
+    - make rebuild use skippable error codes when skipping.
+    - Only run regression-suite, if requested to.
+
+  * touchpad not working on lenovo yoga 530 (LP: #1787775)
+    - Revert "UBUNTU: SAUCE: i2c:amd Depends on ACPI"
+    - Revert "UBUNTU: SAUCE: i2c:amd move out pointer in union i2c_event_base"
+    - i2c: add extra check to safe DMA buffer helper
+    - i2c: Add drivers for the AMD PCIe MP2 I2C controller
+    - [Config] Update config for AMD MP2 I2C driver
+
+  * Detect SMP PHY control command errors (LP: #1822680)
+    - scsi: libsas: Check SMP PHY control function result
+
+  * disable a.out support (LP: #1818552)
+    - [Config] Disable a.out support
+    - [Config] remove binfmt_aout from abi for i386 lowlatency
+
+  * bionic: fork out linux-snapdragon into its own topic kernel (LP: #1820868)
+    - [Packaging] remove snapdragon flavour support
+    - Revert "UBUNTU: SAUCE: (snapdragon) drm/msm/adv7511: wrap hacks under
+      CONFIG_ADV7511_SNAPDRAGON_HACKS #ifdefs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) media: ov5645: skip address change if dt
+      addr == default addr"
+    - Revert "UBUNTU: SAUCE: (snapdragon) DT: leds: Add Qualcomm Light Pulse
+      Generator binding"
+    - Revert "UBUNTU: SAUCE: (snapdragon) MAINTAINERS: Add Qualcomm Camera Control
+      Interface driver"
+    - Revert "UBUNTU: SAUCE: (snapdragon) dt-bindings: media: Binding document for
+      Qualcomm Camera Control Interface driver"
+    - Revert "UBUNTU: SAUCE: (snapdragon) leds: Add driver for Qualcomm LPG"
+    - Revert "UBUNTU: SAUCE: (snapdragon) HACK: drm/msm/adv7511: Don't rely on
+      interrupts for EDID parsing"
+    - Revert "UBUNTU: SAUCE: (snapdragon) drm/bridge/adv7511: Delay clearing of
+      HPD interrupt status"
+    - Revert "UBUNTU: SAUCE: (snapdragon) media: ov5645: Fix I2C address"
+    - Revert "UBUNTU: SAUCE: (snapdragon) i2c-qcom-cci: Fix I2C address bug"
+    - Revert "UBUNTU: SAUCE: (snapdragon) i2c-qcom-cci: Fix run queue completion
+      timeout"
+    - Revert "UBUNTU: SAUCE: (snapdragon) camss: Do not register if no cameras are
+      present"
+    - Revert "UBUNTU: SAUCE: (snapdragon) i2c: Add Qualcomm Camera Control
+      Interface driver"
+    - Revert "UBUNTU: SAUCE: (snapdragon) ov5645: I2C address change"
+    - Revert "UBUNTU: SAUCE: (snapdragon) regulator: smd: Allow
+      REGULATOR_QCOM_SMD_RPM=m"
+    - Revert "UBUNTU: SAUCE: (snapdragon) cpufreq: Add apq8016 to cpufreq-dt-
+      platdev blacklist"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: Add a helper to get an opp
+      regulator for device"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: HACK: Allow to set regulator
+      without opp_list"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: Drop RCU usage in
+      dev_pm_opp_adjust_voltage()"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: Support adjusting OPP voltages
+      at runtime"
+    - Revert "UBUNTU: SAUCE: (snapdragon) regulator: smd: Add floor and corner
+      operations"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: cpr: Register with cpufreq-
+      dt"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: cpr: fix with new
+      reg_sequence structures"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: cpr: Use raw mem access for
+      qfprom"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: Add support for CPR (Core
+      Power Reduction)"
+    - Revert "UBUNTU: SAUCE: (snapdragon) HACK: drm/msm/iommu: Remove runtime_put
+      calls in map/unmap"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable LEDS_QCOM_LPG"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable 'BBR' TCP
+      congestion algorithm"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable 'fq' and
+      'fq_codel' qdiscs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable
+      'schedutil' CPUfreq governor"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: set USB_CONFIG_F_FS in
+      distro.config"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable
+      CONFIG_USB_CONFIGFS_F_FS by default"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: add freq stat to sysfs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: Enable camera drivers"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: disable ANALOG_TV and
+      DIGITAL_TV"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: add more USB net
+      drivers"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: enable BT_QCOMSMD"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable
+      CFG80211_DEFAULT_PS by default"
+    - Revert "UBUNTU: SAUCE: (snapdragon) Force the SMD regulator driver to be
+      compiled-in"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: enable dm_mod and
+      dm_crypt"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: Enable a53/apcs and
+      avs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: enable QCOM Venus"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable debug
+      friendly USB network adpater"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: enable WCN36xx"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs; add distro.config"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable QCOM audio
+      drivers for APQ8016 and DB410c"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable REMOTEPROC"
+    - [Config] fix abi for remove i2c-qcom-cci module
+    - [Config] update annotations
+    - [Config] update configs following snapdragon removal
+
+  * Disco update: v5.0.5 upstream stable release (LP: #1822671)
+    - Revert "ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec"
+    - ALSA: hda - add Lenovo IdeaCentre B550 to the power_save_blacklist
+    - ALSA: firewire-motu: use 'version' field of unit directory to identify model
+    - mmc: pxamci: fix enum type confusion
+    - mmc: alcor: fix DMA reads
+    - mmc: mxcmmc: "Revert mmc: mxcmmc: handle highmem pages"
+    - mmc: renesas_sdhi: limit block count to 16 bit for old revisions
+    - drm/amdgpu: fix invalid use of change_bit
+    - drm/vmwgfx: Don't double-free the mode stored in par->set_mode
+    - drm/vmwgfx: Return 0 when gmrid::get_node runs out of ID's
+    - iommu/amd: fix sg->dma_address for sg->offset bigger than PAGE_SIZE
+    - iommu/iova: Fix tracking of recently failed iova address
+    - libceph: wait for latest osdmap in ceph_monc_blacklist_add()
+    - udf: Fix crash on IO error during truncate
+    - mips: loongson64: lemote-2f: Add IRQF_NO_SUSPEND to "cascade" irqaction.
+    - MIPS: Ensure ELF appended dtb is relocated
+    - MIPS: Fix kernel crash for R6 in jump label branch function
+    - powerpc/vdso64: Fix CLOCK_MONOTONIC inconsistencies across Y2038
+    - powerpc/security: Fix spectre_v2 reporting
+    - net/mlx5: Fix DCT creation bad flow
+    - scsi: core: Avoid that a kernel warning appears during system resume
+    - scsi: qla2xxx: Fix FC-AL connection target discovery
+    - scsi: ibmvscsi: Protect ibmvscsi_head from concurrent modificaiton
+    - scsi: ibmvscsi: Fix empty event pool access during host removal
+    - futex: Ensure that futex address is aligned in handle_futex_death()
+    - perf probe: Fix getting the kernel map
+    - objtool: Move objtool_file struct off the stack
+    - irqchip/gic-v3-its: Fix comparison logic in lpi_range_cmp
+    - clocksource/drivers/riscv: Fix clocksource mask
+    - ALSA: ac97: Fix of-node refcount unbalance
+    - ext4: fix NULL pointer dereference while journal is aborted
+    - ext4: fix data corruption caused by unaligned direct AIO
+    - ext4: brelse all indirect buffer in ext4_ind_remove_space()
+    - media: v4l2-ctrls.c/uvc: zero v4l2_event
+    - Bluetooth: hci_uart: Check if socket buffer is ERR_PTR in h4_recv_buf()
+    - Bluetooth: Fix decrementing reference count twice in releasing socket
+    - Bluetooth: hci_ldisc: Initialize hci_dev before open()
+    - Bluetooth: hci_ldisc: Postpone HCI_UART_PROTO_READY bit set in
+      hci_uart_set_proto()
+    - drm/vkms: Fix flush_work() without INIT_WORK().
+    - RDMA/cma: Rollback source IP address if failing to acquire device
+    - f2fs: fix to avoid deadlock of atomic file operations
+    - aio: simplify - and fix - fget/fput for io_submit()
+    - netfilter: ebtables: remove BUGPRINT messages
+    - loop: access lo_backing_file only when the loop device is Lo_bound
+    - x86/unwind: Handle NULL pointer calls better in frame unwinder
+    - x86/unwind: Add hardcoded ORC entry for NULL
+    - locking/lockdep: Add debug_locks check in __lock_downgrade()
+    - ALSA: hda - Record the current power state before suspend/resume calls
+    - ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
+    - Linux 5.0.5
+
+  * hisi_sas updates for disco (LP: #1822385)
+    - scsi: hisi_sas: send primitive NOTIFY to SSP situation only
+    - scsi: hisi_sas: shutdown axi bus to avoid exception CQ returned
+    - scsi: hisi_sas: remove the check of sas_dev status in
+      hisi_sas_I_T_nexus_reset()
+    - scsi: hisi_sas: Remove unused parameter of function hisi_sas_alloc()
+    - scsi: hisi_sas: Reject setting programmed minimum linkrate > 1.5G
+    - scsi: hisi_sas: Fix losing directly attached disk when hot-plug
+    - scsi: hisi_sas: Correct memory allocation size for DQ debugfs
+    - scsi: hisi_sas: Some misc tidy-up
+    - scsi: hisi_sas: Fix to only call scsi_get_prot_op() for non-NULL scsi_cmnd
+    - scsi: hisi_sas: Add missing seq_printf() call in hisi_sas_show_row_32()
+    - scsi: hisi_sas: Add support for DIX feature for v3 hw
+    - scsi: hisi_sas: Add manual trigger for debugfs dump
+    - scsi: hisi_sas: change queue depth from 512 to 4096
+    - scsi: hisi_sas: Issue internal abort on all relevant queues
+    - scsi: hisi_sas: Use pci_irq_get_affinity() for v3 hw as experimental
+    - scsi: hisi_sas: Do some more tidy-up
+    - scsi: hisi_sas: Change return variable type in phy_up_v3_hw()
+    - scsi: hisi_sas: Fix a timeout race of driver internal and SMP IO
+    - scsi: hisi_sas: print PHY RX errors count for later revision of v3 hw
+    - scsi: hisi_sas: Set PHY linkrate when disconnected
+    - scsi: hisi_sas: Send HARD RESET to clear the previous affiliation of STP
+      target port
+    - scsi: hisi_sas: Change SERDES_CFG init value to increase reliability of
+      HiLink
+    - scsi: hisi_sas: Add softreset in hisi_sas_I_T_nexus_reset()
+
+  * [Patch][Raven 2] kernel 5.0.0 cannot boot because of psp response
+    (LP: #1822267)
+    - drm/amdgpu/psp: Fix can't detect psp INVOKE command failed
+    - drm/amdgpu/psp: ignore psp response status
+
+  * 3b080b2564287be91605bfd1d5ee985696e61d3c in ubuntu_btrfs_kernel_fixes
+    triggers system hang on i386 (LP: #1812845)
+    - btrfs: raid56: properly unmap parity page in finish_parity_scrub()
+
+  * enable CONFIG_DRM_BOCHS (LP: #1795857)
+    - [Config] Reenable DRM_BOCHS as module
+
+  * [Dell Precision 7530/5530 with Nvidia Quadro P1000] Live USB freezes or
+    cannot complete install when nouveau driver is loaded (crashing in GP100
+    code) (LP: #1822026)
+    - SAUCE: drm/nouveau: Disable nouveau driver by default
+
+  * Need to add Intel CML related pci-id's (LP: #1821863)
+    - drm/i915/cml: Add CML PCI IDS
+    - drm/i915/cml: Introduce Comet Lake PCH
+
+  * ARM: Add support for the SDEI interface (LP: #1822005)
+    - ACPI / APEI: Don't wait to serialise with oops messages when panic()ing
+    - ACPI / APEI: Remove silent flag from ghes_read_estatus()
+    - ACPI / APEI: Switch estatus pool to use vmalloc memory
+    - ACPI / APEI: Make hest.c manage the estatus memory pool
+    - ACPI / APEI: Make estatus pool allocation a static size
+    - ACPI / APEI: Don't store CPER records physical address in struct ghes
+    - ACPI / APEI: Remove spurious GHES_TO_CLEAR check
+    - ACPI / APEI: Don't update struct ghes' flags in read/clear estatus
+    - ACPI / APEI: Generalise the estatus queue's notify code
+    - ACPI / APEI: Don't allow ghes_ack_error() to mask earlier errors
+    - ACPI / APEI: Move NOTIFY_SEA between the estatus-queue and NOTIFY_NMI
+    - ACPI / APEI: Switch NOTIFY_SEA to use the estatus queue
+    - KVM: arm/arm64: Add kvm_ras.h to collect kvm specific RAS plumbing
+    - arm64: KVM/mm: Move SEA handling behind a single 'claim' interface
+    - ACPI / APEI: Move locking to the notification helper
+    - ACPI / APEI: Let the notification helper specify the fixmap slot
+    - ACPI / APEI: Pass ghes and estatus separately to avoid a later copy
+    - ACPI / APEI: Make GHES estatus header validation more user friendly
+    - ACPI / APEI: Split ghes_read_estatus() to allow a peek at the CPER length
+    - ACPI / APEI: Only use queued estatus entry during in_nmi_queue_one_entry()
+    - ACPI / APEI: Use separate fixmap pages for arm64 NMI-like notifications
+    - firmware: arm_sdei: Add ACPI GHES registration helper
+    - ACPI / APEI: Add support for the SDEI GHES Notification type
+
+  * CVE-2019-9857
+    - inotify: Fix fsnotify_mark refcount leak in inotify_update_existing_watch()
+
+  * scsi: libsas: Support SATA PHY connection rate unmatch fixing during
+    discovery (LP: #1821408)
+    - scsi: libsas: Support SATA PHY connection rate unmatch fixing during
+      discovery
+
+  * Qualcomm Atheros QCA9377 wireless does not work (LP: #1818204)
+    - platform/x86: ideapad-laptop: Add Ideapad 530S-14ARR to no_hw_rfkill list
+
+  * Lenovo ideapad 330-15ICH Wifi rfkill hard blocked (LP: #1811815)
+    - platform/x86: ideapad: Add ideapad 330-15ICH to no_hw_rfkill
+
+  * hid-sensor-hub spamming dmesg in 4.20 (LP: #1818547)
+    - HID: Increase maximum report size allowed by hid_field_extract()
+
+  * [disco] [5.0.0-7.8] can't mount guest cifs share (LP: #1821053)
+    - cifs: allow guest mounts to work for smb3.11
+    - SMB3: Fix SMB3.1.1 guest mounts to Samba
+
+  * Add HiSilicon SoC quirk for cpufreq (LP: #1821620)
+    - ACPI / CPPC: Add a helper to get desired performance
+    - cpufreq / cppc: Work around for Hisilicon CPPC cpufreq
+
+  * Disco update: v5.0.4 upstream stable release (LP: #1821607)
+    - 9p: use inode->i_lock to protect i_size_write() under 32-bit
+    - 9p/net: fix memory leak in p9_client_create
+    - ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
+    - ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE()
+    - ASoC: codecs: pcm186x: Fix energysense SLEEP bit
+    - iio: adc: exynos-adc: Fix NULL pointer exception on unbind
+    - iio: adc: exynos-adc: Use proper number of channels for Exynos4x12
+    - mei: hbm: clean the feature flags on link reset
+    - mei: bus: move hw module get/put to probe/release
+    - stm class: Prevent division by zero
+    - stm class: Fix an endless loop in channel allocation
+    - crypto: caam - fix hash context DMA unmap size
+    - crypto: ccree - fix missing break in switch statement
+    - crypto: caam - fixed handling of sg list
+    - crypto: caam - fix DMA mapping of stack memory
+    - crypto: ccree - fix free of unallocated mlli buffer
+    - crypto: ccree - unmap buffer before copying IV
+    - crypto: ccree - don't copy zero size ciphertext
+    - crypto: cfb - add missing 'chunksize' property
+    - crypto: cfb - remove bogus memcpy() with src == dest
+    - crypto: ofb - fix handling partial blocks and make thread-safe
+    - crypto: ahash - fix another early termination in hash walk
+    - crypto: rockchip - fix scatterlist nents error
+    - crypto: rockchip - update new iv to device in multiple operations
+    - dax: Flush partial PMDs correctly
+    - nfit: Fix nfit_intel_shutdown_status() command submission
+    - nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
+    - acpi/nfit: Fix bus command validation
+    - nfit/ars: Attempt a short-ARS whenever the ARS state is idle at boot
+    - nfit/ars: Attempt short-ARS even in the no_init_ars case
+    - libnvdimm/label: Clear 'updating' flag after label-set update
+    - libnvdimm, pfn: Fix over-trim in trim_pfn_device()
+    - libnvdimm/pmem: Honor force_raw for legacy pmem regions
+    - libnvdimm: Fix altmap reservation size calculation
+    - fix cgroup_do_mount() handling of failure exits
+    - crypto: aead - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+    - crypto: aegis - fix handling chunked inputs
+    - crypto: arm/crct10dif - revert to C code for short inputs
+    - crypto: arm64/aes-neonbs - fix returning final keystream block
+    - crypto: arm64/crct10dif - revert to C code for short inputs
+    - crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+    - crypto: morus - fix handling chunked inputs
+    - crypto: pcbc - remove bogus memcpy()s with src == dest
+    - crypto: skcipher - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+    - crypto: testmgr - skip crc32c context test for ahash algorithms
+    - crypto: x86/aegis - fix handling chunked inputs and MAY_SLEEP
+    - crypto: x86/aesni-gcm - fix crash on empty plaintext
+    - crypto: x86/morus - fix handling chunked inputs and MAY_SLEEP
+    - crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
+    - crypto: arm64/aes-ccm - fix bugs in non-NEON fallback routine
+    - CIFS: Fix leaking locked VFS cache pages in writeback retry
+    - CIFS: Do not reset lease state to NONE on lease break
+    - CIFS: Do not skip SMB2 message IDs on send failures
+    - CIFS: Fix read after write for files with read caching
+    - smb3: make default i/o size for smb3 mounts larger
+    - tracing: Use strncpy instead of memcpy for string keys in hist triggers
+    - tracing: Do not free iter->trace in fail path of tracing_open_pipe()
+    - tracing/perf: Use strndup_user() instead of buggy open-coded version
+    - vmw_balloon: release lock on error in vmballoon_reset()
+    - xen: fix dom0 boot on huge systems
+    - ACPI / device_sysfs: Avoid OF modalias creation for removed device
+    - mmc: sdhci-esdhc-imx: fix HS400 timing issue
+    - mmc: renesas_sdhi: Fix card initialization failure in high speed mode
+    - mmc:fix a bug when max_discard is 0
+    - spi: ti-qspi: Fix mmap read when more than one CS in use
+    - spi: pxa2xx: Setup maximum supported DMA transfer length
+    - spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch
+    - spi: spi-gpio: fix SPI_CS_HIGH capability
+    - regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
+    - regulator: max77620: Initialize values for DT properties
+    - regulator: s2mpa01: Fix step values for some LDOs
+    - mt76: fix corrupted software generated tx CCMP PN
+    - clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
+    - clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
+    - clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer
+      instability
+    - s390: vfio_ap: link the vfio_ap devices to the vfio_ap bus subsystem
+    - s390/setup: fix early warning messages
+    - s390/virtio: handle find on invalid queue gracefully
+    - scsi: virtio_scsi: don't send sc payload with tmfs
+    - scsi: aacraid: Fix performance issue on logical drives
+    - scsi: sd: Optimal I/O size should be a multiple of physical block size
+    - scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
+    - scsi: qla2xxx: Fix LUN discovery if loop id is not assigned yet by firmware
+    - scsi: qla2xxx: Avoid PCI IRQ affinity mapping when multiqueue is not
+      supported
+    - scsi: qla2xxx: Use complete switch scan for RSCN events
+    - fs/devpts: always delete dcache dentry-s in dput()
+    - splice: don't merge into linked buffers
+    - ovl: During copy up, first copy up data and then xattrs
+    - ovl: Do not lose security.capability xattr over metadata file copy-up
+    - m68k: Add -ffreestanding to CFLAGS
+    - Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
+    - Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
+    - btrfs: scrub: fix circular locking dependency warning
+    - btrfs: drop the lock on error in btrfs_dev_replace_cancel
+    - btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
+    - btrfs: init csum_list before possible free
+    - Btrfs: fix corruption reading shared and compressed extents after hole
+      punching
+    - Btrfs: fix deadlock between clone/dedupe and rename
+    - soc: qcom: rpmh: Avoid accessing freed memory from batch API
+    - libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
+    - irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table
+    - irqchip/brcmstb-l2: Use _irqsave locking variants in non-interrupt code
+    - x86/kprobes: Prohibit probing on optprobe template code
+    - cpufreq: kryo: Release OPP tables on module removal
+    - cpufreq: tegra124: add missing of_node_put()
+    - cpufreq: pxa2xx: remove incorrect __init annotation
+    - ext4: fix check of inode in swap_inode_boot_loader
+    - ext4: cleanup pagecache before swap i_data
+    - mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
+    - mm/vmalloc: fix size check for remap_vmalloc_range_partial()
+    - mm/memory.c: do_fault: avoid usage of stale vm_area_struct
+    - kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
+    - nvmem: core: don't check the return value of notifier chain call
+    - device property: Fix the length used in PROPERTY_ENTRY_STRING()
+    - intel_th: Don't reference unassigned outputs
+    - parport_pc: fix find_superio io compare code, should use equal test.
+    - i2c: tegra: fix maximum transfer size
+    - i2c: tegra: update maximum transfer size
+    - media: i2c: ov5640: Fix post-reset delay
+    - gpio: pca953x: Fix dereference of irq data in shutdown
+    - ext4: update quota information while swapping boot loader inode
+    - ext4: add mask of ext4 flags to swap
+    - ext4: fix crash during online resizing
+    - dma: Introduce dma_max_mapping_size()
+    - swiotlb: Introduce swiotlb_max_mapping_size()
+    - swiotlb: Add is_swiotlb_active() function
+    - PCI/ASPM: Use LTR if already enabled by platform
+    - PCI/DPC: Fix print AER status in DPC event handling
+    - PCI: qcom: Don't deassert reset GPIO during probe
+    - PCI: dwc: skip MSI init if MSIs have been explicitly disabled
+    - PCI: pci-bridge-emul: Create per-bridge copy of register behavior
+    - PCI: pci-bridge-emul: Extend pci_bridge_emul_init() with flags
+    - IB/hfi1: Close race condition on user context disable and close
+    - IB/rdmavt: Fix loopback send with invalidate ordering
+    - IB/rdmavt: Fix concurrency panics in QP post_send and modify to error
+    - cxl: Wrap iterations over afu slices inside 'afu_list_lock'
+    - ext2: Fix underflow in ext2_max_size()
+    - clk: uniphier: Fix update register for CPU-gear
+    - clk: clk-twl6040: Fix imprecise external abort for pdmclk
+    - clk: samsung: exynos5: Fix possible NULL pointer exception on
+      platform_device_alloc() failure
+    - clk: samsung: exynos5: Fix kfree() of const memory on setting
+      driver_override
+    - clk: ingenic: Fix round_rate misbehaving with non-integer dividers
+    - clk: ingenic: Fix doc of ingenic_cgu_div_info
+    - usb: chipidea: tegra: Fix missed ci_hdrc_remove_device()
+    - usb: typec: tps6598x: handle block writes separately with plain-I2C adapters
+    - dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
+    - serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
+    - serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
+    - serial: 8250_pci: Fix number of ports for ACCES serial cards
+    - serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954
+      chip use the pci_pericom_setup()
+    - jbd2: clear dirty flag when revoking a buffer from an older transaction
+    - jbd2: fix compile warning when using JBUFFER_TRACE
+    - selinux: add the missing walk_size + len check in selinux_sctp_bind_connect
+    - security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
+    - powerpc/32: Clear on-stack exception marker upon exception return
+    - powerpc/wii: properly disable use of BATs when requested.
+    - powerpc/powernv: Make opal log only readable by root
+    - powerpc/83xx: Also save/restore SPRG4-7 during suspend
+    - powerpc/kvm: Save and restore host AMR/IAMR/UAMOR
+    - powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit
+    - powerpc/64s/hash: Fix assert_slb_presence() use of the slbfee. instruction
+    - powerpc: Fix 32-bit KVM-PR lockup and host crash with MacOS guest
+    - powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
+    - powerpc/hugetlb: Don't do runtime allocation of 16G pages in LPAR
+      configuration
+    - powerpc/smp: Fix NMI IPI timeout
+    - powerpc/smp: Fix NMI IPI xmon timeout
+    - powerpc/traps: fix recoverability of machine check handling on book3s/32
+    - powerpc/traps: Fix the message printed when stack overflows
+    - ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
+    - arm64: Fix HCR.TGE status for NMI contexts
+    - arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals
+    - arm64: debug: Ensure debug handlers check triggering exception level
+    - arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2
+    - Revert "KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range()"
+    - ipmi_si: Fix crash when using hard-coded device
+    - ipmi_si: fix use-after-free of resource->name
+    - dm: fix to_sector() for 32bit
+    - dm integrity: limit the rate of error messages
+    - media: cx25840: mark pad sig_types to fix cx231xx init
+    - mfd: sm501: Fix potential NULL pointer dereference
+    - cpcap-charger: generate events for userspace
+    - cpuidle: governor: Add new governors to cpuidle_governors again
+    - NFS: Fix I/O request leakages
+    - NFS: Fix an I/O request leakage in nfs_do_recoalesce
+    - NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
+    - nfsd: fix performance-limiting session calculation
+    - nfsd: fix memory corruption caused by readdir
+    - nfsd: fix wrong check in write_v4_end_grace()
+    - NFSv4.1: Reinitialise sequence results before retransmitting a request
+    - svcrpc: fix UDP on servers with lots of threads
+    - PM / wakeup: Rework wakeup source timer cancellation
+    - PM / OPP: Update performance state when freq == old_freq
+    - bcache: treat stale && dirty keys as bad keys
+    - bcache: use (REQ_META|REQ_PRIO) to indicate bio for metadata
+    - stable-kernel-rules.rst: add link to networking patch queue
+    - vt: perform safe console erase in the right order
+    - x86/unwind/orc: Fix ORC unwind table alignment
+    - perf intel-pt: Fix CYC timestamp calculation after OVF
+    - perf tools: Fix split_kallsyms_for_kcore() for trampoline symbols
+    - perf auxtrace: Define auxtrace record alignment
+    - perf intel-pt: Fix overlap calculation for padding
+    - perf/x86/intel/uncore: Fix client IMC events return huge result
+    - perf intel-pt: Fix divide by zero when TSC is not available
+    - md: Fix failed allocation of md_register_thread
+    - x86/kvmclock: set offset for kvm unstable clock
+    - x86/ftrace: Fix warning and considate ftrace_jmp_replace() and
+      ftrace_call_replace()
+    - tpm/tpm_crb: Avoid unaligned reads in crb_recv()
+    - tpm: Unify the send callback behaviour
+    - rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
+    - media: imx: prpencvf: Stop upstream before disabling IDMA channel
+    - media: lgdt330x: fix lock status reporting
+    - media: sun6i: Fix CSI regmap's max_register
+    - media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
+    - media: vimc: Add vimc-streamer for stream control
+    - media: imx-csi: Input connections to CSI should be optional
+    - media: imx: csi: Disable CSI immediately after last EOF
+    - media: imx: csi: Stop upstream before disabling IDMA channel
+    - drm/fb-helper: generic: Fix drm_fbdev_client_restore()
+    - drm/radeon/evergreen_cs: fix missing break in switch statement
+    - drm/amd/powerplay: correct power reading on fiji
+    - drm/amd/display: don't call dm_pp_ function from an fpu block
+    - KVM: Call kvm_arch_memslots_updated() before updating memslots
+    - KVM: VMX: Compare only a single byte for VMCS' "launched" in vCPU-run
+    - KVM: VMX: Zero out *all* general purpose registers after VM-Exit
+    - KVM: x86/mmu: Detect MMIO generation wrap in any address space
+    - KVM: x86/mmu: Do not cache MMIO accesses while memslots are in flux
+    - KVM: nVMX: Sign extend displacements of VMX instr's mem operands
+    - KVM: nVMX: Apply addr size mask to effective address for VMX instructions
+    - KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
+    - KVM: nVMX: Check a single byte for VMCS "launched" in nested early checks
+    - net: dsa: lantiq_gswip: fix use-after-free on failed probe
+    - net: dsa: lantiq_gswip: fix OF child-node lookups
+    - s390/setup: fix boot crash for machine without EDAT-1
+    - SUNRPC: Prevent thundering herd when the socket is not connected
+    - SUNRPC: Fix up RPC back channel transmission
+    - SUNRPC: Respect RPC call timeouts when retrying transmission
+    - Linux 5.0.4
+    - [Config] update configs for 5.0.4 stable update
+
+  * New Intel Wireless-AC 9260 [8086:2526] card not correctly probed in Ubuntu
+    system (LP: #1821271)
+    - iwlwifi: add new card for 9260 series
+
+  * [CONFIG] please enable highdpi font FONT_TER16x32 (LP: #1819881)
+    - [Config]: enable highdpi Terminus 16x32 font support
+
+  * [SRU][B/B-OEM/C/D] Fix AMD IOMMU NULL dereference (LP: #1820990)
+    - iommu/amd: Fix NULL dereference bug in match_hid_uid
+
+  * some codecs stop working after S3 (LP: #1820930)
+    - ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
+    - ALSA: hda - Don't trigger jackpoll_work in azx_resume
+
+  * tcm_loop.ko: move from modules-extra into main modules package
+    (LP: #1817786)
+    - [Packaging] move tcm_loop.lo to main linux-modules package
+
+  * C++ demangling support missing from perf (LP: #1396654)
+    - [Packaging] fix a mistype
+
+  * r8169 doesn't get woken up by ethernet cable plugging, no PME generated
+    (LP: #1817676)
+    - PCI: pciehp: Disable Data Link Layer State Changed event on suspend
+
+  * Disco update: v5.0.3 upstream stable release (LP: #1821074)
+    - connector: fix unsafe usage of ->real_parent
+    - fou, fou6: avoid uninit-value in gue_err() and gue6_err()
+    - gro_cells: make sure device is up in gro_cells_receive()
+    - ipv4/route: fail early when inet dev is missing
+    - l2tp: fix infoleak in l2tp_ip6_recvmsg()
+    - lan743x: Fix RX Kernel Panic
+    - lan743x: Fix TX Stall Issue
+    - net: hsr: fix memory leak in hsr_dev_finalize()
+    - net/hsr: fix possible crash in add_timer()
+    - net: sit: fix UBSAN Undefined behaviour in check_6rd
+    - net/x25: fix use-after-free in x25_device_event()
+    - net/x25: reset state in x25_connect()
+    - pptp: dst_release sk_dst_cache in pptp_sock_destruct
+    - ravb: Decrease TxFIFO depth of Q3 and Q2 to one
+    - route: set the deleted fnhe fnhe_daddr to 0 in ip_del_fnhe to fix a race
+    - rxrpc: Fix client call queueing, waiting for channel
+    - sctp: remove sched init from sctp_stream_init
+    - tcp: do not report TCP_CM_INQ of 0 for closed connections
+    - tcp: Don't access TCP_SKB_CB before initializing it
+    - tcp: handle inet_csk_reqsk_queue_add() failures
+    - vxlan: Fix GRO cells race condition between receive and link delete
+    - vxlan: test dev->flags & IFF_UP before calling gro_cells_receive()
+    - net/mlx4_core: Fix reset flow when in command polling mode
+    - net/mlx4_core: Fix locking in SRIOV mode when switching between events and
+      polling
+    - net/mlx4_core: Fix qp mtt size calculation
+    - net: dsa: mv88e6xxx: Set correct interface mode for CPU/DSA ports
+    - vsock/virtio: fix kernel panic from virtio_transport_reset_no_sock
+    - net: sched: flower: insert new filter to idr after setting its mask
+    - f2fs: wait on atomic writes to count F2FS_CP_WB_DATA
+    - perf/x86: Fixup typo in stub functions
+    - ALSA: bebob: use more identical mod_alias for Saffire Pro 10 I/O against
+      Liquid Saffire 56
+    - ALSA: firewire-motu: fix construction of PCM frame for capture direction
+    - ALSA: hda: Extend i915 component bind timeout
+    - ALSA: hda - add more quirks for HP Z2 G4 and HP Z240
+    - ALSA: hda/realtek: Enable audio jacks of ASUS UX362FA with ALC294
+    - ALSA: hda/realtek - Reduce click noise on Dell Precision 5820 headphone
+    - ALSA: hda/realtek: Enable headset MIC of Acer TravelMate X514-51T with
+      ALC255
+    - perf/x86/intel: Fix memory corruption
+    - perf/x86/intel: Make dev_attr_allow_tsx_force_abort static
+    - It's wrong to add len to sector_nr in raid10 reshape twice
+    - drm: Block fb changes for async plane updates
+    - Linux 5.0.3
+
+  * Disco update: v5.0.2 upstream stable release (LP: #1820318)
+    - media: uvcvideo: Fix 'type' check leading to overflow
+    - Input: wacom_serial4 - add support for Wacom ArtPad II tablet
+    - Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
+    - iscsi_ibft: Fix missing break in switch statement
+    - scsi: aacraid: Fix missing break in switch statement
+    - x86/PCI: Fixup RTIT_BAR of Intel Denverton Trace Hub
+    - arm64: dts: zcu100-revC: Give wifi some time after power-on
+    - arm64: dts: hikey: Give wifi some time after power-on
+    - arm64: dts: hikey: Revert "Enable HS200 mode on eMMC"
+    - ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
+    - ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
+    - ARM: dts: exynos: Fix max voltage for buck8 regulator on Odroid XU3/XU4
+    - drm: disable uncached DMA optimization for ARM and arm64
+    - media: Revert "media: rc: some events are dropped by userspace"
+    - Revert "PCI/PME: Implement runtime PM callbacks"
+    - bpf: Stop the psock parser before canceling its work
+    - gfs2: Fix missed wakeups in find_insert_glock
+    - staging: erofs: keep corrupted fs from crashing kernel in erofs_namei()
+    - staging: erofs: compressed_pages should not be accessed again after freed
+    - scripts/gdb: replace flags (MS_xyz -> SB_xyz)
+    - ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom
+    - perf/x86/intel: Make cpuc allocations consistent
+    - perf/x86/intel: Generalize dynamic constraint creation
+    - x86: Add TSX Force Abort CPUID/MSR
+    - perf/x86/intel: Implement support for TSX Force Abort
+    - Linux 5.0.2
+
+  * Linux security module stacking support
+    - LSM: Introduce LSM_FLAG_LEGACY_MAJOR
+    - LSM: Provide separate ordered initialization
+    - LSM: Plumb visibility into optional "enabled" state
+    - LSM: Lift LSM selection out of individual LSMs
+    - LSM: Build ordered list of LSMs to initialize
+    - LSM: Introduce CONFIG_LSM
+    - LSM: Introduce "lsm=" for boottime LSM selection
+    - LSM: Tie enabling logic to presence in ordered list
+    - LSM: Prepare for reorganizing "security=" logic
+    - LSM: Refactor "security=" in terms of enable/disable
+    - LSM: Separate idea of "major" LSM from "exclusive" LSM
+    - apparmor: Remove SECURITY_APPARMOR_BOOTPARAM_VALUE
+    - selinux: Remove SECURITY_SELINUX_BOOTPARAM_VALUE
+    - LSM: Add all exclusive LSMs to ordered initialization
+    - LSM: Split LSM preparation from initialization
+    - LoadPin: Initialize as ordered LSM
+    - Yama: Initialize as ordered LSM
+    - LSM: Introduce enum lsm_order
+    - capability: Initialize as LSM_ORDER_FIRST
+    - procfs: add smack subdir to attrs
+    - Smack: Abstract use of cred security blob
+    - SELinux: Abstract use of cred security blob
+    - SELinux: Remove cred security blob poisoning
+    - SELinux: Remove unused selinux_is_enabled
+    - AppArmor: Abstract use of cred security blob
+    - TOMOYO: Abstract use of cred security blob
+    - Infrastructure management of the cred security blob
+    - SELinux: Abstract use of file security blob
+    - Smack: Abstract use of file security blob
+    - LSM: Infrastructure management of the file security
+    - SELinux: Abstract use of inode security blob
+    - Smack: Abstract use of inode security blob
+    - LSM: Infrastructure management of the inode security
+    - LSM: Infrastructure management of the task security
+    - SELinux: Abstract use of ipc security blobs
+    - Smack: Abstract use of ipc security blobs
+    - LSM: Infrastructure management of the ipc security blob
+    - TOMOYO: Update LSM flags to no longer be exclusive
+    - LSM: generalize flag passing to security_capable
+    - LSM: Make lsm_early_cred() and lsm_early_task() local functions.
+    - LSM: Make some functions static
+    - apparmor: Adjust offset when accessing task blob.
+    - LSM: Ignore "security=" when "lsm=" is specified
+    - LSM: Update list of SECURITYFS users in Kconfig
+    - apparmor: delete the dentry in aafs_remove() to avoid a leak
+    - apparmor: fix double free when unpack of secmark rules fails
+    - SAUCE: LSM: Infrastructure management of the sock security
+    - SAUCE: LSM: Limit calls to certain module hooks
+    - SAUCE: LSM: Special handling for secctx lsm hooks
+    - SAUCE: LSM: Specify which LSM to display with /proc/self/attr/display
+    - SAUCE: Fix-up af_unix mediation for sock infrastructure management
+    - SAUCE: Revert "apparmor: Fix warning about unused function
+      apparmor_ipv6_postroute"
+    - SAUCE: Revert "apparmor: fix checkpatch error in Parse secmark policy"
+    - SAUCE: Revert "apparmor: add #ifdef checks for secmark filtering"
+    - SAUCE: Revert "apparmor: Allow filtering based on secmark policy"
+    - SAUCE: Revert "apparmor: Parse secmark policy"
+    - SAUCE: Revert "apparmor: Add a wildcard secid"
+    - SAUCE: Revert "apparmor: fix bad debug check in apparmor_secid_to_secctx()"
+    - SAUCE: Revert "apparmor: fixup secid map conversion to using IDR"
+    - SAUCE: Revert "apparmor: Use an IDR to allocate apparmor secids"
+    - SAUCE: Revert "apparmor: Fix memory leak of rule on error exit path"
+    - SAUCE: Revert "apparmor: modify audit rule support to support profile
+      stacks"
+    - SAUCE: Revert "apparmor: Add support for audit rule filtering"
+    - SAUCE: Revert "apparmor: add the ability to get a task's secid"
+    - SAUCE: Revert "apparmor: add support for mapping secids and using secctxes"
+    - SAUCE: apparmor: add proc subdir to attrs
+    - SAUCE: apparmor: add an apparmorfs entry to access current attrs
+    - SAUCE: apparmor: update flags to no longer be exclusive
+    - SAUCE: update configs and annotations for LSM stacking
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_EARLY_PRINTK_USB_XDBC=y
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - [Config] CONFIG_RANDOM_TRUST_CPU=y
+    - [Config] refresh annotations for recent config changes
+    - ubuntu: vbox -- update to 6.0.4-dfsg-7
+    - Revert "UBUNTU: SAUCE: i2c:amd I2C Driver based on PCI Interface for
+      upcoming platform"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 04 Apr 2019 14:49:59 -0500
+
+linux (5.0.0-8.9) disco; urgency=medium
+
+  * linux: 5.0.0-8.9 -proposed tracker (LP: #1819759)
+
+  * hisi_sas: add debugfs support (LP: #1819500)
+    - scsi: hisi_sas: Create root and device debugfs directories
+    - scsi: hisi_sas: Alloc debugfs snapshot buffer memory for all registers
+    - scsi: hisi_sas: Take debugfs snapshot for all regs
+    - scsi: hisi_sas: Debugfs global register create file and add file operations
+    - scsi: hisi_sas: Add debugfs for port registers
+    - scsi: hisi_sas: Add debugfs CQ file and add file operations
+    - scsi: hisi_sas: Add debugfs DQ file and add file operations
+    - scsi: hisi_sas: Add debugfs IOST file and add file operations
+    - scsi: hisi_sas: No need to check return value of debugfs_create functions
+    - scsi: hisi_sas: Fix type casting and missing static qualifier in debugfs
+      code
+    - scsi: hisi_sas: Add debugfs ITCT file and add file operations
+
+  * [disco] hns driver updates from 5.1 merge window (LP: #1819535)
+    - net: hns: Use struct_size() in devm_kzalloc()
+    - net: hns3: modify enet reinitialization interface
+    - net: hns3: remove unused member in struct hns3_enet_ring
+    - net: hns3: remove unnecessary hns3_adjust_tqps_num
+    - net: hns3: reuse reinitialization interface in the hns3_set_channels
+    - net: hns3: add interface hclge_tm_bp_setup
+    - net: hns3: modify parameter checks in the hns3_set_channels
+    - net: hns3: remove redundant codes in hclge_knic_setup
+    - net: hns3: fix user configuration loss for ethtool -L
+    - net: hns3: adjust the use of alloc_tqps and num_tqps
+    - net: hns3: fix wrong combined count returned by ethtool -l
+    - net: hns3: do reinitialization while ETS configuration changed
+    - net: hns3: add HNAE3_RESTORE_CLIENT interface in enet module
+    - net: hns3: add calling roce callback function when link status change
+    - net: hns3: add rx multicast packets statistic
+    - net: hns3: refactor the statistics updating for netdev
+    - net: hns3: fix rss configuration lost problem when setting channel
+    - net: hns3: fix for shaper not setting when TC num changes
+    - net: hns3: fix bug of ethtool_ops.get_channels for VF
+    - net: hns3: clear param in ring when free ring
+    - net: hns3: Change fw error code NOT_EXEC to NOT_SUPPORTED
+    - net: hns3: do not return GE PFC setting err when initializing
+    - net: hns3: add ETS TC weight setting in SSU module
+    - net: hns3: add statistics for PFC frames and MAC control frames
+    - net: hns3: fix PFC not setting problem for DCB module
+    - net: hns3: don't update packet statistics for packets dropped by hardware
+    - net: hns3: clear pci private data when unload hns3 driver
+    - net: hns3: add error handling in hclge_ieee_setets
+    - net: hns3: fix return value handle issue for hclge_set_loopback()
+    - net: hns3: fix broadcast promisc issue for revision 0x20
+    - net: hns3: After setting the loopback, add the status of getting MAC
+    - net: hns3: do reinitialization while mqprio configuration changed
+    - net: hns3: remove dcb_ops->map_update in hclge_dcb
+    - net: hns3: call hns3_nic_set_real_num_queue with netdev down
+    - net: hns3: add 8 BD limit for tx flow
+    - net: hns3: add initialization for nic state
+    - net: hns3: don't allow vf to enable promisc mode
+    - net: hns3: reuse the definition of l3 and l4 header info union
+    - net: hns3: fix VF dump register issue
+    - net: hns3: use the correct interface to stop|open port
+    - net: hns3: change hnae3_register_ae_dev() to int
+    - net: hns3: only support tc 0 for VF
+    - net: hns3: Fix NULL deref when unloading driver
+    - net: hns3: fix netif_napi_del() not do problem when unloading
+    - net: hns3: fix for rss result nonuniform
+    - net: hns3: fix improper error handling in the hclge_init_ae_dev()
+    - net: hns3: fix an issue for hclgevf_ae_get_hdev
+    - net: hns3: stop sending keep alive msg to PF when VF is resetting
+    - net: hns3: keep flow director state unchanged when reset
+    - net: hns3: Check for allocation failure
+    - net: hns3: fix a code style issue for hns3_update_new_int_gl()
+    - net: hns3: fix an issue for hns3_update_new_int_gl
+    - net: hns3: Modify parameter type from int to bool in set_gro_en
+    - net: hns3: code optimization for hclge_rx_buffer_calc
+    - net: hns3: add hclge_cmd_check_retval() to parse comman's return value
+    - net: hns3: move some set_bit statement into hclge_prepare_mac_addr
+    - net: hns3: fix a wrong checking in the hclge_tx_buffer_calc()
+    - net: hns3: fix the problem that the supported port is empty
+    - net: hns3: optimize the maximum TC macro
+    - net: hns3: don't allow user to change vlan filter state
+    - net: hns3: modify the upper limit judgment condition
+    - net: hns3: MAC table entry count function increases operation 0 value
+      protection measures
+    - net: hns3: make function hclge_set_all_vf_rst() static
+    - net: hns3: add pointer checking at the beginning of the exported functions.
+    - net: hns3: Check variable is valid before assigning it to another
+    - net: hns3: convert mac advertize and supported from u32 to link mode
+    - net: hns3: fix port info query issue for copper port
+    - net: hns3: modify print message of ssu common ecc errors
+    - net: hns3: some bugfix of ppu(rcb) ras errors
+    - net: hns3: enable 8~11th bit of mac common msi-x error
+    - net: hns3: fix 6th bit of ppp mpf abnormal errors
+    - net: hns3: Record VF unicast and multicast tables
+    - net: hns3: Record VF vlan tables
+    - net: hns3: uninitialize command queue while unloading PF driver
+    - net: hns3: clear command queue's registers when unloading VF driver
+    - net: hns3: add xps setting support for hns3 driver
+    - net: hns3: avoid mult + div op in critical data path
+    - net: hns3: limit some variable scope in critical data path
+    - net: hns3: remove some ops in struct hns3_nic_ops
+    - net: hns3: add unlikely for error handling in data path
+    - net: hns3: replace hnae3_set_bit and hnae3_set_field in data path
+    - net: hns3: remove hnae3_get_bit in data path
+    - net: hns3: add support to config depth for tx|rx ring separately
+    - net: hns3: enable VF VLAN filter for each VF when initializing
+    - net: hns3: fix get VF RSS issue
+    - net: hns3: fix setting of the hns reset_type for rdma hw errors
+    - net: hns3: fix improper error handling for hns3_client_start
+    - net: hns: use struct_size() in devm_kzalloc()
+    - net: hns3: Fix a logical vs bitwise typo
+    - net: hns3: add dma_rmb() for rx description
+    - net: hns3: fix to stop multiple HNS reset due to the AER changes
+
+  * Build Nvidia drivers in conjunction with kernel (LP: #1764792)
+    - [Packaging] dkms-build -- support building against packages in PPAs
+    - [Packaging] dkms-build: do not redownload files on subsequent passes
+    - [Packaging] dkms-build -- elide partial Built-Using information
+    - [Packaging] dkms-build -- remove retpoline data from final binary packages
+    - [Packaging] dkms-build--nvidia* -- check gcc version against primary build
+    - [Packaging] dkms-build -- add support for unversioned overrides
+    - [Packaging] dkms-build--nvidia-* -- convert to generic -N form
+    - [Packaging] fix-filenames -- handle exact string removal
+    - [Packaging] dkms-build--nvidia-N -- remove GCC versions
+
+  * Disco update: v5.0.1 upstream stable release (LP: #1819515)
+    - cpufreq: Use struct kobj_attribute instead of struct global_attr
+    - staging: erofs: fix mis-acted TAIL merging behavior
+    - binder: create node flag to request sender's security context
+    - USB: serial: option: add Telit ME910 ECM composition
+    - USB: serial: cp210x: add ID for Ingenico 3070
+    - USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
+    - driver core: Postpone DMA tear-down until after devres release
+    - staging: erofs: fix fast symlink w/o xattr when fs xattr is on
+    - staging: erofs: fix memleak of inode's shared xattr array
+    - staging: erofs: fix race of initializing xattrs of a inode at the same time
+    - staging: erofs: fix illegal address access under memory pressure
+    - staging: comedi: ni_660x: fix missing break in switch statement
+    - staging: wilc1000: fix to set correct value for 'vif_num'
+    - staging: android: ion: fix sys heap pool's gfp_flags
+    - staging: android: ashmem: Don't call fallocate() with ashmem_mutex held.
+    - staging: android: ashmem: Avoid range_alloc() allocation with ashmem_mutex
+      held.
+    - ip6mr: Do not call __IP6_INC_STATS() from preemptible context
+    - net: dsa: mv88e6xxx: add call to mv88e6xxx_ports_cmode_init to probe for new
+      DSA framework
+    - net: dsa: mv88e6xxx: handle unknown duplex modes gracefully in
+      mv88e6xxx_port_set_duplex
+    - net: dsa: mv8e6xxx: fix number of internal PHYs for 88E6x90 family
+    - net: mscc: Enable all ports in QSGMII
+    - net: sched: put back q.qlen into a single location
+    - net-sysfs: Fix mem leak in netdev_register_kobject
+    - qmi_wwan: Add support for Quectel EG12/EM12
+    - sctp: call iov_iter_revert() after sending ABORT
+    - team: Free BPF filter when unregistering netdev
+    - tipc: fix RDM/DGRAM connect() regression
+    - x86/CPU/AMD: Set the CPB bit unconditionally on F17h
+    - x86/boot/compressed/64: Do not read legacy ROM on EFI system
+    - tracing: Fix event filters and triggers to handle negative numbers
+    - xhci: tegra: Prevent error pointer dereference
+    - usb: xhci: Fix for Enabling USB ROLE SWITCH QUIRK on
+      INTEL_SUNRISEPOINT_LP_XHCI
+    - applicom: Fix potential Spectre v1 vulnerabilities
+    - alpha: wire up io_pgetevents system call
+    - MIPS: irq: Allocate accurate order pages for irq stack
+    - aio: Fix locking in aio_poll()
+    - xtensa: fix get_wchan
+    - gnss: sirf: fix premature wakeup interrupt enable
+    - USB: serial: cp210x: fix GPIO in autosuspend
+    - Revert "selftests: firmware: add CONFIG_FW_LOADER_USER_HELPER_FALLBACK to
+      config"
+    - Revert "selftests: firmware: remove use of non-standard diff -Z option"
+    - selftests: firmware: fix verify_reqs() return value
+    - Bluetooth: btrtl: Restore old logic to assume firmware is already loaded
+    - Bluetooth: Fix locking in bt_accept_enqueue() for BH context
+    - Linux 5.0.1
+
+  * sky2 ethernet card doesn't work after returning from suspend
+    (LP: #1807259) // sky2 ethernet card link not up after suspend
+    (LP: #1809843) // Disco update: v5.0.1 upstream stable release
+    (LP: #1819515)
+    - sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
+
+  * tls selftest failures/hangs on i386 (LP: #1813607)
+    - [Config] CONFIG_TLS=n for i386
+
+  * CVE-2019-8980
+    - exec: Fix mem leak in kernel_read_file
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests: net: Use 'ipproto ipv6-icmp' to match ICMPv6 headers
+    - [Config] enable nvidia build
+    - [Config] update gcc version to 8.3
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: selftests: pmtu: disable accept_dad for tests"
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 12 Mar 2019 16:15:44 -0300
+
+linux (5.0.0-7.8) disco; urgency=medium
+
+  * linux: 5.0.0-7.8 -proposed tracker (LP: #1818519)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * unnecessary request_queue freeze (LP: #1815733)
+    - block: avoid setting nr_requests to current value
+    - block: avoid setting none scheduler if it's already none
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests: net: Don't fail test_vxlan_under_vrf on xfail
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 04 Mar 2019 08:46:10 -0600
+
+linux (5.0.0-6.7) disco; urgency=medium
+
+  * linux: 5.0.0-6.7 -proposed tracker (LP: #1817585)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - [Packaging] resync getabis
+
+  * installer does not support iSCSI iBFT (LP: #1817321)
+    - d-i: add iscsi_ibft to scsi-modules
+
+  * Silent "Unknown key" message when pressing keyboard backlight hotkey
+    (LP: #1817063)
+    - platform/x86: dell-wmi: Ignore new keyboard backlight change event
+
+  * Fix I219 doesn't get woken up after plugging ethernet cable (LP: #1817058)
+    - e1000e: Disable runtime PM on CNP+
+
+  * efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted (LP: #1814982)
+    - efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted
+
+  * CVE-2019-3460
+    - Bluetooth: Check L2CAP option sizes returned from l2cap_get_conf_opt
+
+  * CVE-2019-3459
+    - Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer
+
+  * kernel net tls selftest fails on 5.0 (LP: #1816716)
+    - SAUCE: Revert "selftests/tls: Add test for recv(PEEK) spanning across
+      multiple records"
+
+  * Please enable CONFIG_DMA_CMA=y on arm64 (LP: #1803206)
+    - [Config] annotations -- enforce CONFIG_DMA_CMA and update notes
+
+  * [19.04 FEAT] [LS1801] PCI Virtual function enablement (LP: #1814684)
+    - s390/pci: map IOV resources
+    - s390/pci: improve bar check
+
+  * glibc 2.28-0ubuntu1 ADT test failure with linux 5.0.0-1.2 (LP: #1813060)
+    - SAUCE: prevent a glibc test failure when looking for obsolete types on
+      headers
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Enforce CONFIG_ZCRYPT_MULTIDEVNODES in annotations
+    - SAUCE: selftests: pmtu: disable accept_dad for tests
+    - SAUCE: arm64: add kernel config option to lock down when in Secure Boot mode
+    - SAUCE: selftests: net: Make test for VXLAN underlay in non-default VRF an
+      expected failure
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 25 Feb 2019 09:37:36 -0600
+
+linux (5.0.0-5.6) disco; urgency=medium
+
+  * [ALSA] [PATCH] System76 darp5 and oryp5 fixups (LP: #1815831)
+    - ALSA: hda/realtek - Headset microphone and internal speaker support for
+      System76 oryp5
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Fix aufs menus in annotations file
+    - [Config] CONFIG_SAMPLE_TRACE_PRINTK=m
+    - [Config] Update annotations based on configs
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 18 Feb 2019 10:04:11 +0100
+
+linux (5.0.0-4.5) disco; urgency=medium
+
+  * linux-buildinfo: pull out ABI information into its own package
+    (LP: #1806380)
+    - [Packaging] autoreconstruct -- base tag is always primary mainline version
+
+  * [Packaging] Allow overlay of config annotations (LP: #1752072)
+    - [Packaging] config-check: Add an include directive
+
+  * Miscellaneous Ubuntu changes
+    - hio -- stub out BIOVEC_PHYS_MERGEABLE for 4.20+
+    - hio -- replace use of do_gettimeofday()
+    - hio -- part_round_stats() removed in 5.0
+    - hio -- device_add_disk() grew a 'groups' argument in 4.20
+    - enable hio build
+    - Revert "UBUNTU: [Packaging] autoreconstruct -- base tag is always primary
+      mainline version"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 12 Feb 2019 08:15:32 -0600
+
+linux (5.0.0-3.4) disco; urgency=medium
+
+  * CONFIG_TEST_BPF is disabled (LP: #1813955)
+    - [Config]: Reenable TEST_BPF
+
+  * Ignore "incomplete report" from Elan touchpanels (LP: #1813733)
+    - HID: i2c-hid: Ignore input report if there's no data present on Elan
+      touchpanels
+
+  * SecureBoot support for arm64 (LP: #1804481)
+    - Build signed kernels for arm64
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests: net: fix "from" match test in fib_rule_tests.sh
+    - [Config] CONFIG_PCMCIA=n for arm64 and s390x
+    - [Config] CONFIG_SERIAL_SC16IS7XX=n for s390x
+    - [Config] disable I2C TPM drivers for s390x
+    - [Config] CONFIG_RAPIDIO=n for s390x
+    - [Config] CONFIG_DMADEVICES=n for s390x
+    - [Config] disable gpio drivers for s390x
+    - [Config] CONFIG_SENSORS_OCC_P8_I2C=m for ppc64el
+    - [Config] disable I2C hardware drivers for s390x
+    - [Config] CONFIG_I3C=n for s390x
+    - [Config] CONFIG_SERIO=n for s390x
+    - [Config] disable misc drivers for s390x
+    - [Config] disable EEPROM drivers for s390x
+    - [Config] disable MFD drivers for s390x
+    - [Config] CONFIG_NVMEM=n for s390x
+    - [Config] CONFIG_MLXSW_I2C=n for s390x
+    - [Config] CONFIG_NET_VENDOR_MICROCHIP=n for s390x
+    - [Config] CONFIG_PPP=n for s390x
+    - [Config] CONFIG_PCCARD=n for s390x
+    - [Config] CONFIG_PCI_MESON=y
+    - [Config] CONFIG_SCSI_MYRB=n for s390x
+    - [Config] CONFIG_REGULATOR=n for s390x
+    - [Config] CONFIG_ZIIRAVE_WATCHDOG=n for s390x
+    - [Config] CONFIG_NCSI_OEM_CMD_GET_MAC=y
+    - [Config] update annotations following config review
+    - [Packaging] remove handoff check for uefi signing
+    - [Packaging] decompress gzipped efi images in signing tarball
+    - vbox-update: allow leading whitespace when fixing up KERN_DIR
+    - ubuntu: vbox -- update to 6.0.4-dfsg-3
+    - vbox: remove remount check in sf_read_super_aux()
+    - enable vbox build
+    - [Config] CONFIG_ANDROID_BINDER_DEVICES=""
+    - SAUCE: import aufs driver
+    - [Config]: Enable aufs
+    - [Config] relocate aufs annotations to menu
+    - [Config] remove unmatched configs from annotations
+    - [Config] fix up abi for removed modules
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) module: remove support for having IMA validate modules
+    - SAUCE: (efi-lockdown) Move EFI signature blob parser to shared location
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - [Config] (efi-lockdown) enable importing of efi certificates for module sig
+      verification
+
+  * Miscellaneous upstream changes
+    - binder: fix CONFIG_ANDROID_BINDER_DEVICES
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 05 Feb 2019 14:26:12 -0600
+
+linux (5.0.0-2.3) disco; urgency=medium
+
+  * kernel oops in bcache module (LP: #1793901)
+    - SAUCE: bcache: never writeback a discard operation
+
+  * Enable sound card power saving by default (LP: #1804265)
+    - [Config] CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: selftests: disable some failing networking tests"
+    - SAUCE: ashmem: turn into module
+    - SAUCE: binder: turn into module
+    - SAUCE: binder: give binder_alloc its own debug mask file
+    - [Config] enable binder and ashmem as modules
+    - SAUCE: selftests: net: replace AF_MAX with INT_MAX in socket.c
+    - SAUCE: selftests/ftrace: Fix tab expansion in trace_marker snapshot trigger
+      test
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 29 Jan 2019 06:57:32 -0600
+
+linux (5.0.0-1.2) disco; urgency=medium
+
+  * Fix non-working QCA Rome Bluetooth after S3 (LP: #1812812)
+    - USB: Add new USB LPM helpers
+    - USB: Consolidate LPM checks to avoid enabling LPM twice
+
+  * bluetooth controller not detected with 4.15 kernel (LP: #1810797)
+    - SAUCE: btqcomsmd: introduce BT_QCOMSMD_HACK
+    - [Config] arm64: snapdragon: BT_QCOMSMD_HACK=y
+
+  * [19.04 FEAT| Enable virtio-gpu for s390x (LP: #1799467)
+    - [Config] enable virtio-gpu for s390x
+
+  * Crash on "ip link add foo type ipip" (LP: #1811803)
+    - SAUCE: fan: Fix NULL pointer dereference
+
+  * Fix not working Goodix touchpad (LP: #1811929)
+    - HID: i2c-hid: Disable runtime PM on Goodix touchpad
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - enable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 22 Jan 2019 13:56:17 -0600
+
+linux (5.0.0-0.1) disco; urgency=medium
+
+  * Build Nvidia drivers in conjunction with kernel (LP: #1764792)
+    - [Packaging] dkms -- add per package post-process step
+    - [Packaging] dkms -- switch to a consistent build prefix length and strip
+    - [Packaging] nvidia -- build and sign nvidia packages and ship signatures
+    - [Packaging] nvidia -- make nvidia package version explicit
+
+  * Add support for ALC3277 codec on new Dell edge gateways (LP: #1807334)
+    - [Config] CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
+
+  * RTL8822BE WiFi Disabled in Kernel 4.18.0-12 (LP: #1806472)
+    - [Config] CONFIG_RTLWIFI_DEBUG_ST=n
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu -- disable vbox build
+    - ubuntu -- disable hio build
+    - Disable zfs build
+    - SAUCE: import aufs driver
+    - update dkms package versions
+    - [Config] disable aufs config options
+    - [Config] disable nvidia build
+    - update dropped.txt
+    - [Packaging] disable nvidia dkms builds for mainline
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - [Config] set config options for efi lockdown
+    - Revert "UBUNTU: SAUCE: import aufs driver"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 17 Jan 2019 12:31:29 -0600
+
+linux (5.0.0-0.0) disco; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 16 Jan 2019 14:48:05 -0600
+
+linux (4.20.0-2.3) disco; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.20
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 03 Jan 2019 12:11:43 -0600
+
+linux (4.20.0-1.2) disco; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Power leakage at S5 with Qualcomm Atheros QCA9377 802.11ac Wireless Network
+    Adapter (LP: #1805607)
+    - SAUCE: ath10k: provide reset function for QCA9377 chip
+
+  * zfs/spl build in conjunction with the kernel from DKMS source (LP: #1807378)
+    - [Packaging] dkms -- dkms package build packaging support
+    - [Packaging] dkms -- save build objects artifacts for validation
+    - [Packaging] dkms -- add general Built-Using: support
+    - [Packaging] simplify Provides comma handling
+    - [Packaging] zfs/spl -- remove packaging support for incorporated source
+    - [Packaging] zfs/spl -- remove incorporated source
+    - [Packaging] zfs/spl -- build via dkms
+    - [Packaging] zfs/spl -- make zfs package version explicit
+    - [Packaging] update-version-dkms -- sync archive versions to package
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] update-version-dkms -- fix getting distrbution from changelog
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.20-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 11 Dec 2018 11:33:08 -0600
+
+linux (4.20.0-0.1) disco; urgency=medium
+
+  * Overlayfs in user namespace leaks directory content of inaccessible
+    directories (LP: #1793458) // CVE-2018-6559
+    - Revert "ovl: relax permission checking on underlying layers"
+    - SAUCE: overlayfs: ensure mounter privileges when reading directories
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) Fix for module sig verification
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: Import aufs driver
+    - ubuntu: vbox -- update to 5.2.22-dfsg-2
+    - ubuntu -- disable vbox build
+    - ubuntu -- disable hio build
+    - Disable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.20-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 07 Dec 2018 07:13:42 -0600
+
+linux (4.20.0-0.0) disco; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 06 Dec 2018 10:20:19 -0600
+
+linux (4.19.0-8.9) disco; urgency=medium
+
+  * linux: 4.19.0-8.9 -proposed tracker (LP: #1806952)
+
+  * Workaround CSS timeout on AMD SNPS 3.0 xHC (LP: #1806838)
+    - xhci: workaround CSS timeout on AMD SNPS 3.0 xHC
+
+  * Fix Intel I210 doesn't work when ethernet cable gets plugged (LP: #1806818)
+    - igb: Fix an issue that PME is not enabled during runtime suspend
+
+  * The line-out on the Dell Dock station can't work (LP: #1806532)
+    - ALSA: usb-audio: Add vendor and product name for Dell WD19 Dock
+
+  * CVE-2018-19407
+    - KVM: X86: Fix scan ioapic use-before-initialization
+
+  * PC SN720 NVMe WDC 256GB consumes more power in S2Idle than during long idle
+    (LP: #1805775)
+    - SAUCE: pci/nvme: prevent WDC PC SN720 NVMe from entering D3 and being
+      disabled
+
+  * Disco update: 4.19.6 upstream stable release (LP: #1806909)
+    - HID: steam: remove input device when a hid client is running.
+    - efi/libstub: arm: support building with clang
+    - usb: core: Fix hub port connection events lost
+    - usb: dwc3: gadget: fix ISOC TRB type on unaligned transfers
+    - usb: dwc3: gadget: Properly check last unaligned/zero chain TRB
+    - usb: dwc3: core: Clean up ULPI device
+    - usb: dwc3: Fix NULL pointer exception in dwc3_pci_remove()
+    - xhci: Fix leaking USB3 shared_hcd at xhci removal
+    - xhci: handle port status events for removed USB3 hcd
+    - xhci: Add check for invalid byte size error when UAS devices are connected.
+    - usb: xhci: fix uninitialized completion when USB3 port got wrong status
+    - usb: xhci: fix timeout for transition from RExit to U0
+    - xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc
+    - usb: xhci: Prevent bus suspend if a port connect change or polling state is
+      detected
+    - ALSA: oss: Use kvzalloc() for local buffer allocations
+    - MAINTAINERS: Add Sasha as a stable branch maintainer
+    - Documentation/security-bugs: Clarify treatment of embargoed information
+    - Documentation/security-bugs: Postpone fix publication in exceptional cases
+    - mmc: sdhci-pci: Try "cd" for card-detect lookup before using NULL
+    - mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value
+    - gpio: don't free unallocated ida on gpiochip_add_data_with_key() error path
+    - iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE
+    - iwlwifi: mvm: support sta_statistics() even on older firmware
+    - iwlwifi: mvm: fix regulatory domain update when the firmware starts
+    - iwlwifi: mvm: don't use SAR Geo if basic SAR is not used
+    - brcmfmac: fix reporting support for 160 MHz channels
+    - opp: ti-opp-supply: Dynamically update u_volt_min
+    - opp: ti-opp-supply: Correct the supply in _get_optimal_vdd_voltage call
+    - tools/power/cpupower: fix compilation with STATIC=true
+    - v9fs_dir_readdir: fix double-free on p9stat_read error
+    - selinux: Add __GFP_NOWARN to allocation at str_read()
+    - Input: synaptics - avoid using uninitialized variable when probing
+    - bfs: add sanity check at bfs_fill_super()
+    - sctp: clear the transport of some out_chunk_list chunks in
+      sctp_assoc_rm_peer
+    - gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
+    - llc: do not use sk_eat_skb()
+    - mm: don't warn about large allocations for slab
+    - mm/memory.c: recheck page table entry with page table lock held
+    - tcp: do not release socket ownership in tcp_close()
+    - drm/fb-helper: Blacklist writeback when adding connectors to fbdev
+    - drm/amdgpu: Add missing firmware entry for HAINAN
+    - drm/vc4: Set ->legacy_cursor_update to false when doing non-async updates
+    - drm/amdgpu: Fix oops when pp_funcs->switch_power_profile is unset
+    - drm/i915: Disable LP3 watermarks on all SNB machines
+    - drm/ast: change resolution may cause screen blurred
+    - drm/ast: fixed cursor may disappear sometimes
+    - drm/ast: Remove existing framebuffers before loading driver
+    - can: flexcan: Unlock the MB unconditionally
+    - can: dev: can_get_echo_skb(): factor out non sending code to
+      __can_get_echo_skb()
+    - can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to
+      access frame length
+    - can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb
+      is accessed out of bounds
+    - can: dev: __can_get_echo_skb(): print error message, if trying to echo non
+      existing skb
+    - can: rx-offload: introduce can_rx_offload_get_echo_skb() and
+      can_rx_offload_queue_sorted() functions
+    - can: rx-offload: rename can_rx_offload_irq_queue_err_skb() to
+      can_rx_offload_queue_tail()
+    - can: flexcan: use can_rx_offload_queue_sorted() for flexcan_irq_bus_*()
+    - can: flexcan: handle tx-complete CAN frames via rx-offload infrastructure
+    - can: raw: check for CAN FD capable netdev in raw_sendmsg()
+    - can: hi311x: Use level-triggered interrupt
+    - can: flexcan: Always use last mailbox for TX
+    - can: flexcan: remove not needed struct flexcan_priv::tx_mb and struct
+      flexcan_priv::tx_mb_idx
+    - ACPICA: AML interpreter: add region addresses in global list during
+      initialization
+    - IB/hfi1: Eliminate races in the SDMA send error path
+    - fsnotify: generalize handling of extra event flags
+    - fanotify: fix handling of events on child sub-directory
+    - pinctrl: meson: fix pinconf bias disable
+    - pinctrl: meson: fix gxbb ao pull register bits
+    - pinctrl: meson: fix gxl ao pull register bits
+    - pinctrl: meson: fix meson8 ao pull register bits
+    - pinctrl: meson: fix meson8b ao pull register bits
+    - tools/testing/nvdimm: Fix the array size for dimm devices.
+    - scsi: lpfc: fix remoteport access
+    - scsi: hisi_sas: Remove set but not used variable 'dq_list'
+    - KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
+    - cpufreq: imx6q: add return value check for voltage scale
+    - rtc: cmos: Do not export alarm rtc_ops when we do not support alarms
+    - rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
+    - crypto: simd - correctly take reqsize of wrapped skcipher into account
+    - floppy: fix race condition in __floppy_read_block_0()
+    - powerpc/io: Fix the IO workarounds code to work with Radix
+    - sched/fair: Fix cpu_util_wake() for 'execl' type workloads
+    - perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
+    - block: copy ioprio in __bio_clone_fast() and bounce
+    - SUNRPC: Fix a bogus get/put in generic_key_to_expire()
+    - riscv: add missing vdso_install target
+    - RISC-V: Silence some module warnings on 32-bit
+    - drm/amdgpu: fix bug with IH ring setup
+    - kdb: Use strscpy with destination buffer size
+    - NFSv4: Fix an Oops during delegation callbacks
+    - powerpc/numa: Suppress "VPHN is not supported" messages
+    - efi/arm: Revert deferred unmap of early memmap mapping
+    - z3fold: fix possible reclaim races
+    - mm, memory_hotplug: check zone_movable in has_unmovable_pages
+    - tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
+    - mm, page_alloc: check for max order in hot path
+    - dax: Avoid losing wakeup in dax_lock_mapping_entry
+    - include/linux/pfn_t.h: force '~' to be parsed as an unary operator
+    - tty: wipe buffer.
+    - tty: wipe buffer if not echoing data
+    - gfs2: Fix iomap buffer head reference counting bug
+    - rcu: Make need_resched() respond to urgent RCU-QS needs
+    - media: ov5640: Re-work MIPI startup sequence
+    - media: ov5640: Fix timings setup code
+    - media: ov5640: fix exposure regression
+    - media: ov5640: fix auto gain & exposure when changing mode
+    - media: ov5640: fix wrong binning value in exposure calculation
+    - media: ov5640: fix auto controls values when switching to manual mode
+    - Linux 4.19.6
+
+  * linux-buildinfo: pull out ABI information into its own package
+    (LP: #1806380)
+    - [Packaging] limit preparation to linux-libc-dev in headers
+    - [Packaging] commonise debhelper invocation
+    - [Packaging] ABI -- accumulate abi information at the end of the build
+    - [Packaging] buildinfo -- add basic build information
+    - [Packaging] buildinfo -- add firmware information to the flavour ABI
+    - [Packaging] buildinfo -- add compiler information to the flavour ABI
+    - [Packaging] buildinfo -- add buildinfo support to getabis
+    - [Packaging] getabis -- handle all known package combinations
+    - [Packaging] getabis -- support parsing a simple version
+
+  * linux packages should own /usr/lib/linux/triggers (LP: #1770256)
+    - [Packaging] own /usr/lib/linux/triggers
+
+  * Miscellaneous upstream changes
+    - blk-mq: fix corruption with direct issue
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 05 Dec 2018 09:18:30 -0600
+
+linux (4.19.0-7.8) disco; urgency=medium
+
+  * linux: 4.19.0-7.8 -proposed tracker (LP: #1805465)
+
+  * Fix and issue that LG I2C touchscreen stops working after reboot
+    (LP: #1805085)
+    - HID: i2c-hid: Disable runtime PM for LG touchscreen
+
+  * click/pop noise in the headphone on several lenovo laptops (LP: #1805079) //
+    click/pop noise in the headphone on several lenovo laptops (LP: #1805079)
+    - ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops
+
+  * Regression: hinic performance degrades over time (LP: #1805248)
+    - Revert "net-next/hinic: add checksum offload and TSO support"
+
+  * Disco update: 4.19.5 upstream stable release (LP: #1805461)
+    - drm/i915: Replace some PAGE_SIZE with I915_GTT_PAGE_SIZE
+    - cifs: don't dereference smb_file_target before null check
+    - cifs: fix return value for cifs_listxattr
+    - arm64: kprobe: make page to RO mode when allocate it
+    - block: brd: associate with queue until adding disk
+    - net: hns3: bugfix for rtnl_lock's range in the hclgevf_reset()
+    - net: hns3: bugfix for rtnl_lock's range in the hclge_reset()
+    - net: hns3: bugfix for handling mailbox while the command queue reinitialized
+    - net: hns3: bugfix for the initialization of command queue's spin lock
+    - ixgbe: fix MAC anti-spoofing filter after VFLR
+    - reiserfs: propagate errors from fill_with_dentries() properly
+    - hfs: prevent btree data loss on root split
+    - hfsplus: prevent btree data loss on root split
+    - perf unwind: Take pgoff into account when reporting elf to libdwfl
+    - um: Give start_idle_thread() a return code
+    - drm/edid: Add 6 bpc quirk for BOE panel.
+    - afs: Handle EIO from delivery function
+    - platform/x86: intel_telemetry: report debugfs failure
+    - clk: fixed-rate: fix of_node_get-put imbalance
+    - perf symbols: Set PLT entry/header sizes properly on Sparc
+    - fs/exofs: fix potential memory leak in mount option parsing
+    - clk: samsung: exynos5420: Enable PERIS clocks for suspend
+    - apparmor: Fix uninitialized value in aa_split_fqname
+    - x86/earlyprintk: Add a force option for pciserial device
+    - platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307
+    - clk: meson-axg: pcie: drop the mpll3 clock parent
+    - arm64: percpu: Initialize ret in the default case
+    - clk: meson: clk-pll: drop CLK_GET_RATE_NOCACHE where unnecessary
+    - clk: renesas: r9a06g032: Fix UART34567 clock rate
+    - clk: ti: fix OF child-node lookup
+    - serial: sh-sci: Fix receive on SCIFA/SCIFB variants with DMA
+    - netfilter: ipv6: fix oops when defragmenting locally generated fragments
+    - netfilter: bridge: define INT_MIN & INT_MAX in userspace
+    - s390/decompressor: add missing FORCE to build targets
+    - s390/vdso: add missing FORCE to build targets
+    - HID: i2c-hid: Add a small delay after sleep command for Raydium touchpanel
+    - Revert "HID: add NOGET quirk for Eaton Ellipse MAX UPS"
+    - HID: alps: allow incoming reports when only the trackstick is opened
+    - Revert "netfilter: nft_numgen: add map lookups for numgen random operations"
+    - netfilter: ipset: list:set: Decrease refcount synchronously on deletion and
+      replace
+    - netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net
+    - netfilter: ipset: fix ip_set_list allocation failure
+    - s390/mm: fix mis-accounting of pgtable_bytes
+    - s390/mm: Fix ERROR: "__node_distance" undefined!
+    - bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
+    - netfilter: ipset: Correct rcu_dereference() call in ip_set_put_comment()
+    - netfilter: xt_IDLETIMER: add sysfs filename checking routine
+    - netfilter: ipset: Fix calling ip_set() macro at dumping
+    - netfilter: nft_compat: ebtables 'nat' table is normal chain type
+    - s390/qeth: fix HiperSockets sniffer
+    - s390/qeth: unregister netdevice only when registered
+    - net: hns3: Fix for out-of-bounds access when setting pfc back pressure
+    - hwmon: (ibmpowernv) Remove bogus __init annotations
+    - ARM: dts: imx6sll: fix typo for fsl,imx6sll-i2c node
+    - ARM: dts: fsl: Fix improperly quoted stdout-path values
+    - Revert "drm/exynos/decon5433: implement frame counter"
+    - arm64: dts: renesas: r8a7795: add missing dma-names on hscif2
+    - arm64: dts: renesas: condor: switch from EtherAVB to GEther
+    - xen/grant-table: Fix incorrect gnttab_dma_free_pages() pr_debug message
+    - clk: fixed-factor: fix of_node_get-put imbalance
+    - mtd: nand: Fix nanddev_pos_next_page() kernel-doc header
+    - lib/raid6: Fix arm64 test build
+    - drm/amd/display: Stop leaking planes
+    - block: Clear kernel memory before copying to user
+    - drm/amd/display: Drop reusing drm connector for MST
+    - drm/amd/amdgpu/dm: Fix dm_dp_create_fake_mst_encoder()
+    - s390/perf: Change CPUM_CF return code in event init function
+    - ceph: quota: fix null pointer dereference in quota check
+    - of/device: Really only set bus DMA mask when appropriate
+    - nvme: make sure ns head inherits underlying device limits
+    - i2c: omap: Enable for ARCH_K3
+    - i2c: qcom-geni: Fix runtime PM mismatch with child devices
+    - sched/core: Take the hotplug lock in sched_init_smp()
+    - perf tools: Fix undefined symbol scnprintf in libperf-jvmti.so
+    - perf tools: Do not zero sample_id_all for group members
+    - ice: Fix dead device link issue with flow control
+    - ice: Fix the bytecount sent to netdev_tx_sent_queue
+    - ice: Change req_speeds to be u16
+    - i40e: restore NETIF_F_GSO_IPXIP[46] to netdev features
+    - qed: Fix memory/entry leak in qed_init_sp_request()
+    - qed: Fix blocking/unlimited SPQ entries leak
+    - qed: Fix SPQ entries not returned to pool in error flows
+    - qed: Fix potential memory corruption
+    - net: stmmac: Fix RX packet size > 8191
+    - net: aquantia: fix potential IOMMU fault after driver unbind
+    - net: aquantia: fixed enable unicast on 32 macvlan
+    - net: aquantia: invalid checksumm offload implementation
+    - kbuild: deb-pkg: fix too low build version number
+    - Revert "scripts/setlocalversion: git: Make -dirty check more robust"
+    - SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
+    - x86/mm: Move LDT remap out of KASLR region on 5-level paging
+    - x86/ldt: Unmap PTEs for the slot before freeing LDT pages
+    - x86/ldt: Remove unused variable in map_ldt_struct()
+    - media: v4l: event: Add subscription to list before calling "add" operation
+    - MIPS: OCTEON: cavium_octeon_defconfig: re-enable OCTEON USB driver
+    - RISC-V: Fix raw_copy_{to,from}_user()
+    - uio: Fix an Oops on load
+    - ALSA: hda/realtek - Add quirk entry for HP Pavilion 15
+    - ALSA: hda/ca0132 - Call pci_iounmap() instead of iounmap()
+    - can: kvaser_usb: Fix accessing freed memory in kvaser_usb_start_xmit()
+    - can: kvaser_usb: Fix potential uninitialized variable use
+    - usb: cdc-acm: add entry for Hiro (Conexant) modem
+    - USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub
+    - usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
+    - misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
+    - USB: misc: appledisplay: add 20" Apple Cinema Display
+    - gnss: serial: fix synchronous write timeout
+    - gnss: sirf: fix synchronous write timeout
+    - mtd: rawnand: atmel: fix OF child-node lookup
+    - drivers/misc/sgi-gru: fix Spectre v1 vulnerability
+    - ACPI / platform: Add SMB0001 HID to forbidden_id_list
+    - HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
+    - HID: Add quirk for Primax PIXART OEM mice
+    - HID: Add quirk for Microsoft PIXART OEM mouse
+    - libceph: fall back to sendmsg for slab pages
+    - mt76x0: run vco calibration for each channel configuration
+    - Linux 4.19.5
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: Build signed kernels for arm64"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 27 Nov 2018 10:38:34 -0600
+
+linux (4.19.0-6.7) disco; urgency=medium
+
+  * linux: 4.19.0-6.7 -proposed tracker (LP: #1805195)
+
+  * SecureBoot support for arm64 (LP: #1804481)
+    - Build signed kernels for arm64
+
+  * Add pointstick support for Cirque Touchpad (LP: #1805081)
+    - HID: multitouch: Add pointstick support for Cirque Touchpad
+
+  * Power consumption during s2idle is higher than long idle (Intel SSDPEKKF)
+    (LP: #1804588)
+    - SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3
+    - SAUCE: nvme: add quirk to not call disable function when suspending
+
+  * Disco update: 4.19.4 upstream stable release (LP: #1805159)
+    - flow_dissector: do not dissect l4 ports for fragments
+    - ibmvnic: fix accelerated VLAN handling
+    - ip_tunnel: don't force DF when MTU is locked
+    - ipv6: fix a dst leak when removing its exception
+    - ipv6: Fix PMTU updates for UDP/raw sockets in presence of VRF
+    - net: bcmgenet: protect stop from timeout
+    - net-gro: reset skb->pkt_type in napi_reuse_skb()
+    - sctp: not allow to set asoc prsctp_enable by sockopt
+    - tcp: Fix SOF_TIMESTAMPING_RX_HARDWARE to use the latest timestamp during TCP
+      coalescing
+    - tg3: Add PHY reset for 5717/5719/5720 in change ring and flow control paths
+    - tipc: don't assume linear buffer when reading ancillary data
+    - tipc: fix lockdep warning when reinitilaizing sockets
+    - tuntap: fix multiqueue rx
+    - net: systemport: Protect stop from timeout
+    - net/sched: act_pedit: fix memory leak when IDR allocation fails
+    - net: sched: cls_flower: validate nested enc_opts_policy to avoid warning
+    - tipc: fix link re-establish failure
+    - net/mlx5e: Don't match on vlan non-existence if ethertype is wildcarded
+    - net/mlx5e: Claim TC hw offloads support only under a proper build config
+    - net/mlx5e: Adjust to max number of channles when re-attaching
+    - net/mlx5e: RX, verify received packet size in Linear Striding RQ
+    - Revert "sctp: remove sctp_transport_pmtu_check"
+    - net/mlx5e: Always use the match level enum when parsing TC rule match
+    - net/mlx5e: Fix selftest for small MTUs
+    - net/mlx5e: Removed unnecessary warnings in FEC caps query
+    - inet: frags: better deal with smp races
+    - l2tp: fix a sock refcnt leak in l2tp_tunnel_register
+    - net/mlx5: IPSec, Fix the SA context hash key
+    - net/mlx5e: IPoIB, Reset QP after channels are closed
+    - net: dsa: mv88e6xxx: Fix clearing of stats counters
+    - net: phy: realtek: fix RTL8201F sysfs name
+    - sctp: define SCTP_SS_DEFAULT for Stream schedulers
+    - net: qualcomm: rmnet: Fix incorrect assignment of real_dev
+    - net: dsa: microchip: initialize mutex before use
+    - sctp: fix strchange_flags name for Stream Change Event
+    - net: phy: mdio-gpio: Fix working over slow can_sleep GPIOs
+    - sctp: not increase stream's incnt before sending addstrm_in request
+    - mlxsw: spectrum: Fix IP2ME CPU policer configuration
+    - net: smsc95xx: Fix MTU range
+    - rxrpc: Fix lockup due to no error backoff after ack transmit error
+    - usbnet: smsc95xx: disable carrier check while suspending
+    - Revert "x86/speculation: Enable cross-hyperthread spectre v2 STIBP
+      mitigation"
+    - Linux 4.19.4
+
+  * Disco update: 4.19.3 upstream stable release (LP: #1805158)
+    - powerpc/traps: restore recoverability of machine_check interrupts
+    - powerpc/64/module: REL32 relocation range check
+    - powerpc/mm: Fix page table dump to work on Radix
+    - powerpc/mm: fix always true/false warning in slice.c
+    - drm/amd/display: fix bug of accessing invalid memory
+    - Input: wm97xx-ts - fix exit path
+    - powerpc/Makefile: Fix PPC_BOOK3S_64 ASFLAGS
+    - powerpc/eeh: Fix possible null deref in eeh_dump_dev_log()
+    - tty: check name length in tty_find_polling_driver()
+    - tracing/kprobes: Check the probe on unloaded module correctly
+    - drm/nouveau/secboot/acr: fix memory leak
+    - drm/amdgpu/powerplay: fix missing break in switch statements
+    - ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL
+    - powerpc/nohash: fix undefined behaviour when testing page size support
+    - drm/msm/gpu: fix parameters in function msm_gpu_crashstate_capture
+    - drm/msm/disp/dpu: Use proper define for drm_encoder_init() 'encoder_type'
+    - drm/msm: dpu: Allow planes to extend past active display
+    - powerpc/mm: Don't report hugepage tables as memory leaks when using kmemleak
+    - drm/omap: fix memory barrier bug in DMM driver
+    - drm/amd/display: Raise dispclk value for dce120 by 15%
+    - drm/amd/display: fix gamma not being applied
+    - drm/hisilicon: hibmc: Do not carry error code in HiBMC framebuffer pointer
+    - media: pci: cx23885: handle adding to list failure
+    - media: coda: don't overwrite h.264 profile_idc on decoder instance
+    - MIPS: kexec: Mark CPU offline before disabling local IRQ
+    - powerpc/boot: Ensure _zimage_start is a weak symbol
+    - powerpc/memtrace: Remove memory in chunks
+    - MIPS/PCI: Call pcie_bus_configure_settings() to set MPS/MRRS
+    - staging: erofs: fix a missing endian conversion
+    - serial: 8250_of: Fix for lack of interrupt support
+    - sc16is7xx: Fix for multi-channel stall
+    - media: tvp5150: fix width alignment during set_selection()
+    - powerpc/selftests: Wait all threads to join
+    - staging:iio:ad7606: fix voltage scales
+    - drm: rcar-du: Update Gen3 output limitations
+    - drm/amdgpu: Fix SDMA TO after GPU reset v3
+    - staging: most: video: fix registration of an empty comp core_component
+    - 9p locks: fix glock.client_id leak in do_lock
+    - udf: Prevent write-unsupported filesystem to be remounted read-write
+    - ARM: dts: imx6ull: keep IMX6UL_ prefix for signals on both i.MX6UL and
+      i.MX6ULL
+    - media: ov5640: fix mode change regression
+    - 9p: clear dangling pointers in p9stat_free
+    - drm/amdgpu: fix integer overflow test in amdgpu_bo_list_create()
+    - media: ov5640: fix restore of last mode set
+    - cdrom: fix improper type cast, which can leat to information leak.
+    - ovl: fix error handling in ovl_verify_set_fh()
+    - ovl: fix recursive oi->lock in ovl_link()
+    - ovl: check whiteout in ovl_create_over_whiteout()
+    - ovl: automatically enable redirect_dir on metacopy=on
+    - serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout
+    - scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
+    - scsi: qla2xxx: Fix process response queue for ISP26XX and above
+    - scsi: qla2xxx: Remove stale debug trace message from tcm_qla2xxx
+    - scsi: qla2xxx: Fix early srb free on abort
+    - scsi: qla2xxx: shutdown chip if reset fail
+    - scsi: qla2xxx: Reject bsg request if chip is down.
+    - scsi: qla2xxx: Fix re-using LoopID when handle is in use
+    - scsi: qla2xxx: Fix for double free of SRB structure
+    - scsi: qla2xxx: Fix NVMe session hang on unload
+    - scsi: qla2xxx: Fix NVMe Target discovery
+    - scsi: qla2xxx: Fix duplicate switch database entries
+    - scsi: qla2xxx: Fix driver hang when FC-NVMe LUNs are configured
+    - vfs: fix FIGETBSZ ioctl on an overlayfs file
+    - fuse: Fix use-after-free in fuse_dev_do_read()
+    - fuse: Fix use-after-free in fuse_dev_do_write()
+    - fuse: fix blocked_waitq wakeup
+    - fuse: set FR_SENT while locked
+    - drm/msm: fix OF child-node lookup
+    - arm64: dts: stratix10: Support Ethernet Jumbo frame
+    - arm64: dts: stratix10: fix multicast filtering
+    - clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
+    - clk: meson: axg: mark fdiv2 and fdiv3 as critical
+    - zram: close udev startup race condition as default groups
+    - MIPS: Loongson-3: Fix CPU UART irq delivery problem
+    - MIPS: Loongson-3: Fix BRIDGE irq delivery problem
+    - xtensa: add NOTES section to the linker script
+    - xtensa: make sure bFLT stack is 16 byte aligned
+    - xtensa: fix boot parameters address translation
+    - um: Drop own definition of PTRACE_SYSEMU/_SINGLESTEP
+    - clk: s2mps11: Fix matching when built as module and DT node contains
+      compatible
+    - clk: at91: Fix division by zero in PLL recalc_rate()
+    - clk: sunxi-ng: h6: fix bus clocks' divider position
+    - clk: rockchip: fix wrong mmc sample phase shift for rk3328
+    - clk: rockchip: Fix static checker warning in rockchip_ddrclk_get_parent call
+    - libceph: bump CEPH_MSG_MAX_DATA_LEN
+    - Revert "ceph: fix dentry leak in splice_dentry()"
+    - thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs
+    - mach64: fix display corruption on big endian machines
+    - mach64: fix image corruption due to reading accelerator registers
+    - acpi/nfit, x86/mce: Handle only uncorrectable machine checks
+    - acpi/nfit, x86/mce: Validate a MCE's address before using it
+    - acpi, nfit: Fix ARS overflow continuation
+    - reset: hisilicon: fix potential NULL pointer dereference
+    - crypto: hisilicon - Fix NULL dereference for same dst and src
+    - crypto: hisilicon - Fix reference after free of memories on error path
+    - vhost/scsi: truncate T10 PI iov_iter to prot_bytes
+    - scsi: qla2xxx: Initialize port speed to avoid setting lower speed
+    - SCSI: fix queue cleanup race before queue initialization is done
+    - Revert "powerpc/8xx: Use L1 entry APG to handle _PAGE_ACCESSED for
+      CONFIG_SWAP"
+    - soc: ti: QMSS: Fix usage of irq_set_affinity_hint
+    - ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
+    - ocfs2: free up write context when direct IO failed
+    - mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
+    - memory_hotplug: cond_resched in __remove_pages
+    - netfilter: conntrack: fix calculation of next bucket number in early_drop
+    - ARM: 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
+    - bonding/802.3ad: fix link_failure_count tracking
+    - mtd: spi-nor: cadence-quadspi: Return error code in
+      cqspi_direct_read_execute()
+    - mtd: nand: Fix nanddev_neraseblocks()
+    - mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
+    - hwmon: (core) Fix double-free in __hwmon_device_register()
+    - perf cs-etm: Correct CPU mode for samples
+    - perf stat: Handle different PMU names with common prefix
+    - perf callchain: Honour the ordering of PERF_CONTEXT_{USER,KERNEL,etc}
+    - perf intel-pt/bts: Calculate cpumode for synthesized samples
+    - perf intel-pt: Insert callchain context into synthesized callchains
+    - of, numa: Validate some distance map rules
+    - x86/cpu/vmware: Do not trace vmware_sched_clock()
+    - x86/hyper-v: Enable PIT shutdown quirk
+    - termios, tty/tty_baudrate.c: fix buffer overrun
+    - arch/alpha, termios: implement BOTHER, IBSHIFT and termios2
+    - watchdog/core: Add missing prototypes for weak functions
+    - btrfs: fix pinned underflow after transaction aborted
+    - Btrfs: fix missing data checksums after a ranged fsync (msync)
+    - Btrfs: fix cur_offset in the error case for nocow
+    - Btrfs: fix infinite loop on inode eviction after deduplication of eof block
+    - Btrfs: fix data corruption due to cloning of eof block
+    - btrfs: tree-checker: Fix misleading group system information
+    - clockevents/drivers/i8253: Add support for PIT shutdown quirk
+    - ext4: add missing brelse() update_backups()'s error path
+    - ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
+    - ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
+    - ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
+    - ext4: missing !bh check in ext4_xattr_inode_write()
+    - ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
+    - ext4: avoid buffer leak on shutdown in ext4_mark_iloc_dirty()
+    - ext4: avoid buffer leak in ext4_orphan_add() after prior errors
+    - ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing
+    - ext4: avoid possible double brelse() in add_new_gdb() on error path
+    - ext4: fix possible leak of sbi->s_group_desc_leak in error path
+    - ext4: fix possible leak of s_journal_flag_rwsem in error path
+    - ext4: fix buffer leak in ext4_xattr_get_block() on error path
+    - ext4: release bs.bh before re-using in ext4_xattr_block_find()
+    - ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
+    - ext4: fix buffer leak in ext4_expand_extra_isize_ea() on error path
+    - ext4: fix buffer leak in __ext4_read_dirblock() on error path
+    - mount: Prevent MNT_DETACH from disconnecting locked mounts
+    - mnt: fix __detach_mounts infinite loop
+    - uapi: fix linux/kfd_ioctl.h userspace compilation errors
+    - ARM: cpuidle: Don't register the driver when back-end init returns -ENXIO
+    - kdb: use correct pointer when 'btc' calls 'btt'
+    - kdb: print real address of pointers instead of hashed addresses
+    - sunrpc: correct the computation for page_ptr when truncating
+    - NFSv4: Don't exit the state manager without clearing
+      NFS4CLNT_MANAGER_RUNNING
+    - nfsd: COPY and CLONE operations require the saved filehandle to be set
+    - rtc: hctosys: Add missing range error reporting
+    - fuse: fix use-after-free in fuse_direct_IO()
+    - fuse: fix leaked notify reply
+    - fuse: fix possibly missed wake-up after abort
+    - selinux: check length properly in SCTP bind hook
+    - gfs2: Put bitmap buffers in put_super
+    - gfs2: Fix metadata read-ahead during truncate (2)
+    - libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD
+    - crypto: user - fix leaking uninitialized memory to userspace
+    - lib/ubsan.c: don't mark __ubsan_handle_builtin_unreachable as noreturn
+    - hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
+    - mm/swapfile.c: use kvzalloc for swap_info_struct allocation
+    - efi/arm/libstub: Pack FDT after populating it
+    - mm: don't reclaim inodes with many attached pages
+    - scripts/spdxcheck.py: make python3 compliant
+    - drm/rockchip: Allow driver to be shutdown on reboot/kexec
+    - drm/amdgpu: Fix typo in amdgpu_vmid_mgr_init
+    - drm/amdgpu: add missing CHIP_HAINAN in amdgpu_ucode_get_load_type
+    - drm/amdgpu: Suppress keypresses from ACPI_VIDEO events
+    - drm/nouveau: Check backlight IDs are >= 0, not > 0
+    - drm/nouveau: Fix nv50_mstc->best_encoder()
+    - drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD
+    - drm/etnaviv: fix bogus fence complete check in timeout handler
+    - drm/dp_mst: Check if primary mstb is null
+    - drm: panel-orientation-quirks: Add quirk for Acer One 10 (S1003)
+    - drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit
+      panel's native mode
+    - drm/i915: Use the correct crtc when sanitizing plane mapping
+    - drm/i915: Restore vblank interrupts earlier
+    - drm/i915: Don't unset intel_connector->mst_port
+    - drm/i915: Skip vcpi allocation for MSTB ports that are gone
+    - drm/i915: Large page offsets for pread/pwrite
+    - drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse()
+    - drm/i915/dp: Restrict link retrain workaround to external monitors
+    - drm/i915/icl: Fix the macros for DFLEXDPMLE register bits
+    - drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
+    - drm/i915: Mark up GTT sizes as u64
+    - drm/i915: Fix error handling for the NV12 fb dimensions check
+    - drm/i915: Fix ilk+ watermarks when disabling pipes
+    - drm/i915: Compare user's 64b GTT offset even on 32b
+    - drm/i915: Don't oops during modeset shutdown after lpe audio deinit
+    - drm/i915: Mark pin flags as u64
+    - drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
+    - drm/i915/execlists: Force write serialisation into context image vs
+      execution
+    - drm/i915: Fix possible race in intel_dp_add_mst_connector()
+    - drm/i915: Fix NULL deref when re-enabling HPD IRQs on systems with MST
+    - drm/i915: Fix hpd handling for pins with two encoders
+    - CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM
+    - Revert "ACPICA: AML interpreter: add region addresses in global list during
+      initialization"
+    - Linux 4.19.3
+
+  * glibc 2.28-0ubuntu1 ADT test failure with linux 4.19.0-5.6 (LP: #1805154)
+    - SAUCE: Revert "x86: vdso: Use $LD instead of $CC to link"
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.12-1ubuntu1, zfs to 0.7.12-1ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 26 Nov 2018 11:44:00 -0600
+
+linux (4.19.0-5.6) disco; urgency=medium
+
+  * crash in ENA driver on removing an interface (LP: #1802341)
+    - SAUCE: net: ena: fix crash during ena_remove()
+
+  * Ubuntu 18.04.1 - [s390x] Kernel panic while stressing network bonding
+    (LP: #1797367)
+    - s390/qeth: sanitize strings in debug messages
+
+  * Disco update: 4.19.2 upstream stable release (LP: #1803410)
+    - bpf: fix partial copy of map_ptr when dst is scalar
+    - MIPS: VDSO: Reduce VDSO_RANDOMIZE_SIZE to 64MB for 64bit
+    - gpio: mxs: Get rid of external API call
+    - mtd: rawnand: marvell: fix the IRQ handler complete() condition
+    - mtd: maps: gpio-addr-flash: Fix ioremapped size
+    - mtd: spi-nor: fsl-quadspi: fix read error for flash size larger than 16MB
+    - mtd: spi-nor: intel-spi: Add support for Intel Ice Lake SPI serial flash
+    - mtd: spi-nor: fsl-quadspi: Don't let -EINVAL on the bus
+    - spi: spi-mem: Adjust op len based on message/transfer size limitations
+    - spi: bcm-qspi: switch back to reading flash using smaller chunks
+    - spi: bcm-qspi: fix calculation of address length
+    - bcache: trace missed reading by cache_missed
+    - bcache: fix ioctl in flash device
+    - bcache: correct dirty data statistics
+    - bcache: fix miss key refill->end in writeback
+    - hwmon: (pmbus) Fix page count auto-detection.
+    - jffs2: free jffs2_sb_info through jffs2_kill_sb()
+    - block: setup bounce bio_sets properly
+    - block: make sure discard bio is aligned with logical block size
+    - block: make sure writesame bio is aligned with logical block size
+    - cpufreq: conservative: Take limits changes into account properly
+    - dma-mapping: fix panic caused by passing empty cma command line argument
+    - pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges
+    - ACPI / OSL: Use 'jiffies' as the time bassis for acpi_os_get_timer()
+    - ACPICA: AML interpreter: add region addresses in global list during
+      initialization
+    - ACPICA: AML Parser: fix parse loop to correctly skip erroneous extended
+      opcodes
+    - acpi, nfit: Fix Address Range Scrub completion tracking
+    - kprobes/x86: Use preempt_enable() in optimized_callback()
+    - mailbox: PCC: handle parse error
+    - parisc: Fix address in HPMC IVA
+    - parisc: Fix map_pages() to not overwrite existing pte entries
+    - parisc: Fix exported address of os_hpmc handler
+    - ALSA: hda - Add quirk for ASUS G751 laptop
+    - ALSA: hda - Fix headphone pin config for ASUS G751
+    - ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905)
+    - ALSA: hda: Add 2 more models to the power_save blacklist
+    - ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
+    - ALSA: hda - Fix incorrect clearance of thinkpad_acpi hooks
+    - x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
+    - x86/xen: Fix boot loader version reported for PVH guests
+    - x86/corruption-check: Fix panic in memory_corruption_check() when boot
+      option without value is provided
+    - x86/kvm/nVMX: allow bare VMXON state migration
+    - x86/mm/pat: Disable preemption around __flush_tlb_all()
+    - x86/numa_emulation: Fix uniform-split numa emulation
+    - ARM: dts: exynos: Disable pull control for MAX8997 interrupts on Origen
+    - net: socionext: Reset tx queue in ndo_stop
+    - net: loopback: clear skb->tstamp before netif_rx()
+    - locking/lockdep: Fix debug_locks off performance problem
+    - netfilter: xt_nat: fix DNAT target for shifted portmap ranges
+    - ataflop: fix error handling during setup
+    - swim: fix cleanup on setup error
+    - arm64: cpufeature: ctr: Fix cpu capability check for late CPUs
+    - hv_netvsc: fix vf serial matching with pci slot info
+    - nfp: devlink port split support for 1x100G CXP NIC
+    - tun: Consistently configure generic netdev params via rtnetlink
+    - s390/sthyi: Fix machine name validity indication
+    - hwmon: (pwm-fan) Set fan speed to 0 on suspend
+    - lightnvm: pblk: fix race on sysfs line state
+    - lightnvm: pblk: fix two sleep-in-atomic-context bugs
+    - lightnvm: pblk: fix race condition on metadata I/O
+    - spi: spi-ep93xx: Use dma_data_direction for ep93xx_spi_dma_{finish,prepare}
+    - perf tools: Free temporary 'sys' string in read_event_files()
+    - perf tools: Cleanup trace-event-info 'tdata' leak
+    - perf tools: Free 'printk' string in parse_ftrace_printk()
+    - perf strbuf: Match va_{add,copy} with va_end
+    - cpupower: Fix coredump on VMWare
+    - bcache: Populate writeback_rate_minimum attribute
+    - mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01
+    - sdhci: acpi: add free_slot callback
+    - mtd: rawnand: denali: set SPARE_AREA_SKIP_BYTES register to 8 if unset
+    - iwlwifi: pcie: avoid empty free RB queue
+    - iwlwifi: mvm: clear HW_RESTART_REQUESTED when stopping the interface
+    - iwlwifi: mvm: check for n_profiles validity in EWRD ACPI
+    - x86/olpc: Indicate that legacy PC XO-1 platform should not register RTC
+    - wlcore: Fix BUG with clear completion on timeout
+    - ACPI/PPTT: Handle architecturally unknown cache types
+    - ACPI / PM: LPIT: Register sysfs attributes based on FADT
+    - ACPI / processor: Fix the return value of acpi_processor_ids_walk()
+    - cpufreq: dt: Try freeing static OPPs only if we have added them
+    - x86/intel_rdt: Show missing resctrl mount options
+    - mtd: rawnand: atmel: Fix potential NULL pointer dereference
+    - nvme: call nvme_complete_rq when nvmf_check_ready fails for mpath I/O
+    - ath10k: fix tx status flag setting for management frames
+    - signal: Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack
+    - ice: fix changing of ring descriptor size (ethtool -G)
+    - ice: update fw version check logic
+    - net: hns3: Fix for packet buffer setting bug
+    - Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth
+    - Bluetooth: hci_qca: Remove hdev dereference in qca_close().
+    - x86: boot: Fix EFI stub alignment
+    - net: hns3: Add nic state check before calling netif_tx_wake_queue
+    - net: hns3: Fix ets validate issue
+    - pinctrl: sunxi: fix 'pctrl->functions' allocation in
+      sunxi_pinctrl_build_state
+    - pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux
+    - brcmfmac: fix for proper support of 160MHz bandwidth
+    - net: hns3: Check hdev state when getting link status
+    - net: hns3: Set STATE_DOWN bit of hdev state when stopping net
+    - net: phy: phylink: ensure the carrier is off when starting phylink
+    - block, bfq: correctly charge and reset entity service in all cases
+    - arm64: entry: Allow handling of undefined instructions from EL1
+    - kprobes: Return error if we fail to reuse kprobe instead of BUG_ON()
+    - spi: gpio: No MISO does not imply no RX
+    - ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers
+    - pinctrl: qcom: spmi-mpp: Fix drive strength setting
+    - bpf/verifier: fix verifier instability
+    - failover: Add missing check to validate 'slave_dev' in
+      net_failover_slave_unregister
+    - perf tests: Fix record+probe_libc_inet_pton.sh without ping's debuginfo
+    - pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
+    - pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant
+    - net: hns3: Preserve vlan 0 in hardware table
+    - net: hns3: Fix ping exited problem when doing lp selftest
+    - net: hns3: Fix for vf vlan delete failed problem
+    - net: dsa: mv88e6xxx: Fix writing to a PHY page.
+    - mt76x2u: run device cleanup routine if resume fails
+    - rsi: fix memory alignment issue in ARM32 platforms
+    - libertas_tf: prevent underflow in process_cmdrequest()
+    - iwlwifi: mvm: fix BAR seq ctrl reporting
+    - gpio: brcmstb: allow 0 width GPIO banks
+    - ixgbe: disallow IPsec Tx offload when in SR-IOV mode
+    - ixgbevf: VF2VF TCP RSS
+    - wil6210: fix RX buffers release and unmap
+    - ath10k: schedule hardware restart if WMI command times out
+    - libata: Apply NOLPM quirk for SAMSUNG MZ7TD256HAFV-000L9
+    - thermal: rcar_thermal: Prevent doing work after unbind
+    - thermal: da9062/61: Prevent hardware access during system suspend
+    - cifs: fix a credits leak for compund commands
+    - cgroup, netclassid: add a preemption point to write_classid
+    - net: stmmac: dwmac-sun8i: fix OF child-node lookup
+    - f2fs: fix to account IO correctly for cgroup writeback
+    - MD: Memory leak when flush bio size is zero
+    - md: fix memleak for mempool
+    - of: Add missing exports of node name compare functions
+    - scsi: esp_scsi: Track residual for PIO transfers
+    - scsi: ufs: Schedule clk gating work on correct queue
+    - UAPI: ndctl: Fix g++-unsupported initialisation in headers
+    - KVM: nVMX: Clear reserved bits of #DB exit qualification
+    - scsi: megaraid_sas: fix a missing-check bug
+    - RDMA/core: Do not expose unsupported counters
+    - RDMA/cm: Respect returned status of cm_init_av_by_path
+    - IB/ipoib: Clear IPCB before icmp_send
+    - RDMA/bnxt_re: Avoid accessing nq->bar_reg_iomem in failure case
+    - RDMA/bnxt_re: Fix recursive lock warning in debug kernel
+    - usb: host: ohci-at91: fix request of irq for optional gpio
+    - PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic
+    - PCI: cadence: Use AXI region 0 to signal interrupts from EP
+    - usb: typec: tcpm: Report back negotiated PPS voltage and current
+    - tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated
+    - f2fs: clear PageError on the read path
+    - Drivers: hv: vmbus: Use cpumask_var_t for on-stack cpu mask
+    - VMCI: Resource wildcard match fixed
+    - PCI / ACPI: Enable wake automatically for power managed bridges
+    - xprtrdma: Reset credit grant properly after a disconnect
+    - irqchip/pdc: Setup all edge interrupts as rising edge at GIC
+    - usb: dwc2: fix call to vbus supply exit routine, call it unlocked
+    - usb: dwc2: fix a race with external vbus supply
+    - usb: gadget: udc: atmel: handle at91sam9rl PMC
+    - ext4: fix argument checking in EXT4_IOC_MOVE_EXT
+    - MD: fix invalid stored role for a disk
+    - PCI: cadence: Correct probe behaviour when failing to get PHY
+    - nvmem: check the return value of nvmem_add_cells()
+    - xhci: Avoid USB autosuspend when resuming USB2 ports.
+    - scsi: qla2xxx: Fix recursive mailbox timeout
+    - f2fs: fix to recover inode's crtime during POR
+    - f2fs: fix to recover inode's i_flags during POR
+    - PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice
+    - coresight: etb10: Fix handling of perf mode
+    - PCI: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode
+    - crypto: caam - fix implicit casts in endianness helpers
+    - usb: chipidea: Prevent unbalanced IRQ disable
+    - Smack: ptrace capability use fixes
+    - driver/dma/ioat: Call del_timer_sync() without holding prep_lock
+    - ASoC: AMD: Fix capture unstable in beginning for some runs
+    - firmware: coreboot: Unmap ioregion after device population
+    - IB/ipoib: Use dev_port to expose network interface port numbers
+    - IB/mlx5: Allow transition of DCI QP to reset
+    - uio: ensure class is registered before devices
+    - scsi: lpfc: Correct soft lockup when running mds diagnostics
+    - scsi: lpfc: Correct race with abort on completion path
+    - f2fs: avoid sleeping under spin_lock
+    - f2fs: report error if quota off error during umount
+    - signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid namespace
+      init
+    - f2fs: fix to flush all dirty inodes recovered in readonly fs
+    - mfd: menelaus: Fix possible race condition and leak
+    - dmaengine: dma-jz4780: Return error if not probed from DT
+    - IB/rxe: fix for duplicate request processing and ack psns
+    - ALSA: hda: Check the non-cached stream buffers more explicitly
+    - cpupower: Fix AMD Family 0x17 msr_pstate size
+    - Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()"
+    - f2fs: fix missing up_read
+    - f2fs: fix to recover cold bit of inode block during POR
+    - f2fs: fix to account IO correctly
+    - OPP: Free OPP table properly on performance state irregularities
+    - ARM: dts: exynos: Convert exynos5250.dtsi to opp-v2 bindings
+    - ARM: dts: exynos: Mark 1 GHz CPU OPP as suspend OPP on Exynos5250
+    - xen-swiotlb: use actually allocated size on check physical continuous
+    - tpm: Restore functionality to xen vtpm driver.
+    - xen/blkfront: avoid NULL blkfront_info dereference on device removal
+    - xen/balloon: Support xend-based toolstack
+    - xen: fix race in xen_qlock_wait()
+    - xen: make xen_qlock_wait() nestable
+    - xen/pvh: increase early stack size
+    - xen/pvh: don't try to unplug emulated devices
+    - libertas: don't set URB_ZERO_PACKET on IN USB transfer
+    - usbip:vudc: BUG kmalloc-2048 (Not tainted): Poison overwritten
+    - usb: typec: tcpm: Fix APDO PPS order checking to be based on voltage
+    - usb: gadget: udc: renesas_usb3: Fix b-device mode for "workaround"
+    - mt76: mt76x2: fix multi-interface beacon configuration
+    - iwlwifi: mvm: check return value of rs_rate_from_ucode_rate()
+    - net/ipv4: defensive cipso option parsing
+    - dmaengine: ppc4xx: fix off-by-one build failure
+    - scsi: sched/wait: Add wait_event_lock_irq_timeout for TASK_UNINTERRUPTIBLE
+      usage
+    - scsi: target: Fix target_wait_for_sess_cmds breakage with active signals
+    - libnvdimm: Hold reference on parent while scheduling async init
+    - libnvdimm, region: Fail badblocks listing for inactive regions
+    - libnvdimm, pmem: Fix badblocks population for 'raw' namespaces
+    - ASoC: intel: skylake: Add missing break in skl_tplg_get_token()
+    - ASoC: sta32x: set ->component pointer in private struct
+    - IB/mlx5: Fix MR cache initialization
+    - IB/rxe: Revise the ib_wr_opcode enum
+    - jbd2: fix use after free in jbd2_log_do_checkpoint()
+    - gfs2_meta: ->mount() can get NULL dev_name
+    - ext4: fix EXT4_IOC_SWAP_BOOT
+    - ext4: initialize retries variable in ext4_da_write_inline_data_begin()
+    - ext4: fix setattr project check in fssetxattr ioctl
+    - ext4: propagate error from dquot_initialize() in EXT4_IOC_FSSETXATTR
+    - ext4: fix use-after-free race in ext4_remount()'s error path
+    - selinux: fix mounting of cgroup2 under older policies
+    - HID: wacom: Work around HID descriptor bug in DTK-2451 and DTH-2452
+    - HID: hiddev: fix potential Spectre v1
+    - EDAC, amd64: Add Family 17h, models 10h-2fh support
+    - EDAC, {i7core,sb,skx}_edac: Fix uncorrected error counting
+    - EDAC, skx_edac: Fix logical channel intermediate decoding
+    - ARM: dts: dra7: Fix up unaligned access setting for PCIe EP
+    - PCI/ASPM: Fix link_state teardown on device removal
+    - PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk
+    - signal/GenWQE: Fix sending of SIGKILL
+    - signal: Guard against negative signal numbers in copy_siginfo_from_user32
+    - crypto: lrw - Fix out-of bounds access on counter overflow
+    - crypto: tcrypt - fix ghash-generic speed test
+    - crypto: aesni - don't use GFP_ATOMIC allocation if the request doesn't cross
+      a page in gcm
+    - crypto: morus/generic - fix for big endian systems
+    - crypto: aegis/generic - fix for big endian systems
+    - crypto: speck - remove Speck
+    - mm: /proc/pid/smaps_rollup: fix NULL pointer deref in smaps_pte_range()
+    - userfaultfd: disable irqs when taking the waitqueue lock
+    - ima: fix showing large 'violations' or 'runtime_measurements_count'
+    - ima: open a new file instance if no read permissions
+    - hugetlbfs: dirty pages as they are added to pagecache
+    - mm/rmap: map_pte() was not handling private ZONE_DEVICE page properly
+    - mm/hmm: fix race between hmm_mirror_unregister() and mmu_notifier callback
+    - KVM: arm/arm64: Ensure only THP is candidate for adjustment
+    - KVM: arm64: Fix caching of host MDCR_EL2 value
+    - kbuild: fix kernel/bounds.c 'W=1' warning
+    - iio: ad5064: Fix regulator handling
+    - iio: adc: imx25-gcq: Fix leak of device_node in mx25_gcq_setup_cfgs()
+    - iio: adc: at91: fix acking DRDY irq on simple conversions
+    - iio: adc: at91: fix wrong channel number in triggered buffer mode
+    - w1: omap-hdq: fix missing bus unregister at removal
+    - smb3: allow stats which track session and share reconnects to be reset
+    - smb3: do not attempt cifs operation in smb3 query info error path
+    - smb3: on kerberos mount if server doesn't specify auth type use krb5
+    - printk: Fix panic caused by passing log_buf_len to command line
+    - genirq: Fix race on spurious interrupt detection
+    - tpm: fix response size validation in tpm_get_random()
+    - NFC: nfcmrvl_uart: fix OF child-node lookup
+    - NFSv4.1: Fix the r/wsize checking
+    - nfs: Fix a missed page unlock after pg_doio()
+    - nfsd: correctly decrement odstate refcount in error path
+    - nfsd: Fix an Oops in free_session()
+    - lockd: fix access beyond unterminated strings in prints
+    - dm ioctl: harden copy_params()'s copy_from_user() from malicious users
+    - dm zoned: fix metadata block ref counting
+    - dm zoned: fix various dmz_get_mblock() issues
+    - media: ov7670: make "xclk" clock optional
+    - fsnotify: Fix busy inodes during unmount
+    - powerpc64/module elfv1: Set opd addresses after module relocation
+    - powerpc/msi: Fix compile error on mpc83xx
+    - powerpc/tm: Fix HFSCR bit for no suspend case
+    - powerpc/64s/hash: Do not use PPC_INVALIDATE_ERAT on CPUs before POWER9
+    - MIPS: OCTEON: fix out of bounds array access on CN68XX
+    - rtc: ds1307: fix ds1339 wakealarm support
+    - rtc: cmos: Fix non-ACPI undefined reference to `hpet_rtc_interrupt'
+    - rtc: cmos: Remove the `use_acpi_alarm' module parameter for !ACPI
+    - power: supply: twl4030-charger: fix OF sibling-node lookup
+    - ocxl: Fix access to the AFU Descriptor Data
+    - iommu/arm-smmu: Ensure that page-table updates are visible before TLBI
+    - TC: Set DMA masks for devices
+    - net: bcmgenet: fix OF child-node lookup
+    - media: v4l2-tpg: fix kernel oops when enabling HFLIP and OSD
+    - Revert "media: dvbsky: use just one mutex for serializing device R/W ops"
+    - kgdboc: Passing ekgdboc to command line causes panic
+    - remoteproc: qcom: q6v5: Propagate EPROBE_DEFER
+    - media: cec: make cec_get_edid_spa_location() an inline function
+    - media: cec: integrate cec_validate_phys_addr() in cec-api.c
+    - xen: fix xen_qlock_wait()
+    - xen: remove size limit of privcmd-buf mapping interface
+    - xen-blkfront: fix kernel panic with negotiate_mq error path
+    - media: cec: add new tx/rx status bits to detect aborts/timeouts
+    - media: cec: fix the Signal Free Time calculation
+    - media: cec: forgot to cancel delayed work
+    - media: em28xx: use a default format if TRY_FMT fails
+    - media: tvp5150: avoid going past array on v4l2_querymenu()
+    - media: em28xx: fix input name for Terratec AV 350
+    - media: em28xx: make v4l2-compliance happier by starting sequence on zero
+    - media: em28xx: fix handler for vidioc_s_input()
+    - media: adv7604: when the EDID is cleared, unconfigure CEC as well
+    - media: adv7842: when the EDID is cleared, unconfigure CEC as well
+    - drm/mediatek: fix OF sibling-node lookup
+    - media: media colorspaces*.rst: rename AdobeRGB to opRGB
+    - media: replace ADOBERGB by OPRGB
+    - media: hdmi.h: rename ADOBE_RGB to OPRGB and ADOBE_YCC to OPYCC
+    - arm64: lse: remove -fcall-used-x0 flag
+    - rpmsg: smd: fix memory leak on channel create
+    - Cramfs: fix abad comparison when wrap-arounds occur
+    - ARM: dts: socfpga: Fix SDRAM node address for Arria10
+    - arm64: dts: stratix10: Correct System Manager register size
+    - soc: qcom: rmtfs-mem: Validate that scm is available
+    - soc/tegra: pmc: Fix child-node lookup
+    - selftests/ftrace: Fix synthetic event test to delete event correctly
+    - selftests/powerpc: Fix ptrace tm failure
+    - tracing: Return -ENOENT if there is no target synthetic event
+    - btrfs: qgroup: Avoid calling qgroup functions if qgroup is not enabled
+    - btrfs: Handle owner mismatch gracefully when walking up tree
+    - btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid deadlock
+    - btrfs: fix error handling in free_log_tree
+    - btrfs: fix error handling in btrfs_dev_replace_start
+    - btrfs: Enhance btrfs_trim_fs function to handle error better
+    - btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
+    - btrfs: iterate all devices during trim, instead of fs_devices::alloc_list
+    - btrfs: don't attempt to trim devices that don't support it
+    - btrfs: keep trim from interfering with transaction commits
+    - btrfs: wait on caching when putting the bg cache
+    - Btrfs: don't clean dirty pages during buffered writes
+    - btrfs: release metadata before running delayed refs
+    - btrfs: protect space cache inode alloc with GFP_NOFS
+    - btrfs: reset max_extent_size on clear in a bitmap
+    - btrfs: make sure we create all new block groups
+    - Btrfs: fix warning when replaying log after fsync of a tmpfile
+    - Btrfs: fix wrong dentries after fsync of file that got its parent replaced
+    - btrfs: qgroup: Dirty all qgroups before rescan
+    - Btrfs: fix null pointer dereference on compressed write path error
+    - Btrfs: fix assertion on fsync of regular file when using no-holes feature
+    - Btrfs: fix deadlock when writing out free space caches
+    - btrfs: reset max_extent_size properly
+    - btrfs: set max_extent_size properly
+    - btrfs: don't use ctl->free_space for max_extent_size
+    - btrfs: only free reserved extent if we didn't insert it
+    - btrfs: fix insert_reserved error handling
+    - btrfs: don't run delayed_iputs in commit
+    - btrfs: move the dio_sem higher up the callchain
+    - Btrfs: fix use-after-free during inode eviction
+    - Btrfs: fix use-after-free when dumping free space
+    - net: sched: Remove TCA_OPTIONS from policy
+    - vt: fix broken display when running aptitude
+    - bpf: wait for running BPF programs when updating map-in-map
+    - vga_switcheroo: Fix missing gpu_bound call at audio client registration
+    - MD: fix invalid stored role for a disk - try2
+    - Linux 4.19.2
+
+  * [FEAT] Guest-dedicated Crypto Adapters (LP: #1787405)
+    - KVM: s390: vsie: simulate VCPU SIE entry/exit
+    - KVM: s390: introduce and use KVM_REQ_VSIE_RESTART
+    - KVM: s390: refactor crypto initialization
+    - s390: vfio-ap: base implementation of VFIO AP device driver
+    - s390: vfio-ap: register matrix device with VFIO mdev framework
+    - s390: vfio-ap: sysfs interfaces to configure adapters
+    - s390: vfio-ap: sysfs interfaces to configure domains
+    - s390: vfio-ap: sysfs interfaces to configure control domains
+    - s390: vfio-ap: sysfs interface to view matrix mdev matrix
+    - KVM: s390: interface to clear CRYCB masks
+    - s390: vfio-ap: implement mediated device open callback
+    - s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl
+    - s390: vfio-ap: zeroize the AP queues
+    - s390: vfio-ap: implement VFIO_DEVICE_RESET ioctl
+    - KVM: s390: Clear Crypto Control Block when using vSIE
+    - KVM: s390: vsie: Do the CRYCB validation first
+    - KVM: s390: vsie: Make use of CRYCB FORMAT2 clear
+    - KVM: s390: vsie: Allow CRYCB FORMAT-2
+    - KVM: s390: vsie: allow CRYCB FORMAT-1
+    - KVM: s390: vsie: allow CRYCB FORMAT-0
+    - KVM: s390: vsie: allow guest FORMAT-0 CRYCB on host FORMAT-1
+    - KVM: s390: vsie: allow guest FORMAT-1 CRYCB on host FORMAT-2
+    - KVM: s390: vsie: allow guest FORMAT-0 CRYCB on host FORMAT-2
+    - KVM: s390: device attrs to enable/disable AP interpretation
+    - KVM: s390: CPU model support for AP virtualization
+    - s390: doc: detailed specifications for AP virtualization
+    - KVM: s390: fix locking for crypto setting error path
+    - KVM: s390: Tracing APCB changes
+    - s390: vfio-ap: setup APCB mask using KVM dedicated function
+    - [Config:] Enable CONFIG_S390_AP_IOMMU and set CONFIG_VFIO_AP to module.
+
+  * Bypass of mount visibility through userns + mount propagation (LP: #1789161)
+    - mount: Retest MNT_LOCKED in do_umount
+    - mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
+
+  *  CVE-2018-18955: nested user namespaces with more than five extents
+    incorrectly grant privileges over inode (LP: #1801924) // CVE-2018-18955
+    - userns: also map extents in the reverse map to kernel IDs
+
+  * kdump fail due to an IRQ storm (LP: #1797990)
+    - SAUCE: x86/PCI: Export find_cap() to be used in early PCI code
+    - SAUCE: x86/quirks: Add parameter to clear MSIs early on boot
+    - SAUCE: x86/quirks: Scan all busses for early PCI quirks
+
+  * Disable LPM for Raydium Touchscreens (LP: #1802248)
+    - USB: quirks: Add no-lpm quirk for Raydium touchscreens
+
+  * Power consumption during s2idle is higher than long idle(sk hynix)
+    (LP: #1801875)
+    - SAUCE: pci: prevent sk hynix nvme from entering D3
+    - SAUCE: nvme: add quirk to not call disable function when suspending
+
+  * Disco update: v4.19.1 upstream stable release (LP: #1801739)
+    - bridge: do not add port to router list when receives query with source
+      0.0.0.0
+    - ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are
+      called
+    - net/mlx5e: fix csum adjustments caused by RXFCS
+    - net: sched: gred: pass the right attribute to gred_change_table_def()
+    - net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules
+    - net: udp: fix handling of CHECKSUM_COMPLETE packets
+    - Revert "net: simplify sock_poll_wait"
+    - rtnetlink: Disallow FDB configuration for non-Ethernet device
+    - vhost: Fix Spectre V1 vulnerability
+    - bonding: fix length of actor system
+    - openvswitch: Fix push/pop ethernet validation
+    - net/ipv6: Allow onlink routes to have a device mismatch if it is the default
+      route
+    - net/smc: fix smc_buf_unuse to use the lgr pointer
+    - mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs
+    - mlxsw: core: Fix devlink unregister flow
+    - net: drop skb on failure in ip_check_defrag()
+    - net: Properly unlink GRO packets on overflow.
+    - r8169: fix broken Wake-on-LAN from S5 (poweroff)
+    - Revert "be2net: remove desc field from be_eq_obj"
+    - sctp: check policy more carefully when getting pr status
+    - sparc64: Export __node_distance.
+    - sparc64: Make corrupted user stacks more debuggable.
+    - sparc64: Wire up compat getpeername and getsockname.
+    - net: bridge: remove ipv6 zero address check in mcast queries
+    - Linux 4.19.1
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.11-1ubuntu1, zfs to 0.7.11-3ubuntu1
+    - [Config] updateconfigs after 4.19.2 stable update
+    - [Config] Disable unneded options for s390
+    - [Config] Update annotations for 4.19
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 15 Nov 2018 09:55:37 -0800
+
+linux (4.19.0-4.5) disco; urgency=medium
+
+  * Add checksum offload and TSO support for HiNIC adapters (LP: #1800664)
+    - net-next/hinic: add checksum offload and TSO support
+
+  * [Bionic][Cosmic] Fix to ipmi to support vendor specific messages greater
+    than 255 bytes (LP: #1799794)
+    - ipmi:ssif: Add support for multi-part transmit messages > 2 parts
+
+  * Packaging resync (LP: #1786013)
+    - [Package] add support for specifying the primary makefile
+
+  * Update ENA driver to version 2.0.1K (LP: #1798182)
+    - net: ena: minor performance improvement
+    - net: ena: complete host info to match latest ENA spec
+    - net: ena: introduce Low Latency Queues data structures according to ENA spec
+    - net: ena: add functions for handling Low Latency Queues in ena_com
+    - net: ena: add functions for handling Low Latency Queues in ena_netdev
+    - net: ena: use CSUM_CHECKED device indication to report skb's checksum status
+    - net: ena: explicit casting and initialization, and clearer error handling
+    - net: ena: limit refill Rx threshold to 256 to avoid latency issues
+    - net: ena: change rx copybreak default to reduce kernel memory pressure
+    - net: ena: remove redundant parameter in ena_com_admin_init()
+    - net: ena: update driver version to 2.0.1
+    - net: ena: fix indentations in ena_defs for better readability
+    - net: ena: Fix Kconfig dependency on X86
+    - net: ena: enable Low Latency Queues
+    - net: ena: fix compilation error in xtensa architecture
+
+  * [Bionic][Cosmic]  ipmi: Fix timer race with module unload (LP: #1799281)
+    - ipmi: Fix timer race with module unload
+
+  * Overlayfs in user namespace leaks directory content of inaccessible
+    directories (LP: #1793458) // CVE-2018-6559
+    - SAUCE: overlayfs: ensure mounter privileges when reading directories
+
+  * not able to unwind the stack from within __kernel_clock_gettime in the Linux
+    vDSO (LP: #1797963)
+    - powerpc/vdso: Correct call frame information
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Don't print secure boot state
+      from the efi stub"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Make get_cert_list() use
+      efi_status_to_str() to print error messages."
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err()."
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Make get_cert_list() not complain
+      about cert lists that aren't present."
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable
+      to be suppressed"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI
+      Secure Boot"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add EFI signature data types"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time
+      addition of keys to secondary keyring"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in
+      secure boot mode"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to
+      indicate secure boot mode"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Copy secure_boot flag in boot params
+      across kexec reboot"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down perf"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) bpf: Restrict kernel image access
+      functions when the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down kprobes"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down /proc/kcore"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the
+      testmmiotrace module"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down module params that specify
+      hardware parameters (eg. ioport)"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down TIOCSSERIAL"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) acpi: Disable APEI error injection if
+      the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) acpi: Disable ACPI table override if
+      the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param
+      when the kernel has been locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) ACPI: Limit access to custom_method
+      when the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) x86: Lock down IO port access when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) PCI: Lock down BAR access when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is
+      locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) hibernate: Disable when the kernel is
+      locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Enforce module signatures if the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Add a SysRq option to lift kernel
+      lockdown"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Add the ability to lock down access to
+      the running kernel image"
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) efi/x86: Call efi_parse_options() from efi_main()
+    - SAUCE: (efi-lockdown) Fix for module sig verification
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) module: remove support for having IMA validate modules
+    - [Packaging] generate Vcs-Git url from changelog
+    - [Config] CONFIG_SCSI_MQ_DEFAULT=y
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 02 Nov 2018 14:22:55 -0500
+
+linux (4.19.0-3.4) cosmic; urgency=medium
+
+  * Support Edge Gateway's Bluetooth LED (LP: #1798332)
+    - SAUCE: Bluetooth: Support for LED on Edge Gateways
+
+  * Support Edge Gateway's WIFI LED (LP: #1798330)
+    - SAUCE: mwifiex: Switch WiFi LED state according to the device status
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 22 Oct 2018 09:13:39 -0500
+
+linux (4.19.0-2.3) cosmic; urgency=medium
+
+  * fscache: bad refcounting in fscache_op_complete leads to OOPS (LP: #1797314)
+    - SAUCE: fscache: Fix race in decrementing refcount of op->npages
+
+  * Provide mode where all vCPUs on a core must be the same VM (LP: #1792957)
+    - KVM: PPC: Book3S HV: Provide mode where all vCPUs on a core must be the same
+      VM
+
+  * The front MIC can't work on the Lenovo M715 (LP: #1797292)
+    - ALSA: hda/realtek - Fix the problem of the front MIC on the Lenovo M715
+
+  * arm64: snapdragon: WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1016
+    gic_irq_domain_translate (LP: #1797143)
+    - SAUCE: arm64: dts: msm8916: camms: fix gic_irq_domain_translate warnings
+
+  * Dell new AIO requires a new uart backlight driver (LP: #1727235)
+    - SAUCE: platform/x86: dell-uart-backlight: new backlight driver for DELL AIO
+    - updateconfigs for Dell UART backlight driver
+
+  * Please make CONFIG_PWM_LPSS_PCI and CONFIG_PWM_LPSS_PLATFORM built in to
+    make brightness adjustment working on various BayTrail/CherryTrail-based
+    devices (LP: #1783964)
+    - [Config]: Make PWM_LPSS_* built-in
+
+  * check and fix zkey required kernel modules locations in debs, udebs, and
+    initramfs (LP: #1794346)
+    - [Config] add s390 crypto modules to crypt-modules udeb
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_VBOXGUEST=n
+    - ubuntu: vbox -- update to 5.2.18-dfsg-2
+    - ubuntu: enable vbox build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 15 Oct 2018 10:52:04 -0500
+
+linux (4.19.0-1.2) cosmic; urgency=medium
+
+  * Page leaking in cachefiles_read_backing_file while vmscan is active
+    (LP: #1793430)
+    - SAUCE: cachefiles: Page leaking in cachefiles_read_backing_file while vmscan
+      is active
+
+  * SRU: Enable middle button of touchpad on ThinkPad P72 (LP: #1793463)
+    - Input: elantech - enable middle button of touchpad on ThinkPad P72
+
+  * Improvements to the kernel source package preparation (LP: #1793461)
+    - [Packaging] startnewrelease: add support for backport kernels
+
+  * Fix unusable NVIDIA GPU after S3 (LP: #1793338)
+    - SAUCE: PCI: Reprogram bridge prefetch registers on resume
+
+  * Error reported when creating ZFS pool with "-t" option, despite successful
+    pool creation (LP: #1769937)
+    - SAUCE: (noup) Update zfs to 0.7.9-3ubuntu6
+
+  * device hotplug of vfio devices can lead to deadlock in vfio_pci_release
+    (LP: #1792099)
+    - SAUCE: vfio -- release device lock before userspace requests
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] retpoline -- fix temporary filenaming
+    - CONFIG_BCH_CONST_PARAMS=n
+    - Packaging: final-checks: remove trailing backport suffix
+    - SAUCE: import aufs driver
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 25 Sep 2018 16:32:24 -0500
+
+linux (4.19.0-0.1) cosmic; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu -- disable vbox build
+    - Disable zfs build
+    - SAUCE: Import aufs driver
+    - Update dropped.txt
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 13 Sep 2018 07:54:47 -0500
+
+linux (4.19.0-0.0) cosmic; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 13 Sep 2018 06:44:09 -0500
+
+linux (4.18.0-8.9) cosmic; urgency=medium
+
+  * linux: 4.18.0-8.9 -proposed tracker (LP: #1791663)
+
+  * Cosmic update to v4.18.7 stable release (LP: #1791660)
+    - rcu: Make expedited GPs handle CPU 0 being offline
+    - net: 6lowpan: fix reserved space for single frames
+    - net: mac802154: tx: expand tailroom if necessary
+    - 9p/net: Fix zero-copy path in the 9p virtio transport
+    - spi: davinci: fix a NULL pointer dereference
+    - spi: pxa2xx: Add support for Intel Ice Lake
+    - spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe
+    - spi: cadence: Change usleep_range() to udelay(), for atomic context
+    - mmc: block: Fix unsupported parallel dispatch of requests
+    - mmc: renesas_sdhi_internal_dmac: mask DMAC interrupts
+    - mmc: renesas_sdhi_internal_dmac: fix #define RST_RESERVED_BITS
+    - readahead: stricter check for bdi io_pages
+    - block: fix infinite loop if the device loses discard capability
+    - block: blk_init_allocated_queue() set q->fq as NULL in the fail case
+    - block: really disable runtime-pm for blk-mq
+    - blkcg: Introduce blkg_root_lookup()
+    - block: Introduce blk_exit_queue()
+    - block: Ensure that a request queue is dissociated from the cgroup controller
+    - apparmor: fix bad debug check in apparmor_secid_to_secctx()
+    - dma-buf: Move BUG_ON from _add_shared_fence to _add_shared_inplace
+    - libertas: fix suspend and resume for SDIO connected cards
+    - media: Revert "[media] tvp5150: fix pad format frame height"
+    - mailbox: xgene-slimpro: Fix potential NULL pointer dereference
+    - Replace magic for trusting the secondary keyring with #define
+    - Fix kexec forbidding kernels signed with keys in the secondary keyring to
+      boot
+    - powerpc/fadump: handle crash memory ranges array index overflow
+    - powerpc/64s: Fix page table fragment refcount race vs speculative references
+    - powerpc/pseries: Fix endianness while restoring of r3 in MCE handler.
+    - powerpc/pkeys: Give all threads control of their key permissions
+    - powerpc/pkeys: Deny read/write/execute by default
+    - powerpc/pkeys: key allocation/deallocation must not change pkey registers
+    - powerpc/pkeys: Save the pkey registers before fork
+    - powerpc/pkeys: Fix calculation of total pkeys.
+    - powerpc/pkeys: Preallocate execute-only key
+    - powerpc/nohash: fix pte_access_permitted()
+    - powerpc64/ftrace: Include ftrace.h needed for enable/disable calls
+    - powerpc/powernv/pci: Work around races in PCI bridge enabling
+    - cxl: Fix wrong comparison in cxl_adapter_context_get()
+    - IB/mlx5: Honor cnt_set_id_valid flag instead of set_id
+    - IB/mlx5: Fix leaking stack memory to userspace
+    - IB/srpt: Fix srpt_cm_req_recv() error path (1/2)
+    - IB/srpt: Fix srpt_cm_req_recv() error path (2/2)
+    - IB/srpt: Support HCAs with more than two ports
+    - overflow.h: Add arithmetic shift helper
+    - RDMA/mlx5: Fix shift overflow in mlx5_ib_create_wq
+    - ib_srpt: Fix a use-after-free in srpt_close_ch()
+    - ib_srpt: Fix a use-after-free in __srpt_close_all_ch()
+    - RDMA/rxe: Set wqe->status correctly if an unexpected response is received
+    - 9p: fix multiple NULL-pointer-dereferences
+    - fs/9p/xattr.c: catch the error of p9_client_clunk when setting xattr failed
+    - 9p/virtio: fix off-by-one error in sg list bounds check
+    - net/9p/client.c: version pointer uninitialized
+    - net/9p/trans_fd.c: fix race-condition by flushing workqueue before the
+      kfree()
+    - dm integrity: change 'suspending' variable from bool to int
+    - dm thin: stop no_space_timeout worker when switching to write-mode
+    - dm cache metadata: save in-core policy_hint_size to on-disk superblock
+    - dm cache metadata: set dirty on all cache blocks after a crash
+    - dm crypt: don't decrease device limits
+    - dm writecache: fix a crash due to reading past end of dirty_bitmap
+    - uart: fix race between uart_put_char() and uart_shutdown()
+    - Drivers: hv: vmbus: Fix the offer_in_progress in vmbus_process_offer()
+    - Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
+    - iio: sca3000: Fix missing return in switch
+    - iio: ad9523: Fix displayed phase
+    - iio: ad9523: Fix return value for ad952x_store()
+    - extcon: Release locking when sending the notification of connector state
+    - eventpoll.h: wrap casts in () properly
+    - vmw_balloon: fix inflation of 64-bit GFNs
+    - vmw_balloon: do not use 2MB without batching
+    - vmw_balloon: VMCI_DOORBELL_SET does not check status
+    - vmw_balloon: fix VMCI use when balloon built into kernel
+    - rtc: omap: fix resource leak in registration error path
+    - rtc: omap: fix potential crash on power off
+    - tracing: Do not call start/stop() functions when tracing_on does not change
+    - tracing/blktrace: Fix to allow setting same value
+    - printk/tracing: Do not trace printk_nmi_enter()
+    - livepatch: Validate module/old func name length
+    - uprobes: Use synchronize_rcu() not synchronize_sched()
+    - mfd: hi655x: Fix regmap area declared size for hi655x
+    - ovl: fix wrong use of impure dir cache in ovl_iterate()
+    - ACPICA: AML Parser: skip opcodes that open a scope upon parse failure
+    - ACPICA: Clear status of all events when entering sleep states
+    - drivers/block/zram/zram_drv.c: fix bug storing backing_dev
+    - sched: idle: Avoid retaining the tick when it has been stopped
+    - cpuidle: menu: Handle stopped tick more aggressively
+    - cpufreq: governor: Avoid accessing invalid governor_data
+    - PM / sleep: wakeup: Fix build error caused by missing SRCU support
+    - ALSA: ac97: fix device initialization in the compat layer
+    - ALSA: ac97: fix check of pm_runtime_get_sync failure
+    - ALSA: ac97: fix unbalanced pm_runtime_enable
+    - i2c: designware: Re-init controllers with pm_disabled set on resume
+    - KVM: VMX: fixes for vmentry_l1d_flush module parameter
+    - KVM: PPC: Book3S: Fix guest DMA when guest partially backed by THP pages
+    - xtensa: limit offsets in __loop_cache_{all,page}
+    - xtensa: increase ranges in ___invalidate_{i,d}cache_all
+    - block, bfq: return nbytes and not zero from struct cftype .write() method
+    - pnfs/blocklayout: off by one in bl_map_stripe()
+    - nfsd: fix leaked file lock with nfs exported overlayfs
+    - NFSv4 client live hangs after live data migration recovery
+    - NFSv4: Fix locking in pnfs_generic_recover_commit_reqs
+    - NFSv4: Fix a sleep in atomic context in nfs4_callback_sequence()
+    - ARM: tegra: Fix Tegra30 Cardhu PCA954x reset
+    - ARM: dts: am57xx-idk: Enable dual role for USB2 port
+    - pwm: omap-dmtimer: Return -EPROBE_DEFER if no dmtimer platform data
+    - mm/tlb: Remove tlb_remove_table() non-concurrent condition
+    - iommu/ipmmu-vmsa: Don't register as BUS IOMMU if machine doesn't have IPMMU-
+      VMSA
+    - iommu/vt-d: Add definitions for PFSID
+    - iommu/vt-d: Fix dev iotlb pfsid use
+    - sys: don't hold uts_sem while accessing userspace memory
+    - userns: move user access out of the mutex
+    - ubifs: Fix memory leak in lprobs self-check
+    - Revert "UBIFS: Fix potential integer overflow in allocation"
+    - ubifs: Check data node size before truncate
+    - ubifs: xattr: Don't operate on deleted inodes
+    - ubifs: Fix directory size calculation for symlinks
+    - ubifs: Fix synced_i_size calculation for xattr inodes
+    - pwm: tiehrpwm: Don't use emulation mode bits to control PWM output
+    - pwm: tiehrpwm: Fix disabling of output of PWMs
+    - fb: fix lost console when the user unplugs a USB adapter
+    - udlfb: fix semaphore value leak
+    - udlfb: fix display corruption of the last line
+    - udlfb: don't switch if we are switching to the same videomode
+    - udlfb: set optimal write delay
+    - udlfb: make a local copy of fb_ops
+    - udlfb: handle allocation failure
+    - udlfb: set line_length in dlfb_ops_set_par
+    - getxattr: use correct xattr length
+    - libnvdimm: Use max contiguous area for namespace size
+    - libnvdimm: fix ars_status output length calculation
+    - bcache: release dc->writeback_lock properly in bch_writeback_thread()
+    - kconfig: fix "Can't open ..." in parallel build
+    - perf auxtrace: Fix queue resize
+    - crypto: vmx - Fix sleep-in-atomic bugs
+    - crypto: aesni - Use unaligned loads from gcm_context_data
+    - crypto: arm64/sm4-ce - check for the right CPU feature bit
+    - crypto: caam - fix DMA mapping direction for RSA forms 2 & 3
+    - crypto: caam/jr - fix descriptor DMA unmapping
+    - crypto: caam/qi - fix error path in xts setkey
+    - fs/quota: Fix spectre gadget in do_quotactl
+    - udf: Fix mounting of Win7 created UDF filesystems
+    - cpuidle: menu: Retain tick when shallow state is selected
+    - arm64: mm: always enable CONFIG_HOLES_IN_ZONE
+    - Linux 4.18.7
+
+  * CVE-2017-5715
+    - s390: detect etoken facility
+    - KVM: s390: add etoken support for guests
+
+  * Missing Intel GPU pci-id's (LP: #1789924)
+    - drm/i915/whl: Introducing Whiskey Lake platform
+    - drm/i915/aml: Introducing Amber Lake platform
+    - drm/i915/cfl: Add a new CFL PCI ID.
+
+  * [18.10 FEAT] Add kernel config options for SMC-R/D (LP: #1789934)
+    - s390/ism: add device driver for internal shared memory
+    - CONFIG_ISM=y for s390
+
+  * Cosmic update to v4.18.6 stable release (LP: #1791105)
+    - PATCH scripts/kernel-doc
+    - scripts/kernel-doc: Escape all literal braces in regexes
+    - scsi: libsas: dynamically allocate and free ata host
+    - xprtrdma: Fix disconnect regression
+    - mei: don't update offset in write
+    - cifs: add missing support for ACLs in SMB 3.11
+    - CIFS: fix uninitialized ptr deref in smb2 signing
+    - cifs: add missing debug entries for kconfig options
+    - cifs: use a refcount to protect open/closing the cached file handle
+    - cifs: check kmalloc before use
+    - smb3: enumerating snapshots was leaving part of the data off end
+    - smb3: Do not send SMB3 SET_INFO if nothing changed
+    - smb3: don't request leases in symlink creation and query
+    - smb3: fill in statfs fsid and correct namelen
+    - btrfs: use correct compare function of dirty_metadata_bytes
+    - btrfs: don't leak ret from do_chunk_alloc
+    - Btrfs: fix mount failure after fsync due to hard link recreation
+    - Btrfs: fix btrfs_write_inode vs delayed iput deadlock
+    - Btrfs: fix send failure when root has deleted files still open
+    - Btrfs: send, fix incorrect file layout after hole punching beyond eof
+    - hwmon: (k10temp) 27C Offset needed for Threadripper2
+    - bpf, arm32: fix stack var offset in jit
+    - regulator: arizona-ldo1: Use correct device to get enable GPIO
+    - iommu/arm-smmu: Error out only if not enough context interrupts
+    - printk: Split the code for storing a message into the log buffer
+    - printk: Create helper function to queue deferred console handling
+    - printk/nmi: Prevent deadlock when accessing the main log buffer in NMI
+    - kprobes/arm64: Fix %p uses in error messages
+    - arm64: Fix mismatched cache line size detection
+    - arm64: Handle mismatched cache type
+    - arm64: mm: check for upper PAGE_SHIFT bits in pfn_valid()
+    - arm64: dts: rockchip: corrected uart1 clock-names for rk3328
+    - KVM: arm/arm64: Fix potential loss of ptimer interrupts
+    - KVM: arm/arm64: Fix lost IRQs from emulated physcial timer when blocked
+    - KVM: arm/arm64: Skip updating PMD entry if no change
+    - KVM: arm/arm64: Skip updating PTE entry if no change
+    - s390/kvm: fix deadlock when killed by oom
+    - perf kvm: Fix subcommands on s390
+    - stop_machine: Reflow cpu_stop_queue_two_works()
+    - stop_machine: Atomically queue and wake stopper threads
+    - ext4: check for NUL characters in extended attribute's name
+    - ext4: use ext4_warning() for sb_getblk failure
+    - ext4: sysfs: print ext4_super_block fields as little-endian
+    - ext4: reset error code in ext4_find_entry in fallback
+    - ext4: fix race when setting the bitmap corrupted flag
+    - x86/gpu: reserve ICL's graphics stolen memory
+    - platform/x86: wmi: Do not mix pages and kmalloc
+    - platform/x86: ideapad-laptop: Apply no_hw_rfkill to Y20-15IKBM, too
+    - mm: move tlb_table_flush to tlb_flush_mmu_free
+    - mm/tlb, x86/mm: Support invalidating TLB caches for RCU_TABLE_FREE
+    - x86/speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit
+    - x86/speculation/l1tf: Fix off-by-one error when warning that system has too
+      much RAM
+    - x86/speculation/l1tf: Suggest what to do on systems with too much RAM
+    - x86/vdso: Fix vDSO build if a retpoline is emitted
+    - x86/process: Re-export start_thread()
+    - KVM: x86: ensure all MSRs can always be KVM_GET/SET_MSR'd
+    - KVM: x86: SVM: Call x86_spec_ctrl_set_guest/host() with interrupts disabled
+    - fuse: Don't access pipe->buffers without pipe_lock()
+    - fuse: fix initial parallel dirops
+    - fuse: fix double request_end()
+    - fuse: fix unlocked access to processing queue
+    - fuse: umount should wait for all requests
+    - fuse: Fix oops at process_init_reply()
+    - fuse: Add missed unlock_page() to fuse_readpages_fill()
+    - lib/vsprintf: Do not handle %pO[^F] as %px
+    - udl-kms: change down_interruptible to down
+    - udl-kms: handle allocation failure
+    - udl-kms: fix crash due to uninitialized memory
+    - udl-kms: avoid division
+    - b43legacy/leds: Ensure NUL-termination of LED name string
+    - b43/leds: Ensure NUL-termination of LED name string
+    - ASoC: dpcm: don't merge format from invalid codec dai
+    - ASoC: zte: Fix incorrect PCM format bit usages
+    - ASoC: sirf: Fix potential NULL pointer dereference
+    - ASoC: wm_adsp: Correct DSP pointer for preloader control
+    - soc: qcom: rmtfs-mem: fix memleak in probe error paths
+    - pinctrl: freescale: off by one in imx1_pinconf_group_dbg_show()
+    - scsi: qla2xxx: Fix stalled relogin
+    - x86/vdso: Fix lsl operand order
+    - x86/nmi: Fix NMI uaccess race against CR3 switching
+    - x86/irqflags: Mark native_restore_fl extern inline
+    - x86/spectre: Add missing family 6 check to microcode check
+    - x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+
+    - hwmon: (nct6775) Fix potential Spectre v1
+    - x86/entry/64: Wipe KASAN stack shadow before rewind_stack_do_exit()
+    - x86: Allow generating user-space headers without a compiler
+    - s390/mm: fix addressing exception after suspend/resume
+    - s390/lib: use expoline for all bcr instructions
+    - s390: fix br_r1_trampoline for machines without exrl
+    - s390/qdio: reset old sbal_state flags
+    - s390/numa: move initial setup of node_to_cpumask_map
+    - s390/purgatory: Fix crash with expoline enabled
+    - s390/purgatory: Add missing FORCE to Makefile targets
+    - kprobes: Show blacklist addresses as same as kallsyms does
+    - kprobes: Replace %p with other pointer types
+    - kprobes/arm: Fix %p uses in error messages
+    - kprobes: Make list and blacklist root user read only
+    - MIPS: Correct the 64-bit DSP accumulator register size
+    - MIPS: memset.S: Fix byte_fixup for MIPSr6
+    - MIPS: Always use -march=<arch>, not -<arch> shortcuts
+    - MIPS: Change definition of cpu_relax() for Loongson-3
+    - MIPS: lib: Provide MIPS64r6 __multi3() for GCC < 7
+    - tpm: Return the actual size when receiving an unsupported command
+    - tpm: separate cmd_ready/go_idle from runtime_pm
+    - scsi: mpt3sas: Fix calltrace observed while running IO & reset
+    - scsi: mpt3sas: Fix _transport_smp_handler() error path
+    - scsi: sysfs: Introduce sysfs_{un,}break_active_protection()
+    - scsi: core: Avoid that SCSI device removal through sysfs triggers a deadlock
+    - iscsi target: fix session creation failure handling
+    - mtd: rawnand: hynix: Use ->exec_op() in hynix_nand_reg_write_op()
+    - mtd: rawnand: fsmc: Stop using chip->read_buf()
+    - mtd: rawnand: marvell: add suspend and resume hooks
+    - mtd: rawnand: qcom: wait for desc completion in all BAM channels
+    - clk: rockchip: fix clk_i2sout parent selection bits on rk3399
+    - clk: npcm7xx: fix memory allocation
+    - PM / clk: signedness bug in of_pm_clk_add_clks()
+    - power: generic-adc-battery: fix out-of-bounds write when copying channel
+      properties
+    - power: generic-adc-battery: check for duplicate properties copied from iio
+      channels
+    - watchdog: Mark watchdog touch functions as notrace
+    - cdrom: Fix info leak/OOB read in cdrom_ioctl_drive_status
+    - x86/dumpstack: Don't dump kernel memory based on usermode RIP
+    - Linux 4.18.6
+    - updateconfigs after v4.18.6 stable update
+
+  * random oopses on s390 systems using NVMe devices (LP: #1790480)
+    - s390/pci: fix out of bounds access during irq setup
+
+  * [18.10 FEAT] zcrypt DD: introduce APQN tags to support deterministic driver
+    binding (LP: #1784331)
+    - s390/zcrypt: code beautify
+    - s390/zcrypt: AP bus support for alternate driver(s)
+    - s390/zcrypt: hex string mask improvements for apmask and aqmask.
+
+  * performance drop with ATS enabled (LP: #1788097)
+    - powerpc/powernv: Fix concurrency issue with npu->mmio_atsd_usage
+
+  * Fix MCE handling for user access of poisoned device-dax mapping
+    (LP: #1774366)
+    - device-dax: Convert to vmf_insert_mixed and vm_fault_t
+    - device-dax: Enable page_mapping()
+    - device-dax: Set page->index
+    - filesystem-dax: Set page->index
+    - mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages
+    - mm, dev_pagemap: Do not clear ->mapping on final put
+    - mm, madvise_inject_error: Let memory_failure() optionally take a page
+      reference
+    - mm, memory_failure: Collect mapping size in collect_procs()
+    - filesystem-dax: Introduce dax_lock_mapping_entry()
+    - mm, memory_failure: Teach memory_failure() about dev_pagemap pages
+    - x86/mm/pat: Prepare {reserve, free}_memtype() for "decoy" addresses
+    - x86/memory_failure: Introduce {set, clear}_mce_nospec()
+    - libnvdimm, pmem: Restore page attributes when clearing errors
+
+  * Reconcile hns3 SAUCE patches with upstream (LP: #1787477)
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix comments for
+      hclge_get_ring_chain_from_mbx"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and
+      shift in hclge_get_ring_chain_from_mbx"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default
+      assignment probelm"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring
+      configuration operation while resetting"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix return value error in
+      hns3_reset_notify_down_enet"
+    - Revert "UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell
+      phy driver"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when
+      resetting"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: correct reset event status
+      register"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset
+      frequently"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing
+      command queue register"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during
+      global or core reset"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce
+      callback function"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear
+      reset cause"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in
+      hclgevf_main module"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp
+      selftest"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal
+      frame size"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated
+      problem"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting
+      correctly"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in
+      pfc mode"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first
+      up"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback
+      function when link status change"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying
+      roce client"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and
+      definition"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask
+      macros"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset
+      macros"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return
+      value"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove some redundant
+      assignments"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead
+      of kzalloc/dma_map_single"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: give default option while
+      dependency HNS3 set"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of
+      some structures"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove a redundant
+      hclge_cmd_csq_done"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters
+      in hclge_cmd_send"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove some redundant
+      assignments"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove useless code in
+      hclge_cmd_send"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unused
+      hclge_ring_to_dma_dir"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and
+      upper_32_bits"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector
+      in hns3_client_uninit"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error
+      information"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state
+      state init|uninit"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in
+      hnae3.c"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4
+      and ipv6"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add vector status check before
+      free vector"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: rename the interface for
+      init_client_instance and uninit_client_instance"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index
+      from hclge_bind_ring_with_vector"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in
+      last BD except VLD bit and buffer size"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback
+      selftest"
+    - net: hns3: Updates RX packet info fetch in case of multi BD
+    - net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
+    - net: hns3: rename the interface for init_client_instance and
+      uninit_client_instance
+    - net: hns3: add vector status check before free vector
+    - net: hns3: add l4_type check for both ipv4 and ipv6
+    - net: hns3: add unlikely for error check
+    - net: hns3: remove unused head file in hnae3.c
+    - net: hns3: extraction an interface for state init|uninit
+    - net: hns3: print the ret value in error information
+    - net: hns3: remove the Redundant put_vector in hns3_client_uninit
+    - net: hns3: remove back in struct hclge_hw
+    - net: hns3: use lower_32_bits and upper_32_bits
+    - net: hns3: remove unused hclge_ring_to_dma_dir
+    - net: hns3: remove useless code in hclge_cmd_send
+    - net: hns3: remove some redundant assignments
+    - net: hns3: simplify hclge_cmd_csq_clean
+    - net: hns3: remove a redundant hclge_cmd_csq_done
+    - net: hns3: remove some unused members of some structures
+    - net: hns3: give default option while dependency HNS3 set
+    - net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
+    - net: hns3: modify hnae_ to hnae3_
+    - net: hns3: Fix tc setup when netdev is first up
+    - net: hns3: Fix for mac pause not disable in pfc mode
+    - net: hns3: Fix for waterline not setting correctly
+    - net: hns3: Fix for l4 checksum offload bug
+    - net: hns3: Fix for mailbox message truncated problem
+    - net: hns3: Add configure for mac minimal frame size
+    - net: hns3: Fix warning bug when doing lp selftest
+    - net: hns3: Fix get_vector ops in hclgevf_main module
+    - net: hns3: Remove the warning when clear reset cause
+    - net: hns3: Prevent sending command during global or core reset
+    - net: hns3: Modify the order of initializing command queue register
+    - net: hns3: Reset net device with rtnl_lock
+    - net: hns3: Prevent to request reset frequently
+    - net: hns3: Correct reset event status register
+    - net: hns3: Fix return value error in hns3_reset_notify_down_enet
+    - net: hns3: remove unnecessary ring configuration operation while resetting
+    - net: hns3: Fix for reset_level default assignment probelm
+    - net: hns3: Fix for using wrong mask and shift in
+      hclge_get_ring_chain_from_mbx
+    - net: hns3: Fix comments for hclge_get_ring_chain_from_mbx
+    - net: hns3: Remove some redundant assignments
+    - net: hns3: Standardize the handle of return value
+    - net: hns3: Remove extra space and brackets
+    - net: hns3: Correct unreasonable code comments
+    - net: hns3: Use decimal for bit offset macros
+    - net: hns3: Modify inconsistent bit mask macros
+    - net: hns3: Fix misleading parameter name
+    - net: hns3: Remove unused struct member and definition
+    - net: hns3: Add SPDX tags to HNS3 PF driver
+    - net: hns3: Add support for serdes loopback selftest
+    - net: hns3: Fix for phy link issue when using marvell phy driver
+
+  * [Regression] kernel crashdump fails on arm64 (LP: #1786878)
+    - arm64: export memblock_reserve()d regions via /proc/iomem
+    - drivers: acpi: add dependency of EFI for arm64
+    - efi/arm: preserve early mapping of UEFI memory map longer for BGRT
+    - efi/arm: map UEFI memory map even w/o runtime services enabled
+    - arm64: acpi: fix alignment fault in accessing ACPI
+    - [Config] CONFIG_ARCH_SUPPORTS_ACPI=y
+    - arm64: fix ACPI dependencies
+    - ACPI: fix menuconfig presentation of ACPI submenu
+
+  * TB 16 issue on Dell Lattitude 7490 with large amount of data (LP: #1785780)
+    - r8152: disable RX aggregation on new Dell TB16 dock
+
+  * Support Power Management for Thunderbolt Controller  (LP: #1789358)
+    - thunderbolt: Use 64-bit DMA mask if supported by the platform
+    - thunderbolt: Do not unnecessarily call ICM get route
+    - thunderbolt: No need to take tb->lock in domain suspend/complete
+    - thunderbolt: Use correct ICM commands in system suspend
+    - thunderbolt: Add support for runtime PM
+
+  * Enable AMD PCIe MP2 for AMDI0011 (LP: #1773940)
+    - SAUCE: i2c:amd I2C Driver based on PCI Interface for upcoming platform
+    - SAUCE: i2c:amd move out pointer in union i2c_event_base
+    - SAUCE: i2c:amd Depends on ACPI
+    - [Config] i2c: CONFIG_I2C_AMD_MP2=y on x86
+
+  * Microphone cannot be detected with front panel audio combo jack on HP Z8-G4
+    machine (LP: #1789145)
+    - ALSA: hda/realtek - Fix HP Headset Mic can't record
+
+  * Please enable CONFIG_PAGE_POISONING (LP: #1783651)
+    - [Config] Enable CONFIG_PAGE_POISONING configs
+
+  * Tango platform uses __initcall without further checks (LP: #1787945)
+    - [Config] disable ARCH_TANGO
+
+  * [18.10 FEAT] SMC-Direct (LP: #1786902)
+    - net/smc: determine port attributes independent from pnet table
+    - net/smc: add pnetid support
+    - net/smc: add base infrastructure for SMC-D and ISM
+    - net/smc: add pnetid support for SMC-D and ISM
+    - net/smc: add SMC-D support in CLC messages
+    - net/smc: add SMC-D support in data transfer
+    - net/smc: add SMC-D support in af_smc
+    - net/smc: add SMC-D diag support
+    - net/smc: provide smc mode in smc_diag.c
+    - net/smc: eliminate cursor read and write calls
+    - net/smc: add function to get link group from link
+    - net/smc: use DECLARE_BITMAP for rtokens_used_mask
+    - net/smc: remove local variable page in smc_rx_splice()
+    - net/smc: Remove a WARN_ON() statement
+    - net/smc: Simplify ib_post_(send|recv|srq_recv)() calls
+    - net/smc: fewer parameters for smc_llc_send_confirm_link()
+    - net/smc: use correct vlan gid of RoCE device
+    - net/smc: provide fallback reason code
+    - net/smc: improve delete link processing
+    - net: simplify sock_poll_wait
+    - net/smc: send response to test link signal
+
+  * Miscellaneous Ubuntu changes
+    - [Config] update annotations for CONFIG_CRYPTO_SPECK_NEON
+    - [Config] fix up annotatios for CONFIG_CRYPTO_SPECK
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 10 Sep 2018 07:08:38 -0500
+
+linux (4.18.0-7.8) cosmic; urgency=medium
+
+  * linux: 4.18.0-7.8 -proposed tracker (LP: #1789459)
+
+  * pmtu.sh fails on 4.18 kernel (LP: #1789436)
+    - SAUCE: Revert "vti6: fix PMTU caching and reporting on xmit"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 28 Aug 2018 11:08:51 -0500
+
+linux (4.18.0-6.7) cosmic; urgency=medium
+
+  * linux: 4.18.0-6.7 -proposed tracker (LP: #1788881)
+
+  * systemd 237-3ubuntu10 ADT test failure with linux 4.18.0-5.6 (LP: #1787440)
+    - Config: Disable BPF_JIT_ALWAYS_ON on i386
+
+  * execveat03 in ubuntu_ltp_syscalls failed on X/B (LP: #1786729)
+    - cap_inode_getsecurity: use d_find_any_alias() instead of d_find_alias()
+
+  * Cosmic update to v4.18.5 stable release (LP: #1788874)
+    - EDAC: Add missing MEM_LRDDR4 entry in edac_mem_types[]
+    - pty: fix O_CLOEXEC for TIOCGPTPEER
+    - mm: Allow non-direct-map arguments to free_reserved_area()
+    - x86/mm/init: Pass unconverted symbol addresses to free_init_pages()
+    - x86/mm/init: Add helper for freeing kernel image pages
+    - x86/mm/init: Remove freed kernel image areas from alias mapping
+    - powerpc64s: Show ori31 availability in spectre_v1 sysfs file not v2
+    - ext4: fix spectre gadget in ext4_mb_regular_allocator()
+    - drm/i915/kvmgt: Fix potential Spectre v1
+    - drm/amdgpu/pm: Fix potential Spectre v1
+    - parisc: Remove unnecessary barriers from spinlock.h
+    - parisc: Remove ordered stores from syscall.S
+    - PCI: Restore resized BAR state on resume
+    - PCI / ACPI / PM: Resume all bridges on suspend-to-RAM
+    - PCI: hotplug: Don't leak pci_slot on registration failure
+    - PCI: aardvark: Size bridges before resources allocation
+    - PCI: Skip MPS logic for Virtual Functions (VFs)
+    - PCI: pciehp: Fix use-after-free on unplug
+    - PCI: pciehp: Fix unprotected list iteration in IRQ handler
+    - i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
+    - i2c: imx: Fix race condition in dma read
+    - reiserfs: fix broken xattr handling (heap corruption, bad retval)
+    - Linux 4.18.5
+
+  * [18.10 FEAT] Add kernel config option "CONFIG_SCLP_OFB" (LP: #1787898)
+    - [Config] CONFIG_SCLP_OFB=y for s390x
+
+  * errors when scanning partition table of corrupted AIX disk (LP: #1787281)
+    - partitions/aix: fix usage of uninitialized lv_info and lvname structures
+    - partitions/aix: append null character to print data from disk
+
+  * Apply NVMe bugfix from Google that bjf asked for (LP: #1787635)
+    - nvme-pci: add a memory barrier to nvme_dbbuf_update_and_check_event
+
+  * ThinkPad systems have no HDMI sound when using the nvidia GPU (LP: #1787058)
+    - ACPI / OSI: Add OEM _OSI string to enable NVidia HDMI audio
+
+  * Cosmic update to v4.18.4 stable release (LP: #1788454)
+    - l2tp: use sk_dst_check() to avoid race on sk->sk_dst_cache
+    - net_sched: fix NULL pointer dereference when delete tcindex filter
+    - net_sched: Fix missing res info when create new tc_index filter
+    - r8169: don't use MSI-X on RTL8168g
+    - ALSA: hda - Sleep for 10ms after entering D3 on Conexant codecs
+    - ALSA: hda - Turn CX8200 into D3 as well upon reboot
+    - ALSA: vx222: Fix invalid endian conversions
+    - ALSA: virmidi: Fix too long output trigger loop
+    - ALSA: cs5535audio: Fix invalid endian conversion
+    - ALSA: dice: fix wrong copy to rx parameters for Alesis iO26
+    - ALSA: hda: Correct Asrock B85M-ITX power_save blacklist entry
+    - ALSA: memalloc: Don't exceed over the requested size
+    - ALSA: vxpocket: Fix invalid endian conversions
+    - ALSA: seq: Fix poll() error return
+    - media: gl861: fix probe of dvb_usb_gl861
+    - USB: serial: sierra: fix potential deadlock at close
+    - USB: serial: pl2303: add a new device id for ATEN
+    - USB: option: add support for DW5821e
+    - ACPI / PM: save NVS memory for ASUS 1025C laptop
+    - tty: serial: 8250: Revert NXP SC16C2552 workaround
+    - serial: 8250_exar: Read INT0 from slave device, too
+    - serial: 8250_dw: always set baud rate in dw8250_set_termios
+    - serial: 8250_dw: Add ACPI support for uart on Broadcom SoC
+    - uio: fix wrong return value from uio_mmap()
+    - misc: sram: fix resource leaks in probe error path
+    - Revert "uio: use request_threaded_irq instead"
+    - Bluetooth: avoid killing an already killed socket
+    - isdn: Disable IIOCDBGVAR
+    - net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd()
+    - hv/netvsc: Fix NULL dereference at single queue mode fallback
+    - r8169: don't use MSI-X on RTL8106e
+    - ip_vti: fix a null pointer deferrence when create vti fallback tunnel
+    - net: ethernet: mvneta: Fix napi structure mixup on armada 3700
+    - net: mvneta: fix mvneta_config_rss on armada 3700
+    - cls_matchall: fix tcf_unbind_filter missing
+    - Linux 4.18.4
+
+  * Cosmic update to v4.18.3 stable release (LP: #1788453)
+    - x86/speculation/l1tf: Exempt zeroed PTEs from inversion
+    - Linux 4.18.3
+
+  * Cosmic update to v4.18.2 stable release (LP: #1788452)
+    - x86/l1tf: Fix build error seen if CONFIG_KVM_INTEL is disabled
+    - x86: i8259: Add missing include file
+    - x86/hyper-v: Check for VP_INVAL in hyperv_flush_tlb_others()
+    - x86/platform/UV: Mark memblock related init code and data correctly
+    - x86/mm/pti: Clear Global bit more aggressively
+    - xen/pv: Call get_cpu_address_sizes to set x86_virt/phys_bits
+    - x86/mm: Disable ioremap free page handling on x86-PAE
+    - kbuild: verify that $DEPMOD is installed
+    - crypto: ccree - fix finup
+    - crypto: ccree - fix iv handling
+    - crypto: ccp - Check for NULL PSP pointer at module unload
+    - crypto: ccp - Fix command completion detection race
+    - crypto: x86/sha256-mb - fix digest copy in sha256_mb_mgr_get_comp_job_avx2()
+    - crypto: vmac - require a block cipher with 128-bit block size
+    - crypto: vmac - separate tfm and request context
+    - crypto: blkcipher - fix crash flushing dcache in error path
+    - crypto: ablkcipher - fix crash flushing dcache in error path
+    - crypto: skcipher - fix aligning block size in skcipher_copy_iv()
+    - crypto: skcipher - fix crash flushing dcache in error path
+    - ioremap: Update pgtable free interfaces with addr
+    - x86/mm: Add TLB purge to free pmd/pte page interfaces
+    - Linux 4.18.2
+
+  * Cosmic update to v4.18.2 stable release (LP: #1788452) // CVE-2018-9363
+    - Bluetooth: hidp: buffer overflow in hidp_process_report
+
+  * linux-cloud-tools-common: Ensure hv-kvp-daemon.service starts before
+    walinuxagent.service (LP: #1739107)
+    - [Debian] hyper-v -- Ensure that hv-kvp-daemon.service starts before
+      walinuxagent.service
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: ipvs: remove nbsp characters from Kconfig
+    - [Config] CONFIG_MPROFILE_KERNEL=y for ppc64el
+    - [Config] CONFIG_DRM_RCAR_LVDS=m for snapdragon
+    - [Config] CONFIG_MDIO_MSCC_MIIM=n for s390x
+    - [Config] CONFIG_NET_VENDOR_MICROSEMI=n, CONFIG_NET_VENDOR_NI=n for s390x
+    - [Config] update annotations following config review
+    - [Debian] set CROSS_COMPILE when generating kernel configs
+    - [Config] Disable the Speck cipher
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 24 Aug 2018 14:18:15 -0500
+
+linux (4.18.0-5.6) cosmic; urgency=medium
+
+  * Cosmic update to v4.18.1 stable release (LP: #1787264)
+    - x86/paravirt: Fix spectre-v2 mitigations for paravirt guests
+    - x86/speculation: Protect against userspace-userspace spectreRSB
+    - kprobes/x86: Fix %p uses in error messages
+    - x86/irqflags: Provide a declaration for native_save_fl
+    - x86/speculation/l1tf: Increase 32bit PAE __PHYSICAL_PAGE_SHIFT
+    - x86/speculation/l1tf: Change order of offset/type in swap entry
+    - x86/speculation/l1tf: Protect swap entries against L1TF
+    - x86/speculation/l1tf: Protect PROT_NONE PTEs against speculation
+    - x86/speculation/l1tf: Make sure the first page is always reserved
+    - x86/speculation/l1tf: Add sysfs reporting for l1tf
+    - x86/speculation/l1tf: Disallow non privileged high MMIO PROT_NONE mappings
+    - x86/speculation/l1tf: Limit swap file size to MAX_PA/2
+    - x86/bugs: Move the l1tf function and define pr_fmt properly
+    - sched/smt: Update sched_smt_present at runtime
+    - x86/smp: Provide topology_is_primary_thread()
+    - x86/topology: Provide topology_smt_supported()
+    - cpu/hotplug: Make bringup/teardown of smp threads symmetric
+    - cpu/hotplug: Split do_cpu_down()
+    - cpu/hotplug: Provide knobs to control SMT
+    - x86/cpu: Remove the pointless CPU printout
+    - x86/cpu/AMD: Remove the pointless detect_ht() call
+    - x86/cpu/common: Provide detect_ht_early()
+    - x86/cpu/topology: Provide detect_extended_topology_early()
+    - x86/cpu/intel: Evaluate smp_num_siblings early
+    - x86/CPU/AMD: Do not check CPUID max ext level before parsing SMP info
+    - x86/cpu/AMD: Evaluate smp_num_siblings early
+    - x86/apic: Ignore secondary threads if nosmt=force
+    - x86/speculation/l1tf: Extend 64bit swap file size limit
+    - x86/cpufeatures: Add detection of L1D cache flush support.
+    - x86/CPU/AMD: Move TOPOEXT reenablement before reading smp_num_siblings
+    - x86/speculation/l1tf: Protect PAE swap entries against L1TF
+    - x86/speculation/l1tf: Fix up pte->pfn conversion for PAE
+    - Revert "x86/apic: Ignore secondary threads if nosmt=force"
+    - cpu/hotplug: Boot HT siblings at least once
+    - x86/KVM: Warn user if KVM is loaded SMT and L1TF CPU bug being present
+    - x86/KVM/VMX: Add module argument for L1TF mitigation
+    - x86/KVM/VMX: Add L1D flush algorithm
+    - x86/KVM/VMX: Add L1D MSR based flush
+    - x86/KVM/VMX: Add L1D flush logic
+    - x86/KVM/VMX: Split the VMX MSR LOAD structures to have an host/guest numbers
+    - x86/KVM/VMX: Add find_msr() helper function
+    - x86/KVM/VMX: Separate the VMX AUTOLOAD guest/host number accounting
+    - x86/KVM/VMX: Extend add_atomic_switch_msr() to allow VMENTER only MSRs
+    - x86/KVM/VMX: Use MSR save list for IA32_FLUSH_CMD if required
+    - cpu/hotplug: Online siblings when SMT control is turned on
+    - x86/litf: Introduce vmx status variable
+    - x86/kvm: Drop L1TF MSR list approach
+    - x86/l1tf: Handle EPT disabled state proper
+    - x86/kvm: Move l1tf setup function
+    - x86/kvm: Add static key for flush always
+    - x86/kvm: Serialize L1D flush parameter setter
+    - x86/kvm: Allow runtime control of L1D flush
+    - cpu/hotplug: Expose SMT control init function
+    - cpu/hotplug: Set CPU_SMT_NOT_SUPPORTED early
+    - x86/bugs, kvm: Introduce boot-time control of L1TF mitigations
+    - Documentation: Add section about CPU vulnerabilities
+    - x86/speculation/l1tf: Unbreak !__HAVE_ARCH_PFN_MODIFY_ALLOWED architectures
+    - x86/KVM/VMX: Initialize the vmx_l1d_flush_pages' content
+    - Documentation/l1tf: Fix typos
+    - cpu/hotplug: detect SMT disabled by BIOS
+    - x86/KVM/VMX: Don't set l1tf_flush_l1d to true from vmx_l1d_flush()
+    - x86/KVM/VMX: Replace 'vmx_l1d_flush_always' with 'vmx_l1d_flush_cond'
+    - x86/KVM/VMX: Move the l1tf_flush_l1d test to vmx_l1d_flush()
+    - x86/irq: Demote irq_cpustat_t::__softirq_pending to u16
+    - x86/KVM/VMX: Introduce per-host-cpu analogue of l1tf_flush_l1d
+    - x86: Don't include linux/irq.h from asm/hardirq.h
+    - x86/irq: Let interrupt handlers set kvm_cpu_l1tf_flush_l1d
+    - x86/KVM/VMX: Don't set l1tf_flush_l1d from vmx_handle_external_intr()
+    - Documentation/l1tf: Remove Yonah processors from not vulnerable list
+    - x86/speculation: Simplify sysfs report of VMX L1TF vulnerability
+    - x86/speculation: Use ARCH_CAPABILITIES to skip L1D flush on vmentry
+    - KVM: VMX: Tell the nested hypervisor to skip L1D flush on vmentry
+    - cpu/hotplug: Fix SMT supported evaluation
+    - x86/speculation/l1tf: Invert all not present mappings
+    - x86/speculation/l1tf: Make pmd/pud_mknotpresent() invert
+    - x86/mm/pat: Make set_memory_np() L1TF safe
+    - x86/mm/kmmio: Make the tracer robust against L1TF
+    - tools headers: Synchronise x86 cpufeatures.h for L1TF additions
+    - x86/microcode: Allow late microcode loading with SMT disabled
+    - x86/smp: fix non-SMP broken build due to redefinition of
+      apic_id_is_primary_thread
+    - cpu/hotplug: Non-SMP machines do not make use of booted_once
+    - x86/init: fix build with CONFIG_SWAP=n
+    - Linux 4.18.1
+    - [Config] updateconfigs after v4.18.1 stable update
+
+  * Consider enabling CONFIG_NETWORK_PHY_TIMESTAMPING (LP: #1785816)
+    - [Config] Enable timestamping in network PHY devices
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_SYSCTL_SYSCALL=n
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 15 Aug 2018 14:20:59 -0500
+
+linux (4.18.0-4.5) cosmic; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 06 Aug 2018 13:54:02 -0500
+
+linux (4.18.0-3.4) cosmic; urgency=medium
+
+  * Suspend fails in Ubuntu and Kubuntu 18.04 but works fine in Ubuntu and
+    Kubuntu 17.10 (and on Kubuntu 18.04 using kernel 4.14.47) (LP: #1774950)
+    - ACPI / LPSS: Avoid PM quirks on suspend and resume from hibernation
+
+  * hinic interfaces aren't getting predictable names (LP: #1783138)
+    - hinic: Link the logical network device to the pci device in sysfs
+
+  * libvirtd is unable to configure bridge devices inside of LXD containers
+    (LP: #1784501)
+    - kernfs: allow creating kernfs objects with arbitrary uid/gid
+    - sysfs, kobject: allow creating kobject belonging to arbitrary users
+    - kobject: kset_create_and_add() - fetch ownership info from parent
+    - driver core: set up ownership of class devices in sysfs
+    - net-sysfs: require net admin in the init ns for setting tx_maxrate
+    - net-sysfs: make sure objects belong to container's owner
+    - net: create reusable function for getting ownership info of sysfs inodes
+    - bridge: make sure objects belong to container's owner
+    - sysfs: Fix regression when adding a file to an existing group
+
+  * locking sockets broken due to missing AppArmor socket mediation patches
+    (LP: #1780227)
+    - UBUNTU SAUCE: apparmor: fix apparmor mediating locking non-fs, unix sockets
+
+  * Update2 for ocxl driver (LP: #1781436)
+    - ocxl: Fix page fault handler in case of fault on dying process
+
+  * HDMI/DP audio can't work on the laptop of Dell Latitude 5495 (LP: #1782689)
+    - ALSA: hda: use PCI_BASE_CLASS_DISPLAY to replace PCI_CLASS_DISPLAY_VGA
+    - vga_switcheroo: set audio client id according to bound GPU id
+
+  * Allow Raven Ridge's audio controller to be runtime suspended (LP: #1782540)
+    - ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge
+
+  * Invoking obsolete 'firmware_install' target breaks snap build (LP: #1782166)
+    - snapcraft.yaml: stop invoking the obsolete (and non-existing)
+      'firmware_install' target
+
+  * snapcraft.yaml: missing ubuntu-retpoline-extract-one script breaks the build
+    (LP: #1782116)
+    - snapcraft.yaml: copy retpoline-extract-one to scripts before build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 01 Aug 2018 08:49:40 -0500
+
+linux (4.18.0-2.3) cosmic; urgency=medium
+
+  * Kernel error "task zfs:pid blocked for more than 120 seconds" (LP: #1781364)
+    - SAUCE: (noup) zfs to 0.7.9-3ubuntu4
+
+  * [Regression] EXT4-fs error (device sda1): ext4_validate_inode_bitmap:99:
+    comm stress-ng: Corrupt inode bitmap (LP: #1780137)
+    - SAUCE: ext4: fix ext4_validate_inode_bitmap: comm stress-ng: Corrupt inode
+      bitmap
+
+  * Cloud-init causes potentially huge boot delays with 4.15 kernels
+    (LP: #1780062)
+    - random: Make getrandom() ready earlier
+
+  * hisi_sas_v3_hw: internal task abort: timeout and not done. (LP: #1777736)
+    - scsi: hisi_sas: Update a couple of register settings for v3 hw
+
+  * hisi_sas: Add missing PHY spinlock init (LP: #1777734)
+    - scsi: hisi_sas: Add missing PHY spinlock init
+
+  * hisi_sas: improve read performance by pre-allocating slot DMA buffers
+    (LP: #1777727)
+    - scsi: hisi_sas: Use dmam_alloc_coherent()
+    - scsi: hisi_sas: Pre-allocate slot DMA buffers
+
+  * hisi_sas: Failures during host reset (LP: #1777696)
+    - scsi: hisi_sas: Only process broadcast change in phy_bcast_v3_hw()
+    - scsi: hisi_sas: Fix the conflict between dev gone and host reset
+    - scsi: hisi_sas: Adjust task reject period during host reset
+    - scsi: hisi_sas: Add a flag to filter PHY events during reset
+    - scsi: hisi_sas: Release all remaining resources in clear nexus ha
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.9-3ubuntu2, zfs to 0.7.9-3ubuntu3
+    - SAUCE: mm: Fix exports that inadvertently make put_page() EXPORT_SYMBOL_GPL
+    - Enable zfs build
+    - SAUCE: Import aufs driver
+    - Revert "UBUNTU: [Config]: set CONFIG_EDAC_DEBUG=y for ARM64"
+    - [Config] retpoline -- review and accept retpoline changes
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc5
+  * Rebase to v4.18-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 24 Jul 2018 08:41:22 -0500
+
+linux (4.18.0-1.2) cosmic; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 09 Jul 2018 07:36:31 -0500
+
+linux (4.18.0-0.1) cosmic; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu -- disable vbox build
+    - Disable zfs build
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) ima: require secure_boot rules in lockdown mode
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) lockdown: fix coordination of kernel module signature
+      verification
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Don't print secure boot state from the efi stub
+    - SAUCE: (namespace) block_dev: Support checking inode permissions in
+      lookup_bdev()
+    - SAUCE: (namespace) block_dev: Check permissions towards block device inode
+      when mounting
+    - SAUCE: (namespace) mtd: Check permissions towards mtd block device inode
+      when mounting
+    - SAUCE: (namespace) ext4: Add support for unprivileged mounts from user
+      namespaces
+    - SAUCE: (namespace) ext4: Add module parameter to enable user namespace
+      mounts
+    - SAUCE: (namespace) block_dev: Forbid unprivileged mounting when device is
+      opened for writing
+    - SAUCE: Import aufs driver
+    - Update dropped.txt
+    - [Config] updateconfigs after 4.18-rc3 rebase
+    - SAUCE: (no-up): ASoC: Intel: bytcr-rt5660: Remove snd_soc_codec use for 4.18
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 06 Jul 2018 10:46:37 -0500
+
+linux (4.18.0-0.0) cosmic; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 03 Jul 2018 11:10:33 -0500
+
+linux (4.17.0-4.5) cosmic; urgency=medium
+
+  * linux: 4.17.0-4.5 -proposed tracker (LP: #1779399)
+
+  * Update to ocxl driver for 18.04.1 (LP: #1775786)
+    - powerpc: Add TIDR CPU feature for POWER9
+    - powerpc: Use TIDR CPU feature to control TIDR allocation
+    - powerpc: use task_pid_nr() for TID allocation
+    - ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action
+    - ocxl: Expose the thread_id needed for wait on POWER9
+    - ocxl: Add an IOCTL so userspace knows what OCXL features are available
+    - ocxl: Document new OCXL IOCTLs
+    - ocxl: Fix missing unlock on error in afu_ioctl_enable_p9_wait()
+
+  * Please include ax88179_178a and r8152 modules in d-i udeb (LP: #1771823)
+    - [Config:] d-i: Add ax88179_178a and r8152 to nic-modules
+
+  * glibc pkeys test fail on powerpc (LP: #1776967)
+    - [Config] Temporarily disable CONFIG_PPC_MEM_KEYS
+
+  * After update to 4.13-43 Intel Graphics are Laggy (LP: #1773520)
+    - Revert "drm/i915/edp: Allow alternate fixed mode for eDP if available."
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.9-3ubuntu1, zfs to 0.7.9-3ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 29 Jun 2018 13:37:52 -0500
+
+linux (4.17.0-3.4) cosmic; urgency=medium
+
+  * linux: 4.17.0-3.4 -proposed tracker (LP: #1779124)
+
+  * Cosmic update to v4.17.3 stable release (LP: #1778997)
+    - net: aquantia: fix unsigned numvecs comparison with less than zero
+    - bonding: re-evaluate force_primary when the primary slave name changes
+    - cdc_ncm: avoid padding beyond end of skb
+    - ipv6: allow PMTU exceptions to local routes
+    - net: dsa: add error handling for pskb_trim_rcsum
+    - net: phy: dp83822: use BMCR_ANENABLE instead of BMSR_ANEGCAPABLE for DP83620
+    - net/sched: act_simple: fix parsing of TCA_DEF_DATA
+    - tcp: verify the checksum of the first data segment in a new connection
+    - tls: fix use-after-free in tls_push_record
+    - tls: fix waitall behavior in tls_sw_recvmsg
+    - socket: close race condition between sock_close() and sockfs_setattr()
+    - udp: fix rx queue len reported by diag and proc interface
+    - net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds
+      vlan
+    - hv_netvsc: Fix a network regression after ifdown/ifup
+    - ACPICA: AML parser: attempt to continue loading table after error
+    - ext4: fix hole length detection in ext4_ind_map_blocks()
+    - ext4: update mtime in ext4_punch_hole even if no blocks are released
+    - ext4: do not allow external inodes for inline data
+    - ext4: bubble errors from ext4_find_inline_data_nolock() up to ext4_iget()
+    - ext4: correctly handle a zero-length xattr with a non-zero e_value_offs
+    - ext4: fix fencepost error in check for inode count overflow during resize
+    - driver core: Don't ignore class_dir_create_and_add() failure.
+    - Btrfs: allow empty subvol= again
+    - Btrfs: fix clone vs chattr NODATASUM race
+    - Btrfs: fix memory and mount leak in btrfs_ioctl_rm_dev_v2()
+    - btrfs: return error value if create_io_em failed in cow_file_range
+    - btrfs: scrub: Don't use inode pages for device replace
+    - ALSA: usb-audio: Disable the quirk for Nura headset
+    - ALSA: hda/conexant - Add fixup for HP Z2 G4 workstation
+    - ALSA: hda - Handle kzalloc() failure in snd_hda_attach_pcm_stream()
+    - ALSA: hda: add dock and led support for HP EliteBook 830 G5
+    - ALSA: hda: add dock and led support for HP ProBook 640 G4
+    - x86/MCE: Fix stack out-of-bounds write in mce-inject.c: Flags_read()
+    - smb3: fix various xid leaks
+    - smb3: on reconnect set PreviousSessionId field
+    - CIFS: 511c54a2f69195b28afb9dd119f03787b1625bb4 adds a check for session
+      expiry
+    - cifs: For SMB2 security informaion query, check for minimum sized security
+      descriptor instead of sizeof FileAllInformation class
+    - nbd: fix nbd device deletion
+    - nbd: update size when connected
+    - nbd: use bd_set_size when updating disk size
+    - blk-mq: reinit q->tag_set_list entry only after grace period
+    - bdi: Move cgroup bdi_writeback to a dedicated low concurrency workqueue
+    - cpufreq: Fix new policy initialization during limits updates via sysfs
+    - cpufreq: ti-cpufreq: Fix an incorrect error return value
+    - cpufreq: governors: Fix long idle detection logic in load calculation
+    - libata: zpodd: small read overflow in eject_tray()
+    - libata: Drop SanDisk SD7UB3Q*G1001 NOLPM quirk
+    - nvme/pci: Sync controller reset for AER slot_reset
+    - w1: mxc_w1: Enable clock before calling clk_get_rate() on it
+    - x86/vector: Fix the args of vector_alloc tracepoint
+    - x86/apic/vector: Prevent hlist corruption and leaks
+    - x86/apic: Provide apic_ack_irq()
+    - x86/ioapic: Use apic_ack_irq()
+    - x86/platform/uv: Use apic_ack_irq()
+    - irq_remapping: Use apic_ack_irq()
+    - genirq/generic_pending: Do not lose pending affinity update
+    - genirq/affinity: Defer affinity setting if irq chip is busy
+    - genirq/migration: Avoid out of line call if pending is not set
+    - x86/intel_rdt: Enable CMT and MBM on new Skylake stepping
+    - media: uvcvideo: Prevent setting unavailable flags
+    - media: rc: ensure input/lirc device can be opened after register
+    - iwlwifi: fw: harden page loading code
+    - orangefs: set i_size on new symlink
+    - orangefs: report attributes_mask and attributes for statx
+    - HID: intel_ish-hid: ipc: register more pm callbacks to support hibernation
+    - HID: wacom: Correct logical maximum Y for 2nd-gen Intuos Pro large
+    - vhost: fix info leak due to uninitialized memory
+    - mm, page_alloc: do not break __GFP_THISNODE by zonelist reset
+    - Linux 4.17.3
+
+  * Use-after-free in sk_peer_label (LP: #1778646)
+    - SAUCE: apparmor: fix use after free in sk_peer_label
+
+  * kernel: Fix memory leak on CCA and EP11 CPRB processing. (LP: #1775390)
+    - s390/zcrypt: Fix CCA and EP11 CPRB processing failure memory leak.
+
+  * Various fixes for CXL kernel module (LP: #1774471)
+    - cxl: Configure PSL to not use APC virtual machines
+    - cxl: Disable prefault_mode in Radix mode
+
+  * Bluetooth not working (LP: #1764645)
+    - Bluetooth: btusb: Apply QCA Rome patches for some ATH3012 models
+
+  * Fake SAS addresses for SATA disks on HiSilicon D05 are non-unique
+    (LP: #1776750)
+    - scsi: hisi_sas: make SAS address of SATA disks unique
+
+  * linux-snapdragon: wcn36xx: mac address generation on boot (LP: #1776491)
+    - [Config] arm64: snapdragon: WCN36XX_SNAPDRAGON_HACKS=y
+    - SAUCE: wcn36xx: read MAC from file or randomly generate one
+
+  * Lenovo V330 needs patch in ideapad_laptop module for rfkill (LP: #1774636)
+    - SAUCE: Add Lenovo V330 to the ideapad_laptop rfkill blacklist
+
+  * register on binfmt_misc may overflow and crash the system (LP: #1775856)
+    - fs/binfmt_misc.c: do not allow offset overflow
+
+  * Network installs fail on SocioNext board (LP: #1775884)
+    - net: socionext: reset hardware in ndo_stop
+    - net: netsec: enable tx-irq during open callback
+
+  * Fix several bugs in RDMA/hns driver (LP: #1770974)
+    - RDMA/hns: Drop local zgid in favor of core defined variable
+    - RDMA/hns: Add 64KB page size support for hip08
+    - RDMA/hns: Rename the idx field of db
+    - RDMA/hns: Modify uar allocation algorithm to avoid bitmap exhaust
+    - RDMA/hns: Increase checking CMQ status timeout value
+    - RDMA/hns: Add reset process for RoCE in hip08
+    - RDMA/hns: Fix the illegal memory operation when cross page
+    - RDMA/hns: Implement the disassociate_ucontext API
+
+  * powerpc/livepatch: Implement reliable stack tracing for the consistency
+    model (LP: #1771844)
+    - powerpc/livepatch: Implement reliable stack tracing for the consistency
+      model
+
+  * Adding back alx WoL feature (LP: #1772610)
+    - SAUCE: Revert "alx: remove WoL support"
+    - SAUCE: alx: add enable_wol paramenter
+
+  * Lancer A0 Asic HBA's won't boot with 18.04 (LP: #1768103)
+    - scsi: lpfc: Fix WQ/CQ creation for older asic's.
+    - scsi: lpfc: Fix 16gb hbas failing cq create.
+
+  * [LTCTest][OPAL][OP920] cpupower idle-info is not listing stop4 and stop5
+    idle states when all CORES are guarded (LP: #1771780)
+    - powerpc/powernv/cpuidle: Init all present cpus for deep states
+
+  * Huawei 25G/100G Network Adapters Unsupported (LP: #1770970)
+    - net-next/hinic: add pci device ids for 25ge and 100ge card
+
+  * Expose arm64 CPU topology to userspace (LP: #1770231)
+    - drivers: base: cacheinfo: move cache_setup_of_node()
+    - drivers: base: cacheinfo: setup DT cache properties early
+    - cacheinfo: rename of_node to fw_token
+    - arm64/acpi: Create arch specific cpu to acpi id helper
+    - ACPI/PPTT: Add Processor Properties Topology Table parsing
+    - [Config] CONFIG_ACPI_PPTT=y
+    - ACPI: Enable PPTT support on ARM64
+    - drivers: base cacheinfo: Add support for ACPI based firmware tables
+    - arm64: Add support for ACPI based firmware tables
+    - arm64: topology: rename cluster_id
+    - arm64: topology: enable ACPI/PPTT based CPU topology
+    - ACPI: Add PPTT to injectable table list
+    - arm64: topology: divorce MC scheduling domain from core_siblings
+
+  * Vcs-Git header on bionic linux source package points to zesty git tree
+    (LP: #1766055)
+    - [Packaging]: Update Vcs-Git
+
+  * Request to revert SAUCE patches in the 18.04 SRU and update with upstream
+    version (LP: #1768431)
+    - scsi: cxlflash: Handle spurious interrupts
+    - scsi: cxlflash: Remove commmands from pending list on timeout
+    - scsi: cxlflash: Synchronize reset and remove ops
+    - SAUCE: (no-up) cxlflash: OCXL diff between v2 and v3
+
+  * hisi_sas robustness fixes (LP: #1774466)
+    - scsi: hisi_sas: delete timer when removing hisi_sas driver
+    - scsi: hisi_sas: print device id for errors
+    - scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
+    - scsi: hisi_sas: check host frozen before calling "done" function
+    - scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
+    - scsi: hisi_sas: stop controller timer for reset
+    - scsi: hisi_sas: update PHY linkrate after a controller reset
+    - scsi: hisi_sas: change slot index allocation mode
+    - scsi: hisi_sas: Change common allocation mode of device id
+    - scsi: hisi_sas: Reset disks when discovered
+    - scsi: hisi_sas: Create a scsi_host_template per HW module
+    - scsi: hisi_sas: Init disks after controller reset
+    - scsi: hisi_sas: Try wait commands before before controller reset
+    - scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
+    - scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
+    - scsi: hisi_sas: Terminate STP reject quickly for v2 hw
+    - scsi: hisi_sas: Fix return value when get_free_slot() failed
+    - scsi: hisi_sas: Mark PHY as in reset for nexus reset
+
+  * hisi_sas: Support newer v3 hardware (LP: #1774467)
+    - scsi: hisi_sas: update RAS feature for later revision of v3 HW
+    - scsi: hisi_sas: check IPTT is valid before using it for v3 hw
+    - scsi: hisi_sas: fix PI memory size
+    - scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
+    - scsi: hisi_sas: remove redundant handling to event95 for v3
+    - scsi: hisi_sas: add readl poll timeout helper wrappers
+    - scsi: hisi_sas: workaround a v3 hw hilink bug
+    - scsi: hisi_sas: Add LED feature for v3 hw
+
+  * hisi_sas: improve performance by optimizing DQ locking (LP: #1774472)
+    - scsi: hisi_sas: optimise the usage of DQ locking
+    - scsi: hisi_sas: relocate smp sg map
+    - scsi: hisi_sas: make return type of prep functions void
+    - scsi: hisi_sas: allocate slot buffer earlier
+    - scsi: hisi_sas: Don't lock DQ for complete task sending
+    - scsi: hisi_sas: Use device lock to protect slot alloc/free
+    - scsi: hisi_sas: add check of device in hisi_sas_task_exec()
+    - scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
+
+  * FS-Cache: Assertion failed: FS-Cache: 6 == 5 is false (LP: #1774336)
+    - SAUCE: CacheFiles: fix a read_waiter/read_copier race
+
+  * enable mic-mute hotkey and led on Lenovo M820z and M920z (LP: #1774306)
+    - ALSA: hda/realtek - Enable mic-mute hotkey for several Lenovo AIOs
+
+  * hns3 driver updates (LP: #1768670)
+    - net: hns3: Remove error log when getting pfc stats fails
+    - net: hns3: fix to correctly fetch l4 protocol outer header
+    - net: hns3: Fixes the out of bounds access in hclge_map_tqp
+    - net: hns3: Fixes the error legs in hclge_init_ae_dev function
+    - net: hns3: fix for phy_addr error in hclge_mac_mdio_config
+    - net: hns3: Fix to support autoneg only for port attached with phy
+    - net: hns3: fix a dead loop in hclge_cmd_csq_clean
+    - net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
+    - net: hns3: Remove packet statistics in the range of 8192~12287
+    - net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
+    - net: hns3: Fix for setting mac address when resetting
+    - net: hns3: remove add/del_tunnel_udp in hns3_enet module
+    - net: hns3: fix for cleaning ring problem
+    - net: hns3: refactor the loopback related function
+    - net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
+    - net: hns3: Fix for the null pointer problem occurring when initializing
+      ae_dev failed
+    - net: hns3: Add a check for client instance init state
+    - net: hns3: Change return type of hnae3_register_ae_dev
+    - net: hns3: Change return type of hnae3_register_ae_algo
+    - net: hns3: Change return value in hnae3_register_client
+    - net: hns3: Fixes the back pressure setting when sriov is enabled
+    - net: hns3: Fix for fiber link up problem
+    - net: hns3: Add support of .sriov_configure in HNS3 driver
+    - net: hns3: Fixes the missing PCI iounmap for various legs
+    - net: hns3: Fixes error reported by Kbuild and internal review
+    - net: hns3: Fixes API to fetch ethernet header length with kernel default
+    - net: hns3: cleanup of return values in hclge_init_client_instance()
+    - net: hns3: Fix the missing client list node initialization
+    - net: hns3: Fix for hns3 module is loaded multiple times problem
+    - net: hns3: Use enums instead of magic number in hclge_is_special_opcode
+    - net: hns3: Fix for netdev not running problem after calling net_stop and
+      net_open
+    - net: hns3: Fixes kernel panic issue during rmmod hns3 driver
+    - net: hns3: Fix for CMDQ and Misc. interrupt init order problem
+    - net: hns3: Updates RX packet info fetch in case of multi BD
+    - net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
+    - net: hns3: Add STRP_TAGP field support for hardware revision 0x21
+    - net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
+    - net: hns3: Fix for PF mailbox receving unknown message
+    - net: hns3: Fixes the state to indicate client-type initialization
+    - net: hns3: Fixes the init of the VALID BD info in the descriptor
+    - net: hns3: Removes unnecessary check when clearing TX/RX rings
+    - net: hns3: Clear TX/RX rings when stopping port & un-initializing client
+    - net: hns3: Remove unused led control code
+    - net: hns3: Adds support for led locate command for copper port
+    - net: hns3: Fixes initalization of RoCE handle and makes it conditional
+    - net: hns3: Disable vf vlan filter when vf vlan table is full
+    - net: hns3: Add support for IFF_ALLMULTI flag
+    - net: hns3: Add repeat address checking for setting mac address
+    - net: hns3: Fix setting mac address error
+    - net: hns3: Fix for service_task not running problem after resetting
+    - net: hns3: Fix for hclge_reset running repeatly problem
+    - net: hns3: Fix for phy not link up problem after resetting
+    - net: hns3: Add missing break in misc_irq_handle
+    - net: hns3: Fix for vxlan tx checksum bug
+    - net: hns3: Optimize the PF's process of updating multicast MAC
+    - net: hns3: Optimize the VF's process of updating multicast MAC
+    - SAUCE: {topost} net: hns3: add support for serdes loopback selftest
+    - SAUCE: {topost} net: hns3: RX BD information valid only in last BD except
+      VLD bit and buffer size
+    - SAUCE: {topost} net: hns3: remove hclge_get_vector_index from
+      hclge_bind_ring_with_vector
+    - SAUCE: {topost} net: hns3: rename the interface for init_client_instance and
+      uninit_client_instance
+    - SAUCE: {topost} net: hns3: add vector status check before free vector
+    - SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
+    - SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
+    - SAUCE: {topost} net: hns3: extraction an interface for state state
+      init|uninit
+    - SAUCE: {topost} net: hns3: print the ret value in error information
+    - SAUCE: {topost} net: hns3: remove the Redundant put_vector in
+      hns3_client_uninit
+    - SAUCE: {topost} net: hns3: add unlikely for error check
+    - SAUCE: {topost} net: hns3: remove back in struct hclge_hw
+    - SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
+    - SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
+    - SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
+    - SAUCE: {topost} net: hns3: remove some redundant assignments
+    - SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
+    - SAUCE: {topost} net: hns3: using modulo for cyclic counters in
+      hclge_cmd_send
+    - SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
+    - SAUCE: {topost} net: hns3: remove some unused members of some structures
+    - SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
+    - SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of
+      kzalloc/dma_map_single
+    - SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
+    - SAUCE: {topost} net: hns3: fix unused function warning in VF driver
+    - SAUCE: {topost} net: hns3: remove some redundant assignments
+    - SAUCE: {topost} net: hns3: standardize the handle of return value
+    - SAUCE: {topost} net: hns3: remove extra space and brackets
+    - SAUCE: {topost} net: hns3: fix unreasonable code comments
+    - SAUCE: {topost} net: hns3: use decimal for bit offset macros
+    - SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
+    - SAUCE: {topost} net: hns3: fix mislead parameter name
+    - SAUCE: {topost} net: hns3: remove unused struct member and definition
+    - SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
+    - SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
+    - SAUCE: {topost} net: hns3: optimize the process of notifying roce client
+    - SAUCE: {topost} net: hns3: Add calling roce callback function when link
+      status change
+    - SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
+    - SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
+    - SAUCE: {topost} net: hns3: fix for waterline not setting correctly
+    - SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
+    - SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
+    - SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
+    - SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
+    - SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
+    - SAUCE: {topost} net: hns3: remove the warning when clear reset cause
+    - SAUCE: {topost} net: hns3: Use roce handle when calling roce callback
+      function
+    - SAUCE: {topost} net: hns3: prevent sending command during global or core
+      reset
+    - SAUCE: {topost} net: hns3: modify the order of initializeing command queue
+      register
+    - SAUCE: {topost} net: hns3: reset net device with rtnl_lock
+    - SAUCE: {topost} net: hns3: prevent to request reset frequently
+    - SAUCE: {topost} net: hns3: correct reset event status register
+    - SAUCE: {topost} net: hns3: separate roce from nic when resetting
+    - SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
+    - SAUCE: {topost} net: hns3: fix return value error in
+      hns3_reset_notify_down_enet
+    - SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation
+      while resetting
+    - SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
+    - SAUCE: {topost} net: hns3: fix for using wrong mask and shift in
+      hclge_get_ring_chain_from_mbx
+    - SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
+    - SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
+    - SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
+    - SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
+
+  * CVE-2018-7755
+    - SAUCE: floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
+
+  * Incorrect blacklist of bcm2835_wdt (LP: #1766052)
+    - [Packaging] Fix missing watchdog for Raspberry Pi
+
+  * kernel: Fix arch random implementation (LP: #1775391)
+    - s390/archrandom: Rework arch random implementation.
+
+  * [Ubuntu 1804][boston][ixgbe] EEH causes kernel BUG at /build/linux-
+    jWa1Fv/linux-4.15.0/drivers/pci/msi.c:352 (i2S) (LP: #1776389)
+    - ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device
+
+  * Cosmic update to v4.17.2 stable release (LP: #1779117)
+    - crypto: chelsio - request to HW should wrap
+    - blkdev_report_zones_ioctl(): Use vmalloc() to allocate large buffers
+    - KVM: X86: Fix reserved bits check for MOV to CR3
+    - KVM: x86: introduce linear_{read,write}_system
+    - kvm: fix typo in flag name
+    - kvm: nVMX: Enforce cpl=0 for VMX instructions
+    - KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and
+      kvm_write_guest_virt_system
+    - kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access
+    - staging: android: ion: Switch to pr_warn_once in ion_buffer_destroy
+    - NFC: pn533: don't send USB data off of the stack
+    - usbip: vhci_sysfs: fix potential Spectre v1
+    - usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
+    - usb-storage: Add compatibility quirk flags for G-Technologies G-Drive
+    - Input: xpad - add GPD Win 2 Controller USB IDs
+    - phy: qcom-qusb2: Fix crash if nvmem cell not specified
+    - usb: core: message: remove extra endianness conversion in
+      usb_set_isoch_delay
+    - usb: typec: wcove: Remove dependency on HW FSM
+    - usb: gadget: function: printer: avoid wrong list handling in printer_write()
+    - usb: gadget: udc: renesas_usb3: fix double phy_put()
+    - usb: gadget: udc: renesas_usb3: should remove debugfs
+    - usb: gadget: udc: renesas_usb3: should call pm_runtime_enable() before add
+      udc
+    - usb: gadget: udc: renesas_usb3: should call devm_phy_get() before add udc
+    - usb: gadget: udc: renesas_usb3: should fail if devm_phy_get() returns error
+    - usb: gadget: udc: renesas_usb3: disable the controller's irqs for
+      reconnecting
+    - serial: sh-sci: Stop using printk format %pCr
+    - tty/serial: atmel: use port->name as name in request_irq()
+    - serial: samsung: fix maxburst parameter for DMA transactions
+    - serial: 8250: omap: Fix idling of clocks for unused uarts
+    - vmw_balloon: fixing double free when batching mode is off
+    - doc: fix sysfs ABI documentation
+    - arm64: defconfig: Enable CONFIG_PINCTRL_MT7622 by default
+    - tty: pl011: Avoid spuriously stuck-off interrupts
+    - crypto: ccree - correct host regs offset
+    - Input: goodix - add new ACPI id for GPD Win 2 touch screen
+    - Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
+    - crypto: caam - strip input zeros from RSA input buffer
+    - crypto: caam - fix DMA mapping dir for generated IV
+    - crypto: caam - fix IV DMA mapping and updating
+    - crypto: caam/qi - fix IV DMA mapping and updating
+    - crypto: caam - fix size of RSA prime factor q
+    - crypto: cavium - Fix fallout from CONFIG_VMAP_STACK
+    - crypto: cavium - Limit result reading attempts
+    - crypto: vmx - Remove overly verbose printk from AES init routines
+    - crypto: vmx - Remove overly verbose printk from AES XTS init
+    - crypto: omap-sham - fix memleak
+    - Linux 4.17.2
+
+  * Cosmic update to v4.17.1 stable release (LP: #1779116)
+    - netfilter: nf_flow_table: attach dst to skbs
+    - bnx2x: use the right constant
+    - ip6mr: only set ip6mr_table from setsockopt when ip6mr_new_table succeeds
+    - ipv6: omit traffic class when calculating flow hash
+    - l2tp: fix refcount leakage on PPPoL2TP sockets
+    - netdev-FAQ: clarify DaveM's position for stable backports
+    - net: metrics: add proper netlink validation
+    - net/packet: refine check for priv area size
+    - rtnetlink: validate attributes in do_setlink()
+    - sctp: not allow transport timeout value less than HZ/5 for hb_timer
+    - team: use netdev_features_t instead of u32
+    - vrf: check the original netdevice for generating redirect
+    - net: dsa: b53: Fix for brcm tag issue in Cygnus SoC
+    - ipmr: fix error path when ipmr_new_table fails
+    - PCI: hv: Do not wait forever on a device that has disappeared
+    - Linux 4.17.1
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: crypto: thunderx_zip: Fix fallout from
+      CONFIG_VMAP_STACK"
+    - Revert "UBUNTU: SAUCE: cred: Add clone_cred() interface"
+    - SAUCE: apparmor: userspace queries
+    - SAUCE: apparmor: patch to provide compatibility with v2.x net rules
+    - SAUCE: apparmor: af_unix mediation
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 28 Jun 2018 08:03:32 -0500
+
+linux (4.17.0-2.3) cosmic; urgency=medium
+
+  * linux: 4.17.0-2.3 -proposed tracker (LP: #1776276)
+
+  * Miscellaneous Ubuntu changes
+    - Config: remove IrDA from annotations
+    - Config: remove scsi drivers from annotations
+    - Config: remove BT_HCIBTUART from annotations
+    - Config: pstore zlib support was renamed
+    - Config: disable NVRAM for armhf on annotations
+    - Config: Disable VT on s390x
+    - Config: Update SSB and B43/B44 options
+    - Config: some options not supported on some arches anymore
+    - Config: renamed and removed options
+    - Config: TCG_CRB is required for IMA on ACPI systems
+    - Config: EXTCON_AXP288 depends on X86
+    - Config: CONFIG_FSI depends on OF
+    - Config: DRM_RCAR_LVDS now depends on DRM
+    - CONFIG: Allow CONFIG_LEDS_MLXCPLD for i386
+    - Config: Enable HINIC on arm64
+    - Config: Set PPS and PTP_1588_CLOCK as y
+    - Config: Some NF_TABLES options are built-in now
+    - Config: GENERIC_CPU for ppc64el
+    - Config: KEXEC_FILE=n for s390x
+    - Config: CRYPTO_DEFLATE is needed by PSTORE_DEFLATE_COMPRESS
+    - Config: Disable STM32 support
+    - Config: Enable FORTIFY_SOURCE for armhf
+    - Config: use STRONG instead of AUTO for CC_STACKPROTECTOR
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.17
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Mon, 11 Jun 2018 15:22:10 -0300
+
+linux (4.17.0-1.2) cosmic; urgency=medium
+
+  [ Seth Forshee ]
+  * [Config] enable EDAC_DEBUG on ARM64 (LP: #1772516)
+    - [Config]: set CONFIG_EDAC_DEBUG=y for ARM64
+
+  * Ubuntu 18.04 kernel crashed while in degraded mode (LP: #1770849)
+    - SAUCE: powerpc/perf: Fix memory allocation for core-imc based on
+      num_possible_cpus()
+
+  * Integrated Webcam Realtek Integrated_Webcam_HD (0bda:58f4) not working in
+    DELL XPS 13 9370 with firmware 1.50 (LP: #1763748)
+    - SAUCE: media: uvcvideo: Support realtek's UVC 1.5 device
+
+  * Switch Build-Depends: transfig to fig2dev (LP: #1770770)
+    - [Config] update Build-Depends: transfig to fig2dev
+
+  * update-initramfs not adding i915 GuC firmware for Kaby Lake, firmware fails
+    to load (LP: #1728238)
+    - Revert "UBUNTU: SAUCE: (no-up) i915: Remove MODULE_FIRMWARE statements for
+      unreleased firmware"
+
+  * No driver for Huawei network adapters on arm64 (LP: #1769899)
+    - net-next/hinic: add arm64 support
+
+  * linux-snapdragon: reduce EPROBEDEFER noise during boot (LP: #1768761)
+    - [Config] snapdragon: DRM_I2C_ADV7511=y
+
+  * Add d-i support for Huawei NICs (LP: #1767490)
+    - d-i: add hinic to nic-modules udeb
+
+  * Acer Swift sf314-52 power button not managed  (LP: #1766054)
+    - SAUCE: platform/x86: acer-wmi: add another KEY_POWER keycode
+
+  * Include nfp driver in linux-modules (LP: #1768526)
+    - [Config] Add nfp.ko to generic inclusion list
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Import aufs driver
+    - [Config] Enable AUFS config options
+    - SAUCE: (efi-lockdown) Fix for module sig verification
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Don't print secure boot state from the efi stub
+    - [Config] CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y
+    - SAUCE: (efi-lockdown) really lock down kernel under EFI secure boot
+    - SAUCE: (noup) Update spl to 0.7.5-1ubuntu3, zfs to 0.7.5-1ubuntu17
+    - enable zfs build
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) ima: require secure_boot rules in
+      lockdown mode"
+    - Rebased to v4.17-rc6
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 22 May 2018 14:48:13 -0300
+
+linux (4.17.0-0.1) bionic; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.17-rc4
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 08 May 2018 16:38:51 -0300
+
+linux (4.17.0-0.0) bionic; urgency=medium
+
+  * Dummy entry.
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 27 Apr 2018 11:01:13 -0300
+
+linux (4.16.0-4.5) bionic; urgency=medium
+
+  * [18.04 FEAT] Add kvm_stat from kernel tree (LP: #1734130)
+    - tools/kvm_stat: Fix python3 syntax
+    - tools/kvm_stat: Don't use deprecated file()
+    - tools/kvm_stat: Remove unused function
+    - [Packaging] Add linux-tools-host package for VM host tools
+    - [Config] do_tools_host=true for amd64
+
+  * [Featire] CNL: Enable RAPL support (LP: #1685712)
+    - powercap: RAPL: Add support for Cannon Lake
+
+  * Bionic update to v4.16.2 stable release (LP: #1763388)
+    - sparc64: Oracle DAX driver depends on SPARC64
+    - arp: fix arp_filter on l3slave devices
+    - net: dsa: Discard frames from unused ports
+    - net/ipv6: Increment OUTxxx counters after netfilter hook
+    - net/sched: fix NULL dereference in the error path of tcf_bpf_init()
+    - pptp: remove a buggy dst release in pptp_connect()
+    - sctp: do not leak kernel memory to user space
+    - sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
+    - vlan: also check phy_driver ts_info for vlan's real device
+    - net: fool proof dev_valid_name()
+    - ip_tunnel: better validate user provided tunnel names
+    - ipv6: sit: better validate user provided tunnel names
+    - ip6_gre: better validate user provided tunnel names
+    - ip6_tunnel: better validate user provided tunnel names
+    - vti6: better validate user provided tunnel names
+    - net_sched: fix a missing idr_remove() in u32_delete_key()
+    - nfp: use full 40 bits of the NSP buffer address
+    - Linux 4.16.2
+
+  * sky2 gigabit ethernet driver sometimes stops working after lid-open resume
+    from sleep (88E8055) (LP: #1758507) // Bionic update to v4.16.2 stable
+    release (LP: #1763388)
+    - sky2: Increase D3 delay to sky2 stops working after suspend
+
+  * Merge the linux-snapdragon kernel into bionic master/snapdragon
+    (LP: #1763040)
+    - arm64: defconfig: enable REMOTEPROC
+    - arm64: defconfig: enable QCOM audio drivers for APQ8016 and DB410c
+    - kernel: configs; add distro.config
+    - arm64: configs: enable WCN36xx
+    - kernel: distro.config: enable debug friendly USB network adpater
+    - arm64: configs: enable QCOM Venus
+    - arm64: defconfig: Enable a53/apcs and avs
+    - arm64: defconfig: enable ondemand governor as default
+    - arm64: defconfig: enable QCOM_TSENS
+    - kernel: configs: enable dm_mod and dm_crypt
+    - Force the SMD regulator driver to be compiled-in
+    - arm64: defconfig: enable CFG80211_DEFAULT_PS by default
+    - arm64: configs: enable BT_QCOMSMD
+    - kernel: configs: add more USB net drivers
+    - arm64: defconfig: disable ANALOG_TV and DIGITAL_TV
+    - arm64: configs: Enable camera drivers
+    - kernel: configs: add freq stat to sysfs
+    - arm64: defconfig: enable CONFIG_USB_CONFIGFS_F_FS by default
+    - arm64: defconfig: Enable QRTR features
+    - kernel: configs: set USB_CONFIG_F_FS in distro.config
+    - kernel: distro.config: enable 'schedutil' CPUfreq governor
+    - kernel: distro.config: enable 'fq' and 'fq_codel' qdiscs
+    - kernel: distro.config: enable 'BBR' TCP congestion algorithm
+    - arm64: defconfig: enable LEDS_QCOM_LPG
+    - HACK: drm/msm/iommu: Remove runtime_put calls in map/unmap
+    - power: avs: Add support for CPR (Core Power Reduction)
+    - power: avs: cpr: Use raw mem access for qfprom
+    - power: avs: cpr: fix with new reg_sequence structures
+    - power: avs: cpr: Register with cpufreq-dt
+    - regulator: smd: Add floor and corner operations
+    - PM / OPP: Support adjusting OPP voltages at runtime
+    - PM / OPP: Drop RCU usage in dev_pm_opp_adjust_voltage()
+    - PM / OPP: HACK: Allow to set regulator without opp_list
+    - PM / OPP: Add a helper to get an opp regulator for device
+    - cpufreq: Add apq8016 to cpufreq-dt-platdev blacklist
+    - regulator: smd: Allow REGULATOR_QCOM_SMD_RPM=m
+    - ov5645: I2C address change
+    - i2c: Add Qualcomm Camera Control Interface driver
+    - camss: vfe: Skip first four frames from sensor
+    - camss: Do not register if no cameras are present
+    - i2c-qcom-cci: Fix run queue completion timeout
+    - i2c-qcom-cci: Fix I2C address bug
+    - media: ov5645: Fix I2C address
+    - drm/bridge/adv7511: Delay clearing of HPD interrupt status
+    - HACK: drm/msm/adv7511: Don't rely on interrupts for EDID parsing
+    - leds: Add driver for Qualcomm LPG
+    - wcn36xx: Fix warning due to duplicate scan_completed notification
+    - arm64: dts: Add CPR DT node for msm8916
+    - arm64: dts: add spmi-regulator nodes
+    - arm64: dts: msm8916: Add cpufreq support
+    - arm64: dts: msm8916: Add a shared CPU opp table
+    - arm64: dts: msm8916: Add cpu cooling maps
+    - arm64: dts: pm8916: Mark the s2 regulator as always-on
+    - arm64: dts: qcom: msm8916: Add msm8916 A53 PLL DT node
+    - arm64: dts: qcom: msm8916: Use the new APCS mailbox driver
+    - arm64: dts: qcom: msm8916: Add clock properties to the APCS node
+    - dt-bindings: media: Binding document for Qualcomm Camera Control Interface
+      driver
+    - MAINTAINERS: Add Qualcomm Camera Control Interface driver
+    - DT: leds: Add Qualcomm Light Pulse Generator binding
+    - arm64: dts: qcom: msm8996: Add mpp and lpg blocks
+    - arm64: dts: qcom: Add pwm node for pm8916
+    - arm64: dts: qcom: Add user LEDs on db820c
+    - arm64: dts: qcom: Add WiFI/BT LEDs on db820c
+    - ARM: dts: qcom: Add LPG node to pm8941
+    - ARM: dts: qcom: honami: Add LPG node and RGB LED
+    - arm64: dts: qcom: Add Camera Control Interface support
+    - arm64: dts: qcom: Add apps_iommu vfe child node
+    - arm64: dts: qcom: Add camss device node
+    - arm64: dts: qcom: Add ov5645 device nodes
+    - arm64: dts: msm8916: Fix camera sensors I2C addresses
+    - arm: dts: qcom: db410c: Enable PWM signal on MPP4
+    - packaging: arm64: add a uboot flavour - part1
+    - packaging: arm64: add a uboot flavour - part2
+    - packaging: arm64: add a uboot flavour - part3
+    - packaging: arm64: add a uboot flavour - part4
+    - packaging: arm64: add a uboot flavour - part5
+    - packaging: arm64: rename uboot flavour to snapdragon
+    - [Config] updateconfigs after qcomlt import
+    - [Config] arm64: snapdragon: COMMON_CLK_QCOM=y
+    - [Config] arm64: snapdragon: MSM_GCC_8916=y
+    - [Config] arm64: snapdragon: REGULATOR_FIXED_VOLTAGE=y
+    - [Config] arm64: snapdragon: PINCTRL_MSM8916=y
+    - [Config] arm64: snapdragon: HWSPINLOCK_QCOM=y
+    - [Config] arm64: snapdragon: SPMI=y, SPMI_MSM_PMIC_ARB=y
+    - [Config] arm64: snapdragon: REGMAP_SPMI=y, PINCTRL_QCOM_SPMI_PMIC=y
+    - [Config] arm64: snapdragon: REGULATOR_QCOM_SPMI=y
+    - [Config] arm64: snapdragon: MFD_SPMI_PMIC=y
+    - [Config] arm64: snapdragon: QCOM_SMEM=y
+    - [Config] arm64: snapdragon: RPMSG=y, RPMSG_QCOM_SMD=y
+    - [Config] arm64: snapdragon: QCOM_SMD_RPM=y, REGULATOR_QCOM_SMD_RPM=y
+    - [Config] arm64: snapdragon: QCOM_CLK_SMD_RPM=y
+    - [Config] arm64: snapdragon: QCOM_BAM_DMA=y
+    - [Config] arm64: snapdragon: QCOM_HIDMA=y, QCOM_HIDMA_MGMT=y
+    - [Config] arm64: snapdragon: QCOM_CPR=y
+    - [Config] arm64: snapdragon: QCOM_QFPROM=y, QCOM_TSENS=y
+    - [Config] arm64: snapdragon: MMC_SDHCI=y, MMC_SDHCI_PLTFM=y, MMC_SDHCI_MSM=y
+    - [Config] turn off DRM_MSM_REGISTER_LOGGING
+    - [Config] arm64: snapdragon: I2C_QUP=y
+    - [Config] arm64: snapdragon: SPI_QUP=y
+    - [Config] arm64: snapdragon: USB_ULPI_BUS=y, PHY_QCOM_USB_HS=y
+    - [Config] arm64: snapdragon: QCOM_APCS_IPC=y
+    - [Config] arm64: snapdragon: QCOM_WCNSS_CTRL=y
+    - [Config] arm64: snapdragon: QCOM_SMSM=y
+    - [Config] arm64: snapdragon: QCOM_SMP2P=y
+    - [Config] arm64: snapdragon: DRM_MSM=y
+    - [Config] arm64: snapdragon: SND_SOC=y
+    - [Config] arm64: snapdragon: QCOM_WCNSS_PIL=m
+    - [Config] arm64: snapdragon: INPUT_PM8941_PWRKEY=y
+    - [Config] arm64: snapdragon: MEDIA_SUBDRV_AUTOSELECT=y, VIDEO_OV5645=m
+    - [Config] arm64: snapdragon: SND_SOC_APQ8016_SBC=y, SND_SOC_LPASS_APQ8016=y
+    - [Config] arm64: snapdragon: SND_SOC_MSM8916_WCD_ANALOG=y,
+      SND_SOC_MSM8916_WCD_DIGITAL=y
+    - SAUCE: media: ov5645: skip address change if dt addr == default addr
+    - SAUCE: drm/msm/adv7511: wrap hacks under CONFIG_ADV7511_SNAPDRAGON_HACKS
+      #ifdefs
+    - [Config] arm64: snapdragon: ADV7511_SNAPDRAGON_HACKS=y
+    - [Packaging] fix up snapdragon abi paths
+
+  * LSM stacking patches for bionic (LP: #1763062)
+    - SAUCE: LSM stacking: procfs: add smack subdir to attrs
+    - SAUCE: LSM stacking: LSM: Manage credential security blobs
+    - SAUCE: LSM stacking: LSM: Manage file security blobs
+    - SAUCE: LSM stacking: LSM: Manage task security blobs
+    - SAUCE: LSM stacking: LSM: Manage remaining security blobs
+    - SAUCE: LSM stacking: LSM: General stacking
+    - SAUCE: LSM stacking: fixup initialize task->security
+    - SAUCE: LSM stacking: fixup: alloc_task_ctx is dead code
+    - SAUCE: LSM stacking: add support for stacking getpeersec_stream
+    - SAUCE: LSM stacking: add stacking support to apparmor network hooks
+    - SAUCE: LSM stacking: fixup apparmor stacking enablement
+    - SAUCE: LSM stacking: fixup stacking kconfig
+    - SAUCE: LSM stacking: allow selecting multiple LSMs using kernel boot params
+    - SAUCE: LSM stacking: provide prctl interface for setting context
+    - SAUCE: LSM stacking: inherit current display LSM
+    - SAUCE: LSM stacking: keep an index for each registered LSM
+    - SAUCE: LSM stacking: verify display LSM
+    - SAUCE: LSM stacking: provide a way to specify the default display lsm
+    - SAUCE: LSM stacking: make sure LSM blob align on 64 bit boundaries
+    - SAUCE: LSM stacking: add /proc/<pid>/attr/display_lsm
+    - SAUCE: LSM stacking: add Kconfig to set default display LSM
+    - SAUCE: LSM stacking: add configs for LSM stacking
+    - SAUCE: LSM stacking: add apparmor and selinux proc dirs
+    - SAUCE: LSM stacking: remove procfs context interface
+
+  * linux 4.13.0-13.14 ADT test failure with linux 4.13.0-13.14
+    (LP: #1720779) // LSM stacking patches for bionic (LP: #1763062)
+    - SAUCE: LSM stacking: check for invalid zero sized writes
+
+  * Support cq/rq record doorbell for RDMA on HSilicon hip08 systems
+    (LP: #1762755)
+    - RDMA/hns: Support rq record doorbell for the user space
+    - RDMA/hns: Support cq record doorbell for the user space
+    - RDMA/hns: Support rq record doorbell for kernel space
+    - RDMA/hns: Support cq record doorbell for kernel space
+    - RDMA/hns: Fix cqn type and init resp
+    - RDMA/hns: Fix init resp when alloc ucontext
+    - RDMA/hns: Fix cq record doorbell enable in kernel
+
+  * Replace LPC patchset with upstream version (LP: #1762758)
+    - Revert "UBUNTU: SAUCE: MAINTAINERS: Add maintainer for HiSilicon LPC driver"
+    - Revert "UBUNTU: SAUCE: HISI LPC: Add ACPI support"
+    - Revert "UBUNTU: SAUCE: ACPI / scan: do not enumerate Indirect IO host
+      children"
+    - Revert "UBUNTU: SAUCE: HISI LPC: Support the LPC host on Hip06/Hip07 with DT
+      bindings"
+    - Revert "UBUNTU: SAUCE: OF: Add missing I/O range exception for indirect-IO
+      devices"
+    - Revert "UBUNTU: SAUCE: PCI: Apply the new generic I/O management on PCI IO
+      hosts"
+    - Revert "UBUNTU: SAUCE: PCI: Add fwnode handler as input param of
+      pci_register_io_range()"
+    - Revert "UBUNTU: SAUCE: PCI: Remove unused __weak attribute in
+      pci_register_io_range()"
+    - Revert "UBUNTU: SAUCE: LIB: Introduce a generic PIO mapping method"
+    - lib: Add generic PIO mapping method
+    - PCI: Remove __weak tag from pci_register_io_range()
+    - PCI: Add fwnode handler as input param of pci_register_io_range()
+    - PCI: Apply the new generic I/O management on PCI IO hosts
+    - of: Add missing I/O range exception for indirect-IO devices
+    - HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
+    - ACPI / scan: Rename acpi_is_serial_bus_slave() for more general use
+    - ACPI / scan: Do not enumerate Indirect IO host children
+    - HISI LPC: Add ACPI support
+    - MAINTAINERS: Add John Garry as maintainer for HiSilicon LPC driver
+
+  * Enable Tunneled Operations on POWER9 (LP: #1762448)
+    - powerpc/powernv: Enable tunneled operations
+    - cxl: read PHB indications from the device tree
+
+  * PSL traces reset after PERST for debug AFU image (LP: #1762462)
+    - cxl: Enable NORST bit in PSL_DEBUG register for PSL9
+
+  * NFS + sec=krb5 is broken (LP: #1759791)
+    - sunrpc: remove incorrect HMAC request initialization
+
+  * Raspberry Pi 3 microSD support missing from the installer (LP: #1729128)
+    - d-i: add bcm2835 to block-modules
+
+  * Backport USB core quirks (LP: #1762695)
+    - usb: core: Add "quirks" parameter for usbcore
+    - usb: core: Copy parameter string correctly and remove superfluous null check
+    - usb: core: Add USB_QUIRK_DELAY_CTRL_MSG to usbcore quirks
+
+  * [Ubuntu 18.04] cryptsetup: 'device-mapper: reload ioctl on  failed' when
+    setting up a second end-to-end encrypted disk (LP: #1762353)
+    - SAUCE: s390/crypto: Adjust s390 aes and paes cipher
+
+  * System Z {kernel} UBUNTU18.04 wrong kernel config (LP: #1762719)
+    - s390: move nobp parameter functions to nospec-branch.c
+    - s390: add automatic detection of the spectre defense
+    - s390: report spectre mitigation via syslog
+    - s390: add sysfs attributes for spectre
+    - [Config] CONFIG_EXPOLINE_AUTO=y, CONFIG_KERNEL_NOBP=n for s390
+    - s390: correct nospec auto detection init order
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5715
+    - powerpc/64s: Wire up cpu_show_spectre_v2()
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5753
+    - powerpc/64s: Wire up cpu_show_spectre_v1()
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5754
+    - powerpc/rfi-flush: Move the logic to avoid a redo into the debugfs code
+    - powerpc/rfi-flush: Make it possible to call setup_rfi_flush() again
+    - powerpc/rfi-flush: Always enable fallback flush on pseries
+    - powerpc/rfi-flush: Differentiate enabled and patched flush types
+    - powerpc/rfi-flush: Call setup_rfi_flush() after LPM migration
+    - powerpc/64s: Move cpu_show_meltdown()
+    - powerpc/64s: Enhance the information in cpu_show_meltdown()
+    - powerpc/powernv: Use the security flags in pnv_setup_rfi_flush()
+    - powerpc/pseries: Use the security flags in pseries_setup_rfi_flush()
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5715 //
+    CVE-2017-5753 // CVE-2017-5754
+    - powerpc/pseries: Add new H_GET_CPU_CHARACTERISTICS flags
+    - powerpc: Add security feature flags for Spectre/Meltdown
+    - powerpc/pseries: Set or clear security feature flags
+    - powerpc/powernv: Set or clear security feature flags
+
+  * Hisilicon network subsystem 3 support (LP: #1761610)
+    - net: hns3: export pci table of hclge and hclgevf to userspace
+    - d-i: Add hns3 drivers to nic-modules
+
+  * "ip a" command on a guest VM shows UNKNOWN status (LP: #1761534)
+    - virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
+
+  * perf vendor events arm64: Enable JSON events for ThunderX2 B0 (LP: #1760712)
+    - perf vendor events: Drop incomplete multiple mapfile support
+    - perf vendor events: Fix error code in json_events()
+    - perf vendor events: Drop support for unused topic directories
+    - perf vendor events: Add support for pmu events vendor subdirectory
+    - perf vendor events arm64: Relocate ThunderX2 JSON to cavium subdirectory
+    - perf vendor events arm64: Relocate Cortex A53 JSONs to arm subdirectory
+    - perf vendor events: Add support for arch standard events
+    - perf vendor events arm64: Add armv8-recommended.json
+    - perf vendor events arm64: Fixup ThunderX2 to use recommended events
+    - perf vendor events arm64: fixup A53 to use recommended events
+    - perf vendor events arm64: add HiSilicon hip08 JSON file
+    - perf vendor events arm64: Enable JSON events for ThunderX2 B0
+
+  * Warning "cache flush timed out!" seen when unloading the cxl driver
+    (LP: #1762367)
+    - cxl: Check if PSL data-cache is available before issue flush request
+
+  * Bionic update to v4.16.1 stable release (LP: #1763170)
+    - bitmap: fix memset optimization on big-endian systems
+    - USB: serial: ftdi_sio: add RT Systems VX-8 cable
+    - USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator
+    - USB: serial: cp210x: add ELDAT Easywave RX09 id
+    - serial: 8250: Add Nuvoton NPCM UART
+    - mei: remove dev_err message on an unsupported ioctl
+    - /dev/mem: Avoid overwriting "err" in read_mem()
+    - media: usbtv: prevent double free in error case
+    - parport_pc: Add support for WCH CH382L PCI-E single parallel port card.
+    - crypto: lrw - Free rctx->ext with kzfree
+    - crypto: ccp - Fill the result buffer only on digest, finup, and final ops
+    - crypto: talitos - don't persistently map req_ctx->hw_context and
+      req_ctx->buf
+    - crypto: inside-secure - fix clock management
+    - crypto: testmgr - Fix incorrect values in PKCS#1 test vector
+    - crypto: talitos - fix IPsec cipher in length
+    - crypto: ahash - Fix early termination in hash walk
+    - crypto: caam - Fix null dereference at error path
+    - crypto: ccp - return an actual key size from RSA max_size callback
+    - crypto: arm,arm64 - Fix random regeneration of S_shipped
+    - crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one
+    - Bluetooth: hci_bcm: Add 6 new ACPI HIDs
+    - Btrfs: fix unexpected cow in run_delalloc_nocow
+    - siox: fix possible buffer overflow in device_add_store
+    - staging: comedi: ni_mio_common: ack ai fifo error interrupts.
+    - Revert "base: arch_topology: fix section mismatch build warnings"
+    - Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370
+    - Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list
+    - Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
+    - vt: change SGR 21 to follow the standards
+    - Fix slab name "biovec-(1<<(21-12))"
+    - signal: Correct the offset of si_pkey and si_lower in struct siginfo on m68k
+    - Linux 4.16.1
+
+  * [18.04][config] regression: nvme and nvme_core couldn't be built as modules
+    starting 4.15-rc2 (LP: #1759893)
+    - SAUCE: Revert "lightnvm: include NVM Express driver if OCSSD is selected for
+      build"
+    - [Config] CONFIG_BLK_DEV_NMVE=m
+
+  * FFe: Enable configuring resume offset via sysfs (LP: #1760106)
+    - PM / hibernate: Make passing hibernate offsets more friendly
+
+  * Ubuntu18.04:POWER9:DD2.2 - Unable to start a KVM guest with default machine
+    type(pseries-bionic) complaining "KVM implementation does not support
+    Transactional Memory, try cap-htm=off" (kvm) (LP: #1752026)
+    - powerpc: Use feature bit for RTC presence rather than timebase presence
+    - powerpc: Book E: Remove unused CPU_FTR_L2CSR bit
+    - powerpc: Free up CPU feature bits on 64-bit machines
+    - powerpc: Add CPU feature bits for TM bug workarounds on POWER9 v2.2
+    - powerpc/powernv: Provide a way to force a core into SMT4 mode
+    - KVM: PPC: Book3S HV: Work around transactional memory bugs in POWER9
+    - KVM: PPC: Book3S HV: Work around XER[SO] bug in fake suspend mode
+    - KVM: PPC: Book3S HV: Work around TEXASR bug in fake suspend state
+
+  * [Feature][CFL][ICL] [CNL]Thunderbolt support (Titan Ridge) (LP: #1730775)
+    - thunderbolt: Resume control channel after hibernation image is created
+    - thunderbolt: Serialize PCIe tunnel creation with PCI rescan
+    - thunderbolt: Handle connecting device in place of host properly
+    - thunderbolt: Do not overwrite error code when domain adding fails
+    - thunderbolt: Wait a bit longer for root switch config space
+    - thunderbolt: Wait a bit longer for ICM to authenticate the active NVM
+    - thunderbolt: Handle rejected Thunderbolt devices
+    - thunderbolt: Factor common ICM add and update operations out
+    - thunderbolt: Correct function name in kernel-doc comment
+    - thunderbolt: Add tb_switch_get()
+    - thunderbolt: Add tb_switch_find_by_route()
+    - thunderbolt: Add tb_xdomain_find_by_route()
+    - thunderbolt: Add constant for approval timeout
+    - thunderbolt: Move driver ready handling to struct icm
+    - thunderbolt: Add 'boot' attribute for devices
+    - thunderbolt: Add support for preboot ACL
+    - thunderbolt: Introduce USB only (SL4) security level
+    - thunderbolt: Add support for Intel Titan Ridge
+
+  * QCA9377 requires more IRAM banks for its new firmware (LP: #1748345)
+    - ath10k: update the IRAM bank number for QCA9377
+
+  * Fix an issue that when system in S3, USB keyboard can't wake up the system.
+    (LP: #1759511)
+    - ACPI / PM: Allow deeper wakeup power states with no _SxD nor _SxW
+
+  * cxl: Fix timebase synchronization status on POWER9 missing (CAPI)
+    (LP: #1757228)
+    - cxl: Fix timebase synchronization status on P9
+
+  * [Feature]Update Ubuntu 18.04 lpfc FC driver with 32/64GB HBA support and bug
+    fixes (LP: #1752182)
+    - scsi: lpfc: Fix frequency of Release WQE CQEs
+    - scsi: lpfc: Increase CQ and WQ sizes for SCSI
+    - scsi: lpfc: move placement of target destroy on driver detach
+    - scsi: lpfc: correct debug counters for abort
+    - scsi: lpfc: Add WQ Full Logic for NVME Target
+    - scsi: lpfc: Fix PRLI handling when topology type changes
+    - scsi: lpfc: Fix IO failure during hba reset testing with nvme io.
+    - scsi: lpfc: Fix RQ empty firmware trap
+    - scsi: lpfc: Allow set of maximum outstanding SCSI cmd limit for a target
+    - scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing
+    - scsi: lpfc: Fix issue_lip if link is disabled
+    - scsi: lpfc: Indicate CONF support in NVMe PRLI
+    - scsi: lpfc: Fix SCSI io host reset causing kernel crash
+    - scsi: lpfc: Validate adapter support for SRIU option
+    - scsi: lpfc: Fix header inclusion in lpfc_nvmet
+    - scsi: lpfc: Treat SCSI Write operation Underruns as an error
+    - scsi: lpfc: Fix nonrecovery of NVME controller after cable swap.
+    - scsi: lpfc: update driver version to 11.4.0.7
+    - scsi: lpfc: Update 11.4.0.7 modified files for 2018 Copyright
+    - scsi: lpfc: Rework lpfc to allow different sli4 cq and eq handlers
+    - scsi: lpfc: Rework sli4 doorbell infrastructure
+    - scsi: lpfc: Add SLI-4 if_type=6 support to the code base
+    - scsi: lpfc: Add push-to-adapter support to sli4
+    - scsi: lpfc: Add PCI Ids for if_type=6 hardware
+    - scsi: lpfc: Add 64G link speed support
+    - scsi: lpfc: Add if_type=6 support for cycling valid bits
+    - scsi: lpfc: Enable fw download on if_type=6 devices
+    - scsi: lpfc: Add embedded data pointers for enhanced performance
+    - scsi: lpfc: Fix nvme embedded io length on new hardware
+    - scsi: lpfc: Work around NVME cmd iu SGL type
+    - scsi: lpfc: update driver version to 12.0.0.0
+    - scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018
+    - scsi: lpfc: use __raw_writeX on DPP copies
+    - scsi: lpfc: Add missing unlock in WQ full logic
+
+  * /dev/bcache/by-uuid links not created after reboot (LP: #1729145)
+    - SAUCE: (no-up) bcache: decouple emitting a cached_dev CHANGE uevent
+
+  * DKMS driver builds fail with: Cannot use CONFIG_STACK_VALIDATION=y, please
+    install libelf-dev, libelf-devel or elfutils-libelf-devel (LP: #1760876)
+    - [Packaging] include the retpoline extractor in the headers
+
+  * Use med_with_dipm SATA LPM to save more power for mobile platforms
+    (LP: #1759547)
+    - [Config] CONFIG_SATA_MOBILE_LPM_POLICY=3
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Only install cloud init files when do_tools_common=true
+    - SAUCE: Import aufs driver
+    - [Config] Enable AUFS config options
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 12 Apr 2018 09:30:56 -0500
+
+linux (4.16.0-3.4) bionic; urgency=medium
+
+  * Allow multiple mounts of zfs datasets (LP: #1759848)
+    - SAUCE: Allow mounting datasets more than once (LP: #1759848)
+
+  * zfs system process hung on container stop/delete (LP: #1754584)
+    - SAUCE: Fix non-prefaulted page deadlock (LP: #1754584)
+    - Revert "UBUNTU: SAUCE: Fix non-prefaulted page deadlock (LP: #1754584)"
+    - SAUCE: Fix non-prefaulted page deadlock (LP: #1754584)
+
+  * ubuntu_zram_smoke test will cause soft lockup on Artful ThunderX ARM64
+    (LP: #1755073)
+    - SAUCE: crypto: thunderx_zip: Fix fallout from CONFIG_VMAP_STACK
+
+  * CAPI Flash (cxlflash) update (LP: #1752672)
+    - SAUCE: cxlflash: Preserve number of interrupts for master contexts
+    - SAUCE: cxlflash: Avoid clobbering context control register value
+    - SAUCE: cxlflash: Add argument identifier names
+    - SAUCE: cxlflash: Introduce OCXL backend
+    - SAUCE: cxlflash: Hardware AFU for OCXL
+    - SAUCE: cxlflash: Read host function configuration
+    - SAUCE: cxlflash: Setup function acTag range
+    - SAUCE: cxlflash: Read host AFU configuration
+    - SAUCE: cxlflash: Setup AFU acTag range
+    - SAUCE: cxlflash: Setup AFU PASID
+    - SAUCE: cxlflash: Adapter context support for OCXL
+    - SAUCE: cxlflash: Use IDR to manage adapter contexts
+    - SAUCE: cxlflash: Support adapter file descriptors for OCXL
+    - SAUCE: cxlflash: Support adapter context discovery
+    - SAUCE: cxlflash: Support image reload policy modification
+    - SAUCE: cxlflash: MMIO map the AFU
+    - SAUCE: cxlflash: Support starting an adapter context
+    - SAUCE: cxlflash: Support process specific mappings
+    - SAUCE: cxlflash: Support AFU state toggling
+    - SAUCE: cxlflash: Support reading adapter VPD data
+    - SAUCE: cxlflash: Setup function OCXL link
+    - SAUCE: cxlflash: Setup OCXL transaction layer
+    - SAUCE: cxlflash: Support process element lifecycle
+    - SAUCE: cxlflash: Support AFU interrupt management
+    - SAUCE: cxlflash: Support AFU interrupt mapping and registration
+    - SAUCE: cxlflash: Support starting user contexts
+    - SAUCE: cxlflash: Support adapter context polling
+    - SAUCE: cxlflash: Support adapter context reading
+    - SAUCE: cxlflash: Support adapter context mmap and release
+    - SAUCE: cxlflash: Support file descriptor mapping
+    - SAUCE: cxlflash: Introduce object handle fop
+    - SAUCE: cxlflash: Setup LISNs for user contexts
+    - SAUCE: cxlflash: Setup LISNs for master contexts
+    - SAUCE: cxlflash: Update synchronous interrupt status bits
+    - SAUCE: cxlflash: Introduce OCXL context state machine
+    - SAUCE: cxlflash: Register for translation errors
+    - SAUCE: cxlflash: Support AFU reset
+    - SAUCE: cxlflash: Enable OCXL operations
+
+  * [Artful][Wyse 3040] System hang when trying to enable an offlined CPU core
+    (LP: #1736393)
+    - SAUCE: drm/i915:Don't set chip specific data
+    - SAUCE: drm/i915: make previous commit affects Wyse 3040 only
+
+  * zed process consuming 100% cpu (LP: #1751796)
+    - SAUCE: Fix ioctl loop-spin in zed (LP: #1751796)
+
+  * Ubuntu18.04:PowerPC - Set Transparent Huge Pages (THP) by default to
+    "always" (LP: #1753708)
+    - Config: Set TRANSPARENT_HUGEPAGE_ALWAYS=y on ppc64el
+
+  * retpoline hints: primary infrastructure and initial hints (LP: #1758856)
+    - [Packaging] retpoline -- add safe usage hint support
+    - [Packaging] retpoline-check -- only report additions
+    - [Packaging] retpoline -- widen indirect call/jmp detection
+    - [Packaging] retpoline -- elide %rip relative indirections
+    - [Packaging] retpoline -- clear hint information from packages
+    - SAUCE: apm -- annotate indirect calls within
+      firmware_restrict_branch_speculation_{start,end}
+    - SAUCE: EFI -- annotate indirect calls within
+      firmware_restrict_branch_speculation_{start,end}
+    - SAUCE: early/late -- annotate indirect calls in early/late initialisation
+      code
+    - SAUCE: vga_set_mode -- avoid jump tables
+    - [Config] retpoine -- switch to new format
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] final-checks -- remove check for empty retpoline files
+    - [Packaging] skip cloud tools packaging when not building package
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 02 Apr 2018 16:15:36 -0500
+
+linux (4.16.0-2.3) bionic; urgency=medium
+
+  * devpts: handle bind-mounts (LP: #1755857)
+    - SAUCE: devpts: hoist out check for DEVPTS_SUPER_MAGIC
+    - SAUCE: devpts: resolve devpts bind-mounts
+    - SAUCE: devpts: comment devpts_mntget()
+    - SAUCE: selftests: add devpts selftests
+
+  * [bionic][arm64] d-i: add hisi_sas_v3_hw to scsi-modules (LP: #1756103)
+    - d-i: add hisi_sas_v3_hw to scsi-modules
+
+  * [Bionic][ARM64] PCI and SAS driver patches for hip08 SoCs (LP: #1756094)
+    - SAUCE: scsi: hisi_sas: config for hip08 ES
+    - SAUCE: scsi: hisi_sas: export device table of v3 hw to userspace
+
+  * s390/crypto: Fix kernel crash on aes_s390 module remove (LP: #1753424)
+    - SAUCE: s390/crypto: Fix kernel crash on aes_s390 module remove.
+
+  * Fix ARC hit rate (LP: #1755158)
+    - SAUCE: Fix ARC hit rate (LP: #1755158)
+
+  * ZFS setgid broken on 0.7 (LP: #1753288)
+    - SAUCE: Fix ZFS setgid
+
+  * CONFIG_EFI=y on armhf (LP: #1726362)
+    - [Config] CONFIG_EFI=y on armhf, reconcile secureboot EFI settings
+
+  * [Feature] Add xHCI debug device support in the driver (LP: #1730832)
+    - [Config] CONFIG_USB_XHCI_DBGCAP=y
+
+  * retpoline: ignore %cs:0xNNN constant indirections (LP: #1752655)
+    - [Packaging] retpoline -- elide %cs:0xNNNN constants on i386
+    - [Config] retpoline -- clean up i386 retpoline files
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] retpoline-extract: flag *0xNNN(%reg) branches
+    - [Config] fix up retpoline abi files
+    - [Config] fix up retpoline abi files
+    - d-i: Add netsec to nic-modules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 19 Mar 2018 14:09:49 -0500
+
+linux (4.16.0-1.2) bionic; urgency=medium
+
+  * Driver not found in Ubuntu kernel does not detect interface (LP: #1745927)
+    - d-i: add cxgb4 to nic-modules
+
+  * Support low-pin-count devices on Hisilicon SoCs (LP: #1677319)
+    - [Config] CONFIG_INDIRECT_PIO=y
+    - SAUCE: LIB: Introduce a generic PIO mapping method
+    - SAUCE: PCI: Remove unused __weak attribute in pci_register_io_range()
+    - SAUCE: PCI: Add fwnode handler as input param of pci_register_io_range()
+    - SAUCE: PCI: Apply the new generic I/O management on PCI IO hosts
+    - SAUCE: OF: Add missing I/O range exception for indirect-IO devices
+    - [Config] CONFIG_HISILICON_LPC=y
+    - SAUCE: HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
+    - SAUCE: ACPI / scan: do not enumerate Indirect IO host children
+    - SAUCE: HISI LPC: Add ACPI support
+    - SAUCE: MAINTAINERS: Add maintainer for HiSilicon LPC driver
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: tools: use CC for linking acpi tools
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 28 Feb 2018 10:17:23 -0600
+
+linux (4.16.0-0.1) bionic; urgency=medium
+
+  * retpoline abi files are empty on i386 (LP: #1751021)
+    - [Packaging] retpoline-extract -- instantiate retpoline files for i386
+    - [Packaging] final-checks -- sanity checking ABI contents
+    - [Packaging] final-checks -- check for empty retpoline files
+
+  * Miscellaneous upstream changes
+    - disable vbox build
+    - Disable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 22 Feb 2018 08:58:57 -0600
+
+linux (4.16.0-0.0) bionic; urgency=medium
+
+  * Dummy entry
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 21 Feb 2018 14:33:13 -0600
+
+linux (4.15.0-10.11) bionic; urgency=medium
+
+  * linux: 4.15.0-10.11 -proposed tracker (LP: #1749250)
+
+  * "swiotlb: coherent allocation failed" dmesg spam with linux 4.15.0-9.10
+    (LP: #1749202)
+    - swiotlb: suppress warning when __GFP_NOWARN is set
+    - drm/ttm: specify DMA_ATTR_NO_WARN for huge page pools
+
+  * linux-tools: perf incorrectly linking libbfd (LP: #1748922)
+    - SAUCE: tools -- add ability to disable libbfd
+    - [Packaging] correct disablement of libbfd
+
+  * [Artful] Realtek ALC225: 2 secs noise when a headset plugged in
+    (LP: #1744058)
+    - ALSA: hda/realtek - update ALC225 depop optimize
+
+  * [Artful] Support headset mode for DELL WYSE (LP: #1723913)
+    - SAUCE: ALSA: hda/realtek - Add support headset mode for DELL WYSE
+
+  * headset mic can't be detected on two Dell machines (LP: #1748807)
+    - ALSA: hda/realtek - Support headset mode for ALC215/ALC285/ALC289
+    - ALSA: hda - Fix headset mic detection problem for two Dell machines
+
+  * Bionic update to v4.15.3 stable release (LP: #1749191)
+    - ip6mr: fix stale iterator
+    - net: igmp: add a missing rcu locking section
+    - qlcnic: fix deadlock bug
+    - qmi_wwan: Add support for Quectel EP06
+    - r8169: fix RTL8168EP take too long to complete driver initialization.
+    - tcp: release sk_frag.page in tcp_disconnect
+    - vhost_net: stop device during reset owner
+    - ipv6: addrconf: break critical section in addrconf_verify_rtnl()
+    - ipv6: change route cache aging logic
+    - Revert "defer call to mem_cgroup_sk_alloc()"
+    - net: ipv6: send unsolicited NA after DAD
+    - rocker: fix possible null pointer dereference in
+      rocker_router_fib_event_work
+    - tcp_bbr: fix pacing_gain to always be unity when using lt_bw
+    - cls_u32: add missing RCU annotation.
+    - ipv6: Fix SO_REUSEPORT UDP socket with implicit sk_ipv6only
+    - soreuseport: fix mem leak in reuseport_add_sock()
+    - net_sched: get rid of rcu_barrier() in tcf_block_put_ext()
+    - net: sched: fix use-after-free in tcf_block_put_ext
+    - media: mtk-vcodec: add missing MODULE_LICENSE/DESCRIPTION
+    - media: soc_camera: soc_scale_crop: add missing
+      MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - media: tegra-cec: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - gpio: uniphier: fix mismatch between license text and MODULE_LICENSE
+    - crypto: tcrypt - fix S/G table for test_aead_speed()
+    - Linux 4.15.3
+
+  * bnx2x_attn_int_deasserted3:4323 MC assert! (LP: #1715519) //
+    CVE-2018-1000026
+    - net: create skb_gso_validate_mac_len()
+    - bnx2x: disable GSO where gso_size is too big for hardware
+
+  * ethtool -p fails to light NIC LED on HiSilicon D05 systems (LP: #1748567)
+    - net: hns: add ACPI mode support for ethtool -p
+
+  * CVE-2017-5715 (Spectre v2 Intel)
+    - [Packaging] retpoline files must be sorted
+    - [Packaging] pull in retpoline files
+
+  * [Feature] PXE boot with Intel Omni-Path (LP: #1712031)
+    - d-i: Add hfi1 to nic-modules
+
+  * CVE-2017-5715 (Spectre v2 retpoline)
+    - [Packaging] retpoline -- add call site validation
+    - [Config] disable retpoline checks for first upload
+
+  * Do not duplicate changelog entries assigned to more than one bug or CVE
+    (LP: #1743383)
+    - [Packaging] git-ubuntu-log -- handle multiple bugs/cves better
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 13 Feb 2018 11:33:58 -0600
+
+linux (4.15.0-9.10) bionic; urgency=medium
+
+  * linux: 4.15.0-9.10 -proposed tracker (LP: #1748244)
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] tests -- remove gcc-multilib dependency for arm64
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 08 Feb 2018 11:25:04 -0600
+
+linux (4.15.0-8.9) bionic; urgency=medium
+
+  * linux: 4.15.0-8.9 -proposed tracker (LP: #1748075)
+
+  * Bionic update to v4.15.2 stable release (LP: #1748072)
+    - KVM: x86: Make indirect calls in emulator speculation safe
+    - KVM: VMX: Make indirect call speculation safe
+    - module/retpoline: Warn about missing retpoline in module
+    - x86/cpufeatures: Add CPUID_7_EDX CPUID leaf
+    - x86/cpufeatures: Add Intel feature bits for Speculation Control
+    - x86/cpufeatures: Add AMD feature bits for Speculation Control
+    - x86/msr: Add definitions for new speculation control MSRs
+    - x86/pti: Do not enable PTI on CPUs which are not vulnerable to Meltdown
+    - x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes
+    - x86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier) support
+    - x86/alternative: Print unadorned pointers
+    - x86/nospec: Fix header guards names
+    - x86/bugs: Drop one "mitigation" from dmesg
+    - x86/cpu/bugs: Make retpoline module warning conditional
+    - x86/cpufeatures: Clean up Spectre v2 related CPUID flags
+    - x86/retpoline: Simplify vmexit_fill_RSB()
+    - x86/speculation: Simplify indirect_branch_prediction_barrier()
+    - auxdisplay: img-ascii-lcd: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - iio: adc/accel: Fix up module licenses
+    - pinctrl: pxa: pxa2xx: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - ASoC: pcm512x: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - KVM: nVMX: Eliminate vmcs02 pool
+    - KVM: VMX: introduce alloc_loaded_vmcs
+    - objtool: Improve retpoline alternative handling
+    - objtool: Add support for alternatives at the end of a section
+    - objtool: Warn on stripped section symbol
+    - x86/mm: Fix overlap of i386 CPU_ENTRY_AREA with FIX_BTMAP
+    - x86/spectre: Check CONFIG_RETPOLINE in command line parser
+    - x86/entry/64: Remove the SYSCALL64 fast path
+    - x86/entry/64: Push extra regs right away
+    - x86/asm: Move 'status' from thread_struct to thread_info
+    - Documentation: Document array_index_nospec
+    - array_index_nospec: Sanitize speculative array de-references
+    - x86: Implement array_index_mask_nospec
+    - x86: Introduce barrier_nospec
+    - x86: Introduce __uaccess_begin_nospec() and uaccess_try_nospec
+    - x86/usercopy: Replace open coded stac/clac with __uaccess_{begin, end}
+    - x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec
+    - x86/get_user: Use pointer masking to limit speculation
+    - x86/syscall: Sanitize syscall table de-references under speculation
+    - vfs, fdtable: Prevent bounds-check bypass via speculative execution
+    - nl80211: Sanitize array index in parse_txq_params
+    - x86/spectre: Report get_user mitigation for spectre_v1
+    - x86/spectre: Fix spelling mistake: "vunerable"-> "vulnerable"
+    - x86/cpuid: Fix up "virtual" IBRS/IBPB/STIBP feature bits on Intel
+    - x86/speculation: Use Indirect Branch Prediction Barrier in context switch
+    - x86/paravirt: Remove 'noreplace-paravirt' cmdline option
+    - KVM: VMX: make MSR bitmaps per-VCPU
+    - x86/kvm: Update spectre-v1 mitigation
+    - x86/retpoline: Avoid retpolines for built-in __init functions
+    - x86/spectre: Simplify spectre_v2 command line parsing
+    - x86/pti: Mark constant arrays as __initconst
+    - x86/speculation: Fix typo IBRS_ATT, which should be IBRS_ALL
+    - KVM/x86: Update the reverse_cpuid list to include CPUID_7_EDX
+    - KVM/x86: Add IBPB support
+    - KVM/VMX: Emulate MSR_IA32_ARCH_CAPABILITIES
+    - KVM/VMX: Allow direct access to MSR_IA32_SPEC_CTRL
+    - KVM/SVM: Allow direct access to MSR_IA32_SPEC_CTRL
+    - serial: core: mark port as initialized after successful IRQ change
+    - fpga: region: release of_parse_phandle nodes after use
+    - Linux 4.15.2
+
+  * Add support for the NIC on SynQuacer E-Series boards (LP: #1747792)
+    - net: phy: core: remove now uneeded disabling of interrupts
+    - [Config] CONFIG_NET_VENDOR_SOCIONEXT=y & CONFIG_SNI_NETSEC=m
+    - net: socionext: Add Synquacer NetSec driver
+    - net: socionext: include linux/io.h to fix build
+    - net: socionext: Fix error return code in netsec_netdev_open()
+
+  * [Artful/Bionic] [Config] enable EDAC_GHES for ARM64 (LP: #1747746)
+    - [Config] CONFIG_EDAC_GHES=y
+
+  * support thunderx2 vendor pmu events (LP: #1747523)
+    - perf pmu: Pass pmu as a parameter to get_cpuid_str()
+    - perf tools arm64: Add support for get_cpuid_str function.
+    - perf pmu: Add helper function is_pmu_core to detect PMU CORE devices
+    - perf vendor events arm64: Add ThunderX2 implementation defined pmu core
+      events
+    - perf pmu: Add check for valid cpuid in perf_pmu__find_map()
+
+  * linux 4.14.0-7.9 ADT test failure with linux 4.14.0-7.9 (LP: #1732463)
+    - SAUCE: mm: disable vma based swap readahead by default
+    - SAUCE: mm: fix memory hotplug in ZONE_HIGHMEM
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Fix CONFIG_PROFILE_ALL_BRANCHES annotations
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 07 Feb 2018 21:13:27 -0600
+
+linux (4.15.0-7.8) bionic; urgency=medium
+
+  * Bionic update to v4.15.1 stable release (LP: #1747169)
+    - Bluetooth: hci_serdev: Init hci_uart proto_lock to avoid oops
+    - tools/gpio: Fix build error with musl libc
+    - gpio: stmpe: i2c transfer are forbiden in atomic context
+    - gpio: Fix kernel stack leak to userspace
+    - ALSA: hda - Reduce the suspend time consumption for ALC256
+    - crypto: ecdh - fix typo in KPP dependency of CRYPTO_ECDH
+    - crypto: aesni - handle zero length dst buffer
+    - crypto: aesni - fix typo in generic_gcmaes_decrypt
+    - crypto: aesni - add wrapper for generic gcm(aes)
+    - crypto: aesni - Fix out-of-bounds access of the data buffer in generic-gcm-
+      aesni
+    - crypto: aesni - Fix out-of-bounds access of the AAD buffer in generic-gcm-
+      aesni
+    - crypto: inside-secure - fix hash when length is a multiple of a block
+    - crypto: inside-secure - avoid unmapping DMA memory that was not mapped
+    - crypto: sha3-generic - fixes for alignment and big endian operation
+    - crypto: af_alg - whitelist mask and type
+    - HID: wacom: EKR: ensure devres groups at higher indexes are released
+    - HID: wacom: Fix reporting of touch toggle (WACOM_HID_WD_MUTE_DEVICE) events
+    - power: reset: zx-reboot: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - gpio: iop: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - gpio: ath79: add missing MODULE_DESCRIPTION/LICENSE
+    - mtd: nand: denali_pci: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - igb: Free IRQs when device is hotplugged
+    - ima/policy: fix parsing of fsuuid
+    - scsi: aacraid: Fix udev inquiry race condition
+    - scsi: aacraid: Fix hang in kdump
+    - scsi: storvsc: missing error code in storvsc_probe()
+    - staging: lustre: separate a connection destroy from free struct kib_conn
+    - staging: ccree: NULLify backup_info when unused
+    - staging: ccree: fix fips event irq handling build
+    - tty: fix data race between tty_init_dev and flush of buf
+    - usb: option: Add support for FS040U modem
+    - USB: serial: pl2303: new device id for Chilitag
+    - USB: cdc-acm: Do not log urb submission errors on disconnect
+    - CDC-ACM: apply quirk for card reader
+    - USB: serial: io_edgeport: fix possible sleep-in-atomic
+    - usbip: prevent bind loops on devices attached to vhci_hcd
+    - usbip: list: don't list devices attached to vhci_hcd
+    - USB: serial: simple: add Motorola Tetra driver
+    - usb: f_fs: Prevent gadget unbind if it is already unbound
+    - usb: uas: unconditionally bring back host after reset
+    - usb/gadget: Fix "high bandwidth" check in usb_gadget_ep_match_desc()
+    - ANDROID: binder: remove waitqueue when thread exits.
+    - android: binder: use VM_ALLOC to get vm area
+    - mei: me: allow runtime pm for platform with D0i3
+    - serial: 8250_of: fix return code when probe function fails to get reset
+    - serial: 8250_uniphier: fix error return code in uniphier_uart_probe()
+    - serial: 8250_dw: Revert "Improve clock rate setting"
+    - serial: imx: Only wakeup via RTSDEN bit if the system has RTS/CTS
+    - spi: imx: do not access registers while clocks disabled
+    - iio: adc: stm32: fix scan of multiple channels with DMA
+    - iio: chemical: ccs811: Fix output of IIO_CONCENTRATION channels
+    - test_firmware: fix missing unlock on error in config_num_requests_store()
+    - Input: synaptics-rmi4 - unmask F03 interrupts when port is opened
+    - Input: synaptics-rmi4 - do not delete interrupt memory too early
+    - x86/efi: Clarify that reset attack mitigation needs appropriate userspace
+    - Linux 4.15.1
+
+  * Dell XPS 13 9360 bluetooth (Atheros) won't connect after resume
+    (LP: #1744712)
+    - Revert "Bluetooth: btusb: fix QCA Rome suspend/resume"
+    - Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten"
+      version
+
+  * apparmor profile load in stacked policy container fails (LP: #1746463)
+    - SAUCE: apparmor: fix display of .ns_name for containers
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 04 Feb 2018 11:56:32 +0100
+
+linux (4.15.0-6.7) bionic; urgency=low
+
+  * upload urgency should be medium by default (LP: #1745338)
+    - [Packaging] update urgency to medium by default
+
+  * Shutdown hang on 16.04 with iscsi targets (LP: #1569925)
+    - scsi: libiscsi: Allow sd_shutdown on bad transport
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.5-1ubuntu1, zfs to 0.7.5-1ubuntu1
+    - Revert "UBUNTU: SAUCE: mm: fix memory hotplug in ZONE_HIGHMEM"
+    - Revert "UBUNTU: SAUCE: mm: disable vma based swap readahead by default"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 29 Jan 2018 08:47:07 -0600
+
+linux (4.15.0-5.6) bionic; urgency=low
+
+  * $(LOCAL_ENV_CC) and $(LOCAL_ENV_DISTCC_HOSTS) should be properly quoted
+    (LP: #1744077)
+    - [Debian] pass LOCAL_ENV_CC and LOCAL_ENV_DISTCC_HOSTS properly
+
+  * Missing install-time driver for QLogic QED 25/40/100Gb Ethernet NIC
+    (LP: #1743638)
+    - [d-i] Add qede to nic-modules udeb
+
+  * boot failure on AMD Raven + WesternXT (LP: #1742759)
+    - SAUCE: drm/amdgpu: add atpx quirk handling (v2)
+
+  * Unable to handle kernel NULL pointer dereference at isci_task_abort_task
+    (LP: #1726519)
+    - SAUCE: Revert "scsi: libsas: allow async aborts"
+
+  * Update Ubuntu-4.15.0 config to support Intel Atom devices (LP: #1739939)
+    - [Config] CONFIG_SERIAL_DEV_BUS=y, CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+
+  * Miscellaneous Ubuntu changes
+    - Rebase to v4.15-rc7
+    - [Config] CONFIG_CPU_ISOLATION=y
+    - [Config] Update annotations following config review
+    - Revert "UBUNTU: SAUCE: Import aufs driver"
+    - SAUCE: Import aufs driver
+    - ubuntu: vbox -- update to 5.2.6-dfsg-1
+    - ubuntu: vbox: build fixes for 4.15
+    - ubuntu: vbox -- update to 5.2.6-dfsg-2
+    - hio: updates for timer api changes in 4.15
+    - enable hio build
+    - Rebase to v4.15-rc9
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc9
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 22 Jan 2018 10:16:05 -0600
+
+linux (4.15.0-4.5) bionic; urgency=low
+
+  * [0cf3:e010] QCA6174A XR failed to pair with bt 4.0 device  (LP: #1741166)
+    - SAUCE: Bluetooth: btusb: Add support for 0cf3:e010
+
+  * External HDMI monitor failed to show screen on Lenovo X1 series
+    (LP: #1738523)
+    - SAUCE: drm/i915: Disable writing of TMDS_OE on Lenovo ThinkPad X1 series
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] autoreconstruct - add resoration of execute permissions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 10 Jan 2018 10:24:22 -0600
+
+linux (4.15.0-3.4) bionic; urgency=low
+
+  * ubuntu/xr-usb-serial didn't get built in zesty and artful (LP: #1733281)
+    - SAUCE: make sure ubuntu/xr-usb-serial builds for x86
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 03 Jan 2018 20:20:43 -0600
+
+linux (4.15.0-2.3) bionic; urgency=low
+
+  * nvidia-graphics-drivers-384 384.90-0ubuntu6 ADT test failure with linux
+    4.15.0-1.2 (LP: #1737752)
+    - x86/mm: Unbreak modules that use the DMA API
+
+  * Ubuntu 17.10 corrupting BIOS - many LENOVO laptops models (LP: #1734147)
+    - [Config] CONFIG_SPI_INTEL_SPI_*=n
+
+  * power: commonise configs IBMVETH/IBMVSCSI and ensure both are in linux-image
+    and udebs (LP: #1521712)
+    - [Config] Include ibmvnic in nic-modules
+
+  * Enable arm64 emulation of removed ARMv7 instructions (LP: #1545542)
+    - [Config] Enable support for emulation of deprecated ARMv8 instructions
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl with 4.15 compat fix (LP:#1737761)
+    - Enable zfs build
+    - [Debian] add icp to zfs-modules.ignore
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 18 Dec 2017 09:27:13 -0600
+
+linux (4.15.0-1.2) bionic; urgency=low
+
+  * Disabling zfs does not always disable module checks for the zfs modules
+    (LP: #1737176)
+    - [Packaging] disable zfs module checks when zfs is disabled
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_UNWINDER_FRAME_POINTER=y for amd64
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 10 Dec 2017 22:07:19 -0600
+
+linux (4.15.0-0.1) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu: vbox -- update to 5.2.2-dfsg-2
+    - ubuntu: vbox: build fixes for 4.15
+    - disable hio build
+    - [Config] Update kernel lockdown options to fix build errors
+    - Disable zfs build
+    - SAUCE: Import aufs driver
+    - [Config] Enable AUFS config options
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 08 Dec 2017 13:55:42 -0600
+
+linux (4.14.0-11.13) bionic; urgency=low
+
+  * linux: 4.14.0-11.13 -proposed tracker (LP: #1736168)
+
+  * CVE-2017-1000405
+    - mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
+
+  * linux 4.14.0-7.9 ADT test failure with linux 4.14.0-7.9 (LP: #1732463)
+    - SAUCE: mm: disable vma based swap readahead by default
+    - SAUCE: mm: fix memory hotplug in ZONE_HIGHMEM
+
+  * Bionic update to v4.14.3 stable release (LP: #1735843)
+    - s390: fix transactional execution control register handling
+    - s390/noexec: execute kexec datamover without DAT
+    - s390/runtime instrumention: fix possible memory corruption
+    - s390/guarded storage: fix possible memory corruption
+    - s390/disassembler: add missing end marker for e7 table
+    - s390/disassembler: increase show_code buffer size
+    - ACPI / PM: Fix acpi_pm_notifier_lock vs flush_workqueue() deadlock
+    - ACPI / EC: Fix regression related to triggering source of EC event handling
+    - cpufreq: schedutil: Reset cached_raw_freq when not in sync with next_freq
+    - serdev: fix registration of second slave
+    - sched: Make resched_cpu() unconditional
+    - lib/mpi: call cond_resched() from mpi_powm() loop
+    - x86/boot: Fix boot failure when SMP MP-table is based at 0
+    - x86/decoder: Add new TEST instruction pattern
+    - x86/entry/64: Fix entry_SYSCALL_64_after_hwframe() IRQ tracing
+    - x86/entry/64: Add missing irqflags tracing to native_load_gs_index()
+    - perf/x86/intel: Hide TSX events when RTM is not supported
+    - arm64: Implement arch-specific pte_access_permitted()
+    - ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
+    - ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
+    - uapi: fix linux/tls.h userspace compilation error
+    - uapi: fix linux/rxrpc.h userspace compilation errors
+    - MIPS: cmpxchg64() and HAVE_VIRT_CPU_ACCOUNTING_GEN don't work for 32-bit SMP
+    - MIPS: ralink: Fix MT7628 pinmux
+    - MIPS: ralink: Fix typo in mt7628 pinmux function
+    - net: mvneta: fix handling of the Tx descriptor counter
+    - nbd: wait uninterruptible for the dead timeout
+    - nbd: don't start req until after the dead connection logic
+    - PM / OPP: Add missing of_node_put(np)
+    - PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
+    - PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
+    - PCI: hv: Use effective affinity mask
+    - PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF
+    - PCI: Apply Cavium ThunderX ACS quirk to more Root Ports
+    - ALSA: hda: Add Raven PCI ID
+    - dm integrity: allow unaligned bv_offset
+    - dm cache: fix race condition in the writeback mode overwrite_bio
+      optimisation
+    - dm crypt: allow unaligned bv_offset
+    - dm zoned: ignore last smaller runt zone
+    - dm mpath: remove annoying message of 'blk_get_request() returned -11'
+    - dm bufio: fix integer overflow when limiting maximum cache size
+    - ovl: Put upperdentry if ovl_check_origin() fails
+    - dm: allocate struct mapped_device with kvzalloc
+    - sched/rt: Simplify the IPI based RT balancing logic
+    - MIPS: pci: Remove KERN_WARN instance inside the mt7620 driver
+    - dm: fix race between dm_get_from_kobject() and __dm_destroy()
+    - dm: discard support requires all targets in a table support discards
+    - MIPS: Fix odd fp register warnings with MIPS64r2
+    - MIPS: Fix MIPS64 FP save/restore on 32-bit kernels
+    - MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
+    - MIPS: Fix an n32 core file generation regset support regression
+    - MIPS: BCM47XX: Fix LED inversion for WRT54GSv1
+    - MIPS: math-emu: Fix final emulation phase for certain instructions
+    - rt2x00usb: mark device removed when get ENOENT usb error
+    - mm/z3fold.c: use kref to prevent page free/compact race
+    - autofs: don't fail mount for transient error
+    - nilfs2: fix race condition that causes file system corruption
+    - fscrypt: lock mutex before checking for bounce page pool
+    - eCryptfs: use after free in ecryptfs_release_messaging()
+    - libceph: don't WARN() if user tries to add invalid key
+    - bcache: check ca->alloc_thread initialized before wake up it
+    - fs: guard_bio_eod() needs to consider partitions
+    - fanotify: fix fsnotify_prepare_user_wait() failure
+    - isofs: fix timestamps beyond 2027
+    - btrfs: change how we decide to commit transactions during flushing
+    - f2fs: expose some sectors to user in inline data or dentry case
+    - NFS: Fix typo in nomigration mount option
+    - NFS: Revert "NFS: Move the flock open mode check into nfs_flock()"
+    - nfs: Fix ugly referral attributes
+    - NFS: Avoid RCU usage in tracepoints
+    - NFS: revalidate "." etc correctly on "open".
+    - nfsd: deal with revoked delegations appropriately
+    - rtlwifi: rtl8192ee: Fix memory leak when loading firmware
+    - rtlwifi: fix uninitialized rtlhal->last_suspend_sec time
+    - iwlwifi: fix firmware names for 9000 and A000 series hw
+    - md: fix deadlock error in recent patch.
+    - md: don't check MD_SB_CHANGE_CLEAN in md_allow_write
+    - Bluetooth: btqcomsmd: Add support for BD address setup
+    - md/bitmap: revert a patch
+    - fsnotify: clean up fsnotify_prepare/finish_user_wait()
+    - fsnotify: pin both inode and vfsmount mark
+    - fsnotify: fix pinning group in fsnotify_prepare_user_wait()
+    - ata: fixes kernel crash while tracing ata_eh_link_autopsy event
+    - ext4: fix interaction between i_size, fallocate, and delalloc after a crash
+    - ext4: prevent data corruption with inline data + DAX
+    - ext4: prevent data corruption with journaling + DAX
+    - ALSA: pcm: update tstamp only if audio_tstamp changed
+    - ALSA: usb-audio: Add sanity checks to FE parser
+    - ALSA: usb-audio: Fix potential out-of-bound access at parsing SU
+    - ALSA: usb-audio: Add sanity checks in v2 clock parsers
+    - ALSA: timer: Remove kernel warning at compat ioctl error paths
+    - ALSA: hda/realtek - Fix ALC275 no sound issue
+    - ALSA: hda: Fix too short HDMI/DP chmap reporting
+    - ALSA: hda - Fix yet remaining issue with vmaster 0dB initialization
+    - ALSA: hda/realtek - Fix ALC700 family no sound issue
+    - ASoC: sun8i-codec: Invert Master / Slave condition
+    - ASoC: sun8i-codec: Fix left and right channels inversion
+    - ASoC: sun8i-codec: Set the BCLK divider
+    - mfd: lpc_ich: Avoton/Rangeley uses SPI_BYT method
+    - fix a page leak in vhost_scsi_iov_to_sgl() error recovery
+    - 9p: Fix missing commas in mount options
+    - fs/9p: Compare qid.path in v9fs_test_inode
+    - net/9p: Switch to wait_event_killable()
+    - scsi: qla2xxx: Suppress a kernel complaint in qla_init_base_qpair()
+    - scsi: sd_zbc: Fix sd_zbc_read_zoned_characteristics()
+    - scsi: lpfc: fix pci hot plug crash in timer management routines
+    - scsi: lpfc: fix pci hot plug crash in list_add call
+    - scsi: lpfc: Fix crash receiving ELS while detaching driver
+    - scsi: lpfc: Fix FCP hba_wqidx assignment
+    - scsi: lpfc: Fix oops if nvmet_fc_register_targetport fails
+    - iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
+    - iscsi-target: Fix non-immediate TMR reference leak
+    - target: fix null pointer regression in core_tmr_drain_tmr_list
+    - target: fix buffer offset in core_scsi3_pri_read_full_status
+    - target: Fix QUEUE_FULL + SCSI task attribute handling
+    - target: Fix caw_sem leak in transport_generic_request_failure
+    - target: Fix quiese during transport_write_pending_qf endless loop
+    - target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
+    - mtd: Avoid probe failures when mtd->dbg.dfs_dir is invalid
+    - mtd: nand: Export nand_reset() symbol
+    - mtd: nand: atmel: Actually use the PM ops
+    - mtd: nand: omap2: Fix subpage write
+    - mtd: nand: Fix writing mtdoops to nand flash.
+    - mtd: nand: mtk: fix infinite ECC decode IRQ issue
+    - mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush sequence
+    - p54: don't unregister leds when they are not initialized
+    - block: Fix a race between blk_cleanup_queue() and timeout handling
+    - raid1: prevent freeze_array/wait_all_barriers deadlock
+    - genirq: Track whether the trigger type has been set
+    - irqchip/gic-v3: Fix ppi-partitions lookup
+    - lockd: double unregister of inetaddr notifiers
+    - KVM: PPC: Book3S HV: Don't call real-mode XICS hypercall handlers if not
+      enabled
+    - KVM: nVMX: set IDTR and GDTR limits when loading L1 host state
+    - KVM: SVM: obey guest PAT
+    - kvm: vmx: Reinstate support for CPUs without virtual NMI
+    - dax: fix PMD faults on zero-length files
+    - dax: fix general protection fault in dax_alloc_inode
+    - SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status
+    - clk: ti: dra7-atl-clock: fix child-node lookups
+    - libnvdimm, dimm: clear 'locked' status on successful DIMM enable
+    - libnvdimm, pfn: make 'resource' attribute only readable by root
+    - libnvdimm, namespace: fix label initialization to use valid seq numbers
+    - libnvdimm, region : make 'resource' attribute only readable by root
+    - libnvdimm, namespace: make 'resource' attribute only readable by root
+    - svcrdma: Preserve CB send buffer across retransmits
+    - IB/srpt: Do not accept invalid initiator port names
+    - IB/cm: Fix memory corruption in handling CM request
+    - IB/hfi1: Fix incorrect available receive user context count
+    - IB/srp: Avoid that a cable pull can trigger a kernel crash
+    - IB/core: Avoid crash on pkey enforcement failed in received MADs
+    - IB/core: Only maintain real QPs in the security lists
+    - NFC: fix device-allocation error return
+    - spi-nor: intel-spi: Fix broken software sequencing codes
+    - i40e: Use smp_rmb rather than read_barrier_depends
+    - igb: Use smp_rmb rather than read_barrier_depends
+    - igbvf: Use smp_rmb rather than read_barrier_depends
+    - ixgbevf: Use smp_rmb rather than read_barrier_depends
+    - i40evf: Use smp_rmb rather than read_barrier_depends
+    - fm10k: Use smp_rmb rather than read_barrier_depends
+    - ixgbe: Fix skb list corruption on Power systems
+    - parisc: Fix validity check of pointer size argument in new CAS
+      implementation
+    - powerpc: Fix boot on BOOK3S_32 with CONFIG_STRICT_KERNEL_RWX
+    - powerpc/mm/radix: Fix crashes on Power9 DD1 with radix MMU and STRICT_RWX
+    - powerpc/perf/imc: Use cpu_to_node() not topology_physical_package_id()
+    - powerpc/signal: Properly handle return value from uprobe_deny_signal()
+    - powerpc/64s: Fix masking of SRR1 bits on instruction fault
+    - powerpc/64s/radix: Fix 128TB-512TB virtual address boundary case allocation
+    - powerpc/64s/hash: Fix 512T hint detection to use >= 128T
+    - powerpc/64s/hash: Fix 128TB-512TB virtual address boundary case allocation
+    - powerpc/64s/hash: Fix fork() with 512TB process address space
+    - powerpc/64s/hash: Allow MAP_FIXED allocations to cross 128TB boundary
+    - media: Don't do DMA on stack for firmware upload in the AS102 driver
+    - media: rc: check for integer overflow
+    - media: rc: nec decoder should not send both repeat and keycode
+    - cx231xx-cards: fix NULL-deref on missing association descriptor
+    - media: v4l2-ctrl: Fix flags field on Control events
+    - media: venus: fix wrong size on dma_free
+    - media: venus: venc: fix bytesused v4l2_plane field
+    - media: venus: reimplement decoder stop command
+    - ARM64: dts: meson-gxl: Add alternate ARM Trusted Firmware reserved memory
+      zone
+    - iwlwifi: fix wrong struct for a000 device
+    - iwlwifi: add a new a000 device
+    - iwlwifi: pcie: sort IDs for the 9000 series for easier comparisons
+    - iwlwifi: add new cards for a000 series
+    - iwlwifi: add new cards for 8265 series
+    - iwlwifi: add new cards for 8260 series
+    - iwlwifi: fix PCI IDs and configuration mapping for 9000 series
+    - iwlwifi: mvm: support version 7 of the SCAN_REQ_UMAC FW command
+    - e1000e: Fix error path in link detection
+    - e1000e: Fix return value test
+    - e1000e: Separate signaling for link check/link up
+    - e1000e: Avoid receiver overrun interrupt bursts
+    - e1000e: fix buffer overrun while the I219 is processing DMA transactions
+    - Linux 4.14.3
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: s390/topology: don't inline cpu_to_node
+    - SAUCE: (noup) Update spl to 0.7.3-1ubuntu1, zfs to 0.7.3-1ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 04 Dec 2017 09:08:07 -0600
+
+linux (4.14.0-10.12) bionic; urgency=low
+
+  * linux: 4.14.0-10.12 -proposed tracker (LP: #1734901)
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Enable the ACPI kernel debugger and acpidbg tool
+    - [Packaging] Include arch/arm64/kernel/ftrace-mod.o in headers package
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 28 Nov 2017 08:46:49 -0600
+
+linux (4.14.0-9.11) bionic; urgency=low
+
+  * linux: 4.14.0-9.11 -proposed tracker (LP: #1734728)
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: (noup) Update spl to 0.7.3-1ubuntu1, zfs to
+      0.7.3-1ubuntu1"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 27 Nov 2017 12:44:48 -0600
+
+linux (4.14.0-8.10) bionic; urgency=low
+
+  * linux: 4.14.0-8.10 -proposed tracker (LP: #1734695)
+
+  * Bionic update to v4.14.2 stable release (LP: #1734694)
+    - bio: ensure __bio_clone_fast copies bi_partno
+    - af_netlink: ensure that NLMSG_DONE never fails in dumps
+    - vxlan: fix the issue that neigh proxy blocks all icmpv6 packets
+    - net: cdc_ncm: GetNtbFormat endian fix
+    - fealnx: Fix building error on MIPS
+    - net/sctp: Always set scope_id in sctp_inet6_skb_msgname
+    - ima: do not update security.ima if appraisal status is not INTEGRITY_PASS
+    - serial: omap: Fix EFR write on RTS deassertion
+    - serial: 8250_fintek: Fix finding base_port with activated SuperIO
+    - tpm-dev-common: Reject too short writes
+    - rcu: Fix up pending cbs check in rcu_prepare_for_idle
+    - mm/pagewalk.c: report holes in hugetlb ranges
+    - ocfs2: fix cluster hang after a node dies
+    - ocfs2: should wait dio before inode lock in ocfs2_setattr()
+    - ipmi: fix unsigned long underflow
+    - mm/page_alloc.c: broken deferred calculation
+    - mm/page_ext.c: check if page_ext is not prepared
+    - coda: fix 'kernel memory exposure attempt' in fsync
+    - ipmi: Prefer ACPI system interfaces over SMBIOS ones
+    - Linux 4.14.2
+
+  * Bionic update to v4.14.1 stable release (LP: #1734693)
+    - EDAC, sb_edac: Don't create a second memory controller if HA1 is not present
+    - dmaengine: dmatest: warn user when dma test times out
+    - media: imon: Fix null-ptr-deref in imon_probe
+    - media: dib0700: fix invalid dvb_detach argument
+    - crypto: dh - Fix double free of ctx->p
+    - crypto: dh - Don't permit 'p' to be 0
+    - crypto: dh - Don't permit 'key' or 'g' size longer than 'p'
+    - crypto: brcm - Explicity ACK mailbox message
+    - USB: early: Use new USB product ID and strings for DbC device
+    - USB: usbfs: compute urb->actual_length for isochronous
+    - USB: Add delay-init quirk for Corsair K70 LUX keyboards
+    - usb: gadget: f_fs: Fix use-after-free in ffs_free_inst
+    - USB: serial: metro-usb: stop I/O after failed open
+    - USB: serial: Change DbC debug device binding ID
+    - USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update
+    - USB: serial: garmin_gps: fix I/O after failed probe and remove
+    - USB: serial: garmin_gps: fix memory leak on probe errors
+    - selftests/x86/protection_keys: Fix syscall NR redefinition warnings
+    - x86/MCE/AMD: Always give panic severity for UC errors in kernel context
+    - platform/x86: peaq-wmi: Add DMI check before binding to the WMI interface
+    - platform/x86: peaq_wmi: Fix missing terminating entry for peaq_dmi_table
+    - HID: cp2112: add HIDRAW dependency
+    - HID: wacom: generic: Recognize WACOM_HID_WD_PEN as a type of pen collection
+    - rpmsg: glink: Add missing MODULE_LICENSE
+    - staging: wilc1000: Fix bssid buffer offset in Txq
+    - staging: sm750fb: Fix parameter mistake in poke32
+    - staging: ccree: fix 64 bit scatter/gather DMA ops
+    - staging: greybus: spilib: fix use-after-free after deregistration
+    - staging: rtl8188eu: Revert 4 commits breaking ARP
+    - spi: fix use-after-free at controller deregistration
+    - sparc32: Add cmpxchg64().
+    - sparc64: mmu_context: Add missing include files
+    - sparc64: Fix page table walk for PUD hugepages
+    - Linux 4.14.1
+
+  * Set PANIC_TIMEOUT=10 on Power Systems (LP: #1730660)
+    - [Config]: Set PANIC_TIMEOUT=10 on ppc64el
+
+  * enable CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH easily confuse users
+    (LP: #1732627)
+    - [Config] CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=n
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.3-1ubuntu1, zfs to 0.7.3-1ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 27 Nov 2017 07:43:44 -0600
+
+linux (4.14.0-7.9) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: apparmor: add base infastructure for socket mediation
+    - SAUCE: apparmor: af_unix mediation
+    - SAUCE: LSM stacking: procfs: add smack subdir to attrs
+    - SAUCE: LSM stacking: LSM: manage credential security blobs
+    - SAUCE: LSM stacking: LSM: Manage file security blobs
+    - SAUCE: LSM stacking: LSM: manage task security blobs
+    - SAUCE: LSM stacking: LSM: Infrastructure management of the remaining blobs
+    - SAUCE: LSM stacking: LSM: general but not extreme module stacking
+    - SAUCE: LSM stacking: LSM: Complete task_alloc hook
+    - SAUCE: LSM stacking: fixup procsfs: add smack subdir to attrs
+    - SAUCE: LSM stacking: fixup initialize task->security
+    - SAUCE: LSM stacking: fixup: alloc_task_ctx is dead code
+    - SAUCE: LSM stacking: add support for stacking getpeersec_stream
+    - SAUCE: LSM stacking: add stacking support to apparmor network hooks
+    - SAUCE: LSM stacking: fixup apparmor stacking enablement
+    - SAUCE: LSM stacking: fixup stacking kconfig
+    - SAUCE: LSM stacking: allow selecting multiple LSMs using kernel boot params
+    - SAUCE: LSM stacking: provide prctl interface for setting context
+    - SAUCE: LSM stacking: inherit current display LSM
+    - SAUCE: LSM stacking: keep an index for each registered LSM
+    - SAUCE: LSM stacking: verify display LSM
+    - SAUCE: LSM stacking: provide a way to specify the default display lsm
+    - SAUCE: LSM stacking: make sure LSM blob align on 64 bit boundaries
+    - SAUCE: LSM stacking: add /proc/<pid>/attr/display_lsm
+    - SAUCE: LSM stacking: add Kconfig to set default display LSM
+    - SAUCE: LSM stacking: add configs for LSM stacking
+    - SAUCE: LSM stacking: check for invalid zero sized writes
+    - [Config] Run updateconfigs after merging LSM stacking
+    - [Config] CONFIG_AMD_MEM_ENCRYPT=y
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 13 Nov 2017 08:12:08 -0600
+
+linux (4.14.0-6.8) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: add workarounds to enable ZFS for 4.14
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 06 Nov 2017 11:39:00 -0600
+
+linux (4.14.0-5.7) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Fix invocation of dh_prep for dbgsym packages
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 31 Oct 2017 07:07:23 -0500
+
+linux (4.14.0-4.5) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] virtualbox -- reduce in kernel module versions
+    - vbox-update: Fix up KERN_DIR definitions
+    - ubuntu: vbox -- update to 5.2.0-dfsg-2
+    - [Config] CONFIG_AMD_MEM_ENCRYPT=n
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 30 Oct 2017 13:29:20 -0500
+
+linux (4.14.0-3.4) artful; urgency=low
+
+  * Touchpad and TrackPoint Dose Not Work on Lenovo X1C6 and X280 (LP: #1723986)
+    - SAUCE: Input: synaptics-rmi4 - RMI4 can also use SMBUS version 3
+    - SAUCE: Input: synaptics - Lenovo X1 Carbon 5 should use SMBUS/RMI
+    - SAUCE: Input: synaptics - add Intertouch support on X1 Carbon 6th and X280
+
+  * powerpc/64s: Add workaround for P9 vector CI load issuenext (LP: #1721070)
+    - powerpc/64s: Add workaround for P9 vector CI load issue
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: staging: vboxvideo: Fix reporting invalid suggested-offset-properties
+    - [Config] CONFIG_DRM_VBOXVIDEO=m
+    - SAUCE: Import aufs driver
+    - [Config] Enable aufs
+    - [Config] Reorder annotations file after enabling aufs
+    - vbox-update: Disable imported vboxvideo module
+    - ubuntu: vbox -- update to 5.1.30-dfsg-1
+    - Enable vbox
+    - hio: Use correct sizes when initializing ssd_index_bits* arrays
+    - hio: Update io stat accounting for 4.14
+    - Enable hio
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc5
+  * Rebase to v4.14-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 23 Oct 2017 13:53:52 -0500
+
+linux (4.14.0-2.3) artful; urgency=low
+
+  * [Bug] USB controller failed to respond on Denverton after loading
+    intel_th_pci module (LP: #1715833)
+    - SAUCE: PCI: Disable broken RTIT_BAR of Intel TH
+
+  * CONFIG_DEBUG_FS is not enabled by "make zfcpdump_defconfig" with Ubuntu
+    17.10 (kernel 4.13) (LP: #1719290)
+    - SAUCE: s390: update zfcpdump_defconfig
+
+  * Add installer support for Broadcom BCM573xx network drivers. (LP: #1720466)
+    - d-i: Add bnxt_en to nic-modules.
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Update annotations for 4.14-rc2
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc3
+  * Rebase to v4.14-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 11 Oct 2017 16:04:27 -0500
+
+linux (4.14.0-1.2) artful; urgency=low
+
+  * [Bug] USB 3.1 Gen2 works as 5Gbps (LP: #1720045)
+    - xhci: set missing SuperSpeedPlus Link Protocol bit in roothub descriptor
+
+  * Please make linux-libc-dev Provide: aufs-dev (LP: #1716091)
+    - [Packaging] Add aufs-dev to the Provides: for linux-libc-dev
+
+  * Upgrade to 4.13.0-11.12 in artful amd64 VM breaks display on wayland
+    (LP: #1718679)
+    - [Config] CONFIG_DRM_VBOXVIDEO=n
+
+  * ipmmu-vmsa driver breaks arm64 boots (LP: #1718734)
+    - [Config] Disable CONFIG_IPMMU_VMSA on arm64
+
+  * autopkgtest profile fails to build on armhf (LP: #1717920)
+    - [Packaging] autopkgtest -- disable d-i when dropping flavours
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_I2C_XLP9XX=m
+    - [Packaging] Use SRCPKGNAME rather than hard-coding the source package name
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 29 Sep 2017 09:09:11 -0400
+
+linux (4.14.0-0.1) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - Disable vbox build
+    - Disable hio build
+    - Disable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 19 Sep 2017 20:22:29 -0500
+
+linux (4.13.0-11.12) artful; urgency=low
+
+  * linux: 4.13.0-11.12 -proposed tracker (LP: #1716699)
+
+  * kernel panic -not syncing: Fatal exception: panic_on_oops (LP: #1708399)
+    - s390/mm: fix local TLB flushing vs. detach of an mm address space
+    - s390/mm: fix race on mm->context.flush_mm
+
+  * CVE-2017-1000251
+    - Bluetooth: Properly check L2CAP config option output buffer length
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 12 Sep 2017 10:18:38 -0500
+
+linux (4.13.0-10.11) artful; urgency=low
+
+  * linux: 4.13.0-10.11 -proposed tracker (LP: #1716287)
+
+  * please add aufs-dkms to the Provides: for the kernel packages (LP: #1716093)
+    - [Packaging] Add aufs-dkms to the Provides: for kernel packages
+
+  * Artful update to v4.13.1 stable release (LP: #1716284)
+    - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
+    - USB: serial: option: add support for D-Link DWM-157 C1
+    - usb: Add device quirk for Logitech HD Pro Webcam C920-C
+    - usb:xhci:Fix regression when ATI chipsets detected
+    - USB: musb: fix external abort on suspend
+    - ANDROID: binder: add padding to binder_fd_array_object.
+    - ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
+    - USB: core: Avoid race of async_completed() w/ usbdev_release()
+    - staging/rts5208: fix incorrect shift to extract upper nybble
+    - staging: ccree: save ciphertext for CTS IV
+    - staging: fsl-dpaa2/eth: fix off-by-one FD ctrl bitmaks
+    - iio: adc: ti-ads1015: fix incorrect data rate setting update
+    - iio: adc: ti-ads1015: fix scale information for ADS1115
+    - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set
+    - iio: adc: ti-ads1015: avoid getting stale result after runtime resume
+    - iio: adc: ti-ads1015: don't return invalid value from buffer setup callbacks
+    - iio: adc: ti-ads1015: add adequate wait time to get correct conversion
+    - driver core: bus: Fix a potential double free
+    - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
+    - binder: free memory on error
+    - crypto: caam/qi - fix compilation with CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
+    - crypto: caam/qi - fix compilation with DEBUG enabled
+    - thunderbolt: Fix reset response_type
+    - fpga: altera-hps2fpga: fix multiple init of l3_remap_lock
+    - intel_th: pci: Add Cannon Lake PCH-H support
+    - intel_th: pci: Add Cannon Lake PCH-LP support
+    - ath10k: fix memory leak in rx ring buffer allocation
+    - drm/vgem: Pin our pages for dmabuf exports
+    - drm/ttm: Fix accounting error when fail to get pages for pool
+    - drm/dp/mst: Handle errors from drm_atomic_get_private_obj_state() correctly
+    - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
+    - Bluetooth: Add support of 13d3:3494 RTL8723BE device
+    - iwlwifi: pci: add new PCI ID for 7265D
+    - dlm: avoid double-free on error path in dlm_device_{register,unregister}
+    - mwifiex: correct channel stat buffer overflows
+    - MCB: add support for SC31 to mcb-lpc
+    - s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs
+    - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
+    - drm/nouveau: Fix error handling in nv50_disp_atomic_commit
+    - workqueue: Fix flag collision
+    - ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme
+    - cs5536: add support for IDE controller variant
+    - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
+    - scsi: sg: recheck MMAP_IO request length with lock held
+    - of/device: Prevent buffer overflow in of_device_modalias()
+    - rtlwifi: Fix memory leak when firmware request fails
+    - rtlwifi: Fix fallback firmware loading
+    - Linux 4.13.1
+
+  * Kernel has trouble recognizing Corsair Strafe RGB keyboard (LP: #1678477)
+    - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
+
+  * SRIOV: warning if unload VFs (LP: #1715073)
+    - PCI: Disable VF decoding before pcibios_sriov_disable() updates resources
+
+  * [Patch] network-i40e:NVM bug fixes (cherrypick from 4.14) (LP: #1715578)
+    - i40e: avoid NVM acquire deadlock during NVM update
+    - i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq
+
+  * [P9,POwer NV] Perf PMU event : pm_br_2path and pm_ld_miss_l1 is counted
+    twice when perf stat is done (perf:) (LP: #1714571)
+    - perf vendor events powerpc: Remove duplicate events
+
+  * Unable to install Ubuntu on the NVMe disk under VMD PCI domain
+    (LP: #1703339)
+    - [Config] Include vmd in storage-core-modules udeb
+
+  * 17.10 fails to boot on POWER9 DD2.0 with Deep stop states (LP: #1715064)
+    - powerpc/powernv: Save/Restore additional SPRs for stop4 cpuidle
+    - powerpc/powernv: Clear PECE1 in LPCR via stop-api only on Hotplug
+    - SAUCE: powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep state
+      offline
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/seccomp: Support glibc 2.26 siginfo_t.h
+    - Revert "UBUNTU: SAUCE: Import aufs driver"
+    - SAUCE: Import aufs driver
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 10 Sep 2017 17:48:59 -0500
+
+linux (4.13.0-9.10) artful; urgency=low
+
+  * linux: 4.13.0-9.10 -proposed tracker (LP: #1715145)
+
+  * EDAC sbridge: Failed to register device with error -22. (LP: #1714112)
+    - [Config] CONFIG_EDAC_GHES=n
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu: vbox -- update to 5.1.26-dfsg-2
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 05 Sep 2017 07:51:19 -0500
+
+linux (4.13.0-8.9) artful; urgency=low
+
+  * snapd 2.27.3+17.10 ADT test failure with linux 4.13.0-6.7 (LP: #1713103)
+    - SAUCE: apparmor: fix apparmorfs DAC access, permissions
+
+  * enable ARCH_SUNXI (and friends) in arm64 kernel .config (LP: #1701137)
+    - [Config] Enable CONFIG_ARCH_SUNXI and related options for arm64
+
+  * [Bug] Harrisonville: pnd2_edac always fail to load on B1 stepping
+    Harrisonville SDP (LP: #1709257)
+    - EDAC, pnd2: Build in a minimal sideband driver for Apollo Lake
+    - EDAC, pnd2: Mask off the lower four bits of a BAR
+    - EDAC, pnd2: Conditionally unhide/hide the P2SB PCI device to read BAR
+    - EDAC, pnd2: Properly toggle hidden state for P2SB PCI device
+    - SAUCE: i2c: i801: Restore the presence state of P2SB PCI device after
+      reading BAR
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: Import aufs driver"
+    - SAUCE: Import aufs driver
+    - SAUCE: selftests/powerpc: Disable some ptrace selftests
+    - [Config] CONFIG_CRYPTO_DEV_NITROX_CNN55XX=n for s390x
+    - [Config] CONFIG_I2C_SLAVE=n for amd64, i386, ppc64el
+    - [Config] Disable CONFIG_MDIO_* options for s390x
+    - [Config] CONFIG_SCSI_MQ_DEFAULT=n for s390x
+    - [Config] Update annotations for 4.13
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 31 Aug 2017 14:27:09 -0500
+
+linux (4.13.0-7.8) artful; urgency=low
+
+  * linux 4.12.0-11.12 ADT test failure with linux 4.12.0-11.12 (LP: #1710904)
+    - SAUCE: selftests/powerpc: Use snprintf to construct DSCR sysfs interface
+      paths
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: seccomp: log actions even when audit is disabled"
+
+  * Miscellaneous upstream changes
+    - seccomp: Provide matching filter for introspection
+    - seccomp: Sysctl to display available actions
+    - seccomp: Operation for checking if an action is available
+    - seccomp: Sysctl to configure actions that are allowed to be logged
+    - seccomp: Selftest for detection of filter flag support
+    - seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW
+    - seccomp: Action to log before allowing
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 28 Aug 2017 08:12:24 -0500
+
+linux (4.13.0-6.7) artful; urgency=low
+
+  * HID: multitouch: Support ALPS PTP Stick and Touchpad devices (LP: #1712481)
+    - SAUCE: HID: multitouch: Support ALPS PTP stick with pid 0x120A
+
+  * sort ABI files with C.UTF-8 locale (LP: #1712345)
+    - [Packaging] sort ABI files with C.UTF-8 locale
+
+  * igb: Support using Broadcom 54616 as PHY (LP: #1712024)
+    - SAUCE: igb: add support for using Broadcom 54616 as PHY
+
+  * RPT related fixes missing in Ubuntu 16.04.3 (LP: #1709220)
+    - powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes
+    - powerpc/mm/radix: Improve TLB/PWC flushes
+    - powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range
+
+  * Linux 4.12 refuses to load self-signed modules under Secure Boot with
+    properly enrolled keys (LP: #1712168)
+    - SAUCE: (efi-lockdown) MODSIGN: Fix module signature verification
+
+  * [17.10 FEAT] Enable NVMe driver - kernel (LP: #1708432)
+    - [Config] CONFIG_BLK_DEV_NVME=m for s390
+
+  * Artful: 4.12.0-11.12: Boot panic in vlv2_plat_configure_clock+0x3b/0xa0
+    (LP: #1711298)
+    - [Config] CONFIG_INTEL_ATOMISP=n
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: apparmor: af_unix mediation
+
+  * Miscellaneous upstream changes
+    - apparmor: Fix shadowed local variable in unpack_trans_table()
+    - apparmor: Fix logical error in verify_header()
+    - apparmor: Fix an error code in aafs_create()
+    - apparmor: Redundant condition: prev_ns. in [label.c:1498]
+    - apparmor: add the ability to mediate signals
+    - apparmor: add mount mediation
+    - apparmor: cleanup conditional check for label in label_print
+    - apparmor: add support for absolute root view based labels
+    - apparmor: make policy_unpack able to audit different info messages
+    - apparmor: add more debug asserts to apparmorfs
+    - apparmor: add base infastructure for socket mediation
+    - apparmor: move new_null_profile to after profile lookup fns()
+    - apparmor: fix race condition in null profile creation
+    - apparmor: ensure unconfined profiles have dfas initialized
+    - apparmor: fix incorrect type assignment when freeing proxies
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 23 Aug 2017 08:10:38 -0500
+
+linux (4.13.0-5.6) artful; urgency=low
+
+  * Ubuntu17.10 - perf: Update Power9 PMU event JSON files (LP: #1708630)
+    - perf pmu-events: Support additional POWER8+ PVR in mapfile
+    - perf vendor events: Add POWER9 PMU events
+    - perf vendor events: Add POWER9 PVRs to mapfile
+    - SAUCE: perf vendor events powerpc: remove suffix in mapfile
+    - SAUCE: perf vendor events powerpc: Update POWER9 events
+
+  * Disable CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE (LP: #1709171)
+    - [Config] CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=n for ppc64el
+
+  * Please only recommend or suggest initramfs-tools | linux-initramfs-tool for
+    kernels able to boot without initramfs (LP: #1700972)
+    - [Debian] Don't depend on initramfs-tools
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Import aufs driver
+    - SAUCE: aufs -- Add missing argument to loop_switch() call
+    - [Config] Enable aufs
+    - SAUCE: (noup) Update spl to 0.6.5.11-ubuntu1, zfs to 0.6.5.11-1ubuntu3
+    - Enable zfs build
+    - SAUCE: powerpc: Always initialize input array when calling epapr_hypercall()
+    - [Packaging] switch up to debhelper 9
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 15 Aug 2017 09:24:16 -0500
+
+linux (4.13.0-4.5) artful; urgency=low
+
+  * Lenovo Yoga 910 Sensors (LP: #1708120)
+    - SAUCE: (no-up) HID: Add quirk for Lenovo Yoga 910 with ITE Chips
+
+  * Unable to install Ubuntu on the NVMe disk under VMD PCI domain
+    (LP: #1703339)
+    - [Config] Add vmd driver to generic inclusion list
+
+  * Set CONFIG_SATA_HIGHBANK=y on armhf (LP: #1703430)
+    - [Config] CONFIG_SATA_HIGHBANK=y
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu: vbox -- update to 5.1.26-dfsg-1
+    - SAUCE: hio: Build fixes for 4.13
+    - Enable hio build
+    - SAUCE: (noup) Update spl to 0.6.5.11-1, zfs to 0.6.5.11-1ubuntu1
+    - [debian] use all rather than amd64 dkms debs for sync
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 08 Aug 2017 11:31:48 -0500
+
+linux (4.13.0-3.4) artful; urgency=low
+
+  * Adt tests of src:linux time out often on armhf lxc containers (LP: #1705495)
+    - [Packaging] tests -- reduce rebuild test to one flavour
+    - [Packaging] tests -- reduce rebuild test to one flavour -- use filter
+
+  * snapd 2.26.8+17.10 ADT test failure with linux 4.12.0-6.7 (LP: #1704158)
+    - SAUCE: virtio_net: Revert mergeable buffer handling rework
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 31 Jul 2017 10:08:16 -0500
+
+linux (4.13.0-2.3) artful; urgency=low
+
+  * Change CONFIG_IBMVETH to module (LP: #1704479)
+    - [Config] CONFIG_IBMVETH=m
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 24 Jul 2017 13:58:08 -0500
+
+linux (4.13.0-1.2) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Support sphinx-based kernel documentation
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 20 Jul 2017 09:18:33 -0500
+
+linux (4.13.0-0.1) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - Disable hio
+    - Disable zfs build
+    - ubuntu: vbox -- update to 5.1.24-dfsg-1
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 19 Jul 2017 15:09:31 -0500
+
+linux (4.12.0-7.8) artful; urgency=low
+
+  * ThunderX: soft lockup on 4.8+ kernels when running qemu-efi with vhost=on
+    (LP: #1673564)
+    - arm64: Add a facility to turn an ESR syndrome into a sysreg encoding
+    - KVM: arm/arm64: vgic-v3: Add accessors for the ICH_APxRn_EL2 registers
+    - KVM: arm64: Make kvm_condition_valid32() accessible from EL2
+    - KVM: arm64: vgic-v3: Add hook to handle guest GICv3 sysreg accesses at EL2
+    - KVM: arm64: vgic-v3: Add ICV_BPR1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_IGRPEN1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_EOIR1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_AP1Rn_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_HPPIR1_EL1 handler
+    - KVM: arm64: vgic-v3: Enable trapping of Group-1 system registers
+    - KVM: arm64: Enable GICv3 Group-1 sysreg trapping via command-line
+    - KVM: arm64: vgic-v3: Add ICV_BPR0_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_IGNREN0_EL1 handler
+    - KVM: arm64: vgic-v3: Add misc Group-0 handlers
+    - KVM: arm64: vgic-v3: Enable trapping of Group-0 system registers
+    - KVM: arm64: Enable GICv3 Group-0 sysreg trapping via command-line
+    - arm64: Add MIDR values for Cavium cn83XX SoCs
+    - arm64: Add workaround for Cavium Thunder erratum 30115
+    - KVM: arm64: vgic-v3: Add ICV_DIR_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_RPR_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_CTLR_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_PMR_EL1 handler
+    - KVM: arm64: Enable GICv3 common sysreg trapping via command-line
+    - KVM: arm64: vgic-v3: Log which GICv3 system registers are trapped
+    - KVM: arm64: Log an error if trapping a read-from-write-only GICv3 access
+    - KVM: arm64: Log an error if trapping a write-to-read-only GICv3 access
+
+  * hns: under heavy load, NIC may fail and require reboot (LP: #1704146)
+    - net: hns: Bugfix for Tx timeout handling in hns driver
+
+  * New ACPI identifiers for ThunderX SMMU (LP: #1703437)
+    - iommu/arm-smmu: Plumb in new ACPI identifiers
+
+  * Transparent hugepages should default to enabled=madvise (LP: #1703742)
+    - SAUCE: use CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y as default
+
+  * Artful update to v4.12.1 stable release (LP: #1703858)
+    - driver core: platform: fix race condition with driver_override
+    - RDMA/uverbs: Check port number supplied by user verbs cmds
+    - usb: dwc3: replace %p with %pK
+    - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
+    - usb: usbip: set buffer pointers to NULL after free
+    - Add USB quirk for HVR-950q to avoid intermittent device resets
+    - usb: Fix typo in the definition of Endpoint[out]Request
+    - USB: core: fix device node leak
+    - USB: serial: option: add two Longcheer device ids
+    - USB: serial: qcserial: new Sierra Wireless EM7305 device ID
+    - xhci: Limit USB2 port wake support for AMD Promontory hosts
+    - gfs2: Fix glock rhashtable rcu bug
+    - Add "shutdown" to "struct class".
+    - tpm: Issue a TPM2_Shutdown for TPM2 devices.
+    - tpm: fix a kernel memory leak in tpm-sysfs.c
+    - powerpc/powernv: Fix CPU_HOTPLUG=n idle.c compile error
+    - x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings
+    - sched/fair, cpumask: Export for_each_cpu_wrap()
+    - sched/core: Implement new approach to scale select_idle_cpu()
+    - sched/numa: Use down_read_trylock() for the mmap_sem
+    - sched/numa: Override part of migrate_degrades_locality() when idle balancing
+    - sched/fair: Simplify wake_affine() for the single socket case
+    - sched/numa: Implement NUMA node level wake_affine()
+    - sched/fair: Remove effective_load()
+    - sched/numa: Hide numa_wake_affine() from UP build
+    - xen: avoid deadlock in xenbus driver
+    - crypto: drbg - Fixes panic in wait_for_completion call
+    - Linux 4.12.1
+
+  * cxlflash update request in the Xenial SRU stream (LP: #1702521)
+    - scsi: cxlflash: Combine the send queue locks
+    - scsi: cxlflash: Update cxlflash_afu_sync() to return errno
+    - scsi: cxlflash: Reset hardware queue context via specified register
+    - scsi: cxlflash: Schedule asynchronous reset of the host
+    - scsi: cxlflash: Handle AFU sync failures
+    - scsi: cxlflash: Track pending scsi commands in each hardware queue
+    - scsi: cxlflash: Flush pending commands in cleanup path
+    - scsi: cxlflash: Add scsi command abort handler
+    - scsi: cxlflash: Create character device to provide host management interface
+    - scsi: cxlflash: Separate AFU internal command handling from AFU sync
+      specifics
+    - scsi: cxlflash: Introduce host ioctl support
+    - scsi: cxlflash: Refactor AFU capability checking
+    - scsi: cxlflash: Support LUN provisioning
+    - scsi: cxlflash: Support AFU debug
+    - scsi: cxlflash: Support WS16 unmap
+    - scsi: cxlflash: Remove zeroing of private command data
+    - scsi: cxlflash: Update TMF command processing
+    - scsi: cxlflash: Avoid double free of character device
+    - scsi: cxlflash: Update send_tmf() parameters
+    - scsi: cxlflash: Update debug prints in reset handlers
+
+  * make snap-pkg support (LP: #1700747)
+    - make snap-pkg support
+
+  * Quirk for non-compliant PCI bridge on HiSilicon D05 board (LP: #1698706)
+    - SAUCE: PCI: Support hibmc VGA cards behind a misbehaving HiSilicon bridge
+
+  * arm64: fix crash reading /proc/kcore (LP: #1702749)
+    - fs/proc: kcore: use kcore_list type to check for vmalloc/module address
+    - arm64: mm: select CONFIG_ARCH_PROC_KCORE_TEXT
+
+  * Opal and POWER9 DD2 (LP: #1702159)
+    - SAUCE: powerpc/powernv: Tell OPAL about our MMU mode on POWER9
+
+  * Data corruption with hio driver  (LP: #1701316)
+    - SAUCE: hio: Fix incorrect use of enum req_opf values
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.6.5.10-1, zfs to 0.6.5.10-1ubuntu2
+    - snapcraft.yaml: Sync with xenial
+    - [Config] CONFIG_CAVIUM_ERRATUM_30115=y
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and
+      MokSBState"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 14 Jul 2017 15:25:41 -0500
+
+linux (4.12.0-6.7) artful; urgency=low
+
+  * update ENA driver to 1.2.0k from net-next (LP: #1701575)
+    - net: ena: change return value for unsupported features unsupported return
+      value
+    - net: ena: add hardware hints capability to the driver
+    - net: ena: change sizeof() argument to be the type pointer
+    - net: ena: add reset reason for each device FLR
+    - net: ena: add support for out of order rx buffers refill
+    - net: ena: allow the driver to work with small number of msix vectors
+    - net: ena: use napi_schedule_irqoff when possible
+    - net: ena: separate skb allocation to dedicated function
+    - net: ena: use lower_32_bits()/upper_32_bits() to split dma address
+    - net: ena: update driver's rx drop statistics
+    - net: ena: update ena driver to version 1.2.0
+
+  * APST gets enabled against explicit kernel option (LP: #1699004)
+    - nvme: explicitly disable APST on quirked devices
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: hio: Update to Huawei ES3000_V2 (2.1.0.40)
+    - SAUCE: hio updates for 4.12
+    - SAUCE: Enable hio build
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 05 Jul 2017 14:23:20 -0500
+
+linux (4.12.0-5.6) artful; urgency=low
+
+  * ERAT invalidate on context switch removal (LP: #1700819)
+    - powerpc: Only do ERAT invalidate on radix context switch on P9 DD1
+
+  * powerpc: Invalidate ERAT on powersave wakeup for POWER9 (LP: #1700521)
+    - SAUCE: powerpc: Invalidate ERAT on powersave wakeup for POWER9
+
+  * Miscellaneous Ubuntu changes
+    - d-i: Move qcom-emac from arm64 to shared nic-modules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 03 Jul 2017 07:52:02 -0500
+
+linux (4.12.0-4.5) artful; urgency=low
+
+  * aacraid driver may return uninitialized stack data to userspace
+    (LP: #1700077)
+    - SAUCE: scsi: aacraid: Don't copy uninitialized stack memory to userspace
+
+  * KILLER1435-S[0489:e0a2] BT cannot search BT 4.0 device (LP: #1699651)
+    - Bluetooth: btusb: Add support for 0489:e0a2 QCA_ROME device
+
+  * AACRAID for power9 platform (LP: #1689980)
+    - scsi: aacraid: Remove __GFP_DMA for raw srb memory
+    - scsi: aacraid: Fix DMAR issues with iommu=pt
+    - scsi: aacraid: Added 32 and 64 queue depth for arc natives
+    - scsi: aacraid: Set correct Queue Depth for HBA1000 RAW disks
+    - scsi: aacraid: Remove reset support from check_health
+    - scsi: aacraid: Change wait time for fib completion
+    - scsi: aacraid: Log count info of scsi cmds before reset
+    - scsi: aacraid: Print ctrl status before eh reset
+    - scsi: aacraid: Using single reset mask for IOP reset
+    - scsi: aacraid: Rework IOP reset
+    - scsi: aacraid: Add periodic checks to see IOP reset status
+    - scsi: aacraid: Rework SOFT reset code
+    - scsi: aacraid: Rework aac_src_restart
+    - scsi: aacraid: Use correct function to get ctrl health
+    - scsi: aacraid: Make sure ioctl returns on controller reset
+    - scsi: aacraid: Enable ctrl reset for both hba and arc
+    - scsi: aacraid: Add reset debugging statements
+    - scsi: aacraid: Remove reference to Series-9
+    - scsi: aacraid: Update driver version to 50834
+
+  * hibmc driver does not include "pci:" prefix in bus ID (LP: #1698700)
+    - SAUCE: drm: hibmc: Use set_busid function from drm core
+
+  * HiSilicon D05: installer doesn't appear on VGA (LP: #1698954)
+    - d-i: Add hibmc-drm to kernel-image udeb
+
+  * Fix /proc/cpuinfo revision for POWER9 DD2 (LP: #1698844)
+    - SAUCE: powerpc: Fix /proc/cpuinfo revision for POWER9 DD2
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_SATA_MV=n and CONFIG_GENERIC_PHY=n for s390x
+    - [Config] CONFIG_ATA=n for s390x
+    - [Config] Update annotations for 4.12
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 26 Jun 2017 11:27:29 -0500
+
+linux (4.12.0-3.4) artful; urgency=low
+
+  * Miscellaneous upstream changes
+    - ufs: fix the logics for tail relocation
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 19 Jun 2017 14:50:39 -0500
+
+linux (4.12.0-2.3) artful; urgency=low
+
+  * CVE-2014-9900
+    - SAUCE: (no-up) net: Zeroing the structure ethtool_wolinfo in
+      ethtool_get_wol()
+
+  * System doesn't boot properly on Gigabyte AM4 motherboards (AMD Ryzen)
+    (LP: #1671360)
+    - pinctrl/amd: Use regular interrupt instead of chained
+
+  * extend-diff-ignore should use exact matches (LP: #1693504)
+    - [Packaging] exact extend-diff-ignore matches
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: efi: Don't print secure boot state from the efi stub
+    - ubuntu: vbox -- Update to 5.1.22-dfsg-1
+    - SAUCE: vbox fixes for 4.12
+    - Re-enable virtualbox build
+    - [Config] CONFIG_ORANGEFS_FS=m
+    - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu2, zfs to 0.6.5.9-5ubuntu7
+    - Enable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc4
+  * Rebase to v4.12-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 11 Jun 2017 22:25:13 -0500
+
+linux (4.12.0-1.2) artful; urgency=low
+
+  * Enable Matrox driver for Ubuntu 16.04.3 (LP: #1693337)
+    - [Config] Enable CONFIG_DRM_MGAG200 as module
+
+  * Support low-pin-count devices on Hisilicon SoCs (LP: #1677319)
+    - [Config] CONFIG_LIBIO=y on arm64 only
+    - SAUCE: LIBIO: Introduce a generic PIO mapping method
+    - SAUCE: OF: Add missing I/O range exception for indirect-IO devices
+    - [Config] CONFIG_HISILICON_LPC=y
+    - SAUCE: LPC: Support the device-tree LPC host on Hip06/Hip07
+    - SAUCE: LIBIO: Support the dynamically logical PIO registration of ACPI host
+      I/O
+    - SAUCE: LPC: Add the ACPI LPC support
+    - SAUCE: PCI: Apply the new generic I/O management on PCI IO hosts
+    - SAUCE: PCI: Restore codepath for !CONFIG_LIBIO
+
+  * POWER9: Additional patches for TTY and CPU_IDLE (LP: #1674325)
+    - SAUCE: tty: Fix ldisc crash on reopened tty
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Add build-dep on libnuma-dev to enable 'perf bench numa'
+    - Rebase to v4.12-rc3
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 29 May 2017 20:56:29 -0500
+
+linux (4.12.0-0.1) artful; urgency=low
+
+  * please enable CONFIG_ARM64_LSE_ATOMICS (LP: #1691614)
+    - [Config] CONFIG_ARM64_LSE_ATOMICS=y
+
+  * [Regression] NUMA_BALANCING disabled on arm64 (LP: #1690914)
+    - [Config] CONFIG_NUMA_BALANCING{,_DEFAULT_ENABLED}=y on arm64
+
+  * exec'ing a setuid binary from a threaded program sometimes fails to setuid
+    (LP: #1672819)
+    - SAUCE: exec: ensure file system accounting in check_unsafe_exec is correct
+
+  * Miscellaneous Ubuntu changes
+    - Update find-missing-sauce.sh to compare to artful
+    - Update dropped.txt
+    - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode
+    - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been
+      set
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel
+      is locked down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Enable cold boot attack mitigation
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) scsi: Lock down the eata driver
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for
+      MokSBState
+    - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState
+    - [Config] Set values for UEFI secure boot lockdown options
+    - Disable virtualbox build
+    - Disable hio build
+    - SAUCE: securityfs: Replace CURRENT_TIME with current_time()
+    - Disable zfs build
+    - [Debian] Work out upstream tag for use with gen-auto-reconstruct
+    - SAUCE: Import aufs driver
+    - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h
+    - [Config] Enable aufs
+    - SAUCE: perf callchain: Include errno.h on x86 unconditinally
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 21 May 2017 23:44:44 -0500
+
+linux (4.11.0-3.8) artful; urgency=low
+
+  [ Seth Forshee ]
+
+  * Release Tracking Bug
+    - LP: #1690999
+
+  * apparmor_parser hangs indefinitely when called by multiple threads
+    (LP: #1645037)
+    - SAUCE: apparmor: fix lock ordering for mkdir
+
+  * apparmor leaking securityfs pin count (LP: #1660846)
+    - SAUCE: apparmor: fix leak on securityfs pin count
+
+  * apparmor reference count leak when securityfs_setup_d_inode\ () fails
+    (LP: #1660845)
+    - SAUCE: apparmor: fix reference count leak when securityfs_setup_d_inode()
+      fails
+
+  * apparmor not checking error if security_pin_fs() fails (LP: #1660842)
+    - SAUCE: apparmor: fix not handling error case when securityfs_pin_fs() fails
+
+  * libvirt profile is blocking global setrlimit despite having no rlimit rule
+    (LP: #1679704)
+    - SAUCE: apparmor: fix complain mode failure for rlimit mediation
+    - apparmor: update auditing of rlimit check to provide capability information
+
+  * apparmor: does not provide a way to detect policy updataes (LP: #1678032)
+    - SAUCE: apparmor: add policy revision file interface
+
+  * apparmor does not make support of query data visible (LP: #1678023)
+    - SAUCE: apparmor: add label data availability to the feature set
+
+  * apparmor query interface does not make supported query info available
+    (LP: #1678030)
+    - SAUCE: apparmor: add information about the query inteface to the feature set
+
+  * change_profile incorrect when using namespaces with a compound stack
+    (LP: #1677959)
+    - SAUCE: apparmor: fix label parse for stacked labels
+
+  * Regression in 4.4.0-65-generic causes very frequent system crashes
+    (LP: #1669611)
+    - apparmor: sync of apparmor 3.6+ (17.04)
+
+  * Artful update to 4.11.1 stable release (LP: #1690814)
+    - dm ioctl: prevent stack leak in dm ioctl call
+    - drm/sti: fix GDP size to support up to UHD resolution
+    - power: supply: lp8788: prevent out of bounds array access
+    - brcmfmac: Ensure pointer correctly set if skb data location changes
+    - brcmfmac: Make skb header writable before use
+    - sparc64: fix fault handling in NGbzero.S and GENbzero.S
+    - refcount: change EXPORT_SYMBOL markings
+    - net: macb: fix phy interrupt parsing
+    - tcp: fix access to sk->sk_state in tcp_poll()
+    - geneve: fix incorrect setting of UDP checksum flag
+    - bpf: enhance verifier to understand stack pointer arithmetic
+    - bpf, arm64: fix jit branch offset related to ldimm64
+    - tcp: fix wraparound issue in tcp_lp
+    - net: ipv6: Do not duplicate DAD on link up
+    - net: usb: qmi_wwan: add Telit ME910 support
+    - tcp: do not inherit fastopen_req from parent
+    - ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
+    - rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
+    - ipv6: initialize route null entry in addrconf_init()
+    - ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
+    - tcp: randomize timestamps on syncookies
+    - bnxt_en: allocate enough space for ->ntp_fltr_bmap
+    - bpf: don't let ldimm64 leak map addresses on unprivileged
+    - net: mdio-mux: bcm-iproc: call mdiobus_free() in error path
+    - f2fs: sanity check segment count
+    - xen/arm,arm64: fix xen_dma_ops after 815dd18 "Consolidate get_dma_ops..."
+    - xen: Revert commits da72ff5bfcb0 and 72a9b186292d
+    - block: get rid of blk_integrity_revalidate()
+    - Linux 4.11.1
+
+  * Module signing exclusion for staging drivers does not work properly
+    (LP: #1690908)
+    - SAUCE: Fix module signing exclusion in package builds
+
+  * perf: qcom: Add L3 cache PMU driver (LP: #1689856)
+    - [Config] CONFIG_QCOM_L3_PMU=y
+    - perf: qcom: Add L3 cache PMU driver
+
+  * No PMU support for ACPI-based arm64 systems (LP: #1689661)
+    - drivers/perf: arm_pmu: rework per-cpu allocation
+    - drivers/perf: arm_pmu: manage interrupts per-cpu
+    - drivers/perf: arm_pmu: split irq request from enable
+    - drivers/perf: arm_pmu: remove pointless PMU disabling
+    - drivers/perf: arm_pmu: define armpmu_init_fn
+    - drivers/perf: arm_pmu: fold init into alloc
+    - drivers/perf: arm_pmu: factor out pmu registration
+    - drivers/perf: arm_pmu: simplify cpu_pmu_request_irqs()
+    - drivers/perf: arm_pmu: handle no platform_device
+    - drivers/perf: arm_pmu: rename irq request/free functions
+    - drivers/perf: arm_pmu: split cpu-local irq request/free
+    - drivers/perf: arm_pmu: move irq request/free into probe
+    - drivers/perf: arm_pmu: split out platform device probe logic
+    - arm64: add function to get a cpu's MADT GICC table
+    - [Config] CONFIG_ARM_PMU_ACPI=y
+    - drivers/perf: arm_pmu: add ACPI framework
+    - arm64: pmuv3: handle !PMUv3 when probing
+    - arm64: pmuv3: use arm_pmu ACPI framework
+
+  * Fix NVLINK2 TCE route (LP: #1690155)
+    - powerpc/powernv: Fix TCE kill on NVLink2
+
+  * CVE-2017-0605
+    - tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Restore powerpc arch to annotations file
+    - [Config] Disable runtime testing modules
+    - [Config] Disable drivers not needed on s390x
+    - [Config] Update annotations for 4.11
+    - [Config] updateconfigs after apparmor updates
+
+  * Miscellaneous upstream changes
+    - apparmor: use SHASH_DESC_ON_STACK
+    - apparmor: fix invalid reference to index variable of iterator line 836
+    - apparmor: fix parameters so that the permission test is bypassed at boot
+    - apparmor: Make path_max parameter readonly
+    - apparmorfs: Combine two function calls into one in aa_fs_seq_raw_abi_show()
+    - apparmorfs: Use seq_putc() in two functions
+    - apparmor: provide information about path buffer size at boot
+    - apparmor: add/use fns to print hash string hex value
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 16 May 2017 00:39:13 -0500
+
+linux (4.11.0-2.7) artful; urgency=low
+
+  * kernel-wedge fails in artful due to leftover squashfs-modules d-i files
+    (LP: #1688259)
+    - Remove squashfs-modules files from d-i
+    - [Config] as squashfs-modules is builtin kernel-image must Provides: it
+
+  * [Zesty] d-i: replace msm_emac with qcom_emac (LP: #1677297)
+    - Revert "UBUNTU: d-i: initrd needs msm_emac on amberwing platform."
+    - d-i: initrd needs qcom_emac on amberwing platform.
+
+  * update for V3 kernel bits and improved multiple fan slice support
+    (LP: #1470091)
+    - SAUCE: fan: tunnel multiple mapping mode (v3)
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu1, zfs to 0.6.5.9-5ubuntu5
+    - Enable zfs
+    - SAUCE: fan: add VXLAN implementation
+    - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode
+    - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been
+      set
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel
+      is locked down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Enable cold boot attack mitigation
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) scsi: Lock down the eata driver
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Add EFI signature data types
+    - SAUCE: (efi-lockdown) Add an EFI signature blob parser and key loader.
+    - SAUCE: (efi-lockdown) KEYS: Add a system blacklist keyring
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Support not importing certs from db
+    - SAUCE: (efi-lockdown) MODSIGN: Don't try secure boot if EFI runtime is
+      disabled
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for
+      MokSBState
+    - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState
+    - [Config] Set values for UEFI secure boot lockdown options
+    - Update dropped.txt
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 05 May 2017 07:43:14 -0500
+
+linux (4.11.0-1.6) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Use default compression for all packages
+    - SAUCE: (namespace) block_dev: Support checking inode permissions in
+      lookup_bdev()
+    - SAUCE: (namespace) block_dev: Check permissions towards block device inode
+      when mounting
+    - SAUCE: (namespace) mtd: Check permissions towards mtd block device inode
+      when mounting
+    - SAUCE: (namespace) fs: Allow superblock owner to change ownership of inodes
+    - SAUCE: (namespace) fs: Don't remove suid for CAP_FSETID for userns root
+    - SAUCE: (namespace) fs: Allow superblock owner to access do_remount_sb()
+    - SAUCE: (namespace) capabilities: Allow privileged user in s_user_ns to set
+      security.* xattrs
+    - SAUCE: (namespace) fs: Allow CAP_SYS_ADMIN in s_user_ns to freeze and thaw
+      filesystems
+    - SAUCE: (namespace) fuse: Add support for pid namespaces
+    - SAUCE: (namespace) fuse: Support fuse filesystems outside of init_user_ns
+    - SAUCE: (namespace) fuse: Restrict allow_other to the superblock's namespace
+      or a descendant
+    - SAUCE: (namespace) fuse: Allow user namespace mounts
+    - SAUCE: (namespace) ext4: Add support for unprivileged mounts from user
+      namespaces
+    - SAUCE: (namespace) evm: Don't update hmacs in user ns mounts
+    - SAUCE: (namespace) ext4: Add module parameter to enable user namespace
+      mounts
+    - SAUCE: (namespace) block_dev: Forbid unprivileged mounting when device is
+      opened for writing
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 26 Apr 2017 10:08:29 -0500
+
+linux (4.11.0-0.5) artful; urgency=low
+
+  * [Hyper-V][SAUCE] pci-hyperv: Use only 16 bit integer for PCI domain
+    (LP: #1684971)
+    - SAUCE: pci-hyperv: Use only 16 bit integer for PCI domain
+
+  * [Hyper-V] Ubuntu 14.04.2 LTS Generation 2 SCSI Errors on VSS Based Backups
+    (LP: #1470250)
+    - SAUCE: Tools: hv: vss: Thaw the filesystem and continue after freeze fails
+
+  * Enable virtual scsi server driver for Power (LP: #1615665)
+    - SAUCE: Return TCMU-generated sense data to fabric module
+
+  * include/linux/security.h header syntax error with !CONFIG_SECURITYFS
+    (LP: #1630990)
+    - SAUCE: (no-up) include/linux/security.h -- fix syntax error with
+      CONFIG_SECURITYFS=n
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Import aufs driver
+    - [Config] Enable aufs
+    - [Debian] Add script to update virtualbox
+    - ubuntu: vbox -- Update to 5.1.20-dfsg-2
+    - Enable vbox
+    - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 25 Apr 2017 13:42:54 -0500
+
+linux (4.11.0-0.4) zesty; urgency=low
+
+  * POWER9: Improve performance on memory management (LP: #1681429)
+    - SAUCE: powerpc/mm/radix: Don't do page walk cache flush when doing full mm
+      flush
+    - SAUCE: powerpc/mm/radix: Remove unnecessary ptesync
+
+  * Miscellaneous Ubuntu changes
+    - find-missing-sauce.sh
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 18 Apr 2017 08:19:43 -0500
+
+linux (4.11.0-0.3) zesty; urgency=low
+
+  * Disable CONFIG_HVC_UDBG on ppc64el (LP: #1680888)
+    - [Config] Disable CONFIG_HVC_UDBG on ppc64el
+
+  * smartpqi driver needed in initram disk and installer (LP: #1680156)
+    - [Config] Add smartpqi to d-i
+
+  * Disable CONFIG_SECURITY_SELINUX_DISABLE (LP: #1680315)
+    - [Config] CONFIG_SECURITY_SELINUX_DISABLE=n
+
+  * Miscellaneous Ubuntu changes
+    - [Config] flash-kernel should be a Breaks
+    - [Config] drop the info directory
+    - [Config] drop NOTES as obsolete
+    - [Config] drop changelog.historical as obsolete
+    - rebase to v4.11-rc6
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc6
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Tue, 11 Apr 2017 07:16:52 -0600
+
+linux (4.11.0-0.2) zesty; urgency=low
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc5
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Mon, 03 Apr 2017 08:26:07 +0100
+
+linux (4.11.0-0.1) zesty; urgency=low
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc4
+    - LP: #1591053
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Mon, 20 Mar 2017 05:15:32 -0600
+
+linux (4.11.0-0.0) zesty; urgency=low
+
+  * dummy entry
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Mon, 20 Mar 2017 05:15:32 -0600
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/amd64/config.common.amd64
+++ linux-gkeop-5.4-5.4.0/debian.master/config/amd64/config.common.amd64
@@ -0,0 +1,648 @@
+#
+# Config options for config.common.amd64 automatically generated by splitconfig.pl
+#
+CONFIG_6LOWPAN=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=m
+CONFIG_ACPI_DEBUG=y
+CONFIG_ACPI_DEBUGGER=y
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_AD525X_DPOT=m
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ANDROID=y
+CONFIG_APDS9802ALS=m
+CONFIG_APPLICOM=m
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=32
+CONFIG_ARCH_MMAP_RND_BITS_MIN=28
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCNET=m
+CONFIG_ATA=y
+CONFIG_ATALK=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_GENERIC=y
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=y
+CONFIG_ATM=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX88796B_PHY=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BCH=m
+CONFIG_BCMA=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BE2ISCSI=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BOUNCE=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_C2PORT=m
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+CONFIG_CAN=m
+CONFIG_CB710_CORE=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CMDLINE_PARTITION=y
+# CONFIG_COMPAT_VDSO is not set
+CONFIG_COUNTER=m
+CONFIG_CRAMFS=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_DECNET=m
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DMADEVICES=y
+# CONFIG_DMA_CMA is not set
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DNET=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+# CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VKMS=m
+CONFIG_DS1682=m
+CONFIG_DUMMY_IRQ=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_ECHO=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFS_FS=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ETHOC=m
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_I740=m
+# CONFIG_FB_IBM_GXT4500 is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_METRONOME=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RIVA=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SM712=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIXED_PHY=y
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FRAME_WARN=1024
+CONFIG_FUSION=y
+CONFIG_GAMEPORT=m
+CONFIG_GENERIC_PHY=y
+CONFIG_GNSS=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GREYBUS=m
+CONFIG_HABANA_AI=m
+CONFIG_HAMACHI=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HIBERNATION=y
+CONFIG_HID=m
+CONFIG_HIO=m
+CONFIG_HMC6352=m
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HPFS_FS=m
+CONFIG_HP_ILO=m
+CONFIG_HSI=m
+CONFIG_HSR=m
+CONFIG_HTC_PASIC3=m
+CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+# CONFIG_HZ_100 is not set
+CONFIG_I2C=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_AMD_MP2=m
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+# CONFIG_I2C_SLAVE is not set
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ICS932S401=m
+CONFIG_IEEE802154=m
+CONFIG_IIO=m
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INTERCONNECT=m
+CONFIG_IOMMU_IOVA=y
+CONFIG_IPACK_BUS=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IP_DCCP_CCID3 is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_JFS_FS=m
+CONFIG_JME=m
+CONFIG_JUMP_LABEL=y
+CONFIG_KARMA_PARTITION=y
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZ4=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KVM=m
+CONFIG_LAPB=m
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LIBNVDIMM=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MAILBOX=y
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MCB=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMSTICK=m
+CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM8994=m
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MLXSW_I2C=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_CQHCI=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MTD=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+CONFIG_MTD_RAW_NAND=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFP=m
+CONFIG_NODES_SHIFT=10
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOZOMI=m
+CONFIG_NR_CPUS=8192
+CONFIG_NR_CPUS_DEFAULT=8192
+CONFIG_NR_CPUS_RANGE_BEGIN=8192
+CONFIG_NR_CPUS_RANGE_END=8192
+CONFIG_NTB=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_NVMEM=y
+CONFIG_NVRAM=m
+CONFIG_N_GSM=m
+# CONFIG_OF is not set
+CONFIG_OMFS_FS=m
+CONFIG_OSF_PARTITION=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_PACKING=y
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PARAVIRT=y
+CONFIG_PARPORT=m
+CONFIG_PATA_SIS=y
+CONFIG_PC104=y
+CONFIG_PCCARD=m
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCMCIA=m
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_CHERRYVIEW=y
+CONFIG_PM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPP=y
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_RAM=m
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PWM=y
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+CONFIG_RAPIDIO=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RC_CORE=m
+CONFIG_REED_SOLOMON=m
+# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REISERFS_FS=m
+CONFIG_REMOTEPROC=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RFKILL=y
+CONFIG_RMI4_CORE=m
+CONFIG_ROMFS_FS=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_S2IO=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SCHED_SMT=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SNIC=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_WD719X=m
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIO=y
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP=m
+CONFIG_SND=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_TIMER=m
+CONFIG_SOC_TI=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SOUND=m
+CONFIG_SPI=y
+# CONFIG_SPI_ROCKCHIP is not set
+CONFIG_SPMI=m
+CONFIG_SRAM=y
+CONFIG_SSB=m
+CONFIG_STAGING=y
+# CONFIG_STANDALONE is not set
+CONFIG_SUN_PARTITION=y
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSV_FS=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_THERMAL=y
+CONFIG_TIFM_CORE=m
+CONFIG_TLS=m
+CONFIG_TOUCHSCREEN_ELAN=y
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TRACE_SINK=m
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TTY_PRINTK=y
+CONFIG_UFS_FS=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_DWC2_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_GADGET=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_SUPPORT=y
+CONFIG_VFIO=y
+CONFIG_VFIO_IOMMU_TYPE1=y
+CONFIG_VFIO_PCI=y
+CONFIG_VFIO_VIRQFD=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VME_BUS=y
+CONFIG_VMXNET3=m
+CONFIG_VOP_BUS=m
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+CONFIG_W1=m
+CONFIG_WAN=y
+CONFIG_WDTPCI=m
+CONFIG_WIMAX=m
+CONFIG_X25=m
+# CONFIG_X86_INTEL_MID is not set
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_XEN=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILLYBUS=m
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YELLOWFIN=m
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZLIB_DEFLATE=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/amd64/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/amd64/config.flavour.generic
@@ -0,0 +1,10 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
+CONFIG_HZ=250
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_VOLUNTARY=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/amd64/config.flavour.lowlatency
+++ linux-gkeop-5.4-5.4.0/debian.master/config/amd64/config.flavour.lowlatency
@@ -0,0 +1,10 @@
+#
+# Config options for config.flavour.lowlatency automatically generated by splitconfig.pl
+#
+CONFIG_HZ=1000
+CONFIG_HZ_1000=y
+# CONFIG_HZ_250 is not set
+CONFIG_IRQ_FORCED_THREADING_DEFAULT=y
+CONFIG_LATENCYTOP=y
+CONFIG_PREEMPT=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/annotations
+++ linux-gkeop-5.4-5.4.0/debian.master/config/annotations
@@ -0,0 +1,13387 @@
+# Menu: HEADER
+# FORMAT: 2
+# ARCH: x86 arm arm64 s390 powerpc
+
+# Mark debugging symbols.
+#  exceptions
+CONFIG_DEBUG_FS                                 note<required debug option>
+CONFIG_DEBUG_KERNEL                             note<required debug option>
+
+# Menu: ROOT
+CONFIG_LIVEPATCH                                policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECCOMP                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SECCOMP                                  mark<ENFORCED>
+
+# Menu: ACPI (Advanced Configuration and Power Interface) Support
+CONFIG_ACPI                                     policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_DEBUGGER                            policy<{'amd64': 'y', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_DEBUGGER_USER                       policy<{'amd64': 'y'}>
+CONFIG_ACPI_SPCR_TABLE                          policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_PROCFS_POWER                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_EC_DEBUGFS                          policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_AC                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_BATTERY                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_BUTTON                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_VIDEO                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_FAN                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_TAD                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_DOCK                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_PROCESSOR                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_IPMI                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_PROCESSOR_AGGREGATOR                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_THERMAL                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_NUMA                                policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ACPI_CUSTOM_DSDT_FILE                    policy<{'amd64': '""', 'i386': '""'}>
+CONFIG_ACPI_TABLE_UPGRADE                       policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_DEBUG                               policy<{'amd64': 'y', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_PCI_SLOT                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_CONTAINER                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_HOTPLUG_MEMORY                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_SBS                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_HED                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_CUSTOM_METHOD                       policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_BGRT                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_REDUCED_HARDWARE_ONLY               policy<{'amd64': 'n', 'arm64': 'y', 'i386': 'n'}>
+CONFIG_ACPI_NFIT                                policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_NFIT_SECURITY_DEBUG                      policy<{'amd64': 'n', 'arm64': 'n'}>
+CONFIG_ACPI_HMAT                                policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_DPTF_POWER                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_EXTLOG                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_CONFIGFS                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TPS68470_PMIC_OPREGION                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_X86_PM_TIMER                             policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_ACPI_PROCFS_POWER                        flag<DEPRECATED>
+CONFIG_ACPI_CUSTOM_METHOD                       mark<ENFORCED> note<SECURITY: allows arbitrary execution>
+CONFIG_ACPI_CUSTOM_DSDT_FILE                    note<might allow hardware damage>
+
+# Menu: ACPI (Advanced Configuration and Power Interface) Support >> ACPI Platform Error Interface (APEI)
+CONFIG_ACPI_APEI                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_APEI_GHES                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_APEI_PCIEAER                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_APEI_MEMORY_FAILURE                 policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ACPI_APEI_EINJ                           policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_APEI_ERST_DEBUG                     policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+
+# Menu: ACPI (Advanced Configuration and Power Interface) Support >> PMIC (Power Management Integrated Circuit) operation region support
+CONFIG_PMIC_OPREGION                            policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+
+# Menu: ARM Accelerated Cryptographic Algorithms
+CONFIG_CRYPTO_CHACHA20_NEON                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305_NEON                   policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: ARM Accelerated Cryptographic Algorithms >> Architecture: arm
+CONFIG_ARM_CRYPTO                               policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_SHA1_ARM                          policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA1_ARM_NEON                     policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA1_ARM_CE                       policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA2_ARM_CE                       policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA256_ARM                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA512_ARM                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_AES_ARM                           policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_AES_ARM_BS                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_AES_ARM_CE                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_GHASH_ARM_CE                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF_ARM_CE                  policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_CRC32_ARM_CE                      policy<{'armhf': 'm'}>
+
+# Menu: ARM64 Accelerated Cryptographic Algorithms
+
+# Menu: ARM64 Accelerated Cryptographic Algorithms >> Architecture: arm64
+CONFIG_ARM64_CRYPTO                             policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_SHA256_ARM64                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA512_ARM64                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA1_ARM64_CE                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA2_ARM64_CE                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA512_ARM64_CE                   policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA3_ARM64                        policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SM3_ARM64_CE                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SM4_ARM64_CE                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_GHASH_ARM64_CE                    policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE                policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64                         policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_CE                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_CE_CCM                  policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_CE_BLK                  policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK                policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_BS                      policy<{'arm64': 'm'}>
+
+# Menu: Advanced setup >> Architecture: powerpc
+
+# Menu: Advanced setup >> Prompt for advanced kernel configuration options
+CONFIG_PHYSICAL_START                           policy<{'amd64': '0x1000000', 'i386': '0x1000000', 'ppc64el': '0x00000000'}>
+
+# Menu: Advanced setup >> Prompt for advanced kernel configuration options >> Architecture: powerpc
+CONFIG_PAGE_OFFSET                              policy<{'armhf': '0xC0000000', 'i386': '0xC0000000', 'ppc64el': '0xc000000000000000'}>
+CONFIG_KERNEL_START                             policy<{'ppc64el': '0xc000000000000000'}>
+
+# Menu: Advanced setup >> Prompt for advanced kernel configuration options >> Pinned Kernel TLBs (860 ONLY) >> Architecture: powerpc
+
+# Menu: Architecture: arm
+CONFIG_ARM_DMA_IOMMU_ALIGNMENT                  policy<{'armhf': '8'}>
+CONFIG_ARM_PATCH_PHYS_VIRT                      policy<{'armhf': 'y'}>
+
+# Menu: Architecture: arm64
+CONFIG_ZONE_DMA32                               policy<{'amd64': 'y', 'arm64': 'y', }>
+
+# Menu: Architecture: powerpc
+CONFIG_PPC64                                    policy<{'ppc64el': 'y'}>
+CONFIG_NR_IRQS                                  policy<{'ppc64el': '512'}>
+
+# Menu: Architecture: s390
+CONFIG_KMSG_IDS                                 policy<{'s390x': 'y'}>
+
+# Menu: Architecture: x86
+CONFIG_64BIT                                    policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Binary Emulations >> Architecture: x86
+CONFIG_IA32_EMULATION                           policy<{'amd64': 'y'}>
+CONFIG_IA32_AOUT                                policy<{'amd64': '-'}>
+CONFIG_X86_X32                                  policy<{'amd64': 'y'}>
+#
+CONFIG_IA32_AOUT                                mark<ENFORCED> note<LP:#1818552>
+
+# Menu: Boot options
+CONFIG_CMDLINE                                  policy<{'arm64': '"console=ttyAMA0"', 'armhf': '""', 'ppc64el': '""', }>
+CONFIG_CMDLINE_FORCE                            policy<{'arm64': 'n'}>
+CONFIG_EFI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DMI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_KEXEC                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRASH_DUMP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_CRASH_DUMP                               mark<ENFORCED> note<LP:1363180>
+CONFIG_EFI                                      flag<REVIEW>
+
+# Menu: Boot options >> Architecture: arm
+CONFIG_USE_OF                                   policy<{'armhf': 'y'}>
+CONFIG_ATAGS                                    policy<{'armhf': 'y'}>
+CONFIG_DEPRECATED_PARAM_STRUCT                  policy<{'armhf': 'n'}>
+CONFIG_ZBOOT_ROM_TEXT                           policy<{'armhf': '0x0'}>
+CONFIG_ZBOOT_ROM_BSS                            policy<{'armhf': '0x0'}>
+CONFIG_ARM_APPENDED_DTB                         policy<{'armhf': 'y'}>
+CONFIG_ARM_ATAG_DTB_COMPAT                      policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ATAGS_PROC                               policy<{'armhf': 'y'}>
+CONFIG_AUTO_ZRELADDR                            policy<{'armhf': 'y'}>
+#
+CONFIG_ARM_ATAG_DTB_COMPAT                      flag<REVIEW>
+
+# Menu: Boot options >> Architecture: arm64
+CONFIG_ARM64_ACPI_PARKING_PROTOCOL              policy<{'arm64': 'y'}>
+
+# Menu: Boot options >> Kernel command line type
+
+# Menu: Boot options >> Kernel command line type >> Architecture: arm
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER policy<{'armhf-generic': 'n'}>
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND       policy<{'armhf-generic': 'y'}>
+
+# Menu: Bus options
+CONFIG_ISA                                      policy<{'i386': 'y'}>
+
+# Menu: Bus options (PCI etc.)
+
+# Menu: Bus options (PCI etc.) >> Architecture: x86
+CONFIG_PCI_MMCONFIG                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCI_CNB20LE_QUIRK                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ISA_BUS                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ISA_DMA_API                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SCx200                                   policy<{'i386': 'm'}>
+CONFIG_SCx200HR_TIMER                           policy<{'i386': 'm'}>
+CONFIG_ALIX                                     policy<{'i386': 'y'}>
+CONFIG_NET5501                                  policy<{'i386': 'y'}>
+CONFIG_GEOS                                     policy<{'i386': 'y'}>
+CONFIG_X86_SYSFB                                policy<{'amd64': 'n', 'i386': 'n'}>
+#
+CONFIG_X86_SYSFB                                flag<REVIEW>
+
+# Menu: Bus options (PCI etc.) >> PCI access mode >> Architecture: x86
+CONFIG_PCI_GOBIOS                               policy<{'i386': 'n'}>
+CONFIG_PCI_GOMMCONFIG                           policy<{'i386': 'n'}>
+CONFIG_PCI_GODIRECT                             policy<{'i386': 'n'}>
+CONFIG_PCI_GOANY                                policy<{'i386': 'y'}>
+
+# Menu: Bus options >> Architecture: powerpc
+CONFIG_FSL_LBC                                  policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RTAS_FILTER                          policy<{'ppc64el': 'y'}>
+#
+CONFIG_PPC_RTAS_FILTER                          mark<ENFORCED> note<CVE-2020-27777>
+
+# Menu: Bus support >> Architecture: arm
+CONFIG_ARM_ERRATA_814220                        policy<{'armhf': 'y'}>
+
+# Menu: Cryptographic API
+CONFIG_CRYPTO                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MANAGER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_USER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_NULL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_PCRYPT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CRYPTD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AUTHENC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TEST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RSA                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DH                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ECDH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ECRDSA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CCM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_GCM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CHACHA20POLY1305                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AEGIS128                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AEGIS128_SIMD                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SEQIV                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ECHAINIV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CBC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CFB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CTR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CTS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ECB                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_LRW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_OFB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_PCBC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_XTS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_KEYWRAP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305_SSE2                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305_AVX2                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_ADIANTUM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ESSIV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CMAC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_HMAC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_XCBC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_VMAC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CRC32C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CRC32C_INTEL                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_CRC32C_VPMSUM                     policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_CRC32                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CRC32_PCLMUL                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_XXHASH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL                  policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM                  policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_VPMSUM_TESTER                     policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_GHASH                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_POLY1305                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_POLY1305_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_MD4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_MD5                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MD5_PPC                           policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_MICHAEL_MIC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD128                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD160                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD256                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD320                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SHA1                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SHA1_SSSE3                        policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SHA256_SSSE3                      policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SHA512_SSSE3                      policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SHA1_PPC                          policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_SHA256                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SHA512                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SHA3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SM3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_STREEBOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TGR192                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_WP512                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL              policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_AES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_AES_TI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AES_NI_INTEL                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_ANUBIS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ARC4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_BLOWFISH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_BLOWFISH_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAMELLIA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CAMELLIA_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64         policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64        policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAST5                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CAST5_AVX_X86_64                  policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAST6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CAST6_AVX_X86_64                  policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_DES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_DES3_EDE_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_FCRYPT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_KHAZAD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SALSA20                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CHACHA20                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CHACHA20_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SEED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SERPENT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SERPENT_SSE2_586                  policy<{'i386': 'm'}>
+CONFIG_CRYPTO_SERPENT_AVX_X86_64                policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SM4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TEA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TWOFISH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TWOFISH_586                       policy<{'i386': 'm'}>
+CONFIG_CRYPTO_TWOFISH_X86_64                    policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64                policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_DEFLATE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_CRYPTO_LZO                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_842                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LZ4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LZ4HC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ZSTD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ANSI_CPRNG                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_JITTERENTROPY                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_USER_API_HASH                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_SKCIPHER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_RNG                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_AEAD                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_STATS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS             flag<TESTING>
+CONFIG_CRYPTO_TEST                              flag<TESTING>
+CONFIG_CRYPTO_SHA512                            note<module signing>
+
+# Menu: Cryptographic API >> Asymmetric (public-key cryptographic) key type
+CONFIG_ASYMMETRIC_KEY_TYPE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_X509_CERTIFICATE_PARSER                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PKCS8_PRIVATE_KEY_PARSER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TPM_KEY_PARSER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PKCS7_MESSAGE_PARSER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PKCS7_TEST_KEY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SIGNED_PE_FILE_VERIFICATION              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_ASYMMETRIC_KEY_TYPE                      note<module signing>
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE            note<module signing>
+CONFIG_X509_CERTIFICATE_PARSER                  note<module signing>
+
+# Menu: Cryptographic API >> Certificates for signature checking
+CONFIG_MODULE_SIG_KEY                           policy<{'amd64': '"certs/signing_key.pem"', 'arm64': '"certs/signing_key.pem"', 'armhf': '"certs/signing_key.pem"', 'i386': '"certs/signing_key.pem"', 'ppc64el': '"certs/signing_key.pem"', 's390x': '"certs/signing_key.pem"'}>
+CONFIG_SYSTEM_BLACKLIST_KEYRING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST               policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+#
+CONFIG_SYSTEM_BLACKLIST_KEYRING                 mark<ENFORCED>
+
+# Menu: Cryptographic API >> Certificates for signature checking >> Provide system-wide ring of trusted keys
+CONFIG_SYSTEM_TRUSTED_KEYRING                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_TRUSTED_KEYS                      policy<{'amd64': '"debian/canonical-certs.pem"', 'arm64': '"debian/canonical-certs.pem"', 'armhf': '"debian/canonical-certs.pem"', 'i386': '"debian/canonical-certs.pem"', 'ppc64el': '"debian/canonical-certs.pem"', 's390x': '"debian/canonical-certs.pem"'}>
+CONFIG_SYSTEM_EXTRA_CERTIFICATE                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE            policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'i386': '4096', 'ppc64el': '4096', 's390x': '4096'}>
+CONFIG_SECONDARY_TRUSTED_KEYRING                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Cryptographic API >> Hardware crypto devices
+CONFIG_CRYPTO_HW                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DEV_PADLOCK                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_DEV_PADLOCK_AES                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_PADLOCK_SHA                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_GEODE                         policy<{'i386': 'm'}>
+CONFIG_ZCRYPT                                   policy<{'s390x': 'm'}>
+CONFIG_ZCRYPT_MULTIDEVNODES                     policy<{'s390x': 'y'}>
+CONFIG_PKEY                                     policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_PAES_S390                         policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA1_S390                         policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA256_S390                       policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA512_S390                       policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA3_256_S390                     policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA3_512_S390                     policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_DES_S390                          policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_AES_S390                          policy<{'s390x': 'm'}>
+CONFIG_S390_PRNG                                policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_GHASH_S390                        policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_CRC32_S390                        policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_DEV_MARVELL_CESA                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_HIFN_795X                     policy<{'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG                 policy<{'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM                      policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG                policy<{'arm64': 'n', 'armhf-generic': 'n'}>
+CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM                policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_SAHARA                        policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_EXYNOS_RNG                    policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_S5P                           policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_NX                            policy<{'ppc64el': 'y'}>
+CONFIG_CRYPTO_DEV_NX_COMPRESS                   policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES           policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV           policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_ATMEL_ECC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_CCP                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_DEV_CCP_DD                        policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_SP_CCP                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_DEV_CCP_CRYPTO                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_SP_PSP                        policy<{'amd64': 'y'}>
+CONFIG_CRYPTO_DEV_CCP_DEBUGFS                   policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_CRYPTO_DEV_MXS_DCP                       policy<{'arm64': 'n', 'armhf-generic': 'n'}>
+CONFIG_CRYPTO_DEV_QAT_DH895xCC                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C3XXX                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C62X                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C62XVF                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CAVIUM_CPT                               policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX                policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_CAVIUM_ZIP                    policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_QCE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_QCOM_RNG                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_VMX                           policy<{'ppc64el': 'y'}>
+CONFIG_CRYPTO_DEV_VMX_ENCRYPT                   policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_ROCKCHIP                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_MEDIATEK                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_CHELSIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHELSIO_IPSEC_INLINE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CRYPTO_DEV_CHELSIO_TLS                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CRYPTO_DEV_VIRTIO                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_DEV_BCM_SPU                       policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_SAFEXCEL                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_ARTPEC6                       policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_CCREE                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CRYPTO_DEV_HISI_SEC                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_SEC2                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_ZIP                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_HPRE                     policy<{'arm64': 'm'}>
+#
+CONFIG_CRYPTO_DEV_HISI_ZIP                      mark<ENFORCED>
+CONFIG_ZCRYPT_MULTIDEVNODES                     mark<ENFORCED> note<LP:1805429>
+
+# Menu: Cryptographic API >> Hardware crypto devices >> Freescale CAAM Job Ring driver backend
+CONFIG_CRYPTO_DEV_FSL_CAAM_JR                   policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE             policy<{'arm64': '9', 'armhf-generic': '9'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD      policy<{'arm64': '255', 'armhf-generic': '255'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD       policy<{'arm64': '2048', 'armhf-generic': '2048'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API           policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI        policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API            policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+
+# Menu: Cryptographic API >> Hardware crypto devices >> Support for OMAP crypto HW accelerators
+CONFIG_CRYPTO_DEV_OMAP                          policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP_SHAM                     policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP_AES                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP_DES                      policy<{'armhf': 'm'}>
+
+# Menu: Cryptographic API >> NIST SP800-90A DRBG
+CONFIG_CRYPTO_DRBG_MENU                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG_HASH                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG_CTR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Device Drivers
+CONFIG_RANDOM_TRUST_CPU                         policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RANDOM_TRUST_BOOTLOADER                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PANEL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARLCD                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MFD_CROS_EC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_THUNDERBOLT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TEE                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_UNISYS_VISORBUS                          policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> ATA/ATAPI/MFM/RLL support (DEPRECATED)
+CONFIG_IDE                                      policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+
+# Menu: Device Drivers >> ATA/ATAPI/MFM/RLL support (DEPRECATED) >> IDE Mode for AMD Alchemy Au1200
+
+# Menu: Device Drivers >> Accessibility support
+CONFIG_ACCESSIBILITY                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_ACCESSIBILITY                            flag<REVIEW>
+
+# Menu: Device Drivers >> Adaptive Voltage Scaling class support
+CONFIG_POWER_AVS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ROCKCHIP_IODOMAIN                        policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Android
+CONFIG_ANDROID                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Android >> Android Binder IPC Driver
+CONFIG_ANDROID_BINDER_IPC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ANDROID_BINDERFS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ANDROID_BINDER_DEVICES                   policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', }>
+CONFIG_ANDROID_BINDER_IPC_SELFTEST              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Auxiliary Display support
+CONFIG_AUXDISPLAY                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HD44780                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IMG_ASCII_LCD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HT16K33                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_ARM_CHARLCD                              policy<{'armhf': 'y'}>
+CONFIG_PANEL_CHANGE_MESSAGE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Auxiliary Display support >> Backlight initial state
+CONFIG_CHARLCD_BL_OFF                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CHARLCD_BL_ON                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CHARLCD_BL_FLASH                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Auxiliary Display support >> KS0108 LCD Controller
+CONFIG_KS0108                                   policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KS0108_PORT                              policy<{'amd64': '0x378', 'armhf': '0x378', 'i386': '0x378', 'ppc64el': '0x378'}>
+CONFIG_KS0108_DELAY                             policy<{'amd64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2'}>
+CONFIG_CFAG12864B                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CFAG12864B_RATE                          policy<{'amd64': '20', 'i386': '20'}>
+
+# Menu: Device Drivers >> Auxiliary Display support >> Parallel port LCD/Keypad Panel support
+CONFIG_PARPORT_PANEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PANEL_PARPORT                            policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_PANEL_PROFILE                            policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'i386': '5', 'ppc64el': '5', }>
+
+# Menu: Device Drivers >> Auxiliary Display support >> Parallel port LCD/Keypad Panel support >> LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)
+
+# Menu: Device Drivers >> Auxiliary Display support >> Parallel port LCD/Keypad Panel support >> LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom) >> LCD communication mode (0=parallel 8 bits, 1=serial)
+
+# Menu: Device Drivers >> Block devices
+CONFIG_BLK_DEV                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_NULL_BLK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_FD                               policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ZRAM                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZRAM_WRITEBACK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZRAM_MEMORY_TRACKING                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_UMEM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_LOOP                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_LOOP_MIN_COUNT                   policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', 's390x': '8'}>
+CONFIG_BLK_DEV_CRYPTOLOOP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_DRBD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRBD_FAULT_INJECTION                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BLK_DEV_NBD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_SKD                              policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_SX8                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_RAM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_RAM_COUNT                        policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16', 's390x': '16'}>
+CONFIG_BLK_DEV_RAM_SIZE                         policy<{'amd64': '65536', 'arm64': '65536', 'armhf': '65536', 'i386': '65536', 'ppc64el': '65536', 's390x': '65536'}>
+CONFIG_CDROM_PKTCDVD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CDROM_PKTCDVD_BUFFERS                    policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+CONFIG_CDROM_PKTCDVD_WCACHE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATA_OVER_ETH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_XPRAM                            policy<{'s390x': 'n'}>
+CONFIG_DCSSBLK                                  policy<{'s390x': 'm'}>
+CONFIG_SCM_BLOCK                                policy<{'s390x': 'm'}>
+CONFIG_XEN_BLKDEV_FRONTEND                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BLKDEV_BACKEND                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_VIRTIO_BLK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_BLK_SCSI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_RBD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_RSXX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_BLK_DEV_UMEM                             note<experimental NVRAM disk driver -- opt-in>
+CONFIG_CDROM_PKTCDVD_WCACHE                     mark<DANGEROUS>
+CONFIG_XEN_BLKDEV_FRONTEND                      note<not autoloadable -- XEN paravirt support>
+CONFIG_VIRTIO_BLK                               note<KVM paravirt support -- not autoloadable>
+CONFIG_BLK_DEV_RAM                              note<LP #1593293>
+CONFIG_BLK_DEV_RAM_SIZE                         mark<ENFORCED> note<Ramdisk size should be a minimum of 64M> flag<REVIEW>
+
+# Menu: Device Drivers >> Block devices >> Parallel port IDE device support
+CONFIG_PARIDE                                   policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PD                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PCD                               policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PF                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PT                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PG                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_ATEN                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_BPCK                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_BPCK6                             policy<{'armhf': 'm', 'i386': 'm'}>
+CONFIG_PARIDE_COMM                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_DSTR                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FIT2                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FIT3                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_EPAT                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_EPATC8                            policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PARIDE_EPIA                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FRIQ                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FRPW                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_KBIC                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_KTTI                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_ON20                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_ON26                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> Block devices >> Support for DASD devices
+CONFIG_DASD                                     policy<{'s390x': 'm'}>
+CONFIG_DASD_PROFILE                             policy<{'s390x': 'y'}>
+CONFIG_DASD_ECKD                                policy<{'s390x': 'm'}>
+CONFIG_DASD_FBA                                 policy<{'s390x': 'm'}>
+CONFIG_DASD_DIAG                                policy<{'s390x': 'm'}>
+CONFIG_DASD_EER                                 policy<{'s390x': 'y'}>
+
+# Menu: Device Drivers >> Board level reset or power off
+CONFIG_POWER_RESET                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POWER_RESET_AS3722                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_POWER_RESET_AXXIA                        policy<{'armhf-generic-lpae': 'y'}>
+CONFIG_POWER_RESET_BRCMKONA                     policy<{'armhf': 'y'}>
+CONFIG_POWER_RESET_BRCMSTB                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_POWER_RESET_GPIO                         policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_POWER_RESET_GPIO_RESTART                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_POWER_RESET_HISI                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_POWER_RESET_MSM                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_POWER_RESET_QCOM_PON                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_POWER_RESET_LTC2952                      policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_POWER_RESET_QNAP                         policy<{'armhf': 'n'}>
+CONFIG_POWER_RESET_RESTART                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POWER_RESET_VERSATILE                    policy<{'armhf': 'y'}>
+CONFIG_POWER_RESET_VEXPRESS                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_POWER_RESET_XGENE                        policy<{'arm64': 'n'}>
+CONFIG_POWER_RESET_SYSCON                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_POWER_RESET_SYSCON_POWEROFF              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_POWER_RESET_RMOBILE                      policy<{'armhf': 'm'}>
+CONFIG_SYSCON_REBOOT_MODE                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_POWER_RESET_SC27XX                       policy<{'arm64': 'y'}>
+CONFIG_NVMEM_REBOOT_MODE                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Broadcom specific AMBA
+CONFIG_BCMA                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BCMA_HOST_PCI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BCMA_HOST_SOC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BCMA_DRIVER_PCI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BCMA_SFLASH                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BCMA_DRIVER_GMAC_CMN                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BCMA_DRIVER_GPIO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BCMA_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Bus devices
+CONFIG_BRCMSTB_GISB_ARB                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MOXTET                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_HISILICON_LPC                            policy<{'arm64': 'y'}>
+CONFIG_IMX_WEIM                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_OMAP_INTERCONNECT                        policy<{'armhf': 'y'}>
+CONFIG_OMAP_OCP2SCP                             policy<{'armhf': 'm'}>
+CONFIG_QCOM_EBI2                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SIMPLE_PM_BUS                            policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_SUN50I_DE2_BUS                           policy<{'arm64': 'y'}>
+CONFIG_SUNXI_RSB                                policy<{'arm64': 'm'}>
+CONFIG_TEGRA_GMI                                policy<{'armhf-generic': 'm'}>
+CONFIG_TI_SYSC                                  policy<{'armhf': 'y'}>
+CONFIG_UNIPHIER_SYSTEM_BUS                      policy<{'armhf': 'y'}>
+CONFIG_VEXPRESS_CONFIG                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FSL_MC_BUS                               policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Character devices
+CONFIG_DEVMEM                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEVKMEM                                  policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TTY_PRINTK                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TTY_PRINTK_LEVEL                         policy<{'amd64': '6', 'arm64': '6', 'armhf': '6', 'i386': '6', 'ppc64el': '6', }>
+CONFIG_PRINTER                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LP_CONSOLE                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PPDEV                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HVC_CONSOLE                              policy<{'ppc64el': 'y'}>
+CONFIG_HVC_OLD_HVSI                             policy<{'ppc64el': 'y'}>
+CONFIG_HVC_OPAL                                 policy<{'ppc64el': 'y'}>
+CONFIG_HVC_RTAS                                 policy<{'ppc64el': 'y'}>
+CONFIG_HVC_IUCV                                 policy<{'s390x': 'y'}>
+CONFIG_HVC_XEN                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HVC_XEN_FRONTEND                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HVC_UDBG                                 policy<{'ppc64el': 'n'}>
+CONFIG_HVC_DCC                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_HVC_RISCV_SBI                            policy<{}>
+CONFIG_HVCS                                     policy<{'ppc64el': 'm'}>
+CONFIG_VIRTIO_CONSOLE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IBM_BSR                                  policy<{'ppc64el': 'm'}>
+CONFIG_POWERNV_OP_PANEL                         policy<{'ppc64el': 'm'}>
+CONFIG_ASPEED_KCS_IPMI_BMC                      policy<{'armhf': 'm'}>
+CONFIG_NPCM7XX_KCS_IPMI_BMC                     policy<{'armhf': 'm'}>
+CONFIG_ASPEED_BT_IPMI_BMC                       policy<{'armhf': 'm'}>
+CONFIG_IPMB_DEVICE_INTERFACE                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NVRAM                                    policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'y'}>
+CONFIG_DTLK                                     policy<{'i386': 'm'}>
+CONFIG_APPLICOM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SONYPI                                   policy<{'i386': 'm'}>
+CONFIG_MWAVE                                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCx200_GPIO                              policy<{'i386': 'm'}>
+CONFIG_PC8736x_GPIO                             policy<{'i386': 'm'}>
+CONFIG_NSC_GPIO                                 policy<{'i386': 'm'}>
+CONFIG_RAW_DRIVER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MAX_RAW_DEVS                             policy<{'amd64': '256', 'arm64': '256', 'armhf': '256', 'i386': '256', 'ppc64el': '256', }>
+CONFIG_HPET                                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPET_MMAP                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPET_MMAP_DEFAULT                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HANGCHECK_TIMER                          policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_UV_MMTIMER                               policy<{'amd64': 'm'}>
+CONFIG_TELCLOCK                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DEVPORT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TN3270                                   policy<{'s390x': 'y'}>
+CONFIG_TN3270_TTY                               policy<{'s390x': 'y'}>
+CONFIG_TN3270_FS                                policy<{'s390x': 'm'}>
+CONFIG_TN3270_CONSOLE                           policy<{'s390x': 'y'}>
+CONFIG_TN3215                                   policy<{'s390x': 'y'}>
+CONFIG_TN3215_CONSOLE                           policy<{'s390x': 'y'}>
+CONFIG_SCLP_TTY                                 policy<{'s390x': 'y'}>
+CONFIG_SCLP_CONSOLE                             policy<{'s390x': 'y'}>
+CONFIG_SCLP_VT220_TTY                           policy<{'s390x': 'y'}>
+CONFIG_SCLP_VT220_CONSOLE                       policy<{'s390x': 'y'}>
+CONFIG_HMC_DRV                                  policy<{'s390x': 'm'}>
+CONFIG_SCLP_OFB                                 policy<{'s390x': 'y'}>
+CONFIG_S390_TAPE                                policy<{'s390x': 'm'}>
+CONFIG_S390_TAPE_34XX                           policy<{'s390x': 'm'}>
+CONFIG_S390_TAPE_3590                           policy<{'s390x': 'm'}>
+CONFIG_VMLOGRDR                                 policy<{'s390x': 'm'}>
+CONFIG_VMCP                                     policy<{'s390x': 'y'}>
+CONFIG_VMCP_CMA_SIZE                            policy<{'s390x': '4'}>
+CONFIG_MONREADER                                policy<{'s390x': 'm'}>
+CONFIG_MONWRITER                                policy<{'s390x': 'm'}>
+CONFIG_S390_VMUR                                policy<{'s390x': 'm'}>
+CONFIG_XILLYBUS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_XILLYBUS_PCIE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_XILLYBUS_OF                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_DEVKMEM                                  mark<ENFORCED> note</dev/kmem is a large attack vector>
+CONFIG_HVC_UDBG                                 mark<ENFORCED> note<LP#1680888>
+CONFIG_NVRAM                                    mark<ENFORCED> note<LP#1837726>
+CONFIG_SCLP_OFB                                 mark<ENFORCED> note<LP:1787898>
+
+# Menu: Device Drivers >> Character devices >> Enable TTY
+CONFIG_TTY                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VT                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONSOLE_TRANSLATIONS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VT_CONSOLE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VT_HW_CONSOLE_BINDING                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNIX98_PTYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LEGACY_PTYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LEGACY_PTY_COUNT                         policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_NOZOMI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_N_GSM                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TRACE_ROUTER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TRACE_SINK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PPC_EPAPR_HV_BYTECHAN                    policy<{'ppc64el': 'n'}>
+CONFIG_NULL_TTY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LDISC_AUTOLOAD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_N_GSM                                    note<LP#1404670>
+
+# Menu: Device Drivers >> Character devices >> Enable TTY >> Non-standard serial port support
+CONFIG_SERIAL_NONSTANDARD                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ROCKETPORT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CYCLADES                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CYZ_INTR                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MOXA_INTELLIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOXA_SMARTIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SYNCLINK                                 policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SYNCLINKMP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SYNCLINK_GT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ISI                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_N_HDLC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Character devices >> Hardware Random Number Generator Core support
+CONFIG_HW_RANDOM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HW_RANDOM_TIMERIOMEM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HW_RANDOM_INTEL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HW_RANDOM_AMD                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HW_RANDOM_BCM2835                        policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_IPROC_RNG200                   policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_GEODE                          policy<{'i386': 'm'}>
+CONFIG_HW_RANDOM_VIA                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HW_RANDOM_OMAP                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_OMAP3_ROM                      policy<{'armhf-generic': 'm'}>
+CONFIG_HW_RANDOM_VIRTIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_HW_RANDOM_IMX_RNGC                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_HW_RANDOM_PSERIES                        policy<{'ppc64el': 'm'}>
+CONFIG_HW_RANDOM_POWERNV                        policy<{'ppc64el': 'm'}>
+CONFIG_HW_RANDOM_HISI                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_HISI_V2                        policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_XGENE                          policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_MESON                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_CAVIUM                         policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_MTK                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_S390                           policy<{'s390x': 'm'}>
+CONFIG_HW_RANDOM_EXYNOS                         policy<{'armhf': 'm'}>
+CONFIG_HW_RANDOM_OPTEE                          policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Character devices >> IPMI top-level message handler
+CONFIG_IPMI_HANDLER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IPMI_PANIC_EVENT                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_IPMI_DEVICE_INTERFACE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IPMI_SI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IPMI_SSIF                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IPMI_POWERNV                             policy<{'ppc64el': 'm'}>
+CONFIG_IPMI_WATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IPMI_POWEROFF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Character devices >> PCMCIA character devices
+CONFIG_SYNCLINK_CS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CARDMAN_4000                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CARDMAN_4040                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCR24X                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IPWIRELESS                               policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Character devices >> Serial device bus
+CONFIG_SERIAL_DEV_BUS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SERIAL_DEV_CTRL_TTYPORT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SERIAL_DEV_BUS                           note<LP:1739939>
+CONFIG_SERIAL_DEV_CTRL_TTYPORT                  note<LP:1739939>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers
+CONFIG_SERIAL_AMBA_PL010                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_AMBA_PL011                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_AMBA_PL011_CONSOLE                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_EARLYCON_RISCV_SBI                policy<{}>
+CONFIG_SERIAL_KGDB_NMI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_MESON                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MESON_CONSOLE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_SAMSUNG                           policy<{'armhf': 'm'}>
+CONFIG_SERIAL_TEGRA                             policy<{'armhf-generic': 'm'}>
+CONFIG_SERIAL_TEGRA_TCU                         policy<{'armhf-generic': 'm'}>
+CONFIG_SERIAL_MAX3100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_MAX310X                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_IMX                               policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_SERIAL_IMX_CONSOLE                       policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_SERIAL_UARTLITE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SERIAL_UARTLITE_NR_UARTS                 policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+CONFIG_SERIAL_ICOM                              policy<{'ppc64el': 'm'}>
+CONFIG_SERIAL_JSM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_MSM                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MSM_CONSOLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_QCOM_GENI                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_OMAP                              policy<{'armhf': 'y'}>
+CONFIG_SERIAL_OMAP_CONSOLE                      policy<{'armhf': 'y'}>
+CONFIG_SERIAL_SIFIVE                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_SIFIVE_CONSOLE                    policy<{}>
+CONFIG_SERIAL_SCCNXP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SERIAL_SCCNXP_CONSOLE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_SC16IS7XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_SC16IS7XX_I2C                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_SC16IS7XX_SPI                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_TIMBERDALE                        policy<{'i386': 'm'}>
+CONFIG_SERIAL_BCM63XX                           policy<{'armhf': 'm'}>
+CONFIG_SERIAL_ALTERA_JTAGUART                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_IFX6X60                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SERIAL_PCH_UART                          policy<{'i386': 'm'}>
+CONFIG_SERIAL_XILINX_PS_UART                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_ARC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_ARC_NR_PORTS                      policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', }>
+CONFIG_SERIAL_RP2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_RP2_NR_UARTS                      policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', }>
+CONFIG_SERIAL_FSL_LPUART                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_FSL_LINFLEXUART                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_CONEXANT_DIGICOLOR                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_ST_ASC                            policy<{'armhf': 'm'}>
+CONFIG_SERIAL_MEN_Z135                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_SPRD                              policy<{'arm64': 'm'}>
+CONFIG_SERIAL_MVEBU_UART                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MVEBU_CONSOLE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_OWL                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_OWL_CONSOLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_RDA                               policy<{'armhf': 'y'}>
+CONFIG_SERIAL_RDA_CONSOLE                       policy<{'armhf': 'y'}>
+CONFIG_SERIAL_MILBEAUT_USIO                     policy<{'armhf': 'm'}>
+CONFIG_SERIAL_MILBEAUT_USIO_PORTS               policy<{'armhf': '4'}>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> 8250/16550 and compatible serial support
+CONFIG_SERIAL_8250                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SERIAL_8250_PNP                          policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SERIAL_8250_FINTEK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'n', }>
+CONFIG_SERIAL_8250_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_DMA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_PCI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_EXAR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_8250_CS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIAL_8250_MEN_MCB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_8250_NR_UARTS                     policy<{'amd64': '48', 'arm64': '48', 'armhf': '48', 'i386': '48', 'ppc64el': '48', }>
+CONFIG_SERIAL_8250_RUNTIME_UARTS                policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', }>
+CONFIG_SERIAL_8250_ASPEED_VUART                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_8250_DW                           policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_8250_EM                           policy<{'armhf': 'n'}>
+CONFIG_SERIAL_8250_RT288X                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_OMAP                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_8250_MT6577                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_8250_UNIPHIER                     policy<{'armhf': 'm'}>
+CONFIG_SERIAL_8250_LPSS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIAL_8250_MID                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIAL_OF_PLATFORM                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> 8250/16550 and compatible serial support >> Extended 8250/16550 serial driver options
+CONFIG_SERIAL_8250_EXTENDED                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_SHARE_IRQ                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_DETECT_IRQ                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SERIAL_8250_RSA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_BCM2835AUX                   policy<{'arm64': 'n'}>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> 8250/16550 and compatible serial support >> Extended 8250/16550 serial driver options >> Support more than 4 legacy serial ports
+CONFIG_SERIAL_8250_MANY_PORTS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIAL_8250_FOURPORT                     policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_ACCENT                       policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_BOCA                         policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_EXAR_ST16C554                policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_HUB6                         policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> AT91 on-chip serial port support
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> Altera UART support
+CONFIG_SERIAL_ALTERA_UART                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS              policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4', }>
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE              policy<{'amd64': '115200', 'arm64': '115200', 'armhf': '115200', 'i386': '115200', 'ppc64el': '115200', }>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> SuperH SCI(F) serial port support
+CONFIG_SERIAL_SH_SCI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_SH_SCI_NR_UARTS                   policy<{'arm64': '2', 'armhf': '2'}>
+CONFIG_SERIAL_SH_SCI_DMA                        policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Character devices >> Serial drivers >> TMPTX39XX/49XX SIO support
+
+# Menu: Device Drivers >> Character devices >> TPM Hardware Support
+CONFIG_TCG_TPM                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HW_RANDOM_TPM                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCG_TIS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TCG_TIS_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TCG_TIS_I2C_ATMEL                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TCG_TIS_I2C_INFINEON                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TCG_TIS_I2C_NUVOTON                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TCG_NSC                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TCG_ATMEL                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TCG_INFINEON                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TCG_IBMVTPM                              policy<{'ppc64el': 'y'}>
+CONFIG_TCG_XEN                                  policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TCG_CRB                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_TCG_VTPM_PROXY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCG_FTPM_TEE                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TCG_TIS_ST33ZP24_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TCG_TIS_ST33ZP24_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_TCG_TPM                                  note<needed for early validation>
+CONFIG_TCG_TIS_I2C_ATMEL                        note<LP:1643652>
+CONFIG_TCG_TIS_I2C_INFINEON                     note<LP:1643652>
+CONFIG_TCG_TIS_I2C_NUVOTON                      note<LP:1643652>
+
+# Menu: Device Drivers >> Clock Source drivers
+CONFIG_DW_APB_TIMER                             policy<{'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_ROCKCHIP_TIMER                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARMADA_370_XP_TIMER                      policy<{'armhf': 'y'}>
+CONFIG_MESON6_TIMER                             policy<{'armhf': 'y'}>
+CONFIG_ORION_TIMER                              policy<{'armhf': 'y'}>
+CONFIG_OWL_TIMER                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RDA_TIMER                                policy<{'armhf': 'y'}>
+CONFIG_TEGRA_TIMER                              policy<{'armhf-generic': 'y'}>
+CONFIG_NPCM7XX_TIMER                            policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_TI_32K                            policy<{'armhf': 'y'}>
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FSL_ERRATUM_A008585                      policy<{'arm64': 'y'}>
+CONFIG_HISILICON_ERRATUM_161010101              policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_858921                     policy<{'arm64': 'y'}>
+CONFIG_SUN50I_ERRATUM_UNKNOWN1                  policy<{'arm64': 'y'}>
+CONFIG_ARM_GLOBAL_TIMER                         policy<{'armhf': 'y'}>
+CONFIG_ARM_TIMER_SP804                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLKSRC_EXYNOS_MCT                        policy<{'armhf': 'y'}>
+CONFIG_MTK_TIMER                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPRD_TIMER                               policy<{'arm64': 'y'}>
+CONFIG_SH_TIMER_CMT                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SH_TIMER_MTU2                            policy<{'armhf': 'y'}>
+CONFIG_RENESAS_OSTM                             policy<{'armhf': 'y'}>
+CONFIG_SH_TIMER_TMU                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EM_TIMER_STI                             policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_QCOM                              policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_VERSATILE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLKSRC_IMX_GPT                           policy<{'armhf-generic': 'y'}>
+CONFIG_CLKSRC_IMX_TPM                           policy<{'armhf-generic': 'y'}>
+CONFIG_TIMER_IMX_SYS_CTR                        policy<{'arm64': 'y'}>
+CONFIG_RISCV_TIMER                              policy<{}>
+CONFIG_MILBEAUT_TIMER                           policy<{'armhf': 'y'}>
+#
+CONFIG_ARM64_ERRATUM_858921                     mark<ENFORCED> note<LP#1675509>
+
+# Menu: Device Drivers >> Common Clock Framework
+CONFIG_COMMON_CLK_WM831X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_VERSATILE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_SP810                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_VEXPRESS_OSC                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_HSDK                                 policy<{'arm64': 'y', 'armhf': 'y', }>
+CONFIG_COMMON_CLK_MAX77686                      policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_MAX9485                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_RK808                         policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_HI655X                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SCMI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SCPI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SI5341                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_SI5351                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_SI514                         policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_SI544                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_SI570                         policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_CDCE706                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_CDCE925                       policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_CS2000_CP                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_ASPEED                        policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_S2MPS11                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_CLK_TWL6040                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_CLK_QORIQ                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_XGENE                         policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_LOCHNAGAR                     policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_PALMAS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_PWM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_COMMON_CLK_VC5                           policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_BD718XX                       policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_COMMON_CLK_FIXED_MMIO                    policy<{'arm64': 'y', 'armhf': 'y', }>
+CONFIG_CLK_BCM2835                              policy<{'arm64': 'y'}>
+CONFIG_CLK_BCM_NS2                              policy<{'arm64': 'y'}>
+CONFIG_CLK_BCM_SR                               policy<{'arm64': 'y'}>
+CONFIG_CLK_RASPBERRYPI                          policy<{'arm64': 'm'}>
+CONFIG_COMMON_CLK_HI3516CV300                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_HI3519                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_HI3660                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_HI3670                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_HI3798CV200                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_HI6220                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_HISI                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_STUB_CLK_HI6220                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_STUB_CLK_HI3660                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_IMX8MM                               policy<{'arm64': 'y'}>
+CONFIG_CLK_IMX8MN                               policy<{'arm64': 'y'}>
+CONFIG_CLK_IMX8MQ                               policy<{'arm64': 'y'}>
+CONFIG_CLK_IMX8QXP                              policy<{'arm64': 'y'}>
+CONFIG_TI_SCI_CLK                               policy<{'arm64': 'm'}>
+CONFIG_TI_SCI_CLK_PROBE_FROM_FW                 policy<{'arm64': 'n'}>
+CONFIG_COMMON_CLK_AXG_AUDIO                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SAMSUNG                       policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_AUDSS_CLK_CON                     policy<{'armhf': 'm'}>
+CONFIG_SPRD_COMMON_CLK                          policy<{'arm64': 'm'}>
+CONFIG_SPRD_SC9860_CLK                          policy<{'arm64': 'm'}>
+CONFIG_COMMON_CLK_TI_ADPLL                      policy<{'armhf': 'y'}>
+CONFIG_CLK_UNIPHIER                             policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_ZYNQMP                        policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for Actions Semi SoCs
+CONFIG_CLK_ACTIONS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_OWL_S500                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_OWL_S700                             policy<{'arm64': 'y'}>
+CONFIG_CLK_OWL_S900                             policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC
+CONFIG_COMMON_CLK_MT7629                        policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7629_ETHSYS                 policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7629_HIFSYS                 policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8135                        policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8173                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8516                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8516_AUDSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC >> Clock driver for MediaTek MT2701
+CONFIG_COMMON_CLK_MT2701                        policy<{'armhf': 'n'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC >> Clock driver for MediaTek MT2712
+CONFIG_COMMON_CLK_MT2712                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_BDPSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_JPGDECSYS              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_MFGCFG                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_VENCSYS                policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC >> Clock driver for MediaTek MT6779
+CONFIG_COMMON_CLK_MT6779                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_IPESYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_CAMSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_VENCSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_MFGCFG                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_AUDSYS                 policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC >> Clock driver for MediaTek MT6797
+CONFIG_COMMON_CLK_MT6797                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_VENCSYS                policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC >> Clock driver for MediaTek MT7622
+CONFIG_COMMON_CLK_MT7622                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7622_ETHSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7622_HIFSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7622_AUDSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock driver for MediaTek SoC >> Clock driver for MediaTek MT8183
+CONFIG_COMMON_CLK_MT8183                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_AUDIOSYS               policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_CAMSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CORE0              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CORE1              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_ADL                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CONN               policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_MFGCFG                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_VENCSYS                policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Clock support for Allwinner SoCs
+CONFIG_SUNXI_CCU                                policy<{'arm64': 'y'}>
+CONFIG_SUN50I_A64_CCU                           policy<{'arm64': 'y'}>
+CONFIG_SUN50I_H6_CCU                            policy<{'arm64': 'y'}>
+CONFIG_SUN50I_H6_R_CCU                          policy<{'arm64': 'y'}>
+CONFIG_SUN8I_A83T_CCU                           policy<{'arm64': 'y'}>
+CONFIG_SUN8I_H3_CCU                             policy<{'arm64': 'y'}>
+CONFIG_SUN8I_DE2_CCU                            policy<{'arm64': 'y'}>
+CONFIG_SUN8I_R_CCU                              policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Ingenic SoCs drivers
+
+# Menu: Device Drivers >> Common Clock Framework >> Legacy clock support for Allwinner SoCs
+CONFIG_CLK_SUNXI                                policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_CLOCKS                         policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_PRCM_SUN6I                     policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_PRCM_SUN8I                     policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_PRCM_SUN9I                     policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Renesas SoC clock support
+CONFIG_CLK_RENESAS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS_LEGACY                       policy<{'armhf': 'y'}>
+CONFIG_CLK_EMEV2                                policy<{'armhf': 'y'}>
+CONFIG_CLK_RZA1                                 policy<{'armhf': 'y'}>
+CONFIG_CLK_R7S9210                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7740                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7743                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7745                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A77470                             policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A774A1                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A774C0                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A7778                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7779                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7790                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7791                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7792                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7794                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7795                              policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A7796                              policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77965                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77970                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77980                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77990                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77995                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R9A06G032                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_SH73A0                               policy<{'armhf': 'y'}>
+CONFIG_CLK_RCAR_GEN2                            policy<{'armhf': 'y'}>
+CONFIG_CLK_RCAR_GEN2_CPG                        policy<{'armhf': 'y'}>
+CONFIG_CLK_RCAR_GEN3_CPG                        policy<{'arm64': 'y'}>
+CONFIG_CLK_RCAR_USB2_CLOCK_SEL                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS_CPG_MSSR                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS_CPG_MSTP                     policy<{'armhf': 'y'}>
+CONFIG_CLK_RENESAS_DIV6                         policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Common Clock Framework >> SiFive SoC driver support
+CONFIG_CLK_SIFIVE                               policy<{}>
+CONFIG_CLK_SIFIVE_FU540_PRCI                    policy<{}>
+
+# Menu: Device Drivers >> Common Clock Framework >> Support for Qualcomm's clock controllers
+CONFIG_COMMON_CLK_QCOM                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_A53PLL                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_APCS_MSM8916                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_RPM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_SMD_RPM                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_RPMH                            policy<{'arm64': 'm'}>
+CONFIG_APQ_GCC_8084                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_APQ_MMCC_8084                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_GCC_4019                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_GCC_806X                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_LCC_806X                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_GCC_8074                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8660                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8916                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8960                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_LCC_8960                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MDM_GCC_9615                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MDM_LCC_9615                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_MMCC_8960                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8974                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_MMCC_8974                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8994                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8996                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_MMCC_8996                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8998                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCS_GCC_404                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_CAMCC_845                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_GCC_660                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCS_TURING_404                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_GCC_845                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_GPUCC_845                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_VIDEOCC_845                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_DISPCC_845                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_LPASSCC_845                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SM_GCC_8150                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPMI_PMIC_CLKDIV                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_HFPLL                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_KPSS_XCC                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_KRAITCC                                  policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Connector - unified userspace <-> kernelspace linker
+CONFIG_CONNECTOR                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_EVENTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Device Drivers >> Counter support
+CONFIG_COUNTER                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_104_QUAD_8                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FTM_QUADDEC                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> DAX: direct access to differentiated memory
+CONFIG_DAX                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEV_DAX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DEV_DAX_PMEM                             policy<{'amd64': 'm', 'ppc64el': 'm'}>
+CONFIG_DEV_DAX_KMEM                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DEV_DAX_PMEM_COMPAT                      policy<{'amd64': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> DMA Engine support
+CONFIG_DMADEVICES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DMADEVICES_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ALTERA_MSGDMA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AMBA_PL08X                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_AXI_DMAC                                 policy<{'arm64': 'm'}>
+CONFIG_BCM_SBA_RAID                             policy<{'arm64': 'm'}>
+CONFIG_DMA_BCM2835                              policy<{'arm64': 'y'}>
+CONFIG_DMA_SUN6I                                policy<{'arm64': 'm'}>
+CONFIG_DW_AXI_DMAC                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSL_EDMA                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSL_QDMA                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HISI_DMA                                 policy<{'arm64': 'm'}>
+CONFIG_IMX_DMA                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_SDMA                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_INTEL_IDMA64                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INTEL_IOATDMA                            policy<{'amd64': 'm'}>
+CONFIG_INTEL_MIC_X100_DMA                       policy<{'amd64': 'm'}>
+CONFIG_K3_DMA                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MV_XOR                                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MV_XOR_V2                                policy<{'arm64': 'y'}>
+CONFIG_MXS_DMA                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_MX3_IPU                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_MX3_IPU_IRQS                             policy<{'arm64': '4', 'armhf-generic': '4'}>
+CONFIG_NBPFAXI_DMA                              policy<{'armhf': 'm'}>
+CONFIG_OWL_DMA                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCH_DMA                                  policy<{'i386': 'm'}>
+CONFIG_PL330_DMA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPRD_DMA                                 policy<{'arm64': 'm'}>
+CONFIG_TEGRA20_APB_DMA                          policy<{'armhf-generic': 'y'}>
+CONFIG_TIMB_DMA                                 policy<{'i386': 'm'}>
+CONFIG_UNIPHIER_MDMAC                           policy<{'armhf': 'm'}>
+CONFIG_XGENE_DMA                                policy<{'arm64': 'm'}>
+CONFIG_XILINX_DMA                               policy<{'arm64': 'm'}>
+CONFIG_XILINX_ZYNQMP_DMA                        policy<{'arm64': 'm'}>
+CONFIG_MTK_HSDMA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_CQDMA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_UART_APDMA                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_BAM_DMA                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_HIDMA_MGMT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QCOM_HIDMA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DW_DMAC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DW_DMAC_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DW_EDMA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DW_EDMA_PCIE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RCAR_DMAC                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RENESAS_USB_DMAC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TI_CPPI41                                policy<{'armhf': 'm'}>
+CONFIG_TI_EDMA                                  policy<{'armhf': 'y'}>
+CONFIG_DMA_OMAP                                 policy<{'armhf': 'y'}>
+CONFIG_ASYNC_TX_DMA                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DMATEST                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_DMATEST                                  flag<TESTING>
+
+# Menu: Device Drivers >> DMABUF options
+CONFIG_SYNC_FILE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SW_SYNC                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UDMABUF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DMABUF_SELFTESTS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Dallas's 1-wire support
+CONFIG_W1                                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_W1_CON                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Dallas's 1-wire support >> 1-wire Bus Masters
+CONFIG_W1_MASTER_MATROX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_MASTER_DS2490                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_MASTER_DS2482                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_MASTER_MXC                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_W1_MASTER_DS1WM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_MASTER_GPIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDQ_MASTER_OMAP                          policy<{'armhf': 'm'}>
+CONFIG_W1_MASTER_SGI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Dallas's 1-wire support >> 1-wire Slaves
+CONFIG_W1_SLAVE_THERM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_SMEM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2405                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2408                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2408_READBACK                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_W1_SLAVE_DS2413                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2406                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2423                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2805                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2431                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2433                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2433_CRC                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_W1_SLAVE_DS2438                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS250X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2780                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS2781                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS28E04                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_W1_SLAVE_DS28E17                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Device Tree and Open Firmware support
+CONFIG_OF                                       policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_OF_UNITTEST                              policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', }>
+CONFIG_OF_DYNAMIC                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_OF_OVERLAY                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+#
+CONFIG_OF_UNITTEST                              flag<DEBUG>
+
+# Menu: Device Drivers >> EDAC (Error Detection And Correction) reporting
+CONFIG_EDAC                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_EDAC_LEGACY_SYSFS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_EDAC_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_EDAC_DECODE_MCE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_GHES                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_EDAC_AMD64                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_AMD64_ERROR_INJECTION               policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_EDAC_AMD76X                              policy<{'i386': 'm'}>
+CONFIG_EDAC_E7XXX                               policy<{'i386': 'm'}>
+CONFIG_EDAC_E752X                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I82875P                             policy<{'i386': 'm'}>
+CONFIG_EDAC_I82975X                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I3000                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I3200                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_IE31200                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_X38                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I5400                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I7CORE                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I82860                              policy<{'i386': 'm'}>
+CONFIG_EDAC_R82600                              policy<{'i386': 'm'}>
+CONFIG_EDAC_I5000                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I5100                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I7300                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_SBRIDGE                             policy<{'amd64': 'm'}>
+CONFIG_EDAC_SKX                                 policy<{'amd64': 'm'}>
+CONFIG_EDAC_I10NM                               policy<{'amd64': 'm'}>
+CONFIG_EDAC_PND2                                policy<{'amd64': 'm'}>
+CONFIG_EDAC_LAYERSCAPE                          policy<{'arm64': 'm'}>
+CONFIG_EDAC_CPC925                              policy<{'ppc64el': 'm'}>
+CONFIG_EDAC_HIGHBANK_MC                         policy<{'armhf': 'm'}>
+CONFIG_EDAC_HIGHBANK_L2                         policy<{'armhf': 'm'}>
+CONFIG_EDAC_THUNDERX                            policy<{'arm64': 'm'}>
+CONFIG_EDAC_SIFIVE                              policy<{}>
+CONFIG_EDAC_ARMADA_XP                           policy<{'armhf': 'y'}>
+CONFIG_EDAC_SYNOPSYS                            policy<{'arm64': 'm'}>
+CONFIG_EDAC_XGENE                               policy<{'arm64': 'm'}>
+CONFIG_EDAC_TI                                  policy<{'armhf': 'm'}>
+CONFIG_EDAC_QCOM                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_EDAC_BLUEFIELD                           policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> EDAC (Error Detection And Correction) reporting >> Altera SOCFPGA ECC
+CONFIG_EDAC_ALTERA                              policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_SDRAM                        policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_OCRAM                        policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_ETHERNET                     policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_NAND                         policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_USB                          policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_QSPI                         policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_SDMMC                        policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> EISA support
+CONFIG_EISA                                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_VLB_PRIMING                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_PCI_EISA                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_VIRTUAL_ROOT                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_NAMES                               policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> Eckelmann SIOX Support
+CONFIG_SIOX                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SIOX_BUS_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> External Connector Class (extcon) support
+CONFIG_EXTCON                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EXTCON_ADC_JACK                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_ARIZONA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_AXP288                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_FSA9480                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_GPIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_INTEL_INT3496                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_INTEL_CHT_WC                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_INTEL_MRFLD                       policy<{'i386': 'm'}>
+CONFIG_EXTCON_MAX14577                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_MAX3355                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_MAX77693                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_MAX77843                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_MAX8997                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_PALMAS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_PTN5150                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_QCOM_SPMI_MISC                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_EXTCON_RT8973A                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_SM5502                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_USB_GPIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXTCON_USBC_CROS_EC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> FPGA Configuration Framework
+CONFIG_FPGA                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ALTERA_PR_IP_CORE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ALTERA_PR_IP_CORE_PLAT                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_MGR_ALTERA_PS_SPI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_MGR_ALTERA_CVP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FPGA_MGR_STRATIX10_SOC                   policy<{'arm64': 'm'}>
+CONFIG_FPGA_MGR_XILINX_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_MGR_ICE40_SPI                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_MGR_MACHXO2_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_MGR_ZYNQMP_FPGA                     policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> FPGA Configuration Framework >> FPGA Bridge Framework
+CONFIG_FPGA_BRIDGE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ALTERA_FREEZE_BRIDGE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_XILINX_PR_DECOUPLER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_REGION                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_OF_FPGA_REGION                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> FPGA Configuration Framework >> FPGA Device Feature List (DFL) support
+CONFIG_FPGA_DFL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FPGA_DFL_AFU                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_DFL_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> FPGA Configuration Framework >> FPGA Device Feature List (DFL) support >> FPGA DFL FME Driver
+CONFIG_FPGA_DFL_FME                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_DFL_FME_MGR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_DFL_FME_BRIDGE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FPGA_DFL_FME_REGION                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> FSI support
+CONFIG_FSI                                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSI_NEW_DEV_NODE                         policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', }>
+CONFIG_FSI_MASTER_GPIO                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSI_MASTER_HUB                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSI_MASTER_AST_CF                        policy<{'armhf': 'm'}>
+CONFIG_FSI_SCOM                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSI_SBEFIFO                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FSI_OCC                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Fusion MPT device support
+CONFIG_FUSION                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FUSION_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FUSION_FC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FUSION_SAS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FUSION_MAX_SGE                           policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', }>
+CONFIG_FUSION_CTL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FUSION_LAN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FUSION_LOGGING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> GNSS receiver support
+CONFIG_GNSS                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GNSS_MTK_SERIAL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GNSS_SIRF_SERIAL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GNSS_UBX_SERIAL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> GPIO Support
+CONFIG_GPIOLIB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GPIOLIB_FASTPATH_LIMIT                   policy<{'amd64': '512', 'arm64': '512', 'armhf': '512', 'i386': '512', 'ppc64el': '512', 's390x': '512'}>
+CONFIG_DEBUG_GPIO                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GPIO_SYSFS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GPIO_MOCKUP                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> GPIO Support >> I2C GPIO expanders
+CONFIG_GPIO_ADP5588                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_ADNP                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_GW_PLD                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MAX7300                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_MAX732X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_PCA953X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_PCF857X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_TPIC2810                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_TS4900                              policy<{'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> GPIO Support >> MFD GPIO expanders
+CONFIG_GPIO_ADP5520                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_ARIZONA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_BD70528                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_BD9571MWV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_CRYSTAL_COVE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_CS5535                              policy<{'i386': 'm'}>
+CONFIG_GPIO_DA9052                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_DA9055                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_DLN2                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HTC_EGPIO                                policy<{'armhf': 'y'}>
+CONFIG_GPIO_JANZ_TTL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_KEMPLD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_LP3943                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_LP873X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_LP87565                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MADERA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MAX77620                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MAX77650                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MSIC                                policy<{'i386': 'y'}>
+CONFIG_GPIO_PALMAS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_RC5T583                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_STMPE                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_TC3589X                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_TIMBERDALE                          policy<{'i386': 'y'}>
+CONFIG_GPIO_TPS65086                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_TPS65218                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_TPS6586X                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_TPS65910                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_TPS65912                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_TPS68470                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_GPIO_TQMX86                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_TWL4030                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_TWL6040                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_UCB1400                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_WHISKEY_COVE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_WM831X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_WM8350                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_WM8994                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_GPIO_TWL4030                             mark<ENFORCED> note<LP:#921934>
+
+# Menu: Device Drivers >> GPIO Support >> Memory mapped GPIO drivers
+CONFIG_GPIO_74XX_MMIO                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_ALTERA                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_AMDPT                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_ASPEED                              policy<{'armhf': 'm'}>
+CONFIG_GPIO_RASPBERRYPI_EXP                     policy<{'arm64': 'm'}>
+CONFIG_GPIO_BRCMSTB                             policy<{'arm64': 'm'}>
+CONFIG_GPIO_CADENCE                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_DAVINCI                             policy<{'arm64': 'y'}>
+CONFIG_GPIO_DWAPB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_EIC_SPRD                            policy<{'arm64': 'm'}>
+CONFIG_GPIO_EM                                  policy<{'armhf': 'n'}>
+CONFIG_GPIO_EXAR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_FTGPIO010                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_GPIO_GENERIC_PLATFORM                    policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_GRGPIO                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_HLWD                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_ICH                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_LYNXPOINT                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GPIO_MB86S7X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_MENZ127                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MPC8XXX                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_OMAP                                policy<{'armhf': 'y'}>
+CONFIG_GPIO_PL061                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_PMIC_EIC_SPRD                       policy<{'arm64': 'm'}>
+CONFIG_GPIO_RCAR                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_GPIO_SAMA5D2_PIOBU                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_SIOX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_SPRD                                policy<{'arm64': 'm'}>
+CONFIG_GPIO_SYSCON                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_TEGRA                               policy<{'armhf-generic': 'y'}>
+CONFIG_GPIO_TS4800                              policy<{'armhf-generic': 'm'}>
+CONFIG_GPIO_THUNDERX                            policy<{'arm64': 'm'}>
+CONFIG_GPIO_UNIPHIER                            policy<{'armhf': 'm'}>
+CONFIG_GPIO_VX855                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_XGENE                               policy<{'arm64': 'y'}>
+CONFIG_GPIO_XGENE_SB                            policy<{'arm64': 'm'}>
+CONFIG_GPIO_XILINX                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_GPIO_XLP                                 policy<{'arm64': 'm'}>
+CONFIG_GPIO_ZEVIO                               policy<{'armhf': 'y'}>
+CONFIG_GPIO_ZYNQ                                policy<{'arm64': 'm'}>
+CONFIG_GPIO_AMD_FCH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_GPIO_EM                                  note<h/w not encounted>
+
+# Menu: Device Drivers >> GPIO Support >> PCI GPIO expanders
+CONFIG_GPIO_AMD8111                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_BT8XX                               policy<{'s390x': 'm'}>
+CONFIG_GPIO_INTEL_MID                           policy<{'i386': 'y'}>
+CONFIG_GPIO_MERRIFIELD                          policy<{'i386': 'n'}>
+CONFIG_GPIO_MLXBF                               policy<{'arm64': 'm'}>
+CONFIG_GPIO_ML_IOH                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_PCH                                 policy<{'i386': 'm'}>
+CONFIG_GPIO_PCI_IDIO_16                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_PCIE_IDIO_24                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_RDC321X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> GPIO Support >> Port-mapped I/O GPIO drivers
+CONFIG_GPIO_104_DIO_48E                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_104_IDIO_16                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_104_IDI_48                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_F7188X                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_GPIO_MM                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_IT87                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_SCH                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_SCH311X                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_WINBOND                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_WS16C48                             policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> GPIO Support >> SPI GPIO expanders
+CONFIG_GPIO_74X164                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MAX3191X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MAX7301                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MC33880                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_PISOSR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_XRA1403                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GPIO_MOXTET                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> GPIO Support >> USB GPIO expanders
+CONFIG_GPIO_VIPERBOARD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Generic Driver Options
+CONFIG_UEVENT_HELPER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UEVENT_HELPER_PATH                       policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_DEVTMPFS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEVTMPFS_MOUNT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STANDALONE                               policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PREVENT_FIRMWARE_BUILD                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ALLOW_DEV_COREDUMP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_DRIVER                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_DEVRES                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_TEST_DRIVER_REMOVE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_ASYNC_DRIVER_PROBE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DMA_FENCE_TRACE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_DEVTMPFS                                 note<ENFORCED> note<upstart requirement>
+CONFIG_DEVTMPFS_MOUNT                           note<ENFORCED> note<upstart requirement>
+
+# Menu: Device Drivers >> Generic Driver Options >> Firmware loader
+
+# Menu: Device Drivers >> Generic Driver Options >> Firmware loader >> Firmware loading facility
+CONFIG_FW_LOADER                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXTRA_FIRMWARE                           policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_FW_LOADER_USER_HELPER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FW_LOADER_COMPRESS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK           mark<ENFORCED> note<LP#1398458>
+
+# Menu: Device Drivers >> Generic Dynamic Voltage and Frequency Scaling (DVFS) support
+CONFIG_PM_DEVFREQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DEVFREQ_GOV_PERFORMANCE                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DEVFREQ_GOV_POWERSAVE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DEVFREQ_GOV_USERSPACE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DEVFREQ_GOV_PASSIVE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ARM_EXYNOS_BUS_DEVFREQ                   policy<{'armhf': 'y'}>
+CONFIG_ARM_TEGRA_DEVFREQ                        policy<{'armhf-generic': 'm'}>
+CONFIG_ARM_TEGRA20_DEVFREQ                      policy<{'armhf-generic': 'm'}>
+CONFIG_ARM_RK3399_DMC_DEVFREQ                   policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Generic Dynamic Voltage and Frequency Scaling (DVFS) support >> DEVFREQ-Event device Support
+CONFIG_PM_DEVFREQ_EVENT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP                policy<{'armhf': 'y'}>
+CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU                policy<{'armhf': 'y'}>
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI               policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Generic Target Core Mod (TCM) and ConfigFS Infrastructure
+CONFIG_TARGET_CORE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_IBLOCK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_FILEIO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_PSCSI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_USER2                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LOOPBACK_TARGET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_FC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ISCSI_TARGET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ISCSI_TARGET_CXGB4                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SBP_TARGET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver
+CONFIG_THERMAL                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_THERMAL_STATISTICS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS      policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_THERMAL_HWMON                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_WRITABLE_TRIPS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_GOV_FAIR_SHARE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_GOV_STEP_WISE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_GOV_BANG_BANG                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_GOV_USER_SPACE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CLOCK_THERMAL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', }>
+CONFIG_DEVFREQ_THERMAL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_EMULATION                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_MMIO                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_HISI_THERMAL                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX_THERMAL                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MAX77620_THERMAL                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_ROCKCHIP_THERMAL                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RCAR_THERMAL                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RCAR_GEN3_THERMAL                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DOVE_THERMAL                             policy<{'armhf': 'm'}>
+CONFIG_ARMADA_THERMAL                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DA9062_THERMAL                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MTK_THERMAL                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_GENERIC_ADC_THERMAL                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> APIs to parse thermal data out of device tree
+CONFIG_THERMAL_OF                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_CPU_THERMAL                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_QORIQ_THERMAL                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_UNIPHIER_THERMAL                         policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Broadcom thermal drivers
+CONFIG_BCM2835_THERMAL                          policy<{'arm64': 'm'}>
+CONFIG_BRCMSTB_THERMAL                          policy<{'arm64': 'm'}>
+CONFIG_BCM_NS_THERMAL                           policy<{'arm64': 'm'}>
+CONFIG_BCM_SR_THERMAL                           policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Default Thermal governor
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Intel thermal drivers
+CONFIG_INTEL_POWERCLAMP                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_PKG_TEMP_THERMAL                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_DTS_THERMAL                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_BXT_PMIC_THERMAL                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PCH_THERMAL                        policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Intel thermal drivers >> ACPI INT340X thermal drivers
+CONFIG_INT340X_THERMAL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INT3406_THERMAL                          policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> NVIDIA Tegra thermal drivers
+CONFIG_TEGRA_SOCTHERM                           policy<{'armhf-generic': 'n'}>
+CONFIG_TEGRA_BPMP_THERMAL                       policy<{'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Qualcomm thermal drivers
+CONFIG_QCOM_TSENS                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SPMI_TEMP_ALARM                     policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> STMicroelectronics thermal drivers
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Samsung thermal drivers
+CONFIG_EXYNOS_THERMAL                           policy<{'armhf': 'y'}>
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Texas Instruments thermal drivers
+
+# Menu: Device Drivers >> Generic Thermal sysfs driver >> Texas Instruments thermal drivers >> Texas Instruments SoCs temperature sensor driver
+CONFIG_TI_SOC_THERMAL                           policy<{'armhf': 'm'}>
+CONFIG_TI_THERMAL                               policy<{'armhf': 'y'}>
+CONFIG_OMAP3_THERMAL                            policy<{'armhf-generic': 'n'}>
+CONFIG_OMAP4_THERMAL                            policy<{'armhf-generic': 'y'}>
+CONFIG_DRA752_THERMAL                           policy<{'armhf': 'y'}>
+
+# Menu: Device Drivers >> Generic powercap sysfs driver
+CONFIG_POWERCAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INTEL_RAPL                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IDLE_INJECT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+
+# Menu: Device Drivers >> Graphics support
+CONFIG_VGA_ARB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VGA_ARB_MAX_GPUS                         policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16', }>
+CONFIG_VGA_SWITCHEROO                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_TEGRA_HOST1X                             policy<{'armhf-generic': 'm'}>
+CONFIG_TEGRA_HOST1X_FIREWALL                    policy<{'armhf-generic': 'y'}>
+CONFIG_IMX_IPUV3_CORE                           policy<{'armhf': 'm'}>
+CONFIG_DRM_DP_CEC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DRM_XEN                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_DRM_XEN_FRONTEND                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Graphics support >> /dev/agpgart (AGP Support)
+CONFIG_AGP                                      policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AGP_ALI                                  policy<{'i386': 'm'}>
+CONFIG_AGP_ATI                                  policy<{'i386': 'm'}>
+CONFIG_AGP_AMD                                  policy<{'i386': 'y'}>
+CONFIG_AGP_AMD64                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AGP_INTEL                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AGP_NVIDIA                               policy<{'i386': 'y'}>
+CONFIG_AGP_SIS                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AGP_SWORKS                               policy<{'i386': 'm'}>
+CONFIG_AGP_VIA                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AGP_EFFICEON                             policy<{'i386': 'm'}>
+#
+CONFIG_AGP                                      note<not autoloadable> flag<REVIEW>
+
+# Menu: Device Drivers >> Graphics support >> ACP (Audio CoProcessor) Configuration
+CONFIG_DRM_AMD_ACP                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Graphics support >> ARM devices
+CONFIG_DRM_HDLCD                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_HDLCD_SHOW_UNDERRUN                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MALI_DISPLAY                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_KOMEDA                               policy<{'arm64': 'm', 'armhf': 'm', }>
+
+# Menu: Device Drivers >> Graphics support >> Backlight & LCD device support
+
+# Menu: Device Drivers >> Graphics support >> Backlight & LCD device support >> Lowlevel Backlight controls
+CONFIG_BACKLIGHT_CLASS_DEVICE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_BACKLIGHT_GENERIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_LM3533                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_CARILLO_RANCH                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BACKLIGHT_PWM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_DA903X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_DA9052                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_MAX8925                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_APPLE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BACKLIGHT_PM8941_WLED                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_SAHARA                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BACKLIGHT_WM831X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_ADP5520                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_ADP8860                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_ADP8870                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_88PM860X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_PCF50633                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_AAT2870                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_LM3630A                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_LM3639                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_LP855X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_LP8788                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_PANDORA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_SKY81452                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_TPS65217                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_BACKLIGHT_AS3711                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_GPIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_LV5207LP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_BD6107                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_ARCXCNN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BACKLIGHT_RAVE_SP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Graphics support >> Backlight & LCD device support >> Lowlevel LCD controls
+CONFIG_LCD_CLASS_DEVICE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LCD_L4F00242T03                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_LMS283GF05                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_LTV350QV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_ILI922X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_ILI9320                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_TDO24M                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_VGG2432A4                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_PLATFORM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_AMS369FG06                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_LMS501KF03                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_HX8357                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LCD_OTM3225A                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Graphics support >> Bootup logo
+CONFIG_LOGO                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Graphics support >> Console display driver support
+CONFIG_VGA_CONSOLE                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MDA_CONSOLE                              policy<{'i386': 'm'}>
+CONFIG_DUMMY_CONSOLE_COLUMNS                    policy<{'amd64': '80', 'arm64': '80', 'i386': '80', 'ppc64el': '80', 's390x': '80'}>
+CONFIG_DUMMY_CONSOLE_ROWS                       policy<{'amd64': '25', 'arm64': '25', 'i386': '25', 'ppc64el': '25', 's390x': '25'}>
+
+# Menu: Device Drivers >> Graphics support >> Console display driver support >> Framebuffer Console support
+CONFIG_FRAMEBUFFER_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
+CONFIG_DRM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_DP_AUX_CHARDEV                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DRM_DEBUG_SELFTEST                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_FBDEV_EMULATION                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_FBDEV_OVERALLOC                      policy<{'amd64': '100', 'arm64': '100', 'armhf': '100', 'i386': '100', 'ppc64el': '100', 's390x': '100'}>
+CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_LOAD_EDID_FIRMWARE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_RADEON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_RADEON_USERPTR                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DRM_VGEM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_VKMS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_VMWGFX                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_VMWGFX_FBCON                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_UDL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_AST                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_MGAG200                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_CIRRUS_QEMU                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_ARMADA                               policy<{'armhf': 'm'}>
+CONFIG_DRM_ATMEL_HLCDC                          policy<{'armhf': 'm'}>
+CONFIG_DRM_RCAR_DU                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_RCAR_DW_HDMI                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_RCAR_LVDS                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n', }>
+CONFIG_DRM_RCAR_VSP                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_OMAP                                 policy<{'armhf': 'n'}>
+CONFIG_DRM_TILCDC                               policy<{'armhf': 'm'}>
+CONFIG_DRM_QXL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_BOCHS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_VIRTIO_GPU                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_FSL_DCU                              policy<{'armhf': 'm'}>
+CONFIG_DRM_TEGRA                                policy<{'armhf-generic': 'm'}>
+CONFIG_DRM_TEGRA_DEBUG                          policy<{'armhf-generic': 'n'}>
+CONFIG_DRM_TEGRA_STAGING                        policy<{'armhf-generic': 'y'}>
+CONFIG_DRM_STM                                  policy<{'armhf': 'm'}>
+CONFIG_DRM_STM_DSI                              policy<{'armhf': 'm'}>
+CONFIG_DRM_STI                                  policy<{'armhf': 'n'}>
+CONFIG_DRM_VC4                                  policy<{'arm64': 'm'}>
+CONFIG_DRM_VC4_HDMI_CEC                         policy<{'arm64': 'y'}>
+CONFIG_DRM_ETNAVIV                              policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_ETNAVIV_THERMAL                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_ARCPGU                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_HISI_HIBMC                           policy<{'arm64': 'm'}>
+CONFIG_DRM_HISI_KIRIN                           policy<{'arm64': 'm'}>
+CONFIG_DRM_MEDIATEK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MEDIATEK_HDMI                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MXSFB                                policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_DRM_MESON                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MESON_DW_HDMI                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_GM12U320                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_HX8357D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_ILI9225                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_ILI9341                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_MI0283QT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_REPAPER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_ST7586                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TINYDRM_ST7735R                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PL111                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_TVE200                               policy<{'armhf': 'm'}>
+CONFIG_DRM_VBOXVIDEO                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_LIMA                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_PANFROST                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_ASPEED_GFX                           policy<{'armhf': 'm'}>
+CONFIG_DRM_MCDE                                 policy<{'armhf': 'm'}>
+#
+CONFIG_DRM_MGAG200                              note<LP#1693337>
+CONFIG_DRM_STI                                  note<LP#1398458>
+CONFIG_DRM_VBOXVIDEO                            note<LP:1718679> flag<REVIEW>
+CONFIG_DRM_HISI_HIBMC                           mark<ENFORCED> note<LP:1762940>
+CONFIG_DRM_BOCHS                                mark<ENFORCED> note<LP#1872863> note<LP#1916290>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> AMD GPU
+CONFIG_DRM_AMDGPU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_AMDGPU_SI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_AMDGPU_CIK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_AMDGPU_USERPTR                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_AMDGPU_GART_DEBUGFS                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_HSA_AMD                                  policy<{'amd64': 'y', 'arm64': 'y'}>
+#
+CONFIG_DRM_AMDGPU_CIK                           note<LP:1510405>
+CONFIG_DRM_AMDGPU_CIK                           note<LP:1661887 for zesty>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> AMD GPU >> Display Engine Configuration
+CONFIG_DRM_AMD_DC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_AMD_DC_DCN2_0                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_AMD_DC_DCN2_1                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_AMD_DC_DSC_SUPPORT                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DEBUG_KERNEL_DC                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> DRM Support for Allwinner A10 Display Engine
+CONFIG_DRM_SUN4I                                policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN4I_HDMI                           policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN4I_HDMI_CEC                       policy<{'arm64': 'y'}>
+CONFIG_DRM_SUN4I_BACKEND                        policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN6I_DSI                            policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN8I_DW_HDMI                        policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN8I_MIXER                          policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> DRM Support for Freescale i.MX
+CONFIG_DRM_IMX                                  policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_PARALLEL_DISPLAY                 policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_TVE                              policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_LDB                              policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_HDMI                             policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> DRM Support for Rockchip
+CONFIG_DRM_ROCKCHIP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_ANALOGIX_DP                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_CDN_DP                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_DW_HDMI                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_DW_MIPI_DSI                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_INNO_HDMI                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_LVDS                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_RGB                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_RK3066_HDMI                     policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> DRM Support for Samsung SoC EXYNOS Series
+CONFIG_DRM_EXYNOS                               policy<{'armhf': 'm'}>
+CONFIG_DRM_EXYNOS_FIMD                          policy<{'armhf': 'n'}>
+CONFIG_DRM_EXYNOS5433_DECON                     policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS7_DECON                        policy<{'armhf': 'n'}>
+CONFIG_DRM_EXYNOS_MIXER                         policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_VIDI                          policy<{'armhf': 'n'}>
+CONFIG_DRM_EXYNOS_DSI                           policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_HDMI                          policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_MIC                           policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_FIMC                          policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_ROTATOR                       policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_SCALER                        policy<{'armhf': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Display Interface Bridges
+CONFIG_DRM_ANALOGIX_ANX78XX                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_CDNS_DSI                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_DUMB_VGA_DAC                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_LVDS_ENCODER                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_NXP_PTN3460                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PARADE_PS8622                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_SIL_SII8620                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_SII902X                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_SII9234                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_THINE_THC63LVD1024                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_TOSHIBA_TC358764                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_TOSHIBA_TC358767                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_TI_TFP410                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_TI_SN65DSI86                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_DW_HDMI_AHB_AUDIO                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_DW_HDMI_I2S_AUDIO                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_DW_HDMI_CEC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Display Interface Bridges >> ADV7511 encoder
+CONFIG_DRM_I2C_ADV7511                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_I2C_ADV7511_AUDIO                    policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_I2C_ADV7533                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_I2C_ADV7511_CEC                      policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Display Panels
+CONFIG_DRM_PANEL_ARM_VERSATILE                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_LVDS                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SIMPLE                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_ILITEK_IL9322                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_ILITEK_ILI9881C                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_INNOLUX_P079ZCA                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_JDI_LT070ME05000               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SAMSUNG_LD9040                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_LG_LB035Q02                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_LG_LG4573                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_NEC_NL8048HL11                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_NOVATEK_NT39016                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_ORISETECH_OTM8009A             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_RAYDIUM_RM67191                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_RAYDIUM_RM68200                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_ROCKTECH_JH057N00900           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_RONBO_RB070D30                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SAMSUNG_S6D16D0                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SAMSUNG_S6E63M0                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SEIKO_43WVF1G                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SHARP_LQ101R1SX01              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SHARP_LS037V7DW01              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SHARP_LS043T1LE01              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SITRONIX_ST7701                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SITRONIX_ST7789V               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_SONY_ACX565AKM                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_TPO_TD028TTEC1                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_TPO_TD043MTEA1                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_TPO_TPG110                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Enable legacy drivers (DANGEROUS)
+CONFIG_DRM_LEGACY                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_DRM_LEGACY                               flag<REVIEW> note<Consider re-enabling but not signing the modules>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> I2C encoder or helper chips
+CONFIG_DRM_I2C_CH7006                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I2C_SIL164                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I2C_NXP_TDA998X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I2C_NXP_TDA9950                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Intel 8xx/9xx/G3x/G4x/HD Graphics
+CONFIG_DRM_I915                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_I915_ALPHA_SUPPORT                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_FORCE_PROBE                     policy<{'amd64': '""', 'i386': '""'}>
+CONFIG_DRM_I915_CAPTURE_ERROR                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_I915_COMPRESS_ERROR                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_I915_USERPTR                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_I915_GVT                             policy<{'amd64': 'y'}>
+CONFIG_DRM_I915_GVT_KVMGT                       policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Intel 8xx/9xx/G3x/G4x/HD Graphics >> drm/i915 Debugging
+CONFIG_DRM_I915_WERROR                          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_MMIO                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_SW_FENCE_CHECK_DAG              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_GUC                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_SELFTEST                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_VBLANK_EVADE              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_RUNTIME_PM                policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Intel 8xx/9xx/G3x/G4x/HD Graphics >> drm/i915 Debugging >> Insert extra checks into the GEM internals
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Intel 8xx/9xx/G3x/G4x/HD Graphics >> drm/i915 Profile Guided Optimisation
+CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND           policy<{'amd64': '250', 'i386': '250'}>
+CONFIG_DRM_I915_SPIN_REQUEST                    policy<{'amd64': '5', 'i386': '5'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Intel GMA5/600 KMS Framebuffer
+CONFIG_DRM_GMA500                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_GMA600                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_GMA3600                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_MEDFIELD                             policy<{'i386': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> MSM DRM
+CONFIG_DRM_MSM                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MSM_REGISTER_LOGGING                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MSM_GPU_SUDO                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MSM_HDMI_HDCP                        policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> MSM DRM >> Enable DSI support in MSM DRM driver
+CONFIG_DRM_MSM_DSI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_PLL                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_28NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_20NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_28NM_8960_PHY                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_14NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_10NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Nouveau (NVIDIA) cards
+CONFIG_DRM_NOUVEAU                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_NOUVEAU_PLATFORM_DRIVER                  policy<{'armhf-generic': 'y'}>
+CONFIG_NOUVEAU_DEBUG                            policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'i386': '5', 'ppc64el': '5', }>
+CONFIG_NOUVEAU_DEBUG_DEFAULT                    policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'i386': '3', 'ppc64el': '3', }>
+CONFIG_NOUVEAU_DEBUG_MMU                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DRM_NOUVEAU_BACKLIGHT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DRM_NOUVEAU_SVM                          policy<{'amd64': 'n', 'ppc64el': 'n'}>
+#
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT               flag<REVIEW> note<Selects CONFIG_DRM_LEGACY which is not wanted>
+CONFIG_DRM_NOUVEAU_SVM                          flag<REVIEW>
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> OMAP2+ Display Subsystem support
+
+# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> OMAPDRM External Display Device Drivers
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Marvell MMP Display Subsystem support
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices
+CONFIG_FB                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FIRMWARE_EDID                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_MODE_HELPERS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_TILEBLITTING                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_CIRRUS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_PM2                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_PM2_FIFO_DISCONNECT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_ARMCLCD                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_IMX                                   policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_FB_CYBER2000                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_CYBER2000_DDC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_ARC                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_OF                                    policy<{'ppc64el': 'y'}>
+CONFIG_FB_ASILIANT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_IMSTT                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_VGA16                                 policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_UVESA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_VESA                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_EFI                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_FB_N411                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_HGA                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_OPENCORES                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_S1D13XXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_I740                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_I810                                  policy<{'i386': 'm'}>
+CONFIG_FB_I810_GTF                              policy<{'i386': 'n'}>
+CONFIG_FB_LE80578                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_CARILLO_RANCH                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_INTEL                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_INTEL_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_FB_INTEL_I2C                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_ATY128                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_ATY128_BACKLIGHT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_S3                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_S3_DDC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_SAVAGE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_SAVAGE_I2C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_SAVAGE_ACCEL                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_FB_SIS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_SIS_300                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_SIS_315                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_VIA                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_VIA_DIRECT_PROCFS                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_FB_VIA_X_COMPATIBILITY                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_NEOMAGIC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_KYRO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_3DFX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_3DFX_ACCEL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_FB_3DFX_I2C                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_FB_VOODOO1                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_VT8623                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_TRIDENT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_ARK                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_PM3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_CARMINE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_SH_MOBILE_LCDC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FB_TMIO                                  policy<{'armhf': 'm'}>
+CONFIG_FB_TMIO_ACCELL                           policy<{'armhf': 'y'}>
+CONFIG_FB_SM501                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_SMSCUFX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_UDL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_IBM_GXT4500                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_XILINX                                policy<{'arm64': 'm'}>
+CONFIG_FB_DA8XX                                 policy<{'armhf-generic': 'm'}>
+CONFIG_FB_VIRTUAL                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XEN_FBDEV_FRONTEND                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_FB_METRONOME                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_MB862XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_MB862XX_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_MX3                                   policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_FB_HYPERV                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_SIMPLE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_SSD1307                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_SM712                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_FB_VIRTUAL                               flag<TESTING>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> AMD Geode family framebuffer support
+CONFIG_FB_GEODE                                 policy<{'i386': 'y'}>
+CONFIG_FB_GEODE_LX                              policy<{'i386': 'm'}>
+CONFIG_FB_GEODE_GX                              policy<{'i386': 'm'}>
+CONFIG_FB_GEODE_GX1                             policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> ATI Mach64 display support
+CONFIG_FB_ATY                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_ATY_CT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_ATY_GENERIC_LCD                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_FB_ATY_GX                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_ATY_BACKLIGHT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> ATI Radeon display support
+CONFIG_FB_RADEON                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_RADEON_I2C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_RADEON_BACKLIGHT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_RADEON_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> Amiga native chipset support
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> DRAM timing
+CONFIG_FB_CARMINE_DRAM_EVAL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CARMINE_DRAM_CUSTOM                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> Framebuffer foreign endianness support
+CONFIG_FB_FOREIGN_ENDIAN                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> Framebuffer foreign endianness support >> Choice endianness support
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> GDC variant
+CONFIG_FB_MB862XX_PCI_GDC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_MB862XX_LIME                          policy<{'ppc64el': 'n'}>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> Matrox acceleration
+CONFIG_FB_MATROX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_MATROX_MILLENIUM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_MATROX_MYSTIQUE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_MATROX_G                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_MATROX_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_MATROX_MAVEN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> OMAP frame buffer support
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> OMAP2+ frame buffer support
+CONFIG_FB_OMAP2                                 policy<{'armhf': 'm'}>
+CONFIG_FB_OMAP2_DEBUG_SUPPORT                   policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_NUM_FBS                         policy<{'armhf': '3'}>
+CONFIG_FB_OMAP2_DSS_DEBUG                       policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_DEBUGFS                     policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_DPI                         policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP2_DSS_VENC                        policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP4_DSS_HDMI                        policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP5_DSS_HDMI                        policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_SDI                         policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_DSI                         policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_MIN_FCK_PER_PCK             policy<{'armhf': '0'}>
+CONFIG_FB_OMAP2_DSS_SLEEP_AFTER_VENC_RESET      policy<{'armhf': 'y'}>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> OMAP2+ frame buffer support >> OMAPFB Panel and Encoder Drivers
+CONFIG_FB_OMAP2_ENCODER_OPA362                  policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_ENCODER_TFP410                  policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_ENCODER_TPD12S015               policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_CONNECTOR_DVI                   policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_CONNECTOR_HDMI                  policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV             policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_PANEL_DPI                       policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_PANEL_DSI_CM                    policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02        policy<{'armhf': 'n'}>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> PXA LCD framebuffer support
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> SBUS and UPA framebuffers
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> nVidia Framebuffer Support
+CONFIG_FB_NVIDIA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_NVIDIA_I2C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_NVIDIA_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_FB_NVIDIA_BACKLIGHT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> nVidia Riva support
+CONFIG_FB_RIVA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_RIVA_I2C                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_FB_RIVA_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_FB_RIVA_BACKLIGHT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Greybus support
+CONFIG_GREYBUS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GREYBUS_ES2                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> HID support
+
+# Menu: Device Drivers >> HID support >> HID bus support
+CONFIG_HID                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HID_BATTERY_STRENGTH                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HIDRAW                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_UHID                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_GENERIC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> HID support >> HID bus support >> Special HID drivers
+CONFIG_HID_A4TECH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ACCUTOUCH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ACRUX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ACRUX_FF                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_APPLE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_APPLEIR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ASUS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_AUREAL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_BELKIN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_BETOP_FF                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_BIGBEN_FF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CHERRY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CHICONY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CORSAIR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_COUGAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MACALLY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PRODIKEYS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CMEDIA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CP2112                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CREATIVE_SB0540                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_CYPRESS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_DRAGONRISE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DRAGONRISE_FF                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_EMS_FF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ELAN                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ELECOM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ELO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_EZKEY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_GEMBIRD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_GFRM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_HOLTEK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HOLTEK_FF                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_GOOGLE_HAMMER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_HID_GT683R                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_KEYTOUCH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_KYE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_UCLOGIC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_WALTOP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_VIEWSONIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_GYRATION                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ICADE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ITE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_JABRA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_TWINHAN                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_KENSINGTON                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_LCPOWER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_LED                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_LENOVO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MAGICMOUSE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MALTRON                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MAYFLASH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_REDRAGON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MICROSOFT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MONTEREY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_MULTITOUCH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_NTI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_NTRIG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ORTEK                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PANTHERLORD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PANTHERLORD_FF                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_PENMOUNT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PETALYNX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PLANTRONICS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PRIMAX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_RETRODE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ROCCAT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SAITEK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SAMSUNG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SONY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SONY_FF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_SPEEDLINK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_STEAM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_STEELSERIES                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SUNPLUS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_RMI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_GREENASIA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GREENASIA_FF                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_HYPERV_MOUSE                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HID_SMARTJOYPLUS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SMARTJOYPLUS_FF                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_TIVO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_TOPSEED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_THINGM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_THRUSTMASTER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_THRUSTMASTER_FF                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_UDRAW_PS3                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_U2FZERO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_WACOM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_WIIMOTE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_XINMO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ZEROPLUS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ZEROPLUS_FF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_ZYDACRON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_HUB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_CUSTOM_SENSOR                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_ALPS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> HID support >> HID bus support >> Special HID drivers >> Logitech devices
+CONFIG_HID_LOGITECH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_LOGITECH_DJ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_LOGITECH_HIDPP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LOGITECH_FF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LOGIRUMBLEPAD2_FF                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LOGIG940_FF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LOGIWHEELS_FF                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> HID support >> HID bus support >> Special HID drivers >> PicoLCD (graphic version)
+CONFIG_HID_PICOLCD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PICOLCD_FB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_PICOLCD_BACKLIGHT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_PICOLCD_LCD                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_PICOLCD_LEDS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HID_PICOLCD_CIR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> HID support >> I2C HID support
+CONFIG_I2C_HID                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> HID support >> Intel ISH HID support
+CONFIG_INTEL_ISH_HID                            policy<{'amd64': 'm'}>
+CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER            policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> HID support >> USB HID support
+CONFIG_USB_HID                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_PID                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_HIDDEV                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> HID support >> USB HID support >> USB HID Boot Protocol drivers
+CONFIG_USB_KBD                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MOUSE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> HSI support
+CONFIG_HSI                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_OMAP_SSI                                 policy<{'armhf-generic': 'm'}>
+CONFIG_NOKIA_MODEM                              policy<{'armhf-generic': 'm'}>
+CONFIG_CMT_SPEECH                               policy<{'armhf-generic': 'm'}>
+CONFIG_SSI_PROTOCOL                             policy<{'armhf-generic': 'm'}>
+CONFIG_HSI_CHAR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> HW tracing support
+
+# Menu: Device Drivers >> HW tracing support >> Intel(R) Trace Hub controller
+CONFIG_INTEL_TH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_ACPI                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_TH_GTH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_STH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_MSU                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_PTI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> HW tracing support >> System Trace Module devices
+CONFIG_STM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_PROTO_BASIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_PROTO_SYS_T                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_DUMMY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_SOURCE_CONSOLE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_SOURCE_HEARTBEAT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_SOURCE_FTRACE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Hardware Monitoring support
+CONFIG_HWMON                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HWMON_DEBUG_CHIP                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SENSORS_ABITUGURU                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ABITUGURU3                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_AD7314                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AD7414                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AD7418                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1021                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1025                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1026                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1029                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1031                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM9240                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7310                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7410                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7411                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7462                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7470                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7475                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AS370                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ASC7621                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_K8TEMP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_K10TEMP                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_FAM15H_POWER                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_APPLESMC                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ARM_SCMI                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_ARM_SCPI                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_ASB100                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ASPEED                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ATXP1                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DS620                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DS1621                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DELL_SMM                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_DA9052_ADC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DA9055                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_I5K_AMB                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_F71805F                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_F71882FG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_F75375S                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MC13783_ADC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_FSCHMD                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_FTSTEUTATES                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_GL518SM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_GL520SM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_G760A                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_G762                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_GPIO_FAN                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_HIH6130                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IBMAEM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IBMPEX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IBMPOWERNV                       policy<{'ppc64el': 'm'}>
+CONFIG_SENSORS_IIO_HWMON                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_I5500                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_CORETEMP                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_IT87                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_JC42                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_POWR1220                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LINEAGE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LOCHNAGAR                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC2945                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC2990                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4151                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4215                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4222                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4245                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4260                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4261                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX1111                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX16065                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX1619                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX1668                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX197                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX31722                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6621                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6639                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6642                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6650                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6697                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX31790                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MCP3021                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MLXREG_FAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_TC654                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MENF21BMC_HWMON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADCXX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM63                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM70                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM73                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM75                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM77                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM78                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM80                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM83                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM85                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM87                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM90                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM92                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM93                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM95234                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM95241                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM95245                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_PC87360                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_PC87427                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_NTC_THERMISTOR                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_NCT6683                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_NCT6775                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_NCT7802                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_NCT7904                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_NPCM7XX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_OCC_P8_I2C                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_OCC_P9_SBE                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_PCF8591                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_PWM_FAN                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_RASPBERRYPI_HWMON                policy<{'arm64': 'm'}>
+CONFIG_SENSORS_SHT15                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SHT21                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SHT3x                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SHTC1                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SIS5595                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DME1737                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_EMC1403                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_EMC2103                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_EMC6W201                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SMSC47M1                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SMSC47M192                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SMSC47B397                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SCH5627                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SCH5636                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_STTS751                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SMM665                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADC128D818                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADS7828                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADS7871                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AMC6821                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INA209                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INA2XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INA3221                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TC74                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_THMC50                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP102                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP103                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP108                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP401                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP421                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_VEXPRESS                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_VIA_CPUTEMP                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_VIA686A                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_VT1211                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_VT8231                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83773G                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83781D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83791D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83792D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83793                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83795                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83795_FANCTRL                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SENSORS_W83L785TS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83L786NG                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83627HF                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_W83627EHF                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_WM831X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_WM8350                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_XGENE                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_AHC1EC0_HWMON                    policy<{'amd64': 'm'}>
+CONFIG_SENSORS_ACPI_POWER                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ATK0110                          policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Hardware Monitoring support >> PMBus support
+CONFIG_PMBUS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_PMBUS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_ADM1275                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_IBM_CFFPS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_INSPUR_IPSPS                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_IR35221                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_IR38064                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_IRPS5401                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_ISL68137                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_LM25066                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_LTC2978                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_LTC2978_REGULATOR                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SENSORS_LTC3815                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_MAX16064                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_MAX20751                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_MAX31785                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_MAX34440                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_MAX8688                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_PXE1610                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_TPS40422                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_TPS53679                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_UCD9000                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_UCD9200                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_ZL6100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Hardware Spinlock drivers
+CONFIG_HWSPINLOCK                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HWSPINLOCK_OMAP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HWSPINLOCK_QCOM                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HWSPINLOCK_SPRD                          policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> I2C support
+
+# Menu: Device Drivers >> I2C support >> I2C support
+CONFIG_I2C                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_ACPI_I2C_OPREGION                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_I2C_COMPAT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_I2C_CHARDEV                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_I2C_MUX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_I2C_HELPER_AUTO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_I2C_SMBUS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_STUB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_I2C_SLAVE                                policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_SLAVE_EEPROM                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_DEBUG_CORE                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_DEBUG_ALGO                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_DEBUG_BUS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_I2C_CHARDEV                              note<LP:1417032>
+
+# Menu: Device Drivers >> I2C support >> I2C support >> I2C Algorithms
+CONFIG_I2C_ALGOBIT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_I2C_ALGOPCA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> I2C support >> I2C support >> I2C Hardware Bus support
+CONFIG_I2C_ALI1535                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ALI1563                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ALI15X3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_AMD756                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_AMD756_S4882                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_AMD8111                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_AMD_MP2                              policy<{'amd64': 'm', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_I2C_HIX5HD2                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_I801                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ISCH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ISMT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_PIIX4                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_CHT_WC                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_NFORCE2                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_NFORCE2_S4985                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_NVIDIA_GPU                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SIS5595                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SIS630                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SIS96X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_VIA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_VIAPRO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SCMI                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_I2C_ASPEED                               policy<{'armhf': 'm'}>
+CONFIG_I2C_AXXIA                                policy<{'armhf-generic-lpae': 'm'}>
+CONFIG_I2C_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_I2C_BCM_IPROC                            policy<{'arm64': 'm'}>
+CONFIG_I2C_BRCMSTB                              policy<{'arm64': 'm'}>
+CONFIG_I2C_CADENCE                              policy<{'arm64': 'n'}>
+CONFIG_I2C_CBUS_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_DESIGNWARE_PLATFORM                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_I2C_DESIGNWARE_SLAVE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_I2C_DESIGNWARE_PCI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_DESIGNWARE_BAYTRAIL                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_I2C_EG20T                                policy<{'i386': 'm'}>
+CONFIG_I2C_EMEV2                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'm', 'i386': 'n', }>
+CONFIG_I2C_EXYNOS5                              policy<{'armhf': 'm'}>
+CONFIG_I2C_GPIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_GPIO_FAULT_INJECTOR                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_I2C_IMX                                  policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_I2C_IMX_LPI2C                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_I2C_KEMPLD                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_MESON                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_MPC                                  policy<{'ppc64el': 'm'}>
+CONFIG_I2C_MT65XX                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_MV64XXX                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_NOMADIK                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_OCORES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_OMAP                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_OWL                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_PCA_PLATFORM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_PXA                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_PXA_SLAVE                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_QCOM_GENI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_QUP                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_RIIC                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_RK3X                                 policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_I2C_S3C2410                              policy<{'armhf': 'y'}>
+CONFIG_I2C_SH_MOBILE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_SIMTEC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SPRD                                 policy<{'arm64': 'y'}>
+CONFIG_I2C_SYNQUACER                            policy<{'arm64': 'm'}>
+CONFIG_I2C_TEGRA                                policy<{'armhf-generic': 'm'}>
+CONFIG_I2C_TEGRA_BPMP                           policy<{'armhf-generic': 'm'}>
+CONFIG_I2C_UNIPHIER                             policy<{'armhf': 'n'}>
+CONFIG_I2C_UNIPHIER_F                           policy<{'armhf': 'n'}>
+CONFIG_I2C_VERSATILE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_THUNDERX                             policy<{'arm64': 'm'}>
+CONFIG_I2C_XILINX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_XLP9XX                               policy<{'arm64': 'm'}>
+CONFIG_I2C_RCAR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_DIOLAN_U2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_DLN2                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_PARPORT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_PARPORT_LIGHT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ROBOTFUZZ_OSIF                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_TAOS_EVM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_TINY_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_VIPERBOARD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_MLXCPLD                              policy<{'amd64': 'm'}>
+CONFIG_I2C_PCA_ISA                              policy<{'i386': 'm'}>
+CONFIG_I2C_CROS_EC_TUNNEL                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_I2C_XGENE_SLIMPRO                        policy<{'arm64': 'm'}>
+CONFIG_SCx200_ACB                               policy<{'i386': 'm'}>
+CONFIG_I2C_OPAL                                 policy<{'ppc64el': 'y'}>
+CONFIG_I2C_FSI                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> I2C support >> I2C support >> Multiplexer I2C Chip support
+CONFIG_I2C_ARB_GPIO_CHALLENGE                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_MUX_GPIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_GPMUX                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_MUX_LTC4306                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_PCA9541                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_PCA954x                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_PINCTRL                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_MUX_REG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_DEMUX_PINCTRL                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_MUX_MLXCPLD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> I3C support
+CONFIG_I3C                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CDNS_I3C_MASTER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DW_I3C_MASTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> IEEE 1394 (FireWire) support
+CONFIG_FIREWIRE_NOSY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> IEEE 1394 (FireWire) support >> FireWire driver stack
+CONFIG_FIREWIRE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FIREWIRE_OHCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FIREWIRE_SBP2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FIREWIRE_NET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> IOMMU Hardware Support
+CONFIG_IOMMU_SUPPORT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IOMMU_DEBUGFS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IOMMU_DEFAULT_PASSTHROUGH                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MSM_IOMMU                                policy<{'armhf': 'n'}>
+CONFIG_AMD_IOMMU                                policy<{'amd64': 'y'}>
+CONFIG_AMD_IOMMU_V2                             policy<{'amd64': 'm'}>
+CONFIG_IRQ_REMAP                                policy<{'amd64': 'y'}>
+CONFIG_OMAP_IOMMU                               policy<{'armhf': 'y'}>
+CONFIG_OMAP_IOMMU_DEBUG                         policy<{'armhf': 'n'}>
+CONFIG_ROCKCHIP_IOMMU                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_TEGRA_IOMMU_GART                         policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_IOMMU_SMMU                         policy<{'armhf-generic': 'y'}>
+CONFIG_EXYNOS_IOMMU                             policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_IOMMU_DEBUG                       policy<{'armhf': 'n'}>
+CONFIG_IPMMU_VMSA                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_SPAPR_TCE_IOMMU                          policy<{'ppc64el': 'y'}>
+CONFIG_ARM_SMMU                                 policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT       policy<{'arm64': 'n'}>
+CONFIG_ARM_SMMU_V3                              policy<{'arm64': 'y'}>
+CONFIG_S390_CCW_IOMMU                           policy<{'s390x': 'y'}>
+CONFIG_S390_AP_IOMMU                            policy<{'s390x': 'y'}>
+CONFIG_MTK_IOMMU                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTK_IOMMU_V1                             policy<{'armhf': 'n'}>
+CONFIG_QCOM_IOMMU                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HYPERV_IOMMU                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VIRTIO_IOMMU                             policy<{'arm64': 'y'}>
+#
+CONFIG_IPMMU_VMSA				note<LP:1718734>
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT       mark<ENFORCED> note<LP:1845820>
+CONFIG_IOMMU_DEBUGFS                            mark<ENFORCED> note<Should not be enabled in production, LP #1861057>
+
+# Menu: Device Drivers >> IOMMU Hardware Support >> Generic IOMMU Pagetable Support
+CONFIG_IOMMU_IO_PGTABLE_LPAE                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IOMMU_IO_PGTABLE_ARMV7S                  policy<{'arm64': 'n', 'armhf': 'n'}>
+
+# Menu: Device Drivers >> IOMMU Hardware Support >> Support for Intel IOMMU using DMA Remapping Devices
+CONFIG_INTEL_IOMMU                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_IOMMU_SVM                          policy<{'amd64': 'y', 'i386': '-'}>
+CONFIG_INTEL_IOMMU_DEFAULT_ON                   policy<{'amd64': 'n', 'i386': 'n'}>
+#
+CONFIG_INTEL_IOMMU_DEFAULT_ON                   note<the IOMMU can trigger boot failures> flag<REVIEW>
+
+# Menu: Device Drivers >> IRQ chip support
+CONFIG_AL_FIC                                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_RENESAS_INTC_IRQPIN                      policy<{'armhf': 'y'}>
+CONFIG_RENESAS_IRQC                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RENESAS_RZA1_IRQC                        policy<{'armhf': 'y'}>
+CONFIG_TS4800_IRQ                               policy<{'armhf-generic': 'm'}>
+CONFIG_QCOM_IRQ_COMBINER                        policy<{'arm64': 'y'}>
+CONFIG_IRQ_UNIPHIER_AIDET                       policy<{'armhf': 'y'}>
+CONFIG_MESON_IRQ_GPIO                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_PDC                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_IRQSTEER                             policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_SIFIVE_PLIC                              policy<{}>
+
+# Menu: Device Drivers >> ISDN support
+CONFIG_ISDN                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> ISDN support >> CAPI 2.0 subsystem
+CONFIG_ISDN_CAPI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAPI_TRACE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ISDN_CAPI_CAPI20                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ISDN_CAPI_MIDDLEWARE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> ISDN support >> Modular ISDN driver
+CONFIG_MISDN                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_DSP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_L1OIP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_HFCPCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_HFCMULTI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_HFCUSB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_AVMFRITZ                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_SPEEDFAX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_INFINEON                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_W6692                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MISDN_NETJET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support
+CONFIG_IIO                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IIO_CONFIGFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_TRIGGER                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IIO_CONSUMERS_PER_TRIGGER                policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2', }>
+CONFIG_IIO_SW_DEVICE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_SW_TRIGGER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_CROS_EC_SENSORS_CORE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_SENSORS                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Industrial I/O support >> Accelerometers
+CONFIG_ADIS16201                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16209                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADXL372_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADXL372_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMA180                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMA220                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMC150_ACCEL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DA280                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DA311                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DMARD06                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DMARD09                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DMARD10                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_ACCEL_3D                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_ST_ACCEL_3AXIS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KXSD9                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KXSD9_SPI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KXSD9_I2C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KXCJK1013                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MC3230                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMA7455_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMA7455_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMA7660                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMA8452                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMA9551                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMA9553                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MXC4005                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MXC6255                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCA3000                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_STK8312                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_STK8BA50                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Amplifiers
+CONFIG_AD8366                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Analog Front Ends
+CONFIG_IIO_RESCALE                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Analog to digital converters
+CONFIG_AD7124                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7266                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7291                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7298                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7476                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7606_IFACE_PARALLEL                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7606_IFACE_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7766                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7768_1                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7780                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7791                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7793                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7887                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7923                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7949                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD799X                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ASPEED_ADC                               policy<{'armhf': 'm'}>
+CONFIG_AXP20X_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AXP288_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BCM_IPROC_ADC                            policy<{'arm64': 'm'}>
+CONFIG_BERLIN2_ADC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CC10001_ADC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_CPCAP_ADC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DA9150_GPADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DLN2_ADC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ENVELOPE_DETECTOR                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_EXYNOS_ADC                               policy<{'armhf': 'm'}>
+CONFIG_HI8435                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HX711                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INA2XX_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IMX7D_ADC                                policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_LP8788_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTC2471                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTC2485                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTC2497                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX1027                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX11100                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX1118                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX1363                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX9611                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP320X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP3422                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP3911                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIATEK_MT6577_AUXADC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MEN_Z188_ADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MESON_SARADC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NAU7802                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NPCM_ADC                                 policy<{'armhf': 'm'}>
+CONFIG_PALMAS_GPADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QCOM_PM8XXX_XOADC                        policy<{'armhf': 'm'}>
+CONFIG_QCOM_SPMI_IADC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QCOM_SPMI_VADC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QCOM_SPMI_ADC5                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RCAR_GYRO_ADC                            policy<{'armhf': 'm'}>
+CONFIG_ROCKCHIP_SARADC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SC27XX_ADC                               policy<{'arm64': 'm'}>
+CONFIG_SD_ADC_MODULATOR                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_STMPE_ADC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_STX104                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SUN4I_GPADC                              policy<{'arm64': 'n'}>
+CONFIG_TI_ADC081C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADC0832                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADC084S021                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADC12138                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADC108S102                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADC128S052                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADC161S626                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADS1015                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADS7950                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADS8344                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADS8688                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_ADS124S08                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_AM335X_ADC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_TLC4541                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TWL4030_MADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TWL6030_GPADC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VF610_ADC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIPERBOARD_ADC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_XILINX_XADC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Chemical Sensors
+CONFIG_ATLAS_PH_SENSOR                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BME680                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CCS811                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IAQCORE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PMS7003                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSIRION_SGP30                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPS30                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VZ89X                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Digital gyroscope sensors
+CONFIG_ADIS16080                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16130                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16136                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16260                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADXRS450                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMG160                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FXAS21002C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_GYRO_3D                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MPU3050_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_ST_GYRO_3AXIS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ITG3200                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Digital potentiometers
+CONFIG_AD5272                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DS1803                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX5432                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX5481                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX5487                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP4018                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP4131                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP4531                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP41010                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TPL0102                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Digital potentiostats
+CONFIG_LMP91000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Digital to analog converters
+CONFIG_AD5064                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5360                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5380                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5421                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5446                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5449                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5592R                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5593R                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5504                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5624R_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTC1660                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTC2632                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5686_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5696_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5755                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5758                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5761                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5764                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD5791                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7303                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CIO_DAC                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AD8801                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DPOT_DAC                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DS4424                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_M62332                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX517                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX5821                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP4725                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCP4922                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_DAC082S085                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_DAC5571                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_DAC7311                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TI_DAC7612                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VF610_DAC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Enable buffer support within IIO
+CONFIG_IIO_BUFFER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IIO_BUFFER_CB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_BUFFER_HW_CONSUMER                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_KFIFO_BUF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Frequency Synthesizers DDS/PLL
+
+# Menu: Device Drivers >> Industrial I/O support >> Frequency Synthesizers DDS/PLL >> Clock Generator/Distribution
+CONFIG_AD9523                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Frequency Synthesizers DDS/PLL >> Phase-Locked Loop (PLL) frequency synthesizers
+CONFIG_ADF4350                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADF4371                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Health Sensors
+
+# Menu: Device Drivers >> Industrial I/O support >> Health Sensors >> Heart Rate Monitors
+CONFIG_AFE4403                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AFE4404                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX30100                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX30102                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Hid Sensor IIO Common
+CONFIG_HID_SENSOR_IIO_COMMON                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_IIO_TRIGGER                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Humidity sensors
+CONFIG_AM2315                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DHT11                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDC100X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_HUMIDITY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HTS221                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HTU21                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SI7005                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SI7020                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> IIO dummy driver
+CONFIG_IIO_SIMPLE_DUMMY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_SIMPLE_DUMMY_EVENTS                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_IIO_SIMPLE_DUMMY_BUFFER                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_IIO_SIMPLE_DUMMY_EVENTS                  note<dummy driver>
+CONFIG_IIO_SIMPLE_DUMMY_BUFFER                  note<dummy driver>
+
+# Menu: Device Drivers >> Industrial I/O support >> Inclinometer sensors
+CONFIG_HID_SENSOR_INCLINOMETER_3D               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_DEVICE_ROTATION               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Inertial measurement units
+CONFIG_ADIS16400                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16460                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16480                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMI160_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMI160_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KMX61                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INV_MPU6050_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INV_MPU6050_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_ST_LSM6DSX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Light sensors
+CONFIG_ACPI_ALS                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ADJD_S311                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AL3320A                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_APDS9300                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_APDS9960                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BH1750                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BH1780                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CM32181                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CM3232                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CM3323                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CM3605                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CM36651                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_CROS_EC_LIGHT_PROX                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_GP2AP020A00F                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_ISL29018                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_ISL29028                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ISL29125                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_ALS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_PROX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JSA1212                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RPR0521                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_LM3533                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTR501                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LV0104CS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX44000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX44009                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NOA1305                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_OPT3001                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PA12203001                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SI1133                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SI1145                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_STK3310                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ST_UVIS25                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TCS3414                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TCS3472                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_TSL2563                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TSL2583                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TSL2772                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TSL4531                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_US5182D                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VCNL4000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VCNL4035                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VEML6070                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VL6180                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ZOPT2201                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Lightning sensors
+CONFIG_AS3935                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Magnetometer sensors
+CONFIG_AK8974                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_AK8975                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AK09911                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMC150_MAGN_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMC150_MAGN_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAG3110                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_MAGNETOMETER_3D               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC35240                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_ST_MAGN_3AXIS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_HMC5843_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_HMC5843_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_RM3100_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_RM3100_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Multiplexers
+CONFIG_IIO_MUX                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Pressure sensors
+CONFIG_ABP060MG                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BMP280                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_CROS_EC_BARO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_DPS310                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_PRESS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HP03                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MPL115_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MPL115_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MPL3115                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MS5611                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MS5611_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MS5611_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MS5637                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_ST_PRESS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_T5403                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HP206C                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ZPA2326                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Proximity and distance sensors
+CONFIG_ISL29501                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIDAR_LITE_V2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MB1232                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RFD77402                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SRF04                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SX9500                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SRF08                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VL53L0X_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Resolver to digital converters
+CONFIG_AD2S90                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD2S1200                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> SSP Sensor Common
+CONFIG_IIO_SSP_SENSORS_COMMONS                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_SSP_SENSORHUB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Temperature sensors
+CONFIG_MAXIM_THERMOCOUPLE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HID_SENSOR_TEMP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MLX90614                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MLX90632                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TMP006                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TMP007                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TSYS01                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TSYS02D                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX31856                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Industrial I/O support >> Triggers - standalone
+CONFIG_IIO_HRTIMER_TRIGGER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_INTERRUPT_TRIGGER                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_TIGHTLOOP_TRIGGER                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IIO_SYSFS_TRIGGER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> IndustryPack bus support
+CONFIG_IPACK_BUS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BOARD_TPCI200                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIAL_IPOCTAL                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> InfiniBand support
+CONFIG_INFINIBAND                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_USER_MAD                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_ON_DEMAND_PAGING              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_IPOIB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_IPOIB_CM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_IPOIB_DEBUG                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INFINIBAND_OPA_VNIC                      policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> InfiniBand support >> InfiniBand userspace access (verbs and CM)
+CONFIG_INFINIBAND_USER_ACCESS                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INFINIBAND_MTHCA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_MTHCA_DEBUG                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INFINIBAND_QIB                           policy<{'amd64': 'm'}>
+CONFIG_INFINIBAND_QIB_DCA                       policy<{'amd64': 'y'}>
+CONFIG_INFINIBAND_CXGB3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INFINIBAND_EFA                           policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_INFINIBAND_I40IW                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MLX4_INFINIBAND                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX5_INFINIBAND                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_OCRDMA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INFINIBAND_VMWARE_PVRDMA                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_INFINIBAND_USNIC                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INFINIBAND_HNS                           policy<{'arm64': 'm'}>
+CONFIG_INFINIBAND_HNS_HIP06                     policy<{'arm64': 'y'}>
+CONFIG_INFINIBAND_HNS_HIP08                     policy<{'arm64': 'y'}>
+CONFIG_INFINIBAND_BNXT_RE                       policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INFINIBAND_HFI1                          policy<{'amd64': 'm'}>
+CONFIG_HFI1_DEBUG_SDMA_ORDER                    policy<{'amd64': 'n'}>
+CONFIG_SDMA_VERBOSITY                           policy<{'amd64': 'n'}>
+CONFIG_INFINIBAND_QEDR                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_INFINIBAND_RDMAVT                        policy<{'amd64': 'm'}>
+CONFIG_RDMA_RXE                                 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDMA_SIW                                 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> InfiniBand support >> RDMA/CM
+CONFIG_INFINIBAND_ADDR_TRANS                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_CXGB4                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INFINIBAND_SRP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_SRPT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_ISER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_ISERT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Input device support
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...)
+CONFIG_INPUT                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INPUT_LEDS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_FF_MEMLESS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_POLLDEV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_SPARSEKMAP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_MATRIXKMAP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_JOYDEV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_EVDEV                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INPUT_EVBUG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Joysticks/Gamepads
+CONFIG_INPUT_JOYSTICK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_JOYSTICK_ANALOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_A3D                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_ADI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_COBRA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_GF2K                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_GRIP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_GRIP_MP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_GUILLEMOT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_INTERACT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_SIDEWINDER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_TMDC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_IFORCE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_IFORCE_USB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_IFORCE_232                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_WARRIOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_MAGELLAN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_SPACEORB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_SPACEBALL                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_STINGER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_TWIDJOY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_ZHENHUA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_DB9                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_GAMECON                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_TURBOGRAFX                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_AS5011                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_JOYDUMP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_XPAD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_XPAD_FF                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JOYSTICK_XPAD_LEDS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JOYSTICK_WALKERA0701                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_PSXPAD_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_PSXPAD_SPI_FF                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JOYSTICK_PXRC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JOYSTICK_FSIA6B                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Keyboards
+CONFIG_INPUT_KEYBOARD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KEYBOARD_ADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_ADP5520                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_ADP5588                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_ADP5589                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_APPLESPI                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_KEYBOARD_ATKBD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_KEYBOARD_QT1050                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_QT1070                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_QT2160                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_DLINK_DIR685                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_LKKBD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_GPIO_POLLED                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_TCA6416                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_TCA8418                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_MATRIX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_LM8323                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_LM8333                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_MAX7359                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_MCS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_MPR121                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_SNVS_PWRKEY                     policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_IMX                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_NEWTON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_OPENCORES                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_PMIC8XXX                        policy<{'armhf': 'm'}>
+CONFIG_KEYBOARD_SAMSUNG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_KEYBOARD_STOWAWAY                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_SUNKBD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_STMPE                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_SUN4I_LRADC                     policy<{'arm64': 'n'}>
+CONFIG_KEYBOARD_OMAP4                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_TC3589X                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_TM2_TOUCHKEY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_TWL4030                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_XTKBD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_CROS_EC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_KEYBOARD_CAP11XX                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_KEYBOARD_BCM                             policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_KEYBOARD_MTK_PMIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Mice
+CONFIG_INPUT_MOUSE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MOUSE_SERIAL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_APPLETOUCH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_BCM5974                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_CYAPA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_ELAN_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_ELAN_I2C_I2C                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_ELAN_I2C_SMBUS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_INPORT                             policy<{'i386': 'n'}>
+CONFIG_MOUSE_LOGIBM                             policy<{'i386': 'm'}>
+CONFIG_MOUSE_PC110PAD                           policy<{'i386': 'm'}>
+CONFIG_MOUSE_VSXXXAA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_GPIO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_SYNAPTICS_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_SYNAPTICS_USB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_MOUSE_INPORT                             note<very old ISA based mouse support>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Mice >> PS/2 mouse
+CONFIG_MOUSE_PS2                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOUSE_PS2_ALPS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_BYD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_LOGIPS2PP                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_SYNAPTICS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_CYPRESS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_LIFEBOOK                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MOUSE_PS2_TRACKPOINT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_ELANTECH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_SENTELIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_TOUCHKIT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_FOCALTECH                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MOUSE_PS2_VMMOUSE                        policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Miscellaneous devices
+CONFIG_INPUT_MISC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_88PM860X_ONKEY                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_88PM80X_ONKEY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_AD714X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_AD714X_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_AD714X_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_ARIZONA_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_ATMEL_CAPTOUCH                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_BMA150                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_E3X0_BUTTON                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_MSM_VIBRATOR                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_PCSPKR                             policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PM8941_PWRKEY                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INPUT_PM8XXX_VIBRATOR                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INPUT_PMIC8XXX_PWRKEY                    policy<{'armhf': 'm'}>
+CONFIG_INPUT_MAX77650_ONKEY                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_MAX77693_HAPTIC                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_MAX8925_ONKEY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_MAX8997_HAPTIC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_MC13783_PWRBUTTON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_MMA8450                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_APANEL                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_GP2A                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_GPIO_BEEPER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_GPIO_DECODER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_GPIO_VIBRA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_CPCAP_PWRBUTTON                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_WISTRON_BTNS                       policy<{'i386': 'm'}>
+CONFIG_INPUT_ATLAS_BTNS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_ATI_REMOTE2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_KEYSPAN_REMOTE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_KXTJ9                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_KXTJ9_POLLED_MODE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_INPUT_POWERMATE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_YEALINK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_CM109                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_REGULATOR_HAPTIC                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_RETU_PWRBUTTON                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_TPS65218_PWRBUTTON                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_AXP20X_PEK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_TWL4030_PWRBUTTON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_TWL4030_VIBRA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_TWL6040_VIBRA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_UINPUT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_INPUT_PALMAS_PWRBUTTON                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_PCF50633_PMU                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_PCF8574                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_PWM_BEEPER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_PWM_VIBRA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_RK805_PWRKEY                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_GPIO_ROTARY_ENCODER                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_DA9052_ONKEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_DA9055_ONKEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_DA9063_ONKEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_WM831X_ON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_PCAP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_ADXL34X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_ADXL34X_I2C                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_ADXL34X_SPI                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_IMS_PCU                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_CMA3000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_CMA3000_I2C                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_IDEAPAD_SLIDEBAR                   policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_SOC_BUTTON_ARRAY                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_DRV260X_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_DRV2665_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_DRV2667_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_HISI_POWERKEY                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INPUT_RAVE_SP_PWRBUTTON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_INPUT_SC27XX_VIBRA                       policy<{'arm64': 'm'}>
+CONFIG_INPUT_STPMIC1_ONKEY                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_INPUT_UINPUT                             mark<ENFORCED> note<LP:584812>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Mouse interface
+CONFIG_INPUT_MOUSEDEV                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_MOUSEDEV_PSAUX                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_INPUT_MOUSEDEV_SCREEN_X                  policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'i386': '1024', 'ppc64el': '1024', }>
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y                  policy<{'amd64': '768', 'arm64': '768', 'armhf': '768', 'i386': '768', 'ppc64el': '768', }>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Synaptics RMI4 bus support
+CONFIG_RMI4_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RMI4_I2C                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RMI4_SPI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RMI4_SMB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RMI4_F03                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RMI4_F11                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RMI4_F12                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RMI4_F30                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RMI4_F34                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RMI4_F54                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RMI4_F55                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Tablets
+CONFIG_INPUT_TABLET                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TABLET_USB_ACECAD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TABLET_USB_AIPTEK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TABLET_USB_GTCO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TABLET_USB_HANWANG                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TABLET_USB_KBTAB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TABLET_USB_PEGASUS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TABLET_SERIAL_WACOM4                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Touchscreens
+CONFIG_INPUT_TOUCHSCREEN                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TOUCHSCREEN_88PM860X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ADS7846                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_AD7877                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_AD7879                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_AD7879_I2C                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_AD7879_SPI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ADC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_AR1021_I2C                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ATMEL_MXT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_AUO_PIXCIR                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_BU21013                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_BU21029                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8318              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505              policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TOUCHSCREEN_CY8CTMG110                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CYTTSP_CORE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CYTTSP_I2C                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CYTTSP_SPI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_DA9034                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_DA9052                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_DYNAPRO                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_HAMPSHIRE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_EETI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_EGALAX                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_EXC3000                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_FUJITSU                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_GOODIX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_HIDEEP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ILI210X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_IPROC                        policy<{'arm64': 'm'}>
+CONFIG_TOUCHSCREEN_S6SY761                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_GUNZE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_EKTF2127                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ELAN                         policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ELO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_WACOM_W8001                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_WACOM_I2C                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MAX11801                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MCS5000                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MMS114                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MELFAS_MIP4                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MTOUCH                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_IMX6UL_TSC                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_INEXIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MK712                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_HTCPEN                       policy<{'i386': 'm'}>
+CONFIG_TOUCHSCREEN_PENMOUNT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_EDT_FT5X06                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW               policy<{'arm64': 'm'}>
+CONFIG_TOUCHSCREEN_TOUCHRIGHT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TOUCHWIN                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_UCB1400                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_PIXCIR                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_WDT87XX_I2C                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_WM831X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_MC13783                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TOUCHIT213                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TS4800                       policy<{'armhf-generic': 'm'}>
+CONFIG_TOUCHSCREEN_TSC_SERIO                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TSC2004                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TSC2005                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TSC2007                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TSC2007_IIO                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_PCAP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_RM_TS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_SILEAD                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_SIS_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ST1232                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_STMFTS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_STMPE                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_SUN4I                        policy<{'arm64': 'n'}>
+CONFIG_TOUCHSCREEN_SUR40                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_SURFACE3_SPI                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_SX8654                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_TPS6507X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ZET6223                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ZFORCE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_COLIBRI_VF50                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_ROHM_BU21023                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_IQS5XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_TOUCHSCREEN_ELAN                         mark<ENFORCED> note<LP #1630238>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Touchscreens >> Support for WM97xx AC97 touchscreen controllers
+CONFIG_TOUCHSCREEN_WM97XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_WM9705                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_WM9712                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_WM9713                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Touchscreens >> USB Touchscreen Driver
+CONFIG_TOUCHSCREEN_USB_COMPOSITE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TOUCHSCREEN_USB_EGALAX                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_PANJIT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_3M                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_ITM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_ETURBO                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_GUNZE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_IRTOUCH                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_IDEALTEK                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_GOTOP                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_JASTEC                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_ELO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_E2I                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_NEXIO                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Input device support >> Hardware I/O ports
+
+# Menu: Device Drivers >> Input device support >> Hardware I/O ports >> Gameport support
+CONFIG_GAMEPORT                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GAMEPORT_NS558                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GAMEPORT_L4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GAMEPORT_EMU10K1                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GAMEPORT_FM801                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Input device support >> Hardware I/O ports >> Serial I/O support
+CONFIG_SERIO                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SERIO_I8042                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIO_SERPORT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_CT82C710                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIO_PARKBD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_AMBAKMI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIO_PCIPS2                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_LIBPS2                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SERIO_RAW                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_XILINX_XPS_PS2                     policy<{'ppc64el': 'm'}>
+CONFIG_SERIO_ALTERA_PS2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_PS2MULT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_ARC_PS2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SERIO_APBPS2                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_HYPERV_KEYBOARD                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIO_SUN4I_PS2                          policy<{'arm64': 'n'}>
+CONFIG_SERIO_GPIO_PS2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USERIO                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> LED Support
+CONFIG_NEW_LEDS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_LEDS_LP55XX_COMMON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> LED Support >> LED Class Support
+CONFIG_LEDS_CLASS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_88PM860X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_AN30259A                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_APU                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_BCM6328                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_BCM6358                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_CPCAP                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_CR0014114                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3530                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3532                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3533                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3642                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3692X                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_MT6323                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_NET48XX                             policy<{'i386': 'm'}>
+CONFIG_LEDS_WRAP                                policy<{'i386': 'm'}>
+CONFIG_LEDS_PCA9532                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_PCA9532_GPIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_GPIO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP3944                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP3952                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP5521                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP5523                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP5562                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP8501                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP8788                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LP8860                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_CLEVO_MAIL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_PCA955X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_PCA955X_GPIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_PCA963X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_WM831X_STATUS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_WM8350                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_DA903X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_DA9052                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_DAC124S085                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_PWM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_REGULATOR                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_BD2802                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_INTEL_SS4200                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_LT3593                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_ADP5520                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_MC13783                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_NS2                                 policy<{'armhf': 'm'}>
+CONFIG_LEDS_ASIC3                               policy<{'armhf': 'y'}>
+CONFIG_LEDS_TCA6507                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TLC591XX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_MAX77650                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_MAX8997                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM355x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_OT200                               policy<{'i386': 'm'}>
+CONFIG_LEDS_MENF21BMC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_IS31FL319X                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_IS31FL32XX                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_SC27XX_BLTC                         policy<{'arm64': 'm'}>
+CONFIG_LEDS_BLINKM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_POWERNV                             policy<{'ppc64el': 'm'}>
+CONFIG_LEDS_SYSCON                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_PM8058                              policy<{'armhf': 'm'}>
+CONFIG_LEDS_MLXCPLD                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_MLXREG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_USER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_NIC78BX                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_SPI_BYTE                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TI_LMU_COMMON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3697                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM36274                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Flash Class Support
+CONFIG_LEDS_CLASS_FLASH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_AAT1290                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_AS3645A                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_LM3601X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_MAX77693                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_KTD2692                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Trigger support
+CONFIG_LEDS_TRIGGERS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_TRIGGER_TIMER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_ONESHOT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_DISK                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_TRIGGER_MTD                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_TRIGGER_HEARTBEAT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_BACKLIGHT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_CPU                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_TRIGGER_ACTIVITY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_GPIO                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_DEFAULT_ON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_TRANSIENT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_CAMERA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_PANIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LEDS_TRIGGER_NETDEV                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_PATTERN                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LEDS_TRIGGER_AUDIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> MCB support
+CONFIG_MCB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MCB_PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MCB_LPC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> MIPS Platform Specific Device Drivers
+
+# Menu: Device Drivers >> MMC/SD/SDIO card support
+CONFIG_MMC                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PWRSEQ_EMMC                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PWRSEQ_SD8787                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PWRSEQ_SIMPLE                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_BLOCK                                policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_BLOCK_MINORS                         policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+CONFIG_SDIO_UART                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_TEST                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MMC_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MMC_ARMMMCI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_QCOM_DML                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_STM32_SDMMC                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_MESON_GX                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_MESON_MX_SDIO                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_OMAP                                 policy<{'armhf': 'm'}>
+CONFIG_MMC_OMAP_HS                              policy<{'armhf': 'y'}>
+CONFIG_MMC_WBSD                                 policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_ALCOR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_MXC                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MMC_TIFM_SD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_MVSDIO                               policy<{'armhf': 'm'}>
+CONFIG_MMC_SPI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDRICOH_CS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MMC_TMIO                                 policy<{'armhf': 'm'}>
+CONFIG_MMC_SDHI                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHI_SYS_DMAC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHI_INTERNAL_DMAC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_UNIPHIER                             policy<{'armhf': 'm'}>
+CONFIG_MMC_CB710                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_VIA_SDMMC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_CAVIUM_THUNDERX                      policy<{'arm64': 'm'}>
+CONFIG_MMC_SH_MMCIF                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_VUB300                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_USHC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_USDHI6ROL0                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_REALTEK_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_REALTEK_USB                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SUNXI                                policy<{'arm64': 'm'}>
+CONFIG_MMC_CQHCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_TOSHIBA_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_MMC_MTK                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_MMC_BLOCK                                note<boot essential on armhf/arm64>
+CONFIG_MMC_TEST                                 flag<TESTING>
+CONFIG_MMC_OMAP_HS                              note<boot essential on arm>
+
+# Menu: Device Drivers >> MMC/SD/SDIO card support >> Samsung S3C SD/MMC transfer code
+
+# Menu: Device Drivers >> MMC/SD/SDIO card support >> Secure Digital Host Controller Interface support
+CONFIG_MMC_SDHCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_PCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_RICOH_MMC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MMC_SDHCI_ACPI                           policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_MMC_SDHCI_S3C                            policy<{'armhf': 'm'}>
+CONFIG_MMC_SDHCI_S3C_DMA                        policy<{'armhf': 'y'}>
+#
+CONFIG_MMC_SDHCI                                note<installation essential on omap/highbank>
+
+# Menu: Device Drivers >> MMC/SD/SDIO card support >> Secure Digital Host Controller Interface support >> SDHCI platform and OF driver helper
+CONFIG_MMC_SDHCI_PLTFM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_OF_ARASAN                      policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_MMC_SDHCI_OF_ASPEED                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_OF_AT91                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_OF_ESDHC                       policy<{'arm64': 'm', 'armhf-generic': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_OF_HLWD                        policy<{'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_OF_DWCMSHC                     policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_MMC_SDHCI_CADENCE                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_ESDHC_IMX                      policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_MMC_SDHCI_DOVE                           policy<{'armhf': 'm'}>
+CONFIG_MMC_SDHCI_TEGRA                          policy<{'armhf-generic': 'm'}>
+CONFIG_MMC_SDHCI_PXAV3                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_F_SDH30                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_IPROC                          policy<{'arm64': 'm'}>
+CONFIG_MMC_SDHCI_MSM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_SPRD                           policy<{'arm64': 'm'}>
+CONFIG_MMC_SDHCI_BRCMSTB                        policy<{'arm64': 'm'}>
+CONFIG_MMC_SDHCI_XENON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_OMAP                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MMC_SDHCI_AM654                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_MMC_SDHCI_PLTFM                          note<boot essential on highbank>
+
+# Menu: Device Drivers >> MMC/SD/SDIO card support >> Synopsys DesignWare Memory Card Interface
+CONFIG_MMC_DW                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_PLTFM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_BLUEFIELD                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_EXYNOS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_HI3798CV200                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_K3                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_PCI                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_ROCKCHIP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Macintosh device drivers
+CONFIG_MACINTOSH_DRIVERS                        policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC_EMUMOUSEBTN                          policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> Macintosh device drivers >> Apple Desktop Bus (ADB) support
+
+# Menu: Device Drivers >> Macintosh device drivers >> New PowerMac thermal control infrastructure
+CONFIG_WINDFARM                                 policy<{'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> Macintosh device drivers >> Support for PMU based PowerMacs and PowerBooks
+
+# Menu: Device Drivers >> Mailbox Hardware Support
+CONFIG_MAILBOX                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ARM_MHU                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX_MBOX                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PLATFORM_MHU                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PL320_MBOX                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARMADA_37XX_RWTM_MBOX                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OMAP2PLUS_MBOX                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OMAP_MBOX_KFIFO_SIZE                     policy<{'arm64': '256', 'armhf': '256'}>
+CONFIG_ROCKCHIP_MBOX                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCC                                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ALTERA_MBOX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BCM2835_MBOX                             policy<{'arm64': 'y'}>
+CONFIG_TI_MESSAGE_MANAGER                       policy<{'arm64': 'y'}>
+CONFIG_HI3660_MBOX                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HI6220_MBOX                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MAILBOX_TEST                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_QCOM_APCS_IPC                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEGRA_HSP_MBOX                           policy<{'armhf-generic': 'y'}>
+CONFIG_XGENE_SLIMPRO_MBOX                       policy<{'arm64': 'm'}>
+CONFIG_BCM_PDC_MBOX                             policy<{'arm64': 'm'}>
+CONFIG_BCM_FLEXRM_MBOX                          policy<{'arm64': 'm'}>
+CONFIG_MTK_CMDQ_MBOX                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ZYNQMP_IPI_MBOX                          policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Memory Controller drivers
+CONFIG_MEMORY                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ARM_PL172_MPMC                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TI_EMIF                                  policy<{'armhf': 'm'}>
+CONFIG_OMAP_GPMC_DEBUG                          policy<{'armhf': 'n'}>
+CONFIG_TI_EMIF_SRAM                             policy<{'armhf-generic': 'm'}>
+CONFIG_MVEBU_DEVBUS                             policy<{'armhf': 'y'}>
+CONFIG_PL353_SMC                                policy<{'armhf': 'm'}>
+CONFIG_SAMSUNG_MC                               policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_SROM                              policy<{'armhf': 'y'}>
+CONFIG_TEGRA_MC                                 policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA20_EMC                              policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA124_EMC                             policy<{'armhf-generic': 'y'}>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support
+CONFIG_MTD                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MTD_TESTS                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_BLOCK                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_BLOCK_RO                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FTL                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFTL                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFTL_RW                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_INFTL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RFD_FTL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SSFDC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SM_FTL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_OOPS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_SWAP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_PARTITIONED_MASTER                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_SPI_NAND                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_MTD                                      note<boot essential on arm>
+CONFIG_MTD_BLOCK                                note<boot essential on arm>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Enable UBI - Unsorted block images
+CONFIG_MTD_UBI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_UBI_WL_THRESHOLD                     policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'i386': '4096', 'ppc64el': '4096', }>
+CONFIG_MTD_UBI_BEB_LIMIT                        policy<{'amd64': '20', 'arm64': '20', 'armhf': '20', 'i386': '20', 'ppc64el': '20', }>
+CONFIG_MTD_UBI_FASTMAP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_UBI_GLUEBI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_UBI_BLOCK                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> HyperBus support
+CONFIG_MTD_HYPERBUS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HBMC_AM654                               policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> LPDDR & LPDDR2 PCM memory drivers
+CONFIG_MTD_LPDDR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_QINFO_PROBE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_LPDDR2_NVM                           policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access
+CONFIG_MTD_SCx200_DOCFLASH                      policy<{'i386': 'm'}>
+CONFIG_MTD_AMD76XROM                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_ICHXROM                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_ESB2ROM                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_CK804XROM                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_SCB2_FLASH                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_NETtel                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_L440GX                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_IMPA7                                policy<{'armhf': 'm'}>
+CONFIG_MTD_INTEL_VR_NOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_PLATRAM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access >> Flash device in physical memory map
+CONFIG_MTD_PHYSMAP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_PHYSMAP_OF                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_PHYSMAP_VERSATILE                    policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', }>
+CONFIG_MTD_PHYSMAP_GEMINI                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', }>
+CONFIG_MTD_PHYSMAP_GPIO_ADDR                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access >> Flash device in physical memory map >> Physmap compat support
+CONFIG_MTD_PHYSMAP_COMPAT                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access >> Maximum mappable memory available for flash IO
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access >> Support non-linear mappings of flash chips
+CONFIG_MTD_COMPLEX_MAPPINGS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_SBC_GXX                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_PCMCIA                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_PCMCIA_ANONYMOUS                     policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> OneNAND Device Support
+CONFIG_MTD_ONENAND                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_ONENAND_VERIFY_WRITE                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_ONENAND_GENERIC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_ONENAND_OMAP2                        policy<{'armhf-generic': 'm'}>
+CONFIG_MTD_ONENAND_OTP                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_ONENAND_2X_PROGRAM                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+#
+CONFIG_MTD_ONENAND_VERIFY_WRITE                 note<writes here are not checked in full without>
+CONFIG_MTD_ONENAND_OTP                          flag<REVIEW>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Partition parsers
+CONFIG_MTD_AR7_PARTS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_CMDLINE_PARTS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_OF_PARTS                             policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', }>
+CONFIG_MTD_AFS_PARTS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_SHARPSL_PARTS                        policy<{'armhf': 'm'}>
+#
+CONFIG_MTD_CMDLINE_PARTS                        flag<REVIEW>
+CONFIG_MTD_OF_PARTS                             note<boot essential on arm>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Partition parsers >> RedBoot partition table parsing
+CONFIG_MTD_REDBOOT_PARTS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK              policy<{'amd64': '-1', 'arm64': '-1', 'armhf': '-1', 'i386': '-1', 'ppc64el': '-1', }>
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_REDBOOT_PARTS_READONLY               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> RAM/ROM/Flash chip drivers
+CONFIG_MTD_CFI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_JEDECPROBE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_CFI_INTELEXT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_CFI_AMDSTD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_CFI_STAA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_RAM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_ROM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_ABSENT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> RAM/ROM/Flash chip drivers >> Flash chip driver advanced configuration options
+CONFIG_MTD_CFI_ADV_OPTIONS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> RAM/ROM/Flash chip drivers >> Flash chip driver advanced configuration options >> Flash cmd/query data swapping
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> RAM/ROM/Flash chip drivers >> Flash chip driver advanced configuration options >> Specific CFI Flash geometry selection
+CONFIG_MTD_MAP_BANK_WIDTH_1                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_MAP_BANK_WIDTH_2                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_MAP_BANK_WIDTH_4                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_CFI_I1                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_CFI_I2                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Raw/Parallel NAND Device Support
+CONFIG_MTD_RAW_NAND                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_ECC_SW_BCH                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_NAND_DENALI_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_DENALI_DT                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_OMAP2                           policy<{'armhf': 'y'}>
+CONFIG_MTD_NAND_OMAP_BCH                        policy<{'armhf': 'y'}>
+CONFIG_MTD_NAND_CAFE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_CS553X                          policy<{'i386': 'm'}>
+CONFIG_MTD_NAND_ORION                           policy<{'armhf': 'm'}>
+CONFIG_MTD_NAND_MARVELL                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_TMIO                            policy<{'armhf': 'm'}>
+CONFIG_MTD_NAND_BRCMNAND                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_GPMI_NAND                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MTD_NAND_FSL_IFC                         policy<{'arm64': 'm'}>
+CONFIG_MTD_NAND_VF610_NFC                       policy<{'armhf-generic': 'n'}>
+CONFIG_MTD_NAND_MXC                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MTD_NAND_SUNXI                           policy<{'arm64': 'n'}>
+CONFIG_MTD_NAND_HISI504                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_QCOM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_MTK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_MXIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_MTD_NAND_MESON                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_PLATFORM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_NANDSIM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_RICOH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_DISKONCHIP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS        policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+#
+CONFIG_MTD_RAW_NAND                             note<boot essential on arm>
+CONFIG_MTD_NAND_OMAP2                           note<boot essential on arm>
+CONFIG_MTD_NAND_OMAP_BCH                        note<boot essential on arm>
+CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE             note<can be enabled at runtime>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Raw/Parallel NAND Device Support >> JZ4780 NAND controller
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> SPI-NOR device support
+CONFIG_MTD_SPI_NOR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SPI_ASPEED_SMC                           policy<{'armhf': 'm'}>
+CONFIG_SPI_CADENCE_QUADSPI                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_HISI_SFC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_MTK_QUADSPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_INTEL_SPI_PCI                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SPI_INTEL_SPI_PLATFORM                   policy<{'amd64': 'n', 'i386': 'n'}>
+#
+CONFIG_SPI_INTEL_SPI_PCI                        mark<ENFORCED> note<LP:1734147>
+CONFIG_SPI_INTEL_SPI_PLATFORM                   mark<ENFORCED> note<LP:1734147>
+
+# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Self-contained MTD device drivers
+CONFIG_MTD_PMC551                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_PMC551_BUGFIX                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_PMC551_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_DATAFLASH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_DATAFLASH_WRITE_VERIFY               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MTD_DATAFLASH_OTP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MTD_MCHP23K256                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_SST25L                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_BCM47XXSFLASH                        policy<{'armhf': 'm'}>
+CONFIG_MTD_SLRAM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_PHRAM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_MTDRAM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTDRAM_TOTAL_SIZE                        policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'i386': '4096', 'ppc64el': '4096', }>
+CONFIG_MTDRAM_ERASE_SIZE                        policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', }>
+CONFIG_MTD_BLOCK2MTD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MTD_POWERNV_FLASH                        policy<{'ppc64el': 'm'}>
+CONFIG_MTD_DOCG3                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_MTD_DOCG3                                mark<ENFORCED> note<LP:1792205>
+
+# Menu: Device Drivers >> Microsoft Hyper-V guest support
+CONFIG_HYPERV                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_UTILS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_BALLOON                           policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Misc devices
+CONFIG_AD525X_DPOT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AD525X_DPOT_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD525X_DPOT_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DUMMY_IRQ                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IBM_ASM                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IBMVMC                                   policy<{'ppc64el': 'm'}>
+CONFIG_PHANTOM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INTEL_MID_PTI                            policy<{'i386': 'm'}>
+CONFIG_TIFM_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TIFM_7XX1                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ICS932S401                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ENCLOSURE_SERVICES                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SGI_XP                                   policy<{'amd64': 'm'}>
+CONFIG_CS5535_MFGPT                             policy<{'i386': 'n'}>
+CONFIG_HP_ILO                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QCOM_COINCELL                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_FASTRPC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SGI_GRU                                  policy<{'amd64': 'm'}>
+CONFIG_SGI_GRU_DEBUG                            policy<{'amd64': 'n'}>
+CONFIG_APDS9802ALS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ISL29003                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ISL29020                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_TSL2550                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_BH1770                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_APDS990X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HMC6352                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DS1682                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_VMWARE_BALLOON                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCH_PHUB                                 policy<{'i386': 'm'}>
+CONFIG_LATTICE_ECP3_CONFIG                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SRAM                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VEXPRESS_SYSCFG                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_ENDPOINT_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XILINX_SDFEC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PVPANIC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CB710_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CB710_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SENSORS_LIS3_SPI                         policy<{'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SENSORS_LIS3_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ALTERA_STAPL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INTEL_MEI                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_ME                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_TXE                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_HDCP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VMWARE_VMCI                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ECHO                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CXL                                      policy<{'ppc64el': 'm'}>
+CONFIG_OCXL                                     policy<{'ppc64el': 'm'}>
+CONFIG_MISC_ALCOR_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MISC_RTSX_PCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MISC_RTSX_USB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HABANA_AI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_CS5535_MFGPT                             note<should be disabled by default>
+
+# Menu: Device Drivers >> Misc devices >> EEPROM support
+CONFIG_EEPROM_AT24                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_AT25                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EEPROM_LEGACY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_MAX6875                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_93CX6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_93XX46                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EEPROM_IDT_89HPESX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_EE1004                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Misc devices >> GenWQE PCIe Accelerator
+CONFIG_GENWQE                                   policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY           policy<{'amd64': '0', 'arm64': '0', 'ppc64el': '0', 's390x': '0'}>
+
+# Menu: Device Drivers >> Misc devices >> Intel MIC & related support
+CONFIG_INTEL_MIC_BUS                            policy<{'amd64': 'm'}>
+CONFIG_SCIF_BUS                                 policy<{'amd64': 'm'}>
+CONFIG_SCIF                                     policy<{'amd64': 'm'}>
+CONFIG_MIC_COSM                                 policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> Misc devices >> Intel MIC & related support >> VOP Bus Driver
+CONFIG_VOP_BUS                                  policy<{'amd64': 'm', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INTEL_MIC_HOST                           policy<{'amd64': 'm'}>
+CONFIG_INTEL_MIC_CARD                           policy<{'amd64': 'm'}>
+CONFIG_VOP                                      policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> Misc devices >> Silicon Labs C2 port support
+CONFIG_C2PORT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_C2PORT_DURAMAR_2150                      policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Misc devices >> Texas Instruments shared transport line discipline
+CONFIG_TI_ST                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Multifunction device drivers
+CONFIG_MFD_CS5535                               policy<{'i386': 'm'}>
+CONFIG_MFD_ALTERA_SYSMGR                        policy<{'arm64': 'y'}>
+CONFIG_MFD_ACT8945A                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_SUN4I_GPADC                          policy<{'arm64': 'm'}>
+CONFIG_MFD_AS3711                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_AS3722                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PMIC_ADP5520                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_AAT2870_CORE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_ATMEL_FLEXCOM                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_ATMEL_HLCDC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_BCM590XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_BD9571MWV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_AC100                                policy<{'arm64': 'n'}>
+CONFIG_MFD_AXP20X_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_AXP20X_RSB                           policy<{'arm64': 'm'}>
+CONFIG_MFD_CROS_EC_DEV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MFD_ASIC3                                policy<{'armhf': 'y'}>
+CONFIG_PMIC_DA903X                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9052_SPI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9052_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9055                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9062                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_DA9063                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_DA9150                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_DLN2                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_EXYNOS_LPASS                         policy<{'armhf': 'm'}>
+CONFIG_MFD_MC13XXX_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MC13XXX_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_HI6421_PMIC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_HI655X_PMIC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HTC_PASIC3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HTC_I2CPLD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_INTEL_QUARK_I2C_GPIO                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LPC_ICH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LPC_SCH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INTEL_SOC_PMIC                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_SOC_PMIC_BXTWC                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_PMIC_CHTWC                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_PMIC_MRFLD                     policy<{'i386': 'm'}>
+CONFIG_MFD_INTEL_LPSS_ACPI                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MFD_INTEL_LPSS_PCI                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MFD_INTEL_MSIC                           policy<{'i386': 'y'}>
+CONFIG_MFD_JANZ_CMODIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_KEMPLD                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_88PM800                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_88PM805                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_88PM860X                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX14577                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_MAX77620                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX77650                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MAX77686                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX77693                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_MAX77843                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX8907                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MAX8925                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX8997                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX8998                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MT6397                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MENF21BMC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EZX_PCAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CPCAP                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_VIPERBOARD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_RETU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_PCF50633                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PCF50633_ADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PCF50633_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UCB1400_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_PM8XXX                               policy<{'armhf': 'm'}>
+CONFIG_MFD_QCOM_RPM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_SPMI_PMIC                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_RDC321X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MFD_RT5033                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_RC5T583                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_RK808                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_RN5T618                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_SEC_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SI476X_CORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SM501                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SM501_GPIO                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SKY81452                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SMSC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SC27XX_PMIC                          policy<{'arm64': 'm'}>
+CONFIG_ABX500_CORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AB3100_CORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AB3100_OTP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_STMPE                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SUN6I_PRCM                           policy<{'arm64': 'y'}>
+CONFIG_MFD_SYSCON                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_TI_AM335X_TSCADC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_LP3943                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_LP8788                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TI_LMU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_OMAP_USB_HOST                        policy<{'armhf': 'y'}>
+CONFIG_MFD_PALMAS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TPS6105X                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TPS65010                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TPS6507X                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TPS65086                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TPS65090                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65217                             policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'n'}>
+CONFIG_MFD_TPS68470                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_MFD_TI_LP873X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TI_LP87565                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_TPS65218                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_TPS6586X                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65910                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65912_I2C                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_TPS65912_SPI                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS80031                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TWL4030_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TWL4030_POWER                            policy<{'armhf': 'y'}>
+CONFIG_MFD_TWL4030_AUDIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TWL6040_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WL1273_CORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_LM3533                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TIMBERDALE                           policy<{'i386': 'm'}>
+CONFIG_MFD_TC3589X                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_T7L66XB                              policy<{'armhf': 'y'}>
+CONFIG_MFD_TC6387XB                             policy<{'armhf': 'y'}>
+CONFIG_MFD_TC6393XB                             policy<{'armhf': 'y'}>
+CONFIG_MFD_TQMX86                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_VX855                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MFD_LOCHNAGAR                            policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_ARIZONA_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_ARIZONA_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_CS47L24                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM5102                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM5110                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8997                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8998                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8400                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM831X_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM831X_SPI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8350_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8994                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_ROHM_BD718XX                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_ROHM_BD70528                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_STPMIC1                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_STMFX                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_VEXPRESS_SYSREG                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RAVE_SP_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_AHC1EC0                              policy<{'amd64': 'm'}>
+#
+CONFIG_MFD_SM501                                note<boot essential on OMAP4>
+CONFIG_MFD_TPS65217                             mark<ENFORCED> note<boot essential on AM335x>
+
+# Menu: Device Drivers >> Multifunction device drivers >> Cirrus Logic Madera codecs
+CONFIG_MFD_MADERA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MADERA_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MFD_MADERA_SPI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MFD_CS47L15                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MFD_CS47L35                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MFD_CS47L85                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MFD_CS47L90                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MFD_CS47L92                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Multifunction device drivers >> Multimedia Capabilities Port drivers
+
+# Menu: Device Drivers >> Multifunction device drivers >> STMicroelectronics STMPE Interface Drivers
+CONFIG_STMPE_I2C                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_STMPE_SPI                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Multimedia support
+CONFIG_MEDIA_SUPPORT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEDIA_ANALOG_TV_SUPPORT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MEDIA_RADIO_SUPPORT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MEDIA_CEC_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CEC_PIN_ERROR_INJ                        policy<{'amd64-lowlatency': 'n', 'arm64': 'n', 'i386-lowlatency': 'n'}>
+CONFIG_MEDIA_CONTROLLER                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MEDIA_CONTROLLER_DVB                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MEDIA_CONTROLLER_REQUEST_API             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_VIDEO_V4L2_SUBDEV_API                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_ADV_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_VIDEO_FIXED_MINOR_RANGES                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_VIDEO_PCI_SKELETON                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_V4L2_FLASH_LED_CLASS                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MMAP                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_NET                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DVB_MAX_ADAPTERS                         policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+CONFIG_DVB_DYNAMIC_MINORS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DVB_DEMUX_SECTION_LOSS_LOG               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_ULE_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SMS_SDIO_DRV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_FIREDTV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CYPRESS_FIRMWARE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SMS_SIANO_RC                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SMS_SIANO_DEBUGFS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+#
+CONFIG_DVB_ULE_DEBUG                            flag<DEBUG>
+
+# Menu: Device Drivers >> Multimedia support >> CEC platform devices
+CONFIG_CEC_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_CROS_EC_CEC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_MESON_AO_CEC                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MESON_G12A_AO_CEC                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CEC_GPIO                                 policy<{'amd64-lowlatency': 'm', 'i386-lowlatency': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_CEC                    policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TEGRA_HDMI_CEC                     policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_SECO_CEC                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_SECO_RC                            policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support
+CONFIG_MEDIA_CAMERA_SUPPORT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> Media test drivers
+CONFIG_V4L_TEST_DRIVERS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_VIMC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_VIVID                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_VIVID_CEC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_VIVID_MAX_DEVS                     policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64', }>
+CONFIG_VIDEO_VIM2M                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_VICODEC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_VIDEO_VIMC                               note<LP#1831482>
+
+# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> Memory-to-memory multimedia devices
+CONFIG_V4L_MEM2MEM_DRIVERS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_CODA                               policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_VIDEO_IMX_PXP                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_VIDEO_MEDIATEK_VPU                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAMSUNG_S5P_G2D                    policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_JPEG                   policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_MFC                    policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC                 policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SH_VEU                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_RENESAS_FDP1                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_JPU                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_FCP                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_VSP1                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_ROCKCHIP_RGA                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_TI_VPE                             policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TI_VPE_DEBUG                       policy<{'armhf': 'n'}>
+CONFIG_VIDEO_QCOM_VENUS                         policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> V4L platform devices
+CONFIG_V4L_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_CAFE_CCIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_VIDEO_VIA_CAMERA                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_CADENCE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_CADENCE_CSI2RX                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CADENCE_CSI2TX                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OMAP2_VOUT                         policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_ASPEED                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MUX                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OMAP3                              policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_OMAP3_DEBUG                        policy<{'armhf-generic': 'n'}>
+CONFIG_VIDEO_QCOM_CAMSS                         policy<{'arm64': 'm'}>
+CONFIG_VIDEO_RENESAS_CEU                        policy<{'armhf': 'm'}>
+CONFIG_VIDEO_XILINX                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_XILINX_TPG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_XILINX_VTC                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_RCAR_CSI2                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RCAR_VIN                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_SUN4I_CSI                          policy<{'arm64': 'm'}>
+CONFIG_VIDEO_SUN6I_CSI                          policy<{'arm64': 'm'}>
+CONFIG_VIDEO_TI_CAL                             policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> V4L platform devices >> Samsung S5P/EXYNOS4 SoC series Camera Subsystem driver
+CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS                 policy<{'armhf': 'n'}>
+
+# Menu: Device Drivers >> Multimedia support >> Customise DVB Frontends
+CONFIG_DVB_STB0899                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STB6100                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV090x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV0910                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV6110x                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV6111                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MXL5XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_M88DS3103                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DRXK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA18271C2DD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_SI2165                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MN88472                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MN88473                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX24110                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX24123                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MT312                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ZL10036                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ZL10039                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_S5H1420                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV0288                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STB6000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV0299                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV6110                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV0900                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA8083                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA10086                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA8261                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_VES1X93                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TUNER_ITD1000                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TUNER_CX24113                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA826X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TUA6100                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX24116                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX24117                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX24120                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_SI21XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TS2020                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DS3000                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MB86A16                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA10071                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_SP8870                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_SP887X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX22700                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CX22702                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_S5H1432                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DRXD                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_L64781                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA1004X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_NXT6000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MT352                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ZL10353                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DIB3000MB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DIB3000MC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DIB7000M                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DIB7000P                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DIB9000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA10048                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_AF9013                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_EC100                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV0367                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CXD2820R                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CXD2841ER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_RTL2830                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_RTL2832                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_RTL2832_SDR                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_SI2168                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ZD1301_DEMOD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CXD2880                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_VES1820                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA10021                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA10023                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_STV0297                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_NXT200X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_OR51211                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_OR51132                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_BCM3510                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LGDT330X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LGDT3305                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LGDT3306A                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LG2160                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_S5H1409                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_AU8522_DTV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_AU8522_V4L                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_S5H1411                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_S921                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DIB8000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MB86A20S                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TC90522                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MN88443X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_PLL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TUNER_DIB0070                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TUNER_DIB0090                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DRX39XYJ                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LNBH25                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LNBH29                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LNBP21                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LNBP22                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ISL6405                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ISL6421                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ISL6423                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_A8293                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LGS8GL5                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_LGS8GXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ATBM8830                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TDA665x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_IX2505V                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_M88RS2000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_AF9033                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_HORUS3A                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_ASCOT2E                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_HELENE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_CXD2099                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_SP2                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DUMMY_FE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_DVB_DUMMY_FE                             note<expert use only>
+
+# Menu: Device Drivers >> Multimedia support >> DVB platform devices
+CONFIG_DVB_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DVB_C8SECTPFE                            policy<{'armhf': 'n'}>
+#
+CONFIG_DVB_C8SECTPFE                            flag<REVIEW>
+
+# Menu: Device Drivers >> Multimedia support >> I2C Encoders, decoders, sensors and other helper chips
+CONFIG_VIDEO_TVAUDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TDA7432                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TDA9840                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TDA1997X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TEA6415C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TEA6420                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MSP3400                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CS3308                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CS5345                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CS53L32A                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TLV320AIC23B                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_UDA1342                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_WM8775                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_WM8739                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_VP27SMPX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SONY_BTF_MPX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA6588                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7180                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7183                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV748X                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7604                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7604_CEC                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_ADV7842                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7842_CEC                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_BT819                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_BT856                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_BT866                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_KS0127                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ML86V7667                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7110                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA711X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TC358743                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TC358743_CEC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_TVP514X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TVP5150                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TVP7002                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW2804                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW9903                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW9906                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW9910                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_VPX3220                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA717X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX25840                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7127                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7185                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7170                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7175                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7343                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7393                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADV7511                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_ADV7511_CEC                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VIDEO_AD9389B                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_AK881X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_THS8200                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IMX214                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IMX258                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IMX274                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IMX319                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IMX355                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV2640                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV2659                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV2680                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV2685                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV5640                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV5645                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV5647                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV6650                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV5670                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV5675                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV5695                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV7251                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV772X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV7640                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV7670                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV7740                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV8856                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV9640                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV9650                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_OV13858                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_VS6624                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9M001                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9M032                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9M111                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9P031                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9T001                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9T112                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9V011                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9V032                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MT9V111                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SR030PC30                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_NOON010PC30                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_M5MOLS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_RJ54N1                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_S5K6AA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_S5K6A3                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_S5K4ECGX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_S5K5BAF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SMIAPP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_VIDEO_ET8EK8                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_S5C73M3                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_AD5820                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_AK7375                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_DW9714                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_DW9807_VCM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ADP1653                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_LM3560                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_LM3646                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_UPD64031A                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_UPD64083                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA6752HS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SDR_MAX2175                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_THS7303                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_M52790                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_I2C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_ST_MIPID02                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media PCI Adapters
+CONFIG_MEDIA_PCI_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_MEYE                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_SOLO6X10                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW5864                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW68                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TW686X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_HEXIUM_GEMINI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_HEXIUM_ORION                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_MXB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_DT3155                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX18                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX18_ALSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX23885                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_ALTERA_CI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX25821                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX25821_ALSA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_BT848                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_BT8XX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7164                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_COBALT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DVB_AV7110                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_AV7110_OSD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DVB_B2C2_FLEXCOP_PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_PLUTO2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DM1105                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_PT1                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_PT3                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MANTIS_CORE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_MANTIS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_HOPPER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_NGENE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DDBRIDGE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_DDBRIDGE_MSIENABLE                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_SMIPCIE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_NETUP_UNIDVB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IPU3_CIO2                          policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Multimedia support >> Media PCI Adapters >> Conexant 2388x (bt878 successor) support
+CONFIG_VIDEO_CX88                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX88_ALSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX88_BLACKBIRD                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX88_DVB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX88_ENABLE_VP3054                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media PCI Adapters >> Conexant cx23416/cx23415 MPEG encoder/decoder support
+CONFIG_VIDEO_IVTV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_VIDEO_IVTV_ALSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_FB_IVTV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_FB_IVTV_FORCE_PAT                  policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> Multimedia support >> Media PCI Adapters >> Philips SAA7134 support
+CONFIG_VIDEO_SAA7134                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7134_ALSA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7134_RC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_SAA7134_DVB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_SAA7134_GO7007                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media PCI Adapters >> SAA7146 DVB cards (aka Budget, Nova-PCI)
+CONFIG_DVB_BUDGET_CORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_BUDGET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_BUDGET_CI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_BUDGET_AV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_BUDGET_PATCH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media SPI Adapters
+CONFIG_CXD2880_SPI_DRV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media USB Adapters
+CONFIG_MEDIA_USB_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_VIDEO_CLASS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_PWC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_PWC_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_PWC_INPUT_EVDEV                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_CPIA2                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ZR364XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STKWEBCAM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_S2255                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_USBTV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_PVRUSB2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_PVRUSB2_SYSFS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_PVRUSB2_DVB                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_PVRUSB2_DEBUGIFC                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_VIDEO_HDPVR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_USBVISION                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_STK1160_COMMON                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_GO7007                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_GO7007_USB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_GO7007_LOADER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_AU0828                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_AU0828_V4L2                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_AU0828_RC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_TM6000                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TM6000_ALSA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_TM6000_DVB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TTUSB_BUDGET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_TTUSB_DEC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SMS_USB_DRV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_B2C2_FLEXCOP_USB                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_AS102                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_AIRSPY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HACKRF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MSI2500                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_PULSE8_CEC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_RAINSHADOW_CEC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media USB Adapters >> Conexant cx231xx USB video capture support
+CONFIG_VIDEO_CX231XX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX231XX_RC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_CX231XX_ALSA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_CX231XX_DVB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media USB Adapters >> Empia EM28xx USB devices support
+CONFIG_VIDEO_EM28XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_EM28XX_V4L2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_EM28XX_ALSA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_EM28XX_DVB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIDEO_EM28XX_RC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media USB Adapters >> GSPCA based webcams
+CONFIG_USB_GSPCA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_M5602                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STV06XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GL860                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_BENQ                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_CONEX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_CPIA1                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_DTCS033                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_ETOMS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_FINEPIX                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_JEILINJ                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_JL2005BCD                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_KINECT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_KONICA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_MARS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_MR97310A                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_NW80X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_OV519                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_OV534                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_OV534_9                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_PAC207                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_PAC7302                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_PAC7311                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SE401                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SN9C2028                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SN9C20X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SONIXB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SONIXJ                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA500                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA501                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA505                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA506                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA508                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA561                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SPCA1528                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SQ905                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SQ905C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SQ930X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_STK014                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_STK1135                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_STV0680                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_SUNPLUS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_T613                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_TOPRO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_TOUPTEK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_TV8532                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_VC032X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_VICAM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_XIRLINK_CIT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GSPCA_ZC3XX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media USB Adapters >> Support for various USB DVB devices
+CONFIG_DVB_USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_USB_A800                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DIBUSB_MB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_DVB_USB_DIBUSB_MC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DIB0700                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_UMT_010                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_CXUSB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_CXUSB_ANALOG                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DVB_USB_M920X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DIGITV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_VP7045                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_VP702X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_GP8PSK                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_NOVA_T_USB2                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_TTUSB2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DTT200U                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_OPERA1                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AF9005                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AF9005_REMOTE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_PCTV452E                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DW2102                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_CINERGY_T2                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DTV5100                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AZ6027                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_TECHNISAT_USB2                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Media USB Adapters >> Support for various USB DVB devices v2
+CONFIG_DVB_USB_V2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AF9015                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AF9035                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_ANYSEE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AU6610                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_AZ6007                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_CE6230                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_EC168                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_GL861                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_LME2510                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_MXL111SF                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_RTL28XXU                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_DVBSKY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DVB_USB_ZD1301                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Radio Adapters
+CONFIG_RADIO_ADAPTERS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RADIO_SI470X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SI470X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_SI470X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_SI476X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MR800                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_DSBR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_MAXIRADIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_SHARK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_SHARK2                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_KEENE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_RAREMONO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MA901                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_TEA5764                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_SAA7706H                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_TEF6862                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RADIO_TIMBERDALE                         policy<{'i386': 'm'}>
+CONFIG_RADIO_WL1273                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Radio Adapters >> ISA radio devices
+CONFIG_V4L_RADIO_ISA_DRIVERS                    policy<{'i386': 'y'}>
+CONFIG_RADIO_CADET                              policy<{'i386': 'm'}>
+CONFIG_RADIO_RTRACK                             policy<{'i386': 'm'}>
+CONFIG_RADIO_RTRACK2                            policy<{'i386': 'm'}>
+CONFIG_RADIO_AZTECH                             policy<{'i386': 'm'}>
+CONFIG_RADIO_GEMTEK                             policy<{'i386': 'm'}>
+CONFIG_RADIO_MIROPCM20                          policy<{'i386': 'm'}>
+CONFIG_RADIO_SF16FMI                            policy<{'i386': 'm'}>
+CONFIG_RADIO_SF16FMR2                           policy<{'i386': 'm'}>
+CONFIG_RADIO_TERRATEC                           policy<{'i386': 'm'}>
+CONFIG_RADIO_TRUST                              policy<{'i386': 'm'}>
+CONFIG_RADIO_TYPHOON                            policy<{'i386': 'm'}>
+CONFIG_RADIO_ZOLTRIX                            policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> Multimedia support >> Radio Adapters >> Silicon Labs Si4713 FM Radio with RDS Transmitter support
+CONFIG_RADIO_SI4713                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SI4713                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PLATFORM_SI4713                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I2C_SI4713                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Radio Adapters >> Texas Instruments WL128x FM driver (ST based)
+CONFIG_RADIO_WL128X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> SPI helper chips
+CONFIG_VIDEO_GS1662                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Software defined radio support
+CONFIG_MEDIA_SDR_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MEDIA_SUBDRV_AUTOSELECT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_IR_I2C                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Software defined radio support >> Customize TV tuners
+CONFIG_MEDIA_TUNER_SIMPLE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA18250                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA8290                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA827X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA18271                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA9887                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TEA5761                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TEA5767                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MSI001                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MT20XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MT2060                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MT2063                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MT2266                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MT2131                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_QT1010                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_XC2028                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_XC5000                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_XC4000                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MXL5005S                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MXL5007T                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MC44S803                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MAX2165                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA18218                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_FC0011                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_FC0012                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_FC0013                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TDA18212                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_E4000                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_FC2580                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_M88RS6000T                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_TUA9001                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_SI2157                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_IT913X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_R820T                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_MXL301RF                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_QM1D1C0042                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEDIA_TUNER_QM1D1B0004                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Multimedia support >> Software defined radio support >> SDR platform devices
+CONFIG_SDR_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_RCAR_DRIF                          policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM)
+CONFIG_MD                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BCACHE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCACHE_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BCACHE_CLOSURES_DEBUG                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) >> Device mapper support
+CONFIG_BLK_DEV_DM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_DEBUG                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_DM_UNSTRIPED                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CRYPT                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_SNAPSHOT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_THIN_PROVISIONING                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CACHE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CACHE_SMQ                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_WRITECACHE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_ERA                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CLONE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MIRROR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_LOG_USERSPACE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_RAID                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_ZERO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MULTIPATH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MULTIPATH_QL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MULTIPATH_ST                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_DELAY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_DUST                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DM_INIT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_UEVENT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_FLAKEY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_VERITY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_VERITY_FEC                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DM_SWITCH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_LOG_WRITES                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_INTEGRITY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_ZONED                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_BLK_DEV_DM                               mark<ENFORCED> note<LP:#560717>
+
+# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) >> RAID support
+CONFIG_BLK_DEV_MD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MD_AUTODETECT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MD_LINEAR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID0                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID1                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID10                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID456                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_MULTIPATH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_MD_FAULTY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_CLUSTER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Multiplexer drivers
+CONFIG_MUX_ADG792A                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MUX_ADGS1408                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MUX_GPIO                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MUX_MMIO                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> NVDIMM (Non-Volatile Memory Device) Support
+CONFIG_LIBNVDIMM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_BLK_DEV_PMEM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ND_BLK                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BTT                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NVDIMM_PFN                               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_NVDIMM_DAX                               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_PMEM                                  policy<{'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> NVME Support
+CONFIG_BLK_DEV_NVME                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_MULTIPATH                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NVME_RDMA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_FC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TCP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_BLK_DEV_NVME                             mark<ENFORCED> note<LP:#1759893>
+
+# Menu: Device Drivers >> NVME Support >> NVMe Target support
+CONFIG_NVME_TARGET                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_LOOP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_RDMA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_FC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_FCLOOP                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NVME_TARGET_TCP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> NVMEM Support
+CONFIG_NVMEM                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NVMEM_SYSFS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NVMEM_IMX_IIM                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_NVMEM_IMX_OCOTP                          policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_NVMEM_IMX_OCOTP_SCU                      policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MTK_EFUSE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QCOM_QFPROM                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_EFUSE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NVMEM_BCM_OCOTP                          policy<{'arm64': 'm'}>
+CONFIG_NVMEM_SUNXI_SID                          policy<{'arm64': 'm'}>
+CONFIG_UNIPHIER_EFUSE                           policy<{'armhf': 'm'}>
+CONFIG_NVMEM_VF610_OCOTP                        policy<{'armhf-generic': 'n'}>
+CONFIG_MESON_EFUSE                              policy<{'arm64': 'm'}>
+CONFIG_MESON_MX_EFUSE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NVMEM_SNVS_LPGPR                         policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RAVE_SP_EEPROM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SC27XX_EFUSE                             policy<{'arm64': 'm'}>
+CONFIG_NVMEM_ZYNQMP                             policy<{'arm64': 'y'}>
+#
+CONFIG_NVMEM                                    flag<REVIEW> note<Q: is this appropriate for s390x LP:1543165>
+
+# Menu: Device Drivers >> Network device support
+CONFIG_NETDEVICES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CAIF_TTY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAIF_SPI_SLAVE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAIF_SPI_SYNC                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CAIF_HSI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAIF_VIRTIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HIPPI                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NET_SB1000                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_MICREL_KS8995MA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PLIP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_XEN_NETDEV_FRONTEND                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_NETDEV_BACKEND                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_VMXNET3                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 's390x': 'n'}>
+CONFIG_FUJITSU_ES                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_THUNDERBOLT_NET                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_NET                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NETDEVSIM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FAILOVER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_HIPPI                                    note<DEPRECATED>
+CONFIG_XEN_NETDEV_FRONTEND                      note<not autoloadable -- XEN paravirt support>
+
+# Menu: Device Drivers >> Network device support >> ARCnet support
+CONFIG_ARCNET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ARCNET_1201                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_1051                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_RAW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_CAP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_COM90xx                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_COM90xxIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_RIM_I                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> ARCnet support >> ARCnet COM20020 chipset driver
+CONFIG_ARCNET_COM20020                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_COM20020_ISA                      policy<{'i386': 'm'}>
+CONFIG_ARCNET_COM20020_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCNET_COM20020_CS                       policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> ATM drivers
+CONFIG_ATM_DRIVERS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATM_DUMMY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_TCP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_LANAI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_ENI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_ENI_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_FIRESTREAM                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_ZATM                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_ZATM_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ATM_NICSTAR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_NICSTAR_USE_SUNI                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_NICSTAR_USE_IDT77105                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_IDT77252                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_IDT77252_DEBUG                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_IDT77252_RCV_ALL                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_AMBASSADOR                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_AMBASSADOR_DEBUG                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ATM_HORIZON                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_HORIZON_DEBUG                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ATM_IA                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_IA_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_HE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_HE_USE_SUNI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATM_SOLOS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_ATM_NICSTAR_USE_IDT77105                 flag<REVIEW>
+
+# Menu: Device Drivers >> Network device support >> ATM drivers >> FORE Systems 200E-series
+CONFIG_ATM_FORE200E                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_FORE200E_USE_TASKLET                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_FORE200E_TX_RETRY                    policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16', }>
+CONFIG_ATM_FORE200E_DEBUG                       policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+
+# Menu: Device Drivers >> Network device support >> ATM drivers >> Fine-tune burst settings
+CONFIG_ATM_ENI_TUNE_BURST                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Distributed Switch Architecture drivers
+CONFIG_NET_DSA_BCM_SF2                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_LOOP                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_NET_DSA_LANTIQ_GSWIP                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MT7530                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MV88E6060                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MV88E6XXX                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NET_DSA_MV88E6XXX_PTP                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NET_DSA_SJA1105                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_SJA1105_PTP                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NET_DSA_SJA1105_TAS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NET_DSA_QCA8K                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_REALTEK_SMI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_SMSC_LAN9303_I2C                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_VITESSE_VSC73XX_SPI              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_NET_DSA_LOOP                             flag<TESTING>
+
+# Menu: Device Drivers >> Network device support >> Distributed Switch Architecture drivers >> Broadcom BCM53xx managed switch support
+CONFIG_B53                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B53_SPI_DRIVER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B53_MDIO_DRIVER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B53_MMAP_DRIVER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B53_SRAB_DRIVER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B53_SERDES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Distributed Switch Architecture drivers >> Microchip KSZ8795 series switch support
+CONFIG_NET_DSA_MICROCHIP_KSZ8795                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Distributed Switch Architecture drivers >> Microchip KSZ9477 series switch support
+CONFIG_NET_DSA_MICROCHIP_KSZ9477                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support
+CONFIG_ETHERNET                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_ADAPTEC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ADAPTEC_STARFIRE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_AGERE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ET131X                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_ALACRITECH                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLICOSS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_VENDOR_ALLWINNER                     policy<{'arm64': 'y'}>
+CONFIG_SUN4I_EMAC                               policy<{'arm64': 'n'}>
+CONFIG_NET_VENDOR_ALTEON                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ACENIC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ACENIC_OMIT_TIGON_I                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ALTERA_TSE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NET_VENDOR_AMAZON                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ENA_ETHERNET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_XGENE                                policy<{'arm64': 'm'}>
+CONFIG_NET_XGENE_V2                             policy<{'arm64': 'm'}>
+CONFIG_NET_VENDOR_AQUANTIA                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AQTION                                   policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_NET_VENDOR_ARC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EMAC_ROCKCHIP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NET_VENDOR_AURORA                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AURORA_NB8800                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_VENDOR_BROCADE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_BNA                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_CADENCE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MACB                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_MACB_USE_HWSTAMP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_MACB_PCI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_NET_CALXEDA_XGMAC                        policy<{'armhf': 'm'}>
+CONFIG_NET_VENDOR_CISCO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ENIC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_CORTINA                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GEMINI_ETHERNET                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CX_ECAT                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DM9000                                   policy<{'armhf': 'm'}>
+CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL             policy<{'armhf': 'n'}>
+CONFIG_DNET                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NET_VENDOR_DEC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_DLINK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DL2K                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SUNDANCE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SUNDANCE_MMIO                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_NET_VENDOR_EMULEX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_EZCHIP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EZCHIP_NPS_MANAGEMENT_ENET               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_FARADAY                       policy<{'armhf': 'y'}>
+CONFIG_FTMAC100                                 policy<{'armhf': 'm'}>
+CONFIG_FTGMAC100                                policy<{'armhf': 'm'}>
+CONFIG_NET_VENDOR_FUJITSU                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCMCIA_FMVJ18X                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NET_VENDOR_GOOGLE                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_GVE                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_HP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HP100                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_HUAWEI                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HINIC                                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_JME                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NET_VENDOR_MEDIATEK                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_MICROSEMI                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MSCC_OCELOT_SWITCH                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MSCC_OCELOT_SWITCH_OCELOT                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_MYRI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MYRI10GE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MYRI10GE_DCA                             policy<{'amd64': 'y'}>
+CONFIG_FEALNX                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NET_VENDOR_NETERION                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_S2IO                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_VXGE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_VXGE_DEBUG_TRACE_ALL                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_NET_VENDOR_NETRONOME                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_NI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NI_XGE_MANAGEMENT_ENET                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_NVIDIA                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FORCEDETH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_OKI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCH_GBE                                  policy<{'i386': 'm'}>
+CONFIG_ETHOC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NET_VENDOR_PACKET_ENGINES                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAMACHI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_YELLOWFIN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NET_VENDOR_PENSANDO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IONIC                                    policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_RDC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_R6040                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_RENESAS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SH_ETH                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RAVB                                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NET_VENDOR_ROCKER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ROCKER                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_SAMSUNG                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SXGBE_ETH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_SEEQ                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SOLARFLARE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SFC_FALCON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SFC_FALCON_MTD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NET_VENDOR_SILAN                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SC92031                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_SIS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SIS900                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SIS190                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_SOCIONEXT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SNI_AVE                                  policy<{'armhf': 'm'}>
+CONFIG_SNI_NETSEC                               policy<{'arm64': 'm'}>
+CONFIG_NET_VENDOR_STMICRO                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SYNOPSYS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DWC_XLGMAC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DWC_XLGMAC_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_VENDOR_TEHUTI                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TEHUTI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_VIA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VIA_RHINE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIA_RHINE_MMIO                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIA_VELOCITY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_WIZNET                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_WIZNET_W5100                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WIZNET_W5300                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WIZNET_W5100_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_VENDOR_XIRCOM                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCMCIA_XIRC2PS                           policy<{'amd64': 'm', 'i386': 'm'}>
+#
+CONFIG_NET_VENDOR_EMULEX                        note<LP:1543165>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> 3Com devices
+CONFIG_NET_VENDOR_3COM                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EL3                                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_3C515                                    policy<{'i386': 'm'}>
+CONFIG_PCMCIA_3C574                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_3C589                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VORTEX                                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TYPHOON                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> AMD devices
+CONFIG_NET_VENDOR_AMD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AMD8111_ETH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LANCE                                    policy<{'i386': 'm'}>
+CONFIG_PCNET32                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCMCIA_NMCLAN                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NI65                                     policy<{'i386': 'm'}>
+CONFIG_AMD_XGBE                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_AMD_XGBE_DCB                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Apple devices
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Atheros devices
+CONFIG_NET_VENDOR_ATHEROS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ATL2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATL1                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATL1E                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATL1C                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ALX                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Broadcom devices
+CONFIG_NET_VENDOR_BROADCOM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_B44                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BCMGENET                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BNX2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CNIC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TIGON3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TIGON3_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BNX2X                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BNX2X_SRIOV                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BGMAC_PLATFORM                           policy<{'arm64': 'y'}>
+CONFIG_SYSTEMPORT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_TIGON3                                   flag<REVIEW>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Broadcom devices >> Broadcom NetXtreme-C/E support
+CONFIG_BNXT                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BNXT_SRIOV                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BNXT_FLOWER_OFFLOAD                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BNXT_DCB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BNXT_HWMON                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Cavium ethernet drivers
+CONFIG_NET_VENDOR_CAVIUM                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_THUNDER_NIC_PF                           policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_THUNDER_NIC_VF                           policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_THUNDER_NIC_BGX                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_THUNDER_NIC_RGX                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_CAVIUM_PTP                               policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_LIQUIDIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_LIQUIDIO_VF                              policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Chelsio devices
+CONFIG_NET_VENDOR_CHELSIO                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_CHELSIO_T1                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHELSIO_T1_1G                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CHELSIO_T3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHELSIO_T4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHELSIO_T4_DCB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CHELSIO_T4_FCOE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CHELSIO_T4VF                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Cirrus devices
+CONFIG_NET_VENDOR_CIRRUS                        policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_CS89x0                                   policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CS89x0_PLATFORM                          policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> DEC - Tulip devices
+CONFIG_NET_TULIP                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DE2104X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DE2104X_DSL                              policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_DE4X5                                    policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WINBOND_840                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DM9102                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ULI526X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCMCIA_XIRCOM                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> DEC - Tulip devices >> DECchip Tulip (dc2114x) PCI support
+CONFIG_TULIP                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TULIP_MWI                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_TULIP_MMIO                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_TULIP_NAPI                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_TULIP_NAPI                               flag<REVIEW>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Freescale devices
+CONFIG_NET_VENDOR_FREESCALE                     policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_FEC                                      policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_FSL_FMAN                                 policy<{'arm64': 'y'}>
+CONFIG_FSL_PQ_MDIO                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_FSL_XGMAC_MDIO                           policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_GIANFAR                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_FSL_DPAA_ETH                             policy<{'arm64': 'm'}>
+CONFIG_FSL_DPAA2_ETH                            policy<{'arm64': 'm'}>
+CONFIG_FSL_DPAA2_PTP_CLOCK                      policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC                                policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_VF                             policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_MDIO                           policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_PTP_CLOCK                      policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_HW_TIMESTAMPING                policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Freescale devices >> Freescale Ethernet Driver
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Hisilicon devices
+CONFIG_NET_VENDOR_HISILICON                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HIX5HD2_GMAC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HISI_FEMAC                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HIP04_ETH                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HI13X1_GMAC                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HNS                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS_DSAF                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS_ENET                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3                                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3_HCLGE                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3_DCB                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HNS3_HCLGEVF                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3_ENET                                policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> IBM devices
+CONFIG_NET_VENDOR_IBM                           policy<{'ppc64el': 'y'}>
+CONFIG_IBMVETH                                  policy<{'ppc64el': 'm'}>
+CONFIG_IBMVNIC                                  policy<{'ppc64el': 'm'}>
+#
+CONFIG_IBMVNIC                                  mark<ENFORCED> note<LP:#1628187>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> IBM devices >> IBM EMAC Ethernet support
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Intel (82586/82593/82596) devices
+CONFIG_NET_VENDOR_I825XX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Intel devices
+CONFIG_NET_VENDOR_INTEL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_E100                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_E1000                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_E1000E                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_E1000E_HWTS                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IGB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IGB_HWMON                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IGB_DCA                                  policy<{'amd64': 'y'}>
+CONFIG_IGBVF                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IXGB                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IXGBEVF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IXGBEVF_IPSEC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_I40E                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_I40E_DCB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_I40EVF                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ICE                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FM10K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IGC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Intel devices >> Intel(R) 10GbE PCI Express adapters support
+CONFIG_IXGBE                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IXGBE_HWMON                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IXGBE_DCA                                policy<{'amd64': 'y'}>
+CONFIG_IXGBE_DCB                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IXGBE_IPSEC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Marvell devices
+CONFIG_NET_VENDOR_MARVELL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MV643XX_ETH                              policy<{'armhf': 'm'}>
+CONFIG_MVMDIO                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MVNETA_BM_ENABLE                         policy<{'armhf': 'n'}>
+CONFIG_MVNETA                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MVPP2                                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PXA168_ETH                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SKGE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SKGE_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SKGE_GENESIS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SKY2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SKY2_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_OCTEONTX2_AF                             policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Mellanox devices
+CONFIG_NET_VENDOR_MELLANOX                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX4_EN                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX4_EN_DCB                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX4_DEBUG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX4_CORE_GEN2                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX5_FPGA                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_FPGA_IPSEC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_IPSEC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_FPGA_TLS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLXFW                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Mellanox devices >> Mellanox 5th generation network adapters (ConnectX series) Ethernet support
+CONFIG_MLX5_CORE_EN                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_ARFS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_RXNFC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_MPFS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_ESWITCH                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_CORE_EN_DCB                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_CORE_IPOIB                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_TLS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_TLS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_SW_STEERING                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Mellanox devices >> Mellanox Technologies Switch ASICs support
+CONFIG_MLXSW_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_CORE_HWMON                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MLXSW_CORE_THERMAL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MLXSW_I2C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MLXSW_MINIMAL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Mellanox devices >> Mellanox Technologies Switch ASICs support >> PCI bus implementation for Mellanox Technologies Switch ASICs
+CONFIG_MLXSW_PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SWITCHIB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SWITCHX2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SPECTRUM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SPECTRUM_DCB                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Micrel devices
+CONFIG_NET_VENDOR_MICREL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KS8842                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KS8851                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KS8851_MLL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KSZ884X_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Microchip devices
+CONFIG_NET_VENDOR_MICROCHIP                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ENC28J60                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ENC28J60_WRITEVERIFY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ENCX24J600                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LAN743X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> National Semiconductor 8390 devices
+CONFIG_NET_VENDOR_8390                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PCMCIA_AXNET                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AX88796                                  policy<{'armhf': 'm'}>
+CONFIG_AX88796_93CX6                            policy<{'armhf': 'n'}>
+CONFIG_NE2000                                   policy<{'i386': 'm'}>
+CONFIG_NE2K_PCI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCMCIA_PCNET                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ULTRA                                    policy<{'i386': 'm'}>
+CONFIG_WD80x3                                   policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> National Semiconductor devices
+CONFIG_NET_VENDOR_NATSEMI                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NATSEMI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NS83820                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Netronome(R) NFP4000/NFP6000 NIC driver
+CONFIG_NFP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NFP_APP_FLOWER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NFP_APP_ABM_NIC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NFP_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> QLogic devices
+CONFIG_NET_VENDOR_QLOGIC                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_QLA3XXX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NETXEN_NIC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QED                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QED_SRIOV                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_QEDE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> QLogic devices >> QLOGIC QLCNIC 1/10Gb Converged Ethernet NIC Support
+CONFIG_QLCNIC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QLCNIC_SRIOV                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_QLCNIC_DCB                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_QLCNIC_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Qualcomm devices
+CONFIG_NET_VENDOR_QUALCOMM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_QCA7000_SPI                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_QCA7000_UART                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_QCOM_EMAC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RMNET                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Realtek devices
+CONFIG_NET_VENDOR_REALTEK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ATP                                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_8139CP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_R8169                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Realtek devices >> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support
+CONFIG_8139TOO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_8139TOO_PIO                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_8139TOO_TUNE_TWISTER                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_8139TOO_8129                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_8139_OLD_RX_RESET                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_8139TOO_TUNE_TWISTER                     flag<REVIEW>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> SMC (SMSC)/Western Digital devices
+CONFIG_NET_VENDOR_SMSC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SMC9194                                  policy<{'i386': 'm'}>
+CONFIG_SMC91X                                   policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_PCMCIA_SMC91C92                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EPIC100                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SMC911X                                  policy<{'armhf': 'm'}>
+CONFIG_SMSC911X                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SMSC9420                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> STMicroelectronics Multi-Gigabit Ethernet driver
+CONFIG_STMMAC_ETH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_STMMAC_SELFTESTS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_STMMAC_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> STMicroelectronics Multi-Gigabit Ethernet driver >> STMMAC Platform bus support
+CONFIG_STMMAC_PLATFORM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DWMAC_DWC_QOS_ETH                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_DWMAC_GENERIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DWMAC_IPQ806X                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_MEDIATEK                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_MESON                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_QCOM_ETHQOS                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_ROCKCHIP                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_SOCFPGA                            policy<{'arm64': 'm'}>
+CONFIG_DWMAC_SUNXI                              policy<{'arm64': 'n'}>
+CONFIG_DWMAC_SUN8I                              policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> ServerEngines' 10Gbps NIC - BladeEngine
+CONFIG_BE2NET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BE2NET_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BE2NET_BE2                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BE2NET_BE3                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BE2NET_LANCER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BE2NET_SKYHAWK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Solarflare SFC9000/SFC9100-family support
+CONFIG_SFC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SFC_MTD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SFC_MCDI_MON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SFC_SRIOV                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SFC_MCDI_LOGGING                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Sun devices
+CONFIG_NET_VENDOR_SUN                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HAPPYMEAL                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SUNGEM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CASSINI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NIU                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Texas Instruments (TI) devices
+CONFIG_NET_VENDOR_TI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TI_DAVINCI_EMAC                          policy<{'armhf-generic': 'm'}>
+CONFIG_TI_DAVINCI_MDIO                          policy<{'armhf': 'y'}>
+CONFIG_TI_CPSW_PHY_SEL                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_TI_CPSW                                  policy<{'armhf': 'y'}>
+CONFIG_TI_CPTS                                  policy<{'armhf': 'y'}>
+CONFIG_TLAN                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Toshiba devices
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> WIZnet interface mode
+CONFIG_WIZNET_BUS_DIRECT                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_WIZNET_BUS_INDIRECT                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_WIZNET_BUS_ANY                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Xilinx devices
+CONFIG_NET_VENDOR_XILINX                        policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_XILINX_AXI_EMAC                          policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_XILINX_LL_TEMAC                          policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> FDDI driver support
+CONFIG_FDDI                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DEFXX                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DEFXX_MMIO                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SKFP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_DEFXX_MMIO                               flag<REVIEW>
+
+# Menu: Device Drivers >> Network device support >> IEEE 802.15.4 drivers
+CONFIG_IEEE802154_DRIVERS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_FAKELB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_AT86RF230                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_AT86RF230_DEBUGFS             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IEEE802154_MRF24J40                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_CC2520                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_ATUSB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_ADF7242                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_CA8210                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_IEEE802154_CA8210_DEBUGFS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_IEEE802154_MCR20A                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_HWSIM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> MDIO bus device drivers
+CONFIG_MDIO_DEVICE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MDIO_ASPEED                              policy<{'armhf': 'm'}>
+CONFIG_MDIO_BCM_IPROC                           policy<{'arm64': 'n'}>
+CONFIG_MDIO_BCM_UNIMAC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_BITBANG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_BUS_MUX_BCM_IPROC                   policy<{'arm64': 'y'}>
+CONFIG_MDIO_BUS_MUX_GPIO                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MDIO_BUS_MUX_MESON_G12A                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MDIO_BUS_MUX_MMIOREG                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MDIO_GPIO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MDIO_HISI_FEMAC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MDIO_MSCC_MIIM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_OCTEON                              policy<{'arm64': 'm', 'ppc64el': 'm', }>
+CONFIG_MDIO_SUN4I                               policy<{'arm64': 'n'}>
+CONFIG_MDIO_THUNDER                             policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_XGENE                               policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Network core driver support
+CONFIG_NET_CORE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BONDING                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DUMMY                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_EQUALIZER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FC                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IFB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MACVLAN                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MACVTAP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPVLAN                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPVTAP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VXLAN                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GENEVE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GTP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MACSEC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETCONSOLE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETCONSOLE_DYNAMIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NTB_NETDEV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RIONET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RIONET_TX_SIZE                           policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', }>
+CONFIG_RIONET_RX_SIZE                           policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', }>
+CONFIG_TUN                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TUN_VNET_CROSS_LE                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_VETH                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_NET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLMON                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_VRF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VSOCKMON                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_VIRTIO_NET                               note<KVM paravirt support -- not autoloadable> flag<REVIEW>
+
+# Menu: Device Drivers >> Network device support >> Network core driver support >> Ethernet team driver support
+CONFIG_NET_TEAM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_BROADCAST                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_ROUNDROBIN                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_RANDOM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_LOADBALANCE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> PHY Device support and infrastructure
+CONFIG_PHYLIB                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_LED_TRIGGER_PHY                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SFP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIN_PHY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AMD_PHY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AQUANTIA_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AX88796B_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AT803X_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCM7XXX_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCM87XX_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BROADCOM_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CICADA_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CORTINA_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DAVICOM_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83822_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83TC811_PHY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83848_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83867_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FIXED_PHY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_ICPLUS_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_XWAY_PHY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LSI_ET1011C_PHY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LXT_PHY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MARVELL_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MARVELL_10G_PHY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MESON_GXL_PHY                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MICREL_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MICROCHIP_PHY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MICROCHIP_T1_PHY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MICROSEMI_PHY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NATIONAL_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NXP_TJA11XX_PHY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QSEMI_PHY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_REALTEK_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RENESAS_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ROCKCHIP_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SMSC_PHY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STE10XP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TERANETICS_PHY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VITESSE_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XILINX_GMII2RGMII                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> PPP (point-to-point protocol) support
+CONFIG_PPP                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PPP_BSDCOMP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPP_DEFLATE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPP_FILTER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PPP_MPPE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPP_MULTILINK                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PPPOATM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPPOE                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPTP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPPOL2TP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPP_ASYNC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPP_SYNC_TTY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> S/390 network device drivers
+CONFIG_LCS                                      policy<{'s390x': 'm'}>
+CONFIG_CTCM                                     policy<{'s390x': 'm'}>
+CONFIG_NETIUCV                                  policy<{'s390x': 'm'}>
+CONFIG_SMSGIUCV                                 policy<{'s390x': 'y'}>
+CONFIG_SMSGIUCV_EVENT                           policy<{'s390x': 'm'}>
+CONFIG_QETH                                     policy<{'s390x': 'm'}>
+CONFIG_QETH_L2                                  policy<{'s390x': 'm'}>
+CONFIG_QETH_L3                                  policy<{'s390x': 'm'}>
+CONFIG_ISM                                      policy<{'s390x': 'm'}>
+#
+CONFIG_ISM                                      mark<ENFORCED> note<LP:1789934>
+
+# Menu: Device Drivers >> Network device support >> SLIP (serial line) support
+CONFIG_SLIP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SLIP_COMPRESSED                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SLIP_SMART                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SLIP_MODE_SLIP6                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> USB Network Adapters
+CONFIG_USB_NET_DRIVERS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CATC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_KAWETH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_PEGASUS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_RTL8150                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_RTL8152                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_LAN78XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HSO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_IPHETH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> USB Network Adapters >> Multi-purpose USB Networking Framework
+CONFIG_USB_USBNET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_AX8817X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_AX88179_178A                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_CDCETHER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_CDC_EEM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_CDC_NCM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_HUAWEI_CDC_NCM                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_CDC_MBIM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_DM9601                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_SR9700                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_SR9800                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_SMSC75XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_SMSC95XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_GL620A                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_NET1080                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_PLUSB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_MCS7830                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_RNDIS_HOST                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_ZAURUS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_CX82310_ETH                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_KALMIA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_QMI_WWAN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_INT51X1                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CDC_PHONET                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SIERRA_NET                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_VL600                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_CH9200                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_AQC111                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> USB Network Adapters >> Multi-purpose USB Networking Framework >> Simple USB Network Links (CDC Ethernet subset)
+CONFIG_USB_NET_CDC_SUBSET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ALI_M5632                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_AN2720                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_BELKIN                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ARMLINUX                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_EPSON2888                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_KC2190                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wan interfaces support
+CONFIG_WAN                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HOSTESS_SV11                             policy<{'i386': 'm'}>
+CONFIG_COSA                                     policy<{'i386': 'm'}>
+CONFIG_LANMEDIA                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SEALEVEL_4021                            policy<{'i386': 'm'}>
+CONFIG_SLIC_DS26522                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_DLCI                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DLCI_MAX                                 policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+CONFIG_SDLA                                     policy<{'i386': 'm'}>
+CONFIG_LAPBETHER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_X25_ASY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SBNI                                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBNI_MULTILINE                           policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Device Drivers >> Network device support >> Wan interfaces support >> Generic HDLC layer
+CONFIG_HDLC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDLC_RAW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDLC_RAW_ETH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDLC_CISCO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDLC_FR                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDLC_PPP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HDLC_X25                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCI200SYN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WANXL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PC300TOO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_N2                                       policy<{'i386': 'm'}>
+CONFIG_C101                                     policy<{'i386': 'm'}>
+CONFIG_FARSYNC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> WiMAX Wireless Broadband devices
+CONFIG_WIMAX_I2400M_USB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL                 policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN
+CONFIG_WLAN                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_WIRELESS_WDS                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_WLAN_VENDOR_ADMTEK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ADM8211                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WLAN_VENDOR_ATMEL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATMEL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCI_ATMEL                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCMCIA_ATMEL                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AT76C50X_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WLAN_VENDOR_CISCO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_AIRO                                     policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AIRO_CS                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WLAN_VENDOR_RALINK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_WLAN_VENDOR_RSI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_WLAN_VENDOR_ST                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CW1200                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CW1200_WLAN_SDIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CW1200_WLAN_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WLAN_VENDOR_ZYDAS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ZD1201                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ZD1211RW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ZD1211RW_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_WLAN_VENDOR_QUANTENNA                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_QTNFMAC_PCIE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCMCIA_RAYCS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_WL3501                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MAC80211_HWSIM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET_RNDIS_WLAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIRT_WIFI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices
+CONFIG_WLAN_VENDOR_ATH                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATH5K_PCI                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_BTCOEX_SUPPORT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_HTC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH9K_HTC_DEBUGFS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_COMMON_SPECTRAL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_AR5523                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WCN36XX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WCN36XX_DEBUGFS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_WCN36XX_SNAPDRAGON_HACKS                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Atheros 5xxx wireless cards support
+CONFIG_ATH5K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH5K_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATH5K_TRACER                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Atheros 802.11ac wireless cards support
+CONFIG_ATH10K                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH10K_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH10K_AHB                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH10K_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH10K_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH10K_SNOC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ATH10K_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATH10K_DEBUGFS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH10K_SPECTRAL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH10K_TRACING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Atheros 802.11n wireless cards support
+CONFIG_ATH9K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH9K_PCI                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_AHB                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_DEBUGFS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_STATION_STATISTICS                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_DYNACK                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATH9K_WOW                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_RFKILL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_CHANNEL_CONTEXT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_PCOEM                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATH9K_PCI_NO_EEPROM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH9K_HWRNG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Atheros mobile chipsets support
+CONFIG_ATH6KL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH6KL_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH6KL_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATH6KL_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATH6KL_TRACING                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Linux Community AR9170 802.11n USB support
+CONFIG_CARL9170                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CARL9170_LEDS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CARL9170_DEBUGFS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CARL9170_HWRNG                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Wilocity 60g WiFi card wil6210 support
+CONFIG_WIL6210                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WIL6210_ISR_COR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_WIL6210_TRACING                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_WIL6210_DEBUGFS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices
+CONFIG_WLAN_VENDOR_BROADCOM                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43LEGACY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B43LEGACY_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BRCMSMAC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BRCM_TRACING                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BRCMDBG                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_BRCMDBG                                  flag<DEBUG>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices >> Broadcom 43xx wireless support (mac80211 stack)
+CONFIG_B43                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_B43_SDIO                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_B43_PHY_G                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43_PHY_N                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43_PHY_LP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43_PHY_HT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices >> Broadcom 43xx wireless support (mac80211 stack) >> Supported bus types
+CONFIG_B43_BUSES_BCMA_AND_SSB                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43_BUSES_BCMA                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_B43_BUSES_SSB                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices >> Broadcom 43xx-legacy data transfer mode
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_B43LEGACY_DMA_MODE                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_B43LEGACY_PIO_MODE                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices >> Broadcom FullMAC WLAN driver
+CONFIG_BRCMFMAC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BRCMFMAC_SDIO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BRCMFMAC_USB                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BRCMFMAC_PCIE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel devices
+CONFIG_WLAN_VENDOR_INTEL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IPW2100                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IPW2100_MONITOR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IPW2100_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_LIBIPW_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_IWL4965                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IWL3945                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel devices >> Intel PRO/Wireless 2200BG and 2915ABG Network Connection
+CONFIG_IPW2200                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IPW2200_MONITOR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IPW2200_RADIOTAP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IPW2200_PROMISCUOUS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IPW2200_QOS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IPW2200_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel devices >> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
+CONFIG_IWLWIFI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IWLDVM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IWLMVM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IWLWIFI_BCAST_FILTERING                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel devices >> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) >> Debugging Options
+CONFIG_IWLWIFI_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_IWLWIFI_DEBUGFS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IWLWIFI_DEVICE_TRACING                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel devices >> iwl3945 / iwl4965 Debugging Options
+CONFIG_IWLEGACY_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_IWLEGACY_DEBUGFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intersil devices
+CONFIG_WLAN_VENDOR_INTERSIL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PRISM54                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intersil devices >> Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)
+CONFIG_HERMES                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HERMES_PRISM                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_HERMES_CACHE_FW_ON_INIT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PLX_HERMES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TMD_HERMES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NORTEL_HERMES                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PCMCIA_HERMES                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_SPECTRUM                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ORINOCO_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intersil devices >> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
+CONFIG_HOSTAP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HOSTAP_FIRMWARE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HOSTAP_FIRMWARE_NVRAM                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_HOSTAP_PLX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HOSTAP_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HOSTAP_CS                                policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intersil devices >> Softmac Prism54 support
+CONFIG_P54_COMMON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_P54_USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_P54_PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_P54_SPI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_P54_SPI_DEFAULT_EEPROM                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Marvell devices
+CONFIG_WLAN_VENDOR_MARVELL                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LIBERTAS_THINFIRM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIBERTAS_THINFIRM_DEBUG                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_LIBERTAS_THINFIRM_USB                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MWL8K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Marvell devices >> Marvell 8xxx Libertas WLAN driver support
+CONFIG_LIBERTAS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIBERTAS_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIBERTAS_CS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LIBERTAS_SDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIBERTAS_SPI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIBERTAS_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_LIBERTAS_MESH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Marvell devices >> Marvell WiFi-Ex Driver
+CONFIG_MWIFIEX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MWIFIEX_SDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MWIFIEX_PCIE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MWIFIEX_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> MediaTek devices
+CONFIG_WLAN_VENDOR_MEDIATEK                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MT7601U                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MT76x0U                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MT76x0E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MT76x2E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MT76x2U                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MT7603E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MT7615E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Ralink driver support
+CONFIG_RT2X00                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT2400PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT2500PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT61PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT2500USB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT73USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT2X00_LIB_DEBUGFS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RT2X00_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Ralink driver support >> Ralink rt27xx/rt28xx/rt30xx (PCI/PCIe/PCMCIA) support
+CONFIG_RT2800PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT2800PCI_RT33XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800PCI_RT35XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800PCI_RT53XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800PCI_RT3290                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Ralink driver support >> Ralink rt27xx/rt28xx/rt30xx (USB) support
+CONFIG_RT2800USB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RT2800USB_RT33XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800USB_RT35XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800USB_RT3573                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800USB_RT53XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800USB_RT55XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RT2800USB_UNKNOWN                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Realtek devices
+CONFIG_WLAN_VENDOR_REALTEK                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTL8180                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8187                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8XXXU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8XXXU_UNTESTED                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Realtek devices >> Realtek 802.11ac wireless chips support
+CONFIG_RTW88                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTW88_8723DE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTW88_8822BE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTW88_8822CE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTW88_DEBUG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTW88_DEBUGFS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTW88_REGD_USER_REG_HINTS                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Realtek devices >> Realtek rtlwifi family of devices
+CONFIG_RTL_CARDS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192CE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192SE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192DE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8723AE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8723BE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8188EE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192EE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8821AE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192CU                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTLWIFI_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Redpine Signals Inc 91x WLAN driver support
+CONFIG_RSI_91X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RSI_DEBUGFS                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RSI_SDIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RSI_USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RSI_COEX                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Network device support >> Wireless LAN >> Texas Instrument devices
+CONFIG_WLAN_VENDOR_TI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_WL1251                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WL1251_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WL1251_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WL12XX                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WL18XX                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WLCORE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WLCORE_SPI                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_WLCORE_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WILINK_PLATFORM_DATA                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Non-Transparent Bridge support
+CONFIG_NTB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NTB_MSI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NTB_AMD                                  policy<{'amd64': 'n'}>
+CONFIG_NTB_IDT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NTB_INTEL                                policy<{'amd64': 'm'}>
+CONFIG_NTB_SWITCHTEC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NTB_PINGPONG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NTB_TOOL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NTB_PERF                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NTB_MSI_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_NTB_TRANSPORT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> On-Chip Interconnect management support
+CONFIG_INTERCONNECT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INTERCONNECT_QCOM                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_INTERCONNECT_QCOM_QCS404                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INTERCONNECT_QCOM_SDM845                 policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Open-Channel SSD target support
+CONFIG_NVM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NVM_PBLK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVM_PBLK_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> PCCard (PCMCIA/CardBus) support
+CONFIG_PCCARD                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CARDBUS                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> PCCard (PCMCIA/CardBus) support >> 16-bit PCMCIA support
+CONFIG_PCMCIA                                   policy<{'amd64': 'm', 'arm64': 'n', 'i386': 'm'}>
+CONFIG_PCMCIA_LOAD_CIS                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PD6729                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I82092                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I82365                                   policy<{'i386': 'm'}>
+CONFIG_TCIC                                     policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> PCCard (PCMCIA/CardBus) support >> CardBus yenta-compatible bridge support
+CONFIG_YENTA                                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_YENTA_O2                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_RICOH                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_TI                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_ENE_TUNE                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_TOSHIBA                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> PCI support
+CONFIG_PCI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_MSI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_QUIRKS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCI_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PCI_REALLOC_ENABLE_AUTO                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_STUB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PCI_PF_STUB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XEN_PCIDEV_FRONTEND                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCI_IOV                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_PRI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCI_PASID                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCI_P2PDMA                               policy<{'amd64': 'n', 'ppc64el': 'n'}>
+CONFIG_PCI_HYPERV                               policy<{'amd64': 'm'}>
+#
+CONFIG_PCI_P2PDMA                               flag<REVIEW>
+
+# Menu: Device Drivers >> PCI support >> PCI Endpoint
+CONFIG_PCI_ENDPOINT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_ENDPOINT_CONFIGFS                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_EPF_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> PCI support >> PCI Express Port Bus support
+CONFIG_PCIEPORTBUS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI_PCIE                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIEASPM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIE_PTM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIE_BW                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+#
+CONFIG_PCIEPORTBUS                              mark<ENFORCED> note<LP#1665404>
+CONFIG_HOTPLUG_PCI_PCIE                         mark<ENFORCED> note<LP#1374440>
+
+# Menu: Device Drivers >> PCI support >> PCI Express Port Bus support >> Default ASPM policy
+CONFIG_PCIEASPM_DEFAULT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIEASPM_POWERSAVE                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIEASPM_POWER_SUPERSAVE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIEASPM_PERFORMANCE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+#
+CONFIG_PCIEASPM_DEFAULT                         note<LP#1398544>
+
+# Menu: Device Drivers >> PCI support >> PCI Express Port Bus support >> PCI Express Advanced Error Reporting support
+CONFIG_PCIEAER                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIEAER_INJECT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIE_ECRC                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIE_DPC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+#
+CONFIG_PCIEAER_INJECT                           flag<TESTING>
+
+# Menu: Device Drivers >> PCI support >> PCI controller drivers
+CONFIG_PCI_MVEBU                                policy<{'armhf': 'y'}>
+CONFIG_PCI_AARDVARK                             policy<{'arm64': 'y'}>
+CONFIG_PCIE_XILINX_NWL                          policy<{'arm64': 'y'}>
+CONFIG_PCI_FTPCI100                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PCI_TEGRA                                policy<{'armhf-generic': 'y'}>
+CONFIG_PCI_RCAR_GEN2                            policy<{'armhf': 'y'}>
+CONFIG_PCIE_RCAR                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_HOST_GENERIC                         policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PCIE_XILINX                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PCI_XGENE                                policy<{'arm64': 'y'}>
+CONFIG_PCI_XGENE_MSI                            policy<{'arm64': 'y'}>
+CONFIG_PCI_V3_SEMI                              policy<{'armhf': 'y'}>
+CONFIG_PCIE_IPROC_PLATFORM                      policy<{'arm64': 'm'}>
+CONFIG_PCIE_IPROC_MSI                           policy<{'arm64': 'y'}>
+CONFIG_PCIE_ALTERA                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ALTERA_MSI                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_HOST_THUNDER_PEM                     policy<{'arm64': 'y'}>
+CONFIG_PCI_HOST_THUNDER_ECAM                    policy<{'arm64': 'y'}>
+CONFIG_PCIE_ROCKCHIP_HOST                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCIE_ROCKCHIP_EP                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_MEDIATEK                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_MOBIVEIL                            policy<{'arm64': 'y'}>
+CONFIG_VMD                                      policy<{'amd64': 'm'}>
+CONFIG_PCI_HYPERV_INTERFACE                     policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> PCI support >> PCI controller drivers >> Cadence PCIe controllers support
+CONFIG_PCIE_CADENCE_HOST                        policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PCIE_CADENCE_EP                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> PCI support >> PCI controller drivers >> DesignWare PCI Core Support
+CONFIG_PCI_DRA7XX_HOST                          policy<{'armhf': 'y'}>
+CONFIG_PCI_DRA7XX_EP                            policy<{'armhf': 'y'}>
+CONFIG_PCIE_DW_PLAT_HOST                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_PCIE_DW_PLAT_EP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_PCI_IMX6                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_PCI_KEYSTONE_HOST                        policy<{'arm64': 'y'}>
+CONFIG_PCI_KEYSTONE_EP                          policy<{'arm64': 'y'}>
+CONFIG_PCI_LAYERSCAPE                           policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_PCI_LAYERSCAPE_EP                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_HISI                                 policy<{'arm64': 'y'}>
+CONFIG_PCIE_QCOM                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ARMADA_8K                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_KIRIN                               policy<{'arm64': 'y'}>
+CONFIG_PCIE_HISI_STB                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_MESON                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', }>
+CONFIG_PCIE_UNIPHIER                            policy<{'armhf': 'y'}>
+CONFIG_PCIE_AL                                  policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> PCI support >> PCI switch controller drivers
+CONFIG_PCI_SW_SWITCHTEC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> PCI support >> Support for PCI Hotplug
+CONFIG_HOTPLUG_PCI                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI_COMPAQ                       policy<{'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM                 policy<{'i386': 'y'}>
+CONFIG_HOTPLUG_PCI_IBM                          policy<{'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_ACPI                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HOTPLUG_PCI_ACPI_IBM                     policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_CPCI                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_SHPC                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HOTPLUG_PCI_POWERNV                      policy<{'ppc64el': 'm'}>
+CONFIG_HOTPLUG_PCI_RPA                          policy<{'ppc64el': 'm'}>
+CONFIG_HOTPLUG_PCI_RPA_DLPAR                    policy<{'ppc64el': 'm'}>
+CONFIG_HOTPLUG_PCI_S390                         policy<{'s390x': 'y'}>
+#
+CONFIG_HOTPLUG_PCI_SHPC                         note<LP#1374440>
+
+# Menu: Device Drivers >> PHY Subsystem
+CONFIG_GENERIC_PHY                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PHY_XGENE                                policy<{'arm64': 'y'}>
+CONFIG_PHY_SUN4I_USB                            policy<{'arm64': 'm'}>
+CONFIG_PHY_SUN6I_MIPI_DPHY                      policy<{'arm64': 'm'}>
+CONFIG_PHY_SUN9I_USB                            policy<{'arm64': 'n'}>
+CONFIG_PHY_MESON8B_USB2                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_GXL_USB2                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_GXL_USB3                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_G12A_USB2                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_G12A_USB3_PCIE                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_BCM_SR_USB                           policy<{'arm64': 'm'}>
+CONFIG_BCM_KONA_USB2_PHY                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHY_BCM_NS_USB2                          policy<{'arm64': 'm'}>
+CONFIG_PHY_BCM_NS_USB3                          policy<{'arm64': 'm'}>
+CONFIG_PHY_NS2_PCIE                             policy<{'arm64': 'y'}>
+CONFIG_PHY_NS2_USB_DRD                          policy<{'arm64': 'm'}>
+CONFIG_PHY_BRCM_SATA                            policy<{'arm64': 'y'}>
+CONFIG_PHY_BRCM_USB                             policy<{'arm64': 'm'}>
+CONFIG_PHY_BCM_SR_PCIE                          policy<{'arm64': 'm'}>
+CONFIG_PHY_CADENCE_DP                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_CADENCE_DPHY                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_CADENCE_SIERRA                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_FSL_IMX8MQ_USB                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_MIXEL_MIPI_DPHY                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_HI6220_USB                           policy<{'arm64': 'm'}>
+CONFIG_PHY_HI3660_USB                           policy<{'arm64': 'm'}>
+CONFIG_PHY_HISTB_COMBPHY                        policy<{'arm64': 'm'}>
+CONFIG_PHY_HISI_INNO_USB2                       policy<{'arm64': 'm'}>
+CONFIG_PHY_HIX5HD2_SATA                         policy<{'armhf': 'm'}>
+CONFIG_PHY_BERLIN_SATA                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_BERLIN_USB                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_A3700_COMPHY                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_A3700_UTMI                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_A38X_COMPHY                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_CP110_COMPHY                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_PXA_28NM_HSIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHY_PXA_28NM_USB2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHY_MTK_TPHY                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MTK_UFS                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MTK_XSPHY                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_CPCAP_USB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_MAPPHONE_MDM6600                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_OCELOT_SERDES                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_QCOM_APQ8064_SATA                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_IPQ806X_SATA                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_PCIE2                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_QMP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_QUSB2                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_UFS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_USB_HS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_QCOM_USB_HSIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_RCAR_GEN2                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_RCAR_GEN3_PCIE                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_RCAR_GEN3_USB2                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_RCAR_GEN3_USB3                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_DP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_EMMC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_INNO_HDMI                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_INNO_USB2                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_PCIE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_TYPEC                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_USB                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_EXYNOS_DP_VIDEO                      policy<{'armhf': 'y'}>
+CONFIG_PHY_EXYNOS_MIPI_VIDEO                    policy<{'armhf': 'y'}>
+CONFIG_PHY_EXYNOS_PCIE                          policy<{'armhf': 'y'}>
+CONFIG_PHY_SAMSUNG_USB2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PHY_EXYNOS5_USBDRD                       policy<{'armhf': 'm'}>
+CONFIG_PHY_EXYNOS5250_SATA                      policy<{'armhf': 'y'}>
+CONFIG_PHY_UNIPHIER_USB2                        policy<{'armhf': 'm'}>
+CONFIG_PHY_UNIPHIER_USB3                        policy<{'armhf': 'm'}>
+CONFIG_PHY_UNIPHIER_PCIE                        policy<{'armhf': 'm'}>
+CONFIG_PHY_TEGRA_XUSB                           policy<{'armhf-generic': 'm'}>
+CONFIG_PHY_DM816X_USB                           policy<{'armhf': 'm'}>
+CONFIG_PHY_AM654_SERDES                         policy<{'arm64': 'm'}>
+CONFIG_OMAP_CONTROL_PHY                         policy<{'armhf': 'm'}>
+CONFIG_OMAP_USB2                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TI_PIPE3                                 policy<{'armhf': 'm'}>
+CONFIG_PHY_TUSB1210                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TWL4030_USB                              policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> PPS support
+CONFIG_PPS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_PPS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PPS_CLIENT_KTIMER                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PPS_CLIENT_LDISC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PPS_CLIENT_PARPORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PPS_CLIENT_GPIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_PPS_CLIENT_KTIMER                        flag<TESTING>
+CONFIG_PPS                                      flag<REVIEW>
+
+# Menu: Device Drivers >> PTP clock support
+CONFIG_PTP_1588_CLOCK_PCH                       policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> PTP clock support >> PTP clock support
+CONFIG_PTP_1588_CLOCK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_PTP_1588_CLOCK_DTE                       policy<{'arm64': 'm'}>
+CONFIG_PTP_1588_CLOCK_QORIQ                     policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_DP83640_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PTP_1588_CLOCK_KVM                       policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Parallel port support
+CONFIG_PARPORT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PARPORT_AX88796                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PARPORT_1284                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Parallel port support >> PC-style hardware
+CONFIG_PARPORT_PC                               policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARPORT_SERIAL                           policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARPORT_PC_FIFO                          policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PARPORT_PC_SUPERIO                       policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PARPORT_PC_PCMCIA                        policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Performance monitor support
+CONFIG_ARM_CCI_PMU                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCI400_PMU                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCI5xx_PMU                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCN                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_PMU                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_SMMU_V3_PMU                          policy<{'arm64': 'm'}>
+CONFIG_ARM_DSU_PMU                              policy<{'arm64': 'm'}>
+CONFIG_FSL_IMX8_DDR_PMU                         policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_HISI_PMU                                 policy<{'arm64': 'y'}>
+CONFIG_QCOM_L2_PMU                              policy<{'arm64': 'y'}>
+CONFIG_QCOM_L3_PMU                              policy<{'arm64': 'y'}>
+CONFIG_THUNDERX2_PMU                            policy<{'arm64': 'm'}>
+CONFIG_XGENE_PMU                                policy<{'arm64': 'y'}>
+CONFIG_ARM_SPE_PMU                              policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Pin controllers
+CONFIG_PINCTRL                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PINMUX                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCONF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_DEBUG_PINCTRL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PINCTRL_AS3722                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCTRL_AXP209                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PINCTRL_AMD                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCTRL_BM1880                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MCP23S08                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PINCTRL_RZA1                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_RZA2                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_RZN1                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_SINGLE                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCTRL_SX150X                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCTRL_STMFX                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PINCTRL_MAX77620                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PINCTRL_PALMAS                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCTRL_RK805                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PINCTRL_OCELOT                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PINCTRL_OWL                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_S700                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_S900                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_ASPEED_G6                        policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_BCM2835                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IPROC_GPIO                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_NS2_MUX                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_AS370                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_BERLIN_BG4CT                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_IMX50                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX51                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6Q                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6SL                           policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6SLL                          policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6SX                           policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6UL                           policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX7D                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX7ULP                          policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX8MM                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8MN                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8MQ                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8QM                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8QXP                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_VF610                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_BAYTRAIL                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PINCTRL_CHERRYVIEW                       policy<{'amd64': 'y', 'i386': 'm'}>
+CONFIG_PINCTRL_MERRIFIELD                       policy<{'i386': 'n'}>
+CONFIG_PINCTRL_BROXTON                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_CANNONLAKE                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_CEDARFORK                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_DENVERTON                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_GEMINILAKE                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_ICELAKE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_LEWISBURG                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_SUNRISEPOINT                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_NPCM7XX                          policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_APQ8064                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_APQ8084                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_IPQ4019                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_IPQ8064                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_IPQ8074                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8660                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8960                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MDM9615                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8X74                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8916                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8994                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8996                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8998                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_QCS404                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_QDF2XXX                          policy<{'arm64': 'm'}>
+CONFIG_PINCTRL_QCOM_SPMI_PMIC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_QCOM_SSBI_PMIC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SC7180                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SDM660                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SDM845                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SM8150                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_EXYNOS                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_EXYNOS_ARM                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_SH_PFC                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_EMEV2                        policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7740                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7743                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7744                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7745                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77470                     policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A774A1                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A774C0                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7778                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7779                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7790                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7791                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7792                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7793                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7794                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7795                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7796                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77965                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77970                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77980                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77990                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77995                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_SH73A0                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_SPRD                             policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SPRD_SC9860                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN4I_A10                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN5I                            policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN6I_A31                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN6I_A31_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A23                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A33                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A83T                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A83T_R                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A23_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_H3                         policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_H3_R                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_V3S                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN9I_A80                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN9I_A80_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_A64                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_A64_R                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_H5                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_H6                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_H6_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_TI_IODELAY                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_LOCHNAGAR                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_PINCTRL_CHERRYVIEW                       mark<ENFORCED> note<LP #1630238>
+
+# Menu: Device Drivers >> Pin controllers >> Amlogic SoC pinctrl drivers
+CONFIG_PINCTRL_MESON                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MESON8                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MESON8B                          policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MESON_GXBB                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_GXL                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_AXG                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_G12A                       policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> Pin controllers >> MediaTek pinctrl drivers
+CONFIG_EINT_MTK                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MT2701                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT7623                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT7629                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT8135                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT8127                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT2712                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT6765                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT6797                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT7622                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT8173                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT8183                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT8516                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT6397                           policy<{'arm64': 'y', 'armhf': 'y'}>
+#
+CONFIG_PINCTRL_MT8135                           flag<REVIEW>
+CONFIG_PINCTRL_MT8127                           flag<REVIEW>
+
+# Menu: Device Drivers >> Pin controllers >> UniPhier SoC pinctrl drivers
+CONFIG_PINCTRL_UNIPHIER                         policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD4                     policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PRO4                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_SLD8                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PRO5                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PXS2                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD6B                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD11                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD20                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PXS3                    policy<{'armhf': 'y'}>
+
+# Menu: Device Drivers >> Platform support for Chrome hardware
+CONFIG_CHROME_PLATFORMS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_CHROMEOS_LAPTOP                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CHROMEOS_PSTORE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CHROMEOS_TBMC                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CROS_KBD_LED_BACKLIGHT                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_CHARDEV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_LIGHTBAR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_VBC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CROS_EC_DEBUGFS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_SYSFS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_USBPD_LOGGER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Platform support for Chrome hardware >> ChromeOS Embedded Controller
+CONFIG_CROS_EC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_RPMSG                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CROS_EC_ISHTP                            policy<{'amd64': 'm'}>
+CONFIG_CROS_EC_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_LPC                              policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Platform support for Chrome hardware >> ChromeOS Embedded Controller >> ChromeOS Wilco Embedded Controller
+CONFIG_WILCO_EC                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILCO_EC_DEBUGFS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILCO_EC_EVENTS                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILCO_EC_TELEMETRY                       policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Platform support for Goldfish virtual devices
+CONFIG_GOLDFISH                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+
+# Menu: Device Drivers >> Platform support for Mellanox hardware
+CONFIG_MELLANOX_PLATFORM                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_MLXREG_HOTPLUG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MLXREG_IO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MLXBF_TMFIFO                             policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Platform support for OLPC XO 1.75 hardware
+
+# Menu: Device Drivers >> Plug and Play support
+CONFIG_PNP                                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_PNP_DEBUG_MESSAGES                       policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ISAPNP                                   policy<{'i386': 'y'}>
+CONFIG_PNPBIOS                                  policy<{'i386': 'y'}>
+CONFIG_PNPBIOS_PROC_FS                          policy<{'i386': 'y'}>
+
+# Menu: Device Drivers >> Power supply class support
+CONFIG_POWER_SUPPLY                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_POWER_SUPPLY_DEBUG                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_POWER_SUPPLY_HWMON                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PDA_POWER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GENERIC_ADC_BATTERY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAX8925_POWER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WM831X_BACKUP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WM831X_POWER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WM8350_POWER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TEST_POWER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_88PM860X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_ADP5061                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_ACT8945A                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_DS2760                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_DS2780                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_DS2781                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_DS2782                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_LEGO_EV3                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_SBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_SBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MANAGER_SBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_BQ27XXX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_BQ27XXX_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_BQ27XXX_HDQ                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BATTERY_DA9030                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_DA9052                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_DA9150                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_DA9150                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_AXP20X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_AXP20X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AXP20X_POWER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AXP288_CHARGER                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AXP288_FUEL_GAUGE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_MAX17040                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_MAX17042                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_MAX1721X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_TWL4030_MADC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_88PM860X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_PCF50633                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_RX51                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CHARGER_ISP1704                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MAX8903                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_TWL4030                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_LP8727                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_LP8788                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_GPIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MANAGER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CHARGER_LT3651                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MAX14577                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_DETECTOR_MAX14656                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MAX77650                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MAX77693                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MAX8997                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_MAX8998                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_QCOM_SMBB                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CHARGER_BQ2415X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_BQ24190                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_BQ24257                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_BQ24735                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_BQ25890                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_SMB347                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_TPS65090                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_TPS65217                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_BATTERY_GAUGE_LTC2941                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BATTERY_RT5033                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_RT9455                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_CROS_USBPD                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CHARGER_SC2731                           policy<{'arm64': 'm'}>
+CONFIG_FUEL_GAUGE_SC27XX                        policy<{'arm64': 'm'}>
+CONFIG_CHARGER_UCS1002                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_BD70528                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CHARGER_WILCO                            policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Pulse-Width Modulation (PWM) Support
+CONFIG_PWM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PWM_ATMEL_HLCDC_PWM                      policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_PWM_BCM_IPROC                            policy<{'arm64': 'm'}>
+CONFIG_PWM_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_PWM_BERLIN                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_BRCMSTB                              policy<{'arm64': 'm'}>
+CONFIG_PWM_CRC                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_CROS_EC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_PWM_FSL_FTM                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PWM_HIBVT                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_IMX1                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PWM_IMX27                                policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PWM_IMX_TPM                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PWM_LP3943                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PWM_LPSS_PCI                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_LPSS_PLATFORM                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_MESON                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_MTK_DISP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_MEDIATEK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_OMAP_DMTIMER                         policy<{'armhf': 'm'}>
+CONFIG_PWM_PCA9685                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PWM_RCAR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_RENESAS_TPU                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_ROCKCHIP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_SAMSUNG                              policy<{'armhf': 'm'}>
+CONFIG_PWM_SIFIVE                               policy<{}>
+CONFIG_PWM_SPRD                                 policy<{'arm64': 'm'}>
+CONFIG_PWM_STMPE                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_PWM_SUN4I                                policy<{'arm64': 'm'}>
+CONFIG_PWM_TEGRA                                policy<{'armhf-generic': 'm'}>
+CONFIG_PWM_TIECAP                               policy<{'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': 'n'}>
+CONFIG_PWM_TIEHRPWM                             policy<{'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': 'n'}>
+CONFIG_PWM_TWL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PWM_TWL_LED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> RapidIO support
+CONFIG_RAPIDIO                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RAPIDIO_TSI721                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_RAPIDIO_DISC_TIMEOUT                     policy<{'amd64': '30', 'arm64': '30', 'armhf': '30', 'i386': '30', 'ppc64el': '30', }>
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RAPIDIO_DMA_ENGINE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RAPIDIO_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RAPIDIO_CHMAN                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RAPIDIO_MPORT_CDEV                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> RapidIO support >> Enumeration method
+CONFIG_RAPIDIO_ENUM_BASIC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> RapidIO support >> RapidIO Switch drivers
+CONFIG_RAPIDIO_TSI57X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RAPIDIO_CPS_XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RAPIDIO_TSI568                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RAPIDIO_CPS_GEN2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RAPIDIO_RXS_GEN3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Real Time Clock
+CONFIG_RTC_CLASS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_HCTOSYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_HCTOSYS_DEVICE                       policy<{'amd64': '"rtc0"', 'arm64': '"rtc0"', 'armhf': '"rtc0"', 'i386': '"rtc0"', 'ppc64el': '"rtc0"'}>
+CONFIG_RTC_SYSTOHC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_SYSTOHC_DEVICE                       policy<{'amd64': '"rtc0"', 'arm64': '"rtc0"', 'armhf': '"rtc0"', 'i386': '"rtc0"', 'ppc64el': '"rtc0"'}>
+CONFIG_RTC_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_NVMEM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_SYSFS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_PROC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_DEV                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_DEV_UIE_EMUL                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_88PM860X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_88PM80X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ABB5ZES3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ABEOZ9                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ABX80X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_AM1805                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_BRCMSTB                          policy<{'arm64': 'm'}>
+CONFIG_RTC_DRV_AS3722                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1307                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1307_CENTURY                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_DS1374                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1374_WDT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_DS1672                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_HYM8563                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_LP8788                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX6900                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8907                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8925                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8998                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8997                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX77686                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MESON_VRTC                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_RK808                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RS5C372                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ISL1208                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ISL12022                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ISL12026                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_X1205                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF8523                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF85063                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF85363                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF8563                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF8583                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T80                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T80_WDT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_BD70528                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_BQ32K                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TWL4030                          policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PALMAS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TPS6586X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TPS65910                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TPS80031                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RC5T583                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_S35390A                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_FM3130                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX8010                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX8581                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX8025                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_EM3027                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RV3028                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RV8803                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_S5M                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_SD3078                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T93                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T94                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1302                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1305                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1343                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1347                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1390                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX6916                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_R9701                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX4581                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX6110                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RS5C348                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX6902                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF2123                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MCP795                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS3232                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS3232_HWMON                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_PCF2127                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RV3029C2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RV3029_HWMON                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_CMOS                             policy<{'amd64': 'y', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_VRTC                             policy<{'i386': 'm'}>
+CONFIG_RTC_DRV_DS1286                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1511                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1553                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1685_FAMILY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1742                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS2404                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DA9052                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DA9055                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DA9063                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_EFI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RTC_DRV_STK17TA8                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M48T86                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M48T35                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M48T59                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MSM6242                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_BQ4802                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RP5C01                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_V3020                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_WM831X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_WM8350                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_SC27XX                           policy<{'arm64': 'm'}>
+CONFIG_RTC_DRV_PCF50633                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_AB3100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_OPAL                             policy<{'ppc64el': 'y'}>
+CONFIG_RTC_DRV_ZYNQMP                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_CROS_EC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_RTC_DRV_IMXDI                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_FSL_FTM_ALARM                    policy<{'arm64': 'm'}>
+CONFIG_RTC_DRV_MESON                            policy<{'armhf': 'm'}>
+CONFIG_RTC_DRV_OMAP                             policy<{'armhf': 'y'}>
+CONFIG_RTC_DRV_S3C                              policy<{'armhf': 'y'}>
+CONFIG_RTC_DRV_SH                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_PL030                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_PL031                            policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_RTC_DRV_GENERIC                          policy<{'ppc64el': 'y'}>
+CONFIG_RTC_DRV_SUN6I                            policy<{'arm64': 'y'}>
+CONFIG_RTC_DRV_MV                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RTC_DRV_ARMADA38X                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_CADENCE                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_FTRTC010                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCAP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MC13XXX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PM8XXX                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_TEGRA                            policy<{'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_MXC                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_MXC_V2                           policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_SNVS                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_IMX_SC                           policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_MT6397                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MT7622                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_XGENE                            policy<{'arm64': 'y'}>
+CONFIG_RTC_DRV_R7301                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RTD119X                          policy<{'arm64': 'y'}>
+CONFIG_RTC_DRV_ASPEED                           policy<{'armhf': 'm'}>
+CONFIG_RTC_DRV_HID_SENSOR_TIME                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_WILCO_EC                         policy<{'amd64': 'm', 'i386': 'm'}>
+#
+CONFIG_RTC_DRV_TEST                             flag<TESTING>
+CONFIG_RTC_DRV_CMOS                             note<boot essential on i386/amd64>
+CONFIG_RTC_DRV_EFI                              note<LP:#1583738>
+CONFIG_RTC_DRV_TWL4030                          note<boot essential on OMAP3/OMAP4>
+
+# Menu: Device Drivers >> Real Time Clock >> Subtype
+CONFIG_RTC_DRV_DS1685                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTC_DRV_DS1689                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RTC_DRV_DS17285                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RTC_DRV_DS17485                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_RTC_DRV_DS17885                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Reliability, Availability and Serviceability (RAS) features
+CONFIG_RAS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RAS_CEC                                  policy<{'amd64': 'y'}>
+CONFIG_RAS_CEC_DEBUG                            policy<{'amd64': 'n'}>
+
+# Menu: Device Drivers >> Remote Controller support
+CONFIG_RC_CORE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RC_MAP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LIRC                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Remote Controller support >> Remote Controller devices
+CONFIG_RC_DEVICES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RC_ATI_REMOTE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_ENE                                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_HIX5HD2                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_IMON                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_IMON_RAW                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_MCEUSB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_ITE_CIR                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_FINTEK                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_MESON                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IR_MTK                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IR_NUVOTON                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_REDRAT3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_SPI                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_STREAMZAP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_WINBOND_CIR                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IR_IGORPLUGUSB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_IGUANA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_TTUSBIR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_RX51                                  policy<{'armhf': 'm'}>
+CONFIG_RC_LOOPBACK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_GPIO_CIR                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_GPIO_TX                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_PWM_TX                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_SUNXI                                 policy<{'arm64': 'm'}>
+CONFIG_IR_SERIAL                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_SERIAL_TRANSMITTER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IR_SIR                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RC_XBOX_DVD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Remote Controller support >> Remote Controller devices >> Hardware decoder
+
+# Menu: Device Drivers >> Remote Controller support >> Remote controller decoders
+CONFIG_RC_DECODERS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_IR_NEC_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_RC5_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_RC6_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_JVC_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_SONY_DECODER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_SANYO_DECODER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_SHARP_DECODER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_MCE_KBD_DECODER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_XMP_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_IMON_DECODER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IR_RCMM_DECODER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Remoteproc drivers
+
+# Menu: Device Drivers >> Remoteproc drivers >> Support for Remote Processor subsystem
+CONFIG_REMOTEPROC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMX_REMOTEPROC                           policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_OMAP_REMOTEPROC                          policy<{'armhf-generic': 'm'}>
+CONFIG_WKUP_M3_RPROC                            policy<{'armhf-generic': 'm'}>
+CONFIG_QCOM_Q6V5_ADSP                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_MSS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_PAS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_WCSS                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SYSMON                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_WCNSS_PIL                           policy<{'arm64': 'n', 'armhf': 'n'}>
+
+# Menu: Device Drivers >> Reset Controller Support
+CONFIG_RESET_CONTROLLER                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RESET_BERLIN                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_BRCMSTB                            policy<{'arm64': 'm'}>
+CONFIG_RESET_IMX7                               policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_RESET_MESON                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_MESON_AUDIO_ARB                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_QCOM_AOSS                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_QCOM_PDC                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_SCMI                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_SIMPLE                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_SUNXI                              policy<{'arm64': 'y'}>
+CONFIG_RESET_TI_SCI                             policy<{'arm64': 'm'}>
+CONFIG_RESET_TI_SYSCON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RESET_UNIPHIER                           policy<{'armhf': 'm'}>
+CONFIG_RESET_UNIPHIER_GLUE                      policy<{'armhf': 'm'}>
+CONFIG_COMMON_RESET_HI3660                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_RESET_HI6220                      policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Rpmsg drivers
+CONFIG_RPMSG_CHAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RPMSG_QCOM_GLINK_RPM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RPMSG_QCOM_GLINK_SMEM                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RPMSG_QCOM_SMD                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RPMSG_VIRTIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+
+# Menu: Device Drivers >> SCSI device support
+CONFIG_RAID_ATTRS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support
+CONFIG_SCSI                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_PROC_FS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_SD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CHR_DEV_ST                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_SR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CHR_DEV_SG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CHR_DEV_SCH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_ENCLOSURE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_CONSTANTS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_LOGGING                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_SCAN_ASYNC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SCSI                                     flag<REVIEW>
+CONFIG_CHR_DEV_SG                               note<not autoloadable>
+CONFIG_BLK_DEV_SD                               mark<ENFORCED> note<LP:1627330>
+CONFIG_BLK_DEV_SR                               mark<ENFORCED> note<LP:1627330>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI Device Handlers
+CONFIG_SCSI_DH                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_DH_RDAC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH_HP_SW                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH_EMC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH_ALUA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI Transports
+CONFIG_SCSI_SPI_ATTRS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_FC_ATTRS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_ISCSI_ATTRS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SAS_ATTRS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SAS_LIBSAS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SAS_ATA                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SCSI_SAS_HOST_SMP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_SRP_ATTRS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers
+CONFIG_SCSI_LOWLEVEL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ISCSI_TCP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ISCSI_BOOT_SYSFS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_CXGB3_ISCSI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_CXGB4_ISCSI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BNX2_ISCSI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BNX2X_FCOE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BE2ISCSI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CXLFLASH                                 policy<{'ppc64el': 'm'}>
+CONFIG_BLK_DEV_3W_XXXX_RAID                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_HPSA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_3W_9XXX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_3W_SAS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ACARD                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AHA152X                             policy<{'i386': 'm'}>
+CONFIG_SCSI_AHA1542                             policy<{'i386': 'm'}>
+CONFIG_SCSI_AHA1740                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_AACRAID                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AIC94XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AIC94XX_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SCSI_HISI_SAS                            policy<{'arm64': 'm'}>
+CONFIG_SCSI_HISI_SAS_PCI                        policy<{'arm64': 'm'}>
+CONFIG_SCSI_MVSAS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_MVSAS_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SCSI_MVSAS_TASKLET                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SCSI_MVUMI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_DPT_I2O                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_ADVANSYS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ARCMSR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ESAS2R                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEGARAID_NEWGEN                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MEGARAID_MM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEGARAID_MAILBOX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEGARAID_LEGACY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEGARAID_SAS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_MPT3SAS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_MPT2SAS_MAX_SGE                     policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', 's390x': '128'}>
+CONFIG_SCSI_MPT3SAS_MAX_SGE                     policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', 's390x': '128'}>
+CONFIG_SCSI_MPT2SAS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SMARTPQI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_HPTIOP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BUSLOGIC                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_FLASHPOINT                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SCSI_MYRB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_MYRS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VMWARE_PVSCSI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_XEN_SCSI_FRONTEND                        policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_STORAGE                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LIBFC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SNIC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_SNIC_DEBUG_FS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SCSI_DMX3191D                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_FDOMAIN_PCI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_FDOMAIN_ISA                         policy<{'i386': 'm'}>
+CONFIG_SCSI_GDTH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ISCI                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_GENERIC_NCR5380                     policy<{'i386': 'm'}>
+CONFIG_SCSI_IPS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_IBMVSCSI                            policy<{'ppc64el': 'm'}>
+CONFIG_SCSI_IBMVSCSIS                           policy<{'ppc64el': 'm'}>
+CONFIG_SCSI_IBMVFC                              policy<{'ppc64el': 'm'}>
+CONFIG_SCSI_IBMVFC_TRACE                        policy<{'ppc64el': 'y'}>
+CONFIG_SCSI_INITIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_INIA100                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_PPA                                 policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_IMM                                 policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_IZIP_EPP16                          policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_IZIP_SLOW_CTR                       policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_STEX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_IPR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_IPR_TRACE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SCSI_IPR_DUMP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SCSI_QLOGIC_FAS                          policy<{'i386': 'm'}>
+CONFIG_SCSI_QLOGIC_1280                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_QLA_FC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TCM_QLA2XXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TCM_QLA2XXX_DEBUG                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SCSI_QLA_ISCSI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QEDI                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_LPFC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_LPFC_DEBUG_FS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SCSI_SIM710                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_DC395x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AM53C974                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_NSP32                               policy<{'armhf': 'm', 'i386': 'm'}>
+CONFIG_SCSI_WD719X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_DEBUG                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZFCP                                     policy<{'s390x': 'm'}>
+CONFIG_SCSI_PMCRAID                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_PM8001                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BFA_FC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_VIRTIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_CHELSIO_FCOE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_SCSI_IPR_TRACE                           note<LP:1343109>
+CONFIG_SCSI_IPR_DUMP                            note<LP:1343109>
+CONFIG_SCSI_VIRTIO                              note<tech preview of new feature>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> Adaptec AIC79xx U320 support
+CONFIG_SCSI_AIC79XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AIC79XX_CMDS_PER_DEVICE                  policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', }>
+CONFIG_AIC79XX_RESET_DELAY_MS                   policy<{'amd64': '5000', 'arm64': '5000', 'armhf': '5000', 'i386': '5000', 'ppc64el': '5000', }>
+CONFIG_AIC79XX_DEBUG_ENABLE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_AIC79XX_DEBUG_MASK                       policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_AIC79XX_REG_PRETTY_PRINT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> Adaptec AIC7xxx Fast -> U160 support
+CONFIG_SCSI_AIC7XXX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AIC7XXX_CMDS_PER_DEVICE                  policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+CONFIG_AIC7XXX_RESET_DELAY_MS                   policy<{'amd64': '5000', 'arm64': '5000', 'armhf': '5000', 'i386': '5000', 'ppc64el': '5000', }>
+CONFIG_AIC7XXX_DEBUG_ENABLE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_AIC7XXX_DEBUG_MASK                       policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_AIC7XXX_REG_PRETTY_PRINT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> LibFCoE module
+CONFIG_LIBFCOE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FCOE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FCOE_FNIC                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_QEDF                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> PCMCIA SCSI adapter support
+CONFIG_SCSI_LOWLEVEL_PCMCIA                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCMCIA_AHA152X                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_FDOMAIN                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_NINJA_SCSI                        policy<{'i386': 'm'}>
+CONFIG_PCMCIA_QLOGIC                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_SYM53C500                         policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> SYM53C8XX Version 2 SCSI support
+CONFIG_SCSI_SYM53C8XX_2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE       policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', }>
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS              policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16', }>
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS                  policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64', }>
+CONFIG_SCSI_SYM53C8XX_MMIO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> Universal Flash Storage Controller Driver Core
+CONFIG_SCSI_UFSHCD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_UFSHCD_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_UFS_DWC_TC_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_UFS_BSG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> Universal Flash Storage Controller Driver Core >> Platform bus based UFS Controller support
+CONFIG_SCSI_UFSHCD_PLATFORM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_UFS_CDNS_PLATFORM                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCSI_UFS_QCOM                            policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_SCSI_UFS_MEDIATEK                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SCSI_UFS_HISI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers >> Zalon SCSI support
+
+# Menu: Device Drivers >> SLIMbus support
+CONFIG_SLIMBUS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SLIM_QCOM_CTRL                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SLIM_QCOM_NGD_CTRL                       policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers
+CONFIG_OWL_PM_DOMAINS                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_PM_DOMAINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_TEGRA_2x_SOC                        policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_TEGRA_3x_SOC                        policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_TEGRA_114_SOC                       policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_TEGRA_124_SOC                       policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_K3_AM6_SOC                          policy<{'arm64': 'y'}>
+CONFIG_ARCH_K3_J721E_SOC                        policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Amlogic SoC drivers
+CONFIG_MESON_CANVAS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_CLK_MEASURE                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_GX_SOCINFO                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_GX_PM_DOMAINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_EE_PM_DOMAINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_MX_SOCINFO                         policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Aspeed SoC drivers
+CONFIG_ASPEED_LPC_CTRL                          policy<{'armhf': 'm'}>
+CONFIG_ASPEED_LPC_SNOOP                         policy<{'armhf': 'm'}>
+CONFIG_ASPEED_P2A_CTRL                          policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Broadcom SoC drivers
+CONFIG_BCM2835_POWER                            policy<{'arm64': 'y'}>
+CONFIG_RASPBERRYPI_POWER                        policy<{'arm64': 'y'}>
+CONFIG_SOC_BRCMSTB                              policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_BRCMSTB_PM                               policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> IXP4xx SoC drivers
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> MediaTek SoC drivers
+CONFIG_MTK_CMDQ                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_INFRACFG                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTK_PMIC_WRAP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_SCPSYS                               policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> NXP/Freescale QorIQ SoC drivers
+CONFIG_FSL_MC_DPIO                              policy<{'arm64': 'm'}>
+CONFIG_DPAA2_CONSOLE                            policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> NXP/Freescale QorIQ SoC drivers >> QorIQ DPAA1 framework support
+CONFIG_FSL_DPAA                                 policy<{'arm64': 'y'}>
+CONFIG_FSL_DPAA_CHECKING                        policy<{'arm64': 'y'}>
+CONFIG_FSL_BMAN_TEST                            policy<{'arm64': 'm'}>
+CONFIG_FSL_BMAN_TEST_API                        policy<{'arm64': 'n'}>
+CONFIG_FSL_QMAN_TEST                            policy<{'arm64': 'n'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Qualcomm SoC drivers
+CONFIG_QCOM_AOSS_QMP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_COMMAND_DB                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_GENI_SE                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_GLINK_SSR                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_GSBI                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_LLCC                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SDM845_LLCC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_PM                                  policy<{'armhf': 'y'}>
+CONFIG_QCOM_RMTFS_MEM                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_RPMH                                policy<{'arm64': 'y'}>
+CONFIG_QCOM_RPMHPD                              policy<{'arm64': 'y'}>
+CONFIG_QCOM_SMD_RPM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_WCNSS_CTRL                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_APR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Qualcomm SoC drivers >> Qualcomm Shared Memory Manager (SMEM)
+CONFIG_QCOM_SMEM                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SMP2P                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SMSM                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SOCINFO                             policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Renesas SoC driver support
+CONFIG_SOC_RENESAS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_EMEV2                               policy<{'armhf': 'y'}>
+CONFIG_ARCH_R7S72100                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_R7S9210                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A73A4                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_R8A7740                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7743                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7744                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7745                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A77470                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7778                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7779                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7790                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7791                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7792                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7793                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7794                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R9A06G032                           policy<{'armhf': 'y'}>
+CONFIG_ARCH_SH73A0                              policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A774A1                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A774C0                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A7795                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A7796                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77965                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77970                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77980                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77990                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77995                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A7743                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7745                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A77470                            policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A774A1                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A774C0                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A7779                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7790                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7791                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7792                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7794                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7795                             policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A7796                             policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77965                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77970                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77980                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77990                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77995                            policy<{'arm64': 'y'}>
+CONFIG_RST_RCAR                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SYSC_RCAR                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SYSC_RMOBILE                             policy<{'armhf': 'y'}>
+#
+CONFIG_ARCH_R8A73A4                             flag<REVIEW>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Samsung SoC driver support
+CONFIG_SOC_SAMSUNG                              policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_CHIPID                            policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_PMU                               policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_PMU_ARM_DRIVERS                   policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_PM_DOMAINS                        policy<{'armhf': 'y'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> TI SOC drivers support
+CONFIG_SOC_TI                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_WKUP_M3_IPC                              policy<{'armhf-generic': 'n'}>
+CONFIG_TI_SCI_PM_DOMAINS                        policy<{'arm64': 'm'}>
+#
+CONFIG_SOC_TI                                   flag<REVIEW>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Xilinx SoC drivers
+CONFIG_XILINX_VCU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZYNQMP_POWER                             policy<{'arm64': 'y'}>
+CONFIG_ZYNQMP_PM_DOMAINS                        policy<{'arm64': 'y'}>
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> ZTE SoC driver support
+
+# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> i.MX SoC drivers
+CONFIG_IMX_GPCV2_PM_DOMAINS                     policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_SCU_SOC                              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+
+# Menu: Device Drivers >> SPI support
+CONFIG_SPI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SPI_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SPI_MEM                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SPI_ALTERA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_ARMADA_3700                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_AXI_SPI_ENGINE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_SPI_BCM2835AUX                           policy<{'arm64': 'm'}>
+CONFIG_SPI_BCM_QSPI                             policy<{'arm64': 'm'}>
+CONFIG_SPI_BITBANG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_BUTTERFLY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_CADENCE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_DESIGNWARE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_DW_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_DW_MID_DMA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SPI_DW_MMIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_DLN2                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_FSL_LPSPI                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_FSL_QUADSPI                          policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_HISI_SFC_V3XX                        policy<{'arm64': 'm'}>
+CONFIG_SPI_NXP_FLEXSPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_GPIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_IMX                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_LM70_LLP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_FSL_SPI                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', }>
+CONFIG_SPI_FSL_DSPI                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_MESON_SPICC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_MESON_SPIFC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_MT65XX                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_NPCM_FIU                             policy<{'armhf': 'm'}>
+CONFIG_SPI_NPCM_PSPI                            policy<{'armhf': 'm'}>
+CONFIG_SPI_OC_TINY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_OMAP24XX                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_TI_QSPI                              policy<{'armhf': 'm'}>
+CONFIG_SPI_ORION                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_PL022                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_PXA2XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_ROCKCHIP                             policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SPI_RSPI                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_QCOM_QSPI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_QUP                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_QCOM_GENI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_S3C64XX                              policy<{'armhf': 'm'}>
+CONFIG_SPI_SC18IS602                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_SH_MSIOF                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_SH_HSPI                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_SIFIVE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_SLAVE_MT27XX                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_SPRD                                 policy<{'arm64': 'm'}>
+CONFIG_SPI_SPRD_ADI                             policy<{'arm64': 'm'}>
+CONFIG_SPI_SUN4I                                policy<{'arm64': 'n'}>
+CONFIG_SPI_SUN6I                                policy<{'arm64': 'm'}>
+CONFIG_SPI_SYNQUACER                            policy<{'arm64': 'm'}>
+CONFIG_SPI_MXIC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_TEGRA114                             policy<{'armhf-generic': 'm'}>
+CONFIG_SPI_TEGRA20_SFLASH                       policy<{'armhf-generic': 'm'}>
+CONFIG_SPI_TEGRA20_SLINK                        policy<{'armhf-generic': 'm'}>
+CONFIG_SPI_THUNDERX                             policy<{'arm64': 'm'}>
+CONFIG_SPI_TOPCLIFF_PCH                         policy<{'i386': 'm'}>
+CONFIG_SPI_UNIPHIER                             policy<{'armhf': 'm'}>
+CONFIG_SPI_XCOMM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_XILINX                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SPI_XLP                                  policy<{'arm64': 'm'}>
+CONFIG_SPI_ZYNQMP_GQSPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_SPIDEV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_LOOPBACK_TEST                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_TLE62X0                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_SLAVE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SPI_SLAVE_TIME                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> SPMI support
+CONFIG_SPMI                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SPMI_MSM_PMIC_ARB                        policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Serial ATA and Parallel ATA drivers (libata)
+CONFIG_ATA                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ATA_VERBOSE_ERROR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATA_ACPI                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SATA_ZPODD                               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SATA_PMP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SATA_AHCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_MOBILE_LPM_POLICY                   policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'i386': '3', 'ppc64el': '3', }>
+CONFIG_SATA_AHCI_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AHCI_BRCM                                policy<{'arm64': 'm'}>
+CONFIG_AHCI_DM816                               policy<{'armhf': 'm'}>
+CONFIG_AHCI_IMX                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_AHCI_CEVA                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_AHCI_MTK                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_AHCI_MVEBU                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_AHCI_SUNXI                               policy<{'arm64': 'n'}>
+CONFIG_AHCI_TEGRA                               policy<{'armhf-generic': 'm'}>
+CONFIG_AHCI_XGENE                               policy<{'arm64': 'm'}>
+CONFIG_AHCI_QORIQ                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_AHCI_SEATTLE                        policy<{'arm64': 'm'}>
+CONFIG_SATA_INIC162X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_ACARD_AHCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_SIL24                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_SATA_AHCI_PLATFORM                       note<boot essential on highbank>
+
+# Menu: Device Drivers >> Serial ATA and Parallel ATA drivers (libata) >> ATA SFF support (for legacy IDE and PATA)
+CONFIG_ATA_SFF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PDC_ADMA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_QSTOR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_SX4                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_CMD640_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_ISAPNP                              policy<{'i386': 'm'}>
+CONFIG_PATA_MPIIX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_NS87410                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_OPTI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_PCMCIA                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PATA_PLATFORM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_OF_PLATFORM                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_QDI                                 policy<{'i386': 'm'}>
+CONFIG_PATA_RZ1000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_WINBOND_VLB                         policy<{'i386': 'm'}>
+CONFIG_PATA_LEGACY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Serial ATA and Parallel ATA drivers (libata) >> ATA SFF support (for legacy IDE and PATA) >> ATA BMDMA support
+CONFIG_ATA_BMDMA                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ATA_PIIX                                 policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm', }>
+CONFIG_SATA_DWC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_DWC_OLD_DMA                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SATA_DWC_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SATA_HIGHBANK                            policy<{'armhf': 'y'}>
+CONFIG_SATA_MV                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_NV                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_PROMISE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_RCAR                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SATA_SIL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_SIS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_SVW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_ULI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_VIA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SATA_VITESSE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_ALI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_AMD                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_ARTOP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_ATIIXP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_ATP867X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_CMD64X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_CS5520                              policy<{'i386': 'm'}>
+CONFIG_PATA_CS5530                              policy<{'i386': 'm'}>
+CONFIG_PATA_CS5535                              policy<{'i386': 'm'}>
+CONFIG_PATA_CS5536                              policy<{'i386': 'm'}>
+CONFIG_PATA_CYPRESS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_EFAR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_HPT366                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_HPT37X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_HPT3X2N                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_HPT3X3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_HPT3X3_DMA                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PATA_IMX                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PATA_IT8213                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_IT821X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_JMICRON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_MARVELL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_NETCELL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_NINJA32                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_NS87415                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_OLDPIIX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_OPTIDMA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_PDC2027X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_PDC_OLD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_RADISYS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_RDC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_SC1200                              policy<{'i386': 'm'}>
+CONFIG_PATA_SCH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_SERVERWORKS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_SIL680                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_SIS                                 policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm', }>
+CONFIG_PATA_TOSHIBA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_TRIFLEX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_VIA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_WINBOND                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_PATA_ACPI                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ATA_GENERIC                              policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm', }>
+#
+CONFIG_SATA_HIGHBANK                            mark<ENFORCED> note<LP:1703430>
+CONFIG_PATA_HPT3X3_DMA                          note<DMA mode is documented problematic>
+CONFIG_ATA_PIIX                                 mark<ENFORCED> note<LP:1627324>
+
+# Menu: Device Drivers >> Sonics Silicon Backplane support
+CONFIG_SSB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SSB_PCIHOST                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SSB_PCMCIAHOST                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SSB_SDIOHOST                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SSB_DRIVER_PCICORE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SSB_DRIVER_GPIO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Sony MemoryStick card support
+CONFIG_MEMSTICK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEMSTICK_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MEMSTICK_UNSAFE_RESUME                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MSPRO_BLOCK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MS_BLOCK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEMSTICK_TIFM_MS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEMSTICK_JMICRON_38X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEMSTICK_R592                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEMSTICK_REALTEK_PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MEMSTICK_REALTEK_USB                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Sound card support
+CONFIG_SOUND                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SOUND_OSS_CORE_PRECLAIM                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_SOUND                                    note<not autoloadable on omap>
+CONFIG_SOUND_OSS_CORE_PRECLAIM                  mark<ENFORCED> note<LP#1105230 LP#1385510>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture
+CONFIG_SND                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_OSSEMUL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_MIXER_OSS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_PCM_OSS                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_PCM_TIMER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HRTIMER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_DYNAMIC_MINORS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_MAX_CARDS                            policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', }>
+CONFIG_SND_SUPPORT_OLD_API                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_PROC_FS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_VERBOSE_PROCFS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_VERBOSE_PRINTK                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_HDA_PREALLOC_SIZE                    policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64', }>
+CONFIG_SND_XEN_FRONTEND                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+#
+CONFIG_SND                                      note<not autoloadable on omap>
+CONFIG_SND_PCM_OSS                              note<deprecated in favour of pulseaudio emulation>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support
+CONFIG_SND_SOC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AMD_ACP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AMD_ACP3x                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_AMD_RENOIR                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_AMD_RENOIR_MACH                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_BCM2835_SOC_I2S                      policy<{'arm64': 'm'}>
+CONFIG_SND_DESIGNWARE_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_SND_DESIGNWARE_PCM                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_SND_I2S_HI6210_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_KIRKWOOD_SOC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT2701                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_MT6797                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT6797_MT6351                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT8183                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT8183_DA7219_MAX98357A          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MTK_BTCVSD                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_QCOM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_STORM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_APQ8016_SBC                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MSM8996                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_SDM845                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_SPRD                             policy<{'arm64': 'm'}>
+CONFIG_SND_SOC_SPRD_MCDT                        policy<{'arm64': 'y'}>
+CONFIG_SND_SOC_XILINX_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_XILINX_SPDIF                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_XTFPGA_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ZX_TDM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_SND_SIMPLE_CARD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AUDIO_GRAPH_CARD                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_SND_SOC                                  note<not autoloadable on omap>
+CONFIG_SND_SOC_AMD_RENOIR                       mark<ENFORCED> note<LP:1881046>
+CONFIG_SND_SOC_AMD_RENOIR_MACH                  mark<ENFORCED> note<LP:1881046>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> ASoC support for Amlogic platforms
+CONFIG_SND_MESON_AXG_FRDDR                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TODDR                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TDMIN                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TDMOUT                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_SOUND_CARD                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_SPDIFOUT                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_SPDIFIN                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_PDM                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_G12A_TOHDMITX                  policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> ASoC support for Mediatek MT8173 chip
+CONFIG_SND_SOC_MT8173                           policy<{'arm64': 'n', 'armhf': 'n'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> ASoC support for Rockchip
+CONFIG_SND_SOC_ROCKCHIP                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_I2S                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_PDM                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_SPDIF                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_MAX98090                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_RT5645                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RK3288_HDMI_ANALOG               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RK3399_GRU_SOUND                 policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> ASoC support for Samsung
+CONFIG_SND_SOC_SAMSUNG                          policy<{'armhf': 'm'}>
+CONFIG_SND_SAMSUNG_PCM                          policy<{'armhf': 'm'}>
+CONFIG_SND_SAMSUNG_SPDIF                        policy<{'armhf': 'm'}>
+CONFIG_SND_SAMSUNG_I2S                          policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994              policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF               policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SMDK_WM8994_PCM                  policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SNOW                             policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_ODROID                           policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631           policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SAMSUNG_TM2_WM5110               policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> ASoC support for UniPhier
+CONFIG_SND_SOC_UNIPHIER                         policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_AIO                     policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_LD11                    policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_PXS2                    policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_EVEA_CODEC              policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Allwinner SoC Audio support
+CONFIG_SND_SUN4I_CODEC                          policy<{'arm64': 'n'}>
+CONFIG_SND_SUN8I_CODEC                          policy<{'arm64': 'm'}>
+CONFIG_SND_SUN8I_CODEC_ANALOG                   policy<{'arm64': 'm'}>
+CONFIG_SND_SUN50I_CODEC_ANALOG                  policy<{'arm64': 'm'}>
+CONFIG_SND_SUN4I_I2S                            policy<{'arm64': 'n'}>
+CONFIG_SND_SUN4I_SPDIF                          policy<{'arm64': 'n'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Audio support for Imagination Technologies designs
+CONFIG_SND_SOC_IMG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_SOC_IMG_I2S_IN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_IMG_I2S_OUT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_IMG_PARALLEL_OUT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_IMG_SPDIF_IN                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_IMG_SPDIF_OUT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Audio support for Texas Instruments SoCs
+CONFIG_SND_SOC_DAVINCI_MCASP                    policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_OMAP_DMIC                        policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP_MCBSP                       policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_OMAP_MCPDM                       policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_NOKIA_RX51                       policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP3_PANDORA                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP3_TWL4030                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP_ABE_TWL6040                 policy<{'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Audio support for Texas Instruments SoCs >> DM365 codec select
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> CODEC drivers
+CONFIG_SND_SOC_AC97_CODEC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ADAU1701                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ADAU1761_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ADAU1761_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ADAU7002                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK4104                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK4118                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK4458                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK4554                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK4613                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK4642                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK5386                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_AK5558                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ALC5623                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_BD28623                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_BT_SCO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CROS_EC_CODEC                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_CS35L32                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS35L33                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS35L34                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS35L35                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS35L36                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS42L42                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS42L51_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS42L52                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS42L56                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS42L73                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS4265                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS4270                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS4271_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS4271_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS42XX8_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS43130                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS4341                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS4349                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CS53L30                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_CX2072X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_DMIC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ES7134                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ES7241                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ES8316                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ES8328_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ES8328_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_GTM601                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_INNO_RK3036                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_LOCHNAGAR_SC                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX98088                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX98357A                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX98504                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX9867                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX98927                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX98373                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX9860                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM1681                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM1789_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM179X_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM179X_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM186X_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM186X_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM3060_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM3060_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM3168A_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM3168A_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM512x_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_PCM512x_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_RK3328                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_RT5616                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_RT5631                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SGTL5000                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SPDIF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SSM2305                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SSM2602_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SSM2602_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SSM4567                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_STA32X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_STA350                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_STI_SAS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TAS2552                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TAS5086                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TAS571X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TAS5720                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TAS6424                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TDA7419                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TFA9879                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TLV320AIC23_I2C                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TLV320AIC23_SPI                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TLV320AIC31XX                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TLV320AIC32X4_I2C                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_SND_SOC_TLV320AIC32X4_SPI                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', }>
+CONFIG_SND_SOC_TLV320AIC3X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TS3A227E                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TSCS42XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TSCS454                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_UDA1334                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WCD9335                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8510                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8523                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8524                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8580                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8711                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8728                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8731                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8737                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8741                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8750                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8753                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8770                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8776                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8782                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8804_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8804_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8903                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8904                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8960                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8962                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8974                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8978                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_WM8985                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_ZX_AUD96P22                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MAX9759                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MT6351                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MT6358                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_NAU8540                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_NAU8810                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_NAU8822                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_NAU8824                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_TPA6130A2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_SND_SOC_SGTL5000                         flag<REVIEW>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Intel ASoC SST drivers
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_INTEL_HASWELL                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE                    policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_SKL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_APL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_GLK                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CNL                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CFL                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CML_H                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CML_LP                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      policy<{'amd64': 'n', 'i386': 'n'}>
+#
+CONFIG_SND_SOC_INTEL_SKYLAKE                    mark<ENFORCED> note<deprecated>
+CONFIG_SND_SOC_INTEL_CNL                        mark<ENFORCED> note<deprecated>
+CONFIG_SND_SOC_INTEL_CFL                        mark<ENFORCED> note<deprecated>
+CONFIG_SND_SOC_INTEL_CML_H                      mark<ENFORCED> note<deprecated>
+CONFIG_SND_SOC_INTEL_CML_LP                     mark<ENFORCED> note<deprecated>
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      mark<ENFORCED> note<deprecated>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Intel ASoC SST drivers >> Intel Machine drivers
+CONFIG_SND_SOC_INTEL_MACH                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_INTEL_HASWELL_MACH               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BROADWELL_MACH             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> STMicroelectronics STM32 SOC audio support
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale CPUs
+CONFIG_SND_SOC_FSL_ASRC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_FSL_SAI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_FSL_AUDMIX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_FSL_SSI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_FSL_SPDIF                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_FSL_ESAI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_FSL_MICFIL                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_IMX_AUDMUX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_SND_SOC_FSL_SSI                          flag<REVIEW>
+CONFIG_SND_SOC_IMX_AUDMUX                       flag<REVIEW>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale CPUs >> SoC Audio for Freescale PowerPC CPUs
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale CPUs >> SoC Audio for Freescale i.MX CPUs
+CONFIG_SND_IMX_SOC                              policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_SND_SOC_EUKREA_TLV320                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_ES8328                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_SGTL5000                     policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_SND_SOC_IMX_SPDIF                        policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_MC13783                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_FSL_ASOC_CARD                    policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_AUDMIX                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale MXS CPUs
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for the Atmel System-on-Chip
+CONFIG_SND_ATMEL_SOC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_MIKROE_PROTO                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for the Intel PXA2xx chip
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for the Tegra System-on-Chip
+CONFIG_SND_SOC_TEGRA                            policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_AC97                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_DAS                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_I2S                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_SPDIF                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA30_AHUB                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA30_I2S                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_RT5640                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_WM8753                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_WM8903                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_WM9712                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_TRIMSLICE                  policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_ALC5632                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_MAX98090                   policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_RT5677                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_SGTL5000                   policy<{'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio support for Renesas SoCs
+CONFIG_SND_SOC_SH4_FSI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RCAR                             policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio support for Ux500 platform
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio support for the Cirrus Logic EP93xx series
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Sound Open Firmware Support
+CONFIG_SND_SOC_SOF_TOPLEVEL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_SOC_SOF_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SOF_ACPI                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_OF                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_SOC_SOF_IMX_TOPLEVEL                 policy<{'arm64': 'y'}>
+CONFIG_SND_SOC_SOF_IMX8_SUPPORT                 policy<{'arm64': 'y'}>
+#
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              mark<ENFORCED> note<LP:1848490>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Sound Open Firmware Support >> SOF debugging features
+CONFIG_SND_SOC_SOF_DEBUG                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Sound Open Firmware Support >> SOF support for Intel audio DSPs
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_LINK                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC        policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC        mark<ENFORCED> note<LP:#1855666>
+CONFIG_SND_SOC_SOF_HDA_LINK                     mark<ENFORCED> note<LP:1848490>
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC              mark<ENFORCED> note<LP:1848490>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ARM sound devices
+CONFIG_SND_ARM                                  policy<{'armhf': 'y'}>
+CONFIG_SND_ARMAACI                              policy<{'armhf': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Apple Onboard Audio driver
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Atmel devices (AT91)
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> FireWire sound devices
+CONFIG_SND_FIREWIRE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_DICE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_OXFW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ISIGHT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_FIREWORKS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_BEBOB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_FIREWIRE_DIGI00X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_FIREWIRE_TASCAM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_FIREWIRE_MOTU                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_FIREFACE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> GSC sound devices
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Generic sound devices
+CONFIG_SND_DRIVERS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_PCSP                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_DUMMY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ALOOP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_VIRMIDI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_MTPAV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_MTS64                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SERIAL_U16550                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_MPU401                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_PORTMAN2X4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AC97_POWER_SAVE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT              policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> HD-Audio
+CONFIG_SND_HDA_INTEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_TEGRA                            policy<{'armhf-generic': 'm'}>
+CONFIG_SND_HDA_HWDEP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HDA_RECONFIG                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HDA_INPUT_BEEP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HDA_INPUT_BEEP_MODE                  policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_SND_HDA_PATCH_LOADER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HDA_CODEC_REALTEK                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_ANALOG                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_SIGMATEL                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_VIA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_HDMI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_CIRRUS                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_CONEXANT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_CA0110                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_CA0132                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_CA0132_DSP                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HDA_CODEC_CMEDIA                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_CODEC_SI3054                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_GENERIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT               policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', }>
+#
+CONFIG_SND_HDA_RECONFIG                         note<allows fixes to be tested live>
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT               note<LP:1804265>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ISA sound devices
+CONFIG_SND_ISA                                  policy<{'i386': 'y'}>
+CONFIG_SND_ADLIB                                policy<{'i386': 'm'}>
+CONFIG_SND_AD1816A                              policy<{'i386': 'm'}>
+CONFIG_SND_AD1848                               policy<{'i386': 'm'}>
+CONFIG_SND_ALS100                               policy<{'i386': 'm'}>
+CONFIG_SND_AZT1605                              policy<{'i386': 'm'}>
+CONFIG_SND_AZT2316                              policy<{'i386': 'm'}>
+CONFIG_SND_AZT2320                              policy<{'i386': 'm'}>
+CONFIG_SND_CMI8328                              policy<{'i386': 'm'}>
+CONFIG_SND_CMI8330                              policy<{'i386': 'm'}>
+CONFIG_SND_CS4231                               policy<{'i386': 'm'}>
+CONFIG_SND_CS4236                               policy<{'i386': 'm'}>
+CONFIG_SND_ES1688                               policy<{'i386': 'm'}>
+CONFIG_SND_ES18XX                               policy<{'i386': 'm'}>
+CONFIG_SND_SC6000                               policy<{'i386': 'm'}>
+CONFIG_SND_GUSCLASSIC                           policy<{'i386': 'm'}>
+CONFIG_SND_GUSEXTREME                           policy<{'i386': 'm'}>
+CONFIG_SND_GUSMAX                               policy<{'i386': 'm'}>
+CONFIG_SND_INTERWAVE                            policy<{'i386': 'm'}>
+CONFIG_SND_INTERWAVE_STB                        policy<{'i386': 'm'}>
+CONFIG_SND_JAZZ16                               policy<{'i386': 'm'}>
+CONFIG_SND_OPL3SA2                              policy<{'i386': 'm'}>
+CONFIG_SND_OPTI92X_AD1848                       policy<{'i386': 'm'}>
+CONFIG_SND_OPTI92X_CS4231                       policy<{'i386': 'm'}>
+CONFIG_SND_OPTI93X                              policy<{'i386': 'm'}>
+CONFIG_SND_MIRO                                 policy<{'i386': 'm'}>
+CONFIG_SND_SB8                                  policy<{'i386': 'm'}>
+CONFIG_SND_SB16                                 policy<{'i386': 'm'}>
+CONFIG_SND_SBAWE                                policy<{'i386': 'm'}>
+CONFIG_SND_SB16_CSP                             policy<{'i386': 'y'}>
+CONFIG_SND_SSCAPE                               policy<{'i386': 'm'}>
+CONFIG_SND_WAVEFRONT                            policy<{'i386': 'm'}>
+CONFIG_SND_MSND_PINNACLE                        policy<{'i386': 'm'}>
+CONFIG_SND_MSND_CLASSIC                         policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> MIPS sound devices
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PCI sound devices
+CONFIG_SND_PCI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_AD1889                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ALS300                               policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ALS4000                              policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ALI5451                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ASIHPI                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_ATIIXP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ATIIXP_MODEM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AU8810                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AU8820                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AU8830                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AW2                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_AZT3328                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_BT87X                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_BT87X_OVERCLOCK                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_CA0106                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_CMIPCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_OXYGEN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_CS4281                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_CS46XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_CS46XX_NEW_DSP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_CS5530                               policy<{'i386': 'm'}>
+CONFIG_SND_CS5535AUDIO                          policy<{'i386': 'm'}>
+CONFIG_SND_CTXFI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_DARLA20                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_GINA20                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_LAYLA20                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_DARLA24                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_GINA24                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_LAYLA24                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_MONA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_MIA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ECHO3G                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INDIGO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INDIGOIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INDIGODJ                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INDIGOIOX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INDIGODJX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_EMU10K1                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_EMU10K1X                             policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ENS1370                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ENS1371                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ES1938                               policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ES1968                               policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ES1968_INPUT                         policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_SND_ES1968_RADIO                         policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_SND_FM801                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_FM801_TEA575X_BOOL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_HDSP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_HDSPM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_ICE1712                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ICE1724                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INTEL8X0                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_INTEL8X0M                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_KORG1212                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_LOLA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_LX6464ES                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_MAESTRO3                             policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_MAESTRO3_INPUT                       policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_SND_MIXART                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_NM256                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_PCXHR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_RIPTIDE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_RME32                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_RME96                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_RME9652                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SIS7019                              policy<{'i386': 'm'}>
+CONFIG_SND_SONICVIBES                           policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_TRIDENT                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_VIA82XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_VIA82XX_MODEM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_VIRTUOSO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_VX222                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_YMFPCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PCMCIA sound devices
+CONFIG_SND_PCMCIA                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_VXPOCKET                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_PDAUDIOCF                            policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PowerPC sound devices
+CONFIG_SND_PPC                                  policy<{'ppc64el': 'y'}>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> SPI sound devices
+CONFIG_SND_SPI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> SUPERH sound devices
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Sequencer support
+CONFIG_SND_SEQUENCER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SEQ_DUMMY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_SEQUENCER_OSS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SND_SEQ_HRTIMER_DEFAULT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Sparc sound devices
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> USB sound devices
+CONFIG_SND_USB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_USB_AUDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_UA101                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_USX2Y                            policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_CAIAQ                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_CAIAQ_INPUT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_SND_USB_US122L                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_USB_6FIRE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_HIFACE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_BCD2000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_POD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_PODHD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_TONEPORT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SND_USB_VARIAX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> X86 sound devices
+CONFIG_SND_X86                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HDMI_LPE_AUDIO                           policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> SoundWire support
+CONFIG_SOUNDWIRE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SOUNDWIRE_INTEL                          policy<{'amd64': 'm', 'i386': 'm'}>
+#
+CONFIG_SOUNDWIRE                                mark<ENFORCED> note<LP:1855685>
+
+# Menu: Device Drivers >> Staging drivers
+CONFIG_STAGING                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PRISM2_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192U                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8723BS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_R8712U                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_R8188EU                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_88EU_AP_MODE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RTS5208                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VT6655                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VT6656                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_SM750                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EMXX                                 policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_STAGING_BOARD                            policy<{'arm64': 'n', 'armhf': 'n', }>
+CONFIG_LTE_GDM724X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FIREWIRE_SERIAL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_FWTTY_MAX_TOTAL_PORTS                    policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64', }>
+CONFIG_FWTTY_MAX_CARD_PORTS                     policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', }>
+CONFIG_GS_FPGABOOT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMMON_CLK_XLNX_CLKWZRD                  policy<{'arm64': 'n', 'armhf': 'n', }>
+CONFIG_FSL_DPAA2                                policy<{'arm64': 'y'}>
+CONFIG_FSL_DPAA2_ETHSW                          policy<{'arm64': 'm'}>
+CONFIG_WILC1000_SDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WILC1000_SPI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_WILC1000_HW_OOB_INTR                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_KS7010                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GREYBUS_AUDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_BOOTROM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_FIRMWARE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_HID                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_LIGHT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_LOG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_LOOPBACK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_POWER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_RAW                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_VIBRATOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PI433                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_XIL_AXIS_FIFO                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_WUSB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_WUSB_CBAF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_WUSB_CBAF_DEBUG                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_WHCI_HCD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HWA_HCD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_QLGE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_STAGING                                  flag<REVIEW>
+
+# Menu: Device Drivers >> Staging drivers >> Android
+CONFIG_ASHMEM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ANDROID_VSOC                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Staging drivers >> Android >> Ion Memory Manager
+CONFIG_ION                                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Staging drivers >> Broadcom VideoCore support
+CONFIG_BCM_VIDEOCORE                            policy<{'arm64': 'm'}>
+CONFIG_BCM2835_VCHIQ                            policy<{'arm64': 'm'}>
+CONFIG_SND_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_VIDEO_BCM2835                            policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> Daktronics KPC Device support
+CONFIG_KPC2000                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_KPC2000_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KPC2000_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KPC2000_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_KPC2000_DMA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi)
+CONFIG_COMEDI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB               policy<{'amd64': '2048', 'arm64': '2048', 'armhf': '2048', 'i386': '2048', 'ppc64el': '2048', }>
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB            policy<{'amd64': '20480', 'arm64': '20480', 'armhf': '20480', 'i386': '20480', 'ppc64el': '20480', }>
+CONFIG_COMEDI_8255_SA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_KCOMEDILIB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi ISA and PC/104 drivers
+CONFIG_COMEDI_ISA_DRIVERS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_COMEDI_PCL711                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCL724                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCL726                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCL730                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCL812                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCL816                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCL818                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCM3724                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_DIO200_ISA                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_PC236_ISA                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_PC263_ISA                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_RTI800                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_RTI802                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAC02                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS16M1                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS08_ISA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS16                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS800                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS1800                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS6402                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT2801                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT2811                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT2814                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT2815                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT2817                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT282X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DMM32AT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_FL512                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AIO_AIO12_8                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AIO_IIRO_16                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_II_PCI20KC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_C6XDIGIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_MPC624                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADQ12B                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_AT_A2150                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_AT_AO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_ATMIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_ATMIO16D                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_LABPC_ISA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCMAD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCMDA12                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCMMIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PCMUIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_MULTIQ3                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_S526                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi PCI drivers
+CONFIG_COMEDI_PCI_DRIVERS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_8255_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_1032                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_1500                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_1516                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_1564                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_16XX                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_2032                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_2200                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_3120                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_3501                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADDI_APCI_3XXX                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADL_PCI6208                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADL_PCI7X3X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADL_PCI8164                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADL_PCI9111                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADL_PCI9118                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADV_PCI1710                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADV_PCI1720                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADV_PCI1723                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADV_PCI1724                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADV_PCI1760                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ADV_PCI_DIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_DIO200_PCI                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_PC236_PCI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_PC263_PCI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_PCI224                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_AMPLC_PCI230                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_CONTEC_PCI_DIO                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAS08_PCI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT3000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DYNA_PCI10XX                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_GSC_HPDI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_MF6X4                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ICP_MULTI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DAQBOARD2000                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_JR3_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_KE_COUNTER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_CB_PCIDAS64                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_CB_PCIDAS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_CB_PCIDDA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_CB_PCIMDAS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_CB_PCIMDDA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ME4000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_ME_DAQ                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_6527                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_65XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_660X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_670X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_LABPC_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_PCIDIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_PCIMIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_RTD520                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_S626                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi PCMCIA drivers
+CONFIG_COMEDI_PCMCIA_DRIVERS                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_CB_DAS16_CS                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_DAS08_CS                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_DAQ_700_CS                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_DAQ_DIO24_CS                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_LABPC_CS                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_MIO_CS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_QUATECH_DAQP_CS                   policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi USB drivers
+CONFIG_COMEDI_USB_DRIVERS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_DT9812                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_NI_USB6501                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_USBDUX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_USBDUXFAST                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_USBDUXSIGMA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_VMK80XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi misc drivers
+CONFIG_COMEDI_MISC_DRIVERS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_COMEDI_BOND                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_TEST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_PARPORT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_COMEDI_SSV_DNP                           policy<{'i386': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> Fieldbus Device Support
+CONFIG_FIELDBUS_DEV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HMS_ANYBUSS_BUS                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_ARCX_ANYBUS_CONTROLLER                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_HMS_PROFINET                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Gasket devices
+CONFIG_STAGING_GASKET_FRAMEWORK                 policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_STAGING_APEX_DRIVER                      policy<{'amd64': 'm', 'arm64': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> Greybus Bridged PHY Class drivers
+CONFIG_GREYBUS_BRIDGED_PHY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_GPIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_PWM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_SDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_UART                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Accelerometers
+CONFIG_ADIS16203                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADIS16240                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Active energy metering IC
+CONFIG_ADE7854                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADE7854_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADE7854_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Analog digital bi-direction converters
+CONFIG_ADT7316                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADT7316_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ADT7316_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Analog to digital converters
+CONFIG_AD7816                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7192                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7280                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Capacitance to digital converters
+CONFIG_AD7150                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD7746                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Direct Digital Synthesis
+CONFIG_AD9832                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AD9834                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Network Analyzer, Impedance Converters
+CONFIG_AD5933                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Resolver to digital converters
+CONFIG_AD2S1210                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> ISDN CAPI drivers
+CONFIG_HYSDN                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_HYSDN_CAPI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> Staging drivers >> ISDN CAPI drivers >> Active AVM cards
+CONFIG_CAPI_AVM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ISDN_DRV_AVMB1_B1ISA                     policy<{'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ISDN_DRV_AVMB1_T1ISA                     policy<{'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_AVM_CS                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_T1PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ISDN_DRV_AVMB1_C4                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> ISDN CAPI drivers >> Siemens Gigaset support
+CONFIG_ISDN_DRV_GIGASET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GIGASET_CAPI                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_GIGASET_BASE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GIGASET_M105                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GIGASET_M101                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GIGASET_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> Staging drivers >> MOST support
+CONFIG_MOST                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_CDEV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_NET                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_SOUND                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_VIDEO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_DIM2                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_I2C                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MOST_USB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Media staging drivers
+CONFIG_STAGING_MEDIA                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIDEO_ALLEGRO_DVT                        policy<{'arm64': 'm'}>
+CONFIG_VIDEO_IMX_MEDIA                          policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_MESON_VDEC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_OMAP4                              policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_SUNXI                              policy<{'arm64': 'y'}>
+CONFIG_TEGRA_VDE                                policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_IPU3_IMGU                          policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> SoC camera support
+
+# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> i.MX5/6/7 Media Sub devices
+CONFIG_VIDEO_IMX_CSI                            policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_IMX7_CSI                           policy<{'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> NV Tegra Embedded Controller SMBus Interface
+CONFIG_MFD_NVEC                                 policy<{'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_NVEC                            policy<{'armhf-generic': 'm'}>
+CONFIG_SERIO_NVEC_PS2                           policy<{'armhf-generic': 'm'}>
+CONFIG_NVEC_POWER                               policy<{'armhf-generic': 'm'}>
+CONFIG_NVEC_PAZ00                               policy<{'armhf-generic': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> Speakup console speech
+
+# Menu: Device Drivers >> Staging drivers >> Speakup console speech >> Speakup core
+CONFIG_SPEAKUP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_ACNTSA                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_ACNTPC                     policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_APOLLO                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_AUDPTR                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_BNS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_DECTLK                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_DECEXT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_DECPC                      policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_DTLK                       policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_KEYPC                      policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_LTLK                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_SOFT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_SPKOUT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_TXPRT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SPEAKUP_SYNTH_DUMMY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Support for rtllib wireless devices
+CONFIG_RTLLIB                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTLLIB_CRYPTO_CCMP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTLLIB_CRYPTO_TKIP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTLLIB_CRYPTO_WEP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_RTL8192E                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Support for small TFT LCD display modules
+CONFIG_FB_TFT                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_AGM1264K_FL                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_BD663474                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_HX8340BN                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_HX8347D                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_HX8353D                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_HX8357D                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9163                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9320                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9325                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9340                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9341                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9481                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ILI9486                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_PCD8544                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_RA8875                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_S6D02A1                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_S6D1121                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_SH1106                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_SSD1289                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_SSD1305                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_SSD1306                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_SSD1331                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_SSD1351                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ST7735R                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_ST7789V                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_TINYLCD                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_TLS8204                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_UC1611                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_UC1701                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_UPD161704                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_FB_TFT_WATTEROTT                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Ultra Wideband devices
+CONFIG_UWB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_UWB_HWA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_UWB_WHCI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_UWB_I1480U                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Staging drivers >> Unisys SPAR driver support
+CONFIG_UNISYSSPAR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_UNISYS_VISORNIC                          policy<{'amd64': 'm'}>
+CONFIG_UNISYS_VISORINPUT                        policy<{'amd64': 'm'}>
+CONFIG_UNISYS_VISORHBA                          policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> Staging drivers >> exFAT fs support
+CONFIG_EXFAT_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_EXFAT_DONT_MOUNT_VFAT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_EXFAT_DISCARD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_EXFAT_DELAYED_SYNC                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_EXFAT_KERNEL_DEBUG                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_EXFAT_DEBUG_MSG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_EXFAT_DEFAULT_CODEPAGE                   policy<{'amd64': '437', 'arm64': '437', 'armhf': '437', 'i386': '437', 'ppc64el': '437', }>
+CONFIG_EXFAT_DEFAULT_IOCHARSET                  policy<{'amd64': '"utf8"', 'arm64': '"utf8"', 'armhf': '"utf8"', 'i386': '"utf8"', 'ppc64el': '"utf8"', }>
+
+# Menu: Device Drivers >> TEE drivers
+CONFIG_OPTEE                                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OPTEE_SHM_NUM_PRIV_PAGES                 policy<{'arm64': '1', 'armhf': '1'}>
+
+# Menu: Device Drivers >> TI VLYNQ
+
+# Menu: Device Drivers >> USB support
+CONFIG_USB_SUPPORT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_USB_LED_TRIG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ULPI_BUS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CONN_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_PCI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_UHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CHIPIDEA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CHIPIDEA_UDC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CHIPIDEA_HOST                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ROLE_SWITCH                          policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ROLES_INTEL_XHCI                     policy<{'amd64': 'm', 'i386': 'm'}>
+#
+CONFIG_USB_UHCI_HCD                             mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB
+CONFIG_USB                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ANNOUNCE_NEW_DEVICES                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_DEFAULT_PERSIST                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_DYNAMIC_MINORS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_OTG                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_OTG_WHITELIST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_OTG_BLACKLIST_HUB                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_LEDS_TRIGGER_USBPORT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_AUTOSUSPEND_DELAY                    policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2', }>
+CONFIG_USB_MON                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_C67X00_HCD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_OXU210HP_HCD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ISP116X_HCD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_FOTG210_HCD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MAX3421_HCD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_U132_HCD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SL811_HCD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SL811_HCD_ISO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_SL811_CS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_USB_R8A66597_HCD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_RENESAS_USBHS_HCD                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_IMX21_HCD                            policy<{'armhf-generic': 'm'}>
+CONFIG_USB_HCD_BCMA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HCD_SSB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HCD_TEST_MODE                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_RENESAS_USBHS                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_ACM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_PRINTER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_WDM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_TMC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MDC800                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MICROTEK                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MTU3                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_MTU3_DEBUG                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_ISP1760                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_USS720                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EMI62                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EMI26                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ADUTUX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SEVSEG                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_LEGOTOWER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_LCD                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CYPRESS_CY7C63                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CYTHERM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_IDMOUSE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_FTDI_ELAN                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_APPLEDISPLAY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SISUSBVGA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_LD                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_TRANCEVIBRATOR                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_IOWARRIOR                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_TEST                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EHSET_TEST_FIXTURE                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ISIGHTFW                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_YUREX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EZUSB_FX2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HUB_USB251XB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HSIC_USB3503                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_HSIC_USB4604                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_LINK_LAYER_TEST                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CHAOSKEY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_USB_OTG                                  note<triggers breakage on x86 LP:1047527, LP:1411295>
+CONFIG_USB_OTG_WHITELIST                        note<OTG white/blacklists are disabled>
+CONFIG_USB_OTG_BLACKLIST_HUB                    note<OTG white/blacklists are disabled>
+CONFIG_USB_HCD_BCMA                             note<USB_{O,E}HCI_HCD_PLATFORM must be off on omap>
+CONFIG_USB_HCD_SSB                              note<USB_{O,E}HCI_HCD_PLATFORM must be off on omap>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> Cadence USB3 Dual-Role Controller
+CONFIG_USB_CDNS3                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CDNS3_GADGET                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CDNS3_HOST                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CDNS3_PCI_WRAP                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB2 DRD Core Support
+CONFIG_USB_DWC2                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_DWC2_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_DWC2_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_DWC2_TRACK_MISSED_SOFS               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB2 DRD Core Support >> DWC2 Mode Selection
+CONFIG_USB_DWC2_HOST                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_DWC2_PERIPHERAL                      policy<{'armhf': 'n'}>
+CONFIG_USB_DWC2_DUAL_ROLE                       policy<{'armhf': 'n'}>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB3 DRD Core Support
+CONFIG_USB_DWC3                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_DWC3_ULPI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_DWC3_OMAP                            policy<{'armhf': 'm'}>
+CONFIG_USB_DWC3_EXYNOS                          policy<{'armhf': 'm'}>
+CONFIG_USB_DWC3_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_USB_DWC3_HAPS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_DWC3_KEYSTONE                        policy<{'arm64': 'm'}>
+CONFIG_USB_DWC3_MESON_G12A                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_DWC3_OF_SIMPLE                       policy<{'arm64': 'm', 'armhf': 'm', }>
+CONFIG_USB_DWC3_QCOM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> DesignWare USB3 DRD Core Support >> DWC3 Mode Selection
+CONFIG_USB_DWC3_HOST                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_DWC3_GADGET                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_DWC3_DUAL_ROLE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> EHCI HCD (USB 2.0) support
+CONFIG_USB_EHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_EHCI_ROOT_HUB_TT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_EHCI_TT_NEWSCHED                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_EHCI_FSL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EHCI_MXC                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_USB_EHCI_HCD_NPCM7XX                     policy<{'armhf': 'm'}>
+CONFIG_USB_EHCI_HCD_OMAP                        policy<{'armhf': 'm'}>
+CONFIG_USB_EHCI_HCD_ORION                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_EHCI_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_USB_EHCI_HCD_PPC_OF                      policy<{'ppc64el': 'y'}>
+CONFIG_USB_EHCI_EXYNOS                          policy<{'armhf': 'y'}>
+CONFIG_USB_EHCI_HCD_PLATFORM                    policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'm', }>
+#
+CONFIG_USB_EHCI_HCD_PLATFORM                    mark<ENFORCED> note<Don't use the generic ehci/ohci code on omap, it doesn't work> flag<REVIEW>
+CONFIG_USB_EHCI_HCD                             mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> ISP1760 Mode Selection
+CONFIG_USB_ISP1760_HOST_ROLE                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_ISP1760_GADGET_ROLE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_ISP1760_DUAL_ROLE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> Inventra Highspeed Dual Role Controller
+CONFIG_USB_MUSB_HDRC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MUSB_SUNXI                           policy<{'arm64': 'm'}>
+CONFIG_USB_MUSB_TUSB6010                        policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_OMAP2PLUS                       policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_AM35X                           policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_DSPS                            policy<{'armhf': 'm'}>
+#
+CONFIG_USB_MUSB_HDRC                            note<not autoloadable on omap> flag<REVIEW>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> Inventra Highspeed Dual Role Controller >> Disable DMA (always use PIO)
+CONFIG_MUSB_PIO_ONLY                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> Inventra Highspeed Dual Role Controller >> MUSB Mode Selection
+CONFIG_USB_MUSB_HOST                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_MUSB_GADGET                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_MUSB_DUAL_ROLE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> MTU3 Mode Selection
+CONFIG_USB_MTU3_HOST                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_MTU3_GADGET                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_MTU3_DUAL_ROLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> OHCI HCD (USB 1.1) support
+CONFIG_USB_OHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_OHCI_HCD_OMAP3                       policy<{'armhf-generic': 'm'}>
+CONFIG_USB_OHCI_HCD_PPC_OF_BE                   policy<{'ppc64el': 'n'}>
+CONFIG_USB_OHCI_HCD_PPC_OF_LE                   policy<{'ppc64el': 'n'}>
+CONFIG_USB_OHCI_HCD_PCI                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_OHCI_EXYNOS                          policy<{'armhf': 'y'}>
+CONFIG_USB_OHCI_HCD_PLATFORM                    policy<{'amd64': 'y', 'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': 'n', 'i386': 'y', 'ppc64el': 'm', }>
+#
+CONFIG_USB_OHCI_HCD                             mark<ENFORCED>note<ensures USB 2.0/1.1 probe ordering>
+CONFIG_USB_OHCI_HCD_PPC_OF_LE                   flag<REVIEW>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB DSL modem support
+CONFIG_USB_ATM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SPEEDTOUCH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CXACRU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_UEAGLEATM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_XUSBATM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB Mass Storage support
+CONFIG_USB_STORAGE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_DEBUG                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_STORAGE_REALTEK                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REALTEK_AUTOPM                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_STORAGE_DATAFAB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_FREECOM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_ISD200                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_USBAT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_SDDR09                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_SDDR55                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_JUMPSHOT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_ALAUDA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_ONETOUCH                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_KARMA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_CYPRESS_ATACB                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_STORAGE_ENE_UB6250                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_UAS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB Serial Converter support
+CONFIG_USB_SERIAL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_GENERIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_SERIAL_SIMPLE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_AIRCABLE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_ARK3116                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_BELKIN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_CH341                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_WHITEHEAT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_CP210X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_CYPRESS_M8                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_EMPEG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_FTDI_SIO                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_VISOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_IPAQ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_IR                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_EDGEPORT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_EDGEPORT_TI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_F81232                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_F8153X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_GARMIN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_IPW                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_IUU                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_KEYSPAN_PDA                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_KEYSPAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_KLSI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_KOBIL_SCT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_MCT_U232                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_METRO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_MOS7720                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_MOS7715_PARPORT               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_SERIAL_MOS7840                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_MXUPORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_NAVMAN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_PL2303                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_OTI6858                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_QCAUX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_QUALCOMM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_SPCP8X5                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_SAFE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_SAFE_PADDED                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_SERIAL_SIERRAWIRELESS                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_SYMBOL                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_TI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_CYBERJACK                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_XIRCOM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_OPTION                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_OMNINET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_OPTICON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_XSENS_MT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_WISHBONE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_SSU100                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_QT2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_UPD78F0730                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SERIAL_DEBUG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_USB_SERIAL_DEBUG                         note<not actually debug>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB/IP support
+CONFIG_USBIP_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USBIP_VHCI_HCD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USBIP_VHCI_HC_PORTS                      policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+CONFIG_USBIP_VHCI_NR_HCS                        policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', }>
+CONFIG_USBIP_HOST                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USBIP_VUDC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USBIP_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Device Drivers >> USB support >> Support for Host-side USB >> xHCI HCD (USB 3.0) support
+CONFIG_USB_XHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_XHCI_DBGCAP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_XHCI_PLATFORM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_XHCI_HISTB                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_MTK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_MVEBU                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_RCAR                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_TEGRA                           policy<{'armhf-generic': 'm'}>
+#
+CONFIG_USB_XHCI_HCD                             mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
+CONFIG_USB_XHCI_DBGCAP                          note<LP:1730832>
+
+# Menu: Device Drivers >> USB support >> USB Gadget Support
+CONFIG_USB_GADGET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GADGET_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_GADGET_DEBUG_FILES                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_GADGET_DEBUG_FS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_GADGET_VBUS_DRAW                     policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2', }>
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS           policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2', }>
+CONFIG_U_SERIAL_CONSOLE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Gadget functions configurable through configfs
+CONFIG_USB_CONFIGFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CONFIGFS_SERIAL                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_ACM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_OBEX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_NCM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_ECM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_ECM_SUBSET                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_RNDIS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_EEM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_PHONET                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_MASS_STORAGE                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_LB_SS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_FS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_UAC1                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_UAC2                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_MIDI                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_HID                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_UVC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_PRINTER                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_CONFIGFS_F_TCM                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Gadget precomposed configurations
+CONFIG_USB_ZERO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_AUDIO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_GADGET_UAC1                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_GADGET_UAC1_LEGACY                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_ETH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ETH_RNDIS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ETH_EEM                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_G_NCM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GADGETFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MASS_STORAGE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GADGET_TARGET                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_SERIAL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MIDI_GADGET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_PRINTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_CDC_COMPOSITE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_NOKIA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_ACM_MS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_MULTI                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_G_MULTI_RNDIS                        policy<{'armhf': 'y'}>
+CONFIG_USB_G_MULTI_CDC                          policy<{'armhf': 'y'}>
+CONFIG_USB_G_HID                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_DBGP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_G_WEBCAM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Gadget precomposed configurations >> EHCI Debug Device mode
+CONFIG_USB_G_DBGP_PRINTK                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_G_DBGP_SERIAL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Gadget precomposed configurations >> Function Filesystem
+CONFIG_USB_FUNCTIONFS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_FUNCTIONFS_ETH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_FUNCTIONFS_RNDIS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_FUNCTIONFS_GENERIC                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Peripheral Controller
+CONFIG_USB_FSL_USB2                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_USB_FUSB300                              policy<{'armhf-generic': 'm'}>
+CONFIG_USB_FOTG210_UDC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GR_UDC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_R8A66597                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_RENESAS_USBHS_UDC                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_RENESAS_USB3                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_PXA27X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MV_UDC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MV_U3D                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_SNP_UDC_PLAT                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_M66592                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_USB_BDC_UDC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_AMD5536UDC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET2272                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_NET2272_DMA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_NET2280                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GOKU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_EG20T                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_GADGET_XILINX                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_ASPEED_VHUB                          policy<{'armhf': 'm'}>
+CONFIG_USB_DUMMY_HCD                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_USB_M66592                               note<gadget device>
+CONFIG_USB_DUMMY_HCD                            flag<TESTING>
+
+# Menu: Device Drivers >> USB support >> USB Physical Layer drivers
+CONFIG_NOP_USB_XCEIV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AM335X_PHY_USB                           policy<{'armhf': 'm'}>
+CONFIG_TWL6030_USB                              policy<{'armhf': 'm'}>
+CONFIG_USB_GPIO_VBUS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TAHVO_USB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TAHVO_USB_HOST_BY_DEFAULT                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_USB_ISP1301                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_USB_MXS_PHY                              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_USB_TEGRA_PHY                            policy<{'armhf-generic': 'm'}>
+CONFIG_USB_ULPI                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+#
+CONFIG_NOP_USB_XCEIV                            note<boot essential on omap/highbank>
+
+# Menu: Device Drivers >> USB support >> USB Type-C Support
+CONFIG_TYPEC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TYPEC_UCSI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_UCSI_CCG                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_UCSI_ACPI                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TYPEC_TPS6598X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> USB support >> USB Type-C Support >> USB Type-C Alternate Mode drivers
+CONFIG_TYPEC_DP_ALTMODE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TYPEC_NVIDIA_ALTMODE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> USB support >> USB Type-C Support >> USB Type-C Multiplexer/DeMultiplexer Switch support
+CONFIG_TYPEC_MUX_PI3USB30532                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> USB support >> USB Type-C Support >> USB Type-C Port Controller Manager
+CONFIG_TYPEC_TCPM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TYPEC_TCPCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TYPEC_RT1711H                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_TYPEC_FUSB302                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Userspace I/O drivers
+CONFIG_UIO                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_UIO_CIF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_PDRV_GENIRQ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_DMEM_GENIRQ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_AEC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_SERCOS3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_PCI_GENERIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_NETX                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_FSL_ELBC_GPCM                        policy<{'ppc64el': 'm'}>
+CONFIG_UIO_FSL_ELBC_GPCM_NETX5152               policy<{'ppc64el': 'n'}>
+CONFIG_UIO_PRUSS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_MF624                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_HV_GENERIC                           policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> VFIO Non-Privileged userspace driver framework
+CONFIG_VFIO                                     policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_VFIO_NOIOMMU                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VFIO_PCI                                 policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_VFIO_PCI_VGA                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VFIO_PCI_IGD                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VFIO_MDEV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VFIO_MDEV_DEVICE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_VFIO                                     mark<ENFORCED>note<LP#1636733>
+CONFIG_VFIO_PCI                                 mark<ENFORCED>note<LP#1636733>
+
+# Menu: Device Drivers >> VFIO Non-Privileged userspace driver framework >> VFIO support for platform devices
+CONFIG_VFIO_PLATFORM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_AMBA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_PLATFORM_AMDXGBE_RESET              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_PLATFORM_BCMFLEXRM_RESET            policy<{'arm64': 'm'}>
+
+# Menu: Device Drivers >> VME bridge support
+CONFIG_VME_BUS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VME_CA91CX42                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VME_TSI148                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VME_FAKE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VMIVME_7805                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VME_USER                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Device Drivers >> Virtio drivers
+CONFIG_VIRTIO_MENU                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_PCI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_PCI_LEGACY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_PMEM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_VIRTIO_BALLOON                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_INPUT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_MMIO                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+#
+CONFIG_VIRTIO_PCI                               flag<REVIEW>
+CONFIG_VIRTIO_MMIO                              note<LP:1557689>
+
+# Menu: Device Drivers >> Virtualization drivers
+CONFIG_VIRT_DRIVERS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VBOXGUEST                                policy<{'amd64': 'n', 'i386': 'n'}>
+#
+CONFIG_VBOXGUEST                                note<LP:1796647>
+
+# Menu: Device Drivers >> Voltage and Current Regulator Support
+CONFIG_REGULATOR                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_REGULATOR_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_REGULATOR_FIXED_VOLTAGE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_VIRTUAL_CONSUMER               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_USERSPACE_CONSUMER             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_88PG86X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_88PM800                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_88PM8607                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_ACT8865                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_ACT8945A                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_AD5398                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_ANATOP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_AAT2870                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_AB3100                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_ARIZONA_LDO1                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_ARIZONA_MICSUPP                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_AS3711                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_AS3722                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_AXP20X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_BCM590XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_BD70528                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_BD718XX                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_BD9571MWV                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_CPCAP                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA903X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA9052                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA9055                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA9062                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA9063                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA9210                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_DA9211                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_FAN53555                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_GPIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_HI6421                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_HI6421V530                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_HI655X                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_ISL9305                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_ISL6271A                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LM363X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LOCHNAGAR                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP3971                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP3972                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP872X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP873X                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP8755                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP87565                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LP8788                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LTC3589                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_LTC3676                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX14577                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX1586                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX77620                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX77650                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8649                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8660                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8907                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8925                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8952                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8973                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8997                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX8998                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX77686                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX77693                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MAX77802                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MC13783                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MC13892                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MCP16502                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MT6311                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MT6323                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_MT6380                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_MT6397                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PALMAS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PBIAS                          policy<{'armhf': 'm'}>
+CONFIG_REGULATOR_PCAP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PCF50633                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PFUZE100                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PV88060                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PV88080                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PV88090                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_PWM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_QCOM_RPM                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_QCOM_RPMH                      policy<{'arm64': 'm'}>
+CONFIG_REGULATOR_QCOM_SMD_RPM                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_QCOM_SPMI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_RC5T583                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_RK808                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_RN5T618                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_RT5033                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_S2MPA01                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_S2MPS11                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_S5M8767                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_SC2731                         policy<{'arm64': 'm'}>
+CONFIG_REGULATOR_SKY81452                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_SLG51000                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_STPMIC1                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TI_ABB                         policy<{'armhf': 'y'}>
+CONFIG_REGULATOR_SY8106A                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_SY8824X                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS51632                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS6105X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS62360                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65023                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS6507X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65086                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65090                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65132                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65217                       policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_REGULATOR_TPS65218                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS6524X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS6586X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65910                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS65912                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TPS80031                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_TWL4030                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_UNIPHIER                       policy<{'armhf': 'm'}>
+CONFIG_REGULATOR_VCTRL                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_VEXPRESS                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_WM831X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_WM8350                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_WM8400                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_REGULATOR_WM8994                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+#
+CONFIG_REGULATOR_FIXED_VOLTAGE                  note<boot essential on arm>
+CONFIG_REGULATOR_TWL4030                        mark<ENFORCED> note<boot requisite for omap4>
+CONFIG_REGULATOR_TPS65217                       mark<ENFORCED> note<boot essential on AM335x>
+
+# Menu: Device Drivers >> Watchdog Timer Support
+CONFIG_WATCHDOG                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_CORE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_NOWAYOUT                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_OPEN_TIMEOUT                    policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_WATCHDOG_SYSFS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SOFT_WATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SOFT_WATCHDOG_PRETIMEOUT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BD70528_WATCHDOG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9052_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9055_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9063_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9062_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_WATCHDOG                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MENF21BMC_WATCHDOG                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MENZ069_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WDAT_WDT                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_WM831X_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WM8350_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_XILINX_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ZIIRAVE_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RAVE_SP_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MLX_WDT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_ARM_SP805_WATCHDOG                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SBSA_WATCHDOG                        policy<{'arm64': 'm'}>
+CONFIG_ARMADA_37XX_WATCHDOG                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CADENCE_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FTWDT010_WATCHDOG                        policy<{'armhf': 'm'}>
+CONFIG_S3C2410_WATCHDOG                         policy<{'armhf': 'm'}>
+CONFIG_DW_WATCHDOG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_OMAP_WATCHDOG                            policy<{'armhf': 'm'}>
+CONFIG_ORION_WATCHDOG                           policy<{'armhf': 'm'}>
+CONFIG_RN5T618_WATCHDOG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SUNXI_WATCHDOG                           policy<{'arm64': 'm'}>
+CONFIG_NPCM7XX_WATCHDOG                         policy<{'armhf': 'y'}>
+CONFIG_TWL4030_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TS4800_WATCHDOG                          policy<{'armhf-generic': 'm'}>
+CONFIG_MAX63XX_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MAX77620_WATCHDOG                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IMX2_WDT                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_SC_WDT                               policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX7ULP_WDT                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RETU_WATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TEGRA_WATCHDOG                           policy<{'armhf-generic': 'm'}>
+CONFIG_QCOM_WDT                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_GXBB_WATCHDOG                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_WATCHDOG                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MEDIATEK_WATCHDOG                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RENESAS_WDT                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RENESAS_RZAWDT                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ASPEED_WATCHDOG                          policy<{'armhf': 'y'}>
+CONFIG_STPMIC1_WATCHDOG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_UNIPHIER_WATCHDOG                        policy<{'armhf': 'm'}>
+CONFIG_RTD119X_WATCHDOG                         policy<{'arm64': 'y'}>
+CONFIG_SPRD_WATCHDOG                            policy<{'arm64': 'm'}>
+CONFIG_PM8916_WATCHDOG                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ACQUIRE_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ADVANTECH_WDT                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ALIM1535_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ALIM7101_WDT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EBC_C384_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_F71808E_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SP5100_TCO                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBC_FITPC2_WATCHDOG                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EUROTECH_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IB700_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IBMASR                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WAFER_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I6300ESB_WDT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IE6XX_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SCU_WATCHDOG                       policy<{'i386': 'y'}>
+CONFIG_INTEL_MID_WATCHDOG                       policy<{'i386': 'm'}>
+CONFIG_ITCO_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ITCO_VENDOR_SUPPORT                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IT8712F_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IT87_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HP_WATCHDOG                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HPWDT_NMI_DECODING                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_KEMPLD_WDT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SC1200_WDT                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCx200_WDT                               policy<{'i386': 'm'}>
+CONFIG_PC87413_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NV_TCO                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_60XX_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBC8360_WDT                              policy<{'i386': 'm'}>
+CONFIG_SBC7240_WDT                              policy<{'i386': 'm'}>
+CONFIG_CPU5_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SMSC_SCH311X_WDT                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SMSC37B787_WDT                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TQMX86_WDT                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIA_WDT                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_W83627HF_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_W83877F_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_W83977F_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MACHZ_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBC_EPX_C3_WATCHDOG                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_WDT                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NI903X_WDT                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NIC7018_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AHC1EC0_WDT                              policy<{'amd64': 'm'}>
+CONFIG_BCM2835_WDT                              policy<{'arm64': 'm'}>
+CONFIG_BCM7038_WDT                              policy<{'arm64': 'm'}>
+CONFIG_MEN_A21_WDT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_WATCHDOG_RTAS                            policy<{'ppc64el': 'm'}>
+CONFIG_DIAG288_WATCHDOG                         policy<{'s390x': 'm'}>
+CONFIG_XEN_WDT                                  policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_PCWATCHDOG                               policy<{'i386': 'm'}>
+CONFIG_MIXCOMWD                                 policy<{'i386': 'm'}>
+CONFIG_WDT                                      policy<{'i386': 'm'}>
+CONFIG_PCIPCWATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_WDTPCI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_USBPCWATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+
+# Menu: Device Drivers >> Watchdog Timer Support >> Enable watchdog pretimeout governors
+CONFIG_WATCHDOG_PRETIMEOUT_GOV                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Device Drivers >> Watchdog Timer Support >> Enable watchdog pretimeout governors >> Default Watchdog Pretimeout Governor
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Device Drivers >> X86 Platform Specific Device Drivers
+CONFIG_X86_PLATFORM_DEVICES                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACER_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACER_WIRELESS                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACERHDF                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ALIENWARE_WMI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_LAPTOP                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DCDBAS                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI_AIO                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI_LED                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_SMO8800                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_RBTN                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_RBU                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_UART_BACKLIGHT                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FUJITSU_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FUJITSU_TABLET                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AMILO_RFKILL                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPD_POCKET_FAN                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TC1100_WMI                               policy<{'i386': 'm'}>
+CONFIG_HP_ACCEL                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HP_WIRELESS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HP_WMI                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LG_LAPTOP                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MSI_LAPTOP                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PANASONIC_LAPTOP                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMPAL_LAPTOP                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SONY_LAPTOP                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SONYPI_COMPAT                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IDEAPAD_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SURFACE3_WMI                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_HDAPS                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MENLOW                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EEEPC_LAPTOP                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_NB_WMI                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EEEPC_WMI                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_WIRELESS                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TOPSTAR_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TOSHIBA_BT_RFKILL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TOSHIBA_HAPS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_CMPC                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_CHT_INT33FE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_INT0002_VGPIO                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_HID_EVENT                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_VBTN                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SCU_IPC                            policy<{'i386': 'y'}>
+CONFIG_INTEL_SCU_IPC_UTIL                       policy<{'i386': 'm'}>
+CONFIG_INTEL_MID_POWER_BUTTON                   policy<{'i386': 'm'}>
+CONFIG_INTEL_MFLD_THERMAL                       policy<{'i386': 'm'}>
+CONFIG_INTEL_IPS                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PMC_CORE                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IBM_RTL                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SAMSUNG_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_OAKTRAIL                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SAMSUNG_Q10                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_APPLE_GMUX                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_RST                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SMARTCONNECT                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PMC_IPC                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_BXTWC_PMIC_TMU                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SURFACE_PRO3_BUTTON                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SURFACE_3_BUTTON                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PUNIT_IPC                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_TELEMETRY                          policy<{'amd64': 'm'}>
+CONFIG_MLX_PLATFORM                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_TURBO_MAX_3                        policy<{'amd64': 'y'}>
+CONFIG_TOUCHSCREEN_DMI                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_CHTDC_TI_PWRBTN                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MRFLD_PWRBTN                       policy<{'i386': 'm'}>
+CONFIG_I2C_MULTI_INSTANTIATE                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_ATOMISP2_PM                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCENGINES_APU2                           policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> Dell SMBIOS driver
+CONFIG_DELL_SMBIOS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_SMBIOS_WMI                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DELL_SMBIOS_SMM                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DELL_LAPTOP                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> Intel Speed Select Technology interface support
+CONFIG_INTEL_SPEED_SELECT_INTERFACE             policy<{'amd64': 'm'}>
+
+# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> ThinkPad ACPI Laptop Extras
+CONFIG_THINKPAD_ACPI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THINKPAD_ACPI_DEBUGFACILITIES            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THINKPAD_ACPI_DEBUG                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_THINKPAD_ACPI_UNSAFE_LEDS                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_THINKPAD_ACPI_VIDEO                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL                policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> WMI
+CONFIG_ACPI_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WMI_BMOF                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_WMI_THUNDERBOLT                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_XIAOMI_WMI                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MSI_WMI                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PEAQ_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_TOSHIBA                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TOSHIBA_WMI                              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MXM_WMI                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HUAWEI_WMI                               policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Device Drivers >> Xen driver support
+CONFIG_XEN_BALLOON                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT         policy<{'amd64': '512', 'i386': '4'}>
+CONFIG_XEN_SCRUB_PAGES_DEFAULT                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_DEV_EVTCHN                           policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XENFS                                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_COMPAT_XENFS                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_SYS_HYPERVISOR                       policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_GNTDEV                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_GNTDEV_DMABUF                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_GRANT_DEV_ALLOC                      policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_GRANT_DMA_ALLOC                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PVCALLS_FRONTEND                     policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_ACPI_PROCESSOR                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_MCE_LOG                              policy<{'amd64': 'y'}>
+CONFIG_XEN_SYMS                                 policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_XEN_ACPI_PROCESSOR                       mark<ENFORCED> note<boot essential on XEN host>
+
+# Menu: Device Drivers >> Xen driver support >> Backend driver support
+CONFIG_XEN_BACKEND                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PCIDEV_BACKEND                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_XEN_PVCALLS_BACKEND                      policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_XEN_SCSI_BACKEND                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+
+# Menu: Dump support
+#
+
+# Menu: Dump support >> Architecture: s390
+
+# Menu: Enable loadable module support
+CONFIG_MODULES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_FORCE_LOAD                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_UNLOAD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_FORCE_UNLOAD                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODVERSIONS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SRCVERSION_ALL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_COMPRESS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_UNUSED_SYMBOLS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_MODVERSIONS                              mark<ENFORCED> note<LP:1898716 -- required as we have a livepatch/drivers modules signing key>
+
+# Menu: Enable loadable module support >> Compression algorithm
+
+# Menu: Enable loadable module support >> Module signature verification
+CONFIG_MODULE_SIG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SIG_FORCE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_ALL                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Enable loadable module support >> Module signature verification >> Which hash algorithm should modules be signed with?
+CONFIG_MODULE_SIG_SHA1                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA224                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA256                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA384                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA512                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Enable the block layer
+CONFIG_BLOCK                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_BSG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_BSGLIB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_INTEGRITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_ZONED                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_THROTTLING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_THROTTLING_LOW                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BLK_CMDLINE_PARSER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_WBT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_CGROUP_IOLATENCY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BLK_CGROUP_IOCOST                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_WBT_MQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEBUG_FS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_SED_OPAL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_BLK_DEV_THROTTLING                       note<CGROUP disk consumption control>
+
+# Menu: Enable the block layer >> IO Schedulers
+CONFIG_MQ_IOSCHED_DEADLINE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MQ_IOSCHED_KYBER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IOSCHED_BFQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BFQ_GROUP_IOSCHED                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BFQ_CGROUP_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Enable the block layer >> Partition Types
+
+# Menu: Enable the block layer >> Partition Types >> Advanced partition selection
+CONFIG_PARTITION_ADVANCED                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AIX_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_OSF_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AMIGA_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ATARI_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IBM_PARTITION                            policy<{'s390x': 'y'}>
+CONFIG_MAC_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_LDM_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_LDM_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SGI_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ULTRIX_PARTITION                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SUN_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KARMA_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EFI_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSV68_PARTITION                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_CMDLINE_PARTITION                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+#
+CONFIG_PARTITION_ADVANCED                       flag<REVIEW>
+
+# Menu: Enable the block layer >> Partition Types >> Advanced partition selection >> Acorn partition support
+CONFIG_ACORN_PARTITION                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Enable the block layer >> Partition Types >> Advanced partition selection >> PC BIOS (MSDOS partition tables) support
+CONFIG_MSDOS_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BSD_DISKLABEL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MINIX_SUBPARTITION                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SOLARIS_X86_PARTITION                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_UNIXWARE_DISKLABEL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+
+# Menu: Endianness selection
+CONFIG_CPU_BIG_ENDIAN                           policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+
+# Menu: Endianness selection >> Architecture: powerpc
+CONFIG_CPU_LITTLE_ENDIAN                        policy<{'ppc64el': 'y'}>
+
+# Menu: Executable file formats
+CONFIG_BINFMT_ELF                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BINFMT_ELF_FDPIC                         policy<{'armhf': 'y'}>
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BINFMT_SCRIPT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BINFMT_AOUT                              policy<{'i386': '-'}>
+CONFIG_BINFMT_MISC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_COREDUMP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_BINFMT_SCRIPT                            mark<ENFORCED> note<required if 'init' is a shell script such as in initramfs-tools>
+CONFIG_BINFMT_AOUT                              mark<ENFORCED> note<LP:#1818552>
+
+# Menu: Executable file formats >> Kernel support for flat binaries
+CONFIG_BINFMT_FLAT                              policy<{'armhf': 'y', }>
+CONFIG_BINFMT_FLAT_OLD                          policy<{'armhf': 'y', }>
+CONFIG_BINFMT_ZFLAT                             policy<{'armhf': 'y', }>
+CONFIG_BINFMT_SHARED_FLAT                       policy<{'armhf': 'y', }>
+
+# Menu: File systems
+CONFIG_VALIDATE_FS_PARSER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT2_FS                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EXT3_FS                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_JBD2_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GFS2_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GFS2_FS_LOCKING_DLM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NILFS2_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FS_DAX                                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXPORTFS_BLOCK_OPS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FILE_LOCKING                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MANDATORY_FILE_LOCKING                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_ENCRYPTION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_VERITY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_VERITY_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DNOTIFY                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INOTIFY_USER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FANOTIFY                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_QUOTA_NETLINK_INTERFACE                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUTOFS4_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_AUTOFS_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_FUSE_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CUSE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SHIFT_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SHIFT_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNICODE                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNICODE_NORMALIZATION_SELFTEST           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_EXT2_FS                                  note<ext4 handling via EXT4_USE_FOR_EXT23>
+CONFIG_EXT3_FS                                  note<ext4 handling via EXT4_USE_FOR_EXT23>
+CONFIG_FUSE_FS                                  note<not autoloadable> flag<REVIEW>
+
+# Menu: File systems >> Btrfs filesystem support
+CONFIG_BTRFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BTRFS_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BTRFS_FS_CHECK_INTEGRITY                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_FS_RUN_SANITY_TESTS                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_ASSERT                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_FS_REF_VERIFY                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> CD-ROM/DVD Filesystems
+CONFIG_ISO9660_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_JOLIET                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZISOFS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UDF_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: File systems >> Caches
+CONFIG_CACHEFILES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CACHEFILES_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CACHEFILES_HISTOGRAM                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> Caches >> General filesystem local caching manager
+CONFIG_FSCACHE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FSCACHE_STATS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FSCACHE_HISTOGRAM                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FSCACHE_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FSCACHE_OBJECT_LIST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> DOS/FAT/NT Filesystems
+CONFIG_MSDOS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NTFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NTFS_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NTFS_RW                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+
+# Menu: File systems >> DOS/FAT/NT Filesystems >> VFAT (Windows-95) fs support
+CONFIG_VFAT_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FAT_DEFAULT_CODEPAGE                     policy<{'amd64': '437', 'arm64': '437', 'armhf': '437', 'i386': '437', 'ppc64el': '437', 's390x': '437'}>
+CONFIG_FAT_DEFAULT_IOCHARSET                    policy<{'amd64': '"iso8859-1"', 'arm64': '"iso8859-1"', 'armhf': '"iso8859-1"', 'i386': '"iso8859-1"', 'ppc64el': '"iso8859-1"', 's390x': '"iso8859-1"'}>
+CONFIG_FAT_DEFAULT_UTF8                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_VFAT_FS                                  mark<ENFORCED> note<needed on arm to ensure we can write the kernel when replacing>
+
+# Menu: File systems >> Distributed Lock Manager (DLM)
+CONFIG_DLM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DLM_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> F2FS filesystem support
+CONFIG_F2FS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_F2FS_STAT_FS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_F2FS_FS_XATTR                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_F2FS_FS_POSIX_ACL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_F2FS_FS_SECURITY                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_F2FS_CHECK_FS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_F2FS_IO_TRACE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_F2FS_FAULT_INJECTION                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: File systems >> JFS filesystem support
+CONFIG_JFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_JFS_POSIX_ACL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFS_SECURITY                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_JFS_STATISTICS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> Miscellaneous filesystems
+CONFIG_MISC_FILESYSTEMS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ORANGEFS_FS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ADFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ADFS_FS_RW                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_AFFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ECRYPT_FS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ECRYPT_FS_MESSAGING                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HFSPLUS_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BEFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BEFS_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRAMFS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRAMFS_BLOCKDEV                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CRAMFS_MTD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VXFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MINIX_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_OMFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HPFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QNX4FS_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QNX6FS_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QNX6FS_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ROMFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SYSV_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UFS_FS_WRITE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_UFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_ECRYPT_FS                                mark<ENFORCED> note<not autoloadable>
+
+# Menu: File systems >> Miscellaneous filesystems >> Aufs (Advanced multi layered unification filesystem) support
+CONFIG_AUFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AUFS_HNOTIFY                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_EXPORT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_XATTR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_FHSM                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_RDU                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_DIRREN                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_SHWH                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BR_RAMFS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BR_FUSE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BR_HFSPLUS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_AUFS_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_AUFS_EXPORT                              note<LP:1121699>
+
+# Menu: File systems >> Miscellaneous filesystems >> Aufs (Advanced multi layered unification filesystem) support >> Maximum number of branches
+CONFIG_AUFS_BRANCH_MAX_127                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_BRANCH_MAX_511                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BRANCH_MAX_1023                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BRANCH_MAX_32767                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> Miscellaneous filesystems >> Aufs (Advanced multi layered unification filesystem) support >> method
+
+# Menu: File systems >> Miscellaneous filesystems >> Default pstore compression algorithm
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> EROFS filesystem support
+CONFIG_EROFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_EROFS_FS_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EROFS_FS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_SECURITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_ZIP                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT              policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+
+# Menu: File systems >> Miscellaneous filesystems >> Journalling Flash File System v2 (JFFS2) support
+CONFIG_JFFS2_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_JFFS2_FS_DEBUG                           policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+CONFIG_JFFS2_FS_WRITEBUFFER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_FS_WBUF_VERIFY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_JFFS2_SUMMARY                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_JFFS2_FS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_FS_SECURITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> Journalling Flash File System v2 (JFFS2) support >> Advanced compression options for JFFS2
+CONFIG_JFFS2_COMPRESSION_OPTIONS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_ZLIB                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_LZO                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_RTIME                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_JFFS2_RUBIN                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> Journalling Flash File System v2 (JFFS2) support >> Advanced compression options for JFFS2 >> JFFS2 default compression mode
+CONFIG_JFFS2_CMODE_NONE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_JFFS2_CMODE_PRIORITY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_JFFS2_CMODE_SIZE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_JFFS2_CMODE_FAVOURLZO                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> Persistent store support
+CONFIG_PSTORE                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PSTORE_DEFLATE_COMPRESS                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PSTORE_LZO_COMPRESS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_LZ4_COMPRESS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_LZ4HC_COMPRESS                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_842_COMPRESS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_ZSTD_COMPRESS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_CONSOLE                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_PMSG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_FTRACE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_PSTORE_RAM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> RomFS backing stores
+CONFIG_ROMFS_BACKED_BY_BLOCK                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ROMFS_BACKED_BY_MTD                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ROMFS_BACKED_BY_BOTH                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> SquashFS 4.0 - Squashed file system support
+CONFIG_SQUASHFS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_ZLIB                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_LZ4                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_LZO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_XZ                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_ZSTD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_4K_DEVBLK_SIZE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_EMBEDDED                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE             policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'i386': '3', 'ppc64el': '3', 's390x': '3'}>
+#
+CONFIG_SQUASHFS_4K_DEVBLK_SIZE                  note<non-default block size>
+CONFIG_SQUASHFS                                 mark<ENFORCED> note<LP#1593134>
+
+# Menu: File systems >> Miscellaneous filesystems >> SquashFS 4.0 - Squashed file system support >> Decompressor parallelisation options
+CONFIG_SQUASHFS_DECOMP_SINGLE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_DECOMP_MULTI                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> Miscellaneous filesystems >> SquashFS 4.0 - Squashed file system support >> File decompression options
+CONFIG_SQUASHFS_FILE_CACHE                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_FILE_DIRECT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: File systems >> Miscellaneous filesystems >> UBIFS file system support
+CONFIG_UBIFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_UBIFS_ATIME_SUPPORT                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_UBIFS_FS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_UBIFS_FS_SECURITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_UBIFS_FS_AUTHENTICATION                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> Miscellaneous filesystems >> UBIFS file system support >> Advanced compression options
+CONFIG_UBIFS_FS_ADVANCED_COMPR                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_UBIFS_FS_LZO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_UBIFS_FS_ZLIB                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_UBIFS_FS_ZSTD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> Native language support
+CONFIG_NLS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NLS_DEFAULT                              policy<{'amd64': '"utf8"', 'arm64': '"utf8"', 'armhf': '"utf8"', 'i386': '"utf8"', 'ppc64el': '"utf8"', 's390x': '"utf8"'}>
+CONFIG_NLS_CODEPAGE_437                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NLS_CODEPAGE_737                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_775                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_850                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_852                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_855                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_857                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_860                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_861                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_862                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_863                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_864                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_865                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_866                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_869                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_936                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_950                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_932                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_949                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_874                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_8                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_1250                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_1251                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ASCII                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_1                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_3                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_4                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_5                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_6                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_7                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_9                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_13                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_14                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_15                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_KOI8_R                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_KOI8_U                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_ROMAN                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CELTIC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CENTEURO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CROATIAN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CYRILLIC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_GAELIC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_GREEK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_ICELAND                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_INUIT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_ROMANIAN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_TURKISH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_UTF8                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_NLS                                      note<dependancy of boot essential>
+
+# Menu: File systems >> Network File Systems
+CONFIG_NETWORK_FILESYSTEMS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFSD_V3                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V3_ACL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RPCSEC_GSS_KRB5                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SUNRPC_DEBUG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SUNRPC_XPRT_RDMA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CODA_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: File systems >> Network File Systems >> Andrew File System support (AFS)
+CONFIG_AFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AFS_FSCACHE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AFS_DEBUG_CURSOR                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> Network File Systems >> Ceph distributed file system
+CONFIG_CEPH_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CEPH_FSCACHE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CEPH_FS_POSIX_ACL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CEPH_FS_SECURITY_LABEL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: File systems >> Network File Systems >> NFS client support
+CONFIG_NFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_V2                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_V3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_V3_ACL                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_SWAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_FSCACHE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_USE_LEGACY_DNS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> Network File Systems >> NFS client support >> NFS client support for NFSv4.1
+CONFIG_NFS_V4_1                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4_2                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN        policy<{'amd64': '"kernel.org"', 'arm64': '"kernel.org"', 'armhf': '"kernel.org"', 'i386': '"kernel.org"', 'ppc64el': '"kernel.org"', 's390x': '"kernel.org"'}>
+CONFIG_NFS_V4_1_MIGRATION                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: File systems >> Network File Systems >> NFS server support for NFS version 4
+CONFIG_NFSD_V4                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_BLOCKLAYOUT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_SCSILAYOUT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_FLEXFILELAYOUT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V4_SECURITY_LABEL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: File systems >> Network File Systems >> Plan 9 Resource Sharing Support (9P2000)
+CONFIG_9P_FS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_9P_FSCACHE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_9P_FS_POSIX_ACL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_9P_FS_SECURITY                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: File systems >> Network File Systems >> SMB3 and CIFS support (advanced network filesystem)
+CONFIG_CIFS                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CIFS_STATS2                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_WEAK_PW_HASH                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_UPCALL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_XATTR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_POSIX                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_DEBUG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_DEBUG2                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_DEBUG_DUMP_KEYS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_DFS_UPCALL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_SMB_DIRECT                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_FSCACHE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY               flag<REVIEW>
+
+# Menu: File systems >> OCFS2 file system support
+CONFIG_OCFS2_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCFS2_FS_O2CB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCFS2_FS_STATS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OCFS2_DEBUG_MASKLOG                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OCFS2_DEBUG_FS                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> Overlay filesystem support
+CONFIG_OVERLAY_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OVERLAY_FS_REDIRECT_DIR                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OVERLAY_FS_INDEX                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_OVERLAY_FS_XINO_AUTO                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OVERLAY_FS_METACOPY                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_OVERLAY_FS_METACOPY                      flag<REVIEW>
+
+# Menu: File systems >> Pseudo filesystems
+CONFIG_PROC_CHILDREN                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSFS                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TMPFS                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TMPFS_POSIX_ACL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TMPFS_XATTR                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HUGETLBFS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONFIGFS_FS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EFIVAR_FS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+#
+CONFIG_CONFIGFS_FS                              flag<REVIEW>
+CONFIG_EFIVAR_FS                                note<needed for variable EFI update>
+CONFIG_TMPFS_POSIX_ACL                          mark<ENFORCED> note<some /dev nodes require POSIX ACLs, like /dev/dsp>
+
+# Menu: File systems >> Pseudo filesystems >> /proc file system support
+CONFIG_PROC_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_KCORE                               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_VMCORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_VMCORE_DEVICE_DUMP                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_SYSCTL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_PAGE_MONITOR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: File systems >> Quota support
+CONFIG_QUOTA                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINT_QUOTA_WARNING                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_QUOTA_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_QFMT_V1                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_QFMT_V2                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: File systems >> Reiserfs support
+CONFIG_REISERFS_FS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_REISERFS_CHECK                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_REISERFS_PROC_INFO                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_REISERFS_FS_XATTR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_REISERFS_FS_POSIX_ACL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_REISERFS_FS_SECURITY                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: File systems >> The Extended 4 (ext4) filesystem
+CONFIG_EXT4_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_USE_FOR_EXT2                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_FS_POSIX_ACL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_FS_SECURITY                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: File systems >> XFS filesystem support
+CONFIG_XFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFS_QUOTA                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFS_POSIX_ACL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFS_RT                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFS_ONLINE_SCRUB                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFS_WARN                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Firmware Drivers
+CONFIG_ARM_SCMI_PROTOCOL                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_SCMI_POWER_DOMAIN                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SCPI_PROTOCOL                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SCPI_POWER_DOMAIN                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SDE_INTERFACE                        policy<{'arm64': 'y'}>
+CONFIG_EDD                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EDD_OFF                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FIRMWARE_MEMMAP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DMIID                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DMI_SYSFS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_ISCSI_IBFT_FIND                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ISCSI_IBFT                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_RASPBERRYPI_FIRMWARE                     policy<{'arm64': 'y'}>
+CONFIG_FW_CFG_SYSFS                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_FW_CFG_SYSFS_CMDLINE                     policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_INTEL_STRATIX10_SERVICE                  policy<{'arm64': 'm'}>
+CONFIG_INTEL_STRATIX10_RSU                      policy<{'arm64': 'm'}>
+CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TI_SCI_PROTOCOL                          policy<{'arm64': 'y'}>
+CONFIG_TRUSTED_FOUNDATIONS                      policy<{'armhf': 'y'}>
+CONFIG_TURRIS_MOX_RWTM                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_PSCI_CHECKER                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_IMX_DSP                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_SCU                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_SCU_PD                               policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+
+# Menu: Firmware Drivers >> EFI (Extensible Firmware Interface) Support
+CONFIG_EFI_VARS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_VARS_PSTORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_EFI_RUNTIME_MAP                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EFI_FAKE_MEMMAP                          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_EFI_ARMSTUB_DTB_LOADER                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EFI_BOOTLOADER_CONTROL                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_EFI_CAPSULE_LOADER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'y'}>
+CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH              policy<{'i386': 'y'}>
+CONFIG_EFI_TEST                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_APPLE_PROPERTIES                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_RESET_ATTACK_MITIGATION                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_RCI2_TABLE                           policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_EFI_VARS                                 mark<ENFORCED> note<EFI boot requirement (d-i) LP:#837332>
+
+# Menu: Firmware Drivers >> Google Firmware Drivers
+CONFIG_GOOGLE_FIRMWARE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+
+# Menu: Firmware Drivers >> Google Firmware Drivers >> Coreboot Table Access
+
+# Menu: Firmware Drivers >> Tegra firmware driver
+CONFIG_TEGRA_IVC                                policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_BPMP                               policy<{'armhf-generic': 'y'}>
+
+# Menu: Firmware Drivers >> Zynq MPSoC Firmware Drivers
+CONFIG_ZYNQMP_FIRMWARE                          policy<{'arm64': 'y'}>
+CONFIG_ZYNQMP_FIRMWARE_DEBUG                    policy<{'arm64': 'n'}>
+
+# Menu: Floating point emulation >> Architecture: arm
+CONFIG_VFP                                      policy<{'armhf': 'y'}>
+CONFIG_NEON                                     policy<{'armhf': 'y'}>
+CONFIG_KERNEL_MODE_NEON                         policy<{'arm64': 'y', 'armhf': 'y'}>
+
+# Menu: General architecture-dependent options
+CONFIG_OPROFILE                                 policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPROFILE_EVENT_MULTIPLEX                 policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_KPROBES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_JUMP_LABEL                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STATIC_KEYS_SELFTEST                     policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STACKPROTECTOR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_STACKPROTECTOR_STRONG                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_MMAP_RND_BITS                       policy<{'amd64': '28', 'arm64': '18', 'armhf': '8', 'i386': '8', 'ppc64el': '28', }>
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS                policy<{'amd64': '8', 'arm64': '11', 'ppc64el': '8'}>
+CONFIG_VMAP_STACK                               policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}>
+CONFIG_STRICT_KERNEL_RWX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_STRICT_MODULE_RWX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_REFCOUNT_FULL                            policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_EVENT_COUNTS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_JUMP_LABEL                               flag<REVIEW>
+CONFIG_STRICT_KERNEL_RWX                        mark<ENFORCED>
+CONFIG_STRICT_MODULE_RWX                        mark<ENFORCED>
+
+# Menu: General architecture-dependent options >> Architecture: arm
+
+# Menu: General architecture-dependent options >> Architecture: arm64
+
+# Menu: General architecture-dependent options >> Architecture: powerpc
+
+# Menu: General architecture-dependent options >> Architecture: s390
+
+# Menu: General architecture-dependent options >> Architecture: x86
+
+# Menu: General architecture-dependent options >> GCC plugins
+
+# Menu: General architecture-dependent options >> GCOV-based kernel profiling
+CONFIG_GCOV_KERNEL                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: General architecture-dependent options >> GCOV-based kernel profiling >> Specify GCOV format
+
+# Menu: General setup
+CONFIG_COMPILE_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCALVERSION                             policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_LOCALVERSION_AUTO                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BUILD_SALT                               policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_DEFAULT_HOSTNAME                         policy<{'amd64': '"(none)"', 'arm64': '"(none)"', 'armhf': '"(none)"', 'i386': '"(none)"', 'ppc64el': '"(none)"', 's390x': '"(none)"'}>
+CONFIG_VERSION_SIGNATURE                        policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_SWAP                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSVIPC                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POSIX_MQUEUE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CROSS_MEMORY_ATTACH                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USELIB                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUDIT                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CPU_ISOLATION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IKCONFIG                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IKHEADERS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LOG_BUF_SHIFT                            policy<{'amd64': '18', 'arm64': '18', 'armhf': '17', 'i386': '17', 'ppc64el': '18', 's390x': '18'}>
+CONFIG_LOG_CPU_MAX_BUF_SHIFT                    policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'i386': '12', 'ppc64el': '12', 's390x': '12'}>
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT                policy<{'amd64': '13', 'arm64': '13', 'armhf': '13', 'i386': '13', 'ppc64el': '13', 's390x': '13'}>
+CONFIG_NUMA_BALANCING                           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_CHECKPOINT_RESTORE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_AUTOGROUP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSFS_DEPRECATED                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RELAY                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LD_DEAD_CODE_DATA_ELIMINATION            policy<{'ppc64el': 'n'}>
+CONFIG_BPF_SYSCALL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_JIT_ALWAYS_ON                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USERFAULTFD                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EMBEDDED                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_COMPAT_BRK                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SLAB_MERGE_DEFAULT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLAB_FREELIST_RANDOM                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLAB_FREELIST_HARDENED                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SHUFFLE_PAGE_ALLOCATOR                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_CPU_PARTIAL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROFILING                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SYSFS_DEPRECATED                         mark<ENFORCED> note<ensure nothing is using these deprecated interfaces>
+CONFIG_COMPAT_BRK                               mark<ENFORCED> note<disables brk ASLR>
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED           note<LP:1557690>
+CONFIG_BPF_JIT_ALWAYS_ON                        flag<REVIEW>
+CONFIG_LOCALVERSION_AUTO                        mark<ENFORCED> note<triggers packaging failures>
+
+# Menu: General setup >> CPU/Task time and stats accounting
+CONFIG_IRQ_TIME_ACCOUNTING                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BSD_PROCESS_ACCT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BSD_PROCESS_ACCT_V3                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASKSTATS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASK_DELAY_ACCT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASK_XACCT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASK_IO_ACCOUNTING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PSI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PSI_DEFAULT_DISABLED                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+#
+CONFIG_PSI_DEFAULT_DISABLED                     mark<ENFORCED> note<LP: #1876044>
+
+# Menu: General setup >> CPU/Task time and stats accounting >> Cputime accounting
+CONFIG_TICK_CPU_ACCOUNTING                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE               policy<{'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_VIRT_CPU_ACCOUNTING_GEN                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+
+# Menu: General setup >> Choose SLAB allocator
+CONFIG_SLAB                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SLUB                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLOB                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: General setup >> Compiler optimization level
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_OPTIMIZE_FOR_SIZE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: General setup >> Configure standard kernel features (expert users)
+CONFIG_EXPERT                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UID16                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_MULTIUSER                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SGETMASK_SYSCALL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSFS_SYSCALL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSCTL_SYSCALL                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FHANDLE                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POSIX_TIMERS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINTK                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BUG                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ELF_CORE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCSPKR_PLATFORM                          policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BASE_FULL                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUTEX                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EPOLL                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SIGNALFD                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIMERFD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVENTFD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SHMEM                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AIO                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IO_URING                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ADVISE_SYSCALLS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMBARRIER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KALLSYMS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KALLSYMS_ALL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RSEQ                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_RSEQ                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PC104                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VM_EVENT_COUNTERS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_DEBUG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_MEMCG_SYSFS_ON                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_FHANDLE                                  mark<ENFORCED> note<LP:1412543>
+CONFIG_SLUB_MEMCG_SYSFS_ON                      flag<REVIEW>
+
+# Menu: General setup >> Control Group support
+CONFIG_CGROUPS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG_SWAP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG_SWAP_ENABLED                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BLK_CGROUP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_PIDS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_RDMA                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_FREEZER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_HUGETLB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CPUSETS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_PID_CPUSET                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_DEVICE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_CPUACCT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_PERF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_BPF                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: General setup >> Control Group support >> CPU controller
+CONFIG_CGROUP_SCHED                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FAIR_GROUP_SCHED                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CFS_BANDWIDTH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RT_GROUP_SCHED                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_UCLAMP_TASK_GROUP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+#
+CONFIG_RT_GROUP_SCHED                           mark<ENFORCED> note<LP#1284731> note<LP#1873315> note<LP#1875665>
+
+# Menu: General setup >> IRQ subsystem
+CONFIG_IRQ_FORCED_THREADING_DEFAULT             policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386-generic': 'n', 'i386-lowlatency': 'y', 'ppc64el': 'n'}>
+CONFIG_SPARSE_IRQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_IRQ_DEBUGFS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: General setup >> Initial RAM filesystem and RAM disk (initramfs/initrd) support
+CONFIG_BLK_DEV_INITRD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_GZIP                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_BZIP2                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_LZMA                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_XZ                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_LZO                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_LZ4                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: General setup >> Initial RAM filesystem and RAM disk (initramfs/initrd) support >> Initramfs source file(s)
+CONFIG_INITRAMFS_SOURCE                         policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+
+# Menu: General setup >> Initial RAM filesystem and RAM disk (initramfs/initrd) support >> Initramfs source file(s) >> Built-in initramfs compression mode
+
+# Menu: General setup >> Kernel Performance Events And Counters
+CONFIG_PERF_EVENTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_PERF_USE_VMALLOC                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+
+# Menu: General setup >> Kernel compression mode
+CONFIG_KERNEL_GZIP                              policy<{'amd64': 'n', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KERNEL_BZIP2                             policy<{'amd64': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_LZMA                              policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_XZ                                policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_LZO                               policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_LZ4                               policy<{'amd64': 'y', 'armhf': 'n', 'i386': 'y', 's390x': 'y'}>
+CONFIG_KERNEL_UNCOMPRESSED                      policy<{'s390x': 'n'}>
+
+# Menu: General setup >> Namespaces support
+CONFIG_NAMESPACES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UTS_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPC_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USER_NS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PID_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: General setup >> Preemption Model
+CONFIG_PREEMPT_NONE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_PREEMPT_VOLUNTARY                        policy<{'amd64-generic': 'y', 'amd64-lowlatency': 'n', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'i386-lowlatency': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PREEMPT                                  policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386-generic': 'n', 'i386-lowlatency': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_PREEMPT_NONE                             note<LP:1543165>
+
+# Menu: General setup >> RCU Subsystem
+
+# Menu: General setup >> RCU Subsystem >> Make expert-level adjustments to RCU configuration
+CONFIG_RCU_EXPERT                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_RCU_EXPERT                               flag<REVIEW>
+
+# Menu: General setup >> Scheduler features
+CONFIG_UCLAMP_TASK                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UCLAMP_BUCKETS_COUNT                     policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'i386': '5', 'ppc64el': '5'}>
+#
+CONFIG_UCLAMP_TASK                              flag<REVIEW>
+
+# Menu: General setup >> Timers subsystem
+CONFIG_NO_HZ                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONTEXT_TRACKING_FORCE                   policy<{'amd64': '-', 'arm64': '-', 'armhf': '-', 'i386': '-', 'ppc64el': '-', 's390x': '-'}>
+CONFIG_HIGH_RES_TIMERS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_CONTEXT_TRACKING_FORCE                   note<LP:1349028> mark<ENFORCED>
+
+# Menu: General setup >> Timers subsystem >> Timer tick handling
+CONFIG_HZ_PERIODIC                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NO_HZ_IDLE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NO_HZ_FULL                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+#
+CONFIG_NO_HZ_IDLE                               note<LP:1413968>
+
+# Menu: I/O subsystem >> Architecture: s390
+CONFIG_QDIO                                     policy<{'s390x': 'm'}>
+CONFIG_PCI_NR_FUNCTIONS                         policy<{'s390x': '512'}>
+CONFIG_CHSC_SCH                                 policy<{'s390x': 'm'}>
+CONFIG_SCM_BUS                                  policy<{'s390x': 'y'}>
+CONFIG_EADM_SCH                                 policy<{'s390x': 'm'}>
+CONFIG_VFIO_CCW                                 policy<{'s390x': 'm'}>
+CONFIG_VFIO_AP                                  policy<{'s390x': 'm'}>
+#
+CONFIG_PCI_NR_FUNCTIONS                         mark<ENFORCED> note<LP:1866056>
+
+# Menu: Kernel hacking
+CONFIG_MAGIC_SYSRQ                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE               policy<{'amd64': '0x01b6', 'arm64': '0x01b6', 'armhf': '0x01b6', 'i386': '0x01b6', 'ppc64el': '0x01b6', 's390x': '0x01b6'}>
+CONFIG_MAGIC_SYSRQ_SERIAL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KCOV                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PANIC_ON_OOPS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PANIC_TIMEOUT                            policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '10', 's390x': '0'}>
+CONFIG_DEBUG_TIMEKEEPING                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STACKTRACE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WARN_ALL_UNSEEDED_RANDOM                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PROVIDE_OHCI1394_DMA_INIT                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MEMTEST                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BUG_ON_DATA_CORRUPTION                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STRICT_DEVMEM                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IO_STRICT_DEVMEM                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PID_IN_CONTEXTIDR                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DEBUG_WX                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DEBUG_ALIGN_RODATA                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_EARLY_PRINTK                             policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_PANIC_ON_OOPS                            note<keep working if at all possible>
+CONFIG_BUG_ON_DATA_CORRUPTION                   flag<REVIEW>
+CONFIG_STRICT_DEVMEM                            mark<ENFORCED>
+
+# Menu: Kernel hacking >> Architecture: arm
+CONFIG_DEBUG_USER                               policy<{'armhf': 'n'}>
+CONFIG_DEBUG_VF_UART_PORT                       policy<{'armhf-generic': '1'}>
+CONFIG_ARM_KPROBES_TEST                         policy<{'armhf': 'm'}>
+
+# Menu: Kernel hacking >> Architecture: arm64
+CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET              policy<{'arm64': 'n'}>
+CONFIG_DEBUG_EFI                                policy<{'arm64': 'n'}>
+CONFIG_ARM64_RELOC_TEST                         policy<{'arm64': 'n'}>
+
+# Menu: Kernel hacking >> Architecture: powerpc
+CONFIG_PPC_DISABLE_WERROR                       policy<{'ppc64el': 'n'}>
+CONFIG_HCALL_STATS                              policy<{'ppc64el': 'n'}>
+CONFIG_PPC_EMULATED_STATS                       policy<{'ppc64el': 'n'}>
+CONFIG_JUMP_LABEL_FEATURE_CHECKS                policy<{'ppc64el': 'y'}>
+CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG           policy<{'ppc64el': 'n'}>
+CONFIG_PPC_IRQ_SOFT_MASK_DEBUG                  policy<{'ppc64el': 'n'}>
+CONFIG_BOOTX_TEXT                               policy<{'ppc64el': 'n'}>
+CONFIG_PPC_EARLY_DEBUG                          policy<{'ppc64el': 'n'}>
+#
+CONFIG_PPC_DISABLE_WERROR                       flag<REVIEW>
+
+# Menu: Kernel hacking >> Architecture: x86
+CONFIG_X86_VERBOSE_BOOTUP                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_EARLY_PRINTK_DBGP                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EARLY_PRINTK_USB_XDBC                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EFI_PGT_DUMP                             policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DOUBLEFAULT                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PUNIT_ATOM_DEBUG                         policy<{'amd64': 'm', 'i386': 'm'}>
+#
+CONFIG_PUNIT_ATOM_DEBUG                         flag<REVIEW>
+
+# Menu: Kernel hacking >> Choose kernel unwinder
+CONFIG_UNWINDER_FRAME_POINTER                   policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+#
+CONFIG_UNWINDER_FRAME_POINTER                   mark<ENFORCED> note<needed for livepatch>
+
+# Menu: Kernel hacking >> Choose kernel unwinder >> Architecture: arm
+
+# Menu: Kernel hacking >> Choose kernel unwinder >> Architecture: x86
+CONFIG_UNWINDER_ORC                             policy<{'amd64': 'n'}>
+CONFIG_UNWINDER_GUESS                           policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Kernel hacking >> Compile-time checks and compiler options
+CONFIG_ENABLE_MUST_CHECK                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FRAME_WARN                               policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'i386': '1024', 'ppc64el': '2048', 's390x': '1024'}>
+CONFIG_STRIP_ASM_SYMS                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_READABLE_ASM                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_FS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HEADERS_INSTALL                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SECTION_MISMATCH                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECTION_MISMATCH_WARN_ONLY               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAME_POINTER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_STACK_VALIDATION                         policy<{'amd64': 'y'}>
+CONFIG_DEBUG_FORCE_WEAK_PER_CPU                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_STACK_VALIDATION                         mark<ENFORCED> note<needed for livepatch>
+
+# Menu: Kernel hacking >> Compile-time checks and compiler options >> Compile the kernel with debug info
+CONFIG_DEBUG_INFO                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_INFO_REDUCED                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_INFO_SPLIT                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_INFO_DWARF4                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_INFO_BTF                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GDB_SCRIPTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_DEBUG_INFO                               mark<ENFORCED> note<required for debug packages>
+CONFIG_DEBUG_INFO_SPLIT                         note<LP:1413646 and LP:1413664>
+CONFIG_DEBUG_INFO_BTF                           flag<REVIEW> note<Might be useful for bpf, reuquires pahole to build>
+
+# Menu: Kernel hacking >> CoreSight Tracing Support
+CONFIG_CORESIGHT                                policy<{'arm64': 'n', 'armhf': 'n'}>
+
+# Menu: Kernel hacking >> CoreSight Tracing Support >> CoreSight Link and Sink drivers
+
+# Menu: Kernel hacking >> Debug Lockups and Hangs
+CONFIG_SOFTLOCKUP_DETECTOR                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_HARDLOCKUP_DETECTOR                      policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC               policy<{'amd64': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DETECT_HUNG_TASK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT                policy<{'amd64': '120', 'arm64': '120', 'armhf': '120', 'i386': '120', 'ppc64el': '120', 's390x': '120'}>
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WQ_WATCHDOG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Early debugging console >> Architecture: powerpc
+
+# Menu: Kernel hacking >> IO delay type >> Architecture: x86
+CONFIG_IO_DELAY_0X80                            policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_IO_DELAY_0XED                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IO_DELAY_UDELAY                          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_IO_DELAY_NONE                            policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Kernel hacking >> Kernel debugging
+CONFIG_DEBUG_KERNEL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_MISC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_SHIRQ                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SCHED_DEBUG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHEDSTATS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_STACK_END_CHECK                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_PREEMPT                            policy<{'amd64-lowlatency': 'n', 'i386-lowlatency': 'n'}>
+CONFIG_DEBUG_KOBJECT                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_BUGVERBOSE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_LIST                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PLIST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SG                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_NOTIFIERS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_CREDENTIALS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_WQ_FORCE_RR_CPU                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_BLOCK_EXT_DEVT                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CPU_HOTPLUG_STATE_CONTROL                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LATENCYTOP                               policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_LATENCYTOP                               mark<ENFORCED> note<https://lists.ubuntu.com/archives/kernel-team/2014-July/045006.html, LP#1655986>
+
+# Menu: Kernel hacking >> Kernel debugging >> Architecture: arm
+CONFIG_ARM_PTDUMP_DEBUGFS                       policy<{'armhf': 'n'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Architecture: arm64
+CONFIG_ARM64_PTDUMP_DEBUGFS                     policy<{'arm64': 'n'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Architecture: powerpc
+CONFIG_PRINT_STACK_DEPTH                        policy<{'ppc64el': '64'}>
+CONFIG_CODE_PATCHING_SELFTEST                   policy<{'ppc64el': 'n'}>
+CONFIG_FTR_FIXUP_SELFTEST                       policy<{'ppc64el': 'n'}>
+CONFIG_MSI_BITMAP_SELFTEST                      policy<{'ppc64el': 'n'}>
+CONFIG_PPC_PTDUMP                               policy<{'ppc64el': 'n'}>
+CONFIG_PPC_FAST_ENDIAN_SWITCH                   policy<{'ppc64el': 'n'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Architecture: s390
+CONFIG_S390_PTDUMP                              policy<{'s390x': 'y'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Architecture: x86
+CONFIG_X86_PTDUMP                               policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_TLBFLUSH                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_IOMMU_DEBUG                              policy<{'amd64': 'n'}>
+CONFIG_X86_DECODER_SELFTEST                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_BOOT_PARAMS                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_CPA_DEBUG                                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_ENTRY                              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_NMI_SELFTEST                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_DEBUG_FPU                            policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_X86_DECODER_SELFTEST                     flag<TESTING>
+CONFIG_X86_DEBUG_FPU                            flag<REVIEW>
+
+# Menu: Kernel hacking >> Kernel debugging >> Fault-injection framework
+CONFIG_FAULT_INJECTION                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Fault-injection framework >> Architecture: powerpc
+
+# Menu: Kernel hacking >> Kernel debugging >> Fault-injection framework >> Debugfs entries for fault-injection capabilities
+
+# Menu: Kernel hacking >> Kernel debugging >> Include xmon kernel debugger >> Architecture: powerpc
+CONFIG_XMON                                     policy<{'ppc64el': 'y'}>
+CONFIG_XMON_DEFAULT                             policy<{'ppc64el': 'n'}>
+CONFIG_XMON_DISASSEMBLY                         policy<{'ppc64el': 'y'}>
+CONFIG_XMON_DEFAULT_RO_MODE                     policy<{'ppc64el': 'y'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> KGDB: kernel debugger
+CONFIG_KGDB                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KGDB_SERIAL_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KGDB_TESTS                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_KGDB_LOW_LEVEL_TRAP                      policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_KGDB                                     flag<REVIEW>
+CONFIG_KGDB_SERIAL_CONSOLE                      note<early debugging support>
+
+# Menu: Kernel hacking >> Kernel debugging >> KGDB: kernel debugger >> KGDB_KDB: include kdb frontend for kgdb
+CONFIG_KGDB_KDB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KDB_DEFAULT_ENABLE                       policy<{'amd64': '0x1', 'arm64': '0x1', 'armhf': '0x1', 'i386': '0x1', 'ppc64el': '0x1'}>
+CONFIG_KDB_KEYBOARD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KDB_CONTINUE_CATASTROPHIC                policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Kernel low-level debugging functions (read help!)
+
+# Menu: Kernel hacking >> Kernel debugging >> Kernel low-level debugging functions (read help!) >> Architecture: arm
+CONFIG_DEBUG_LL                                 policy<{'armhf': 'n'}>
+
+# Menu: Kernel hacking >> Kernel debugging >> Kernel low-level debugging functions (read help!) >> Kernel low-level debugging port >> Architecture: arm
+
+# Menu: Kernel hacking >> Kernel debugging >> Notifier error injection
+CONFIG_NOTIFIER_ERROR_INJECTION                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PM_NOTIFIER_ERROR_INJECT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT        policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', }>
+CONFIG_NETDEV_NOTIFIER_ERROR_INJECT             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Lock Debugging (spinlocks, mutexes, etc...)
+CONFIG_PROVE_LOCKING                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_STAT                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_RT_MUTEXES                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SPINLOCK                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_MUTEXES                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_WW_MUTEX_SLOWPATH                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_RWSEMS                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_LOCK_ALLOC                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_ATOMIC_SLEEP                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_LOCKING_API_SELFTESTS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_TORTURE_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WW_MUTEX_SELFTEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Memory Debugging
+CONFIG_PAGE_EXTENSION                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PAGEALLOC                          policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PAGE_OWNER                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PAGE_POISONING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_POISONING_NO_SANITY                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_POISONING_ZERO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_PAGE_REF                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_RODATA_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_SLUB_DEBUG_ON                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SLUB_STATS                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_STACK_USAGE                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_VIRTUAL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DEBUG_MEMORY_INIT                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DEBUG_PER_CPU_MAPS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_HIGHMEM                            policy<{'armhf': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_STACKOVERFLOW                      policy<{'i386': 'n', 'ppc64el': 'n'}>
+#
+CONFIG_PAGE_POISONING                           mark<ENFORCED> note<LP:1783651>
+CONFIG_PAGE_POISONING_ZERO                      mark<ENFORCED> note<LP:1783651>
+CONFIG_PAGE_POISONING_NO_SANITY                 mark<ENFORCED> note<LP:1783651>
+
+# Menu: Kernel hacking >> Memory Debugging >> Debug VM
+CONFIG_DEBUG_VM                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Memory Debugging >> Debug object operations
+CONFIG_DEBUG_OBJECTS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Memory Debugging >> KASAN: runtime memory debugger
+CONFIG_KASAN                                    policy<{'amd64': 'n', 'arm64': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> Memory Debugging >> KASAN: runtime memory debugger >> Instrumentation type
+
+# Menu: Kernel hacking >> Memory Debugging >> KASAN: runtime memory debugger >> KASAN mode
+
+# Menu: Kernel hacking >> Memory Debugging >> Kernel memory leak detector
+CONFIG_DEBUG_KMEMLEAK                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> RCU Debugging
+CONFIG_RCU_PERF_TEST                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RCU_TORTURE_TEST                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RCU_CPU_STALL_TIMEOUT                    policy<{'amd64': '60', 'arm64': '60', 'armhf': '60', 'i386': '60', 'ppc64el': '21', 's390x': '21'}>
+CONFIG_RCU_TRACE                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RCU_EQS_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT                    flag<REVIEW>
+
+# Menu: Kernel hacking >> Runtime Testing
+CONFIG_RUNTIME_TESTING_MENU                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LKDTM                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_LIST_SORT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_SORT                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_KPROBES_SANITY_TEST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BACKTRACE_SELF_TEST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RBTREE_TEST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_REED_SOLOMON_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INTERVAL_TREE_TEST                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PERCPU_TEST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ATOMIC64_SELFTEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ASYNC_RAID6_TEST                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_HEXDUMP                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STRING_HELPERS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STRSCPY                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_KSTRTOX                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_PRINTF                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_BITMAP                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_BITFIELD                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_UUID                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_XARRAY                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_OVERFLOW                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_RHASHTABLE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_HASH                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_IDA                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_PARMAN                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_LKM                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_VMALLOC                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_USER_COPY                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_BPF                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TEST_BLACKHOLE_DEV                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FIND_BIT_BENCHMARK                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_FIRMWARE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_SYSCTL                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_UDELAY                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STATIC_KEYS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_KMOD                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_MEMCAT_P                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_LIVEPATCH                           policy<{'amd64': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_OBJAGG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STACKINIT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_MEMINIT                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_RUNTIME_TESTING_MENU                     flag<TESTING>
+CONFIG_LKDTM                                    flag<TESTING> flag<REVIEW>
+CONFIG_TEST_LIST_SORT                           flag<TESTING>
+CONFIG_TEST_SORT                                flag<TESTING>
+CONFIG_KPROBES_SANITY_TEST                      flag<TESTING>
+CONFIG_BACKTRACE_SELF_TEST                      flag<TESTING>
+CONFIG_RBTREE_TEST                              flag<TESTING>
+CONFIG_INTERVAL_TREE_TEST                       flag<TESTING>
+CONFIG_PERCPU_TEST                              flag<TESTING>
+CONFIG_ATOMIC64_SELFTEST                        flag<TESTING>
+CONFIG_ASYNC_RAID6_TEST                         flag<TESTING>
+CONFIG_TEST_HEXDUMP                             flag<TESTING>
+CONFIG_TEST_STRING_HELPERS                      flag<TESTING>
+CONFIG_TEST_STRSCPY                             flag<TESTING>
+CONFIG_TEST_KSTRTOX                             flag<TESTING>
+CONFIG_TEST_PRINTF                              flag<TESTING>
+CONFIG_TEST_BITMAP                              flag<TESTING>
+CONFIG_TEST_BITFIELD                            flag<TESTING>
+CONFIG_TEST_UUID                                flag<TESTING>
+CONFIG_TEST_XARRAY                              flag<TESTING>
+CONFIG_TEST_OVERFLOW                            flag<TESTING>
+CONFIG_TEST_RHASHTABLE                          flag<TESTING>
+CONFIG_TEST_HASH                                flag<TESTING>
+CONFIG_TEST_IDA                                 flag<TESTING>
+CONFIG_TEST_PARMAN                              flag<TESTING>
+CONFIG_TEST_LKM                                 flag<TESTING>
+CONFIG_TEST_VMALLOC                             flag<TESTING>
+CONFIG_TEST_USER_COPY                           flag<TESTING>
+CONFIG_TEST_BPF                                 flag<TESTING>
+CONFIG_TEST_BLACKHOLE_DEV                       flag<TESTING> note<Used by net selftests>
+CONFIG_FIND_BIT_BENCHMARK                       flag<TESTING>
+CONFIG_TEST_FIRMWARE                            flag<TESTING>
+CONFIG_TEST_SYSCTL                              flag<TESTING>
+CONFIG_TEST_UDELAY                              flag<TESTING>
+CONFIG_TEST_STATIC_KEYS                         flag<TESTING>
+CONFIG_TEST_KMOD                                flag<TESTING>
+CONFIG_TEST_MEMCAT_P                            flag<TESTING>
+CONFIG_TEST_LIVEPATCH                           flag<TESTING>
+CONFIG_TEST_OBJAGG                              flag<TESTING>
+CONFIG_TEST_STACKINIT                           flag<TESTING>
+CONFIG_TEST_MEMINIT                             flag<TESTING>
+
+# Menu: Kernel hacking >> Sample kernel code
+CONFIG_SAMPLES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SAMPLE_TRACE_EVENTS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_TRACE_PRINTK                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SAMPLE_KOBJECT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_KPROBES                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_HW_BREAKPOINT                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SAMPLE_KFIFO                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_KDB                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SAMPLE_QMI_CLIENT                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SAMPLE_RPMSG_CLIENT                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_SAMPLE_LIVEPATCH                         policy<{'amd64': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_CONFIGFS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MTTY                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MDPY                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MBOCHS                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_SAMPLE_TRACE_PRINTK                      mark<ENFORCED> note<Required for ftrace selftests>
+
+# Menu: Kernel hacking >> Tracers
+CONFIG_FTRACE                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PREEMPTIRQ_EVENTS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IRQSOFF_TRACER                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PREEMPT_TRACER                           policy<{'amd64-lowlatency': 'n', 'i386-lowlatency': 'n'}>
+CONFIG_SCHED_TRACER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HWLAT_TRACER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FTRACE_SYSCALLS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACER_SNAPSHOT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STACK_TRACER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_IO_TRACE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KPROBE_EVENTS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KPROBE_EVENTS_ON_NOTRACE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_UPROBE_EVENTS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_KPROBE_OVERRIDE                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FTRACE_STARTUP_TEST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MMIOTRACE                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HIST_TRIGGERS                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MMIOTRACE_TEST                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_TRACEPOINT_BENCHMARK                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RING_BUFFER_BENCHMARK                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RING_BUFFER_STARTUP_TEST                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PREEMPTIRQ_DELAY_TEST                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TRACE_EVAL_MAP_FILE                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_FTRACE_STARTUP_TEST                      flag<TESTING>
+CONFIG_MMIOTRACE_TEST                           flag<TESTING>
+CONFIG_RING_BUFFER_BENCHMARK                    flag<TESTING>
+CONFIG_RING_BUFFER_STARTUP_TEST                 flag<TESTING>
+CONFIG_TRACE_EVAL_MAP_FILE                      flag<DEBUG>
+
+# Menu: Kernel hacking >> Tracers >> Branch Profiling
+CONFIG_BRANCH_PROFILE_NONE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROFILE_ANNOTATED_BRANCHES               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PROFILE_ALL_BRANCHES                     policy<{}>
+
+# Menu: Kernel hacking >> Tracers >> Kernel Function Tracer
+CONFIG_FUNCTION_TRACER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUNCTION_GRAPH_TRACER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DYNAMIC_FTRACE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUNCTION_PROFILER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Kernel hacking >> Undefined behaviour sanity checker
+CONFIG_UBSAN                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Kernel hacking >> printk and dmesg options
+CONFIG_PRINTK_TIME                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINTK_CALLER                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT                 policy<{'amd64': '7', 'arm64': '7', 'armhf': '7', 'i386': '7', 'ppc64el': '7', 's390x': '7'}>
+CONFIG_CONSOLE_LOGLEVEL_QUIET                   policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4', 's390x': '4'}>
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT                 policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4', 's390x': '4'}>
+CONFIG_BOOT_PRINTK_DELAY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', }>
+CONFIG_DYNAMIC_DEBUG                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Library routines
+CONFIG_RAID6_PQ_BENCHMARK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PACKING                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_CORDIC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INDIRECT_PIO                             policy<{'arm64': 'y'}>
+CONFIG_CRC_CCITT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC16                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC_T10DIF                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC_ITU_T                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC32                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC32_SELFTEST                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC64                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC4                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC7                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LIBCRC32C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC8                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RANDOM32_SELFTEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ZLIB_DFLTCC                              policy<{'s390x': 'y'}>
+CONFIG_DMA_API_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CPUMASK_OFFSTACK                         policy<{'amd64': 'y'}>
+CONFIG_GLOB_SELFTEST                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IRQ_POLL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PARMAN                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OBJAGG                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STRING_SELFTEST                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_ZLIB_DFLTCC                              mark<ENFORCED> note<LP:1830208>
+
+# Menu: Library routines >> CRC32 implementation
+CONFIG_CRC32_SLICEBY8                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC32_SLICEBY4                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC32_SARWATE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC32_BIT                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Library routines >> DMA Contiguous Memory Allocator
+CONFIG_DMA_CMA                                  policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 's390x': 'n'}>
+CONFIG_CMA_SIZE_MBYTES                          policy<{'arm64': '32', 'armhf': '32', }>
+CONFIG_CMA_ALIGNMENT                            policy<{'arm64': '8', 'armhf': '8', }>
+#
+CONFIG_DMA_CMA                                  mark<ENFORCED> note<LP#1362261> note<LP:1803206>
+CONFIG_CMA_SIZE_MBYTES                          mark<ENFORCED> note<LP:1823753>
+
+# Menu: Library routines >> DMA Contiguous Memory Allocator >> Selected region size
+CONFIG_CMA_SIZE_SEL_MBYTES                      policy<{'arm64': 'y', 'armhf': 'y', }>
+CONFIG_CMA_SIZE_SEL_PERCENTAGE                  policy<{'arm64': 'n', 'armhf': 'n', }>
+CONFIG_CMA_SIZE_SEL_MIN                         policy<{'arm64': 'n', 'armhf': 'n', }>
+CONFIG_CMA_SIZE_SEL_MAX                         policy<{'arm64': 'n', 'armhf': 'n', }>
+
+# Menu: Library routines >> Select compiled-in fonts
+CONFIG_FONTS                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_8x8                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_8x16                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_6x11                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_7x14                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_PEARL_8x8                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_ACORN_8x8                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_MINI_4x6                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_6x10                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_10x18                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_SUN8x16                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_SUN12x22                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_TER16x32                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Library routines >> XZ decompression support
+CONFIG_XZ_DEC                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XZ_DEC_X86                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_POWERPC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_IA64                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_ARM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_ARMTHUMB                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_SPARC                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_TEST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+#
+CONFIG_XZ_DEC                                   note<boot essential -- initramfs decompressor> flag<REVIEW>
+
+# Menu: Memory Management options
+CONFIG_SPARSEMEM_VMEMMAP                        policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_HOTPLUG                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MEMORY_HOTREMOVE                         policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BALLOON_COMPACTION                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COMPACTION                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MIGRATION                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BOUNCE                                   policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'n'}>
+CONFIG_KSM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_MMAP_MIN_ADDR                    policy<{'amd64': '65536', 'arm64': '32768', 'armhf': '32768', 'i386': '65536', 'ppc64el': '65536', 's390x': '65536'}>
+CONFIG_MEMORY_FAILURE                           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_HWPOISON_INJECT                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_TRANSPARENT_HUGEPAGE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CLEANCACHE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRONTSWAP                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEM_SOFT_DIRTY                           policy<{'amd64': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_ZSWAP                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZPOOL                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZBUD                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_Z3FOLD                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZSMALLOC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZSMALLOC_STAT                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFERRED_STRUCT_PAGE_INIT                policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IDLE_PAGE_TRACKING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZONE_DEVICE                              policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVICE_PRIVATE                           policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_PERCPU_STATS                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GUP_BENCHMARK                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_READ_ONLY_THP_FOR_FS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf-generic-lpae': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_DEFAULT_MMAP_MIN_ADDR                    mark<ENFORCED> note<LP:1418140 LP:1531327>
+CONFIG_TRANSPARENT_HUGEPAGE                     flag<REVIEW>
+CONFIG_MEM_SOFT_DIRTY                           flag<REVIEW>
+CONFIG_IDLE_PAGE_TRACKING                       flag<REVIEW> note<is there a cost associated with this?>
+CONFIG_PERCPU_STATS                             flag<REVIEW>
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE            mark<ENFORCED> note<LP:1709171 LP:1848492>
+
+# Menu: Memory Management options >> Contiguous Memory Allocator
+CONFIG_CMA                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CMA_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CMA_DEBUGFS                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CMA_AREAS                                policy<{'amd64': '7', 'arm64': '7', 'armhf': '7', 'i386': '7', 'ppc64el': '7', 's390x': '7'}>
+
+# Menu: Memory Management options >> Memory model
+CONFIG_FLATMEM_MANUAL                           policy<{'i386': 'n', }>
+CONFIG_SPARSEMEM_MANUAL                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Memory Management options >> Transparent Hugepage Support sysfs defaults
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf-generic-lpae': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE             policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+
+# Menu: Memory setup >> Architecture: s390
+CONFIG_MAX_PHYSMEM_BITS                         policy<{'s390x': '46'}>
+CONFIG_PACK_STACK                               policy<{'s390x': 'y'}>
+CONFIG_WARN_DYNAMIC_STACK                       policy<{'s390x': 'n'}>
+
+# Menu: Networking support
+CONFIG_NET                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AF_KCM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CEPH_LIB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CEPH_LIB_PRETTYDEBUG                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PSAMPLE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IFE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LWTUNNEL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LWTUNNEL_BPF                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FAILOVER                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Amateur Radio support
+CONFIG_HAMRADIO                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Networking support >> Amateur Radio support >> Amateur Radio AX.25 Level 2 protocol
+CONFIG_AX25                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_AX25_DAMA_SLAVE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_NETROM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ROSE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> Amateur Radio support >> Amateur Radio AX.25 Level 2 protocol >> AX.25 network device drivers
+CONFIG_MKISS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6PACK                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BPQETHER                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_SCC                                      policy<{'i386': 'm'}>
+CONFIG_SCC_DELAY                                policy<{'i386': 'n'}>
+CONFIG_SCC_TRXECHO                              policy<{'i386': 'n'}>
+CONFIG_BAYCOM_SER_FDX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BAYCOM_SER_HDX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BAYCOM_PAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BAYCOM_EPP                               policy<{'armhf': 'm', 'i386': 'm'}>
+CONFIG_YAM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> Bluetooth subsystem support
+CONFIG_BT                                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_LE                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_6LOWPAN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_LEDS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_SELFTEST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BT_DEBUGFS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth Classic (BR/EDR) features
+CONFIG_BT_BREDR                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_RFCOMM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_RFCOMM_TTY                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_BNEP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_BNEP_MC_FILTER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_BNEP_PROTO_FILTER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_CMTP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HIDP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HS                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_BT_HS					mark<ENFORCED> note<https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00435.html>
+
+# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers
+CONFIG_BT_HCIBTSDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIUART_LL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIBCM203X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIBPA10X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIBFUSB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIDTL1                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BT_HCIBT3C                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BT_HCIBLUECARD                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BT_HCIVHCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_MRVL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_MRVL_SDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_WILINK                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_MTKSDIO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_MTKUART                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_QCOMSMD                               policy<{'arm64': 'm', 'armhf': 'm'}>
+
+# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers >> HCI UART driver
+CONFIG_BT_HCIUART                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIUART_H4                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_NOKIA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIUART_BCSP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_ATH3K                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_3WIRE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_INTEL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_BCM                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_RTL                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_BT_HCIUART_QCA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_AG6XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIUART_MRVL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers >> HCI USB driver
+CONFIG_BT_HCIBTUSB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIBTUSB_BCM                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIBTUSB_MTK                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_HCIBTUSB_RTL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BT_ATH3K                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAIF support
+CONFIG_CAIF                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CAIF_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CAIF_NETDEV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAIF_USB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAN bus subsystem support
+CONFIG_CAN                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CAN_RAW                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_BCM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_GW                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_J1939                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers
+CONFIG_CAN_VCAN                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_VXCAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_SLCAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_DEBUG_DEVICES                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support
+CONFIG_CAN_DEV                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_CALC_BITTIMING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CAN_FLEXCAN                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_GRCAN                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_JANZ_ICAN3                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_KVASER_PCIEFD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_TI_HECC                              policy<{'armhf': 'm'}>
+CONFIG_CAN_XILINXCAN                            policy<{'arm64': 'm'}>
+CONFIG_PCH_CAN                                  policy<{'i386': 'm'}>
+CONFIG_CAN_IFI_CANFD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_M_CAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_M_CAN_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_M_CAN_TCAN4X5X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_MSCAN                                policy<{'ppc64el': 'm'}>
+CONFIG_CAN_PEAK_PCIEFD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_RCAR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CAN_RCAR_CANFD                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CAN_SOFTING                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_SOFTING_CS                           policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support >> Bosch CC770 and Intel AN82527 devices
+CONFIG_CAN_CC770                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_CC770_ISA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_CC770_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support >> Bosch C_CAN/D_CAN devices
+CONFIG_CAN_C_CAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_C_CAN_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_C_CAN_PCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support >> CAN SPI interfaces
+CONFIG_CAN_HI311X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_MCP251X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support >> CAN USB interfaces
+CONFIG_CAN_8DEV_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_EMS_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_ESD_USB2                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_GS_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_KVASER_USB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_MCBA_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_PEAK_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_UCAN                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support >> Philips/NXP SJA1000 devices
+CONFIG_CAN_SJA1000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_EMS_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_EMS_PCMCIA                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CAN_F81601                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_KVASER_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_PEAK_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_PEAK_PCIEC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CAN_PEAK_PCMCIA                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CAN_PLX_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_SJA1000_ISA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_SJA1000_PLATFORM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_CAN_TSCAN1                               policy<{'i386': 'm'}>
+
+# Menu: Networking support >> NFC subsystem support
+CONFIG_NFC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NFC_DIGITAL                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_NCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_NCI_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_NCI_UART                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_HCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_SHDLC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Networking support >> NFC subsystem support >> Near Field Communication (NFC) devices
+CONFIG_NFC_TRF7970A                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_MEI_PHY                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NFC_SIM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_PORT100                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_FDP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_FDP_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_PN544_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_PN544_MEI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NFC_PN533_USB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_PN533_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_MICROREAD_I2C                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_MICROREAD_MEI                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NFC_MRVL_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_MRVL_UART                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_MRVL_I2C                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_MRVL_SPI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_ST21NFCA_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_ST_NCI_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_ST_NCI_SPI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_NXP_NCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_NXP_NCI_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_S3FWRN5_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NFC_ST95HF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> Networking options
+CONFIG_PACKET                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PACKET_DIAG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_UNIX                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNIX_DIAG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TLS                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TLS_DEVICE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFRM_USER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFRM_INTERFACE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFRM_SUB_POLICY                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFRM_MIGRATE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFRM_STATISTICS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_KEY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_KEY_MIGRATE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IUCV                                     policy<{'s390x': 'y'}>
+CONFIG_AFIUCV                                   policy<{'s390x': 'm'}>
+CONFIG_SMC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SMC_DIAG                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XDP_SOCKETS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XDP_SOCKETS_DIAG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETWORK_SECMARK                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETWORK_PHY_TIMESTAMPING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BRIDGE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_IGMP_SNOOPING                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BRIDGE_VLAN_FILTERING                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VLAN_8021Q                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VLAN_8021Q_GVRP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VLAN_8021Q_MVRP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DECNET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DECNET_ROUTER                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_LLC2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ATALK                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_X25                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LAPB                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHONET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MAC802154                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_DCB                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DNS_RESOLVER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETLINK_DIAG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_NSH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_HSR                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QRTR                                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QRTR_SMD                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QRTR_TUN                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CGROUP_NET_PRIO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_NET_CLASSID                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_JIT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SMC                                      mark<ENFORCED> note<LP:1789934>
+CONFIG_SMC_DIAG                                 mark<ENFORCED> note<LP:1789934>
+CONFIG_NETWORK_PHY_TIMESTAMPING                 mark<ENFORCED> note<LP:1785816>
+
+# Menu: Networking support >> Networking options >> 6LoWPAN Support
+CONFIG_6LOWPAN                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_6LOWPAN_DEBUGFS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Networking support >> Networking options >> 6LoWPAN Support >> Next Header and Generic Header Compression Support
+CONFIG_6LOWPAN_NHC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_DEST                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_FRAGMENT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_HOP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_IPV6                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_MOBILITY                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_ROUTING                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_NHC_UDP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_6LOWPAN_GHC_UDP                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_6LOWPAN_GHC_ICMPV6                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Networking support >> Networking options >> Appletalk interfaces support
+CONFIG_DEV_APPLETALK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_LTPC                                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COPS                                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COPS_DAYNA                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_COPS_TANGENT                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IPDDP                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_IPDDP                                    mark<ENFORCED> note<LP:1559772>
+
+# Menu: Networking support >> Networking options >> Asynchronous Transfer Mode (ATM)
+CONFIG_ATM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ATM_CLIP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_CLIP_NO_ICMP                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_ATM_LANE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_MPOA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_BR2684                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_ATM_BR2684_IPFILTER                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Networking support >> Networking options >> B.A.T.M.A.N. Advanced Meshing Protocol
+CONFIG_BATMAN_ADV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BATMAN_ADV_BATMAN_V                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BATMAN_ADV_BLA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BATMAN_ADV_DAT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BATMAN_ADV_NC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BATMAN_ADV_MCAST                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BATMAN_ADV_DEBUGFS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BATMAN_ADV_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_BATMAN_ADV_SYSFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_BATMAN_ADV_TRACING                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Networking support >> Networking options >> Distributed Switch Architecture
+CONFIG_NET_DSA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_8021Q                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_BRCM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_BRCM_PREPEND                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_GSWIP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_DSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_EDSA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_MTK                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_KSZ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_QCA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_LAN9303                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_SJA1105                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_DSA_TAG_TRAILER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> Networking options >> IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support
+CONFIG_IEEE802154                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IEEE802154_NL802154_EXPERIMENTAL         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_IEEE802154_SOCKET                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_IEEE802154_6LOWPAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> Networking options >> MultiProtocol Label Switching
+CONFIG_MPLS                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_MPLS_GSO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MPLS_ROUTING                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MPLS_IPTUNNEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter)
+CONFIG_NETFILTER                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_ADVANCED                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BRIDGE_NETFILTER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_BRIDGE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Core Netfilter Configuration
+CONFIG_NETFILTER_INGRESS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_NETLINK_ACCT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_QUEUE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_LOG                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_OSF                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_NETDEV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE_INET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Core Netfilter Configuration >> Netfilter Xtables support (required for ip_tables)
+CONFIG_NETFILTER_XTABLES                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MARK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_CONNMARK                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_SET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_AUDIT                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CONNMARK             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_DSCP                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_HL                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_HMARK                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_LED                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NETFILTER_XT_TARGET_LOG                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_MARK                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_NAT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NETMAP               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NFLOG                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NOTRACK              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NETFILTER_XT_TARGET_RATEEST              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_REDIRECT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TEE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TPROXY               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TRACE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_SECMARK              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TCPMSS               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_BPF                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CGROUP                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CLUSTER               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_COMMENT               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNMARK              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CPU                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_DCCP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_DSCP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_ECN                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_ESP                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_HELPER                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_HL                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_IPCOMP                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_IPRANGE               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_IPVS                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_L2TP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_LENGTH                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_LIMIT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_MAC                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_MARK                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_NFACCT                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_OSF                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_OWNER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_POLICY                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_QUOTA                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_RATEEST               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_REALM                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_RECENT                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_SCTP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_SOCKET                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_STATE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_STATISTIC             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_STRING                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_TCPMSS                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_TIME                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_U32                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Core Netfilter Configuration >> Netfilter connection tracking support
+CONFIG_NF_CONNTRACK                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_MARK                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_SECMARK                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_ZONES                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_PROCFS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NF_CONNTRACK_EVENTS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_TIMEOUT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_TIMESTAMP                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_LABELS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_PROTO_DCCP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_PROTO_SCTP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_PROTO_UDPLITE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_AMANDA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_FTP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_H323                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_IRC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_NETBIOS_NS                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_SNMP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_PPTP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_SANE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_SIP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_TFTP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CT_NETLINK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CT_NETLINK_TIMEOUT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CT_NETLINK_HELPER                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_GLUE_CT                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_NAT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+#
+CONFIG_NF_CONNTRACK_PROCFS                      flag<DEPRECATED>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Core Netfilter Configuration >> Netfilter nf_tables support
+CONFIG_NF_TABLES                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_SET                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_INET                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFT_NUMGEN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_CT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FLOW_OFFLOAD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_COUNTER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_CONNLIMIT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_LOG                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_LIMIT                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_MASQ                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REDIR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_NAT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_TUNNEL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_OBJREF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_QUEUE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_QUOTA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REJECT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_COMPAT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_HASH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_INET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_XFRM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_SOCKET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_OSF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_TPROXY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_SYNPROXY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Core Netfilter Configuration >> Netfilter nf_tables support >> Netfilter nf_tables netdev tables support
+CONFIG_NF_TABLES_NETDEV                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_DUP_NETDEV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_DUP_NETDEV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FWD_NETDEV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_NETDEV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> DECnet: Netfilter Configuration
+CONFIG_DECNET_NF_GRABULATOR                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Ethernet Bridge nf_tables support
+CONFIG_NF_TABLES_BRIDGE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_BRIDGE_META                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_BRIDGE_REJECT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_BRIDGE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> Ethernet Bridge tables (ebtables) support
+CONFIG_BRIDGE_NF_EBTABLES                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_BROUTE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_T_FILTER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_T_NAT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_802_3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_AMONG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_ARP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_IP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_IP6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_LIMIT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_MARK                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_PKTTYPE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_STP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_VLAN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_ARPREPLY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_DNAT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_MARK_T                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_REDIRECT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_SNAT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_LOG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_NFLOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IP set support
+CONFIG_IP_SET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_MAX                               policy<{'amd64': '256', 'arm64': '256', 'armhf': '256', 'i386': '256', 'ppc64el': '256', 's390x': '256'}>
+CONFIG_IP_SET_BITMAP_IP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_BITMAP_IPMAC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_BITMAP_PORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPMARK                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPPORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPPORTIP                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPPORTNET                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPMAC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_MAC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETPORTNET                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETNET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETPORT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETIFACE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_LIST_SET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IP virtual server support
+CONFIG_IP_VS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_IPV6                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IP_VS_TAB_BITS                           policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'i386': '12', 'ppc64el': '12', 's390x': '12'}>
+CONFIG_IP_VS_PROTO_TCP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_UDP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_ESP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_AH                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_SCTP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_RR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_WRR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_LC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_WLC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_FO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_OVF                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_LBLC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_LBLCR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_DH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_SH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_MH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_SED                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_NQ                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_SH_TAB_BITS                        policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', 's390x': '8'}>
+CONFIG_IP_VS_MH_TAB_INDEX                       policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'i386': '12', 'ppc64el': '12', 's390x': '12'}>
+CONFIG_IP_VS_FTP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_NFCT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PE_SIP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IP: Netfilter Configuration
+CONFIG_NF_SOCKET_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TPROXY_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_IPV4                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFT_DUP_IPV4                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_IPV4                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_ARP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_FLOW_TABLE_IPV4                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_DUP_IPV4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_ARP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_IPV4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_REJECT_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_SNMP_BASIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_ARPTABLES                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_ARPFILTER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_ARP_MANGLE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IP: Netfilter Configuration >> IP tables support (required for filtering/masq/NAT)
+CONFIG_IP_NF_IPTABLES                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_AH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_ECN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_RPFILTER                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_TTL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_FILTER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_REJECT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_SYNPROXY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_RAW                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_SECURITY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IP: Netfilter Configuration >> IP tables support (required for filtering/masq/NAT) >> Packet mangling
+CONFIG_IP_NF_MANGLE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_CLUSTERIP                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_ECN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_TTL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IP: Netfilter Configuration >> IP tables support (required for filtering/masq/NAT) >> iptables NAT support
+CONFIG_IP_NF_NAT                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_MASQUERADE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_NETMAP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_REDIRECT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IPv6: Netfilter Configuration
+CONFIG_NF_SOCKET_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TPROXY_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_IPV6                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFT_DUP_IPV6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_IPV6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE_IPV6                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_DUP_IPV6                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_REJECT_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_IPV6                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) >> IPv6: Netfilter Configuration >> IP6 tables support (required for filtering)
+CONFIG_IP6_NF_IPTABLES                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_AH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_EUI64                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_FRAG                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_OPTS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_HL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_IPV6HEADER                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_MH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_RPFILTER                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_RT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_SRH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_HL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_FILTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_REJECT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_SYNPROXY                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MANGLE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_RAW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_SECURITY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_NAT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_MASQUERADE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_NPT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Network testing
+CONFIG_NET_PKTGEN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_DROP_MONITOR                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_NET_DROP_MONITOR                         note<LP #1660634>
+
+# Menu: Networking support >> Networking options >> QoS and/or fair queueing
+CONFIG_NET_SCHED                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_SCH_CBQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_HTB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_HFSC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_ATM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_SCH_PRIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_MULTIQ                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_RED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_SFB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_SFQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_TEQL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_TBF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_ETF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_TAPRIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_GRED                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_DSMARK                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_NETEM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_DRR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_MQPRIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_SKBPRIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CHOKE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_QFQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CODEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_FQ_CODEL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CAKE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_FQ                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_HHF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_PIE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_INGRESS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_PLUG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_BASIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_TCINDEX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_ROUTE4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_FW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_U32                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CLS_U32_PERF                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CLS_U32_MARK                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_CLS_RSVP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_RSVP6                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_FLOW                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_CGROUP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_BPF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_FLOWER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_MATCHALL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> QoS and/or fair queueing >> Actions
+CONFIG_NET_CLS_ACT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_ACT_POLICE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_GACT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GACT_PROB                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_ACT_MIRRED                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SAMPLE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_IPT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_NAT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_PEDIT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SIMP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SKBEDIT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CSUM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_MPLS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_VLAN                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_BPF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CONNMARK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CTINFO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SKBMOD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_TUNNEL_KEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TC_SKB_EXT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Networking support >> Networking options >> QoS and/or fair queueing >> Actions >> Inter-FE action based on IETF ForCES InterFE LFB
+CONFIG_NET_ACT_IFE                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Networking support >> Networking options >> QoS and/or fair queueing >> Allow override default queue discipline
+CONFIG_NET_SCH_DEFAULT                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Networking support >> Networking options >> QoS and/or fair queueing >> Allow override default queue discipline >> Default queuing discipline
+
+# Menu: Networking support >> Networking options >> QoS and/or fair queueing >> Extended Matches
+CONFIG_NET_EMATCH                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_EMATCH_STACK                         policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', 's390x': '32'}>
+CONFIG_NET_EMATCH_CMP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_NBYTE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_U32                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_META                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_TEXT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_CANID                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NET_EMATCH_IPSET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_IPT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking
+CONFIG_INET                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MULTICAST                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_IPIP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IPGRE_DEMUX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IPGRE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IPGRE_BROADCAST                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYN_COOKIES                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_IPVTI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FOU                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FOU_IP_TUNNELS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INET_AH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_ESP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_ESP_OFFLOAD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_IPCOMP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_MD5SIG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETLABEL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_SWITCHDEV                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_L3_MASTER_DEV                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_NCSI                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NCSI_OEM_CMD_GET_MAC                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_STREAM_PARSER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SYN_COOKIES                              mark<ENFORCED>
+CONFIG_NET_SWITCHDEV                            mark<ENFORCED> note<LP: #1628241, updated to 'y' for 4.11-rc3 except for s390x>
+CONFIG_NET_SWITCHDEV                            mark<ENFORCED> note<LP: #1865452, updated to 'y' for s390x starting with focal>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> BPF based packet filtering framework (BPFILTER)
+CONFIG_BPFILTER                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPFILTER_UMH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> INET: socket monitoring interface
+CONFIG_INET_DIAG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_UDP_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_RAW_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_DIAG_DESTROY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> IP: advanced router
+CONFIG_IP_ADVANCED_ROUTER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_FIB_TRIE_STATS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MULTIPLE_TABLES                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_ROUTE_MULTIPATH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_ROUTE_VERBOSE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> IP: kernel level autoconfiguration
+CONFIG_IP_PNP                                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_IP_PNP                                   note<LP:1259861>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> IP: multicast routing
+CONFIG_IP_MROUTE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MROUTE_MULTIPLE_TABLES                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_PIMSM_V1                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_PIMSM_V2                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> Layer Two Tunneling Protocol (L2TP)
+CONFIG_L2TP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_DEBUGFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_V3                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_L2TP_IP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_ETH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> Open vSwitch
+CONFIG_OPENVSWITCH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPENVSWITCH_GRE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPENVSWITCH_VXLAN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPENVSWITCH_GENEVE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> TCP: advanced congestion control
+CONFIG_TCP_CONG_ADVANCED                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCP_CONG_BIC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_CUBIC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCP_CONG_WESTWOOD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_HTCP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_HSTCP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_HYBLA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_VEGAS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_NV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_SCALABLE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_LP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_VENO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_YEAH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_ILLINOIS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_DCTCP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_CDG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_BBR                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> TCP: advanced congestion control >> Default TCP congestion control
+CONFIG_DEFAULT_CUBIC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_RENO                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The DCCP Protocol
+CONFIG_IP_DCCP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The DCCP Protocol >> DCCP CCIDs Configuration
+CONFIG_IP_DCCP_CCID2_DEBUG                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IP_DCCP_CCID3                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_IP_DCCP_CCID3_DEBUG                      policy<{'s390x': 'n'}>
+#
+CONFIG_IP_DCCP_CCID3                            flag<REVIEW>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The DCCP Protocol >> DCCP Kernel Hacking
+CONFIG_IP_DCCP_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The IPv6 protocol
+CONFIG_IPV6                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_ROUTER_PREF                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_ROUTE_INFO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_OPTIMISTIC_DAD                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INET6_AH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_ESP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_ESP_OFFLOAD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_IPCOMP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_MIP6                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_ILA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_VTI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_SIT                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_SIT_6RD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_TUNNEL                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_GRE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_MULTIPLE_TABLES                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SUBTREES                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_MROUTE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_PIMSM_V2                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SEG6_LWTUNNEL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SEG6_HMAC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_IPV6_OPTIMISTIC_DAD                      flag<EXPERIMENTAL>
+CONFIG_IPV6                                     mark<ENFORCED> note<if this is a module we get a module load for every ipv6 packet>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The Reliable Datagram Sockets Protocol
+CONFIG_RDS                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDS_RDMA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDS_TCP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The SCTP Protocol
+CONFIG_IP_SCTP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCTP_DBG_OBJCNT                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SCTP_COOKIE_HMAC_MD5                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCTP_COOKIE_HMAC_SHA1                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SCTP_DBG_OBJCNT                          flag<DEBUG>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The SCTP Protocol >> Default SCTP cookie HMAC encoding
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Networking support >> Networking options >> TCP/IP networking >> The TIPC Protocol
+CONFIG_TIPC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TIPC_MEDIA_IB                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIPC_MEDIA_UDP                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIPC_DIAG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+
+# Menu: Networking support >> Networking options >> Virtual Socket protocol
+CONFIG_VSOCKETS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VSOCKETS_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VMWARE_VMCI_VSOCKETS                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIRTIO_VSOCKETS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_HYPERV_VSOCKETS                          policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Networking support >> Plan 9 Resource Sharing Support (9P2000)
+CONFIG_NET_9P                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_9P_VIRTIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_9P_XEN                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_NET_9P_RDMA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_9P_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_NET_9P                                   note<LP:1557994>
+
+# Menu: Networking support >> RF switch subsystem support
+CONFIG_RFKILL                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RFKILL_INPUT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_RFKILL_GPIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+
+# Menu: Networking support >> RxRPC session sockets
+CONFIG_AF_RXRPC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AF_RXRPC_IPV6                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AF_RXRPC_INJECT_LOSS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AF_RXRPC_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RXKAD                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Networking support >> WiMAX Wireless Broadband support
+CONFIG_WIMAX                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_WIMAX_DEBUG_LEVEL                        policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', }>
+
+# Menu: Networking support >> Wireless
+CONFIG_WIRELESS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_LIB80211_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+
+# Menu: Networking support >> Wireless >> Generic IEEE 802.11 Networking Stack (mac80211)
+CONFIG_MAC80211                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_MAC80211_RC_MINSTREL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MAC80211_MESH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MAC80211_LEDS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MAC80211_DEBUGFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_MAC80211_MESSAGE_TRACING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Networking support >> Wireless >> Generic IEEE 802.11 Networking Stack (mac80211) >> Default rate control algorithm
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Networking support >> Wireless >> Generic IEEE 802.11 Networking Stack (mac80211) >> Select mac80211 debugging features
+CONFIG_MAC80211_DEBUG_MENU                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_MAC80211_STA_HASH_MAX_SIZE               policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', }>
+
+# Menu: Networking support >> Wireless >> cfg80211 - wireless configuration API
+CONFIG_CFG80211                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', }>
+CONFIG_NL80211_TESTMODE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CFG80211_DEVELOPER_WARNINGS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CFG80211_DEFAULT_PS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CFG80211_DEBUGFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CFG80211_CRDA_SUPPORT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CFG80211_WEXT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+#
+CONFIG_CFG80211_WEXT                            flag<REVIEW>
+
+# Menu: Networking support >> Wireless >> cfg80211 - wireless configuration API >> cfg80211 certification onus
+CONFIG_CFG80211_CERTIFICATION_ONUS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+
+# Menu: Platform selection
+CONFIG_ARCH_ACTIONS                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_SUNXI                               policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_ARCH_ALPINE                              policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_ARCH_BCM2835                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_BERLIN                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_BRCMSTB                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_EXYNOS                              policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_ARCH_HISI                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MEDIATEK                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MESON                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MVEBU                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MXC                                 policy<{'arm64': 'y', 'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_QCOM                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_RENESAS                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_ROCKCHIP                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_TEGRA                               policy<{'arm64': 'n', 'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_UNIPHIER                            policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_ZX                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+#
+CONFIG_ARCH_ROCKCHIP                            note<LP:1566283 / LP:1825222>
+CONFIG_ARCH_ZX                                  note<LP:1628503>
+
+# Menu: Platform selection >> Architecture: arm64
+CONFIG_ARCH_AGILEX                              policy<{'arm64': 'y'}>
+CONFIG_ARCH_BCM_IPROC                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_BITMAIN                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_K3                                  policy<{'arm64': 'y'}>
+CONFIG_ARCH_LAYERSCAPE                          policy<{'arm64': 'y'}>
+CONFIG_ARCH_LG1K                                policy<{'arm64': 'y'}>
+CONFIG_ARCH_REALTEK                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_SEATTLE                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_STRATIX10                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_SYNQUACER                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_SPRD                                policy<{'arm64': 'y'}>
+CONFIG_ARCH_THUNDER                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_THUNDER2                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_XGENE                               policy<{'arm64': 'y'}>
+CONFIG_ARCH_ZYNQMP                              policy<{'arm64': 'y'}>
+
+# Menu: Power management and ACPI options
+CONFIG_SUSPEND                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SUSPEND_FREEZER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SUSPEND_SKIP_SYNC                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_HIBERNATION                              policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PM_STD_PARTITION                         policy<{'amd64': '""', 'armhf': '""', 'i386': '""'}>
+CONFIG_PM_AUTOSLEEP                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PM_WAKELOCKS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_WAKELOCKS_LIMIT                       policy<{'amd64': '100', 'arm64': '100', 'armhf': '100', 'i386': '100', 'ppc64el': '100'}>
+CONFIG_PM_WAKELOCKS_GC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PM_TRACE_RTC                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_APM_EMULATION                            policy<{'armhf': 'n'}>
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_ENERGY_MODEL                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_KVM_GUEST                                policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SFI                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_IDLE                               policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_HIBERNATION                              flag<REVIEW>
+CONFIG_HIBERNATION                              mark<ENFORCED> note<LP:1867753>
+CONFIG_PM                                       mark<ENFORCED> note<LP:1867753>
+
+# Menu: Power management and ACPI options >> 512x-based boards >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> 52xx-based boards >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> 82xx-based boards (PQ II) >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> 83xx-based boards >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> 86xx-based boards >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> 8xx Machine Type >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> ACPI (Advanced Configuration and Power Interface) Support
+#
+
+# Menu: Power management and ACPI options >> ACPI (Advanced Configuration and Power Interface) Support >> ACPI Platform Error Interface (APEI)
+
+# Menu: Power management and ACPI options >> ACPI (Advanced Configuration and Power Interface) Support >> PMIC (Power Management Integrated Circuit) operation region support
+
+# Menu: Power management and ACPI options >> APM (Advanced Power Management) BIOS support >> Architecture: x86
+CONFIG_APM                                      policy<{'i386': 'm'}>
+CONFIG_APM_IGNORE_USER_SUSPEND                  policy<{'i386': 'n'}>
+CONFIG_APM_DO_ENABLE                            policy<{'i386': 'n'}>
+CONFIG_APM_CPU_IDLE                             policy<{'i386': 'n'}>
+CONFIG_APM_DISPLAY_BLANK                        policy<{'i386': 'n'}>
+CONFIG_APM_ALLOW_INTS                           policy<{'i386': 'n'}>
+#
+CONFIG_APM                                      flag<REVIEW>
+
+# Menu: Power management and ACPI options >> Architecture: arm
+
+# Menu: Power management and ACPI options >> Architecture: arm64
+
+# Menu: Power management and ACPI options >> Architecture: powerpc
+CONFIG_SCOM_DEBUGFS                             policy<{'ppc64el': 'y'}>
+CONFIG_EPAPR_PARAVIRT                           policy<{'ppc64el': 'y'}>
+CONFIG_PPC_OF_BOOT_TRAMPOLINE                   policy<{'ppc64el': 'y'}>
+CONFIG_PPC_DT_CPU_FTRS                          policy<{'ppc64el': 'y'}>
+CONFIG_UDBG_RTAS_CONSOLE                        policy<{'ppc64el': 'n'}>
+CONFIG_MPIC_MSGR                                policy<{'ppc64el': 'n'}>
+CONFIG_RTAS_PROC                                policy<{'ppc64el': 'y'}>
+CONFIG_RTAS_FLASH                               policy<{'ppc64el': 'm'}>
+CONFIG_GEN_RTC                                  policy<{'ppc64el': 'y'}>
+CONFIG_SIMPLE_GPIO                              policy<{'ppc64el': 'n'}>
+
+# Menu: Power management and ACPI options >> Architecture: s390
+
+# Menu: Power management and ACPI options >> Architecture: x86
+
+# Menu: Power management and ACPI options >> CPU Frequency scaling
+
+# Menu: Power management and ACPI options >> CPU Frequency scaling >> CPU Frequency scaling
+CONFIG_CPU_FREQ                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_STAT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_PERFORMANCE                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_POWERSAVE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_USERSPACE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_ONDEMAND                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_X86_INTEL_PSTATE                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_PCC_CPUFREQ                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_SFI_CPUFREQ                          policy<{'i386': 'm'}>
+CONFIG_X86_POWERNOW_K6                          policy<{'i386': 'm'}>
+CONFIG_X86_POWERNOW_K7                          policy<{'i386': 'm'}>
+CONFIG_X86_GX_SUSPMOD                           policy<{'i386': 'm'}>
+CONFIG_X86_SPEEDSTEP_CENTRINO                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE             policy<{'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_ICH                        policy<{'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_SMI                        policy<{'i386': 'y'}>
+CONFIG_X86_P4_CLOCKMOD                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_CPUFREQ_NFORCE2                      policy<{'i386': 'y'}>
+CONFIG_X86_LONGRUN                              policy<{'i386': 'm'}>
+CONFIG_X86_LONGHAUL                             policy<{'i386': 'm'}>
+CONFIG_X86_E_POWERSAVER                         policy<{'i386': 'n'}>
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK          policy<{'i386': 'y'}>
+CONFIG_ACPI_CPPC_CPUFREQ                        policy<{'arm64': 'm'}>
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM       policy<{'arm64': 'm'}>
+CONFIG_ARM_BIG_LITTLE_CPUFREQ                   policy<{'armhf': 'm'}>
+CONFIG_ARM_SCPI_CPUFREQ                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_VEXPRESS_SPC_CPUFREQ                 policy<{'armhf': 'm'}>
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ                  policy<{'arm64': 'm'}>
+CONFIG_ARM_IMX6Q_CPUFREQ                        policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_ARM_MEDIATEK_CPUFREQ                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_OMAP2PLUS_CPUFREQ                    policy<{'armhf': 'y'}>
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM                   policy<{'arm64': 'm'}>
+CONFIG_ARM_QCOM_CPUFREQ_HW                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_RASPBERRYPI_CPUFREQ                  policy<{'arm64': 'm'}>
+CONFIG_ARM_SCMI_CPUFREQ                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_TEGRA20_CPUFREQ                      policy<{'armhf-generic': 'y'}>
+CONFIG_ARM_TEGRA186_CPUFREQ                     policy<{'armhf-generic': 'm'}>
+CONFIG_ARM_TI_CPUFREQ                           policy<{'armhf': 'y'}>
+CONFIG_POWERNV_CPUFREQ                          policy<{'ppc64el': 'y'}>
+CONFIG_QORIQ_CPUFREQ                            policy<{'arm64': 'm', 'armhf': 'm'}>
+#
+CONFIG_CPU_FREQ_STAT                            note<dependancy of boot essential>
+CONFIG_CPU_FREQ_GOV_PERFORMANCE                 note<not autoloadable>
+CONFIG_CPU_FREQ_GOV_POWERSAVE                   note<not autoloadable>
+CONFIG_CPU_FREQ_GOV_USERSPACE                   note<not autoloadable>
+CONFIG_CPU_FREQ_GOV_ONDEMAND                    note<not autoloadable>
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE                note<not autoloadable>
+CONFIG_X86_PCC_CPUFREQ                          note<not autoloadable>
+CONFIG_X86_SPEEDSTEP_CENTRINO                   note<not autoloadable>
+CONFIG_X86_SPEEDSTEP_ICH                        note<not autoloadable>
+CONFIG_X86_SPEEDSTEP_SMI                        note<not autoloadable>
+CONFIG_X86_CPUFREQ_NFORCE2                      note<not autoloadable>
+
+# Menu: Power management and ACPI options >> CPU Frequency scaling >> CPU Frequency scaling >> ACPI Processor P-States driver
+CONFIG_X86_ACPI_CPUFREQ                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_ACPI_CPUFREQ_CPB                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_POWERNOW_K8                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_AMD_FREQ_SENSITIVITY                 policy<{'amd64': 'm', 'i386': 'm'}>
+#
+CONFIG_X86_ACPI_CPUFREQ                         note<not autoloadable>
+CONFIG_X86_POWERNOW_K8                          note<not autoloadable>
+
+# Menu: Power management and ACPI options >> CPU Frequency scaling >> CPU Frequency scaling >> CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)
+
+# Menu: Power management and ACPI options >> CPU Frequency scaling >> CPU Frequency scaling >> Default CPUFreq governor
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+#
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE         note<for bootspeed>
+
+# Menu: Power management and ACPI options >> CPU Frequency scaling >> CPU Frequency scaling >> Generic DT based cpufreq driver
+CONFIG_CPUFREQ_DT                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_ARMADA_37XX_CPUFREQ                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_ARMADA_8K_CPUFREQ                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_HIGHBANK_CPUFREQ                     policy<{'armhf': 'm'}>
+CONFIG_ARM_IMX_CPUFREQ_DT                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_ARM_TEGRA124_CPUFREQ                     policy<{'armhf-generic': 'y'}>
+#
+CONFIG_CPUFREQ_DT                               note<not autoloadable>
+
+# Menu: Power management and ACPI options >> CPU Idle
+
+# Menu: Power management and ACPI options >> CPU Idle >> CPU idle PM support
+CONFIG_CPU_IDLE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_LADDER                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_MENU                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_TEO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_HALTPOLL                    policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HALTPOLL_CPUIDLE                         policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Power management and ACPI options >> CPU Idle >> CPU idle PM support >> ARM CPU Idle Drivers
+CONFIG_ARM_CPUIDLE                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_PSCI_CPUIDLE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_BIG_LITTLE_CPUIDLE                   policy<{'armhf': 'y'}>
+CONFIG_ARM_HIGHBANK_CPUIDLE                     policy<{'armhf-generic': 'n', 'armhf-generic-lpae': 'y'}>
+CONFIG_ARM_EXYNOS_CPUIDLE                       policy<{'armhf': 'y'}>
+CONFIG_ARM_MVEBU_V7_CPUIDLE                     policy<{'armhf': 'y'}>
+#
+CONFIG_ARM_HIGHBANK_CPUIDLE                     note<broken on ecx-1000>
+
+# Menu: Power management and ACPI options >> CPU Idle >> CPU idle PM support >> MIPS CPU Idle Drivers
+
+# Menu: Power management and ACPI options >> CPU Idle >> CPU idle PM support >> POWERPC CPU Idle Drivers
+CONFIG_PSERIES_CPUIDLE                          policy<{'ppc64el': 'y'}>
+CONFIG_POWERNV_CPUIDLE                          policy<{'ppc64el': 'y'}>
+
+# Menu: Power management and ACPI options >> CPUIdle driver >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> CPUIdle driver >> CPU Idle
+
+# Menu: Power management and ACPI options >> CPUIdle driver >> CPU Idle >> CPU idle PM support
+
+# Menu: Power management and ACPI options >> CPUIdle driver >> CPU Idle >> CPU idle PM support >> ARM CPU Idle Drivers
+#
+
+# Menu: Power management and ACPI options >> CPUIdle driver >> CPU Idle >> CPU idle PM support >> MIPS CPU Idle Drivers
+
+# Menu: Power management and ACPI options >> CPUIdle driver >> CPU Idle >> CPU idle PM support >> POWERPC CPU Idle Drivers
+
+# Menu: Power management and ACPI options >> Cell Broadband Engine options >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> Embedded 6xx/7xx/7xxx-based boards >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> Freescale Book-E Machine Type >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> Freescale Ethernet driver platform-specific options >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> Freescale Ethernet driver platform-specific options >> Second Ethernet channel >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> IBM PowerNV (Non-Virtualized) platform support >> Architecture: powerpc
+CONFIG_PPC_POWERNV                              policy<{'ppc64el': 'y'}>
+CONFIG_OPAL_PRD                                 policy<{'ppc64el': 'm'}>
+CONFIG_PPC_MEMTRACE                             policy<{'ppc64el': 'y'}>
+CONFIG_PPC_VAS                                  policy<{'ppc64el': 'y'}>
+
+# Menu: Power management and ACPI options >> IBM pSeries & new (POWER5-based) iSeries
+CONFIG_CMM                                      policy<{'ppc64el': 'm', 's390x': 'y'}>
+#
+CONFIG_CMM                                      flag<REVIEW>
+
+# Menu: Power management and ACPI options >> IBM pSeries & new (POWER5-based) iSeries >> Architecture: powerpc
+CONFIG_PPC_PSERIES                              policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SPLPAR                               policy<{'ppc64el': 'y'}>
+CONFIG_DTL                                      policy<{'ppc64el': 'y'}>
+CONFIG_PSERIES_ENERGY                           policy<{'ppc64el': 'm'}>
+CONFIG_SCANLOG                                  policy<{'ppc64el': 'm'}>
+CONFIG_IO_EVENT_IRQ                             policy<{'ppc64el': 'y'}>
+CONFIG_LPARCFG                                  policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SMLPAR                               policy<{'ppc64el': 'y'}>
+CONFIG_HV_PERF_CTRS                             policy<{'ppc64el': 'y'}>
+CONFIG_PAPR_SCM                                 policy<{'ppc64el': 'm'}>
+CONFIG_PPC_SVM                                  policy<{'ppc64el': 'y'}>
+
+# Menu: Power management and ACPI options >> MPC8xx CPM Options >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> MPC8xx CPM Options >> Microcode patch selection >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> PA Semi PWRficient options >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> PS3 Platform Options >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> PS3 Platform Options >> PS3 Advanced configuration options >> Architecture: powerpc
+
+# Menu: Power management and ACPI options >> Power Management Debug Support
+CONFIG_PM_DEBUG                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PM_ADVANCED_DEBUG                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', }>
+CONFIG_PM_TEST_SUSPEND                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DPM_WATCHDOG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', }>
+#
+CONFIG_PM_DEBUG                                 flag<REVIEW>
+
+# Menu: Power management and ACPI options >> Support for 47x variant >> Architecture: powerpc
+
+# Menu: Processor support
+CONFIG_SMP                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NR_CPUS                                  policy<{'amd64': '8192', 'arm64': '256', 'armhf': '4', 'i386': '8', 'ppc64el': '2048', 's390x': '512'}>
+#
+CONFIG_NR_CPUS                                  note<LP:1864198>
+
+# Menu: Processor support >> Architecture: powerpc
+CONFIG_ALTIVEC                                  policy<{'ppc64el': 'y'}>
+CONFIG_VSX                                      policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RADIX_MMU                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RADIX_MMU_DEFAULT                    policy<{'ppc64el': 'y'}>
+CONFIG_PPC_KUEP                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_KUAP                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_KUAP_DEBUG                           policy<{'ppc64el': 'n'}>
+
+# Menu: Processor support >> CPU selection
+CONFIG_GENERIC_CPU                              policy<{'amd64': 'y', 'ppc64el': 'y'}>
+
+# Menu: Processor support >> CPU selection >> Architecture: powerpc
+CONFIG_POWER7_CPU                               policy<{'ppc64el': 'n'}>
+CONFIG_POWER8_CPU                               policy<{'ppc64el': 'n'}>
+CONFIG_POWER9_CPU                               policy<{'ppc64el': 'n'}>
+
+# Menu: Processor support >> Processor Type >> Architecture: powerpc
+CONFIG_PPC_BOOK3S_64                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_BOOK3E_64                            policy<{'ppc64el': 'n'}>
+
+# Menu: Processor type and features
+CONFIG_COMPAT                                   policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NUMA                                     policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NODES_SHIFT                              policy<{'amd64': '10', 'arm64': '6', 'ppc64el': '8', 's390x': '4'}>
+CONFIG_KEXEC_FILE                               policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KEXEC_SIG                                policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ARCH_RANDOM                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RELOCATABLE                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RANDOMIZE_BASE                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_SCHED_MC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_SCHED_SMT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_CPU                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PARAVIRT                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y'}>
+CONFIG_PARAVIRT_TIME_ACCOUNTING                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_XEN                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y'}>
+CONFIG_HARDEN_BRANCH_PREDICTOR                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HIGHPTE                                  policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_MATH_EMULATION                           policy<{'i386': 'n'}>
+CONFIG_COMPAT_VDSO                              policy<{'amd64': 'n', 'i386': 'n', 's390x': 'y'}>
+CONFIG_CMDLINE_BOOL                             policy<{'amd64': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_HIGHMEM                                  policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_FORCE_MAX_ZONEORDER                      policy<{'arm64': '13', 'armhf-generic': '12', 'armhf-generic-lpae': '11', 'ppc64el': '9', 's390x': '9'}>
+#
+CONFIG_RELOCATABLE                              flag<REVIEW>
+CONFIG_HOTPLUG_CPU                              flag<REVIEW>
+CONFIG_NUMA                                     note<LP:1543165 LP:1557690>
+CONFIG_COMPAT_VDSO                              mark<ENFORCED>
+
+# Menu: Processor type and features >> ARM errata workarounds via the alternatives framework >> Architecture: arm64
+CONFIG_ARM64_ERRATUM_826319                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_827319                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_824069                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_819472                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_832075                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_834220                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_845719                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_843419                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1024718                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1418040                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1165522                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1286807                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1463225                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1542419                    policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_22375                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_23144                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_23154                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_27456                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_30115                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_TX2_ERRATUM_219                   policy<{'arm64': 'y'}>
+CONFIG_QCOM_FALKOR_ERRATUM_1003                 policy<{'arm64': 'y'}>
+CONFIG_QCOM_FALKOR_ERRATUM_1009                 policy<{'arm64': 'y'}>
+CONFIG_QCOM_QDF2400_ERRATUM_0065                policy<{'arm64': 'y'}>
+CONFIG_SOCIONEXT_SYNQUACER_PREITS               policy<{'arm64': 'y'}>
+CONFIG_HISILICON_ERRATUM_161600802              policy<{'arm64': 'y'}>
+CONFIG_QCOM_FALKOR_ERRATUM_E1041                policy<{'arm64': 'y'}>
+CONFIG_FUJITSU_ERRATUM_010001                   policy<{'arm64': 'y'}>
+#
+CONFIG_ARM64_ERRATUM_843419                     mark<ENFORCED> note<LP:1647793>
+CONFIG_QCOM_QDF2400_ERRATUM_0065                mark<ENFORCED> note<LP:1672486>
+
+# Menu: Processor type and features >> ARMv8.1 architectural features >> Architecture: arm64
+CONFIG_ARM64_HW_AFDBM                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_PAN                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_LSE_ATOMICS                        policy<{'arm64': 'y'}>
+CONFIG_ARM64_VHE                                policy<{'arm64': 'y'}>
+#
+CONFIG_ARM64_LSE_ATOMICS                        mark<ENFORCED> note<LP:1691614>
+
+# Menu: Processor type and features >> ARMv8.2 architectural features >> Architecture: arm64
+CONFIG_ARM64_UAO                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_PMEM                               policy<{'arm64': 'y'}>
+CONFIG_ARM64_RAS_EXTN                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_CNP                                policy<{'arm64': 'y'}>
+
+# Menu: Processor type and features >> ARMv8.3 architectural features >> Architecture: arm64
+CONFIG_ARM64_PTR_AUTH                           policy<{'arm64': 'y'}>
+
+# Menu: Processor type and features >> Architecture: arm
+CONFIG_HAVE_ARM_ARCH_TIMER                      policy<{'armhf': 'y'}>
+CONFIG_ARM_PSCI                                 policy<{'armhf': 'y'}>
+CONFIG_THUMB2_KERNEL                            policy<{'armhf': 'n'}>
+CONFIG_ARM_PATCH_IDIV                           policy<{'armhf': 'y'}>
+CONFIG_AEABI                                    policy<{'armhf': 'y'}>
+CONFIG_OABI_COMPAT                              policy<{'armhf': 'n'}>
+CONFIG_CPU_SW_DOMAIN_PAN                        policy<{'armhf-generic': 'y'}>
+CONFIG_ARM_MODULE_PLTS                          policy<{'armhf': 'n'}>
+CONFIG_UACCESS_WITH_MEMCPY                      policy<{'armhf': 'n'}>
+
+# Menu: Processor type and features >> Architecture: arm64
+CONFIG_KEXEC_IMAGE_VERIFY_SIG                   policy<{'arm64': 'n'}>
+CONFIG_UNMAP_KERNEL_AT_EL0                      policy<{'arm64': 'y'}>
+CONFIG_HARDEN_EL2_VECTORS                       policy<{'arm64': 'y'}>
+CONFIG_ARM64_SSBD                               policy<{'arm64': 'y'}>
+CONFIG_RODATA_FULL_DEFAULT_ENABLED              policy<{'arm64': 'y'}>
+CONFIG_ARM64_SW_TTBR0_PAN                       policy<{'arm64': 'y'}>
+CONFIG_ARM64_TAGGED_ADDR_ABI                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_SVE                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_MODULE_PLTS                        policy<{'arm64': 'y'}>
+CONFIG_ARM64_PSEUDO_NMI                         policy<{'arm64': 'y'}>
+CONFIG_ARM64_DEBUG_PRIORITY_MASKING             policy<{'arm64': 'n'}>
+CONFIG_RANDOMIZE_MODULE_REGION_FULL             policy<{'arm64': 'y'}>
+#
+CONFIG_KEXEC_IMAGE_VERIFY_SIG                   flag<REVIEW>
+
+# Menu: Processor type and features >> Architecture: powerpc
+CONFIG_PPC_TRANSACTIONAL_MEM                    policy<{'ppc64el': 'y'}>
+CONFIG_LD_HEAD_STUB_CATCH                       policy<{'ppc64el': 'n'}>
+CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE            policy<{'ppc64el': 'y'}>
+CONFIG_RELOCATABLE_TEST                         policy<{'ppc64el': 'n'}>
+CONFIG_FA_DUMP                                  policy<{'ppc64el': 'y'}>
+CONFIG_OPAL_CORE                                policy<{'ppc64el': 'n'}>
+CONFIG_IRQ_ALL_CPUS                             policy<{'ppc64el': 'y'}>
+CONFIG_THREAD_SHIFT                             policy<{'ppc64el': '14'}>
+CONFIG_ETEXT_SHIFT                              policy<{'ppc64el': '16'}>
+CONFIG_DATA_SHIFT                               policy<{'ppc64el': '16'}>
+CONFIG_PPC_SUBPAGE_PROT                         policy<{'ppc64el': 'y'}>
+CONFIG_PPC_DENORMALISATION                      policy<{'ppc64el': 'y'}>
+CONFIG_EXTRA_TARGETS                            policy<{'ppc64el': '""'}>
+CONFIG_PPC_MEM_KEYS                             policy<{'ppc64el': 'n'}>
+CONFIG_PPC_SECURE_BOOT                          policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SECVAR_SYSFS                         policy<{'ppc64el': 'y'}>
+#
+CONFIG_FA_DUMP                                  note<LP:1415562>
+CONFIG_PPC_MEM_KEYS                             flag<REVIEW> note<LP:1776967>
+CONFIG_PPC_SECURE_BOOT                          mark<ENFORCED> note<LP:1866909> note<LP:1855668>
+CONFIG_PPC_SECVAR_SYSFS                         mark<ENFORCED> note<LP:1866909>
+
+# Menu: Processor type and features >> Architecture: s390
+CONFIG_SCHED_TOPOLOGY                           policy<{'s390x': 'y'}>
+CONFIG_KERNEL_NOBP                              policy<{'s390x': 'n'}>
+CONFIG_EXPOLINE                                 policy<{'s390x': 'y'}>
+
+# Menu: Processor type and features >> Architecture: x86
+CONFIG_ZONE_DMA                                 policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_X86_FEATURE_NAMES                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_X2APIC                               policy<{'amd64': 'y'}>
+CONFIG_X86_MPPARSE                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_RETPOLINE                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_CPU_RESCTRL                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_EXTENDED_PLATFORM                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_LPSS                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_AMD_PLATFORM_DEVICE                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IOSF_MBI                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IOSF_MBI_DEBUG                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_32_IRIS                              policy<{'i386': 'm'}>
+CONFIG_SCHED_OMIT_FRAME_POINTER                 policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_X86_GENERIC                              policy<{'i386': 'y'}>
+CONFIG_HPET_TIMER                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GART_IOMMU                               policy<{'amd64': 'y'}>
+CONFIG_CALGARY_IOMMU                            policy<{'amd64': 'y'}>
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT         policy<{'amd64': 'y'}>
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_LEGACY_VM86                          policy<{'i386': 'y'}>
+CONFIG_X86_16BIT                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_VSYSCALL_EMULATION                   policy<{'amd64': 'y'}>
+CONFIG_TOSHIBA                                  policy<{'i386': 'n'}>
+CONFIG_I8K                                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_REBOOTFIXUPS                         policy<{'i386': 'y'}>
+CONFIG_X86_MSR                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_CPUID                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_PAE                                  policy<{'i386': 'y'}>
+CONFIG_X86_5LEVEL                               policy<{'amd64': 'n'}>
+CONFIG_X86_CPA_STATISTICS                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_AMD_MEM_ENCRYPT                          policy<{'amd64': 'y'}>
+CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT        policy<{'amd64': 'n'}>
+CONFIG_ARCH_MEMORY_PROBE                        policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_X86_PMEM_LEGACY                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_CHECK_BIOS_CORRUPTION                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_RESERVE_LOW                          policy<{'amd64': '64', 'i386': '64'}>
+CONFIG_MTRR                                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MTRR_SANITIZER                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT            policy<{'amd64': '1', 'i386': '1'}>
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT      policy<{'amd64': '1', 'i386': '1'}>
+CONFIG_X86_PAT                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_SMAP                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_UMIP                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_MPX                            policy<{'amd64': 'y'}>
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS         policy<{'amd64': 'y'}>
+CONFIG_EFI_STUB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_MIXED                                policy<{'amd64': 'y'}>
+CONFIG_KEXEC_SIG_FORCE                          policy<{'amd64': 'n'}>
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG                 policy<{'amd64': 'y'}>
+CONFIG_KEXEC_JUMP                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PHYSICAL_ALIGN                           policy<{'amd64': '0x200000', 'i386': '0x1000000'}>
+CONFIG_RANDOMIZE_MEMORY                         policy<{'amd64': 'y'}>
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING        policy<{'amd64': '0xa'}>
+CONFIG_BOOTPARAM_HOTPLUG_CPU0                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_HOTPLUG_CPU0                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MODIFY_LDT_SYSCALL                       policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_ZONE_DMA                                 note<LP:1628523>
+CONFIG_X86_LEGACY_VM86                          note<LP:1499089>
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG                 flag<REVIEW> note<Q: check this is in sync with the kexec/kdump userspace>
+CONFIG_MODIFY_LDT_SYSCALL                       flag<REVIEW> note<Q: check this with security>
+
+# Menu: Processor type and features >> CPU microcode loading support >> Architecture: x86
+CONFIG_MICROCODE                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROCODE_INTEL                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROCODE_AMD                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROCODE_OLD_INTERFACE                  policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_MICROCODE_OLD_INTERFACE                  flag<DEPRECATED>
+
+# Menu: Processor type and features >> Expoline default >> Architecture: s390
+CONFIG_EXPOLINE_OFF                             policy<{'s390x': 'n'}>
+CONFIG_EXPOLINE_AUTO                            policy<{'s390x': 'y'}>
+CONFIG_EXPOLINE_FULL                            policy<{'s390x': 'n'}>
+
+# Menu: Processor type and features >> High Memory Support >> Architecture: x86
+CONFIG_NOHIGHMEM                                policy<{'i386': 'n'}>
+CONFIG_HIGHMEM4G                                policy<{'i386': 'n'}>
+CONFIG_HIGHMEM64G                               policy<{'i386': 'y'}>
+
+# Menu: Processor type and features >> Kernel support for 32-bit EL0
+CONFIG_KUSER_HELPERS                            policy<{'arm64': 'y', 'armhf': 'y'}>
+#
+
+# Menu: Processor type and features >> Kernel support for 32-bit EL0 >> Emulate deprecated/obsolete ARMv8 instructions >> Architecture: arm64
+CONFIG_ARMV8_DEPRECATED                         policy<{'arm64': 'y'}>
+CONFIG_SWP_EMULATION                            policy<{'arm64': 'y'}>
+CONFIG_CP15_BARRIER_EMULATION                   policy<{'arm64': 'y'}>
+CONFIG_SETEND_EMULATION                         policy<{'arm64': 'y'}>
+#
+CONFIG_ARMV8_DEPRECATED                         mark<ENFORCED> note<LP:1545542>
+CONFIG_SWP_EMULATION                            mark<ENFORCED> note<LP:1545542>
+CONFIG_CP15_BARRIER_EMULATION                   mark<ENFORCED> note<LP:1545542>
+CONFIG_SETEND_EMULATION                         mark<ENFORCED> note<LP:1545542>
+
+# Menu: Processor type and features >> Linux guest support >> Architecture: x86
+CONFIG_HYPERVISOR_GUEST                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_CPUIDLE_HALTPOLL                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PVH                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_JAILHOUSE_GUEST                          policy<{'amd64': 'y'}>
+CONFIG_ACRN_GUEST                               policy<{'amd64': 'y'}>
+
+# Menu: Processor type and features >> Linux guest support >> Enable paravirtualization code
+
+# Menu: Processor type and features >> Linux guest support >> Enable paravirtualization code >> Architecture: x86
+CONFIG_PARAVIRT_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_PARAVIRT_SPINLOCKS                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_KVM_DEBUG_FS                             policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Processor type and features >> Linux guest support >> Enable paravirtualization code >> Xen guest support
+
+# Menu: Processor type and features >> Linux guest support >> Enable paravirtualization code >> Xen guest support >> Architecture: x86
+CONFIG_XEN_PV                                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_DOM0                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PVHVM                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_512GB                                policy<{'amd64': 'y'}>
+CONFIG_XEN_DEBUG_FS                             policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_XEN_PVH                                  policy<{'amd64': 'y', 'i386': 'y'}>
+#
+CONFIG_XEN_512GB                                flag<REVIEW> note<Q: is this related to the utlemming questions on memory size?>
+
+# Menu: Processor type and features >> Machine Check / overheating reporting >> Architecture: x86
+CONFIG_X86_MCE                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCELOG_LEGACY                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCE_INTEL                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCE_AMD                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_ANCIENT_MCE                          policy<{'i386': 'n'}>
+CONFIG_X86_MCE_INJECT                           policy<{'amd64': 'm', 'i386': 'm'}>
+
+# Menu: Processor type and features >> Math emulation options >> Architecture: powerpc
+
+# Menu: Processor type and features >> Memory split
+CONFIG_VMSPLIT_3G                               policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_VMSPLIT_3G_OPT                           policy<{'armhf-generic': 'n'}>
+CONFIG_VMSPLIT_2G                               policy<{'armhf': 'n', 'i386': 'n'}>
+CONFIG_VMSPLIT_1G                               policy<{'armhf': 'n', 'i386': 'n'}>
+
+# Menu: Processor type and features >> Memory split >> Architecture: arm
+
+# Menu: Processor type and features >> Memory split >> Architecture: x86
+
+# Menu: Processor type and features >> Page size >> Architecture: arm64
+CONFIG_ARM64_4K_PAGES                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_16K_PAGES                          policy<{'arm64': 'n'}>
+CONFIG_ARM64_64K_PAGES                          policy<{'arm64': 'n'}>
+
+# Menu: Processor type and features >> Page size >> Architecture: powerpc
+CONFIG_PPC_4K_PAGES                             policy<{'ppc64el': 'n'}>
+CONFIG_PPC_64K_PAGES                            policy<{'ppc64el': 'y'}>
+
+# Menu: Processor type and features >> Performance monitoring >> Architecture: x86
+CONFIG_PERF_EVENTS_INTEL_UNCORE                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PERF_EVENTS_INTEL_RAPL                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PERF_EVENTS_INTEL_CSTATE                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PERF_EVENTS_AMD_POWER                    policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Processor type and features >> Physical address space size >> Architecture: arm64
+CONFIG_ARM64_PA_BITS_48                         policy<{'arm64': 'y'}>
+
+# Menu: Processor type and features >> Power Management Debug Support
+#
+
+# Menu: Processor type and features >> Processor family
+
+# Menu: Processor type and features >> Processor family >> Architecture: x86
+CONFIG_M486                                     policy<{'i386': 'n'}>
+CONFIG_M586                                     policy<{'i386': 'n'}>
+CONFIG_M586TSC                                  policy<{'i386': 'n'}>
+CONFIG_M586MMX                                  policy<{'i386': 'n'}>
+CONFIG_M686                                     policy<{'i386': 'y'}>
+CONFIG_MPENTIUMII                               policy<{'i386': 'n'}>
+CONFIG_MPENTIUMIII                              policy<{'i386': 'n'}>
+CONFIG_MPENTIUMM                                policy<{'i386': 'n'}>
+CONFIG_MPENTIUM4                                policy<{'i386': 'n'}>
+CONFIG_MK6                                      policy<{'i386': 'n'}>
+CONFIG_MK7                                      policy<{'i386': 'n'}>
+CONFIG_MK8                                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MCRUSOE                                  policy<{'i386': 'n'}>
+CONFIG_MEFFICEON                                policy<{'i386': 'n'}>
+CONFIG_MWINCHIPC6                               policy<{'i386': 'n'}>
+CONFIG_MWINCHIP3D                               policy<{'i386': 'n'}>
+CONFIG_MELAN                                    policy<{'i386': 'n'}>
+CONFIG_MGEODEGX1                                policy<{'i386': 'n'}>
+CONFIG_MGEODE_LX                                policy<{'i386': 'n'}>
+CONFIG_MCYRIXIII                                policy<{'i386': 'n'}>
+CONFIG_MVIAC3_2                                 policy<{'i386': 'n'}>
+CONFIG_MVIAC7                                   policy<{'i386': 'n'}>
+CONFIG_MPSC                                     policy<{'amd64': 'n'}>
+CONFIG_MCORE2                                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MATOM                                    policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Processor type and features >> Processor type >> Architecture: s390
+CONFIG_MARCH_Z900                               policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z990                               policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z9_109                             policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z10                                policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z196                               policy<{'s390x': 'n'}>
+CONFIG_MARCH_ZEC12                              policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z13                                policy<{'s390x': 'y'}>
+CONFIG_MARCH_Z14                                policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z15                                policy<{'s390x': 'n'}>
+
+# Menu: Processor type and features >> Select NUMA modes
+CONFIG_NUMA_EMU                                 policy<{'amd64': 'n', 's390x': 'n'}>
+#
+CONFIG_NUMA_EMU                                 note<LP:1557690> mark<ENFORCED>
+CONFIG_NUMA_EMU                                 note<LP:1864198>
+
+# Menu: Processor type and features >> Select NUMA modes >> Architecture: s390
+
+# Menu: Processor type and features >> Support for extended (non-PC) x86 platforms >> Architecture: x86
+CONFIG_X86_NUMACHIP                             policy<{'amd64': 'y'}>
+CONFIG_X86_VSMP                                 policy<{'amd64': 'n'}>
+CONFIG_X86_UV                                   policy<{'amd64': 'y'}>
+CONFIG_X86_GOLDFISH                             policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_INTEL_MID                            policy<{'amd64': 'n', 'i386': 'y'}>
+CONFIG_X86_INTEL_QUARK                          policy<{'i386': 'n'}>
+CONFIG_X86_RDC321X                              policy<{'i386': 'n'}>
+CONFIG_X86_32_NON_STANDARD                      policy<{'i386': 'n'}>
+CONFIG_APB_TIMER                                policy<{'i386': 'y'}>
+#
+CONFIG_X86_UV                                   mark<ENFORCED> note<LP:1863810>
+
+# Menu: Processor type and features >> Supported processor vendors >> Architecture: x86
+CONFIG_PROCESSOR_SELECT                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_INTEL                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_CYRIX_32                         policy<{'i386': 'y'}>
+CONFIG_CPU_SUP_AMD                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_HYGON                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_CENTAUR                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_TRANSMETA_32                     policy<{'i386': 'y'}>
+CONFIG_CPU_SUP_UMC_32                           policy<{'i386': 'y'}>
+CONFIG_CPU_SUP_ZHAOXIN                          policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Processor type and features >> Symmetric Multi-Processing
+#
+
+# Menu: Processor type and features >> Symmetric Multi-Processing >> Architecture: arm
+CONFIG_SMP_ON_UP                                policy<{'armhf': 'y'}>
+CONFIG_ARM_CPU_TOPOLOGY                         policy<{'armhf': 'y'}>
+CONFIG_MCPM                                     policy<{'armhf': 'y'}>
+CONFIG_BIG_LITTLE                               policy<{'armhf': 'y'}>
+CONFIG_BL_SWITCHER                              policy<{'armhf': 'y'}>
+CONFIG_BL_SWITCHER_DUMMY_IF                     policy<{'armhf': 'm'}>
+CONFIG_STACKPROTECTOR_PER_TASK                  policy<{'arm64': 'y'}>
+
+# Menu: Processor type and features >> Symmetric multi-processing support
+#
+
+# Menu: Processor type and features >> Symmetric multi-processing support >> Architecture: x86
+CONFIG_X86_BIGSMP                               policy<{'i386': 'n'}>
+CONFIG_MAXSMP                                   policy<{'amd64': 'y'}>
+CONFIG_SCHED_MC_PRIO                            policy<{'amd64': 'y', 'i386': 'y'}>
+
+# Menu: Processor type and features >> Symmetric multi-processing support >> Numa Memory Allocation and Scheduler Support
+#
+
+# Menu: Processor type and features >> Symmetric multi-processing support >> Numa Memory Allocation and Scheduler Support >> Architecture: x86
+CONFIG_AMD_NUMA                                 policy<{'amd64': 'y'}>
+CONFIG_X86_64_ACPI_NUMA                         policy<{'amd64': 'y'}>
+
+# Menu: Processor type and features >> TSX enable mode >> Architecture: x86
+CONFIG_X86_INTEL_TSX_MODE_OFF                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_TSX_MODE_ON                    policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_INTEL_TSX_MODE_AUTO                  policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Processor type and features >> Timer frequency
+CONFIG_HZ_100                                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_HZ_250                                   policy<{'amd64-generic': 'y', 'amd64-lowlatency': 'n', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'i386-lowlatency': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HZ_300                                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HZ_1000                                  policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386-generic': 'n', 'i386-lowlatency': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Processor type and features >> Timer frequency >> Architecture: arm
+CONFIG_HZ_200                                   policy<{'armhf': 'n'}>
+CONFIG_HZ_500                                   policy<{'armhf': 'n'}>
+
+# Menu: Processor type and features >> Tune code generation >> Architecture: s390
+CONFIG_TUNE_DEFAULT                             policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z900                                policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z990                                policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z9_109                              policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z10                                 policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z196                                policy<{'s390x': 'n'}>
+CONFIG_TUNE_ZEC12                               policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z13                                 policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z14                                 policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z15                                 policy<{'s390x': 'y'}>
+
+# Menu: Processor type and features >> Virtual address space size >> Architecture: arm64
+CONFIG_ARM64_VA_BITS_39                         policy<{'arm64': 'n'}>
+CONFIG_ARM64_VA_BITS_48                         policy<{'arm64': 'y'}>
+#
+CONFIG_ARM64_VA_BITS_48                         mark<ENFORCED> note<Cavium ThunderX 2-socket needs a minimum of 41 bits of VA>
+
+# Menu: Processor type and features >> vsyscall table for legacy applications >> Architecture: x86
+CONFIG_LEGACY_VSYSCALL_EMULATE                  policy<{'amd64': 'n'}>
+CONFIG_LEGACY_VSYSCALL_XONLY                    policy<{'amd64': 'y'}>
+CONFIG_LEGACY_VSYSCALL_NONE                     policy<{'amd64': 'n'}>
+#
+CONFIG_LEGACY_VSYSCALL_XONLY                    flag<REVIEW>
+
+# Menu: Security options
+CONFIG_SECURITY_DMESG_RESTRICT                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_PERF_EVENTS_RESTRICT            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITYFS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_TABLE_ISOLATION                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_TXT                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HARDENED_USERCOPY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HARDENED_USERCOPY_FALLBACK               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HARDENED_USERCOPY_PAGESPAN               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FORTIFY_SOURCE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STATIC_USERMODEHELPER                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LSM                                      policy<{'amd64': '"lockdown,yama,integrity,apparmor"', 'arm64': '"lockdown,yama,integrity,apparmor"', 'armhf': '"lockdown,yama,integrity,apparmor"', 'i386': '"lockdown,yama,integrity,apparmor"', 'ppc64el': '"lockdown,yama,integrity,apparmor"', 's390x': '"lockdown,yama,integrity,apparmor"'}>
+#
+CONFIG_LSM                                      mark<ENFORCED>
+
+# Menu: Security options >> Enable access key retention support
+CONFIG_KEYS                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEYS_REQUEST_CACHE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PERSISTENT_KEYRINGS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BIG_KEYS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRUSTED_KEYS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ENCRYPTED_KEYS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEY_DH_OPERATIONS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Security options >> Enable different security models
+CONFIG_SECURITY                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_NETWORK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_INFINIBAND                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_NETWORK_XFRM                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_PATH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LSM_MMAP_MIN_ADDR                        policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_SECURITY_APPARMOR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_APPARMOR_HASH                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_APPARMOR_DEBUG                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_LOADPIN                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_YAMA                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SAFESETID                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_LOCKDOWN_LSM                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCK_DOWN_IN_SECURE_BOOT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SECURITY                                 mark<ENFORCED>
+CONFIG_LSM_MMAP_MIN_ADDR                        mark<ENFORCED> flag<REVIEW>
+CONFIG_SECURITY_YAMA                            mark<ENFORCED>
+CONFIG_SECURITY_SAFESETID                       mark<ENFORCED> note<LP:#1845391>
+CONFIG_SECURITY_LOCKDOWN_LSM                    mark<ENFORCED>
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY              mark<ENFORCED>
+CONFIG_LOCK_DOWN_IN_SECURE_BOOT                 mark<ENFORCED>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem
+CONFIG_INTEGRITY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_SIGNATURE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_AUDIT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> EVM support
+CONFIG_EVM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_ATTR_FSUUID                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_EXTRA_SMACK_XATTRS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_ADD_XATTRS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_LOAD_X509                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EVM_X509_PATH                            policy<{'ppc64el': '"/etc/keys/x509_evm.der"'}>
+#
+CONFIG_EVM                                      note<LP:1643652>
+CONFIG_EVM_ATTR_FSUUID                          note<LP:1643652>
+CONFIG_EVM_LOAD_X509                            note<LP:1643652>
+CONFIG_EVM_X509_PATH                            note<LP:1643652>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> Enable asymmetric keys support
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_TRUSTED_KEYRING                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_PLATFORM_KEYRING               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOAD_PPC_KEYS                            policy<{'ppc64el': 'y'}>
+CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_INTEGRITY_PLATFORM_KEYRING               mark<ENFORCED> note<Required for lockdown>
+CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY mark<ENFORCED> note<LP:1667490>
+CONFIG_LOAD_PPC_KEYS                            mark<ENFORCED> note<LP:1866909>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA)
+CONFIG_IMA                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_KEXEC                                policy<{'ppc64el': 'y'}>
+CONFIG_IMA_WRITE_POLICY                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_READ_POLICY                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+#
+CONFIG_IMA                                      mark<ENFORCED> note<LP:1643652>
+CONFIG_IMA_KEXEC                                mark<ENFORCED> note<LP:1643652>
+CONFIG_IMA_WRITE_POLICY                         mark<ENFORCED> note<LP:1667490>
+CONFIG_IMA_READ_POLICY                          mark<ENFORCED> note<LP:1667490> note<LP:1866909>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA) >> Appraise integrity measurements
+CONFIG_IMA_APPRAISE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_ARCH_POLICY                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_APPRAISE_BOOTPARAM                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y','s390x': 'y'}>
+CONFIG_IMA_APPRAISE_MODSIG                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_TRUSTED_KEYRING                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_BLACKLIST_KEYRING                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_LOAD_X509                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_X509_PATH                            policy<{'ppc64el': '"/etc/keys/x509_ima.der"'}>
+CONFIG_IMA_APPRAISE_SIGNED_INIT                 policy<{'ppc64el': 'n'}>
+#
+CONFIG_IMA_APPRAISE                             mark<ENFORCED> note<LP:1643652>
+CONFIG_IMA_TRUSTED_KEYRING                      mark<ENFORCED> note<LP:1643652>
+CONFIG_IMA_BLACKLIST_KEYRING                    mark<ENFORCED> note<LP:1667490>
+CONFIG_IMA_LOAD_X509                            mark<ENFORCED> note<LP:1643652>
+CONFIG_IMA_X509_PATH                            mark<ENFORCED> note<LP:1643652>
+CONFIG_IMA_APPRAISE_SIGNED_INIT                 mark<ENFORCED> note<LP:1667490>
+CONFIG_IMA_ARCH_POLICY                          mark<ENFORCED> note<LP:1866909>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA) >> Appraise integrity measurements >> IMA build time configured policy rules
+CONFIG_IMA_APPRAISE_BUILD_POLICY                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA) >> Default integrity hash algorithm
+CONFIG_IMA_DEFAULT_HASH_SHA1                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_IMA_DEFAULT_HASH_SHA256                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_DEFAULT_HASH_SHA512                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_IMA_DEFAULT_HASH_SHA256                  note<LP:1643652>
+
+# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA) >> Default template
+CONFIG_IMA_TEMPLATE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_NG_TEMPLATE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_IMA_SIG_TEMPLATE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+#
+CONFIG_IMA_SIG_TEMPLATE                         note<LP:1643652>
+
+# Menu: Security options >> Enable different security models >> Kernel default lockdown mode
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Security options >> Enable different security models >> NSA SELinux Support
+CONFIG_SECURITY_SELINUX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SELINUX_BOOTPARAM               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SECURITY_SELINUX_DISABLE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_SELINUX_DEVELOP                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SELINUX_AVC_STATS               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE      policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+#
+CONFIG_SECURITY_SELINUX                         mark<ENFORCED>
+CONFIG_SECURITY_SELINUX_DISABLE                 mark<ENFORCED>note<LP#1680315>
+
+# Menu: Security options >> Enable different security models >> Simplified Mandatory Access Control Kernel Support
+CONFIG_SECURITY_SMACK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SMACK_BRINGUP                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_SMACK_NETFILTER                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SMACK_APPEND_SIGNALS            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+#
+CONFIG_SECURITY_SMACK                           mark<ENFORCED>
+
+# Menu: Security options >> Enable different security models >> TOMOYO Linux Support
+CONFIG_SECURITY_TOMOYO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY         policy<{'amd64': '2048', 'arm64': '2048', 'armhf': '2048', 'i386': '2048', 'ppc64el': '2048', 's390x': '2048'}>
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG            policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'i386': '1024', 'ppc64el': '1024', 's390x': '1024'}>
+CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER            policy<{'amd64': '"/sbin/tomoyo-init"', 'arm64': '"/sbin/tomoyo-init"', 'armhf': '"/sbin/tomoyo-init"', 'i386': '"/sbin/tomoyo-init"', 'ppc64el': '"/sbin/tomoyo-init"', 's390x': '"/sbin/tomoyo-init"'}>
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER       policy<{'amd64': '"/sbin/init"', 'arm64': '"/sbin/init"', 'armhf': '"/sbin/init"', 'i386': '"/sbin/init"', 'ppc64el': '"/sbin/init"', 's390x': '"/sbin/init"'}>
+CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Security options >> First legacy 'major LSM' to be initialized
+CONFIG_DEFAULT_SECURITY_SELINUX                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_SMACK                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_TOMOYO                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_APPARMOR                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_SECURITY_DAC                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Security options >> Kernel hardening options
+
+# Menu: Security options >> Kernel hardening options >> Memory initialization
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INIT_ON_FREE_DEFAULT_ON                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+
+# Menu: Security options >> Kernel hardening options >> Memory initialization >> Initialize kernel stack variables at function entry
+CONFIG_INIT_STACK_NONE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+
+# Menu: Security options >> Kernel hardening options >> Memory initialization >> Poison kernel stack before returning from syscalls
+
+# Menu: System Type
+#
+
+# Menu: System Type >> ARM Ltd. Integrator family >> Architecture: arm
+
+# Menu: System Type >> ARM Ltd. Integrator family >> Support Integrator/AP and Integrator/PP2 platforms >> Architecture: arm
+
+# Menu: System Type >> ARM Ltd. Integrator family >> Support Integrator/CP platform >> Architecture: arm
+
+# Menu: System Type >> ARM Ltd. RealView family >> Architecture: arm
+CONFIG_ARCH_REALVIEW                            policy<{'armhf': 'n'}>
+
+# Menu: System Type >> ARM Ltd. RealView family >> Support RealView(R) Emulation Baseboard >> Architecture: arm
+
+# Menu: System Type >> ARM Ltd. Versatile Express family
+
+# Menu: System Type >> ARM Ltd. Versatile Express family >> Architecture: arm
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA        policy<{'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_DCSCB                      policy<{'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_SPC                        policy<{'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_TC2_PM                     policy<{'armhf': 'y'}>
+
+# Menu: System Type >> ARM system type >> Architecture: arm
+CONFIG_ARCH_MULTIPLATFORM                       policy<{'armhf': 'y'}>
+CONFIG_ARCH_EBSA110                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_EP93XX                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_FOOTBRIDGE                          policy<{'armhf': 'n'}>
+CONFIG_ARCH_IOP32X                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_IXP4XX                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_DOVE                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_PXA                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_RPC                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_SA1100                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_S3C24XX                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_OMAP1                               policy<{'armhf': 'n'}>
+
+# Menu: System Type >> AT91/Microchip SoCs >> Architecture: arm
+CONFIG_ARCH_AT91                                policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Allwinner SoCs
+
+# Menu: System Type >> Allwinner SoCs >> Architecture: arm
+
+# Menu: System Type >> Altera SOCFPGA family >> Architecture: arm
+CONFIG_ARCH_SOCFPGA                             policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Amlogic Meson SoCs
+
+# Menu: System Type >> Amlogic Meson SoCs >> Architecture: arm
+CONFIG_MACH_MESON6                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MESON8                              policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Architecture: arm
+CONFIG_ARCH_VIRT                                policy<{'armhf': 'y'}>
+CONFIG_ARCH_AXXIA                               policy<{'armhf-generic-lpae': 'y'}>
+CONFIG_ARCH_DIGICOLOR                           policy<{'armhf': 'n'}>
+CONFIG_ARCH_HIGHBANK                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_KEYSTONE                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_RDA                                 policy<{'armhf': 'y'}>
+CONFIG_ARCH_S5PV210                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_TANGO                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_WM8850                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_ZYNQ                                policy<{'armhf': 'n'}>
+CONFIG_ARM_THUMB                                policy<{'armhf': 'y'}>
+CONFIG_ARM_THUMBEE                              policy<{'armhf': 'y'}>
+CONFIG_SWP_EMULATE                              policy<{'armhf': 'y'}>
+CONFIG_CPU_ICACHE_DISABLE                       policy<{'armhf': 'n'}>
+CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND           policy<{'armhf': 'y'}>
+CONFIG_CPU_BPREDICT_DISABLE                     policy<{'armhf': 'n'}>
+CONFIG_CACHE_FEROCEON_L2                        policy<{'armhf': 'y'}>
+CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH           policy<{'armhf': 'n'}>
+CONFIG_CACHE_TAUROS2                            policy<{'armhf': 'y'}>
+CONFIG_CACHE_UNIPHIER                           policy<{'armhf': 'y'}>
+CONFIG_ARM_DMA_MEM_BUFFERABLE                   policy<{'armhf': 'y'}>
+CONFIG_IWMMXT                                   policy<{'armhf': 'y'}>
+CONFIG_PJ4B_ERRATA_4742                         policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_430973                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_643719                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_720789                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_754322                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_754327                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_764369                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_775420                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_798181                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_773022                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_818325_852422                 policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_821420                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_825619                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_857271                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_852421                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_852423                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_857272                        policy<{'armhf': 'y'}>
+#
+CONFIG_ARCH_TANGO                               mark<ENFORCED> note<LP:1787945>
+
+# Menu: System Type >> Aspeed BMC architectures >> Architecture: arm
+CONFIG_ARCH_ASPEED                              policy<{'armhf': 'y'}>
+CONFIG_MACH_ASPEED_G6                           policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Axis Communications ARM based ARTPEC SoCs >> Architecture: arm
+CONFIG_ARCH_ARTPEC                              policy<{'armhf': 'y'}>
+CONFIG_MACH_ARTPEC6                             policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Broadcom SoC Support
+
+# Menu: System Type >> Broadcom SoC Support >> Architecture: arm
+CONFIG_ARCH_BCM                                 policy<{'armhf': 'n'}>
+
+# Menu: System Type >> CSR SiRF >> Architecture: arm
+CONFIG_ARCH_SIRF                                policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Cavium Networks CNS3XXX family >> Architecture: arm
+
+# Menu: System Type >> Cirrus EP93xx Implementation Options >> Architecture: arm
+
+# Menu: System Type >> Enable the L2x0 outer cache controller >> Architecture: arm
+CONFIG_CACHE_L2X0                               policy<{'armhf': 'y'}>
+CONFIG_CACHE_L2X0_PMU                           policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_588369                      policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_727915                      policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_753970                      policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_769419                      policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Footbridge Implementations >> Architecture: arm
+
+# Menu: System Type >> Freescale i.MX family
+
+# Menu: System Type >> Freescale i.MX family >> Architecture: arm
+CONFIG_SOC_IMX50                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX51                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX53                                policy<{'armhf-generic': 'n'}>
+CONFIG_SOC_IMX6Q                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6SL                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6SLL                              policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6SX                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6UL                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_LS1021A                              policy<{'armhf-generic': 'n'}>
+CONFIG_SOC_IMX7D                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX7ULP                              policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_VF610                                policy<{'armhf-generic': 'y'}>
+
+# Menu: System Type >> Freescale i.MX family >> Clocksource for scheduler clock >> Architecture: arm
+CONFIG_VF_USE_ARM_GLOBAL_TIMER                  policy<{'armhf-generic': 'y'}>
+CONFIG_VF_USE_PIT_TIMER                         policy<{'armhf-generic': 'n'}>
+
+# Menu: System Type >> Hisilicon platform type >> Architecture: arm
+CONFIG_ARCH_HI3xxx                              policy<{'armhf': 'y'}>
+CONFIG_ARCH_HIP01                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_HIP04                               policy<{'armhf': 'y'}>
+CONFIG_ARCH_HIX5HD2                             policy<{'armhf': 'y'}>
+
+# Menu: System Type >> IOP32x Implementation Options >> Architecture: arm
+
+# Menu: System Type >> Intel IXP4xx Implementation Options >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> Gumstix Carrier/Expansion Board >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> Motorola EZX Platform >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> PXA based Keith und Koep Trizeps DIMM-Modules >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> PXA based Keith und Koep Trizeps DIMM-Modules >> Select base board for Trizeps module >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> PXA based Palm PDAs >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> PXA based Toshiba e-series PDAs >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models >> Architecture: arm
+
+# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations >> display on pcm990 >> Architecture: arm
+
+# Menu: System Type >> MMU-based Paged Memory Management Support
+
+# Menu: System Type >> MMU-based Paged Memory Management Support >> Architecture: arm
+CONFIG_MMU                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARM_LPAE                                 policy<{'armhf-generic': 'n', 'armhf-generic-lpae': 'y'}>
+CONFIG_VDSO                                     policy<{'armhf': 'y'}>
+
+# Menu: System Type >> MMU-based Paged Memory Management Support >> Marvell Orion >> Architecture: arm
+
+# Menu: System Type >> MMU-based Paged Memory Management Support >> ST-Ericsson U300 Series >> Architecture: arm
+
+# Menu: System Type >> MMU-based Paged Memory Management Support >> ST-Ericsson U8500 Series >> Architecture: arm
+CONFIG_ARCH_U8500                               policy<{'armhf': 'n'}>
+
+# Menu: System Type >> MMU-based Paged Memory Management Support >> Set flash/sdram size and base addr >> Architecture: arm
+
+# Menu: System Type >> MOXA ART SoC >> Architecture: arm
+
+# Menu: System Type >> Marvell Berlin SoCs
+
+# Menu: System Type >> Marvell Berlin SoCs >> Architecture: arm
+CONFIG_MACH_BERLIN_BG2                          policy<{'armhf': 'y'}>
+CONFIG_MACH_BERLIN_BG2CD                        policy<{'armhf': 'y'}>
+CONFIG_MACH_BERLIN_BG2Q                         policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Marvell Dove Implementations >> Architecture: arm
+
+# Menu: System Type >> Marvell Engineering Business Unit (MVEBU) SoCs
+
+# Menu: System Type >> Marvell Engineering Business Unit (MVEBU) SoCs >> Architecture: arm
+CONFIG_MACH_ARMADA_370                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_375                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_38X                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_39X                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_XP                           policy<{'armhf': 'y'}>
+CONFIG_MACH_DOVE                                policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Marvell MV78xx0 >> Architecture: arm
+
+# Menu: System Type >> Marvell PXA168/910/MMP2 >> Architecture: arm
+CONFIG_ARCH_MMP                                 policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Marvell PXA168/910/MMP2 >> Marvell PXA168/910/MMP2 Implementations >> Architecture: arm
+
+# Menu: System Type >> MediaTek SoC Support
+
+# Menu: System Type >> MediaTek SoC Support >> Architecture: arm
+CONFIG_MACH_MT2701                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT6589                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT6592                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT7623                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT7629                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT8127                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT8135                              policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Multiple platform selection >> Architecture: arm
+CONFIG_ARCH_MULTI_V6                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_MULTI_V7                            policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Nuvoton NPCM Architecture >> Architecture: arm
+CONFIG_ARCH_NPCM                                policy<{'armhf': 'y'}>
+CONFIG_ARCH_NPCM7XX                             policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Oxford Semiconductor OXNAS Family SoCs >> Architecture: arm
+
+# Menu: System Type >> Qualcomm Support
+
+# Menu: System Type >> Qualcomm Support >> Architecture: arm
+CONFIG_ARCH_MSM8X60                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MSM8960                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MSM8974                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MDM9615                             policy<{'armhf': 'y'}>
+
+# Menu: System Type >> SA11x0 Implementations >> Architecture: arm
+
+# Menu: System Type >> SA11x0 Implementations >> Cerf Flash available >> Architecture: arm
+
+# Menu: System Type >> SAMSUNG S3C24XX SoCs Support >> Architecture: arm
+
+# Menu: System Type >> SAMSUNG S3C24XX SoCs Support >> SAMSUNG S3C2410 >> Architecture: arm
+
+# Menu: System Type >> SAMSUNG S3C24XX SoCs Support >> SAMSUNG S3C2412 >> Architecture: arm
+
+# Menu: System Type >> SAMSUNG S3C24XX SoCs Support >> SAMSUNG S3C2440 >> Architecture: arm
+
+# Menu: System Type >> ST SPEAr Family >> Architecture: arm
+CONFIG_PLAT_SPEAR                               policy<{'armhf': 'n'}>
+
+# Menu: System Type >> ST SPEAr Family >> ST SPEAr13xx >> Architecture: arm
+
+# Menu: System Type >> ST SPEAr Family >> ST SPEAr13xx >> ST SPEAr3xx >> Architecture: arm
+
+# Menu: System Type >> ST-Ericsson Nomadik >> Architecture: arm
+
+# Menu: System Type >> STMicroelectronics Consumer Electronics SOCs >> Architecture: arm
+CONFIG_ARCH_STI                                 policy<{'armhf': 'n'}>
+
+# Menu: System Type >> STMicroelectronics STM32 family >> Architecture: arm
+CONFIG_ARCH_STM32                               policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Samsung Common options >> Architecture: arm
+
+# Menu: System Type >> Samsung EXYNOS
+
+# Menu: System Type >> Samsung EXYNOS >> Architecture: arm
+CONFIG_ARCH_EXYNOS3                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_EXYNOS4                             policy<{'armhf': 'n'}>
+
+# Menu: System Type >> Samsung EXYNOS >> SAMSUNG EXYNOS5 >> Architecture: arm
+CONFIG_ARCH_EXYNOS5                             policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5250                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5260                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5410                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5420                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5800                           policy<{'armhf': 'y'}>
+
+# Menu: System Type >> Samsung S3C64XX >> Architecture: arm
+
+# Menu: System Type >> Samsung S3C64XX >> SMDK6410 >> Architecture: arm
+
+# Menu: System Type >> Samsung S3C64XX >> SMDK6410 >> SMDK6410 MMC/SD slot setup >> Architecture: arm
+
+# Menu: System Type >> Socionext Milbeaut SoCs >> Architecture: arm
+CONFIG_ARCH_MILBEAUT                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_MILBEAUT_M10V                       policy<{'armhf': 'y'}>
+
+# Menu: System Type >> TI DaVinci >> Architecture: arm
+
+# Menu: System Type >> TI DaVinci >> DA850/OMAP-L138/AM18x based system >> Architecture: arm
+
+# Menu: System Type >> TI DaVinci >> DA850/OMAP-L138/AM18x based system >> Select peripherals connected to expander on UI board >> Architecture: arm
+
+# Menu: System Type >> TI DaVinci >> DaVinci 644x based system >> Architecture: arm
+
+# Menu: System Type >> TI DaVinci >> Select DA830/OMAP-L137/AM17x UI board peripheral >> Architecture: arm
+
+# Menu: System Type >> TI OMAP Common Features >> Architecture: arm
+CONFIG_POWER_AVS_OMAP                           policy<{'armhf-generic': 'y'}>
+CONFIG_POWER_AVS_OMAP_CLASS3                    policy<{'armhf-generic': 'y'}>
+CONFIG_OMAP_RESET_CLOCKS                        policy<{'armhf': 'y'}>
+CONFIG_OMAP_32K_TIMER                           policy<{'armhf': 'y'}>
+CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE         policy<{'armhf-generic': 'n'}>
+
+# Menu: System Type >> TI OMAP/AM/DM/DRA Family >> Architecture: arm
+CONFIG_ARCH_OMAP3                               policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_OMAP4                               policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_SOC_OMAP5                                policy<{'armhf': 'n'}>
+CONFIG_SOC_AM33XX                               policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_SOC_AM43XX                               policy<{'armhf': 'n'}>
+CONFIG_SOC_DRA7XX                               policy<{'armhf': 'y'}>
+CONFIG_OMAP5_ERRATA_801819                      policy<{'armhf': 'y'}>
+
+# Menu: System Type >> TI OMAP/AM/DM/DRA Family >> TI OMAP2/3/4 Specific Features >> Architecture: arm
+CONFIG_ARCH_OMAP2PLUS_TYPICAL                   policy<{'armhf': 'y'}>
+CONFIG_SOC_HAS_OMAP2_SDRC                       policy<{'armhf': 'y'}>
+CONFIG_SOC_HAS_REALTIME_COUNTER                 policy<{'armhf': 'y'}>
+CONFIG_SOC_OMAP3430                             policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_TI81XX                               policy<{'armhf-generic': 'y'}>
+CONFIG_MACH_OMAP3517EVM                         policy<{'armhf-generic': 'n'}>
+CONFIG_MACH_OMAP3_PANDORA                       policy<{'armhf-generic': 'y'}>
+CONFIG_OMAP3_SDRC_AC_TIMING                     policy<{'armhf-generic': 'n'}>
+
+# Menu: System Type >> TI OMAP1 specific features >> Architecture: arm
+
+# Menu: System Type >> TI OMAP1 specific features >> OMAP15xx Based System >> Architecture: arm
+
+# Menu: System Type >> TI OMAP1 specific features >> OMAP16xx Based System >> Architecture: arm
+CONFIG_MACH_OMAP_GENERIC                        policy<{'armhf': 'y'}>
+
+# Menu: Ubuntu Supplied Third-Party Device Drivers
+CONFIG_HIO                                      policy<{'amd64': 'm', 'arm64': 'n', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_HIO                                      mark<ENFORCED> note<LP:1635594>
+
+# Menu: Virtualization
+CONFIG_VIRTUALIZATION                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KVM                                      policy<{'amd64': 'm', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'm', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VHOST_NET                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VHOST_SCSI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VHOST_VSOCK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+#
+CONFIG_KVM                                      note<LP:1532886>
+
+# Menu: Virtualization >> Architecture: powerpc
+CONFIG_KVM_BOOK3S_64                            policy<{'ppc64el': 'm'}>
+CONFIG_KVM_BOOK3S_64_HV                         policy<{'ppc64el': 'm'}>
+CONFIG_KVM_BOOK3S_64_PR                         policy<{'ppc64el': 'm'}>
+CONFIG_KVM_BOOK3S_HV_EXIT_TIMING                policy<{'ppc64el': 'n'}>
+CONFIG_KVM_XICS                                 policy<{'ppc64el': 'y'}>
+
+# Menu: Virtualization >> Architecture: s390
+CONFIG_PROTECTED_VIRTUALIZATION_GUEST           policy<{'s390x': 'y'}>
+CONFIG_PFAULT                                   policy<{'s390x': 'y'}>
+CONFIG_CMM_IUCV                                 policy<{'s390x': 'y'}>
+CONFIG_S390_HYPFS_FS                            policy<{'s390x': 'y'}>
+CONFIG_S390_GUEST                               policy<{'s390x': 'y'}>
+
+# Menu: Virtualization >> KVM
+#
+
+# Menu: Virtualization >> KVM >> Architecture: s390
+CONFIG_KVM_S390_UCONTROL                        policy<{'s390x': 'n'}>
+
+# Menu: Virtualization >> Kernel-based Virtual Machine (KVM) support
+#
+
+# Menu: Virtualization >> Kernel-based Virtual Machine (KVM) support >> Architecture: x86
+CONFIG_KVM_INTEL                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_KVM_AMD                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_KVM_AMD_SEV                              policy<{'amd64': 'y'}>
+CONFIG_KVM_MMU_AUDIT                            policy<{'amd64': 'n', 'i386': 'n'}>
+
+# Menu: Virtualization >> Linux - VM Monitor Stream, base infrastructure >> Architecture: s390
+CONFIG_APPLDATA_BASE                            policy<{'s390x': 'y'}>
+CONFIG_APPLDATA_MEM                             policy<{'s390x': 'm'}>
+CONFIG_APPLDATA_OS                              policy<{'s390x': 'm'}>
+CONFIG_APPLDATA_NET_SUM                         policy<{'s390x': 'm'}>
+
+# Menu: FOOTER
+
+# temporarily disabled options -- build failures.
+
+#CONFIG_TI_CPSW					p policy<(arch armel armhf &/ value n) | value m> flag<BUILD FAILURE>
+#CONFIG_USB_MUSB_DSPS				p policy<(arch armel armhf &/ value n) | value m> flag<BUILD FAILURE>
+#CONFIG_LIS3L02DQ				p policy<(arch armhf &/ value n) | value m> flag<BUILD FAILURE>
+#CONFIG_EZX_PCAP					p policy<(arch armhf &/ value n) | value y> flag<BUILD FAILURE>
+#CONFIG_TOUCHSCREEN_EGALAX			p policy<(arch armel armhf &/ value n) | value m> flag<BUILD FAILURE> note<FTBS on ti-omap4>
+#CONFIG_TOUCHSCREEN_EETI				p policy<(arch armel armhf &/ value n) | value m> flag<BUILD FAILURE> note<FTBS on ti-omap4>
+#CONFIG_SENSORS_AK8975				p policy<(arch armel armhf &/ value n) | value m> flag<BUILD FAILURE> note<FTBS on ti-omap4>
+#CONFIG_PPC_EPAPR_HV_BYTECHAN			n flag<BUILD FAILURE> note<FTBFS on ppc64el>
+
+#
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/arm64/config.common.arm64
+++ linux-gkeop-5.4-5.4.0/debian.master/config/arm64/config.common.arm64
@@ -0,0 +1,669 @@
+#
+# Config options for config.common.arm64 automatically generated by splitconfig.pl
+#
+CONFIG_6LOWPAN=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=m
+# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DEBUGGER is not set
+CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
+CONFIG_AD525X_DPOT=m
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ANDROID=y
+CONFIG_APDS9802ALS=m
+CONFIG_APPLICOM=m
+# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_EXYNOS is not set
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_ARCH_MMAP_RND_BITS_MAX=33
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
+CONFIG_ARCH_MXC=y
+CONFIG_ARCH_SUNXI=y
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_UNIPHIER is not set
+CONFIG_ARCNET=m
+CONFIG_ARM_SMMU=y
+CONFIG_ATA=y
+CONFIG_ATALK=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_GENERIC=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=m
+CONFIG_ATM=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX88796B_PHY=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BCH=m
+CONFIG_BCMA=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BE2ISCSI=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_C2PORT=m
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+CONFIG_CAN=m
+CONFIG_CB710_CORE=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CMDLINE="console=ttyAMA0"
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_COUNTER=m
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CRAMFS=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+# CONFIG_DEBUG_ALIGN_RODATA is not set
+CONFIG_DECNET=m
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_DMADEVICES=y
+CONFIG_DMA_CMA=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+# CONFIG_DM_DEBUG is not set
+CONFIG_DNET=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+CONFIG_DRM_ETNAVIV=m
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RCAR_LVDS=m
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VKMS=m
+CONFIG_DS1682=m
+CONFIG_DUMMY_IRQ=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_ECHO=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFS_FS=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ETHOC=m
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_I740=m
+# CONFIG_FB_IBM_GXT4500 is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_METRONOME=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RIVA=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SM712=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIXED_PHY=y
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FRAME_WARN=1024
+CONFIG_FUSION=y
+CONFIG_GAMEPORT=m
+CONFIG_GENERIC_PHY=y
+CONFIG_GNSS=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GREYBUS=m
+CONFIG_HABANA_AI=m
+CONFIG_HAMACHI=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+# CONFIG_HIBERNATION is not set
+CONFIG_HID=m
+# CONFIG_HIO is not set
+CONFIG_HMC6352=m
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HPFS_FS=m
+CONFIG_HP_ILO=m
+CONFIG_HSI=m
+CONFIG_HSR=m
+CONFIG_HTC_PASIC3=m
+CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+CONFIG_I2C=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+# CONFIG_I2C_AMD_MP2 is not set
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_IMX=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ICS932S401=m
+CONFIG_IEEE802154=m
+CONFIG_IIO=m
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INTERCONNECT=m
+CONFIG_IOMMU_IOVA=y
+CONFIG_IPACK_BUS=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMMU_VMSA is not set
+# CONFIG_IP_DCCP_CCID3 is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_JFS_FS=m
+CONFIG_JME=m
+CONFIG_JUMP_LABEL=y
+CONFIG_KARMA_PARTITION=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KVM=y
+CONFIG_LAPB=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LIBNVDIMM=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MAILBOX=y
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MCB=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_BUS_MUX=y
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMSTICK=m
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65217=m
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM8994=m
+CONFIG_MII=y
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MLXSW_I2C=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_CQHCI=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_ESDHC_IMX=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MTD=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_PHYSMAP_GEMINI=y
+CONFIG_MTD_PHYSMAP_VERSATILE=y
+CONFIG_MTD_RAW_NAND=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFP=m
+CONFIG_NODES_SHIFT=6
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOZOMI=m
+CONFIG_NR_CPUS=256
+CONFIG_NTB=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_NVMEM=y
+CONFIG_N_GSM=m
+CONFIG_OF=y
+CONFIG_OMFS_FS=m
+CONFIG_OSF_PARTITION=y
+CONFIG_PACKING=y
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PARAVIRT=y
+CONFIG_PARPORT=m
+CONFIG_PATA_SIS=m
+CONFIG_PC104=y
+CONFIG_PCCARD=m
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_LAYERSCAPE=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCMCIA is not set
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PINCTRL=y
+CONFIG_PM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPP=y
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_RAM=m
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PWM=y
+CONFIG_PWM_TIECAP=m
+CONFIG_PWM_TIEHRPWM=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+CONFIG_RAPIDIO=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RC_CORE=m
+CONFIG_REED_SOLOMON=m
+CONFIG_REFCOUNT_FULL=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_TPS65217=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REISERFS_FS=m
+CONFIG_REMOTEPROC=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RFKILL=y
+CONFIG_RMI4_CORE=m
+CONFIG_ROMFS_FS=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PL031=m
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_S2IO=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SCHED_SMT=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SNIC=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFS_QCOM=m
+CONFIG_SCSI_WD719X=m
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIO=y
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP=m
+CONFIG_SMC91X=y
+CONFIG_SND=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_IMX_SOC=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_IMX_PCM_DMA=m
+CONFIG_SND_SOC_IMX_SGTL5000=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_TIMER=m
+CONFIG_SOC_BRCMSTB=y
+CONFIG_SOC_TI=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SOUND=m
+CONFIG_SPI=y
+CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPMI=m
+CONFIG_SRAM=y
+CONFIG_SSB=m
+CONFIG_STAGING=y
+CONFIG_STANDALONE=y
+CONFIG_SUN_PARTITION=y
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSV_FS=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_THERMAL=y
+CONFIG_TIFM_CORE=m
+CONFIG_TLS=m
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TRACE_SINK=m
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TTY_PRINTK=y
+CONFIG_UFS_FS=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_DWC2_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_EMXX=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_SUPPORT=y
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_VIRQFD=m
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VME_BUS=y
+CONFIG_VMXNET3=m
+# CONFIG_VOP_BUS is not set
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+CONFIG_W1=m
+CONFIG_WAN=y
+CONFIG_WDTPCI=m
+CONFIG_WIMAX=m
+CONFIG_X25=m
+CONFIG_XEN=y
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILLYBUS=m
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YELLOWFIN=m
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZLIB_DEFLATE=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/arm64/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/arm64/config.flavour.generic
@@ -0,0 +1,3 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/armhf/config.common.armhf
+++ linux-gkeop-5.4-5.4.0/debian.master/config/armhf/config.common.armhf
@@ -0,0 +1,642 @@
+#
+# Config options for config.common.armhf automatically generated by splitconfig.pl
+#
+CONFIG_6LOWPAN=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=y
+CONFIG_AD525X_DPOT=m
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ANDROID=y
+CONFIG_APDS9802ALS=m
+CONFIG_APPLICOM=m
+CONFIG_ARCH_ALPINE=y
+CONFIG_ARCH_EXYNOS=y
+CONFIG_ARCH_MMAP_RND_BITS=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_BITS_MIN=8
+# CONFIG_ARCH_SUNXI is not set
+CONFIG_ARCH_UNIPHIER=y
+CONFIG_ARCNET=m
+# CONFIG_ARM_SMMU is not set
+CONFIG_ATA=y
+CONFIG_ATALK=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_GENERIC=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=m
+CONFIG_ATM=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX88796B_PHY=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BCH=y
+CONFIG_BCMA=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BE2ISCSI=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BOUNCE=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_C2PORT=m
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+CONFIG_CAN=m
+CONFIG_CB710_CORE=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CMDLINE=""
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_COUNTER=m
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CRAMFS=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_DECNET=m
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_DMADEVICES=y
+CONFIG_DMA_CMA=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+# CONFIG_DM_DEBUG is not set
+CONFIG_DNET=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+CONFIG_DRM_ETNAVIV=m
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RCAR_LVDS=m
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VKMS=m
+CONFIG_DS1682=m
+CONFIG_DUMMY_IRQ=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_ECHO=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFS_FS=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ETHOC=m
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_I740=m
+# CONFIG_FB_IBM_GXT4500 is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_METRONOME=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RIVA=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SM712=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIXED_PHY=y
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FRAME_WARN=1024
+CONFIG_FUSION=y
+CONFIG_GAMEPORT=m
+CONFIG_GENERIC_PHY=y
+CONFIG_GNSS=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TWL4030=y
+CONFIG_GPIO_TWL6040=y
+CONFIG_GPIO_XILINX=y
+CONFIG_GREYBUS=m
+CONFIG_HABANA_AI=m
+CONFIG_HAMACHI=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HIBERNATION=y
+CONFIG_HID=m
+# CONFIG_HIO is not set
+CONFIG_HMC6352=m
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_HPFS_FS=m
+CONFIG_HP_ILO=m
+CONFIG_HSI=m
+CONFIG_HSR=m
+CONFIG_HTC_PASIC3=m
+CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+CONFIG_I2C=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_EMEV2=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_IMX=y
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ICS932S401=m
+CONFIG_IEEE802154=m
+CONFIG_IIO=m
+# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INTERCONNECT=m
+CONFIG_IOMMU_IOVA=m
+CONFIG_IPACK_BUS=m
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMMU_VMSA=y
+# CONFIG_IP_DCCP_CCID3 is not set
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_JFS_FS=m
+CONFIG_JME=m
+# CONFIG_JUMP_LABEL is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_KVM=y
+CONFIG_LAPB=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LIBNVDIMM=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MAILBOX=y
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MCB=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY=y
+CONFIG_MEMSTICK=m
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65217=y
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM8994=m
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MLXSW_I2C=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MTD=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_NAND_CORE=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_PHYSMAP_GEMINI=y
+CONFIG_MTD_PHYSMAP_VERSATILE=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFP=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_NOZOMI=m
+CONFIG_NR_CPUS=4
+CONFIG_NTB=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NVMEM=y
+CONFIG_N_GSM=m
+CONFIG_OF=y
+CONFIG_OMFS_FS=m
+CONFIG_OSF_PARTITION=y
+CONFIG_PACKING=y
+CONFIG_PAGE_EXTENSION=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_PARAVIRT is not set
+CONFIG_PARPORT=m
+CONFIG_PATA_SIS=m
+CONFIG_PC104=y
+# CONFIG_PCCARD is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIPCWATCHDOG=m
+# CONFIG_PCI_LAYERSCAPE is not set
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PINCTRL=y
+CONFIG_PM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPP=y
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PWM=y
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+CONFIG_RAPIDIO=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RC_CORE=m
+CONFIG_REED_SOLOMON=y
+CONFIG_REFCOUNT_FULL=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_TPS65217=y
+CONFIG_REISERFS_FS=m
+CONFIG_REMOTEPROC=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RFKILL=y
+CONFIG_RMI4_CORE=m
+CONFIG_ROMFS_FS=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_TWL4030=y
+CONFIG_S2IO=m
+CONFIG_SATA_AHCI_PLATFORM=y
+# CONFIG_SCHED_SMT is not set
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SNIC=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_UFSHCD=m
+# CONFIG_SCSI_UFS_QCOM is not set
+CONFIG_SCSI_WD719X=m
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SERIAL_8250_DW=m
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIO=y
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP=m
+CONFIG_SMC91X=m
+CONFIG_SND=y
+CONFIG_SND_COMPRESS_OFFLOAD=y
+CONFIG_SND_DMAENGINE_PCM=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_PCM=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+CONFIG_SND_SOC_IMX_PCM_DMA=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_TIMER=y
+# CONFIG_SOC_BRCMSTB is not set
+CONFIG_SOC_TI=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SOUND=y
+CONFIG_SPI=y
+CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPMI=m
+CONFIG_SRAM=y
+CONFIG_SSB=m
+CONFIG_STAGING=y
+CONFIG_STANDALONE=y
+CONFIG_SUN_PARTITION=y
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSV_FS=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_THERMAL=y
+CONFIG_TIFM_CORE=m
+CONFIG_TLS=m
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TRACE_SINK=m
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TTY_PRINTK=y
+CONFIG_UFS_FS=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_DWC2_PCI=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+CONFIG_USB_EMXX=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_G_MULTI=m
+# CONFIG_USB_HCD_BCMA is not set
+# CONFIG_USB_HCD_SSB is not set
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_SUPPORT=y
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_VIRQFD=m
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VME_BUS=y
+CONFIG_VMXNET3=m
+# CONFIG_VOP_BUS is not set
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+CONFIG_W1=m
+CONFIG_WAN=y
+CONFIG_WDTPCI=m
+CONFIG_WIMAX=m
+CONFIG_X25=m
+# CONFIG_XEN is not set
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILLYBUS=m
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YELLOWFIN=m
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZLIB_DEFLATE=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/armhf/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/armhf/config.flavour.generic
@@ -0,0 +1,23 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
+CONFIG_ARCH_MXC=y
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP4=y
+CONFIG_ARCH_TEGRA=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
+# CONFIG_ARM_LPAE is not set
+CONFIG_FORCE_MAX_ZONEORDER=12
+CONFIG_IRQ_BYPASS_MANAGER=m
+CONFIG_MMC_CQHCI=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PWM_TIECAP=m
+CONFIG_PWM_TIEHRPWM=m
+CONFIG_REGULATOR_TWL4030=y
+CONFIG_RTC_DRV_PCF8523=y
+CONFIG_SND_SOC_FSL_SSI=y
+CONFIG_SND_SOC_IMX_AUDMUX=y
+CONFIG_SND_SOC_SGTL5000=y
+CONFIG_SOC_AM33XX=y
+CONFIG_USB_OHCI_HCD_PLATFORM=m
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/armhf/config.flavour.generic-lpae
+++ linux-gkeop-5.4-5.4.0/debian.master/config/armhf/config.flavour.generic-lpae
@@ -0,0 +1,23 @@
+#
+# Config options for config.flavour.generic-lpae automatically generated by splitconfig.pl
+#
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_OMAP3 is not set
+# CONFIG_ARCH_OMAP4 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARM_ATAG_DTB_COMPAT is not set
+CONFIG_ARM_HIGHBANK_CPUIDLE=y
+CONFIG_ARM_LPAE=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_MMC_CQHCI=m
+CONFIG_PGTABLE_LEVELS=3
+# CONFIG_PWM_TIECAP is not set
+# CONFIG_PWM_TIEHRPWM is not set
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_SGTL5000=m
+# CONFIG_SOC_AM33XX is not set
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/config.common.ports
+++ linux-gkeop-5.4-5.4.0/debian.master/config/config.common.ports
@@ -0,0 +1,3 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/config.common.ubuntu
+++ linux-gkeop-5.4-5.4.0/debian.master/config/config.common.ubuntu
@@ -0,0 +1,11644 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
+CONFIG_104_QUAD_8=m
+CONFIG_3C515=m
+CONFIG_60XX_WDT=m
+CONFIG_64BIT=y
+CONFIG_64BIT_TIME=y
+# CONFIG_6LOWPAN_DEBUGFS is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_DEST is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_HOP is not set
+# CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE is not set
+# CONFIG_6LOWPAN_GHC_ICMPV6 is not set
+# CONFIG_6LOWPAN_GHC_UDP is not set
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6PACK=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_8129=y
+CONFIG_8139TOO_PIO=y
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_842_COMPRESS=m
+CONFIG_842_DECOMPRESS=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=m
+CONFIG_ABP060MG=m
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
+CONFIG_ACER_WMI=m
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_ADXL=y
+CONFIG_ACPI_ALS=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_EINJ=m
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_SEA=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BGRT=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_CCA_REQUIRED=y
+CONFIG_ACPI_CMPC=m
+CONFIG_ACPI_CONFIGFS=m
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_CPPC_CPUFREQ=m
+CONFIG_ACPI_CPPC_LIB=y
+CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_CUSTOM_DSDT_FILE=""
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_DEBUGGER_USER=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_EXTLOG=m
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_GENERIC_GSI=y
+CONFIG_ACPI_GTDT=y
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_HMAT=y
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_ACPI_IORT=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ACPI_LPIT=y
+CONFIG_ACPI_MCFG=y
+CONFIG_ACPI_NFIT=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_PPTT=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_PROCESSOR_CSTATE=y
+CONFIG_ACPI_PROCESSOR_IDLE=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TAD=m
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_THERMAL_REL=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_WATCHDOG=y
+CONFIG_ACPI_WMI=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ACRN_GUEST=y
+CONFIG_AD2S1200=m
+CONFIG_AD2S1210=m
+CONFIG_AD2S90=m
+CONFIG_AD5064=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_AD5272=m
+CONFIG_AD5360=m
+CONFIG_AD5380=m
+CONFIG_AD5421=m
+CONFIG_AD5446=m
+CONFIG_AD5449=m
+CONFIG_AD5504=m
+CONFIG_AD5592R=m
+CONFIG_AD5592R_BASE=m
+CONFIG_AD5593R=m
+CONFIG_AD5624R_SPI=m
+CONFIG_AD5686=m
+CONFIG_AD5686_SPI=m
+CONFIG_AD5696_I2C=m
+CONFIG_AD5755=m
+CONFIG_AD5758=m
+CONFIG_AD5761=m
+CONFIG_AD5764=m
+CONFIG_AD5791=m
+CONFIG_AD5933=m
+CONFIG_AD7124=m
+CONFIG_AD7150=m
+CONFIG_AD7192=m
+CONFIG_AD7266=m
+CONFIG_AD7280=m
+CONFIG_AD7291=m
+CONFIG_AD7298=m
+CONFIG_AD7303=m
+CONFIG_AD7476=m
+CONFIG_AD7606=m
+CONFIG_AD7606_IFACE_PARALLEL=m
+CONFIG_AD7606_IFACE_SPI=m
+CONFIG_AD7746=m
+CONFIG_AD7766=m
+CONFIG_AD7768_1=m
+CONFIG_AD7780=m
+CONFIG_AD7791=m
+CONFIG_AD7793=m
+CONFIG_AD7816=m
+CONFIG_AD7887=m
+CONFIG_AD7923=m
+CONFIG_AD7949=m
+CONFIG_AD799X=m
+CONFIG_AD8366=m
+CONFIG_AD8801=m
+CONFIG_AD9523=m
+CONFIG_AD9832=m
+CONFIG_AD9834=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_ADE7854=m
+CONFIG_ADE7854_I2C=m
+CONFIG_ADE7854_SPI=m
+CONFIG_ADF4350=m
+CONFIG_ADF4371=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_ADIN_PHY=m
+CONFIG_ADIS16080=m
+CONFIG_ADIS16130=m
+CONFIG_ADIS16136=m
+CONFIG_ADIS16201=m
+CONFIG_ADIS16203=m
+CONFIG_ADIS16209=m
+CONFIG_ADIS16240=m
+CONFIG_ADIS16260=m
+CONFIG_ADIS16400=m
+CONFIG_ADIS16460=m
+CONFIG_ADIS16480=m
+CONFIG_ADJD_S311=m
+CONFIG_ADM8211=m
+CONFIG_ADT7316=m
+CONFIG_ADT7316_I2C=m
+CONFIG_ADT7316_SPI=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_ADXL372=m
+CONFIG_ADXL372_I2C=m
+CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS450=m
+CONFIG_AD_SIGMA_DELTA=m
+CONFIG_AEABI=y
+CONFIG_AFE4403=m
+CONFIG_AFE4404=m
+CONFIG_AFIUCV=m
+# CONFIG_AFS_DEBUG is not set
+# CONFIG_AFS_DEBUG_CURSOR is not set
+CONFIG_AFS_FS=m
+CONFIG_AFS_FSCACHE=y
+CONFIG_AF_KCM=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
+CONFIG_AF_RXRPC_IPV6=y
+CONFIG_AGP=y
+CONFIG_AGP_ALI=m
+CONFIG_AGP_AMD=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_ATI=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_NVIDIA=y
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=y
+CONFIG_AHC1EC0_WDT=m
+CONFIG_AHCI_BRCM=m
+CONFIG_AHCI_CEVA=m
+CONFIG_AHCI_DM816=m
+CONFIG_AHCI_IMX=y
+CONFIG_AHCI_MTK=m
+CONFIG_AHCI_MVEBU=m
+CONFIG_AHCI_QORIQ=m
+# CONFIG_AHCI_SUNXI is not set
+CONFIG_AHCI_TEGRA=m
+CONFIG_AHCI_XGENE=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_AK09911=m
+CONFIG_AK8974=m
+CONFIG_AK8975=m
+CONFIG_AL3320A=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIX=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_ALPINE_MSI=y
+CONFIG_ALTERA_FREEZE_BRIDGE=m
+CONFIG_ALTERA_MBOX=m
+CONFIG_ALTERA_MSGDMA=m
+CONFIG_ALTERA_PR_IP_CORE=m
+CONFIG_ALTERA_PR_IP_CORE_PLAT=m
+CONFIG_ALTIVEC=y
+CONFIG_ALX=m
+CONFIG_AL_FIC=y
+CONFIG_AM2315=m
+CONFIG_AM335X_CONTROL_USB=m
+CONFIG_AM335X_PHY_USB=m
+CONFIG_AMBA_PL08X=y
+CONFIG_AMD8111_ETH=m
+CONFIG_AMD_IOMMU=y
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_AMD_MEM_ENCRYPT=y
+# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
+CONFIG_AMD_NB=y
+CONFIG_AMD_NUMA=y
+CONFIG_AMD_PHY=m
+CONFIG_AMD_XGBE=m
+CONFIG_AMD_XGBE_DCB=y
+CONFIG_AMD_XGBE_HAVE_ECC=y
+CONFIG_AMILO_RFKILL=m
+CONFIG_ANDROID_BINDERFS=m
+CONFIG_ANDROID_BINDER_DEVICES=""
+CONFIG_ANDROID_BINDER_IPC=m
+# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
+# CONFIG_ANDROID_VSOC is not set
+CONFIG_APB_TIMER=y
+CONFIG_APDS9300=m
+CONFIG_APDS9960=m
+CONFIG_APM=m
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_EMULATION is not set
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APPLDATA_BASE=y
+CONFIG_APPLDATA_MEM=m
+CONFIG_APPLDATA_NET_SUM=m
+CONFIG_APPLDATA_OS=m
+CONFIG_APPLE_GMUX=m
+CONFIG_APPLE_PROPERTIES=y
+CONFIG_APQ_GCC_8084=m
+CONFIG_APQ_MMCC_8084=m
+CONFIG_AQTION=m
+CONFIG_AQUANTIA_PHY=m
+CONFIG_AR5523=m
+CONFIG_ARCH_32BIT_OFF_T=y
+CONFIG_ARCH_ACTIONS=y
+CONFIG_ARCH_AGILEX=y
+CONFIG_ARCH_ARTPEC=y
+CONFIG_ARCH_ASPEED=y
+# CONFIG_ARCH_AT91 is not set
+CONFIG_ARCH_AXXIA=y
+# CONFIG_ARCH_BCM is not set
+CONFIG_ARCH_BCM2835=y
+CONFIG_ARCH_BCM_IPROC=y
+CONFIG_ARCH_BERLIN=y
+CONFIG_ARCH_BINFMT_ELF_STATE=y
+CONFIG_ARCH_BITMAIN=y
+CONFIG_ARCH_BRCMSTB=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_ARCH_CLOCKSOURCE_INIT=y
+CONFIG_ARCH_CPUIDLE_HALTPOLL=y
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+# CONFIG_ARCH_DIGICOLOR is not set
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_EBSA110 is not set
+CONFIG_ARCH_EMEV2=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_EXYNOS3 is not set
+# CONFIG_ARCH_EXYNOS4 is not set
+CONFIG_ARCH_EXYNOS5=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+# CONFIG_ARCH_FOOTBRIDGE is not set
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ARCH_HAS_ADD_PAGES=y
+CONFIG_ARCH_HAS_BANDGAP=y
+CONFIG_ARCH_HAS_BINFMT_FLAT=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_HAS_FILTER_PGPROT=y
+CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_HAS_HUGEPD=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_KEEPINITRD=y
+CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
+CONFIG_ARCH_HAS_MEMBARRIER_CALLBACKS=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_ARCH_HAS_MMIOWB=y
+CONFIG_ARCH_HAS_PHYS_TO_DMA=y
+CONFIG_ARCH_HAS_PKEYS=y
+CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_ARCH_HAS_REFCOUNT=y
+CONFIG_ARCH_HAS_RELR=y
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_ARCH_HAS_SCALED_CPUTIME=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
+CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HI3xxx=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_HIGHBANK=y
+# CONFIG_ARCH_HIP01 is not set
+CONFIG_ARCH_HIP04=y
+CONFIG_ARCH_HISI=y
+CONFIG_ARCH_HIX5HD2=y
+CONFIG_ARCH_INLINE_READ_LOCK=y
+CONFIG_ARCH_INLINE_READ_LOCK_BH=y
+CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y
+CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y
+CONFIG_ARCH_INLINE_READ_TRYLOCK=y
+CONFIG_ARCH_INLINE_READ_UNLOCK=y
+CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y
+CONFIG_ARCH_INLINE_SPIN_LOCK=y
+CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y
+CONFIG_ARCH_INLINE_WRITE_LOCK=y
+CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y
+CONFIG_ARCH_INLINE_WRITE_TRYLOCK=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IXP4XX is not set
+CONFIG_ARCH_K3=y
+CONFIG_ARCH_K3_AM6_SOC=y
+CONFIG_ARCH_K3_J721E_SOC=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+# CONFIG_ARCH_KEYSTONE is not set
+CONFIG_ARCH_LAYERSCAPE=y
+CONFIG_ARCH_LG1K=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MDM9615=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_MESON=y
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_ARCH_MILBEAUT=y
+CONFIG_ARCH_MILBEAUT_M10V=y
+# CONFIG_ARCH_MMP is not set
+CONFIG_ARCH_MSM8960=y
+CONFIG_ARCH_MSM8974=y
+CONFIG_ARCH_MSM8X60=y
+CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_MULTI_V6 is not set
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y
+CONFIG_ARCH_NPCM=y
+CONFIG_ARCH_NPCM7XX=y
+CONFIG_ARCH_NR_GPIO=1024
+CONFIG_ARCH_OMAP=y
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_ARCH_OMAP2PLUS=y
+CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+# CONFIG_ARCH_PXA is not set
+CONFIG_ARCH_QCOM=y
+CONFIG_ARCH_R7S72100=y
+CONFIG_ARCH_R7S9210=y
+# CONFIG_ARCH_R8A73A4 is not set
+CONFIG_ARCH_R8A7740=y
+CONFIG_ARCH_R8A7743=y
+CONFIG_ARCH_R8A7744=y
+CONFIG_ARCH_R8A7745=y
+CONFIG_ARCH_R8A77470=y
+CONFIG_ARCH_R8A774A1=y
+CONFIG_ARCH_R8A774C0=y
+CONFIG_ARCH_R8A7778=y
+CONFIG_ARCH_R8A7779=y
+CONFIG_ARCH_R8A7790=y
+CONFIG_ARCH_R8A7791=y
+CONFIG_ARCH_R8A7792=y
+CONFIG_ARCH_R8A7793=y
+CONFIG_ARCH_R8A7794=y
+CONFIG_ARCH_R8A7795=y
+CONFIG_ARCH_R8A7796=y
+CONFIG_ARCH_R8A77965=y
+CONFIG_ARCH_R8A77970=y
+CONFIG_ARCH_R8A77980=y
+CONFIG_ARCH_R8A77990=y
+CONFIG_ARCH_R8A77995=y
+CONFIG_ARCH_R9A06G032=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_ARCH_RCAR_GEN1=y
+CONFIG_ARCH_RCAR_GEN2=y
+CONFIG_ARCH_RCAR_GEN3=y
+CONFIG_ARCH_RDA=y
+CONFIG_ARCH_REALTEK=y
+# CONFIG_ARCH_REALVIEW is not set
+CONFIG_ARCH_RENESAS=y
+CONFIG_ARCH_RMOBILE=y
+CONFIG_ARCH_ROCKCHIP=y
+# CONFIG_ARCH_RPC is not set
+CONFIG_ARCH_RZN1=y
+# CONFIG_ARCH_S3C24XX is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_SA1100 is not set
+CONFIG_ARCH_SEATTLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SH73A0=y
+# CONFIG_ARCH_SIRF is not set
+# CONFIG_ARCH_SOCFPGA is not set
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPRD=y
+CONFIG_ARCH_STACKWALK=y
+# CONFIG_ARCH_STI is not set
+# CONFIG_ARCH_STM32 is not set
+CONFIG_ARCH_STRATIX10=y
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_NONZERO_CPU=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_SYNQUACER=y
+# CONFIG_ARCH_TANGO is not set
+CONFIG_ARCH_TEGRA_114_SOC=y
+CONFIG_ARCH_TEGRA_124_SOC=y
+CONFIG_ARCH_TEGRA_2x_SOC=y
+CONFIG_ARCH_TEGRA_3x_SOC=y
+CONFIG_ARCH_THUNDER=y
+CONFIG_ARCH_THUNDER2=y
+# CONFIG_ARCH_U8500 is not set
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
+CONFIG_ARCH_VEXPRESS_DCSCB=y
+CONFIG_ARCH_VEXPRESS_SPC=y
+CONFIG_ARCH_VEXPRESS_TC2_PM=y
+CONFIG_ARCH_VIRT=y
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_ARCH_WEAK_RELEASE_ACQUIRE=y
+# CONFIG_ARCH_WM8850 is not set
+CONFIG_ARCH_XGENE=y
+# CONFIG_ARCH_ZX is not set
+# CONFIG_ARCH_ZYNQ is not set
+CONFIG_ARCH_ZYNQMP=y
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ARCNET_COM20020_ISA=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCX_ANYBUS_CONTROLLER=m
+CONFIG_ARC_EMAC_CORE=m
+CONFIG_ARM=y
+CONFIG_ARM64=y
+# CONFIG_ARM64_16K_PAGES is not set
+CONFIG_ARM64_4K_PAGES=y
+# CONFIG_ARM64_64K_PAGES is not set
+CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
+CONFIG_ARM64_CNP=y
+CONFIG_ARM64_CONT_SHIFT=4
+CONFIG_ARM64_CRYPTO=y
+# CONFIG_ARM64_DEBUG_PRIORITY_MASKING is not set
+CONFIG_ARM64_ERRATUM_1024718=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_ERRATUM_1418040=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1542419=y
+CONFIG_ARM64_ERRATUM_819472=y
+CONFIG_ARM64_ERRATUM_824069=y
+CONFIG_ARM64_ERRATUM_826319=y
+CONFIG_ARM64_ERRATUM_827319=y
+CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_845719=y
+CONFIG_ARM64_ERRATUM_858921=y
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_MODULE_PLTS=y
+CONFIG_ARM64_PAGE_SHIFT=12
+CONFIG_ARM64_PAN=y
+CONFIG_ARM64_PA_BITS=48
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PMEM=y
+CONFIG_ARM64_PSEUDO_NMI=y
+CONFIG_ARM64_PTDUMP_CORE=y
+# CONFIG_ARM64_PTDUMP_DEBUGFS is not set
+CONFIG_ARM64_PTR_AUTH=y
+# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+CONFIG_ARM64_RAS_EXTN=y
+# CONFIG_ARM64_RELOC_TEST is not set
+CONFIG_ARM64_SSBD=y
+CONFIG_ARM64_SVE=y
+CONFIG_ARM64_SW_TTBR0_PAN=y
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+CONFIG_ARM64_UAO=y
+CONFIG_ARM64_VA_BITS=48
+# CONFIG_ARM64_VA_BITS_39 is not set
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_ARM64_VHE=y
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+CONFIG_ARMADA375_USBCLUSTER_PHY=y
+CONFIG_ARMADA_370_CLK=y
+CONFIG_ARMADA_370_XP_IRQ=y
+CONFIG_ARMADA_370_XP_TIMER=y
+CONFIG_ARMADA_375_CLK=y
+CONFIG_ARMADA_37XX_CLK=y
+CONFIG_ARMADA_37XX_RWTM_MBOX=m
+CONFIG_ARMADA_37XX_WATCHDOG=m
+CONFIG_ARMADA_38X_CLK=y
+CONFIG_ARMADA_39X_CLK=y
+CONFIG_ARMADA_AP806_SYSCON=y
+CONFIG_ARMADA_AP_CPU_CLK=y
+CONFIG_ARMADA_AP_CP_HELPER=y
+CONFIG_ARMADA_CP110_SYSCON=y
+CONFIG_ARMADA_THERMAL=y
+CONFIG_ARMADA_XP_CLK=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
+CONFIG_ARM_AMBA=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
+CONFIG_ARM_ARMADA_8K_CPUFREQ=m
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND=y
+# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER is not set
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
+CONFIG_ARM_BIG_LITTLE_CPUIDLE=y
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ=m
+CONFIG_ARM_CCI=y
+CONFIG_ARM_CCI400_COMMON=y
+CONFIG_ARM_CCI400_PMU=y
+CONFIG_ARM_CCI400_PORT_CTRL=y
+CONFIG_ARM_CCI5xx_PMU=y
+CONFIG_ARM_CCI_PMU=y
+CONFIG_ARM_CCN=y
+CONFIG_ARM_CHARLCD=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_ARM_DMA_USE_IOMMU=y
+CONFIG_ARM_DSU_PMU=m
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_ERRATA_643719=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_ERRATA_754327=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_ARM_ERRATA_773022=y
+CONFIG_ARM_ERRATA_775420=y
+CONFIG_ARM_ERRATA_798181=y
+CONFIG_ARM_ERRATA_814220=y
+CONFIG_ARM_ERRATA_818325_852422=y
+CONFIG_ARM_ERRATA_821420=y
+CONFIG_ARM_ERRATA_825619=y
+CONFIG_ARM_ERRATA_852421=y
+CONFIG_ARM_ERRATA_852423=y
+CONFIG_ARM_ERRATA_857271=y
+CONFIG_ARM_ERRATA_857272=y
+CONFIG_ARM_EXYNOS_BUS_DEVFREQ=y
+CONFIG_ARM_EXYNOS_CPUIDLE=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_FSL_MC=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+CONFIG_ARM_GLOBAL_TIMER=y
+CONFIG_ARM_HAS_SG_CHAIN=y
+CONFIG_ARM_HEAVY_MB=y
+CONFIG_ARM_HIGHBANK_CPUFREQ=m
+CONFIG_ARM_IMX6Q_CPUFREQ=m
+CONFIG_ARM_IMX_CPUFREQ_DT=m
+CONFIG_ARM_KPROBES_TEST=m
+CONFIG_ARM_L1_CACHE_SHIFT=7
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_L1_CACHE_SHIFT_7=y
+CONFIG_ARM_MEDIATEK_CPUFREQ=m
+CONFIG_ARM_MHU=m
+# CONFIG_ARM_MODULE_PLTS is not set
+CONFIG_ARM_MVEBU_V7_CPUIDLE=y
+CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
+CONFIG_ARM_PATCH_IDIV=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_PL172_MPMC=m
+CONFIG_ARM_PMU=y
+CONFIG_ARM_PMU_ACPI=y
+CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
+CONFIG_ARM_PTDUMP_CORE=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
+CONFIG_ARM_QCOM_CPUFREQ_HW=m
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM=m
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
+CONFIG_ARM_RK3399_DMC_DEVFREQ=m
+CONFIG_ARM_SBSA_WATCHDOG=m
+CONFIG_ARM_SCMI_CPUFREQ=m
+CONFIG_ARM_SCMI_POWER_DOMAIN=m
+CONFIG_ARM_SCMI_PROTOCOL=y
+CONFIG_ARM_SCPI_CPUFREQ=m
+CONFIG_ARM_SCPI_POWER_DOMAIN=m
+CONFIG_ARM_SCPI_PROTOCOL=m
+CONFIG_ARM_SDE_INTERFACE=y
+# CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT is not set
+CONFIG_ARM_SMMU_V3=y
+CONFIG_ARM_SMMU_V3_PMU=m
+CONFIG_ARM_SP805_WATCHDOG=m
+CONFIG_ARM_SPE_PMU=m
+CONFIG_ARM_TEGRA124_CPUFREQ=y
+CONFIG_ARM_TEGRA186_CPUFREQ=m
+CONFIG_ARM_TEGRA20_CPUFREQ=y
+CONFIG_ARM_TEGRA20_DEVFREQ=m
+CONFIG_ARM_TEGRA_DEVFREQ=m
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
+CONFIG_ARM_TIMER_SP804=y
+CONFIG_ARM_TI_CPUFREQ=y
+CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=m
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_AS3935=m
+CONFIG_ASHMEM=m
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_ASN1=y
+CONFIG_ASPEED_ADC=m
+CONFIG_ASPEED_BT_IPMI_BMC=m
+CONFIG_ASPEED_KCS_IPMI_BMC=m
+CONFIG_ASPEED_LPC_CTRL=m
+CONFIG_ASPEED_LPC_SNOOP=m
+CONFIG_ASPEED_P2A_CTRL=m
+CONFIG_ASPEED_WATCHDOG=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_ASUS_LAPTOP=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_ASUS_WIRELESS=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+# CONFIG_ASYNC_RAID6_TEST is not set
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_ASYNC_XOR=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AT803X_PHY=m
+CONFIG_ATAGS=y
+CONFIG_ATAGS_PROC=y
+CONFIG_ATA_ACPI=y
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_AHB=y
+CONFIG_ATH10K_CE=y
+# CONFIG_ATH10K_DEBUG is not set
+CONFIG_ATH10K_DEBUGFS=y
+CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SDIO=m
+CONFIG_ATH10K_SNOC=m
+CONFIG_ATH10K_SPECTRAL=y
+CONFIG_ATH10K_TRACING=y
+CONFIG_ATH10K_USB=m
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_ATH6KL_SDIO=m
+# CONFIG_ATH6KL_TRACING is not set
+CONFIG_ATH6KL_USB=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_AHB=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_COMMON_DEBUG=y
+CONFIG_ATH9K_COMMON_SPECTRAL=y
+CONFIG_ATH9K_DEBUGFS=y
+# CONFIG_ATH9K_DYNACK is not set
+CONFIG_ATH9K_HTC=m
+CONFIG_ATH9K_HTC_DEBUGFS=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_HWRNG=y
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_PCI_NO_EEPROM=m
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_STATION_STATISTICS=y
+CONFIG_ATH9K_WOW=y
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATL1=m
+CONFIG_ATL1C=m
+CONFIG_ATL1E=m
+CONFIG_ATL2=m
+CONFIG_ATLAS_PH_SENSOR=m
+CONFIG_ATMEL=m
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E_TX_RETRY=16
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ATP=m
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+CONFIG_AUDIT_COMPAT_GENERIC=y
+CONFIG_AUDIT_GENERIC=y
+CONFIG_AUFS_BDEV_LOOP=y
+# CONFIG_AUFS_BRANCH_MAX_1023 is not set
+CONFIG_AUFS_BRANCH_MAX_127=y
+# CONFIG_AUFS_BRANCH_MAX_32767 is not set
+# CONFIG_AUFS_BRANCH_MAX_511 is not set
+# CONFIG_AUFS_BR_FUSE is not set
+CONFIG_AUFS_BR_HFSPLUS=y
+# CONFIG_AUFS_BR_RAMFS is not set
+# CONFIG_AUFS_DEBUG is not set
+CONFIG_AUFS_DIRREN=y
+CONFIG_AUFS_EXPORT=y
+# CONFIG_AUFS_FHSM is not set
+CONFIG_AUFS_FS=m
+# CONFIG_AUFS_HNOTIFY is not set
+CONFIG_AUFS_INO_T_64=y
+# CONFIG_AUFS_RDU is not set
+CONFIG_AUFS_SBILIST=y
+# CONFIG_AUFS_SHWH is not set
+CONFIG_AUFS_XATTR=y
+CONFIG_AURORA_NB8800=m
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_AX88796=m
+# CONFIG_AX88796_93CX6 is not set
+CONFIG_AXI_DMAC=m
+CONFIG_AXP20X_ADC=m
+CONFIG_AXP20X_POWER=m
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PIO=y
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_B43_BCMA=y
+CONFIG_B43_BCMA_PIO=y
+# CONFIG_B43_BUSES_BCMA is not set
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_SSB is not set
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43_HWRNG=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PIO=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B43_SSB=y
+CONFIG_B44=m
+CONFIG_B44_PCI=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B53=m
+CONFIG_B53_MDIO_DRIVER=m
+CONFIG_B53_MMAP_DRIVER=m
+CONFIG_B53_SERDES=m
+CONFIG_B53_SPI_DRIVER=m
+CONFIG_B53_SRAB_DRIVER=m
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_AAT2870=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
+CONFIG_BACKLIGHT_AS3711=m
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LM3533=m
+CONFIG_BACKLIGHT_LM3630A=m
+CONFIG_BACKLIGHT_LM3639=m
+CONFIG_BACKLIGHT_LP855X=m
+CONFIG_BACKLIGHT_LP8788=m
+CONFIG_BACKLIGHT_LV5207LP=m
+CONFIG_BACKLIGHT_MAX8925=m
+CONFIG_BACKLIGHT_PANDORA=m
+CONFIG_BACKLIGHT_PCF50633=m
+CONFIG_BACKLIGHT_PM8941_WLED=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RAVE_SP=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_SKY81452=m
+CONFIG_BACKLIGHT_TPS65217=m
+CONFIG_BACKLIGHT_WM831X=m
+# CONFIG_BACKTRACE_SELF_TEST is not set
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+# CONFIG_BATMAN_ADV_BATMAN_V is not set
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+# CONFIG_BATMAN_ADV_DEBUGFS is not set
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_SYSFS=y
+# CONFIG_BATMAN_ADV_TRACING is not set
+CONFIG_BATTERY_88PM860X=m
+CONFIG_BATTERY_ACT8945A=m
+CONFIG_BATTERY_AXP20X=m
+CONFIG_BATTERY_BQ27XXX=m
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
+CONFIG_BATTERY_BQ27XXX_HDQ=m
+CONFIG_BATTERY_BQ27XXX_I2C=m
+CONFIG_BATTERY_CPCAP=m
+CONFIG_BATTERY_DA9030=m
+CONFIG_BATTERY_DA9052=m
+CONFIG_BATTERY_DA9150=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2781=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_LEGO_EV3=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_BATTERY_MAX1721X=m
+CONFIG_BATTERY_RT5033=m
+CONFIG_BATTERY_RX51=m
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_TWL4030_MADC=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+# CONFIG_BCACHE_DEBUG is not set
+CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_POWER=y
+CONFIG_BCM2835_THERMAL=m
+CONFIG_BCM2835_VCHIQ=m
+CONFIG_BCM2835_WDT=m
+CONFIG_BCM7038_L1_IRQ=y
+CONFIG_BCM7038_WDT=m
+CONFIG_BCM7XXX_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMA_SFLASH=y
+CONFIG_BCMGENET=m
+CONFIG_BCM_FLEXRM_MBOX=m
+CONFIG_BCM_IPROC_ADC=m
+CONFIG_BCM_NET_PHYLIB=m
+CONFIG_BCM_NS_THERMAL=m
+CONFIG_BCM_PDC_MBOX=m
+CONFIG_BCM_SBA_RAID=m
+CONFIG_BCM_SR_THERMAL=m
+CONFIG_BCM_VIDEOCORE=m
+CONFIG_BD70528_WATCHDOG=m
+CONFIG_BE2NET=m
+CONFIG_BE2NET_BE2=y
+CONFIG_BE2NET_BE3=y
+CONFIG_BE2NET_HWMON=y
+CONFIG_BE2NET_LANCER=y
+CONFIG_BE2NET_SKYHAWK=y
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BERLIN2_ADC=m
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
+CONFIG_BGMAC=y
+CONFIG_BGMAC_PLATFORM=y
+CONFIG_BH1750=m
+CONFIG_BH1780=m
+CONFIG_BIG_KEYS=y
+CONFIG_BIG_LITTLE=y
+CONFIG_BINARY_PRINTF=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_ELF_FDPIC=y
+CONFIG_BINFMT_FLAT=y
+CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
+CONFIG_BINFMT_FLAT_OLD=y
+CONFIG_BINFMT_MISC=m
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BINFMT_SHARED_FLAT=y
+CONFIG_BINFMT_ZFLAT=y
+CONFIG_BITREVERSE=y
+CONFIG_BLK_CGROUP=y
+CONFIG_BLK_CGROUP_IOCOST=y
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_BLK_DEBUG_FS=y
+CONFIG_BLK_DEBUG_FS_ZONED=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_MD=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
+# CONFIG_BLK_DEV_XPRAM is not set
+CONFIG_BLK_DEV_ZONED=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_RDMA=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLK_RQ_ALLOC_TIME=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_SED_OPAL=y
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BL_SWITCHER=y
+CONFIG_BL_SWITCHER_DUMMY_IF=m
+CONFIG_BMA180=m
+CONFIG_BMA220=m
+CONFIG_BMC150_ACCEL=m
+CONFIG_BMC150_ACCEL_I2C=m
+CONFIG_BMC150_ACCEL_SPI=m
+CONFIG_BMC150_MAGN=m
+CONFIG_BMC150_MAGN_I2C=m
+CONFIG_BMC150_MAGN_SPI=m
+CONFIG_BME680=m
+CONFIG_BME680_I2C=m
+CONFIG_BME680_SPI=m
+CONFIG_BMG160=m
+CONFIG_BMG160_I2C=m
+CONFIG_BMG160_SPI=m
+CONFIG_BMI160=m
+CONFIG_BMI160_I2C=m
+CONFIG_BMI160_SPI=m
+CONFIG_BMP280=m
+CONFIG_BMP280_I2C=m
+CONFIG_BMP280_SPI=m
+CONFIG_BNA=m
+CONFIG_BNX2=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_BNXT=m
+CONFIG_BNXT_DCB=y
+CONFIG_BNXT_FLOWER_OFFLOAD=y
+CONFIG_BNXT_HWMON=y
+CONFIG_BNXT_SRIOV=y
+CONFIG_BOARD_TPCI200=m
+CONFIG_BONDING=m
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTX_TEXT is not set
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_BPF=y
+CONFIG_BPFILTER=y
+CONFIG_BPFILTER_UMH=m
+CONFIG_BPF_EVENTS=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
+CONFIG_BPF_STREAM_PARSER=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPQETHER=m
+CONFIG_BQL=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_BRCMDBG is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PCIE=y
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMSTB_GISB_ARB=y
+CONFIG_BRCMSTB_L2_IRQ=y
+CONFIG_BRCMSTB_PM=y
+CONFIG_BRCMSTB_THERMAL=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCM_TRACING=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_BROADCOM_PHY=m
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_BT=m
+CONFIG_BTREE=y
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_DEBUG is not set
+CONFIG_BTRFS_FS=m
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+CONFIG_BTT=y
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_BCM=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_BREDR=y
+CONFIG_BT_CMTP=m
+CONFIG_BT_DEBUGFS=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_MTK=y
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIRSI=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_MRVL=y
+CONFIG_BT_HCIUART_NOKIA=m
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_RTL=y
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_HIDP=m
+# CONFIG_BT_HS is not set
+CONFIG_BT_INTEL=m
+CONFIG_BT_LE=y
+CONFIG_BT_LEDS=y
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_MTKSDIO=m
+CONFIG_BT_MTKUART=m
+CONFIG_BT_QCA=m
+CONFIG_BT_QCOMSMD=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_RTL=m
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_WILINK=m
+CONFIG_BUG=y
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_BUILD_BIN2C=y
+CONFIG_BUILD_SALT=""
+CONFIG_C101=m
+CONFIG_C2PORT_DURAMAR_2150=m
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+CONFIG_CACHE_FEROCEON_L2=y
+# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
+CONFIG_CACHE_L2X0=y
+CONFIG_CACHE_L2X0_PMU=y
+CONFIG_CACHE_TAUROS2=y
+CONFIG_CACHE_UNIPHIER=y
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_HSI=m
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_SPI_SLAVE=m
+# CONFIG_CAIF_SPI_SYNC is not set
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_USB=m
+CONFIG_CAIF_VIRTIO=m
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_CALC_BITTIMING=y
+CONFIG_CAN_CC770=m
+CONFIG_CAN_CC770_ISA=m
+CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_EMS_PCMCIA=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_ESD_USB2=m
+CONFIG_CAN_F81601=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_CAN_GRCAN=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_GW=m
+CONFIG_CAN_HI311X=m
+CONFIG_CAN_IFI_CANFD=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_JANZ_ICAN3=m
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_KVASER_PCIEFD=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN_MCBA_USB=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MSCAN=m
+CONFIG_CAN_M_CAN=m
+CONFIG_CAN_M_CAN_PLATFORM=m
+CONFIG_CAN_M_CAN_TCAN4X5X=m
+CONFIG_CAN_PEAK_PCI=m
+CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
+CONFIG_CAN_PEAK_PCMCIA=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_RCAR=m
+CONFIG_CAN_RCAR_CANFD=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_ISA=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_SOFTING=m
+CONFIG_CAN_SOFTING_CS=m
+CONFIG_CAN_TI_HECC=m
+CONFIG_CAN_TSCAN1=m
+CONFIG_CAN_UCAN=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
+CONFIG_CAN_XILINXCAN=m
+CONFIG_CAPI_AVM=y
+CONFIG_CAPI_TRACE=y
+CONFIG_CARDBUS=y
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_CARL9170=m
+# CONFIG_CARL9170_DEBUGFS is not set
+CONFIG_CARL9170_HWRNG=y
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_CASSINI=m
+CONFIG_CAVIUM_CPT=m
+CONFIG_CAVIUM_ERRATUM_22375=y
+CONFIG_CAVIUM_ERRATUM_23144=y
+CONFIG_CAVIUM_ERRATUM_23154=y
+CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_PTP=m
+CONFIG_CAVIUM_TX2_ERRATUM_219=y
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_CC10001_ADC=m
+CONFIG_CCS811=m
+CONFIG_CCW=y
+CONFIG_CCWGROUP=m
+CONFIG_CCW_CONSOLE=y
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
+CONFIG_CC_IS_GCC=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDNS_I3C_MASTER=m
+CONFIG_CDROM=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_CORE=y
+CONFIG_CEC_GPIO=m
+CONFIG_CEC_NOTIFIER=y
+CONFIG_CEC_PIN=y
+# CONFIG_CEC_PIN_ERROR_INJ is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CEPH_FS_SECURITY_LABEL=y
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_CFG80211=m
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CHARGER_88PM860X=m
+CONFIG_CHARGER_ADP5061=m
+CONFIG_CHARGER_AXP20X=m
+CONFIG_CHARGER_BD70528=m
+CONFIG_CHARGER_BQ2415X=m
+CONFIG_CHARGER_BQ24190=m
+CONFIG_CHARGER_BQ24257=m
+CONFIG_CHARGER_BQ24735=m
+CONFIG_CHARGER_BQ25890=m
+CONFIG_CHARGER_CPCAP=m
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_DA9150=m
+CONFIG_CHARGER_DETECTOR_MAX14656=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_LP8727=m
+CONFIG_CHARGER_LP8788=m
+CONFIG_CHARGER_LT3651=m
+CONFIG_CHARGER_MANAGER=y
+CONFIG_CHARGER_MAX14577=m
+CONFIG_CHARGER_MAX77650=m
+CONFIG_CHARGER_MAX77693=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_MAX8997=m
+CONFIG_CHARGER_MAX8998=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_QCOM_SMBB=m
+CONFIG_CHARGER_RT9455=m
+CONFIG_CHARGER_SBS=m
+CONFIG_CHARGER_SC2731=m
+CONFIG_CHARGER_SMB347=m
+CONFIG_CHARGER_TPS65090=m
+CONFIG_CHARGER_TPS65217=m
+CONFIG_CHARGER_TWL4030=m
+CONFIG_CHARGER_UCS1002=m
+CONFIG_CHARGER_WILCO=m
+CONFIG_CHARLCD=m
+CONFIG_CHARLCD_BL_FLASH=y
+# CONFIG_CHARLCD_BL_OFF is not set
+# CONFIG_CHARLCD_BL_ON is not set
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_LIB=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4_FCOE=y
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CHROMEOS_TBMC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHSC_SCH=m
+CONFIG_CICADA_PHY=m
+CONFIG_CIFS=m
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_SMB_DIRECT is not set
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIO_DAC=m
+CONFIG_CLANG_VERSION=0
+CONFIG_CLEANCACHE=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
+CONFIG_CLKSRC_EXYNOS_MCT=y
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLKSRC_IMX_GPT=y
+CONFIG_CLKSRC_IMX_TPM=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLKSRC_QCOM=y
+CONFIG_CLKSRC_TI_32K=y
+CONFIG_CLKSRC_VERSATILE=y
+CONFIG_CLK_ACTIONS=y
+CONFIG_CLK_BCM2835=y
+CONFIG_CLK_BCM_NS2=y
+CONFIG_CLK_BCM_SR=y
+CONFIG_CLK_EMEV2=y
+CONFIG_CLK_HSDK=y
+CONFIG_CLK_IMX8MM=y
+CONFIG_CLK_IMX8MN=y
+CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_IMX8QXP=y
+CONFIG_CLK_OWL_S500=y
+CONFIG_CLK_OWL_S700=y
+CONFIG_CLK_OWL_S900=y
+CONFIG_CLK_QORIQ=y
+CONFIG_CLK_R7S9210=y
+CONFIG_CLK_R8A7740=y
+CONFIG_CLK_R8A7743=y
+CONFIG_CLK_R8A7745=y
+CONFIG_CLK_R8A77470=y
+CONFIG_CLK_R8A774A1=y
+CONFIG_CLK_R8A774C0=y
+CONFIG_CLK_R8A7778=y
+CONFIG_CLK_R8A7779=y
+CONFIG_CLK_R8A7790=y
+CONFIG_CLK_R8A7791=y
+CONFIG_CLK_R8A7792=y
+CONFIG_CLK_R8A7794=y
+CONFIG_CLK_R8A7795=y
+CONFIG_CLK_R8A7796=y
+CONFIG_CLK_R8A77965=y
+CONFIG_CLK_R8A77970=y
+CONFIG_CLK_R8A77980=y
+CONFIG_CLK_R8A77990=y
+CONFIG_CLK_R8A77995=y
+CONFIG_CLK_R9A06G032=y
+CONFIG_CLK_RASPBERRYPI=m
+CONFIG_CLK_RCAR_GEN2=y
+CONFIG_CLK_RCAR_GEN2_CPG=y
+CONFIG_CLK_RCAR_GEN3_CPG=y
+CONFIG_CLK_RCAR_USB2_CLOCK_SEL=y
+CONFIG_CLK_RENESAS=y
+CONFIG_CLK_RENESAS_CPG_MSSR=y
+CONFIG_CLK_RENESAS_CPG_MSTP=y
+CONFIG_CLK_RENESAS_DIV6=y
+CONFIG_CLK_RENESAS_LEGACY=y
+CONFIG_CLK_RZA1=y
+CONFIG_CLK_SH73A0=y
+CONFIG_CLK_SP810=y
+CONFIG_CLK_SUNXI=y
+CONFIG_CLK_SUNXI_CLOCKS=y
+CONFIG_CLK_SUNXI_PRCM_SUN6I=y
+CONFIG_CLK_SUNXI_PRCM_SUN8I=y
+CONFIG_CLK_SUNXI_PRCM_SUN9I=y
+CONFIG_CLK_TEGRA_BPMP=y
+CONFIG_CLK_TWL6040=m
+CONFIG_CLK_UNIPHIER=y
+CONFIG_CLK_VEXPRESS_OSC=y
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+# CONFIG_CLOCK_THERMAL is not set
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CLONE_BACKWARDS2=y
+CONFIG_CLS_U32_MARK=y
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CLZ_TAB=y
+CONFIG_CM32181=m
+CONFIG_CM3232=m
+CONFIG_CM3323=m
+CONFIG_CM3605=m
+CONFIG_CM36651=m
+CONFIG_CMA=y
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_CMA_AREAS=7
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_SIZE_MBYTES=32
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_CMDLINE_FORCE is not set
+CONFIG_CMM_IUCV=y
+CONFIG_CMT_SPEECH=m
+CONFIG_CNIC=m
+CONFIG_CODA_FS=m
+# CONFIG_CODE_PATCHING_SELFTEST is not set
+CONFIG_COMEDI=m
+CONFIG_COMEDI_8254=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_8255_PCI=m
+CONFIG_COMEDI_8255_SA=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADDI_WATCHDOG=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7X3X=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_DIO200_ISA=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC236_ISA=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_ISA=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAC02=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_DAS08_ISA=m
+CONFIG_COMEDI_DAS08_PCI=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DAS800=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_ISADMA=m
+CONFIG_COMEDI_ISA_DRIVERS=y
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_MF6X4=m
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_LABPC_ISA=m
+CONFIG_COMEDI_NI_LABPC_ISADMA=m
+CONFIG_COMEDI_NI_LABPC_PCI=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_NI_ROUTING=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_TIOCMD=m
+CONFIG_COMEDI_NI_USB6501=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_ASPEED=y
+CONFIG_COMMON_CLK_AXG=y
+CONFIG_COMMON_CLK_AXG_AUDIO=m
+CONFIG_COMMON_CLK_BD718XX=m
+CONFIG_COMMON_CLK_CDCE706=m
+CONFIG_COMMON_CLK_CDCE925=m
+CONFIG_COMMON_CLK_CS2000_CP=m
+CONFIG_COMMON_CLK_FIXED_MMIO=y
+CONFIG_COMMON_CLK_G12A=y
+CONFIG_COMMON_CLK_GXBB=y
+CONFIG_COMMON_CLK_HI3516CV300=m
+CONFIG_COMMON_CLK_HI3519=m
+CONFIG_COMMON_CLK_HI3660=y
+CONFIG_COMMON_CLK_HI3670=y
+CONFIG_COMMON_CLK_HI3798CV200=m
+CONFIG_COMMON_CLK_HI6220=y
+CONFIG_COMMON_CLK_HI655X=m
+CONFIG_COMMON_CLK_IPROC=y
+CONFIG_COMMON_CLK_LOCHNAGAR=m
+CONFIG_COMMON_CLK_MAX77686=m
+CONFIG_COMMON_CLK_MAX9485=m
+CONFIG_COMMON_CLK_MEDIATEK=y
+CONFIG_COMMON_CLK_MESON8B=y
+CONFIG_COMMON_CLK_MESON_AO_CLKC=y
+CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y
+CONFIG_COMMON_CLK_MESON_DUALDIV=y
+CONFIG_COMMON_CLK_MESON_EE_CLKC=y
+CONFIG_COMMON_CLK_MESON_MPLL=y
+CONFIG_COMMON_CLK_MESON_PHASE=m
+CONFIG_COMMON_CLK_MESON_PLL=y
+CONFIG_COMMON_CLK_MESON_REGMAP=y
+CONFIG_COMMON_CLK_MESON_SCLK_DIV=m
+CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y
+# CONFIG_COMMON_CLK_MT2701 is not set
+CONFIG_COMMON_CLK_MT2712=y
+CONFIG_COMMON_CLK_MT2712_BDPSYS=y
+CONFIG_COMMON_CLK_MT2712_IMGSYS=y
+CONFIG_COMMON_CLK_MT2712_JPGDECSYS=y
+CONFIG_COMMON_CLK_MT2712_MFGCFG=y
+CONFIG_COMMON_CLK_MT2712_MMSYS=y
+CONFIG_COMMON_CLK_MT2712_VDECSYS=y
+CONFIG_COMMON_CLK_MT2712_VENCSYS=y
+CONFIG_COMMON_CLK_MT6779=y
+CONFIG_COMMON_CLK_MT6779_AUDSYS=y
+CONFIG_COMMON_CLK_MT6779_CAMSYS=y
+CONFIG_COMMON_CLK_MT6779_IMGSYS=y
+CONFIG_COMMON_CLK_MT6779_IPESYS=y
+CONFIG_COMMON_CLK_MT6779_MFGCFG=y
+CONFIG_COMMON_CLK_MT6779_MMSYS=y
+CONFIG_COMMON_CLK_MT6779_VDECSYS=y
+CONFIG_COMMON_CLK_MT6779_VENCSYS=y
+CONFIG_COMMON_CLK_MT6797=y
+CONFIG_COMMON_CLK_MT6797_IMGSYS=y
+CONFIG_COMMON_CLK_MT6797_MMSYS=y
+CONFIG_COMMON_CLK_MT6797_VDECSYS=y
+CONFIG_COMMON_CLK_MT6797_VENCSYS=y
+CONFIG_COMMON_CLK_MT7622=y
+CONFIG_COMMON_CLK_MT7622_AUDSYS=y
+CONFIG_COMMON_CLK_MT7622_ETHSYS=y
+CONFIG_COMMON_CLK_MT7622_HIFSYS=y
+CONFIG_COMMON_CLK_MT7629=y
+CONFIG_COMMON_CLK_MT7629_ETHSYS=y
+CONFIG_COMMON_CLK_MT7629_HIFSYS=y
+CONFIG_COMMON_CLK_MT8135=y
+CONFIG_COMMON_CLK_MT8173=y
+CONFIG_COMMON_CLK_MT8183=y
+CONFIG_COMMON_CLK_MT8183_AUDIOSYS=y
+CONFIG_COMMON_CLK_MT8183_CAMSYS=y
+CONFIG_COMMON_CLK_MT8183_IMGSYS=y
+CONFIG_COMMON_CLK_MT8183_IPU_ADL=y
+CONFIG_COMMON_CLK_MT8183_IPU_CONN=y
+CONFIG_COMMON_CLK_MT8183_IPU_CORE0=y
+CONFIG_COMMON_CLK_MT8183_IPU_CORE1=y
+CONFIG_COMMON_CLK_MT8183_MFGCFG=y
+CONFIG_COMMON_CLK_MT8183_MMSYS=y
+CONFIG_COMMON_CLK_MT8183_VDECSYS=y
+CONFIG_COMMON_CLK_MT8183_VENCSYS=y
+CONFIG_COMMON_CLK_MT8516=y
+CONFIG_COMMON_CLK_MT8516_AUDSYS=y
+CONFIG_COMMON_CLK_PALMAS=m
+CONFIG_COMMON_CLK_PWM=m
+CONFIG_COMMON_CLK_QCOM=m
+CONFIG_COMMON_CLK_RK808=m
+CONFIG_COMMON_CLK_S2MPS11=m
+CONFIG_COMMON_CLK_SAMSUNG=y
+CONFIG_COMMON_CLK_SCMI=m
+CONFIG_COMMON_CLK_SCPI=m
+CONFIG_COMMON_CLK_SI514=m
+CONFIG_COMMON_CLK_SI5341=m
+CONFIG_COMMON_CLK_SI5351=m
+CONFIG_COMMON_CLK_SI544=m
+CONFIG_COMMON_CLK_SI570=m
+CONFIG_COMMON_CLK_TI_ADPLL=y
+CONFIG_COMMON_CLK_VC5=m
+CONFIG_COMMON_CLK_VERSATILE=y
+CONFIG_COMMON_CLK_WM831X=m
+CONFIG_COMMON_CLK_XGENE=y
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+CONFIG_COMMON_CLK_ZYNQMP=y
+CONFIG_COMMON_RESET_HI3660=m
+CONFIG_COMMON_RESET_HI6220=m
+CONFIG_COMPACTION=y
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_32=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+# CONFIG_COMPILE_TEST is not set
+CONFIG_CONFIGFS_FS=y
+CONFIG_CONNECTOR=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_CONSOLE_POLL=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_CORDIC=m
+CONFIG_COREDUMP=y
+# CONFIG_CORESIGHT is not set
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_CORTINA_PHY=m
+CONFIG_COSA=m
+CONFIG_CP15_BARRIER_EMULATION=y
+# CONFIG_CPA_DEBUG is not set
+CONFIG_CPCAP_ADC=m
+CONFIG_CPU5_WDT=m
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_CPUMASK_OFFSTACK=y
+CONFIG_CPUSETS=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_HAS_ASID=y
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_ISOLATION=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_PJ4=y
+CONFIG_CPU_PJ4B=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPU_SPECTRE=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_HYGON=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_CPU_SUP_ZHAOXIN=y
+CONFIG_CPU_SW_DOMAIN_PAN=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_CRAMFS_BLOCKDEV=y
+CONFIG_CRAMFS_MTD=y
+CONFIG_CRASH_CORE=y
+CONFIG_CRASH_DUMP=y
+CONFIG_CRC16=y
+CONFIG_CRC32=y
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_SELFTEST is not set
+# CONFIG_CRC32_SLICEBY4 is not set
+CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC4=m
+CONFIG_CRC64=m
+CONFIG_CRC7=m
+CONFIG_CRC8=m
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CROS_EC=m
+CONFIG_CROS_EC_CHARDEV=m
+CONFIG_CROS_EC_DEBUGFS=m
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_ISHTP=m
+CONFIG_CROS_EC_LIGHTBAR=m
+CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_EC_RPMSG=m
+CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_EC_SYSFS=m
+CONFIG_CROS_EC_VBC=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CROS_USBPD_LOGGER=m
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_842=m
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_ARM=m
+CONFIG_CRYPTO_AES_ARM64=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+CONFIG_CRYPTO_AES_ARM_BS=m
+CONFIG_CRYPTO_AES_ARM_CE=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_AES_S390=m
+CONFIG_CRYPTO_AES_TI=m
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_CAST_COMMON=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_CRYPTO_CHACHA20_X86_64=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=y
+CONFIG_CRYPTO_CRC32C_VPMSUM=m
+CONFIG_CRYPTO_CRC32_ARM_CE=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRC32_S390=m
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+CONFIG_CRYPTO_CRCT10DIF_ARM_CE=m
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_DES3_EDE_X86_64=m
+CONFIG_CRYPTO_DES_S390=m
+CONFIG_CRYPTO_DEV_ARTPEC6=m
+CONFIG_CRYPTO_DEV_ATMEL_I2C=m
+CONFIG_CRYPTO_DEV_BCM_SPU=m
+CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
+CONFIG_CRYPTO_DEV_CCREE=m
+CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
+CONFIG_CRYPTO_DEV_CPT=m
+CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
+CONFIG_CRYPTO_DEV_FSL_CAAM=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI=y
+# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD=255
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD=2048
+CONFIG_CRYPTO_DEV_FSL_CAAM_JR=m
+CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_CRYPTO_DEV_HISI_HPRE=m
+CONFIG_CRYPTO_DEV_HISI_QM=m
+CONFIG_CRYPTO_DEV_HISI_SEC=m
+CONFIG_CRYPTO_DEV_HISI_SEC2=m
+CONFIG_CRYPTO_DEV_HISI_ZIP=m
+CONFIG_CRYPTO_DEV_MARVELL_CESA=m
+CONFIG_CRYPTO_DEV_MEDIATEK=m
+# CONFIG_CRYPTO_DEV_MXS_DCP is not set
+CONFIG_CRYPTO_DEV_NITROX=m
+CONFIG_CRYPTO_DEV_NX=y
+CONFIG_CRYPTO_DEV_NX_COMPRESS=m
+CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m
+CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m
+CONFIG_CRYPTO_DEV_OMAP=m
+CONFIG_CRYPTO_DEV_OMAP_AES=m
+CONFIG_CRYPTO_DEV_OMAP_DES=m
+CONFIG_CRYPTO_DEV_OMAP_SHAM=m
+CONFIG_CRYPTO_DEV_PADLOCK=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_QAT=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+CONFIG_CRYPTO_DEV_QCE=m
+CONFIG_CRYPTO_DEV_QCOM_RNG=m
+CONFIG_CRYPTO_DEV_ROCKCHIP=m
+CONFIG_CRYPTO_DEV_S5P=m
+CONFIG_CRYPTO_DEV_SAHARA=m
+CONFIG_CRYPTO_DEV_SP_CCP=y
+CONFIG_CRYPTO_DEV_SP_PSP=y
+CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_CRYPTO_DEV_VMX=y
+CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
+CONFIG_CRYPTO_DH=y
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ENGINE=m
+CONFIG_CRYPTO_ESSIV=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_GHASH=y
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM_CE=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_GHASH_S390=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MD5_PPC=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_NHPOLY1305=m
+CONFIG_CRYPTO_NHPOLY1305_AVX2=m
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_NHPOLY1305_SSE2=m
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_OFB=m
+CONFIG_CRYPTO_PAES_S390=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_POLY1305_X86_64=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_ARM=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA1_ARM_CE=m
+CONFIG_CRYPTO_SHA1_ARM_NEON=m
+CONFIG_CRYPTO_SHA1_PPC=m
+CONFIG_CRYPTO_SHA1_S390=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA256_ARM=m
+CONFIG_CRYPTO_SHA256_ARM64=m
+CONFIG_CRYPTO_SHA256_S390=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM_CE=m
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA3_256_S390=m
+CONFIG_CRYPTO_SHA3_512_S390=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA512_ARM=m
+CONFIG_CRYPTO_SHA512_ARM64=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_S390=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SIMD=m
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+CONFIG_CRYPTO_STATS=y
+CONFIG_CRYPTO_STREEBOG=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_VPMSUM_TESTER=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CS5535_MFGPT is not set
+CONFIG_CS89x0=m
+CONFIG_CS89x0_PLATFORM=y
+CONFIG_CTCM=m
+CONFIG_CUSE=m
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_CXD2880_SPI_DRV=m
+CONFIG_CXL=m
+CONFIG_CXLFLASH=m
+CONFIG_CXL_AFU_DRIVER_OPS=y
+CONFIG_CXL_BASE=y
+CONFIG_CXL_LIB=y
+CONFIG_CX_ECAT=m
+CONFIG_CYCLADES=m
+CONFIG_CYPRESS_FIRMWARE=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_DA280=m
+CONFIG_DA311=m
+CONFIG_DA9052_WATCHDOG=m
+CONFIG_DA9055_WATCHDOG=m
+CONFIG_DA9062_THERMAL=m
+CONFIG_DA9062_WATCHDOG=m
+CONFIG_DA9063_WATCHDOG=m
+CONFIG_DA9150_GPADC=m
+CONFIG_DASD=m
+CONFIG_DASD_DIAG=m
+CONFIG_DASD_ECKD=m
+CONFIG_DASD_EER=y
+CONFIG_DASD_FBA=m
+CONFIG_DASD_PROFILE=y
+CONFIG_DATA_SHIFT=16
+CONFIG_DAVICOM_PHY=m
+CONFIG_DAX=y
+CONFIG_DAX_DRIVER=y
+CONFIG_DCA=m
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DCB=y
+CONFIG_DCDBAS=m
+CONFIG_DCSSBLK=m
+CONFIG_DDR=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_DE4X5=m
+CONFIG_DEBUGGER=y
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_EFI is not set
+# CONFIG_DEBUG_ENTRY is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_DWARF4=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_KERNEL_DC is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_DEBUG_MISC=y
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_DEBUG_PLIST is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_RSEQ is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEBUG_VF_UART_PORT=1
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
+CONFIG_DECNET_NF_GRABULATOR=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DEFAULT_CUBIC=y
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBTN=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_SMBIOS=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
+CONFIG_DELL_SMO8800=m
+CONFIG_DELL_UART_BACKLIGHT=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_LED=m
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP=y
+CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU=y
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=m
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_DEVICE_PRIVATE=y
+# CONFIG_DEVKMEM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEV_APPLETALK=m
+CONFIG_DEV_COREDUMP=y
+CONFIG_DEV_DAX=m
+CONFIG_DEV_DAX_KMEM=m
+CONFIG_DEV_DAX_PMEM=m
+CONFIG_DEV_DAX_PMEM_COMPAT=m
+CONFIG_DEV_PAGEMAP_OPS=y
+CONFIG_DHT11=m
+CONFIG_DIAG288_WATCHDOG=m
+CONFIG_DIMLIB=y
+CONFIG_DL2K=m
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+CONFIG_DLN2_ADC=m
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_DM9102=m
+# CONFIG_DMABUF_SELFTESTS is not set
+# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMARD06=m
+CONFIG_DMARD09=m
+CONFIG_DMARD10=m
+CONFIG_DMAR_TABLE=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ACPI=y
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_DMA_DIRECT_REMAP=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ENGINE_RAID=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_DMA_OF=y
+CONFIG_DMA_OMAP=y
+CONFIG_DMA_REMAP=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DMA_SUN6I=m
+CONFIG_DMA_VIRT_OPS=y
+CONFIG_DMI=y
+CONFIG_DMIID=y
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_DMI_SYSFS=m
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_BUFIO=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_CACHE_SMQ=m
+CONFIG_DM_CLONE=m
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
+CONFIG_DM_DELAY=m
+# CONFIG_DM_DUST is not set
+CONFIG_DM_ERA=m
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_INIT=y
+CONFIG_DM_INTEGRITY=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_LOG_WRITES=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_RAID=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_SWITCH=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_FEC is not set
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_ZONED=m
+CONFIG_DNOTIFY=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_DOUBLEFAULT=y
+CONFIG_DOVE_CLK=y
+CONFIG_DOVE_THERMAL=m
+CONFIG_DP83640_PHY=m
+CONFIG_DP83822_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+CONFIG_DP83TC811_PHY=m
+CONFIG_DPAA2_CONSOLE=m
+CONFIG_DPAA_ERRATUM_A050385=y
+# CONFIG_DPM_WATCHDOG is not set
+CONFIG_DPOT_DAC=m
+CONFIG_DPS310=m
+CONFIG_DPTF_POWER=m
+CONFIG_DQL=y
+CONFIG_DRA752_THERMAL=y
+CONFIG_DRAGONRISE_FF=y
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_DRM=m
+CONFIG_DRM_AMDGPU_CIK=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+CONFIG_DRM_AMD_ACP=y
+CONFIG_DRM_AMD_DC=y
+CONFIG_DRM_AMD_DC_DCN1_0=y
+CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
+CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
+CONFIG_DRM_ANALOGIX_DP=m
+CONFIG_DRM_ARCPGU=m
+CONFIG_DRM_ARMADA=m
+CONFIG_DRM_ASPEED_GFX=m
+CONFIG_DRM_ATMEL_HLCDC=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_CDNS_DSI=m
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_DUMB_VGA_DAC=m
+CONFIG_DRM_DW_HDMI=m
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
+CONFIG_DRM_DW_HDMI_CEC=m
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+CONFIG_DRM_DW_MIPI_DSI=m
+CONFIG_DRM_ETNAVIV_THERMAL=y
+CONFIG_DRM_EXYNOS=m
+CONFIG_DRM_EXYNOS5433_DECON=y
+# CONFIG_DRM_EXYNOS7_DECON is not set
+CONFIG_DRM_EXYNOS_DSI=y
+CONFIG_DRM_EXYNOS_FIMC=y
+# CONFIG_DRM_EXYNOS_FIMD is not set
+CONFIG_DRM_EXYNOS_HDMI=y
+CONFIG_DRM_EXYNOS_IPP=y
+CONFIG_DRM_EXYNOS_MIC=y
+CONFIG_DRM_EXYNOS_MIXER=y
+CONFIG_DRM_EXYNOS_ROTATOR=y
+CONFIG_DRM_EXYNOS_SCALER=y
+# CONFIG_DRM_EXYNOS_VIDI is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_FSL_DCU=m
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+CONFIG_DRM_GM12U320=m
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_HDLCD=m
+# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
+CONFIG_DRM_HISI_HIBMC=m
+CONFIG_DRM_HISI_KIRIN=m
+CONFIG_DRM_I2C_ADV7511=m
+CONFIG_DRM_I2C_ADV7511_AUDIO=y
+CONFIG_DRM_I2C_ADV7511_CEC=y
+CONFIG_DRM_I2C_ADV7533=y
+CONFIG_DRM_I915=m
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
+CONFIG_DRM_I915_CAPTURE_ERROR=y
+CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG is not set
+# CONFIG_DRM_I915_DEBUG_GUC is not set
+# CONFIG_DRM_I915_DEBUG_MMIO is not set
+# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
+CONFIG_DRM_I915_FORCE_PROBE=""
+CONFIG_DRM_I915_GVT=y
+CONFIG_DRM_I915_GVT_KVMGT=m
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
+# CONFIG_DRM_I915_SELFTEST is not set
+CONFIG_DRM_I915_SPIN_REQUEST=5
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
+CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
+CONFIG_DRM_I915_USERPTR=y
+# CONFIG_DRM_I915_WERROR is not set
+CONFIG_DRM_IMX=m
+CONFIG_DRM_IMX_HDMI=m
+CONFIG_DRM_IMX_LDB=m
+CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
+CONFIG_DRM_IMX_TVE=m
+CONFIG_DRM_KMS_CMA_HELPER=y
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KOMEDA=m
+# CONFIG_DRM_LEGACY is not set
+CONFIG_DRM_LIMA=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_LVDS_ENCODER=m
+CONFIG_DRM_MALI_DISPLAY=m
+CONFIG_DRM_MCDE=m
+CONFIG_DRM_MEDFIELD=y
+CONFIG_DRM_MEDIATEK=m
+CONFIG_DRM_MEDIATEK_HDMI=m
+CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=m
+CONFIG_DRM_MESON=m
+CONFIG_DRM_MESON_DW_HDMI=m
+CONFIG_DRM_MIPI_DBI=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_MSM=m
+CONFIG_DRM_MSM_DSI=y
+CONFIG_DRM_MSM_DSI_10NM_PHY=y
+CONFIG_DRM_MSM_DSI_14NM_PHY=y
+CONFIG_DRM_MSM_DSI_20NM_PHY=y
+CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
+CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_PLL=y
+CONFIG_DRM_MSM_GPU_STATE=y
+# CONFIG_DRM_MSM_GPU_SUDO is not set
+CONFIG_DRM_MSM_HDMI_HDCP=y
+# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
+CONFIG_DRM_MXS=y
+CONFIG_DRM_MXSFB=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_NOUVEAU_SVM is not set
+CONFIG_DRM_NXP_PTN3460=m
+# CONFIG_DRM_OMAP is not set
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_PANEL_ARM_VERSATILE=m
+CONFIG_DRM_PANEL_BRIDGE=y
+CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
+CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_INNOLUX_P079ZCA=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+CONFIG_DRM_PANEL_LG_LB035Q02=m
+CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_NEC_NL8048HL11=m
+CONFIG_DRM_PANEL_NOVATEK_NT39016=m
+CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
+CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
+CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
+CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
+CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
+CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
+CONFIG_DRM_PANEL_RONBO_RB070D30=m
+CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E63M0=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
+CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
+CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+CONFIG_DRM_PANEL_SHARP_LS037V7DW01=m
+CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
+CONFIG_DRM_PANEL_SONY_ACX565AKM=m
+CONFIG_DRM_PANEL_TPO_TD028TTEC1=m
+CONFIG_DRM_PANEL_TPO_TD043MTEA1=m
+CONFIG_DRM_PANEL_TPO_TPG110=m
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
+CONFIG_DRM_PANFROST=m
+CONFIG_DRM_PARADE_PS8622=m
+CONFIG_DRM_PL111=m
+# CONFIG_DRM_RADEON_USERPTR is not set
+CONFIG_DRM_RCAR_DU=m
+CONFIG_DRM_RCAR_DW_HDMI=m
+CONFIG_DRM_RCAR_VSP=y
+CONFIG_DRM_RCAR_WRITEBACK=y
+CONFIG_DRM_ROCKCHIP=m
+CONFIG_DRM_SCHED=m
+CONFIG_DRM_SII902X=m
+CONFIG_DRM_SII9234=m
+CONFIG_DRM_SIL_SII8620=m
+# CONFIG_DRM_STI is not set
+CONFIG_DRM_STM=m
+CONFIG_DRM_STM_DSI=m
+CONFIG_DRM_SUN4I=m
+CONFIG_DRM_SUN4I_BACKEND=m
+CONFIG_DRM_SUN4I_HDMI=m
+CONFIG_DRM_SUN4I_HDMI_CEC=y
+CONFIG_DRM_SUN6I_DSI=m
+CONFIG_DRM_SUN8I_DW_HDMI=m
+CONFIG_DRM_SUN8I_MIXER=m
+CONFIG_DRM_SUN8I_TCON_TOP=m
+CONFIG_DRM_TEGRA=m
+# CONFIG_DRM_TEGRA_DEBUG is not set
+CONFIG_DRM_TEGRA_STAGING=y
+CONFIG_DRM_THINE_THC63LVD1024=m
+CONFIG_DRM_TILCDC=m
+CONFIG_DRM_TI_SN65DSI86=m
+CONFIG_DRM_TI_TFP410=m
+CONFIG_DRM_TOSHIBA_TC358764=m
+CONFIG_DRM_TOSHIBA_TC358767=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TVE200=m
+CONFIG_DRM_UDL=m
+CONFIG_DRM_VBOXVIDEO=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_VC4_HDMI_CEC=y
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_VRAM_HELPER=m
+CONFIG_DRM_XEN=y
+CONFIG_DRM_XEN_FRONTEND=m
+CONFIG_DS1803=m
+CONFIG_DS4424=m
+CONFIG_DST_CACHE=y
+CONFIG_DTC=y
+CONFIG_DTL=y
+CONFIG_DTLK=m
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DUMMY=m
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_DVB_A8293=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_AF9033=m
+CONFIG_DVB_AS102=m
+CONFIG_DVB_AS102_FE=m
+CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522_V4L=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_IR=y
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_BT8XX=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET_PATCH=m
+# CONFIG_DVB_C8SECTPFE is not set
+CONFIG_DVB_CORE=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24117=m
+CONFIG_DVB_CX24120=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_CXD2099=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_CXD2841ER=m
+CONFIG_DVB_CXD2880=m
+CONFIG_DVB_DDBRIDGE=m
+# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
+# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_DIB9000=m
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_DRX39XYJ=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_DUMMY_FE=m
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_EC100=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+CONFIG_DVB_GP8PSK_FE=m
+CONFIG_DVB_HELENE=m
+CONFIG_DVB_HOPPER=m
+CONFIG_DVB_HORUS3A=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_LG2160=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT3306A=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGS8GL5=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_LNBH25=m
+CONFIG_DVB_LNBH29=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_M88DS3103=m
+CONFIG_DVB_M88RS2000=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_MB86A20S=m
+# CONFIG_DVB_MMAP is not set
+CONFIG_DVB_MN88443X=m
+CONFIG_DVB_MN88472=m
+CONFIG_DVB_MN88473=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_MXL5XX=m
+CONFIG_DVB_NET=y
+CONFIG_DVB_NETUP_UNIDVB=m
+CONFIG_DVB_NGENE=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_PLATFORM_DRIVERS=y
+CONFIG_DVB_PLL=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
+CONFIG_DVB_PT3=m
+CONFIG_DVB_RTL2830=m
+CONFIG_DVB_RTL2832=m
+CONFIG_DVB_RTL2832_SDR=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_S5H1432=m
+CONFIG_DVB_S921=m
+CONFIG_DVB_SI2165=m
+CONFIG_DVB_SI2168=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SMIPCIE=m
+CONFIG_DVB_SP2=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV0910=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_STV6111=m
+CONFIG_DVB_TC90522=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_TDA10071=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA18271C2DD=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TS2020=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+CONFIG_DVB_TUNER_ITD1000=m
+# CONFIG_DVB_ULE_DEBUG is not set
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_CXUSB_ANALOG=y
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIB3000MC=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_ZD1301=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZD1301_DEMOD=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DWC_XLGMAC=m
+CONFIG_DWC_XLGMAC_PCI=m
+CONFIG_DWMAC_DWC_QOS_ETH=m
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DWMAC_IPQ806X=m
+CONFIG_DWMAC_MEDIATEK=m
+CONFIG_DWMAC_MESON=m
+CONFIG_DWMAC_QCOM_ETHQOS=m
+CONFIG_DWMAC_ROCKCHIP=m
+CONFIG_DWMAC_SOCFPGA=m
+CONFIG_DWMAC_SUN8I=m
+# CONFIG_DWMAC_SUNXI is not set
+CONFIG_DW_APB_ICTL=y
+CONFIG_DW_APB_TIMER=y
+CONFIG_DW_APB_TIMER_OF=y
+CONFIG_DW_AXI_DMAC=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC_PCI=m
+CONFIG_DW_EDMA=m
+CONFIG_DW_EDMA_PCIE=m
+CONFIG_DW_I3C_MASTER=m
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_DYNAMIC_MEMORY_LAYOUT=y
+CONFIG_DYNAMIC_PHYSICAL_MASK=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_E1000E_HWTS=y
+CONFIG_EADM_SCH=m
+CONFIG_EARLY_PRINTK=y
+CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
+CONFIG_EBC_C384_WDT=m
+CONFIG_ECRYPT_FS=y
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_EDAC=y
+CONFIG_EDAC_ALTERA=y
+CONFIG_EDAC_ALTERA_ETHERNET=y
+CONFIG_EDAC_ALTERA_NAND=y
+CONFIG_EDAC_ALTERA_OCRAM=y
+CONFIG_EDAC_ALTERA_QSPI=y
+CONFIG_EDAC_ALTERA_SDMMC=y
+CONFIG_EDAC_ALTERA_SDRAM=y
+CONFIG_EDAC_ALTERA_USB=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_ARMADA_XP=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_BLUEFIELD=m
+CONFIG_EDAC_CPC925=m
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
+CONFIG_EDAC_HIGHBANK_L2=m
+CONFIG_EDAC_HIGHBANK_MC=m
+CONFIG_EDAC_I10NM=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_IE31200=m
+CONFIG_EDAC_LAYERSCAPE=m
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+CONFIG_EDAC_PND2=m
+CONFIG_EDAC_QCOM=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_EDAC_SKX=m
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EDAC_SYNOPSYS=m
+CONFIG_EDAC_THUNDERX=m
+CONFIG_EDAC_TI=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_XGENE=m
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_EEH=y
+CONFIG_EEPROM_93XX46=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EFI=y
+CONFIG_EFIVAR_FS=y
+CONFIG_EFI_ARMSTUB=y
+# CONFIG_EFI_ARMSTUB_DTB_LOADER is not set
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_ESRT=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_MIXED=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_EFI_RCI2_TABLE=y
+CONFIG_EFI_RUNTIME_MAP=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_STUB=y
+CONFIG_EFI_TEST=m
+CONFIG_EFI_VARS=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EINT_MTK=y
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EL3=m
+CONFIG_ELFCORE=y
+CONFIG_ELF_CORE=y
+CONFIG_EMAC_ROCKCHIP=m
+# CONFIG_EMBEDDED is not set
+CONFIG_EM_TIMER_STI=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_ENA_ETHERNET=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_ENCX24J600=m
+# CONFIG_ENERGY_MODEL is not set
+CONFIG_ENIC=m
+CONFIG_ENVELOPE_DETECTOR=m
+CONFIG_EPAPR_BOOT=y
+CONFIG_EPAPR_PARAVIRT=y
+CONFIG_EPIC100=m
+CONFIG_EPOLL=y
+CONFIG_EQUALIZER=m
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_ZIP=y
+CONFIG_ET131X=m
+CONFIG_ETEXT_SHIFT=16
+CONFIG_ETHERNET=y
+CONFIG_EUROTECH_WDT=m
+CONFIG_EVENTFD=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVM=y
+CONFIG_EVM_ADD_XATTRS=y
+CONFIG_EVM_ATTR_FSUUID=y
+CONFIG_EVM_EXTRA_SMACK_XATTRS=y
+CONFIG_EVM_X509_PATH="/etc/keys/x509_evm.der"
+# CONFIG_EXFAT_DEBUG_MSG is not set
+CONFIG_EXFAT_DEFAULT_CODEPAGE=437
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_EXFAT_DELAYED_SYNC is not set
+CONFIG_EXFAT_DISCARD=y
+CONFIG_EXFAT_DONT_MOUNT_VFAT=y
+CONFIG_EXFAT_FS=m
+# CONFIG_EXFAT_KERNEL_DEBUG is not set
+CONFIG_EXPERT=y
+CONFIG_EXPOLINE=y
+CONFIG_EXPOLINE_AUTO=y
+# CONFIG_EXPOLINE_FULL is not set
+# CONFIG_EXPOLINE_OFF is not set
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_ARIZONA=m
+CONFIG_EXTCON_AXP288=m
+CONFIG_EXTCON_FSA9480=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_INTEL_CHT_WC=m
+CONFIG_EXTCON_INTEL_INT3496=m
+CONFIG_EXTCON_INTEL_MRFLD=m
+CONFIG_EXTCON_MAX14577=m
+CONFIG_EXTCON_MAX3355=m
+CONFIG_EXTCON_MAX77693=m
+CONFIG_EXTCON_MAX77843=m
+CONFIG_EXTCON_MAX8997=m
+CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_PTN5150=m
+CONFIG_EXTCON_QCOM_SPMI_MISC=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+CONFIG_EXTCON_USBC_CROS_EC=m
+CONFIG_EXTCON_USB_GPIO=m
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_EXTRA_TARGETS=""
+CONFIG_EXYNOS_ADC=m
+CONFIG_EXYNOS_AUDSS_CLK_CON=m
+CONFIG_EXYNOS_CHIPID=y
+CONFIG_EXYNOS_CPU_SUSPEND=y
+CONFIG_EXYNOS_IOMMU=y
+# CONFIG_EXYNOS_IOMMU_DEBUG is not set
+CONFIG_EXYNOS_MCPM=y
+CONFIG_EXYNOS_PMU=y
+CONFIG_EXYNOS_PMU_ARM_DRIVERS=y
+CONFIG_EXYNOS_PM_DOMAINS=y
+CONFIG_EXYNOS_SROM=y
+CONFIG_EXYNOS_THERMAL=y
+CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=m
+CONFIG_EZX_PCAP=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_XATTR=y
+# CONFIG_F2FS_IO_TRACE is not set
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F71808E_WDT=m
+CONFIG_FAILOVER=m
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_FARSYNC=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+CONFIG_FAT_FS=y
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FA_DUMP=y
+CONFIG_FB=y
+# CONFIG_FB_3DFX_ACCEL is not set
+# CONFIG_FB_3DFX_I2C is not set
+CONFIG_FB_ARC=m
+CONFIG_FB_ARMCLCD=y
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_ATY_CT=y
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_BACKLIGHT=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+CONFIG_FB_CFB_REV_PIXELS_IN_BYTE=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_CYBER2000_DDC=y
+CONFIG_FB_DA8XX=m
+CONFIG_FB_DDC=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_GX=m
+CONFIG_FB_GEODE_GX1=m
+CONFIG_FB_GEODE_LX=m
+CONFIG_FB_HECUBA=m
+CONFIG_FB_HGA=m
+CONFIG_FB_HYPERV=m
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_IMX=m
+CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL_DEBUG is not set
+CONFIG_FB_INTEL_I2C=y
+CONFIG_FB_LE80578=m
+CONFIG_FB_MACMODES=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MB862XX_I2C=y
+# CONFIG_FB_MB862XX_LIME is not set
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_MX3=y
+CONFIG_FB_N411=m
+CONFIG_FB_NOTIFY=y
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_I2C=y
+CONFIG_FB_OF=y
+CONFIG_FB_OMAP2=m
+# CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV is not set
+# CONFIG_FB_OMAP2_CONNECTOR_DVI is not set
+# CONFIG_FB_OMAP2_CONNECTOR_HDMI is not set
+# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set
+CONFIG_FB_OMAP2_DSS=m
+# CONFIG_FB_OMAP2_DSS_DEBUG is not set
+# CONFIG_FB_OMAP2_DSS_DEBUGFS is not set
+CONFIG_FB_OMAP2_DSS_DPI=y
+# CONFIG_FB_OMAP2_DSS_DSI is not set
+CONFIG_FB_OMAP2_DSS_HDMI_COMMON=y
+CONFIG_FB_OMAP2_DSS_INIT=y
+CONFIG_FB_OMAP2_DSS_MIN_FCK_PER_PCK=0
+# CONFIG_FB_OMAP2_DSS_SDI is not set
+CONFIG_FB_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
+CONFIG_FB_OMAP2_DSS_VENC=y
+# CONFIG_FB_OMAP2_ENCODER_OPA362 is not set
+# CONFIG_FB_OMAP2_ENCODER_TFP410 is not set
+# CONFIG_FB_OMAP2_ENCODER_TPD12S015 is not set
+CONFIG_FB_OMAP2_NUM_FBS=3
+# CONFIG_FB_OMAP2_PANEL_DPI is not set
+# CONFIG_FB_OMAP2_PANEL_DSI_CM is not set
+# CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02 is not set
+CONFIG_FB_OMAP4_DSS_HDMI=y
+# CONFIG_FB_OMAP5_DSS_HDMI is not set
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_I2C=y
+CONFIG_FB_S3_DDC=y
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SH_MOBILE_LCDC=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_SM501=m
+CONFIG_FB_SM750=m
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_SSD1307=m
+CONFIG_FB_SVGALIB=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SH1106=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1305=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1611=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_TMIO=m
+CONFIG_FB_TMIO_ACCELL=y
+CONFIG_FB_UDL=m
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_XILINX=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_FEC=y
+CONFIG_FHANDLE=y
+CONFIG_FIB_RULES=y
+CONFIG_FIELDBUS_DEV=m
+CONFIG_FILE_LOCKING=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
+CONFIG_FIQ=y
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FLATMEM=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_FM10K=m
+CONFIG_FONTS=y
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_6x10=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_SUN8x16 is not set
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONT_TER16x32=y
+CONFIG_FORCEDETH=m
+CONFIG_FORCE_DYNAMIC_FTRACE=y
+CONFIG_FORCE_PCI=y
+CONFIG_FORCE_SMP=y
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_FPGA=m
+CONFIG_FPGA_DFL_AFU=m
+CONFIG_FPGA_DFL_FME=m
+CONFIG_FPGA_DFL_FME_BRIDGE=m
+CONFIG_FPGA_DFL_FME_MGR=m
+CONFIG_FPGA_DFL_FME_REGION=m
+CONFIG_FPGA_DFL_PCI=m
+CONFIG_FPGA_MGR_ALTERA_CVP=m
+CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
+CONFIG_FPGA_MGR_ICE40_SPI=m
+CONFIG_FPGA_MGR_MACHXO2_SPI=m
+CONFIG_FPGA_MGR_STRATIX10_SOC=m
+CONFIG_FPGA_MGR_XILINX_SPI=m
+CONFIG_FPGA_MGR_ZYNQMP_FPGA=m
+CONFIG_FPGA_REGION=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_VECTOR=y
+CONFIG_FREEZER=y
+CONFIG_FRONTSWAP=y
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSI=m
+CONFIG_FSI_MASTER_AST_CF=m
+CONFIG_FSI_MASTER_GPIO=m
+CONFIG_FSI_MASTER_HUB=m
+# CONFIG_FSI_NEW_DEV_NODE is not set
+CONFIG_FSI_OCC=m
+CONFIG_FSI_SBEFIFO=m
+CONFIG_FSI_SCOM=m
+CONFIG_FSL_BMAN_TEST=m
+# CONFIG_FSL_BMAN_TEST_API is not set
+CONFIG_FSL_DPAA=y
+CONFIG_FSL_DPAA2=y
+CONFIG_FSL_DPAA2_ETH=m
+CONFIG_FSL_DPAA2_ETHSW=m
+CONFIG_FSL_DPAA2_PTP_CLOCK=m
+CONFIG_FSL_DPAA_CHECKING=y
+CONFIG_FSL_DPAA_ETH=m
+CONFIG_FSL_EDMA=m
+CONFIG_FSL_ENETC=m
+CONFIG_FSL_ENETC_HW_TIMESTAMPING=y
+CONFIG_FSL_ENETC_MDIO=m
+CONFIG_FSL_ENETC_PTP_CLOCK=m
+CONFIG_FSL_ENETC_VF=m
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_FSL_FMAN=y
+CONFIG_FSL_GUTS=y
+CONFIG_FSL_IFC=y
+CONFIG_FSL_IMX8_DDR_PMU=m
+CONFIG_FSL_LBC=y
+CONFIG_FSL_MC_BUS=y
+CONFIG_FSL_MC_DPIO=m
+CONFIG_FSL_PQ_MDIO=m
+CONFIG_FSL_QDMA=m
+# CONFIG_FSL_QMAN_TEST is not set
+CONFIG_FSL_XGMAC_MDIO=y
+CONFIG_FSNOTIFY=y
+CONFIG_FS_DAX=y
+CONFIG_FS_DAX_LIMITED=y
+CONFIG_FS_DAX_PMD=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FTGMAC100=m
+CONFIG_FTL=m
+CONFIG_FTMAC100=m
+CONFIG_FTM_QUADDEC=m
+CONFIG_FTRACE=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_FTRACE_SYSCALLS=y
+# CONFIG_FTR_FIXUP_SELFTEST is not set
+CONFIG_FTWDT010_WATCHDOG=m
+CONFIG_FUEL_GAUGE_SC27XX=m
+CONFIG_FUJITSU_ERRATUM_010001=y
+CONFIG_FUJITSU_ES=m
+CONFIG_FUJITSU_LAPTOP=m
+CONFIG_FUJITSU_TABLET=m
+CONFIG_FUNCTION_ERROR_INJECTION=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_FS=y
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_LAN=m
+CONFIG_FUSION_LOGGING=y
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_SPI=m
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_FW_LOADER=y
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_FXAS21002C=m
+CONFIG_FXAS21002C_I2C=m
+CONFIG_FXAS21002C_SPI=m
+CONFIG_GACT_PROB=y
+CONFIG_GADGET_UAC1=y
+# CONFIG_GADGET_UAC1_LEGACY is not set
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GARP=m
+CONFIG_GART_IOMMU=y
+CONFIG_GCC_VERSION=90300
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_GDB_SCRIPTS=y
+CONFIG_GEMINI_ETHERNET=m
+CONFIG_GENERIC_ADC_BATTERY=m
+CONFIG_GENERIC_ADC_THERMAL=m
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_CPU=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_GENERIC_VDSO_32=y
+CONFIG_GENEVE=m
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_GEN_RTC=y
+CONFIG_GEOS=y
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_GIANFAR=m
+CONFIG_GIGASET_BASE=m
+# CONFIG_GIGASET_CAPI is not set
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_GIGASET_M101=m
+CONFIG_GIGASET_M105=m
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
+# CONFIG_GOLDFISH is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GP2AP020A00F=m
+CONFIG_GPD_POCKET_FAN=m
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_104_DIO_48E=m
+CONFIG_GPIO_104_IDIO_16=m
+CONFIG_GPIO_104_IDI_48=m
+CONFIG_GPIO_74X164=m
+CONFIG_GPIO_74XX_MMIO=m
+CONFIG_GPIO_ACPI=y
+CONFIG_GPIO_ADNP=m
+CONFIG_GPIO_ADP5520=m
+CONFIG_GPIO_ALTERA=m
+CONFIG_GPIO_AMD8111=m
+CONFIG_GPIO_AMDPT=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_ASPEED=m
+CONFIG_GPIO_BD70528=m
+CONFIG_GPIO_BD9571MWV=m
+CONFIG_GPIO_BRCMSTB=m
+CONFIG_GPIO_BT8XX=m
+CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CRYSTAL_COVE=m
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_DA9052=m
+CONFIG_GPIO_DA9055=m
+CONFIG_GPIO_DAVINCI=y
+CONFIG_GPIO_DLN2=m
+CONFIG_GPIO_EIC_SPRD=m
+# CONFIG_GPIO_EM is not set
+CONFIG_GPIO_EXAR=m
+CONFIG_GPIO_F7188X=m
+CONFIG_GPIO_FTGPIO010=y
+CONFIG_GPIO_GPIO_MM=m
+CONFIG_GPIO_GRGPIO=m
+CONFIG_GPIO_GW_PLD=m
+CONFIG_GPIO_HLWD=m
+CONFIG_GPIO_ICH=m
+CONFIG_GPIO_INTEL_MID=y
+CONFIG_GPIO_IT87=m
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_KEMPLD=m
+CONFIG_GPIO_LP3943=m
+CONFIG_GPIO_LP873X=m
+CONFIG_GPIO_LP87565=m
+CONFIG_GPIO_LYNXPOINT=y
+CONFIG_GPIO_MADERA=m
+CONFIG_GPIO_MAX3191X=m
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_MAX77620=m
+CONFIG_GPIO_MAX77650=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_MENZ127=m
+# CONFIG_GPIO_MERRIFIELD is not set
+CONFIG_GPIO_MLXBF=m
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
+CONFIG_GPIO_MPC8XXX=y
+CONFIG_GPIO_MSIC=y
+CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=y
+CONFIG_GPIO_OMAP=y
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_PCIE_IDIO_24=m
+CONFIG_GPIO_PCI_IDIO_16=m
+CONFIG_GPIO_PISOSR=m
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_PMIC_EIC_SPRD=m
+CONFIG_GPIO_RASPBERRYPI_EXP=m
+CONFIG_GPIO_RC5T583=y
+CONFIG_GPIO_RCAR=m
+CONFIG_GPIO_RDC321X=m
+CONFIG_GPIO_SAMA5D2_PIOBU=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_SCH311X=m
+CONFIG_GPIO_SPRD=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_SYSCON=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_TC3589X=y
+CONFIG_GPIO_TEGRA=y
+CONFIG_GPIO_THUNDERX=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_TPS65218=m
+CONFIG_GPIO_TPS6586X=y
+CONFIG_GPIO_TPS65910=y
+CONFIG_GPIO_TPS65912=m
+CONFIG_GPIO_TPS68470=y
+CONFIG_GPIO_TQMX86=m
+CONFIG_GPIO_TS4800=m
+CONFIG_GPIO_TS4900=m
+CONFIG_GPIO_UCB1400=m
+CONFIG_GPIO_UNIPHIER=m
+CONFIG_GPIO_VF610=y
+CONFIG_GPIO_VIPERBOARD=m
+CONFIG_GPIO_VX855=m
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_GPIO_WHISKEY_COVE=m
+CONFIG_GPIO_WINBOND=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_WM8350=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_WS16C48=m
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_XGENE_SB=m
+CONFIG_GPIO_XLP=m
+CONFIG_GPIO_XRA1403=m
+CONFIG_GPIO_ZEVIO=y
+CONFIG_GPIO_ZYNQ=m
+CONFIG_GRACE_PERIOD=m
+CONFIG_GREENASIA_FF=y
+CONFIG_GREYBUS_AUDIO=m
+CONFIG_GREYBUS_BOOTROM=m
+CONFIG_GREYBUS_BRIDGED_PHY=m
+CONFIG_GREYBUS_ES2=m
+CONFIG_GREYBUS_FIRMWARE=m
+CONFIG_GREYBUS_GPIO=m
+CONFIG_GREYBUS_HID=m
+CONFIG_GREYBUS_I2C=m
+CONFIG_GREYBUS_LIGHT=m
+CONFIG_GREYBUS_LOG=m
+CONFIG_GREYBUS_LOOPBACK=m
+CONFIG_GREYBUS_POWER=m
+CONFIG_GREYBUS_PWM=m
+CONFIG_GREYBUS_RAW=m
+CONFIG_GREYBUS_SDIO=m
+CONFIG_GREYBUS_SPI=m
+CONFIG_GREYBUS_UART=m
+CONFIG_GREYBUS_USB=m
+CONFIG_GREYBUS_VIBRATOR=m
+CONFIG_GRO_CELLS=y
+CONFIG_GS_FPGABOOT=m
+CONFIG_GTP=m
+# CONFIG_GUP_BENCHMARK is not set
+CONFIG_GUP_GET_PTE_LOW_HIGH=y
+CONFIG_GVE=m
+CONFIG_HALTPOLL_CPUIDLE=m
+CONFIG_HAMRADIO=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
+# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_HARDEN_EL2_VECTORS=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_HAVE_ARCH_NVRAM_OPS=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_TWD=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_BUGVERBOSE=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_EISA=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUTEX_CMPXCHG=y
+CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IMA_KEXEC=y
+CONFIG_HAVE_IMX_ANATOP=y
+CONFIG_HAVE_IMX_GPC=y
+CONFIG_HAVE_IMX_MMDC=y
+CONFIG_HAVE_IMX_SRC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_UNCOMPRESSED=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_HAVE_KVM_INVALID_WAKEUPS=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_NO_POLL=y
+CONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL=y
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_HAVE_MARCH_Z10_FEATURES=y
+CONFIG_HAVE_MARCH_Z13_FEATURES=y
+CONFIG_HAVE_MARCH_Z196_FEATURES=y
+CONFIG_HAVE_MARCH_Z900_FEATURES=y
+CONFIG_HAVE_MARCH_Z990_FEATURES=y
+CONFIG_HAVE_MARCH_Z9_109_FEATURES=y
+CONFIG_HAVE_MARCH_ZEC12_FEATURES=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MEMBLOCK_PHYS_MAP=y
+CONFIG_HAVE_MEMORYLESS_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_HAVE_MMU_GATHER_NO_GATHER=y
+CONFIG_HAVE_MMU_GATHER_PAGE_SIZE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_NMI=y
+CONFIG_HAVE_NMI_WATCHDOG=y
+CONFIG_HAVE_NOP_MCOUNT=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PATA_PLATFORM=y
+CONFIG_HAVE_PCI=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_PNETID=m
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RELIABLE_STACKTRACE=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_S3C2410_I2C=y
+CONFIG_HAVE_S3C2410_WATCHDOG=y
+CONFIG_HAVE_S3C_RTC=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_SMP=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_HAVE_STACK_VALIDATION=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HBMC_AM654=m
+# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
+CONFIG_HDC100X=m
+CONFIG_HDLC=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_X25=m
+CONFIG_HDMI=y
+CONFIG_HDMI_LPE_AUDIO=m
+CONFIG_HDQ_MASTER_OMAP=m
+# CONFIG_HEADERS_INSTALL is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+# CONFIG_HERMES_PRISM is not set
+# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
+CONFIG_HI13X1_GMAC=y
+CONFIG_HI3660_MBOX=m
+CONFIG_HI6220_MBOX=m
+CONFIG_HI8435=m
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIDRAW=y
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_ALPS=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_APPLEIR=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CMEDIA=m
+CONFIG_HID_CORSAIR=m
+CONFIG_HID_COUGAR=m
+CONFIG_HID_CP2112=m
+CONFIG_HID_CREATIVE_SB0540=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_ELAN=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_GENERIC=m
+CONFIG_HID_GFRM=m
+CONFIG_HID_GOOGLE_HAMMER=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_GT683R=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_HYPERV_MOUSE=m
+CONFIG_HID_ICADE=m
+CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_HID_MACALLY=m
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MALTRON=m
+CONFIG_HID_MAYFLASH=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PENMOUNT=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_CIR=y
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PID=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_REDRAGON=m
+CONFIG_HID_RETRODE=m
+CONFIG_HID_RMI=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_HID_SENSOR_ALS=m
+CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_HID_SENSOR_GYRO_3D=m
+CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
+CONFIG_HID_SENSOR_IIO_COMMON=m
+CONFIG_HID_SENSOR_IIO_TRIGGER=m
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_HID_SENSOR_PRESS=m
+CONFIG_HID_SENSOR_PROX=m
+CONFIG_HID_SENSOR_TEMP=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=m
+CONFIG_HID_STEELSERIES=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_U2FZERO=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_UDRAW_PS3=m
+CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+CONFIG_HIGHPTE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HINIC=m
+CONFIG_HIP04_ETH=m
+# CONFIG_HIPPI is not set
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_HISILICON_ERRATUM_161600802=y
+CONFIG_HISILICON_IRQ_MBIGEN=y
+CONFIG_HISILICON_LPC=y
+CONFIG_HISI_DMA=m
+CONFIG_HISI_FEMAC=m
+CONFIG_HISI_PMU=y
+CONFIG_HISI_THERMAL=m
+CONFIG_HIST_TRIGGERS=y
+CONFIG_HIX5HD2_GMAC=m
+CONFIG_HMC_DRV=m
+CONFIG_HMEM_REPORTING=y
+CONFIG_HMM_MIRROR=y
+CONFIG_HMS_ANYBUSS_BUS=m
+CONFIG_HMS_PROFINET=m
+CONFIG_HNS=m
+CONFIG_HNS3=m
+CONFIG_HNS3_DCB=y
+CONFIG_HNS3_ENET=m
+CONFIG_HNS3_HCLGE=m
+CONFIG_HNS3_HCLGEVF=m
+CONFIG_HNS_DSAF=m
+CONFIG_HNS_ENET=m
+CONFIG_HNS_MDIO=m
+CONFIG_HOLES_IN_ZONE=y
+CONFIG_HOLTEK_FF=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_CS=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTESS_SV11=m
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_POWERNV=m
+CONFIG_HOTPLUG_PCI_RPA=m
+CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
+CONFIG_HOTPLUG_PCI_S390=y
+CONFIG_HOTPLUG_SMT=y
+CONFIG_HP03=m
+CONFIG_HP100=m
+CONFIG_HP206C=m
+CONFIG_HPET=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_HSA_AMD=y
+CONFIG_HSI_BOARDINFO=y
+CONFIG_HSI_CHAR=m
+CONFIG_HSU_DMA=m
+CONFIG_HSU_DMA_PCI=m
+CONFIG_HT16K33=m
+CONFIG_HTC_EGPIO=y
+CONFIG_HTC_I2CPLD=y
+CONFIG_HTS221=m
+CONFIG_HTS221_I2C=m
+CONFIG_HTS221_SPI=m
+CONFIG_HTU21=m
+CONFIG_HUAWEI_WMI=m
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
+CONFIG_HVCS=m
+CONFIG_HVC_CONSOLE=y
+# CONFIG_HVC_DCC is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_IUCV=y
+CONFIG_HVC_OLD_HVSI=y
+CONFIG_HVC_OPAL=y
+CONFIG_HVC_RTAS=y
+# CONFIG_HVC_UDBG is not set
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_HV_PERF_CTRS=y
+CONFIG_HWLAT_TRACER=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_HWMON_VID=m
+CONFIG_HWPOISON_INJECT=m
+CONFIG_HWSPINLOCK_OMAP=m
+CONFIG_HWSPINLOCK_QCOM=m
+CONFIG_HWSPINLOCK_SPRD=m
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_CAVIUM=m
+CONFIG_HW_RANDOM_EXYNOS=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_HISI=m
+CONFIG_HW_RANDOM_HISI_V2=m
+CONFIG_HW_RANDOM_IMX_RNGC=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_IPROC_RNG200=m
+CONFIG_HW_RANDOM_MESON=m
+CONFIG_HW_RANDOM_MTK=m
+CONFIG_HW_RANDOM_OMAP=m
+CONFIG_HW_RANDOM_OMAP3_ROM=m
+CONFIG_HW_RANDOM_OPTEE=m
+CONFIG_HW_RANDOM_POWERNV=m
+CONFIG_HW_RANDOM_PSERIES=m
+CONFIG_HW_RANDOM_S390=m
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HW_RANDOM_XGENE=m
+CONFIG_HX711=m
+CONFIG_HYPERV=m
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_HYPERV_BALLOON=m
+CONFIG_HYPERV_IOMMU=y
+CONFIG_HYPERV_KEYBOARD=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_TIMER=y
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_VSOCKETS=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+# CONFIG_HZ_200 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_500 is not set
+CONFIG_HZ_FIXED=0
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_ARB_GPIO_CHALLENGE=m
+CONFIG_I2C_ASPEED=m
+CONFIG_I2C_AXXIA=m
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BCM_IPROC=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_BRCMSTB=m
+# CONFIG_I2C_CADENCE is not set
+CONFIG_I2C_CHT_WC=m
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CROS_EC_TUNNEL=m
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+CONFIG_I2C_DEMUX_PINCTRL=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+CONFIG_I2C_DESIGNWARE_CORE=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_DLN2=m
+CONFIG_I2C_EG20T=m
+CONFIG_I2C_EXYNOS5=m
+CONFIG_I2C_FSI=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_HIX5HD2=m
+CONFIG_I2C_IMX_LPI2C=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_KEMPLD=m
+CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXCPLD=m
+CONFIG_I2C_MPC=m
+CONFIG_I2C_MT65XX=m
+CONFIG_I2C_MULTI_INSTANTIATE=m
+CONFIG_I2C_MUX=m
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_MV64XXX=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_NOMADIK=m
+CONFIG_I2C_OMAP=y
+CONFIG_I2C_OPAL=y
+CONFIG_I2C_OWL=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PCA_ISA=m
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_SLAVE=y
+CONFIG_I2C_QCOM_GENI=m
+CONFIG_I2C_QUP=m
+CONFIG_I2C_RCAR=m
+CONFIG_I2C_RIIC=m
+CONFIG_I2C_RK3X=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_S3C2410=y
+CONFIG_I2C_SCMI=m
+CONFIG_I2C_SH_MOBILE=m
+CONFIG_I2C_SI470X=m
+CONFIG_I2C_SI4713=m
+CONFIG_I2C_SLAVE_EEPROM=m
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_SPRD=y
+CONFIG_I2C_STUB=m
+CONFIG_I2C_SYNQUACER=m
+CONFIG_I2C_TEGRA=m
+CONFIG_I2C_TEGRA_BPMP=m
+CONFIG_I2C_THUNDERX=m
+CONFIG_I2C_TINY_USB=m
+# CONFIG_I2C_UNIPHIER is not set
+# CONFIG_I2C_UNIPHIER_F is not set
+CONFIG_I2C_VERSATILE=m
+CONFIG_I2C_VIPERBOARD=m
+CONFIG_I2C_XGENE_SLIMPRO=m
+CONFIG_I2C_XLP9XX=m
+CONFIG_I40E=m
+CONFIG_I40EVF=m
+CONFIG_I40E_DCB=y
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_I8253_LOCK=y
+CONFIG_I8K=m
+CONFIG_IA32_EMULATION=y
+CONFIG_IAQCORE=m
+CONFIG_IAVF=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_IBMVETH=m
+CONFIG_IBMVIO=y
+CONFIG_IBMVMC=m
+CONFIG_IBMVNIC=m
+CONFIG_IBM_ASM=m
+CONFIG_IBM_BSR=m
+CONFIG_IBM_PARTITION=y
+CONFIG_IBM_RTL=m
+CONFIG_ICE=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_ICST=y
+# CONFIG_IDE is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_IDLE_INJECT=y
+CONFIG_IDLE_PAGE_TRACKING=y
+CONFIG_IE6XX_WDT=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_IEEE802154_ADF7242=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_AT86RF230_DEBUGFS=y
+CONFIG_IEEE802154_ATUSB=m
+CONFIG_IEEE802154_CA8210=m
+CONFIG_IEEE802154_CA8210_DEBUGFS=y
+CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKELB=m
+CONFIG_IEEE802154_HWSIM=m
+CONFIG_IEEE802154_MCR20A=m
+CONFIG_IEEE802154_MRF24J40=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+CONFIG_IFB=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IGB_DCA=y
+CONFIG_IGB_HWMON=y
+CONFIG_IGC=m
+CONFIG_IIO_ADIS_LIB=m
+CONFIG_IIO_ADIS_LIB_BUFFER=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
+CONFIG_IIO_CONFIGFS=m
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO_MS_SENSORS_I2C=m
+CONFIG_IIO_MUX=m
+CONFIG_IIO_RESCALE=m
+CONFIG_IIO_SIMPLE_DUMMY=m
+# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
+# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
+CONFIG_IIO_SSP_SENSORHUB=m
+CONFIG_IIO_SSP_SENSORS_COMMONS=m
+CONFIG_IIO_ST_ACCEL_3AXIS=m
+CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
+CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
+CONFIG_IIO_ST_GYRO_3AXIS=m
+CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
+CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
+CONFIG_IIO_ST_LSM6DSX=m
+CONFIG_IIO_ST_LSM6DSX_I2C=m
+CONFIG_IIO_ST_LSM6DSX_I3C=m
+CONFIG_IIO_ST_LSM6DSX_SPI=m
+CONFIG_IIO_ST_MAGN_3AXIS=m
+CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
+CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_IIO_ST_PRESS=m
+CONFIG_IIO_ST_PRESS_I2C=m
+CONFIG_IIO_ST_PRESS_SPI=m
+CONFIG_IIO_ST_SENSORS_CORE=m
+CONFIG_IIO_ST_SENSORS_I2C=m
+CONFIG_IIO_ST_SENSORS_SPI=m
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
+# CONFIG_IKCONFIG is not set
+CONFIG_IKHEADERS=m
+CONFIG_IMA=y
+CONFIG_IMA_APPRAISE=y
+CONFIG_IMA_APPRAISE_BOOTPARAM=y
+# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
+# CONFIG_IMA_APPRAISE_SIGNED_INIT is not set
+# CONFIG_IMA_BLACKLIST_KEYRING is not set
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_KEXEC=y
+# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set
+CONFIG_IMA_LSM_RULES=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+# CONFIG_IMA_TEMPLATE is not set
+CONFIG_IMA_TRUSTED_KEYRING=y
+# CONFIG_IMA_WRITE_POLICY is not set
+CONFIG_IMA_X509_PATH="/etc/keys/x509_ima.der"
+CONFIG_IMG_ASCII_LCD=m
+CONFIG_IMX2_WDT=m
+CONFIG_IMX7D_ADC=m
+CONFIG_IMX7ULP_WDT=m
+CONFIG_IMX_DMA=m
+CONFIG_IMX_DSP=y
+CONFIG_IMX_GPCV2=y
+CONFIG_IMX_GPCV2_PM_DOMAINS=y
+CONFIG_IMX_IPUV3_CORE=m
+CONFIG_IMX_IRQSTEER=y
+CONFIG_IMX_MBOX=m
+CONFIG_IMX_REMOTEPROC=m
+CONFIG_IMX_SCU=y
+CONFIG_IMX_SCU_PD=y
+CONFIG_IMX_SCU_SOC=y
+CONFIG_IMX_SC_WDT=m
+CONFIG_IMX_SDMA=m
+CONFIG_IMX_THERMAL=m
+CONFIG_IMX_WEIM=y
+CONFIG_INA2XX_ADC=m
+CONFIG_INDIRECT_PIO=y
+CONFIG_INET=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET_AH=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_INET_ESP=m
+CONFIG_INET_ESP_OFFLOAD=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_RAW_DIAG=m
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
+CONFIG_INFINIBAND_CXGB3=m
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_EFA=m
+# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
+CONFIG_INFINIBAND_HFI1=m
+CONFIG_INFINIBAND_HNS=m
+CONFIG_INFINIBAND_HNS_HIP06=y
+CONFIG_INFINIBAND_HNS_HIP08=y
+CONFIG_INFINIBAND_I40IW=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_OPA_VNIC=m
+CONFIG_INFINIBAND_QEDR=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_RDMAVT=m
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_VIRT_DMA=y
+CONFIG_INFINIBAND_VMWARE_PVRDMA=m
+CONFIG_INFTL=m
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_INIT_STACK_NONE=y
+CONFIG_INLINE_READ_LOCK=y
+CONFIG_INLINE_READ_LOCK_BH=y
+CONFIG_INLINE_READ_LOCK_IRQ=y
+CONFIG_INLINE_READ_LOCK_IRQSAVE=y
+CONFIG_INLINE_READ_TRYLOCK=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_BH=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y
+CONFIG_INLINE_SPIN_LOCK=y
+CONFIG_INLINE_SPIN_LOCK_BH=y
+CONFIG_INLINE_SPIN_LOCK_IRQ=y
+CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y
+CONFIG_INLINE_SPIN_TRYLOCK=y
+CONFIG_INLINE_SPIN_TRYLOCK_BH=y
+CONFIG_INLINE_SPIN_UNLOCK_BH=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y
+CONFIG_INLINE_WRITE_LOCK=y
+CONFIG_INLINE_WRITE_LOCK_BH=y
+CONFIG_INLINE_WRITE_LOCK_IRQ=y
+CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y
+CONFIG_INLINE_WRITE_TRYLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_BH=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y
+CONFIG_INOTIFY_USER=y
+CONFIG_INPUT=y
+CONFIG_INPUT_88PM80X_ONKEY=m
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ARIZONA_HAPTICS=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATMEL_CAPTOUCH=m
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_CPCAP_PWRBUTTON=m
+CONFIG_INPUT_DA9052_ONKEY=m
+CONFIG_INPUT_DA9055_ONKEY=m
+CONFIG_INPUT_DA9063_ONKEY=m
+CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2665_HAPTICS=m
+CONFIG_INPUT_DRV2667_HAPTICS=m
+CONFIG_INPUT_E3X0_BUTTON=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_GP2A=m
+CONFIG_INPUT_GPIO_BEEPER=m
+CONFIG_INPUT_GPIO_DECODER=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_GPIO_VIBRA=m
+CONFIG_INPUT_HISI_POWERKEY=m
+CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_IMS_PCU=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_MAX77650_ONKEY=m
+CONFIG_INPUT_MAX77693_HAPTIC=m
+CONFIG_INPUT_MAX8925_ONKEY=m
+CONFIG_INPUT_MAX8997_HAPTIC=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_MSM_VIBRATOR=m
+CONFIG_INPUT_PALMAS_PWRBUTTON=m
+CONFIG_INPUT_PCAP=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_PM8941_PWRKEY=m
+CONFIG_INPUT_PM8XXX_VIBRATOR=m
+CONFIG_INPUT_PMIC8XXX_PWRKEY=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_PWM_BEEPER=m
+CONFIG_INPUT_PWM_VIBRA=m
+CONFIG_INPUT_RAVE_SP_PWRBUTTON=m
+CONFIG_INPUT_REGULATOR_HAPTIC=m
+CONFIG_INPUT_RETU_PWRBUTTON=m
+CONFIG_INPUT_RK805_PWRKEY=m
+CONFIG_INPUT_SC27XX_VIBRA=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+CONFIG_INPUT_STPMIC1_ONKEY=m
+CONFIG_INPUT_TPS65218_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
+CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_INT3406_THERMAL=m
+CONFIG_INT340X_THERMAL=m
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_INTEGRITY_PLATFORM_KEYRING=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_TRUSTED_KEYRING=y
+CONFIG_INTEL_ATOMISP2_PM=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_GTT=y
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_IDLE=y
+CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_INT0002_VGPIO=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_INTEL_IOMMU_SVM=y
+CONFIG_INTEL_IPS=m
+CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
+CONFIG_INTEL_ISH_HID=m
+CONFIG_INTEL_MEI=m
+CONFIG_INTEL_MEI_HDCP=m
+CONFIG_INTEL_MEI_ME=m
+CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_WDT=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_INTEL_MFLD_THERMAL=m
+CONFIG_INTEL_MIC_BUS=m
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_INTEL_MIC_HOST=m
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_MID_POWER_BUTTON=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_INTEL_MID_WATCHDOG=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_INTEL_PCH_THERMAL=m
+CONFIG_INTEL_PMC_CORE=y
+CONFIG_INTEL_PMC_IPC=m
+CONFIG_INTEL_POWERCLAMP=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RAPL=m
+CONFIG_INTEL_RAPL_CORE=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SCU_IPC=y
+CONFIG_INTEL_SCU_IPC_UTIL=m
+CONFIG_INTEL_SCU_WATCHDOG=y
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
+CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_SOC_PMIC=y
+CONFIG_INTEL_SOC_PMIC_BXTWC=m
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
+CONFIG_INTEL_SOC_PMIC_MRFLD=m
+CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
+CONFIG_INTEL_STRATIX10_RSU=m
+CONFIG_INTEL_STRATIX10_SERVICE=m
+CONFIG_INTEL_TELEMETRY=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_ACPI=m
+# CONFIG_INTEL_TH_DEBUG is not set
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_PTI=m
+CONFIG_INTEL_TH_STH=m
+CONFIG_INTEL_TURBO_MAX_3=y
+CONFIG_INTEL_TXT=y
+CONFIG_INTEL_VBTN=m
+CONFIG_INTEL_WMI_THUNDERBOLT=m
+CONFIG_INTEL_XWAY_PHY=m
+CONFIG_INTERCONNECT_QCOM=y
+CONFIG_INTERCONNECT_QCOM_QCS404=m
+CONFIG_INTERCONNECT_QCOM_SDM845=m
+CONFIG_INTERCONNECT_QCOM_SMD_RPM=m
+CONFIG_INTERVAL_TREE=y
+# CONFIG_INTERVAL_TREE_TEST is not set
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_INV_MPU6050_IIO=m
+CONFIG_INV_MPU6050_SPI=m
+CONFIG_IOMMU_API=y
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_IOMMU_DMA=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_IO_PGTABLE=y
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_ION is not set
+CONFIG_IONIC=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_IOSF_MBI=y
+CONFIG_IOSF_MBI_DEBUG=y
+# CONFIG_IO_DELAY_0X80 is not set
+CONFIG_IO_DELAY_0XED=y
+# CONFIG_IO_DELAY_NONE is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+CONFIG_IO_EVENT_IRQ=y
+# CONFIG_IO_STRICT_DEVMEM is not set
+CONFIG_IO_URING=y
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IPC_NS=y
+# CONFIG_IPDDP is not set
+CONFIG_IPMB_DEVICE_INTERFACE=m
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_KCS_BMC=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_PLAT_DATA=y
+CONFIG_IPMI_POWERNV=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPQ_GCC_4019=m
+CONFIG_IPQ_GCC_806X=m
+CONFIG_IPQ_GCC_8074=m
+CONFIG_IPQ_LCC_806X=m
+CONFIG_IPV6=y
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_SEG6_BPF=y
+CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPVLAN=m
+CONFIG_IPVLAN_L3S=y
+CONFIG_IPVTAP=m
+CONFIG_IPW2100=m
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2100_MONITOR=y
+CONFIG_IPW2200=m
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPWIRELESS=m
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_DCCP=m
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_COMMON=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_SCTP=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMAC=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_MH=m
+CONFIG_IP_VS_MH_TAB_INDEX=12
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_OVF=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SH_TAB_BITS=8
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IRQCHIP=y
+# CONFIG_IRQSOFF_TRACER is not set
+CONFIG_IRQ_ALL_CPUS=y
+CONFIG_IRQ_CROSSBAR=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_IRQ_POLL=y
+CONFIG_IRQ_REMAP=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_IRQ_UNIPHIER_AIDET=y
+CONFIG_IRQ_WORK=y
+CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_HIX5HD2=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_IMON=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_IMON_RAW=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_MESON=m
+CONFIG_IR_MTK=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_RCMM_DECODER=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_RX51=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SERIAL=m
+CONFIG_IR_SERIAL_TRANSMITTER=y
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SPI=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_SUNXI=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_ISA=y
+CONFIG_ISAPNP=y
+CONFIG_ISA_BUS=y
+CONFIG_ISA_BUS_API=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ISCSI_IBFT=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_TARGET=m
+CONFIG_ISCSI_TARGET_CXGB4=m
+CONFIG_ISCSI_TCP=m
+CONFIG_ISDN=y
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_ISI=m
+CONFIG_ISL29125=m
+CONFIG_ISL29501=m
+CONFIG_ISM=m
+CONFIG_ISO9660_FS=m
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_ITCO_WDT=m
+CONFIG_ITG3200=m
+CONFIG_IUCV=y
+CONFIG_IWL3945=m
+CONFIG_IWL4965=m
+CONFIG_IWLDVM=m
+CONFIG_IWLEGACY=m
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_IWLEGACY_DEBUGFS=y
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEBUGFS=y
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+CONFIG_IWMMXT=y
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBEVF=m
+CONFIG_IXGBEVF_IPSEC=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_IPSEC=y
+CONFIG_JAILHOUSE_GUEST=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_JOLIET=y
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_FSIA6B=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_232=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PXRC=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JSA1212=m
+CONFIG_JUMP_LABEL_FEATURE_CHECKS=y
+# CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG is not set
+CONFIG_K3_DMA=m
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_STACK=1
+# CONFIG_KCOV is not set
+CONFIG_KDB_CONTINUE_CATASTROPHIC=0
+CONFIG_KDB_DEFAULT_ENABLE=0x1
+CONFIG_KDB_KEYBOARD=y
+CONFIG_KEMPLD_WDT=m
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_KERNEL_MODE_NEON=y
+# CONFIG_KERNEL_NOBP is not set
+CONFIG_KERNEL_START=0xc000000000000000
+# CONFIG_KERNEL_UNCOMPRESSED is not set
+# CONFIG_KERNEL_XZ is not set
+CONFIG_KERNFS=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
+CONFIG_KEXEC_CORE=y
+CONFIG_KEXEC_ELF=y
+# CONFIG_KEXEC_IMAGE_VERIFY_SIG is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_KEXEC_SIG=y
+# CONFIG_KEXEC_SIG_FORCE is not set
+CONFIG_KEYBOARD_ADC=m
+CONFIG_KEYBOARD_ADP5520=m
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_APPLESPI=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_BCM=m
+CONFIG_KEYBOARD_CAP11XX=m
+CONFIG_KEYBOARD_CROS_EC=m
+CONFIG_KEYBOARD_DLINK_DIR685=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_IMX=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_MTK_PMIC=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_NVEC=m
+CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_PMIC8XXX=m
+CONFIG_KEYBOARD_QT1050=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_SAMSUNG=m
+CONFIG_KEYBOARD_SNVS_PWRKEY=m
+CONFIG_KEYBOARD_STMPE=m
+CONFIG_KEYBOARD_STOWAWAY=m
+# CONFIG_KEYBOARD_SUN4I_LRADC is not set
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_TC3589X=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_TEGRA=m
+CONFIG_KEYBOARD_TM2_TOUCHKEY=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYS=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_KEYS_REQUEST_CACHE=y
+CONFIG_KEY_DH_OPERATIONS=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KGDB_LOW_LEVEL_TRAP=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_KMSG_IDS=y
+CONFIG_KMX61=m
+CONFIG_KPC2000=y
+CONFIG_KPC2000_CORE=m
+CONFIG_KPC2000_DMA=m
+CONFIG_KPC2000_I2C=m
+CONFIG_KPC2000_SPI=m
+CONFIG_KPROBES=y
+CONFIG_KPROBES_ON_FTRACE=y
+# CONFIG_KPROBES_SANITY_TEST is not set
+CONFIG_KPROBE_EVENTS=y
+# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
+CONFIG_KPSS_XCC=m
+CONFIG_KRAITCC=m
+CONFIG_KRAIT_CLOCKS=y
+CONFIG_KRAIT_L2_ACCESSORS=y
+CONFIG_KRETPROBES=y
+CONFIG_KS0108=m
+CONFIG_KS0108_DELAY=2
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS7010=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSM=y
+CONFIG_KSZ884X_PCI=m
+CONFIG_KUSER_HELPERS=y
+CONFIG_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=y
+CONFIG_KVM_ARM_HOST=y
+CONFIG_KVM_ARM_PMU=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_KVM_ASYNC_PF_SYNC=y
+CONFIG_KVM_BOOK3S_64=m
+CONFIG_KVM_BOOK3S_64_HANDLER=y
+CONFIG_KVM_BOOK3S_64_HV=m
+CONFIG_KVM_BOOK3S_64_PR=m
+CONFIG_KVM_BOOK3S_HANDLER=y
+# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set
+CONFIG_KVM_BOOK3S_HV_POSSIBLE=y
+CONFIG_KVM_BOOK3S_PR_POSSIBLE=y
+CONFIG_KVM_COMPAT=y
+CONFIG_KVM_DEBUG_FS=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_KVM_GUEST=y
+CONFIG_KVM_INDIRECT_VECTORS=y
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_MMIO=y
+# CONFIG_KVM_MMU_AUDIT is not set
+# CONFIG_KVM_S390_UCONTROL is not set
+CONFIG_KVM_VFIO=y
+CONFIG_KVM_XICS=y
+CONFIG_KVM_XIVE=y
+CONFIG_KXCJK1013=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9_SPI=m
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+CONFIG_L2TP_ETH=m
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_V3=y
+CONFIG_LAN743X=m
+CONFIG_LANCE=m
+CONFIG_LANMEDIA=m
+CONFIG_LAPBETHER=m
+CONFIG_LATTICE_ECP3_CONFIG=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_HX8357=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_OTM3225A=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCS=m
+CONFIG_LDISC_AUTOLOAD=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set
+# CONFIG_LD_HEAD_STUB_CATCH is not set
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_AAT1290=m
+CONFIG_LEDS_ADP5520=m
+CONFIG_LEDS_AN30259A=m
+CONFIG_LEDS_APU=m
+CONFIG_LEDS_AS3645A=m
+CONFIG_LEDS_ASIC3=y
+CONFIG_LEDS_BCM6328=m
+CONFIG_LEDS_BCM6358=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_CPCAP=m
+CONFIG_LEDS_CR0014114=m
+CONFIG_LEDS_DA903X=m
+CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_IS31FL319X=m
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_KTD2692=m
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_LM3532=m
+CONFIG_LEDS_LM3533=m
+CONFIG_LEDS_LM355x=m
+CONFIG_LEDS_LM3601X=m
+CONFIG_LEDS_LM36274=m
+CONFIG_LEDS_LM3642=m
+CONFIG_LEDS_LM3692X=m
+CONFIG_LEDS_LM3697=m
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_LP5562=m
+CONFIG_LEDS_LP55XX_COMMON=m
+CONFIG_LEDS_LP8501=m
+CONFIG_LEDS_LP8788=m
+CONFIG_LEDS_LP8860=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MAX77650=m
+CONFIG_LEDS_MAX77693=m
+CONFIG_LEDS_MAX8997=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_MENF21BMC=m
+CONFIG_LEDS_MLXCPLD=m
+CONFIG_LEDS_MLXREG=m
+CONFIG_LEDS_MT6323=m
+CONFIG_LEDS_NET48XX=m
+CONFIG_LEDS_NIC78BX=m
+CONFIG_LEDS_NS2=m
+CONFIG_LEDS_OT200=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA955X_GPIO=y
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PM8058=m
+CONFIG_LEDS_POWERNV=m
+CONFIG_LEDS_PWM=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_SC27XX_BLTC=m
+CONFIG_LEDS_SPI_BYTE=m
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_TI_LMU_COMMON=m
+CONFIG_LEDS_TLC591XX=m
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_ACTIVITY=m
+CONFIG_LEDS_TRIGGER_AUDIO=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_USER=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_WRAP=m
+CONFIG_LED_TRIGGER_PHY=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=0
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
+# CONFIG_LEGACY_VSYSCALL_NONE is not set
+CONFIG_LEGACY_VSYSCALL_XONLY=y
+CONFIG_LG_LAPTOP=m
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+CONFIG_LIB80211_CRYPT_WEP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_LIBCRC32C=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_LIBFDT=y
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_LIDAR_LITE_V2=m
+CONFIG_LIQUIDIO=m
+CONFIG_LIQUIDIO_VF=m
+CONFIG_LIRC=y
+CONFIG_LIVEPATCH=y
+# CONFIG_LKDTM is not set
+CONFIG_LLC=m
+CONFIG_LMP91000=m
+CONFIG_LOAD_IPL_KEYS=y
+CONFIG_LOAD_PPC_KEYS=y
+CONFIG_LOAD_UEFI_KEYS=y
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD_V4=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_DOWN_IN_SECURE_BOOT=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
+CONFIG_LOCK_SPIN_ON_OWNER=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIWHEELS_FF=y
+# CONFIG_LOGO is not set
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_LP8788_ADC=m
+CONFIG_LPARCFG=y
+# CONFIG_LP_CONSOLE is not set
+CONFIG_LRU_CACHE=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LSM="lockdown,yama,integrity,apparmor"
+CONFIG_LSM_MMAP_MIN_ADDR=0
+CONFIG_LS_SCFG_MSI=y
+CONFIG_LTC1660=m
+CONFIG_LTC2471=m
+CONFIG_LTC2485=m
+CONFIG_LTC2497=m
+CONFIG_LTC2632=m
+CONFIG_LTE_GDM724X=m
+CONFIG_LTPC=m
+CONFIG_LTR501=m
+CONFIG_LV0104CS=m
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_LXT_PHY=m
+CONFIG_LZ4HC_COMPRESS=m
+CONFIG_LZ4_COMPRESS=m
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M586TSC is not set
+CONFIG_M62332=m
+CONFIG_M686=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_DEBUGFS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_HWSIM=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_MESSAGE_TRACING=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_MAC802154=m
+CONFIG_MACB=m
+CONFIG_MACB_PCI=m
+CONFIG_MACB_USE_HWSTAMP=y
+CONFIG_MACHZ_WDT=m
+CONFIG_MACH_ARMADA_370=y
+CONFIG_MACH_ARMADA_375=y
+CONFIG_MACH_ARMADA_38X=y
+CONFIG_MACH_ARMADA_39X=y
+CONFIG_MACH_ARMADA_XP=y
+# CONFIG_MACH_ARTPEC6 is not set
+CONFIG_MACH_ASPEED_G6=y
+CONFIG_MACH_BERLIN_BG2=y
+CONFIG_MACH_BERLIN_BG2CD=y
+CONFIG_MACH_BERLIN_BG2Q=y
+CONFIG_MACH_DOVE=y
+CONFIG_MACH_MESON6=y
+CONFIG_MACH_MESON8=y
+CONFIG_MACH_MT2701=y
+CONFIG_MACH_MT6589=y
+CONFIG_MACH_MT6592=y
+CONFIG_MACH_MT7623=y
+CONFIG_MACH_MT7629=y
+CONFIG_MACH_MT8127=y
+CONFIG_MACH_MT8135=y
+CONFIG_MACH_MVEBU_ANY=y
+CONFIG_MACH_MVEBU_V7=y
+# CONFIG_MACH_OMAP3517EVM is not set
+CONFIG_MACH_OMAP3_PANDORA=y
+CONFIG_MACH_OMAP_GENERIC=y
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MACSEC=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_MADERA_IRQ=m
+CONFIG_MAG3110=m
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAILBOX_TEST=m
+CONFIG_MANAGER_SBS=m
+CONFIG_MANDATORY_FILE_LOCKING=y
+CONFIG_MANTIS_CORE=m
+# CONFIG_MARCH_Z10 is not set
+CONFIG_MARCH_Z13=y
+# CONFIG_MARCH_Z14 is not set
+# CONFIG_MARCH_Z15 is not set
+CONFIG_MARCH_Z15_TUNE=y
+# CONFIG_MARCH_Z196 is not set
+# CONFIG_MARCH_Z900 is not set
+# CONFIG_MARCH_Z990 is not set
+# CONFIG_MARCH_Z9_109 is not set
+# CONFIG_MARCH_ZEC12 is not set
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MARVELL_PHY=m
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MATOM is not set
+CONFIG_MAX1027=m
+CONFIG_MAX11100=m
+CONFIG_MAX1118=m
+CONFIG_MAX1363=m
+CONFIG_MAX30100=m
+CONFIG_MAX30102=m
+CONFIG_MAX31856=m
+CONFIG_MAX44000=m
+CONFIG_MAX44009=m
+CONFIG_MAX517=m
+CONFIG_MAX5432=m
+CONFIG_MAX5481=m
+CONFIG_MAX5487=m
+CONFIG_MAX5821=m
+CONFIG_MAX77620_THERMAL=m
+CONFIG_MAX77620_WATCHDOG=m
+CONFIG_MAX8925_POWER=m
+CONFIG_MAX9611=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAXSMP=y
+CONFIG_MAX_PHYSMEM_BITS=46
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_MB1232=m
+CONFIG_MC3230=m
+CONFIG_MCB_LPC=m
+CONFIG_MCB_PCI=m
+# CONFIG_MCORE2 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_MCP3911=m
+CONFIG_MCP4018=m
+CONFIG_MCP41010=m
+CONFIG_MCP4131=m
+CONFIG_MCP4531=m
+CONFIG_MCP4725=m
+CONFIG_MCP4922=m
+CONFIG_MCPM=y
+CONFIG_MCPM_QUAD_CLUSTER=y
+# CONFIG_MCRUSOE is not set
+# CONFIG_MCYRIXIII is not set
+CONFIG_MD=y
+CONFIG_MDA_CONSOLE=m
+CONFIG_MDIO=m
+CONFIG_MDIO_ASPEED=m
+# CONFIG_MDIO_BCM_IPROC is not set
+CONFIG_MDIO_BUS_MUX_BCM_IPROC=y
+CONFIG_MDIO_BUS_MUX_GPIO=m
+CONFIG_MDIO_BUS_MUX_MESON_G12A=m
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m
+CONFIG_MDIO_CAVIUM=m
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_HISI_FEMAC=m
+CONFIG_MDIO_I2C=m
+CONFIG_MDIO_OCTEON=m
+# CONFIG_MDIO_SUN4I is not set
+CONFIG_MDIO_XGENE=m
+CONFIG_MDM_GCC_9615=m
+CONFIG_MDM_LCC_9615=m
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_CLUSTER=m
+CONFIG_MD_FAULTY=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MEDIATEK_MT6577_AUXADC=m
+CONFIG_MEDIATEK_WATCHDOG=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_MEDIA_COMMON_OPTIONS=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_MEDIA_CONTROLLER_DVB=y
+# CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_PCI_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_E4000=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_FC2580=m
+CONFIG_MEDIA_TUNER_IT913X=m
+CONFIG_MEDIA_TUNER_M88RS6000T=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MSI001=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_QM1D1B0004=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_SI2157=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18250=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_USB_SUPPORT=y
+# CONFIG_MEFFICEON is not set
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_MM=m
+# CONFIG_MELAN is not set
+CONFIG_MELLANOX_PLATFORM=y
+CONFIG_MEMBARRIER=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_MEMCG_SWAP=y
+# CONFIG_MEMCG_SWAP_ENABLED is not set
+CONFIG_MEMFD_CREATE=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
+# CONFIG_MEMSTICK_DEBUG is not set
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_MEMSTICK_TIFM_MS=m
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MEMTEST=y
+CONFIG_MENF21BMC_WATCHDOG=m
+CONFIG_MENZ069_WATCHDOG=m
+CONFIG_MEN_A21_WDT=m
+CONFIG_MEN_Z188_ADC=m
+CONFIG_MESON6_TIMER=y
+CONFIG_MESON_CANVAS=m
+CONFIG_MESON_CLK_MEASURE=y
+CONFIG_MESON_EE_PM_DOMAINS=y
+CONFIG_MESON_EFUSE=m
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_GXL_PHY=m
+CONFIG_MESON_GX_PM_DOMAINS=y
+CONFIG_MESON_GX_SOCINFO=y
+CONFIG_MESON_IRQ_GPIO=y
+CONFIG_MESON_MX_EFUSE=m
+CONFIG_MESON_MX_SOCINFO=y
+CONFIG_MESON_SARADC=m
+CONFIG_MESON_SM=y
+CONFIG_MESON_WATCHDOG=m
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+CONFIG_MFD_88PM860X=y
+CONFIG_MFD_AAT2870_CORE=y
+# CONFIG_MFD_AC100 is not set
+CONFIG_MFD_ACT8945A=m
+CONFIG_MFD_AHC1EC0=m
+CONFIG_MFD_ALTERA_SYSMGR=y
+CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_AS3711=y
+CONFIG_MFD_AS3722=y
+CONFIG_MFD_ASIC3=y
+CONFIG_MFD_ATMEL_FLEXCOM=m
+CONFIG_MFD_ATMEL_HLCDC=m
+CONFIG_MFD_AXP20X=m
+CONFIG_MFD_AXP20X_RSB=m
+CONFIG_MFD_CPCAP=m
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_DEV=m
+CONFIG_MFD_CS47L15=y
+CONFIG_MFD_CS47L24=y
+CONFIG_MFD_CS47L35=y
+CONFIG_MFD_CS47L85=y
+CONFIG_MFD_CS47L90=y
+CONFIG_MFD_CS47L92=y
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DLN2=m
+CONFIG_MFD_EXYNOS_LPASS=m
+CONFIG_MFD_HI6421_PMIC=m
+CONFIG_MFD_HI655X_PMIC=m
+CONFIG_MFD_INTEL_LPSS=m
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
+CONFIG_MFD_INTEL_MSIC=y
+CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
+CONFIG_MFD_LOCHNAGAR=y
+CONFIG_MFD_LP8788=y
+CONFIG_MFD_MADERA_I2C=m
+CONFIG_MFD_MADERA_SPI=m
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_MAX77650=m
+CONFIG_MFD_MAX77686=y
+CONFIG_MFD_MAX77843=y
+CONFIG_MFD_MAX8925=y
+CONFIG_MFD_MAX8997=y
+CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MC13XXX=m
+CONFIG_MFD_MC13XXX_SPI=m
+CONFIG_MFD_NVEC=m
+CONFIG_MFD_OMAP_USB_HOST=y
+CONFIG_MFD_PALMAS=y
+CONFIG_MFD_PM8XXX=m
+CONFIG_MFD_QCOM_RPM=m
+CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_RK808=m
+CONFIG_MFD_RN5T618=m
+CONFIG_MFD_ROHM_BD70528=m
+CONFIG_MFD_ROHM_BD718XX=m
+CONFIG_MFD_SC27XX_PMIC=m
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MFD_SMSC=y
+CONFIG_MFD_SPMI_PMIC=m
+CONFIG_MFD_STMFX=m
+CONFIG_MFD_STMPE=y
+CONFIG_MFD_STPMIC1=m
+CONFIG_MFD_SUN4I_GPADC=m
+CONFIG_MFD_SUN6I_PRCM=y
+CONFIG_MFD_T7L66XB=y
+CONFIG_MFD_TC3589X=y
+CONFIG_MFD_TC6387XB=y
+CONFIG_MFD_TC6393XB=y
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_MFD_TI_LP87565=m
+CONFIG_MFD_TMIO=y
+CONFIG_MFD_TPS65090=y
+CONFIG_MFD_TPS65218=m
+CONFIG_MFD_TPS6586X=y
+CONFIG_MFD_TPS65910=y
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS65912_SPI=y
+CONFIG_MFD_TPS68470=y
+CONFIG_MFD_TPS80031=y
+CONFIG_MFD_TWL4030_AUDIO=y
+CONFIG_MFD_VEXPRESS_SYSREG=y
+CONFIG_MFD_VIPERBOARD=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WM5102=y
+CONFIG_MFD_WM5110=y
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_I2C=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_WM8350=y
+CONFIG_MFD_WM8350_I2C=y
+CONFIG_MFD_WM8400=y
+CONFIG_MFD_WM8997=y
+CONFIG_MFD_WM8998=y
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+CONFIG_MICREL_KS8995MA=m
+CONFIG_MICREL_PHY=m
+CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_MICROSEMI_PHY=m
+CONFIG_MIC_COSM=m
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_MIGRATION=y
+CONFIG_MILBEAUT_TIMER=y
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX=m
+CONFIG_MISC_RTSX_USB=m
+CONFIG_MISDN=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_HDLC=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_MISDN_L1OIP=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_W6692=m
+CONFIG_MIXCOMWD=m
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+CONFIG_MKISS=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_CORE_GEN2=y
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_ACCEL=y
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_EN_DCB=y
+CONFIG_MLX5_CORE_IPOIB=y
+CONFIG_MLX5_EN_ARFS=y
+CONFIG_MLX5_EN_IPSEC=y
+CONFIG_MLX5_EN_RXNFC=y
+CONFIG_MLX5_EN_TLS=y
+CONFIG_MLX5_ESWITCH=y
+CONFIG_MLX5_FPGA=y
+CONFIG_MLX5_FPGA_IPSEC=y
+CONFIG_MLX5_FPGA_TLS=y
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+CONFIG_MLX5_TLS=y
+CONFIG_MLX90614=m
+CONFIG_MLX90632=m
+CONFIG_MLXBF_TMFIFO=m
+CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
+CONFIG_MLXREG_IO=m
+CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_CORE_HWMON=y
+CONFIG_MLXSW_CORE_THERMAL=y
+CONFIG_MLXSW_MINIMAL=m
+CONFIG_MLXSW_PCI=m
+CONFIG_MLXSW_SPECTRUM=m
+CONFIG_MLXSW_SPECTRUM_DCB=y
+CONFIG_MLXSW_SWITCHIB=m
+CONFIG_MLXSW_SWITCHX2=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLX_WDT=m
+CONFIG_MMA7455=m
+CONFIG_MMA7455_I2C=m
+CONFIG_MMA7455_SPI=m
+CONFIG_MMA7660=m
+CONFIG_MMA8452=m
+CONFIG_MMA9551=m
+CONFIG_MMA9551_CORE=m
+CONFIG_MMA9553=m
+CONFIG_MMC35240=m
+CONFIG_MMCONF_FAM10H=y
+CONFIG_MMC_ALCOR=m
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_BCM2835=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_CAVIUM_THUNDERX=m
+CONFIG_MMC_CB710=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_BLUEFIELD=m
+CONFIG_MMC_DW_EXYNOS=m
+CONFIG_MMC_DW_HI3798CV200=m
+CONFIG_MMC_DW_K3=m
+CONFIG_MMC_DW_PCI=m
+CONFIG_MMC_DW_PLTFM=m
+CONFIG_MMC_DW_ROCKCHIP=m
+CONFIG_MMC_MESON_GX=m
+CONFIG_MMC_MESON_MX_SDIO=m
+CONFIG_MMC_MTK=m
+CONFIG_MMC_MVSDIO=m
+CONFIG_MMC_MXC=m
+CONFIG_MMC_OMAP=m
+CONFIG_MMC_OMAP_HS=y
+CONFIG_MMC_QCOM_DML=y
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_AM654=m
+CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y
+CONFIG_MMC_SDHCI_BRCMSTB=m
+CONFIG_MMC_SDHCI_CADENCE=m
+CONFIG_MMC_SDHCI_DOVE=m
+CONFIG_MMC_SDHCI_F_SDH30=m
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_IPROC=m
+CONFIG_MMC_SDHCI_MSM=m
+CONFIG_MMC_SDHCI_OF_ARASAN=m
+CONFIG_MMC_SDHCI_OF_ASPEED=m
+CONFIG_MMC_SDHCI_OF_AT91=m
+CONFIG_MMC_SDHCI_OF_DWCMSHC=m
+CONFIG_MMC_SDHCI_OF_ESDHC=m
+CONFIG_MMC_SDHCI_OF_HLWD=m
+CONFIG_MMC_SDHCI_OMAP=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_S3C=m
+CONFIG_MMC_SDHCI_S3C_DMA=y
+CONFIG_MMC_SDHCI_SPRD=m
+CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
+CONFIG_MMC_SDHI=m
+CONFIG_MMC_SDHI_INTERNAL_DMAC=m
+CONFIG_MMC_SDHI_SYS_DMAC=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_SH_MMCIF=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_STM32_SDMMC=y
+CONFIG_MMC_SUNXI=m
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_TMIO=m
+CONFIG_MMC_TMIO_CORE=m
+CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MMC_UNIPHIER=m
+CONFIG_MMC_USDHI6ROL0=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_MMIOWB=y
+CONFIG_MMU=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_MODIFY_LDT_SYSCALL=y
+CONFIG_MODULES=y
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_REL_CRCS=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_ALL=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULE_SIG_HASH="sha512"
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+# CONFIG_MODULE_SIG_SHA1 is not set
+# CONFIG_MODULE_SIG_SHA224 is not set
+# CONFIG_MODULE_SIG_SHA256 is not set
+# CONFIG_MODULE_SIG_SHA384 is not set
+CONFIG_MODULE_SIG_SHA512=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MONREADER=m
+CONFIG_MONWRITER=m
+CONFIG_MOST=m
+CONFIG_MOST_CDEV=m
+CONFIG_MOST_DIM2=m
+CONFIG_MOST_I2C=m
+CONFIG_MOST_NET=m
+CONFIG_MOST_SOUND=m
+CONFIG_MOST_USB=m
+CONFIG_MOST_VIDEO=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_GPIO=m
+# CONFIG_MOUSE_INPORT is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_SMBUS=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_MOXTET=m
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+CONFIG_MPIC=y
+# CONFIG_MPIC_MSGR is not set
+CONFIG_MPILIB=y
+CONFIG_MPL115=m
+CONFIG_MPL115_I2C=m
+CONFIG_MPL115_SPI=m
+CONFIG_MPL3115=m
+CONFIG_MPLS=y
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_MPLS_ROUTING=m
+CONFIG_MPROFILE_KERNEL=y
+# CONFIG_MPSC is not set
+CONFIG_MPU3050=m
+CONFIG_MPU3050_I2C=m
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_MRP=m
+CONFIG_MS5611=m
+CONFIG_MS5611_I2C=m
+CONFIG_MS5611_SPI=m
+CONFIG_MS5637=m
+CONFIG_MSCC_OCELOT_SWITCH=m
+CONFIG_MSCC_OCELOT_SWITCH_OCELOT=m
+CONFIG_MSDOS_FS=m
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_MSI_BITMAP_SELFTEST is not set
+CONFIG_MSI_LAPTOP=m
+CONFIG_MSI_WMI=m
+CONFIG_MSM_GCC_8660=m
+CONFIG_MSM_GCC_8916=m
+CONFIG_MSM_GCC_8960=m
+CONFIG_MSM_GCC_8974=m
+CONFIG_MSM_GCC_8994=m
+CONFIG_MSM_GCC_8996=m
+CONFIG_MSM_GCC_8998=m
+# CONFIG_MSM_IOMMU is not set
+CONFIG_MSM_LCC_8960=m
+CONFIG_MSM_MMCC_8960=m
+CONFIG_MSM_MMCC_8974=m
+CONFIG_MSM_MMCC_8996=m
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MS_BLOCK=m
+CONFIG_MT7601U=m
+CONFIG_MT7603E=m
+CONFIG_MT7615E=m
+CONFIG_MT76_CORE=m
+CONFIG_MT76_LEDS=y
+CONFIG_MT76_USB=m
+CONFIG_MT76x02_LIB=m
+CONFIG_MT76x02_USB=m
+CONFIG_MT76x0E=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x0_COMMON=m
+CONFIG_MT76x2E=m
+CONFIG_MT76x2U=m
+CONFIG_MT76x2_COMMON=m
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_AFS_PARTS=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BCM47XXSFLASH=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DATAFLASH_OTP=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_HYPERBUS=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_IMPA7=m
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_LPDDR2_NVM=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MCHP23K256=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND_BRCMNAND=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_DT=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_ECC_SW_BCH=y
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_NAND_FSL_IFC=m
+CONFIG_MTD_NAND_GPIO=m
+CONFIG_MTD_NAND_GPMI_NAND=m
+CONFIG_MTD_NAND_HISI504=m
+CONFIG_MTD_NAND_MARVELL=m
+CONFIG_MTD_NAND_MESON=m
+CONFIG_MTD_NAND_MTK=m
+CONFIG_MTD_NAND_MXC=m
+CONFIG_MTD_NAND_MXIC=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_OMAP2=y
+CONFIG_MTD_NAND_OMAP_BCH=y
+CONFIG_MTD_NAND_OMAP_BCH_BUILD=y
+CONFIG_MTD_NAND_ORION=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_QCOM=m
+CONFIG_MTD_NAND_RICOH=m
+# CONFIG_MTD_NAND_SUNXI is not set
+CONFIG_MTD_NAND_TEGRA=m
+CONFIG_MTD_NAND_TMIO=m
+# CONFIG_MTD_NAND_VF610_NFC is not set
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_GENERIC=m
+CONFIG_MTD_ONENAND_OMAP2=m
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_OOPS=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PHYSMAP_GPIO_ADDR=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_POWERNV_FLASH=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_SCx200_DOCFLASH=m
+CONFIG_MTD_SHARPSL_PARTS=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SPI_NAND=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_MTD_UBI_GLUEBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTK_CMDQ=m
+CONFIG_MTK_CMDQ_MBOX=m
+CONFIG_MTK_CQDMA=m
+# CONFIG_MTK_EFUSE is not set
+CONFIG_MTK_HSDMA=m
+CONFIG_MTK_INFRACFG=y
+# CONFIG_MTK_IOMMU is not set
+# CONFIG_MTK_IOMMU_V1 is not set
+CONFIG_MTK_PMIC_WRAP=m
+CONFIG_MTK_SCPSYS=y
+CONFIG_MTK_SMI=y
+CONFIG_MTK_THERMAL=m
+CONFIG_MTK_TIMER=y
+CONFIG_MTK_UART_APDMA=m
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_MULTIPLEXER=m
+CONFIG_MULTIUSER=y
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_MUX_ADG792A=m
+CONFIG_MUX_ADGS1408=m
+CONFIG_MUX_GPIO=m
+CONFIG_MUX_MMIO=m
+CONFIG_MV643XX_ETH=m
+CONFIG_MVEBU_CLK_COMMON=y
+CONFIG_MVEBU_CLK_COREDIV=y
+CONFIG_MVEBU_CLK_CPU=y
+CONFIG_MVEBU_DEVBUS=y
+CONFIG_MVEBU_GICP=y
+CONFIG_MVEBU_ICU=y
+CONFIG_MVEBU_MBUS=y
+CONFIG_MVEBU_ODMI=y
+CONFIG_MVEBU_PIC=y
+CONFIG_MVEBU_SEI=y
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+CONFIG_MVMDIO=m
+CONFIG_MVNETA=m
+# CONFIG_MVNETA_BM_ENABLE is not set
+CONFIG_MVPP2=m
+CONFIG_MV_XOR=y
+CONFIG_MV_XOR_V2=y
+CONFIG_MWAVE=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MWINCHIPC6 is not set
+CONFIG_MWL8K=m
+CONFIG_MX3_IPU=y
+CONFIG_MX3_IPU_IRQS=4
+CONFIG_MXC4005=m
+CONFIG_MXC6255=m
+CONFIG_MXC_CLK=y
+CONFIG_MXC_CLK_SCU=y
+CONFIG_MXC_TZIC=y
+CONFIG_MXM_WMI=m
+CONFIG_MXS_DMA=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_N2=m
+CONFIG_NAMESPACES=y
+CONFIG_NATIONAL_PHY=m
+CONFIG_NATSEMI=m
+CONFIG_NAU7802=m
+CONFIG_NBPFAXI_DMA=m
+CONFIG_NCSI_OEM_CMD_GET_MAC=y
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_ND_CLAIM=y
+CONFIG_ND_PFN=m
+CONFIG_NE2000=m
+CONFIG_NE2K_PCI=m
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEON=y
+CONFIG_NET=y
+CONFIG_NET5501=y
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETDEVICES=y
+CONFIG_NETDEVSIM=m
+# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_NETLINK_OSF=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETIUCV=m
+CONFIG_NETLABEL=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_NETPOLL=y
+CONFIG_NETROM=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_RDMA=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_CT=m
+CONFIG_NET_ACT_CTINFO=m
+CONFIG_NET_ACT_GACT=m
+# CONFIG_NET_ACT_IFE is not set
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_MPLS=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_CALXEDA_XGMAC=m
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CORE=y
+CONFIG_NET_DEVLINK=y
+CONFIG_NET_DROP_MONITOR=y
+CONFIG_NET_DSA=m
+CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_NET_DSA_LANTIQ_GSWIP=m
+# CONFIG_NET_DSA_LOOP is not set
+CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
+CONFIG_NET_DSA_MT7530=m
+CONFIG_NET_DSA_MV88E6060=m
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_MV88E6XXX_PTP=y
+CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_REALTEK_SMI=m
+CONFIG_NET_DSA_SJA1105=m
+CONFIG_NET_DSA_SJA1105_PTP=y
+CONFIG_NET_DSA_SJA1105_TAS=y
+CONFIG_NET_DSA_SMSC_LAN9303=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
+CONFIG_NET_DSA_TAG_8021Q=m
+CONFIG_NET_DSA_TAG_BRCM=m
+CONFIG_NET_DSA_TAG_BRCM_COMMON=m
+CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
+CONFIG_NET_DSA_TAG_DSA=m
+CONFIG_NET_DSA_TAG_EDSA=m
+CONFIG_NET_DSA_TAG_GSWIP=m
+CONFIG_NET_DSA_TAG_KSZ=m
+CONFIG_NET_DSA_TAG_LAN9303=m
+CONFIG_NET_DSA_TAG_MTK=m
+CONFIG_NET_DSA_TAG_QCA=m
+CONFIG_NET_DSA_TAG_SJA1105=m
+CONFIG_NET_DSA_TAG_TRAILER=m
+CONFIG_NET_DSA_VITESSE_VSC73XX=m
+CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m
+CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m
+CONFIG_NET_EGRESS=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_EMATCH_IPT=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_FAILOVER=m
+CONFIG_NET_FC=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_NET_IFE=m
+CONFIG_NET_INGRESS=y
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPVTI=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_NET_NCSI=y
+CONFIG_NET_NS=y
+CONFIG_NET_NSH=m
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_REDIRECT=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_NET_SB1000=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_ETF=m
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_SKBPRIO=m
+CONFIG_NET_SCH_TAPRIO=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SOCK_MSG=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TULIP=y
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALLWINNER=y
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_AURORA=y
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_NET_VENDOR_CORTINA=y
+CONFIG_NET_VENDOR_FARADAY=y
+CONFIG_NET_VENDOR_FREESCALE=y
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_NET_VENDOR_HISILICON=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_IBM=y
+# CONFIG_NET_VENDOR_MEDIATEK is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_NET_VENDOR_SYNOPSYS=y
+CONFIG_NET_VENDOR_XILINX=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_NET_VRF=m
+CONFIG_NET_XGENE=m
+CONFIG_NET_XGENE_V2=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_FDP=m
+CONFIG_NFC_FDP_I2C=m
+CONFIG_NFC_HCI=m
+CONFIG_NFC_MEI_PHY=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MICROREAD_MEI=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_I2C=m
+CONFIG_NFC_MRVL_SPI=m
+CONFIG_NFC_MRVL_UART=m
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_NCI_SPI=m
+CONFIG_NFC_NCI_UART=m
+CONFIG_NFC_NXP_NCI=m
+CONFIG_NFC_NXP_NCI_I2C=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_PN533_I2C=m
+CONFIG_NFC_PN533_USB=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_PN544_MEI=m
+CONFIG_NFC_PORT100=m
+CONFIG_NFC_S3FWRN5=m
+CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_NFC_SHDLC=y
+CONFIG_NFC_SIM=m
+CONFIG_NFC_ST21NFCA=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST95HF=m
+CONFIG_NFC_ST_NCI=m
+CONFIG_NFC_ST_NCI_I2C=m
+CONFIG_NFC_ST_NCI_SPI=m
+CONFIG_NFC_TRF7970A=m
+# CONFIG_NFIT_SECURITY_DEBUG is not set
+CONFIG_NFP_APP_ABM_NIC=y
+CONFIG_NFP_APP_FLOWER=y
+# CONFIG_NFP_DEBUG is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_FLEXFILELAYOUT=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_SCSILAYOUT=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_DEBUG=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_2=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FIB=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_XFRM=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_BRIDGE=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_DUP_IPV6=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_LOG_NETDEV=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_MASQUERADE=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_REDIRECT=y
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NF_TABLES_SET=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NI65=m
+CONFIG_NI903X_WDT=m
+CONFIG_NIC7018_WDT=m
+CONFIG_NILFS2_FS=m
+CONFIG_NIU=m
+CONFIG_NI_XGE_MANAGEMENT_ENET=m
+# CONFIG_NL80211_TESTMODE is not set
+CONFIG_NLATTR=y
+CONFIG_NLMON=m
+CONFIG_NLS=y
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+CONFIG_NMI_IPI=y
+CONFIG_NOA1305=m
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NOHIGHMEM is not set
+CONFIG_NOKIA_MODEM=m
+CONFIG_NONSTATIC_KERNEL=y
+CONFIG_NOP_TRACER=y
+CONFIG_NORTEL_HERMES=m
+CONFIG_NOTIFIER_ERROR_INJECTION=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
+CONFIG_NOUVEAU_PLATFORM_DRIVER=y
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_NO_HZ_FULL is not set
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NO_IOPORT_MAP=y
+CONFIG_NPCM7XX_KCS_IPMI_BMC=m
+CONFIG_NPCM7XX_TIMER=y
+CONFIG_NPCM7XX_WATCHDOG=y
+CONFIG_NPCM_ADC=m
+CONFIG_NR_IRQS=512
+CONFIG_NS83820=m
+CONFIG_NSC_GPIO=m
+# CONFIG_NTB_AMD is not set
+CONFIG_NTB_IDT=m
+CONFIG_NTB_INTEL=m
+CONFIG_NTB_MSI=y
+# CONFIG_NTB_MSI_TEST is not set
+CONFIG_NTB_NETDEV=m
+CONFIG_NTB_PERF=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_SWITCHTEC=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_FS=m
+CONFIG_NULL_TTY=m
+CONFIG_NUMA=y
+CONFIG_NUMA_BALANCING=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NVDIMM_DAX=y
+CONFIG_NVDIMM_KEYS=y
+CONFIG_NVDIMM_PFN=y
+CONFIG_NVEC_PAZ00=m
+CONFIG_NVEC_POWER=m
+CONFIG_NVM=y
+CONFIG_NVMEM_BCM_OCOTP=m
+CONFIG_NVMEM_IMX_IIM=m
+CONFIG_NVMEM_IMX_OCOTP=m
+CONFIG_NVMEM_IMX_OCOTP_SCU=m
+CONFIG_NVMEM_REBOOT_MODE=m
+CONFIG_NVMEM_SNVS_LPGPR=m
+CONFIG_NVMEM_SUNXI_SID=m
+CONFIG_NVMEM_SYSFS=y
+# CONFIG_NVMEM_VF610_OCOTP is not set
+CONFIG_NVMEM_ZYNQMP=y
+CONFIG_NVME_CORE=m
+CONFIG_NVME_FABRICS=m
+CONFIG_NVME_FC=m
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_FC=m
+# CONFIG_NVME_TARGET_FCLOOP is not set
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_TCP=m
+CONFIG_NVME_TCP=m
+CONFIG_NVM_PBLK=m
+# CONFIG_NVM_PBLK_DEBUG is not set
+CONFIG_NV_TCO=m
+CONFIG_NXP_TJA11XX_PHY=m
+CONFIG_N_HDLC=m
+# CONFIG_OABI_COMPAT is not set
+CONFIG_OBJAGG=m
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCTEONTX2_AF=m
+CONFIG_OCTEONTX2_MBOX=m
+CONFIG_OCXL=m
+CONFIG_OCXL_BASE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_DMA_DEFAULT_COHERENT=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_FPGA_REGION=m
+CONFIG_OF_GPIO=y
+CONFIG_OF_IOMMU=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_NET=y
+CONFIG_OF_NUMA=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_PMEM=m
+# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OID_REGISTRY=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OMAP2PLUS_MBOX=m
+CONFIG_OMAP2_VRFB=y
+# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
+# CONFIG_OMAP3_THERMAL is not set
+CONFIG_OMAP4_THERMAL=y
+CONFIG_OMAP5_ERRATA_801819=y
+CONFIG_OMAP_32K_TIMER=y
+CONFIG_OMAP_CONTROL_PHY=m
+CONFIG_OMAP_DM_TIMER=y
+CONFIG_OMAP_GPMC=y
+# CONFIG_OMAP_GPMC_DEBUG is not set
+CONFIG_OMAP_INTERCONNECT=y
+CONFIG_OMAP_INTERCONNECT_BARRIER=y
+CONFIG_OMAP_IOMMU=y
+# CONFIG_OMAP_IOMMU_DEBUG is not set
+CONFIG_OMAP_IRQCHIP=y
+CONFIG_OMAP_MBOX_KFIFO_SIZE=256
+CONFIG_OMAP_OCP2SCP=m
+CONFIG_OMAP_PACKAGE_CBB=y
+CONFIG_OMAP_REMOTEPROC=m
+CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_SSI=m
+CONFIG_OMAP_USB2=m
+CONFIG_OMAP_WATCHDOG=m
+# CONFIG_OPAL_CORE is not set
+CONFIG_OPAL_PRD=m
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_OPT3001=m
+CONFIG_OPTEE=m
+CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
+CONFIG_OPTIMIZE_INLINING=y
+CONFIG_OPTPROBES=y
+CONFIG_ORANGEFS_FS=m
+CONFIG_ORINOCO_USB=m
+CONFIG_ORION_IRQCHIP=y
+CONFIG_ORION_TIMER=y
+CONFIG_ORION_WATCHDOG=m
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+CONFIG_OWL_DMA=m
+CONFIG_OWL_PM_DOMAINS=y
+CONFIG_OWL_PM_DOMAINS_HELPER=y
+CONFIG_OWL_TIMER=y
+CONFIG_P54_COMMON=m
+CONFIG_P54_LEDS=y
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
+CONFIG_P54_USB=m
+CONFIG_PA12203001=m
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=m
+CONFIG_PACK_STACK=y
+CONFIG_PADATA=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_PAGE_OWNER is not set
+CONFIG_PAGE_POISONING=y
+CONFIG_PAGE_POISONING_NO_SANITY=y
+CONFIG_PAGE_POISONING_ZERO=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_TABLE_ISOLATION=y
+CONFIG_PALMAS_GPADC=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_PANEL=m
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANTHERLORD_FF=y
+CONFIG_PAPR_SCM=m
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_PARAVIRT_XXL=y
+CONFIG_PARIDE=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARMAN=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PARPORT_PANEL=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_PARTITION_PERCPU=y
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IMX=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OF_PLATFORM=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_WINBOND_VLB=m
+CONFIG_PC300TOO=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_PC87413_WDT=m
+CONFIG_PCC=y
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_PCENGINES_APU2=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_PCH_CAN=m
+CONFIG_PCH_DMA=m
+CONFIG_PCH_GBE=m
+CONFIG_PCH_PHUB=m
+CONFIG_PCI=y
+CONFIG_PCI200SYN=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+CONFIG_PCIE_AL=y
+CONFIG_PCIE_ALTERA=y
+CONFIG_PCIE_ALTERA_MSI=y
+CONFIG_PCIE_ARMADA_8K=y
+# CONFIG_PCIE_BW is not set
+CONFIG_PCIE_CADENCE=y
+CONFIG_PCIE_CADENCE_EP=y
+CONFIG_PCIE_CADENCE_HOST=y
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_EP=y
+CONFIG_PCIE_DW_HOST=y
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW_PLAT_EP=y
+CONFIG_PCIE_DW_PLAT_HOST=y
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIE_HISI_STB=y
+CONFIG_PCIE_IPROC=m
+CONFIG_PCIE_IPROC_MSI=y
+CONFIG_PCIE_IPROC_PLATFORM=m
+CONFIG_PCIE_KIRIN=y
+CONFIG_PCIE_MEDIATEK=y
+CONFIG_PCIE_MOBIVEIL=y
+CONFIG_PCIE_PME=y
+CONFIG_PCIE_PTM=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCIE_RCAR=y
+CONFIG_PCIE_ROCKCHIP=y
+CONFIG_PCIE_ROCKCHIP_EP=y
+CONFIG_PCIE_ROCKCHIP_HOST=m
+CONFIG_PCIE_UNIPHIER=y
+CONFIG_PCIE_XILINX=y
+CONFIG_PCIE_XILINX_NWL=y
+CONFIG_PCI_AARDVARK=y
+CONFIG_PCI_ATMEL=m
+CONFIG_PCI_ATS=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_BRIDGE_EMUL=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_DRA7XX=y
+CONFIG_PCI_DRA7XX_EP=y
+CONFIG_PCI_DRA7XX_HOST=y
+CONFIG_PCI_ECAM=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_PCI_EPF_TEST is not set
+CONFIG_PCI_FTPCI100=y
+CONFIG_PCI_GOANY=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+CONFIG_PCI_HISI=y
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_HYPERV=m
+CONFIG_PCI_HYPERV_INTERFACE=m
+CONFIG_PCI_IMX6=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_KEYSTONE=y
+CONFIG_PCI_KEYSTONE_EP=y
+CONFIG_PCI_KEYSTONE_HOST=y
+CONFIG_PCI_LABEL=y
+CONFIG_PCI_LAYERSCAPE_EP=y
+CONFIG_PCI_LOCKLESS_CONFIG=y
+# CONFIG_PCI_MESON is not set
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_MVEBU=y
+CONFIG_PCI_NR_FUNCTIONS=512
+# CONFIG_PCI_P2PDMA is not set
+CONFIG_PCI_PF_STUB=m
+CONFIG_PCI_RCAR_GEN2=y
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_PCI_SW_SWITCHTEC=m
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCI_TEGRA=y
+CONFIG_PCI_V3_SEMI=y
+CONFIG_PCI_XEN=y
+CONFIG_PCI_XGENE=y
+CONFIG_PCI_XGENE_MSI=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCNET32=m
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PCWATCHDOG=m
+CONFIG_PD6729=m
+CONFIG_PDA_POWER=m
+CONFIG_PDC_ADMA=m
+CONFIG_PEAQ_WMI=m
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_PERCPU_TEST is not set
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_EVENTS_AMD_POWER is not set
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_PFAULT=y
+CONFIG_PGSTE=y
+CONFIG_PHYLINK=m
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PHY_AM654_SERDES=m
+CONFIG_PHY_BCM_NS_USB2=m
+CONFIG_PHY_BCM_NS_USB3=m
+CONFIG_PHY_BCM_SR_PCIE=m
+CONFIG_PHY_BCM_SR_USB=m
+CONFIG_PHY_BERLIN_SATA=m
+CONFIG_PHY_BERLIN_USB=m
+CONFIG_PHY_BRCM_SATA=y
+CONFIG_PHY_BRCM_USB=m
+CONFIG_PHY_CADENCE_DP=m
+CONFIG_PHY_CADENCE_DPHY=m
+CONFIG_PHY_CADENCE_SIERRA=m
+CONFIG_PHY_CPCAP_USB=m
+CONFIG_PHY_DM816X_USB=m
+CONFIG_PHY_EXYNOS5250_SATA=y
+CONFIG_PHY_EXYNOS5250_USB2=y
+CONFIG_PHY_EXYNOS5_USBDRD=m
+CONFIG_PHY_EXYNOS_DP_VIDEO=y
+CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
+CONFIG_PHY_EXYNOS_PCIE=y
+CONFIG_PHY_FSL_IMX8MQ_USB=m
+CONFIG_PHY_HI3660_USB=m
+CONFIG_PHY_HI6220_USB=m
+CONFIG_PHY_HISI_INNO_USB2=m
+CONFIG_PHY_HISTB_COMBPHY=m
+CONFIG_PHY_HIX5HD2_SATA=m
+CONFIG_PHY_MAPPHONE_MDM6600=m
+CONFIG_PHY_MESON8B_USB2=m
+CONFIG_PHY_MESON_G12A_USB2=m
+CONFIG_PHY_MESON_G12A_USB3_PCIE=m
+CONFIG_PHY_MESON_GXL_USB2=m
+CONFIG_PHY_MESON_GXL_USB3=m
+CONFIG_PHY_MIXEL_MIPI_DPHY=m
+CONFIG_PHY_MTK_TPHY=m
+CONFIG_PHY_MTK_UFS=m
+CONFIG_PHY_MTK_XSPHY=m
+CONFIG_PHY_MVEBU_A3700_COMPHY=m
+CONFIG_PHY_MVEBU_A3700_UTMI=m
+CONFIG_PHY_MVEBU_A38X_COMPHY=m
+CONFIG_PHY_MVEBU_CP110_COMPHY=m
+CONFIG_PHY_MVEBU_SATA=y
+CONFIG_PHY_NS2_PCIE=y
+CONFIG_PHY_NS2_USB_DRD=m
+CONFIG_PHY_OCELOT_SERDES=m
+CONFIG_PHY_QCOM_APQ8064_SATA=m
+CONFIG_PHY_QCOM_IPQ806X_SATA=m
+CONFIG_PHY_QCOM_PCIE2=m
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
+CONFIG_PHY_QCOM_UFS=m
+CONFIG_PHY_QCOM_UFS_14NM=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_PHY_QCOM_USB_HSIC=m
+CONFIG_PHY_RCAR_GEN2=m
+CONFIG_PHY_RCAR_GEN3_PCIE=m
+CONFIG_PHY_RCAR_GEN3_USB2=m
+CONFIG_PHY_RCAR_GEN3_USB3=m
+CONFIG_PHY_ROCKCHIP_DP=m
+CONFIG_PHY_ROCKCHIP_EMMC=m
+CONFIG_PHY_ROCKCHIP_INNO_HDMI=m
+CONFIG_PHY_ROCKCHIP_INNO_USB2=m
+CONFIG_PHY_ROCKCHIP_PCIE=m
+CONFIG_PHY_ROCKCHIP_TYPEC=m
+CONFIG_PHY_ROCKCHIP_USB=m
+CONFIG_PHY_SAMSUNG_USB2=m
+CONFIG_PHY_SUN4I_USB=m
+CONFIG_PHY_SUN6I_MIPI_DPHY=m
+# CONFIG_PHY_SUN9I_USB is not set
+CONFIG_PHY_TEGRA_XUSB=m
+CONFIG_PHY_TI_GMII_SEL=y
+CONFIG_PHY_TUSB1210=m
+CONFIG_PHY_UNIPHIER_PCIE=m
+CONFIG_PHY_UNIPHIER_USB2=m
+CONFIG_PHY_UNIPHIER_USB3=m
+CONFIG_PHY_XGENE=y
+CONFIG_PI433=m
+# CONFIG_PID_IN_CONTEXTIDR is not set
+CONFIG_PID_NS=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_AMD=y
+CONFIG_PINCTRL_APQ8064=m
+CONFIG_PINCTRL_APQ8084=m
+CONFIG_PINCTRL_ARMADA_370=y
+CONFIG_PINCTRL_ARMADA_375=y
+CONFIG_PINCTRL_ARMADA_37XX=y
+CONFIG_PINCTRL_ARMADA_38X=y
+CONFIG_PINCTRL_ARMADA_39X=y
+CONFIG_PINCTRL_ARMADA_AP806=y
+CONFIG_PINCTRL_ARMADA_CP110=y
+CONFIG_PINCTRL_ARMADA_XP=y
+CONFIG_PINCTRL_AS370=y
+CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_ASPEED=y
+CONFIG_PINCTRL_ASPEED_G6=y
+CONFIG_PINCTRL_AXP209=m
+CONFIG_PINCTRL_BAYTRAIL=y
+CONFIG_PINCTRL_BCM2835=y
+CONFIG_PINCTRL_BERLIN=y
+CONFIG_PINCTRL_BERLIN_BG2=y
+CONFIG_PINCTRL_BERLIN_BG2CD=y
+CONFIG_PINCTRL_BERLIN_BG2Q=y
+CONFIG_PINCTRL_BERLIN_BG4CT=y
+CONFIG_PINCTRL_BM1880=y
+CONFIG_PINCTRL_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_CEDARFORK=m
+CONFIG_PINCTRL_CS47L15=y
+CONFIG_PINCTRL_CS47L35=y
+CONFIG_PINCTRL_CS47L85=y
+CONFIG_PINCTRL_CS47L90=y
+CONFIG_PINCTRL_CS47L92=y
+CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_DOVE=y
+CONFIG_PINCTRL_EXYNOS=y
+CONFIG_PINCTRL_EXYNOS_ARM=y
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_IMX=y
+CONFIG_PINCTRL_IMX50=y
+CONFIG_PINCTRL_IMX51=y
+CONFIG_PINCTRL_IMX6Q=y
+CONFIG_PINCTRL_IMX6SL=y
+CONFIG_PINCTRL_IMX6SLL=y
+CONFIG_PINCTRL_IMX6SX=y
+CONFIG_PINCTRL_IMX6UL=y
+CONFIG_PINCTRL_IMX7D=y
+CONFIG_PINCTRL_IMX7ULP=y
+CONFIG_PINCTRL_IMX8MM=y
+CONFIG_PINCTRL_IMX8MN=y
+CONFIG_PINCTRL_IMX8MQ=y
+CONFIG_PINCTRL_IMX8QM=y
+CONFIG_PINCTRL_IMX8QXP=y
+CONFIG_PINCTRL_IMX_SCU=y
+CONFIG_PINCTRL_INTEL=m
+CONFIG_PINCTRL_IPQ4019=m
+CONFIG_PINCTRL_IPQ8064=m
+CONFIG_PINCTRL_IPQ8074=m
+CONFIG_PINCTRL_IPROC_GPIO=y
+CONFIG_PINCTRL_LEWISBURG=m
+CONFIG_PINCTRL_LOCHNAGAR=m
+CONFIG_PINCTRL_MADERA=m
+CONFIG_PINCTRL_MAX77620=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_PINCTRL_MDM9615=m
+# CONFIG_PINCTRL_MERRIFIELD is not set
+CONFIG_PINCTRL_MESON=y
+CONFIG_PINCTRL_MESON8=y
+CONFIG_PINCTRL_MESON8B=y
+CONFIG_PINCTRL_MESON8_PMX=y
+CONFIG_PINCTRL_MESON_AXG=y
+CONFIG_PINCTRL_MESON_AXG_PMX=y
+CONFIG_PINCTRL_MESON_G12A=y
+CONFIG_PINCTRL_MESON_GXBB=y
+CONFIG_PINCTRL_MESON_GXL=y
+CONFIG_PINCTRL_MSM=y
+CONFIG_PINCTRL_MSM8660=m
+CONFIG_PINCTRL_MSM8916=m
+CONFIG_PINCTRL_MSM8960=m
+CONFIG_PINCTRL_MSM8994=m
+CONFIG_PINCTRL_MSM8996=m
+CONFIG_PINCTRL_MSM8998=m
+CONFIG_PINCTRL_MSM8X74=m
+CONFIG_PINCTRL_MT2701=y
+CONFIG_PINCTRL_MT2712=y
+CONFIG_PINCTRL_MT6397=y
+CONFIG_PINCTRL_MT6765=y
+CONFIG_PINCTRL_MT6797=y
+CONFIG_PINCTRL_MT7622=y
+CONFIG_PINCTRL_MT7623=y
+CONFIG_PINCTRL_MT7629=y
+CONFIG_PINCTRL_MT8127=y
+CONFIG_PINCTRL_MT8135=y
+CONFIG_PINCTRL_MT8173=y
+CONFIG_PINCTRL_MT8183=y
+CONFIG_PINCTRL_MT8516=y
+CONFIG_PINCTRL_MTK=y
+CONFIG_PINCTRL_MTK_MOORE=y
+CONFIG_PINCTRL_MTK_PARIS=y
+CONFIG_PINCTRL_MVEBU=y
+CONFIG_PINCTRL_NPCM7XX=y
+CONFIG_PINCTRL_NS2_MUX=y
+CONFIG_PINCTRL_OCELOT=y
+CONFIG_PINCTRL_OWL=y
+CONFIG_PINCTRL_PALMAS=y
+CONFIG_PINCTRL_PFC_EMEV2=y
+CONFIG_PINCTRL_PFC_R8A7740=y
+CONFIG_PINCTRL_PFC_R8A7743=y
+CONFIG_PINCTRL_PFC_R8A7744=y
+CONFIG_PINCTRL_PFC_R8A7745=y
+CONFIG_PINCTRL_PFC_R8A77470=y
+CONFIG_PINCTRL_PFC_R8A774A1=y
+CONFIG_PINCTRL_PFC_R8A774C0=y
+CONFIG_PINCTRL_PFC_R8A7778=y
+CONFIG_PINCTRL_PFC_R8A7779=y
+CONFIG_PINCTRL_PFC_R8A7790=y
+CONFIG_PINCTRL_PFC_R8A7791=y
+CONFIG_PINCTRL_PFC_R8A7792=y
+CONFIG_PINCTRL_PFC_R8A7793=y
+CONFIG_PINCTRL_PFC_R8A7794=y
+CONFIG_PINCTRL_PFC_R8A7795=y
+CONFIG_PINCTRL_PFC_R8A7796=y
+CONFIG_PINCTRL_PFC_R8A77965=y
+CONFIG_PINCTRL_PFC_R8A77970=y
+CONFIG_PINCTRL_PFC_R8A77980=y
+CONFIG_PINCTRL_PFC_R8A77990=y
+CONFIG_PINCTRL_PFC_R8A77995=y
+CONFIG_PINCTRL_PFC_SH73A0=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=m
+CONFIG_PINCTRL_QCOM_SSBI_PMIC=m
+CONFIG_PINCTRL_QCS404=m
+CONFIG_PINCTRL_QDF2XXX=m
+CONFIG_PINCTRL_RK805=m
+CONFIG_PINCTRL_ROCKCHIP=y
+CONFIG_PINCTRL_RZA1=y
+CONFIG_PINCTRL_RZA2=y
+CONFIG_PINCTRL_RZN1=y
+CONFIG_PINCTRL_S700=y
+CONFIG_PINCTRL_S900=y
+CONFIG_PINCTRL_SAMSUNG=y
+CONFIG_PINCTRL_SC7180=m
+CONFIG_PINCTRL_SDM660=m
+CONFIG_PINCTRL_SDM845=m
+CONFIG_PINCTRL_SH_PFC=y
+CONFIG_PINCTRL_SH_PFC_GPIO=y
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_SM8150=m
+CONFIG_PINCTRL_SPRD=y
+CONFIG_PINCTRL_SPRD_SC9860=y
+CONFIG_PINCTRL_STMFX=m
+CONFIG_PINCTRL_SUN4I_A10=y
+CONFIG_PINCTRL_SUN50I_A64=y
+CONFIG_PINCTRL_SUN50I_A64_R=y
+CONFIG_PINCTRL_SUN50I_H5=y
+CONFIG_PINCTRL_SUN50I_H6=y
+CONFIG_PINCTRL_SUN50I_H6_R=y
+CONFIG_PINCTRL_SUN5I=y
+CONFIG_PINCTRL_SUN6I_A31=y
+CONFIG_PINCTRL_SUN6I_A31_R=y
+CONFIG_PINCTRL_SUN8I_A23=y
+CONFIG_PINCTRL_SUN8I_A23_R=y
+CONFIG_PINCTRL_SUN8I_A33=y
+CONFIG_PINCTRL_SUN8I_A83T=y
+CONFIG_PINCTRL_SUN8I_A83T_R=y
+CONFIG_PINCTRL_SUN8I_H3=y
+CONFIG_PINCTRL_SUN8I_H3_R=y
+CONFIG_PINCTRL_SUN8I_V3S=y
+CONFIG_PINCTRL_SUN9I_A80=y
+CONFIG_PINCTRL_SUN9I_A80_R=y
+CONFIG_PINCTRL_SUNRISEPOINT=m
+CONFIG_PINCTRL_SUNXI=y
+CONFIG_PINCTRL_SX150X=y
+CONFIG_PINCTRL_TEGRA=y
+CONFIG_PINCTRL_TEGRA114=y
+CONFIG_PINCTRL_TEGRA124=y
+CONFIG_PINCTRL_TEGRA20=y
+CONFIG_PINCTRL_TEGRA30=y
+CONFIG_PINCTRL_TEGRA_XUSB=y
+CONFIG_PINCTRL_TI_IODELAY=y
+CONFIG_PINCTRL_UNIPHIER=y
+CONFIG_PINCTRL_UNIPHIER_LD11=y
+CONFIG_PINCTRL_UNIPHIER_LD20=y
+CONFIG_PINCTRL_UNIPHIER_LD4=y
+CONFIG_PINCTRL_UNIPHIER_LD6B=y
+CONFIG_PINCTRL_UNIPHIER_PRO4=y
+CONFIG_PINCTRL_UNIPHIER_PRO5=y
+CONFIG_PINCTRL_UNIPHIER_PXS2=y
+CONFIG_PINCTRL_UNIPHIER_PXS3=y
+CONFIG_PINCTRL_UNIPHIER_SLD8=y
+CONFIG_PINCTRL_VF610=y
+CONFIG_PINMUX=y
+CONFIG_PJ4B_ERRATA_4742=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+CONFIG_PKCS7_TEST_KEY=m
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PKEY=m
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_PL310_ERRATA_727915=y
+CONFIG_PL310_ERRATA_753970=y
+CONFIG_PL310_ERRATA_769419=y
+CONFIG_PL320_MBOX=y
+CONFIG_PL330_DMA=m
+CONFIG_PL353_SMC=m
+CONFIG_PLATFORM_MHU=m
+CONFIG_PLATFORM_SI4713=m
+CONFIG_PLAT_ORION=y
+CONFIG_PLAT_SAMSUNG=y
+# CONFIG_PLAT_SPEAR is not set
+CONFIG_PLAT_VERSATILE=y
+CONFIG_PLIP=m
+CONFIG_PLUGIN_HOSTCC=""
+CONFIG_PLX_HERMES=m
+CONFIG_PM8916_WATCHDOG=m
+CONFIG_PMBUS=m
+CONFIG_PMC_ATOM=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_PMS7003=m
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_AUTOSLEEP is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_NOTIFIER_ERROR_INJECT=m
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_DEBUG=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP_SMP_NONZERO_CPU=y
+CONFIG_PM_STD_PARTITION=""
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_GC=y
+CONFIG_PM_WAKELOCKS_LIMIT=100
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_PNP=y
+CONFIG_PNPACPI=y
+CONFIG_PNPBIOS=y
+CONFIG_PNPBIOS_PROC_FS=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POSIX_TIMERS=y
+# CONFIG_POWER7_CPU is not set
+# CONFIG_POWER8_CPU is not set
+# CONFIG_POWER9_CPU is not set
+CONFIG_POWERNV_CPUFREQ=y
+CONFIG_POWERNV_CPUIDLE=y
+CONFIG_POWERNV_OP_PANEL=m
+CONFIG_POWER_AVS_OMAP=y
+CONFIG_POWER_AVS_OMAP_CLASS3=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_AS3722=y
+CONFIG_POWER_RESET_AXXIA=y
+CONFIG_POWER_RESET_BRCMKONA=y
+# CONFIG_POWER_RESET_BRCMSTB is not set
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_POWER_RESET_HISI=y
+CONFIG_POWER_RESET_LTC2952=y
+CONFIG_POWER_RESET_MSM=y
+CONFIG_POWER_RESET_QCOM_PON=m
+# CONFIG_POWER_RESET_QNAP is not set
+CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_RESET_RMOBILE=m
+CONFIG_POWER_RESET_SC27XX=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_RESET_VERSATILE=y
+CONFIG_POWER_RESET_VEXPRESS=y
+# CONFIG_POWER_RESET_XGENE is not set
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_PPC=y
+CONFIG_PPC64=y
+CONFIG_PPC64_BOOT_WRAPPER=y
+CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_PPC_4K_PAGES is not set
+CONFIG_PPC_64K_PAGES=y
+CONFIG_PPC_BARRIER_NOSPEC=y
+# CONFIG_PPC_BOOK3E_64 is not set
+CONFIG_PPC_BOOK3S=y
+CONFIG_PPC_BOOK3S_64=y
+CONFIG_PPC_COPRO_BASE=y
+CONFIG_PPC_DAWR=y
+CONFIG_PPC_DENORMALISATION=y
+# CONFIG_PPC_DISABLE_WERROR is not set
+CONFIG_PPC_DOORBELL=y
+CONFIG_PPC_DT_CPU_FTRS=y
+# CONFIG_PPC_EARLY_DEBUG is not set
+# CONFIG_PPC_EMULATED_STATS is not set
+# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
+# CONFIG_PPC_FAST_ENDIAN_SWITCH is not set
+CONFIG_PPC_FPU=y
+CONFIG_PPC_HAVE_KUAP=y
+CONFIG_PPC_HAVE_KUEP=y
+CONFIG_PPC_HAVE_PMU_SUPPORT=y
+CONFIG_PPC_I8259=y
+CONFIG_PPC_ICP_HV=y
+CONFIG_PPC_ICP_NATIVE=y
+CONFIG_PPC_ICS_RTAS=y
+CONFIG_PPC_INDIRECT_PIO=y
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
+CONFIG_PPC_KUAP=y
+# CONFIG_PPC_KUAP_DEBUG is not set
+CONFIG_PPC_KUEP=y
+CONFIG_PPC_MEMTRACE=y
+# CONFIG_PPC_MEM_KEYS is not set
+CONFIG_PPC_MM_SLICES=y
+CONFIG_PPC_MSI_BITMAP=y
+CONFIG_PPC_NATIVE=y
+CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
+CONFIG_PPC_P7_NAP=y
+CONFIG_PPC_PAGE_SHIFT=16
+CONFIG_PPC_PERF_CTRS=y
+CONFIG_PPC_POWERNV=y
+CONFIG_PPC_PSERIES=y
+# CONFIG_PPC_PTDUMP is not set
+CONFIG_PPC_RADIX_MMU=y
+CONFIG_PPC_RADIX_MMU_DEFAULT=y
+CONFIG_PPC_RTAS=y
+CONFIG_PPC_RTAS_DAEMON=y
+CONFIG_PPC_RTAS_FILTER=y
+CONFIG_PPC_SECURE_BOOT=y
+CONFIG_PPC_SECVAR_SYSFS=y
+CONFIG_PPC_SMLPAR=y
+CONFIG_PPC_SMP_MUXED_IPI=y
+CONFIG_PPC_SPLPAR=y
+CONFIG_PPC_SUBPAGE_PROT=y
+CONFIG_PPC_SVM=y
+CONFIG_PPC_TRANSACTIONAL_MEM=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_PPC_VAS=y
+CONFIG_PPC_WATCHDOG=y
+CONFIG_PPC_WERROR=y
+CONFIG_PPC_XICS=y
+CONFIG_PPC_XIVE=y
+CONFIG_PPC_XIVE_NATIVE=y
+CONFIG_PPC_XIVE_SPAPR=y
+CONFIG_PPDEV=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_SYNC_TTY=m
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_PARPORT=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_PPTP=m
+CONFIG_PREEMPTION=y
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_PREEMPTIRQ_EVENTS is not set
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_PRINTER=m
+CONFIG_PRINTK=y
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_PRINTK_NMI=y
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRINT_STACK_DEPTH=64
+CONFIG_PRISM2_USB=m
+# CONFIG_PRISM54 is not set
+CONFIG_PROBE_EVENTS=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_PROC_EVENTS=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_PID_ARCH_STATUS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_THERMAL_MMIO_RAPL=y
+CONFIG_PROC_VMCORE=y
+CONFIG_PROC_VMCORE_DEVICE_DUMP=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+CONFIG_PROFILING=y
+CONFIG_PROTECTED_VIRTUALIZATION_GUEST=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+CONFIG_PSAMPLE=m
+CONFIG_PSERIES_CPUIDLE=y
+CONFIG_PSERIES_ENERGY=m
+CONFIG_PSI=y
+# CONFIG_PSTORE_842_COMPRESS is not set
+CONFIG_PSTORE_COMPRESS=y
+CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+CONFIG_PSTORE_DEFLATE_COMPRESS=y
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+# CONFIG_PSTORE_FTRACE is not set
+# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_ZSTD_COMPRESS is not set
+CONFIG_PTP_1588_CLOCK_DTE=m
+CONFIG_PTP_1588_CLOCK_KVM=m
+CONFIG_PTP_1588_CLOCK_PCH=m
+CONFIG_PTP_1588_CLOCK_QORIQ=m
+CONFIG_PUNIT_ATOM_DEBUG=m
+CONFIG_PVH=y
+CONFIG_PVPANIC=m
+CONFIG_PWM_ATMEL_HLCDC_PWM=m
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_BCM_IPROC=m
+CONFIG_PWM_BERLIN=m
+CONFIG_PWM_BRCMSTB=m
+CONFIG_PWM_CRC=y
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_FSL_FTM=m
+CONFIG_PWM_HIBVT=m
+CONFIG_PWM_IMX1=m
+CONFIG_PWM_IMX27=m
+CONFIG_PWM_IMX_TPM=m
+CONFIG_PWM_LP3943=m
+CONFIG_PWM_LPSS=y
+CONFIG_PWM_LPSS_PCI=y
+CONFIG_PWM_LPSS_PLATFORM=y
+CONFIG_PWM_MEDIATEK=m
+CONFIG_PWM_MESON=m
+CONFIG_PWM_MTK_DISP=m
+CONFIG_PWM_OMAP_DMTIMER=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_RCAR=m
+CONFIG_PWM_RENESAS_TPU=m
+CONFIG_PWM_ROCKCHIP=m
+CONFIG_PWM_SAMSUNG=m
+CONFIG_PWM_SPRD=m
+CONFIG_PWM_STMPE=y
+CONFIG_PWM_SUN4I=m
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_TEGRA=m
+CONFIG_PWM_TIPWMSS=y
+CONFIG_PWM_TWL=m
+CONFIG_PWM_TWL_LED=m
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SD8787=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_PXA168_ETH=m
+CONFIG_QCA7000=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_QCOM_A53PLL=m
+CONFIG_QCOM_AOSS_QMP=m
+CONFIG_QCOM_APCS_IPC=m
+CONFIG_QCOM_APR=m
+CONFIG_QCOM_BAM_DMA=m
+CONFIG_QCOM_CLK_APCS_MSM8916=m
+CONFIG_QCOM_CLK_RPM=m
+CONFIG_QCOM_CLK_RPMH=m
+CONFIG_QCOM_CLK_SMD_RPM=m
+CONFIG_QCOM_COINCELL=m
+CONFIG_QCOM_COMMAND_DB=y
+CONFIG_QCOM_EBI2=y
+CONFIG_QCOM_EMAC=m
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_QCOM_FASTRPC=m
+CONFIG_QCOM_GDSC=y
+CONFIG_QCOM_GENI_SE=m
+CONFIG_QCOM_GLINK_SSR=m
+CONFIG_QCOM_GSBI=m
+CONFIG_QCOM_HFPLL=m
+CONFIG_QCOM_HIDMA=m
+CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_IOMMU=y
+CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
+CONFIG_QCOM_LLCC=m
+CONFIG_QCOM_MDT_LOADER=m
+CONFIG_QCOM_PDC=y
+CONFIG_QCOM_PM=y
+CONFIG_QCOM_PM8XXX_XOADC=m
+CONFIG_QCOM_Q6V5_ADSP=m
+CONFIG_QCOM_Q6V5_COMMON=m
+CONFIG_QCOM_Q6V5_MSS=m
+CONFIG_QCOM_Q6V5_PAS=m
+CONFIG_QCOM_Q6V5_WCSS=m
+CONFIG_QCOM_QDF2400_ERRATUM_0065=y
+CONFIG_QCOM_QFPROM=m
+CONFIG_QCOM_QMI_HELPERS=m
+CONFIG_QCOM_RMTFS_MEM=m
+CONFIG_QCOM_RPMCC=y
+CONFIG_QCOM_RPMH=y
+CONFIG_QCOM_RPMHPD=y
+CONFIG_QCOM_RPROC_COMMON=m
+CONFIG_QCOM_SCM=y
+CONFIG_QCOM_SCM_32=y
+CONFIG_QCOM_SCM_64=y
+# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
+CONFIG_QCOM_SDM845_LLCC=m
+CONFIG_QCOM_SMD_RPM=m
+CONFIG_QCOM_SMEM=m
+CONFIG_QCOM_SMEM_STATE=y
+CONFIG_QCOM_SMP2P=m
+CONFIG_QCOM_SMSM=m
+CONFIG_QCOM_SOCINFO=m
+CONFIG_QCOM_SPMI_ADC5=m
+CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_TEMP_ALARM=m
+CONFIG_QCOM_SPMI_VADC=m
+CONFIG_QCOM_SYSMON=m
+CONFIG_QCOM_TSENS=m
+CONFIG_QCOM_VADC_COMMON=m
+CONFIG_QCOM_WCNSS_CTRL=m
+# CONFIG_QCOM_WCNSS_PIL is not set
+CONFIG_QCOM_WDT=m
+CONFIG_QCS_GCC_404=m
+CONFIG_QCS_TURING_404=m
+CONFIG_QDIO=m
+CONFIG_QED=m
+CONFIG_QEDE=m
+CONFIG_QEDF=m
+CONFIG_QEDI=m
+CONFIG_QED_FCOE=y
+CONFIG_QED_ISCSI=y
+CONFIG_QED_LL2=y
+CONFIG_QED_OOO=y
+CONFIG_QED_RDMA=y
+CONFIG_QED_SRIOV=y
+CONFIG_QETH=m
+CONFIG_QETH_L2=m
+CONFIG_QETH_L3=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLGE=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_QORIQ_CPUFREQ=m
+CONFIG_QORIQ_THERMAL=m
+CONFIG_QRTR=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
+CONFIG_QSEMI_PHY=m
+CONFIG_QTNFMAC=m
+CONFIG_QTNFMAC_PCIE=m
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_QUOTA=y
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QUOTA_TREE=m
+CONFIG_R6040=m
+CONFIG_R8169=m
+CONFIG_R8188EU=m
+CONFIG_R8712U=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_ISA=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_RADIO_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_RADIO_SI476X=m
+CONFIG_RADIO_TEA575X=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_RAID6_PQ=m
+CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_RAID_ATTRS=m
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_RANDOMIZE_MEMORY=y
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
+CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
+CONFIG_RANDOM_TRUST_CPU=y
+CONFIG_RAPIDIO_CHMAN=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_RAPIDIO_CPS_XX=m
+# CONFIG_RAPIDIO_DEBUG is not set
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_DMA_ENGINE=y
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_ENUM_BASIC=m
+CONFIG_RAPIDIO_MPORT_CDEV=m
+CONFIG_RAPIDIO_RXS_GEN3=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAS=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_RAS_CEC=y
+# CONFIG_RAS_CEC_DEBUG is not set
+CONFIG_RATIONAL=y
+CONFIG_RAVB=m
+CONFIG_RAVE_SP_EEPROM=m
+CONFIG_RAVE_SP_WATCHDOG=m
+# CONFIG_RBTREE_TEST is not set
+CONFIG_RCAR_DMAC=m
+CONFIG_RCAR_GEN3_THERMAL=m
+CONFIG_RCAR_GYRO_ADC=m
+CONFIG_RCAR_THERMAL=m
+# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_RCU_EXPERT is not set
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_PERF_TEST=m
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_RC_LOOPBACK=m
+CONFIG_RC_MAP=m
+CONFIG_RC_XBOX_DVD=m
+CONFIG_RDA_INTC=y
+CONFIG_RDA_TIMER=y
+CONFIG_RDMA_RXE=m
+CONFIG_RDMA_SIW=m
+CONFIG_RDS=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZ4=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+CONFIG_RD_XZ=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_REALTEK_PHY=m
+CONFIG_REBOOT_MODE=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_ENC8=y
+# CONFIG_REED_SOLOMON_TEST is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_AC97=m
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_I3C=m
+CONFIG_REGMAP_IRQ=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_SCCB=m
+CONFIG_REGMAP_SLIMBUS=m
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_SPMI=m
+CONFIG_REGMAP_W1=m
+CONFIG_REGULATOR_88PG86X=m
+CONFIG_REGULATOR_88PM800=m
+CONFIG_REGULATOR_88PM8607=m
+CONFIG_REGULATOR_AAT2870=m
+CONFIG_REGULATOR_AB3100=m
+CONFIG_REGULATOR_ACT8865=m
+CONFIG_REGULATOR_ACT8945A=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_ANATOP=m
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_AS3711=m
+CONFIG_REGULATOR_AS3722=m
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_BCM590XX=m
+CONFIG_REGULATOR_BD70528=m
+CONFIG_REGULATOR_BD718XX=m
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_CPCAP=m
+CONFIG_REGULATOR_DA903X=m
+CONFIG_REGULATOR_DA9052=m
+CONFIG_REGULATOR_DA9055=m
+CONFIG_REGULATOR_DA9062=m
+CONFIG_REGULATOR_DA9063=m
+CONFIG_REGULATOR_DA9210=m
+CONFIG_REGULATOR_DA9211=m
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_HI6421=m
+CONFIG_REGULATOR_HI6421V530=m
+CONFIG_REGULATOR_HI655X=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_ISL9305=m
+CONFIG_REGULATOR_LM363X=m
+CONFIG_REGULATOR_LOCHNAGAR=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_LP872X=m
+CONFIG_REGULATOR_LP873X=m
+CONFIG_REGULATOR_LP8755=m
+CONFIG_REGULATOR_LP87565=m
+CONFIG_REGULATOR_LP8788=m
+CONFIG_REGULATOR_LTC3589=m
+CONFIG_REGULATOR_LTC3676=m
+CONFIG_REGULATOR_MAX14577=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX77620=m
+CONFIG_REGULATOR_MAX77650=m
+CONFIG_REGULATOR_MAX77686=m
+CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX77802=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8907=m
+CONFIG_REGULATOR_MAX8925=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_MAX8973=m
+CONFIG_REGULATOR_MAX8997=m
+CONFIG_REGULATOR_MAX8998=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MCP16502=m
+CONFIG_REGULATOR_MT6311=m
+CONFIG_REGULATOR_MT6323=m
+CONFIG_REGULATOR_MT6380=m
+CONFIG_REGULATOR_MT6397=m
+CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PBIAS=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_PV88060=m
+CONFIG_REGULATOR_PV88080=m
+CONFIG_REGULATOR_PV88090=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_RPM=m
+CONFIG_REGULATOR_QCOM_RPMH=m
+CONFIG_REGULATOR_QCOM_SMD_RPM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_RC5T583=m
+CONFIG_REGULATOR_RK808=m
+CONFIG_REGULATOR_RN5T618=m
+CONFIG_REGULATOR_RT5033=m
+CONFIG_REGULATOR_S2MPA01=m
+CONFIG_REGULATOR_S2MPS11=m
+CONFIG_REGULATOR_S5M8767=m
+CONFIG_REGULATOR_SC2731=m
+CONFIG_REGULATOR_SKY81452=m
+CONFIG_REGULATOR_SLG51000=m
+CONFIG_REGULATOR_STPMIC1=m
+CONFIG_REGULATOR_SY8106A=m
+CONFIG_REGULATOR_SY8824X=m
+CONFIG_REGULATOR_TI_ABB=y
+CONFIG_REGULATOR_TPS51632=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS62360=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65086=m
+CONFIG_REGULATOR_TPS65090=m
+CONFIG_REGULATOR_TPS65132=m
+CONFIG_REGULATOR_TPS65218=m
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_REGULATOR_TPS6586X=m
+CONFIG_REGULATOR_TPS65910=m
+CONFIG_REGULATOR_TPS65912=m
+CONFIG_REGULATOR_TPS80031=m
+CONFIG_REGULATOR_UNIPHIER=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
+CONFIG_REGULATOR_VEXPRESS=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_WM8994=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_REISERFS_FS_XATTR=y
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_RELAY=y
+CONFIG_RELOCATABLE=y
+# CONFIG_RELOCATABLE_TEST is not set
+CONFIG_RENESAS_DMA=y
+CONFIG_RENESAS_INTC_IRQPIN=y
+CONFIG_RENESAS_IRQC=y
+CONFIG_RENESAS_OSTM=y
+CONFIG_RENESAS_PHY=m
+CONFIG_RENESAS_RZA1_IRQC=y
+CONFIG_RENESAS_RZAWDT=m
+CONFIG_RENESAS_USB_DMAC=m
+CONFIG_RENESAS_WDT=m
+CONFIG_RESET_ATTACK_MITIGATION=y
+CONFIG_RESET_BERLIN=y
+CONFIG_RESET_BRCMSTB=m
+CONFIG_RESET_HISI=y
+CONFIG_RESET_IMX7=y
+CONFIG_RESET_MESON=y
+CONFIG_RESET_MESON_AUDIO_ARB=m
+CONFIG_RESET_QCOM_AOSS=y
+CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=m
+CONFIG_RESET_SIMPLE=y
+CONFIG_RESET_SUNXI=y
+CONFIG_RESET_TEGRA_BPMP=y
+CONFIG_RESET_TI_SCI=m
+CONFIG_RESET_TI_SYSCON=m
+CONFIG_RESET_UNIPHIER=m
+CONFIG_RESET_UNIPHIER_GLUE=m
+CONFIG_RETPOLINE=y
+CONFIG_RETU_WATCHDOG=m
+CONFIG_RFD77402=m
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL_GPIO=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RING_BUFFER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_F03=y
+CONFIG_RMI4_F03_SERIO=m
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F34=y
+CONFIG_RMI4_F54=y
+CONFIG_RMI4_F55=y
+CONFIG_RMI4_I2C=m
+CONFIG_RMI4_SMB=m
+CONFIG_RMI4_SPI=m
+CONFIG_RMNET=m
+CONFIG_RN5T618_WATCHDOG=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+CONFIG_ROCKCHIP_EFUSE=m
+CONFIG_ROCKCHIP_GRF=y
+CONFIG_ROCKCHIP_INNO_HDMI=y
+CONFIG_ROCKCHIP_IODOMAIN=m
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_ROCKCHIP_LVDS=y
+CONFIG_ROCKCHIP_MBOX=y
+CONFIG_ROCKCHIP_PHY=m
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+CONFIG_ROCKCHIP_RGB=y
+CONFIG_ROCKCHIP_RK3066_HDMI=y
+CONFIG_ROCKCHIP_SARADC=m
+CONFIG_ROCKCHIP_THERMAL=m
+CONFIG_ROCKCHIP_TIMER=y
+CONFIG_ROCKER=m
+CONFIG_ROCKETPORT=m
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_ROSE=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPMSG=m
+CONFIG_RPMSG_CHAR=m
+CONFIG_RPMSG_QCOM_GLINK_NATIVE=m
+CONFIG_RPMSG_QCOM_GLINK_RPM=m
+CONFIG_RPMSG_QCOM_GLINK_SMEM=m
+CONFIG_RPMSG_QCOM_SMD=m
+CONFIG_RPR0521=m
+CONFIG_RPS=y
+CONFIG_RSEQ=y
+CONFIG_RSI_91X=m
+CONFIG_RSI_COEX=y
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+CONFIG_RST_RCAR=y
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2X00=m
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_CRYPTO=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT61PCI=m
+CONFIG_RT73USB=m
+CONFIG_RTAS_ERROR_LOGGING=y
+CONFIG_RTAS_FLASH=m
+CONFIG_RTAS_PROC=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_DRV_88PM80X=m
+CONFIG_RTC_DRV_88PM860X=m
+CONFIG_RTC_DRV_AB3100=m
+CONFIG_RTC_DRV_ABB5ZES3=m
+CONFIG_RTC_DRV_ABEOZ9=m
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_AM1805=m
+CONFIG_RTC_DRV_ARMADA38X=m
+CONFIG_RTC_DRV_AS3722=m
+CONFIG_RTC_DRV_ASPEED=m
+CONFIG_RTC_DRV_BD70528=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_BRCMSTB=m
+CONFIG_RTC_DRV_CADENCE=m
+CONFIG_RTC_DRV_CPCAP=m
+CONFIG_RTC_DRV_CROS_EC=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1307_CENTURY=y
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1374_WDT=y
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS1685=y
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+CONFIG_RTC_DRV_DS1742=m
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_DS3232_HWMON=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_FSL_FTM_ALARM=m
+CONFIG_RTC_DRV_FTRTC010=m
+CONFIG_RTC_DRV_GENERIC=y
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_RTC_DRV_HYM8563=m
+CONFIG_RTC_DRV_IMXDI=m
+CONFIG_RTC_DRV_IMX_SC=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12026=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_LP8788=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_MAX6916=m
+CONFIG_RTC_DRV_MAX77686=m
+CONFIG_RTC_DRV_MAX8907=m
+CONFIG_RTC_DRV_MAX8925=m
+CONFIG_RTC_DRV_MAX8997=m
+CONFIG_RTC_DRV_MAX8998=m
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_MESON=m
+CONFIG_RTC_DRV_MESON_VRTC=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_MT6397=m
+CONFIG_RTC_DRV_MT7622=m
+CONFIG_RTC_DRV_MV=y
+CONFIG_RTC_DRV_MXC=m
+CONFIG_RTC_DRV_MXC_V2=m
+CONFIG_RTC_DRV_OMAP=y
+CONFIG_RTC_DRV_OPAL=y
+CONFIG_RTC_DRV_PALMAS=m
+CONFIG_RTC_DRV_PCAP=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_PL030=m
+CONFIG_RTC_DRV_PM8XXX=m
+CONFIG_RTC_DRV_R7301=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RC5T583=m
+CONFIG_RTC_DRV_RK808=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_RTD119X=y
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RX6110=m
+CONFIG_RTC_DRV_RX8010=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_S3C=y
+CONFIG_RTC_DRV_S5M=m
+CONFIG_RTC_DRV_SC27XX=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_SH=m
+CONFIG_RTC_DRV_SNVS=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_SUN6I=y
+CONFIG_RTC_DRV_TEGRA=m
+# CONFIG_RTC_DRV_TEST is not set
+CONFIG_RTC_DRV_TPS6586X=m
+CONFIG_RTC_DRV_TPS65910=m
+CONFIG_RTC_DRV_TPS80031=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_VRTC=m
+CONFIG_RTC_DRV_WILCO_EC=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_XGENE=y
+CONFIG_RTC_DRV_ZYNQMP=m
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RTC_NVMEM=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTD119X_WATCHDOG=y
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8192E=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8XXXU=m
+CONFIG_RTL8XXXU_UNTESTED=y
+CONFIG_RTLBTCOEXIST=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+CONFIG_RTL_CARDS=m
+CONFIG_RTS5208=m
+CONFIG_RTW88=m
+CONFIG_RTW88_8723DE=y
+CONFIG_RTW88_8822BE=y
+CONFIG_RTW88_8822CE=y
+CONFIG_RTW88_CORE=m
+CONFIG_RTW88_DEBUG=y
+CONFIG_RTW88_DEBUGFS=y
+CONFIG_RTW88_PCI=m
+# CONFIG_RTW88_REGD_USER_REG_HINTS is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_RT_MUTEXES=y
+CONFIG_RUNTIME_TESTING_MENU=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_RXKAD=y
+CONFIG_S390=y
+CONFIG_S390_AP_IOMMU=y
+CONFIG_S390_CCW_IOMMU=y
+CONFIG_S390_GUEST=y
+CONFIG_S390_HYPFS_FS=y
+CONFIG_S390_IOMMU=y
+CONFIG_S390_PRNG=m
+CONFIG_S390_PTDUMP=y
+CONFIG_S390_TAPE=m
+CONFIG_S390_TAPE_34XX=m
+CONFIG_S390_TAPE_3590=m
+CONFIG_S390_VMUR=m
+CONFIG_S3C2410_WATCHDOG=m
+CONFIG_S5P_DEV_MFC=y
+CONFIG_SAMPLES=y
+# CONFIG_SAMPLE_CONFIGFS is not set
+# CONFIG_SAMPLE_HW_BREAKPOINT is not set
+# CONFIG_SAMPLE_KDB is not set
+# CONFIG_SAMPLE_KFIFO is not set
+# CONFIG_SAMPLE_KOBJECT is not set
+# CONFIG_SAMPLE_KPROBES is not set
+# CONFIG_SAMPLE_LIVEPATCH is not set
+# CONFIG_SAMPLE_QMI_CLIENT is not set
+# CONFIG_SAMPLE_RPMSG_CLIENT is not set
+# CONFIG_SAMPLE_TRACE_EVENTS is not set
+CONFIG_SAMPLE_TRACE_PRINTK=m
+# CONFIG_SAMPLE_VFIO_MDEV_MBOCHS is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MDPY is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB is not set
+# CONFIG_SAMPLE_VFIO_MDEV_MTTY is not set
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_SAMSUNG_MC=y
+CONFIG_SAMSUNG_Q10=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_SEATTLE=m
+CONFIG_SATA_DWC=m
+# CONFIG_SATA_DWC_DEBUG is not set
+CONFIG_SATA_DWC_OLD_DMA=y
+CONFIG_SATA_HIGHBANK=y
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_MOBILE_LPM_POLICY=3
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PMP=y
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_RCAR=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIL24=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_ZPODD=y
+CONFIG_SBC7240_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_SBITMAP=y
+CONFIG_SBNI=m
+# CONFIG_SBNI_MULTILINE is not set
+CONFIG_SBP_TARGET=m
+CONFIG_SC1200_WDT=m
+CONFIG_SC27XX_ADC=m
+CONFIG_SC27XX_EFUSE=m
+CONFIG_SC92031=m
+CONFIG_SCA3000=m
+CONFIG_SCANLOG=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_SCHED_BOOK=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_DRAWER=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_SCHED_INFO=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_MC_PRIO=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_SCHED_TOPOLOGY=y
+CONFIG_SCHED_TRACER=y
+CONFIG_SCIF=m
+CONFIG_SCIF_BUS=m
+CONFIG_SCLP_CONSOLE=y
+CONFIG_SCLP_OFB=y
+CONFIG_SCLP_TTY=y
+CONFIG_SCLP_VT220_CONSOLE=y
+CONFIG_SCLP_VT220_TTY=y
+CONFIG_SCM_BLOCK=m
+CONFIG_SCM_BUS=y
+CONFIG_SCOM_DEBUGFS=y
+CONFIG_SCR24X=m
+CONFIG_SCSI=y
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FDOMAIN=m
+CONFIG_SCSI_FDOMAIN_ISA=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_HISI_SAS=m
+CONFIG_SCSI_HISI_SAS_PCI=m
+CONFIG_SCSI_IBMVFC=m
+CONFIG_SCSI_IBMVFC_TRACE=y
+CONFIG_SCSI_IBMVSCSI=m
+CONFIG_SCSI_IBMVSCSIS=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MYRS=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SMARTPQI=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFS_CDNS_PLATFORM=m
+CONFIG_SCSI_UFS_DWC_TC_PCI=m
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m
+CONFIG_SCSI_UFS_HISI=m
+CONFIG_SCSI_UFS_MEDIATEK=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SCx200=m
+CONFIG_SCx200HR_TIMER=m
+CONFIG_SCx200_ACB=m
+CONFIG_SCx200_GPIO=m
+CONFIG_SCx200_WDT=m
+CONFIG_SDIO_UART=m
+CONFIG_SDLA=m
+# CONFIG_SDMA_VERBOSITY is not set
+CONFIG_SDM_CAMCC_845=m
+CONFIG_SDM_DISPCC_845=m
+CONFIG_SDM_GCC_660=m
+CONFIG_SDM_GCC_845=m
+CONFIG_SDM_GPUCC_845=m
+CONFIG_SDM_LPASSCC_845=m
+CONFIG_SDM_VIDEOCC_845=m
+CONFIG_SDR_MAX2175=m
+CONFIG_SDR_PLATFORM_DRIVERS=y
+CONFIG_SD_ADC_MODULATOR=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_APPARMOR=y
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY_INFINIBAND=y
+# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM=y
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y
+CONFIG_SECURITY_SAFESETID=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_YAMA=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_AD7314=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADC128D818=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_ADT7310=m
+CONFIG_SENSORS_ADT7410=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ADT7X10=m
+CONFIG_SENSORS_AHC1EC0_HWMON=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ARM_SCMI=m
+CONFIG_SENSORS_ARM_SCPI=m
+CONFIG_SENSORS_AS370=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_DA9052_ADC=m
+CONFIG_SENSORS_DA9055=m
+CONFIG_SENSORS_DELL_SMM=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_HIH6130=m
+CONFIG_SENSORS_HMC5843=m
+CONFIG_SENSORS_HMC5843_I2C=m
+CONFIG_SENSORS_HMC5843_SPI=m
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IBMPOWERNV=m
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_INA209=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
+CONFIG_SENSORS_INSPUR_IPSPS=m
+CONFIG_SENSORS_IR35221=m
+CONFIG_SENSORS_IR38064=m
+CONFIG_SENSORS_IRPS5401=m
+CONFIG_SENSORS_ISL29018=m
+CONFIG_SENSORS_ISL29028=m
+CONFIG_SENSORS_ISL68137=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_SPI=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LM3533=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95234=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_LOCHNAGAR=m
+CONFIG_SENSORS_LTC2945=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_LTC2978_REGULATOR=y
+CONFIG_SENSORS_LTC2990=m
+CONFIG_SENSORS_LTC3815=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4222=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4260=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX197=m
+CONFIG_SENSORS_MAX20751=m
+CONFIG_SENSORS_MAX31722=m
+CONFIG_SENSORS_MAX31785=m
+CONFIG_SENSORS_MAX31790=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX6621=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MAX6697=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
+CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
+CONFIG_SENSORS_NPCM7XX=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+# CONFIG_SENSORS_OCC_P8_I2C is not set
+# CONFIG_SENSORS_OCC_P9_SBE is not set
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_POWR1220=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_PXE1610=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_RM3100=m
+CONFIG_SENSORS_RM3100_I2C=m
+CONFIG_SENSORS_RM3100_SPI=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_STTS751=m
+CONFIG_SENSORS_TC654=m
+CONFIG_SENSORS_TC74=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP103=m
+CONFIG_SENSORS_TMP108=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TPS40422=m
+CONFIG_SENSORS_TPS53679=m
+CONFIG_SENSORS_TSL2563=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_VEXPRESS=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SENSORS_XGENE=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_ACCENT=m
+CONFIG_SERIAL_8250_ASPEED_VUART=m
+# CONFIG_SERIAL_8250_BCM2835AUX is not set
+CONFIG_SERIAL_8250_BOCA=m
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_DWLIB=y
+# CONFIG_SERIAL_8250_EM is not set
+CONFIG_SERIAL_8250_EXAR=m
+CONFIG_SERIAL_8250_EXAR_ST16C554=m
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FOURPORT=m
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_HUB6=m
+CONFIG_SERIAL_8250_LPSS=m
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_MEN_MCB=m
+CONFIG_SERIAL_8250_MID=m
+CONFIG_SERIAL_8250_MT6577=y
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_8250_OMAP=m
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_RT288X=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=32
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_UNIPHIER=m
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_AMBA_PL010=m
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_ARC_NR_PORTS=1
+CONFIG_SERIAL_BCM63XX=m
+CONFIG_SERIAL_CONEXANT_DIGICOLOR=m
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+CONFIG_SERIAL_ICOM=m
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_IPOCTAL=m
+CONFIG_SERIAL_KGDB_NMI=y
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX310X=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_MEN_Z135=m
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
+CONFIG_SERIAL_MILBEAUT_USIO=m
+CONFIG_SERIAL_MILBEAUT_USIO_PORTS=4
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MVEBU_CONSOLE=y
+CONFIG_SERIAL_MVEBU_UART=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_OMAP=y
+CONFIG_SERIAL_OMAP_CONSOLE=y
+CONFIG_SERIAL_OWL=y
+CONFIG_SERIAL_OWL_CONSOLE=y
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_QCOM_GENI=m
+CONFIG_SERIAL_RDA=y
+CONFIG_SERIAL_RDA_CONSOLE=y
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_SAMSUNG=m
+CONFIG_SERIAL_SAMSUNG_UARTS=4
+CONFIG_SERIAL_SAMSUNG_UARTS_4=y
+CONFIG_SERIAL_SC16IS7XX_CORE=m
+CONFIG_SERIAL_SC16IS7XX_I2C=y
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_SCCNXP_CONSOLE=y
+CONFIG_SERIAL_SH_SCI=m
+CONFIG_SERIAL_SH_SCI_DMA=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=2
+CONFIG_SERIAL_SIFIVE=m
+CONFIG_SERIAL_SPRD=m
+CONFIG_SERIAL_ST_ASC=m
+CONFIG_SERIAL_TEGRA=m
+CONFIG_SERIAL_TEGRA_TCU=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_AMBAKMI=m
+CONFIG_SERIO_APBPS2=m
+CONFIG_SERIO_ARC_PS2=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_GPIO_PS2=m
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_NVEC_PS2=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_SUN4I_PS2 is not set
+CONFIG_SERIO_XILINX_XPS_PS2=m
+CONFIG_SETEND_EMULATION=y
+CONFIG_SFC_FALCON_MTD=y
+CONFIG_SFC_MCDI_LOGGING=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_MTD=y
+CONFIG_SFC_SRIOV=y
+CONFIG_SFI=y
+CONFIG_SFP=m
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SGI_GRU=m
+# CONFIG_SGI_GRU_DEBUG is not set
+CONFIG_SGI_XP=m
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SG_SPLIT=y
+CONFIG_SHIFT_FS=m
+CONFIG_SHIFT_FS_POSIX_ACL=y
+CONFIG_SHMEM=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_SH_ETH=m
+CONFIG_SH_TIMER_CMT=y
+CONFIG_SH_TIMER_MTU2=y
+CONFIG_SH_TIMER_TMU=y
+CONFIG_SI1133=m
+CONFIG_SI1145=m
+CONFIG_SI7005=m
+CONFIG_SI7020=m
+CONFIG_SIGNALFD=y
+CONFIG_SIGNATURE=y
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+# CONFIG_SIMPLE_GPIO is not set
+CONFIG_SIMPLE_PM_BUS=y
+CONFIG_SIOX=m
+CONFIG_SIOX_BUS_GPIO=m
+CONFIG_SIS190=m
+CONFIG_SIS900=m
+CONFIG_SKB_EXTENSIONS=y
+CONFIG_SKFP=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+# CONFIG_SLAB is not set
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLHC=y
+CONFIG_SLICOSS=m
+CONFIG_SLIC_DS26522=m
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
+CONFIG_SLIM_QCOM_NGD_CTRL=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLOB is not set
+CONFIG_SLUB=y
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_MEMCG_SYSFS_ON=y
+# CONFIG_SLUB_STATS is not set
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_SMC=m
+CONFIG_SMC911X=m
+CONFIG_SMC9194=m
+CONFIG_SMC_DIAG=m
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_SMSC37B787_WDT=m
+CONFIG_SMSC911X=m
+CONFIG_SMSC9420=m
+CONFIG_SMSC_PHY=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSGIUCV=y
+CONFIG_SMSGIUCV_EVENT=m
+CONFIG_SMS_SDIO_DRV=m
+CONFIG_SMS_SIANO_DEBUGFS=y
+CONFIG_SMS_SIANO_MDTV=m
+CONFIG_SMS_SIANO_RC=y
+CONFIG_SMS_USB_DRV=m
+CONFIG_SM_FTL=m
+CONFIG_SM_GCC_8150=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_AD1889=m
+CONFIG_SND_ADLIB=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ARM=y
+CONFIG_SND_ARMAACI=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_ATMEL_SOC=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AUDIO_GRAPH_CARD=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_BCM2835=m
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_BEBOB=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMI8328=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_DARLA24=m
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_DESIGNWARE_PCM=y
+CONFIG_SND_DICE=m
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_MOTU=m
+CONFIG_SND_FIREWIRE_TASCAM=m
+CONFIG_SND_FIREWORKS=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_GINA20=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_HDA=m
+CONFIG_SND_HDA_ALIGNED_MMIO=y
+CONFIG_SND_HDA_CODEC_ANALOG=m
+CONFIG_SND_HDA_CODEC_CA0110=m
+CONFIG_SND_HDA_CODEC_CA0132=m
+CONFIG_SND_HDA_CODEC_CA0132_DSP=y
+CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CMEDIA=m
+CONFIG_SND_HDA_CODEC_CONEXANT=m
+CONFIG_SND_HDA_CODEC_HDMI=m
+CONFIG_SND_HDA_CODEC_REALTEK=m
+CONFIG_SND_HDA_CODEC_SI3054=m
+CONFIG_SND_HDA_CODEC_SIGMATEL=m
+CONFIG_SND_HDA_CODEC_VIA=m
+CONFIG_SND_HDA_COMPONENT=y
+CONFIG_SND_HDA_CORE=m
+CONFIG_SND_HDA_DSP_LOADER=y
+CONFIG_SND_HDA_EXT_CORE=m
+CONFIG_SND_HDA_GENERIC=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_I915=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_TEGRA=m
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_I2S_HI6210_I2S=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_INTEL_DSP_CONFIG=m
+CONFIG_SND_INTEL_NHLT=y
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_KIRKWOOD_SOC=m
+CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MAX_CARDS=32
+CONFIG_SND_MESON_AXG_FIFO=m
+CONFIG_SND_MESON_AXG_FRDDR=m
+CONFIG_SND_MESON_AXG_PDM=m
+CONFIG_SND_MESON_AXG_SOUND_CARD=m
+CONFIG_SND_MESON_AXG_SPDIFIN=m
+CONFIG_SND_MESON_AXG_SPDIFOUT=m
+CONFIG_SND_MESON_AXG_TDMIN=m
+CONFIG_SND_MESON_AXG_TDMOUT=m
+CONFIG_SND_MESON_AXG_TDM_FORMATTER=m
+CONFIG_SND_MESON_AXG_TDM_INTERFACE=m
+CONFIG_SND_MESON_AXG_TODDR=m
+CONFIG_SND_MESON_G12A_TOHDMITX=m
+CONFIG_SND_MIA=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_NM256=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_OXFW=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_PCI=y
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_PPC=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SAMSUNG_I2S=m
+CONFIG_SND_SAMSUNG_PCM=m
+CONFIG_SND_SAMSUNG_SPDIF=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SEQ_MIDI=m
+CONFIG_SND_SEQ_MIDI_EMUL=m
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_VIRMIDI=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_SOC_AC97_CODEC=m
+CONFIG_SND_SOC_ACPI=m
+CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU1761=m
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU17X1=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_ADAU_UTILS=m
+CONFIG_SND_SOC_AK4104=m
+CONFIG_SND_SOC_AK4118=m
+CONFIG_SND_SOC_AK4458=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_AK4613=m
+CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK5386=m
+CONFIG_SND_SOC_AK5558=m
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_ALC5632=m
+CONFIG_SND_SOC_AMD_ACP=m
+CONFIG_SND_SOC_AMD_ACP3x=m
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
+CONFIG_SND_SOC_AMD_RENOIR=m
+CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_APQ8016_SBC=m
+CONFIG_SND_SOC_ARIZONA=m
+CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631=m
+CONFIG_SND_SOC_BD28623=m
+CONFIG_SND_SOC_BT_SCO=m
+CONFIG_SND_SOC_COMPRESS=y
+CONFIG_SND_SOC_CPCAP=m
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+CONFIG_SND_SOC_CS35L32=m
+CONFIG_SND_SOC_CS35L33=m
+CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
+CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_CS4271=m
+CONFIG_SND_SOC_CS4271_I2C=m
+CONFIG_SND_SOC_CS4271_SPI=m
+CONFIG_SND_SOC_CS42L42=m
+CONFIG_SND_SOC_CS42L51=m
+CONFIG_SND_SOC_CS42L51_I2C=m
+CONFIG_SND_SOC_CS42L52=m
+CONFIG_SND_SOC_CS42L56=m
+CONFIG_SND_SOC_CS42L73=m
+CONFIG_SND_SOC_CS42XX8=m
+CONFIG_SND_SOC_CS42XX8_I2C=m
+CONFIG_SND_SOC_CS43130=m
+CONFIG_SND_SOC_CS4341=m
+CONFIG_SND_SOC_CS4349=m
+CONFIG_SND_SOC_CS53L30=m
+CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DAVINCI_MCASP=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
+CONFIG_SND_SOC_ES7241=m
+CONFIG_SND_SOC_ES8316=m
+CONFIG_SND_SOC_ES8328=m
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_ES8328_SPI=m
+CONFIG_SND_SOC_EUKREA_TLV320=m
+CONFIG_SND_SOC_FSL_ASOC_CARD=m
+CONFIG_SND_SOC_FSL_ASRC=m
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_ESAI=m
+CONFIG_SND_SOC_FSL_MICFIL=m
+CONFIG_SND_SOC_FSL_SAI=m
+CONFIG_SND_SOC_FSL_SPDIF=m
+CONFIG_SND_SOC_FSL_UTILS=m
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_SOC_GTM601=m
+CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_HDAC_HDMI=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_IMG=y
+CONFIG_SND_SOC_IMG_I2S_IN=m
+CONFIG_SND_SOC_IMG_I2S_OUT=m
+CONFIG_SND_SOC_IMG_PARALLEL_OUT=m
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m
+CONFIG_SND_SOC_IMG_SPDIF_IN=m
+CONFIG_SND_SOC_IMG_SPDIF_OUT=m
+CONFIG_SND_SOC_IMX_AUDMIX=m
+CONFIG_SND_SOC_IMX_ES8328=m
+CONFIG_SND_SOC_IMX_MC13783=m
+CONFIG_SND_SOC_IMX_PCM_FIQ=y
+CONFIG_SND_SOC_IMX_SPDIF=m
+CONFIG_SND_SOC_IMX_SSI=m
+CONFIG_SND_SOC_INNO_RK3036=m
+CONFIG_SND_SOC_INTEL_APL=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
+CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
+# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
+# CONFIG_SND_SOC_INTEL_CFL is not set
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+# CONFIG_SND_SOC_INTEL_CML_H is not set
+# CONFIG_SND_SOC_INTEL_CML_LP is not set
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
+# CONFIG_SND_SOC_INTEL_CNL is not set
+CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
+CONFIG_SND_SOC_INTEL_GLK=m
+CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_HASWELL=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_KBL=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_MACH=y
+CONFIG_SND_SOC_INTEL_SKL=m
+CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
+# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
+CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
+CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
+CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_ACPI=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_LOCHNAGAR_SC=m
+CONFIG_SND_SOC_LPASS_APQ8016=m
+CONFIG_SND_SOC_LPASS_CPU=m
+CONFIG_SND_SOC_LPASS_IPQ806X=m
+CONFIG_SND_SOC_LPASS_PLATFORM=m
+CONFIG_SND_SOC_MAX9759=m
+CONFIG_SND_SOC_MAX98088=m
+CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98095=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_MAX98373=m
+CONFIG_SND_SOC_MAX98504=m
+CONFIG_SND_SOC_MAX9860=m
+CONFIG_SND_SOC_MAX9867=m
+CONFIG_SND_SOC_MAX98927=m
+CONFIG_SND_SOC_MC13783=m
+CONFIG_SND_SOC_MEDIATEK=m
+CONFIG_SND_SOC_MIKROE_PROTO=m
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
+CONFIG_SND_SOC_MSM8996=m
+# CONFIG_SND_SOC_MT2701 is not set
+CONFIG_SND_SOC_MT6351=m
+CONFIG_SND_SOC_MT6358=m
+CONFIG_SND_SOC_MT6797=m
+CONFIG_SND_SOC_MT6797_MT6351=m
+# CONFIG_SND_SOC_MT8173 is not set
+CONFIG_SND_SOC_MT8183=m
+CONFIG_SND_SOC_MT8183_DA7219_MAX98357A=m
+CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A=m
+CONFIG_SND_SOC_MTK_BTCVSD=m
+CONFIG_SND_SOC_NAU8540=m
+CONFIG_SND_SOC_NAU8810=m
+CONFIG_SND_SOC_NAU8822=m
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_NAU8825=m
+CONFIG_SND_SOC_NOKIA_RX51=m
+CONFIG_SND_SOC_ODROID=m
+CONFIG_SND_SOC_OMAP3_PANDORA=m
+CONFIG_SND_SOC_OMAP3_TWL4030=m
+CONFIG_SND_SOC_OMAP_ABE_TWL6040=m
+CONFIG_SND_SOC_OMAP_DMIC=m
+CONFIG_SND_SOC_OMAP_MCBSP=m
+CONFIG_SND_SOC_OMAP_MCPDM=m
+CONFIG_SND_SOC_PCM1681=m
+CONFIG_SND_SOC_PCM1789=m
+CONFIG_SND_SOC_PCM1789_I2C=m
+CONFIG_SND_SOC_PCM179X=m
+CONFIG_SND_SOC_PCM179X_I2C=m
+CONFIG_SND_SOC_PCM179X_SPI=m
+CONFIG_SND_SOC_PCM186X=m
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
+CONFIG_SND_SOC_PCM3060=m
+CONFIG_SND_SOC_PCM3060_I2C=m
+CONFIG_SND_SOC_PCM3060_SPI=m
+CONFIG_SND_SOC_PCM3168A=m
+CONFIG_SND_SOC_PCM3168A_I2C=m
+CONFIG_SND_SOC_PCM3168A_SPI=m
+CONFIG_SND_SOC_PCM512x=m
+CONFIG_SND_SOC_PCM512x_I2C=m
+CONFIG_SND_SOC_PCM512x_SPI=m
+CONFIG_SND_SOC_QCOM=m
+CONFIG_SND_SOC_QCOM_COMMON=m
+CONFIG_SND_SOC_QDSP6=m
+CONFIG_SND_SOC_QDSP6_ADM=m
+CONFIG_SND_SOC_QDSP6_AFE=m
+CONFIG_SND_SOC_QDSP6_AFE_DAI=m
+CONFIG_SND_SOC_QDSP6_ASM=m
+CONFIG_SND_SOC_QDSP6_ASM_DAI=m
+CONFIG_SND_SOC_QDSP6_COMMON=m
+CONFIG_SND_SOC_QDSP6_CORE=m
+CONFIG_SND_SOC_QDSP6_ROUTING=m
+CONFIG_SND_SOC_RCAR=m
+CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m
+CONFIG_SND_SOC_RK3328=m
+CONFIG_SND_SOC_RK3399_GRU_SOUND=m
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RL6347A=m
+CONFIG_SND_SOC_ROCKCHIP=m
+CONFIG_SND_SOC_ROCKCHIP_I2S=m
+CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
+CONFIG_SND_SOC_ROCKCHIP_PDM=m
+CONFIG_SND_SOC_ROCKCHIP_RT5645=m
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
+CONFIG_SND_SOC_RT286=m
+CONFIG_SND_SOC_RT298=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
+CONFIG_SND_SOC_RT5616=m
+CONFIG_SND_SOC_RT5631=m
+CONFIG_SND_SOC_RT5640=m
+CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5660=m
+CONFIG_SND_SOC_RT5663=m
+CONFIG_SND_SOC_RT5670=m
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+CONFIG_SND_SOC_RT5682=m
+CONFIG_SND_SOC_SAMSUNG=m
+CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF=m
+CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994=m
+CONFIG_SND_SOC_SAMSUNG_TM2_WM5110=m
+CONFIG_SND_SOC_SDM845=m
+CONFIG_SND_SOC_SH4_FSI=m
+CONFIG_SND_SOC_SI476X=m
+CONFIG_SND_SOC_SIGMADSP=m
+CONFIG_SND_SOC_SIGMADSP_I2C=m
+CONFIG_SND_SOC_SIGMADSP_REGMAP=m
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
+CONFIG_SND_SOC_SMDK_WM8994_PCM=m
+CONFIG_SND_SOC_SNOW=m
+CONFIG_SND_SOC_SOF=m
+CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_BAYTRAIL=m
+CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE=m
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE=m
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H=m
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP=m
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
+# CONFIG_SND_SOC_SOF_DEBUG is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE=m
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_HDA=m
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1=y
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON=m
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_IMX8=m
+CONFIG_SND_SOC_SOF_IMX8_SUPPORT=y
+CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_INTEL_ACPI=m
+CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
+CONFIG_SND_SOC_SOF_INTEL_COMMON=m
+CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
+CONFIG_SND_SOC_SOF_INTEL_PCI=m
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_MERRIFIELD=m
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+CONFIG_SND_SOC_SOF_OF=m
+CONFIG_SND_SOC_SOF_OPTIONS=m
+CONFIG_SND_SOC_SOF_PCI=m
+CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
+# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE=m
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_XTENSA=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SPRD=m
+CONFIG_SND_SOC_SPRD_MCDT=y
+CONFIG_SND_SOC_SSM2305=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_SSM2602_I2C=m
+CONFIG_SND_SOC_SSM2602_SPI=m
+CONFIG_SND_SOC_SSM4567=m
+CONFIG_SND_SOC_STA32X=m
+CONFIG_SND_SOC_STA350=m
+CONFIG_SND_SOC_STI_SAS=m
+CONFIG_SND_SOC_STORM=m
+CONFIG_SND_SOC_TAS2552=m
+CONFIG_SND_SOC_TAS5086=m
+CONFIG_SND_SOC_TAS571X=m
+CONFIG_SND_SOC_TAS5720=m
+CONFIG_SND_SOC_TAS6424=m
+CONFIG_SND_SOC_TDA7419=m
+CONFIG_SND_SOC_TEGRA=m
+CONFIG_SND_SOC_TEGRA20_AC97=m
+CONFIG_SND_SOC_TEGRA20_DAS=m
+CONFIG_SND_SOC_TEGRA20_I2S=m
+CONFIG_SND_SOC_TEGRA20_SPDIF=m
+CONFIG_SND_SOC_TEGRA30_AHUB=m
+CONFIG_SND_SOC_TEGRA30_I2S=m
+CONFIG_SND_SOC_TEGRA_ALC5632=m
+CONFIG_SND_SOC_TEGRA_MAX98090=m
+CONFIG_SND_SOC_TEGRA_RT5640=m
+CONFIG_SND_SOC_TEGRA_RT5677=m
+CONFIG_SND_SOC_TEGRA_SGTL5000=m
+CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
+CONFIG_SND_SOC_TEGRA_WM8753=m
+CONFIG_SND_SOC_TEGRA_WM8903=m
+CONFIG_SND_SOC_TEGRA_WM9712=m
+CONFIG_SND_SOC_TFA9879=m
+CONFIG_SND_SOC_TI_EDMA_PCM=m
+CONFIG_SND_SOC_TI_SDMA_PCM=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
+CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC32X4=m
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TOPOLOGY=y
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
+CONFIG_SND_SOC_TSCS454=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_SOC_TWL6040=m
+CONFIG_SND_SOC_UDA1334=m
+CONFIG_SND_SOC_UNIPHIER=m
+CONFIG_SND_SOC_UNIPHIER_AIO=m
+CONFIG_SND_SOC_UNIPHIER_EVEA_CODEC=m
+CONFIG_SND_SOC_UNIPHIER_LD11=m
+CONFIG_SND_SOC_UNIPHIER_PXS2=m
+CONFIG_SND_SOC_WCD9335=m
+CONFIG_SND_SOC_WM5110=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8524=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8737=m
+CONFIG_SND_SOC_WM8741=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8770=m
+CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8782=m
+CONFIG_SND_SOC_WM8804=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8804_SPI=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8962=m
+CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8985=m
+CONFIG_SND_SOC_WM8994=m
+CONFIG_SND_SOC_WM9712=m
+CONFIG_SND_SOC_WM_ADSP=m
+CONFIG_SND_SOC_WM_HUBS=m
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
+CONFIG_SND_SOC_XILINX_I2S=m
+CONFIG_SND_SOC_XILINX_SPDIF=m
+CONFIG_SND_SOC_XTFPGA_I2S=m
+CONFIG_SND_SOC_ZX_AUD96P22=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_SPI=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
+CONFIG_SND_SST_IPC=m
+CONFIG_SND_SST_IPC_ACPI=m
+CONFIG_SND_SST_IPC_PCI=m
+# CONFIG_SND_SUN4I_CODEC is not set
+# CONFIG_SND_SUN4I_I2S is not set
+# CONFIG_SND_SUN4I_SPDIF is not set
+CONFIG_SND_SUN50I_CODEC_ANALOG=m
+CONFIG_SND_SUN8I_ADDA_PR_REGMAP=m
+CONFIG_SND_SUN8I_CODEC=m
+CONFIG_SND_SUN8I_CODEC_ANALOG=m
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_SYNTH_EMUX=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_VARIAX=m
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VMASTER=y
+CONFIG_SND_VX222=m
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_X86=y
+CONFIG_SND_XEN_FRONTEND=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SNI_AVE=m
+CONFIG_SNI_NETSEC=m
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_SOCK_VALIDATE_XMIT=y
+# CONFIG_SOC_AM43XX is not set
+CONFIG_SOC_ASPEED=y
+CONFIG_SOC_BUS=y
+CONFIG_SOC_DRA7XX=y
+CONFIG_SOC_EXYNOS5250=y
+CONFIG_SOC_EXYNOS5260=y
+CONFIG_SOC_EXYNOS5410=y
+CONFIG_SOC_EXYNOS5420=y
+CONFIG_SOC_EXYNOS5800=y
+CONFIG_SOC_HAS_OMAP2_SDRC=y
+CONFIG_SOC_HAS_REALTIME_COUNTER=y
+CONFIG_SOC_IMX5=y
+CONFIG_SOC_IMX50=y
+CONFIG_SOC_IMX51=y
+# CONFIG_SOC_IMX53 is not set
+CONFIG_SOC_IMX6=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_SOC_IMX6SLL=y
+CONFIG_SOC_IMX6SX=y
+CONFIG_SOC_IMX6UL=y
+CONFIG_SOC_IMX7D=y
+CONFIG_SOC_IMX7D_CA7=y
+CONFIG_SOC_IMX7ULP=y
+# CONFIG_SOC_LS1021A is not set
+CONFIG_SOC_OMAP3430=y
+# CONFIG_SOC_OMAP5 is not set
+CONFIG_SOC_RENESAS=y
+CONFIG_SOC_SAMSUNG=y
+CONFIG_SOC_TEGRA_FLOWCTRL=y
+CONFIG_SOC_TEGRA_FUSE=y
+CONFIG_SOC_TEGRA_PMC=y
+CONFIG_SOC_TEGRA_POWERGATE_BPMP=y
+CONFIG_SOC_TI81XX=y
+CONFIG_SOC_VF610=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
+CONFIG_SONYPI=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_SONY_FF=y
+CONFIG_SONY_LAPTOP=m
+CONFIG_SOUNDWIRE=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SP5100_TCO=m
+CONFIG_SPAPR_TCE_IOMMU=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_ARMADA_3700=m
+CONFIG_SPI_ASPEED_SMC=m
+CONFIG_SPI_AXI_SPI_ENGINE=m
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_BCM_QSPI=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_CADENCE=m
+CONFIG_SPI_CADENCE_QUADSPI=m
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DLN2=m
+CONFIG_SPI_DW_MID_DMA=y
+CONFIG_SPI_DW_MMIO=m
+CONFIG_SPI_DW_PCI=m
+CONFIG_SPI_DYNAMIC=y
+CONFIG_SPI_FSL_DSPI=m
+CONFIG_SPI_FSL_LIB=y
+CONFIG_SPI_FSL_LPSPI=m
+CONFIG_SPI_FSL_QUADSPI=m
+CONFIG_SPI_FSL_SPI=y
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_HISI_SFC=m
+CONFIG_SPI_HISI_SFC_V3XX=m
+CONFIG_SPI_IMX=m
+# CONFIG_SPI_INTEL_SPI_PCI is not set
+# CONFIG_SPI_INTEL_SPI_PLATFORM is not set
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_LOOPBACK_TEST=m
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_MESON_SPICC=m
+CONFIG_SPI_MESON_SPIFC=m
+CONFIG_SPI_MT65XX=m
+CONFIG_SPI_MTK_QUADSPI=m
+CONFIG_SPI_MXIC=m
+CONFIG_SPI_NPCM_FIU=m
+CONFIG_SPI_NPCM_PSPI=m
+CONFIG_SPI_NXP_FLEXSPI=m
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_OMAP24XX=y
+CONFIG_SPI_ORION=m
+CONFIG_SPI_PL022=m
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=m
+CONFIG_SPI_QCOM_GENI=m
+CONFIG_SPI_QCOM_QSPI=m
+CONFIG_SPI_QUP=m
+CONFIG_SPI_RSPI=m
+CONFIG_SPI_S3C64XX=m
+CONFIG_SPI_SC18IS602=m
+CONFIG_SPI_SH_HSPI=m
+CONFIG_SPI_SH_MSIOF=m
+CONFIG_SPI_SIFIVE=m
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SLAVE_MT27XX=m
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
+CONFIG_SPI_SLAVE_TIME=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_SPRD=m
+CONFIG_SPI_SPRD_ADI=m
+# CONFIG_SPI_SUN4I is not set
+CONFIG_SPI_SUN6I=m
+CONFIG_SPI_SYNQUACER=m
+CONFIG_SPI_TEGRA114=m
+CONFIG_SPI_TEGRA20_SFLASH=m
+CONFIG_SPI_TEGRA20_SLINK=m
+CONFIG_SPI_THUNDERX=m
+CONFIG_SPI_TI_QSPI=m
+CONFIG_SPI_TLE62X0=m
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_UNIPHIER=m
+CONFIG_SPI_XCOMM=m
+# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_XLP=m
+CONFIG_SPI_ZYNQMP_GQSPI=m
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_SPMI_MSM_PMIC_ARB=m
+CONFIG_SPMI_PMIC_CLKDIV=m
+CONFIG_SPRD_COMMON_CLK=m
+CONFIG_SPRD_DMA=m
+CONFIG_SPRD_SC9860_CLK=m
+CONFIG_SPRD_TIMER=y
+CONFIG_SPRD_WATCHDOG=m
+CONFIG_SPS30=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+# CONFIG_SQUASHFS_FILE_CACHE is not set
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_ZSTD=y
+CONFIG_SRAM_EXEC=y
+CONFIG_SRCU=y
+CONFIG_SRF04=m
+CONFIG_SRF08=m
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_DRIVER_GPIO=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+# CONFIG_SSB_PCMCIAHOST is not set
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSFDC=m
+CONFIG_SSI_PROTOCOL=m
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_STACKTRACE=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_STACK_TRACER=y
+CONFIG_STACK_VALIDATION=y
+CONFIG_STAGING_APEX_DRIVER=m
+# CONFIG_STAGING_BOARD is not set
+CONFIG_STAGING_GASKET_FRAMEWORK=m
+CONFIG_STAGING_MEDIA=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_STE10XP=m
+CONFIG_STK3310=m
+CONFIG_STK8312=m
+CONFIG_STK8BA50=m
+CONFIG_STM=m
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PCI=m
+CONFIG_STMMAC_PLATFORM=m
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STMPE_ADC=m
+CONFIG_STMPE_I2C=y
+CONFIG_STMPE_SPI=y
+CONFIG_STMP_DEVICE=y
+CONFIG_STM_DUMMY=m
+CONFIG_STM_PROTO_BASIC=m
+CONFIG_STM_PROTO_SYS_T=m
+CONFIG_STM_SOURCE_CONSOLE=m
+CONFIG_STM_SOURCE_FTRACE=m
+CONFIG_STM_SOURCE_HEARTBEAT=m
+CONFIG_STP=m
+CONFIG_STPMIC1_WATCHDOG=m
+CONFIG_STREAM_PARSER=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_STRING_SELFTEST is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_STUB_CLK_HI3660=y
+CONFIG_STUB_CLK_HI6220=y
+CONFIG_STX104=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25_SPI=m
+# CONFIG_SUN4I_EMAC is not set
+# CONFIG_SUN4I_GPADC is not set
+CONFIG_SUN50I_A64_CCU=y
+CONFIG_SUN50I_DE2_BUS=y
+CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
+CONFIG_SUN50I_H6_CCU=y
+CONFIG_SUN50I_H6_R_CCU=y
+CONFIG_SUN8I_A83T_CCU=y
+CONFIG_SUN8I_DE2_CCU=y
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNGEM=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_DEBUG=y
+# CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES is not set
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_SWAP=y
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SUNXI_CCU=y
+CONFIG_SUNXI_RSB=m
+CONFIG_SUNXI_SRAM=y
+CONFIG_SUNXI_WATCHDOG=m
+CONFIG_SURFACE3_WMI=m
+CONFIG_SURFACE_3_BUTTON=m
+CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+CONFIG_SWAP=y
+CONFIG_SWIOTLB=y
+CONFIG_SWIOTLB_XEN=y
+CONFIG_SWPHY=y
+CONFIG_SWP_EMULATE=y
+CONFIG_SWP_EMULATION=y
+CONFIG_SW_SYNC=y
+CONFIG_SX9500=m
+CONFIG_SXGBE_ETH=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_SYNC_FILE=y
+CONFIG_SYN_COOKIES=y
+CONFIG_SYSCON_REBOOT_MODE=m
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_SYSC_R8A7743=y
+CONFIG_SYSC_R8A7745=y
+CONFIG_SYSC_R8A77470=y
+CONFIG_SYSC_R8A774A1=y
+CONFIG_SYSC_R8A774C0=y
+CONFIG_SYSC_R8A7779=y
+CONFIG_SYSC_R8A7790=y
+CONFIG_SYSC_R8A7791=y
+CONFIG_SYSC_R8A7792=y
+CONFIG_SYSC_R8A7794=y
+CONFIG_SYSC_R8A7795=y
+CONFIG_SYSC_R8A7796=y
+CONFIG_SYSC_R8A77965=y
+CONFIG_SYSC_R8A77970=y
+CONFIG_SYSC_R8A77980=y
+CONFIG_SYSC_R8A77990=y
+CONFIG_SYSC_R8A77995=y
+CONFIG_SYSC_RCAR=y
+CONFIG_SYSC_RMOBILE=y
+CONFIG_SYSFS=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYSTEMPORT=m
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
+CONFIG_SYSTEM_BLACKLIST_KEYRING=y
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+CONFIG_SYSTEM_EXTRA_CERTIFICATE=y
+CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_SYS_SUPPORTS_EM_STI=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_SYS_SUPPORTS_SH_CMT=y
+CONFIG_SYS_SUPPORTS_SH_MTU2=y
+CONFIG_SYS_SUPPORTS_SH_TMU=y
+CONFIG_T5403=m
+CONFIG_TABLET_SERIAL_WACOM4=m
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
+CONFIG_TAHVO_USB=m
+CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
+CONFIG_TAP=m
+CONFIG_TARGET_CORE=m
+CONFIG_TASKSTATS=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_TASK_XACCT=y
+CONFIG_TC1100_WMI=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
+CONFIG_TCG_IBMVTPM=y
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_CORE=y
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_ST33ZP24=m
+CONFIG_TCG_TIS_ST33ZP24_SPI=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_VTPM_PROXY=m
+CONFIG_TCG_XEN=m
+CONFIG_TCIC=m
+CONFIG_TCM_FC=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
+CONFIG_TCM_USER2=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_TCS3414=m
+CONFIG_TCS3472=m
+CONFIG_TEE=m
+CONFIG_TEGRA124_EMC=y
+CONFIG_TEGRA20_APB_DMA=y
+CONFIG_TEGRA20_EMC=y
+CONFIG_TEGRA_AHB=y
+CONFIG_TEGRA_BPMP=y
+CONFIG_TEGRA_BPMP_THERMAL=m
+CONFIG_TEGRA_CLK_DFLL=y
+CONFIG_TEGRA_CLK_EMC=y
+CONFIG_TEGRA_GMI=m
+CONFIG_TEGRA_HOST1X=m
+CONFIG_TEGRA_HOST1X_FIREWALL=y
+CONFIG_TEGRA_HSP_MBOX=y
+CONFIG_TEGRA_IOMMU_GART=y
+CONFIG_TEGRA_IOMMU_SMMU=y
+CONFIG_TEGRA_IVC=y
+CONFIG_TEGRA_MC=y
+# CONFIG_TEGRA_SOCTHERM is not set
+CONFIG_TEGRA_TIMER=y
+CONFIG_TEGRA_VDE=m
+CONFIG_TEGRA_WATCHDOG=m
+CONFIG_TEHUTI=m
+CONFIG_TELCLOCK=m
+CONFIG_TERANETICS_PHY=m
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_BITMAP is not set
+CONFIG_TEST_BLACKHOLE_DEV=m
+CONFIG_TEST_BPF=m
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_TEST_OBJAGG is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_PARMAN is not set
+CONFIG_TEST_POWER=m
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_XARRAY is not set
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_EMULATION=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_MMIO=m
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THP_SWAP=y
+CONFIG_THREAD_INFO_IN_TASK=y
+CONFIG_THREAD_SHIFT=14
+CONFIG_THRUSTMASTER_FF=y
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_THUNDERBOLT=m
+CONFIG_THUNDERBOLT_NET=m
+CONFIG_THUNDERX2_PMU=m
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_RGX=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TICK_ONESHOT=y
+CONFIG_TIFM_7XX1=m
+CONFIG_TIGON3=m
+CONFIG_TIGON3_HWMON=y
+CONFIG_TIMB_DMA=m
+CONFIG_TIMERFD=y
+CONFIG_TIMER_ACPI=y
+CONFIG_TIMER_IMX_SYS_CTR=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_TIPC=m
+CONFIG_TIPC_DIAG=m
+CONFIG_TIPC_MEDIA_IB=y
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_TI_ADC081C=m
+CONFIG_TI_ADC0832=m
+CONFIG_TI_ADC084S021=m
+CONFIG_TI_ADC108S102=m
+CONFIG_TI_ADC12138=m
+CONFIG_TI_ADC128S052=m
+CONFIG_TI_ADC161S626=m
+CONFIG_TI_ADS1015=m
+CONFIG_TI_ADS124S08=m
+CONFIG_TI_ADS7950=m
+CONFIG_TI_ADS8344=m
+CONFIG_TI_ADS8688=m
+CONFIG_TI_AM335X_ADC=m
+CONFIG_TI_CPPI41=m
+CONFIG_TI_CPSW=y
+# CONFIG_TI_CPSW_PHY_SEL is not set
+CONFIG_TI_CPTS=y
+CONFIG_TI_CPTS_MOD=y
+CONFIG_TI_DAC082S085=m
+CONFIG_TI_DAC5571=m
+CONFIG_TI_DAC7311=m
+CONFIG_TI_DAC7612=m
+CONFIG_TI_DAVINCI_EMAC=m
+CONFIG_TI_DAVINCI_MDIO=y
+CONFIG_TI_DMA_CROSSBAR=y
+CONFIG_TI_EDMA=y
+CONFIG_TI_EMIF=m
+CONFIG_TI_EMIF_SRAM=m
+CONFIG_TI_MESSAGE_MANAGER=y
+CONFIG_TI_PIPE3=m
+CONFIG_TI_SCI_CLK=m
+# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set
+CONFIG_TI_SCI_INTA_IRQCHIP=y
+CONFIG_TI_SCI_INTA_MSI_DOMAIN=y
+CONFIG_TI_SCI_INTR_IRQCHIP=y
+CONFIG_TI_SCI_PM_DOMAINS=m
+CONFIG_TI_SCI_PROTOCOL=y
+CONFIG_TI_SOC_THERMAL=m
+CONFIG_TI_ST=m
+CONFIG_TI_SYSC=y
+CONFIG_TI_THERMAL=y
+CONFIG_TI_TLC4541=m
+CONFIG_TLAN=m
+CONFIG_TLS_DEVICE=y
+CONFIG_TMD_HERMES=m
+CONFIG_TMP006=m
+CONFIG_TMP007=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_TN3215=y
+CONFIG_TN3215_CONSOLE=y
+CONFIG_TN3270=y
+CONFIG_TN3270_CONSOLE=y
+CONFIG_TN3270_FS=m
+CONFIG_TN3270_TTY=y
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_TORTURE_TEST=m
+# CONFIG_TOSHIBA is not set
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+# CONFIG_TOSHIBA_WMI is not set
+CONFIG_TOUCHSCREEN_88PM860X=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ADC=m
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AR1021_I2C=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_BU21029=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
+CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
+CONFIG_TOUCHSCREEN_DA9034=m
+CONFIG_TOUCHSCREEN_DA9052=m
+CONFIG_TOUCHSCREEN_DMI=y
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_HIDEEP=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_IPROC=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
+CONFIG_TOUCHSCREEN_RM_TS=m
+CONFIG_TOUCHSCREEN_ROHM_BU21023=m
+CONFIG_TOUCHSCREEN_S6SY761=m
+CONFIG_TOUCHSCREEN_SILEAD=m
+CONFIG_TOUCHSCREEN_SIS_I2C=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_STMFTS=m
+CONFIG_TOUCHSCREEN_STMPE=m
+# CONFIG_TOUCHSCREEN_SUN4I is not set
+CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
+CONFIG_TOUCHSCREEN_SX8654=m
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_TS4800=m
+CONFIG_TOUCHSCREEN_TSC2004=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
+CONFIG_TOUCHSCREEN_TSC200X_CORE=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_ZET6223=m
+CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TPL0102=m
+CONFIG_TPM_KEY_PARSER=m
+CONFIG_TPS68470_PMIC_OPREGION=y
+CONFIG_TQMX86_WDT=m
+CONFIG_TRACEPOINTS=y
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_TRACER_SNAPSHOT=y
+# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
+CONFIG_TRACE_CLOCK=y
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACING=y
+CONFIG_TRACING_MAP=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TRUSTED_FOUNDATIONS=y
+CONFIG_TRUSTED_KEYS=y
+CONFIG_TS4800_IRQ=m
+CONFIG_TS4800_WATCHDOG=m
+CONFIG_TSL2583=m
+CONFIG_TSL2772=m
+CONFIG_TSL4531=m
+CONFIG_TSYS01=m
+CONFIG_TSYS02D=m
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TTY=y
+CONFIG_TTY_PRINTK_LEVEL=6
+CONFIG_TULIP=m
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_TUN=y
+# CONFIG_TUNE_DEFAULT is not set
+# CONFIG_TUNE_Z10 is not set
+# CONFIG_TUNE_Z13 is not set
+# CONFIG_TUNE_Z14 is not set
+CONFIG_TUNE_Z15=y
+# CONFIG_TUNE_Z196 is not set
+# CONFIG_TUNE_Z900 is not set
+# CONFIG_TUNE_Z990 is not set
+# CONFIG_TUNE_Z9_109 is not set
+# CONFIG_TUNE_ZEC12 is not set
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_MADC=m
+CONFIG_TWL4030_POWER=y
+CONFIG_TWL4030_USB=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_TWL6030_GPADC=m
+CONFIG_TWL6030_USB=m
+CONFIG_TWL6040_CORE=y
+CONFIG_TYPEC=m
+CONFIG_TYPEC_DP_ALTMODE=m
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_MUX_PI3USB30532=m
+CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_RT1711H=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TPS6598X=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_TYPHOON=m
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_UBIFS_ATIME_SUPPORT is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_AUTHENTICATION=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_SECURITY=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UBIFS_FS_ZSTD=y
+# CONFIG_UBSAN is not set
+CONFIG_UBSAN_ALIGNMENT=y
+CONFIG_UBUNTU_ODM_DRIVERS=y
+CONFIG_UCB1400_CORE=m
+CONFIG_UCLAMP_BUCKETS_COUNT=5
+CONFIG_UCLAMP_TASK=y
+CONFIG_UCLAMP_TASK_GROUP=y
+CONFIG_UCS2_STRING=y
+CONFIG_UCSI_ACPI=m
+CONFIG_UCSI_CCG=m
+# CONFIG_UDBG_RTAS_CONSOLE is not set
+CONFIG_UDF_FS=m
+CONFIG_UDMABUF=y
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_ARM=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_UHID=m
+CONFIG_UID16=y
+CONFIG_UIO=m
+CONFIG_UIO_FSL_ELBC_GPCM=m
+# CONFIG_UIO_FSL_ELBC_GPCM_NETX5152 is not set
+CONFIG_UIO_HV_GENERIC=m
+CONFIG_ULI526X=m
+CONFIG_ULTRA=m
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_UNICODE=y
+# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_UNIPHIER_EFUSE=m
+CONFIG_UNIPHIER_MDMAC=m
+CONFIG_UNIPHIER_SYSTEM_BUS=y
+CONFIG_UNIPHIER_THERMAL=m
+CONFIG_UNIPHIER_WATCHDOG=m
+CONFIG_UNISYSSPAR=y
+CONFIG_UNISYS_VISORBUS=m
+CONFIG_UNISYS_VISORHBA=m
+CONFIG_UNISYS_VISORINPUT=m
+CONFIG_UNISYS_VISORNIC=m
+CONFIG_UNIX=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX_DIAG=m
+CONFIG_UNIX_SCM=y
+CONFIG_UNMAP_KERNEL_AT_EL0=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_UNWINDER_FRAME_POINTER=y
+# CONFIG_UNWINDER_GUESS is not set
+# CONFIG_UNWINDER_ORC is not set
+CONFIG_UPROBES=y
+CONFIG_UPROBE_EVENTS=y
+CONFIG_US5182D=m
+CONFIG_USB=y
+CONFIG_USBIP_CORE=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USBIP_VUDC=m
+CONFIG_USBPCWATCHDOG=m
+CONFIG_USB_ACM=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_AIRSPY=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_AN2720=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_ASPEED_VHUB=m
+CONFIG_USB_ATM=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_BDC_UDC=m
+CONFIG_USB_BELKIN=y
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_PCI_WRAP=m
+CONFIG_USB_CHAOSKEY=m
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA_OF=m
+CONFIG_USB_CHIPIDEA_PCI=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_CONFIGFS_F_TCM=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_DSBR=m
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_DWC2=y
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_DUAL_ROLE is not set
+CONFIG_USB_DWC2_HOST=y
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_DUAL_ROLE=y
+CONFIG_USB_DWC3_EXYNOS=m
+# CONFIG_USB_DWC3_GADGET is not set
+CONFIG_USB_DWC3_HAPS=m
+# CONFIG_USB_DWC3_HOST is not set
+CONFIG_USB_DWC3_KEYSTONE=m
+CONFIG_USB_DWC3_MESON_G12A=m
+CONFIG_USB_DWC3_OF_SIMPLE=m
+CONFIG_USB_DWC3_OMAP=m
+CONFIG_USB_DWC3_PCI=m
+CONFIG_USB_DWC3_QCOM=m
+CONFIG_USB_DWC3_ULPI=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_EG20T=m
+CONFIG_USB_EHCI_EXYNOS=y
+CONFIG_USB_EHCI_FSL=m
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_NPCM7XX=m
+CONFIG_USB_EHCI_HCD_OMAP=m
+CONFIG_USB_EHCI_HCD_ORION=y
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+CONFIG_USB_EHCI_MXC=m
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TEGRA=m
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_EZUSB_FX2=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_FSL_USB2=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUSB300=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_MIDI=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_PRINTER=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_TCM=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UAC1_LEGACY=m
+CONFIG_USB_F_UAC2=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_GADGETFS=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_XILINX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_NCM=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HACKRF=m
+# CONFIG_USB_HCD_TEST_MODE is not set
+CONFIG_USB_HID=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
+CONFIG_USB_HSO=m
+CONFIG_USB_HUB_USB251XB=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_IMX21_HCD=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_HCD=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+CONFIG_USB_ISP1761_UDC=y
+CONFIG_USB_KAWETH=m
+CONFIG_USB_KBD=m
+CONFIG_USB_KC2190=y
+CONFIG_USB_KEENE=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LD=m
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
+CONFIG_USB_LED_TRIG=y
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_LINK_LAYER_TEST=m
+CONFIG_USB_M5602=m
+# CONFIG_USB_M66592 is not set
+CONFIG_USB_MA901=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MON=m
+CONFIG_USB_MOUSE=m
+CONFIG_USB_MR800=m
+CONFIG_USB_MSI2500=m
+CONFIG_USB_MTU3=m
+# CONFIG_USB_MTU3_DEBUG is not set
+CONFIG_USB_MTU3_DUAL_ROLE=y
+# CONFIG_USB_MTU3_GADGET is not set
+# CONFIG_USB_MTU3_HOST is not set
+CONFIG_USB_MUSB_AM335X_CHILD=m
+CONFIG_USB_MUSB_AM35X=m
+CONFIG_USB_MUSB_DSPS=m
+CONFIG_USB_MUSB_DUAL_ROLE=y
+# CONFIG_USB_MUSB_GADGET is not set
+# CONFIG_USB_MUSB_HOST is not set
+CONFIG_USB_MUSB_OMAP2PLUS=m
+CONFIG_USB_MUSB_SUNXI=m
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CH9200=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_OHCI_EXYNOS=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_OMAP3=m
+CONFIG_USB_OHCI_HCD_PCI=y
+# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
+# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PCI=y
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_PHY=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_PULSE8_CEC=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_PXA27X=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RAINSHADOW_CEC=m
+CONFIG_USB_RAREMONO=m
+CONFIG_USB_RENESAS_USB3=m
+CONFIG_USB_RENESAS_USBHS=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_ROLES_INTEL_XHCI=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_F8153X=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_UPD78F0730=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_SI470X=m
+CONFIG_USB_SI4713=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_HCD_ISO=y
+CONFIG_USB_SNP_CORE=m
+CONFIG_USB_SNP_UDC_PLAT=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_TEGRA_PHY=m
+CONFIG_USB_TEST=m
+CONFIG_USB_TMC=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_UAS=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_UHCI_ASPEED=y
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_UHCI_PLATFORM=y
+CONFIG_USB_UHCI_SUPPORT_NON_PCI_HC=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_ULPI_VIEWPORT=y
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_VL600=m
+CONFIG_USB_WDM=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_XHCI_DBGCAP=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_HISTB=m
+CONFIG_USB_XHCI_MTK=m
+CONFIG_USB_XHCI_MVEBU=m
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_XHCI_RCAR=m
+CONFIG_USB_XHCI_TEGRA=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_ZERO=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USELIB=y
+CONFIG_USERFAULTFD=y
+CONFIG_USERIO=m
+CONFIG_USER_NS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_USE_OF=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_UTS_NS=y
+CONFIG_UV_MMTIMER=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_WHCI=m
+CONFIG_U_SERIAL_CONSOLE=y
+CONFIG_V4L2_FLASH_LED_CLASS=m
+CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_RADIO_ISA_DRIVERS=y
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VALIDATE_FS_PARSER=y
+# CONFIG_VBOXGUEST is not set
+CONFIG_VCNL4000=m
+CONFIG_VCNL4035=m
+CONFIG_VDSO=y
+CONFIG_VEML6070=m
+CONFIG_VERSION_SIGNATURE=""
+CONFIG_VETH=m
+CONFIG_VEXPRESS_CONFIG=y
+CONFIG_VEXPRESS_SYSCFG=y
+CONFIG_VF610_ADC=m
+CONFIG_VF610_DAC=m
+CONFIG_VFAT_FS=y
+CONFIG_VFIO_AMBA=m
+CONFIG_VFIO_AP=m
+CONFIG_VFIO_CCW=m
+CONFIG_VFIO_IOMMU_SPAPR_TCE=y
+CONFIG_VFIO_MDEV=m
+CONFIG_VFIO_MDEV_DEVICE=m
+CONFIG_VFIO_NOIOMMU=y
+CONFIG_VFIO_PCI_IGD=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_NVLINK2=y
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PLATFORM=m
+CONFIG_VFIO_PLATFORM_AMDXGBE_RESET=m
+CONFIG_VFIO_PLATFORM_BCMFLEXRM_RESET=m
+CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET=m
+CONFIG_VFIO_SPAPR_EEH=y
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_VF_USE_ARM_GLOBAL_TIMER=y
+# CONFIG_VF_USE_PIT_TIMER is not set
+CONFIG_VGASTATE=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_RING=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_VIA_WDT=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_DMA_SG=m
+CONFIG_VIDEOBUF2_DVB=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_VIDEO_AD5820=m
+CONFIG_VIDEO_AD9389B=m
+CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_ADV7393=m
+CONFIG_VIDEO_ADV748X=m
+CONFIG_VIDEO_ADV7511=m
+CONFIG_VIDEO_ADV7511_CEC=y
+CONFIG_VIDEO_ADV7604=m
+CONFIG_VIDEO_ADV7604_CEC=y
+CONFIG_VIDEO_ADV7842=m
+CONFIG_VIDEO_ADV7842_CEC=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_AK7375=m
+CONFIG_VIDEO_AK881X=m
+CONFIG_VIDEO_ALLEGRO_DVT=m
+CONFIG_VIDEO_APTINA_PLL=m
+CONFIG_VIDEO_ASPEED=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_AU0828_V4L2=y
+CONFIG_VIDEO_BCM2835=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_CADENCE=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
+CONFIG_VIDEO_CADENCE_CSI2TX=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_COBALT=m
+CONFIG_VIDEO_CODA=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CROS_EC_CEC=m
+CONFIG_VIDEO_CS3308=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_ENABLE_VP3054=y
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_VIDEO_DW9714=m
+CONFIG_VIDEO_DW9807_VCM=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_ET8EK8=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_FB_IVTV_FORCE_PAT=y
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_LOADER=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_GS1662=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_I2C=m
+CONFIG_VIDEO_IMX214=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX274=m
+CONFIG_VIDEO_IMX319=m
+CONFIG_VIDEO_IMX355=m
+CONFIG_VIDEO_IMX7_CSI=m
+CONFIG_VIDEO_IMX_CSI=m
+CONFIG_VIDEO_IMX_MEDIA=m
+CONFIG_VIDEO_IMX_PXP=m
+CONFIG_VIDEO_IMX_VDOA=m
+CONFIG_VIDEO_IPU3_CIO2=m
+CONFIG_VIDEO_IPU3_IMGU=m
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_IVTV_ALSA=m
+# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_LM3560=m
+CONFIG_VIDEO_LM3646=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_MEDIATEK_VPU=m
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+CONFIG_VIDEO_MESON_AO_CEC=m
+CONFIG_VIDEO_MESON_G12A_AO_CEC=m
+CONFIG_VIDEO_MESON_VDEC=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_ML86V7667=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_MT9M001=m
+CONFIG_VIDEO_MT9M032=m
+CONFIG_VIDEO_MT9M111=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
+CONFIG_VIDEO_MT9T112=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_MT9V111=m
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_OMAP2_VOUT=m
+CONFIG_VIDEO_OMAP2_VOUT_VRFB=y
+CONFIG_VIDEO_OMAP3=m
+# CONFIG_VIDEO_OMAP3_DEBUG is not set
+CONFIG_VIDEO_OMAP4=m
+CONFIG_VIDEO_OV13858=m
+CONFIG_VIDEO_OV2640=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV2680=m
+CONFIG_VIDEO_OV2685=m
+CONFIG_VIDEO_OV5640=m
+CONFIG_VIDEO_OV5645=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV5670=m
+CONFIG_VIDEO_OV5675=m
+CONFIG_VIDEO_OV5695=m
+CONFIG_VIDEO_OV6650=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_OV772X=m
+CONFIG_VIDEO_OV7740=m
+CONFIG_VIDEO_OV8856=m
+CONFIG_VIDEO_OV9640=m
+CONFIG_VIDEO_OV9650=m
+# CONFIG_VIDEO_PCI_SKELETON is not set
+CONFIG_VIDEO_PVRUSB2=m
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_PVRUSB2_DVB=y
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_QCOM_CAMSS=m
+CONFIG_VIDEO_QCOM_VENUS=m
+CONFIG_VIDEO_RCAR_CSI2=m
+CONFIG_VIDEO_RCAR_DRIF=m
+CONFIG_VIDEO_RCAR_VIN=m
+CONFIG_VIDEO_RENESAS_CEU=m
+CONFIG_VIDEO_RENESAS_FCP=m
+CONFIG_VIDEO_RENESAS_FDP1=m
+CONFIG_VIDEO_RENESAS_JPU=m
+CONFIG_VIDEO_RENESAS_VSP1=m
+CONFIG_VIDEO_RJ54N1=m
+CONFIG_VIDEO_ROCKCHIP_RGA=m
+CONFIG_VIDEO_S5C73M3=m
+CONFIG_VIDEO_S5K4ECGX=m
+CONFIG_VIDEO_S5K5BAF=m
+CONFIG_VIDEO_S5K6A3=m
+CONFIG_VIDEO_S5K6AA=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA6752HS=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_GO7007=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7185=m
+# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set
+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
+CONFIG_VIDEO_SAMSUNG_S5P_CEC=m
+CONFIG_VIDEO_SAMSUNG_S5P_G2D=m
+CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
+CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
+CONFIG_VIDEO_SECO_CEC=m
+CONFIG_VIDEO_SECO_RC=y
+CONFIG_VIDEO_SH_VEU=m
+CONFIG_VIDEO_SMIAPP=m
+CONFIG_VIDEO_SMIAPP_PLL=m
+CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_STK1160=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_ST_MIPID02=m
+CONFIG_VIDEO_SUN4I_CSI=m
+CONFIG_VIDEO_SUN6I_CSI=m
+CONFIG_VIDEO_SUNXI=y
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TC358743_CEC=y
+CONFIG_VIDEO_TDA1997X=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_TEGRA_HDMI_CEC=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_THS8200=m
+CONFIG_VIDEO_TI_CAL=m
+CONFIG_VIDEO_TI_CSC=m
+CONFIG_VIDEO_TI_SC=m
+CONFIG_VIDEO_TI_VPDMA=m
+CONFIG_VIDEO_TI_VPE=m
+# CONFIG_VIDEO_TI_VPE_DEBUG is not set
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW5864=m
+CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_TW9910=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_VIDEO_V4L2_TPG=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIVID_CEC=y
+CONFIG_VIDEO_VIVID_MAX_DEVS=64
+CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_XILINX=m
+CONFIG_VIDEO_XILINX_TPG=m
+CONFIG_VIDEO_XILINX_VTC=m
+CONFIG_VIPERBOARD_ADC=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_BLK_SCSI=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_FS=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_IOMMU=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_PMEM=m
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_VIRTUALIZATION=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_VIRT_WIFI=m
+CONFIG_VITESSE_PHY=m
+CONFIG_VL53L0X_I2C=m
+CONFIG_VL6180=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_VM86=y
+CONFIG_VMAP_STACK=y
+CONFIG_VMCP=y
+CONFIG_VMCP_CMA_SIZE=4
+CONFIG_VMD=m
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_FAKE=m
+CONFIG_VME_TSI148=m
+CONFIG_VME_USER=m
+CONFIG_VMIVME_7805=m
+CONFIG_VMLOGRDR=m
+# CONFIG_VMSPLIT_1G is not set
+# CONFIG_VMSPLIT_2G is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_3G_OPT is not set
+CONFIG_VMWARE_BALLOON=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_VMWARE_VMCI=m
+CONFIG_VMWARE_VMCI_VSOCKETS=m
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VOP=m
+CONFIG_VORTEX=m
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKETS_DIAG=m
+CONFIG_VSOCKMON=m
+CONFIG_VSX=y
+CONFIG_VT=y
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_VXLAN=m
+CONFIG_VZ89X=m
+CONFIG_W1_CON=y
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_MXC=m
+CONFIG_W1_MASTER_SGI=m
+CONFIG_W1_SLAVE_DS2405=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS250X=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS2805=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_WAFER_WDT=m
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_WANXL=m
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_WARN_DYNAMIC_STACK is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP=y
+# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC is not set
+CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m
+CONFIG_WATCHDOG_RTAS=m
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+# CONFIG_WCN36XX_SNAPDRAGON_HACKS is not set
+CONFIG_WD80x3=m
+CONFIG_WDAT_WDT=m
+CONFIG_WDT=m
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PRIV=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WIL6210=m
+CONFIG_WIL6210_DEBUGFS=y
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_WIL6210_TRACING=y
+CONFIG_WILC1000=m
+CONFIG_WILC1000_HW_OOB_INTR=y
+CONFIG_WILC1000_SDIO=m
+CONFIG_WILC1000_SPI=m
+CONFIG_WILCO_EC=m
+CONFIG_WILCO_EC_DEBUGFS=m
+CONFIG_WILCO_EC_EVENTS=m
+CONFIG_WILCO_EC_TELEMETRY=m
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WINBOND_840=m
+CONFIG_WINDFARM=m
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+# CONFIG_WIRELESS_WDS is not set
+CONFIG_WIZNET_BUS_ANY=y
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_WIZNET_W5300=m
+# CONFIG_WKUP_M3_IPC is not set
+CONFIG_WKUP_M3_RPROC=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+CONFIG_WLAN_VENDOR_ATH=y
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_WLAN_VENDOR_BROADCOM=y
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+CONFIG_WLAN_VENDOR_RALINK=y
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WLCORE_SPI=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_POWER=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_WMI_BMOF=m
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+CONFIG_X25_ASY=m
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_X86=y
+CONFIG_X86_16BIT=y
+CONFIG_X86_32=y
+CONFIG_X86_32_IRIS=m
+# CONFIG_X86_32_NON_STANDARD is not set
+CONFIG_X86_32_SMP=y
+# CONFIG_X86_5LEVEL is not set
+CONFIG_X86_64=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_ACPI_CPUFREQ=y
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_APM_BOOT=y
+# CONFIG_X86_BIGSMP is not set
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
+# CONFIG_X86_CPA_STATISTICS is not set
+CONFIG_X86_CPUFREQ_NFORCE2=y
+CONFIG_X86_CPUID=m
+CONFIG_X86_CPU_RESCTRL=y
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_X86_DEBUG_FPU=y
+# CONFIG_X86_DECODER_SELFTEST is not set
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_X86_ESPFIX32=y
+CONFIG_X86_ESPFIX64=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_E_POWERSAVER is not set
+CONFIG_X86_FEATURE_NAMES=y
+CONFIG_X86_GENERIC=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_GX_SUSPMOD=m
+CONFIG_X86_HV_CALLBACK_VECTOR=y
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
+CONFIG_X86_INTEL_MPX=y
+CONFIG_X86_INTEL_PSTATE=y
+# CONFIG_X86_INTEL_QUARK is not set
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
+CONFIG_X86_INTEL_UMIP=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_LEGACY_VM86=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_MCE=y
+CONFIG_X86_MCELOG_LEGACY=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_INJECT=m
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_THRESHOLD=y
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_X86_NUMACHIP=y
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_PAE=y
+CONFIG_X86_PAT=y
+CONFIG_X86_PCC_CPUFREQ=y
+CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY_DEVICE=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=y
+# CONFIG_X86_PTDUMP is not set
+CONFIG_X86_PTDUMP_CORE=y
+# CONFIG_X86_RDC321X is not set
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_X86_SFI_CPUFREQ=m
+CONFIG_X86_SMAP=y
+CONFIG_X86_SPEEDSTEP_CENTRINO=y
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
+CONFIG_X86_SPEEDSTEP_ICH=y
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_X86_SPEEDSTEP_SMI=y
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_SYSFB is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_TSC=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_UV=y
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+# CONFIG_X86_VSMP is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_X86_X2APIC=y
+CONFIG_X86_X32=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_XDP_SOCKETS_DIAG=m
+CONFIG_XENFS=m
+CONFIG_XEN_512GB=y
+CONFIG_XEN_ACPI=y
+CONFIG_XEN_ACPI_PROCESSOR=y
+CONFIG_XEN_AUTO_XLATE=y
+CONFIG_XEN_BACKEND=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_COMPAT_XENFS=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_EFI=y
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_FRONT_PGDIR_SHBUF=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GNTDEV_DMABUF=y
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_GRANT_DMA_ALLOC=y
+CONFIG_XEN_HAVE_PVMMU=y
+CONFIG_XEN_HAVE_VPMU=y
+CONFIG_XEN_MCE_LOG=y
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_XEN_NETDEV_FRONTEND=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_PV=y
+# CONFIG_XEN_PVCALLS_BACKEND is not set
+CONFIG_XEN_PVCALLS_FRONTEND=m
+CONFIG_XEN_PVH=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_PVHVM_SMP=y
+CONFIG_XEN_PV_SMP=y
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
+CONFIG_XEN_SCSI_BACKEND=m
+CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_XEN_SYMS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_WDT=m
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_XFRM_MIGRATE is not set
+CONFIG_XFRM_OFFLOAD=y
+CONFIG_XFRM_STATISTICS=y
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_USER=m
+# CONFIG_XFS_DEBUG is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_ONLINE_SCRUB is not set
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+CONFIG_XGENE_DMA=m
+CONFIG_XGENE_PMU=y
+CONFIG_XGENE_SLIMPRO_MBOX=m
+CONFIG_XIAOMI_WMI=m
+CONFIG_XILINX_AXI_EMAC=m
+CONFIG_XILINX_DMA=m
+CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_LL_TEMAC=m
+CONFIG_XILINX_PR_DECOUPLER=m
+CONFIG_XILINX_VCU=m
+CONFIG_XILINX_XADC=m
+CONFIG_XILINX_ZYNQMP_DMA=m
+CONFIG_XILLYBUS_OF=m
+CONFIG_XILLYBUS_PCIE=m
+CONFIG_XIL_AXIS_FIFO=m
+CONFIG_XMON=y
+# CONFIG_XMON_DEFAULT is not set
+CONFIG_XMON_DEFAULT_RO_MODE=y
+CONFIG_XMON_DISASSEMBLY=y
+CONFIG_XOR_BLOCKS=m
+CONFIG_XPS=y
+CONFIG_XXHASH=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_YAM=m
+CONFIG_YENTA=m
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_Z3FOLD=m
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBUD=y
+CONFIG_ZCRYPT=m
+CONFIG_ZCRYPT_MULTIDEVNODES=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_ZEROPLUS_FF=y
+CONFIG_ZFCP=m
+CONFIG_ZISOFS=y
+CONFIG_ZLIB_DFLTCC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DEVICE=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ZOPT2201=m
+CONFIG_ZPA2326=m
+CONFIG_ZPA2326_I2C=m
+CONFIG_ZPA2326_SPI=m
+CONFIG_ZPOOL=y
+CONFIG_ZRAM=m
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSTD_COMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_ZSWAP=y
+CONFIG_ZX_TDM=m
+CONFIG_ZYNQMP_FIRMWARE=y
+# CONFIG_ZYNQMP_FIRMWARE_DEBUG is not set
+CONFIG_ZYNQMP_IPI_MBOX=y
+CONFIG_ZYNQMP_PM_DOMAINS=y
+CONFIG_ZYNQMP_POWER=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/i386/config.common.i386
+++ linux-gkeop-5.4-5.4.0/debian.master/config/i386/config.common.i386
@@ -0,0 +1,641 @@
+#
+# Config options for config.common.i386 automatically generated by splitconfig.pl
+#
+CONFIG_6LOWPAN=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=m
+# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DEBUGGER is not set
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_AD525X_DPOT=m
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ANDROID=y
+CONFIG_APDS9802ALS=m
+CONFIG_APPLICOM=m
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_ARCH_MMAP_RND_BITS=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCNET=m
+CONFIG_ATA=y
+CONFIG_ATALK=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_GENERIC=y
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=y
+CONFIG_ATM=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX88796B_PHY=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BCH=m
+CONFIG_BCMA=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BE2ISCSI=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BOUNCE=y
+# CONFIG_BPF_JIT_ALWAYS_ON is not set
+CONFIG_BSD_DISKLABEL=y
+CONFIG_C2PORT=m
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+CONFIG_CAN=m
+CONFIG_CB710_CORE=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CMDLINE_PARTITION=y
+# CONFIG_COMPAT_VDSO is not set
+CONFIG_COUNTER=m
+CONFIG_CRAMFS=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_DECNET=m
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DMADEVICES=y
+# CONFIG_DMA_CMA is not set
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DNET=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+# CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VKMS=m
+CONFIG_DS1682=m
+CONFIG_DUMMY_IRQ=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_ECHO=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI_CAPSULE_LOADER=y
+CONFIG_EFS_FS=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ETHOC=m
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_I740=m
+# CONFIG_FB_IBM_GXT4500 is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_METRONOME=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RIVA=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SM712=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIXED_PHY=y
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FRAME_WARN=1024
+CONFIG_FUSION=y
+CONFIG_GAMEPORT=m
+CONFIG_GENERIC_PHY=y
+CONFIG_GNSS=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GREYBUS=m
+CONFIG_HABANA_AI=m
+CONFIG_HAMACHI=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HIBERNATION=y
+CONFIG_HID=m
+CONFIG_HIO=m
+CONFIG_HMC6352=m
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_HPFS_FS=m
+CONFIG_HP_ILO=m
+CONFIG_HSI=m
+CONFIG_HSR=m
+CONFIG_HTC_PASIC3=m
+CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+# CONFIG_HZ_100 is not set
+CONFIG_I2C=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+# CONFIG_I2C_AMD_MP2 is not set
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+# CONFIG_I2C_SLAVE is not set
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ICS932S401=m
+CONFIG_IEEE802154=m
+CONFIG_IIO=m
+CONFIG_ILLEGAL_POINTER_VALUE=0
+# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INTERCONNECT=m
+CONFIG_IOMMU_IOVA=y
+CONFIG_IPACK_BUS=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IP_DCCP_CCID3 is not set
+CONFIG_IRQ_BYPASS_MANAGER=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_JFS_FS=m
+CONFIG_JME=m
+CONFIG_JUMP_LABEL=y
+CONFIG_KARMA_PARTITION=y
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZ4=y
+CONFIG_KVM=m
+CONFIG_LAPB=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LIBNVDIMM=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MAILBOX=y
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MCB=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMSTICK=m
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM8994=m
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MLXSW_I2C=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_CQHCI=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MTD=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+CONFIG_MTD_RAW_NAND=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFP=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOZOMI=m
+CONFIG_NR_CPUS=8
+CONFIG_NR_CPUS_DEFAULT=8
+CONFIG_NR_CPUS_RANGE_BEGIN=2
+CONFIG_NR_CPUS_RANGE_END=8
+CONFIG_NTB=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NVMEM=y
+CONFIG_NVRAM=m
+CONFIG_N_GSM=m
+# CONFIG_OF is not set
+CONFIG_OMFS_FS=m
+CONFIG_OSF_PARTITION=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_PACKING=y
+CONFIG_PAGE_EXTENSION=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_PARAVIRT=y
+CONFIG_PARPORT=m
+CONFIG_PATA_SIS=y
+CONFIG_PC104=y
+CONFIG_PCCARD=m
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCMCIA=m
+CONFIG_PGTABLE_LEVELS=3
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_CHERRYVIEW=m
+CONFIG_PM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPP=y
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_RAM=m
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PWM=y
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+CONFIG_RAPIDIO=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RC_CORE=m
+CONFIG_REED_SOLOMON=m
+# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REISERFS_FS=m
+CONFIG_REMOTEPROC=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RFKILL=y
+CONFIG_RMI4_CORE=m
+CONFIG_ROMFS_FS=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_S2IO=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SCHED_SMT=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SNIC=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_WD719X=m
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIO=y
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP=m
+CONFIG_SND=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_TIMER=m
+CONFIG_SOC_TI=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SOUND=m
+CONFIG_SPI=y
+# CONFIG_SPI_ROCKCHIP is not set
+CONFIG_SPMI=m
+CONFIG_SRAM=y
+CONFIG_SSB=m
+CONFIG_STAGING=y
+# CONFIG_STANDALONE is not set
+CONFIG_SUN_PARTITION=y
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSV_FS=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_THERMAL=y
+CONFIG_TIFM_CORE=m
+# CONFIG_TLS is not set
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TRACE_SINK=m
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TTY_PRINTK=y
+CONFIG_UFS_FS=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_DWC2_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_GADGET=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_SUPPORT=y
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_VIRQFD=m
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VME_BUS=y
+CONFIG_VMXNET3=m
+# CONFIG_VOP_BUS is not set
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+CONFIG_W1=m
+CONFIG_WAN=y
+CONFIG_WDTPCI=m
+CONFIG_WIMAX=m
+CONFIG_X25=m
+CONFIG_X86_INTEL_MID=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=6
+CONFIG_X86_SPEEDSTEP_LIB=y
+CONFIG_XEN=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=4
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILLYBUS=m
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YELLOWFIN=m
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZLIB_DEFLATE=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/i386/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/i386/config.flavour.generic
@@ -0,0 +1,9 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
+CONFIG_HZ=250
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_VOLUNTARY=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/i386/config.flavour.lowlatency
+++ linux-gkeop-5.4-5.4.0/debian.master/config/i386/config.flavour.lowlatency
@@ -0,0 +1,9 @@
+#
+# Config options for config.flavour.lowlatency automatically generated by splitconfig.pl
+#
+CONFIG_HZ=1000
+CONFIG_HZ_1000=y
+# CONFIG_HZ_250 is not set
+CONFIG_IRQ_FORCED_THREADING_DEFAULT=y
+CONFIG_PREEMPT=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/ppc64el/config.common.ppc64el
+++ linux-gkeop-5.4-5.4.0/debian.master/config/ppc64el/config.common.ppc64el
@@ -0,0 +1,640 @@
+#
+# Config options for config.common.ppc64el automatically generated by splitconfig.pl
+#
+CONFIG_6LOWPAN=m
+CONFIG_ABX500_CORE=y
+CONFIG_AC97_BUS=m
+CONFIG_AD525X_DPOT=m
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_AIX_PARTITION=y
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_ALTERA_TSE=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ANDROID=y
+CONFIG_APDS9802ALS=m
+CONFIG_APPLICOM=m
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=29
+CONFIG_ARCH_MMAP_RND_BITS_MIN=14
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=13
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=7
+CONFIG_ARCNET=m
+CONFIG_ATA=y
+CONFIG_ATALK=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_GENERIC=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=m
+CONFIG_ATM=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX88796B_PHY=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BCH=m
+CONFIG_BCMA=m
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_BE2ISCSI=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_SKD=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_C2PORT=m
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_CAIF=m
+CONFIG_CAN=m
+CONFIG_CB710_CORE=m
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CMDLINE=""
+CONFIG_CMDLINE_PARTITION=y
+CONFIG_CMM=m
+CONFIG_COUNTER=m
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CRAMFS=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_DEV_ATMEL_ECC=m
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
+CONFIG_DECNET=m
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DMADEVICES=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DNET=m
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_DP_AUX_CHARDEV=y
+CONFIG_DRM_DP_CEC=y
+# CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RCAR_LVDS is not set
+CONFIG_DRM_VGEM=m
+CONFIG_DRM_VKMS=m
+CONFIG_DS1682=m
+CONFIG_DUMMY_IRQ=m
+CONFIG_DW_WATCHDOG=m
+CONFIG_ECHO=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_EE1004=m
+CONFIG_EEPROM_IDT_89HPESX=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFS_FS=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ETHOC=m
+CONFIG_EVM_LOAD_X509=y
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_I740=m
+CONFIG_FB_IBM_GXT4500=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_METRONOME=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RIVA=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SM712=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_FIXED_PHY=y
+CONFIG_FORCE_MAX_ZONEORDER=9
+CONFIG_FPGA_BRIDGE=m
+CONFIG_FPGA_DFL=m
+CONFIG_FRAME_WARN=2048
+CONFIG_FUSION=y
+CONFIG_GAMEPORT=m
+CONFIG_GENERIC_PHY=y
+CONFIG_GNSS=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_AMD_FCH=m
+CONFIG_GPIO_DWAPB=m
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_SIOX=m
+CONFIG_GPIO_TPIC2810=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_TWL6040=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GREYBUS=m
+CONFIG_HABANA_AI=m
+CONFIG_HAMACHI=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+# CONFIG_HIBERNATION is not set
+CONFIG_HID=m
+# CONFIG_HIO is not set
+CONFIG_HMC6352=m
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+CONFIG_HPFS_FS=m
+CONFIG_HP_ILO=m
+CONFIG_HSI=m
+CONFIG_HSR=m
+CONFIG_HTC_PASIC3=m
+CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+CONFIG_I2C=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_CBUS_GPIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_HID=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
+CONFIG_I2C_MUX_MLXCPLD=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_REG=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NVIDIA_GPU=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+# CONFIG_I2C_SLAVE is not set
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_XILINX=m
+CONFIG_I3C=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ICS932S401=m
+CONFIG_IEEE802154=m
+CONFIG_IIO=m
+CONFIG_ILLEGAL_POINTER_VALUE=0x5deadbeef0000000
+CONFIG_IMA_ARCH_POLICY=y
+CONFIG_IMA_DEFAULT_HASH="sha256"
+# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH_SHA256=y
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-sig"
+CONFIG_IMA_LOAD_X509=y
+# CONFIG_IMA_NG_TEMPLATE is not set
+CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SIG_TEMPLATE=y
+CONFIG_INFINIBAND_BNXT_RE=m
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INTERCONNECT=m
+CONFIG_IPACK_BUS=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IP_DCCP_CCID3 is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
+# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_JFS_FS=m
+CONFIG_JME=m
+CONFIG_JUMP_LABEL=y
+CONFIG_KARMA_PARTITION=y
+CONFIG_KERNEL_GZIP=y
+CONFIG_KEXEC_FILE=y
+CONFIG_KVM=y
+CONFIG_LAPB=m
+# CONFIG_LATENCYTOP is not set
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LIBNVDIMM=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MAILBOX=y
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MCB=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_MSCC_MIIM=m
+CONFIG_MDIO_THUNDER=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY=y
+# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
+CONFIG_MEMSTICK=m
+# CONFIG_MEM_SOFT_DIRTY is not set
+CONFIG_MFD_88PM800=m
+CONFIG_MFD_88PM805=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_AXP20X_I2C=m
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_BD9571MWV=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_DA9062=m
+CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_KEMPLD=m
+CONFIG_MFD_LM3533=m
+CONFIG_MFD_LP3943=m
+CONFIG_MFD_MADERA=m
+CONFIG_MFD_MAX14577=y
+CONFIG_MFD_MAX77693=y
+CONFIG_MFD_MAX8907=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_MENF21BMC=m
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RETU=m
+CONFIG_MFD_RT5033=m
+CONFIG_MFD_SI476X_CORE=m
+CONFIG_MFD_SKY81452=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_TI_LMU=m
+CONFIG_MFD_TI_LP873X=m
+CONFIG_MFD_TPS65086=m
+# CONFIG_MFD_TPS65217 is not set
+CONFIG_MFD_TPS65912_I2C=y
+CONFIG_MFD_TQMX86=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_WM8994=m
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_ALCOR_PCI=m
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MLXSW_I2C=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_CQHCI=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MTD=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_NAND_ECC_SW_HAMMING=m
+CONFIG_MTD_OF_PARTS=m
+# CONFIG_MTD_PHYSMAP_GEMINI is not set
+# CONFIG_MTD_PHYSMAP_VERSATILE is not set
+CONFIG_MTD_RAW_NAND=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HP=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFC=m
+CONFIG_NFP=m
+CONFIG_NODES_SHIFT=8
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOZOMI=m
+CONFIG_NR_CPUS=2048
+CONFIG_NTB=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_NVMEM=y
+CONFIG_NVRAM=y
+CONFIG_N_GSM=m
+CONFIG_OF=y
+CONFIG_OMFS_FS=m
+CONFIG_OSF_PARTITION=y
+CONFIG_PACKING=y
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_PAGE_OFFSET=0xc000000000000000
+CONFIG_PANIC_TIMEOUT=10
+CONFIG_PARPORT=m
+CONFIG_PATA_SIS=m
+CONFIG_PC104=y
+# CONFIG_PCCARD is not set
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_PASID=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PHANTOM=m
+CONFIG_PHONET=m
+CONFIG_PHYLIB=y
+CONFIG_PHYSICAL_START=0x00000000
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
+CONFIG_PINCTRL=y
+CONFIG_PM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_POWERCAP=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPP=y
+CONFIG_PPS=y
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PSI_DEFAULT_DISABLED is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+CONFIG_PSTORE_RAM=m
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PWM=y
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+CONFIG_RAPIDIO=y
+CONFIG_RAVE_SP_CORE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RC_CORE=m
+CONFIG_REED_SOLOMON=m
+# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_TWL4030=m
+CONFIG_REISERFS_FS=m
+CONFIG_REMOTEPROC=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RFKILL=y
+CONFIG_RMI4_CORE=m
+CONFIG_ROMFS_FS=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_S2IO=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SCHED_SMT=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_SCSI_FDOMAIN_PCI=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_MYRB=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SNIC=m
+CONFIG_SCSI_SRP_ATTRS=y
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_WD719X=m
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SENSORS_APDS990X=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SERIAL_8250_DW=m
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SCCNXP=y
+CONFIG_SERIO=y
+CONFIG_SFC=m
+CONFIG_SFC_FALCON=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP=m
+CONFIG_SND=m
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_TIMER=m
+CONFIG_SOC_TI=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SOUND=m
+CONFIG_SPI=y
+# CONFIG_SPI_ROCKCHIP is not set
+CONFIG_SPMI=m
+CONFIG_SRAM=y
+CONFIG_SSB=m
+CONFIG_STAGING=y
+CONFIG_STANDALONE=y
+CONFIG_SUN_PARTITION=y
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSV_FS=m
+CONFIG_TCG_TIS_I2C_ATMEL=y
+CONFIG_TCG_TIS_I2C_INFINEON=y
+CONFIG_TCG_TIS_I2C_NUVOTON=y
+CONFIG_TCG_TIS_ST33ZP24_I2C=m
+CONFIG_THERMAL=y
+CONFIG_TIFM_CORE=m
+CONFIG_TLS=m
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TRACE_SINK=m
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_TTY_PRINTK=y
+CONFIG_UFS_FS=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_MF624=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_DWC2_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_SUPPORT=y
+CONFIG_VFIO=y
+CONFIG_VFIO_PCI=y
+CONFIG_VFIO_VIRQFD=y
+CONFIG_VIRTIO_MMIO=y
+# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
+CONFIG_VME_BUS=y
+# CONFIG_VOP_BUS is not set
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+CONFIG_W1=m
+CONFIG_WAN=y
+CONFIG_WDTPCI=m
+CONFIG_WIMAX=m
+CONFIG_X25=m
+CONFIG_XILINX_SDFEC=m
+CONFIG_XILINX_WATCHDOG=m
+CONFIG_XILLYBUS=m
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_TEST=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_YELLOWFIN=m
+CONFIG_ZIIRAVE_WATCHDOG=m
+CONFIG_ZLIB_DEFLATE=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/ppc64el/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/ppc64el/config.flavour.generic
@@ -0,0 +1,3 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/s390x/config.common.s390x
+++ linux-gkeop-5.4-5.4.0/debian.master/config/s390x/config.common.s390x
@@ -0,0 +1,577 @@
+#
+# Config options for config.common.s390x automatically generated by splitconfig.pl
+#
+# CONFIG_6LOWPAN is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_ALTERA_STAPL is not set
+# CONFIG_ALTERA_TSE is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ANDROID is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_ARCNET is not set
+# CONFIG_ATA is not set
+# CONFIG_ATALK is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_ATM is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_AUTOFS_FS=y
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_AX88796B_PHY is not set
+# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_BCMA is not set
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_BLK_DEV_RSXX is not set
+# CONFIG_BLK_DEV_SKD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BOUNCE is not set
+CONFIG_BPF_JIT_ALWAYS_ON=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_C2PORT is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_CAIF is not set
+# CONFIG_CAN is not set
+# CONFIG_CB710_CORE is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_CMM=y
+CONFIG_COMPAT_VDSO=y
+# CONFIG_COUNTER is not set
+CONFIG_CPU_BIG_ENDIAN=y
+# CONFIG_CRAMFS is not set
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_DECNET is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+# CONFIG_DMADEVICES is not set
+# CONFIG_DMA_CMA is not set
+CONFIG_DM_DEBUG=y
+# CONFIG_DNET is not set
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_DP_AUX_CHARDEV is not set
+# CONFIG_DRM_DP_CEC is not set
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_NOUVEAU is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
+# CONFIG_DRM_QXL is not set
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DS1682 is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_ECHO is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_EE1004 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_ETHOC is not set
+# CONFIG_EVM_LOAD_X509 is not set
+# CONFIG_EXTCON is not set
+# CONFIG_F2FS_FS is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_CARMINE is not set
+CONFIG_FB_CFB_COPYAREA=m
+CONFIG_FB_CFB_FILLRECT=m
+CONFIG_FB_CFB_IMAGEBLIT=m
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIMPLE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_SM712 is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FDDI is not set
+# CONFIG_FEALNX is not set
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+CONFIG_FIXED_PHY=m
+CONFIG_FORCE_MAX_ZONEORDER=9
+# CONFIG_FPGA_BRIDGE is not set
+# CONFIG_FPGA_DFL is not set
+CONFIG_FRAME_WARN=1024
+# CONFIG_FUSION is not set
+# CONFIG_GAMEPORT is not set
+# CONFIG_GENERIC_PHY is not set
+# CONFIG_GNSS is not set
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# CONFIG_GPIO_DWAPB is not set
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SIOX is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GREYBUS is not set
+# CONFIG_HABANA_AI is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HIBERNATION is not set
+# CONFIG_HID is not set
+# CONFIG_HIO is not set
+# CONFIG_HMC6352 is not set
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_HSI is not set
+# CONFIG_HSR is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HWMON is not set
+# CONFIG_HWSPINLOCK is not set
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+CONFIG_HZ=100
+CONFIG_HZ_100=y
+# CONFIG_HZ_1000 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_I2C=m
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_CHARDEV=m
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_HID is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_SLAVE is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_XILINX is not set
+# CONFIG_I3C is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_IIO is not set
+# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+# CONFIG_IMA_LOAD_X509 is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_READ_POLICY is not set
+# CONFIG_IMA_SIG_TEMPLATE is not set
+# CONFIG_INFINIBAND_BNXT_RE is not set
+# CONFIG_INFINIBAND_OCRDMA is not set
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+# CONFIG_INPUT_MISC is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_IPACK_BUS is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_IP_DCCP_CCID3=y
+CONFIG_IRQ_BYPASS_MANAGER=m
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JME is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZ4=y
+# CONFIG_KEXEC_FILE is not set
+CONFIG_KVM=y
+# CONFIG_LAPB is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_LCD_CLASS_DEVICE is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_LLC2 is not set
+CONFIG_LOG_BUF_SHIFT=18
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_MAILBOX is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MCB is not set
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_MDIO_BUS=m
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_THUNDER is not set
+CONFIG_MD_MULTIPATH=y
+# CONFIG_MEDIA_SUPPORT is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_MEMORY is not set
+# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_MEM_SOFT_DIRTY=y
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_AXP20X_I2C is not set
+# CONFIG_MFD_BCM590XX is not set
+# CONFIG_MFD_BD9571MWV is not set
+CONFIG_MFD_CORE=m
+# CONFIG_MFD_DA9062 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TQMX86 is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MLXSW_I2C is not set
+# CONFIG_MMC is not set
+# CONFIG_MTD is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_ADAPTEC is not set
+# CONFIG_NET_VENDOR_AGERE is not set
+# CONFIG_NET_VENDOR_ALTEON is not set
+# CONFIG_NET_VENDOR_AMD is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_ATHEROS is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_BROCADE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_DEC is not set
+# CONFIG_NET_VENDOR_DLINK is not set
+# CONFIG_NET_VENDOR_EMULEX is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HP is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_MYRI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_NVIDIA is not set
+# CONFIG_NET_VENDOR_OKI is not set
+# CONFIG_NET_VENDOR_PENSANDO is not set
+# CONFIG_NET_VENDOR_QLOGIC is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RDC is not set
+# CONFIG_NET_VENDOR_REALTEK is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SILAN is not set
+# CONFIG_NET_VENDOR_SIS is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_NFC is not set
+# CONFIG_NFP is not set
+CONFIG_NODES_SHIFT=4
+# CONFIG_NOZOMI is not set
+CONFIG_NR_CPUS=512
+# CONFIG_NTB is not set
+CONFIG_NTFS_RW=y
+# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set
+# CONFIG_NVMEM is not set
+# CONFIG_N_GSM is not set
+# CONFIG_OF is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_PACKING is not set
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_PARPORT is not set
+# CONFIG_PC104 is not set
+# CONFIG_PCCARD is not set
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_PCI_PASID is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_QUIRKS is not set
+CONFIG_PGTABLE_LEVELS=5
+# CONFIG_PHANTOM is not set
+# CONFIG_PHONET is not set
+CONFIG_PHYLIB=m
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PINCTRL is not set
+# CONFIG_PM is not set
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_POWERCAP is not set
+# CONFIG_POWER_AVS is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_PPP is not set
+CONFIG_PPS=m
+# CONFIG_PPS_CLIENT_GPIO is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PSI_DEFAULT_DISABLED=y
+# CONFIG_PSTORE is not set
+CONFIG_PTP_1588_CLOCK=m
+# CONFIG_PWM is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_RAPIDIO is not set
+# CONFIG_RAVE_SP_CORE is not set
+# CONFIG_RAW_DRIVER is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RC_CORE is not set
+# CONFIG_REFCOUNT_FULL is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REMOTEPROC is not set
+# CONFIG_RESET_CONTROLLER is not set
+# CONFIG_RFKILL is not set
+# CONFIG_RMI4_CORE is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_RPMSG_VIRTIO is not set
+# CONFIG_S2IO is not set
+CONFIG_SCHED_SMT=y
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_BFA_FC is not set
+# CONFIG_SCSI_BNX2X_FCOE is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_SCSI_CHELSIO_FCOE is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_SCSI_FDOMAIN_PCI is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_MYRB is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_QLA_FC is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_SNIC is not set
+CONFIG_SCSI_SRP_ATTRS=m
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_ARC is not set
+CONFIG_SERIAL_CORE=m
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIO is not set
+# CONFIG_SFC is not set
+# CONFIG_SFC_FALCON is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_SLIP is not set
+# CONFIG_SOC_TI is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_SOUND is not set
+# CONFIG_SPI is not set
+# CONFIG_SPMI is not set
+# CONFIG_SRAM is not set
+# CONFIG_SSB is not set
+# CONFIG_STAGING is not set
+CONFIG_STANDALONE=y
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_TCG_TIS_I2C_ATMEL is not set
+# CONFIG_TCG_TIS_I2C_INFINEON is not set
+# CONFIG_TCG_TIS_I2C_NUVOTON is not set
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
+# CONFIG_THERMAL is not set
+# CONFIG_TIFM_CORE is not set
+CONFIG_TLS=m
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_TRACE_SINK is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UIO_AEC is not set
+# CONFIG_UIO_CIF is not set
+# CONFIG_UIO_DMEM_GENIRQ is not set
+# CONFIG_UIO_MF624 is not set
+# CONFIG_UIO_NETX is not set
+# CONFIG_UIO_PCI_GENERIC is not set
+# CONFIG_UIO_PDRV_GENIRQ is not set
+# CONFIG_UIO_PRUSS is not set
+# CONFIG_UIO_SERCOS3 is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_VFIO=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_VIRQFD=m
+# CONFIG_VIRTIO_MMIO is not set
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
+# CONFIG_VME_BUS is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_VOP_BUS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_VXGE is not set
+# CONFIG_W1 is not set
+# CONFIG_WAN is not set
+# CONFIG_WDTPCI is not set
+# CONFIG_WIMAX is not set
+# CONFIG_X25 is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_XILLYBUS is not set
+# CONFIG_XZ_DEC_ARM is not set
+# CONFIG_XZ_DEC_ARMTHUMB is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_SPARC is not set
+# CONFIG_XZ_DEC_TEST is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+CONFIG_ZLIB_DEFLATE=m
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/s390x/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/s390x/config.flavour.generic
@@ -0,0 +1,3 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/x32/config.common.x32
+++ linux-gkeop-5.4-5.4.0/debian.master/config/x32/config.common.x32
@@ -0,0 +1,74 @@
+# nothing here yet
+CONFIG_USB_DWC2_DUAL_ROLE=y
+CONFIG_USB_DWC2_PCI=m
+CONFIG_USB_DWC3_PCI=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_BDC_UDC=m
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC3=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_ETH=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_GADGET_XILINX=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_DBGP=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_ISP1760=m
+CONFIG_USB_LINK_LAYER_TEST=m
+CONFIG_USB_M66592=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PXA27X=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SL811_HCD_ISO=y
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_MULTI_RNDIS=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/config/x32/config.flavour.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/config/x32/config.flavour.generic
@@ -0,0 +1,74 @@
+# nothing here yet
+CONFIG_USB_DWC2_DUAL_ROLE=y
+CONFIG_USB_DWC2_PCI=m
+CONFIG_USB_DWC3_PCI=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_BDC_UDC=m
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC3=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_ETH=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_GADGET_XILINX=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_DBGP=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_ISP1760=m
+CONFIG_USB_LINK_LAYER_TEST=m
+CONFIG_USB_M66592=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PXA27X=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SL811_HCD_ISO=y
+CONFIG_USB_ULPI_BUS=m
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_MULTI_RNDIS=y
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/flavour-control.stub
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/flavour-control.stub
@@ -0,0 +1,152 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Provides: linux-image, fuse-module, aufs-dkms, =PROVIDES=${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-PKGVER-ABINUM-FLAVOUR
+Recommends: BOOTLOADER, initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image=SIGN-PEER-PKG=-PKGVER-ABINUM-FLAVOUR
+Suggests: fdutils, linux-doc | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the=SIGN-ME-TXT= Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version PKGVER on DESC
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-extra-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR | linux-image-unsigned-PKGVER-ABINUM-FLAVOUR, crda | wireless-crda
+Description: Linux kernel extra modules for version PKGVER on DESC
+ This package contains the Linux kernel extra modules for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details.
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR-dbgsym
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides the=SIGN-ME-TXT= kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+
+Package: linux-cloud-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud for version PKGVER-ABINUM on
+ =HUMAN=.
+
+Package: linux-udebs-FLAVOUR
+Build-Profiles: <!stage1>
+XC-Package-Type: udeb
+Section: debian-installer
+Architecture: ARCH
+Depends: ${udeb:Depends}
+Description: Metapackage depending on kernel udebs
+ This package depends on the all udebs that the kernel build generated,
+ for easier version and migration tracking.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/generic.inclusion-list
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/generic.inclusion-list
@@ -0,0 +1,252 @@
+arch/*/{crypto,kernel,oprofile}
+arch/*/kvm/kvm.ko
+arch/powerpc/kvm/kvm-hv.ko
+arch/powerpc/kvm/kvm-pr.ko
+arch/powerpc/kvm/vfio.ko
+arch/powerpc/platforms/powernv/opal-prd.ko
+arch/s390/*
+arch/x86/kvm/kvm-amd.ko
+arch/x86/kvm/kvm-intel.ko
+crypto/*
+drivers/acpi/*
+drivers/ata/acard-ahci.ko
+drivers/ata/ahci.ko
+drivers/ata/ahci_platform.ko
+drivers/ata/ata_generic.ko
+drivers/ata/libahci.ko
+drivers/ata/libahci_platform.ko
+drivers/block/brd.ko
+drivers/block/cryptoloop.ko
+drivers/block/floppy.ko
+drivers/block/loop.ko
+drivers/block/nbd.ko
+drivers/block/rbd.ko
+drivers/block/virtio_blk.ko
+drivers/block/xen-blkfront.ko
+drivers/char/hangcheck-timer.ko
+drivers/char/hw_random/powernv-rng.ko
+drivers/char/hw_random/virtio-rng.ko
+drivers/char/ipmi/*
+drivers/char/ipmi/ipmi_msghandler.ko
+drivers/char/lp.ko
+drivers/char/nvram.ko
+drivers/char/ppdev.ko
+drivers/char/raw.ko
+drivers/char/virtio_console.ko
+drivers/crypto/nx/*
+drivers/crypto/vmx/vmx-crypto.ko
+drivers/firmware/efi/*
+drivers/firmware/iscsi_ibft.ko
+drivers/gpu/drm/ast/ast.ko
+drivers/gpu/drm/drm_kms_helper.ko
+drivers/gpu/drm/drm.ko
+drivers/gpu/drm/ttm/ttm.ko
+drivers/hid/hid-generic.ko
+drivers/hid/hid-hyperv.ko
+drivers/hid/hid.ko
+drivers/hid/usbhid/usbhid.ko
+drivers/hv/*
+drivers/hwmon/ibmpowernv.ko
+drivers/infiniband/core/ib_addr.ko
+drivers/infiniband/core/ib_cm.ko
+drivers/infiniband/core/ib_core.ko
+drivers/infiniband/core/ib_mad.ko
+drivers/infiniband/core/ib_sa.ko
+drivers/infiniband/core/iw_cm.ko
+drivers/infiniband/core/rdma_cm.ko
+drivers/infiniband/ulp/iser/ib_iser.ko
+drivers/infiniband/ulp/isert/ib_isert.ko
+drivers/input/evbug.ko
+drivers/input/gameport/gameport.ko
+drivers/input/input-leds.ko
+drivers/input/joydev.ko
+drivers/input/misc/xen-kbdfront.ko
+drivers/input/mouse/psmouse.ko
+drivers/input/serio/hyperv-keyboard.ko
+drivers/input/serio/serio_raw.ko
+drivers/input/serio/serport.ko
+drivers/input/touchscreen/usbtouchscreen.ko
+drivers/leds/leds-powernv.ko
+drivers/md/*
+drivers/message/fusion*
+drivers/misc/cxl/*
+drivers/misc/eeprom/at24.ko
+drivers/misc/vmw_balloon.ko
+drivers/misc/vmw_vmci/vmw_vmci.ko
+drivers/mtd/cmdlinepart.ko
+drivers/mtd/devices/powernv_flash.ko
+drivers/mtd/ofpart.ko
+drivers/net/appletalk/ipddp.ko
+drivers/net/bonding/bonding.ko
+drivers/net/caif/caif_virtio.ko
+drivers/net/dummy.ko
+drivers/net/eql.ko
+drivers/net/ethernet/8390/8390.ko
+drivers/net/ethernet/8390/ne2k-pci.ko
+drivers/net/ethernet/amazon/ena/ena.ko
+drivers/net/ethernet/amd/pcnet32.ko
+drivers/net/ethernet/broadcom/bnx2x/*
+drivers/net/ethernet/broadcom/tg3.ko
+drivers/net/ethernet/dec/tulip/*
+drivers/net/ethernet/emulex/benet/*
+drivers/net/ethernet/ibm/*
+drivers/net/ethernet/intel/e1000/e1000.ko
+drivers/net/ethernet/intel/e1000e/e1000e.ko
+drivers/net/ethernet/intel/i40e/*
+drivers/net/ethernet/intel/iavf/iavf.ko
+drivers/net/ethernet/intel/igb/*
+drivers/net/ethernet/intel/igbvf/igbvf.ko
+drivers/net/ethernet/intel/ixgbe/*
+drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+drivers/net/ethernet/mellanox/*
+drivers/net/ethernet/netronome/nfp/nfp.ko
+drivers/net/ethernet/realtek/8139cp.ko
+drivers/net/ethernet/realtek/8139too.ko
+drivers/net/fddi/*
+drivers/net/geneve.ko
+drivers/net/hyperv/hv_netvsc.ko
+drivers/net/ifb.ko
+drivers/net/ipvlan/*
+drivers/net/macvlan.ko
+drivers/net/macvtap.ko
+drivers/net/mii.ko
+drivers/net/netconsole.ko
+drivers/net/ppp/*
+drivers/net/ppp/bsd_comp.ko
+drivers/net/slip/*
+drivers/net/veth.ko
+drivers/net/virtio_net.ko
+drivers/net/vmxnet3/vmxnet3.ko
+drivers/net/vxlan.ko
+drivers/net/xen-netback/*
+drivers/net/xen-netfront.ko
+drivers/nvme/host/nvme.ko
+drivers/nvmem/nvmem_core.ko
+drivers/parport/parport.ko
+drivers/parport/parport_pc.ko
+drivers/pci/host/vmd.ko
+drivers/platform/x86/pvpanic.ko
+drivers/pps/pps_core.ko
+drivers/ptp/ptp.ko
+drivers/s390/*
+drivers/s390/block/xpram.ko
+drivers/scsi/aacraid/*
+drivers/scsi/BusLogic.ko
+drivers/scsi/cxlflash/*
+drivers/scsi/device_handler/scsi_dh_alua.ko
+drivers/scsi/device_handler/scsi_dh_emc.ko
+drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+drivers/scsi/device_handler/scsi_dh_rdac.ko
+drivers/scsi/hv_storvsc.ko
+drivers/scsi/ibmvscsi/*
+drivers/scsi/ipr.ko
+drivers/scsi/iscsi_boot_sysfs.ko
+drivers/scsi/iscsi_tcp.ko
+drivers/scsi/libiscsi.ko
+drivers/scsi/libiscsi_tcp.ko
+drivers/scsi/libsas/*
+drivers/scsi/lpfc/*
+drivers/scsi/megaraid/*
+drivers/scsi/mpt3sas/*
+drivers/scsi/osd/libosd.ko
+drivers/scsi/osd/osd.ko
+drivers/scsi/qla1280.ko
+drivers/scsi/qla2xxx/*
+drivers/scsi/raid_class.ko
+drivers/scsi/scsi_transport_fc.ko
+drivers/scsi/scsi_transport_iscsi.ko
+drivers/scsi/scsi_transport_sas.ko
+drivers/scsi/scsi_transport_spi.ko
+drivers/scsi/sd_mod.ko
+drivers/scsi/sr_mod.ko
+drivers/scsi/virtio_scsi.ko
+drivers/scsi/vmw_pvscsi.ko
+drivers/target/target_core*.ko
+drivers/target/loopback/tcm_loop.ko
+drivers/tty/serial/jsm/*
+drivers/uio/uio.ko
+drivers/uio/uio_pdrv_genirq.ko
+drivers/usb/host/*
+drivers/usb/storage/uas.ko
+drivers/usb/storage/usb-storage.ko
+drivers/vfio/*
+drivers/vhost/*
+drivers/video/fbdev/*
+drivers/video/vgastate.ko
+drivers/virtio/*
+drivers/watchdog/softdog.ko
+drivers/xen/*
+! find sound/core -name oss -prune -o -name *.ko -print
+fs/9p/*
+fs/aufs/aufs.ko
+fs/autofs/autofs4.ko
+fs/binfmt_misc.ko
+fs/btrfs/*
+fs/cachefiles/cachefiles.ko
+fs/ceph/*
+fs/cifs/*
+fs/configfs/*
+fs/dlm/dlm.ko
+fs/ecryptfs/*
+fs/efivarfs/*
+fs/exofs/libore.ko
+fs/ext4/*
+fs/fat/*
+fs/fscache/*
+fs/fuse/*
+fs/isofs/*
+fs/lockd/*
+fs/nfs/*
+fs/nfs_common/*
+fs/nfsd/*
+fs/nls/nls_cp437.ko
+fs/nls/nls_iso8859-1.ko
+fs/overlayfs/*
+fs/shiftfs.ko
+fs/squashfs/*
+fs/udf/*
+fs/ufs/*
+fs/xfs/*
+lib/*
+net/6lowpan/*
+net/802/*
+net/8021q/*
+net/9p/*
+net/appletalk/*
+net/atm/*
+net/ax25/*
+net/bpfilter/*
+net/bridge/*
+net/can/*
+net/ceph/libceph.ko
+net/core/*
+net/dccp/*
+net/decnet/*
+net/ieee802154/*
+net/ipv4/*
+net/ipv6/*
+net/ipx/*
+net/key/*
+net/lapb/*
+net/llc/*
+net/netfilter/*
+net/netlink/netlink_diag.ko
+net/netrom/*
+net/openvswitch/*
+net/packet/af_packet_diag.ko
+net/phonet/*
+net/rose/*
+net/rxrpc/*
+net/sched/*
+net/sctp/*
+net/sunrpc/auth_gss/auth_rpcgss.ko
+net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+net/sunrpc/sunrpc.ko
+net/tipc/*
+net/unix/unix_diag.ko
+net/vmw_vsock/*
+net/x25/*
+net/xfrm/*
+sound/drivers/pcsp/snd-pcsp.ko
+sound/pci/snd-ens1370.ko
+sound/soundcore.ko
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/linux-doc.stub
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/linux-doc.stub
@@ -0,0 +1,12 @@
+Package: linux-doc
+Build-Profiles: <!stage1>
+Architecture: all
+Section: doc
+Priority: optional
+Depends: ${misc:Depends}
+Description: Linux kernel specific documentation for version PKGVER
+ This package provides the various documents in the PKGVER kernel
+ Documentation/ subdirectory.  These document kernel subsystems, APIs, device
+ drivers, and so on.  See
+ /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is
+ contained in each file.
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/linux-libc-dev.stub
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/linux-libc-dev.stub
@@ -0,0 +1,12 @@
+Package: linux-libc-dev
+Architecture: amd64 armhf arm64 i386 ppc64el riscv64 s390x
+Depends: ${misc:Depends}
+Conflicts: linux-kernel-headers
+Replaces: linux-kernel-headers
+Provides: linux-kernel-headers, aufs-dev
+Multi-Arch: same
+Description: Linux Kernel Headers for development
+ This package provides headers from the Linux kernel.  These headers
+ are used by the installed headers for GNU glibc and other system
+ libraries. They are NOT meant to be used to build third-party modules for
+ your kernel. Use SRCPKGNAME-headers-* packages for that.
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/vars.generic
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/vars.generic
@@ -0,0 +1,6 @@
+arch="amd64 armhf arm64 ppc64el s390x"
+supported="Generic"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64]"
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/vars.generic-lpae
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/vars.generic-lpae
@@ -0,0 +1,6 @@
+arch="armhf"
+supported="Generic LPAE"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="flash-kernel [armhf]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules"
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.d/vars.lowlatency
+++ linux-gkeop-5.4-5.4.0/debian.master/control.d/vars.lowlatency
@@ -0,0 +1,6 @@
+arch="amd64"
+supported="Lowlatency"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64]"
--- linux-gkeop-5.4-5.4.0.orig/debian.master/control.stub.in
+++ linux-gkeop-5.4-5.4.0/debian.master/control.stub.in
@@ -0,0 +1,154 @@
+Source: SRCPKGNAME
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ makedumpfile [amd64] <!stage1>,
+ libcap-dev <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ default-jdk-headless <!stage1>,
+ java-common <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf ppc64el] <!stage1>,
+ liblzma-dev <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ libnuma-dev [amd64 arm64 ppc64el s390x] <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+ lz4 [amd64 s390x] <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python3-sphinx <!stage1>,
+ python3-sphinx-rtd-theme <!stage1>,
+ fontconfig <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/=SERIES=
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: linux-source-PKGVER
+Build-Profiles: <!stage1>
+Architecture: all
+Section: devel
+Priority: optional
+Provides: linux-source
+Depends: ${misc:Depends}, binutils, bzip2, coreutils
+Recommends: libc-dev, gcc, make
+Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev
+Description: Linux kernel source for version PKGVER with Ubuntu patches
+ This package provides the source code for the Linux kernel version
+ PKGVER.
+ .
+ This package is mainly meant for other packages to use, in order to build
+ custom flavours.
+ .
+ If you wish to use this package to create a custom Linux kernel, then it
+ is suggested that you investigate the package kernel-package, which has
+ been designed to ease the task of creating kernel image packages.
+ .
+ If you are simply trying to build third-party modules for your kernel,
+ you do not want this package. Install the appropriate linux-headers
+ package instead.
+
+Package: SRCPKGNAME-headers-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-tools-common
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, lsb-release
+Conflicts: linux-oem-5.6-tools-common
+Replaces: linux-oem-5.6-tools-common
+Description: Linux kernel version specific tools for version PKGVER
+ This package provides the architecture independent parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER.
+
+Package: SRCPKGNAME-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64 armhf arm64 ppc64el s390x
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-tools-PKGVER-ABINUM-<flavour>.
+
+Package: SRCPKGNAME-cloud-tools-common
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}
+Description: Linux kernel version specific cloud tools for version PKGVER
+ This package provides the architecture independent parts for kernel
+ version locked tools for cloud tools for version PKGVER.
+
+Package: SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64 armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud tools for version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-cloud-tools-PKGVER-ABINUM-<flavour>.
+
+Package: SRCPKGNAME-tools-host
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, python3
+Conflicts: linux-oem-5.6-tools-host
+Replaces: linux-oem-5.6-tools-host
+Description: Linux kernel VM host tools
+ This package provides kernel tools useful for VM hosts.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.master/copyright
+++ linux-gkeop-5.4-5.4.0/debian.master/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/amd64/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/amd64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/amd64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/amd64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/amd64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/arm64/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/arm64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/arm64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/arm64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/arm64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/armhf/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/armhf/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/i386/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/i386/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/i386/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/i386/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/i386/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/nic-modules
@@ -0,0 +1,14 @@
+e100/d101m_ucode.bin ?
+e100/d101s_ucode.bin ?
+e100/d102e_ucode.bin ?
+bnx2/bnx2-mips-09-6.2.1b.fw ?
+bnx2/bnx2-rv2p-06-6.0.15.fw ?
+bnx2/bnx2-mips-06-6.2.3.fw ?
+bnx2/bnx2-rv2p-09-6.0.17.fw ?
+bnx2/bnx2-rv2p-09ax-6.0.17.fw ?
+bnx2x/bnx2x-e1h-7.12.30.0.fw ?
+bnx2x/bnx2x-e1-7.12.30.0.fw ?
+bnx2x/bnx2x-e2-7.12.30.0.fw ?
+tigon/tg3_tso5.bin ?
+tigon/tg3_tso.bin ?
+tigon/tg3.bin ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/powerpc/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/powerpc/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/powerpc/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/powerpc/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/powerpc/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/powerpc/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/ppc64el/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/ppc64el/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/ppc64el/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/ppc64el/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/s390x/README.txt
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/s390x/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/s390x/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/s390x/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/s390x/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/firmware/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin ?
+qlogic/12160.bin ?
+qlogic/1280.bin ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/kernel-versions
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/kernel-versions
@@ -0,0 +1,16 @@
+# arch	version		flavour		installedname			suffix	bdep
+amd64	-		generic		-				-	-
+
+i386	-		generic		-				-	-
+
+armhf	-		generic		-				-	-
+armhf	-		generic-lpae	-				-	-
+
+arm64	-		generic		-				-	-
+
+ppc64el	-		generic		-				-	-
+
+s390x	-		generic		-				-	-
+
+# Ports
+# arch	version		flavour		installedname			suffix	bdep
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/amd64/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/amd64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/arm64/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/arm64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/armhf/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/armhf/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/block-modules
@@ -0,0 +1,43 @@
+aoe ?
+aten ?
+bcm2835 ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+hpsa ?
+hio ?
+kbic ?
+ktti ?
+nbd ?
+nvme ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sdhci-tegra ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
+mtip32xx ?
+mmc_block ?
+sdhci ?
+sdhci-pci ?
+sdhci-acpi ?
+tifm_sd ?
+dw_mmc ?
+dw_mmc_pltfm ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/block-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/block-modules.powerpc
@@ -0,0 +1,31 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+kbic ?
+ktti ?
+nbd ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+ps3disk ?
+ps3vram ?
+pt ?
+sx8 ?
+umem ?
+virtio_blk ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/crypto-modules
@@ -0,0 +1,78 @@
+aesni-intel ?
+aes-x86_64 ?
+af_alg ?
+algif_hash ?
+algif_skcipher ?
+ansi_cprng ?
+anubis ?
+arc4 ?
+async_memcpy ?
+async_pq ?
+async_raid6_recov ?
+async_tx ?
+async_xor ?
+authenc ?
+authencesn ?
+blowfish_common ?
+blowfish_generic ?
+blowfish-x86_64 ?
+camellia ?
+cast5 ?
+cast6 ?
+ccm ?
+crc32_generic ?
+crc32c_generic ?
+crc32-vx_s390 ?
+cryptd ?
+cryptoloop ?
+crypto_null ?
+crypto_user ?
+ctr ?
+cts ?
+des_generic ?
+fcrypt ?
+gcm ?
+gf128mul ?
+ghash-clmulni-intel ?
+ghash-generic ?
+khazad ?
+lrw ?
+lzo ?
+md4 ?
+michael_mic ?
+padlock-aes ?
+padlock-sha ?
+paes_s390 ?
+pcbc ?
+pcrypt ?
+pkey ?
+raid6test ?
+rmd128 ?
+rmd160 ?
+rmd256 ?
+rmd320 ?
+salsa20_generic ?
+salsa20-x86_64 ?
+seed ?
+seqiv ?
+serpent_generic ?
+serpent-sse2-x86_64 ?
+sha1-ssse3 ?
+sha512_generic ?
+tcrypt ?
+tea ?
+tgr192 ?
+twofish_common ?
+twofish_generic ?
+twofish-x86_64 ?
+twofish-x86_64-3way ?
+vmac ?
+wp512 ?
+xcbc ?
+xor ?
+xts ?
+zcrypt ?
+zcrypt_cex2a ?
+zcrypt_cex4 ?
+zcrypt_pcixcc ?
+zlib ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/dasd-extra-modules.s390x
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/dasd-extra-modules.s390x
@@ -0,0 +1 @@
+dasd_diag_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/dasd-modules.s390x
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/dasd-modules.s390x
@@ -0,0 +1,3 @@
+dasd_mod ?
+dasd_fba_mod ?
+dasd_eckd_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+firewire-core ?
+firewire-ohci ?
+firewire-sbp2 ?
+firewire-net ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/fs-core-modules
@@ -0,0 +1,6 @@
+ext2 ?
+ext4 ?
+jfs ?
+reiserfs ?
+xfs ?
+zfs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386-virtual/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/fb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/firewire-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/i386/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/i386/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/input-modules
@@ -0,0 +1,71 @@
+hid ?
+hid-a4tech ?
+hid-apple ?
+hid-appleir ?
+hid-aureal ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-corsair ?
+hid-cp2112 ?
+hid-cypress ?
+hid-dell ?
+hid-elecom ?
+hid-elo ?
+hid-ezkey ?
+hid-generic ?
+hid-gfrm ?
+hid-gt683r ?
+hid-gyration ?
+hid-holtek-kbd ?
+hid-holtek-mouse ?
+hid-hyperv ?
+hid-kensington ?
+hid-keytouch ?
+hid-kye ?
+hid-lcpower ?
+hid-lenovo ?
+hid-logitech ?
+hid-logitech-dj ?
+hid-logitech-hidpp ?
+hid-magicmouse ?
+hid-microsoft ?
+hid-monterey ?
+hid-multitouch ?
+hid-ntrig ?
+hid-ortek ?
+hid-penmount ?
+hid-petalynx ?
+hid-picolcd ?
+hid-pl ?
+hid-plantronics ?
+hid-primax ?
+hid-rmi ?
+hid-roccat ?
+hid-roccat-arvo ?
+hid-roccat-common ?
+hid-roccat-isku ?
+hid-roccat-kone ?
+hid-roccat-koneplus ?
+hid-roccat-konepure ?
+hid-roccat-kovaplus ?
+hid-roccat-lua ?
+hid-roccat-pyra ?
+hid-roccat-ryos ?
+hid-roccat-savu ?
+hid-samsung ?
+hid-sony ?
+hid-speedlink ?
+hid-sunplus ?
+hid-thingm ?
+hid-tivo ?
+hid-topseed ?
+hid-twinhan ?
+hid-uclogic ?
+hid-waltop ?
+hid-wiimote ?
+hid-xinmo ?
+hid-zydacron ?
+uhid ?
+usbhid ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ipmi-modules
@@ -0,0 +1,5 @@
+ipmi_devintf ?
+ipmi_msghandler ?
+ipmi_poweroff ?
+ipmi_si ?
+ipmi_watchdog ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/kernel-image
@@ -0,0 +1,31 @@
+ast ?
+gpio-pca953x ?
+gpio-regulator ?
+hibmc-drm ?
+i2c-mux ?
+i2c-mux-pinctrl ?
+i2c-tegra ?
+max8907 ?
+max8907-regulator ?
+nvec ?
+nvec_kbd ?
+nvec_paz00 ?
+nvec_power ?
+nvec_ps2 ?
+palmas-regulator ?
+rtc-em3027 ?
+rtc-max8907 ?
+rtc-palmas ?
+rtc-tps6586x ?
+rtc-tps65910 ?
+tps51632-regulator ?
+tps62360-regulator ?
+tps65090-charger ?
+tps65090-regulator ?
+tps6586x-regulator ?
+tps65910-regulator ?
+host1x ?
+tegra-drm ?
+pwm_bl ?
+pwm-tegra ?
+panel-simple ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/md-modules
@@ -0,0 +1,16 @@
+dm-crypt ?
+dm-mirror ?
+dm-raid ?
+dm-snapshot ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid45 ?
+dm-loop ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/message-modules
@@ -0,0 +1,9 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mpt3sas ?
+mptscsih ?
+mptspi ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/message-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/message-modules.powerpc
@@ -0,0 +1,7 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/mouse-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/multipath-modules
@@ -0,0 +1,4 @@
+dm-multipath ?
+dm-round-robin ?
+dm-service-time ?
+dm-queue-length ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/nfs-modules
@@ -0,0 +1,6 @@
+nfs ?
+nfs_acl ?
+nfsv3 ?
+lockd ?
+sunrpc ?
+cifs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/nic-modules
@@ -0,0 +1,209 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+alx ?
+amd8111e ?
+amd-xgbe ?
+aquantia ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+ath5k ?
+ath9k ?
+ath9k_htc ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm87xx ?
+be2net ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bnxt_en ?
+bonding ?
+brcmfmac ?
+brcmsmac ?
+broadcom ?
+xgmac ?
+cassini ?
+ccwgroup ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+ctcm ?
+cxgb4 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+enic ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+fsm ?
+ibmveth ?
+ibmvnic ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hclge ?
+hermes ?
+hfi1 ?
+hinic ?
+hns_dsaf ?
+hns_enet_drv ?
+hns_mdio ?
+hns3 ?
+hp ?
+hp100 ?
+hp-plus ?
+i40e ?
+i40evf ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+iwl3945 ?
+iwl4965 ?
+iwl-legacy ?
+iwldvm ?
+iwlmvm ?
+iwlwifi ?
+ixgb ?
+ixgbe ?
+lance ?
+lanstreamer ?
+lcs ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+marvell ?
+mdio-thunder ?
+mlx4_core ?
+mlx4_en ?
+mlx5_core ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netiucv ?
+netsec ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+nicpf ?
+nicvf ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+qcom-emac ?
+qede ?
+qeth ?
+qeth_l2 ?
+qeth_l3 ?
+qlcnic ?
+r815x ?
+r8169 ?
+rate_control ?
+realtek ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2400pci ?
+rt2500 ?
+rt2500pci ?
+rt2800pci ?
+rt61pci ?
+s2io ?
+sfc ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
+xgene-enet ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/nic-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/nic-modules.powerpc
@@ -0,0 +1,152 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ibmveth ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+ps3_gelic ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/nic-pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/nic-shared-modules
@@ -0,0 +1,26 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+rt2800lib ?
+
+# Atheros library (since drivers are split across nic-modules/nic-usb-modules)
+ath ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/nic-usb-modules
@@ -0,0 +1,34 @@
+ax88179_178a ?
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+rt2800usb ?
+rt2x00usb ?
+cdc_ether ?
+asix ?
+cdc_eem ?
+cdc_ether ?
+cdc-phonet ?
+cdc_subset ?
+dm9601 ?
+gl620a ?
+hso ?
+int51x1 ?
+mcs7830 ?
+net1080 ?
+plusb ?
+rndis_host ?
+r8152 ?
+smsc95xx ?
+zaurus ?
+carl9170 ?
+smsc75xx ?
+smsc95xx ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/pata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/pata-modules
@@ -0,0 +1,47 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_macio.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/pcmcia-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/pcmcia-storage-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/floppy-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/input-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/ipmi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/message-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/nic-usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/parport-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/plip-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/storage-core-modules
@@ -0,0 +1,2 @@
+#include <storage-core-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppc64el/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppc64el/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/ppp-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/block-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/crypto-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/crypto-modules
@@ -0,0 +1,2 @@
+#include <crypto-modules>
+deflate ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/dasd-extra-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/dasd-extra-modules
@@ -0,0 +1 @@
+#include <dasd-extra-modules.s390x>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/dasd-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/dasd-modules
@@ -0,0 +1 @@
+#include <dasd-modules.s390x>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/fat-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/fs-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/fs-secondary-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/kernel-image
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/md-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/multipath-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/nfs-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/nic-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/nic-shared-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/s390x/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/s390x/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/sata-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/sata-modules
@@ -0,0 +1,18 @@
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
+ahci_platform ?
+ahci ?
+acard-ahci ?
+libahci ?
+ahci_xgene ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/scsi-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/scsi-modules
@@ -0,0 +1,137 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+sr_mod ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+pm80xx ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+fnic ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsi ?
+ibmvfc ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
+ums-cypress ?
+be2iscsi ?
+3w-sas ?
+isci ?
+mlx4_ib ?
+mlx5_ib ?
+zfcp ?
+sd_mod ?
+hisi_sas_v2_hw ?
+hisi_sas_v3_hw ?
+iscsi_ibft ?
+
+# device handlers
+scsi_dh_alua ?
+scsi_dh_emc ?
+scsi_dh_rdac ?
+scsi_dh_hp_sw ?
+
+smartpqi ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/scsi-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/scsi-modules.powerpc
@@ -0,0 +1,118 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+ibmvfc ?
+ibmvscsi ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+sr_mod ?
+sd_mod ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/serial-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/serial-modules
@@ -0,0 +1,4 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
+hyperv-keyboard ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/speakup-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/speakup-modules
@@ -0,0 +1,16 @@
+speakup ?
+speakup_acntpc ?
+speakup_acntsa ?
+speakup_apollo ?
+speakup_audptr ?
+speakup_bns ?
+speakup_decext ?
+speakup_dectlk ?
+speakup_dtlk ?
+speakup_dummy ?
+speakup_keypc ?
+speakup_ltlk ?
+speakup_soft ?
+speakup_spkout ?
+speakup_txprt ?
+speakup_decpc ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/storage-core-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/storage-core-modules
@@ -0,0 +1,15 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+ata_piix ?
+ata_generic ?
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
+
+# Needed for NVMe disks under VMD PCIe domains
+vmd ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/storage-core-modules.powerpc
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/storage-core-modules.powerpc
@@ -0,0 +1,13 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop
+
+# Needs to be here for better cdrom initrd layout
+isofs
+
+ps3stor_lib ?
+ps3rom ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/usb-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/usb-modules
@@ -0,0 +1,15 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
+xhci-hcd ?
+xhci-plat-hcd ?
+ehci-tegra ?
+ehci-msm ?
+ehci-platform ?
+uas ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/virtio-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/virtio-modules
@@ -0,0 +1,11 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
+virtio_scsi ?
+hv_vmbus ?
+hv_utils ?
+hv_netvsc ?
+hv_mouse ?
+hv_storvsc ?
+hv_balloon ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/modules/vlan-modules
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
--- linux-gkeop-5.4-5.4.0.orig/debian.master/d-i/package-list
+++ linux-gkeop-5.4-5.4.0/debian.master/d-i/package-list
@@ -0,0 +1,203 @@
+Package: kernel-image
+Provides: ext3-modules, ext4-modules, squashfs-modules
+Provides_amd64: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_i386: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_ppc64el: ext3-modules, ext4-modules, fat-modules, squashfs-modules
+Provides_s390x: ext3-modules, ext4-modules, ppp-modules, squashfs-modules
+Description: kernel image and system map
+
+Package: dasd-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: DASD storage support
+
+Package: dasd-extra-modules
+Depends: dasd-modules
+Priority: extra
+Description: DASD storage support -- extras
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: ext2-modules, jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: btrfs-modules, ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Provides: crypto-dm-modules
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Provides: nbd-modules
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
+Package: ipmi-modules
+Depends: kernel-image
+Priority: standard
+Description: ipmi modules
+
+Package: multipath-modules
+Depends: kernel-image
+Priority: extra
+Description: DM-Multipath support
+  This package contains modules for device-mapper multipath support.
+
--- linux-gkeop-5.4-5.4.0.orig/debian.master/etc/getabis
+++ linux-gkeop-5.4-5.4.0/debian.master/etc/getabis
@@ -0,0 +1,18 @@
+repo_list=(
+	"http://archive.ubuntu.com/ubuntu/pool/main/l/linux"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux"
+	"http://archive.ubuntu.com/ubuntu/pool/universe/l/linux"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/pool/main/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/unstable/ubuntu/pool/main/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/bootstrap/ubuntu/pool/main/l/linux"
+)
+
+package_prefixes linux-buildinfo
+
+getall armhf generic
+getall armhf generic-lpae
+getall amd64 generic lowlatency
+getall arm64 generic
+getall ppc64el generic
+getall s390x generic
--- linux-gkeop-5.4-5.4.0.orig/debian.master/etc/kernelconfig
+++ linux-gkeop-5.4-5.4.0/debian.master/etc/kernelconfig
@@ -0,0 +1,7 @@
+if [ "$variant" = "ports" ]; then
+	archs=""
+	family='ports'
+else
+	archs="amd64 i386 armhf arm64 ppc64el s390x"
+	family='ubuntu'
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian.master/modprobe.d/common.conf
+++ linux-gkeop-5.4-5.4.0/debian.master/modprobe.d/common.conf
@@ -0,0 +1,3 @@
+# LP:1434842 -- disable OSS drivers by default to allow pulseaudio to emulate
+blacklist snd-mixer-oss
+blacklist snd-pcm-oss
--- linux-gkeop-5.4-5.4.0.orig/debian.master/reconstruct
+++ linux-gkeop-5.4-5.4.0/debian.master/reconstruct
@@ -0,0 +1,63 @@
+# Recreate any symlinks created since the orig.
+# Remove any files deleted from the orig.
+rm -f 'arch/x86/events/intel/rapl.c'
+rm -f 'drivers/crypto/hisilicon/sgl.h'
+rm -f 'drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h'
+rm -f 'drivers/input/serio/i8042-ppcio.h'
+rm -f 'drivers/staging/mt7621-dma/mtk-hsdma.c'
+rm -f 'include/Kbuild'
+rm -f 'include/uapi/rdma/nes-abi.h'
+rm -f 'kernel/elfcore.c'
+chmod +x 'debian/cloud-tools/hv_get_dhcp_info'
+chmod +x 'debian/cloud-tools/hv_get_dns_info'
+chmod +x 'debian/cloud-tools/hv_set_ifconfig'
+chmod +x 'debian/rules'
+chmod +x 'debian/scripts/abi-check'
+chmod +x 'debian/scripts/config-check'
+chmod +x 'debian/scripts/control-create'
+chmod +x 'debian/scripts/dkms-build'
+chmod +x 'debian/scripts/dkms-build--nvidia-N'
+chmod +x 'debian/scripts/file-downloader'
+chmod +x 'debian/scripts/helpers/close'
+chmod +x 'debian/scripts/helpers/open'
+chmod +x 'debian/scripts/helpers/rebase'
+chmod +x 'debian/scripts/link-headers'
+chmod +x 'debian/scripts/misc/arch-has-odm-enabled.sh'
+chmod +x 'debian/scripts/misc/final-checks'
+chmod +x 'debian/scripts/misc/find-missing-sauce.sh'
+chmod +x 'debian/scripts/misc/find-obsolete-firmware'
+chmod +x 'debian/scripts/misc/fw-to-ihex.sh'
+chmod +x 'debian/scripts/misc/gen-auto-reconstruct'
+chmod +x 'debian/scripts/misc/get-firmware'
+chmod +x 'debian/scripts/misc/getabis'
+chmod +x 'debian/scripts/misc/git-ubuntu-log'
+chmod +x 'debian/scripts/misc/insert-changes.pl'
+chmod +x 'debian/scripts/misc/insert-mainline-changes'
+chmod +x 'debian/scripts/misc/insert-ubuntu-changes'
+chmod +x 'debian/scripts/misc/kernel-wedge-arch.pl'
+chmod +x 'debian/scripts/misc/kernelconfig'
+chmod +x 'debian/scripts/misc/retag'
+chmod +x 'debian/scripts/misc/splitconfig.pl'
+chmod +x 'debian/scripts/misc/tristate.sh'
+chmod +x 'debian/scripts/misc/update-aufs.sh'
+chmod +x 'debian/scripts/module-check'
+chmod +x 'debian/scripts/module-inclusion'
+chmod +x 'debian/scripts/retpoline-check'
+chmod +x 'debian/scripts/retpoline-extract'
+chmod +x 'debian/scripts/retpoline-extract-one'
+chmod +x 'debian/templates/extra.postinst.in'
+chmod +x 'debian/templates/extra.postrm.in'
+chmod +x 'debian/templates/headers.postinst.in'
+chmod +x 'debian/templates/image.postinst.in'
+chmod +x 'debian/templates/image.postrm.in'
+chmod +x 'debian/templates/image.preinst.in'
+chmod +x 'debian/templates/image.prerm.in'
+chmod +x 'debian/tests-build/check-aliases'
+chmod +x 'debian/tests/rebuild'
+chmod +x 'debian/tests/ubuntu-regression-suite'
+chmod +x 'samples/bpf/lwt_len_hist.sh'
+chmod +x 'samples/bpf/test_lwt_bpf.sh'
+chmod +x 'scripts/kmsg-doc'
+chmod +x 'scripts/parse-maintainers.pl'
+chmod +x 'update-version-dkms'
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/amd64.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/amd64.mk
@@ -0,0 +1,29 @@
+human_arch	= 64 bit x86
+build_arch	= x86
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours	= generic lowlatency
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+uefi_signed     = true
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf   = true
+do_tools_perf_jvmti = true
+do_tools_bpftool = true
+do_tools_x86	= true
+do_tools_hyperv	= true
+do_tools_host = true
+do_extras_package = true
+do_tools_common = true
+do_tools_acpidbg = true
+do_zfs		= true
+do_dkms_nvidia  = true
+do_dkms_nvidia_server = true
+do_dkms_vbox    = true
+do_dkms_wireguard = true
+do_odm_drivers    = true
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/arm64.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/arm64.mk
@@ -0,0 +1,24 @@
+human_arch	= ARMv8
+build_arch	= arm64
+header_arch	= arm64
+defconfig	= defconfig
+flavours	= generic
+build_image_generic	= Image.gz
+kernel_file_generic	= arch/$(build_arch)/boot/Image.gz
+install_file	= vmlinuz
+no_dumpfile = true
+uefi_signed     = true
+
+loader		= grub
+vdso		= vdso_install
+
+do_extras_package = true
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf   = true
+do_tools_perf_jvmti = true
+do_tools_bpftool = true
+
+do_dtbs		= true
+do_zfs		= true
+do_dkms_wireguard = true
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/armhf.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/armhf.mk
@@ -0,0 +1,21 @@
+human_arch	= ARM (hard float)
+build_arch	= arm
+header_arch	= arm
+defconfig	= defconfig
+flavours	= generic generic-lpae
+build_image	= zImage
+kernel_file	= arch/$(build_arch)/boot/zImage
+install_file	= vmlinuz
+no_dumpfile	= true
+
+loader		= grub
+
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf	= true
+do_tools_perf_jvmti = true
+do_tools_bpftool = true
+
+do_dtbs		= true
+
+do_dkms_wireguard = true
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/hooks.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/hooks.mk
@@ -0,0 +1 @@
+do_enforce_all = true
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/i386.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/i386.mk
@@ -0,0 +1,19 @@
+human_arch	= 32 bit x86
+build_arch	= i386
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours        = generic lowlatency
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+do_flavour_image_package = false
+do_tools	= false
+do_tools_common	= false
+do_extras_package = false
+do_source_package = false
+do_doc_package	= false
+do_flavour_header_package = false
+do_common_headers_indep = false
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/ppc64el.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/ppc64el.mk
@@ -0,0 +1,22 @@
+human_arch	= PowerPC 64el
+build_arch	= powerpc
+header_arch	= $(build_arch)
+defconfig	= pseries_le_defconfig
+flavours	= generic
+build_image	= vmlinux.strip
+kernel_file     = arch/powerpc/boot/vmlinux.strip
+install_file	= vmlinux
+no_dumpfile	= true
+vdso		= vdso_install
+loader		= grub
+do_extras_package = true
+opal_signed       = true
+do_tools_usbip    = true
+do_tools_cpupower = true
+do_tools_perf	  = true
+do_tools_perf_jvmti = true
+do_tools_bpftool  = true
+
+#do_flavour_image_package = false
+do_zfs		= true
+do_dkms_wireguard = true
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/riscv64.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/riscv64.mk
@@ -0,0 +1,21 @@
+human_arch	= RISC-V
+build_arch	= riscv
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours        = generic
+build_image	= Image
+kernel_file	= arch/$(build_arch)/boot/Image
+install_file	= vmlinuz
+
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+
+do_flavour_image_package = false
+do_tools	= false
+do_tools_common	= false
+do_extras_package = false
+do_source_package = false
+do_doc_package	= false
+do_flavour_header_package = false
+do_common_headers_indep = false
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/s390x.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/s390x.mk
@@ -0,0 +1,22 @@
+human_arch      = System 390x
+build_arch      = s390
+header_arch     = $(build_arch)
+defconfig       = defconfig
+flavours        = generic
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+
+vdso		= vdso_install
+no_dumpfile	= true
+
+do_extras_package = true
+sipl_signed       = true
+do_tools_usbip    = true
+do_tools_cpupower = true
+do_tools_perf     = true
+do_tools_perf_jvmti = true
+do_tools_bpftool  = true
+
+do_zfs		= true
+do_dkms_wireguard = true
--- linux-gkeop-5.4-5.4.0.orig/debian.master/rules.d/x32.mk
+++ linux-gkeop-5.4-5.4.0/debian.master/rules.d/x32.mk
@@ -0,0 +1,14 @@
+human_arch	= 64 bit x86 (32 bit userspace)
+build_arch	= x86
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours	= 
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+uefi_signed     = true
+
+do_flavour_image_package = false
--- linux-gkeop-5.4-5.4.0.orig/debian.master/tracking-bug
+++ linux-gkeop-5.4-5.4.0/debian.master/tracking-bug
@@ -0,0 +1 @@
+1923781
--- linux-gkeop-5.4-5.4.0.orig/debian.master/upstream-stable
+++ linux-gkeop-5.4-5.4.0/debian.master/upstream-stable
@@ -0,0 +1,3 @@
+# The following upstream stable releases have been ported:
+[upstream-stable]
+    linux-5.4.y = v5.4.106
--- linux-gkeop-5.4-5.4.0.orig/debian/canonical-certs.pem
+++ linux-gkeop-5.4-5.4.0/debian/canonical-certs.pem
@@ -0,0 +1,246 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            c7:7e:51:6a:1c:25:cd:40
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: CN = Canonical Ltd. Live Patch Signing
+        Validity
+            Not Before: Jul 18 23:41:27 2016 GMT
+            Not After : Jul 16 23:41:27 2026 GMT
+        Subject: CN = Canonical Ltd. Live Patch Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:bd:74:ee:72:b3:4a:ab:e6:31:e8:29:24:c2:bd:
+                    46:98:32:c0:39:ee:a3:fb:8a:ad:fe:ab:1a:5b:a3:
+                    2e:a1:80:db:79:61:9e:47:79:2c:75:57:a2:21:f0:
+                    93:f6:87:f2:9b:4b:9d:2f:b3:58:61:28:3c:41:70:
+                    13:16:a1:72:90:c9:d5:16:71:7c:e0:30:f9:28:5e:
+                    48:20:36:00:69:b7:59:9f:a3:ec:a8:eb:55:41:9f:
+                    38:1e:22:4a:57:20:f4:83:59:49:c5:00:93:d3:33:
+                    02:92:d1:fc:f0:84:3b:4a:5b:8f:b6:73:9a:89:fa:
+                    30:1e:e6:2a:68:f2:91:ef:59:57:3d:dc:1c:52:6f:
+                    5e:e6:9b:b5:b8:7c:98:c9:13:d1:39:68:01:67:91:
+                    e0:d3:67:72:16:0a:5e:16:83:45:31:4f:b5:2b:b3:
+                    f6:40:86:89:3a:84:6e:6f:16:61:bc:70:84:be:5a:
+                    13:36:7b:82:ea:07:19:fc:18:c1:16:c6:32:0b:7d:
+                    2c:6b:c4:21:b9:38:6b:31:dc:d9:0c:ad:56:40:68:
+                    7c:e3:c6:64:8e:bf:1c:e0:72:3e:6c:db:d2:73:79:
+                    da:d7:c5:2f:5d:04:7d:b0:07:1e:95:dd:2a:47:5e:
+                    bf:3e:3a:c8:66:f6:67:0f:d4:2a:f1:e2:71:59:d2:
+                    6c:7b:a0:37:ac:e6:97:80:30:13:97:48:d5:74:fc:
+                    38:68:e4:57:cb:99:69:5a:84:27:ac:98:51:e4:64:
+                    bd:91:62:e8:58:27:06:2a:b9:0b:b8:08:e5:e5:b4:
+                    51:a7:a2:10:df:4e:07:6c:a0:3b:96:f2:6e:df:75:
+                    8c:97:1e:64:a0:9a:86:9b:98:26:f9:d8:b7:de:5b:
+                    21:b7:af:89:01:a3:f7:98:6b:da:19:ba:86:ef:ef:
+                    f1:ce:bb:2f:89:ed:c0:b6:1b:e5:5b:f8:90:11:9a:
+                    52:93:e9:be:f7:35:b9:08:cb:ba:c3:ed:2f:73:af:
+                    cc:96:07:55:b5:de:f6:03:f6:f1:89:f9:21:40:76:
+                    c1:69:f2:61:cc:9a:94:df:9c:ec:6a:65:38:be:d1:
+                    4e:2a:87:c7:2f:3e:53:ae:8b:9f:54:a1:09:59:64:
+                    25:aa:a9:d8:44:a9:a8:a0:71:e1:32:aa:4c:32:fd:
+                    44:28:cc:9c:6f:8e:db:81:7e:6f:fa:00:56:c5:e5:
+                    03:46:63:fb:8e:71:8d:e3:13:91:9f:ac:60:3e:64:
+                    f3:df:25:34:09:fa:2d:96:9f:16:05:ea:93:f5:e6:
+                    00:08:27:32:7b:3c:bd:ee:70:24:6c:3b:55:e9:db:
+                    f4:10:2d:20:06:b4:ca:e9:29:65:55:ad:f6:52:54:
+                    5f:e5:a3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+            X509v3 Authority Key Identifier: 
+                keyid:14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+
+    Signature Algorithm: sha512WithRSAEncryption
+         30:e7:48:02:37:e9:28:cf:04:a2:4d:5c:fa:d8:4e:c9:76:c7:
+         14:3f:bd:2c:51:3d:33:f0:1a:bc:49:f1:47:95:8f:69:d8:a9:
+         54:14:44:6c:4d:9f:55:82:08:1e:c6:5b:d5:91:d9:bc:2e:b0:
+         af:d6:25:65:74:96:aa:36:de:ae:31:a8:11:f2:a4:2c:5a:e1:
+         4f:73:f8:4a:c3:35:b0:76:96:71:f2:b5:7d:4b:75:ee:5d:bf:
+         86:a5:ba:0b:a9:52:cb:ec:ab:e5:23:4b:f2:74:55:28:17:1e:
+         b3:ac:27:ad:45:13:6e:69:b3:5a:be:42:36:29:48:db:e7:5c:
+         22:58:a0:90:82:2c:2a:21:2b:db:f4:64:b7:91:5d:1f:2c:48:
+         a4:1a:85:e3:86:a5:aa:19:cd:19:e8:a5:fb:a3:7b:94:77:48:
+         25:a4:cf:a0:cf:71:82:5c:6f:71:22:7c:d6:97:a0:53:bb:ec:
+         30:f6:cb:16:fb:7b:fd:16:94:7a:53:6e:bd:04:64:a2:01:10:
+         9f:f0:5b:b5:a6:73:41:9d:5f:6f:45:73:0d:05:f7:30:6d:39:
+         90:b6:7d:55:7d:4c:2f:ae:5f:38:56:2f:8b:df:f4:bf:12:06:
+         93:6e:0d:02:23:bf:71:91:57:88:e8:bd:62:72:99:00:40:29:
+         1e:c9:13:11:da:7e:8e:e1:d2:a5:0d:bf:f7:d6:ec:01:0d:89:
+         41:cd:d5:dc:d2:f7:5f:33:0d:4c:2f:85:b7:85:b7:81:e4:17:
+         29:f0:74:cf:0e:15:8c:1a:50:0b:08:63:1a:91:4f:e7:76:97:
+         f1:d4:3b:7e:72:d4:c5:45:58:0c:6a:e9:0d:f2:85:d8:91:1e:
+         37:bd:78:e3:39:4d:2e:fd:85:31:c1:a6:3b:6a:cc:2c:53:72:
+         1d:8e:7b:f0:e6:76:86:09:6f:1a:f3:e4:a1:e2:dd:76:5f:b0:
+         8c:e2:2a:54:5d:c1:88:49:90:10:15:42:7d:05:24:53:8c:54:
+         ff:48:18:1a:36:e3:31:d3:54:32:78:0d:fe:f2:3d:aa:0d:37:
+         15:84:b4:36:47:31:e8:85:6e:0b:58:38:ff:21:91:09:c9:a8:
+         43:a3:ea:60:cb:7e:ed:f7:41:6f:4e:91:c1:fd:77:46:e7:d4:
+         e7:86:c0:1b:fd:50:6c:aa:be:00:b3:63:02:ff:4e:c7:a5:57:
+         6e:29:64:e9:54:d5:30:63:38:5f:2d:5a:db:49:5f:14:14:22:
+         d2:81:1f:61:9e:ee:ee:16:66:d6:bc:bd:ac:1b:5c:fb:38:31:
+         95:33:2e:84:6e:7a:de:ee:b9:fc:97:17:06:13:bf:70:1c:6e:
+         76:ed:66:38:e2:70:08:00
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIJAMd+UWocJc1AMA0GCSqGSIb3DQEBDQUAMCwxKjAoBgNV
+BAMMIUNhbm9uaWNhbCBMdGQuIExpdmUgUGF0Y2ggU2lnbmluZzAeFw0xNjA3MTgy
+MzQxMjdaFw0yNjA3MTYyMzQxMjdaMCwxKjAoBgNVBAMMIUNhbm9uaWNhbCBMdGQu
+IExpdmUgUGF0Y2ggU2lnbmluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAL107nKzSqvmMegpJMK9RpgywDnuo/uKrf6rGlujLqGA23lhnkd5LHVXoiHw
+k/aH8ptLnS+zWGEoPEFwExahcpDJ1RZxfOAw+SheSCA2AGm3WZ+j7KjrVUGfOB4i
+Slcg9INZScUAk9MzApLR/PCEO0pbj7Zzmon6MB7mKmjyke9ZVz3cHFJvXuabtbh8
+mMkT0TloAWeR4NNnchYKXhaDRTFPtSuz9kCGiTqEbm8WYbxwhL5aEzZ7guoHGfwY
+wRbGMgt9LGvEIbk4azHc2QytVkBofOPGZI6/HOByPmzb0nN52tfFL10EfbAHHpXd
+Kkdevz46yGb2Zw/UKvHicVnSbHugN6zml4AwE5dI1XT8OGjkV8uZaVqEJ6yYUeRk
+vZFi6FgnBiq5C7gI5eW0UaeiEN9OB2ygO5bybt91jJceZKCahpuYJvnYt95bIbev
+iQGj95hr2hm6hu/v8c67L4ntwLYb5Vv4kBGaUpPpvvc1uQjLusPtL3OvzJYHVbXe
+9gP28Yn5IUB2wWnyYcyalN+c7GplOL7RTiqHxy8+U66Ln1ShCVlkJaqp2ESpqKBx
+4TKqTDL9RCjMnG+O24F+b/oAVsXlA0Zj+45xjeMTkZ+sYD5k898lNAn6LZafFgXq
+k/XmAAgnMns8ve5wJGw7Venb9BAtIAa0yukpZVWt9lJUX+WjAgMBAAGjXTBbMAwG
+A1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBQU3zTRqHzzdiWr7AOe
+8r9SEkm5aTAfBgNVHSMEGDAWgBQU3zTRqHzzdiWr7AOe8r9SEkm5aTANBgkqhkiG
+9w0BAQ0FAAOCAgEAMOdIAjfpKM8Eok1c+thOyXbHFD+9LFE9M/AavEnxR5WPadip
+VBREbE2fVYIIHsZb1ZHZvC6wr9YlZXSWqjberjGoEfKkLFrhT3P4SsM1sHaWcfK1
+fUt17l2/hqW6C6lSy+yr5SNL8nRVKBces6wnrUUTbmmzWr5CNilI2+dcIligkIIs
+KiEr2/Rkt5FdHyxIpBqF44alqhnNGeil+6N7lHdIJaTPoM9xglxvcSJ81pegU7vs
+MPbLFvt7/RaUelNuvQRkogEQn/BbtaZzQZ1fb0VzDQX3MG05kLZ9VX1ML65fOFYv
+i9/0vxIGk24NAiO/cZFXiOi9YnKZAEApHskTEdp+juHSpQ2/99bsAQ2JQc3V3NL3
+XzMNTC+Ft4W3geQXKfB0zw4VjBpQCwhjGpFP53aX8dQ7fnLUxUVYDGrpDfKF2JEe
+N7144zlNLv2FMcGmO2rMLFNyHY578OZ2hglvGvPkoeLddl+wjOIqVF3BiEmQEBVC
+fQUkU4xU/0gYGjbjMdNUMngN/vI9qg03FYS0Nkcx6IVuC1g4/yGRCcmoQ6PqYMt+
+7fdBb06Rwf13RufU54bAG/1QbKq+ALNjAv9Ox6VXbilk6VTVMGM4Xy1a20lfFBQi
+0oEfYZ7u7hZm1ry9rBtc+zgxlTMuhG563u65/JcXBhO/cBxudu1mOOJwCAA=
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e9:df:13:0f:92:92:a9:b7
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Validity
+            Not Before: May 31 16:06:09 2016 GMT
+            Not After : May 29 16:06:09 2026 GMT
+        Subject: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:b3:b0:4f:c6:0a:77:8b:f9:d1:53:33:34:d2:80:
+                    b5:63:6f:e1:f6:a2:83:99:d5:b6:b1:e4:99:91:fa:
+                    6c:19:c6:d0:91:2a:b9:7d:b5:98:a6:0d:28:01:b8:
+                    7c:8e:aa:38:ec:51:37:33:96:f0:b0:9b:8d:86:5f:
+                    67:23:69:2f:d7:c2:f3:fb:c5:d7:f9:04:ff:f2:e5:
+                    61:68:b7:29:b9:c6:8e:4b:4d:2d:8f:92:0c:00:b3:
+                    a3:d2:5a:08:64:cd:f2:09:0b:a5:0e:e6:64:75:d5:
+                    41:f4:4d:49:3a:0d:dc:b9:27:8e:c4:d6:b1:df:8f:
+                    6c:f0:e4:f7:31:cb:a9:04:a1:f9:a7:aa:15:da:59:
+                    03:4d:46:14:d0:dd:bf:e0:f5:9e:f0:71:0c:70:78:
+                    2b:08:fb:e0:b6:68:a4:74:12:9d:f7:f2:64:88:17:
+                    2a:8a:ed:1a:91:b5:6c:13:bd:4c:10:0a:0b:72:0b:
+                    90:db:7d:f3:78:44:4c:d2:a5:41:f7:1c:77:7d:5a:
+                    8a:54:bc:8f:fe:b7:ee:e1:bc:59:37:c4:d4:e8:14:
+                    d0:5b:42:9b:04:00:8e:6d:83:8a:25:21:5b:08:c4:
+                    7b:b2:d9:99:52:c9:5e:59:6d:c4:aa:52:59:e2:e4:
+                    2f:7e:7e:ac:05:01:99:bf:13:72:b7:45:c5:17:da:
+                    8a:d5:3e:71:73:2e:d8:aa:e6:eb:5a:d0:9a:c4:93:
+                    f3:be:eb:d2:47:25:34:16:29:fa:dd:9a:2f:b1:20:
+                    e5:41:4e:ed:ea:51:7c:23:80:ba:3d:b5:3a:0b:8c:
+                    9c:85:48:6c:3c:8b:29:2f:2f:12:c7:52:34:02:ea:
+                    0f:ac:53:23:3c:f8:3e:40:1b:30:63:e9:2d:e6:f6:
+                    58:cc:51:f9:eb:08:4a:b4:c7:16:80:d1:8b:c2:64:
+                    6a:71:a9:70:31:a4:a7:3a:c0:93:99:1b:0e:42:c1:
+                    00:6d:43:27:99:6c:e5:fd:23:16:c1:8e:b5:66:17:
+                    2b:4c:53:5a:6d:1e:96:16:13:6a:c6:d4:85:5b:74:
+                    2e:ce:7c:45:2f:ad:cb:75:9e:5e:91:bd:9a:6a:86:
+                    1a:06:bd:39:be:a3:50:56:ea:e1:f6:e3:95:69:d7:
+                    31:e4:66:f7:36:b5:51:c2:22:b4:9c:74:9c:44:0b:
+                    0e:16:5f:53:f0:23:c6:b9:40:bd:d6:b8:7d:1b:f6:
+                    73:f6:27:e7:c0:e3:65:a0:58:ab:5c:59:b7:80:8c:
+                    8c:04:b4:a9:ae:a0:51:40:10:3b:63:59:49:87:d1:
+                    9b:df:a3:8c:c4:2e:eb:70:c1:0a:18:1f:cb:22:c2:
+                    f2:4a:65:0d:e5:81:74:d8:ce:72:c6:35:be:ba:63:
+                    72:c4:f9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+            X509v3 Authority Key Identifier: 
+                keyid:88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+
+    Signature Algorithm: sha512WithRSAEncryption
+         04:85:16:27:58:ba:71:28:57:86:7b:c2:83:db:e5:72:6f:1e:
+         b2:1c:63:b0:db:ad:c0:42:96:c0:4f:65:f6:35:4d:c0:07:0d:
+         46:be:d3:1e:ec:f1:22:18:2a:18:5d:bb:69:a6:a6:d4:0d:c3:
+         57:03:b9:e7:45:49:28:ca:6d:98:17:68:97:cb:7b:36:81:0a:
+         37:9e:34:79:f3:e1:0e:5b:77:43:bb:5a:a5:45:b7:16:50:86:
+         fd:12:a4:96:0f:15:19:09:1c:e1:fa:80:a5:80:09:be:bb:c8:
+         26:0b:3e:de:03:d2:c2:18:a4:8d:0d:de:c5:32:82:0b:fb:75:
+         55:66:1a:2a:bb:e4:bd:25:91:20:15:d4:be:b8:3f:53:e3:fb:
+         a8:c3:55:e3:d5:e7:82:18:95:df:39:09:a7:fc:89:6e:b4:1c:
+         aa:2d:e8:67:c2:0d:34:34:3e:f9:fa:0b:ce:81:92:11:ae:12:
+         0a:fe:35:63:ce:46:29:c4:2b:4f:cb:4e:05:0a:a1:11:e2:35:
+         f6:5a:5d:b5:e8:d2:6f:4c:fc:3d:24:a6:03:4b:dd:98:6b:f2:
+         71:58:16:1d:a5:25:ef:d9:06:7c:e8:db:7b:88:6a:89:5c:59:
+         01:92:64:db:44:08:63:6c:7c:32:d6:55:98:63:09:26:61:67:
+         0a:fe:5d:ee:fd:23:59:b3:4d:91:c1:4d:41:8b:cd:20:58:fa:
+         2d:45:e5:bd:1d:69:5c:03:a0:49:a6:97:54:13:b6:c9:e0:f8:
+         56:83:a1:2a:c3:f4:6c:fd:ab:20:ca:3d:9c:95:c0:cf:04:bb:
+         46:39:cf:34:81:65:45:27:64:01:7d:62:b3:b8:72:ea:10:d5:
+         0f:53:7d:39:88:25:09:6f:8c:bc:e0:49:bb:39:e2:0e:8d:cf:
+         56:4d:c1:82:6d:87:d2:e7:fc:c0:9f:a7:65:60:d2:6c:65:18:
+         59:38:6e:d0:9c:d7:c3:81:9a:9a:29:8f:83:84:c3:b5:44:ff:
+         28:ac:13:17:64:f2:26:13:d9:55:06:b7:69:68:7c:bf:ec:d1:
+         8c:ef:b7:da:76:e1:07:73:c6:31:62:31:cb:b6:e1:e7:7f:0c:
+         c3:f7:4c:52:be:25:36:8e:a1:bb:60:02:c3:cb:3e:6f:29:fc:
+         7f:6a:fa:f8:ec:0a:df:49:e2:57:0e:bc:bd:93:c3:1b:d5:36:
+         8a:ff:d8:1b:17:c7:1f:cb:69:00:d2:54:9e:ad:61:89:92:95:
+         11:f8:ea:17:83:9f:9b:09:7d:b8:94:a4:ea:f5:ae:ea:dc:dd:
+         62:b9:9e:68:9c:18:ec:19:c4:13:08:c8:b1:62:ab:8e:84:69:
+         11:3c:da:ea:0d:b7:22:bd
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIJAOnfEw+Skqm3MA0GCSqGSIb3DQEBDQUAMH0xCzAJBgNV
+BAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4GA1UEBwwHRG91Z2xhczEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMMJENhbm9uaWNhbCBMdGQu
+IEtlcm5lbCBNb2R1bGUgU2lnbmluZzAeFw0xNjA1MzExNjA2MDlaFw0yNjA1Mjkx
+NjA2MDlaMH0xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4G
+A1UEBwwHRG91Z2xhczEXMBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMM
+JENhbm9uaWNhbCBMdGQuIEtlcm5lbCBNb2R1bGUgU2lnbmluZzCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBALOwT8YKd4v50VMzNNKAtWNv4faig5nVtrHk
+mZH6bBnG0JEquX21mKYNKAG4fI6qOOxRNzOW8LCbjYZfZyNpL9fC8/vF1/kE//Ll
+YWi3KbnGjktNLY+SDACzo9JaCGTN8gkLpQ7mZHXVQfRNSToN3LknjsTWsd+PbPDk
+9zHLqQSh+aeqFdpZA01GFNDdv+D1nvBxDHB4Kwj74LZopHQSnffyZIgXKortGpG1
+bBO9TBAKC3ILkNt983hETNKlQfccd31ailS8j/637uG8WTfE1OgU0FtCmwQAjm2D
+iiUhWwjEe7LZmVLJXlltxKpSWeLkL35+rAUBmb8TcrdFxRfaitU+cXMu2Krm61rQ
+msST877r0kclNBYp+t2aL7Eg5UFO7epRfCOAuj21OguMnIVIbDyLKS8vEsdSNALq
+D6xTIzz4PkAbMGPpLeb2WMxR+esISrTHFoDRi8JkanGpcDGkpzrAk5kbDkLBAG1D
+J5ls5f0jFsGOtWYXK0xTWm0elhYTasbUhVt0Ls58RS+ty3WeXpG9mmqGGga9Ob6j
+UFbq4fbjlWnXMeRm9za1UcIitJx0nEQLDhZfU/AjxrlAvda4fRv2c/Yn58DjZaBY
+q1xZt4CMjAS0qa6gUUAQO2NZSYfRm9+jjMQu63DBChgfyyLC8kplDeWBdNjOcsY1
+vrpjcsT5AgMBAAGjXTBbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1Ud
+DgQWBBSI91LlYKHgc34xFjpGate3CoUMGTAfBgNVHSMEGDAWgBSI91LlYKHgc34x
+FjpGate3CoUMGTANBgkqhkiG9w0BAQ0FAAOCAgEABIUWJ1i6cShXhnvCg9vlcm8e
+shxjsNutwEKWwE9l9jVNwAcNRr7THuzxIhgqGF27aaam1A3DVwO550VJKMptmBdo
+l8t7NoEKN540efPhDlt3Q7tapUW3FlCG/RKklg8VGQkc4fqApYAJvrvIJgs+3gPS
+whikjQ3exTKCC/t1VWYaKrvkvSWRIBXUvrg/U+P7qMNV49XnghiV3zkJp/yJbrQc
+qi3oZ8INNDQ++foLzoGSEa4SCv41Y85GKcQrT8tOBQqhEeI19lpdtejSb0z8PSSm
+A0vdmGvycVgWHaUl79kGfOjbe4hqiVxZAZJk20QIY2x8MtZVmGMJJmFnCv5d7v0j
+WbNNkcFNQYvNIFj6LUXlvR1pXAOgSaaXVBO2yeD4VoOhKsP0bP2rIMo9nJXAzwS7
+RjnPNIFlRSdkAX1is7hy6hDVD1N9OYglCW+MvOBJuzniDo3PVk3Bgm2H0uf8wJ+n
+ZWDSbGUYWThu0JzXw4GamimPg4TDtUT/KKwTF2TyJhPZVQa3aWh8v+zRjO+32nbh
+B3PGMWIxy7bh538Mw/dMUr4lNo6hu2ACw8s+byn8f2r6+OwK30niVw68vZPDG9U2
+iv/YGxfHH8tpANJUnq1hiZKVEfjqF4Ofmwl9uJSk6vWu6tzdYrmeaJwY7BnEEwjI
+sWKrjoRpETza6g23Ir0=
+-----END CERTIFICATE-----
--- linux-gkeop-5.4-5.4.0.orig/debian/certs/canonical-livepatch-all.pem
+++ linux-gkeop-5.4-5.4.0/debian/certs/canonical-livepatch-all.pem
@@ -0,0 +1,121 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            c7:7e:51:6a:1c:25:cd:40
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: CN = Canonical Ltd. Live Patch Signing
+        Validity
+            Not Before: Jul 18 23:41:27 2016 GMT
+            Not After : Jul 16 23:41:27 2026 GMT
+        Subject: CN = Canonical Ltd. Live Patch Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:bd:74:ee:72:b3:4a:ab:e6:31:e8:29:24:c2:bd:
+                    46:98:32:c0:39:ee:a3:fb:8a:ad:fe:ab:1a:5b:a3:
+                    2e:a1:80:db:79:61:9e:47:79:2c:75:57:a2:21:f0:
+                    93:f6:87:f2:9b:4b:9d:2f:b3:58:61:28:3c:41:70:
+                    13:16:a1:72:90:c9:d5:16:71:7c:e0:30:f9:28:5e:
+                    48:20:36:00:69:b7:59:9f:a3:ec:a8:eb:55:41:9f:
+                    38:1e:22:4a:57:20:f4:83:59:49:c5:00:93:d3:33:
+                    02:92:d1:fc:f0:84:3b:4a:5b:8f:b6:73:9a:89:fa:
+                    30:1e:e6:2a:68:f2:91:ef:59:57:3d:dc:1c:52:6f:
+                    5e:e6:9b:b5:b8:7c:98:c9:13:d1:39:68:01:67:91:
+                    e0:d3:67:72:16:0a:5e:16:83:45:31:4f:b5:2b:b3:
+                    f6:40:86:89:3a:84:6e:6f:16:61:bc:70:84:be:5a:
+                    13:36:7b:82:ea:07:19:fc:18:c1:16:c6:32:0b:7d:
+                    2c:6b:c4:21:b9:38:6b:31:dc:d9:0c:ad:56:40:68:
+                    7c:e3:c6:64:8e:bf:1c:e0:72:3e:6c:db:d2:73:79:
+                    da:d7:c5:2f:5d:04:7d:b0:07:1e:95:dd:2a:47:5e:
+                    bf:3e:3a:c8:66:f6:67:0f:d4:2a:f1:e2:71:59:d2:
+                    6c:7b:a0:37:ac:e6:97:80:30:13:97:48:d5:74:fc:
+                    38:68:e4:57:cb:99:69:5a:84:27:ac:98:51:e4:64:
+                    bd:91:62:e8:58:27:06:2a:b9:0b:b8:08:e5:e5:b4:
+                    51:a7:a2:10:df:4e:07:6c:a0:3b:96:f2:6e:df:75:
+                    8c:97:1e:64:a0:9a:86:9b:98:26:f9:d8:b7:de:5b:
+                    21:b7:af:89:01:a3:f7:98:6b:da:19:ba:86:ef:ef:
+                    f1:ce:bb:2f:89:ed:c0:b6:1b:e5:5b:f8:90:11:9a:
+                    52:93:e9:be:f7:35:b9:08:cb:ba:c3:ed:2f:73:af:
+                    cc:96:07:55:b5:de:f6:03:f6:f1:89:f9:21:40:76:
+                    c1:69:f2:61:cc:9a:94:df:9c:ec:6a:65:38:be:d1:
+                    4e:2a:87:c7:2f:3e:53:ae:8b:9f:54:a1:09:59:64:
+                    25:aa:a9:d8:44:a9:a8:a0:71:e1:32:aa:4c:32:fd:
+                    44:28:cc:9c:6f:8e:db:81:7e:6f:fa:00:56:c5:e5:
+                    03:46:63:fb:8e:71:8d:e3:13:91:9f:ac:60:3e:64:
+                    f3:df:25:34:09:fa:2d:96:9f:16:05:ea:93:f5:e6:
+                    00:08:27:32:7b:3c:bd:ee:70:24:6c:3b:55:e9:db:
+                    f4:10:2d:20:06:b4:ca:e9:29:65:55:ad:f6:52:54:
+                    5f:e5:a3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+            X509v3 Authority Key Identifier: 
+                keyid:14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+
+    Signature Algorithm: sha512WithRSAEncryption
+         30:e7:48:02:37:e9:28:cf:04:a2:4d:5c:fa:d8:4e:c9:76:c7:
+         14:3f:bd:2c:51:3d:33:f0:1a:bc:49:f1:47:95:8f:69:d8:a9:
+         54:14:44:6c:4d:9f:55:82:08:1e:c6:5b:d5:91:d9:bc:2e:b0:
+         af:d6:25:65:74:96:aa:36:de:ae:31:a8:11:f2:a4:2c:5a:e1:
+         4f:73:f8:4a:c3:35:b0:76:96:71:f2:b5:7d:4b:75:ee:5d:bf:
+         86:a5:ba:0b:a9:52:cb:ec:ab:e5:23:4b:f2:74:55:28:17:1e:
+         b3:ac:27:ad:45:13:6e:69:b3:5a:be:42:36:29:48:db:e7:5c:
+         22:58:a0:90:82:2c:2a:21:2b:db:f4:64:b7:91:5d:1f:2c:48:
+         a4:1a:85:e3:86:a5:aa:19:cd:19:e8:a5:fb:a3:7b:94:77:48:
+         25:a4:cf:a0:cf:71:82:5c:6f:71:22:7c:d6:97:a0:53:bb:ec:
+         30:f6:cb:16:fb:7b:fd:16:94:7a:53:6e:bd:04:64:a2:01:10:
+         9f:f0:5b:b5:a6:73:41:9d:5f:6f:45:73:0d:05:f7:30:6d:39:
+         90:b6:7d:55:7d:4c:2f:ae:5f:38:56:2f:8b:df:f4:bf:12:06:
+         93:6e:0d:02:23:bf:71:91:57:88:e8:bd:62:72:99:00:40:29:
+         1e:c9:13:11:da:7e:8e:e1:d2:a5:0d:bf:f7:d6:ec:01:0d:89:
+         41:cd:d5:dc:d2:f7:5f:33:0d:4c:2f:85:b7:85:b7:81:e4:17:
+         29:f0:74:cf:0e:15:8c:1a:50:0b:08:63:1a:91:4f:e7:76:97:
+         f1:d4:3b:7e:72:d4:c5:45:58:0c:6a:e9:0d:f2:85:d8:91:1e:
+         37:bd:78:e3:39:4d:2e:fd:85:31:c1:a6:3b:6a:cc:2c:53:72:
+         1d:8e:7b:f0:e6:76:86:09:6f:1a:f3:e4:a1:e2:dd:76:5f:b0:
+         8c:e2:2a:54:5d:c1:88:49:90:10:15:42:7d:05:24:53:8c:54:
+         ff:48:18:1a:36:e3:31:d3:54:32:78:0d:fe:f2:3d:aa:0d:37:
+         15:84:b4:36:47:31:e8:85:6e:0b:58:38:ff:21:91:09:c9:a8:
+         43:a3:ea:60:cb:7e:ed:f7:41:6f:4e:91:c1:fd:77:46:e7:d4:
+         e7:86:c0:1b:fd:50:6c:aa:be:00:b3:63:02:ff:4e:c7:a5:57:
+         6e:29:64:e9:54:d5:30:63:38:5f:2d:5a:db:49:5f:14:14:22:
+         d2:81:1f:61:9e:ee:ee:16:66:d6:bc:bd:ac:1b:5c:fb:38:31:
+         95:33:2e:84:6e:7a:de:ee:b9:fc:97:17:06:13:bf:70:1c:6e:
+         76:ed:66:38:e2:70:08:00
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIJAMd+UWocJc1AMA0GCSqGSIb3DQEBDQUAMCwxKjAoBgNV
+BAMMIUNhbm9uaWNhbCBMdGQuIExpdmUgUGF0Y2ggU2lnbmluZzAeFw0xNjA3MTgy
+MzQxMjdaFw0yNjA3MTYyMzQxMjdaMCwxKjAoBgNVBAMMIUNhbm9uaWNhbCBMdGQu
+IExpdmUgUGF0Y2ggU2lnbmluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAL107nKzSqvmMegpJMK9RpgywDnuo/uKrf6rGlujLqGA23lhnkd5LHVXoiHw
+k/aH8ptLnS+zWGEoPEFwExahcpDJ1RZxfOAw+SheSCA2AGm3WZ+j7KjrVUGfOB4i
+Slcg9INZScUAk9MzApLR/PCEO0pbj7Zzmon6MB7mKmjyke9ZVz3cHFJvXuabtbh8
+mMkT0TloAWeR4NNnchYKXhaDRTFPtSuz9kCGiTqEbm8WYbxwhL5aEzZ7guoHGfwY
+wRbGMgt9LGvEIbk4azHc2QytVkBofOPGZI6/HOByPmzb0nN52tfFL10EfbAHHpXd
+Kkdevz46yGb2Zw/UKvHicVnSbHugN6zml4AwE5dI1XT8OGjkV8uZaVqEJ6yYUeRk
+vZFi6FgnBiq5C7gI5eW0UaeiEN9OB2ygO5bybt91jJceZKCahpuYJvnYt95bIbev
+iQGj95hr2hm6hu/v8c67L4ntwLYb5Vv4kBGaUpPpvvc1uQjLusPtL3OvzJYHVbXe
+9gP28Yn5IUB2wWnyYcyalN+c7GplOL7RTiqHxy8+U66Ln1ShCVlkJaqp2ESpqKBx
+4TKqTDL9RCjMnG+O24F+b/oAVsXlA0Zj+45xjeMTkZ+sYD5k898lNAn6LZafFgXq
+k/XmAAgnMns8ve5wJGw7Venb9BAtIAa0yukpZVWt9lJUX+WjAgMBAAGjXTBbMAwG
+A1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBQU3zTRqHzzdiWr7AOe
+8r9SEkm5aTAfBgNVHSMEGDAWgBQU3zTRqHzzdiWr7AOe8r9SEkm5aTANBgkqhkiG
+9w0BAQ0FAAOCAgEAMOdIAjfpKM8Eok1c+thOyXbHFD+9LFE9M/AavEnxR5WPadip
+VBREbE2fVYIIHsZb1ZHZvC6wr9YlZXSWqjberjGoEfKkLFrhT3P4SsM1sHaWcfK1
+fUt17l2/hqW6C6lSy+yr5SNL8nRVKBces6wnrUUTbmmzWr5CNilI2+dcIligkIIs
+KiEr2/Rkt5FdHyxIpBqF44alqhnNGeil+6N7lHdIJaTPoM9xglxvcSJ81pegU7vs
+MPbLFvt7/RaUelNuvQRkogEQn/BbtaZzQZ1fb0VzDQX3MG05kLZ9VX1ML65fOFYv
+i9/0vxIGk24NAiO/cZFXiOi9YnKZAEApHskTEdp+juHSpQ2/99bsAQ2JQc3V3NL3
+XzMNTC+Ft4W3geQXKfB0zw4VjBpQCwhjGpFP53aX8dQ7fnLUxUVYDGrpDfKF2JEe
+N7144zlNLv2FMcGmO2rMLFNyHY578OZ2hglvGvPkoeLddl+wjOIqVF3BiEmQEBVC
+fQUkU4xU/0gYGjbjMdNUMngN/vI9qg03FYS0Nkcx6IVuC1g4/yGRCcmoQ6PqYMt+
+7fdBb06Rwf13RufU54bAG/1QbKq+ALNjAv9Ox6VXbilk6VTVMGM4Xy1a20lfFBQi
+0oEfYZ7u7hZm1ry9rBtc+zgxlTMuhG563u65/JcXBhO/cBxudu1mOOJwCAA=
+-----END CERTIFICATE-----
--- linux-gkeop-5.4-5.4.0.orig/debian/certs/ubuntu-drivers-all.pem
+++ linux-gkeop-5.4-5.4.0/debian/certs/ubuntu-drivers-all.pem
@@ -0,0 +1,125 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e9:df:13:0f:92:92:a9:b7
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Validity
+            Not Before: May 31 16:06:09 2016 GMT
+            Not After : May 29 16:06:09 2026 GMT
+        Subject: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:b3:b0:4f:c6:0a:77:8b:f9:d1:53:33:34:d2:80:
+                    b5:63:6f:e1:f6:a2:83:99:d5:b6:b1:e4:99:91:fa:
+                    6c:19:c6:d0:91:2a:b9:7d:b5:98:a6:0d:28:01:b8:
+                    7c:8e:aa:38:ec:51:37:33:96:f0:b0:9b:8d:86:5f:
+                    67:23:69:2f:d7:c2:f3:fb:c5:d7:f9:04:ff:f2:e5:
+                    61:68:b7:29:b9:c6:8e:4b:4d:2d:8f:92:0c:00:b3:
+                    a3:d2:5a:08:64:cd:f2:09:0b:a5:0e:e6:64:75:d5:
+                    41:f4:4d:49:3a:0d:dc:b9:27:8e:c4:d6:b1:df:8f:
+                    6c:f0:e4:f7:31:cb:a9:04:a1:f9:a7:aa:15:da:59:
+                    03:4d:46:14:d0:dd:bf:e0:f5:9e:f0:71:0c:70:78:
+                    2b:08:fb:e0:b6:68:a4:74:12:9d:f7:f2:64:88:17:
+                    2a:8a:ed:1a:91:b5:6c:13:bd:4c:10:0a:0b:72:0b:
+                    90:db:7d:f3:78:44:4c:d2:a5:41:f7:1c:77:7d:5a:
+                    8a:54:bc:8f:fe:b7:ee:e1:bc:59:37:c4:d4:e8:14:
+                    d0:5b:42:9b:04:00:8e:6d:83:8a:25:21:5b:08:c4:
+                    7b:b2:d9:99:52:c9:5e:59:6d:c4:aa:52:59:e2:e4:
+                    2f:7e:7e:ac:05:01:99:bf:13:72:b7:45:c5:17:da:
+                    8a:d5:3e:71:73:2e:d8:aa:e6:eb:5a:d0:9a:c4:93:
+                    f3:be:eb:d2:47:25:34:16:29:fa:dd:9a:2f:b1:20:
+                    e5:41:4e:ed:ea:51:7c:23:80:ba:3d:b5:3a:0b:8c:
+                    9c:85:48:6c:3c:8b:29:2f:2f:12:c7:52:34:02:ea:
+                    0f:ac:53:23:3c:f8:3e:40:1b:30:63:e9:2d:e6:f6:
+                    58:cc:51:f9:eb:08:4a:b4:c7:16:80:d1:8b:c2:64:
+                    6a:71:a9:70:31:a4:a7:3a:c0:93:99:1b:0e:42:c1:
+                    00:6d:43:27:99:6c:e5:fd:23:16:c1:8e:b5:66:17:
+                    2b:4c:53:5a:6d:1e:96:16:13:6a:c6:d4:85:5b:74:
+                    2e:ce:7c:45:2f:ad:cb:75:9e:5e:91:bd:9a:6a:86:
+                    1a:06:bd:39:be:a3:50:56:ea:e1:f6:e3:95:69:d7:
+                    31:e4:66:f7:36:b5:51:c2:22:b4:9c:74:9c:44:0b:
+                    0e:16:5f:53:f0:23:c6:b9:40:bd:d6:b8:7d:1b:f6:
+                    73:f6:27:e7:c0:e3:65:a0:58:ab:5c:59:b7:80:8c:
+                    8c:04:b4:a9:ae:a0:51:40:10:3b:63:59:49:87:d1:
+                    9b:df:a3:8c:c4:2e:eb:70:c1:0a:18:1f:cb:22:c2:
+                    f2:4a:65:0d:e5:81:74:d8:ce:72:c6:35:be:ba:63:
+                    72:c4:f9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+            X509v3 Authority Key Identifier: 
+                keyid:88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+
+    Signature Algorithm: sha512WithRSAEncryption
+         04:85:16:27:58:ba:71:28:57:86:7b:c2:83:db:e5:72:6f:1e:
+         b2:1c:63:b0:db:ad:c0:42:96:c0:4f:65:f6:35:4d:c0:07:0d:
+         46:be:d3:1e:ec:f1:22:18:2a:18:5d:bb:69:a6:a6:d4:0d:c3:
+         57:03:b9:e7:45:49:28:ca:6d:98:17:68:97:cb:7b:36:81:0a:
+         37:9e:34:79:f3:e1:0e:5b:77:43:bb:5a:a5:45:b7:16:50:86:
+         fd:12:a4:96:0f:15:19:09:1c:e1:fa:80:a5:80:09:be:bb:c8:
+         26:0b:3e:de:03:d2:c2:18:a4:8d:0d:de:c5:32:82:0b:fb:75:
+         55:66:1a:2a:bb:e4:bd:25:91:20:15:d4:be:b8:3f:53:e3:fb:
+         a8:c3:55:e3:d5:e7:82:18:95:df:39:09:a7:fc:89:6e:b4:1c:
+         aa:2d:e8:67:c2:0d:34:34:3e:f9:fa:0b:ce:81:92:11:ae:12:
+         0a:fe:35:63:ce:46:29:c4:2b:4f:cb:4e:05:0a:a1:11:e2:35:
+         f6:5a:5d:b5:e8:d2:6f:4c:fc:3d:24:a6:03:4b:dd:98:6b:f2:
+         71:58:16:1d:a5:25:ef:d9:06:7c:e8:db:7b:88:6a:89:5c:59:
+         01:92:64:db:44:08:63:6c:7c:32:d6:55:98:63:09:26:61:67:
+         0a:fe:5d:ee:fd:23:59:b3:4d:91:c1:4d:41:8b:cd:20:58:fa:
+         2d:45:e5:bd:1d:69:5c:03:a0:49:a6:97:54:13:b6:c9:e0:f8:
+         56:83:a1:2a:c3:f4:6c:fd:ab:20:ca:3d:9c:95:c0:cf:04:bb:
+         46:39:cf:34:81:65:45:27:64:01:7d:62:b3:b8:72:ea:10:d5:
+         0f:53:7d:39:88:25:09:6f:8c:bc:e0:49:bb:39:e2:0e:8d:cf:
+         56:4d:c1:82:6d:87:d2:e7:fc:c0:9f:a7:65:60:d2:6c:65:18:
+         59:38:6e:d0:9c:d7:c3:81:9a:9a:29:8f:83:84:c3:b5:44:ff:
+         28:ac:13:17:64:f2:26:13:d9:55:06:b7:69:68:7c:bf:ec:d1:
+         8c:ef:b7:da:76:e1:07:73:c6:31:62:31:cb:b6:e1:e7:7f:0c:
+         c3:f7:4c:52:be:25:36:8e:a1:bb:60:02:c3:cb:3e:6f:29:fc:
+         7f:6a:fa:f8:ec:0a:df:49:e2:57:0e:bc:bd:93:c3:1b:d5:36:
+         8a:ff:d8:1b:17:c7:1f:cb:69:00:d2:54:9e:ad:61:89:92:95:
+         11:f8:ea:17:83:9f:9b:09:7d:b8:94:a4:ea:f5:ae:ea:dc:dd:
+         62:b9:9e:68:9c:18:ec:19:c4:13:08:c8:b1:62:ab:8e:84:69:
+         11:3c:da:ea:0d:b7:22:bd
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIJAOnfEw+Skqm3MA0GCSqGSIb3DQEBDQUAMH0xCzAJBgNV
+BAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4GA1UEBwwHRG91Z2xhczEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMMJENhbm9uaWNhbCBMdGQu
+IEtlcm5lbCBNb2R1bGUgU2lnbmluZzAeFw0xNjA1MzExNjA2MDlaFw0yNjA1Mjkx
+NjA2MDlaMH0xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4G
+A1UEBwwHRG91Z2xhczEXMBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMM
+JENhbm9uaWNhbCBMdGQuIEtlcm5lbCBNb2R1bGUgU2lnbmluZzCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBALOwT8YKd4v50VMzNNKAtWNv4faig5nVtrHk
+mZH6bBnG0JEquX21mKYNKAG4fI6qOOxRNzOW8LCbjYZfZyNpL9fC8/vF1/kE//Ll
+YWi3KbnGjktNLY+SDACzo9JaCGTN8gkLpQ7mZHXVQfRNSToN3LknjsTWsd+PbPDk
+9zHLqQSh+aeqFdpZA01GFNDdv+D1nvBxDHB4Kwj74LZopHQSnffyZIgXKortGpG1
+bBO9TBAKC3ILkNt983hETNKlQfccd31ailS8j/637uG8WTfE1OgU0FtCmwQAjm2D
+iiUhWwjEe7LZmVLJXlltxKpSWeLkL35+rAUBmb8TcrdFxRfaitU+cXMu2Krm61rQ
+msST877r0kclNBYp+t2aL7Eg5UFO7epRfCOAuj21OguMnIVIbDyLKS8vEsdSNALq
+D6xTIzz4PkAbMGPpLeb2WMxR+esISrTHFoDRi8JkanGpcDGkpzrAk5kbDkLBAG1D
+J5ls5f0jFsGOtWYXK0xTWm0elhYTasbUhVt0Ls58RS+ty3WeXpG9mmqGGga9Ob6j
+UFbq4fbjlWnXMeRm9za1UcIitJx0nEQLDhZfU/AjxrlAvda4fRv2c/Yn58DjZaBY
+q1xZt4CMjAS0qa6gUUAQO2NZSYfRm9+jjMQu63DBChgfyyLC8kplDeWBdNjOcsY1
+vrpjcsT5AgMBAAGjXTBbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1Ud
+DgQWBBSI91LlYKHgc34xFjpGate3CoUMGTAfBgNVHSMEGDAWgBSI91LlYKHgc34x
+FjpGate3CoUMGTANBgkqhkiG9w0BAQ0FAAOCAgEABIUWJ1i6cShXhnvCg9vlcm8e
+shxjsNutwEKWwE9l9jVNwAcNRr7THuzxIhgqGF27aaam1A3DVwO550VJKMptmBdo
+l8t7NoEKN540efPhDlt3Q7tapUW3FlCG/RKklg8VGQkc4fqApYAJvrvIJgs+3gPS
+whikjQ3exTKCC/t1VWYaKrvkvSWRIBXUvrg/U+P7qMNV49XnghiV3zkJp/yJbrQc
+qi3oZ8INNDQ++foLzoGSEa4SCv41Y85GKcQrT8tOBQqhEeI19lpdtejSb0z8PSSm
+A0vdmGvycVgWHaUl79kGfOjbe4hqiVxZAZJk20QIY2x8MtZVmGMJJmFnCv5d7v0j
+WbNNkcFNQYvNIFj6LUXlvR1pXAOgSaaXVBO2yeD4VoOhKsP0bP2rIMo9nJXAzwS7
+RjnPNIFlRSdkAX1is7hy6hDVD1N9OYglCW+MvOBJuzniDo3PVk3Bgm2H0uf8wJ+n
+ZWDSbGUYWThu0JzXw4GamimPg4TDtUT/KKwTF2TyJhPZVQa3aWh8v+zRjO+32nbh
+B3PGMWIxy7bh538Mw/dMUr4lNo6hu2ACw8s+byn8f2r6+OwK30niVw68vZPDG9U2
+iv/YGxfHH8tpANJUnq1hiZKVEfjqF4Ofmwl9uJSk6vWu6tzdYrmeaJwY7BnEEwjI
+sWKrjoRpETza6g23Ir0=
+-----END CERTIFICATE-----
--- linux-gkeop-5.4-5.4.0.orig/debian/changelog
+++ linux-gkeop-5.4-5.4.0/debian/changelog
@@ -0,0 +1,6582 @@
+linux-gkeop-5.4 (5.4.0-1015.16~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1015.16~18.04.1 -proposed tracker
+    (LP: #1923769)
+
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - [Config] gkeop-5.4: update abi for rc-cec
+
+  [ Ubuntu: 5.4.0-1015.16 ]
+
+  * focal/linux-gkeop: 5.4.0-1015.16 -proposed tracker (LP: #1923770)
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - [Config] gkeop: update abi for rc-cec
+  * Disable Atari partition support for cloud kernels (LP: #1908264)
+    - [Config]: Disable ATARI_PARTITION
+  * focal/linux: 5.4.0-73.82 -proposed tracker (LP: #1923781)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * CIFS DFS entries not accessible with 5.4.0-71.74-generic (LP: #1923670)
+    - Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting
+      cifs_sb->prepath."
+  * CVE-2021-29650
+    - Revert "netfilter: x_tables: Update remaining dereference to RCU"
+    - Revert "netfilter: x_tables: Switch synchronization to RCU"
+    - netfilter: x_tables: Use correct memory barriers.
+  * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key
+    (LP: #1918134)
+    - [Packaging] dkms-build{,--nvidia-N} sync back from LRMv4
+  * 5.4 kernel: when iommu is on crashdump fails (LP: #1922738)
+    - iommu/vt-d: Refactor find_domain() helper
+    - iommu/vt-d: Add attach_deferred() helper
+    - iommu/vt-d: Move deferred device attachment into helper function
+    - iommu/vt-d: Do deferred attachment in iommu_need_mapping()
+    - iommu/vt-d: Remove deferred_attach_domain()
+    - iommu/vt-d: Simplify check in identity_mapping()
+  * Backport mlx5e fix for tunnel offload (LP: #1921769)
+    - net/mlx5e: Check tunnel offload is required before setting SWP
+  * Bcache bypasse writeback on caching device with fragmentation (LP: #1900438)
+    - bcache: consider the fragmentation when update the writeback rate
+  * Fix implicit declaration warnings for kselftests/memfd test on newer
+    releases (LP: #1910323)
+    - selftests/memfd: Fix implicit declaration warnings
+  * net/mlx5e: Add missing capability check for uplink follow (LP: #1921104)
+    - net/mlx5e: Add missing capability check for uplink follow
+  * [UBUNUT 21.04] s390/vtime: fix increased steal time accounting
+    (LP: #1921498)
+    - s390/vtime: fix increased steal time accounting
+  * Mute/Mic-mute LEDs are not work on HP 850/840/440 G8 Laptops (LP: #1920030)
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - uapi: nfnetlink_cthelper.h: fix userspace compilation error
+    - powerpc/pseries: Don't enforce MSI affinity with kdump
+    - ath9k: fix transmitting to stations in dynamic SMPS mode
+    - net: Fix gro aggregation for udp encaps with zero csum
+    - net: check if protocol extracted by virtio_net_hdr_set_proto is correct
+    - net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
+    - sh_eth: fix TRSCER mask for SH771x
+    - can: skb: can_skb_set_owner(): fix ref counting if socket was closed before
+      setting skb ownership
+    - can: flexcan: assert FRZ bit in flexcan_chip_freeze()
+    - can: flexcan: enable RX FIFO after FRZ/HALT valid
+    - can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode
+    - can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before
+      entering Normal Mode
+    - tcp: add sanity tests to TCP_QUEUE_SEQ
+    - netfilter: nf_nat: undo erroneous tcp edemux lookup
+    - netfilter: x_tables: gpf inside xt_find_revision()
+    - selftests/bpf: No need to drop the packet when there is no geneve opt
+    - selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier
+    - samples, bpf: Add missing munmap in xdpsock
+    - ibmvnic: always store valid MAC address
+    - mt76: dma: do not report truncated frames to mac80211
+    - powerpc/603: Fix protection of user pages mapped with PROT_NONE
+    - mount: fix mounting of detached mounts onto targets that reside on shared
+      mounts
+    - cifs: return proper error code in statfs(2)
+    - Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
+    - net: enetc: don't overwrite the RSS indirection table when initializing
+    - net/mlx4_en: update moderation when config reset
+    - net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10
+    - nexthop: Do not flush blackhole nexthops when loopback goes down
+    - net: sched: avoid duplicates in classes dump
+    - net: usb: qmi_wwan: allow qmimux add/del with master up
+    - netdevsim: init u64 stats for 32bit hardware
+    - cipso,calipso: resolve a number of problems with the DOI refcounts
+    - net: lapbether: Remove netif_start_queue / netif_stop_queue
+    - net: davicom: Fix regulator not turned off on failed probe
+    - net: davicom: Fix regulator not turned off on driver removal
+    - net: qrtr: fix error return code of qrtr_sendmsg()
+    - ixgbe: fail to create xfrm offload of IPsec tunnel mode SA
+    - net: stmmac: stop each tx channel independently
+    - net: stmmac: fix watchdog timeout during suspend/resume stress test
+    - selftests: forwarding: Fix race condition in mirror installation
+    - perf traceevent: Ensure read cmdlines are null terminated.
+    - net: hns3: fix query vlan mask value error for flow director
+    - net: hns3: fix bug when calculating the TCAM table info
+    - s390/cio: return -EFAULT if copy_to_user() fails again
+    - bnxt_en: reliably allocate IRQ table on reset to avoid crash
+    - drm/compat: Clear bounce structures
+    - drm/shmem-helper: Check for purged buffers in fault handler
+    - drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
+    - drm: meson_drv add shutdown function
+    - s390/cio: return -EFAULT if copy_to_user() fails
+    - s390/crypto: return -EFAULT if copy_to_user() fails
+    - qxl: Fix uninitialised struct field head.surface_id
+    - sh_eth: fix TRSCER mask for R7S9210
+    - media: usbtv: Fix deadlock on suspend
+    - media: v4l: vsp1: Fix uif null pointer access
+    - media: v4l: vsp1: Fix bru null pointer access
+    - media: rc: compile rc-cec.c into rc-core
+    - [Config] update abi for rc-cec
+    - net: hns3: fix error mask definition of flow director
+    - net: enetc: initialize RFS/RSS memories for unused ports too
+    - net: phy: fix save wrong speed and duplex problem if autoneg is on
+    - i2c: rcar: faster irq code to minimize HW race condition
+    - i2c: rcar: optimize cacheline to minimize HW race condition
+    - udf: fix silent AED tagLocation corruption
+    - mmc: mxs-mmc: Fix a resource leak in an error handling path in
+      'mxs_mmc_probe()'
+    - mmc: mediatek: fix race condition between msdc_request_timeout and irq
+    - Platform: OLPC: Fix probe error handling
+    - powerpc/pci: Add ppc_md.discover_phbs()
+    - spi: stm32: make spurious and overrun interrupts visible
+    - powerpc: improve handling of unrecoverable system reset
+    - powerpc/perf: Record counter overflow always if SAMPLE_IP is unset
+    - HID: logitech-dj: add support for the new lightspeed connection iteration
+    - powerpc/64: Fix stack trace not displaying final frame
+    - iommu/amd: Fix performance counter initialization
+    - sparc32: Limit memblock allocation to low memory
+    - sparc64: Use arch_validate_flags() to validate ADI flag
+    - Input: applespi - don't wait for responses to commands indefinitely.
+    - PCI: xgene-msi: Fix race in installing chained irq handler
+    - PCI: mediatek: Add missing of_node_put() to fix reference leak
+    - kbuild: clamp SUBLEVEL to 255
+    - PCI: Fix pci_register_io_range() memory leak
+    - i40e: Fix memory leak in i40e_probe
+    - s390/smp: __smp_rescan_cpus() - move cpumask away from stack
+    - sysctl.c: fix underflow value setting risk in vm_table
+    - scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
+    - scsi: target: core: Add cmd length set before cmd complete
+    - scsi: target: core: Prevent underflow for service actions
+    - ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
+    - ALSA: hda/hdmi: Cancel pending works before suspend
+    - ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support
+    - ALSA: hda: Drop the BATCH workaround for AMD controllers
+    - ALSA: hda: Flush pending unsolicited events before suspend
+    - ALSA: hda: Avoid spurious unsol event handling during S3/S4
+    - ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
+    - ALSA: usb-audio: Apply the control quirk to Plantronics headsets
+    - Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file
+      capabilities")
+    - arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
+    - s390/dasd: fix hanging DASD driver unbind
+    - s390/dasd: fix hanging IO request during DASD driver unbind
+    - software node: Fix node registration
+    - mmc: core: Fix partition switch time for eMMC
+    - mmc: cqhci: Fix random crash when remove mmc module/card
+    - Goodix Fingerprint device is not a modem
+    - USB: gadget: u_ether: Fix a configfs return code
+    - usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio
+      slot
+    - usb: gadget: f_uac1: stop playback on function disable
+    - usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement
+    - usb: dwc3: qcom: Honor wakeup enabled/disabled state
+    - USB: usblp: fix a hang in poll() if disconnected
+    - usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
+    - usb: xhci: do not perform Soft Retry for some xHCI hosts
+    - xhci: Improve detection of device initiated wake signal.
+    - usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
+    - xhci: Fix repeated xhci wake after suspend due to uncleared internal wake
+      state
+    - USB: serial: io_edgeport: fix memory leak in edge_startup
+    - USB: serial: ch341: add new Product ID
+    - USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
+    - USB: serial: cp210x: add some more GE USB IDs
+    - usbip: fix stub_dev to check for stream socket
+    - usbip: fix vhci_hcd to check for stream socket
+    - usbip: fix vudc to check for stream socket
+    - usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
+    - usbip: fix vhci_hcd attach_store() races leading to gpf
+    - usbip: fix vudc usbip_sockfd_store races leading to gpf
+    - misc/pvpanic: Export module FDT device table
+    - misc: fastrpc: restrict user apps from sending kernel RPC messages
+    - staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
+    - staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
+    - staging: rtl8712: unterminated string leads to read overflow
+    - staging: rtl8188eu: fix potential memory corruption in
+      rtw_check_beacon_data()
+    - staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
+    - staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
+    - staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan
+    - staging: comedi: addi_apci_1032: Fix endian problem for COS sample
+    - staging: comedi: addi_apci_1500: Fix endian problem for command sample
+    - staging: comedi: adv_pci1710: Fix endian problem for AI command data
+    - staging: comedi: das6402: Fix endian problem for AI command data
+    - staging: comedi: das800: Fix endian problem for AI command data
+    - staging: comedi: dmm32at: Fix endian problem for AI command data
+    - staging: comedi: me4000: Fix endian problem for AI command data
+    - staging: comedi: pcl711: Fix endian problem for AI command data
+    - staging: comedi: pcl818: Fix endian problem for AI command data
+    - sh_eth: fix TRSCER mask for R7S72100
+    - arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
+    - SUNRPC: Set memalloc_nofs_save() for sync tasks
+    - NFS: Don't revalidate the directory permissions on a lookup failure
+    - NFS: Don't gratuitously clear the inode cache when lookup failed
+    - NFSv4.2: fix return value of _nfs4_get_security_label()
+    - block: rsxx: fix error return code of rsxx_pci_probe()
+    - configfs: fix a use-after-free in __configfs_open_file
+    - arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
+    - hrtimer: Update softirq_expires_next correctly after
+      __hrtimer_get_next_event()
+    - stop_machine: mark helpers __always_inline
+    - include/linux/sched/mm.h: use rcu_dereference in in_vfork()
+    - zram: fix return value on writeback_store
+    - sched/membarrier: fix missing local execution of ipi_sync_rq_state()
+    - powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
+    - binfmt_misc: fix possible deadlock in bm_register_write
+    - x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
+    - KVM: arm64: Fix exclusive limit for IPA size
+    - nvme: unlink head after removing last namespace
+    - nvme: release namespace head reference on error
+    - KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
+    - KVM: arm64: Reject VM creation when the default IPA size is unsupported
+    - xen/events: reset affinity of 2-level event when tearing it down
+    - xen/events: don't unmask an event channel when an eoi is pending
+    - xen/events: avoid handling the same event on two cpus at the same time
+    - Linux 5.4.106
+  * Focal update: v5.4.105 upstream stable release (LP: #1920244)
+    - net: dsa: add GRO support via gro_cells
+    - dm table: fix iterate_devices based device capability checks
+    - dm table: fix DAX iterate_devices based device capability checks
+    - dm table: fix zoned iterate_devices based device capability checks
+    - ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter
+      handling
+    - iommu/amd: Fix sleeping in atomic in increase_address_space()
+    - mwifiex: pcie: skip cancel_work_sync() on reset failure path
+    - platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
+    - platform/x86: acer-wmi: Cleanup accelerometer device handling
+    - platform/x86: acer-wmi: Add new force_caps module parameter
+    - platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
+    - platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
+    - platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch
+      10E SW3-016
+    - HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
+    - media: cx23885: add more quirks for reset DMA on some AMD IOMMU
+    - ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
+    - ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
+    - PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
+    - misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
+    - drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
+    - mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo
+      Winpad A15
+    - nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
+    - nvme-pci: add quirks for Lexar 256GB SSD
+    - Linux 5.4.105
+  * Focal update: v5.4.104 upstream stable release (LP: #1920238)
+    - tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality()
+    - tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality()
+    - btrfs: raid56: simplify tracking of Q stripe presence
+    - btrfs: fix raid6 qstripe kmap
+    - btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
+    - btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
+    - btrfs: unlock extents in btrfs_zero_range in case of quota reservation
+      errors
+    - btrfs: fix warning when creating a directory with smack enabled
+    - PM: runtime: Update device status before letting suppliers suspend
+    - dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
+    - dm verity: fix FEC for RS roots unaligned to block size
+    - drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie
+    - arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
+    - crypto - shash: reduce minimum alignment of shash_desc structure
+    - usbip: tools: fix build error for multiple definition
+    - ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
+    - RDMA/rxe: Fix missing kconfig dependency on CRYPTO
+    - IB/mlx5: Add missing error code
+    - ALSA: hda: intel-nhlt: verify config type
+    - ftrace: Have recordmcount use w8 to read relp->r_info in
+      arm64_is_fake_mcount
+    - rsxx: Return -EFAULT if copy_to_user() fails
+    - r8169: fix resuming from suspend on RTL8105e if machine runs on battery
+    - Linux 5.4.104
+  * Focal update: v5.4.103 upstream stable release (LP: #1920235)
+    - net: usb: qmi_wwan: support ZTE P685M modem
+    - nvme-pci: refactor nvme_unmap_data
+    - nvme-pci: fix error unwind in nvme_map_data
+    - arm64 module: set plt* section addresses to 0x0
+    - MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target='
+    - JFS: more checks for invalid superblock
+    - udlfb: Fix memory leak in dlfb_usb_probe
+    - media: mceusb: sanity check for prescaler value
+    - erofs: fix shift-out-of-bounds of blkszbits
+    - media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate
+    - xfs: Fix assert failure in xfs_setattr_size()
+    - net/af_iucv: remove WARN_ONCE on malformed RX packets
+    - smackfs: restrict bytes count in smackfs write functions
+    - net: fix up truesize of cloned skb in skb_prepare_for_shift()
+    - nbd: handle device refs for DESTROY_ON_DISCONNECT properly
+    - mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
+    - net: bridge: use switchdev for port flags set through sysfs too
+    - net: ag71xx: remove unnecessary MTU reservation
+    - net: fix dev_ifsioc_locked() race condition
+    - dt-bindings: ethernet-controller: fix fixed-link specification
+    - dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/
+    - MIPS: Drop 32-bit asm string functions
+    - drm/virtio: use kvmalloc for large allocations
+    - rsi: Fix TX EAPOL packet handling against iwlwifi AP
+    - rsi: Move card interrupt handling to RX thread
+    - staging: fwserial: Fix error handling in fwserial_create
+    - x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk
+    - vt/consolemap: do font sum unsigned
+    - wlcore: Fix command execute failure 19 for wl12xx
+    - Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl
+    - pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
+    - ath10k: fix wmi mgmt tx queue full due to race condition
+    - x86/build: Treat R_386_PLT32 relocation as R_386_PC32
+    - Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data
+    - staging: most: sound: add sanity check for function argument
+    - staging: bcm2835-audio: Replace unsafe strcpy() with strscpy()
+    - brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet
+    - brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet
+    - drm/hisilicon: Fix use-after-free
+    - crypto: tcrypt - avoid signed overflow in byte count
+    - drm/amdgpu: Add check to prevent IH overflow
+    - PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
+    - drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails
+    - media: uvcvideo: Allow entities with no pads
+    - f2fs: handle unallocated section and zone on pinned/atgc
+    - f2fs: fix to set/clear I_LINKABLE under i_lock
+    - nvme-core: add cancel tagset helpers
+    - nvme-rdma: add clean action for failed reconnection
+    - nvme-tcp: add clean action for failed reconnection
+    - ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr()
+    - btrfs: fix error handling in commit_fs_roots
+    - perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
+    - parisc: Bump 64-bit IRQ stack size to 64 KB
+    - sched/features: Fix hrtick reprogramming
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R
+      tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet
+    - ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
+    - Xen/gnttab: handle p2m update errors on a per-slot basis
+    - xen-netback: respect gnttab_map_refs()'s return value
+    - zsmalloc: account the number of compacted pages correctly
+    - swap: fix swapfile read/write offset
+    - media: v4l: ioctl: Fix memory leak in video_usercopy
+    - ALSA: hda/realtek: Add quirk for Clevo NH55RZQ
+    - ALSA: hda/realtek: Add quirk for Intel NUC 10
+    - ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board
+    - Linux 5.4.103
+  * Focal update: v5.4.102 upstream stable release (LP: #1918974)
+    - vmlinux.lds.h: add DWARF v5 sections
+    - kvm: x86: replace kvm_spec_ctrl_test_value with runtime test on the host
+    - debugfs: be more robust at handling improper input in debugfs_lookup()
+    - debugfs: do not attempt to create a new file before the filesystem is
+      initalized
+    - kdb: Make memory allocations more robust
+    - PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
+    - PCI: Decline to resize resources if boot config must be preserved
+    - virt: vbox: Do not use wait_event_interruptible when called from kernel
+      context
+    - bfq: Avoid false bfq queue merging
+    - ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
+    - MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
+    - random: fix the RNDRESEEDCRNG ioctl
+    - ath10k: Fix error handling in case of CE pipe init failure
+    - Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the
+      probe function
+    - Bluetooth: hci_uart: Fix a race for write_work scheduling
+    - Bluetooth: Fix initializing response id after clearing struct
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Monk
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on TM2
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
+    - memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops
+    - bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h
+    - bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args
+    - arm64: dts: allwinner: A64: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: H6: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card
+    - arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency
+    - arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
+    - cpufreq: brcmstb-avs-cpufreq: Free resources in error path
+    - cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
+    - ACPICA: Fix exception code class checks
+    - usb: gadget: u_audio: Free requests only after callback
+    - Bluetooth: drop HCI device reference before return
+    - Bluetooth: Put HCI device if inquiry procedure interrupts
+    - memory: ti-aemif: Drop child node when jumping out loop
+    - ARM: dts: Configure missing thermal interrupt for 4430
+    - usb: dwc2: Do not update data length if it is 0 on inbound transfers
+    - usb: dwc2: Abort transaction after errors with unknown reason
+    - usb: dwc2: Make "trimming xfer length" a debug message
+    - staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules
+    - ARM: dts: armada388-helios4: assign pinctrl to LEDs
+    - ARM: dts: armada388-helios4: assign pinctrl to each fan
+    - arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to
+      a53-firmware
+    - Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv
+    - arm64: dts: msm8916: Fix reserved and rfsa nodes unit address
+    - ARM: s3c: fix fiq for clang IAS
+    - soc: aspeed: snoop: Add clock control logic
+    - bpf_lru_list: Read double-checked variable once without lock
+    - ath9k: fix data bus crash when setting nf_override via debugfs
+    - ibmvnic: Set to CLOSED state even on error
+    - bnxt_en: reverse order of TX disable and carrier off
+    - xen/netback: fix spurious event detection for common event case
+    - mac80211: fix potential overflow when multiplying to u32 integers
+    - bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
+    - tcp: fix SO_RCVLOWAT related hangs under mem pressure
+    - net: axienet: Handle deferred probe on clock properly
+    - cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4
+      and ulds
+    - b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
+    - ibmvnic: add memory barrier to protect long term buffer
+    - ibmvnic: skip send_request_unmap for timeout reset
+    - net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout
+    - net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning
+    - net: amd-xgbe: Reset link when the link never comes back
+    - net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP
+    - net: mvneta: Remove per-cpu queue mapping for Armada 3700
+    - fbdev: aty: SPARC64 requires FB_ATY_CT
+    - drm/gma500: Fix error return code in psb_driver_load()
+    - gma500: clean up error handling in init
+    - drm/fb-helper: Add missed unlocks in setcmap_legacy()
+    - crypto: sun4i-ss - linearize buffers content must be kept
+    - crypto: sun4i-ss - fix kmap usage
+    - crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled
+    - drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition
+    - MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
+    - MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
+    - media: i2c: ov5670: Fix PIXEL_RATE minimum value
+    - media: imx: Unregister csc/scaler only if registered
+    - media: imx: Fix csc/scaler unregister
+    - media: camss: missing error code in msm_video_register()
+    - media: vsp1: Fix an error handling path in the probe function
+    - media: em28xx: Fix use-after-free in em28xx_alloc_urbs
+    - media: media/pci: Fix memleak in empress_init
+    - media: tm6000: Fix memleak in tm6000_start_stream
+    - media: aspeed: fix error return code in aspeed_video_setup_video()
+    - ASoC: cs42l56: fix up error handling in probe
+    - evm: Fix memleak in init_desc
+    - crypto: bcm - Rename struct device_private to bcm_device_private
+    - drm/sun4i: tcon: fix inverted DCLK polarity
+    - MIPS: properly stop .eh_frame generation
+    - bsg: free the request before return error code
+    - drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction.
+    - drm/amd/display: Fix HDMI deep color output for DCE 6-11.
+    - media: software_node: Fix refcounts in software_node_get_next_child()
+    - media: lmedm04: Fix misuse of comma
+    - media: qm1d1c0042: fix error return code in qm1d1c0042_init()
+    - media: cx25821: Fix a bug when reallocating some dma memory
+    - media: pxa_camera: declare variable when DEBUG is defined
+    - media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
+    - sched/eas: Don't update misfit status if the task is pinned
+    - mtd: parser: imagetag: fix error codes in
+      bcm963xx_parse_imagetag_partitions()
+    - crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error)
+    - drm/nouveau: bail out of nouveau_channel_new if channel init fails
+    - ata: ahci_brcm: Add back regulators management
+    - ASoC: cpcap: fix microphone timeslot mask
+    - mtd: parsers: afs: Fix freeing the part name memory in failure
+    - f2fs: fix to avoid inconsistent quota data
+    - drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
+    - f2fs: fix a wrong condition in __submit_bio
+    - Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind()
+    - ASoC: SOF: debug: Fix a potential issue on string buffer termination
+    - btrfs: clarify error returns values in __load_free_space_cache
+    - hwrng: timeriomem - Fix cooldown period calculation
+    - crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
+    - ima: Free IMA measurement buffer on error
+    - ima: Free IMA measurement buffer after kexec syscall
+    - ASoC: simple-card-utils: Fix device module clock
+    - fs/jfs: fix potential integer overflow on shift of a int
+    - jffs2: fix use after free in jffs2_sum_write_data()
+    - ubifs: Fix memleak in ubifs_init_authentication
+    - ubifs: Fix error return code in alloc_wbufs()
+    - capabilities: Don't allow writing ambiguous v3 file capabilities
+    - HSI: Fix PM usage counter unbalance in ssi_hw_init
+    - clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
+    - clk: meson: clk-pll: make "ret" a signed integer
+    - clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate()
+    - quota: Fix memory leak when handling corrupted quota file
+    - i2c: iproc: handle only slave interrupts which are enabled
+    - i2c: iproc: update slave isr mask (ISR_MASK_SLAVE)
+    - i2c: iproc: handle master read request
+    - spi: cadence-quadspi: Abort read if dummy cycles required are too many
+    - clk: sunxi-ng: h6: Fix CEC clock
+    - HID: core: detect and skip invalid inputs to snto32()
+    - RDMA/siw: Fix handling of zero-sized Read and Receive Queues.
+    - dmaengine: fsldma: Fix a resource leak in the remove function
+    - dmaengine: fsldma: Fix a resource leak in an error handling path of the
+      probe function
+    - dmaengine: owl-dma: Fix a resource leak in the remove function
+    - dmaengine: hsu: disable spurious interrupt
+    - mfd: bd9571mwv: Use devm_mfd_add_devices()
+    - fdt: Properly handle "no-map" field in the memory region
+    - of/fdt: Make sure no-map does not remove already reserved regions
+    - power: reset: at91-sama5d2_shdwc: fix wkupdbc mask
+    - rtc: s5m: select REGMAP_I2C
+    - clocksource/drivers/ixp4xx: Select TIMER_OF when needed
+    - clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
+    - RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
+    - clk: sunxi-ng: h6: Fix clock divider range on some clocks
+    - regulator: axp20x: Fix reference cout leak
+    - certs: Fix blacklist flag type confusion
+    - regulator: s5m8767: Fix reference count leak
+    - spi: atmel: Put allocated master before return
+    - regulator: s5m8767: Drop regulators OF node reference
+    - regulator: core: Avoid debugfs: Directory ... already present! error
+    - isofs: release buffer head before return
+    - auxdisplay: ht16k33: Fix refresh rate handling
+    - objtool: Fix error handling for STD/CLD warnings
+    - objtool: Fix ".cold" section suffix check for newer versions of GCC
+    - IB/umad: Return EIO in case of when device disassociated
+    - IB/umad: Return EPOLLERR in case of when device disassociated
+    - KVM: PPC: Make the VMX instruction emulation routines static
+    - powerpc/47x: Disable 256k page size
+    - mmc: sdhci-sprd: Fix some resource leaks in the remove function
+    - mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
+    - mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to
+      128-bytes
+    - ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
+    - i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct
+    - amba: Fix resource leak for drivers without .remove
+    - IB/mlx5: Return appropriate error code instead of ENOMEM
+    - IB/cm: Avoid a loop when device has 255 ports
+    - tracepoint: Do not fail unregistering a probe due to memory failure
+    - perf tools: Fix DSO filtering when not finding a map for a sampled address
+    - perf vendor events arm64: Fix Ampere eMag event typo
+    - RDMA/rxe: Fix coding error in rxe_recv.c
+    - RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt
+    - RDMA/rxe: Correct skb on loopback path
+    - spi: stm32: properly handle 0 byte transfer
+    - mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
+    - powerpc/pseries/dlpar: handle ibm, configure-connector delay status
+    - powerpc/8xx: Fix software emulation interrupt
+    - clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs
+    - RDMA/hns: Fixed wrong judgments in the goto branch
+    - RDMA/siw: Fix calculation of tx_valid_cpus size
+    - RDMA/hns: Fix type of sq_signal_bits
+    - spi: pxa2xx: Fix the controller numbering for Wildcat Point
+    - regulator: qcom-rpmh: fix pm8009 ldo7
+    - clk: aspeed: Fix APLL calculate formula from ast2600-A2
+    - nfsd: register pernet ops last, unregister first
+    - RDMA/hns: Fixes missing error code of CMDQ
+    - Input: sur40 - fix an error code in sur40_probe()
+    - perf intel-pt: Fix missing CYC processing in PSB
+    - perf intel-pt: Fix premature IPC
+    - perf test: Fix unaligned access in sample parsing test
+    - Input: elo - fix an error code in elo_connect()
+    - sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
+    - misc: eeprom_93xx46: Fix module alias to enable module autoprobe
+    - phy: rockchip-emmc: emmc_phy_init() always return 0
+    - misc: eeprom_93xx46: Add module alias to avoid breaking support for non
+      device tree users
+    - soundwire: cadence: fix ACK/NAK handling
+    - pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
+    - VMCI: Use set_page_dirty_lock() when unregistering guest memory
+    - PCI: Align checking of syscall user config accessors
+    - mei: hbm: call mei_set_devstate() on hbm stop response
+    - drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
+    - drm/msm/mdp5: Fix wait-for-commit for cmd panels
+    - vfio/iommu_type1: Fix some sanity checks in detach group
+    - ext4: fix potential htree index checksum corruption
+    - nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of()
+    - nvmem: core: skip child nodes not matching binding
+    - regmap: sdw: use _no_pm functions in regmap_read/write
+    - i40e: Fix flow for IPv6 next header (extension header)
+    - i40e: Add zero-initialization of AQ command structures
+    - i40e: Fix overwriting flow control settings during driver loading
+    - i40e: Fix addition of RX filters after enabling FW LLDP agent
+    - i40e: Fix VFs not created
+    - i40e: Fix add TC filter for IPv6
+    - vfio/type1: Use follow_pte()
+    - net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
+    - vxlan: move debug check after netdev unregister
+    - ocfs2: fix a use after free on error
+    - mm/memory.c: fix potential pte_unmap_unlock pte error
+    - mm/hugetlb: fix potential double free in hugetlb_register_node() error path
+    - mm/compaction: fix misbehaviors of fast_find_migrateblock()
+    - r8169: fix jumbo packet handling on RTL8168e
+    - arm64: Add missing ISB after invalidating TLB in __primary_switch
+    - i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
+    - mm/rmap: fix potential pte_unmap on an not mapped pte
+    - scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
+    - blk-settings: align max_sectors on "logical_block_size" boundary
+    - ACPI: property: Fix fwnode string properties matching
+    - ACPI: configfs: add missing check after configfs_register_default_group()
+    - HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming
+    - HID: wacom: Ignore attempts to overwrite the touch_max value from HID
+    - Input: raydium_ts_i2c - do not send zero length
+    - Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox
+      Series X|S
+    - Input: joydev - prevent potential read overflow in ioctl
+    - Input: i8042 - add ASUS Zenbook Flip to noselftest list
+    - media: mceusb: Fix potential out-of-bounds shift
+    - USB: serial: option: update interface mapping for ZTE P685M
+    - usb: musb: Fix runtime PM race in musb_queue_resume_work
+    - usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
+    - usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
+    - USB: serial: ftdi_sio: fix FTX sub-integer prescaler
+    - USB: serial: mos7840: fix error code in mos7840_write()
+    - USB: serial: mos7720: fix error code in mos7720_write()
+    - ALSA: hda: Add another CometLake-H PCI ID
+    - ALSA: hda/realtek: modify EAPD in the ALC886
+    - Revert "bcache: Kill btree_io_wq"
+    - bcache: Give btree_io_wq correct semantics again
+    - bcache: Move journal work to new flush wq
+    - drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1
+    - drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2)
+    - drm/nouveau/kms: handle mDP connectors
+    - drm/sched: Cancel and flush all outstanding jobs before finish.
+    - erofs: initialized fields can only be observed after bit is set
+    - tpm_tis: Fix check_locality for correct locality acquisition
+    - tpm_tis: Clean up locality release
+    - KEYS: trusted: Fix migratable=1 failing
+    - btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
+    - btrfs: fix reloc root leak with 0 ref reloc roots on recovery
+    - btrfs: splice remaining dirty_bg's onto the transaction dirty bg list
+    - btrfs: fix extent buffer leak on failure to copy root
+    - crypto: arm64/sha - add missing module aliases
+    - crypto: aesni - prevent misaligned buffers on the stack
+    - crypto: sun4i-ss - checking sg length is not sufficient
+    - crypto: sun4i-ss - handle BigEndian for cipher
+    - crypto: sun4i-ss - initialize need_fallback
+    - seccomp: Add missing return in non-void function
+    - misc: rtsx: init of rts522a add OCP power off when no card is present
+    - drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
+    - pstore: Fix typo in compression option name
+    - dts64: mt7622: fix slow sd card access
+    - staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c
+    - staging: gdm724x: Fix DMA from stack
+    - staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
+    - media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt()
+    - x86/virt: Eat faults on VMXOFF in reboot flows
+    - x86/reboot: Force all cpus to exit VMX root if VMX is supported
+    - powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan
+    - rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
+    - rcu/nocb: Perform deferred wake up before last idle's need_resched() check
+    - floppy: reintroduce O_NDELAY fix
+    - arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into()
+      fails
+    - arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
+    - watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ
+    - watchdog: mei_wdt: request stop on unregister
+    - mtd: spi-nor: sfdp: Fix last erase region marking
+    - mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region
+    - mtd: spi-nor: core: Fix erase type discovery for overlaid region
+    - mtd: spi-nor: core: Add erase size check for erase command initialization
+    - mtd: spi-nor: hisi-sfc: Put child node np on error path
+    - fs/affs: release old buffer head on error path
+    - seq_file: document how per-entry resources are managed.
+    - x86: fix seq_file iteration for pat/memtype.c
+    - hugetlb: fix update_and_free_page contig page struct assumption
+    - hugetlb: fix copy_huge_page_from_user contig page struct assumption
+    - arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55
+    - media: smipcie: fix interrupt handling and IR timeout
+    - module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
+    - mmc: sdhci-esdhc-imx: fix kernel panic when remove module
+    - powerpc/32s: Add missing call to kuep_lock on syscall entry
+    - spmi: spmi-pmic-arb: Fix hw_irq overflow
+    - gpio: pcf857x: Fix missing first interrupt
+    - printk: fix deadlock when kernel panic
+    - cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if
+      available
+    - s390/vtime: fix inline assembly clobber list
+    - virtio/s390: implement virtio-ccw revision 2 correctly
+    - um: mm: check more comprehensively for stub changes
+    - f2fs: fix out-of-repair __setattr_copy()
+    - sparc32: fix a user-triggerable oops in clear_user()
+    - spi: spi-synquacer: fix set_cs handling
+    - gfs2: Don't skip dlm unlock if glock has an lvb
+    - gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end
+    - dm: fix deadlock when swapping to encrypted device
+    - dm writecache: fix writing beyond end of underlying device when shrinking
+    - dm era: Recover committed writeset after crash
+    - dm era: Verify the data block size hasn't changed
+    - dm era: Fix bitset memory leaks
+    - dm era: Use correct value size in equality function of writeset tree
+    - dm era: Reinitialize bitset cache before digesting a new writeset
+    - dm era: only resize metadata in preresume
+    - drm/i915: Reject 446-480MHz HDMI clock on GLK
+    - icmp: introduce helper for nat'd source address in network device context
+    - icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
+    - gtp: use icmp_ndo_send helper
+    - sunvnet: use icmp_ndo_send helper
+    - xfrm: interface: use icmp_ndo_send helper
+    - ipv6: icmp6: avoid indirect call for icmpv6_send()
+    - ipv6: silence compilation warning for non-IPV6 builds
+    - net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
+    - net: sched: fix police ext initialization
+    - dm era: Update in-core bitset after committing the metadata
+    - net: qrtr: Fix memory leak in qrtr_tun_open
+    - ARM: dts: aspeed: Add LCLK to lpc-snoop
+    - Linux 5.4.102
+  * eeh-basic.sh from powerpc in ubuntu_kernel_selftests failed with unexpected
+    operator on F-5.8 (LP: #1909428)
+    - selftests/powerpc: Make the test check in eeh-basic.sh posix compliant
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Thu, 22 Apr 2021 06:19:47 -0600
+
+linux-gkeop-5.4 (5.4.0-1014.15~18.04.1) bionic; urgency=medium
+
+  [ Ubuntu: 5.4.0-1014.15 ]
+
+  * overlayfs calls vfs_setxattr without cap_convert_nscap
+    - vfs: move cap_convert_nscap() call into vfs_setxattr()
+  * CVE-2021-3492
+    - SAUCE: shiftfs: free allocated memory in shiftfs_btrfs_ioctl_fd_replace()
+      error paths
+    - SAUCE: shiftfs: handle copy_to_user() return values correctly
+  * CVE-2021-29154
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-64
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-32
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Tue, 13 Apr 2021 16:34:26 -0300
+
+linux-gkeop-5.4 (5.4.0-1013.14~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1013.14~18.04.1 -proposed tracker
+    (LP: #1921028)
+
+  [ Ubuntu: 5.4.0-1013.14 ]
+
+  * focal/linux-gkeop: 5.4.0-1013.14 -proposed tracker (LP: #1921029)
+  * focal/linux: 5.4.0-71.79 -proposed tracker (LP: #1921040)
+  * selftests: bpf verifier fails after sanitize_ptr_alu fixes (LP: #1920995)
+    - bpf: Simplify alu_limit masking for pointer arithmetic
+    - bpf: Add sanity check for upper ptr_limit
+    - bpf, selftests: Fix up some test_verifier cases for unprivileged
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Fix missing HDMI/DP audio on NVidia card after S3 (LP: #1918228)
+    - ALSA: hda/hdmi: Reduce hda_jack_tbl lookup at unsol event handling
+    - ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
+    - ALSA: hda/hdmi: Move runtime PM resume into hdmi_present_sense_via_verbs()
+    - ALSA: hda/hdmi: Move ELD parse and jack reporting into update_eld()
+  * Focal update: v5.4.101 upstream stable release (LP: #1918170)
+    - HID: make arrays usage and value to be the same
+    - USB: quirks: sort quirk entries
+    - usb: quirks: add quirk to start video capture on ELMO L-12F document camera
+      reliable
+    - ntfs: check for valid standard information attribute
+    - arm64: tegra: Add power-domain for Tegra210 HDA
+    - scripts: use pkg-config to locate libcrypto
+    - scripts: set proper OpenSSL include dir also for sign-file
+    - mm: unexport follow_pte_pmd
+    - mm: simplify follow_pte{,pmd}
+    - KVM: do not assume PTE is writable after follow_pfn
+    - mm: provide a saner PTE walking API for modules
+    - KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped()
+    - NET: usb: qmi_wwan: Adding support for Cinterion MV31
+    - cxgb4: Add new T6 PCI device id 0x6092
+    - cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
+    - scripts/recordmcount.pl: support big endian for ARCH sh
+    - Linux 5.4.101
+  * Focal update: v5.4.100 upstream stable release (LP: #1918168)
+    - KVM: SEV: fix double locking due to incorrect backport
+    - net: qrtr: Fix port ID for control messages
+    - net: bridge: Fix a warning when del bridge sysfs
+    - Xen/x86: don't bail early from clear_foreign_p2m_mapping()
+    - Xen/x86: also check kernel mapping in set_foreign_p2m_mapping()
+    - Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages()
+    - Xen/gntdev: correct error checking in gntdev_map_grant_pages()
+    - xen/arm: don't ignore return errors from set_phys_to_machine
+    - xen-blkback: don't "handle" error by BUG()
+    - xen-netback: don't "handle" error by BUG()
+    - xen-scsiback: don't "handle" error by BUG()
+    - xen-blkback: fix error handling in xen_blkbk_map()
+    - media: pwc: Use correct device for DMA
+    - btrfs: fix backport of 2175bf57dc952 in 5.4.95
+    - Linux 5.4.100
+  * Focal update: v5.4.99 upstream stable release (LP: #1918167)
+    - gpio: ep93xx: fix BUG_ON port F usage
+    - gpio: ep93xx: Fix single irqchip with multi gpiochips
+    - tracing: Do not count ftrace events in top level enable output
+    - tracing: Check length before giving out the filter buffer
+    - arm/xen: Don't probe xenbus as part of an early initcall
+    - cgroup: fix psi monitor for root cgroup
+    - arm64: dts: rockchip: Fix PCIe DT properties on rk3399
+    - arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
+    - ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
+    - platform/x86: hp-wmi: Disable tablet-mode reporting by default
+    - ovl: perform vfs_getxattr() with mounter creds
+    - cap: fix conversions on getxattr
+    - ovl: skip getxattr of security labels
+    - nvme-pci: ignore the subsysem NQN on Phison E16
+    - drm/amd/display: Add more Clock Sources to DCN2.1
+    - drm/amd/display: Fix dc_sink kref count in emulated_link_detect
+    - drm/amd/display: Free atomic state after drm_atomic_commit
+    - drm/amd/display: Decrement refcount of dc_sink before reassignment
+    - riscv: virt_addr_valid must check the address belongs to linear mapping
+    - bfq-iosched: Revert "bfq: Fix computation of shallow depth"
+    - ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
+    - ARM: ensure the signal page contains defined contents
+    - ARM: kexec: fix oops after TLB are invalidated
+    - vmlinux.lds.h: Create section for protection against instrumentation
+    - lkdtm: don't move ctors to .rodata
+    - mt76: dma: fix a possible memory leak in mt76_add_fragment()
+    - drm/vc4: hvs: Fix buffer overflow with the dlist handling
+    - bpf: Check for integer overflow when using roundup_pow_of_two()
+    - netfilter: xt_recent: Fix attempt to update deleted entry
+    - netfilter: nftables: fix possible UAF over chains from packet path in netns
+    - netfilter: flowtable: fix tcp and udp header checksum update
+    - xen/netback: avoid race in xenvif_rx_ring_slots_available()
+    - net: enetc: initialize the RFS and RSS memories
+    - selftests: txtimestamp: fix compilation issue
+    - net: stmmac: set TxQ mode back to DCB after disabling CBS
+    - ibmvnic: Clear failover_pending if unable to schedule
+    - netfilter: conntrack: skip identical origin tuple in same zone only
+    - x86/build: Disable CET instrumentation in the kernel for 32-bit too
+    - net: hns3: add a check for queue_id in hclge_reset_vf_queue()
+    - firmware_loader: align .builtin_fw to 8
+    - drm/sun4i: tcon: set sync polarity for tcon1 channel
+    - drm/sun4i: Fix H6 HDMI PHY configuration
+    - drm/sun4i: dw-hdmi: Fix max. frequency for H6
+    - clk: sunxi-ng: mp: fix parent rate change flag check
+    - i2c: stm32f7: fix configuration of the digital filter
+    - h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
+    - usb: dwc3: ulpi: fix checkpatch warning
+    - usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
+    - rxrpc: Fix clearance of Tx/Rx ring when releasing a call
+    - udp: fix skb_copy_and_csum_datagram with odd segment sizes
+    - net: dsa: call teardown method on probe failure
+    - net: gro: do not keep too many GRO packets in napi->rx_list
+    - net: fix iteration for sctp transport seq_files
+    - net/vmw_vsock: improve locking in vsock_connect_timeout()
+    - net: watchdog: hold device global xmit lock during tx disable
+    - vsock/virtio: update credit only if socket is not closed
+    - vsock: fix locking in vsock_shutdown()
+    - net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
+    - net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
+    - ovl: expand warning in ovl_d_real()
+    - Linux 5.4.99
+  * Focal update: v5.4.98 upstream stable release (LP: #1918158)
+    - tracing/kprobe: Fix to support kretprobe events on unloaded modules
+    - af_key: relax availability checks for skb size calculation
+    - regulator: core: avoid regulator_resolve_supply() race condition
+    - mac80211: 160MHz with extended NSS BW in CSA
+    - ASoC: Intel: Skylake: Zero snd_ctl_elem_value
+    - chtls: Fix potential resource leak
+    - pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
+    - ASoC: ak4458: correct reset polarity
+    - iwlwifi: mvm: skip power command when unbinding vif during CSA
+    - iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
+    - iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
+    - iwlwifi: pcie: fix context info memory leak
+    - iwlwifi: mvm: invalidate IDs of internal stations at mvm start
+    - iwlwifi: mvm: guard against device removal in reprobe
+    - SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
+    - SUNRPC: Handle 0 length opaque XDR object data properly
+    - i2c: mediatek: Move suspend and resume handling to NOIRQ phase
+    - blk-cgroup: Use cond_resched() when destroy blkgs
+    - regulator: Fix lockdep warning resolving supplies
+    - Fix unsynchronized access to sev members through svm_register_enc_region
+    - squashfs: add more sanity checks in id lookup
+    - squashfs: add more sanity checks in inode lookup
+    - squashfs: add more sanity checks in xattr id lookup
+    - Linux 5.4.98
+  * Enforce CONFIG_DRM_BOCHS=m (LP: #1916290)
+    - [Config] Enforce CONFIG_DRM_BOCHS=m
+  * powerpc/eeh-basic.sh in kselftest make P8 node stopped working
+    (LP: #1916468)
+    - selftests/eeh: Skip ahci adapters
+  * Focal update: v5.4.97 upstream stable release (LP: #1916066)
+    - USB: serial: cp210x: add pid/vid for WSDA-200-USB
+    - USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
+    - USB: serial: option: Adding support for Cinterion MV31
+    - arm64: dts: qcom: c630: keep both touchpad devices enabled
+    - arm64: dts: amlogic: meson-g12: Set FL-adj property value
+    - arm64: dts: rockchip: fix vopl iommu irq on px30
+    - bpf, cgroup: Fix optlen WARN_ON_ONCE toctou
+    - bpf, cgroup: Fix problematic bounds check
+    - um: virtio: free vu_dev only with the contained struct device
+    - rxrpc: Fix deadlock around release of dst cached on udp tunnel
+    - arm64: dts: ls1046a: fix dcfg address range
+    - igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr
+    - igc: check return value of ret_val in igc_config_fc_after_link_up
+    - i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues"
+    - net/mlx5: Fix leak upon failure of rule creation
+    - net: lapb: Copy the skb before sending a packet
+    - net: mvpp2: TCAM entry enable should be written after SRAM data
+    - r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set
+    - ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode
+    - nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs
+    - memblock: do not start bottom-up allocations with kernel_end
+    - USB: gadget: legacy: fix an error code in eth_bind()
+    - USB: usblp: don't call usb_set_interface if there's a single alt
+    - usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
+    - usb: dwc2: Fix endpoint direction check in ep_from_windex
+    - usb: dwc3: fix clock issue during resume in OTG mode
+    - usb: xhci-mtk: fix unreleased bandwidth data
+    - usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints
+    - usb: xhci-mtk: break loop when find the endpoint to drop
+    - usb: host: xhci-plat: add priv quirk for skip PHY initialization
+    - ovl: fix dentry leak in ovl_get_redirect
+    - mac80211: fix station rate table updates on assoc
+    - fgraph: Initialize tracing_graph_pause at task creation
+    - kretprobe: Avoid re-registration of the same kretprobe earlier
+    - libnvdimm/dimm: Avoid race between probe and available_slots_show()
+    - genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set
+    - xhci: fix bounce buffer usage for non-sg list case
+    - cifs: report error instead of invalid when revalidating a dentry fails
+    - smb3: Fix out-of-bounds bug in SMB2_negotiate()
+    - smb3: fix crediting for compounding when only one request in flight
+    - mmc: core: Limit retries when analyse of SDIO tuples fails
+    - drm/amd/display: Revert "Fix EDID parsing after resume from suspend"
+    - nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs
+    - KVM: SVM: Treat SVM as unsupported when running as an SEV guest
+    - KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode
+    - ARM: footbridge: fix dc21285 PCI configuration accessors
+    - mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
+    - mm: hugetlb: fix a race between freeing and dissolving the page
+    - mm: hugetlb: fix a race between isolating and freeing page
+    - mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
+    - mm, compaction: move high_pfn to the for loop scope
+    - mm: thp: fix MADV_REMOVE deadlock on shmem THP
+    - x86/build: Disable CET instrumentation in the kernel
+    - x86/apic: Add extra serialization for non-serializing MSRs
+    - iwlwifi: mvm: don't send RFH_QUEUE_CONFIG_CMD with no queues
+    - Input: xpad - sync supported devices with fork on GitHub
+    - iommu/vt-d: Do not use flush-queue when caching-mode is on
+    - md: Set prev_flush_start and flush_bio in an atomic way
+    - neighbour: Prevent a dead entry from updating gc_list
+    - net: ip_tunnel: fix mtu calculation
+    - net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
+    - net: sched: replaced invalid qdisc tree flush helper in qdisc_replace
+    - usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720
+    - Linux 5.4.97
+  * Focal update: v5.4.96 upstream stable release (LP: #1916061)
+    - net: dsa: bcm_sf2: put device node before return
+    - net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
+    - ibmvnic: Ensure that CRQ entry read are correctly ordered
+    - Revert "Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT""
+    - ACPI: thermal: Do not call acpi_thermal_check() directly
+    - arm64: Fix kernel address detection of __is_lm_address()
+    - arm64: Do not pass tagged addresses to __is_lm_address()
+    - tcp: make TCP_USER_TIMEOUT accurate for zero window probes
+    - btrfs: backref, only collect file extent items matching backref offset
+    - btrfs: backref, don't add refs from shared block when resolving normal
+      backref
+    - btrfs: backref, only search backref entries from leaves of the same root
+    - btrfs: backref, use correct count to resolve normal data refs
+    - net_sched: gen_estimator: support large ewma log
+    - phy: cpcap-usb: Fix warning for missing regulator_disable
+    - platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on
+      Estar Beauty HD tablet
+    - platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352
+    - x86: __always_inline __{rd,wr}msr()
+    - scsi: scsi_transport_srp: Don't block target in failfast state
+    - scsi: libfc: Avoid invoking response handler twice if ep is already
+      completed
+    - scsi: fnic: Fix memleak in vnic_dev_init_devcmd2
+    - ASoC: SOF: Intel: hda: Resume codec to do jack detection
+    - mac80211: fix fast-rx encryption check
+    - scsi: ibmvfc: Set default timeout to avoid crash during migration
+    - udf: fix the problem that the disc content is not displayed
+    - nvme: check the PRINFO bit before deciding the host buffer length
+    - selftests/powerpc: Only test lwm/stmw on big endian
+    - drm/amd/display: Update dram_clock_change_latency for DCN2.1
+    - drm/amd/display: Change function decide_dp_link_settings to avoid infinite
+      looping
+    - objtool: Don't fail on missing symbol table
+    - kthread: Extract KTHREAD_IS_PER_CPU
+    - workqueue: Restrict affinity change to rescuer
+    - Linux 5.4.96
+  * Focal update: v5.4.95 upstream stable release (LP: #1916056)
+    - ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition
+    - IPv6: reply ICMP error if the first fragment don't include all headers
+    - nbd: freeze the queue while we're adding connections
+    - ACPI: sysfs: Prefer "compatible" modalias
+    - kernel: kexec: remove the lock operation of system_transition_mutex
+    - ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
+    - ALSA: hda/via: Apply the workaround generically for Clevo machines
+    - media: rc: ensure that uevent can be read directly after rc device register
+    - ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming
+    - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
+    - net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family
+    - s390/vfio-ap: No need to disable IRQ after queue reset
+    - PM: hibernate: flush swap writer after marking
+    - drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs
+    - drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[]
+    - btrfs: fix possible free space tree corruption with online conversion
+    - KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in
+      intel_arch_events[]
+    - KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh()
+    - KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration
+    - KVM: x86: get smi pending status correctly
+    - KVM: Forbid the use of tagged userspace addresses for memslots
+    - xen: Fix XenStore initialisation for XS_LOCAL
+    - leds: trigger: fix potential deadlock with libata
+    - arm64: dts: broadcom: Fix USB DMA address translation for Stingray
+    - mt7601u: fix kernel crash unplugging the device
+    - mt7601u: fix rx buffer refcounting
+    - drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices
+    - drm/i915: Check for all subplatform bits
+    - tee: optee: replace might_sleep with cond_resched
+    - xen-blkfront: allow discard-* nodes to be optional
+    - ARM: imx: build suspend-imx6.S with arm instruction set
+    - netfilter: nft_dynset: add timeout extension to template
+    - xfrm: Fix oops in xfrm_replay_advance_bmp
+    - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
+    - selftests: xfrm: fix test return value override issue in xfrm_policy.sh
+    - xfrm: Fix wraparound in xfrm_policy_addr_delta()
+    - arm64: dts: ls1028a: fix the offset of the reset register
+    - ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status
+    - firmware: imx: select SOC_BUS to fix firmware build
+    - RDMA/cxgb4: Fix the reported max_recv_sge value
+    - ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
+    - pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()
+    - iwlwifi: pcie: use jiffies for memory read spin time limit
+    - iwlwifi: pcie: reschedule in long-running memory reads
+    - mac80211: pause TX while changing interface type
+    - i40e: acquire VSI pointer only after VF is initialized
+    - igc: fix link speed advertising
+    - net/mlx5: Fix memory leak on flow table creation error flow
+    - net/mlx5e: E-switch, Fix rate calculation for overflow
+    - net/mlx5e: Reduce tc unsupported key print level
+    - can: dev: prevent potential information leak in can_fill_info()
+    - nvme-multipath: Early exit if no path is available
+    - selftests: forwarding: Specify interface when invoking mausezahn
+    - iommu/vt-d: Gracefully handle DMAR units with no supported address widths
+    - iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built
+    - rxrpc: Fix memory leak in rxrpc_lookup_local
+    - NFC: fix resource leak when target index is invalid
+    - NFC: fix possible resource leak
+    - ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
+    - team: protect features update by RCU to avoid deadlock
+    - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
+    - Linux 5.4.95
+
+ -- Ian May <ian.may@canonical.com>  Mon, 29 Mar 2021 15:51:19 -0500
+
+linux-gkeop-5.4 (5.4.0-1012.13~18.04.1) bionic; urgency=medium
+
+  [ Ubuntu: 5.4.0-1012.13 ]
+
+  * CVE-2020-27170
+    - bpf: Fix off-by-one for area size in creating mask to left
+  * CVE-2020-27171
+    - bpf: Prohibit alu ops for pointer types not defining ptr_limit
+  * binary assembly failures with CONFIG_MODVERSIONS present (LP: #1919315)
+    - [Packaging] quiet (nomially) benign errors in BUILD script
+  * CVE-2021-3444
+    - bpf: Fix 32 bit src register truncation on div/mod
+    - bpf: Fix truncation handling for mod32 dst reg wrt zero
+  * CVE-2021-27365
+    - scsi: iscsi: Verify lengths on passthrough PDUs
+    - sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
+    - scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE
+  * CVE-2021-27363 // CVE-2021-27364
+    - scsi: iscsi: Restrict sessions and handles to admin capabilities
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 22 Mar 2021 12:56:13 +0100
+
+linux-gkeop-5.4 (5.4.0-1011.12~18.04.2) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1011.12~18.04.2 -proposed tracker
+    (LP: #1916157)
+
+  [ Ubuntu: 5.4.0-1011.12 ]
+
+  * focal/linux-gkeop: 5.4.0-1011.12 -proposed tracker (LP: #1916158)
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - gkeop: [Config] enable CONFIG_MODVERSIONS=y
+    - gkeop: [Packaging] build canonical-certs.pem from branch/arch certs
+    - gkeop: [Config] Allow ASM_MODVERSIONS
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - gkeop: [Config] updateconfigs for USB_BDC_PCI
+  * focal/linux: 5.4.0-67.75 -proposed tracker (LP: #1916169)
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - [Config] enable CONFIG_MODVERSIONS=y
+    - [Packaging] build canonical-certs.pem from branch/arch certs
+    - [Config] add Canonical Livepatch Service key to SYSTEM_TRUSTED_KEYS
+    - [Config] add ubuntu-drivers key to SYSTEM_TRUSTED_KEYS
+    - [Config] Allow ASM_MODVERSIONS and MODULE_REL_CRCS
+  * geneve overlay network on vlan interface broken with offload enabled
+    (LP: #1914447)
+    - net/mlx5e: Fix SWP offsets when vlan inserted by driver
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Fix ODM support in actual build
+  * devlink: don't do reporter recovery if the state is healthy (LP: #1915403)
+    - devlink: don't do reporter recovery if the state is healthy
+  * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver
+    (LP: #1914543)
+    - HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID
+  * Focal update: v5.4.94 upstream stable release (LP: #1915200)
+    - gpio: mvebu: fix pwm .get_state period calculation
+    - futex: Ensure the correct return value from futex_lock_pi()
+    - futex: Replace pointless printk in fixup_owner()
+    - futex: Provide and use pi_state_update_owner()
+    - rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
+    - futex: Use pi_state_update_owner() in put_pi_state()
+    - futex: Simplify fixup_pi_state_owner()
+    - futex: Handle faults correctly for PI futexes
+    - HID: wacom: Correct NULL dereference on AES pen proximity
+    - io_uring: Fix current->fs handling in io_sq_wq_submit_work()
+    - tracing: Fix race in trace_open and buffer resize call
+    - arm64: mm: use single quantity to represent the PA to VA translation
+    - SMB3.1.1: do not log warning message if server doesn't populate salt
+    - tools: Factor HOSTCC, HOSTLD, HOSTAR definitions
+    - dm integrity: conditionally disable "recalculate" feature
+    - writeback: Drop I_DIRTY_TIME_EXPIRE
+    - fs: fix lazytime expiration handling in __writeback_single_inode()
+    - Linux 5.4.94
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - i2c: bpmp-tegra: Ignore unknown I2C_M flags
+    - platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634
+    - ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()
+    - ALSA: hda/via: Add minimum mute flag
+    - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
+    - btrfs: don't get an EINTR during drop_snapshot for reloc
+    - btrfs: fix lockdep splat in btrfs_recover_relocation
+    - btrfs: don't clear ret in btrfs_start_dirty_block_groups
+    - btrfs: send: fix invalid clone operations when cloning from the same file
+      and root
+    - mmc: core: don't initialize block size from ext_csd if not present
+    - mmc: sdhci-xenon: fix 1.8v regulator stabilization
+    - dm: avoid filesystem lookup in dm_get_dev_t()
+    - dm integrity: fix a crash if "recalculate" used without "internal_hash"
+    - drm/atomic: put state on error path
+    - drm/syncobj: Fix use-after-free
+    - drm/i915/gt: Prevent use of engine->wa_ctx after error
+    - ASoC: Intel: haswell: Add missing pm_ops
+    - dm integrity: select CRYPTO_SKCIPHER
+    - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
+    - scsi: qedi: Correct max length of CHAP secret
+    - scsi: sd: Suppress spurious errors when WRITE SAME is being disabled
+    - riscv: Fix kernel time_init()
+    - riscv: Fix sifive serial driver
+    - HID: logitech-dj: add the G602 receiver
+    - HID: Ignore battery for Elan touchscreen on ASUS UX550
+    - clk: tegra30: Add hda clock default rates to clock driver
+    - arm64: make atomic helpers __always_inline
+    - xen: Fix event channel callback via INTX/GSI
+    - x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery
+    - dts: phy: fix missing mdio device and probe failure of vsc8541-01 device
+    - riscv: defconfig: enable gpio support for HiFive Unleashed
+    - drm/amdgpu/psp: fix psp gfx ctrl cmds
+    - drm/amd/display: Fix to be able to stop crc calculation
+    - drm/nouveau/bios: fix issue shadowing expansion ROMs
+    - drm/nouveau/privring: ack interrupts the same way as RM
+    - drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields
+    - drm/nouveau/mmu: fix vram heap sizing
+    - drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0
+    - powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S
+    - pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting
+    - scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression
+    - powerpc: Fix alignment bug within the init sections
+    - i2c: octeon: check correct size of maximum RECV_LEN packet
+    - platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-
+      list
+    - selftests: net: fib_tests: remove duplicate log test
+    - can: dev: can_restart: fix use after free bug
+    - can: vxcan: vxcan_xmit: fix use after free bug
+    - can: peak_usb: fix use after free bugs
+    - iio: ad5504: Fix setting power-down state
+    - cifs: do not fail __smb_send_rqst if non-fatal signals are pending
+    - irqchip/mips-cpu: Set IPI domain parent chip
+    - x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state
+    - x86/topology: Make __max_die_per_package available unconditionally
+    - x86/mmx: Use KFPU_387 for MMX string operations
+    - intel_th: pci: Add Alder Lake-P support
+    - stm class: Fix module init return on allocation failure
+    - serial: mvebu-uart: fix tx lost characters at power off
+    - ehci: fix EHCI host controller initialization sequence
+    - USB: ehci: fix an interrupt calltrace error
+    - usb: gadget: aspeed: fix stop dma register setting.
+    - usb: udc: core: Use lock when write to soft_connect
+    - [Config] updateconfigs for USB_BDC_PCI
+    - usb: bdc: Make bdc pci driver depend on BROKEN
+    - xhci: make sure TRB is fully written before giving it to the controller
+    - xhci: tegra: Delay for disabling LFPS detector
+    - driver core: Extend device_is_dependent()
+    - pinctrl: ingenic: Fix JZ4760 support
+    - x86/cpu/amd: Set __max_die_per_package on AMD
+    - netfilter: rpfilter: mask ecn bits before fib lookup
+    - sh: dma: fix kconfig dependency for G2_DMA
+    - net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext
+    - sh_eth: Fix power down vs. is_opened flag ordering
+    - lightnvm: fix memory leak when submit fails
+    - skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too
+    - kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow
+    - kasan: fix incorrect arguments passing in kasan_add_zero_shadow
+    - udp: mask TOS bits in udp_v4_early_demux()
+    - ipv6: create multicast route with RTPROT_KERNEL
+    - net_sched: avoid shift-out-of-bounds in tcindex_set_parms()
+    - net_sched: reject silly cell_log in qdisc_get_rtab()
+    - ipv6: set multicast flag on the multicast route
+    - net: mscc: ocelot: allow offloading of bridge on top of LAG
+    - net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled
+    - net: dsa: b53: fix an off by one in checking "vlan->vid"
+    - tcp: do not mess with cloned skbs in tcp_add_backlog()
+    - tcp: fix TCP_USER_TIMEOUT with zero window
+    - Linux 5.4.93
+  * High load from process irq/65-i2c-INT3  - kernel module tps6598x
+    (LP: #1883511) // Focal update: v5.4.93 upstream stable release
+    (LP: #1915195)
+    - platform/x86: i2c-multi-instantiate: Don't create platform device for
+      INT3515 ACPI nodes
+  * Focal update: v5.4.92 upstream stable release (LP: #1915186)
+    - usb: ohci: Make distrust_firmware param default to false
+    - compiler.h: Raise minimum version of GCC to 5.1 for arm64
+    - xen/privcmd: allow fetching resource sizes
+    - elfcore: fix building with clang
+    - scsi: lpfc: Make lpfc_defer_acc_rsp static
+    - spi: npcm-fiu: simplify the return expression of npcm_fiu_probe()
+    - spi: npcm-fiu: Disable clock in probe error path
+    - nfsd4: readdirplus shouldn't return parent of export
+    - bpf: Don't leak memory in bpf getsockopt when optlen == 0
+    - bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback
+    - udp: Prevent reuseport_select_sock from reading uninitialized socks
+    - netxen_nic: fix MSI/MSI-x interrupts
+    - net: introduce skb_list_walk_safe for skb segment walking
+    - net: skbuff: disambiguate argument and member for skb_list_walk_safe helper
+    - net: ipv6: Validate GSO SKB before finish IPv6 processing
+    - mlxsw: core: Add validation of transceiver temperature thresholds
+    - mlxsw: core: Increase critical threshold for ASIC thermal zone
+    - net: mvpp2: Remove Pause and Asym_Pause support
+    - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
+    - esp: avoid unneeded kmap_atomic call
+    - net: dcb: Validate netlink message in DCB handler
+    - net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
+    - rxrpc: Call state should be read with READ_ONCE() under some circumstances
+    - net: stmmac: Fixed mtu channged by cache aligned
+    - net: sit: unregister_netdevice on newlink's error path
+    - net: avoid 32 x truesize under-estimation for tiny skbs
+    - rxrpc: Fix handling of an unsupported token type in rxrpc_read()
+    - net, sctp, filter: remap copy_from_user failure error
+    - tipc: fix NULL deref in tipc_link_xmit()
+    - mac80211: do not drop tx nulldata packets on encrypted links
+    - mac80211: check if atf has been disabled in __ieee80211_schedule_txq
+    - spi: cadence: cache reference clock rate during probe
+    - Linux 5.4.92
+  * intel-hid is not loaded on new Intel platform (LP: #1907160)
+    - platform/x86: intel-hid: Add Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: Move MODULE_DEVICE_TABLE() closer to the table
+    - platform/x86: intel-hid: add Rocket Lake ACPI device ID
+  * Support Advantech UNO-420 platform (LP: #1902672)
+    - ODM: MAINTAINERS: Add Advantech AHC1EC0 embedded controller entry
+    - ODM: mfd: ahc1ec0: Add Advantech EC include file used by dt-bindings
+    - ODM: dt-bindings: mfd: ahc1ec0.yaml: Add Advantech embedded controller -
+      AHC1EC0
+    - ODM: mfd: ahc1ec0: Add support for Advantech embedded controller
+    - ODM: hwmon: ahc1ec0-hwmon: Add sub-device hwmon for Advantech embedded
+      controller
+    - ODM: watchdog: ahc1ec0-wdt: Add sub-device watchdog for Advantech embedded
+      controller
+    - ODM: [Config] update config for Advantech devices
+  * Remove scary stack trace from Realtek WiFi driver (LP: #1913263)
+    - rtw88: reduce the log level for failure of tx report
+  * Focal update: v5.4.91 upstream stable release (LP: #1914654)
+    - kbuild: enforce -Werror=return-type
+    - btrfs: prevent NULL pointer dereference in extent_io_tree_panic
+    - ASoC: dapm: remove widget from dirty list on free
+    - x86/hyperv: check cpu mask after interrupt has been disabled
+    - tracing/kprobes: Do the notrace functions check without kprobes on ftrace
+    - [Config] update annotations for KPROBE_EVENTS_ON_NOTRACE
+    - mips: fix Section mismatch in reference
+    - mips: lib: uncached: fix non-standard usage of variable 'sp'
+    - MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
+    - MIPS: relocatable: fix possible boot hangup with KASLR enabled
+    - RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
+    - ACPI: scan: Harden acpi_device_add() against device ID overflows
+    - mm/hugetlb: fix potential missing huge page size info
+    - dm raid: fix discard limits for raid1
+    - dm snapshot: flush merged data before committing metadata
+    - dm integrity: fix the maximum number of arguments
+    - r8152: Add Lenovo Powered USB-C Travel Hub
+    - btrfs: tree-checker: check if chunk item end overflows
+    - drm/i915/backlight: fix CPU mode backlight takeover on LPT
+    - ext4: fix bug for rename with RENAME_WHITEOUT
+    - ext4: don't leak old mountpoint samples
+    - cifs: fix interrupted close commands
+    - dm integrity: fix flush with external metadata device
+    - ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
+    - ARC: build: add uImage.lzma to the top-level target
+    - ARC: build: add boot_targets to PHONY
+    - ARC: build: move symlink creation to arch/arc/Makefile to avoid race
+    - netfilter: ipset: fixes possible oops in mtype_resize
+    - btrfs: fix transaction leak and crash after RO remount caused by qgroup
+      rescan
+    - regulator: bd718x7: Add enable times
+    - ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
+    - habanalabs: register to pci shutdown callback
+    - habanalabs: Fix memleak in hl_device_reset
+    - hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
+    - lib/raid6: Let $(UNROLL) rules work with macOS userland
+    - bfq: Fix computation of shallow depth
+    - arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC
+    - misdn: dsp: select CONFIG_BITREVERSE
+    - net: ethernet: fs_enet: Add missing MODULE_LICENSE
+    - nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
+    - nvmet-rdma: Fix list_del corruption on queue establishment failure
+    - drm/amdgpu: fix a GPU hang issue when remove device
+    - usb: typec: Fix copy paste error for NVIDIA alt-mode description
+    - ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
+    - drm/msm: Call msm_init_vram before binding the gpu
+    - ARM: picoxcell: fix missing interrupt-parent properties
+    - perf intel-pt: Fix 'CPU too large' error
+    - dump_common_audit_data(): fix racy accesses to ->d_name
+    - ASoC: meson: axg-tdm-interface: fix loopback
+    - ASoC: meson: axg-tdmin: fix axg skew offset
+    - ASoC: Intel: fix error code cnl_set_dsp_D0()
+    - nvme-tcp: fix possible data corruption with bio merges
+    - NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
+    - pNFS: We want return-on-close to complete when evicting the inode
+    - pNFS: Mark layout for return if return-on-close was not sent
+    - pNFS: Stricter ordering of layoutget and layoutreturn
+    - NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
+    - NFS: nfs_igrab_and_active must first reference the superblock
+    - ext4: fix superblock checksum failure when setting password salt
+    - RDMA/restrack: Don't treat as an error allocation ID wrapping
+    - RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
+    - bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
+    - RDMA/mlx5: Fix wrong free of blue flame register on error
+    - IB/mlx5: Fix error unwinding when set_has_smi_cap fails
+    - drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is
+      no reset-deassert MIPI-sequence
+    - mm, slub: consider rest of partial list if acquire_slab() fails
+    - iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
+    - net: sunrpc: interpret the return value of kstrtou32 correctly
+    - dm: eliminate potential source of excessive kernel log noise
+    - ALSA: fireface: Fix integer overflow in transmit_midi_msg()
+    - ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
+    - netfilter: conntrack: fix reading nf_conntrack_buckets
+    - netfilter: nf_nat: Fix memleak in nf_nat_init
+    - netfilter: nft_compat: remove flush counter optimization
+    - Linux 5.4.91
+  * Focal update: v5.4.90 upstream stable release (LP: #1913487)
+    - x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_*
+    - vfio iommu: Add dma available capability
+    - net: cdc_ncm: correct overhead in delayed_ndp_size
+    - net: hns3: fix the number of queues actually used by ARQ
+    - net: hns3: fix a phy loopback fail issue
+    - net: stmmac: dwmac-sun8i: Balance internal PHY resource references
+    - net: stmmac: dwmac-sun8i: Balance internal PHY power
+    - net: vlan: avoid leaks on register_vlan_dev() failures
+    - net/sonic: Fix some resource leaks in error handling paths
+    - net: ipv6: fib: flush exceptions when purging route
+    - tools: selftests: add test for changing routes with PTMU exceptions
+    - net: fix pmtu check in nopmtudisc mode
+    - net: ip: always refragment ip defragmented packets
+    - octeontx2-af: fix memory leak of lmac and lmac->name
+    - nexthop: Fix off-by-one error in error path
+    - nexthop: Unlink nexthop group entry in error path
+    - s390/qeth: fix L2 header access in qeth_l3_osa_features_check()
+    - net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE
+    - net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address
+    - net/mlx5e: ethtool, Fix restriction of autoneg with 56G
+    - chtls: Fix hardware tid leak
+    - chtls: Remove invalid set_tcb call
+    - chtls: Fix panic when route to peer not configured
+    - chtls: Replace skb_dequeue with skb_peek
+    - chtls: Added a check to avoid NULL pointer dereference
+    - chtls: Fix chtls resources release sequence
+    - x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR
+    - x86/resctrl: Don't move a task to the same resource group
+    - exfat: Month timestamp metadata accidentally incremented
+    - vmlinux.lds.h: Add PGO and AutoFDO input sections
+    - iio: imu: st_lsm6dsx: fix edge-trigger interrupts
+    - HID: wacom: Fix memory leakage caused by kfifo_alloc
+    - ARM: OMAP2+: omap_device: fix idling of devices during probe
+    - i2c: sprd: use a specific timeout to avoid system hang up issue
+    - dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk()
+    - can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver
+    - can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop()
+    - can: kvaser_pciefd: select CONFIG_CRC32
+    - cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()
+    - spi: stm32: FIFO threshold level - fix align packet size
+    - i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated
+    - dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling
+      path of the probe function
+    - dmaengine: xilinx_dma: check dma_async_device_register return value
+    - dmaengine: xilinx_dma: fix incompatible param warning in _child_probe()
+    - dmaengine: xilinx_dma: fix mixed_enum_type coverity warning
+    - qed: select CONFIG_CRC32
+    - wil6210: select CONFIG_CRC32
+    - block: rsxx: select CONFIG_CRC32
+    - lightnvm: select CONFIG_CRC32
+    - iommu/intel: Fix memleak in intel_irq_remapping_alloc
+    - bpftool: Fix compilation failure for net.o with older glibc
+    - net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
+    - net/mlx5e: Fix two double free cases
+    - regmap: debugfs: Fix a memory leak when calling regmap_attach_dev
+    - wan: ds26522: select CONFIG_BITREVERSE
+    - regulator: qcom-rpmh-regulator: correct hfsmps515 definition
+    - net: mvpp2: disable force link UP during port init procedure
+    - KVM: arm64: Don't access PMCR_EL0 when no PMU is available
+    - block: fix use-after-free in disk_part_iter_next
+    - net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed
+      packet
+    - regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()
+    - Linux 5.4.90
+  * Focal update: v5.4.89 upstream stable release (LP: #1913486)
+    - workqueue: Kick a worker based on the actual activation of delayed works
+    - scsi: ufs: Fix wrong print message in dev_err()
+    - scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk
+      ->poweroff()
+    - scsi: ide: Do not set the RQF_PREEMPT flag for sense requests
+    - scsi: scsi_transport_spi: Set RQF_PM for domain validation commands
+    - lib/genalloc: fix the overflow when size is too big
+    - depmod: handle the case of /sbin/depmod without /sbin in PATH
+    - proc: change ->nlink under proc_subdir_lock
+    - proc: fix lookup in /proc/net subdirectories after setns(2)
+    - i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs
+    - iavf: fix double-release of rtnl_lock
+    - net: mvpp2: Add TCAM entry to drop flow control pause frames
+    - net: mvpp2: prs: fix PPPoE with ipv6 packet parse
+    - net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE
+    - ethernet: ucc_geth: fix use-after-free in ucc_geth_remove()
+    - ethernet: ucc_geth: set dev->max_mtu to 1518
+    - atm: idt77252: call pci_disable_device() on error path
+    - net: mvpp2: Fix GoP port 3 Networking Complex Control configurations
+    - ibmvnic: continue fatal error reset after passive init
+    - net: ethernet: mvneta: Fix error handling in mvneta_probe
+    - virtio_net: Fix recursive call to cpus_read_lock()
+    - net/ncsi: Use real net-device for response handler
+    - net: ethernet: Fix memleak in ethoc_probe
+    - net-sysfs: take the rtnl lock when storing xps_cpus
+    - net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
+    - net-sysfs: take the rtnl lock when storing xps_rxqs
+    - net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc
+    - net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered
+    - tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
+    - net: mvpp2: fix pkt coalescing int-threshold configuration
+    - ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()
+    - net: sched: prevent invalid Scell_log shift count
+    - net: hns: fix return value check in __lb_other_process()
+    - erspan: fix version 1 check in gre_parse_header()
+    - net: hdlc_ppp: Fix issues when mod_timer is called while timer is running
+    - r8169: work around power-saving bug on some chip versions
+    - net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs
+    - net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access
+    - CDC-NCM: remove "connected" log message
+    - net: usb: qmi_wwan: add Quectel EM160R-GL
+    - vhost_net: fix ubuf refcount incorrectly when sendmsg fails
+    - ionic: account for vlan tag len in rx buffer len
+    - net/sched: sch_taprio: ensure to reset/destroy all child qdiscs
+    - kbuild: don't hardcode depmod path
+    - Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close
+    - video: hyperv_fb: Fix the mmap() regression for v5.4.y and older
+    - crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
+    - crypto: asym_tpm: correct zero out potential secrets
+    - powerpc: Handle .text.{hot,unlikely}.* in linker script
+    - staging: mt7621-dma: Fix a resource leak in an error handling path
+    - usb: gadget: enable super speed plus
+    - USB: cdc-acm: blacklist another IR Droid device
+    - USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().
+    - usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion
+    - usb: chipidea: ci_hdrc_imx: add missing put_device() call in
+      usbmisc_get_init_data()
+    - USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set
+    - usb: usbip: vhci_hcd: protect shift size
+    - usb: uas: Add PNY USB Portable SSD to unusual_uas
+    - USB: serial: iuu_phoenix: fix DMA from stack
+    - USB: serial: option: add LongSung M5710 module support
+    - USB: serial: option: add Quectel EM160R-GL
+    - USB: yurex: fix control-URB timeout handling
+    - USB: usblp: fix DMA to stack
+    - ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
+    - usb: gadget: select CONFIG_CRC32
+    - usb: gadget: f_uac2: reset wMaxPacketSize
+    - usb: gadget: function: printer: Fix a memory leak for interface descriptor
+    - usb: gadget: u_ether: Fix MTU size mismatch with RX packet size
+    - USB: gadget: legacy: fix return error code in acm_ms_bind()
+    - usb: gadget: Fix spinlock lockup on usb_function_deactivate
+    - usb: gadget: configfs: Preserve function ordering after bind failure
+    - usb: gadget: configfs: Fix use-after-free issue with udc_name
+    - USB: serial: keyspan_pda: remove unused variable
+    - x86/mm: Fix leak of pmd ptlock
+    - kvm: check tlbs_dirty directly
+    - ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+    - ALSA: hda/conexant: add a new hda codec CX11970
+    - ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
+    - ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256.
+    - btrfs: send: fix wrong file path when there is an inode with a pending rmdir
+    - Revert "device property: Keep secondary firmware node secondary by type"
+    - dmabuf: fix use-after-free of dmabuf's file->f_inode
+    - drm/i915: clear the gpu reloc batch
+    - netfilter: x_tables: Update remaining dereference to RCU
+    - netfilter: ipset: fix shift-out-of-bounds in htable_bits()
+    - netfilter: xt_RATEEST: reject non-null terminated string from userspace
+    - netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
+    - x86/mtrr: Correct the range check before performing MTRR type lookups
+    - KVM: x86: fix shift out of bounds reported by UBSAN
+    - Linux 5.4.89
+  * Focal update: v5.4.88 upstream stable release (LP: #1913223)
+    - Revert "drm/amd/display: Fix memory leaks in S3 resume"
+    - Revert "mtd: spinand: Fix OOB read"
+    - dmaengine: at_hdmac: Substitute kzalloc with kmalloc
+    - dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()
+    - dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate()
+    - kdev_t: always inline major/minor helper functions
+    - iio:imu:bmi160: Fix alignment and data leak issues
+    - fuse: fix bad inode
+    - perf: Break deadlock involving exec_update_mutex
+    - rwsem: Implement down_read_killable_nested
+    - rwsem: Implement down_read_interruptible
+    - exec: Transform exec_update_mutex into a rw_semaphore
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start
+    - Linux 5.4.88
+  * Focal update: v5.4.87 upstream stable release (LP: #1912681)
+    - net/sched: sch_taprio: reset child qdiscs before freeing them
+    - md/raid10: initialize r10_bio->read_slot before use.
+    - thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has
+      changed
+    - ext4: prevent creating duplicate encrypted filenames
+    - ubifs: prevent creating duplicate encrypted filenames
+    - f2fs: prevent creating duplicate encrypted filenames
+    - fscrypt: add fscrypt_is_nokey_name()
+    - fscrypt: remove kernel-internal constants from UAPI header
+    - vfio/pci: Move dummy_resources_list init in vfio_pci_probe()
+    - btrfs: fix race when defragmenting leads to unnecessary IO
+    - ext4: don't remount read-only with errors=continue on reboot
+    - KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL
+    - KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses
+    - KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits
+    - powerpc/bitops: Fix possible undefined behaviour with fls() and fls64()
+    - jffs2: Allow setting rp_size to zero during remounting
+    - jffs2: Fix NULL pointer dereference in rp_size fs option parsing
+    - scsi: block: Fix a race in the runtime power management code
+    - uapi: move constants from <linux/kernel.h> to <linux/const.h>
+    - tools headers UAPI: Sync linux/const.h with the kernel headers
+    - null_blk: Fix zone size initialization
+    - of: fix linker-section match-table corruption
+    - cgroup: Fix memory leak when parsing multiple source parameters
+    - scsi: cxgb4i: Fix TLS dependency
+    - Bluetooth: hci_h5: close serdev device and free hu in h5_close
+    - reiserfs: add check for an invalid ih_entry_count
+    - misc: vmw_vmci: fix kernel info-leak by initializing dbells in
+      vmci_ctx_get_chkpt_doorbells()
+    - media: gp8psk: initialize stats at power control logic
+    - f2fs: fix shift-out-of-bounds in sanity_check_raw_super()
+    - ALSA: seq: Use bool for snd_seq_queue internal flags
+    - ALSA: rawmidi: Access runtime->avail always in spinlock
+    - bfs: don't use WARNING: string when it's just info.
+    - fcntl: Fix potential deadlock in send_sig{io, urg}()
+    - rtc: sun6i: Fix memleak in sun6i_rtc_clk_init
+    - module: set MODULE_STATE_GOING state when a module fails to load
+    - quota: Don't overflow quota file offsets
+    - rtc: pl031: fix resource leak in pl031_probe
+    - powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe()
+    - i3c master: fix missing destroy_workqueue() on error in i3c_master_register
+    - NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode
+    - f2fs: avoid race condition for shrinker count
+    - module: delay kobject uevent until after module init call
+    - fs/namespace.c: WARN if mnt_count has become negative
+    - um: ubd: Submit all data segments atomically
+    - tick/sched: Remove bogus boot "safety" check
+    - ALSA: pcm: Clear the full allocated memory at hw_params
+    - dm verity: skip verity work if I/O error when system is shutting down
+    - Linux 5.4.87
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 01 Mar 2021 11:58:57 +0100
+
+linux-gkeop-5.4 (5.4.0-1010.11~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1010.11~18.04.1 -proposed tracker
+    (LP: #1913145)
+
+  [ Ubuntu: 5.4.0-1010.11 ]
+
+  * focal/linux-gkeop: 5.4.0-1010.11 -proposed tracker (LP: #1913146)
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - [Config] gkeop: updateconfigs for USB_SISUSBVGA_CON
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - BUNTU: [Config] gkeop: updateconfigs for PGTABLE_MAPPING
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - [Config] gkeop: updateconfigs for INFINIBAND_VIRT_DMA
+  * focal/linux: 5.4.0-66.74 -proposed tracker (LP: #1913152)
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Add support for ODM drivers
+    - [Packaging] Turn on ODM support for amd64
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+  * Introduce the new NVIDIA 460-server series and update the 460 series
+    (LP: #1913200)
+    - [Config] dkms-versions -- drop NVIDIA 435 455 and 440-server
+    - [Config] dkms-versions -- add the 460-server nvidia driver
+  * Enable mute and micmute LED on HP EliteBook 850 G7 (LP: #1910102)
+    - ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7
+  * SYNA30B4:00 06CB:CE09 Mouse  on HP EliteBook 850 G7 not working at all
+    (LP: #1908992)
+    - HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device
+  * HD Audio Device PCI ID for the Intel Cometlake-R platform (LP: #1912427)
+    - SAUCE: ALSA: hda: Add Cometlake-R PCI ID
+  * switch to an autogenerated nvidia series based core via dkms-versions
+    (LP: #1912803)
+    - [Packaging] nvidia -- use dkms-versions to define versions built
+    - [Packaging] update-version-dkms -- maintain flags fields
+    - [Config] dkms-versions -- add transitional/skip information for nvidia
+      packages
+  * udpgro.sh in net from ubuntu_kernel_selftests seems not reflecting sub-test
+    result (LP: #1908499)
+    - selftests: fix the return value for UDP GRO test
+  * qede: Kubernetes Internal DNS Failure due to QL41xxx NIC not supporting IPIP
+    tx csum offload (LP: #1909062)
+    - qede: fix offload for IPIP tunnel packets
+  * Use DCPD to control HP DreamColor panel (LP: #1911001)
+    - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix
+  * kvm: Windows 2k19 with Hyper-v role gets stuck on pending hypervisor
+    requests on cascadelake based kvm hosts (LP: #1911848)
+    - KVM: x86: Set KVM_REQ_EVENT if run is canceled with req_immediate_exit set
+  * Ubuntu 20.10 four needed fixes to 'Add driver for Mellanox Connect-IB
+    adapters' (LP: #1905574)
+    - net/mlx5: Fix a race when moving command interface to polling mode
+  * Fix right sounds and mute/micmute LEDs for HP ZBook Fury 15/17 G7 Mobile
+    Workstation (LP: #1910561)
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
+  * Ubuntu 20.04 - multicast counter is not increased in ip -s (LP: #1901842)
+    - net/mlx5e: Fix multicast counter not up-to-date in "ip -s"
+  * eeh-basic.sh in powerpc from ubuntu_kernel_selftests timeout with 5.4 P8 /
+    P9 (LP: #1882503)
+    - selftests/powerpc/eeh: disable kselftest timeout setting for eeh-basic
+  * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639)
+    - Input: i8042 - unbreak Pegatron C15B
+  * CVE-2020-29372
+    - mm: check that mm is still valid in madvise()
+  * update ENA driver, incl. new ethtool stats (LP: #1910291)
+    - net: ena: Change WARN_ON expression in ena_del_napi_in_range()
+    - net: ena: ethtool: convert stat_offset to 64 bit resolution
+    - net: ena: ethtool: Add new device statistics
+    - net: ena: ethtool: add stats printing to XDP queues
+    - net: ena: xdp: add queue counters for xdp actions
+    - net: ena: Change license into format to SPDX in all files
+    - net: ena: Change log message to netif/dev function
+    - net: ena: Capitalize all log strings and improve code readability
+    - net: ena: Remove redundant print of placement policy
+    - net: ena: Change RSS related macros and variables names
+    - net: ena: Fix all static chekers' warnings
+    - drivers/net/ethernet: remove incorrectly formatted doc
+    - net: ena: handle bad request id in ena_netdev
+    - net: ena: fix packet's addresses for rx_offset feature
+  * s390x broken with unknown syscall number on kernels < 5.8 (LP: #1895132)
+    - s390/ptrace: return -ENOSYS when invalid syscall is supplied
+  * Focal update: v5.4.86 upstream stable release (LP: #1910822)
+    - ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
+    - ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
+    - pinctrl: merrifield: Set default bias in case no particular value given
+    - pinctrl: baytrail: Avoid clearing debounce value when turning it off
+    - ARM: dts: sun8i: v3s: fix GIC node memory range
+    - ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
+    - ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
+    - ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
+    - PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
+    - gpio: zynq: fix reference leak in zynq_gpio functions
+    - gpio: mvebu: fix potential user-after-free on probe
+    - scsi: bnx2i: Requires MMU
+    - xsk: Fix xsk_poll()'s return type
+    - xsk: Replace datagram_poll by sock_poll_wait
+    - can: softing: softing_netdev_open(): fix error handling
+    - clk: renesas: r9a06g032: Drop __packed for portability
+    - block: Simplify REQ_OP_ZONE_RESET_ALL handling
+    - block: factor out requeue handling from dispatch code
+    - blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
+    - pinctrl: aspeed: Fix GPIO requests on pass-through banks
+    - netfilter: x_tables: Switch synchronization to RCU
+    - netfilter: nft_compat: make sure xtables destructors have run
+    - netfilter: nft_dynset: fix timeouts later than 23 days
+    - afs: Fix memory leak when mounting with multiple source parameters
+    - Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
+    - gpio: eic-sprd: break loop when getting NULL device resource
+    - netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
+    - selftests/bpf/test_offload.py: Reset ethtool features after failed setting
+    - RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
+    - i40e: Refactor rx_bi accesses
+    - i40e: optimise prefetch page refcount
+    - i40e: avoid premature Rx buffer reuse
+    - ixgbe: avoid premature Rx buffer reuse
+    - selftests: fix poll error in udpgro.sh
+    - net: mvpp2: add mvpp2_phylink_to_port() helper
+    - drm/tegra: replace idr_init() by idr_init_base()
+    - kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
+    - drm/tegra: sor: Disable clocks on error in tegra_sor_init()
+    - habanalabs: put devices before driver removal
+    - arm64: syscall: exit userspace before unmasking exceptions
+    - vxlan: Add needed_headroom for lower device
+    - vxlan: Copy needed_tailroom from lowerdev
+    - scsi: mpt3sas: Increase IOCInit request timeout to 30s
+    - dm table: Remove BUG_ON(in_interrupt())
+    - iwlwifi: pcie: add one missing entry for AX210
+    - drm/amd/display: Init clock value by current vbios CLKs
+    - perf/x86/intel: Check PEBS status correctly
+    - kbuild: avoid split lines in .mod files
+    - soc/tegra: fuse: Fix index bug in get_process_id
+    - usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
+    - USB: serial: option: add interface-number sanity check to flag handling
+    - USB: gadget: f_acm: add support for SuperSpeed Plus
+    - USB: gadget: f_midi: setup SuperSpeed Plus descriptors
+    - usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
+    - USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
+    - usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
+    - ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
+    - ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on
+      Exynos5410
+    - ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU
+    - coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
+    - coresight: tmc-etr: Check if page is valid before dma_map_page()
+    - coresight: tmc-etr: Fix barrier packet insertion for perf buffer
+    - coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
+    - scsi: megaraid_sas: Check user-provided offsets
+    - HID: i2c-hid: add Vero K147 to descriptor override
+    - serial_core: Check for port state when tty is in error state
+    - Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
+    - quota: Sanity-check quota file headers on load
+    - media: msi2500: assign SPI bus number dynamically
+    - crypto: af_alg - avoid undefined behavior accessing salg_name
+    - md: fix a warning caused by a race between concurrent md_ioctl()s
+    - drm/gma500: fix double free of gma_connector
+    - drm/aspeed: Fix Kconfig warning & subsequent build errors
+    - drm/mcde: Fix handling of platform_get_irq() error
+    - drm/tve200: Fix handling of platform_get_irq() error
+    - arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
+    - arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
+    - soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
+    - soc: mediatek: Check if power domains can be powered on at boot time
+    - soc: qcom: geni: More properly switch to DMA mode
+    - Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
+    - RDMA/bnxt_re: Set queue pair state when being queried
+    - rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
+    - selinux: fix error initialization in inode_doinit_with_dentry()
+    - ARM: dts: aspeed: s2600wf: Fix VGA memory region location
+    - RDMA/rxe: Compute PSN windows correctly
+    - x86/mm/ident_map: Check for errors from ident_pud_init()
+    - ARM: p2v: fix handling of LPAE translation in BE mode
+    - x86/apic: Fix x2apic enablement without interrupt remapping
+    - sched/deadline: Fix sched_dl_global_validate()
+    - sched: Reenable interrupts in do_sched_yield()
+    - drm/amdgpu: fix incorrect enum type
+    - crypto: talitos - Endianess in current_desc_hdr()
+    - crypto: talitos - Fix return type of current_desc_hdr()
+    - crypto: inside-secure - Fix sizeof() mismatch
+    - ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
+    - ARM: dts: aspeed: tiogapass: Remove vuart
+    - drm/amdgpu: fix build_coefficients() argument
+    - powerpc/64: Set up a kernel stack for secondaries before cpu_restore()
+    - spi: img-spfi: fix reference leak in img_spfi_resume
+    - f2fs: call f2fs_get_meta_page_retry for nat page
+    - drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
+    - spi: spi-mem: fix reference leak in spi_mem_access_start
+    - ASoC: pcm: DRAIN support reactivation
+    - selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
+    - spi: stm32: fix reference leak in stm32_spi_resume
+    - brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
+    - arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
+    - arm64: dts: exynos: Correct psci compatible used on Exynos7
+    - Bluetooth: Fix null pointer dereference in hci_event_packet()
+    - Bluetooth: hci_h5: fix memory leak in h5_close
+    - spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
+    - spi: mt7621: fix missing clk_disable_unprepare() on error in
+      mt7621_spi_probe
+    - spi: tegra20-slink: fix reference leak in slink ops of tegra20
+    - spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
+    - spi: tegra114: fix reference leak in tegra spi ops
+    - spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in
+      bcm63xx_hsspi_resume
+    - mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
+    - selftest/bpf: Add missed ip6ip6 test back
+    - ASoC: wm8998: Fix PM disable depth imbalance on error
+    - spi: sprd: fix reference leak in sprd_spi_remove
+    - ASoC: arizona: Fix a wrong free in wm8997_probe
+    - RDMa/mthca: Work around -Wenum-conversion warning
+    - MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
+    - crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
+    - staging: greybus: codecs: Fix reference counter leak in error handling
+    - staging: gasket: interrupt: fix the missed eventfd_ctx_put() in
+      gasket_interrupt.c
+    - media: tm6000: Fix sizeof() mismatches
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in
+      mtk_vcodec_release_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
+    - media: v4l2-fwnode: Return -EINVAL for invalid bus-type
+    - ASoC: meson: fix COMPILE_TEST error
+    - scsi: core: Fix VPD LUN ID designator priorities
+    - media: solo6x10: fix missing snd_card_free in error handling case
+    - video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init()
+    - drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
+    - Input: ads7846 - fix race that causes missing releases
+    - Input: ads7846 - fix integer overflow on Rt calculation
+    - Input: ads7846 - fix unaligned access on 7845
+    - usb/max3421: fix return error code in max3421_probe()
+    - spi: mxs: fix reference leak in mxs_spi_probe
+    - selftests/bpf: Fix broken riscv build
+    - powerpc: Avoid broken GCC __attribute__((optimize))
+    - powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
+    - EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId
+    - crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
+    - crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
+    - spi: fix resource leak for drivers without .remove callback
+    - soc: ti: knav_qmss: fix reference leak in knav_queue_probe
+    - soc: ti: Fix reference imbalance in knav_dma_probe
+    - drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
+    - Input: omap4-keypad - fix runtime PM error handling
+    - clk: meson: Kconfig: fix dependency for G12A
+    - RDMA/cxgb4: Validate the number of CQEs
+    - memstick: fix a double-free bug in memstick_check
+    - ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
+    - ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
+    - mmc: pxamci: Fix error return code in pxamci_probe
+    - orinoco: Move context allocation after processing the skb
+    - qtnfmac: fix error return code in qtnf_pcie_probe()
+    - rsi: fix error return code in rsi_reset_card()
+    - cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
+    - dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
+    - arm64: tegra: Fix DT binding for IO High Voltage entry
+    - media: siano: fix memory leak of debugfs members in smsdvb_hotplug
+    - platform/x86: mlx-platform: Remove PSU EEPROM from default platform
+      configuration
+    - platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform
+      configuration
+    - samples: bpf: Fix lwt_len_hist reusing previous BPF map
+    - media: imx214: Fix stop streaming
+    - mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
+    - media: max2175: fix max2175_set_csm_mode() error code
+    - slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
+    - HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
+    - ARM: dts: Remove non-existent i2c1 from 98dx3236
+    - arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
+    - arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
+    - power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
+    - power: supply: bq24190_charger: fix reference leak
+    - genirq/irqdomain: Don't try to free an interrupt that has no mapping
+    - arm64: dts: ls1028a: fix ENETC PTP clock input
+    - arm64: dts: qcom: c630: Polish i2c-hid devices
+    - PCI: Bounds-check command-line resource alignment requests
+    - PCI: Fix overflow in command-line resource alignment requests
+    - PCI: iproc: Fix out-of-bound array accesses
+    - arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
+    - arm64: dts: meson-sm1: fix typo in opp table
+    - soc: amlogic: canvas: add missing put_device() call in meson_canvas_get()
+    - ARM: dts: at91: at91sam9rl: fix ADC triggers
+    - platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
+    - ath10k: Fix the parsing error in service available event
+    - ath10k: Fix an error handling path
+    - ath10k: Release some resources in an error handling path
+    - SUNRPC: rpc_wake_up() should wake up tasks in the correct order
+    - NFSv4.2: condition READDIR's mask for security label based on LSM state
+    - SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
+    - NFSv4: Fix the alignment of page data in the getdeviceinfo reply
+    - net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
+    - lockd: don't use interval-based rebinding over TCP
+    - NFS: switch nfsiod to be an UNBOUND workqueue.
+    - selftests/seccomp: Update kernel config
+    - vfio-pci: Use io_remap_pfn_range() for PCI IO memory
+    - hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
+    - media: saa7146: fix array overflow in vidioc_s_audio()
+    - powerpc/perf: Fix crash with is_sier_available when pmu is not set
+    - powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
+    - clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
+    - clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
+    - iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
+    - ARM: dts: at91: sama5d2: map securam as device
+    - bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
+    - pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
+    - arm64: dts: rockchip: Fix UART pull-ups on rk3328
+    - memstick: r592: Fix error return in r592_probe()
+    - MIPS: Don't round up kernel sections size for memblock_add()
+    - net/mlx5: Properly convey driver version to firmware
+    - ASoC: jz4740-i2s: add missed checks for clk_get()
+    - dm ioctl: fix error return code in target_message
+    - phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
+    - clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne
+    - clocksource/drivers/arm_arch_timer: Correct fault programming of
+      CNTKCTL_EL1.EVNTI
+    - cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: st: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: loongson1: Add missing MODULE_ALIAS
+    - cpufreq: scpi: Add missing MODULE_ALIAS
+    - Bluetooth: btusb: Add the missed release_firmware() in
+      btusb_mtk_setup_firmware()
+    - Bluetooth: btmtksdio: Add the missed release_firmware() in
+      mtk_setup_firmware()
+    - arm64: dts: meson: fix PHY deassert timing requirements
+    - ARM: dts: meson: fix PHY deassert timing requirements
+    - arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
+    - scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
+    - scsi: pm80xx: Fix error return in pm8001_pci_probe()
+    - seq_buf: Avoid type mismatch for seq_buf_init
+    - scsi: fnic: Fix error return code in fnic_probe()
+    - platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx
+      systems
+    - powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops
+    - powerpc/pseries/hibernation: remove redundant cacheinfo update
+    - drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
+    - ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
+    - powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S
+    - usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
+    - usb: oxu210hp-hcd: Fix memory leak in oxu_create
+    - speakup: fix uninitialized flush_lock
+    - nfsd: Fix message level for normal termination
+    - nfs_common: need lock during iterate through the list
+    - x86/kprobes: Restore BTF if the single-stepping is cancelled
+    - platform/chrome: cros_ec_spi: Don't overwrite spi::mode
+    - bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
+    - s390/cio: fix use-after-free in ccw_device_destroy_console
+    - iwlwifi: mvm: hook up missing RX handlers
+    - erofs: avoid using generic_block_bmap
+    - can: m_can: m_can_config_endisable(): remove double clearing of clock stop
+      request bit
+    - RDMA/core: Do not indicate device ready when device enablement fails
+    - remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
+    - remoteproc: qcom: fix reference leak in adsp_start
+    - remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
+    - clk: tegra: Fix duplicated SE clock entry
+    - mtd: rawnand: gpmi: fix reference count leak in gpmi ops
+    - mtd: rawnand: meson: Fix a resource leak in init
+    - mtd: rawnand: gpmi: Fix the random DMA timeout issue
+    - extcon: max77693: Fix modalias string
+    - crypto: atmel-i2c - select CONFIG_BITREVERSE
+    - mac80211: don't set set TDLS STA bandwidth wider than possible
+    - ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
+    - irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
+    - watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
+    - watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
+    - watchdog: sprd: remove watchdog disable from resume fail path
+    - watchdog: sprd: check busy bit before new loading rather than after that
+    - watchdog: Fix potential dereferencing of null pointer
+    - ubifs: Fix error return code in ubifs_init_authentication()
+    - um: Monitor error events in IRQ controller
+    - um: tty: Fix handling of close in tty lines
+    - um: chan_xterm: Fix fd leak
+    - sunrpc: fix xs_read_xdr_buf for partial pages receive
+    - RDMA/cma: Don't overwrite sgid_attr after device is released
+    - nfc: s3fwrn5: Release the nfc firmware
+    - powerpc/ps3: use dma_mapping_error()
+    - sparc: fix handling of page table constructor failure
+    - mm: don't wake kswapd prematurely when watermark boosting is disabled
+    - checkpatch: fix unescaped left brace
+    - lan743x: fix rx_napi_poll/interrupt ping-pong
+    - net: bcmgenet: Fix a resource leak in an error handling path in the probe
+      functin
+    - net: allwinner: Fix some resources leak in the error handling path of the
+      probe and in the remove function
+    - net: korina: fix return value
+    - libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
+    - watchdog: qcom: Avoid context switch in restart handler
+    - watchdog: coh901327: add COMMON_CLK dependency
+    - clk: ti: Fix memleak in ti_fapll_synth_setup
+    - pwm: zx: Add missing cleanup in error path
+    - pwm: lp3943: Dynamically allocate PWM chip base
+    - perf record: Fix memory leak when using '--user-regs=?' to list registers
+    - qlcnic: Fix error code in probe
+    - virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
+    - virtio_net: Fix error code in probe()
+    - virtio_ring: Fix two use after free bugs
+    - clk: at91: sam9x60: remove atmel,osc-bypass support
+    - clk: s2mps11: Fix a resource leak in error handling paths in the probe
+      function
+    - clk: sunxi-ng: Make sure divider tables have sentinel
+    - kconfig: fix return value of do_error_if()
+    - perf probe: Fix memory leak when synthesizing SDT probes
+    - ARM: sunxi: Add machine match for the Allwinner V3 SoC
+    - cfg80211: initialize rekey_data
+    - fix namespaced fscaps when !CONFIG_SECURITY
+    - lwt: Disable BH too in run_lwt_bpf()
+    - drm/amd/display: Prevent bandwidth overflow
+    - drm/amdkfd: Fix leak in dmabuf import
+    - Input: cros_ec_keyb - send 'scancodes' in addition to key events
+    - initramfs: fix clang build failure
+    - Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
+    - vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU
+    - media: gspca: Fix memory leak in probe
+    - media: sunxi-cir: ensure IR is handled when it is continuous
+    - media: netup_unidvb: Don't leak SPI master in probe error path
+    - media: ipu3-cio2: Remove traces of returned buffers
+    - media: ipu3-cio2: Return actual subdev format
+    - media: ipu3-cio2: Serialise access to pad format
+    - media: ipu3-cio2: Validate mbus format in setting subdev format
+    - media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
+    - Input: cyapa_gen6 - fix out-of-bounds stack access
+    - ALSA: hda/ca0132 - Change Input Source enum strings.
+    - Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources
+      walks"
+    - ACPI: PNP: compare the string length in the matching_id()
+    - ALSA: hda: Fix regressions on clear and reconfig sysfs
+    - ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
+    - ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
+    - ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
+    - ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
+    - ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
+    - ALSA: pcm: oss: Fix a few more UBSAN fixes
+    - ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
+    - ALSA: hda/realtek: Add quirk for MSI-GP73
+    - ALSA: hda/realtek: Apply jack fixup for Quanta NL3
+    - ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
+    - ALSA: usb-audio: Disable sample read check if firmware doesn't give back
+    - ALSA: core: memalloc: add page alignment for iram
+    - s390/smp: perform initial CPU reset also for SMT siblings
+    - s390/kexec_file: fix diag308 subcode when loading crash kernel
+    - s390/dasd: fix hanging device offline processing
+    - s390/dasd: prevent inconsistent LCU device data
+    - s390/dasd: fix list corruption of pavgroup group list
+    - s390/dasd: fix list corruption of lcu list
+    - binder: add flag to clear buffer on txn complete
+    - ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
+    - staging: comedi: mf6x4: Fix AI end-of-conversion detection
+    - perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY
+    - perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
+    - powerpc/perf: Exclude kernel samples while counting events in user space.
+    - crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
+    - crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
+    - EDAC/i10nm: Use readl() to access MMIO registers
+    - EDAC/amd64: Fix PCI component registration
+    - cpuset: fix race between hotplug work and later CPU offline
+    - USB: serial: mos7720: fix parallel-port state restore
+    - USB: serial: digi_acceleport: fix write-wakeup deadlocks
+    - USB: serial: keyspan_pda: fix dropped unthrottle interrupts
+    - USB: serial: keyspan_pda: fix write deadlock
+    - USB: serial: keyspan_pda: fix stalled writes
+    - USB: serial: keyspan_pda: fix write-wakeup use-after-free
+    - USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
+    - USB: serial: keyspan_pda: fix write unthrottling
+    - btrfs: do not shorten unpin len for caching block groups
+    - ext4: fix a memory leak of ext4_free_data
+    - ext4: fix deadlock with fs freezing and EA inodes
+    - KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
+    - ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
+    - ARM: dts: at91: sama5d2: fix CAN message ram offset and size
+    - xprtrdma: Fix XDRBUF_SPARSE_PAGES support
+    - powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
+    - powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
+    - powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE
+    - powerpc/xmon: Change printk() to pr_cont()
+    - powerpc/8xx: Fix early debug when SMC1 is relocated
+    - powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
+    - powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
+    - powerpc/powernv/memtrace: Don't leak kernel memory to user space
+    - powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
+    - ima: Don't modify file descriptor mode on the fly
+    - um: Remove use of asprinf in umid.c
+    - ceph: fix race in concurrent __ceph_remove_cap invocations
+    - SMB3: avoid confusing warning message on mount to Azure
+    - ubifs: wbuf: Don't leak kernel memory to flash
+    - jffs2: Fix GC exit abnormally
+    - jffs2: Fix ignoring mounting options problem during remounting
+    - jfs: Fix array index bounds check in dbAdjTree
+    - platform/x86: mlx-platform: remove an unused variable
+    - drm/amd/display: Fix memory leaks in S3 resume
+    - drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
+    - drm/i915: Fix mismatch between misplaced vma check and vma insert
+    - spi: pxa2xx: Fix use-after-free on unbind
+    - spi: spi-sh: Fix use-after-free on unbind
+    - spi: atmel-quadspi: Fix use-after-free on unbind
+    - spi: davinci: Fix use-after-free on unbind
+    - spi: fsl: fix use of spisel_boot signal on MPC8309
+    - spi: gpio: Don't leak SPI master in probe error path
+    - spi: mxic: Don't leak SPI master in probe error path
+    - spi: pic32: Don't leak DMA channels in probe error path
+    - spi: rb4xx: Don't leak SPI master in probe error path
+    - spi: sc18is602: Don't leak SPI master in probe error path
+    - spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
+    - spi: synquacer: Disable clock in probe error path
+    - spi: mt7621: Disable clock in probe error path
+    - spi: mt7621: Don't leak SPI master in probe error path
+    - spi: atmel-quadspi: Disable clock in probe error path
+    - spi: atmel-quadspi: Fix AHB memory accesses
+    - soc: qcom: smp2p: Safely acquire spinlock without IRQs
+    - mtd: spinand: Fix OOB read
+    - mtd: parser: cmdline: Fix parsing of part-names with colons
+    - mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
+    - mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
+    - scsi: qla2xxx: Fix crash during driver load on big endian machines
+    - scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
+    - scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
+    - iio: buffer: Fix demux update
+    - iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in
+      rockchip_saradc_resume
+    - iio:light:rpr0521: Fix timestamp alignment and prevent data leak.
+    - iio:light:st_uvis25: Fix timestamp alignment and prevent data leak.
+    - iio:magnetometer:mag3110: Fix alignment and data leak issues.
+    - iio:pressure:mpl3115: Force alignment of buffer
+    - iio:imu:bmi160: Fix too large a buffer.
+    - iio:adc:ti-ads124s08: Fix buffer being too long.
+    - iio:adc:ti-ads124s08: Fix alignment and data leak issues.
+    - md/cluster: block reshape with remote resync job
+    - md/cluster: fix deadlock when node is doing resync job
+    - pinctrl: sunxi: Always call chained_irq_{enter, exit} in
+      sunxi_pinctrl_irq_handler
+    - clk: ingenic: Fix divider calculation with div tables
+    - clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
+    - clk: tegra: Do not return 0 on failure
+    - device-dax/core: Fix memory leak when rmmod dax.ko
+    - dma-buf/dma-resv: Respect num_fences when initializing the shared fence
+      list.
+    - xen-blkback: set ring->xenblkd to NULL after kthread_stop()
+    - xen/xenbus: Allow watches discard events before queueing
+    - xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
+    - xen/xenbus/xen_bus_type: Support will_handle watch callback
+    - xen/xenbus: Count pending messages for each watch
+    - xenbus/xenbus_backend: Disallow pending watch messages
+    - libnvdimm/namespace: Fix reaping of invalidated block-window-namespace
+      labels
+    - platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
+    - PCI: Fix pci_slot_release() NULL pointer dereference
+    - regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
+    - rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
+    - Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
+    - x86/CPU/AMD: Save AMD NodeId as cpu_die_id
+    - Linux 5.4.86
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info()
+    - ipv4: fix error return code in rtm_to_fib_config()
+    - mac80211: mesh: fix mesh_pathtbl_init() error path
+    - net: bridge: vlan: fix error return code in __vlan_add()
+    - vrf: packets with lladdr src needs dst at input with orig_iif when needs
+      strict
+    - net: hns3: remove a misused pragma packed
+    - udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
+    - enetc: Fix reporting of h/w packet counters
+    - bridge: Fix a deadlock when enabling multicast snooping
+    - net: stmmac: free tx skb buffer in stmmac_resume()
+    - tcp: select sane initial rcvq_space.space for big MSS
+    - tcp: fix cwnd-limited bug for TSO deferral where we send nothing
+    - net/mlx4_en: Avoid scheduling restart task if it is already running
+    - lan743x: fix for potential NULL pointer dereference with bare card
+    - net/mlx4_en: Handle TX error CQE
+    - net: ll_temac: Fix potential NULL dereference in temac_probe()
+    - net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux
+    - net: stmmac: delete the eee_ctrl_timer after napi disabled
+    - ktest.pl: If size of log is too big to email, email error message
+    - USB: dummy-hcd: Fix uninitialized array use in init()
+    - USB: add RESET_RESUME quirk for Snapscan 1212
+    - ALSA: usb-audio: Fix potential out-of-bounds shift
+    - ALSA: usb-audio: Fix control 'access overflow' errors from chmap
+    - xhci: Give USB2 ports time to enter U3 in bus suspend
+    - xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP
+    - USB: UAS: introduce a quirk to set no_write_same
+    - USB: sisusbvga: Make console support depend on BROKEN
+    - [Config] updateconfigs for USB_SISUSBVGA_CON
+    - ALSA: pcm: oss: Fix potential out-of-bounds shift
+    - serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access
+    - KVM: mmu: Fix SPTE encoding of MMIO generation upper half
+    - membarrier: Explicitly sync remote cores when SYNC_CORE is requested
+    - x86/resctrl: Remove unused struct mbm_state::chunks_bw
+    - x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
+    - Linux 5.4.85
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - Kbuild: do not emit debug info for assembly with LLVM_IAS=1
+    - x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
+    - iwlwifi: pcie: limit memory read spin time
+    - arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
+    - iwlwifi: pcie: set LTR to avoid completion timeout
+    - iwlwifi: mvm: fix kernel panic in case of assert during CSA
+    - powerpc: Drop -me200 addition to build flags
+    - arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
+    - ARC: stack unwinding: don't assume non-current task is sleeping
+    - scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
+    - interconnect: qcom: qcs404: Remove GPU and display RPM IDs
+    - ibmvnic: skip tx timeout reset while in resetting
+    - irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
+    - spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
+    - soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
+    - arm64: tegra: Disable the ACONNECT for Jetson TX2
+    - platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
+    - platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad
+      Yoga 11e 4th gen
+    - platform/x86: acer-wmi: add automatic keyboard background light toggle key
+      as KEY_LIGHTS_TOGGLE
+    - platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
+    - platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
+    - can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
+    - ktest.pl: Fix incorrect reboot for grub2bls
+    - Input: cm109 - do not stomp on control URB
+    - Input: i8042 - add Acer laptops to the i8042 reset list
+    - mmc: block: Fixup condition for CMD13 polling for RPMB requests
+    - drm/i915/display/dp: Compute the correct slice count for VDSC on DP
+    - kbuild: avoid static_assert for genksyms
+    - proc: use untagged_addr() for pagemap_read addresses
+    - scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
+    - x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
+    - x86/membarrier: Get rid of a dubious optimization
+    - x86/apic/vector: Fix ordering in vector assignment
+    - mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
+    - [Config] updateconfigs for PGTABLE_MAPPING
+    - compiler.h: fix barrier_data() on clang
+    - Linux 5.4.84
+  * MSFT Touchpad not working on Lenovo Legion-5 15ARH05 (LP: #1887190) // Focal
+    update: v5.4.84 upstream stable release (LP: #1910816)
+    - pinctrl: amd: remove debounce filter setting in IRQ type setting
+  * Focal update: v5.4.83 upstream stable release (LP: #1910784)
+    - pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq
+      pin to output
+    - pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(...,
+      GPIOD_OUT_HIGH)
+    - usb: gadget: f_fs: Use local copy of descriptors for userspace copy
+    - USB: serial: kl5kusb105: fix memleak on open
+    - USB: serial: ch341: add new Product ID for CH341A
+    - USB: serial: ch341: sort device-id entries
+    - USB: serial: option: add Fibocom NL668 variants
+    - USB: serial: option: add support for Thales Cinterion EXS82
+    - USB: serial: option: fix Quectel BG96 matching
+    - tty: Fix ->pgrp locking in tiocspgrp()
+    - tty: Fix ->session locking
+    - ALSA: hda/realtek: Fix bass speaker DAC assignment on Asus Zephyrus G14
+    - ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
+    - ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
+    - ALSA: hda/realtek - Add new codec supported for ALC897
+    - ALSA: hda/generic: Add option to enforce preferred_dacs pairs
+    - ftrace: Fix updating FTRACE_FL_TRAMP
+    - cifs: allow syscalls to be restarted in __smb_send_rqst()
+    - cifs: fix potential use-after-free in cifs_echo_request()
+    - i2c: imx: Don't generate STOP condition if arbitration has been lost
+    - thunderbolt: Fix use-after-free in remove_unplugged_switch()
+    - drm/i915/gt: Program mocs:63 for cache eviction on gen9
+    - scsi: mpt3sas: Fix ioctl timeout
+    - dm writecache: fix the maximum number of arguments
+    - powerpc/64s/powernv: Fix memory corruption when saving SLB entries on MCE
+    - genirq/irqdomain: Add an irq_create_mapping_affinity() function
+    - powerpc/pseries: Pass MSI affinity to irq_create_mapping()
+    - dm: fix bug with RCU locking in dm_blk_report_zones
+    - dm: remove invalid sparse __acquires and __releases annotations
+    - x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
+    - coredump: fix core_pattern parse error
+    - mm: list_lru: set shrinker map bit when child nr_items is not zero
+    - mm/swapfile: do not sleep with a spin lock held
+    - speakup: Reject setting the speakup line discipline outside of speakup
+    - i2c: imx: Fix reset of I2SR_IAL flag
+    - i2c: imx: Check for I2SR_IAL after every byte
+    - spi: bcm2835: Release the DMA channel if probe fails after dma_init
+    - iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
+    - tracing: Fix userstacktrace option for instances
+    - lib/syscall: fix syscall registers retrieval on 32-bit platforms
+    - can: af_can: can_rx_unregister(): remove WARN() statement from list
+      operation sanity check
+    - gfs2: check for empty rgrp tree in gfs2_ri_update
+    - netfilter: ipset: prevent uninit-value in hash_ip6_add
+    - tipc: fix a deadlock when flushing scheduled work
+    - ASoC: wm_adsp: fix error return code in wm_adsp_load()
+    - rtw88: debug: Fix uninitialized memory in debugfs code
+    - i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
+    - dm writecache: remove BUG() and fail gracefully instead
+    - Input: i8042 - fix error return code in i8042_setup_aux()
+    - netfilter: nf_tables: avoid false-postive lockdep splat
+    - netfilter: nftables_offload: set address type in control dissector
+    - x86/insn-eval: Use new for_each_insn_prefix() macro to loop over prefixes
+      bytes
+    - Linux 5.4.83
+  * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels
+    (LP: #1908529)
+    - [dep-8] Allow all hwe kernels
+  * failing ftrace self tests from 5.7+ onwards (LP: #1893024)
+    - SAUCE: Revert "selftests/ftrace: check for do_sys_openat2 in user-memory
+      test"
+  * selftests: test_vxlan_under_vrf: mute unnecessary error message
+    (LP: #1908342)
+    - selftests: test_vxlan_under_vrf: mute unnecessary error message
+  * Focal update: v5.4.82 upstream stable release (LP: #1908564)
+    - devlink: Hold rtnl lock while reading netdev attributes
+    - ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
+    - net/af_iucv: set correct sk_protocol for child sockets
+    - net/tls: missing received data after fast remote close
+    - net/tls: Protect from calling tls_dev_del for TLS RX twice
+    - rose: Fix Null pointer dereference in rose_send_frame()
+    - sock: set sk_err to ee_errno on dequeue from errq
+    - tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
+    - tun: honor IOCB_NOWAIT flag
+    - usbnet: ipheth: fix connectivity with iOS 14
+    - bonding: wait for sysfs kobject destruction before freeing struct slave
+    - staging/octeon: fix up merge error
+    - ima: extend boot_aggregate with kernel measurements
+    - sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
+    - netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
+    - ipv4: Fix tos mask in inet_rtm_getroute()
+    - dt-bindings: net: correct interrupt flags in examples
+    - chelsio/chtls: fix panic during unload reload chtls
+    - ibmvnic: Ensure that SCRQ entry reads are correctly ordered
+    - ibmvnic: Fix TX completion error handling
+    - inet_ecn: Fix endianness of checksum update when setting ECT(1)
+    - net: ip6_gre: set dev->hard_header_len when using header_ops
+    - net/x25: prevent a couple of overflows
+    - cxgb3: fix error return code in t3_sge_alloc_qset()
+    - net: pasemi: fix error return code in pasemi_mac_open()
+    - vxlan: fix error return code in __vxlan_dev_create()
+    - chelsio/chtls: fix a double free in chtls_setkey()
+    - net: mvpp2: Fix error return code in mvpp2_open()
+    - net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
+    - net: openvswitch: ensure LSE is pullable before reading it
+    - net/sched: act_mpls: ensure LSE is pullable before reading it
+    - net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
+    - net/mlx5: Fix wrong address reclaim when command interface is down
+    - ALSA: usb-audio: US16x08: fix value count for level meters
+    - Input: xpad - support Ardwiino Controllers
+    - tracing: Remove WARN_ON in start_thread()
+    - RDMA/i40iw: Address an mmap handler exploit in i40iw
+    - Linux 5.4.82
+  * Focal update: v5.4.81 upstream stable release (LP: #1908562)
+    - spi: bcm-qspi: Fix use-after-free on unbind
+    - spi: bcm2835: Fix use-after-free on unbind
+    - ipv4: use IS_ENABLED instead of ifdef
+    - netfilter: clear skb->next in NF_HOOK_LIST()
+    - btrfs: tree-checker: add missing return after error in root_item
+    - btrfs: tree-checker: add missing returns after data_ref alignment checks
+    - btrfs: don't access possibly stale fs_info data for printing duplicate
+      device
+    - btrfs: fix lockdep splat when reading qgroup config on mount
+    - wireless: Use linux/stddef.h instead of stddef.h
+    - smb3: Call cifs reconnect from demultiplex thread
+    - smb3: Avoid Mid pending list corruption
+    - smb3: Handle error case during offload read path
+    - cifs: fix a memleak with modefromsid
+    - KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
+    - KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
+    - KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
+    - KVM: x86: Fix split-irqchip vs interrupt injection window request
+    - trace: fix potenial dangerous pointer
+    - arm64: pgtable: Fix pte_accessible()
+    - arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
+    - HID: uclogic: Add ID for Trust Flex Design Tablet
+    - HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
+    - HID: cypress: Support Varmilo Keyboards' media hotkeys
+    - HID: add support for Sega Saturn
+    - Input: i8042 - allow insmod to succeed on devices without an i8042
+      controller
+    - HID: hid-sensor-hub: Fix issue with devices with no report ID
+    - staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
+    - HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
+    - dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
+    - x86/xen: don't unbind uninitialized lock_kicker_irq
+    - HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo
+      Edge
+    - HID: Add Logitech Dinovo Edge battery quirk
+    - proc: don't allow async path resolution of /proc/self components
+    - nvme: free sq/cq dbbuf pointers when dbbuf set fails
+    - vhost scsi: fix cmd completion race
+    - dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
+    - scsi: libiscsi: Fix NOP race condition
+    - scsi: target: iscsi: Fix cmd abort fabric stop race
+    - perf/x86: fix sysfs type mismatches
+    - xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
+    - net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
+    - bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
+    - ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
+    - phy: tegra: xusb: Fix dangling pointer on probe failure
+    - iwlwifi: mvm: write queue_sync_state only for sync
+    - batman-adv: set .owner to THIS_MODULE
+    - arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
+    - ARM: dts: dra76x: m_can: fix order of clocks
+    - scsi: ufs: Fix race between shutdown and runtime resume flow
+    - bnxt_en: fix error return code in bnxt_init_one()
+    - bnxt_en: fix error return code in bnxt_init_board()
+    - video: hyperv_fb: Fix the cache type when mapping the VRAM
+    - bnxt_en: Release PCI regions when DMA mask setup fails during probe.
+    - cxgb4: fix the panic caused by non smac rewrite
+    - s390/qeth: make af_iucv TX notification call more robust
+    - s390/qeth: fix af_iucv notification race
+    - s390/qeth: fix tear down of async TX buffers
+    - ibmvnic: fix call_netdevice_notifiers in do_reset
+    - ibmvnic: notify peers when failover and migration happen
+    - powerpc/64s: Fix allnoconfig build since uaccess flush
+    - IB/mthca: fix return value of error branch in mthca_init_cq()
+    - i40e: Fix removing driver while bare-metal VFs pass traffic
+    - nfc: s3fwrn5: use signed integer for parsing GPIO numbers
+    - net: ena: set initial DMA width to avoid intel iommu issue
+    - ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
+    - ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
+    - optee: add writeback to valid memory type
+    - arm64: tegra: Wrong AON HSP reg property size
+    - efivarfs: revert "fix memory leak in efivarfs_create()"
+    - efi: EFI_EARLYCON should depend on EFI
+    - can: gs_usb: fix endianess problem with candleLight firmware
+    - platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
+    - platform/x86: toshiba_acpi: Fix the wrong variable assignment
+    - RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
+    - RDMA/hns: Bugfix for memory window mtpt configuration
+    - can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from
+      request_threaded_irq()'s flags
+    - can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
+    - perf stat: Use proper cpu for shadow stats
+    - perf probe: Fix to die_entrypc() returns error correctly
+    - spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
+    - USB: core: Change %pK for __user pointers to %px
+    - usb: gadget: f_midi: Fix memleak in f_midi_alloc
+    - USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO
+      built-in usb-audio card
+    - usb: gadget: Fix memleak in gadgetfs_fill_super
+    - irqchip/exiu: Fix the index of fwspec for IRQ type
+    - x86/mce: Do not overwrite no_way_out if mce_end() fails
+    - x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
+    - x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
+    - x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
+    - USB: core: Fix regression in Hercules audio card
+    - ASoC: Intel: Skylake: Remove superfluous chip initialization
+    - ASoC: Intel: Skylake: Select hda configuration permissively
+    - ASoC: Intel: Skylake: Enable codec wakeup during chip init
+    - ASoC: Intel: Skylake: Shield against no-NHLT configurations
+    - ASoC: Intel: Allow for ROM init retry on CNL platforms
+    - ASoC: Intel: Skylake: Await purge request ack on CNL
+    - ASoC: Intel: Multiple I/O PCM format support for pipe
+    - ASoC: Intel: Skylake: Automatic DMIC format configuration according to
+      information from NHLT
+    - Linux 5.4.81
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - ah6: fix error return code in ah6_input()
+    - atm: nicstar: Unmap DMA on send error
+    - bnxt_en: read EEPROM A2h address using page 0
+    - devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
+    - Exempt multicast addresses from five-second neighbor lifetime
+    - inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
+    - ipv6: Fix error path to cancel the meseage
+    - lan743x: fix issue causing intermittent kernel log warnings
+    - lan743x: prevent entire kernel HANG on open, for some platforms
+    - mlxsw: core: Use variable timeout for EMAD retries
+    - net: b44: fix error return code in b44_init_one()
+    - net: bridge: add missing counters to ndo_get_stats64 callback
+    - net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
+    - net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
+    - net: Have netpoll bring-up DSA management interface
+    - netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
+    - netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
+    - net: lantiq: Wait for the GPHY firmware to be ready
+    - net/mlx4_core: Fix init_hca fields offset
+    - net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup
+    - net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
+    - net/tls: fix corrupted data in recvmsg
+    - net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
+    - page_frag: Recover from memory pressure
+    - qed: fix error return code in qed_iwarp_ll2_start()
+    - qlcnic: fix error return code in qlcnic_83xx_restart_hw()
+    - sctp: change to hold/put transport for proto_unreach_timer
+    - tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
+    - net/mlx5: Add handling of port type in rule deletion
+    - net/mlx5: Disable QoS when min_rates on all VFs are zero
+    - net: usb: qmi_wwan: Set DTR quirk for MR400
+    - net/ncsi: Fix netlink registration
+    - net: ftgmac100: Fix crash when removing driver
+    - pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
+    - scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
+    - selftests: kvm: Fix the segment descriptor layout to match the actual layout
+    - ACPI: button: Add DMI quirk for Medion Akoya E2228T
+    - arm64: errata: Fix handling of 1418040 with late CPU onlining
+    - arm64: psci: Avoid printing in cpu_psci_cpu_die()
+    - arm64: smp: Tell RCU about CPUs that fail to come online
+    - vfs: remove lockdep bogosity in __sb_start_write
+    - gfs2: fix possible reference leak in gfs2_check_blk_type
+    - hwmon: (pwm-fan) Fix RPM calculation
+    - arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
+    - arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
+    - arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
+    - Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
+    - ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet
+      PHY
+    - ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY
+    - Input: adxl34x - clean up a data type in adxl34x_probe()
+    - MIPS: export has_transparent_hugepage() for modules
+    - arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
+    - arm64: dts imx8mn: Remove non-existent USB OTG2
+    - arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
+    - swiotlb: using SIZE_MAX needs limits.h included
+    - arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point
+    - ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
+    - Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
+    - rfkill: Fix use-after-free in rfkill_resume()
+    - RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
+    - [Config] updateconfigs for INFINIBAND_VIRT_DMA
+    - RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
+    - perf lock: Don't free "lock_seq_stat" if read_count isn't zero
+    - tools, bpftool: Add missing close before bpftool net attach exit
+    - ip_tunnels: Set tunnel option flag when tunnel metadata is present
+    - can: af_can: prevent potential access of uninitialized member in can_rcv()
+    - can: af_can: prevent potential access of uninitialized member in canfd_rcv()
+    - can: dev: can_restart(): post buffer from the right context
+    - can: ti_hecc: Fix memleak in ti_hecc_probe
+    - can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to
+      can_put_echo_skb()
+    - can: peak_usb: fix potential integer overflow on shift of a int
+    - can: flexcan: fix failure handling of pm_runtime_get_sync()
+    - can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
+    - can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for
+      devm_regmap_init()
+    - can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
+    - can: m_can: m_can_handle_state_change(): fix state change
+    - can: m_can: m_can_class_free_dev(): introduce new function
+    - can: m_can: m_can_stop(): set device to software init mode before closing
+    - ASoC: qcom: lpass-platform: Fix memory leak
+    - selftests/bpf: Fix error return code in run_getsockopt_test()
+    - MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
+    - drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()
+    - net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
+    - bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
+    - bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
+    - can: kvaser_pciefd: Fix KCAN bittiming limits
+    - can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
+    - iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header
+    - iommu/vt-d: Avoid panic if iommu init fails in tboot system
+    - can: flexcan: flexcan_chip_start(): fix erroneous
+      flexcan_transceiver_enable() during bus-off recovery
+    - can: m_can: process interrupt only when not runtime suspended
+    - xfs: fix the minrecs logic when dealing with inode root child blocks
+    - xfs: strengthen rmap record flags checking
+    - xfs: return corresponding errcode if xfs_initialize_perag() fail
+    - regulator: ti-abb: Fix array out of bound read access on the first
+      transition
+    - fail_function: Remove a redundant mutex unlock
+    - xfs: revert "xfs: fix rmap key and record comparison functions"
+    - bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
+    - bpf, sockmap: On receive programs try to fast track SK_PASS ingress
+    - bpf, sockmap: Use truesize with sk_rmem_schedule()
+    - bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
+    - efi/x86: Free efi_pgd with free_pages()
+    - libfs: fix error cast of negative value in simple_attr_write()
+    - HID: logitech-hidpp: Add PID for MX Anywhere 2
+    - HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
+    - HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
+    - speakup: Do not let the line discipline be used several times
+    - ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
+    - ALSA: usb-audio: Add delay quirk for all Logitech USB devices
+    - ALSA: ctl: fix error path at adding user-defined element set
+    - ALSA: mixart: Fix mutex deadlock
+    - ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
+    - ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
+    - tty: serial: imx: fix potential deadlock
+    - tty: serial: imx: keep console clocks always on
+    - HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
+    - efivarfs: fix memory leak in efivarfs_create()
+    - staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids
+    - iio: light: fix kconfig dependency bug for VCNL4035
+    - ext4: fix bogus warning in ext4_update_dx_flag()
+    - iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
+    - iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-
+      mode
+    - iio: adc: mediatek: fix unset field
+    - spi: lpspi: Fix use-after-free on unbind
+    - spi: Introduce device-managed SPI controller allocation
+    - spi: npcm-fiu: Don't leak SPI master in probe error path
+    - spi: bcm2835aux: Fix use-after-free on unbind
+    - regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}
+    - regulator: fix memory leak with repeated set_machine_constraints()
+    - regulator: avoid resolve_supply() infinite recursion
+    - regulator: workaround self-referent regulators
+    - xtensa: fix TLBTEMP area placement
+    - xtensa: disable preemption around cache alias management calls
+    - mac80211: minstrel: remove deferred sampling code
+    - mac80211: minstrel: fix tx status processing corner case
+    - mac80211: free sta in sta_info_insert_finish() on errors
+    - s390/cpum_sf.c: fix file permission for cpum_sfb_size
+    - s390/dasd: fix null pointer dereference for ERP requests
+    - Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected
+    - drm/amd/display: Add missing pflip irq for dcn2.0
+    - drm/i915: Handle max_bpc==16
+    - mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel
+      controllers
+    - ptrace: Set PF_SUPERPRIV when checking capability
+    - seccomp: Set PF_SUPERPRIV when checking capability
+    - x86/microcode/intel: Check patch signature before saving microcode for early
+      loading
+    - mm: memcg/slab: fix root memcg vmstats
+    - mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
+    - mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
+    - sched/fair: Fix overutilized update in enqueue_task_fair()
+    - Linux 5.4.80
+  * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint
+    (LP: #1908335)
+    - Input: elan_i2c - add support for high resolution reports
+    - Input: elan_i2c - add new trackpoint report type 0x5F
+    - Input: elantech - fix protocol errors for some trackpoints in SMBus mode
+  * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200)
+    - SAUCE: rtw88: 8723de: let cpu enter c10
+  * [UBUNTU 21.04] s390/pci: vfio-pci mmio being disabled erroneously
+    (LP: #1907265)
+    - s390/pci: Mark all VFs as not implementing PCI_COMMAND_MEMORY
+  * Touchpad not detected on ByteSpeed C15B laptop (LP: #1906128)
+    - Input: i8042 - add ByteSpeed touchpad to noloop table
+  * Fix reading speed and duplex sysfs on igc device (LP: #1906851)
+    - SAUCE: igc: Report speed and duplex as unknown when device is runtime
+      suspended
+  * stack trace in kernel (LP: #1903596)
+    - net: napi: remove useless stack trace
+  * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work
+    (LP: #1906229)
+    - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
+    - PM: ACPI: Refresh wakeup device power configuration every time
+  * CVE-2020-27777
+    - [Config]: Set CONFIG_PPC_RTAS_FILTER
+  * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663)
+    - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - powerpc: Only include kup-radix.h for 64-bit Book3S
+    - MIPS: PCI: Fix MIPS build
+    - powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
+    - net: lantiq: Add locking for TX DMA channel
+    - Input: sunkbd - avoid use-after-free in teardown paths
+    - mac80211: always wind down STA state
+    - can: proc: can_remove_proc(): silence remove_proc_entry warning
+    - KVM: x86: clflushopt should be treated as a no-op by emulation
+    - ACPI: GED: fix -Wformat
+    - Linux 5.4.79
+  * focal/linux: 5.4.0-65.73 -proposed tracker (LP: #1912220)
+  * initramfs unpacking failed (LP: #1835660)
+    - SAUCE: lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Tue, 09 Feb 2021 10:54:34 -0700
+
+linux-gkeop-5.4 (5.4.0-1009.10~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1009.10~18.04.1 -proposed tracker
+    (LP: #1911324)
+
+  [ Ubuntu: 5.4.0-1009.10 ]
+
+  * focal/linux-gkeop: 5.4.0-1009.10 -proposed tracker (LP: #1911325)
+  * focal/linux: 5.4.0-63.71 -proposed tracker (LP: #1911333)
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+  * focal/linux: 5.4.0-62.70 -proposed tracker (LP: #1911144)
+  * CVE-2020-28374
+    - SAUCE: target: fix XCOPY NAA identifier lookup
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - update dkms package versions
+  * CVE-2021-1052 // CVE-2021-1053
+    - [Packaging] NVIDIA -- Add the NVIDIA 460 driver
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 18 Jan 2021 12:20:07 +0100
+
+linux-gkeop-5.4 (5.4.0-1008.9~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1008.9~18.04.1 -proposed tracker
+    (LP: #1907596)
+
+  [ Ubuntu: 5.4.0-1008.9 ]
+
+  * focal/linux-gkeop: 5.4.0-1008.9 -proposed tracker (LP: #1907597)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+  * focal/linux: 5.4.0-59.65 -proposed tracker (LP: #1907604)
+  * focal: selftests/bpf build broken: test_map_init.skel.h: No such file or
+    directory (LP: #1906866)
+    - SAUCE: Revert selftests/ "bpf: Zero-fill re-used per-cpu map element"
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 14 Dec 2020 16:04:32 +0100
+
+linux-gkeop-5.4 (5.4.0-1007.8~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1007.8~18.04.1 -proposed tracker
+    (LP: #1907382)
+
+  [ Ubuntu: 5.4.0-1007.8 ]
+
+  * focal/linux-gkeop: 5.4.0-1007.8 -proposed tracker (LP: #1907383)
+  * focal/linux: 5.4.0-58.64 -proposed tracker (LP: #1907390)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * raid10: discard leads to corrupted file system (LP: #1907262)
+    - Revert "dm raid: remove unnecessary discard limits for raid10"
+    - Revert "dm raid: fix discard limits for raid1 and raid10"
+    - Revert "md/raid10: improve discard request for far layout"
+    - Revert "md/raid10: improve raid10 discard request"
+    - Revert "md/raid10: pull codes that wait for blocked dev into one function"
+    - Revert "md/raid10: extend r10bio devs to raid disks"
+    - Revert "md: add md_submit_discard_bio() for submitting discard bio"
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 10 Dec 2020 16:08:12 +0100
+
+linux-gkeop-5.4 (5.4.0-1006.7~18.04.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1006.7~18.04.1 -proposed tracker
+    (LP: #1905916)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update update.conf
+
+  [ Ubuntu: 5.4.0-1006.7 ]
+
+  * focal/linux-gkeop: 5.4.0-1006.7 -proposed tracker (LP: #1905917)
+  * focal/linux: 5.4.0-57.63 -proposed tracker (LP: #1905924)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 02 Dec 2020 15:06:31 +0100
+
+linux-gkeop-5.4 (5.4.0-1005.6) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1005.6 -proposed tracker (LP: #1903173)
+
+  * Bionic update: upstream stable patchset 2020-09-30 (LP: #1897977)
+    - [Config] gke: updateconfigs for VGACON_SOFT_SCROLLBACK
+
+  [ Ubuntu: 5.4.0-55.61~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-55.61~18.04.1 -proposed tracker (LP: #1903174)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update update.conf
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+  * focal/linux: 5.4.0-55.61 -proposed tracker (LP: #1903175)
+  * Update kernel packaging to support forward porting kernels (LP: #1902957)
+    - [Debian] Update for leader included in BACKPORT_SUFFIX
+  * Avoid double newline when running insertchanges (LP: #1903293)
+    - [Packaging] insertchanges: avoid double newline
+  * EFI: Fails when BootCurrent entry does not exist (LP: #1899993)
+    - efivarfs: Replace invalid slashes with exclamation marks in dentries.
+  * CVE-2020-14351
+    - perf/core: Fix race in the perf_mmap_close() function
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull codes that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: fix discard limits for raid1 and raid10
+    - dm raid: remove unnecessary discard limits for raid10
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: drop unnecessary offset_in_page in extent buffer helpers
+    - btrfs: extent_io: do extra check for extent buffer read write functions
+    - btrfs: extent-tree: kill BUG_ON() in __btrfs_free_extent()
+    - btrfs: extent-tree: kill the BUG_ON() in insert_inline_extent_backref()
+    - btrfs: ctree: check key order before merging tree blocks
+  * Ethernet no link lights after reboot (Intel i225-v 2.5G) (LP: #1902578)
+    - igc: Add PHY power management control
+  * Undetected Data corruption in MPI workloads that use VSX for reductions on
+    POWER9 DD2.1 systems (LP: #1902694)
+    - powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation
+    - selftests/powerpc: Make alignment handler test P9N DD2.1 vector CI load
+      workaround
+  * [20.04 FEAT] Support/enhancement of NVMe IPL (LP: #1902179)
+    - s390: nvme ipl
+    - s390: nvme reipl
+    - s390/ipl: support NVMe IPL kernel parameters
+  * uvcvideo: add mapping for HEVC payloads (LP: #1895803)
+    - media: uvcvideo: Add mapping for HEVC payloads
+  * Focal update: v5.4.73 upstream stable release (LP: #1902115)
+    - ibmveth: Switch order of ibmveth_helper calls.
+    - ibmveth: Identify ingress large send packets.
+    - ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
+    - mlx4: handle non-napi callers to napi_poll
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fix pos incrementment in ipv6_route_seq_next
+    - net/smc: fix valid DMBE buffer sizes
+    - net/tls: sendfile fails with ktls offload
+    - net: usb: qmi_wwan: add Cellient MPL200 card
+    - tipc: fix the skb_unshare() in tipc_buf_append()
+    - socket: fix option SO_TIMESTAMPING_NEW
+    - can: m_can_platform: don't call m_can_class_suspend in runtime suspend
+    - can: j1935: j1939_tp_tx_dat_new(): fix missing initialization of skbcnt
+    - net: j1939: j1939_session_fresh_new(): fix missing initialization of skbcnt
+    - net/ipv4: always honour route mtu during forwarding
+    - net_sched: remove a redundant goto chain check
+    - r8169: fix data corruption issue on RTL8402
+    - cxgb4: handle 4-tuple PEDIT to NAT mode translation
+    - binder: fix UAF when releasing todo list
+    - ALSA: bebob: potential info leak in hwdep_read()
+    - ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
+    - nvme-pci: disable the write zeros command for Intel 600P/P3100
+    - chelsio/chtls: fix socket lock
+    - chelsio/chtls: correct netdevice for vlan interface
+    - chelsio/chtls: correct function return and return type
+    - ibmvnic: save changed mac address to adapter->mac_addr
+    - net: ftgmac100: Fix Aspeed ast2600 TX hang issue
+    - net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
+    - net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling
+      ether_setup
+    - net: Properly typecast int values to set sk_max_pacing_rate
+    - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
+    - nexthop: Fix performance regression in nexthop deletion
+    - nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in
+      nfc_genl_fw_download()
+    - r8169: fix operation under forced interrupt threading
+    - selftests: forwarding: Add missing 'rp_filter' configuration
+    - tcp: fix to update snd_wl1 in bulk receiver fast path
+    - icmp: randomize the global rate limiter
+    - ALSA: hda/realtek - set mic to auto detect on a HP AIO machine
+    - ALSA: hda/realtek - Add mute Led support for HP Elitebook 845 G7
+    - ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
+    - cifs: remove bogus debug code
+    - cifs: Return the error from crypt_message when enc/dec key not found.
+    - SMB3: Resolve data corruption of TCP server info fields
+    - KVM: nVMX: Reset the segment cache when stuffing guest segs
+    - KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails
+    - KVM: x86/mmu: Commit zap of remaining invalid pages when recovering lpages
+    - KVM: SVM: Initialize prev_ga_tag before use
+    - ima: Don't ignore errors from crypto_shash_update()
+    - crypto: algif_aead - Do not set MAY_BACKLOG on the async path
+    - crypto: caam/qi - add fallback for XTS with more than 8B IV
+    - EDAC/i5100: Fix error handling order in i5100_init_one()
+    - EDAC/aspeed: Fix handling of platform_get_irq() error
+    - EDAC/ti: Fix handling of platform_get_irq() error
+    - perf/x86/intel/ds: Fix x86_pmu_stop warning for large PEBS
+    - x86/fpu: Allow multiple bits in clearcpuid= parameter
+    - drivers/perf: xgene_pmu: Fix uninitialized resource struct
+    - drivers/perf: thunderx2_pmu: Fix memory resource error handling
+    - sched/fair: Fix wrong cpu selecting from isolated domain
+    - perf/x86/intel/uncore: Update Ice Lake uncore units
+    - perf/x86/intel/uncore: Reduce the number of CBOX counters
+    - x86/nmi: Fix nmi_handle() duration miscalculation
+    - x86/events/amd/iommu: Fix sizeof mismatch
+    - crypto: algif_skcipher - EBUSY on aio should be an error
+    - crypto: mediatek - Fix wrong return value in mtk_desc_ring_alloc()
+    - crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
+    - crypto: picoxcell - Fix potential race condition bug
+    - media: tuner-simple: fix regression in simple_set_radio_freq
+    - media: Revert "media: exynos4-is: Add missed check for
+      pinctrl_lookup_state()"
+    - media: ov5640: Correct Bit Div register in clock tree diagram
+    - media: m5mols: Check function pointer in m5mols_sensor_power
+    - media: uvcvideo: Set media controller entity functions
+    - media: uvcvideo: Silence shift-out-of-bounds warning
+    - media: staging/intel-ipu3: css: Correctly reset some memory
+    - media: omap3isp: Fix memleak in isp_probe
+    - media: i2c: ov5640: Remain in power down for DVP mode unless streaming
+    - media: i2c: ov5640: Separate out mipi configuration from s_power
+    - media: i2c: ov5640: Enable data pins on poweron for DVP mode
+    - media: rcar_drif: Fix fwnode reference leak when parsing DT
+    - media: rcar_drif: Allocate v4l2_async_subdev dynamically
+    - media: rcar-csi2: Allocate v4l2_async_subdev dynamically
+    - crypto: omap-sham - fix digcnt register handling with export/import
+    - hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61}
+    - cypto: mediatek - fix leaks in mtk_desc_ring_alloc
+    - media: mx2_emmaprp: Fix memleak in emmaprp_probe
+    - media: tc358743: initialize variable
+    - media: tc358743: cleanup tc358743_cec_isr
+    - media: rcar-vin: Fix a reference count leak.
+    - media: rockchip/rga: Fix a reference count leak.
+    - media: platform: fcp: Fix a reference count leak.
+    - media: camss: Fix a reference count leak.
+    - media: s5p-mfc: Fix a reference count leak
+    - media: stm32-dcmi: Fix a reference count leak
+    - media: ti-vpe: Fix a missing check and reference count leak
+    - regulator: resolve supply after creating regulator
+    - pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
+    - spi: spi-s3c64xx: swap s3c64xx_spi_set_cs() and s3c64xx_enable_datapath()
+    - spi: spi-s3c64xx: Check return values
+    - blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
+    - ath10k: provide survey info as accumulated data
+    - drm/vkms: fix xrgb on compute crc
+    - Bluetooth: hci_uart: Cancel init work before unregistering
+    - drm/amd/display: Fix wrong return value in dm_update_plane_state()
+    - drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel
+    - ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
+    - ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
+    - ath10k: Fix the size used in a 'dma_free_coherent()' call in an error
+      handling path
+    - wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
+    - ASoC: qcom: lpass-platform: fix memory leak
+    - ASoC: qcom: lpass-cpu: fix concurrency issue
+    - brcmfmac: check ndev pointer
+    - mwifiex: Do not use GFP_KERNEL in atomic context
+    - staging: rtl8192u: Do not use GFP_KERNEL in atomic context
+    - drm/gma500: fix error check
+    - scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
+    - scsi: qla2xxx: Fix wrong return value in qlt_chk_unresolv_exchg()
+    - scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
+    - scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
+    - backlight: sky81452-backlight: Fix refcount imbalance on error
+    - staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()
+    - VMCI: check return value of get_user_pages_fast() for errors
+    - mm/error_inject: Fix allow_error_inject function signatures.
+    - drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
+    - drm/crc-debugfs: Fix memleak in crc_control_write
+    - binder: Remove bogus warning on failed same-process transaction
+    - tty: serial: earlycon dependency
+    - pty: do tty_flip_buffer_push without port->lock in pty_write
+    - pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()
+    - pwm: lpss: Add range limit check for the base_unit register value
+    - drivers/virt/fsl_hypervisor: Fix error handling path
+    - video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
+    - video: fbdev: sis: fix null ptr dereference
+    - video: fbdev: radeon: Fix memleak in radeonfb_pci_register
+    - ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
+    - HID: roccat: add bounds checking in kone_sysfs_write_settings()
+    - drm/msm: Avoid div-by-zero in dpu_crtc_atomic_check()
+    - drm/panfrost: Ensure GPU quirks are always initialised
+    - iomap: Clear page error before beginning a write
+    - pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
+    - pinctrl: mcp23s08: Fix mcp23x17 precious range
+    - net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
+    - scsi: mpt3sas: Fix sync irqs
+    - net: stmmac: use netif_tx_start|stop_all_queues() function
+    - cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
+    - drm: mxsfb: check framebuffer pitch
+    - coresight: etm4x: Handle unreachable sink in perf mode
+    - xhci: don't create endpoint debugfs entry before ring buffer is set.
+    - net: dsa: rtl8366: Check validity of passed VLANs
+    - net: dsa: rtl8366: Refactor VLAN/PVID init
+    - net: dsa: rtl8366: Skip PVID setting if not requested
+    - net: wilc1000: clean up resource in error path of init mon interface
+    - ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
+    - net: dsa: rtl8366rb: Support all 4096 VLANs
+    - spi: omap2-mcspi: Improve performance waiting for CHSTAT
+    - ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
+    - dmaengine: dmatest: Check list for emptiness before access its last entry
+    - misc: mic: scif: Fix error handling path
+    - ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
+    - usb: dwc2: Fix parameter type in function pointer prototype
+    - quota: clear padding in v2r1_mem2diskdqb()
+    - slimbus: core: check get_addr before removing laddr ida
+    - slimbus: core: do not enter to clock pause mode in core
+    - slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback
+    - ASoC: fsl_sai: Instantiate snd_soc_dai_driver
+    - HID: hid-input: fix stylus battery reporting
+    - nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell()
+    - nl80211: fix OBSS PD min and max offset validation
+    - coresight: etm: perf: Fix warning caused by etm_setup_aux failure
+    - ibmvnic: set up 200GBPS speed
+    - qtnfmac: fix resource leaks on unsupported iftype error return path
+    - iio: adc: stm32-adc: fix runtime autosuspend delay when slow polling
+    - net: enic: Cure the enic api locking trainwreck
+    - mfd: sm501: Fix leaks in probe()
+    - iwlwifi: mvm: split a print to avoid a WARNING in ROC
+    - usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
+    - usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
+    - nl80211: fix non-split wiphy information
+    - usb: dwc2: Fix INTR OUT transfers in DDMA mode.
+    - scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
+    - scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
+    - ipmi_si: Fix wrong return value in try_smi_init()
+    - platform/x86: mlx-platform: Remove PSU EEPROM configuration
+    - mwifiex: fix double free
+    - ipvs: clear skb->tstamp in forwarding path
+    - net: korina: fix kfree of rx/tx descriptor array
+    - netfilter: nf_log: missing vlan offload tag and proto
+    - mm/swapfile.c: fix potential memory leak in sys_swapon
+    - mm/memcg: fix device private memcg accounting
+    - mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
+    - fs: fix NULL dereference due to data race in prepend_path()
+    - selftests/ftrace: Change synthetic event name for inter-event-combined test
+    - i3c: master add i3c_master_attach_boardinfo to preserve boardinfo
+    - IB/mlx4: Fix starvation in paravirt mux/demux
+    - IB/mlx4: Adjust delayed work when a dup is observed
+    - powerpc/pseries: Fix missing of_node_put() in rng_init()
+    - powerpc/icp-hv: Fix missing of_node_put() in success path
+    - RDMA/ucma: Fix locking for ctx->events_reported
+    - RDMA/ucma: Add missing locking around rdma_leave_multicast()
+    - mtd: lpddr: fix excessive stack usage with clang
+    - RDMA/hns: Add a check for current state before modifying QP
+    - RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
+    - powerpc/pseries: explicitly reschedule during drmem_lmb list traversal
+    - pseries/drmem: don't cache node id in drmem_lmb struct
+    - RDMA/mlx5: Fix potential race between destroy and CQE poll
+    - mtd: mtdoops: Don't write panic data twice
+    - ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
+    - arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
+    - ida: Free allocated bitmap in error path
+    - xfs: limit entries returned when counting fsmap records
+    - xfs: fix deadlock and streamline xfs_getfsmap performance
+    - xfs: fix high key handling in the rt allocator's query_range function
+    - RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page
+      boundary
+    - RDMA/umem: Prevent small pages from being returned by
+      ib_umem_find_best_pgsz()
+    - RDMA/qedr: Fix qp structure memory leak
+    - RDMA/qedr: Fix use of uninitialized field
+    - RDMA/qedr: Fix return code if accept is called on a destroyed qp
+    - RDMA/qedr: Fix inline size returned for iWARP
+    - powerpc/book3s64/hash/4k: Support large linear mapping range with 4K
+    - powerpc/tau: Use appropriate temperature sample interval
+    - powerpc/tau: Convert from timer to workqueue
+    - powerpc/tau: Remove duplicated set_thresholds() call
+    - powerpc/tau: Check processor type before enabling TAU interrupt
+    - powerpc/tau: Disable TAU between measurements
+    - powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
+    - RDMA/cma: Remove dead code for kernel rdmacm multicast
+    - RDMA/cma: Consolidate the destruction of a cma_multicast in one place
+    - perf intel-pt: Fix "context_switch event has no tid" error
+    - RDMA/hns: Set the unsupported wr opcode
+    - RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
+    - i40iw: Add support to make destroy QP synchronous
+    - perf stat: Skip duration_time in setup_system_wide
+    - RDMA/hns: Fix the wrong value of rnr_retry when querying qp
+    - RDMA/hns: Fix missing sq_sig_type when querying QP
+    - mtd: rawnand: vf610: disable clk on error handling path in probe
+    - mtd: spinand: gigadevice: Only one dummy byte in QUADIO
+    - mtd: spinand: gigadevice: Add QE Bit
+    - kdb: Fix pager search for multi-line strings
+    - overflow: Include header file with SIZE_MAX declaration
+    - RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces
+    - powerpc/perf: Exclude pmc5/6 from the irrelevant PMU group constraints
+    - powerpc/perf/hv-gpci: Fix starting index value
+    - i3c: master: Fix error return in cdns_i3c_master_probe()
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
+    - IB/rdmavt: Fix sizeof mismatch
+    - RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
+    - maiblox: mediatek: Fix handling of platform_get_irq() error
+    - selftests/powerpc: Fix eeh-basic.sh exit codes
+    - f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
+    - RDMA/rxe: Handle skb_clone() failure in rxe_recv.c
+    - mm/page_owner: change split_page_owner to take a count
+    - lib/crc32.c: fix trivial typo in preprocessor condition
+    - ramfs: fix nommu mmap with gaps in the page cache
+    - rapidio: fix error handling path
+    - rapidio: fix the missed put_device() for rio_mport_add_riodev
+    - mailbox: avoid timer start from callback
+    - i2c: rcar: Auto select RESET_CONTROLLER
+    - clk: meson: g12a: mark fclk_div2 as critical
+    - PCI: aardvark: Check for errors from pci_bridge_emul_init() call
+    - PCI: iproc: Set affinity mask on MSI interrupts
+    - rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
+    - PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY
+    - vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn
+    - clk: qcom: gcc-sdm660: Fix wrong parent_map
+    - clk: keystone: sci-clk: fix parsing assigned-clock data during probe
+    - pwm: img: Fix null pointer access in probe
+    - clk: rockchip: Initialize hw to error to avoid undefined behavior
+    - clk: mediatek: add UART0 clock support
+    - module: statically initialize init section freeing data
+    - clk: at91: clk-main: update key before writing AT91_CKGR_MOR
+    - clk: bcm2835: add missing release if devm_clk_hw_register fails
+    - watchdog: Fix memleak in watchdog_cdev_register
+    - watchdog: Use put_device on error
+    - watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3
+    - svcrdma: fix bounce buffers for unaligned offsets and multiple pages
+    - ext4: limit entries returned when counting fsmap records
+    - vfio/pci: Clear token on bypass registration failure
+    - vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
+    - clk: imx8mq: Fix usdhc parents order
+    - SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
+    - Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
+    - Input: stmfts - fix a & vs && typo
+    - Input: ep93xx_keypad - fix handling of platform_get_irq() error
+    - Input: omap4-keypad - fix handling of platform_get_irq() error
+    - Input: twl4030_keypad - fix handling of platform_get_irq() error
+    - Input: sun4i-ps2 - fix handling of platform_get_irq() error
+    - KVM: x86: emulating RDPID failure shall return #UD rather than #GP
+    - scsi: bfa: Fix error return in bfad_pci_init()
+    - netfilter: conntrack: connection timeout after re-register
+    - netfilter: ebtables: Fixes dropping of small packets in bridge nat
+    - netfilter: nf_fwd_netdev: clear timestamp in forwarding path
+    - arm64: dts: meson: vim3: correct led polarity
+    - ARM: dts: imx6sl: fix rng node
+    - ARM: at91: pm: of_node_put() after its usage
+    - ARM: s3c24xx: fix mmc gpio lookup tables
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
+    - arm64: dts: allwinner: h5: remove Mali GPU PMU module
+    - memory: omap-gpmc: Fix a couple off by ones
+    - memory: omap-gpmc: Fix build error without CONFIG_OF
+    - memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
+    - arm64: dts: imx8mq: Add missing interrupts to GPC
+    - arm64: dts: qcom: msm8916: Remove one more thermal trip point unit name
+    - arm64: dts: qcom: pm8916: Remove invalid reg size from wcd_codec
+    - arm64: dts: qcom: msm8916: Fix MDP/DSI interrupts
+    - arm64: dts: renesas: r8a77990: Fix MSIOF1 DMA channels
+    - arm64: dts: renesas: r8a774c0: Fix MSIOF1 DMA channels
+    - arm64: dts: actions: limit address range for pinctrl node
+    - ARM: dts: owl-s500: Fix incorrect PPI interrupt specifiers
+    - soc: fsl: qbman: Fix return value on success
+    - ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
+    - arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
+    - ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
+    - lightnvm: fix out-of-bounds write to array devices->info[]
+    - powerpc/powernv/dump: Fix race while processing OPAL dump
+    - powerpc/pseries: Avoid using addr_to_pfn in real mode
+    - nvmet: fix uninitialized work for zero kato
+    - NTB: hw: amd: fix an issue about leak system resources
+    - sched/features: Fix !CONFIG_JUMP_LABEL case
+    - perf: correct SNOOPX field offset
+    - i2c: core: Restore acpi_walk_dep_device_list() getting called after
+      registering the ACPI i2c devs
+    - md/bitmap: fix memory leak of temporary bitmap
+    - block: ratelimit handle_bad_sector() message
+    - crypto: ccp - fix error handling
+    - x86/asm: Replace __force_order with a memory clobber
+    - x86/mce: Add Skylake quirk for patrol scrub reported errors
+    - media: firewire: fix memory leak
+    - media: ati_remote: sanity check for both endpoints
+    - media: st-delta: Fix reference count leak in delta_run_work
+    - media: sti: Fix reference count leaks
+    - media: exynos4-is: Fix several reference count leaks due to
+      pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak
+    - media: vsp1: Fix runtime PM imbalance on error
+    - media: platform: s3c-camif: Fix runtime PM imbalance on error
+    - media: platform: sti: hva: Fix runtime PM imbalance on error
+    - media: bdisp: Fix runtime PM imbalance on error
+    - media: media/pci: prevent memory leak in bttv_probe
+    - x86/mce: Make mce_rdmsrl() panic on an inaccessible MSR
+    - media: uvcvideo: Ensure all probed info is returned to v4l2
+    - mmc: sdio: Check for CISTPL_VERS_1 buffer size
+    - media: saa7134: avoid a shift overflow
+    - media: venus: fixes for list corruption
+    - fs: dlm: fix configfs memory leak
+    - media: venus: core: Fix runtime PM imbalance in venus_probe
+    - ntfs: add check for mft record size in superblock
+    - ip_gre: set dev->hard_header_len and dev->needed_headroom properly
+    - mac80211: handle lack of sband->bitrates in rates
+    - PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
+    - scsi: mvumi: Fix error return in mvumi_io_attach()
+    - scsi: target: core: Add CONTROL field for trace events
+    - mic: vop: copy data to kernel space then write to io memory
+    - misc: vop: add round_up(x,4) for vring_size to avoid kernel panic
+    - usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc
+    - usb: gadget: function: printer: fix use-after-free in __lock_acquire
+    - udf: Limit sparing table size
+    - udf: Avoid accessing uninitialized data on failed inode read
+    - rtw88: increse the size of rx buffer size
+    - USB: cdc-acm: handle broken union descriptors
+    - usb: dwc3: simple: add support for Hikey 970
+    - can: flexcan: flexcan_chip_stop(): add error handling and propagate error
+      value
+    - ath9k: hif_usb: fix race condition between usb_get_urb() and
+      usb_kill_anchored_urbs()
+    - drm/panfrost: add amlogic reset quirk callback
+    - bpf: Limit caller's stack depth 256 for subprogs with tailcalls
+    - misc: rtsx: Fix memory leak in rtsx_pci_probe
+    - reiserfs: only call unlock_new_inode() if I_NEW
+    - opp: Prevent memory leak in dev_pm_opp_attach_genpd()
+    - xfs: make sure the rt allocator doesn't run off the end
+    - usb: ohci: Default to per-port over-current protection
+    - Bluetooth: Only mark socket zapped after unlocking
+    - drm/msm/a6xx: fix a potential overflow issue
+    - iomap: fix WARN_ON_ONCE() from unprivileged users
+    - scsi: ibmvfc: Fix error return in ibmvfc_probe()
+    - scsi: qla2xxx: Warn if done() or free() are called on an already freed srb
+    - selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
+    - brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
+    - rtl8xxxu: prevent potential memory leak
+    - Fix use after free in get_capset_info callback.
+    - HID: ite: Add USB id match for Acer One S1003 keyboard dock
+    - scsi: qedf: Return SUCCESS if stale rport is encountered
+    - scsi: qedi: Protect active command list to avoid list corruption
+    - scsi: qedi: Fix list_del corruption while removing active I/O
+    - fbmem: add margin check to fb_check_caps()
+    - tty: ipwireless: fix error handling
+    - Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb
+    - ipvs: Fix uninit-value in do_ip_vs_set_ctl()
+    - reiserfs: Fix memory leak in reiserfs_parse_options()
+    - mwifiex: don't call del_timer_sync() on uninitialized timer
+    - ALSA: hda/ca0132 - Add AE-7 microphone selection commands.
+    - ALSA: hda/ca0132 - Add new quirk ID for SoundBlaster AE-7.
+    - scsi: smartpqi: Avoid crashing kernel for controller issues
+    - brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
+    - usb: core: Solve race condition in anchor cleanup functions
+    - scsi: ufs: ufs-qcom: Fix race conditions caused by ufs_qcom_testbus_config()
+    - dmaengine: dw: Add DMA-channels mask cell support
+    - dmaengine: dw: Activate FIFO-mode for memory peripherals only
+    - ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
+    - net: korina: cast KSEG0 address to pointer in kfree
+    - s390/qeth: don't let HW override the configured port role
+    - tty: serial: lpuart: fix lpuart32_write usage
+    - tty: serial: fsl_lpuart: fix lpuart32_poll_get_char
+    - usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
+    - USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
+    - usb: cdns3: gadget: free interrupt after gadget has deleted
+    - eeprom: at25: set minimum read/write access stride to 1
+    - usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
+    - Linux 5.4.73
+  * Focal update: v5.4.72 upstream stable release (LP: #1902111)
+    - perf cs-etm: Move definition of 'traceid_list' global variable from header
+      file
+    - btrfs: don't pass system_chunk into can_overcommit
+    - btrfs: take overcommit into account in inc_block_group_ro
+    - ARM: 8939/1: kbuild: use correct nm executable
+    - ACPI: Always build evged in
+    - Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
+    - Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
+    - Bluetooth: Disconnect if E0 is used for Level 4
+    - media: usbtv: Fix refcounting mixup
+    - USB: serial: option: add Cellient MPL200 card
+    - USB: serial: option: Add Telit FT980-KS composition
+    - staging: comedi: check validity of wMaxPacketSize of usb endpoints found
+    - USB: serial: pl2303: add device-id for HP GC device
+    - USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
+    - reiserfs: Initialize inode keys properly
+    - reiserfs: Fix oops during mount
+    - xen/events: don't use chip_data for legacy IRQs
+    - crypto: bcm - Verify GCM/CCM key length in setkey
+    - crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
+    - Linux 5.4.72
+  * Focal update: v5.4.71 upstream stable release (LP: #1902110)
+    - fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
+    - Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
+    - fbcon: Fix global-out-of-bounds read in fbcon_get_font()
+    - Revert "ravb: Fixed to be able to unload modules"
+    - io_uring: Fix resource leaking when kill the process
+    - io_uring: Fix missing smp_mb() in io_cancel_async_work()
+    - io_uring: Fix remove irrelevant req from the task_list
+    - io_uring: Fix double list add in io_queue_async_work()
+    - net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
+    - drm/nouveau/mem: guard against NULL pointer access in mem_del
+    - vhost: Don't call access_ok() when using IOTLB
+    - vhost: Use vhost_get_used_size() in vhost_vring_set_addr()
+    - usermodehelper: reset umask to default before executing user process
+    - Platform: OLPC: Fix memleak in olpc_ec_probe
+    - platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP
+      Pavilion 11 x360
+    - platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
+    - bpf: Fix sysfs export of empty BTF section
+    - bpf: Prevent .BTF section elimination
+    - platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE
+      reporting
+    - platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse
+    - driver core: Fix probe_count imbalance in really_probe()
+    - perf test session topology: Fix data path
+    - perf top: Fix stdio interface input handling with glibc 2.28+
+    - i2c: i801: Exclude device from suspend direct complete optimization
+    - arm64: dts: stratix10: add status to qspi dts node
+    - Btrfs: send, allow clone operations within the same file
+    - Btrfs: send, fix emission of invalid clone operations within the same file
+    - btrfs: volumes: Use more straightforward way to calculate map length
+    - btrfs: Ensure we trim ranges across block group boundary
+    - btrfs: fix RWF_NOWAIT write not failling when we need to cow
+    - btrfs: allow btrfs_truncate_block() to fallback to nocow for data space
+      reservation
+    - nvme-core: put ctrl ref when module ref get fail
+    - macsec: avoid use-after-free in macsec_handle_frame()
+    - mm/khugepaged: fix filemap page_to_pgoff(page) != offset
+    - net: introduce helper sendpage_ok() in include/linux/net.h
+    - tcp: use sendpage_ok() to detect misused .sendpage
+    - nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
+    - xfrmi: drop ignore_df check before updating pmtu
+    - cifs: Fix incomplete memory allocation on setxattr path
+    - i2c: meson: fix clock setting overwrite
+    - i2c: meson: fixup rate calculation with filter delay
+    - i2c: owl: Clear NACK and BUS error bits
+    - sctp: fix sctp_auth_init_hmacs() error path
+    - team: set dev->needed_headroom in team_setup_by_port()
+    - net: team: fix memory leak in __team_options_register
+    - openvswitch: handle DNAT tuple collision
+    - drm/amdgpu: prevent double kfree ttm->sg
+    - iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
+    - xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
+    - xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
+    - xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
+    - xfrm: clone whole liftime_cur structure in xfrm_do_migrate
+    - net: stmmac: removed enabling eee in EEE set callback
+    - platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP
+    - xfrm: Use correct address family in xfrm_state_find
+    - iavf: use generic power management
+    - iavf: Fix incorrect adapter get in iavf_resume
+    - net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop
+    - bonding: set dev->needed_headroom in bond_setup_by_slave()
+    - mdio: fix mdio-thunder.c dependency & build error
+    - mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path
+    - r8169: fix RTL8168f/RTL8411 EPHY config
+    - net: usb: ax88179_178a: fix missing stop entry in driver_info
+    - virtio-net: don't disable guest csum when disable LRO
+    - net/mlx5: Avoid possible free of command entry while timeout comp handler
+    - net/mlx5: Fix request_irqs error flow
+    - net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU
+    - net/mlx5e: Fix VLAN cleanup flow
+    - net/mlx5e: Fix VLAN create flow
+    - rxrpc: Fix rxkad token xdr encoding
+    - rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
+    - rxrpc: Fix some missing _bh annotations on locking conn->state_lock
+    - rxrpc: The server keyring isn't network-namespaced
+    - rxrpc: Fix server keyring leak
+    - perf: Fix task_function_call() error handling
+    - mmc: core: don't set limits.discard_granularity as 0
+    - mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected
+      by khugepaged
+    - tcp: fix receive window update in tcp_add_backlog()
+    - net/core: check length before updating Ethertype in skb_mpls_{push,pop}
+    - net/tls: race causes kernel panic
+    - net/mlx5e: Fix driver's declaration to support GRE offload
+    - Input: ati_remote2 - add missing newlines when printing module parameters
+    - net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
+    - net_sched: defer tcf_idr_insert() in tcf_action_init_1()
+    - net_sched: commit action insertions together
+    - Linux 5.4.71
+  * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL:
+    can't add fou port 7777, skipping test" (LP: #1891421)
+    - selftests: rtnetlink: load fou module for kci_test_encap_fou() test
+  * alsa/hda/realtek - The front Mic on a HP machine doesn't work (LP: #1899508)
+    - ALSA: hda/realtek - The front Mic on a HP machine doesn't work
+  * Enable brightness control on HP DreamColor panel (LP: #1898865)
+    - drm/i915/dpcd_bl: Unbreak enable_dpcd_backlight modparam
+    - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD
+      quirk
+    - SAUCE: drm/dp: HP DreamColor panel brigntness fix
+  * Fix non-working Intel NVMe after S3 (LP: #1900847)
+    - SAUCE: PCI: Enable ACS quirk on all CML root ports
+  * bcache: Issues with large IO wait in bch_mca_scan() when shrinker is enabled
+    (LP: #1898786)
+    - bcache: remove member accessed from struct btree
+    - bcache: reap c->btree_cache_freeable from the tail in bch_mca_scan()
+    - bcache: reap from tail of c->btree_cache in bch_mca_scan()
+  * Improve descriptions for XFAIL cases in kselftests/net/psock_snd
+    (LP: #1900088)
+    - selftests/net: improve descriptions for XFAIL cases in psock_snd.sh
+  * ceph: fix inode number handling on arches with 32-bit ino_t (LP: #1899582)
+    - ceph: fix inode number handling on arches with 32-bit ino_t
+  * Fix system reboot when disconnecting WiFi (LP: #1899726)
+    - iwlwifi: msix: limit max RX queues for 9000 family
+  * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586)
+    - ALSA: hda: fix jack detection with Realtek codecs when in D3
+  * Focal update: v5.4.70 upstream stable release (LP: #1900632)
+    - btrfs: fix filesystem corruption after a device replace
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS
+      models
+    - USB: gadget: f_ncm: Fix NDP16 datagram validation
+    - gpio: siox: explicitly support only threaded irqs
+    - gpio: mockup: fix resource leak in error path
+    - gpio: tc35894: fix up tc35894 interrupt configuration
+    - clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
+    - vsock/virtio: add transport parameter to the
+      virtio_transport_reset_no_sock()
+    - net: virtio_vsock: Enhance connection semantics
+    - xfs: trim IO to found COW extent limit
+    - Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
+    - iio: adc: qcom-spmi-adc5: fix driver name
+    - ftrace: Move RCU is watching check after recursion check
+    - memstick: Skip allocating card when removing host
+    - drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
+    - clocksource/drivers/timer-gx6605s: Fixup counter reload
+    - libbpf: Remove arch-specific include path in Makefile
+    - drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
+    - drm/sun4i: mixer: Extend regmap max_register
+    - net: dec: de2104x: Increase receive ring size for Tulip
+    - rndis_host: increase sleep time in the query-response loop
+    - nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
+    - fuse: fix the ->direct_IO() treatment of iov_iter
+    - drivers/net/wan/lapbether: Make skb->protocol consistent with the header
+    - drivers/net/wan/hdlc: Set skb->protocol before transmitting
+    - mac80211: Fix radiotap header channel flag for 6GHz band
+    - mac80211: do not allow bigger VHT MPDUs than the hardware supports
+    - tracing: Make the space reserved for the pid wider
+    - tools/io_uring: fix compile breakage
+    - spi: fsl-espi: Only process interrupts for expected events
+    - nvme-pci: fix NULL req in completion handler
+    - nvme-fc: fail new connections to a deleted host or remote port
+    - gpio: sprd: Clear interrupt when setting the type as edge
+    - phy: ti: am654: Fix a leak in serdes_am654_probe()
+    - pinctrl: mvebu: Fix i2c sda definition for 98DX3236
+    - nfs: Fix security label length not being reset
+    - clk: tegra: Always program PLL_E when enabled
+    - clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
+    - iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
+    - gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
+    - gpio/aspeed-sgpio: don't enable all interrupts by default
+    - gpio: aspeed: fix ast2600 bank properties
+    - i2c: cpm: Fix i2c_ram structure
+    - Input: trackpoint - enable Synaptics trackpoints
+    - scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
+    - random32: Restore __latent_entropy attribute on net_rand_state
+    - block/diskstats: more accurate approximation of io_ticks for slow disks
+    - mm: replace memmap_context by meminit_context
+    - mm: don't rely on system state to detect hot-plug operations
+    - nvme: Cleanup and rename nvme_block_nr()
+    - nvme: Introduce nvme_lba_to_sect()
+    - nvme: consolidate chunk_sectors settings
+    - epoll: do not insert into poll queues until all sanity checks are done
+    - epoll: replace ->visited/visited_list with generation count
+    - epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
+    - ep_create_wakeup_source(): dentry name can change under you...
+    - netfilter: ctnetlink: add a range check for l3/l4 protonum
+    - Linux 5.4.70
+  * Focal update: v5.4.69 upstream stable release (LP: #1900624)
+    - kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
+    - selinux: allow labeling before policy is loaded
+    - media: mc-device.c: fix memleak in media_device_register_entity
+    - drm/amd/display: Do not double-buffer DTO adjustments
+    - drm/amdkfd: Fix race in gfx10 context restore handler
+    - dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
+    - scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
+    - ath10k: fix array out-of-bounds access
+    - ath10k: fix memory leak for tpc_stats_final
+    - PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
+    - mm: fix double page fault on arm64 if PTE_AF is cleared
+    - scsi: aacraid: fix illegal IO beyond last LBA
+    - m68k: q40: Fix info-leak in rtc_ioctl
+    - xfs: fix inode fork extent count overflow
+    - gma/gma500: fix a memory disclosure bug due to uninitialized bytes
+    - ASoC: kirkwood: fix IRQ error handling
+    - soundwire: intel/cadence: fix startup sequence
+    - media: smiapp: Fix error handling at NVM reading
+    - drm/amd/display: Free gamma after calculating legacy transfer function
+    - xfs: properly serialise fallocate against AIO+DIO
+    - leds: mlxreg: Fix possible buffer overflow
+    - dm table: do not allow request-based DM to stack on partitions
+    - PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
+    - scsi: fnic: fix use after free
+    - powerpc/64s: Always disable branch profiling for prom_init.o
+    - net: silence data-races on sk_backlog.tail
+    - dax: Fix alloc_dax_region() compile warning
+    - iomap: Fix overflow in iomap_page_mkwrite
+    - f2fs: avoid kernel panic on corruption test
+    - clk/ti/adpll: allocate room for terminating null
+    - drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
+    - ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
+    - mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of
+      cfi_amdstd_setup()
+    - mfd: mfd-core: Protect against NULL call-back function pointer
+    - drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
+    - tpm_crb: fix fTPM on AMD Zen+ CPUs
+    - tracing: Verify if trace array exists before destroying it.
+    - tracing: Adding NULL checks for trace_array descriptor pointer
+    - bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
+    - dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq
+      fails
+    - x86/kdump: Always reserve the low 1M when the crashkernel option is
+      specified
+    - RDMA/qedr: Fix potential use after free
+    - RDMA/i40iw: Fix potential use after free
+    - PCI: Avoid double hpmemsize MMIO window assignment
+    - fix dget_parent() fastpath race
+    - xfs: fix attr leaf header freemap.size underflow
+    - RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
+    - ubi: Fix producing anchor PEBs
+    - mmc: core: Fix size overflow for mmc partitions
+    - gfs2: clean up iopen glock mess in gfs2_create_inode
+    - scsi: pm80xx: Cleanup command when a reset times out
+    - mt76: do not use devm API for led classdev
+    - mt76: add missing locking around ampdu action
+    - debugfs: Fix !DEBUG_FS debugfs_create_automount
+    - SUNRPC: Capture completion of all RPC tasks
+    - CIFS: Use common error handling code in smb2_ioctl_query_info()
+    - CIFS: Properly process SMB3 lease breaks
+    - f2fs: stop GC when the victim becomes fully valid
+    - ASoC: max98090: remove msleep in PLL unlocked workaround
+    - xtensa: fix system_call interaction with ptrace
+    - s390: avoid misusing CALL_ON_STACK for task stack setup
+    - xfs: fix realtime file data space leak
+    - drm/amdgpu: fix calltrace during kmd unload(v3)
+    - arm64: insn: consistently handle exit text
+    - selftests/bpf: De-flake test_tcpbpf
+    - kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
+    - kernel/sys.c: avoid copying possible padding bytes in copy_to_user
+    - KVM: arm/arm64: vgic: Fix potential double free dist->spis in
+      __kvm_vgic_destroy()
+    - module: Remove accidental change of module_enable_x()
+    - xfs: fix log reservation overflows when allocating large rt extents
+    - ALSA: hda: enable regmap internal locking
+    - tipc: fix link overflow issue at socket shutdown
+    - vcc_seq_next should increase position index
+    - neigh_stat_seq_next() should increase position index
+    - rt_cpu_seq_next should increase position index
+    - ipv6_route_seq_next should increase position index
+    - drm/mcde: Handle pending vblank while disabling display
+    - seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
+    - drm/scheduler: Avoid accessing freed bad job.
+    - media: ti-vpe: cal: Restrict DMA to avoid memory corruption
+    - opp: Replace list_kref with a local counter
+    - scsi: qla2xxx: Fix stuck session in GNL
+    - sctp: move trace_sctp_probe_path into sctp_outq_sack
+    - ACPI: EC: Reference count query handlers under lock
+    - scsi: ufs: Make ufshcd_add_command_trace() easier to read
+    - scsi: ufs: Fix a race condition in the tracing code
+    - drm/amd/display: Initialize DSC PPS variables to 0
+    - i2c: tegra: Prevent interrupt triggering after transfer timeout
+    - btrfs: tree-checker: Check leaf chunk item size
+    - dmaengine: zynqmp_dma: fix burst length configuration
+    - s390/cpum_sf: Use kzalloc and minor changes
+    - nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
+    - powerpc/eeh: Only dump stack once if an MMIO loop is detected
+    - Bluetooth: btrtl: Use kvmalloc for FW allocations
+    - tracing: Set kernel_stack's caller size properly
+    - ARM: 8948/1: Prevent OOB access in stacktrace
+    - ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
+    - ceph: ensure we have a new cap before continuing in fill_inode
+    - selftests/ftrace: fix glob selftest
+    - tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
+    - Bluetooth: Fix refcount use-after-free issue
+    - mm/swapfile.c: swap_next should increase position index
+    - mm: pagewalk: fix termination condition in walk_pte_range()
+    - Bluetooth: prefetch channel before killing sock
+    - ALSA: hda: Clear RIRB status before reading WP
+    - skbuff: fix a data race in skb_queue_len()
+    - nfsd: Fix a perf warning
+    - drm/amd/display: fix workaround for incorrect double buffer register for DLG
+      ADL and TTU
+    - audit: CONFIG_CHANGE don't log internal bookkeeping as an event
+    - selinux: sel_avc_get_stat_idx should increase position index
+    - drm/omap: fix possible object reference leak
+    - locking/lockdep: Decrement IRQ context counters when removing lock chain
+    - clk: stratix10: use do_div() for 64-bit calculation
+    - crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi
+      test
+    - mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
+    - mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
+    - ALSA: usb-audio: Don't create a mixer element with bogus volume range
+    - perf test: Fix test trace+probe_vfs_getname.sh on s390
+    - RDMA/rxe: Fix configuration of atomic queue pair attributes
+    - KVM: x86: fix incorrect comparison in trace event
+    - KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
+    - dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
+    - media: staging/imx: Missing assignment in
+      imx_media_capture_device_register()
+    - x86/pkeys: Add check for pkey "overflow"
+    - bpf: Remove recursion prevention from rcu free callback
+    - dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
+    - dmaengine: tegra-apb: Prevent race conditions on channel's freeing
+    - soundwire: bus: disable pm_runtime in sdw_slave_delete
+    - drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
+    - drm/omap: dss: Cleanup DSS ports on initialisation failure
+    - iavf: use tc_cls_can_offload_and_chain0() instead of chain check
+    - firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
+    - random: fix data races at timer_rand_state
+    - bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host
+      removal
+    - ASoC: SOF: ipc: check ipc return value before data copy
+    - media: go7007: Fix URB type for interrupt handling
+    - Bluetooth: guard against controllers sending zero'd events
+    - timekeeping: Prevent 32bit truncation in scale64_check_overflow()
+    - powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
+    - drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
+    - ext4: fix a data race at inode->i_disksize
+    - perf jevents: Fix leak of mapfile memory
+    - mm: avoid data corruption on CoW fault into PFN-mapped VMA
+    - drm/amdgpu: increase atombios cmd timeout
+    - ARM: OMAP2+: Handle errors for cpu_pm
+    - clk: imx: Fix division by zero warning on pfdv2
+    - cpu-topology: Fix the potential data corruption
+    - s390/irq: replace setup_irq() by request_irq()
+    - perf cs-etm: Swap packets for instruction samples
+    - perf cs-etm: Correct synthesizing instruction samples
+    - ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
+    - scsi: aacraid: Disabling TM path and only processing IOP reset
+    - Bluetooth: L2CAP: handle l2cap config request during open state
+    - media: tda10071: fix unsigned sign extension overflow
+    - tty: sifive: Finish transmission before changing the clock
+    - xfs: don't ever return a stale pointer from __xfs_dir3_free_read
+    - xfs: mark dir corrupt when lookup-by-hash fails
+    - ext4: mark block bitmap corrupted when found instead of BUGON
+    - tpm: ibmvtpm: Wait for buffer to be set before proceeding
+    - rtc: sa1100: fix possible race condition
+    - rtc: ds1374: fix possible race condition
+    - nfsd: Don't add locks to closed or closing open stateids
+    - RDMA/cm: Remove a race freeing timewait_info
+    - intel_th: Disallow multi mode on devices where it's broken
+    - KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like
+      the valid ones
+    - drm/msm: fix leaks if initialization fails
+    - drm/msm/a5xx: Always set an OPP supported hardware value
+    - tracing: Use address-of operator on section symbols
+    - thermal: rcar_thermal: Handle probe error gracefully
+    - KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard
+      interrupt context
+    - perf parse-events: Fix 3 use after frees found with clang ASAN
+    - btrfs: do not init a reloc root if we aren't relocating
+    - btrfs: free the reloc_control in a consistent way
+    - r8169: improve RTL8168b FIFO overflow workaround
+    - serial: 8250_port: Don't service RX FIFO if throttled
+    - serial: 8250_omap: Fix sleeping function called from invalid context during
+      probe
+    - serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
+    - perf cpumap: Fix snprintf overflow check
+    - net: axienet: Convert DMA error handler to a work queue
+    - net: axienet: Propagate failure of DMA descriptor setup
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
+    - tools: gpio-hammer: Avoid potential overflow in main
+    - exec: Add exec_update_mutex to replace cred_guard_mutex
+    - exec: Fix a deadlock in strace
+    - selftests/ptrace: add test cases for dead-locks
+    - kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
+    - proc: Use new infrastructure to fix deadlocks in execve
+    - proc: io_accounting: Use new infrastructure to fix deadlocks in execve
+    - perf: Use new infrastructure to fix deadlocks in execve
+    - nvme-multipath: do not reset on unknown status
+    - nvme: Fix ctrl use-after-free during sysfs deletion
+    - nvme: Fix controller creation races with teardown flow
+    - brcmfmac: Fix double freeing in the fmac usb data path
+    - xfs: prohibit fs freezing when using empty transactions
+    - RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
+    - IB/iser: Always check sig MR before putting it to the free pool
+    - scsi: hpsa: correct race condition in offload enabled
+    - SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
+    - svcrdma: Fix leak of transport addresses
+    - netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
+    - PCI: Use ioremap(), not phys_to_virt() for platform ROM
+    - ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
+    - ubifs: ubifs_add_orphan: Fix a memory leak bug
+    - ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
+    - ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra
+      endpoint descriptor
+    - PCI: pciehp: Fix MSI interrupt race
+    - NFS: Fix races nfs_page_group_destroy() vs
+      nfs_destroy_unlinked_subrequests()
+    - drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
+    - powerpc/perf: Implement a global lock to avoid races between trace, core and
+      thread imc events.
+    - mm/kmemleak.c: use address-of operator on section symbols
+    - mm/filemap.c: clear page error before actual read
+    - mm/swapfile: fix data races in try_to_unuse()
+    - mm/vmscan.c: fix data races using kswapd_classzone_idx
+    - SUNRPC: Don't start a timer on an already queued rpc task
+    - nvmet-rdma: fix double free of rdma queue
+    - workqueue: Remove the warning in wq_worker_sleeping()
+    - drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
+    - mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
+    - ALSA: hda: Skip controller resume if not needed
+    - scsi: qedi: Fix termination timeouts in session logout
+    - serial: uartps: Wait for tx_empty in console setup
+    - btrfs: fix setting last_trans for reloc roots
+    - KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
+    - perf stat: Force error in fallback on :k events
+    - bdev: Reduce time holding bd_mutex in sync in blkdev_close()
+    - drivers: char: tlclk.c: Avoid data race between init and interrupt handler
+    - KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
+    - KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
+    - net: openvswitch: use u64 for meter bucket
+    - scsi: aacraid: Fix error handling paths in aac_probe_one()
+    - staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
+    - sparc64: vcc: Fix error return code in vcc_probe()
+    - arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
+    - sched/fair: Eliminate bandwidth race between throttling and distribution
+    - dpaa2-eth: fix error return code in setup_dpni()
+    - dt-bindings: sound: wm8994: Correct required supplies based on actual
+      implementaion
+    - devlink: Fix reporter's recovery condition
+    - atm: fix a memory leak of vcc->user_back
+    - media: venus: vdec: Init registered list unconditionally
+    - perf mem2node: Avoid double free related to realloc
+    - mm/slub: fix incorrect interpretation of s->offset
+    - i2c: tegra: Restore pinmux on system resume
+    - power: supply: max17040: Correct voltage reading
+    - phy: samsung: s5pv210-usb2: Add delay after reset
+    - Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
+    - USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
+    - KVM: x86: handle wrap around 32-bit address space
+    - tipc: fix memory leak in service subscripting
+    - tty: serial: samsung: Correct clock selection logic
+    - ALSA: hda: Fix potential race in unsol event handler
+    - drm/exynos: dsi: Remove bridge node reference in error handling path in
+      probe function
+    - ipmi:bt-bmc: Fix error handling and status check
+    - powerpc/traps: Make unrecoverable NMIs die instead of panic
+    - svcrdma: Fix backchannel return code
+    - fuse: don't check refcount after stealing page
+    - fuse: update attr_version counter on fuse_notify_inval_inode()
+    - USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
+    - coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
+    - arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
+    - scsi: cxlflash: Fix error return code in cxlflash_probe()
+    - arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
+    - drm/amdkfd: fix restore worker race condition
+    - e1000: Do not perform reset in reset_task if we are already down
+    - drm/nouveau/debugfs: fix runtime pm imbalance on error
+    - drm/nouveau: fix runtime pm imbalance on error
+    - drm/nouveau/dispnv50: fix runtime pm imbalance on error
+    - printk: handle blank console arguments passed in.
+    - usb: dwc3: Increase timeout for CmdAct cleared by device controller
+    - btrfs: don't force read-only after error in drop snapshot
+    - btrfs: fix double __endio_write_update_ordered in direct I/O
+    - gpio: rcar: Fix runtime PM imbalance on error
+    - vfio/pci: fix memory leaks of eventfd ctx
+    - KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
+    - perf evsel: Fix 2 memory leaks
+    - perf trace: Fix the selection for architectures to generate the errno name
+      tables
+    - perf stat: Fix duration_time value for higher intervals
+    - perf util: Fix memory leak of prefix_if_not_in
+    - perf metricgroup: Free metric_events on error
+    - perf kcore_copy: Fix module map when there are no modules loaded
+    - PCI: tegra194: Fix runtime PM imbalance on error
+    - ASoC: img-i2s-out: Fix runtime PM imbalance on error
+    - wlcore: fix runtime pm imbalance in wl1271_tx_work
+    - wlcore: fix runtime pm imbalance in wlcore_regdomain_config
+    - mtd: rawnand: gpmi: Fix runtime PM imbalance on error
+    - mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
+    - PCI: tegra: Fix runtime PM imbalance on error
+    - ceph: fix potential race in ceph_check_caps
+    - mm/swap_state: fix a data race in swapin_nr_pages
+    - mm: memcontrol: fix stat-corrupting race in charge moving
+    - rapidio: avoid data race between file operation callbacks and
+      mport_cdev_add().
+    - mtd: parser: cmdline: Support MTD names containing one or more colons
+    - x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
+    - NFS: nfs_xdr_status should record the procedure name
+    - vfio/pci: Clear error and request eventfd ctx after releasing
+    - cifs: Fix double add page to memcg when cifs_readpages
+    - nvme: fix possible deadlock when I/O is blocked
+    - mac80211: skip mpath lookup also for control port tx
+    - scsi: libfc: Handling of extra kref
+    - scsi: libfc: Skip additional kref updating work event
+    - selftests/x86/syscall_nt: Clear weird flags after each test
+    - vfio/pci: fix racy on error and request eventfd ctx
+    - btrfs: qgroup: fix data leak caused by race between writeback and truncate
+    - perf tests: Fix test 68 zstd compression for s390
+    - scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
+    - ubi: fastmap: Free unused fastmap anchor peb during detach
+    - mt76: fix LED link time failure
+    - opp: Increase parsed_static_opps in _of_add_opp_table_v1()
+    - perf parse-events: Use strcmp() to compare the PMU name
+    - ALSA: hda: Always use jackpoll helper for jack update after resume
+    - ALSA: hda: Workaround for spurious wakeups on some Intel platforms
+    - net: openvswitch: use div_u64() for 64-by-32 divisions
+    - nvme: explicitly update mpath disk capacity on revalidation
+    - device_cgroup: Fix RCU list debugging warning
+    - ASoC: pcm3168a: ignore 0 Hz settings
+    - ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
+    - ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
+    - RISC-V: Take text_mutex in ftrace_init_nop()
+    - i2c: aspeed: Mask IRQ status to relevant bits
+    - s390/init: add missing __init annotations
+    - lockdep: fix order in trace_hardirqs_off_caller()
+    - EDAC/ghes: Check whether the driver is on the safe list correctly
+    - drm/amdkfd: fix a memory leak issue
+    - drm/amd/display: update nv1x stutter latencies
+    - drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
+    - objtool: Fix noreturn detection for ignored functions
+    - ieee802154: fix one possible memleak in ca8210_dev_com_init
+    - ieee802154/adf7242: check status of adf7242_read_reg
+    - clocksource/drivers/h8300_timer8: Fix wrong return value in
+      h8300_8timer_init()
+    - batman-adv: bla: fix type misuse for backbone_gw hash indexing
+    - atm: eni: fix the missed pci_disable_device() for eni_init_one()
+    - batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
+    - netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
+    - mac802154: tx: fix use-after-free
+    - bpf: Fix clobbering of r2 in bpf_gen_ld_abs
+    - drm/vc4/vc4_hdmi: fill ASoC card owner
+    - net: qed: Disable aRFS for NPAR and 100G
+    - net: qede: Disable aRFS for NPAR and 100G
+    - net: qed: RDMA personality shouldn't fail VF load
+    - drm/sun4i: sun8i-csc: Secondary CSC register correction
+    - batman-adv: Add missing include for in_interrupt()
+    - nvme-tcp: fix kconfig dependency warning when !CRYPTO
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
+    - batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
+    - bpf: Fix a rcu warning for bpffs map pretty-print
+    - lib80211: fix unmet direct dependendices config warning when !CRYPTO
+    - ALSA: asihpi: fix iounmap in error handler
+    - regmap: fix page selection for noinc reads
+    - regmap: fix page selection for noinc writes
+    - MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
+    - regulator: axp20x: fix LDO2/4 description
+    - KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
+    - KVM: SVM: Add a dedicated INVD intercept routine
+    - mm: validate pmd after splitting
+    - arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
+    - x86/ioapic: Unbreak check_timer()
+    - scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
+    - ALSA: usb-audio: Add delay quirk for H570e USB headsets
+    - ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
+    - ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation
+      P520
+    - lib/string.c: implement stpcpy
+    - tracing: fix double free
+    - s390/dasd: Fix zero write for FBA devices
+    - kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
+    - kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
+    - btrfs: fix overflow when copying corrupt csums for a message
+    - dmabuf: fix NULL pointer dereference in dma_buf_release()
+    - mm, THP, swap: fix allocating cluster for swapfile by mistake
+    - mm/gup: fix gup_fast with dynamic page table folding
+    - s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
+    - KVM: arm64: Assume write fault on S1PTW permission fault on instruction
+      fetch
+    - dm: fix bio splitting and its bio completion order for regular IO
+    - ata: define AC_ERR_OK
+    - ata: make qc_prep return ata_completion_errors
+    - ata: sata_mv, avoid trigerrable BUG_ON
+    - Linux 5.4.69
+  * Focal update: v5.4.68 upstream stable release (LP: #1899511)
+    - af_key: pfkey_dump needs parameter validation
+    - ibmvnic fix NULL tx_pools and rx_tools issue at do_reset
+    - ibmvnic: add missing parenthesis in do_reset()
+    - kprobes: fix kill kprobe which has been marked as gone
+    - mm/thp: fix __split_huge_pmd_locked() for migration PMD
+    - act_ife: load meta modules before tcf_idr_check_alloc()
+    - bnxt_en: Avoid sending firmware messages when AER error is detected.
+    - bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()
+    - cxgb4: fix memory leak during module unload
+    - cxgb4: Fix offset when clearing filter byte counters
+    - geneve: add transport ports in route lookup for geneve
+    - hdlc_ppp: add range checks in ppp_cp_parse_cr()
+    - ip: fix tos reflection in ack and reset packets
+    - ipv4: Initialize flowi4_multipath_hash in data path
+    - ipv4: Update exception handling for multipath routes via same device
+    - ipv6: avoid lockdep issue in fib6_del()
+    - net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under
+      RCU
+    - net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
+    - net: dsa: rtl8366: Properly clear member config
+    - net: Fix bridge enslavement failure
+    - net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
+    - net/mlx5: Fix FTE cleanup
+    - net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc
+    - net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant
+    - nfp: use correct define to return NONE fec
+    - taprio: Fix allowing too small intervals
+    - tipc: Fix memory leak in tipc_group_create_member()
+    - tipc: fix shutdown() of connection oriented socket
+    - tipc: use skb_unshare() instead in tipc_buf_append()
+    - net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
+    - net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
+    - bnxt_en: return proper error codes in bnxt_show_temp
+    - bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
+    - net: lantiq: Wake TX queue again
+    - net: lantiq: use netif_tx_napi_add() for TX NAPI
+    - net: lantiq: Use napi_complete_done()
+    - net: lantiq: Disable IRQs only if NAPI gets scheduled
+    - net: phy: Avoid NPD upon phy_detach() when driver is unbound
+    - net: phy: Do not warn in phy_stop() on PHY_DOWN
+    - net: qrtr: check skb_put_padto() return value
+    - net: add __must_check to skb_put_padto()
+    - mm: memcg: fix memcg reclaim soft lockup
+    - iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
+    - Linux 5.4.68
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+  * tc/ebpf: unable to use BPF_FUNC_skb_change_head (LP: #1896504)
+    - net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
+  * HP Zbook Studio G7 boots into corrupted screen with PSR featured panel
+    (LP: #1897501)
+    - SAUCE: drm/i915/psr: allow overriding PSR disable param by quirk
+    - SAUCE: drm/dp: add DP_QUIRK_FORCE_PSR_CHIP_DEFAULT quirk to CMN prod-ID
+      19-15
+  * Fix broken e1000e device after S3 (LP: #1897755)
+    - SAUCE: e1000e: Increase polling timeout on MDIC ready bit
+  * debian/rules editconfigs does not work on s390x to change s390x only configs
+    (LP: #1863116)
+    - [Packaging] kernelconfig -- only update/edit configurations on architectures
+      we have compiler support
+  * acpi event detection crashes (LP: #1896482)
+    - ACPI: EC: tweak naming in preparation for GpioInt support
+    - ACPI: EC: add support for hardware-reduced systems
+    - ACPI: EC: Avoid passing redundant argument to functions
+    - ACPI: EC: Consolidate event handler installation code
+  * mwifiex stops working after kernel upgrade (LP: #1897299)
+    - mwifiex: Increase AES key storage size to 256 bits
+  * Remove NVMe suspend-to-idle workaround (LP: #1897227)
+    - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3"
+    - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3"
+  * Request for CIFS patches to be available in 5.4 kernel (LP: #1896642)
+    - smb3: remove unused flag passed into close functions
+    - smb3: query attributes on file close
+  * Lenovo ThinkBook 14-IML Touchpad not showing up in /proc/bus/input/devices
+    (LP: #1853277)
+    - i2c: core: Call i2c_acpi_install_space_handler() before
+      i2c_acpi_register_devices()
+  * [Ubuntu 20.10] zPCI DMA tables and bitmap leak on hard unplug (PCI Event
+    0x0304) (LP: #1896216)
+    - s390/pci: fix leak of DMA tables on hard unplug
+  * Thunderbolt3 daisy chain sometimes doesn't work (LP: #1895606)
+    - thunderbolt: Retry DROM read once if parsing fails
+  * btrfs: trimming a btrfs device which has been shrunk previously fails and
+    fills root disk with garbage data (LP: #1896154)
+    - btrfs: trim: fix underflow in trim length to prevent access beyond device
+      boundary
+  * EFA: add support for 0xefa1 devices (LP: #1896791)
+    - RDMA/efa: Expose maximum TX doorbell batch
+    - RDMA/efa: Expose minimum SQ size
+    - RDMA/efa: User/kernel compatibility handshake mechanism
+    - RDMA/efa: Add EFA 0xefa1 PCI ID
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828)
+    - gfs2: initialize transaction tr_ailX_lists earlier
+    - RDMA/bnxt_re: Restrict the max_gids to 256
+    - dsa: Allow forwarding of redirected IGMP traffic
+    - net: handle the return value of pskb_carve_frag_list() correctly
+    - hv_netvsc: Remove "unlikely" from netvsc_select_queue
+    - firmware_loader: fix memory leak for paged buffer
+    - NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
+    - scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
+    - scsi: libfc: Fix for double free()
+    - scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
+    - regulator: pwm: Fix machine constraints application
+    - spi: spi-loopback-test: Fix out-of-bounds read
+    - NFS: Zero-stateid SETATTR should first return delegation
+    - SUNRPC: stop printk reading past end of string
+    - rapidio: Replace 'select' DMAENGINES 'with depends on'
+    - cifs: fix DFS mount with cifsacl/modefromsid
+    - openrisc: Fix cache API compile issue when not inlining
+    - nvme-fc: cancel async events before freeing event struct
+    - nvme-rdma: cancel async events before freeing event struct
+    - nvme-tcp: cancel async events before freeing event struct
+    - block: only call sched requeue_request() for scheduled requests
+    - f2fs: fix indefinite loop scanning for free nid
+    - f2fs: Return EOF on unaligned end of file DIO read
+    - i2c: algo: pca: Reapply i2c bus settings after reset
+    - spi: Fix memory leak on splited transfers
+    - KVM: MIPS: Change the definition of kvm type
+    - clk: davinci: Use the correct size when allocating memory
+    - clk: rockchip: Fix initialization of mux_pll_src_4plls_p
+    - ASoC: qcom: Set card->owner to avoid warnings
+    - ASoC: qcom: common: Fix refcount imbalance on error
+    - powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
+    - ASoC: meson: axg-toddr: fix channel order on g12 platforms
+    - Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
+    - scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
+    - arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
+    - Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
+    - perf test: Fix the "signal" test inline assembly
+    - MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
+    - perf evlist: Fix cpu/thread map leak
+    - perf parse-event: Fix memory leak in evsel->unit
+    - perf test: Free formats for perf pmu parse test
+    - fbcon: Fix user font detection test at fbcon_resize().
+    - MIPS: SNI: Fix spurious interrupts
+    - drm/mediatek: Add exception handing in mtk_drm_probe() if component init
+      fail
+    - drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
+    - arm64: bpf: Fix branch offset in JIT
+    - iommu/amd: Fix potential @entry null deref
+    - i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
+    - riscv: Add sfence.vma after early page table changes
+    - drm/i915: Filter wake_flags passed to default_wake_function
+    - USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin
+      notebook
+    - USB: UAS: fix disconnect by unplugging a hub
+    - usblp: fix race between disconnect() and read()
+    - i2c: i801: Fix resume bug
+    - Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI
+      X570-A PRO"
+    - ALSA: hda: fixup headset for ASUS GX502 laptop
+    - ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
+    - percpu: fix first chunk size calculation for populated bitmap
+    - Input: trackpoint - add new trackpoint variant IDs
+    - Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
+    - serial: 8250_pci: Add Realtek 816a and 816b
+    - x86/boot/compressed: Disable relocation relaxation
+    - s390/zcrypt: fix kmalloc 256k failure
+    - ehci-hcd: Move include to keep CRC stable
+    - powerpc/dma: Fix dma_map_ops::get_required_mask
+    - selftests/vm: fix display of page size in map_hugetlb
+    - dm/dax: Fix table reference counts
+    - mm/memory_hotplug: drain per-cpu pages again during memory offline
+    - dm: Call proper helper to determine dax support
+    - dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
+    - Linux 5.4.67
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828) // Cherry Pick
+    needed for Critical upstream patch for Kernel null pointer dereference -
+    usb-c altmode (LP: #1897963)
+    - usb: typec: ucsi: Prevent mode overrun
+  * Focal update: v5.4.66 upstream stable release (LP: #1896824)
+    - ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix missing video
+    - regulator: push allocation in regulator_ena_gpio_request() out of lock
+    - regulator: remove superfluous lock in regulator_resolve_coupling()
+    - ARM: dts: socfpga: fix register entry for timer3 on Arria10
+    - ARM: dts: ls1021a: fix QuadSPI-memory reg range
+    - ARM: dts: imx7ulp: Correct gpio ranges
+    - RDMA/rxe: Fix memleak in rxe_mem_init_user
+    - RDMA/rxe: Drop pointless checks in rxe_init_ports
+    - RDMA/rxe: Fix panic when calling kmem_cache_create()
+    - RDMA/bnxt_re: Do not report transparent vlan from QP1
+    - drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
+    - arm64: dts: imx8mq: Fix TMU interrupt property
+    - drm/sun4i: Fix dsi dcs long write function
+    - iio: adc: mcp3422: fix locking on error path
+    - iio: adc: mcp3422: fix locking scope
+    - scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
+    - RDMA/core: Fix reported speed and width
+    - scsi: megaraid_sas: Don't call disable_irq from process IRQ poll
+    - scsi: mpt3sas: Don't call disable_irq from IRQ poll handler
+    - soundwire: fix double free of dangling pointer
+    - drm/sun4i: backend: Support alpha property on lowest plane
+    - drm/sun4i: backend: Disable alpha on the lowest plane on the A20
+    - mmc: sdhci-acpi: Clear amd_sdhci_host on reset
+    - mmc: sdhci-msm: Add retries when all tuning phases are found valid
+    - spi: stm32: Rate-limit the 'Communication suspended' message
+    - nvme-fabrics: allow to queue requests for live queues
+    - spi: stm32: fix pm_runtime_get_sync() error checking
+    - block: Set same_page to false in __bio_try_merge_page if ret is false
+    - IB/isert: Fix unaligned immediate-data handling
+    - ARM: dts: bcm: HR2: Fixed QSPI compatible string
+    - ARM: dts: NSP: Fixed QSPI compatible string
+    - ARM: dts: BCM5301X: Fixed QSPI compatible string
+    - arm64: dts: ns2: Fixed QSPI compatible string
+    - ARC: HSDK: wireup perf irq
+    - dmaengine: acpi: Put the CSRT table after using it
+    - netfilter: conntrack: allow sctp hearbeat after connection re-use
+    - drivers/net/wan/lapbether: Added needed_tailroom
+    - NFC: st95hf: Fix memleak in st95hf_in_send_cmd
+    - firestream: Fix memleak in fs_open
+    - ALSA: hda: Fix 2 channel swapping for Tegra
+    - ALSA: hda/tegra: Program WAKEEN register for Tegra
+    - drivers/dma/dma-jz4780: Fix race condition between probe and irq handler
+    - net: hns3: Fix for geneve tx checksum bug
+    - xfs: fix off-by-one in inode alloc block reservation calculation
+    - drivers/net/wan/lapbether: Set network_header before transmitting
+    - cfg80211: Adjust 6 GHz frequency to channel conversion
+    - xfs: initialize the shortform attr header padding entry
+    - irqchip/eznps: Fix build error for !ARC700 builds
+    - nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu
+    - nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
+    - nvme: have nvme_wait_freeze_timeout return if it timed out
+    - nvme-tcp: serialize controller teardown sequences
+    - nvme-tcp: fix timeout handler
+    - nvme-tcp: fix reset hang if controller died in the middle of a reset
+    - nvme-rdma: serialize controller teardown sequences
+    - nvme-rdma: fix timeout handler
+    - nvme-rdma: fix reset hang if controller died in the middle of a reset
+    - nvme-pci: cancel nvme device request before disabling
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
+    - HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller
+    - drivers/net/wan/hdlc_cisco: Add hard_header_len
+    - HID: elan: Fix memleak in elan_input_configured
+    - ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
+    - cpufreq: intel_pstate: Refuse to turn off with HWP enabled
+    - cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled
+    - arm64/module: set trampoline section flags regardless of
+      CONFIG_DYNAMIC_FTRACE
+    - ALSA: hda: hdmi - add Rocketlake support
+    - ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
+    - drm/amdgpu: Fix bug in reporting voltage for CIK
+    - iommu/amd: Do not use IOMMUv2 functionality when SME is active
+    - gcov: Disable gcov build with GCC 10
+    - iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
+    - iio: cros_ec: Set Gyroscope default frequency to 25Hz
+    - iio:light:ltr501 Fix timestamp alignment issue.
+    - iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
+    - iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
+    - iio:adc:ti-adc084s021 Fix alignment and data leak issues.
+    - iio:adc:ina2xx Fix timestamp alignment issue.
+    - iio:adc:max1118 Fix alignment of timestamp and data leak issues
+    - iio:adc:ti-adc081c Fix alignment and data leak issues
+    - iio:magnetometer:ak8975 Fix alignment and data leak issues.
+    - iio:light:max44000 Fix timestamp alignment and prevent data leak.
+    - iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
+    - iio: accel: kxsd9: Fix alignment of local buffer.
+    - iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
+    - iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
+    - staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
+    - btrfs: require only sector size alignment for parent eb bytenr
+    - btrfs: fix lockdep splat in add_missing_dev
+    - btrfs: fix wrong address when faulting in pages in the search ioctl
+    - kobject: Restore old behaviour of kobject_del(NULL)
+    - regulator: push allocation in regulator_init_coupling() outside of lock
+    - regulator: push allocations in create_regulator() outside of lock
+    - regulator: push allocation in set_consumer_device_supply() out of lock
+    - regulator: plug of_node leak in regulator_register()'s error path
+    - regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
+    - scsi: target: iscsi: Fix data digest calculation
+    - scsi: target: iscsi: Fix hang in iscsit_access_np() when getting
+      tpg->np_login_sem
+    - drm/i915/gvt: do not check len & max_len for lri
+    - drm/tve200: Stabilize enable/disable
+    - drm/msm: Disable preemption on all 5xx targets
+    - mmc: sdio: Use mmc_pre_req() / mmc_post_req()
+    - mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
+    - rbd: require global CAP_SYS_ADMIN for mapping and unmapping
+    - RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
+    - RDMA/mlx4: Read pkey table length instead of hardcoded value
+    - fbcon: remove soft scrollback code
+    - fbcon: remove now unusued 'softback_lines' cursor() argument
+    - vgacon: remove software scrollback support
+    - [Config] updateconfigs for VGACON_SOFT_SCROLLBACK
+    - KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
+    - KVM: arm64: Do not try to map PUDs when they are folded into PMD
+    - KVM: fix memory leak in kvm_io_bus_unregister_dev()
+    - debugfs: Fix module state check condition
+    - ARM: dts: vfxxx: Add syscon compatible with OCOTP
+    - video: fbdev: fix OOB read in vga_8planes_imageblit()
+    - staging: greybus: audio: fix uninitialized value issue
+    - phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
+    - usb: core: fix slab-out-of-bounds Read in read_descriptors
+    - USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
+    - USB: serial: option: support dynamic Quectel USB compositions
+    - USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
+    - usb: Fix out of sync data toggle if a configured device is reconfigured
+    - usb: typec: ucsi: acpi: Check the _DEP dependencies
+    - drm/msm/gpu: make ringbuffer readonly
+    - drm/msm: Disable the RPTR shadow
+    - gcov: add support for GCC 10.1
+    - Linux 5.4.66
+
+  [ Ubuntu: 5.4.0-54.60~18.04.1 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * Introduce the new NVIDIA 455 series (LP: #1902093)
+    - [Packaging] NVIDIA -- Add the NVIDIA 455 driver
+
+ -- Ian May <ian.may@canonical.com>  Mon, 16 Nov 2020 15:30:46 -0600
+
+linux-gkeop-5.4 (5.4.0-1004.5) bionic; urgency=medium
+
+  * CVE-2020-12351 // CVE-2020-12352 // CVE-2020-24490
+    - [Config] Disable BlueZ highspeed support
+
+  [ Ubuntu: 5.4.0-53.59~18.04.1 ]
+
+  * CVE-2020-8694
+    - powercap: make attributes only readable by root
+
+  [ Ubuntu: 5.4.0-52.57~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-52.57~18.04.1 -proposed tracker (LP: #1899942)
+  * focal/linux: 5.4.0-52.57 -proposed tracker (LP: #1899920)
+  * CVE-2020-12351 // CVE-2020-12352 // CVE-2020-24490
+    - Bluetooth: Disable High Speed by default
+    - Bluetooth: MGMT: Fix not checking if BT_HS is enabled
+    - [Config] Disable BlueZ highspeed support
+  * CVE-2020-12351
+    - Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
+  * CVE-2020-12352
+    - Bluetooth: A2MP: Fix not initializing all members
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Wed, 21 Oct 2020 21:32:51 -0300
+
+linux-gkeop-5.4 (5.4.0-1003.3) bionic; urgency=medium
+
+  [ Ubuntu: 5.4.0-51.56~18.04.1 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  [ Ubuntu: 5.4.0-50.55~18.04.1 ]
+
+  * CVE-2020-16119
+    - SAUCE: dccp: avoid double free of ccid on child socket
+  * CVE-2020-16120
+    - Revert "UBUNTU: SAUCE: overlayfs: ensure mounter privileges when reading
+      directories"
+    - ovl: pass correct flags for opening real directory
+    - ovl: switch to mounter creds in readdir
+    - ovl: verify permissions in ovl_path_open()
+    - ovl: call secutiry hook in ovl_real_ioctl()
+    - ovl: check permission to open real file
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 07 Oct 2020 14:57:12 +0200
+
+linux-gkeop-5.4 (5.4.0-1002.2) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1002.2 -proposed tracker (LP: #1896005)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+
+  * Focal update: v5.4.61 upstream stable release (LP: #1893115)
+    - [Config] update config for SPI_DYNAMIC
+
+  [ Ubuntu: 5.4.0-49.53~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-49.53~18.04.1 -proposed tracker (LP: #1896006)
+  * focal/linux: 5.4.0-49.53 -proposed tracker (LP: #1896007)
+  * Comet Lake PCH-H RAID not support on Ubuntu20.04 (LP: #1892288)
+    - ahci: Add Intel Comet Lake PCH-H PCI ID
+  * Novalink (mkvterm command failure) (LP: #1892546)
+    - tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
+  * Oops and hang when starting LVM snapshots on 5.4.0-47 (LP: #1894780)
+    - SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root kmem_cache
+      destroy"
+  * Intel x710 LOMs do not work on Focal (LP: #1893956)
+    - i40e: Fix LED blinking flow for X710T*L devices
+    - i40e: enable X710 support
+  * Add/Backport EPYC-v3 and EPYC-Rome CPU model (LP: #1887490)
+    - kvm: svm: Update svm_xsaves_supported
+  * Fix non-working NVMe after S3 (LP: #1895718)
+    - SAUCE: PCI: Enable ACS quirk on CML root port
+  * Focal update: v5.4.65 upstream stable release (LP: #1895881)
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: Fix sysctl max for fib_multipath_hash_policy
+    - netlabel: fix problems with mapping removal
+    - net: usb: dm9601: Add USB ID of Keenetic Plus DSL
+    - sctp: not disable bh in the whole sctp_get_port_local()
+    - taprio: Fix using wrong queues in gate mask
+    - tipc: fix shutdown() of connectionless socket
+    - net: disable netpoll on fresh napis
+    - Linux 5.4.65
+  * Focal update: v5.4.64 upstream stable release (LP: #1895880)
+    - HID: quirks: Always poll three more Lenovo PixArt mice
+    - drm/msm/dpu: Fix scale params in plane validation
+    - tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
+    - drm/msm: add shutdown support for display platform_driver
+    - hwmon: (applesmc) check status earlier.
+    - nvmet: Disable keep-alive timer when kato is cleared to 0h
+    - drm/msm: enable vblank during atomic commits
+    - habanalabs: validate FW file size
+    - habanalabs: check correct vmalloc return code
+    - drm/msm/a6xx: fix gmu start on newer firmware
+    - ceph: don't allow setlease on cephfs
+    - drm/omap: fix incorrect lock state
+    - cpuidle: Fixup IRQ state
+    - nbd: restore default timeout when setting it to zero
+    - s390: don't trace preemption in percpu macros
+    - drm/amd/display: Reject overlay plane configurations in multi-display
+      scenarios
+    - drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in
+      amdgpu_dm_update_backlight_caps
+    - drm/amd/display: Retry AUX write when fail occurs
+    - drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
+    - xen/xenbus: Fix granting of vmalloc'd memory
+    - fsldma: fix very broken 32-bit ppc ioread64 functionality
+    - dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
+    - batman-adv: Avoid uninitialized chaddr when handling DHCP
+    - batman-adv: Fix own OGM check in aggregated OGMs
+    - batman-adv: bla: use netif_rx_ni when not in interrupt context
+    - dmaengine: at_hdmac: check return value of of_find_device_by_node() in
+      at_dma_xlate()
+    - rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
+    - rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
+    - MIPS: mm: BMIPS5000 has inclusive physical caches
+    - MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
+    - mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
+    - netfilter: nf_tables: add NFTA_SET_USERDATA if not null
+    - netfilter: nf_tables: incorrect enum nft_list_attributes definition
+    - netfilter: nf_tables: fix destination register zeroing
+    - net: hns: Fix memleak in hns_nic_dev_probe
+    - net: systemport: Fix memleak in bcm_sysport_probe
+    - ravb: Fixed to be able to unload modules
+    - net: arc_emac: Fix memleak in arc_mdio_probe
+    - dmaengine: pl330: Fix burst length if burst size is smaller than bus width
+    - gtp: add GTPA_LINK info to msg sent to userspace
+    - net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
+    - bnxt_en: Don't query FW when netif_running() is false.
+    - bnxt_en: Check for zero dir entries in NVRAM.
+    - bnxt_en: Fix PCI AER error recovery flow
+    - bnxt_en: Fix possible crash in bnxt_fw_reset_task().
+    - bnxt_en: fix HWRM error when querying VF temperature
+    - xfs: fix boundary test in xfs_attr_shortform_verify
+    - bnxt: don't enable NAPI until rings are ready
+    - media: vicodec: add missing v4l2_ctrl_request_hdl_put()
+    - media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
+    - selftests/bpf: Fix massive output from test_maps
+    - net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
+    - netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
+    - nvmet-fc: Fix a missed _irqsave version of spin_lock in
+      'nvmet_fc_fod_op_done()'
+    - nvme: fix controller instance leak
+    - cxgb4: fix thermal zone device registration
+    - perf tools: Correct SNOOPX field offset
+    - net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
+    - fix regression in "epoll: Keep a reference on files added to the check list"
+    - net: gemini: Fix another missing clk_disable_unprepare() in probe
+    - MIPS: add missing MSACSR and upper MSA initialization
+    - xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
+    - perf jevents: Fix suspicious code in fixregex()
+    - tg3: Fix soft lockup when tg3_reset_task() fails.
+    - x86, fakenuma: Fix invalid starting node ID
+    - iommu/vt-d: Serialize IOMMU GCMD register modifications
+    - thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
+    - thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
+    - iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
+    - include/linux/log2.h: add missing () around n in roundup_pow_of_two()
+    - iommu/vt-d: Handle 36bit addressing for x86-32
+    - tracing/kprobes, x86/ptrace: Fix regs argument order for i386
+    - ext2: don't update mtime on COW faults
+    - xfs: don't update mtime on COW faults
+    - ARC: perf: don't bail setup if pct irq missing in device-tree
+    - btrfs: drop path before adding new uuid tree entry
+    - btrfs: allocate scrub workqueues outside of locks
+    - btrfs: set the correct lockdep class for new nodes
+    - btrfs: set the lockdep class for log tree extent buffers
+    - btrfs: tree-checker: fix the error message for transid error
+    - net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
+    - btrfs: fix potential deadlock in the search ioctl
+    - ALSA: ca0106: fix error code handling
+    - ALSA: usb-audio: Add implicit feedback quirk for UR22C
+    - ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
+    - ALSA: hda/hdmi: always check pin power status in i915 pin fixup
+    - ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
+    - ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
+    - ALSA; firewire-tascam: exclude Tascam FE-8 from detection
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
+    - ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
+    - arm64: dts: mt7622: add reset node for mmc device
+    - mmc: mediatek: add optional module reset property
+    - mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
+    - mmc: cqhci: Add cqhci_deactivate()
+    - mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based
+      controllers
+    - media: rc: do not access device via sysfs after rc_unregister_device()
+    - media: rc: uevent sysfs file races with rc_unregister_device()
+    - affs: fix basic permission bits to actually work
+    - block: allow for_each_bvec to support zero len bvec
+    - block: ensure bdi->io_pages is always initialized
+    - libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
+    - blk-iocost: ioc_pd_free() shouldn't assume irq disabled
+    - dmaengine: dw-edma: Fix scatter-gather address calculation
+    - drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
+    - dm writecache: handle DAX to partitions on persistent memory correctly
+    - dm mpath: fix racey management of PG initialization
+    - dm integrity: fix error reporting in bitmap mode after creation
+    - dm crypt: Initialize crypto wait structures
+    - dm cache metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Fix use-after-free in dm_bm_set_read_only
+    - mm: slub: fix conversion of freelist_corrupted()
+    - mm: madvise: fix vma user-after-free
+    - vfio/pci: Fix SR-IOV VF handling with MMIO blocking
+    - perf record: Correct the help info of option "--no-bpf-event"
+    - sdhci: tegra: Add missing TMCLK for data timeout
+    - checkpatch: fix the usage of capture group ( ... )
+    - mm/hugetlb: fix a race between hugetlb sysctl handlers
+    - mm/khugepaged.c: fix khugepaged's request size in collapse_file
+    - cfg80211: regulatory: reject invalid hints
+    - net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
+    - Linux 5.4.64
+  * Focal update: v5.4.63 upstream stable release (LP: #1895879)
+    - HID: core: Correctly handle ReportSize being zero
+    - HID: core: Sanitize event code and type when mapping input
+    - perf record/stat: Explicitly call out event modifiers in the documentation
+    - drm/sched: Fix passing zero to 'PTR_ERR' warning v2
+    - drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
+    - KVM: arm64: Add kvm_extable for vaxorcism code
+    - KVM: arm64: Survive synchronous exceptions caused by AT instructions
+    - KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception
+    - dt-bindings: mmc: tegra: Add tmclk for Tegra210 and later
+    - arm64: tegra: Add missing timeout clock to Tegra194 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra186 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra210 SDMMC
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra210
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra186
+    - scsi: target: tcmu: Fix size in calls to tcmu_flush_dcache_range
+    - scsi: target: tcmu: Optimize use of flush_dcache_page
+    - Linux 5.4.63
+  * Focal update: v5.4.62 upstream stable release (LP: #1895174)
+    - binfmt_flat: revert "binfmt_flat: don't offset the data start"
+    - gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
+    - net: Fix potential wrong skb->protocol in skb_vlan_untag()
+    - net: nexthop: don't allow empty NHA_GROUP
+    - net: qrtr: fix usage of idr in port assignment to socket
+    - net: sctp: Fix negotiation of the number of data streams.
+    - net/smc: Prevent kernel-infoleak in __smc_diag_dump()
+    - tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
+    - net: ena: Make missed_tx stat incremental
+    - net/sched: act_ct: Fix skb double-free in tcf_ct_handle_fragments() error
+      flow
+    - ipvlan: fix device features
+    - ALSA: pci: delete repeated words in comments
+    - ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt
+    - ASoC: img-parallel-out: Fix a reference count leak
+    - ASoC: tegra: Fix reference count leaks.
+    - mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
+    - arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
+    - powerpc/xive: Ignore kmemleak false positives
+    - media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA
+      value in debiirq()
+    - blktrace: ensure our debugfs dir exists
+    - scsi: target: tcmu: Fix crash on ARM during cmd completion
+    - mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs
+    - iommu/iova: Don't BUG on invalid PFNs
+    - drm/amdkfd: Fix reference count leaks.
+    - drm/radeon: fix multiple reference count leak
+    - drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
+    - drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
+    - drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
+    - drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
+    - scsi: lpfc: Fix shost refcount mismatch when deleting vport
+    - xfs: Don't allow logging of XFS_ISTALE inodes
+    - scsi: target: Fix xcopy sess release leak
+    - selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
+    - f2fs: fix error path in do_recover_data()
+    - omapfb: fix multiple reference count leaks due to pm_runtime_get_sync
+    - PCI: Fix pci_create_slot() reference count leak
+    - ARM: dts: ls1021a: output PPS signal on FIPER2
+    - rtlwifi: rtl8192cu: Prevent leaking urb
+    - mips/vdso: Fix resource leaks in genvdso.c
+    - cec-api: prevent leaking memory through hole in structure
+    - HID: quirks: add NOGET quirk for Logitech GROUP
+    - f2fs: fix use-after-free issue
+    - drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
+    - drm/nouveau: fix reference count leak in nv50_disp_atomic_commit
+    - drm/nouveau: Fix reference count leak in nouveau_connector_detect
+    - locking/lockdep: Fix overflow in presentation of average lock-time
+    - btrfs: file: reserve qgroup space after the hole punch range is locked
+    - btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode
+    - scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
+    - ceph: fix potential mdsc use-after-free crash
+    - ceph: do not access the kiocb after aio requests
+    - scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
+    - EDAC/ie31200: Fallback if host bridge device is already initialized
+    - hugetlbfs: prevent filesystem stacking of hugetlbfs
+    - media: davinci: vpif_capture: fix potential double free
+    - KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
+    - powerpc/spufs: add CONFIG_COREDUMP dependency
+    - USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
+    - brcmfmac: Set timeout value when configuring power save
+    - efi: provide empty efi_enter_virtual_mode implementation
+    - arm64: Fix __cpu_logical_map undefined issue
+    - Revert "ath10k: fix DMA related firmware crashes on multiple devices"
+    - sched/uclamp: Protect uclamp fast path code with static key
+    - sched/uclamp: Fix a deadlock when enabling uclamp static key
+    - usb: cdns3: gadget: always zeroed TRB buffer when enable endpoint
+    - PM / devfreq: rk3399_dmc: Add missing of_node_put()
+    - PM / devfreq: rk3399_dmc: Disable devfreq-event device when fails
+    - PM / devfreq: rk3399_dmc: Fix kernel oops when rockchip,pmu is absent
+    - drm/xen: fix passing zero to 'PTR_ERR' warning
+    - drm/xen-front: Fix misused IS_ERR_OR_NULL checks
+    - s390/numa: set node distance to LOCAL_DISTANCE
+    - btrfs: factor out inode items copy loop from btrfs_log_inode()
+    - btrfs: only commit the delayed inode when doing a full fsync
+    - btrfs: only commit delayed items at fsync if we are logging a directory
+    - mm/shuffle: don't move pages between zones and don't read garbage memmaps
+    - mm: fix kthread_use_mm() vs TLB invalidate
+    - mm/cma.c: switch to bitmap_zalloc() for cma bitmap allocation
+    - cma: don't quit at first error when activating reserved areas
+    - gpu/drm: ingenic: Use the plane's src_[x,y] to configure DMA length
+    - drm/ingenic: Fix incorrect assumption about plane->index
+    - drm/amd/display: Trigger modesets on MST DSC connectors
+    - drm/amd/display: Add additional config guards for DCN
+    - drm/amd/display: Fix dmesg warning from setting abm level
+    - mm/vunmap: add cond_resched() in vunmap_pmd_range
+    - EDAC: sb_edac: get rid of unused vars
+    - EDAC: skx_common: get rid of unused type var
+    - EDAC/{i7core,sb,pnd2,skx}: Fix error event severity
+    - PCI: qcom: Add missing ipq806x clocks in PCIe driver
+    - PCI: qcom: Change duplicate PCI reset to phy reset
+    - PCI: qcom: Add missing reset for ipq806x
+    - cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
+    - ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)
+    - media: gpio-ir-tx: improve precision of transmitted signal due to scheduling
+    - block: respect queue limit of max discard segment
+    - block: virtio_blk: fix handling single range discard request
+    - drm/msm/adreno: fix updating ring fence
+    - block: Fix page_is_mergeable() for compound pages
+    - bfq: fix blkio cgroup leakage v4
+    - hwmon: (nct7904) Correct divide by 0
+    - blk-mq: insert request not through ->queue_rq into sw/scheduler queue
+    - blkcg: fix memleak for iolatency
+    - nvme-fc: Fix wrong return value in __nvme_fc_init_request()
+    - nvme: multipath: round-robin: fix single non-optimized path case
+    - null_blk: fix passing of REQ_FUA flag in null_handle_rq
+    - i2c: core: Don't fail PRP0001 enumeration when no ID table exist
+    - i2c: rcar: in slave mode, clear NACK earlier
+    - usb: gadget: f_tcm: Fix some resource leaks in some error paths
+    - spi: stm32: clear only asserted irq flags on interrupt
+    - jbd2: make sure jh have b_transaction set in refile/unfile_buffer
+    - ext4: don't BUG on inconsistent journal feature
+    - ext4: handle read only external journal device
+    - jbd2: abort journal if free a async write error metadata buffer
+    - ext4: handle option set by mount flags correctly
+    - ext4: handle error of ext4_setup_system_zone() on remount
+    - ext4: correctly restore system zone info when remount fails
+    - fs: prevent BUG_ON in submit_bh_wbc()
+    - spi: stm32h7: fix race condition at end of transfer
+    - spi: stm32: fix fifo threshold level in case of short transfer
+    - spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate
+    - spi: stm32: always perform registers configuration prior to transfer
+    - drm/amd/powerplay: correct Vega20 cached smu feature state
+    - drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading
+    - drm/amd/display: Switch to immediate mode for updating infopackets
+    - netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency
+    - can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect
+      corruptions
+    - ALSA: hda/realtek: Add model alc298-samsung-headphone
+    - s390/cio: add cond_resched() in the slow_eval_known_fn() loop
+    - ASoC: wm8994: Avoid attempts to read unreadable registers
+    - selftests: disable rp_filter for icmp_redirect.sh
+    - scsi: fcoe: Fix I/O path allocation
+    - scsi: ufs: Fix possible infinite loop in ufshcd_hold
+    - scsi: ufs: Improve interrupt handling for shared interrupts
+    - scsi: ufs: Clean up completed request without interrupt notification
+    - scsi: qla2xxx: Fix login timeout
+    - scsi: qla2xxx: Check if FW supports MQ before enabling
+    - scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
+    - Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
+    - macvlan: validate setting of multiple remote source MAC addresses
+    - net: gianfar: Add of_node_put() before goto statement
+    - powerpc/perf: Fix soft lockups due to missed interrupt accounting
+    - arm64: Move handling of erratum 1418040 into C code
+    - arm64: Allow booting of late CPUs affected by erratum 1418040
+    - block: fix get_max_io_size()
+    - block: loop: set discard granularity and alignment for block device backed
+      loop
+    - HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
+    - blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART
+    - btrfs: reset compression level for lzo on remount
+    - btrfs: check the right error variable in btrfs_del_dir_entries_in_log
+    - btrfs: fix space cache memory leak after transaction abort
+    - btrfs: detect nocow for swap after snapshot delete
+    - fbcon: prevent user font height or width change from causing potential out-
+      of-bounds access
+    - USB: lvtest: return proper error code in probe
+    - vt: defer kfree() of vc_screenbuf in vc_do_resize()
+    - vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
+    - serial: samsung: Removes the IRQ not found warning
+    - serial: pl011: Fix oops on -EPROBE_DEFER
+    - serial: pl011: Don't leak amba_ports entry on driver register error
+    - serial: stm32: avoid kernel warning on absence of optional IRQ
+    - serial: 8250_exar: Fix number of ports for Commtech PCIe cards
+    - serial: 8250: change lock order in serial8250_do_startup()
+    - writeback: Protect inode->i_io_list with inode->i_lock
+    - writeback: Avoid skipping inode writeback
+    - writeback: Fix sync livelock due to b_dirty_time processing
+    - XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN
+      data pointer which contains XEN specific information.
+    - usb: host: xhci: fix ep context print mismatch in debugfs
+    - xhci: Do warm-reset when both CAS and XDEV_RESUME are set
+    - xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
+    - ARM64: vdso32: Install vdso32 from vdso_install
+    - arm64: vdso32: make vdso32 install conditional
+    - PM: sleep: core: Fix the handling of pending runtime resume requests
+    - powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
+    - device property: Fix the secondary firmware node handling in
+      set_primary_fwnode()
+    - crypto: af_alg - Work around empty control messages without MSG_MORE
+    - genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
+    - irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by
+      mistake
+    - x86/hotplug: Silence APIC only after all interrupts are migrated
+    - drm/amdgpu: Fix buffer overflow in INFO ioctl
+    - drm/amdgpu/gfx10: refine mgcg setting
+    - drm/amd/powerplay: Fix hardmins not being sent to SMU for RV
+    - drm/amd/pm: correct Vega10 swctf limit setting
+    - drm/amd/pm: correct Vega12 swctf limit setting
+    - drm/amd/pm: correct Vega20 swctf limit setting
+    - drm/amd/pm: correct the thermal alert temperature limit settings
+    - USB: yurex: Fix bad gfp argument
+    - usb: uas: Add quirk for PNY Pro Elite
+    - USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
+    - USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
+    - usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
+    - USB: gadget: u_f: add overflow checks to VLA macros
+    - USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
+    - USB: gadget: u_f: Unbreak offset calculation in VLAs
+    - USB: cdc-acm: rework notification_buffer resizing
+    - usb: storage: Add unusual_uas entry for Sony PSZ drives
+    - drm/i915: Fix cmd parser desc matching with masks
+    - usb: dwc3: gadget: Don't setup more than requested
+    - usb: dwc3: gadget: Fix handling ZLP
+    - usb: dwc3: gadget: Handle ZLP for sg requests
+    - fbmem: pull fbcon_update_vcs() out of fb_set_var()
+    - kheaders: remove unneeded 'cat' command piped to 'head' / 'tail'
+    - kheaders: optimize md5sum calculation for in-tree builds
+    - kheaders: optimize header copy for in-tree builds
+    - kheaders: remove the last bashism to allow sh to run it
+    - kheaders: explain why include/config/autoconf.h is excluded from md5sum
+    - kbuild: add variables for compression tools
+    - kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
+    - HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
+    - ALSA: usb-audio: Update documentation comment for MS2109 quirk
+    - io_uring: Fix NULL pointer dereference in io_sq_wq_submit_work()
+    - Linux 5.4.62
+  * DELL LATITUDE 5491 touchscreen doesn't work (LP: #1889446) // Focal update:
+    v5.4.62 upstream stable release (LP: #1895174)
+    - USB: quirks: Add no-lpm quirk for another Raydium touchscreen
+  * [NUC8CCHK][HDA-Intel - HDA Intel PCH, playback] No sound at all
+    (LP: #1875199) // Focal update: v5.4.62 upstream stable release
+    (LP: #1895174)
+    - ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged
+  * Focal update: v5.4.61 upstream stable release (LP: #1893115)
+    - Documentation/llvm: add documentation on building w/ Clang/LLVM
+    - Documentation/llvm: fix the name of llvm-size
+    - net: wan: wanxl: use allow to pass CROSS_COMPILE_M68k for rebuilding
+      firmware
+    - net: wan: wanxl: use $(M68KCC) instead of $(M68KAS) for rebuilding firmware
+    - x86/boot: kbuild: allow readelf executable to be specified
+    - kbuild: remove PYTHON2 variable
+    - kbuild: remove AS variable
+    - kbuild: replace AS=clang with LLVM_IAS=1
+    - kbuild: support LLVM=1 to switch the default tools to Clang/LLVM
+    - drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
+    - gfs2: Improve mmap write vs. punch_hole consistency
+    - gfs2: Never call gfs2_block_zero_range with an open transaction
+    - perf probe: Fix memory leakage when the probe point is not found
+    - khugepaged: khugepaged_test_exit() check mmget_still_valid()
+    - khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
+    - bcache: avoid nr_stripes overflow in bcache_device_init()
+    - btrfs: export helpers for subvolume name/id resolution
+    - btrfs: don't show full path of bind mounts in subvol=
+    - btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
+    - btrfs: add wrapper for transaction abort predicate
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion
+    - can: j1939: transport: j1939_session_tx_dat(): fix use-after-free read in
+      j1939_tp_txtimer()
+    - can: j1939: socket: j1939_sk_bind(): make sure ml_priv is allocated
+    - [Config] update config for SPI_DYNAMIC
+    - spi: Prevent adding devices below an unregistering controller
+    - romfs: fix uninitialized memory leak in romfs_dev_read()
+    - kernel/relay.c: fix memleak on destroy relay channel
+    - uprobes: __replace_page() avoid BUG in munlock_vma_page()
+    - mm: include CMA pages in lowmem_reserve at boot
+    - mm, page_alloc: fix core hung in free_pcppages_bulk()
+    - RDMA/hfi1: Correct an interlock issue for TID RDMA WRITE request
+    - ext4: fix checking of directory entry validity for inline directories
+    - jbd2: add the missing unlock_buffer() in the error path of
+      jbd2_write_superblock()
+    - scsi: zfcp: Fix use-after-free in request timeout handlers
+    - drm/amdgpu/display: use GFP_ATOMIC in dcn20_validate_bandwidth_internal
+    - drm/amd/display: Fix EDID parsing after resume from suspend
+    - drm/amd/display: fix pow() crashing when given base 0
+    - kthread: Do not preempt current task if it is going to call schedule()
+    - opp: Enable resources again if they were disabled earlier
+    - scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
+    - scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM
+    - media: budget-core: Improve exception handling in budget_register()
+    - rtc: goldfish: Enable interrupt in set_alarm() when necessary
+    - media: vpss: clean up resources in init
+    - Input: psmouse - add a newline when printing 'proto' by sysfs
+    - MIPS: Fix unable to reserve memory for Crash kernel
+    - m68knommu: fix overwriting of bits in ColdFire V3 cache control
+    - svcrdma: Fix another Receive buffer leak
+    - xfs: fix inode quota reservation checks
+    - drm/ttm: fix offset in VMAs with a pg_offs in ttm_bo_vm_access
+    - jffs2: fix UAF problem
+    - ceph: fix use-after-free for fsc->mdsc
+    - swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses
+    - cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0
+    - scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases
+    - virtio_ring: Avoid loop when vq is broken in virtqueue_poll
+    - media: camss: fix memory leaks on error handling paths in probe
+    - tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null
+      pointer dereference
+    - xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
+    - alpha: fix annotation of io{read,write}{16,32}be()
+    - fs/signalfd.c: fix inconsistent return codes for signalfd4
+    - ext4: fix potential negative array index in do_split()
+    - ext4: don't allow overlapping system zones
+    - netfilter: nf_tables: nft_exthdr: the presence return value should be
+      little-endian
+    - spi: stm32: fixes suspend/resume management
+    - ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
+    - ASoC: q6routing: add dummy register read/write function
+    - bpf: sock_ops sk access may stomp registers when dst_reg = src_reg
+    - can: j1939: fix kernel-infoleak in j1939_sk_sock2sockaddr_can()
+    - can: j1939: transport: j1939_simple_recv(): ignore local J1939 messages send
+      not by J1939 stack
+    - can: j1939: transport: add j1939_session_skb_find_by_offset() function
+    - i40e: Set RX_ONLY mode for unicast promiscuous on VLAN
+    - i40e: Fix crash during removing i40e driver
+    - net: fec: correct the error path for regulator disable in probe
+    - bonding: show saner speed for broadcast mode
+    - can: j1939: fix support for multipacket broadcast message
+    - can: j1939: cancel rxtimer on multipacket broadcast session complete
+    - can: j1939: abort multipacket broadcast session when timeout occurs
+    - can: j1939: add rxtimer for multipacket broadcast session
+    - bonding: fix a potential double-unregister
+    - s390/runtime_instrumentation: fix storage key handling
+    - s390/ptrace: fix storage key handling
+    - ASoC: msm8916-wcd-analog: fix register Interrupt offset
+    - ASoC: intel: Fix memleak in sst_media_open
+    - vfio/type1: Add proper error unwind for vfio_iommu_replay()
+    - kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
+    - kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode
+    - Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe"
+    - kconfig: qconf: do not limit the pop-up menu to the first row
+    - kconfig: qconf: fix signal connection to invalid slots
+    - efi: avoid error message when booting under Xen
+    - Fix build error when CONFIG_ACPI is not set/enabled:
+    - RDMA/bnxt_re: Do not add user qps to flushlist
+    - afs: Fix NULL deref in afs_dynroot_depopulate()
+    - bonding: fix active-backup failover for current ARP slave
+    - net: ena: Prevent reset after device destruction
+    - net: gemini: Fix missing free_netdev() in error path of
+      gemini_ethernet_port_probe()
+    - hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit()
+    - net: dsa: b53: check for timeout
+    - powerpc/pseries: Do not initiate shutdown when system is running on UPS
+    - efi: add missed destroy_workqueue when efisubsys_init fails
+    - epoll: Keep a reference on files added to the check list
+    - do_epoll_ctl(): clean the failure exits up a bit
+    - mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
+    - xen: don't reschedule in preemption off sections
+    - KVM: Pass MMU notifier range flags to kvm_unmap_hva_range()
+    - KVM: arm64: Only reschedule if MMU_NOTIFIER_RANGE_BLOCKABLE is not set
+    - Linux 5.4.61
+  * [UBUNTU 20.04] zPCI device hot-plug during boot may result in unusable
+    device (LP: #1893778)
+    - s390/pci: ignore stale configuration request event
+  * [SRU] [Focal/OEM-5.6/Groovy]Fix AMD usb host controller lost after stress S3
+    (LP: #1893914)
+    - SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Wed, 23 Sep 2020 00:56:33 -0400
+
+linux-gkeop-5.4 (5.4.0-1001.1) bionic; urgency=medium
+
+  * bionic/linux-gkeop-5.4: 5.4.0-1001.1 -proposed tracker (LP: #1895820)
+
+  * Request for eBPF patches into the 5.4 kernel (LP: #1887740)
+    - bpf: Enable retrieval of socket cookie for bind/post-bind hook
+    - bpf: Enable perf event rb output for bpf cgroup progs
+    - bpf: Add netns cookie and enable it for bpf cgroup hooks
+    - bpf, net: Fix build issue when net ns not configured
+    - bpf: Allow to retrieve cgroup v1 classid from v2 hooks
+    - bpf: Enable retrival of pid/tgid/comm from bpf cgroup hooks
+    - bpf: Add get{peer, sock}name attach types for sock_addr
+    - bpf, sk_msg: Add some generic helpers that may be useful from sk_msg
+    - bpf: Add BPF_FUNC_jiffies64
+    - bpf: Add socket assign support
+    - net: Track socket refcounts in skb_steal_sock()
+    - bpf: Don't refcount LISTEN sockets in sk_assign()
+    - bpf: Fix use of sk->sk_reuseport from sk_assign
+
+  [ Ubuntu: 5.4.0-48.52~18.04.1 ]
+
+  * bionic/linux-hwe-5.4: 5.4.0-48.52~18.04.1 -proposed tracker (LP: #1894653)
+  * focal/linux: 5.4.0-48.52 -proposed tracker (LP: #1894654)
+  * mm/slub kernel oops on focal kernel 5.4.0-45 (LP: #1895109)
+    - SAUCE: Revert "mm/slub: fix a memory leak in sysfs_slab_add()"
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+  * Introduce the new NVIDIA 450-server and the 450 UDA series (LP: #1887674)
+    - [packaging] add signed modules for nvidia 450 and 450-server
+  * [UBUNTU 20.04] zPCI attach/detach issues with PF/VF linking support
+    (LP: #1892849)
+    - s390/pci: fix zpci_bus_link_virtfn()
+    - s390/pci: re-introduce zpci_remove_device()
+    - s390/pci: fix PF/VF linking on hot plug
+  * [UBUNTU 20.04] kernel: s390/cpum_cf,perf: changeDFLT_CCERROR counter name
+    (LP: #1891454)
+    - s390/cpum_cf, perf: change DFLT_CCERROR counter name
+  * [UBUNTU 20.04] zPCI: Enabling of a reserved PCI function regression
+    introduced by multi-function support (LP: #1891437)
+    - s390/pci: fix enabling a reserved PCI function
+  * CVE-2020-12888
+    - vfio/type1: Support faulting PFNMAP vmas
+    - vfio-pci: Fault mmaps to enable vma tracking
+    - vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
+  *  [Hyper-V] VSS and File Copy daemons intermittently fails to start
+    (LP: #1891224)
+    - [Packaging] Bind hv_vss_daemon startup to hv_vss device
+    - [Packaging] bind hv_fcopy_daemon startup to hv_fcopy device
+  * alsa/hdmi: support nvidia mst hdmi/dp audio (LP: #1867704)
+    - ALSA: hda - Rename snd_hda_pin_sense to snd_hda_jack_pin_sense
+    - ALSA: hda - Add DP-MST jack support
+    - ALSA: hda - Add DP-MST support for non-acomp codecs
+    - ALSA: hda - Add DP-MST support for NVIDIA codecs
+    - ALSA: hda: hdmi - fix regression in connect list handling
+    - ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
+    - ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
+    - ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
+    - ALSA: hda - Fix DP-MST support for NVIDIA codecs
+  * Focal update: v5.4.60 upstream stable release (LP: #1892899)
+    - smb3: warn on confusing error scenario with sec=krb5
+    - genirq/affinity: Make affinity setting if activated opt-in
+    - genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq()
+    - PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
+    - PCI: Add device even if driver attach failed
+    - PCI: qcom: Define some PARF params needed for ipq8064 SoC
+    - PCI: qcom: Add support for tx term offset for rev 2.1.0
+    - btrfs: allow use of global block reserve for balance item deletion
+    - btrfs: free anon block device right after subvolume deletion
+    - btrfs: don't allocate anonymous block device for user invisible roots
+    - btrfs: ref-verify: fix memory leak in add_block_entry
+    - btrfs: stop incremening log_batch for the log root tree when syncing log
+    - btrfs: remove no longer needed use of log_writers for the log root tree
+    - btrfs: don't traverse into the seed devices in show_devname
+    - btrfs: open device without device_list_mutex
+    - btrfs: move the chunk_mutex in btrfs_read_chunk_tree
+    - btrfs: relocation: review the call sites which can be interrupted by signal
+    - btrfs: add missing check for nocow and compression inode flags
+    - btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on
+      relocation tree
+    - btrfs: sysfs: use NOFS for device creation
+    - btrfs: don't WARN if we abort a transaction with EROFS
+    - btrfs: fix race between page release and a fast fsync
+    - btrfs: fix messages after changing compression level by remount
+    - btrfs: only search for left_info if there is no right_info in
+      try_merge_free_space
+    - btrfs: inode: fix NULL pointer dereference if inode doesn't need compression
+    - btrfs: fix memory leaks after failure to lookup checksums during inode
+      logging
+    - btrfs: make sure SB_I_VERSION doesn't get unset by remount
+    - btrfs: fix return value mixup in btrfs_get_extent
+    - arm64: perf: Correct the event index in sysfs
+    - dt-bindings: iio: io-channel-mux: Fix compatible string in example code
+    - iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()
+    - xtensa: add missing exclusive access state management
+    - xtensa: fix xtensa_pmu_setup prototype
+    - cifs: Fix leak when handling lease break for cached root fid
+    - powerpc/ptdump: Fix build failure in hashpagetable.c
+    - powerpc: Allow 4224 bytes of stack expansion for the signal frame
+    - powerpc: Fix circular dependency between percpu.h and mmu.h
+    - pinctrl: ingenic: Enhance support for IRQ_TYPE_EDGE_BOTH
+    - media: vsp1: dl: Fix NULL pointer dereference on unbind
+    - net: ethernet: stmmac: Disable hardware multicast filter
+    - net: stmmac: dwmac1000: provide multicast filter fallback
+    - net/compat: Add missing sock updates for SCM_RIGHTS
+    - md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
+    - bcache: allocate meta data pages as compound pages
+    - bcache: fix overflow in offset_to_stripe()
+    - mac80211: fix misplaced while instead of if
+    - driver core: Avoid binding drivers to dead devices
+    - MIPS: CPU#0 is not hotpluggable
+    - MIPS: qi_lb60: Fix routing to audio amplifier
+    - ext2: fix missing percpu_counter_inc
+    - khugepaged: collapse_pte_mapped_thp() flush the right range
+    - khugepaged: collapse_pte_mapped_thp() protect the pmd lock
+    - ocfs2: change slot number type s16 to u16
+    - mm/page_counter.c: fix protection usage propagation
+    - mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
+    - ftrace: Setup correct FTRACE_FL_REGS flags for module
+    - kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
+    - tracing/hwlat: Honor the tracing_cpumask
+    - tracing: Use trace_sched_process_free() instead of exit() for pid tracing
+    - tracing: Move pipe reference to trace array instead of current_tracer
+    - watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in
+      watchdog_info.options
+    - watchdog: f71808e_wdt: remove use of wrong watchdog_info option
+    - watchdog: f71808e_wdt: clear watchdog timeout occurred flag
+    - ceph: set sec_context xattr on symlink creation
+    - ceph: handle zero-length feature mask in session messages
+    - pseries: Fix 64 bit logical memory block panic
+    - module: Correctly truncate sysfs sections output
+    - perf intel-pt: Fix FUP packet state
+    - perf intel-pt: Fix duplicate branch after CBR
+    - remoteproc: qcom: q6v5: Update running state before requesting stop
+    - remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
+    - remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load
+    - drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()
+    - orangefs: get rid of knob code...
+    - pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
+    - crypto: algif_aead - Only wake up when ctx->more is zero
+    - mfd: arizona: Ensure 32k clock is put on driver unbind and error
+    - octeontx2-af: change (struct qmem)->entry_sz from u8 to u16
+    - mtd: rawnand: fsl_upm: Remove unused mtd var
+    - platform/chrome: cros_ec_ishtp: Fix a double-unlock issue
+    - RDMA/ipoib: Return void from ipoib_ib_dev_stop()
+    - RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()
+    - media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
+    - media: rockchip: rga: Only set output CSC mode for RGB input
+    - IB/uverbs: Set IOVA on IB MR in uverbs layer
+    - selftests/bpf: Test_progs indicate to shell on non-actions
+    - selftests/bpf: test_progs use another shell exit on non-actions
+    - USB: serial: ftdi_sio: make process-packet buffer unsigned
+    - USB: serial: ftdi_sio: clean up receive processing
+    - crypto: af_alg - Fix regression on empty requests
+    - devres: keep both device name and resource name in pretty name
+    - RDMA/counter: Only bind user QPs in auto mode
+    - RDMA/counter: Allow manually bind QPs with different pids to same counter
+    - mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
+    - crypto: caam - Remove broken arc4 support
+    - gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers
+    - gpu: ipu-v3: image-convert: Wait for all EOFs before completing a tile
+    - dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
+    - clk: actions: Fix h_clk for Actions S500 SoC
+    - selftests/powerpc: ptrace-pkey: Rename variables to make it easier to follow
+      code
+    - selftests/powerpc: ptrace-pkey: Update the test to mark an invalid pkey
+      correctly
+    - selftests/powerpc: ptrace-pkey: Don't update expected UAMOR value
+    - iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
+    - clk: qcom: gcc: fix sm8150 GPU and NPU clocks
+    - clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
+    - iommu/vt-d: Enforce PASID devTLB field mask
+    - i2c: rcar: slave: only send STOP event when we have been addressed
+    - clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
+    - clk: clk-atlas6: fix return value check in atlas6_clk_init()
+    - pwm: bcm-iproc: handle clk_get_rate() return
+    - tools build feature: Use CC and CXX from parent
+    - i2c: rcar: avoid race when unregistering slave
+    - nfs: ensure correct writeback errors are returned on close()
+    - ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
+    - clk: bcm2835: Do not use prediv with bcm2711's PLLs
+    - libnvdimm/security: fix a typo
+    - libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
+    - openrisc: Fix oops caused when dumping stack
+    - scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying
+      targetport
+    - nfs: nfs_file_write() should check for writeback errors
+    - watchdog: initialize device before misc_register
+    - md-cluster: Fix potential error pointer dereference in resize_bitmaps()
+    - x86/tsr: Fix tsc frequency enumeration bug on Lightning Mountain SoC
+    - Input: sentelic - fix error return when fsp_reg_write fails
+    - recordmcount: Fix build failure on non arm64
+    - drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
+    - drm/vmwgfx: Fix two list_for_each loop exit tests
+    - net: qcom/emac: add missed clk_disable_unprepare in error path of
+      emac_clks_phase1_init
+    - nfs: Fix getxattr kernel panic and memory overflow
+    - fs/minix: set s_maxbytes correctly
+    - fs/minix: fix block limit check for V1 filesystems
+    - fs/minix: remove expected error message in block_to_path()
+    - fs/ufs: avoid potential u32 multiplication overflow
+    - test_kmod: avoid potential double free in trigger_config_run_type()
+    - i2c: iproc: fix race between client unreg and isr
+    - mfd: dln2: Run event handler loop under spinlock
+    - crypto: algif_aead - fix uninitialized ctx->init
+    - ALSA: echoaudio: Fix potential Oops in snd_echo_resume()
+    - perf bench mem: Always memset source before memcpy
+    - tools build feature: Quote CC and CXX for their arguments
+    - perf/x86/rapl: Fix missing psys sysfs attributes
+    - sh: landisk: Add missing initialization of sh_io_port_base
+    - khugepaged: retract_page_tables() remember to test exit
+    - arm64: dts: marvell: espressobin: add ethernet alias
+    - drm/panfrost: Use kvfree() to free bo->sgts
+    - drm: Added orientation quirk for ASUS tablet model T103HAF
+    - drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
+    - drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume
+    - drm/amd/display: dchubbub p-state warning during surface planes switch
+    - Linux 5.4.60
+    - kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417)
+    - tracepoint: Mark __tracepoint_string's __used
+    - HID: input: Fix devices that return multiple bytes in battery report
+    - nvme: add a Identify Namespace Identification Descriptor list quirk
+    - fs/io_uring.c: Fix uninitialized variable is referenced in io_submit_sqe
+    - clk: qcom: clk-rpmh: Wait for completion when enabling clocks
+    - x86/mce/inject: Fix a wrong assignment of i_mce.status
+    - sched/fair: Fix NOHZ next idle balance
+    - sched: correct SD_flags returned by tl->sd_flags()
+    - arm64: dts: rockchip: fix rk3368-lion gmac reset gpio
+    - arm64: dts: rockchip: fix rk3399-puma vcc5v0-host gpio
+    - arm64: dts: rockchip: fix rk3399-puma gmac reset gpio
+    - EDAC: Fix reference count leaks
+    - crc-t10dif: Fix potential crypto notify dead-lock
+    - arm64: dts: qcom: msm8916: Replace invalid bias-pull-none property
+    - crypto: ccree - fix resource leak on error path
+    - ARM: exynos: MCPM: Restore big.LITTLE cpuidle support
+    - firmware: arm_scmi: Fix SCMI genpd domain probing
+    - arm64: dts: exynos: Fix silent hang after boot on Espresso
+    - sched/uclamp: Fix initialization of struct uclamp_rq
+    - clk: scmi: Fix min and max rate when registering clocks with discrete rates
+    - m68k: mac: Don't send IOP message until channel is idle
+    - m68k: mac: Fix IOP status/control register writes
+    - platform/x86: intel-hid: Fix return value check in check_acpi_dev()
+    - platform/x86: intel-vbtn: Fix return value check in check_acpi_dev()
+    - ARM: dts: gose: Fix ports node name for adv7180
+    - ARM: dts: gose: Fix ports node name for adv7612
+    - ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Add regulator supply to all CPU
+      cores
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Fix CPU supply voltages
+    - spi: lantiq: fix: Rx overflow error in full duplex mode
+    - tpm: Require that all digests are present in TCG_PCR_EVENT2 structures
+    - recordmcount: only record relocation of type R_AARCH64_CALL26 on arm64.
+    - regulator: fix memory leak on error path of regulator_register()
+    - io_uring: fix sq array offset calculation
+    - spi: rockchip: Fix error in SPI slave pio read
+    - ARM: socfpga: PM: add missing put_device() call in
+      socfpga_setup_ocram_self_refresh()
+    - iocost: Fix check condition of iocg abs_vdebt
+    - irqchip/ti-sci-inta: Fix return value about devm_ioremap_resource()
+    - seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
+    - md: raid0/linear: fix dereference before null check on pointer mddev
+    - nvme-tcp: fix controller reset hang during traffic
+    - nvme-rdma: fix controller reset hang during traffic
+    - nvme-multipath: fix logic for non-optimized paths
+    - nvme-multipath: do not fall back to __nvme_find_path() for non-optimized
+      paths
+    - drm/tilcdc: fix leak & null ref in panel_connector_get_modes
+    - soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag
+    - Bluetooth: add a mutex lock to avoid UAF in do_enale_set
+    - loop: be paranoid on exit and prevent new additions / removals
+    - fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls
+    - drm/amdgpu: avoid dereferencing a NULL pointer
+    - drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync
+    - crypto: aesni - Fix build with LLVM_IAS=1
+    - video: fbdev: savage: fix memory leak on error handling path in probe
+    - video: fbdev: neofb: fix memory leak in neo_scan_monitor()
+    - bus: ti-sysc: Add missing quirk flags for usb_host_hs
+    - md-cluster: fix wild pointer of unlock_all_bitmaps()
+    - drm/nouveau/kms/nv50-: Fix disabling dithering
+    - arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding
+    - drm/etnaviv: fix ref count leak via pm_runtime_get_sync
+    - drm/nouveau: fix reference count leak in nouveau_debugfs_strap_peek
+    - drm/nouveau: fix multiple instances of reference count leaks
+    - mmc: sdhci-cadence: do not use hardware tuning for SD mode
+    - btrfs: fix lockdep splat from btrfs_dump_space_info
+    - usb: mtu3: clear dual mode of u3port when disable device
+    - drm: msm: a6xx: fix gpu failure after system resume
+    - drm/msm: Fix a null pointer access in msm_gem_shrinker_count()
+    - drm/debugfs: fix plain echo to connector "force" attribute
+    - drm/radeon: disable AGP by default
+    - irqchip/irq-mtk-sysirq: Replace spinlock with raw_spinlock
+    - mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls
+    - drm/amdgpu/display bail early in dm_pp_get_static_clocks
+    - drm/amd/powerplay: fix compile error with ARCH=arc
+    - bpf: Fix fds_example SIGSEGV error
+    - brcmfmac: keep SDIO watchdog running when console_interval is non-zero
+    - brcmfmac: To fix Bss Info flag definition Bug
+    - brcmfmac: set state of hanger slot to FREE when flushing PSQ
+    - platform/x86: asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15
+    - iwlegacy: Check the return value of pcie_capability_read_*()
+    - gpu: host1x: debug: Fix multiple channels emitting messages simultaneously
+    - ionic: update eid test for overflow
+    - mmc: sdhci-pci-o2micro: Bug fix for O2 host controller Seabird1
+    - usb: gadget: net2280: fix memory leak on probe error handling paths
+    - bdc: Fix bug causing crash after multiple disconnects
+    - usb: bdc: Halt controller on suspend
+    - dyndbg: fix a BUG_ON in ddebug_describe_flags
+    - bcache: fix super block seq numbers comparision in register_cache_set()
+    - ACPICA: Do not increment operation_region reference counts for field units
+    - drm/msm: ratelimit crtc event overflow error
+    - drm/gem: Fix a leak in drm_gem_objects_lookup()
+    - drm/bridge: ti-sn65dsi86: Clear old error bits before AUX transfers
+    - agp/intel: Fix a memory leak on module initialisation failure
+    - mwifiex: Fix firmware filename for sd8977 chipset
+    - mwifiex: Fix firmware filename for sd8997 chipset
+    - btmrvl: Fix firmware filename for sd8977 chipset
+    - btmrvl: Fix firmware filename for sd8997 chipset
+    - video: fbdev: sm712fb: fix an issue about iounmap for a wrong address
+    - console: newport_con: fix an issue about leak related system resources
+    - video: pxafb: Fix the function used to balance a 'dma_alloc_coherent()' call
+    - ath10k: Acquire tx_lock in tx error paths
+    - iio: improve IIO_CONCENTRATION channel type description
+    - drm/etnaviv: Fix error path on failure to enable bus clk
+    - drm/arm: fix unintentional integer overflow on left shift
+    - clk: bcm63xx-gate: fix last clock availability
+    - leds: lm355x: avoid enum conversion warning
+    - Bluetooth: btusb: fix up firmware download sequence
+    - Bluetooth: btmtksdio: fix up firmware download sequence
+    - media: cxusb-analog: fix V4L2 dependency
+    - media: marvell-ccic: Add missed v4l2_async_notifier_cleanup()
+    - media: omap3isp: Add missed v4l2_ctrl_handler_free() for
+      preview_init_entities()
+    - ASoC: SOF: nocodec: add missing .owner field
+    - ASoC: Intel: bxt_rt298: add missing .owner field
+    - scsi: cumana_2: Fix different dev_id between request_irq() and free_irq()
+    - drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline
+    - cxl: Fix kobject memleak
+    - drm/radeon: fix array out-of-bounds read and write issues
+    - staging: vchiq_arm: Add a matching unregister call
+    - iavf: fix error return code in iavf_init_get_resources()
+    - iavf: Fix updating statistics
+    - RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued()
+    - scsi: powertec: Fix different dev_id between request_irq() and free_irq()
+    - scsi: eesox: Fix different dev_id between request_irq() and free_irq()
+    - ipvs: allow connection reuse for unconfirmed conntrack
+    - media: firewire: Using uninitialized values in node_probe()
+    - media: exynos4-is: Add missed check for pinctrl_lookup_state()
+    - media: cros-ec-cec: do not bail on device_init_wakeup failure
+    - xfs: don't eat an EIO/ENOSPC writeback error when scrubbing data fork
+    - xfs: fix reflink quota reservation accounting error
+    - RDMA/rxe: Skip dgid check in loopback mode
+    - PCI: Fix pci_cfg_wait queue locking problem
+    - drm/stm: repair runtime power management
+    - kobject: Avoid premature parent object freeing in kobject_cleanup()
+    - leds: core: Flush scheduled work for system suspend
+    - drm: panel: simple: Fix bpc for LG LB070WV8 panel
+    - phy: exynos5-usbdrd: Calibrating makes sense only for USB2.0 PHY
+    - drm/bridge: sil_sii8620: initialize return of sii8620_readb
+    - scsi: scsi_debug: Add check for sdebug_max_queue during module init
+    - mwifiex: Prevent memory corruption handling keys
+    - kernfs: do not call fsnotify() with name without a parent
+    - powerpc/rtas: don't online CPUs for partition suspend
+    - powerpc/vdso: Fix vdso cpu truncation
+    - RDMA/qedr: SRQ's bug fixes
+    - RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send queue
+    - ima: Have the LSM free its audit rule
+    - staging: rtl8192u: fix a dubious looking mask before a shift
+    - ASoC: meson: fixes the missed kfree() for axg_card_add_tdm_loopback
+    - PCI/ASPM: Add missing newline in sysfs 'policy'
+    - phy: renesas: rcar-gen3-usb2: move irq registration to init
+    - powerpc/book3s64/pkeys: Use PVR check instead of cpu feature
+    - drm/imx: fix use after free
+    - drm/imx: tve: fix regulator_disable error path
+    - gpu: ipu-v3: Restore RGB32, BGR32
+    - spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM
+    - USB: serial: iuu_phoenix: fix led-activity helpers
+    - usb: core: fix quirks_param_set() writing to a const pointer
+    - thermal: ti-soc-thermal: Fix reversed condition in
+      ti_thermal_expose_sensor()
+    - coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb()
+    - powerpc/perf: Fix missing is_sier_aviable() during build
+    - mt76: mt7615: fix potential memory leak in mcu message handler
+    - phy: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - MIPS: OCTEON: add missing put_device() call in dwc3_octeon_device_init()
+    - usb: dwc2: Fix error path in gadget registration
+    - usb: gadget: f_uac2: fix AC Interface Header Descriptor wTotalLength
+    - scsi: megaraid_sas: Clear affinity hint
+    - scsi: mesh: Fix panic after host or bus reset
+    - net: dsa: mv88e6xxx: MV88E6097 does not support jumbo configuration
+    - macintosh/via-macii: Access autopoll_devs when inside lock
+    - PCI: cadence: Fix updating Vendor ID and Subsystem Vendor ID register
+    - RDMA/core: Fix return error value in _ib_modify_qp() to negative
+    - Smack: fix another vsscanf out of bounds
+    - Smack: prevent underflow in smk_set_cipso()
+    - power: supply: check if calc_soc succeeded in pm860x_init_battery
+    - Bluetooth: hci_h5: Set HCI_UART_RESET_ON_INIT to correct flags
+    - Bluetooth: hci_serdev: Only unregister device if it was registered
+    - net: dsa: rtl8366: Fix VLAN semantics
+    - net: dsa: rtl8366: Fix VLAN set-up
+    - xfs: fix inode allocation block res calculation precedence
+    - selftests/powerpc: Squash spurious errors due to device removal
+    - powerpc/32s: Fix CONFIG_BOOK3S_601 uses
+    - powerpc/boot: Fix CONFIG_PPC_MPC52XX references
+    - selftests/powerpc: Fix CPU affinity for child process
+    - RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP
+    - PCI: Release IVRS table in AMD ACS quirk
+    - [Config] update config for ARMADA_AP_CPU_CLK
+    - cpufreq: ap806: fix cpufreq driver needs ap cpu clk
+    - selftests/powerpc: Fix online CPU selection
+    - ASoC: meson: axg-tdm-interface: fix link fmt setup
+    - ASoC: meson: axg-tdmin: fix g12a skew
+    - ASoC: meson: axg-tdm-formatters: fix sclk inversion
+    - ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK
+    - s390/qeth: don't process empty bridge port events
+    - ice: Graceful error handling in HW table calloc failure
+    - rtw88: fix LDPC field for RA info
+    - rtw88: fix short GI capability based on current bandwidth
+    - rtw88: coex: only skip coex triggered by BT info
+    - wl1251: fix always return 0 error
+    - tools, build: Propagate build failures from tools/build/Makefile.build
+    - tools, bpftool: Fix wrong return value in do_dump()
+    - net/mlx5: DR, Change push vlan action sequence
+    - net/mlx5: Delete extra dump stack that gives nothing
+    - net: ethernet: aquantia: Fix wrong return value
+    - liquidio: Fix wrong return value in cn23xx_get_pf_num()
+    - net: spider_net: Fix the size used in a 'dma_free_coherent()' call
+    - fsl/fman: use 32-bit unsigned integer
+    - fsl/fman: fix dereference null return value
+    - fsl/fman: fix unreachable code
+    - fsl/fman: check dereferencing null pointer
+    - fsl/fman: fix eth hash table allocation
+    - net: thunderx: initialize VF's mailbox mutex before first usage
+    - dlm: Fix kobject memleak
+    - ocfs2: fix unbalanced locking
+    - pinctrl-single: fix pcs_parse_pinconf() return value
+    - svcrdma: Fix page leak in svc_rdma_recv_read_chunk()
+    - x86/fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task
+    - crypto: aesni - add compatibility with IAS
+    - af_packet: TPACKET_V3: fix fill status rwlock imbalance
+    - drivers/net/wan/lapbether: Added needed_headroom and a skb->len check
+    - net: Fix potential memory leak in proto_register()
+    - net/nfc/rawsock.c: add CAP_NET_RAW check.
+    - net: phy: fix memory leak in device-create error path
+    - net: Set fput_needed iff FDPUT_FPUT is set
+    - net/tls: Fix kmap usage
+    - vmxnet3: use correct tcp hdr length when packet is encapsulated
+    - net: refactor bind_bucket fastreuse into helper
+    - net: initialize fastreuse on inet_inherit_port
+    - USB: serial: cp210x: re-enable auto-RTS on open
+    - USB: serial: cp210x: enable usb generic throttle/unthrottle
+    - ALSA: hda - fix the micmute led status for Lenovo ThinkCentre AIO
+    - ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support
+    - ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
+    - ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
+    - 9p: Fix memory leak in v9fs_mount
+    - media: media-request: Fix crash if memory allocation fails
+    - drm/ttm/nouveau: don't call tt destroy callback on alloc failure.
+    - io_uring: set ctx sq/cq entry count earlier
+    - NFS: Don't move layouts to plh_return_segs list while in use
+    - NFS: Don't return layout segments that are in use
+    - cpufreq: Fix locking issues with governors
+    - cpufreq: dt: fix oops on armada37xx
+    - include/asm-generic/vmlinux.lds.h: align ro_after_init
+    - spi: spidev: Align buffers for DMA
+    - mtd: rawnand: qcom: avoid write to unavailable register
+    - erofs: fix extended inode could cross boundary
+    - Revert "parisc: Drop LDCW barrier in CAS code when running UP"
+    - Revert "parisc: Use ldcw instruction for SMP spinlock release barrier"
+    - Revert "parisc: Revert "Release spinlocks using ordered store""
+    - parisc: Do not use an ordered store in pa_tlb_lock()
+    - parisc: Implement __smp_store_release and __smp_load_acquire barriers
+    - parisc: mask out enable and reserved bits from sba imask
+    - ARM: 8992/1: Fix unwind_frame for clang-built kernels
+    - irqdomain/treewide: Free firmware node after domain removal
+    - ALSA: usb-audio: add quirk for Pioneer DDJ-RB
+    - tpm: Unify the mismatching TPM space buffer sizes
+    - pstore: Fix linking when crypto API disabled
+    - crypto: hisilicon - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not
+      specified
+    - crypto: qat - fix double free in qat_uclo_create_batch_init_list
+    - crypto: ccp - Fix use of merged scatterlists
+    - crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
+    - bitfield.h: don't compile-time validate _val in FIELD_FIT
+    - fs/minix: check return value of sb_getblk()
+    - fs/minix: don't allow getting deleted inodes
+    - fs/minix: reject too-large maximum file size
+    - xen/balloon: fix accounting in alloc_xenballooned_pages error path
+    - xen/balloon: make the balloon wait interruptible
+    - xen/gntdev: Fix dmabuf import with non-zero sgt offset
+    - s390/dasd: fix inability to use DASD with DIAG driver
+    - s390/gmap: improve THP splitting
+    - io_uring: Fix NULL pointer dereference in loop_rw_iter()
+    - Linux 5.4.59
+  * Regression on NFS: unable to handle page fault in mempool_alloc_slab
+    (LP: #1886277) // Focal update: v5.4.59 upstream stable release
+    (LP: #1892417)
+    - SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417) //
+    CVE-2019-19770 which shows this issue is not a core debugfs issue, but
+    - blktrace: fix debugfs use after free
+  * update ENA driver for LLQ acceleration mode, new hw support (LP: #1890845)
+    - net: ena: change num_queues to num_io_queues for clarity and consistency
+    - net: ena: multiple queue creation related cleanups
+    - net: ena: ethtool: get_channels: use combined only
+    - net: ena: make ethtool -l show correct max number of queues
+    - net: ena: remove redundant print of number of queues
+    - net: ena: ethtool: support set_channels callback
+    - net: ena: implement XDP drop support
+    - net: ena: Implement XDP_TX action
+    - net: ena: Add first_interrupt field to napi struct
+    - net: ena: fix default tx interrupt moderation interval
+    - net: ena: remove set but not used variable 'rx_ring'
+    - net: ena: remove set but not used variable 'hash_key'
+    - net: ena: ethtool: remove redundant non-zero check on rc
+    - net/amazon: Ensure that driver version is aligned to the linux kernel
+    - net: ena: fix broken interface between ENA driver and FW
+    - net: ena: ethtool: clean up minor indentation issue
+    - net: ena: fix incorrect setting of the number of msix vectors
+    - net: ena: fix request of incorrect number of IRQ vectors
+    - net: ena: avoid memory access violation by validating req_id properly
+    - net: ena: fix continuous keep-alive resets
+    - net: ena: Make some functions static
+    - net: ena: avoid unnecessary admin command when RSS function set fails
+    - net: ena: allow setting the hash function without changing the key
+    - net: ena: change default RSS hash function to Toeplitz
+    - net: ena: changes to RSS hash key allocation
+    - net: ena: remove code that does nothing
+    - net: ena: add unmask interrupts statistics to ethtool
+    - net: ena: add support for reporting of packet drops
+    - net: ena: drop superfluous prototype
+    - net: ena: use SHUTDOWN as reset reason when closing interface
+    - net: ena: cosmetic: remove unnecessary spaces and tabs in ena_com.h macros
+    - net: ena: cosmetic: extract code to ena_indirection_table_set()
+    - net: ena: add support for the rx offset feature
+    - net: ena: rename ena_com_free_desc to make API more uniform
+    - net: ena: use explicit variable size for clarity
+    - net: ena: fix ena_com_comp_status_to_errno() return value
+    - net: ena: simplify ena_com_update_intr_delay_resolution()
+    - net: ena: cosmetic: set queue sizes to u32 for consistency
+    - net: ena: cosmetic: fix spelling and grammar mistakes in comments
+    - net: ena: cosmetic: fix line break issues
+    - net: ena: cosmetic: remove unnecessary code
+    - net: ena: cosmetic: code reorderings
+    - net: ena: cosmetic: fix spacing issues
+    - net: ena: cosmetic: minor code changes
+    - net: ena: reduce driver load time
+    - net: ena: xdp: XDP_TX: fix memory leak
+    - net: ena: xdp: update napi budget for DROP and ABORTED
+    - ena_netdev: use generic power management
+    - net: ena: Fix using plain integer as NULL pointer in ena_init_napi_in_range
+    - net: ena: avoid unnecessary rearming of interrupt vector when busy-polling
+    - net: ena: add reserved PCI device ID
+    - net: ena: cosmetic: satisfy gcc warning
+    - net: ena: cosmetic: change ena_com_stats_admin stats to u64
+    - net: ena: add support for traffic mirroring
+    - net: ena: enable support of rss hash key and function changes
+    - net: ena: move llq configuration from ena_probe to ena_device_init()
+    - net: ena: support new LLQ acceleration mode
+  * [SRU] Fix acpi backlight issue on some thinkpads (LP: #1892010)
+    - platform/x86: thinkpad_acpi: not loading brightness_init when _BCL invalid
+  * [SRU][F/OEM-5.6] add a new OLED panel support for brightness control
+    (LP: #1887909)
+    - drm/dp: Lenovo X13 Yoga OLED panel brightness fix
+  * Realtek [10ec:c82f] Subsystem [17aa:c02f] Wifi adapter not found
+    (LP: #1886247)
+    - SAUCE: rtw88: 8822ce: add support for device ID 0xc82f
+  * KVM: Fix zero_page reference counter overflow when using KSM on KVM compute
+    host (LP: #1837810)
+    - KVM: fix overflow of zero page refcount with ksm running
+  * Fix missing HDMI Audio on another HP Desktop (LP: #1891617)
+    - ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop
+  * alsa/sof: support 1 and 3 dmics (LP: #1891585)
+    - SAUCE: ASoC: SOF: intel: hda: support also devices with 1 and 3 dmics
+  * tcp_fastopen_backup_key.sh from net in ubuntu_kernel_selftests failed on
+    Eoan LPAR (LP: #1869134)
+    - tcp: correct read of TFO keys on big endian systems
+  * Fix false-negative return value for rtnetlink.sh in kselftests/net
+    (LP: #1890136)
+    - selftests: rtnetlink: correct the final return value for the test
+    - selftests: rtnetlink: make kci_test_encap() return sub-test result
+  * Focal update: v5.4.58 upstream stable release (LP: #1891387)
+    - USB: serial: qcserial: add EM7305 QDL product ID
+    - perf/core: Fix endless multiplex timer
+    - USB: iowarrior: fix up report size handling for some devices
+    - usb: xhci: define IDs for various ASMedia host controllers
+    - usb: xhci: Fix ASMedia ASM1142 DMA addressing
+    - io_uring: prevent re-read of sqe->opcode
+    - io_uring: Fix use-after-free in io_sq_wq_submit_work()
+    - Revert "ALSA: hda: call runtime_allow() for all hda controllers"
+    - ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
+    - ALSA: hda/ca0132 - Add new quirk ID for Recon3D.
+    - ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.
+    - ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.
+    - ALSA: seq: oss: Serialize ioctls
+    - staging: android: ashmem: Fix lockdep warning for write operation
+    - staging: rtl8712: handle firmware load failure
+    - Staging: rtl8188eu: rtw_mlme: Fix uninitialized variable authmode
+    - Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
+    - omapfb: dss: Fix max fclk divider for omap36xx
+    - binder: Prevent context manager from incrementing ref 0
+    - Smack: fix use-after-free in smk_write_relabel_self()
+    - scripts: add dummy report mode to add_namespace.cocci
+    - vgacon: Fix for missing check in scrollback handling
+    - mtd: properly check all write ioctls for permissions
+    - leds: wm831x-status: fix use-after-free on unbind
+    - leds: lm36274: fix use-after-free on unbind
+    - leds: da903x: fix use-after-free on unbind
+    - leds: lm3533: fix use-after-free on unbind
+    - leds: 88pm860x: fix use-after-free on unbind
+    - net/9p: validate fds in p9_fd_open
+    - drm/nouveau/fbcon: fix module unload when fbcon init has failed for some
+      reason
+    - drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
+    - drm/drm_fb_helper: fix fbdev with sparc64
+    - i2c: slave: improve sanity check when registering
+    - i2c: slave: add sanity check when unregistering
+    - usb: hso: check for return value in hso_serial_common_create()
+    - net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
+    - ALSA: hda: fix NULL pointer dereference during suspend
+    - firmware: Fix a reference count leak.
+    - cfg80211: check vendor command doit pointer before use
+    - igb: reinit_locked() should be called with rtnl_lock
+    - atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
+    - tools lib traceevent: Fix memory leak in process_dynamic_array_len
+    - Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
+    - xattr: break delegations in {set,remove}xattr
+    - Revert "powerpc/kasan: Fix shadow pages allocation failure"
+    - PCI: tegra: Revert tegra124 raw_violation_fixup
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: fix memory leaks on IPV6_ADDRFORM path
+    - ipv6: Fix nexthop refcnt leak when creating ipv6 route info
+    - net: ethernet: mtk_eth_soc: fix MTU warnings
+    - rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
+    - vxlan: Ensure FDB dump is performed under RCU
+    - net: lan78xx: replace bogus endpoint lookup
+    - appletalk: Fix atalk_proc_init() return path
+    - dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
+    - hv_netvsc: do not use VF device if link is down
+    - net: gre: recompute gre csum for sctp over gre tunnels
+    - net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
+    - openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
+    - Revert "vxlan: fix tos value before xmit"
+    - tcp: apply a floor of 1 for RTT samples from TCP timestamps
+    - ima: move APPRAISE_BOOTPARAM dependency on ARCH_POLICY to runtime
+    - [Config] update annotations for IMA_APPRAISE_BOOTPARAM
+    - nfsd: Fix NFSv4 READ on RDMA when using readv
+    - Linux 5.4.58
+  * Focal update: v5.4.57 upstream stable release (LP: #1891064)
+    - random32: update the net random state on interrupt and activity
+    - ARM: percpu.h: fix build error
+    - random: fix circular include dependency on arm64 after addition of percpu.h
+    - random32: remove net_rand_state from the latent entropy gcc plugin
+    - random32: move the pseudo-random 32-bit definitions to prandom.h
+    - arm64: Workaround circular dependency in pointer_auth.h
+    - ext4: fix direct I/O read error
+    - selftests: bpf: Fix detach from sockmap tests
+    - bpf: sockmap: Require attach_bpf_fd when detaching a program
+    - Linux 5.4.57
+  * Focal update: v5.4.56 upstream stable release (LP: #1891063)
+    - crypto: ccp - Release all allocated memory if sha type is invalid
+    - media: rc: prevent memory leak in cx23888_ir_probe
+    - sunrpc: check that domain table is empty at module unload.
+    - ath10k: enable transmit data ack RSSI for QCA9884
+    - PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
+    - mm/filemap.c: don't bother dropping mmap_sem for zero size readahead
+    - ALSA: usb-audio: Add implicit feedback quirk for SSL2
+    - ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series
+      with ALC289
+    - ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus
+      G14(GA401) series with ALC289
+    - ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference
+      board (alc256)
+    - ALSA: hda/hdmi: Fix keep_power assignment for non-component devices
+    - IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE
+    - vhost/scsi: fix up req type endian-ness
+    - 9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work
+    - wireless: Use offsetof instead of custom macro.
+    - ARM: 8986/1: hw_breakpoint: Don't invoke overflow handler on uaccess
+      watchpoints
+    - ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2
+    - ARM: dts: imx6sx-sdb: Fix the phy-mode on fec2
+    - ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect
+    - virtio_balloon: fix up endian-ness for free cmd id
+    - Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
+    - drm/amd/display: Clear dm_state for fast updates
+    - drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
+    - drm/dbi: Fix SPI Type 1 (9-bit) transfer
+    - drm: hold gem reference until object is no longer accessed
+    - rds: Prevent kernel-infoleak in rds_notify_queue_get()
+    - libtraceevent: Fix build with binutils 2.35
+    - net/x25: Fix x25_neigh refcnt leak when x25 disconnect
+    - net/x25: Fix null-ptr-deref in x25_disconnect
+    - ARM: dts sunxi: Relax a bit the CMA pool allocation range
+    - xfrm: Fix crash when the hold queue is used.
+    - ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - nvme-tcp: fix possible hang waiting for icresp response
+    - selftests/net: rxtimestamp: fix clang issues for target arch PowerPC
+    - selftests/net: psock_fanout: fix clang issues for target arch PowerPC
+    - selftests/net: so_txtime: fix clang issues for target arch PowerPC
+    - sh/tlb: Fix PGTABLE_LEVELS > 2
+    - sh: Fix validation of system call number
+    - net: hns3: fix a TX timeout issue
+    - net: hns3: fix aRFS FD rules leftover after add a user FD rule
+    - net/mlx5: E-switch, Destroy TSAR when fail to enable the mode
+    - net/mlx5e: Fix error path of device attach
+    - net/mlx5: Verify Hardware supports requested ptp function on a given pin
+    - net/mlx5e: Modify uplink state on interface up/down
+    - net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev
+    - net: lan78xx: add missing endpoint sanity check
+    - net: lan78xx: fix transfer-buffer memory leak
+    - rhashtable: Fix unprotected RCU dereference in __rht_ptr
+    - mlx4: disable device on shutdown
+    - mlxsw: core: Increase scope of RCU read-side critical section
+    - mlxsw: core: Free EMAD transactions using kfree_rcu()
+    - ibmvnic: Fix IRQ mapping disposal in error path
+    - bpf: Fix map leak in HASH_OF_MAPS map
+    - mac80211: mesh: Free ie data when leaving mesh
+    - mac80211: mesh: Free pending skb when destroying a mpath
+    - arm64/alternatives: move length validation inside the subsection
+    - arm64: csum: Fix handling of bad packets
+    - Bluetooth: fix kernel oops in store_pending_adv_report
+    - net: nixge: fix potential memory leak in nixge_probe()
+    - net: gemini: Fix missing clk_disable_unprepare() in error path of
+      gemini_ethernet_port_probe()
+    - net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
+    - perf tools: Fix record failure when mixed with ARM SPE event
+    - vxlan: fix memleak of fdb
+    - usb: hso: Fix debug compile warning on sparc32
+    - selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion
+    - qed: Disable "MFW indication via attention" SPAM every 5 minutes
+    - selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support
+    - nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame
+    - scsi: core: Run queue in case of I/O resource contention failure
+    - parisc: add support for cmpxchg on u8 pointers
+    - net: ethernet: ravb: exit if re-initialization fails in tx timeout
+    - Revert "i2c: cadence: Fix the hold bit setting"
+    - x86/unwind/orc: Fix ORC for newly forked tasks
+    - x86/stacktrace: Fix reliable check for empty user task stacks
+    - cxgb4: add missing release on skb in uld_send()
+    - xen-netfront: fix potential deadlock in xennet_remove()
+    - RISC-V: Set maximum number of mapped pages correctly
+    - drivers/net/wan: lapb: Corrected the usage of skb_cow
+    - KVM: arm64: Don't inherit exec permission across page-table levels
+    - KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw
+      disabled
+    - x86/i8259: Use printk_deferred() to prevent deadlock
+    - perf tests bp_account: Make global variable static
+    - perf env: Do not return pointers to local variables
+    - perf bench: Share some global variables to fix build with gcc 10
+    - Linux 5.4.56
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 16 Sep 2020 15:08:28 +0200
+
+linux-gkeop-5.4 (5.4.0-1000.0) bionic; urgency=medium
+
+  * Initial gkeop-5.4 packaging
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 15 Sep 2020 11:30:12 +0200
--- linux-gkeop-5.4-5.4.0.orig/debian/cloud-tools/hv_get_dhcp_info
+++ linux-gkeop-5.4-5.4.0/debian/cloud-tools/hv_get_dhcp_info
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# This example script retrieves the DHCP state of a given interface.
+# In the interest of keeping the KVP daemon code free of distro specific
+# information; the kvp daemon code invokes this external script to gather
+# DHCP setting for the specific interface.
+#
+# Input: Name of the interface
+#
+# Output: The script prints the string "Enabled" to stdout to indicate
+#	that DHCP is enabled on the interface. If DHCP is not enabled,
+#	the script prints the string "Disabled" to stdout.
+#
+# Each Distro is expected to implement this script in a distro specific
+# fashion. 
+
+#set -x
+
+IF_FILE="/etc/network/interfaces"
+NMCMD="nmcli"
+
+function checknetworkmanager {
+	#Assumes if $NMCMD exists, inteface exists and interface is not
+	#  in $IF_FILE then dhcp is being used by NM
+        if  hash $NMCMD >/dev/null 2>&1  ; then
+                if  $NMCMD  dev status |grep -q $1  ; then
+                        echo "Enabled"
+                else
+                        echo "Disabled"
+                fi
+        else
+                #Give up
+                echo "Disabled"
+        fi
+}
+
+if [ -z $1 ]  ; then echo "Disabled"; exit; fi
+
+if [ -e $IF_FILE ]; then
+	if grep -v -e "^#" $IF_FILE|grep -q $1 ; then
+		#interface exists so
+		if grep -q -e $1\.\*dhcp $IF_FILE; then 
+			echo "Enabled"; exit;
+		else
+			echo "Disabled"; exit;
+		fi
+	else
+		checknetworkmanager $1
+		exit
+	fi
+else
+	checknetworkmanager $1
+	exit
+fi
+
--- linux-gkeop-5.4-5.4.0.orig/debian/cloud-tools/hv_get_dns_info
+++ linux-gkeop-5.4-5.4.0/debian/cloud-tools/hv_get_dns_info
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# This example script parses /etc/resolv.conf to retrive DNS information.
+# In the interest of keeping the KVP daemon code free of distro specific
+# information; the kvp daemon code invokes this external script to gather
+# DNS information.
+# This script is expected to print the nameserver values to stdout.
+# Each Distro is expected to implement this script in a distro specific
+# fashion. For instance on Distros that ship with Network Manager enabled,
+# this script can be based on the Network Manager APIs for retrieving DNS
+# entries.
+
+cat /etc/resolv.conf 2>/dev/null | awk '/^nameserver/ { print $2 }'
--- linux-gkeop-5.4-5.4.0.orig/debian/cloud-tools/hv_set_ifconfig
+++ linux-gkeop-5.4-5.4.0/debian/cloud-tools/hv_set_ifconfig
@@ -0,0 +1,288 @@
+#!/usr/bin/python3
+#
+# hv_set_ifconfig <config> -- take the hv_kvp_daemon generated configuration
+#                             file and apply it to the Ubuntu configuration.
+#
+
+# CONFIG example:
+# HWADDR=11:22:33:44:55:66
+# DEVICE=foo1
+# DHCP=yes
+
+# CONFIG example:
+# HWADDR=11:22:33:44:55:66
+# DEVICE=foo1
+# IPADDR=192.168.99.10
+# GATEWAY=192.168.99.1
+# DNS1=192.168.88.250
+# IPADDR2=192.168.99.11
+# IPV6ADDR=2001:DB8:99::10
+# IPV6NETMASK=64
+# IPV6_DEFAULTGW=2001:DB8:99::10
+
+# set interfaces in hv_kvp_daemon style
+import fileinput
+import sys
+import errno
+import os
+import shutil
+import tempfile
+import subprocess
+
+if_filename="/etc/network/interfaces"
+
+# Drop our output (XXX?)
+sys.stdout = open(os.devnull, 'w')
+sys.stderr = open(os.devnull, 'w')
+
+# Confirm we can open the network configuration.
+try:
+    if_file=open(if_filename,"r+")
+except IOError as e:
+    exit(e.errno)
+else:
+    if_file.close()
+
+# Usage: hv_set_ifconfig <config>
+if len(sys.argv) != 2 :
+    exit(errno.EINVAL)
+
+#
+# Here is the format of the ip configuration file:
+#
+# HWADDR=macaddr
+# DEVICE=interface name
+# BOOTPROTO=<protocol> (where <protocol> is "dhcp" if DHCP is configured
+#                       or "none" if no boot-time protocol should be used)
+#
+# IPADDR0=ipaddr1
+# IPADDR1=ipaddr2
+# IPADDRx=ipaddry (where y = x + 1)
+#
+# NETMASK0=netmask1
+# NETMASKx=netmasky (where y = x + 1)
+#
+# GATEWAY=ipaddr1
+# GATEWAYx=ipaddry (where y = x + 1)
+#
+# DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)
+#
+# IPV6 addresses will be tagged as IPV6ADDR, IPV6 gateway will be
+# tagged as IPV6_DEFAULTGW and IPV6 NETMASK will be tagged as
+# IPV6NETMASK.
+#
+
+kvp=dict(line.strip().split("=") for line in fileinput.input())
+
+# Setting the hwaddress to something azure is not expecting is fatal
+# to networking.
+if not "HWADDR" in kvp :
+    exit(errno.EPROTO)
+
+# Confirm we have a device specified.
+if not "DEVICE" in kvp :
+    exit(1)
+
+autolist = []
+output=[]
+basename=kvp["DEVICE"]
+
+# DNS entries will go with the first interface and there can be a max
+# of three.  These will be emitted with the first interface.
+dns = []
+for count in (1, 2, 3):
+    key = "DNS" + str(count)
+    if key in kvp:
+        dns += [kvp[key]]
+dns_emitted = False
+
+# IPV4 may either be dhcp or static.
+if ("DHCP" in kvp and kvp["DHCP"] == "yes") or \
+   ("BOOTPROTO" in kvp and kvp["BOOTPROTO"] == "dhcp"):
+    autolist.append(basename)
+    output += ["iface " + basename  + " inet dhcp"]
+    output += [""]
+else:
+    # Matchup the interface specific lines
+
+    # No real max for the number of interface + aliases ...
+    # only required is the address (but mate everything up that comes in.
+
+    # IPv4 -- ensure we sort by numeric suffixes.
+    v4names = [ int(name[6:]) for name in kvp.keys() if name.startswith("IPADDR") ]
+    v4names.sort()
+
+    for if_count in v4names:
+        ifname = basename
+        which = str(if_count)
+
+        if if_count:
+            ifname += ":" + str(if_count)
+            which_gw = which
+        else:
+            which_gw = ""
+
+        if not ifname in autolist:
+            autolist += [ifname]
+
+        output += [ "iface " + ifname + " inet static" ]
+        output += [ "\t" + "address " + kvp["IPADDR" + which] ]
+        if "NETMASK" + which in kvp:
+            output += [ "\tnetmask " + kvp["NETMASK" + which] ]
+        if "GATEWAY" + which_gw in kvp:
+            output += ["\tgateway " + kvp["GATEWAY" + which_gw]]
+
+        if not dns_emitted:
+            dns_emitted = True
+            output += ["\tdns-nameservers " + ' '.join(dns)]
+        output += [""]
+
+# IPv6 requires a netmask
+# If an ipv6 exists, you'll want to turn off /proc/sys/net/ipv6/conf/all/autoconf with
+# echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
+v6names = [ int(name[8:]) for name in kvp.keys() if name.startswith("IPV6ADDR") ]
+v6names.sort()
+
+for if6_count in v6names:
+    ifname = basename
+    which = str(if6_count)
+
+    if if6_count:
+        ifname += ":" + str(if6_count)
+        which_gw = which
+    else:
+        which_gw = ""
+
+    if not ifname in autolist:
+        autolist += [ifname]
+
+    if "IPV6NETMASK" + which in kvp:
+        output += [ "iface " + ifname + " inet6 static"]
+        output += [ "\taddress " + kvp["IPV6ADDR" + which]]
+        output += [ "\tnetmask " + kvp["IPV6NETMASK" + which]]
+        if "IPV6_DEFAULTGW" + which_gw in kvp:
+            output += [ "\tgateway " + kvp["IPV6_DEFAULTGW" + which_gw] ]
+        if not dns_emitted:
+            dns_emitted = True
+            output += ["\tdns-nameservers " + ' '.join(dns)]
+        output += [""]
+
+# Mark this new interface for automatic up.
+if len(autolist):
+    output = ["auto "+" ".join(autolist)] + output
+
+print("===================================")
+print(output)
+print("===================================")
+
+
+# Time to clean out the existing interface file
+
+# Markers.
+start_mark = "# The following stanza(s) added by hv_set_ifconfig"
+end_mark = "#End of hv_set_ifconfig stanzas"
+
+f=open(if_filename,"r")
+flines=f.readlines()
+f.close()
+newfile=[]
+pitchstanza=0
+inastanza=0
+stanza=[]
+prev_line=None
+for line in flines:
+    if line.startswith("auto"):
+        if inastanza:
+            if not pitchstanza:
+                newfile.extend(stanza)
+            stanza=[]
+        inastanza=0
+        newline=""
+        autoline=line.strip().split(" ")
+        for word in autoline:
+            if (not word == basename) and (not word.startswith(basename+":")):
+                newline+=word + " "
+        newline = newline.strip()
+        if not newline == "auto":
+            newfile += [newline.strip()]
+    elif line.startswith(("iface","mapping","source")):
+        '''Read a stanza'''
+        '''A Stanza can also start with allow- ie allow-hotplug'''
+        if inastanza:
+            if not pitchstanza:
+                newfile.extend(stanza)
+            stanza=[]
+        inastanza=1
+        pitchstanza=0
+        autoline=line.strip().split(" ")
+        for word in autoline:
+            if (word == basename) or (word.startswith(basename+":")):
+                pitchstanza=1
+        if not pitchstanza:
+            stanza+=[line.strip()]
+    elif line.strip() in (start_mark, end_mark):
+        if inastanza:
+            if not pitchstanza:
+                newfile.extend(stanza)
+            stanza=[]
+        inastanza = 0
+        pitchstanza = 0
+        # Deduplicate markers.
+        if line != prev_line:
+            newfile += [line.strip()]
+    else:
+        if inastanza:
+            if not pitchstanza:
+                stanza+=[line.strip()]
+        else:
+            if not pitchstanza:
+                newfile += [line.strip()]
+    prev_line=line
+
+# Include pending stanza if any.
+if inastanza and not pitchstanza:
+    newfile.extend(stanza)
+
+
+def emit(line):
+    print(line)
+    output = line + "\n"
+    os.write(fd, output.encode('utf-8'))
+
+# Insert the new output at the end and inside the existing markers if found.
+emitted = False
+fd, path = tempfile.mkstemp()
+for line in newfile:
+    if line == end_mark:
+        emit("\n".join(output))
+        emitted = True
+    emit(line)
+if not emitted:
+    emit(start_mark)
+    emit("\n".join(output))
+    emit(end_mark)
+os.close(fd)
+
+shutil.copy(path,if_filename)
+os.chmod(if_filename,0o644)
+
+#print("TMPFILE is at: " + path)
+#print("Copied file is at: " + if_filename)
+
+try:
+    retcode = subprocess.call("ifdown "+basename , shell=True)
+    if retcode < 0:
+        print("Child was terminated by signal", -retcode, file=sys.stderr)
+    else:
+        print("Child returned", retcode, file=sys.stderr)
+except OSError as e:
+    print("Execution failed:", e, file=sys.stderr)
+
+try:
+    retcode = subprocess.call("ifup "+basename , shell=True)
+    if retcode < 0:
+        print("Child was terminated by signal", -retcode, file=sys.stderr)
+    else:
+        print("Child returned", retcode, file=sys.stderr)
+except OSError as e:
+    print("Execution failed:", e, file=sys.stderr)
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/bumpabi
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/bumpabi
@@ -0,0 +1,3 @@
+UBUNTU: Bump ABI
+
+Ignore: yes
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/config-updates
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/config-updates
@@ -0,0 +1,15 @@
+#
+# This template is used for commit messages that don't need to
+# show up in debian/changelog. Administrative stuff like config
+# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents
+# 'debian/rules insertchanges' from inserting this commit meesage
+# as a changelog entry.
+#
+# Please give a one-line description of the config change followed
+# by a detailed explanation if necessary
+
+UBUNTU: [Config] XXXX
+
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/external-driver
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/external-driver
@@ -0,0 +1,20 @@
+# Ubuntu external driver commit.
+#
+# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and
+# debian/changelog.
+#
+# This is only needed when a driver is added, updated or removed. It is
+# not needed when patches or fixes are applied to the driver. If the
+# driver is being removed, add the line:
+#
+# Removing: yes
+#
+# to the commit, and you can remove all other tags (except UBUNTU:).
+#
+UBUNTU: 
+
+ExternalDriver: 
+Description:
+Url:
+Mask:
+Version:
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/missing-modules
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/missing-modules
@@ -0,0 +1,3 @@
+UBUNTU: build/modules: Add modules that have intentionally gone missing
+
+Ignore: yes
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/newrelease
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/newrelease
@@ -0,0 +1,3 @@
+UBUNTU: Start new release
+
+Ignore: yes
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/sauce-patch
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/sauce-patch
@@ -0,0 +1,40 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+#
+# SAUCE refers to the fact that this patch might not go upstream, but we need to
+# carry it to successive releases. In most cases you DONOT want to use this
+# template. 
+#
+# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been
+# refused upstream, but still provides useful functionality to users with broken
+# BIOSes.
+#
+#-------------------------------------------------------------------------
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: SAUCE: 
+
+<Why is this patch not going upstream?>
+
+# OriginalAuthor: 
+# OriginalLocation: 
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-gkeop-5.4-5.4.0.orig/debian/commit-templates/upstream-patch
+++ linux-gkeop-5.4-5.4.0/debian/commit-templates/upstream-patch
@@ -0,0 +1,27 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: [Upstream]
+
+# OriginalAuthor: 
+# OriginalLocation: 
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-gkeop-5.4-5.4.0.orig/debian/compat
+++ linux-gkeop-5.4-5.4.0/debian/compat
@@ -0,0 +1 @@
+9
--- linux-gkeop-5.4-5.4.0.orig/debian/control
+++ linux-gkeop-5.4-5.4.0/debian/control
@@ -0,0 +1,249 @@
+Source: linux-gkeop-5.4
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ libcap-dev <!stage1>,
+ makedumpfile [amd64 i386] <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ default-jdk-headless <!stage1>,
+ java-common <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf i386 ppc64el] <!stage1>,
+ liblzma-dev <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ libnuma-dev [amd64 arm64 i386 ppc64el s390x] <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python-sphinx <!stage1>,
+ python-sphinx-rtd-theme <!stage1>,
+ fontconfig <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-gke/+git/bionic -b gkeop-5.4
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: linux-gkeop-5.4-source-5.4.0
+Build-Profiles: <!stage1>
+Architecture: all
+Section: devel
+Priority: optional
+Provides: linux-gkeop-5.4-source
+Depends: ${misc:Depends}, binutils, bzip2, coreutils
+Recommends: libc-dev, gcc, make
+Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev
+Description: Linux kernel source for version 5.4.0 with Ubuntu patches
+ This package provides the source code for the Linux kernel version
+ 5.4.0.
+ .
+ This package is mainly meant for other packages to use, in order to build
+ custom flavours.
+ .
+ If you wish to use this package to create a custom Linux kernel, then it
+ is suggested that you investigate the package kernel-package, which has
+ been designed to ease the task of creating kernel image packages.
+ .
+ If you are simply trying to build third-party modules for your kernel,
+ you do not want this package. Install the appropriate linux-gkeop-5.4-headers
+ package instead.
+
+Package: linux-gkeop-5.4-headers-5.4.0-1015
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version 5.4.0
+ This package provides kernel header files for version 5.4.0, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/linux-gkeop-5.4-headers-5.4.0-1015/debian.README.gz for details
+
+Package: linux-gkeop-5.4-tools-5.4.0-1015
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version 5.4.0-1015
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version 5.4.0-1015 on
+ 64 bit x86.
+ You probably want to install linux-tools-5.4.0-1015-<flavour>.
+
+Package: linux-gkeop-5.4-cloud-tools-5.4.0-1015
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common
+Description: Linux kernel version specific cloud tools for version 5.4.0-1015
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud tools for version 5.4.0-1015 on
+ 64 bit x86.
+ You probably want to install linux-cloud-tools-5.4.0-1015-<flavour>.
+
+
+Package: linux-image-unsigned-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Provides: linux-gkeop-5.4-image, fuse-module, aufs-dkms, kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [i386 amd64 x32], ${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.4.0-1015-gkeop
+Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el], initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image-5.4.0-1015-gkeop
+Suggests: fdutils, linux-gkeop-5.4-doc-5.4.0 | linux-gkeop-5.4-source-5.4.0, linux-gkeop-5.4-tools, linux-headers-5.4.0-1015-gkeop
+Description: Linux kernel image for version 5.4.0 on 64 bit x86 SMP
+ This package contains the unsigned Linux kernel image for version 5.4.0 on
+ 64 bit x86 SMP.
+ .
+ Supports gkeop processors.
+ .
+ Geared toward GKE on-prem installations.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-gkeop meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports gkeop processors.
+ .
+ Geared toward GKE on-prem installations.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-gkeop meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-extra-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-5.4.0-1015-gkeop | linux-image-unsigned-5.4.0-1015-gkeop, crda | wireless-crda
+Description: Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
+ This package contains the Linux kernel extra modules for version 5.4.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports gkeop processors.
+ .
+ Geared toward GKE on-prem installations.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-gkeop meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-gkeop-5.4-headers-5.4.0-1015, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 5.4.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-gkeop-5.4-headers-5.4.0-1015/debian.README.gz for details.
+
+Package: linux-image-unsigned-5.4.0-1015-gkeop-dbgsym
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-gkeop-5.4-debug
+Description: Linux kernel debug image for version 5.4.0 on 64 bit x86 SMP
+ This package provides the unsigned kernel debug image for version 5.4.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-gkeop-5.4-tools-5.4.0-1015
+Description: Linux kernel version specific tools for version 5.4.0-1015
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version 5.4.0-1015 on
+ 64 bit x86.
+
+Package: linux-cloud-tools-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-gkeop-5.4-cloud-tools-5.4.0-1015
+Description: Linux kernel version specific cloud tools for version 5.4.0-1015
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud for version 5.4.0-1015 on
+ 64 bit x86.
+
+
+Package: linux-buildinfo-5.4.0-1015-gkeop
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel buildinfo for version 5.4.0 on 64 bit x86 SMP
+ This package contains the Linux kernel buildinfo for version 5.4.0 on
+ 64 bit x86 SMP.
+ .
+ You likely do not want to install this package.
--- linux-gkeop-5.4-5.4.0.orig/debian/control.d/flavour-buildinfo.stub
+++ linux-gkeop-5.4-5.4.0/debian/control.d/flavour-buildinfo.stub
@@ -0,0 +1,13 @@
+
+Package: linux-buildinfo-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel buildinfo for version PKGVER on DESC
+ This package contains the Linux kernel buildinfo for version PKGVER on
+ DESC.
+ .
+ You likely do not want to install this package.
--- linux-gkeop-5.4-5.4.0.orig/debian/copyright
+++ linux-gkeop-5.4-5.4.0/debian/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-gkeop-5.4-5.4.0.orig/debian/debian.env
+++ linux-gkeop-5.4-5.4.0/debian/debian.env
@@ -0,0 +1 @@
+DEBIAN=debian.gkeop-5.4
--- linux-gkeop-5.4-5.4.0.orig/debian/dkms-versions
+++ linux-gkeop-5.4-5.4.0/debian/dkms-versions
@@ -0,0 +1,9 @@
+zfs-linux 0.8.3-1ubuntu12.7
+nvidia-graphics-drivers-390 390.141-0ubuntu0.20.04.1
+nvidia-graphics-drivers-450 450.102.04-0ubuntu0.20.04.2 transition=nvidia-graphics-drivers-440 transition=nvidia-graphics-drivers-430
+nvidia-graphics-drivers-460 460.56-0ubuntu0.20.04.1 transition=nvidia-graphics-drivers-455 transition=nvidia-graphics-drivers-435
+nvidia-graphics-drivers-418-server 418.181.07-0ubuntu0.20.04.2
+nvidia-graphics-drivers-450-server 450.102.04-0ubuntu0.20.04.2 transition=nvidia-graphics-drivers-440-server
+nvidia-graphics-drivers-460-server 460.32.03-0ubuntu0.20.04.2
+virtualbox 6.1.16-dfsg-6~ubuntu1.20.04.1
+wireguard-linux-compat 1.0.20201112-1~20.04.1
--- linux-gkeop-5.4-5.4.0.orig/debian/docs/README.inclusion-list
+++ linux-gkeop-5.4-5.4.0/debian/docs/README.inclusion-list
@@ -0,0 +1,51 @@
+This README describes the reason for, and the use of, module
+inclusion lists.
+
+The original Hardy release had the notion of sub-flavours,
+e.g., a flavour that was constructed as a subset of an existing flavour.
+For example, the virtual flavour was extracted from the server flavour using
+a subset of the server flavour modules. However, there were some difficult
+mainteneance issues with regard to packaging, make rules, and scripts. This
+re-implementation of the sub-flavours philosophy is hopefully simpler,
+and retrofitable to all releases.
+
+A module inclusion list looks at the problem of of constructing a package
+from the perspective of what modules do we _want_ in the package, as opposed
+to what modules we _don't_ want. As the kernel matures, more and more devices are added
+which makes the problem of configuration maintenance a real pain in the ass.
+If we took the approach of disabling all of the config options that we don't want,
+then the differences between flavours will quickly become quite large, making
+it difficult to quickly compare the individual flavour configs.  Each time a
+new config option is added then we also have to make a decision about disabling in
+order to continue to keep the minimal number of modules.
+
+A module inclusion list is applied on a per-flavour basis. For example,
+debian.<BRANCH>/control.d/${flavour}.inclusion-list. For example, the
+config for virtual is very close to server and generic, but the inclusion list
+causes the virtual package to be constructed with _only_ the modules described 
+in the inclusion list.
+
+The inclusion list format is a simple bash regular expression list of files. For example,
+
+arch/*/{crypto,kernel,oprofile}
+drivers/acpi/*
+drivers/ata/ahci.ko
+
+These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'.
+See debian/scripts/module-inclusion for details.
+
+There are 2 log files created as a side effect of the application of the module
+inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log.
+
+$(flavour).inclusion-list.log : This log is created while the inclusion list
+modules are being copied. If any are missing, then those warnings go in this log.
+While its not considered a fatal error, you should endevour to correct your inclusion
+list such that there are no missing modules.
+
+$(flavour).depmod.log : The log is created as a result of running depmod on the
+resulting set of modules. If there are missing symbols then you'll find that information
+here. Again, you should modify your inclusion list such that there are no missing
+symbols.
+
+Tim Gardner <tim.gardner@canonical.com>
+June 2, 2010
--- linux-gkeop-5.4-5.4.0.orig/debian/gbp.conf
+++ linux-gkeop-5.4-5.4.0/debian/gbp.conf
@@ -0,0 +1,2 @@
+[buildpackage]
+debian-tag = Ubuntu-%(version)s
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.service
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.service
@@ -0,0 +1,14 @@
+# On Azure/Hyper-V systems start the hv_fcopy_daemon
+#
+# author "Andy Whitcroft <apw@canonical.com>"
+[Unit]
+Description=Hyper-V File Copy Protocol Daemon
+ConditionVirtualization=microsoft
+ConditionPathExists=/dev/vmbus/hv_fcopy
+BindsTo=sys-devices-virtual-misc-vmbus\x21hv_fcopy.device
+
+[Service]
+ExecStart=/usr/sbin/hv_fcopy_daemon -n
+
+[Install]
+WantedBy=multi-user.target
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.udev
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.udev
@@ -0,0 +1 @@
+SUBSYSTEM=="misc", KERNEL=="vmbus/hv_fcopy", TAG+="systemd", ENV{SYSTEMD_WANTS}+="hv-fcopy-daemon.service"
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart
@@ -0,0 +1,22 @@
+# On Azure/Hyper-V systems start the hv_fcopy_daemon
+#
+description "Hyper-V File Copy Protocol Daemon"
+author "Andy Whitcroft <apw@canonical.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+console log
+
+pre-start script
+        if [ -e "/etc/default/hv-kvp-daemon-init" ]; then
+                . /etc/default/hv-kvp-daemon-init
+        fi
+        [ "$RUN_FCOPY_DAEMON" -eq 0 ] && { stop; exit 0; }
+	if [ -d /sys/class/dmi/id/. ]; then
+		read company </sys/class/dmi/id/sys_vendor
+		read product </sys/class/dmi/id/product_name
+		[ "$company:$product" = 'Microsoft Corporation:Virtual Machine' ] || { stop; exit 0; }
+	fi
+end script
+
+exec /usr/sbin/hv_fcopy_daemon -n
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.service
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-kvp-daemon.service
@@ -0,0 +1,18 @@
+# On Azure/Hyper-V systems start the hv_kvp_daemon
+#
+# author "Andy Whitcroft <apw@canonical.com>"
+[Unit]
+Description=Hyper-V KVP Protocol Daemon
+ConditionVirtualization=microsoft
+DefaultDependencies=no
+BindsTo=sys-devices-virtual-misc-vmbus\x21hv_kvp.device
+After=sys-devices-virtual-misc-vmbus\x21hv_kvp.device systemd-remount-fs.service
+Before=shutdown.target cloud-init-local.service walinuxagent.service
+Conflicts=shutdown.target
+RequiresMountsFor=/var/lib/hyperv
+
+[Service]
+ExecStart=/usr/sbin/hv_kvp_daemon -n
+
+[Install]
+WantedBy=multi-user.target
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.udev
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-kvp-daemon.udev
@@ -0,0 +1 @@
+SUBSYSTEM=="misc", KERNEL=="vmbus/hv_kvp", TAG+="systemd", ENV{SYSTEMD_WANTS}+="hv-kvp-daemon.service"
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.upstart
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-kvp-daemon.upstart
@@ -0,0 +1,22 @@
+# On Azure/Hyper-V systems start the hv_kvp_daemon
+#
+description "Hyper-V KVP Protocol Daemon"
+author "Adam Conrad <adconrad@canonical.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+console log
+
+pre-start script
+        if [ -e "/etc/default/hv-kvp-daemon-init" ]; then
+                . /etc/default/hv-kvp-daemon-init
+        fi
+        [ "$RUN_KVP_DAEMON" = 0 ] && { stop; exit 0; }
+	if [ -d /sys/class/dmi/id/. ]; then
+		read company </sys/class/dmi/id/sys_vendor
+		read product </sys/class/dmi/id/product_name
+		[ "$company:$product" = 'Microsoft Corporation:Virtual Machine' ] || { stop; exit 0; }
+	fi
+end script
+
+exec /usr/sbin/hv_kvp_daemon -n
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.service
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-vss-daemon.service
@@ -0,0 +1,14 @@
+# On Azure/Hyper-V systems start the hv_vss_daemon
+#
+# author "Andy Whitcroft <apw@canonical.com>"
+[Unit]
+Description=Hyper-V VSS Protocol Daemon
+ConditionVirtualization=microsoft
+ConditionPathExists=/dev/vmbus/hv_vss
+BindsTo=sys-devices-virtual-misc-vmbus\x21hv_vss.device
+
+[Service]
+ExecStart=/usr/sbin/hv_vss_daemon -n
+
+[Install]
+WantedBy=multi-user.target
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.udev
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-vss-daemon.udev
@@ -0,0 +1 @@
+SUBSYSTEM=="misc", KERNEL=="vmbus/hv_vss", TAG+="systemd", ENV{SYSTEMD_WANTS}+="hv-vss-daemon.service"
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.upstart
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.hv-vss-daemon.upstart
@@ -0,0 +1,22 @@
+# On Azure/Hyper-V systems start the hv_vss_daemon
+#
+description "Hyper-V VSS Protocol Daemon"
+author "Ben Howard <ben.howard@canonical.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+console log
+
+pre-start script
+        if [ -e "/etc/default/hv-kvp-daemon-init" ]; then
+                . /etc/default/hv-kvp-daemon-init
+        fi
+        [ "$RUN_VSS_DAEMON" -eq 0 ] && { stop; exit 0; }
+	if [ -d /sys/class/dmi/id/. ]; then
+		read company </sys/class/dmi/id/sys_vendor
+		read product </sys/class/dmi/id/product_name
+		[ "$company:$product" = 'Microsoft Corporation:Virtual Machine' ] || { stop; exit 0; }
+	fi
+end script
+
+exec /usr/sbin/hv_vss_daemon -n
--- linux-gkeop-5.4-5.4.0.orig/debian/linux-cloud-tools-common.intel-sgx-load-module.service
+++ linux-gkeop-5.4-5.4.0/debian/linux-cloud-tools-common.intel-sgx-load-module.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Install SGX kernel module
+DefaultDependencies=false
+ConditionVirtualization=microsoft
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStart=/sbin/modprobe intel_sgx
+ExecStop=/sbin/modprobe -r intel_sgx
+
+[Install]
+WantedBy=multi-user.target
--- linux-gkeop-5.4-5.4.0.orig/debian/rules
+++ linux-gkeop-5.4-5.4.0/debian/rules
@@ -0,0 +1,249 @@
+#!/usr/bin/make -f
+#
+# $(DEBIAN)/rules for Ubuntu linux
+#
+# Use this however you want, just give credit where credit is due.
+#
+# Copyright (c) 2007 Ben Collins <bcollins@ubuntu.com>
+#
+
+DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
+
+# dpkg-buildpackage passes options that are incomptatible
+# with the kernel build.
+unexport CFLAGS
+unexport LDFLAGS
+
+export LC_ALL=C
+export SHELL=/bin/bash -e
+
+# Where do we find the common configuration.
+export DROOT=debian
+
+# Common variables for all architectures
+include $(DROOT)/rules.d/0-common-vars.mk
+
+# Pull in some arch specific stuff
+-include $(DEBIAN)/rules.d/$(arch).mk
+
+# Pull in some branch specific stuff. Used by LTS backport
+# branches to override master branch settings such as do_tools_common.
+-include $(DEBIAN)/rules.d/hooks.mk
+
+# Maintainer targets
+include $(DROOT)/rules.d/1-maintainer.mk
+
+do_linux_tools=$(sort $(filter-out false,$(do_tools_usbip) $(do_tools_cpupower) $(do_tools_perf) $(do_tools_bpftool) $(do_tools_x86)))
+do_cloud_tools=$(sort $(filter-out false,$(do_tools_hyperv)))
+do_tools_common?=true
+do_tools_host?=false
+do_tools_perf_jvmti?=false
+do_enforce_all?=false
+
+# Don't build tools or udebs in a cross compile environment.
+ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
+	do_tools=false
+	disable_d_i=true
+	do_zfs=false
+	do_dkms_nvidia=false
+	do_dkms_nvidia_server=false
+	do_dkms_vbox=false
+	do_dkms_wireguard=false
+endif
+
+# Are any of the kernel signing options enabled.
+any_signed=$(sort $(filter-out false,$(uefi_signed) $(opal_signed) $(sipl_signed)))
+ifeq ($(any_signed),true)
+bin_pkg_name=$(bin_pkg_name_unsigned)
+else
+bin_pkg_name=$(bin_pkg_name_signed)
+endif
+
+# Stages -- support both DEB_STAGE=stage1 and DEB_BUILD_PROFILE=bootstrap
+ifeq ($(DEB_STAGE),stage1)
+    DEB_BUILD_PROFILES=stage1
+endif
+ifneq ($(DEB_BUILD_PROFILE),)
+    DEB_BUILD_PROFILES=$(DEB_BUILD_PROFILE)
+endif
+ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+    do_tools=false
+    do_doc_package=false
+    do_source_package=false
+    do_flavour_image_package=false
+    do_flavour_header_package=false
+endif
+
+# autopkgtest -- rebuild support
+#  - only build the first flavour on the assumption it is representative
+#  - disable dkms builds as the versions used may have been deleted
+ifneq ($(filter autopkgtest,$(DEB_BUILD_PROFILES)),)
+	flavours := $(firstword $(flavours))
+	disable_d_i=true
+	do_zfs=false
+	do_dkms_nvidia=false
+	do_dkms_nvidia_server=false
+	do_dkms_vbox=false
+endif
+
+# Being used to build a mainline build -- turn off things which do not work.
+ifeq ($(do_mainline_build),true)
+	do_extras_package=false
+	do_tools=false
+	no_dumpfile=1
+	do_zfs=false
+	do_dkms_nvidia=false
+	do_dkms_nvidia_server=false
+	do_dkms_vbox=false
+	skipabi=true
+	skipmodule=true
+	skipretpoline=true
+endif
+
+# Disable tools build and packaging if do_tools != true
+ifneq ($(do_tools),true)
+	do_linux_tools=
+	do_cloud_tools=
+	do_tools_common=
+	do_tools_host=
+endif
+
+ifeq ($(do_zfs),false)
+	do_zfs_disable:=$(shell for m in $$(cat $(DROOT)/zfs-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+ifeq ($(do_dkms_vbox),false)
+	do_vbox_disable:=$(shell for m in $$(cat $(DROOT)/vbox-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+ifeq ($(do_dkms_wireguard),false)
+	do_wireguard_disable:=$(shell for m in $$(cat $(DROOT)/wireguard-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+# Either tools package needs the common source preparation
+do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools)))
+
+# Versions of dkms packages.
+dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions)
+dkms_vbox_guest_version=$(shell gawk '/^virtualbox/ { print $$2; }' debian/dkms-versions)
+dkms_wireguard_version=$(shell gawk '/^wireguard-linux-compat / { print $$2; }' debian/dkms-versions)
+
+# NVIDIA DKMS package gross series split into desktop and server.
+nvidia_desktop_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*\) .*/\1/p' debian/dkms-versions)
+nvidia_server_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*-server\) .*/\1/p' debian/dkms-versions)
+
+# Debian Build System targets
+binary: binary-indep binary-arch
+
+build: build-arch build-indep
+
+clean: debian/control debian/canonical-certs.pem
+	dh_testdir
+	dh_testroot
+	dh_clean
+
+	# d-i stuff
+	rm -rf $(DEBIAN)/d-i-$(arch)
+	# Generated on the fly.
+	rm -f $(DEBIAN)/d-i/firmware/$(arch)/kernel-image
+
+	# normal build junk
+	rm -rf $(DEBIAN)/abi/$(release)-$(revision)
+	rm -rf $(builddir)
+	rm -f $(stampdir)/stamp-*
+	rm -rf $(DEBIAN)/linux-*
+
+	# This gets rid of the d-i packages in control
+	cp -f $(DEBIAN)/control.stub $(DROOT)/control
+	cp $(DEBIAN)/changelog debian/changelog
+
+	# Install the copyright information.
+	cp $(DEBIAN)/copyright debian/copyright
+
+	# Install the retpoline extractor.
+	cp $(DROOT)/scripts/retpoline-extract-one scripts/ubuntu-retpoline-extract-one
+
+	# If we have a reconstruct script use it.
+	[ -f $(DEBIAN)/reconstruct ] && bash $(DEBIAN)/reconstruct || true
+
+	# Remove generated intermediate files
+	rm -f $(DROOT)/control.stub $(DEBIAN)/control.stub
+	rm -f $(DROOT)/scripts/fix-filenames
+
+distclean: clean
+	rm -rf $(DROOT)/control debian/changelog \
+		debian/control debian/control.stub debian/copyright \
+		scripts/ubuntu-retpoline-extract-one
+
+# Builds the image, arch headers and debug packages
+include $(DROOT)/rules.d/2-binary-arch.mk
+
+# Rules for building the udebs ($(DEBIAN)-installer)
+include $(DROOT)/rules.d/5-udebs.mk
+
+# Builds the source, doc and linux-headers indep packages
+include $(DROOT)/rules.d/3-binary-indep.mk
+
+# Various checks to be performed on builds
+include $(DROOT)/rules.d/4-checks.mk
+
+control_files := $(DEBIAN)/control.stub.in
+ifeq ($(do_libc_dev_package),true)
+ifneq (,$(wildcard $(DEBIAN)/control.d/linux-libc-dev.stub))
+	control_files += $(DEBIAN)/control.d/linux-libc-dev.stub
+endif
+endif
+ifeq ($(do_doc_package),true)
+ifneq (,$(wildcard $(DEBIAN)/control.d/linux-doc.stub))
+	control_files += $(DEBIAN)/control.d/linux-doc.stub
+endif
+endif
+
+# Misc stuff
+.PHONY: $(DEBIAN)/control.stub
+$(DEBIAN)/control.stub: 				\
+		$(DROOT)/scripts/control-create		\
+		$(control_files)			\
+		$(DEBIAN)/changelog			\
+		$(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
+	for i in $(control_files); do                                           \
+	  cat $$i;                                                              \
+	  echo "";                                                              \
+	done | sed -e 's/PKGVER/$(release)/g'                                   \
+	        -e 's/ABINUM/$(abinum)/g'                                       \
+		-e 's/SRCPKGNAME/$(src_pkg_name)/g'                             \
+		-e 's/=HUMAN=/$(human_arch)/g'                                  \
+		-e 's/=SERIES=/$(series)/g'                                     \
+	  > $(DEBIAN)/control.stub;
+	flavours="$(sort $(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars))";\
+	for i in $$flavours; do							\
+	  $(SHELL) $(DROOT)/scripts/control-create $$i "$(any_signed)" |	\
+		sed -e 's/PKGVER/$(release)/g'                                  \
+		-e 's/ABINUM/$(abinum)/g'                                       \
+		-e 's/SRCPKGNAME/$(src_pkg_name)/g'                             \
+		-e 's/=HUMAN=/$(human_arch)/g'                                  \
+		-e 's/=SERIES=/$(series)/g'                                     \
+		>> $(DEBIAN)/control.stub;                                      \
+	done
+
+.PHONY: debian/control
+debian/control: $(DEBIAN)/control.stub
+	echo "# placebo control.stub for kernel-wedge flow change" >debian/control.stub
+	cp $(DEBIAN)/control.stub debian/control
+	export KW_DEFCONFIG_DIR=$(DEBIAN)/d-i && \
+	export KW_CONFIG_DIR=$(DEBIAN)/d-i && \
+	LANG=C kernel-wedge gen-control $(release)-$(abinum) | \
+		perl -f $(DROOT)/scripts/misc/kernel-wedge-arch.pl $(arch) \
+		>>$(CURDIR)/debian/control
+
+debian/canonical-certs.pem: $(wildcard $(DROOT)/certs/*-all.pem) $(wildcard $(DROOT)/certs/*-$(arch).pem) $(wildcard $(DEBIAN)/certs/*-all.pem) $(wildcard $(DEBIAN)/certs/*-$(arch).pem)
+	for cert in $(sort $(notdir $^));					\
+	do									\
+		for dir in $(DEBIAN) $(DROOT);					\
+		do								\
+			if [ -f "$$dir/certs/$$cert" ]; then			\
+				cat "$$dir/certs/$$cert";			\
+				break;						\
+			fi;							\
+		done;								\
+	done >"$@"
--- linux-gkeop-5.4-5.4.0.orig/debian/rules.d/0-common-vars.mk
+++ linux-gkeop-5.4-5.4.0/debian/rules.d/0-common-vars.mk
@@ -0,0 +1,279 @@
+# Used when you need to 'escape' a comma.
+comma = ,
+
+#
+# The source package name will be the first token from $(DEBIAN)/changelog
+#
+src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog)
+
+# Get the series
+series=$(shell dpkg-parsechangelog -l$(DEBIAN)/changelog | sed -ne 's/^Distribution: *//p' | sed -e 's/-\(security\|updates\|proposed\)$$//')
+
+# Get some version info
+release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog)
+revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac)
+revision ?= $(word $(words $(revisions)),$(revisions))
+prev_revisions := $(filter-out $(revision),0.0 $(revisions))
+prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions))
+
+prev_fullver ?= $(shell dpkg-parsechangelog -l$(DEBIAN)/changelog -o1 -c1 | sed -ne 's/^Version: *//p')
+
+# Get variants. Assume primary if debian/variants is not present.
+variants = --
+ifneq (,$(wildcard $(DEBIAN)/variants))
+	variants := $(shell cat $(DEBIAN)/variants)
+endif
+
+# Get upstream version info
+upstream_version := $(shell sed -n 's/^VERSION = \(.*\)$$/\1/p' Makefile)
+upstream_patchlevel := $(shell sed -n 's/^PATCHLEVEL = \(.*\)$$/\1/p' Makefile)
+upstream_tag := "v$(upstream_version).$(upstream_patchlevel)"
+
+family=ubuntu
+
+# This is an internally used mechanism for the daily kernel builds. It
+# creates packages whose ABI is suffixed with a minimal representation of
+# the current git HEAD sha. If .git/HEAD is not present, then it uses the
+# uuidgen program,
+#
+# AUTOBUILD can also be used by anyone wanting to build a custom kernel
+# image, or rebuild the entire set of Ubuntu packages using custom patches
+# or configs.
+AUTOBUILD=
+
+ifneq ($(AUTOBUILD),)
+skipabi		= true
+skipmodule	= true
+skipretpoline	= true
+skipdbg		= true
+gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi)
+gitverpre=$(shell echo $(gitver) | cut -b -3)
+gitverpost=$(shell echo $(gitver) | cut -b 38-40)
+abi_suffix = -$(gitverpre)$(gitverpost)
+endif
+
+ifneq ($(NOKERNLOG),)
+ubuntu_log_opts += --no-kern-log
+endif
+ifneq ($(PRINTSHAS),)
+ubuntu_log_opts += --print-shas
+endif
+
+# Get the kernels own extra version to be added to the release signature.
+raw_kernelversion=$(shell make kernelversion)
+
+#
+# full_build -- are we doing a full buildd style build
+#
+ifeq ($(wildcard /CurrentlyBuilding),)
+full_build?=false
+else
+full_build?=true
+endif
+
+#
+# The debug packages are ginormous, so you probably want to skip
+# building them (as a developer).
+#
+ifeq ($(full_build),false)
+skipdbg=true
+endif
+
+abinum		:= $(shell echo $(revision) | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$$/\1/')$(abi_suffix)
+prev_abinum	:= $(shell echo $(prev_revision) | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$$/\1/')$(abi_suffix)
+abi_release	:= $(release)-$(abinum)
+
+uploadnum	:= $(shell echo $(revision) | sed -r -e 's/[^\+~]*\.([^\.~]+(~.*)?(\+.*)?$$)/\1/')
+ifneq ($(full_build),false)
+  uploadnum	:= $(uploadnum)-Ubuntu
+endif
+
+# XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload
+#      shift our version higher for this package only.  Ensure this only
+#      occurs for the v2.6.35 kernel so that we do not propogate this into
+#      any other series.
+raw_uploadnum	:= $(shell echo $(revision) | sed -e 's/.*\.//')
+libc_dev_version :=
+ifeq ($(DEBIAN),debian.master)
+ifeq ($(release),2.6.35)
+libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum)
+endif
+endif
+
+DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+DEB_HOST_GNU_TYPE  = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+#
+# Detect invocations of the form 'fakeroot debian/rules binary arch=armhf'
+# within an x86'en schroot. This only gets you part of the way since the
+# packaging phase fails, but you can at least compile the kernel quickly.
+#
+arch := $(DEB_HOST_ARCH)
+ifneq ($(arch),$(DEB_HOST_ARCH))
+	CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)-
+endif
+
+#
+# Detect invocations of the form 'dpkg-buildpackage -B -aarmhf' within
+# an x86'en schroot. This is the only way to build all of the packages
+# (except for tools).
+#
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+	CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
+endif
+
+abidir		:= $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch)
+prev_abidir	:= $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch)
+commonconfdir	:= $(CURDIR)/$(DEBIAN)/config
+archconfdir	:= $(CURDIR)/$(DEBIAN)/config/$(arch)
+sharedconfdir	:= $(CURDIR)/debian.master/config
+builddir	:= $(CURDIR)/debian/build
+stampdir	:= $(CURDIR)/debian/stamps
+
+#
+# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There
+# are places that you'll find linux-image hard coded, but I guess thats OK since the
+# assumption that the binary package always starts with linux-image will never change.
+#
+bin_pkg_name_signed=linux-image-$(abi_release)
+bin_pkg_name_unsigned=linux-image-unsigned-$(abi_release)
+mods_pkg_name=linux-modules-$(abi_release)
+mods_extra_pkg_name=linux-modules-extra-$(abi_release)
+bldinfo_pkg_name=linux-buildinfo-$(abi_release)
+hdrs_pkg_name=linux-headers-$(abi_release)
+indep_hdrs_pkg_name=$(src_pkg_name)-headers-$(abi_release)
+
+#
+# The generation of content in the doc package depends on both 'AUTOBUILD=' and
+# 'do_doc_package_content=true'. There are usually build errors during the development
+# cycle, so its OK to leave 'do_doc_package_content=false' until those build
+# failures get sorted out. Finally, the doc package doesn't really need to be built
+# for developer testing (its kind of slow), so only do it if on a buildd.
+ifneq ($(filter --,$(variants)),)
+do_doc_package=true
+else
+do_doc_package=false
+endif
+do_doc_package_content=true
+ifeq ($(full_build),false)
+do_doc_package_content=false
+endif
+doc_pkg_name=$(src_pkg_name)-doc
+
+#
+# Similarly with the linux-source package, you need not build it as a developer. Its
+# somewhat I/O intensive and utterly useless.
+#
+do_source_package=true
+do_source_package_content=true
+ifeq ($(full_build),false)
+do_source_package_content=false
+endif
+
+# linux-libc-dev may not be needed, default to building it only for the
+# primary variant
+ifneq ($(filter --,$(variants)),)
+do_libc_dev_package=true
+else
+do_libc_dev_package=false
+endif
+
+# common headers normally is built as an indep package, but may be arch
+do_common_headers_indep=true
+
+# add a 'full source' mode
+do_full_source=false
+
+# Add an option to enable special drivers which should only be build when
+# explicitly enabled.
+do_odm_drivers=false
+
+# build tools
+ifneq ($(wildcard $(CURDIR)/tools),)
+	ifeq ($(do_tools),)
+		ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+			do_tools=false
+		endif
+	endif
+	do_tools?=true
+else
+	do_tools?=false
+endif
+tools_pkg_name=$(src_pkg_name)-tools-$(abi_release)
+tools_common_pkg_name=$(src_pkg_name)-tools-common
+tools_flavour_pkg_name=linux-tools-$(abi_release)
+cloud_pkg_name=$(src_pkg_name)-cloud-tools-$(abi_release)
+cloud_common_pkg_name=$(src_pkg_name)-cloud-tools-common
+cloud_flavour_pkg_name=linux-cloud-tools-$(abi_release)
+hosttools_pkg_name=$(src_pkg_name)-tools-host
+
+# The general flavour specific image package.
+do_flavour_image_package=true
+
+# The general flavour specific header package.
+do_flavour_header_package=true
+
+# DTBs
+do_dtbs=false
+
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+#
+# These 2 environment variables set the -j value of the kernel build. For example,
+# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs
+# or
+# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs
+#
+# The default is to use the number of CPUs.
+#
+COMMA=,
+DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ifneq (,$(DEB_BUILD_OPTIONS_PARA))
+  CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA)
+endif
+
+ifeq ($(CONCURRENCY_LEVEL),)
+  # Check the environment
+  CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL)
+  # No? Then build with the number of CPUs on the host.
+  ifeq ($(CONCURRENCY_LEVEL),)
+      CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1)
+  endif
+  # Oh hell, give 'em one
+  ifeq ($(CONCURRENCY_LEVEL),)
+    CONCURRENCY_LEVEL := 1
+  endif
+endif
+
+conc_level		= -j$(CONCURRENCY_LEVEL)
+
+# target_flavour is filled in for each step
+kmake = make ARCH=$(build_arch) \
+	CROSS_COMPILE=$(CROSS_COMPILE) \
+	KERNELVERSION=$(abi_release)-$(target_flavour) \
+	CONFIG_DEBUG_SECTION_MISMATCH=y \
+	KBUILD_BUILD_VERSION="$(uploadnum)" \
+	LOCALVERSION= localver-extra= \
+	CFLAGS_MODULE="-DPKG_ABI=$(abinum)"
+ifneq ($(LOCAL_ENV_CC),)
+kmake += CC="$(LOCAL_ENV_CC)" DISTCC_HOSTS="$(LOCAL_ENV_DISTCC_HOSTS)"
+endif
+
+# Locking is required in parallel builds to prevent loss of contents
+# of the debian/files.
+lockme_file = $(CURDIR)/debian/.LOCK
+lockme_cmd = flock -w 60
+lockme = $(lockme_cmd) $(lockme_file)
+
+# Don't fail if a link already exists.
+LN = ln -sf
+
+# Checks if a var is overriden by the custom rules. Called with var and
+# flavour as arguments.
+custom_override = \
+ $(shell if [ -n "$($(1)_$(2))" ]; then echo "$($(1)_$(2))"; else echo "$($(1))"; fi)
+
+# selftests that Ubuntu cares about
+ubuntu_selftests = breakpoints bpf cpu-hotplug efivarfs memfd memory-hotplug mount net ptrace seccomp timers powerpc user ftrace
--- linux-gkeop-5.4-5.4.0.orig/debian/rules.d/1-maintainer.mk
+++ linux-gkeop-5.4-5.4.0/debian/rules.d/1-maintainer.mk
@@ -0,0 +1,176 @@
+# The following targets are for the maintainer only! do not run if you don't
+# know what they do.
+
+.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs autoreconstruct finalchecks
+
+help:
+	@echo "These are the targets in addition to the normal $(DEBIAN) ones:"
+	@echo
+	@echo "  printenv        : Print some variables used in the build"
+	@echo
+	@echo "  updateconfigs        : Update core arch configs"
+	@echo
+	@echo "  editconfigs          : Update core arch configs interractively"
+	@echo "  genconfigs           : Generate core arch configs in CONFIGS/*"
+	@echo
+	@echo "  updateportsconfigs   : Update ports arch configs"
+	@echo
+	@echo "  editportsconfigs     : Update ports arch configs interactivly"
+	@echo "  genportconfigs       : Generate ports arch configs in CONFIGS/*"
+	@echo
+	@echo "  printchanges    : Print the current changelog entries (from git)"
+	@echo
+	@echo "  insertchanges   : Insert current changelog entries (from git)"
+	@echo
+	@echo "  startnewrelease : Start a new changelog set"
+	@echo
+	@echo "  diffupstream    : Diff stock kernel code against upstream (git)"
+	@echo
+	@echo "  compileselftests : Only compile the selftests listed on ubuntu_selftests variable"
+	@echo
+	@echo "  runselftests    : Run the selftests listed on ubuntu_selftests variable"
+	@echo
+	@echo "  help            : If you are kernel hacking, you need the professional"
+	@echo "                    version of this"
+	@echo
+	@echo "Environment variables:"
+	@echo
+	@echo "  NOKERNLOG       : Do not add upstream kernel commits to changelog"
+	@echo "  CONCURRENCY_LEVEL=X"
+	@echo "                  : Use -jX for kernel compile"
+	@echo "  PRINTSHAS       : Include SHAs for commits in changelog"
+
+printdebian:
+	@echo "$(DEBIAN)"
+
+updateconfigs defaultconfigs editconfigs genconfigs dumpconfigs:
+	dh_testdir;
+	$(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ "$(do_enforce_all)"
+	rm -rf build
+
+updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs:
+	dh_testdir;
+	$(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ ports
+	rm -rf build
+
+printenv:
+	dh_testdir
+	@echo "src package name  = $(src_pkg_name)"
+	@echo "series            = $(series)"
+	@echo "release           = $(release)"
+	@echo "revisions         = $(revisions)"
+	@echo "revision          = $(revision)"
+	@echo "uploadnum         = $(uploadnum)"
+	@echo "prev_revisions    = $(prev_revisions)"
+	@echo "prev_revision     = $(prev_revision)"
+	@echo "abinum            = $(abinum)"
+	@echo "upstream_tag      = $(upstream_tag)"
+	@echo "gitver            = $(gitver)"
+	@echo "variants          = $(variants)"
+	@echo "flavours          = $(flavours)"
+	@echo "skipabi           = $(skipabi)"
+	@echo "skipmodule        = $(skipmodule)"
+	@echo "skipdbg           = $(skipdbg)"
+	@echo "ubuntu_log_opts   = $(ubuntu_log_opts)"
+	@echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)"
+	@echo "ubuntu_selftests  = $(ubuntu_selftests)"
+	@echo "bin package name  = $(bin_pkg_name)"
+	@echo "hdr package name  = $(hdrs_pkg_name)"
+	@echo "doc package name  = $(doc_pkg_name)"
+	@echo "do_doc_package            = $(do_doc_package)"
+	@echo "do_doc_package_content    = $(do_doc_package_content)"
+	@echo "do_source_package         = $(do_source_package)"
+	@echo "do_source_package_content = $(do_source_package_content)"
+	@echo "do_libc_dev_package       = $(do_libc_dev_package)"
+	@echo "do_flavour_image_package  = $(do_flavour_image_package)"
+	@echo "do_flavour_header_package = $(do_flavour_header_package)"
+	@echo "do_common_headers_indep   = $(do_common_headers_indep)"
+	@echo "do_full_source            = $(do_full_source)"
+	@echo "do_odm_drivers            = $(do_odm_drivers)"
+	@echo "do_tools                  = $(do_tools)"
+	@echo "do_any_tools              = $(do_any_tools)"
+	@echo "do_linux_tools            = $(do_linux_tools)"
+	@echo " do_tools_cpupower         = $(do_tools_cpupower)"
+	@echo " do_tools_perf             = $(do_tools_perf)"
+	@echo " do_tools_bpftool          = $(do_tools_bpftool)"
+	@echo " do_tools_x86              = $(do_tools_x86)"
+	@echo " do_tools_host             = $(do_tools_host)"
+	@echo "do_cloud_tools            = $(do_cloud_tools)"
+	@echo " do_tools_hyperv           = $(do_tools_hyperv)"
+	@echo "any_signed                = $(any_signed)"
+	@echo " uefi_signed               = $(uefi_signed)"
+	@echo " opal_signed               = $(opal_signed)"
+	@echo " sipl_signed               = $(sipl_signed)"
+	@echo "full_build                = $(full_build)"
+	@echo "libc_dev_version          = $(libc_dev_version)"
+	@echo "DEB_HOST_GNU_TYPE         = $(DEB_HOST_GNU_TYPE)"
+	@echo "DEB_BUILD_GNU_TYPE        = $(DEB_BUILD_GNU_TYPE)"
+	@echo "DEB_HOST_ARCH             = $(DEB_HOST_ARCH)"
+	@echo "DEB_BUILD_ARCH            = $(DEB_BUILD_ARCH)"
+	@echo "arch                      = $(arch)"
+	@echo "kmake                     = $(kmake)"
+
+printchanges:
+	@baseCommit=$$(git log --pretty=format:'%H %s' | \
+		gawk '/UBUNTU: '".*Ubuntu-.*`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'(~.*)?$$/ { print $$1; exit }'); \
+	if [ -z "$$baseCommit" ]; then \
+		echo "WARNING: couldn't find a commit for the previous version. Using the lastest one." >&2; \
+		baseCommit=$$(git log --pretty=format:'%H %s' | \
+			gawk '/UBUNTU:\s*Ubuntu-.*$$/ { print $$1; exit }'); \
+	fi; \
+	git log "$$baseCommit"..HEAD | \
+	$(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
+
+insertchanges: autoreconstruct finalchecks
+	@perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN) 
+
+autoreconstruct:
+	# No need for reconstruct for -rc kernels since we don't upload an
+	# orig tarball, so just remove it.
+	if grep -q "^EXTRAVERSION = -rc[0-9]\+$$" Makefile; then \
+		echo "exit 0" >$(DEBIAN)/reconstruct; \
+	else \
+		$(DROOT)/scripts/misc/gen-auto-reconstruct $(upstream_tag) $(DEBIAN)/reconstruct $(DROOT)/source/options; \
+	fi
+
+finalchecks: debian/control
+	$(DROOT)/scripts/misc/final-checks "$(DEBIAN)" "$(prev_fullver)"
+
+diffupstream:
+	@git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)')
+
+startnewrelease:
+	dh_testdir
+	@[ -f "$(DEBIAN)/etc/update.conf" ] && . "$(DEBIAN)/etc/update.conf"; \
+	if [ -n "$$BACKPORT_SUFFIX" ]; then \
+		ver="$$(dpkg-parsechangelog -l"$$DEBIAN_MASTER/changelog" -SVersion)$${BACKPORT_SUFFIX}.1"; \
+		prev_ver="$$(dpkg-parsechangelog -l"$(DEBIAN)/changelog" -SVersion)"; \
+		if [ "$${ver%.*}" = "$${prev_ver%.*}" ]; then \
+			ver="$${ver%.*}.$$(( $${prev_ver##*.} +1 ))"; \
+		fi; \
+	else \
+		ver="$(release)-$$(echo "$(revision)" | \
+			perl -ne 'if (/^(\d*)\.(\d*)(.*)?$$/) { printf("%d.%d%s\n", $$1 + 1, $$2 +1, $$3) }')"; \
+	fi; \
+	now="$(shell date -R)"; \
+	echo "Creating new changelog set for $$ver..."; \
+	echo -e "$(src_pkg_name) ($$ver) UNRELEASED; urgency=medium\n" > $(DEBIAN)/changelog.new; \
+	echo "  CHANGELOG: Do not edit directly. Autogenerated at release." >> \
+		$(DEBIAN)/changelog.new; \
+	echo "  CHANGELOG: Use the printchanges target to see the curent changes." \
+		>> $(DEBIAN)/changelog.new; \
+	echo "  CHANGELOG: Use the insertchanges target to create the final log." \
+		>> $(DEBIAN)/changelog.new; \
+	echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL>  $$now\n" >> \
+		$(DEBIAN)/changelog.new ; \
+	cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \
+	mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog
+
+compileselftests:
+	# a loop is needed here to fail on errors
+	for test in $(ubuntu_selftests); do \
+		$(kmake) -C tools/testing/selftests TARGETS="$$test"; \
+	done;
+
+runselftests:
+	$(kmake) -C tools/testing/selftests TARGETS="$(ubuntu_selftests)" run_tests
--- linux-gkeop-5.4-5.4.0.orig/debian/rules.d/2-binary-arch.mk
+++ linux-gkeop-5.4-5.4.0/debian/rules.d/2-binary-arch.mk
@@ -0,0 +1,817 @@
+# We don't want make removing intermediary stamps
+.SECONDARY :
+
+# Prepare the out-of-tree build directory
+ifeq ($(do_full_source),true)
+build_cd = cd $(builddir)/build-$*; #
+build_O  =
+else
+build_cd =
+build_O  = O=$(builddir)/build-$*
+endif
+
+# Typically supplied from the arch makefile, e.g., debian.master/control.d/armhf.mk
+ifneq ($(gcc),)
+kmake += CC=$(CROSS_COMPILE)$(gcc)
+endif
+
+shlibdeps_opts = $(if $(CROSS_COMPILE),-- -l$(CROSS_COMPILE:%-=/usr/%)/lib)
+
+debian/scripts/fix-filenames: debian/scripts/fix-filenames.c
+	$(CC) -o $@ $^
+
+$(stampdir)/stamp-prepare-%: config-prepare-check-%
+	@echo Debug: $@
+	@touch $@
+$(stampdir)/stamp-prepare-tree-%: target_flavour = $*
+$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.% debian/scripts/fix-filenames
+	@echo Debug: $@
+	install -d $(builddir)/build-$*
+	touch $(builddir)/build-$*/ubuntu-build
+	[ "$(do_full_source)" != 'true' ] && true || \
+		rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$*
+	cat $(wordlist 1,3,$^) | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config
+	[ "$(do_odm_drivers)" = 'true' ] && true || \
+		sed -ie 's/.*CONFIG_UBUNTU_ODM_DRIVERS.*/# CONFIG_UBUNTU_ODM_DRIVERS is not set/' \
+		    $(builddir)/build-$*/.config
+	find $(builddir)/build-$* -name "*.ko" | xargs rm -f
+	$(build_cd) $(kmake) $(build_O) -j1 syncconfig prepare scripts
+	touch $@
+
+# Used by developers as a shortcut to prepare a tree for compilation.
+prepare-%: $(stampdir)/stamp-prepare-%
+	@echo Debug: $@
+# Used by developers to allow efficient pre-building without fakeroot.
+build-%: $(stampdir)/stamp-build-%
+	@echo Debug: $@
+
+# Do the actual build, including image and modules
+$(stampdir)/stamp-build-%: target_flavour = $*
+$(stampdir)/stamp-build-%: bldimg = $(call custom_override,build_image,$*)
+$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-%
+	@echo Debug: $@ build_image $(build_image) bldimg $(bldimg)
+	$(build_cd) $(kmake) $(build_O) $(conc_level) $(bldimg) modules $(if $(filter true,$(do_dtbs)),dtbs)
+
+	@touch $@
+
+define build_dkms_sign =
+	$(shell set -x; if grep -q CONFIG_MODULE_SIG=y $(1)/.config; then
+			echo $(1)/scripts/sign-file $(MODHASHALGO) $(MODSECKEY) $(MODPUBKEY);
+		else
+			echo "-";
+		fi
+	)
+endef
+define build_dkms =
+	CROSS_COMPILE=$(CROSS_COMPILE) $(SHELL) $(DROOT)/scripts/dkms-build $(dkms_dir) $(abi_release)-$* '$(call build_dkms_sign,$(builddir)/build-$*)' $(1) $(2) $(3) $(4) $(5)
+endef
+
+# nvidia_build_payload 450 450 450_450.102.04-0ubuntu0.20.04.1
+# nvidia_build_payload 450-server 450srv 50.102.04-0ubuntu0.20.04.1
+define nvidia_build_payload =
+	$(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-$(2), pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-kernel-source-$(1)_$(3)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-dkms-$(1)_$(3)_$(arch).deb)
+endef
+# nvidia_build 450
+# nvidia_build 450-server
+define nvidia_build =
+	$(call nvidia_build_payload,$(1),$(shell echo $(1) | sed -e 's/-server/srv/'),$(shell awk '/^nvidia-graphics-drivers-$(1) / {print($$2);}' debian/dkms-versions))
+
+endef
+
+define install_control =
+	for which in $(3);							\
+	do									\
+		template="$(DROOT)/templates/$(2).$$which.in";			\
+		script="$(DROOT)/$(1).$$which";					\
+		sed -e 's/@abiname@/$(abi_release)/g'				\
+		    -e 's/@localversion@/-$*/g'					\
+		    -e 's/@image-stem@/$(instfile)/g'				\
+			<"$$template" >"$$script";				\
+	done
+endef
+
+# Ensure the directory prefix is exactly 100 characters long so pathnames are the
+# exact same length in any binary files produced by the builds.  These will be
+# commonised later.
+dkms_20d=....................
+dkms_100d=$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d)
+dkms_100c=$(shell echo '$(dkms_100d)' | sed -e 's/\./_/g')
+define dkms_dir_prefix =
+$(shell echo $(1)/$(dkms_100c) | \
+	sed -e 's/\($(dkms_100d)\).*/\1/' -e 's/^\(.*\)....$$/\1dkms/')
+endef
+
+# Install the finished build
+install-%: pkgdir_bin = $(CURDIR)/debian/$(bin_pkg_name)-$*
+install-%: pkgdir = $(CURDIR)/debian/$(mods_pkg_name)-$*
+install-%: pkgdir_ex = $(CURDIR)/debian/$(mods_extra_pkg_name)-$*
+install-%: pkgdir_bldinfo = $(CURDIR)/debian/$(bldinfo_pkg_name)-$*
+install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$*
+install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+install-%: signingv = $(CURDIR)/debian/$(bin_pkg_name)-signing/$(release)-$(revision)
+install-%: toolspkgdir = $(CURDIR)/debian/$(tools_flavour_pkg_name)-$*
+install-%: cloudpkgdir = $(CURDIR)/debian/$(cloud_flavour_pkg_name)-$*
+install-%: basepkg = $(hdrs_pkg_name)
+install-%: indeppkg = $(indep_hdrs_pkg_name)
+install-%: kernfile = $(call custom_override,kernel_file,$*)
+install-%: instfile = $(call custom_override,install_file,$*)
+install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
+install-%: target_flavour = $*
+install-%: MODHASHALGO=sha512
+install-%: MODSECKEY=$(builddir)/build-$*/certs/signing_key.pem
+install-%: MODPUBKEY=$(builddir)/build-$*/certs/signing_key.x509
+install-%: build_dir=$(builddir)/build-$*
+install-%: dkms_dir=$(call dkms_dir_prefix,$(builddir)/build-$*)
+install-%: enable_zfs = $(call custom_override,do_zfs,$*)
+install-%: dbgpkgdir_zfs = $(if $(filter true,$(skipdbg)),"",$(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/kernel)
+install-%: $(stampdir)/stamp-build-% install-headers
+	@echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile)
+	dh_testdir
+	dh_testroot
+	dh_prep -p$(bin_pkg_name)-$*
+	dh_prep -p$(mods_pkg_name)-$*
+	dh_prep -p$(hdrs_pkg_name)-$*
+ifneq ($(skipdbg),true)
+	dh_prep -p$(bin_pkg_name)-$*-dbgsym
+endif
+
+	# The main image
+	# compress_file logic required because not all architectures
+	# generate a zImage automatically out of the box
+ifeq ($(compress_file),)
+	install -m600 -D $(builddir)/build-$*/$(kernfile) \
+		$(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$*
+else
+	install -d $(pkgdir_bin)/boot
+	gzip -c9v $(builddir)/build-$*/$(kernfile) > \
+		$(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$*
+	chmod 600 $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$*
+endif
+
+ifeq ($(uefi_signed),true)
+	install -d $(signingv)
+	# gzipped kernel images must be decompressed for signing
+	if [[ "$(kernfile)" =~ \.gz$$ ]]; then \
+		< $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+			gunzip -cv > $(signingv)/$(instfile)-$(abi_release)-$*.efi; \
+		cp -p --attributes-only $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+			$(signingv)/$(instfile)-$(abi_release)-$*.efi; \
+		echo "GZIP=1" >> $(signingv)/$(instfile)-$(abi_release)-$*.efi.vars; \
+	else \
+		cp -p $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+			$(signingv)/$(instfile)-$(abi_release)-$*.efi; \
+	fi
+endif
+ifeq ($(opal_signed),true)
+	install -d $(signingv)
+	cp -p $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+		$(signingv)/$(instfile)-$(abi_release)-$*.opal;
+endif
+ifeq ($(sipl_signed),true)
+	install -d $(signingv)
+	cp -p $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+		$(signingv)/$(instfile)-$(abi_release)-$*.sipl;
+endif
+
+	install -d $(pkgdir)/boot
+	install -m644 $(builddir)/build-$*/.config \
+		$(pkgdir)/boot/config-$(abi_release)-$*
+	install -m600 $(builddir)/build-$*/System.map \
+		$(pkgdir)/boot/System.map-$(abi_release)-$*
+	if [ "$(filter true,$(do_dtbs))" ]; then \
+		$(build_cd) $(kmake) $(build_O) $(conc_level) dtbs_install \
+			INSTALL_DTBS_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \
+		( cd $(pkgdir)/lib/firmware/$(abi_release)-$*/ && find device-tree -print ) | \
+		while read dtb_file; do \
+			echo "$$dtb_file ?" >> $(DEBIAN)/d-i/firmware/$(arch)/kernel-image; \
+		done; \
+	fi
+ifeq ($(no_dumpfile),)
+	makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+		-x $(builddir)/build-$*/vmlinux
+	chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
+endif
+
+	$(build_cd) $(kmake) $(build_O) $(conc_level) modules_install $(vdso) \
+		INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \
+		INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*
+
+	#
+	# Build module blacklists:
+	#  - blacklist all watchdog drivers (LP:1432837)
+	#
+	install -d $(pkgdir)/lib/modprobe.d
+	echo "# Kernel supplied blacklist for $(src_pkg_name) $(abi_release)-$* $(arch)" \
+		>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+	for conf in $(arch)-$* $(arch) common.conf; do \
+		if [ -f $(DEBIAN)/modprobe.d/$$conf ]; then \
+			echo "# modprobe.d/$$conf"; \
+			cat $(DEBIAN)/modprobe.d/$$conf; \
+		fi; \
+	done >>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+	echo "# Autogenerated watchdog blacklist" \
+		>>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+	ls -1 $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/watchdog/ | \
+		grep -v '^bcm2835_wdt$$' | \
+		sed -e 's/^/blacklist /' -e 's/.ko$$//' | \
+		sort -u \
+		>>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+
+ifeq ($(do_extras_package),true)
+	#
+	# Remove all modules not in the inclusion list.
+	#
+	if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+		/sbin/depmod -v -b $(pkgdir) $(abi_release)-$* | \
+			sed -e "s@$(pkgdir)/lib/modules/$(abi_release)-$*/kernel/@@g" | \
+			awk '{ print $$1 " " $$NF}' >$(build_dir)/module-inclusion.depmap; \
+		mkdir -p $(pkgdir_ex)/lib/modules/$(abi_release)-$*; \
+		mv $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+			$(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel; \
+		$(SHELL) $(DROOT)/scripts/module-inclusion --master \
+			$(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel \
+			$(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+			$(DEBIAN)/control.d/$(target_flavour).inclusion-list \
+			$(build_dir)/module-inclusion.depmap 2>&1 | \
+				tee $(target_flavour).inclusion-list.log; \
+		/sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \
+			$(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \
+		if [ `grep -c 'unknown symbol' $(target_flavour).depmod.log` -gt 0 ]; then \
+			echo "EE: Unresolved module dependencies in base package!"; \
+			exit 1; \
+		fi \
+	fi
+endif
+
+ifeq ($(no_dumpfile),)
+	makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+		-x $(builddir)/build-$*/vmlinux
+	chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
+endif
+	rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build
+	rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source
+
+	# Some initramfs-tools specific modules
+	install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd
+	if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\
+	  $(LN) $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \
+	fi
+
+	echo "interest linux-update-$(abi_release)-$*" >"$(DROOT)/$(bin_pkg_name)-$*.triggers"
+	install -d $(pkgdir_bin)/usr/lib/linux/triggers
+	$(call install_control,$(bin_pkg_name)-$*,image,postinst postrm preinst prerm)
+	install -d $(pkgdir)/usr/lib/linux/triggers
+	$(call install_control,$(mods_pkg_name)-$*,extra,postinst postrm)
+ifeq ($(do_extras_package),true)
+	# Install the postinit/postrm scripts in the extras package.
+	if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then	\
+		install -d $(pkgdir_ex)/usr/lib/linux/triggers; \
+		$(call install_control,$(mods_extra_pkg_name)-$*,extra,postinst postrm); \
+	fi
+endif
+
+	# Install the full changelog.
+ifeq ($(do_doc_package),true)
+	install -d $(bindoc)
+	cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \
+		gzip -9 >$(bindoc)/changelog.Debian.old.gz
+	chmod 644 $(bindoc)/changelog.Debian.old.gz
+endif
+
+ifneq ($(skipsub),true)
+	for sub in $($(*)_sub); do					\
+		if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL)		\
+			$(DROOT)/scripts/sub-flavour); then exit 1; fi;		\
+		/sbin/depmod -b debian/$(bin_pkg_name)-$$sub		\
+			-ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \
+			$(abi_release)-$*;					\
+		$(call install_control,$(bin_pkg_name)--$$sub,image,postinst postrm preinst prerm); \
+	done
+endif
+
+ifneq ($(skipdbg),true)
+	# Debug image is simple
+	install -m644 -D $(builddir)/build-$*/vmlinux \
+		$(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$*
+	$(build_cd) $(kmake) $(build_O) modules_install $(vdso) \
+		INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug
+	# Add .gnu_debuglink sections only after all/DKMS modules are built.
+	rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build
+	rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source
+	rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.*
+	rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware
+endif
+
+	# The flavour specific headers image
+	# TODO: Would be nice if we didn't have to dupe the original builddir
+	install -d -m755 $(hdrdir)
+	cat $(builddir)/build-$*/.config | \
+		sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \
+		$(hdrdir)/.config
+	chmod 644 $(hdrdir)/.config
+	$(kmake) O=$(hdrdir) -j1 syncconfig prepare scripts
+	# We'll symlink this stuff
+	rm -f $(hdrdir)/Makefile
+	rm -rf $(hdrdir)/include2 $(hdrdir)/source
+	# We do not need the retpoline information.
+	find $(hdrdir) -name \*.o.ur-\* | xargs rm -f
+	# Copy over the compilation version.
+	cp "$(builddir)/build-$*/include/generated/compile.h" \
+		"$(hdrdir)/include/generated/compile.h"
+	# Add UTS_UBUNTU_RELEASE_ABI since UTS_RELEASE is difficult to parse.
+	echo "#define UTS_UBUNTU_RELEASE_ABI $(abinum)" >> $(hdrdir)/include/generated/utsrelease.h
+	# powerpc kernel arch seems to need some .o files for external module linking. Add them in.
+ifeq ($(build_arch),powerpc)
+	mkdir -p $(hdrdir)/arch/powerpc/lib
+	cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib
+endif
+	# Copy over the new retpoline extractor.
+	cp scripts/ubuntu-retpoline-extract-one $(hdrdir)/scripts
+	# Script to symlink everything up
+	$(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(indeppkg)" "$*"
+	# The build symlink
+	install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*
+	$(LN) /usr/src/$(basepkg)-$* \
+		debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build
+	# And finally the symvers
+	install -m644 $(builddir)/build-$*/Module.symvers \
+		$(hdrdir)/Module.symvers
+
+	# Now the header scripts
+	$(call install_control,$(hdrs_pkg_name)-$*,headers,postinst)
+
+	# At the end of the package prep, call the tests
+	DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*"	\
+	 VERSION="$(abi_release)" REVISION="$(revision)"		\
+	 PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)"		\
+	 PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*"	\
+	 INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)"			\
+	 run-parts -v $(DROOT)/tests-build
+
+	#
+	# Remove files which are generated at installation by postinst,
+	# except for modules.order and modules.builtin
+	# 
+	# NOTE: need to keep this list in sync with postrm
+	#
+	mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+	mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/_
+	if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \
+	    mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/_; \
+	fi
+	if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin.modinfo ] ; then \
+	    mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin.modinfo \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/_; \
+	fi
+	rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.*
+	mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \
+		$(pkgdir)/lib/modules/$(abi_release)-$*
+	rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+
+ifeq ($(do_linux_tools),true)
+	# Create the linux-tools tool links
+	install -d $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+ifeq ($(do_tools_usbip),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/usbip $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/usbipd $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_acpidbg),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/acpidbg $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_cpupower),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/cpupower $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_perf),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/perf $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+ifeq ($(do_tools_perf_jvmti),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/libperf-jvmti.so $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+endif
+ifeq ($(do_tools_bpftool),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/bpftool $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_x86),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/x86_energy_perf_policy $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/turbostat $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+endif
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	# Create the linux-hyperv tool links
+	install -d $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/hv_kvp_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/hv_vss_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/hv_fcopy_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/lsvmbus $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+endif
+
+	# Build a temporary "installed headers" directory.
+	install -d $(dkms_dir) $(dkms_dir)/headers $(dkms_dir)/build $(dkms_dir)/source
+	cp -rp "$(hdrdir)" "$(indep_hdrdir)" "$(dkms_dir)/headers"
+
+	$(if $(filter true,$(enable_zfs)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_zfs), zfs, pool/universe/z/zfs-linux/zfs-dkms_$(dkms_zfs_linux_version)_all.deb))
+
+	$(if $(filter true,$(do_dkms_wireguard)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", wireguard, pool/universe/w/wireguard-linux-compat/wireguard-dkms_$(dkms_wireguard_version)_all.deb))
+
+ifeq ($(do_dkms_nvidia),true)
+	$(foreach series,$(nvidia_desktop_series),$(call nvidia_build,$(series)))
+endif
+ifeq ($(do_dkms_nvidia_server),true)
+	$(foreach series,$(nvidia_server_series),$(call nvidia_build,$(series)))
+endif
+
+ifeq ($(do_extras_package),true)
+	$(if $(filter true,$(do_dkms_vbox)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", virtualbox-guest, pool/multiverse/v/virtualbox/virtualbox-guest-dkms_$(dkms_vbox_guest_version)_all.deb))
+endif
+
+ifneq ($(skipdbg),true)
+	# Add .gnu_debuglink sections to each stripped .ko
+	# pointing to unstripped verson
+	find $(pkgdir) \
+	  $(if $(filter true,$(do_extras_package)),$(pkgdir_ex)) \
+	  -name '*.ko' | while read path_module ; do \
+		module="/lib/modules/$${path_module#*/lib/modules/}"; \
+		if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \
+			while IFS= read -r -d '' signature < <(tail -c 28 "$$path_module"); do \
+				break; \
+			done; \
+			$(CROSS_COMPILE)objcopy \
+				--add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \
+				$$path_module; \
+			if grep -q CONFIG_MODULE_SIG=y $(builddir)/build-$*/.config && \
+			   [ "$$signature" = $$'~Module signature appended~\n' ]; then \
+				$(builddir)/build-$*/scripts/sign-file $(MODHASHALGO) \
+					$(MODSECKEY) \
+					$(MODPUBKEY) \
+					$$path_module; \
+			fi; \
+		else \
+			echo "WARNING: Missing debug symbols for module '$$module'."; \
+		fi; \
+	done
+endif
+
+	# Build the final ABI information.
+	install -d $(abidir)
+	sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/'	\
+		$(builddir)/build-$*/Module.symvers | sort > $(abidir)/$*
+
+	# Build the final ABI modules information.
+	find $(pkgdir_bin) $(pkgdir) $(pkgdir_ex) -name \*.ko | \
+		sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules
+
+	# Build the final ABI firmware information.
+	find $(pkgdir_bin) $(pkgdir) $(pkgdir_ex) -name \*.ko | \
+	while read ko; do \
+		/sbin/modinfo $$ko | grep ^firmware || true; \
+	done | sort -u >$(abidir)/$*.fwinfo
+
+	# Build the final ABI compiler information.
+	ko=$$(find $(pkgdir_bin) $(pkgdir) $(pkgdir_ex) -name \*.ko | head -1); \
+	readelf -p .comment "$$ko" | gawk ' \
+		($$1 == "[") { \
+			printf("%s", $$3); \
+			for (n=4; n<=NF; n++) { \
+				printf(" %s", $$n); \
+			} \
+			print "" \
+		}' | sort -u >$(abidir)/$*.compiler
+
+	# Build the final ABI retpoline information.
+	if grep -q CONFIG_RETPOLINE=y $(builddir)/build-$*/.config; then \
+		echo "# retpoline v1.0" >$(abidir)/$*.retpoline; \
+		$(SHELL) $(DROOT)/scripts/retpoline-extract $(builddir)/build-$* $(CURDIR) | \
+			sort >>$(abidir)/$*.retpoline; \
+	else \
+		echo "# RETPOLINE NOT ENABLED" >$(abidir)/$*.retpoline; \
+	fi
+
+	# Build the buildinfo package content.
+	install -d $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*
+	install -m644 $(builddir)/build-$*/.config \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/config
+	install -m644 $(abidir)/$* \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/abi
+	install -m644 $(abidir)/$*.modules \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/modules
+	install -m644 $(abidir)/$*.fwinfo \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/fwinfo
+	install -m644 $(abidir)/$*.retpoline \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/retpoline
+	install -m644 $(abidir)/$*.compiler \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/compiler
+
+headers_tmp := $(CURDIR)/debian/tmp-headers
+headers_dir := $(CURDIR)/debian/linux-libc-dev
+
+hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) \
+	KERNELVERSION=$(abi_release) INSTALL_HDR_PATH=$(headers_tmp)/install \
+	SHELL="$(SHELL)" ARCH=$(header_arch)
+
+install-arch-headers:
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+ifeq ($(do_libc_dev_package),true)
+	dh_prep -plinux-libc-dev
+endif
+
+	rm -rf $(headers_tmp)
+	install -d $(headers_tmp) $(headers_dir)/usr/include/
+
+	$(hmake) $(defconfig)
+	mv $(headers_tmp)/.config $(headers_tmp)/.config.old
+	sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
+	  -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
+	  $(headers_tmp)/.config.old > $(headers_tmp)/.config
+	$(hmake) syncconfig
+	$(hmake) headers_install
+
+	( cd $(headers_tmp)/install/include/ && \
+		find . -name '.' -o -name '.*' -prune -o -print | \
+                cpio -pvd --preserve-modification-time \
+			$(headers_dir)/usr/include/ )
+	mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)
+	mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/
+
+	rm -rf $(headers_tmp)
+
+define dh_all
+	dh_installchangelogs -p$(1)
+	dh_installdocs -p$(1)
+	dh_compress -p$(1)
+	dh_fixperms -p$(1) -X/boot/
+	dh_shlibdeps -p$(1) $(shlibdeps_opts)
+	dh_installdeb -p$(1)
+	dh_installdebconf -p$(1)
+	$(lockme) dh_gencontrol -p$(1) -- -Vlinux:rprovides='$(rprovides)'
+	dh_md5sums -p$(1)
+	dh_builddeb -p$(1)
+endef
+define newline
+
+
+endef
+define dh_all_inline
+        $(subst ${newline},; \${newline},$(call dh_all,$(1)))
+endef
+
+binary-arch-headers: install-arch-headers
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+ifeq ($(do_libc_dev_package),true)
+ifneq ($(DEBIAN),debian.master)
+	echo "non-master branch building linux-libc-dev, aborting"
+	exit 1
+endif
+	$(call dh_all,linux-libc-dev)
+endif
+
+binary-%: pkgimg = $(bin_pkg_name)-$*
+binary-%: pkgimg_mods = $(mods_pkg_name)-$*
+binary-%: pkgimg_ex = $(mods_extra_pkg_name)-$*
+binary-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$*
+binary-%: pkgbldinfo = $(bldinfo_pkg_name)-$*
+binary-%: pkghdr = $(hdrs_pkg_name)-$*
+binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym
+binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+binary-%: pkgtools = $(tools_flavour_pkg_name)-$*
+binary-%: pkgcloud = $(cloud_flavour_pkg_name)-$*
+binary-%: rprovides = $(if $(filter true,$(call custom_override,do_zfs,$*)),spl-modules$(comma) spl-dkms$(comma) zfs-modules$(comma) zfs-dkms$(comma))
+binary-%: rprovides += $(if $(filter true,$(call custom_override,do_dkms_vbox,$*)),virtualbox-guest-dkms$(comma))
+binary-%: target_flavour = $*
+binary-%: checks-%
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+
+	$(call dh_all,$(pkgimg))
+	$(call dh_all,$(pkgimg_mods))
+
+ifeq ($(do_extras_package),true)
+  ifeq ($(ship_extras_package),false)
+	# If $(ship_extras_package) is explicitly set to false, then do not
+	# construct the linux-image-extra package; instead just log all of the
+	# "extra" modules which were pointlessly built yet won't be shipped.
+	find $(pkgdir_ex) -name '*.ko' | sort \
+		| sed 's|^$(pkgdir_ex)/|NOT-SHIPPED |' \
+		| tee -a $(target_flavour).not-shipped.log;
+  else
+	if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+		$(call dh_all_inline,$(pkgimg_ex)); \
+	fi
+  endif
+endif
+
+	$(call dh_all,$(pkgbldinfo))
+	$(call dh_all,$(pkghdr))
+
+ifneq ($(skipsub),true)
+	@set -e; for sub in $($(*)_sub); do		\
+		pkg=$(bin_pkg_name)-$$sub;		\
+		$(call dh_all_inline,$$pkg);		\
+	done
+endif
+
+ifneq ($(skipdbg),true)
+	$(call dh_all,$(dbgpkg))
+
+	# Hokay...here's where we do a little twiddling...
+	# Renaming the debug package prevents it from getting into
+	# the primary archive, and therefore prevents this very large
+	# package from being mirrored. It is instead, through some
+	# archive admin hackery, copied to http://ddebs.ubuntu.com.
+	#
+	mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \
+		../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb
+	set -e; \
+	( \
+		$(lockme_cmd) 9 || exit 1; \
+		if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \
+			sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \
+		else \
+			grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \
+			mv debian/files.new debian/files; \
+		fi; \
+	) 9>$(lockme_file)
+	# Now, the package wont get into the archive, but it will get put
+	# into the debug system.
+endif
+
+ifeq ($(do_linux_tools),true)
+	$(call dh_all,$(pkgtools))
+endif
+ifeq ($(do_cloud_tools),true)
+	$(call dh_all,$(pkgcloud))
+endif
+
+ifneq ($(full_build),false)
+	# Clean out this flavours build directory.
+	rm -rf $(builddir)/build-$*
+	# Clean out the debugging package source directory.
+	rm -rf $(dbgpkgdir)
+endif
+
+#
+# per-architecture packages
+#
+builddirpa = $(builddir)/tools-perarch
+
+$(stampdir)/stamp-prepare-perarch:
+	@echo Debug: $@
+ifeq ($(do_any_tools),true)
+	rm -rf $(builddirpa)
+	install -d $(builddirpa)
+	rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) --exclude .git -a ./ $(builddirpa)/
+endif
+	touch $@
+
+$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch install-arch-headers
+	@echo Debug: $@
+ifeq ($(do_linux_tools),true)
+ifeq ($(do_tools_usbip),true)
+	chmod 755 $(builddirpa)/tools/usb/usbip/autogen.sh
+	cd $(builddirpa)/tools/usb/usbip && ./autogen.sh
+	chmod 755 $(builddirpa)/tools/usb/usbip/configure
+	cd $(builddirpa)/tools/usb/usbip && ./configure --prefix=$(builddirpa)/tools/usb/usbip/bin
+	cd $(builddirpa)/tools/usb/usbip && make install CFLAGS="-g -O2 -static" CROSS_COMPILE=$(CROSS_COMPILE)
+endif
+ifeq ($(do_tools_acpidbg),true)
+	cd $(builddirpa)/tools/power/acpi && make clean && make CFLAGS="-g -O2 -static -I$(builddirpa)/include" CROSS_COMPILE=$(CROSS_COMPILE) acpidbg
+endif
+ifeq ($(do_tools_cpupower),true)
+	# Allow for multiple installed versions of cpupower and libcpupower.so:
+	# Override LIB_MIN in order to to generate a versioned .so named
+	# libcpupower.so.$(abi_release) and link cpupower with that.
+	make -C $(builddirpa)/tools/power/cpupower \
+		CROSS_COMPILE=$(CROSS_COMPILE) \
+		CROSS=$(CROSS_COMPILE) \
+		LIB_MIN=$(abi_release) CPUFREQ_BENCH=false
+endif
+ifeq ($(do_tools_perf),true)
+	cd $(builddirpa) && $(kmake) $(defconfig)
+	mv $(builddirpa)/.config $(builddirpa)/.config.old
+	sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
+	  -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
+	  $(builddirpa)/.config.old > $(builddirpa)/.config
+	cd $(builddirpa) && $(kmake) syncconfig
+	cd $(builddirpa) && $(kmake) prepare
+	cd $(builddirpa)/tools/perf && \
+		$(kmake) prefix=/usr HAVE_NO_LIBBFD=1 HAVE_CPLUS_DEMANGLE_SUPPORT=1 CROSS_COMPILE=$(CROSS_COMPILE) NO_LIBPYTHON=1 NO_LIBPERL=1
+endif
+ifeq ($(do_tools_bpftool),true)
+	$(kmake) CROSS_COMPILE=$(CROSS_COMPILE) -C $(builddirpa)/tools/bpf/bpftool
+endif
+ifeq ($(do_tools_x86),true)
+	cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE)
+	cd $(builddirpa)/tools/power/x86/turbostat && make CROSS_COMPILE=$(CROSS_COMPILE)
+endif
+endif
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	cd $(builddirpa)/tools/hv && make CFLAGS="-I$(headers_dir)/usr/include -I$(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)" CROSS_COMPILE=$(CROSS_COMPILE) hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon
+endif
+endif
+	@touch $@
+
+install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name)
+install-perarch: cloudpkgdir = $(CURDIR)/debian/$(cloud_pkg_name)
+install-perarch: $(stampdir)/stamp-build-perarch
+	@echo Debug: $@
+	# Add the tools.
+ifeq ($(do_linux_tools),true)
+	install -d $(toolspkgdir)/usr/lib
+	install -d $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+ifeq ($(do_tools_usbip),true)
+	install -m755 $(builddirpa)/tools/usb/usbip/bin/sbin/usbip \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/usb/usbip/bin/sbin/usbipd \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+ifeq ($(do_tools_acpidbg),true)
+	install -m755 $(builddirpa)/tools/power/acpi/acpidbg \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+ifeq ($(do_tools_cpupower),true)
+	install -m755 $(builddirpa)/tools/power/cpupower/cpupower \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	# Install only the full versioned libcpupower.so.$(abi_release), not
+	# the usual symlinks to it.
+	install -m644 $(builddirpa)/tools/power/cpupower/libcpupower.so.$(abi_release) \
+		$(toolspkgdir)/usr/lib/
+endif
+ifeq ($(do_tools_perf),true)
+	install -m755 $(builddirpa)/tools/perf/perf $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+ifeq ($(do_tools_perf_jvmti),true)
+	install -m755 $(builddirpa)/tools/perf/libperf-jvmti.so $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+endif
+ifeq ($(do_tools_bpftool),true)
+	install -m755 $(builddirpa)/tools/bpf/bpftool/bpftool $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+ifeq ($(do_tools_x86),true)
+	install -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+endif
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	install -d $(cloudpkgdir)/usr/lib
+	install -d $(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/hv_vss_daemon \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/hv_fcopy_daemon \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/lsvmbus \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+endif
+
+binary-perarch: toolspkg = $(tools_pkg_name)
+binary-perarch: cloudpkg = $(cloud_pkg_name)
+binary-perarch: install-perarch
+	@echo Debug: $@
+ifeq ($(do_linux_tools),true)
+	$(call dh_all,$(toolspkg))
+endif
+ifeq ($(do_cloud_tools),true)
+	$(call dh_all,$(cloudpkg))
+endif
+
+binary-debs: signing = $(CURDIR)/debian/$(bin_pkg_name)-signing
+binary-debs: signingv = $(CURDIR)/debian/$(bin_pkg_name)-signing/$(release)-$(revision)
+binary-debs: signing_tar = $(src_pkg_name)_$(release)-$(revision)_$(arch).tar.gz
+binary-debs: binary-perarch $(addprefix binary-,$(flavours))
+	@echo Debug: $@
+ifeq ($(any_signed),true)
+	install -d $(signingv)/control
+	{ echo "tarball"; } >$(signingv)/control/options
+	cd $(signing) && tar czvf ../../../$(signing_tar) .
+	dpkg-distaddfile $(signing_tar) raw-signing -
+endif
+
+build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours))
+build-arch: $(build-arch-deps-true)
+	@echo Debug: $@
+
+ifeq ($(AUTOBUILD),)
+binary-arch-deps-$(do_flavour_image_package) += binary-udebs
+else
+binary-arch-deps-$(do_flavour_image_package) = binary-debs
+endif
+binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers
+ifneq ($(do_common_headers_indep),true)
+binary-arch-deps-$(do_flavour_header_package) += binary-headers
+endif
+binary-arch: $(binary-arch-deps-true)
+	@echo Debug: $@
+
--- linux-gkeop-5.4-5.4.0.orig/debian/rules.d/3-binary-indep.mk
+++ linux-gkeop-5.4-5.4.0/debian/rules.d/3-binary-indep.mk
@@ -0,0 +1,220 @@
+build-indep:
+	@echo Debug: $@
+
+# The binary-indep dependency chain is:
+#
+# install-headers <- install-doc <- install-source <- install-tools <- install-indep <- binary-indep
+# install-headers <- binary-headers
+#
+indep_hdrpkg = $(indep_hdrs_pkg_name)
+indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
+install-headers: prepare-indep
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+
+ifeq ($(do_flavour_header_package),true)
+	install -d $(indep_hdrdir)
+	find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \
+	  -o -path './include/*' -prune \
+	  -o -path './scripts/*' -prune -o -type f \
+	  \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+	     -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \
+	  -print | cpio -pd --preserve-modification-time $(indep_hdrdir)
+	cp -a scripts include $(indep_hdrdir)
+	(find arch -name include -type d -print | \
+		xargs -n1 -i: find : -type f) | \
+		cpio -pd --preserve-modification-time $(indep_hdrdir)
+endif
+
+docpkg = $(doc_pkg_name)
+docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
+install-doc: prepare-indep
+	@echo Debug: $@
+ifeq ($(do_doc_package),true)
+	dh_testdir
+	dh_testroot
+
+	install -d $(docdir)
+ifeq ($(do_doc_package_content),true)
+	# First the html docs. We skip these for autobuilds
+	if [ -z "$(AUTOBUILD)" ]; then \
+		install -d $(docdir)/$(doc_pkg_name)-tmp; \
+		$(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \
+		install -d $(docdir)/html; \
+		rsync -aL $(docdir)/$(doc_pkg_name)-tmp/Documentation/output/ \
+			$(docdir)/html/; \
+		rm -rf $(docdir)/$(doc_pkg_name)-tmp; \
+	fi
+endif
+	# Copy the rest
+	cp -a Documentation/* $(docdir)
+	find $(docdir) -name .gitignore | xargs rm -f
+endif
+
+srcpkg = linux-source-$(release)
+srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
+balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg)
+install-source: prepare-indep
+	@echo Debug: $@
+ifeq ($(do_source_package),true)
+
+	install -d $(srcdir)
+ifeq ($(do_source_package_content),true)
+	find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \
+		-path './.*' -prune -o -print | \
+		cpio -pd --preserve-modification-time $(balldir)
+	(cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \
+		$(srcdir)/$(srcpkg).tar.bz2
+	rm -rf $(balldir)
+	find './debian' './$(DEBIAN)' \
+		-path './debian/linux-*' -prune -o \
+		-path './debian/$(src_pkg_name)-*' -prune -o \
+		-path './debian/build' -prune -o \
+		-path './debian/files' -prune -o \
+		-path './debian/stamps' -prune -o \
+		-path './debian/tmp' -prune -o \
+		-print | \
+		cpio -pd --preserve-modification-time $(srcdir)
+	$(LN) $(srcpkg)/$(srcpkg).tar.bz2 $(srcdir)/..
+endif
+endif
+
+install-tools: toolspkg = $(tools_common_pkg_name)
+install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin
+install-tools: toolssbin = $(CURDIR)/debian/$(toolspkg)/usr/sbin
+install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man
+install-tools: toolsbashcomp = $(CURDIR)/debian/$(toolspkg)/usr/share/bash-completion/completions
+install-tools: hosttoolspkg = $(hosttools_pkg_name)
+install-tools: hosttoolsbin = $(CURDIR)/debian/$(hosttoolspkg)/usr/bin
+install-tools: hosttoolsman = $(CURDIR)/debian/$(hosttoolspkg)/usr/share/man
+install-tools: cloudpkg = $(cloud_common_pkg_name)
+install-tools: cloudbin = $(CURDIR)/debian/$(cloudpkg)/usr/bin
+install-tools: cloudsbin = $(CURDIR)/debian/$(cloudpkg)/usr/sbin
+install-tools: cloudman = $(CURDIR)/debian/$(cloudpkg)/usr/share/man
+install-tools: prepare-indep $(stampdir)/stamp-build-perarch
+	@echo Debug: $@
+
+ifeq ($(do_tools_common),true)
+	rm -rf $(builddir)/tools
+	install -d $(builddir)/tools
+	for i in *; do $(LN) $(CURDIR)/$$i $(builddir)/tools/; done
+	rm $(builddir)/tools/tools
+	rsync -a tools/ $(builddir)/tools/tools/
+
+	install -d $(toolsbin)
+	install -d $(toolssbin)
+	install -d $(toolsman)/man1
+	install -d $(toolsman)/man8
+	install -d $(toolsbashcomp)
+
+	install -m755 debian/tools/generic $(toolsbin)/usbip
+	install -m755 debian/tools/generic $(toolsbin)/usbipd
+	install -m644 $(CURDIR)/tools/usb/usbip/doc/*.8 $(toolsman)/man1/
+
+	install -m755 debian/tools/generic $(toolsbin)/cpupower
+	install -m644 $(CURDIR)/tools/power/cpupower/man/*.1 $(toolsman)/man1/
+
+	install -m755 debian/tools/generic $(toolsbin)/perf
+
+	install -m755 debian/tools/generic $(toolssbin)/bpftool
+	make -C $(builddir)/tools/tools/bpf/bpftool doc
+	install -m644 $(builddir)/tools/tools/bpf/bpftool/Documentation/*.8 \
+		$(toolsman)/man8
+	install -m644 $(builddir)/tools/tools/bpf/bpftool/bash-completion/bpftool \
+		$(toolsbashcomp)
+
+	install -m755 debian/tools/generic $(toolsbin)/x86_energy_perf_policy
+	install -m755 debian/tools/generic $(toolsbin)/turbostat
+
+	cd $(builddir)/tools/tools/perf && make man
+	install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \
+		$(toolsman)/man1
+
+	install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8
+	install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8
+
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	install -d $(cloudsbin)
+	install -m755 debian/tools/generic $(cloudsbin)/hv_kvp_daemon
+	install -m755 debian/tools/generic $(cloudsbin)/hv_vss_daemon
+	install -m755 debian/tools/generic $(cloudsbin)/hv_fcopy_daemon
+	install -m755 debian/tools/generic $(cloudsbin)/lsvmbus
+	install -m755 debian/cloud-tools/hv_get_dhcp_info $(cloudsbin)
+	install -m755 debian/cloud-tools/hv_get_dns_info $(cloudsbin)
+	install -m755 debian/cloud-tools/hv_set_ifconfig $(cloudsbin)
+
+	install -d $(cloudman)/man8
+	install -m644 $(CURDIR)/tools/hv/*.8 $(cloudman)/man8
+endif
+endif
+
+ifeq ($(do_tools_acpidbg),true)
+	install -m755 debian/tools/generic $(toolsbin)/acpidbg
+endif
+
+endif
+
+ifeq ($(do_tools_host),true)
+	install -d $(hosttoolsbin)
+	install -d $(hosttoolsman)/man1
+
+	install -m 755 $(CURDIR)/tools/kvm/kvm_stat/kvm_stat $(hosttoolsbin)/
+
+	cd $(builddir)/tools/tools/kvm/kvm_stat && make man
+	install -m644 $(builddir)/tools/tools/kvm/kvm_stat/*.1 \
+		$(hosttoolsman)/man1
+endif
+
+prepare-indep:
+	@echo Debug: $@
+	dh_prep -i
+
+install-indep: install-headers install-doc install-source install-tools
+	@echo Debug: $@
+
+# This is just to make it easy to call manually. Normally done in
+# binary-indep target during builds.
+binary-headers: prepare-indep install-headers
+	@echo Debug: $@
+	dh_installchangelogs -p$(indep_hdrpkg)
+	dh_installdocs -p$(indep_hdrpkg)
+	dh_compress -p$(indep_hdrpkg)
+	dh_fixperms -p$(indep_hdrpkg)
+	dh_installdeb -p$(indep_hdrpkg)
+	$(lockme) dh_gencontrol -p$(indep_hdrpkg)
+	dh_md5sums -p$(indep_hdrpkg)
+	dh_builddeb -p$(indep_hdrpkg)
+
+binary-indep: cloudpkg = $(cloud_common_pkg_name)
+binary-indep: install-indep
+	@echo Debug: $@
+	dh_installchangelogs -i
+	dh_installdocs -i
+	dh_compress -i
+	dh_fixperms -i
+ifeq ($(do_tools_common),true)
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	dh_installinit -p$(cloudpkg) -n --name hv-kvp-daemon
+	dh_installinit -p$(cloudpkg) -n --name hv-vss-daemon
+	dh_installinit -p$(cloudpkg) -n --name hv-fcopy-daemon
+	dh_installudev -p$(cloudpkg) -n --name hv-kvp-daemon
+	dh_installudev -p$(cloudpkg) -n --name hv-vss-daemon
+	dh_installudev -p$(cloudpkg) -n --name hv-fcopy-daemon
+	dh_systemd_enable -p$(cloudpkg)
+	dh_installinit -p$(cloudpkg) -o --name hv-kvp-daemon
+	dh_installinit -p$(cloudpkg) -o --name hv-vss-daemon
+	dh_installinit -p$(cloudpkg) -o --name hv-fcopy-daemon
+	dh_systemd_start -p$(cloudpkg)
+endif
+	# Keep intel_sgx service disabled by default, so add it after dh_systemd_enable
+	# and dh_systemd_start are called:
+	dh_installinit -p$(cloudpkg) --no-start --no-enable --name intel-sgx-load-module
+endif
+endif
+	dh_installdeb -i
+	$(lockme) dh_gencontrol -i
+	dh_md5sums -i
+	dh_builddeb -i
--- linux-gkeop-5.4-5.4.0.orig/debian/rules.d/4-checks.mk
+++ linux-gkeop-5.4-5.4.0/debian/rules.d/4-checks.mk
@@ -0,0 +1,28 @@
+# Check ABI for package against last release (if not same abinum)
+abi-check-%: install-%
+	@echo Debug: $@
+	@perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \
+		"$(prev_abidir)" "$(abidir)" "$(skipabi)"
+
+# Check the module list against the last release (always)
+module-check-%: install-%
+	@echo Debug: $@
+	@perl -f $(DROOT)/scripts/module-check "$*" \
+		"$(prev_abidir)" "$(abidir)" $(skipmodule)
+
+# Check the reptoline jmp/call functions against the last release.
+retpoline-check-%: install-%
+	@echo Debug: $@
+	$(SHELL) $(DROOT)/scripts/retpoline-check "$*" \
+		"$(prev_abidir)" "$(abidir)" "$(skipretpoline)" "$(builddir)/build-$*"
+
+checks-%: module-check-% abi-check-% retpoline-check-%
+	@echo Debug: $@
+
+# Check the config against the known options list.
+config-prepare-check-%: $(stampdir)/stamp-prepare-tree-%
+	@echo Debug: $@
+	@perl -f $(DROOT)/scripts/config-check \
+		$(builddir)/build-$*/.config "$(arch)" "$*" "$(commonconfdir)" \
+		"$(skipconfig)" "$(do_enforce_all)"
+
--- linux-gkeop-5.4-5.4.0.orig/debian/rules.d/5-udebs.mk
+++ linux-gkeop-5.4-5.4.0/debian/rules.d/5-udebs.mk
@@ -0,0 +1,79 @@
+# Do udebs if not disabled in the arch-specific makefile
+binary-udebs: binary-debs
+	@echo Debug: $@
+ifeq ($(disable_d_i),)
+	@$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \
+		do-binary-udebs
+endif
+
+do-binary-udebs: linux_udeb_name=$(shell if echo $(src_pkg_name)|egrep -q '(linux-lts|linux-hwe)'; then echo $(src_pkg_name); else echo linux; fi)
+do-binary-udebs: debian/control
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+
+	# unpack the kernels into a temporary directory
+	mkdir -p debian/d-i-${arch}
+
+	imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$3}') && \
+	for f in $$imagelist; do \
+	  i=$(release)-$(abinum)-$$f; \
+          for f in \
+		../linux-image-$$i\_$(release)-$(revision)_${arch}.deb \
+		../linux-image-unsigned-$$i\_$(release)-$(revision)_${arch}.deb \
+		../linux-modules-$$i\_$(release)-$(revision)_${arch}.deb \
+		../linux-modules-extra-$$i\_$(release)-$(revision)_${arch}.deb; \
+	  do \
+		  [ -f $$f ] && dpkg -x $$f debian/d-i-${arch}; \
+	  done; \
+	  /sbin/depmod -b debian/d-i-${arch} $$i; \
+	done
+
+	# kernel-wedge will error if no modules unless this is touched
+	touch $(DEBIAN)/d-i/no-modules
+
+	touch $(CURDIR)/$(DEBIAN)/d-i/ignore-dups
+	export KW_DEFCONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
+	export KW_CONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
+	export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
+	  kernel-wedge install-files $(release)-$(abinum) && \
+	  kernel-wedge check
+
+        # Build just the udebs
+	dilist=$$(dh_listpackages -s | grep "\-di$$") && \
+	[ -z "$dilist" ] || \
+	for i in $$dilist; do \
+	  dh_fixperms -p$$i; \
+	  $(lockme) dh_gencontrol -p$$i; \
+	  dh_builddeb -p$$i; \
+	done
+	
+	# Generate the meta-udeb dependancy lists.
+	@gawk '										\
+		/^Package:/ {								\
+			package=$$2; flavour=""; parch="" }				\
+		(/Package-Type: udeb/ && package !~ /^$(linux_udeb_name)-udebs-/) {      \
+			match(package, "'$(release)'-'$(abinum)'-(.*)-di", bits);       \
+			flavour = bits[1];						\
+		}									\
+		(/^Architecture:/ && $$0 " " ~ / '$(arch)'/) {				\
+			parch=$$0;							\
+		}									\
+		(flavour != "" && parch != "") {					\
+			udebs[flavour] = udebs[flavour] package ", ";			\
+			flavour=""; parch="";						\
+		}                                                      			\
+		END {                                                  			\
+			for (flavour in udebs) {					\
+				package="$(linux_udeb_name)-udebs-" flavour;		\
+				file="debian/" package ".substvars";			\
+				print("udeb:Depends=" udebs[flavour]) > file;		\
+				metas="'$(builddir)'/udeb-meta-packages";		\
+				print(package) >metas					\
+			}								\
+		}									\
+	' <$(CURDIR)/debian/control
+	@while read i; do \
+		$(lockme) dh_gencontrol -p$$i; \
+		dh_builddeb -p$$i; \
+	done <$(builddir)/udeb-meta-packages
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/abi-check
+++ linux-gkeop-5.4-5.4.0/debian/scripts/abi-check
@@ -0,0 +1,210 @@
+#!/usr/bin/perl -w
+
+my $flavour = shift;
+my $prev_abinum = shift;
+my $abinum = shift;
+my $prev_abidir = shift;
+my $abidir = shift;
+my $skipabi = shift;
+
+my $fail_exit = 1;
+my $EE = "EE:";
+my $errors = 0;
+my $abiskip = 0;
+
+my $count;
+
+print "II: Checking ABI for $flavour...\n";
+
+if (-f "$prev_abidir/ignore"
+    or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") {
+	print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n";
+	$fail_exit = 0;
+	$abiskip = 1;
+	$EE = "WW:";
+}
+
+if ($prev_abinum != $abinum) {
+	print "II: Different ABI's, running in no-fail mode\n";
+	$fail_exit = 0;
+	$EE = "WW:";
+}
+
+if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") {
+	print "EE: Previous or current ABI file missing!\n";
+	print "    $abidir/$flavour\n" if not -f "$abidir/$flavour";
+	print "    $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour";
+
+	# Exit if the ABI files are missing, but return status based on whether
+	# skip ABI was indicated.
+	if ("$abiskip" eq "1") {
+		exit(0);
+	} else {
+		exit(1);
+	}
+}
+
+my %symbols;
+my %symbols_ignore;
+my %modules_ignore;
+my %module_syms;
+
+# See if we have any ignores
+my $ignore = 0;
+print "    Reading symbols/modules to ignore...";
+
+for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") {
+	if (-f $file) {
+		open(IGNORE, "< $file") or
+			die "Could not open $file";
+		while (<IGNORE>) {
+			chomp;
+			if ($_ =~ m/M: (.*)/) {
+				$modules_ignore{$1} = 1;
+			} else {
+				$symbols_ignore{$_} = 1;
+			}
+			$ignore++;
+		}
+		close(IGNORE);
+	}
+}
+print "read $ignore symbols/modules.\n";
+
+sub is_ignored($$) {
+	my ($mod, $sym) = @_;
+
+	die "Missing module name in is_ignored()" if not defined($mod);
+	die "Missing symbol name in is_ignored()" if not defined($sym);
+
+	if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
+		return 1;
+	}
+	return 0;
+}
+
+# Read new syms first
+print "    Reading new symbols ($abinum)...";
+$count = 0;
+open(NEW, "< $abidir/$flavour") or
+	die "Could not open $abidir/$flavour";
+while (<NEW>) {
+	chomp;
+	m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+	$symbols{$4}{'type'} = $1;
+	$symbols{$4}{'loc'} = $2;
+	$symbols{$4}{'hash'} = $3;
+	$module_syms{$2} = 0;
+	$count++;
+}
+close(NEW);
+print "read $count symbols.\n";
+
+# Now the old symbols, checking for missing ones
+print "    Reading old symbols ($prev_abinum)...";
+$count = 0;
+open(OLD, "< $prev_abidir/$flavour") or
+	die "Could not open $prev_abidir/$flavour";
+while (<OLD>) {
+	chomp;
+	m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+	$symbols{$4}{'old_type'} = $1;
+	$symbols{$4}{'old_loc'} = $2;
+	$symbols{$4}{'old_hash'} = $3;
+	$count++;
+}
+close(OLD);
+
+print "read $count symbols.\n";
+
+print "II: Checking for missing symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'type'})) {
+		print "\n" if not $count;
+		printf("    MISS : %s%s\n", $sym,
+			is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
+		$count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
+	}
+}
+print "    " if $count;
+print "found $count missing symbols\n";
+if ($count) {
+	print "$EE Symbols gone missing (what did you do!?!)\n";
+	$errors++;
+}
+
+
+print "II: Checking for new symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'old_type'})) {
+		print "\n" if not $count;
+		print "    NEW : $sym\n";
+		$count++;
+	}
+}
+print "    " if $count;
+print "found $count new symbols\n";
+if ($count and $prev_abinum == $abinum) {
+	print "WW: Found new symbols within same ABI. Not recommended\n";
+}
+
+print "II: Checking for changes to ABI...\n";
+$count = 0;
+my $moved = 0;
+my $changed_type = 0;
+my $changed_hash = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'old_type'}) or
+	    !defined($symbols{$sym}{'type'})) {
+		next;
+	}
+
+	# Changes in location don't hurt us, but log it anyway
+	if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
+		printf("    MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'},
+			$symbols{$sym}{'loc'});
+		$moved++;
+	}
+
+	# Changes to export type are only bad if new type isn't
+	# EXPORT_SYMBOL. Changing things to GPL are bad.
+	if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
+		printf("    TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
+			$symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+			? " (ignored)" : "");
+		$changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL"
+			and !is_ignored($symbols{$sym}{'loc'}, $sym);
+	}
+
+	# Changes to the hash are always bad
+	if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
+		printf("    HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
+			$symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+			? " (ignored)" : "");
+		$changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
+		$module_syms{$symbols{$sym}{'loc'}}++;
+	}
+}
+
+print "WW: $moved symbols changed location\n" if $moved;
+print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type;
+print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash;
+
+$errors++ if $changed_hash or $changed_type;
+if ($changed_hash) {
+	print "II: Module hash change summary...\n";
+	foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
+		next if ! $module_syms{$mod};
+		printf("    %-40s: %d\n", $mod, $module_syms{$mod});
+	}
+}
+
+print "II: Done\n";
+
+if ($errors) {
+	exit($fail_exit);
+} else {
+	exit(0);
+}
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/config-check
+++ linux-gkeop-5.4-5.4.0/debian/scripts/config-check
@@ -0,0 +1,163 @@
+#!/usr/bin/perl
+#
+# check-config -- check the current config for issues
+#
+use strict;
+use File::Basename;
+use File::Spec;
+
+my $P = 'check-config';
+
+my $test = -1;
+if ($ARGV[0] eq '--test') {
+	$test = $ARGV[1] + 0;
+} elsif ($#ARGV != 5) {
+	die "Usage: $P <config> <arch> <flavour> <commonconfig> <warn-only> <enforce-all>\n";
+}
+
+my ($configfile, $arch, $flavour, $commonconfig, $warn_only, $enforce_all) = @ARGV;
+
+my %values = ();
+
+# If we are in overridden then still perform the checks and emit the messages
+# but do not return failure.  Those items marked FATAL will alway trigger
+# failure.
+my $fail_exit = 1;
+$fail_exit = 0 if ($warn_only eq 'true' || $warn_only eq '1');
+my $exit_val = 0;
+
+$enforce_all = 0 if $enforce_all eq "no" or $enforce_all eq "false";
+
+# Load up the current configuration values -- FATAL if this fails
+print "$P: $configfile: loading config\n";
+open(CONFIG, "<$configfile") || die "$P: $configfile: open failed -- $! -- aborting\n";
+while (<CONFIG>) {
+	# Pull out values.
+	/^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next;
+	if ($2 eq 'is not set') {
+		$values{$1} = 'n';
+	} else {
+		$values{$1} = $2;
+	}
+}
+close(CONFIG);
+
+sub read_annotations {
+    my ($filename) = @_;
+    my %annot;
+    my $form = 1;
+    my ($config, $value, $options);
+
+    # Keep track of the configs that shouldn't be appended because
+    # they were include_annot from another annotations file.
+    # That's a hash of undefs, aka a set.
+    my %noappend;
+
+    print "$P: $filename loading annotations\n";
+    open(my $fd, "<$filename") ||
+	die "$P: $filename: open failed -- $! -- aborting\n";
+    while (<$fd>) {
+	if (/^# FORMAT: (\S+)/) {
+	    die "$P: $1: unknown annotations format\n" if ($1 != 2 && $1 != 3);
+	    $form = $1;
+	}
+
+	# Format #3 adds the include directive on top of format #2:
+	if ($form == 3 && /^\s*include(\s|$)/) {
+	    # Include quoted or unquoted files:
+	    if (/^\s*include\s+"(.*)"\s*$/ || /^\s*include\s+(.*)$/) {
+		# The include is relative to the current file
+		my $include_filename = File::Spec->join(dirname($filename), $1);
+		# Append the include files
+		my %include_annot = read_annotations($include_filename);
+		%annot = ( %annot, %include_annot );
+		# And marked them to not be appended:
+		my %included_noappend;
+		# Discard the values and keep only the keys
+		@included_noappend{keys %include_annot} = ();
+		%noappend = ( %noappend, %included_noappend );
+		next;
+	    } else {
+		die "$P: Invalid include: $_";
+	    }
+	}
+
+	/^#/ && next;
+	chomp;
+	/^$/ && next;
+	/^CONFIG_/ || next;
+
+	if ($form == 1) {
+	    ($config, $value, $options) = split(' ', $_, 3);
+	} elsif ($form >= 2) {
+	    ($config, $options) = split(' ', $_, 2);
+	}
+
+	if (exists $noappend{$config}) {
+	    delete $annot{$config};
+	    delete $noappend{$config};
+	}
+	$annot{$config} = $annot{$config} . ' ' . $options;
+    }
+    close($fd);
+    return %annot;
+}
+
+# ANNOTATIONS: check any annotations marked for enforcement
+my $annotations = "$commonconfig/annotations";
+my %annot = read_annotations($annotations);
+
+my $pass = 0;
+my $total = 0;
+my ($config, $value, $options, $option, $check, $policy);
+for $config (keys %annot) {
+	$check = $enforce_all;
+	$options = $annot{$config};
+
+	$policy = undef;
+	while ($options =~ /\s*([^\s<]+)<(.*?)?>/g) {
+		($option, $value) = ($1, $2);
+
+		if ($option eq 'mark' && $value eq 'ENFORCED') {
+			$check = 1;
+
+		} elsif ($option eq 'policy') {
+			if ($value =~ /^{/) {
+				$value =~ s/:/=>/g;
+				$policy = eval($value);
+				warn "$config: $@" if ($@);
+			} else {
+				$policy = undef;
+			}
+		}
+	}
+	if ($check == 1 && !defined($policy)) {
+		print "$P: INVALID POLICY (use policy<{...}>) $config$options\n";
+		$total++;
+		$check = 0;
+	}
+	if ($check) {
+		# CONFIG_VERSION_SIGNATURE is dynamically set during the build
+		next if ($config eq "CONFIG_VERSION_SIGNATURE");
+		my $is = '-';
+		$is = $values{$config} if (defined $values{$config});
+
+		my $value = '-';
+		for my $which ("$arch-$flavour", "$arch-*", "*-$flavour", "$arch", "*") {
+			if (defined $policy->{$which}) {
+				$value = $policy->{$which};
+				last;
+			}
+		}
+		if ($is eq $value) {
+			$pass++;
+		} else {
+			print "$P: FAIL ($is != $value): $config$options\n";
+			$exit_val = $fail_exit;
+		}
+		$total++;
+	}
+}
+
+print "$P: $pass/$total checks passed -- exit $exit_val\n";
+exit $exit_val;
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/control-create
+++ linux-gkeop-5.4-5.4.0/debian/scripts/control-create
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. debian/debian.env
+
+vars=$1
+any_signed=$2
+
+. $vars
+
+[ "$provides" != '' ] && provides="$provides, "
+
+if [ "$is_sub" = "" ]; then
+	flavour=$(basename $vars | sed 's/.*\.//')
+	stub="${DEBIAN}/control.d/flavour-control.stub debian/control.d/flavour-buildinfo.stub"
+	if [ "$any_signed" = 'true' ]; then
+		sign_me_pkg="-unsigned"
+		sign_me_txt=" unsigned"
+		sign_peer_pkg=""
+	else
+		sign_me_pkg=""
+		sign_me_txt=""
+		sign_peer_pkg="-unsigned"
+	fi
+else
+	flavour=$(basename $vars .vars)
+	stub=${DEBIAN}/sub-flavours/control.stub
+fi
+
+cat $stub | grep -v '^#' | sed \
+	-e "s#FLAVOUR#$flavour#g"		\
+	-e "s#DESC#$desc#g"			\
+	-e "s#ARCH#$arch#g"			\
+	-e "s#SUPPORTED#$supported#g"		\
+	-e "s#TARGET#$target#g"			\
+	-e "s#BOOTLOADER#$bootloader#g" 	\
+	-e "s#=PROVIDES=#$provides#g"		\
+	-e "s#=CONFLICTS=#$conflicts#g"		\
+	-e "s#=SIGN-ME-PKG=#$sign_me_pkg#g"	\
+	-e "s#=SIGN-ME-TXT=#$sign_me_txt#g"	\
+	-e "s#=SIGN-PEER-PKG=#$sign_peer_pkg#g"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/dkms-build
+++ linux-gkeop-5.4-5.4.0/debian/scripts/dkms-build
@@ -0,0 +1,259 @@
+#!/bin/bash
+set -e
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+here=$(dirname "$(readlink -f "${0}")")
+
+srcdir=$(pwd)
+cd "$dkms_dir" || exit 1
+
+built_using_record()
+{
+	local subst="$1"
+	local built_using="$2"
+	if [ ! -f "$subst" ]; then
+		touch "$subst"
+	fi
+	if ! grep -q -s "^linux:BuiltUsing=" "$subst"; then
+		echo "linux:BuiltUsing=" >>"$subst"
+	fi
+	sed -i -e "s/^\(linux:BuiltUsing=.*\)/\1$built_using, /" "$subst"
+}
+
+# ABI: returns present in $? and located path in lpackage_path when found.
+package_present()
+{
+	for lpackage_path in "$1"_*.deb
+	do
+		break
+	done
+	[ -f "$lpackage_path" ]
+}
+
+# Download and extract the DKMS package -- note there may be more
+# than one package to install.
+for package_path in "$@"
+do
+	package_file=$(basename "$package_path")
+	echo "II: dkms-build downloading $package ($package_file)"
+	rpackage=$( echo "$package_path" | sed -e 's@.*/@@' -e 's@_.*@@' )
+	lpackage=$( echo "$rpackage" | sed -e 's@=.*@@' )
+
+	while true
+	do
+		if package_present "$lpackage"; then
+			break
+		fi
+		case "$package_path" in
+		pool/*)
+			# Attempt download from the launchpad librarian first.
+			"$here/file-downloader" "https://launchpad.net/ubuntu/+archive/primary/+files/$package_file" || true
+			if package_present "$lpackage"; then
+				break
+			fi
+
+			# Download from the available pools.
+			for pool in $( grep -h '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | awk '{print $2}' | sort -u )
+			do
+				if package_present "$lpackage"; then
+					break
+				fi
+				url="$pool/$package_path"
+				"$here/file-downloader" "$url" && break || true
+				# No components in PPAs.
+				url=$(echo "$url" | sed -e 's@/pool/[^/]*/@/pool/main/@')
+				"$here/file-downloader" "$url" && break || true
+			done
+			;;
+		http*:*)
+			"$here/file-downloader" "$package_path"
+			;;
+		*/*)
+			cp -p "$package_path" .
+			;;
+		*)
+			apt-get download "$rpackage"
+			;;
+		esac
+		break
+	done
+	if ! package_present "$lpackage"; then
+		echo "EE: $lpackage not found"
+		exit 1
+	fi
+
+	dpkg -x "$lpackage"_*.deb "$package"
+
+	lversion=$( echo "$lpackage_path" | sed -e 's@.*/@@' -e 's@_[^_]*$@@' -e 's@.*_@@')
+	#built_using_record "$srcdir/debian/$pkgname.substvars" "$built_using$lpackage (= $lversion)"
+done
+
+# Pick out the package/version from the dkms.conf.
+for dkms_conf in "$package/usr/src"/*/"dkms.conf"
+do
+	break
+done
+
+# It seems some packages have a # in the name which works fine if the
+# package is installed directly, but not so much if we build it out
+# of the normal location.
+sed -i -e '/^PACKAGE_NAME=/ s/#//g' "$dkms_conf"
+
+# Run any dkms-package specfic configuration steps
+dkms_config_specific="$srcdir/$0-configure--$package"
+dkms_config_generic=$(echo "$dkms_config_specific" | sed -e 's/-[0-9][0-9]*$/-N/')
+for dkms_config in "$dkms_config_specific" "$dkms_config_generic"
+do
+	if [ -z "$dkms_config" -o ! -e "$dkms_config" ]; then
+		continue
+	fi
+	echo "II: dkms-build-configure $(basename "$dkms_config") found, executing"
+	$SHELL "$dkms_config" \
+		"$srcdir" \
+		"$dkms_conf" \
+		"$dkms_dir" \
+		"$abi_flavour" \
+		"$sign" \
+		"$pkgname" \
+		"$pkgdir" \
+		"$dbgpkgdir" \
+		"$package" \
+		"$@" || exit 1
+	break
+done
+
+cat - <<'EOF' >>"$dkms_conf"
+POST_BUILD="ubuntu-save-objects ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/objects $POST_BUILD"
+EOF
+ubuntu_script="$(dirname "$dkms_conf")/ubuntu-save-objects"
+cat - <<'EOF' >"$ubuntu_script"
+#!/bin/sh
+from="$1"
+to="$2"
+script="$3"
+shift 2
+
+# Copy the objects.
+echo "II: copying objects to '$to'"
+mkdir -p "$to"
+(cd "$from" && find -name \*.o -o -name \*.o.ur-\* | cpio -Lpd "$to")
+
+# Call the original post_install script if there is one.
+[ "$script" = '' ] && exit 0
+
+shift
+exec "$(dirname "$0")/$script" "$@"
+EOF
+chmod +x "$ubuntu_script"
+dkms_package=$( sed -ne 's/PACKAGE_NAME="\(.*\)"/\1/p' "$dkms_conf" )
+dkms_version=$( sed -ne 's/PACKAGE_VERSION="\(.*\)"/\1/p' "$dkms_conf" )
+
+# Build the DKMS binaries.
+echo "II: dkms-build building $package"
+rc=0
+/usr/sbin/dkms build --no-prepare-kernel --no-clean-kernel \
+	-k "$abi_flavour" \
+	--sourcetree "$dkms_dir/source" \
+	--dkmstree "$dkms_dir/build" \
+	--kernelsourcedir "$dkms_dir/headers/linux-headers-$abi_flavour" \
+	"$dkms_conf" || rc=1
+
+# Find the log and add it to our own.
+for log in "$dkms_dir/build/$dkms_package/$dkms_version/$abi_flavour"/*/"log/make.log" "$dkms_dir/build/$dkms_package/$dkms_version/build/make.log"
+do
+	[ -f "$log" ] && break
+done
+sed -e "s@$dkms_dir@<<DKMSDIR>>@g" <"$log"
+
+# If this build failed then exit here.
+[ "$rc" != 0 ] && exit "$rc"
+
+# Install the modules with debug symbols we possibly built,
+# and strip the original modules for the next install step.
+if [ -n "$dbgpkgdir" ]; then
+	dbgpkgdir="$dbgpkgdir/$package"
+	echo "II: dkms-build installing $package into $dbgpkgdir (debug symbols)"
+	install -d "$dbgpkgdir"
+	find "$dkms_dir/build/$dkms_package/$dkms_version/$abi_version" -name \*.ko |
+	while read module; do
+		vmodule=$( basename "$module" )
+
+		# Check for '.debug_info' section in order to copy module.
+		# Useful if debug symbols are requested but not built for
+		# any reason (including not yet supported by DKMS package).
+		# Strip module just in case even if section isn't present.
+		if ${CROSS_COMPILE}objdump -h -j '.debug_info' "$module" >/dev/null 2>&1
+		then
+			echo "copying $vmodule"
+			cp "$module" "$dbgpkgdir"
+		else
+			echo "ignoring $vmodule (missing debug symbols)"
+		fi
+
+		# Just 'strip -g' as '/usr/sbin/dkms' does.
+		echo "stripping $vmodule"
+		strip -g "$module"
+	done
+fi
+
+# Install and optionally sign the modules we have built.
+pkgdir="$pkgdir/$package"
+echo "II: dkms-build installing $package into $pkgdir"
+install -d "$pkgdir"
+find "$dkms_dir/build/$dkms_package/$dkms_version/$abi_version" -name \*.ko |
+while read module; do
+	vmodule=$( basename "$module" )
+	case "$sign" in
+	--*)
+		echo "copying $vmodule"
+		cp "$module" "$pkgdir"
+		;;
+	*)
+		echo "signing $vmodule"
+		$sign "$module" "$pkgdir/$vmodule"
+		;;
+	esac
+done
+
+find "$dkms_dir/build/$dkms_package/$dkms_version/objects" -name \*.o -print | \
+while read object
+do
+	"$srcdir/debian/scripts/fix-filenames" "$object" "$dkms_dir"
+done
+
+# Finally see if there is a dkms-package specific post processor present.  Hand
+# it the original source directory, destination package directory, the objects
+# as squirreled away, and the log in case it is useful.  Finally pass a formed
+# signing command line in case we need to do that.
+dkms_build_specific="$srcdir/$0--$package"
+dkms_build_generic=$(echo "$dkms_build_specific" | sed -n -e 's/-[0-9][0-9]*[a-z]*$/-N/p')
+for dkms_build in "$dkms_build_specific" "$dkms_build_generic"
+do
+	if [ -z "$dkms_build" -o ! -e "$dkms_build" ]; then
+		continue
+	fi
+	echo "II: dkms-build override $(basename "$dkms_build") found, executing"
+	$SHELL "$dkms_build" \
+		"$srcdir" \
+		"$dkms_dir/build/$dkms_package/$dkms_version/objects" \
+		"$log" \
+		"$dkms_dir" \
+		"$abi_flavour" \
+		"$sign" \
+		"$pkgname" \
+		"$pkgdir" \
+		"$dbgpkgdir" \
+		"$package" \
+		"$@" || exit 1
+	break
+done
+
+echo "II: dkms-build build $package complete"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/dkms-build--nvidia-N
+++ linux-gkeop-5.4-5.4.0/debian/scripts/dkms-build--nvidia-N
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+srcdir="$1"
+objects="$2"
+log="$3"
+shift 3
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+build="$( dirname "$objects" )/build"
+
+# Copy over the objects ready for reconstruction.  The objects copy contains
+# the *.o files and the *.o-ur* retpoline files to allow the kernel to track
+# any retpoline sequences therein.  For our purposes we only want the *.o
+# files, elide the rest.
+mkdir -p "$pkgdir/bits/scripts"
+(
+	gcc_variant1=$(gcc --version | head -1 | sed -e 's/^gcc/GCC:/')
+	gcc_variant2=$(gcc --version | head -1 | sed -e 's/^\(gcc\) \((.*)\) \(.*\)$/\1 version \3 \2/')
+	cd "$objects" || exit 1
+	find -name \*.o | \
+	while read file
+	do
+		cp --parents "$file" "$pkgdir/bits"
+		"$srcdir/debian/scripts/fix-filenames" "$pkgdir/bits/$file" "$gcc_variant1"
+		"$srcdir/debian/scripts/fix-filenames" "$pkgdir/bits/$file" "$gcc_variant2"
+	done
+)
+
+# Install the support files we need.
+echo "II: copying support files ..."
+for lds_src in \
+	"$dkms_dir/headers/linux-headers-$abi_flavour/scripts/module.lds" \
+	"/usr/src/linux-headers-$abi_flavour/scripts/module.lds" \
+	"$dkms_dir/headers/linux-headers-$abi_flavour/scripts/module-common.lds" \
+	"/usr/src/linux-headers-$abi_flavour/scripts/module-common.lds"
+do
+	[ ! -f "$lds_src" ] && continue
+	echo "II: copying support files ... found $lds_src"
+	cp "$lds_src" "$pkgdir/bits/scripts"
+	break
+done
+
+# Build helper scripts.
+cat - <<'EOL' >"$pkgdir/bits/BUILD"
+[ "$1" = "unsigned" ] && { signed_only=:; shift; }
+[ "$1" = "nocheck" ] && { check_only=:; shift; }
+EOL
+grep /usr/bin/ld.bfd "$log" | grep -v scripts/genksyms/genksyms | sed -e "s@$build/@@g" >>"$pkgdir/bits/BUILD"
+sed -e 's/.*-o  *\([^ ]*\) .*/rm -f \1/g' <"$pkgdir/bits/BUILD" >"$pkgdir/bits/CLEAN"
+
+# As the builds contain the absolute filenames as used.  Use RECONSTRUCT to
+# rebuild the .ko's, sign them, pull off the signatures and then finally clean
+# up again.
+(
+	cd "$pkgdir/bits" || exit 1
+
+	# Add checksum check.
+	echo "\$check_only sha256sum -c SHA256SUMS || exit 1" >>"$pkgdir/bits/BUILD"
+
+	# Add .ko handling to the CLEAN/BUILD dance.
+	for ko in "$pkgdir"/*.ko
+	do
+		ko=$(basename "$ko")
+		echo "\$signed_only cat '$ko' '$ko.sig' >'../$ko'" >>"$pkgdir/bits/BUILD"
+		echo "\$signed_only rm -f '$ko'" >>"$pkgdir/bits/BUILD"
+		echo "rm -f '../$ko'" >>"$pkgdir/bits/CLEAN"
+	done
+
+	# Clear out anything we are not going to distribute and build unsigned .kos.
+	sh ./CLEAN
+	sh ./BUILD unsigned nocheck
+
+	if [ "$sign" = "--custom" ]; then
+		# We are building for and archive custom signing upload.  Keep everything.
+		:
+	elif [ "$sign" = "--lrm" ]; then
+		# We are in the LRM build; grab sha256 checksums and clean up.
+		sha256sum -b *.ko >"SHA256SUMS"
+		sh ./CLEAN
+
+	else
+		# We are in the main kernel, put the .kos together as we will
+		# on the users machine, sign them, and keep just the signature.
+		: >"SHA256SUMS"
+		for ko in *.ko
+		do
+			echo "detached-signature $ko"
+			$sign "$ko" "$ko.signed"
+			length=$( stat --format %s "$ko" )
+			dd if="$ko.signed" of="$ko.sig" bs=1 skip="$length" 2>/dev/null
+
+			rm -f "$ko.signed"
+			# Keep a checksum of the pre-signed object so we can check it is
+			# built correctly in LRM.
+			sha256sum -b "$ko" >>"SHA256SUMS"
+		done
+
+		# Clean out anything which not a signature.
+		mv "$pkgdir/bits/"*.sig "$pkgdir"
+		mv "$pkgdir/bits/SHA256SUMS" "$pkgdir"
+		find "$pkgdir" -name \*.sig -prune -o -name SHA256SUMS -prune -o -type f -print | xargs rm -f
+		find "$pkgdir" -depth -type d -print | xargs rmdir --ignore-fail-on-non-empty
+	fi
+) || exit "$?"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/dkms-build--virtualbox-guest
+++ linux-gkeop-5.4-5.4.0/debian/scripts/dkms-build--virtualbox-guest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+srcdir="$1"
+objects="$2"
+log="$3"
+shift 3
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+# We want to ship the vboxvideo.ko from the upstream staging tree, so
+# remove the one built via dkms.
+rm -f "$pkgdir/vboxvideo.ko"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/dkms-build-configure--zfs
+++ linux-gkeop-5.4-5.4.0/debian/scripts/dkms-build-configure--zfs
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+srcdir="$1"
+dkms_conf="$2"
+shift 2
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+# ZFS debug symbols are enabled in dkms.conf via PACKAGE_CONFIG file.
+if [ -n "$dbgpkgdir" ]; then
+	echo "enable zfs debug symbols"
+	pkg_cfg="$(dirname "$dkms_conf")/pkg_cfg"
+	echo 'ZFS_DKMS_ENABLE_DEBUGINFO=yes' >"$pkg_cfg"
+	echo 'ZFS_DKMS_DISABLE_STRIP=yes'   >>"$pkg_cfg"
+	sed -i "s,^\(PACKAGE_CONFIG=\).*,\1$pkg_cfg," $dkms_conf
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/file-downloader
+++ linux-gkeop-5.4-5.4.0/debian/scripts/file-downloader
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+if [ "$#" -ne 1 ]; then
+	echo "Usage: $0 <url>" 1>&2
+	exit 1
+fi
+url="$1"
+
+to=$(basename "$url")
+
+count=0
+what='fetching'
+while :
+do
+	if [ "$count" -eq 20 ]; then
+		echo "EE: excessive redirects" 1>&2
+		exit 1
+	fi
+	count=$(($count+1))
+
+	echo "II: $what $url"
+
+	curl --silent --fail --show-error "$url" -o "$to" -D "$to.hdr" || exit 1
+	redirect=$(awk '/^Location: / {gsub(/^[[:space:]]+|[[:space:]]+$/,"",$2); print $2;}' "$to.hdr")
+	[ -z "$redirect" ] && break
+	what='  following'
+
+	url=$(echo "$redirect" | sed -e 's@https://launchpadlibrarian.net/@http://launchpadlibrarian.net/@')
+	if [ "$redirect" != "$url" ]; then
+		echo "II:   fixing $redirect"
+	fi
+done
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/fix-filenames.c
+++ linux-gkeop-5.4-5.4.0/debian/scripts/fix-filenames.c
@@ -0,0 +1,80 @@
+/*
+ * fix-filenames: find a specified pathname prefix and remove it from
+ *                C strings.
+ *
+ * Copyright (C) 2018 Canonical Ltd.
+ * Author: Andy Whitcroft <apw@canonical.com>
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+int
+main(int argc, char *argv[])
+{
+	int rc;
+	char *in_name;
+	char *prefix;
+	int prefix_len;
+	int in_fd;
+	struct stat in_info;
+	char *in;
+	off_t size;
+	int length;
+
+	if (argc != 3) {
+		fprintf(stderr, "Usage: %s <file> <prefix>\n", argv[0]);
+		exit(1);
+	}
+	in_name    = argv[1];
+	prefix     = argv[2];
+	prefix_len = strlen(prefix);
+
+	in_fd = open(in_name, O_RDWR);
+	if (in_fd < 0) {
+		perror("open input failed");
+		exit(1);
+	}
+
+	rc = fstat(in_fd, &in_info);
+	if (rc < 0) {
+		perror("fstat input failed");
+		exit(1);
+	}
+	size = in_info.st_size;
+
+	in = mmap((void *)0, size, PROT_READ|PROT_WRITE, MAP_SHARED, in_fd, (off_t)0);
+	if (!in) {
+		perror("mmap failed");
+		exit(1);
+	}
+
+	for (; size > 0; size--, in++) {
+		if (*in != *prefix)
+			continue;
+		if (strncmp(in, prefix, prefix_len) != 0)
+			continue;
+		/* In the case of an exact match there there is nothing to move. */
+		if (in[prefix_len] == '\0')
+			length = 0;
+		/* If this is a filename, strip the leading slash. */
+		else if (in[prefix_len] == '/')
+			length = strlen(in + prefix_len + 1) + 1;
+		/* Otherwise just keep the suffix. */
+		else
+			length = strlen(in + prefix_len) + 1;
+
+		/*
+		 * Copy the suffix portion down to the start and clear
+		 * the remainder of the space to 0.
+		 */
+		memmove(in, in + prefix_len + 1, length);
+		memset(in + length, '\0', prefix_len);
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/helpers/close
+++ linux-gkeop-5.4-5.4.0/debian/scripts/helpers/close
@@ -0,0 +1,195 @@
+#!/bin/bash -eu
+export LC_ALL=C.UTF-8
+
+usage() {
+	cat << EOF
+Usage: ${P:-$(basename "$0")} [-h|--help] [-d|--dry-run] [-c|--include-config] [-s|--skip-master] [-b BASE_VERSION]
+
+Prepare the closing release commit. Include all the changelog entries
+in the current release, including the changes from the base
+kernel. Also close the changelog entry and check for config changes.
+
+Optional arguments:
+  -d, --dry-run         Perform a trial run with no changes made
+                        printing the commands instead.
+  -c, --include-config  Include config changes in the closing commit.
+  -s, --skip-master     Skip master kernel changelog entries (used when
+                        bootstraping new kernels).
+  -b BASE_VERSION       For derivatives and backports, force the changelog
+                        entries to have the base version as provided (used
+                        when changing the base derivative version of a
+                        backport).
+  -h, --help            Show this help message and exit.
+
+Examples:
+  Simply close a release:
+    \$ cranky close
+
+  Also include any config changes to the closing commit:
+    \$ cranky close -c
+
+EOF
+}
+
+dry_run=0
+commit_configs=0
+skip_master_entries=0
+base_version=
+while [ "$#" -gt 0 ]; do
+	case "$1" in
+		-h|--help)
+			usage
+			exit 0
+			;;
+		-d|--dry-run)
+			dry_run=1
+			;;
+		-c|--include-config)
+			commit_configs=1
+			;;
+		-s|--skip-master)
+			skip_master_entries=1
+			;;
+		-b)
+			shift
+			base_version="$1"
+			;;
+		*)
+			usage
+			exit 1
+			;;
+	esac
+	shift
+done
+
+hl() { echo -e "\e[1m$*\e[0m"; }
+
+run() {
+	# Quote args for echo or eval
+	local quoted=()
+	for token; do
+		quoted+=( "$(printf '%q' "$token")" )
+	done
+	# Run
+	if [ "$dry_run" -eq 1 ]; then
+		hl "DRY RUN: ${quoted[*]}"
+	else
+		hl "${quoted[*]}"
+		"$@"
+		echo
+	fi
+}
+
+# Trick shellcheck so it doesn't complain every time it's necessary to
+# use `run $CHROOT`. Use `chroot_run` instead.
+shopt -s expand_aliases
+alias chroot_run='run ${CHROOT:-}'
+
+DEBIAN=
+# shellcheck disable=SC1091
+. debian/debian.env
+
+# Check if the "$DEBIAN" directory exists.
+if [ ! -d "$DEBIAN" ]; then
+	echo "You must run this script from the top directory of this repository."
+	exit 1
+fi
+
+CONF="$DEBIAN/etc/update.conf"
+if [ -f "$CONF" ]; then
+	# shellcheck disable=SC1090
+	. "$CONF"
+fi
+
+# Check if changelog is open
+series=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SDistribution)
+if [ "$series" != 'UNRELEASED' ]; then
+	echo "The last entry of the changelog is already released."
+	exit 1
+fi
+
+# Update configs
+if [ -d "$DEBIAN/config" ]; then
+	chroot_run fakeroot debian/rules clean updateconfigs
+	changes=$(git diff HEAD -- "./$DEBIAN/config/")
+	if [ "$commit_configs" -eq 0 ] && [ -n "$changes" ]; then
+		echo "Config has changed! please, review it and commit."
+		exit 1
+	fi
+fi
+
+# For normal trees the fact that the update.conf file exists means that they are rebase
+# kernels. There are some special trees which started with uc20-efi, which have that
+# file because they logically depend on another source but do not have the directory
+# which DEBIAN_MASTER points to.
+# Skip inserting parent source entries if this is not a rebase tree.
+if [ ! -f "$DEBIAN/etc/update.conf" ]; then
+	skip_master_entries=1
+elif [ "$DEBIAN_MASTER" != "" -a ! -d "$DEBIAN_MASTER" ]; then
+	skip_master_entries=1
+fi
+if [ $skip_master_entries == 0 ]; then
+	if [ "$DEBIAN_MASTER" = "" ]; then
+		echo "DEBIAN_MASTER should be defined either in $DEBIAN/etc/update.conf or the environment"
+		exit 1
+	fi
+
+	if [ -z "${base_version}" ]; then
+		offset=0
+		# If not provided as an option, loop through each entry of the current changelog,
+		# searching for an entry that refers to the master version used as base
+		# (ie a line containing "[ Ubuntu: 4.15.0-39.42 ]"):
+		while true; do
+			changes=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SChanges -c1 -o"$offset")
+			if ! [ "$changes" ]; then
+				echo "Failed to retrieve base master version from changelog file: $DEBIAN/changelog"
+				exit 1
+			fi
+			base_version=$(echo "$changes" | sed -n -r -e '/^\s.*\[ Ubuntu: ([~0-9.-]*) \]$/{s//\1/p;q}')
+			[ "$base_version" ] && break
+			offset=$(( offset + 1 ))
+		done
+	fi
+
+	master_version=$(dpkg-parsechangelog -l${DEBIAN_MASTER}/changelog -SVersion)
+	if ! [ "$master_version" ]; then
+		echo "Failed to retrieve current master version from changelog: $DEBIAN/changelog"
+		exit 1
+	fi
+	run ./debian/scripts/misc/insert-ubuntu-changes "$DEBIAN/changelog" "$base_version" "$master_version" \
+		"$DEBIAN_MASTER/changelog"
+fi
+
+# Insert local changes
+run fakeroot debian/rules insertchanges
+
+# This should be the last step. If there were no changes to the
+# changelog, there is nothing to release, so nothing to commit.
+changes=$(git diff HEAD)
+if [ -z "$changes" ] && [ "$dry_run" -eq 0 ]; then
+	hl "No changes to commit."
+	exit 1
+fi
+
+# Find the current series from previous changelog entries:
+series=''
+offset=0
+while true; do
+	series=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SDistribution -c1 -o"$offset")
+	if [ "$series" ] && [ "$series" != 'UNRELEASED' ]; then
+		break
+	fi
+	offset=$(( offset + 1 ))
+done
+if ! [ "$series" ]; then
+	echo "Failed to retrieve the package series from changelog: $DEBIAN/changelog"
+	exit 1
+fi
+# Close the changelog
+run dch --nomultimaint -c "$DEBIAN/changelog" -r -D "$series" ''
+
+# Commit changes
+package=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SSource)
+prefix="Ubuntu$(echo "$package" | sed -r -e 's/linux(-?)/\1/')-"
+version=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SVersion)
+run git commit -sam "UBUNTU: $prefix$version"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/helpers/open
+++ linux-gkeop-5.4-5.4.0/debian/scripts/helpers/open
@@ -0,0 +1,219 @@
+#!/bin/bash -eu
+export LC_ALL=C.UTF-8
+
+usage() {
+	cat << EOF
+Usage: ${P:-$(basename "$0")} [-h|--help] [-d|--dry-run] [-r|--reuse-abi]
+
+Create a "start new release" commit. The new commit will contain ABI
+changes and any customization required by backport kernels.
+
+Optional arguments:
+  -d, --dry-run         Perform a trial run with no changes made
+                        printing the commands instead.
+  -r, --reuse-abi       Do not download the previous release ABI files
+                        for the new release and just rename the
+                        current ABI directory. This might cause the
+                        build to fail if the module list or the
+                        retpoline information has changed.
+  -h, --help            Show this help message and exit.
+
+Environment variable:
+  CRANKY_MAILENFORCE    Regular expression used to validate \$DEBEMAIL. If not
+                        set, it defaults to "@canonical.com$".
+
+Examples:
+  Simply start a new release (that will fetch the ABI files from the
+  archieve repositories):
+    \$ cranky open
+
+  Start a new release re-using the ABI files already present in the
+  tree:
+    \$ cranky open --reuse-abi
+
+EOF
+}
+
+dry_run=0
+reuse_abi=0
+while [ "$#" -gt 0 ]; do
+	case "$1" in
+		-h|--help)
+			usage
+			exit 0
+			;;
+		-d|--dry-run)
+			dry_run=1
+			;;
+		-r|--reuse-abi)
+			reuse_abi=1
+			;;
+		*)
+			usage
+			exit 1
+			;;
+	esac
+	shift
+done
+
+hl() { echo -e "\e[1m$*\e[0m"; }
+
+run() {
+	# Quote args for echo or eval
+	local quoted=()
+	for token; do
+		quoted+=("$(printf '%q' "$token")")
+	done
+	# Run
+	if [ "$dry_run" -eq 1 ]; then
+ 		hl "DRY RUN: ${quoted[*]}"
+	else
+		hl "${quoted[*]}"
+		"$@"
+		echo
+	fi
+}
+
+# Trick shellcheck so it doesn't complain every time it's necessary to
+# use `run $CHROOT`. Use `chroot_run` instead.
+shopt -s expand_aliases
+alias chroot_run='run ${CHROOT:-}'
+
+# Check DEBEMAIL (used to create the new changelog stanza):
+DEBEMAIL="${DEBEMAIL:-}"
+CRANKY_MAILENFORCE="${CRANKY_MAILENFORCE:-@canonical.com\$}"
+if [ -z "$DEBEMAIL" ] || ! echo "$DEBEMAIL" | grep -qE "$CRANKY_MAILENFORCE"; then
+	echo "DEBEMAIL is unset, or does not contain \"$CRANKY_MAILENFORCE\": $DEBEMAIL" >&2
+	exit 1
+fi
+
+# Requires a git repo
+if [ ! -e .git ]; then
+	echo "Not a git repository!" >&2
+	exit 1
+fi
+
+# Check the debian directory
+if [ ! -e debian/debian.env ]; then
+	echo "Cannot find debian/debian.env!" >&2
+	exit 1
+fi
+DEBIAN=
+# shellcheck disable=SC1091
+. debian/debian.env
+if [ -z "$DEBIAN" ] || [ ! -d "$DEBIAN" ]; then
+	echo "Invalid DEBIAN directory: $DEBIAN" >&2
+	exit 1
+fi
+
+# Abort if changes or untracked files are found in the debian
+# directory (ie, in "debian.master/"). cranky open is expected to
+# change and commit files in this directory.
+if ! git diff-index --quiet HEAD -- "$DEBIAN/" || \
+		[ -n "$(git ls-files --others -- "$DEBIAN/")" ]; then
+	echo "\"$DEBIAN/\" is not clean!" >&2
+	exit 1
+fi
+
+# Check changelog
+series=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SDistribution)
+if [ "$series" == 'UNRELEASED' ]; then
+	echo "$DEBIAN/changelog is not closed!" >&2
+	exit 1
+fi
+
+# Load the info about derivative
+BACKPORT_SUFFIX=
+derivative_conf="$DEBIAN/etc/update.conf"
+if [ -f "$derivative_conf" ]; then
+	# shellcheck disable=SC1090
+	. "$derivative_conf"
+fi
+
+# Run the update script used for backport kernels
+if [ -n "$BACKPORT_SUFFIX" ]; then
+	update_from_master_script="$DEBIAN/scripts/helpers/copy-files"
+	if [ ! -x "$update_from_master_script" ]; then
+		echo "Backport kernel is missing the"\
+		     "\"$update_from_master_script\" script!";
+		exit 1
+	fi
+	# The tree should be clean at this point, since that is enforced at
+	# the beginning of the script. Because of that, it's safe to git add
+	# "$DEBIAN/".
+	run env CHROOT="$CHROOT" "$update_from_master_script"
+	run git add "$DEBIAN"
+	# Update configs after the necessary files were copied from
+	# the base kernel. It's not expected that `fdr updateconfigs`
+	# will fail at this point, because the base kernel's
+	# configuration and annotations file are expected to be in a
+	# correct state. `fdr updateconfigs` should only change a few
+	# configuration options that depend on the userspace tooling
+	# version, such as gcc.
+	if ! chroot_run fakeroot debian/rules clean updateconfigs; then
+		echo "Failed to update configs. Please review the previous" \
+		     "rebase operation and \"$update_from_master_script\"";
+		exit 1
+	fi
+	run git add "$DEBIAN/config"
+fi
+
+# fdr clean should be called after copy-files, that way we can git add
+# any changes in "debian.<branch>/" (`fdr clean` in trusty will
+# usually generate changes in "debian.<branch>/). Also, fdr clean
+# removes an ABI that matches the current version in the
+# changelog. Since `fdr startnewrelease` requires `fdr clean`, we need
+# to call it before getabis.
+chroot_run fakeroot debian/rules clean
+
+# Update ABI
+if [ -d "$DEBIAN/abi" ]; then
+	# The new ABI directory should use the current version in the
+	# changelog since `fdr startnewrelease` was't called at this
+	# point yet:
+	new=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SVersion)
+
+	if [ "$reuse_abi" -ne 0 ]; then
+		# Get the old ABI directory:
+		old=$(find "$DEBIAN/abi/" -mindepth 1 -maxdepth 1 -type d | \
+				  grep -P '/abi/[0-9]+\.[0-9]+\.[0-9]+-[0-9]+\.[0-9]+')
+		if [ -z "${old}" ] ; then
+			echo "Failed to find the previous ABI directory." \
+				 "Please check \"$DEBIAN/abi/\"!" >&2
+			exit 1
+		elif [ "$(echo "$old" | wc -l)" -gt 1 ]; then
+			echo "Failed to rename the current ABI directory." \
+			     "Multiple directories found. Please check \"$DEBIAN/abi/\"!" >&2
+			exit 1
+		fi
+		new="$DEBIAN/abi/$new"
+		# Rename the ABI directory
+		run git mv "$old" "$new"
+	else
+		# Call in-tree getabis:
+		# Use the single argument form since getabis is now
+		# updated by cranky fix.
+		run debian/scripts/misc/getabis "${new}"
+		# getabis already handles the necessary git add/rm calls.
+	fi
+fi
+
+# Create the new changelog entry:
+run fakeroot debian/rules startnewrelease
+run git add "$DEBIAN/changelog"
+
+# Create the commit
+run git commit -s -F debian/commit-templates/newrelease
+
+# Perform a basic ABI check
+if [ "$dry_run" -eq 0 ]; then
+	version=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SVersion -c1 -o1)
+	abi_dir="$DEBIAN/abi/$version"
+	[ ! -d "$abi_dir" ] && hl "Warning: ABI directory is missing: $abi_dir"
+fi
+
+# Mimic maint-startnewrelease
+[ "$dry_run" -eq 0 ] && \
+    hl "\n***** Now please inspect the commit before pushing *****"
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/helpers/rebase
+++ linux-gkeop-5.4-5.4.0/debian/scripts/helpers/rebase
@@ -0,0 +1,141 @@
+#!/bin/bash -e
+#
+# This script is intended as a helper when rebasing from its master branch.
+#
+
+LOCAL_BRANCH=
+RELEASE_REPO=
+SOURCE_RELEASE_BRANCH=
+
+function out()
+{
+	local rc="${?}"
+	trap - EXIT INT TERM HUP
+	[ "${rc}" -eq 0 ] || echo "Error: Script failed"
+	exit "${rc}"
+}
+
+trap out EXIT INT TERM HUP
+
+if [ -f debian/debian.env ]; then
+	# shellcheck disable=SC1091
+	. debian/debian.env
+fi
+
+if [ ! -d "${DEBIAN}" ]; then
+	echo You must run this script from the top directory of this repository.
+	exit 1
+fi
+
+CONF="${DEBIAN}"/etc/update.conf
+if [ -f "${CONF}" ]; then
+	# shellcheck disable=SC1090
+	. "${CONF}"
+fi
+
+usage="$0 [-r RELEASE_REPO] [ -b REMOTE_BRANCH ] [-l LOCAL_BRANCH] [-d]"$'\n\n'
+usage+="-r RELEASE_REPO		Git repository to fetch the reference branch from."$'\n'
+usage+="-b REMOTE_BRANCH	Remote branch to fetch from."$'\n'
+usage+="-l LOCAL_BRANCH		Use LOCAL_BRANCH as the reference branch."$'\n'
+usage+="-d 			Dry run (do not rebase)."
+
+#
+# command line options:
+# [-r RELEASE_REPO]  - override default git repository.
+# [-b REMOTE_BRANCH] - override default remote branch.
+# [-l LOCAL_BRANCH]  - do not fetch from remote repo, use a local branch.
+
+while getopts "r:b:l:d" opt; do
+	case $opt in
+	r ) RELEASE_REPO="$OPTARG" ;;
+	b ) SOURCE_RELEASE_BRANCH="$OPTARG" ;;
+	l ) LOCAL_BRANCH="$OPTARG" ;;
+	d ) DRY_RUN=1 ;;
+	\? ) echo "usage: ${usage}"; exit ;;
+	esac
+done
+shift $((OPTIND - 1))
+
+# For normal trees the fact that the update.conf file exists means that they are rebase
+# kernels. There are some special trees which started with uc20-efi, which have that
+# file because they logically depend on another source but do not have the directory
+# which DEBIAN_MASTER points to.
+IS_REBASE_KERNEL=true
+if [ ! -f "$DEBIAN/etc/update.conf" ]; then
+        IS_REBASE_KERNEL=false
+elif [ "$DEBIAN_MASTER" != "" -a ! -d "$DEBIAN_MASTER" ]; then
+        IS_REBASE_KERNEL=false
+fi
+if ! $IS_REBASE_KERNEL; then
+	echo "This is not a rebase kernel, no rebase should be needed, please report if otherwise"
+	exit 0
+fi
+
+if [ "$DEBIAN_MASTER" = "" ]; then
+	echo "DEBIAN_MASTER should be defined either in ${DEBIAN}/etc/update.conf or the environment"
+	exit 1
+fi
+
+if [ -z "${LOCAL_BRANCH}" ]; then
+	if [ -z "${RELEASE_REPO}" ] || [ -z "${SOURCE_RELEASE_BRANCH}" ]; then
+		echo Missing update.conf or missing parameters for remote repo and branch.
+		exit 1
+	fi
+	#
+	# Fetch the upstream branch.
+	#
+	git fetch "${RELEASE_REPO}"
+	git fetch "${RELEASE_REPO}" "${SOURCE_RELEASE_BRANCH}"
+	LOCAL_BRANCH=FETCH_HEAD
+fi
+
+#
+# Find the most recent tag on given upstream branch, then
+# rebase against it. This avoids the case where there have been some
+# commits since the last official tag.
+#
+MASTER_COMMIT=$(git log --pretty=one "${LOCAL_BRANCH}" "${DEBIAN_MASTER}" | \
+    awk '
+	/Ubuntu-/ {
+		if (match($0, /UBUNTU: Ubuntu-/)) {
+				print $1
+				exit
+                        }
+                }
+        '
+)
+#
+# Find the current merge point where current branch was based.
+#
+BASE_COMMIT=$(git log --pretty=one "${DEBIAN_MASTER}" | \
+    awk '
+	/Ubuntu-/ {
+		if (match($0, /UBUNTU: Ubuntu-/)) {
+				print $1
+				exit
+                        }
+                }
+        '
+)
+if [ "${MASTER_COMMIT}" = "${BASE_COMMIT}" ]; then
+	echo Already up to date.
+	exit 0
+fi
+
+if [ -z "${MASTER_COMMIT}" ] || [ -z "${BASE_COMMIT}" ]; then
+	echo "Could not find either master or base commit."
+	echo "master commit: ${MASTER_COMMIT}"
+	echo "base commit: ${BASE_COMMIT}"
+	exit 1
+fi
+
+MASTER_VERSION=$(git show --format=%s -s "$MASTER_COMMIT" | sed 's/^UBUNTU: //')
+BASE_VERSION=$(git show --format=%s -s "$BASE_COMMIT" | sed 's/^UBUNTU: //')
+echo "Rebase still needed between $BASE_VERSION and $MASTER_VERSION."
+
+if [ "${DRY_RUN}" ]; then
+	echo "DRY RUN: git rebase --onto ${MASTER_COMMIT} ${BASE_COMMIT}"
+	exit 0
+fi
+
+git rebase --onto "${MASTER_COMMIT}" "${BASE_COMMIT}"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/link-headers
+++ linux-gkeop-5.4-5.4.0/debian/scripts/link-headers
@@ -0,0 +1,42 @@
+#!/bin/bash -e
+
+. debian/debian.env
+
+hdrdir="$1"
+symdir="$2"
+flavour="$3"
+
+echo "Symlinking and copying headers for $flavour..."
+
+excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o"
+
+(
+find . $excludes  -type f \
+	\( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+	-name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print
+find ./include ./scripts -name .gitignore -prune -o -type f -print
+find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print
+) | (
+while read file; do
+	dir=$file
+	lastdir=$file
+
+	if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then
+		continue
+	fi
+
+	while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do
+		lastdir=$dir
+		dir=`dirname $dir`
+	done
+	# If the last item to exist is a symlink we assume all is good
+	if [ ! -L "$hdrdir/$dir" ]; then
+		# Turns things like "./foo" into "../"
+		deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`"
+		item="`echo -n $lastdir | sed -e 's/^\.\///'`"
+		ln -s $deref$symdir/$item $hdrdir/$item
+	fi
+done
+)
+
+exit
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/arch-has-odm-enabled.sh
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/arch-has-odm-enabled.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Evaluate whether arch ($1) will be built with do_odm_drivers set to true.
+set -e
+
+if [ "$1" = "" ]; then
+	# This would be set doing the actual kernel build
+	if [ "$KBUILD_VERBOSE" = "" ]; then
+		return 1
+	fi
+	case $ARCH in
+	x86)	ARCH=amd64;;
+	*)	;;
+	esac
+else
+	ARCH=$1
+fi
+
+TOPDIR=$(dirname $0)/../../..
+. $TOPDIR/debian/debian.env
+RULESDIR=$TOPDIR/$DEBIAN/rules.d
+
+do_odm_drivers=false
+for f in $ARCH.mk hooks.mk; do
+	eval $(cat $RULESDIR/$f | sed -n -e '/do_odm_drivers/s/ \+//gp')
+done
+if [ "$do_odm_drivers" != "true" ]; then
+	return 1
+fi
+
+return 0
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/final-checks
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/final-checks
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+debian="$1"
+abi="$2"
+
+. "$debian/etc/kernelconfig"
+archs=$( awk '/^Architecture:/ { $1=""; for (i=1; i<=NF; i++) { if ($i != "all") { print $i }}}' debian/control | sort -u)
+
+fail=0
+
+failure()
+{
+	echo "EE: $@" 1>&2
+	fail=1
+}
+
+abi_check()
+{
+	local abidir="$1"
+	local arch="$2"
+	local flavour="$3"
+
+	local abidir="$abidir/$arch"
+
+	if [ ! -f "$abidir/$flavour" -a \
+	     ! -f "$abidir/$flavour.ignore" -a \
+	     ! -f "$abidir/ignore" ]
+	then
+		failure "$arch/$flavour ABI symbol file missing"
+	fi
+
+	if [ ! -f "$abidir/$flavour.modules" -a \
+	     ! -f "$abidir/$flavour.ignore.modules" -a \
+	     ! -f "$abidir/ignore.modules" ]
+	then
+		failure "$arch/$flavour ABI modules file missing"
+	fi
+
+	if [ ! -f "$abidir/$flavour.retpoline" -a \
+	     ! -f "$abidir/$flavour.ignore.retpoline" -a \
+	     ! -f "$abidir/ignore.retpoline" ]
+	then
+		failure "$arch/$flavour ABI retpoline file missing"
+	fi
+}
+
+for arch in $archs
+do
+	image_pkg=$(awk -F '\\s*=\\s*' '$1 == "do_flavour_image_package" { print $2 }' $debian/rules.d/$arch.mk)
+	if [ "$image_pkg" = "false" ]; then
+		continue
+	fi
+	if [ ! -f "$debian/rules.d/$arch.mk" ]; then
+		continue
+	fi
+	flavours=$(
+		awk '/^\s*flavours\s*=/{
+			sub(/^\s*flavours\s*=\s*/, "");
+			print
+		}' "$debian/rules.d/$arch.mk")
+	for flavour in $flavours
+	do
+		flavour=$(echo "$flavour" | sed -e 's@.*/config.flavour.@@')
+		abi_check "$debian/abi/$abi" "$arch" "$flavour"
+	done
+done
+
+exit "$fail"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/find-missing-sauce.sh
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/find-missing-sauce.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Find the 'UBUNTU: SAUCE:' patches that have been dropped from
+# the previous release.
+#
+PREV_REL=artful
+PREV_REPO=git://kernel.ubuntu.com/ubuntu/ubuntu-${PREV_REL}.git
+
+git fetch ${PREV_REPO} master-next
+git log --pretty=oneline FETCH_HEAD|grep SAUCE|while read c m;do echo $m;done |sort > $$.prev-rel
+git log --pretty=oneline |grep SAUCE|while read c m;do echo $m;done |sort > $$.curr-rel
+
+diff -u $$.prev-rel $$.curr-rel |grep "^-"
+rm -f $$.prev-rel $$.curr-rel
+
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/find-obsolete-firmware
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/find-obsolete-firmware
@@ -0,0 +1,91 @@
+#!/bin/bash
+#
+# Find all duplicate or obsolete firmware that is being carried
+# in the kernel firmware directory. Compare these files against
+# the linux-firmware package for the approriate release. For example,
+# assuming this is raring, then compare the kernel firmware files
+# against the raring branch of linux-firmware.
+#
+# Example: $0 ~/ubuntu/linux-firmware-raring
+
+USEAGE="$0 LINUX-FIRMWARE"
+
+. debian/debian.env
+
+NFWINFO="`find $DEBIAN -name fwinfo|wc -l`"
+if [ ! "$NFWINFO" = "1" ]
+then
+	echo Your repo is hosed. There can only be one fwinfo file.
+	find $DEBIAN -name fwinfo
+	exit 1
+fi
+
+FWINFO="`pwd`/`find $DEBIAN -name fwinfo`"
+
+if [ "$1" = "" ]
+then
+	echo $USEAGE
+	exit 1
+fi
+FW="$1"
+
+if [ ! -f $FW/WHENCE ]
+then
+	echo Bogus linux-firmware directory
+	exit 1
+fi
+if ! egrep -q "^firmware:" $FWINFO
+then
+	echo Bogus firmware info file
+	exit 1
+fi
+
+#
+# Prepare the tree and make firmware.
+#
+TEE="tee -a"
+LO=`pwd`/firmware.txt
+LF=`pwd`/lib/firmware
+rm -rf debian/build $LF $LO
+fakeroot debian/rules clean prepare-generic
+cp debian/build/build-generic/.config .
+mkdir -p $LF
+make firmware_install INSTALL_MOD_PATH=`pwd`
+
+(cd $LF
+find . -type f | while read f
+do
+	BN="`basename $f`"
+
+	if ! grep -q $BN $FWINFO
+	then
+		echo "Unused firmware: $f" | $TEE $LO
+	else
+		if [ -f $FW/$f ]
+		then
+			if ! cmp $FW/$f $f
+			then
+				echo "$f differs" | $TEE $LO
+			else
+				echo "$f is duplicated" | $TEE $LO
+			fi
+		else
+			echo "$f does not exist in $FW" | $TEE $LO
+		fi
+	fi
+done)
+
+#
+# Check for firmware files referenced by the kernel
+# that do not exist in either location.
+#
+cat $FWINFO | while read fwi f
+do
+	if [ -s lib/firmware/$f ] || [ -s $FW/$f ]
+	then
+		continue
+	else
+		echo "Missing firmware $f" | $TEE $LO
+	fi
+done
+
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/fw-to-ihex.sh
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/fw-to-ihex.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+F=$1
+if [ "$F" = "" ]
+then
+	echo You must supply a firmware file.
+	exit 1
+fi
+
+echo "unsigned char d[] = {" > $F.c
+hexdump -v -e '"\t" 8/1 "0x%02x, " "\n"' $F >> $F.c
+echo "};" >> $F.c
+sed -i 's/0x .*$//' $F.c
+
+O="`dirname $F`/`basename $F`.o"
+gcc -o $O -c $F.c
+objcopy -Oihex $F.o $F.ihex
+
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/gen-auto-reconstruct
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/gen-auto-reconstruct
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+if [ "$#" -ne 3 ]; then
+	echo "Usage: $0 <orig tag>|<base release> <reconstruct> <options>" 1>&2
+	exit 1
+fi
+tag="$1"
+reconstruct="$2"
+options="$3"
+
+case "$tag" in
+v*)	;;
+*)	tag="v${tag%.*}" ;;
+esac
+
+# Validate the tag.
+count=$( git tag -l "$tag" | wc -l )
+if [ "$count" != 1 ]; then
+	echo "$0: $tag: tag invalid" 1>&2
+	exit 1
+fi
+
+#git ls-tree -r --full-tree HEAD | grep ^120 | \
+#while read mode type blobid name
+
+(
+	# Identify all new symlinks since the proffered tag.
+	echo "# Recreate any symlinks created since the orig."
+	git diff "$tag.." --raw --no-renames | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
+	while read name
+	do
+		link=$( readlink "$name" )
+
+		echo "[ ! -L '$name' ] && ln -sf '$link' '$name'"
+	done
+
+	# Identify all removed files since the proffered tag.
+	echo "# Remove any files deleted from the orig."
+	git diff "$tag.." --raw --no-renames | awk '(/^:/ && $5 == "D") { print $NF }' | \
+	while read name
+	do
+		echo "rm -f '$name'"
+	done
+
+	# Identify files with execute permissions added since the proffered tag.
+	git diff "$tag.." --raw --no-renames | awk -F '[: \t]' '{print $2, $3, $NF }' | \
+	while IFS=" " read old new name
+	do
+		old=$( printf "0%s" $old )
+		new=$( printf "0%s" $new )
+		changed=$(( (old ^ new) & 0111 ))
+		if [ "$changed" -ne 0 ]; then
+			echo "chmod +x '$name'"
+		fi
+	done
+
+	# All done, make sure this does not complete in error.
+	echo "exit 0"
+) >"$reconstruct"
+
+(
+	# Identify all new symlinks since the proffered tag.
+	echo "# Ignore any symlinks created since the orig which are rebuilt by reconstruct."
+	git diff "$tag.." --raw --no-renames | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
+	while read name
+	do
+		echo "extend-diff-ignore=^$name\$"
+	done
+) >"$options.update"
+
+
+head='^## autoreconstruct -- begin$'
+foot='^## autoreconstruct -- end$'
+sed -i -e "
+	/$head/,/$foot/{
+		/$head/{
+			p;
+			r $options.update
+		};
+		/$foot/p;
+		d
+	}
+" "$options"
+rm -f "$options.update"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/get-firmware
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/get-firmware
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# Find all files in linux-firmware that are new or different since the previous release
+# and copy them into the kernel firmware directory. You should only do this on the
+# backport branch since it would be redundant on the released kernel. It assumed you've
+# unpacked linux-firmware from each release into separate directories.
+#
+# Example: $0 ~/ubuntu/linux-firmware-precise ~/ubuntu/linux-firmware-quantal
+
+if [ "$1" = "" ] || [ "$2" = "" ] || [ ! -f $1/WHENCE ] || [ ! -f $2/WHENCE ]
+then
+	echo You must supply 2 firmware directories.
+	exit 1
+fi
+
+if [ ! -f debian/debian.env ]
+then
+	echo You must run this script from the root of the repo
+	exit 1
+fi
+. debian/debian.env
+
+NFWINFO="`find $DEBIAN -name fwinfo|wc -l`"
+if [ ! "$NFWINFO" = "1" ]
+then
+	echo Your repo is hosed. There can only be one fwinfo file.
+	find $DEBIAN -name fwinfo
+	exit 1
+fi
+
+FWINFO="`pwd`/`find $DEBIAN -name fwinfo`"
+
+CDIR=`pwd`
+OFW=$1
+NFW=$2
+
+cd $NFW
+#
+# Find all files in $NFW that are new or different from $1
+#
+(find . -type f | egrep -v "debian|git|LICEN|WHEN|READ|Make|configure" | sed 's;\./;;' | \
+while read f
+do
+	if grep -q $f $FWINFO
+	then
+		if [ ! -f $OFW/$f ]
+		then
+			echo $f
+		elif ! cmp $f $OFW/$f > /dev/null
+		then
+			echo $f
+		fi
+	fi
+done) |\
+while read f
+do
+	mkdir -p $CDIR/firmware/`dirname $f`
+	if [ ! -f $CDIR/firmware/`dirname $f`/`basename $f`.ihex ]
+	then
+		cp -v $f $CDIR/firmware/`dirname $f`
+	fi
+done
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/getabis
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/getabis
@@ -0,0 +1,194 @@
+#!/bin/bash
+
+export LC_ALL=C.UTF-8
+
+if [ "$#" = "1" ]; then
+	set - $(echo "$1" | sed -e 's/-/ /')
+fi
+if [ "$#" != "2" ]; then
+	echo "Usage: $0 <version>" 1>&2
+	echo "Usage: $0 <release> <revision>" 1>&2
+	exit 1
+fi
+
+if [ "$DEBIAN" = "" ]; then
+	. debian/debian.env
+fi
+
+ver=$1
+revision=$2
+abi=$(echo $revision | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$/\1/')
+
+verabi=$ver-$abi
+verfull=$ver-$revision
+
+WGET="wget --tries=1 --timeout=10 --quiet -c"
+
+abidir="`pwd`/$DEBIAN/abi/$verfull"
+tmpdir="`pwd`/abi-tmp-$verfull"
+origdir="`pwd`"
+fwinfo=$abidir/fwinfo
+
+test -d $tmpdir || mkdir $tmpdir
+
+package_prefixes() {
+	: # no longer used ...
+}
+
+getall() {
+	arch=$1
+	shift
+
+	mkdir -p $abidir/$arch
+
+	for sub in $@; do
+		if [ -f $abidir/$arch/$sub ]; then
+			echo "Existing $sub($arch)..."
+			continue
+		fi
+		echo "Fetching $sub($arch)..."
+		getall_set "linux-buildinfo" "$arch" "$sub" || \
+		getall_set "linux-image-unsigned linux-modules linux-modules-extra" "$arch" "$sub" || \
+		getall_set "linux-image-unsigned linux-modules" "$arch" "$sub" || \
+		getall_set "linux-image linux-modules linux-modules-extra" "$arch" "$sub" || \
+		getall_set "linux-image linux-modules" "$arch" "$sub" || \
+		getall_set "linux-image linux-image-extra" "$arch" "$sub" || \
+		getall_set "linux-image" "$arch" "$sub" || \
+		{ echo "FAILED"; exit 1; }
+	done
+}
+getall_set()
+{
+	prefixes="$1"
+	arch="$2"
+	sub="$3"
+	(
+		echo -n "  set:"
+		filenames=""
+		cd $tmpdir
+		found=1
+		for prefix in $prefixes
+		do
+			echo -n " $prefix="
+			if [ "$found" = 0 ]; then
+				echo -n "-"
+				continue
+			fi
+			filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb
+			for r in "${repo_list[@]}"
+			do
+				if ! [ -f $filename ]; then
+					$WGET $r/$filename
+					rc="$?"
+					# If this was not successful or a valid error
+					# return from the server all bets are off, bail.
+					[ "$rc" != 0 -a "$rc" != 8 ] && return 2
+				fi
+				if [ -f $filename ]; then
+					echo -n "y"
+					filenames="$filenames $filename"
+					break
+				fi
+			done
+			if [ ! -f "$filename" ]; then
+				echo -n "n"
+				found=0
+			fi
+		done
+		echo ""
+		if [ "$found" = 0 ]; then
+			return 1
+		fi
+		echo "  extracting..."
+		for filename in $filenames
+		do
+			dpkg-deb --extract $filename tmp
+		done
+		# FORM 1: linux-image et al extracted here.
+		if [ -d tmp/boot ]; then
+			echo "  images..."
+			find tmp -name "*.ko" | while read f; do
+				modinfo $f | grep ^firmware >> $fwinfo
+			done
+			if [ -f tmp/boot/abi-* ]; then
+				mv tmp/boot/abi-* $abidir/$arch/$sub
+			else
+				echo "    NO ABI FILE"
+			fi
+			if [ -f tmp/boot/retpoline-* ]; then
+				mv tmp/boot/retpoline-* $abidir/$arch/$sub.retpoline
+			else
+				echo "    NO RETPOLINE FILE"
+			fi
+			(cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
+				sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
+				$abidir/$arch/$sub.modules
+			(
+				cd tmp;
+				# Prevent exposing some errors when called by python scripts. SIGPIPE seems to get
+				# exposed when using the `find ...` form of the command.
+				ko=$(find lib/modules/$verabi-$sub/kernel \
+					-name '*.ko' | head -1)
+				readelf -p .comment "$ko" | gawk '
+					($1 == "[") {
+						printf("%s", $3);
+						for (n=4; n<=NF; n++) {
+							printf(" %s", $n);
+						}
+						print ""
+					}' | sort -u >$abidir/$arch/$sub.compiler
+				version=`cat $abidir/$arch/$sub.compiler`
+				echo "    $version"
+			)
+		# FORM 2: moduleinfo packages
+		# cranky fix -- modinfo supported
+		else
+			echo "  buildinfo..."
+			base="tmp/usr/lib/linux/${verabi}-${sub}"
+			mv "$base/abi" "$abidir/$arch/$sub"
+			for comp in 'modules' 'retpoline' 'compiler'
+			do
+				mv "$base/$comp" "$abidir/$arch/$sub.$comp"
+			done
+			cat "$base/fwinfo" >>"$fwinfo"
+		fi
+		rm -rf tmp $filenames
+		echo "  done"
+	)
+	rc="$?"
+	if [ "$rc" = 2 ]; then
+		echo "ERROR: downloads are reporting network failures" 1>&2
+		exit 1
+	fi
+	return "$rc"
+}
+
+# MAIN
+
+# Setup abi directory
+mkdir -p $abidir
+echo $abi > $abidir/abiname
+
+# NOTE: The flavours are hardcoded, because they may have changed from the
+# current build.
+
+. $DEBIAN/etc/getabis
+
+# Extract compiler source package version from e.g.:
+#   GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
+compilers=`sed 's/^.*(.* \(.*\)).*$/\1/' $abidir/*/*.compiler | sort -u | wc -l`
+if [ "$compilers" != 1 ]; then
+	echo "WARNING: inconsistent compiler versions detected:" 1>&2
+	sort -u $abidir/*/*.compiler | sed 's/^/WARNING:    /' 1>&2
+fi
+
+sort < $fwinfo | uniq > fwinfo.tmp
+mv fwinfo.tmp $fwinfo
+
+rmdir $tmpdir
+
+# If this is running in a git repo, add the new ABI directory, remove the old
+if [ -d ".git" ]; then
+    git add $abidir
+    find $DEBIAN/abi/* -maxdepth 0 -type d | grep -v $verfull | while read f; do git rm -r -f $f;done
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/git-ubuntu-log
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/git-ubuntu-log
@@ -0,0 +1,166 @@
+#!/usr/bin/python3
+
+import sys
+
+import codecs
+import urllib.request
+import json
+
+import textwrap
+
+sys.stdin = codecs.getreader("utf-8")(sys.stdin.detach())
+sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
+
+entries = []
+
+
+def add_entry(entry):
+    if entry and 'ignore' not in entry:
+        combo = []
+        for bug in set(entry.get('bugs', [])):
+            combo.append(bug)
+        for cve in set(entry.get('cves', [])):
+            combo.append(cve)
+        combo = sorted(combo)
+
+        if len(combo) == 0:
+            if entry.get('subject', "").startswith('UBUNTU'):
+                combo = '__packaging__'
+            else:
+                combo = '__mainline__'
+        else:
+            if entry.get('subject', "") == 'UBUNTU: link-to-tracker: update tracking bug':
+                # Construct a key with '__trackingbug__' on the first position
+                # and the tracking bug number afterwards
+                combo.insert(0, '__trackingbug__')
+                # Tracking bug goes at the top
+                keys.insert(0, combo)
+            else:
+                if combo not in keys:
+                    keys.append(combo)
+
+        entry['key'] = combo
+        entries.append(entry)
+
+
+# Suck up the git log output and extract the information we need.
+keys = []
+entry = None
+subject_wait = False
+for line in sys.stdin:
+    if line.startswith('commit '):
+        add_entry(entry)
+        entry = {}
+        subject_wait = True
+
+    elif line.startswith('Author: '):
+        bits = line.strip().split(maxsplit=1)
+        entry['author'] = bits[1]
+
+    elif subject_wait and line.startswith('    '):
+        subject_wait = False
+        entry['subject'] = line.strip()
+
+    elif line.startswith('    BugLink: '):
+        bits = line.strip().split(maxsplit=2)
+        if len(bits) > 2:
+            # There is text after the URL, so use that (after stripping the
+            # enclosing characters)
+            entry.setdefault('bugs', []).append(bits[2][1:-1])
+        elif 'launchpad.net' in bits[1]:
+            # Extract the bug number from the launchpad URL
+            bits = bits[1].split('/')
+            entry.setdefault('bugs', []).append(bits[-1])
+
+    elif line.startswith('    CVE-'):
+        entry.setdefault('cves', []).append(line.strip())
+
+    elif line.startswith('    Ignore:'):
+        entry['ignore'] = True
+
+    elif line.startswith('    Properties:'):
+        for prop in line.strip().split()[1:]:
+            if prop in ('ignore', 'no-changelog'):
+                entry['ignore'] = True
+
+add_entry(entry)
+
+entries.reverse()
+
+# Go through the entries and clear out authors for upstream commits.
+for entry in entries:
+    if entry['subject'].startswith('UBUNTU:'):
+        entry['subject'] = entry['subject'][7:].strip()
+    else:
+        del entry['author']
+
+# Lump everything without a bug at the bottom.
+keys.append('__packaging__')
+keys.append('__mainline__')
+
+emit_nl = False
+for key in keys:
+    if key == '__packaging__':
+        title_set = ['Miscellaneous Ubuntu changes']
+    elif key == '__mainline__':
+        title_set = ['Miscellaneous upstream changes']
+    else:
+        title_set = []
+        for bug in key:
+            if bug.startswith('CVE-'):
+                title_set.append(bug)
+            elif bug == '__trackingbug__':
+                # Look for the tracking bug number on the second
+                # position of the key
+                continue
+            elif bug.isdigit():
+                # Assume that it is an LP bug number if 'bug' contains only digits
+                bug_info = None
+
+                try:
+                    # urllib.request.urlcleanup()
+                    request = urllib.request.Request('https://api.launchpad.net/devel/bugs/' + bug)
+                    request.add_header('Cache-Control', 'max-age=0')
+                    with urllib.request.urlopen(request) as response:
+                        data = response.read()
+                        bug_info = json.loads(data.decode('utf-8'))
+
+                    title = bug_info['title']
+                    if 'description' in bug_info:
+                        for line in bug_info['description'].split('\n'):
+                            if line.startswith('Kernel-Description:'):
+                                title = line.split(' ', 1)[1]
+
+                except urllib.error.HTTPError:
+                    title = 'INVALID or PRIVATE BUG'
+
+                title += ' (LP###' + bug + ')'
+                title_set.append(title)
+            else:
+                # Finally treat 'bug' itself as the title
+                title_set.append(bug)
+
+    emit_title = True
+    for entry in entries:
+        if entry['key'] != key:
+            continue
+
+        if emit_title:
+            if emit_nl:
+                print('')
+            emit_nl = True
+
+            title_lines = textwrap.wrap('#// '.join(title_set), 76)
+            print('  * ' + title_lines[0].replace('LP###', 'LP: #').replace('#//', ' //'))
+            for line in title_lines[1:]:
+                line = line.replace('LP###', 'LP: #').replace('#//', ' //')
+                print('    ' + line)
+
+            emit_title = False
+
+        if key[0] != '__trackingbug__':
+            title_lines = textwrap.wrap(entry['subject'], 76)
+            print('    - ' + title_lines[0])
+            for line in title_lines[1:]:
+                line = line.replace('LP###', 'LP: #')
+                print('      ' + line)
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/insert-changes.pl
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/insert-changes.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl -w
+
+my $debian;
+$droot = $ARGV[0] if (defined $ARGV[0]);
+$droot = 'debian' if (!defined $droot);
+$debian = $ARGV[1] if (defined $ARGV[1]);
+$debian = 'debian.master' if (!defined $debian);
+
+system("make -s -f $droot/rules printchanges > $debian/changes");
+
+open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog";
+open(CHANGES, "< $debian/changes") or die "Cannot open new changes";
+open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog";
+
+$printed = 0;
+my $skip_newline = 0;
+
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		next if $printed;
+
+		$skip_newline = 1;
+		while (<CHANGES>) {
+			$skip_newline = 0;
+			print NEW;
+		}
+
+		$printed = 1;
+	} else {
+		if (/^$/ && $skip_newline == 1) {
+			$skip_newline = 0;
+			next;
+		}
+		print NEW;
+	}
+}
+
+close(NEW);
+close(CHANGES);
+close(CHANGELOG);
+
+rename("$debian/changelog.new", "$debian/changelog");
+unlink("$debian/changes");
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/insert-mainline-changes
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/insert-mainline-changes
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2) {
+	warn "Usage: $0 <changelog> <to> <range>\n";
+	die  "       $0 debian.master/changelog v3.2.3 v3.2.2..v3.2.3\n";
+}
+my ($changelog, $to, $range) = @ARGV;
+
+my @changes = ();
+
+push(@changes, "\n");
+push(@changes, "  [ Upstream Kernel Changes ]\n\n");
+push(@changes, "  * rebase to $to\n");
+
+open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n";
+while (<LOG>) {
+	if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) {
+		push(@changes, "    - LP: #$1\n");
+	}
+}
+close(LOG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		$printed--;
+		print NEW;
+		if ($printed == 0) {
+			print NEW @changes;
+		}
+		next;
+	}
+	print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/insert-ubuntu-changes
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/insert-ubuntu-changes
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2 && $#ARGV != 3) {
+	die "Usage: $0 <changelog> <stop at> <start at> [<source changelog>]\n";
+}
+if ($#ARGV == 2) {
+	push(@ARGV, "debian.master/changelog")
+}
+my ($changelog, $end, $start, $source_changelog) = @ARGV;
+
+$end =~ s/^\D+//;
+$start =~ s/^\D+//;
+
+sub version_cmp($$) {
+	my @a = split(/[\.-]+/, $_[0]);
+	my @b = split(/[\.-]+/, $_[1]);
+	for (my $i = 1;; $i++) {
+		if (!defined $a[$i]) {
+			if (!defined $b[$i]) {
+				return 0;
+			}
+			return -1;
+		}
+		if (!defined $b[$i]) {
+			return 1;
+		}
+		if ($a[$i] < $b[$i]) {
+			return -1;
+		}
+		if ($a[$i] > $b[$i]) {
+			return 1;
+		}
+	}
+}
+
+my @changes = ();
+my $output = 0;
+open(CHG, "<$source_changelog") ||
+	open(CHG, "<debian/changelog") ||
+	die "$0: debian/changelog: open failed - $!\n";
+while (<CHG>) {
+	if (/^\S+\s+\((.*)\)/) {
+		if (version_cmp($1, $end) <= 0) {
+			last;
+		}
+		if ($1 eq $start) {
+			$output = 1;
+		}
+		if ($output) {
+			push(@changes, "\n  [ Ubuntu: $1 ]\n\n");
+			next;
+		}
+	}
+	next if ($output == 0);
+
+	next if (/^\s*$/);
+	next if (/^\s--/);
+	next if (/^\s\s[^\*\s]/);
+
+	push(@changes, $_);
+}
+close(CHG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		$printed--;
+		print NEW;
+		if ($printed == 0) {
+			print NEW @changes;
+		}
+		next;
+	}
+	print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/kernel-wedge-arch.pl
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/kernel-wedge-arch.pl
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+#
+# kernel-wedge-arch.pl -- select only specifiers for the supplied arch.
+#
+use strict;
+
+require Dpkg::Control;
+require Dpkg::Deps;
+
+my $fh = \*STDIN;
+
+my @entries;
+
+my $wanted = $ARGV[0];
+
+my $entry;
+while (!eof($fh)) {
+	$entry = Dpkg::Control->new();
+	$entry->parse($fh, '???');
+
+	if ($entry->{'Architecture'} eq $wanted) {
+		print("\n" . $entry);
+	}
+}
+
+close($fh);
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/kernelconfig
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/kernelconfig
@@ -0,0 +1,207 @@
+#!/bin/bash
+
+. debian/debian.env
+
+# Script to merge all configs and run 'make syncconfig' on it to wade out bad juju.
+# Then split the configs into distro-commmon and flavour-specific parts
+
+# We have to be in the top level kernel source directory
+if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then
+	echo "This does not appear to be the kernel source directory." 1>&2
+	exit 1
+fi
+
+mode=${1:?"Usage: $0 (oldconfig|editconfig) [do_enforce_all]"}
+do_enforce_all=${2:-0}
+yes=0
+case "$mode" in
+    update*configs)  mode='syncconfig' ;;
+    default*configs) mode='oldconfig'; yes=1 ;;
+    edit*configs)    ;; # All is good
+    gen*configs)     mode='genconfigs' ;; # All is good
+    dump*configs)    mode='config'; yes=1 ;;
+    *) echo "$0 called with invalid mode" 1>&2
+       exit 1 ;;
+esac
+kerneldir="`pwd`"
+confdir="$kerneldir/${DEBIAN}/config"
+variant="$2"
+
+. $DEBIAN/etc/kernelconfig
+
+bindir="`pwd`/${DROOT}/scripts/misc"
+common_conf="$confdir/config.common.$family"
+tmpdir=`mktemp -d`
+mkdir "$tmpdir/CONFIGS"
+
+if [ "$mode" = "genconfigs" ]; then
+	keep=1
+	mode="oldconfig"
+	test -d CONFIGS || mkdir CONFIGS
+fi
+
+warning_partial=
+
+for arch in $archs; do
+	rm -rf build
+	mkdir build
+
+	# Map debian archs to kernel archs
+	case "$arch" in
+		ppc64|ppc64el)	kernarch="powerpc"	;;
+		amd64)		kernarch="x86_64"	;;
+		lpia)		kernarch="x86" 		;;
+		sparc)		kernarch="sparc64"	;;
+		armel|armhf)	kernarch="arm"		;;
+		s390x)		kernarch="s390"		;;
+		riscv64)	kernarch="riscv"	;;
+		*)		kernarch="$arch"	;;
+	esac
+
+	# Determine cross toolchain to use for Kconfig compiler tests
+	cross_compile=""
+	deb_build_arch=$(dpkg-architecture -qDEB_BUILD_ARCH -a$arch 2>/dev/null)
+	deb_host_arch=$(dpkg-architecture -qDEB_HOST_ARCH -a$arch 2>/dev/null)
+	[ $deb_build_arch != $deb_host_arch ] && cross_compile="$(dpkg-architecture -qDEB_HOST_GNU_TYPE -a$arch 2>/dev/null)-"
+
+	# Environment variables for 'make *config'. We omit CROSS_COMPILE
+	# for i386 since it is no longer supported after 19.04, however
+	# we maintain the configs for hwe.
+	modify_config=true
+	env="ARCH=$kernarch DEB_ARCH=$arch"
+	compiler_path=$(which "${cross_compile}gcc" || true)
+	if [ "$compiler_path" != '' ]; then
+		env="$env CROSS_COMPILE=$cross_compile"
+	else
+		echo "WARNING: ${cross_compile}gcc not installed"
+		modify_config=
+		warning_partial="$warning_partial $arch"
+	fi
+
+	archconfdir=$confdir/$arch
+	flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+
+	# Merge configs
+	# We merge config.common.ubuntu + config.common.<arch> +
+	# config.flavour.<flavour>
+
+	for config in $flavourconfigs; do
+		fullconf="$tmpdir/$arch-$config-full"
+		case $config in
+		*)
+			: >"$fullconf"
+			if [ -f $common_conf ]; then
+				cat $common_conf >> "$fullconf"
+			fi
+			if [ -f $archconfdir/config.common.$arch ]; then
+				cat $archconfdir/config.common.$arch >> "$fullconf"
+			fi
+			cat "$archconfdir/$config" >>"$fullconf"
+			if [ -f $confdir/OVERRIDES ]; then
+				cat $confdir/OVERRIDES >> "$fullconf"
+			fi
+			;;
+		esac
+	done
+
+	for config in $flavourconfigs; do
+		if [ -f $archconfdir/$config ]; then
+			fullconf="$tmpdir/$arch-$config-full"
+			cat "$fullconf" > build/.config
+			# Call oldconfig or menuconfig
+			if [ "$modify_config" ]; then
+				case "$mode" in
+				    editconfigs)
+					# Interactively edit config parameters
+					while : ; do
+						echo -n "Do you want to edit config: $arch/$config? [Y/n] "
+						read choice
+						case "$choice" in
+						y* | Y* | "" )
+							make O=`pwd`/build $env menuconfig
+							break ;;
+						n* | N* )
+							# 'syncconfig' prevents
+							# errors for '-' options set
+							# in common config fragments
+							make O=`pwd`/build $env syncconfig
+							break ;;
+						*)
+							echo "Entry not valid"
+						esac
+					done
+					;;
+				    *)
+					echo "* Run $mode (yes=$yes) on $arch/$config ..."
+					if [ "$yes" -eq 1 ]; then
+						yes "" | make O=`pwd`/build $env "$mode"
+					else
+						make O=`pwd`/build $env "$mode"
+					fi ;;
+				esac
+			fi
+			cat build/.config > $archconfdir/$config
+			[ "$modify_config" ] && cat build/.config >"$tmpdir/CONFIGS/$arch-$config"
+			if [ "$keep" = "1" ]; then
+				cat build/.config > CONFIGS/$arch-$config
+			fi
+		else
+			echo "!! Config not found $archconfdir/$config..."
+		fi
+	done
+
+	echo "Running splitconfig.pl for $arch"
+	echo
+
+	# Can we make this more robust by avoiding $tmpdir completely?
+	# This approach was used for now because I didn't want to change
+	# splitconfig.pl
+	(cd $archconfdir; $bindir/splitconfig.pl config.flavour.*; mv config.common \
+	 config.common.$arch; cp config.common.$arch $tmpdir)
+done
+
+rm -f $common_conf
+
+# Now run splitconfig.pl on all the config.common.<arch> copied to
+# $tmpdir
+(cd $tmpdir; $bindir/splitconfig.pl *)
+(
+	cd $confdir;
+	rm -f *-full
+	grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
+	for arch in $archs; do
+		grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
+			>$arch/config.common.$arch
+	done
+)
+
+echo ""
+echo "Running config-check for all configurations ..."
+echo ""
+fail=0
+for arch in $archs; do
+	archconfdir=$confdir/$arch
+	flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+	for config in $flavourconfigs; do
+		flavour="${config##*.}"
+		if [ -f $archconfdir/$config ]; then
+			fullconf="$tmpdir/CONFIGS/$arch-$config"
+			[ ! -f "$fullconf" ] && continue
+			"$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$confdir" "0" "$do_enforce_all" || let "fail=$fail+1"
+		fi
+	done
+done
+
+if [ "$fail" != 0 ]; then
+	echo ""
+	echo "*** ERROR: $fail config-check failures detected"
+	echo ""
+fi
+
+rm -rf build
+
+if [ "$warning_partial" ]; then
+	echo ""
+	echo "WARNING: configuration operation applied only to a subset of architectures (skipped$warning_partial)" 1>&2
+	echo ""
+fi
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/retag
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/retag
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+
+open(TAGS, "git tag -l |") or die "Could not get list of tags";
+@tags = <TAGS>;
+close(TAGS);
+
+open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log";
+my $commit = "";
+
+while (<LOGS>) {
+	my $origtag;
+
+	if (m|^commit (.*)$|) {
+		$commit = $1;
+		next;
+	}
+
+	m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next;
+
+	$tag = $1;
+
+	($origtag) = grep(/^$tag.orig$/, @tags);
+
+	if (!defined($origtag)) {
+		print "I: Adding original tag for $tag\n";
+		system("git tag -m $tag $tag.orig $tag");
+	}
+
+	print "I: Tagging $tag => $commit\n";
+
+	system("git tag -f -m $tag $tag $commit");
+}
+
+close(LOGS);
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/splitconfig.pl
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/splitconfig.pl
@@ -0,0 +1,107 @@
+#!/usr/bin/perl -w
+
+%allconfigs = ();
+%common = ();
+
+print "Reading config's ...\n";
+
+for $config (@ARGV) {
+	# Only config.*
+	next if $config !~ /^config\..*/;
+	# Nothing that is disabled, or remnant
+	next if $config =~ /.*\.(default|disabled|stub)$/;
+
+	%{$allconfigs{$config}} = ();
+
+	print "  processing $config ... ";
+
+	open(CONFIG, "< $config");
+
+	while (<CONFIG>) {
+		# Skip comments
+		/^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next;
+
+		${$allconfigs{$config}}{$1} = $2;
+
+		$common{$1} = $2;
+	}
+
+	close(CONFIG);
+
+	print "done.\n";
+}
+
+print "\n";
+
+print "Merging lists ... \n";
+
+# %options - pointer to flavour config inside the allconfigs array
+for $config (keys(%allconfigs)) {
+	my %options = %{$allconfigs{$config}};
+
+	print "   processing $config ... ";
+
+	for $key (keys(%common)) {
+		next if not defined $common{$key};
+
+		# If we don't have the common option, then it isn't
+		# common. If we do have that option, it must have the same
+		# value.  EXCEPT where this file does not have a value at all
+		# which may safely be merged with any other value; the value
+		# will be elided during recombination of the parts.
+		if (!defined($options{$key})) {
+			# Its ok really ... let it merge
+		} elsif (not defined($options{$key})) {
+			undef $common{$key};
+		} elsif ($common{$key} ne $options{$key}) {
+			undef $common{$key};
+		}
+	}
+
+	print "done.\n";
+}
+
+print "\n";
+
+print "Creating common config ... ";
+
+open(COMMON, "> config.common");
+print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n";
+
+for $key (sort(keys(%common))) {
+	if (not defined $common{$key}) {
+		print COMMON "# CONFIG_$key is UNMERGABLE\n";
+	} elsif ($common{$key} eq "is not set") {
+		print COMMON "# CONFIG_$key is not set\n";
+	} else {
+		print COMMON "CONFIG_$key=$common{$key}\n";
+	}
+}
+close(COMMON);
+
+print "done.\n\n";
+
+print "Creating stub configs ...\n";
+
+for $config (keys(%allconfigs)) {
+	my %options = %{$allconfigs{$config}};
+
+	print "  processing $config ... ";
+
+	open(STUB, "> $config");
+	print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n";
+
+	for $key (sort(keys(%options))) {
+		next if defined $common{$key};
+
+		if ($options{$key} =~ /^is /) {
+			print STUB "# CONFIG_$key $options{$key}\n";
+		} else {
+			print STUB "CONFIG_$key=$options{$key}\n";
+		}
+	}
+
+	close(STUB);
+
+	print "done.\n";
+}
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/tristate.sh
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/tristate.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+#
+# Find config variables that might be able to transition from =y to =m
+#
+# Example: debian/scripts/misc/tristate.sh debian.master/config/config.common.ubuntu
+#
+
+KC=Kconfig.tmp
+rm -f ${KC}
+find .|grep Kconfig | while read f
+do
+	cat $f >> ${KC}
+done
+
+grep =y $1 | sed -e 's/CONFIG_//' -e 's/=y//' | while read c
+do
+	cat <<EOF > tristate.awk
+BEGIN { tristate=0; }
+/^config ${c}\$/ { tristate=1; next; }
+/tristate/ { if (tristate == 1) printf("CONFIG_%s=m\n","${c}"); next; }
+{ if (tristate == 1) exit; }
+EOF
+
+	gawk -f tristate.awk ${KC}
+done
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/misc/update-aufs.sh
+++ linux-gkeop-5.4-5.4.0/debian/scripts/misc/update-aufs.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+AUFS=aufs4-standalone
+
+#
+# Before you run this be sure you've removed or reverted the 'UBUNTU: SAUCE: AUFS" patch.
+#
+#
+# Make sure the current working directory is at the top of the
+# linux tree.
+#
+if ! grep PATCHLEVEL Makefile
+then
+	echo "You must run this script from the top of the linux tree"
+	exit 1
+fi
+
+clean=0
+if [ "$#" = 1 ]; then
+	AUFS="$1"
+else
+	clean=1
+	rm -rf ${AUFS}
+	git clone https://github.com/sfjro/aufs5-standalone.git ${AUFS}
+	(cd ${AUFS}; git checkout -b aufs5.x-rcN remotes/origin/aufs5.x-rcN)
+fi
+
+cp ${AUFS}/include/uapi/linux/aufs_type.h include/uapi/linux
+rsync -av ${AUFS}/fs/ fs/
+rsync -av ${AUFS}/Documentation/ Documentation/
+
+PATCHES="${PATCHES} aufs5-kbuild.patch"
+PATCHES="${PATCHES} aufs5-base.patch"
+PATCHES="${PATCHES} aufs5-mmap.patch"
+PATCHES="${PATCHES} aufs5-standalone.patch"
+PATCHES="${PATCHES} aufs5-loopback.patch"
+#PATCHES="${PATCHES} vfs-ino.patch"
+PATCHES="${PATCHES} tmpfs-idr.patch"
+
+for i in ${PATCHES}
+do
+	patch -p1 < ${AUFS}/$i
+done
+
+[ "$clean" = 1 ] && rm -rf ${AUFS}
+git add mm/prfile.c
+git add -u
+find . -name "*.orig" | xargs rm
+find . |grep aufs | xargs git add
+git commit -s -m"UBUNTU: SAUCE: AUFS"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/module-check
+++ linux-gkeop-5.4-5.4.0/debian/scripts/module-check
@@ -0,0 +1,120 @@
+#!/usr/bin/perl -w
+
+$flavour = shift;
+$prev_abidir = shift;
+$abidir = shift;
+$skipmodule = shift;
+
+print "II: Checking modules for $flavour...";
+
+if (-f "$prev_abidir/ignore.modules"
+    or -f "$prev_abidir/$flavour.ignore.modules") {
+	print "explicitly ignoring modules\n";
+	exit(0);
+}
+
+if (not -f "$abidir/$flavour.modules" or not -f
+    "$prev_abidir/$flavour.modules") {
+	print "previous or current modules file missing!\n";
+	print "   $abidir/$flavour.modules\n";
+	print "   $prev_abidir/$flavour.modules\n";
+	if (defined($skipmodule)) {
+		exit(0);
+	} else {
+		exit(1);
+	}
+}
+
+print "\n";
+
+my %modules;
+my %modules_ignore;
+my $missing = 0;
+my $new = 0;
+my $errors = 0;
+
+# See if we have any ignores
+if (-f "$prev_abidir/../modules.ignore") {
+	my $ignore = 0;
+	open(IGNORE, "< $prev_abidir/../modules.ignore") or
+		die "Could not open $prev_abidir/../modules.ignore";
+	print "   reading modules to ignore...";
+	while (<IGNORE>) {
+		chomp;
+		next if /\s*#/;
+		$modules_ignore{$_} = 1;
+		$ignore++;
+	}
+	close(IGNORE);
+	print "read $ignore modules.\n";
+}
+
+# Read new modules first
+print "   reading new modules...";
+$new_count = 0;
+open(NEW, "< $abidir/$flavour.modules") or
+	die "Could not open $abidir/$flavour.modules";
+while (<NEW>) {
+	chomp;
+	$modules{$_} = 1;
+	$new_count++;
+}
+close(NEW);
+print "read $new_count modules.\n";
+
+# Now the old modules, checking for missing ones
+print "   reading old modules...";
+$old_count = 0;
+open(OLD, "< $prev_abidir/$flavour.modules") or
+	die "Could not open $prev_abidir/$flavour.modules";
+while (<OLD>) {
+	chomp;
+	if (not defined($modules{$_})) {
+		print "\n" if not $missing;
+		$missing++;
+		if (not defined($modules_ignore{$_})) {
+			print "      MISS: $_\n";
+			$errors++;
+		} else {
+			print "      MISS: $_ (ignored)\n";
+		}
+	} else {
+		$modules{$_}++;
+	}
+	$old_count++;
+}
+close(OLD);
+# Check for new modules
+foreach $mod (keys(%modules)) {
+	if ($modules{$mod} < 2) {
+		print "\n" if not $missing and not $new;
+		print "      NEW : $mod\n";
+		$new++;
+	}
+}
+if ($new or $missing) {
+	print "      read $old_count modules : new($new)  missing($missing)\n";
+} else {
+	print "read $old_count modules.\n";
+}
+
+
+# Let's see where we stand...
+if ($errors) {
+	if (defined($skipmodule)) {
+		print "WW: Explicitly asked to ignore failures (probably not good)\n";
+	} else {
+		print "EE: Missing modules (start begging for mercy)\n";
+		exit 1
+	}
+}
+
+if ($new) {
+	print "II: New modules (you've been busy, wipe the poop off your nose)\n";
+} else {
+	print "II: No new modules (hope you're happy, slacker)\n";
+}
+
+print "II: Done\n";
+
+exit(0);
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/module-inclusion
+++ linux-gkeop-5.4-5.4.0/debian/scripts/module-inclusion
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+#
+# Build a new directory of modules based on an inclusion list.
+# The includsion list format must be a bash regular expression.
+#
+# usage: $0 ROOT INCLUSION_LIST
+# example: $0 \
+#       debian/build/build-virtual-ALL debian/build/build-virtual \
+#	debian.master/control.d/virtual.inclusion-list \
+#	virtual.depmap
+master=0
+if [ "$1" = "--master" ]; then
+	master=1
+	shift
+fi
+
+ROOT=$1
+NROOT=$2
+ILIST=$3
+DEPMAP=$4
+
+tmp="/tmp/module-inclusion.$$"
+
+#
+# Prep a destination directory.
+#
+mkdir -p ${NROOT}
+
+{
+	# Copy over the framework into the master package.
+	if  [ "$master" -eq 1 ]; then
+		(cd ${ROOT}; find . ! -name "*.ko" -type f)
+	fi
+
+	# Copy over modules by name or pattern.
+	while read -r i
+	do
+		#
+		# 'find' blurts a warning if it cannot find any ko files.
+		#
+		case "$i" in
+		\!*)
+			(cd ${ROOT}; ${i#!} || true)
+			;;
+		*\**)
+			(cd ${ROOT}; eval find "${i}" -name "*.ko" || true)
+			;;
+		*)
+			echo "$i"
+			;;
+		esac
+	done <"${ILIST}"
+} >"$tmp"
+
+# Copy over the listed modules.
+while read i
+do
+	# If this is already moved over, all is good.
+	if [ -f "${NROOT}/$i" ]; then
+		:
+
+	# If present in the source, moved it over.
+	elif [ -f "${ROOT}/$i" ]; then
+		mkdir -p "${NROOT}/`dirname $i`"
+		mv "${ROOT}/$i" "${NROOT}/$i"
+
+	# Otherwise, it is missing.
+	else
+		echo "Warning: Could not find ${ROOT}/$i" 1>&2
+	fi
+done <"$tmp"
+
+# Copy over any dependancies, note if those are missing
+# we know they are in a pre-requisite package as they must
+# have existed at depmap generation time, and can only have
+# moved into a package.
+let n=0 || true
+while [ -s "$tmp" ]
+do
+	let n="$n+1" || true
+	[ "$n" = "20" ] && break || true
+
+	echo "NOTE: pass $n: dependency scan" 1>&2
+
+	while read i
+	do
+		grep "^$i " "$DEPMAP" | \
+		while read m d
+		do
+			if [ -f "${ROOT}/$d" ]; then
+				echo "NOTE: pass $n: ${i} pulls in ${d}" 1>&2
+				echo "$d"
+				mkdir -p "${NROOT}/`dirname $d`"
+				mv "${ROOT}/$d" "${NROOT}/$d"
+			fi
+		done
+	done <"$tmp" >"$tmp.new"
+	mv -f "$tmp.new" "$tmp"
+done
+
+rm -f "$tmp"
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/retpoline-check
+++ linux-gkeop-5.4-5.4.0/debian/scripts/retpoline-check
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+flavour="$1"
+prev_abidir="$2"
+curr_abidir="$3"
+skipretpoline="$4"
+
+echo "II: Checking retpoline indirections for $flavour...";
+
+if [ "$skipretpoline" = 'true' ]; then
+	echo "manual request ignoring retpoline delta"
+fi
+
+if [ -f "$prev_abidir/ignore.retpoline" -o \
+     -f "$prev_abidir/$flavour.ignore.retpoline" ]; then
+	echo "explicitly ignoring retpoline delta"
+	skipretpoline='true'
+fi
+
+prev="$prev_abidir/$flavour.retpoline"
+curr="$curr_abidir/$flavour.retpoline"
+if [ ! -f "$prev" ]; then
+	echo "previous retpoline file missing!"
+	echo "   $prev"
+	prev="/dev/null"
+fi
+if [ ! -f "$curr" ]; then
+	echo "current retpoline file missing!"
+	echo "   $curr"
+	curr="/dev/null"
+fi
+
+echo "II: retpoline delta in this package..."
+rc=0
+diff -u "$prev" "$curr" || true
+count=$( diff -u "$prev" "$curr" | grep '^+[^+]' | wc -l )
+if [ "$count" != 0 ]; then
+	rc=1
+	echo "WW: $count new retpoline sequences detected"
+fi
+
+echo "II: Done";
+if [ "$skipretpoline" = 'true' -a "$rc" -ne 0 ]; then
+	echo "II: ignoring errors"
+	exit 0
+fi
+exit "$rc"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/retpoline-extract
+++ linux-gkeop-5.4-5.4.0/debian/scripts/retpoline-extract
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+cd "$1" || exit 1
+
+# Find all valid retpoline information, collate the detected and
+# safe information together.  Join the result to find the detected
+# but non-safe elements.  These are our concern.
+ur_detected=$(mktemp --tmpdir "retpoline-check-XXXXXX.ur-detected")
+ur_safe=$(mktemp --tmpdir "retpoline-check-XXXXXX.ur-safe")
+
+find "." -path './drivers/firmware/efi/libstub' -prune -o \
+	 -path './arch/x86/boot' -prune -o \
+	 -path './arch/x86/purgatory' -prune -o \
+	 -name \*.ur-detected -print0 | xargs -0 cat | \
+	sed -e "s@^$1@@" -e "s@ $2/@ @" -e "s@^/@@" | \
+	sort -k 1b,1 >"$ur_detected"
+find "." -name \*.ur-safe -print0 | xargs -0 cat | \
+	sed -e "s@^$1@@" -e "s@^/@@" | \
+	sort -k 1b,1 >"$ur_safe"
+
+join -v 1 -j 1 "$ur_detected" "$ur_safe" | sed -s 's/[^ ]*  *//'
+
+rm -f "$ur_detected" "$ur_safe"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/retpoline-extract-one
+++ linux-gkeop-5.4-5.4.0/debian/scripts/retpoline-extract-one
@@ -0,0 +1,270 @@
+#!/bin/bash
+
+exec </dev/null
+
+object="$1"
+src="$2"
+bit16="$3"
+
+SECTION=".discard.retpoline_safe"
+
+# Form an associative lookup for the symbol numbers in the ELF symbol table.
+# Uses 8 character 0 expanded hexadecimal key for ease of consumption.
+__symbolmap_init()
+{
+	readelf -W --syms "$1" |
+		awk '($4 == "SECTION" && $1 ~ /^[0-9]*:/) { printf("%08x %08x\n", int($1), int($7)); }' | \
+	while read symbol_num section_num
+	do
+		echo "symbolmap_$symbol_num='$section_num'"
+	done
+}
+symbolmap_init()
+{
+	eval $(__symbolmap_init "$1")
+}
+symbolmap()
+{
+	eval RET="\$symbolmap_$1"
+	if [ "$RET" = '' ]; then
+		echo "symbolmap: $1: invalid section" 1>&2
+		exit 1
+	fi
+}
+
+# Form an associative lookup for the section numbers in the ELF symbol table.
+# Uses 8 character 0 expanded hexadecimal key for ease of consumption.
+__sectionmap_init()
+{
+	readelf -W --headers "$1" | \
+		awk '
+						{ sub("\\[", ""); sub("\\]", ""); }
+                        ($1 ~ /^[0-9][0-9]*/)   { printf("%08x %s %s %s\n", int($1), $2, $3, $4); }
+		' | \
+	{
+		while read section_num section_name section_type section_vma
+		do
+			echo "sectionmap_$section_num='$section_name'"
+			echo "sectionvma_$section_num='$section_vma'"
+			case "$section_type" in
+			REL|RELA) section_relocation="$section_type" ;;
+			esac
+		done
+		echo "section_relocation='$section_relocation'"
+	}
+}
+sectionmap_init()
+{
+	eval $(__sectionmap_init "$1")
+}
+sectionmap()
+{
+	eval RET="\$sectionmap_$1"
+	if [ "$RET" = '' ]; then
+		echo "sectionmap: $1: invalid section" 1>&2
+		exit 1
+	fi
+}
+sectionvma()
+{
+	eval RET="\$sectionvma_$1"
+	if [ "$RET" = '' ]; then
+		echo "sectionvma: $1: invalid section" 1>&2
+		exit 1
+	fi
+}
+
+# Read and parse the hex-dump output.
+hex="[0-9a-f]"
+hex_8="$hex$hex$hex$hex$hex$hex$hex$hex"
+hexspc="[0-9a-f ]"
+hexspc_8="$hexspc$hexspc$hexspc$hexspc$hexspc$hexspc$hexspc$hexspc"
+
+raw32()
+{
+	readelf --hex-dump "$2" "$1" 2>/dev/null |
+	sed \
+		-e '/^Hex/d' -e '/^$/d' -e '/^ *NOTE/d' \
+		-e 's/  *[^ ][^ ]*  *\('"$hex_8"'\) \('"$hexspc_8"'\) \('"$hexspc_8"'\) \('"$hexspc_8"'\) .*/\1 \2 \3 \4 /' \
+		-e 's/\('"$hex$hex"'\)\('"$hex$hex"'\)\('"$hex$hex"'\)\('"$hex$hex"'\) /\4\3\2\1 /g' \
+		-e 's/ $//g' -e 's/ /\n/g'
+}
+#-e 's/\([^ ][^ ][^ ][^ ][^ ][^ ][^ ][^ ]\) \([^ ][^ ][^ ][^ ][^ ][^ ][^ ][^ ]\) /\2\1 /g' \
+
+rela()
+{
+	#file="$(basename "$1")"
+	file="$1"
+
+	# Read relocation information for a 64bit binary.  Each relocation entry
+	# is 3 long longs so we collect 6 quads here.  Note that the dump is in
+	# listed in increasing byte order not withstanding the quad split.
+	#
+	# The record says to take the value of <symbol> add <symbol offset> and
+	# shove that into <write offset> in the segment of the <symbol>.
+	#
+	# Format:
+	#  <write offset>	64 bits
+	#  <symbol number>	32 bits
+	#  <relocation type>	32 bits
+	#  <symbol offset>	64 bits
+	raw32 "$1" ".rela$SECTION" | \
+	{
+		a1=''; a2=''; a3=''; a4=''; a5=''
+		while read a6
+		do
+			[ "$a1" = '' ] && { a1="$a6"; continue; }
+			[ "$a2" = '' ] && { a2="$a6"; continue; }
+			[ "$a3" = '' ] && { a3="$a6"; continue; }
+			[ "$a4" = '' ] && { a4="$a6"; continue; }
+			[ "$a5" = '' ] && { a5="$a6"; continue; }
+
+			#echo ">$a1< >$a2< >$a3< >$a4< >$a5< >$a6<" 1>&2
+			#echo "type<$a3> symbol<$a4> offset<$a2$a1> addr<$a6a5>" 1>&2
+
+			symbolmap "$a4"; section_num="$RET"
+			#echo "section_num<$section_num>" 1>&2
+
+			sectionmap "$section_num"; section="$RET"
+			sectionvma "$section_num"; vma="$RET"
+			#echo "section<$section> vma<$vma>" 1>&2
+
+			# Adjust the segment addressing by the segment offset.
+			printf -v addr "%u" "0x$a6$a5"
+			printf -v vma "%u" "0x$vma"
+			let offset="$addr + $vma"
+			printf -v offset "%x" "$offset"
+
+			echo "$file-$section-$offset"
+
+			a1=''; a2=''; a3=''; a4=''; a5=''
+		done
+	} | sed -e 's/-00*\([0-9a-f]\)/-\1/'
+}
+
+# Form an associative lookup for the raw contents for an ELF section.
+# Uses 8 character 0 expanded hexadecimal key for ease of consumption.
+contentmap_init()
+{
+	raw32 "$1" "$2" >"$tmp"
+	let offset=0
+	while read value
+	do
+		printf -v offset_hex "%08x" $offset
+		eval contentmap_$offset_hex=\'$value\'
+
+		let offset="$offset + 4"
+	done <"$tmp"
+	rm -f "$tmp"
+}
+contentmap()
+{
+	eval RET="\$contentmap_$1"
+	if [ "$RET" = '' ]; then
+		echo "contentmap: $1: invalid offset" 1>&2
+		exit 1
+	fi
+}
+
+rel()
+{
+	# Load up the current contents of the $SECTION segment
+	# as the offsets (see below) are recorded there and we will need
+	# those to calculate the actuall address.
+	contentmap_init "$1" "$SECTION"
+
+	#file="$(basename "$1")"
+	file="$1"
+
+	# Read relocation information for a 32bit binary.  Each relocation entry
+	# is 3 longs so we collect 3 quads here.  Note that the dump is in
+	# listed in increasing byte order not withstanding the quad split.
+	#
+	# The record says to take the value of <symbol> and add that to the
+	# existing contents of <write offset> in the segment of the <symbol>.
+	#
+	# Format:
+	#  <write offset>	32 bits
+	#  <symbol number>	24 bits
+	#  <relocation type>	 8 bits
+	raw32 "$1" ".rel$SECTION" | \
+	{
+		a1=''
+		while read a2
+		do
+			[ "$a1" = '' ] && { a1="$a2"; continue; }
+
+			#echo ">$a1< >$a2<"
+			contentmap "$a1"; offset="$RET"
+			symbolmap "00${a2%??}"; section_num="$RET"
+
+			sectionmap "$section_num"; section="$RET"
+			sectionvma "$section_num"; vma="$RET"
+			#echo ">$a1< >$a2< >$offset< >$section<"
+
+			echo "$file-$section-$offset"
+
+			a1=''
+		done
+	} | sed -e 's/-00*\([0-9a-f]\)/-\1/'
+}
+
+tmp=$(mktemp --tmpdir "retpoline-extract-XXXXXX")
+
+disassemble()
+{
+	local object="$1"
+	local src="$2"
+	local options="$3"
+	local selector="$4"
+
+	objdump $options --disassemble --no-show-raw-insn "$object" | \
+	awk -F' ' '
+		BEGIN				{ file="'"$object"'"; src="'"$src"'"; }
+		/Disassembly of section/        { segment=$4; sub(":", "", segment); }
+		/^[0-9a-f][0-9a-f]* <.*>:/      { tag=$0; sub(".*<", "", tag); sub(">.*", "", tag); }
+		$0 ~ /(call|jmp)q?  *\*0x[0-9a-f]*\(%rip\)/ {
+			next
+		}
+		$0 ~ /(call|jmp)q?  *\*.*%/ {
+			sub(":", "", $1);
+			if ('"$selector"') {
+				offset=$1
+				$1=tag
+				print(file "-" segment "-" offset " " src " " segment " " $0);
+			}
+		}
+	'
+}
+
+# Accumulate potentially vunerable indirect call/jmp sequences.  We do this
+# by examining the raw disassembly for affected forms, recording the location
+# of each.
+case "$bit16" in
+'')	disassemble "$object" "$src" '' 'segment != ".init.text"' ;;
+*)	disassemble "$object" "$src" '--disassembler-options=i8086' 'segment != ".init.text" && segment != ".text32" && segment != ".text64"'
+	disassemble "$object" "$src" '--disassembler-options=i386' 'segment == ".text32"'
+	disassemble "$object" "$src" '--disassembler-options=x86-64' 'segment == ".text64"'
+	;;
+esac | sort -k 1b,1 >"$object.ur-detected"
+[ ! -s "$object.ur-detected" ] && rm -f "$object.ur-detected"
+
+# Load up the symbol table and section mappings.
+symbolmap_init "$object"
+sectionmap_init "$object"
+
+# Accumulate annotated safe indirect call/jmp sequences.  We do this by examining
+# the $SECTION sections (and their associated relocation information),
+# each entry represents the address of an instruction which has been marked
+# as ok.
+case "$section_relocation" in
+REL)	rel "$object" ;;
+RELA)	rela "$object" ;;
+esac | sort -k 1b,1 >"$object.ur-safe"
+[ ! -s "$object.ur-safe" ] && rm -f "$object.ur-safe"
+
+# We will perform the below join on the summarised and sorted fragments
+# formed above.  This is performed in retpoline-check.
+#join -v 1 -j 1 "$tmp.extracted" "$tmp.safe" | sed -s 's/[^ ]*  *//'
+
+rm -f "$tmp"
--- linux-gkeop-5.4-5.4.0.orig/debian/scripts/sub-flavour
+++ linux-gkeop-5.4-5.4.0/debian/scripts/sub-flavour
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+. debian/debian.env
+
+echo "SUB_PROCESS $FROM => $TO"
+
+export from_pkg="linux-image-$ABI_RELEASE-$FROM"
+export to_pkg="linux-image-$ABI_RELEASE-$TO"
+
+from_moddir="debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM"
+to_moddir="debian/$to_pkg/lib/modules/$ABI_RELEASE-$FROM"
+
+install -d "debian/$to_pkg/boot"
+install -m644 debian/$from_pkg/boot/config-$ABI_RELEASE-$FROM \
+	debian/$to_pkg/boot/
+install -m600 debian/$from_pkg/boot/{vmlinuz,System.map}-$ABI_RELEASE-$FROM \
+	debian/$to_pkg/boot/
+
+#
+# Print some warnings if there are files in the sub-flavours list
+# that do not actually exist.
+#
+cat ${DEBIAN}/sub-flavours/$TO.list | while read line
+do
+(
+	cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
+	#
+	# If its a wildcard, then check that there are files that match.
+	#
+	if echo "$line" | grep '\*' > /dev/null
+	then
+		if [ `eval find "$line" -name '*.ko' 2>/dev/null|wc -l` -lt 1 ]
+		then
+			echo SUB_INST Warning - No files in $line
+		fi
+	#
+	# Else it should be a single file reference.
+	#
+	elif [ ! -f "$line" ]
+	then
+		echo SUB_INST Warning - could not find "$line"
+	fi
+)
+done
+
+cat ${DEBIAN}/sub-flavours/$TO.list | while read line; do
+	(
+	cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
+	if echo "$line" | grep '\*' > /dev/null
+	then
+		eval find "$line" -name '*.ko' 2>/dev/null || true
+	elif [ -f "$line" ]
+	then
+		echo "$line"
+	fi
+	);
+done | while read mod; do
+	echo "SUB_INST checking: $mod"
+	fromdir="/lib/modules/$ABI_RELEASE-$FROM/"
+	egrep "^($fromdir)?kernel/$mod:" \
+		$from_moddir/modules.dep | sed -e "s|^$fromdir||" -e 's/://' -e 's/ /\n/g' | \
+	while read m; do
+		m="${fromdir}$m"
+		test -f debian/$to_pkg/$m && continue
+		echo "SUB_INST installing: $m"
+		install -D -m644 debian/$from_pkg/$m \
+			debian/$to_pkg/$m
+	done
+done
--- linux-gkeop-5.4-5.4.0.orig/debian/snapcraft.mk
+++ linux-gkeop-5.4-5.4.0/debian/snapcraft.mk
@@ -0,0 +1,11 @@
+ifeq ($(ARCH),)
+  arch := $(shell uname -m | sed -e s/i.86/i386/ -e s/x86_64/amd64/ \
+            -e s/arm.*/armhf/ -e s/s390/s390x/ -e s/ppc.*/powerpc/ \
+            -e s/aarch64.*/arm64/ )
+else ifeq ($(ARCH),arm)
+  arch := armhf
+else
+  arch := $(ARCH)
+endif
+config:
+	cat debian.$(branch)/config/config.common.ubuntu debian.$(branch)/config/$(arch)/config.common.$(arch) debian.$(branch)/config/$(arch)/config.flavour.$(flavour) >.config
--- linux-gkeop-5.4-5.4.0.orig/debian/source/format
+++ linux-gkeop-5.4-5.4.0/debian/source/format
@@ -0,0 +1 @@
+1.0
--- linux-gkeop-5.4-5.4.0.orig/debian/source/options
+++ linux-gkeop-5.4-5.4.0/debian/source/options
@@ -0,0 +1,8 @@
+# Ignore vbox symlinks, we will regenerate these at clean (LP:1426113)
+## autoreconstruct -- begin
+# Ignore any symlinks created since the orig which are rebuilt by reconstruct.
+## autoreconstruct -- end
+
+# force "dpkg-source -I -i" behavior
+diff-ignore
+tar-ignore
--- linux-gkeop-5.4-5.4.0.orig/debian/stamps/keep-dir
+++ linux-gkeop-5.4-5.4.0/debian/stamps/keep-dir
@@ -0,0 +1 @@
+Place holder
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/extra.postinst.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/extra.postinst.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" != configure ]; then
+    exit 0
+fi
+
+depmod -a -F /boot/System.map-$version $version || true
+if [ -d /etc/kernel/postinst.d ]; then
+    cat - >/usr/lib/linux/triggers/$version <<EOF
+DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	    --arg="$image_path" /etc/kernel/postinst.d
+EOF
+    dpkg-trigger --no-await linux-update-$version
+fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/extra.postrm.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/extra.postrm.in
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" != remove ]; then
+    exit 0
+fi
+
+depmod -a -F /boot/System.map-$version $version 2>/dev/null || true
+#
+# We should be rebuilding the initramfs here on removal to pare down the
+# initramfs if it contains any of the objects we just removed.  But people
+# commonly remove kernels in order to free space in /boot, and rebuilding the
+# initramfs now risks ENOSPC when we are trying to make space.  The files we
+# leave lying about could be confusing, but we trade that against safety on
+# removal.
+#
+#if [ -d /etc/kernel/postinst.d ]; then
+#    # We want to behave as if linux-image (without us) was installed, therefore
+#    # we do not want the postinst support to know we are being removed, claim
+#    # this is an installation event.
+#    cat - >/usr/lib/linux/triggers/$version <<EOF
+#DEB_MAINT_PARAMS="configure" run-parts --report --exit-on-error --arg=$version \
+#	--arg="$image_path" /etc/kernel/postinst.d
+#EOF
+#    dpkg-trigger --no-await linux-update-$version
+#fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/headers.postinst.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/headers.postinst.in
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+
+if [ "$1" != configure ]; then
+    exit 0
+fi
+
+if [ -d /etc/kernel/header_postinst.d ]; then
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+		/etc/kernel/header_postinst.d
+fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/image.postinst.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/image.postinst.in
@@ -0,0 +1,62 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+#
+# When we install linux-image we have to run kernel postinst.d support to
+# generate the initramfs, create links etc.  Should it have an associated
+# linux-image-extra package and we install that we also need to run kernel
+# postinst.d, to regenerate the initramfs.  If we are installing both at the
+# same time, we necessarily trigger kernel postinst.d twice. As this includes
+# rebuilding the initramfs and reconfiguring the boot loader this is very time
+# consuming.
+#
+# Similarly for removal when we remove the linux-image-extra package we need to
+# run kernel postinst.d handling in order to pare down the initramfs to
+# linux-image contents only.  When we remove the linux-image need to remove the
+# now redundant initramfs.  If we are removing both at the same time, then
+# we will rebuilt the initramfs and then immediatly remove it.
+#
+# Switches to using a trigger against the linux-image package for all
+# postinst.d and postrm.d handling.  On installation postinst.d gets triggered
+# twice once by linux-image and once by linux-image-extra.  As triggers are
+# non-cumulative we will only run this processing once.  When removing both
+# packages we will trigger postinst.d from linux-image-extra and then in
+# linux-image postrm.d we effectivly ignore the pending trigger and simply run
+# the postrm.d.  This prevents us from rebuilding the initramfs.
+#
+if [ "$1" = triggered ]; then
+    trigger=/usr/lib/linux/triggers/$version
+    if [ -f "$trigger" ]; then
+	sh "$trigger"
+	rm -f "$trigger"
+    fi
+    exit 0
+fi
+
+if [ "$1" != configure ]; then
+    exit 0
+fi
+
+depmod $version
+
+if [ -f /lib/modules/$version/.fresh-install ]; then
+    change=install
+else
+    change=upgrade
+fi
+linux-update-symlinks $change $version $image_path
+rm -f /lib/modules/$version/.fresh-install
+
+if [ -d /etc/kernel/postinst.d ]; then
+    mkdir -p /usr/lib/linux/triggers
+    cat - >/usr/lib/linux/triggers/$version <<EOF
+DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+      --arg=$image_path /etc/kernel/postinst.d
+EOF
+    dpkg-trigger --no-await linux-update-$version
+fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/image.postrm.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/image.postrm.in
@@ -0,0 +1,40 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+rm -f /lib/modules/$version/.fresh-install
+
+if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then
+    linux-update-symlinks remove $version $image_path
+fi
+
+if [ -d /etc/kernel/postrm.d ]; then
+    # We cannot trigger ourselves as at the end of this we will no longer
+    # exist and can no longer respond to the trigger.  The trigger would
+    # then become lost.  Therefore we clear any pending trigger and apply
+    # postrm directly.
+    if [ -f /usr/lib/linux/triggers/$version ]; then
+	echo "$0 ... removing pending trigger"
+	rm -f /usr/lib/linux/triggers/$version
+    fi
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	      --arg=$image_path /etc/kernel/postrm.d
+fi
+
+if [ "$1" = purge ]; then
+    for extra_file in modules.dep modules.isapnpmap modules.pcimap \
+                      modules.usbmap modules.parportmap \
+                      modules.generic_string modules.ieee1394map \
+                      modules.ieee1394map modules.pnpbiosmap \
+                      modules.alias modules.ccwmap modules.inputmap \
+                      modules.symbols modules.ofmap \
+                      modules.seriomap modules.\*.bin \
+		      modules.softdep modules.devname; do
+	eval rm -f /lib/modules/$version/$extra_file
+    done
+    rmdir /lib/modules/$version || true
+fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/image.preinst.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/image.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" = abort-upgrade ]; then
+    exit 0
+fi
+
+if [ "$1" = install ]; then
+    # Create a flag file for postinst
+    mkdir -p /lib/modules/$version
+    touch /lib/modules/$version/.fresh-install
+fi
+
+if [ -d /etc/kernel/preinst.d ]; then
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	      --arg=$image_path /etc/kernel/preinst.d
+fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/templates/image.prerm.in
+++ linux-gkeop-5.4-5.4.0/debian/templates/image.prerm.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" != remove ]; then
+    exit 0
+fi
+
+linux-check-removal $version
+
+if [ -d /etc/kernel/prerm.d ]; then
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	      --arg=$image_path /etc/kernel/prerm.d
+fi
+
+exit 0
--- linux-gkeop-5.4-5.4.0.orig/debian/tests-build/README
+++ linux-gkeop-5.4-5.4.0/debian/tests-build/README
@@ -0,0 +1,21 @@
+Scripts placed in this directory get called one at a time by run-parts(8).
+The scripts are expected to perform some sort of sanity checks on the
+finished build. Scripts will be called once for each flavour.
+
+Some environment variables are exported to make life a little easier:
+
+DPKG_ARCH     : The dpkg architecture (e.g. "amd64")
+KERN_ARCH     : The kernel architecture (e.g. "x86_64")
+FLAVOUR       : The specific flavour for this run (e.g. "generic")
+VERSION       : The full version of this build (e.g. 2.6.22-1)
+REVISION      : The exact revision of this build (e.g. 1.3)
+PREV_REVISION : The revision prior to this one
+ABI_NUM       : The specific ABI number for this build (e.g. 2)
+PREV_ABI_NUM  : The previous ABI number. Can be the same as ABI_NUM.
+BUILD_DIR     : The directory where this build took place
+INSTALL_DIR   : The directory where the package is prepared
+SOURCE_DIR    : Where the main kernel source is
+
+Scripts are expected to have a zero exit status when no problems occur,
+and non-zero when an error occurs that should stop the build. Scripts
+should print whatever info they deem needed to deduce the problem.
--- linux-gkeop-5.4-5.4.0.orig/debian/tests-build/check-aliases
+++ linux-gkeop-5.4-5.4.0/debian/tests-build/check-aliases
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+my %map;
+
+print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n";
+
+$aliases =
+  "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias";
+
+open(ALIASES, "< $aliases") or die "Could not open $aliases";
+
+while (<ALIASES>) {
+	chomp;
+	my ($junk, $alias, $module) = split;
+
+	if (defined($map{$alias})) {
+		printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
+			? "INT" : "   ", $map{$alias}, $module, $alias);
+	} else {
+		$map{$alias} = $module;
+	}
+}
+
+exit(0);
--- linux-gkeop-5.4-5.4.0.orig/debian/tests/control
+++ linux-gkeop-5.4-5.4.0/debian/tests/control
@@ -0,0 +1,7 @@
+Tests: rebuild
+Depends: @builddeps@, fakeroot
+Restrictions: allow-stderr, skippable
+
+Tests: ubuntu-regression-suite
+Depends: build-essential, gcc-multilib [amd64 armhf i386], gdb, git, python2 | python, bzr
+Restrictions: allow-stderr, isolation-machine, breaks-testbed, skippable
--- linux-gkeop-5.4-5.4.0.orig/debian/tests/rebuild
+++ linux-gkeop-5.4-5.4.0/debian/tests/rebuild
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# If we are triggering for just linux or linux-meta we know we have
+# just built the kernel and there is no point in repeating that
+# build, it just wastes time.  (LP: #1498862)
+build_needed=0
+for trigger in ${ADT_TEST_TRIGGERS:-force}
+do
+	case "$trigger" in
+	linux/*|linux-lts-*/*|linux-meta*/*|linux-oem*/*|fakeroot/*|gdb/*|git/*|bzr/*|gcc-multilib/*)	;;
+	*)						build_needed=1 ;;
+	esac
+done
+if [ "$build_needed" -eq 0 ]; then
+	echo "rebuild: short circuiting build for '${ADT_TEST_TRIGGERS}'"
+	exit 77
+fi
+
+set -e
+dpkg-buildpackage -rfakeroot -us -uc -b -Pautopkgtest
--- linux-gkeop-5.4-5.4.0.orig/debian/tests/ubuntu-regression-suite
+++ linux-gkeop-5.4-5.4.0/debian/tests/ubuntu-regression-suite
@@ -0,0 +1,45 @@
+#!/bin/sh
+set -e
+
+# Only run regression-suite on kernels we can boot in canonistack
+source=`dpkg-parsechangelog -SSource`
+case $source in
+    linux|linux-hwe*|linux-kvm|linux-oem)
+	;;
+    *)
+	echo "ubuntu-regression-suite is pointless, if one cannot boot the kernel"
+	exit 77
+	;;
+esac
+
+# Only run regression-suite if we were requested to
+have_meta=0
+for trigger in ${ADT_TEST_TRIGGERS}
+do
+    case "$trigger" in
+	linux-meta/*|linux-meta-*/*)
+	    have_meta=1
+	    ;;
+    esac
+done
+if [ -n "$ADT_TEST_TRIGGERS" ] && [ "$have_meta" -eq 0 ]; then
+    echo "ubuntu-regression-suite is not requested, as there is no linux-meta trigger"
+    exit 77
+fi
+
+sver=`dpkg-parsechangelog -SVersion`
+read x rver x </proc/version_signature
+
+flavour=${rver#*-*-}
+rver=${rver%-$flavour}
+
+echo "Source Package Version: $sver"
+echo "Running Kernel Version: $rver"
+
+if [ "$sver" != "$rver" ]; then
+    echo "ERROR: running version does not match source package" 1>&2
+    exit 1
+fi
+
+git clone git://kernel.ubuntu.com/ubuntu/kernel-testing
+kernel-testing/run-dep8-tests
--- linux-gkeop-5.4-5.4.0.orig/debian/tools/generic
+++ linux-gkeop-5.4-5.4.0/debian/tools/generic
@@ -0,0 +1,60 @@
+#!/bin/bash
+full_version=`uname -r`
+
+# First check for a fully qualified version.
+this="/usr/lib/linux-tools/$full_version/`basename $0`"
+if [ -f "$this" ]; then
+	exec "$this" "$@"
+fi
+
+# Removing flavour from version i.e. generic or server.
+flavour_abi=${full_version#*-}
+flavour=${flavour_abi#*-}
+version=${full_version%-$flavour}
+this="$0_$version"
+if [ -f "$this" ]; then
+	exec "$this" "$@"
+fi
+
+# Before saucy kernels we had no flavour linkage.
+if dpkg --compare-versions "$version" lt "3.11.0"; then
+	flavour=''
+else
+	flavour="-$flavour"
+fi
+# Hint at the cloud tools if they exist (trusty and later)
+if dpkg --compare-versions "$version" ge "3.13.0"; then
+	cld=""
+else
+	cld=":"
+fi
+# Work out if this is an LTS backport or not.
+codename=`lsb_release -cs`
+case "$codename" in
+precise)	base='3.2.0-9999' ;;
+trusty)		base='3.13.0-9999' ;;
+*)		base='' ;;
+esac
+std=""
+lts=":"
+if [ "$base" != "" ]; then
+	if dpkg --compare-versions "$version" gt "$base"; then
+		std=":"
+		lts=""
+	fi
+fi
+
+# Give them a hint as to what to install.
+		echo "WARNING: `basename $0` not found for kernel $version" >&2
+		echo "" >&2
+		echo "  You may need to install the following packages for this specific kernel:" >&2
+		echo "    linux-tools-$version$flavour" >&2
+$cld		echo "    linux-cloud-tools-$version$flavour" >&2
+		echo "" >&2
+		echo "  You may also want to install one of the following packages to keep up to date:" >&2
+$std		echo "    linux-tools$flavour" >&2
+$std $cld	echo "    linux-cloud-tools$flavour" >&2
+$lts		echo "    linux-tools$flavour-lts-<series>" >&2
+$lts $cld	echo "    linux-cloud-tools$flavour-lts-<series>" >&2
+
+exit 2
--- linux-gkeop-5.4-5.4.0.orig/debian/vbox-modules.ignore
+++ linux-gkeop-5.4-5.4.0/debian/vbox-modules.ignore
@@ -0,0 +1,2 @@
+vboxguest
+vboxsf
--- linux-gkeop-5.4-5.4.0.orig/debian/wireguard-modules.ignore
+++ linux-gkeop-5.4-5.4.0/debian/wireguard-modules.ignore
@@ -0,0 +1 @@
+wireguard
--- linux-gkeop-5.4-5.4.0.orig/debian/zfs-modules.ignore
+++ linux-gkeop-5.4-5.4.0/debian/zfs-modules.ignore
@@ -0,0 +1,10 @@
+icp
+spl
+splat
+zavl
+zcommon
+zfs
+zlua
+znvpair
+zpios
+zunicode
--- linux-gkeop-5.4-5.4.0.orig/drivers/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/Makefile
@@ -58,14 +58,9 @@
 # iommu/ comes before gpu as gpu are using iommu controllers
 obj-y				+= iommu/
 
-# gpu/ comes after char for AGP vs DRM startup and after iommu
-obj-y				+= gpu/
 
 obj-$(CONFIG_CONNECTOR)		+= connector/
 
-# i810fb and intelfb depend on char/agp/
-obj-$(CONFIG_FB_I810)           += video/fbdev/i810/
-obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/
 
 obj-$(CONFIG_PARPORT)		+= parport/
 obj-$(CONFIG_NVM)		+= lightnvm/
@@ -79,6 +74,12 @@
 obj-y				+= scsi/
 obj-y				+= nvme/
 obj-$(CONFIG_ATA)		+= ata/
+
+# gpu/ comes after char for AGP vs DRM startup and after iommu
+obj-y				+= gpu/
+# i810fb and intelfb depend on char/agp/
+obj-$(CONFIG_FB_I810)           += video/fbdev/i810/
+obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/
 obj-$(CONFIG_TARGET_CORE)	+= target/
 obj-$(CONFIG_MTD)		+= mtd/
 obj-$(CONFIG_SPI)		+= spi/
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/Makefile
@@ -48,7 +48,7 @@
 acpi-$(CONFIG_ARM_AMBA)	+= acpi_amba.o
 acpi-y				+= power.o
 acpi-y				+= event.o
-acpi-$(CONFIG_ACPI_REDUCED_HARDWARE_ONLY) += evged.o
+acpi-y				+= evged.o
 acpi-y				+= sysfs.o
 acpi-y				+= property.o
 acpi-$(CONFIG_X86)		+= acpi_cmos_rtc.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_configfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_configfs.c
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/configfs.h>
 #include <linux/acpi.h>
+#include <linux/security.h>
 
 #include "acpica/accommon.h"
 #include "acpica/actables.h"
@@ -28,7 +29,10 @@
 {
 	const struct acpi_table_header *header = data;
 	struct acpi_table *table;
-	int ret;
+	int ret = security_locked_down(LOCKDOWN_ACPI_TABLES);
+
+	if (ret)
+		return ret;
 
 	table = container_of(cfg, struct acpi_table, cfg);
 
@@ -263,7 +267,12 @@
 
 	acpi_table_group = configfs_register_default_group(root, "table",
 							   &acpi_tables_type);
-	return PTR_ERR_OR_ZERO(acpi_table_group);
+	if (IS_ERR(acpi_table_group)) {
+		configfs_unregister_subsystem(&acpi_configfs);
+		return PTR_ERR(acpi_table_group);
+	}
+
+	return 0;
 }
 module_init(acpi_configfs_init);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_dbg.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_dbg.c
@@ -749,6 +749,9 @@
 {
 	int ret;
 
+	if (acpi_disabled)
+		return -ENODEV;
+
 	/* Initialize AML IO interface */
 	mutex_init(&acpi_aml_io.lock);
 	init_waitqueue_head(&acpi_aml_io.wait);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_extlog.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_extlog.c
@@ -223,9 +223,9 @@
 	u64 cap;
 	int rc;
 
-	rdmsrl(MSR_IA32_MCG_CAP, cap);
-
-	if (!(cap & MCG_ELOG_P) || !extlog_get_l1addr())
+	if (rdmsrl_safe(MSR_IA32_MCG_CAP, &cap) ||
+	    !(cap & MCG_ELOG_P) ||
+	    !extlog_get_l1addr())
 		return -ENODEV;
 
 	if (edac_get_report_status() == EDAC_REPORTING_FORCE) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_lpss.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_lpss.c
@@ -10,6 +10,7 @@
 #include <linux/acpi.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
+#include <linux/dmi.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/mutex.h>
@@ -463,6 +464,18 @@
 	const char *consumer_hid;
 	const char *consumer_uid;
 	u32 flags;
+	const struct dmi_system_id *dep_missing_ids;
+};
+
+/* Please keep this list sorted alphabetically by vendor and model */
+static const struct dmi_system_id i2c1_dep_missing_dmi_ids[] = {
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "T200TA"),
+		},
+	},
+	{}
 };
 
 /*
@@ -473,9 +486,17 @@
  * the supplier is not enumerated until after the consumer is probed.
  */
 static const struct lpss_device_links lpss_device_links[] = {
+	/* CHT External sdcard slot controller depends on PMIC I2C ctrl */
 	{"808622C1", "7", "80860F14", "3", DL_FLAG_PM_RUNTIME},
+	/* CHT iGPU depends on PMIC I2C controller */
 	{"808622C1", "7", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
+	/* BYT iGPU depends on the Embedded Controller I2C controller (UID 1) */
+	{"80860F41", "1", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME,
+	 i2c1_dep_missing_dmi_ids},
+	/* BYT CR iGPU depends on PMIC I2C controller (UID 5 on CR) */
 	{"80860F41", "5", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
+	/* BYT iGPU depends on PMIC I2C controller (UID 7 on non CR) */
+	{"80860F41", "7", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
 };
 
 static bool hid_uid_match(struct acpi_device *adev,
@@ -570,7 +591,8 @@
 	if (!dev2)
 		return;
 
-	if (acpi_lpss_dep(ACPI_COMPANION(dev2), ACPI_HANDLE(dev1)))
+	if ((link->dep_missing_ids && dmi_check_system(link->dep_missing_ids))
+	    || acpi_lpss_dep(ACPI_COMPANION(dev2), ACPI_HANDLE(dev1)))
 		device_link_add(dev2, dev1, link->flags);
 
 	put_device(dev2);
@@ -585,7 +607,8 @@
 	if (!dev2)
 		return;
 
-	if (acpi_lpss_dep(ACPI_COMPANION(dev1), ACPI_HANDLE(dev2)))
+	if ((link->dep_missing_ids && dmi_check_system(link->dep_missing_ids))
+	    || acpi_lpss_dep(ACPI_COMPANION(dev1), ACPI_HANDLE(dev2)))
 		device_link_add(dev1, dev2, link->flags);
 
 	put_device(dev2);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_platform.c
@@ -31,6 +31,44 @@
 	{"", 0},
 };
 
+static struct platform_device *acpi_platform_device_find_by_companion(struct acpi_device *adev)
+{
+	struct device *dev;
+
+	dev = bus_find_device_by_acpi_dev(&platform_bus_type, adev);
+	return dev ? to_platform_device(dev) : NULL;
+}
+
+static int acpi_platform_device_remove_notify(struct notifier_block *nb,
+					      unsigned long value, void *arg)
+{
+	struct acpi_device *adev = arg;
+	struct platform_device *pdev;
+
+	switch (value) {
+	case ACPI_RECONFIG_DEVICE_ADD:
+		/* Nothing to do here */
+		break;
+	case ACPI_RECONFIG_DEVICE_REMOVE:
+		if (!acpi_device_enumerated(adev))
+			break;
+
+		pdev = acpi_platform_device_find_by_companion(adev);
+		if (!pdev)
+			break;
+
+		platform_device_unregister(pdev);
+		put_device(&pdev->dev);
+		break;
+	}
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block acpi_platform_notifier = {
+	.notifier_call = acpi_platform_device_remove_notify,
+};
+
 static void acpi_platform_fill_resource(struct acpi_device *adev,
 	const struct resource *src, struct resource *dest)
 {
@@ -130,3 +168,8 @@
 	return pdev;
 }
 EXPORT_SYMBOL_GPL(acpi_create_platform_device);
+
+void __init acpi_platform_init(void)
+{
+	acpi_reconfig_notifier_register(&acpi_platform_notifier);
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_pnp.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_pnp.c
@@ -317,6 +317,9 @@
 {
 	int i;
 
+	if (strlen(idstr) != strlen(list_id))
+		return false;
+
 	if (memcmp(idstr, list_id, 3))
 		return false;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpi_watchdog.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpi_watchdog.c
@@ -55,12 +55,14 @@
 }
 #endif
 
+static bool acpi_no_watchdog;
+
 static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
 {
 	const struct acpi_table_wdat *wdat = NULL;
 	acpi_status status;
 
-	if (acpi_disabled)
+	if (acpi_disabled || acpi_no_watchdog)
 		return NULL;
 
 	status = acpi_get_table(ACPI_SIG_WDAT, 0,
@@ -88,6 +90,14 @@
 }
 EXPORT_SYMBOL_GPL(acpi_has_watchdog);
 
+/* ACPI watchdog can be disabled on boot command line */
+static int __init disable_acpi_watchdog(char *str)
+{
+	acpi_no_watchdog = true;
+	return 1;
+}
+__setup("acpi_no_watchdog", disable_acpi_watchdog);
+
 void __init acpi_watchdog_init(void)
 {
 	const struct acpi_wdat_entry *entries;
@@ -126,12 +136,11 @@
 		gas = &entries[i].register_region;
 
 		res.start = gas->address;
+		res.end = res.start + ACPI_ACCESS_BYTE_WIDTH(gas->access_width) - 1;
 		if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) {
 			res.flags = IORESOURCE_MEM;
-			res.end = res.start + ALIGN(gas->access_width, 4) - 1;
 		} else if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
 			res.flags = IORESOURCE_IO;
-			res.end = res.start + gas->access_width - 1;
 		} else {
 			pr_warn("Unsupported address space: %u\n",
 				gas->space_id);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/achware.h
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/achware.h
@@ -101,6 +101,8 @@
 
 acpi_status acpi_hw_enable_all_wakeup_gpes(void);
 
+u8 acpi_hw_check_all_gpes(acpi_handle gpe_skip_device, u32 gpe_skip_number);
+
 acpi_status
 acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
 				 struct acpi_gpe_block_info *gpe_block,
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/acnamesp.h
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/acnamesp.h
@@ -256,6 +256,8 @@
 acpi_ns_build_normalized_path(struct acpi_namespace_node *node,
 			      char *full_path, u32 path_size, u8 no_trailing);
 
+void acpi_ns_normalize_pathname(char *original_path);
+
 char *acpi_ns_get_normalized_pathname(struct acpi_namespace_node *node,
 				      u8 no_trailing);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/acobject.h
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/acobject.h
@@ -283,6 +283,7 @@
 	acpi_adr_space_handler handler;
 	struct acpi_namespace_node *node;	/* Parent device */
 	void *context;
+	acpi_mutex context_mutex;
 	acpi_adr_space_setup setup;
 	union acpi_operand_object *region_list;	/* Regions using this handler */
 	union acpi_operand_object *next;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/dbinput.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/dbinput.c
@@ -464,16 +464,14 @@
 		return (NULL);
 	}
 
-	/* Remove any spaces at the beginning */
+	/* Remove any spaces at the beginning, ignore blank lines */
 
-	if (*string == ' ') {
-		while (*string && (*string == ' ')) {
-			string++;
-		}
+	while (*string && isspace(*string)) {
+		string++;
+	}
 
-		if (!(*string)) {
-			return (NULL);
-		}
+	if (!(*string)) {
+		return (NULL);
 	}
 
 	switch (*string) {
@@ -551,7 +549,7 @@
 
 		/* Find end of token */
 
-		while (*string && (*string != ' ')) {
+		while (*string && !isspace(*string)) {
 			string++;
 		}
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/dsfield.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/dsfield.c
@@ -244,7 +244,7 @@
  * FUNCTION:    acpi_ds_get_field_names
  *
  * PARAMETERS:  info            - create_field info structure
- *  `           walk_state      - Current method state
+ *              walk_state      - Current method state
  *              arg             - First parser arg for the field name list
  *
  * RETURN:      Status
@@ -518,13 +518,20 @@
 	info.region_node = region_node;
 
 	status = acpi_ds_get_field_names(&info, walk_state, arg->common.next);
+	if (ACPI_FAILURE(status)) {
+		return_ACPI_STATUS(status);
+	}
+
 	if (info.region_node->object->region.space_id ==
-	    ACPI_ADR_SPACE_PLATFORM_COMM
-	    && !(region_node->object->field.internal_pcc_buffer =
-		 ACPI_ALLOCATE_ZEROED(info.region_node->object->region.
-				      length))) {
-		return_ACPI_STATUS(AE_NO_MEMORY);
+	    ACPI_ADR_SPACE_PLATFORM_COMM) {
+		region_node->object->field.internal_pcc_buffer =
+		    ACPI_ALLOCATE_ZEROED(info.region_node->object->region.
+					 length);
+		if (!region_node->object->field.internal_pcc_buffer) {
+			return_ACPI_STATUS(AE_NO_MEMORY);
+		}
 	}
+
 	return_ACPI_STATUS(status);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/dswexec.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/dswexec.c
@@ -16,6 +16,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acdebug.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
 ACPI_MODULE_NAME("dswexec")
@@ -329,6 +332,10 @@
 	u32 op_class;
 	union acpi_parse_object *next_op;
 	union acpi_parse_object *first_arg;
+#ifdef ACPI_EXEC_APP
+	char *namepath;
+	union acpi_operand_object *obj_desc;
+#endif
 
 	ACPI_FUNCTION_TRACE_PTR(ds_exec_end_op, walk_state);
 
@@ -537,6 +544,32 @@
 
 			status =
 			    acpi_ds_eval_buffer_field_operands(walk_state, op);
+			if (ACPI_FAILURE(status)) {
+				break;
+			}
+#ifdef ACPI_EXEC_APP
+			/*
+			 * acpi_exec support for namespace initialization file (initialize
+			 * buffer_fields in this code.)
+			 */
+			namepath =
+			    acpi_ns_get_external_pathname(op->common.node);
+			status = ae_lookup_init_file_entry(namepath, &obj_desc);
+			if (ACPI_SUCCESS(status)) {
+				status =
+				    acpi_ex_write_data_to_field(obj_desc,
+								op->common.
+								node->object,
+								NULL);
+				if ACPI_FAILURE
+					(status) {
+					ACPI_EXCEPTION((AE_INFO, status,
+							"While writing to buffer field"));
+					}
+			}
+			ACPI_FREE(namepath);
+			status = AE_OK;
+#endif
 			break;
 
 		case AML_TYPE_CREATE_OBJECT:
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/dswload.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/dswload.c
@@ -14,7 +14,6 @@
 #include "acdispat.h"
 #include "acinterp.h"
 #include "acnamesp.h"
-
 #ifdef ACPI_ASL_COMPILER
 #include "acdisasm.h"
 #endif
@@ -399,7 +398,6 @@
 	union acpi_parse_object *op;
 	acpi_object_type object_type;
 	acpi_status status = AE_OK;
-
 #ifdef ACPI_ASL_COMPILER
 	u8 param_count;
 #endif
@@ -410,6 +408,27 @@
 	ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op,
 			  walk_state));
 
+	/*
+	 * Disassembler: handle create field operators here.
+	 *
+	 * create_buffer_field is a deferred op that is typically processed in load
+	 * pass 2. However, disassembly of control method contents walk the parse
+	 * tree with ACPI_PARSE_LOAD_PASS1 and AML_CREATE operators are processed
+	 * in a later walk. This is a problem when there is a control method that
+	 * has the same name as the AML_CREATE object. In this case, any use of the
+	 * name segment will be detected as a method call rather than a reference
+	 * to a buffer field.
+	 *
+	 * This earlier creation during disassembly solves this issue by inserting
+	 * the named object in the ACPI namespace so that references to this name
+	 * would be a name string rather than a method call.
+	 */
+	if ((walk_state->parse_flags & ACPI_PARSE_DISASSEMBLE) &&
+	    (walk_state->op_info->flags & AML_CREATE)) {
+		status = acpi_ds_create_buffer_field(op, walk_state);
+		return_ACPI_STATUS(status);
+	}
+
 	/* We are only interested in opcodes that have an associated name */
 
 	if (!(walk_state->op_info->flags & (AML_NAMED | AML_FIELD))) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/dswload2.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/dswload2.c
@@ -15,6 +15,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acevents.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
 ACPI_MODULE_NAME("dswload2")
@@ -373,6 +376,10 @@
 	struct acpi_namespace_node *new_node;
 	u32 i;
 	u8 region_space;
+#ifdef ACPI_EXEC_APP
+	union acpi_operand_object *obj_desc;
+	char *namepath;
+#endif
 
 	ACPI_FUNCTION_TRACE(ds_load2_end_op);
 
@@ -466,6 +473,11 @@
 		 * be evaluated later during the execution phase
 		 */
 		status = acpi_ds_create_buffer_field(op, walk_state);
+		if (ACPI_FAILURE(status)) {
+			ACPI_EXCEPTION((AE_INFO, status,
+					"CreateBufferField failure"));
+			goto cleanup;
+			}
 		break;
 
 	case AML_TYPE_NAMED_FIELD:
@@ -604,6 +616,29 @@
 		case AML_NAME_OP:
 
 			status = acpi_ds_create_node(walk_state, node, op);
+			if (ACPI_FAILURE(status)) {
+				goto cleanup;
+			}
+#ifdef ACPI_EXEC_APP
+			/*
+			 * acpi_exec support for namespace initialization file (initialize
+			 * Name opcodes in this code.)
+			 */
+			namepath = acpi_ns_get_external_pathname(node);
+			status = ae_lookup_init_file_entry(namepath, &obj_desc);
+			if (ACPI_SUCCESS(status)) {
+
+				/* Detach any existing object, attach new object */
+
+				if (node->object) {
+					acpi_ns_detach_object(node);
+				}
+				acpi_ns_attach_object(node, obj_desc,
+						      obj_desc->common.type);
+			}
+			ACPI_FREE(namepath);
+			status = AE_OK;
+#endif
 			break;
 
 		case AML_METHOD_OP:
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/evevent.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/evevent.c
@@ -265,4 +265,49 @@
 		 handler) (acpi_gbl_fixed_event_handlers[event].context));
 }
 
+/*******************************************************************************
+ *
+ * FUNCTION:    acpi_any_fixed_event_status_set
+ *
+ * PARAMETERS:  None
+ *
+ * RETURN:      TRUE or FALSE
+ *
+ * DESCRIPTION: Checks the PM status register for active fixed events
+ *
+ ******************************************************************************/
+
+u32 acpi_any_fixed_event_status_set(void)
+{
+	acpi_status status;
+	u32 in_status;
+	u32 in_enable;
+	u32 i;
+
+	status = acpi_hw_register_read(ACPI_REGISTER_PM1_ENABLE, &in_enable);
+	if (ACPI_FAILURE(status)) {
+		return (FALSE);
+	}
+
+	status = acpi_hw_register_read(ACPI_REGISTER_PM1_STATUS, &in_status);
+	if (ACPI_FAILURE(status)) {
+		return (FALSE);
+	}
+
+	/*
+	 * Check for all possible Fixed Events and dispatch those that are active
+	 */
+	for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) {
+
+		/* Both the status and enable bits must be on for this event */
+
+		if ((in_status & acpi_gbl_fixed_event_info[i].status_bit_mask) &&
+		    (in_enable & acpi_gbl_fixed_event_info[i].enable_bit_mask)) {
+			return (TRUE);
+		}
+	}
+
+	return (FALSE);
+}
+
 #endif				/* !ACPI_REDUCED_HARDWARE */
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/evhandler.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/evhandler.c
@@ -489,6 +489,13 @@
 
 	/* Init handler obj */
 
+	status =
+	    acpi_os_create_mutex(&handler_obj->address_space.context_mutex);
+	if (ACPI_FAILURE(status)) {
+		acpi_ut_remove_reference(handler_obj);
+		goto unlock_and_exit;
+	}
+
 	handler_obj->address_space.space_id = (u8)space_id;
 	handler_obj->address_space.handler_flags = flags;
 	handler_obj->address_space.region_list = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/evregion.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/evregion.c
@@ -111,6 +111,8 @@
 	union acpi_operand_object *region_obj2;
 	void *region_context = NULL;
 	struct acpi_connection_info *context;
+	acpi_mutex context_mutex;
+	u8 context_locked;
 	acpi_physical_address address;
 
 	ACPI_FUNCTION_TRACE(ev_address_space_dispatch);
@@ -135,6 +137,8 @@
 	}
 
 	context = handler_desc->address_space.context;
+	context_mutex = handler_desc->address_space.context_mutex;
+	context_locked = FALSE;
 
 	/*
 	 * It may be the case that the region has never been initialized.
@@ -203,6 +207,23 @@
 	handler = handler_desc->address_space.handler;
 	address = (region_obj->region.address + region_offset);
 
+	ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
+			  "Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
+			  &region_obj->region.handler->address_space, handler,
+			  ACPI_FORMAT_UINT64(address),
+			  acpi_ut_get_region_name(region_obj->region.
+						  space_id)));
+
+	if (!(handler_desc->address_space.handler_flags &
+	      ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
+		/*
+		 * For handlers other than the default (supplied) handlers, we must
+		 * exit the interpreter because the handler *might* block -- we don't
+		 * know what it will do, so we can't hold the lock on the interpreter.
+		 */
+		acpi_ex_exit_interpreter();
+	}
+
 	/*
 	 * Special handling for generic_serial_bus and general_purpose_io:
 	 * There are three extra parameters that must be passed to the
@@ -211,6 +232,11 @@
 	 *   2) Length of the above buffer
 	 *   3) Actual access length from the access_as() op
 	 *
+	 * Since we pass these extra parameters via the context, which is
+	 * shared between threads, we must lock the context to avoid these
+	 * parameters being changed from another thread before the handler
+	 * has completed running.
+	 *
 	 * In addition, for general_purpose_io, the Address and bit_width fields
 	 * are defined as follows:
 	 *   1) Address is the pin number index of the field (bit offset from
@@ -220,6 +246,14 @@
 	if ((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) &&
 	    context && field_obj) {
 
+		status =
+		    acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER);
+		if (ACPI_FAILURE(status)) {
+			goto re_enter_interpreter;
+		}
+
+		context_locked = TRUE;
+
 		/* Get the Connection (resource_template) buffer */
 
 		context->connection = field_obj->field.resource_buffer;
@@ -229,6 +263,14 @@
 	if ((region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) &&
 	    context && field_obj) {
 
+		status =
+		    acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER);
+		if (ACPI_FAILURE(status)) {
+			goto re_enter_interpreter;
+		}
+
+		context_locked = TRUE;
+
 		/* Get the Connection (resource_template) buffer */
 
 		context->connection = field_obj->field.resource_buffer;
@@ -238,28 +280,15 @@
 		bit_width = field_obj->field.bit_length;
 	}
 
-	ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
-			  "Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
-			  &region_obj->region.handler->address_space, handler,
-			  ACPI_FORMAT_UINT64(address),
-			  acpi_ut_get_region_name(region_obj->region.
-						  space_id)));
-
-	if (!(handler_desc->address_space.handler_flags &
-	      ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
-		/*
-		 * For handlers other than the default (supplied) handlers, we must
-		 * exit the interpreter because the handler *might* block -- we don't
-		 * know what it will do, so we can't hold the lock on the interpreter.
-		 */
-		acpi_ex_exit_interpreter();
-	}
-
 	/* Call the handler */
 
 	status = handler(function, address, bit_width, value, context,
 			 region_obj2->extra.region_context);
 
+	if (context_locked) {
+		acpi_os_release_mutex(context_mutex);
+	}
+
 	if (ACPI_FAILURE(status)) {
 		ACPI_EXCEPTION((AE_INFO, status, "Returned by Handler for [%s]",
 				acpi_ut_get_region_name(region_obj->region.
@@ -276,6 +305,7 @@
 		}
 	}
 
+re_enter_interpreter:
 	if (!(handler_desc->address_space.handler_flags &
 	      ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
 		/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/evxfgpe.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/evxfgpe.c
@@ -795,6 +795,45 @@
 
 ACPI_EXPORT_SYMBOL(acpi_enable_all_wakeup_gpes)
 
+/******************************************************************************
+ *
+ * FUNCTION:    acpi_any_gpe_status_set
+ *
+ * PARAMETERS:  gpe_skip_number      - Number of the GPE to skip
+ *
+ * RETURN:      Whether or not the status bit is set for any GPE
+ *
+ * DESCRIPTION: Check the status bits of all enabled GPEs, except for the one
+ *              represented by the "skip" argument, and return TRUE if any of
+ *              them is set or FALSE otherwise.
+ *
+ ******************************************************************************/
+u32 acpi_any_gpe_status_set(u32 gpe_skip_number)
+{
+	acpi_status status;
+	acpi_handle gpe_device;
+	u8 ret;
+
+	ACPI_FUNCTION_TRACE(acpi_any_gpe_status_set);
+
+	status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+	if (ACPI_FAILURE(status)) {
+		return (FALSE);
+	}
+
+	status = acpi_get_gpe_device(gpe_skip_number, &gpe_device);
+	if (ACPI_FAILURE(status)) {
+		gpe_device = NULL;
+	}
+
+	ret = acpi_hw_check_all_gpes(gpe_device, gpe_skip_number);
+	(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+
+	return (ret);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_any_gpe_status_set)
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_install_gpe_block
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/evxfregn.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/evxfregn.c
@@ -201,6 +201,8 @@
 
 			/* Now we can delete the handler object */
 
+			acpi_os_release_mutex(handler_obj->address_space.
+					      context_mutex);
 			acpi_ut_remove_reference(handler_obj);
 			goto unlock_and_exit;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/exprep.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/exprep.c
@@ -473,10 +473,6 @@
 				    (u8)access_byte_width;
 			}
 		}
-		/* An additional reference for the container */
-
-		acpi_ut_add_reference(obj_desc->field.region_obj);
-
 		ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
 				  "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
 				  obj_desc->field.start_field_bit_offset,
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/hwgpe.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/hwgpe.c
@@ -444,6 +444,65 @@
 	return (AE_OK);
 }
 
+struct acpi_gpe_block_status_context {
+	struct acpi_gpe_register_info *gpe_skip_register_info;
+	u8 gpe_skip_mask;
+	u8 retval;
+};
+
+/******************************************************************************
+ *
+ * FUNCTION:    acpi_hw_get_gpe_block_status
+ *
+ * PARAMETERS:  gpe_xrupt_info      - GPE Interrupt info
+ *              gpe_block           - Gpe Block info
+ *              context             - GPE list walk context data
+ *
+ * RETURN:      Success
+ *
+ * DESCRIPTION: Produce a combined GPE status bits mask for the given block.
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_hw_get_gpe_block_status(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+			     struct acpi_gpe_block_info *gpe_block,
+			     void *context)
+{
+	struct acpi_gpe_block_status_context *c = context;
+	struct acpi_gpe_register_info *gpe_register_info;
+	u64 in_enable, in_status;
+	acpi_status status;
+	u8 ret_mask;
+	u32 i;
+
+	/* Examine each GPE Register within the block */
+
+	for (i = 0; i < gpe_block->register_count; i++) {
+		gpe_register_info = &gpe_block->register_info[i];
+
+		status = acpi_hw_read(&in_enable,
+				      &gpe_register_info->enable_address);
+		if (ACPI_FAILURE(status)) {
+			continue;
+		}
+
+		status = acpi_hw_read(&in_status,
+				      &gpe_register_info->status_address);
+		if (ACPI_FAILURE(status)) {
+			continue;
+		}
+
+		ret_mask = in_enable & in_status;
+		if (ret_mask && c->gpe_skip_register_info == gpe_register_info) {
+			ret_mask &= ~c->gpe_skip_mask;
+		}
+		c->retval |= ret_mask;
+	}
+
+	return (AE_OK);
+}
+
 /******************************************************************************
  *
  * FUNCTION:    acpi_hw_disable_all_gpes
@@ -510,4 +569,45 @@
 	return_ACPI_STATUS(status);
 }
 
+/******************************************************************************
+ *
+ * FUNCTION:    acpi_hw_check_all_gpes
+ *
+ * PARAMETERS:  gpe_skip_device      - GPE devoce of the GPE to skip
+ *              gpe_skip_number      - Number of the GPE to skip
+ *
+ * RETURN:      Combined status of all GPEs
+ *
+ * DESCRIPTION: Check all enabled GPEs in all GPE blocks, except for the one
+ *              represented by the "skip" arguments, and return TRUE if the
+ *              status bit is set for at least one of them of FALSE otherwise.
+ *
+ ******************************************************************************/
+
+u8 acpi_hw_check_all_gpes(acpi_handle gpe_skip_device, u32 gpe_skip_number)
+{
+	struct acpi_gpe_block_status_context context = {
+		.gpe_skip_register_info = NULL,
+		.retval = 0,
+	};
+	struct acpi_gpe_event_info *gpe_event_info;
+	acpi_cpu_flags flags;
+
+	ACPI_FUNCTION_TRACE(acpi_hw_check_all_gpes);
+
+	flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+	gpe_event_info = acpi_ev_get_gpe_event_info(gpe_skip_device,
+						    gpe_skip_number);
+	if (gpe_event_info) {
+		context.gpe_skip_register_info = gpe_event_info->register_info;
+		context.gpe_skip_mask = acpi_hw_get_gpe_register_bit(gpe_event_info);
+	}
+
+	acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+
+	(void)acpi_ev_walk_gpe_list(acpi_hw_get_gpe_block_status, &context);
+	return (context.retval != 0);
+}
+
 #endif				/* !ACPI_REDUCED_HARDWARE */
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/nsnames.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/nsnames.c
@@ -13,9 +13,6 @@
 #define _COMPONENT          ACPI_NAMESPACE
 ACPI_MODULE_NAME("nsnames")
 
-/* Local Prototypes */
-static void acpi_ns_normalize_pathname(char *original_path);
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ns_get_external_pathname
@@ -30,7 +27,6 @@
  *              for error and debug statements.
  *
  ******************************************************************************/
-
 char *acpi_ns_get_external_pathname(struct acpi_namespace_node *node)
 {
 	char *name_buffer;
@@ -411,7 +407,7 @@
  *
  ******************************************************************************/
 
-static void acpi_ns_normalize_pathname(char *original_path)
+void acpi_ns_normalize_pathname(char *original_path)
 {
 	char *input_path = original_path;
 	char *new_path_buffer;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/acpica/utdelete.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/acpica/utdelete.c
@@ -452,13 +452,13 @@
  *
  * FUNCTION:    acpi_ut_update_object_reference
  *
- * PARAMETERS:  object              - Increment ref count for this object
- *                                    and all sub-objects
+ * PARAMETERS:  object              - Increment or decrement the ref count for
+ *                                    this object and all sub-objects
  *              action              - Either REF_INCREMENT or REF_DECREMENT
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Increment the object reference count
+ * DESCRIPTION: Increment or decrement the object reference count
  *
  * Object references are incremented when:
  * 1) An object is attached to a Node (namespace object)
@@ -492,7 +492,7 @@
 		}
 
 		/*
-		 * All sub-objects must have their reference count incremented
+		 * All sub-objects must have their reference count updated
 		 * also. Different object types have different subobjects.
 		 */
 		switch (object->common.type) {
@@ -559,6 +559,7 @@
 					break;
 				}
 			}
+
 			next_object = NULL;
 			break;
 
@@ -567,11 +568,6 @@
 			next_object = object->buffer_field.buffer_obj;
 			break;
 
-		case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-			next_object = object->field.region_obj;
-			break;
-
 		case ACPI_TYPE_LOCAL_BANK_FIELD:
 
 			next_object = object->bank_field.bank_obj;
@@ -612,6 +608,7 @@
 			}
 			break;
 
+		case ACPI_TYPE_LOCAL_REGION_FIELD:
 		case ACPI_TYPE_REGION:
 		default:
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/apei/ghes.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/apei/ghes.c
@@ -171,7 +171,7 @@
 	 * New allocation must be visible in all pgd before it can be found by
 	 * an NMI allocating from the pool.
 	 */
-	vmalloc_sync_all();
+	vmalloc_sync_mappings();
 
 	rc = gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1);
 	if (rc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/arm64/iort.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/arm64/iort.c
@@ -361,6 +361,7 @@
 static int iort_get_id_mapping_index(struct acpi_iort_node *node)
 {
 	struct acpi_iort_smmu_v3 *smmu;
+	struct acpi_iort_pmcg *pmcg;
 
 	switch (node->type) {
 	case ACPI_IORT_NODE_SMMU_V3:
@@ -388,6 +389,10 @@
 
 		return smmu->id_mapping_index;
 	case ACPI_IORT_NODE_PMCG:
+		pmcg = (struct acpi_iort_pmcg *)node->node_data;
+		if (pmcg->overflow_gsiv || node->mapping_count == 0)
+			return -EINVAL;
+
 		return 0;
 	default:
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/battery.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/battery.c
@@ -38,6 +38,8 @@
 #define PREFIX "ACPI: "
 
 #define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
+#define ACPI_BATTERY_CAPACITY_VALID(capacity) \
+	((capacity) != 0 && (capacity) != ACPI_BATTERY_VALUE_UNKNOWN)
 
 #define ACPI_BATTERY_DEVICE_NAME	"Battery"
 
@@ -192,7 +194,8 @@
 
 static bool acpi_battery_is_degraded(struct acpi_battery *battery)
 {
-	return battery->full_charge_capacity && battery->design_capacity &&
+	return ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity) &&
+		ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity) &&
 		battery->full_charge_capacity < battery->design_capacity;
 }
 
@@ -214,7 +217,7 @@
 				     enum power_supply_property psp,
 				     union power_supply_propval *val)
 {
-	int ret = 0;
+	int full_capacity = ACPI_BATTERY_VALUE_UNKNOWN, ret = 0;
 	struct acpi_battery *battery = to_acpi_battery(psy);
 
 	if (acpi_battery_present(battery)) {
@@ -263,14 +266,14 @@
 		break;
 	case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
 	case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
-		if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+		if (!ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity))
 			ret = -ENODEV;
 		else
 			val->intval = battery->design_capacity * 1000;
 		break;
 	case POWER_SUPPLY_PROP_CHARGE_FULL:
 	case POWER_SUPPLY_PROP_ENERGY_FULL:
-		if (battery->full_charge_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+		if (!ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity))
 			ret = -ENODEV;
 		else
 			val->intval = battery->full_charge_capacity * 1000;
@@ -283,11 +286,17 @@
 			val->intval = battery->capacity_now * 1000;
 		break;
 	case POWER_SUPPLY_PROP_CAPACITY:
-		if (battery->capacity_now && battery->full_charge_capacity)
-			val->intval = battery->capacity_now * 100/
-					battery->full_charge_capacity;
+		if (ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity))
+			full_capacity = battery->full_charge_capacity;
+		else if (ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity))
+			full_capacity = battery->design_capacity;
+
+		if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN ||
+		    full_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+			ret = -ENODEV;
 		else
-			val->intval = 0;
+			val->intval = battery->capacity_now * 100/
+					full_capacity;
 		break;
 	case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
 		if (battery->state & ACPI_BATTERY_STATE_CRITICAL)
@@ -333,6 +342,20 @@
 	POWER_SUPPLY_PROP_SERIAL_NUMBER,
 };
 
+static enum power_supply_property charge_battery_full_cap_broken_props[] = {
+	POWER_SUPPLY_PROP_STATUS,
+	POWER_SUPPLY_PROP_PRESENT,
+	POWER_SUPPLY_PROP_TECHNOLOGY,
+	POWER_SUPPLY_PROP_CYCLE_COUNT,
+	POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
+	POWER_SUPPLY_PROP_VOLTAGE_NOW,
+	POWER_SUPPLY_PROP_CURRENT_NOW,
+	POWER_SUPPLY_PROP_CHARGE_NOW,
+	POWER_SUPPLY_PROP_MODEL_NAME,
+	POWER_SUPPLY_PROP_MANUFACTURER,
+	POWER_SUPPLY_PROP_SERIAL_NUMBER,
+};
+
 static enum power_supply_property energy_battery_props[] = {
 	POWER_SUPPLY_PROP_STATUS,
 	POWER_SUPPLY_PROP_PRESENT,
@@ -794,20 +817,34 @@
 static int sysfs_add_battery(struct acpi_battery *battery)
 {
 	struct power_supply_config psy_cfg = { .drv_data = battery, };
+	bool full_cap_broken = false;
+
+	if (!ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity) &&
+	    !ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity))
+		full_cap_broken = true;
 
 	if (battery->power_unit == ACPI_BATTERY_POWER_UNIT_MA) {
-		battery->bat_desc.properties = charge_battery_props;
-		battery->bat_desc.num_properties =
-			ARRAY_SIZE(charge_battery_props);
-	} else if (battery->full_charge_capacity == 0) {
-		battery->bat_desc.properties =
-			energy_battery_full_cap_broken_props;
-		battery->bat_desc.num_properties =
-			ARRAY_SIZE(energy_battery_full_cap_broken_props);
+		if (full_cap_broken) {
+			battery->bat_desc.properties =
+			    charge_battery_full_cap_broken_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(charge_battery_full_cap_broken_props);
+		} else {
+			battery->bat_desc.properties = charge_battery_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(charge_battery_props);
+		}
 	} else {
-		battery->bat_desc.properties = energy_battery_props;
-		battery->bat_desc.num_properties =
-			ARRAY_SIZE(energy_battery_props);
+		if (full_cap_broken) {
+			battery->bat_desc.properties =
+			    energy_battery_full_cap_broken_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(energy_battery_full_cap_broken_props);
+		} else {
+			battery->bat_desc.properties = energy_battery_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(energy_battery_props);
+		}
 	}
 
 	battery->bat_desc.name = acpi_device_bid(battery->device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/bus.c
@@ -153,7 +153,7 @@
 {
 	acpi_status status;
 
-	if (!*data)
+	if (!data)
 		return -EINVAL;
 
 	status = acpi_get_data(handle, acpi_bus_private_data_handler, data);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/button.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/button.c
@@ -78,6 +78,39 @@
 			DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"),
 		},
 	},
+	{
+		/*
+		 * Medion Akoya E2215T, notification of the LID device only
+		 * happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "E2215T"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
+	{
+		/*
+		 * Medion Akoya E2228T, notification of the LID device only
+		 * happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "E2228T"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
+	{
+		/*
+		 * Razer Blade Stealth 13 late 2019, notification of the LID device
+		 * only happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Razer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Razer Blade Stealth 13 Late 2019"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
 	{}
 };
 
@@ -114,6 +147,7 @@
 	int last_state;
 	ktime_t last_time;
 	bool suspended;
+	bool lid_state_initialized;
 };
 
 static BLOCKING_NOTIFIER_HEAD(acpi_lid_notifier);
@@ -369,6 +403,8 @@
 
 static void acpi_lid_initialize_state(struct acpi_device *device)
 {
+	struct acpi_button *button = acpi_driver_data(device);
+
 	switch (lid_init_state) {
 	case ACPI_BUTTON_LID_INIT_OPEN:
 		(void)acpi_lid_notify_state(device, 1);
@@ -380,13 +416,14 @@
 	default:
 		break;
 	}
+
+	button->lid_state_initialized = true;
 }
 
 static void acpi_button_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_button *button = acpi_driver_data(device);
 	struct input_dev *input;
-	int users;
 
 	switch (event) {
 	case ACPI_FIXED_HARDWARE_EVENT:
@@ -395,10 +432,7 @@
 	case ACPI_BUTTON_NOTIFY_STATUS:
 		input = button->input;
 		if (button->type == ACPI_BUTTON_TYPE_LID) {
-			mutex_lock(&button->input->mutex);
-			users = button->input->users;
-			mutex_unlock(&button->input->mutex);
-			if (users)
+			if (button->lid_state_initialized)
 				acpi_lid_update_state(device, true);
 		} else {
 			int keycode;
@@ -443,7 +477,7 @@
 	struct acpi_button *button = acpi_driver_data(device);
 
 	button->suspended = false;
-	if (button->type == ACPI_BUTTON_TYPE_LID && button->input->users) {
+	if (button->type == ACPI_BUTTON_TYPE_LID) {
 		button->last_state = !!acpi_lid_evaluate_state(device);
 		button->last_time = ktime_get();
 		acpi_lid_initialize_state(device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/cppc_acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/cppc_acpi.c
@@ -865,6 +865,7 @@
 			"acpi_cppc");
 	if (ret) {
 		per_cpu(cpc_desc_ptr, pr->id) = NULL;
+		kobject_put(&cpc_ptr->kobj);
 		goto out_free;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/device_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/device_pm.c
@@ -186,7 +186,7 @@
 		 * possibly drop references to the power resources in use.
 		 */
 		state = ACPI_STATE_D3_HOT;
-		/* If _PR3 is not available, use D3hot as the target state. */
+		/* If D3cold is not supported, use D3hot as the target state. */
 		if (!device->power.states[ACPI_STATE_D3_COLD].flags.valid)
 			target_state = state;
 	} else if (!device->power.states[state].flags.valid) {
@@ -273,13 +273,13 @@
  end:
 	if (result) {
 		dev_warn(&device->dev, "Failed to change power state to %s\n",
-			 acpi_power_state_string(state));
+			 acpi_power_state_string(target_state));
 	} else {
 		device->power.state = target_state;
 		ACPI_DEBUG_PRINT((ACPI_DB_INFO,
 				  "Device [%s] transitioned to %s\n",
 				  device->pnp.bus_id,
-				  acpi_power_state_string(state)));
+				  acpi_power_state_string(target_state)));
 	}
 
 	return result;
@@ -749,7 +749,7 @@
 static DEFINE_MUTEX(acpi_wakeup_lock);
 
 static int __acpi_device_wakeup_enable(struct acpi_device *adev,
-				       u32 target_state, int max_count)
+				       u32 target_state)
 {
 	struct acpi_device_wakeup *wakeup = &adev->wakeup;
 	acpi_status status;
@@ -757,15 +757,26 @@
 
 	mutex_lock(&acpi_wakeup_lock);
 
-	if (wakeup->enable_count >= max_count)
-		goto out;
-
+	/*
+	 * If the device wakeup power is already enabled, disable it and enable
+	 * it again in case it depends on the configuration of subordinate
+	 * devices and the conditions have changed since it was enabled last
+	 * time.
+	 */
 	if (wakeup->enable_count > 0)
-		goto inc;
+		acpi_disable_wakeup_device_power(adev);
 
 	error = acpi_enable_wakeup_device_power(adev, target_state);
-	if (error)
+	if (error) {
+		if (wakeup->enable_count > 0) {
+			acpi_disable_gpe(wakeup->gpe_device, wakeup->gpe_number);
+			wakeup->enable_count = 0;
+		}
 		goto out;
+	}
+
+	if (wakeup->enable_count > 0)
+		goto inc;
 
 	status = acpi_enable_gpe(wakeup->gpe_device, wakeup->gpe_number);
 	if (ACPI_FAILURE(status)) {
@@ -778,7 +789,10 @@
 			  (unsigned int)wakeup->gpe_number);
 
 inc:
-	wakeup->enable_count++;
+	if (wakeup->enable_count < INT_MAX)
+		wakeup->enable_count++;
+	else
+		acpi_handle_info(adev->handle, "Wakeup enable count out of bounds!\n");
 
 out:
 	mutex_unlock(&acpi_wakeup_lock);
@@ -799,7 +813,7 @@
  */
 static int acpi_device_wakeup_enable(struct acpi_device *adev, u32 target_state)
 {
-	return __acpi_device_wakeup_enable(adev, target_state, 1);
+	return __acpi_device_wakeup_enable(adev, target_state);
 }
 
 /**
@@ -829,8 +843,12 @@
 	mutex_unlock(&acpi_wakeup_lock);
 }
 
-static int __acpi_pm_set_device_wakeup(struct device *dev, bool enable,
-				       int max_count)
+/**
+ * acpi_pm_set_device_wakeup - Enable/disable remote wakeup for given device.
+ * @dev: Device to enable/disable to generate wakeup events.
+ * @enable: Whether to enable or disable the wakeup functionality.
+ */
+int acpi_pm_set_device_wakeup(struct device *dev, bool enable)
 {
 	struct acpi_device *adev;
 	int error;
@@ -850,37 +868,15 @@
 		return 0;
 	}
 
-	error = __acpi_device_wakeup_enable(adev, acpi_target_system_state(),
-					    max_count);
+	error = __acpi_device_wakeup_enable(adev, acpi_target_system_state());
 	if (!error)
 		dev_dbg(dev, "Wakeup enabled by ACPI\n");
 
 	return error;
 }
-
-/**
- * acpi_pm_set_device_wakeup - Enable/disable remote wakeup for given device.
- * @dev: Device to enable/disable to generate wakeup events.
- * @enable: Whether to enable or disable the wakeup functionality.
- */
-int acpi_pm_set_device_wakeup(struct device *dev, bool enable)
-{
-	return __acpi_pm_set_device_wakeup(dev, enable, 1);
-}
 EXPORT_SYMBOL_GPL(acpi_pm_set_device_wakeup);
 
 /**
- * acpi_pm_set_bridge_wakeup - Enable/disable remote wakeup for given bridge.
- * @dev: Bridge device to enable/disable to generate wakeup events.
- * @enable: Whether to enable or disable the wakeup functionality.
- */
-int acpi_pm_set_bridge_wakeup(struct device *dev, bool enable)
-{
-	return __acpi_pm_set_device_wakeup(dev, enable, INT_MAX);
-}
-EXPORT_SYMBOL_GPL(acpi_pm_set_bridge_wakeup);
-
-/**
  * acpi_dev_pm_low_power - Put ACPI device into a low-power state.
  * @dev: Device to put into a low-power state.
  * @adev: ACPI device node corresponding to @dev.
@@ -1314,9 +1310,19 @@
  */
 int acpi_dev_pm_attach(struct device *dev, bool power_on)
 {
+	/*
+	 * Skip devices whose ACPI companions match the device IDs below,
+	 * because they require special power management handling incompatible
+	 * with the generic ACPI PM domain.
+	 */
+	static const struct acpi_device_id special_pm_ids[] = {
+		{"PNP0C0B", }, /* Generic ACPI fan */
+		{"INT3404", }, /* Fan */
+		{}
+	};
 	struct acpi_device *adev = ACPI_COMPANION(dev);
 
-	if (!adev)
+	if (!adev || !acpi_match_device_ids(adev, special_pm_ids))
 		return 0;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/device_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/device_sysfs.c
@@ -251,20 +251,12 @@
 	if (add_uevent_var(env, "MODALIAS="))
 		return -ENOMEM;
 
-	len = create_pnp_modalias(adev, &env->buf[env->buflen - 1],
-				  sizeof(env->buf) - env->buflen);
-	if (len < 0)
-		return len;
-
-	env->buflen += len;
-	if (!adev->data.of_compatible)
-		return 0;
-
-	if (len > 0 && add_uevent_var(env, "MODALIAS="))
-		return -ENOMEM;
-
-	len = create_of_modalias(adev, &env->buf[env->buflen - 1],
-				 sizeof(env->buf) - env->buflen);
+	if (adev->data.of_compatible)
+		len = create_of_modalias(adev, &env->buf[env->buflen - 1],
+					 sizeof(env->buf) - env->buflen);
+	else
+		len = create_pnp_modalias(adev, &env->buf[env->buflen - 1],
+					  sizeof(env->buf) - env->buflen);
 	if (len < 0)
 		return len;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/ec.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/ec.c
@@ -95,12 +95,12 @@
 	EC_FLAGS_QUERY_ENABLED,		/* Query is enabled */
 	EC_FLAGS_QUERY_PENDING,		/* Query is pending */
 	EC_FLAGS_QUERY_GUARDING,	/* Guard for SCI_EVT check */
-	EC_FLAGS_GPE_HANDLER_INSTALLED,	/* GPE handler installed */
+	EC_FLAGS_EVENT_HANDLER_INSTALLED,	/* Event handler installed */
 	EC_FLAGS_EC_HANDLER_INSTALLED,	/* OpReg handler installed */
-	EC_FLAGS_EVT_HANDLER_INSTALLED, /* _Qxx handlers installed */
+	EC_FLAGS_QUERY_METHODS_INSTALLED, /* _Qxx handlers installed */
 	EC_FLAGS_STARTED,		/* Driver is started */
 	EC_FLAGS_STOPPED,		/* Driver is stopped */
-	EC_FLAGS_GPE_MASKED,		/* GPE masked */
+	EC_FLAGS_EVENTS_MASKED,		/* Events masked */
 };
 
 #define ACPI_EC_COMMAND_POLL		0x01 /* Available for command byte */
@@ -179,6 +179,7 @@
 
 static struct acpi_ec *boot_ec;
 static bool boot_ec_is_ecdt = false;
+static struct workqueue_struct *ec_wq;
 static struct workqueue_struct *ec_query_wq;
 
 static int EC_FLAGS_QUERY_HANDSHAKE; /* Needs QR_EC issued when SCI_EVT set */
@@ -397,8 +398,8 @@
 static void acpi_ec_submit_request(struct acpi_ec *ec)
 {
 	ec->reference_count++;
-	if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags) &&
-	    ec->reference_count == 1)
+	if (test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags) &&
+	    ec->gpe >= 0 && ec->reference_count == 1)
 		acpi_ec_enable_gpe(ec, true);
 }
 
@@ -407,28 +408,36 @@
 	bool flushed = false;
 
 	ec->reference_count--;
-	if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags) &&
-	    ec->reference_count == 0)
+	if (test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags) &&
+	    ec->gpe >= 0 && ec->reference_count == 0)
 		acpi_ec_disable_gpe(ec, true);
 	flushed = acpi_ec_flushed(ec);
 	if (flushed)
 		wake_up(&ec->wait);
 }
 
-static void acpi_ec_mask_gpe(struct acpi_ec *ec)
+static void acpi_ec_mask_events(struct acpi_ec *ec)
 {
-	if (!test_bit(EC_FLAGS_GPE_MASKED, &ec->flags)) {
-		acpi_ec_disable_gpe(ec, false);
+	if (!test_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags)) {
+		if (ec->gpe >= 0)
+			acpi_ec_disable_gpe(ec, false);
+		else
+			disable_irq_nosync(ec->irq);
+
 		ec_dbg_drv("Polling enabled");
-		set_bit(EC_FLAGS_GPE_MASKED, &ec->flags);
+		set_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags);
 	}
 }
 
-static void acpi_ec_unmask_gpe(struct acpi_ec *ec)
+static void acpi_ec_unmask_events(struct acpi_ec *ec)
 {
-	if (test_bit(EC_FLAGS_GPE_MASKED, &ec->flags)) {
-		clear_bit(EC_FLAGS_GPE_MASKED, &ec->flags);
-		acpi_ec_enable_gpe(ec, false);
+	if (test_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags)) {
+		clear_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags);
+		if (ec->gpe >= 0)
+			acpi_ec_enable_gpe(ec, false);
+		else
+			enable_irq(ec->irq);
+
 		ec_dbg_drv("Polling disabled");
 	}
 }
@@ -454,14 +463,14 @@
 
 static void acpi_ec_submit_query(struct acpi_ec *ec)
 {
-	acpi_ec_mask_gpe(ec);
+	acpi_ec_mask_events(ec);
 	if (!acpi_ec_event_enabled(ec))
 		return;
 	if (!test_and_set_bit(EC_FLAGS_QUERY_PENDING, &ec->flags)) {
 		ec_dbg_evt("Command(%s) submitted/blocked",
 			   acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
 		ec->nr_pending_queries++;
-		schedule_work(&ec->work);
+		queue_work(ec_wq, &ec->work);
 	}
 }
 
@@ -470,7 +479,7 @@
 	if (test_and_clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags))
 		ec_dbg_evt("Command(%s) unblocked",
 			   acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
-	acpi_ec_unmask_gpe(ec);
+	acpi_ec_unmask_events(ec);
 }
 
 static inline void __acpi_ec_enable_event(struct acpi_ec *ec)
@@ -525,26 +534,10 @@
 }
 
 #ifdef CONFIG_PM_SLEEP
-static bool acpi_ec_query_flushed(struct acpi_ec *ec)
+static void __acpi_ec_flush_work(void)
 {
-	bool flushed;
-	unsigned long flags;
-
-	spin_lock_irqsave(&ec->lock, flags);
-	flushed = !ec->nr_pending_queries;
-	spin_unlock_irqrestore(&ec->lock, flags);
-	return flushed;
-}
-
-static void __acpi_ec_flush_event(struct acpi_ec *ec)
-{
-	/*
-	 * When ec_freeze_events is true, we need to flush events in
-	 * the proper position before entering the noirq stage.
-	 */
-	wait_event(ec->wait, acpi_ec_query_flushed(ec));
-	if (ec_query_wq)
-		flush_workqueue(ec_query_wq);
+	drain_workqueue(ec_wq); /* flush ec->work */
+	flush_workqueue(ec_query_wq); /* flush queries */
 }
 
 static void acpi_ec_disable_event(struct acpi_ec *ec)
@@ -554,15 +547,21 @@
 	spin_lock_irqsave(&ec->lock, flags);
 	__acpi_ec_disable_event(ec);
 	spin_unlock_irqrestore(&ec->lock, flags);
-	__acpi_ec_flush_event(ec);
+
+	/*
+	 * When ec_freeze_events is true, we need to flush events in
+	 * the proper position before entering the noirq stage.
+	 */
+	__acpi_ec_flush_work();
 }
 
 void acpi_ec_flush_work(void)
 {
-	if (first_ec)
-		__acpi_ec_flush_event(first_ec);
+	/* Without ec_wq there is nothing to flush. */
+	if (!ec_wq)
+		return;
 
-	flush_scheduled_work();
+	__acpi_ec_flush_work();
 }
 #endif /* CONFIG_PM_SLEEP */
 
@@ -648,7 +647,9 @@
 	 * ensure a hardware STS 0->1 change after this clearing can always
 	 * trigger a GPE interrupt.
 	 */
-	acpi_ec_clear_gpe(ec);
+	if (ec->gpe >= 0)
+		acpi_ec_clear_gpe(ec);
+
 	status = acpi_ec_read_status(ec);
 	t = ec->curr;
 	/*
@@ -717,7 +718,7 @@
 				++t->irq_count;
 			/* Allow triggering on 0 threshold */
 			if (t->irq_count == ec_storm_threshold)
-				acpi_ec_mask_gpe(ec);
+				acpi_ec_mask_events(ec);
 		}
 	}
 out:
@@ -815,7 +816,7 @@
 
 	spin_lock_irqsave(&ec->lock, tmp);
 	if (t->irq_count == ec_storm_threshold)
-		acpi_ec_unmask_gpe(ec);
+		acpi_ec_unmask_events(ec);
 	ec_dbg_req("Command(%s) stopped", acpi_ec_cmd_string(t->command));
 	ec->curr = NULL;
 	/* Disable GPE for command processing (IBF=0/OBF=1) */
@@ -1053,28 +1054,20 @@
                                 Event Management
    -------------------------------------------------------------------------- */
 static struct acpi_ec_query_handler *
-acpi_ec_get_query_handler(struct acpi_ec_query_handler *handler)
-{
-	if (handler)
-		kref_get(&handler->kref);
-	return handler;
-}
-
-static struct acpi_ec_query_handler *
 acpi_ec_get_query_handler_by_value(struct acpi_ec *ec, u8 value)
 {
 	struct acpi_ec_query_handler *handler;
-	bool found = false;
 
 	mutex_lock(&ec->mutex);
 	list_for_each_entry(handler, &ec->list, node) {
 		if (value == handler->query_bit) {
-			found = true;
-			break;
+			kref_get(&handler->kref);
+			mutex_unlock(&ec->mutex);
+			return handler;
 		}
 	}
 	mutex_unlock(&ec->mutex);
-	return found ? acpi_ec_get_query_handler(handler) : NULL;
+	return NULL;
 }
 
 static void acpi_ec_query_handler_release(struct kref *kref)
@@ -1275,18 +1268,28 @@
 	acpi_ec_check_event(ec);
 }
 
-static u32 acpi_ec_gpe_handler(acpi_handle gpe_device,
-	u32 gpe_number, void *data)
+static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
 {
 	unsigned long flags;
-	struct acpi_ec *ec = data;
 
 	spin_lock_irqsave(&ec->lock, flags);
 	advance_transaction(ec);
 	spin_unlock_irqrestore(&ec->lock, flags);
+}
+
+static u32 acpi_ec_gpe_handler(acpi_handle gpe_device,
+			       u32 gpe_number, void *data)
+{
+	acpi_ec_handle_interrupt(data);
 	return ACPI_INTERRUPT_HANDLED;
 }
 
+static irqreturn_t acpi_ec_irq_handler(int irq, void *data)
+{
+	acpi_ec_handle_interrupt(data);
+	return IRQ_HANDLED;
+}
+
 /* --------------------------------------------------------------------------
  *                           Address Space Management
  * -------------------------------------------------------------------------- */
@@ -1359,6 +1362,8 @@
 	ec->timestamp = jiffies;
 	ec->busy_polling = true;
 	ec->polling_guard = 0;
+	ec->gpe = -1;
+	ec->irq = -1;
 	return ec;
 }
 
@@ -1406,9 +1411,13 @@
 		/* Get GPE bit assignment (EC events). */
 		/* TODO: Add support for _GPE returning a package */
 		status = acpi_evaluate_integer(handle, "_GPE", NULL, &tmp);
-		if (ACPI_FAILURE(status))
-			return status;
-		ec->gpe = tmp;
+		if (ACPI_SUCCESS(status))
+			ec->gpe = tmp;
+
+		/*
+		 * Errors are non-fatal, allowing for ACPI Reduced Hardware
+		 * platforms which use GpioInt instead of GPE.
+		 */
 	}
 	/* Use the global lock for all EC transactions? */
 	tmp = 0;
@@ -1418,12 +1427,45 @@
 	return AE_CTRL_TERMINATE;
 }
 
-/*
- * Note: This function returns an error code only when the address space
- *       handler is not installed, which means "not able to handle
- *       transactions".
+static bool install_gpe_event_handler(struct acpi_ec *ec)
+{
+	acpi_status status;
+
+	status = acpi_install_gpe_raw_handler(NULL, ec->gpe,
+					      ACPI_GPE_EDGE_TRIGGERED,
+					      &acpi_ec_gpe_handler, ec);
+	if (ACPI_FAILURE(status))
+		return false;
+
+	if (test_bit(EC_FLAGS_STARTED, &ec->flags) && ec->reference_count >= 1)
+		acpi_ec_enable_gpe(ec, true);
+
+	return true;
+}
+
+static bool install_gpio_irq_event_handler(struct acpi_ec *ec)
+{
+	return request_irq(ec->irq, acpi_ec_irq_handler, IRQF_SHARED,
+			   "ACPI EC", ec) >= 0;
+}
+
+/**
+ * ec_install_handlers - Install service callbacks and register query methods.
+ * @ec: Target EC.
+ * @device: ACPI device object corresponding to @ec.
+ *
+ * Install a handler for the EC address space type unless it has been installed
+ * already.  If @device is not NULL, also look for EC query methods in the
+ * namespace and register them, and install an event (either GPE or GPIO IRQ)
+ * handler for the EC, if possible.
+ *
+ * Return:
+ * -ENODEV if the address space handler cannot be installed, which means
+ *  "unable to handle transactions",
+ * -EPROBE_DEFER if GPIO IRQ acquisition needs to be deferred,
+ * or 0 (success) otherwise.
  */
-static int ec_install_handlers(struct acpi_ec *ec, bool handle_events)
+static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device *device)
 {
 	acpi_status status;
 
@@ -1453,28 +1495,45 @@
 		set_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags);
 	}
 
-	if (!handle_events)
+	if (!device)
 		return 0;
 
-	if (!test_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags)) {
+	if (ec->gpe < 0) {
+		/* ACPI reduced hardware platforms use a GpioInt from _CRS. */
+		int irq = acpi_dev_gpio_irq_get(device, 0);
+		/*
+		 * Bail out right away for deferred probing or complete the
+		 * initialization regardless of any other errors.
+		 */
+		if (irq == -EPROBE_DEFER)
+			return -EPROBE_DEFER;
+		else if (irq >= 0)
+			ec->irq = irq;
+	}
+
+	if (!test_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags)) {
 		/* Find and register all query methods */
 		acpi_walk_namespace(ACPI_TYPE_METHOD, ec->handle, 1,
 				    acpi_ec_register_query_methods,
 				    NULL, ec, NULL);
-		set_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags);
+		set_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags);
 	}
-	if (!test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags)) {
-		status = acpi_install_gpe_raw_handler(NULL, ec->gpe,
-					  ACPI_GPE_EDGE_TRIGGERED,
-					  &acpi_ec_gpe_handler, ec);
-		/* This is not fatal as we can poll EC events */
-		if (ACPI_SUCCESS(status)) {
-			set_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags);
+	if (!test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags)) {
+		bool ready = false;
+
+		if (ec->gpe >= 0)
+			ready = install_gpe_event_handler(ec);
+		else if (ec->irq >= 0)
+			ready = install_gpio_irq_event_handler(ec);
+
+		if (ready) {
+			set_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags);
 			acpi_ec_leave_noirq(ec);
-			if (test_bit(EC_FLAGS_STARTED, &ec->flags) &&
-			    ec->reference_count >= 1)
-				acpi_ec_enable_gpe(ec, true);
 		}
+		/*
+		 * Failures to install an event handler are not fatal, because
+		 * the EC can be polled for events.
+		 */
 	}
 	/* EC is fully operational, allow queries */
 	acpi_ec_enable_event(ec);
@@ -1504,23 +1563,28 @@
 	 */
 	acpi_ec_stop(ec, false);
 
-	if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags)) {
-		if (ACPI_FAILURE(acpi_remove_gpe_handler(NULL, ec->gpe,
-					&acpi_ec_gpe_handler)))
+	if (test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags)) {
+		if (ec->gpe >= 0 &&
+		    ACPI_FAILURE(acpi_remove_gpe_handler(NULL, ec->gpe,
+				 &acpi_ec_gpe_handler)))
 			pr_err("failed to remove gpe handler\n");
-		clear_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags);
+
+		if (ec->irq >= 0)
+			free_irq(ec->irq, ec);
+
+		clear_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags);
 	}
-	if (test_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags)) {
+	if (test_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags)) {
 		acpi_ec_remove_query_handlers(ec, true, 0);
-		clear_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags);
+		clear_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags);
 	}
 }
 
-static int acpi_ec_setup(struct acpi_ec *ec, bool handle_events)
+static int acpi_ec_setup(struct acpi_ec *ec, struct acpi_device *device)
 {
 	int ret;
 
-	ret = ec_install_handlers(ec, handle_events);
+	ret = ec_install_handlers(ec, device);
 	if (ret)
 		return ret;
 
@@ -1531,8 +1595,8 @@
 	}
 
 	acpi_handle_info(ec->handle,
-			 "GPE=0x%x, EC_CMD/EC_SC=0x%lx, EC_DATA=0x%lx\n",
-			 ec->gpe, ec->command_addr, ec->data_addr);
+			 "GPE=0x%x, IRQ=%d, EC_CMD/EC_SC=0x%lx, EC_DATA=0x%lx\n",
+			 ec->gpe, ec->irq, ec->command_addr, ec->data_addr);
 	return ret;
 }
 
@@ -1577,7 +1641,7 @@
 		status = ec_parse_device(device->handle, 0, ec, NULL);
 		if (status != AE_CTRL_TERMINATE) {
 			ret = -EINVAL;
-			goto err_alloc;
+			goto err;
 		}
 
 		if (boot_ec && ec->command_addr == boot_ec->command_addr &&
@@ -1596,9 +1660,9 @@
 		}
 	}
 
-	ret = acpi_ec_setup(ec, true);
+	ret = acpi_ec_setup(ec, device);
 	if (ret)
-		goto err_query;
+		goto err;
 
 	if (ec == boot_ec)
 		acpi_handle_info(boot_ec->handle,
@@ -1619,12 +1683,10 @@
 	acpi_handle_debug(ec->handle, "enumerated.\n");
 	return 0;
 
-err_query:
-	if (ec != boot_ec)
-		acpi_ec_remove_query_handlers(ec, true, 0);
-err_alloc:
+err:
 	if (ec != boot_ec)
 		acpi_ec_free(ec);
+
 	return ret;
 }
 
@@ -1716,7 +1778,7 @@
 	 * At this point, the GPE is not fully initialized, so do not to
 	 * handle the events.
 	 */
-	ret = acpi_ec_setup(ec, false);
+	ret = acpi_ec_setup(ec, NULL);
 	if (ret) {
 		acpi_ec_free(ec);
 		return;
@@ -1889,14 +1951,21 @@
 		ec->command_addr = ecdt_ptr->control.address;
 		ec->data_addr = ecdt_ptr->data.address;
 	}
-	ec->gpe = ecdt_ptr->gpe;
+
+	/*
+	 * Ignore the GPE value on Reduced Hardware platforms.
+	 * Some products have this set to an erroneous value.
+	 */
+	if (!acpi_gbl_reduced_hardware)
+		ec->gpe = ecdt_ptr->gpe;
+
 	ec->handle = ACPI_ROOT_OBJECT;
 
 	/*
 	 * At this point, the namespace is not initialized, so do not find
 	 * the namespace objects, or handle the events.
 	 */
-	ret = acpi_ec_setup(ec, false);
+	ret = acpi_ec_setup(ec, NULL);
 	if (ret) {
 		acpi_ec_free(ec);
 		return;
@@ -1928,7 +1997,7 @@
 	 * masked at the low level without side effects.
 	 */
 	if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
-	    ec->reference_count >= 1)
+	    ec->gpe >= 0 && ec->reference_count >= 1)
 		acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE);
 
 	acpi_ec_enter_noirq(ec);
@@ -1943,7 +2012,7 @@
 	acpi_ec_leave_noirq(ec);
 
 	if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
-	    ec->reference_count >= 1)
+	    ec->gpe >= 0 && ec->reference_count >= 1)
 		acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_ENABLE);
 
 	return 0;
@@ -1976,13 +2045,26 @@
 	u32 ret;
 
 	if (!first_ec)
-		return false;
+		return acpi_any_gpe_status_set(U32_MAX);
 
+	/*
+	 * Report wakeup if the status bit is set for any enabled GPE other
+	 * than the EC one.
+	 */
+	if (acpi_any_gpe_status_set(first_ec->gpe))
+		return true;
+
+	/*
+	 * Dispatch the EC GPE in-band, but do not report wakeup in any case
+	 * to allow the caller to process events properly after that.
+	 */
 	ret = acpi_dispatch_gpe(NULL, first_ec->gpe);
-	if (ret == ACPI_INTERRUPT_HANDLED) {
+	if (ret == ACPI_INTERRUPT_HANDLED)
 		pm_pr_dbg("EC GPE dispatched\n");
-		return true;
-	}
+
+	/* Flush the event and query workqueues. */
+	acpi_ec_flush_work();
+
 	return false;
 }
 #endif /* CONFIG_PM_SLEEP */
@@ -2042,25 +2124,33 @@
 	.drv.pm = &acpi_ec_pm,
 };
 
-static inline int acpi_ec_query_init(void)
+static void acpi_ec_destroy_workqueues(void)
 {
-	if (!ec_query_wq) {
-		ec_query_wq = alloc_workqueue("kec_query", 0,
-					      ec_max_queries);
-		if (!ec_query_wq)
-			return -ENODEV;
+	if (ec_wq) {
+		destroy_workqueue(ec_wq);
+		ec_wq = NULL;
 	}
-	return 0;
-}
-
-static inline void acpi_ec_query_exit(void)
-{
 	if (ec_query_wq) {
 		destroy_workqueue(ec_query_wq);
 		ec_query_wq = NULL;
 	}
 }
 
+static int acpi_ec_init_workqueues(void)
+{
+	if (!ec_wq)
+		ec_wq = alloc_ordered_workqueue("kec", 0);
+
+	if (!ec_query_wq)
+		ec_query_wq = alloc_workqueue("kec_query", 0, ec_max_queries);
+
+	if (!ec_wq || !ec_query_wq) {
+		acpi_ec_destroy_workqueues();
+		return -ENODEV;
+	}
+	return 0;
+}
+
 static const struct dmi_system_id acpi_ec_no_wakeup[] = {
 	{
 		.ident = "Thinkpad X1 Carbon 6th",
@@ -2091,8 +2181,7 @@
 	int result;
 	int ecdt_fail, dsdt_fail;
 
-	/* register workqueue for _Qxx evaluations */
-	result = acpi_ec_query_init();
+	result = acpi_ec_init_workqueues();
 	if (result)
 		return result;
 
@@ -2123,6 +2212,6 @@
 {
 
 	acpi_bus_unregister_driver(&acpi_ec_driver);
-	acpi_ec_query_exit();
+	acpi_ec_destroy_workqueues();
 }
 #endif	/* 0 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/evged.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/evged.c
@@ -79,6 +79,8 @@
 	struct resource r;
 	struct acpi_resource_irq *p = &ares->data.irq;
 	struct acpi_resource_extended_irq *pext = &ares->data.extended_irq;
+	char ev_name[5];
+	u8 trigger;
 
 	if (ares->type == ACPI_RESOURCE_TYPE_END_TAG)
 		return AE_OK;
@@ -87,14 +89,28 @@
 		dev_err(dev, "unable to parse IRQ resource\n");
 		return AE_ERROR;
 	}
-	if (ares->type == ACPI_RESOURCE_TYPE_IRQ)
+	if (ares->type == ACPI_RESOURCE_TYPE_IRQ) {
 		gsi = p->interrupts[0];
-	else
+		trigger = p->triggering;
+	} else {
 		gsi = pext->interrupts[0];
+		trigger = pext->triggering;
+	}
 
 	irq = r.start;
 
-	if (ACPI_FAILURE(acpi_get_handle(handle, "_EVT", &evt_handle))) {
+	switch (gsi) {
+	case 0 ... 255:
+		sprintf(ev_name, "_%c%02X",
+			trigger == ACPI_EDGE_SENSITIVE ? 'E' : 'L', gsi);
+
+		if (ACPI_SUCCESS(acpi_get_handle(handle, ev_name, &evt_handle)))
+			break;
+		/* fall through */
+	default:
+		if (ACPI_SUCCESS(acpi_get_handle(handle, "_EVT", &evt_handle)))
+			break;
+
 		dev_err(dev, "cannot locate _EVT method\n");
 		return AE_ERROR;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/hmat/hmat.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/hmat/hmat.c
@@ -403,7 +403,8 @@
 		pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
 			p->flags, p->processor_PD, p->memory_PD);
 
-	if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
+	if ((hmat_revision == 1 && p->flags & ACPI_HMAT_MEMORY_PD_VALID) ||
+	    hmat_revision > 1) {
 		target = find_mem_target(p->memory_PD);
 		if (!target) {
 			pr_debug("HMAT: Memory Domain missing from SRAT\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/internal.h
@@ -97,7 +97,7 @@
 extern struct list_head acpi_bus_id_list;
 
 struct acpi_device_bus_id {
-	char bus_id[15];
+	const char *bus_id;
 	unsigned int instance_no;
 	struct list_head node;
 };
@@ -165,7 +165,8 @@
    -------------------------------------------------------------------------- */
 struct acpi_ec {
 	acpi_handle handle;
-	u32 gpe;
+	int gpe;
+	int irq;
 	unsigned long command_addr;
 	unsigned long data_addr;
 	bool global_lock;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/nfit/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/nfit/core.c
@@ -360,7 +360,7 @@
 
 static u8 nfit_dsm_revid(unsigned family, unsigned func)
 {
-	static const u8 revid_table[NVDIMM_FAMILY_MAX+1][32] = {
+	static const u8 revid_table[NVDIMM_FAMILY_MAX+1][NVDIMM_CMD_MAX+1] = {
 		[NVDIMM_FAMILY_INTEL] = {
 			[NVDIMM_INTEL_GET_MODES] = 2,
 			[NVDIMM_INTEL_GET_FWINFO] = 2,
@@ -386,7 +386,7 @@
 
 	if (family > NVDIMM_FAMILY_MAX)
 		return 0;
-	if (func > 31)
+	if (func > NVDIMM_CMD_MAX)
 		return 0;
 	id = revid_table[family][func];
 	if (id == 0)
@@ -492,7 +492,8 @@
 	 * Check for a valid command.  For ND_CMD_CALL, we also have to
 	 * make sure that the DSM function is supported.
 	 */
-	if (cmd == ND_CMD_CALL && !test_bit(func, &dsm_mask))
+	if (cmd == ND_CMD_CALL &&
+	    (func > NVDIMM_CMD_MAX || !test_bit(func, &dsm_mask)))
 		return -ENOTTY;
 	else if (!test_bit(cmd, &cmd_mask))
 		return -ENOTTY;
@@ -1552,7 +1553,7 @@
 					le16_to_cpu(nfit_dcr->dcr->code));
 			break;
 		}
-		if (rc != ENXIO)
+		if (rc != -ENXIO)
 			break;
 	}
 	mutex_unlock(&acpi_desc->init_mutex);
@@ -3499,7 +3500,8 @@
 	if (nvdimm && cmd == ND_CMD_CALL &&
 			call_pkg->nd_family == NVDIMM_FAMILY_INTEL) {
 		func = call_pkg->nd_command;
-		if ((1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK)
+		if (func > NVDIMM_CMD_MAX ||
+		    (1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK)
 			return -EOPNOTSUPP;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/nfit/nfit.h
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/nfit/nfit.h
@@ -34,6 +34,7 @@
 		| ACPI_NFIT_MEM_NOT_ARMED | ACPI_NFIT_MEM_MAP_FAILED)
 
 #define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_HYPERV
+#define NVDIMM_CMD_MAX 31
 
 #define NVDIMM_STANDARD_CMDMASK \
 (1 << ND_CMD_SMART | 1 << ND_CMD_SMART_THRESHOLD | 1 << ND_CMD_DIMM_FLAGS \
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/numa.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/numa.c
@@ -31,7 +31,7 @@
 
 int pxm_to_node(int pxm)
 {
-	if (pxm < 0)
+	if (pxm < 0 || pxm >= MAX_PXM_DOMAINS || numa_off)
 		return NUMA_NO_NODE;
 	return pxm_to_node_map[pxm];
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/osi.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/osi.c
@@ -468,6 +468,77 @@
 	},
 
 	/*
+	 * The following Lenovo models have a broken workaround in the
+	 * acpi_video backlight implementation to meet the Windows 8
+	 * requirement of 101 backlight levels. Reverting to pre-Win8
+	 * behavior fixes the problem.
+	 */
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad L430",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L430"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad T430",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad T430s",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430s"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad T530",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T530"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad W530",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W530"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad X1 Carbon",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X1 Carbon"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad X230",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X230"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad Edge E330",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Edge E330"),
+		},
+	},
+
+	/*
 	 * BIOS invocation of _OSI(Linux) is almost always a BIOS bug.
 	 * Linux ignores it, except for the machines enumerated below.
 	 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/osl.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/osl.c
@@ -374,19 +374,21 @@
 }
 EXPORT_SYMBOL_GPL(acpi_os_map_memory);
 
-static void acpi_os_drop_map_ref(struct acpi_ioremap *map)
+/* Must be called with mutex_lock(&acpi_ioremap_lock) */
+static unsigned long acpi_os_drop_map_ref(struct acpi_ioremap *map)
 {
-	if (!--map->refcount)
+	unsigned long refcount = --map->refcount;
+
+	if (!refcount)
 		list_del_rcu(&map->list);
+	return refcount;
 }
 
 static void acpi_os_map_cleanup(struct acpi_ioremap *map)
 {
-	if (!map->refcount) {
-		synchronize_rcu_expedited();
-		acpi_unmap(map->phys, map->virt);
-		kfree(map);
-	}
+	synchronize_rcu_expedited();
+	acpi_unmap(map->phys, map->virt);
+	kfree(map);
 }
 
 /**
@@ -406,6 +408,7 @@
 void __ref acpi_os_unmap_iomem(void __iomem *virt, acpi_size size)
 {
 	struct acpi_ioremap *map;
+	unsigned long refcount;
 
 	if (!acpi_permanent_mmap) {
 		__acpi_unmap_table(virt, size);
@@ -419,10 +422,11 @@
 		WARN(true, PREFIX "%s: bad address %p\n", __func__, virt);
 		return;
 	}
-	acpi_os_drop_map_ref(map);
+	refcount = acpi_os_drop_map_ref(map);
 	mutex_unlock(&acpi_ioremap_lock);
 
-	acpi_os_map_cleanup(map);
+	if (!refcount)
+		acpi_os_map_cleanup(map);
 }
 EXPORT_SYMBOL_GPL(acpi_os_unmap_iomem);
 
@@ -457,6 +461,7 @@
 {
 	u64 addr;
 	struct acpi_ioremap *map;
+	unsigned long refcount;
 
 	if (gas->space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY)
 		return;
@@ -472,10 +477,11 @@
 		mutex_unlock(&acpi_ioremap_lock);
 		return;
 	}
-	acpi_os_drop_map_ref(map);
+	refcount = acpi_os_drop_map_ref(map);
 	mutex_unlock(&acpi_ioremap_lock);
 
-	acpi_os_map_cleanup(map);
+	if (!refcount)
+		acpi_os_map_cleanup(map);
 }
 EXPORT_SYMBOL(acpi_os_unmap_generic_address);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/processor_throttling.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/processor_throttling.c
@@ -897,13 +897,6 @@
 	return pr->throttling.acpi_processor_get_throttling(pr);
 }
 
-static int call_on_cpu(int cpu, long (*fn)(void *), void *arg, bool direct)
-{
-	if (direct || (is_percpu_thread() && cpu == smp_processor_id()))
-		return fn(arg);
-	return work_on_cpu(cpu, fn, arg);
-}
-
 static int acpi_processor_get_throttling(struct acpi_processor *pr)
 {
 	if (!pr)
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/property.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/property.c
@@ -794,9 +794,6 @@
 	const union acpi_object *obj;
 	int ret;
 
-	if (!val)
-		return -EINVAL;
-
 	if (proptype >= DEV_PROP_U8 && proptype <= DEV_PROP_U64) {
 		ret = acpi_data_get_property(data, propname, ACPI_TYPE_INTEGER, &obj);
 		if (ret)
@@ -806,28 +803,43 @@
 		case DEV_PROP_U8:
 			if (obj->integer.value > U8_MAX)
 				return -EOVERFLOW;
-			*(u8 *)val = obj->integer.value;
+
+			if (val)
+				*(u8 *)val = obj->integer.value;
+
 			break;
 		case DEV_PROP_U16:
 			if (obj->integer.value > U16_MAX)
 				return -EOVERFLOW;
-			*(u16 *)val = obj->integer.value;
+
+			if (val)
+				*(u16 *)val = obj->integer.value;
+
 			break;
 		case DEV_PROP_U32:
 			if (obj->integer.value > U32_MAX)
 				return -EOVERFLOW;
-			*(u32 *)val = obj->integer.value;
+
+			if (val)
+				*(u32 *)val = obj->integer.value;
+
 			break;
 		default:
-			*(u64 *)val = obj->integer.value;
+			if (val)
+				*(u64 *)val = obj->integer.value;
+
 			break;
 		}
+
+		if (!val)
+			return 1;
 	} else if (proptype == DEV_PROP_STRING) {
 		ret = acpi_data_get_property(data, propname, ACPI_TYPE_STRING, &obj);
 		if (ret)
 			return ret;
 
-		*(char **)val = obj->string.pointer;
+		if (val)
+			*(char **)val = obj->string.pointer;
 
 		return 1;
 	} else {
@@ -841,7 +853,7 @@
 {
 	int ret;
 
-	if (!adev)
+	if (!adev || !val)
 		return -EINVAL;
 
 	ret = acpi_data_prop_read_single(&adev->data, propname, proptype, val);
@@ -935,10 +947,20 @@
 	const union acpi_object *items;
 	int ret;
 
-	if (val && nval == 1) {
+	if (nval == 1 || !val) {
 		ret = acpi_data_prop_read_single(data, propname, proptype, val);
-		if (ret >= 0)
+		/*
+		 * The overflow error means that the property is there and it is
+		 * single-value, but its type does not match, so return.
+		 */
+		if (ret >= 0 || ret == -EOVERFLOW)
 			return ret;
+
+		/*
+		 * Reading this property as a single-value one failed, but its
+		 * value may still be represented as one-element array, so
+		 * continue.
+		 */
 	}
 
 	ret = acpi_data_get_property_array(data, propname, ACPI_TYPE_ANY, &obj);
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/resource.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/resource.c
@@ -541,7 +541,7 @@
 		ret = c->preproc(ares, c->preproc_data);
 		if (ret < 0) {
 			c->error = ret;
-			return AE_CTRL_TERMINATE;
+			return AE_ABORT_METHOD;
 		} else if (ret > 0) {
 			return AE_OK;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/scan.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/scan.c
@@ -487,6 +487,7 @@
 				acpi_device_bus_id->instance_no--;
 			else {
 				list_del(&acpi_device_bus_id->node);
+				kfree_const(acpi_device_bus_id->bus_id);
 				kfree(acpi_device_bus_id);
 			}
 			break;
@@ -586,6 +587,8 @@
 	if (!device)
 		return -EINVAL;
 
+	*device = NULL;
+
 	status = acpi_get_data_full(handle, acpi_scan_drop_device,
 				    (void **)device, callback);
 	if (ACPI_FAILURE(status) || !*device) {
@@ -675,7 +678,14 @@
 	}
 	if (!found) {
 		acpi_device_bus_id = new_bus_id;
-		strcpy(acpi_device_bus_id->bus_id, acpi_device_hid(device));
+		acpi_device_bus_id->bus_id =
+			kstrdup_const(acpi_device_hid(device), GFP_KERNEL);
+		if (!acpi_device_bus_id->bus_id) {
+			pr_err(PREFIX "Memory allocation error for bus id\n");
+			result = -ENOMEM;
+			goto err_free_new_bus_id;
+		}
+
 		acpi_device_bus_id->instance_no = 0;
 		list_add_tail(&acpi_device_bus_id->node, &acpi_bus_id_list);
 	}
@@ -710,6 +720,11 @@
 	if (device->parent)
 		list_del(&device->node);
 	list_del(&device->wakeup_list);
+
+ err_free_new_bus_id:
+	if (!found)
+		kfree(new_bus_id);
+
 	mutex_unlock(&acpi_device_lock);
 
  err_detach:
@@ -919,12 +934,9 @@
 
 		if (buffer.length && package
 		    && package->type == ACPI_TYPE_PACKAGE
-		    && package->package.count) {
-			int err = acpi_extract_power_resources(package, 0,
-							       &ps->resources);
-			if (!err)
-				device->power.flags.power_resources = 1;
-		}
+		    && package->package.count)
+			acpi_extract_power_resources(package, 0, &ps->resources);
+
 		ACPI_FREE(buffer.pointer);
 	}
 
@@ -971,14 +983,27 @@
 		acpi_bus_init_power_state(device, i);
 
 	INIT_LIST_HEAD(&device->power.states[ACPI_STATE_D3_COLD].resources);
-	if (!list_empty(&device->power.states[ACPI_STATE_D3_HOT].resources))
-		device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
 
-	/* Set defaults for D0 and D3hot states (always valid) */
+	/* Set the defaults for D0 and D3hot (always supported). */
 	device->power.states[ACPI_STATE_D0].flags.valid = 1;
 	device->power.states[ACPI_STATE_D0].power = 100;
 	device->power.states[ACPI_STATE_D3_HOT].flags.valid = 1;
 
+	/*
+	 * Use power resources only if the D0 list of them is populated, because
+	 * some platforms may provide _PR3 only to indicate D3cold support and
+	 * in those cases the power resources list returned by it may be bogus.
+	 */
+	if (!list_empty(&device->power.states[ACPI_STATE_D0].resources)) {
+		device->power.flags.power_resources = 1;
+		/*
+		 * D3cold is supported if the D3hot list of power resources is
+		 * not empty.
+		 */
+		if (!list_empty(&device->power.states[ACPI_STATE_D3_HOT].resources))
+			device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
+	}
+
 	if (acpi_bus_init_power(device))
 		device->flags.power_manageable = 0;
 }
@@ -2174,6 +2199,7 @@
 	acpi_pci_root_init();
 	acpi_pci_link_init();
 	acpi_processor_init();
+	acpi_platform_init();
 	acpi_lpss_init();
 	acpi_apd_init();
 	acpi_cmos_rtc_init();
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/sleep.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/sleep.c
@@ -977,23 +977,38 @@
 	return 0;
 }
 
-static void acpi_s2idle_wake(void)
+static bool acpi_s2idle_wake(void)
 {
-	/*
-	 * If IRQD_WAKEUP_ARMED is set for the SCI at this point, the SCI has
-	 * not triggered while suspended, so bail out.
-	 */
-	if (!acpi_sci_irq_valid() ||
-	    irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq)))
-		return;
+	if (!acpi_sci_irq_valid())
+		return pm_wakeup_pending();
 
-	/*
-	 * If there are EC events to process, the wakeup may be a spurious one
-	 * coming from the EC.
-	 */
-	if (acpi_ec_dispatch_gpe()) {
+	while (pm_wakeup_pending()) {
 		/*
-		 * Cancel the wakeup and process all pending events in case
+		 * If IRQD_WAKEUP_ARMED is set for the SCI at this point, the
+		 * SCI has not triggered while suspended, so bail out (the
+		 * wakeup is pending anyway and the SCI is not the source of
+		 * it).
+		 */
+		if (irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq)))
+			return true;
+
+		/*
+		 * If the status bit of any enabled fixed event is set, the
+		 * wakeup is regarded as valid.
+		 */
+		if (acpi_any_fixed_event_status_set())
+			return true;
+
+		/* Check wakeups from drivers sharing the SCI. */
+		if (acpi_check_wakeup_handlers())
+			return true;
+
+		/* Check non-EC GPE wakeups and dispatch the EC GPE. */
+		if (acpi_ec_dispatch_gpe())
+			return true;
+
+		/*
+		 * Cancel the SCI wakeup and process all pending events in case
 		 * there are any wakeup ones in there.
 		 *
 		 * Note that if any non-EC GPEs are active at this point, the
@@ -1001,16 +1016,21 @@
 		 * should be missed by canceling the wakeup here.
 		 */
 		pm_system_cancel_wakeup();
+		acpi_os_wait_events_complete();
+
 		/*
-		 * The EC driver uses the system workqueue and an additional
-		 * special one, so those need to be flushed too.
+		 * The SCI is in the "suspended" state now and it cannot produce
+		 * new wakeup events till the rearming below, so if any of them
+		 * are pending here, they must be resulting from the processing
+		 * of EC events above or coming from somewhere else.
 		 */
-		acpi_os_wait_events_complete(); /* synchronize EC GPE processing */
-		acpi_ec_flush_work();
-		acpi_os_wait_events_complete(); /* synchronize Notify handling */
+		if (pm_wakeup_pending())
+			return true;
 
 		rearm_wake_irq(acpi_sci_irq);
 	}
+
+	return false;
 }
 
 static void acpi_s2idle_restore_early(void)
@@ -1024,6 +1044,14 @@
 
 static void acpi_s2idle_restore(void)
 {
+	/*
+	 * Drain pending events before restoring the working-state configuration
+	 * of GPEs.
+	 */
+	acpi_os_wait_events_complete(); /* synchronize GPE processing */
+	acpi_ec_flush_work(); /* flush the EC driver's workqueues */
+	acpi_os_wait_events_complete(); /* synchronize Notify handling */
+
 	s2idle_wakeup = false;
 
 	acpi_enable_all_runtime_gpes();
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/sleep.h
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/sleep.h
@@ -2,6 +2,7 @@
 
 extern void acpi_enable_wakeup_devices(u8 sleep_state);
 extern void acpi_disable_wakeup_devices(u8 sleep_state);
+extern bool acpi_check_wakeup_handlers(void);
 
 extern struct list_head acpi_wakeup_device_list;
 extern struct mutex acpi_device_lock;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/sysfs.c
@@ -446,7 +446,7 @@
 	base = acpi_os_map_memory(data_attr->addr, data_attr->attr.size);
 	if (!base)
 		return -ENOMEM;
-	rc = memory_read_from_buffer(buf, count, &offset, base,
+	rc = memory_read_from_io_buffer(buf, count, &offset, base,
 				     data_attr->attr.size);
 	acpi_os_unmap_memory(base, data_attr->attr.size);
 
@@ -819,14 +819,14 @@
  * interface:
  *   echo unmask > /sys/firmware/acpi/interrupts/gpe00
  */
-#define ACPI_MASKABLE_GPE_MAX	0xFF
+#define ACPI_MASKABLE_GPE_MAX	0x100
 static DECLARE_BITMAP(acpi_masked_gpes_map, ACPI_MASKABLE_GPE_MAX) __initdata;
 
 static int __init acpi_gpe_set_masked_gpes(char *val)
 {
 	u8 gpe;
 
-	if (kstrtou8(val, 0, &gpe) || gpe > ACPI_MASKABLE_GPE_MAX)
+	if (kstrtou8(val, 0, &gpe))
 		return -EINVAL;
 	set_bit(gpe, acpi_masked_gpes_map);
 
@@ -838,7 +838,7 @@
 {
 	acpi_handle handle;
 	acpi_status status;
-	u8 gpe;
+	u16 gpe;
 
 	for_each_set_bit(gpe, acpi_masked_gpes_map, ACPI_MASKABLE_GPE_MAX) {
 		status = acpi_get_gpe_device(gpe, &handle);
@@ -938,13 +938,13 @@
 }
 
 static ssize_t
-acpi_show_profile(struct device *dev, struct device_attribute *attr,
+acpi_show_profile(struct kobject *kobj, struct kobj_attribute *attr,
 		  char *buf)
 {
 	return sprintf(buf, "%d\n", acpi_gbl_FADT.preferred_profile);
 }
 
-static const struct device_attribute pm_profile_attr =
+static const struct kobj_attribute pm_profile_attr =
 	__ATTR(pm_profile, S_IRUGO, acpi_show_profile, NULL);
 
 static ssize_t hotplug_enabled_show(struct kobject *kobj,
@@ -993,8 +993,10 @@
 
 	error = kobject_init_and_add(&hotplug->kobj,
 		&acpi_hotplug_profile_ktype, hotplug_kobj, "%s", name);
-	if (error)
+	if (error) {
+		kobject_put(&hotplug->kobj);
 		goto err_out;
+	}
 
 	kobject_uevent(&hotplug->kobj, KOBJ_ADD);
 	return;
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/thermal.c
@@ -174,6 +174,8 @@
 	int tz_enabled;
 	int kelvin_offset;
 	struct work_struct thermal_check_work;
+	struct mutex thermal_check_lock;
+	refcount_t thermal_check_count;
 };
 
 /* --------------------------------------------------------------------------
@@ -494,17 +496,6 @@
 	return 0;
 }
 
-static void acpi_thermal_check(void *data)
-{
-	struct acpi_thermal *tz = data;
-
-	if (!tz->tz_enabled)
-		return;
-
-	thermal_zone_device_update(tz->thermal_zone,
-				   THERMAL_EVENT_UNSPECIFIED);
-}
-
 /* sys I/F for generic thermal sysfs support */
 
 static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
@@ -538,6 +529,8 @@
 	return 0;
 }
 
+static void acpi_thermal_check_fn(struct work_struct *work);
+
 static int thermal_set_mode(struct thermal_zone_device *thermal,
 				enum thermal_device_mode mode)
 {
@@ -563,7 +556,7 @@
 		ACPI_DEBUG_PRINT((ACPI_DB_INFO,
 			"%s kernel ACPI thermal control\n",
 			tz->tz_enabled ? "Enable" : "Disable"));
-		acpi_thermal_check(tz);
+		acpi_thermal_check_fn(&tz->thermal_check_work);
 	}
 	return 0;
 }
@@ -932,6 +925,12 @@
                                  Driver Interface
    -------------------------------------------------------------------------- */
 
+static void acpi_queue_thermal_check(struct acpi_thermal *tz)
+{
+	if (!work_pending(&tz->thermal_check_work))
+		queue_work(acpi_thermal_pm_queue, &tz->thermal_check_work);
+}
+
 static void acpi_thermal_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_thermal *tz = acpi_driver_data(device);
@@ -942,17 +941,17 @@
 
 	switch (event) {
 	case ACPI_THERMAL_NOTIFY_TEMPERATURE:
-		acpi_thermal_check(tz);
+		acpi_queue_thermal_check(tz);
 		break;
 	case ACPI_THERMAL_NOTIFY_THRESHOLDS:
 		acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS);
-		acpi_thermal_check(tz);
+		acpi_queue_thermal_check(tz);
 		acpi_bus_generate_netlink_event(device->pnp.device_class,
 						  dev_name(&device->dev), event, 0);
 		break;
 	case ACPI_THERMAL_NOTIFY_DEVICES:
 		acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES);
-		acpi_thermal_check(tz);
+		acpi_queue_thermal_check(tz);
 		acpi_bus_generate_netlink_event(device->pnp.device_class,
 						  dev_name(&device->dev), event, 0);
 		break;
@@ -1052,7 +1051,27 @@
 {
 	struct acpi_thermal *tz = container_of(work, struct acpi_thermal,
 					       thermal_check_work);
-	acpi_thermal_check(tz);
+
+	if (!tz->tz_enabled)
+		return;
+	/*
+	 * In general, it is not sufficient to check the pending bit, because
+	 * subsequent instances of this function may be queued after one of them
+	 * has started running (e.g. if _TMP sleeps).  Avoid bailing out if just
+	 * one of them is running, though, because it may have done the actual
+	 * check some time ago, so allow at least one of them to block on the
+	 * mutex while another one is running the update.
+	 */
+	if (!refcount_dec_not_one(&tz->thermal_check_count))
+		return;
+
+	mutex_lock(&tz->thermal_check_lock);
+
+	thermal_zone_device_update(tz->thermal_zone, THERMAL_EVENT_UNSPECIFIED);
+
+	refcount_inc(&tz->thermal_check_count);
+
+	mutex_unlock(&tz->thermal_check_lock);
 }
 
 static int acpi_thermal_add(struct acpi_device *device)
@@ -1084,6 +1103,8 @@
 	if (result)
 		goto free_memory;
 
+	refcount_set(&tz->thermal_check_count, 3);
+	mutex_init(&tz->thermal_check_lock);
 	INIT_WORK(&tz->thermal_check_work, acpi_thermal_check_fn);
 
 	pr_info(PREFIX "%s [%s] (%ld C)\n", acpi_device_name(device),
@@ -1149,7 +1170,7 @@
 		tz->state.active |= tz->trips.active[i].flags.enabled;
 	}
 
-	queue_work(acpi_thermal_pm_queue, &tz->thermal_check_work);
+	acpi_queue_thermal_check(tz);
 
 	return AE_OK;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/video_detect.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/video_detect.c
@@ -143,6 +143,13 @@
 	},
 	{
 	.callback = video_detect_force_vendor,
+	.ident = "GIGABYTE GB-BXBT-2807",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "GB-BXBT-2807"),
+		},
+	},
+	{
 	.ident = "Sony VPCEH3U1E",
 	.matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
@@ -282,6 +289,15 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "530U4E/540U4E"),
 		},
 	},
+	/* https://bugs.launchpad.net/bugs/1894667 */
+	{
+	 .callback = video_detect_force_video,
+	 .ident = "HP 635 Notebook",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "HP 635 Notebook PC"),
+		},
+	},
 
 	/* Non win8 machines which need native backlight nevertheless */
 	{
@@ -303,6 +319,22 @@
 		},
 	},
 	{
+	 .callback = video_detect_force_native,
+	 .ident = "Lenovo E41-25",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "81FS"),
+		},
+	},
+	{
+	 .callback = video_detect_force_native,
+	 .ident = "Lenovo E41-45",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "82BK"),
+		},
+	},
+	{
 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1217249 */
 	 .callback = video_detect_force_native,
 	 .ident = "Apple MacBook Pro 12,1",
@@ -337,6 +369,30 @@
 		},
 	},
 	{
+	 .callback = video_detect_force_native,
+	 .ident = "Acer Aspire 5738z",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5738"),
+		DMI_MATCH(DMI_BOARD_NAME, "JV50"),
+		},
+	},
+	{
+	 /* https://bugzilla.kernel.org/show_bug.cgi?id=207835 */
+	 .callback = video_detect_force_native,
+	 .ident = "Acer TravelMate 5735Z",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5735Z"),
+		DMI_MATCH(DMI_BOARD_NAME, "BA51_MV"),
+		},
+	},
+
+	/*
+	 * Desktops which falsely report a backlight and which our heuristics
+	 * for this do not catch.
+	 */
+	{
 	 .callback = video_detect_force_none,
 	 .ident = "Dell OptiPlex 9020M",
 	 .matches = {
@@ -344,6 +400,14 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 9020M"),
 		},
 	},
+	{
+	 .callback = video_detect_force_none,
+	 .ident = "MSI MS-7721",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "MSI"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "MS-7721"),
+		},
+	},
 	{ },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/acpi/wakeup.c
+++ linux-gkeop-5.4-5.4.0/drivers/acpi/wakeup.c
@@ -12,6 +12,15 @@
 #include "internal.h"
 #include "sleep.h"
 
+struct acpi_wakeup_handler {
+	struct list_head list_node;
+	bool (*wakeup)(void *context);
+	void *context;
+};
+
+static LIST_HEAD(acpi_wakeup_handler_head);
+static DEFINE_MUTEX(acpi_wakeup_handler_mutex);
+
 /*
  * We didn't lock acpi_device_lock in the file, because it invokes oops in
  * suspend/resume and isn't really required as this is called in S-state. At
@@ -96,3 +105,75 @@
 	mutex_unlock(&acpi_device_lock);
 	return 0;
 }
+
+/**
+ * acpi_register_wakeup_handler - Register wakeup handler
+ * @wake_irq: The IRQ through which the device may receive wakeups
+ * @wakeup:   Wakeup-handler to call when the SCI has triggered a wakeup
+ * @context:  Context to pass to the handler when calling it
+ *
+ * Drivers which may share an IRQ with the SCI can use this to register
+ * a handler which returns true when the device they are managing wants
+ * to trigger a wakeup.
+ */
+int acpi_register_wakeup_handler(int wake_irq, bool (*wakeup)(void *context),
+				 void *context)
+{
+	struct acpi_wakeup_handler *handler;
+
+	/*
+	 * If the device is not sharing its IRQ with the SCI, there is no
+	 * need to register the handler.
+	 */
+	if (!acpi_sci_irq_valid() || wake_irq != acpi_sci_irq)
+		return 0;
+
+	handler = kmalloc(sizeof(*handler), GFP_KERNEL);
+	if (!handler)
+		return -ENOMEM;
+
+	handler->wakeup = wakeup;
+	handler->context = context;
+
+	mutex_lock(&acpi_wakeup_handler_mutex);
+	list_add(&handler->list_node, &acpi_wakeup_handler_head);
+	mutex_unlock(&acpi_wakeup_handler_mutex);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_register_wakeup_handler);
+
+/**
+ * acpi_unregister_wakeup_handler - Unregister wakeup handler
+ * @wakeup:   Wakeup-handler passed to acpi_register_wakeup_handler()
+ * @context:  Context passed to acpi_register_wakeup_handler()
+ */
+void acpi_unregister_wakeup_handler(bool (*wakeup)(void *context),
+				    void *context)
+{
+	struct acpi_wakeup_handler *handler;
+
+	mutex_lock(&acpi_wakeup_handler_mutex);
+	list_for_each_entry(handler, &acpi_wakeup_handler_head, list_node) {
+		if (handler->wakeup == wakeup && handler->context == context) {
+			list_del(&handler->list_node);
+			kfree(handler);
+			break;
+		}
+	}
+	mutex_unlock(&acpi_wakeup_handler_mutex);
+}
+EXPORT_SYMBOL_GPL(acpi_unregister_wakeup_handler);
+
+bool acpi_check_wakeup_handlers(void)
+{
+	struct acpi_wakeup_handler *handler;
+
+	/* No need to lock, nothing else is running when we're called. */
+	list_for_each_entry(handler, &acpi_wakeup_handler_head, list_node) {
+		if (handler->wakeup(handler->context))
+			return true;
+	}
+
+	return false;
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/amba/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/amba/bus.c
@@ -299,10 +299,11 @@
 {
 	struct amba_device *pcdev = to_amba_device(dev);
 	struct amba_driver *drv = to_amba_driver(dev->driver);
-	int ret;
+	int ret = 0;
 
 	pm_runtime_get_sync(dev);
-	ret = drv->remove(pcdev);
+	if (drv->remove)
+		ret = drv->remove(pcdev);
 	pm_runtime_put_noidle(dev);
 
 	/* Undo the runtime PM settings in amba_probe() */
@@ -319,7 +320,9 @@
 static void amba_shutdown(struct device *dev)
 {
 	struct amba_driver *drv = to_amba_driver(dev->driver);
-	drv->shutdown(to_amba_device(dev));
+
+	if (drv->shutdown)
+		drv->shutdown(to_amba_device(dev));
 }
 
 /**
@@ -332,12 +335,13 @@
  */
 int amba_driver_register(struct amba_driver *drv)
 {
-	drv->drv.bus = &amba_bustype;
+	if (!drv->probe)
+		return -EINVAL;
 
-#define SETFN(fn)	if (drv->fn) drv->drv.fn = amba_##fn
-	SETFN(probe);
-	SETFN(remove);
-	SETFN(shutdown);
+	drv->drv.bus = &amba_bustype;
+	drv->drv.probe = amba_probe;
+	drv->drv.remove = amba_remove;
+	drv->drv.shutdown = amba_shutdown;
 
 	return driver_register(&drv->drv);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/android/Kconfig
@@ -9,7 +9,7 @@
 if ANDROID
 
 config ANDROID_BINDER_IPC
-	bool "Android Binder IPC Driver"
+	tristate "Android Binder IPC Driver"
 	depends on MMU
 	default n
 	---help---
@@ -21,8 +21,8 @@
 	  between said processes.
 
 config ANDROID_BINDERFS
-	bool "Android Binderfs filesystem"
-	depends on ANDROID_BINDER_IPC
+	tristate "Android Binderfs filesystem"
+	depends on (ANDROID_BINDER_IPC=y) || (ANDROID_BINDER_IPC=m && m)
 	default n
 	---help---
 	  Binderfs is a pseudo-filesystem for the Android Binder IPC driver
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/android/Makefile
@@ -1,6 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0-only
 ccflags-y += -I$(src)			# needed for trace events
 
-obj-$(CONFIG_ANDROID_BINDERFS)		+= binderfs.o
-obj-$(CONFIG_ANDROID_BINDER_IPC)	+= binder.o binder_alloc.o
-obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
+binder_linux-y := binder.o binder_alloc.o
+obj-$(CONFIG_ANDROID_BINDER_IPC) += binder_linux.o
+binder_linux-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
+binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
+
+# binder-$(CONFIG_ANDROID_BINDER_IPC) := binder.o binder_alloc.o
+# binder-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/binder.c
+++ linux-gkeop-5.4-5.4.0/drivers/android/binder.c
@@ -227,7 +227,7 @@
 struct binder_work {
 	struct list_head entry;
 
-	enum {
+	enum binder_work_type {
 		BINDER_WORK_TRANSACTION = 1,
 		BINDER_WORK_TRANSACTION_COMPLETE,
 		BINDER_WORK_RETURN_ERROR,
@@ -889,27 +889,6 @@
 	return w;
 }
 
-/**
- * binder_dequeue_work_head() - Dequeues the item at head of list
- * @proc:         binder_proc associated with list
- * @list:         list to dequeue head
- *
- * Removes the head of the list if there are items on the list
- *
- * Return: pointer dequeued binder_work, NULL if list was empty
- */
-static struct binder_work *binder_dequeue_work_head(
-					struct binder_proc *proc,
-					struct list_head *list)
-{
-	struct binder_work *w;
-
-	binder_inner_proc_lock(proc);
-	w = binder_dequeue_work_head_ilocked(list);
-	binder_inner_proc_unlock(proc);
-	return w;
-}
-
 static void
 binder_defer_work(struct binder_proc *proc, enum binder_deferred_state defer);
 static void binder_free_thread(struct binder_thread *thread);
@@ -2347,8 +2326,6 @@
 			 * file is done when the transaction is torn
 			 * down.
 			 */
-			WARN_ON(failed_at &&
-				proc->tsk == current->group_leader);
 		} break;
 		case BINDER_TYPE_PTR:
 			/*
@@ -2984,6 +2961,12 @@
 			goto err_dead_binder;
 		}
 		e->to_node = target_node->debug_id;
+		if (WARN_ON(proc == target_proc)) {
+			return_error = BR_FAILED_REPLY;
+			return_error_param = -EINVAL;
+			return_error_line = __LINE__;
+			goto err_invalid_target_handle;
+		}
 		if (security_binder_transaction(proc->tsk,
 						target_proc->tsk) < 0) {
 			return_error = BR_FAILED_REPLY;
@@ -3167,6 +3150,7 @@
 	t->buffer->debug_id = t->debug_id;
 	t->buffer->transaction = t;
 	t->buffer->target_node = target_node;
+	t->buffer->clear_on_free = !!(t->flags & TF_CLEAR_BUF);
 	trace_binder_transaction_alloc_buf(t->buffer);
 
 	if (binder_alloc_copy_user_to_buffer(
@@ -3314,7 +3298,7 @@
 			binder_size_t parent_offset;
 			struct binder_fd_array_object *fda =
 				to_binder_fd_array_object(hdr);
-			size_t num_valid = (buffer_offset - off_start_offset) *
+			size_t num_valid = (buffer_offset - off_start_offset) /
 						sizeof(binder_size_t);
 			struct binder_buffer_object *parent =
 				binder_validate_ptr(target_proc, t->buffer,
@@ -3388,7 +3372,7 @@
 				t->buffer->user_data + sg_buf_offset;
 			sg_buf_offset += ALIGN(bp->length, sizeof(u64));
 
-			num_valid = (buffer_offset - off_start_offset) *
+			num_valid = (buffer_offset - off_start_offset) /
 					sizeof(binder_size_t);
 			ret = binder_fixup_parent(t, thread, bp,
 						  off_start_offset,
@@ -3637,10 +3621,17 @@
 				struct binder_node *ctx_mgr_node;
 				mutex_lock(&context->context_mgr_node_lock);
 				ctx_mgr_node = context->binder_context_mgr_node;
-				if (ctx_mgr_node)
+				if (ctx_mgr_node) {
+					if (ctx_mgr_node->proc == proc) {
+						binder_user_error("%d:%d context manager tried to acquire desc 0\n",
+								  proc->pid, thread->pid);
+						mutex_unlock(&context->context_mgr_node_lock);
+						return -EINVAL;
+					}
 					ret = binder_inc_ref_for_node(
 							proc, ctx_mgr_node,
 							strong, NULL, &rdata);
+				}
 				mutex_unlock(&context->context_mgr_node_lock);
 			}
 			if (ret)
@@ -4578,13 +4569,17 @@
 				struct list_head *list)
 {
 	struct binder_work *w;
+	enum binder_work_type wtype;
 
 	while (1) {
-		w = binder_dequeue_work_head(proc, list);
+		binder_inner_proc_lock(proc);
+		w = binder_dequeue_work_head_ilocked(list);
+		wtype = w ? w->type : 0;
+		binder_inner_proc_unlock(proc);
 		if (!w)
 			return;
 
-		switch (w->type) {
+		switch (wtype) {
 		case BINDER_WORK_TRANSACTION: {
 			struct binder_transaction *t;
 
@@ -4618,9 +4613,11 @@
 			kfree(death);
 			binder_stats_deleted(BINDER_STAT_DEATH);
 		} break;
+		case BINDER_WORK_NODE:
+			break;
 		default:
 			pr_err("unexpected work type, %d, not freed\n",
-			       w->type);
+			       wtype);
 			break;
 		}
 	}
@@ -4688,8 +4685,15 @@
 
 static void binder_free_proc(struct binder_proc *proc)
 {
+	struct binder_device *device;
+
 	BUG_ON(!list_empty(&proc->todo));
 	BUG_ON(!list_empty(&proc->delivered_death));
+	device = container_of(proc->context, struct binder_device, context);
+	if (refcount_dec_and_test(&device->ref)) {
+		kfree(proc->context->name);
+		kfree(device);
+	}
 	binder_alloc_deferred_release(&proc->alloc);
 	put_task_struct(proc->tsk);
 	binder_stats_deleted(BINDER_STAT_PROC);
@@ -5203,10 +5207,11 @@
 
 static int binder_open(struct inode *nodp, struct file *filp)
 {
-	struct binder_proc *proc;
+	struct binder_proc *proc, *itr;
 	struct binder_device *binder_dev;
 	struct binderfs_info *info;
 	struct dentry *binder_binderfs_dir_entry_proc = NULL;
+	bool existing_pid = false;
 
 	binder_debug(BINDER_DEBUG_OPEN_CLOSE, "%s: %d:%d\n", __func__,
 		     current->group_leader->pid, current->pid);
@@ -5229,6 +5234,7 @@
 		binder_dev = container_of(filp->private_data,
 					  struct binder_device, miscdev);
 	}
+	refcount_inc(&binder_dev->ref);
 	proc->context = &binder_dev->context;
 	binder_alloc_init(&proc->alloc);
 
@@ -5239,19 +5245,24 @@
 	filp->private_data = proc;
 
 	mutex_lock(&binder_procs_lock);
+	hlist_for_each_entry(itr, &binder_procs, proc_node) {
+		if (itr->pid == proc->pid) {
+			existing_pid = true;
+			break;
+		}
+	}
 	hlist_add_head(&proc->proc_node, &binder_procs);
 	mutex_unlock(&binder_procs_lock);
 
-	if (binder_debugfs_dir_entry_proc) {
+	if (binder_debugfs_dir_entry_proc && !existing_pid) {
 		char strbuf[11];
 
 		snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
 		/*
-		 * proc debug entries are shared between contexts, so
-		 * this will fail if the process tries to open the driver
-		 * again with a different context. The priting code will
-		 * anyway print all contexts that a given PID has, so this
-		 * is not a problem.
+		 * proc debug entries are shared between contexts.
+		 * Only create for the first PID to avoid debugfs log spamming
+		 * The printing code will anyway print all contexts for a given
+		 * PID so this is not a problem.
 		 */
 		proc->debugfs_entry = debugfs_create_file(strbuf, 0444,
 			binder_debugfs_dir_entry_proc,
@@ -5259,19 +5270,16 @@
 			&proc_fops);
 	}
 
-	if (binder_binderfs_dir_entry_proc) {
+	if (binder_binderfs_dir_entry_proc && !existing_pid) {
 		char strbuf[11];
 		struct dentry *binderfs_entry;
 
 		snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
 		/*
 		 * Similar to debugfs, the process specific log file is shared
-		 * between contexts. If the file has already been created for a
-		 * process, the following binderfs_create_file() call will
-		 * fail with error code EEXIST if another context of the same
-		 * process invoked binder_open(). This is ok since same as
-		 * debugfs, the log file will contain information on all
-		 * contexts of a given PID.
+		 * between contexts. Only create for the first PID.
+		 * This is ok since same as debugfs, the log file will contain
+		 * information on all contexts of a given PID.
 		 */
 		binderfs_entry = binderfs_create_file(binder_binderfs_dir_entry_proc,
 			strbuf, &proc_fops, (void *)(unsigned long)proc->pid);
@@ -5281,10 +5289,8 @@
 			int error;
 
 			error = PTR_ERR(binderfs_entry);
-			if (error != -EEXIST) {
-				pr_warn("Unable to create file %s in binderfs (error %d)\n",
-					strbuf, error);
-			}
+			pr_warn("Unable to create file %s in binderfs (error %d)\n",
+				strbuf, error);
 		}
 	}
 
@@ -6078,6 +6084,7 @@
 	binder_device->miscdev.minor = MISC_DYNAMIC_MINOR;
 	binder_device->miscdev.name = name;
 
+	refcount_set(&binder_device->ref, 1);
 	binder_device->context.binder_context_mgr_uid = INVALID_UID;
 	binder_device->context.name = name;
 	mutex_init(&binder_device->context.context_mgr_node_lock);
@@ -6182,9 +6189,20 @@
 	return ret;
 }
 
-device_initcall(binder_init);
+module_init(binder_init);
+/*
+ * binder will have no exit function since binderfs instances can be mounted
+ * multiple times and also in user namespaces finding and destroying them all
+ * is not feasible without introducing insane locking. Just ignoring existing
+ * instances on module unload also wouldn't work since we would loose track of
+ * what major numer was dynamically allocated and also what minor numbers are
+ * already given out. So this would get us into all kinds of issues with device
+ * number reuse. So simply don't allow unloading unless we are forced to do so.
+ */
+
+MODULE_AUTHOR("Google, Inc.");
+MODULE_DESCRIPTION("Driver for Android binder device");
+MODULE_LICENSE("GPL v2");
 
 #define CREATE_TRACE_POINTS
 #include "binder_trace.h"
-
-MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/binder_alloc.c
+++ linux-gkeop-5.4-5.4.0/drivers/android/binder_alloc.c
@@ -38,8 +38,7 @@
 };
 static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR;
 
-module_param_named(debug_mask, binder_alloc_debug_mask,
-		   uint, 0644);
+module_param_named(alloc_debug_mask, binder_alloc_debug_mask, uint, 0644);
 
 #define binder_alloc_debug(mask, x...) \
 	do { \
@@ -277,8 +276,7 @@
 	return 0;
 
 free_range:
-	for (page_addr = end - PAGE_SIZE; page_addr >= start;
-	     page_addr -= PAGE_SIZE) {
+	for (page_addr = end - PAGE_SIZE; 1; page_addr -= PAGE_SIZE) {
 		bool ret;
 		size_t index;
 
@@ -291,6 +289,8 @@
 		WARN_ON(!ret);
 
 		trace_binder_free_lru_end(alloc, index);
+		if (page_addr == start)
+			break;
 		continue;
 
 err_vm_insert_page_failed:
@@ -298,7 +298,8 @@
 		page->page_ptr = NULL;
 err_alloc_page_failed:
 err_page_ptr_cleared:
-		;
+		if (page_addr == start)
+			break;
 	}
 err_no_vma:
 	if (mm) {
@@ -645,6 +646,8 @@
 	binder_insert_free_buffer(alloc, buffer);
 }
 
+static void binder_alloc_clear_buf(struct binder_alloc *alloc,
+				   struct binder_buffer *buffer);
 /**
  * binder_alloc_free_buf() - free a binder buffer
  * @alloc:	binder_alloc for this proc
@@ -655,6 +658,18 @@
 void binder_alloc_free_buf(struct binder_alloc *alloc,
 			    struct binder_buffer *buffer)
 {
+	/*
+	 * We could eliminate the call to binder_alloc_clear_buf()
+	 * from binder_alloc_deferred_release() by moving this to
+	 * binder_alloc_free_buf_locked(). However, that could
+	 * increase contention for the alloc mutex if clear_on_free
+	 * is used frequently for large buffers. The mutex is not
+	 * needed for correctness here.
+	 */
+	if (buffer->clear_on_free) {
+		binder_alloc_clear_buf(alloc, buffer);
+		buffer->clear_on_free = false;
+	}
 	mutex_lock(&alloc->mutex);
 	binder_free_buf_locked(alloc, buffer);
 	mutex_unlock(&alloc->mutex);
@@ -681,17 +696,17 @@
 	struct binder_buffer *buffer;
 
 	mutex_lock(&binder_alloc_mmap_lock);
-	if (alloc->buffer) {
+	if (alloc->buffer_size) {
 		ret = -EBUSY;
 		failure_string = "already mapped";
 		goto err_already_mapped;
 	}
+	alloc->buffer_size = min_t(unsigned long, vma->vm_end - vma->vm_start,
+				   SZ_4M);
+	mutex_unlock(&binder_alloc_mmap_lock);
 
 	alloc->buffer = (void __user *)vma->vm_start;
-	mutex_unlock(&binder_alloc_mmap_lock);
 
-	alloc->buffer_size = min_t(unsigned long, vma->vm_end - vma->vm_start,
-				   SZ_4M);
 	alloc->pages = kcalloc(alloc->buffer_size / PAGE_SIZE,
 			       sizeof(alloc->pages[0]),
 			       GFP_KERNEL);
@@ -722,8 +737,9 @@
 	kfree(alloc->pages);
 	alloc->pages = NULL;
 err_alloc_pages_failed:
-	mutex_lock(&binder_alloc_mmap_lock);
 	alloc->buffer = NULL;
+	mutex_lock(&binder_alloc_mmap_lock);
+	alloc->buffer_size = 0;
 err_already_mapped:
 	mutex_unlock(&binder_alloc_mmap_lock);
 	binder_alloc_debug(BINDER_DEBUG_USER_ERROR,
@@ -750,6 +766,10 @@
 		/* Transaction should already have been freed */
 		BUG_ON(buffer->transaction);
 
+		if (buffer->clear_on_free) {
+			binder_alloc_clear_buf(alloc, buffer);
+			buffer->clear_on_free = false;
+		}
 		binder_free_buf_locked(alloc, buffer);
 		buffers++;
 	}
@@ -841,14 +861,20 @@
 	int free = 0;
 
 	mutex_lock(&alloc->mutex);
-	for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) {
-		page = &alloc->pages[i];
-		if (!page->page_ptr)
-			free++;
-		else if (list_empty(&page->lru))
-			active++;
-		else
-			lru++;
+	/*
+	 * Make sure the binder_alloc is fully initialized, otherwise we might
+	 * read inconsistent state.
+	 */
+	if (binder_alloc_get_vma(alloc) != NULL) {
+		for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) {
+			page = &alloc->pages[i];
+			if (!page->page_ptr)
+				free++;
+			else if (list_empty(&page->lru))
+				active++;
+			else
+				lru++;
+		}
 	}
 	mutex_unlock(&alloc->mutex);
 	seq_printf(m, "  pages: %d:%d:%d\n", active, lru, free);
@@ -939,7 +965,7 @@
 		trace_binder_unmap_user_end(alloc, index);
 	}
 	up_read(&mm->mmap_sem);
-	mmput(mm);
+	mmput_async(mm);
 
 	trace_binder_unmap_kernel_start(alloc, index);
 
@@ -1078,6 +1104,36 @@
 }
 
 /**
+ * binder_alloc_clear_buf() - zero out buffer
+ * @alloc: binder_alloc for this proc
+ * @buffer: binder buffer to be cleared
+ *
+ * memset the given buffer to 0
+ */
+static void binder_alloc_clear_buf(struct binder_alloc *alloc,
+				   struct binder_buffer *buffer)
+{
+	size_t bytes = binder_alloc_buffer_size(alloc, buffer);
+	binder_size_t buffer_offset = 0;
+
+	while (bytes) {
+		unsigned long size;
+		struct page *page;
+		pgoff_t pgoff;
+		void *kptr;
+
+		page = binder_alloc_get_page(alloc, buffer,
+					     buffer_offset, &pgoff);
+		size = min_t(size_t, bytes, PAGE_SIZE - pgoff);
+		kptr = kmap(page) + pgoff;
+		memset(kptr, 0, size);
+		kunmap(page);
+		bytes -= size;
+		buffer_offset += size;
+	}
+}
+
+/**
  * binder_alloc_copy_user_to_buffer() - copy src user to tgt user
  * @alloc: binder_alloc for this proc
  * @buffer: binder buffer to be accessed
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/binder_alloc.h
+++ linux-gkeop-5.4-5.4.0/drivers/android/binder_alloc.h
@@ -6,6 +6,7 @@
 #ifndef _LINUX_BINDER_ALLOC_H
 #define _LINUX_BINDER_ALLOC_H
 
+#include <linux/kconfig.h>
 #include <linux/rbtree.h>
 #include <linux/list.h>
 #include <linux/mm.h>
@@ -23,6 +24,7 @@
  * @entry:              entry alloc->buffers
  * @rb_node:            node for allocated_buffers/free_buffers rb trees
  * @free:               %true if buffer is free
+ * @clear_on_free:      %true if buffer must be zeroed after use
  * @allow_user_free:    %true if user is allowed to free buffer
  * @async_transaction:  %true if buffer is in use for an async txn
  * @debug_id:           unique ID for debugging
@@ -40,9 +42,10 @@
 	struct rb_node rb_node; /* free entry by size or allocated entry */
 				/* by address */
 	unsigned free:1;
+	unsigned clear_on_free:1;
 	unsigned allow_user_free:1;
 	unsigned async_transaction:1;
-	unsigned debug_id:29;
+	unsigned debug_id:28;
 
 	struct binder_transaction *transaction;
 
@@ -105,7 +108,7 @@
 	size_t pages_high;
 };
 
-#ifdef CONFIG_ANDROID_BINDER_IPC_SELFTEST
+#if IS_ENABLED(CONFIG_ANDROID_BINDER_IPC_SELFTEST)
 void binder_selftest_alloc(struct binder_alloc *alloc);
 #else
 static inline void binder_selftest_alloc(struct binder_alloc *alloc) {}
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/binder_internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/android/binder_internal.h
@@ -5,9 +5,11 @@
 
 #include <linux/export.h>
 #include <linux/fs.h>
+#include <linux/kconfig.h>
 #include <linux/list.h>
 #include <linux/miscdevice.h>
 #include <linux/mutex.h>
+#include <linux/refcount.h>
 #include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/uidgid.h>
@@ -33,6 +35,7 @@
 	struct miscdevice miscdev;
 	struct binder_context context;
 	struct inode *binderfs_inode;
+	refcount_t ref;
 };
 
 /**
@@ -73,7 +76,7 @@
 
 extern char *binder_devices_param;
 
-#ifdef CONFIG_ANDROID_BINDERFS
+#if IS_ENABLED(CONFIG_ANDROID_BINDERFS)
 extern bool is_binderfs_device(const struct inode *inode);
 extern struct dentry *binderfs_create_file(struct dentry *dir, const char *name,
 					   const struct file_operations *fops,
@@ -94,7 +97,7 @@
 static inline void binderfs_remove_file(struct dentry *dentry) {}
 #endif
 
-#ifdef CONFIG_ANDROID_BINDERFS
+#if IS_ENABLED(CONFIG_ANDROID_BINDERFS)
 extern int __init init_binderfs(void);
 #else
 static inline int __init init_binderfs(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/android/binderfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/android/binderfs.c
@@ -109,7 +109,7 @@
 	struct super_block *sb = ref_inode->i_sb;
 	struct binderfs_info *info = sb->s_fs_info;
 #if defined(CONFIG_IPC_NS)
-	bool use_reserve = (info->ipc_ns == &init_ipc_ns);
+	bool use_reserve = (info->ipc_ns == show_init_ipc_ns());
 #else
 	bool use_reserve = true;
 #endif
@@ -154,6 +154,7 @@
 	if (!name)
 		goto err;
 
+	refcount_set(&device->ref, 1);
 	device->binderfs_inode = inode;
 	device->context.binder_context_mgr_uid = INVALID_UID;
 	device->context.name = name;
@@ -257,8 +258,10 @@
 	ida_free(&binderfs_minors, device->miscdev.minor);
 	mutex_unlock(&binderfs_minors_mutex);
 
-	kfree(device->context.name);
-	kfree(device);
+	if (refcount_dec_and_test(&device->ref)) {
+		kfree(device->context.name);
+		kfree(device);
+	}
 }
 
 /**
@@ -405,7 +408,7 @@
 	struct dentry *root = sb->s_root;
 	struct binderfs_info *info = sb->s_fs_info;
 #if defined(CONFIG_IPC_NS)
-	bool use_reserve = (info->ipc_ns == &init_ipc_ns);
+	bool use_reserve = (info->ipc_ns == show_init_ipc_ns());
 #else
 	bool use_reserve = true;
 #endif
@@ -445,6 +448,7 @@
 	inode->i_uid = info->root_uid;
 	inode->i_gid = info->root_gid;
 
+	refcount_set(&device->ref, 1);
 	device->binderfs_inode = inode;
 	device->miscdev.minor = minor;
 
@@ -683,7 +687,7 @@
 		return -ENOMEM;
 	info = sb->s_fs_info;
 
-	info->ipc_ns = get_ipc_ns(current->nsproxy->ipc_ns);
+	info->ipc_ns = get_ipc_ns_exported(current->nsproxy->ipc_ns);
 
 	ret = binderfs_parse_mount_opts(data, &info->mount_opts);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/acard-ahci.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/acard-ahci.c
@@ -56,7 +56,7 @@
 	__le32			size;	 /* bit 31 (EOT) max==0x10000 (64k) */
 };
 
-static void acard_ahci_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors acard_ahci_qc_prep(struct ata_queued_cmd *qc);
 static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
 static int acard_ahci_port_start(struct ata_port *ap);
 static int acard_ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
@@ -210,7 +210,7 @@
 	return si;
 }
 
-static void acard_ahci_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors acard_ahci_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct ahci_port_priv *pp = ap->private_data;
@@ -248,6 +248,8 @@
 		opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH;
 
 	ahci_fill_cmd_slot(pp, qc->hw_tag, opts);
+
+	return AC_ERR_OK;
 }
 
 static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/ahci.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/ahci.c
@@ -80,6 +80,7 @@
 
 static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static void ahci_remove_one(struct pci_dev *dev);
+static void ahci_shutdown_one(struct pci_dev *dev);
 static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
 				 unsigned long deadline);
 static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
@@ -236,6 +237,7 @@
 
 static const struct pci_device_id ahci_pci_tbl[] = {
 	/* Intel */
+	{ PCI_VDEVICE(INTEL, 0x06d6), board_ahci }, /* Comet Lake PCH-H RAID */
 	{ PCI_VDEVICE(INTEL, 0x2652), board_ahci }, /* ICH6 */
 	{ PCI_VDEVICE(INTEL, 0x2653), board_ahci }, /* ICH6M */
 	{ PCI_VDEVICE(INTEL, 0x27c1), board_ahci }, /* ICH7 */
@@ -392,11 +394,13 @@
 	{ PCI_VDEVICE(INTEL, 0xa252), board_ahci }, /* Lewisburg RAID*/
 	{ PCI_VDEVICE(INTEL, 0xa256), board_ahci }, /* Lewisburg RAID*/
 	{ PCI_VDEVICE(INTEL, 0xa356), board_ahci }, /* Cannon Lake PCH-H RAID */
+	{ PCI_VDEVICE(INTEL, 0x06d7), board_ahci }, /* Comet Lake-H RAID */
 	{ PCI_VDEVICE(INTEL, 0x0f22), board_ahci_mobile }, /* Bay Trail AHCI */
 	{ PCI_VDEVICE(INTEL, 0x0f23), board_ahci_mobile }, /* Bay Trail AHCI */
 	{ PCI_VDEVICE(INTEL, 0x22a3), board_ahci_mobile }, /* Cherry Tr. AHCI */
 	{ PCI_VDEVICE(INTEL, 0x5ae3), board_ahci_mobile }, /* ApolloLake AHCI */
 	{ PCI_VDEVICE(INTEL, 0x34d3), board_ahci_mobile }, /* Ice Lake LP AHCI */
+	{ PCI_VDEVICE(INTEL, 0x02d7), board_ahci_mobile }, /* Comet Lake PCH RAID */
 
 	/* JMicron 360/1/3/5/6, match class to avoid IDE function */
 	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -593,6 +597,7 @@
 	.id_table		= ahci_pci_tbl,
 	.probe			= ahci_init_one,
 	.remove			= ahci_remove_one,
+	.shutdown		= ahci_shutdown_one,
 	.driver = {
 		.pm		= &ahci_pci_pm_ops,
 	},
@@ -1473,7 +1478,7 @@
 static void ahci_remap_check(struct pci_dev *pdev, int bar,
 		struct ahci_host_priv *hpriv)
 {
-	int i, count = 0;
+	int i;
 	u32 cap;
 
 	/*
@@ -1494,13 +1499,14 @@
 			continue;
 
 		/* We've found a remapped device */
-		count++;
+		hpriv->remapped_nvme++;
 	}
 
-	if (!count)
+	if (!hpriv->remapped_nvme)
 		return;
 
-	dev_warn(&pdev->dev, "Found %d remapped NVMe devices.\n", count);
+	dev_warn(&pdev->dev, "Found %u remapped NVMe devices.\n",
+		 hpriv->remapped_nvme);
 	dev_warn(&pdev->dev,
 		 "Switch your BIOS from RAID to AHCI mode to use them.\n");
 
@@ -1620,6 +1626,18 @@
 	}
 }
 
+static ssize_t remapped_nvme_show(struct device *dev,
+				  struct device_attribute *attr,
+				  char *buf)
+{
+	struct ata_host *host = dev_get_drvdata(dev);
+	struct ahci_host_priv *hpriv = host->private_data;
+
+	return sprintf(buf, "%u\n", hpriv->remapped_nvme);
+}
+
+static DEVICE_ATTR_RO(remapped_nvme);
+
 static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	unsigned int board_id = ent->driver_data;
@@ -1720,6 +1738,10 @@
 	/* detect remapped nvme devices */
 	ahci_remap_check(pdev, ahci_pci_bar, hpriv);
 
+	sysfs_add_file_to_group(&pdev->dev.kobj,
+				&dev_attr_remapped_nvme.attr,
+				NULL);
+
 	/* must set flag prior to save config in order to take effect */
 	if (ahci_broken_devslp(pdev))
 		hpriv->flags |= AHCI_HFLAG_NO_DEVSLP;
@@ -1864,8 +1886,16 @@
 	return 0;
 }
 
+static void ahci_shutdown_one(struct pci_dev *pdev)
+{
+	ata_pci_shutdown_one(pdev);
+}
+
 static void ahci_remove_one(struct pci_dev *pdev)
 {
+	sysfs_remove_file_from_group(&pdev->dev.kobj,
+				     &dev_attr_remapped_nvme.attr,
+				     NULL);
 	pm_runtime_get_noresume(&pdev->dev);
 	ata_pci_remove_one(pdev);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/ahci.h
+++ linux-gkeop-5.4-5.4.0/drivers/ata/ahci.h
@@ -240,6 +240,8 @@
 							as default lpm_policy */
 	AHCI_HFLAG_SUSPEND_PHYS		= (1 << 26), /* handle PHYs during
 							suspend/resume */
+	AHCI_HFLAG_IGN_NOTSUPP_POWER_ON	= (1 << 27), /* ignore -EOPNOTSUPP
+							from phy_power_on() */
 
 	/* ap->flags bits */
 
@@ -336,6 +338,7 @@
 	u32 			em_loc; /* enclosure management location */
 	u32			em_buf_sz;	/* EM buffer size in byte */
 	u32			em_msg_type;	/* EM message type */
+	u32			remapped_nvme;	/* NVMe remapped device count */
 	bool			got_runtime_pm; /* Did we do pm_runtime_get? */
 	struct clk		*clks[AHCI_MAX_CLKS]; /* Optional */
 	struct reset_control	*rsts;		/* Optional */
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/ahci_brcm.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/ahci_brcm.c
@@ -76,8 +76,7 @@
 };
 
 enum brcm_ahci_quirks {
-	BRCM_AHCI_QUIRK_NO_NCQ		= BIT(0),
-	BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE	= BIT(1),
+	BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE	= BIT(0),
 };
 
 struct brcm_ahci_priv {
@@ -213,19 +212,12 @@
 			brcm_sata_phy_disable(priv, i);
 }
 
-static u32 brcm_ahci_get_portmask(struct platform_device *pdev,
+static u32 brcm_ahci_get_portmask(struct ahci_host_priv *hpriv,
 				  struct brcm_ahci_priv *priv)
 {
-	void __iomem *ahci;
-	struct resource *res;
 	u32 impl;
 
-	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ahci");
-	ahci = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(ahci))
-		return 0;
-
-	impl = readl(ahci + HOST_PORTS_IMPL);
+	impl = readl(hpriv->mmio + HOST_PORTS_IMPL);
 
 	if (fls(impl) > SATA_TOP_MAX_PHYS)
 		dev_warn(priv->dev, "warning: more ports than PHYs (%#x)\n",
@@ -233,9 +225,6 @@
 	else if (!impl)
 		dev_info(priv->dev, "no ports found\n");
 
-	devm_iounmap(&pdev->dev, ahci);
-	devm_release_mem_region(&pdev->dev, res->start, resource_size(res));
-
 	return impl;
 }
 
@@ -285,6 +274,13 @@
 	/* Perform the SATA PHY reset sequence */
 	brcm_sata_phy_disable(priv, ap->port_no);
 
+	/* Reset the SATA clock */
+	ahci_platform_disable_clks(hpriv);
+	msleep(10);
+
+	ahci_platform_enable_clks(hpriv);
+	msleep(10);
+
 	/* Bring the PHY back on */
 	brcm_sata_phy_enable(priv, ap->port_no);
 
@@ -347,11 +343,10 @@
 	struct ata_host *host = dev_get_drvdata(dev);
 	struct ahci_host_priv *hpriv = host->private_data;
 	struct brcm_ahci_priv *priv = hpriv->plat_data;
-	int ret;
 
-	ret = ahci_platform_suspend(dev);
 	brcm_sata_phys_disable(priv);
-	return ret;
+
+	return ahci_platform_suspend(dev);
 }
 
 static int brcm_ahci_resume(struct device *dev)
@@ -359,11 +354,50 @@
 	struct ata_host *host = dev_get_drvdata(dev);
 	struct ahci_host_priv *hpriv = host->private_data;
 	struct brcm_ahci_priv *priv = hpriv->plat_data;
+	int ret;
+
+	/* Make sure clocks are turned on before re-configuration */
+	ret = ahci_platform_enable_clks(hpriv);
+	if (ret)
+		return ret;
+
+	ret = ahci_platform_enable_regulators(hpriv);
+	if (ret)
+		goto out_disable_clks;
 
 	brcm_sata_init(priv);
 	brcm_sata_phys_enable(priv);
 	brcm_sata_alpm_init(hpriv);
-	return ahci_platform_resume(dev);
+
+	/* Since we had to enable clocks earlier on, we cannot use
+	 * ahci_platform_resume() as-is since a second call to
+	 * ahci_platform_enable_resources() would bump up the resources
+	 * (regulators, clocks, PHYs) count artificially so we copy the part
+	 * after ahci_platform_enable_resources().
+	 */
+	ret = ahci_platform_enable_phys(hpriv);
+	if (ret)
+		goto out_disable_phys;
+
+	ret = ahci_platform_resume_host(dev);
+	if (ret)
+		goto out_disable_platform_phys;
+
+	/* We resumed so update PM runtime state */
+	pm_runtime_disable(dev);
+	pm_runtime_set_active(dev);
+	pm_runtime_enable(dev);
+
+	return 0;
+
+out_disable_platform_phys:
+	ahci_platform_disable_phys(hpriv);
+out_disable_phys:
+	brcm_sata_phys_disable(priv);
+	ahci_platform_disable_regulators(hpriv);
+out_disable_clks:
+	ahci_platform_disable_clks(hpriv);
+	return ret;
 }
 #endif
 
@@ -410,44 +444,77 @@
 	if (!IS_ERR_OR_NULL(priv->rcdev))
 		reset_control_deassert(priv->rcdev);
 
-	if ((priv->version == BRCM_SATA_BCM7425) ||
-		(priv->version == BRCM_SATA_NSP)) {
-		priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ;
+	hpriv = ahci_platform_get_resources(pdev, 0);
+	if (IS_ERR(hpriv)) {
+		ret = PTR_ERR(hpriv);
+		goto out_reset;
+	}
+
+	hpriv->plat_data = priv;
+	hpriv->flags = AHCI_HFLAG_WAKE_BEFORE_STOP | AHCI_HFLAG_NO_WRITE_TO_RO;
+
+	switch (priv->version) {
+	case BRCM_SATA_BCM7425:
+		hpriv->flags |= AHCI_HFLAG_DELAY_ENGINE;
+		/* fall through */
+	case BRCM_SATA_NSP:
+		hpriv->flags |= AHCI_HFLAG_NO_NCQ;
 		priv->quirks |= BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE;
+		break;
+	default:
+		break;
 	}
 
+	ret = ahci_platform_enable_clks(hpriv);
+	if (ret)
+		goto out_reset;
+
+	ret = ahci_platform_enable_regulators(hpriv);
+	if (ret)
+		goto out_disable_clks;
+
+	/* Must be first so as to configure endianness including that
+	 * of the standard AHCI register space.
+	 */
 	brcm_sata_init(priv);
 
-	priv->port_mask = brcm_ahci_get_portmask(pdev, priv);
-	if (!priv->port_mask)
-		return -ENODEV;
+	/* Initializes priv->port_mask which is used below */
+	priv->port_mask = brcm_ahci_get_portmask(hpriv, priv);
+	if (!priv->port_mask) {
+		ret = -ENODEV;
+		goto out_disable_regulators;
+	}
 
+	/* Must be done before ahci_platform_enable_phys() */
 	brcm_sata_phys_enable(priv);
 
-	hpriv = ahci_platform_get_resources(pdev, 0);
-	if (IS_ERR(hpriv))
-		return PTR_ERR(hpriv);
-	hpriv->plat_data = priv;
-	hpriv->flags = AHCI_HFLAG_WAKE_BEFORE_STOP;
-
 	brcm_sata_alpm_init(hpriv);
 
-	ret = ahci_platform_enable_resources(hpriv);
+	ret = ahci_platform_enable_phys(hpriv);
 	if (ret)
-		return ret;
-
-	if (priv->quirks & BRCM_AHCI_QUIRK_NO_NCQ)
-		hpriv->flags |= AHCI_HFLAG_NO_NCQ;
-	hpriv->flags |= AHCI_HFLAG_NO_WRITE_TO_RO;
+		goto out_disable_phys;
 
 	ret = ahci_platform_init_host(pdev, hpriv, &ahci_brcm_port_info,
 				      &ahci_platform_sht);
 	if (ret)
-		return ret;
+		goto out_disable_platform_phys;
 
 	dev_info(dev, "Broadcom AHCI SATA3 registered\n");
 
 	return 0;
+
+out_disable_platform_phys:
+	ahci_platform_disable_phys(hpriv);
+out_disable_phys:
+	brcm_sata_phys_disable(priv);
+out_disable_regulators:
+	ahci_platform_disable_regulators(hpriv);
+out_disable_clks:
+	ahci_platform_disable_clks(hpriv);
+out_reset:
+	if (!IS_ERR_OR_NULL(priv->rcdev))
+		reset_control_assert(priv->rcdev);
+	return ret;
 }
 
 static int brcm_ahci_remove(struct platform_device *pdev)
@@ -457,12 +524,12 @@
 	struct brcm_ahci_priv *priv = hpriv->plat_data;
 	int ret;
 
+	brcm_sata_phys_disable(priv);
+
 	ret = ata_platform_remove_one(pdev);
 	if (ret)
 		return ret;
 
-	brcm_sata_phys_disable(priv);
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/ahci_mvebu.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/ahci_mvebu.c
@@ -227,7 +227,7 @@
 
 static const struct ahci_mvebu_plat_data ahci_mvebu_armada_3700_plat_data = {
 	.plat_config = ahci_mvebu_armada_3700_config,
-	.flags = AHCI_HFLAG_SUSPEND_PHYS,
+	.flags = AHCI_HFLAG_SUSPEND_PHYS | AHCI_HFLAG_IGN_NOTSUPP_POWER_ON,
 };
 
 static const struct of_device_id ahci_mvebu_of_match[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/libahci.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/libahci.c
@@ -57,7 +57,7 @@
 static bool ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
 static int ahci_port_start(struct ata_port *ap);
 static void ahci_port_stop(struct ata_port *ap);
-static void ahci_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors ahci_qc_prep(struct ata_queued_cmd *qc);
 static int ahci_pmp_qc_defer(struct ata_queued_cmd *qc);
 static void ahci_freeze(struct ata_port *ap);
 static void ahci_thaw(struct ata_port *ap);
@@ -1624,7 +1624,7 @@
 		return sata_pmp_qc_defer_cmd_switch(qc);
 }
 
-static void ahci_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors ahci_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct ahci_port_priv *pp = ap->private_data;
@@ -1660,6 +1660,8 @@
 		opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH;
 
 	ahci_fill_cmd_slot(pp, qc->hw_tag, opts);
+
+	return AC_ERR_OK;
 }
 
 static void ahci_fbs_dec_intr(struct ata_port *ap)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/libahci_platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/libahci_platform.c
@@ -43,7 +43,7 @@
  * RETURNS:
  * 0 on success otherwise a negative error code
  */
-static int ahci_platform_enable_phys(struct ahci_host_priv *hpriv)
+int ahci_platform_enable_phys(struct ahci_host_priv *hpriv)
 {
 	int rc, i;
 
@@ -59,7 +59,7 @@
 		}
 
 		rc = phy_power_on(hpriv->phys[i]);
-		if (rc) {
+		if (rc && !(rc == -EOPNOTSUPP && (hpriv->flags & AHCI_HFLAG_IGN_NOTSUPP_POWER_ON))) {
 			phy_exit(hpriv->phys[i]);
 			goto disable_phys;
 		}
@@ -74,6 +74,7 @@
 	}
 	return rc;
 }
+EXPORT_SYMBOL_GPL(ahci_platform_enable_phys);
 
 /**
  * ahci_platform_disable_phys - Disable PHYs
@@ -81,7 +82,7 @@
  *
  * This function disables all PHYs found in hpriv->phys.
  */
-static void ahci_platform_disable_phys(struct ahci_host_priv *hpriv)
+void ahci_platform_disable_phys(struct ahci_host_priv *hpriv)
 {
 	int i;
 
@@ -90,6 +91,7 @@
 		phy_exit(hpriv->phys[i]);
 	}
 }
+EXPORT_SYMBOL_GPL(ahci_platform_disable_phys);
 
 /**
  * ahci_platform_enable_clks - Enable platform clocks
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/libata-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/libata-core.c
@@ -41,7 +41,6 @@
 #include <linux/workqueue.h>
 #include <linux/scatterlist.h>
 #include <linux/io.h>
-#include <linux/async.h>
 #include <linux/log2.h>
 #include <linux/slab.h>
 #include <linux/glob.h>
@@ -4475,9 +4474,8 @@
 	/* https://bugzilla.kernel.org/show_bug.cgi?id=15573 */
 	{ "C300-CTFDDAC128MAG",	"0001",		ATA_HORKAGE_NONCQ, },
 
-	/* Some Sandisk SSDs lock up hard with NCQ enabled.  Reported on
-	   SD7SN6S256G and SD8SN8U256G */
-	{ "SanDisk SD[78]SN*G",	NULL,		ATA_HORKAGE_NONCQ, },
+	/* Sandisk SD7/8/9s lock up hard on large trims */
+	{ "SanDisk SD[789]*",	NULL,		ATA_HORKAGE_MAX_TRIM_128M, },
 
 	/* devices which puke on READ_NATIVE_MAX */
 	{ "HDS724040KLSA80",	"KFAOA20N",	ATA_HORKAGE_BROKEN_HPA, },
@@ -4980,7 +4978,10 @@
 	return ATA_DEFER_LINK;
 }
 
-void ata_noop_qc_prep(struct ata_queued_cmd *qc) { }
+enum ata_completion_errors ata_noop_qc_prep(struct ata_queued_cmd *qc)
+{
+	return AC_ERR_OK;
+}
 
 /**
  *	ata_sg_init - Associate command with scatter-gather table.
@@ -5326,6 +5327,30 @@
 }
 
 /**
+ *	ata_qc_get_active - get bitmask of active qcs
+ *	@ap: port in question
+ *
+ *	LOCKING:
+ *	spin_lock_irqsave(host lock)
+ *
+ *	RETURNS:
+ *	Bitmask of active qcs
+ */
+u64 ata_qc_get_active(struct ata_port *ap)
+{
+	u64 qc_active = ap->qc_active;
+
+	/* ATA_TAG_INTERNAL is sent to hw as tag 0 */
+	if (qc_active & (1ULL << ATA_TAG_INTERNAL)) {
+		qc_active |= (1 << 0);
+		qc_active &= ~(1ULL << ATA_TAG_INTERNAL);
+	}
+
+	return qc_active;
+}
+EXPORT_SYMBOL_GPL(ata_qc_get_active);
+
+/**
  *	ata_qc_complete_multiple - Complete multiple qcs successfully
  *	@ap: port in question
  *	@qc_active: new qc_active mask
@@ -5443,7 +5468,9 @@
 		return;
 	}
 
-	ap->ops->qc_prep(qc);
+	qc->err_mask |= ap->ops->qc_prep(qc);
+	if (unlikely(qc->err_mask))
+		goto err;
 	trace_ata_qc_issue(qc);
 	qc->err_mask |= ap->ops->qc_issue(qc);
 	if (unlikely(qc->err_mask))
@@ -6568,7 +6595,7 @@
 	/* perform each probe asynchronously */
 	for (i = 0; i < host->n_ports; i++) {
 		struct ata_port *ap = host->ports[i];
-		async_schedule(async_port_probe, ap);
+		ap->cookie = async_schedule(async_port_probe, ap);
 	}
 
 	return 0;
@@ -6708,8 +6735,11 @@
 {
 	int i;
 
-	for (i = 0; i < host->n_ports; i++)
+	for (i = 0; i < host->n_ports; i++) {
+		/* Ensure ata_port probe has completed */
+		async_synchronize_cookie(host->ports[i]->cookie + 1);
 		ata_port_detach(host->ports[i]);
+	}
 
 	/* the host is dead now, dissociate ACPI */
 	ata_acpi_dissociate(host);
@@ -6735,6 +6765,26 @@
 	ata_host_detach(host);
 }
 
+void ata_pci_shutdown_one(struct pci_dev *pdev)
+{
+	struct ata_host *host = pci_get_drvdata(pdev);
+	int i;
+
+	for (i = 0; i < host->n_ports; i++) {
+		struct ata_port *ap = host->ports[i];
+
+		ap->pflags |= ATA_PFLAG_FROZEN;
+
+		/* Disable port interrupts */
+		if (ap->ops->freeze)
+			ap->ops->freeze(ap);
+
+		/* Stop the port DMA engines */
+		if (ap->ops->port_stop)
+			ap->ops->port_stop(ap);
+	}
+}
+
 /* move to PCI subsystem */
 int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits)
 {
@@ -7355,6 +7405,7 @@
 
 #ifdef CONFIG_PCI
 EXPORT_SYMBOL_GPL(pci_test_config_bits);
+EXPORT_SYMBOL_GPL(ata_pci_shutdown_one);
 EXPORT_SYMBOL_GPL(ata_pci_remove_one);
 #ifdef CONFIG_PM
 EXPORT_SYMBOL_GPL(ata_pci_device_do_suspend);
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/libata-pmp.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/libata-pmp.c
@@ -763,6 +763,7 @@
 
 	if (dev->flags & ATA_DFLAG_DETACH) {
 		detach = 1;
+		rc = -ENODEV;
 		goto fail;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/libata-scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/libata-scsi.c
@@ -2374,6 +2374,7 @@
 
 static unsigned int ata_scsiop_inq_b0(struct ata_scsi_args *args, u8 *rbuf)
 {
+	struct ata_device *dev = args->dev;
 	u16 min_io_sectors;
 
 	rbuf[1] = 0xb0;
@@ -2399,7 +2400,12 @@
 	 * with the unmap bit set.
 	 */
 	if (ata_id_has_trim(args->id)) {
-		put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM, &rbuf[36]);
+		u64 max_blocks = 65535 * ATA_MAX_TRIM_RNUM;
+
+		if (dev->horkage & ATA_HORKAGE_MAX_TRIM_128M)
+			max_blocks = 128 << (20 - SECTOR_SHIFT);
+
+		put_unaligned_be64(max_blocks, &rbuf[36]);
 		put_unaligned_be32(1, &rbuf[28]);
 	}
 
@@ -3978,12 +3984,13 @@
 {
 	struct scsi_cmnd *scmd = qc->scsicmd;
 	const u8 *cdb = scmd->cmnd;
-	const u8 *p;
 	u8 pg, spg;
 	unsigned six_byte, pg_len, hdr_len, bd_len;
 	int len;
 	u16 fp = (u16)-1;
 	u8 bp = 0xff;
+	u8 buffer[64];
+	const u8 *p = buffer;
 
 	VPRINTK("ENTER\n");
 
@@ -4017,12 +4024,14 @@
 	if (!scsi_sg_count(scmd) || scsi_sglist(scmd)->length < len)
 		goto invalid_param_len;
 
-	p = page_address(sg_page(scsi_sglist(scmd)));
-
 	/* Move past header and block descriptors.  */
 	if (len < hdr_len)
 		goto invalid_param_len;
 
+	if (!sg_copy_to_buffer(scsi_sglist(scmd), scsi_sg_count(scmd),
+			       buffer, sizeof(buffer)))
+		goto invalid_param_len;
+
 	if (six_byte)
 		bd_len = p[3];
 	else
@@ -4553,22 +4562,19 @@
 		 */
 		shost->max_host_blocked = 1;
 
-		rc = scsi_add_host_with_dma(ap->scsi_host,
-						&ap->tdev, ap->host->dev);
+		rc = scsi_add_host_with_dma(shost, &ap->tdev, ap->host->dev);
 		if (rc)
-			goto err_add;
+			goto err_alloc;
 	}
 
 	return 0;
 
- err_add:
-	scsi_host_put(host->ports[i]->scsi_host);
  err_alloc:
 	while (--i >= 0) {
 		struct Scsi_Host *shost = host->ports[i]->scsi_host;
 
+		/* scsi_host_put() is in ata_devres_release() */
 		scsi_remove_host(shost);
-		scsi_host_put(shost);
 	}
 	return rc;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/libata-sff.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/libata-sff.c
@@ -2679,12 +2679,14 @@
  *	LOCKING:
  *	spin_lock_irqsave(host lock)
  */
-void ata_bmdma_qc_prep(struct ata_queued_cmd *qc)
+enum ata_completion_errors ata_bmdma_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	ata_bmdma_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 EXPORT_SYMBOL_GPL(ata_bmdma_qc_prep);
 
@@ -2697,12 +2699,14 @@
  *	LOCKING:
  *	spin_lock_irqsave(host lock)
  */
-void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc)
+enum ata_completion_errors ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	ata_bmdma_fill_sg_dumb(qc);
+
+	return AC_ERR_OK;
 }
 EXPORT_SYMBOL_GPL(ata_bmdma_dumb_qc_prep);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/pata_macio.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/pata_macio.c
@@ -510,7 +510,7 @@
 	return ATA_CBL_PATA40;
 }
 
-static void pata_macio_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pata_macio_qc_prep(struct ata_queued_cmd *qc)
 {
 	unsigned int write = (qc->tf.flags & ATA_TFLAG_WRITE);
 	struct ata_port *ap = qc->ap;
@@ -523,7 +523,7 @@
 		   __func__, qc, qc->flags, write, qc->dev->devno);
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	table = (struct dbdma_cmd *) priv->dma_table_cpu;
 
@@ -568,6 +568,8 @@
 	table->command = cpu_to_le16(DBDMA_STOP);
 
 	dev_dbgdma(priv->dev, "%s: %d DMA list entries\n", __func__, pi);
+
+	return AC_ERR_OK;
 }
 
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/pata_pxa.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/pata_pxa.c
@@ -44,25 +44,27 @@
 /*
  * Prepare taskfile for submission.
  */
-static void pxa_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pxa_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct pata_pxa_data *pd = qc->ap->private_data;
 	struct dma_async_tx_descriptor *tx;
 	enum dma_transfer_direction dir;
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	dir = (qc->dma_dir == DMA_TO_DEVICE ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM);
 	tx = dmaengine_prep_slave_sg(pd->dma_chan, qc->sg, qc->n_elem, dir,
 				     DMA_PREP_INTERRUPT);
 	if (!tx) {
 		ata_dev_err(qc->dev, "prep_slave_sg() failed\n");
-		return;
+		return AC_ERR_OK;
 	}
 	tx->callback = pxa_ata_dma_irq;
 	tx->callback_param = pd;
 	pd->dma_cookie = dmaengine_submit(tx);
+
+	return AC_ERR_OK;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/pdc_adma.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/pdc_adma.c
@@ -116,7 +116,7 @@
 				const struct pci_device_id *ent);
 static int adma_port_start(struct ata_port *ap);
 static void adma_port_stop(struct ata_port *ap);
-static void adma_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors adma_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int adma_qc_issue(struct ata_queued_cmd *qc);
 static int adma_check_atapi_dma(struct ata_queued_cmd *qc);
 static void adma_freeze(struct ata_port *ap);
@@ -295,7 +295,7 @@
 	return i;
 }
 
-static void adma_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors adma_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct adma_port_priv *pp = qc->ap->private_data;
 	u8  *buf = pp->pkt;
@@ -306,7 +306,7 @@
 
 	adma_enter_reg_mode(qc->ap);
 	if (qc->tf.protocol != ATA_PROT_DMA)
-		return;
+		return AC_ERR_OK;
 
 	buf[i++] = 0;	/* Response flags */
 	buf[i++] = 0;	/* reserved */
@@ -371,6 +371,7 @@
 			printk("%s\n", obuf);
 	}
 #endif
+	return AC_ERR_OK;
 }
 
 static inline void adma_packet_start(struct ata_queued_cmd *qc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_fsl.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_fsl.c
@@ -502,7 +502,7 @@
 	return num_prde;
 }
 
-static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sata_fsl_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct sata_fsl_port_priv *pp = ap->private_data;
@@ -548,6 +548,8 @@
 
 	VPRINTK("SATA FSL : xx_qc_prep, di = 0x%x, ttl = %d, num_prde = %d\n",
 		desc_info, ttl_dwords, num_prde);
+
+	return AC_ERR_OK;
 }
 
 static unsigned int sata_fsl_qc_issue(struct ata_queued_cmd *qc)
@@ -1278,7 +1280,7 @@
 				     i, ioread32(hcr_base + CC),
 				     ioread32(hcr_base + CA));
 		}
-		ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+		ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 		return;
 
 	} else if ((ap->qc_active & (1ULL << ATA_TAG_INTERNAL))) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_inic162x.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_inic162x.c
@@ -478,7 +478,7 @@
 	prd[-1].flags |= PRD_END;
 }
 
-static void inic_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors inic_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct inic_port_priv *pp = qc->ap->private_data;
 	struct inic_pkt *pkt = pp->pkt;
@@ -538,6 +538,8 @@
 		inic_fill_sg(prd, qc);
 
 	pp->cpb_tbl[0] = pp->pkt_dma;
+
+	return AC_ERR_OK;
 }
 
 static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_mv.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_mv.c
@@ -592,8 +592,8 @@
 static int mv_port_start(struct ata_port *ap);
 static void mv_port_stop(struct ata_port *ap);
 static int mv_qc_defer(struct ata_queued_cmd *qc);
-static void mv_qc_prep(struct ata_queued_cmd *qc);
-static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
+static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc);
 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
 static int mv_hardreset(struct ata_link *link, unsigned int *class,
 			unsigned long deadline);
@@ -2031,7 +2031,7 @@
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct mv_port_priv *pp = ap->private_data;
@@ -2043,15 +2043,15 @@
 	switch (tf->protocol) {
 	case ATA_PROT_DMA:
 		if (tf->command == ATA_CMD_DSM)
-			return;
+			return AC_ERR_OK;
 		/* fall-thru */
 	case ATA_PROT_NCQ:
 		break;	/* continue below */
 	case ATA_PROT_PIO:
 		mv_rw_multi_errata_sata24(qc);
-		return;
+		return AC_ERR_OK;
 	default:
-		return;
+		return AC_ERR_OK;
 	}
 
 	/* Fill in command request block
@@ -2098,12 +2098,10 @@
 		 * non-NCQ mode are: [RW] STREAM DMA and W DMA FUA EXT, none
 		 * of which are defined/used by Linux.  If we get here, this
 		 * driver needs work.
-		 *
-		 * FIXME: modify libata to give qc_prep a return value and
-		 * return error here.
 		 */
-		BUG_ON(tf->command);
-		break;
+		ata_port_err(ap, "%s: unsupported command: %.2x\n", __func__,
+				tf->command);
+		return AC_ERR_INVALID;
 	}
 	mv_crqb_pack_cmd(cw++, tf->nsect, ATA_REG_NSECT, 0);
 	mv_crqb_pack_cmd(cw++, tf->hob_lbal, ATA_REG_LBAL, 0);
@@ -2116,8 +2114,10 @@
 	mv_crqb_pack_cmd(cw++, tf->command, ATA_REG_CMD, 1);	/* last */
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 	mv_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 /**
@@ -2132,7 +2132,7 @@
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
+static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct mv_port_priv *pp = ap->private_data;
@@ -2143,9 +2143,9 @@
 
 	if ((tf->protocol != ATA_PROT_DMA) &&
 	    (tf->protocol != ATA_PROT_NCQ))
-		return;
+		return AC_ERR_OK;
 	if (tf->command == ATA_CMD_DSM)
-		return;  /* use bmdma for this */
+		return AC_ERR_OK;  /* use bmdma for this */
 
 	/* Fill in Gen IIE command request block */
 	if (!(tf->flags & ATA_TFLAG_WRITE))
@@ -2186,8 +2186,10 @@
 		);
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 	mv_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 /**
@@ -2827,7 +2829,7 @@
 	}
 
 	if (work_done) {
-		ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+		ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 
 		/* Update the software queue position index in hardware */
 		writelfl((pp->crpb_dma & EDMA_RSP_Q_BASE_LO_MASK) |
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_nv.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_nv.c
@@ -297,7 +297,7 @@
 static void nv_ck804_thaw(struct ata_port *ap);
 static int nv_adma_slave_config(struct scsi_device *sdev);
 static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc);
-static void nv_adma_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors nv_adma_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc);
 static irqreturn_t nv_adma_interrupt(int irq, void *dev_instance);
 static void nv_adma_irq_clear(struct ata_port *ap);
@@ -319,7 +319,7 @@
 static void nv_swncq_error_handler(struct ata_port *ap);
 static int nv_swncq_slave_config(struct scsi_device *sdev);
 static int nv_swncq_port_start(struct ata_port *ap);
-static void nv_swncq_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors nv_swncq_qc_prep(struct ata_queued_cmd *qc);
 static void nv_swncq_fill_sg(struct ata_queued_cmd *qc);
 static unsigned int nv_swncq_qc_issue(struct ata_queued_cmd *qc);
 static void nv_swncq_irq_clear(struct ata_port *ap, u16 fis);
@@ -984,7 +984,7 @@
 					check_commands = 0;
 				check_commands &= ~(1 << pos);
 			}
-			ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+			ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 		}
 	}
 
@@ -1344,7 +1344,7 @@
 	return 1;
 }
 
-static void nv_adma_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors nv_adma_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct nv_adma_port_priv *pp = qc->ap->private_data;
 	struct nv_adma_cpb *cpb = &pp->cpb[qc->hw_tag];
@@ -1356,7 +1356,7 @@
 			(qc->flags & ATA_QCFLAG_DMAMAP));
 		nv_adma_register_mode(qc->ap);
 		ata_bmdma_qc_prep(qc);
-		return;
+		return AC_ERR_OK;
 	}
 
 	cpb->resp_flags = NV_CPB_RESP_DONE;
@@ -1388,6 +1388,8 @@
 	cpb->ctl_flags = ctl_flags;
 	wmb();
 	cpb->resp_flags = 0;
+
+	return AC_ERR_OK;
 }
 
 static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc)
@@ -1950,17 +1952,19 @@
 	return 0;
 }
 
-static void nv_swncq_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors nv_swncq_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (qc->tf.protocol != ATA_PROT_NCQ) {
 		ata_bmdma_qc_prep(qc);
-		return;
+		return AC_ERR_OK;
 	}
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	nv_swncq_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static void nv_swncq_fill_sg(struct ata_queued_cmd *qc)
@@ -2096,7 +2100,7 @@
 	pp->dhfis_bits &= ~done_mask;
 	pp->dmafis_bits &= ~done_mask;
 	pp->sdbfis_bits |= done_mask;
-	ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+	ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 
 	if (!ap->qc_active) {
 		DPRINTK("over\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_promise.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_promise.c
@@ -139,7 +139,7 @@
 static int pdc_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int pdc_common_port_start(struct ata_port *ap);
 static int pdc_sata_port_start(struct ata_port *ap);
-static void pdc_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static int pdc_check_atapi_dma(struct ata_queued_cmd *qc);
@@ -633,7 +633,7 @@
 	prd[idx - 1].flags_len |= cpu_to_le32(ATA_PRD_EOT);
 }
 
-static void pdc_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct pdc_port_priv *pp = qc->ap->private_data;
 	unsigned int i;
@@ -665,6 +665,8 @@
 	default:
 		break;
 	}
+
+	return AC_ERR_OK;
 }
 
 static int pdc_is_sataii_tx4(unsigned long flags)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_qstor.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_qstor.c
@@ -100,7 +100,7 @@
 static int qs_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int qs_port_start(struct ata_port *ap);
 static void qs_host_stop(struct ata_host *host);
-static void qs_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors qs_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int qs_qc_issue(struct ata_queued_cmd *qc);
 static int qs_check_atapi_dma(struct ata_queued_cmd *qc);
 static void qs_freeze(struct ata_port *ap);
@@ -260,7 +260,7 @@
 	return si;
 }
 
-static void qs_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors qs_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct qs_port_priv *pp = qc->ap->private_data;
 	u8 dflags = QS_DF_PORD, *buf = pp->pkt;
@@ -272,7 +272,7 @@
 
 	qs_enter_reg_mode(qc->ap);
 	if (qc->tf.protocol != ATA_PROT_DMA)
-		return;
+		return AC_ERR_OK;
 
 	nelem = qs_fill_sg(qc);
 
@@ -295,6 +295,8 @@
 
 	/* frame information structure (FIS) */
 	ata_tf_to_fis(&qc->tf, 0, 1, &buf[32]);
+
+	return AC_ERR_OK;
 }
 
 static inline void qs_packet_start(struct ata_queued_cmd *qc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_rcar.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_rcar.c
@@ -120,7 +120,7 @@
 /* Descriptor table word 0 bit (when DTA32M = 1) */
 #define SATA_RCAR_DTEND			BIT(0)
 
-#define SATA_RCAR_DMA_BOUNDARY		0x1FFFFFFEUL
+#define SATA_RCAR_DMA_BOUNDARY		0x1FFFFFFFUL
 
 /* Gen2 Physical Layer Control Registers */
 #define RCAR_GEN2_PHY_CTL1_REG		0x1704
@@ -550,12 +550,14 @@
 	prd[si - 1].addr |= cpu_to_le32(SATA_RCAR_DTEND);
 }
 
-static void sata_rcar_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sata_rcar_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	sata_rcar_bmdma_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static void sata_rcar_bmdma_setup(struct ata_queued_cmd *qc)
@@ -905,7 +907,7 @@
 	pm_runtime_enable(dev);
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0)
-		goto err_pm_disable;
+		goto err_pm_put;
 
 	host = ata_host_alloc(dev, 1);
 	if (!host) {
@@ -935,7 +937,6 @@
 
 err_pm_put:
 	pm_runtime_put(dev);
-err_pm_disable:
 	pm_runtime_disable(dev);
 	return ret;
 }
@@ -989,8 +990,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put(dev);
 		return ret;
+	}
 
 	if (priv->type == RCAR_GEN3_SATA) {
 		sata_rcar_init_module(priv);
@@ -1015,8 +1018,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put(dev);
 		return ret;
+	}
 
 	sata_rcar_setup_port(host);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_sil.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_sil.c
@@ -103,7 +103,7 @@
 static int sil_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
 static int sil_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 static int sil_set_mode(struct ata_link *link, struct ata_device **r_failed);
-static void sil_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors sil_qc_prep(struct ata_queued_cmd *qc);
 static void sil_bmdma_setup(struct ata_queued_cmd *qc);
 static void sil_bmdma_start(struct ata_queued_cmd *qc);
 static void sil_bmdma_stop(struct ata_queued_cmd *qc);
@@ -317,12 +317,14 @@
 		last_prd->flags_len |= cpu_to_le32(ATA_PRD_EOT);
 }
 
-static void sil_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sil_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	sil_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static unsigned char sil_get_device_cache_line(struct pci_dev *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_sil24.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_sil24.c
@@ -326,7 +326,7 @@
 static int sil24_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val);
 static int sil24_scr_write(struct ata_link *link, unsigned sc_reg, u32 val);
 static int sil24_qc_defer(struct ata_queued_cmd *qc);
-static void sil24_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
 static bool sil24_qc_fill_rtf(struct ata_queued_cmd *qc);
 static void sil24_pmp_attach(struct ata_port *ap);
@@ -830,7 +830,7 @@
 	return ata_std_qc_defer(qc);
 }
 
-static void sil24_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct sil24_port_priv *pp = ap->private_data;
@@ -874,6 +874,8 @@
 
 	if (qc->flags & ATA_QCFLAG_DMAMAP)
 		sil24_fill_sg(qc, sge);
+
+	return AC_ERR_OK;
 }
 
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ata/sata_sx4.c
+++ linux-gkeop-5.4-5.4.0/drivers/ata/sata_sx4.c
@@ -202,7 +202,7 @@
 static void pdc_freeze(struct ata_port *ap);
 static void pdc_thaw(struct ata_port *ap);
 static int pdc_port_start(struct ata_port *ap);
-static void pdc20621_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors pdc20621_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static unsigned int pdc20621_dimm_init(struct ata_host *host);
@@ -530,7 +530,7 @@
 	VPRINTK("ata pkt buf ofs %u, mmio copied\n", i);
 }
 
-static void pdc20621_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pdc20621_qc_prep(struct ata_queued_cmd *qc)
 {
 	switch (qc->tf.protocol) {
 	case ATA_PROT_DMA:
@@ -542,6 +542,8 @@
 	default:
 		break;
 	}
+
+	return AC_ERR_OK;
 }
 
 static void __pdc20621_push_hdma(struct ata_queued_cmd *qc,
--- linux-gkeop-5.4-5.4.0.orig/drivers/atm/atmtcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/atm/atmtcp.c
@@ -433,9 +433,15 @@
 		return -EMEDIUMTYPE;
 	}
 	dev_data = PRIV(dev);
-	if (!dev_data->persist) return 0;
+	if (!dev_data->persist) {
+		atm_dev_put(dev);
+		return 0;
+	}
 	dev_data->persist = 0;
-	if (PRIV(dev)->vcc) return 0;
+	if (PRIV(dev)->vcc) {
+		atm_dev_put(dev);
+		return 0;
+	}
 	kfree(dev_data);
 	atm_dev_put(dev);
 	atm_dev_deregister(dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/atm/eni.c
+++ linux-gkeop-5.4-5.4.0/drivers/atm/eni.c
@@ -374,7 +374,7 @@
 		here = (eni_vcc->descr+skip) & (eni_vcc->words-1);
 		dma[j++] = (here << MID_DMA_COUNT_SHIFT) | (vcc->vci
 		    << MID_DMA_VCI_SHIFT) | MID_DT_JK;
-		j++;
+		dma[j++] = 0;
 	}
 	here = (eni_vcc->descr+size+skip) & (eni_vcc->words-1);
 	if (!eff) size += skip;
@@ -447,7 +447,7 @@
 	if (size != eff) {
 		dma[j++] = (here << MID_DMA_COUNT_SHIFT) |
 		    (vcc->vci << MID_DMA_VCI_SHIFT) | MID_DT_JK;
-		j++;
+		dma[j++] = 0;
 	}
 	if (!j || j > 2*RX_DMA_BUF) {
 		printk(KERN_CRIT DEV_LABEL "!j or j too big!!!\n");
@@ -2245,7 +2245,7 @@
 
 	rc = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32));
 	if (rc < 0)
-		goto out;
+		goto err_disable;
 
 	rc = -ENOMEM;
 	eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/atm/firestream.c
+++ linux-gkeop-5.4-5.4.0/drivers/atm/firestream.c
@@ -912,6 +912,7 @@
 			}
 			if (!to) {
 				printk ("No more free channels for FS50..\n");
+				kfree(vcc);
 				return -EBUSY;
 			}
 			vcc->channo = dev->channo;
@@ -922,6 +923,7 @@
 			if (((DO_DIRECTION(rxtp) && dev->atm_vccs[vcc->channo])) ||
 			    ( DO_DIRECTION(txtp) && test_bit (vcc->channo, dev->tx_inuse))) {
 				printk ("Channel is in use for FS155.\n");
+				kfree(vcc);
 				return -EBUSY;
 			}
 		}
@@ -935,6 +937,7 @@
 			    tc, sizeof (struct fs_transmit_config));
 		if (!tc) {
 			fs_dprintk (FS_DEBUG_OPEN, "fs: can't alloc transmit_config.\n");
+			kfree(vcc);
 			return -ENOMEM;
 		}
 
@@ -995,6 +998,7 @@
 				error = make_rate (pcr, r, &tmc0, NULL);
 				if (error) {
 					kfree(tc);
+					kfree(vcc);
 					return error;
 				}
 			}
--- linux-gkeop-5.4-5.4.0.orig/drivers/atm/fore200e.c
+++ linux-gkeop-5.4-5.4.0/drivers/atm/fore200e.c
@@ -1414,12 +1414,14 @@
 static void
 fore200e_close(struct atm_vcc* vcc)
 {
-    struct fore200e*        fore200e = FORE200E_DEV(vcc->dev);
     struct fore200e_vcc*    fore200e_vcc;
+    struct fore200e*        fore200e;
     struct fore200e_vc_map* vc_map;
     unsigned long           flags;
 
     ASSERT(vcc);
+    fore200e = FORE200E_DEV(vcc->dev);
+
     ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
     ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
 
@@ -1464,10 +1466,10 @@
 static int
 fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
 {
-    struct fore200e*        fore200e     = FORE200E_DEV(vcc->dev);
-    struct fore200e_vcc*    fore200e_vcc = FORE200E_VCC(vcc);
+    struct fore200e*        fore200e;
+    struct fore200e_vcc*    fore200e_vcc;
     struct fore200e_vc_map* vc_map;
-    struct host_txq*        txq          = &fore200e->host_txq;
+    struct host_txq*        txq;
     struct host_txq_entry*  entry;
     struct tpd*             tpd;
     struct tpd_haddr        tpd_haddr;
@@ -1480,9 +1482,18 @@
     unsigned char*          data;
     unsigned long           flags;
 
-    ASSERT(vcc);
-    ASSERT(fore200e);
-    ASSERT(fore200e_vcc);
+    if (!vcc)
+        return -EINVAL;
+
+    fore200e = FORE200E_DEV(vcc->dev);
+    fore200e_vcc = FORE200E_VCC(vcc);
+
+    if (!fore200e)
+        return -EINVAL;
+
+    txq = &fore200e->host_txq;
+    if (!fore200e_vcc)
+        return -EINVAL;
 
     if (!test_bit(ATM_VF_READY, &vcc->flags)) {
 	DPRINTK(1, "VC %d.%d.%d not ready for tx\n", vcc->itf, vcc->vpi, vcc->vpi);
--- linux-gkeop-5.4-5.4.0.orig/drivers/atm/idt77252.c
+++ linux-gkeop-5.4-5.4.0/drivers/atm/idt77252.c
@@ -3606,7 +3606,7 @@
 
 	if ((err = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32)))) {
 		printk("idt77252: can't enable DMA for PCI device at %s\n", pci_name(pcidev));
-		return err;
+		goto err_out_disable_pdev;
 	}
 
 	card = kzalloc(sizeof(struct idt77252_dev), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/atm/nicstar.c
+++ linux-gkeop-5.4-5.4.0/drivers/atm/nicstar.c
@@ -1706,6 +1706,8 @@
 
 	if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
 		atomic_inc(&vcc->stats->tx_err);
+		dma_unmap_single(&card->pcidev->dev, NS_PRV_DMA(skb), skb->len,
+				 DMA_TO_DEVICE);
 		dev_kfree_skb_any(skb);
 		return -EIO;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/auxdisplay/ht16k33.c
+++ linux-gkeop-5.4-5.4.0/drivers/auxdisplay/ht16k33.c
@@ -117,8 +117,7 @@
 {
 	struct ht16k33_fbdev *fbdev = &priv->fbdev;
 
-	schedule_delayed_work(&fbdev->work,
-			      msecs_to_jiffies(HZ / fbdev->refresh_rate));
+	schedule_delayed_work(&fbdev->work, HZ / fbdev->refresh_rate);
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/arch_topology.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/arch_topology.c
@@ -270,7 +270,7 @@
 static int __init parse_core(struct device_node *core, int package_id,
 			     int core_id)
 {
-	char name[10];
+	char name[20];
 	bool leaf = true;
 	int i = 0;
 	int cpu;
@@ -317,7 +317,7 @@
 
 static int __init parse_cluster(struct device_node *cluster, int depth)
 {
-	char name[10];
+	char name[20];
 	bool leaf = true;
 	bool has_cores = false;
 	struct device_node *c;
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/component.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/component.c
@@ -102,11 +102,11 @@
 	seq_printf(s, "%-40s %20s\n", "device name", "status");
 	seq_puts(s, "-------------------------------------------------------------\n");
 	for (i = 0; i < match->num; i++) {
-		struct device *d = (struct device *)match->compare[i].data;
+		struct component *component = match->compare[i].component;
 
-		seq_printf(s, "%-40s %20s\n", dev_name(d),
-			   match->compare[i].component ?
-			   "registered" : "not registered");
+		seq_printf(s, "%-40s %20s\n",
+			   component ? dev_name(component->dev) : "(unknown)",
+			   component ? (component->bound ? "bound" : "not bound") : "not registered");
 	}
 	mutex_unlock(&component_mutex);
 
@@ -257,7 +257,8 @@
 	ret = master->ops->bind(master->dev);
 	if (ret < 0) {
 		devres_release_group(master->dev, NULL);
-		dev_info(master->dev, "master bind failed: %d\n", ret);
+		if (ret != -EPROBE_DEFER)
+			dev_info(master->dev, "master bind failed: %d\n", ret);
 		return ret;
 	}
 
@@ -611,8 +612,9 @@
 		devres_release_group(component->dev, NULL);
 		devres_release_group(master->dev, NULL);
 
-		dev_err(master->dev, "failed to bind %s (ops %ps): %d\n",
-			dev_name(component->dev), component->ops, ret);
+		if (ret != -EPROBE_DEFER)
+			dev_err(master->dev, "failed to bind %s (ops %ps): %d\n",
+				dev_name(component->dev), component->ops, ret);
 	}
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/core.c
@@ -106,6 +106,16 @@
 #endif
 #endif /* !CONFIG_SRCU */
 
+static bool device_is_ancestor(struct device *dev, struct device *target)
+{
+	while (target->parent) {
+		target = target->parent;
+		if (dev == target)
+			return true;
+	}
+	return false;
+}
+
 /**
  * device_is_dependent - Check if one device depends on another one
  * @dev: Device to check dependencies for.
@@ -119,7 +129,12 @@
 	struct device_link *link;
 	int ret;
 
-	if (dev == target)
+	/*
+	 * The "ancestors" check is needed to catch the case when the target
+	 * device has not been completely initialized yet and it is still
+	 * missing from the list of children of its parent device.
+	 */
+	if (dev == target || device_is_ancestor(dev, target))
 		return 1;
 
 	ret = device_for_each_child(dev, target, device_is_dependent);
@@ -454,8 +469,7 @@
 	dev_dbg(link->consumer, "Dropping the link to %s\n",
 		dev_name(link->supplier));
 
-	if (link->flags & DL_FLAG_PM_RUNTIME)
-		pm_runtime_drop_link(link->consumer);
+	pm_runtime_drop_link(link);
 
 	list_del_rcu(&link->s_node);
 	list_del_rcu(&link->c_node);
@@ -469,8 +483,7 @@
 	dev_info(link->consumer, "Dropping the link to %s\n",
 		 dev_name(link->supplier));
 
-	if (link->flags & DL_FLAG_PM_RUNTIME)
-		pm_runtime_drop_link(link->consumer);
+	pm_runtime_drop_link(link);
 
 	list_del(&link->s_node);
 	list_del(&link->c_node);
@@ -3170,6 +3183,126 @@
 }
 EXPORT_SYMBOL_GPL(device_move);
 
+static int device_attrs_change_owner(struct device *dev, kuid_t kuid,
+				     kgid_t kgid)
+{
+	struct kobject *kobj = &dev->kobj;
+	struct class *class = dev->class;
+	const struct device_type *type = dev->type;
+	int error;
+
+	if (class) {
+		/*
+		 * Change the device groups of the device class for @dev to
+		 * @kuid/@kgid.
+		 */
+		error = sysfs_groups_change_owner(kobj, class->dev_groups, kuid,
+						  kgid);
+		if (error)
+			return error;
+	}
+
+	if (type) {
+		/*
+		 * Change the device groups of the device type for @dev to
+		 * @kuid/@kgid.
+		 */
+		error = sysfs_groups_change_owner(kobj, type->groups, kuid,
+						  kgid);
+		if (error)
+			return error;
+	}
+
+	/* Change the device groups of @dev to @kuid/@kgid. */
+	error = sysfs_groups_change_owner(kobj, dev->groups, kuid, kgid);
+	if (error)
+		return error;
+
+	if (device_supports_offline(dev) && !dev->offline_disabled) {
+		/* Change online device attributes of @dev to @kuid/@kgid. */
+		error = sysfs_file_change_owner(kobj, dev_attr_online.attr.name,
+						kuid, kgid);
+		if (error)
+			return error;
+	}
+
+	return 0;
+}
+
+/**
+ * device_change_owner - change the owner of an existing device.
+ * @dev: device.
+ * @kuid: new owner's kuid
+ * @kgid: new owner's kgid
+ *
+ * This changes the owner of @dev and its corresponding sysfs entries to
+ * @kuid/@kgid. This function closely mirrors how @dev was added via driver
+ * core.
+ *
+ * Returns 0 on success or error code on failure.
+ */
+int device_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid)
+{
+	int error;
+	struct kobject *kobj = &dev->kobj;
+
+	dev = get_device(dev);
+	if (!dev)
+		return -EINVAL;
+
+	/*
+	 * Change the kobject and the default attributes and groups of the
+	 * ktype associated with it to @kuid/@kgid.
+	 */
+	error = sysfs_change_owner(kobj, kuid, kgid);
+	if (error)
+		goto out;
+
+	/*
+	 * Change the uevent file for @dev to the new owner. The uevent file
+	 * was created in a separate step when @dev got added and we mirror
+	 * that step here.
+	 */
+	error = sysfs_file_change_owner(kobj, dev_attr_uevent.attr.name, kuid,
+					kgid);
+	if (error)
+		goto out;
+
+	/*
+	 * Change the device groups, the device groups associated with the
+	 * device class, and the groups associated with the device type of @dev
+	 * to @kuid/@kgid.
+	 */
+	error = device_attrs_change_owner(dev, kuid, kgid);
+	if (error)
+		goto out;
+
+	error = dpm_sysfs_change_owner(dev, kuid, kgid);
+	if (error)
+		goto out;
+
+#ifdef CONFIG_BLOCK
+	if (sysfs_deprecated && dev->class == &block_class)
+		goto out;
+#endif
+
+	/*
+	 * Change the owner of the symlink located in the class directory of
+	 * the device class associated with @dev which points to the actual
+	 * directory entry for @dev to @kuid/@kgid. This ensures that the
+	 * symlink shows the same permissions as its target.
+	 */
+	error = sysfs_link_change_owner(&dev->class->p->subsys.kobj, &dev->kobj,
+					dev_name(dev), kuid, kgid);
+	if (error)
+		goto out;
+
+out:
+	put_device(dev);
+	return error;
+}
+EXPORT_SYMBOL_GPL(device_change_owner);
+
 /**
  * device_shutdown - call ->shutdown() on each device to shutdown.
  */
@@ -3400,9 +3533,10 @@
  */
 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 {
-	if (fwnode) {
-		struct fwnode_handle *fn = dev->fwnode;
+	struct device *parent = dev->parent;
+	struct fwnode_handle *fn = dev->fwnode;
 
+	if (fwnode) {
 		if (fwnode_is_primary(fn))
 			fn = fn->secondary;
 
@@ -3412,8 +3546,13 @@
 		}
 		dev->fwnode = fwnode;
 	} else {
-		dev->fwnode = fwnode_is_primary(dev->fwnode) ?
-			dev->fwnode->secondary : NULL;
+		if (fwnode_is_primary(fn)) {
+			dev->fwnode = fn->secondary;
+			if (!(parent && fn == parent->fwnode))
+				fn->secondary = NULL;
+		} else {
+			dev->fwnode = NULL;
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(set_primary_fwnode);
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/cpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/cpu.c
@@ -567,6 +567,12 @@
 	return sprintf(buf, "Not affected\n");
 }
 
+ssize_t __weak cpu_show_srbds(struct device *dev,
+			      struct device_attribute *attr, char *buf)
+{
+	return sprintf(buf, "Not affected\n");
+}
+
 static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL);
 static DEVICE_ATTR(spectre_v1, 0444, cpu_show_spectre_v1, NULL);
 static DEVICE_ATTR(spectre_v2, 0444, cpu_show_spectre_v2, NULL);
@@ -575,6 +581,7 @@
 static DEVICE_ATTR(mds, 0444, cpu_show_mds, NULL);
 static DEVICE_ATTR(tsx_async_abort, 0444, cpu_show_tsx_async_abort, NULL);
 static DEVICE_ATTR(itlb_multihit, 0444, cpu_show_itlb_multihit, NULL);
+static DEVICE_ATTR(srbds, 0444, cpu_show_srbds, NULL);
 
 static struct attribute *cpu_root_vulnerabilities_attrs[] = {
 	&dev_attr_meltdown.attr,
@@ -585,6 +592,7 @@
 	&dev_attr_mds.attr,
 	&dev_attr_tsx_async_abort.attr,
 	&dev_attr_itlb_multihit.attr,
+	&dev_attr_srbds.attr,
 	NULL
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/dd.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/dd.c
@@ -516,7 +516,11 @@
 	atomic_inc(&probe_count);
 	pr_debug("bus: '%s': %s: probing driver %s with device %s\n",
 		 drv->bus->name, __func__, drv->name, dev_name(dev));
-	WARN_ON(!list_empty(&dev->devres_head));
+	if (!list_empty(&dev->devres_head)) {
+		dev_crit(dev, "Resources present before probing\n");
+		ret = -EBUSY;
+		goto done;
+	}
 
 re_probe:
 	dev->driver = drv;
@@ -636,7 +640,7 @@
 	ret = 0;
 done:
 	atomic_dec(&probe_count);
-	wake_up(&probe_waitqueue);
+	wake_up_all(&probe_waitqueue);
 	return ret;
 }
 
@@ -869,7 +873,9 @@
 	int ret = 0;
 
 	device_lock(dev);
-	if (dev->driver) {
+	if (dev->p->dead) {
+		goto out_unlock;
+	} else if (dev->driver) {
 		if (device_is_bound(dev)) {
 			ret = 1;
 			goto out_unlock;
@@ -1099,6 +1105,8 @@
 
 	drv = dev->driver;
 	if (drv) {
+		pm_runtime_get_sync(dev);
+
 		while (device_links_busy(dev)) {
 			__device_driver_unlock(dev, parent);
 
@@ -1110,13 +1118,12 @@
 			 * have released the driver successfully while this one
 			 * was waiting, so check for that.
 			 */
-			if (dev->driver != drv)
+			if (dev->driver != drv) {
+				pm_runtime_put(dev);
 				return;
+			}
 		}
 
-		pm_runtime_get_sync(dev);
-		pm_runtime_clean_up_links(dev);
-
 		driver_sysfs_remove(dev);
 
 		if (dev->bus)
@@ -1132,6 +1139,13 @@
 			dev->bus->remove(dev);
 		else if (drv->remove)
 			drv->remove(dev);
+		/*
+		 * A concurrent invocation of the same function might
+		 * have released the driver successfully while this one
+		 * was waiting, so check for that.
+		 */
+		if (dev->driver != drv)
+			return;
 
 		device_links_driver_cleanup(dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/firmware_loader/builtin/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/base/firmware_loader/builtin/Makefile
@@ -8,7 +8,8 @@
 obj-y  := $(addsuffix .gen.o, $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)))
 
 FWNAME    = $(patsubst $(obj)/%.gen.S,%,$@)
-FWSTR     = $(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME))))
+comma     := ,
+FWSTR     = $(subst $(comma),_,$(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME)))))
 ASM_WORD  = $(if $(CONFIG_64BIT),.quad,.long)
 ASM_ALIGN = $(if $(CONFIG_64BIT),3,2)
 PROGBITS  = $(if $(CONFIG_ARM),%,@)progbits
@@ -16,7 +17,7 @@
 filechk_fwbin = \
 	echo "/* Generated by $(src)/Makefile */"		;\
 	echo "    .section .rodata"				;\
-	echo "    .p2align $(ASM_ALIGN)"			;\
+	echo "    .p2align 4"					;\
 	echo "_fw_$(FWSTR)_bin:"				;\
 	echo "    .incbin \"$(fwdir)/$(FWNAME)\""		;\
 	echo "_fw_end:"						;\
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/firmware_loader/fallback.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/firmware_loader/fallback.c
@@ -525,7 +525,7 @@
 	}
 
 	retval = fw_sysfs_wait_timeout(fw_priv, timeout);
-	if (retval < 0) {
+	if (retval < 0 && retval != -ENOENT) {
 		mutex_lock(&fw_lock);
 		fw_load_abort(fw_sysfs);
 		mutex_unlock(&fw_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/firmware_loader/firmware.h
+++ linux-gkeop-5.4-5.4.0/drivers/base/firmware_loader/firmware.h
@@ -139,10 +139,12 @@
 void fw_free_paged_buf(struct fw_priv *fw_priv);
 int fw_grow_paged_buf(struct fw_priv *fw_priv, int pages_needed);
 int fw_map_paged_buf(struct fw_priv *fw_priv);
+bool fw_is_paged_buf(struct fw_priv *fw_priv);
 #else
 static inline void fw_free_paged_buf(struct fw_priv *fw_priv) {}
 static inline int fw_grow_paged_buf(struct fw_priv *fw_priv, int pages_needed) { return -ENXIO; }
 static inline int fw_map_paged_buf(struct fw_priv *fw_priv) { return -ENXIO; }
+static inline bool fw_is_paged_buf(struct fw_priv *fw_priv) { return false; }
 #endif
 
 #endif /* __FIRMWARE_LOADER_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/firmware_loader/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/firmware_loader/main.c
@@ -252,9 +252,11 @@
 	list_del(&fw_priv->list);
 	spin_unlock(&fwc->lock);
 
-	fw_free_paged_buf(fw_priv); /* free leftover pages */
-	if (!fw_priv->allocated_size)
+	if (fw_is_paged_buf(fw_priv))
+		fw_free_paged_buf(fw_priv);
+	else if (!fw_priv->allocated_size)
 		vfree(fw_priv->data);
+
 	kfree_const(fw_priv->fw_name);
 	kfree(fw_priv);
 }
@@ -268,6 +270,11 @@
 }
 
 #ifdef CONFIG_FW_LOADER_PAGED_BUF
+bool fw_is_paged_buf(struct fw_priv *fw_priv)
+{
+	return fw_priv->is_paged_buf;
+}
+
 void fw_free_paged_buf(struct fw_priv *fw_priv)
 {
 	int i;
@@ -275,6 +282,8 @@
 	if (!fw_priv->pages)
 		return;
 
+	vunmap(fw_priv->data);
+
 	for (i = 0; i < fw_priv->nr_pages; i++)
 		__free_page(fw_priv->pages[i]);
 	kvfree(fw_priv->pages);
@@ -328,10 +337,6 @@
 	if (!fw_priv->data)
 		return -ENOMEM;
 
-	/* page table is no longer needed after mapping, let's free */
-	kvfree(fw_priv->pages);
-	fw_priv->pages = NULL;
-
 	return 0;
 }
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/memory.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/memory.c
@@ -114,30 +114,13 @@
 }
 
 /*
- * Show whether the memory block is likely to be offlineable (or is already
- * offline). Once offline, the memory block could be removed. The return
- * value does, however, not indicate that there is a way to remove the
- * memory block.
+ * Legacy interface that we cannot remove. Always indicate "removable"
+ * with CONFIG_MEMORY_HOTREMOVE - bad heuristic.
  */
 static ssize_t removable_show(struct device *dev, struct device_attribute *attr,
 			      char *buf)
 {
-	struct memory_block *mem = to_memory_block(dev);
-	unsigned long pfn;
-	int ret = 1, i;
-
-	if (mem->state != MEM_ONLINE)
-		goto out;
-
-	for (i = 0; i < sections_per_block; i++) {
-		if (!present_section_nr(mem->start_section_nr + i))
-			continue;
-		pfn = section_nr_to_pfn(mem->start_section_nr + i);
-		ret &= is_mem_section_removable(pfn, PAGES_PER_SECTION);
-	}
-
-out:
-	return sprintf(buf, "%d\n", ret);
+	return sprintf(buf, "%d\n", (int)IS_ENABLED(CONFIG_MEMORY_HOTREMOVE));
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/node.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/node.c
@@ -758,14 +758,36 @@
 	return pfn_to_nid(pfn);
 }
 
+static int do_register_memory_block_under_node(int nid,
+					       struct memory_block *mem_blk)
+{
+	int ret;
+
+	/*
+	 * If this memory block spans multiple nodes, we only indicate
+	 * the last processed node.
+	 */
+	mem_blk->nid = nid;
+
+	ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
+				       &mem_blk->dev.kobj,
+				       kobject_name(&mem_blk->dev.kobj));
+	if (ret)
+		return ret;
+
+	return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
+				&node_devices[nid]->dev.kobj,
+				kobject_name(&node_devices[nid]->dev.kobj));
+}
+
 /* register memory section under specified node if it spans that node */
-static int register_mem_sect_under_node(struct memory_block *mem_blk,
-					 void *arg)
+static int register_mem_block_under_node_early(struct memory_block *mem_blk,
+					       void *arg)
 {
 	unsigned long memory_block_pfns = memory_block_size_bytes() / PAGE_SIZE;
 	unsigned long start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
 	unsigned long end_pfn = start_pfn + memory_block_pfns - 1;
-	int ret, nid = *(int *)arg;
+	int nid = *(int *)arg;
 	unsigned long pfn;
 
 	for (pfn = start_pfn; pfn <= end_pfn; pfn++) {
@@ -782,39 +804,34 @@
 		}
 
 		/*
-		 * We need to check if page belongs to nid only for the boot
-		 * case, during hotplug we know that all pages in the memory
-		 * block belong to the same node.
-		 */
-		if (system_state == SYSTEM_BOOTING) {
-			page_nid = get_nid_for_pfn(pfn);
-			if (page_nid < 0)
-				continue;
-			if (page_nid != nid)
-				continue;
-		}
-
-		/*
-		 * If this memory block spans multiple nodes, we only indicate
-		 * the last processed node.
+		 * We need to check if page belongs to nid only at the boot
+		 * case because node's ranges can be interleaved.
 		 */
-		mem_blk->nid = nid;
-
-		ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
-					&mem_blk->dev.kobj,
-					kobject_name(&mem_blk->dev.kobj));
-		if (ret)
-			return ret;
+		page_nid = get_nid_for_pfn(pfn);
+		if (page_nid < 0)
+			continue;
+		if (page_nid != nid)
+			continue;
 
-		return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
-				&node_devices[nid]->dev.kobj,
-				kobject_name(&node_devices[nid]->dev.kobj));
+		return do_register_memory_block_under_node(nid, mem_blk);
 	}
 	/* mem section does not span the specified node */
 	return 0;
 }
 
 /*
+ * During hotplug we know that all pages in the memory block belong to the same
+ * node.
+ */
+static int register_mem_block_under_node_hotplug(struct memory_block *mem_blk,
+						 void *arg)
+{
+	int nid = *(int *)arg;
+
+	return do_register_memory_block_under_node(nid, mem_blk);
+}
+
+/*
  * Unregister a memory block device under the node it spans. Memory blocks
  * with multiple nodes cannot be offlined and therefore also never be removed.
  */
@@ -829,11 +846,19 @@
 			  kobject_name(&node_devices[mem_blk->nid]->dev.kobj));
 }
 
-int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn)
+int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn,
+		      enum meminit_context context)
 {
+	walk_memory_blocks_func_t func;
+
+	if (context == MEMINIT_HOTPLUG)
+		func = register_mem_block_under_node_hotplug;
+	else
+		func = register_mem_block_under_node_early;
+
 	return walk_memory_blocks(PFN_PHYS(start_pfn),
 				  PFN_PHYS(end_pfn - start_pfn), (void *)&nid,
-				  register_mem_sect_under_node);
+				  func);
 }
 
 #ifdef CONFIG_HUGETLBFS
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/platform.c
@@ -27,6 +27,7 @@
 #include <linux/limits.h>
 #include <linux/property.h>
 #include <linux/kmemleak.h>
+#include <linux/types.h>
 
 #include "base.h"
 #include "power/power.h"
@@ -48,7 +49,7 @@
 struct resource *platform_get_resource(struct platform_device *dev,
 				       unsigned int type, unsigned int num)
 {
-	int i;
+	u32 i;
 
 	for (i = 0; i < dev->num_resources; i++) {
 		struct resource *r = &dev->resource[i];
@@ -226,7 +227,7 @@
 					      unsigned int type,
 					      const char *name)
 {
-	int i;
+	u32 i;
 
 	for (i = 0; i < dev->num_resources; i++) {
 		struct resource *r = &dev->resource[i];
@@ -334,10 +335,10 @@
 {
 	if (!pdev->dev.coherent_dma_mask)
 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
-	if (!pdev->dma_mask)
-		pdev->dma_mask = DMA_BIT_MASK(32);
-	if (!pdev->dev.dma_mask)
-		pdev->dev.dma_mask = &pdev->dma_mask;
+	if (!pdev->dev.dma_mask) {
+		pdev->platform_dma_mask = DMA_BIT_MASK(32);
+		pdev->dev.dma_mask = &pdev->platform_dma_mask;
+	}
 };
 
 /**
@@ -473,7 +474,8 @@
  */
 int platform_device_add(struct platform_device *pdev)
 {
-	int i, ret;
+	u32 i;
+	int ret;
 
 	if (!pdev)
 		return -EINVAL;
@@ -541,7 +543,7 @@
 		pdev->id = PLATFORM_DEVID_AUTO;
 	}
 
-	while (--i >= 0) {
+	while (i--) {
 		struct resource *r = &pdev->resource[i];
 		if (r->parent)
 			release_resource(r);
@@ -562,7 +564,7 @@
  */
 void platform_device_del(struct platform_device *pdev)
 {
-	int i;
+	u32 i;
 
 	if (!IS_ERR_OR_NULL(pdev)) {
 		device_del(&pdev->dev);
@@ -632,20 +634,8 @@
 	pdev->dev.of_node_reused = pdevinfo->of_node_reused;
 
 	if (pdevinfo->dma_mask) {
-		/*
-		 * This memory isn't freed when the device is put,
-		 * I don't have a nice idea for that though.  Conceptually
-		 * dma_mask in struct device should not be a pointer.
-		 * See http://thread.gmane.org/gmane.linux.kernel.pci/9081
-		 */
-		pdev->dev.dma_mask =
-			kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
-		if (!pdev->dev.dma_mask)
-			goto err;
-
-		kmemleak_ignore(pdev->dev.dma_mask);
-
-		*pdev->dev.dma_mask = pdevinfo->dma_mask;
+		pdev->platform_dma_mask = pdevinfo->dma_mask;
+		pdev->dev.dma_mask = &pdev->platform_dma_mask;
 		pdev->dev.coherent_dma_mask = pdevinfo->dma_mask;
 	}
 
@@ -670,7 +660,6 @@
 	if (ret) {
 err:
 		ACPI_COMPANION_SET(&pdev->dev, NULL);
-		kfree(pdev->dev.dma_mask);
 		platform_device_put(pdev);
 		return ERR_PTR(ret);
 	}
@@ -813,6 +802,8 @@
 	/* temporary section violation during probe() */
 	drv->probe = probe;
 	retval = code = __platform_driver_register(drv, module);
+	if (retval)
+		return retval;
 
 	/*
 	 * Fixup that section violation, being paranoid about code scanning
@@ -1278,6 +1269,11 @@
 };
 EXPORT_SYMBOL_GPL(platform_bus_type);
 
+static inline int __platform_match(struct device *dev, const void *drv)
+{
+	return platform_match(dev, (struct device_driver *)drv);
+}
+
 /**
  * platform_find_device_by_driver - Find a platform device with a given
  * driver.
@@ -1288,7 +1284,7 @@
 					      const struct device_driver *drv)
 {
 	return bus_find_device(&platform_bus_type, start, drv,
-			       (void *)platform_match);
+			       __platform_match);
 }
 EXPORT_SYMBOL_GPL(platform_find_device_by_driver);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/power/domain.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/power/domain.c
@@ -2615,7 +2615,7 @@
 
 	ret = of_count_phandle_with_args(dn, "domain-idle-states", NULL);
 	if (ret <= 0)
-		return ret;
+		return ret == -ENOENT ? 0 : ret;
 
 	/* Loop over the phandles until all the requested entry is found */
 	of_for_each_phandle(&it, ret, dn, "domain-idle-states", NULL, 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/power/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/power/main.c
@@ -273,10 +273,38 @@
 	device_links_read_unlock(idx);
 }
 
-static void dpm_wait_for_superior(struct device *dev, bool async)
+static bool dpm_wait_for_superior(struct device *dev, bool async)
 {
-	dpm_wait(dev->parent, async);
+	struct device *parent;
+
+	/*
+	 * If the device is resumed asynchronously and the parent's callback
+	 * deletes both the device and the parent itself, the parent object may
+	 * be freed while this function is running, so avoid that by reference
+	 * counting the parent once more unless the device has been deleted
+	 * already (in which case return right away).
+	 */
+	mutex_lock(&dpm_list_mtx);
+
+	if (!device_pm_initialized(dev)) {
+		mutex_unlock(&dpm_list_mtx);
+		return false;
+	}
+
+	parent = get_device(dev->parent);
+
+	mutex_unlock(&dpm_list_mtx);
+
+	dpm_wait(parent, async);
+	put_device(parent);
+
 	dpm_wait_for_suppliers(dev, async);
+
+	/*
+	 * If the parent's callback has deleted the device, attempting to resume
+	 * it would be invalid, so avoid doing that then.
+	 */
+	return device_pm_initialized(dev);
 }
 
 static void dpm_wait_for_consumers(struct device *dev, bool async)
@@ -621,7 +649,8 @@
 	if (!dev->power.is_noirq_suspended)
 		goto Out;
 
-	dpm_wait_for_superior(dev, async);
+	if (!dpm_wait_for_superior(dev, async))
+		goto Out;
 
 	skip_resume = dev_pm_may_skip_resume(dev);
 
@@ -697,7 +726,7 @@
 
 	if (is_async(dev)) {
 		get_device(dev);
-		async_schedule(func, dev);
+		async_schedule_dev(func, dev);
 		return true;
 	}
 
@@ -829,7 +858,8 @@
 	if (!dev->power.is_late_suspended)
 		goto Out;
 
-	dpm_wait_for_superior(dev, async);
+	if (!dpm_wait_for_superior(dev, async))
+		goto Out;
 
 	callback = dpm_subsys_resume_early_cb(dev, state, &info);
 
@@ -944,7 +974,9 @@
 		goto Complete;
 	}
 
-	dpm_wait_for_superior(dev, async);
+	if (!dpm_wait_for_superior(dev, async))
+		goto Complete;
+
 	dpm_watchdog_set(&wd, dev);
 	device_lock(dev);
 
@@ -1696,13 +1728,17 @@
 	}
 
 	/*
-	 * If a device configured to wake up the system from sleep states
-	 * has been suspended at run time and there's a resume request pending
-	 * for it, this is equivalent to the device signaling wakeup, so the
-	 * system suspend operation should be aborted.
+	 * Wait for possible runtime PM transitions of the device in progress
+	 * to complete and if there's a runtime resume request pending for it,
+	 * resume it before proceeding with invoking the system-wide suspend
+	 * callbacks for it.
+	 *
+	 * If the system-wide suspend callbacks below change the configuration
+	 * of the device, they must disable runtime PM for it or otherwise
+	 * ensure that its runtime-resume callbacks will not be confused by that
+	 * change in case they are invoked going forward.
 	 */
-	if (pm_runtime_barrier(dev) && device_may_wakeup(dev))
-		pm_wakeup_event(dev, 0);
+	pm_runtime_barrier(dev);
 
 	if (pm_wakeup_pending()) {
 		dev->power.direct_complete = false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/power/power.h
+++ linux-gkeop-5.4-5.4.0/drivers/base/power/power.h
@@ -74,6 +74,7 @@
 extern void pm_qos_sysfs_remove_flags(struct device *dev);
 extern int pm_qos_sysfs_add_latency_tolerance(struct device *dev);
 extern void pm_qos_sysfs_remove_latency_tolerance(struct device *dev);
+extern int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid);
 
 #else /* CONFIG_PM */
 
@@ -88,6 +89,8 @@
 
 static inline int dpm_sysfs_add(struct device *dev) { return 0; }
 static inline void dpm_sysfs_remove(struct device *dev) {}
+static inline int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid,
+					 kgid_t kgid) { return 0; }
 
 #endif
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/power/runtime.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/power/runtime.c
@@ -291,8 +291,7 @@
 				device_links_read_lock_held()) {
 		int retval;
 
-		if (!(link->flags & DL_FLAG_PM_RUNTIME) ||
-		    READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND)
+		if (!(link->flags & DL_FLAG_PM_RUNTIME))
 			continue;
 
 		retval = pm_runtime_get_sync(link->supplier);
@@ -312,8 +311,6 @@
 
 	list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
 				device_links_read_lock_held()) {
-		if (READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND)
-			continue;
 
 		while (refcount_dec_not_one(&link->rpm_active))
 			pm_runtime_put(link->supplier);
@@ -328,22 +325,22 @@
 static int __rpm_callback(int (*cb)(struct device *), struct device *dev)
 	__releases(&dev->power.lock) __acquires(&dev->power.lock)
 {
-	int retval, idx;
 	bool use_links = dev->power.links_count > 0;
+	bool get = false;
+	int retval, idx;
+	bool put;
 
 	if (dev->power.irq_safe) {
 		spin_unlock(&dev->power.lock);
+	} else if (!use_links) {
+		spin_unlock_irq(&dev->power.lock);
 	} else {
+		get = dev->power.runtime_status == RPM_RESUMING;
+
 		spin_unlock_irq(&dev->power.lock);
 
-		/*
-		 * Resume suppliers if necessary.
-		 *
-		 * The device's runtime PM status cannot change until this
-		 * routine returns, so it is safe to read the status outside of
-		 * the lock.
-		 */
-		if (use_links && dev->power.runtime_status == RPM_RESUMING) {
+		/* Resume suppliers if necessary. */
+		if (get) {
 			idx = device_links_read_lock();
 
 			retval = rpm_get_suppliers(dev);
@@ -358,24 +355,36 @@
 
 	if (dev->power.irq_safe) {
 		spin_lock(&dev->power.lock);
-	} else {
-		/*
-		 * If the device is suspending and the callback has returned
-		 * success, drop the usage counters of the suppliers that have
-		 * been reference counted on its resume.
-		 *
-		 * Do that if resume fails too.
-		 */
-		if (use_links
-		    && ((dev->power.runtime_status == RPM_SUSPENDING && !retval)
-		    || (dev->power.runtime_status == RPM_RESUMING && retval))) {
-			idx = device_links_read_lock();
+		return retval;
+	}
 
- fail:
-			rpm_put_suppliers(dev);
+	spin_lock_irq(&dev->power.lock);
 
-			device_links_read_unlock(idx);
-		}
+	if (!use_links)
+		return retval;
+
+	/*
+	 * If the device is suspending and the callback has returned success,
+	 * drop the usage counters of the suppliers that have been reference
+	 * counted on its resume.
+	 *
+	 * Do that if the resume fails too.
+	 */
+	put = dev->power.runtime_status == RPM_SUSPENDING && !retval;
+	if (put)
+		__update_runtime_status(dev, RPM_SUSPENDED);
+	else
+		put = get && retval;
+
+	if (put) {
+		spin_unlock_irq(&dev->power.lock);
+
+		idx = device_links_read_lock();
+
+fail:
+		rpm_put_suppliers(dev);
+
+		device_links_read_unlock(idx);
 
 		spin_lock_irq(&dev->power.lock);
 	}
@@ -1619,42 +1628,6 @@
 }
 
 /**
- * pm_runtime_clean_up_links - Prepare links to consumers for driver removal.
- * @dev: Device whose driver is going to be removed.
- *
- * Check links from this device to any consumers and if any of them have active
- * runtime PM references to the device, drop the usage counter of the device
- * (as many times as needed).
- *
- * Links with the DL_FLAG_MANAGED flag unset are ignored.
- *
- * Since the device is guaranteed to be runtime-active at the point this is
- * called, nothing else needs to be done here.
- *
- * Moreover, this is called after device_links_busy() has returned 'false', so
- * the status of each link is guaranteed to be DL_STATE_SUPPLIER_UNBIND and
- * therefore rpm_active can't be manipulated concurrently.
- */
-void pm_runtime_clean_up_links(struct device *dev)
-{
-	struct device_link *link;
-	int idx;
-
-	idx = device_links_read_lock();
-
-	list_for_each_entry_rcu(link, &dev->links.consumers, s_node,
-				device_links_read_lock_held()) {
-		if (!(link->flags & DL_FLAG_MANAGED))
-			continue;
-
-		while (refcount_dec_not_one(&link->rpm_active))
-			pm_runtime_put_noidle(dev);
-	}
-
-	device_links_read_unlock(idx);
-}
-
-/**
  * pm_runtime_get_suppliers - Resume and reference-count supplier devices.
  * @dev: Consumer device.
  */
@@ -1705,7 +1678,7 @@
 	spin_unlock_irq(&dev->power.lock);
 }
 
-void pm_runtime_drop_link(struct device *dev)
+static void pm_runtime_drop_link_count(struct device *dev)
 {
 	spin_lock_irq(&dev->power.lock);
 	WARN_ON(dev->power.links_count == 0);
@@ -1713,6 +1686,25 @@
 	spin_unlock_irq(&dev->power.lock);
 }
 
+/**
+ * pm_runtime_drop_link - Prepare for device link removal.
+ * @link: Device link going away.
+ *
+ * Drop the link count of the consumer end of @link and decrement the supplier
+ * device's runtime PM usage counter as many times as needed to drop all of the
+ * PM runtime reference to it from the consumer.
+ */
+void pm_runtime_drop_link(struct device_link *link)
+{
+	if (!(link->flags & DL_FLAG_PM_RUNTIME))
+		return;
+
+	pm_runtime_drop_link_count(link->consumer);
+
+	while (refcount_dec_not_one(&link->rpm_active))
+		pm_runtime_put(link->supplier);
+}
+
 static bool pm_runtime_need_not_resume(struct device *dev)
 {
 	return atomic_read(&dev->power.usage_count) <= 1 &&
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/power/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/power/sysfs.c
@@ -480,6 +480,14 @@
 	return enabled ? sprintf(buf, "%lld\n", msec) : sprintf(buf, "\n");
 }
 
+static inline int dpm_sysfs_wakeup_change_owner(struct device *dev, kuid_t kuid,
+						kgid_t kgid)
+{
+	if (dev->power.wakeup && dev->power.wakeup->dev)
+		return device_change_owner(dev->power.wakeup->dev, kuid, kgid);
+	return 0;
+}
+
 static DEVICE_ATTR_RO(wakeup_last_time_ms);
 
 #ifdef CONFIG_PM_AUTOSLEEP
@@ -501,7 +509,13 @@
 
 static DEVICE_ATTR_RO(wakeup_prevent_sleep_time_ms);
 #endif /* CONFIG_PM_AUTOSLEEP */
-#endif /* CONFIG_PM_SLEEP */
+#else /* CONFIG_PM_SLEEP */
+static inline int dpm_sysfs_wakeup_change_owner(struct device *dev, kuid_t kuid,
+						kgid_t kgid)
+{
+	return 0;
+}
+#endif
 
 #ifdef CONFIG_PM_ADVANCED_DEBUG
 static ssize_t runtime_usage_show(struct device *dev,
@@ -684,6 +698,45 @@
 	return rc;
 }
 
+int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid)
+{
+	int rc;
+
+	if (device_pm_not_required(dev))
+		return 0;
+
+	rc = sysfs_group_change_owner(&dev->kobj, &pm_attr_group, kuid, kgid);
+	if (rc)
+		return rc;
+
+	if (pm_runtime_callbacks_present(dev)) {
+		rc = sysfs_group_change_owner(
+			&dev->kobj, &pm_runtime_attr_group, kuid, kgid);
+		if (rc)
+			return rc;
+	}
+
+	if (device_can_wakeup(dev)) {
+		rc = sysfs_group_change_owner(&dev->kobj, &pm_wakeup_attr_group,
+					      kuid, kgid);
+		if (rc)
+			return rc;
+
+		rc = dpm_sysfs_wakeup_change_owner(dev, kuid, kgid);
+		if (rc)
+			return rc;
+	}
+
+	if (dev->power.set_latency_tolerance) {
+		rc = sysfs_group_change_owner(
+			&dev->kobj, &pm_qos_latency_tolerance_attr_group, kuid,
+			kgid);
+		if (rc)
+			return rc;
+	}
+	return 0;
+}
+
 int wakeup_sysfs_add(struct device *dev)
 {
 	return sysfs_merge_group(&dev->kobj, &pm_wakeup_attr_group);
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/power/wakeup.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/power/wakeup.c
@@ -241,7 +241,9 @@
 {
 	if (ws) {
 		wakeup_source_remove(ws);
-		wakeup_source_sysfs_remove(ws);
+		if (ws->dev)
+			wakeup_source_sysfs_remove(ws);
+
 		wakeup_source_destroy(ws);
 	}
 }
@@ -1071,6 +1073,9 @@
 		break;
 	}
 
+	if (!next_ws)
+		print_wakeup_source_stats(m, &deleted_ws);
+
 	return next_ws;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/regmap/internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/base/regmap/internal.h
@@ -259,7 +259,7 @@
 int regcache_lookup_reg(struct regmap *map, unsigned int reg);
 
 int _regmap_raw_write(struct regmap *map, unsigned int reg,
-		      const void *val, size_t val_len);
+		      const void *val, size_t val_len, bool noinc);
 
 void regmap_async_complete_cb(struct regmap_async *async, int ret);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/regmap/regcache.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/regmap/regcache.c
@@ -717,7 +717,7 @@
 
 	map->cache_bypass = true;
 
-	ret = _regmap_raw_write(map, base, *data, count * val_bytes);
+	ret = _regmap_raw_write(map, base, *data, count * val_bytes, false);
 	if (ret)
 		dev_err(map->dev, "Unable to sync registers %#x-%#x. %d\n",
 			base, cur - map->reg_stride, ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/regmap/regmap-debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/regmap/regmap-debugfs.c
@@ -227,6 +227,9 @@
 	if (*ppos < 0 || !count)
 		return -EINVAL;
 
+	if (count > (PAGE_SIZE << (MAX_ORDER - 1)))
+		count = PAGE_SIZE << (MAX_ORDER - 1);
+
 	buf = kmalloc(count, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
@@ -371,6 +374,9 @@
 	if (*ppos < 0 || !count)
 		return -EINVAL;
 
+	if (count > (PAGE_SIZE << (MAX_ORDER - 1)))
+		count = PAGE_SIZE << (MAX_ORDER - 1);
+
 	buf = kmalloc(count, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
@@ -457,29 +463,31 @@
 {
 	struct regmap *map = container_of(file->private_data,
 					  struct regmap, cache_only);
-	ssize_t result;
-	bool was_enabled, require_sync = false;
+	bool new_val, require_sync = false;
 	int err;
 
-	map->lock(map->lock_arg);
-
-	was_enabled = map->cache_only;
+	err = kstrtobool_from_user(user_buf, count, &new_val);
+	/* Ignore malforned data like debugfs_write_file_bool() */
+	if (err)
+		return count;
+
+	err = debugfs_file_get(file->f_path.dentry);
+	if (err)
+		return err;
 
-	result = debugfs_write_file_bool(file, user_buf, count, ppos);
-	if (result < 0) {
-		map->unlock(map->lock_arg);
-		return result;
-	}
+	map->lock(map->lock_arg);
 
-	if (map->cache_only && !was_enabled) {
+	if (new_val && !map->cache_only) {
 		dev_warn(map->dev, "debugfs cache_only=Y forced\n");
 		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
-	} else if (!map->cache_only && was_enabled) {
+	} else if (!new_val && map->cache_only) {
 		dev_warn(map->dev, "debugfs cache_only=N forced: syncing cache\n");
 		require_sync = true;
 	}
+	map->cache_only = new_val;
 
 	map->unlock(map->lock_arg);
+	debugfs_file_put(file->f_path.dentry);
 
 	if (require_sync) {
 		err = regcache_sync(map);
@@ -487,7 +495,7 @@
 			dev_err(map->dev, "Failed to sync cache %d\n", err);
 	}
 
-	return result;
+	return count;
 }
 
 static const struct file_operations regmap_cache_only_fops = {
@@ -502,28 +510,32 @@
 {
 	struct regmap *map = container_of(file->private_data,
 					  struct regmap, cache_bypass);
-	ssize_t result;
-	bool was_enabled;
-
-	map->lock(map->lock_arg);
+	bool new_val;
+	int err;
 
-	was_enabled = map->cache_bypass;
+	err = kstrtobool_from_user(user_buf, count, &new_val);
+	/* Ignore malforned data like debugfs_write_file_bool() */
+	if (err)
+		return count;
+
+	err = debugfs_file_get(file->f_path.dentry);
+	if (err)
+		return err;
 
-	result = debugfs_write_file_bool(file, user_buf, count, ppos);
-	if (result < 0)
-		goto out;
+	map->lock(map->lock_arg);
 
-	if (map->cache_bypass && !was_enabled) {
+	if (new_val && !map->cache_bypass) {
 		dev_warn(map->dev, "debugfs cache_bypass=Y forced\n");
 		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
-	} else if (!map->cache_bypass && was_enabled) {
+	} else if (!new_val && map->cache_bypass) {
 		dev_warn(map->dev, "debugfs cache_bypass=N forced\n");
 	}
+	map->cache_bypass = new_val;
 
-out:
 	map->unlock(map->lock_arg);
+	debugfs_file_put(file->f_path.dentry);
 
-	return result;
+	return count;
 }
 
 static const struct file_operations regmap_cache_bypass_fops = {
@@ -571,8 +583,12 @@
 		devname = dev_name(map->dev);
 
 	if (name) {
-		map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
+		if (!map->debugfs_name) {
+			map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
 					      devname, name);
+			if (!map->debugfs_name)
+				return;
+		}
 		name = map->debugfs_name;
 	} else {
 		name = devname;
@@ -580,9 +596,10 @@
 
 	if (!strcmp(name, "dummy")) {
 		kfree(map->debugfs_name);
-
 		map->debugfs_name = kasprintf(GFP_KERNEL, "dummy%d",
 						dummy_index);
+		if (!map->debugfs_name)
+				return;
 		name = map->debugfs_name;
 		dummy_index++;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/regmap/regmap-i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/regmap/regmap-i2c.c
@@ -246,6 +246,63 @@
 	.max_raw_write = I2C_SMBUS_BLOCK_MAX,
 };
 
+static int regmap_i2c_smbus_i2c_write_reg16(void *context, const void *data,
+				      size_t count)
+{
+	struct device *dev = context;
+	struct i2c_client *i2c = to_i2c_client(dev);
+
+	if (count < 2)
+		return -EINVAL;
+
+	count--;
+	return i2c_smbus_write_i2c_block_data(i2c, ((u8 *)data)[0], count,
+					      (u8 *)data + 1);
+}
+
+static int regmap_i2c_smbus_i2c_read_reg16(void *context, const void *reg,
+				     size_t reg_size, void *val,
+				     size_t val_size)
+{
+	struct device *dev = context;
+	struct i2c_client *i2c = to_i2c_client(dev);
+	int ret, count, len = val_size;
+
+	if (reg_size != 2)
+		return -EINVAL;
+
+	ret = i2c_smbus_write_byte_data(i2c, ((u16 *)reg)[0] & 0xff,
+					((u16 *)reg)[0] >> 8);
+	if (ret < 0)
+		return ret;
+
+	count = 0;
+	do {
+		/* Current Address Read */
+		ret = i2c_smbus_read_byte(i2c);
+		if (ret < 0)
+			break;
+
+		*((u8 *)val++) = ret;
+		count++;
+		len--;
+	} while (len > 0);
+
+	if (count == val_size)
+		return 0;
+	else if (ret < 0)
+		return ret;
+	else
+		return -EIO;
+}
+
+static const struct regmap_bus regmap_i2c_smbus_i2c_block_reg16 = {
+	.write = regmap_i2c_smbus_i2c_write_reg16,
+	.read = regmap_i2c_smbus_i2c_read_reg16,
+	.max_raw_read = I2C_SMBUS_BLOCK_MAX,
+	.max_raw_write = I2C_SMBUS_BLOCK_MAX,
+};
+
 static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c,
 					const struct regmap_config *config)
 {
@@ -255,6 +312,10 @@
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_I2C_BLOCK))
 		return &regmap_i2c_smbus_i2c_block;
+	else if (config->val_bits == 8 && config->reg_bits == 16 &&
+		i2c_check_functionality(i2c->adapter,
+					I2C_FUNC_SMBUS_I2C_BLOCK))
+		return &regmap_i2c_smbus_i2c_block_reg16;
 	else if (config->val_bits == 16 && config->reg_bits == 8 &&
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_WORD_DATA))
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/regmap/regmap-sdw.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/regmap/regmap-sdw.c
@@ -12,7 +12,7 @@
 	struct device *dev = context;
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
 
-	return sdw_write(slave, reg, val);
+	return sdw_write_no_pm(slave, reg, val);
 }
 
 static int regmap_sdw_read(void *context, unsigned int reg, unsigned int *val)
@@ -21,7 +21,7 @@
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
 	int read;
 
-	read = sdw_read(slave, reg);
+	read = sdw_read_no_pm(slave, reg);
 	if (read < 0)
 		return read;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/regmap/regmap.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/regmap/regmap.c
@@ -17,6 +17,7 @@
 #include <linux/delay.h>
 #include <linux/log2.h>
 #include <linux/hwspinlock.h>
+#include <asm/unaligned.h>
 
 #define CREATE_TRACE_POINTS
 #include "trace.h"
@@ -249,22 +250,20 @@
 
 static void regmap_format_16_be(void *buf, unsigned int val, unsigned int shift)
 {
-	__be16 *b = buf;
-
-	b[0] = cpu_to_be16(val << shift);
+	put_unaligned_be16(val << shift, buf);
 }
 
 static void regmap_format_16_le(void *buf, unsigned int val, unsigned int shift)
 {
-	__le16 *b = buf;
-
-	b[0] = cpu_to_le16(val << shift);
+	put_unaligned_le16(val << shift, buf);
 }
 
 static void regmap_format_16_native(void *buf, unsigned int val,
 				    unsigned int shift)
 {
-	*(u16 *)buf = val << shift;
+	u16 v = val << shift;
+
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_format_24(void *buf, unsigned int val, unsigned int shift)
@@ -280,43 +279,39 @@
 
 static void regmap_format_32_be(void *buf, unsigned int val, unsigned int shift)
 {
-	__be32 *b = buf;
-
-	b[0] = cpu_to_be32(val << shift);
+	put_unaligned_be32(val << shift, buf);
 }
 
 static void regmap_format_32_le(void *buf, unsigned int val, unsigned int shift)
 {
-	__le32 *b = buf;
-
-	b[0] = cpu_to_le32(val << shift);
+	put_unaligned_le32(val << shift, buf);
 }
 
 static void regmap_format_32_native(void *buf, unsigned int val,
 				    unsigned int shift)
 {
-	*(u32 *)buf = val << shift;
+	u32 v = val << shift;
+
+	memcpy(buf, &v, sizeof(v));
 }
 
 #ifdef CONFIG_64BIT
 static void regmap_format_64_be(void *buf, unsigned int val, unsigned int shift)
 {
-	__be64 *b = buf;
-
-	b[0] = cpu_to_be64((u64)val << shift);
+	put_unaligned_be64((u64) val << shift, buf);
 }
 
 static void regmap_format_64_le(void *buf, unsigned int val, unsigned int shift)
 {
-	__le64 *b = buf;
-
-	b[0] = cpu_to_le64((u64)val << shift);
+	put_unaligned_le64((u64) val << shift, buf);
 }
 
 static void regmap_format_64_native(void *buf, unsigned int val,
 				    unsigned int shift)
 {
-	*(u64 *)buf = (u64)val << shift;
+	u64 v = (u64) val << shift;
+
+	memcpy(buf, &v, sizeof(v));
 }
 #endif
 
@@ -333,35 +328,34 @@
 
 static unsigned int regmap_parse_16_be(const void *buf)
 {
-	const __be16 *b = buf;
-
-	return be16_to_cpu(b[0]);
+	return get_unaligned_be16(buf);
 }
 
 static unsigned int regmap_parse_16_le(const void *buf)
 {
-	const __le16 *b = buf;
-
-	return le16_to_cpu(b[0]);
+	return get_unaligned_le16(buf);
 }
 
 static void regmap_parse_16_be_inplace(void *buf)
 {
-	__be16 *b = buf;
+	u16 v = get_unaligned_be16(buf);
 
-	b[0] = be16_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_parse_16_le_inplace(void *buf)
 {
-	__le16 *b = buf;
+	u16 v = get_unaligned_le16(buf);
 
-	b[0] = le16_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static unsigned int regmap_parse_16_native(const void *buf)
 {
-	return *(u16 *)buf;
+	u16 v;
+
+	memcpy(&v, buf, sizeof(v));
+	return v;
 }
 
 static unsigned int regmap_parse_24(const void *buf)
@@ -376,69 +370,67 @@
 
 static unsigned int regmap_parse_32_be(const void *buf)
 {
-	const __be32 *b = buf;
-
-	return be32_to_cpu(b[0]);
+	return get_unaligned_be32(buf);
 }
 
 static unsigned int regmap_parse_32_le(const void *buf)
 {
-	const __le32 *b = buf;
-
-	return le32_to_cpu(b[0]);
+	return get_unaligned_le32(buf);
 }
 
 static void regmap_parse_32_be_inplace(void *buf)
 {
-	__be32 *b = buf;
+	u32 v = get_unaligned_be32(buf);
 
-	b[0] = be32_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_parse_32_le_inplace(void *buf)
 {
-	__le32 *b = buf;
+	u32 v = get_unaligned_le32(buf);
 
-	b[0] = le32_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static unsigned int regmap_parse_32_native(const void *buf)
 {
-	return *(u32 *)buf;
+	u32 v;
+
+	memcpy(&v, buf, sizeof(v));
+	return v;
 }
 
 #ifdef CONFIG_64BIT
 static unsigned int regmap_parse_64_be(const void *buf)
 {
-	const __be64 *b = buf;
-
-	return be64_to_cpu(b[0]);
+	return get_unaligned_be64(buf);
 }
 
 static unsigned int regmap_parse_64_le(const void *buf)
 {
-	const __le64 *b = buf;
-
-	return le64_to_cpu(b[0]);
+	return get_unaligned_le64(buf);
 }
 
 static void regmap_parse_64_be_inplace(void *buf)
 {
-	__be64 *b = buf;
+	u64 v =  get_unaligned_be64(buf);
 
-	b[0] = be64_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_parse_64_le_inplace(void *buf)
 {
-	__le64 *b = buf;
+	u64 v = get_unaligned_le64(buf);
 
-	b[0] = le64_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static unsigned int regmap_parse_64_native(const void *buf)
 {
-	return *(u64 *)buf;
+	u64 v;
+
+	memcpy(&v, buf, sizeof(v));
+	return v;
 }
 #endif
 
@@ -1356,6 +1348,7 @@
 	if (map->hwlock)
 		hwspin_lock_free(map->hwlock);
 	kfree_const(map->name);
+	kfree(map->patch);
 	kfree(map);
 }
 EXPORT_SYMBOL_GPL(regmap_exit);
@@ -1370,7 +1363,7 @@
 
 	/* If the user didn't specify a name match any */
 	if (data)
-		return (*r)->name == data;
+		return !strcmp((*r)->name, data);
 	else
 		return 1;
 }
@@ -1475,7 +1468,7 @@
 }
 
 static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
-				  const void *val, size_t val_len)
+				  const void *val, size_t val_len, bool noinc)
 {
 	struct regmap_range_node *range;
 	unsigned long flags;
@@ -1488,11 +1481,18 @@
 
 	WARN_ON(!map->bus);
 
-	/* Check for unwritable registers before we start */
-	for (i = 0; i < val_len / map->format.val_bytes; i++)
-		if (!regmap_writeable(map,
-				     reg + regmap_get_offset(map, i)))
-			return -EINVAL;
+	/* Check for unwritable or noinc registers in range
+	 * before we start
+	 */
+	if (!regmap_writeable_noinc(map, reg)) {
+		for (i = 0; i < val_len / map->format.val_bytes; i++) {
+			unsigned int element =
+				reg + regmap_get_offset(map, i);
+			if (!regmap_writeable(map, element) ||
+				regmap_writeable_noinc(map, element))
+				return -EINVAL;
+		}
+	}
 
 	if (!map->cache_bypass && map->format.parse_val) {
 		unsigned int ival;
@@ -1527,7 +1527,7 @@
 				win_residue, val_len / map->format.val_bytes);
 			ret = _regmap_raw_write_impl(map, reg, val,
 						     win_residue *
-						     map->format.val_bytes);
+						     map->format.val_bytes, noinc);
 			if (ret != 0)
 				return ret;
 
@@ -1541,7 +1541,7 @@
 			win_residue = range->window_len - win_offset;
 		}
 
-		ret = _regmap_select_page(map, &reg, range, val_num);
+		ret = _regmap_select_page(map, &reg, range, noinc ? 1 : val_num);
 		if (ret != 0)
 			return ret;
 	}
@@ -1749,7 +1749,8 @@
 				      map->work_buf +
 				      map->format.reg_bytes +
 				      map->format.pad_bytes,
-				      map->format.val_bytes);
+				      map->format.val_bytes,
+				      false);
 }
 
 static inline void *_regmap_map_get_context(struct regmap *map)
@@ -1843,7 +1844,7 @@
 EXPORT_SYMBOL_GPL(regmap_write_async);
 
 int _regmap_raw_write(struct regmap *map, unsigned int reg,
-		      const void *val, size_t val_len)
+		      const void *val, size_t val_len, bool noinc)
 {
 	size_t val_bytes = map->format.val_bytes;
 	size_t val_count = val_len / val_bytes;
@@ -1864,7 +1865,7 @@
 
 	/* Write as many bytes as possible with chunk_size */
 	for (i = 0; i < chunk_count; i++) {
-		ret = _regmap_raw_write_impl(map, reg, val, chunk_bytes);
+		ret = _regmap_raw_write_impl(map, reg, val, chunk_bytes, noinc);
 		if (ret)
 			return ret;
 
@@ -1875,7 +1876,7 @@
 
 	/* Write remaining bytes */
 	if (val_len)
-		ret = _regmap_raw_write_impl(map, reg, val, val_len);
+		ret = _regmap_raw_write_impl(map, reg, val, val_len, noinc);
 
 	return ret;
 }
@@ -1908,7 +1909,7 @@
 
 	map->lock(map->lock_arg);
 
-	ret = _regmap_raw_write(map, reg, val, val_len);
+	ret = _regmap_raw_write(map, reg, val, val_len, false);
 
 	map->unlock(map->lock_arg);
 
@@ -1966,7 +1967,7 @@
 			write_len = map->max_raw_write;
 		else
 			write_len = val_len;
-		ret = _regmap_raw_write(map, reg, val, write_len);
+		ret = _regmap_raw_write(map, reg, val, write_len, true);
 		if (ret)
 			goto out_unlock;
 		val = ((u8 *)val) + write_len;
@@ -2443,7 +2444,7 @@
 
 	map->async = true;
 
-	ret = _regmap_raw_write(map, reg, val, val_len);
+	ret = _regmap_raw_write(map, reg, val, val_len, false);
 
 	map->async = false;
 
@@ -2454,7 +2455,7 @@
 EXPORT_SYMBOL_GPL(regmap_raw_write_async);
 
 static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
-			    unsigned int val_len)
+			    unsigned int val_len, bool noinc)
 {
 	struct regmap_range_node *range;
 	int ret;
@@ -2467,7 +2468,7 @@
 	range = _regmap_range_lookup(map, reg);
 	if (range) {
 		ret = _regmap_select_page(map, &reg, range,
-					  val_len / map->format.val_bytes);
+					  noinc ? 1 : val_len / map->format.val_bytes);
 		if (ret != 0)
 			return ret;
 	}
@@ -2505,7 +2506,7 @@
 	if (!map->format.parse_val)
 		return -EINVAL;
 
-	ret = _regmap_raw_read(map, reg, work_val, map->format.val_bytes);
+	ret = _regmap_raw_read(map, reg, work_val, map->format.val_bytes, false);
 	if (ret == 0)
 		*val = map->format.parse_val(work_val);
 
@@ -2621,7 +2622,7 @@
 
 		/* Read bytes that fit into whole chunks */
 		for (i = 0; i < chunk_count; i++) {
-			ret = _regmap_raw_read(map, reg, val, chunk_bytes);
+			ret = _regmap_raw_read(map, reg, val, chunk_bytes, false);
 			if (ret != 0)
 				goto out;
 
@@ -2632,7 +2633,7 @@
 
 		/* Read remaining bytes */
 		if (val_len) {
-			ret = _regmap_raw_read(map, reg, val, val_len);
+			ret = _regmap_raw_read(map, reg, val, val_len, false);
 			if (ret != 0)
 				goto out;
 		}
@@ -2707,7 +2708,7 @@
 			read_len = map->max_raw_read;
 		else
 			read_len = val_len;
-		ret = _regmap_raw_read(map, reg, val, read_len);
+		ret = _regmap_raw_read(map, reg, val, read_len, true);
 		if (ret)
 			goto out_unlock;
 		val = ((u8 *)val) + read_len;
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/swnode.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/swnode.c
@@ -520,7 +520,10 @@
 {
 	struct swnode *swnode = to_swnode(fwnode);
 
-	return swnode ? (swnode->parent ? &swnode->parent->fwnode : NULL) : NULL;
+	if (!swnode || !swnode->parent)
+		return NULL;
+
+	return fwnode_handle_get(&swnode->parent->fwnode);
 }
 
 static struct fwnode_handle *
@@ -531,14 +534,18 @@
 	struct swnode *c = to_swnode(child);
 
 	if (!p || list_empty(&p->children) ||
-	    (c && list_is_last(&c->entry, &p->children)))
+	    (c && list_is_last(&c->entry, &p->children))) {
+		fwnode_handle_put(child);
 		return NULL;
+	}
 
 	if (c)
 		c = list_next_entry(c, entry);
 	else
 		c = list_first_entry(&p->children, struct swnode, entry);
-	return &c->fwnode;
+
+	fwnode_handle_put(child);
+	return fwnode_handle_get(&c->fwnode);
 }
 
 static struct fwnode_handle *
@@ -676,6 +683,13 @@
 {
 	struct swnode *swnode = kobj_to_swnode(kobj);
 
+	if (swnode->parent) {
+		ida_simple_remove(&swnode->parent->child_ids, swnode->id);
+		list_del(&swnode->entry);
+	} else {
+		ida_simple_remove(&swnode_root_ids, swnode->id);
+	}
+
 	if (swnode->allocated) {
 		property_entries_free(swnode->node->properties);
 		kfree(swnode->node);
@@ -798,6 +812,9 @@
 	if (software_node_to_swnode(node))
 		return -EEXIST;
 
+	if (node->parent && !parent)
+		return -EINVAL;
+
 	return PTR_ERR_OR_ZERO(swnode_register(node, parent, 0));
 }
 EXPORT_SYMBOL_GPL(software_node_register);
@@ -841,13 +858,6 @@
 	if (!swnode)
 		return;
 
-	if (swnode->parent) {
-		ida_simple_remove(&swnode->parent->child_ids, swnode->id);
-		list_del(&swnode->entry);
-	} else {
-		ida_simple_remove(&swnode_root_ids, swnode->id);
-	}
-
 	kobject_put(&swnode->kobj);
 }
 EXPORT_SYMBOL_GPL(fwnode_remove_software_node);
--- linux-gkeop-5.4-5.4.0.orig/drivers/base/test/test_async_driver_probe.c
+++ linux-gkeop-5.4-5.4.0/drivers/base/test/test_async_driver_probe.c
@@ -44,7 +44,8 @@
 	 * performing an async init on that node.
 	 */
 	if (dev->driver->probe_type == PROBE_PREFER_ASYNCHRONOUS) {
-		if (dev_to_node(dev) != numa_node_id()) {
+		if (IS_ENABLED(CONFIG_NUMA) &&
+		    dev_to_node(dev) != numa_node_id()) {
 			dev_warn(dev, "NUMA node mismatch %d != %d\n",
 				 dev_to_node(dev), numa_node_id());
 			atomic_inc(&warnings);
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/block/Kconfig
@@ -461,6 +461,7 @@
 config BLK_DEV_RSXX
 	tristate "IBM Flash Adapter 900GB Full Height PCIe Device Driver"
 	depends on PCI
+	select CRC32
 	help
 	  Device driver for IBM's high speed PCIe SSD
 	  storage device: Flash Adapter 900GB Full Height.
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/brd.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/brd.c
@@ -470,6 +470,25 @@
 	return kobj;
 }
 
+static inline void brd_check_and_reset_par(void)
+{
+	if (unlikely(!max_part))
+		max_part = 1;
+
+	/*
+	 * make sure 'max_part' can be divided exactly by (1U << MINORBITS),
+	 * otherwise, it is possiable to get same dev_t when adding partitions.
+	 */
+	if ((1U << MINORBITS) % max_part != 0)
+		max_part = 1UL << fls(max_part);
+
+	if (max_part > DISK_MAX_PARTS) {
+		pr_info("brd: max_part can't be larger than %d, reset max_part = %d.\n",
+			DISK_MAX_PARTS, DISK_MAX_PARTS);
+		max_part = DISK_MAX_PARTS;
+	}
+}
+
 static int __init brd_init(void)
 {
 	struct brd_device *brd, *next;
@@ -493,8 +512,7 @@
 	if (register_blkdev(RAMDISK_MAJOR, "ramdisk"))
 		return -EIO;
 
-	if (unlikely(!max_part))
-		max_part = 1;
+	brd_check_and_reset_par();
 
 	for (i = 0; i < rd_nr; i++) {
 		brd = brd_alloc(i);
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/floppy.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/floppy.c
@@ -853,14 +853,17 @@
 /* selects the fdc and drive, and enables the fdc's input/dma. */
 static void set_fdc(int drive)
 {
+	unsigned int new_fdc = fdc;
+
 	if (drive >= 0 && drive < N_DRIVE) {
-		fdc = FDC(drive);
+		new_fdc = FDC(drive);
 		current_drive = drive;
 	}
-	if (fdc != 1 && fdc != 0) {
+	if (new_fdc >= N_FDC) {
 		pr_info("bad fdc value\n");
 		return;
 	}
+	fdc = new_fdc;
 	set_dor(fdc, ~0, 8);
 #if N_FDC > 1
 	set_dor(1 - fdc, ~8, 0);
@@ -2899,17 +2902,17 @@
 		 (unsigned long long) current_req->cmd_flags))
 		return BLK_STS_IOERR;
 
-	spin_lock_irq(&floppy_lock);
-	list_add_tail(&bd->rq->queuelist, &floppy_reqs);
-	spin_unlock_irq(&floppy_lock);
-
 	if (test_and_set_bit(0, &fdc_busy)) {
 		/* fdc busy, this new request will be treated when the
 		   current one is done */
 		is_alive(__func__, "old request running");
-		return BLK_STS_OK;
+		return BLK_STS_RESOURCE;
 	}
 
+	spin_lock_irq(&floppy_lock);
+	list_add_tail(&bd->rq->queuelist, &floppy_reqs);
+	spin_unlock_irq(&floppy_lock);
+
 	command_status = FD_COMMAND_NONE;
 	__reschedule_timeout(MAXTIMEOUT, "fd_request");
 	set_fdc(0);
@@ -4060,21 +4063,22 @@
 	if (UFDCS->rawcmd == 1)
 		UFDCS->rawcmd = 2;
 
-	if (!(mode & FMODE_NDELAY)) {
-		if (mode & (FMODE_READ|FMODE_WRITE)) {
-			UDRS->last_checked = 0;
-			clear_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags);
-			check_disk_change(bdev);
-			if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags))
-				goto out;
-			if (test_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags))
-				goto out;
-		}
-		res = -EROFS;
-		if ((mode & FMODE_WRITE) &&
-		    !test_bit(FD_DISK_WRITABLE_BIT, &UDRS->flags))
+	if (mode & (FMODE_READ|FMODE_WRITE)) {
+		UDRS->last_checked = 0;
+		clear_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags);
+		check_disk_change(bdev);
+		if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags))
+			goto out;
+		if (test_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags))
 			goto out;
 	}
+
+	res = -EROFS;
+
+	if ((mode & FMODE_WRITE) &&
+			!test_bit(FD_DISK_WRITABLE_BIT, &UDRS->flags))
+		goto out;
+
 	mutex_unlock(&open_lock);
 	mutex_unlock(&floppy_mutex);
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/loop.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/loop.c
@@ -417,19 +417,22 @@
 	return ret;
 }
 
-static int lo_discard(struct loop_device *lo, struct request *rq, loff_t pos)
+static int lo_fallocate(struct loop_device *lo, struct request *rq, loff_t pos,
+			int mode)
 {
 	/*
-	 * We use punch hole to reclaim the free space used by the
-	 * image a.k.a. discard. However we do not support discard if
-	 * encryption is enabled, because it may give an attacker
-	 * useful information.
+	 * We use fallocate to manipulate the space mappings used by the image
+	 * a.k.a. discard/zerorange. However we do not support this if
+	 * encryption is enabled, because it may give an attacker useful
+	 * information.
 	 */
 	struct file *file = lo->lo_backing_file;
-	int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE;
+	struct request_queue *q = lo->lo_queue;
 	int ret;
 
-	if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
+	mode |= FALLOC_FL_KEEP_SIZE;
+
+	if (!blk_queue_discard(q)) {
 		ret = -EOPNOTSUPP;
 		goto out;
 	}
@@ -596,9 +599,17 @@
 	switch (req_op(rq)) {
 	case REQ_OP_FLUSH:
 		return lo_req_flush(lo, rq);
-	case REQ_OP_DISCARD:
 	case REQ_OP_WRITE_ZEROES:
-		return lo_discard(lo, rq, pos);
+		/*
+		 * If the caller doesn't want deallocation, call zeroout to
+		 * write zeroes the range.  Otherwise, punch them out.
+		 */
+		return lo_fallocate(lo, rq, pos,
+			(rq->cmd_flags & REQ_NOUNMAP) ?
+				FALLOC_FL_ZERO_RANGE :
+				FALLOC_FL_PUNCH_HOLE);
+	case REQ_OP_DISCARD:
+		return lo_fallocate(lo, rq, pos, FALLOC_FL_PUNCH_HOLE);
 	case REQ_OP_WRITE:
 		if (lo->transfer)
 			return lo_write_transfer(lo, rq, pos);
@@ -625,6 +636,15 @@
 			lo->use_dio);
 }
 
+static struct file *loop_real_file(struct file *file)
+{
+	struct file *f = NULL;
+
+	if (file->f_path.dentry->d_sb->s_op->real_loop)
+		f = file->f_path.dentry->d_sb->s_op->real_loop(file);
+	return f;
+}
+
 static void loop_reread_partitions(struct loop_device *lo,
 				   struct block_device *bdev)
 {
@@ -678,6 +698,7 @@
 			  unsigned int arg)
 {
 	struct file	*file = NULL, *old_file;
+	struct file	*f, *virt_file = NULL, *old_virt_file;
 	int		error;
 	bool		partscan;
 
@@ -697,12 +718,19 @@
 	file = fget(arg);
 	if (!file)
 		goto out_err;
+	f = loop_real_file(file);
+	if (f) {
+		virt_file = file;
+		file = f;
+		get_file(file);
+	}
 
 	error = loop_validate_file(file, bdev);
 	if (error)
 		goto out_err;
 
 	old_file = lo->lo_backing_file;
+	old_virt_file = lo->lo_backing_virt_file;
 
 	error = -EINVAL;
 
@@ -714,6 +742,7 @@
 	blk_mq_freeze_queue(lo->lo_queue);
 	mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
 	lo->lo_backing_file = file;
+	lo->lo_backing_virt_file = virt_file;
 	lo->old_gfp_mask = mapping_gfp_mask(file->f_mapping);
 	mapping_set_gfp_mask(file->f_mapping,
 			     lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
@@ -727,6 +756,8 @@
 	 * dependency.
 	 */
 	fput(old_file);
+	if (old_virt_file)
+		fput(old_virt_file);
 	if (partscan)
 		loop_reread_partitions(lo, bdev);
 	return 0;
@@ -735,9 +766,29 @@
 	mutex_unlock(&loop_ctl_mutex);
 	if (file)
 		fput(file);
+	if (virt_file)
+		fput(virt_file);
 	return error;
 }
 
+/*
+ * for AUFS
+ * no get/put for file.
+ */
+struct file *loop_backing_file(struct super_block *sb)
+{
+	struct file *ret;
+	struct loop_device *l;
+
+	ret = NULL;
+	if (MAJOR(sb->s_dev) == LOOP_MAJOR) {
+		l = sb->s_bdev->bd_disk->private_data;
+		ret = l->lo_backing_file;
+	}
+	return ret;
+}
+EXPORT_SYMBOL_GPL(loop_backing_file);
+
 /* loop sysfs attributes */
 
 static ssize_t loop_attr_show(struct device *dev, char *page,
@@ -852,6 +903,23 @@
 	struct file *file = lo->lo_backing_file;
 	struct inode *inode = file->f_mapping->host;
 	struct request_queue *q = lo->lo_queue;
+	u32 granularity, max_discard_sectors;
+
+	/*
+	 * If the backing device is a block device, mirror its zeroing
+	 * capability. Set the discard sectors to the block device's zeroing
+	 * capabilities because loop discards result in blkdev_issue_zeroout(),
+	 * not blkdev_issue_discard(). This maintains consistent behavior with
+	 * file-backed loop devices: discarded regions read back as zero.
+	 */
+	if (S_ISBLK(inode->i_mode) && !lo->lo_encrypt_key_size) {
+		struct request_queue *backingq;
+
+		backingq = bdev_get_queue(inode->i_bdev);
+
+		max_discard_sectors = backingq->limits.max_write_zeroes_sectors;
+		granularity = backingq->limits.discard_granularity ?:
+			queue_physical_block_size(backingq);
 
 	/*
 	 * We use punch hole to reclaim the free space used by the
@@ -859,22 +927,27 @@
 	 * encryption is enabled, because it may give an attacker
 	 * useful information.
 	 */
-	if ((!file->f_op->fallocate) ||
-	    lo->lo_encrypt_key_size) {
+	} else if (!file->f_op->fallocate || lo->lo_encrypt_key_size) {
+		max_discard_sectors = 0;
+		granularity = 0;
+
+	} else {
+		max_discard_sectors = UINT_MAX >> 9;
+		granularity = inode->i_sb->s_blocksize;
+	}
+
+	if (max_discard_sectors) {
+		q->limits.discard_granularity = granularity;
+		blk_queue_max_discard_sectors(q, max_discard_sectors);
+		blk_queue_max_write_zeroes_sectors(q, max_discard_sectors);
+		blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
+	} else {
 		q->limits.discard_granularity = 0;
-		q->limits.discard_alignment = 0;
 		blk_queue_max_discard_sectors(q, 0);
 		blk_queue_max_write_zeroes_sectors(q, 0);
 		blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
-		return;
 	}
-
-	q->limits.discard_granularity = inode->i_sb->s_blocksize;
 	q->limits.discard_alignment = 0;
-
-	blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
-	blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
-	blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
 }
 
 static void loop_unprepare_queue(struct loop_device *lo)
@@ -921,7 +994,7 @@
 static int loop_set_fd(struct loop_device *lo, fmode_t mode,
 		       struct block_device *bdev, unsigned int arg)
 {
-	struct file	*file;
+	struct file	*file, *f, *virt_file = NULL;
 	struct inode	*inode;
 	struct address_space *mapping;
 	struct block_device *claimed_bdev = NULL;
@@ -937,6 +1010,12 @@
 	file = fget(arg);
 	if (!file)
 		goto out;
+	f = loop_real_file(file);
+	if (f) {
+		virt_file = file;
+		file = f;
+		get_file(file);
+	}
 
 	/*
 	 * If we don't hold exclusive handle for the device, upgrade to it
@@ -985,6 +1064,7 @@
 	lo->lo_device = bdev;
 	lo->lo_flags = lo_flags;
 	lo->lo_backing_file = file;
+	lo->lo_backing_virt_file = virt_file;
 	lo->transfer = NULL;
 	lo->ioctl = NULL;
 	lo->lo_sizelimit = 0;
@@ -1038,6 +1118,8 @@
 		bd_abort_claiming(bdev, claimed_bdev, loop_set_fd);
 out_putf:
 	fput(file);
+	if (virt_file)
+		fput(virt_file);
 out:
 	/* This is safe: open() is still holding a reference. */
 	module_put(THIS_MODULE);
@@ -1084,6 +1166,7 @@
 static int __loop_clr_fd(struct loop_device *lo, bool release)
 {
 	struct file *filp = NULL;
+	struct file *virt_filp = lo->lo_backing_virt_file;
 	gfp_t gfp = lo->old_gfp_mask;
 	struct block_device *bdev = lo->lo_device;
 	int err = 0;
@@ -1107,6 +1190,7 @@
 
 	spin_lock_irq(&lo->lo_lock);
 	lo->lo_backing_file = NULL;
+	lo->lo_backing_virt_file = NULL;
 	spin_unlock_irq(&lo->lo_lock);
 
 	loop_release_xfer(lo);
@@ -1189,6 +1273,8 @@
 	 */
 	if (filp)
 		fput(filp);
+	if (virt_filp)
+		fput(virt_filp);
 	return err;
 }
 
@@ -1254,7 +1340,7 @@
 	if (lo->lo_offset != info->lo_offset ||
 	    lo->lo_sizelimit != info->lo_sizelimit) {
 		sync_blockdev(lo->lo_device);
-		kill_bdev(lo->lo_device);
+		invalidate_bdev(lo->lo_device);
 	}
 
 	/* I/O need to be drained during transfer transition */
@@ -1528,12 +1614,12 @@
 
 	if (lo->lo_queue->limits.logical_block_size != arg) {
 		sync_blockdev(lo->lo_device);
-		kill_bdev(lo->lo_device);
+		invalidate_bdev(lo->lo_device);
 	}
 
 	blk_mq_freeze_queue(lo->lo_queue);
 
-	/* kill_bdev should have truncated all the pages */
+	/* invalidate_bdev should have truncated all the pages */
 	if (lo->lo_queue->limits.logical_block_size != arg &&
 			lo->lo_device->bd_inode->i_mapping->nrpages) {
 		err = -EAGAIN;
@@ -2295,6 +2381,8 @@
 
 	range = max_loop ? max_loop << part_shift : 1UL << MINORBITS;
 
+	mutex_lock(&loop_ctl_mutex);
+
 	idr_for_each(&loop_index_idr, &loop_exit_cb, NULL);
 	idr_destroy(&loop_index_idr);
 
@@ -2302,6 +2390,8 @@
 	unregister_blkdev(LOOP_MAJOR, "loop");
 
 	misc_deregister(&loop_misc);
+
+	mutex_unlock(&loop_ctl_mutex);
 }
 
 module_init(loop_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/loop.h
+++ linux-gkeop-5.4-5.4.0/drivers/block/loop.h
@@ -46,7 +46,7 @@
 	int		(*ioctl)(struct loop_device *, int cmd, 
 				 unsigned long arg); 
 
-	struct file *	lo_backing_file;
+	struct file	*lo_backing_file, *lo_backing_virt_file;
 	struct block_device *lo_device;
 	void		*key_data; 
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/nbd.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/nbd.c
@@ -78,8 +78,7 @@
 #define NBD_RT_HAS_PID_FILE		3
 #define NBD_RT_HAS_CONFIG_REF		4
 #define NBD_RT_BOUND			5
-#define NBD_RT_DESTROY_ON_DISCONNECT	6
-#define NBD_RT_DISCONNECT_ON_CLOSE	7
+#define NBD_RT_DISCONNECT_ON_CLOSE	6
 
 #define NBD_DESTROY_ON_DISCONNECT	0
 #define NBD_DISCONNECT_REQUESTED	1
@@ -296,7 +295,7 @@
 	}
 }
 
-static void nbd_size_update(struct nbd_device *nbd)
+static void nbd_size_update(struct nbd_device *nbd, bool start)
 {
 	struct nbd_config *config = nbd->config;
 	struct block_device *bdev = bdget_disk(nbd->disk, 0);
@@ -312,7 +311,8 @@
 	if (bdev) {
 		if (bdev->bd_disk) {
 			bd_set_size(bdev, config->bytesize);
-			set_blocksize(bdev, config->blksize);
+			if (start)
+				set_blocksize(bdev, config->blksize);
 		} else
 			bdev->bd_invalidated = 1;
 		bdput(bdev);
@@ -327,7 +327,7 @@
 	config->blksize = blocksize;
 	config->bytesize = blocksize * nr_blocks;
 	if (nbd->task_recv != NULL)
-		nbd_size_update(nbd);
+		nbd_size_update(nbd, false);
 }
 
 static void nbd_complete_rq(struct request *req)
@@ -787,9 +787,9 @@
 
 		blk_mq_complete_request(blk_mq_rq_from_pdu(cmd));
 	}
+	nbd_config_put(nbd);
 	atomic_dec(&config->recv_threads);
 	wake_up(&config->recv_wq);
-	nbd_config_put(nbd);
 	kfree(args);
 }
 
@@ -1013,6 +1013,12 @@
 	if (!sock)
 		return err;
 
+	/*
+	 * We need to make sure we don't get any errant requests while we're
+	 * reallocating the ->socks array.
+	 */
+	blk_mq_freeze_queue(nbd->disk->queue);
+
 	if (!netlink && !nbd->task_setup &&
 	    !test_bit(NBD_RT_BOUND, &config->runtime_flags))
 		nbd->task_setup = current;
@@ -1022,20 +1028,22 @@
 	     test_bit(NBD_RT_BOUND, &config->runtime_flags))) {
 		dev_err(disk_to_dev(nbd->disk),
 			"Device being setup by another task");
-		sockfd_put(sock);
-		return -EBUSY;
+		err = -EBUSY;
+		goto put_socket;
+	}
+
+	nsock = kzalloc(sizeof(*nsock), GFP_KERNEL);
+	if (!nsock) {
+		err = -ENOMEM;
+		goto put_socket;
 	}
 
 	socks = krealloc(config->socks, (config->num_connections + 1) *
 			 sizeof(struct nbd_sock *), GFP_KERNEL);
 	if (!socks) {
-		sockfd_put(sock);
-		return -ENOMEM;
-	}
-	nsock = kzalloc(sizeof(struct nbd_sock), GFP_KERNEL);
-	if (!nsock) {
-		sockfd_put(sock);
-		return -ENOMEM;
+		kfree(nsock);
+		err = -ENOMEM;
+		goto put_socket;
 	}
 
 	config->socks = socks;
@@ -1049,8 +1057,14 @@
 	nsock->cookie = 0;
 	socks[config->num_connections++] = nsock;
 	atomic_inc(&config->live_connections);
+	blk_mq_unfreeze_queue(nbd->disk->queue);
 
 	return 0;
+
+put_socket:
+	blk_mq_unfreeze_queue(nbd->disk->queue);
+	sockfd_put(sock);
+	return err;
 }
 
 static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
@@ -1264,6 +1278,16 @@
 		args = kzalloc(sizeof(*args), GFP_KERNEL);
 		if (!args) {
 			sock_shutdown(nbd);
+			/*
+			 * If num_connections is m (2 < m),
+			 * and NO.1 ~ NO.n(1 < n < m) kzallocs are successful.
+			 * But NO.(n + 1) failed. We still have n recv threads.
+			 * So, add flush_workqueue here to prevent recv threads
+			 * dropping the last config_refs and trying to destroy
+			 * the workqueue from inside the workqueue.
+			 */
+			if (i)
+				flush_workqueue(nbd->recv_workq);
 			return -ENOMEM;
 		}
 		sk_set_memalloc(config->socks[i]->sock->sk);
@@ -1277,7 +1301,7 @@
 		args->index = i;
 		queue_work(nbd->recv_workq, &args->work);
 	}
-	nbd_size_update(nbd);
+	nbd_size_update(nbd, true);
 	return error;
 }
 
@@ -1295,10 +1319,10 @@
 	mutex_unlock(&nbd->config_lock);
 	ret = wait_event_interruptible(config->recv_wq,
 					 atomic_read(&config->recv_threads) == 0);
-	if (ret) {
+	if (ret)
 		sock_shutdown(nbd);
-		flush_workqueue(nbd->recv_workq);
-	}
+	flush_workqueue(nbd->recv_workq);
+
 	mutex_lock(&nbd->config_lock);
 	nbd_bdev_reset(bdev);
 	/* user requested, ignore socket errors */
@@ -1333,6 +1357,8 @@
 	nbd->tag_set.timeout = timeout * HZ;
 	if (timeout)
 		blk_queue_rq_timeout(nbd->disk->queue, timeout * HZ);
+	else
+		blk_queue_rq_timeout(nbd->disk->queue, 30 * HZ);
 }
 
 /* Must be called with config_lock held */
@@ -1484,6 +1510,7 @@
 	if (test_bit(NBD_RT_DISCONNECT_ON_CLOSE, &nbd->config->runtime_flags) &&
 			bdev->bd_openers == 0)
 		nbd_disconnect_and_put(nbd);
+	bdput(bdev);
 
 	nbd_config_put(nbd);
 	nbd_put(nbd);
@@ -1912,12 +1939,21 @@
 	if (info->attrs[NBD_ATTR_CLIENT_FLAGS]) {
 		u64 flags = nla_get_u64(info->attrs[NBD_ATTR_CLIENT_FLAGS]);
 		if (flags & NBD_CFLAG_DESTROY_ON_DISCONNECT) {
-			set_bit(NBD_RT_DESTROY_ON_DISCONNECT,
-				&config->runtime_flags);
-			set_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
-			put_dev = true;
+			/*
+			 * We have 1 ref to keep the device around, and then 1
+			 * ref for our current operation here, which will be
+			 * inherited by the config.  If we already have
+			 * DESTROY_ON_DISCONNECT set then we know we don't have
+			 * that extra ref already held so we don't need the
+			 * put_dev.
+			 */
+			if (!test_and_set_bit(NBD_DESTROY_ON_DISCONNECT,
+					      &nbd->flags))
+				put_dev = true;
 		} else {
-			clear_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
+			if (test_and_clear_bit(NBD_DESTROY_ON_DISCONNECT,
+					       &nbd->flags))
+				refcount_inc(&nbd->refs);
 		}
 		if (flags & NBD_CFLAG_DISCONNECT_ON_CLOSE) {
 			set_bit(NBD_RT_DISCONNECT_ON_CLOSE,
@@ -2088,15 +2124,13 @@
 	if (info->attrs[NBD_ATTR_CLIENT_FLAGS]) {
 		u64 flags = nla_get_u64(info->attrs[NBD_ATTR_CLIENT_FLAGS]);
 		if (flags & NBD_CFLAG_DESTROY_ON_DISCONNECT) {
-			if (!test_and_set_bit(NBD_RT_DESTROY_ON_DISCONNECT,
-					      &config->runtime_flags))
+			if (!test_and_set_bit(NBD_DESTROY_ON_DISCONNECT,
+					      &nbd->flags))
 				put_dev = true;
-			set_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
 		} else {
-			if (test_and_clear_bit(NBD_RT_DESTROY_ON_DISCONNECT,
-					       &config->runtime_flags))
+			if (test_and_clear_bit(NBD_DESTROY_ON_DISCONNECT,
+					       &nbd->flags))
 				refcount_inc(&nbd->refs);
-			clear_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
 		}
 
 		if (flags & NBD_CFLAG_DISCONNECT_ON_CLOSE) {
@@ -2255,6 +2289,12 @@
 	}
 
 	dev_list = nla_nest_start_noflag(reply, NBD_ATTR_DEVICE_LIST);
+	if (!dev_list) {
+		nlmsg_free(reply);
+		ret = -EMSGSIZE;
+		goto out;
+	}
+
 	if (index == -1) {
 		ret = idr_for_each(&nbd_index_idr, &status_cb, reply);
 		if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/null_blk_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/null_blk_main.c
@@ -579,6 +579,7 @@
 	if (tag != -1U) {
 		cmd = &nq->cmds[tag];
 		cmd->tag = tag;
+		cmd->error = BLK_STS_OK;
 		cmd->nq = nq;
 		if (nq->dev->irqmode == NULL_IRQ_TIMER) {
 			hrtimer_init(&cmd->timer, CLOCK_MONOTONIC,
@@ -1071,7 +1072,7 @@
 		len = bvec.bv_len;
 		err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
 				     op_is_write(req_op(rq)), sector,
-				     req_op(rq) & REQ_FUA);
+				     rq->cmd_flags & REQ_FUA);
 		if (err) {
 			spin_unlock_irq(&nullb->lock);
 			return err;
@@ -1335,6 +1336,7 @@
 		cmd->timer.function = null_cmd_timer_expired;
 	}
 	cmd->rq = bd->rq;
+	cmd->error = BLK_STS_OK;
 	cmd->nq = nq;
 
 	blk_mq_start_request(bd->rq);
@@ -1382,7 +1384,12 @@
 
 static void null_del_dev(struct nullb *nullb)
 {
-	struct nullb_device *dev = nullb->dev;
+	struct nullb_device *dev;
+
+	if (!nullb)
+		return;
+
+	dev = nullb->dev;
 
 	ida_simple_remove(&nullb_indexes, nullb->index);
 
@@ -1736,6 +1743,7 @@
 	cleanup_queues(nullb);
 out_free_nullb:
 	kfree(nullb);
+	dev->nullb = NULL;
 out:
 	return rv;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/null_blk_zoned.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/null_blk_zoned.c
@@ -2,8 +2,7 @@
 #include <linux/vmalloc.h>
 #include "null_blk.h"
 
-/* zone_size in MBs to sectors. */
-#define ZONE_SIZE_SHIFT		11
+#define MB_TO_SECTS(mb) (((sector_t)mb * SZ_1M) >> SECTOR_SHIFT)
 
 static inline unsigned int null_zone_no(struct nullb_device *dev, sector_t sect)
 {
@@ -12,7 +11,7 @@
 
 int null_zone_init(struct nullb_device *dev)
 {
-	sector_t dev_size = (sector_t)dev->size * 1024 * 1024;
+	sector_t dev_capacity_sects;
 	sector_t sector = 0;
 	unsigned int i;
 
@@ -20,10 +19,17 @@
 		pr_err("zone_size must be power-of-two\n");
 		return -EINVAL;
 	}
+	if (dev->zone_size > dev->size) {
+		pr_err("Zone size larger than device capacity\n");
+		return -EINVAL;
+	}
+
+	dev_capacity_sects = MB_TO_SECTS(dev->size);
+	dev->zone_size_sects = MB_TO_SECTS(dev->zone_size);
+	dev->nr_zones = dev_capacity_sects >> ilog2(dev->zone_size_sects);
+	if (dev_capacity_sects & (dev->zone_size_sects - 1))
+		dev->nr_zones++;
 
-	dev->zone_size_sects = dev->zone_size << ZONE_SIZE_SHIFT;
-	dev->nr_zones = dev_size >>
-				(SECTOR_SHIFT + ilog2(dev->zone_size_sects));
 	dev->zones = kvmalloc_array(dev->nr_zones, sizeof(struct blk_zone),
 			GFP_KERNEL | __GFP_ZERO);
 	if (!dev->zones)
@@ -51,7 +57,10 @@
 		struct blk_zone *zone = &dev->zones[i];
 
 		zone->start = zone->wp = sector;
-		zone->len = dev->zone_size_sects;
+		if (zone->start + dev->zone_size_sects > dev_capacity_sects)
+			zone->len = dev_capacity_sects - zone->start;
+		else
+			zone->len = dev->zone_size_sects;
 		zone->type = BLK_ZONE_TYPE_SEQWRITE_REQ;
 		zone->cond = BLK_ZONE_COND_EMPTY;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/ps3disk.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/ps3disk.c
@@ -454,7 +454,6 @@
 	queue->queuedata = dev;
 
 	blk_queue_max_hw_sectors(queue, dev->bounce_size >> 9);
-	blk_queue_segment_boundary(queue, -1UL);
 	blk_queue_dma_alignment(queue, dev->blk_size-1);
 	blk_queue_logical_block_size(queue, dev->blk_size);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/rbd.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/rbd.c
@@ -2739,7 +2739,7 @@
 			       u64 off, u64 len)
 {
 	struct ceph_file_extent ex = { off, len };
-	union rbd_img_fill_iter dummy;
+	union rbd_img_fill_iter dummy = {};
 	struct rbd_img_fill_ctx fctx = {
 		.pos_type = OBJ_REQUEST_NODATA,
 		.pos = &dummy,
@@ -4636,6 +4636,10 @@
 	cancel_work_sync(&rbd_dev->unlock_work);
 }
 
+/*
+ * header_rwsem must not be held to avoid a deadlock with
+ * rbd_dev_refresh() when flushing notifies.
+ */
 static void rbd_unregister_watch(struct rbd_device *rbd_dev)
 {
 	cancel_tasks_sync(rbd_dev);
@@ -5276,6 +5280,9 @@
 {
 	struct rbd_device *rbd_dev = dev_to_rbd_dev(dev);
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	return sprintf(buf, "%s\n", rbd_dev->config_info);
 }
 
@@ -5387,6 +5394,9 @@
 	struct rbd_device *rbd_dev = dev_to_rbd_dev(dev);
 	int ret;
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	ret = rbd_dev_refresh(rbd_dev);
 	if (ret)
 		return ret;
@@ -6929,9 +6939,10 @@
 
 static void rbd_dev_image_release(struct rbd_device *rbd_dev)
 {
-	rbd_dev_unprobe(rbd_dev);
 	if (rbd_dev->opts)
 		rbd_unregister_watch(rbd_dev);
+
+	rbd_dev_unprobe(rbd_dev);
 	rbd_dev->image_format = 0;
 	kfree(rbd_dev->spec->image_id);
 	rbd_dev->spec->image_id = NULL;
@@ -6942,6 +6953,9 @@
  * device.  If this image is the one being mapped (i.e., not a
  * parent), initiate a watch on its header object before using that
  * object to get detailed information about the rbd image.
+ *
+ * On success, returns with header_rwsem held for write if called
+ * with @depth == 0.
  */
 static int rbd_dev_image_probe(struct rbd_device *rbd_dev, int depth)
 {
@@ -6974,9 +6988,12 @@
 		}
 	}
 
+	if (!depth)
+		down_write(&rbd_dev->header_rwsem);
+
 	ret = rbd_dev_header_info(rbd_dev);
 	if (ret)
-		goto err_out_watch;
+		goto err_out_probe;
 
 	/*
 	 * If this image is the one being mapped, we have pool name and
@@ -7025,10 +7042,11 @@
 	return 0;
 
 err_out_probe:
-	rbd_dev_unprobe(rbd_dev);
-err_out_watch:
+	if (!depth)
+		up_write(&rbd_dev->header_rwsem);
 	if (!depth)
 		rbd_unregister_watch(rbd_dev);
+	rbd_dev_unprobe(rbd_dev);
 err_out_format:
 	rbd_dev->image_format = 0;
 	kfree(rbd_dev->spec->image_id);
@@ -7047,6 +7065,9 @@
 	struct rbd_client *rbdc;
 	int rc;
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	if (!try_module_get(THIS_MODULE))
 		return -ENODEV;
 
@@ -7085,12 +7106,9 @@
 		goto err_out_rbd_dev;
 	}
 
-	down_write(&rbd_dev->header_rwsem);
 	rc = rbd_dev_image_probe(rbd_dev, 0);
-	if (rc < 0) {
-		up_write(&rbd_dev->header_rwsem);
+	if (rc < 0)
 		goto err_out_rbd_dev;
-	}
 
 	/* If we are mapping a snapshot it must be marked read-only */
 	if (rbd_dev->spec->snap_id != CEPH_NOSNAP)
@@ -7199,6 +7217,9 @@
 	bool force = false;
 	int ret;
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	dev_id = -1;
 	opt_buf[0] = '\0';
 	sscanf(buf, "%d %5s", &dev_id, opt_buf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/rsxx/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/rsxx/core.c
@@ -165,15 +165,17 @@
 {
 	struct rsxx_cardinfo *card = file_inode(fp)->i_private;
 	char *buf;
-	ssize_t st;
+	int st;
 
 	buf = kzalloc(cnt, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
 	st = rsxx_creg_read(card, CREG_ADD_CRAM + (u32)*ppos, cnt, buf, 1);
-	if (!st)
-		st = copy_to_user(ubuf, buf, cnt);
+	if (!st) {
+		if (copy_to_user(ubuf, buf, cnt))
+			st = -EFAULT;
+	}
 	kfree(buf);
 	if (st)
 		return st;
@@ -867,6 +869,7 @@
 	card->event_wq = create_singlethread_workqueue(DRIVER_NAME"_event");
 	if (!card->event_wq) {
 		dev_err(CARD_TO_DEV(card), "Failed card event setup.\n");
+		st = -ENOMEM;
 		goto failed_event_handler;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/virtio_blk.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/virtio_blk.c
@@ -33,6 +33,15 @@
 } ____cacheline_aligned_in_smp;
 
 struct virtio_blk {
+	/*
+	 * This mutex must be held by anything that may run after
+	 * virtblk_remove() sets vblk->vdev to NULL.
+	 *
+	 * blk-mq, virtqueue processing, and sysfs attribute code paths are
+	 * shut down before vblk->vdev is set to NULL and therefore do not need
+	 * to hold this mutex.
+	 */
+	struct mutex vdev_mutex;
 	struct virtio_device *vdev;
 
 	/* The disk structure for the kernel. */
@@ -44,6 +53,13 @@
 	/* Process context for config space updates */
 	struct work_struct config_work;
 
+	/*
+	 * Tracks references from block_device_operations open/release and
+	 * virtio_driver probe/remove so this object can be freed once no
+	 * longer in use.
+	 */
+	refcount_t refs;
+
 	/* What host tells us, plus 2 for header & tailer. */
 	unsigned int sg_elems;
 
@@ -189,16 +205,31 @@
 	if (!range)
 		return -ENOMEM;
 
-	__rq_for_each_bio(bio, req) {
-		u64 sector = bio->bi_iter.bi_sector;
-		u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
-
-		range[n].flags = cpu_to_le32(flags);
-		range[n].num_sectors = cpu_to_le32(num_sectors);
-		range[n].sector = cpu_to_le64(sector);
-		n++;
+	/*
+	 * Single max discard segment means multi-range discard isn't
+	 * supported, and block layer only runs contiguity merge like
+	 * normal RW request. So we can't reply on bio for retrieving
+	 * each range info.
+	 */
+	if (queue_max_discard_segments(req->q) == 1) {
+		range[0].flags = cpu_to_le32(flags);
+		range[0].num_sectors = cpu_to_le32(blk_rq_sectors(req));
+		range[0].sector = cpu_to_le64(blk_rq_pos(req));
+		n = 1;
+	} else {
+		__rq_for_each_bio(bio, req) {
+			u64 sector = bio->bi_iter.bi_sector;
+			u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
+
+			range[n].flags = cpu_to_le32(flags);
+			range[n].num_sectors = cpu_to_le32(num_sectors);
+			range[n].sector = cpu_to_le64(sector);
+			n++;
+		}
 	}
 
+	WARN_ON_ONCE(n != segments);
+
 	req->special_vec.bv_page = virt_to_page(range);
 	req->special_vec.bv_offset = offset_in_page(range);
 	req->special_vec.bv_len = sizeof(*range) * segments;
@@ -339,13 +370,20 @@
 		err = virtblk_add_req(vblk->vqs[qid].vq, vbr, vbr->sg, num);
 	if (err) {
 		virtqueue_kick(vblk->vqs[qid].vq);
-		blk_mq_stop_hw_queue(hctx);
+		/* Don't stop the queue if -ENOMEM: we may have failed to
+		 * bounce the buffer due to global resource outage.
+		 */
+		if (err == -ENOSPC)
+			blk_mq_stop_hw_queue(hctx);
 		spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
-		/* Out of mem doesn't actually happen, since we fall back
-		 * to direct descriptors */
-		if (err == -ENOMEM || err == -ENOSPC)
+		switch (err) {
+		case -ENOSPC:
 			return BLK_STS_DEV_RESOURCE;
-		return BLK_STS_IOERR;
+		case -ENOMEM:
+			return BLK_STS_RESOURCE;
+		default:
+			return BLK_STS_IOERR;
+		}
 	}
 
 	if (bd->last && virtqueue_kick_prepare(vblk->vqs[qid].vq))
@@ -381,10 +419,55 @@
 	return err;
 }
 
+static void virtblk_get(struct virtio_blk *vblk)
+{
+	refcount_inc(&vblk->refs);
+}
+
+static void virtblk_put(struct virtio_blk *vblk)
+{
+	if (refcount_dec_and_test(&vblk->refs)) {
+		ida_simple_remove(&vd_index_ida, vblk->index);
+		mutex_destroy(&vblk->vdev_mutex);
+		kfree(vblk);
+	}
+}
+
+static int virtblk_open(struct block_device *bd, fmode_t mode)
+{
+	struct virtio_blk *vblk = bd->bd_disk->private_data;
+	int ret = 0;
+
+	mutex_lock(&vblk->vdev_mutex);
+
+	if (vblk->vdev)
+		virtblk_get(vblk);
+	else
+		ret = -ENXIO;
+
+	mutex_unlock(&vblk->vdev_mutex);
+	return ret;
+}
+
+static void virtblk_release(struct gendisk *disk, fmode_t mode)
+{
+	struct virtio_blk *vblk = disk->private_data;
+
+	virtblk_put(vblk);
+}
+
 /* We provide getgeo only to please some old bootloader/partitioning tools */
 static int virtblk_getgeo(struct block_device *bd, struct hd_geometry *geo)
 {
 	struct virtio_blk *vblk = bd->bd_disk->private_data;
+	int ret = 0;
+
+	mutex_lock(&vblk->vdev_mutex);
+
+	if (!vblk->vdev) {
+		ret = -ENXIO;
+		goto out;
+	}
 
 	/* see if the host passed in geometry config */
 	if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_GEOMETRY)) {
@@ -400,12 +483,16 @@
 		geo->sectors = 1 << 5;
 		geo->cylinders = get_capacity(bd->bd_disk) >> 11;
 	}
-	return 0;
+out:
+	mutex_unlock(&vblk->vdev_mutex);
+	return ret;
 }
 
 static const struct block_device_operations virtblk_fops = {
 	.ioctl  = virtblk_ioctl,
 	.owner  = THIS_MODULE,
+	.open = virtblk_open,
+	.release = virtblk_release,
 	.getgeo = virtblk_getgeo,
 };
 
@@ -760,6 +847,10 @@
 		goto out_free_index;
 	}
 
+	/* This reference is dropped in virtblk_remove(). */
+	refcount_set(&vblk->refs, 1);
+	mutex_init(&vblk->vdev_mutex);
+
 	vblk->vdev = vdev;
 	vblk->sg_elems = sg_elems;
 
@@ -914,6 +1005,7 @@
 	put_disk(vblk->disk);
 out_free_vq:
 	vdev->config->del_vqs(vdev);
+	kfree(vblk->vqs);
 out_free_vblk:
 	kfree(vblk);
 out_free_index:
@@ -925,8 +1017,6 @@
 static void virtblk_remove(struct virtio_device *vdev)
 {
 	struct virtio_blk *vblk = vdev->priv;
-	int index = vblk->index;
-	int refc;
 
 	/* Make sure no work handler is accessing the device. */
 	flush_work(&vblk->config_work);
@@ -936,18 +1026,21 @@
 
 	blk_mq_free_tag_set(&vblk->tag_set);
 
+	mutex_lock(&vblk->vdev_mutex);
+
 	/* Stop all the virtqueues. */
 	vdev->config->reset(vdev);
 
-	refc = kref_read(&disk_to_dev(vblk->disk)->kobj.kref);
+	/* Virtqueues are stopped, nothing can use vblk->vdev anymore. */
+	vblk->vdev = NULL;
+
 	put_disk(vblk->disk);
 	vdev->config->del_vqs(vdev);
 	kfree(vblk->vqs);
-	kfree(vblk);
 
-	/* Only free device id if we don't have any users */
-	if (refc == 1)
-		ida_simple_remove(&vd_index_ida, index);
+	mutex_unlock(&vblk->vdev_mutex);
+
+	virtblk_put(vblk);
 }
 
 #ifdef CONFIG_PM_SLEEP
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/xen-blkback/blkback.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/xen-blkback/blkback.c
@@ -202,7 +202,7 @@
 
 #define vaddr(page) ((unsigned long)pfn_to_kaddr(page_to_pfn(page)))
 
-static int do_block_io_op(struct xen_blkif_ring *ring);
+static int do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags);
 static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 				struct blkif_request *req,
 				struct pending_req *pending_req);
@@ -615,6 +615,8 @@
 	struct xen_vbd *vbd = &blkif->vbd;
 	unsigned long timeout;
 	int ret;
+	bool do_eoi;
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
 	set_freezable();
 	while (!kthread_should_stop()) {
@@ -639,16 +641,23 @@
 		if (timeout == 0)
 			goto purge_gnt_list;
 
+		do_eoi = ring->waiting_reqs;
+
 		ring->waiting_reqs = 0;
 		smp_mb(); /* clear flag *before* checking for work */
 
-		ret = do_block_io_op(ring);
+		ret = do_block_io_op(ring, &eoi_flags);
 		if (ret > 0)
 			ring->waiting_reqs = 1;
 		if (ret == -EACCES)
 			wait_event_interruptible(ring->shutdown_wq,
 						 kthread_should_stop());
 
+		if (do_eoi && !ring->waiting_reqs) {
+			xen_irq_lateeoi(ring->irq, eoi_flags);
+			eoi_flags |= XEN_EOI_FLAG_SPURIOUS;
+		}
+
 purge_gnt_list:
 		if (blkif->vbd.feature_gnt_persistent &&
 		    time_after(jiffies, ring->next_lru)) {
@@ -841,8 +850,11 @@
 			pages[i]->page = persistent_gnt->page;
 			pages[i]->persistent_gnt = persistent_gnt;
 		} else {
-			if (get_free_page(ring, &pages[i]->page))
-				goto out_of_memory;
+			if (get_free_page(ring, &pages[i]->page)) {
+				put_free_pages(ring, pages_to_gnt, segs_to_map);
+				ret = -ENOMEM;
+				goto out;
+			}
 			addr = vaddr(pages[i]->page);
 			pages_to_gnt[segs_to_map] = pages[i]->page;
 			pages[i]->persistent_gnt = NULL;
@@ -858,10 +870,8 @@
 			break;
 	}
 
-	if (segs_to_map) {
+	if (segs_to_map)
 		ret = gnttab_map_refs(map, NULL, pages_to_gnt, segs_to_map);
-		BUG_ON(ret);
-	}
 
 	/*
 	 * Now swizzle the MFN in our domain with the MFN from the other domain
@@ -876,7 +886,7 @@
 				pr_debug("invalid buffer -- could not remap it\n");
 				put_free_pages(ring, &pages[seg_idx]->page, 1);
 				pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE;
-				ret |= 1;
+				ret |= !ret;
 				goto next;
 			}
 			pages[seg_idx]->handle = map[new_map_idx].handle;
@@ -928,15 +938,18 @@
 	}
 	segs_to_map = 0;
 	last_map = map_until;
-	if (map_until != num)
+	if (!ret && map_until != num)
 		goto again;
 
-	return ret;
+out:
+	for (i = last_map; i < num; i++) {
+		/* Don't zap current batch's valid persistent grants. */
+		if(i >= last_map + segs_to_map)
+			pages[i]->persistent_gnt = NULL;
+		pages[i]->handle = BLKBACK_INVALID_HANDLE;
+	}
 
-out_of_memory:
-	pr_alert("%s: out of memory\n", __func__);
-	put_free_pages(ring, pages_to_gnt, segs_to_map);
-	return -ENOMEM;
+	return ret;
 }
 
 static int xen_blkbk_map_seg(struct pending_req *pending_req)
@@ -1119,7 +1132,7 @@
  * and transmute  it to the block API to hand it over to the proper block disk.
  */
 static int
-__do_block_io_op(struct xen_blkif_ring *ring)
+__do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	struct blkif_request req;
@@ -1142,6 +1155,9 @@
 		if (RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, rc))
 			break;
 
+		/* We've seen a request, so clear spurious eoi flag. */
+		*eoi_flags &= ~XEN_EOI_FLAG_SPURIOUS;
+
 		if (kthread_should_stop()) {
 			more_to_do = 1;
 			break;
@@ -1200,13 +1216,13 @@
 }
 
 static int
-do_block_io_op(struct xen_blkif_ring *ring)
+do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	int more_to_do;
 
 	do {
-		more_to_do = __do_block_io_op(ring);
+		more_to_do = __do_block_io_op(ring, eoi_flags);
 		if (more_to_do)
 			break;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/xen-blkback/xenbus.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/xen-blkback/xenbus.c
@@ -171,6 +171,15 @@
 	blkif->domid = domid;
 	atomic_set(&blkif->refcnt, 1);
 	init_completion(&blkif->drain_complete);
+
+	/*
+	 * Because freeing back to the cache may be deferred, it is not
+	 * safe to unload the module (and hence destroy the cache) until
+	 * this has completed. To prevent premature unloading, take an
+	 * extra module reference here and release only when the object
+	 * has been freed back to the cache.
+	 */
+	__module_get(THIS_MODULE);
 	INIT_WORK(&blkif->free_work, xen_blkif_deferred_free);
 
 	return blkif;
@@ -220,9 +229,8 @@
 		BUG();
 	}
 
-	err = bind_interdomain_evtchn_to_irqhandler(blkif->domid, evtchn,
-						    xen_blkif_be_int, 0,
-						    "blkif-backend", ring);
+	err = bind_interdomain_evtchn_to_irqhandler_lateeoi(blkif->domid,
+			evtchn, xen_blkif_be_int, 0, "blkif-backend", ring);
 	if (err < 0) {
 		xenbus_unmap_ring_vfree(blkif->be->dev, ring->blk_ring);
 		ring->blk_rings.common.sring = NULL;
@@ -248,6 +256,7 @@
 
 		if (ring->xenblkd) {
 			kthread_stop(ring->xenblkd);
+			ring->xenblkd = NULL;
 			wake_up(&ring->shutdown_wq);
 		}
 
@@ -320,6 +329,7 @@
 
 	/* Make sure everything is drained before shutting down */
 	kmem_cache_free(xen_blkif_cachep, blkif);
+	module_put(THIS_MODULE);
 }
 
 int __init xen_blkif_interface_init(void)
@@ -634,7 +644,8 @@
 	/* setup back pointer */
 	be->blkif->be = be;
 
-	err = xenbus_watch_pathfmt(dev, &be->backend_watch, backend_changed,
+	err = xenbus_watch_pathfmt(dev, &be->backend_watch, NULL,
+				   backend_changed,
 				   "%s/%s", dev->nodename, "physical-device");
 	if (err)
 		goto fail;
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/xen-blkfront.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/xen-blkfront.c
@@ -47,6 +47,7 @@
 #include <linux/bitmap.h>
 #include <linux/list.h>
 #include <linux/workqueue.h>
+#include <linux/sched/mm.h>
 
 #include <xen/xen.h>
 #include <xen/xenbus.h>
@@ -935,7 +936,8 @@
 	if (info->feature_discard) {
 		blk_queue_flag_set(QUEUE_FLAG_DISCARD, rq);
 		blk_queue_max_discard_sectors(rq, get_capacity(gd));
-		rq->limits.discard_granularity = info->discard_granularity;
+		rq->limits.discard_granularity = info->discard_granularity ?:
+						 info->physical_sector_size;
 		rq->limits.discard_alignment = info->discard_alignment;
 		if (info->feature_secdiscard)
 			blk_queue_flag_set(QUEUE_FLAG_SECERASE, rq);
@@ -1113,8 +1115,8 @@
 	if (!VDEV_IS_EXTENDED(info->vdevice)) {
 		err = xen_translate_vdev(info->vdevice, &minor, &offset);
 		if (err)
-			return err;		
- 		nr_parts = PARTS_PER_DISK;
+			return err;
+		nr_parts = PARTS_PER_DISK;
 	} else {
 		minor = BLKIF_MINOR_EXT(info->vdevice);
 		nr_parts = PARTS_PER_EXT_DISK;
@@ -2168,19 +2170,12 @@
 
 static void blkfront_setup_discard(struct blkfront_info *info)
 {
-	int err;
-	unsigned int discard_granularity;
-	unsigned int discard_alignment;
-
 	info->feature_discard = 1;
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-		"discard-granularity", "%u", &discard_granularity,
-		"discard-alignment", "%u", &discard_alignment,
-		NULL);
-	if (!err) {
-		info->discard_granularity = discard_granularity;
-		info->discard_alignment = discard_alignment;
-	}
+	info->discard_granularity = xenbus_read_unsigned(info->xbdev->otherend,
+							 "discard-granularity",
+							 0);
+	info->discard_alignment = xenbus_read_unsigned(info->xbdev->otherend,
+						       "discard-alignment", 0);
 	info->feature_secdiscard =
 		!!xenbus_read_unsigned(info->xbdev->otherend, "discard-secure",
 				       0);
@@ -2188,10 +2183,12 @@
 
 static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 {
-	unsigned int psegs, grants;
+	unsigned int psegs, grants, memflags;
 	int err, i;
 	struct blkfront_info *info = rinfo->dev_info;
 
+	memflags = memalloc_noio_save();
+
 	if (info->max_indirect_segments == 0) {
 		if (!HAS_EXTRA_REQ)
 			grants = BLKIF_MAX_SEGMENTS_PER_REQUEST;
@@ -2223,7 +2220,7 @@
 
 		BUG_ON(!list_empty(&rinfo->indirect_pages));
 		for (i = 0; i < num; i++) {
-			struct page *indirect_page = alloc_page(GFP_NOIO);
+			struct page *indirect_page = alloc_page(GFP_KERNEL);
 			if (!indirect_page)
 				goto out_of_memory;
 			list_add(&indirect_page->lru, &rinfo->indirect_pages);
@@ -2234,15 +2231,15 @@
 		rinfo->shadow[i].grants_used =
 			kvcalloc(grants,
 				 sizeof(rinfo->shadow[i].grants_used[0]),
-				 GFP_NOIO);
+				 GFP_KERNEL);
 		rinfo->shadow[i].sg = kvcalloc(psegs,
 					       sizeof(rinfo->shadow[i].sg[0]),
-					       GFP_NOIO);
+					       GFP_KERNEL);
 		if (info->max_indirect_segments)
 			rinfo->shadow[i].indirect_grants =
 				kvcalloc(INDIRECT_GREFS(grants),
 					 sizeof(rinfo->shadow[i].indirect_grants[0]),
-					 GFP_NOIO);
+					 GFP_KERNEL);
 		if ((rinfo->shadow[i].grants_used == NULL) ||
 			(rinfo->shadow[i].sg == NULL) ||
 		     (info->max_indirect_segments &&
@@ -2251,6 +2248,7 @@
 		sg_init_table(rinfo->shadow[i].sg, psegs);
 	}
 
+	memalloc_noio_restore(memflags);
 
 	return 0;
 
@@ -2270,6 +2268,9 @@
 			__free_page(indirect_page);
 		}
 	}
+
+	memalloc_noio_restore(memflags);
+
 	return -ENOMEM;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/block/zram/zram_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/block/zram/zram_drv.c
@@ -626,8 +626,8 @@
 	struct bio bio;
 	struct bio_vec bio_vec;
 	struct page *page;
-	ssize_t ret;
-	int mode;
+	ssize_t ret = len;
+	int mode, err;
 	unsigned long blk_idx = 0;
 
 	if (sysfs_streq(buf, "idle"))
@@ -719,12 +719,17 @@
 		 * XXX: A single page IO would be inefficient for write
 		 * but it would be not bad as starter.
 		 */
-		ret = submit_bio_wait(&bio);
-		if (ret) {
+		err = submit_bio_wait(&bio);
+		if (err) {
 			zram_slot_lock(zram, index);
 			zram_clear_flag(zram, index, ZRAM_UNDER_WB);
 			zram_clear_flag(zram, index, ZRAM_IDLE);
 			zram_slot_unlock(zram, index);
+			/*
+			 * Return last IO error unless every IO were
+			 * not suceeded.
+			 */
+			ret = err;
 			continue;
 		}
 
@@ -762,7 +767,6 @@
 
 	if (blk_idx)
 		free_block_bdev(zram, blk_idx);
-	ret = len;
 	__free_page(page);
 release_init_lock:
 	up_read(&zram->init_lock);
@@ -1073,7 +1077,7 @@
 			zram->limit_pages << PAGE_SHIFT,
 			max_used << PAGE_SHIFT,
 			(u64)atomic64_read(&zram->stats.same_pages),
-			pool_stats.pages_compacted,
+			atomic_long_read(&pool_stats.pages_compacted),
 			(u64)atomic64_read(&zram->stats.huge_pages));
 	up_read(&zram->init_lock);
 
@@ -2024,7 +2028,8 @@
 		return ret;
 	return scnprintf(buf, PAGE_SIZE, "%d\n", ret);
 }
-static CLASS_ATTR_RO(hot_add);
+static struct class_attribute class_attr_hot_add =
+	__ATTR(hot_add, 0400, hot_add_show, NULL);
 
 static ssize_t hot_remove_store(struct class *class,
 			struct class_attribute *attr,
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btbcm.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btbcm.c
@@ -329,6 +329,7 @@
 	{ 0x410e, "BCM43341B0"	},	/* 002.001.014 */
 	{ 0x4204, "BCM2076B1"	},	/* 002.002.004 */
 	{ 0x4406, "BCM4324B3"	},	/* 002.004.006 */
+	{ 0x4606, "BCM4324B5"	},	/* 002.006.006 */
 	{ 0x6109, "BCM4335C0"	},	/* 003.001.009 */
 	{ 0x610c, "BCM4354"	},	/* 003.001.012 */
 	{ 0x2122, "BCM4343A0"	},	/* 001.001.034 */
@@ -343,6 +344,7 @@
 };
 
 static const struct bcm_subver_table bcm_usb_subver_table[] = {
+	{ 0x2105, "BCM20703A1"	},	/* 001.001.005 */
 	{ 0x210b, "BCM43142A0"	},	/* 001.001.011 */
 	{ 0x2112, "BCM4314A0"	},	/* 001.001.018 */
 	{ 0x2118, "BCM20702A0"	},	/* 001.001.024 */
@@ -440,6 +442,12 @@
 
 	set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
 
+	/* Some devices ship with the controller default address.
+	 * Allow the bootloader to set a valid address through the
+	 * device tree.
+	 */
+	set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(btbcm_finalize);
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btmrvl_sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btmrvl_sdio.c
@@ -328,7 +328,7 @@
 
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8977 = {
 	.helper         = NULL,
-	.firmware       = "mrvl/sd8977_uapsta.bin",
+	.firmware       = "mrvl/sdsd8977_combo_v2.bin",
 	.reg            = &btmrvl_reg_8977,
 	.support_pscan_win_report = true,
 	.sd_blksz_fw_dl = 256,
@@ -346,7 +346,7 @@
 
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8997 = {
 	.helper         = NULL,
-	.firmware       = "mrvl/sd8997_uapsta.bin",
+	.firmware       = "mrvl/sdsd8997_combo_v4.bin",
 	.reg            = &btmrvl_reg_8997,
 	.support_pscan_win_report = true,
 	.sd_blksz_fw_dl = 256,
@@ -1831,6 +1831,6 @@
 MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin");
 MODULE_FIRMWARE("mrvl/sd8887_uapsta.bin");
 MODULE_FIRMWARE("mrvl/sd8897_uapsta.bin");
-MODULE_FIRMWARE("mrvl/sd8977_uapsta.bin");
+MODULE_FIRMWARE("mrvl/sdsd8977_combo_v2.bin");
 MODULE_FIRMWARE("mrvl/sd8987_uapsta.bin");
-MODULE_FIRMWARE("mrvl/sd8997_uapsta.bin");
+MODULE_FIRMWARE("mrvl/sdsd8997_combo_v4.bin");
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btmtksdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btmtksdio.c
@@ -684,7 +684,7 @@
 	const u8 *fw_ptr;
 	size_t fw_size;
 	int err, dlen;
-	u8 flag;
+	u8 flag, param;
 
 	err = request_firmware(&fw, fwname, &hdev->dev);
 	if (err < 0) {
@@ -692,6 +692,20 @@
 		return err;
 	}
 
+	/* Power on data RAM the firmware relies on. */
+	param = 1;
+	wmt_params.op = MTK_WMT_FUNC_CTRL;
+	wmt_params.flag = 3;
+	wmt_params.dlen = sizeof(param);
+	wmt_params.data = &param;
+	wmt_params.status = NULL;
+
+	err = mtk_hci_wmt_sync(hdev, &wmt_params);
+	if (err < 0) {
+		bt_dev_err(hdev, "Failed to power on data RAM (%d)", err);
+		goto free_fw;
+	}
+
 	fw_ptr = fw->data;
 	fw_size = fw->size;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btmtkuart.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btmtkuart.c
@@ -1015,7 +1015,7 @@
 	if (btmtkuart_is_standalone(bdev)) {
 		err = clk_prepare_enable(bdev->osc);
 		if (err < 0)
-			return err;
+			goto err_hci_free_dev;
 
 		if (bdev->boot) {
 			gpiod_set_value_cansleep(bdev->boot, 1);
@@ -1028,10 +1028,8 @@
 
 		/* Power on */
 		err = regulator_enable(bdev->vcc);
-		if (err < 0) {
-			clk_disable_unprepare(bdev->osc);
-			return err;
-		}
+		if (err < 0)
+			goto err_clk_disable_unprepare;
 
 		/* Reset if the reset-gpios is available otherwise the board
 		 * -level design should be guaranteed.
@@ -1063,7 +1061,6 @@
 	err = hci_register_dev(hdev);
 	if (err < 0) {
 		dev_err(&serdev->dev, "Can't register HCI device\n");
-		hci_free_dev(hdev);
 		goto err_regulator_disable;
 	}
 
@@ -1072,6 +1069,11 @@
 err_regulator_disable:
 	if (btmtkuart_is_standalone(bdev))
 		regulator_disable(bdev->vcc);
+err_clk_disable_unprepare:
+	if (btmtkuart_is_standalone(bdev))
+		clk_disable_unprepare(bdev->osc);
+err_hci_free_dev:
+	hci_free_dev(hdev);
 
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btqcomsmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btqcomsmd.c
@@ -142,12 +142,16 @@
 
 	btq->cmd_channel = qcom_wcnss_open_channel(wcnss, "APPS_RIVA_BT_CMD",
 						   btqcomsmd_cmd_callback, btq);
-	if (IS_ERR(btq->cmd_channel))
-		return PTR_ERR(btq->cmd_channel);
+	if (IS_ERR(btq->cmd_channel)) {
+		ret = PTR_ERR(btq->cmd_channel);
+		goto destroy_acl_channel;
+	}
 
 	hdev = hci_alloc_dev();
-	if (!hdev)
-		return -ENOMEM;
+	if (!hdev) {
+		ret = -ENOMEM;
+		goto destroy_cmd_channel;
+	}
 
 	hci_set_drvdata(hdev, btq);
 	btq->hdev = hdev;
@@ -161,14 +165,21 @@
 	hdev->set_bdaddr = qca_set_bdaddr_rome;
 
 	ret = hci_register_dev(hdev);
-	if (ret < 0) {
-		hci_free_dev(hdev);
-		return ret;
-	}
+	if (ret < 0)
+		goto hci_free_dev;
 
 	platform_set_drvdata(pdev, btq);
 
 	return 0;
+
+hci_free_dev:
+	hci_free_dev(hdev);
+destroy_cmd_channel:
+	rpmsg_destroy_ept(btq->cmd_channel);
+destroy_acl_channel:
+	rpmsg_destroy_ept(btq->acl_channel);
+
+	return ret;
 }
 
 static int btqcomsmd_remove(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btrtl.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btrtl.c
@@ -55,6 +55,7 @@
 	int fw_len;
 	u8 *cfg_data;
 	int cfg_len;
+	bool drop_fw;
 };
 
 static const struct id_table ic_id_table[] = {
@@ -370,11 +371,11 @@
 	 * the end.
 	 */
 	len = patch_length;
-	buf = kmemdup(btrtl_dev->fw_data + patch_offset, patch_length,
-		      GFP_KERNEL);
+	buf = kvmalloc(patch_length, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
+	memcpy(buf, btrtl_dev->fw_data + patch_offset, patch_length - 4);
 	memcpy(buf + patch_length - 4, &epatch_info->fw_version, 4);
 
 	*_buf = buf;
@@ -460,8 +461,10 @@
 	if (ret < 0)
 		return ret;
 	ret = fw->size;
-	*buff = kmemdup(fw->data, ret, GFP_KERNEL);
-	if (!*buff)
+	*buff = kvmalloc(fw->size, GFP_KERNEL);
+	if (*buff)
+		memcpy(*buff, fw->data, ret);
+	else
 		ret = -ENOMEM;
 
 	release_firmware(fw);
@@ -499,14 +502,14 @@
 		goto out;
 
 	if (btrtl_dev->cfg_len > 0) {
-		tbuff = kzalloc(ret + btrtl_dev->cfg_len, GFP_KERNEL);
+		tbuff = kvzalloc(ret + btrtl_dev->cfg_len, GFP_KERNEL);
 		if (!tbuff) {
 			ret = -ENOMEM;
 			goto out;
 		}
 
 		memcpy(tbuff, fw_data, ret);
-		kfree(fw_data);
+		kvfree(fw_data);
 
 		memcpy(tbuff + ret, btrtl_dev->cfg_data, btrtl_dev->cfg_len);
 		ret += btrtl_dev->cfg_len;
@@ -519,14 +522,14 @@
 	ret = rtl_download_firmware(hdev, fw_data, ret);
 
 out:
-	kfree(fw_data);
+	kvfree(fw_data);
 	return ret;
 }
 
 void btrtl_free(struct btrtl_device_info *btrtl_dev)
 {
-	kfree(btrtl_dev->fw_data);
-	kfree(btrtl_dev->cfg_data);
+	kvfree(btrtl_dev->fw_data);
+	kvfree(btrtl_dev->cfg_data);
 	kfree(btrtl_dev);
 }
 EXPORT_SYMBOL_GPL(btrtl_free);
@@ -541,6 +544,8 @@
 	u16 hci_rev, lmp_subver;
 	u8 hci_ver;
 	int ret;
+	u16 opcode;
+	u8 cmd[2];
 
 	btrtl_dev = kzalloc(sizeof(*btrtl_dev), GFP_KERNEL);
 	if (!btrtl_dev) {
@@ -562,6 +567,49 @@
 	hci_ver = resp->hci_ver;
 	hci_rev = le16_to_cpu(resp->hci_rev);
 	lmp_subver = le16_to_cpu(resp->lmp_subver);
+
+	if (resp->hci_ver == 0x8 && le16_to_cpu(resp->hci_rev) == 0x826c &&
+	    resp->lmp_ver == 0x8 && le16_to_cpu(resp->lmp_subver) == 0xa99e)
+		btrtl_dev->drop_fw = true;
+
+	if (btrtl_dev->drop_fw) {
+		opcode = hci_opcode_pack(0x3f, 0x66);
+		cmd[0] = opcode & 0xff;
+		cmd[1] = opcode >> 8;
+
+		skb = bt_skb_alloc(sizeof(cmd), GFP_KERNEL);
+		if (!skb)
+			goto out_free;
+
+		skb_put_data(skb, cmd, sizeof(cmd));
+		hci_skb_pkt_type(skb) = HCI_COMMAND_PKT;
+
+		hdev->send(hdev, skb);
+
+		/* Ensure the above vendor command is sent to controller and
+		 * process has done.
+		 */
+		msleep(200);
+
+		/* Read the local version again. Expect to have the vanilla
+		 * version as cold boot.
+		 */
+		skb = btrtl_read_local_version(hdev);
+		if (IS_ERR(skb)) {
+			ret = PTR_ERR(skb);
+			goto err_free;
+		}
+
+		resp = (struct hci_rp_read_local_version *)skb->data;
+		rtl_dev_info(hdev, "examining hci_ver=%02x hci_rev=%04x lmp_ver=%02x lmp_subver=%04x",
+			     resp->hci_ver, resp->hci_rev,
+			     resp->lmp_ver, resp->lmp_subver);
+
+		hci_ver = resp->hci_ver;
+		hci_rev = le16_to_cpu(resp->hci_rev);
+		lmp_subver = le16_to_cpu(resp->lmp_subver);
+	}
+out_free:
 	kfree_skb(skb);
 
 	btrtl_dev->ic_info = btrtl_match_ic(lmp_subver, hci_rev, hci_ver,
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/btusb.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/btusb.c
@@ -14,6 +14,7 @@
 #include <linux/iopoll.h>
 #include <linux/of_device.h>
 #include <linux/of_irq.h>
+#include <linux/pci.h>
 #include <linux/suspend.h>
 #include <linux/gpio/consumer.h>
 #include <asm/unaligned.h>
@@ -1200,7 +1201,7 @@
 	if (data->setup_on_usb) {
 		err = data->setup_on_usb(hdev);
 		if (err < 0)
-			return err;
+			goto setup_fail;
 	}
 
 	data->intf->needs_remote_wakeup = 1;
@@ -1239,6 +1240,7 @@
 
 failed:
 	clear_bit(BTUSB_INTR_RUNNING, &data->flags);
+setup_fail:
 	usb_autopm_put_interface(data->intf);
 	return err;
 }
@@ -2567,7 +2569,7 @@
 		skb = bt_skb_alloc(HCI_WMT_MAX_EVENT_SIZE, GFP_ATOMIC);
 		if (!skb) {
 			hdev->stat.err_rx++;
-			goto err_out;
+			return;
 		}
 
 		hci_skb_pkt_type(skb) = HCI_EVENT_PKT;
@@ -2584,14 +2586,19 @@
 		 * and being processed the events from there then.
 		 */
 		if (test_bit(BTUSB_TX_WAIT_VND_EVT, &data->flags)) {
-			data->evt_skb = skb_clone(skb, GFP_KERNEL);
-			if (!data->evt_skb)
-				goto err_out;
+			data->evt_skb = skb_clone(skb, GFP_ATOMIC);
+			if (!data->evt_skb) {
+				kfree_skb(skb);
+				return;
+			}
 		}
 
 		err = hci_recv_frame(hdev, skb);
-		if (err < 0)
-			goto err_free_skb;
+		if (err < 0) {
+			kfree_skb(data->evt_skb);
+			data->evt_skb = NULL;
+			return;
+		}
 
 		if (test_and_clear_bit(BTUSB_TX_WAIT_VND_EVT,
 				       &data->flags)) {
@@ -2600,11 +2607,6 @@
 			wake_up_bit(&data->flags,
 				    BTUSB_TX_WAIT_VND_EVT);
 		}
-err_out:
-		return;
-err_free_skb:
-		kfree_skb(data->evt_skb);
-		data->evt_skb = NULL;
 		return;
 	} else if (urb->status == -ENOENT) {
 		/* Avoid suspend failed when usb_kill_urb */
@@ -2663,6 +2665,7 @@
 	buf = kmalloc(size, GFP_KERNEL);
 	if (!buf) {
 		kfree(dr);
+		usb_free_urb(urb);
 		return -ENOMEM;
 	}
 
@@ -2791,7 +2794,7 @@
 	const u8 *fw_ptr;
 	size_t fw_size;
 	int err, dlen;
-	u8 flag;
+	u8 flag, param;
 
 	err = request_firmware(&fw, fwname, &hdev->dev);
 	if (err < 0) {
@@ -2799,6 +2802,20 @@
 		return err;
 	}
 
+	/* Power on data RAM the firmware relies on. */
+	param = 1;
+	wmt_params.op = BTMTK_WMT_FUNC_CTRL;
+	wmt_params.flag = 3;
+	wmt_params.dlen = sizeof(param);
+	wmt_params.data = &param;
+	wmt_params.status = NULL;
+
+	err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
+	if (err < 0) {
+		bt_dev_err(hdev, "Failed to power on data RAM (%d)", err);
+		goto err_release_fw;
+	}
+
 	fw_ptr = fw->data;
 	fw_size = fw->size;
 
@@ -2849,7 +2866,7 @@
 	err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
 	if (err < 0) {
 		bt_dev_err(hdev, "Failed to send wmt rst (%d)", err);
-		return err;
+		goto err_release_fw;
 	}
 
 	/* Wait a few moments for firmware activation done */
@@ -3120,6 +3137,35 @@
 	return 0;
 }
 
+#define BTUSB_EDGE_LED_COMMAND		0xfc77
+
+static void btusb_edge_set_led(struct hci_dev *hdev, bool state)
+{
+	struct sk_buff *skb;
+	u8 config_led[] = { 0x09, 0x00, 0x01, 0x01 };
+
+	if (state)
+		config_led[1] = 0x01;
+
+	skb = __hci_cmd_sync(hdev, BTUSB_EDGE_LED_COMMAND, sizeof(config_led), config_led, HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb))
+		BT_ERR("%s fail to set LED (%ld)", hdev->name, PTR_ERR(skb));
+	else
+		kfree_skb(skb);
+}
+
+static int btusb_edge_post_init(struct hci_dev *hdev)
+{
+	btusb_edge_set_led(hdev, true);
+	return 0;
+}
+
+static int btusb_edge_shutdown(struct hci_dev *hdev)
+{
+	btusb_edge_set_led(hdev, false);
+	return 0;
+}
+
 static int btusb_set_bdaddr_ath3012(struct hci_dev *hdev,
 				    const bdaddr_t *bdaddr)
 {
@@ -3771,8 +3817,18 @@
 		set_bit(HCI_QUIRK_NON_PERSISTENT_DIAG, &hdev->quirks);
 	}
 
-	if (id->driver_info & BTUSB_MARVELL)
+	if (id->driver_info & BTUSB_MARVELL) {
+		struct pci_dev *pdev;
 		hdev->set_bdaddr = btusb_set_bdaddr_marvell;
+		pdev = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0720, NULL);
+		if (!pdev)
+			pdev = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0733, NULL);
+		if (pdev) {
+			pci_dev_put(pdev);
+			hdev->post_init = btusb_edge_post_init;
+			hdev->shutdown = btusb_edge_shutdown;
+		}
+	}
 
 #ifdef CONFIG_BT_HCIBTUSB_MTK
 	if (id->driver_info & BTUSB_MEDIATEK) {
@@ -3807,8 +3863,8 @@
 		btusb_check_needs_reset_resume(intf);
 	}
 
-#ifdef CONFIG_BT_HCIBTUSB_RTL
-	if (id->driver_info & BTUSB_REALTEK) {
+	if (IS_ENABLED(CONFIG_BT_HCIBTUSB_RTL) &&
+	    (id->driver_info & BTUSB_REALTEK)) {
 		hdev->setup = btrtl_setup_realtek;
 		hdev->shutdown = btrtl_shutdown_realtek;
 		hdev->cmd_timeout = btusb_rtl_cmd_timeout;
@@ -3818,8 +3874,11 @@
 		 * (DEVICE_REMOTE_WAKEUP)
 		 */
 		set_bit(BTUSB_WAKEUP_DISABLE, &data->flags);
+
+		err = usb_autopm_get_interface(intf);
+		if (err < 0)
+			goto out_free_dev;
 	}
-#endif
 
 	if (id->driver_info & BTUSB_AMP) {
 		/* AMP controllers do not support SCO packets */
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/hci_bcm.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/hci_bcm.c
@@ -107,6 +107,7 @@
 	u32			oper_speed;
 	int			irq;
 	bool			irq_active_low;
+	bool			irq_acquired;
 
 #ifdef CONFIG_PM
 	struct hci_uart		*hu;
@@ -319,6 +320,8 @@
 		goto unlock;
 	}
 
+	bdev->irq_acquired = true;
+
 	device_init_wakeup(bdev->dev, true);
 
 	pm_runtime_set_autosuspend_delay(bdev->dev,
@@ -487,7 +490,7 @@
 	}
 
 	if (bdev) {
-		if (IS_ENABLED(CONFIG_PM) && bdev->irq > 0) {
+		if (IS_ENABLED(CONFIG_PM) && bdev->irq_acquired) {
 			devm_free_irq(bdev->dev, bdev->irq, bdev);
 			device_init_wakeup(bdev->dev, false);
 			pm_runtime_disable(bdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/hci_bcsp.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/hci_bcsp.c
@@ -591,6 +591,7 @@
 			if (*ptr == 0xc0) {
 				BT_ERR("Short BCSP packet");
 				kfree_skb(bcsp->rx_skb);
+				bcsp->rx_skb = NULL;
 				bcsp->rx_state = BCSP_W4_PKT_START;
 				bcsp->rx_count = 0;
 			} else
@@ -606,6 +607,7 @@
 			    bcsp->rx_skb->data[2])) != bcsp->rx_skb->data[3]) {
 				BT_ERR("Error in BCSP hdr checksum");
 				kfree_skb(bcsp->rx_skb);
+				bcsp->rx_skb = NULL;
 				bcsp->rx_state = BCSP_W4_PKT_DELIMITER;
 				bcsp->rx_count = 0;
 				continue;
@@ -630,6 +632,7 @@
 				       bscp_get_crc(bcsp));
 
 				kfree_skb(bcsp->rx_skb);
+				bcsp->rx_skb = NULL;
 				bcsp->rx_state = BCSP_W4_PKT_DELIMITER;
 				bcsp->rx_count = 0;
 				continue;
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/hci_h5.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/hci_h5.c
@@ -244,6 +244,9 @@
 	skb_queue_purge(&h5->rel);
 	skb_queue_purge(&h5->unrel);
 
+	kfree_skb(h5->rx_skb);
+	h5->rx_skb = NULL;
+
 	if (h5->vnd && h5->vnd->close)
 		h5->vnd->close(h5);
 
@@ -790,7 +793,7 @@
 	if (!h5)
 		return -ENOMEM;
 
-	set_bit(HCI_UART_RESET_ON_INIT, &h5->serdev_hu.flags);
+	set_bit(HCI_UART_RESET_ON_INIT, &h5->serdev_hu.hdev_flags);
 
 	h5->hu = &h5->serdev_hu;
 	h5->serdev_hu.serdev = serdev;
@@ -891,6 +894,11 @@
 	/* Give the device some time before the hci-core sends it a reset */
 	usleep_range(10000, 20000);
 
+	/* Enable controller to do both LE scan and BR/EDR inquiry
+	 * simultaneously.
+	 */
+	set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &h5->hu->hdev->quirks);
+
 out_free:
 	btrtl_free(btrtl_dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/hci_ldisc.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/hci_ldisc.c
@@ -127,10 +127,9 @@
 	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
 		goto no_schedule;
 
-	if (test_and_set_bit(HCI_UART_SENDING, &hu->tx_state)) {
-		set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
+	set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
+	if (test_and_set_bit(HCI_UART_SENDING, &hu->tx_state))
 		goto no_schedule;
-	}
 
 	BT_DBG("");
 
@@ -174,10 +173,10 @@
 		kfree_skb(skb);
 	}
 
+	clear_bit(HCI_UART_SENDING, &hu->tx_state);
 	if (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state))
 		goto restart;
 
-	clear_bit(HCI_UART_SENDING, &hu->tx_state);
 	wake_up_bit(&hu->tx_state, HCI_UART_SENDING);
 }
 
@@ -538,6 +537,7 @@
 		clear_bit(HCI_UART_PROTO_READY, &hu->flags);
 		percpu_up_write(&hu->proto_lock);
 
+		cancel_work_sync(&hu->init_ready);
 		cancel_work_sync(&hu->write_work);
 
 		if (hdev) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/hci_ll.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/hci_ll.c
@@ -621,13 +621,6 @@
 
 	serdev_device_set_flow_control(serdev, true);
 
-	if (hu->oper_speed)
-		speed = hu->oper_speed;
-	else if (hu->proto->oper_speed)
-		speed = hu->proto->oper_speed;
-	else
-		speed = 0;
-
 	do {
 		/* Reset the Bluetooth device */
 		gpiod_set_value_cansleep(lldev->enable_gpio, 0);
@@ -639,20 +632,6 @@
 			return err;
 		}
 
-		if (speed) {
-			__le32 speed_le = cpu_to_le32(speed);
-			struct sk_buff *skb;
-
-			skb = __hci_cmd_sync(hu->hdev,
-					     HCI_VS_UPDATE_UART_HCI_BAUDRATE,
-					     sizeof(speed_le), &speed_le,
-					     HCI_INIT_TIMEOUT);
-			if (!IS_ERR(skb)) {
-				kfree_skb(skb);
-				serdev_device_set_baudrate(serdev, speed);
-			}
-		}
-
 		err = download_firmware(lldev);
 		if (!err)
 			break;
@@ -677,7 +656,25 @@
 	}
 
 	/* Operational speed if any */
+	if (hu->oper_speed)
+		speed = hu->oper_speed;
+	else if (hu->proto->oper_speed)
+		speed = hu->proto->oper_speed;
+	else
+		speed = 0;
 
+	if (speed) {
+		__le32 speed_le = cpu_to_le32(speed);
+		struct sk_buff *skb;
+
+		skb = __hci_cmd_sync(hu->hdev, HCI_VS_UPDATE_UART_HCI_BAUDRATE,
+				     sizeof(speed_le), &speed_le,
+				     HCI_INIT_TIMEOUT);
+		if (!IS_ERR(skb)) {
+			kfree_skb(skb);
+			serdev_device_set_baudrate(serdev, speed);
+		}
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/bluetooth/hci_serdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/bluetooth/hci_serdev.c
@@ -85,9 +85,9 @@
 			hci_uart_tx_complete(hu, hci_skb_pkt_type(skb));
 			kfree_skb(skb);
 		}
-	} while (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state));
 
-	clear_bit(HCI_UART_SENDING, &hu->tx_state);
+		clear_bit(HCI_UART_SENDING, &hu->tx_state);
+	} while (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state));
 }
 
 /* ------- Interface to HCI layer ------ */
@@ -357,7 +357,10 @@
 	struct hci_dev *hdev = hu->hdev;
 
 	clear_bit(HCI_UART_PROTO_READY, &hu->flags);
-	hci_unregister_dev(hdev);
+
+	cancel_work_sync(&hu->init_ready);
+	if (test_bit(HCI_UART_REGISTERED, &hu->flags))
+		hci_unregister_dev(hdev);
 	hci_free_dev(hdev);
 
 	cancel_work_sync(&hu->write_work);
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/bus/Kconfig
@@ -138,7 +138,6 @@
 	tristate "Tegra ACONNECT Bus Driver"
 	depends on ARCH_TEGRA_210_SOC
 	depends on OF && PM
-	select PM_CLK
 	help
 	  Driver for the Tegra ACONNECT bus which is used to interface with
 	  the devices inside the Audio Processing Engine (APE) for Tegra210.
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/fsl-mc/fsl-mc-allocator.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/fsl-mc/fsl-mc-allocator.c
@@ -292,8 +292,10 @@
 		goto error;
 
 	mc_adev = resource->data;
-	if (!mc_adev)
+	if (!mc_adev) {
+		error = -EINVAL;
 		goto error;
+	}
 
 	mc_adev->consumer_link = device_link_add(&mc_dev->dev,
 						 &mc_adev->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/fsl-mc/mc-io.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/fsl-mc/mc-io.c
@@ -129,7 +129,12 @@
  */
 void fsl_destroy_mc_io(struct fsl_mc_io *mc_io)
 {
-	struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev;
+	struct fsl_mc_device *dpmcp_dev;
+
+	if (!mc_io)
+		return;
+
+	dpmcp_dev = mc_io->dpmcp_dev;
 
 	if (dpmcp_dev)
 		fsl_mc_io_unset_dpmcp(mc_io);
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/hisi_lpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/hisi_lpc.c
@@ -359,6 +359,26 @@
 }
 
 /*
+ * Released firmware describes the IO port max address as 0x3fff, which is
+ * the max host bus address. Fixup to a proper range. This will probably
+ * never be fixed in firmware.
+ */
+static void hisi_lpc_acpi_fixup_child_resource(struct device *hostdev,
+					       struct resource *r)
+{
+	if (r->end != 0x3fff)
+		return;
+
+	if (r->start == 0xe4)
+		r->end = 0xe4 + 0x04 - 1;
+	else if (r->start == 0x2f8)
+		r->end = 0x2f8 + 0x08 - 1;
+	else
+		dev_warn(hostdev, "unrecognised resource %pR to fixup, ignoring\n",
+			 r);
+}
+
+/*
  * hisi_lpc_acpi_set_io_res - set the resources for a child
  * @child: the device node to be updated the I/O resource
  * @hostdev: the device node associated with host controller
@@ -419,8 +439,11 @@
 		return -ENOMEM;
 	}
 	count = 0;
-	list_for_each_entry(rentry, &resource_list, node)
-		resources[count++] = *rentry->res;
+	list_for_each_entry(rentry, &resource_list, node) {
+		resources[count] = *rentry->res;
+		hisi_lpc_acpi_fixup_child_resource(hostdev, &resources[count]);
+		count++;
+	}
 
 	acpi_dev_free_resource_list(&resource_list);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/mips_cdmm.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/mips_cdmm.c
@@ -544,10 +544,8 @@
 		dev_set_name(&dev->dev, "cdmm%u-%u", cpu, id);
 		++id;
 		ret = device_register(&dev->dev);
-		if (ret) {
+		if (ret)
 			put_device(&dev->dev);
-			kfree(dev);
-		}
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/moxtet.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/moxtet.c
@@ -466,7 +466,7 @@
 {
 	struct moxtet *moxtet = file->private_data;
 	u8 bin[TURRIS_MOX_MAX_MODULES];
-	u8 hex[sizeof(buf) * 2 + 1];
+	u8 hex[sizeof(bin) * 2 + 1];
 	int ret, n;
 
 	ret = moxtet_spi_read(moxtet, bin);
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/sunxi-rsb.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/sunxi-rsb.c
@@ -345,7 +345,7 @@
 	if (ret)
 		goto unlock;
 
-	*buf = readl(rsb->regs + RSB_DATA);
+	*buf = readl(rsb->regs + RSB_DATA) & GENMASK(len * 8 - 1, 0);
 
 unlock:
 	mutex_unlock(&rsb->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/bus/ti-sysc.c
+++ linux-gkeop-5.4-5.4.0/drivers/bus/ti-sysc.c
@@ -70,11 +70,13 @@
  * @child_needs_resume: runtime resume needed for child on resume from suspend
  * @disable_on_idle: status flag used for disabling modules with resets
  * @idle_work: work structure used to perform delayed idle on a module
- * @clk_enable_quirk: module specific clock enable quirk
- * @clk_disable_quirk: module specific clock disable quirk
+ * @pre_reset_quirk: module specific pre-reset quirk
+ * @post_reset_quirk: module specific post-reset quirk
  * @reset_done_quirk: module specific reset done quirk
  * @module_enable_quirk: module specific enable quirk
  * @module_disable_quirk: module specific disable quirk
+ * @module_unlock_quirk: module specific sysconfig unlock quirk
+ * @module_lock_quirk: module specific sysconfig lock quirk
  */
 struct sysc {
 	struct device *dev;
@@ -97,11 +99,13 @@
 	unsigned int needs_resume:1;
 	unsigned int child_needs_resume:1;
 	struct delayed_work idle_work;
-	void (*clk_enable_quirk)(struct sysc *sysc);
-	void (*clk_disable_quirk)(struct sysc *sysc);
+	void (*pre_reset_quirk)(struct sysc *sysc);
+	void (*post_reset_quirk)(struct sysc *sysc);
 	void (*reset_done_quirk)(struct sysc *sysc);
 	void (*module_enable_quirk)(struct sysc *sysc);
 	void (*module_disable_quirk)(struct sysc *sysc);
+	void (*module_unlock_quirk)(struct sysc *sysc);
+	void (*module_lock_quirk)(struct sysc *sysc);
 };
 
 static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,
@@ -182,6 +186,37 @@
 	return sysc_read(ddata, offset);
 }
 
+/* Poll on reset status */
+static int sysc_wait_softreset(struct sysc *ddata)
+{
+	u32 sysc_mask, syss_done, rstval;
+	int syss_offset, error = 0;
+
+	if (ddata->cap->regbits->srst_shift < 0)
+		return 0;
+
+	syss_offset = ddata->offsets[SYSC_SYSSTATUS];
+	sysc_mask = BIT(ddata->cap->regbits->srst_shift);
+
+	if (ddata->cfg.quirks & SYSS_QUIRK_RESETDONE_INVERTED)
+		syss_done = 0;
+	else
+		syss_done = ddata->cfg.syss_mask;
+
+	if (syss_offset >= 0) {
+		error = readx_poll_timeout_atomic(sysc_read_sysstatus, ddata,
+				rstval, (rstval & ddata->cfg.syss_mask) ==
+				syss_done, 100, MAX_MODULE_SOFTRESET_WAIT);
+
+	} else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
+		error = readx_poll_timeout_atomic(sysc_read_sysconfig, ddata,
+				rstval, !(rstval & sysc_mask),
+				100, MAX_MODULE_SOFTRESET_WAIT);
+	}
+
+	return error;
+}
+
 static int sysc_add_named_clock_from_child(struct sysc *ddata,
 					   const char *name,
 					   const char *optfck_name)
@@ -343,6 +378,12 @@
 		return -EINVAL;
 	}
 
+	/* Always add a slot for main clocks fck and ick even if unused */
+	if (!nr_fck)
+		ddata->nr_clocks++;
+	if (!nr_ick)
+		ddata->nr_clocks++;
+
 	ddata->clocks = devm_kcalloc(ddata->dev,
 				     ddata->nr_clocks, sizeof(*ddata->clocks),
 				     GFP_KERNEL);
@@ -421,7 +462,7 @@
 	struct clk *clock;
 	int i, error;
 
-	if (!ddata->clocks)
+	if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
 		return 0;
 
 	for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
@@ -455,7 +496,7 @@
 	struct clk *clock;
 	int i;
 
-	if (!ddata->clocks)
+	if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
 		return;
 
 	for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
@@ -473,7 +514,7 @@
 {
 	struct ti_sysc_platform_data *pdata;
 
-	if (ddata->legacy_mode)
+	if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
 		return;
 
 	pdata = dev_get_platdata(ddata->dev);
@@ -485,7 +526,7 @@
 {
 	struct ti_sysc_platform_data *pdata;
 
-	if (ddata->legacy_mode)
+	if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
 		return;
 
 	pdata = dev_get_platdata(ddata->dev);
@@ -857,6 +898,22 @@
 		buf);
 }
 
+/**
+ * sysc_write_sysconfig - handle sysconfig quirks for register write
+ * @ddata: device driver data
+ * @value: register value
+ */
+static void sysc_write_sysconfig(struct sysc *ddata, u32 value)
+{
+	if (ddata->module_unlock_quirk)
+		ddata->module_unlock_quirk(ddata);
+
+	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], value);
+
+	if (ddata->module_lock_quirk)
+		ddata->module_lock_quirk(ddata);
+}
+
 #define SYSC_IDLE_MASK	(SYSC_NR_IDLEMODES - 1)
 #define SYSC_CLOCACT_ICK	2
 
@@ -866,18 +923,47 @@
 	struct sysc *ddata;
 	const struct sysc_regbits *regbits;
 	u32 reg, idlemodes, best_mode;
+	int error;
 
 	ddata = dev_get_drvdata(dev);
+
+	/*
+	 * Some modules like DSS reset automatically on idle. Enable optional
+	 * reset clocks and wait for OCP softreset to complete.
+	 */
+	if (ddata->cfg.quirks & SYSC_QUIRK_OPT_CLKS_IN_RESET) {
+		error = sysc_enable_opt_clocks(ddata);
+		if (error) {
+			dev_err(ddata->dev,
+				"Optional clocks failed for enable: %i\n",
+				error);
+			return error;
+		}
+	}
+	error = sysc_wait_softreset(ddata);
+	if (error)
+		dev_warn(ddata->dev, "OCP softreset timed out\n");
+	if (ddata->cfg.quirks & SYSC_QUIRK_OPT_CLKS_IN_RESET)
+		sysc_disable_opt_clocks(ddata);
+
+	/*
+	 * Some subsystem private interconnects, like DSS top level module,
+	 * need only the automatic OCP softreset handling with no sysconfig
+	 * register bits to configure.
+	 */
 	if (ddata->offsets[SYSC_SYSCONFIG] == -ENODEV)
 		return 0;
 
 	regbits = ddata->cap->regbits;
 	reg = sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
 
-	/* Set CLOCKACTIVITY, we only use it for ick */
+	/*
+	 * Set CLOCKACTIVITY, we only use it for ick. And we only configure it
+	 * based on the SYSC_QUIRK_USE_CLOCKACT flag, not based on the hardware
+	 * capabilities. See the old HWMOD_SET_DEFAULT_CLOCKACT flag.
+	 */
 	if (regbits->clkact_shift >= 0 &&
-	    (ddata->cfg.quirks & SYSC_QUIRK_USE_CLOCKACT ||
-	     ddata->cfg.sysc_val & BIT(regbits->clkact_shift)))
+	    (ddata->cfg.quirks & SYSC_QUIRK_USE_CLOCKACT))
 		reg |= SYSC_CLOCACT_ICK << regbits->clkact_shift;
 
 	/* Set SIDLE mode */
@@ -903,7 +989,7 @@
 
 	reg &= ~(SYSC_IDLE_MASK << regbits->sidle_shift);
 	reg |= best_mode << regbits->sidle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
 
 set_midle:
 	/* Set MIDLE mode */
@@ -917,18 +1003,24 @@
 		return -EINVAL;
 	}
 
+	if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_MSTANDBY)
+		best_mode = SYSC_IDLE_NO;
+
 	reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
 	reg |= best_mode << regbits->midle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
 
 set_autoidle:
 	/* Autoidle bit must enabled separately if available */
 	if (regbits->autoidle_shift >= 0 &&
 	    ddata->cfg.sysc_val & BIT(regbits->autoidle_shift)) {
 		reg |= 1 << regbits->autoidle_shift;
-		sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+		sysc_write_sysconfig(ddata, reg);
 	}
 
+	/* Flush posted write */
+	sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
+
 	if (ddata->module_enable_quirk)
 		ddata->module_enable_quirk(ddata);
 
@@ -978,9 +1070,13 @@
 		return ret;
 	}
 
+	if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_MSTANDBY) ||
+	    ddata->cfg.quirks & (SYSC_QUIRK_FORCE_MSTANDBY))
+		best_mode = SYSC_IDLE_FORCE;
+
 	reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
 	reg |= best_mode << regbits->midle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
 
 set_sidle:
 	/* Set SIDLE mode */
@@ -1003,7 +1099,10 @@
 	if (regbits->autoidle_shift >= 0 &&
 	    ddata->cfg.sysc_val & BIT(regbits->autoidle_shift))
 		reg |= 1 << regbits->autoidle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
+
+	/* Flush posted write */
+	sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
 
 	return 0;
 }
@@ -1149,7 +1248,8 @@
 
 	ddata = dev_get_drvdata(dev);
 
-	if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
+	if (ddata->cfg.quirks &
+	    (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
 		return 0;
 
 	return pm_runtime_force_suspend(dev);
@@ -1161,7 +1261,8 @@
 
 	ddata = dev_get_drvdata(dev);
 
-	if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
+	if (ddata->cfg.quirks &
+	    (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
 		return 0;
 
 	return pm_runtime_force_resume(dev);
@@ -1209,16 +1310,16 @@
 		   SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("sham", 0, 0x100, 0x110, 0x114, 0x40000c03, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
-	SYSC_QUIRK("smartreflex", 0, -1, 0x24, -1, 0x00000000, 0xffffffff,
+	SYSC_QUIRK("smartreflex", 0, -ENODEV, 0x24, -ENODEV, 0x00000000, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
-	SYSC_QUIRK("smartreflex", 0, -1, 0x38, -1, 0x00000000, 0xffffffff,
+	SYSC_QUIRK("smartreflex", 0, -ENODEV, 0x38, -ENODEV, 0x00000000, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("timer", 0, 0, 0x10, 0x14, 0x00000015, 0xffffffff,
 		   0),
 	/* Some timers on omap4 and later */
-	SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x50002100, 0xffffffff,
+	SYSC_QUIRK("timer", 0, 0, 0x10, -ENODEV, 0x50002100, 0xffffffff,
 		   0),
-	SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x4fff1301, 0xffff00ff,
+	SYSC_QUIRK("timer", 0, 0, 0x10, -ENODEV, 0x4fff1301, 0xffff00ff,
 		   0),
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000046, 0xffffffff,
 		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
@@ -1231,11 +1332,27 @@
 		   SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
 
 	/* Quirks that need to be set based on the module address */
-	SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -1, 0x50000800, 0xffffffff,
+	SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff,
 		   SYSC_QUIRK_EXT_OPT_CLOCK | SYSC_QUIRK_NO_RESET_ON_INIT |
 		   SYSC_QUIRK_SWSUP_SIDLE),
 
 	/* Quirks that need to be set based on detected module */
+	SYSC_QUIRK("aess", 0, 0, 0x10, -ENODEV, 0x40000000, 0xffffffff,
+		   SYSC_MODULE_QUIRK_AESS),
+	SYSC_QUIRK("dcan", 0x48480000, 0x20, -ENODEV, -ENODEV, 0xa3170504, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dss", 0x4832a000, 0, 0x10, 0x14, 0x00000020, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_IN_RESET),
+	SYSC_QUIRK("dss", 0x58000000, 0, -ENODEV, 0x14, 0x00000040, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_IN_RESET),
+	SYSC_QUIRK("dss", 0x58000000, 0, -ENODEV, 0x14, 0x00000061, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_IN_RESET),
+	SYSC_QUIRK("dwc3", 0x48880000, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dwc3", 0x488c0000, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50030200, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_NEEDED),
 	SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x00000006, 0xffffffff,
 		   SYSC_MODULE_QUIRK_HDQ1W),
 	SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x0000000a, 0xffffffff,
@@ -1248,9 +1365,23 @@
 		   SYSC_MODULE_QUIRK_I2C),
 	SYSC_QUIRK("i2c", 0, 0, 0x10, 0x90, 0x5040000a, 0xfffff0f0,
 		   SYSC_MODULE_QUIRK_I2C),
-	SYSC_QUIRK("gpu", 0x50000000, 0x14, -1, -1, 0x00010201, 0xffffffff, 0),
-	SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff,
+	SYSC_QUIRK("gpu", 0x50000000, 0x14, -ENODEV, -ENODEV, 0x00010201, 0xffffffff, 0),
+	SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -ENODEV, 0x40000000 , 0xffffffff,
 		   SYSC_MODULE_QUIRK_SGX),
+	SYSC_QUIRK("rtc", 0, 0x74, 0x78, -ENODEV, 0x4eb01908, 0xffff00f0,
+		   SYSC_MODULE_QUIRK_RTC_UNLOCK),
+	SYSC_QUIRK("tptc", 0, 0, 0x10, -ENODEV, 0x40006c00, 0xffffefff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("tptc", 0, 0, -ENODEV, -ENODEV, 0x40007c00, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -ENODEV, 0x50700101, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050,
+		   0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_otg_hs", 0, 0, 0x10, -ENODEV, 0x4ea2080d, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
 	SYSC_QUIRK("wdt", 0, 0, 0x10, 0x14, 0x502a0500, 0xfffff0f0,
 		   SYSC_MODULE_QUIRK_WDT),
 	/* Watchdog on am3 and am4 */
@@ -1258,60 +1389,66 @@
 		   SYSC_MODULE_QUIRK_WDT | SYSC_QUIRK_SWSUP_SIDLE),
 
 #ifdef DEBUG
-	SYSC_QUIRK("adc", 0, 0, 0x10, -1, 0x47300001, 0xffffffff, 0),
-	SYSC_QUIRK("atl", 0, 0, -1, -1, 0x0a070100, 0xffffffff, 0),
-	SYSC_QUIRK("aess", 0, 0, 0x10, -1, 0x40000000, 0xffffffff, 0),
-	SYSC_QUIRK("cm", 0, 0, -1, -1, 0x40000301, 0xffffffff, 0),
-	SYSC_QUIRK("control", 0, 0, 0x10, -1, 0x40000900, 0xffffffff, 0),
+	SYSC_QUIRK("adc", 0, 0, 0x10, -ENODEV, 0x47300001, 0xffffffff, 0),
+	SYSC_QUIRK("atl", 0, 0, -ENODEV, -ENODEV, 0x0a070100, 0xffffffff, 0),
+	SYSC_QUIRK("cm", 0, 0, -ENODEV, -ENODEV, 0x40000301, 0xffffffff, 0),
+	SYSC_QUIRK("control", 0, 0, 0x10, -ENODEV, 0x40000900, 0xffffffff, 0),
 	SYSC_QUIRK("cpgmac", 0, 0x1200, 0x1208, 0x1204, 0x4edb1902,
 		   0xffff00f0, 0),
-	SYSC_QUIRK("dcan", 0, 0x20, -1, -1, 0xa3170504, 0xffffffff, 0),
-	SYSC_QUIRK("dcan", 0, 0x20, -1, -1, 0x4edb1902, 0xffffffff, 0),
-	SYSC_QUIRK("dmic", 0, 0, 0x10, -1, 0x50010000, 0xffffffff, 0),
-	SYSC_QUIRK("dwc3", 0, 0, 0x10, -1, 0x500a0200, 0xffffffff, 0),
+	SYSC_QUIRK("dcan", 0, 0x20, -ENODEV, -ENODEV, 0xa3170504, 0xffffffff, 0),
+	SYSC_QUIRK("dcan", 0, 0x20, -ENODEV, -ENODEV, 0x4edb1902, 0xffffffff, 0),
+	SYSC_QUIRK("dispc", 0x4832a400, 0, 0x10, 0x14, 0x00000030, 0xffffffff, 0),
+	SYSC_QUIRK("dispc", 0x58001000, 0, 0x10, 0x14, 0x00000040, 0xffffffff, 0),
+	SYSC_QUIRK("dispc", 0x58001000, 0, 0x10, 0x14, 0x00000051, 0xffffffff, 0),
+	SYSC_QUIRK("dmic", 0, 0, 0x10, -ENODEV, 0x50010000, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58004000, 0, 0x10, 0x14, 0x00000030, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58005000, 0, 0x10, 0x14, 0x00000030, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58005000, 0, 0x10, 0x14, 0x00000040, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58009000, 0, 0x10, 0x14, 0x00000040, 0xffffffff, 0),
+	SYSC_QUIRK("dwc3", 0, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff, 0),
 	SYSC_QUIRK("d2d", 0x4a0b6000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
 	SYSC_QUIRK("d2d", 0x4a0cd000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
-	SYSC_QUIRK("epwmss", 0, 0, 0x4, -1, 0x47400001, 0xffffffff, 0),
-	SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -1, 0, 0, 0),
-	SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff, 0),
+	SYSC_QUIRK("epwmss", 0, 0, 0x4, -ENODEV, 0x47400001, 0xffffffff, 0),
+	SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -ENODEV, 0, 0, 0),
+	SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -ENODEV, 0x40000000 , 0xffffffff, 0),
+	SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50031d00, 0xffffffff, 0),
 	SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0),
-	SYSC_QUIRK("iss", 0, 0, 0x10, -1, 0x40000101, 0xffffffff, 0),
-	SYSC_QUIRK("lcdc", 0, 0, 0x54, -1, 0x4f201000, 0xffffffff, 0),
-	SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44306302, 0xffffffff, 0),
-	SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44307b02, 0xffffffff, 0),
-	SYSC_QUIRK("mcbsp", 0, -1, 0x8c, -1, 0, 0, 0),
-	SYSC_QUIRK("mcspi", 0, 0, 0x10, -1, 0x40300a0b, 0xffff00ff, 0),
+	SYSC_QUIRK("iss", 0, 0, 0x10, -ENODEV, 0x40000101, 0xffffffff, 0),
+	SYSC_QUIRK("lcdc", 0, 0, 0x54, -ENODEV, 0x4f201000, 0xffffffff, 0),
+	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44306302, 0xffffffff, 0),
+	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44307b02, 0xffffffff, 0),
+	SYSC_QUIRK("mcbsp", 0, -ENODEV, 0x8c, -ENODEV, 0, 0, 0),
+	SYSC_QUIRK("mcspi", 0, 0, 0x10, -ENODEV, 0x40300a0b, 0xffff00ff, 0),
 	SYSC_QUIRK("mcspi", 0, 0, 0x110, 0x114, 0x40300a0b, 0xffffffff, 0),
-	SYSC_QUIRK("mailbox", 0, 0, 0x10, -1, 0x00000400, 0xffffffff, 0),
-	SYSC_QUIRK("m3", 0, 0, -1, -1, 0x5f580105, 0x0fff0f00, 0),
+	SYSC_QUIRK("mailbox", 0, 0, 0x10, -ENODEV, 0x00000400, 0xffffffff, 0),
+	SYSC_QUIRK("m3", 0, 0, -ENODEV, -ENODEV, 0x5f580105, 0x0fff0f00, 0),
 	SYSC_QUIRK("ocp2scp", 0, 0, 0x10, 0x14, 0x50060005, 0xfffffff0, 0),
-	SYSC_QUIRK("ocp2scp", 0, 0, -1, -1, 0x50060007, 0xffffffff, 0),
-	SYSC_QUIRK("padconf", 0, 0, 0x10, -1, 0x4fff0800, 0xffffffff, 0),
-	SYSC_QUIRK("padconf", 0, 0, -1, -1, 0x40001100, 0xffffffff, 0),
-	SYSC_QUIRK("prcm", 0, 0, -1, -1, 0x40000100, 0xffffffff, 0),
-	SYSC_QUIRK("prcm", 0, 0, -1, -1, 0x00004102, 0xffffffff, 0),
-	SYSC_QUIRK("prcm", 0, 0, -1, -1, 0x40000400, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, 0x10, -1, 0x40000900, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, -1, -1, 0x4e8b0100, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, -1, -1, 0x4f000100, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, -1, -1, 0x40000900, 0xffffffff, 0),
-	SYSC_QUIRK("scrm", 0, 0, -1, -1, 0x00000010, 0xffffffff, 0),
-	SYSC_QUIRK("sdio", 0, 0, 0x10, -1, 0x40202301, 0xffff0ff0, 0),
+	SYSC_QUIRK("ocp2scp", 0, 0, -ENODEV, -ENODEV, 0x50060007, 0xffffffff, 0),
+	SYSC_QUIRK("padconf", 0, 0, 0x10, -ENODEV, 0x4fff0800, 0xffffffff, 0),
+	SYSC_QUIRK("padconf", 0, 0, -ENODEV, -ENODEV, 0x40001100, 0xffffffff, 0),
+	SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000100, 0xffffffff, 0),
+	SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x00004102, 0xffffffff, 0),
+	SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000400, 0xffffffff, 0),
+	SYSC_QUIRK("rfbi", 0x4832a800, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
+	SYSC_QUIRK("rfbi", 0x58002000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, 0x10, -ENODEV, 0x40000900, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x4e8b0100, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x4f000100, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x40000900, 0xffffffff, 0),
+	SYSC_QUIRK("scrm", 0, 0, -ENODEV, -ENODEV, 0x00000010, 0xffffffff, 0),
+	SYSC_QUIRK("sdio", 0, 0, 0x10, -ENODEV, 0x40202301, 0xffff0ff0, 0),
 	SYSC_QUIRK("sdio", 0, 0x2fc, 0x110, 0x114, 0x31010000, 0xffffffff, 0),
 	SYSC_QUIRK("sdma", 0, 0, 0x2c, 0x28, 0x00010900, 0xffffffff, 0),
-	SYSC_QUIRK("slimbus", 0, 0, 0x10, -1, 0x40000902, 0xffffffff, 0),
-	SYSC_QUIRK("slimbus", 0, 0, 0x10, -1, 0x40002903, 0xffffffff, 0),
-	SYSC_QUIRK("spinlock", 0, 0, 0x10, -1, 0x50020000, 0xffffffff, 0),
-	SYSC_QUIRK("rng", 0, 0x1fe0, 0x1fe4, -1, 0x00000020, 0xffffffff, 0),
-	SYSC_QUIRK("rtc", 0, 0x74, 0x78, -1, 0x4eb01908, 0xffff00f0, 0),
-	SYSC_QUIRK("timer32k", 0, 0, 0x4, -1, 0x00000060, 0xffffffff, 0),
+	SYSC_QUIRK("slimbus", 0, 0, 0x10, -ENODEV, 0x40000902, 0xffffffff, 0),
+	SYSC_QUIRK("slimbus", 0, 0, 0x10, -ENODEV, 0x40002903, 0xffffffff, 0),
+	SYSC_QUIRK("spinlock", 0, 0, 0x10, -ENODEV, 0x50020000, 0xffffffff, 0),
+	SYSC_QUIRK("rng", 0, 0x1fe0, 0x1fe4, -ENODEV, 0x00000020, 0xffffffff, 0),
+	SYSC_QUIRK("timer32k", 0, 0, 0x4, -ENODEV, 0x00000060, 0xffffffff, 0),
+	SYSC_QUIRK("tpcc", 0, 0, -ENODEV, -ENODEV, 0x40014c00, 0xffffffff, 0),
 	SYSC_QUIRK("usbhstll", 0, 0, 0x10, 0x14, 0x00000004, 0xffffffff, 0),
 	SYSC_QUIRK("usbhstll", 0, 0, 0x10, 0x14, 0x00000008, 0xffffffff, 0),
-	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff, 0),
-	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -1, 0x50700101, 0xffffffff, 0),
-	SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050,
-		   0xffffffff, 0),
-	SYSC_QUIRK("vfpe", 0, 0, 0x104, -1, 0x4d001200, 0xffffffff, 0),
+	SYSC_QUIRK("venc", 0x58003000, 0, -ENODEV, -ENODEV, 0x00000002, 0xffffffff, 0),
+	SYSC_QUIRK("vfpe", 0, 0, 0x104, -ENODEV, 0x4d001200, 0xffffffff, 0),
 #endif
 };
 
@@ -1333,16 +1470,13 @@
 		if (q->base != ddata->module_pa)
 			continue;
 
-		if (q->rev_offset >= 0 &&
-		    q->rev_offset != ddata->offsets[SYSC_REVISION])
+		if (q->rev_offset != ddata->offsets[SYSC_REVISION])
 			continue;
 
-		if (q->sysc_offset >= 0 &&
-		    q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
+		if (q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
 			continue;
 
-		if (q->syss_offset >= 0 &&
-		    q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
+		if (q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
 			continue;
 
 		ddata->name = q->name;
@@ -1362,16 +1496,13 @@
 		if (q->base && q->base != ddata->module_pa)
 			continue;
 
-		if (q->rev_offset >= 0 &&
-		    q->rev_offset != ddata->offsets[SYSC_REVISION])
+		if (q->rev_offset != ddata->offsets[SYSC_REVISION])
 			continue;
 
-		if (q->sysc_offset >= 0 &&
-		    q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
+		if (q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
 			continue;
 
-		if (q->syss_offset >= 0 &&
-		    q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
+		if (q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
 			continue;
 
 		if (q->revision == ddata->revision ||
@@ -1384,7 +1515,7 @@
 }
 
 /* 1-wire needs module's internal clocks enabled for reset */
-static void sysc_clk_enable_quirk_hdq1w(struct sysc *ddata)
+static void sysc_pre_reset_quirk_hdq1w(struct sysc *ddata)
 {
 	int offset = 0x0c;	/* HDQ_CTRL_STATUS */
 	u16 val;
@@ -1394,7 +1525,15 @@
 	sysc_write(ddata, offset, val);
 }
 
-/* I2C needs extra enable bit toggling for reset */
+/* AESS (Audio Engine SubSystem) needs autogating set after enable */
+static void sysc_module_enable_quirk_aess(struct sysc *ddata)
+{
+	int offset = 0x7c;	/* AESS_AUTO_GATING_ENABLE */
+
+	sysc_write(ddata, offset, 1);
+}
+
+/* I2C needs to be disabled for reset */
 static void sysc_clk_quirk_i2c(struct sysc *ddata, bool enable)
 {
 	int offset;
@@ -1415,14 +1554,48 @@
 	sysc_write(ddata, offset, val);
 }
 
-static void sysc_clk_enable_quirk_i2c(struct sysc *ddata)
+static void sysc_pre_reset_quirk_i2c(struct sysc *ddata)
+{
+	sysc_clk_quirk_i2c(ddata, false);
+}
+
+static void sysc_post_reset_quirk_i2c(struct sysc *ddata)
 {
 	sysc_clk_quirk_i2c(ddata, true);
 }
 
-static void sysc_clk_disable_quirk_i2c(struct sysc *ddata)
+/* RTC on am3 and 4 needs to be unlocked and locked for sysconfig */
+static void sysc_quirk_rtc(struct sysc *ddata, bool lock)
 {
-	sysc_clk_quirk_i2c(ddata, false);
+	u32 val, kick0_val = 0, kick1_val = 0;
+	unsigned long flags;
+	int error;
+
+	if (!lock) {
+		kick0_val = 0x83e70b13;
+		kick1_val = 0x95a4f1e0;
+	}
+
+	local_irq_save(flags);
+	/* RTC_STATUS BUSY bit may stay active for 1/32768 seconds (~30 usec) */
+	error = readl_poll_timeout_atomic(ddata->module_va + 0x44, val,
+					  !(val & BIT(0)), 100, 50);
+	if (error)
+		dev_warn(ddata->dev, "rtc busy timeout\n");
+	/* Now we have ~15 microseconds to read/write various registers */
+	sysc_write(ddata, 0x6c, kick0_val);
+	sysc_write(ddata, 0x70, kick1_val);
+	local_irq_restore(flags);
+}
+
+static void sysc_module_unlock_quirk_rtc(struct sysc *ddata)
+{
+	sysc_quirk_rtc(ddata, false);
+}
+
+static void sysc_module_lock_quirk_rtc(struct sysc *ddata)
+{
+	sysc_quirk_rtc(ddata, true);
 }
 
 /* 36xx SGX needs a quirk for to bypass OCP IPG interrupt logic */
@@ -1464,14 +1637,24 @@
 		return;
 
 	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_HDQ1W) {
-		ddata->clk_enable_quirk = sysc_clk_enable_quirk_hdq1w;
+		ddata->pre_reset_quirk = sysc_pre_reset_quirk_hdq1w;
 
 		return;
 	}
 
 	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_I2C) {
-		ddata->clk_enable_quirk = sysc_clk_enable_quirk_i2c;
-		ddata->clk_disable_quirk = sysc_clk_disable_quirk_i2c;
+		ddata->pre_reset_quirk = sysc_pre_reset_quirk_i2c;
+		ddata->post_reset_quirk = sysc_post_reset_quirk_i2c;
+
+		return;
+	}
+
+	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_AESS)
+		ddata->module_enable_quirk = sysc_module_enable_quirk_aess;
+
+	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_RTC_UNLOCK) {
+		ddata->module_unlock_quirk = sysc_module_unlock_quirk_rtc;
+		ddata->module_lock_quirk = sysc_module_lock_quirk_rtc;
 
 		return;
 	}
@@ -1569,11 +1752,10 @@
  */
 static int sysc_reset(struct sysc *ddata)
 {
-	int sysc_offset, syss_offset, sysc_val, rstval, error = 0;
-	u32 sysc_mask, syss_done;
+	int sysc_offset, sysc_val, error;
+	u32 sysc_mask;
 
 	sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
-	syss_offset = ddata->offsets[SYSC_SYSSTATUS];
 
 	if (ddata->legacy_mode || sysc_offset < 0 ||
 	    ddata->cap->regbits->srst_shift < 0 ||
@@ -1582,33 +1764,23 @@
 
 	sysc_mask = BIT(ddata->cap->regbits->srst_shift);
 
-	if (ddata->cfg.quirks & SYSS_QUIRK_RESETDONE_INVERTED)
-		syss_done = 0;
-	else
-		syss_done = ddata->cfg.syss_mask;
-
-	if (ddata->clk_disable_quirk)
-		ddata->clk_disable_quirk(ddata);
+	if (ddata->pre_reset_quirk)
+		ddata->pre_reset_quirk(ddata);
 
 	sysc_val = sysc_read_sysconfig(ddata);
 	sysc_val |= sysc_mask;
 	sysc_write(ddata, sysc_offset, sysc_val);
 
-	if (ddata->clk_enable_quirk)
-		ddata->clk_enable_quirk(ddata);
+	if (ddata->cfg.srst_udelay)
+		usleep_range(ddata->cfg.srst_udelay,
+			     ddata->cfg.srst_udelay * 2);
 
-	/* Poll on reset status */
-	if (syss_offset >= 0) {
-		error = readx_poll_timeout(sysc_read_sysstatus, ddata, rstval,
-					   (rstval & ddata->cfg.syss_mask) ==
-					   syss_done,
-					   100, MAX_MODULE_SOFTRESET_WAIT);
+	if (ddata->post_reset_quirk)
+		ddata->post_reset_quirk(ddata);
 
-	} else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
-		error = readx_poll_timeout(sysc_read_sysconfig, ddata, rstval,
-					   !(rstval & sysc_mask),
-					   100, MAX_MODULE_SOFTRESET_WAIT);
-	}
+	error = sysc_wait_softreset(ddata);
+	if (error)
+		dev_warn(ddata->dev, "OCP softreset timed out\n");
 
 	if (ddata->reset_done_quirk)
 		ddata->reset_done_quirk(ddata);
--- linux-gkeop-5.4-5.4.0.orig/drivers/cdrom/cdrom.c
+++ linux-gkeop-5.4-5.4.0/drivers/cdrom/cdrom.c
@@ -291,7 +291,7 @@
 /* default compatibility mode */
 static bool autoclose=1;
 static bool autoeject;
-static bool lockdoor = 1;
+static bool lockdoor = 0;
 /* will we ever get to use this... sigh. */
 static bool check_media_type;
 /* automatically restart mrw format */
@@ -996,6 +996,12 @@
 	tracks->xa = 0;
 	tracks->error = 0;
 	cd_dbg(CD_COUNT_TRACKS, "entering cdrom_count_tracks\n");
+
+	if (!CDROM_CAN(CDC_PLAY_AUDIO)) {
+		tracks->error = CDS_NO_INFO;
+		return;
+	}
+
 	/* Grab the TOC header so we can see how many tracks there are */
 	ret = cdi->ops->audio_ioctl(cdi, CDROMREADTOCHDR, &header);
 	if (ret) {
@@ -1162,7 +1168,8 @@
 		ret = open_for_data(cdi);
 		if (ret)
 			goto err;
-		cdrom_mmc3_profile(cdi);
+		if (CDROM_CAN(CDC_GENERIC_PACKET))
+			cdrom_mmc3_profile(cdi);
 		if (mode & FMODE_WRITE) {
 			ret = -EROFS;
 			if (cdrom_open_write(cdi))
@@ -2882,6 +2889,9 @@
 	   it doesn't give enough information or fails. then we return
 	   the toc contents. */
 use_toc:
+	if (!CDROM_CAN(CDC_PLAY_AUDIO))
+		return -ENOSYS;
+
 	toc.cdte_format = CDROM_MSF;
 	toc.cdte_track = CDROM_LEADOUT;
 	if ((ret = cdi->ops->audio_ioctl(cdi, CDROMREADTOCENTRY, &toc)))
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/agp/intel-gtt.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/agp/intel-gtt.c
@@ -304,8 +304,10 @@
 	if (intel_private.needs_dmar) {
 		dma_addr = pci_map_page(intel_private.pcidev, page, 0,
 				    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
+		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
+			__free_page(page);
 			return -EINVAL;
+		}
 
 		intel_private.scratch_page_dma = dma_addr;
 	} else
@@ -846,6 +848,7 @@
 			   unsigned int flags)
 {
 	intel_private.driver->write_entry(addr, pg, flags);
+	readl(intel_private.gtt + pg);
 	if (intel_private.driver->chipset_flush)
 		intel_private.driver->chipset_flush();
 }
@@ -871,7 +874,7 @@
 			j++;
 		}
 	}
-	wmb();
+	readl(intel_private.gtt + j - 1);
 	if (intel_private.driver->chipset_flush)
 		intel_private.driver->chipset_flush();
 }
@@ -1105,6 +1108,7 @@
 
 static void i9xx_chipset_flush(void)
 {
+	wmb();
 	if (intel_private.i9xx_flush_page)
 		writel(1, intel_private.i9xx_flush_page);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hpet.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hpet.c
@@ -855,7 +855,7 @@
 		return 0;
 	}
 
-	hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs - 1),
+	hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs),
 			GFP_KERNEL);
 
 	if (!hpetp)
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/Kconfig
@@ -308,6 +308,19 @@
 
 	  If unsure, say Y.
 
+config HW_RANDOM_HISI_V2
+	tristate "HiSilicon True Random Number Generator V2 support"
+	depends on HW_RANDOM && ARM64 && ACPI
+	default HW_RANDOM
+	help
+	  This driver provides kernel-side support for the True Random Number
+	  Generator V2 hardware found on HiSilicon Hi1620 SoC.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called hisi-trng-v2.
+
+	  If unsure, say Y.
+
 config HW_RANDOM_ST
 	tristate "ST Microelectronics HW Random Number Generator support"
 	depends on HW_RANDOM && ARCH_STI
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/Makefile
@@ -27,6 +27,7 @@
 obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o
 obj-$(CONFIG_HW_RANDOM_POWERNV) += powernv-rng.o
 obj-$(CONFIG_HW_RANDOM_HISI)	+= hisi-rng.o
+obj-$(CONFIG_HW_RANDOM_HISI_V2) += hisi-trng-v2.o
 obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o
 obj-$(CONFIG_HW_RANDOM_IPROC_RNG200) += iproc-rng200.o
 obj-$(CONFIG_HW_RANDOM_ST) += st-rng.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/hisi-trng-v2.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/hisi-trng-v2.c
@@ -0,0 +1,99 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#include <linux/acpi.h>
+#include <linux/err.h>
+#include <linux/hw_random.h>
+#include <linux/io.h>
+#include <linux/iopoll.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/random.h>
+
+#define HISI_TRNG_REG		0x00F0
+#define HISI_TRNG_BYTES		4
+#define HISI_TRNG_QUALITY	512
+#define SLEEP_US		10
+#define TIMEOUT_US		10000
+
+struct hisi_trng {
+	void __iomem *base;
+	struct hwrng rng;
+};
+
+static int hisi_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
+{
+	struct hisi_trng *trng;
+	int currsize = 0;
+	u32 val = 0;
+	u32 ret;
+
+	trng = container_of(rng, struct hisi_trng, rng);
+
+	do {
+		ret = readl_poll_timeout(trng->base + HISI_TRNG_REG, val,
+					 val, SLEEP_US, TIMEOUT_US);
+		if (ret)
+			return currsize;
+
+		if (max - currsize >= HISI_TRNG_BYTES) {
+			memcpy(buf + currsize, &val, HISI_TRNG_BYTES);
+			currsize += HISI_TRNG_BYTES;
+			if (currsize == max)
+				return currsize;
+			continue;
+		}
+
+		/* copy remaining bytes */
+		memcpy(buf + currsize, &val, max - currsize);
+		currsize = max;
+	} while (currsize < max);
+
+	return currsize;
+}
+
+static int hisi_trng_probe(struct platform_device *pdev)
+{
+	struct hisi_trng *trng;
+	int ret;
+
+	trng = devm_kzalloc(&pdev->dev, sizeof(*trng), GFP_KERNEL);
+	if (!trng)
+		return -ENOMEM;
+
+	trng->base = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(trng->base))
+		return PTR_ERR(trng->base);
+
+	trng->rng.name = pdev->name;
+	trng->rng.read = hisi_trng_read;
+	trng->rng.quality = HISI_TRNG_QUALITY;
+
+	ret = devm_hwrng_register(&pdev->dev, &trng->rng);
+	if (ret)
+		dev_err(&pdev->dev, "failed to register hwrng!\n");
+
+	return ret;
+}
+
+static const struct acpi_device_id hisi_trng_acpi_match[] = {
+	{ "HISI02B3", 0 },
+	{ }
+};
+MODULE_DEVICE_TABLE(acpi, hisi_trng_acpi_match);
+
+static struct platform_driver hisi_trng_driver = {
+	.probe		= hisi_trng_probe,
+	.driver		= {
+		.name	= "hisi-trng-v2",
+		.acpi_match_table = ACPI_PTR(hisi_trng_acpi_match),
+	},
+};
+
+module_platform_driver(hisi_trng_driver);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Weili Qian <qianweili@huawei.com>");
+MODULE_AUTHOR("Zaibo Xu <xuzaibo@huawei.com>");
+MODULE_DESCRIPTION("HiSilicon true random number generator V2 driver");
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/imx-rngc.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/imx-rngc.c
@@ -105,8 +105,10 @@
 		return -ETIMEDOUT;
 	}
 
-	if (rngc->err_reg != 0)
+	if (rngc->err_reg != 0) {
+		imx_rngc_irq_mask_clear(rngc);
 		return -EIO;
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/ks-sa-rng.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/ks-sa-rng.c
@@ -208,6 +208,7 @@
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
 		dev_err(dev, "Failed to enable SA power-domain\n");
+		pm_runtime_put_noidle(dev);
 		pm_runtime_disable(dev);
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/omap-rng.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/omap-rng.c
@@ -66,6 +66,13 @@
 #define OMAP4_RNG_OUTPUT_SIZE			0x8
 #define EIP76_RNG_OUTPUT_SIZE			0x10
 
+/*
+ * EIP76 RNG takes approx. 700us to produce 16 bytes of output data
+ * as per testing results. And to account for the lack of udelay()'s
+ * reliability, we keep the timeout as 1000us.
+ */
+#define RNG_DATA_FILL_TIMEOUT			100
+
 enum {
 	RNG_OUTPUT_0_REG = 0,
 	RNG_OUTPUT_1_REG,
@@ -176,7 +183,7 @@
 	if (max < priv->pdata->data_size)
 		return 0;
 
-	for (i = 0; i < 20; i++) {
+	for (i = 0; i < RNG_DATA_FILL_TIMEOUT; i++) {
 		present = priv->pdata->data_present(priv);
 		if (present || !wait)
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/omap3-rom-rng.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/omap3-rom-rng.c
@@ -20,6 +20,8 @@
 #include <linux/workqueue.h>
 #include <linux/clk.h>
 #include <linux/err.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/platform_device.h>
 
 #define RNG_RESET			0x01
@@ -86,14 +88,18 @@
 
 static struct hwrng omap3_rom_rng_ops = {
 	.name		= "omap3-rom",
-	.read		= omap3_rom_rng_read,
 };
 
 static int omap3_rom_rng_probe(struct platform_device *pdev)
 {
 	int ret = 0;
 
-	pr_info("initializing\n");
+	omap3_rom_rng_ops.read = of_device_get_match_data(&pdev->dev);
+	if (!omap3_rom_rng_ops.read) {
+		dev_err(&pdev->dev, "missing rom code handler\n");
+
+		return -ENODEV;
+	}
 
 	omap3_rom_rng_call = pdev->dev.platform_data;
 	if (!omap3_rom_rng_call) {
@@ -121,13 +127,21 @@
 {
 	cancel_delayed_work_sync(&idle_work);
 	hwrng_unregister(&omap3_rom_rng_ops);
-	clk_disable_unprepare(rng_clk);
+	if (!rng_idle)
+		clk_disable_unprepare(rng_clk);
 	return 0;
 }
 
+static const struct of_device_id omap_rom_rng_match[] = {
+	{ .compatible = "nokia,n900-rom-rng", .data = omap3_rom_rng_read, },
+	{ /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, omap_rom_rng_match);
+
 static struct platform_driver omap3_rom_rng_driver = {
 	.driver = {
 		.name		= "omap3-rom-rng",
+		.of_match_table = omap_rom_rng_match,
 	},
 	.probe		= omap3_rom_rng_probe,
 	.remove		= omap3_rom_rng_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/hw_random/timeriomem-rng.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/hw_random/timeriomem-rng.c
@@ -69,7 +69,7 @@
 		 */
 		if (retval > 0)
 			usleep_range(period_us,
-					period_us + min(1, period_us / 100));
+					period_us + max(1, period_us / 100));
 
 		*(u32 *)data = readl(priv->io_base);
 		retval += sizeof(u32);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ipmi/bt-bmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ipmi/bt-bmc.c
@@ -399,15 +399,15 @@
 	struct device *dev = &pdev->dev;
 	int rc;
 
-	bt_bmc->irq = platform_get_irq(pdev, 0);
-	if (!bt_bmc->irq)
-		return -ENODEV;
+	bt_bmc->irq = platform_get_irq_optional(pdev, 0);
+	if (bt_bmc->irq < 0)
+		return bt_bmc->irq;
 
 	rc = devm_request_irq(dev, bt_bmc->irq, bt_bmc_irq, IRQF_SHARED,
 			      DEVICE_NAME, bt_bmc);
 	if (rc < 0) {
 		dev_warn(dev, "Unable to request IRQ %d\n", bt_bmc->irq);
-		bt_bmc->irq = 0;
+		bt_bmc->irq = rc;
 		return rc;
 	}
 
@@ -479,7 +479,7 @@
 
 	bt_bmc_config_irq(bt_bmc, pdev);
 
-	if (bt_bmc->irq) {
+	if (bt_bmc->irq >= 0) {
 		dev_info(dev, "Using IRQ %d\n", bt_bmc->irq);
 	} else {
 		dev_info(dev, "No IRQ; using timer\n");
@@ -505,7 +505,7 @@
 	struct bt_bmc *bt_bmc = dev_get_drvdata(&pdev->dev);
 
 	misc_deregister(&bt_bmc->miscdev);
-	if (!bt_bmc->irq)
+	if (bt_bmc->irq < 0)
 		del_timer_sync(&bt_bmc->poll_timer);
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ipmi/ipmb_dev_int.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ipmi/ipmb_dev_int.c
@@ -265,7 +265,7 @@
 		break;
 
 	case I2C_SLAVE_WRITE_RECEIVED:
-		if (ipmb_dev->msg_idx >= sizeof(struct ipmb_msg))
+		if (ipmb_dev->msg_idx >= sizeof(struct ipmb_msg) - 1)
 			break;
 
 		buf[++ipmb_dev->msg_idx] = *val;
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ipmi/ipmi_msghandler.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ipmi/ipmi_msghandler.c
@@ -33,6 +33,7 @@
 #include <linux/workqueue.h>
 #include <linux/uuid.h>
 #include <linux/nospec.h>
+#include <linux/vmalloc.h>
 
 #define IPMI_DRIVER_VERSION "39.2"
 
@@ -448,6 +449,8 @@
 
 #define IPMI_IPMB_NUM_SEQ	64
 struct ipmi_smi {
+	struct module *owner;
+
 	/* What interface number are we? */
 	int intf_num;
 
@@ -1168,7 +1171,7 @@
 					      remove_work);
 
 	cleanup_srcu_struct(&user->release_barrier);
-	kfree(user);
+	vfree(user);
 }
 
 int ipmi_create_user(unsigned int          if_num,
@@ -1200,7 +1203,7 @@
 	if (rv)
 		return rv;
 
-	new_user = kmalloc(sizeof(*new_user), GFP_KERNEL);
+	new_user = vzalloc(sizeof(*new_user));
 	if (!new_user)
 		return -ENOMEM;
 
@@ -1220,6 +1223,11 @@
 	if (rv)
 		goto out_kfree;
 
+	if (!try_module_get(intf->owner)) {
+		rv = -ENODEV;
+		goto out_kfree;
+	}
+
 	/* Note that each existing user holds a refcount to the interface. */
 	kref_get(&intf->refcount);
 
@@ -1242,7 +1250,7 @@
 
 out_kfree:
 	srcu_read_unlock(&ipmi_interfaces_srcu, index);
-	kfree(new_user);
+	vfree(new_user);
 	return rv;
 }
 EXPORT_SYMBOL(ipmi_create_user);
@@ -1349,6 +1357,7 @@
 	}
 
 	kref_put(&intf->refcount, intf_free);
+	module_put(intf->owner);
 }
 
 int ipmi_destroy_user(struct ipmi_user *user)
@@ -2459,7 +2468,7 @@
  * been recently fetched, this will just use the cached data.  Otherwise
  * it will run a new fetch.
  *
- * Except for the first time this is called (in ipmi_register_smi()),
+ * Except for the first time this is called (in ipmi_add_smi()),
  * this will always return good data;
  */
 static int __bmc_get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc,
@@ -3031,8 +3040,11 @@
 		bmc->pdev.name = "ipmi_bmc";
 
 		rv = ida_simple_get(&ipmi_bmc_ida, 0, 0, GFP_KERNEL);
-		if (rv < 0)
+		if (rv < 0) {
+			kfree(bmc);
 			goto out;
+		}
+
 		bmc->pdev.dev.driver = &ipmidriver.driver;
 		bmc->pdev.id = rv;
 		bmc->pdev.dev.release = release_bmc_device;
@@ -3196,8 +3208,8 @@
 	if (rv)
 		/* Send failed, no GUID available. */
 		bmc->dyn_guid_set = 0;
-
-	wait_event(intf->waitq, bmc->dyn_guid_set != 2);
+	else
+		wait_event(intf->waitq, bmc->dyn_guid_set != 2);
 
 	/* dyn_guid_set makes the guid data available. */
 	smp_rmb();
@@ -3377,10 +3389,11 @@
 	kref_put(&intf->refcount, intf_free);
 }
 
-int ipmi_register_smi(const struct ipmi_smi_handlers *handlers,
-		      void		       *send_info,
-		      struct device            *si_dev,
-		      unsigned char            slave_addr)
+int ipmi_add_smi(struct module         *owner,
+		 const struct ipmi_smi_handlers *handlers,
+		 void		       *send_info,
+		 struct device         *si_dev,
+		 unsigned char         slave_addr)
 {
 	int              i, j;
 	int              rv;
@@ -3406,7 +3419,7 @@
 		return rv;
 	}
 
-
+	intf->owner = owner;
 	intf->bmc = &intf->tmp_bmc;
 	INIT_LIST_HEAD(&intf->bmc->intfs);
 	mutex_init(&intf->bmc->dyn_mutex);
@@ -3514,7 +3527,7 @@
 
 	return rv;
 }
-EXPORT_SYMBOL(ipmi_register_smi);
+EXPORT_SYMBOL(ipmi_add_smi);
 
 static void deliver_smi_err_response(struct ipmi_smi *intf,
 				     struct ipmi_smi_msg *msg,
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ipmi/ipmi_si_intf.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ipmi/ipmi_si_intf.c
@@ -1977,7 +1977,7 @@
 	/* Do this early so it's available for logs. */
 	if (!new_smi->io.dev) {
 		pr_err("IPMI interface added with no device\n");
-		rv = EIO;
+		rv = -EIO;
 		goto out_err;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ipmi/ipmi_si_platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ipmi/ipmi_si_platform.c
@@ -194,7 +194,7 @@
 	else
 		io.slave_addr = slave_addr;
 
-	io.irq = platform_get_irq(pdev, 0);
+	io.irq = platform_get_irq_optional(pdev, 0);
 	if (io.irq > 0)
 		io.irq_setup = ipmi_std_irq_setup;
 	else
@@ -378,7 +378,7 @@
 		io.irq = tmp;
 		io.irq_setup = acpi_gpe_irq_setup;
 	} else {
-		int irq = platform_get_irq(pdev, 0);
+		int irq = platform_get_irq_optional(pdev, 0);
 
 		if (irq > 0) {
 			io.irq = irq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ipmi/ipmi_ssif.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ipmi/ipmi_ssif.c
@@ -775,10 +775,14 @@
 	flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
 	msg = ssif_info->curr_msg;
 	if (msg) {
+		if (data) {
+			if (len > IPMI_MAX_MSG_LENGTH)
+				len = IPMI_MAX_MSG_LENGTH;
+			memcpy(msg->rsp, data, len);
+		} else {
+			len = 0;
+		}
 		msg->rsp_size = len;
-		if (msg->rsp_size > IPMI_MAX_MSG_LENGTH)
-			msg->rsp_size = IPMI_MAX_MSG_LENGTH;
-		memcpy(msg->rsp, data, msg->rsp_size);
 		ssif_info->curr_msg = NULL;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/lp.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/lp.c
@@ -713,6 +713,10 @@
 	if (copy_from_user(karg, arg, sizeof(karg)))
 		return -EFAULT;
 
+	/* sparc64 suseconds_t is 32-bit only */
+	if (IS_ENABLED(CONFIG_SPARC64) && !in_compat_syscall())
+		karg[1] >>= 32;
+
 	return lp_set_timeout(minor, karg[0], karg[1]);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/mem.c
@@ -31,11 +31,15 @@
 #include <linux/uio.h>
 #include <linux/uaccess.h>
 #include <linux/security.h>
+#include <linux/pseudo_fs.h>
+#include <uapi/linux/magic.h>
+#include <linux/mount.h>
 
 #ifdef CONFIG_IA64
 # include <linux/efi.h>
 #endif
 
+#define DEVMEM_MINOR	1
 #define DEVPORT_MINOR	4
 
 static inline unsigned long size_inside_page(unsigned long start,
@@ -805,12 +809,65 @@
 	return ret;
 }
 
+static struct inode *devmem_inode;
+
+#ifdef CONFIG_IO_STRICT_DEVMEM
+void revoke_devmem(struct resource *res)
+{
+	/* pairs with smp_store_release() in devmem_init_inode() */
+	struct inode *inode = smp_load_acquire(&devmem_inode);
+
+	/*
+	 * Check that the initialization has completed. Losing the race
+	 * is ok because it means drivers are claiming resources before
+	 * the fs_initcall level of init and prevent /dev/mem from
+	 * establishing mappings.
+	 */
+	if (!inode)
+		return;
+
+	/*
+	 * The expectation is that the driver has successfully marked
+	 * the resource busy by this point, so devmem_is_allowed()
+	 * should start returning false, however for performance this
+	 * does not iterate the entire resource range.
+	 */
+	if (devmem_is_allowed(PHYS_PFN(res->start)) &&
+	    devmem_is_allowed(PHYS_PFN(res->end))) {
+		/*
+		 * *cringe* iomem=relaxed says "go ahead, what's the
+		 * worst that can happen?"
+		 */
+		return;
+	}
+
+	unmap_mapping_range(inode->i_mapping, res->start, resource_size(res), 1);
+}
+#endif
+
 static int open_port(struct inode *inode, struct file *filp)
 {
+	int rc;
+
 	if (!capable(CAP_SYS_RAWIO))
 		return -EPERM;
 
-	return security_locked_down(LOCKDOWN_DEV_MEM);
+	rc = security_locked_down(LOCKDOWN_DEV_MEM);
+	if (rc)
+		return rc;
+
+	if (iminor(inode) != DEVMEM_MINOR)
+		return 0;
+
+	/*
+	 * Use a unified address space to have a single point to manage
+	 * revocations when drivers want to take over a /dev/mem mapped
+	 * range.
+	 */
+	inode->i_mapping = devmem_inode->i_mapping;
+	filp->f_mapping = inode->i_mapping;
+
+	return 0;
 }
 
 #define zero_lseek	null_lseek
@@ -885,7 +942,7 @@
 	fmode_t fmode;
 } devlist[] = {
 #ifdef CONFIG_DEVMEM
-	 [1] = { "mem", 0, &mem_fops, FMODE_UNSIGNED_OFFSET },
+	 [DEVMEM_MINOR] = { "mem", 0, &mem_fops, FMODE_UNSIGNED_OFFSET },
 #endif
 #ifdef CONFIG_DEVKMEM
 	 [2] = { "kmem", 0, &kmem_fops, FMODE_UNSIGNED_OFFSET },
@@ -939,6 +996,48 @@
 
 static struct class *mem_class;
 
+static int devmem_fs_init_fs_context(struct fs_context *fc)
+{
+	return init_pseudo(fc, DEVMEM_MAGIC) ? 0 : -ENOMEM;
+}
+
+static struct file_system_type devmem_fs_type = {
+	.name		= "devmem",
+	.owner		= THIS_MODULE,
+	.init_fs_context = devmem_fs_init_fs_context,
+	.kill_sb	= kill_anon_super,
+};
+
+static int devmem_init_inode(void)
+{
+	static struct vfsmount *devmem_vfs_mount;
+	static int devmem_fs_cnt;
+	struct inode *inode;
+	int rc;
+
+	rc = simple_pin_fs(&devmem_fs_type, &devmem_vfs_mount, &devmem_fs_cnt);
+	if (rc < 0) {
+		pr_err("Cannot mount /dev/mem pseudo filesystem: %d\n", rc);
+		return rc;
+	}
+
+	inode = alloc_anon_inode(devmem_vfs_mount->mnt_sb);
+	if (IS_ERR(inode)) {
+		rc = PTR_ERR(inode);
+		pr_err("Cannot allocate inode for /dev/mem: %d\n", rc);
+		simple_release_fs(&devmem_vfs_mount, &devmem_fs_cnt);
+		return rc;
+	}
+
+	/*
+	 * Publish /dev/mem initialized.
+	 * Pairs with smp_load_acquire() in revoke_devmem().
+	 */
+	smp_store_release(&devmem_inode, inode);
+
+	return 0;
+}
+
 static int __init chr_dev_init(void)
 {
 	int minor;
@@ -960,6 +1059,8 @@
 		 */
 		if ((minor == DEVPORT_MINOR) && !arch_has_dev_port())
 			continue;
+		if ((minor == DEVMEM_MINOR) && devmem_init_inode() != 0)
+			continue;
 
 		device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
 			      NULL, devlist[minor].name);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ppdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ppdev.c
@@ -619,20 +619,27 @@
 		if (copy_from_user(time32, argp, sizeof(time32)))
 			return -EFAULT;
 
+		if ((time32[0] < 0) || (time32[1] < 0))
+			return -EINVAL;
+
 		return pp_set_timeout(pp->pdev, time32[0], time32[1]);
 
 	case PPSETTIME64:
 		if (copy_from_user(time64, argp, sizeof(time64)))
 			return -EFAULT;
 
+		if ((time64[0] < 0) || (time64[1] < 0))
+			return -EINVAL;
+
+		if (IS_ENABLED(CONFIG_SPARC64) && !in_compat_syscall())
+			time64[1] >>= 32;
+
 		return pp_set_timeout(pp->pdev, time64[0], time64[1]);
 
 	case PPGETTIME32:
 		jiffies_to_timespec64(pp->pdev->timeout, &ts);
 		time32[0] = ts.tv_sec;
 		time32[1] = ts.tv_nsec / NSEC_PER_USEC;
-		if ((time32[0] < 0) || (time32[1] < 0))
-			return -EINVAL;
 
 		if (copy_to_user(argp, time32, sizeof(time32)))
 			return -EFAULT;
@@ -643,8 +650,9 @@
 		jiffies_to_timespec64(pp->pdev->timeout, &ts);
 		time64[0] = ts.tv_sec;
 		time64[1] = ts.tv_nsec / NSEC_PER_USEC;
-		if ((time64[0] < 0) || (time64[1] < 0))
-			return -EINVAL;
+
+		if (IS_ENABLED(CONFIG_SPARC64) && !in_compat_syscall())
+			time64[1] <<= 32;
 
 		if (copy_to_user(argp, time64, sizeof(time64)))
 			return -EFAULT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/random.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/random.c
@@ -1223,14 +1223,14 @@
 	 * We take into account the first, second and third-order deltas
 	 * in order to make our estimate.
 	 */
-	delta = sample.jiffies - state->last_time;
-	state->last_time = sample.jiffies;
+	delta = sample.jiffies - READ_ONCE(state->last_time);
+	WRITE_ONCE(state->last_time, sample.jiffies);
 
-	delta2 = delta - state->last_delta;
-	state->last_delta = delta;
+	delta2 = delta - READ_ONCE(state->last_delta);
+	WRITE_ONCE(state->last_delta, delta);
 
-	delta3 = delta2 - state->last_delta2;
-	state->last_delta2 = delta2;
+	delta3 = delta2 - READ_ONCE(state->last_delta2);
+	WRITE_ONCE(state->last_delta2, delta2);
 
 	if (delta < 0)
 		delta = -delta;
@@ -1687,8 +1687,9 @@
 	print_once = true;
 #endif
 	if (__ratelimit(&unseeded_warning))
-		pr_notice("random: %s called from %pS with crng_init=%d\n",
-			  func_name, caller, crng_init);
+		printk_deferred(KERN_NOTICE "random: %s called from %pS "
+				"with crng_init=%d\n", func_name, caller,
+				crng_init);
 }
 
 /*
@@ -2148,7 +2149,7 @@
 			return -EPERM;
 		if (crng_init < 2)
 			return -ENODATA;
-		crng_reseed(&primary_crng, NULL);
+		crng_reseed(&primary_crng, &input_pool);
 		crng_global_init_time = jiffies - 1;
 		return 0;
 	default:
@@ -2192,10 +2193,10 @@
 	if (flags & GRND_RANDOM)
 		return _random_read(flags & GRND_NONBLOCK, buf, count);
 
-	if (!crng_ready()) {
+	if (crng_init == 0) {
 		if (flags & GRND_NONBLOCK)
 			return -EAGAIN;
-		ret = wait_for_random_bytes();
+		ret = wait_event_interruptible(crng_init_wait, crng_init > 0);
 		if (unlikely(ret))
 			return ret;
 	}
@@ -2357,11 +2358,11 @@
 
 /*
  * Get a random word for internal kernel use only. The quality of the random
- * number is either as good as RDRAND or as good as /dev/urandom, with the
- * goal of being quite fast and not depleting entropy. In order to ensure
+ * number is good as /dev/urandom, but there is no backtrack protection, with
+ * the goal of being quite fast and not depleting entropy. In order to ensure
  * that the randomness provided by this function is okay, the function
- * wait_for_random_bytes() should be called and return 0 at least once
- * at any point prior.
+ * wait_for_random_bytes() should be called and return 0 at least once at any
+ * point prior.
  */
 static DEFINE_PER_CPU(struct batched_entropy, batched_entropy_u64) = {
 	.batch_lock	= __SPIN_LOCK_UNLOCKED(batched_entropy_u64.lock),
@@ -2374,15 +2375,6 @@
 	struct batched_entropy *batch;
 	static void *previous;
 
-#if BITS_PER_LONG == 64
-	if (arch_get_random_long((unsigned long *)&ret))
-		return ret;
-#else
-	if (arch_get_random_long((unsigned long *)&ret) &&
-	    arch_get_random_long((unsigned long *)&ret + 1))
-	    return ret;
-#endif
-
 	warn_unseeded_randomness(&previous);
 
 	batch = raw_cpu_ptr(&batched_entropy_u64);
@@ -2407,9 +2399,6 @@
 	struct batched_entropy *batch;
 	static void *previous;
 
-	if (arch_get_random_int(&ret))
-		return ret;
-
 	warn_unseeded_randomness(&previous);
 
 	batch = raw_cpu_ptr(&batched_entropy_u32);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tlclk.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tlclk.c
@@ -777,17 +777,21 @@
 {
 	int ret;
 
+	telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
+
+	alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
+	if (!alarm_events) {
+		ret = -ENOMEM;
+		goto out1;
+	}
+
 	ret = register_chrdev(tlclk_major, "telco_clock", &tlclk_fops);
 	if (ret < 0) {
 		printk(KERN_ERR "tlclk: can't get major %d.\n", tlclk_major);
+		kfree(alarm_events);
 		return ret;
 	}
 	tlclk_major = ret;
-	alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
-	if (!alarm_events) {
-		ret = -ENOMEM;
-		goto out1;
-	}
 
 	/* Read telecom clock IRQ number (Set by BIOS) */
 	if (!request_region(TLCLK_BASE, 8, "telco_clock")) {
@@ -796,7 +800,6 @@
 		ret = -EBUSY;
 		goto out2;
 	}
-	telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
 
 	if (0x0F == telclk_interrupt ) { /* not MCPBL0010 ? */
 		printk(KERN_ERR "telclk_interrupt = 0x%x non-mcpbl0010 hw.\n",
@@ -837,8 +840,8 @@
 	release_region(TLCLK_BASE, 8);
 out2:
 	kfree(alarm_events);
-out1:
 	unregister_chrdev(tlclk_major, "telco_clock");
+out1:
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/eventlog/common.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/eventlog/common.c
@@ -99,11 +99,8 @@
  *
  * If an event log is found then the securityfs files are setup to
  * export it to userspace, otherwise nothing is done.
- *
- * Returns -ENODEV if the firmware has no event log or securityfs is not
- * supported.
  */
-int tpm_bios_log_setup(struct tpm_chip *chip)
+void tpm_bios_log_setup(struct tpm_chip *chip)
 {
 	const char *name = dev_name(&chip->dev);
 	unsigned int cnt;
@@ -112,7 +109,7 @@
 
 	rc = tpm_read_log(chip);
 	if (rc < 0)
-		return rc;
+		return;
 	log_version = rc;
 
 	cnt = 0;
@@ -158,13 +155,12 @@
 		cnt++;
 	}
 
-	return 0;
+	return;
 
 err:
-	rc = PTR_ERR(chip->bios_dir[cnt]);
 	chip->bios_dir[cnt] = NULL;
 	tpm_bios_log_teardown(chip);
-	return rc;
+	return;
 }
 
 void tpm_bios_log_teardown(struct tpm_chip *chip)
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/eventlog/efi.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/eventlog/efi.c
@@ -41,6 +41,11 @@
 	log_size = log_tbl->size;
 	memunmap(log_tbl);
 
+	if (!log_size) {
+		pr_warn("UEFI TPM log area empty\n");
+		return -EIO;
+	}
+
 	log_tbl = memremap(efi.tpm_log, sizeof(*log_tbl) + log_size,
 			   MEMREMAP_WB);
 	if (!log_tbl) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/eventlog/tpm1.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/eventlog/tpm1.c
@@ -115,6 +115,7 @@
 	u32 converted_event_size;
 	u32 converted_event_type;
 
+	(*pos)++;
 	converted_event_size = do_endian_conversion(event->event_size);
 
 	v += sizeof(struct tcpa_event) + converted_event_size;
@@ -132,7 +133,6 @@
 	    ((v + sizeof(struct tcpa_event) + converted_event_size) > limit))
 		return NULL;
 
-	(*pos)++;
 	return v;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/eventlog/tpm2.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/eventlog/tpm2.c
@@ -94,6 +94,7 @@
 	size_t event_size;
 	void *marker;
 
+	(*pos)++;
 	event_header = log->bios_event_log;
 
 	if (v == SEQ_START_TOKEN) {
@@ -118,7 +119,6 @@
 	if (((v + event_size) >= limit) || (event_size == 0))
 		return NULL;
 
-	(*pos)++;
 	return v;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm-chip.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm-chip.c
@@ -386,13 +386,8 @@
 	chip->cdev.owner = THIS_MODULE;
 	chip->cdevs.owner = THIS_MODULE;
 
-	chip->work_space.context_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
-	if (!chip->work_space.context_buf) {
-		rc = -ENOMEM;
-		goto out;
-	}
-	chip->work_space.session_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
-	if (!chip->work_space.session_buf) {
+	rc = tpm2_init_space(&chip->work_space, TPM2_SPACE_BUFFER_SIZE);
+	if (rc) {
 		rc = -ENOMEM;
 		goto out;
 	}
@@ -596,9 +591,7 @@
 
 	tpm_sysfs_add_device(chip);
 
-	rc = tpm_bios_log_setup(chip);
-	if (rc != 0 && rc != -ENODEV)
-		return rc;
+	tpm_bios_log_setup(chip);
 
 	tpm_add_ppi(chip);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm-dev-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm-dev-common.c
@@ -61,6 +61,12 @@
 
 	mutex_lock(&priv->buffer_mutex);
 	priv->command_enqueued = false;
+	ret = tpm_try_get_ops(priv->chip);
+	if (ret) {
+		priv->response_length = ret;
+		goto out;
+	}
+
 	ret = tpm_dev_transmit(priv->chip, priv->space, priv->data_buffer,
 			       sizeof(priv->data_buffer));
 	tpm_put_ops(priv->chip);
@@ -68,6 +74,7 @@
 		priv->response_length = ret;
 		mod_timer(&priv->user_read_timer, jiffies + (120 * HZ));
 	}
+out:
 	mutex_unlock(&priv->buffer_mutex);
 	wake_up_interruptible(&priv->async_wait);
 }
@@ -123,7 +130,7 @@
 		priv->response_read = true;
 
 		ret_size = min_t(ssize_t, size, priv->response_length);
-		if (!ret_size) {
+		if (ret_size <= 0) {
 			priv->response_length = 0;
 			goto out;
 		}
@@ -182,15 +189,6 @@
 		goto out;
 	}
 
-	/* atomic tpm command send and result receive. We only hold the ops
-	 * lock during this period so that the tpm can be unregistered even if
-	 * the char dev is held open.
-	 */
-	if (tpm_try_get_ops(priv->chip)) {
-		ret = -EPIPE;
-		goto out;
-	}
-
 	priv->response_length = 0;
 	priv->response_read = false;
 	*off = 0;
@@ -208,6 +206,15 @@
 		return size;
 	}
 
+	/* atomic tpm command send and result receive. We only hold the ops
+	 * lock during this period so that the tpm can be unregistered even if
+	 * the char dev is held open.
+	 */
+	if (tpm_try_get_ops(priv->chip)) {
+		ret = -EPIPE;
+		goto out;
+	}
+
 	ret = tpm_dev_transmit(priv->chip, priv->space, priv->data_buffer,
 			       sizeof(priv->data_buffer));
 	tpm_put_ops(priv->chip);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm-dev.h
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm-dev.h
@@ -14,7 +14,7 @@
 	struct work_struct timeout_work;
 	struct work_struct async_work;
 	wait_queue_head_t async_wait;
-	size_t response_length;
+	ssize_t response_length;
 	bool response_read;
 	bool command_enqueued;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm-interface.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm-interface.c
@@ -322,7 +322,7 @@
 
 	for (i = 0; i < chip->nr_allocated_banks; i++) {
 		if (digests[i].alg_id != chip->allocated_banks[i].alg_id) {
-			rc = EINVAL;
+			rc = -EINVAL;
 			goto out;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm.h
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm.h
@@ -177,6 +177,9 @@
 
 #define TPM_TAG_RQU_COMMAND 193
 
+/* TPM2 specific constants. */
+#define TPM2_SPACE_BUFFER_SIZE		16384 /* 16 kB */
+
 struct	stclear_flags_t {
 	__be16	tag;
 	u8	deactivated;
@@ -456,7 +459,7 @@
 unsigned long tpm2_calc_ordinal_duration(struct tpm_chip *chip, u32 ordinal);
 int tpm2_probe(struct tpm_chip *chip);
 int tpm2_find_cc(struct tpm_chip *chip, u32 cc);
-int tpm2_init_space(struct tpm_space *space);
+int tpm2_init_space(struct tpm_space *space, unsigned int buf_size);
 void tpm2_del_space(struct tpm_chip *chip, struct tpm_space *space);
 void tpm2_flush_space(struct tpm_chip *chip);
 int tpm2_prepare_space(struct tpm_chip *chip, struct tpm_space *space, u8 *cmd,
@@ -464,7 +467,7 @@
 int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space, void *buf,
 		      size_t *bufsiz);
 
-int tpm_bios_log_setup(struct tpm_chip *chip);
+void tpm_bios_log_setup(struct tpm_chip *chip);
 void tpm_bios_log_teardown(struct tpm_chip *chip);
 int tpm_dev_common_init(void);
 void tpm_dev_common_exit(void);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm2-cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm2-cmd.c
@@ -831,6 +831,8 @@
 		return 0;
 	}
 
+	bank->crypto_id = HASH_ALGO__LAST;
+
 	return tpm2_pcr_read(chip, 0, &digest, &bank->digest_size);
 }
 
@@ -939,6 +941,10 @@
 
 	chip->cc_attrs_tbl = devm_kcalloc(&chip->dev, 4, nr_commands,
 					  GFP_KERNEL);
+	if (!chip->cc_attrs_tbl) {
+		rc = -ENOMEM;
+		goto out;
+	}
 
 	rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_GET_CAPABILITY);
 	if (rc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm2-space.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm2-space.c
@@ -38,18 +38,21 @@
 	}
 }
 
-int tpm2_init_space(struct tpm_space *space)
+int tpm2_init_space(struct tpm_space *space, unsigned int buf_size)
 {
-	space->context_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
+	space->context_buf = kzalloc(buf_size, GFP_KERNEL);
 	if (!space->context_buf)
 		return -ENOMEM;
 
-	space->session_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
+	space->session_buf = kzalloc(buf_size, GFP_KERNEL);
 	if (space->session_buf == NULL) {
 		kfree(space->context_buf);
+		/* Prevent caller getting a dangling pointer. */
+		space->context_buf = NULL;
 		return -ENOMEM;
 	}
 
+	space->buf_size = buf_size;
 	return 0;
 }
 
@@ -311,8 +314,10 @@
 	       sizeof(space->context_tbl));
 	memcpy(&chip->work_space.session_tbl, &space->session_tbl,
 	       sizeof(space->session_tbl));
-	memcpy(chip->work_space.context_buf, space->context_buf, PAGE_SIZE);
-	memcpy(chip->work_space.session_buf, space->session_buf, PAGE_SIZE);
+	memcpy(chip->work_space.context_buf, space->context_buf,
+	       space->buf_size);
+	memcpy(chip->work_space.session_buf, space->session_buf,
+	       space->buf_size);
 
 	rc = tpm2_load_space(chip);
 	if (rc) {
@@ -492,7 +497,7 @@
 			continue;
 
 		rc = tpm2_save_context(chip, space->context_tbl[i],
-				       space->context_buf, PAGE_SIZE,
+				       space->context_buf, space->buf_size,
 				       &offset);
 		if (rc == -ENOENT) {
 			space->context_tbl[i] = 0;
@@ -509,9 +514,8 @@
 			continue;
 
 		rc = tpm2_save_context(chip, space->session_tbl[i],
-				       space->session_buf, PAGE_SIZE,
+				       space->session_buf, space->buf_size,
 				       &offset);
-
 		if (rc == -ENOENT) {
 			/* handle error saving session, just forget it */
 			space->session_tbl[i] = 0;
@@ -557,8 +561,10 @@
 	       sizeof(space->context_tbl));
 	memcpy(&space->session_tbl, &chip->work_space.session_tbl,
 	       sizeof(space->session_tbl));
-	memcpy(space->context_buf, chip->work_space.context_buf, PAGE_SIZE);
-	memcpy(space->session_buf, chip->work_space.session_buf, PAGE_SIZE);
+	memcpy(space->context_buf, chip->work_space.context_buf,
+	       space->buf_size);
+	memcpy(space->session_buf, chip->work_space.session_buf,
+	       space->buf_size);
 
 	return 0;
 out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm_crb.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm_crb.c
@@ -22,6 +22,7 @@
 #include "tpm.h"
 
 #define ACPI_SIG_TPM2 "TPM2"
+#define TPM_CRB_MAX_RESOURCES 3
 
 static const guid_t crb_acpi_start_guid =
 	GUID_INIT(0x6BBF6CAB, 0x5463, 0x4714,
@@ -91,7 +92,6 @@
 struct crb_priv {
 	u32 sm;
 	const char *hid;
-	void __iomem *iobase;
 	struct crb_regs_head __iomem *regs_h;
 	struct crb_regs_tail __iomem *regs_t;
 	u8 __iomem *cmd;
@@ -434,21 +434,27 @@
 
 static int crb_check_resource(struct acpi_resource *ares, void *data)
 {
-	struct resource *io_res = data;
+	struct resource *iores_array = data;
 	struct resource_win win;
 	struct resource *res = &(win.res);
+	int i;
 
 	if (acpi_dev_resource_memory(ares, res) ||
 	    acpi_dev_resource_address_space(ares, &win)) {
-		*io_res = *res;
-		io_res->name = NULL;
+		for (i = 0; i < TPM_CRB_MAX_RESOURCES + 1; ++i) {
+			if (resource_type(iores_array + i) != IORESOURCE_MEM) {
+				iores_array[i] = *res;
+				iores_array[i].name = NULL;
+				break;
+			}
+		}
 	}
 
 	return 1;
 }
 
-static void __iomem *crb_map_res(struct device *dev, struct crb_priv *priv,
-				 struct resource *io_res, u64 start, u32 size)
+static void __iomem *crb_map_res(struct device *dev, struct resource *iores,
+				 void __iomem **iobase_ptr, u64 start, u32 size)
 {
 	struct resource new_res = {
 		.start	= start,
@@ -460,10 +466,16 @@
 	if (start != new_res.start)
 		return (void __iomem *) ERR_PTR(-EINVAL);
 
-	if (!resource_contains(io_res, &new_res))
+	if (!iores)
 		return devm_ioremap_resource(dev, &new_res);
 
-	return priv->iobase + (new_res.start - io_res->start);
+	if (!*iobase_ptr) {
+		*iobase_ptr = devm_ioremap_resource(dev, iores);
+		if (IS_ERR(*iobase_ptr))
+			return *iobase_ptr;
+	}
+
+	return *iobase_ptr + (new_res.start - iores->start);
 }
 
 /*
@@ -490,9 +502,13 @@
 static int crb_map_io(struct acpi_device *device, struct crb_priv *priv,
 		      struct acpi_table_tpm2 *buf)
 {
-	struct list_head resources;
-	struct resource io_res;
+	struct list_head acpi_resource_list;
+	struct resource iores_array[TPM_CRB_MAX_RESOURCES + 1] = { {0} };
+	void __iomem *iobase_array[TPM_CRB_MAX_RESOURCES] = {NULL};
 	struct device *dev = &device->dev;
+	struct resource *iores;
+	void __iomem **iobase_ptr;
+	int i;
 	u32 pa_high, pa_low;
 	u64 cmd_pa;
 	u32 cmd_size;
@@ -501,21 +517,41 @@
 	u32 rsp_size;
 	int ret;
 
-	INIT_LIST_HEAD(&resources);
-	ret = acpi_dev_get_resources(device, &resources, crb_check_resource,
-				     &io_res);
+	INIT_LIST_HEAD(&acpi_resource_list);
+	ret = acpi_dev_get_resources(device, &acpi_resource_list,
+				     crb_check_resource, iores_array);
 	if (ret < 0)
 		return ret;
-	acpi_dev_free_resource_list(&resources);
+	acpi_dev_free_resource_list(&acpi_resource_list);
 
-	if (resource_type(&io_res) != IORESOURCE_MEM) {
+	if (resource_type(iores_array) != IORESOURCE_MEM) {
 		dev_err(dev, FW_BUG "TPM2 ACPI table does not define a memory resource\n");
 		return -EINVAL;
+	} else if (resource_type(iores_array + TPM_CRB_MAX_RESOURCES) ==
+		IORESOURCE_MEM) {
+		dev_warn(dev, "TPM2 ACPI table defines too many memory resources\n");
+		memset(iores_array + TPM_CRB_MAX_RESOURCES,
+		       0, sizeof(*iores_array));
+		iores_array[TPM_CRB_MAX_RESOURCES].flags = 0;
+	}
+
+	iores = NULL;
+	iobase_ptr = NULL;
+	for (i = 0; resource_type(iores_array + i) == IORESOURCE_MEM; ++i) {
+		if (buf->control_address >= iores_array[i].start &&
+		    buf->control_address + sizeof(struct crb_regs_tail) - 1 <=
+		    iores_array[i].end) {
+			iores = iores_array + i;
+			iobase_ptr = iobase_array + i;
+			break;
+		}
 	}
 
-	priv->iobase = devm_ioremap_resource(dev, &io_res);
-	if (IS_ERR(priv->iobase))
-		return PTR_ERR(priv->iobase);
+	priv->regs_t = crb_map_res(dev, iores, iobase_ptr, buf->control_address,
+				   sizeof(struct crb_regs_tail));
+
+	if (IS_ERR(priv->regs_t))
+		return PTR_ERR(priv->regs_t);
 
 	/* The ACPI IO region starts at the head area and continues to include
 	 * the control area, as one nice sane region except for some older
@@ -523,9 +559,10 @@
 	 */
 	if ((priv->sm == ACPI_TPM2_COMMAND_BUFFER) ||
 	    (priv->sm == ACPI_TPM2_MEMORY_MAPPED)) {
-		if (buf->control_address == io_res.start +
+		if (iores &&
+		    buf->control_address == iores->start +
 		    sizeof(*priv->regs_h))
-			priv->regs_h = priv->iobase;
+			priv->regs_h = *iobase_ptr;
 		else
 			dev_warn(dev, FW_BUG "Bad ACPI memory layout");
 	}
@@ -534,13 +571,6 @@
 	if (ret)
 		return ret;
 
-	priv->regs_t = crb_map_res(dev, priv, &io_res, buf->control_address,
-				   sizeof(struct crb_regs_tail));
-	if (IS_ERR(priv->regs_t)) {
-		ret = PTR_ERR(priv->regs_t);
-		goto out_relinquish_locality;
-	}
-
 	/*
 	 * PTT HW bug w/a: wake up the device to access
 	 * possibly not retained registers.
@@ -552,13 +582,26 @@
 	pa_high = ioread32(&priv->regs_t->ctrl_cmd_pa_high);
 	pa_low  = ioread32(&priv->regs_t->ctrl_cmd_pa_low);
 	cmd_pa = ((u64)pa_high << 32) | pa_low;
-	cmd_size = crb_fixup_cmd_size(dev, &io_res, cmd_pa,
-				      ioread32(&priv->regs_t->ctrl_cmd_size));
+	cmd_size = ioread32(&priv->regs_t->ctrl_cmd_size);
+
+	iores = NULL;
+	iobase_ptr = NULL;
+	for (i = 0; iores_array[i].end; ++i) {
+		if (cmd_pa >= iores_array[i].start &&
+		    cmd_pa <= iores_array[i].end) {
+			iores = iores_array + i;
+			iobase_ptr = iobase_array + i;
+			break;
+		}
+	}
+
+	if (iores)
+		cmd_size = crb_fixup_cmd_size(dev, iores, cmd_pa, cmd_size);
 
 	dev_dbg(dev, "cmd_hi = %X cmd_low = %X cmd_size %X\n",
 		pa_high, pa_low, cmd_size);
 
-	priv->cmd = crb_map_res(dev, priv, &io_res, cmd_pa, cmd_size);
+	priv->cmd = crb_map_res(dev, iores, iobase_ptr,	cmd_pa, cmd_size);
 	if (IS_ERR(priv->cmd)) {
 		ret = PTR_ERR(priv->cmd);
 		goto out;
@@ -566,11 +609,25 @@
 
 	memcpy_fromio(&__rsp_pa, &priv->regs_t->ctrl_rsp_pa, 8);
 	rsp_pa = le64_to_cpu(__rsp_pa);
-	rsp_size = crb_fixup_cmd_size(dev, &io_res, rsp_pa,
-				      ioread32(&priv->regs_t->ctrl_rsp_size));
+	rsp_size = ioread32(&priv->regs_t->ctrl_rsp_size);
+
+	iores = NULL;
+	iobase_ptr = NULL;
+	for (i = 0; resource_type(iores_array + i) == IORESOURCE_MEM; ++i) {
+		if (rsp_pa >= iores_array[i].start &&
+		    rsp_pa <= iores_array[i].end) {
+			iores = iores_array + i;
+			iobase_ptr = iobase_array + i;
+			break;
+		}
+	}
+
+	if (iores)
+		rsp_size = crb_fixup_cmd_size(dev, iores, rsp_pa, rsp_size);
 
 	if (cmd_pa != rsp_pa) {
-		priv->rsp = crb_map_res(dev, priv, &io_res, rsp_pa, rsp_size);
+		priv->rsp = crb_map_res(dev, iores, iobase_ptr,
+					rsp_pa, rsp_size);
 		ret = PTR_ERR_OR_ZERO(priv->rsp);
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm_ftpm_tee.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm_ftpm_tee.c
@@ -32,7 +32,7 @@
 		  0x82, 0xCB, 0x34, 0x3F, 0xB7, 0xF3, 0x78, 0x96);
 
 /**
- * ftpm_tee_tpm_op_recv - retrieve fTPM response.
+ * ftpm_tee_tpm_op_recv() - retrieve fTPM response.
  * @chip:	the tpm_chip description as specified in driver/char/tpm/tpm.h.
  * @buf:	the buffer to store data.
  * @count:	the number of bytes to read.
@@ -61,7 +61,7 @@
 }
 
 /**
- * ftpm_tee_tpm_op_send - send TPM commands through the TEE shared memory.
+ * ftpm_tee_tpm_op_send() - send TPM commands through the TEE shared memory.
  * @chip:	the tpm_chip description as specified in driver/char/tpm/tpm.h
  * @buf:	the buffer to send.
  * @len:	the number of bytes to send.
@@ -208,7 +208,7 @@
 }
 
 /**
- * ftpm_tee_probe - initialize the fTPM
+ * ftpm_tee_probe() - initialize the fTPM
  * @pdev: the platform_device description.
  *
  * Return:
@@ -298,7 +298,7 @@
 }
 
 /**
- * ftpm_tee_remove - remove the TPM device
+ * ftpm_tee_remove() - remove the TPM device
  * @pdev: the platform_device description.
  *
  * Return:
@@ -328,6 +328,19 @@
 	return 0;
 }
 
+/**
+ * ftpm_tee_shutdown() - shutdown the TPM device
+ * @pdev: the platform_device description.
+ */
+static void ftpm_tee_shutdown(struct platform_device *pdev)
+{
+	struct ftpm_tee_private *pvt_data = dev_get_drvdata(&pdev->dev);
+
+	tee_shm_free(pvt_data->shm);
+	tee_client_close_session(pvt_data->ctx, pvt_data->session);
+	tee_client_close_context(pvt_data->ctx);
+}
+
 static const struct of_device_id of_ftpm_tee_ids[] = {
 	{ .compatible = "microsoft,ftpm" },
 	{ }
@@ -341,6 +354,7 @@
 	},
 	.probe = ftpm_tee_probe,
 	.remove = ftpm_tee_remove,
+	.shutdown = ftpm_tee_shutdown,
 };
 
 module_platform_driver(ftpm_tee_driver);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm_ibmvtpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm_ibmvtpm.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (C) 2012 IBM Corporation
+ * Copyright (C) 2012-2020 IBM Corporation
  *
  * Author: Ashley Lai <ashleydlai@gmail.com>
  *
@@ -134,6 +134,64 @@
 }
 
 /**
+ * ibmvtpm_crq_send_init - Send a CRQ initialize message
+ * @ibmvtpm:	vtpm device struct
+ *
+ * Return:
+ *	0 on success.
+ *	Non-zero on failure.
+ */
+static int ibmvtpm_crq_send_init(struct ibmvtpm_dev *ibmvtpm)
+{
+	int rc;
+
+	rc = ibmvtpm_send_crq_word(ibmvtpm->vdev, INIT_CRQ_CMD);
+	if (rc != H_SUCCESS)
+		dev_err(ibmvtpm->dev,
+			"%s failed rc=%d\n", __func__, rc);
+
+	return rc;
+}
+
+/**
+ * tpm_ibmvtpm_resume - Resume from suspend
+ *
+ * @dev:	device struct
+ *
+ * Return: Always 0.
+ */
+static int tpm_ibmvtpm_resume(struct device *dev)
+{
+	struct tpm_chip *chip = dev_get_drvdata(dev);
+	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
+	int rc = 0;
+
+	do {
+		if (rc)
+			msleep(100);
+		rc = plpar_hcall_norets(H_ENABLE_CRQ,
+					ibmvtpm->vdev->unit_address);
+	} while (rc == H_IN_PROGRESS || rc == H_BUSY || H_IS_LONG_BUSY(rc));
+
+	if (rc) {
+		dev_err(dev, "Error enabling ibmvtpm rc=%d\n", rc);
+		return rc;
+	}
+
+	rc = vio_enable_interrupts(ibmvtpm->vdev);
+	if (rc) {
+		dev_err(dev, "Error vio_enable_interrupts rc=%d\n", rc);
+		return rc;
+	}
+
+	rc = ibmvtpm_crq_send_init(ibmvtpm);
+	if (rc)
+		dev_err(dev, "Error send_init rc=%d\n", rc);
+
+	return rc;
+}
+
+/**
  * tpm_ibmvtpm_send() - Send a TPM command
  * @chip:	tpm chip struct
  * @buf:	buffer contains data to send
@@ -146,6 +204,7 @@
 static int tpm_ibmvtpm_send(struct tpm_chip *chip, u8 *buf, size_t count)
 {
 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
+	bool retry = true;
 	int rc, sig;
 
 	if (!ibmvtpm->rtce_buf) {
@@ -179,18 +238,27 @@
 	 */
 	ibmvtpm->tpm_processing_cmd = true;
 
+again:
 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
 			IBMVTPM_VALID_CMD, VTPM_TPM_COMMAND,
 			count, ibmvtpm->rtce_dma_handle);
 	if (rc != H_SUCCESS) {
+		/*
+		 * H_CLOSED can be returned after LPM resume.  Call
+		 * tpm_ibmvtpm_resume() to re-enable the CRQ then retry
+		 * ibmvtpm_send_crq() once before failing.
+		 */
+		if (rc == H_CLOSED && retry) {
+			tpm_ibmvtpm_resume(ibmvtpm->dev);
+			retry = false;
+			goto again;
+		}
 		dev_err(ibmvtpm->dev, "tpm_ibmvtpm_send failed rc=%d\n", rc);
-		rc = 0;
 		ibmvtpm->tpm_processing_cmd = false;
-	} else
-		rc = 0;
+	}
 
 	spin_unlock(&ibmvtpm->rtce_lock);
-	return rc;
+	return 0;
 }
 
 static void tpm_ibmvtpm_cancel(struct tpm_chip *chip)
@@ -269,26 +337,6 @@
 }
 
 /**
- * ibmvtpm_crq_send_init - Send a CRQ initialize message
- * @ibmvtpm:	vtpm device struct
- *
- * Return:
- *	0 on success.
- *	Non-zero on failure.
- */
-static int ibmvtpm_crq_send_init(struct ibmvtpm_dev *ibmvtpm)
-{
-	int rc;
-
-	rc = ibmvtpm_send_crq_word(ibmvtpm->vdev, INIT_CRQ_CMD);
-	if (rc != H_SUCCESS)
-		dev_err(ibmvtpm->dev,
-			"ibmvtpm_crq_send_init failed rc=%d\n", rc);
-
-	return rc;
-}
-
-/**
  * tpm_ibmvtpm_remove - ibm vtpm remove entry point
  * @vdev:	vio device struct
  *
@@ -400,44 +448,6 @@
 				  ibmvtpm->crq_dma_handle, CRQ_RES_BUF_SIZE);
 }
 
-/**
- * tpm_ibmvtpm_resume - Resume from suspend
- *
- * @dev:	device struct
- *
- * Return: Always 0.
- */
-static int tpm_ibmvtpm_resume(struct device *dev)
-{
-	struct tpm_chip *chip = dev_get_drvdata(dev);
-	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
-	int rc = 0;
-
-	do {
-		if (rc)
-			msleep(100);
-		rc = plpar_hcall_norets(H_ENABLE_CRQ,
-					ibmvtpm->vdev->unit_address);
-	} while (rc == H_IN_PROGRESS || rc == H_BUSY || H_IS_LONG_BUSY(rc));
-
-	if (rc) {
-		dev_err(dev, "Error enabling ibmvtpm rc=%d\n", rc);
-		return rc;
-	}
-
-	rc = vio_enable_interrupts(ibmvtpm->vdev);
-	if (rc) {
-		dev_err(dev, "Error vio_enable_interrupts rc=%d\n", rc);
-		return rc;
-	}
-
-	rc = ibmvtpm_crq_send_init(ibmvtpm);
-	if (rc)
-		dev_err(dev, "Error send_init rc=%d\n", rc);
-
-	return rc;
-}
-
 static bool tpm_ibmvtpm_req_canceled(struct tpm_chip *chip, u8 status)
 {
 	return (status == 0);
@@ -571,6 +581,7 @@
 	 */
 	while ((crq = ibmvtpm_crq_get_next(ibmvtpm)) != NULL) {
 		ibmvtpm_crq_process(crq, ibmvtpm);
+		wake_up_interruptible(&ibmvtpm->crq_queue.wq);
 		crq->valid = 0;
 		smp_wmb();
 	}
@@ -618,6 +629,7 @@
 	}
 
 	crq_q->num_entry = CRQ_RES_BUF_SIZE / sizeof(*crq_q->crq_addr);
+	init_waitqueue_head(&crq_q->wq);
 	ibmvtpm->crq_dma_handle = dma_map_single(dev, crq_q->crq_addr,
 						 CRQ_RES_BUF_SIZE,
 						 DMA_BIDIRECTIONAL);
@@ -670,6 +682,13 @@
 	if (rc)
 		goto init_irq_cleanup;
 
+	if (!wait_event_timeout(ibmvtpm->crq_queue.wq,
+				ibmvtpm->rtce_buf != NULL,
+				HZ)) {
+		dev_err(dev, "CRQ response timed out\n");
+		goto init_irq_cleanup;
+	}
+
 	return tpm_chip_register(chip);
 init_irq_cleanup:
 	do {
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm_ibmvtpm.h
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm_ibmvtpm.h
@@ -26,6 +26,7 @@
 	struct ibmvtpm_crq *crq_addr;
 	u32 index;
 	u32 num_entry;
+	wait_queue_head_t wq;
 };
 
 struct ibmvtpm_dev {
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm_tis.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm_tis.c
@@ -27,6 +27,7 @@
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/kernel.h>
+#include <linux/dmi.h>
 #include "tpm.h"
 #include "tpm_tis_core.h"
 
@@ -49,8 +50,8 @@
 	return container_of(data, struct tpm_tis_tcg_phy, priv);
 }
 
-static bool interrupts = true;
-module_param(interrupts, bool, 0444);
+static int interrupts = -1;
+module_param(interrupts, int, 0444);
 MODULE_PARM_DESC(interrupts, "Enable interrupts");
 
 static bool itpm;
@@ -63,6 +64,28 @@
 MODULE_PARM_DESC(force, "Force device probe rather than using ACPI entry");
 #endif
 
+static int tpm_tis_disable_irq(const struct dmi_system_id *d)
+{
+	if (interrupts == -1) {
+		pr_notice("tpm_tis: %s detected: disabling interrupts.\n", d->ident);
+		interrupts = 0;
+	}
+
+	return 0;
+}
+
+static const struct dmi_system_id tpm_tis_dmi_table[] = {
+	{
+		.callback = tpm_tis_disable_irq,
+		.ident = "ThinkPad T490s",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T490s"),
+		},
+	},
+	{}
+};
+
 #if defined(CONFIG_PNP) && defined(CONFIG_ACPI)
 static int has_hid(struct acpi_device *dev, const char *hid)
 {
@@ -192,6 +215,8 @@
 	int irq = -1;
 	int rc;
 
+	dmi_check_system(tpm_tis_dmi_table);
+
 	rc = check_acpi_tpm2(dev);
 	if (rc)
 		return rc;
@@ -286,7 +311,7 @@
 	}
 	tpm_info.res = *res;
 
-	tpm_info.irq = platform_get_irq(pdev, 0);
+	tpm_info.irq = platform_get_irq_optional(pdev, 0);
 	if (tpm_info.irq <= 0) {
 		if (pdev != force_pdev)
 			tpm_info.irq = -1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpm_tis_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpm_tis_core.c
@@ -125,7 +125,8 @@
 	if (rc < 0)
 		return false;
 
-	if ((access & (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) ==
+	if ((access & (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID
+		       | TPM_ACCESS_REQUEST_USE)) ==
 	    (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) {
 		priv->locality = l;
 		return true;
@@ -134,58 +135,13 @@
 	return false;
 }
 
-static bool locality_inactive(struct tpm_chip *chip, int l)
-{
-	struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
-	int rc;
-	u8 access;
-
-	rc = tpm_tis_read8(priv, TPM_ACCESS(l), &access);
-	if (rc < 0)
-		return false;
-
-	if ((access & (TPM_ACCESS_VALID | TPM_ACCESS_ACTIVE_LOCALITY))
-	    == TPM_ACCESS_VALID)
-		return true;
-
-	return false;
-}
-
 static int release_locality(struct tpm_chip *chip, int l)
 {
 	struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
-	unsigned long stop, timeout;
-	long rc;
 
 	tpm_tis_write8(priv, TPM_ACCESS(l), TPM_ACCESS_ACTIVE_LOCALITY);
 
-	stop = jiffies + chip->timeout_a;
-
-	if (chip->flags & TPM_CHIP_FLAG_IRQ) {
-again:
-		timeout = stop - jiffies;
-		if ((long)timeout <= 0)
-			return -1;
-
-		rc = wait_event_interruptible_timeout(priv->int_queue,
-						      (locality_inactive(chip, l)),
-						      timeout);
-
-		if (rc > 0)
-			return 0;
-
-		if (rc == -ERESTARTSYS && freezing(current)) {
-			clear_thread_flag(TIF_SIGPENDING);
-			goto again;
-		}
-	} else {
-		do {
-			if (locality_inactive(chip, l))
-				return 0;
-			tpm_msleep(TPM_TIMEOUT);
-		} while (time_before(jiffies, stop));
-	}
-	return -1;
+	return 0;
 }
 
 static int request_locality(struct tpm_chip *chip, int l)
@@ -433,6 +389,9 @@
 	u32 intmask;
 	int rc;
 
+	if (priv->irq == 0)
+		return;
+
 	rc = tpm_tis_read32(priv, TPM_INT_ENABLE(priv->locality), &intmask);
 	if (rc < 0)
 		intmask = 0;
@@ -659,12 +618,22 @@
 	const char *desc = "attempting to generate an interrupt";
 	u32 cap2;
 	cap_t cap;
+	int ret;
 
+	/* TPM 2.0 */
 	if (chip->flags & TPM_CHIP_FLAG_TPM2)
 		return tpm2_get_tpm_pt(chip, 0x100, &cap2, desc);
-	else
-		return tpm1_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap, desc,
-				  0);
+
+	/* TPM 1.2 */
+	ret = request_locality(chip, 0);
+	if (ret < 0)
+		return ret;
+
+	ret = tpm1_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap, desc, 0);
+
+	release_locality(chip, 0);
+
+	return ret;
 }
 
 /* Register the IRQ and issue a command that will cause an interrupt. If an
@@ -970,28 +939,38 @@
 	init_waitqueue_head(&priv->read_queue);
 	init_waitqueue_head(&priv->int_queue);
 	if (irq != -1) {
-		/* Before doing irq testing issue a command to the TPM in polling mode
+		/*
+		 * Before doing irq testing issue a command to the TPM in polling mode
 		 * to make sure it works. May as well use that command to set the
 		 * proper timeouts for the driver.
 		 */
-		if (tpm_get_timeouts(chip)) {
+
+		rc = request_locality(chip, 0);
+		if (rc < 0)
+			goto out_err;
+
+		rc = tpm_get_timeouts(chip);
+
+		release_locality(chip, 0);
+
+		if (rc) {
 			dev_err(dev, "Could not get TPM timeouts and durations\n");
 			rc = -ENODEV;
 			goto out_err;
 		}
 
-		tpm_chip_start(chip);
-		chip->flags |= TPM_CHIP_FLAG_IRQ;
 		if (irq) {
 			tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED,
 						 irq);
-			if (!(chip->flags & TPM_CHIP_FLAG_IRQ))
+			if (!(chip->flags & TPM_CHIP_FLAG_IRQ)) {
 				dev_err(&chip->dev, FW_BUG
 					"TPM interrupt not working, polling instead\n");
+
+				disable_interrupts(chip);
+			}
 		} else {
 			tpm_tis_probe_irq(chip, intmask);
 		}
-		tpm_chip_stop(chip);
 	}
 
 	rc = tpm_chip_register(chip);
@@ -1003,7 +982,7 @@
 
 	return 0;
 out_err:
-	if ((chip->ops != NULL) && (chip->ops->clk_enable != NULL))
+	if (chip->ops->clk_enable != NULL)
 		chip->ops->clk_enable(chip, false);
 
 	tpm_tis_remove(chip);
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/tpm/tpmrm-dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/tpm/tpmrm-dev.c
@@ -21,7 +21,7 @@
 	if (priv == NULL)
 		return -ENOMEM;
 
-	rc = tpm2_init_space(&priv->space);
+	rc = tpm2_init_space(&priv->space, TPM2_SPACE_BUFFER_SIZE);
 	if (rc) {
 		kfree(priv);
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/ttyprintk.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/ttyprintk.c
@@ -15,10 +15,11 @@
 #include <linux/serial.h>
 #include <linux/tty.h>
 #include <linux/module.h>
+#include <linux/spinlock.h>
 
 struct ttyprintk_port {
 	struct tty_port port;
-	struct mutex port_write_mutex;
+	spinlock_t spinlock;
 };
 
 static struct ttyprintk_port tpk_port;
@@ -99,11 +100,12 @@
 static void tpk_close(struct tty_struct *tty, struct file *filp)
 {
 	struct ttyprintk_port *tpkp = tty->driver_data;
+	unsigned long flags;
 
-	mutex_lock(&tpkp->port_write_mutex);
+	spin_lock_irqsave(&tpkp->spinlock, flags);
 	/* flush tpk_printk buffer */
 	tpk_printk(NULL, 0);
-	mutex_unlock(&tpkp->port_write_mutex);
+	spin_unlock_irqrestore(&tpkp->spinlock, flags);
 
 	tty_port_close(&tpkp->port, tty, filp);
 }
@@ -115,13 +117,14 @@
 		const unsigned char *buf, int count)
 {
 	struct ttyprintk_port *tpkp = tty->driver_data;
+	unsigned long flags;
 	int ret;
 
 
 	/* exclusive use of tpk_printk within this tty */
-	mutex_lock(&tpkp->port_write_mutex);
+	spin_lock_irqsave(&tpkp->spinlock, flags);
 	ret = tpk_printk(buf, count);
-	mutex_unlock(&tpkp->port_write_mutex);
+	spin_unlock_irqrestore(&tpkp->spinlock, flags);
 
 	return ret;
 }
@@ -171,7 +174,7 @@
 {
 	int ret = -ENOMEM;
 
-	mutex_init(&tpk_port.port_write_mutex);
+	spin_lock_init(&tpk_port.spinlock);
 
 	ttyprintk_driver = tty_alloc_driver(1,
 			TTY_DRIVER_RESET_TERMIOS |
--- linux-gkeop-5.4-5.4.0.orig/drivers/char/virtio_console.c
+++ linux-gkeop-5.4-5.4.0/drivers/char/virtio_console.c
@@ -435,12 +435,12 @@
 		/*
 		 * Allocate DMA memory from ancestor. When a virtio
 		 * device is created by remoteproc, the DMA memory is
-		 * associated with the grandparent device:
-		 * vdev => rproc => platform-dev.
+		 * associated with the parent device:
+		 * virtioY => remoteprocX#vdevYbuffer.
 		 */
-		if (!vdev->dev.parent || !vdev->dev.parent->parent)
+		buf->dev = vdev->dev.parent;
+		if (!buf->dev)
 			goto free_buf;
-		buf->dev = vdev->dev.parent->parent;
 
 		/* Increase device refcnt to avoid freeing it */
 		get_device(buf->dev);
@@ -2118,6 +2118,7 @@
 	{ VIRTIO_ID_CONSOLE, VIRTIO_DEV_ANY_ID },
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, id_table);
 
 static unsigned int features[] = {
 	VIRTIO_CONSOLE_F_SIZE,
@@ -2130,6 +2131,7 @@
 #endif
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, rproc_serial_id_table);
 
 static unsigned int rproc_serial_features[] = {
 };
@@ -2282,6 +2284,5 @@
 module_init(init);
 module_exit(fini);
 
-MODULE_DEVICE_TABLE(virtio, id_table);
 MODULE_DESCRIPTION("Virtio console driver");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/actions/owl-s500.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/actions/owl-s500.c
@@ -183,7 +183,7 @@
 static OWL_GATE(hdmi_clk, "hdmi_clk", "hosc", CMU_DEVCLKEN1, 3, 0, 0);
 
 /* divider clocks */
-static OWL_DIVIDER(h_clk, "h_clk", "ahbprevdiv_clk", CMU_BUSCLK1, 12, 2, NULL, 0, 0);
+static OWL_DIVIDER(h_clk, "h_clk", "ahbprediv_clk", CMU_BUSCLK1, 12, 2, NULL, 0, 0);
 static OWL_DIVIDER(rmii_ref_clk, "rmii_ref_clk", "ethernet_pll_clk", CMU_ETHERNETPLL, 1, 1, rmii_ref_div_table, 0, 0);
 
 /* factor clocks */
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/at91sam9260.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/at91sam9260.c
@@ -348,7 +348,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/at91sam9rl.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/at91sam9rl.c
@@ -83,7 +83,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/at91sam9x5.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/at91sam9x5.c
@@ -146,7 +146,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/clk-main.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/clk-main.c
@@ -437,12 +437,17 @@
 		return -EINVAL;
 
 	regmap_read(regmap, AT91_CKGR_MOR, &tmp);
-	tmp &= ~MOR_KEY_MASK;
 
 	if (index && !(tmp & AT91_PMC_MOSCSEL))
-		regmap_write(regmap, AT91_CKGR_MOR, tmp | AT91_PMC_MOSCSEL);
+		tmp = AT91_PMC_MOSCSEL;
 	else if (!index && (tmp & AT91_PMC_MOSCSEL))
-		regmap_write(regmap, AT91_CKGR_MOR, tmp & ~AT91_PMC_MOSCSEL);
+		tmp = 0;
+	else
+		return 0;
+
+	regmap_update_bits(regmap, AT91_CKGR_MOR,
+			   AT91_PMC_MOSCSEL | MOR_KEY_MASK,
+			   tmp | AT91_PMC_KEY);
 
 	while (!clk_sam9x5_main_ready(regmap))
 		cpu_relax();
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/clk-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/clk-usb.c
@@ -75,6 +75,9 @@
 			tmp_parent_rate = req->rate * div;
 			tmp_parent_rate = clk_hw_round_rate(parent,
 							   tmp_parent_rate);
+			if (!tmp_parent_rate)
+				continue;
+
 			tmp_rate = DIV_ROUND_CLOSEST(tmp_parent_rate, div);
 			if (tmp_rate < req->rate)
 				tmp_diff = req->rate - tmp_rate;
@@ -211,7 +214,7 @@
 
 	usb->hw.init = &init;
 	usb->regmap = regmap;
-	usb->usbs_mask = SAM9X5_USBS_MASK;
+	usb->usbs_mask = usbs_mask;
 
 	hw = &usb->hw;
 	ret = clk_hw_register(NULL, &usb->hw);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/pmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/pmc.c
@@ -275,7 +275,7 @@
 
 	np = of_find_matching_node(NULL, sama5d2_pmc_dt_ids);
 
-	pmcreg = syscon_node_to_regmap(np);
+	pmcreg = device_node_to_regmap(np);
 	if (IS_ERR(pmcreg))
 		return PTR_ERR(pmcreg);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/sam9x60.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/sam9x60.c
@@ -47,6 +47,7 @@
 	.pres_shift = 8,
 	.css_mask = 0x1f,
 	.have_slck_mck = 0,
+	.is_pres_direct = 1,
 };
 
 static const struct clk_pcr_layout sam9x60_pcr_layout = {
@@ -161,7 +162,6 @@
 	struct regmap *regmap;
 	struct clk_hw *hw;
 	int i;
-	bool bypass;
 
 	i = of_property_match_string(np, "clock-names", "td_slck");
 	if (i < 0)
@@ -196,10 +196,7 @@
 	if (IS_ERR(hw))
 		goto err_free;
 
-	bypass = of_property_read_bool(np, "atmel,osc-bypass");
-
-	hw = at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name,
-					bypass);
+	hw = at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, 0);
 	if (IS_ERR(hw))
 		goto err_free;
 
@@ -236,9 +233,8 @@
 
 	parent_names[0] = "pllack";
 	parent_names[1] = "upllck";
-	parent_names[2] = "mainck";
-	parent_names[3] = "mainck";
-	hw = sam9x60_clk_register_usb(regmap, "usbck", parent_names, 4);
+	parent_names[2] = "main_osc";
+	hw = sam9x60_clk_register_usb(regmap, "usbck", parent_names, 3);
 	if (IS_ERR(hw))
 		goto err_free;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/sama5d2.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/sama5d2.c
@@ -162,7 +162,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/at91/sama5d4.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/at91/sama5d4.c
@@ -136,7 +136,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/bcm/clk-bcm2835.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/bcm/clk-bcm2835.c
@@ -314,6 +314,7 @@
 	struct device *dev;
 	void __iomem *regs;
 	spinlock_t regs_lock; /* spinlock for all clocks */
+	unsigned int soc;
 
 	/*
 	 * Real names of cprman clock parents looked up through
@@ -525,6 +526,20 @@
 		A2W_PLL_CTRL_PRST_DISABLE;
 }
 
+static u32 bcm2835_pll_get_prediv_mask(struct bcm2835_cprman *cprman,
+				       const struct bcm2835_pll_data *data)
+{
+	/*
+	 * On BCM2711 there isn't a pre-divisor available in the PLL feedback
+	 * loop. Bits 13:14 of ANA1 (PLLA,PLLB,PLLC,PLLD) have been re-purposed
+	 * for to for VCO RANGE bits.
+	 */
+	if (cprman->soc & SOC_BCM2711)
+		return 0;
+
+	return data->ana->fb_prediv_mask;
+}
+
 static void bcm2835_pll_choose_ndiv_and_fdiv(unsigned long rate,
 					     unsigned long parent_rate,
 					     u32 *ndiv, u32 *fdiv)
@@ -582,7 +597,7 @@
 	ndiv = (a2wctrl & A2W_PLL_CTRL_NDIV_MASK) >> A2W_PLL_CTRL_NDIV_SHIFT;
 	pdiv = (a2wctrl & A2W_PLL_CTRL_PDIV_MASK) >> A2W_PLL_CTRL_PDIV_SHIFT;
 	using_prediv = cprman_read(cprman, data->ana_reg_base + 4) &
-		data->ana->fb_prediv_mask;
+		       bcm2835_pll_get_prediv_mask(cprman, data);
 
 	if (using_prediv) {
 		ndiv *= 2;
@@ -665,6 +680,7 @@
 	struct bcm2835_pll *pll = container_of(hw, struct bcm2835_pll, hw);
 	struct bcm2835_cprman *cprman = pll->cprman;
 	const struct bcm2835_pll_data *data = pll->data;
+	u32 prediv_mask = bcm2835_pll_get_prediv_mask(cprman, data);
 	bool was_using_prediv, use_fb_prediv, do_ana_setup_first;
 	u32 ndiv, fdiv, a2w_ctl;
 	u32 ana[4];
@@ -682,7 +698,7 @@
 	for (i = 3; i >= 0; i--)
 		ana[i] = cprman_read(cprman, data->ana_reg_base + i * 4);
 
-	was_using_prediv = ana[1] & data->ana->fb_prediv_mask;
+	was_using_prediv = ana[1] & prediv_mask;
 
 	ana[0] &= ~data->ana->mask0;
 	ana[0] |= data->ana->set0;
@@ -692,10 +708,10 @@
 	ana[3] |= data->ana->set3;
 
 	if (was_using_prediv && !use_fb_prediv) {
-		ana[1] &= ~data->ana->fb_prediv_mask;
+		ana[1] &= ~prediv_mask;
 		do_ana_setup_first = true;
 	} else if (!was_using_prediv && use_fb_prediv) {
-		ana[1] |= data->ana->fb_prediv_mask;
+		ana[1] |= prediv_mask;
 		do_ana_setup_first = false;
 	} else {
 		do_ana_setup_first = true;
@@ -1320,8 +1336,10 @@
 	pll->hw.init = &init;
 
 	ret = devm_clk_hw_register(cprman->dev, &pll->hw);
-	if (ret)
+	if (ret) {
+		kfree(pll);
 		return NULL;
+	}
 	return &pll->hw;
 }
 
@@ -1448,13 +1466,13 @@
 	return &clock->hw;
 }
 
-static struct clk *bcm2835_register_gate(struct bcm2835_cprman *cprman,
+static struct clk_hw *bcm2835_register_gate(struct bcm2835_cprman *cprman,
 					 const struct bcm2835_gate_data *data)
 {
-	return clk_register_gate(cprman->dev, data->name, data->parent,
-				 CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE,
-				 cprman->regs + data->ctl_reg,
-				 CM_GATE_BIT, 0, &cprman->regs_lock);
+	return clk_hw_register_gate(cprman->dev, data->name, data->parent,
+				    CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE,
+				    cprman->regs + data->ctl_reg,
+				    CM_GATE_BIT, 0, &cprman->regs_lock);
 }
 
 typedef struct clk_hw *(*bcm2835_clk_register)(struct bcm2835_cprman *cprman,
@@ -2234,6 +2252,7 @@
 	platform_set_drvdata(pdev, cprman);
 
 	cprman->onecell.num = asize;
+	cprman->soc = pdata->soc;
 	hws = cprman->onecell.hws;
 
 	for (i = 0; i < asize; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/bcm/clk-bcm63xx-gate.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/bcm/clk-bcm63xx-gate.c
@@ -155,6 +155,7 @@
 
 	for (entry = table; entry->name; entry++)
 		maxbit = max_t(u8, maxbit, entry->bit);
+	maxbit++;
 
 	hw = devm_kzalloc(&pdev->dev, struct_size(hw, data.hws, maxbit),
 			  GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/clk-ast2600.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/clk-ast2600.c
@@ -17,7 +17,8 @@
 
 #define ASPEED_G6_NUM_CLKS		67
 
-#define ASPEED_G6_SILICON_REV		0x004
+#define ASPEED_G6_SILICON_REV		0x014
+#define CHIP_REVISION_ID			GENMASK(23, 16)
 
 #define ASPEED_G6_RESET_CTRL		0x040
 #define ASPEED_G6_RESET_CTRL2		0x050
@@ -130,6 +131,18 @@
 	{ 0 }
 };
 
+static const struct clk_div_table ast2600_emmc_extclk_div_table[] = {
+	{ 0x0, 2 },
+	{ 0x1, 4 },
+	{ 0x2, 6 },
+	{ 0x3, 8 },
+	{ 0x4, 10 },
+	{ 0x5, 12 },
+	{ 0x6, 14 },
+	{ 0x7, 16 },
+	{ 0 }
+};
+
 static const struct clk_div_table ast2600_mac_div_table[] = {
 	{ 0x0, 4 },
 	{ 0x1, 4 },
@@ -177,18 +190,34 @@
 static struct clk_hw *ast2600_calc_apll(const char *name, u32 val)
 {
 	unsigned int mult, div;
+	u32 chip_id = readl(scu_g6_base + ASPEED_G6_SILICON_REV);
 
-	if (val & BIT(20)) {
-		/* Pass through mode */
-		mult = div = 1;
+	if (((chip_id & CHIP_REVISION_ID) >> 16) >= 2) {
+		if (val & BIT(24)) {
+			/* Pass through mode */
+			mult = div = 1;
+		} else {
+			/* F = 25Mhz * [(m + 1) / (n + 1)] / (p + 1) */
+			u32 m = val & 0x1fff;
+			u32 n = (val >> 13) & 0x3f;
+			u32 p = (val >> 19) & 0xf;
+
+			mult = (m + 1);
+			div = (n + 1) * (p + 1);
+		}
 	} else {
-		/* F = 25Mhz * (2-od) * [(m + 2) / (n + 1)] */
-		u32 m = (val >> 5) & 0x3f;
-		u32 od = (val >> 4) & 0x1;
-		u32 n = val & 0xf;
-
-		mult = (2 - od) * (m + 2);
-		div = n + 1;
+		if (val & BIT(20)) {
+			/* Pass through mode */
+			mult = div = 1;
+		} else {
+			/* F = 25Mhz * (2-od) * [(m + 2) / (n + 1)] */
+			u32 m = (val >> 5) & 0x3f;
+			u32 od = (val >> 4) & 0x1;
+			u32 n = val & 0xf;
+
+			mult = (2 - od) * (m + 2);
+			div = n + 1;
+		}
 	}
 	return clk_hw_register_fixed_factor(NULL, name, "clkin", 0,
 			mult, div);
@@ -389,6 +418,11 @@
 	return hw;
 }
 
+static const char *const emmc_extclk_parent_names[] = {
+	"emmc_extclk_hpll_in",
+	"mpll",
+};
+
 static const char * const vclk_parent_names[] = {
 	"dpll",
 	"d1pll",
@@ -458,16 +492,32 @@
 		return PTR_ERR(hw);
 	aspeed_g6_clk_data->hws[ASPEED_CLK_UARTX] = hw;
 
-	/* EMMC ext clock divider */
-	hw = clk_hw_register_gate(dev, "emmc_extclk_gate", "hpll", 0,
-			scu_g6_base + ASPEED_G6_CLK_SELECTION1, 15, 0,
-			&aspeed_g6_clk_lock);
+	/* EMMC ext clock */
+	hw = clk_hw_register_fixed_factor(dev, "emmc_extclk_hpll_in", "hpll",
+					  0, 1, 2);
 	if (IS_ERR(hw))
 		return PTR_ERR(hw);
-	hw = clk_hw_register_divider_table(dev, "emmc_extclk", "emmc_extclk_gate", 0,
-			scu_g6_base + ASPEED_G6_CLK_SELECTION1, 12, 3, 0,
-			ast2600_div_table,
-			&aspeed_g6_clk_lock);
+
+	hw = clk_hw_register_mux(dev, "emmc_extclk_mux",
+				 emmc_extclk_parent_names,
+				 ARRAY_SIZE(emmc_extclk_parent_names), 0,
+				 scu_g6_base + ASPEED_G6_CLK_SELECTION1, 11, 1,
+				 0, &aspeed_g6_clk_lock);
+	if (IS_ERR(hw))
+		return PTR_ERR(hw);
+
+	hw = clk_hw_register_gate(dev, "emmc_extclk_gate", "emmc_extclk_mux",
+				  0, scu_g6_base + ASPEED_G6_CLK_SELECTION1,
+				  15, 0, &aspeed_g6_clk_lock);
+	if (IS_ERR(hw))
+		return PTR_ERR(hw);
+
+	hw = clk_hw_register_divider_table(dev, "emmc_extclk",
+					   "emmc_extclk_gate", 0,
+					   scu_g6_base +
+						ASPEED_G6_CLK_SELECTION1, 12,
+					   3, 0, ast2600_emmc_extclk_div_table,
+					   &aspeed_g6_clk_lock);
 	if (IS_ERR(hw))
 		return PTR_ERR(hw);
 	aspeed_g6_clk_data->hws[ASPEED_CLK_EMMC] = hw;
@@ -599,14 +649,22 @@
 	2, 2, 3, 5,
 };
 
-static const u32 ast2600_a1_axi_ahb_div_table[] = {
-	4, 6, 2, 4,
+static const u32 ast2600_a1_axi_ahb_div0_tbl[] = {
+	3, 2, 3, 4,
+};
+
+static const u32 ast2600_a1_axi_ahb_div1_tbl[] = {
+	3, 4, 6, 8,
+};
+
+static const u32 ast2600_a1_axi_ahb200_tbl[] = {
+	3, 4, 3, 4, 2, 2, 2, 2,
 };
 
 static void __init aspeed_g6_cc(struct regmap *map)
 {
 	struct clk_hw *hw;
-	u32 val, div, chip_id, axi_div, ahb_div;
+	u32 val, div, divbits, chip_id, axi_div, ahb_div;
 
 	clk_hw_register_fixed_rate(NULL, "clkin", NULL, 0, 25000000);
 
@@ -636,11 +694,22 @@
 	else
 		axi_div = 2;
 
+	divbits = (val >> 11) & 0x3;
 	regmap_read(map, ASPEED_G6_SILICON_REV, &chip_id);
-	if (chip_id & BIT(16))
-		ahb_div = ast2600_a1_axi_ahb_div_table[(val >> 11) & 0x3];
-	else
+	if (chip_id & BIT(16)) {
+		if (!divbits) {
+			ahb_div = ast2600_a1_axi_ahb200_tbl[(val >> 8) & 0x3];
+			if (val & BIT(16))
+				ahb_div *= 2;
+		} else {
+			if (val & BIT(16))
+				ahb_div = ast2600_a1_axi_ahb_div1_tbl[divbits];
+			else
+				ahb_div = ast2600_a1_axi_ahb_div0_tbl[divbits];
+		}
+	} else {
 		ahb_div = ast2600_a0_axi_ahb_div_table[(val >> 11) & 0x3];
+	}
 
 	hw = clk_hw_register_fixed_factor(NULL, "ahb", "hpll", 0, 1, axi_div * ahb_div);
 	aspeed_g6_clk_data->hws[ASPEED_CLK_AHB] = hw;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/clk-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/clk-gpio.c
@@ -280,7 +280,7 @@
 	else
 		clk = clk_register_gpio_gate(&pdev->dev, node->name,
 				parent_names ?  parent_names[0] : NULL, gpiod,
-				0);
+				CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk))
 		return PTR_ERR(clk);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/clk-s2mps11.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/clk-s2mps11.c
@@ -195,6 +195,7 @@
 	return ret;
 
 err_reg:
+	of_node_put(s2mps11_clks[0].clk_np);
 	while (--i >= 0)
 		clkdev_drop(s2mps11_clks[i].lookup);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/clk-scmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/clk-scmi.c
@@ -103,6 +103,8 @@
 static int scmi_clk_ops_init(struct device *dev, struct scmi_clk *sclk)
 {
 	int ret;
+	unsigned long min_rate, max_rate;
+
 	struct clk_init_data init = {
 		.flags = CLK_GET_RATE_NOCACHE,
 		.num_parents = 0,
@@ -112,9 +114,23 @@
 
 	sclk->hw.init = &init;
 	ret = devm_clk_hw_register(dev, &sclk->hw);
-	if (!ret)
-		clk_hw_set_rate_range(&sclk->hw, sclk->info->range.min_rate,
-				      sclk->info->range.max_rate);
+	if (ret)
+		return ret;
+
+	if (sclk->info->rate_discrete) {
+		int num_rates = sclk->info->list.num_rates;
+
+		if (num_rates <= 0)
+			return -EINVAL;
+
+		min_rate = sclk->info->list.rates[0];
+		max_rate = sclk->info->list.rates[num_rates - 1];
+	} else {
+		min_rate = sclk->info->range.min_rate;
+		max_rate = sclk->info->range.max_rate;
+	}
+
+	clk_hw_set_rate_range(&sclk->hw, min_rate, max_rate);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/clk.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/clk.c
@@ -114,7 +114,11 @@
 		return 0;
 
 	ret = pm_runtime_get_sync(core->dev);
-	return ret < 0 ? ret : 0;
+	if (ret < 0) {
+		pm_runtime_put_noidle(core->dev);
+		return ret;
+	}
+	return 0;
 }
 
 static void clk_pm_runtime_put(struct clk_core *core)
@@ -2642,12 +2646,14 @@
 {
 	int ret;
 
-	clk_prepare_lock();
+	lockdep_assert_held(&prepare_lock);
+	if (!core->ops->get_phase)
+		return 0;
+
 	/* Always try to update cached phase if possible */
-	if (core->ops->get_phase)
-		core->phase = core->ops->get_phase(core->hw);
-	ret = core->phase;
-	clk_prepare_unlock();
+	ret = core->ops->get_phase(core->hw);
+	if (ret >= 0)
+		core->phase = ret;
 
 	return ret;
 }
@@ -2661,10 +2667,16 @@
  */
 int clk_get_phase(struct clk *clk)
 {
+	int ret;
+
 	if (!clk)
 		return 0;
 
-	return clk_core_get_phase(clk->core);
+	clk_prepare_lock();
+	ret = clk_core_get_phase(clk->core);
+	clk_prepare_unlock();
+
+	return ret;
 }
 EXPORT_SYMBOL_GPL(clk_get_phase);
 
@@ -2878,13 +2890,21 @@
 static void clk_summary_show_one(struct seq_file *s, struct clk_core *c,
 				 int level)
 {
-	seq_printf(s, "%*s%-*s %7d %8d %8d %11lu %10lu %5d %6d\n",
+	int phase;
+
+	seq_printf(s, "%*s%-*s %7d %8d %8d %11lu %10lu ",
 		   level * 3 + 1, "",
 		   30 - level * 3, c->name,
 		   c->enable_count, c->prepare_count, c->protect_count,
-		   clk_core_get_rate(c), clk_core_get_accuracy(c),
-		   clk_core_get_phase(c),
-		   clk_core_get_scaled_duty_cycle(c, 100000));
+		   clk_core_get_rate(c), clk_core_get_accuracy(c));
+
+	phase = clk_core_get_phase(c);
+	if (phase >= 0)
+		seq_printf(s, "%5d", phase);
+	else
+		seq_puts(s, "-----");
+
+	seq_printf(s, " %6d\n", clk_core_get_scaled_duty_cycle(c, 100000));
 }
 
 static void clk_summary_show_subtree(struct seq_file *s, struct clk_core *c,
@@ -2921,6 +2941,7 @@
 
 static void clk_dump_one(struct seq_file *s, struct clk_core *c, int level)
 {
+	int phase;
 	unsigned long min_rate, max_rate;
 
 	clk_core_get_boundaries(c, &min_rate, &max_rate);
@@ -2934,7 +2955,9 @@
 	seq_printf(s, "\"min_rate\": %lu,", min_rate);
 	seq_printf(s, "\"max_rate\": %lu,", max_rate);
 	seq_printf(s, "\"accuracy\": %lu,", clk_core_get_accuracy(c));
-	seq_printf(s, "\"phase\": %d,", clk_core_get_phase(c));
+	phase = clk_core_get_phase(c);
+	if (phase >= 0)
+		seq_printf(s, "\"phase\": %d,", phase);
 	seq_printf(s, "\"duty_cycle\": %u",
 		   clk_core_get_scaled_duty_cycle(c, 100000));
 }
@@ -3231,6 +3254,34 @@
 }
 #endif
 
+static void clk_core_reparent_orphans_nolock(void)
+{
+	struct clk_core *orphan;
+	struct hlist_node *tmp2;
+
+	/*
+	 * walk the list of orphan clocks and reparent any that newly finds a
+	 * parent.
+	 */
+	hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) {
+		struct clk_core *parent = __clk_init_parent(orphan);
+
+		/*
+		 * We need to use __clk_set_parent_before() and _after() to
+		 * to properly migrate any prepare/enable count of the orphan
+		 * clock. This is important for CLK_IS_CRITICAL clocks, which
+		 * are enabled during init but might not have a parent yet.
+		 */
+		if (parent) {
+			/* update the clk tree topology */
+			__clk_set_parent_before(orphan, parent);
+			__clk_set_parent_after(orphan, parent, NULL);
+			__clk_recalc_accuracies(orphan);
+			__clk_recalc_rates(orphan, 0);
+		}
+	}
+}
+
 /**
  * __clk_core_init - initialize the data structures in a struct clk_core
  * @core:	clk_core being initialized
@@ -3241,8 +3292,6 @@
 static int __clk_core_init(struct clk_core *core)
 {
 	int ret;
-	struct clk_core *orphan;
-	struct hlist_node *tmp2;
 	unsigned long rate;
 
 	if (!core)
@@ -3294,6 +3343,21 @@
 		goto out;
 	}
 
+	/*
+	 * optional platform-specific magic
+	 *
+	 * The .init callback is not used by any of the basic clock types, but
+	 * exists for weird hardware that must perform initialization magic.
+	 * Please consider other ways of solving initialization problems before
+	 * using this callback, as its use is discouraged.
+	 *
+	 * If it exist, this callback should called before any other callback of
+	 * the clock
+	 */
+	if (core->ops->init)
+		core->ops->init(core->hw);
+
+
 	core->parent = __clk_init_parent(core);
 
 	/*
@@ -3319,17 +3383,6 @@
 	}
 
 	/*
-	 * optional platform-specific magic
-	 *
-	 * The .init callback is not used by any of the basic clock types, but
-	 * exists for weird hardware that must perform initialization magic.
-	 * Please consider other ways of solving initialization problems before
-	 * using this callback, as its use is discouraged.
-	 */
-	if (core->ops->init)
-		core->ops->init(core->hw);
-
-	/*
 	 * Set clk's accuracy.  The preferred method is to use
 	 * .recalc_accuracy. For simple clocks and lazy developers the default
 	 * fallback is to use the parent's accuracy.  If a clock doesn't have a
@@ -3345,14 +3398,11 @@
 		core->accuracy = 0;
 
 	/*
-	 * Set clk's phase.
+	 * Set clk's phase by clk_core_get_phase() caching the phase.
 	 * Since a phase is by definition relative to its parent, just
 	 * query the current clock phase, or just assume it's in phase.
 	 */
-	if (core->ops->get_phase)
-		core->phase = core->ops->get_phase(core->hw);
-	else
-		core->phase = 0;
+	clk_core_get_phase(core);
 
 	/*
 	 * Set clk's duty cycle.
@@ -3382,39 +3432,29 @@
 	if (core->flags & CLK_IS_CRITICAL) {
 		unsigned long flags;
 
-		clk_core_prepare(core);
+		ret = clk_core_prepare(core);
+		if (ret)
+			goto out;
 
 		flags = clk_enable_lock();
-		clk_core_enable(core);
+		ret = clk_core_enable(core);
 		clk_enable_unlock(flags);
+		if (ret) {
+			clk_core_unprepare(core);
+			goto out;
+		}
 	}
 
-	/*
-	 * walk the list of orphan clocks and reparent any that newly finds a
-	 * parent.
-	 */
-	hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) {
-		struct clk_core *parent = __clk_init_parent(orphan);
+	clk_core_reparent_orphans_nolock();
 
-		/*
-		 * We need to use __clk_set_parent_before() and _after() to
-		 * to properly migrate any prepare/enable count of the orphan
-		 * clock. This is important for CLK_IS_CRITICAL clocks, which
-		 * are enabled during init but might not have a parent yet.
-		 */
-		if (parent) {
-			/* update the clk tree topology */
-			__clk_set_parent_before(orphan, parent);
-			__clk_set_parent_after(orphan, parent, NULL);
-			__clk_recalc_accuracies(orphan);
-			__clk_recalc_rates(orphan, 0);
-		}
-	}
 
 	kref_init(&core->ref);
 out:
 	clk_pm_runtime_put(core);
 unlock:
+	if (ret)
+		hlist_del_init(&core->child_node);
+
 	clk_prepare_unlock();
 
 	if (!ret)
@@ -3702,6 +3742,28 @@
 }
 
 /**
+ * dev_or_parent_of_node() - Get device node of @dev or @dev's parent
+ * @dev: Device to get device node of
+ *
+ * Return: device node pointer of @dev, or the device node pointer of
+ * @dev->parent if dev doesn't have a device node, or NULL if neither
+ * @dev or @dev->parent have a device node.
+ */
+static struct device_node *dev_or_parent_of_node(struct device *dev)
+{
+	struct device_node *np;
+
+	if (!dev)
+		return NULL;
+
+	np = dev_of_node(dev);
+	if (!np)
+		np = dev_of_node(dev->parent);
+
+	return np;
+}
+
+/**
  * clk_register - allocate a new clock, register it and return an opaque cookie
  * @dev: device that is registering this clock
  * @hw: link to hardware-specific clock data
@@ -3716,7 +3778,7 @@
  */
 struct clk *clk_register(struct device *dev, struct clk_hw *hw)
 {
-	return __clk_register(dev, dev_of_node(dev), hw);
+	return __clk_register(dev, dev_or_parent_of_node(dev), hw);
 }
 EXPORT_SYMBOL_GPL(clk_register);
 
@@ -3732,7 +3794,8 @@
  */
 int clk_hw_register(struct device *dev, struct clk_hw *hw)
 {
-	return PTR_ERR_OR_ZERO(__clk_register(dev, dev_of_node(dev), hw));
+	return PTR_ERR_OR_ZERO(__clk_register(dev, dev_or_parent_of_node(dev),
+			       hw));
 }
 EXPORT_SYMBOL_GPL(clk_hw_register);
 
@@ -3879,6 +3942,7 @@
 					__func__, clk->core->name);
 
 	kref_put(&clk->core->ref, __clk_release);
+	free_clk(clk);
 unlock:
 	clk_prepare_unlock();
 }
@@ -4160,6 +4224,13 @@
 EXPORT_SYMBOL_GPL(clk_notifier_unregister);
 
 #ifdef CONFIG_OF
+static void clk_core_reparent_orphans(void)
+{
+	clk_prepare_lock();
+	clk_core_reparent_orphans_nolock();
+	clk_prepare_unlock();
+}
+
 /**
  * struct of_clk_provider - Clock provider registration structure
  * @link: Entry in global list of clock providers
@@ -4255,6 +4326,8 @@
 	mutex_unlock(&of_clk_mutex);
 	pr_debug("Added clock from %pOF\n", np);
 
+	clk_core_reparent_orphans();
+
 	ret = of_clk_set_defaults(np, true);
 	if (ret < 0)
 		of_clk_del_provider(np);
@@ -4290,6 +4363,8 @@
 	mutex_unlock(&of_clk_mutex);
 	pr_debug("Added clk_hw provider from %pOF\n", np);
 
+	clk_core_reparent_orphans();
+
 	ret = of_clk_set_defaults(np, true);
 	if (ret < 0)
 		of_clk_del_provider(np);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/davinci/pll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/davinci/pll.c
@@ -491,7 +491,7 @@
 		parent_name = postdiv_name;
 	}
 
-	pllen = kzalloc(sizeof(*pllout), GFP_KERNEL);
+	pllen = kzalloc(sizeof(*pllen), GFP_KERNEL);
 	if (!pllen) {
 		ret = -ENOMEM;
 		goto err_unregister_postdiv;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk-composite-8m.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk-composite-8m.c
@@ -142,6 +142,7 @@
 	mux->reg = reg;
 	mux->shift = PCG_PCS_SHIFT;
 	mux->mask = PCG_PCS_MASK;
+	mux->lock = &imx_ccm_lock;
 
 	div = kzalloc(sizeof(*div), GFP_KERNEL);
 	if (!div)
@@ -161,6 +162,7 @@
 	gate_hw = &gate->hw;
 	gate->reg = reg;
 	gate->bit_idx = PCG_CGC_SHIFT;
+	gate->lock = &imx_ccm_lock;
 
 	hw = clk_hw_register_composite(NULL, name, parent_names, num_parents,
 			mux_hw, &clk_mux_ops, div_hw,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk-imx7ulp.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk-imx7ulp.c
@@ -24,8 +24,8 @@
 static const char * const spll_sels[]		= { "spll", "spll_pfd_sel", };
 static const char * const apll_pfd_sels[]	= { "apll_pfd0", "apll_pfd1", "apll_pfd2", "apll_pfd3", };
 static const char * const apll_sels[]		= { "apll", "apll_pfd_sel", };
-static const char * const scs_sels[]		= { "dummy", "sosc", "sirc", "firc", "dummy", "apll_sel", "spll_sel", "upll", };
-static const char * const ddr_sels[]		= { "apll_pfd_sel", "upll", };
+static const char * const scs_sels[]		= { "dummy", "sosc", "sirc", "firc", "dummy", "apll_sel", "spll_sel", "dummy", };
+static const char * const ddr_sels[]		= { "apll_pfd_sel", "dummy", "dummy", "dummy", };
 static const char * const nic_sels[]		= { "firc", "ddr_clk", };
 static const char * const periph_plat_sels[]	= { "dummy", "nic1_bus_clk", "nic1_clk", "ddr_clk", "apll_pfd2", "apll_pfd1", "apll_pfd0", "upll", };
 static const char * const periph_bus_sels[]	= { "dummy", "sosc_bus_clk", "mpll", "firc_bus_clk", "rosc", "nic1_bus_clk", "nic1_clk", "spll_bus_clk", };
@@ -40,6 +40,7 @@
 	{ .val = 5, .div = 16, },
 	{ .val = 6, .div = 32, },
 	{ .val = 7, .div = 64, },
+	{ /* sentinel */ },
 };
 
 static const int pcc2_uart_clk_ids[] __initconst = {
@@ -118,7 +119,7 @@
 	clks[IMX7ULP_CLK_SYS_SEL]	= imx_clk_hw_mux2("scs_sel", base + 0x14, 24, 4, scs_sels, ARRAY_SIZE(scs_sels));
 	clks[IMX7ULP_CLK_HSRUN_SYS_SEL] = imx_clk_hw_mux2("hsrun_scs_sel", base + 0x1c, 24, 4, scs_sels, ARRAY_SIZE(scs_sels));
 	clks[IMX7ULP_CLK_NIC_SEL]	= imx_clk_hw_mux2("nic_sel", base + 0x40, 28, 1, nic_sels, ARRAY_SIZE(nic_sels));
-	clks[IMX7ULP_CLK_DDR_SEL]	= imx_clk_hw_mux_flags("ddr_sel", base + 0x30, 24, 1, ddr_sels, ARRAY_SIZE(ddr_sels), CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
+	clks[IMX7ULP_CLK_DDR_SEL]	= imx_clk_hw_mux_flags("ddr_sel", base + 0x30, 24, 2, ddr_sels, ARRAY_SIZE(ddr_sels), CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
 
 	clks[IMX7ULP_CLK_CORE_DIV]	= imx_clk_hw_divider_flags("divcore",	"scs_sel",  base + 0x14, 16, 4, CLK_SET_RATE_PARENT);
 	clks[IMX7ULP_CLK_HSRUN_CORE_DIV] = imx_clk_hw_divider_flags("hsrun_divcore", "hsrun_scs_sel", base + 0x1c, 16, 4, CLK_SET_RATE_PARENT);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk-imx8mq.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk-imx8mq.c
@@ -157,10 +157,10 @@
 					 "audio_pll2_out", "sys1_pll_266m", "sys3_pll_out", "sys1_pll_100m", };
 
 static const char * const imx8mq_usdhc1_sels[] = {"osc_25m", "sys1_pll_400m", "sys1_pll_800m", "sys2_pll_500m",
-					 "audio_pll2_out", "sys1_pll_266m", "sys3_pll_out", "sys1_pll_100m", };
+					 "sys3_pll_out", "sys1_pll_266m", "audio_pll2_out", "sys1_pll_100m", };
 
 static const char * const imx8mq_usdhc2_sels[] = {"osc_25m", "sys1_pll_400m", "sys1_pll_800m", "sys2_pll_500m",
-					 "audio_pll2_out", "sys1_pll_266m", "sys3_pll_out", "sys1_pll_100m", };
+					 "sys3_pll_out", "sys1_pll_266m", "audio_pll2_out", "sys1_pll_100m", };
 
 static const char * const imx8mq_i2c1_sels[] = {"osc_25m", "sys1_pll_160m", "sys2_pll_50m", "sys3_pll_out", "audio_pll1_out",
 					 "video_pll1_out", "audio_pll2_out", "sys1_pll_133m", };
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk-pfdv2.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk-pfdv2.c
@@ -139,6 +139,12 @@
 	u32 val;
 	u8 frac;
 
+	if (!rate)
+		return -EINVAL;
+
+	/* PFD can NOT change rate without gating */
+	WARN_ON(clk_pfdv2_is_enabled(hw));
+
 	tmp = tmp * 18 + rate / 2;
 	do_div(tmp, rate);
 	frac = tmp;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk-pll14xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk-pll14xx.c
@@ -112,48 +112,22 @@
 	return fvco;
 }
 
-static inline bool clk_pll1416x_mp_change(const struct imx_pll14xx_rate_table *rate,
+static inline bool clk_pll14xx_mp_change(const struct imx_pll14xx_rate_table *rate,
 					  u32 pll_div)
 {
 	u32 old_mdiv, old_pdiv;
 
-	old_mdiv = (pll_div >> MDIV_SHIFT) & MDIV_MASK;
-	old_pdiv = (pll_div >> PDIV_SHIFT) & PDIV_MASK;
+	old_mdiv = (pll_div & MDIV_MASK) >> MDIV_SHIFT;
+	old_pdiv = (pll_div & PDIV_MASK) >> PDIV_SHIFT;
 
 	return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv;
 }
 
-static inline bool clk_pll1443x_mpk_change(const struct imx_pll14xx_rate_table *rate,
-					  u32 pll_div_ctl0, u32 pll_div_ctl1)
-{
-	u32 old_mdiv, old_pdiv, old_kdiv;
-
-	old_mdiv = (pll_div_ctl0 >> MDIV_SHIFT) & MDIV_MASK;
-	old_pdiv = (pll_div_ctl0 >> PDIV_SHIFT) & PDIV_MASK;
-	old_kdiv = (pll_div_ctl1 >> KDIV_SHIFT) & KDIV_MASK;
-
-	return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv ||
-		rate->kdiv != old_kdiv;
-}
-
-static inline bool clk_pll1443x_mp_change(const struct imx_pll14xx_rate_table *rate,
-					  u32 pll_div_ctl0, u32 pll_div_ctl1)
-{
-	u32 old_mdiv, old_pdiv, old_kdiv;
-
-	old_mdiv = (pll_div_ctl0 >> MDIV_SHIFT) & MDIV_MASK;
-	old_pdiv = (pll_div_ctl0 >> PDIV_SHIFT) & PDIV_MASK;
-	old_kdiv = (pll_div_ctl1 >> KDIV_SHIFT) & KDIV_MASK;
-
-	return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv ||
-		rate->kdiv != old_kdiv;
-}
-
 static int clk_pll14xx_wait_lock(struct clk_pll14xx *pll)
 {
 	u32 val;
 
-	return readl_poll_timeout(pll->base, val, val & LOCK_TIMEOUT_US, 0,
+	return readl_poll_timeout(pll->base, val, val & LOCK_STATUS, 0,
 			LOCK_TIMEOUT_US);
 }
 
@@ -174,7 +148,7 @@
 
 	tmp = readl_relaxed(pll->base + 4);
 
-	if (!clk_pll1416x_mp_change(rate, tmp)) {
+	if (!clk_pll14xx_mp_change(rate, tmp)) {
 		tmp &= ~(SDIV_MASK) << SDIV_SHIFT;
 		tmp |= rate->sdiv << SDIV_SHIFT;
 		writel_relaxed(tmp, pll->base + 4);
@@ -239,13 +213,15 @@
 	}
 
 	tmp = readl_relaxed(pll->base + 4);
-	div_val = readl_relaxed(pll->base + 8);
 
-	if (!clk_pll1443x_mpk_change(rate, tmp, div_val)) {
+	if (!clk_pll14xx_mp_change(rate, tmp)) {
 		tmp &= ~(SDIV_MASK) << SDIV_SHIFT;
 		tmp |= rate->sdiv << SDIV_SHIFT;
 		writel_relaxed(tmp, pll->base + 4);
 
+		tmp = rate->kdiv << KDIV_SHIFT;
+		writel_relaxed(tmp, pll->base + 8);
+
 		return 0;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk-scu.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk-scu.c
@@ -43,12 +43,12 @@
 	__le32 rate;
 	__le16 resource;
 	u8 clk;
-} __packed;
+} __packed __aligned(4);
 
 struct req_get_clock_rate {
 	__le16 resource;
 	u8 clk;
-} __packed;
+} __packed __aligned(4);
 
 struct resp_get_clock_rate {
 	__le32 rate;
@@ -84,7 +84,7 @@
 		struct req_get_clock_parent {
 			__le16 resource;
 			u8 clk;
-		} __packed req;
+		} __packed __aligned(4) req;
 		struct resp_get_clock_parent {
 			u8 parent;
 		} resp;
@@ -121,7 +121,7 @@
 	u8 clk;
 	u8 enable;
 	u8 autog;
-} __packed;
+} __packed __aligned(4);
 
 static inline struct clk_scu *to_clk_scu(struct clk_hw *hw)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/imx/clk.h
+++ linux-gkeop-5.4-5.4.0/drivers/clk/imx/clk.h
@@ -51,48 +51,48 @@
 };
 
 #define imx_clk_cpu(name, parent_name, div, mux, pll, step) \
-	imx_clk_hw_cpu(name, parent_name, div, mux, pll, step)->clk
+	to_clk(imx_clk_hw_cpu(name, parent_name, div, mux, pll, step))
 
 #define clk_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
 				cgr_val, clk_gate_flags, lock, share_count) \
-	clk_hw_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
-				cgr_val, clk_gate_flags, lock, share_count)->clk
+	to_clk(clk_hw_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
+				cgr_val, clk_gate_flags, lock, share_count))
 
 #define imx_clk_pllv3(type, name, parent_name, base, div_mask) \
-	imx_clk_hw_pllv3(type, name, parent_name, base, div_mask)->clk
+	to_clk(imx_clk_hw_pllv3(type, name, parent_name, base, div_mask))
 
 #define imx_clk_pfd(name, parent_name, reg, idx) \
-	imx_clk_hw_pfd(name, parent_name, reg, idx)->clk
+	to_clk(imx_clk_hw_pfd(name, parent_name, reg, idx))
 
 #define imx_clk_gate_exclusive(name, parent, reg, shift, exclusive_mask) \
-	imx_clk_hw_gate_exclusive(name, parent, reg, shift, exclusive_mask)->clk
+	to_clk(imx_clk_hw_gate_exclusive(name, parent, reg, shift, exclusive_mask))
 
 #define imx_clk_fixed_factor(name, parent, mult, div) \
-	imx_clk_hw_fixed_factor(name, parent, mult, div)->clk
+	to_clk(imx_clk_hw_fixed_factor(name, parent, mult, div))
 
 #define imx_clk_divider2(name, parent, reg, shift, width) \
-	imx_clk_hw_divider2(name, parent, reg, shift, width)->clk
+	to_clk(imx_clk_hw_divider2(name, parent, reg, shift, width))
 
 #define imx_clk_gate_dis(name, parent, reg, shift) \
-	imx_clk_hw_gate_dis(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate_dis(name, parent, reg, shift))
 
 #define imx_clk_gate2(name, parent, reg, shift) \
-	imx_clk_hw_gate2(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate2(name, parent, reg, shift))
 
 #define imx_clk_gate2_flags(name, parent, reg, shift, flags) \
-	imx_clk_hw_gate2_flags(name, parent, reg, shift, flags)->clk
+	to_clk(imx_clk_hw_gate2_flags(name, parent, reg, shift, flags))
 
 #define imx_clk_gate2_shared2(name, parent, reg, shift, share_count) \
-	imx_clk_hw_gate2_shared2(name, parent, reg, shift, share_count)->clk
+	to_clk(imx_clk_hw_gate2_shared2(name, parent, reg, shift, share_count))
 
 #define imx_clk_gate3(name, parent, reg, shift) \
-	imx_clk_hw_gate3(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate3(name, parent, reg, shift))
 
 #define imx_clk_gate4(name, parent, reg, shift) \
-	imx_clk_hw_gate4(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate4(name, parent, reg, shift))
 
 #define imx_clk_mux(name, reg, shift, width, parents, num_parents) \
-	imx_clk_hw_mux(name, reg, shift, width, parents, num_parents)->clk
+	to_clk(imx_clk_hw_mux(name, reg, shift, width, parents, num_parents))
 
 struct clk *imx_clk_pll14xx(const char *name, const char *parent_name,
 		 void __iomem *base, const struct imx_pll14xx_clk *pll_clk);
@@ -195,6 +195,13 @@
 			      u8 shift, u8 width, const char * const *parents,
 			      int num_parents, void (*fixup)(u32 *val));
 
+static inline struct clk *to_clk(struct clk_hw *hw)
+{
+	if (IS_ERR_OR_NULL(hw))
+		return ERR_CAST(hw);
+	return hw->clk;
+}
+
 static inline struct clk *imx_clk_fixed(const char *name, int rate)
 {
 	return clk_register_fixed_rate(NULL, name, NULL, 0, rate);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ingenic/cgu.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ingenic/cgu.c
@@ -393,15 +393,21 @@
 ingenic_clk_calc_hw_div(const struct ingenic_cgu_clk_info *clk_info,
 			unsigned int div)
 {
-	unsigned int i;
+	unsigned int i, best_i = 0, best = (unsigned int)-1;
 
 	for (i = 0; i < (1 << clk_info->div.bits)
 				&& clk_info->div.div_table[i]; i++) {
-		if (clk_info->div.div_table[i] >= div)
-			return i;
+		if (clk_info->div.div_table[i] >= div &&
+		    clk_info->div.div_table[i] < best) {
+			best = clk_info->div.div_table[i];
+			best_i = i;
+
+			if (div == best)
+				break;
+		}
 	}
 
-	return i - 1;
+	return best_i;
 }
 
 static unsigned
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ingenic/jz4770-cgu.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ingenic/jz4770-cgu.c
@@ -432,8 +432,10 @@
 
 	cgu = ingenic_cgu_new(jz4770_cgu_clocks,
 			      ARRAY_SIZE(jz4770_cgu_clocks), np);
-	if (!cgu)
+	if (!cgu) {
 		pr_err("%s: failed to initialise CGU\n", __func__);
+		return;
+	}
 
 	retval = ingenic_cgu_register_clocks(cgu);
 	if (retval)
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ingenic/tcu.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ingenic/tcu.c
@@ -189,7 +189,7 @@
 	u8 prescale;
 
 	if (req_rate > rate)
-		return -EINVAL;
+		return rate;
 
 	prescale = ingenic_tcu_get_prescale(rate, req_rate);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/keystone/sci-clk.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/keystone/sci-clk.c
@@ -522,7 +522,7 @@
 		np = of_find_node_with_property(np, *clk_name);
 		if (!np) {
 			clk_name++;
-			break;
+			continue;
 		}
 
 		if (!of_device_is_available(np))
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/mediatek/clk-mt6779.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/mediatek/clk-mt6779.c
@@ -919,6 +919,8 @@
 		    "pwm_sel", 19),
 	GATE_INFRA0(CLK_INFRA_PWM, "infra_pwm",
 		    "pwm_sel", 21),
+	GATE_INFRA0(CLK_INFRA_UART0, "infra_uart0",
+		    "uart_sel", 22),
 	GATE_INFRA0(CLK_INFRA_UART1, "infra_uart1",
 		    "uart_sel", 23),
 	GATE_INFRA0(CLK_INFRA_UART2, "infra_uart2",
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/mediatek/clk-mux.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/mediatek/clk-mux.c
@@ -160,7 +160,7 @@
 				 spinlock_t *lock)
 {
 	struct mtk_clk_mux *clk_mux;
-	struct clk_init_data init;
+	struct clk_init_data init = {};
 	struct clk *clk;
 
 	clk_mux = kzalloc(sizeof(*clk_mux), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/meson/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/clk/meson/Kconfig
@@ -103,6 +103,7 @@
 	select COMMON_CLK_MESON_AO_CLKC
 	select COMMON_CLK_MESON_EE_CLKC
 	select COMMON_CLK_MESON_CPU_DYNDIV
+	select COMMON_CLK_MESON_VID_PLL_DIV
 	select MFD_SYSCON
 	help
 	  Support for the clock controller on Amlogic S905D2, S905X2 and S905Y2
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/meson/axg-audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/meson/axg-audio.c
@@ -1001,7 +1001,7 @@
 	.reg_bits	= 32,
 	.val_bits	= 32,
 	.reg_stride	= 4,
-	.max_register	= AUDIO_CLK_PDMIN_CTRL1,
+	.max_register	= AUDIO_CLK_SPDIFOUT_B_CTRL,
 };
 
 struct audioclk_data {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/meson/clk-pll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/meson/clk-pll.c
@@ -77,6 +77,15 @@
 	unsigned int m, n, frac;
 
 	n = meson_parm_read(clk->map, &pll->n);
+
+	/*
+	 * On some HW, N is set to zero on init. This value is invalid as
+	 * it would result in a division by zero. The rate can't be
+	 * calculated in this case
+	 */
+	if (n == 0)
+		return 0;
+
 	m = meson_parm_read(clk->map, &pll->m);
 
 	frac = MESON_PARM_APPLICABLE(&pll->frac) ?
@@ -354,13 +363,14 @@
 {
 	struct clk_regmap *clk = to_clk_regmap(hw);
 	struct meson_clk_pll_data *pll = meson_clk_pll_data(clk);
-	unsigned int enabled, m, n, frac = 0, ret;
+	unsigned int enabled, m, n, frac = 0;
 	unsigned long old_rate;
+	int ret;
 
 	if (parent_rate == 0 || rate == 0)
 		return -EINVAL;
 
-	old_rate = rate;
+	old_rate = clk_hw_get_rate(hw);
 
 	ret = meson_clk_get_pll_settings(rate, parent_rate, &m, &n, pll);
 	if (ret)
@@ -382,7 +392,8 @@
 	if (!enabled)
 		return 0;
 
-	if (meson_clk_pll_enable(hw)) {
+	ret = meson_clk_pll_enable(hw);
+	if (ret) {
 		pr_warn("%s: pll did not lock, trying to restore old rate %lu\n",
 			__func__, old_rate);
 		/*
@@ -394,7 +405,7 @@
 		meson_clk_pll_set_rate(hw, old_rate, parent_rate);
 	}
 
-	return 0;
+	return ret;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/meson/g12a.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/meson/g12a.c
@@ -298,6 +298,17 @@
 			&g12a_fclk_div2_div.hw
 		},
 		.num_parents = 1,
+		/*
+		 * Similar to fclk_div3, it seems that this clock is used by
+		 * the resident firmware and is required by the platform to
+		 * operate correctly.
+		 * Until the following condition are met, we need this clock to
+		 * be marked as critical:
+		 * a) Mark the clock used by a firmware resource, if possible
+		 * b) CCF has a clock hand-off mechanism to make the sure the
+		 *    clock stays on until the proper driver comes along
+		 */
+		.flags = CLK_IS_CRITICAL,
 	},
 };
 
@@ -4692,6 +4703,7 @@
 	&g12a_bt656,
 	&g12a_usb1_to_ddr,
 	&g12a_mmc_pclk,
+	&g12a_uart2,
 	&g12a_vpu_intr,
 	&g12a_gic,
 	&g12a_sd_emmc_a_clk0,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/meson/meson8b.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/meson/meson8b.c
@@ -1071,7 +1071,7 @@
 		 * Meson8m2: vid2_pll
 		 */
 		.parent_hws = (const struct clk_hw *[]) {
-			&meson8b_hdmi_pll_dco.hw
+			&meson8b_hdmi_pll_lvds_out.hw
 		},
 		.num_parents = 1,
 		.flags = CLK_SET_RATE_PARENT,
@@ -1207,7 +1207,7 @@
 
 static struct clk_regmap meson8b_vclk_div1_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 0,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1237,7 +1237,7 @@
 
 static struct clk_regmap meson8b_vclk_div2_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 1,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1267,7 +1267,7 @@
 
 static struct clk_regmap meson8b_vclk_div4_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 2,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1297,7 +1297,7 @@
 
 static struct clk_regmap meson8b_vclk_div6_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 3,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1327,7 +1327,7 @@
 
 static struct clk_regmap meson8b_vclk_div12_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 4,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1764,8 +1764,11 @@
 
 /*
  * The MALI IP is clocked by two identical clocks (mali_0 and mali_1)
- * muxed by a glitch-free switch on Meson8b and Meson8m2. Meson8 only
- * has mali_0 and no glitch-free mux.
+ * muxed by a glitch-free switch on Meson8b and Meson8m2. The CCF can
+ * actually manage this glitch-free mux because it does top-to-bottom
+ * updates the each clock tree and switches to the "inactive" one when
+ * CLK_SET_RATE_GATE is set.
+ * Meson8 only has mali_0 and no glitch-free mux.
  */
 static const struct clk_hw *meson8b_mali_0_1_parent_hws[] = {
 	&meson8b_xtal.hw,
@@ -1830,7 +1833,7 @@
 			&meson8b_mali_0_div.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT,
+		.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT,
 	},
 };
 
@@ -1885,7 +1888,7 @@
 			&meson8b_mali_1_div.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT,
+		.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT,
 	},
 };
 
@@ -1907,6 +1910,13 @@
 	},
 };
 
+static const struct reg_sequence meson8m2_gp_pll_init_regs[] = {
+	{ .reg = HHI_GP_PLL_CNTL2,	.def = 0x59c88000 },
+	{ .reg = HHI_GP_PLL_CNTL3,	.def = 0xca463823 },
+	{ .reg = HHI_GP_PLL_CNTL4,	.def = 0x0286a027 },
+	{ .reg = HHI_GP_PLL_CNTL5,	.def = 0x00003000 },
+};
+
 static const struct pll_params_table meson8m2_gp_pll_params_table[] = {
 	PLL_PARAMS(182, 3),
 	{ /* sentinel */ },
@@ -1940,6 +1950,8 @@
 			.width   = 1,
 		},
 		.table = meson8m2_gp_pll_params_table,
+		.init_regs = meson8m2_gp_pll_init_regs,
+		.init_count = ARRAY_SIZE(meson8m2_gp_pll_init_regs),
 	},
 	.hw.init = &(struct clk_init_data){
 		.name = "gp_pll_dco",
@@ -3488,54 +3500,87 @@
 static const struct meson8b_clk_reset_line {
 	u32 reg;
 	u8 bit_idx;
+	bool active_low;
 } meson8b_clk_reset_bits[] = {
 	[CLKC_RESET_L2_CACHE_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 30
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 30,
+		.active_low = false,
 	},
 	[CLKC_RESET_AXI_64_TO_128_BRIDGE_A5_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 29
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 29,
+		.active_low = false,
 	},
 	[CLKC_RESET_SCU_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 28
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 28,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU3_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 27
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 27,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU2_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 26
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 26,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU1_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 25
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 25,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU0_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 24
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 24,
+		.active_low = false,
 	},
 	[CLKC_RESET_A5_GLOBAL_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 18
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 18,
+		.active_low = false,
 	},
 	[CLKC_RESET_A5_AXI_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 17
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 17,
+		.active_low = false,
 	},
 	[CLKC_RESET_A5_ABP_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 16
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 16,
+		.active_low = false,
 	},
 	[CLKC_RESET_AXI_64_TO_128_BRIDGE_MMC_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL1, .bit_idx = 30
+		.reg = HHI_SYS_CPU_CLK_CNTL1,
+		.bit_idx = 30,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_CLK_CNTL_SOFT_RESET] = {
-		.reg = HHI_VID_CLK_CNTL, .bit_idx = 15
+		.reg = HHI_VID_CLK_CNTL,
+		.bit_idx = 15,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_POST] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 7
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 7,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_PRE] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 3
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 3,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_POST] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 1
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 1,
+		.active_low = true,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_PRE] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 0
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 0,
+		.active_low = true,
 	},
 };
 
@@ -3544,22 +3589,22 @@
 {
 	struct meson8b_clk_reset *meson8b_clk_reset =
 		container_of(rcdev, struct meson8b_clk_reset, reset);
-	unsigned long flags;
 	const struct meson8b_clk_reset_line *reset;
+	unsigned int value = 0;
+	unsigned long flags;
 
 	if (id >= ARRAY_SIZE(meson8b_clk_reset_bits))
 		return -EINVAL;
 
 	reset = &meson8b_clk_reset_bits[id];
 
+	if (assert != reset->active_low)
+		value = BIT(reset->bit_idx);
+
 	spin_lock_irqsave(&meson_clk_lock, flags);
 
-	if (assert)
-		regmap_update_bits(meson8b_clk_reset->regmap, reset->reg,
-				   BIT(reset->bit_idx), BIT(reset->bit_idx));
-	else
-		regmap_update_bits(meson8b_clk_reset->regmap, reset->reg,
-				   BIT(reset->bit_idx), 0);
+	regmap_update_bits(meson8b_clk_reset->regmap, reset->reg,
+			   BIT(reset->bit_idx), value);
 
 	spin_unlock_irqrestore(&meson_clk_lock, flags);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/meson/meson8b.h
+++ linux-gkeop-5.4-5.4.0/drivers/clk/meson/meson8b.h
@@ -20,6 +20,10 @@
  * [0] http://dn.odroid.com/S805/Datasheet/S805_Datasheet%20V0.8%2020150126.pdf
  */
 #define HHI_GP_PLL_CNTL			0x40  /* 0x10 offset in data sheet */
+#define HHI_GP_PLL_CNTL2		0x44  /* 0x11 offset in data sheet */
+#define HHI_GP_PLL_CNTL3		0x48  /* 0x12 offset in data sheet */
+#define HHI_GP_PLL_CNTL4		0x4C  /* 0x13 offset in data sheet */
+#define HHI_GP_PLL_CNTL5		0x50  /* 0x14 offset in data sheet */
 #define HHI_VIID_CLK_DIV		0x128 /* 0x4a offset in data sheet */
 #define HHI_VIID_CLK_CNTL		0x12c /* 0x4b offset in data sheet */
 #define HHI_GCLK_MPEG0			0x140 /* 0x50 offset in data sheet */
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/mmp/clk-of-mmp2.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/mmp/clk-of-mmp2.c
@@ -134,7 +134,7 @@
 static const char *ssp_parent_names[] = {"vctcxo_4", "vctcxo_2", "vctcxo", "pll1_16"};
 
 static DEFINE_SPINLOCK(timer_lock);
-static const char *timer_parent_names[] = {"clk32", "vctcxo_2", "vctcxo_4", "vctcxo"};
+static const char *timer_parent_names[] = {"clk32", "vctcxo_4", "vctcxo_2", "vctcxo"};
 
 static DEFINE_SPINLOCK(reset_lock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/mvebu/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/clk/mvebu/Kconfig
@@ -42,6 +42,7 @@
 
 config ARMADA_AP_CPU_CLK
 	bool
+	select ARMADA_AP_CP_HELPER
 
 config ARMADA_CP110_SYSCON
 	bool
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/mvebu/armada-37xx-xtal.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/mvebu/armada-37xx-xtal.c
@@ -13,8 +13,8 @@
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 
-#define NB_GPIO1_LATCH	0xC
-#define XTAL_MODE	    BIT(31)
+#define NB_GPIO1_LATCH	0x8
+#define XTAL_MODE	    BIT(9)
 
 static int armada_3700_xtal_clock_probe(struct platform_device *pdev)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/pxa/clk-pxa27x.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/pxa/clk-pxa27x.c
@@ -459,6 +459,7 @@
 };
 static struct dummy_clk dummy_clks[] __initdata = {
 	DUMMY_CLK(NULL, "pxa27x-gpio", "osc_32_768khz"),
+	DUMMY_CLK(NULL, "pxa-rtc", "osc_32_768khz"),
 	DUMMY_CLK(NULL, "sa1100-rtc", "osc_32_768khz"),
 	DUMMY_CLK("UARTCLK", "pxa2xx-ir", "STUART"),
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/clk-alpha-pll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/clk-alpha-pll.c
@@ -55,7 +55,6 @@
 #define PLL_STATUS(p)		((p)->offset + (p)->regs[PLL_OFF_STATUS])
 #define PLL_OPMODE(p)		((p)->offset + (p)->regs[PLL_OFF_OPMODE])
 #define PLL_FRAC(p)		((p)->offset + (p)->regs[PLL_OFF_FRAC])
-#define PLL_CAL_VAL(p)		((p)->offset + (p)->regs[PLL_OFF_CAL_VAL])
 
 const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = {
 	[CLK_ALPHA_PLL_TYPE_DEFAULT] =  {
@@ -114,7 +113,6 @@
 		[PLL_OFF_STATUS] = 0x30,
 		[PLL_OFF_OPMODE] = 0x38,
 		[PLL_OFF_ALPHA_VAL] = 0x40,
-		[PLL_OFF_CAL_VAL] = 0x44,
 	},
 };
 EXPORT_SYMBOL_GPL(clk_alpha_pll_regs);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/clk-rcg2.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/clk-rcg2.c
@@ -217,9 +217,14 @@
 
 	clk_flags = clk_hw_get_flags(hw);
 	p = clk_hw_get_parent_by_index(hw, index);
+	if (!p)
+		return -EINVAL;
+
 	if (clk_flags & CLK_SET_RATE_PARENT) {
 		rate = f->freq;
 		if (f->pre_div) {
+			if (!rate)
+				rate = req->rate;
 			rate /= 2;
 			rate *= f->pre_div + 1;
 		}
@@ -950,7 +955,7 @@
 	struct clk_rcg2 *rcg = to_clk_rcg2(hw);
 	struct clk_hw *p;
 	unsigned long prate = 0;
-	u32 val, mask, cfg, mode;
+	u32 val, mask, cfg, mode, src;
 	int i, num_parents;
 
 	regmap_read(rcg->clkr.regmap, rcg->cmd_rcgr + SE_PERF_DFSR(l), &cfg);
@@ -960,12 +965,12 @@
 	if (cfg & mask)
 		f->pre_div = cfg & mask;
 
-	cfg &= CFG_SRC_SEL_MASK;
-	cfg >>= CFG_SRC_SEL_SHIFT;
+	src = cfg & CFG_SRC_SEL_MASK;
+	src >>= CFG_SRC_SEL_SHIFT;
 
 	num_parents = clk_hw_get_num_parents(hw);
 	for (i = 0; i < num_parents; i++) {
-		if (cfg == rcg->parent_map[i].cfg) {
+		if (src == rcg->parent_map[i].cfg) {
 			f->src = rcg->parent_map[i].src;
 			p = clk_hw_get_parent_by_index(&rcg->clkr.hw, i);
 			prate = clk_hw_get_rate(p);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/clk-rpmh.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/clk-rpmh.c
@@ -143,12 +143,22 @@
 		!= (c->aggr_state & BIT(state));
 }
 
+static int clk_rpmh_send(struct clk_rpmh *c, enum rpmh_state state,
+			 struct tcs_cmd *cmd, bool wait)
+{
+	if (wait)
+		return rpmh_write(c->dev, state, cmd, 1);
+
+	return rpmh_write_async(c->dev, state, cmd, 1);
+}
+
 static int clk_rpmh_send_aggregate_command(struct clk_rpmh *c)
 {
 	struct tcs_cmd cmd = { 0 };
 	u32 cmd_state, on_val;
 	enum rpmh_state state = RPMH_SLEEP_STATE;
 	int ret;
+	bool wait;
 
 	cmd.addr = c->res_addr;
 	cmd_state = c->aggr_state;
@@ -159,7 +169,8 @@
 			if (cmd_state & BIT(state))
 				cmd.data = on_val;
 
-			ret = rpmh_write_async(c->dev, state, &cmd, 1);
+			wait = cmd_state && state == RPMH_ACTIVE_ONLY_STATE;
+			ret = clk_rpmh_send(c, state, &cmd, wait);
 			if (ret) {
 				dev_err(c->dev, "set %s state of %s failed: (%d)\n",
 					!state ? "sleep" :
@@ -267,7 +278,7 @@
 	cmd.addr = c->res_addr;
 	cmd.data = BCM_TCS_CMD(1, enable, 0, cmd_state);
 
-	ret = rpmh_write_async(c->dev, RPMH_ACTIVE_ONLY_STATE, &cmd, 1);
+	ret = clk_rpmh_send(c, RPMH_ACTIVE_ONLY_STATE, &cmd, enable);
 	if (ret) {
 		dev_err(c->dev, "set active state of %s failed: (%d)\n",
 			c->res_name, ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/clk-smd-rpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/clk-smd-rpm.c
@@ -648,6 +648,8 @@
 };
 
 /* msm8998 */
+DEFINE_CLK_SMD_RPM(msm8998, bimc_clk, bimc_a_clk, QCOM_SMD_RPM_MEM_CLK, 0);
+DEFINE_CLK_SMD_RPM(msm8998, pcnoc_clk, pcnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 0);
 DEFINE_CLK_SMD_RPM(msm8998, snoc_clk, snoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 1);
 DEFINE_CLK_SMD_RPM(msm8998, cnoc_clk, cnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 2);
 DEFINE_CLK_SMD_RPM(msm8998, ce1_clk, ce1_a_clk, QCOM_SMD_RPM_CE_CLK, 0);
@@ -670,6 +672,10 @@
 DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk3, rf_clk3_a, 6);
 DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk3_pin, rf_clk3_a_pin, 6);
 static struct clk_smd_rpm *msm8998_clks[] = {
+	[RPM_SMD_BIMC_CLK] = &msm8998_bimc_clk,
+	[RPM_SMD_BIMC_A_CLK] = &msm8998_bimc_a_clk,
+	[RPM_SMD_PCNOC_CLK] = &msm8998_pcnoc_clk,
+	[RPM_SMD_PCNOC_A_CLK] = &msm8998_pcnoc_a_clk,
 	[RPM_SMD_SNOC_CLK] = &msm8998_snoc_clk,
 	[RPM_SMD_SNOC_A_CLK] = &msm8998_snoc_a_clk,
 	[RPM_SMD_CNOC_CLK] = &msm8998_cnoc_clk,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/common.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/common.c
@@ -29,6 +29,9 @@
 	if (!f)
 		return NULL;
 
+	if (!f->freq)
+		return f;
+
 	for (; f->freq; f++)
 		if (rate <= f->freq)
 			return f;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/gcc-msm8916.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/gcc-msm8916.c
@@ -260,7 +260,7 @@
 	.l_reg = 0x21004,
 	.m_reg = 0x21008,
 	.n_reg = 0x2100c,
-	.config_reg = 0x21014,
+	.config_reg = 0x21010,
 	.mode_reg = 0x21000,
 	.status_reg = 0x2101c,
 	.status_bit = 17,
@@ -287,7 +287,7 @@
 	.l_reg = 0x20004,
 	.m_reg = 0x20008,
 	.n_reg = 0x2000c,
-	.config_reg = 0x20014,
+	.config_reg = 0x20010,
 	.mode_reg = 0x20000,
 	.status_reg = 0x2001c,
 	.status_bit = 17,
@@ -314,7 +314,7 @@
 	.l_reg = 0x4a004,
 	.m_reg = 0x4a008,
 	.n_reg = 0x4a00c,
-	.config_reg = 0x4a014,
+	.config_reg = 0x4a010,
 	.mode_reg = 0x4a000,
 	.status_reg = 0x4a01c,
 	.status_bit = 17,
@@ -341,7 +341,7 @@
 	.l_reg = 0x23004,
 	.m_reg = 0x23008,
 	.n_reg = 0x2300c,
-	.config_reg = 0x23014,
+	.config_reg = 0x23010,
 	.mode_reg = 0x23000,
 	.status_reg = 0x2301c,
 	.status_bit = 17,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/gcc-msm8998.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/gcc-msm8998.c
@@ -135,7 +135,7 @@
 
 static struct clk_alpha_pll gpll0 = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -145,58 +145,58 @@
 			.name = "gpll0",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_even = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_even",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_main = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_main",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_odd = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_odd",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_test = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_test",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll1 = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -206,58 +206,58 @@
 			.name = "gpll1",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_even = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_even",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_main = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_main",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_odd = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_odd",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_test = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_test",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll2 = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -267,58 +267,58 @@
 			.name = "gpll2",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_even = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_even",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_main = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_main",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_odd = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_odd",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_test = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_test",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll3 = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -328,58 +328,58 @@
 			.name = "gpll3",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_even = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_even",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_main = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_main",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_odd = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_odd",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_test = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_test",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll4 = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -389,52 +389,52 @@
 			.name = "gpll4",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_even = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_even",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_main = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_main",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_odd = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_odd",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_test = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_test",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/gcc-sdm660.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/gcc-sdm660.c
@@ -666,7 +666,7 @@
 	.cmd_rcgr = 0x48044,
 	.mnd_width = 0,
 	.hid_width = 5,
-	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
+	.parent_map = gcc_parent_map_xo_gpll0,
 	.freq_tbl = ftbl_hmss_rbcpr_clk_src,
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "hmss_rbcpr_clk_src",
@@ -1715,6 +1715,9 @@
 
 static struct clk_branch gcc_mss_mnoc_bimc_axi_clk = {
 	.halt_reg = 0x8a004,
+	.halt_check = BRANCH_HALT,
+	.hwcg_reg = 0x8a004,
+	.hwcg_bit = 1,
 	.clkr = {
 		.enable_reg = 0x8a004,
 		.enable_mask = BIT(0),
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/gcc-sdm845.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/gcc-sdm845.c
@@ -3255,6 +3255,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
@@ -3263,6 +3264,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
@@ -3271,6 +3273,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
@@ -3279,6 +3282,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
@@ -3287,6 +3291,7 @@
 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
@@ -3295,6 +3300,7 @@
 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
@@ -3303,6 +3309,7 @@
 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct clk_regmap *gcc_sdm845_clocks[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/qcom/gcc-sm8150.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/qcom/gcc-sm8150.c
@@ -75,8 +75,7 @@
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_even",
 		.parent_data = &(const struct clk_parent_data){
-			.fw_name = "bi_tcxo",
-			.name = "bi_tcxo",
+			.hw = &gpll0.clkr.hw,
 		},
 		.num_parents = 1,
 		.ops = &clk_trion_pll_postdiv_ops,
@@ -1616,6 +1615,38 @@
 	},
 };
 
+static struct clk_branch gcc_gpu_gpll0_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(15),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_gpu_gpll0_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(16),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_gpu_gpll0_div_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0_out_even.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_gpu_iref_clk = {
 	.halt_reg = 0x8c010,
 	.halt_check = BRANCH_HALT,
@@ -1698,6 +1729,38 @@
 	},
 };
 
+static struct clk_branch gcc_npu_gpll0_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(18),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_npu_gpll0_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch gcc_npu_gpll0_div_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(19),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_npu_gpll0_div_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0_out_even.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_npu_trig_clk = {
 	.halt_reg = 0x4d00c,
 	.halt_check = BRANCH_VOTED,
@@ -2812,6 +2875,45 @@
 	},
 };
 
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x7501c,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_card_rx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x750ac,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_card_rx_symbol_1_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x75018,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_card_tx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_ufs_card_unipro_core_clk = {
 	.halt_reg = 0x75058,
 	.halt_check = BRANCH_HALT,
@@ -2992,6 +3094,45 @@
 	},
 };
 
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x7701c,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_phy_rx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x770ac,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_phy_rx_symbol_1_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x77018,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_phy_tx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
 	.halt_reg = 0x77058,
 	.halt_check = BRANCH_HALT,
@@ -3332,12 +3473,16 @@
 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
 	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
+	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
+	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
 	[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
 	[GCC_NPU_AT_CLK] = &gcc_npu_at_clk.clkr,
 	[GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr,
 	[GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr,
+	[GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr,
+	[GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr,
 	[GCC_NPU_TRIG_CLK] = &gcc_npu_trig_clk.clkr,
 	[GCC_PCIE0_PHY_REFGEN_CLK] = &gcc_pcie0_phy_refgen_clk.clkr,
 	[GCC_PCIE1_PHY_REFGEN_CLK] = &gcc_pcie1_phy_refgen_clk.clkr,
@@ -3442,6 +3587,9 @@
 	[GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
 	[GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] =
 		&gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
+	[GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
+	[GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
+	[GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
 	[GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
 	[GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] =
 		&gcc_ufs_card_unipro_core_clk_src.clkr,
@@ -3459,6 +3607,9 @@
 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
 	[GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
+	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
+	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
+	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
 		&gcc_ufs_phy_unipro_core_clk_src.clkr,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/renesas/r9a06g032-clocks.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/renesas/r9a06g032-clocks.c
@@ -55,7 +55,7 @@
 			u16 sel, g1, r1, g2, r2;
 		} dual;
 	};
-} __packed;
+};
 
 #define I_GATE(_clk, _rst, _rdy, _midle, _scon, _mirack, _mistat) \
 	{ .gate = _clk, .reset = _rst, \
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/renesas/rcar-gen3-cpg.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/renesas/rcar-gen3-cpg.c
@@ -464,7 +464,8 @@
 
 	clk = clk_register_composite(NULL, name, &parent_name, 1, NULL, NULL,
 				     &rpc->div.hw,  &clk_divider_ops,
-				     &rpc->gate.hw, &clk_gate_ops, 0);
+				     &rpc->gate.hw, &clk_gate_ops,
+				     CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk)) {
 		kfree(rpc);
 		return clk;
@@ -500,7 +501,8 @@
 
 	clk = clk_register_composite(NULL, name, &parent_name, 1, NULL, NULL,
 				     &rpcd2->fixed.hw, &clk_fixed_factor_ops,
-				     &rpcd2->gate.hw, &clk_gate_ops, 0);
+				     &rpcd2->gate.hw, &clk_gate_ops,
+				     CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk))
 		kfree(rpcd2);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/renesas/renesas-cpg-mssr.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/renesas/renesas-cpg-mssr.c
@@ -800,7 +800,8 @@
 	/* Save module registers with bits under our control */
 	for (reg = 0; reg < ARRAY_SIZE(priv->smstpcr_saved); reg++) {
 		if (priv->smstpcr_saved[reg].mask)
-			priv->smstpcr_saved[reg].val =
+			priv->smstpcr_saved[reg].val = priv->stbyctrl ?
+				readb(priv->base + STBCR(reg)) :
 				readl(priv->base + SMSTPCR(reg));
 	}
 
@@ -860,8 +861,9 @@
 		}
 
 		if (!i)
-			dev_warn(dev, "Failed to enable SMSTP %p[0x%x]\n",
-				 priv->base + SMSTPCR(reg), oldval & mask);
+			dev_warn(dev, "Failed to enable %s%u[0x%x]\n",
+				 priv->stbyctrl ? "STB" : "SMSTP", reg,
+				 oldval & mask);
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/rockchip/clk-half-divider.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/rockchip/clk-half-divider.c
@@ -167,7 +167,7 @@
 					  unsigned long flags,
 					  spinlock_t *lock)
 {
-	struct clk *clk;
+	struct clk *clk = ERR_PTR(-ENOMEM);
 	struct clk_mux *mux = NULL;
 	struct clk_gate *gate = NULL;
 	struct clk_divider *div = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/rockchip/clk-rk3228.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/rockchip/clk-rk3228.c
@@ -137,7 +137,7 @@
 PNAME(mux_hdmiphy_p)		= { "hdmiphy_phy", "xin24m" };
 PNAME(mux_aclk_cpu_src_p)	= { "cpll_aclk_cpu", "gpll_aclk_cpu", "hdmiphy_aclk_cpu" };
 
-PNAME(mux_pll_src_4plls_p)	= { "cpll", "gpll", "hdmiphy" "usb480m" };
+PNAME(mux_pll_src_4plls_p)	= { "cpll", "gpll", "hdmiphy", "usb480m" };
 PNAME(mux_pll_src_3plls_p)	= { "cpll", "gpll", "hdmiphy" };
 PNAME(mux_pll_src_2plls_p)	= { "cpll", "gpll" };
 PNAME(mux_sclk_hdmi_cec_p)	= { "cpll", "gpll", "xin24m" };
@@ -156,8 +156,6 @@
 PNAME(mux_i2s2_p)		= { "i2s2_src", "i2s2_frac", "xin12m" };
 PNAME(mux_sclk_spdif_p)		= { "sclk_spdif_src", "spdif_frac", "xin12m" };
 
-PNAME(mux_aclk_gpu_pre_p)	= { "cpll_gpu", "gpll_gpu", "hdmiphy_gpu", "usb480m_gpu" };
-
 PNAME(mux_uart0_p)		= { "uart0_src", "uart0_frac", "xin24m" };
 PNAME(mux_uart1_p)		= { "uart1_src", "uart1_frac", "xin24m" };
 PNAME(mux_uart2_p)		= { "uart2_src", "uart2_frac", "xin24m" };
@@ -468,16 +466,9 @@
 			RK2928_CLKSEL_CON(24), 6, 10, DFLAGS,
 			RK2928_CLKGATE_CON(2), 8, GFLAGS),
 
-	GATE(0, "cpll_gpu", "cpll", 0,
-			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	GATE(0, "gpll_gpu", "gpll", 0,
-			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	GATE(0, "hdmiphy_gpu", "hdmiphy", 0,
-			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	GATE(0, "usb480m_gpu", "usb480m", 0,
+	COMPOSITE(0, "aclk_gpu_pre", mux_pll_src_4plls_p, 0,
+			RK2928_CLKSEL_CON(34), 5, 2, MFLAGS, 0, 5, DFLAGS,
 			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	COMPOSITE_NOGATE(0, "aclk_gpu_pre", mux_aclk_gpu_pre_p, 0,
-			RK2928_CLKSEL_CON(34), 5, 2, MFLAGS, 0, 5, DFLAGS),
 
 	COMPOSITE(SCLK_SPI0, "sclk_spi0", mux_pll_src_2plls_p, 0,
 			RK2928_CLKSEL_CON(25), 8, 1, MFLAGS, 0, 7, DFLAGS,
@@ -582,8 +573,8 @@
 	GATE(0, "pclk_peri_noc", "pclk_peri", CLK_IGNORE_UNUSED, RK2928_CLKGATE_CON(12), 2, GFLAGS),
 
 	/* PD_GPU */
-	GATE(ACLK_GPU, "aclk_gpu", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(13), 14, GFLAGS),
-	GATE(0, "aclk_gpu_noc", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(13), 15, GFLAGS),
+	GATE(ACLK_GPU, "aclk_gpu", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(7), 14, GFLAGS),
+	GATE(0, "aclk_gpu_noc", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(7), 15, GFLAGS),
 
 	/* PD_BUS */
 	GATE(0, "sclk_initmem_mbist", "aclk_cpu", 0, RK2928_CLKGATE_CON(8), 1, GFLAGS),
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/samsung/clk-exynos4.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/samsung/clk-exynos4.c
@@ -927,7 +927,7 @@
 	GATE(CLK_PCIE, "pcie", "aclk133", GATE_IP_FSYS, 14, 0, 0),
 	GATE(CLK_SMMU_PCIE, "smmu_pcie", "aclk133", GATE_IP_FSYS, 18, 0, 0),
 	GATE(CLK_MODEMIF, "modemif", "aclk100", GATE_IP_PERIL, 28, 0, 0),
-	GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, 0, 0),
+	GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_SYSREG, "sysreg", "aclk100", E4210_GATE_IP_PERIR, 0,
 			CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4210_GATE_IP_PERIR, 11, 0,
@@ -969,7 +969,7 @@
 		0),
 	GATE(CLK_TSADC, "tsadc", "aclk133", E4X12_GATE_BUS_FSYS1, 16, 0, 0),
 	GATE(CLK_MIPI_HSI, "mipi_hsi", "aclk133", GATE_IP_FSYS, 10, 0, 0),
-	GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, 0, 0),
+	GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_SYSREG, "sysreg", "aclk100", E4X12_GATE_IP_PERIR, 1,
 			CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4X12_GATE_IP_PERIR, 11, 0,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/samsung/clk-exynos5420.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/samsung/clk-exynos5420.c
@@ -12,6 +12,7 @@
 #include <linux/clk-provider.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/clk.h>
 
 #include "clk.h"
 #include "clk-cpu.h"
@@ -165,6 +166,8 @@
 	GATE_BUS_CPU,
 	GATE_SCLK_CPU,
 	CLKOUT_CMU_CPU,
+	APLL_CON0,
+	KPLL_CON0,
 	CPLL_CON0,
 	DPLL_CON0,
 	EPLL_CON0,
@@ -537,7 +540,7 @@
 
 static const struct samsung_gate_clock exynos5800_gate_clks[] __initconst = {
 	GATE(CLK_ACLK550_CAM, "aclk550_cam", "mout_user_aclk550_cam",
-				GATE_BUS_TOP, 24, 0, 0),
+				GATE_BUS_TOP, 24, CLK_IS_CRITICAL, 0),
 	GATE(CLK_ACLK432_SCALER, "aclk432_scaler", "mout_user_aclk432_scaler",
 				GATE_BUS_TOP, 27, CLK_IS_CRITICAL, 0),
 };
@@ -937,25 +940,25 @@
 	GATE(0, "aclk300_jpeg", "mout_user_aclk300_jpeg",
 			GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk333_432_isp0", "mout_user_aclk333_432_isp0",
-			GATE_BUS_TOP, 5, 0, 0),
+			GATE_BUS_TOP, 5, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk300_gscl", "mout_user_aclk300_gscl",
 			GATE_BUS_TOP, 6, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk333_432_gscl", "mout_user_aclk333_432_gscl",
 			GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk333_432_isp", "mout_user_aclk333_432_isp",
-			GATE_BUS_TOP, 8, 0, 0),
+			GATE_BUS_TOP, 8, CLK_IS_CRITICAL, 0),
 	GATE(CLK_PCLK66_GPIO, "pclk66_gpio", "mout_user_pclk66_gpio",
 			GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk66_psgen", "mout_user_aclk66_psgen",
 			GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk266_isp", "mout_user_aclk266_isp",
-			GATE_BUS_TOP, 13, 0, 0),
+			GATE_BUS_TOP, 13, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk166", "mout_user_aclk166",
 			GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_ACLK333, "aclk333", "mout_user_aclk333",
 			GATE_BUS_TOP, 15, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk400_isp", "mout_user_aclk400_isp",
-			GATE_BUS_TOP, 16, 0, 0),
+			GATE_BUS_TOP, 16, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk400_mscl", "mout_user_aclk400_mscl",
 			GATE_BUS_TOP, 17, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk200_disp1", "mout_user_aclk200_disp1",
@@ -1155,8 +1158,10 @@
 			GATE_IP_GSCL1, 3, 0, 0),
 	GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "dout_gscl_blk_333",
 			GATE_IP_GSCL1, 4, 0, 0),
-	GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12, 0, 0),
-	GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13, 0, 0),
+	GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12,
+			CLK_IS_CRITICAL, 0),
+	GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13,
+			CLK_IS_CRITICAL, 0),
 	GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "dout_gscl_blk_333",
 			GATE_IP_GSCL1, 16, 0, 0),
 	GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
@@ -1628,6 +1633,13 @@
 				     exynos5x_subcmus);
 	}
 
+	/*
+	 * Keep top part of G3D clock path enabled permanently to ensure
+	 * that the internal busses get their clock regardless of the
+	 * main G3D clock enablement status.
+	 */
+	clk_prepare_enable(__clk_lookup("mout_sw_aclk_g3d"));
+
 	samsung_clk_of_add_provider(np, ctx);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/samsung/clk-exynos5433.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/samsung/clk-exynos5433.c
@@ -1706,7 +1706,8 @@
 	GATE(CLK_SCLK_PCM1, "sclk_pcm1", "sclk_pcm1_peric",
 			ENABLE_SCLK_PERIC, 7, CLK_SET_RATE_PARENT, 0),
 	GATE(CLK_SCLK_I2S1, "sclk_i2s1", "sclk_i2s1_peric",
-			ENABLE_SCLK_PERIC, 6, CLK_SET_RATE_PARENT, 0),
+			ENABLE_SCLK_PERIC, 6,
+			CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_SCLK_SPI2, "sclk_spi2", "sclk_spi2_peric", ENABLE_SCLK_PERIC,
 			5, CLK_SET_RATE_PARENT, 0),
 	GATE(CLK_SCLK_SPI1, "sclk_spi1", "sclk_spi1_peric", ENABLE_SCLK_PERIC,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sifive/fu540-prci.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sifive/fu540-prci.c
@@ -586,7 +586,10 @@
 	struct __prci_data *pd;
 	int r;
 
-	pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
+	pd = devm_kzalloc(dev,
+			  struct_size(pd, hw_clks.hws,
+				      ARRAY_SIZE(__prci_init_clocks)),
+			  GFP_KERNEL);
 	if (!pd)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sirf/clk-atlas6.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sirf/clk-atlas6.c
@@ -135,7 +135,7 @@
 
 	for (i = pll1; i < maxclk; i++) {
 		atlas6_clks[i] = clk_register(NULL, atlas6_clk_hw_array[i]);
-		BUG_ON(!atlas6_clks[i]);
+		BUG_ON(IS_ERR(atlas6_clks[i]));
 	}
 	clk_register_clkdev(atlas6_clks[cpu], NULL, "cpu");
 	clk_register_clkdev(atlas6_clks[io],  NULL, "io");
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/socfpga/clk-pll-s10.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/socfpga/clk-pll-s10.c
@@ -39,7 +39,9 @@
 	/* read VCO1 reg for numerator and denominator */
 	reg = readl(socfpgaclk->hw.reg);
 	refdiv = (reg & SOCFPGA_PLL_REFDIV_MASK) >> SOCFPGA_PLL_REFDIV_SHIFT;
-	vco_freq = (unsigned long long)parent_rate / refdiv;
+
+	vco_freq = parent_rate;
+	do_div(vco_freq, refdiv);
 
 	/* Read mdiv and fdiv from the fdbck register */
 	reg = readl(socfpgaclk->hw.reg + 0x4);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/socfpga/clk-s10.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/socfpga/clk-s10.c
@@ -107,7 +107,7 @@
 	{ STRATIX10_EMAC_B_FREE_CLK, "emacb_free_clk", NULL, emacb_free_mux, ARRAY_SIZE(emacb_free_mux),
 	  0, 0, 2, 0xB0, 1},
 	{ STRATIX10_EMAC_PTP_FREE_CLK, "emac_ptp_free_clk", NULL, emac_ptp_free_mux,
-	  ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 4, 0xB0, 2},
+	  ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 2, 0xB0, 2},
 	{ STRATIX10_GPIO_DB_FREE_CLK, "gpio_db_free_clk", NULL, gpio_db_free_mux,
 	  ARRAY_SIZE(gpio_db_free_mux), 0, 0, 0, 0xB0, 3},
 	{ STRATIX10_SDMMC_FREE_CLK, "sdmmc_free_clk", NULL, sdmmc_free_mux,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sprd/common.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sprd/common.c
@@ -46,7 +46,7 @@
 
 	if (of_find_property(node, "sprd,syscon", NULL)) {
 		regmap = syscon_regmap_lookup_by_phandle(node, "sprd,syscon");
-		if (IS_ERR_OR_NULL(regmap)) {
+		if (IS_ERR(regmap)) {
 			pr_err("%s: failed to get syscon regmap\n", __func__);
 			return PTR_ERR(regmap);
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sprd/pll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sprd/pll.c
@@ -105,7 +105,7 @@
 
 	cfg = kcalloc(regs_num, sizeof(*cfg), GFP_KERNEL);
 	if (!cfg)
-		return -ENOMEM;
+		return parent_rate;
 
 	for (i = 0; i < regs_num; i++)
 		cfg[i] = sprd_pll_read(pll, i);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/st/clk-flexgen.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/st/clk-flexgen.c
@@ -375,6 +375,7 @@
 			break;
 		}
 
+		flex_flags &= ~CLK_IS_CRITICAL;
 		of_clk_detect_critical(np, i, &flex_flags);
 
 		/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun50i-a64.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun50i-a64.c
@@ -389,6 +389,7 @@
 	{ .val = 1, .div = 2 },
 	{ .val = 2, .div = 4 },
 	{ .val = 3, .div = 6 },
+	{ /* Sentinel */ },
 };
 static const char * const ths_parents[] = { "osc24M" };
 static struct ccu_div ths_clk = {
@@ -921,11 +922,26 @@
 	.num_resets	= ARRAY_SIZE(sun50i_a64_ccu_resets),
 };
 
+static struct ccu_pll_nb sun50i_a64_pll_cpu_nb = {
+	.common	= &pll_cpux_clk.common,
+	/* copy from pll_cpux_clk */
+	.enable	= BIT(31),
+	.lock	= BIT(28),
+};
+
+static struct ccu_mux_nb sun50i_a64_cpu_nb = {
+	.common		= &cpux_clk.common,
+	.cm		= &cpux_clk.mux,
+	.delay_us	= 1, /* > 8 clock cycles at 24 MHz */
+	.bypass_index	= 1, /* index of 24 MHz oscillator */
+};
+
 static int sun50i_a64_ccu_probe(struct platform_device *pdev)
 {
 	struct resource *res;
 	void __iomem *reg;
 	u32 val;
+	int ret;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	reg = devm_ioremap_resource(&pdev->dev, res);
@@ -939,7 +955,18 @@
 
 	writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG);
 
-	return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
+	ret = sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
+	if (ret)
+		return ret;
+
+	/* Gate then ungate PLL CPU after any rate changes */
+	ccu_pll_notifier_register(&sun50i_a64_pll_cpu_nb);
+
+	/* Reparent CPU during PLL CPU rate changes */
+	ccu_mux_notifier_register(pll_cpux_clk.common.hw.clk,
+				  &sun50i_a64_cpu_nb);
+
+	return 0;
 }
 
 static const struct of_device_id sun50i_a64_ccu_ids[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
@@ -23,9 +23,9 @@
  */
 
 static const char * const ar100_r_apb2_parents[] = { "osc24M", "osc32k",
-					     "pll-periph0", "iosc" };
+						     "iosc", "pll-periph0" };
 static const struct ccu_mux_var_prediv ar100_r_apb2_predivs[] = {
-	{ .index = 2, .shift = 0, .width = 5 },
+	{ .index = 3, .shift = 0, .width = 5 },
 };
 
 static struct ccu_div ar100_clk = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
@@ -228,7 +228,7 @@
 static SUNXI_CCU_MP_WITH_MUX(psi_ahb1_ahb2_clk, "psi-ahb1-ahb2",
 			     psi_ahb1_ahb2_parents,
 			     0x510,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
@@ -237,19 +237,19 @@
 						       "psi-ahb1-ahb2",
 						       "pll-periph0" };
 static SUNXI_CCU_MP_WITH_MUX(ahb3_clk, "ahb3", ahb3_apb1_apb2_parents, 0x51c,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
 
 static SUNXI_CCU_MP_WITH_MUX(apb1_clk, "apb1", ahb3_apb1_apb2_parents, 0x520,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
 
 static SUNXI_CCU_MP_WITH_MUX(apb2_clk, "apb2", ahb3_apb1_apb2_parents, 0x524,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
@@ -673,7 +673,7 @@
 
 	.common		= {
 		.reg		= 0xb10,
-		.features	= CCU_FEATURE_VARIABLE_PREDIV,
+		.features	= CCU_FEATURE_FIXED_PREDIV,
 		.hw.init	= CLK_HW_INIT_PARENTS("hdmi-cec",
 						      hdmi_cec_parents,
 						      &ccu_mux_ops,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
@@ -322,6 +322,7 @@
 	{ .val = 1, .div = 2 },
 	{ .val = 2, .div = 4 },
 	{ .val = 3, .div = 6 },
+	{ /* Sentinel */ },
 };
 static SUNXI_CCU_DIV_TABLE_WITH_GATE(ths_clk, "ths", "osc24M",
 				     0x074, 0, 2, ths_div_table, BIT(31), 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-r.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-r.c
@@ -51,19 +51,7 @@
 
 static CLK_FIXED_FACTOR_HW(ahb0_clk, "ahb0", &ar100_clk.common.hw, 1, 1, 0);
 
-static struct ccu_div apb0_clk = {
-	.div		= _SUNXI_CCU_DIV_FLAGS(0, 2, CLK_DIVIDER_POWER_OF_TWO),
-
-	.common		= {
-		.reg		= 0x0c,
-		.hw.init	= CLK_HW_INIT_HW("apb0",
-						 &ahb0_clk.hw,
-						 &ccu_div_ops,
-						 0),
-	},
-};
-
-static SUNXI_CCU_M(a83t_apb0_clk, "apb0", "ahb0", 0x0c, 0, 2, 0);
+static SUNXI_CCU_M(apb0_clk, "apb0", "ahb0", 0x0c, 0, 2, 0);
 
 /*
  * Define the parent as an array that can be reused to save space
@@ -127,7 +115,7 @@
 
 static struct ccu_common *sun8i_a83t_r_ccu_clks[] = {
 	&ar100_clk.common,
-	&a83t_apb0_clk.common,
+	&apb0_clk.common,
 	&apb0_pio_clk.common,
 	&apb0_ir_clk.common,
 	&apb0_timer_clk.common,
@@ -167,7 +155,7 @@
 	.hws	= {
 		[CLK_AR100]		= &ar100_clk.common.hw,
 		[CLK_AHB0]		= &ahb0_clk.hw,
-		[CLK_APB0]		= &a83t_apb0_clk.common.hw,
+		[CLK_APB0]		= &apb0_clk.common.hw,
 		[CLK_APB0_PIO]		= &apb0_pio_clk.common.hw,
 		[CLK_APB0_IR]		= &apb0_ir_clk.common.hw,
 		[CLK_APB0_TIMER]	= &apb0_timer_clk.common.hw,
@@ -282,9 +270,6 @@
 
 static void __init sun8i_a83t_r_ccu_setup(struct device_node *node)
 {
-	/* Fix apb0 bus gate parents here */
-	apb0_gate_parent[0] = &a83t_apb0_clk.common.hw;
-
 	sunxi_r_ccu_init(node, &sun8i_a83t_r_ccu_desc);
 }
 CLK_OF_DECLARE(sun8i_a83t_r_ccu, "allwinner,sun8i-a83t-r-ccu",
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
@@ -761,7 +761,8 @@
 		.reg		= 0x1f0,
 		.features	= CCU_FEATURE_FIXED_PREDIV,
 		.hw.init	= CLK_HW_INIT_PARENTS("outa", out_parents,
-						      &ccu_mp_ops, 0),
+						      &ccu_mp_ops,
+						      CLK_SET_RATE_PARENT),
 	}
 };
 
@@ -779,7 +780,8 @@
 		.reg		= 0x1f4,
 		.features	= CCU_FEATURE_FIXED_PREDIV,
 		.hw.init	= CLK_HW_INIT_PARENTS("outb", out_parents,
-						      &ccu_mp_ops, 0),
+						      &ccu_mp_ops,
+						      CLK_SET_RATE_PARENT),
 	}
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
@@ -618,7 +618,7 @@
 		[CLK_MBUS]		= &mbus_clk.common.hw,
 		[CLK_MIPI_CSI]		= &mipi_csi_clk.common.hw,
 	},
-	.num	= CLK_NUMBER,
+	.num	= CLK_PLL_DDR1 + 1,
 };
 
 static struct clk_hw_onecell_data sun8i_v3_hw_clks = {
@@ -700,7 +700,7 @@
 		[CLK_MBUS]		= &mbus_clk.common.hw,
 		[CLK_MIPI_CSI]		= &mipi_csi_clk.common.hw,
 	},
-	.num	= CLK_NUMBER,
+	.num	= CLK_I2S0 + 1,
 };
 
 static struct ccu_reset_map sun8i_v3s_ccu_resets[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-v3s.h
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-v3s.h
@@ -51,6 +51,4 @@
 
 #define CLK_PLL_DDR1		74
 
-#define CLK_NUMBER		(CLK_I2S0 + 1)
-
 #endif /* _CCU_SUN8I_H3_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi-ng/ccu_mp.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi-ng/ccu_mp.c
@@ -108,7 +108,7 @@
 	max_m = cmp->m.max ?: 1 << cmp->m.width;
 	max_p = cmp->p.max ?: 1 << ((1 << cmp->p.width) - 1);
 
-	if (!(clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)) {
+	if (!clk_hw_can_set_rate_parent(&cmp->common.hw)) {
 		ccu_mp_find_best(*parent_rate, rate, max_m, max_p, &m, &p);
 		rate = *parent_rate / p / m;
 	} else {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/sunxi/clk-sunxi.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/sunxi/clk-sunxi.c
@@ -90,7 +90,7 @@
 	 * Round down the frequency to the closest multiple of either
 	 * 6 or 16
 	 */
-	u32 round_freq_6 = round_down(freq_mhz, 6);
+	u32 round_freq_6 = rounddown(freq_mhz, 6);
 	u32 round_freq_16 = round_down(freq_mhz, 16);
 
 	if (round_freq_6 > round_freq_16)
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/tegra/clk-dfll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/tegra/clk-dfll.c
@@ -1801,13 +1801,13 @@
 			    &td->reg_init_uV);
 	if (!ret) {
 		dev_err(td->dev, "couldn't get initialized voltage\n");
-		return ret;
+		return -EINVAL;
 	}
 
 	ret = read_dt_param(td, "nvidia,pwm-period-nanoseconds", &pwm_period);
 	if (!ret) {
 		dev_err(td->dev, "couldn't get PWM period\n");
-		return ret;
+		return -EINVAL;
 	}
 	td->pwm_rate = (NSEC_PER_SEC / pwm_period) * (MAX_DFLL_VOLTAGES - 1);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/tegra/clk-id.h
+++ linux-gkeop-5.4-5.4.0/drivers/clk/tegra/clk-id.h
@@ -233,6 +233,7 @@
 	tegra_clk_sdmmc4,
 	tegra_clk_sdmmc4_8,
 	tegra_clk_se,
+	tegra_clk_se_10,
 	tegra_clk_soc_therm,
 	tegra_clk_soc_therm_8,
 	tegra_clk_sor0,
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/tegra/clk-pll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/tegra/clk-pll.c
@@ -1569,9 +1569,6 @@
 	unsigned long flags = 0;
 	unsigned long input_rate;
 
-	if (clk_pll_is_enabled(hw))
-		return 0;
-
 	input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));
 
 	if (_get_table_rate(hw, &sel, pll->params->fixed_rate, input_rate))
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/tegra/clk-tegra-periph.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/tegra/clk-tegra-periph.c
@@ -636,7 +636,7 @@
 	INT8("host1x", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_HOST1X, 28, 0, tegra_clk_host1x_8),
 	INT8("host1x", mux_pllc4_out1_pllc_pllc4_out2_pllp_clkm_plla_pllc4_out0, CLK_SOURCE_HOST1X, 28, 0, tegra_clk_host1x_9),
 	INT8("se", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se),
-	INT8("se", mux_pllp_pllc2_c_c3_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se),
+	INT8("se", mux_pllp_pllc2_c_c3_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se_10),
 	INT8("2d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_2D, 21, 0, tegra_clk_gr2d_8),
 	INT8("3d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_3D, 24, 0, tegra_clk_gr3d_8),
 	INT8("vic03", mux_pllm_pllc_pllp_plla_pllc2_c3_clkm, CLK_SOURCE_VIC03, 178, 0, tegra_clk_vic03),
@@ -785,7 +785,11 @@
 	GATE("ahbdma", "hclk", 33, 0, tegra_clk_ahbdma, 0),
 	GATE("apbdma", "pclk", 34, 0, tegra_clk_apbdma, 0),
 	GATE("kbc", "clk_32k", 36, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, tegra_clk_kbc, 0),
-	GATE("fuse", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse, 0),
+	/*
+	 * Critical for RAM re-repair operation, which must occur on resume
+	 * from LP1 system suspend and as part of CCPLEX cluster switching.
+	 */
+	GATE("fuse", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse, CLK_IS_CRITICAL),
 	GATE("fuse_burn", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse_burn, 0),
 	GATE("kfuse", "clk_m", 40, TEGRA_PERIPH_ON_APB, tegra_clk_kfuse, 0),
 	GATE("apbif", "clk_m", 107, TEGRA_PERIPH_ON_APB, tegra_clk_apbif, 0),
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/tegra/clk-tegra-pmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/tegra/clk-tegra-pmc.c
@@ -49,16 +49,16 @@
 
 static DEFINE_SPINLOCK(clk_out_lock);
 
-static const char *clk_out1_parents[] = { "clk_m", "clk_m_div2",
-	"clk_m_div4", "extern1",
+static const char *clk_out1_parents[] = { "osc", "osc_div2",
+	"osc_div4", "extern1",
 };
 
-static const char *clk_out2_parents[] = { "clk_m", "clk_m_div2",
-	"clk_m_div4", "extern2",
+static const char *clk_out2_parents[] = { "osc", "osc_div2",
+	"osc_div4", "extern2",
 };
 
-static const char *clk_out3_parents[] = { "clk_m", "clk_m_div2",
-	"clk_m_div4", "extern3",
+static const char *clk_out3_parents[] = { "osc", "osc_div2",
+	"osc_div4", "extern3",
 };
 
 static struct pmc_clk_init_data pmc_clks[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/tegra/clk-tegra30.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/tegra/clk-tegra30.c
@@ -1263,6 +1263,8 @@
 	{ TEGRA30_CLK_I2S3_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
 	{ TEGRA30_CLK_I2S4_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
 	{ TEGRA30_CLK_VIMCLK_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
+	{ TEGRA30_CLK_HDA, TEGRA30_CLK_PLL_P, 102000000, 0 },
+	{ TEGRA30_CLK_HDA2CODEC_2X, TEGRA30_CLK_PLL_P, 48000000, 0 },
 	/* must be the last entry */
 	{ TEGRA30_CLK_CLK_MAX, TEGRA30_CLK_CLK_MAX, 0, 0 },
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/adpll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/adpll.c
@@ -194,15 +194,8 @@
 		if (err)
 			return NULL;
 	} else {
-		const char *base_name = "adpll";
-		char *buf;
-
-		buf = devm_kzalloc(d->dev, 8 + 1 + strlen(base_name) + 1 +
-				    strlen(postfix), GFP_KERNEL);
-		if (!buf)
-			return NULL;
-		sprintf(buf, "%08lx.%s.%s", d->pa, base_name, postfix);
-		name = buf;
+		name = devm_kasprintf(d->dev, GFP_KERNEL, "%08lx.adpll.%s",
+				      d->pa, postfix);
 	}
 
 	return name;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/clk-33xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/clk-33xx.c
@@ -212,7 +212,7 @@
 };
 
 static const struct omap_clkctrl_reg_data am3_l4_rtc_clkctrl_regs[] __initconst = {
-	{ AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" },
+	{ AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk-24mhz-clkctrl:0000:0" },
 	{ 0 },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/clk-43xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/clk-43xx.c
@@ -78,7 +78,7 @@
 };
 
 static const struct omap_clkctrl_reg_data am4_l4_rtc_clkctrl_regs[] __initconst = {
-	{ AM4_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" },
+	{ AM4_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clkdiv32k_ick" },
 	{ 0 },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/clk-7xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/clk-7xx.c
@@ -405,7 +405,7 @@
 };
 
 static const struct omap_clkctrl_reg_data dra7_gmac_clkctrl_regs[] __initconst = {
-	{ DRA7_GMAC_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "dpll_gmac_ck" },
+	{ DRA7_GMAC_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "gmac_main_clk" },
 	{ 0 },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/clockdomain.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/clockdomain.c
@@ -146,10 +146,12 @@
 		if (!omap2_clk_is_hw_omap(clk_hw)) {
 			pr_warn("can't setup clkdm for basic clk %s\n",
 				__clk_get_name(clk));
+			clk_put(clk);
 			continue;
 		}
 		to_clk_hw_omap(clk_hw)->clkdm_name = clkdm_name;
 		omap2_init_clk_clkdm(clk_hw);
+		clk_put(clk);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/composite.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/composite.c
@@ -196,6 +196,7 @@
 		if (!cclk->comp_clks[i])
 			continue;
 		list_del(&cclk->comp_clks[i]->link);
+		kfree(cclk->comp_clks[i]->parent_names);
 		kfree(cclk->comp_clks[i]);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/ti/fapll.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/ti/fapll.c
@@ -498,6 +498,7 @@
 {
 	struct clk_init_data *init;
 	struct fapll_synth *synth;
+	struct clk *clk = ERR_PTR(-ENOMEM);
 
 	init = kzalloc(sizeof(*init), GFP_KERNEL);
 	if (!init)
@@ -520,13 +521,19 @@
 	synth->hw.init = init;
 	synth->clk_pll = pll_clk;
 
-	return clk_register(NULL, &synth->hw);
+	clk = clk_register(NULL, &synth->hw);
+	if (IS_ERR(clk)) {
+		pr_err("failed to register clock\n");
+		goto free;
+	}
+
+	return clk;
 
 free:
 	kfree(synth);
 	kfree(init);
 
-	return ERR_PTR(-ENOMEM);
+	return clk;
 }
 
 static void __init ti_fapll_setup(struct device_node *node)
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/uniphier/clk-uniphier-peri.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/uniphier/clk-uniphier-peri.c
@@ -18,8 +18,8 @@
 #define UNIPHIER_PERI_CLK_FI2C(idx, ch)					\
 	UNIPHIER_CLK_GATE("i2c" #ch, (idx), "i2c", 0x24, 24 + (ch))
 
-#define UNIPHIER_PERI_CLK_SCSSI(idx)					\
-	UNIPHIER_CLK_GATE("scssi", (idx), "spi", 0x20, 17)
+#define UNIPHIER_PERI_CLK_SCSSI(idx, ch)				\
+	UNIPHIER_CLK_GATE("scssi" #ch, (idx), "spi", 0x20, 17 + (ch))
 
 #define UNIPHIER_PERI_CLK_MCSSI(idx)					\
 	UNIPHIER_CLK_GATE("mcssi", (idx), "spi", 0x24, 14)
@@ -35,7 +35,7 @@
 	UNIPHIER_PERI_CLK_I2C(6, 2),
 	UNIPHIER_PERI_CLK_I2C(7, 3),
 	UNIPHIER_PERI_CLK_I2C(8, 4),
-	UNIPHIER_PERI_CLK_SCSSI(11),
+	UNIPHIER_PERI_CLK_SCSSI(11, 0),
 	{ /* sentinel */ }
 };
 
@@ -51,7 +51,10 @@
 	UNIPHIER_PERI_CLK_FI2C(8, 4),
 	UNIPHIER_PERI_CLK_FI2C(9, 5),
 	UNIPHIER_PERI_CLK_FI2C(10, 6),
-	UNIPHIER_PERI_CLK_SCSSI(11),
-	UNIPHIER_PERI_CLK_MCSSI(12),
+	UNIPHIER_PERI_CLK_SCSSI(11, 0),
+	UNIPHIER_PERI_CLK_SCSSI(12, 1),
+	UNIPHIER_PERI_CLK_SCSSI(13, 2),
+	UNIPHIER_PERI_CLK_SCSSI(14, 3),
+	UNIPHIER_PERI_CLK_MCSSI(15),
 	{ /* sentinel */ }
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/clk/zynqmp/clkc.c
+++ linux-gkeop-5.4-5.4.0/drivers/clk/zynqmp/clkc.c
@@ -558,7 +558,7 @@
 {
 	int j;
 	u32 num_nodes, clk_dev_id;
-	char *clk_out = NULL;
+	char *clk_out[MAX_NODES];
 	struct clock_topology *nodes;
 	struct clk_hw *hw = NULL;
 
@@ -572,16 +572,16 @@
 		 * Intermediate clock names are postfixed with type of clock.
 		 */
 		if (j != (num_nodes - 1)) {
-			clk_out = kasprintf(GFP_KERNEL, "%s%s", clk_name,
+			clk_out[j] = kasprintf(GFP_KERNEL, "%s%s", clk_name,
 					    clk_type_postfix[nodes[j].type]);
 		} else {
-			clk_out = kasprintf(GFP_KERNEL, "%s", clk_name);
+			clk_out[j] = kasprintf(GFP_KERNEL, "%s", clk_name);
 		}
 
 		if (!clk_topology[nodes[j].type])
 			continue;
 
-		hw = (*clk_topology[nodes[j].type])(clk_out, clk_dev_id,
+		hw = (*clk_topology[nodes[j].type])(clk_out[j], clk_dev_id,
 						    parent_names,
 						    num_parents,
 						    &nodes[j]);
@@ -590,9 +590,12 @@
 				     __func__,  clk_dev_id, clk_name,
 				     PTR_ERR(hw));
 
-		parent_names[0] = clk_out;
+		parent_names[0] = clk_out[j];
 	}
-	kfree(clk_out);
+
+	for (j = 0; j < num_nodes; j++)
+		kfree(clk_out[j]);
+
 	return hw;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/Kconfig
@@ -79,6 +79,7 @@
 	bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST
 	depends on HAS_IOMEM
 	select CLKSRC_MMIO
+	select TIMER_OF if OF
 	help
 	  Enables support for the Intel XScale IXP4xx SoC timer.
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/arm_arch_timer.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/arm_arch_timer.c
@@ -69,7 +69,7 @@
 static bool arch_timer_c3stop;
 static bool arch_timer_mem_use_virtual;
 static bool arch_counter_suspend_stop;
-static bool vdso_default = true;
+static enum vdso_arch_clockmode vdso_default = VDSO_CLOCKMODE_ARCHTIMER;
 
 static cpumask_t evtstrm_available = CPU_MASK_NONE;
 static bool evtstrm_enable = IS_ENABLED(CONFIG_ARM_ARCH_TIMER_EVTSTREAM);
@@ -392,10 +392,10 @@
 	ctrl &= ~ARCH_TIMER_CTRL_IT_MASK;
 
 	if (access == ARCH_TIMER_PHYS_ACCESS) {
-		cval = evt + arch_counter_get_cntpct();
+		cval = evt + arch_counter_get_cntpct_stable();
 		write_sysreg(cval, cntp_cval_el0);
 	} else {
-		cval = evt + arch_counter_get_cntvct();
+		cval = evt + arch_counter_get_cntvct_stable();
 		write_sysreg(cval, cntv_cval_el0);
 	}
 
@@ -476,6 +476,14 @@
 		.set_next_event_virt = erratum_set_next_event_tval_virt,
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_1418040
+	{
+		.match_type = ate_match_local_cap_id,
+		.id = (void *)ARM64_WORKAROUND_1418040,
+		.desc = "ARM erratum 1418040",
+		.disable_compat_vdso = true,
+	},
+#endif
 };
 
 typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
@@ -560,8 +568,11 @@
 	 * change both the default value and the vdso itself.
 	 */
 	if (wa->read_cntvct_el0) {
-		clocksource_counter.archdata.vdso_direct = false;
-		vdso_default = false;
+		clocksource_counter.archdata.clock_mode = VDSO_CLOCKMODE_NONE;
+		vdso_default = VDSO_CLOCKMODE_NONE;
+	} else if (wa->disable_compat_vdso && vdso_default != VDSO_CLOCKMODE_NONE) {
+		vdso_default = VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT;
+		clocksource_counter.archdata.clock_mode = vdso_default;
 	}
 }
 
@@ -807,15 +818,24 @@
 
 static void arch_timer_configure_evtstream(void)
 {
-	int evt_stream_div, pos;
+	int evt_stream_div, lsb;
+
+	/*
+	 * As the event stream can at most be generated at half the frequency
+	 * of the counter, use half the frequency when computing the divider.
+	 */
+	evt_stream_div = arch_timer_rate / ARCH_TIMER_EVT_STREAM_FREQ / 2;
+
+	/*
+	 * Find the closest power of two to the divisor. If the adjacent bit
+	 * of lsb (last set bit, starts from 0) is set, then we use (lsb + 1).
+	 */
+	lsb = fls(evt_stream_div) - 1;
+	if (lsb > 0 && (evt_stream_div & BIT(lsb - 1)))
+		lsb++;
 
-	/* Find the closest power of two to the divisor */
-	evt_stream_div = arch_timer_rate / ARCH_TIMER_EVT_STREAM_FREQ;
-	pos = fls(evt_stream_div);
-	if (pos > 1 && !(evt_stream_div & (1 << (pos - 2))))
-		pos--;
 	/* enable event stream */
-	arch_timer_evtstrm_enable(min(pos, 15));
+	arch_timer_evtstrm_enable(max(0, min(lsb, 15)));
 }
 
 static void arch_counter_set_user_access(void)
@@ -979,7 +999,7 @@
 		}
 
 		arch_timer_read_counter = rd;
-		clocksource_counter.archdata.vdso_direct = vdso_default;
+		clocksource_counter.archdata.clock_mode = vdso_default;
 	} else {
 		arch_timer_read_counter = arch_counter_get_cntvct_mem;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/asm9260_timer.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/asm9260_timer.c
@@ -194,6 +194,10 @@
 	}
 
 	clk = of_clk_get(np, 0);
+	if (IS_ERR(clk)) {
+		pr_err("Failed to get clk!\n");
+		return PTR_ERR(clk);
+	}
 
 	ret = clk_prepare_enable(clk);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/bcm2835_timer.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/bcm2835_timer.c
@@ -121,7 +121,7 @@
 	ret = setup_irq(irq, &timer->act);
 	if (ret) {
 		pr_err("Can't set up timer IRQ\n");
-		goto err_iounmap;
+		goto err_timer_free;
 	}
 
 	clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff);
@@ -130,6 +130,9 @@
 
 	return 0;
 
+err_timer_free:
+	kfree(timer);
+
 err_iounmap:
 	iounmap(base);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/dw_apb_timer.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/dw_apb_timer.c
@@ -222,7 +222,8 @@
 /**
  * dw_apb_clockevent_init() - use an APB timer as a clock_event_device
  *
- * @cpu:	The CPU the events will be targeted at.
+ * @cpu:	The CPU the events will be targeted at or -1 if CPU affiliation
+ *		isn't required.
  * @name:	The name used for the timer and the IRQ for it.
  * @rating:	The rating to give the timer.
  * @base:	I/O base for the timer registers.
@@ -257,7 +258,7 @@
 	dw_ced->ced.max_delta_ticks = 0x7fffffff;
 	dw_ced->ced.min_delta_ns = clockevent_delta2ns(5000, &dw_ced->ced);
 	dw_ced->ced.min_delta_ticks = 5000;
-	dw_ced->ced.cpumask = cpumask_of(cpu);
+	dw_ced->ced.cpumask = cpu < 0 ? cpu_possible_mask : cpumask_of(cpu);
 	dw_ced->ced.features = CLOCK_EVT_FEAT_PERIODIC |
 				CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_DYNIRQ;
 	dw_ced->ced.set_state_shutdown = apbt_shutdown;
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/dw_apb_timer_of.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/dw_apb_timer_of.c
@@ -147,10 +147,6 @@
 static int __init dw_apb_timer_init(struct device_node *timer)
 {
 	switch (num_called) {
-	case 0:
-		pr_debug("%s: found clockevent timer\n", __func__);
-		add_clockevent(timer);
-		break;
 	case 1:
 		pr_debug("%s: found clocksource timer\n", __func__);
 		add_clocksource(timer);
@@ -161,6 +157,8 @@
 #endif
 		break;
 	default:
+		pr_debug("%s: found clockevent timer\n", __func__);
+		add_clockevent(timer);
 		break;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/h8300_timer8.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/h8300_timer8.c
@@ -169,7 +169,7 @@
 		return PTR_ERR(clk);
 	}
 
-	ret = ENXIO;
+	ret = -ENXIO;
 	base = of_iomap(node, 0);
 	if (!base) {
 		pr_err("failed to map registers for clockevent\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/hyperv_timer.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/hyperv_timer.c
@@ -233,7 +233,8 @@
 
 static u64 read_hv_sched_clock_tsc(void)
 {
-	return read_hv_clock_tsc(NULL) - hv_sched_clock_offset;
+	return (read_hv_clock_tsc(NULL) - hv_sched_clock_offset) *
+		(NSEC_PER_SEC / HV_CLOCK_HZ);
 }
 
 static struct clocksource hyperv_cs_tsc = {
@@ -258,7 +259,8 @@
 
 static u64 read_hv_sched_clock_msr(void)
 {
-	return read_hv_clock_msr(NULL) - hv_sched_clock_offset;
+	return (read_hv_clock_msr(NULL) - hv_sched_clock_offset) *
+		(NSEC_PER_SEC / HV_CLOCK_HZ);
 }
 
 static struct clocksource hyperv_cs_msr = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/mxs_timer.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/mxs_timer.c
@@ -138,10 +138,7 @@
 
 	/* Clear pending interrupt */
 	timrot_irq_acknowledge();
-
-#ifdef DEBUG
-	pr_info("%s: changing mode to %s\n", __func__, state)
-#endif /* DEBUG */
+	pr_debug("%s: changing mode to %s\n", __func__, state);
 }
 
 static int mxs_shutdown(struct clock_event_device *evt)
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/timer-cadence-ttc.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/timer-cadence-ttc.c
@@ -411,10 +411,8 @@
 	ttcce->ttc.clk = clk;
 
 	err = clk_prepare_enable(ttcce->ttc.clk);
-	if (err) {
-		kfree(ttcce);
-		return err;
-	}
+	if (err)
+		goto out_kfree;
 
 	ttcce->ttc.clk_rate_change_nb.notifier_call =
 		ttc_rate_change_clockevent_cb;
@@ -424,7 +422,7 @@
 				    &ttcce->ttc.clk_rate_change_nb);
 	if (err) {
 		pr_warn("Unable to register clock notifier.\n");
-		return err;
+		goto out_kfree;
 	}
 
 	ttcce->ttc.freq = clk_get_rate(ttcce->ttc.clk);
@@ -453,15 +451,17 @@
 
 	err = request_irq(irq, ttc_clock_event_interrupt,
 			  IRQF_TIMER, ttcce->ce.name, ttcce);
-	if (err) {
-		kfree(ttcce);
-		return err;
-	}
+	if (err)
+		goto out_kfree;
 
 	clockevents_config_and_register(&ttcce->ce,
 			ttcce->ttc.freq / PRESCALE, 1, 0xfffe);
 
 	return 0;
+
+out_kfree:
+	kfree(ttcce);
+	return err;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/timer-davinci.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/timer-davinci.c
@@ -302,10 +302,6 @@
 		return rv;
 	}
 
-	clockevents_config_and_register(&clockevent->dev, tick_rate,
-					DAVINCI_TIMER_MIN_DELTA,
-					DAVINCI_TIMER_MAX_DELTA);
-
 	davinci_clocksource.dev.rating = 300;
 	davinci_clocksource.dev.read = davinci_clocksource_read;
 	davinci_clocksource.dev.mask =
@@ -323,6 +319,10 @@
 		davinci_clocksource_init_tim34(base);
 	}
 
+	clockevents_config_and_register(&clockevent->dev, tick_rate,
+					DAVINCI_TIMER_MIN_DELTA,
+					DAVINCI_TIMER_MAX_DELTA);
+
 	rv = clocksource_register_hz(&davinci_clocksource.dev, tick_rate);
 	if (rv) {
 		pr_err("Unable to register clocksource");
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/timer-gx6605s.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/timer-gx6605s.c
@@ -28,6 +28,7 @@
 	void __iomem *base = timer_of_base(to_timer_of(ce));
 
 	writel_relaxed(GX6605S_STATUS_CLR, base + TIMER_STATUS);
+	writel_relaxed(0, base + TIMER_INI);
 
 	ce->event_handler(ce);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/timer-of.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/timer-of.c
@@ -192,7 +192,7 @@
 	}
 
 	if (!to->clkevt.name)
-		to->clkevt.name = np->name;
+		to->clkevt.name = np->full_name;
 
 	to->np = np;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/timer-orion.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/timer-orion.c
@@ -149,7 +149,8 @@
 	irq = irq_of_parse_and_map(np, 1);
 	if (irq <= 0) {
 		pr_err("%pOFn: unable to parse timer1 irq\n", np);
-		return -EINVAL;
+		ret = -EINVAL;
+		goto out_unprep_clk;
 	}
 
 	rate = clk_get_rate(clk);
@@ -166,7 +167,7 @@
 				    clocksource_mmio_readl_down);
 	if (ret) {
 		pr_err("Failed to initialize mmio timer\n");
-		return ret;
+		goto out_unprep_clk;
 	}
 
 	sched_clock_register(orion_read_sched_clock, 32, rate);
@@ -175,7 +176,7 @@
 	ret = setup_irq(irq, &orion_clkevt_irq);
 	if (ret) {
 		pr_err("%pOFn: unable to setup irq\n", np);
-		return ret;
+		goto out_unprep_clk;
 	}
 
 	ticks_per_jiffy = (clk_get_rate(clk) + HZ/2) / HZ;
@@ -188,5 +189,9 @@
 	orion_delay_timer_init(rate);
 
 	return 0;
+
+out_unprep_clk:
+	clk_disable_unprepare(clk);
+	return ret;
 }
 TIMER_OF_DECLARE(orion_timer, "marvell,orion-timer", orion_timer_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/clocksource/timer-riscv.c
+++ linux-gkeop-5.4-5.4.0/drivers/clocksource/timer-riscv.c
@@ -41,7 +41,7 @@
 	return get_cycles64();
 }
 
-static u64 riscv_sched_clock(void)
+static u64 notrace riscv_sched_clock(void)
 {
 	return get_cycles64();
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/counter/104-quad-8.c
+++ linux-gkeop-5.4-5.4.0/drivers/counter/104-quad-8.c
@@ -42,6 +42,7 @@
  * @base:		base port address of the IIO device
  */
 struct quad8_iio {
+	struct mutex lock;
 	struct counter_device counter;
 	unsigned int preset[QUAD8_NUM_COUNTERS];
 	unsigned int count_mode[QUAD8_NUM_COUNTERS];
@@ -116,6 +117,8 @@
 		/* Borrow XOR Carry effectively doubles count range */
 		*val = (borrow ^ carry) << 24;
 
+		mutex_lock(&priv->lock);
+
 		/* Reset Byte Pointer; transfer Counter to Output Latch */
 		outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_CNTR_OUT,
 		     base_offset + 1);
@@ -123,6 +126,8 @@
 		for (i = 0; i < 3; i++)
 			*val |= (unsigned int)inb(base_offset) << (8 * i);
 
+		mutex_unlock(&priv->lock);
+
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_ENABLE:
 		*val = priv->ab_enable[chan->channel];
@@ -153,6 +158,8 @@
 		if ((unsigned int)val > 0xFFFFFF)
 			return -EINVAL;
 
+		mutex_lock(&priv->lock);
+
 		/* Reset Byte Pointer */
 		outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
 
@@ -176,12 +183,16 @@
 		/* Reset Error flag */
 		outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, base_offset + 1);
 
+		mutex_unlock(&priv->lock);
+
 		return 0;
 	case IIO_CHAN_INFO_ENABLE:
 		/* only boolean values accepted */
 		if (val < 0 || val > 1)
 			return -EINVAL;
 
+		mutex_lock(&priv->lock);
+
 		priv->ab_enable[chan->channel] = val;
 
 		ior_cfg = val | priv->preset_enable[chan->channel] << 1;
@@ -189,11 +200,18 @@
 		/* Load I/O control configuration */
 		outb(QUAD8_CTR_IOR | ior_cfg, base_offset + 1);
 
+		mutex_unlock(&priv->lock);
+
 		return 0;
 	case IIO_CHAN_INFO_SCALE:
+		mutex_lock(&priv->lock);
+
 		/* Quadrature scaling only available in quadrature mode */
-		if (!priv->quadrature_mode[chan->channel] && (val2 || val != 1))
+		if (!priv->quadrature_mode[chan->channel] &&
+				(val2 || val != 1)) {
+			mutex_unlock(&priv->lock);
 			return -EINVAL;
+		}
 
 		/* Only three gain states (1, 0.5, 0.25) */
 		if (val == 1 && !val2)
@@ -207,11 +225,15 @@
 				priv->quadrature_scale[chan->channel] = 2;
 				break;
 			default:
+				mutex_unlock(&priv->lock);
 				return -EINVAL;
 			}
-		else
+		else {
+			mutex_unlock(&priv->lock);
 			return -EINVAL;
+		}
 
+		mutex_unlock(&priv->lock);
 		return 0;
 	}
 
@@ -248,6 +270,8 @@
 	if (preset > 0xFFFFFF)
 		return -EINVAL;
 
+	mutex_lock(&priv->lock);
+
 	priv->preset[chan->channel] = preset;
 
 	/* Reset Byte Pointer */
@@ -257,6 +281,8 @@
 	for (i = 0; i < 3; i++)
 		outb(preset >> (8 * i), base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -286,6 +312,8 @@
 	/* Preset enable is active low in Input/Output Control register */
 	preset_enable = !preset_enable;
 
+	mutex_lock(&priv->lock);
+
 	priv->preset_enable[chan->channel] = preset_enable;
 
 	ior_cfg = priv->ab_enable[chan->channel] |
@@ -294,6 +322,8 @@
 	/* Load I/O control configuration to Input / Output Control Register */
 	outb(QUAD8_CTR_IOR | ior_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -351,6 +381,8 @@
 	unsigned int mode_cfg = cnt_mode << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
 
+	mutex_lock(&priv->lock);
+
 	priv->count_mode[chan->channel] = cnt_mode;
 
 	/* Add quadrature mode configuration */
@@ -360,6 +392,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -387,19 +421,26 @@
 	const struct iio_chan_spec *chan, unsigned int synchronous_mode)
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
-	const unsigned int idr_cfg = synchronous_mode |
-		priv->index_polarity[chan->channel] << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
+	unsigned int idr_cfg = synchronous_mode;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->index_polarity[chan->channel] << 1;
 
 	/* Index function must be non-synchronous in non-quadrature mode */
-	if (synchronous_mode && !priv->quadrature_mode[chan->channel])
+	if (synchronous_mode && !priv->quadrature_mode[chan->channel]) {
+		mutex_unlock(&priv->lock);
 		return -EINVAL;
+	}
 
 	priv->synchronous_mode[chan->channel] = synchronous_mode;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -427,8 +468,12 @@
 	const struct iio_chan_spec *chan, unsigned int quadrature_mode)
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
-	unsigned int mode_cfg = priv->count_mode[chan->channel] << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
+	unsigned int mode_cfg;
+
+	mutex_lock(&priv->lock);
+
+	mode_cfg = priv->count_mode[chan->channel] << 1;
 
 	if (quadrature_mode)
 		mode_cfg |= (priv->quadrature_scale[chan->channel] + 1) << 3;
@@ -446,6 +491,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -473,15 +520,20 @@
 	const struct iio_chan_spec *chan, unsigned int index_polarity)
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
-	const unsigned int idr_cfg = priv->synchronous_mode[chan->channel] |
-		index_polarity << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
+	unsigned int idr_cfg = index_polarity << 1;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->synchronous_mode[chan->channel];
 
 	priv->index_polarity[chan->channel] = index_polarity;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -585,7 +637,7 @@
 static int quad8_count_read(struct counter_device *counter,
 	struct counter_count *count, struct counter_count_read_value *val)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const int base_offset = priv->base + 2 * count->id;
 	unsigned int flags;
 	unsigned int borrow;
@@ -600,6 +652,8 @@
 	/* Borrow XOR Carry effectively doubles count range */
 	position = (unsigned long)(borrow ^ carry) << 24;
 
+	mutex_lock(&priv->lock);
+
 	/* Reset Byte Pointer; transfer Counter to Output Latch */
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_CNTR_OUT,
 	     base_offset + 1);
@@ -609,13 +663,15 @@
 
 	counter_count_read_value_set(val, COUNTER_COUNT_POSITION, &position);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
 static int quad8_count_write(struct counter_device *counter,
 	struct counter_count *count, struct counter_count_write_value *val)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const int base_offset = priv->base + 2 * count->id;
 	int err;
 	unsigned long position;
@@ -630,6 +686,8 @@
 	if (position > 0xFFFFFF)
 		return -EINVAL;
 
+	mutex_lock(&priv->lock);
+
 	/* Reset Byte Pointer */
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
 
@@ -653,6 +711,8 @@
 	/* Reset Error flag */
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, base_offset + 1);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -673,13 +733,13 @@
 static int quad8_function_get(struct counter_device *counter,
 	struct counter_count *count, size_t *function)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const int id = count->id;
-	const unsigned int quadrature_mode = priv->quadrature_mode[id];
-	const unsigned int scale = priv->quadrature_scale[id];
 
-	if (quadrature_mode)
-		switch (scale) {
+	mutex_lock(&priv->lock);
+
+	if (priv->quadrature_mode[id])
+		switch (priv->quadrature_scale[id]) {
 		case 0:
 			*function = QUAD8_COUNT_FUNCTION_QUADRATURE_X1;
 			break;
@@ -693,6 +753,8 @@
 	else
 		*function = QUAD8_COUNT_FUNCTION_PULSE_DIRECTION;
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -703,10 +765,15 @@
 	const int id = count->id;
 	unsigned int *const quadrature_mode = priv->quadrature_mode + id;
 	unsigned int *const scale = priv->quadrature_scale + id;
-	unsigned int mode_cfg = priv->count_mode[id] << 1;
 	unsigned int *const synchronous_mode = priv->synchronous_mode + id;
-	const unsigned int idr_cfg = priv->index_polarity[id] << 1;
 	const int base_offset = priv->base + 2 * id + 1;
+	unsigned int mode_cfg;
+	unsigned int idr_cfg;
+
+	mutex_lock(&priv->lock);
+
+	mode_cfg = priv->count_mode[id] << 1;
+	idr_cfg = priv->index_polarity[id] << 1;
 
 	if (function == QUAD8_COUNT_FUNCTION_PULSE_DIRECTION) {
 		*quadrature_mode = 0;
@@ -742,6 +809,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -858,15 +927,20 @@
 {
 	struct quad8_iio *const priv = counter->priv;
 	const size_t channel_id = signal->id - 16;
-	const unsigned int idr_cfg = priv->synchronous_mode[channel_id] |
-		index_polarity << 1;
 	const int base_offset = priv->base + 2 * channel_id + 1;
+	unsigned int idr_cfg = index_polarity << 1;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->synchronous_mode[channel_id];
 
 	priv->index_polarity[channel_id] = index_polarity;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -893,19 +967,26 @@
 {
 	struct quad8_iio *const priv = counter->priv;
 	const size_t channel_id = signal->id - 16;
-	const unsigned int idr_cfg = synchronous_mode |
-		priv->index_polarity[channel_id] << 1;
 	const int base_offset = priv->base + 2 * channel_id + 1;
+	unsigned int idr_cfg = synchronous_mode;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->index_polarity[channel_id] << 1;
 
 	/* Index function must be non-synchronous in non-quadrature mode */
-	if (synchronous_mode && !priv->quadrature_mode[channel_id])
+	if (synchronous_mode && !priv->quadrature_mode[channel_id]) {
+		mutex_unlock(&priv->lock);
 		return -EINVAL;
+	}
 
 	priv->synchronous_mode[channel_id] = synchronous_mode;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -970,6 +1051,8 @@
 		break;
 	}
 
+	mutex_lock(&priv->lock);
+
 	priv->count_mode[count->id] = cnt_mode;
 
 	/* Set count mode configuration value */
@@ -982,6 +1065,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -1023,6 +1108,8 @@
 	if (err)
 		return err;
 
+	mutex_lock(&priv->lock);
+
 	priv->ab_enable[count->id] = ab_enable;
 
 	ior_cfg = ab_enable | priv->preset_enable[count->id] << 1;
@@ -1030,6 +1117,8 @@
 	/* Load I/O control configuration */
 	outb(QUAD8_CTR_IOR | ior_cfg, base_offset + 1);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -1058,14 +1147,28 @@
 	return sprintf(buf, "%u\n", priv->preset[count->id]);
 }
 
+static void quad8_preset_register_set(struct quad8_iio *quad8iio, int id,
+		unsigned int preset)
+{
+	const unsigned int base_offset = quad8iio->base + 2 * id;
+	int i;
+
+	quad8iio->preset[id] = preset;
+
+	/* Reset Byte Pointer */
+	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
+
+	/* Set Preset Register */
+	for (i = 0; i < 3; i++)
+		outb(preset >> (8 * i), base_offset);
+}
+
 static ssize_t quad8_count_preset_write(struct counter_device *counter,
 	struct counter_count *count, void *private, const char *buf, size_t len)
 {
 	struct quad8_iio *const priv = counter->priv;
-	const int base_offset = priv->base + 2 * count->id;
 	unsigned int preset;
 	int ret;
-	int i;
 
 	ret = kstrtouint(buf, 0, &preset);
 	if (ret)
@@ -1075,14 +1178,11 @@
 	if (preset > 0xFFFFFF)
 		return -EINVAL;
 
-	priv->preset[count->id] = preset;
+	mutex_lock(&priv->lock);
 
-	/* Reset Byte Pointer */
-	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
+	quad8_preset_register_set(priv, count->id, preset);
 
-	/* Set Preset Register */
-	for (i = 0; i < 3; i++)
-		outb(preset >> (8 * i), base_offset);
+	mutex_unlock(&priv->lock);
 
 	return len;
 }
@@ -1090,15 +1190,20 @@
 static ssize_t quad8_count_ceiling_read(struct counter_device *counter,
 	struct counter_count *count, void *private, char *buf)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
+
+	mutex_lock(&priv->lock);
 
 	/* Range Limit and Modulo-N count modes use preset value as ceiling */
 	switch (priv->count_mode[count->id]) {
 	case 1:
 	case 3:
-		return quad8_count_preset_read(counter, count, private, buf);
+		mutex_unlock(&priv->lock);
+		return sprintf(buf, "%u\n", priv->preset[count->id]);
 	}
 
+	mutex_unlock(&priv->lock);
+
 	/* By default 0x1FFFFFF (25 bits unsigned) is maximum count */
 	return sprintf(buf, "33554431\n");
 }
@@ -1107,15 +1212,29 @@
 	struct counter_count *count, void *private, const char *buf, size_t len)
 {
 	struct quad8_iio *const priv = counter->priv;
+	unsigned int ceiling;
+	int ret;
+
+	ret = kstrtouint(buf, 0, &ceiling);
+	if (ret)
+		return ret;
+
+	/* Only 24-bit values are supported */
+	if (ceiling > 0xFFFFFF)
+		return -EINVAL;
+
+	mutex_lock(&priv->lock);
 
 	/* Range Limit and Modulo-N count modes use preset value as ceiling */
 	switch (priv->count_mode[count->id]) {
 	case 1:
 	case 3:
-		return quad8_count_preset_write(counter, count, private, buf,
-						len);
+		quad8_preset_register_set(priv, count->id, ceiling);
+		break;
 	}
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -1143,6 +1262,8 @@
 	/* Preset enable is active low in Input/Output Control register */
 	preset_enable = !preset_enable;
 
+	mutex_lock(&priv->lock);
+
 	priv->preset_enable[count->id] = preset_enable;
 
 	ior_cfg = priv->ab_enable[count->id] | (unsigned int)preset_enable << 1;
@@ -1150,6 +1271,8 @@
 	/* Load I/O control configuration to Input / Output Control Register */
 	outb(QUAD8_CTR_IOR | ior_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -1320,6 +1443,9 @@
 	quad8iio->counter.priv = quad8iio;
 	quad8iio->base = base[id];
 
+	/* Initialize mutex */
+	mutex_init(&quad8iio->lock);
+
 	/* Reset all counters and disable interrupt function */
 	outb(QUAD8_CHAN_OP_RESET_COUNTERS, base[id] + QUAD8_REG_CHAN_OP);
 	/* Set initial configuration for all counters */
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/Kconfig.arm
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/Kconfig.arm
@@ -41,6 +41,7 @@
 config ARM_ARMADA_8K_CPUFREQ
 	tristate "Armada 8K CPUFreq driver"
 	depends on ARCH_MVEBU && CPUFREQ_DT
+	select ARMADA_AP_CPU_CLK
 	help
 	  This enables the CPUFreq driver support for Marvell
 	  Armada8k SOCs.
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/acpi-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/acpi-cpufreq.c
@@ -688,7 +688,8 @@
 		cpumask_copy(policy->cpus, topology_core_cpumask(cpu));
 	}
 
-	if (check_amd_hwpstate_cpu(cpu) && !acpi_pstate_strict) {
+	if (check_amd_hwpstate_cpu(cpu) && boot_cpu_data.x86 < 0x19 &&
+	    !acpi_pstate_strict) {
 		cpumask_clear(policy->cpus);
 		cpumask_set_cpu(cpu, policy->cpus);
 		cpumask_copy(data->freqdomain_cpus,
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/armada-37xx-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/armada-37xx-cpufreq.c
@@ -456,6 +456,7 @@
 	/* Now that everything is setup, enable the DVFS at hardware level */
 	armada37xx_cpufreq_enable_dvfs(nb_pm_base);
 
+	memset(&pdata, 0, sizeof(pdata));
 	pdata.suspend = armada37xx_cpufreq_suspend;
 	pdata.resume = armada37xx_cpufreq_resume;
 
@@ -483,6 +484,12 @@
 /* late_initcall, to guarantee the driver is loaded after A37xx clock driver */
 late_initcall(armada37xx_cpufreq_driver_init);
 
+static const struct of_device_id __maybe_unused armada37xx_cpufreq_of_match[] = {
+	{ .compatible = "marvell,armada-3700-nb-pm" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, armada37xx_cpufreq_of_match);
+
 MODULE_AUTHOR("Gregory CLEMENT <gregory.clement@free-electrons.com>");
 MODULE_DESCRIPTION("Armada 37xx cpufreq driver");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/armada-8k-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/armada-8k-cpufreq.c
@@ -204,6 +204,12 @@
 }
 module_exit(armada_8k_cpufreq_exit);
 
+static const struct of_device_id __maybe_unused armada_8k_cpufreq_of_match[] = {
+	{ .compatible = "marvell,ap806-cpu-clock" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, armada_8k_cpufreq_of_match);
+
 MODULE_AUTHOR("Gregory Clement <gregory.clement@bootlin.com>");
 MODULE_DESCRIPTION("Armada 8K cpufreq driver");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/brcmstb-avs-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/brcmstb-avs-cpufreq.c
@@ -566,6 +566,16 @@
 	return ret;
 }
 
+static void brcm_avs_prepare_uninit(struct platform_device *pdev)
+{
+	struct private_data *priv;
+
+	priv = platform_get_drvdata(pdev);
+
+	iounmap(priv->avs_intr_base);
+	iounmap(priv->base);
+}
+
 static int brcm_avs_cpufreq_init(struct cpufreq_policy *policy)
 {
 	struct cpufreq_frequency_table *freq_table;
@@ -701,21 +711,21 @@
 
 	brcm_avs_driver.driver_data = pdev;
 
-	return cpufreq_register_driver(&brcm_avs_driver);
+	ret = cpufreq_register_driver(&brcm_avs_driver);
+	if (ret)
+		brcm_avs_prepare_uninit(pdev);
+
+	return ret;
 }
 
 static int brcm_avs_cpufreq_remove(struct platform_device *pdev)
 {
-	struct private_data *priv;
 	int ret;
 
 	ret = cpufreq_unregister_driver(&brcm_avs_driver);
-	if (ret)
-		return ret;
+	WARN_ON(ret);
 
-	priv = platform_get_drvdata(pdev);
-	iounmap(priv->base);
-	iounmap(priv->avs_intr_base);
+	brcm_avs_prepare_uninit(pdev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/cppc_cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/cppc_cpufreq.c
@@ -217,7 +217,7 @@
 	return ret;
 }
 
-static int cppc_verify_policy(struct cpufreq_policy *policy)
+static int cppc_verify_policy(struct cpufreq_policy_data *policy)
 {
 	cpufreq_verify_within_cpu_limits(policy);
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/cpufreq-nforce2.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/cpufreq-nforce2.c
@@ -291,7 +291,7 @@
  * nforce2_verify - verifies a new CPUFreq policy
  * @policy: new policy
  */
-static int nforce2_verify(struct cpufreq_policy *policy)
+static int nforce2_verify(struct cpufreq_policy_data *policy)
 {
 	unsigned int fsb_pol_max;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/cpufreq.c
@@ -74,6 +74,9 @@
 static int cpufreq_start_governor(struct cpufreq_policy *policy);
 static void cpufreq_stop_governor(struct cpufreq_policy *policy);
 static void cpufreq_governor_limits(struct cpufreq_policy *policy);
+static int cpufreq_set_policy(struct cpufreq_policy *policy,
+			      struct cpufreq_governor *new_gov,
+			      unsigned int new_pol);
 
 /**
  * Two notifier lists: the "policy" list is involved in the
@@ -613,55 +616,51 @@
 	return NULL;
 }
 
-static int cpufreq_parse_policy(char *str_governor,
-				struct cpufreq_policy *policy)
-{
-	if (!strncasecmp(str_governor, "performance", CPUFREQ_NAME_LEN)) {
-		policy->policy = CPUFREQ_POLICY_PERFORMANCE;
-		return 0;
-	}
-	if (!strncasecmp(str_governor, "powersave", CPUFREQ_NAME_LEN)) {
-		policy->policy = CPUFREQ_POLICY_POWERSAVE;
-		return 0;
-	}
-	return -EINVAL;
-}
-
-/**
- * cpufreq_parse_governor - parse a governor string only for has_target()
- */
-static int cpufreq_parse_governor(char *str_governor,
-				  struct cpufreq_policy *policy)
+static struct cpufreq_governor *get_governor(const char *str_governor)
 {
 	struct cpufreq_governor *t;
 
 	mutex_lock(&cpufreq_governor_mutex);
-
 	t = find_governor(str_governor);
-	if (!t) {
-		int ret;
+	if (!t)
+		goto unlock;
 
-		mutex_unlock(&cpufreq_governor_mutex);
+	if (!try_module_get(t->owner))
+		t = NULL;
 
-		ret = request_module("cpufreq_%s", str_governor);
-		if (ret)
-			return -EINVAL;
+unlock:
+	mutex_unlock(&cpufreq_governor_mutex);
 
-		mutex_lock(&cpufreq_governor_mutex);
+	return t;
+}
 
-		t = find_governor(str_governor);
-	}
-	if (t && !try_module_get(t->owner))
-		t = NULL;
+static unsigned int cpufreq_parse_policy(char *str_governor)
+{
+	if (!strncasecmp(str_governor, "performance", CPUFREQ_NAME_LEN))
+		return CPUFREQ_POLICY_PERFORMANCE;
 
-	mutex_unlock(&cpufreq_governor_mutex);
+	if (!strncasecmp(str_governor, "powersave", CPUFREQ_NAME_LEN))
+		return CPUFREQ_POLICY_POWERSAVE;
 
-	if (t) {
-		policy->governor = t;
-		return 0;
-	}
+	return CPUFREQ_POLICY_UNKNOWN;
+}
 
-	return -EINVAL;
+/**
+ * cpufreq_parse_governor - parse a governor string only for has_target()
+ * @str_governor: Governor name.
+ */
+static struct cpufreq_governor *cpufreq_parse_governor(char *str_governor)
+{
+	struct cpufreq_governor *t;
+
+	t = get_governor(str_governor);
+	if (t)
+		return t;
+
+	if (request_module("cpufreq_%s", str_governor))
+		return NULL;
+
+	return get_governor(str_governor);
 }
 
 /**
@@ -762,28 +761,33 @@
 static ssize_t store_scaling_governor(struct cpufreq_policy *policy,
 					const char *buf, size_t count)
 {
+	char str_governor[16];
 	int ret;
-	char	str_governor[16];
-	struct cpufreq_policy new_policy;
-
-	memcpy(&new_policy, policy, sizeof(*policy));
 
 	ret = sscanf(buf, "%15s", str_governor);
 	if (ret != 1)
 		return -EINVAL;
 
 	if (cpufreq_driver->setpolicy) {
-		if (cpufreq_parse_policy(str_governor, &new_policy))
+		unsigned int new_pol;
+
+		new_pol = cpufreq_parse_policy(str_governor);
+		if (!new_pol)
 			return -EINVAL;
+
+		ret = cpufreq_set_policy(policy, NULL, new_pol);
 	} else {
-		if (cpufreq_parse_governor(str_governor, &new_policy))
+		struct cpufreq_governor *new_gov;
+
+		new_gov = cpufreq_parse_governor(str_governor);
+		if (!new_gov)
 			return -EINVAL;
-	}
 
-	ret = cpufreq_set_policy(policy, &new_policy);
+		ret = cpufreq_set_policy(policy, new_gov,
+					 CPUFREQ_POLICY_UNKNOWN);
 
-	if (new_policy.governor)
-		module_put(new_policy.governor->owner);
+		module_put(new_gov->owner);
+	}
 
 	return ret ? ret : count;
 }
@@ -810,12 +814,14 @@
 		goto out;
 	}
 
+	mutex_lock(&cpufreq_governor_mutex);
 	for_each_governor(t) {
 		if (i >= (ssize_t) ((PAGE_SIZE / sizeof(char))
 		    - (CPUFREQ_NAME_LEN + 2)))
-			goto out;
+			break;
 		i += scnprintf(&buf[i], CPUFREQ_NAME_PLEN, "%s ", t->name);
 	}
+	mutex_unlock(&cpufreq_governor_mutex);
 out:
 	i += sprintf(&buf[i], "\n");
 	return i;
@@ -933,6 +939,9 @@
 	struct freq_attr *fattr = to_attr(attr);
 	ssize_t ret;
 
+	if (!fattr->show)
+		return -EIO;
+
 	down_read(&policy->rwsem);
 	ret = fattr->show(policy, buf);
 	up_read(&policy->rwsem);
@@ -947,6 +956,9 @@
 	struct freq_attr *fattr = to_attr(attr);
 	ssize_t ret = -EINVAL;
 
+	if (!fattr->store)
+		return -EIO;
+
 	/*
 	 * cpus_read_trylock() is used here to work around a circular lock
 	 * dependency problem with respect to the cpufreq_register_driver().
@@ -1044,40 +1056,47 @@
 
 static int cpufreq_init_policy(struct cpufreq_policy *policy)
 {
-	struct cpufreq_governor *gov = NULL, *def_gov = NULL;
-	struct cpufreq_policy new_policy;
-
-	memcpy(&new_policy, policy, sizeof(*policy));
-
-	def_gov = cpufreq_default_governor();
+	struct cpufreq_governor *def_gov = cpufreq_default_governor();
+	struct cpufreq_governor *gov = NULL;
+	unsigned int pol = CPUFREQ_POLICY_UNKNOWN;
+	int ret;
 
 	if (has_target()) {
-		/*
-		 * Update governor of new_policy to the governor used before
-		 * hotplug
-		 */
-		gov = find_governor(policy->last_governor);
+		/* Update policy governor to the one used before hotplug. */
+		gov = get_governor(policy->last_governor);
 		if (gov) {
 			pr_debug("Restoring governor %s for cpu %d\n",
-				policy->governor->name, policy->cpu);
-		} else {
-			if (!def_gov)
-				return -ENODATA;
+				 policy->governor->name, policy->cpu);
+		} else if (def_gov) {
 			gov = def_gov;
+			__module_get(gov->owner);
+		} else {
+			return -ENODATA;
 		}
-		new_policy.governor = gov;
 	} else {
 		/* Use the default policy if there is no last_policy. */
 		if (policy->last_policy) {
-			new_policy.policy = policy->last_policy;
-		} else {
-			if (!def_gov)
-				return -ENODATA;
-			cpufreq_parse_policy(def_gov->name, &new_policy);
+			pol = policy->last_policy;
+		} else if (def_gov) {
+			pol = cpufreq_parse_policy(def_gov->name);
+			/*
+			 * In case the default governor is neiter "performance"
+			 * nor "powersave", fall back to the initial policy
+			 * value set by the driver.
+			 */
+			if (pol == CPUFREQ_POLICY_UNKNOWN)
+				pol = policy->policy;
 		}
+		if (pol != CPUFREQ_POLICY_PERFORMANCE &&
+		    pol != CPUFREQ_POLICY_POWERSAVE)
+			return -ENODATA;
 	}
 
-	return cpufreq_set_policy(policy, &new_policy);
+	ret = cpufreq_set_policy(policy, gov, pol);
+	if (gov)
+		module_put(gov->owner);
+
+	return ret;
 }
 
 static int cpufreq_add_policy_cpu(struct cpufreq_policy *policy, unsigned int cpu)
@@ -1105,13 +1124,10 @@
 
 void refresh_frequency_limits(struct cpufreq_policy *policy)
 {
-	struct cpufreq_policy new_policy;
-
 	if (!policy_is_inactive(policy)) {
-		new_policy = *policy;
 		pr_debug("updating policy for CPU %u\n", policy->cpu);
 
-		cpufreq_set_policy(policy, &new_policy);
+		cpufreq_set_policy(policy, policy->governor, policy->policy);
 	}
 }
 EXPORT_SYMBOL(refresh_frequency_limits);
@@ -2355,43 +2371,46 @@
 /**
  * cpufreq_set_policy - Modify cpufreq policy parameters.
  * @policy: Policy object to modify.
- * @new_policy: New policy data.
+ * @new_gov: Policy governor pointer.
+ * @new_pol: Policy value (for drivers with built-in governors).
  *
- * Pass @new_policy to the cpufreq driver's ->verify() callback. Next, copy the
- * min and max parameters of @new_policy to @policy and either invoke the
- * driver's ->setpolicy() callback (if present) or carry out a governor update
- * for @policy.  That is, run the current governor's ->limits() callback (if the
- * governor field in @new_policy points to the same object as the one in
- * @policy) or replace the governor for @policy with the new one stored in
- * @new_policy.
+ * Invoke the cpufreq driver's ->verify() callback to sanity-check the frequency
+ * limits to be set for the policy, update @policy with the verified limits
+ * values and either invoke the driver's ->setpolicy() callback (if present) or
+ * carry out a governor update for @policy.  That is, run the current governor's
+ * ->limits() callback (if @new_gov points to the same object as the one in
+ * @policy) or replace the governor for @policy with @new_gov.
  *
  * The cpuinfo part of @policy is not updated by this function.
  */
-int cpufreq_set_policy(struct cpufreq_policy *policy,
-		       struct cpufreq_policy *new_policy)
+static int cpufreq_set_policy(struct cpufreq_policy *policy,
+			      struct cpufreq_governor *new_gov,
+			      unsigned int new_pol)
 {
+	struct cpufreq_policy_data new_data;
 	struct cpufreq_governor *old_gov;
 	int ret;
 
-	pr_debug("setting new policy for CPU %u: %u - %u kHz\n",
-		 new_policy->cpu, new_policy->min, new_policy->max);
-
-	memcpy(&new_policy->cpuinfo, &policy->cpuinfo, sizeof(policy->cpuinfo));
-
+	memcpy(&new_data.cpuinfo, &policy->cpuinfo, sizeof(policy->cpuinfo));
+	new_data.freq_table = policy->freq_table;
+	new_data.cpu = policy->cpu;
 	/*
 	 * PM QoS framework collects all the requests from users and provide us
 	 * the final aggregated value here.
 	 */
-	new_policy->min = freq_qos_read_value(&policy->constraints, FREQ_QOS_MIN);
-	new_policy->max = freq_qos_read_value(&policy->constraints, FREQ_QOS_MAX);
+	new_data.min = freq_qos_read_value(&policy->constraints, FREQ_QOS_MIN);
+	new_data.max = freq_qos_read_value(&policy->constraints, FREQ_QOS_MAX);
+
+	pr_debug("setting new policy for CPU %u: %u - %u kHz\n",
+		 new_data.cpu, new_data.min, new_data.max);
 
 	/* verify the cpu speed can be set within this limit */
-	ret = cpufreq_driver->verify(new_policy);
+	ret = cpufreq_driver->verify(&new_data);
 	if (ret)
 		return ret;
 
-	policy->min = new_policy->min;
-	policy->max = new_policy->max;
+	policy->min = new_data.min;
+	policy->max = new_data.max;
 	trace_cpu_frequency_limits(policy);
 
 	policy->cached_target_freq = UINT_MAX;
@@ -2400,12 +2419,12 @@
 		 policy->min, policy->max);
 
 	if (cpufreq_driver->setpolicy) {
-		policy->policy = new_policy->policy;
+		policy->policy = new_pol;
 		pr_debug("setting range\n");
 		return cpufreq_driver->setpolicy(policy);
 	}
 
-	if (new_policy->governor == policy->governor) {
+	if (new_gov == policy->governor) {
 		pr_debug("governor limits update\n");
 		cpufreq_governor_limits(policy);
 		return 0;
@@ -2422,7 +2441,7 @@
 	}
 
 	/* start new governor */
-	policy->governor = new_policy->governor;
+	policy->governor = new_gov;
 	ret = cpufreq_init_governor(policy);
 	if (!ret) {
 		ret = cpufreq_start_governor(policy);
@@ -2500,26 +2519,27 @@
 static int cpufreq_boost_set_sw(int state)
 {
 	struct cpufreq_policy *policy;
-	int ret = -EINVAL;
 
 	for_each_active_policy(policy) {
+		int ret;
+
 		if (!policy->freq_table)
-			continue;
+			return -ENXIO;
 
 		ret = cpufreq_frequency_table_cpuinfo(policy,
 						      policy->freq_table);
 		if (ret) {
 			pr_err("%s: Policy frequency update failed\n",
 			       __func__);
-			break;
+			return ret;
 		}
 
 		ret = freq_qos_update_request(policy->max_freq_req, policy->max);
 		if (ret < 0)
-			break;
+			return ret;
 	}
 
-	return ret;
+	return 0;
 }
 
 int cpufreq_boost_trigger_state(int state)
@@ -2610,6 +2630,20 @@
 	return 0;
 }
 
+static char cpufreq_driver_name[CPUFREQ_NAME_LEN];
+
+static int __init cpufreq_driver_setup(char *str)
+{
+	strlcpy(cpufreq_driver_name, str, CPUFREQ_NAME_LEN);
+	return 1;
+}
+
+/*
+ * Set this name to only allow one specific cpu freq driver, e.g.,
+ * cpufreq_driver=powernow-k8
+ */
+__setup("cpufreq_driver=", cpufreq_driver_setup);
+
 /**
  * cpufreq_register_driver - register a CPU Frequency driver
  * @driver_data: A struct cpufreq_driver containing the values#
@@ -2628,6 +2662,13 @@
 	if (cpufreq_disabled())
 		return -ENODEV;
 
+	/*
+	 * The cpufreq core depends heavily on the availability of device
+	 * structure, make sure they are available before proceeding further.
+	 */
+	if (!get_cpu_device(0))
+		return -EPROBE_DEFER;
+
 	if (!driver_data || !driver_data->verify || !driver_data->init ||
 	    !(driver_data->setpolicy || driver_data->target_index ||
 		    driver_data->target) ||
@@ -2637,7 +2678,13 @@
 	     (!driver_data->online != !driver_data->offline))
 		return -EINVAL;
 
-	pr_debug("trying to register driver %s\n", driver_data->name);
+	pr_debug("trying to register driver %s, cpufreq_driver=%s\n",
+		driver_data->name, cpufreq_driver_name);
+
+	if (cpufreq_driver_name[0])
+		if (!driver_data->name ||
+			strcmp(cpufreq_driver_name, driver_data->name))
+				return -EINVAL;
 
 	/* Protect against concurrent CPU online/offline. */
 	cpus_read_lock();
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/freq_table.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/freq_table.c
@@ -60,7 +60,7 @@
 		return 0;
 }
 
-int cpufreq_frequency_table_verify(struct cpufreq_policy *policy,
+int cpufreq_frequency_table_verify(struct cpufreq_policy_data *policy,
 				   struct cpufreq_frequency_table *table)
 {
 	struct cpufreq_frequency_table *pos;
@@ -100,7 +100,7 @@
  * Generic routine to verify policy & frequency table, requires driver to set
  * policy->freq_table prior to it.
  */
-int cpufreq_generic_frequency_table_verify(struct cpufreq_policy *policy)
+int cpufreq_generic_frequency_table_verify(struct cpufreq_policy_data *policy)
 {
 	if (!policy->freq_table)
 		return -ENODEV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/gx-suspmod.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/gx-suspmod.c
@@ -328,7 +328,7 @@
  *      for the hardware supported by the driver.
  */
 
-static int cpufreq_gx_verify(struct cpufreq_policy *policy)
+static int cpufreq_gx_verify(struct cpufreq_policy_data *policy)
 {
 	unsigned int tmp_freq = 0;
 	u8 tmp1, tmp2;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/highbank-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/highbank-cpufreq.c
@@ -101,6 +101,13 @@
 }
 module_init(hb_cpufreq_driver_init);
 
+static const struct of_device_id __maybe_unused hb_cpufreq_of_match[] = {
+	{ .compatible = "calxeda,highbank" },
+	{ .compatible = "calxeda,ecx-2000" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, hb_cpufreq_of_match);
+
 MODULE_AUTHOR("Mark Langsdorf <mark.langsdorf@calxeda.com>");
 MODULE_DESCRIPTION("Calxeda Highbank cpufreq driver");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/imx-cpufreq-dt.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/imx-cpufreq-dt.c
@@ -44,19 +44,19 @@
 	mkt_segment = (cell_value & OCOTP_CFG3_MKT_SEGMENT_MASK) >> OCOTP_CFG3_MKT_SEGMENT_SHIFT;
 
 	/*
-	 * Early samples without fuses written report "0 0" which means
-	 * consumer segment and minimum speed grading.
-	 *
-	 * According to datasheet minimum speed grading is not supported for
-	 * consumer parts so clamp to 1 to avoid warning for "no OPPs"
+	 * Early samples without fuses written report "0 0" which may NOT
+	 * match any OPP defined in DT. So clamp to minimum OPP defined in
+	 * DT to avoid warning for "no OPPs".
 	 *
 	 * Applies to i.MX8M series SoCs.
 	 */
-	if (mkt_segment == 0 && speed_grade == 0 && (
-			of_machine_is_compatible("fsl,imx8mm") ||
-			of_machine_is_compatible("fsl,imx8mn") ||
-			of_machine_is_compatible("fsl,imx8mq")))
-		speed_grade = 1;
+	if (mkt_segment == 0 && speed_grade == 0) {
+		if (of_machine_is_compatible("fsl,imx8mm") ||
+		    of_machine_is_compatible("fsl,imx8mq"))
+			speed_grade = 1;
+		if (of_machine_is_compatible("fsl,imx8mn"))
+			speed_grade = 0xb;
+	}
 
 	supported_hw[0] = BIT(speed_grade);
 	supported_hw[1] = BIT(mkt_segment);
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/imx6q-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/imx6q-cpufreq.c
@@ -281,6 +281,9 @@
 
 		np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-ocotp");
 		if (!np)
+			np = of_find_compatible_node(NULL, NULL,
+						     "fsl,imx6ull-ocotp");
+		if (!np)
 			return -ENOENT;
 
 		base = of_iomap(np, 0);
@@ -378,23 +381,24 @@
 		goto put_reg;
 	}
 
+	/* Because we have added the OPPs here, we must free them */
+	free_opp = true;
+
 	if (of_machine_is_compatible("fsl,imx6ul") ||
 	    of_machine_is_compatible("fsl,imx6ull")) {
 		ret = imx6ul_opp_check_speed_grading(cpu_dev);
 		if (ret) {
 			if (ret == -EPROBE_DEFER)
-				goto put_node;
+				goto out_free_opp;
 
 			dev_err(cpu_dev, "failed to read ocotp: %d\n",
 				ret);
-			goto put_node;
+			goto out_free_opp;
 		}
 	} else {
 		imx6q_opp_check_speed_grading(cpu_dev);
 	}
 
-	/* Because we have added the OPPs here, we must free them */
-	free_opp = true;
 	num = dev_pm_opp_get_opp_count(cpu_dev);
 	if (num < 0) {
 		ret = num;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/intel_pstate.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/intel_pstate.c
@@ -649,11 +649,12 @@
 	mutex_lock(&intel_pstate_limits_lock);
 
 	if (boot_cpu_has(X86_FEATURE_HWP_EPP)) {
-		u64 value;
-
-		ret = rdmsrl_on_cpu(cpu_data->cpu, MSR_HWP_REQUEST, &value);
-		if (ret)
-			goto return_pref;
+		/*
+		 * Use the cached HWP Request MSR value, because the register
+		 * itself may be updated by intel_pstate_hwp_boost_up() or
+		 * intel_pstate_hwp_boost_down() at any time.
+		 */
+		u64 value = READ_ONCE(cpu_data->hwp_req_cached);
 
 		value &= ~GENMASK_ULL(31, 24);
 
@@ -661,13 +662,18 @@
 			epp = epp_values[pref_index - 1];
 
 		value |= (u64)epp << 24;
+		/*
+		 * The only other updater of hwp_req_cached in the active mode,
+		 * intel_pstate_hwp_set(), is called under the same lock as this
+		 * function, so it cannot run in parallel with the update below.
+		 */
+		WRITE_ONCE(cpu_data->hwp_req_cached, value);
 		ret = wrmsrl_on_cpu(cpu_data->cpu, MSR_HWP_REQUEST, value);
 	} else {
 		if (epp == -EINVAL)
 			epp = (pref_index - 1) << 2;
 		ret = intel_pstate_set_epb(cpu_data->cpu, epp);
 	}
-return_pref:
 	mutex_unlock(&intel_pstate_limits_lock);
 
 	return ret;
@@ -756,7 +762,7 @@
 
 	rdmsrl_on_cpu(cpu, MSR_HWP_CAPABILITIES, &cap);
 	WRITE_ONCE(all_cpu_data[cpu]->hwp_cap_cached, cap);
-	if (global.no_turbo)
+	if (global.no_turbo || global.turbo_disabled)
 		*current_max = HWP_GUARANTEED_PERF(cap);
 	else
 		*current_max = HWP_HIGHEST_PERF(cap);
@@ -1058,7 +1064,7 @@
 
 	update_turbo_state();
 	if (global.turbo_disabled) {
-		pr_warn("Turbo disabled by BIOS or unavailable on processor\n");
+		pr_notice_once("Turbo disabled by BIOS or unavailable on processor\n");
 		mutex_unlock(&intel_pstate_limits_lock);
 		mutex_unlock(&intel_pstate_driver_lock);
 		return -EPERM;
@@ -1560,20 +1566,22 @@
 static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
 {
 	cpu->pstate.min_pstate = pstate_funcs.get_min();
-	cpu->pstate.max_pstate = pstate_funcs.get_max();
 	cpu->pstate.max_pstate_physical = pstate_funcs.get_max_physical();
 	cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
 	cpu->pstate.scaling = pstate_funcs.get_scaling();
-	cpu->pstate.max_freq = cpu->pstate.max_pstate * cpu->pstate.scaling;
 
 	if (hwp_active && !hwp_mode_bdw) {
 		unsigned int phy_max, current_max;
 
 		intel_pstate_get_hwp_max(cpu->cpu, &phy_max, &current_max);
 		cpu->pstate.turbo_freq = phy_max * cpu->pstate.scaling;
+		cpu->pstate.turbo_pstate = phy_max;
+		cpu->pstate.max_pstate = HWP_GUARANTEED_PERF(READ_ONCE(cpu->hwp_cap_cached));
 	} else {
 		cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * cpu->pstate.scaling;
+		cpu->pstate.max_pstate = pstate_funcs.get_max();
 	}
+	cpu->pstate.max_freq = cpu->pstate.max_pstate * cpu->pstate.scaling;
 
 	if (pstate_funcs.get_aperf_mperf_shift)
 		cpu->aperf_mperf_shift = pstate_funcs.get_aperf_mperf_shift();
@@ -2036,8 +2044,9 @@
 			cpu->pstate.max_freq : cpu->pstate.turbo_freq;
 }
 
-static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy,
-					    struct cpudata *cpu)
+static void intel_pstate_update_perf_limits(struct cpudata *cpu,
+					    unsigned int policy_min,
+					    unsigned int policy_max)
 {
 	int max_freq = intel_pstate_get_max_freq(cpu);
 	int32_t max_policy_perf, min_policy_perf;
@@ -2056,18 +2065,17 @@
 		turbo_max = cpu->pstate.turbo_pstate;
 	}
 
-	max_policy_perf = max_state * policy->max / max_freq;
-	if (policy->max == policy->min) {
+	max_policy_perf = max_state * policy_max / max_freq;
+	if (policy_max == policy_min) {
 		min_policy_perf = max_policy_perf;
 	} else {
-		min_policy_perf = max_state * policy->min / max_freq;
+		min_policy_perf = max_state * policy_min / max_freq;
 		min_policy_perf = clamp_t(int32_t, min_policy_perf,
 					  0, max_policy_perf);
 	}
 
 	pr_debug("cpu:%d max_state %d min_policy_perf:%d max_policy_perf:%d\n",
-		 policy->cpu, max_state,
-		 min_policy_perf, max_policy_perf);
+		 cpu->cpu, max_state, min_policy_perf, max_policy_perf);
 
 	/* Normalize user input to [min_perf, max_perf] */
 	if (per_cpu_limits) {
@@ -2081,7 +2089,7 @@
 		global_min = DIV_ROUND_UP(turbo_max * global.min_perf_pct, 100);
 		global_min = clamp_t(int32_t, global_min, 0, global_max);
 
-		pr_debug("cpu:%d global_min:%d global_max:%d\n", policy->cpu,
+		pr_debug("cpu:%d global_min:%d global_max:%d\n", cpu->cpu,
 			 global_min, global_max);
 
 		cpu->min_perf_ratio = max(min_policy_perf, global_min);
@@ -2094,7 +2102,7 @@
 					  cpu->max_perf_ratio);
 
 	}
-	pr_debug("cpu:%d max_perf_ratio:%d min_perf_ratio:%d\n", policy->cpu,
+	pr_debug("cpu:%d max_perf_ratio:%d min_perf_ratio:%d\n", cpu->cpu,
 		 cpu->max_perf_ratio,
 		 cpu->min_perf_ratio);
 }
@@ -2114,7 +2122,7 @@
 
 	mutex_lock(&intel_pstate_limits_lock);
 
-	intel_pstate_update_perf_limits(policy, cpu);
+	intel_pstate_update_perf_limits(cpu, policy->min, policy->max);
 
 	if (cpu->policy == CPUFREQ_POLICY_PERFORMANCE) {
 		/*
@@ -2143,8 +2151,8 @@
 	return 0;
 }
 
-static void intel_pstate_adjust_policy_max(struct cpufreq_policy *policy,
-					 struct cpudata *cpu)
+static void intel_pstate_adjust_policy_max(struct cpudata *cpu,
+					   struct cpufreq_policy_data *policy)
 {
 	if (!hwp_active &&
 	    cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
@@ -2155,7 +2163,7 @@
 	}
 }
 
-static int intel_pstate_verify_policy(struct cpufreq_policy *policy)
+static int intel_pstate_verify_policy(struct cpufreq_policy_data *policy)
 {
 	struct cpudata *cpu = all_cpu_data[policy->cpu];
 
@@ -2163,11 +2171,7 @@
 	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
 				     intel_pstate_get_max_freq(cpu));
 
-	if (policy->policy != CPUFREQ_POLICY_POWERSAVE &&
-	    policy->policy != CPUFREQ_POLICY_PERFORMANCE)
-		return -EINVAL;
-
-	intel_pstate_adjust_policy_max(policy, cpu);
+	intel_pstate_adjust_policy_max(cpu, policy);
 
 	return 0;
 }
@@ -2268,7 +2272,7 @@
 	.name		= "intel_pstate",
 };
 
-static int intel_cpufreq_verify_policy(struct cpufreq_policy *policy)
+static int intel_cpufreq_verify_policy(struct cpufreq_policy_data *policy)
 {
 	struct cpudata *cpu = all_cpu_data[policy->cpu];
 
@@ -2276,9 +2280,9 @@
 	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
 				     intel_pstate_get_max_freq(cpu));
 
-	intel_pstate_adjust_policy_max(policy, cpu);
+	intel_pstate_adjust_policy_max(cpu, policy);
 
-	intel_pstate_update_perf_limits(policy, cpu);
+	intel_pstate_update_perf_limits(cpu, policy->min, policy->max);
 
 	return 0;
 }
@@ -2530,9 +2534,15 @@
 {
 	int ret;
 
-	if (size == 3 && !strncmp(buf, "off", size))
-		return intel_pstate_driver ?
-			intel_pstate_unregister_driver() : -EINVAL;
+	if (size == 3 && !strncmp(buf, "off", size)) {
+		if (!intel_pstate_driver)
+			return -EINVAL;
+
+		if (hwp_active)
+			return -EBUSY;
+
+		return intel_pstate_unregister_driver();
+	}
 
 	if (size == 6 && !strncmp(buf, "active", size)) {
 		if (intel_pstate_driver) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/longrun.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/longrun.c
@@ -122,7 +122,7 @@
  * Validates a new CPUFreq policy. This function has to be called with
  * cpufreq_driver locked.
  */
-static int longrun_verify_policy(struct cpufreq_policy *policy)
+static int longrun_verify_policy(struct cpufreq_policy_data *policy)
 {
 	if (!policy)
 		return -EINVAL;
@@ -130,10 +130,6 @@
 	policy->cpu = 0;
 	cpufreq_verify_within_cpu_limits(policy);
 
-	if ((policy->policy != CPUFREQ_POLICY_POWERSAVE) &&
-	    (policy->policy != CPUFREQ_POLICY_PERFORMANCE))
-		return -EINVAL;
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/loongson1-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/loongson1-cpufreq.c
@@ -216,6 +216,7 @@
 
 module_platform_driver(ls1x_cpufreq_platdrv);
 
+MODULE_ALIAS("platform:ls1x-cpufreq");
 MODULE_AUTHOR("Kelvin Cheung <keguang.zhang@gmail.com>");
 MODULE_DESCRIPTION("Loongson1 CPUFreq driver");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/mediatek-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/mediatek-cpufreq.c
@@ -540,6 +540,7 @@
 
 	{ }
 };
+MODULE_DEVICE_TABLE(of, mtk_cpufreq_machines);
 
 static int __init mtk_cpufreq_driver_init(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/pcc-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/pcc-cpufreq.c
@@ -109,7 +109,7 @@
 
 static struct pcc_cpu __percpu *pcc_cpu_info;
 
-static int pcc_cpufreq_verify(struct cpufreq_policy *policy)
+static int pcc_cpufreq_verify(struct cpufreq_policy_data *policy)
 {
 	cpufreq_verify_within_cpu_limits(policy);
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/powernow-k8.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/powernow-k8.c
@@ -878,9 +878,9 @@
 
 /* Take a frequency, and issue the fid/vid transition command */
 static int transition_frequency_fidvid(struct powernow_k8_data *data,
-		unsigned int index)
+		unsigned int index,
+		struct cpufreq_policy *policy)
 {
-	struct cpufreq_policy *policy;
 	u32 fid = 0;
 	u32 vid = 0;
 	int res;
@@ -912,9 +912,6 @@
 	freqs.old = find_khz_freq_from_fid(data->currfid);
 	freqs.new = find_khz_freq_from_fid(fid);
 
-	policy = cpufreq_cpu_get(smp_processor_id());
-	cpufreq_cpu_put(policy);
-
 	cpufreq_freq_transition_begin(policy, &freqs);
 	res = transition_fid_vid(data, fid, vid);
 	cpufreq_freq_transition_end(policy, &freqs, res);
@@ -969,7 +966,7 @@
 
 	powernow_k8_acpi_pst_values(data, newstate);
 
-	ret = transition_frequency_fidvid(data, newstate);
+	ret = transition_frequency_fidvid(data, newstate, pol);
 
 	if (ret) {
 		pr_err("transition frequency failed\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/powernv-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/powernv-cpufreq.c
@@ -884,12 +884,15 @@
 				unsigned long action, void *unused)
 {
 	int cpu;
-	struct cpufreq_policy cpu_policy;
+	struct cpufreq_policy *cpu_policy;
 
 	rebooting = true;
 	for_each_online_cpu(cpu) {
-		cpufreq_get_policy(&cpu_policy, cpu);
-		powernv_cpufreq_target_index(&cpu_policy, get_nominal_index());
+		cpu_policy = cpufreq_cpu_get(cpu);
+		if (!cpu_policy)
+			continue;
+		powernv_cpufreq_target_index(cpu_policy, get_nominal_index());
+		cpufreq_cpu_put(cpu_policy);
 	}
 
 	return NOTIFY_DONE;
@@ -902,6 +905,7 @@
 void powernv_cpufreq_work_fn(struct work_struct *work)
 {
 	struct chip *chip = container_of(work, struct chip, throttle);
+	struct cpufreq_policy *policy;
 	unsigned int cpu;
 	cpumask_t mask;
 
@@ -916,12 +920,14 @@
 	chip->restore = false;
 	for_each_cpu(cpu, &mask) {
 		int index;
-		struct cpufreq_policy policy;
 
-		cpufreq_get_policy(&policy, cpu);
-		index = cpufreq_table_find_index_c(&policy, policy.cur);
-		powernv_cpufreq_target_index(&policy, index);
-		cpumask_andnot(&mask, &mask, policy.cpus);
+		policy = cpufreq_cpu_get(cpu);
+		if (!policy)
+			continue;
+		index = cpufreq_table_find_index_c(policy, policy->cur);
+		powernv_cpufreq_target_index(policy, index);
+		cpumask_andnot(&mask, &mask, policy->cpus);
+		cpufreq_cpu_put(policy);
 	}
 out:
 	put_online_cpus();
@@ -1041,9 +1047,14 @@
 
 static int init_chip_info(void)
 {
-	unsigned int chip[256];
+	unsigned int *chip;
 	unsigned int cpu, i;
 	unsigned int prev_chip_id = UINT_MAX;
+	int ret = 0;
+
+	chip = kcalloc(num_possible_cpus(), sizeof(*chip), GFP_KERNEL);
+	if (!chip)
+		return -ENOMEM;
 
 	for_each_possible_cpu(cpu) {
 		unsigned int id = cpu_to_chip_id(cpu);
@@ -1055,8 +1066,10 @@
 	}
 
 	chips = kcalloc(nr_chips, sizeof(struct chip), GFP_KERNEL);
-	if (!chips)
-		return -ENOMEM;
+	if (!chips) {
+		ret = -ENOMEM;
+		goto free_and_return;
+	}
 
 	for (i = 0; i < nr_chips; i++) {
 		chips[i].id = chip[i];
@@ -1066,11 +1079,19 @@
 			per_cpu(chip_info, cpu) =  &chips[i];
 	}
 
-	return 0;
+free_and_return:
+	kfree(chip);
+	return ret;
 }
 
 static inline void clean_chip_info(void)
 {
+	int i;
+
+	/* flush any pending work items */
+	if (chips)
+		for (i = 0; i < nr_chips; i++)
+			cancel_work_sync(&chips[i].throttle);
 	kfree(chips);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/qcom-cpufreq-nvmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/qcom-cpufreq-nvmem.c
@@ -305,6 +305,7 @@
 	{ .compatible = "qcom,qcs404", .data = &match_data_qcs404 },
 	{},
 };
+MODULE_DEVICE_TABLE(of, qcom_cpufreq_match_list);
 
 /*
  * Since the driver depends on smem and nvmem drivers, which may
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/scpi-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/scpi-cpufreq.c
@@ -239,6 +239,7 @@
 };
 module_platform_driver(scpi_cpufreq_platdrv);
 
+MODULE_ALIAS("platform:scpi-cpufreq");
 MODULE_AUTHOR("Sudeep Holla <sudeep.holla@arm.com>");
 MODULE_DESCRIPTION("ARM SCPI CPUFreq interface driver");
 MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/sh-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/sh-cpufreq.c
@@ -87,7 +87,7 @@
 	return work_on_cpu(policy->cpu, __sh_cpufreq_target, &data);
 }
 
-static int sh_cpufreq_verify(struct cpufreq_policy *policy)
+static int sh_cpufreq_verify(struct cpufreq_policy_data *policy)
 {
 	struct clk *cpuclk = &per_cpu(sh_cpuclk, policy->cpu);
 	struct cpufreq_frequency_table *freq_table;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/sti-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/sti-cpufreq.c
@@ -141,7 +141,8 @@
 static const struct reg_field *sti_cpufreq_match(void)
 {
 	if (of_machine_is_compatible("st,stih407") ||
-	    of_machine_is_compatible("st,stih410"))
+	    of_machine_is_compatible("st,stih410") ||
+	    of_machine_is_compatible("st,stih418"))
 		return sti_stih407_dvfs_regfields;
 
 	return NULL;
@@ -258,7 +259,8 @@
 	int ret;
 
 	if ((!of_machine_is_compatible("st,stih407")) &&
-		(!of_machine_is_compatible("st,stih410")))
+		(!of_machine_is_compatible("st,stih410")) &&
+		(!of_machine_is_compatible("st,stih418")))
 		return -ENODEV;
 
 	ddata.cpu = get_cpu_device(0);
@@ -290,6 +292,13 @@
 }
 module_init(sti_cpufreq_init);
 
+static const struct of_device_id __maybe_unused sti_cpufreq_of_match[] = {
+	{ .compatible = "st,stih407" },
+	{ .compatible = "st,stih410" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, sti_cpufreq_of_match);
+
 MODULE_DESCRIPTION("STMicroelectronics CPUFreq/OPP driver");
 MODULE_AUTHOR("Ajitpal Singh <ajitpal.singh@st.com>");
 MODULE_AUTHOR("Lee Jones <lee.jones@linaro.org>");
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/sun50i-cpufreq-nvmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/sun50i-cpufreq-nvmem.c
@@ -25,7 +25,7 @@
 static struct platform_device *cpufreq_dt_pdev, *sun50i_cpufreq_pdev;
 
 /**
- * sun50i_cpufreq_get_efuse() - Parse and return efuse value present on SoC
+ * sun50i_cpufreq_get_efuse() - Determine speed grade from efuse value
  * @versions: Set to the value parsed from efuse
  *
  * Returns 0 if success.
@@ -69,21 +69,16 @@
 		return PTR_ERR(speedbin);
 
 	efuse_value = (*speedbin >> NVMEM_SHIFT) & NVMEM_MASK;
-	switch (efuse_value) {
-	case 0b0001:
-		*versions = 1;
-		break;
-	case 0b0011:
-		*versions = 2;
-		break;
-	default:
-		/*
-		 * For other situations, we treat it as bin0.
-		 * This vf table can be run for any good cpu.
-		 */
+
+	/*
+	 * We treat unexpected efuse values as if the SoC was from
+	 * the slowest bin. Expected efuse values are 1-3, slowest
+	 * to fastest.
+	 */
+	if (efuse_value >= 1 && efuse_value <= 3)
+		*versions = efuse_value - 1;
+	else
 		*versions = 0;
-		break;
-	}
 
 	kfree(speedbin);
 	return 0;
@@ -172,6 +167,7 @@
 	{ .compatible = "allwinner,sun50i-h6" },
 	{}
 };
+MODULE_DEVICE_TABLE(of, sun50i_cpufreq_match_list);
 
 static const struct of_device_id *sun50i_cpufreq_match_node(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpufreq/unicore2-cpufreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpufreq/unicore2-cpufreq.c
@@ -22,7 +22,7 @@
 /* make sure that only the "userspace" governor is run
  * -- anything else wouldn't make sense on this platform, anyway.
  */
-static int ucv2_verify_speed(struct cpufreq_policy *policy)
+static int ucv2_verify_speed(struct cpufreq_policy_data *policy)
 {
 	if (policy->cpu)
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpuidle/cpuidle.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpuidle/cpuidle.c
@@ -148,7 +148,8 @@
 	 */
 	stop_critical_timings();
 	drv->states[index].enter_s2idle(dev, drv, index);
-	WARN_ON(!irqs_disabled());
+	if (WARN_ON_ONCE(!irqs_disabled()))
+		local_irq_disable();
 	/*
 	 * timekeeping_resume() that will be called by tick_unfreeze() for the
 	 * first CPU executing it calls functions containing RCU read-side
@@ -384,6 +385,7 @@
 			continue;
 
 		limit_ns = (u64)drv->states[i].target_residency * NSEC_PER_USEC;
+		break;
 	}
 
 	dev->poll_limit_ns = limit_ns;
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpuidle/driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpuidle/driver.c
@@ -62,24 +62,23 @@
  * __cpuidle_set_driver - set per CPU driver variables for the given driver.
  * @drv: a valid pointer to a struct cpuidle_driver
  *
- * For each CPU in the driver's cpumask, unset the registered driver per CPU
- * to @drv.
- *
- * Returns 0 on success, -EBUSY if the CPUs have driver(s) already.
+ * Returns 0 on success, -EBUSY if any CPU in the cpumask have a driver
+ * different from drv already.
  */
 static inline int __cpuidle_set_driver(struct cpuidle_driver *drv)
 {
 	int cpu;
 
 	for_each_cpu(cpu, drv->cpumask) {
+		struct cpuidle_driver *old_drv;
 
-		if (__cpuidle_get_cpu_driver(cpu)) {
-			__cpuidle_unset_driver(drv);
+		old_drv = __cpuidle_get_cpu_driver(cpu);
+		if (old_drv && old_drv != drv)
 			return -EBUSY;
-		}
+	}
 
+	for_each_cpu(cpu, drv->cpumask)
 		per_cpu(cpuidle_drivers, cpu) = drv;
-	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpuidle/governors/teo.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpuidle/governors/teo.c
@@ -194,7 +194,7 @@
 	 * pattern detection.
 	 */
 	cpu_data->intervals[cpu_data->interval_idx++] = measured_us;
-	if (cpu_data->interval_idx > INTERVALS)
+	if (cpu_data->interval_idx >= INTERVALS)
 		cpu_data->interval_idx = 0;
 }
 
@@ -233,8 +233,8 @@
 {
 	struct teo_cpu *cpu_data = per_cpu_ptr(&teo_cpus, dev->cpu);
 	int latency_req = cpuidle_governor_latency_req(dev->cpu);
-	unsigned int duration_us, count;
-	int max_early_idx, constraint_idx, idx, i;
+	unsigned int duration_us, hits, misses, early_hits;
+	int max_early_idx, prev_max_early_idx, constraint_idx, idx, i;
 	ktime_t delta_tick;
 
 	if (dev->last_state_idx >= 0) {
@@ -247,8 +247,11 @@
 	cpu_data->sleep_length_ns = tick_nohz_get_sleep_length(&delta_tick);
 	duration_us = ktime_to_us(cpu_data->sleep_length_ns);
 
-	count = 0;
+	hits = 0;
+	misses = 0;
+	early_hits = 0;
 	max_early_idx = -1;
+	prev_max_early_idx = -1;
 	constraint_idx = drv->state_count;
 	idx = -1;
 
@@ -258,23 +261,62 @@
 
 		if (s->disabled || su->disable) {
 			/*
-			 * If the "early hits" metric of a disabled state is
-			 * greater than the current maximum, it should be taken
-			 * into account, because it would be a mistake to select
-			 * a deeper state with lower "early hits" metric.  The
-			 * index cannot be changed to point to it, however, so
-			 * just increase the max count alone and let the index
-			 * still point to a shallower idle state.
+			 * Ignore disabled states with target residencies beyond
+			 * the anticipated idle duration.
 			 */
-			if (max_early_idx >= 0 &&
-			    count < cpu_data->states[i].early_hits)
-				count = cpu_data->states[i].early_hits;
+			if (s->target_residency > duration_us)
+				continue;
+
+			/*
+			 * This state is disabled, so the range of idle duration
+			 * values corresponding to it is covered by the current
+			 * candidate state, but still the "hits" and "misses"
+			 * metrics of the disabled state need to be used to
+			 * decide whether or not the state covering the range in
+			 * question is good enough.
+			 */
+			hits = cpu_data->states[i].hits;
+			misses = cpu_data->states[i].misses;
+
+			if (early_hits >= cpu_data->states[i].early_hits ||
+			    idx < 0)
+				continue;
+
+			/*
+			 * If the current candidate state has been the one with
+			 * the maximum "early hits" metric so far, the "early
+			 * hits" metric of the disabled state replaces the
+			 * current "early hits" count to avoid selecting a
+			 * deeper state with lower "early hits" metric.
+			 */
+			if (max_early_idx == idx) {
+				early_hits = cpu_data->states[i].early_hits;
+				continue;
+			}
+
+			/*
+			 * The current candidate state is closer to the disabled
+			 * one than the current maximum "early hits" state, so
+			 * replace the latter with it, but in case the maximum
+			 * "early hits" state index has not been set so far,
+			 * check if the current candidate state is not too
+			 * shallow for that role.
+			 */
+			if (!(tick_nohz_tick_stopped() &&
+			      drv->states[idx].target_residency < TICK_USEC)) {
+				prev_max_early_idx = max_early_idx;
+				early_hits = cpu_data->states[i].early_hits;
+				max_early_idx = idx;
+			}
 
 			continue;
 		}
 
-		if (idx < 0)
+		if (idx < 0) {
 			idx = i; /* first enabled state */
+			hits = cpu_data->states[i].hits;
+			misses = cpu_data->states[i].misses;
+		}
 
 		if (s->target_residency > duration_us)
 			break;
@@ -283,11 +325,14 @@
 			constraint_idx = i;
 
 		idx = i;
+		hits = cpu_data->states[i].hits;
+		misses = cpu_data->states[i].misses;
 
-		if (count < cpu_data->states[i].early_hits &&
+		if (early_hits < cpu_data->states[i].early_hits &&
 		    !(tick_nohz_tick_stopped() &&
 		      drv->states[i].target_residency < TICK_USEC)) {
-			count = cpu_data->states[i].early_hits;
+			prev_max_early_idx = max_early_idx;
+			early_hits = cpu_data->states[i].early_hits;
 			max_early_idx = i;
 		}
 	}
@@ -300,10 +345,19 @@
 	 * "early hits" metric, but if that cannot be determined, just use the
 	 * state selected so far.
 	 */
-	if (cpu_data->states[idx].hits <= cpu_data->states[idx].misses &&
-	    max_early_idx >= 0) {
-		idx = max_early_idx;
-		duration_us = drv->states[idx].target_residency;
+	if (hits <= misses) {
+		/*
+		 * The current candidate state is not suitable, so take the one
+		 * whose "early hits" metric is the maximum for the range of
+		 * shallower states.
+		 */
+		if (idx == max_early_idx)
+			max_early_idx = prev_max_early_idx;
+
+		if (max_early_idx >= 0) {
+			idx = max_early_idx;
+			duration_us = drv->states[idx].target_residency;
+		}
 	}
 
 	/*
@@ -316,10 +370,9 @@
 	if (idx < 0) {
 		idx = 0; /* No states enabled. Must use 0. */
 	} else if (idx > 0) {
+		unsigned int count = 0;
 		u64 sum = 0;
 
-		count = 0;
-
 		/*
 		 * Count and sum the most recent idle duration values less than
 		 * the current expected idle duration value.
--- linux-gkeop-5.4-5.4.0.orig/drivers/cpuidle/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/cpuidle/sysfs.c
@@ -480,7 +480,7 @@
 		ret = kobject_init_and_add(&kobj->kobj, &ktype_state_cpuidle,
 					   &kdev->kobj, "state%d", i);
 		if (ret) {
-			kfree(kobj);
+			kobject_put(&kobj->kobj);
 			goto error_state;
 		}
 		cpuidle_add_s2idle_attr_group(kobj);
@@ -611,7 +611,7 @@
 	ret = kobject_init_and_add(&kdrv->kobj, &ktype_driver_cpuidle,
 				   &kdev->kobj, "driver");
 	if (ret) {
-		kfree(kdrv);
+		kobject_put(&kdrv->kobj);
 		return ret;
 	}
 
@@ -705,7 +705,7 @@
 	error = kobject_init_and_add(&kdev->kobj, &ktype_cpuidle, &cpu_dev->kobj,
 				   "cpuidle");
 	if (error) {
-		kfree(kdev);
+		kobject_put(&kdev->kobj);
 		return error;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/Kconfig
@@ -287,6 +287,7 @@
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
 	select CRYPTO_HASH
+	select CRYPTO_LIB_DES
 	select HW_RANDOM
 	depends on FSL_SOC
 	help
@@ -332,6 +333,7 @@
 	depends on PPC && 4xx
 	select CRYPTO_HASH
 	select CRYPTO_AEAD
+	select CRYPTO_AES
 	select CRYPTO_LIB_AES
 	select CRYPTO_CCM
 	select CRYPTO_CTR
@@ -489,11 +491,9 @@
 endif # if CRYPTO_DEV_UX500
 
 config CRYPTO_DEV_ATMEL_AUTHENC
-	tristate "Support for Atmel IPSEC/SSL hw accelerator"
+	bool "Support for Atmel IPSEC/SSL hw accelerator"
 	depends on ARCH_AT91 || COMPILE_TEST
-	select CRYPTO_AUTHENC
-	select CRYPTO_DEV_ATMEL_AES
-	select CRYPTO_DEV_ATMEL_SHA
+	depends on CRYPTO_DEV_ATMEL_AES
 	help
 	  Some Atmel processors can combine the AES and SHA hw accelerators
 	  to enhance support of IPSEC/SSL.
@@ -506,6 +506,8 @@
 	select CRYPTO_AES
 	select CRYPTO_AEAD
 	select CRYPTO_BLKCIPHER
+	select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
+	select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
 	help
 	  Some Atmel processors have AES hw accelerator.
 	  Select this if you want to use the Atmel module for
@@ -542,6 +544,7 @@
 
 config CRYPTO_DEV_ATMEL_I2C
 	tristate
+	select BITREVERSE
 
 config CRYPTO_DEV_ATMEL_ECC
 	tristate "Support for Microchip / Atmel ECC hw accelerator"
@@ -737,7 +740,7 @@
 
 config CRYPTO_DEV_SAFEXCEL
 	tristate "Inside Secure's SafeXcel cryptographic engine driver"
-	depends on OF || PCI || COMPILE_TEST
+	depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
 	select CRYPTO_LIB_AES
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/amcc/crypto4xx_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/amcc/crypto4xx_core.c
@@ -365,12 +365,8 @@
 		dma_alloc_coherent(dev->core_dev->device,
 			PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD,
 			&dev->scatter_buffer_pa, GFP_ATOMIC);
-	if (!dev->scatter_buffer_va) {
-		dma_free_coherent(dev->core_dev->device,
-				  sizeof(struct ce_sd) * PPC4XX_NUM_SD,
-				  dev->sdr, dev->sdr_pa);
+	if (!dev->scatter_buffer_va)
 		return -ENOMEM;
-	}
 
 	for (i = 0; i < PPC4XX_NUM_SD; i++) {
 		dev->sdr[i].ptr = dev->scatter_buffer_pa +
@@ -920,7 +916,7 @@
 	}
 
 	pd->pd_ctl.w = PD_CTL_HOST_READY |
-		((crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AHASH) |
+		((crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AHASH) ||
 		 (crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AEAD) ?
 			PD_CTL_HASH_FINAL : 0);
 	pd->pd_ctl_len.w = 0x00400000 | (assoclen + datalen);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/atmel-aes.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/atmel-aes.c
@@ -88,7 +88,6 @@
 struct atmel_aes_caps {
 	bool			has_dualbuff;
 	bool			has_cfb64;
-	bool			has_ctr32;
 	bool			has_gcm;
 	bool			has_xts;
 	bool			has_authenc;
@@ -145,7 +144,7 @@
 	u32			key2[AES_KEYSIZE_256 / sizeof(u32)];
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 struct atmel_aes_authenc_ctx {
 	struct atmel_aes_base_ctx	base;
 	struct atmel_sha_authenc_ctx	*auth;
@@ -157,7 +156,7 @@
 	u32			lastc[AES_BLOCK_SIZE / sizeof(u32)];
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 struct atmel_aes_authenc_reqctx {
 	struct atmel_aes_reqctx	base;
 
@@ -486,13 +485,36 @@
 	return (dd->flags & AES_FLAGS_ENCRYPT);
 }
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 static void atmel_aes_authenc_complete(struct atmel_aes_dev *dd, int err);
 #endif
 
+static void atmel_aes_set_iv_as_last_ciphertext_block(struct atmel_aes_dev *dd)
+{
+	struct ablkcipher_request *req = ablkcipher_request_cast(dd->areq);
+	struct atmel_aes_reqctx *rctx = ablkcipher_request_ctx(req);
+	struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+	unsigned int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+
+	if (req->nbytes < ivsize)
+		return;
+
+	if (rctx->mode & AES_FLAGS_ENCRYPT) {
+		scatterwalk_map_and_copy(req->info, req->dst,
+					 req->nbytes - ivsize, ivsize, 0);
+	} else {
+		if (req->src == req->dst)
+			memcpy(req->info, rctx->lastc, ivsize);
+		else
+			scatterwalk_map_and_copy(req->info, req->src,
+						 req->nbytes - ivsize,
+						 ivsize, 0);
+	}
+}
+
 static inline int atmel_aes_complete(struct atmel_aes_dev *dd, int err)
 {
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (dd->ctx->is_aead)
 		atmel_aes_authenc_complete(dd, err);
 #endif
@@ -500,26 +522,8 @@
 	clk_disable(dd->iclk);
 	dd->flags &= ~AES_FLAGS_BUSY;
 
-	if (!dd->ctx->is_aead) {
-		struct ablkcipher_request *req =
-			ablkcipher_request_cast(dd->areq);
-		struct atmel_aes_reqctx *rctx = ablkcipher_request_ctx(req);
-		struct crypto_ablkcipher *ablkcipher =
-			crypto_ablkcipher_reqtfm(req);
-		int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
-
-		if (rctx->mode & AES_FLAGS_ENCRYPT) {
-			scatterwalk_map_and_copy(req->info, req->dst,
-				req->nbytes - ivsize, ivsize, 0);
-		} else {
-			if (req->src == req->dst) {
-				memcpy(req->info, rctx->lastc, ivsize);
-			} else {
-				scatterwalk_map_and_copy(req->info, req->src,
-					req->nbytes - ivsize, ivsize, 0);
-			}
-		}
-	}
+	if (!dd->ctx->is_aead)
+		atmel_aes_set_iv_as_last_ciphertext_block(dd);
 
 	if (dd->is_async)
 		dd->areq->complete(dd->areq, err);
@@ -1008,8 +1012,9 @@
 	struct atmel_aes_ctr_ctx *ctx = atmel_aes_ctr_ctx_cast(dd->ctx);
 	struct ablkcipher_request *req = ablkcipher_request_cast(dd->areq);
 	struct scatterlist *src, *dst;
-	u32 ctr, blocks;
 	size_t datalen;
+	u32 ctr;
+	u16 blocks, start, end;
 	bool use_dma, fragmented = false;
 
 	/* Check for transfer completion. */
@@ -1021,27 +1026,17 @@
 	datalen = req->nbytes - ctx->offset;
 	blocks = DIV_ROUND_UP(datalen, AES_BLOCK_SIZE);
 	ctr = be32_to_cpu(ctx->iv[3]);
-	if (dd->caps.has_ctr32) {
-		/* Check 32bit counter overflow. */
-		u32 start = ctr;
-		u32 end = start + blocks - 1;
-
-		if (end < start) {
-			ctr |= 0xffffffff;
-			datalen = AES_BLOCK_SIZE * -start;
-			fragmented = true;
-		}
-	} else {
-		/* Check 16bit counter overflow. */
-		u16 start = ctr & 0xffff;
-		u16 end = start + (u16)blocks - 1;
-
-		if (blocks >> 16 || end < start) {
-			ctr |= 0xffff;
-			datalen = AES_BLOCK_SIZE * (0x10000-start);
-			fragmented = true;
-		}
+
+	/* Check 16bit counter overflow. */
+	start = ctr & 0xffff;
+	end = start + blocks - 1;
+
+	if (blocks >> 16 || end < start) {
+		ctr |= 0xffff;
+		datalen = AES_BLOCK_SIZE * (0x10000 - start);
+		fragmented = true;
 	}
+
 	use_dma = (datalen >= ATMEL_AES_DMA_THRESHOLD);
 
 	/* Jump to offset. */
@@ -1125,10 +1120,12 @@
 	rctx->mode = mode;
 
 	if (!(mode & AES_FLAGS_ENCRYPT) && (req->src == req->dst)) {
-		int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+		unsigned int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
 
-		scatterwalk_map_and_copy(rctx->lastc, req->src,
-			(req->nbytes - ivsize), ivsize, 0);
+		if (req->nbytes >= ivsize)
+			scatterwalk_map_and_copy(rctx->lastc, req->src,
+						 req->nbytes - ivsize,
+						 ivsize, 0);
 	}
 
 	return atmel_aes_handle_queue(dd, &req->base);
@@ -1973,7 +1970,7 @@
 	}
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 /* authenc aead functions */
 
 static int atmel_aes_authenc_start(struct atmel_aes_dev *dd);
@@ -2460,7 +2457,7 @@
 {
 	int i;
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (dd->caps.has_authenc)
 		for (i = 0; i < ARRAY_SIZE(aes_authenc_algs); i++)
 			crypto_unregister_aead(&aes_authenc_algs[i]);
@@ -2507,7 +2504,7 @@
 			goto err_aes_xts_alg;
 	}
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (dd->caps.has_authenc) {
 		for (i = 0; i < ARRAY_SIZE(aes_authenc_algs); i++) {
 			err = crypto_register_aead(&aes_authenc_algs[i]);
@@ -2519,7 +2516,7 @@
 
 	return 0;
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	/* i = ARRAY_SIZE(aes_authenc_algs); */
 err_aes_authenc_alg:
 	for (j = 0; j < i; j++)
@@ -2543,7 +2540,6 @@
 {
 	dd->caps.has_dualbuff = 0;
 	dd->caps.has_cfb64 = 0;
-	dd->caps.has_ctr32 = 0;
 	dd->caps.has_gcm = 0;
 	dd->caps.has_xts = 0;
 	dd->caps.has_authenc = 0;
@@ -2554,7 +2550,6 @@
 	case 0x500:
 		dd->caps.has_dualbuff = 1;
 		dd->caps.has_cfb64 = 1;
-		dd->caps.has_ctr32 = 1;
 		dd->caps.has_gcm = 1;
 		dd->caps.has_xts = 1;
 		dd->caps.has_authenc = 1;
@@ -2563,7 +2558,6 @@
 	case 0x200:
 		dd->caps.has_dualbuff = 1;
 		dd->caps.has_cfb64 = 1;
-		dd->caps.has_ctr32 = 1;
 		dd->caps.has_gcm = 1;
 		dd->caps.max_burst_size = 4;
 		break;
@@ -2709,7 +2703,7 @@
 
 	atmel_aes_get_cap(aes_dd);
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (aes_dd->caps.has_authenc && !atmel_sha_authenc_is_ready()) {
 		err = -EPROBE_DEFER;
 		goto iclk_unprepare;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/atmel-authenc.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/atmel-authenc.h
@@ -12,7 +12,7 @@
 #ifndef __ATMEL_AUTHENC_H__
 #define __ATMEL_AUTHENC_H__
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 
 #include <crypto/authenc.h>
 #include <crypto/hash.h>
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/atmel-sha.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/atmel-sha.c
@@ -1918,12 +1918,7 @@
 {
 	struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm);
 
-	if (atmel_sha_hmac_key_set(&hmac->hkey, key, keylen)) {
-		crypto_ahash_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
-		return -EINVAL;
-	}
-
-	return 0;
+	return atmel_sha_hmac_key_set(&hmac->hkey, key, keylen);
 }
 
 static int atmel_sha_hmac_init(struct ahash_request *req)
@@ -2212,7 +2207,7 @@
 },
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 /* authenc functions */
 
 static int atmel_sha_authenc_init2(struct atmel_sha_dev *dd);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/axis/artpec6_crypto.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/axis/artpec6_crypto.c
@@ -1251,7 +1251,7 @@
 
 	if (len != 16 && len != 24 && len != 32) {
 		crypto_aead_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
-		return -1;
+		return -EINVAL;
 	}
 
 	ctx->key_length = len;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/bcm/cipher.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/bcm/cipher.c
@@ -41,7 +41,7 @@
 
 /* ================= Device Structure ================== */
 
-struct device_private iproc_priv;
+struct bcm_device_private iproc_priv;
 
 /* ==================== Parameters ===================== */
 
@@ -2937,7 +2937,6 @@
 
 	ctx->enckeylen = keylen;
 	ctx->authkeylen = 0;
-	memcpy(ctx->enckey, key, ctx->enckeylen);
 
 	switch (ctx->enckeylen) {
 	case AES_KEYSIZE_128:
@@ -2953,6 +2952,8 @@
 		goto badkey;
 	}
 
+	memcpy(ctx->enckey, key, ctx->enckeylen);
+
 	flow_log("  enckeylen:%u authkeylen:%u\n", ctx->enckeylen,
 		 ctx->authkeylen);
 	flow_dump("  enc: ", ctx->enckey, ctx->enckeylen);
@@ -3013,6 +3014,10 @@
 	struct iproc_ctx_s *ctx = crypto_aead_ctx(cipher);
 
 	flow_log("%s\n", __func__);
+
+	if (keylen < GCM_ESP_SALT_SIZE)
+		return -EINVAL;
+
 	ctx->salt_len = GCM_ESP_SALT_SIZE;
 	ctx->salt_offset = GCM_ESP_SALT_OFFSET;
 	memcpy(ctx->salt, key + keylen - GCM_ESP_SALT_SIZE, GCM_ESP_SALT_SIZE);
@@ -3041,6 +3046,10 @@
 	struct iproc_ctx_s *ctx = crypto_aead_ctx(cipher);
 
 	flow_log("%s\n", __func__);
+
+	if (keylen < GCM_ESP_SALT_SIZE)
+		return -EINVAL;
+
 	ctx->salt_len = GCM_ESP_SALT_SIZE;
 	ctx->salt_offset = GCM_ESP_SALT_OFFSET;
 	memcpy(ctx->salt, key + keylen - GCM_ESP_SALT_SIZE, GCM_ESP_SALT_SIZE);
@@ -3070,6 +3079,10 @@
 	struct iproc_ctx_s *ctx = crypto_aead_ctx(cipher);
 
 	flow_log("%s\n", __func__);
+
+	if (keylen < CCM_ESP_SALT_SIZE)
+		return -EINVAL;
+
 	ctx->salt_len = CCM_ESP_SALT_SIZE;
 	ctx->salt_offset = CCM_ESP_SALT_OFFSET;
 	memcpy(ctx->salt, key + keylen - CCM_ESP_SALT_SIZE, CCM_ESP_SALT_SIZE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/bcm/cipher.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/bcm/cipher.h
@@ -418,7 +418,7 @@
 	u32 num_chan;
 };
 
-struct device_private {
+struct bcm_device_private {
 	struct platform_device *pdev;
 
 	struct spu_hw spu;
@@ -465,6 +465,6 @@
 	struct mbox_chan **mbox;
 };
 
-extern struct device_private iproc_priv;
+extern struct bcm_device_private iproc_priv;
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/bcm/util.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/bcm/util.c
@@ -348,7 +348,7 @@
 static ssize_t spu_debugfs_read(struct file *filp, char __user *ubuf,
 				size_t count, loff_t *offp)
 {
-	struct device_private *ipriv;
+	struct bcm_device_private *ipriv;
 	char *buf;
 	ssize_t ret, out_offset, out_count;
 	int i;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/Kconfig
@@ -112,6 +112,7 @@
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
 	select CRYPTO_DES
+	select CRYPTO_XTS
 	help
 	  Selecting this will use CAAM Queue Interface (QI) for sending
 	  & receiving crypto jobs to/from CAAM. This gives better performance
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/caamalg.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/caamalg.c
@@ -818,12 +818,6 @@
 	return skcipher_setkey(skcipher, key, keylen, ctx1_iv_off);
 }
 
-static int arc4_skcipher_setkey(struct crypto_skcipher *skcipher,
-				const u8 *key, unsigned int keylen)
-{
-	return skcipher_setkey(skcipher, key, keylen, 0);
-}
-
 static int des_skcipher_setkey(struct crypto_skcipher *skcipher,
 			       const u8 *key, unsigned int keylen)
 {
@@ -1810,7 +1804,7 @@
 
 	if (ivsize || mapped_dst_nents > 1)
 		sg_to_sec4_set_last(edesc->sec4_sg + dst_sg_idx +
-				    mapped_dst_nents);
+				    mapped_dst_nents - 1 + !!ivsize);
 
 	if (sec4_sg_bytes) {
 		edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg,
@@ -2058,21 +2052,6 @@
 		},
 		.caam.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_ECB,
 	},
-	{
-		.skcipher = {
-			.base = {
-				.cra_name = "ecb(arc4)",
-				.cra_driver_name = "ecb-arc4-caam",
-				.cra_blocksize = ARC4_BLOCK_SIZE,
-			},
-			.setkey = arc4_skcipher_setkey,
-			.encrypt = skcipher_encrypt,
-			.decrypt = skcipher_decrypt,
-			.min_keysize = ARC4_MIN_KEY_SIZE,
-			.max_keysize = ARC4_MAX_KEY_SIZE,
-		},
-		.caam.class1_alg_type = OP_ALG_ALGSEL_ARC4 | OP_ALG_AAI_ECB,
-	},
 };
 
 static struct caam_aead_alg driver_aeads[] = {
@@ -3533,7 +3512,6 @@
 	struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
 	int i = 0, err = 0;
 	u32 aes_vid, aes_inst, des_inst, md_vid, md_inst, ccha_inst, ptha_inst;
-	u32 arc4_inst;
 	unsigned int md_limit = SHA512_DIGEST_SIZE;
 	bool registered = false, gcm_support;
 
@@ -3553,8 +3531,6 @@
 			   CHA_ID_LS_DES_SHIFT;
 		aes_inst = cha_inst & CHA_ID_LS_AES_MASK;
 		md_inst = (cha_inst & CHA_ID_LS_MD_MASK) >> CHA_ID_LS_MD_SHIFT;
-		arc4_inst = (cha_inst & CHA_ID_LS_ARC4_MASK) >>
-			    CHA_ID_LS_ARC4_SHIFT;
 		ccha_inst = 0;
 		ptha_inst = 0;
 
@@ -3575,7 +3551,6 @@
 		md_inst = mdha & CHA_VER_NUM_MASK;
 		ccha_inst = rd_reg32(&priv->ctrl->vreg.ccha) & CHA_VER_NUM_MASK;
 		ptha_inst = rd_reg32(&priv->ctrl->vreg.ptha) & CHA_VER_NUM_MASK;
-		arc4_inst = rd_reg32(&priv->ctrl->vreg.afha) & CHA_VER_NUM_MASK;
 
 		gcm_support = aesa & CHA_VER_MISC_AES_GCM;
 	}
@@ -3598,10 +3573,6 @@
 		if (!aes_inst && (alg_sel == OP_ALG_ALGSEL_AES))
 				continue;
 
-		/* Skip ARC4 algorithms if not supported by device */
-		if (!arc4_inst && alg_sel == OP_ALG_ALGSEL_ARC4)
-			continue;
-
 		/*
 		 * Check support for AES modes not available
 		 * on LP devices.
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/caamalg_desc.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/caamalg_desc.c
@@ -1379,6 +1379,9 @@
 				const u32 ctx1_iv_off)
 {
 	u32 *key_jump_cmd;
+	u32 options = cdata->algtype | OP_ALG_AS_INIT | OP_ALG_ENCRYPT;
+	bool is_chacha20 = ((cdata->algtype & OP_ALG_ALGSEL_MASK) ==
+			    OP_ALG_ALGSEL_CHACHA20);
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
 	/* Skip if already shared */
@@ -1417,14 +1420,15 @@
 				      LDST_OFFSET_SHIFT));
 
 	/* Load operation */
-	append_operation(desc, cdata->algtype | OP_ALG_AS_INIT |
-			 OP_ALG_ENCRYPT);
+	if (is_chacha20)
+		options |= OP_ALG_AS_FINALIZE;
+	append_operation(desc, options);
 
 	/* Perform operation */
 	skcipher_append_src_dst(desc);
 
 	/* Store IV */
-	if (ivsize)
+	if (!is_chacha20 && ivsize)
 		append_seq_store(desc, ivsize, LDST_SRCDST_BYTE_CONTEXT |
 				 LDST_CLASS_1_CCB | (ctx1_iv_off <<
 				 LDST_OFFSET_SHIFT));
@@ -1451,6 +1455,8 @@
 				const u32 ctx1_iv_off)
 {
 	u32 *key_jump_cmd;
+	bool is_chacha20 = ((cdata->algtype & OP_ALG_ALGSEL_MASK) ==
+			    OP_ALG_ALGSEL_CHACHA20);
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
 	/* Skip if already shared */
@@ -1499,7 +1505,7 @@
 	skcipher_append_src_dst(desc);
 
 	/* Store IV */
-	if (ivsize)
+	if (!is_chacha20 && ivsize)
 		append_seq_store(desc, ivsize, LDST_SRCDST_BYTE_CONTEXT |
 				 LDST_CLASS_1_CCB | (ctx1_iv_off <<
 				 LDST_OFFSET_SHIFT));
@@ -1518,7 +1524,13 @@
  */
 void cnstr_shdsc_xts_skcipher_encap(u32 * const desc, struct alginfo *cdata)
 {
-	__be64 sector_size = cpu_to_be64(512);
+	/*
+	 * Set sector size to a big value, practically disabling
+	 * sector size segmentation in xts implementation. We cannot
+	 * take full advantage of this HW feature with existing
+	 * crypto API / dm-crypt SW architecture.
+	 */
+	__be64 sector_size = cpu_to_be64(BIT(15));
 	u32 *key_jump_cmd;
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
@@ -1571,7 +1583,13 @@
  */
 void cnstr_shdsc_xts_skcipher_decap(u32 * const desc, struct alginfo *cdata)
 {
-	__be64 sector_size = cpu_to_be64(512);
+	/*
+	 * Set sector size to a big value, practically disabling
+	 * sector size segmentation in xts implementation. We cannot
+	 * take full advantage of this HW feature with existing
+	 * crypto API / dm-crypt SW architecture.
+	 */
+	__be64 sector_size = cpu_to_be64(BIT(15));
 	u32 *key_jump_cmd;
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/caamalg_qi.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/caamalg_qi.c
@@ -18,6 +18,7 @@
 #include "qi.h"
 #include "jr.h"
 #include "caamalg_desc.h"
+#include <asm/unaligned.h>
 
 /*
  * crypto alg
@@ -67,6 +68,11 @@
 	struct device *qidev;
 	spinlock_t lock;	/* Protects multiple init of driver context */
 	struct caam_drv_ctx *drv_ctx[NUM_OP];
+	struct crypto_skcipher *fallback;
+};
+
+struct caam_skcipher_req_ctx {
+	struct skcipher_request fallback_req;
 };
 
 static int aead_set_sh_desc(struct crypto_aead *aead)
@@ -745,12 +751,17 @@
 	struct caam_ctx *ctx = crypto_skcipher_ctx(skcipher);
 	struct device *jrdev = ctx->jrdev;
 	int ret = 0;
+	int err;
 
 	if (keylen != 2 * AES_MIN_KEY_SIZE  && keylen != 2 * AES_MAX_KEY_SIZE) {
 		dev_err(jrdev, "key size mismatch\n");
 		goto badkey;
 	}
 
+	err = crypto_skcipher_setkey(ctx->fallback, key, keylen);
+	if (err)
+		return err;
+
 	ctx->cdata.keylen = keylen;
 	ctx->cdata.key_virt = key;
 	ctx->cdata.key_inline = true;
@@ -1395,6 +1406,14 @@
 	return edesc;
 }
 
+static inline bool xts_skcipher_ivsize(struct skcipher_request *req)
+{
+	struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
+	unsigned int ivsize = crypto_skcipher_ivsize(skcipher);
+
+	return !!get_unaligned((u64 *)(req->iv + (ivsize / 2)));
+}
+
 static inline int skcipher_crypt(struct skcipher_request *req, bool encrypt)
 {
 	struct skcipher_edesc *edesc;
@@ -1405,6 +1424,21 @@
 	if (!req->cryptlen)
 		return 0;
 
+	if (ctx->fallback && xts_skcipher_ivsize(req)) {
+		struct caam_skcipher_req_ctx *rctx = skcipher_request_ctx(req);
+
+		skcipher_request_set_tfm(&rctx->fallback_req, ctx->fallback);
+		skcipher_request_set_callback(&rctx->fallback_req,
+					      req->base.flags,
+					      req->base.complete,
+					      req->base.data);
+		skcipher_request_set_crypt(&rctx->fallback_req, req->src,
+					   req->dst, req->cryptlen, req->iv);
+
+		return encrypt ? crypto_skcipher_encrypt(&rctx->fallback_req) :
+				 crypto_skcipher_decrypt(&rctx->fallback_req);
+	}
+
 	if (unlikely(caam_congested))
 		return -EAGAIN;
 
@@ -1529,6 +1563,7 @@
 			.base = {
 				.cra_name = "xts(aes)",
 				.cra_driver_name = "xts-aes-caam-qi",
+				.cra_flags = CRYPTO_ALG_NEED_FALLBACK,
 				.cra_blocksize = AES_BLOCK_SIZE,
 			},
 			.setkey = xts_skcipher_setkey,
@@ -2462,9 +2497,32 @@
 	struct skcipher_alg *alg = crypto_skcipher_alg(tfm);
 	struct caam_skcipher_alg *caam_alg =
 		container_of(alg, typeof(*caam_alg), skcipher);
+	struct caam_ctx *ctx = crypto_skcipher_ctx(tfm);
+	u32 alg_aai = caam_alg->caam.class1_alg_type & OP_ALG_AAI_MASK;
+	int ret = 0;
+
+	if (alg_aai == OP_ALG_AAI_XTS) {
+		const char *tfm_name = crypto_tfm_alg_name(&tfm->base);
+		struct crypto_skcipher *fallback;
+
+		fallback = crypto_alloc_skcipher(tfm_name, 0,
+						 CRYPTO_ALG_NEED_FALLBACK);
+		if (IS_ERR(fallback)) {
+			dev_err(ctx->jrdev, "Failed to allocate %s fallback: %ld\n",
+				tfm_name, PTR_ERR(fallback));
+			return PTR_ERR(fallback);
+		}
+
+		ctx->fallback = fallback;
+		crypto_skcipher_set_reqsize(tfm, sizeof(struct caam_skcipher_req_ctx) +
+					    crypto_skcipher_reqsize(fallback));
+	}
+
+	ret = caam_init_common(ctx, &caam_alg->caam, false);
+	if (ret && ctx->fallback)
+		crypto_free_skcipher(ctx->fallback);
 
-	return caam_init_common(crypto_skcipher_ctx(tfm), &caam_alg->caam,
-				false);
+	return ret;
 }
 
 static int caam_aead_init(struct crypto_aead *tfm)
@@ -2490,7 +2548,11 @@
 
 static void caam_cra_exit(struct crypto_skcipher *tfm)
 {
-	caam_exit_common(crypto_skcipher_ctx(tfm));
+	struct caam_ctx *ctx = crypto_skcipher_ctx(tfm);
+
+	if (ctx->fallback)
+		crypto_free_skcipher(ctx->fallback);
+	caam_exit_common(ctx);
 }
 
 static void caam_aead_exit(struct crypto_aead *tfm)
@@ -2524,7 +2586,7 @@
 	alg->base.cra_module = THIS_MODULE;
 	alg->base.cra_priority = CAAM_CRA_PRIORITY;
 	alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-	alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+	alg->base.cra_flags |= CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
 
 	alg->init = caam_cra_init;
 	alg->exit = caam_cra_exit;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/caamalg_qi2.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/caamalg_qi2.c
@@ -2481,7 +2481,7 @@
 				.cra_name = "echainiv(authenc(hmac(sha256),"
 					    "cbc(des)))",
 				.cra_driver_name = "echainiv-authenc-"
-						   "hmac-sha256-cbc-desi-"
+						   "hmac-sha256-cbc-des-"
 						   "caam-qi2",
 				.cra_blocksize = DES_BLOCK_SIZE,
 			},
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/compat.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/compat.h
@@ -43,7 +43,6 @@
 #include <crypto/akcipher.h>
 #include <crypto/scatterwalk.h>
 #include <crypto/skcipher.h>
-#include <crypto/arc4.h>
 #include <crypto/internal/skcipher.h>
 #include <crypto/internal/hash.h>
 #include <crypto/internal/rsa.h>
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/caam/ctrl.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/caam/ctrl.c
@@ -685,11 +685,9 @@
 	of_node_put(np);
 
 	if (!ctrlpriv->mc_en)
-		clrsetbits_32(&ctrl->mcr, MCFGR_AWCACHE_MASK | MCFGR_LONG_PTR,
+		clrsetbits_32(&ctrl->mcr, MCFGR_AWCACHE_MASK,
 			      MCFGR_AWCACHE_CACH | MCFGR_AWCACHE_BUFF |
-			      MCFGR_WDENABLE | MCFGR_LARGE_BURST |
-			      (sizeof(dma_addr_t) == sizeof(u64) ?
-			       MCFGR_LONG_PTR : 0));
+			      MCFGR_WDENABLE | MCFGR_LARGE_BURST);
 
 	handle_imx6_err005766(&ctrl->mcr);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/cavium/cpt/cptvf_algs.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/cavium/cpt/cptvf_algs.c
@@ -200,6 +200,7 @@
 	int status;
 
 	memset(req_info, 0, sizeof(struct cpt_request_info));
+	req_info->may_sleep = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) != 0;
 	memset(fctx, 0, sizeof(struct fc_context));
 	create_input_list(req, enc, enc_iv_len);
 	create_output_list(req, enc_iv_len);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
@@ -133,7 +133,7 @@
 
 	/* Setup gather (input) components */
 	g_sz_bytes = ((req->incnt + 3) / 4) * sizeof(struct sglist_component);
-	info->gather_components = kzalloc(g_sz_bytes, GFP_KERNEL);
+	info->gather_components = kzalloc(g_sz_bytes, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->gather_components) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -150,7 +150,7 @@
 
 	/* Setup scatter (output) components */
 	s_sz_bytes = ((req->outcnt + 3) / 4) * sizeof(struct sglist_component);
-	info->scatter_components = kzalloc(s_sz_bytes, GFP_KERNEL);
+	info->scatter_components = kzalloc(s_sz_bytes, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->scatter_components) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -167,7 +167,7 @@
 
 	/* Create and initialize DPTR */
 	info->dlen = g_sz_bytes + s_sz_bytes + SG_LIST_HDR_SIZE;
-	info->in_buffer = kzalloc(info->dlen, GFP_KERNEL);
+	info->in_buffer = kzalloc(info->dlen, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->in_buffer) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -195,7 +195,7 @@
 	}
 
 	/* Create and initialize RPTR */
-	info->out_buffer = kzalloc(COMPLETION_CODE_SIZE, GFP_KERNEL);
+	info->out_buffer = kzalloc(COMPLETION_CODE_SIZE, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->out_buffer) {
 		ret = -ENOMEM;
 		goto scatter_gather_clean;
@@ -421,7 +421,7 @@
 	struct cpt_vq_command vq_cmd;
 	union cpt_inst_s cptinst;
 
-	info = kzalloc(sizeof(*info), GFP_KERNEL);
+	info = kzalloc(sizeof(*info), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (unlikely(!info)) {
 		dev_err(&pdev->dev, "Unable to allocate memory for info_buffer\n");
 		return -ENOMEM;
@@ -443,7 +443,7 @@
 	 * Get buffer for union cpt_res_s response
 	 * structure and its physical address
 	 */
-	info->completion_addr = kzalloc(sizeof(union cpt_res_s), GFP_KERNEL);
+	info->completion_addr = kzalloc(sizeof(union cpt_res_s), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (unlikely(!info->completion_addr)) {
 		dev_err(&pdev->dev, "Unable to allocate memory for completion_addr\n");
 		ret = -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/cavium/cpt/request_manager.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/cavium/cpt/request_manager.h
@@ -62,6 +62,8 @@
 	union ctrl_info ctrl; /* User control information */
 	struct cptvf_request req; /* Request Information (Core specific) */
 
+	bool may_sleep;
+
 	struct buf_ptr in[MAX_BUF_CNT];
 	struct buf_ptr out[MAX_BUF_CNT];
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/cavium/nitrox/nitrox_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/cavium/nitrox/nitrox_main.c
@@ -103,8 +103,7 @@
 	offset = UCD_UCODE_LOAD_BLOCK_NUM;
 	nitrox_write_csr(ndev, offset, block_num);
 
-	code_size = ucode_size;
-	code_size = roundup(code_size, 8);
+	code_size = roundup(ucode_size, 16);
 	while (code_size) {
 		data = ucode_data[i];
 		/* write 8 bytes at a time */
@@ -220,11 +219,11 @@
 
 	/* write block number and firmware length
 	 * bit:<2:0> block number
-	 * bit:3 is set SE uses 32KB microcode
-	 * bit:3 is clear SE uses 64KB microcode
+	 * bit:3 is set AE uses 32KB microcode
+	 * bit:3 is clear AE uses 64KB microcode
 	 */
 	core_2_eid_val.value = 0ULL;
-	core_2_eid_val.ucode_blk = 0;
+	core_2_eid_val.ucode_blk = 2;
 	if (ucode_size <= CNN55XX_UCD_BLOCK_SIZE)
 		core_2_eid_val.ucode_len = 1;
 	else
@@ -279,7 +278,7 @@
 
 struct nitrox_device *nitrox_get_first_device(void)
 {
-	struct nitrox_device *ndev = NULL;
+	struct nitrox_device *ndev;
 
 	mutex_lock(&devlist_lock);
 	list_for_each_entry(ndev, &ndevlist, list) {
@@ -287,7 +286,7 @@
 			break;
 	}
 	mutex_unlock(&devlist_lock);
-	if (!ndev)
+	if (&ndev->list == &ndevlist)
 		return NULL;
 
 	refcount_inc(&ndev->refcnt);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccp/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccp/Kconfig
@@ -10,10 +10,9 @@
 config CRYPTO_DEV_SP_CCP
 	bool "Cryptographic Coprocessor device"
 	default y
-	depends on CRYPTO_DEV_CCP_DD
+	depends on CRYPTO_DEV_CCP_DD && DMADEVICES
 	select HW_RANDOM
 	select DMA_ENGINE
-	select DMADEVICES
 	select CRYPTO_SHA1
 	select CRYPTO_SHA256
 	help
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccp/ccp-dev-v3.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccp/ccp-dev-v3.c
@@ -586,6 +586,7 @@
 	.setup = NULL,
 	.perform = &ccp3_actions,
 	.offset = 0,
+	.rsamax = CCP_RSA_MAX_WIDTH,
 };
 
 const struct ccp_vdata ccpv3 = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccp/ccp-dev.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccp/ccp-dev.h
@@ -469,6 +469,7 @@
 	unsigned int sg_used;
 
 	struct scatterlist *dma_sg;
+	struct scatterlist *dma_sg_head;
 	struct device *dma_dev;
 	unsigned int dma_count;
 	enum dma_data_direction dma_dir;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccp/ccp-dmaengine.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccp/ccp-dmaengine.c
@@ -342,6 +342,7 @@
 	desc->tx_desc.flags = flags;
 	desc->tx_desc.tx_submit = ccp_tx_submit;
 	desc->ccp = chan->ccp;
+	INIT_LIST_HEAD(&desc->entry);
 	INIT_LIST_HEAD(&desc->pending);
 	INIT_LIST_HEAD(&desc->active);
 	desc->status = DMA_IN_PROGRESS;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccp/ccp-ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccp/ccp-ops.c
@@ -63,7 +63,7 @@
 static void ccp_sg_free(struct ccp_sg_workarea *wa)
 {
 	if (wa->dma_count)
-		dma_unmap_sg(wa->dma_dev, wa->dma_sg, wa->nents, wa->dma_dir);
+		dma_unmap_sg(wa->dma_dev, wa->dma_sg_head, wa->nents, wa->dma_dir);
 
 	wa->dma_count = 0;
 }
@@ -92,6 +92,7 @@
 		return 0;
 
 	wa->dma_sg = sg;
+	wa->dma_sg_head = sg;
 	wa->dma_dev = dev;
 	wa->dma_dir = dma_dir;
 	wa->dma_count = dma_map_sg(dev, sg, wa->nents, dma_dir);
@@ -104,14 +105,28 @@
 static void ccp_update_sg_workarea(struct ccp_sg_workarea *wa, unsigned int len)
 {
 	unsigned int nbytes = min_t(u64, len, wa->bytes_left);
+	unsigned int sg_combined_len = 0;
 
 	if (!wa->sg)
 		return;
 
 	wa->sg_used += nbytes;
 	wa->bytes_left -= nbytes;
-	if (wa->sg_used == wa->sg->length) {
-		wa->sg = sg_next(wa->sg);
+	if (wa->sg_used == sg_dma_len(wa->dma_sg)) {
+		/* Advance to the next DMA scatterlist entry */
+		wa->dma_sg = sg_next(wa->dma_sg);
+
+		/* In the case that the DMA mapped scatterlist has entries
+		 * that have been merged, the non-DMA mapped scatterlist
+		 * must be advanced multiple times for each merged entry.
+		 * This ensures that the current non-DMA mapped entry
+		 * corresponds to the current DMA mapped entry.
+		 */
+		do {
+			sg_combined_len += wa->sg->length;
+			wa->sg = sg_next(wa->sg);
+		} while (wa->sg_used > sg_combined_len);
+
 		wa->sg_used = 0;
 	}
 }
@@ -299,7 +314,7 @@
 	/* Update the structures and generate the count */
 	buf_count = 0;
 	while (sg_wa->bytes_left && (buf_count < dm_wa->length)) {
-		nbytes = min(sg_wa->sg->length - sg_wa->sg_used,
+		nbytes = min(sg_dma_len(sg_wa->dma_sg) - sg_wa->sg_used,
 			     dm_wa->length - buf_count);
 		nbytes = min_t(u64, sg_wa->bytes_left, nbytes);
 
@@ -331,11 +346,11 @@
 	 * and destination. The resulting len values will always be <= UINT_MAX
 	 * because the dma length is an unsigned int.
 	 */
-	sg_src_len = sg_dma_len(src->sg_wa.sg) - src->sg_wa.sg_used;
+	sg_src_len = sg_dma_len(src->sg_wa.dma_sg) - src->sg_wa.sg_used;
 	sg_src_len = min_t(u64, src->sg_wa.bytes_left, sg_src_len);
 
 	if (dst) {
-		sg_dst_len = sg_dma_len(dst->sg_wa.sg) - dst->sg_wa.sg_used;
+		sg_dst_len = sg_dma_len(dst->sg_wa.dma_sg) - dst->sg_wa.sg_used;
 		sg_dst_len = min_t(u64, src->sg_wa.bytes_left, sg_dst_len);
 		op_len = min(sg_src_len, sg_dst_len);
 	} else {
@@ -365,7 +380,7 @@
 		/* Enough data in the sg element, but we need to
 		 * adjust for any previously copied data
 		 */
-		op->src.u.dma.address = sg_dma_address(src->sg_wa.sg);
+		op->src.u.dma.address = sg_dma_address(src->sg_wa.dma_sg);
 		op->src.u.dma.offset = src->sg_wa.sg_used;
 		op->src.u.dma.length = op_len & ~(block_size - 1);
 
@@ -386,7 +401,7 @@
 			/* Enough room in the sg element, but we need to
 			 * adjust for any previously used area
 			 */
-			op->dst.u.dma.address = sg_dma_address(dst->sg_wa.sg);
+			op->dst.u.dma.address = sg_dma_address(dst->sg_wa.dma_sg);
 			op->dst.u.dma.offset = dst->sg_wa.sg_used;
 			op->dst.u.dma.length = op->src.u.dma.length;
 		}
@@ -1731,7 +1746,7 @@
 			break;
 		default:
 			ret = -EINVAL;
-			goto e_ctx;
+			goto e_data;
 		}
 	} else {
 		/* Stash the context */
@@ -1777,8 +1792,9 @@
 			       LSB_ITEM_SIZE);
 			break;
 		default:
+			kfree(hmac_buf);
 			ret = -EINVAL;
-			goto e_ctx;
+			goto e_data;
 		}
 
 		memset(&hmac_cmd, 0, sizeof(hmac_cmd));
@@ -2027,7 +2043,7 @@
 	dst.sg_wa.sg_used = 0;
 	for (i = 1; i <= src.sg_wa.dma_count; i++) {
 		if (!dst.sg_wa.sg ||
-		    (dst.sg_wa.sg->length < src.sg_wa.sg->length)) {
+		    (sg_dma_len(dst.sg_wa.sg) < sg_dma_len(src.sg_wa.sg))) {
 			ret = -EINVAL;
 			goto e_dst;
 		}
@@ -2053,8 +2069,8 @@
 			goto e_dst;
 		}
 
-		dst.sg_wa.sg_used += src.sg_wa.sg->length;
-		if (dst.sg_wa.sg_used == dst.sg_wa.sg->length) {
+		dst.sg_wa.sg_used += sg_dma_len(src.sg_wa.sg);
+		if (dst.sg_wa.sg_used == sg_dma_len(dst.sg_wa.sg)) {
 			dst.sg_wa.sg = sg_next(dst.sg_wa.sg);
 			dst.sg_wa.sg_used = 0;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_aead.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_aead.c
@@ -237,7 +237,7 @@
 			 * revealed the decrypted message --> zero its memory.
 			 */
 			sg_zero_buffer(areq->dst, sg_nents(areq->dst),
-				       areq->cryptlen, 0);
+				       areq->cryptlen, areq->assoclen);
 			err = -EBADMSG;
 		}
 	/*ENCRYPT*/
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_buffer_mgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_buffer_mgr.c
@@ -87,6 +87,8 @@
 {
 	unsigned int nents = 0;
 
+	*lbytes = 0;
+
 	while (nbytes && sg_list) {
 		nents++;
 		/* get the number of bytes in the last entry */
@@ -95,6 +97,7 @@
 				nbytes : sg_list->length;
 		sg_list = sg_next(sg_list);
 	}
+
 	dev_dbg(dev, "nents %d last bytes %d\n", nents, *lbytes);
 	return nents;
 }
@@ -290,37 +293,25 @@
 		     unsigned int nbytes, int direction, u32 *nents,
 		     u32 max_sg_nents, u32 *lbytes, u32 *mapped_nents)
 {
-	if (sg_is_last(sg)) {
-		/* One entry only case -set to DLLI */
-		if (dma_map_sg(dev, sg, 1, direction) != 1) {
-			dev_err(dev, "dma_map_sg() single buffer failed\n");
-			return -ENOMEM;
-		}
-		dev_dbg(dev, "Mapped sg: dma_address=%pad page=%p addr=%pK offset=%u length=%u\n",
-			&sg_dma_address(sg), sg_page(sg), sg_virt(sg),
-			sg->offset, sg->length);
-		*lbytes = nbytes;
-		*nents = 1;
-		*mapped_nents = 1;
-	} else {  /*sg_is_last*/
-		*nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes);
-		if (*nents > max_sg_nents) {
-			*nents = 0;
-			dev_err(dev, "Too many fragments. current %d max %d\n",
-				*nents, max_sg_nents);
-			return -ENOMEM;
-		}
-		/* In case of mmu the number of mapped nents might
-		 * be changed from the original sgl nents
-		 */
-		*mapped_nents = dma_map_sg(dev, sg, *nents, direction);
-		if (*mapped_nents == 0) {
-			*nents = 0;
-			dev_err(dev, "dma_map_sg() sg buffer failed\n");
-			return -ENOMEM;
-		}
+	int ret = 0;
+
+	*nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes);
+	if (*nents > max_sg_nents) {
+		*nents = 0;
+		dev_err(dev, "Too many fragments. current %d max %d\n",
+			*nents, max_sg_nents);
+		return -ENOMEM;
+	}
+
+	ret = dma_map_sg(dev, sg, *nents, direction);
+	if (dma_mapping_error(dev, ret)) {
+		*nents = 0;
+		dev_err(dev, "dma_map_sg() sg buffer failed %d\n", ret);
+		return -ENOMEM;
 	}
 
+	*mapped_nents = ret;
+
 	return 0;
 }
 
@@ -555,11 +546,12 @@
 		sg_virt(req->src), areq_ctx->src.nents, areq_ctx->assoc.nents,
 		areq_ctx->assoclen, req->cryptlen);
 
-	dma_unmap_sg(dev, req->src, sg_nents(req->src), DMA_BIDIRECTIONAL);
+	dma_unmap_sg(dev, req->src, areq_ctx->src.mapped_nents,
+		     DMA_BIDIRECTIONAL);
 	if (req->src != req->dst) {
 		dev_dbg(dev, "Unmapping dst sgl: req->dst=%pK\n",
 			sg_virt(req->dst));
-		dma_unmap_sg(dev, req->dst, sg_nents(req->dst),
+		dma_unmap_sg(dev, req->dst, areq_ctx->dst.mapped_nents,
 			     DMA_BIDIRECTIONAL);
 	}
 	if (drvdata->coherent &&
@@ -881,7 +873,7 @@
 					    &src_last_bytes);
 	sg_index = areq_ctx->src_sgl->length;
 	//check where the data starts
-	while (sg_index <= size_to_skip) {
+	while (src_mapped_nents && (sg_index <= size_to_skip)) {
 		src_mapped_nents--;
 		offset -= areq_ctx->src_sgl->length;
 		sgl = sg_next(areq_ctx->src_sgl);
@@ -902,13 +894,17 @@
 
 	if (req->src != req->dst) {
 		size_for_map = areq_ctx->assoclen + req->cryptlen;
-		size_for_map += (direct == DRV_CRYPTO_DIRECTION_ENCRYPT) ?
-				authsize : 0;
+
+		if (direct == DRV_CRYPTO_DIRECTION_ENCRYPT)
+			size_for_map += authsize;
+		else
+			size_for_map -= authsize;
+
 		if (is_gcm4543)
 			size_for_map += crypto_aead_ivsize(tfm);
 
 		rc = cc_map_sg(dev, req->dst, size_for_map, DMA_BIDIRECTIONAL,
-			       &areq_ctx->dst.nents,
+			       &areq_ctx->dst.mapped_nents,
 			       LLI_MAX_NUM_OF_DATA_ENTRIES, &dst_last_bytes,
 			       &dst_mapped_nents);
 		if (rc)
@@ -921,7 +917,7 @@
 	offset = size_to_skip;
 
 	//check where the data starts
-	while (sg_index <= size_to_skip) {
+	while (dst_mapped_nents && sg_index <= size_to_skip) {
 		dst_mapped_nents--;
 		offset -= areq_ctx->dst_sgl->length;
 		sgl = sg_next(areq_ctx->dst_sgl);
@@ -1117,13 +1113,15 @@
 	}
 
 	size_to_map = req->cryptlen + areq_ctx->assoclen;
-	if (areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_ENCRYPT)
+	/* If we do in-place encryption, we also need the auth tag */
+	if ((areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_ENCRYPT) &&
+	   (req->src == req->dst)) {
 		size_to_map += authsize;
-
+	}
 	if (is_gcm4543)
 		size_to_map += crypto_aead_ivsize(tfm);
 	rc = cc_map_sg(dev, req->src, size_to_map, DMA_BIDIRECTIONAL,
-		       &areq_ctx->src.nents,
+		       &areq_ctx->src.mapped_nents,
 		       (LLI_MAX_NUM_OF_ASSOC_DATA_ENTRIES +
 			LLI_MAX_NUM_OF_DATA_ENTRIES),
 		       &dummy, &mapped_nents);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_buffer_mgr.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_buffer_mgr.h
@@ -25,6 +25,7 @@
 
 struct cc_mlli {
 	cc_sram_addr_t sram_addr;
+	unsigned int mapped_nents;
 	unsigned int nents; //sg nents
 	unsigned int mlli_nents; //mlli nents might be different than the above
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_cipher.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_cipher.c
@@ -163,7 +163,6 @@
 				     skcipher_alg.base);
 	struct device *dev = drvdata_to_dev(cc_alg->drvdata);
 	unsigned int max_key_buf_size = cc_alg->skcipher_alg.max_keysize;
-	int rc = 0;
 
 	dev_dbg(dev, "Initializing context @%p for %s\n", ctx_p,
 		crypto_tfm_alg_name(tfm));
@@ -175,10 +174,19 @@
 	ctx_p->flow_mode = cc_alg->flow_mode;
 	ctx_p->drvdata = cc_alg->drvdata;
 
+	if (ctx_p->cipher_mode == DRV_CIPHER_ESSIV) {
+		/* Alloc hash tfm for essiv */
+		ctx_p->shash_tfm = crypto_alloc_shash("sha256-generic", 0, 0);
+		if (IS_ERR(ctx_p->shash_tfm)) {
+			dev_err(dev, "Error allocating hash tfm for ESSIV.\n");
+			return PTR_ERR(ctx_p->shash_tfm);
+		}
+	}
+
 	/* Allocate key buffer, cache line aligned */
 	ctx_p->user.key = kmalloc(max_key_buf_size, GFP_KERNEL);
 	if (!ctx_p->user.key)
-		return -ENOMEM;
+		goto free_shash;
 
 	dev_dbg(dev, "Allocated key buffer in context. key=@%p\n",
 		ctx_p->user.key);
@@ -190,21 +198,19 @@
 	if (dma_mapping_error(dev, ctx_p->user.key_dma_addr)) {
 		dev_err(dev, "Mapping Key %u B at va=%pK for DMA failed\n",
 			max_key_buf_size, ctx_p->user.key);
-		return -ENOMEM;
+		goto free_key;
 	}
 	dev_dbg(dev, "Mapped key %u B at va=%pK to dma=%pad\n",
 		max_key_buf_size, ctx_p->user.key, &ctx_p->user.key_dma_addr);
 
-	if (ctx_p->cipher_mode == DRV_CIPHER_ESSIV) {
-		/* Alloc hash tfm for essiv */
-		ctx_p->shash_tfm = crypto_alloc_shash("sha256-generic", 0, 0);
-		if (IS_ERR(ctx_p->shash_tfm)) {
-			dev_err(dev, "Error allocating hash tfm for ESSIV.\n");
-			return PTR_ERR(ctx_p->shash_tfm);
-		}
-	}
+	return 0;
 
-	return rc;
+free_key:
+	kfree(ctx_p->user.key);
+free_shash:
+	crypto_free_shash(ctx_p->shash_tfm);
+
+	return -ENOMEM;
 }
 
 static void cc_cipher_exit(struct crypto_tfm *tfm)
@@ -523,6 +529,7 @@
 	}
 }
 
+
 static void cc_setup_state_desc(struct crypto_tfm *tfm,
 				 struct cipher_req_ctx *req_ctx,
 				 unsigned int ivsize, unsigned int nbytes,
@@ -534,8 +541,6 @@
 	int cipher_mode = ctx_p->cipher_mode;
 	int flow_mode = ctx_p->flow_mode;
 	int direction = req_ctx->gen_ctx.op_type;
-	dma_addr_t key_dma_addr = ctx_p->user.key_dma_addr;
-	unsigned int key_len = ctx_p->keylen;
 	dma_addr_t iv_dma_addr = req_ctx->gen_ctx.iv_dma_addr;
 	unsigned int du_size = nbytes;
 
@@ -571,6 +576,47 @@
 	case DRV_CIPHER_XTS:
 	case DRV_CIPHER_ESSIV:
 	case DRV_CIPHER_BITLOCKER:
+		break;
+	default:
+		dev_err(dev, "Unsupported cipher mode (%d)\n", cipher_mode);
+	}
+}
+
+
+static void cc_setup_xex_state_desc(struct crypto_tfm *tfm,
+				 struct cipher_req_ctx *req_ctx,
+				 unsigned int ivsize, unsigned int nbytes,
+				 struct cc_hw_desc desc[],
+				 unsigned int *seq_size)
+{
+	struct cc_cipher_ctx *ctx_p = crypto_tfm_ctx(tfm);
+	struct device *dev = drvdata_to_dev(ctx_p->drvdata);
+	int cipher_mode = ctx_p->cipher_mode;
+	int flow_mode = ctx_p->flow_mode;
+	int direction = req_ctx->gen_ctx.op_type;
+	dma_addr_t key_dma_addr = ctx_p->user.key_dma_addr;
+	unsigned int key_len = ctx_p->keylen;
+	dma_addr_t iv_dma_addr = req_ctx->gen_ctx.iv_dma_addr;
+	unsigned int du_size = nbytes;
+
+	struct cc_crypto_alg *cc_alg =
+		container_of(tfm->__crt_alg, struct cc_crypto_alg,
+			     skcipher_alg.base);
+
+	if (cc_alg->data_unit)
+		du_size = cc_alg->data_unit;
+
+	switch (cipher_mode) {
+	case DRV_CIPHER_ECB:
+		break;
+	case DRV_CIPHER_CBC:
+	case DRV_CIPHER_CBC_CTS:
+	case DRV_CIPHER_CTR:
+	case DRV_CIPHER_OFB:
+		break;
+	case DRV_CIPHER_XTS:
+	case DRV_CIPHER_ESSIV:
+	case DRV_CIPHER_BITLOCKER:
 		/* load XEX key */
 		hw_desc_init(&desc[*seq_size]);
 		set_cipher_mode(&desc[*seq_size], cipher_mode);
@@ -881,12 +927,14 @@
 
 	/* STAT_PHASE_2: Create sequence */
 
-	/* Setup IV and XEX key used */
+	/* Setup state (IV)  */
 	cc_setup_state_desc(tfm, req_ctx, ivsize, nbytes, desc, &seq_len);
 	/* Setup MLLI line, if needed */
 	cc_setup_mlli_desc(tfm, req_ctx, dst, src, nbytes, req, desc, &seq_len);
 	/* Setup key */
 	cc_setup_key_desc(tfm, req_ctx, nbytes, desc, &seq_len);
+	/* Setup state (IV and XEX key)  */
+	cc_setup_xex_state_desc(tfm, req_ctx, ivsize, nbytes, desc, &seq_len);
 	/* Data processing */
 	cc_setup_flow_desc(tfm, req_ctx, dst, src, nbytes, desc, &seq_len);
 	/* Read next IV */
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_driver.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_driver.h
@@ -161,6 +161,7 @@
 	int std_bodies;
 	bool sec_disabled;
 	u32 comp_mask;
+	bool pm_on;
 };
 
 struct cc_crypto_alg {
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_pm.c
@@ -22,14 +22,8 @@
 int cc_pm_suspend(struct device *dev)
 {
 	struct cc_drvdata *drvdata = dev_get_drvdata(dev);
-	int rc;
 
 	dev_dbg(dev, "set HOST_POWER_DOWN_EN\n");
-	rc = cc_suspend_req_queue(drvdata);
-	if (rc) {
-		dev_err(dev, "cc_suspend_req_queue (%x)\n", rc);
-		return rc;
-	}
 	fini_cc_regs(drvdata);
 	cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE);
 	cc_clk_off(drvdata);
@@ -63,13 +57,6 @@
 	/* check if tee fips error occurred during power down */
 	cc_tee_handle_fips_error(drvdata);
 
-	rc = cc_resume_req_queue(drvdata);
-	if (rc) {
-		dev_err(dev, "cc_resume_req_queue (%x)\n", rc);
-		return rc;
-	}
-
-	/* must be after the queue resuming as it uses the HW queue*/
 	cc_init_hash_sram(drvdata);
 
 	return 0;
@@ -80,12 +67,10 @@
 	int rc = 0;
 	struct cc_drvdata *drvdata = dev_get_drvdata(dev);
 
-	if (cc_req_queue_suspended(drvdata))
+	if (drvdata->pm_on)
 		rc = pm_runtime_get_sync(dev);
-	else
-		pm_runtime_get_noresume(dev);
 
-	return rc;
+	return (rc == 1 ? 0 : rc);
 }
 
 int cc_pm_put_suspend(struct device *dev)
@@ -93,14 +78,11 @@
 	int rc = 0;
 	struct cc_drvdata *drvdata = dev_get_drvdata(dev);
 
-	if (!cc_req_queue_suspended(drvdata)) {
+	if (drvdata->pm_on) {
 		pm_runtime_mark_last_busy(dev);
 		rc = pm_runtime_put_autosuspend(dev);
-	} else {
-		/* Something wrong happens*/
-		dev_err(dev, "request to suspend already suspended queue");
-		rc = -EBUSY;
 	}
+
 	return rc;
 }
 
@@ -117,7 +99,7 @@
 	/* must be before the enabling to avoid resdundent suspending */
 	pm_runtime_set_autosuspend_delay(dev, CC_SUSPEND_TIMEOUT);
 	pm_runtime_use_autosuspend(dev);
-	/* activate the PM module */
+	/* set us as active - note we won't do PM ops until cc_pm_go()! */
 	return pm_runtime_set_active(dev);
 }
 
@@ -125,9 +107,11 @@
 void cc_pm_go(struct cc_drvdata *drvdata)
 {
 	pm_runtime_enable(drvdata_to_dev(drvdata));
+	drvdata->pm_on = true;
 }
 
 void cc_pm_fini(struct cc_drvdata *drvdata)
 {
 	pm_runtime_disable(drvdata_to_dev(drvdata));
+	drvdata->pm_on = false;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_request_mgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_request_mgr.c
@@ -41,7 +41,6 @@
 #else
 	struct tasklet_struct comptask;
 #endif
-	bool is_runtime_suspended;
 };
 
 struct cc_bl_item {
@@ -404,6 +403,7 @@
 		spin_lock(&mgr->bl_lock);
 		list_del(&bli->list);
 		--mgr->bl_len;
+		kfree(bli);
 	}
 
 	spin_unlock(&mgr->bl_lock);
@@ -677,52 +677,3 @@
 	cc_proc_backlog(drvdata);
 	dev_dbg(dev, "Comp. handler done.\n");
 }
-
-/*
- * resume the queue configuration - no need to take the lock as this happens
- * inside the spin lock protection
- */
-#if defined(CONFIG_PM)
-int cc_resume_req_queue(struct cc_drvdata *drvdata)
-{
-	struct cc_req_mgr_handle *request_mgr_handle =
-		drvdata->request_mgr_handle;
-
-	spin_lock_bh(&request_mgr_handle->hw_lock);
-	request_mgr_handle->is_runtime_suspended = false;
-	spin_unlock_bh(&request_mgr_handle->hw_lock);
-
-	return 0;
-}
-
-/*
- * suspend the queue configuration. Since it is used for the runtime suspend
- * only verify that the queue can be suspended.
- */
-int cc_suspend_req_queue(struct cc_drvdata *drvdata)
-{
-	struct cc_req_mgr_handle *request_mgr_handle =
-						drvdata->request_mgr_handle;
-
-	/* lock the send_request */
-	spin_lock_bh(&request_mgr_handle->hw_lock);
-	if (request_mgr_handle->req_queue_head !=
-	    request_mgr_handle->req_queue_tail) {
-		spin_unlock_bh(&request_mgr_handle->hw_lock);
-		return -EBUSY;
-	}
-	request_mgr_handle->is_runtime_suspended = true;
-	spin_unlock_bh(&request_mgr_handle->hw_lock);
-
-	return 0;
-}
-
-bool cc_req_queue_suspended(struct cc_drvdata *drvdata)
-{
-	struct cc_req_mgr_handle *request_mgr_handle =
-						drvdata->request_mgr_handle;
-
-	return	request_mgr_handle->is_runtime_suspended;
-}
-
-#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ccree/cc_request_mgr.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ccree/cc_request_mgr.h
@@ -40,12 +40,4 @@
 
 void cc_req_mgr_fini(struct cc_drvdata *drvdata);
 
-#if defined(CONFIG_PM)
-int cc_resume_req_queue(struct cc_drvdata *drvdata);
-
-int cc_suspend_req_queue(struct cc_drvdata *drvdata);
-
-bool cc_req_queue_suspended(struct cc_drvdata *drvdata);
-#endif
-
 #endif /*__REQUEST_MGR_H__*/
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/chelsio/chcr_algo.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/chelsio/chcr_algo.c
@@ -2480,8 +2480,9 @@
 	else
 		reqctx->b0_dma = 0;
 	if (req->src == req->dst) {
-		error = dma_map_sg(dev, req->src, sg_nents(req->src),
-				   DMA_BIDIRECTIONAL);
+		error = dma_map_sg(dev, req->src,
+				sg_nents_for_len(req->src, dst_size),
+					DMA_BIDIRECTIONAL);
 		if (!error)
 			goto err;
 	} else {
@@ -2818,7 +2819,7 @@
 	unsigned int mac_mode = CHCR_SCMD_AUTH_MODE_CBCMAC;
 	unsigned int c_id = a_ctx(tfm)->tx_chan_id;
 	unsigned int ccm_xtra;
-	unsigned char tag_offset = 0, auth_offset = 0;
+	unsigned int tag_offset = 0, auth_offset = 0;
 	unsigned int assoclen;
 
 	if (get_aead_subtype(tfm) == CRYPTO_ALG_SUB_TYPE_AEAD_RFC4309)
@@ -3194,9 +3195,6 @@
 		aeadctx->mayverify = VERIFY_SW;
 		break;
 	default:
-
-		  crypto_tfm_set_flags((struct crypto_tfm *) tfm,
-			CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 	return crypto_aead_setauthsize(aeadctx->sw_cipher, authsize);
@@ -3221,8 +3219,6 @@
 		aeadctx->mayverify = VERIFY_HW;
 		break;
 	default:
-		crypto_tfm_set_flags((struct crypto_tfm *)tfm,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 	return crypto_aead_setauthsize(aeadctx->sw_cipher, authsize);
@@ -3263,8 +3259,6 @@
 		aeadctx->mayverify = VERIFY_HW;
 		break;
 	default:
-		crypto_tfm_set_flags((struct crypto_tfm *)tfm,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 	return crypto_aead_setauthsize(aeadctx->sw_cipher, authsize);
@@ -3289,8 +3283,7 @@
 		ck_size = CHCR_KEYCTX_CIPHER_KEY_SIZE_256;
 		mk_size = CHCR_KEYCTX_MAC_KEY_SIZE_256;
 	} else {
-		crypto_tfm_set_flags((struct crypto_tfm *)aead,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
+		crypto_aead_set_flags(aead, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		aeadctx->enckey_len = 0;
 		return	-EINVAL;
 	}
@@ -3328,8 +3321,7 @@
 	int error;
 
 	if (keylen < 3) {
-		crypto_tfm_set_flags((struct crypto_tfm *)aead,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
+		crypto_aead_set_flags(aead, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		aeadctx->enckey_len = 0;
 		return	-EINVAL;
 	}
@@ -3379,8 +3371,7 @@
 	} else if (keylen == AES_KEYSIZE_256) {
 		ck_size = CHCR_KEYCTX_CIPHER_KEY_SIZE_256;
 	} else {
-		crypto_tfm_set_flags((struct crypto_tfm *)aead,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
+		crypto_aead_set_flags(aead, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		pr_err("GCM: Invalid key length %d\n", keylen);
 		ret = -EINVAL;
 		goto out;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/chelsio/chcr_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/chelsio/chcr_core.c
@@ -125,8 +125,6 @@
 	atomic_set(&dev->inflight, 0);
 	mutex_lock(&drv_data.drv_mutex);
 	list_add_tail(&u_ctx->entry, &drv_data.inact_dev);
-	if (!drv_data.last_dev)
-		drv_data.last_dev = u_ctx;
 	mutex_unlock(&drv_data.drv_mutex);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/chelsio/chtls/chtls_cm.c
@@ -174,7 +174,7 @@
 {
 	if (likely(skb && !skb_shared(skb) && !skb_cloned(skb))) {
 		__skb_trim(skb, 0);
-		refcount_add(2, &skb->users);
+		refcount_inc(&skb->users);
 	} else {
 		skb = alloc_skb(len, GFP_KERNEL | __GFP_NOFAIL);
 	}
@@ -577,7 +577,7 @@
 
 	while (!skb_queue_empty(&listen_ctx->synq)) {
 		struct chtls_sock *csk =
-			container_of((struct synq *)__skb_dequeue
+			container_of((struct synq *)skb_peek
 				(&listen_ctx->synq), struct chtls_sock, synq);
 		struct sock *child = csk->sk;
 
@@ -692,14 +692,13 @@
 	if (rpl->status != CPL_ERR_NONE) {
 		pr_info("Unexpected PASS_OPEN_RPL status %u for STID %u\n",
 			rpl->status, stid);
-		return CPL_RET_BUF_DONE;
+	} else {
+		cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
+		sock_put(listen_ctx->lsk);
+		kfree(listen_ctx);
+		module_put(THIS_MODULE);
 	}
-	cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
-	sock_put(listen_ctx->lsk);
-	kfree(listen_ctx);
-	module_put(THIS_MODULE);
-
-	return 0;
+	return CPL_RET_BUF_DONE;
 }
 
 static int chtls_close_listsrv_rpl(struct chtls_dev *cdev, struct sk_buff *skb)
@@ -716,15 +715,21 @@
 	if (rpl->status != CPL_ERR_NONE) {
 		pr_info("Unexpected CLOSE_LISTSRV_RPL status %u for STID %u\n",
 			rpl->status, stid);
-		return CPL_RET_BUF_DONE;
+	} else {
+		cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
+		sock_put(listen_ctx->lsk);
+		kfree(listen_ctx);
+		module_put(THIS_MODULE);
 	}
+	return CPL_RET_BUF_DONE;
+}
 
-	cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
-	sock_put(listen_ctx->lsk);
-	kfree(listen_ctx);
-	module_put(THIS_MODULE);
+static void chtls_purge_wr_queue(struct sock *sk)
+{
+	struct sk_buff *skb;
 
-	return 0;
+	while ((skb = dequeue_wr(sk)) != NULL)
+		kfree_skb(skb);
 }
 
 static void chtls_release_resources(struct sock *sk)
@@ -741,6 +746,11 @@
 	kfree_skb(csk->txdata_skb_cache);
 	csk->txdata_skb_cache = NULL;
 
+	if (csk->wr_credits != csk->wr_max_credits) {
+		chtls_purge_wr_queue(sk);
+		chtls_reset_wr_list(csk);
+	}
+
 	if (csk->l2t_entry) {
 		cxgb4_l2t_release(csk->l2t_entry);
 		csk->l2t_entry = NULL;
@@ -1011,6 +1021,7 @@
 				    const struct cpl_pass_accept_req *req,
 				    struct chtls_dev *cdev)
 {
+	struct adapter *adap = pci_get_drvdata(cdev->pdev);
 	struct inet_sock *newinet;
 	const struct iphdr *iph;
 	struct tls_context *ctx;
@@ -1020,9 +1031,10 @@
 	struct neighbour *n;
 	struct tcp_sock *tp;
 	struct sock *newsk;
+	bool found = false;
 	u16 port_id;
 	int rxq_idx;
-	int step;
+	int step, i;
 
 	iph = (const struct iphdr *)network_hdr;
 	newsk = tcp_create_openreq_child(lsk, oreq, cdev->askb);
@@ -1034,12 +1046,20 @@
 		goto free_sk;
 
 	n = dst_neigh_lookup(dst, &iph->saddr);
-	if (!n)
-		goto free_sk;
+	if (!n || !n->dev)
+		goto free_dst;
 
 	ndev = n->dev;
-	if (!ndev)
+	if (is_vlan_dev(ndev))
+		ndev = vlan_dev_real_dev(ndev);
+
+	for_each_port(adap, i)
+		if (cdev->ports[i] == ndev)
+			found = true;
+
+	if (!found)
 		goto free_dst;
+
 	port_id = cxgb4_port_idx(ndev);
 
 	csk = chtls_sock_create(cdev);
@@ -1064,6 +1084,7 @@
 	sk_setup_caps(newsk, dst);
 	ctx = tls_get_ctx(lsk);
 	newsk->sk_destruct = ctx->sk_destruct;
+	newsk->sk_prot_creator = lsk->sk_prot_creator;
 	csk->sk = newsk;
 	csk->passive_reap_next = oreq;
 	csk->tx_chan = cxgb4_port_chan(ndev);
@@ -1094,6 +1115,8 @@
 free_csk:
 	chtls_sock_release(&csk->kref);
 free_dst:
+	if (n)
+		neigh_release(n);
 	dst_release(dst);
 free_sk:
 	inet_csk_prepare_forced_close(newsk);
@@ -1353,7 +1376,6 @@
 	struct chtls_sock *csk = sk->sk_user_data;
 
 	local_bh_disable();
-	bh_lock_sock(sk);
 	release_tcp_port(sk); /* release the port immediately */
 
 	spin_lock(&reap_list_lock);
@@ -1362,7 +1384,6 @@
 	if (!csk->passive_reap_next)
 		schedule_work(&reap_task);
 	spin_unlock(&reap_list_lock);
-	bh_unlock_sock(sk);
 	local_bh_enable();
 }
 
@@ -1431,6 +1452,11 @@
 			sk_wake_async(sk, 0, POLL_OUT);
 
 		data = lookup_stid(cdev->tids, stid);
+		if (!data) {
+			/* listening server close */
+			kfree_skb(skb);
+			goto unlock;
+		}
 		lsk = ((struct listen_ctx *)data)->lsk;
 
 		bh_lock_sock(lsk);
@@ -1735,6 +1761,7 @@
 		else
 			sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
 	}
+	kfree_skb(skb);
 }
 
 static void chtls_close_con_rpl(struct sock *sk, struct sk_buff *skb)
@@ -1815,39 +1842,6 @@
 	kfree_skb(skb);
 }
 
-static void send_abort_rpl(struct sock *sk, struct sk_buff *skb,
-			   struct chtls_dev *cdev, int status, int queue)
-{
-	struct cpl_abort_req_rss *req = cplhdr(skb);
-	struct sk_buff *reply_skb;
-	struct chtls_sock *csk;
-
-	csk = rcu_dereference_sk_user_data(sk);
-
-	reply_skb = alloc_skb(sizeof(struct cpl_abort_rpl),
-			      GFP_KERNEL);
-
-	if (!reply_skb) {
-		req->status = (queue << 1);
-		send_defer_abort_rpl(cdev, skb);
-		return;
-	}
-
-	set_abort_rpl_wr(reply_skb, GET_TID(req), status);
-	kfree_skb(skb);
-
-	set_wr_txq(reply_skb, CPL_PRIORITY_DATA, queue);
-	if (csk_conn_inline(csk)) {
-		struct l2t_entry *e = csk->l2t_entry;
-
-		if (e && sk->sk_state != TCP_SYN_RECV) {
-			cxgb4_l2t_send(csk->egress_dev, reply_skb, e);
-			return;
-		}
-	}
-	cxgb4_ofld_send(cdev->lldi->ports[0], reply_skb);
-}
-
 /*
  * Add an skb to the deferred skb queue for processing from process context.
  */
@@ -1910,9 +1904,9 @@
 	queue = csk->txq_idx;
 
 	skb->sk	= NULL;
+	chtls_send_abort_rpl(child, skb, BLOG_SKB_CB(skb)->cdev,
+			     CPL_ABORT_NO_RST, queue);
 	do_abort_syn_rcv(child, lsk);
-	send_abort_rpl(child, skb, BLOG_SKB_CB(skb)->cdev,
-		       CPL_ABORT_NO_RST, queue);
 }
 
 static int abort_syn_rcv(struct sock *sk, struct sk_buff *skb)
@@ -1942,8 +1936,8 @@
 	if (!sock_owned_by_user(psk)) {
 		int queue = csk->txq_idx;
 
+		chtls_send_abort_rpl(sk, skb, cdev, CPL_ABORT_NO_RST, queue);
 		do_abort_syn_rcv(sk, psk);
-		send_abort_rpl(sk, skb, cdev, CPL_ABORT_NO_RST, queue);
 	} else {
 		skb->sk = sk;
 		BLOG_SKB_CB(skb)->backlog_rcv = bl_abort_syn_rcv;
@@ -1961,9 +1955,6 @@
 	int queue = csk->txq_idx;
 
 	if (is_neg_adv(req->status)) {
-		if (sk->sk_state == TCP_SYN_RECV)
-			chtls_set_tcb_tflag(sk, 0, 0);
-
 		kfree_skb(skb);
 		return;
 	}
@@ -1989,12 +1980,11 @@
 
 		if (sk->sk_state == TCP_SYN_RECV && !abort_syn_rcv(sk, skb))
 			return;
-
-		chtls_release_resources(sk);
-		chtls_conn_done(sk);
 	}
 
 	chtls_send_abort_rpl(sk, skb, csk->cdev, rst_status, queue);
+	chtls_release_resources(sk);
+	chtls_conn_done(sk);
 }
 
 static void chtls_abort_rpl_rss(struct sock *sk, struct sk_buff *skb)
@@ -2062,19 +2052,6 @@
 	return 0;
 }
 
-static struct sk_buff *dequeue_wr(struct sock *sk)
-{
-	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
-	struct sk_buff *skb = csk->wr_skb_head;
-
-	if (likely(skb)) {
-	/* Don't bother clearing the tail */
-		csk->wr_skb_head = WR_SKB_CB(skb)->next_wr;
-		WR_SKB_CB(skb)->next_wr = NULL;
-	}
-	return skb;
-}
-
 static void chtls_rx_ack(struct sock *sk, struct sk_buff *skb)
 {
 	struct cpl_fw4_ack *hdr = cplhdr(skb) + RSS_HDR;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_cm.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/chelsio/chtls/chtls_cm.h
@@ -50,9 +50,6 @@
 #define MIN_RCV_WND (24 * 1024U)
 #define LOOPBACK(x)     (((x) & htonl(0xff000000)) == htonl(0x7f000000))
 
-/* ulp_mem_io + ulptx_idata + payload + padding */
-#define MAX_IMM_ULPTX_WR_LEN (32 + 8 + 256 + 8)
-
 /* for TX: a skb must have a headroom of at least TX_HEADER_LEN bytes */
 #define TX_HEADER_LEN \
 	(sizeof(struct fw_ofld_tx_data_wr) + sizeof(struct sge_opaque_hdr))
@@ -185,6 +182,12 @@
 	kfree_skb(skb);
 }
 
+static inline void chtls_reset_wr_list(struct chtls_sock *csk)
+{
+	csk->wr_skb_head = NULL;
+	csk->wr_skb_tail = NULL;
+}
+
 static inline void enqueue_wr(struct chtls_sock *csk, struct sk_buff *skb)
 {
 	WR_SKB_CB(skb)->next_wr = NULL;
@@ -197,4 +200,19 @@
 		WR_SKB_CB(csk->wr_skb_tail)->next_wr = skb;
 	csk->wr_skb_tail = skb;
 }
+
+static inline struct sk_buff *dequeue_wr(struct sock *sk)
+{
+	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
+	struct sk_buff *skb = NULL;
+
+	skb = csk->wr_skb_head;
+
+	if (likely(skb)) {
+	 /* Don't bother clearing the tail */
+		csk->wr_skb_head = WR_SKB_CB(skb)->next_wr;
+		WR_SKB_CB(skb)->next_wr = NULL;
+	}
+	return skb;
+}
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/chelsio/chtls/chtls_hw.c
@@ -350,17 +350,22 @@
 	kwr->sc_imm.cmd_more = cpu_to_be32(ULPTX_CMD_V(ULP_TX_SC_IMM));
 	kwr->sc_imm.len = cpu_to_be32(klen);
 
+	lock_sock(sk);
 	/* key info */
 	kctx = (struct _key_ctx *)(kwr + 1);
 	ret = chtls_key_info(csk, kctx, keylen, optname);
 	if (ret)
 		goto out_notcb;
 
+	if (unlikely(csk_flag(sk, CSK_ABORT_SHUTDOWN)))
+		goto out_notcb;
+
 	set_wr_txq(skb, CPL_PRIORITY_DATA, csk->tlshws.txqid);
 	csk->wr_credits -= DIV_ROUND_UP(len, 16);
 	csk->wr_unacked += DIV_ROUND_UP(len, 16);
 	enqueue_wr(csk, skb);
 	cxgb4_ofld_send(csk->egress_dev, skb);
+	skb = NULL;
 
 	chtls_set_scmd(csk);
 	/* Clear quiesce for Rx key */
@@ -388,8 +393,10 @@
 		csk->tlshws.txkey = keyid;
 	}
 
+	release_sock(sk);
 	return ret;
 out_notcb:
+	release_sock(sk);
 	free_tls_keyid(sk);
 out_nokey:
 	kfree_skb(skb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_io.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/chelsio/chtls/chtls_io.c
@@ -682,7 +682,7 @@
 				make_tx_data_wr(sk, skb, immdlen, len,
 						credits_needed, completion);
 			tp->snd_nxt += len;
-			tp->lsndtime = tcp_time_stamp(tp);
+			tp->lsndtime = tcp_jiffies32;
 			if (completion)
 				ULP_SKB_CB(skb)->flags &= ~ULPCB_FLAG_NEED_HDR;
 		} else {
@@ -910,9 +910,9 @@
 	return (__force int)cpu_to_be16(thdr->length);
 }
 
-static int csk_mem_free(struct chtls_dev *cdev, struct sock *sk)
+static bool csk_mem_free(struct chtls_dev *cdev, struct sock *sk)
 {
-	return (cdev->max_host_sndbuf - sk->sk_wmem_queued);
+	return (cdev->max_host_sndbuf - sk->sk_wmem_queued > 0);
 }
 
 static int csk_wait_memory(struct chtls_dev *cdev,
@@ -1210,6 +1210,7 @@
 	copied = 0;
 	csk = rcu_dereference_sk_user_data(sk);
 	cdev = csk->cdev;
+	lock_sock(sk);
 	timeo = sock_sndtimeo(sk, flags & MSG_DONTWAIT);
 
 	err = sk_stream_wait_connect(sk, &timeo);
@@ -1437,7 +1438,7 @@
 				      csk->wr_max_credits))
 			sk->sk_write_space(sk);
 
-		if (copied >= target && !sk->sk_backlog.tail)
+		if (copied >= target && !READ_ONCE(sk->sk_backlog.tail))
 			break;
 
 		if (copied) {
@@ -1470,7 +1471,7 @@
 				break;
 			}
 		}
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			release_sock(sk);
 			lock_sock(sk);
 			chtls_cleanup_rbuf(sk, copied);
@@ -1536,6 +1537,7 @@
 			tp->urg_data = 0;
 
 		if ((avail + offset) >= skb->len) {
+			struct sk_buff *next_skb;
 			if (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_TLS_HDR) {
 				tp->copied_seq += skb->len;
 				hws->rcvpld = skb->hdr_len;
@@ -1545,8 +1547,10 @@
 			chtls_free_skb(sk, skb);
 			buffers_freed++;
 			hws->copied_seq = 0;
-			if (copied >= target &&
-			    !skb_peek(&sk->sk_receive_queue))
+			next_skb = skb_peek(&sk->sk_receive_queue);
+			if (copied >= target && !next_skb)
+				break;
+			if (ULP_SKB_CB(next_skb)->flags & ULPCB_FLAG_TLS_HDR)
 				break;
 		}
 	} while (len > 0);
@@ -1615,7 +1619,7 @@
 			break;
 		}
 
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			/* Do not sleep, just process backlog. */
 			release_sock(sk);
 			lock_sock(sk);
@@ -1743,7 +1747,7 @@
 				      csk->wr_max_credits))
 			sk->sk_write_space(sk);
 
-		if (copied >= target && !sk->sk_backlog.tail)
+		if (copied >= target && !READ_ONCE(sk->sk_backlog.tail))
 			break;
 
 		if (copied) {
@@ -1774,7 +1778,7 @@
 			}
 		}
 
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			release_sock(sk);
 			lock_sock(sk);
 			chtls_cleanup_rbuf(sk, copied);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/geode-aes.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/geode-aes.c
@@ -10,6 +10,7 @@
 #include <linux/spinlock.h>
 #include <crypto/algapi.h>
 #include <crypto/aes.h>
+#include <crypto/internal/skcipher.h>
 
 #include <linux/io.h>
 #include <linux/delay.h>
@@ -23,12 +24,12 @@
 
 /* Write a 128 bit field (either a writable key or IV) */
 static inline void
-_writefield(u32 offset, void *value)
+_writefield(u32 offset, const void *value)
 {
 	int i;
 
 	for (i = 0; i < 4; i++)
-		iowrite32(((u32 *) value)[i], _iobase + offset + (i * 4));
+		iowrite32(((const u32 *) value)[i], _iobase + offset + (i * 4));
 }
 
 /* Read a 128 bit field (either a writable key or IV) */
@@ -42,12 +43,12 @@
 }
 
 static int
-do_crypt(void *src, void *dst, int len, u32 flags)
+do_crypt(const void *src, void *dst, u32 len, u32 flags)
 {
 	u32 status;
 	u32 counter = AES_OP_TIMEOUT;
 
-	iowrite32(virt_to_phys(src), _iobase + AES_SOURCEA_REG);
+	iowrite32(virt_to_phys((void *)src), _iobase + AES_SOURCEA_REG);
 	iowrite32(virt_to_phys(dst), _iobase + AES_DSTA_REG);
 	iowrite32(len,  _iobase + AES_LENA_REG);
 
@@ -64,16 +65,14 @@
 	return counter ? 0 : 1;
 }
 
-static unsigned int
-geode_aes_crypt(struct geode_aes_op *op)
+static void
+geode_aes_crypt(const struct geode_aes_tfm_ctx *tctx, const void *src,
+		void *dst, u32 len, u8 *iv, int mode, int dir)
 {
 	u32 flags = 0;
 	unsigned long iflags;
 	int ret;
 
-	if (op->len == 0)
-		return 0;
-
 	/* If the source and destination is the same, then
 	 * we need to turn on the coherent flags, otherwise
 	 * we don't need to worry
@@ -81,32 +80,28 @@
 
 	flags |= (AES_CTRL_DCA | AES_CTRL_SCA);
 
-	if (op->dir == AES_DIR_ENCRYPT)
+	if (dir == AES_DIR_ENCRYPT)
 		flags |= AES_CTRL_ENCRYPT;
 
 	/* Start the critical section */
 
 	spin_lock_irqsave(&lock, iflags);
 
-	if (op->mode == AES_MODE_CBC) {
+	if (mode == AES_MODE_CBC) {
 		flags |= AES_CTRL_CBC;
-		_writefield(AES_WRITEIV0_REG, op->iv);
+		_writefield(AES_WRITEIV0_REG, iv);
 	}
 
-	if (!(op->flags & AES_FLAGS_HIDDENKEY)) {
-		flags |= AES_CTRL_WRKEY;
-		_writefield(AES_WRITEKEY0_REG, op->key);
-	}
+	flags |= AES_CTRL_WRKEY;
+	_writefield(AES_WRITEKEY0_REG, tctx->key);
 
-	ret = do_crypt(op->src, op->dst, op->len, flags);
+	ret = do_crypt(src, dst, len, flags);
 	BUG_ON(ret);
 
-	if (op->mode == AES_MODE_CBC)
-		_readfield(AES_WRITEIV0_REG, op->iv);
+	if (mode == AES_MODE_CBC)
+		_readfield(AES_WRITEIV0_REG, iv);
 
 	spin_unlock_irqrestore(&lock, iflags);
-
-	return op->len;
 }
 
 /* CRYPTO-API Functions */
@@ -114,13 +109,13 @@
 static int geode_setkey_cip(struct crypto_tfm *tfm, const u8 *key,
 		unsigned int len)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 	unsigned int ret;
 
-	op->keylen = len;
+	tctx->keylen = len;
 
 	if (len == AES_KEYSIZE_128) {
-		memcpy(op->key, key, len);
+		memcpy(tctx->key, key, len);
 		return 0;
 	}
 
@@ -133,135 +128,93 @@
 	/*
 	 * The requested key size is not supported by HW, do a fallback
 	 */
-	op->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	op->fallback.cip->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
+	tctx->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
+	tctx->fallback.cip->base.crt_flags |=
+		(tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
 
-	ret = crypto_cipher_setkey(op->fallback.cip, key, len);
+	ret = crypto_cipher_setkey(tctx->fallback.cip, key, len);
 	if (ret) {
 		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (op->fallback.cip->base.crt_flags & CRYPTO_TFM_RES_MASK);
+		tfm->crt_flags |= (tctx->fallback.cip->base.crt_flags &
+				   CRYPTO_TFM_RES_MASK);
 	}
 	return ret;
 }
 
-static int geode_setkey_blk(struct crypto_tfm *tfm, const u8 *key,
-		unsigned int len)
+static int geode_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
+				 unsigned int len)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
 	unsigned int ret;
 
-	op->keylen = len;
+	tctx->keylen = len;
 
 	if (len == AES_KEYSIZE_128) {
-		memcpy(op->key, key, len);
+		memcpy(tctx->key, key, len);
 		return 0;
 	}
 
 	if (len != AES_KEYSIZE_192 && len != AES_KEYSIZE_256) {
 		/* not supported at all */
-		tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
+		crypto_skcipher_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 
 	/*
 	 * The requested key size is not supported by HW, do a fallback
 	 */
-	op->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	op->fallback.blk->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
-
-	ret = crypto_blkcipher_setkey(op->fallback.blk, key, len);
-	if (ret) {
-		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (op->fallback.blk->base.crt_flags & CRYPTO_TFM_RES_MASK);
-	}
-	return ret;
-}
-
-static int fallback_blk_dec(struct blkcipher_desc *desc,
-		struct scatterlist *dst, struct scatterlist *src,
-		unsigned int nbytes)
-{
-	unsigned int ret;
-	struct crypto_blkcipher *tfm;
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-
-	tfm = desc->tfm;
-	desc->tfm = op->fallback.blk;
-
-	ret = crypto_blkcipher_decrypt_iv(desc, dst, src, nbytes);
-
-	desc->tfm = tfm;
-	return ret;
-}
-static int fallback_blk_enc(struct blkcipher_desc *desc,
-		struct scatterlist *dst, struct scatterlist *src,
-		unsigned int nbytes)
-{
-	unsigned int ret;
-	struct crypto_blkcipher *tfm;
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-
-	tfm = desc->tfm;
-	desc->tfm = op->fallback.blk;
-
-	ret = crypto_blkcipher_encrypt_iv(desc, dst, src, nbytes);
-
-	desc->tfm = tfm;
+	crypto_skcipher_clear_flags(tctx->fallback.skcipher,
+				    CRYPTO_TFM_REQ_MASK);
+	crypto_skcipher_set_flags(tctx->fallback.skcipher,
+				  crypto_skcipher_get_flags(tfm) &
+				  CRYPTO_TFM_REQ_MASK);
+	ret = crypto_skcipher_setkey(tctx->fallback.skcipher, key, len);
+	crypto_skcipher_set_flags(tfm,
+				  crypto_skcipher_get_flags(tctx->fallback.skcipher) &
+				  CRYPTO_TFM_RES_MASK);
 	return ret;
 }
 
 static void
 geode_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	const struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	if (unlikely(op->keylen != AES_KEYSIZE_128)) {
-		crypto_cipher_encrypt_one(op->fallback.cip, out, in);
+	if (unlikely(tctx->keylen != AES_KEYSIZE_128)) {
+		crypto_cipher_encrypt_one(tctx->fallback.cip, out, in);
 		return;
 	}
 
-	op->src = (void *) in;
-	op->dst = (void *) out;
-	op->mode = AES_MODE_ECB;
-	op->flags = 0;
-	op->len = AES_BLOCK_SIZE;
-	op->dir = AES_DIR_ENCRYPT;
-
-	geode_aes_crypt(op);
+	geode_aes_crypt(tctx, in, out, AES_BLOCK_SIZE, NULL,
+			AES_MODE_ECB, AES_DIR_ENCRYPT);
 }
 
 
 static void
 geode_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	const struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	if (unlikely(op->keylen != AES_KEYSIZE_128)) {
-		crypto_cipher_decrypt_one(op->fallback.cip, out, in);
+	if (unlikely(tctx->keylen != AES_KEYSIZE_128)) {
+		crypto_cipher_decrypt_one(tctx->fallback.cip, out, in);
 		return;
 	}
 
-	op->src = (void *) in;
-	op->dst = (void *) out;
-	op->mode = AES_MODE_ECB;
-	op->flags = 0;
-	op->len = AES_BLOCK_SIZE;
-	op->dir = AES_DIR_DECRYPT;
-
-	geode_aes_crypt(op);
+	geode_aes_crypt(tctx, in, out, AES_BLOCK_SIZE, NULL,
+			AES_MODE_ECB, AES_DIR_DECRYPT);
 }
 
 static int fallback_init_cip(struct crypto_tfm *tfm)
 {
 	const char *name = crypto_tfm_alg_name(tfm);
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	op->fallback.cip = crypto_alloc_cipher(name, 0,
-					       CRYPTO_ALG_NEED_FALLBACK);
+	tctx->fallback.cip = crypto_alloc_cipher(name, 0,
+						 CRYPTO_ALG_NEED_FALLBACK);
 
-	if (IS_ERR(op->fallback.cip)) {
+	if (IS_ERR(tctx->fallback.cip)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.cip);
+		return PTR_ERR(tctx->fallback.cip);
 	}
 
 	return 0;
@@ -269,10 +222,9 @@
 
 static void fallback_exit_cip(struct crypto_tfm *tfm)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	crypto_free_cipher(op->fallback.cip);
-	op->fallback.cip = NULL;
+	crypto_free_cipher(tctx->fallback.cip);
 }
 
 static struct crypto_alg geode_alg = {
@@ -285,7 +237,7 @@
 	.cra_init			=	fallback_init_cip,
 	.cra_exit			=	fallback_exit_cip,
 	.cra_blocksize		=	AES_BLOCK_SIZE,
-	.cra_ctxsize		=	sizeof(struct geode_aes_op),
+	.cra_ctxsize		=	sizeof(struct geode_aes_tfm_ctx),
 	.cra_module			=	THIS_MODULE,
 	.cra_u				=	{
 		.cipher	=	{
@@ -298,209 +250,126 @@
 	}
 };
 
-static int
-geode_cbc_decrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_dec(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-	op->iv = walk.iv;
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_CBC;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_DECRYPT;
-
-		ret = geode_aes_crypt(op);
-
-		nbytes -= ret;
-		err = blkcipher_walk_done(desc, &walk, nbytes);
-	}
-
-	return err;
-}
-
-static int
-geode_cbc_encrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_enc(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-	op->iv = walk.iv;
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_CBC;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_ENCRYPT;
-
-		ret = geode_aes_crypt(op);
-		nbytes -= ret;
-		err = blkcipher_walk_done(desc, &walk, nbytes);
-	}
-
-	return err;
-}
-
-static int fallback_init_blk(struct crypto_tfm *tfm)
+static int geode_init_skcipher(struct crypto_skcipher *tfm)
 {
-	const char *name = crypto_tfm_alg_name(tfm);
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
-
-	op->fallback.blk = crypto_alloc_blkcipher(name, 0,
-			CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
+	const char *name = crypto_tfm_alg_name(&tfm->base);
+	struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
 
-	if (IS_ERR(op->fallback.blk)) {
+	tctx->fallback.skcipher =
+		crypto_alloc_skcipher(name, 0, CRYPTO_ALG_NEED_FALLBACK |
+				      CRYPTO_ALG_ASYNC);
+	if (IS_ERR(tctx->fallback.skcipher)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.blk);
+		return PTR_ERR(tctx->fallback.skcipher);
 	}
 
+	crypto_skcipher_set_reqsize(tfm, sizeof(struct skcipher_request) +
+				    crypto_skcipher_reqsize(tctx->fallback.skcipher));
 	return 0;
 }
 
-static void fallback_exit_blk(struct crypto_tfm *tfm)
+static void geode_exit_skcipher(struct crypto_skcipher *tfm)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
 
-	crypto_free_blkcipher(op->fallback.blk);
-	op->fallback.blk = NULL;
+	crypto_free_skcipher(tctx->fallback.skcipher);
 }
 
-static struct crypto_alg geode_cbc_alg = {
-	.cra_name		=	"cbc(aes)",
-	.cra_driver_name	=	"cbc-aes-geode",
-	.cra_priority		=	400,
-	.cra_flags			=	CRYPTO_ALG_TYPE_BLKCIPHER |
-						CRYPTO_ALG_KERN_DRIVER_ONLY |
-						CRYPTO_ALG_NEED_FALLBACK,
-	.cra_init			=	fallback_init_blk,
-	.cra_exit			=	fallback_exit_blk,
-	.cra_blocksize		=	AES_BLOCK_SIZE,
-	.cra_ctxsize		=	sizeof(struct geode_aes_op),
-	.cra_alignmask		=	15,
-	.cra_type			=	&crypto_blkcipher_type,
-	.cra_module			=	THIS_MODULE,
-	.cra_u				=	{
-		.blkcipher	=	{
-			.min_keysize	=	AES_MIN_KEY_SIZE,
-			.max_keysize	=	AES_MAX_KEY_SIZE,
-			.setkey			=	geode_setkey_blk,
-			.encrypt		=	geode_cbc_encrypt,
-			.decrypt		=	geode_cbc_decrypt,
-			.ivsize			=	AES_BLOCK_SIZE,
-		}
+static int geode_skcipher_crypt(struct skcipher_request *req, int mode, int dir)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	const struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	struct skcipher_walk walk;
+	unsigned int nbytes;
+	int err;
+
+	if (unlikely(tctx->keylen != AES_KEYSIZE_128)) {
+		struct skcipher_request *subreq = skcipher_request_ctx(req);
+
+		*subreq = *req;
+		skcipher_request_set_tfm(subreq, tctx->fallback.skcipher);
+		if (dir == AES_DIR_DECRYPT)
+			return crypto_skcipher_decrypt(subreq);
+		else
+			return crypto_skcipher_encrypt(subreq);
 	}
-};
 
-static int
-geode_ecb_decrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_dec(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_ECB;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_DECRYPT;
-
-		ret = geode_aes_crypt(op);
-		nbytes -= ret;
-		err = blkcipher_walk_done(desc, &walk, nbytes);
+	err = skcipher_walk_virt(&walk, req, false);
+
+	while ((nbytes = walk.nbytes) != 0) {
+		geode_aes_crypt(tctx, walk.src.virt.addr, walk.dst.virt.addr,
+				round_down(nbytes, AES_BLOCK_SIZE),
+				walk.iv, mode, dir);
+		err = skcipher_walk_done(&walk, nbytes % AES_BLOCK_SIZE);
 	}
 
 	return err;
 }
 
-static int
-geode_ecb_encrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_enc(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_ECB;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_ENCRYPT;
-
-		ret = geode_aes_crypt(op);
-		nbytes -= ret;
-		ret =  blkcipher_walk_done(desc, &walk, nbytes);
-	}
+static int geode_cbc_encrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_CBC, AES_DIR_ENCRYPT);
+}
 
-	return err;
+static int geode_cbc_decrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_CBC, AES_DIR_DECRYPT);
 }
 
-static struct crypto_alg geode_ecb_alg = {
-	.cra_name			=	"ecb(aes)",
-	.cra_driver_name	=	"ecb-aes-geode",
-	.cra_priority		=	400,
-	.cra_flags			=	CRYPTO_ALG_TYPE_BLKCIPHER |
-						CRYPTO_ALG_KERN_DRIVER_ONLY |
-						CRYPTO_ALG_NEED_FALLBACK,
-	.cra_init			=	fallback_init_blk,
-	.cra_exit			=	fallback_exit_blk,
-	.cra_blocksize		=	AES_BLOCK_SIZE,
-	.cra_ctxsize		=	sizeof(struct geode_aes_op),
-	.cra_alignmask		=	15,
-	.cra_type			=	&crypto_blkcipher_type,
-	.cra_module			=	THIS_MODULE,
-	.cra_u				=	{
-		.blkcipher	=	{
-			.min_keysize	=	AES_MIN_KEY_SIZE,
-			.max_keysize	=	AES_MAX_KEY_SIZE,
-			.setkey			=	geode_setkey_blk,
-			.encrypt		=	geode_ecb_encrypt,
-			.decrypt		=	geode_ecb_decrypt,
-		}
-	}
+static int geode_ecb_encrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_ECB, AES_DIR_ENCRYPT);
+}
+
+static int geode_ecb_decrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_ECB, AES_DIR_DECRYPT);
+}
+
+static struct skcipher_alg geode_skcipher_algs[] = {
+	{
+		.base.cra_name		= "cbc(aes)",
+		.base.cra_driver_name	= "cbc-aes-geode",
+		.base.cra_priority	= 400,
+		.base.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
+					  CRYPTO_ALG_NEED_FALLBACK,
+		.base.cra_blocksize	= AES_BLOCK_SIZE,
+		.base.cra_ctxsize	= sizeof(struct geode_aes_tfm_ctx),
+		.base.cra_alignmask	= 15,
+		.base.cra_module	= THIS_MODULE,
+		.init			= geode_init_skcipher,
+		.exit			= geode_exit_skcipher,
+		.setkey			= geode_setkey_skcipher,
+		.encrypt		= geode_cbc_encrypt,
+		.decrypt		= geode_cbc_decrypt,
+		.min_keysize		= AES_MIN_KEY_SIZE,
+		.max_keysize		= AES_MAX_KEY_SIZE,
+		.ivsize			= AES_BLOCK_SIZE,
+	}, {
+		.base.cra_name		= "ecb(aes)",
+		.base.cra_driver_name	= "ecb-aes-geode",
+		.base.cra_priority	= 400,
+		.base.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
+					  CRYPTO_ALG_NEED_FALLBACK,
+		.base.cra_blocksize	= AES_BLOCK_SIZE,
+		.base.cra_ctxsize	= sizeof(struct geode_aes_tfm_ctx),
+		.base.cra_alignmask	= 15,
+		.base.cra_module	= THIS_MODULE,
+		.init			= geode_init_skcipher,
+		.exit			= geode_exit_skcipher,
+		.setkey			= geode_setkey_skcipher,
+		.encrypt		= geode_ecb_encrypt,
+		.decrypt		= geode_ecb_decrypt,
+		.min_keysize		= AES_MIN_KEY_SIZE,
+		.max_keysize		= AES_MAX_KEY_SIZE,
+	},
 };
 
 static void geode_aes_remove(struct pci_dev *dev)
 {
 	crypto_unregister_alg(&geode_alg);
-	crypto_unregister_alg(&geode_ecb_alg);
-	crypto_unregister_alg(&geode_cbc_alg);
+	crypto_unregister_skciphers(geode_skcipher_algs,
+				    ARRAY_SIZE(geode_skcipher_algs));
 
 	pci_iounmap(dev, _iobase);
 	_iobase = NULL;
@@ -538,20 +407,14 @@
 	if (ret)
 		goto eiomap;
 
-	ret = crypto_register_alg(&geode_ecb_alg);
+	ret = crypto_register_skciphers(geode_skcipher_algs,
+					ARRAY_SIZE(geode_skcipher_algs));
 	if (ret)
 		goto ealg;
 
-	ret = crypto_register_alg(&geode_cbc_alg);
-	if (ret)
-		goto eecb;
-
 	dev_notice(&dev->dev, "GEODE AES engine enabled.\n");
 	return 0;
 
- eecb:
-	crypto_unregister_alg(&geode_ecb_alg);
-
  ealg:
 	crypto_unregister_alg(&geode_alg);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/geode-aes.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/geode-aes.h
@@ -46,21 +46,10 @@
 
 #define AES_OP_TIMEOUT    0x50000
 
-struct geode_aes_op {
-
-	void *src;
-	void *dst;
-
-	u32 mode;
-	u32 dir;
-	u32 flags;
-	int len;
-
+struct geode_aes_tfm_ctx {
 	u8 key[AES_KEYSIZE_128];
-	u8 *iv;
-
 	union {
-		struct crypto_blkcipher *blk;
+		struct crypto_skcipher *skcipher;
 		struct crypto_cipher *cip;
 	} fallback;
 	u32 keylen;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/Kconfig
@@ -14,26 +14,53 @@
 	  To compile this as a module, choose M here: the module
 	  will be called hisi_sec.
 
+config CRYPTO_DEV_HISI_SEC2
+	tristate "Support for HiSilicon SEC2 crypto block cipher accelerator"
+	select CRYPTO_BLKCIPHER
+	select CRYPTO_ALGAPI
+	select CRYPTO_LIB_DES
+	select CRYPTO_DEV_HISI_QM
+	select CRYPTO_AEAD
+	select CRYPTO_AUTHENC
+	select CRYPTO_HMAC
+	select CRYPTO_SHA1
+	select CRYPTO_SHA256
+	select CRYPTO_SHA512
+	depends on PCI && PCI_MSI
+	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	help
+	  Support for HiSilicon SEC Engine of version 2 in crypto subsystem.
+	  It provides AES, SM4, and 3DES algorithms with ECB
+	  CBC, and XTS cipher mode, and AEAD algorithms.
+
+	  To compile this as a module, choose M here: the module
+          will be called hisi_sec2.
+
 config CRYPTO_DEV_HISI_QM
 	tristate
-	depends on ARM64 && PCI && PCI_MSI
+	depends on ARM64 || COMPILE_TEST
+	depends on PCI && PCI_MSI
+	select NEED_SG_DMA_LENGTH
 	help
 	  HiSilicon accelerator engines use a common queue management
 	  interface. Specific engine driver may use this module.
 
-config CRYPTO_HISI_SGL
-	tristate
-	depends on ARM64
-	help
-	  HiSilicon accelerator engines use a common hardware scatterlist
-	  interface for data format. Specific engine driver may use this
-	  module.
-
 config CRYPTO_DEV_HISI_ZIP
 	tristate "Support for HiSilicon ZIP accelerator"
-	depends on ARM64 && PCI && PCI_MSI
+	depends on PCI && PCI_MSI
+	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	depends on !CPU_BIG_ENDIAN || COMPILE_TEST
 	select CRYPTO_DEV_HISI_QM
-	select CRYPTO_HISI_SGL
-	select SG_SPLIT
 	help
 	  Support for HiSilicon ZIP Driver
+
+config CRYPTO_DEV_HISI_HPRE
+	tristate "Support for HISI HPRE accelerator"
+	depends on PCI && PCI_MSI
+	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	select CRYPTO_DEV_HISI_QM
+	select CRYPTO_DH
+	select CRYPTO_RSA
+	help
+	  Support for HiSilicon HPRE(High Performance RSA Engine)
+	  accelerator, which can accelerate RSA and DH algorithms.
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/Makefile
@@ -1,5 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_CRYPTO_DEV_HISI_HPRE) += hpre/
 obj-$(CONFIG_CRYPTO_DEV_HISI_SEC) += sec/
-obj-$(CONFIG_CRYPTO_DEV_HISI_QM) += qm.o
-obj-$(CONFIG_CRYPTO_HISI_SGL) += sgl.o
+obj-$(CONFIG_CRYPTO_DEV_HISI_SEC2) += sec2/
+obj-$(CONFIG_CRYPTO_DEV_HISI_QM) += hisi_qm.o
+hisi_qm-objs = qm.o sgl.o
 obj-$(CONFIG_CRYPTO_DEV_HISI_ZIP) += zip/
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/hpre/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/hpre/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_CRYPTO_DEV_HISI_HPRE) += hisi_hpre.o
+hisi_hpre-objs = hpre_main.o hpre_crypto.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/hpre/hpre.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/hpre/hpre.h
@@ -0,0 +1,83 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2019 HiSilicon Limited. */
+#ifndef __HISI_HPRE_H
+#define __HISI_HPRE_H
+
+#include <linux/list.h>
+#include "../qm.h"
+
+#define HPRE_SQE_SIZE			sizeof(struct hpre_sqe)
+#define HPRE_PF_DEF_Q_NUM		64
+#define HPRE_PF_DEF_Q_BASE		0
+
+enum {
+	HPRE_CLUSTER0,
+	HPRE_CLUSTER1,
+	HPRE_CLUSTER2,
+	HPRE_CLUSTER3,
+	HPRE_CLUSTERS_NUM,
+};
+
+enum hpre_ctrl_dbgfs_file {
+	HPRE_CURRENT_QM,
+	HPRE_CLEAR_ENABLE,
+	HPRE_CLUSTER_CTRL,
+	HPRE_DEBUG_FILE_NUM,
+};
+
+#define HPRE_DEBUGFS_FILE_NUM    (HPRE_DEBUG_FILE_NUM + HPRE_CLUSTERS_NUM - 1)
+
+struct hpre_debugfs_file {
+	int index;
+	enum hpre_ctrl_dbgfs_file type;
+	spinlock_t lock;
+	struct hpre_debug *debug;
+};
+
+/*
+ * One HPRE controller has one PF and multiple VFs, some global configurations
+ * which PF has need this structure.
+ * Just relevant for PF.
+ */
+struct hpre_debug {
+	struct dentry *debug_root;
+	struct hpre_debugfs_file files[HPRE_DEBUGFS_FILE_NUM];
+};
+
+struct hpre {
+	struct hisi_qm qm;
+	struct list_head list;
+	struct hpre_debug debug;
+	u32 num_vfs;
+	unsigned long status;
+};
+
+enum hpre_alg_type {
+	HPRE_ALG_NC_NCRT = 0x0,
+	HPRE_ALG_NC_CRT = 0x1,
+	HPRE_ALG_KG_STD = 0x2,
+	HPRE_ALG_KG_CRT = 0x3,
+	HPRE_ALG_DH_G2 = 0x4,
+	HPRE_ALG_DH = 0x5,
+};
+
+struct hpre_sqe {
+	__le32 dw0;
+	__u8 task_len1;
+	__u8 task_len2;
+	__u8 mrttest_num;
+	__u8 resv1;
+	__le64 key;
+	__le64 in;
+	__le64 out;
+	__le16 tag;
+	__le16 resv2;
+#define _HPRE_SQE_ALIGN_EXT	7
+	__le32 rsvd1[_HPRE_SQE_ALIGN_EXT];
+};
+
+struct hpre *hpre_find_device(int node);
+int hpre_algs_register(void);
+void hpre_algs_unregister(void);
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/hpre/hpre_crypto.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/hpre/hpre_crypto.c
@@ -0,0 +1,1134 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+#include <crypto/akcipher.h>
+#include <crypto/dh.h>
+#include <crypto/internal/akcipher.h>
+#include <crypto/internal/kpp.h>
+#include <crypto/internal/rsa.h>
+#include <crypto/kpp.h>
+#include <crypto/scatterwalk.h>
+#include <linux/dma-mapping.h>
+#include <linux/fips.h>
+#include <linux/module.h>
+#include "hpre.h"
+
+struct hpre_ctx;
+
+#define HPRE_CRYPTO_ALG_PRI	1000
+#define HPRE_ALIGN_SZ		64
+#define HPRE_BITS_2_BYTES_SHIFT	3
+#define HPRE_RSA_512BITS_KSZ	64
+#define HPRE_RSA_1536BITS_KSZ	192
+#define HPRE_CRT_PRMS		5
+#define HPRE_CRT_Q		2
+#define HPRE_CRT_P		3
+#define HPRE_CRT_INV		4
+#define HPRE_DH_G_FLAG		0x02
+#define HPRE_TRY_SEND_TIMES	100
+#define HPRE_INVLD_REQ_ID		(-1)
+#define HPRE_DEV(ctx)		(&((ctx)->qp->qm->pdev->dev))
+
+#define HPRE_SQE_ALG_BITS	5
+#define HPRE_SQE_DONE_SHIFT	30
+#define HPRE_DH_MAX_P_SZ	512
+
+typedef void (*hpre_cb)(struct hpre_ctx *ctx, void *sqe);
+
+struct hpre_rsa_ctx {
+	/* low address: e--->n */
+	char *pubkey;
+	dma_addr_t dma_pubkey;
+
+	/* low address: d--->n */
+	char *prikey;
+	dma_addr_t dma_prikey;
+
+	/* low address: dq->dp->q->p->qinv */
+	char *crt_prikey;
+	dma_addr_t dma_crt_prikey;
+
+	struct crypto_akcipher *soft_tfm;
+};
+
+struct hpre_dh_ctx {
+	/*
+	 * If base is g we compute the public key
+	 *	ya = g^xa mod p; [RFC2631 sec 2.1.1]
+	 * else if base if the counterpart public key we
+	 * compute the shared secret
+	 *	ZZ = yb^xa mod p; [RFC2631 sec 2.1.1]
+	 */
+	char *xa_p; /* low address: d--->n, please refer to Hisilicon HPRE UM */
+	dma_addr_t dma_xa_p;
+
+	char *g; /* m */
+	dma_addr_t dma_g;
+};
+
+struct hpre_ctx {
+	struct hisi_qp *qp;
+	struct hpre_asym_request **req_list;
+	spinlock_t req_lock;
+	unsigned int key_sz;
+	bool crt_g2_mode;
+	struct idr req_idr;
+	union {
+		struct hpre_rsa_ctx rsa;
+		struct hpre_dh_ctx dh;
+	};
+};
+
+struct hpre_asym_request {
+	char *src;
+	char *dst;
+	struct hpre_sqe req;
+	struct hpre_ctx *ctx;
+	union {
+		struct akcipher_request *rsa;
+		struct kpp_request *dh;
+	} areq;
+	int err;
+	int req_id;
+	hpre_cb cb;
+};
+
+static DEFINE_MUTEX(hpre_alg_lock);
+static unsigned int hpre_active_devs;
+
+static int hpre_alloc_req_id(struct hpre_ctx *ctx)
+{
+	unsigned long flags;
+	int id;
+
+	spin_lock_irqsave(&ctx->req_lock, flags);
+	id = idr_alloc(&ctx->req_idr, NULL, 0, QM_Q_DEPTH, GFP_ATOMIC);
+	spin_unlock_irqrestore(&ctx->req_lock, flags);
+
+	return id;
+}
+
+static void hpre_free_req_id(struct hpre_ctx *ctx, int req_id)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ctx->req_lock, flags);
+	idr_remove(&ctx->req_idr, req_id);
+	spin_unlock_irqrestore(&ctx->req_lock, flags);
+}
+
+static int hpre_add_req_to_ctx(struct hpre_asym_request *hpre_req)
+{
+	struct hpre_ctx *ctx;
+	int id;
+
+	ctx = hpre_req->ctx;
+	id = hpre_alloc_req_id(ctx);
+	if (unlikely(id < 0))
+		return -EINVAL;
+
+	ctx->req_list[id] = hpre_req;
+	hpre_req->req_id = id;
+
+	return id;
+}
+
+static void hpre_rm_req_from_ctx(struct hpre_asym_request *hpre_req)
+{
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	int id = hpre_req->req_id;
+
+	if (hpre_req->req_id >= 0) {
+		hpre_req->req_id = HPRE_INVLD_REQ_ID;
+		ctx->req_list[id] = NULL;
+		hpre_free_req_id(ctx, id);
+	}
+}
+
+static struct hisi_qp *hpre_get_qp_and_start(void)
+{
+	struct hisi_qp *qp;
+	struct hpre *hpre;
+	int ret;
+
+	/* find the proper hpre device, which is near the current CPU core */
+	hpre = hpre_find_device(cpu_to_node(smp_processor_id()));
+	if (!hpre) {
+		pr_err("Can not find proper hpre device!\n");
+		return ERR_PTR(-ENODEV);
+	}
+
+	qp = hisi_qm_create_qp(&hpre->qm, 0);
+	if (IS_ERR(qp)) {
+		pci_err(hpre->qm.pdev, "Can not create qp!\n");
+		return ERR_PTR(-ENODEV);
+	}
+
+	ret = hisi_qm_start_qp(qp, 0);
+	if (ret < 0) {
+		hisi_qm_release_qp(qp);
+		pci_err(hpre->qm.pdev, "Can not start qp!\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	return qp;
+}
+
+static int hpre_get_data_dma_addr(struct hpre_asym_request *hpre_req,
+				  struct scatterlist *data, unsigned int len,
+				  int is_src, dma_addr_t *tmp)
+{
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	struct device *dev = HPRE_DEV(ctx);
+	enum dma_data_direction dma_dir;
+
+	if (is_src) {
+		hpre_req->src = NULL;
+		dma_dir = DMA_TO_DEVICE;
+	} else {
+		hpre_req->dst = NULL;
+		dma_dir = DMA_FROM_DEVICE;
+	}
+	*tmp = dma_map_single(dev, sg_virt(data),
+			      len, dma_dir);
+	if (unlikely(dma_mapping_error(dev, *tmp))) {
+		dev_err(dev, "dma map data err!\n");
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+static int hpre_prepare_dma_buf(struct hpre_asym_request *hpre_req,
+				struct scatterlist *data, unsigned int len,
+				int is_src, dma_addr_t *tmp)
+{
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	struct device *dev = HPRE_DEV(ctx);
+	void *ptr;
+	int shift;
+
+	shift = ctx->key_sz - len;
+	if (unlikely(shift < 0))
+		return -EINVAL;
+
+	ptr = dma_alloc_coherent(dev, ctx->key_sz, tmp, GFP_KERNEL);
+	if (unlikely(!ptr))
+		return -ENOMEM;
+
+	if (is_src) {
+		scatterwalk_map_and_copy(ptr + shift, data, 0, len, 0);
+		hpre_req->src = ptr;
+	} else {
+		hpre_req->dst = ptr;
+	}
+
+	return 0;
+}
+
+static int hpre_hw_data_init(struct hpre_asym_request *hpre_req,
+			     struct scatterlist *data, unsigned int len,
+			     int is_src, int is_dh)
+{
+	struct hpre_sqe *msg = &hpre_req->req;
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	dma_addr_t tmp = 0;
+	int ret;
+
+	/* when the data is dh's source, we should format it */
+	if ((sg_is_last(data) && len == ctx->key_sz) &&
+	    ((is_dh && !is_src) || !is_dh))
+		ret = hpre_get_data_dma_addr(hpre_req, data, len, is_src, &tmp);
+	else
+		ret = hpre_prepare_dma_buf(hpre_req, data, len,
+					  is_src, &tmp);
+	if (unlikely(ret))
+		return ret;
+
+	if (is_src)
+		msg->in = cpu_to_le64(tmp);
+	else
+		msg->out = cpu_to_le64(tmp);
+
+	return 0;
+}
+
+static void hpre_hw_data_clr_all(struct hpre_ctx *ctx,
+				 struct hpre_asym_request *req,
+				 struct scatterlist *dst,
+				 struct scatterlist *src)
+{
+	struct device *dev = HPRE_DEV(ctx);
+	struct hpre_sqe *sqe = &req->req;
+	dma_addr_t tmp;
+
+	tmp = le64_to_cpu(sqe->in);
+	if (unlikely(!tmp))
+		return;
+
+	if (src) {
+		if (req->src)
+			dma_free_coherent(dev, ctx->key_sz,
+					  req->src, tmp);
+		else
+			dma_unmap_single(dev, tmp,
+					 ctx->key_sz, DMA_TO_DEVICE);
+	}
+
+	tmp = le64_to_cpu(sqe->out);
+	if (unlikely(!tmp))
+		return;
+
+	if (req->dst) {
+		if (dst)
+			scatterwalk_map_and_copy(req->dst, dst, 0,
+						 ctx->key_sz, 1);
+		dma_free_coherent(dev, ctx->key_sz, req->dst, tmp);
+	} else {
+		dma_unmap_single(dev, tmp, ctx->key_sz, DMA_FROM_DEVICE);
+	}
+}
+
+static int hpre_alg_res_post_hf(struct hpre_ctx *ctx, struct hpre_sqe *sqe,
+				void **kreq)
+{
+	struct hpre_asym_request *req;
+	int err, id, done;
+
+#define HPRE_NO_HW_ERR		0
+#define HPRE_HW_TASK_DONE	3
+#define HREE_HW_ERR_MASK	0x7ff
+#define HREE_SQE_DONE_MASK	0x3
+	id = (int)le16_to_cpu(sqe->tag);
+	req = ctx->req_list[id];
+	hpre_rm_req_from_ctx(req);
+	*kreq = req;
+
+	err = (le32_to_cpu(sqe->dw0) >> HPRE_SQE_ALG_BITS) &
+		HREE_HW_ERR_MASK;
+
+	done = (le32_to_cpu(sqe->dw0) >> HPRE_SQE_DONE_SHIFT) &
+		HREE_SQE_DONE_MASK;
+
+	if (likely(err == HPRE_NO_HW_ERR && done == HPRE_HW_TASK_DONE))
+		return  0;
+
+	return -EINVAL;
+}
+
+static int hpre_ctx_set(struct hpre_ctx *ctx, struct hisi_qp *qp, int qlen)
+{
+	if (!ctx || !qp || qlen < 0)
+		return -EINVAL;
+
+	spin_lock_init(&ctx->req_lock);
+	ctx->qp = qp;
+
+	ctx->req_list = kcalloc(qlen, sizeof(void *), GFP_KERNEL);
+	if (!ctx->req_list)
+		return -ENOMEM;
+	ctx->key_sz = 0;
+	ctx->crt_g2_mode = false;
+	idr_init(&ctx->req_idr);
+
+	return 0;
+}
+
+static void hpre_ctx_clear(struct hpre_ctx *ctx, bool is_clear_all)
+{
+	if (is_clear_all) {
+		idr_destroy(&ctx->req_idr);
+		kfree(ctx->req_list);
+		hisi_qm_release_qp(ctx->qp);
+	}
+
+	ctx->crt_g2_mode = false;
+	ctx->key_sz = 0;
+}
+
+static void hpre_dh_cb(struct hpre_ctx *ctx, void *resp)
+{
+	struct hpre_asym_request *req;
+	struct kpp_request *areq;
+	int ret;
+
+	ret = hpre_alg_res_post_hf(ctx, resp, (void **)&req);
+	areq = req->areq.dh;
+	areq->dst_len = ctx->key_sz;
+	hpre_hw_data_clr_all(ctx, req, areq->dst, areq->src);
+	kpp_request_complete(areq, ret);
+}
+
+static void hpre_rsa_cb(struct hpre_ctx *ctx, void *resp)
+{
+	struct hpre_asym_request *req;
+	struct akcipher_request *areq;
+	int ret;
+
+	ret = hpre_alg_res_post_hf(ctx, resp, (void **)&req);
+	areq = req->areq.rsa;
+	areq->dst_len = ctx->key_sz;
+	hpre_hw_data_clr_all(ctx, req, areq->dst, areq->src);
+	akcipher_request_complete(areq, ret);
+}
+
+static void hpre_alg_cb(struct hisi_qp *qp, void *resp)
+{
+	struct hpre_ctx *ctx = qp->qp_ctx;
+	struct hpre_sqe *sqe = resp;
+
+	ctx->req_list[le16_to_cpu(sqe->tag)]->cb(ctx, resp);
+}
+
+static int hpre_ctx_init(struct hpre_ctx *ctx)
+{
+	struct hisi_qp *qp;
+
+	qp = hpre_get_qp_and_start();
+	if (IS_ERR(qp))
+		return PTR_ERR(qp);
+
+	qp->qp_ctx = ctx;
+	qp->req_cb = hpre_alg_cb;
+
+	return hpre_ctx_set(ctx, qp, QM_Q_DEPTH);
+}
+
+static int hpre_msg_request_set(struct hpre_ctx *ctx, void *req, bool is_rsa)
+{
+	struct hpre_asym_request *h_req;
+	struct hpre_sqe *msg;
+	int req_id;
+	void *tmp;
+
+	if (is_rsa) {
+		struct akcipher_request *akreq = req;
+
+		if (akreq->dst_len < ctx->key_sz) {
+			akreq->dst_len = ctx->key_sz;
+			return -EOVERFLOW;
+		}
+
+		tmp = akcipher_request_ctx(akreq);
+		h_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+		h_req->cb = hpre_rsa_cb;
+		h_req->areq.rsa = akreq;
+		msg = &h_req->req;
+		memset(msg, 0, sizeof(*msg));
+	} else {
+		struct kpp_request *kreq = req;
+
+		if (kreq->dst_len < ctx->key_sz) {
+			kreq->dst_len = ctx->key_sz;
+			return -EOVERFLOW;
+		}
+
+		tmp = kpp_request_ctx(kreq);
+		h_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+		h_req->cb = hpre_dh_cb;
+		h_req->areq.dh = kreq;
+		msg = &h_req->req;
+		memset(msg, 0, sizeof(*msg));
+		msg->key = cpu_to_le64((u64)ctx->dh.dma_xa_p);
+	}
+
+	msg->dw0 |= cpu_to_le32(0x1 << HPRE_SQE_DONE_SHIFT);
+	msg->task_len1 = (ctx->key_sz >> HPRE_BITS_2_BYTES_SHIFT) - 1;
+	h_req->ctx = ctx;
+
+	req_id = hpre_add_req_to_ctx(h_req);
+	if (req_id < 0)
+		return -EBUSY;
+
+	msg->tag = cpu_to_le16((u16)req_id);
+
+	return 0;
+}
+
+#ifdef CONFIG_CRYPTO_DH
+static int hpre_dh_compute_value(struct kpp_request *req)
+{
+	struct crypto_kpp *tfm = crypto_kpp_reqtfm(req);
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+	void *tmp = kpp_request_ctx(req);
+	struct hpre_asym_request *hpre_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+	struct hpre_sqe *msg = &hpre_req->req;
+	int ctr = 0;
+	int ret;
+
+	ret = hpre_msg_request_set(ctx, req, false);
+	if (unlikely(ret))
+		return ret;
+
+	if (req->src) {
+		ret = hpre_hw_data_init(hpre_req, req->src, req->src_len, 1, 1);
+		if (unlikely(ret))
+			goto clear_all;
+	}
+
+	ret = hpre_hw_data_init(hpre_req, req->dst, req->dst_len, 0, 1);
+	if (unlikely(ret))
+		goto clear_all;
+
+	if (ctx->crt_g2_mode && !req->src)
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) | HPRE_ALG_DH_G2);
+	else
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) | HPRE_ALG_DH);
+	do {
+		ret = hisi_qp_send(ctx->qp, msg);
+	} while (ret == -EBUSY && ctr++ < HPRE_TRY_SEND_TIMES);
+
+	/* success */
+	if (likely(!ret))
+		return -EINPROGRESS;
+
+clear_all:
+	hpre_rm_req_from_ctx(hpre_req);
+	hpre_hw_data_clr_all(ctx, hpre_req, req->dst, req->src);
+
+	return ret;
+}
+
+static int hpre_is_dh_params_length_valid(unsigned int key_sz)
+{
+#define _HPRE_DH_GRP1		768
+#define _HPRE_DH_GRP2		1024
+#define _HPRE_DH_GRP5		1536
+#define _HPRE_DH_GRP14		2048
+#define _HPRE_DH_GRP15		3072
+#define _HPRE_DH_GRP16		4096
+	switch (key_sz) {
+	case _HPRE_DH_GRP1:
+	case _HPRE_DH_GRP2:
+	case _HPRE_DH_GRP5:
+	case _HPRE_DH_GRP14:
+	case _HPRE_DH_GRP15:
+	case _HPRE_DH_GRP16:
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static int hpre_dh_set_params(struct hpre_ctx *ctx, struct dh *params)
+{
+	struct device *dev = HPRE_DEV(ctx);
+	unsigned int sz;
+
+	if (params->p_size > HPRE_DH_MAX_P_SZ)
+		return -EINVAL;
+
+	if (hpre_is_dh_params_length_valid(params->p_size <<
+					   HPRE_BITS_2_BYTES_SHIFT))
+		return -EINVAL;
+
+	sz = ctx->key_sz = params->p_size;
+	ctx->dh.xa_p = dma_alloc_coherent(dev, sz << 1,
+					  &ctx->dh.dma_xa_p, GFP_KERNEL);
+	if (!ctx->dh.xa_p)
+		return -ENOMEM;
+
+	memcpy(ctx->dh.xa_p + sz, params->p, sz);
+
+	/* If g equals 2 don't copy it */
+	if (params->g_size == 1 && *(char *)params->g == HPRE_DH_G_FLAG) {
+		ctx->crt_g2_mode = true;
+		return 0;
+	}
+
+	ctx->dh.g = dma_alloc_coherent(dev, sz, &ctx->dh.dma_g, GFP_KERNEL);
+	if (!ctx->dh.g) {
+		dma_free_coherent(dev, sz << 1, ctx->dh.xa_p,
+				  ctx->dh.dma_xa_p);
+		ctx->dh.xa_p = NULL;
+		return -ENOMEM;
+	}
+
+	memcpy(ctx->dh.g + (sz - params->g_size), params->g, params->g_size);
+
+	return 0;
+}
+
+static void hpre_dh_clear_ctx(struct hpre_ctx *ctx, bool is_clear_all)
+{
+	struct device *dev = HPRE_DEV(ctx);
+	unsigned int sz = ctx->key_sz;
+
+	if (is_clear_all)
+		hisi_qm_stop_qp(ctx->qp);
+
+	if (ctx->dh.g) {
+		dma_free_coherent(dev, sz, ctx->dh.g, ctx->dh.dma_g);
+		ctx->dh.g = NULL;
+	}
+
+	if (ctx->dh.xa_p) {
+		memzero_explicit(ctx->dh.xa_p, sz);
+		dma_free_coherent(dev, sz << 1, ctx->dh.xa_p,
+				  ctx->dh.dma_xa_p);
+		ctx->dh.xa_p = NULL;
+	}
+
+	hpre_ctx_clear(ctx, is_clear_all);
+}
+
+static int hpre_dh_set_secret(struct crypto_kpp *tfm, const void *buf,
+			      unsigned int len)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+	struct dh params;
+	int ret;
+
+	if (crypto_dh_decode_key(buf, len, &params) < 0)
+		return -EINVAL;
+
+	/* Free old secret if any */
+	hpre_dh_clear_ctx(ctx, false);
+
+	ret = hpre_dh_set_params(ctx, &params);
+	if (ret < 0)
+		goto err_clear_ctx;
+
+	memcpy(ctx->dh.xa_p + (ctx->key_sz - params.key_size), params.key,
+	       params.key_size);
+
+	return 0;
+
+err_clear_ctx:
+	hpre_dh_clear_ctx(ctx, false);
+	return ret;
+}
+
+static unsigned int hpre_dh_max_size(struct crypto_kpp *tfm)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+
+	return ctx->key_sz;
+}
+
+static int hpre_dh_init_tfm(struct crypto_kpp *tfm)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+
+	return hpre_ctx_init(ctx);
+}
+
+static void hpre_dh_exit_tfm(struct crypto_kpp *tfm)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+
+	hpre_dh_clear_ctx(ctx, true);
+}
+#endif
+
+static void hpre_rsa_drop_leading_zeros(const char **ptr, size_t *len)
+{
+	while (!**ptr && *len) {
+		(*ptr)++;
+		(*len)--;
+	}
+}
+
+static bool hpre_rsa_key_size_is_support(unsigned int len)
+{
+	unsigned int bits = len << HPRE_BITS_2_BYTES_SHIFT;
+
+#define _RSA_1024BITS_KEY_WDTH		1024
+#define _RSA_2048BITS_KEY_WDTH		2048
+#define _RSA_3072BITS_KEY_WDTH		3072
+#define _RSA_4096BITS_KEY_WDTH		4096
+
+	switch (bits) {
+	case _RSA_1024BITS_KEY_WDTH:
+	case _RSA_2048BITS_KEY_WDTH:
+	case _RSA_3072BITS_KEY_WDTH:
+	case _RSA_4096BITS_KEY_WDTH:
+		return true;
+	default:
+		return false;
+	}
+}
+
+static int hpre_rsa_enc(struct akcipher_request *req)
+{
+	struct crypto_akcipher *tfm = crypto_akcipher_reqtfm(req);
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	void *tmp = akcipher_request_ctx(req);
+	struct hpre_asym_request *hpre_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+	struct hpre_sqe *msg = &hpre_req->req;
+	int ctr = 0;
+	int ret;
+
+	/* For 512 and 1536 bits key size, use soft tfm instead */
+	if (ctx->key_sz == HPRE_RSA_512BITS_KSZ ||
+	    ctx->key_sz == HPRE_RSA_1536BITS_KSZ) {
+		akcipher_request_set_tfm(req, ctx->rsa.soft_tfm);
+		ret = crypto_akcipher_encrypt(req);
+		akcipher_request_set_tfm(req, tfm);
+		return ret;
+	}
+
+	if (unlikely(!ctx->rsa.pubkey))
+		return -EINVAL;
+
+	ret = hpre_msg_request_set(ctx, req, true);
+	if (unlikely(ret))
+		return ret;
+
+	msg->dw0 |= cpu_to_le32(HPRE_ALG_NC_NCRT);
+	msg->key = cpu_to_le64((u64)ctx->rsa.dma_pubkey);
+
+	ret = hpre_hw_data_init(hpre_req, req->src, req->src_len, 1, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	ret = hpre_hw_data_init(hpre_req, req->dst, req->dst_len, 0, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	do {
+		ret = hisi_qp_send(ctx->qp, msg);
+	} while (ret == -EBUSY && ctr++ < HPRE_TRY_SEND_TIMES);
+
+	/* success */
+	if (likely(!ret))
+		return -EINPROGRESS;
+
+clear_all:
+	hpre_rm_req_from_ctx(hpre_req);
+	hpre_hw_data_clr_all(ctx, hpre_req, req->dst, req->src);
+
+	return ret;
+}
+
+static int hpre_rsa_dec(struct akcipher_request *req)
+{
+	struct crypto_akcipher *tfm = crypto_akcipher_reqtfm(req);
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	void *tmp = akcipher_request_ctx(req);
+	struct hpre_asym_request *hpre_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+	struct hpre_sqe *msg = &hpre_req->req;
+	int ctr = 0;
+	int ret;
+
+	/* For 512 and 1536 bits key size, use soft tfm instead */
+	if (ctx->key_sz == HPRE_RSA_512BITS_KSZ ||
+	    ctx->key_sz == HPRE_RSA_1536BITS_KSZ) {
+		akcipher_request_set_tfm(req, ctx->rsa.soft_tfm);
+		ret = crypto_akcipher_decrypt(req);
+		akcipher_request_set_tfm(req, tfm);
+		return ret;
+	}
+
+	if (unlikely(!ctx->rsa.prikey))
+		return -EINVAL;
+
+	ret = hpre_msg_request_set(ctx, req, true);
+	if (unlikely(ret))
+		return ret;
+
+	if (ctx->crt_g2_mode) {
+		msg->key = cpu_to_le64((u64)ctx->rsa.dma_crt_prikey);
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) |
+				       HPRE_ALG_NC_CRT);
+	} else {
+		msg->key = cpu_to_le64((u64)ctx->rsa.dma_prikey);
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) |
+				       HPRE_ALG_NC_NCRT);
+	}
+
+	ret = hpre_hw_data_init(hpre_req, req->src, req->src_len, 1, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	ret = hpre_hw_data_init(hpre_req, req->dst, req->dst_len, 0, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	do {
+		ret = hisi_qp_send(ctx->qp, msg);
+	} while (ret == -EBUSY && ctr++ < HPRE_TRY_SEND_TIMES);
+
+	/* success */
+	if (likely(!ret))
+		return -EINPROGRESS;
+
+clear_all:
+	hpre_rm_req_from_ctx(hpre_req);
+	hpre_hw_data_clr_all(ctx, hpre_req, req->dst, req->src);
+
+	return ret;
+}
+
+static int hpre_rsa_set_n(struct hpre_ctx *ctx, const char *value,
+			  size_t vlen, bool private)
+{
+	const char *ptr = value;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &vlen);
+
+	ctx->key_sz = vlen;
+
+	/* if invalid key size provided, we use software tfm */
+	if (!hpre_rsa_key_size_is_support(ctx->key_sz))
+		return 0;
+
+	ctx->rsa.pubkey = dma_alloc_coherent(HPRE_DEV(ctx), vlen << 1,
+					     &ctx->rsa.dma_pubkey,
+					     GFP_KERNEL);
+	if (!ctx->rsa.pubkey)
+		return -ENOMEM;
+
+	if (private) {
+		ctx->rsa.prikey = dma_alloc_coherent(HPRE_DEV(ctx), vlen << 1,
+						     &ctx->rsa.dma_prikey,
+						     GFP_KERNEL);
+		if (!ctx->rsa.prikey) {
+			dma_free_coherent(HPRE_DEV(ctx), vlen << 1,
+					  ctx->rsa.pubkey,
+					  ctx->rsa.dma_pubkey);
+			ctx->rsa.pubkey = NULL;
+			return -ENOMEM;
+		}
+		memcpy(ctx->rsa.prikey + vlen, ptr, vlen);
+	}
+	memcpy(ctx->rsa.pubkey + vlen, ptr, vlen);
+
+	/* Using hardware HPRE to do RSA */
+	return 1;
+}
+
+static int hpre_rsa_set_e(struct hpre_ctx *ctx, const char *value,
+			  size_t vlen)
+{
+	const char *ptr = value;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &vlen);
+
+	if (!ctx->key_sz || !vlen || vlen > ctx->key_sz)
+		return -EINVAL;
+
+	memcpy(ctx->rsa.pubkey + ctx->key_sz - vlen, ptr, vlen);
+
+	return 0;
+}
+
+static int hpre_rsa_set_d(struct hpre_ctx *ctx, const char *value,
+			  size_t vlen)
+{
+	const char *ptr = value;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &vlen);
+
+	if (!ctx->key_sz || !vlen || vlen > ctx->key_sz)
+		return -EINVAL;
+
+	memcpy(ctx->rsa.prikey + ctx->key_sz - vlen, ptr, vlen);
+
+	return 0;
+}
+
+static int hpre_crt_para_get(char *para, size_t para_sz,
+			     const char *raw, size_t raw_sz)
+{
+	const char *ptr = raw;
+	size_t len = raw_sz;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &len);
+	if (!len || len > para_sz)
+		return -EINVAL;
+
+	memcpy(para + para_sz - len, ptr, len);
+
+	return 0;
+}
+
+static int hpre_rsa_setkey_crt(struct hpre_ctx *ctx, struct rsa_key *rsa_key)
+{
+	unsigned int hlf_ksz = ctx->key_sz >> 1;
+	struct device *dev = HPRE_DEV(ctx);
+	u64 offset;
+	int ret;
+
+	ctx->rsa.crt_prikey = dma_alloc_coherent(dev, hlf_ksz * HPRE_CRT_PRMS,
+					&ctx->rsa.dma_crt_prikey,
+					GFP_KERNEL);
+	if (!ctx->rsa.crt_prikey)
+		return -ENOMEM;
+
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey, hlf_ksz,
+				rsa_key->dq, rsa_key->dq_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->dp, rsa_key->dp_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz * HPRE_CRT_Q;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->q, rsa_key->q_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz * HPRE_CRT_P;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->p, rsa_key->p_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz * HPRE_CRT_INV;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->qinv, rsa_key->qinv_sz);
+	if (ret)
+		goto free_key;
+
+	ctx->crt_g2_mode = true;
+
+	return 0;
+
+free_key:
+	offset = hlf_ksz * HPRE_CRT_PRMS;
+	memzero_explicit(ctx->rsa.crt_prikey, offset);
+	dma_free_coherent(dev, hlf_ksz * HPRE_CRT_PRMS, ctx->rsa.crt_prikey,
+			  ctx->rsa.dma_crt_prikey);
+	ctx->rsa.crt_prikey = NULL;
+	ctx->crt_g2_mode = false;
+
+	return ret;
+}
+
+/* If it is clear all, all the resources of the QP will be cleaned. */
+static void hpre_rsa_clear_ctx(struct hpre_ctx *ctx, bool is_clear_all)
+{
+	unsigned int half_key_sz = ctx->key_sz >> 1;
+	struct device *dev = HPRE_DEV(ctx);
+
+	if (is_clear_all)
+		hisi_qm_stop_qp(ctx->qp);
+
+	if (ctx->rsa.pubkey) {
+		dma_free_coherent(dev, ctx->key_sz << 1,
+				  ctx->rsa.pubkey, ctx->rsa.dma_pubkey);
+		ctx->rsa.pubkey = NULL;
+	}
+
+	if (ctx->rsa.crt_prikey) {
+		memzero_explicit(ctx->rsa.crt_prikey,
+				 half_key_sz * HPRE_CRT_PRMS);
+		dma_free_coherent(dev, half_key_sz * HPRE_CRT_PRMS,
+				  ctx->rsa.crt_prikey, ctx->rsa.dma_crt_prikey);
+		ctx->rsa.crt_prikey = NULL;
+	}
+
+	if (ctx->rsa.prikey) {
+		memzero_explicit(ctx->rsa.prikey, ctx->key_sz);
+		dma_free_coherent(dev, ctx->key_sz << 1, ctx->rsa.prikey,
+				  ctx->rsa.dma_prikey);
+		ctx->rsa.prikey = NULL;
+	}
+
+	hpre_ctx_clear(ctx, is_clear_all);
+}
+
+/*
+ * we should judge if it is CRT or not,
+ * CRT: return true,  N-CRT: return false .
+ */
+static bool hpre_is_crt_key(struct rsa_key *key)
+{
+	u16 len = key->p_sz + key->q_sz + key->dp_sz + key->dq_sz +
+		  key->qinv_sz;
+
+#define LEN_OF_NCRT_PARA	5
+
+	/* N-CRT less than 5 parameters */
+	return len > LEN_OF_NCRT_PARA;
+}
+
+static int hpre_rsa_setkey(struct hpre_ctx *ctx, const void *key,
+			   unsigned int keylen, bool private)
+{
+	struct rsa_key rsa_key;
+	int ret;
+
+	hpre_rsa_clear_ctx(ctx, false);
+
+	if (private)
+		ret = rsa_parse_priv_key(&rsa_key, key, keylen);
+	else
+		ret = rsa_parse_pub_key(&rsa_key, key, keylen);
+	if (ret < 0)
+		return ret;
+
+	ret = hpre_rsa_set_n(ctx, rsa_key.n, rsa_key.n_sz, private);
+	if (ret <= 0)
+		return ret;
+
+	if (private) {
+		ret = hpre_rsa_set_d(ctx, rsa_key.d, rsa_key.d_sz);
+		if (ret < 0)
+			goto free;
+
+		if (hpre_is_crt_key(&rsa_key)) {
+			ret = hpre_rsa_setkey_crt(ctx, &rsa_key);
+			if (ret < 0)
+				goto free;
+		}
+	}
+
+	ret = hpre_rsa_set_e(ctx, rsa_key.e, rsa_key.e_sz);
+	if (ret < 0)
+		goto free;
+
+	if ((private && !ctx->rsa.prikey) || !ctx->rsa.pubkey) {
+		ret = -EINVAL;
+		goto free;
+	}
+
+	return 0;
+
+free:
+	hpre_rsa_clear_ctx(ctx, false);
+	return ret;
+}
+
+static int hpre_rsa_setpubkey(struct crypto_akcipher *tfm, const void *key,
+			      unsigned int keylen)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	int ret;
+
+	ret = crypto_akcipher_set_pub_key(ctx->rsa.soft_tfm, key, keylen);
+	if (ret)
+		return ret;
+
+	return hpre_rsa_setkey(ctx, key, keylen, false);
+}
+
+static int hpre_rsa_setprivkey(struct crypto_akcipher *tfm, const void *key,
+			       unsigned int keylen)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	int ret;
+
+	ret = crypto_akcipher_set_priv_key(ctx->rsa.soft_tfm, key, keylen);
+	if (ret)
+		return ret;
+
+	return hpre_rsa_setkey(ctx, key, keylen, true);
+}
+
+static unsigned int hpre_rsa_max_size(struct crypto_akcipher *tfm)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+
+	/* For 512 and 1536 bits key size, use soft tfm instead */
+	if (ctx->key_sz == HPRE_RSA_512BITS_KSZ ||
+	    ctx->key_sz == HPRE_RSA_1536BITS_KSZ)
+		return crypto_akcipher_maxsize(ctx->rsa.soft_tfm);
+
+	return ctx->key_sz;
+}
+
+static int hpre_rsa_init_tfm(struct crypto_akcipher *tfm)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	int ret;
+
+	ctx->rsa.soft_tfm = crypto_alloc_akcipher("rsa-generic", 0, 0);
+	if (IS_ERR(ctx->rsa.soft_tfm)) {
+		pr_err("Can not alloc_akcipher!\n");
+		return PTR_ERR(ctx->rsa.soft_tfm);
+	}
+
+	ret = hpre_ctx_init(ctx);
+	if (ret)
+		crypto_free_akcipher(ctx->rsa.soft_tfm);
+
+	return ret;
+}
+
+static void hpre_rsa_exit_tfm(struct crypto_akcipher *tfm)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+
+	hpre_rsa_clear_ctx(ctx, true);
+	crypto_free_akcipher(ctx->rsa.soft_tfm);
+}
+
+static struct akcipher_alg rsa = {
+	.sign = hpre_rsa_dec,
+	.verify = hpre_rsa_enc,
+	.encrypt = hpre_rsa_enc,
+	.decrypt = hpre_rsa_dec,
+	.set_pub_key = hpre_rsa_setpubkey,
+	.set_priv_key = hpre_rsa_setprivkey,
+	.max_size = hpre_rsa_max_size,
+	.init = hpre_rsa_init_tfm,
+	.exit = hpre_rsa_exit_tfm,
+	.reqsize = sizeof(struct hpre_asym_request) + HPRE_ALIGN_SZ,
+	.base = {
+		.cra_ctxsize = sizeof(struct hpre_ctx),
+		.cra_priority = HPRE_CRYPTO_ALG_PRI,
+		.cra_name = "rsa",
+		.cra_driver_name = "hpre-rsa",
+		.cra_module = THIS_MODULE,
+	},
+};
+
+#ifdef CONFIG_CRYPTO_DH
+static struct kpp_alg dh = {
+	.set_secret = hpre_dh_set_secret,
+	.generate_public_key = hpre_dh_compute_value,
+	.compute_shared_secret = hpre_dh_compute_value,
+	.max_size = hpre_dh_max_size,
+	.init = hpre_dh_init_tfm,
+	.exit = hpre_dh_exit_tfm,
+	.reqsize = sizeof(struct hpre_asym_request) + HPRE_ALIGN_SZ,
+	.base = {
+		.cra_ctxsize = sizeof(struct hpre_ctx),
+		.cra_priority = HPRE_CRYPTO_ALG_PRI,
+		.cra_name = "dh",
+		.cra_driver_name = "hpre-dh",
+		.cra_module = THIS_MODULE,
+	},
+};
+#endif
+
+int hpre_algs_register(void)
+{
+	int ret = 0;
+
+	mutex_lock(&hpre_alg_lock);
+	if (++hpre_active_devs == 1) {
+		rsa.base.cra_flags = 0;
+		ret = crypto_register_akcipher(&rsa);
+		if (ret)
+			goto unlock;
+#ifdef CONFIG_CRYPTO_DH
+		ret = crypto_register_kpp(&dh);
+		if (ret) {
+			crypto_unregister_akcipher(&rsa);
+			goto unlock;
+		}
+#endif
+	}
+
+unlock:
+	mutex_unlock(&hpre_alg_lock);
+	return ret;
+}
+
+void hpre_algs_unregister(void)
+{
+	mutex_lock(&hpre_alg_lock);
+	if (--hpre_active_devs == 0) {
+		crypto_unregister_akcipher(&rsa);
+#ifdef CONFIG_CRYPTO_DH
+		crypto_unregister_kpp(&dh);
+#endif
+	}
+	mutex_unlock(&hpre_alg_lock);
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/hpre/hpre_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/hpre/hpre_main.c
@@ -0,0 +1,1038 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2018-2019 HiSilicon Limited. */
+#include <linux/acpi.h>
+#include <linux/aer.h>
+#include <linux/bitops.h>
+#include <linux/debugfs.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+#include <linux/topology.h>
+#include "hpre.h"
+
+#define HPRE_VF_NUM			63
+#define HPRE_QUEUE_NUM_V2		1024
+#define HPRE_QM_ABNML_INT_MASK		0x100004
+#define HPRE_CTRL_CNT_CLR_CE_BIT	BIT(0)
+#define HPRE_COMM_CNT_CLR_CE		0x0
+#define HPRE_CTRL_CNT_CLR_CE		0x301000
+#define HPRE_FSM_MAX_CNT		0x301008
+#define HPRE_VFG_AXQOS			0x30100c
+#define HPRE_VFG_AXCACHE		0x301010
+#define HPRE_RDCHN_INI_CFG		0x301014
+#define HPRE_AWUSR_FP_CFG		0x301018
+#define HPRE_BD_ENDIAN			0x301020
+#define HPRE_ECC_BYPASS			0x301024
+#define HPRE_RAS_WIDTH_CFG		0x301028
+#define HPRE_POISON_BYPASS		0x30102c
+#define HPRE_BD_ARUSR_CFG		0x301030
+#define HPRE_BD_AWUSR_CFG		0x301034
+#define HPRE_TYPES_ENB			0x301038
+#define HPRE_DATA_RUSER_CFG		0x30103c
+#define HPRE_DATA_WUSER_CFG		0x301040
+#define HPRE_INT_MASK			0x301400
+#define HPRE_INT_STATUS			0x301800
+#define HPRE_CORE_INT_ENABLE		0
+#define HPRE_CORE_INT_DISABLE		0x003fffff
+#define HPRE_RAS_ECC_1BIT_TH		0x30140c
+#define HPRE_RDCHN_INI_ST		0x301a00
+#define HPRE_CLSTR_BASE			0x302000
+#define HPRE_CORE_EN_OFFSET		0x04
+#define HPRE_CORE_INI_CFG_OFFSET	0x20
+#define HPRE_CORE_INI_STATUS_OFFSET	0x80
+#define HPRE_CORE_HTBT_WARN_OFFSET	0x8c
+#define HPRE_CORE_IS_SCHD_OFFSET	0x90
+
+#define HPRE_RAS_CE_ENB			0x301410
+#define HPRE_HAC_RAS_CE_ENABLE		0x3f
+#define HPRE_RAS_NFE_ENB		0x301414
+#define HPRE_HAC_RAS_NFE_ENABLE		0x3fffc0
+#define HPRE_RAS_FE_ENB			0x301418
+#define HPRE_HAC_RAS_FE_ENABLE		0
+
+#define HPRE_CORE_ENB		(HPRE_CLSTR_BASE + HPRE_CORE_EN_OFFSET)
+#define HPRE_CORE_INI_CFG	(HPRE_CLSTR_BASE + HPRE_CORE_INI_CFG_OFFSET)
+#define HPRE_CORE_INI_STATUS (HPRE_CLSTR_BASE + HPRE_CORE_INI_STATUS_OFFSET)
+#define HPRE_HAC_ECC1_CNT		0x301a04
+#define HPRE_HAC_ECC2_CNT		0x301a08
+#define HPRE_HAC_INT_STATUS		0x301800
+#define HPRE_HAC_SOURCE_INT		0x301600
+#define MASTER_GLOBAL_CTRL_SHUTDOWN	1
+#define MASTER_TRANS_RETURN_RW		3
+#define HPRE_MASTER_TRANS_RETURN	0x300150
+#define HPRE_MASTER_GLOBAL_CTRL		0x300000
+#define HPRE_CLSTR_ADDR_INTRVL		0x1000
+#define HPRE_CLUSTER_INQURY		0x100
+#define HPRE_CLSTR_ADDR_INQRY_RSLT	0x104
+#define HPRE_TIMEOUT_ABNML_BIT		6
+#define HPRE_PASID_EN_BIT		9
+#define HPRE_REG_RD_INTVRL_US		10
+#define HPRE_REG_RD_TMOUT_US		1000
+#define HPRE_DBGFS_VAL_MAX_LEN		20
+#define HPRE_PCI_DEVICE_ID		0xa258
+#define HPRE_PCI_VF_DEVICE_ID		0xa259
+#define HPRE_ADDR(qm, offset)		((qm)->io_base + (offset))
+#define HPRE_QM_USR_CFG_MASK		0xfffffffe
+#define HPRE_QM_AXI_CFG_MASK		0xffff
+#define HPRE_QM_VFG_AX_MASK		0xff
+#define HPRE_BD_USR_MASK		0x3
+#define HPRE_CLUSTER_CORE_MASK		0xf
+
+#define HPRE_VIA_MSI_DSM		1
+
+static LIST_HEAD(hpre_list);
+static DEFINE_MUTEX(hpre_list_lock);
+static const char hpre_name[] = "hisi_hpre";
+static struct dentry *hpre_debugfs_root;
+static const struct pci_device_id hpre_dev_ids[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_DEVICE_ID) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_VF_DEVICE_ID) },
+	{ 0, }
+};
+
+MODULE_DEVICE_TABLE(pci, hpre_dev_ids);
+
+struct hpre_hw_error {
+	u32 int_msk;
+	const char *msg;
+};
+
+static const char * const hpre_debug_file_name[] = {
+	[HPRE_CURRENT_QM]   = "current_qm",
+	[HPRE_CLEAR_ENABLE] = "rdclr_en",
+	[HPRE_CLUSTER_CTRL] = "cluster_ctrl",
+};
+
+static const struct hpre_hw_error hpre_hw_errors[] = {
+	{ .int_msk = BIT(0), .msg = "core_ecc_1bit_err_int_set" },
+	{ .int_msk = BIT(1), .msg = "core_ecc_2bit_err_int_set" },
+	{ .int_msk = BIT(2), .msg = "dat_wb_poison_int_set" },
+	{ .int_msk = BIT(3), .msg = "dat_rd_poison_int_set" },
+	{ .int_msk = BIT(4), .msg = "bd_rd_poison_int_set" },
+	{ .int_msk = BIT(5), .msg = "ooo_ecc_2bit_err_int_set" },
+	{ .int_msk = BIT(6), .msg = "cluster1_shb_timeout_int_set" },
+	{ .int_msk = BIT(7), .msg = "cluster2_shb_timeout_int_set" },
+	{ .int_msk = BIT(8), .msg = "cluster3_shb_timeout_int_set" },
+	{ .int_msk = BIT(9), .msg = "cluster4_shb_timeout_int_set" },
+	{ .int_msk = GENMASK(15, 10), .msg = "ooo_rdrsp_err_int_set" },
+	{ .int_msk = GENMASK(21, 16), .msg = "ooo_wrrsp_err_int_set" },
+	{ /* sentinel */ }
+};
+
+static const u64 hpre_cluster_offsets[] = {
+	[HPRE_CLUSTER0] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER0 * HPRE_CLSTR_ADDR_INTRVL,
+	[HPRE_CLUSTER1] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER1 * HPRE_CLSTR_ADDR_INTRVL,
+	[HPRE_CLUSTER2] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER2 * HPRE_CLSTR_ADDR_INTRVL,
+	[HPRE_CLUSTER3] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER3 * HPRE_CLSTR_ADDR_INTRVL,
+};
+
+static struct debugfs_reg32 hpre_cluster_dfx_regs[] = {
+	{"CORES_EN_STATUS          ",  HPRE_CORE_EN_OFFSET},
+	{"CORES_INI_CFG              ",  HPRE_CORE_INI_CFG_OFFSET},
+	{"CORES_INI_STATUS         ",  HPRE_CORE_INI_STATUS_OFFSET},
+	{"CORES_HTBT_WARN         ",  HPRE_CORE_HTBT_WARN_OFFSET},
+	{"CORES_IS_SCHD               ",  HPRE_CORE_IS_SCHD_OFFSET},
+};
+
+static struct debugfs_reg32 hpre_com_dfx_regs[] = {
+	{"READ_CLR_EN          ",  HPRE_CTRL_CNT_CLR_CE},
+	{"AXQOS                   ",  HPRE_VFG_AXQOS},
+	{"AWUSR_CFG              ",  HPRE_AWUSR_FP_CFG},
+	{"QM_ARUSR_MCFG1           ",  QM_ARUSER_M_CFG_1},
+	{"QM_AWUSR_MCFG1           ",  QM_AWUSER_M_CFG_1},
+	{"BD_ENDIAN               ",  HPRE_BD_ENDIAN},
+	{"ECC_CHECK_CTRL       ",  HPRE_ECC_BYPASS},
+	{"RAS_INT_WIDTH       ",  HPRE_RAS_WIDTH_CFG},
+	{"POISON_BYPASS       ",  HPRE_POISON_BYPASS},
+	{"BD_ARUSER               ",  HPRE_BD_ARUSR_CFG},
+	{"BD_AWUSER               ",  HPRE_BD_AWUSR_CFG},
+	{"DATA_ARUSER            ",  HPRE_DATA_RUSER_CFG},
+	{"DATA_AWUSER           ",  HPRE_DATA_WUSER_CFG},
+	{"INT_STATUS               ",  HPRE_INT_STATUS},
+};
+
+static int hpre_pf_q_num_set(const char *val, const struct kernel_param *kp)
+{
+	struct pci_dev *pdev;
+	u32 n, q_num;
+	u8 rev_id;
+	int ret;
+
+	if (!val)
+		return -EINVAL;
+
+	pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_DEVICE_ID, NULL);
+	if (!pdev) {
+		q_num = HPRE_QUEUE_NUM_V2;
+		pr_info("No device found currently, suppose queue number is %d\n",
+			q_num);
+	} else {
+		rev_id = pdev->revision;
+		if (rev_id != QM_HW_V2)
+			return -EINVAL;
+
+		q_num = HPRE_QUEUE_NUM_V2;
+	}
+
+	ret = kstrtou32(val, 10, &n);
+	if (ret != 0 || n == 0 || n > q_num)
+		return -EINVAL;
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops hpre_pf_q_num_ops = {
+	.set = hpre_pf_q_num_set,
+	.get = param_get_int,
+};
+
+static u32 hpre_pf_q_num = HPRE_PF_DEF_Q_NUM;
+module_param_cb(hpre_pf_q_num, &hpre_pf_q_num_ops, &hpre_pf_q_num, 0444);
+MODULE_PARM_DESC(hpre_pf_q_num, "Number of queues in PF of CS(1-1024)");
+
+static inline void hpre_add_to_list(struct hpre *hpre)
+{
+	mutex_lock(&hpre_list_lock);
+	list_add_tail(&hpre->list, &hpre_list);
+	mutex_unlock(&hpre_list_lock);
+}
+
+static inline void hpre_remove_from_list(struct hpre *hpre)
+{
+	mutex_lock(&hpre_list_lock);
+	list_del(&hpre->list);
+	mutex_unlock(&hpre_list_lock);
+}
+
+struct hpre *hpre_find_device(int node)
+{
+	struct hpre *hpre, *ret = NULL;
+	int min_distance = INT_MAX;
+	struct device *dev;
+	int dev_node = 0;
+
+	mutex_lock(&hpre_list_lock);
+	list_for_each_entry(hpre, &hpre_list, list) {
+		dev = &hpre->qm.pdev->dev;
+#ifdef CONFIG_NUMA
+		dev_node = dev->numa_node;
+		if (dev_node < 0)
+			dev_node = 0;
+#endif
+		if (node_distance(dev_node, node) < min_distance) {
+			ret = hpre;
+			min_distance = node_distance(dev_node, node);
+		}
+	}
+	mutex_unlock(&hpre_list_lock);
+
+	return ret;
+}
+
+static int hpre_cfg_by_dsm(struct hisi_qm *qm)
+{
+	struct device *dev = &qm->pdev->dev;
+	union acpi_object *obj;
+	guid_t guid;
+
+	if (guid_parse("b06b81ab-0134-4a45-9b0c-483447b95fa7", &guid)) {
+		dev_err(dev, "Hpre GUID failed\n");
+		return -EINVAL;
+	}
+
+	/* Switch over to MSI handling due to non-standard PCI implementation */
+	obj = acpi_evaluate_dsm(ACPI_HANDLE(dev), &guid,
+				0, HPRE_VIA_MSI_DSM, NULL);
+	if (!obj) {
+		dev_err(dev, "ACPI handle failed!\n");
+		return -EIO;
+	}
+
+	ACPI_FREE(obj);
+
+	return 0;
+}
+
+static int hpre_set_user_domain_and_cache(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	unsigned long offset;
+	int ret, i;
+	u32 val;
+
+	writel(HPRE_QM_USR_CFG_MASK, HPRE_ADDR(qm, QM_ARUSER_M_CFG_ENABLE));
+	writel(HPRE_QM_USR_CFG_MASK, HPRE_ADDR(qm, QM_AWUSER_M_CFG_ENABLE));
+	writel_relaxed(HPRE_QM_AXI_CFG_MASK, HPRE_ADDR(qm, QM_AXI_M_CFG));
+
+	/* disable FLR triggered by BME(bus master enable) */
+	writel(PEH_AXUSER_CFG, HPRE_ADDR(qm, QM_PEH_AXUSER_CFG));
+	writel(PEH_AXUSER_CFG_ENABLE, HPRE_ADDR(qm, QM_PEH_AXUSER_CFG_ENABLE));
+
+	/* HPRE need more time, we close this interrupt */
+	val = readl_relaxed(HPRE_ADDR(qm, HPRE_QM_ABNML_INT_MASK));
+	val |= BIT(HPRE_TIMEOUT_ABNML_BIT);
+	writel_relaxed(val, HPRE_ADDR(qm, HPRE_QM_ABNML_INT_MASK));
+
+	writel(0x1, HPRE_ADDR(qm, HPRE_TYPES_ENB));
+	writel(HPRE_QM_VFG_AX_MASK, HPRE_ADDR(qm, HPRE_VFG_AXCACHE));
+	writel(0x0, HPRE_ADDR(qm, HPRE_BD_ENDIAN));
+	writel(0x0, HPRE_ADDR(qm, HPRE_INT_MASK));
+	writel(0x0, HPRE_ADDR(qm, HPRE_RAS_ECC_1BIT_TH));
+	writel(0x0, HPRE_ADDR(qm, HPRE_POISON_BYPASS));
+	writel(0x0, HPRE_ADDR(qm, HPRE_COMM_CNT_CLR_CE));
+	writel(0x0, HPRE_ADDR(qm, HPRE_ECC_BYPASS));
+
+	writel(HPRE_BD_USR_MASK, HPRE_ADDR(qm, HPRE_BD_ARUSR_CFG));
+	writel(HPRE_BD_USR_MASK, HPRE_ADDR(qm, HPRE_BD_AWUSR_CFG));
+	writel(0x1, HPRE_ADDR(qm, HPRE_RDCHN_INI_CFG));
+	ret = readl_relaxed_poll_timeout(HPRE_ADDR(qm, HPRE_RDCHN_INI_ST), val,
+			val & BIT(0),
+			HPRE_REG_RD_INTVRL_US,
+			HPRE_REG_RD_TMOUT_US);
+	if (ret) {
+		dev_err(dev, "read rd channel timeout fail!\n");
+		return -ETIMEDOUT;
+	}
+
+	for (i = 0; i < HPRE_CLUSTERS_NUM; i++) {
+		offset = i * HPRE_CLSTR_ADDR_INTRVL;
+
+		/* clusters initiating */
+		writel(HPRE_CLUSTER_CORE_MASK,
+		       HPRE_ADDR(qm, offset + HPRE_CORE_ENB));
+		writel(0x1, HPRE_ADDR(qm, offset + HPRE_CORE_INI_CFG));
+		ret = readl_relaxed_poll_timeout(HPRE_ADDR(qm, offset +
+					HPRE_CORE_INI_STATUS), val,
+					((val & HPRE_CLUSTER_CORE_MASK) ==
+					HPRE_CLUSTER_CORE_MASK),
+					HPRE_REG_RD_INTVRL_US,
+					HPRE_REG_RD_TMOUT_US);
+		if (ret) {
+			dev_err(dev,
+				"cluster %d int st status timeout!\n", i);
+			return -ETIMEDOUT;
+		}
+	}
+
+	ret = hpre_cfg_by_dsm(qm);
+	if (ret)
+		dev_err(dev, "acpi_evaluate_dsm err.\n");
+
+	return ret;
+}
+
+static void hpre_cnt_regs_clear(struct hisi_qm *qm)
+{
+	unsigned long offset;
+	int i;
+
+	/* clear current_qm */
+	writel(0x0, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(0x0, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	/* clear clusterX/cluster_ctrl */
+	for (i = 0; i < HPRE_CLUSTERS_NUM; i++) {
+		offset = HPRE_CLSTR_BASE + i * HPRE_CLSTR_ADDR_INTRVL;
+		writel(0x0, qm->io_base + offset + HPRE_CLUSTER_INQURY);
+	}
+
+	/* clear rdclr_en */
+	writel(0x0, qm->io_base + HPRE_CTRL_CNT_CLR_CE);
+
+	hisi_qm_debug_regs_clear(qm);
+}
+
+static void hpre_hw_error_disable(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+
+	/* disable hpre hw error interrupts */
+	writel(HPRE_CORE_INT_DISABLE, qm->io_base + HPRE_INT_MASK);
+}
+
+static void hpre_hw_error_enable(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+
+	/* enable hpre hw error interrupts */
+	writel(HPRE_CORE_INT_ENABLE, qm->io_base + HPRE_INT_MASK);
+	writel(HPRE_HAC_RAS_CE_ENABLE, qm->io_base + HPRE_RAS_CE_ENB);
+	writel(HPRE_HAC_RAS_NFE_ENABLE, qm->io_base + HPRE_RAS_NFE_ENB);
+	writel(HPRE_HAC_RAS_FE_ENABLE, qm->io_base + HPRE_RAS_FE_ENB);
+}
+
+static inline struct hisi_qm *hpre_file_to_qm(struct hpre_debugfs_file *file)
+{
+	struct hpre *hpre = container_of(file->debug, struct hpre, debug);
+
+	return &hpre->qm;
+}
+
+static u32 hpre_current_qm_read(struct hpre_debugfs_file *file)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+
+	return readl(qm->io_base + QM_DFX_MB_CNT_VF);
+}
+
+static int hpre_current_qm_write(struct hpre_debugfs_file *file, u32 val)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	struct hpre_debug *debug = file->debug;
+	struct hpre *hpre = container_of(debug, struct hpre, debug);
+	u32 num_vfs = hpre->num_vfs;
+	u32 vfq_num, tmp;
+
+
+	if (val > num_vfs)
+		return -EINVAL;
+
+	/* According PF or VF Dev ID to calculation curr_qm_qp_num and store */
+	if (val == 0) {
+		qm->debug.curr_qm_qp_num = qm->qp_num;
+	} else {
+		vfq_num = (qm->ctrl_qp_num - qm->qp_num) / num_vfs;
+		if (val == num_vfs) {
+			qm->debug.curr_qm_qp_num =
+			qm->ctrl_qp_num - qm->qp_num - (num_vfs - 1) * vfq_num;
+		} else {
+			qm->debug.curr_qm_qp_num = vfq_num;
+		}
+	}
+
+	writel(val, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(val, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_SQE_CNT_VF_SQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_SQE_CNT_VF_SQN);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_CQE_CNT_VF_CQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_CQE_CNT_VF_CQN);
+
+	return  0;
+}
+
+static u32 hpre_clear_enable_read(struct hpre_debugfs_file *file)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+
+	return readl(qm->io_base + HPRE_CTRL_CNT_CLR_CE) &
+	       HPRE_CTRL_CNT_CLR_CE_BIT;
+}
+
+static int hpre_clear_enable_write(struct hpre_debugfs_file *file, u32 val)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	u32 tmp;
+
+	if (val != 1 && val != 0)
+		return -EINVAL;
+
+	tmp = (readl(qm->io_base + HPRE_CTRL_CNT_CLR_CE) &
+	       ~HPRE_CTRL_CNT_CLR_CE_BIT) | val;
+	writel(tmp, qm->io_base + HPRE_CTRL_CNT_CLR_CE);
+
+	return  0;
+}
+
+static u32 hpre_cluster_inqry_read(struct hpre_debugfs_file *file)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	int cluster_index = file->index - HPRE_CLUSTER_CTRL;
+	unsigned long offset = HPRE_CLSTR_BASE +
+			       cluster_index * HPRE_CLSTR_ADDR_INTRVL;
+
+	return readl(qm->io_base + offset + HPRE_CLSTR_ADDR_INQRY_RSLT);
+}
+
+static int hpre_cluster_inqry_write(struct hpre_debugfs_file *file, u32 val)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	int cluster_index = file->index - HPRE_CLUSTER_CTRL;
+	unsigned long offset = HPRE_CLSTR_BASE + cluster_index *
+			       HPRE_CLSTR_ADDR_INTRVL;
+
+	writel(val, qm->io_base + offset + HPRE_CLUSTER_INQURY);
+
+	return  0;
+}
+
+static ssize_t hpre_ctrl_debug_read(struct file *filp, char __user *buf,
+			       size_t count, loff_t *pos)
+{
+	struct hpre_debugfs_file *file = filp->private_data;
+	char tbuf[HPRE_DBGFS_VAL_MAX_LEN];
+	u32 val;
+	int ret;
+
+	spin_lock_irq(&file->lock);
+	switch (file->type) {
+	case HPRE_CURRENT_QM:
+		val = hpre_current_qm_read(file);
+		break;
+	case HPRE_CLEAR_ENABLE:
+		val = hpre_clear_enable_read(file);
+		break;
+	case HPRE_CLUSTER_CTRL:
+		val = hpre_cluster_inqry_read(file);
+		break;
+	default:
+		spin_unlock_irq(&file->lock);
+		return -EINVAL;
+	}
+	spin_unlock_irq(&file->lock);
+	ret = snprintf(tbuf, HPRE_DBGFS_VAL_MAX_LEN, "%u\n", val);
+	return simple_read_from_buffer(buf, count, pos, tbuf, ret);
+}
+
+static ssize_t hpre_ctrl_debug_write(struct file *filp, const char __user *buf,
+				size_t count, loff_t *pos)
+{
+	struct hpre_debugfs_file *file = filp->private_data;
+	char tbuf[HPRE_DBGFS_VAL_MAX_LEN];
+	unsigned long val;
+	int len, ret;
+
+	if (*pos != 0)
+		return 0;
+
+	if (count >= HPRE_DBGFS_VAL_MAX_LEN)
+		return -ENOSPC;
+
+	len = simple_write_to_buffer(tbuf, HPRE_DBGFS_VAL_MAX_LEN - 1,
+				     pos, buf, count);
+	if (len < 0)
+		return len;
+
+	tbuf[len] = '\0';
+	if (kstrtoul(tbuf, 0, &val))
+		return -EFAULT;
+
+	spin_lock_irq(&file->lock);
+	switch (file->type) {
+	case HPRE_CURRENT_QM:
+		ret = hpre_current_qm_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	case HPRE_CLEAR_ENABLE:
+		ret = hpre_clear_enable_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	case HPRE_CLUSTER_CTRL:
+		ret = hpre_cluster_inqry_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	default:
+		ret = -EINVAL;
+		goto err_input;
+	}
+	spin_unlock_irq(&file->lock);
+
+	return count;
+
+err_input:
+	spin_unlock_irq(&file->lock);
+	return ret;
+}
+
+static const struct file_operations hpre_ctrl_debug_fops = {
+	.owner = THIS_MODULE,
+	.open = simple_open,
+	.read = hpre_ctrl_debug_read,
+	.write = hpre_ctrl_debug_write,
+};
+
+static int hpre_create_debugfs_file(struct hpre_debug *dbg, struct dentry *dir,
+				    enum hpre_ctrl_dbgfs_file type, int indx)
+{
+	struct dentry *file_dir;
+
+	if (dir)
+		file_dir = dir;
+	else
+		file_dir = dbg->debug_root;
+
+	if (type >= HPRE_DEBUG_FILE_NUM)
+		return -EINVAL;
+
+	spin_lock_init(&dbg->files[indx].lock);
+	dbg->files[indx].debug = dbg;
+	dbg->files[indx].type = type;
+	dbg->files[indx].index = indx;
+	debugfs_create_file(hpre_debug_file_name[type], 0600, file_dir,
+			    dbg->files + indx, &hpre_ctrl_debug_fops);
+
+	return 0;
+}
+
+static int hpre_pf_comm_regs_debugfs_init(struct hpre_debug *debug)
+{
+	struct hpre *hpre = container_of(debug, struct hpre, debug);
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	struct debugfs_regset32 *regset;
+
+	regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
+	if (!regset)
+		return -ENOMEM;
+
+	regset->regs = hpre_com_dfx_regs;
+	regset->nregs = ARRAY_SIZE(hpre_com_dfx_regs);
+	regset->base = qm->io_base;
+
+	debugfs_create_regset32("regs", 0444,  debug->debug_root, regset);
+	return 0;
+}
+
+static int hpre_cluster_debugfs_init(struct hpre_debug *debug)
+{
+	struct hpre *hpre = container_of(debug, struct hpre, debug);
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	char buf[HPRE_DBGFS_VAL_MAX_LEN];
+	struct debugfs_regset32 *regset;
+	struct dentry *tmp_d;
+	int i, ret;
+
+	for (i = 0; i < HPRE_CLUSTERS_NUM; i++) {
+		ret = snprintf(buf, HPRE_DBGFS_VAL_MAX_LEN, "cluster%d", i);
+		if (ret < 0)
+			return -EINVAL;
+		tmp_d = debugfs_create_dir(buf, debug->debug_root);
+
+		regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
+		if (!regset)
+			return -ENOMEM;
+
+		regset->regs = hpre_cluster_dfx_regs;
+		regset->nregs = ARRAY_SIZE(hpre_cluster_dfx_regs);
+		regset->base = qm->io_base + hpre_cluster_offsets[i];
+
+		debugfs_create_regset32("regs", 0444, tmp_d, regset);
+		ret = hpre_create_debugfs_file(debug, tmp_d, HPRE_CLUSTER_CTRL,
+					       i + HPRE_CLUSTER_CTRL);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int hpre_ctrl_debug_init(struct hpre_debug *debug)
+{
+	int ret;
+
+	ret = hpre_create_debugfs_file(debug, NULL, HPRE_CURRENT_QM,
+				       HPRE_CURRENT_QM);
+	if (ret)
+		return ret;
+
+	ret = hpre_create_debugfs_file(debug, NULL, HPRE_CLEAR_ENABLE,
+				       HPRE_CLEAR_ENABLE);
+	if (ret)
+		return ret;
+
+	ret = hpre_pf_comm_regs_debugfs_init(debug);
+	if (ret)
+		return ret;
+
+	return hpre_cluster_debugfs_init(debug);
+}
+
+static int hpre_debugfs_init(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	struct dentry *dir;
+	int ret;
+
+	dir = debugfs_create_dir(dev_name(dev), hpre_debugfs_root);
+	qm->debug.debug_root = dir;
+
+	ret = hisi_qm_debug_init(qm);
+	if (ret)
+		goto failed_to_create;
+
+	if (qm->pdev->device == HPRE_PCI_DEVICE_ID) {
+		hpre->debug.debug_root = dir;
+		ret = hpre_ctrl_debug_init(&hpre->debug);
+		if (ret)
+			goto failed_to_create;
+	}
+	return 0;
+
+failed_to_create:
+	debugfs_remove_recursive(qm->debug.debug_root);
+	return ret;
+}
+
+static void hpre_debugfs_exit(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+
+	debugfs_remove_recursive(qm->debug.debug_root);
+}
+
+static int hpre_qm_pre_init(struct hisi_qm *qm, struct pci_dev *pdev)
+{
+	enum qm_hw_ver rev_id;
+
+	rev_id = hisi_qm_get_hw_version(pdev);
+	if (rev_id < 0)
+		return -ENODEV;
+
+	if (rev_id == QM_HW_V1) {
+		pci_warn(pdev, "HPRE version 1 is not supported!\n");
+		return -EINVAL;
+	}
+
+	qm->pdev = pdev;
+	qm->ver = rev_id;
+	qm->sqe_size = HPRE_SQE_SIZE;
+	qm->dev_name = hpre_name;
+	qm->fun_type = (pdev->device == HPRE_PCI_DEVICE_ID) ?
+		       QM_HW_PF : QM_HW_VF;
+	if (pdev->is_physfn) {
+		qm->qp_base = HPRE_PF_DEF_Q_BASE;
+		qm->qp_num = hpre_pf_q_num;
+	}
+	qm->use_dma_api = true;
+
+	return 0;
+}
+
+static void hpre_hw_err_init(struct hpre *hpre)
+{
+	hisi_qm_hw_error_init(&hpre->qm, QM_BASE_CE, QM_BASE_NFE,
+			      0, QM_DB_RANDOM_INVALID);
+	hpre_hw_error_enable(hpre);
+}
+
+static int hpre_pf_probe_init(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	int ret;
+
+	qm->ctrl_qp_num = HPRE_QUEUE_NUM_V2;
+
+	ret = hpre_set_user_domain_and_cache(hpre);
+	if (ret)
+		return ret;
+
+	hpre_hw_err_init(hpre);
+
+	return 0;
+}
+
+static int hpre_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct hisi_qm *qm;
+	struct hpre *hpre;
+	int ret;
+
+	hpre = devm_kzalloc(&pdev->dev, sizeof(*hpre), GFP_KERNEL);
+	if (!hpre)
+		return -ENOMEM;
+
+	pci_set_drvdata(pdev, hpre);
+
+	qm = &hpre->qm;
+	ret = hpre_qm_pre_init(qm, pdev);
+	if (ret)
+		return ret;
+
+	ret = hisi_qm_init(qm);
+	if (ret)
+		return ret;
+
+	if (pdev->is_physfn) {
+		ret = hpre_pf_probe_init(hpre);
+		if (ret)
+			goto err_with_qm_init;
+	} else if (qm->fun_type == QM_HW_VF && qm->ver == QM_HW_V2) {
+		/* v2 starts to support get vft by mailbox */
+		ret = hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
+		if (ret)
+			goto err_with_qm_init;
+	}
+
+	ret = hisi_qm_start(qm);
+	if (ret)
+		goto err_with_err_init;
+
+	ret = hpre_debugfs_init(hpre);
+	if (ret)
+		dev_warn(&pdev->dev, "init debugfs fail!\n");
+
+	hpre_add_to_list(hpre);
+
+	ret = hpre_algs_register();
+	if (ret < 0) {
+		hpre_remove_from_list(hpre);
+		pci_err(pdev, "fail to register algs to crypto!\n");
+		goto err_with_qm_start;
+	}
+	return 0;
+
+err_with_qm_start:
+	hisi_qm_stop(qm);
+
+err_with_err_init:
+	if (pdev->is_physfn)
+		hpre_hw_error_disable(hpre);
+
+err_with_qm_init:
+	hisi_qm_uninit(qm);
+
+	return ret;
+}
+
+static int hpre_vf_q_assign(struct hpre *hpre, int num_vfs)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	u32 qp_num = qm->qp_num;
+	int q_num, remain_q_num, i;
+	u32 q_base = qp_num;
+	int ret;
+
+	if (!num_vfs)
+		return -EINVAL;
+
+	remain_q_num = qm->ctrl_qp_num - qp_num;
+
+	/* If remaining queues are not enough, return error. */
+	if (remain_q_num < num_vfs)
+		return -EINVAL;
+
+	q_num = remain_q_num / num_vfs;
+	for (i = 1; i <= num_vfs; i++) {
+		if (i == num_vfs)
+			q_num += remain_q_num % num_vfs;
+		ret = hisi_qm_set_vft(qm, i, q_base, (u32)q_num);
+		if (ret)
+			return ret;
+		q_base += q_num;
+	}
+
+	return 0;
+}
+
+static int hpre_clear_vft_config(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	u32 num_vfs = hpre->num_vfs;
+	int ret;
+	u32 i;
+
+	for (i = 1; i <= num_vfs; i++) {
+		ret = hisi_qm_set_vft(qm, i, 0, 0);
+		if (ret)
+			return ret;
+	}
+	hpre->num_vfs = 0;
+
+	return 0;
+}
+
+static int hpre_sriov_enable(struct pci_dev *pdev, int max_vfs)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+	int pre_existing_vfs, num_vfs, ret;
+
+	pre_existing_vfs = pci_num_vf(pdev);
+	if (pre_existing_vfs) {
+		pci_err(pdev,
+			"Can't enable VF. Please disable pre-enabled VFs!\n");
+		return 0;
+	}
+
+	num_vfs = min_t(int, max_vfs, HPRE_VF_NUM);
+	ret = hpre_vf_q_assign(hpre, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't assign queues for VF!\n");
+		return ret;
+	}
+
+	hpre->num_vfs = num_vfs;
+
+	ret = pci_enable_sriov(pdev, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't enable VF!\n");
+		hpre_clear_vft_config(hpre);
+		return ret;
+	}
+
+	return num_vfs;
+}
+
+static int hpre_sriov_disable(struct pci_dev *pdev)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+
+	if (pci_vfs_assigned(pdev)) {
+		pci_err(pdev, "Failed to disable VFs while VFs are assigned!\n");
+		return -EPERM;
+	}
+
+	/* remove in hpre_pci_driver will be called to free VF resources */
+	pci_disable_sriov(pdev);
+
+	return hpre_clear_vft_config(hpre);
+}
+
+static int hpre_sriov_configure(struct pci_dev *pdev, int num_vfs)
+{
+	if (num_vfs)
+		return hpre_sriov_enable(pdev, num_vfs);
+	else
+		return hpre_sriov_disable(pdev);
+}
+
+static void hpre_remove(struct pci_dev *pdev)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+	struct hisi_qm *qm = &hpre->qm;
+	int ret;
+
+	hpre_algs_unregister();
+	hpre_remove_from_list(hpre);
+	if (qm->fun_type == QM_HW_PF && hpre->num_vfs != 0) {
+		ret = hpre_sriov_disable(pdev);
+		if (ret) {
+			pci_err(pdev, "Disable SRIOV fail!\n");
+			return;
+		}
+	}
+	if (qm->fun_type == QM_HW_PF) {
+		hpre_cnt_regs_clear(qm);
+		qm->debug.curr_qm_qp_num = 0;
+	}
+
+	hpre_debugfs_exit(hpre);
+	hisi_qm_stop(qm);
+	if (qm->fun_type == QM_HW_PF)
+		hpre_hw_error_disable(hpre);
+	hisi_qm_uninit(qm);
+}
+
+static void hpre_log_hw_error(struct hpre *hpre, u32 err_sts)
+{
+	const struct hpre_hw_error *err = hpre_hw_errors;
+	struct device *dev = &hpre->qm.pdev->dev;
+
+	while (err->msg) {
+		if (err->int_msk & err_sts)
+			dev_warn(dev, "%s [error status=0x%x] found\n",
+				 err->msg, err->int_msk);
+		err++;
+	}
+}
+
+static pci_ers_result_t hpre_hw_error_handle(struct hpre *hpre)
+{
+	u32 err_sts;
+
+	/* read err sts */
+	err_sts = readl(hpre->qm.io_base + HPRE_HAC_INT_STATUS);
+	if (err_sts) {
+		hpre_log_hw_error(hpre, err_sts);
+
+		/* clear error interrupts */
+		writel(err_sts, hpre->qm.io_base + HPRE_HAC_SOURCE_INT);
+		return PCI_ERS_RESULT_NEED_RESET;
+	}
+
+	return PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t hpre_process_hw_error(struct pci_dev *pdev)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+	pci_ers_result_t qm_ret, hpre_ret;
+
+	/* log qm error */
+	qm_ret = hisi_qm_hw_error_handle(&hpre->qm);
+
+	/* log hpre error */
+	hpre_ret = hpre_hw_error_handle(hpre);
+
+	return (qm_ret == PCI_ERS_RESULT_NEED_RESET ||
+		hpre_ret == PCI_ERS_RESULT_NEED_RESET) ?
+		PCI_ERS_RESULT_NEED_RESET : PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t hpre_error_detected(struct pci_dev *pdev,
+					    pci_channel_state_t state)
+{
+	pci_info(pdev, "PCI error detected, state(=%d)!!\n", state);
+	if (state == pci_channel_io_perm_failure)
+		return PCI_ERS_RESULT_DISCONNECT;
+
+	return hpre_process_hw_error(pdev);
+}
+
+static const struct pci_error_handlers hpre_err_handler = {
+	.error_detected		= hpre_error_detected,
+};
+
+static struct pci_driver hpre_pci_driver = {
+	.name			= hpre_name,
+	.id_table		= hpre_dev_ids,
+	.probe			= hpre_probe,
+	.remove			= hpre_remove,
+	.sriov_configure	= hpre_sriov_configure,
+	.err_handler		= &hpre_err_handler,
+};
+
+static void hpre_register_debugfs(void)
+{
+	if (!debugfs_initialized())
+		return;
+
+	hpre_debugfs_root = debugfs_create_dir(hpre_name, NULL);
+}
+
+static void hpre_unregister_debugfs(void)
+{
+	debugfs_remove_recursive(hpre_debugfs_root);
+}
+
+static int __init hpre_init(void)
+{
+	int ret;
+
+	hpre_register_debugfs();
+
+	ret = pci_register_driver(&hpre_pci_driver);
+	if (ret) {
+		hpre_unregister_debugfs();
+		pr_err("hpre: can't register hisi hpre driver.\n");
+	}
+
+	return ret;
+}
+
+static void __exit hpre_exit(void)
+{
+	pci_unregister_driver(&hpre_pci_driver);
+	hpre_unregister_debugfs();
+}
+
+module_init(hpre_init);
+module_exit(hpre_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Zaibo Xu <xuzaibo@huawei.com>");
+MODULE_DESCRIPTION("Driver for HiSilicon HPRE accelerator");
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/qm.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/qm.c
@@ -59,17 +59,17 @@
 #define QM_CQ_PHASE_SHIFT		0
 #define QM_CQ_FLAG_SHIFT		1
 
-#define QM_CQE_PHASE(cqe)		((cqe)->w7 & 0x1)
+#define QM_CQE_PHASE(cqe)		(le16_to_cpu((cqe)->w7) & 0x1)
 #define QM_QC_CQE_SIZE			4
 
 /* eqc shift */
 #define QM_EQE_AEQE_SIZE		(2UL << 12)
 #define QM_EQC_PHASE_SHIFT		16
 
-#define QM_EQE_PHASE(eqe)		(((eqe)->dw0 >> 16) & 0x1)
+#define QM_EQE_PHASE(eqe)		((le32_to_cpu((eqe)->dw0) >> 16) & 0x1)
 #define QM_EQE_CQN_MASK			GENMASK(15, 0)
 
-#define QM_AEQE_PHASE(aeqe)		(((aeqe)->dw0 >> 16) & 0x1)
+#define QM_AEQE_PHASE(aeqe)		((le32_to_cpu((aeqe)->dw0) >> 16) & 0x1)
 #define QM_AEQE_TYPE_SHIFT		17
 
 #define QM_DOORBELL_CMD_SQ		0
@@ -169,17 +169,17 @@
 #define QM_MK_SQC_DW3_V2(sqe_sz) \
 	((QM_Q_DEPTH - 1) | ((u32)ilog2(sqe_sz) << QM_SQ_SQE_SIZE_SHIFT))
 
-#define INIT_QC_COMMON(qc, base, pasid) do {	\
-	(qc)->head = 0;				\
-	(qc)->tail = 0;				\
-	(qc)->base_l = lower_32_bits(base);	\
-	(qc)->base_h = upper_32_bits(base);	\
-	(qc)->dw3 = 0;				\
-	(qc)->w8 = 0;				\
-	(qc)->rsvd0 = 0;			\
-	(qc)->pasid = pasid;			\
-	(qc)->w11 = 0;				\
-	(qc)->rsvd1 = 0;			\
+#define INIT_QC_COMMON(qc, base, pasid) do {			\
+	(qc)->head = 0;						\
+	(qc)->tail = 0;						\
+	(qc)->base_l = cpu_to_le32(lower_32_bits(base));	\
+	(qc)->base_h = cpu_to_le32(upper_32_bits(base));	\
+	(qc)->dw3 = 0;						\
+	(qc)->w8 = 0;						\
+	(qc)->rsvd0 = 0;					\
+	(qc)->pasid = cpu_to_le16(pasid);			\
+	(qc)->w11 = 0;						\
+	(qc)->rsvd1 = 0;					\
 } while (0)
 
 enum vft_type {
@@ -331,12 +331,18 @@
 	void __iomem *fun_base = qm->io_base + QM_MB_CMD_SEND_BASE;
 	unsigned long tmp0 = 0, tmp1 = 0;
 
+	if (!IS_ENABLED(CONFIG_ARM64)) {
+		memcpy_toio(fun_base, src, 16);
+		wmb();
+		return;
+	}
+
 	asm volatile("ldp %0, %1, %3\n"
 		     "stp %0, %1, %2\n"
 		     "dsb sy\n"
 		     : "=&r" (tmp0),
 		       "=&r" (tmp1),
-		       "+Q" (*((char *)fun_base))
+		       "+Q" (*((char __iomem *)fun_base))
 		     : "Q" (*((char *)src))
 		     : "memory");
 }
@@ -350,12 +356,12 @@
 	dev_dbg(&qm->pdev->dev, "QM mailbox request to q%u: %u-%llx\n",
 		queue, cmd, (unsigned long long)dma_addr);
 
-	mailbox.w0 = cmd |
+	mailbox.w0 = cpu_to_le16(cmd |
 		     (op ? 0x1 << QM_MB_OP_SHIFT : 0) |
-		     (0x1 << QM_MB_BUSY_SHIFT);
-	mailbox.queue_num = queue;
-	mailbox.base_l = lower_32_bits(dma_addr);
-	mailbox.base_h = upper_32_bits(dma_addr);
+		     (0x1 << QM_MB_BUSY_SHIFT));
+	mailbox.queue_num = cpu_to_le16(queue);
+	mailbox.base_l = cpu_to_le32(lower_32_bits(dma_addr));
+	mailbox.base_h = cpu_to_le32(upper_32_bits(dma_addr));
 	mailbox.rsvd = 0;
 
 	mutex_lock(&qm->mailbox_lock);
@@ -442,7 +448,7 @@
 
 static struct hisi_qp *qm_to_hisi_qp(struct hisi_qm *qm, struct qm_eqe *eqe)
 {
-	u16 cqn = eqe->dw0 & QM_EQE_CQN_MASK;
+	u16 cqn = le32_to_cpu(eqe->dw0) & QM_EQE_CQN_MASK;
 
 	return qm->qp_array[cqn];
 }
@@ -464,7 +470,8 @@
 	if (qp->req_cb) {
 		while (QM_CQE_PHASE(cqe) == qp->qp_status.cqc_phase) {
 			dma_rmb();
-			qp->req_cb(qp, qp->sqe + qm->sqe_size * cqe->sq_head);
+			qp->req_cb(qp, qp->sqe + qm->sqe_size *
+				   le16_to_cpu(cqe->sq_head));
 			qm_cq_head_update(qp);
 			cqe = qp->cqe + qp->qp_status.cq_head;
 			qm_db(qm, qp->qp_id, QM_DOORBELL_CMD_CQ,
@@ -542,7 +549,7 @@
 		return IRQ_NONE;
 
 	while (QM_AEQE_PHASE(aeqe) == qm->status.aeqc_phase) {
-		type = aeqe->dw0 >> QM_AEQE_TYPE_SHIFT;
+		type = le32_to_cpu(aeqe->dw0) >> QM_AEQE_TYPE_SHIFT;
 		if (type < ARRAY_SIZE(qm_fifo_overflow))
 			dev_err(&qm->pdev->dev, "%s overflow\n",
 				qm_fifo_overflow[type]);
@@ -646,7 +653,7 @@
 
 	qp_status->sq_tail = 0;
 	qp_status->cq_head = 0;
-	qp_status->cqc_phase = 1;
+	qp_status->cqc_phase = true;
 	qp_status->flags = 0;
 }
 
@@ -963,13 +970,11 @@
 
 static int qm_create_debugfs_file(struct hisi_qm *qm, enum qm_debug_file index)
 {
-	struct dentry *qm_d = qm->debug.qm_d, *tmp;
+	struct dentry *qm_d = qm->debug.qm_d;
 	struct debugfs_file *file = qm->debug.files + index;
 
-	tmp = debugfs_create_file(qm_debug_file_name[index], 0600, qm_d, file,
-				  &qm_debug_fops);
-	if (IS_ERR(tmp))
-		return -ENOENT;
+	debugfs_create_file(qm_debug_file_name[index], 0600, qm_d, file,
+			    &qm_debug_fops);
 
 	file->index = index;
 	mutex_init(&file->lock);
@@ -981,9 +986,6 @@
 static void qm_hw_error_init_v1(struct hisi_qm *qm, u32 ce, u32 nfe, u32 fe,
 				u32 msi)
 {
-	dev_info(&qm->pdev->dev,
-		 "QM v%d does not support hw error handle\n", qm->ver);
-
 	writel(QM_ABNORMAL_INT_MASK_VALUE, qm->io_base + QM_ABNORMAL_INT_MASK);
 }
 
@@ -1123,6 +1125,7 @@
 	}
 	set_bit(qp_id, qm->qp_bitmap);
 	qm->qp_array[qp_id] = qp;
+	qm->qp_in_used++;
 
 	write_unlock(&qm->qps_lock);
 
@@ -1187,6 +1190,7 @@
 	write_lock(&qm->qps_lock);
 	qm->qp_array[qp->qp_id] = NULL;
 	clear_bit(qp->qp_id, qm->qp_bitmap);
+	qm->qp_in_used--;
 	write_unlock(&qm->qps_lock);
 
 	kfree(qp);
@@ -1218,14 +1222,14 @@
 
 	INIT_QC_COMMON(sqc, qp->sqe_dma, pasid);
 	if (ver == QM_HW_V1) {
-		sqc->dw3 = QM_MK_SQC_DW3_V1(0, 0, 0, qm->sqe_size);
-		sqc->w8 = QM_Q_DEPTH - 1;
+		sqc->dw3 = cpu_to_le32(QM_MK_SQC_DW3_V1(0, 0, 0, qm->sqe_size));
+		sqc->w8 = cpu_to_le16(QM_Q_DEPTH - 1);
 	} else if (ver == QM_HW_V2) {
-		sqc->dw3 = QM_MK_SQC_DW3_V2(qm->sqe_size);
+		sqc->dw3 = cpu_to_le32(QM_MK_SQC_DW3_V2(qm->sqe_size));
 		sqc->w8 = 0; /* rand_qc */
 	}
-	sqc->cq_num = qp_id;
-	sqc->w13 = QM_MK_SQC_W13(0, 1, qp->alg_type);
+	sqc->cq_num = cpu_to_le16(qp_id);
+	sqc->w13 = cpu_to_le16(QM_MK_SQC_W13(0, 1, qp->alg_type));
 
 	ret = qm_mb(qm, QM_MB_CMD_SQC, sqc_dma, qp_id, 0);
 	dma_unmap_single(dev, sqc_dma, sizeof(struct qm_sqc), DMA_TO_DEVICE);
@@ -1245,13 +1249,13 @@
 
 	INIT_QC_COMMON(cqc, qp->cqe_dma, pasid);
 	if (ver == QM_HW_V1) {
-		cqc->dw3 = QM_MK_CQC_DW3_V1(0, 0, 0, 4);
-		cqc->w8 = QM_Q_DEPTH - 1;
+		cqc->dw3 = cpu_to_le32(QM_MK_CQC_DW3_V1(0, 0, 0, 4));
+		cqc->w8 = cpu_to_le16(QM_Q_DEPTH - 1);
 	} else if (ver == QM_HW_V2) {
-		cqc->dw3 = QM_MK_CQC_DW3_V2(4);
+		cqc->dw3 = cpu_to_le32(QM_MK_CQC_DW3_V2(4));
 		cqc->w8 = 0;
 	}
-	cqc->dw6 = 1 << QM_CQ_PHASE_SHIFT | 1 << QM_CQ_FLAG_SHIFT;
+	cqc->dw6 = cpu_to_le32(1 << QM_CQ_PHASE_SHIFT | 1 << QM_CQ_FLAG_SHIFT);
 
 	ret = qm_mb(qm, QM_MB_CMD_CQC, cqc_dma, qp_id, 0);
 	dma_unmap_single(dev, cqc_dma, sizeof(struct qm_cqc), DMA_TO_DEVICE);
@@ -1392,6 +1396,24 @@
 }
 
 /**
+ * hisi_qm_get_free_qp_num() - Get free number of qp in qm.
+ * @qm: The qm which want to get free qp.
+ *
+ * This function return free number of qp in qm.
+ */
+int hisi_qm_get_free_qp_num(struct hisi_qm *qm)
+{
+	int ret;
+
+	read_lock(&qm->qps_lock);
+	ret = qm->qp_num - qm->qp_in_used;
+	read_unlock(&qm->qps_lock);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(hisi_qm_get_free_qp_num);
+
+/**
  * hisi_qm_init() - Initialize configures about qm.
  * @qm: The qm needing init.
  *
@@ -1454,6 +1476,7 @@
 	if (ret)
 		goto err_free_irq_vectors;
 
+	qm->qp_in_used = 0;
 	mutex_init(&qm->mailbox_lock);
 	rwlock_init(&qm->qps_lock);
 
@@ -1560,8 +1583,8 @@
 
 	status->eq_head = 0;
 	status->aeq_head = 0;
-	status->eqc_phase = 1;
-	status->aeqc_phase = 1;
+	status->eqc_phase = true;
+	status->aeqc_phase = true;
 }
 
 static int qm_eq_ctx_cfg(struct hisi_qm *qm)
@@ -1585,11 +1608,11 @@
 		return -ENOMEM;
 	}
 
-	eqc->base_l = lower_32_bits(qm->eqe_dma);
-	eqc->base_h = upper_32_bits(qm->eqe_dma);
+	eqc->base_l = cpu_to_le32(lower_32_bits(qm->eqe_dma));
+	eqc->base_h = cpu_to_le32(upper_32_bits(qm->eqe_dma));
 	if (qm->ver == QM_HW_V1)
-		eqc->dw3 = QM_EQE_AEQE_SIZE;
-	eqc->dw6 = (QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT);
+		eqc->dw3 = cpu_to_le32(QM_EQE_AEQE_SIZE);
+	eqc->dw6 = cpu_to_le32((QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT));
 	ret = qm_mb(qm, QM_MB_CMD_EQC, eqc_dma, 0, 0);
 	dma_unmap_single(dev, eqc_dma, sizeof(struct qm_eqc), DMA_TO_DEVICE);
 	kfree(eqc);
@@ -1606,9 +1629,9 @@
 		return -ENOMEM;
 	}
 
-	aeqc->base_l = lower_32_bits(qm->aeqe_dma);
-	aeqc->base_h = upper_32_bits(qm->aeqe_dma);
-	aeqc->dw6 = (QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT);
+	aeqc->base_l = cpu_to_le32(lower_32_bits(qm->aeqe_dma));
+	aeqc->base_h = cpu_to_le32(upper_32_bits(qm->aeqe_dma));
+	aeqc->dw6 = cpu_to_le32((QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT));
 
 	ret = qm_mb(qm, QM_MB_CMD_AEQC, aeqc_dma, 0, 0);
 	dma_unmap_single(dev, aeqc_dma, sizeof(struct qm_aeqc), DMA_TO_DEVICE);
@@ -1780,12 +1803,10 @@
  */
 int hisi_qm_debug_init(struct hisi_qm *qm)
 {
-	struct dentry *qm_d, *qm_regs;
+	struct dentry *qm_d;
 	int i, ret;
 
 	qm_d = debugfs_create_dir("qm", qm->debug.debug_root);
-	if (IS_ERR(qm_d))
-		return -ENOENT;
 	qm->debug.qm_d = qm_d;
 
 	/* only show this in PF */
@@ -1796,12 +1817,7 @@
 				goto failed_to_create;
 			}
 
-	qm_regs = debugfs_create_file("qm_regs", 0444, qm->debug.qm_d, qm,
-				      &qm_regs_fops);
-	if (IS_ERR(qm_regs)) {
-		ret = -ENOENT;
-		goto failed_to_create;
-	}
+	debugfs_create_file("qm_regs", 0444, qm->debug.qm_d, qm, &qm_regs_fops);
 
 	return 0;
 
@@ -1862,8 +1878,7 @@
 			   u32 msi)
 {
 	if (!qm->ops->hw_error_init) {
-		dev_err(&qm->pdev->dev, "QM version %d doesn't support hw error handling!\n",
-			qm->ver);
+		dev_err(&qm->pdev->dev, "QM doesn't support hw error handling!\n");
 		return;
 	}
 
@@ -1877,11 +1892,10 @@
  *
  * Accelerators use this function to handle qm non-fatal hardware errors.
  */
-int hisi_qm_hw_error_handle(struct hisi_qm *qm)
+pci_ers_result_t hisi_qm_hw_error_handle(struct hisi_qm *qm)
 {
 	if (!qm->ops->hw_error_handle) {
-		dev_err(&qm->pdev->dev, "QM version %d doesn't support hw error report!\n",
-			qm->ver);
+		dev_err(&qm->pdev->dev, "QM doesn't support hw error report!\n");
 		return PCI_ERS_RESULT_NONE;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/qm.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/qm.h
@@ -75,6 +75,8 @@
 
 #define QM_Q_DEPTH			1024
 
+#define HISI_ACC_SGL_SGE_NR_MAX		255
+
 enum qp_state {
 	QP_STOP,
 };
@@ -132,6 +134,7 @@
 	u32 sqe_size;
 	u32 qp_base;
 	u32 qp_num;
+	u32 qp_in_used;
 	u32 ctrl_qp_num;
 
 	struct qm_dma qdma;
@@ -204,12 +207,24 @@
 int hisi_qm_stop_qp(struct hisi_qp *qp);
 void hisi_qm_release_qp(struct hisi_qp *qp);
 int hisi_qp_send(struct hisi_qp *qp, const void *msg);
+int hisi_qm_get_free_qp_num(struct hisi_qm *qm);
 int hisi_qm_get_vft(struct hisi_qm *qm, u32 *base, u32 *number);
 int hisi_qm_set_vft(struct hisi_qm *qm, u32 fun_num, u32 base, u32 number);
 int hisi_qm_debug_init(struct hisi_qm *qm);
 void hisi_qm_hw_error_init(struct hisi_qm *qm, u32 ce, u32 nfe, u32 fe,
 			   u32 msi);
-int hisi_qm_hw_error_handle(struct hisi_qm *qm);
+pci_ers_result_t hisi_qm_hw_error_handle(struct hisi_qm *qm);
 enum qm_hw_ver hisi_qm_get_hw_version(struct pci_dev *pdev);
 void hisi_qm_debug_regs_clear(struct hisi_qm *qm);
+
+struct hisi_acc_sgl_pool;
+struct hisi_acc_hw_sgl *hisi_acc_sg_buf_map_to_hw_sgl(struct device *dev,
+	struct scatterlist *sgl, struct hisi_acc_sgl_pool *pool,
+	u32 index, dma_addr_t *hw_sgl_dma);
+void hisi_acc_sg_buf_unmap(struct device *dev, struct scatterlist *sgl,
+			   struct hisi_acc_hw_sgl *hw_sgl);
+struct hisi_acc_sgl_pool *hisi_acc_create_sgl_pool(struct device *dev,
+						   u32 count, u32 sge_nr);
+void hisi_acc_free_sgl_pool(struct device *dev,
+			    struct hisi_acc_sgl_pool *pool);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sec/sec_algs.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sec/sec_algs.c
@@ -175,7 +175,8 @@
 				     dma_addr_t *psec_sgl,
 				     struct scatterlist *sgl,
 				     int count,
-				     struct sec_dev_info *info)
+				     struct sec_dev_info *info,
+				     gfp_t gfp)
 {
 	struct sec_hw_sgl *sgl_current = NULL;
 	struct sec_hw_sgl *sgl_next;
@@ -190,7 +191,7 @@
 		sge_index = i % SEC_MAX_SGE_NUM;
 		if (sge_index == 0) {
 			sgl_next = dma_pool_zalloc(info->hw_sgl_pool,
-						   GFP_KERNEL, &sgl_next_dma);
+						   gfp, &sgl_next_dma);
 			if (!sgl_next) {
 				ret = -ENOMEM;
 				goto err_free_hw_sgls;
@@ -545,14 +546,14 @@
 }
 
 static int sec_alg_alloc_and_calc_split_sizes(int length, size_t **split_sizes,
-					      int *steps)
+					      int *steps, gfp_t gfp)
 {
 	size_t *sizes;
 	int i;
 
 	/* Split into suitable sized blocks */
 	*steps = roundup(length, SEC_REQ_LIMIT) / SEC_REQ_LIMIT;
-	sizes = kcalloc(*steps, sizeof(*sizes), GFP_KERNEL);
+	sizes = kcalloc(*steps, sizeof(*sizes), gfp);
 	if (!sizes)
 		return -ENOMEM;
 
@@ -568,7 +569,7 @@
 				int steps, struct scatterlist ***splits,
 				int **splits_nents,
 				int sgl_len_in,
-				struct device *dev)
+				struct device *dev, gfp_t gfp)
 {
 	int ret, count;
 
@@ -576,12 +577,12 @@
 	if (!count)
 		return -EINVAL;
 
-	*splits = kcalloc(steps, sizeof(struct scatterlist *), GFP_KERNEL);
+	*splits = kcalloc(steps, sizeof(struct scatterlist *), gfp);
 	if (!*splits) {
 		ret = -ENOMEM;
 		goto err_unmap_sg;
 	}
-	*splits_nents = kcalloc(steps, sizeof(int), GFP_KERNEL);
+	*splits_nents = kcalloc(steps, sizeof(int), gfp);
 	if (!*splits_nents) {
 		ret = -ENOMEM;
 		goto err_free_splits;
@@ -589,7 +590,7 @@
 
 	/* output the scatter list before and after this */
 	ret = sg_split(sgl, count, 0, steps, split_sizes,
-		       *splits, *splits_nents, GFP_KERNEL);
+		       *splits, *splits_nents, gfp);
 	if (ret) {
 		ret = -ENOMEM;
 		goto err_free_splits_nents;
@@ -630,13 +631,13 @@
 			   int el_size, bool different_dest,
 			   struct scatterlist *sgl_in, int n_ents_in,
 			   struct scatterlist *sgl_out, int n_ents_out,
-			   struct sec_dev_info *info)
+			   struct sec_dev_info *info, gfp_t gfp)
 {
 	struct sec_request_el *el;
 	struct sec_bd_info *req;
 	int ret;
 
-	el = kzalloc(sizeof(*el), GFP_KERNEL);
+	el = kzalloc(sizeof(*el), gfp);
 	if (!el)
 		return ERR_PTR(-ENOMEM);
 	el->el_length = el_size;
@@ -668,7 +669,7 @@
 	el->sgl_in = sgl_in;
 
 	ret = sec_alloc_and_fill_hw_sgl(&el->in, &el->dma_in, el->sgl_in,
-					n_ents_in, info);
+					n_ents_in, info, gfp);
 	if (ret)
 		goto err_free_el;
 
@@ -679,7 +680,7 @@
 		el->sgl_out = sgl_out;
 		ret = sec_alloc_and_fill_hw_sgl(&el->out, &el->dma_out,
 						el->sgl_out,
-						n_ents_out, info);
+						n_ents_out, info, gfp);
 		if (ret)
 			goto err_free_hw_sgl_in;
 
@@ -720,6 +721,7 @@
 	int *splits_out_nents = NULL;
 	struct sec_request_el *el, *temp;
 	bool split = skreq->src != skreq->dst;
+	gfp_t gfp = skreq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL : GFP_ATOMIC;
 
 	mutex_init(&sec_req->lock);
 	sec_req->req_base = &skreq->base;
@@ -728,13 +730,13 @@
 	sec_req->len_in = sg_nents(skreq->src);
 
 	ret = sec_alg_alloc_and_calc_split_sizes(skreq->cryptlen, &split_sizes,
-						 &steps);
+						 &steps, gfp);
 	if (ret)
 		return ret;
 	sec_req->num_elements = steps;
 	ret = sec_map_and_split_sg(skreq->src, split_sizes, steps, &splits_in,
 				   &splits_in_nents, sec_req->len_in,
-				   info->dev);
+				   info->dev, gfp);
 	if (ret)
 		goto err_free_split_sizes;
 
@@ -742,7 +744,7 @@
 		sec_req->len_out = sg_nents(skreq->dst);
 		ret = sec_map_and_split_sg(skreq->dst, split_sizes, steps,
 					   &splits_out, &splits_out_nents,
-					   sec_req->len_out, info->dev);
+					   sec_req->len_out, info->dev, gfp);
 		if (ret)
 			goto err_unmap_in_sg;
 	}
@@ -775,7 +777,7 @@
 					       splits_in[i], splits_in_nents[i],
 					       split ? splits_out[i] : NULL,
 					       split ? splits_out_nents[i] : 0,
-					       info);
+					       info, gfp);
 		if (IS_ERR(el)) {
 			ret = PTR_ERR(el);
 			goto err_free_elements;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sec2/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sec2/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_CRYPTO_DEV_HISI_SEC2) += hisi_sec2.o
+hisi_sec2-objs = sec_main.o sec_crypto.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sec2/sec.h
@@ -0,0 +1,175 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#ifndef __HISI_SEC_V2_H
+#define __HISI_SEC_V2_H
+
+#include <linux/list.h>
+
+#include "../qm.h"
+#include "sec_crypto.h"
+
+/* Algorithm resource per hardware SEC queue */
+struct sec_alg_res {
+	u8 *c_ivin;
+	dma_addr_t c_ivin_dma;
+	u8 *out_mac;
+	dma_addr_t out_mac_dma;
+};
+
+/* Cipher request of SEC private */
+struct sec_cipher_req {
+	struct hisi_acc_hw_sgl *c_in;
+	dma_addr_t c_in_dma;
+	struct hisi_acc_hw_sgl *c_out;
+	dma_addr_t c_out_dma;
+	struct skcipher_request *sk_req;
+	u32 c_len;
+	bool encrypt;
+};
+
+struct sec_aead_req {
+	u8 *out_mac;
+	dma_addr_t out_mac_dma;
+	struct aead_request *aead_req;
+};
+
+/* SEC request of Crypto */
+struct sec_req {
+	struct sec_sqe sec_sqe;
+	struct sec_ctx *ctx;
+	struct sec_qp_ctx *qp_ctx;
+
+	struct sec_cipher_req c_req;
+	struct sec_aead_req aead_req;
+
+	int err_type;
+	int req_id;
+
+	/* Status of the SEC request */
+	bool fake_busy;
+};
+
+/**
+ * struct sec_req_op - Operations for SEC request
+ * @buf_map: DMA map the SGL buffers of the request
+ * @buf_unmap: DMA unmap the SGL buffers of the request
+ * @bd_fill: Fill the SEC queue BD
+ * @bd_send: Send the SEC BD into the hardware queue
+ * @callback: Call back for the request
+ * @process: Main processing logic of Skcipher
+ */
+struct sec_req_op {
+	int (*buf_map)(struct sec_ctx *ctx, struct sec_req *req);
+	void (*buf_unmap)(struct sec_ctx *ctx, struct sec_req *req);
+	void (*do_transfer)(struct sec_ctx *ctx, struct sec_req *req);
+	int (*bd_fill)(struct sec_ctx *ctx, struct sec_req *req);
+	int (*bd_send)(struct sec_ctx *ctx, struct sec_req *req);
+	void (*callback)(struct sec_ctx *ctx, struct sec_req *req, int err);
+	int (*process)(struct sec_ctx *ctx, struct sec_req *req);
+};
+
+/* SEC auth context */
+struct sec_auth_ctx {
+	dma_addr_t a_key_dma;
+	u8 *a_key;
+	u8 a_key_len;
+	u8 mac_len;
+	u8 a_alg;
+	struct crypto_shash *hash_tfm;
+};
+
+/* SEC cipher context which cipher's relatives */
+struct sec_cipher_ctx {
+	u8 *c_key;
+	dma_addr_t c_key_dma;
+	sector_t iv_offset;
+	u32 c_gran_size;
+	u32 ivsize;
+	u8 c_mode;
+	u8 c_alg;
+	u8 c_key_len;
+};
+
+/* SEC queue context which defines queue's relatives */
+struct sec_qp_ctx {
+	struct hisi_qp *qp;
+	struct sec_req *req_list[QM_Q_DEPTH];
+	struct idr req_idr;
+	struct sec_alg_res res[QM_Q_DEPTH];
+	struct sec_ctx *ctx;
+	struct mutex req_lock;
+	struct hisi_acc_sgl_pool *c_in_pool;
+	struct hisi_acc_sgl_pool *c_out_pool;
+	atomic_t pending_reqs;
+};
+
+enum sec_alg_type {
+	SEC_SKCIPHER,
+	SEC_AEAD
+};
+
+/* SEC Crypto TFM context which defines queue and cipher .etc relatives */
+struct sec_ctx {
+	struct sec_qp_ctx *qp_ctx;
+	struct sec_dev *sec;
+	const struct sec_req_op *req_op;
+
+	/* Half queues for encipher, and half for decipher */
+	u32 hlf_q_num;
+
+	/* Threshold for fake busy, trigger to return -EBUSY to user */
+	u32 fake_req_limit;
+
+	/* Currrent cyclic index to select a queue for encipher */
+	atomic_t enc_qcyclic;
+
+	 /* Currrent cyclic index to select a queue for decipher */
+	atomic_t dec_qcyclic;
+
+	enum sec_alg_type alg_type;
+	struct sec_cipher_ctx c_ctx;
+	struct sec_auth_ctx a_ctx;
+};
+
+enum sec_endian {
+	SEC_LE = 0,
+	SEC_32BE,
+	SEC_64BE
+};
+
+enum sec_debug_file_index {
+	SEC_CURRENT_QM,
+	SEC_CLEAR_ENABLE,
+	SEC_DEBUG_FILE_NUM,
+};
+
+struct sec_debug_file {
+	enum sec_debug_file_index index;
+	spinlock_t lock;
+	struct hisi_qm *qm;
+};
+
+struct sec_dfx {
+	atomic64_t send_cnt;
+	atomic64_t recv_cnt;
+};
+
+struct sec_debug {
+	struct sec_dfx dfx;
+	struct sec_debug_file files[SEC_DEBUG_FILE_NUM];
+};
+
+struct sec_dev {
+	struct hisi_qm qm;
+	struct list_head list;
+	struct sec_debug debug;
+	u32 ctx_q_num;
+	u32 num_vfs;
+	unsigned long status;
+};
+
+struct sec_dev *sec_find_device(int node);
+int sec_register_to_crypto(void);
+void sec_unregister_from_crypto(void);
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec_crypto.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sec2/sec_crypto.c
@@ -0,0 +1,1446 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#include <crypto/aes.h>
+#include <crypto/algapi.h>
+#include <crypto/authenc.h>
+#include <crypto/des.h>
+#include <crypto/hash.h>
+#include <crypto/internal/aead.h>
+#include <crypto/sha.h>
+#include <crypto/skcipher.h>
+#include <crypto/xts.h>
+#include <linux/crypto.h>
+#include <linux/dma-mapping.h>
+#include <linux/idr.h>
+
+#include "sec.h"
+#include "sec_crypto.h"
+
+#define SEC_PRIORITY		4001
+#define SEC_XTS_MIN_KEY_SIZE	(2 * AES_MIN_KEY_SIZE)
+#define SEC_XTS_MAX_KEY_SIZE	(2 * AES_MAX_KEY_SIZE)
+#define SEC_DES3_2KEY_SIZE	(2 * DES_KEY_SIZE)
+#define SEC_DES3_3KEY_SIZE	(3 * DES_KEY_SIZE)
+
+/* SEC sqe(bd) bit operational relative MACRO */
+#define SEC_DE_OFFSET		1
+#define SEC_CIPHER_OFFSET	4
+#define SEC_SCENE_OFFSET	3
+#define SEC_DST_SGL_OFFSET	2
+#define SEC_SRC_SGL_OFFSET	7
+#define SEC_CKEY_OFFSET		9
+#define SEC_CMODE_OFFSET	12
+#define SEC_AKEY_OFFSET         5
+#define SEC_AEAD_ALG_OFFSET     11
+#define SEC_AUTH_OFFSET		6
+
+#define SEC_FLAG_OFFSET		7
+#define SEC_FLAG_MASK		0x0780
+#define SEC_TYPE_MASK		0x0F
+#define SEC_DONE_MASK		0x0001
+
+#define SEC_TOTAL_IV_SZ		(SEC_IV_SIZE * QM_Q_DEPTH)
+#define SEC_SGL_SGE_NR		128
+#define SEC_CTX_DEV(ctx)	(&(ctx)->sec->qm.pdev->dev)
+#define SEC_CIPHER_AUTH		0xfe
+#define SEC_AUTH_CIPHER		0x1
+#define SEC_MAX_MAC_LEN		64
+#define SEC_TOTAL_MAC_SZ	(SEC_MAX_MAC_LEN * QM_Q_DEPTH)
+#define SEC_SQE_LEN_RATE	4
+#define SEC_SQE_CFLAG		2
+#define SEC_SQE_AEAD_FLAG	3
+#define SEC_SQE_DONE		0x1
+
+static atomic_t sec_active_devs;
+
+/* Get an en/de-cipher queue cyclically to balance load over queues of TFM */
+static inline int sec_alloc_queue_id(struct sec_ctx *ctx, struct sec_req *req)
+{
+	if (req->c_req.encrypt)
+		return (u32)atomic_inc_return(&ctx->enc_qcyclic) %
+				 ctx->hlf_q_num;
+
+	return (u32)atomic_inc_return(&ctx->dec_qcyclic) % ctx->hlf_q_num +
+				 ctx->hlf_q_num;
+}
+
+static inline void sec_free_queue_id(struct sec_ctx *ctx, struct sec_req *req)
+{
+	if (req->c_req.encrypt)
+		atomic_dec(&ctx->enc_qcyclic);
+	else
+		atomic_dec(&ctx->dec_qcyclic);
+}
+
+static int sec_alloc_req_id(struct sec_req *req, struct sec_qp_ctx *qp_ctx)
+{
+	int req_id;
+
+	mutex_lock(&qp_ctx->req_lock);
+
+	req_id = idr_alloc_cyclic(&qp_ctx->req_idr, NULL,
+				  0, QM_Q_DEPTH, GFP_ATOMIC);
+	mutex_unlock(&qp_ctx->req_lock);
+	if (unlikely(req_id < 0)) {
+		dev_err(SEC_CTX_DEV(req->ctx), "alloc req id fail!\n");
+		return req_id;
+	}
+
+	req->qp_ctx = qp_ctx;
+	qp_ctx->req_list[req_id] = req;
+	return req_id;
+}
+
+static void sec_free_req_id(struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+	int req_id = req->req_id;
+
+	if (unlikely(req_id < 0 || req_id >= QM_Q_DEPTH)) {
+		dev_err(SEC_CTX_DEV(req->ctx), "free request id invalid!\n");
+		return;
+	}
+
+	qp_ctx->req_list[req_id] = NULL;
+	req->qp_ctx = NULL;
+
+	mutex_lock(&qp_ctx->req_lock);
+	idr_remove(&qp_ctx->req_idr, req_id);
+	mutex_unlock(&qp_ctx->req_lock);
+}
+
+static int sec_aead_verify(struct sec_req *req, struct sec_qp_ctx *qp_ctx)
+{
+	struct aead_request *aead_req = req->aead_req.aead_req;
+	struct crypto_aead *tfm = crypto_aead_reqtfm(aead_req);
+	u8 *mac_out = qp_ctx->res[req->req_id].out_mac;
+	size_t authsize = crypto_aead_authsize(tfm);
+	u8 *mac = mac_out + SEC_MAX_MAC_LEN;
+	struct scatterlist *sgl = aead_req->src;
+	size_t sz;
+
+	sz = sg_pcopy_to_buffer(sgl, sg_nents(sgl), mac, authsize,
+				aead_req->cryptlen + aead_req->assoclen -
+				authsize);
+	if (unlikely(sz != authsize || memcmp(mac_out, mac, sz))) {
+		dev_err(SEC_CTX_DEV(req->ctx), "aead verify failure!\n");
+		return -EBADMSG;
+	}
+
+	return 0;
+}
+
+static void sec_req_cb(struct hisi_qp *qp, void *resp)
+{
+	struct sec_qp_ctx *qp_ctx = qp->qp_ctx;
+	struct sec_sqe *bd = resp;
+	struct sec_ctx *ctx;
+	struct sec_req *req;
+	u16 done, flag;
+	int err = 0;
+	u8 type;
+
+	type = bd->type_cipher_auth & SEC_TYPE_MASK;
+	if (unlikely(type != SEC_BD_TYPE2)) {
+		pr_err("err bd type [%d]\n", type);
+		return;
+	}
+
+	req = qp_ctx->req_list[le16_to_cpu(bd->type2.tag)];
+	req->err_type = bd->type2.error_type;
+	ctx = req->ctx;
+	done = le16_to_cpu(bd->type2.done_flag) & SEC_DONE_MASK;
+	flag = (le16_to_cpu(bd->type2.done_flag) &
+		SEC_FLAG_MASK) >> SEC_FLAG_OFFSET;
+	if (unlikely(req->err_type || done != SEC_SQE_DONE ||
+	    (ctx->alg_type == SEC_SKCIPHER && flag != SEC_SQE_CFLAG) ||
+	    (ctx->alg_type == SEC_AEAD && flag != SEC_SQE_AEAD_FLAG))) {
+		dev_err(SEC_CTX_DEV(ctx),
+			"err_type[%d],done[%d],flag[%d]\n",
+			req->err_type, done, flag);
+		err = -EIO;
+	}
+
+	if (ctx->alg_type == SEC_AEAD && !req->c_req.encrypt)
+		err = sec_aead_verify(req, qp_ctx);
+
+	atomic64_inc(&ctx->sec->debug.dfx.recv_cnt);
+
+	ctx->req_op->buf_unmap(ctx, req);
+
+	ctx->req_op->callback(ctx, req, err);
+}
+
+static int sec_bd_send(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+	int ret;
+
+	mutex_lock(&qp_ctx->req_lock);
+	ret = hisi_qp_send(qp_ctx->qp, &req->sec_sqe);
+	mutex_unlock(&qp_ctx->req_lock);
+	atomic64_inc(&ctx->sec->debug.dfx.send_cnt);
+
+	if (unlikely(ret == -EBUSY))
+		return -ENOBUFS;
+
+	if (!ret) {
+		if (req->fake_busy)
+			ret = -EBUSY;
+		else
+			ret = -EINPROGRESS;
+	}
+
+	return ret;
+}
+
+/* Get DMA memory resources */
+static int sec_alloc_civ_resource(struct device *dev, struct sec_alg_res *res)
+{
+	int i;
+
+	res->c_ivin = dma_alloc_coherent(dev, SEC_TOTAL_IV_SZ,
+					 &res->c_ivin_dma, GFP_KERNEL);
+	if (!res->c_ivin)
+		return -ENOMEM;
+
+	for (i = 1; i < QM_Q_DEPTH; i++) {
+		res[i].c_ivin_dma = res->c_ivin_dma + i * SEC_IV_SIZE;
+		res[i].c_ivin = res->c_ivin + i * SEC_IV_SIZE;
+	}
+
+	return 0;
+}
+
+static void sec_free_civ_resource(struct device *dev, struct sec_alg_res *res)
+{
+	if (res->c_ivin)
+		dma_free_coherent(dev, SEC_TOTAL_IV_SZ,
+				  res->c_ivin, res->c_ivin_dma);
+}
+
+static int sec_alloc_mac_resource(struct device *dev, struct sec_alg_res *res)
+{
+	int i;
+
+	res->out_mac = dma_alloc_coherent(dev, SEC_TOTAL_MAC_SZ << 1,
+					  &res->out_mac_dma, GFP_KERNEL);
+	if (!res->out_mac)
+		return -ENOMEM;
+
+	for (i = 1; i < QM_Q_DEPTH; i++) {
+		res[i].out_mac_dma = res->out_mac_dma +
+				     i * (SEC_MAX_MAC_LEN << 1);
+		res[i].out_mac = res->out_mac + i * (SEC_MAX_MAC_LEN << 1);
+	}
+
+	return 0;
+}
+
+static void sec_free_mac_resource(struct device *dev, struct sec_alg_res *res)
+{
+	if (res->out_mac)
+		dma_free_coherent(dev, SEC_TOTAL_MAC_SZ << 1,
+				  res->out_mac, res->out_mac_dma);
+}
+
+static int sec_alg_resource_alloc(struct sec_ctx *ctx,
+				  struct sec_qp_ctx *qp_ctx)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_alg_res *res = qp_ctx->res;
+	int ret;
+
+	ret = sec_alloc_civ_resource(dev, res);
+	if (ret)
+		return ret;
+
+	if (ctx->alg_type == SEC_AEAD) {
+		ret = sec_alloc_mac_resource(dev, res);
+		if (ret)
+			goto get_fail;
+	}
+
+	return 0;
+get_fail:
+	sec_free_civ_resource(dev, res);
+
+	return ret;
+}
+
+static void sec_alg_resource_free(struct sec_ctx *ctx,
+				  struct sec_qp_ctx *qp_ctx)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+
+	sec_free_civ_resource(dev, qp_ctx->res);
+
+	if (ctx->alg_type == SEC_AEAD)
+		sec_free_mac_resource(dev, qp_ctx->res);
+}
+
+static int sec_create_qp_ctx(struct hisi_qm *qm, struct sec_ctx *ctx,
+			     int qp_ctx_id, int alg_type)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_qp_ctx *qp_ctx;
+	struct hisi_qp *qp;
+	int ret = -ENOMEM;
+
+	qp = hisi_qm_create_qp(qm, alg_type);
+	if (IS_ERR(qp))
+		return PTR_ERR(qp);
+
+	qp_ctx = &ctx->qp_ctx[qp_ctx_id];
+	qp->req_type = 0;
+	qp->qp_ctx = qp_ctx;
+	qp->req_cb = sec_req_cb;
+	qp_ctx->qp = qp;
+	qp_ctx->ctx = ctx;
+
+	mutex_init(&qp_ctx->req_lock);
+	atomic_set(&qp_ctx->pending_reqs, 0);
+	idr_init(&qp_ctx->req_idr);
+
+	qp_ctx->c_in_pool = hisi_acc_create_sgl_pool(dev, QM_Q_DEPTH,
+						     SEC_SGL_SGE_NR);
+	if (IS_ERR(qp_ctx->c_in_pool)) {
+		dev_err(dev, "fail to create sgl pool for input!\n");
+		goto err_destroy_idr;
+	}
+
+	qp_ctx->c_out_pool = hisi_acc_create_sgl_pool(dev, QM_Q_DEPTH,
+						      SEC_SGL_SGE_NR);
+	if (IS_ERR(qp_ctx->c_out_pool)) {
+		dev_err(dev, "fail to create sgl pool for output!\n");
+		goto err_free_c_in_pool;
+	}
+
+	ret = sec_alg_resource_alloc(ctx, qp_ctx);
+	if (ret)
+		goto err_free_c_out_pool;
+
+	ret = hisi_qm_start_qp(qp, 0);
+	if (ret < 0)
+		goto err_queue_free;
+
+	return 0;
+
+err_queue_free:
+	sec_alg_resource_free(ctx, qp_ctx);
+err_free_c_out_pool:
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_out_pool);
+err_free_c_in_pool:
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_in_pool);
+err_destroy_idr:
+	idr_destroy(&qp_ctx->req_idr);
+	hisi_qm_release_qp(qp);
+
+	return ret;
+}
+
+static void sec_release_qp_ctx(struct sec_ctx *ctx,
+			       struct sec_qp_ctx *qp_ctx)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+
+	hisi_qm_stop_qp(qp_ctx->qp);
+	sec_alg_resource_free(ctx, qp_ctx);
+
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_out_pool);
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_in_pool);
+
+	idr_destroy(&qp_ctx->req_idr);
+	hisi_qm_release_qp(qp_ctx->qp);
+}
+
+static int sec_ctx_base_init(struct sec_ctx *ctx)
+{
+	struct sec_dev *sec;
+	int i, ret;
+
+	sec = sec_find_device(cpu_to_node(smp_processor_id()));
+	if (!sec) {
+		pr_err("Can not find proper Hisilicon SEC device!\n");
+		return -ENODEV;
+	}
+	ctx->sec = sec;
+	ctx->hlf_q_num = sec->ctx_q_num >> 1;
+
+	/* Half of queue depth is taken as fake requests limit in the queue. */
+	ctx->fake_req_limit = QM_Q_DEPTH >> 1;
+	ctx->qp_ctx = kcalloc(sec->ctx_q_num, sizeof(struct sec_qp_ctx),
+			      GFP_KERNEL);
+	if (!ctx->qp_ctx)
+		return -ENOMEM;
+
+	for (i = 0; i < sec->ctx_q_num; i++) {
+		ret = sec_create_qp_ctx(&sec->qm, ctx, i, 0);
+		if (ret)
+			goto err_sec_release_qp_ctx;
+	}
+
+	return 0;
+err_sec_release_qp_ctx:
+	for (i = i - 1; i >= 0; i--)
+		sec_release_qp_ctx(ctx, &ctx->qp_ctx[i]);
+
+	kfree(ctx->qp_ctx);
+	return ret;
+}
+
+static void sec_ctx_base_uninit(struct sec_ctx *ctx)
+{
+	int i;
+
+	for (i = 0; i < ctx->sec->ctx_q_num; i++)
+		sec_release_qp_ctx(ctx, &ctx->qp_ctx[i]);
+
+	kfree(ctx->qp_ctx);
+}
+
+static int sec_cipher_init(struct sec_ctx *ctx)
+{
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+
+	c_ctx->c_key = dma_alloc_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+					  &c_ctx->c_key_dma, GFP_KERNEL);
+	if (!c_ctx->c_key)
+		return -ENOMEM;
+
+	return 0;
+}
+
+static void sec_cipher_uninit(struct sec_ctx *ctx)
+{
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+
+	memzero_explicit(c_ctx->c_key, SEC_MAX_KEY_SIZE);
+	dma_free_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+			  c_ctx->c_key, c_ctx->c_key_dma);
+}
+
+static int sec_auth_init(struct sec_ctx *ctx)
+{
+	struct sec_auth_ctx *a_ctx = &ctx->a_ctx;
+
+	a_ctx->a_key = dma_alloc_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+					  &a_ctx->a_key_dma, GFP_KERNEL);
+	if (!a_ctx->a_key)
+		return -ENOMEM;
+
+	return 0;
+}
+
+static void sec_auth_uninit(struct sec_ctx *ctx)
+{
+	struct sec_auth_ctx *a_ctx = &ctx->a_ctx;
+
+	memzero_explicit(a_ctx->a_key, SEC_MAX_KEY_SIZE);
+	dma_free_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+			  a_ctx->a_key, a_ctx->a_key_dma);
+}
+
+static int sec_skcipher_init(struct crypto_skcipher *tfm)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+	int ret;
+
+	ctx = crypto_skcipher_ctx(tfm);
+	ctx->alg_type = SEC_SKCIPHER;
+	crypto_skcipher_set_reqsize(tfm, sizeof(struct sec_req));
+	ctx->c_ctx.ivsize = crypto_skcipher_ivsize(tfm);
+	if (ctx->c_ctx.ivsize > SEC_IV_SIZE) {
+		dev_err(SEC_CTX_DEV(ctx), "get error skcipher iv size!\n");
+		return -EINVAL;
+	}
+
+	ret = sec_ctx_base_init(ctx);
+	if (ret)
+		return ret;
+
+	ret = sec_cipher_init(ctx);
+	if (ret)
+		goto err_cipher_init;
+
+	return 0;
+err_cipher_init:
+	sec_ctx_base_uninit(ctx);
+
+	return ret;
+}
+
+static void sec_skcipher_uninit(struct crypto_skcipher *tfm)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+
+	sec_cipher_uninit(ctx);
+	sec_ctx_base_uninit(ctx);
+}
+
+static int sec_skcipher_3des_setkey(struct sec_cipher_ctx *c_ctx,
+				    const u32 keylen,
+				    const enum sec_cmode c_mode)
+{
+	switch (keylen) {
+	case SEC_DES3_2KEY_SIZE:
+		c_ctx->c_key_len = SEC_CKEY_3DES_2KEY;
+		break;
+	case SEC_DES3_3KEY_SIZE:
+		c_ctx->c_key_len = SEC_CKEY_3DES_3KEY;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int sec_skcipher_aes_sm4_setkey(struct sec_cipher_ctx *c_ctx,
+				       const u32 keylen,
+				       const enum sec_cmode c_mode)
+{
+	if (c_mode == SEC_CMODE_XTS) {
+		switch (keylen) {
+		case SEC_XTS_MIN_KEY_SIZE:
+			c_ctx->c_key_len = SEC_CKEY_128BIT;
+			break;
+		case SEC_XTS_MAX_KEY_SIZE:
+			c_ctx->c_key_len = SEC_CKEY_256BIT;
+			break;
+		default:
+			pr_err("hisi_sec2: xts mode key error!\n");
+			return -EINVAL;
+		}
+	} else {
+		switch (keylen) {
+		case AES_KEYSIZE_128:
+			c_ctx->c_key_len = SEC_CKEY_128BIT;
+			break;
+		case AES_KEYSIZE_192:
+			c_ctx->c_key_len = SEC_CKEY_192BIT;
+			break;
+		case AES_KEYSIZE_256:
+			c_ctx->c_key_len = SEC_CKEY_256BIT;
+			break;
+		default:
+			pr_err("hisi_sec2: aes key error!\n");
+			return -EINVAL;
+		}
+	}
+
+	return 0;
+}
+
+static int sec_skcipher_setkey(struct crypto_skcipher *tfm, const u8 *key,
+			       const u32 keylen, const enum sec_calg c_alg,
+			       const enum sec_cmode c_mode)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+	int ret;
+
+	if (c_mode == SEC_CMODE_XTS) {
+		ret = xts_verify_key(tfm, key, keylen);
+		if (ret) {
+			dev_err(SEC_CTX_DEV(ctx), "xts mode key err!\n");
+			return ret;
+		}
+	}
+
+	c_ctx->c_alg  = c_alg;
+	c_ctx->c_mode = c_mode;
+
+	switch (c_alg) {
+	case SEC_CALG_3DES:
+		ret = sec_skcipher_3des_setkey(c_ctx, keylen, c_mode);
+		break;
+	case SEC_CALG_AES:
+	case SEC_CALG_SM4:
+		ret = sec_skcipher_aes_sm4_setkey(c_ctx, keylen, c_mode);
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	if (ret) {
+		dev_err(SEC_CTX_DEV(ctx), "set sec key err!\n");
+		return ret;
+	}
+
+	memcpy(c_ctx->c_key, key, keylen);
+
+	return 0;
+}
+
+#define GEN_SEC_SETKEY_FUNC(name, c_alg, c_mode)			\
+static int sec_setkey_##name(struct crypto_skcipher *tfm, const u8 *key,\
+	u32 keylen)							\
+{									\
+	return sec_skcipher_setkey(tfm, key, keylen, c_alg, c_mode);	\
+}
+
+GEN_SEC_SETKEY_FUNC(aes_ecb, SEC_CALG_AES, SEC_CMODE_ECB)
+GEN_SEC_SETKEY_FUNC(aes_cbc, SEC_CALG_AES, SEC_CMODE_CBC)
+GEN_SEC_SETKEY_FUNC(aes_xts, SEC_CALG_AES, SEC_CMODE_XTS)
+
+GEN_SEC_SETKEY_FUNC(3des_ecb, SEC_CALG_3DES, SEC_CMODE_ECB)
+GEN_SEC_SETKEY_FUNC(3des_cbc, SEC_CALG_3DES, SEC_CMODE_CBC)
+
+GEN_SEC_SETKEY_FUNC(sm4_xts, SEC_CALG_SM4, SEC_CMODE_XTS)
+GEN_SEC_SETKEY_FUNC(sm4_cbc, SEC_CALG_SM4, SEC_CMODE_CBC)
+
+static int sec_cipher_map(struct device *dev, struct sec_req *req,
+			  struct scatterlist *src, struct scatterlist *dst)
+{
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+
+	c_req->c_in = hisi_acc_sg_buf_map_to_hw_sgl(dev, src,
+						    qp_ctx->c_in_pool,
+						    req->req_id,
+						    &c_req->c_in_dma);
+
+	if (IS_ERR(c_req->c_in)) {
+		dev_err(dev, "fail to dma map input sgl buffers!\n");
+		return PTR_ERR(c_req->c_in);
+	}
+
+	if (dst == src) {
+		c_req->c_out = c_req->c_in;
+		c_req->c_out_dma = c_req->c_in_dma;
+	} else {
+		c_req->c_out = hisi_acc_sg_buf_map_to_hw_sgl(dev, dst,
+							     qp_ctx->c_out_pool,
+							     req->req_id,
+							     &c_req->c_out_dma);
+
+		if (IS_ERR(c_req->c_out)) {
+			dev_err(dev, "fail to dma map output sgl buffers!\n");
+			hisi_acc_sg_buf_unmap(dev, src, c_req->c_in);
+			return PTR_ERR(c_req->c_out);
+		}
+	}
+
+	return 0;
+}
+
+static void sec_cipher_unmap(struct device *dev, struct sec_cipher_req *req,
+			     struct scatterlist *src, struct scatterlist *dst)
+{
+	if (dst != src)
+		hisi_acc_sg_buf_unmap(dev, src, req->c_in);
+
+	hisi_acc_sg_buf_unmap(dev, dst, req->c_out);
+}
+
+static int sec_skcipher_sgl_map(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct skcipher_request *sq = req->c_req.sk_req;
+
+	return sec_cipher_map(SEC_CTX_DEV(ctx), req, sq->src, sq->dst);
+}
+
+static void sec_skcipher_sgl_unmap(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct skcipher_request *sk_req = c_req->sk_req;
+
+	sec_cipher_unmap(dev, c_req, sk_req->src, sk_req->dst);
+}
+
+static int sec_aead_aes_set_key(struct sec_cipher_ctx *c_ctx,
+				struct crypto_authenc_keys *keys)
+{
+	switch (keys->enckeylen) {
+	case AES_KEYSIZE_128:
+		c_ctx->c_key_len = SEC_CKEY_128BIT;
+		break;
+	case AES_KEYSIZE_192:
+		c_ctx->c_key_len = SEC_CKEY_192BIT;
+		break;
+	case AES_KEYSIZE_256:
+		c_ctx->c_key_len = SEC_CKEY_256BIT;
+		break;
+	default:
+		pr_err("hisi_sec2: aead aes key error!\n");
+		return -EINVAL;
+	}
+	memcpy(c_ctx->c_key, keys->enckey, keys->enckeylen);
+
+	return 0;
+}
+
+static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx,
+				 struct crypto_authenc_keys *keys)
+{
+	struct crypto_shash *hash_tfm = ctx->hash_tfm;
+	SHASH_DESC_ON_STACK(shash, hash_tfm);
+	int blocksize, ret;
+
+	if (!keys->authkeylen) {
+		pr_err("hisi_sec2: aead auth key error!\n");
+		return -EINVAL;
+	}
+
+	blocksize = crypto_shash_blocksize(hash_tfm);
+	if (keys->authkeylen > blocksize) {
+		ret = crypto_shash_digest(shash, keys->authkey,
+					  keys->authkeylen, ctx->a_key);
+		if (ret) {
+			pr_err("hisi_sec2: aead auth digest error!\n");
+			return -EINVAL;
+		}
+		ctx->a_key_len = blocksize;
+	} else {
+		memcpy(ctx->a_key, keys->authkey, keys->authkeylen);
+		ctx->a_key_len = keys->authkeylen;
+	}
+
+	return 0;
+}
+
+static int sec_aead_setkey(struct crypto_aead *tfm, const u8 *key,
+			   const u32 keylen, const enum sec_hash_alg a_alg,
+			   const enum sec_calg c_alg,
+			   const enum sec_mac_len mac_len,
+			   const enum sec_cmode c_mode)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+	struct crypto_authenc_keys keys;
+	int ret;
+
+	ctx->a_ctx.a_alg = a_alg;
+	ctx->c_ctx.c_alg = c_alg;
+	ctx->a_ctx.mac_len = mac_len;
+	c_ctx->c_mode = c_mode;
+
+	if (crypto_authenc_extractkeys(&keys, key, keylen))
+		goto bad_key;
+
+	ret = sec_aead_aes_set_key(c_ctx, &keys);
+	if (ret) {
+		dev_err(SEC_CTX_DEV(ctx), "set sec cipher key err!\n");
+		goto bad_key;
+	}
+
+	ret = sec_aead_auth_set_key(&ctx->a_ctx, &keys);
+	if (ret) {
+		dev_err(SEC_CTX_DEV(ctx), "set sec auth key err!\n");
+		goto bad_key;
+	}
+
+	return 0;
+bad_key:
+	memzero_explicit(&keys, sizeof(struct crypto_authenc_keys));
+
+	return -EINVAL;
+}
+
+
+#define GEN_SEC_AEAD_SETKEY_FUNC(name, aalg, calg, maclen, cmode)	\
+static int sec_setkey_##name(struct crypto_aead *tfm, const u8 *key,	\
+	u32 keylen)							\
+{									\
+	return sec_aead_setkey(tfm, key, keylen, aalg, calg, maclen, cmode);\
+}
+
+GEN_SEC_AEAD_SETKEY_FUNC(aes_cbc_sha1, SEC_A_HMAC_SHA1,
+			 SEC_CALG_AES, SEC_HMAC_SHA1_MAC, SEC_CMODE_CBC)
+GEN_SEC_AEAD_SETKEY_FUNC(aes_cbc_sha256, SEC_A_HMAC_SHA256,
+			 SEC_CALG_AES, SEC_HMAC_SHA256_MAC, SEC_CMODE_CBC)
+GEN_SEC_AEAD_SETKEY_FUNC(aes_cbc_sha512, SEC_A_HMAC_SHA512,
+			 SEC_CALG_AES, SEC_HMAC_SHA512_MAC, SEC_CMODE_CBC)
+
+static int sec_aead_sgl_map(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct aead_request *aq = req->aead_req.aead_req;
+
+	return sec_cipher_map(SEC_CTX_DEV(ctx), req, aq->src, aq->dst);
+}
+
+static void sec_aead_sgl_unmap(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_cipher_req *cq = &req->c_req;
+	struct aead_request *aq = req->aead_req.aead_req;
+
+	sec_cipher_unmap(dev, cq, aq->src, aq->dst);
+}
+
+static int sec_request_transfer(struct sec_ctx *ctx, struct sec_req *req)
+{
+	int ret;
+
+	ret = ctx->req_op->buf_map(ctx, req);
+	if (unlikely(ret))
+		return ret;
+
+	ctx->req_op->do_transfer(ctx, req);
+
+	ret = ctx->req_op->bd_fill(ctx, req);
+	if (unlikely(ret))
+		goto unmap_req_buf;
+
+	return ret;
+
+unmap_req_buf:
+	ctx->req_op->buf_unmap(ctx, req);
+
+	return ret;
+}
+
+static void sec_request_untransfer(struct sec_ctx *ctx, struct sec_req *req)
+{
+	ctx->req_op->buf_unmap(ctx, req);
+}
+
+static void sec_skcipher_copy_iv(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct skcipher_request *sk_req = req->c_req.sk_req;
+	u8 *c_ivin = req->qp_ctx->res[req->req_id].c_ivin;
+
+	memcpy(c_ivin, sk_req->iv, ctx->c_ctx.ivsize);
+}
+
+static int sec_skcipher_bd_fill(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct sec_sqe *sec_sqe = &req->sec_sqe;
+	u8 scene, sa_type, da_type;
+	u8 bd_type, cipher;
+	u8 de = 0;
+
+	memset(sec_sqe, 0, sizeof(struct sec_sqe));
+
+	sec_sqe->type2.c_key_addr = cpu_to_le64(c_ctx->c_key_dma);
+	sec_sqe->type2.c_ivin_addr =
+		cpu_to_le64(req->qp_ctx->res[req->req_id].c_ivin_dma);
+	sec_sqe->type2.data_src_addr = cpu_to_le64(c_req->c_in_dma);
+	sec_sqe->type2.data_dst_addr = cpu_to_le64(c_req->c_out_dma);
+
+	sec_sqe->type2.icvw_kmode |= cpu_to_le16(((u16)c_ctx->c_mode) <<
+						SEC_CMODE_OFFSET);
+	sec_sqe->type2.c_alg = c_ctx->c_alg;
+	sec_sqe->type2.icvw_kmode |= cpu_to_le16(((u16)c_ctx->c_key_len) <<
+						SEC_CKEY_OFFSET);
+
+	bd_type = SEC_BD_TYPE2;
+	if (c_req->encrypt)
+		cipher = SEC_CIPHER_ENC << SEC_CIPHER_OFFSET;
+	else
+		cipher = SEC_CIPHER_DEC << SEC_CIPHER_OFFSET;
+	sec_sqe->type_cipher_auth = bd_type | cipher;
+
+	sa_type = SEC_SGL << SEC_SRC_SGL_OFFSET;
+	scene = SEC_COMM_SCENE << SEC_SCENE_OFFSET;
+	if (c_req->c_in_dma != c_req->c_out_dma)
+		de = 0x1 << SEC_DE_OFFSET;
+
+	sec_sqe->sds_sa_type = (de | scene | sa_type);
+
+	/* Just set DST address type */
+	da_type = SEC_SGL << SEC_DST_SGL_OFFSET;
+	sec_sqe->sdm_addr_type |= da_type;
+
+	sec_sqe->type2.clen_ivhlen |= cpu_to_le32(c_req->c_len);
+	sec_sqe->type2.tag = cpu_to_le16((u16)req->req_id);
+
+	return 0;
+}
+
+static void sec_update_iv(struct sec_req *req, enum sec_alg_type alg_type)
+{
+	struct aead_request *aead_req = req->aead_req.aead_req;
+	struct skcipher_request *sk_req = req->c_req.sk_req;
+	u32 iv_size = req->ctx->c_ctx.ivsize;
+	struct scatterlist *sgl;
+	unsigned int cryptlen;
+	size_t sz;
+	u8 *iv;
+
+	if (req->c_req.encrypt)
+		sgl = alg_type == SEC_SKCIPHER ? sk_req->dst : aead_req->dst;
+	else
+		sgl = alg_type == SEC_SKCIPHER ? sk_req->src : aead_req->src;
+
+	if (alg_type == SEC_SKCIPHER) {
+		iv = sk_req->iv;
+		cryptlen = sk_req->cryptlen;
+	} else {
+		iv = aead_req->iv;
+		cryptlen = aead_req->cryptlen;
+	}
+
+	sz = sg_pcopy_to_buffer(sgl, sg_nents(sgl), iv, iv_size,
+				cryptlen - iv_size);
+	if (unlikely(sz != iv_size))
+		dev_err(SEC_CTX_DEV(req->ctx), "copy output iv error!\n");
+}
+
+static void sec_skcipher_callback(struct sec_ctx *ctx, struct sec_req *req,
+				  int err)
+{
+	struct skcipher_request *sk_req = req->c_req.sk_req;
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+
+	atomic_dec(&qp_ctx->pending_reqs);
+	sec_free_req_id(req);
+
+	/* IV output at encrypto of CBC mode */
+	if (!err && ctx->c_ctx.c_mode == SEC_CMODE_CBC && req->c_req.encrypt)
+		sec_update_iv(req, SEC_SKCIPHER);
+
+	if (req->fake_busy)
+		sk_req->base.complete(&sk_req->base, -EINPROGRESS);
+
+	sk_req->base.complete(&sk_req->base, err);
+}
+
+static void sec_aead_copy_iv(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct aead_request *aead_req = req->aead_req.aead_req;
+	u8 *c_ivin = req->qp_ctx->res[req->req_id].c_ivin;
+
+	memcpy(c_ivin, aead_req->iv, ctx->c_ctx.ivsize);
+}
+
+static void sec_auth_bd_fill_ex(struct sec_auth_ctx *ctx, int dir,
+			       struct sec_req *req, struct sec_sqe *sec_sqe)
+{
+	struct sec_aead_req *a_req = &req->aead_req;
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct aead_request *aq = a_req->aead_req;
+
+	sec_sqe->type2.a_key_addr = cpu_to_le64(ctx->a_key_dma);
+
+	sec_sqe->type2.mac_key_alg =
+			cpu_to_le32(ctx->mac_len / SEC_SQE_LEN_RATE);
+
+	sec_sqe->type2.mac_key_alg |=
+			cpu_to_le32((u32)((ctx->a_key_len) /
+			SEC_SQE_LEN_RATE) << SEC_AKEY_OFFSET);
+
+	sec_sqe->type2.mac_key_alg |=
+			cpu_to_le32((u32)(ctx->a_alg) << SEC_AEAD_ALG_OFFSET);
+
+	sec_sqe->type_cipher_auth |= SEC_AUTH_TYPE1 << SEC_AUTH_OFFSET;
+
+	if (dir)
+		sec_sqe->sds_sa_type &= SEC_CIPHER_AUTH;
+	else
+		sec_sqe->sds_sa_type |= SEC_AUTH_CIPHER;
+
+	sec_sqe->type2.alen_ivllen = cpu_to_le32(c_req->c_len + aq->assoclen);
+
+	sec_sqe->type2.cipher_src_offset = cpu_to_le16((u16)aq->assoclen);
+
+	sec_sqe->type2.mac_addr =
+		cpu_to_le64(req->qp_ctx->res[req->req_id].out_mac_dma);
+}
+
+static int sec_aead_bd_fill(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_auth_ctx *auth_ctx = &ctx->a_ctx;
+	struct sec_sqe *sec_sqe = &req->sec_sqe;
+	int ret;
+
+	ret = sec_skcipher_bd_fill(ctx, req);
+	if (unlikely(ret)) {
+		dev_err(SEC_CTX_DEV(ctx), "skcipher bd fill is error!\n");
+		return ret;
+	}
+
+	sec_auth_bd_fill_ex(auth_ctx, req->c_req.encrypt, req, sec_sqe);
+
+	return 0;
+}
+
+static void sec_aead_callback(struct sec_ctx *c, struct sec_req *req, int err)
+{
+	struct aead_request *a_req = req->aead_req.aead_req;
+	struct crypto_aead *tfm = crypto_aead_reqtfm(a_req);
+	struct sec_cipher_req *c_req = &req->c_req;
+	size_t authsize = crypto_aead_authsize(tfm);
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+	size_t sz;
+
+	atomic_dec(&qp_ctx->pending_reqs);
+
+	if (!err && c->c_ctx.c_mode == SEC_CMODE_CBC && c_req->encrypt)
+		sec_update_iv(req, SEC_AEAD);
+
+	/* Copy output mac */
+	if (!err && c_req->encrypt) {
+		struct scatterlist *sgl = a_req->dst;
+
+		sz = sg_pcopy_from_buffer(sgl, sg_nents(sgl),
+					  qp_ctx->res[req->req_id].out_mac,
+					  authsize, a_req->cryptlen +
+					  a_req->assoclen);
+
+		if (unlikely(sz != authsize)) {
+			dev_err(SEC_CTX_DEV(req->ctx), "copy out mac err!\n");
+			err = -EINVAL;
+		}
+	}
+
+	sec_free_req_id(req);
+
+	if (req->fake_busy)
+		a_req->base.complete(&a_req->base, -EINPROGRESS);
+
+	a_req->base.complete(&a_req->base, err);
+}
+
+static void sec_request_uninit(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+
+	atomic_dec(&qp_ctx->pending_reqs);
+	sec_free_req_id(req);
+	sec_free_queue_id(ctx, req);
+}
+
+static int sec_request_init(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx;
+	int queue_id;
+
+	/* To load balance */
+	queue_id = sec_alloc_queue_id(ctx, req);
+	qp_ctx = &ctx->qp_ctx[queue_id];
+
+	req->req_id = sec_alloc_req_id(req, qp_ctx);
+	if (unlikely(req->req_id < 0)) {
+		sec_free_queue_id(ctx, req);
+		return req->req_id;
+	}
+
+	if (ctx->fake_req_limit <= atomic_inc_return(&qp_ctx->pending_reqs))
+		req->fake_busy = true;
+	else
+		req->fake_busy = false;
+
+	return 0;
+}
+
+static int sec_process(struct sec_ctx *ctx, struct sec_req *req)
+{
+	int ret;
+
+	ret = sec_request_init(ctx, req);
+	if (unlikely(ret))
+		return ret;
+
+	ret = sec_request_transfer(ctx, req);
+	if (unlikely(ret))
+		goto err_uninit_req;
+
+	/* Output IV as decrypto */
+	if (ctx->c_ctx.c_mode == SEC_CMODE_CBC && !req->c_req.encrypt)
+		sec_update_iv(req, ctx->alg_type);
+
+	ret = ctx->req_op->bd_send(ctx, req);
+	if (unlikely(ret != -EBUSY && ret != -EINPROGRESS)) {
+		dev_err_ratelimited(SEC_CTX_DEV(ctx), "send sec request failed!\n");
+		goto err_send_req;
+	}
+
+	return ret;
+
+err_send_req:
+	/* As failing, restore the IV from user */
+	if (ctx->c_ctx.c_mode == SEC_CMODE_CBC && !req->c_req.encrypt) {
+		if (ctx->alg_type == SEC_SKCIPHER)
+			memcpy(req->c_req.sk_req->iv,
+			       req->qp_ctx->res[req->req_id].c_ivin,
+			       ctx->c_ctx.ivsize);
+		else
+			memcpy(req->aead_req.aead_req->iv,
+			       req->qp_ctx->res[req->req_id].c_ivin,
+			       ctx->c_ctx.ivsize);
+	}
+
+	sec_request_untransfer(ctx, req);
+err_uninit_req:
+	sec_request_uninit(ctx, req);
+
+	return ret;
+}
+
+static const struct sec_req_op sec_skcipher_req_ops = {
+	.buf_map	= sec_skcipher_sgl_map,
+	.buf_unmap	= sec_skcipher_sgl_unmap,
+	.do_transfer	= sec_skcipher_copy_iv,
+	.bd_fill	= sec_skcipher_bd_fill,
+	.bd_send	= sec_bd_send,
+	.callback	= sec_skcipher_callback,
+	.process	= sec_process,
+};
+
+static const struct sec_req_op sec_aead_req_ops = {
+	.buf_map	= sec_aead_sgl_map,
+	.buf_unmap	= sec_aead_sgl_unmap,
+	.do_transfer	= sec_aead_copy_iv,
+	.bd_fill	= sec_aead_bd_fill,
+	.bd_send	= sec_bd_send,
+	.callback	= sec_aead_callback,
+	.process	= sec_process,
+};
+
+static int sec_skcipher_ctx_init(struct crypto_skcipher *tfm)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+
+	ctx->req_op = &sec_skcipher_req_ops;
+
+	return sec_skcipher_init(tfm);
+}
+
+static void sec_skcipher_ctx_exit(struct crypto_skcipher *tfm)
+{
+	sec_skcipher_uninit(tfm);
+}
+
+static int sec_aead_init(struct crypto_aead *tfm)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	int ret;
+
+	crypto_aead_set_reqsize(tfm, sizeof(struct sec_req));
+	ctx->alg_type = SEC_AEAD;
+	ctx->c_ctx.ivsize = crypto_aead_ivsize(tfm);
+	if (ctx->c_ctx.ivsize > SEC_IV_SIZE) {
+		dev_err(SEC_CTX_DEV(ctx), "get error aead iv size!\n");
+		return -EINVAL;
+	}
+
+	ctx->req_op = &sec_aead_req_ops;
+	ret = sec_ctx_base_init(ctx);
+	if (ret)
+		return ret;
+
+	ret = sec_auth_init(ctx);
+	if (ret)
+		goto err_auth_init;
+
+	ret = sec_cipher_init(ctx);
+	if (ret)
+		goto err_cipher_init;
+
+	return ret;
+
+err_cipher_init:
+	sec_auth_uninit(ctx);
+err_auth_init:
+	sec_ctx_base_uninit(ctx);
+
+	return ret;
+}
+
+static void sec_aead_exit(struct crypto_aead *tfm)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+
+	sec_cipher_uninit(ctx);
+	sec_auth_uninit(ctx);
+	sec_ctx_base_uninit(ctx);
+}
+
+static int sec_aead_ctx_init(struct crypto_aead *tfm, const char *hash_name)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	struct sec_auth_ctx *auth_ctx = &ctx->a_ctx;
+	int ret;
+
+	ret = sec_aead_init(tfm);
+	if (ret) {
+		pr_err("hisi_sec2: aead init error!\n");
+		return ret;
+	}
+
+	auth_ctx->hash_tfm = crypto_alloc_shash(hash_name, 0, 0);
+	if (IS_ERR(auth_ctx->hash_tfm)) {
+		dev_err(SEC_CTX_DEV(ctx), "aead alloc shash error!\n");
+		sec_aead_exit(tfm);
+		return PTR_ERR(auth_ctx->hash_tfm);
+	}
+
+	return 0;
+}
+
+static void sec_aead_ctx_exit(struct crypto_aead *tfm)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+
+	crypto_free_shash(ctx->a_ctx.hash_tfm);
+	sec_aead_exit(tfm);
+}
+
+static int sec_aead_sha1_ctx_init(struct crypto_aead *tfm)
+{
+	return sec_aead_ctx_init(tfm, "sha1");
+}
+
+static int sec_aead_sha256_ctx_init(struct crypto_aead *tfm)
+{
+	return sec_aead_ctx_init(tfm, "sha256");
+}
+
+static int sec_aead_sha512_ctx_init(struct crypto_aead *tfm)
+{
+	return sec_aead_ctx_init(tfm, "sha512");
+}
+
+static int sec_skcipher_param_check(struct sec_ctx *ctx, struct sec_req *sreq)
+{
+	struct skcipher_request *sk_req = sreq->c_req.sk_req;
+	struct device *dev = SEC_CTX_DEV(ctx);
+	u8 c_alg = ctx->c_ctx.c_alg;
+
+	if (unlikely(!sk_req->src || !sk_req->dst)) {
+		dev_err(dev, "skcipher input param error!\n");
+		return -EINVAL;
+	}
+	sreq->c_req.c_len = sk_req->cryptlen;
+	if (c_alg == SEC_CALG_3DES) {
+		if (unlikely(sk_req->cryptlen & (DES3_EDE_BLOCK_SIZE - 1))) {
+			dev_err(dev, "skcipher 3des input length error!\n");
+			return -EINVAL;
+		}
+		return 0;
+	} else if (c_alg == SEC_CALG_AES || c_alg == SEC_CALG_SM4) {
+		if (unlikely(sk_req->cryptlen & (AES_BLOCK_SIZE - 1))) {
+			dev_err(dev, "skcipher aes input length error!\n");
+			return -EINVAL;
+		}
+		return 0;
+	}
+
+	dev_err(dev, "skcipher algorithm error!\n");
+	return -EINVAL;
+}
+
+static int sec_skcipher_crypto(struct skcipher_request *sk_req, bool encrypt)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(sk_req);
+	struct sec_req *req = skcipher_request_ctx(sk_req);
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+	int ret;
+
+	if (!sk_req->cryptlen)
+		return 0;
+
+	req->c_req.sk_req = sk_req;
+	req->c_req.encrypt = encrypt;
+	req->ctx = ctx;
+
+	ret = sec_skcipher_param_check(ctx, req);
+	if (unlikely(ret))
+		return -EINVAL;
+
+	return ctx->req_op->process(ctx, req);
+}
+
+static int sec_skcipher_encrypt(struct skcipher_request *sk_req)
+{
+	return sec_skcipher_crypto(sk_req, true);
+}
+
+static int sec_skcipher_decrypt(struct skcipher_request *sk_req)
+{
+	return sec_skcipher_crypto(sk_req, false);
+}
+
+#define SEC_SKCIPHER_GEN_ALG(sec_cra_name, sec_set_key, sec_min_key_size, \
+	sec_max_key_size, ctx_init, ctx_exit, blk_size, iv_size)\
+{\
+	.base = {\
+		.cra_name = sec_cra_name,\
+		.cra_driver_name = "hisi_sec_"sec_cra_name,\
+		.cra_priority = SEC_PRIORITY,\
+		.cra_flags = CRYPTO_ALG_ASYNC,\
+		.cra_blocksize = blk_size,\
+		.cra_ctxsize = sizeof(struct sec_ctx),\
+		.cra_module = THIS_MODULE,\
+	},\
+	.init = ctx_init,\
+	.exit = ctx_exit,\
+	.setkey = sec_set_key,\
+	.decrypt = sec_skcipher_decrypt,\
+	.encrypt = sec_skcipher_encrypt,\
+	.min_keysize = sec_min_key_size,\
+	.max_keysize = sec_max_key_size,\
+	.ivsize = iv_size,\
+},
+
+#define SEC_SKCIPHER_ALG(name, key_func, min_key_size, \
+	max_key_size, blk_size, iv_size) \
+	SEC_SKCIPHER_GEN_ALG(name, key_func, min_key_size, max_key_size, \
+	sec_skcipher_ctx_init, sec_skcipher_ctx_exit, blk_size, iv_size)
+
+static struct skcipher_alg sec_skciphers[] = {
+	SEC_SKCIPHER_ALG("ecb(aes)", sec_setkey_aes_ecb,
+			 AES_MIN_KEY_SIZE, AES_MAX_KEY_SIZE,
+			 AES_BLOCK_SIZE, 0)
+
+	SEC_SKCIPHER_ALG("cbc(aes)", sec_setkey_aes_cbc,
+			 AES_MIN_KEY_SIZE, AES_MAX_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("xts(aes)", sec_setkey_aes_xts,
+			 SEC_XTS_MIN_KEY_SIZE, SEC_XTS_MAX_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("ecb(des3_ede)", sec_setkey_3des_ecb,
+			 SEC_DES3_2KEY_SIZE, SEC_DES3_3KEY_SIZE,
+			 DES3_EDE_BLOCK_SIZE, 0)
+
+	SEC_SKCIPHER_ALG("cbc(des3_ede)", sec_setkey_3des_cbc,
+			 SEC_DES3_2KEY_SIZE, SEC_DES3_3KEY_SIZE,
+			 DES3_EDE_BLOCK_SIZE, DES3_EDE_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("xts(sm4)", sec_setkey_sm4_xts,
+			 SEC_XTS_MIN_KEY_SIZE, SEC_XTS_MIN_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("cbc(sm4)", sec_setkey_sm4_cbc,
+			 AES_MIN_KEY_SIZE, AES_MIN_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+};
+
+static int sec_aead_param_check(struct sec_ctx *ctx, struct sec_req *sreq)
+{
+	u8 c_alg = ctx->c_ctx.c_alg;
+	struct aead_request *req = sreq->aead_req.aead_req;
+	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
+	size_t authsize = crypto_aead_authsize(tfm);
+
+	if (unlikely(!req->src || !req->dst || !req->cryptlen)) {
+		dev_err(SEC_CTX_DEV(ctx), "aead input param error!\n");
+		return -EINVAL;
+	}
+
+	/* Support AES only */
+	if (unlikely(c_alg != SEC_CALG_AES)) {
+		dev_err(SEC_CTX_DEV(ctx), "aead crypto alg error!\n");
+		return -EINVAL;
+
+	}
+	if (sreq->c_req.encrypt)
+		sreq->c_req.c_len = req->cryptlen;
+	else
+		sreq->c_req.c_len = req->cryptlen - authsize;
+
+	if (unlikely(sreq->c_req.c_len & (AES_BLOCK_SIZE - 1))) {
+		dev_err(SEC_CTX_DEV(ctx), "aead crypto length error!\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int sec_aead_crypto(struct aead_request *a_req, bool encrypt)
+{
+	struct crypto_aead *tfm = crypto_aead_reqtfm(a_req);
+	struct sec_req *req = aead_request_ctx(a_req);
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	int ret;
+
+	req->aead_req.aead_req = a_req;
+	req->c_req.encrypt = encrypt;
+	req->ctx = ctx;
+
+	ret = sec_aead_param_check(ctx, req);
+	if (unlikely(ret))
+		return -EINVAL;
+
+	return ctx->req_op->process(ctx, req);
+}
+
+static int sec_aead_encrypt(struct aead_request *a_req)
+{
+	return sec_aead_crypto(a_req, true);
+}
+
+static int sec_aead_decrypt(struct aead_request *a_req)
+{
+	return sec_aead_crypto(a_req, false);
+}
+
+#define SEC_AEAD_GEN_ALG(sec_cra_name, sec_set_key, ctx_init,\
+			 ctx_exit, blk_size, iv_size, max_authsize)\
+{\
+	.base = {\
+		.cra_name = sec_cra_name,\
+		.cra_driver_name = "hisi_sec_"sec_cra_name,\
+		.cra_priority = SEC_PRIORITY,\
+		.cra_flags = CRYPTO_ALG_ASYNC,\
+		.cra_blocksize = blk_size,\
+		.cra_ctxsize = sizeof(struct sec_ctx),\
+		.cra_module = THIS_MODULE,\
+	},\
+	.init = ctx_init,\
+	.exit = ctx_exit,\
+	.setkey = sec_set_key,\
+	.decrypt = sec_aead_decrypt,\
+	.encrypt = sec_aead_encrypt,\
+	.ivsize = iv_size,\
+	.maxauthsize = max_authsize,\
+}
+
+#define SEC_AEAD_ALG(algname, keyfunc, aead_init, blksize, ivsize, authsize)\
+	SEC_AEAD_GEN_ALG(algname, keyfunc, aead_init,\
+			sec_aead_ctx_exit, blksize, ivsize, authsize)
+
+static struct aead_alg sec_aeads[] = {
+	SEC_AEAD_ALG("authenc(hmac(sha1),cbc(aes))",
+		     sec_setkey_aes_cbc_sha1, sec_aead_sha1_ctx_init,
+		     AES_BLOCK_SIZE, AES_BLOCK_SIZE, SHA1_DIGEST_SIZE),
+
+	SEC_AEAD_ALG("authenc(hmac(sha256),cbc(aes))",
+		     sec_setkey_aes_cbc_sha256, sec_aead_sha256_ctx_init,
+		     AES_BLOCK_SIZE, AES_BLOCK_SIZE, SHA256_DIGEST_SIZE),
+
+	SEC_AEAD_ALG("authenc(hmac(sha512),cbc(aes))",
+		     sec_setkey_aes_cbc_sha512, sec_aead_sha512_ctx_init,
+		     AES_BLOCK_SIZE, AES_BLOCK_SIZE, SHA512_DIGEST_SIZE),
+};
+
+int sec_register_to_crypto(void)
+{
+	int ret = 0;
+
+	/* To avoid repeat register */
+	if (atomic_add_return(1, &sec_active_devs) == 1) {
+		ret = crypto_register_skciphers(sec_skciphers,
+						ARRAY_SIZE(sec_skciphers));
+		if (ret)
+			return ret;
+
+		ret = crypto_register_aeads(sec_aeads, ARRAY_SIZE(sec_aeads));
+		if (ret)
+			goto reg_aead_fail;
+	}
+
+	return ret;
+
+reg_aead_fail:
+	crypto_unregister_skciphers(sec_skciphers, ARRAY_SIZE(sec_skciphers));
+
+	return ret;
+}
+
+void sec_unregister_from_crypto(void)
+{
+	if (atomic_sub_return(1, &sec_active_devs) == 0) {
+		crypto_unregister_skciphers(sec_skciphers,
+					    ARRAY_SIZE(sec_skciphers));
+		crypto_unregister_aeads(sec_aeads, ARRAY_SIZE(sec_aeads));
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec_crypto.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sec2/sec_crypto.h
@@ -0,0 +1,216 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#ifndef __HISI_SEC_V2_CRYPTO_H
+#define __HISI_SEC_V2_CRYPTO_H
+
+#define SEC_IV_SIZE		24
+#define SEC_MAX_KEY_SIZE	64
+#define SEC_COMM_SCENE		0
+
+enum sec_calg {
+	SEC_CALG_3DES = 0x1,
+	SEC_CALG_AES  = 0x2,
+	SEC_CALG_SM4  = 0x3,
+};
+
+enum sec_hash_alg {
+	SEC_A_HMAC_SHA1   = 0x10,
+	SEC_A_HMAC_SHA256 = 0x11,
+	SEC_A_HMAC_SHA512 = 0x15,
+};
+
+enum sec_mac_len {
+	SEC_HMAC_SHA1_MAC   = 20,
+	SEC_HMAC_SHA256_MAC = 32,
+	SEC_HMAC_SHA512_MAC = 64,
+};
+
+enum sec_cmode {
+	SEC_CMODE_ECB    = 0x0,
+	SEC_CMODE_CBC    = 0x1,
+	SEC_CMODE_CTR    = 0x4,
+	SEC_CMODE_XTS    = 0x7,
+};
+
+enum sec_ckey_type {
+	SEC_CKEY_128BIT = 0x0,
+	SEC_CKEY_192BIT = 0x1,
+	SEC_CKEY_256BIT = 0x2,
+	SEC_CKEY_3DES_3KEY = 0x1,
+	SEC_CKEY_3DES_2KEY = 0x3,
+};
+
+enum sec_bd_type {
+	SEC_BD_TYPE1 = 0x1,
+	SEC_BD_TYPE2 = 0x2,
+};
+
+enum sec_auth {
+	SEC_NO_AUTH = 0x0,
+	SEC_AUTH_TYPE1 = 0x1,
+	SEC_AUTH_TYPE2 = 0x2,
+};
+
+enum sec_cipher_dir {
+	SEC_CIPHER_ENC = 0x1,
+	SEC_CIPHER_DEC = 0x2,
+};
+
+enum sec_addr_type {
+	SEC_PBUF = 0x0,
+	SEC_SGL  = 0x1,
+	SEC_PRP  = 0x2,
+};
+
+struct sec_sqe_type2 {
+
+	/*
+	 * mac_len: 0~4 bits
+	 * a_key_len: 5~10 bits
+	 * a_alg: 11~16 bits
+	 */
+	__le32 mac_key_alg;
+
+	/*
+	 * c_icv_len: 0~5 bits
+	 * c_width: 6~8 bits
+	 * c_key_len: 9~11 bits
+	 * c_mode: 12~15 bits
+	 */
+	__le16 icvw_kmode;
+
+	/* c_alg: 0~3 bits */
+	__u8 c_alg;
+	__u8 rsvd4;
+
+	/*
+	 * a_len: 0~23 bits
+	 * iv_offset_l: 24~31 bits
+	 */
+	__le32 alen_ivllen;
+
+	/*
+	 * c_len: 0~23 bits
+	 * iv_offset_h: 24~31 bits
+	 */
+	__le32 clen_ivhlen;
+
+	__le16 auth_src_offset;
+	__le16 cipher_src_offset;
+	__le16 cs_ip_header_offset;
+	__le16 cs_udp_header_offset;
+	__le16 pass_word_len;
+	__le16 dk_len;
+	__u8 salt3;
+	__u8 salt2;
+	__u8 salt1;
+	__u8 salt0;
+
+	__le16 tag;
+	__le16 rsvd5;
+
+	/*
+	 * c_pad_type: 0~3 bits
+	 * c_pad_len: 4~11 bits
+	 * c_pad_data_type: 12~15 bits
+	 */
+	__le16 cph_pad;
+
+	/* c_pad_len_field: 0~1 bits */
+	__le16 c_pad_len_field;
+
+
+	__le64 long_a_data_len;
+	__le64 a_ivin_addr;
+	__le64 a_key_addr;
+	__le64 mac_addr;
+	__le64 c_ivin_addr;
+	__le64 c_key_addr;
+
+	__le64 data_src_addr;
+	__le64 data_dst_addr;
+
+	/*
+	 * done: 0 bit
+	 * icv: 1~3 bits
+	 * csc: 4~6 bits
+	 * flag: 7-10 bits
+	 * dif_check: 11~13 bits
+	 */
+	__le16 done_flag;
+
+	__u8 error_type;
+	__u8 warning_type;
+	__u8 mac_i3;
+	__u8 mac_i2;
+	__u8 mac_i1;
+	__u8 mac_i0;
+	__le16 check_sum_i;
+	__u8 tls_pad_len_i;
+	__u8 rsvd12;
+	__le32 counter;
+};
+
+struct sec_sqe {
+	/*
+	 * type:	0~3 bits
+	 * cipher:	4~5 bits
+	 * auth:	6~7 bit s
+	 */
+	__u8 type_cipher_auth;
+
+	/*
+	 * seq:	0 bit
+	 * de:	1~2 bits
+	 * scene:	3~6 bits
+	 * src_addr_type: ~7 bit, with sdm_addr_type 0-1 bits
+	 */
+	__u8 sds_sa_type;
+
+	/*
+	 * src_addr_type: 0~1 bits, not used now,
+	 * if support PRP, set this field, or set zero.
+	 * dst_addr_type: 2~4 bits
+	 * mac_addr_type: 5~7 bits
+	 */
+	__u8 sdm_addr_type;
+	__u8 rsvd0;
+
+	/*
+	 * nonce_len(type2): 0~3 bits
+	 * huk(type2): 4 bit
+	 * key_s(type2): 5 bit
+	 * ci_gen: 6~7 bits
+	 */
+	__u8 huk_key_ci;
+
+	/*
+	 * ai_gen: 0~1 bits
+	 * a_pad(type2): 2~3 bits
+	 * c_s(type2): 4~5 bits
+	 */
+	__u8 ai_apd_cs;
+
+	/*
+	 * rhf(type2): 0 bit
+	 * c_key_type: 1~2 bits
+	 * a_key_type: 3~4 bits
+	 * write_frame_len(type2): 5~7 bits
+	 */
+	__u8 rca_key_frm;
+
+	/*
+	 * cal_iv_addr_en(type2): 0 bit
+	 * tls_up(type2): 1 bit
+	 * inveld: 7 bit
+	 */
+	__u8 iv_tls_ld;
+
+	/* Just using type2 BD now */
+	struct sec_sqe_type2 type2;
+};
+
+int sec_register_to_crypto(void);
+void sec_unregister_from_crypto(void);
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sec2/sec_main.c
@@ -0,0 +1,1106 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#include <linux/acpi.h>
+#include <linux/aer.h>
+#include <linux/bitops.h>
+#include <linux/debugfs.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+#include <linux/seq_file.h>
+#include <linux/topology.h>
+
+#include "sec.h"
+
+#define SEC_VF_NUM			63
+#define SEC_QUEUE_NUM_V1		4096
+#define SEC_QUEUE_NUM_V2		1024
+#define SEC_PF_PCI_DEVICE_ID		0xa255
+#define SEC_VF_PCI_DEVICE_ID		0xa256
+
+#define SEC_XTS_MIV_ENABLE_REG		0x301384
+#define SEC_XTS_MIV_ENABLE_MSK		0x7FFFFFFF
+#define SEC_XTS_MIV_DISABLE_MSK		0xFFFFFFFF
+#define SEC_BD_ERR_CHK_EN1		0xfffff7fd
+#define SEC_BD_ERR_CHK_EN2		0xffffbfff
+
+#define SEC_SQE_SIZE			128
+#define SEC_SQ_SIZE			(SEC_SQE_SIZE * QM_Q_DEPTH)
+#define SEC_PF_DEF_Q_NUM		256
+#define SEC_PF_DEF_Q_BASE		0
+#define SEC_CTX_Q_NUM_DEF		2
+#define SEC_CTX_Q_NUM_MAX		32
+
+#define SEC_CTRL_CNT_CLR_CE		0x301120
+#define SEC_CTRL_CNT_CLR_CE_BIT		BIT(0)
+#define SEC_ENGINE_PF_CFG_OFF		0x300000
+#define SEC_ACC_COMMON_REG_OFF		0x1000
+#define SEC_CORE_INT_SOURCE		0x301010
+#define SEC_CORE_INT_MASK		0x301000
+#define SEC_CORE_INT_STATUS		0x301008
+#define SEC_CORE_SRAM_ECC_ERR_INFO	0x301C14
+#define SEC_ECC_NUM(err)			(((err) >> 16) & 0xFF)
+#define SEC_ECC_ADDR(err)			((err) >> 0)
+#define SEC_CORE_INT_DISABLE		0x0
+#define SEC_CORE_INT_ENABLE		0x1ff
+
+#define SEC_RAS_CE_REG			0x50
+#define SEC_RAS_FE_REG			0x54
+#define SEC_RAS_NFE_REG			0x58
+#define SEC_RAS_CE_ENB_MSK		0x88
+#define SEC_RAS_FE_ENB_MSK		0x0
+#define SEC_RAS_NFE_ENB_MSK		0x177
+#define SEC_RAS_DISABLE			0x0
+#define SEC_MEM_START_INIT_REG		0x0100
+#define SEC_MEM_INIT_DONE_REG		0x0104
+#define SEC_QM_ABNORMAL_INT_MASK	0x100004
+
+#define SEC_CONTROL_REG			0x0200
+#define SEC_TRNG_EN_SHIFT		8
+#define SEC_CLK_GATE_ENABLE		BIT(3)
+#define SEC_CLK_GATE_DISABLE		(~BIT(3))
+#define SEC_AXI_SHUTDOWN_ENABLE	BIT(12)
+#define SEC_AXI_SHUTDOWN_DISABLE	0xFFFFEFFF
+
+#define SEC_INTERFACE_USER_CTRL0_REG	0x0220
+#define SEC_INTERFACE_USER_CTRL1_REG	0x0224
+#define SEC_BD_ERR_CHK_EN_REG1		0x0384
+#define SEC_BD_ERR_CHK_EN_REG2		0x038c
+
+#define SEC_USER0_SMMU_NORMAL		(BIT(23) | BIT(15))
+#define SEC_USER1_SMMU_NORMAL		(BIT(31) | BIT(23) | BIT(15) | BIT(7))
+#define SEC_CORE_INT_STATUS_M_ECC	BIT(2)
+
+#define SEC_DELAY_10_US			10
+#define SEC_POLL_TIMEOUT_US		1000
+#define SEC_VF_CNT_MASK			0xffffffc0
+#define SEC_DBGFS_VAL_MAX_LEN		20
+
+#define SEC_ADDR(qm, offset) ((qm)->io_base + (offset) + \
+			     SEC_ENGINE_PF_CFG_OFF + SEC_ACC_COMMON_REG_OFF)
+
+struct sec_hw_error {
+	u32 int_msk;
+	const char *msg;
+};
+
+static const char sec_name[] = "hisi_sec2";
+static struct dentry *sec_debugfs_root;
+static LIST_HEAD(sec_list);
+static DEFINE_MUTEX(sec_list_lock);
+
+static const struct sec_hw_error sec_hw_errors[] = {
+	{.int_msk = BIT(0), .msg = "sec_axi_rresp_err_rint"},
+	{.int_msk = BIT(1), .msg = "sec_axi_bresp_err_rint"},
+	{.int_msk = BIT(2), .msg = "sec_ecc_2bit_err_rint"},
+	{.int_msk = BIT(3), .msg = "sec_ecc_1bit_err_rint"},
+	{.int_msk = BIT(4), .msg = "sec_req_trng_timeout_rint"},
+	{.int_msk = BIT(5), .msg = "sec_fsm_hbeat_rint"},
+	{.int_msk = BIT(6), .msg = "sec_channel_req_rng_timeout_rint"},
+	{.int_msk = BIT(7), .msg = "sec_bd_err_rint"},
+	{.int_msk = BIT(8), .msg = "sec_chain_buff_err_rint"},
+	{ /* sentinel */ }
+};
+
+struct sec_dev *sec_find_device(int node)
+{
+#define SEC_NUMA_MAX_DISTANCE	100
+	int min_distance = SEC_NUMA_MAX_DISTANCE;
+	int dev_node = 0, free_qp_num = 0;
+	struct sec_dev *sec, *ret = NULL;
+	struct hisi_qm *qm;
+	struct device *dev;
+
+	mutex_lock(&sec_list_lock);
+	list_for_each_entry(sec, &sec_list, list) {
+		qm = &sec->qm;
+		dev = &qm->pdev->dev;
+#ifdef CONFIG_NUMA
+		dev_node = dev->numa_node;
+		if (dev_node < 0)
+			dev_node = 0;
+#endif
+		if (node_distance(dev_node, node) < min_distance) {
+			free_qp_num = hisi_qm_get_free_qp_num(qm);
+			if (free_qp_num >= sec->ctx_q_num) {
+				ret = sec;
+				min_distance = node_distance(dev_node, node);
+			}
+		}
+	}
+	mutex_unlock(&sec_list_lock);
+
+	return ret;
+}
+
+static const char * const sec_dbg_file_name[] = {
+	[SEC_CURRENT_QM] = "current_qm",
+	[SEC_CLEAR_ENABLE] = "clear_enable",
+};
+
+static struct debugfs_reg32 sec_dfx_regs[] = {
+	{"SEC_PF_ABNORMAL_INT_SOURCE    ",  0x301010},
+	{"SEC_SAA_EN                    ",  0x301270},
+	{"SEC_BD_LATENCY_MIN            ",  0x301600},
+	{"SEC_BD_LATENCY_MAX            ",  0x301608},
+	{"SEC_BD_LATENCY_AVG            ",  0x30160C},
+	{"SEC_BD_NUM_IN_SAA0            ",  0x301670},
+	{"SEC_BD_NUM_IN_SAA1            ",  0x301674},
+	{"SEC_BD_NUM_IN_SEC             ",  0x301680},
+	{"SEC_ECC_1BIT_CNT              ",  0x301C00},
+	{"SEC_ECC_1BIT_INFO             ",  0x301C04},
+	{"SEC_ECC_2BIT_CNT              ",  0x301C10},
+	{"SEC_ECC_2BIT_INFO             ",  0x301C14},
+	{"SEC_BD_SAA0                   ",  0x301C20},
+	{"SEC_BD_SAA1                   ",  0x301C24},
+	{"SEC_BD_SAA2                   ",  0x301C28},
+	{"SEC_BD_SAA3                   ",  0x301C2C},
+	{"SEC_BD_SAA4                   ",  0x301C30},
+	{"SEC_BD_SAA5                   ",  0x301C34},
+	{"SEC_BD_SAA6                   ",  0x301C38},
+	{"SEC_BD_SAA7                   ",  0x301C3C},
+	{"SEC_BD_SAA8                   ",  0x301C40},
+};
+
+static int sec_pf_q_num_set(const char *val, const struct kernel_param *kp)
+{
+	struct pci_dev *pdev;
+	u32 n, q_num;
+	u8 rev_id;
+	int ret;
+
+	if (!val)
+		return -EINVAL;
+
+	pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI,
+			      SEC_PF_PCI_DEVICE_ID, NULL);
+	if (!pdev) {
+		q_num = min_t(u32, SEC_QUEUE_NUM_V1, SEC_QUEUE_NUM_V2);
+		pr_info("No device, suppose queue number is %d!\n", q_num);
+	} else {
+		rev_id = pdev->revision;
+
+		switch (rev_id) {
+		case QM_HW_V1:
+			q_num = SEC_QUEUE_NUM_V1;
+			break;
+		case QM_HW_V2:
+			q_num = SEC_QUEUE_NUM_V2;
+			break;
+		default:
+			return -EINVAL;
+		}
+	}
+
+	ret = kstrtou32(val, 10, &n);
+	if (ret || !n || n > q_num)
+		return -EINVAL;
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops sec_pf_q_num_ops = {
+	.set = sec_pf_q_num_set,
+	.get = param_get_int,
+};
+static u32 pf_q_num = SEC_PF_DEF_Q_NUM;
+module_param_cb(pf_q_num, &sec_pf_q_num_ops, &pf_q_num, 0444);
+MODULE_PARM_DESC(pf_q_num, "Number of queues in PF(v1 0-4096, v2 0-1024)");
+
+static int sec_ctx_q_num_set(const char *val, const struct kernel_param *kp)
+{
+	u32 ctx_q_num;
+	int ret;
+
+	if (!val)
+		return -EINVAL;
+
+	ret = kstrtou32(val, 10, &ctx_q_num);
+	if (ret)
+		return -EINVAL;
+
+	if (!ctx_q_num || ctx_q_num > SEC_CTX_Q_NUM_MAX || ctx_q_num & 0x1) {
+		pr_err("ctx queue num[%u] is invalid!\n", ctx_q_num);
+		return -EINVAL;
+	}
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops sec_ctx_q_num_ops = {
+	.set = sec_ctx_q_num_set,
+	.get = param_get_int,
+};
+static u32 ctx_q_num = SEC_CTX_Q_NUM_DEF;
+module_param_cb(ctx_q_num, &sec_ctx_q_num_ops, &ctx_q_num, 0444);
+MODULE_PARM_DESC(ctx_q_num, "Queue num in ctx (2 default, 2, 4, ..., 32)");
+
+static const struct pci_device_id sec_dev_ids[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, SEC_PF_PCI_DEVICE_ID) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, SEC_VF_PCI_DEVICE_ID) },
+	{ 0, }
+};
+MODULE_DEVICE_TABLE(pci, sec_dev_ids);
+
+static inline void sec_add_to_list(struct sec_dev *sec)
+{
+	mutex_lock(&sec_list_lock);
+	list_add_tail(&sec->list, &sec_list);
+	mutex_unlock(&sec_list_lock);
+}
+
+static inline void sec_remove_from_list(struct sec_dev *sec)
+{
+	mutex_lock(&sec_list_lock);
+	list_del(&sec->list);
+	mutex_unlock(&sec_list_lock);
+}
+
+static u8 sec_get_endian(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 reg;
+
+	/*
+	 * As for VF, it is a wrong way to get endian setting by
+	 * reading a register of the engine
+	 */
+	if (qm->pdev->is_virtfn) {
+		dev_err_ratelimited(&qm->pdev->dev,
+				    "cannot access a register in VF!\n");
+		return SEC_LE;
+	}
+	reg = readl_relaxed(qm->io_base + SEC_ENGINE_PF_CFG_OFF +
+			    SEC_ACC_COMMON_REG_OFF + SEC_CONTROL_REG);
+
+	/* BD little endian mode */
+	if (!(reg & BIT(0)))
+		return SEC_LE;
+
+	/* BD 32-bits big endian mode */
+	else if (!(reg & BIT(1)))
+		return SEC_32BE;
+
+	/* BD 64-bits big endian mode */
+	else
+		return SEC_64BE;
+}
+
+static int sec_engine_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	int ret;
+	u32 reg;
+
+	/* disable clock gate control */
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg &= SEC_CLK_GATE_DISABLE;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	writel_relaxed(0x1, SEC_ADDR(qm, SEC_MEM_START_INIT_REG));
+
+	ret = readl_relaxed_poll_timeout(SEC_ADDR(qm, SEC_MEM_INIT_DONE_REG),
+					 reg, reg & 0x1, SEC_DELAY_10_US,
+					 SEC_POLL_TIMEOUT_US);
+	if (ret) {
+		dev_err(&qm->pdev->dev, "fail to init sec mem\n");
+		return ret;
+	}
+
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg |= (0x1 << SEC_TRNG_EN_SHIFT);
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL0_REG));
+	reg |= SEC_USER0_SMMU_NORMAL;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL0_REG));
+
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL1_REG));
+	reg |= SEC_USER1_SMMU_NORMAL;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL1_REG));
+
+	writel_relaxed(SEC_BD_ERR_CHK_EN1,
+		       SEC_ADDR(qm, SEC_BD_ERR_CHK_EN_REG1));
+	writel_relaxed(SEC_BD_ERR_CHK_EN2,
+		       SEC_ADDR(qm, SEC_BD_ERR_CHK_EN_REG2));
+
+	/* enable clock gate control */
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg |= SEC_CLK_GATE_ENABLE;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	/* config endian */
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg |= sec_get_endian(sec);
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	/* Enable sm4 xts mode multiple iv */
+	writel_relaxed(SEC_XTS_MIV_ENABLE_MSK,
+		       qm->io_base + SEC_XTS_MIV_ENABLE_REG);
+
+	return 0;
+}
+
+static int sec_set_user_domain_and_cache(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+
+	/* qm user domain */
+	writel(AXUSER_BASE, qm->io_base + QM_ARUSER_M_CFG_1);
+	writel(ARUSER_M_CFG_ENABLE, qm->io_base + QM_ARUSER_M_CFG_ENABLE);
+	writel(AXUSER_BASE, qm->io_base + QM_AWUSER_M_CFG_1);
+	writel(AWUSER_M_CFG_ENABLE, qm->io_base + QM_AWUSER_M_CFG_ENABLE);
+	writel(WUSER_M_CFG_ENABLE, qm->io_base + QM_WUSER_M_CFG_ENABLE);
+
+	/* qm cache */
+	writel(AXI_M_CFG, qm->io_base + QM_AXI_M_CFG);
+	writel(AXI_M_CFG_ENABLE, qm->io_base + QM_AXI_M_CFG_ENABLE);
+
+	/* disable FLR triggered by BME(bus master enable) */
+	writel(PEH_AXUSER_CFG, qm->io_base + QM_PEH_AXUSER_CFG);
+	writel(PEH_AXUSER_CFG_ENABLE, qm->io_base + QM_PEH_AXUSER_CFG_ENABLE);
+
+	/* enable sqc,cqc writeback */
+	writel(SQC_CACHE_ENABLE | CQC_CACHE_ENABLE | SQC_CACHE_WB_ENABLE |
+	       CQC_CACHE_WB_ENABLE | FIELD_PREP(SQC_CACHE_WB_THRD, 1) |
+	       FIELD_PREP(CQC_CACHE_WB_THRD, 1), qm->io_base + QM_CACHE_CTL);
+
+	return sec_engine_init(sec);
+}
+
+/* sec_debug_regs_clear() - clear the sec debug regs */
+static void sec_debug_regs_clear(struct hisi_qm *qm)
+{
+	/* clear current_qm */
+	writel(0x0, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(0x0, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	/* clear rdclr_en */
+	writel(0x0, qm->io_base + SEC_CTRL_CNT_CLR_CE);
+
+	hisi_qm_debug_regs_clear(qm);
+}
+
+static void sec_hw_error_enable(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 val;
+
+	if (qm->ver == QM_HW_V1) {
+		writel(SEC_CORE_INT_DISABLE, qm->io_base + SEC_CORE_INT_MASK);
+		dev_info(&qm->pdev->dev, "V1 not support hw error handle\n");
+		return;
+	}
+
+	val = readl(qm->io_base + SEC_CONTROL_REG);
+
+	/* clear SEC hw error source if having */
+	writel(SEC_CORE_INT_DISABLE, qm->io_base + SEC_CORE_INT_SOURCE);
+
+	/* enable SEC hw error interrupts */
+	writel(SEC_CORE_INT_ENABLE, qm->io_base + SEC_CORE_INT_MASK);
+
+	/* enable RAS int */
+	writel(SEC_RAS_CE_ENB_MSK, qm->io_base + SEC_RAS_CE_REG);
+	writel(SEC_RAS_FE_ENB_MSK, qm->io_base + SEC_RAS_FE_REG);
+	writel(SEC_RAS_NFE_ENB_MSK, qm->io_base + SEC_RAS_NFE_REG);
+
+	/* enable SEC block master OOO when m-bit error occur */
+	val = val | SEC_AXI_SHUTDOWN_ENABLE;
+
+	writel(val, qm->io_base + SEC_CONTROL_REG);
+}
+
+static void sec_hw_error_disable(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 val;
+
+	val = readl(qm->io_base + SEC_CONTROL_REG);
+
+	/* disable RAS int */
+	writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_CE_REG);
+	writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_FE_REG);
+	writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_NFE_REG);
+
+	/* disable SEC hw error interrupts */
+	writel(SEC_CORE_INT_DISABLE, qm->io_base + SEC_CORE_INT_MASK);
+
+	/* disable SEC block master OOO when m-bit error occur */
+	val = val & SEC_AXI_SHUTDOWN_DISABLE;
+
+	writel(val, qm->io_base + SEC_CONTROL_REG);
+}
+
+static void sec_hw_error_init(struct sec_dev *sec)
+{
+	if (sec->qm.fun_type == QM_HW_VF)
+		return;
+
+	hisi_qm_hw_error_init(&sec->qm, QM_BASE_CE,
+			      QM_BASE_NFE | QM_ACC_DO_TASK_TIMEOUT
+			      | QM_ACC_WB_NOT_READY_TIMEOUT, 0,
+			      QM_DB_RANDOM_INVALID);
+	sec_hw_error_enable(sec);
+}
+
+static void sec_hw_error_uninit(struct sec_dev *sec)
+{
+	if (sec->qm.fun_type == QM_HW_VF)
+		return;
+
+	sec_hw_error_disable(sec);
+	writel(GENMASK(12, 0), sec->qm.io_base + SEC_QM_ABNORMAL_INT_MASK);
+}
+
+static u32 sec_current_qm_read(struct sec_debug_file *file)
+{
+	struct hisi_qm *qm = file->qm;
+
+	return readl(qm->io_base + QM_DFX_MB_CNT_VF);
+}
+
+static int sec_current_qm_write(struct sec_debug_file *file, u32 val)
+{
+	struct hisi_qm *qm = file->qm;
+	struct sec_dev *sec = container_of(qm, struct sec_dev, qm);
+	u32 vfq_num;
+	u32 tmp;
+
+	if (val > sec->num_vfs)
+		return -EINVAL;
+
+	/* According PF or VF Dev ID to calculation curr_qm_qp_num and store */
+	if (!val) {
+		qm->debug.curr_qm_qp_num = qm->qp_num;
+	} else {
+		vfq_num = (qm->ctrl_qp_num - qm->qp_num) / sec->num_vfs;
+
+		if (val == sec->num_vfs)
+			qm->debug.curr_qm_qp_num =
+				qm->ctrl_qp_num - qm->qp_num -
+				(sec->num_vfs - 1) * vfq_num;
+		else
+			qm->debug.curr_qm_qp_num = vfq_num;
+	}
+
+	writel(val, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(val, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_SQE_CNT_VF_SQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_SQE_CNT_VF_SQN);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_CQE_CNT_VF_CQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_CQE_CNT_VF_CQN);
+
+	return 0;
+}
+
+static u32 sec_clear_enable_read(struct sec_debug_file *file)
+{
+	struct hisi_qm *qm = file->qm;
+
+	return readl(qm->io_base + SEC_CTRL_CNT_CLR_CE) &
+			SEC_CTRL_CNT_CLR_CE_BIT;
+}
+
+static int sec_clear_enable_write(struct sec_debug_file *file, u32 val)
+{
+	struct hisi_qm *qm = file->qm;
+	u32 tmp;
+
+	if (val != 1 && val)
+		return -EINVAL;
+
+	tmp = (readl(qm->io_base + SEC_CTRL_CNT_CLR_CE) &
+	       ~SEC_CTRL_CNT_CLR_CE_BIT) | val;
+	writel(tmp, qm->io_base + SEC_CTRL_CNT_CLR_CE);
+
+	return 0;
+}
+
+static ssize_t sec_debug_read(struct file *filp, char __user *buf,
+			       size_t count, loff_t *pos)
+{
+	struct sec_debug_file *file = filp->private_data;
+	char tbuf[SEC_DBGFS_VAL_MAX_LEN];
+	u32 val;
+	int ret;
+
+	spin_lock_irq(&file->lock);
+
+	switch (file->index) {
+	case SEC_CURRENT_QM:
+		val = sec_current_qm_read(file);
+		break;
+	case SEC_CLEAR_ENABLE:
+		val = sec_clear_enable_read(file);
+		break;
+	default:
+		spin_unlock_irq(&file->lock);
+		return -EINVAL;
+	}
+
+	spin_unlock_irq(&file->lock);
+	ret = snprintf(tbuf, SEC_DBGFS_VAL_MAX_LEN, "%u\n", val);
+
+	return simple_read_from_buffer(buf, count, pos, tbuf, ret);
+}
+
+static ssize_t sec_debug_write(struct file *filp, const char __user *buf,
+			       size_t count, loff_t *pos)
+{
+	struct sec_debug_file *file = filp->private_data;
+	char tbuf[SEC_DBGFS_VAL_MAX_LEN];
+	unsigned long val;
+	int len, ret;
+
+	if (*pos != 0)
+		return 0;
+
+	if (count >= SEC_DBGFS_VAL_MAX_LEN)
+		return -ENOSPC;
+
+	len = simple_write_to_buffer(tbuf, SEC_DBGFS_VAL_MAX_LEN - 1,
+				     pos, buf, count);
+	if (len < 0)
+		return len;
+
+	tbuf[len] = '\0';
+	if (kstrtoul(tbuf, 0, &val))
+		return -EFAULT;
+
+	spin_lock_irq(&file->lock);
+
+	switch (file->index) {
+	case SEC_CURRENT_QM:
+		ret = sec_current_qm_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	case SEC_CLEAR_ENABLE:
+		ret = sec_clear_enable_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	default:
+		ret = -EINVAL;
+		goto err_input;
+	}
+
+	spin_unlock_irq(&file->lock);
+
+	return count;
+
+ err_input:
+	spin_unlock_irq(&file->lock);
+	return ret;
+}
+
+static const struct file_operations sec_dbg_fops = {
+	.owner = THIS_MODULE,
+	.open = simple_open,
+	.read = sec_debug_read,
+	.write = sec_debug_write,
+};
+
+static int sec_debugfs_atomic64_get(void *data, u64 *val)
+{
+	*val = atomic64_read((atomic64_t *)data);
+	return 0;
+}
+DEFINE_DEBUGFS_ATTRIBUTE(sec_atomic64_ops, sec_debugfs_atomic64_get,
+			 NULL, "%lld\n");
+
+static int sec_core_debug_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	struct device *dev = &qm->pdev->dev;
+	struct sec_dfx *dfx = &sec->debug.dfx;
+	struct debugfs_regset32 *regset;
+	struct dentry *tmp_d;
+
+	tmp_d = debugfs_create_dir("sec_dfx", sec->qm.debug.debug_root);
+
+	regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
+	if (!regset)
+		return -ENOENT;
+
+	regset->regs = sec_dfx_regs;
+	regset->nregs = ARRAY_SIZE(sec_dfx_regs);
+	regset->base = qm->io_base;
+
+	debugfs_create_regset32("regs", 0444, tmp_d, regset);
+
+	debugfs_create_file("send_cnt", 0444, tmp_d,
+			    &dfx->send_cnt, &sec_atomic64_ops);
+
+	debugfs_create_file("recv_cnt", 0444, tmp_d,
+			    &dfx->recv_cnt, &sec_atomic64_ops);
+
+	return 0;
+}
+
+static int sec_debug_init(struct sec_dev *sec)
+{
+	int i;
+
+	for (i = SEC_CURRENT_QM; i < SEC_DEBUG_FILE_NUM; i++) {
+		spin_lock_init(&sec->debug.files[i].lock);
+		sec->debug.files[i].index = i;
+		sec->debug.files[i].qm = &sec->qm;
+
+		debugfs_create_file(sec_dbg_file_name[i], 0600,
+				    sec->qm.debug.debug_root,
+				    sec->debug.files + i,
+				    &sec_dbg_fops);
+	}
+
+	return sec_core_debug_init(sec);
+}
+
+static int sec_debugfs_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	struct device *dev = &qm->pdev->dev;
+	int ret;
+
+	qm->debug.debug_root = debugfs_create_dir(dev_name(dev),
+						  sec_debugfs_root);
+	ret = hisi_qm_debug_init(qm);
+	if (ret)
+		goto failed_to_create;
+
+	if (qm->pdev->device == SEC_PF_PCI_DEVICE_ID) {
+		ret = sec_debug_init(sec);
+		if (ret)
+			goto failed_to_create;
+	}
+
+	return 0;
+
+failed_to_create:
+	debugfs_remove_recursive(sec_debugfs_root);
+
+	return ret;
+}
+
+static void sec_debugfs_exit(struct sec_dev *sec)
+{
+	debugfs_remove_recursive(sec->qm.debug.debug_root);
+}
+
+static int sec_pf_probe_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	int ret;
+
+	switch (qm->ver) {
+	case QM_HW_V1:
+		qm->ctrl_qp_num = SEC_QUEUE_NUM_V1;
+		break;
+
+	case QM_HW_V2:
+		qm->ctrl_qp_num = SEC_QUEUE_NUM_V2;
+		break;
+
+	default:
+		return -EINVAL;
+	}
+
+	ret = sec_set_user_domain_and_cache(sec);
+	if (ret)
+		return ret;
+
+	sec_hw_error_init(sec);
+	sec_debug_regs_clear(qm);
+
+	return 0;
+}
+
+static int sec_qm_init(struct hisi_qm *qm, struct pci_dev *pdev)
+{
+	enum qm_hw_ver rev_id;
+
+	rev_id = hisi_qm_get_hw_version(pdev);
+	if (rev_id == QM_HW_UNKNOWN)
+		return -ENODEV;
+
+	qm->pdev = pdev;
+	qm->ver = rev_id;
+
+	qm->sqe_size = SEC_SQE_SIZE;
+	qm->dev_name = sec_name;
+	qm->fun_type = (pdev->device == SEC_PF_PCI_DEVICE_ID) ?
+			QM_HW_PF : QM_HW_VF;
+	qm->use_dma_api = true;
+
+	return hisi_qm_init(qm);
+}
+
+static void sec_qm_uninit(struct hisi_qm *qm)
+{
+	hisi_qm_uninit(qm);
+}
+
+static int sec_probe_init(struct hisi_qm *qm, struct sec_dev *sec)
+{
+	if (qm->fun_type == QM_HW_PF) {
+		qm->qp_base = SEC_PF_DEF_Q_BASE;
+		qm->qp_num = pf_q_num;
+		qm->debug.curr_qm_qp_num = pf_q_num;
+
+		return sec_pf_probe_init(sec);
+	} else if (qm->fun_type == QM_HW_VF) {
+		/*
+		 * have no way to get qm configure in VM in v1 hardware,
+		 * so currently force PF to uses SEC_PF_DEF_Q_NUM, and force
+		 * to trigger only one VF in v1 hardware.
+		 * v2 hardware has no such problem.
+		 */
+		if (qm->ver == QM_HW_V1) {
+			qm->qp_base = SEC_PF_DEF_Q_NUM;
+			qm->qp_num = SEC_QUEUE_NUM_V1 - SEC_PF_DEF_Q_NUM;
+		} else if (qm->ver == QM_HW_V2) {
+			/* v2 starts to support get vft by mailbox */
+			return hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
+		}
+	} else {
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
+static void sec_probe_uninit(struct sec_dev *sec)
+{
+	sec_hw_error_uninit(sec);
+}
+
+static int sec_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct sec_dev *sec;
+	struct hisi_qm *qm;
+	int ret;
+
+	sec = devm_kzalloc(&pdev->dev, sizeof(*sec), GFP_KERNEL);
+	if (!sec)
+		return -ENOMEM;
+
+	pci_set_drvdata(pdev, sec);
+
+	sec->ctx_q_num = ctx_q_num;
+
+	qm = &sec->qm;
+
+	ret = sec_qm_init(qm, pdev);
+	if (ret) {
+		pci_err(pdev, "Failed to pre init qm!\n");
+		return ret;
+	}
+
+	ret = sec_probe_init(qm, sec);
+	if (ret) {
+		pci_err(pdev, "Failed to probe!\n");
+		goto err_qm_uninit;
+	}
+
+	ret = hisi_qm_start(qm);
+	if (ret) {
+		pci_err(pdev, "Failed to start sec qm!\n");
+		goto err_probe_uninit;
+	}
+
+	ret = sec_debugfs_init(sec);
+	if (ret)
+		pci_warn(pdev, "Failed to init debugfs!\n");
+
+	sec_add_to_list(sec);
+
+	ret = sec_register_to_crypto();
+	if (ret < 0) {
+		pr_err("Failed to register driver to crypto.\n");
+		goto err_remove_from_list;
+	}
+
+	return 0;
+
+err_remove_from_list:
+	sec_remove_from_list(sec);
+	sec_debugfs_exit(sec);
+	hisi_qm_stop(qm);
+
+err_probe_uninit:
+	sec_probe_uninit(sec);
+
+err_qm_uninit:
+	sec_qm_uninit(qm);
+
+	return ret;
+}
+
+/* now we only support equal assignment */
+static int sec_vf_q_assign(struct sec_dev *sec, u32 num_vfs)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 qp_num = qm->qp_num;
+	u32 q_base = qp_num;
+	u32 q_num, remain_q_num;
+	int i, j, ret;
+
+	if (!num_vfs)
+		return -EINVAL;
+
+	remain_q_num = qm->ctrl_qp_num - qp_num;
+	q_num = remain_q_num / num_vfs;
+
+	for (i = 1; i <= num_vfs; i++) {
+		if (i == num_vfs)
+			q_num += remain_q_num % num_vfs;
+		ret = hisi_qm_set_vft(qm, i, q_base, q_num);
+		if (ret) {
+			for (j = i; j > 0; j--)
+				hisi_qm_set_vft(qm, j, 0, 0);
+			return ret;
+		}
+		q_base += q_num;
+	}
+
+	return 0;
+}
+
+static int sec_clear_vft_config(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 num_vfs = sec->num_vfs;
+	int ret;
+	u32 i;
+
+	for (i = 1; i <= num_vfs; i++) {
+		ret = hisi_qm_set_vft(qm, i, 0, 0);
+		if (ret)
+			return ret;
+	}
+
+	sec->num_vfs = 0;
+
+	return 0;
+}
+
+static int sec_sriov_enable(struct pci_dev *pdev, int max_vfs)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+	int pre_existing_vfs, ret;
+	u32 num_vfs;
+
+	pre_existing_vfs = pci_num_vf(pdev);
+
+	if (pre_existing_vfs) {
+		pci_err(pdev, "Can't enable VF. Please disable at first!\n");
+		return 0;
+	}
+
+	num_vfs = min_t(u32, max_vfs, SEC_VF_NUM);
+
+	ret = sec_vf_q_assign(sec, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't assign queues for VF!\n");
+		return ret;
+	}
+
+	sec->num_vfs = num_vfs;
+
+	ret = pci_enable_sriov(pdev, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't enable VF!\n");
+		sec_clear_vft_config(sec);
+		return ret;
+	}
+
+	return num_vfs;
+}
+
+static int sec_sriov_disable(struct pci_dev *pdev)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+
+	if (pci_vfs_assigned(pdev)) {
+		pci_err(pdev, "Can't disable VFs while VFs are assigned!\n");
+		return -EPERM;
+	}
+
+	/* remove in sec_pci_driver will be called to free VF resources */
+	pci_disable_sriov(pdev);
+
+	return sec_clear_vft_config(sec);
+}
+
+static int sec_sriov_configure(struct pci_dev *pdev, int num_vfs)
+{
+	if (num_vfs)
+		return sec_sriov_enable(pdev, num_vfs);
+	else
+		return sec_sriov_disable(pdev);
+}
+
+static void sec_remove(struct pci_dev *pdev)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+	struct hisi_qm *qm = &sec->qm;
+
+	sec_unregister_from_crypto();
+
+	sec_remove_from_list(sec);
+
+	if (qm->fun_type == QM_HW_PF && sec->num_vfs)
+		(void)sec_sriov_disable(pdev);
+
+	sec_debugfs_exit(sec);
+
+	(void)hisi_qm_stop(qm);
+
+	if (qm->fun_type == QM_HW_PF)
+		sec_debug_regs_clear(qm);
+
+	sec_probe_uninit(sec);
+
+	sec_qm_uninit(qm);
+}
+
+static void sec_log_hw_error(struct sec_dev *sec, u32 err_sts)
+{
+	const struct sec_hw_error *errs = sec_hw_errors;
+	struct device *dev = &sec->qm.pdev->dev;
+	u32 err_val;
+
+	while (errs->msg) {
+		if (errs->int_msk & err_sts) {
+			dev_err(dev, "%s [error status=0x%x] found\n",
+				errs->msg, errs->int_msk);
+
+			if (SEC_CORE_INT_STATUS_M_ECC & err_sts) {
+				err_val = readl(sec->qm.io_base +
+						SEC_CORE_SRAM_ECC_ERR_INFO);
+				dev_err(dev, "multi ecc sram num=0x%x\n",
+					SEC_ECC_NUM(err_val));
+				dev_err(dev, "multi ecc sram addr=0x%x\n",
+					SEC_ECC_ADDR(err_val));
+			}
+		}
+		errs++;
+	}
+}
+
+static pci_ers_result_t sec_hw_error_handle(struct sec_dev *sec)
+{
+	u32 err_sts;
+
+	/* read err sts */
+	err_sts = readl(sec->qm.io_base + SEC_CORE_INT_STATUS);
+	if (err_sts) {
+		sec_log_hw_error(sec, err_sts);
+
+		/* clear error interrupts */
+		writel(err_sts, sec->qm.io_base + SEC_CORE_INT_SOURCE);
+
+		return PCI_ERS_RESULT_NEED_RESET;
+	}
+
+	return PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t sec_process_hw_error(struct pci_dev *pdev)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+	pci_ers_result_t qm_ret, sec_ret;
+
+	if (!sec) {
+		pci_err(pdev, "Can't recover error during device init\n");
+		return PCI_ERS_RESULT_NONE;
+	}
+
+	/* log qm error */
+	qm_ret = hisi_qm_hw_error_handle(&sec->qm);
+
+	/* log sec error */
+	sec_ret = sec_hw_error_handle(sec);
+
+	return (qm_ret == PCI_ERS_RESULT_NEED_RESET ||
+		sec_ret == PCI_ERS_RESULT_NEED_RESET) ?
+		PCI_ERS_RESULT_NEED_RESET : PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t sec_error_detected(struct pci_dev *pdev,
+					   pci_channel_state_t state)
+{
+	if (pdev->is_virtfn)
+		return PCI_ERS_RESULT_NONE;
+
+	pci_info(pdev, "PCI error detected, state(=%d)!!\n", state);
+	if (state == pci_channel_io_perm_failure)
+		return PCI_ERS_RESULT_DISCONNECT;
+
+	return sec_process_hw_error(pdev);
+}
+
+static const struct pci_error_handlers sec_err_handler = {
+	.error_detected = sec_error_detected,
+};
+
+static struct pci_driver sec_pci_driver = {
+	.name = "hisi_sec2",
+	.id_table = sec_dev_ids,
+	.probe = sec_probe,
+	.remove = sec_remove,
+	.err_handler = &sec_err_handler,
+	.sriov_configure = sec_sriov_configure,
+};
+
+static void sec_register_debugfs(void)
+{
+	if (!debugfs_initialized())
+		return;
+
+	sec_debugfs_root = debugfs_create_dir("hisi_sec2", NULL);
+}
+
+static void sec_unregister_debugfs(void)
+{
+	debugfs_remove_recursive(sec_debugfs_root);
+}
+
+static int __init sec_init(void)
+{
+	int ret;
+
+	sec_register_debugfs();
+
+	ret = pci_register_driver(&sec_pci_driver);
+	if (ret < 0) {
+		sec_unregister_debugfs();
+		pr_err("Failed to register pci driver.\n");
+		return ret;
+	}
+
+	return 0;
+}
+
+static void __exit sec_exit(void)
+{
+	pci_unregister_driver(&sec_pci_driver);
+	sec_unregister_debugfs();
+}
+
+module_init(sec_init);
+module_exit(sec_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Zaibo Xu <xuzaibo@huawei.com>");
+MODULE_AUTHOR("Longfang Liu <liulongfang@huawei.com>");
+MODULE_AUTHOR("Wei Zhang <zhangwei375@huawei.com>");
+MODULE_DESCRIPTION("Driver for HiSilicon SEC accelerator");
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/sgl.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/sgl.c
@@ -2,37 +2,13 @@
 /* Copyright (c) 2019 HiSilicon Limited. */
 #include <linux/dma-mapping.h>
 #include <linux/module.h>
-#include "./sgl.h"
+#include <linux/slab.h>
+#include "qm.h"
 
 #define HISI_ACC_SGL_SGE_NR_MIN		1
-#define HISI_ACC_SGL_SGE_NR_MAX		255
-#define HISI_ACC_SGL_SGE_NR_DEF		10
 #define HISI_ACC_SGL_NR_MAX		256
 #define HISI_ACC_SGL_ALIGN_SIZE		64
-
-static int acc_sgl_sge_set(const char *val, const struct kernel_param *kp)
-{
-	int ret;
-	u32 n;
-
-	if (!val)
-		return -EINVAL;
-
-	ret = kstrtou32(val, 10, &n);
-	if (ret != 0 || n > HISI_ACC_SGL_SGE_NR_MAX || n == 0)
-		return -EINVAL;
-
-	return param_set_int(val, kp);
-}
-
-static const struct kernel_param_ops acc_sgl_sge_ops = {
-	.set = acc_sgl_sge_set,
-	.get = param_get_int,
-};
-
-static u32 acc_sgl_sge_nr = HISI_ACC_SGL_SGE_NR_DEF;
-module_param_cb(acc_sgl_sge_nr, &acc_sgl_sge_ops, &acc_sgl_sge_nr, 0444);
-MODULE_PARM_DESC(acc_sgl_sge_nr, "Number of sge in sgl(1-255)");
+#define HISI_ACC_MEM_BLOCK_NR		5
 
 struct acc_hw_sge {
 	dma_addr_t buf;
@@ -55,37 +31,91 @@
 	struct acc_hw_sge sge_entries[];
 } __aligned(1);
 
+struct hisi_acc_sgl_pool {
+	struct mem_block {
+		struct hisi_acc_hw_sgl *sgl;
+		dma_addr_t sgl_dma;
+		size_t size;
+	} mem_block[HISI_ACC_MEM_BLOCK_NR];
+	u32 sgl_num_per_block;
+	u32 block_num;
+	u32 count;
+	u32 sge_nr;
+	size_t sgl_size;
+};
+
 /**
  * hisi_acc_create_sgl_pool() - Create a hw sgl pool.
  * @dev: The device which hw sgl pool belongs to.
- * @pool: Pointer of pool.
  * @count: Count of hisi_acc_hw_sgl in pool.
+ * @sge_nr: The count of sge in hw_sgl
  *
  * This function creates a hw sgl pool, after this user can get hw sgl memory
  * from it.
  */
-int hisi_acc_create_sgl_pool(struct device *dev,
-			     struct hisi_acc_sgl_pool *pool, u32 count)
+struct hisi_acc_sgl_pool *hisi_acc_create_sgl_pool(struct device *dev,
+						   u32 count, u32 sge_nr)
 {
-	u32 sgl_size;
-	u32 size;
+	u32 sgl_size, block_size, sgl_num_per_block, block_num, remain_sgl = 0;
+	struct hisi_acc_sgl_pool *pool;
+	struct mem_block *block;
+	u32 i, j;
 
-	if (!dev || !pool || !count)
-		return -EINVAL;
+	if (!dev || !count || !sge_nr || sge_nr > HISI_ACC_SGL_SGE_NR_MAX)
+		return ERR_PTR(-EINVAL);
 
-	sgl_size = sizeof(struct acc_hw_sge) * acc_sgl_sge_nr +
+	sgl_size = sizeof(struct acc_hw_sge) * sge_nr +
 		   sizeof(struct hisi_acc_hw_sgl);
-	size = sgl_size * count;
+	block_size = PAGE_SIZE * (1 << (MAX_ORDER - 1));
+	sgl_num_per_block = block_size / sgl_size;
+	block_num = count / sgl_num_per_block;
+	remain_sgl = count % sgl_num_per_block;
+
+	if ((!remain_sgl && block_num > HISI_ACC_MEM_BLOCK_NR) ||
+	    (remain_sgl > 0 && block_num > HISI_ACC_MEM_BLOCK_NR - 1))
+		return ERR_PTR(-EINVAL);
+
+	pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+	if (!pool)
+		return ERR_PTR(-ENOMEM);
+	block = pool->mem_block;
+
+	for (i = 0; i < block_num; i++) {
+		block[i].sgl = dma_alloc_coherent(dev, block_size,
+						  &block[i].sgl_dma,
+						  GFP_KERNEL);
+		if (!block[i].sgl)
+			goto err_free_mem;
+
+		block[i].size = block_size;
+	}
 
-	pool->sgl = dma_alloc_coherent(dev, size, &pool->sgl_dma, GFP_KERNEL);
-	if (!pool->sgl)
-		return -ENOMEM;
+	if (remain_sgl > 0) {
+		block[i].sgl = dma_alloc_coherent(dev, remain_sgl * sgl_size,
+						  &block[i].sgl_dma,
+						  GFP_KERNEL);
+		if (!block[i].sgl)
+			goto err_free_mem;
 
-	pool->size = size;
+		block[i].size = remain_sgl * sgl_size;
+	}
+
+	pool->sgl_num_per_block = sgl_num_per_block;
+	pool->block_num = remain_sgl ? block_num + 1 : block_num;
 	pool->count = count;
 	pool->sgl_size = sgl_size;
+	pool->sge_nr = sge_nr;
+
+	return pool;
 
-	return 0;
+err_free_mem:
+	for (j = 0; j < i; j++) {
+		dma_free_coherent(dev, block_size, block[j].sgl,
+				  block[j].sgl_dma);
+		memset(block + j, 0, sizeof(*block));
+	}
+	kfree(pool);
+	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL_GPL(hisi_acc_create_sgl_pool);
 
@@ -98,38 +128,57 @@
  */
 void hisi_acc_free_sgl_pool(struct device *dev, struct hisi_acc_sgl_pool *pool)
 {
-	dma_free_coherent(dev, pool->size, pool->sgl, pool->sgl_dma);
-	memset(pool, 0, sizeof(struct hisi_acc_sgl_pool));
+	struct mem_block *block;
+	int i;
+
+	if (!dev || !pool)
+		return;
+
+	block = pool->mem_block;
+
+	for (i = 0; i < pool->block_num; i++)
+		dma_free_coherent(dev, block[i].size, block[i].sgl,
+				  block[i].sgl_dma);
+
+	kfree(pool);
 }
 EXPORT_SYMBOL_GPL(hisi_acc_free_sgl_pool);
 
-struct hisi_acc_hw_sgl *acc_get_sgl(struct hisi_acc_sgl_pool *pool, u32 index,
-				    dma_addr_t *hw_sgl_dma)
+static struct hisi_acc_hw_sgl *acc_get_sgl(struct hisi_acc_sgl_pool *pool,
+					   u32 index, dma_addr_t *hw_sgl_dma)
 {
-	if (!pool || !hw_sgl_dma || index >= pool->count || !pool->sgl)
+	struct mem_block *block;
+	u32 block_index, offset;
+
+	if (!pool || !hw_sgl_dma || index >= pool->count)
 		return ERR_PTR(-EINVAL);
 
-	*hw_sgl_dma = pool->sgl_dma + pool->sgl_size * index;
-	return (void *)pool->sgl + pool->sgl_size * index;
-}
+	block = pool->mem_block;
+	block_index = index / pool->sgl_num_per_block;
+	offset = index % pool->sgl_num_per_block;
 
-void acc_put_sgl(struct hisi_acc_sgl_pool *pool, u32 index) {}
+	*hw_sgl_dma = block[block_index].sgl_dma + pool->sgl_size * offset;
+	return (void *)block[block_index].sgl + pool->sgl_size * offset;
+}
 
 static void sg_map_to_hw_sg(struct scatterlist *sgl,
 			    struct acc_hw_sge *hw_sge)
 {
-	hw_sge->buf = sgl->dma_address;
-	hw_sge->len = sgl->dma_length;
+	hw_sge->buf = sg_dma_address(sgl);
+	hw_sge->len = cpu_to_le32(sg_dma_len(sgl));
 }
 
 static void inc_hw_sgl_sge(struct hisi_acc_hw_sgl *hw_sgl)
 {
-	hw_sgl->entry_sum_in_sgl++;
+	u16 var = le16_to_cpu(hw_sgl->entry_sum_in_sgl);
+
+	var++;
+	hw_sgl->entry_sum_in_sgl = cpu_to_le16(var);
 }
 
 static void update_hw_sgl_sum_sge(struct hisi_acc_hw_sgl *hw_sgl, u16 sum)
 {
-	hw_sgl->entry_sum_in_chain = sum;
+	hw_sgl->entry_sum_in_chain = cpu_to_le16(sum);
 }
 
 /**
@@ -153,10 +202,13 @@
 	dma_addr_t curr_sgl_dma = 0;
 	struct acc_hw_sge *curr_hw_sge;
 	struct scatterlist *sg;
-	int sg_n = sg_nents(sgl);
-	int i, ret;
+	int i, ret, sg_n;
+
+	if (!dev || !sgl || !pool || !hw_sgl_dma)
+		return ERR_PTR(-EINVAL);
 
-	if (!dev || !sgl || !pool || !hw_sgl_dma || sg_n > acc_sgl_sge_nr)
+	sg_n = sg_nents(sgl);
+	if (sg_n > pool->sge_nr)
 		return ERR_PTR(-EINVAL);
 
 	ret = dma_map_sg(dev, sgl, sg_n, DMA_BIDIRECTIONAL);
@@ -164,11 +216,12 @@
 		return ERR_PTR(-EINVAL);
 
 	curr_hw_sgl = acc_get_sgl(pool, index, &curr_sgl_dma);
-	if (!curr_hw_sgl) {
-		ret = -ENOMEM;
-		goto err_unmap_sg;
+	if (IS_ERR(curr_hw_sgl)) {
+		dma_unmap_sg(dev, sgl, sg_n, DMA_BIDIRECTIONAL);
+		return ERR_PTR(-ENOMEM);
+
 	}
-	curr_hw_sgl->entry_length_in_sgl = acc_sgl_sge_nr;
+	curr_hw_sgl->entry_length_in_sgl = cpu_to_le16(pool->sge_nr);
 	curr_hw_sge = curr_hw_sgl->sge_entries;
 
 	for_each_sg(sgl, sg, sg_n, i) {
@@ -177,14 +230,10 @@
 		curr_hw_sge++;
 	}
 
-	update_hw_sgl_sum_sge(curr_hw_sgl, acc_sgl_sge_nr);
+	update_hw_sgl_sum_sge(curr_hw_sgl, pool->sge_nr);
 	*hw_sgl_dma = curr_sgl_dma;
 
 	return curr_hw_sgl;
-
-err_unmap_sg:
-	dma_unmap_sg(dev, sgl, sg_n, DMA_BIDIRECTIONAL);
-	return ERR_PTR(ret);
 }
 EXPORT_SYMBOL_GPL(hisi_acc_sg_buf_map_to_hw_sgl);
 
@@ -201,6 +250,9 @@
 void hisi_acc_sg_buf_unmap(struct device *dev, struct scatterlist *sgl,
 			   struct hisi_acc_hw_sgl *hw_sgl)
 {
+	if (!dev || !sgl || !hw_sgl)
+		return;
+
 	dma_unmap_sg(dev, sgl, sg_nents(sgl), DMA_BIDIRECTIONAL);
 
 	hw_sgl->entry_sum_in_chain = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/zip/zip.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/zip/zip.h
@@ -8,10 +8,13 @@
 
 #include <linux/list.h>
 #include "../qm.h"
-#include "../sgl.h"
 
 /* hisi_zip_sqe dw3 */
 #define HZIP_BD_STATUS_M			GENMASK(7, 0)
+/* hisi_zip_sqe dw7 */
+#define HZIP_IN_SGE_DATA_OFFSET_M		GENMASK(23, 0)
+/* hisi_zip_sqe dw8 */
+#define HZIP_OUT_SGE_DATA_OFFSET_M		GENMASK(23, 0)
 /* hisi_zip_sqe dw9 */
 #define HZIP_REQ_TYPE_M				GENMASK(7, 0)
 #define HZIP_ALG_TYPE_ZLIB			0x02
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/zip/zip_crypto.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/zip/zip_crypto.c
@@ -22,6 +22,7 @@
 #define HZIP_CTX_Q_NUM				2
 #define HZIP_GZIP_HEAD_BUF			256
 #define HZIP_ALG_PRIORITY			300
+#define HZIP_SGL_SGE_NR				10
 
 static const u8 zlib_head[HZIP_ZLIB_HEAD_SIZE] = {0x78, 0x9c};
 static const u8 gzip_head[HZIP_GZIP_HEAD_SIZE] = {0x1f, 0x8b, 0x08, 0x0, 0x0,
@@ -41,14 +42,12 @@
 
 #define TO_HEAD(req_type)						\
 	(((req_type) == HZIP_ALG_TYPE_ZLIB) ? zlib_head :		\
-	 ((req_type) == HZIP_ALG_TYPE_GZIP) ? gzip_head : 0)		\
+	 ((req_type) == HZIP_ALG_TYPE_GZIP) ? gzip_head : NULL)		\
 
 struct hisi_zip_req {
 	struct acomp_req *req;
-	struct scatterlist *src;
-	struct scatterlist *dst;
-	size_t slen;
-	size_t dlen;
+	int sskip;
+	int dskip;
 	struct hisi_acc_hw_sgl *hw_src;
 	struct hisi_acc_hw_sgl *hw_dst;
 	dma_addr_t dma_src;
@@ -67,7 +66,7 @@
 	struct hisi_qp *qp;
 	struct hisi_zip_sqe zip_sqe;
 	struct hisi_zip_req_q req_q;
-	struct hisi_acc_sgl_pool sgl_pool;
+	struct hisi_acc_sgl_pool *sgl_pool;
 	struct hisi_zip *zip_dev;
 	struct hisi_zip_ctx *ctx;
 };
@@ -78,6 +77,30 @@
 	struct hisi_zip_qp_ctx qp_ctx[HZIP_CTX_Q_NUM];
 };
 
+static int sgl_sge_nr_set(const char *val, const struct kernel_param *kp)
+{
+	int ret;
+	u16 n;
+
+	if (!val)
+		return -EINVAL;
+
+	ret = kstrtou16(val, 10, &n);
+	if (ret || n == 0 || n > HISI_ACC_SGL_SGE_NR_MAX)
+		return -EINVAL;
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops sgl_sge_nr_ops = {
+	.set = sgl_sge_nr_set,
+	.get = param_get_int,
+};
+
+static u16 sgl_sge_nr = HZIP_SGL_SGE_NR;
+module_param_cb(sgl_sge_nr, &sgl_sge_nr_ops, &sgl_sge_nr, 0444);
+MODULE_PARM_DESC(sgl_sge_nr, "Number of sge in sgl(1-255)");
+
 static void hisi_zip_config_buf_type(struct hisi_zip_sqe *sqe, u8 buf_type)
 {
 	u32 val;
@@ -94,13 +117,15 @@
 
 static void hisi_zip_fill_sqe(struct hisi_zip_sqe *sqe, u8 req_type,
 			      dma_addr_t s_addr, dma_addr_t d_addr, u32 slen,
-			      u32 dlen)
+			      u32 dlen, int sskip, int dskip)
 {
 	memset(sqe, 0, sizeof(struct hisi_zip_sqe));
 
-	sqe->input_data_length = slen;
+	sqe->input_data_length = slen - sskip;
+	sqe->dw7 = FIELD_PREP(HZIP_IN_SGE_DATA_OFFSET_M, sskip);
+	sqe->dw8 = FIELD_PREP(HZIP_OUT_SGE_DATA_OFFSET_M, dskip);
 	sqe->dw9 = FIELD_PREP(HZIP_REQ_TYPE_M, req_type);
-	sqe->dest_avail_out = dlen;
+	sqe->dest_avail_out = dlen - dskip;
 	sqe->source_addr_l = lower_32_bits(s_addr);
 	sqe->source_addr_h = upper_32_bits(s_addr);
 	sqe->dest_addr_l = lower_32_bits(d_addr);
@@ -265,14 +290,15 @@
 static int hisi_zip_create_sgl_pool(struct hisi_zip_ctx *ctx)
 {
 	struct hisi_zip_qp_ctx *tmp;
-	int i, ret;
+	struct device *dev;
+	int i;
 
 	for (i = 0; i < HZIP_CTX_Q_NUM; i++) {
 		tmp = &ctx->qp_ctx[i];
-		ret = hisi_acc_create_sgl_pool(&tmp->qp->qm->pdev->dev,
-					       &tmp->sgl_pool,
-					       QM_Q_DEPTH << 1);
-		if (ret < 0) {
+		dev = &tmp->qp->qm->pdev->dev;
+		tmp->sgl_pool = hisi_acc_create_sgl_pool(dev, QM_Q_DEPTH << 1,
+							 sgl_sge_nr);
+		if (IS_ERR(tmp->sgl_pool)) {
 			if (i == 1)
 				goto err_free_sgl_pool0;
 			return -ENOMEM;
@@ -283,7 +309,7 @@
 
 err_free_sgl_pool0:
 	hisi_acc_free_sgl_pool(&ctx->qp_ctx[QPC_COMP].qp->qm->pdev->dev,
-			       &ctx->qp_ctx[QPC_COMP].sgl_pool);
+			       ctx->qp_ctx[QPC_COMP].sgl_pool);
 	return -ENOMEM;
 }
 
@@ -293,7 +319,7 @@
 
 	for (i = 0; i < HZIP_CTX_Q_NUM; i++)
 		hisi_acc_free_sgl_pool(&ctx->qp_ctx[i].qp->qm->pdev->dev,
-				       &ctx->qp_ctx[i].sgl_pool);
+				       ctx->qp_ctx[i].sgl_pool);
 }
 
 static void hisi_zip_remove_req(struct hisi_zip_qp_ctx *qp_ctx,
@@ -301,11 +327,6 @@
 {
 	struct hisi_zip_req_q *req_q = &qp_ctx->req_q;
 
-	if (qp_ctx->qp->alg_type == HZIP_ALG_TYPE_COMP)
-		kfree(req->dst);
-	else
-		kfree(req->src);
-
 	write_lock(&req_q->req_lock);
 	clear_bit(req->req_id, req_q->req_bitmap);
 	memset(req, 0, sizeof(struct hisi_zip_req));
@@ -333,8 +354,8 @@
 	}
 	dlen = sqe->produced;
 
-	hisi_acc_sg_buf_unmap(dev, req->src, req->hw_src);
-	hisi_acc_sg_buf_unmap(dev, req->dst, req->hw_dst);
+	hisi_acc_sg_buf_unmap(dev, acomp_req->src, req->hw_src);
+	hisi_acc_sg_buf_unmap(dev, acomp_req->dst, req->hw_dst);
 
 	head_size = (qp->alg_type == 0) ? TO_HEAD_SIZE(qp->req_type) : 0;
 	acomp_req->dlen = dlen + head_size;
@@ -428,20 +449,6 @@
 	}
 }
 
-static int get_sg_skip_bytes(struct scatterlist *sgl, size_t bytes,
-			     size_t remains, struct scatterlist **out)
-{
-#define SPLIT_NUM 2
-	size_t split_sizes[SPLIT_NUM];
-	int out_mapped_nents[SPLIT_NUM];
-
-	split_sizes[0] = bytes;
-	split_sizes[1] = remains;
-
-	return sg_split(sgl, 0, 0, SPLIT_NUM, split_sizes, out,
-			out_mapped_nents, GFP_KERNEL);
-}
-
 static struct hisi_zip_req *hisi_zip_create_req(struct acomp_req *req,
 						struct hisi_zip_qp_ctx *qp_ctx,
 						size_t head_size, bool is_comp)
@@ -449,31 +456,7 @@
 	struct hisi_zip_req_q *req_q = &qp_ctx->req_q;
 	struct hisi_zip_req *q = req_q->q;
 	struct hisi_zip_req *req_cache;
-	struct scatterlist *out[2];
-	struct scatterlist *sgl;
-	size_t len;
-	int ret, req_id;
-
-	/*
-	 * remove/add zlib/gzip head, as hardware operations do not include
-	 * comp head. so split req->src to get sgl without heads in acomp, or
-	 * add comp head to req->dst ahead of that hardware output compressed
-	 * data in sgl splited from req->dst without comp head.
-	 */
-	if (is_comp) {
-		sgl = req->dst;
-		len = req->dlen - head_size;
-	} else {
-		sgl = req->src;
-		len = req->slen - head_size;
-	}
-
-	ret = get_sg_skip_bytes(sgl, head_size, len, out);
-	if (ret)
-		return ERR_PTR(ret);
-
-	/* sgl for comp head is useless, so free it now */
-	kfree(out[0]);
+	int req_id;
 
 	write_lock(&req_q->req_lock);
 
@@ -481,7 +464,6 @@
 	if (req_id >= req_q->size) {
 		write_unlock(&req_q->req_lock);
 		dev_dbg(&qp_ctx->qp->qm->pdev->dev, "req cache is full!\n");
-		kfree(out[1]);
 		return ERR_PTR(-EBUSY);
 	}
 	set_bit(req_id, req_q->req_bitmap);
@@ -489,16 +471,13 @@
 	req_cache = q + req_id;
 	req_cache->req_id = req_id;
 	req_cache->req = req;
+
 	if (is_comp) {
-		req_cache->src = req->src;
-		req_cache->dst = out[1];
-		req_cache->slen = req->slen;
-		req_cache->dlen = req->dlen - head_size;
+		req_cache->sskip = 0;
+		req_cache->dskip = head_size;
 	} else {
-		req_cache->src = out[1];
-		req_cache->dst = req->dst;
-		req_cache->slen = req->slen - head_size;
-		req_cache->dlen = req->dlen;
+		req_cache->sskip = head_size;
+		req_cache->dskip = 0;
 	}
 
 	write_unlock(&req_q->req_lock);
@@ -510,23 +489,24 @@
 			    struct hisi_zip_qp_ctx *qp_ctx)
 {
 	struct hisi_zip_sqe *zip_sqe = &qp_ctx->zip_sqe;
+	struct acomp_req *a_req = req->req;
 	struct hisi_qp *qp = qp_ctx->qp;
 	struct device *dev = &qp->qm->pdev->dev;
-	struct hisi_acc_sgl_pool *pool = &qp_ctx->sgl_pool;
+	struct hisi_acc_sgl_pool *pool = qp_ctx->sgl_pool;
 	dma_addr_t input;
 	dma_addr_t output;
 	int ret;
 
-	if (!req->src || !req->slen || !req->dst || !req->dlen)
+	if (!a_req->src || !a_req->slen || !a_req->dst || !a_req->dlen)
 		return -EINVAL;
 
-	req->hw_src = hisi_acc_sg_buf_map_to_hw_sgl(dev, req->src, pool,
+	req->hw_src = hisi_acc_sg_buf_map_to_hw_sgl(dev, a_req->src, pool,
 						    req->req_id << 1, &input);
 	if (IS_ERR(req->hw_src))
 		return PTR_ERR(req->hw_src);
 	req->dma_src = input;
 
-	req->hw_dst = hisi_acc_sg_buf_map_to_hw_sgl(dev, req->dst, pool,
+	req->hw_dst = hisi_acc_sg_buf_map_to_hw_sgl(dev, a_req->dst, pool,
 						    (req->req_id << 1) + 1,
 						    &output);
 	if (IS_ERR(req->hw_dst)) {
@@ -535,8 +515,8 @@
 	}
 	req->dma_dst = output;
 
-	hisi_zip_fill_sqe(zip_sqe, qp->req_type, input, output, req->slen,
-			  req->dlen);
+	hisi_zip_fill_sqe(zip_sqe, qp->req_type, input, output, a_req->slen,
+			  a_req->dlen, req->sskip, req->dskip);
 	hisi_zip_config_buf_type(zip_sqe, HZIP_SGL);
 	hisi_zip_config_tag(zip_sqe, req->req_id);
 
@@ -548,9 +528,9 @@
 	return -EINPROGRESS;
 
 err_unmap_output:
-	hisi_acc_sg_buf_unmap(dev, req->dst, req->hw_dst);
+	hisi_acc_sg_buf_unmap(dev, a_req->dst, req->hw_dst);
 err_unmap_input:
-	hisi_acc_sg_buf_unmap(dev, req->src, req->hw_src);
+	hisi_acc_sg_buf_unmap(dev, a_req->src, req->hw_src);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/hisilicon/zip/zip_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/hisilicon/zip/zip_main.c
@@ -79,47 +79,80 @@
 #define HZIP_SOFT_CTRL_CNT_CLR_CE	0x301000
 #define SOFT_CTRL_CNT_CLR_CE_BIT	BIT(0)
 
-#define HZIP_NUMA_DISTANCE		100
 #define HZIP_BUF_SIZE			22
 
 static const char hisi_zip_name[] = "hisi_zip";
 static struct dentry *hzip_debugfs_root;
-LIST_HEAD(hisi_zip_list);
-DEFINE_MUTEX(hisi_zip_list_lock);
+static LIST_HEAD(hisi_zip_list);
+static DEFINE_MUTEX(hisi_zip_list_lock);
 
-#ifdef CONFIG_NUMA
-static struct hisi_zip *find_zip_device_numa(int node)
+struct hisi_zip_resource {
+	struct hisi_zip *hzip;
+	int distance;
+	struct list_head list;
+};
+
+static void free_list(struct list_head *head)
 {
-	struct hisi_zip *zip = NULL;
-	struct hisi_zip *hisi_zip;
-	int min_distance = HZIP_NUMA_DISTANCE;
-	struct device *dev;
+	struct hisi_zip_resource *res, *tmp;
 
-	list_for_each_entry(hisi_zip, &hisi_zip_list, list) {
-		dev = &hisi_zip->qm.pdev->dev;
-		if (node_distance(dev->numa_node, node) < min_distance) {
-			zip = hisi_zip;
-			min_distance = node_distance(dev->numa_node, node);
-		}
+	list_for_each_entry_safe(res, tmp, head, list) {
+		list_del(&res->list);
+		kfree(res);
 	}
-
-	return zip;
 }
-#endif
 
 struct hisi_zip *find_zip_device(int node)
 {
-	struct hisi_zip *zip = NULL;
+	struct hisi_zip_resource *res, *tmp;
+	struct hisi_zip *ret = NULL;
+	struct hisi_zip *hisi_zip;
+	struct list_head *n;
+	struct device *dev;
+	LIST_HEAD(head);
 
 	mutex_lock(&hisi_zip_list_lock);
-#ifdef CONFIG_NUMA
-	zip = find_zip_device_numa(node);
-#else
-	zip = list_first_entry(&hisi_zip_list, struct hisi_zip, list);
-#endif
+
+	if (IS_ENABLED(CONFIG_NUMA)) {
+		list_for_each_entry(hisi_zip, &hisi_zip_list, list) {
+			res = kzalloc(sizeof(*res), GFP_KERNEL);
+			if (!res)
+				goto err;
+
+			dev = &hisi_zip->qm.pdev->dev;
+			res->hzip = hisi_zip;
+			res->distance = node_distance(dev_to_node(dev), node);
+
+			n = &head;
+			list_for_each_entry(tmp, &head, list) {
+				if (res->distance < tmp->distance) {
+					n = &tmp->list;
+					break;
+				}
+			}
+			list_add_tail(&res->list, n);
+		}
+
+		list_for_each_entry(tmp, &head, list) {
+			if (hisi_qm_get_free_qp_num(&tmp->hzip->qm)) {
+				ret = tmp->hzip;
+				break;
+			}
+		}
+
+		free_list(&head);
+	} else {
+		ret = list_first_entry(&hisi_zip_list, struct hisi_zip, list);
+	}
+
 	mutex_unlock(&hisi_zip_list_lock);
 
-	return zip;
+	return ret;
+
+err:
+	free_list(&head);
+	mutex_unlock(&hisi_zip_list_lock);
+	return NULL;
 }
 
 struct hisi_zip_hw_error {
@@ -267,6 +300,10 @@
 static int uacce_mode;
 module_param(uacce_mode, int, 0);
 
+static u32 vfs_num;
+module_param(vfs_num, uint, 0444);
+MODULE_PARM_DESC(vfs_num, "Number of VFs to enable(1-63)");
+
 static const struct pci_device_id hisi_zip_dev_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, PCI_DEVICE_ID_ZIP_PF) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, PCI_DEVICE_ID_ZIP_VF) },
@@ -335,8 +372,7 @@
 
 	if (qm->ver == QM_HW_V1) {
 		writel(HZIP_CORE_INT_DISABLE, qm->io_base + HZIP_CORE_INT_MASK);
-		dev_info(&qm->pdev->dev, "ZIP v%d does not support hw error handle\n",
-			 qm->ver);
+		dev_info(&qm->pdev->dev, "Does not support hw error handle\n");
 		return;
 	}
 
@@ -511,7 +547,7 @@
 	struct hisi_qm *qm = &hisi_zip->qm;
 	struct device *dev = &qm->pdev->dev;
 	struct debugfs_regset32 *regset;
-	struct dentry *tmp_d, *tmp;
+	struct dentry *tmp_d;
 	char buf[HZIP_BUF_SIZE];
 	int i;
 
@@ -521,10 +557,6 @@
 		else
 			sprintf(buf, "decomp_core%d", i - HZIP_COMP_CORE_NUM);
 
-		tmp_d = debugfs_create_dir(buf, ctrl->debug_root);
-		if (!tmp_d)
-			return -ENOENT;
-
 		regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
 		if (!regset)
 			return -ENOENT;
@@ -533,9 +565,8 @@
 		regset->nregs = ARRAY_SIZE(hzip_dfx_regs);
 		regset->base = qm->io_base + core_offsets[i];
 
-		tmp = debugfs_create_regset32("regs", 0444, tmp_d, regset);
-		if (!tmp)
-			return -ENOENT;
+		tmp_d = debugfs_create_dir(buf, ctrl->debug_root);
+		debugfs_create_regset32("regs", 0444, tmp_d, regset);
 	}
 
 	return 0;
@@ -543,7 +574,6 @@
 
 static int hisi_zip_ctrl_debug_init(struct hisi_zip_ctrl *ctrl)
 {
-	struct dentry *tmp;
 	int i;
 
 	for (i = HZIP_CURRENT_QM; i < HZIP_DEBUG_FILE_NUM; i++) {
@@ -551,11 +581,9 @@
 		ctrl->files[i].ctrl = ctrl;
 		ctrl->files[i].index = i;
 
-		tmp = debugfs_create_file(ctrl_debug_file_name[i], 0600,
-					  ctrl->debug_root, ctrl->files + i,
-					  &ctrl_debug_fops);
-		if (!tmp)
-			return -ENOENT;
+		debugfs_create_file(ctrl_debug_file_name[i], 0600,
+				    ctrl->debug_root, ctrl->files + i,
+				    &ctrl_debug_fops);
 	}
 
 	return hisi_zip_core_debug_init(ctrl);
@@ -569,8 +597,6 @@
 	int ret;
 
 	dev_d = debugfs_create_dir(dev_name(dev), hzip_debugfs_root);
-	if (!dev_d)
-		return -ENOENT;
 
 	qm->debug.debug_root = dev_d;
 	ret = hisi_qm_debug_init(qm);
@@ -652,90 +678,6 @@
 	return 0;
 }
 
-static int hisi_zip_probe(struct pci_dev *pdev, const struct pci_device_id *id)
-{
-	struct hisi_zip *hisi_zip;
-	enum qm_hw_ver rev_id;
-	struct hisi_qm *qm;
-	int ret;
-
-	rev_id = hisi_qm_get_hw_version(pdev);
-	if (rev_id == QM_HW_UNKNOWN)
-		return -EINVAL;
-
-	hisi_zip = devm_kzalloc(&pdev->dev, sizeof(*hisi_zip), GFP_KERNEL);
-	if (!hisi_zip)
-		return -ENOMEM;
-	pci_set_drvdata(pdev, hisi_zip);
-
-	qm = &hisi_zip->qm;
-	qm->pdev = pdev;
-	qm->ver = rev_id;
-
-	qm->sqe_size = HZIP_SQE_SIZE;
-	qm->dev_name = hisi_zip_name;
-	qm->fun_type = (pdev->device == PCI_DEVICE_ID_ZIP_PF) ? QM_HW_PF :
-								QM_HW_VF;
-	switch (uacce_mode) {
-	case 0:
-		qm->use_dma_api = true;
-		break;
-	case 1:
-		qm->use_dma_api = false;
-		break;
-	case 2:
-		qm->use_dma_api = true;
-		break;
-	default:
-		return -EINVAL;
-	}
-
-	ret = hisi_qm_init(qm);
-	if (ret) {
-		dev_err(&pdev->dev, "Failed to init qm!\n");
-		return ret;
-	}
-
-	if (qm->fun_type == QM_HW_PF) {
-		ret = hisi_zip_pf_probe_init(hisi_zip);
-		if (ret)
-			return ret;
-
-		qm->qp_base = HZIP_PF_DEF_Q_BASE;
-		qm->qp_num = pf_q_num;
-	} else if (qm->fun_type == QM_HW_VF) {
-		/*
-		 * have no way to get qm configure in VM in v1 hardware,
-		 * so currently force PF to uses HZIP_PF_DEF_Q_NUM, and force
-		 * to trigger only one VF in v1 hardware.
-		 *
-		 * v2 hardware has no such problem.
-		 */
-		if (qm->ver == QM_HW_V1) {
-			qm->qp_base = HZIP_PF_DEF_Q_NUM;
-			qm->qp_num = HZIP_QUEUE_NUM_V1 - HZIP_PF_DEF_Q_NUM;
-		} else if (qm->ver == QM_HW_V2)
-			/* v2 starts to support get vft by mailbox */
-			hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
-	}
-
-	ret = hisi_qm_start(qm);
-	if (ret)
-		goto err_qm_uninit;
-
-	ret = hisi_zip_debugfs_init(hisi_zip);
-	if (ret)
-		dev_err(&pdev->dev, "Failed to init debugfs (%d)!\n", ret);
-
-	hisi_zip_add_to_list(hisi_zip);
-
-	return 0;
-
-err_qm_uninit:
-	hisi_qm_uninit(qm);
-	return ret;
-}
-
 /* Currently we only support equal assignment */
 static int hisi_zip_vf_q_assign(struct hisi_zip *hisi_zip, int num_vfs)
 {
@@ -832,6 +774,100 @@
 	return hisi_zip_clear_vft_config(hisi_zip);
 }
 
+static int hisi_zip_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct hisi_zip *hisi_zip;
+	enum qm_hw_ver rev_id;
+	struct hisi_qm *qm;
+	int ret;
+
+	rev_id = hisi_qm_get_hw_version(pdev);
+	if (rev_id == QM_HW_UNKNOWN)
+		return -EINVAL;
+
+	hisi_zip = devm_kzalloc(&pdev->dev, sizeof(*hisi_zip), GFP_KERNEL);
+	if (!hisi_zip)
+		return -ENOMEM;
+	pci_set_drvdata(pdev, hisi_zip);
+
+	qm = &hisi_zip->qm;
+	qm->pdev = pdev;
+	qm->ver = rev_id;
+
+	qm->sqe_size = HZIP_SQE_SIZE;
+	qm->dev_name = hisi_zip_name;
+	qm->fun_type = (pdev->device == PCI_DEVICE_ID_ZIP_PF) ? QM_HW_PF :
+								QM_HW_VF;
+	switch (uacce_mode) {
+	case 0:
+		qm->use_dma_api = true;
+		break;
+	case 1:
+		qm->use_dma_api = false;
+		break;
+	case 2:
+		qm->use_dma_api = true;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	ret = hisi_qm_init(qm);
+	if (ret) {
+		dev_err(&pdev->dev, "Failed to init qm!\n");
+		return ret;
+	}
+
+	if (qm->fun_type == QM_HW_PF) {
+		ret = hisi_zip_pf_probe_init(hisi_zip);
+		if (ret)
+			return ret;
+
+		qm->qp_base = HZIP_PF_DEF_Q_BASE;
+		qm->qp_num = pf_q_num;
+	} else if (qm->fun_type == QM_HW_VF) {
+		/*
+		 * have no way to get qm configure in VM in v1 hardware,
+		 * so currently force PF to uses HZIP_PF_DEF_Q_NUM, and force
+		 * to trigger only one VF in v1 hardware.
+		 *
+		 * v2 hardware has no such problem.
+		 */
+		if (qm->ver == QM_HW_V1) {
+			qm->qp_base = HZIP_PF_DEF_Q_NUM;
+			qm->qp_num = HZIP_QUEUE_NUM_V1 - HZIP_PF_DEF_Q_NUM;
+		} else if (qm->ver == QM_HW_V2)
+			/* v2 starts to support get vft by mailbox */
+			hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
+	}
+
+	ret = hisi_qm_start(qm);
+	if (ret)
+		goto err_qm_uninit;
+
+	ret = hisi_zip_debugfs_init(hisi_zip);
+	if (ret)
+		dev_err(&pdev->dev, "Failed to init debugfs (%d)!\n", ret);
+
+	hisi_zip_add_to_list(hisi_zip);
+
+	if (qm->fun_type == QM_HW_PF && vfs_num > 0) {
+		ret = hisi_zip_sriov_enable(pdev, vfs_num);
+		if (ret < 0)
+			goto err_remove_from_list;
+	}
+
+	return 0;
+
+err_remove_from_list:
+	hisi_zip_remove_from_list(hisi_zip);
+	hisi_zip_debugfs_exit(hisi_zip);
+	hisi_qm_stop(qm);
+err_qm_uninit:
+	hisi_qm_uninit(qm);
+	return ret;
+}
+
 static int hisi_zip_sriov_configure(struct pci_dev *pdev, int num_vfs)
 {
 	if (num_vfs == 0)
@@ -945,7 +981,7 @@
 	.probe			= hisi_zip_probe,
 	.remove			= hisi_zip_remove,
 	.sriov_configure	= IS_ENABLED(CONFIG_PCI_IOV) ?
-					hisi_zip_sriov_configure : 0,
+					hisi_zip_sriov_configure : NULL,
 	.err_handler		= &hisi_zip_err_handler,
 };
 
@@ -955,8 +991,6 @@
 		return;
 
 	hzip_debugfs_root = debugfs_create_dir("hisi_zip", NULL);
-	if (IS_ERR_OR_NULL(hzip_debugfs_root))
-		hzip_debugfs_root = NULL;
 }
 
 static void hisi_zip_unregister_debugfs(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/inside-secure/safexcel.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/inside-secure/safexcel.c
@@ -221,9 +221,9 @@
 	/* Step #3: Determine log2 of hash table size */
 	cs_ht_sz = __fls(asize - cs_rc_max) - 2;
 	/* Step #4: determine current size of hash table in dwords */
-	cs_ht_wc = 16<<cs_ht_sz; /* dwords, not admin words */
+	cs_ht_wc = 16 << cs_ht_sz; /* dwords, not admin words */
 	/* Step #5: add back excess words and see if we can fit more records */
-	cs_rc_max = min_t(uint, cs_rc_abs_max, asize - (cs_ht_wc >> 4));
+	cs_rc_max = min_t(uint, cs_rc_abs_max, asize - (cs_ht_wc >> 2));
 
 	/* Clear the cache RAMs */
 	eip197_trc_cache_clear(priv, cs_rc_max, cs_ht_wc);
@@ -1120,6 +1120,8 @@
 				irq_name, irq);
 			return irq;
 		}
+	} else {
+		return -ENXIO;
 	}
 
 	ret = devm_request_threaded_irq(dev, irq, handler,
@@ -1465,7 +1467,7 @@
 
 		priv->ring[i].rdr_req = devm_kcalloc(dev,
 			EIP197_DEFAULT_RING_SIZE,
-			sizeof(priv->ring[i].rdr_req),
+			sizeof(*priv->ring[i].rdr_req),
 			GFP_KERNEL);
 		if (!priv->ring[i].rdr_req)
 			return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/ixp4xx_crypto.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/ixp4xx_crypto.c
@@ -527,7 +527,7 @@
 
 	if (crypt_virt) {
 		dma_free_coherent(dev,
-			NPE_QLEN_TOTAL * sizeof( struct crypt_ctl),
+			NPE_QLEN * sizeof(struct crypt_ctl),
 			crypt_virt, crypt_phys);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/mediatek/mtk-platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/mediatek/mtk-platform.c
@@ -442,7 +442,7 @@
 static int mtk_desc_ring_alloc(struct mtk_cryp *cryp)
 {
 	struct mtk_ring **ring = cryp->ring;
-	int i, err = ENOMEM;
+	int i;
 
 	for (i = 0; i < MTK_RING_MAX; i++) {
 		ring[i] = kzalloc(sizeof(**ring), GFP_KERNEL);
@@ -469,14 +469,14 @@
 	return 0;
 
 err_cleanup:
-	for (; i--; ) {
+	do {
 		dma_free_coherent(cryp->dev, MTK_DESC_RING_SZ,
 				  ring[i]->res_base, ring[i]->res_dma);
 		dma_free_coherent(cryp->dev, MTK_DESC_RING_SZ,
 				  ring[i]->cmd_base, ring[i]->cmd_dma);
 		kfree(ring[i]);
-	}
-	return err;
+	} while (i--);
+	return -ENOMEM;
 }
 
 static int mtk_crypto_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/mxs-dcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/mxs-dcp.c
@@ -20,6 +20,7 @@
 #include <crypto/sha.h>
 #include <crypto/internal/hash.h>
 #include <crypto/internal/skcipher.h>
+#include <crypto/scatterwalk.h>
 
 #define DCP_MAX_CHANS	4
 #define DCP_BUF_SZ	PAGE_SIZE
@@ -621,49 +622,46 @@
 	struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
 	struct dcp_sha_req_ctx *rctx = ahash_request_ctx(req);
 	struct hash_alg_common *halg = crypto_hash_alg_common(tfm);
-	const int nents = sg_nents(req->src);
 
 	uint8_t *in_buf = sdcp->coh->sha_in_buf;
 	uint8_t *out_buf = sdcp->coh->sha_out_buf;
 
-	uint8_t *src_buf;
-
 	struct scatterlist *src;
 
-	unsigned int i, len, clen;
+	unsigned int i, len, clen, oft = 0;
 	int ret;
 
 	int fin = rctx->fini;
 	if (fin)
 		rctx->fini = 0;
 
-	for_each_sg(req->src, src, nents, i) {
-		src_buf = sg_virt(src);
-		len = sg_dma_len(src);
+	src = req->src;
+	len = req->nbytes;
 
-		do {
-			if (actx->fill + len > DCP_BUF_SZ)
-				clen = DCP_BUF_SZ - actx->fill;
-			else
-				clen = len;
+	while (len) {
+		if (actx->fill + len > DCP_BUF_SZ)
+			clen = DCP_BUF_SZ - actx->fill;
+		else
+			clen = len;
 
-			memcpy(in_buf + actx->fill, src_buf, clen);
-			len -= clen;
-			src_buf += clen;
-			actx->fill += clen;
+		scatterwalk_map_and_copy(in_buf + actx->fill, src, oft, clen,
+					 0);
 
-			/*
-			 * If we filled the buffer and still have some
-			 * more data, submit the buffer.
-			 */
-			if (len && actx->fill == DCP_BUF_SZ) {
-				ret = mxs_dcp_run_sha(req);
-				if (ret)
-					return ret;
-				actx->fill = 0;
-				rctx->init = 0;
-			}
-		} while (len);
+		len -= clen;
+		oft += clen;
+		actx->fill += clen;
+
+		/*
+		 * If we filled the buffer and still have some
+		 * more data, submit the buffer.
+		 */
+		if (len && actx->fill == DCP_BUF_SZ) {
+			ret = mxs_dcp_run_sha(req);
+			if (ret)
+				return ret;
+			actx->fill = 0;
+			rctx->init = 0;
+		}
 	}
 
 	if (fin) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/omap-aes.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/omap-aes.c
@@ -1157,7 +1157,7 @@
 	if (err < 0) {
 		dev_err(dev, "%s: failed to get_sync(%d)\n",
 			__func__, err);
-		goto err_res;
+		goto err_pm_disable;
 	}
 
 	omap_aes_dma_stop(dd);
@@ -1267,6 +1267,7 @@
 	omap_aes_dma_cleanup(dd);
 err_irq:
 	tasklet_kill(&dd->done_task);
+err_pm_disable:
 	pm_runtime_disable(dev);
 err_res:
 	dd = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/omap-sham.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/omap-sham.c
@@ -165,8 +165,6 @@
 };
 
 struct omap_sham_ctx {
-	struct omap_sham_dev	*dd;
-
 	unsigned long		flags;
 
 	/* fallback stuff */
@@ -455,6 +453,9 @@
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(dd->req);
 	u32 val, mask;
 
+	if (likely(ctx->digcnt))
+		omap_sham_write(dd, SHA_REG_DIGCNT(dd), ctx->digcnt);
+
 	/*
 	 * Setting ALGO_CONST only for the first iteration and
 	 * CLOSE_HASH only for the last one. Note that flags mode bits
@@ -918,27 +919,35 @@
 	return 0;
 }
 
+struct omap_sham_dev *omap_sham_find_dev(struct omap_sham_reqctx *ctx)
+{
+	struct omap_sham_dev *dd;
+
+	if (ctx->dd)
+		return ctx->dd;
+
+	spin_lock_bh(&sham.lock);
+	dd = list_first_entry(&sham.dev_list, struct omap_sham_dev, list);
+	list_move_tail(&dd->list, &sham.dev_list);
+	ctx->dd = dd;
+	spin_unlock_bh(&sham.lock);
+
+	return dd;
+}
+
 static int omap_sham_init(struct ahash_request *req)
 {
 	struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
 	struct omap_sham_ctx *tctx = crypto_ahash_ctx(tfm);
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(req);
-	struct omap_sham_dev *dd = NULL, *tmp;
+	struct omap_sham_dev *dd;
 	int bs = 0;
 
-	spin_lock_bh(&sham.lock);
-	if (!tctx->dd) {
-		list_for_each_entry(tmp, &sham.dev_list, list) {
-			dd = tmp;
-			break;
-		}
-		tctx->dd = dd;
-	} else {
-		dd = tctx->dd;
-	}
-	spin_unlock_bh(&sham.lock);
+	ctx->dd = NULL;
 
-	ctx->dd = dd;
+	dd = omap_sham_find_dev(ctx);
+	if (!dd)
+		return -ENODEV;
 
 	ctx->flags = 0;
 
@@ -1187,8 +1196,7 @@
 static int omap_sham_enqueue(struct ahash_request *req, unsigned int op)
 {
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(req);
-	struct omap_sham_ctx *tctx = crypto_tfm_ctx(req->base.tfm);
-	struct omap_sham_dev *dd = tctx->dd;
+	struct omap_sham_dev *dd = ctx->dd;
 
 	ctx->op = op;
 
@@ -1198,7 +1206,7 @@
 static int omap_sham_update(struct ahash_request *req)
 {
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(req);
-	struct omap_sham_dev *dd = ctx->dd;
+	struct omap_sham_dev *dd = omap_sham_find_dev(ctx);
 
 	if (!req->nbytes)
 		return 0;
@@ -1302,21 +1310,8 @@
 	struct omap_sham_hmac_ctx *bctx = tctx->base;
 	int bs = crypto_shash_blocksize(bctx->shash);
 	int ds = crypto_shash_digestsize(bctx->shash);
-	struct omap_sham_dev *dd = NULL, *tmp;
 	int err, i;
 
-	spin_lock_bh(&sham.lock);
-	if (!tctx->dd) {
-		list_for_each_entry(tmp, &sham.dev_list, list) {
-			dd = tmp;
-			break;
-		}
-		tctx->dd = dd;
-	} else {
-		dd = tctx->dd;
-	}
-	spin_unlock_bh(&sham.lock);
-
 	err = crypto_shash_setkey(tctx->fallback, key, keylen);
 	if (err)
 		return err;
@@ -1334,7 +1329,7 @@
 
 	memset(bctx->ipad + keylen, 0, bs - keylen);
 
-	if (!test_bit(FLAGS_AUTO_XOR, &dd->flags)) {
+	if (!test_bit(FLAGS_AUTO_XOR, &sham.flags)) {
 		memcpy(bctx->opad, bctx->ipad, bs);
 
 		for (i = 0; i < bs; i++) {
@@ -2136,6 +2131,7 @@
 	}
 
 	dd->flags |= dd->pdata->flags;
+	sham.flags |= dd->pdata->flags;
 
 	pm_runtime_use_autosuspend(dev);
 	pm_runtime_set_autosuspend_delay(dev, DEFAULT_AUTOSUSPEND_DELAY);
@@ -2163,6 +2159,9 @@
 	spin_unlock(&sham.lock);
 
 	for (i = 0; i < dd->pdata->algs_info_size; i++) {
+		if (dd->pdata->algs_info[i].registered)
+			break;
+
 		for (j = 0; j < dd->pdata->algs_info[i].size; j++) {
 			struct ahash_alg *alg;
 
@@ -2214,9 +2213,11 @@
 	list_del(&dd->list);
 	spin_unlock(&sham.lock);
 	for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
-		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
+		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) {
 			crypto_unregister_ahash(
 					&dd->pdata->algs_info[i].algs_list[j]);
+			dd->pdata->algs_info[i].registered--;
+		}
 	tasklet_kill(&dd->done_task);
 	pm_runtime_disable(&pdev->dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/picoxcell_crypto.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/picoxcell_crypto.c
@@ -1613,6 +1613,11 @@
 MODULE_DEVICE_TABLE(of, spacc_of_id_table);
 #endif /* CONFIG_OF */
 
+static void spacc_tasklet_kill(void *data)
+{
+	tasklet_kill(data);
+}
+
 static int spacc_probe(struct platform_device *pdev)
 {
 	int i, err, ret;
@@ -1655,6 +1660,14 @@
 		return -ENXIO;
 	}
 
+	tasklet_init(&engine->complete, spacc_spacc_complete,
+		     (unsigned long)engine);
+
+	ret = devm_add_action(&pdev->dev, spacc_tasklet_kill,
+			      &engine->complete);
+	if (ret)
+		return ret;
+
 	if (devm_request_irq(&pdev->dev, irq->start, spacc_spacc_irq, 0,
 			     engine->name, engine)) {
 		dev_err(engine->dev, "failed to request IRQ\n");
@@ -1684,11 +1697,6 @@
 		goto err_clk_put;
 	}
 
-	ret = device_create_file(&pdev->dev, &dev_attr_stat_irq_thresh);
-	if (ret)
-		goto err_clk_disable;
-
-
 	/*
 	 * Use an IRQ threshold of 50% as a default. This seems to be a
 	 * reasonable trade off of latency against throughput but can be
@@ -1696,6 +1704,10 @@
 	 */
 	engine->stat_irq_thresh = (engine->fifo_sz / 2);
 
+	ret = device_create_file(&pdev->dev, &dev_attr_stat_irq_thresh);
+	if (ret)
+		goto err_clk_disable;
+
 	/*
 	 * Configure the interrupts. We only use the STAT_CNT interrupt as we
 	 * only submit a new packet for processing when we complete another in
@@ -1712,8 +1724,6 @@
 	INIT_LIST_HEAD(&engine->completed);
 	INIT_LIST_HEAD(&engine->in_progress);
 	engine->in_flight = 0;
-	tasklet_init(&engine->complete, spacc_spacc_complete,
-		     (unsigned long)engine);
 
 	platform_set_drvdata(pdev, engine);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/qat/qat_common/qat_algs.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/qat/qat_common/qat_algs.c
@@ -873,6 +873,11 @@
 	struct icp_qat_fw_la_bulk_req *msg;
 	int digst_size = crypto_aead_authsize(aead_tfm);
 	int ret, ctr = 0;
+	u32 cipher_len;
+
+	cipher_len = areq->cryptlen - digst_size;
+	if (cipher_len % AES_BLOCK_SIZE != 0)
+		return -EINVAL;
 
 	ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req);
 	if (unlikely(ret))
@@ -887,7 +892,7 @@
 	qat_req->req.comn_mid.src_data_addr = qat_req->buf.blp;
 	qat_req->req.comn_mid.dest_data_addr = qat_req->buf.bloutp;
 	cipher_param = (void *)&qat_req->req.serv_specif_rqpars;
-	cipher_param->cipher_length = areq->cryptlen - digst_size;
+	cipher_param->cipher_length = cipher_len;
 	cipher_param->cipher_offset = areq->assoclen;
 	memcpy(cipher_param->u.cipher_IV_array, areq->iv, AES_BLOCK_SIZE);
 	auth_param = (void *)((uint8_t *)cipher_param + sizeof(*cipher_param));
@@ -916,6 +921,9 @@
 	uint8_t *iv = areq->iv;
 	int ret, ctr = 0;
 
+	if (areq->cryptlen % AES_BLOCK_SIZE != 0)
+		return -EINVAL;
+
 	ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req);
 	if (unlikely(ret))
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/qat/qat_common/qat_hal.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/qat/qat_common/qat_hal.c
@@ -1189,7 +1189,7 @@
 	unsigned short mask;
 	unsigned short dr_offset = 0x10;
 
-	status = ctx_enables = qat_hal_rd_ae_csr(handle, ae, CTX_ENABLES);
+	ctx_enables = qat_hal_rd_ae_csr(handle, ae, CTX_ENABLES);
 	if (CE_INUSE_CONTEXTS & ctx_enables) {
 		if (ctx & 0x1) {
 			pr_err("QAT: bad 4-ctx mode,ctx=0x%x\n", ctx);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/qat/qat_common/qat_uclo.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/qat/qat_common/qat_uclo.c
@@ -332,13 +332,18 @@
 	}
 	return 0;
 out_err:
+	/* Do not free the list head unless we allocated it. */
+	tail_old = tail_old->next;
+	if (flag) {
+		kfree(*init_tab_base);
+		*init_tab_base = NULL;
+	}
+
 	while (tail_old) {
 		mem_init = tail_old->next;
 		kfree(tail_old);
 		tail_old = mem_init;
 	}
-	if (flag)
-		kfree(*init_tab_base);
 	return -ENOMEM;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/stm32/stm32-crc32.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/stm32/stm32-crc32.c
@@ -28,8 +28,10 @@
 
 /* Registers values */
 #define CRC_CR_RESET            BIT(0)
-#define CRC_CR_REVERSE          (BIT(7) | BIT(6) | BIT(5))
-#define CRC_INIT_DEFAULT        0xFFFFFFFF
+#define CRC_CR_REV_IN_WORD      (BIT(6) | BIT(5))
+#define CRC_CR_REV_IN_BYTE      BIT(5)
+#define CRC_CR_REV_OUT          BIT(7)
+#define CRC32C_INIT_DEFAULT     0xFFFFFFFF
 
 #define CRC_AUTOSUSPEND_DELAY	50
 
@@ -38,8 +40,6 @@
 	struct device    *dev;
 	void __iomem     *regs;
 	struct clk       *clk;
-	u8               pending_data[sizeof(u32)];
-	size_t           nb_pending_bytes;
 };
 
 struct stm32_crc_list {
@@ -59,14 +59,13 @@
 
 struct stm32_crc_desc_ctx {
 	u32    partial; /* crc32c: partial in first 4 bytes of that struct */
-	struct stm32_crc *crc;
 };
 
 static int stm32_crc32_cra_init(struct crypto_tfm *tfm)
 {
 	struct stm32_crc_ctx *mctx = crypto_tfm_ctx(tfm);
 
-	mctx->key = CRC_INIT_DEFAULT;
+	mctx->key = 0;
 	mctx->poly = CRC32_POLY_LE;
 	return 0;
 }
@@ -75,7 +74,7 @@
 {
 	struct stm32_crc_ctx *mctx = crypto_tfm_ctx(tfm);
 
-	mctx->key = CRC_INIT_DEFAULT;
+	mctx->key = CRC32C_INIT_DEFAULT;
 	mctx->poly = CRC32C_POLY_LE;
 	return 0;
 }
@@ -94,32 +93,42 @@
 	return 0;
 }
 
+static struct stm32_crc *stm32_crc_get_next_crc(void)
+{
+	struct stm32_crc *crc;
+
+	spin_lock_bh(&crc_list.lock);
+	crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list);
+	if (crc)
+		list_move_tail(&crc->list, &crc_list.dev_list);
+	spin_unlock_bh(&crc_list.lock);
+
+	return crc;
+}
+
 static int stm32_crc_init(struct shash_desc *desc)
 {
 	struct stm32_crc_desc_ctx *ctx = shash_desc_ctx(desc);
 	struct stm32_crc_ctx *mctx = crypto_shash_ctx(desc->tfm);
 	struct stm32_crc *crc;
 
-	spin_lock_bh(&crc_list.lock);
-	list_for_each_entry(crc, &crc_list.dev_list, list) {
-		ctx->crc = crc;
-		break;
-	}
-	spin_unlock_bh(&crc_list.lock);
+	crc = stm32_crc_get_next_crc();
+	if (!crc)
+		return -ENODEV;
 
-	pm_runtime_get_sync(ctx->crc->dev);
+	pm_runtime_get_sync(crc->dev);
 
 	/* Reset, set key, poly and configure in bit reverse mode */
-	writel_relaxed(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
-	writel_relaxed(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
-	writel_relaxed(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
+	writel_relaxed(bitrev32(mctx->key), crc->regs + CRC_INIT);
+	writel_relaxed(bitrev32(mctx->poly), crc->regs + CRC_POL);
+	writel_relaxed(CRC_CR_RESET | CRC_CR_REV_IN_WORD | CRC_CR_REV_OUT,
+		       crc->regs + CRC_CR);
 
 	/* Store partial result */
-	ctx->partial = readl_relaxed(ctx->crc->regs + CRC_DR);
-	ctx->crc->nb_pending_bytes = 0;
+	ctx->partial = readl_relaxed(crc->regs + CRC_DR);
 
-	pm_runtime_mark_last_busy(ctx->crc->dev);
-	pm_runtime_put_autosuspend(ctx->crc->dev);
+	pm_runtime_mark_last_busy(crc->dev);
+	pm_runtime_put_autosuspend(crc->dev);
 
 	return 0;
 }
@@ -128,31 +137,49 @@
 			    unsigned int length)
 {
 	struct stm32_crc_desc_ctx *ctx = shash_desc_ctx(desc);
-	struct stm32_crc *crc = ctx->crc;
-	u32 *d32;
-	unsigned int i;
+	struct stm32_crc_ctx *mctx = crypto_shash_ctx(desc->tfm);
+	struct stm32_crc *crc;
+
+	crc = stm32_crc_get_next_crc();
+	if (!crc)
+		return -ENODEV;
 
 	pm_runtime_get_sync(crc->dev);
 
-	if (unlikely(crc->nb_pending_bytes)) {
-		while (crc->nb_pending_bytes != sizeof(u32) && length) {
-			/* Fill in pending data */
-			crc->pending_data[crc->nb_pending_bytes++] = *(d8++);
+	/*
+	 * Restore previously calculated CRC for this context as init value
+	 * Restore polynomial configuration
+	 * Configure in register for word input data,
+	 * Configure out register in reversed bit mode data.
+	 */
+	writel_relaxed(bitrev32(ctx->partial), crc->regs + CRC_INIT);
+	writel_relaxed(bitrev32(mctx->poly), crc->regs + CRC_POL);
+	writel_relaxed(CRC_CR_RESET | CRC_CR_REV_IN_WORD | CRC_CR_REV_OUT,
+		       crc->regs + CRC_CR);
+
+	if (d8 != PTR_ALIGN(d8, sizeof(u32))) {
+		/* Configure for byte data */
+		writel_relaxed(CRC_CR_REV_IN_BYTE | CRC_CR_REV_OUT,
+			       crc->regs + CRC_CR);
+		while (d8 != PTR_ALIGN(d8, sizeof(u32)) && length) {
+			writeb_relaxed(*d8++, crc->regs + CRC_DR);
 			length--;
 		}
-
-		if (crc->nb_pending_bytes == sizeof(u32)) {
-			/* Process completed pending data */
-			writel_relaxed(*(u32 *)crc->pending_data,
-				       crc->regs + CRC_DR);
-			crc->nb_pending_bytes = 0;
-		}
+		/* Configure for word data */
+		writel_relaxed(CRC_CR_REV_IN_WORD | CRC_CR_REV_OUT,
+			       crc->regs + CRC_CR);
 	}
 
-	d32 = (u32 *)d8;
-	for (i = 0; i < length >> 2; i++)
-		/* Process 32 bits data */
-		writel_relaxed(*(d32++), crc->regs + CRC_DR);
+	for (; length >= sizeof(u32); d8 += sizeof(u32), length -= sizeof(u32))
+		writel_relaxed(*((u32 *)d8), crc->regs + CRC_DR);
+
+	if (length) {
+		/* Configure for byte data */
+		writel_relaxed(CRC_CR_REV_IN_BYTE | CRC_CR_REV_OUT,
+			       crc->regs + CRC_CR);
+		while (length--)
+			writeb_relaxed(*d8++, crc->regs + CRC_DR);
+	}
 
 	/* Store partial result */
 	ctx->partial = readl_relaxed(crc->regs + CRC_DR);
@@ -160,22 +187,6 @@
 	pm_runtime_mark_last_busy(crc->dev);
 	pm_runtime_put_autosuspend(crc->dev);
 
-	/* Check for pending data (non 32 bits) */
-	length &= 3;
-	if (likely(!length))
-		return 0;
-
-	if ((crc->nb_pending_bytes + length) >= sizeof(u32)) {
-		/* Shall not happen */
-		dev_err(crc->dev, "Pending data overflow\n");
-		return -EINVAL;
-	}
-
-	d8 = (const u8 *)d32;
-	for (i = 0; i < length; i++)
-		/* Store pending data */
-		crc->pending_data[crc->nb_pending_bytes++] = *(d8++);
-
 	return 0;
 }
 
@@ -204,6 +215,8 @@
 	return stm32_crc_init(desc) ?: stm32_crc_finup(desc, data, length, out);
 }
 
+static unsigned int refcnt;
+static DEFINE_MUTEX(refcnt_lock);
 static struct shash_alg algs[] = {
 	/* CRC-32 */
 	{
@@ -294,12 +307,18 @@
 	list_add(&crc->list, &crc_list.dev_list);
 	spin_unlock(&crc_list.lock);
 
-	ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
-	if (ret) {
-		dev_err(dev, "Failed to register\n");
-		clk_disable_unprepare(crc->clk);
-		return ret;
+	mutex_lock(&refcnt_lock);
+	if (!refcnt) {
+		ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
+		if (ret) {
+			mutex_unlock(&refcnt_lock);
+			dev_err(dev, "Failed to register\n");
+			clk_disable_unprepare(crc->clk);
+			return ret;
+		}
 	}
+	refcnt++;
+	mutex_unlock(&refcnt_lock);
 
 	dev_info(dev, "Initialized\n");
 
@@ -320,7 +339,10 @@
 	list_del(&crc->list);
 	spin_unlock(&crc_list.lock);
 
-	crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
+	mutex_lock(&refcnt_lock);
+	if (!--refcnt)
+		crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
+	mutex_unlock(&refcnt_lock);
 
 	pm_runtime_disable(crc->dev);
 	pm_runtime_put_noidle(crc->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
@@ -30,6 +30,8 @@
 	unsigned int ileft = areq->cryptlen;
 	unsigned int oleft = areq->cryptlen;
 	unsigned int todo;
+	unsigned long pi = 0, po = 0; /* progress for in and out */
+	bool miter_err;
 	struct sg_mapping_iter mi, mo;
 	unsigned int oi, oo; /* offset for in and out */
 	unsigned long flags;
@@ -44,59 +46,74 @@
 
 	spin_lock_irqsave(&ss->slock, flags);
 
-	for (i = 0; i < op->keylen; i += 4)
-		writel(*(op->key + i / 4), ss->base + SS_KEY0 + i);
+	for (i = 0; i < op->keylen / 4; i++)
+		writesl(ss->base + SS_KEY0 + i * 4, &op->key[i], 1);
 
 	if (areq->iv) {
 		for (i = 0; i < 4 && i < ivsize / 4; i++) {
 			v = *(u32 *)(areq->iv + i * 4);
-			writel(v, ss->base + SS_IV0 + i * 4);
+			writesl(ss->base + SS_IV0 + i * 4, &v, 1);
 		}
 	}
 	writel(mode, ss->base + SS_CTL);
 
-	sg_miter_start(&mi, areq->src, sg_nents(areq->src),
-		       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
-	sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
-		       SG_MITER_TO_SG | SG_MITER_ATOMIC);
-	sg_miter_next(&mi);
-	sg_miter_next(&mo);
-	if (!mi.addr || !mo.addr) {
-		dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
-		err = -EINVAL;
-		goto release_ss;
-	}
 
 	ileft = areq->cryptlen / 4;
 	oleft = areq->cryptlen / 4;
 	oi = 0;
 	oo = 0;
 	do {
-		todo = min3(rx_cnt, ileft, (mi.length - oi) / 4);
-		if (todo) {
-			ileft -= todo;
-			writesl(ss->base + SS_RXFIFO, mi.addr + oi, todo);
-			oi += todo * 4;
-		}
-		if (oi == mi.length) {
-			sg_miter_next(&mi);
-			oi = 0;
+		if (ileft) {
+			sg_miter_start(&mi, areq->src, sg_nents(areq->src),
+					SG_MITER_FROM_SG | SG_MITER_ATOMIC);
+			if (pi)
+				sg_miter_skip(&mi, pi);
+			miter_err = sg_miter_next(&mi);
+			if (!miter_err || !mi.addr) {
+				dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+				err = -EINVAL;
+				goto release_ss;
+			}
+			todo = min(rx_cnt, ileft);
+			todo = min_t(size_t, todo, (mi.length - oi) / 4);
+			if (todo) {
+				ileft -= todo;
+				writesl(ss->base + SS_RXFIFO, mi.addr + oi, todo);
+				oi += todo * 4;
+			}
+			if (oi == mi.length) {
+				pi += mi.length;
+				oi = 0;
+			}
+			sg_miter_stop(&mi);
 		}
 
 		spaces = readl(ss->base + SS_FCSR);
 		rx_cnt = SS_RXFIFO_SPACES(spaces);
 		tx_cnt = SS_TXFIFO_SPACES(spaces);
 
-		todo = min3(tx_cnt, oleft, (mo.length - oo) / 4);
+		sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
+			       SG_MITER_TO_SG | SG_MITER_ATOMIC);
+		if (po)
+			sg_miter_skip(&mo, po);
+		miter_err = sg_miter_next(&mo);
+		if (!miter_err || !mo.addr) {
+			dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+			err = -EINVAL;
+			goto release_ss;
+		}
+		todo = min(tx_cnt, oleft);
+		todo = min_t(size_t, todo, (mo.length - oo) / 4);
 		if (todo) {
 			oleft -= todo;
 			readsl(ss->base + SS_TXFIFO, mo.addr + oo, todo);
 			oo += todo * 4;
 		}
 		if (oo == mo.length) {
-			sg_miter_next(&mo);
 			oo = 0;
+			po += mo.length;
 		}
+		sg_miter_stop(&mo);
 	} while (oleft);
 
 	if (areq->iv) {
@@ -107,8 +124,6 @@
 	}
 
 release_ss:
-	sg_miter_stop(&mi);
-	sg_miter_stop(&mo);
 	writel(0, ss->base + SS_CTL);
 	spin_unlock_irqrestore(&ss->slock, flags);
 	return err;
@@ -162,12 +177,14 @@
 	unsigned int oleft = areq->cryptlen;
 	unsigned int todo;
 	struct sg_mapping_iter mi, mo;
+	unsigned long pi = 0, po = 0; /* progress for in and out */
+	bool miter_err;
 	unsigned int oi, oo;	/* offset for in and out */
 	unsigned int ob = 0;	/* offset in buf */
 	unsigned int obo = 0;	/* offset in bufo*/
 	unsigned int obl = 0;	/* length of data in bufo */
 	unsigned long flags;
-	bool need_fallback;
+	bool need_fallback = false;
 
 	if (!areq->cryptlen)
 		return 0;
@@ -186,12 +203,12 @@
 	 * we can use the SS optimized function
 	 */
 	while (in_sg && no_chunk == 1) {
-		if (in_sg->length % 4)
+		if ((in_sg->length | in_sg->offset) & 3u)
 			no_chunk = 0;
 		in_sg = sg_next(in_sg);
 	}
 	while (out_sg && no_chunk == 1) {
-		if (out_sg->length % 4)
+		if ((out_sg->length | out_sg->offset) & 3u)
 			no_chunk = 0;
 		out_sg = sg_next(out_sg);
 	}
@@ -204,28 +221,17 @@
 
 	spin_lock_irqsave(&ss->slock, flags);
 
-	for (i = 0; i < op->keylen; i += 4)
-		writel(*(op->key + i / 4), ss->base + SS_KEY0 + i);
+	for (i = 0; i < op->keylen / 4; i++)
+		writesl(ss->base + SS_KEY0 + i * 4, &op->key[i], 1);
 
 	if (areq->iv) {
 		for (i = 0; i < 4 && i < ivsize / 4; i++) {
 			v = *(u32 *)(areq->iv + i * 4);
-			writel(v, ss->base + SS_IV0 + i * 4);
+			writesl(ss->base + SS_IV0 + i * 4, &v, 1);
 		}
 	}
 	writel(mode, ss->base + SS_CTL);
 
-	sg_miter_start(&mi, areq->src, sg_nents(areq->src),
-		       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
-	sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
-		       SG_MITER_TO_SG | SG_MITER_ATOMIC);
-	sg_miter_next(&mi);
-	sg_miter_next(&mo);
-	if (!mi.addr || !mo.addr) {
-		dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
-		err = -EINVAL;
-		goto release_ss;
-	}
 	ileft = areq->cryptlen;
 	oleft = areq->cryptlen;
 	oi = 0;
@@ -233,13 +239,22 @@
 
 	while (oleft) {
 		if (ileft) {
-			char buf[4 * SS_RX_MAX];/* buffer for linearize SG src */
-
+			sg_miter_start(&mi, areq->src, sg_nents(areq->src),
+				       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
+			if (pi)
+				sg_miter_skip(&mi, pi);
+			miter_err = sg_miter_next(&mi);
+			if (!miter_err || !mi.addr) {
+				dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+				err = -EINVAL;
+				goto release_ss;
+			}
 			/*
 			 * todo is the number of consecutive 4byte word that we
 			 * can read from current SG
 			 */
-			todo = min3(rx_cnt, ileft / 4, (mi.length - oi) / 4);
+			todo = min(rx_cnt, ileft / 4);
+			todo = min_t(size_t, todo, (mi.length - oi) / 4);
 			if (todo && !ob) {
 				writesl(ss->base + SS_RXFIFO, mi.addr + oi,
 					todo);
@@ -253,52 +268,59 @@
 				 * we need to be able to write all buf in one
 				 * pass, so it is why we min() with rx_cnt
 				 */
-				todo = min3(rx_cnt * 4 - ob, ileft,
-					    mi.length - oi);
-				memcpy(buf + ob, mi.addr + oi, todo);
+				todo = min(rx_cnt * 4 - ob, ileft);
+				todo = min_t(size_t, todo, mi.length - oi);
+				memcpy(ss->buf + ob, mi.addr + oi, todo);
 				ileft -= todo;
 				oi += todo;
 				ob += todo;
 				if (!(ob % 4)) {
-					writesl(ss->base + SS_RXFIFO, buf,
+					writesl(ss->base + SS_RXFIFO, ss->buf,
 						ob / 4);
 					ob = 0;
 				}
 			}
 			if (oi == mi.length) {
-				sg_miter_next(&mi);
+				pi += mi.length;
 				oi = 0;
 			}
+			sg_miter_stop(&mi);
 		}
 
 		spaces = readl(ss->base + SS_FCSR);
 		rx_cnt = SS_RXFIFO_SPACES(spaces);
 		tx_cnt = SS_TXFIFO_SPACES(spaces);
-		dev_dbg(ss->dev, "%x %u/%u %u/%u cnt=%u %u/%u %u/%u cnt=%u %u\n",
-			mode,
-			oi, mi.length, ileft, areq->cryptlen, rx_cnt,
-			oo, mo.length, oleft, areq->cryptlen, tx_cnt, ob);
 
 		if (!tx_cnt)
 			continue;
+		sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
+			       SG_MITER_TO_SG | SG_MITER_ATOMIC);
+		if (po)
+			sg_miter_skip(&mo, po);
+		miter_err = sg_miter_next(&mo);
+		if (!miter_err || !mo.addr) {
+			dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+			err = -EINVAL;
+			goto release_ss;
+		}
 		/* todo in 4bytes word */
-		todo = min3(tx_cnt, oleft / 4, (mo.length - oo) / 4);
+		todo = min(tx_cnt, oleft / 4);
+		todo = min_t(size_t, todo, (mo.length - oo) / 4);
+
 		if (todo) {
 			readsl(ss->base + SS_TXFIFO, mo.addr + oo, todo);
 			oleft -= todo * 4;
 			oo += todo * 4;
 			if (oo == mo.length) {
-				sg_miter_next(&mo);
+				po += mo.length;
 				oo = 0;
 			}
 		} else {
-			char bufo[4 * SS_TX_MAX]; /* buffer for linearize SG dst */
-
 			/*
 			 * read obl bytes in bufo, we read at maximum for
 			 * emptying the device
 			 */
-			readsl(ss->base + SS_TXFIFO, bufo, tx_cnt);
+			readsl(ss->base + SS_TXFIFO, ss->bufo, tx_cnt);
 			obl = tx_cnt * 4;
 			obo = 0;
 			do {
@@ -308,18 +330,21 @@
 				 * no more than remaining buffer
 				 * no need to test against oleft
 				 */
-				todo = min(mo.length - oo, obl - obo);
-				memcpy(mo.addr + oo, bufo + obo, todo);
+				todo = min_t(size_t,
+					     mo.length - oo, obl - obo);
+				memcpy(mo.addr + oo, ss->bufo + obo, todo);
 				oleft -= todo;
 				obo += todo;
 				oo += todo;
 				if (oo == mo.length) {
+					po += mo.length;
 					sg_miter_next(&mo);
 					oo = 0;
 				}
 			} while (obo < obl);
 			/* bufo must be fully used here */
 		}
+		sg_miter_stop(&mo);
 	}
 	if (areq->iv) {
 		for (i = 0; i < 4 && i < ivsize / 4; i++) {
@@ -329,8 +354,6 @@
 	}
 
 release_ss:
-	sg_miter_stop(&mi);
-	sg_miter_stop(&mo);
 	writel(0, ss->base + SS_CTL);
 	spin_unlock_irqrestore(&ss->slock, flags);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
@@ -175,7 +175,7 @@
 	 */
 	unsigned int i = 0, end, fill, min_fill, nwait, nbw = 0, j = 0, todo;
 	unsigned int in_i = 0;
-	u32 spaces, rx_cnt = SS_RX_DEFAULT, bf[32] = {0}, wb = 0, v, ivmode = 0;
+	u32 spaces, rx_cnt = SS_RX_DEFAULT, bf[32] = {0}, v, ivmode = 0;
 	struct sun4i_req_ctx *op = ahash_request_ctx(areq);
 	struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
 	struct sun4i_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm);
@@ -184,6 +184,7 @@
 	struct sg_mapping_iter mi;
 	int in_r, err = 0;
 	size_t copied = 0;
+	__le32 wb = 0;
 
 	dev_dbg(ss->dev, "%s %s bc=%llu len=%u mode=%x wl=%u h0=%0x",
 		__func__, crypto_tfm_alg_name(areq->base.tfm),
@@ -272,8 +273,8 @@
 			 */
 			while (op->len < 64 && i < end) {
 				/* how many bytes we can read from current SG */
-				in_r = min3(mi.length - in_i, end - i,
-					    64 - op->len);
+				in_r = min(end - i, 64 - op->len);
+				in_r = min_t(size_t, mi.length - in_i, in_r);
 				memcpy(op->buf + op->len, mi.addr + in_i, in_r);
 				op->len += in_r;
 				i += in_r;
@@ -293,8 +294,8 @@
 		}
 		if (mi.length - in_i > 3 && i < end) {
 			/* how many bytes we can read from current SG */
-			in_r = min3(mi.length - in_i, areq->nbytes - i,
-				    ((mi.length - in_i) / 4) * 4);
+			in_r = min_t(size_t, mi.length - in_i, areq->nbytes - i);
+			in_r = min_t(size_t, ((mi.length - in_i) / 4) * 4, in_r);
 			/* how many bytes we can write in the device*/
 			todo = min3((u32)(end - i) / 4, rx_cnt, (u32)in_r / 4);
 			writesl(ss->base + SS_RXFIFO, mi.addr + in_i, todo);
@@ -320,8 +321,8 @@
 	if ((areq->nbytes - i) < 64) {
 		while (i < areq->nbytes && in_i < mi.length && op->len < 64) {
 			/* how many bytes we can read from current SG */
-			in_r = min3(mi.length - in_i, areq->nbytes - i,
-				    64 - op->len);
+			in_r = min(areq->nbytes - i, 64 - op->len);
+			in_r = min_t(size_t, mi.length - in_i, in_r);
 			memcpy(op->buf + op->len, mi.addr + in_i, in_r);
 			op->len += in_r;
 			i += in_r;
@@ -395,7 +396,7 @@
 
 		nbw = op->len - 4 * nwait;
 		if (nbw) {
-			wb = *(u32 *)(op->buf + nwait * 4);
+			wb = cpu_to_le32(*(u32 *)(op->buf + nwait * 4));
 			wb &= GENMASK((nbw * 8) - 1, 0);
 
 			op->byte_count += nbw;
@@ -404,7 +405,7 @@
 
 	/* write the remaining bytes of the nbw buffer */
 	wb |= ((1 << 7) << (nbw * 8));
-	bf[j++] = wb;
+	bf[j++] = le32_to_cpu(wb);
 
 	/*
 	 * number of space to pad to obtain 64o minus 8(size) minus 4 (final 1)
@@ -423,13 +424,13 @@
 
 	/* write the length of data */
 	if (op->mode == SS_OP_SHA1) {
-		__be64 bits = cpu_to_be64(op->byte_count << 3);
-		bf[j++] = lower_32_bits(bits);
-		bf[j++] = upper_32_bits(bits);
+		__be64 *bits = (__be64 *)&bf[j];
+		*bits = cpu_to_be64(op->byte_count << 3);
+		j += 2;
 	} else {
-		__le64 bits = op->byte_count << 3;
-		bf[j++] = lower_32_bits(bits);
-		bf[j++] = upper_32_bits(bits);
+		__le64 *bits = (__le64 *)&bf[j];
+		*bits = cpu_to_le64(op->byte_count << 3);
+		j += 2;
 	}
 	writesl(ss->base + SS_RXFIFO, bf, j);
 
@@ -471,7 +472,7 @@
 		}
 	} else {
 		for (i = 0; i < 4; i++) {
-			v = readl(ss->base + SS_MD0 + i * 4);
+			v = cpu_to_le32(readl(ss->base + SS_MD0 + i * 4));
 			memcpy(areq->result + i * 4, &v, 4);
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/sunxi-ss/sun4i-ss.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/sunxi-ss/sun4i-ss.h
@@ -138,6 +138,8 @@
 	struct reset_control *reset;
 	struct device *dev;
 	struct resource *res;
+	char buf[4 * SS_RX_MAX];/* buffer for linearize SG src */
+	char bufo[4 * SS_TX_MAX]; /* buffer for linearize SG dst */
 	spinlock_t slock; /* control the use of the device */
 #ifdef CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG
 	u32 seed[SS_SEED_LEN / BITS_PER_LONG];
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/talitos.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/talitos.c
@@ -460,7 +460,7 @@
 /*
  * locate current (offending) descriptor
  */
-static u32 current_desc_hdr(struct device *dev, int ch)
+static __be32 current_desc_hdr(struct device *dev, int ch)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	int tail, iter;
@@ -478,7 +478,7 @@
 
 	iter = tail;
 	while (priv->chan[ch].fifo[iter].dma_desc != cur_desc &&
-	       priv->chan[ch].fifo[iter].desc->next_desc != cur_desc) {
+	       priv->chan[ch].fifo[iter].desc->next_desc != cpu_to_be32(cur_desc)) {
 		iter = (iter + 1) & (priv->fifo_len - 1);
 		if (iter == tail) {
 			dev_err(dev, "couldn't locate current descriptor\n");
@@ -486,7 +486,7 @@
 		}
 	}
 
-	if (priv->chan[ch].fifo[iter].desc->next_desc == cur_desc) {
+	if (priv->chan[ch].fifo[iter].desc->next_desc == cpu_to_be32(cur_desc)) {
 		struct talitos_edesc *edesc;
 
 		edesc = container_of(priv->chan[ch].fifo[iter].desc,
@@ -501,13 +501,13 @@
 /*
  * user diagnostics; report root cause of error based on execution unit status
  */
-static void report_eu_error(struct device *dev, int ch, u32 desc_hdr)
+static void report_eu_error(struct device *dev, int ch, __be32 desc_hdr)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	int i;
 
 	if (!desc_hdr)
-		desc_hdr = in_be32(priv->chan[ch].reg + TALITOS_DESCBUF);
+		desc_hdr = cpu_to_be32(in_be32(priv->chan[ch].reg + TALITOS_DESCBUF));
 
 	switch (desc_hdr & DESC_HDR_SEL0_MASK) {
 	case DESC_HDR_SEL0_AFEU:
@@ -1097,11 +1097,12 @@
  */
 static int sg_to_link_tbl_offset(struct scatterlist *sg, int sg_count,
 				 unsigned int offset, int datalen, int elen,
-				 struct talitos_ptr *link_tbl_ptr)
+				 struct talitos_ptr *link_tbl_ptr, int align)
 {
 	int n_sg = elen ? sg_count + 1 : sg_count;
 	int count = 0;
 	int cryptlen = datalen + elen;
+	int padding = ALIGN(cryptlen, align) - cryptlen;
 
 	while (cryptlen && sg && n_sg--) {
 		unsigned int len = sg_dma_len(sg);
@@ -1125,7 +1126,7 @@
 			offset += datalen;
 		}
 		to_talitos_ptr(link_tbl_ptr + count,
-			       sg_dma_address(sg) + offset, len, 0);
+			       sg_dma_address(sg) + offset, sg_next(sg) ? len : len + padding, 0);
 		to_talitos_ptr_ext_set(link_tbl_ptr + count, 0, 0);
 		count++;
 		cryptlen -= len;
@@ -1148,10 +1149,11 @@
 			      unsigned int len, struct talitos_edesc *edesc,
 			      struct talitos_ptr *ptr, int sg_count,
 			      unsigned int offset, int tbl_off, int elen,
-			      bool force)
+			      bool force, int align)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	bool is_sec1 = has_ftr_sec1(priv);
+	int aligned_len = ALIGN(len, align);
 
 	if (!src) {
 		to_talitos_ptr(ptr, 0, 0, is_sec1);
@@ -1159,22 +1161,22 @@
 	}
 	to_talitos_ptr_ext_set(ptr, elen, is_sec1);
 	if (sg_count == 1 && !force) {
-		to_talitos_ptr(ptr, sg_dma_address(src) + offset, len, is_sec1);
+		to_talitos_ptr(ptr, sg_dma_address(src) + offset, aligned_len, is_sec1);
 		return sg_count;
 	}
 	if (is_sec1) {
-		to_talitos_ptr(ptr, edesc->dma_link_tbl + offset, len, is_sec1);
+		to_talitos_ptr(ptr, edesc->dma_link_tbl + offset, aligned_len, is_sec1);
 		return sg_count;
 	}
 	sg_count = sg_to_link_tbl_offset(src, sg_count, offset, len, elen,
-					 &edesc->link_tbl[tbl_off]);
+					 &edesc->link_tbl[tbl_off], align);
 	if (sg_count == 1 && !force) {
 		/* Only one segment now, so no link tbl needed*/
 		copy_talitos_ptr(ptr, &edesc->link_tbl[tbl_off], is_sec1);
 		return sg_count;
 	}
 	to_talitos_ptr(ptr, edesc->dma_link_tbl +
-			    tbl_off * sizeof(struct talitos_ptr), len, is_sec1);
+			    tbl_off * sizeof(struct talitos_ptr), aligned_len, is_sec1);
 	to_talitos_ptr_ext_or(ptr, DESC_PTR_LNKTBL_JUMP, is_sec1);
 
 	return sg_count;
@@ -1186,7 +1188,7 @@
 			  unsigned int offset, int tbl_off)
 {
 	return talitos_sg_map_ext(dev, src, len, edesc, ptr, sg_count, offset,
-				  tbl_off, 0, false);
+				  tbl_off, 0, false, 1);
 }
 
 /*
@@ -1255,7 +1257,7 @@
 
 	ret = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[4],
 				 sg_count, areq->assoclen, tbl_off, elen,
-				 false);
+				 false, 1);
 
 	if (ret > 1) {
 		tbl_off += ret;
@@ -1275,7 +1277,7 @@
 		elen = 0;
 	ret = talitos_sg_map_ext(dev, areq->dst, cryptlen, edesc, &desc->ptr[5],
 				 sg_count, areq->assoclen, tbl_off, elen,
-				 is_ipsec_esp && !encrypt);
+				 is_ipsec_esp && !encrypt, 1);
 	tbl_off += ret;
 
 	if (!encrypt && is_ipsec_esp) {
@@ -1583,6 +1585,8 @@
 	bool sync_needed = false;
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	bool is_sec1 = has_ftr_sec1(priv);
+	bool is_ctr = (desc->hdr & DESC_HDR_SEL0_MASK) == DESC_HDR_SEL0_AESU &&
+		      (desc->hdr & DESC_HDR_MODE0_AESU_MASK) == DESC_HDR_MODE0_AESU_CTR;
 
 	/* first DWORD empty */
 
@@ -1603,8 +1607,8 @@
 	/*
 	 * cipher in
 	 */
-	sg_count = talitos_sg_map(dev, areq->src, cryptlen, edesc,
-				  &desc->ptr[3], sg_count, 0, 0);
+	sg_count = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[3],
+				      sg_count, 0, 0, 0, false, is_ctr ? 16 : 1);
 	if (sg_count > 1)
 		sync_needed = true;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/talitos.h
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/talitos.h
@@ -344,6 +344,7 @@
 
 /* primary execution unit mode (MODE0) and derivatives */
 #define	DESC_HDR_MODE0_ENCRYPT		cpu_to_be32(0x00100000)
+#define	DESC_HDR_MODE0_AESU_MASK	cpu_to_be32(0x00600000)
 #define	DESC_HDR_MODE0_AESU_CBC		cpu_to_be32(0x00200000)
 #define	DESC_HDR_MODE0_AESU_CTR		cpu_to_be32(0x00600000)
 #define	DESC_HDR_MODE0_DEU_CBC		cpu_to_be32(0x00400000)
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/virtio/virtio_crypto_algs.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/virtio/virtio_crypto_algs.c
@@ -105,8 +105,6 @@
 		*alg = VIRTIO_CRYPTO_CIPHER_AES_CBC;
 		break;
 	default:
-		pr_err("virtio_crypto: Unsupported key length: %d\n",
-			key_len);
 		return -EINVAL;
 	}
 	return 0;
@@ -355,13 +353,18 @@
 	int err;
 	unsigned long flags;
 	struct scatterlist outhdr, iv_sg, status_sg, **sgs;
-	int i;
 	u64 dst_len;
 	unsigned int num_out = 0, num_in = 0;
 	int sg_total;
 	uint8_t *iv;
+	struct scatterlist *sg;
 
 	src_nents = sg_nents_for_len(req->src, req->nbytes);
+	if (src_nents < 0) {
+		pr_err("Invalid number of src SG.\n");
+		return src_nents;
+	}
+
 	dst_nents = sg_nents(req->dst);
 
 	pr_debug("virtio_crypto: Number of sgs (src_nents: %d, dst_nents: %d)\n",
@@ -407,6 +410,7 @@
 		goto free;
 	}
 
+	dst_len = min_t(unsigned int, req->nbytes, dst_len);
 	pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n",
 			req->nbytes, dst_len);
 
@@ -437,17 +441,22 @@
 		goto free;
 	}
 	memcpy(iv, req->info, ivsize);
+	if (!vc_sym_req->encrypt)
+		scatterwalk_map_and_copy(req->info, req->src,
+					 req->nbytes - AES_BLOCK_SIZE,
+					 AES_BLOCK_SIZE, 0);
+
 	sg_init_one(&iv_sg, iv, ivsize);
 	sgs[num_out++] = &iv_sg;
 	vc_sym_req->iv = iv;
 
 	/* Source data */
-	for (i = 0; i < src_nents; i++)
-		sgs[num_out++] = &req->src[i];
+	for (sg = req->src; src_nents; sg = sg_next(sg), src_nents--)
+		sgs[num_out++] = sg;
 
 	/* Destination data */
-	for (i = 0; i < dst_nents; i++)
-		sgs[num_out + num_in++] = &req->dst[i];
+	for (sg = req->dst; sg; sg = sg_next(sg))
+		sgs[num_out + num_in++] = sg;
 
 	/* Status */
 	sg_init_one(&status_sg, &vc_req->status, sizeof(vc_req->status));
@@ -484,6 +493,11 @@
 	/* Use the first data virtqueue as default */
 	struct data_queue *data_vq = &vcrypto->data_vq[0];
 
+	if (!req->nbytes)
+		return 0;
+	if (req->nbytes % AES_BLOCK_SIZE)
+		return -EINVAL;
+
 	vc_req->dataq = data_vq;
 	vc_req->alg_cb = virtio_crypto_dataq_sym_callback;
 	vc_sym_req->ablkcipher_ctx = ctx;
@@ -504,6 +518,11 @@
 	/* Use the first data virtqueue as default */
 	struct data_queue *data_vq = &vcrypto->data_vq[0];
 
+	if (!req->nbytes)
+		return 0;
+	if (req->nbytes % AES_BLOCK_SIZE)
+		return -EINVAL;
+
 	vc_req->dataq = data_vq;
 	vc_req->alg_cb = virtio_crypto_dataq_sym_callback;
 	vc_sym_req->ablkcipher_ctx = ctx;
@@ -563,10 +582,15 @@
 	struct ablkcipher_request *req,
 	int err)
 {
-	crypto_finalize_ablkcipher_request(vc_sym_req->base.dataq->engine,
-					   req, err);
+	if (vc_sym_req->encrypt)
+		scatterwalk_map_and_copy(req->info, req->dst,
+					 req->nbytes - AES_BLOCK_SIZE,
+					 AES_BLOCK_SIZE, 0);
 	kzfree(vc_sym_req->iv);
 	virtcrypto_clear_request(&vc_sym_req->base);
+
+	crypto_finalize_ablkcipher_request(vc_sym_req->base.dataq->engine,
+					   req, err);
 }
 
 static struct virtio_crypto_algo virtio_crypto_algs[] = { {
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/vmx/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/vmx/Makefile
@@ -3,13 +3,13 @@
 vmx-crypto-objs := vmx.o aesp8-ppc.o ghashp8-ppc.o aes.o aes_cbc.o aes_ctr.o aes_xts.o ghash.o
 
 ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
-TARGET := linux-ppc64le
+override flavour := linux-ppc64le
 else
-TARGET := linux-ppc64
+override flavour := linux-ppc64
 endif
 
 quiet_cmd_perl = PERL $@
-      cmd_perl = $(PERL) $(<) $(TARGET) > $(@)
+      cmd_perl = $(PERL) $(<) $(flavour) > $(@)
 
 targets += aesp8-ppc.S ghashp8-ppc.S
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/crypto/vmx/aes_xts.c
+++ linux-gkeop-5.4-5.4.0/drivers/crypto/vmx/aes_xts.c
@@ -84,6 +84,9 @@
 	u8 tweak[AES_BLOCK_SIZE];
 	int ret;
 
+	if (req->cryptlen < AES_BLOCK_SIZE)
+		return -EINVAL;
+
 	if (!crypto_simd_usable() || (req->cryptlen % XTS_BLOCK_SIZE) != 0) {
 		struct skcipher_request *subreq = skcipher_request_ctx(req);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dax/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/dax/bus.c
@@ -227,7 +227,7 @@
 
 struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 		struct resource *res, int target_node, unsigned int align,
-		unsigned long pfn_flags)
+		unsigned long long pfn_flags)
 {
 	struct dax_region *dax_region;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dax/bus.h
+++ linux-gkeop-5.4-5.4.0/drivers/dax/bus.h
@@ -11,7 +11,7 @@
 void dax_region_put(struct dax_region *dax_region);
 struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 		struct resource *res, int target_node, unsigned int align,
-		unsigned long flags);
+		unsigned long long flags);
 
 enum dev_dax_subsys {
 	DEV_DAX_BUS,
--- linux-gkeop-5.4-5.4.0.orig/drivers/dax/dax-private.h
+++ linux-gkeop-5.4-5.4.0/drivers/dax/dax-private.h
@@ -32,7 +32,7 @@
 	struct device *dev;
 	unsigned int align;
 	struct resource res;
-	unsigned long pfn_flags;
+	unsigned long long pfn_flags;
 };
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/dax/kmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/dax/kmem.c
@@ -22,6 +22,7 @@
 	resource_size_t kmem_size;
 	resource_size_t kmem_end;
 	struct resource *new_res;
+	const char *new_res_name;
 	int numa_node;
 	int rc;
 
@@ -48,11 +49,16 @@
 	kmem_size &= ~(memory_block_size_bytes() - 1);
 	kmem_end = kmem_start + kmem_size;
 
-	/* Region is permanently reserved.  Hot-remove not yet implemented. */
-	new_res = request_mem_region(kmem_start, kmem_size, dev_name(dev));
+	new_res_name = kstrdup(dev_name(dev), GFP_KERNEL);
+	if (!new_res_name)
+		return -ENOMEM;
+
+	/* Region is permanently reserved if hotremove fails. */
+	new_res = request_mem_region(kmem_start, kmem_size, new_res_name);
 	if (!new_res) {
 		dev_warn(dev, "could not reserve region [%pa-%pa]\n",
 			 &kmem_start, &kmem_end);
+		kfree(new_res_name);
 		return -EBUSY;
 	}
 
@@ -63,12 +69,12 @@
 	 * unknown to us that will break add_memory() below.
 	 */
 	new_res->flags = IORESOURCE_SYSTEM_RAM;
-	new_res->name = dev_name(dev);
 
 	rc = add_memory(numa_node, new_res->start, resource_size(new_res));
 	if (rc) {
 		release_resource(new_res);
 		kfree(new_res);
+		kfree(new_res_name);
 		return rc;
 	}
 	dev_dax->dax_kmem_res = new_res;
@@ -83,6 +89,7 @@
 	struct resource *res = dev_dax->dax_kmem_res;
 	resource_size_t kmem_start = res->start;
 	resource_size_t kmem_size = resource_size(res);
+	const char *res_name = res->name;
 	int rc;
 
 	/*
@@ -102,6 +109,7 @@
 	/* Release and free dax resources */
 	release_resource(res);
 	kfree(res);
+	kfree(res_name);
 	dev_dax->dax_kmem_res = NULL;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dax/super.c
+++ linux-gkeop-5.4-5.4.0/drivers/dax/super.c
@@ -318,11 +318,15 @@
 bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
 		int blocksize, sector_t start, sector_t len)
 {
+	if (!dax_dev)
+		return false;
+
 	if (!dax_alive(dax_dev))
 		return false;
 
 	return dax_dev->ops->dax_supported(dax_dev, bdev, blocksize, start, len);
 }
+EXPORT_SYMBOL_GPL(dax_supported);
 
 size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
 		size_t bytes, struct iov_iter *i)
@@ -716,6 +720,7 @@
 
 static void __exit dax_core_exit(void)
 {
+	dax_bus_exit();
 	unregister_chrdev_region(dax_devt, MINORMASK+1);
 	ida_destroy(&dax_minor_ida);
 	dax_fs_exit();
--- linux-gkeop-5.4-5.4.0.orig/drivers/devfreq/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/devfreq/Kconfig
@@ -99,6 +99,7 @@
 		ARCH_TEGRA_210_SOC || \
 		COMPILE_TEST
 	select PM_OPP
+	depends on COMMON_CLK
 	help
 	  This adds the DEVFREQ driver for the Tegra family of SoCs.
 	  It reads ACTMON counters of memory controllers and adjusts the
@@ -117,7 +118,8 @@
 
 config ARM_RK3399_DMC_DEVFREQ
 	tristate "ARM RK3399 DMC DEVFREQ Driver"
-	depends on ARCH_ROCKCHIP
+	depends on (ARCH_ROCKCHIP && HAVE_ARM_SMCCC) || \
+		(COMPILE_TEST && HAVE_ARM_SMCCC)
 	select DEVFREQ_EVENT_ROCKCHIP_DFI
 	select DEVFREQ_GOV_SIMPLE_ONDEMAND
 	select PM_DEVFREQ_EVENT
--- linux-gkeop-5.4-5.4.0.orig/drivers/devfreq/devfreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/devfreq/devfreq.c
@@ -160,6 +160,7 @@
 	int lev, prev_lev, ret = 0;
 	unsigned long cur_time;
 
+	lockdep_assert_held(&devfreq->lock);
 	cur_time = jiffies;
 
 	/* Immediately exit if previous_freq is not initialized yet. */
@@ -550,26 +551,30 @@
 				 void *devp)
 {
 	struct devfreq *devfreq = container_of(nb, struct devfreq, nb);
-	int ret;
+	int err = -EINVAL;
 
 	mutex_lock(&devfreq->lock);
 
 	devfreq->scaling_min_freq = find_available_min_freq(devfreq);
-	if (!devfreq->scaling_min_freq) {
-		mutex_unlock(&devfreq->lock);
-		return -EINVAL;
-	}
+	if (!devfreq->scaling_min_freq)
+		goto out;
 
 	devfreq->scaling_max_freq = find_available_max_freq(devfreq);
 	if (!devfreq->scaling_max_freq) {
-		mutex_unlock(&devfreq->lock);
-		return -EINVAL;
+		devfreq->scaling_max_freq = ULONG_MAX;
+		goto out;
 	}
 
-	ret = update_devfreq(devfreq);
+	err = update_devfreq(devfreq);
+
+out:
 	mutex_unlock(&devfreq->lock);
+	if (err)
+		dev_err(devfreq->dev.parent,
+			"failed to update frequency from OPP notifier (%d)\n",
+			err);
 
-	return ret;
+	return NOTIFY_OK;
 }
 
 /**
@@ -583,11 +588,6 @@
 	struct devfreq *devfreq = to_devfreq(dev);
 
 	mutex_lock(&devfreq_list_lock);
-	if (IS_ERR(find_device_devfreq(devfreq->dev.parent))) {
-		mutex_unlock(&devfreq_list_lock);
-		dev_warn(&devfreq->dev, "releasing devfreq which doesn't exist\n");
-		return;
-	}
 	list_del(&devfreq->node);
 	mutex_unlock(&devfreq_list_lock);
 
@@ -613,7 +613,6 @@
 {
 	struct devfreq *devfreq;
 	struct devfreq_governor *governor;
-	static atomic_t devfreq_no = ATOMIC_INIT(-1);
 	int err = 0;
 
 	if (!dev || !profile || !governor_name) {
@@ -642,6 +641,7 @@
 	devfreq->dev.parent = dev;
 	devfreq->dev.class = devfreq_class;
 	devfreq->dev.release = devfreq_dev_release;
+	INIT_LIST_HEAD(&devfreq->node);
 	devfreq->profile = profile;
 	strncpy(devfreq->governor_name, governor_name, DEVFREQ_NAME_LEN);
 	devfreq->previous_freq = profile->initial_freq;
@@ -676,8 +676,7 @@
 	devfreq->suspend_freq = dev_pm_opp_get_suspend_opp_freq(dev);
 	atomic_set(&devfreq->suspend_count, 0);
 
-	dev_set_name(&devfreq->dev, "devfreq%d",
-				atomic_inc_return(&devfreq_no));
+	dev_set_name(&devfreq->dev, "%s", dev_name(dev));
 	err = device_register(&devfreq->dev);
 	if (err) {
 		mutex_unlock(&devfreq->lock);
@@ -903,7 +902,9 @@
 	}
 
 	if (devfreq->suspend_freq) {
+		mutex_lock(&devfreq->lock);
 		ret = devfreq_set_target(devfreq, devfreq->suspend_freq, 0);
+		mutex_unlock(&devfreq->lock);
 		if (ret)
 			return ret;
 	}
@@ -931,7 +932,9 @@
 		return 0;
 
 	if (devfreq->resume_freq) {
+		mutex_lock(&devfreq->lock);
 		ret = devfreq_set_target(devfreq, devfreq->resume_freq, 0);
+		mutex_unlock(&devfreq->lock);
 		if (ret)
 			return ret;
 	}
@@ -1111,6 +1114,14 @@
 }
 EXPORT_SYMBOL(devfreq_remove_governor);
 
+static ssize_t name_show(struct device *dev,
+			struct device_attribute *attr, char *buf)
+{
+	struct devfreq *devfreq = to_devfreq(dev);
+	return sprintf(buf, "%s\n", dev_name(devfreq->dev.parent));
+}
+static DEVICE_ATTR_RO(name);
+
 static ssize_t governor_show(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
@@ -1195,7 +1206,7 @@
 	 * The devfreq with immutable governor (e.g., passive) shows
 	 * only own governor.
 	 */
-	if (df->governor->immutable) {
+	if (df->governor && df->governor->immutable) {
 		count = scnprintf(&buf[count], DEVFREQ_NAME_LEN,
 				  "%s ", df->governor_name);
 	/*
@@ -1397,12 +1408,17 @@
 	int i, j;
 	unsigned int max_state = devfreq->profile->max_state;
 
-	if (!devfreq->stop_polling &&
-			devfreq_update_status(devfreq, devfreq->previous_freq))
-		return 0;
 	if (max_state == 0)
 		return sprintf(buf, "Not Supported.\n");
 
+	mutex_lock(&devfreq->lock);
+	if (!devfreq->stop_polling &&
+			devfreq_update_status(devfreq, devfreq->previous_freq)) {
+		mutex_unlock(&devfreq->lock);
+		return 0;
+	}
+	mutex_unlock(&devfreq->lock);
+
 	len = sprintf(buf, "     From  :   To\n");
 	len += sprintf(buf + len, "           :");
 	for (i = 0; i < max_state; i++)
@@ -1434,6 +1450,7 @@
 static DEVICE_ATTR_RO(trans_stat);
 
 static struct attribute *devfreq_attrs[] = {
+	&dev_attr_name.attr,
 	&dev_attr_governor.attr,
 	&dev_attr_available_governors.attr,
 	&dev_attr_cur_freq.attr,
--- linux-gkeop-5.4-5.4.0.orig/drivers/devfreq/event/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/devfreq/event/Kconfig
@@ -34,7 +34,7 @@
 
 config DEVFREQ_EVENT_ROCKCHIP_DFI
 	tristate "ROCKCHIP DFI DEVFREQ event Driver"
-	depends on ARCH_ROCKCHIP
+	depends on ARCH_ROCKCHIP || COMPILE_TEST
 	help
 	  This add the devfreq-event driver for Rockchip SoC. It provides DFI
 	  (DDR Monitor Module) driver to count ddr load.
--- linux-gkeop-5.4-5.4.0.orig/drivers/devfreq/event/exynos-ppmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/devfreq/event/exynos-ppmu.c
@@ -101,17 +101,22 @@
 	PPMU_EVENT(dmc1_1),
 };
 
-static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
+static int __exynos_ppmu_find_ppmu_id(const char *edev_name)
 {
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(ppmu_events); i++)
-		if (!strcmp(edev->desc->name, ppmu_events[i].name))
+		if (!strcmp(edev_name, ppmu_events[i].name))
 			return ppmu_events[i].id;
 
 	return -EINVAL;
 }
 
+static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
+{
+	return __exynos_ppmu_find_ppmu_id(edev->desc->name);
+}
+
 /*
  * The devfreq-event ops structure for PPMU v1.1
  */
@@ -556,13 +561,11 @@
 			 * use default if not.
 			 */
 			if (info->ppmu_type == EXYNOS_TYPE_PPMU_V2) {
-				struct devfreq_event_dev edev;
 				int id;
 				/* Not all registers take the same value for
 				 * read+write data count.
 				 */
-				edev.desc = &desc[j];
-				id = exynos_ppmu_find_ppmu_id(&edev);
+				id = __exynos_ppmu_find_ppmu_id(desc[j].name);
 
 				switch (id) {
 				case PPMU_PMNCNT0:
--- linux-gkeop-5.4-5.4.0.orig/drivers/devfreq/rk3399_dmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/devfreq/rk3399_dmc.c
@@ -95,18 +95,20 @@
 
 	mutex_lock(&dmcfreq->lock);
 
-	if (target_rate >= dmcfreq->odt_dis_freq)
-		odt_enable = true;
-
-	/*
-	 * This makes a SMC call to the TF-A to set the DDR PD (power-down)
-	 * timings and to enable or disable the ODT (on-die termination)
-	 * resistors.
-	 */
-	arm_smccc_smc(ROCKCHIP_SIP_DRAM_FREQ, dmcfreq->odt_pd_arg0,
-		      dmcfreq->odt_pd_arg1,
-		      ROCKCHIP_SIP_CONFIG_DRAM_SET_ODT_PD,
-		      odt_enable, 0, 0, 0, &res);
+	if (dmcfreq->regmap_pmu) {
+		if (target_rate >= dmcfreq->odt_dis_freq)
+			odt_enable = true;
+
+		/*
+		 * This makes a SMC call to the TF-A to set the DDR PD
+		 * (power-down) timings and to enable or disable the
+		 * ODT (on-die termination) resistors.
+		 */
+		arm_smccc_smc(ROCKCHIP_SIP_DRAM_FREQ, dmcfreq->odt_pd_arg0,
+			      dmcfreq->odt_pd_arg1,
+			      ROCKCHIP_SIP_CONFIG_DRAM_SET_ODT_PD,
+			      odt_enable, 0, 0, 0, &res);
+	}
 
 	/*
 	 * If frequency scaling from low to high, adjust voltage first.
@@ -364,16 +366,21 @@
 			if (res.a0) {
 				dev_err(dev, "Failed to set dram param: %ld\n",
 					res.a0);
-				return -EINVAL;
+				ret = -EINVAL;
+				goto err_edev;
 			}
 		}
 	}
 
 	node = of_parse_phandle(np, "rockchip,pmu", 0);
-	if (node) {
-		data->regmap_pmu = syscon_node_to_regmap(node);
-		if (IS_ERR(data->regmap_pmu))
-			return PTR_ERR(data->regmap_pmu);
+	if (!node)
+		goto no_pmu;
+
+	data->regmap_pmu = syscon_node_to_regmap(node);
+	of_node_put(node);
+	if (IS_ERR(data->regmap_pmu)) {
+		ret = PTR_ERR(data->regmap_pmu);
+		goto err_edev;
 	}
 
 	regmap_read(data->regmap_pmu, RK3399_PMUGRF_OS_REG2, &val);
@@ -391,9 +398,11 @@
 		data->odt_dis_freq = data->timing.lpddr4_odt_dis_freq;
 		break;
 	default:
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_edev;
 	};
 
+no_pmu:
 	arm_smccc_smc(ROCKCHIP_SIP_DRAM_FREQ, 0, 0,
 		      ROCKCHIP_SIP_CONFIG_DRAM_INIT,
 		      0, 0, 0, 0, &res);
@@ -425,7 +434,8 @@
 	 */
 	if (dev_pm_opp_of_add_table(dev)) {
 		dev_err(dev, "Invalid operating-points in device tree.\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_edev;
 	}
 
 	of_property_read_u32(np, "upthreshold",
@@ -465,6 +475,9 @@
 
 err_free_opp:
 	dev_pm_opp_of_remove_table(&pdev->dev);
+err_edev:
+	devfreq_event_disable_edev(data->edev);
+
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/devfreq/tegra30-devfreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/devfreq/tegra30-devfreq.c
@@ -68,6 +68,8 @@
 
 #define KHZ							1000
 
+#define KHZ_MAX						(ULONG_MAX / KHZ)
+
 /* Assume that the bus is saturated if the utilization is 25% */
 #define BUS_SATURATION_RATIO					25
 
@@ -169,7 +171,7 @@
 };
 
 static struct tegra_actmon_emc_ratio actmon_emc_ratios[] = {
-	{ 1400000, ULONG_MAX },
+	{ 1400000,    KHZ_MAX },
 	{ 1200000,    750000 },
 	{ 1100000,    600000 },
 	{ 1000000,    500000 },
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma-buf/dma-buf.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma-buf/dma-buf.c
@@ -45,46 +45,22 @@
 	size_t ret = 0;
 
 	dmabuf = dentry->d_fsdata;
-	mutex_lock(&dmabuf->lock);
+	spin_lock(&dmabuf->name_lock);
 	if (dmabuf->name)
 		ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN);
-	mutex_unlock(&dmabuf->lock);
+	spin_unlock(&dmabuf->name_lock);
 
 	return dynamic_dname(dentry, buffer, buflen, "/%s:%s",
 			     dentry->d_name.name, ret > 0 ? name : "");
 }
 
-static const struct dentry_operations dma_buf_dentry_ops = {
-	.d_dname = dmabuffs_dname,
-};
-
-static struct vfsmount *dma_buf_mnt;
-
-static int dma_buf_fs_init_context(struct fs_context *fc)
-{
-	struct pseudo_fs_context *ctx;
-
-	ctx = init_pseudo(fc, DMA_BUF_MAGIC);
-	if (!ctx)
-		return -ENOMEM;
-	ctx->dops = &dma_buf_dentry_ops;
-	return 0;
-}
-
-static struct file_system_type dma_buf_fs_type = {
-	.name = "dmabuf",
-	.init_fs_context = dma_buf_fs_init_context,
-	.kill_sb = kill_anon_super,
-};
-
-static int dma_buf_release(struct inode *inode, struct file *file)
+static void dma_buf_release(struct dentry *dentry)
 {
 	struct dma_buf *dmabuf;
 
-	if (!is_dma_buf_file(file))
-		return -EINVAL;
-
-	dmabuf = file->private_data;
+	dmabuf = dentry->d_fsdata;
+	if (unlikely(!dmabuf))
+		return;
 
 	BUG_ON(dmabuf->vmapping_counter);
 
@@ -100,18 +76,54 @@
 
 	dmabuf->ops->release(dmabuf);
 
-	mutex_lock(&db_list.lock);
-	list_del(&dmabuf->list_node);
-	mutex_unlock(&db_list.lock);
-
 	if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
 		dma_resv_fini(dmabuf->resv);
 
 	module_put(dmabuf->owner);
+	kfree(dmabuf->name);
 	kfree(dmabuf);
+}
+
+static int dma_buf_file_release(struct inode *inode, struct file *file)
+{
+	struct dma_buf *dmabuf;
+
+	if (!is_dma_buf_file(file))
+		return -EINVAL;
+
+	dmabuf = file->private_data;
+
+	mutex_lock(&db_list.lock);
+	list_del(&dmabuf->list_node);
+	mutex_unlock(&db_list.lock);
+
 	return 0;
 }
 
+static const struct dentry_operations dma_buf_dentry_ops = {
+	.d_dname = dmabuffs_dname,
+	.d_release = dma_buf_release,
+};
+
+static struct vfsmount *dma_buf_mnt;
+
+static int dma_buf_fs_init_context(struct fs_context *fc)
+{
+	struct pseudo_fs_context *ctx;
+
+	ctx = init_pseudo(fc, DMA_BUF_MAGIC);
+	if (!ctx)
+		return -ENOMEM;
+	ctx->dops = &dma_buf_dentry_ops;
+	return 0;
+}
+
+static struct file_system_type dma_buf_fs_type = {
+	.name = "dmabuf",
+	.init_fs_context = dma_buf_fs_init_context,
+	.kill_sb = kill_anon_super,
+};
+
 static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma)
 {
 	struct dma_buf *dmabuf;
@@ -340,8 +352,10 @@
 		kfree(name);
 		goto out_unlock;
 	}
+	spin_lock(&dmabuf->name_lock);
 	kfree(dmabuf->name);
 	dmabuf->name = name;
+	spin_unlock(&dmabuf->name_lock);
 
 out_unlock:
 	mutex_unlock(&dmabuf->lock);
@@ -387,7 +401,8 @@
 
 		return ret;
 
-	case DMA_BUF_SET_NAME:
+	case DMA_BUF_SET_NAME_A:
+	case DMA_BUF_SET_NAME_B:
 		return dma_buf_set_name(dmabuf, (const char __user *)arg);
 
 	default:
@@ -403,14 +418,14 @@
 	/* Don't count the temporary reference taken inside procfs seq_show */
 	seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1);
 	seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name);
-	mutex_lock(&dmabuf->lock);
+	spin_lock(&dmabuf->name_lock);
 	if (dmabuf->name)
 		seq_printf(m, "name:\t%s\n", dmabuf->name);
-	mutex_unlock(&dmabuf->lock);
+	spin_unlock(&dmabuf->name_lock);
 }
 
 static const struct file_operations dma_buf_fops = {
-	.release	= dma_buf_release,
+	.release	= dma_buf_file_release,
 	.mmap		= dma_buf_mmap_internal,
 	.llseek		= dma_buf_llseek,
 	.poll		= dma_buf_poll,
@@ -539,6 +554,7 @@
 	dmabuf->size = exp_info->size;
 	dmabuf->exp_name = exp_info->exp_name;
 	dmabuf->owner = exp_info->owner;
+	spin_lock_init(&dmabuf->name_lock);
 	init_waitqueue_head(&dmabuf->poll);
 	dmabuf->cb_excl.poll = dmabuf->cb_shared.poll = &dmabuf->poll;
 	dmabuf->cb_excl.active = dmabuf->cb_shared.active = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma-buf/dma-fence.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma-buf/dma-fence.c
@@ -273,6 +273,30 @@
 }
 EXPORT_SYMBOL(dma_fence_free);
 
+static bool __dma_fence_enable_signaling(struct dma_fence *fence)
+{
+	bool was_set;
+
+	lockdep_assert_held(fence->lock);
+
+	was_set = test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
+				   &fence->flags);
+
+	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
+		return false;
+
+	if (!was_set && fence->ops->enable_signaling) {
+		trace_dma_fence_enable_signal(fence);
+
+		if (!fence->ops->enable_signaling(fence)) {
+			dma_fence_signal_locked(fence);
+			return false;
+		}
+	}
+
+	return true;
+}
+
 /**
  * dma_fence_enable_sw_signaling - enable signaling on fence
  * @fence: the fence to enable
@@ -285,19 +309,12 @@
 {
 	unsigned long flags;
 
-	if (!test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-			      &fence->flags) &&
-	    !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags) &&
-	    fence->ops->enable_signaling) {
-		trace_dma_fence_enable_signal(fence);
-
-		spin_lock_irqsave(fence->lock, flags);
-
-		if (!fence->ops->enable_signaling(fence))
-			dma_fence_signal_locked(fence);
+	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
+		return;
 
-		spin_unlock_irqrestore(fence->lock, flags);
-	}
+	spin_lock_irqsave(fence->lock, flags);
+	__dma_fence_enable_signaling(fence);
+	spin_unlock_irqrestore(fence->lock, flags);
 }
 EXPORT_SYMBOL(dma_fence_enable_sw_signaling);
 
@@ -331,7 +348,6 @@
 {
 	unsigned long flags;
 	int ret = 0;
-	bool was_set;
 
 	if (WARN_ON(!fence || !func))
 		return -EINVAL;
@@ -343,25 +359,14 @@
 
 	spin_lock_irqsave(fence->lock, flags);
 
-	was_set = test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-				   &fence->flags);
-
-	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
-		ret = -ENOENT;
-	else if (!was_set && fence->ops->enable_signaling) {
-		trace_dma_fence_enable_signal(fence);
-
-		if (!fence->ops->enable_signaling(fence)) {
-			dma_fence_signal_locked(fence);
-			ret = -ENOENT;
-		}
-	}
-
-	if (!ret) {
+	if (__dma_fence_enable_signaling(fence)) {
 		cb->func = func;
 		list_add_tail(&cb->node, &fence->cb_list);
-	} else
+	} else {
 		INIT_LIST_HEAD(&cb->node);
+		ret = -ENOENT;
+	}
+
 	spin_unlock_irqrestore(fence->lock, flags);
 
 	return ret;
@@ -461,7 +466,6 @@
 	struct default_wait_cb cb;
 	unsigned long flags;
 	signed long ret = timeout ? timeout : 1;
-	bool was_set;
 
 	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
 		return ret;
@@ -473,21 +477,9 @@
 		goto out;
 	}
 
-	was_set = test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-				   &fence->flags);
-
-	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
+	if (!__dma_fence_enable_signaling(fence))
 		goto out;
 
-	if (!was_set && fence->ops->enable_signaling) {
-		trace_dma_fence_enable_signal(fence);
-
-		if (!fence->ops->enable_signaling(fence)) {
-			dma_fence_signal_locked(fence);
-			goto out;
-		}
-	}
-
 	if (!timeout) {
 		ret = 0;
 		goto out;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma-buf/dma-resv.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma-buf/dma-resv.c
@@ -161,7 +161,7 @@
 			max = max(old->shared_count + num_fences,
 				  old->shared_max * 2);
 	} else {
-		max = 4;
+		max = max(4ul, roundup_pow_of_two(num_fences));
 	}
 
 	new = dma_resv_list_alloc(max);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma-buf/sync_file.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma-buf/sync_file.c
@@ -221,7 +221,7 @@
 	a_fences = get_fences(a, &a_num_fences);
 	b_fences = get_fences(b, &b_num_fences);
 	if (a_num_fences > INT_MAX - b_num_fences)
-		return NULL;
+		goto err;
 
 	num_fences = a_num_fences + b_num_fences;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/dma/Kconfig
@@ -239,6 +239,14 @@
           the capability to offload memcpy, xor and pq computation
 	  for raid5/6.
 
+config HISI_DMA
+	tristate "HiSilicon DMA Engine support"
+	depends on ARM64 || (COMPILE_TEST && PCI_MSI)
+	select DMA_ENGINE
+	select DMA_VIRTUAL_CHANNELS
+	help
+	  Support HiSilicon Kunpeng DMA engine.
+
 config IMG_MDC_DMA
 	tristate "IMG MDC support"
 	depends on MIPS || COMPILE_TEST
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/dma/Makefile
@@ -35,6 +35,7 @@
 obj-$(CONFIG_MCF_EDMA) += mcf-edma.o fsl-edma-common.o
 obj-$(CONFIG_FSL_QDMA) += fsl-qdma.o
 obj-$(CONFIG_FSL_RAID) += fsl_raid.o
+obj-$(CONFIG_HISI_DMA) += hisi_dma.o
 obj-$(CONFIG_HSU_DMA) += hsu/
 obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o
 obj-$(CONFIG_IMX_DMA) += imx-dma.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/acpi-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/acpi-dma.c
@@ -135,11 +135,13 @@
 		if (ret < 0) {
 			dev_warn(&adev->dev,
 				 "error in parsing resource group\n");
-			return;
+			break;
 		}
 
 		grp = (struct acpi_csrt_group *)((void *)grp + grp->length);
 	}
+
+	acpi_put_table((struct acpi_table_header *)csrt);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/at_hdmac.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/at_hdmac.c
@@ -1667,13 +1667,17 @@
 		return NULL;
 
 	dmac_pdev = of_find_device_by_node(dma_spec->np);
+	if (!dmac_pdev)
+		return NULL;
 
 	dma_cap_zero(mask);
 	dma_cap_set(DMA_SLAVE, mask);
 
-	atslave = kzalloc(sizeof(*atslave), GFP_KERNEL);
-	if (!atslave)
+	atslave = kmalloc(sizeof(*atslave), GFP_KERNEL);
+	if (!atslave) {
+		put_device(&dmac_pdev->dev);
 		return NULL;
+	}
 
 	atslave->cfg = ATC_DST_H2SEL_HW | ATC_SRC_H2SEL_HW;
 	/*
@@ -1702,8 +1706,11 @@
 	atslave->dma_dev = &dmac_pdev->dev;
 
 	chan = dma_request_channel(mask, at_dma_filter, atslave);
-	if (!chan)
+	if (!chan) {
+		put_device(&dmac_pdev->dev);
+		kfree(atslave);
 		return NULL;
+	}
 
 	atchan = to_at_dma_chan(chan);
 	atchan->per_if = dma_spec->args[0] & 0xff;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/coh901318.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/coh901318.c
@@ -1947,8 +1947,6 @@
 		return;
 	}
 
-	spin_lock(&cohc->lock);
-
 	/*
 	 * When we reach this point, at least one queue item
 	 * should have been moved over from cohc->queue to
@@ -1969,8 +1967,6 @@
 	if (coh901318_queue_start(cohc) == NULL)
 		cohc->busy = 0;
 
-	spin_unlock(&cohc->lock);
-
 	/*
 	 * This tasklet will remove items from cohc->active
 	 * and thus terminates them.
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dma-axi-dmac.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dma-axi-dmac.c
@@ -830,6 +830,7 @@
 	struct dma_device *dma_dev;
 	struct axi_dmac *dmac;
 	struct resource *res;
+	struct regmap *regmap;
 	int ret;
 
 	dmac = devm_kzalloc(&pdev->dev, sizeof(*dmac), GFP_KERNEL);
@@ -921,10 +922,17 @@
 
 	platform_set_drvdata(pdev, dmac);
 
-	devm_regmap_init_mmio(&pdev->dev, dmac->base, &axi_dmac_regmap_config);
+	regmap = devm_regmap_init_mmio(&pdev->dev, dmac->base,
+		 &axi_dmac_regmap_config);
+	if (IS_ERR(regmap)) {
+		ret = PTR_ERR(regmap);
+		goto err_free_irq;
+	}
 
 	return 0;
 
+err_free_irq:
+	free_irq(dmac->irq, dmac);
 err_unregister_of:
 	of_dma_controller_free(pdev->dev.of_node);
 err_unregister_device:
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dma-jz4780.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dma-jz4780.c
@@ -639,11 +639,11 @@
 	unsigned long flags;
 	unsigned long residue = 0;
 
+	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+
 	status = dma_cookie_status(chan, cookie, txstate);
 	if ((status == DMA_COMPLETE) || (txstate == NULL))
-		return status;
-
-	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+		goto out_unlock_irqrestore;
 
 	vdesc = vchan_find_desc(&jzchan->vchan, cookie);
 	if (vdesc) {
@@ -660,6 +660,7 @@
 	    && jzchan->desc->status & (JZ_DMA_DCS_AR | JZ_DMA_DCS_HLT))
 		status = DMA_ERROR;
 
+out_unlock_irqrestore:
 	spin_unlock_irqrestore(&jzchan->vchan.lock, flags);
 	return status;
 }
@@ -885,24 +886,11 @@
 		return -EINVAL;
 	}
 
-	ret = platform_get_irq(pdev, 0);
-	if (ret < 0)
-		return ret;
-
-	jzdma->irq = ret;
-
-	ret = request_irq(jzdma->irq, jz4780_dma_irq_handler, 0, dev_name(dev),
-			  jzdma);
-	if (ret) {
-		dev_err(dev, "failed to request IRQ %u!\n", jzdma->irq);
-		return ret;
-	}
-
 	jzdma->clk = devm_clk_get(dev, NULL);
 	if (IS_ERR(jzdma->clk)) {
 		dev_err(dev, "failed to get clock\n");
 		ret = PTR_ERR(jzdma->clk);
-		goto err_free_irq;
+		return ret;
 	}
 
 	clk_prepare_enable(jzdma->clk);
@@ -955,10 +943,23 @@
 		jzchan->vchan.desc_free = jz4780_dma_desc_free;
 	}
 
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		goto err_disable_clk;
+
+	jzdma->irq = ret;
+
+	ret = request_irq(jzdma->irq, jz4780_dma_irq_handler, 0, dev_name(dev),
+			  jzdma);
+	if (ret) {
+		dev_err(dev, "failed to request IRQ %u!\n", jzdma->irq);
+		goto err_disable_clk;
+	}
+
 	ret = dmaenginem_async_device_register(dd);
 	if (ret) {
 		dev_err(dev, "failed to register device\n");
-		goto err_disable_clk;
+		goto err_free_irq;
 	}
 
 	/* Register with OF DMA helpers. */
@@ -966,17 +967,17 @@
 					 jzdma);
 	if (ret) {
 		dev_err(dev, "failed to register OF DMA controller\n");
-		goto err_disable_clk;
+		goto err_free_irq;
 	}
 
 	dev_info(dev, "JZ4780 DMA controller initialised\n");
 	return 0;
 
-err_disable_clk:
-	clk_disable_unprepare(jzdma->clk);
-
 err_free_irq:
 	free_irq(jzdma->irq, jzdma);
+
+err_disable_clk:
+	clk_disable_unprepare(jzdma->clk);
 	return ret;
 }
 
@@ -1004,7 +1005,8 @@
 static const struct jz4780_dma_soc_data jz4725b_dma_soc_data = {
 	.nb_channels = 6,
 	.transfer_ord_max = 5,
-	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC,
+	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC |
+		 JZ_SOC_DATA_BREAK_LINKS,
 };
 
 static const struct jz4780_dma_soc_data jz4770_dma_soc_data = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dmaengine.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dmaengine.c
@@ -179,7 +179,7 @@
 
 static struct module *dma_chan_to_owner(struct dma_chan *chan)
 {
-	return chan->device->dev->driver->owner;
+	return chan->device->owner;
 }
 
 /**
@@ -919,6 +919,8 @@
 		return -EIO;
 	}
 
+	device->owner = device->dev->driver->owner;
+
 	if (dma_has_cap(DMA_MEMCPY, device->cap_mask) && !device->device_prep_dma_memcpy) {
 		dev_err(device->dev,
 			"Device claims capability %s, but op is not defined\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dmatest.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dmatest.c
@@ -240,7 +240,7 @@
 		struct dmatest_thread *thread;
 
 		list_for_each_entry(thread, &dtc->threads, node) {
-			if (!thread->done)
+			if (!thread->done && !thread->pending)
 				return true;
 		}
 	}
@@ -662,8 +662,8 @@
 		flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
 
 	ktime = ktime_get();
-	while (!kthread_should_stop()
-	       && !(params->iterations && total_tests >= params->iterations)) {
+	while (!(kthread_should_stop() ||
+	       (params->iterations && total_tests >= params->iterations))) {
 		struct dma_async_tx_descriptor *tx = NULL;
 		struct dmaengine_unmap_data *um;
 		dma_addr_t *dsts;
@@ -1166,10 +1166,13 @@
 		mutex_unlock(&info->lock);
 		return ret;
 	} else if (dmatest_run) {
-		if (is_threaded_test_pending(info))
-			start_threaded_tests(info);
-		else
-			pr_info("Could not start test, no channels configured\n");
+		if (!is_threaded_test_pending(info)) {
+			pr_info("No channels configured, continue with any\n");
+			if (!is_threaded_test_run(info))
+				stop_threaded_test(info);
+			add_threaded_test(info);
+		}
+		start_threaded_tests(info);
 	} else {
 		stop_threaded_test(info);
 	}
@@ -1215,15 +1218,14 @@
 	add_threaded_test(info);
 
 	/* Check if channel was added successfully */
-	dtc = list_last_entry(&info->channels, struct dmatest_chan, node);
-
-	if (dtc->chan) {
+	if (!list_empty(&info->channels)) {
 		/*
 		 * if new channel was not successfully added, revert the
 		 * "test_channel" string to the name of the last successfully
 		 * added channel. exception for when users issues empty string
 		 * to channel parameter.
 		 */
+		dtc = list_last_entry(&info->channels, struct dmatest_chan, node);
 		if ((strcmp(dma_chan_name(dtc->chan), strim(test_channel)) != 0)
 		    && (strcmp("", strim(test_channel)) != 0)) {
 			ret = -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dw-edma/dw-edma-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dw-edma/dw-edma-core.c
@@ -85,12 +85,12 @@
 
 	if (desc->chunk) {
 		/* Create and add new element into the linked list */
-		desc->chunks_alloc++;
-		list_add_tail(&chunk->list, &desc->chunk->list);
 		if (!dw_edma_alloc_burst(chunk)) {
 			kfree(chunk);
 			return NULL;
 		}
+		desc->chunks_alloc++;
+		list_add_tail(&chunk->list, &desc->chunk->list);
 	} else {
 		/* List head */
 		chunk->burst = NULL;
@@ -391,7 +391,7 @@
 			if (xfer->cyclic) {
 				burst->dar = xfer->xfer.cyclic.paddr;
 			} else {
-				burst->dar = sg_dma_address(sg);
+				burst->dar = dst_addr;
 				/* Unlike the typical assumption by other
 				 * drivers/IPs the peripheral memory isn't
 				 * a FIFO memory, in this case, it's a
@@ -399,14 +399,13 @@
 				 * and destination addresses are increased
 				 * by the same portion (data length)
 				 */
-				src_addr += sg_dma_len(sg);
 			}
 		} else {
 			burst->dar = dst_addr;
 			if (xfer->cyclic) {
 				burst->sar = xfer->xfer.cyclic.paddr;
 			} else {
-				burst->sar = sg_dma_address(sg);
+				burst->sar = src_addr;
 				/* Unlike the typical assumption by other
 				 * drivers/IPs the peripheral memory isn't
 				 * a FIFO memory, in this case, it's a
@@ -414,12 +413,14 @@
 				 * and destination addresses are increased
 				 * by the same portion (data length)
 				 */
-				dst_addr += sg_dma_len(sg);
 			}
 		}
 
-		if (!xfer->cyclic)
+		if (!xfer->cyclic) {
+			src_addr += sg_dma_len(sg);
+			dst_addr += sg_dma_len(sg);
 			sg = sg_next(sg);
+		}
 	}
 
 	return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dw/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dw/core.c
@@ -118,16 +118,11 @@
 {
 	struct dw_dma *dw = to_dw_dma(dwc->chan.device);
 
-	if (test_bit(DW_DMA_IS_INITIALIZED, &dwc->flags))
-		return;
-
 	dw->initialize_chan(dwc);
 
 	/* Enable interrupts */
 	channel_set_bit(dw, MASK.XFER, dwc->mask);
 	channel_set_bit(dw, MASK.ERROR, dwc->mask);
-
-	set_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
 }
 
 /*----------------------------------------------------------------------*/
@@ -777,6 +772,10 @@
 	if (dws->dma_dev != chan->device->dev)
 		return false;
 
+	/* permit channels in accordance with the channels mask */
+	if (dws->channels && !(dws->channels & dwc->mask))
+		return false;
+
 	/* We have to copy data since dws can be temporary storage */
 	memcpy(&dwc->dws, dws, sizeof(struct dw_dma_slave));
 
@@ -954,8 +953,6 @@
 
 void do_dw_dma_off(struct dw_dma *dw)
 {
-	unsigned int i;
-
 	dma_writel(dw, CFG, 0);
 
 	channel_clear_bit(dw, MASK.XFER, dw->all_chan_mask);
@@ -966,9 +963,6 @@
 
 	while (dma_readl(dw, CFG) & DW_CFG_DMA_EN)
 		cpu_relax();
-
-	for (i = 0; i < dw->dma.chancnt; i++)
-		clear_bit(DW_DMA_IS_INITIALIZED, &dw->chan[i].flags);
 }
 
 void do_dw_dma_on(struct dw_dma *dw)
@@ -1032,8 +1026,6 @@
 	/* Clear custom channel configuration */
 	memset(&dwc->dws, 0, sizeof(struct dw_dma_slave));
 
-	clear_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
-
 	/* Disable interrupts */
 	channel_clear_bit(dw, MASK.XFER, dwc->mask);
 	channel_clear_bit(dw, MASK.BLOCK, dwc->mask);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dw/dw.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dw/dw.c
@@ -14,7 +14,7 @@
 static void dw_dma_initialize_chan(struct dw_dma_chan *dwc)
 {
 	struct dw_dma *dw = to_dw_dma(dwc->chan.device);
-	u32 cfghi = DWC_CFGH_FIFO_MODE;
+	u32 cfghi = is_slave_direction(dwc->direction) ? 0 : DWC_CFGH_FIFO_MODE;
 	u32 cfglo = DWC_CFGL_CH_PRIOR(dwc->priority);
 	bool hs_polarity = dwc->dws.hs_polarity;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dw/of.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dw/of.c
@@ -22,18 +22,21 @@
 	};
 	dma_cap_mask_t cap;
 
-	if (dma_spec->args_count != 3)
+	if (dma_spec->args_count < 3 || dma_spec->args_count > 4)
 		return NULL;
 
 	slave.src_id = dma_spec->args[0];
 	slave.dst_id = dma_spec->args[0];
 	slave.m_master = dma_spec->args[1];
 	slave.p_master = dma_spec->args[2];
+	if (dma_spec->args_count >= 4)
+		slave.channels = dma_spec->args[3];
 
 	if (WARN_ON(slave.src_id >= DW_DMA_MAX_NR_REQUESTS ||
 		    slave.dst_id >= DW_DMA_MAX_NR_REQUESTS ||
 		    slave.m_master >= dw->pdata->nr_masters ||
-		    slave.p_master >= dw->pdata->nr_masters))
+		    slave.p_master >= dw->pdata->nr_masters ||
+		    slave.channels >= BIT(dw->pdata->nr_channels)))
 		return NULL;
 
 	dma_cap_zero(cap);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/dw/platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/dw/platform.c
@@ -66,7 +66,7 @@
 
 	data->chip = chip;
 
-	chip->clk = devm_clk_get(chip->dev, "hclk");
+	chip->clk = devm_clk_get_optional(chip->dev, "hclk");
 	if (IS_ERR(chip->clk))
 		return PTR_ERR(chip->clk);
 	err = clk_prepare_enable(chip->clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/fsl-edma-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/fsl-edma-common.c
@@ -347,26 +347,28 @@
 	/*
 	 * TCD parameters are stored in struct fsl_edma_hw_tcd in little
 	 * endian format. However, we need to load the TCD registers in
-	 * big- or little-endian obeying the eDMA engine model endian.
+	 * big- or little-endian obeying the eDMA engine model endian,
+	 * and this is performed from specific edma_write functions
 	 */
 	edma_writew(edma, 0,  &regs->tcd[ch].csr);
-	edma_writel(edma, le32_to_cpu(tcd->saddr), &regs->tcd[ch].saddr);
-	edma_writel(edma, le32_to_cpu(tcd->daddr), &regs->tcd[ch].daddr);
 
-	edma_writew(edma, le16_to_cpu(tcd->attr), &regs->tcd[ch].attr);
-	edma_writew(edma, le16_to_cpu(tcd->soff), &regs->tcd[ch].soff);
+	edma_writel(edma, (s32)tcd->saddr, &regs->tcd[ch].saddr);
+	edma_writel(edma, (s32)tcd->daddr, &regs->tcd[ch].daddr);
 
-	edma_writel(edma, le32_to_cpu(tcd->nbytes), &regs->tcd[ch].nbytes);
-	edma_writel(edma, le32_to_cpu(tcd->slast), &regs->tcd[ch].slast);
+	edma_writew(edma, (s16)tcd->attr, &regs->tcd[ch].attr);
+	edma_writew(edma, tcd->soff, &regs->tcd[ch].soff);
 
-	edma_writew(edma, le16_to_cpu(tcd->citer), &regs->tcd[ch].citer);
-	edma_writew(edma, le16_to_cpu(tcd->biter), &regs->tcd[ch].biter);
-	edma_writew(edma, le16_to_cpu(tcd->doff), &regs->tcd[ch].doff);
+	edma_writel(edma, (s32)tcd->nbytes, &regs->tcd[ch].nbytes);
+	edma_writel(edma, (s32)tcd->slast, &regs->tcd[ch].slast);
 
-	edma_writel(edma, le32_to_cpu(tcd->dlast_sga),
+	edma_writew(edma, (s16)tcd->citer, &regs->tcd[ch].citer);
+	edma_writew(edma, (s16)tcd->biter, &regs->tcd[ch].biter);
+	edma_writew(edma, (s16)tcd->doff, &regs->tcd[ch].doff);
+
+	edma_writel(edma, (s32)tcd->dlast_sga,
 			&regs->tcd[ch].dlast_sga);
 
-	edma_writew(edma, le16_to_cpu(tcd->csr), &regs->tcd[ch].csr);
+	edma_writew(edma, (s16)tcd->csr, &regs->tcd[ch].csr);
 }
 
 static inline
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/fsl-edma-common.h
+++ linux-gkeop-5.4-5.4.0/drivers/dma/fsl-edma-common.h
@@ -33,7 +33,7 @@
 #define EDMA_TCD_ATTR_DSIZE_16BIT	BIT(0)
 #define EDMA_TCD_ATTR_DSIZE_32BIT	BIT(1)
 #define EDMA_TCD_ATTR_DSIZE_64BIT	(BIT(0) | BIT(1))
-#define EDMA_TCD_ATTR_DSIZE_32BYTE	(BIT(3) | BIT(0))
+#define EDMA_TCD_ATTR_DSIZE_32BYTE	(BIT(2) | BIT(0))
 #define EDMA_TCD_ATTR_SSIZE_8BIT	0
 #define EDMA_TCD_ATTR_SSIZE_16BIT	(EDMA_TCD_ATTR_DSIZE_16BIT << 8)
 #define EDMA_TCD_ATTR_SSIZE_32BIT	(EDMA_TCD_ATTR_DSIZE_32BIT << 8)
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/fsl-edma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/fsl-edma.c
@@ -45,6 +45,13 @@
 			fsl_chan = &fsl_edma->chans[ch];
 
 			spin_lock(&fsl_chan->vchan.lock);
+
+			if (!fsl_chan->edesc) {
+				/* terminate_all called before */
+				spin_unlock(&fsl_chan->vchan.lock);
+				continue;
+			}
+
 			if (!fsl_chan->edesc->iscyclic) {
 				list_del(&fsl_chan->edesc->vdesc.node);
 				vchan_cookie_complete(&fsl_chan->edesc->vdesc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/fsl-qdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/fsl-qdma.c
@@ -304,7 +304,7 @@
 
 	vchan_dma_desc_free_list(&fsl_chan->vchan, &head);
 
-	if (!fsl_queue->comp_pool && !fsl_queue->comp_pool)
+	if (!fsl_queue->comp_pool && !fsl_queue->desc_pool)
 		return;
 
 	list_for_each_entry_safe(comp_temp, _comp_temp,
@@ -1155,6 +1155,9 @@
 		return ret;
 
 	fsl_qdma->irq_base = platform_get_irq_byname(pdev, "qdma-queue0");
+	if (fsl_qdma->irq_base < 0)
+		return fsl_qdma->irq_base;
+
 	fsl_qdma->feature = of_property_read_bool(np, "big-endian");
 	INIT_LIST_HEAD(&fsl_qdma->dma_dev.channels);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/fsldma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/fsldma.c
@@ -1214,6 +1214,7 @@
 {
 	struct fsldma_device *fdev;
 	struct device_node *child;
+	unsigned int i;
 	int err;
 
 	fdev = kzalloc(sizeof(*fdev), GFP_KERNEL);
@@ -1292,6 +1293,10 @@
 	return 0;
 
 out_free_fdev:
+	for (i = 0; i < FSL_DMA_MAX_CHANS_PER_DEVICE; i++) {
+		if (fdev->chan[i])
+			fsl_dma_chan_remove(fdev->chan[i]);
+	}
 	irq_dispose_mapping(fdev->irq);
 	iounmap(fdev->regs);
 out_free:
@@ -1314,6 +1319,7 @@
 		if (fdev->chan[i])
 			fsl_dma_chan_remove(fdev->chan[i]);
 	}
+	irq_dispose_mapping(fdev->irq);
 
 	iounmap(fdev->regs);
 	kfree(fdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/fsldma.h
+++ linux-gkeop-5.4-5.4.0/drivers/dma/fsldma.h
@@ -205,10 +205,10 @@
 #else
 static u64 fsl_ioread64(const u64 __iomem *addr)
 {
-	u32 fsl_addr = lower_32_bits(addr);
-	u64 fsl_addr_hi = (u64)in_le32((u32 *)(fsl_addr + 1)) << 32;
+	u32 val_lo = in_le32((u32 __iomem *)addr);
+	u32 val_hi = in_le32((u32 __iomem *)addr + 1);
 
-	return fsl_addr_hi | in_le32((u32 *)fsl_addr);
+	return ((u64)val_hi << 32) + val_lo;
 }
 
 static void fsl_iowrite64(u64 val, u64 __iomem *addr)
@@ -219,10 +219,10 @@
 
 static u64 fsl_ioread64be(const u64 __iomem *addr)
 {
-	u32 fsl_addr = lower_32_bits(addr);
-	u64 fsl_addr_hi = (u64)in_be32((u32 *)fsl_addr) << 32;
+	u32 val_hi = in_be32((u32 __iomem *)addr);
+	u32 val_lo = in_be32((u32 __iomem *)addr + 1);
 
-	return fsl_addr_hi | in_be32((u32 *)(fsl_addr + 1));
+	return ((u64)val_hi << 32) + val_lo;
 }
 
 static void fsl_iowrite64be(u64 val, u64 __iomem *addr)
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/hisi_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/hisi_dma.c
@@ -0,0 +1,611 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* Copyright(c) 2019 HiSilicon Limited. */
+#include <linux/bitfield.h>
+#include <linux/dmaengine.h>
+#include <linux/init.h>
+#include <linux/iopoll.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+#include <linux/spinlock.h>
+#include "virt-dma.h"
+
+#define HISI_DMA_SQ_BASE_L		0x0
+#define HISI_DMA_SQ_BASE_H		0x4
+#define HISI_DMA_SQ_DEPTH		0x8
+#define HISI_DMA_SQ_TAIL_PTR		0xc
+#define HISI_DMA_CQ_BASE_L		0x10
+#define HISI_DMA_CQ_BASE_H		0x14
+#define HISI_DMA_CQ_DEPTH		0x18
+#define HISI_DMA_CQ_HEAD_PTR		0x1c
+#define HISI_DMA_CTRL0			0x20
+#define HISI_DMA_CTRL0_QUEUE_EN_S	0
+#define HISI_DMA_CTRL0_QUEUE_PAUSE_S	4
+#define HISI_DMA_CTRL1			0x24
+#define HISI_DMA_CTRL1_QUEUE_RESET_S	0
+#define HISI_DMA_Q_FSM_STS		0x30
+#define HISI_DMA_FSM_STS_MASK		GENMASK(3, 0)
+#define HISI_DMA_INT_STS		0x40
+#define HISI_DMA_INT_STS_MASK		GENMASK(12, 0)
+#define HISI_DMA_INT_MSK		0x44
+#define HISI_DMA_MODE			0x217c
+#define HISI_DMA_OFFSET			0x100
+
+#define HISI_DMA_MSI_NUM		30
+#define HISI_DMA_CHAN_NUM		30
+#define HISI_DMA_Q_DEPTH_VAL		1024
+
+#define PCI_BAR_2			2
+
+enum hisi_dma_mode {
+	EP = 0,
+	RC,
+};
+
+enum hisi_dma_chan_status {
+	DISABLE = -1,
+	IDLE = 0,
+	RUN,
+	CPL,
+	PAUSE,
+	HALT,
+	ABORT,
+	WAIT,
+	BUFFCLR,
+};
+
+struct hisi_dma_sqe {
+	__le32 dw0;
+#define OPCODE_MASK			GENMASK(3, 0)
+#define OPCODE_SMALL_PACKAGE		0x1
+#define OPCODE_M2M			0x4
+#define LOCAL_IRQ_EN			BIT(8)
+#define ATTR_SRC_MASK			GENMASK(14, 12)
+	__le32 dw1;
+	__le32 dw2;
+#define ATTR_DST_MASK			GENMASK(26, 24)
+	__le32 length;
+	__le64 src_addr;
+	__le64 dst_addr;
+};
+
+struct hisi_dma_cqe {
+	__le32 rsv0;
+	__le32 rsv1;
+	__le16 sq_head;
+	__le16 rsv2;
+	__le16 rsv3;
+	__le16 w0;
+#define STATUS_MASK			GENMASK(15, 1)
+#define STATUS_SUCC			0x0
+#define VALID_BIT			BIT(0)
+};
+
+struct hisi_dma_desc {
+	struct virt_dma_desc vd;
+	struct hisi_dma_sqe sqe;
+};
+
+struct hisi_dma_chan {
+	struct virt_dma_chan vc;
+	struct hisi_dma_dev *hdma_dev;
+	struct hisi_dma_sqe *sq;
+	struct hisi_dma_cqe *cq;
+	dma_addr_t sq_dma;
+	dma_addr_t cq_dma;
+	u32 sq_tail;
+	u32 cq_head;
+	u32 qp_num;
+	enum hisi_dma_chan_status status;
+	struct hisi_dma_desc *desc;
+};
+
+struct hisi_dma_dev {
+	struct pci_dev *pdev;
+	void __iomem *base;
+	struct dma_device dma_dev;
+	u32 chan_num;
+	u32 chan_depth;
+	struct hisi_dma_chan chan[];
+};
+
+static inline struct hisi_dma_chan *to_hisi_dma_chan(struct dma_chan *c)
+{
+	return container_of(c, struct hisi_dma_chan, vc.chan);
+}
+
+static inline struct hisi_dma_desc *to_hisi_dma_desc(struct virt_dma_desc *vd)
+{
+	return container_of(vd, struct hisi_dma_desc, vd);
+}
+
+static inline void hisi_dma_chan_write(void __iomem *base, u32 reg, u32 index,
+				       u32 val)
+{
+	writel_relaxed(val, base + reg + index * HISI_DMA_OFFSET);
+}
+
+static inline void hisi_dma_update_bit(void __iomem *addr, u32 pos, bool val)
+{
+	u32 tmp;
+
+	tmp = readl_relaxed(addr);
+	tmp = val ? tmp | BIT(pos) : tmp & ~BIT(pos);
+	writel_relaxed(tmp, addr);
+}
+
+static void hisi_dma_free_irq_vectors(void *data)
+{
+	pci_free_irq_vectors(data);
+}
+
+static void hisi_dma_pause_dma(struct hisi_dma_dev *hdma_dev, u32 index,
+			       bool pause)
+{
+	void __iomem *addr = hdma_dev->base + HISI_DMA_CTRL0 + index *
+			     HISI_DMA_OFFSET;
+
+	hisi_dma_update_bit(addr, HISI_DMA_CTRL0_QUEUE_PAUSE_S, pause);
+}
+
+static void hisi_dma_enable_dma(struct hisi_dma_dev *hdma_dev, u32 index,
+				bool enable)
+{
+	void __iomem *addr = hdma_dev->base + HISI_DMA_CTRL0 + index *
+			     HISI_DMA_OFFSET;
+
+	hisi_dma_update_bit(addr, HISI_DMA_CTRL0_QUEUE_EN_S, enable);
+}
+
+static void hisi_dma_mask_irq(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_INT_MSK, qp_index,
+			    HISI_DMA_INT_STS_MASK);
+}
+
+static void hisi_dma_unmask_irq(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	void __iomem *base = hdma_dev->base;
+
+	hisi_dma_chan_write(base, HISI_DMA_INT_STS, qp_index,
+			    HISI_DMA_INT_STS_MASK);
+	hisi_dma_chan_write(base, HISI_DMA_INT_MSK, qp_index, 0);
+}
+
+static void hisi_dma_do_reset(struct hisi_dma_dev *hdma_dev, u32 index)
+{
+	void __iomem *addr = hdma_dev->base + HISI_DMA_CTRL1 + index *
+			     HISI_DMA_OFFSET;
+
+	hisi_dma_update_bit(addr, HISI_DMA_CTRL1_QUEUE_RESET_S, 1);
+}
+
+static void hisi_dma_reset_qp_point(struct hisi_dma_dev *hdma_dev, u32 index)
+{
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_SQ_TAIL_PTR, index, 0);
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_CQ_HEAD_PTR, index, 0);
+}
+
+static void hisi_dma_reset_hw_chan(struct hisi_dma_chan *chan)
+{
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+	u32 index = chan->qp_num, tmp;
+	int ret;
+
+	hisi_dma_pause_dma(hdma_dev, index, true);
+	hisi_dma_enable_dma(hdma_dev, index, false);
+	hisi_dma_mask_irq(hdma_dev, index);
+
+	ret = readl_relaxed_poll_timeout(hdma_dev->base +
+		HISI_DMA_Q_FSM_STS + index * HISI_DMA_OFFSET, tmp,
+		FIELD_GET(HISI_DMA_FSM_STS_MASK, tmp) != RUN, 10, 1000);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "disable channel timeout!\n");
+		WARN_ON(1);
+	}
+
+	hisi_dma_do_reset(hdma_dev, index);
+	hisi_dma_reset_qp_point(hdma_dev, index);
+	hisi_dma_pause_dma(hdma_dev, index, false);
+	hisi_dma_enable_dma(hdma_dev, index, true);
+	hisi_dma_unmask_irq(hdma_dev, index);
+
+	ret = readl_relaxed_poll_timeout(hdma_dev->base +
+		HISI_DMA_Q_FSM_STS + index * HISI_DMA_OFFSET, tmp,
+		FIELD_GET(HISI_DMA_FSM_STS_MASK, tmp) == IDLE, 10, 1000);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "reset channel timeout!\n");
+		WARN_ON(1);
+	}
+}
+
+static void hisi_dma_free_chan_resources(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+
+	hisi_dma_reset_hw_chan(chan);
+	vchan_free_chan_resources(&chan->vc);
+
+	memset(chan->sq, 0, sizeof(struct hisi_dma_sqe) * hdma_dev->chan_depth);
+	memset(chan->cq, 0, sizeof(struct hisi_dma_cqe) * hdma_dev->chan_depth);
+	chan->sq_tail = 0;
+	chan->cq_head = 0;
+	chan->status = DISABLE;
+}
+
+static void hisi_dma_desc_free(struct virt_dma_desc *vd)
+{
+	kfree(to_hisi_dma_desc(vd));
+}
+
+static struct dma_async_tx_descriptor *
+hisi_dma_prep_dma_memcpy(struct dma_chan *c, dma_addr_t dst, dma_addr_t src,
+			 size_t len, unsigned long flags)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	struct hisi_dma_desc *desc;
+
+	desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+	if (!desc)
+		return NULL;
+
+	desc->sqe.length = cpu_to_le32(len);
+	desc->sqe.src_addr = cpu_to_le64(src);
+	desc->sqe.dst_addr = cpu_to_le64(dst);
+
+	return vchan_tx_prep(&chan->vc, &desc->vd, flags);
+}
+
+static enum dma_status
+hisi_dma_tx_status(struct dma_chan *c, dma_cookie_t cookie,
+		   struct dma_tx_state *txstate)
+{
+	return dma_cookie_status(c, cookie, txstate);
+}
+
+static void hisi_dma_start_transfer(struct hisi_dma_chan *chan)
+{
+	struct hisi_dma_sqe *sqe = chan->sq + chan->sq_tail;
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+	struct hisi_dma_desc *desc;
+	struct virt_dma_desc *vd;
+
+	vd = vchan_next_desc(&chan->vc);
+	if (!vd) {
+		dev_err(&hdma_dev->pdev->dev, "no issued task!\n");
+		chan->desc = NULL;
+		return;
+	}
+	list_del(&vd->node);
+	desc = to_hisi_dma_desc(vd);
+	chan->desc = desc;
+
+	memcpy(sqe, &desc->sqe, sizeof(struct hisi_dma_sqe));
+
+	/* update other field in sqe */
+	sqe->dw0 = cpu_to_le32(FIELD_PREP(OPCODE_MASK, OPCODE_M2M));
+	sqe->dw0 |= cpu_to_le32(LOCAL_IRQ_EN);
+
+	/* make sure data has been updated in sqe */
+	wmb();
+
+	/* update sq tail, point to new sqe position */
+	chan->sq_tail = (chan->sq_tail + 1) % hdma_dev->chan_depth;
+
+	/* update sq_tail to trigger a new task */
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_SQ_TAIL_PTR, chan->qp_num,
+			    chan->sq_tail);
+}
+
+static void hisi_dma_issue_pending(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	unsigned long flags;
+
+	spin_lock_irqsave(&chan->vc.lock, flags);
+
+	if (vchan_issue_pending(&chan->vc))
+		hisi_dma_start_transfer(chan);
+
+	spin_unlock_irqrestore(&chan->vc.lock, flags);
+}
+
+static int hisi_dma_terminate_all(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	unsigned long flags;
+	LIST_HEAD(head);
+
+	spin_lock_irqsave(&chan->vc.lock, flags);
+
+	hisi_dma_pause_dma(chan->hdma_dev, chan->qp_num, true);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vd);
+		chan->desc = NULL;
+	}
+
+	vchan_get_all_descriptors(&chan->vc, &head);
+
+	spin_unlock_irqrestore(&chan->vc.lock, flags);
+
+	vchan_dma_desc_free_list(&chan->vc, &head);
+	hisi_dma_pause_dma(chan->hdma_dev, chan->qp_num, false);
+
+	return 0;
+}
+
+static void hisi_dma_synchronize(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+
+	vchan_synchronize(&chan->vc);
+}
+
+static int hisi_dma_alloc_qps_mem(struct hisi_dma_dev *hdma_dev)
+{
+	size_t sq_size = sizeof(struct hisi_dma_sqe) * hdma_dev->chan_depth;
+	size_t cq_size = sizeof(struct hisi_dma_cqe) * hdma_dev->chan_depth;
+	struct device *dev = &hdma_dev->pdev->dev;
+	struct hisi_dma_chan *chan;
+	int i;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		chan = &hdma_dev->chan[i];
+		chan->sq = dmam_alloc_coherent(dev, sq_size, &chan->sq_dma,
+					       GFP_KERNEL);
+		if (!chan->sq)
+			return -ENOMEM;
+
+		chan->cq = dmam_alloc_coherent(dev, cq_size, &chan->cq_dma,
+					       GFP_KERNEL);
+		if (!chan->cq)
+			return -ENOMEM;
+	}
+
+	return 0;
+}
+
+static void hisi_dma_init_hw_qp(struct hisi_dma_dev *hdma_dev, u32 index)
+{
+	struct hisi_dma_chan *chan = &hdma_dev->chan[index];
+	u32 hw_depth = hdma_dev->chan_depth - 1;
+	void __iomem *base = hdma_dev->base;
+
+	/* set sq, cq base */
+	hisi_dma_chan_write(base, HISI_DMA_SQ_BASE_L, index,
+			    lower_32_bits(chan->sq_dma));
+	hisi_dma_chan_write(base, HISI_DMA_SQ_BASE_H, index,
+			    upper_32_bits(chan->sq_dma));
+	hisi_dma_chan_write(base, HISI_DMA_CQ_BASE_L, index,
+			    lower_32_bits(chan->cq_dma));
+	hisi_dma_chan_write(base, HISI_DMA_CQ_BASE_H, index,
+			    upper_32_bits(chan->cq_dma));
+
+	/* set sq, cq depth */
+	hisi_dma_chan_write(base, HISI_DMA_SQ_DEPTH, index, hw_depth);
+	hisi_dma_chan_write(base, HISI_DMA_CQ_DEPTH, index, hw_depth);
+
+	/* init sq tail and cq head */
+	hisi_dma_chan_write(base, HISI_DMA_SQ_TAIL_PTR, index, 0);
+	hisi_dma_chan_write(base, HISI_DMA_CQ_HEAD_PTR, index, 0);
+}
+
+static void hisi_dma_enable_qp(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	hisi_dma_init_hw_qp(hdma_dev, qp_index);
+	hisi_dma_unmask_irq(hdma_dev, qp_index);
+	hisi_dma_enable_dma(hdma_dev, qp_index, true);
+}
+
+static void hisi_dma_disable_qp(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	hisi_dma_reset_hw_chan(&hdma_dev->chan[qp_index]);
+}
+
+static void hisi_dma_enable_qps(struct hisi_dma_dev *hdma_dev)
+{
+	int i;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		hdma_dev->chan[i].qp_num = i;
+		hdma_dev->chan[i].hdma_dev = hdma_dev;
+		hdma_dev->chan[i].vc.desc_free = hisi_dma_desc_free;
+		vchan_init(&hdma_dev->chan[i].vc, &hdma_dev->dma_dev);
+		hisi_dma_enable_qp(hdma_dev, i);
+	}
+}
+
+static void hisi_dma_disable_qps(struct hisi_dma_dev *hdma_dev)
+{
+	int i;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		hisi_dma_disable_qp(hdma_dev, i);
+		tasklet_kill(&hdma_dev->chan[i].vc.task);
+	}
+}
+
+static irqreturn_t hisi_dma_irq(int irq, void *data)
+{
+	struct hisi_dma_chan *chan = data;
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+	struct hisi_dma_desc *desc;
+	struct hisi_dma_cqe *cqe;
+	unsigned long flags;
+
+	spin_lock_irqsave(&chan->vc.lock, flags);
+
+	desc = chan->desc;
+	cqe = chan->cq + chan->cq_head;
+	if (desc) {
+		if (FIELD_GET(STATUS_MASK, cqe->w0) == STATUS_SUCC) {
+			chan->cq_head = (chan->cq_head + 1) %
+					hdma_dev->chan_depth;
+			hisi_dma_chan_write(hdma_dev->base,
+					    HISI_DMA_CQ_HEAD_PTR, chan->qp_num,
+					    chan->cq_head);
+			vchan_cookie_complete(&desc->vd);
+		} else {
+			dev_err(&hdma_dev->pdev->dev, "task error!\n");
+		}
+
+		chan->desc = NULL;
+	}
+
+	spin_unlock_irqrestore(&chan->vc.lock, flags);
+
+	return IRQ_HANDLED;
+}
+
+static int hisi_dma_request_qps_irq(struct hisi_dma_dev *hdma_dev)
+{
+	struct pci_dev *pdev = hdma_dev->pdev;
+	int i, ret;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		ret = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, i),
+				       hisi_dma_irq, IRQF_SHARED, "hisi_dma",
+				       &hdma_dev->chan[i]);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/* This function enables all hw channels in a device */
+static int hisi_dma_enable_hw_channels(struct hisi_dma_dev *hdma_dev)
+{
+	int ret;
+
+	ret = hisi_dma_alloc_qps_mem(hdma_dev);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "fail to allocate qp memory!\n");
+		return ret;
+	}
+
+	ret = hisi_dma_request_qps_irq(hdma_dev);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "fail to request qp irq!\n");
+		return ret;
+	}
+
+	hisi_dma_enable_qps(hdma_dev);
+
+	return 0;
+}
+
+static void hisi_dma_disable_hw_channels(void *data)
+{
+	hisi_dma_disable_qps(data);
+}
+
+static void hisi_dma_set_mode(struct hisi_dma_dev *hdma_dev,
+			      enum hisi_dma_mode mode)
+{
+	writel_relaxed(mode == RC ? 1 : 0, hdma_dev->base + HISI_DMA_MODE);
+}
+
+static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct device *dev = &pdev->dev;
+	struct hisi_dma_dev *hdma_dev;
+	struct dma_device *dma_dev;
+	size_t dev_size;
+	int ret;
+
+	ret = pcim_enable_device(pdev);
+	if (ret) {
+		dev_err(dev, "failed to enable device mem!\n");
+		return ret;
+	}
+
+	ret = pcim_iomap_regions(pdev, 1 << PCI_BAR_2, pci_name(pdev));
+	if (ret) {
+		dev_err(dev, "failed to remap I/O region!\n");
+		return ret;
+	}
+
+	ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
+	if (ret)
+		return ret;
+
+	ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
+	if (ret)
+		return ret;
+
+	dev_size = sizeof(struct hisi_dma_chan) * HISI_DMA_CHAN_NUM +
+		   sizeof(*hdma_dev);
+	hdma_dev = devm_kzalloc(dev, dev_size, GFP_KERNEL);
+	if (!hdma_dev)
+		return -EINVAL;
+
+	hdma_dev->base = pcim_iomap_table(pdev)[PCI_BAR_2];
+	hdma_dev->pdev = pdev;
+	hdma_dev->chan_num = HISI_DMA_CHAN_NUM;
+	hdma_dev->chan_depth = HISI_DMA_Q_DEPTH_VAL;
+
+	pci_set_drvdata(pdev, hdma_dev);
+	pci_set_master(pdev);
+
+	ret = pci_alloc_irq_vectors(pdev, HISI_DMA_MSI_NUM, HISI_DMA_MSI_NUM,
+				    PCI_IRQ_MSI);
+	if (ret < 0) {
+		dev_err(dev, "Failed to allocate MSI vectors!\n");
+		return ret;
+	}
+
+	ret = devm_add_action_or_reset(dev, hisi_dma_free_irq_vectors, pdev);
+	if (ret)
+		return ret;
+
+	dma_dev = &hdma_dev->dma_dev;
+	dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
+	dma_dev->device_free_chan_resources = hisi_dma_free_chan_resources;
+	dma_dev->device_prep_dma_memcpy = hisi_dma_prep_dma_memcpy;
+	dma_dev->device_tx_status = hisi_dma_tx_status;
+	dma_dev->device_issue_pending = hisi_dma_issue_pending;
+	dma_dev->device_terminate_all = hisi_dma_terminate_all;
+	dma_dev->device_synchronize = hisi_dma_synchronize;
+	dma_dev->directions = BIT(DMA_MEM_TO_MEM);
+	dma_dev->dev = dev;
+	INIT_LIST_HEAD(&dma_dev->channels);
+
+	hisi_dma_set_mode(hdma_dev, RC);
+
+	ret = hisi_dma_enable_hw_channels(hdma_dev);
+	if (ret < 0) {
+		dev_err(dev, "failed to enable hw channel!\n");
+		return ret;
+	}
+
+	ret = devm_add_action_or_reset(dev, hisi_dma_disable_hw_channels,
+				       hdma_dev);
+	if (ret)
+		return ret;
+
+	ret = dmaenginem_async_device_register(dma_dev);
+	if (ret < 0)
+		dev_err(dev, "failed to register device!\n");
+
+	return ret;
+}
+
+static const struct pci_device_id hisi_dma_pci_tbl[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, 0xa122) },
+	{ 0, }
+};
+
+static struct pci_driver hisi_dma_pci_driver = {
+	.name		= "hisi_dma",
+	.id_table	= hisi_dma_pci_tbl,
+	.probe		= hisi_dma_probe,
+};
+
+module_pci_driver(hisi_dma_pci_driver);
+
+MODULE_AUTHOR("Zhou Wang <wangzhou1@hisilicon.com>");
+MODULE_AUTHOR("Zhenfa Qiu <qiuzhenfa@hisilicon.com>");
+MODULE_DESCRIPTION("HiSilicon Kunpeng DMA controller driver");
+MODULE_LICENSE("GPL v2");
+MODULE_DEVICE_TABLE(pci, hisi_dma_pci_tbl);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/hsu/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/hsu/pci.c
@@ -26,22 +26,12 @@
 static irqreturn_t hsu_pci_irq(int irq, void *dev)
 {
 	struct hsu_dma_chip *chip = dev;
-	struct pci_dev *pdev = to_pci_dev(chip->dev);
 	u32 dmaisr;
 	u32 status;
 	unsigned short i;
 	int ret = 0;
 	int err;
 
-	/*
-	 * On Intel Tangier B0 and Anniedale the interrupt line, disregarding
-	 * to have different numbers, is shared between HSU DMA and UART IPs.
-	 * Thus on such SoCs we are expecting that IRQ handler is called in
-	 * UART driver only.
-	 */
-	if (pdev->device == PCI_DEVICE_ID_INTEL_MRFLD_HSU_DMA)
-		return IRQ_HANDLED;
-
 	dmaisr = readl(chip->regs + HSU_PCI_DMAISR);
 	for (i = 0; i < chip->hsu->nr_channels; i++) {
 		if (dmaisr & 0x1) {
@@ -105,6 +95,17 @@
 	if (ret)
 		goto err_register_irq;
 
+	/*
+	 * On Intel Tangier B0 and Anniedale the interrupt line, disregarding
+	 * to have different numbers, is shared between HSU DMA and UART IPs.
+	 * Thus on such SoCs we are expecting that IRQ handler is called in
+	 * UART driver only. Instead of handling the spurious interrupt
+	 * from HSU DMA here and waste CPU time and delay HSU UART interrupt
+	 * handling, disable the interrupt entirely.
+	 */
+	if (pdev->device == PCI_DEVICE_ID_INTEL_MRFLD_HSU_DMA)
+		disable_irq_nosync(chip->irq);
+
 	pci_set_drvdata(pdev, chip);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/imx-sdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/imx-sdma.c
@@ -1328,13 +1328,14 @@
 
 	sdma_channel_synchronize(chan);
 
-	if (sdmac->event_id0)
+	if (sdmac->event_id0 >= 0)
 		sdma_event_disable(sdmac, sdmac->event_id0);
 	if (sdmac->event_id1)
 		sdma_event_disable(sdmac, sdmac->event_id1);
 
 	sdmac->event_id0 = 0;
 	sdmac->event_id1 = 0;
+	sdmac->context_loaded = false;
 
 	sdma_set_channel_priority(sdmac, 0);
 
@@ -1628,7 +1629,7 @@
 	memcpy(&sdmac->slave_config, dmaengine_cfg, sizeof(*dmaengine_cfg));
 
 	/* Set ENBLn earlier to make sure dma request triggered after that */
-	if (sdmac->event_id0) {
+	if (sdmac->event_id0 >= 0) {
 		if (sdmac->event_id0 >= sdmac->sdma->drvdata->num_events)
 			return -EINVAL;
 		sdma_event_enable(sdmac, sdmac->event_id0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/ioat/dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/ioat/dma.c
@@ -26,6 +26,18 @@
 
 #include "../dmaengine.h"
 
+int completion_timeout = 200;
+module_param(completion_timeout, int, 0644);
+MODULE_PARM_DESC(completion_timeout,
+		"set ioat completion timeout [msec] (default 200 [msec])");
+int idle_timeout = 2000;
+module_param(idle_timeout, int, 0644);
+MODULE_PARM_DESC(idle_timeout,
+		"set ioat idel timeout [msec] (default 2000 [msec])");
+
+#define IDLE_TIMEOUT msecs_to_jiffies(idle_timeout)
+#define COMPLETION_TIMEOUT msecs_to_jiffies(completion_timeout)
+
 static char *chanerr_str[] = {
 	"DMA Transfer Source Address Error",
 	"DMA Transfer Destination Address Error",
@@ -377,10 +389,11 @@
 
 		descs->virt = dma_alloc_coherent(to_dev(ioat_chan),
 						 SZ_2M, &descs->hw, flags);
-		if (!descs->virt && (i > 0)) {
+		if (!descs->virt) {
 			int idx;
 
 			for (idx = 0; idx < i; idx++) {
+				descs = &ioat_chan->descs[idx];
 				dma_free_coherent(to_dev(ioat_chan), SZ_2M,
 						  descs->virt, descs->hw);
 				descs->virt = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/ioat/dma.h
+++ linux-gkeop-5.4-5.4.0/drivers/dma/ioat/dma.h
@@ -99,8 +99,6 @@
 	#define IOAT_RUN 5
 	#define IOAT_CHAN_ACTIVE 6
 	struct timer_list timer;
-	#define COMPLETION_TIMEOUT msecs_to_jiffies(100)
-	#define IDLE_TIMEOUT msecs_to_jiffies(2000)
 	#define RESET_DELAY msecs_to_jiffies(100)
 	struct ioatdma_device *ioat_dma;
 	dma_addr_t completion_dma;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/k3dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/k3dma.c
@@ -229,9 +229,11 @@
 			c = p->vchan;
 			if (c && (tc1 & BIT(i))) {
 				spin_lock_irqsave(&c->vc.lock, flags);
-				vchan_cookie_complete(&p->ds_run->vd);
-				p->ds_done = p->ds_run;
-				p->ds_run = NULL;
+				if (p->ds_run != NULL) {
+					vchan_cookie_complete(&p->ds_run->vd);
+					p->ds_done = p->ds_run;
+					p->ds_run = NULL;
+				}
 				spin_unlock_irqrestore(&c->vc.lock, flags);
 			}
 			if (c && (tc2 & BIT(i))) {
@@ -271,6 +273,10 @@
 	if (BIT(c->phy->idx) & k3_dma_get_chan_stat(d))
 		return -EAGAIN;
 
+	/* Avoid losing track of  ds_run if a transaction is in flight */
+	if (c->phy->ds_run)
+		return -EAGAIN;
+
 	if (vd) {
 		struct k3_dma_desc_sw *ds =
 			container_of(vd, struct k3_dma_desc_sw, vd);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/mcf-edma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/mcf-edma.c
@@ -35,6 +35,13 @@
 			mcf_chan = &mcf_edma->chans[ch];
 
 			spin_lock(&mcf_chan->vchan.lock);
+
+			if (!mcf_chan->edesc) {
+				/* terminate_all called before */
+				spin_unlock(&mcf_chan->vchan.lock);
+				continue;
+			}
+
 			if (!mcf_chan->edesc->iscyclic) {
 				list_del(&mcf_chan->edesc->vdesc.node);
 				vchan_cookie_complete(&mcf_chan->edesc->vdesc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/mediatek/mtk-hsdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/mediatek/mtk-hsdma.c
@@ -997,7 +997,7 @@
 	if (err) {
 		dev_err(&pdev->dev,
 			"request_irq failed with err %d\n", err);
-		goto err_unregister;
+		goto err_free;
 	}
 
 	platform_set_drvdata(pdev, hsdma);
@@ -1006,6 +1006,9 @@
 
 	return 0;
 
+err_free:
+	mtk_hsdma_hw_deinit(hsdma);
+	of_dma_controller_free(pdev->dev.of_node);
 err_unregister:
 	dma_async_device_unregister(dd);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/mmp_tdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/mmp_tdma.c
@@ -363,6 +363,8 @@
 		gen_pool_free(gpool, (unsigned long)tdmac->desc_arr,
 				size);
 	tdmac->desc_arr = NULL;
+	if (tdmac->status == DMA_ERROR)
+		tdmac->status = DMA_COMPLETE;
 
 	return;
 }
@@ -443,7 +445,8 @@
 	if (!desc)
 		goto err_out;
 
-	mmp_tdma_config_write(chan, direction, &tdmac->slave_config);
+	if (mmp_tdma_config_write(chan, direction, &tdmac->slave_config))
+		goto err_out;
 
 	while (buf < buf_len) {
 		desc = &tdmac->desc_arr[i];
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/mv_xor_v2.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/mv_xor_v2.c
@@ -766,8 +766,10 @@
 		goto disable_clk;
 
 	msi_desc = first_msi_entry(&pdev->dev);
-	if (!msi_desc)
+	if (!msi_desc) {
+		ret = -ENODEV;
 		goto free_msi_irqs;
+	}
 	xor_dev->msi_desc = msi_desc;
 
 	ret = devm_request_irq(&pdev->dev, msi_desc->irq,
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/of-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/of-dma.c
@@ -69,12 +69,12 @@
 		return NULL;
 
 	chan = ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target);
-	if (chan) {
-		chan->router = ofdma->dma_router;
-		chan->route_data = route_data;
-	} else {
+	if (IS_ERR_OR_NULL(chan)) {
 		ofdma->dma_router->route_free(ofdma->dma_router->dev,
 					      route_data);
+	} else {
+		chan->router = ofdma->dma_router;
+		chan->route_data = route_data;
 	}
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/owl-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/owl-dma.c
@@ -175,13 +175,11 @@
  * @id: physical index to this channel
  * @base: virtual memory base for the dma channel
  * @vchan: the virtual channel currently being served by this physical channel
- * @lock: a lock to use when altering an instance of this struct
  */
 struct owl_dma_pchan {
 	u32			id;
 	void __iomem		*base;
 	struct owl_dma_vchan	*vchan;
-	spinlock_t		lock;
 };
 
 /**
@@ -437,14 +435,14 @@
 	for (i = 0; i < od->nr_pchans; i++) {
 		pchan = &od->pchans[i];
 
-		spin_lock_irqsave(&pchan->lock, flags);
+		spin_lock_irqsave(&od->lock, flags);
 		if (!pchan->vchan) {
 			pchan->vchan = vchan;
-			spin_unlock_irqrestore(&pchan->lock, flags);
+			spin_unlock_irqrestore(&od->lock, flags);
 			break;
 		}
 
-		spin_unlock_irqrestore(&pchan->lock, flags);
+		spin_unlock_irqrestore(&od->lock, flags);
 	}
 
 	return pchan;
@@ -1203,6 +1201,7 @@
 	owl_dma_free(od);
 
 	clk_disable_unprepare(od->clk);
+	dma_pool_destroy(od->lli_pool);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/pch_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/pch_dma.c
@@ -865,6 +865,7 @@
 	}
 
 	pci_set_master(pdev);
+	pd->dma.dev = &pdev->dev;
 
 	err = request_irq(pdev->irq, pd_irq, IRQF_SHARED, DRV_NAME, pd);
 	if (err) {
@@ -880,7 +881,6 @@
 		goto err_free_irq;
 	}
 
-	pd->dma.dev = &pdev->dev;
 
 	INIT_LIST_HEAD(&pd->dma.channels);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/pl330.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/pl330.c
@@ -2788,14 +2788,14 @@
 	while (burst != (1 << desc->rqcfg.brst_size))
 		desc->rqcfg.brst_size++;
 
+	desc->rqcfg.brst_len = get_burst_len(desc, len);
 	/*
 	 * If burst size is smaller than bus width then make sure we only
 	 * transfer one at a time to avoid a burst stradling an MFIFO entry.
 	 */
-	if (desc->rqcfg.brst_size * 8 < pl330->pcfg.data_bus_width)
+	if (burst * 8 < pl330->pcfg.data_bus_width)
 		desc->rqcfg.brst_len = 1;
 
-	desc->rqcfg.brst_len = get_burst_len(desc, len);
 	desc->bytes_requested = len;
 
 	desc->txd.flags = flags;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/sh/usb-dmac.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/sh/usb-dmac.c
@@ -586,6 +586,8 @@
 		desc->residue = usb_dmac_get_current_residue(chan, desc,
 							desc->sg_index - 1);
 		desc->done_cookie = desc->vd.tx.cookie;
+		desc->vd.tx_result.result = DMA_TRANS_NOERROR;
+		desc->vd.tx_result.residue = desc->residue;
 		vchan_cookie_complete(&desc->vd);
 
 		/* Restart the next transfer if this driver has a next desc */
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/stm32-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/stm32-dma.c
@@ -488,8 +488,10 @@
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
 
-	if (chan->busy) {
-		stm32_dma_stop(chan);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vdesc);
+		if (chan->busy)
+			stm32_dma_stop(chan);
 		chan->desc = NULL;
 	}
 
@@ -545,6 +547,8 @@
 		if (!vdesc)
 			return;
 
+		list_del(&vdesc->node);
+
 		chan->desc = to_stm32_dma_desc(vdesc);
 		chan->next_sg = 0;
 	}
@@ -622,7 +626,6 @@
 		} else {
 			chan->busy = false;
 			if (chan->next_sg == chan->desc->num_sgs) {
-				list_del(&chan->desc->vdesc.node);
 				vchan_cookie_complete(&chan->desc->vdesc);
 				chan->desc = NULL;
 			}
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/stm32-mdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/stm32-mdma.c
@@ -1127,6 +1127,8 @@
 		return;
 	}
 
+	list_del(&vdesc->node);
+
 	chan->desc = to_stm32_mdma_desc(vdesc);
 	hwdesc = chan->desc->node[0].hwdesc;
 	chan->curr_hwdesc = 0;
@@ -1242,8 +1244,10 @@
 	LIST_HEAD(head);
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
-	if (chan->busy) {
-		stm32_mdma_stop(chan);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vdesc);
+		if (chan->busy)
+			stm32_mdma_stop(chan);
 		chan->desc = NULL;
 	}
 	vchan_get_all_descriptors(&chan->vchan, &head);
@@ -1331,7 +1335,6 @@
 
 static void stm32_mdma_xfer_end(struct stm32_mdma_chan *chan)
 {
-	list_del(&chan->desc->vdesc.node);
 	vchan_cookie_complete(&chan->desc->vdesc);
 	chan->desc = NULL;
 	chan->busy = false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/tegra20-apb-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/tegra20-apb-dma.c
@@ -281,7 +281,7 @@
 
 	/* Do not allocate if desc are waiting for ack */
 	list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) {
-		if (async_tx_test_ack(&dma_desc->txd)) {
+		if (async_tx_test_ack(&dma_desc->txd) && !dma_desc->cb_count) {
 			list_del(&dma_desc->node);
 			spin_unlock_irqrestore(&tdc->lock, flags);
 			dma_desc->txd.flags = 0;
@@ -756,10 +756,6 @@
 	bool was_busy;
 
 	spin_lock_irqsave(&tdc->lock, flags);
-	if (list_empty(&tdc->pending_sg_req)) {
-		spin_unlock_irqrestore(&tdc->lock, flags);
-		return 0;
-	}
 
 	if (!tdc->busy)
 		goto skip_dma_stop;
@@ -1291,8 +1287,7 @@
 
 	dev_dbg(tdc2dev(tdc), "Freeing channel %d\n", tdc->id);
 
-	if (tdc->busy)
-		tegra_dma_terminate_all(dc);
+	tegra_dma_terminate_all(dc);
 
 	spin_lock_irqsave(&tdc->lock, flags);
 	list_splice_init(&tdc->pending_sg_req, &sg_req_list);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/tegra210-adma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/tegra210-adma.c
@@ -658,6 +658,7 @@
 
 	ret = pm_runtime_get_sync(tdc2dev(tdc));
 	if (ret < 0) {
+		pm_runtime_put_noidle(tdc2dev(tdc));
 		free_irq(tdc->irq, tdc);
 		return ret;
 	}
@@ -869,8 +870,10 @@
 	pm_runtime_enable(&pdev->dev);
 
 	ret = pm_runtime_get_sync(&pdev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(&pdev->dev);
 		goto rpm_disable;
+	}
 
 	ret = tegra_adma_init(tdma);
 	if (ret)
@@ -900,7 +903,7 @@
 	ret = dma_async_device_register(&tdma->dma_dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "ADMA registration failed: %d\n", ret);
-		goto irq_dispose;
+		goto rpm_put;
 	}
 
 	ret = of_dma_controller_register(pdev->dev.of_node,
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/ti/edma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/ti/edma.c
@@ -2403,8 +2403,10 @@
 
 		ecc->tc_list = devm_kcalloc(dev, ecc->num_tc,
 					    sizeof(*ecc->tc_list), GFP_KERNEL);
-		if (!ecc->tc_list)
-			return -ENOMEM;
+		if (!ecc->tc_list) {
+			ret = -ENOMEM;
+			goto err_reg1;
+		}
 
 		for (i = 0;; i++) {
 			ret = of_parse_phandle_with_fixed_args(node, "ti,tptcs",
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/virt-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/virt-dma.c
@@ -104,9 +104,8 @@
 		dmaengine_desc_get_callback(&vd->tx, &cb);
 
 		list_del(&vd->node);
-		vchan_vdesc_fini(vd);
-
 		dmaengine_desc_callback_invoke(&cb, &vd->tx_result);
+		vchan_vdesc_fini(vd);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/xilinx/xilinx_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/xilinx/xilinx_dma.c
@@ -454,8 +454,8 @@
 #define to_dma_tx_descriptor(tx) \
 	container_of(tx, struct xilinx_dma_tx_descriptor, async_tx)
 #define xilinx_dma_poll_timeout(chan, reg, val, cond, delay_us, timeout_us) \
-	readl_poll_timeout(chan->xdev->regs + chan->ctrl_offset + reg, val, \
-			   cond, delay_us, timeout_us)
+	readl_poll_timeout_atomic(chan->xdev->regs + chan->ctrl_offset + reg, \
+				  val, cond, delay_us, timeout_us)
 
 /* IO accessors */
 static inline u32 dma_read(struct xilinx_dma_chan *chan, u32 reg)
@@ -1433,6 +1433,7 @@
 
 	chan->err = false;
 	chan->idle = true;
+	chan->desc_pendingcount = 0;
 	chan->desc_submitcount = 0;
 
 	return err;
@@ -2430,7 +2431,7 @@
 		has_dre = false;
 
 	if (!has_dre)
-		xdev->common.copy_align = fls(width - 1);
+		xdev->common.copy_align = (enum dmaengine_alignment)fls(width - 1);
 
 	if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel") ||
 	    of_device_is_compatible(node, "xlnx,axi-dma-mm2s-channel") ||
@@ -2542,7 +2543,8 @@
 static int xilinx_dma_child_probe(struct xilinx_dma_device *xdev,
 				    struct device_node *node)
 {
-	int ret, i, nr_channels = 1;
+	int ret, i;
+	u32 nr_channels = 1;
 
 	ret = of_property_read_u32(node, "dma-channels", &nr_channels);
 	if ((ret < 0) && xdev->mcdma)
@@ -2741,7 +2743,11 @@
 	}
 
 	/* Register the DMA engine with the core */
-	dma_async_device_register(&xdev->common);
+	err = dma_async_device_register(&xdev->common);
+	if (err) {
+		dev_err(xdev->dev, "failed to register the dma device\n");
+		goto error;
+	}
 
 	err = of_dma_controller_register(node, of_dma_xilinx_xlate,
 					 xdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/dma/xilinx/zynqmp_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/dma/xilinx/zynqmp_dma.c
@@ -123,10 +123,12 @@
 /* Max transfer size per descriptor */
 #define ZYNQMP_DMA_MAX_TRANS_LEN	0x40000000
 
+/* Max burst lengths */
+#define ZYNQMP_DMA_MAX_DST_BURST_LEN    32768U
+#define ZYNQMP_DMA_MAX_SRC_BURST_LEN    32768U
+
 /* Reset values for data attributes */
 #define ZYNQMP_DMA_AXCACHE_VAL		0xF
-#define ZYNQMP_DMA_ARLEN_RST_VAL	0xF
-#define ZYNQMP_DMA_AWLEN_RST_VAL	0xF
 
 #define ZYNQMP_DMA_SRC_ISSUE_RST_VAL	0x1F
 
@@ -534,17 +536,19 @@
 
 static void zynqmp_dma_config(struct zynqmp_dma_chan *chan)
 {
-	u32 val;
+	u32 val, burst_val;
 
 	val = readl(chan->regs + ZYNQMP_DMA_CTRL0);
 	val |= ZYNQMP_DMA_POINT_TYPE_SG;
 	writel(val, chan->regs + ZYNQMP_DMA_CTRL0);
 
 	val = readl(chan->regs + ZYNQMP_DMA_DATA_ATTR);
+	burst_val = __ilog2_u32(chan->src_burst_len);
 	val = (val & ~ZYNQMP_DMA_ARLEN) |
-		(chan->src_burst_len << ZYNQMP_DMA_ARLEN_OFST);
+		((burst_val << ZYNQMP_DMA_ARLEN_OFST) & ZYNQMP_DMA_ARLEN);
+	burst_val = __ilog2_u32(chan->dst_burst_len);
 	val = (val & ~ZYNQMP_DMA_AWLEN) |
-		(chan->dst_burst_len << ZYNQMP_DMA_AWLEN_OFST);
+		((burst_val << ZYNQMP_DMA_AWLEN_OFST) & ZYNQMP_DMA_AWLEN);
 	writel(val, chan->regs + ZYNQMP_DMA_DATA_ATTR);
 }
 
@@ -560,8 +564,10 @@
 {
 	struct zynqmp_dma_chan *chan = to_chan(dchan);
 
-	chan->src_burst_len = config->src_maxburst;
-	chan->dst_burst_len = config->dst_maxburst;
+	chan->src_burst_len = clamp(config->src_maxburst, 1U,
+		ZYNQMP_DMA_MAX_SRC_BURST_LEN);
+	chan->dst_burst_len = clamp(config->dst_maxburst, 1U,
+		ZYNQMP_DMA_MAX_DST_BURST_LEN);
 
 	return 0;
 }
@@ -887,8 +893,8 @@
 		return PTR_ERR(chan->regs);
 
 	chan->bus_width = ZYNQMP_DMA_BUS_WIDTH_64;
-	chan->dst_burst_len = ZYNQMP_DMA_AWLEN_RST_VAL;
-	chan->src_burst_len = ZYNQMP_DMA_ARLEN_RST_VAL;
+	chan->dst_burst_len = ZYNQMP_DMA_MAX_DST_BURST_LEN;
+	chan->src_burst_len = ZYNQMP_DMA_MAX_SRC_BURST_LEN;
 	err = of_property_read_u32(node, "xlnx,bus-width", &chan->bus_width);
 	if (err < 0) {
 		dev_err(&pdev->dev, "missing xlnx,bus-width property\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/altera_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/altera_edac.c
@@ -560,6 +560,7 @@
 	.reg_write = s10_protected_reg_write,
 	.use_single_read = true,
 	.use_single_write = true,
+	.fast_io = true,
 };
 
 /************** </Stratix10 EDAC Memory Controller Functions> ***********/
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/amd64_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/amd64_edac.c
@@ -22,6 +22,9 @@
 /* Number of Unified Memory Controllers */
 static u8 num_umcs;
 
+/* Device for the PCI component */
+static struct device *pci_ctl_dev;
+
 /*
  * Valid scrub rates for the K8 hardware memory scrubber. We map the scrubbing
  * bandwidth to a valid bit pattern. The 'set' operation finds the 'matching-
@@ -215,7 +218,7 @@
 
 	scrubval = scrubrates[i].scrubval;
 
-	if (pvt->fam == 0x17 || pvt->fam == 0x18) {
+	if (pvt->umc) {
 		__f17h_set_scrubval(pvt, scrubval);
 	} else if (pvt->fam == 0x15 && pvt->model == 0x60) {
 		f15h_select_dct(pvt, 0);
@@ -257,18 +260,7 @@
 	int i, retval = -EINVAL;
 	u32 scrubval = 0;
 
-	switch (pvt->fam) {
-	case 0x15:
-		/* Erratum #505 */
-		if (pvt->model < 0x10)
-			f15h_select_dct(pvt, 0);
-
-		if (pvt->model == 0x60)
-			amd64_read_pci_cfg(pvt->F2, F15H_M60H_SCRCTRL, &scrubval);
-		break;
-
-	case 0x17:
-	case 0x18:
+	if (pvt->umc) {
 		amd64_read_pci_cfg(pvt->F6, F17H_SCR_BASE_ADDR, &scrubval);
 		if (scrubval & BIT(0)) {
 			amd64_read_pci_cfg(pvt->F6, F17H_SCR_LIMIT_ADDR, &scrubval);
@@ -277,11 +269,17 @@
 		} else {
 			scrubval = 0;
 		}
-		break;
+	} else if (pvt->fam == 0x15) {
+		/* Erratum #505 */
+		if (pvt->model < 0x10)
+			f15h_select_dct(pvt, 0);
 
-	default:
+		if (pvt->model == 0x60)
+			amd64_read_pci_cfg(pvt->F2, F15H_M60H_SCRCTRL, &scrubval);
+		else
+			amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
+	} else {
 		amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
-		break;
 	}
 
 	scrubval = scrubval & 0x001F;
@@ -1056,6 +1054,16 @@
 {
 	u32 dram_ctrl, dcsm;
 
+	if (pvt->umc) {
+		if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5))
+			pvt->dram_type = MEM_LRDDR4;
+		else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4))
+			pvt->dram_type = MEM_RDDR4;
+		else
+			pvt->dram_type = MEM_DDR4;
+		return;
+	}
+
 	switch (pvt->fam) {
 	case 0xf:
 		if (pvt->ext_model >= K8_REV_F)
@@ -1101,16 +1109,6 @@
 	case 0x16:
 		goto ddr3;
 
-	case 0x17:
-	case 0x18:
-		if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5))
-			pvt->dram_type = MEM_LRDDR4;
-		else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4))
-			pvt->dram_type = MEM_RDDR4;
-		else
-			pvt->dram_type = MEM_DDR4;
-		return;
-
 	default:
 		WARN(1, KERN_ERR "%s: Family??? 0x%x\n", __func__, pvt->fam);
 		pvt->dram_type = MEM_EMPTY;
@@ -2317,6 +2315,15 @@
 			.dbam_to_cs		= f17_addr_mask_to_cs_size,
 		}
 	},
+	[F17_M60H_CPUS] = {
+		.ctl_name = "F17h_M60h",
+		.f0_id = PCI_DEVICE_ID_AMD_17H_M60H_DF_F0,
+		.f6_id = PCI_DEVICE_ID_AMD_17H_M60H_DF_F6,
+		.ops = {
+			.early_channel_count	= f17_early_channel_count,
+			.dbam_to_cs		= f17_addr_mask_to_cs_size,
+		}
+	},
 	[F17_M70H_CPUS] = {
 		.ctl_name = "F17h_M70h",
 		.f0_id = PCI_DEVICE_ID_AMD_17H_M70H_DF_F0,
@@ -2326,6 +2333,15 @@
 			.dbam_to_cs		= f17_addr_mask_to_cs_size,
 		}
 	},
+	[F19_CPUS] = {
+		.ctl_name = "F19h",
+		.f0_id = PCI_DEVICE_ID_AMD_19H_DF_F0,
+		.f6_id = PCI_DEVICE_ID_AMD_19H_DF_F6,
+		.ops = {
+			.early_channel_count	= f17_early_channel_count,
+			.dbam_to_cs		= f17_addr_mask_to_cs_size,
+		}
+	},
 };
 
 /*
@@ -2661,6 +2677,9 @@
 			return -ENODEV;
 		}
 
+		if (!pci_ctl_dev)
+			pci_ctl_dev = &pvt->F0->dev;
+
 		edac_dbg(1, "F0: %s\n", pci_name(pvt->F0));
 		edac_dbg(1, "F3: %s\n", pci_name(pvt->F3));
 		edac_dbg(1, "F6: %s\n", pci_name(pvt->F6));
@@ -2685,6 +2704,9 @@
 		return -ENODEV;
 	}
 
+	if (!pci_ctl_dev)
+		pci_ctl_dev = &pvt->F2->dev;
+
 	edac_dbg(1, "F1: %s\n", pci_name(pvt->F1));
 	edac_dbg(1, "F2: %s\n", pci_name(pvt->F2));
 	edac_dbg(1, "F3: %s\n", pci_name(pvt->F3));
@@ -2936,6 +2958,7 @@
 			dimm->mtype = pvt->dram_type;
 			dimm->edac_mode = edac_mode;
 			dimm->dtype = dev_type;
+			dimm->grain = 64;
 		}
 	}
 
@@ -3012,6 +3035,7 @@
 			dimm = csrow->channels[j]->dimm;
 			dimm->mtype = pvt->dram_type;
 			dimm->edac_mode = edac_mode;
+			dimm->grain = 64;
 		}
 	}
 
@@ -3364,6 +3388,10 @@
 			fam_type = &family_types[F17_M30H_CPUS];
 			pvt->ops = &family_types[F17_M30H_CPUS].ops;
 			break;
+		} else if (pvt->model >= 0x60 && pvt->model <= 0x6f) {
+			fam_type = &family_types[F17_M60H_CPUS];
+			pvt->ops = &family_types[F17_M60H_CPUS].ops;
+			break;
 		} else if (pvt->model >= 0x70 && pvt->model <= 0x7f) {
 			fam_type = &family_types[F17_M70H_CPUS];
 			pvt->ops = &family_types[F17_M70H_CPUS].ops;
@@ -3378,6 +3406,12 @@
 			family_types[F17_CPUS].ctl_name = "F18h";
 		break;
 
+	case 0x19:
+		fam_type	= &family_types[F19_CPUS];
+		pvt->ops	= &family_types[F19_CPUS].ops;
+		family_types[F19_CPUS].ctl_name = "F19h";
+		break;
+
 	default:
 		amd64_err("Unsupported family!\n");
 		return NULL;
@@ -3609,21 +3643,10 @@
 
 static void setup_pci_device(void)
 {
-	struct mem_ctl_info *mci;
-	struct amd64_pvt *pvt;
-
 	if (pci_ctl)
 		return;
 
-	mci = edac_mc_find(0);
-	if (!mci)
-		return;
-
-	pvt = mci->pvt_info;
-	if (pvt->umc)
-		pci_ctl = edac_pci_create_generic_ctl(&pvt->F0->dev, EDAC_MOD_STR);
-	else
-		pci_ctl = edac_pci_create_generic_ctl(&pvt->F2->dev, EDAC_MOD_STR);
+	pci_ctl = edac_pci_create_generic_ctl(pci_ctl_dev, EDAC_MOD_STR);
 	if (!pci_ctl) {
 		pr_warn("%s(): Unable to create PCI control\n", __func__);
 		pr_warn("%s(): PCI error report via EDAC not set\n", __func__);
@@ -3637,6 +3660,7 @@
 	{ X86_VENDOR_AMD, 0x16, X86_MODEL_ANY,	X86_FEATURE_ANY, 0 },
 	{ X86_VENDOR_AMD, 0x17, X86_MODEL_ANY,	X86_FEATURE_ANY, 0 },
 	{ X86_VENDOR_HYGON, 0x18, X86_MODEL_ANY, X86_FEATURE_ANY, 0 },
+	{ X86_VENDOR_AMD, 0x19, X86_MODEL_ANY,	X86_FEATURE_ANY, 0 },
 	{ }
 };
 MODULE_DEVICE_TABLE(x86cpu, amd64_cpuids);
@@ -3706,6 +3730,8 @@
 	return 0;
 
 err_pci:
+	pci_ctl_dev = NULL;
+
 	msrs_free(msrs);
 	msrs = NULL;
 
@@ -3737,6 +3763,8 @@
 	kfree(ecc_stngs);
 	ecc_stngs = NULL;
 
+	pci_ctl_dev = NULL;
+
 	msrs_free(msrs);
 	msrs = NULL;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/amd64_edac.h
+++ linux-gkeop-5.4-5.4.0/drivers/edac/amd64_edac.h
@@ -120,8 +120,12 @@
 #define PCI_DEVICE_ID_AMD_17H_M10H_DF_F6 0x15ee
 #define PCI_DEVICE_ID_AMD_17H_M30H_DF_F0 0x1490
 #define PCI_DEVICE_ID_AMD_17H_M30H_DF_F6 0x1496
+#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F0 0x1448
+#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F6 0x144e
 #define PCI_DEVICE_ID_AMD_17H_M70H_DF_F0 0x1440
 #define PCI_DEVICE_ID_AMD_17H_M70H_DF_F6 0x1446
+#define PCI_DEVICE_ID_AMD_19H_DF_F0	0x1650
+#define PCI_DEVICE_ID_AMD_19H_DF_F6	0x1656
 
 /*
  * Function 1 - Address Map
@@ -291,7 +295,9 @@
 	F17_CPUS,
 	F17_M10H_CPUS,
 	F17_M30H_CPUS,
+	F17_M60H_CPUS,
 	F17_M70H_CPUS,
+	F19_CPUS,
 	NUM_FAMILIES,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/aspeed_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/aspeed_edac.c
@@ -209,8 +209,8 @@
 	/* register interrupt handler */
 	irq = platform_get_irq(pdev, 0);
 	dev_dbg(&pdev->dev, "got irq %d\n", irq);
-	if (!irq)
-		return -ENODEV;
+	if (irq < 0)
+		return irq;
 
 	rc = devm_request_irq(&pdev->dev, irq, mcr_isr, IRQF_TRIGGER_HIGH,
 			      DRV_NAME, ctx);
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/edac_device_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/edac_device_sysfs.c
@@ -275,6 +275,7 @@
 
 	/* Error exit stack */
 err_kobj_reg:
+	kobject_put(&edac_dev->kobj);
 	module_put(edac_dev->owner);
 
 err_out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/edac_mc.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/edac_mc.c
@@ -503,16 +503,10 @@
 {
 	edac_dbg(1, "\n");
 
-	/* If we're not yet registered with sysfs free only what was allocated
-	 * in edac_mc_alloc().
-	 */
-	if (!device_is_registered(&mci->dev)) {
-		_edac_mc_free(mci);
-		return;
-	}
+	if (device_is_registered(&mci->dev))
+		edac_unregister_sysfs(mci);
 
-	/* the mci instance is freed here, when the sysfs object is dropped */
-	edac_unregister_sysfs(mci);
+	_edac_mc_free(mci);
 }
 EXPORT_SYMBOL_GPL(edac_mc_free);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/edac_mc_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/edac_mc_sysfs.c
@@ -276,10 +276,7 @@
 
 static void csrow_attr_release(struct device *dev)
 {
-	struct csrow_info *csrow = container_of(dev, struct csrow_info, dev);
-
-	edac_dbg(1, "device %s released\n", dev_name(dev));
-	kfree(csrow);
+	/* release device with _edac_mc_free() */
 }
 
 static const struct device_type csrow_attr_type = {
@@ -447,8 +444,7 @@
 		csrow = mci->csrows[i];
 		if (!nr_pages_per_csrow(csrow))
 			continue;
-
-		device_del(&mci->csrows[i]->dev);
+		device_unregister(&mci->csrows[i]->dev);
 	}
 
 	return err;
@@ -620,10 +616,7 @@
 
 static void dimm_attr_release(struct device *dev)
 {
-	struct dimm_info *dimm = container_of(dev, struct dimm_info, dev);
-
-	edac_dbg(1, "device %s released\n", dev_name(dev));
-	kfree(dimm);
+	/* release device with _edac_mc_free() */
 }
 
 static const struct device_type dimm_attr_type = {
@@ -906,10 +899,7 @@
 
 static void mci_attr_release(struct device *dev)
 {
-	struct mem_ctl_info *mci = container_of(dev, struct mem_ctl_info, dev);
-
-	edac_dbg(1, "device %s released\n", dev_name(dev));
-	kfree(mci);
+	/* release device with _edac_mc_free() */
 }
 
 static const struct device_type mci_attr_type = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/edac_pci_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/edac_pci_sysfs.c
@@ -386,7 +386,7 @@
 
 	/* Error unwind statck */
 kobject_init_and_add_fail:
-	kfree(edac_pci_top_main_kobj);
+	kobject_put(edac_pci_top_main_kobj);
 
 kzalloc_fail:
 	module_put(THIS_MODULE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/ghes_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/ghes_edac.c
@@ -26,9 +26,18 @@
 	char msg[80];
 };
 
-static atomic_t ghes_init = ATOMIC_INIT(0);
+static refcount_t ghes_refcount = REFCOUNT_INIT(0);
+
+/*
+ * Access to ghes_pvt must be protected by ghes_lock. The spinlock
+ * also provides the necessary (implicit) memory barrier for the SMP
+ * case to make the pointer visible on another CPU.
+ */
 static struct ghes_edac_pvt *ghes_pvt;
 
+/* GHES registration mutex */
+static DEFINE_MUTEX(ghes_reg_mutex);
+
 /*
  * Sync with other, potentially concurrent callers of
  * ghes_edac_report_mem_error(). We don't know what the
@@ -79,9 +88,8 @@
 		(*num_dimm)++;
 }
 
-static int get_dimm_smbios_index(u16 handle)
+static int get_dimm_smbios_index(struct mem_ctl_info *mci, u16 handle)
 {
-	struct mem_ctl_info *mci = ghes_pvt->mci;
 	int i;
 
 	for (i = 0; i < mci->tot_dimms; i++) {
@@ -198,14 +206,11 @@
 	enum hw_event_mc_err_type type;
 	struct edac_raw_error_desc *e;
 	struct mem_ctl_info *mci;
-	struct ghes_edac_pvt *pvt = ghes_pvt;
+	struct ghes_edac_pvt *pvt;
 	unsigned long flags;
 	char *p;
 	u8 grain_bits;
 
-	if (!pvt)
-		return;
-
 	/*
 	 * We can do the locking below because GHES defers error processing
 	 * from NMI to IRQ context. Whenever that changes, we'd at least
@@ -216,12 +221,17 @@
 
 	spin_lock_irqsave(&ghes_lock, flags);
 
+	pvt = ghes_pvt;
+	if (!pvt)
+		goto unlock;
+
 	mci = pvt->mci;
 	e = &mci->error_desc;
 
 	/* Cleans the error report buffer */
 	memset(e, 0, sizeof (*e));
 	e->error_count = 1;
+	e->grain = 1;
 	strcpy(e->label, "unknown label");
 	e->msg = pvt->msg;
 	e->other_detail = pvt->other_detail;
@@ -317,7 +327,7 @@
 
 	/* Error grain */
 	if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK)
-		e->grain = ~(mem_err->physical_addr_mask & ~PAGE_MASK);
+		e->grain = ~mem_err->physical_addr_mask + 1;
 
 	/* Memory error location, mapped on e->location */
 	p = e->location;
@@ -348,7 +358,7 @@
 			p += sprintf(p, "DIMM DMI handle: 0x%.4x ",
 				     mem_err->mem_dev_handle);
 
-		index = get_dimm_smbios_index(mem_err->mem_dev_handle);
+		index = get_dimm_smbios_index(mci, mem_err->mem_dev_handle);
 		if (index >= 0) {
 			e->top_layer = index;
 			e->enable_per_layer_report = true;
@@ -433,8 +443,13 @@
 	if (p > pvt->other_detail)
 		*(p - 1) = '\0';
 
+	/* Sanity-check driver-supplied grain value. */
+	if (WARN_ON_ONCE(!e->grain))
+		e->grain = 1;
+
+	grain_bits = fls_long(e->grain - 1);
+
 	/* Generate the trace event */
-	grain_bits = fls_long(e->grain);
 	snprintf(pvt->detail_location, sizeof(pvt->detail_location),
 		 "APEI location: %s %s", e->location, e->other_detail);
 	trace_mc_event(type, e->msg, e->label, e->error_count,
@@ -443,6 +458,8 @@
 		       grain_bits, e->syndrome, pvt->detail_location);
 
 	edac_raw_mc_handle_error(type, mci, e);
+
+unlock:
 	spin_unlock_irqrestore(&ghes_lock, flags);
 }
 
@@ -457,10 +474,12 @@
 int ghes_edac_register(struct ghes *ghes, struct device *dev)
 {
 	bool fake = false;
-	int rc, num_dimm = 0;
+	int rc = 0, num_dimm = 0;
 	struct mem_ctl_info *mci;
+	struct ghes_edac_pvt *pvt;
 	struct edac_mc_layer layers[1];
 	struct ghes_edac_dimm_fill dimm_fill;
+	unsigned long flags;
 	int idx = -1;
 
 	if (IS_ENABLED(CONFIG_X86)) {
@@ -469,14 +488,18 @@
 		if (!force_load && idx < 0)
 			return -ENODEV;
 	} else {
+		force_load = true;
 		idx = 0;
 	}
 
+	/* finish another registration/unregistration instance first */
+	mutex_lock(&ghes_reg_mutex);
+
 	/*
 	 * We have only one logical memory controller to which all DIMMs belong.
 	 */
-	if (atomic_inc_return(&ghes_init) > 1)
-		return 0;
+	if (refcount_inc_not_zero(&ghes_refcount))
+		goto unlock;
 
 	/* Get the number of DIMMs */
 	dmi_walk(ghes_edac_count_dimms, &num_dimm);
@@ -494,12 +517,13 @@
 	mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct ghes_edac_pvt));
 	if (!mci) {
 		pr_info("Can't allocate memory for EDAC data\n");
-		return -ENOMEM;
+		rc = -ENOMEM;
+		goto unlock;
 	}
 
-	ghes_pvt	= mci->pvt_info;
-	ghes_pvt->ghes	= ghes;
-	ghes_pvt->mci	= mci;
+	pvt		= mci->pvt_info;
+	pvt->ghes	= ghes;
+	pvt->mci	= mci;
 
 	mci->pdev = dev;
 	mci->mtype_cap = MEM_FLAG_EMPTY;
@@ -541,23 +565,51 @@
 	if (rc < 0) {
 		pr_info("Can't register at EDAC core\n");
 		edac_mc_free(mci);
-		return -ENODEV;
+		rc = -ENODEV;
+		goto unlock;
 	}
-	return 0;
+
+	spin_lock_irqsave(&ghes_lock, flags);
+	ghes_pvt = pvt;
+	spin_unlock_irqrestore(&ghes_lock, flags);
+
+	/* only set on success */
+	refcount_set(&ghes_refcount, 1);
+
+unlock:
+	mutex_unlock(&ghes_reg_mutex);
+
+	return rc;
 }
 
 void ghes_edac_unregister(struct ghes *ghes)
 {
 	struct mem_ctl_info *mci;
+	unsigned long flags;
 
-	if (!ghes_pvt)
+	if (!force_load)
 		return;
 
-	if (atomic_dec_return(&ghes_init))
-		return;
+	mutex_lock(&ghes_reg_mutex);
 
-	mci = ghes_pvt->mci;
+	if (!refcount_dec_and_test(&ghes_refcount))
+		goto unlock;
+
+	/*
+	 * Wait for the irq handler being finished.
+	 */
+	spin_lock_irqsave(&ghes_lock, flags);
+	mci = ghes_pvt ? ghes_pvt->mci : NULL;
 	ghes_pvt = NULL;
-	edac_mc_del_mc(mci->pdev);
-	edac_mc_free(mci);
+	spin_unlock_irqrestore(&ghes_lock, flags);
+
+	if (!mci)
+		goto unlock;
+
+	mci = edac_mc_del_mc(mci->pdev);
+	if (mci)
+		edac_mc_free(mci);
+
+unlock:
+	mutex_unlock(&ghes_reg_mutex);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/i10nm_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/i10nm_base.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/io.h>
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
 #include <asm/mce.h>
@@ -19,14 +20,16 @@
 #define i10nm_printk(level, fmt, arg...)	\
 	edac_printk(level, "i10nm", fmt, ##arg)
 
-#define I10NM_GET_SCK_BAR(d, reg)		\
+#define I10NM_GET_SCK_BAR(d, reg)	\
 	pci_read_config_dword((d)->uracu, 0xd0, &(reg))
 #define I10NM_GET_IMC_BAR(d, i, reg)	\
 	pci_read_config_dword((d)->uracu, 0xd8 + (i) * 4, &(reg))
 #define I10NM_GET_DIMMMTR(m, i, j)	\
-	(*(u32 *)((m)->mbase + 0x2080c + (i) * 0x4000 + (j) * 4))
+	readl((m)->mbase + 0x2080c + (i) * 0x4000 + (j) * 4)
 #define I10NM_GET_MCDDRTCFG(m, i, j)	\
-	(*(u32 *)((m)->mbase + 0x20970 + (i) * 0x4000 + (j) * 4))
+	readl((m)->mbase + 0x20970 + (i) * 0x4000 + (j) * 4)
+#define I10NM_GET_MCMTR(m, i)		\
+	readl((m)->mbase + 0x20ef8 + (i) * 0x4000)
 
 #define I10NM_GET_SCK_MMIO_BASE(reg)	(GET_BITFIELD(reg, 0, 28) << 23)
 #define I10NM_GET_IMC_MMIO_OFFSET(reg)	(GET_BITFIELD(reg, 0, 10) << 12)
@@ -134,7 +137,7 @@
 {
 	u32 mcmtr;
 
-	mcmtr = *(u32 *)(imc->mbase + 0x20ef8 + chan * 0x4000);
+	mcmtr = I10NM_GET_MCMTR(imc, chan);
 	edac_dbg(1, "ch%d mcmtr reg %x\n", chan, mcmtr);
 
 	return !!GET_BITFIELD(mcmtr, 2, 2);
@@ -162,7 +165,7 @@
 				 mtr, mcddrtcfg, imc->mc, i, j);
 
 			if (IS_DIMM_PRESENT(mtr))
-				ndimms += skx_get_dimm_info(mtr, 0, dimm,
+				ndimms += skx_get_dimm_info(mtr, 0, 0, dimm,
 							    imc, i, j);
 			else if (IS_NVDIMM_PRESENT(mcddrtcfg, j))
 				ndimms += skx_get_nvdimm_info(dimm, imc, i, j,
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/i5100_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/i5100_edac.c
@@ -1074,16 +1074,15 @@
 				    PCI_DEVICE_ID_INTEL_5100_19, 0);
 	if (!einj) {
 		ret = -ENODEV;
-		goto bail_einj;
+		goto bail_mc_free;
 	}
 
 	rc = pci_enable_device(einj);
 	if (rc < 0) {
 		ret = rc;
-		goto bail_disable_einj;
+		goto bail_einj;
 	}
 
-
 	mci->pdev = &pdev->dev;
 
 	priv = mci->pvt_info;
@@ -1149,14 +1148,14 @@
 bail_scrub:
 	priv->scrub_enable = 0;
 	cancel_delayed_work_sync(&(priv->i5100_scrubbing));
-	edac_mc_free(mci);
-
-bail_disable_einj:
 	pci_disable_device(einj);
 
 bail_einj:
 	pci_dev_put(einj);
 
+bail_mc_free:
+	edac_mc_free(mci);
+
 bail_disable_ch1:
 	pci_disable_device(ch1mm);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/i7core_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/i7core_edac.c
@@ -1711,9 +1711,9 @@
 	if (uncorrected_error) {
 		core_err_cnt = 1;
 		if (ripv)
-			tp_event = HW_EVENT_ERR_FATAL;
-		else
 			tp_event = HW_EVENT_ERR_UNCORRECTED;
+		else
+			tp_event = HW_EVENT_ERR_FATAL;
 	} else {
 		tp_event = HW_EVENT_ERR_CORRECTED;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/ie31200_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/ie31200_edac.c
@@ -170,6 +170,8 @@
 	(n << (28 + (2 * skl) - PAGE_SHIFT))
 
 static int nr_channels;
+static struct pci_dev *mci_pdev;
+static int ie31200_registered = 1;
 
 struct ie31200_priv {
 	void __iomem *window;
@@ -541,12 +543,16 @@
 static int ie31200_init_one(struct pci_dev *pdev,
 			    const struct pci_device_id *ent)
 {
-	edac_dbg(0, "MC:\n");
+	int rc;
 
+	edac_dbg(0, "MC:\n");
 	if (pci_enable_device(pdev) < 0)
 		return -EIO;
+	rc = ie31200_probe1(pdev, ent->driver_data);
+	if (rc == 0 && !mci_pdev)
+		mci_pdev = pci_dev_get(pdev);
 
-	return ie31200_probe1(pdev, ent->driver_data);
+	return rc;
 }
 
 static void ie31200_remove_one(struct pci_dev *pdev)
@@ -555,6 +561,8 @@
 	struct ie31200_priv *priv;
 
 	edac_dbg(0, "\n");
+	pci_dev_put(mci_pdev);
+	mci_pdev = NULL;
 	mci = edac_mc_del_mc(&pdev->dev);
 	if (!mci)
 		return;
@@ -596,17 +604,53 @@
 
 static int __init ie31200_init(void)
 {
+	int pci_rc, i;
+
 	edac_dbg(3, "MC:\n");
 	/* Ensure that the OPSTATE is set correctly for POLL or NMI */
 	opstate_init();
 
-	return pci_register_driver(&ie31200_driver);
+	pci_rc = pci_register_driver(&ie31200_driver);
+	if (pci_rc < 0)
+		goto fail0;
+
+	if (!mci_pdev) {
+		ie31200_registered = 0;
+		for (i = 0; ie31200_pci_tbl[i].vendor != 0; i++) {
+			mci_pdev = pci_get_device(ie31200_pci_tbl[i].vendor,
+						  ie31200_pci_tbl[i].device,
+						  NULL);
+			if (mci_pdev)
+				break;
+		}
+		if (!mci_pdev) {
+			edac_dbg(0, "ie31200 pci_get_device fail\n");
+			pci_rc = -ENODEV;
+			goto fail1;
+		}
+		pci_rc = ie31200_init_one(mci_pdev, &ie31200_pci_tbl[i]);
+		if (pci_rc < 0) {
+			edac_dbg(0, "ie31200 init fail\n");
+			pci_rc = -ENODEV;
+			goto fail1;
+		}
+	}
+	return 0;
+
+fail1:
+	pci_unregister_driver(&ie31200_driver);
+fail0:
+	pci_dev_put(mci_pdev);
+
+	return pci_rc;
 }
 
 static void __exit ie31200_exit(void)
 {
 	edac_dbg(3, "MC:\n");
 	pci_unregister_driver(&ie31200_driver);
+	if (!ie31200_registered)
+		ie31200_remove_one(mci_pdev);
 }
 
 module_init(ie31200_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/mce_amd.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/mce_amd.c
@@ -175,6 +175,33 @@
 	"L2 Fill Data error",
 };
 
+static const char * const smca_ls2_mce_desc[] = {
+	"An ECC error was detected on a data cache read by a probe or victimization",
+	"An ECC error or L2 poison was detected on a data cache read by a load",
+	"An ECC error was detected on a data cache read-modify-write by a store",
+	"An ECC error or poison bit mismatch was detected on a tag read by a probe or victimization",
+	"An ECC error or poison bit mismatch was detected on a tag read by a load",
+	"An ECC error or poison bit mismatch was detected on a tag read by a store",
+	"An ECC error was detected on an EMEM read by a load",
+	"An ECC error was detected on an EMEM read-modify-write by a store",
+	"A parity error was detected in an L1 TLB entry by any access",
+	"A parity error was detected in an L2 TLB entry by any access",
+	"A parity error was detected in a PWC entry by any access",
+	"A parity error was detected in an STQ entry by any access",
+	"A parity error was detected in an LDQ entry by any access",
+	"A parity error was detected in a MAB entry by any access",
+	"A parity error was detected in an SCB entry state field by any access",
+	"A parity error was detected in an SCB entry address field by any access",
+	"A parity error was detected in an SCB entry data field by any access",
+	"A parity error was detected in a WCB entry by any access",
+	"A poisoned line was detected in an SCB entry by any access",
+	"A SystemReadDataError error was reported on read data returned from L2 for a load",
+	"A SystemReadDataError error was reported on read data returned from L2 for an SCB store",
+	"A SystemReadDataError error was reported on read data returned from L2 for a WCB store",
+	"A hardware assertion error was reported",
+	"A parity error was detected in an STLF, SCB EMEM entry or SRB store data by any access",
+};
+
 static const char * const smca_if_mce_desc[] = {
 	"Op Cache Microtag Probe Port Parity Error",
 	"IC Microtag or Full Tag Multi-hit Error",
@@ -378,6 +405,7 @@
 
 static struct smca_mce_desc smca_mce_descs[] = {
 	[SMCA_LS]	= { smca_ls_mce_desc,	ARRAY_SIZE(smca_ls_mce_desc)	},
+	[SMCA_LS_V2]	= { smca_ls2_mce_desc,	ARRAY_SIZE(smca_ls2_mce_desc)	},
 	[SMCA_IF]	= { smca_if_mce_desc,	ARRAY_SIZE(smca_if_mce_desc)	},
 	[SMCA_L2_CACHE]	= { smca_l2_mce_desc,	ARRAY_SIZE(smca_l2_mce_desc)	},
 	[SMCA_DE]	= { smca_de_mce_desc,	ARRAY_SIZE(smca_de_mce_desc)	},
@@ -975,7 +1003,7 @@
 	}
 
 	if (bank_type == SMCA_UMC && xec == 0 && decode_dram_ecc)
-		decode_dram_ecc(cpu_to_node(m->extcpu), m);
+		decode_dram_ecc(topology_die_id(m->extcpu), m);
 }
 
 static inline void amd_decode_err_code(u16 ec)
@@ -1161,6 +1189,11 @@
 	if (!fam_ops)
 		return -ENOMEM;
 
+	if (boot_cpu_has(X86_FEATURE_SMCA)) {
+		xec_mask = 0x3f;
+		goto out;
+	}
+
 	switch (c->x86) {
 	case 0xf:
 		fam_ops->mc0_mce = k8_mc0_mce;
@@ -1209,11 +1242,8 @@
 
 	case 0x17:
 	case 0x18:
-		xec_mask = 0x3f;
-		if (!boot_cpu_has(X86_FEATURE_SMCA)) {
-			printk(KERN_WARNING "Decoding supported only on Scalable MCA processors.\n");
-			goto err_out;
-		}
+		pr_warn("Decoding supported only on Scalable MCA processors.\n");
+		goto err_out;
 		break;
 
 	default:
@@ -1221,6 +1251,7 @@
 		goto err_out;
 	}
 
+out:
 	pr_info("MCE: In-kernel MCE decoding enabled.\n");
 
 	mce_register_decode_chain(&amd_mce_dec_nb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/pnd2_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/pnd2_edac.c
@@ -1155,7 +1155,7 @@
 	u32 optypenum = GET_BITFIELD(m->status, 4, 6);
 	int rc;
 
-	tp_event = uc_err ? (ripv ? HW_EVENT_ERR_FATAL : HW_EVENT_ERR_UNCORRECTED) :
+	tp_event = uc_err ? (ripv ? HW_EVENT_ERR_UNCORRECTED : HW_EVENT_ERR_FATAL) :
 						 HW_EVENT_ERR_CORRECTED;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/sb_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/sb_edac.c
@@ -254,18 +254,20 @@
  * FIXME: Implement the error count reads directly
  */
 
-static const u32 correrrcnt[] = {
-	0x104, 0x108, 0x10c, 0x110,
-};
-
 #define RANK_ODD_OV(reg)		GET_BITFIELD(reg, 31, 31)
 #define RANK_ODD_ERR_CNT(reg)		GET_BITFIELD(reg, 16, 30)
 #define RANK_EVEN_OV(reg)		GET_BITFIELD(reg, 15, 15)
 #define RANK_EVEN_ERR_CNT(reg)		GET_BITFIELD(reg,  0, 14)
 
+#if 0 /* Currently unused*/
+static const u32 correrrcnt[] = {
+	0x104, 0x108, 0x10c, 0x110,
+};
+
 static const u32 correrrthrsld[] = {
 	0x11c, 0x120, 0x124, 0x128,
 };
+#endif
 
 #define RANK_ODD_ERR_THRSLD(reg)	GET_BITFIELD(reg, 16, 30)
 #define RANK_EVEN_ERR_THRSLD(reg)	GET_BITFIELD(reg,  0, 14)
@@ -1340,7 +1342,7 @@
  */
 static int knl_get_dimm_capacity(struct sbridge_pvt *pvt, u64 *mc_sizes)
 {
-	u64 sad_base, sad_size, sad_limit = 0;
+	u64 sad_base, sad_limit = 0;
 	u64 tad_base, tad_size, tad_limit, tad_deadspace, tad_livespace;
 	int sad_rule = 0;
 	int tad_rule = 0;
@@ -1427,7 +1429,6 @@
 		edram_only = KNL_EDRAM_ONLY(dram_rule);
 
 		sad_limit = pvt->info.sad_limit(dram_rule)+1;
-		sad_size = sad_limit - sad_base;
 
 		pci_read_config_dword(pvt->pci_sad0,
 			pvt->info.interleave_list[sad_rule], &interleave_reg);
@@ -2952,7 +2953,7 @@
 	struct mem_ctl_info *new_mci;
 	struct sbridge_pvt *pvt = mci->pvt_info;
 	enum hw_event_mc_err_type tp_event;
-	char *type, *optype, msg[256];
+	char *optype, msg[256];
 	bool ripv = GET_BITFIELD(m->mcgstatus, 0, 0);
 	bool overflow = GET_BITFIELD(m->status, 62, 62);
 	bool uncorrected_error = GET_BITFIELD(m->status, 61, 61);
@@ -2981,14 +2982,11 @@
 	if (uncorrected_error) {
 		core_err_cnt = 1;
 		if (ripv) {
-			type = "FATAL";
-			tp_event = HW_EVENT_ERR_FATAL;
-		} else {
-			type = "NON_FATAL";
 			tp_event = HW_EVENT_ERR_UNCORRECTED;
+		} else {
+			tp_event = HW_EVENT_ERR_FATAL;
 		}
 	} else {
-		type = "CORRECTED";
 		tp_event = HW_EVENT_ERR_CORRECTED;
 	}
 
@@ -3200,7 +3198,6 @@
 static void sbridge_unregister_mci(struct sbridge_dev *sbridge_dev)
 {
 	struct mem_ctl_info *mci = sbridge_dev->mci;
-	struct sbridge_pvt *pvt;
 
 	if (unlikely(!mci || !mci->pvt_info)) {
 		edac_dbg(0, "MC: dev = %p\n", &sbridge_dev->pdev[0]->dev);
@@ -3209,8 +3206,6 @@
 		return;
 	}
 
-	pvt = mci->pvt_info;
-
 	edac_dbg(0, "MC: mci = %p, dev = %p\n",
 		 mci, &sbridge_dev->pdev[0]->dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/sifive_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/sifive_edac.c
@@ -54,8 +54,8 @@
 	p->dci = edac_device_alloc_ctl_info(0, "sifive_ecc", 1, "sifive_ecc",
 					    1, 1, NULL, 0,
 					    edac_device_alloc_index());
-	if (IS_ERR(p->dci))
-		return PTR_ERR(p->dci);
+	if (!p->dci)
+		return -ENOMEM;
 
 	p->dci->dev = &pdev->dev;
 	p->dci->mod_name = "Sifive ECC Manager";
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/skx_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/skx_base.c
@@ -151,27 +151,23 @@
 };
 MODULE_DEVICE_TABLE(x86cpu, skx_cpuids);
 
-#define SKX_GET_MTMTR(dev, reg) \
-	pci_read_config_dword((dev), 0x87c, &(reg))
-
-static bool skx_check_ecc(struct pci_dev *pdev)
+static bool skx_check_ecc(u32 mcmtr)
 {
-	u32 mtmtr;
-
-	SKX_GET_MTMTR(pdev, mtmtr);
-
-	return !!GET_BITFIELD(mtmtr, 2, 2);
+	return !!GET_BITFIELD(mcmtr, 2, 2);
 }
 
 static int skx_get_dimm_config(struct mem_ctl_info *mci)
 {
 	struct skx_pvt *pvt = mci->pvt_info;
+	u32 mtr, mcmtr, amap, mcddrtcfg;
 	struct skx_imc *imc = pvt->imc;
-	u32 mtr, amap, mcddrtcfg;
 	struct dimm_info *dimm;
 	int i, j;
 	int ndimms;
 
+	/* Only the mcmtr on the first channel is effective */
+	pci_read_config_dword(imc->chan[0].cdev, 0x87c, &mcmtr);
+
 	for (i = 0; i < SKX_NUM_CHANNELS; i++) {
 		ndimms = 0;
 		pci_read_config_dword(imc->chan[i].cdev, 0x8C, &amap);
@@ -182,14 +178,14 @@
 			pci_read_config_dword(imc->chan[i].cdev,
 					      0x80 + 4 * j, &mtr);
 			if (IS_DIMM_PRESENT(mtr)) {
-				ndimms += skx_get_dimm_info(mtr, amap, dimm, imc, i, j);
+				ndimms += skx_get_dimm_info(mtr, mcmtr, amap, dimm, imc, i, j);
 			} else if (IS_NVDIMM_PRESENT(mcddrtcfg, j)) {
 				ndimms += skx_get_nvdimm_info(dimm, imc, i, j,
 							      EDAC_MOD_STR);
 				nvdimm_count++;
 			}
 		}
-		if (ndimms && !skx_check_ecc(imc->chan[0].cdev)) {
+		if (ndimms && !skx_check_ecc(mcmtr)) {
 			skx_printk(KERN_ERR, "ECC is disabled on imc %d\n", imc->mc);
 			return -ENODEV;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/skx_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/skx_common.c
@@ -235,7 +235,7 @@
 
 	pdev = pci_get_device(PCI_VENDOR_ID_INTEL, did, NULL);
 	if (!pdev) {
-		skx_printk(KERN_ERR, "Can't get tolm/tohm\n");
+		edac_dbg(2, "Can't get tolm/tohm\n");
 		return -ENODEV;
 	}
 
@@ -283,7 +283,7 @@
 #define numrow(reg)	skx_get_dimm_attr(reg, 2, 4, 12, 1, 6, "rows")
 #define numcol(reg)	skx_get_dimm_attr(reg, 0, 1, 10, 0, 2, "cols")
 
-int skx_get_dimm_info(u32 mtr, u32 amap, struct dimm_info *dimm,
+int skx_get_dimm_info(u32 mtr, u32 mcmtr, u32 amap, struct dimm_info *dimm,
 		      struct skx_imc *imc, int chan, int dimmno)
 {
 	int  banks = 16, ranks, rows, cols, npages;
@@ -303,8 +303,8 @@
 		 imc->mc, chan, dimmno, size, npages,
 		 banks, 1 << ranks, rows, cols);
 
-	imc->chan[chan].dimms[dimmno].close_pg = GET_BITFIELD(mtr, 0, 0);
-	imc->chan[chan].dimms[dimmno].bank_xor_enable = GET_BITFIELD(mtr, 9, 9);
+	imc->chan[chan].dimms[dimmno].close_pg = GET_BITFIELD(mcmtr, 0, 0);
+	imc->chan[chan].dimms[dimmno].bank_xor_enable = GET_BITFIELD(mcmtr, 9, 9);
 	imc->chan[chan].dimms[dimmno].fine_grain_bank = GET_BITFIELD(amap, 0, 0);
 	imc->chan[chan].dimms[dimmno].rowbits = rows;
 	imc->chan[chan].dimms[dimmno].colbits = cols;
@@ -475,7 +475,7 @@
 				 struct decoded_addr *res)
 {
 	enum hw_event_mc_err_type tp_event;
-	char *type, *optype;
+	char *optype;
 	bool ripv = GET_BITFIELD(m->mcgstatus, 0, 0);
 	bool overflow = GET_BITFIELD(m->status, 62, 62);
 	bool uncorrected_error = GET_BITFIELD(m->status, 61, 61);
@@ -490,14 +490,11 @@
 	if (uncorrected_error) {
 		core_err_cnt = 1;
 		if (ripv) {
-			type = "FATAL";
-			tp_event = HW_EVENT_ERR_FATAL;
-		} else {
-			type = "NON_FATAL";
 			tp_event = HW_EVENT_ERR_UNCORRECTED;
+		} else {
+			tp_event = HW_EVENT_ERR_FATAL;
 		}
 	} else {
-		type = "CORRECTED";
 		tp_event = HW_EVENT_ERR_CORRECTED;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/skx_common.h
+++ linux-gkeop-5.4-5.4.0/drivers/edac/skx_common.h
@@ -126,7 +126,7 @@
 
 int skx_get_hi_lo(unsigned int did, int off[], u64 *tolm, u64 *tohm);
 
-int skx_get_dimm_info(u32 mtr, u32 amap, struct dimm_info *dimm,
+int skx_get_dimm_info(u32 mtr, u32 mcmtr, u32 amap, struct dimm_info *dimm,
 		      struct skx_imc *imc, int chan, int dimmno);
 
 int skx_get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/synopsys_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/synopsys_edac.c
@@ -479,20 +479,14 @@
 		pinf = &p->ceinfo;
 		if (!priv->p_data->quirks) {
 			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "DDR ECC error type:%s Row %d Bank %d Col %d ",
-				  "CE", pinf->row, pinf->bank, pinf->col);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "Bit Position: %d Data: 0x%08x\n",
+				 "DDR ECC error type:%s Row %d Bank %d Col %d Bit Position: %d Data: 0x%08x",
+				 "CE", pinf->row, pinf->bank, pinf->col,
 				 pinf->bitpos, pinf->data);
 		} else {
 			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "DDR ECC error type:%s Row %d Bank %d Col %d ",
-				  "CE", pinf->row, pinf->bank, pinf->col);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "BankGroup Number %d Block Number %d ",
-				 pinf->bankgrpnr, pinf->blknr);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "Bit Position: %d Data: 0x%08x\n",
+				 "DDR ECC error type:%s Row %d Bank %d Col %d BankGroup Number %d Block Number %d Bit Position: %d Data: 0x%08x",
+				 "CE", pinf->row, pinf->bank, pinf->col,
+				 pinf->bankgrpnr, pinf->blknr,
 				 pinf->bitpos, pinf->data);
 		}
 
@@ -509,10 +503,8 @@
 				"UE", pinf->row, pinf->bank, pinf->col);
 		} else {
 			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "DDR ECC error type :%s Row %d Bank %d Col %d ",
-				 "UE", pinf->row, pinf->bank, pinf->col);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "BankGroup Number %d Block Number %d",
+				 "DDR ECC error type :%s Row %d Bank %d Col %d BankGroup Number %d Block Number %d",
+				 "UE", pinf->row, pinf->bank, pinf->col,
 				 pinf->bankgrpnr, pinf->blknr);
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/edac/ti_edac.c
+++ linux-gkeop-5.4-5.4.0/drivers/edac/ti_edac.c
@@ -278,7 +278,8 @@
 
 	/* add EMIF ECC error handler */
 	error_irq = platform_get_irq(pdev, 0);
-	if (!error_irq) {
+	if (error_irq < 0) {
+		ret = error_irq;
 		edac_printk(KERN_ERR, EDAC_MOD_NAME,
 			    "EMIF irq number not defined.\n");
 		goto err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-adc-jack.c
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-adc-jack.c
@@ -124,7 +124,7 @@
 	for (i = 0; data->adc_conditions[i].id != EXTCON_NONE; i++);
 	data->num_conditions = i;
 
-	data->chan = iio_channel_get(&pdev->dev, pdata->consumer_channel);
+	data->chan = devm_iio_channel_get(&pdev->dev, pdata->consumer_channel);
 	if (IS_ERR(data->chan))
 		return PTR_ERR(data->chan);
 
@@ -164,7 +164,6 @@
 
 	free_irq(data->irq, data);
 	cancel_work_sync(&data->handler.work);
-	iio_channel_release(data->chan);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-axp288.c
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-axp288.c
@@ -423,9 +423,40 @@
 	/* Start charger cable type detection */
 	axp288_extcon_enable(info);
 
+	device_init_wakeup(dev, true);
+	platform_set_drvdata(pdev, info);
+
+	return 0;
+}
+
+static int __maybe_unused axp288_extcon_suspend(struct device *dev)
+{
+	struct axp288_extcon_info *info = dev_get_drvdata(dev);
+
+	if (device_may_wakeup(dev))
+		enable_irq_wake(info->irq[VBUS_RISING_IRQ]);
+
 	return 0;
 }
 
+static int __maybe_unused axp288_extcon_resume(struct device *dev)
+{
+	struct axp288_extcon_info *info = dev_get_drvdata(dev);
+
+	/*
+	 * Wakeup when a charger is connected to do charger-type
+	 * connection and generate an extcon event which makes the
+	 * axp288 charger driver set the input current limit.
+	 */
+	if (device_may_wakeup(dev))
+		disable_irq_wake(info->irq[VBUS_RISING_IRQ]);
+
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(axp288_extcon_pm_ops, axp288_extcon_suspend,
+			 axp288_extcon_resume);
+
 static const struct platform_device_id axp288_extcon_table[] = {
 	{ .name = "axp288_extcon" },
 	{},
@@ -437,6 +468,7 @@
 	.id_table = axp288_extcon_table,
 	.driver = {
 		.name = "axp288_extcon",
+		.pm = &axp288_extcon_pm_ops,
 	},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-intel-cht-wc.c
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-intel-cht-wc.c
@@ -338,6 +338,7 @@
 	struct intel_soc_pmic *pmic = dev_get_drvdata(pdev->dev.parent);
 	struct cht_wc_extcon_data *ext;
 	unsigned long mask = ~(CHT_WC_PWRSRC_VBUS | CHT_WC_PWRSRC_USBID_MASK);
+	int pwrsrc_sts, id;
 	int irq, ret;
 
 	irq = platform_get_irq(pdev, 0);
@@ -387,8 +388,19 @@
 		goto disable_sw_control;
 	}
 
-	/* Route D+ and D- to PMIC for initial charger detection */
-	cht_wc_extcon_set_phymux(ext, MUX_SEL_PMIC);
+	ret = regmap_read(ext->regmap, CHT_WC_PWRSRC_STS, &pwrsrc_sts);
+	if (ret) {
+		dev_err(ext->dev, "Error reading pwrsrc status: %d\n", ret);
+		goto disable_sw_control;
+	}
+
+	/*
+	 * If no USB host or device connected, route D+ and D- to PMIC for
+	 * initial charger detection
+	 */
+	id = cht_wc_extcon_get_id(ext, pwrsrc_sts);
+	if (id != INTEL_USB_ID_GND)
+		cht_wc_extcon_set_phymux(ext, MUX_SEL_PMIC);
 
 	/* Get initial state */
 	cht_wc_extcon_pwrsrc_event(ext);
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-max77693.c
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-max77693.c
@@ -1277,4 +1277,4 @@
 MODULE_DESCRIPTION("Maxim MAX77693 Extcon driver");
 MODULE_AUTHOR("Chanwoo Choi <cw00.choi@samsung.com>");
 MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:extcon-max77693");
+MODULE_ALIAS("platform:max77693-muic");
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-ptn5150.c
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-ptn5150.c
@@ -127,7 +127,7 @@
 			case PTN5150_DFP_ATTACHED:
 				extcon_set_state_sync(info->edev,
 						EXTCON_USB_HOST, false);
-				gpiod_set_value(info->vbus_gpiod, 0);
+				gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 				extcon_set_state_sync(info->edev, EXTCON_USB,
 						true);
 				break;
@@ -138,9 +138,9 @@
 					PTN5150_REG_CC_VBUS_DETECTION_MASK) >>
 					PTN5150_REG_CC_VBUS_DETECTION_SHIFT);
 				if (vbus)
-					gpiod_set_value(info->vbus_gpiod, 0);
+					gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 				else
-					gpiod_set_value(info->vbus_gpiod, 1);
+					gpiod_set_value_cansleep(info->vbus_gpiod, 1);
 
 				extcon_set_state_sync(info->edev,
 						EXTCON_USB_HOST, true);
@@ -156,7 +156,7 @@
 					EXTCON_USB_HOST, false);
 			extcon_set_state_sync(info->edev,
 					EXTCON_USB, false);
-			gpiod_set_value(info->vbus_gpiod, 0);
+			gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-sm5502.c
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-sm5502.c
@@ -65,6 +65,10 @@
 /* Default value of SM5502 register to bring up MUIC device. */
 static struct reg_data sm5502_reg_data[] = {
 	{
+		.reg = SM5502_REG_RESET,
+		.val = SM5502_REG_RESET_MASK,
+		.invert = true,
+	}, {
 		.reg = SM5502_REG_CONTROL,
 		.val = SM5502_REG_CONTROL_MASK_INT_MASK,
 		.invert = false,
--- linux-gkeop-5.4-5.4.0.orig/drivers/extcon/extcon-sm5502.h
+++ linux-gkeop-5.4-5.4.0/drivers/extcon/extcon-sm5502.h
@@ -237,6 +237,8 @@
 #define DM_DP_SWITCH_UART			((DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
 						| (DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
 
+#define SM5502_REG_RESET_MASK			(0x1)
+
 /* SM5502 Interrupts */
 enum sm5502_irq {
 	/* INT1 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/firewire/net.c
+++ linux-gkeop-5.4-5.4.0/drivers/firewire/net.c
@@ -250,7 +250,11 @@
 	h = (struct fwnet_header *)((u8 *)hh->hh_data + HH_DATA_OFF(sizeof(*h)));
 	h->h_proto = type;
 	memcpy(h->h_dest, neigh->ha, net->addr_len);
-	hh->hh_len = FWNET_HLEN;
+
+	/* Pairs with the READ_ONCE() in neigh_resolve_output(),
+	 * neigh_hh_output() and neigh_update_hhs().
+	 */
+	smp_store_release(&hh->hh_len, FWNET_HLEN);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/base.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/base.c
@@ -173,6 +173,8 @@
 			protocols_imp[tot_num_ret + loop] = *(list + loop);
 
 		tot_num_ret += loop_num_ret;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 	} while (loop_num_ret);
 
 	scmi_xfer_put(handle, t);
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/bus.c
@@ -135,8 +135,10 @@
 		return NULL;
 
 	id = ida_simple_get(&scmi_bus_id, 1, 0, GFP_KERNEL);
-	if (id < 0)
-		goto free_mem;
+	if (id < 0) {
+		kfree(scmi_dev);
+		return NULL;
+	}
 
 	scmi_dev->id = id;
 	scmi_dev->protocol_id = protocol;
@@ -154,8 +156,6 @@
 put_dev:
 	put_device(&scmi_dev->dev);
 	ida_simple_remove(&scmi_bus_id, id);
-free_mem:
-	kfree(scmi_dev);
 	return NULL;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/clock.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/clock.c
@@ -177,6 +177,8 @@
 		}
 
 		tot_rate_cnt += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/common.h
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/common.h
@@ -103,6 +103,8 @@
 			       struct scmi_xfer *xfer);
 int scmi_xfer_get_init(const struct scmi_handle *h, u8 msg_id, u8 prot_id,
 		       size_t tx_size, size_t rx_size, struct scmi_xfer **p);
+void scmi_reset_rx_to_maxsz(const struct scmi_handle *handle,
+			    struct scmi_xfer *xfer);
 int scmi_handle_put(const struct scmi_handle *handle);
 struct scmi_handle *scmi_handle_get(struct device *dev);
 void scmi_set_handle(struct scmi_device *scmi_dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/driver.c
@@ -481,6 +481,14 @@
 	return ret;
 }
 
+void scmi_reset_rx_to_maxsz(const struct scmi_handle *handle,
+			    struct scmi_xfer *xfer)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	xfer->rx.len = info->desc->max_msg_size;
+}
+
 #define SCMI_MAX_RESPONSE_TIMEOUT	(2 * MSEC_PER_SEC)
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/perf.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/perf.c
@@ -281,6 +281,8 @@
 		}
 
 		tot_opp_cnt += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
@@ -323,7 +325,7 @@
 
 		if (db->mask)
 			val = ioread64_hi_lo(db->addr) & db->mask;
-		iowrite64_hi_lo(db->set, db->addr);
+		iowrite64_hi_lo(db->set | val, db->addr);
 	}
 #endif
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/reset.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/reset.c
@@ -35,9 +35,7 @@
 #define EXPLICIT_RESET_ASSERT	BIT(1)
 #define ASYNCHRONOUS_RESET	BIT(2)
 	__le32 reset_state;
-#define ARCH_RESET_TYPE		BIT(31)
-#define COLD_RESET_STATE	BIT(0)
-#define ARCH_COLD_RESET		(ARCH_RESET_TYPE | COLD_RESET_STATE)
+#define ARCH_COLD_RESET		0
 };
 
 struct reset_dom_info {
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/scmi_pm_domain.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/scmi_pm_domain.c
@@ -85,7 +85,10 @@
 	for (i = 0; i < num_domains; i++, scmi_pd++) {
 		u32 state;
 
-		domains[i] = &scmi_pd->genpd;
+		if (handle->power_ops->state_get(handle, i, &state)) {
+			dev_warn(dev, "failed to get state for domain %d\n", i);
+			continue;
+		}
 
 		scmi_pd->domain = i;
 		scmi_pd->handle = handle;
@@ -94,13 +97,10 @@
 		scmi_pd->genpd.power_off = scmi_pd_power_off;
 		scmi_pd->genpd.power_on = scmi_pd_power_on;
 
-		if (handle->power_ops->state_get(handle, i, &state)) {
-			dev_warn(dev, "failed to get state for domain %d\n", i);
-			continue;
-		}
-
 		pm_genpd_init(&scmi_pd->genpd, NULL,
 			      state == SCMI_POWER_STATE_GENERIC_OFF);
+
+		domains[i] = &scmi_pd->genpd;
 	}
 
 	scmi_pd_data->domains = domains;
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_scmi/sensors.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_scmi/sensors.c
@@ -154,6 +154,8 @@
 		}
 
 		desc_index += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/arm_sdei.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/arm_sdei.c
@@ -412,14 +412,19 @@
 		return -ENOENT;
 	}
 
-	spin_lock(&sdei_list_lock);
-	event->reenable = true;
-	spin_unlock(&sdei_list_lock);
 
+	cpus_read_lock();
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		err = sdei_api_event_enable(event->event_num);
 	else
 		err = sdei_do_cross_call(_local_event_enable, event);
+
+	if (!err) {
+		spin_lock(&sdei_list_lock);
+		event->reenable = true;
+		spin_unlock(&sdei_list_lock);
+	}
+	cpus_read_unlock();
 	mutex_unlock(&sdei_events_lock);
 
 	return err;
@@ -491,11 +496,6 @@
 {
 	lockdep_assert_held(&sdei_events_lock);
 
-	spin_lock(&sdei_list_lock);
-	event->reregister = false;
-	event->reenable = false;
-	spin_unlock(&sdei_list_lock);
-
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		return sdei_api_event_unregister(event->event_num);
 
@@ -518,6 +518,11 @@
 			break;
 		}
 
+		spin_lock(&sdei_list_lock);
+		event->reregister = false;
+		event->reenable = false;
+		spin_unlock(&sdei_list_lock);
+
 		err = _sdei_event_unregister(event);
 		if (err)
 			break;
@@ -585,26 +590,15 @@
 
 	lockdep_assert_held(&sdei_events_lock);
 
-	spin_lock(&sdei_list_lock);
-	event->reregister = true;
-	spin_unlock(&sdei_list_lock);
-
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		return sdei_api_event_register(event->event_num,
 					       sdei_entry_point,
 					       event->registered,
 					       SDEI_EVENT_REGISTER_RM_ANY, 0);
 
-
 	err = sdei_do_cross_call(_local_event_register, event);
-	if (err) {
-		spin_lock(&sdei_list_lock);
-		event->reregister = false;
-		event->reenable = false;
-		spin_unlock(&sdei_list_lock);
-
+	if (err)
 		sdei_do_cross_call(_local_event_unregister, event);
-	}
 
 	return err;
 }
@@ -632,12 +626,18 @@
 			break;
 		}
 
+		cpus_read_lock();
 		err = _sdei_event_register(event);
 		if (err) {
 			sdei_event_destroy(event);
 			pr_warn("Failed to register event %u: %d\n", event_num,
 				err);
+		} else {
+			spin_lock(&sdei_list_lock);
+			event->reregister = true;
+			spin_unlock(&sdei_list_lock);
 		}
+		cpus_read_unlock();
 	} while (0);
 	mutex_unlock(&sdei_events_lock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/Kconfig
@@ -216,6 +216,17 @@
 
 config EFI_EARLYCON
 	def_bool y
-	depends on SERIAL_EARLYCON && !ARM && !IA64
+	depends on EFI && SERIAL_EARLYCON && !ARM && !IA64
 	select FONT_SUPPORT
 	select ARCH_USE_MEMREMAP_PROT
+
+config EFI_CUSTOM_SSDT_OVERLAYS
+	bool "Load custom ACPI SSDT overlay from an EFI variable"
+	depends on EFI_VARS && ACPI
+	default ACPI_TABLE_UPGRADE
+	help
+	  Allow loading of an ACPI SSDT overlay from an EFI variable specified
+	  by a kernel command line option.
+
+	  See Documentation/admin-guide/acpi/ssdt-overlays.rst for more
+	  information.
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/Makefile
@@ -24,6 +24,7 @@
 obj-$(CONFIG_EFI_BOOTLOADER_CONTROL)	+= efibc.o
 obj-$(CONFIG_EFI_TEST)			+= test/
 obj-$(CONFIG_EFI_DEV_PATH_PARSER)	+= dev-path-parser.o
+obj-$(CONFIG_EFI)			+= secureboot.o
 obj-$(CONFIG_APPLE_PROPERTIES)		+= apple-properties.o
 obj-$(CONFIG_EFI_RCI2_TABLE)		+= rci2-table.o
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/arm-init.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/arm-init.c
@@ -17,6 +17,7 @@
 #include <linux/of_fdt.h>
 #include <linux/platform_device.h>
 #include <linux/screen_info.h>
+#include <linux/security.h>
 
 #include <asm/efi.h>
 
@@ -253,6 +254,13 @@
 		return;
 	}
 
+	efi_set_secure_boot(params.secure_boot);
+
+#ifdef CONFIG_LOCK_DOWN_IN_SECURE_BOOT
+	if (efi_enabled(EFI_SECURE_BOOT))
+		security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX);
+#endif
+
 	reserve_regions();
 	efi_esrt_init();
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/earlycon.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/earlycon.c
@@ -13,18 +13,58 @@
 
 #include <asm/early_ioremap.h>
 
+static const struct console *earlycon_console __initdata;
 static const struct font_desc *font;
 static u32 efi_x, efi_y;
 static u64 fb_base;
-static pgprot_t fb_prot;
+static bool fb_wb;
+static void *efi_fb;
+
+/*
+ * EFI earlycon needs to use early_memremap() to map the framebuffer.
+ * But early_memremap() is not usable for 'earlycon=efifb keep_bootcon',
+ * memremap() should be used instead. memremap() will be available after
+ * paging_init() which is earlier than initcall callbacks. Thus adding this
+ * early initcall function early_efi_map_fb() to map the whole EFI framebuffer.
+ */
+static int __init efi_earlycon_remap_fb(void)
+{
+	/* bail if there is no bootconsole or it has been disabled already */
+	if (!earlycon_console || !(earlycon_console->flags & CON_ENABLED))
+		return 0;
+
+	efi_fb = memremap(fb_base, screen_info.lfb_size,
+			  fb_wb ? MEMREMAP_WB : MEMREMAP_WC);
+
+	return efi_fb ? 0 : -ENOMEM;
+}
+early_initcall(efi_earlycon_remap_fb);
+
+static int __init efi_earlycon_unmap_fb(void)
+{
+	/* unmap the bootconsole fb unless keep_bootcon has left it enabled */
+	if (efi_fb && !(earlycon_console->flags & CON_ENABLED))
+		memunmap(efi_fb);
+	return 0;
+}
+late_initcall(efi_earlycon_unmap_fb);
 
 static __ref void *efi_earlycon_map(unsigned long start, unsigned long len)
 {
+	pgprot_t fb_prot;
+
+	if (efi_fb)
+		return efi_fb + start;
+
+	fb_prot = fb_wb ? PAGE_KERNEL : pgprot_writecombine(PAGE_KERNEL);
 	return early_memremap_prot(fb_base + start, len, pgprot_val(fb_prot));
 }
 
 static __ref void efi_earlycon_unmap(void *addr, unsigned long len)
 {
+	if (efi_fb)
+		return;
+
 	early_memunmap(addr, len);
 }
 
@@ -176,10 +216,7 @@
 	if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE)
 		fb_base |= (u64)screen_info.ext_lfb_base << 32;
 
-	if (opt && !strcmp(opt, "ram"))
-		fb_prot = PAGE_KERNEL;
-	else
-		fb_prot = pgprot_writecombine(PAGE_KERNEL);
+	fb_wb = opt && !strcmp(opt, "ram");
 
 	si = &screen_info;
 	xres = si->lfb_width;
@@ -201,6 +238,7 @@
 		efi_earlycon_scroll_up();
 
 	device->con->write = efi_earlycon_write;
+	earlycon_console = device->con;
 	return 0;
 }
 EARLYCON_DECLARE(efifb, efi_earlycon_setup);
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/efi.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/efi.c
@@ -31,6 +31,7 @@
 #include <linux/ucs2_string.h>
 #include <linux/memblock.h>
 #include <linux/security.h>
+#include <linux/bsearch.h>
 
 #include <asm/early_ioremap.h>
 
@@ -217,7 +218,7 @@
 	efivars_unregister(&generic_efivars);
 }
 
-#if IS_ENABLED(CONFIG_ACPI)
+#ifdef CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
 #define EFIVAR_SSDT_NAME_MAX	16
 static char efivar_ssdt[EFIVAR_SSDT_NAME_MAX] __initdata;
 static int __init efivar_ssdt_setup(char *str)
@@ -345,6 +346,7 @@
 	efi_kobj = kobject_create_and_add("efi", firmware_kobj);
 	if (!efi_kobj) {
 		pr_err("efi: Firmware registration failed.\n");
+		destroy_workqueue(efi_rts_wq);
 		return -ENOMEM;
 	}
 
@@ -381,6 +383,7 @@
 	generic_ops_unregister();
 err_put:
 	kobject_put(efi_kobj);
+	destroy_workqueue(efi_rts_wq);
 	return error;
 }
 
@@ -544,7 +547,7 @@
 
 		seed = early_memremap(efi.rng_seed, sizeof(*seed));
 		if (seed != NULL) {
-			size = seed->size;
+			size = READ_ONCE(seed->size);
 			early_memunmap(seed, sizeof(*seed));
 		} else {
 			pr_err("Could not map UEFI random seed!\n");
@@ -554,7 +557,7 @@
 					      sizeof(*seed) + size);
 			if (seed != NULL) {
 				pr_notice("seeding entropy pool\n");
-				add_bootloader_randomness(seed->bits, seed->size);
+				add_bootloader_randomness(seed->bits, size);
 				early_memunmap(seed, sizeof(*seed) + size);
 			} else {
 				pr_err("Could not map UEFI random seed!\n");
@@ -562,7 +565,7 @@
 		}
 	}
 
-	if (efi_enabled(EFI_MEMMAP))
+	if (!IS_ENABLED(CONFIG_X86_32) && efi_enabled(EFI_MEMMAP))
 		efi_memattr_init();
 
 	efi_tpm_eventlog_init();
@@ -688,7 +691,8 @@
 	UEFI_PARAM("MemMap Address", "linux,uefi-mmap-start", mmap),
 	UEFI_PARAM("MemMap Size", "linux,uefi-mmap-size", mmap_size),
 	UEFI_PARAM("MemMap Desc. Size", "linux,uefi-mmap-desc-size", desc_size),
-	UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver)
+	UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver),
+	UEFI_PARAM("Secure Boot Enabled", "linux,uefi-secure-boot", secure_boot)
 };
 
 static __initdata struct params xen_fdt_params[] = {
@@ -918,40 +922,101 @@
 }
 #endif
 
+struct efi_error_code {
+	efi_status_t status;
+	int errno;
+	const char *description;
+};
+
+static const struct efi_error_code efi_error_codes[] = {
+	{ EFI_SUCCESS, 0, "Success"},
+#if 0
+	{ EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"},
+#endif
+	{ EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"},
+	{ EFI_UNSUPPORTED, -ENOSYS, "Unsupported"},
+	{ EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"},
+	{ EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"},
+	{ EFI_NOT_READY, -EAGAIN, "Not Ready"},
+	{ EFI_DEVICE_ERROR, -EIO, "Device Error"},
+	{ EFI_WRITE_PROTECTED, -EROFS, "Write Protected"},
+	{ EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"},
+#if 0
+	{ EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"},
+	{ EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"},
+	{ EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"},
+	{ EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"},
+#endif
+	{ EFI_NOT_FOUND, -ENOENT, "Not Found"},
+#if 0
+	{ EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"},
+	{ EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"},
+	{ EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"},
+	{ EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"},
+	{ EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"},
+	{ EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"},
+#endif
+	{ EFI_ABORTED, -EINTR, "Aborted"},
+#if 0
+	{ EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"},
+	{ EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"},
+	{ EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"},
+	{ EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"},
+#endif
+	{ EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"},
+#if 0
+	{ EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"},
+	{ EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"},
+	{ EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"},
+	{ EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"},
+	{ EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"},
+
+	// warnings
+	{ EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"},
+	{ EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"},
+	{ EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"},
+	{ EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"},
+#endif
+};
+
+static int
+efi_status_cmp_bsearch(const void *key, const void *item)
+{
+	u64 status = (u64)(uintptr_t)key;
+	struct efi_error_code *code = (struct efi_error_code *)item;
+
+	if (status < code->status)
+		return -1;
+	if (status > code->status)
+		return 1;
+	return 0;
+}
+
 int efi_status_to_err(efi_status_t status)
 {
-	int err;
+	struct efi_error_code *found;
+	size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code);
 
-	switch (status) {
-	case EFI_SUCCESS:
-		err = 0;
-		break;
-	case EFI_INVALID_PARAMETER:
-		err = -EINVAL;
-		break;
-	case EFI_OUT_OF_RESOURCES:
-		err = -ENOSPC;
-		break;
-	case EFI_DEVICE_ERROR:
-		err = -EIO;
-		break;
-	case EFI_WRITE_PROTECTED:
-		err = -EROFS;
-		break;
-	case EFI_SECURITY_VIOLATION:
-		err = -EACCES;
-		break;
-	case EFI_NOT_FOUND:
-		err = -ENOENT;
-		break;
-	case EFI_ABORTED:
-		err = -EINTR;
-		break;
-	default:
-		err = -EINVAL;
-	}
+	found = bsearch((void *)(uintptr_t)status, efi_error_codes,
+			sizeof(struct efi_error_code), num,
+			efi_status_cmp_bsearch);
+	if (!found)
+		return -EINVAL;
+	return found->errno;
+}
+
+const char *
+efi_status_to_str(efi_status_t status)
+{
+	struct efi_error_code *found;
+	size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code);
 
-	return err;
+	found = bsearch((void *)(uintptr_t)status, efi_error_codes,
+			sizeof(struct efi_error_code), num,
+			efi_status_cmp_bsearch);
+	if (!found)
+		return "Unknown error code";
+	return found->description;
 }
 
 static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock);
@@ -970,6 +1035,24 @@
 	return 0;
 }
 
+static int efi_mem_reserve_iomem(phys_addr_t addr, u64 size)
+{
+	struct resource *res, *parent;
+
+	res = kzalloc(sizeof(struct resource), GFP_ATOMIC);
+	if (!res)
+		return -ENOMEM;
+
+	res->name	= "reserved";
+	res->flags	= IORESOURCE_MEM;
+	res->start	= addr;
+	res->end	= addr + size - 1;
+
+	/* we expect a conflict with a 'System RAM' region */
+	parent = request_resource_conflict(&iomem_resource, res);
+	return parent ? request_resource(parent, res) : 0;
+}
+
 int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size)
 {
 	struct linux_efi_memreserve *rsv;
@@ -994,7 +1077,7 @@
 			rsv->entry[index].size = size;
 
 			memunmap(rsv);
-			return 0;
+			return efi_mem_reserve_iomem(addr, size);
 		}
 		memunmap(rsv);
 	}
@@ -1004,6 +1087,12 @@
 	if (!rsv)
 		return -ENOMEM;
 
+	rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K);
+	if (rc) {
+		free_page((unsigned long)rsv);
+		return rc;
+	}
+
 	/*
 	 * The memremap() call above assumes that a linux_efi_memreserve entry
 	 * never crosses a page boundary, so let's ensure that this remains true
@@ -1020,7 +1109,7 @@
 	efi_memreserve_root->next = __pa(rsv);
 	spin_unlock(&efi_mem_reserve_persistent_lock);
 
-	return 0;
+	return efi_mem_reserve_iomem(addr, size);
 }
 
 static int __init efi_memreserve_root_init(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/efivars.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/efivars.c
@@ -83,13 +83,16 @@
 efivar_attr_read(struct efivar_entry *entry, char *buf)
 {
 	struct efi_variable *var = &entry->var;
+	unsigned long size = sizeof(var->Data);
 	char *str = buf;
+	int ret;
 
 	if (!entry || !buf)
 		return -EINVAL;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &var->Attributes, &var->DataSize, var->Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &size, var->Data);
+	var->DataSize = size;
+	if (ret)
 		return -EIO;
 
 	if (var->Attributes & EFI_VARIABLE_NON_VOLATILE)
@@ -116,13 +119,16 @@
 efivar_size_read(struct efivar_entry *entry, char *buf)
 {
 	struct efi_variable *var = &entry->var;
+	unsigned long size = sizeof(var->Data);
 	char *str = buf;
+	int ret;
 
 	if (!entry || !buf)
 		return -EINVAL;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &var->Attributes, &var->DataSize, var->Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &size, var->Data);
+	var->DataSize = size;
+	if (ret)
 		return -EIO;
 
 	str += sprintf(str, "0x%lx\n", var->DataSize);
@@ -133,12 +139,15 @@
 efivar_data_read(struct efivar_entry *entry, char *buf)
 {
 	struct efi_variable *var = &entry->var;
+	unsigned long size = sizeof(var->Data);
+	int ret;
 
 	if (!entry || !buf)
 		return -EINVAL;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &var->Attributes, &var->DataSize, var->Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &size, var->Data);
+	var->DataSize = size;
+	if (ret)
 		return -EIO;
 
 	memcpy(buf, var->Data, var->DataSize);
@@ -199,6 +208,9 @@
 	u8 *data;
 	int err;
 
+	if (!entry || !buf)
+		return -EINVAL;
+
 	if (in_compat_syscall()) {
 		struct compat_efi_variable *compat;
 
@@ -250,14 +262,16 @@
 {
 	struct efi_variable *var = &entry->var;
 	struct compat_efi_variable *compat;
+	unsigned long datasize = sizeof(var->Data);
 	size_t size;
+	int ret;
 
 	if (!entry || !buf)
 		return 0;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &entry->var.Attributes,
-			     &entry->var.DataSize, entry->var.Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &datasize, var->Data);
+	var->DataSize = datasize;
+	if (ret)
 		return -EIO;
 
 	if (in_compat_syscall()) {
@@ -508,8 +522,10 @@
 	ret = kobject_init_and_add(&new_var->kobj, &efivar_ktype,
 				   NULL, "%s", short_name);
 	kfree(short_name);
-	if (ret)
+	if (ret) {
+		kobject_put(&new_var->kobj);
 		return ret;
+	}
 
 	kobject_uevent(&new_var->kobj, KOBJ_ADD);
 	if (efivar_entry_add(new_var, &efivar_sysfs_list)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/esrt.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/esrt.c
@@ -181,7 +181,7 @@
 		rc = kobject_init_and_add(&entry->kobj, &esre1_ktype, NULL,
 					  "entry%d", entry_num);
 		if (rc) {
-			kfree(entry);
+			kobject_put(&entry->kobj);
 			return rc;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/libstub/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/libstub/Makefile
@@ -28,6 +28,7 @@
 				   -D__NO_FORTIFY \
 				   $(call cc-option,-ffreestanding) \
 				   $(call cc-option,-fno-stack-protector) \
+				   $(call cc-option,-fno-addrsig) \
 				   -D__DISABLE_EXPORTS
 
 GCOV_PROFILE			:= n
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/libstub/arm-stub.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/libstub/arm-stub.c
@@ -189,6 +189,8 @@
 		goto fail_free_cmdline;
 	}
 
+	efi_retrieve_tpm2_eventlog(sys_table);
+
 	/* Ask the firmware to clear memory on unclean shutdown */
 	efi_enable_reset_attack_mitigation(sys_table);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/libstub/efi-stub-helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/libstub/efi-stub-helper.c
@@ -46,7 +46,7 @@
 	return __novamap;
 }
 
-#define EFI_MMAP_NR_SLACK_SLOTS	8
+#define EFI_MMAP_NR_SLACK_SLOTS	16
 
 struct file_info {
 	efi_file_handle_t *handle;
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/libstub/fdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/libstub/fdt.c
@@ -151,6 +151,12 @@
 		}
 	}
 
+	fdt_val32 = cpu_to_fdt32(efi_get_secureboot(sys_table));
+	status = fdt_setprop(fdt, node, "linux,uefi-secure-boot",
+			     &fdt_val32, sizeof(fdt_val32));
+	if (status)
+		goto fdt_set_fail;
+
 	/* Shrink the FDT back to its minimum size: */
 	fdt_pack(fdt);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/libstub/gop.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/libstub/gop.c
@@ -84,30 +84,6 @@
 }
 
 static efi_status_t
-__gop_query32(efi_system_table_t *sys_table_arg,
-	      struct efi_graphics_output_protocol_32 *gop32,
-	      struct efi_graphics_output_mode_info **info,
-	      unsigned long *size, u64 *fb_base)
-{
-	struct efi_graphics_output_protocol_mode_32 *mode;
-	efi_graphics_output_protocol_query_mode query_mode;
-	efi_status_t status;
-	unsigned long m;
-
-	m = gop32->mode;
-	mode = (struct efi_graphics_output_protocol_mode_32 *)m;
-	query_mode = (void *)(unsigned long)gop32->query_mode;
-
-	status = __efi_call_early(query_mode, (void *)gop32, mode->mode, size,
-				  info);
-	if (status != EFI_SUCCESS)
-		return status;
-
-	*fb_base = mode->frame_buffer_base;
-	return status;
-}
-
-static efi_status_t
 setup_gop32(efi_system_table_t *sys_table_arg, struct screen_info *si,
             efi_guid_t *proto, unsigned long size, void **gop_handle)
 {
@@ -119,7 +95,7 @@
 	u64 fb_base;
 	struct efi_pixel_bitmask pixel_info;
 	int pixel_format;
-	efi_status_t status = EFI_NOT_FOUND;
+	efi_status_t status;
 	u32 *handles = (u32 *)(unsigned long)gop_handle;
 	int i;
 
@@ -128,6 +104,7 @@
 
 	nr_gops = size / sizeof(u32);
 	for (i = 0; i < nr_gops; i++) {
+		struct efi_graphics_output_protocol_mode_32 *mode;
 		struct efi_graphics_output_mode_info *info = NULL;
 		efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
 		bool conout_found = false;
@@ -145,9 +122,11 @@
 		if (status == EFI_SUCCESS)
 			conout_found = true;
 
-		status = __gop_query32(sys_table_arg, gop32, &info, &size,
-				       &current_fb_base);
-		if (status == EFI_SUCCESS && (!first_gop || conout_found) &&
+		mode = (void *)(unsigned long)gop32->mode;
+		info = (void *)(unsigned long)mode->info;
+		current_fb_base = mode->frame_buffer_base;
+
+		if ((!first_gop || conout_found) &&
 		    info->pixel_format != PIXEL_BLT_ONLY) {
 			/*
 			 * Systems that use the UEFI Console Splitter may
@@ -175,7 +154,7 @@
 
 	/* Did we find any GOPs? */
 	if (!first_gop)
-		goto out;
+		return EFI_NOT_FOUND;
 
 	/* EFI framebuffer */
 	si->orig_video_isVGA = VIDEO_TYPE_EFI;
@@ -197,32 +176,8 @@
 	si->lfb_size = si->lfb_linelength * si->lfb_height;
 
 	si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS;
-out:
-	return status;
-}
-
-static efi_status_t
-__gop_query64(efi_system_table_t *sys_table_arg,
-	      struct efi_graphics_output_protocol_64 *gop64,
-	      struct efi_graphics_output_mode_info **info,
-	      unsigned long *size, u64 *fb_base)
-{
-	struct efi_graphics_output_protocol_mode_64 *mode;
-	efi_graphics_output_protocol_query_mode query_mode;
-	efi_status_t status;
-	unsigned long m;
 
-	m = gop64->mode;
-	mode = (struct efi_graphics_output_protocol_mode_64 *)m;
-	query_mode = (void *)(unsigned long)gop64->query_mode;
-
-	status = __efi_call_early(query_mode, (void *)gop64, mode->mode, size,
-				  info);
-	if (status != EFI_SUCCESS)
-		return status;
-
-	*fb_base = mode->frame_buffer_base;
-	return status;
+	return EFI_SUCCESS;
 }
 
 static efi_status_t
@@ -237,7 +192,7 @@
 	u64 fb_base;
 	struct efi_pixel_bitmask pixel_info;
 	int pixel_format;
-	efi_status_t status = EFI_NOT_FOUND;
+	efi_status_t status;
 	u64 *handles = (u64 *)(unsigned long)gop_handle;
 	int i;
 
@@ -246,6 +201,7 @@
 
 	nr_gops = size / sizeof(u64);
 	for (i = 0; i < nr_gops; i++) {
+		struct efi_graphics_output_protocol_mode_64 *mode;
 		struct efi_graphics_output_mode_info *info = NULL;
 		efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
 		bool conout_found = false;
@@ -263,9 +219,11 @@
 		if (status == EFI_SUCCESS)
 			conout_found = true;
 
-		status = __gop_query64(sys_table_arg, gop64, &info, &size,
-				       &current_fb_base);
-		if (status == EFI_SUCCESS && (!first_gop || conout_found) &&
+		mode = (void *)(unsigned long)gop64->mode;
+		info = (void *)(unsigned long)mode->info;
+		current_fb_base = mode->frame_buffer_base;
+
+		if ((!first_gop || conout_found) &&
 		    info->pixel_format != PIXEL_BLT_ONLY) {
 			/*
 			 * Systems that use the UEFI Console Splitter may
@@ -293,7 +251,7 @@
 
 	/* Did we find any GOPs? */
 	if (!first_gop)
-		goto out;
+		return EFI_NOT_FOUND;
 
 	/* EFI framebuffer */
 	si->orig_video_isVGA = VIDEO_TYPE_EFI;
@@ -315,8 +273,8 @@
 	si->lfb_size = si->lfb_linelength * si->lfb_height;
 
 	si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS;
-out:
-	return status;
+
+	return EFI_SUCCESS;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/libstub/tpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/libstub/tpm.c
@@ -64,7 +64,7 @@
 	efi_status_t status;
 	efi_physical_addr_t log_location = 0, log_last_entry = 0;
 	struct linux_efi_tpm_eventlog *log_tbl = NULL;
-	struct efi_tcg2_final_events_table *final_events_table;
+	struct efi_tcg2_final_events_table *final_events_table = NULL;
 	unsigned long first_entry_addr, last_entry_addr;
 	size_t log_size, last_entry_size;
 	efi_bool_t truncated;
@@ -140,7 +140,8 @@
 	 * Figure out whether any events have already been logged to the
 	 * final events structure, and if so how much space they take up
 	 */
-	final_events_table = get_efi_config_table(sys_table_arg,
+	if (version == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
+		final_events_table = get_efi_config_table(sys_table_arg,
 						LINUX_EFI_TPM_FINAL_LOG_GUID);
 	if (final_events_table && final_events_table->nr_events) {
 		struct tcg_pcr_event2_head *header;
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/rci2-table.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/rci2-table.c
@@ -81,6 +81,9 @@
 	struct kobject *tables_kobj;
 	int ret = -ENOMEM;
 
+	if (rci2_table_phys == EFI_INVALID_TABLE_ADDR)
+		return 0;
+
 	rci2_base = memremap(rci2_table_phys,
 			     sizeof(struct rci2_table_global_hdr),
 			     MEMREMAP_WB);
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/secureboot.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/secureboot.c
@@ -0,0 +1,38 @@
+/* Core kernel secure boot support.
+ *
+ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public Licence
+ * as published by the Free Software Foundation; either version
+ * 2 of the Licence, or (at your option) any later version.
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/efi.h>
+#include <linux/kernel.h>
+#include <linux/printk.h>
+
+/*
+ * Decide what to do when UEFI secure boot mode is enabled.
+ */
+void __init efi_set_secure_boot(enum efi_secureboot_mode mode)
+{
+	if (efi_enabled(EFI_BOOT)) {
+		switch (mode) {
+		case efi_secureboot_mode_disabled:
+			pr_info("Secure boot disabled\n");
+			break;
+		case efi_secureboot_mode_enabled:
+			set_bit(EFI_SECURE_BOOT, &efi.flags);
+			pr_info("Secure boot enabled\n");
+			break;
+		default:
+			pr_warning("Secure boot could not be determined (mode %u)\n",
+				   mode);
+			break;
+		}
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/efi/tpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/efi/tpm.c
@@ -16,7 +16,7 @@
 int efi_tpm_final_log_size;
 EXPORT_SYMBOL(efi_tpm_final_log_size);
 
-static int tpm2_calc_event_log_size(void *data, int count, void *size_info)
+static int __init tpm2_calc_event_log_size(void *data, int count, void *size_info)
 {
 	struct tcg_pcr_event2_head *header;
 	int event_size, size = 0;
@@ -62,8 +62,11 @@
 	tbl_size = sizeof(*log_tbl) + log_tbl->size;
 	memblock_reserve(efi.tpm_log, tbl_size);
 
-	if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR)
+	if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR ||
+	    log_tbl->version != EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) {
+		pr_warn(FW_BUG "TPM Final Events table missing or invalid\n");
 		goto out;
+	}
 
 	final_tbl = early_memremap(efi.tpm_final_log, sizeof(*final_tbl));
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/imx/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/imx/Kconfig
@@ -13,6 +13,7 @@
 config IMX_SCU
 	bool "IMX SCU Protocol driver"
 	depends on IMX_MBOX
+	select SOC_BUS
 	help
 	  The System Controller Firmware (SCFW) is a low-level system function
 	  which runs on a dedicated Cortex-M core to provide power, clock, and
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/imx/imx-dsp.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/imx/imx-dsp.c
@@ -114,7 +114,7 @@
 
 	dev_info(dev, "NXP i.MX DSP IPC initialized\n");
 
-	return devm_of_platform_populate(dev);
+	return 0;
 out:
 	kfree(chan_name);
 	for (j = 0; j < i; j++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/imx/imx-scu.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/imx/imx-scu.c
@@ -29,6 +29,7 @@
 	struct mbox_client cl;
 	struct mbox_chan *ch;
 	int idx;
+	struct completion tx_done;
 };
 
 struct imx_sc_ipc {
@@ -37,6 +38,7 @@
 	struct device *dev;
 	struct mutex lock;
 	struct completion done;
+	bool fast_ipc;
 
 	/* temporarily store the SCU msg */
 	u32 *msg;
@@ -100,12 +102,40 @@
 }
 EXPORT_SYMBOL(imx_scu_get_handle);
 
+/* Callback called when the word of a message is ack-ed, eg read by SCU */
+static void imx_scu_tx_done(struct mbox_client *cl, void *mssg, int r)
+{
+	struct imx_sc_chan *sc_chan = container_of(cl, struct imx_sc_chan, cl);
+
+	complete(&sc_chan->tx_done);
+}
+
 static void imx_scu_rx_callback(struct mbox_client *c, void *msg)
 {
 	struct imx_sc_chan *sc_chan = container_of(c, struct imx_sc_chan, cl);
 	struct imx_sc_ipc *sc_ipc = sc_chan->sc_ipc;
 	struct imx_sc_rpc_msg *hdr;
 	u32 *data = msg;
+	int i;
+
+	if (!sc_ipc->msg) {
+		dev_warn(sc_ipc->dev, "unexpected rx idx %d 0x%08x, ignore!\n",
+				sc_chan->idx, *data);
+		return;
+	}
+
+	if (sc_ipc->fast_ipc) {
+		hdr = msg;
+		sc_ipc->rx_size = hdr->size;
+		sc_ipc->msg[0] = *data++;
+
+		for (i = 1; i < sc_ipc->rx_size; i++)
+			sc_ipc->msg[i] = *data++;
+
+		complete(&sc_ipc->done);
+
+		return;
+	}
 
 	if (sc_chan->idx == 0) {
 		hdr = msg;
@@ -128,21 +158,38 @@
 
 static int imx_scu_ipc_write(struct imx_sc_ipc *sc_ipc, void *msg)
 {
-	struct imx_sc_rpc_msg *hdr = msg;
+	struct imx_sc_rpc_msg hdr = *(struct imx_sc_rpc_msg *)msg;
 	struct imx_sc_chan *sc_chan;
 	u32 *data = msg;
 	int ret;
+	int size;
 	int i;
 
 	/* Check size */
-	if (hdr->size > IMX_SC_RPC_MAX_MSG)
+	if (hdr.size > IMX_SC_RPC_MAX_MSG)
 		return -EINVAL;
 
-	dev_dbg(sc_ipc->dev, "RPC SVC %u FUNC %u SIZE %u\n", hdr->svc,
-		hdr->func, hdr->size);
+	dev_dbg(sc_ipc->dev, "RPC SVC %u FUNC %u SIZE %u\n", hdr.svc,
+		hdr.func, hdr.size);
 
-	for (i = 0; i < hdr->size; i++) {
+	size = sc_ipc->fast_ipc ? 1 : hdr.size;
+	for (i = 0; i < size; i++) {
 		sc_chan = &sc_ipc->chans[i % 4];
+
+		/*
+		 * SCU requires that all messages words are written
+		 * sequentially but linux MU driver implements multiple
+		 * independent channels for each register so ordering between
+		 * different channels must be ensured by SCU API interface.
+		 *
+		 * Wait for tx_done before every send to ensure that no
+		 * queueing happens at the mailbox channel level.
+		 */
+		if (!sc_ipc->fast_ipc) {
+			wait_for_completion(&sc_chan->tx_done);
+			reinit_completion(&sc_chan->tx_done);
+		}
+
 		ret = mbox_send_message(sc_chan->ch, &data[i]);
 		if (ret < 0)
 			return ret;
@@ -165,7 +212,8 @@
 	mutex_lock(&sc_ipc->lock);
 	reinit_completion(&sc_ipc->done);
 
-	sc_ipc->msg = msg;
+	if (have_resp)
+		sc_ipc->msg = msg;
 	sc_ipc->count = 0;
 	ret = imx_scu_ipc_write(sc_ipc, msg);
 	if (ret < 0) {
@@ -187,6 +235,7 @@
 	}
 
 out:
+	sc_ipc->msg = NULL;
 	mutex_unlock(&sc_ipc->lock);
 
 	dev_dbg(sc_ipc->dev, "RPC SVC done\n");
@@ -202,6 +251,8 @@
 	struct imx_sc_chan *sc_chan;
 	struct mbox_client *cl;
 	char *chan_name;
+	struct of_phandle_args args;
+	int num_channel;
 	int ret;
 	int i;
 
@@ -209,11 +260,20 @@
 	if (!sc_ipc)
 		return -ENOMEM;
 
-	for (i = 0; i < SCU_MU_CHAN_NUM; i++) {
-		if (i < 4)
+	ret = of_parse_phandle_with_args(pdev->dev.of_node, "mboxes",
+					 "#mbox-cells", 0, &args);
+	if (ret)
+		return ret;
+
+	sc_ipc->fast_ipc = of_device_is_compatible(args.np, "fsl,imx8-mu-scu");
+
+	num_channel = sc_ipc->fast_ipc ? 2 : SCU_MU_CHAN_NUM;
+	for (i = 0; i < num_channel; i++) {
+		if (i < num_channel / 2)
 			chan_name = kasprintf(GFP_KERNEL, "tx%d", i);
 		else
-			chan_name = kasprintf(GFP_KERNEL, "rx%d", i - 4);
+			chan_name = kasprintf(GFP_KERNEL, "rx%d",
+					      i - num_channel / 2);
 
 		if (!chan_name)
 			return -ENOMEM;
@@ -225,14 +285,22 @@
 		cl->knows_txdone = true;
 		cl->rx_callback = imx_scu_rx_callback;
 
+		if (!sc_ipc->fast_ipc) {
+			/* Initial tx_done completion as "done" */
+			cl->tx_done = imx_scu_tx_done;
+			init_completion(&sc_chan->tx_done);
+			complete(&sc_chan->tx_done);
+		}
+
 		sc_chan->sc_ipc = sc_ipc;
-		sc_chan->idx = i % 4;
+		sc_chan->idx = i % (num_channel / 2);
 		sc_chan->ch = mbox_request_channel_byname(cl, chan_name);
 		if (IS_ERR(sc_chan->ch)) {
 			ret = PTR_ERR(sc_chan->ch);
 			if (ret != -EPROBE_DEFER)
 				dev_err(dev, "Failed to request mbox chan %s ret %d\n",
 					chan_name, ret);
+			kfree(chan_name);
 			return ret;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/imx/misc.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/imx/misc.c
@@ -16,7 +16,7 @@
 	u32 ctrl;
 	u32 val;
 	u16 resource;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_req_cpu_start {
 	struct imx_sc_rpc_msg hdr;
@@ -24,18 +24,18 @@
 	u32 address_lo;
 	u16 resource;
 	u8 enable;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_req_misc_get_ctrl {
 	struct imx_sc_rpc_msg hdr;
 	u32 ctrl;
 	u16 resource;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_resp_misc_get_ctrl {
 	struct imx_sc_rpc_msg hdr;
 	u32 val;
-} __packed;
+} __packed __aligned(4);
 
 /*
  * This function sets a miscellaneous control value.
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/imx/scu-pd.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/imx/scu-pd.c
@@ -61,7 +61,7 @@
 	struct imx_sc_rpc_msg hdr;
 	u16 resource;
 	u8 mode;
-} __packed;
+} __packed __aligned(4);
 
 #define IMX_SCU_PD_NAME_SIZE 20
 struct imx_sc_pm_domain {
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/psci/psci_checker.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/psci/psci_checker.c
@@ -157,8 +157,10 @@
 
 	cpu_groups = kcalloc(nb_available_cpus, sizeof(cpu_groups),
 			     GFP_KERNEL);
-	if (!cpu_groups)
+	if (!cpu_groups) {
+		free_cpumask_var(tmp);
 		return -ENOMEM;
+	}
 
 	cpumask_copy(tmp, cpu_online_mask);
 
@@ -167,6 +169,7 @@
 			topology_core_cpumask(cpumask_any(tmp));
 
 		if (!alloc_cpumask_var(&cpu_groups[num_groups], GFP_KERNEL)) {
+			free_cpumask_var(tmp);
 			free_cpu_groups(num_groups, &cpu_groups);
 			return -ENOMEM;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/qcom_scm-64.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/qcom_scm-64.c
@@ -150,7 +150,7 @@
 		kfree(args_virt);
 	}
 
-	if (res->a0 < 0)
+	if ((long)res->a0 < 0)
 		return qcom_scm_remap_error(res->a0);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/qcom_scm.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/qcom_scm.c
@@ -9,7 +9,6 @@
 #include <linux/init.h>
 #include <linux/cpumask.h>
 #include <linux/export.h>
-#include <linux/dma-direct.h>
 #include <linux/dma-mapping.h>
 #include <linux/module.h>
 #include <linux/types.h>
@@ -441,8 +440,7 @@
 	struct qcom_scm_mem_map_info *mem_to_map;
 	phys_addr_t mem_to_map_phys;
 	phys_addr_t dest_phys;
-	phys_addr_t ptr_phys;
-	dma_addr_t ptr_dma;
+	dma_addr_t ptr_phys;
 	size_t mem_to_map_sz;
 	size_t dest_sz;
 	size_t src_sz;
@@ -459,10 +457,9 @@
 	ptr_sz = ALIGN(src_sz, SZ_64) + ALIGN(mem_to_map_sz, SZ_64) +
 			ALIGN(dest_sz, SZ_64);
 
-	ptr = dma_alloc_coherent(__scm->dev, ptr_sz, &ptr_dma, GFP_KERNEL);
+	ptr = dma_alloc_coherent(__scm->dev, ptr_sz, &ptr_phys, GFP_KERNEL);
 	if (!ptr)
 		return -ENOMEM;
-	ptr_phys = dma_to_phys(__scm->dev, ptr_dma);
 
 	/* Fill source vmid detail */
 	src = ptr;
@@ -490,7 +487,7 @@
 
 	ret = __qcom_scm_assign_mem(__scm->dev, mem_to_map_phys, mem_to_map_sz,
 				    ptr_phys, src_sz, dest_phys, dest_sz);
-	dma_free_coherent(__scm->dev, ptr_sz, ptr, ptr_dma);
+	dma_free_coherent(__scm->dev, ptr_sz, ptr, ptr_phys);
 	if (ret) {
 		dev_err(__scm->dev,
 			"Assign memory protection call failed %d\n", ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/firmware/qemu_fw_cfg.c
+++ linux-gkeop-5.4-5.4.0/drivers/firmware/qemu_fw_cfg.c
@@ -605,8 +605,10 @@
 	/* register entry under "/sys/firmware/qemu_fw_cfg/by_key/" */
 	err = kobject_init_and_add(&entry->kobj, &fw_cfg_sysfs_entry_ktype,
 				   fw_cfg_sel_ko, "%d", entry->select);
-	if (err)
-		goto err_register;
+	if (err) {
+		kobject_put(&entry->kobj);
+		return err;
+	}
 
 	/* add raw binary content access */
 	err = sysfs_create_bin_file(&entry->kobj, &fw_cfg_sysfs_attr_raw);
@@ -622,7 +624,6 @@
 
 err_add_raw:
 	kobject_del(&entry->kobj);
-err_register:
 	kfree(entry);
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/fpga/dfl-afu-dma-region.c
+++ linux-gkeop-5.4-5.4.0/drivers/fpga/dfl-afu-dma-region.c
@@ -61,10 +61,10 @@
 				     region->pages);
 	if (pinned < 0) {
 		ret = pinned;
-		goto put_pages;
+		goto free_pages;
 	} else if (pinned != npages) {
 		ret = -EFAULT;
-		goto free_pages;
+		goto put_pages;
 	}
 
 	dev_dbg(dev, "%d pages pinned\n", pinned);
--- linux-gkeop-5.4-5.4.0.orig/drivers/fpga/dfl-afu-main.c
+++ linux-gkeop-5.4-5.4.0/drivers/fpga/dfl-afu-main.c
@@ -83,7 +83,8 @@
 	 * on this port and minimum soft reset pulse width has elapsed.
 	 * Driver polls port_soft_reset_ack to determine if reset done by HW.
 	 */
-	if (readq_poll_timeout(base + PORT_HDR_CTRL, v, v & PORT_CTRL_SFTRST,
+	if (readq_poll_timeout(base + PORT_HDR_CTRL, v,
+			       v & PORT_CTRL_SFTRST_ACK,
 			       RST_POLL_INVL, RST_POLL_TIMEOUT)) {
 		dev_err(&pdev->dev, "timeout, fail to reset device\n");
 		return -ETIMEDOUT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/fpga/dfl-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/fpga/dfl-pci.c
@@ -227,7 +227,6 @@
 {
 	struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
 	struct dfl_fpga_cdev *cdev = drvdata->cdev;
-	int ret = 0;
 
 	if (!num_vfs) {
 		/*
@@ -239,6 +238,8 @@
 		dfl_fpga_cdev_config_ports_pf(cdev);
 
 	} else {
+		int ret;
+
 		/*
 		 * before enable SRIOV, put released ports into VF access mode
 		 * first of all.
@@ -248,11 +249,13 @@
 			return ret;
 
 		ret = pci_enable_sriov(pcidev, num_vfs);
-		if (ret)
+		if (ret) {
 			dfl_fpga_cdev_config_ports_pf(cdev);
+			return ret;
+		}
 	}
 
-	return ret;
+	return num_vfs;
 }
 
 static void cci_pci_remove(struct pci_dev *pcidev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/fsi/fsi-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/fsi/fsi-core.c
@@ -544,6 +544,31 @@
 	return 0;
 }
 
+static unsigned long aligned_access_size(size_t offset, size_t count)
+{
+	unsigned long offset_unit, count_unit;
+
+	/* Criteria:
+	 *
+	 * 1. Access size must be less than or equal to the maximum access
+	 *    width or the highest power-of-two factor of offset
+	 * 2. Access size must be less than or equal to the amount specified by
+	 *    count
+	 *
+	 * The access width is optimal if we can calculate 1 to be strictly
+	 * equal while still satisfying 2.
+	 */
+
+	/* Find 1 by the bottom bit of offset (with a 4 byte access cap) */
+	offset_unit = BIT(__builtin_ctzl(offset | 4));
+
+	/* Find 2 by the top bit of count */
+	count_unit = BIT(8 * sizeof(unsigned long) - 1 - __builtin_clzl(count));
+
+	/* Constrain the maximum access width to the minimum of both criteria */
+	return BIT(__builtin_ctzl(offset_unit | count_unit));
+}
+
 static ssize_t fsi_slave_sysfs_raw_read(struct file *file,
 		struct kobject *kobj, struct bin_attribute *attr, char *buf,
 		loff_t off, size_t count)
@@ -559,8 +584,7 @@
 		return -EINVAL;
 
 	for (total_len = 0; total_len < count; total_len += read_len) {
-		read_len = min_t(size_t, count, 4);
-		read_len -= off & 0x3;
+		read_len = aligned_access_size(off, count - total_len);
 
 		rc = fsi_slave_read(slave, off, buf + total_len, read_len);
 		if (rc)
@@ -587,8 +611,7 @@
 		return -EINVAL;
 
 	for (total_len = 0; total_len < count; total_len += write_len) {
-		write_len = min_t(size_t, count, 4);
-		write_len -= off & 0x3;
+		write_len = aligned_access_size(off, count - total_len);
 
 		rc = fsi_slave_write(slave, off, buf + total_len, write_len);
 		if (rc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gnss/sirf.c
+++ linux-gkeop-5.4-5.4.0/drivers/gnss/sirf.c
@@ -439,14 +439,18 @@
 
 	data->on_off = devm_gpiod_get_optional(dev, "sirf,onoff",
 			GPIOD_OUT_LOW);
-	if (IS_ERR(data->on_off))
+	if (IS_ERR(data->on_off)) {
+		ret = PTR_ERR(data->on_off);
 		goto err_put_device;
+	}
 
 	if (data->on_off) {
 		data->wakeup = devm_gpiod_get_optional(dev, "sirf,wakeup",
 				GPIOD_IN);
-		if (IS_ERR(data->wakeup))
+		if (IS_ERR(data->wakeup)) {
+			ret = PTR_ERR(data->wakeup);
 			goto err_put_device;
+		}
 
 		ret = regulator_enable(data->vcc);
 		if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/Kconfig
@@ -546,7 +546,6 @@
 	tristate "Cavium ThunderX/OCTEON-TX GPIO"
 	depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
 	depends on PCI_MSI
-	select GPIOLIB_IRQCHIP
 	select IRQ_DOMAIN_HIERARCHY
 	select IRQ_FASTEOI_HIERARCHY_HANDLERS
 	help
@@ -1121,6 +1120,7 @@
 config GPIO_MAX77620
 	tristate "GPIO support for PMIC MAX77620 and MAX20024"
 	depends on MFD_MAX77620
+	select GPIOLIB_IRQCHIP
 	help
 	  GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
 	  MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-arizona.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-arizona.c
@@ -64,6 +64,7 @@
 		ret = pm_runtime_get_sync(chip->parent);
 		if (ret < 0) {
 			dev_err(chip->parent, "Failed to resume: %d\n", ret);
+			pm_runtime_put_autosuspend(chip->parent);
 			return ret;
 		}
 
@@ -72,12 +73,15 @@
 		if (ret < 0) {
 			dev_err(chip->parent, "Failed to drop cache: %d\n",
 				ret);
+			pm_runtime_put_autosuspend(chip->parent);
 			return ret;
 		}
 
 		ret = regmap_read(arizona->regmap, reg, &val);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put_autosuspend(chip->parent);
 			return ret;
+		}
 
 		pm_runtime_mark_last_busy(chip->parent);
 		pm_runtime_put_autosuspend(chip->parent);
@@ -106,6 +110,7 @@
 		ret = pm_runtime_get_sync(chip->parent);
 		if (ret < 0) {
 			dev_err(chip->parent, "Failed to resume: %d\n", ret);
+			pm_runtime_put(chip->parent);
 			return ret;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-aspeed.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-aspeed.c
@@ -1115,8 +1115,8 @@
 
 static const struct aspeed_bank_props ast2600_bank_props[] = {
 	/*     input	  output   */
-	{5, 0xffffffff,  0x0000ffff}, /* U/V/W/X */
-	{6, 0xffff0000,  0x0fff0000}, /* Y/Z */
+	{5, 0xffffffff,  0xffffff00}, /* U/V/W/X */
+	{6, 0x0000ffff,  0x0000ffff}, /* Y/Z */
 	{ },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-bcm-kona.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-bcm-kona.c
@@ -619,7 +619,7 @@
 
 	kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(kona_gpio->reg_base)) {
-		ret = -ENXIO;
+		ret = PTR_ERR(kona_gpio->reg_base);
 		goto err_irq_domain;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-dwapb.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-dwapb.c
@@ -49,7 +49,9 @@
 #define GPIO_EXT_PORTC		0x58
 #define GPIO_EXT_PORTD		0x5c
 
+#define DWAPB_DRIVER_NAME	"gpio-dwapb"
 #define DWAPB_MAX_PORTS		4
+
 #define GPIO_EXT_PORT_STRIDE	0x04 /* register stride 32 bits */
 #define GPIO_SWPORT_DR_STRIDE	0x0c /* register stride 3*32 bits */
 #define GPIO_SWPORT_DDR_STRIDE	0x0c /* register stride 3*32 bits */
@@ -398,7 +400,7 @@
 		return;
 
 	err = irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2,
-					     "gpio-dwapb", handle_level_irq,
+					     DWAPB_DRIVER_NAME, handle_level_irq,
 					     IRQ_NOREQUEST, 0,
 					     IRQ_GC_INIT_NESTED_LOCK);
 	if (err) {
@@ -455,7 +457,7 @@
 		 */
 		err = devm_request_irq(gpio->dev, pp->irq[0],
 				       dwapb_irq_handler_mfd,
-				       IRQF_SHARED, "gpio-dwapb-mfd", gpio);
+				       IRQF_SHARED, DWAPB_DRIVER_NAME, gpio);
 		if (err) {
 			dev_err(gpio->dev, "error requesting IRQ\n");
 			irq_domain_remove(gpio->domain);
@@ -533,26 +535,33 @@
 		dwapb_configure_irqs(gpio, port, pp);
 
 	err = gpiochip_add_data(&port->gc, port);
-	if (err)
+	if (err) {
 		dev_err(gpio->dev, "failed to register gpiochip for port%d\n",
 			port->idx);
-	else
-		port->is_registered = true;
+		return err;
+	}
 
 	/* Add GPIO-signaled ACPI event support */
-	if (pp->has_irq)
-		acpi_gpiochip_request_interrupts(&port->gc);
+	acpi_gpiochip_request_interrupts(&port->gc);
 
-	return err;
+	port->is_registered = true;
+
+	return 0;
 }
 
 static void dwapb_gpio_unregister(struct dwapb_gpio *gpio)
 {
 	unsigned int m;
 
-	for (m = 0; m < gpio->nr_ports; ++m)
-		if (gpio->ports[m].is_registered)
-			gpiochip_remove(&gpio->ports[m].gc);
+	for (m = 0; m < gpio->nr_ports; ++m) {
+		struct dwapb_gpio_port *port = &gpio->ports[m];
+
+		if (!port->is_registered)
+			continue;
+
+		acpi_gpiochip_free_interrupts(&port->gc);
+		gpiochip_remove(&port->gc);
+	}
 }
 
 static struct dwapb_platform_data *
@@ -836,7 +845,7 @@
 
 static struct platform_driver dwapb_gpio_driver = {
 	.driver		= {
-		.name	= "gpio-dwapb",
+		.name	= DWAPB_DRIVER_NAME,
 		.pm	= &dwapb_gpio_pm_ops,
 		.of_match_table = of_match_ptr(dwapb_of_match),
 		.acpi_match_table = ACPI_PTR(dwapb_acpi_match),
@@ -850,3 +859,4 @@
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Jamie Iles");
 MODULE_DESCRIPTION("Synopsys DesignWare APB GPIO driver");
+MODULE_ALIAS("platform:" DWAPB_DRIVER_NAME);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-eic-sprd.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-eic-sprd.c
@@ -569,6 +569,7 @@
 	const struct sprd_eic_variant_data *pdata;
 	struct gpio_irq_chip *irq;
 	struct sprd_eic *sprd_eic;
+	struct resource *res;
 	int ret, i;
 
 	pdata = of_device_get_match_data(&pdev->dev);
@@ -595,9 +596,13 @@
 		 * have one bank EIC, thus base[1] and base[2] can be
 		 * optional.
 		 */
-		sprd_eic->base[i] = devm_platform_ioremap_resource(pdev, i);
+		res = platform_get_resource(pdev, IORESOURCE_MEM, i);
+		if (!res)
+			break;
+
+		sprd_eic->base[i] = devm_ioremap_resource(&pdev->dev, res);
 		if (IS_ERR(sprd_eic->base[i]))
-			continue;
+			return PTR_ERR(sprd_eic->base[i]);
 	}
 
 	sprd_eic->chip.label = sprd_eic_label_name[sprd_eic->type];
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-ep93xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-ep93xx.c
@@ -25,6 +25,9 @@
 /* Maximum value for gpio line identifiers */
 #define EP93XX_GPIO_LINE_MAX 63
 
+/* Number of GPIO chips in EP93XX */
+#define EP93XX_GPIO_CHIP_NUM 8
+
 /* Maximum value for irq capable line identifiers */
 #define EP93XX_GPIO_LINE_MAX_IRQ 23
 
@@ -34,74 +37,75 @@
  */
 #define EP93XX_GPIO_F_IRQ_BASE 80
 
+struct ep93xx_gpio_irq_chip {
+	struct irq_chip ic;
+	u8 irq_offset;
+	u8 int_unmasked;
+	u8 int_enabled;
+	u8 int_type1;
+	u8 int_type2;
+	u8 int_debounce;
+};
+
+struct ep93xx_gpio_chip {
+	struct gpio_chip		gc;
+	struct ep93xx_gpio_irq_chip	*eic;
+};
+
 struct ep93xx_gpio {
 	void __iomem		*base;
-	struct gpio_chip	gc[8];
+	struct ep93xx_gpio_chip	gc[EP93XX_GPIO_CHIP_NUM];
 };
 
-/*************************************************************************
- * Interrupt handling for EP93xx on-chip GPIOs
- *************************************************************************/
-static unsigned char gpio_int_unmasked[3];
-static unsigned char gpio_int_enabled[3];
-static unsigned char gpio_int_type1[3];
-static unsigned char gpio_int_type2[3];
-static unsigned char gpio_int_debounce[3];
-
-/* Port ordering is: A B F */
-static const u8 int_type1_register_offset[3]	= { 0x90, 0xac, 0x4c };
-static const u8 int_type2_register_offset[3]	= { 0x94, 0xb0, 0x50 };
-static const u8 eoi_register_offset[3]		= { 0x98, 0xb4, 0x54 };
-static const u8 int_en_register_offset[3]	= { 0x9c, 0xb8, 0x58 };
-static const u8 int_debounce_register_offset[3]	= { 0xa8, 0xc4, 0x64 };
+#define to_ep93xx_gpio_chip(x) container_of(x, struct ep93xx_gpio_chip, gc)
 
-static void ep93xx_gpio_update_int_params(struct ep93xx_gpio *epg, unsigned port)
+static struct ep93xx_gpio_irq_chip *to_ep93xx_gpio_irq_chip(struct gpio_chip *gc)
 {
-	BUG_ON(port > 2);
-
-	writeb_relaxed(0, epg->base + int_en_register_offset[port]);
+	struct ep93xx_gpio_chip *egc = to_ep93xx_gpio_chip(gc);
 
-	writeb_relaxed(gpio_int_type2[port],
-		       epg->base + int_type2_register_offset[port]);
-
-	writeb_relaxed(gpio_int_type1[port],
-		       epg->base + int_type1_register_offset[port]);
-
-	writeb(gpio_int_unmasked[port] & gpio_int_enabled[port],
-	       epg->base + int_en_register_offset[port]);
+	return egc->eic;
 }
 
-static int ep93xx_gpio_port(struct gpio_chip *gc)
-{
-	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = 0;
+/*************************************************************************
+ * Interrupt handling for EP93xx on-chip GPIOs
+ *************************************************************************/
+#define EP93XX_INT_TYPE1_OFFSET		0x00
+#define EP93XX_INT_TYPE2_OFFSET		0x04
+#define EP93XX_INT_EOI_OFFSET		0x08
+#define EP93XX_INT_EN_OFFSET		0x0c
+#define EP93XX_INT_STATUS_OFFSET	0x10
+#define EP93XX_INT_RAW_STATUS_OFFSET	0x14
+#define EP93XX_INT_DEBOUNCE_OFFSET	0x18
+
+static void ep93xx_gpio_update_int_params(struct ep93xx_gpio *epg,
+					  struct ep93xx_gpio_irq_chip *eic)
+{
+	writeb_relaxed(0, epg->base + eic->irq_offset + EP93XX_INT_EN_OFFSET);
 
-	while (port < ARRAY_SIZE(epg->gc) && gc != &epg->gc[port])
-		port++;
+	writeb_relaxed(eic->int_type2,
+		       epg->base + eic->irq_offset + EP93XX_INT_TYPE2_OFFSET);
 
-	/* This should not happen but is there as a last safeguard */
-	if (port == ARRAY_SIZE(epg->gc)) {
-		pr_crit("can't find the GPIO port\n");
-		return 0;
-	}
+	writeb_relaxed(eic->int_type1,
+		       epg->base + eic->irq_offset + EP93XX_INT_TYPE1_OFFSET);
 
-	return port;
+	writeb_relaxed(eic->int_unmasked & eic->int_enabled,
+		       epg->base + eic->irq_offset + EP93XX_INT_EN_OFFSET);
 }
 
 static void ep93xx_gpio_int_debounce(struct gpio_chip *gc,
 				     unsigned int offset, bool enable)
 {
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	int port_mask = BIT(offset);
 
 	if (enable)
-		gpio_int_debounce[port] |= port_mask;
+		eic->int_debounce |= port_mask;
 	else
-		gpio_int_debounce[port] &= ~port_mask;
+		eic->int_debounce &= ~port_mask;
 
-	writeb(gpio_int_debounce[port],
-	       epg->base + int_debounce_register_offset[port]);
+	writeb(eic->int_debounce,
+	       epg->base + eic->irq_offset + EP93XX_INT_DEBOUNCE_OFFSET);
 }
 
 static void ep93xx_gpio_ab_irq_handler(struct irq_desc *desc)
@@ -122,12 +126,12 @@
 	 */
 	stat = readb(epg->base + EP93XX_GPIO_A_INT_STATUS);
 	for_each_set_bit(offset, &stat, 8)
-		generic_handle_irq(irq_find_mapping(epg->gc[0].irq.domain,
+		generic_handle_irq(irq_find_mapping(epg->gc[0].gc.irq.domain,
 						    offset));
 
 	stat = readb(epg->base + EP93XX_GPIO_B_INT_STATUS);
 	for_each_set_bit(offset, &stat, 8)
-		generic_handle_irq(irq_find_mapping(epg->gc[1].irq.domain,
+		generic_handle_irq(irq_find_mapping(epg->gc[1].gc.irq.domain,
 						    offset));
 
 	chained_irq_exit(irqchip, desc);
@@ -153,52 +157,52 @@
 static void ep93xx_gpio_irq_ack(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 	int port_mask = BIT(d->irq & 7);
 
 	if (irqd_get_trigger_type(d) == IRQ_TYPE_EDGE_BOTH) {
-		gpio_int_type2[port] ^= port_mask; /* switch edge direction */
-		ep93xx_gpio_update_int_params(epg, port);
+		eic->int_type2 ^= port_mask; /* switch edge direction */
+		ep93xx_gpio_update_int_params(epg, eic);
 	}
 
-	writeb(port_mask, epg->base + eoi_register_offset[port]);
+	writeb(port_mask, epg->base + eic->irq_offset + EP93XX_INT_EOI_OFFSET);
 }
 
 static void ep93xx_gpio_irq_mask_ack(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 	int port_mask = BIT(d->irq & 7);
 
 	if (irqd_get_trigger_type(d) == IRQ_TYPE_EDGE_BOTH)
-		gpio_int_type2[port] ^= port_mask; /* switch edge direction */
+		eic->int_type2 ^= port_mask; /* switch edge direction */
 
-	gpio_int_unmasked[port] &= ~port_mask;
-	ep93xx_gpio_update_int_params(epg, port);
+	eic->int_unmasked &= ~port_mask;
+	ep93xx_gpio_update_int_params(epg, eic);
 
-	writeb(port_mask, epg->base + eoi_register_offset[port]);
+	writeb(port_mask, epg->base + eic->irq_offset + EP93XX_INT_EOI_OFFSET);
 }
 
 static void ep93xx_gpio_irq_mask(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 
-	gpio_int_unmasked[port] &= ~BIT(d->irq & 7);
-	ep93xx_gpio_update_int_params(epg, port);
+	eic->int_unmasked &= ~BIT(d->irq & 7);
+	ep93xx_gpio_update_int_params(epg, eic);
 }
 
 static void ep93xx_gpio_irq_unmask(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 
-	gpio_int_unmasked[port] |= BIT(d->irq & 7);
-	ep93xx_gpio_update_int_params(epg, port);
+	eic->int_unmasked |= BIT(d->irq & 7);
+	ep93xx_gpio_update_int_params(epg, eic);
 }
 
 /*
@@ -209,8 +213,8 @@
 static int ep93xx_gpio_irq_type(struct irq_data *d, unsigned int type)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 	int offset = d->irq & 7;
 	int port_mask = BIT(offset);
 	irq_flow_handler_t handler;
@@ -219,32 +223,32 @@
 
 	switch (type) {
 	case IRQ_TYPE_EDGE_RISING:
-		gpio_int_type1[port] |= port_mask;
-		gpio_int_type2[port] |= port_mask;
+		eic->int_type1 |= port_mask;
+		eic->int_type2 |= port_mask;
 		handler = handle_edge_irq;
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
-		gpio_int_type1[port] |= port_mask;
-		gpio_int_type2[port] &= ~port_mask;
+		eic->int_type1 |= port_mask;
+		eic->int_type2 &= ~port_mask;
 		handler = handle_edge_irq;
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
-		gpio_int_type1[port] &= ~port_mask;
-		gpio_int_type2[port] |= port_mask;
+		eic->int_type1 &= ~port_mask;
+		eic->int_type2 |= port_mask;
 		handler = handle_level_irq;
 		break;
 	case IRQ_TYPE_LEVEL_LOW:
-		gpio_int_type1[port] &= ~port_mask;
-		gpio_int_type2[port] &= ~port_mask;
+		eic->int_type1 &= ~port_mask;
+		eic->int_type2 &= ~port_mask;
 		handler = handle_level_irq;
 		break;
 	case IRQ_TYPE_EDGE_BOTH:
-		gpio_int_type1[port] |= port_mask;
+		eic->int_type1 |= port_mask;
 		/* set initial polarity based on current input level */
 		if (gc->get(gc, offset))
-			gpio_int_type2[port] &= ~port_mask; /* falling */
+			eic->int_type2 &= ~port_mask; /* falling */
 		else
-			gpio_int_type2[port] |= port_mask; /* rising */
+			eic->int_type2 |= port_mask; /* rising */
 		handler = handle_edge_irq;
 		break;
 	default:
@@ -253,22 +257,13 @@
 
 	irq_set_handler_locked(d, handler);
 
-	gpio_int_enabled[port] |= port_mask;
+	eic->int_enabled |= port_mask;
 
-	ep93xx_gpio_update_int_params(epg, port);
+	ep93xx_gpio_update_int_params(epg, eic);
 
 	return 0;
 }
 
-static struct irq_chip ep93xx_gpio_irq_chip = {
-	.name		= "GPIO",
-	.irq_ack	= ep93xx_gpio_irq_ack,
-	.irq_mask_ack	= ep93xx_gpio_irq_mask_ack,
-	.irq_mask	= ep93xx_gpio_irq_mask,
-	.irq_unmask	= ep93xx_gpio_irq_unmask,
-	.irq_set_type	= ep93xx_gpio_irq_type,
-};
-
 /*************************************************************************
  * gpiolib interface for EP93xx on-chip GPIOs
  *************************************************************************/
@@ -276,17 +271,19 @@
 	const char	*label;
 	int		data;
 	int		dir;
+	int		irq;
 	int		base;
 	bool		has_irq;
 	bool		has_hierarchical_irq;
 	unsigned int	irq_base;
 };
 
-#define EP93XX_GPIO_BANK(_label, _data, _dir, _base, _has_irq, _has_hier, _irq_base) \
+#define EP93XX_GPIO_BANK(_label, _data, _dir, _irq, _base, _has_irq, _has_hier, _irq_base) \
 	{							\
 		.label		= _label,			\
 		.data		= _data,			\
 		.dir		= _dir,				\
+		.irq		= _irq,				\
 		.base		= _base,			\
 		.has_irq	= _has_irq,			\
 		.has_hierarchical_irq = _has_hier,		\
@@ -295,16 +292,16 @@
 
 static struct ep93xx_gpio_bank ep93xx_gpio_banks[] = {
 	/* Bank A has 8 IRQs */
-	EP93XX_GPIO_BANK("A", 0x00, 0x10, 0, true, false, 64),
+	EP93XX_GPIO_BANK("A", 0x00, 0x10, 0x90, 0, true, false, 64),
 	/* Bank B has 8 IRQs */
-	EP93XX_GPIO_BANK("B", 0x04, 0x14, 8, true, false, 72),
-	EP93XX_GPIO_BANK("C", 0x08, 0x18, 40, false, false, 0),
-	EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24, false, false, 0),
-	EP93XX_GPIO_BANK("E", 0x20, 0x24, 32, false, false, 0),
+	EP93XX_GPIO_BANK("B", 0x04, 0x14, 0xac, 8, true, false, 72),
+	EP93XX_GPIO_BANK("C", 0x08, 0x18, 0x00, 40, false, false, 0),
+	EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 0x00, 24, false, false, 0),
+	EP93XX_GPIO_BANK("E", 0x20, 0x24, 0x00, 32, false, false, 0),
 	/* Bank F has 8 IRQs */
-	EP93XX_GPIO_BANK("F", 0x30, 0x34, 16, false, true, 0),
-	EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48, false, false, 0),
-	EP93XX_GPIO_BANK("H", 0x40, 0x44, 56, false, false, 0),
+	EP93XX_GPIO_BANK("F", 0x30, 0x34, 0x4c, 16, false, true, 0),
+	EP93XX_GPIO_BANK("G", 0x38, 0x3c, 0x00, 48, false, false, 0),
+	EP93XX_GPIO_BANK("H", 0x40, 0x44, 0x00, 56, false, false, 0),
 };
 
 static int ep93xx_gpio_set_config(struct gpio_chip *gc, unsigned offset,
@@ -326,13 +323,23 @@
 	return EP93XX_GPIO_F_IRQ_BASE + offset;
 }
 
-static int ep93xx_gpio_add_bank(struct gpio_chip *gc,
+static void ep93xx_init_irq_chip(struct device *dev, struct irq_chip *ic)
+{
+	ic->irq_ack = ep93xx_gpio_irq_ack;
+	ic->irq_mask_ack = ep93xx_gpio_irq_mask_ack;
+	ic->irq_mask = ep93xx_gpio_irq_mask;
+	ic->irq_unmask = ep93xx_gpio_irq_unmask;
+	ic->irq_set_type = ep93xx_gpio_irq_type;
+}
+
+static int ep93xx_gpio_add_bank(struct ep93xx_gpio_chip *egc,
 				struct platform_device *pdev,
 				struct ep93xx_gpio *epg,
 				struct ep93xx_gpio_bank *bank)
 {
 	void __iomem *data = epg->base + bank->data;
 	void __iomem *dir = epg->base + bank->dir;
+	struct gpio_chip *gc = &egc->gc;
 	struct device *dev = &pdev->dev;
 	struct gpio_irq_chip *girq;
 	int err;
@@ -346,8 +353,21 @@
 
 	girq = &gc->irq;
 	if (bank->has_irq || bank->has_hierarchical_irq) {
+		struct irq_chip *ic;
+
 		gc->set_config = ep93xx_gpio_set_config;
-		girq->chip = &ep93xx_gpio_irq_chip;
+		egc->eic = devm_kcalloc(dev, 1,
+					sizeof(*egc->eic),
+					GFP_KERNEL);
+		if (!egc->eic)
+			return -ENOMEM;
+		egc->eic->irq_offset = bank->irq;
+		ic = &egc->eic->ic;
+		ic->name = devm_kasprintf(dev, GFP_KERNEL, "gpio-irq-%s", bank->label);
+		if (!ic->name)
+			return -ENOMEM;
+		ep93xx_init_irq_chip(dev, ic);
+		girq->chip = ic;
 	}
 
 	if (bank->has_irq) {
@@ -389,7 +409,7 @@
 			gpio_irq = EP93XX_GPIO_F_IRQ_BASE + i;
 			irq_set_chip_data(gpio_irq, &epg->gc[5]);
 			irq_set_chip_and_handler(gpio_irq,
-						 &ep93xx_gpio_irq_chip,
+						 girq->chip,
 						 handle_level_irq);
 			irq_clear_status_flags(gpio_irq, IRQ_NOREQUEST);
 		}
@@ -415,7 +435,7 @@
 		return PTR_ERR(epg->base);
 
 	for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) {
-		struct gpio_chip *gc = &epg->gc[i];
+		struct ep93xx_gpio_chip *gc = &epg->gc[i];
 		struct ep93xx_gpio_bank *bank = &ep93xx_gpio_banks[i];
 
 		if (ep93xx_gpio_add_bank(gc, pdev, epg, bank))
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-exar.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-exar.c
@@ -145,8 +145,10 @@
 	mutex_init(&exar_gpio->lock);
 
 	index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
-	if (index < 0)
-		goto err_destroy;
+	if (index < 0) {
+		ret = index;
+		goto err_mutex_destroy;
+	}
 
 	sprintf(exar_gpio->name, "exar_gpio%d", index);
 	exar_gpio->gpio_chip.label = exar_gpio->name;
@@ -173,6 +175,7 @@
 
 err_destroy:
 	ida_simple_remove(&ida_index, index);
+err_mutex_destroy:
 	mutex_destroy(&exar_gpio->lock);
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-grgpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-grgpio.c
@@ -253,17 +253,16 @@
 	lirq->irq = irq;
 	uirq = &priv->uirqs[lirq->index];
 	if (uirq->refcnt == 0) {
+		spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 		ret = request_irq(uirq->uirq, grgpio_irq_handler, 0,
 				  dev_name(priv->dev), priv);
 		if (ret) {
 			dev_err(priv->dev,
 				"Could not request underlying irq %d\n",
 				uirq->uirq);
-
-			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
-
 			return ret;
 		}
+		spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 	}
 	uirq->refcnt++;
 
@@ -309,8 +308,11 @@
 	if (index >= 0) {
 		uirq = &priv->uirqs[lirq->index];
 		uirq->refcnt--;
-		if (uirq->refcnt == 0)
+		if (uirq->refcnt == 0) {
+			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 			free_irq(uirq->uirq, priv);
+			return;
+		}
 	}
 
 	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-lynxpoint.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-lynxpoint.c
@@ -164,6 +164,12 @@
 		value |= TRIG_SEL_BIT | INT_INV_BIT;
 
 	outl(value, reg);
+
+	if (type & IRQ_TYPE_EDGE_BOTH)
+		irq_set_handler_locked(d, handle_edge_irq);
+	else if (type & IRQ_TYPE_LEVEL_MASK)
+		irq_set_handler_locked(d, handle_level_irq);
+
 	spin_unlock_irqrestore(&lg->lock, flags);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-mockup.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-mockup.c
@@ -497,6 +497,7 @@
 	err = platform_driver_register(&gpio_mockup_driver);
 	if (err) {
 		gpio_mockup_err("error registering platform driver\n");
+		debugfs_remove_recursive(gpio_mockup_dbg_dir);
 		return err;
 	}
 
@@ -527,6 +528,7 @@
 			gpio_mockup_err("error registering device");
 			platform_driver_unregister(&gpio_mockup_driver);
 			gpio_mockup_unregister_pdevs();
+			debugfs_remove_recursive(gpio_mockup_dbg_dir);
 			return PTR_ERR(pdev);
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-mpc8xxx.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-mpc8xxx.c
@@ -346,6 +346,7 @@
 		return -ENOMEM;
 
 	gc = &mpc8xxx_gc->gc;
+	gc->parent = &pdev->dev;
 
 	if (of_property_read_bool(np, "little-endian")) {
 		ret = bgpio_init(gc, &pdev->dev, 4,
@@ -377,7 +378,8 @@
 	 * It's assumed that only a single type of gpio controller is available
 	 * on the current machine, so overwriting global data is fine.
 	 */
-	mpc8xxx_irq_chip.irq_set_type = devtype->irq_set_type;
+	if (devtype->irq_set_type)
+		mpc8xxx_irq_chip.irq_set_type = devtype->irq_set_type;
 
 	if (devtype->gpio_dir_out)
 		gc->direction_output = devtype->gpio_dir_out;
@@ -386,6 +388,9 @@
 
 	gc->to_irq = mpc8xxx_gpio_to_irq;
 
+	if (of_device_is_compatible(np, "fsl,qoriq-gpio"))
+		gc->write_reg(mpc8xxx_gc->regs + GPIO_IBE, 0xffffffff);
+
 	ret = gpiochip_add_data(gc, mpc8xxx_gc);
 	if (ret) {
 		pr_err("%pOF: GPIO chip registration failed with status %d\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-mvebu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-mvebu.c
@@ -657,9 +657,8 @@
 
 	spin_lock_irqsave(&mvpwm->lock, flags);
 
-	val = (unsigned long long)
-		readl_relaxed(mvebu_pwmreg_blink_on_duration(mvpwm));
-	val *= NSEC_PER_SEC;
+	u = readl_relaxed(mvebu_pwmreg_blink_on_duration(mvpwm));
+	val = (unsigned long long) u * NSEC_PER_SEC;
 	do_div(val, mvpwm->clk_rate);
 	if (val > UINT_MAX)
 		state->duty_cycle = UINT_MAX;
@@ -668,21 +667,17 @@
 	else
 		state->duty_cycle = 1;
 
-	val = (unsigned long long)
-		readl_relaxed(mvebu_pwmreg_blink_off_duration(mvpwm));
+	val = (unsigned long long) u; /* on duration */
+	/* period = on + off duration */
+	val += readl_relaxed(mvebu_pwmreg_blink_off_duration(mvpwm));
 	val *= NSEC_PER_SEC;
 	do_div(val, mvpwm->clk_rate);
-	if (val < state->duty_cycle) {
+	if (val > UINT_MAX)
+		state->period = UINT_MAX;
+	else if (val)
+		state->period = val;
+	else
 		state->period = 1;
-	} else {
-		val -= state->duty_cycle;
-		if (val > UINT_MAX)
-			state->period = UINT_MAX;
-		else if (val)
-			state->period = val;
-		else
-			state->period = 1;
-	}
 
 	regmap_read(mvchip->regs, GPIO_BLINK_EN_OFF + mvchip->offset, &u);
 	if (u)
@@ -1196,6 +1191,13 @@
 
 	devm_gpiochip_add_data(&pdev->dev, &mvchip->chip, mvchip);
 
+	/* Some MVEBU SoCs have simple PWM support for GPIO lines */
+	if (IS_ENABLED(CONFIG_PWM)) {
+		err = mvebu_pwm_probe(pdev, mvchip, id);
+		if (err)
+			return err;
+	}
+
 	/* Some gpio controllers do not provide irq support */
 	if (!have_irqs)
 		return 0;
@@ -1205,7 +1207,8 @@
 	if (!mvchip->domain) {
 		dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n",
 			mvchip->chip.label);
-		return -ENODEV;
+		err = -ENODEV;
+		goto err_pwm;
 	}
 
 	err = irq_alloc_domain_generic_chips(
@@ -1253,14 +1256,12 @@
 						 mvchip);
 	}
 
-	/* Some MVEBU SoCs have simple PWM support for GPIO lines */
-	if (IS_ENABLED(CONFIG_PWM))
-		return mvebu_pwm_probe(pdev, mvchip, id);
-
 	return 0;
 
 err_domain:
 	irq_domain_remove(mvchip->domain);
+err_pwm:
+	pwmchip_remove(&mvchip->mvpwm->chip);
 
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-mxc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-mxc.c
@@ -411,6 +411,7 @@
 {
 	struct device_node *np = pdev->dev.of_node;
 	struct mxc_gpio_port *port;
+	int irq_count;
 	int irq_base;
 	int err;
 
@@ -426,9 +427,15 @@
 	if (IS_ERR(port->base))
 		return PTR_ERR(port->base);
 
-	port->irq_high = platform_get_irq(pdev, 1);
-	if (port->irq_high < 0)
-		port->irq_high = 0;
+	irq_count = platform_irq_count(pdev);
+	if (irq_count < 0)
+		return irq_count;
+
+	if (irq_count > 1) {
+		port->irq_high = platform_get_irq(pdev, 1);
+		if (port->irq_high < 0)
+			port->irq_high = 0;
+	}
 
 	port->irq = platform_get_irq(pdev, 0);
 	if (port->irq < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-pca953x.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-pca953x.c
@@ -107,6 +107,84 @@
 };
 MODULE_DEVICE_TABLE(i2c, pca953x_id);
 
+#ifdef CONFIG_GPIO_PCA953X_IRQ
+
+#include <linux/dmi.h>
+#include <linux/gpio.h>
+#include <linux/list.h>
+
+static const struct dmi_system_id pca953x_dmi_acpi_irq_info[] = {
+	{
+		/*
+		 * On Intel Galileo Gen 2 board the IRQ pin of one of
+		 * the I²C GPIO expanders, which has GpioInt() resource,
+		 * is provided as an absolute number instead of being
+		 * relative. Since first controller (gpio-sch.c) and
+		 * second (gpio-dwapb.c) are at the fixed bases, we may
+		 * safely refer to the number in the global space to get
+		 * an IRQ out of it.
+		 */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_BOARD_NAME, "GalileoGen2"),
+		},
+	},
+	{}
+};
+
+#ifdef CONFIG_ACPI
+static int pca953x_acpi_get_pin(struct acpi_resource *ares, void *data)
+{
+	struct acpi_resource_gpio *agpio;
+	int *pin = data;
+
+	if (acpi_gpio_get_irq_resource(ares, &agpio))
+		*pin = agpio->pin_table[0];
+	return 1;
+}
+
+static int pca953x_acpi_find_pin(struct device *dev)
+{
+	struct acpi_device *adev = ACPI_COMPANION(dev);
+	int pin = -ENOENT, ret;
+	LIST_HEAD(r);
+
+	ret = acpi_dev_get_resources(adev, &r, pca953x_acpi_get_pin, &pin);
+	acpi_dev_free_resource_list(&r);
+	if (ret < 0)
+		return ret;
+
+	return pin;
+}
+#else
+static inline int pca953x_acpi_find_pin(struct device *dev) { return -ENXIO; }
+#endif
+
+static int pca953x_acpi_get_irq(struct device *dev)
+{
+	int pin, ret;
+
+	pin = pca953x_acpi_find_pin(dev);
+	if (pin < 0)
+		return pin;
+
+	dev_info(dev, "Applying ACPI interrupt quirk (GPIO %d)\n", pin);
+
+	if (!gpio_is_valid(pin))
+		return -EINVAL;
+
+	ret = gpio_request(pin, "pca953x interrupt");
+	if (ret)
+		return ret;
+
+	ret = gpio_to_irq(pin);
+
+	/* When pin is used as an IRQ, no need to keep it requested */
+	gpio_free(pin);
+
+	return ret;
+}
+#endif
+
 static const struct acpi_device_id pca953x_acpi_ids[] = {
 	{ "INT3491", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
 	{ }
@@ -306,8 +384,23 @@
 	.volatile_reg = pca953x_volatile_register,
 
 	.cache_type = REGCACHE_RBTREE,
-	/* REVISIT: should be 0x7f but some 24 bit chips use REG_ADDR_AI */
-	.max_register = 0xff,
+	.max_register = 0x7f,
+};
+
+static const struct regmap_config pca953x_ai_i2c_regmap = {
+	.reg_bits = 8,
+	.val_bits = 8,
+
+	.read_flag_mask = REG_ADDR_AI,
+	.write_flag_mask = REG_ADDR_AI,
+
+	.readable_reg = pca953x_readable_register,
+	.writeable_reg = pca953x_writeable_register,
+	.volatile_reg = pca953x_volatile_register,
+
+	.disable_locking = true,
+	.cache_type = REGCACHE_RBTREE,
+	.max_register = 0x7f,
 };
 
 static u8 pca953x_recalc_addr(struct pca953x_chip *chip, int reg, int off,
@@ -318,18 +411,6 @@
 	int pinctrl = (reg & PCAL_PINCTRL_MASK) << 1;
 	u8 regaddr = pinctrl | addr | (off / BANK_SZ);
 
-	/* Single byte read doesn't need AI bit set. */
-	if (!addrinc)
-		return regaddr;
-
-	/* Chips with 24 and more GPIOs always support Auto Increment */
-	if (write && NBANK(chip) > 2)
-		regaddr |= REG_ADDR_AI;
-
-	/* PCA9575 needs address-increment on multi-byte writes */
-	if (PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE)
-		regaddr |= REG_ADDR_AI;
-
 	return regaddr;
 }
 
@@ -528,7 +609,7 @@
 {
 	struct pca953x_chip *chip = gpiochip_get_data(gc);
 
-	switch (config) {
+	switch (pinconf_to_config_param(config)) {
 	case PIN_CONFIG_BIAS_PULL_UP:
 	case PIN_CONFIG_BIAS_PULL_DOWN:
 		return pca953x_gpio_set_pull_up_down(chip, offset, config);
@@ -770,6 +851,12 @@
 	u8 reg_direction[MAX_BANK];
 	int ret, i;
 
+	if (dmi_first_match(pca953x_dmi_acpi_irq_info)) {
+		ret = pca953x_acpi_get_irq(&client->dev);
+		if (ret > 0)
+			client->irq = ret;
+	}
+
 	if (!client->irq)
 		return 0;
 
@@ -897,6 +984,7 @@
 	int ret;
 	u32 invert = 0;
 	struct regulator *reg;
+	const struct regmap_config *regmap_config;
 
 	chip = devm_kzalloc(&client->dev,
 			sizeof(struct pca953x_chip), GFP_KERNEL);
@@ -960,7 +1048,17 @@
 
 	i2c_set_clientdata(client, chip);
 
-	chip->regmap = devm_regmap_init_i2c(client, &pca953x_i2c_regmap);
+	pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK);
+
+	if (NBANK(chip) > 2 || PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE) {
+		dev_info(&client->dev, "using AI\n");
+		regmap_config = &pca953x_ai_i2c_regmap;
+	} else {
+		dev_info(&client->dev, "using no AI\n");
+		regmap_config = &pca953x_i2c_regmap;
+	}
+
+	chip->regmap = devm_regmap_init_i2c(client, regmap_config);
 	if (IS_ERR(chip->regmap)) {
 		ret = PTR_ERR(chip->regmap);
 		goto err_exit;
@@ -991,7 +1089,6 @@
 	/* initialize cached registers from their original values.
 	 * we can't share this chip with another i2c master.
 	 */
-	pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK);
 
 	if (PCA_CHIP_TYPE(chip->driver_data) == PCA953X_TYPE) {
 		chip->regs = &pca953x_regs;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-pcf857x.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-pcf857x.c
@@ -332,7 +332,7 @@
 	 * reset state.  Otherwise it flags pins to be driven low.
 	 */
 	gpio->out = ~n_latch;
-	gpio->status = gpio->out;
+	gpio->status = gpio->read(gpio->client);
 
 	status = devm_gpiochip_add_data(&client->dev, &gpio->chip, gpio);
 	if (status < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-pcie-idio-24.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-pcie-idio-24.c
@@ -28,6 +28,47 @@
 #include <linux/spinlock.h>
 #include <linux/types.h>
 
+/*
+ * PLX PEX8311 PCI LCS_INTCSR Interrupt Control/Status
+ *
+ * Bit: Description
+ *   0: Enable Interrupt Sources (Bit 0)
+ *   1: Enable Interrupt Sources (Bit 1)
+ *   2: Generate Internal PCI Bus Internal SERR# Interrupt
+ *   3: Mailbox Interrupt Enable
+ *   4: Power Management Interrupt Enable
+ *   5: Power Management Interrupt
+ *   6: Slave Read Local Data Parity Check Error Enable
+ *   7: Slave Read Local Data Parity Check Error Status
+ *   8: Internal PCI Wire Interrupt Enable
+ *   9: PCI Express Doorbell Interrupt Enable
+ *  10: PCI Abort Interrupt Enable
+ *  11: Local Interrupt Input Enable
+ *  12: Retry Abort Enable
+ *  13: PCI Express Doorbell Interrupt Active
+ *  14: PCI Abort Interrupt Active
+ *  15: Local Interrupt Input Active
+ *  16: Local Interrupt Output Enable
+ *  17: Local Doorbell Interrupt Enable
+ *  18: DMA Channel 0 Interrupt Enable
+ *  19: DMA Channel 1 Interrupt Enable
+ *  20: Local Doorbell Interrupt Active
+ *  21: DMA Channel 0 Interrupt Active
+ *  22: DMA Channel 1 Interrupt Active
+ *  23: Built-In Self-Test (BIST) Interrupt Active
+ *  24: Direct Master was the Bus Master during a Master or Target Abort
+ *  25: DMA Channel 0 was the Bus Master during a Master or Target Abort
+ *  26: DMA Channel 1 was the Bus Master during a Master or Target Abort
+ *  27: Target Abort after internal 256 consecutive Master Retrys
+ *  28: PCI Bus wrote data to LCS_MBOX0
+ *  29: PCI Bus wrote data to LCS_MBOX1
+ *  30: PCI Bus wrote data to LCS_MBOX2
+ *  31: PCI Bus wrote data to LCS_MBOX3
+ */
+#define PLX_PEX8311_PCI_LCS_INTCSR  0x68
+#define INTCSR_INTERNAL_PCI_WIRE    BIT(8)
+#define INTCSR_LOCAL_INPUT          BIT(11)
+
 /**
  * struct idio_24_gpio_reg - GPIO device registers structure
  * @out0_7:	Read: FET Outputs 0-7
@@ -92,6 +133,7 @@
 struct idio_24_gpio {
 	struct gpio_chip chip;
 	raw_spinlock_t lock;
+	__u8 __iomem *plx;
 	struct idio_24_gpio_reg __iomem *reg;
 	unsigned long irq_mask;
 };
@@ -360,13 +402,13 @@
 	unsigned long flags;
 	const unsigned long bit_offset = irqd_to_hwirq(data) - 24;
 	unsigned char new_irq_mask;
-	const unsigned long bank_offset = bit_offset/8 * 8;
+	const unsigned long bank_offset = bit_offset / 8;
 	unsigned char cos_enable_state;
 
 	raw_spin_lock_irqsave(&idio24gpio->lock, flags);
 
-	idio24gpio->irq_mask &= BIT(bit_offset);
-	new_irq_mask = idio24gpio->irq_mask >> bank_offset;
+	idio24gpio->irq_mask &= ~BIT(bit_offset);
+	new_irq_mask = idio24gpio->irq_mask >> bank_offset * 8;
 
 	if (!new_irq_mask) {
 		cos_enable_state = ioread8(&idio24gpio->reg->cos_enable);
@@ -389,12 +431,12 @@
 	unsigned long flags;
 	unsigned char prev_irq_mask;
 	const unsigned long bit_offset = irqd_to_hwirq(data) - 24;
-	const unsigned long bank_offset = bit_offset/8 * 8;
+	const unsigned long bank_offset = bit_offset / 8;
 	unsigned char cos_enable_state;
 
 	raw_spin_lock_irqsave(&idio24gpio->lock, flags);
 
-	prev_irq_mask = idio24gpio->irq_mask >> bank_offset;
+	prev_irq_mask = idio24gpio->irq_mask >> bank_offset * 8;
 	idio24gpio->irq_mask |= BIT(bit_offset);
 
 	if (!prev_irq_mask) {
@@ -481,6 +523,7 @@
 	struct device *const dev = &pdev->dev;
 	struct idio_24_gpio *idio24gpio;
 	int err;
+	const size_t pci_plx_bar_index = 1;
 	const size_t pci_bar_index = 2;
 	const char *const name = pci_name(pdev);
 
@@ -494,12 +537,13 @@
 		return err;
 	}
 
-	err = pcim_iomap_regions(pdev, BIT(pci_bar_index), name);
+	err = pcim_iomap_regions(pdev, BIT(pci_plx_bar_index) | BIT(pci_bar_index), name);
 	if (err) {
 		dev_err(dev, "Unable to map PCI I/O addresses (%d)\n", err);
 		return err;
 	}
 
+	idio24gpio->plx = pcim_iomap_table(pdev)[pci_plx_bar_index];
 	idio24gpio->reg = pcim_iomap_table(pdev)[pci_bar_index];
 
 	idio24gpio->chip.label = name;
@@ -520,6 +564,12 @@
 
 	/* Software board reset */
 	iowrite8(0, &idio24gpio->reg->soft_reset);
+	/*
+	 * enable PLX PEX8311 internal PCI wire interrupt and local interrupt
+	 * input
+	 */
+	iowrite8((INTCSR_INTERNAL_PCI_WIRE | INTCSR_LOCAL_INPUT) >> 8,
+		 idio24gpio->plx + PLX_PEX8311_PCI_LCS_INTCSR + 1);
 
 	err = devm_gpiochip_add_data(dev, &idio24gpio->chip, idio24gpio);
 	if (err) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-pxa.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-pxa.c
@@ -663,8 +663,8 @@
 	pchip->irq1 = irq1;
 
 	gpio_reg_base = devm_platform_ioremap_resource(pdev, 0);
-	if (!gpio_reg_base)
-		return -EINVAL;
+	if (IS_ERR(gpio_reg_base))
+		return PTR_ERR(gpio_reg_base);
 
 	clk = clk_get(&pdev->dev, NULL);
 	if (IS_ERR(clk)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-rcar.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-rcar.c
@@ -250,8 +250,10 @@
 	int error;
 
 	error = pm_runtime_get_sync(p->dev);
-	if (error < 0)
+	if (error < 0) {
+		pm_runtime_put(p->dev);
 		return error;
+	}
 
 	error = pinctrl_gpio_request(chip->base + offset);
 	if (error)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-siox.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-siox.c
@@ -245,6 +245,7 @@
 	girq->chip = &ddata->ichip;
 	girq->default_type = IRQ_TYPE_NONE;
 	girq->handler = handle_level_irq;
+	girq->threaded = true;
 
 	ret = devm_gpiochip_add_data(dev, &ddata->gchip, NULL);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-sprd.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-sprd.c
@@ -149,17 +149,20 @@
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1);
+		sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
 		irq_set_handler_locked(data, handle_edge_irq);
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0);
+		sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
 		irq_set_handler_locked(data, handle_edge_irq);
 		break;
 	case IRQ_TYPE_EDGE_BOTH:
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 1);
+		sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
 		irq_set_handler_locked(data, handle_edge_irq);
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-tc3589x.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-tc3589x.c
@@ -209,7 +209,7 @@
 				continue;
 
 			tc3589x_gpio->oldregs[i][j] = new;
-			tc3589x_reg_write(tc3589x, regmap[i] + j * 8, new);
+			tc3589x_reg_write(tc3589x, regmap[i] + j, new);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-tegra.c
@@ -365,6 +365,7 @@
 	struct tegra_gpio_info *tgi = bank->tgi;
 	unsigned int gpio = d->hwirq;
 
+	tegra_gpio_irq_mask(d);
 	gpiochip_unlock_as_irq(&tgi->gc, gpio);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-thunderx.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-thunderx.c
@@ -53,6 +53,7 @@
 struct thunderx_gpio {
 	struct gpio_chip	chip;
 	u8 __iomem		*register_base;
+	struct irq_domain	*irqd;
 	struct msix_entry	*msix_entries;	/* per line MSI-X */
 	struct thunderx_line	*line_entries;	/* per line irq info */
 	raw_spinlock_t		lock;
@@ -282,60 +283,54 @@
 	}
 }
 
-static void thunderx_gpio_irq_ack(struct irq_data *d)
+static void thunderx_gpio_irq_ack(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_INTR,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static void thunderx_gpio_irq_mask(struct irq_data *d)
+static void thunderx_gpio_irq_mask(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_ENA_W1C,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static void thunderx_gpio_irq_mask_ack(struct irq_data *d)
+static void thunderx_gpio_irq_mask_ack(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_ENA_W1C | GPIO_INTR_INTR,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static void thunderx_gpio_irq_unmask(struct irq_data *d)
+static void thunderx_gpio_irq_unmask(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_ENA_W1S,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static int thunderx_gpio_irq_set_type(struct irq_data *d,
+static int thunderx_gpio_irq_set_type(struct irq_data *data,
 				      unsigned int flow_type)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
-	struct thunderx_line *txline =
-		&txgpio->line_entries[irqd_to_hwirq(d)];
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
+	struct thunderx_gpio *txgpio = txline->txgpio;
 	u64 bit_cfg;
 
-	irqd_set_trigger_type(d, flow_type);
+	irqd_set_trigger_type(data, flow_type);
 
 	bit_cfg = txline->fil_bits | GPIO_BIT_CFG_INT_EN;
 
 	if (flow_type & IRQ_TYPE_EDGE_BOTH) {
-		irq_set_handler_locked(d, handle_fasteoi_ack_irq);
+		irq_set_handler_locked(data, handle_fasteoi_ack_irq);
 		bit_cfg |= GPIO_BIT_CFG_INT_TYPE;
 	} else {
-		irq_set_handler_locked(d, handle_fasteoi_mask_irq);
+		irq_set_handler_locked(data, handle_fasteoi_mask_irq);
 	}
 
 	raw_spin_lock(&txgpio->lock);
@@ -364,6 +359,33 @@
 	irq_chip_disable_parent(data);
 }
 
+static int thunderx_gpio_irq_request_resources(struct irq_data *data)
+{
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
+	struct thunderx_gpio *txgpio = txline->txgpio;
+	int r;
+
+	r = gpiochip_lock_as_irq(&txgpio->chip, txline->line);
+	if (r)
+		return r;
+
+	r = irq_chip_request_resources_parent(data);
+	if (r)
+		gpiochip_unlock_as_irq(&txgpio->chip, txline->line);
+
+	return r;
+}
+
+static void thunderx_gpio_irq_release_resources(struct irq_data *data)
+{
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
+	struct thunderx_gpio *txgpio = txline->txgpio;
+
+	irq_chip_release_resources_parent(data);
+
+	gpiochip_unlock_as_irq(&txgpio->chip, txline->line);
+}
+
 /*
  * Interrupts are chained from underlying MSI-X vectors.  We have
  * these irq_chip functions to be able to handle level triggering
@@ -380,22 +402,48 @@
 	.irq_unmask		= thunderx_gpio_irq_unmask,
 	.irq_eoi		= irq_chip_eoi_parent,
 	.irq_set_affinity	= irq_chip_set_affinity_parent,
+	.irq_request_resources	= thunderx_gpio_irq_request_resources,
+	.irq_release_resources	= thunderx_gpio_irq_release_resources,
 	.irq_set_type		= thunderx_gpio_irq_set_type,
 
 	.flags			= IRQCHIP_SET_TYPE_MASKED
 };
 
-static int thunderx_gpio_child_to_parent_hwirq(struct gpio_chip *gc,
-					       unsigned int child,
-					       unsigned int child_type,
-					       unsigned int *parent,
-					       unsigned int *parent_type)
+static int thunderx_gpio_irq_translate(struct irq_domain *d,
+				       struct irq_fwspec *fwspec,
+				       irq_hw_number_t *hwirq,
+				       unsigned int *type)
+{
+	struct thunderx_gpio *txgpio = d->host_data;
+
+	if (WARN_ON(fwspec->param_count < 2))
+		return -EINVAL;
+	if (fwspec->param[0] >= txgpio->chip.ngpio)
+		return -EINVAL;
+	*hwirq = fwspec->param[0];
+	*type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK;
+	return 0;
+}
+
+static int thunderx_gpio_irq_alloc(struct irq_domain *d, unsigned int virq,
+				   unsigned int nr_irqs, void *arg)
 {
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = arg;
 
-	*parent = txgpio->base_msi + (2 * child);
-	*parent_type = IRQ_TYPE_LEVEL_HIGH;
-	return 0;
+	return irq_domain_set_hwirq_and_chip(d, virq, txline->line,
+					     &thunderx_gpio_irq_chip, txline);
+}
+
+static const struct irq_domain_ops thunderx_gpio_irqd_ops = {
+	.alloc		= thunderx_gpio_irq_alloc,
+	.translate	= thunderx_gpio_irq_translate
+};
+
+static int thunderx_gpio_to_irq(struct gpio_chip *chip, unsigned int offset)
+{
+	struct thunderx_gpio *txgpio = gpiochip_get_data(chip);
+
+	return irq_find_mapping(txgpio->irqd, offset);
 }
 
 static int thunderx_gpio_probe(struct pci_dev *pdev,
@@ -405,7 +453,6 @@
 	struct device *dev = &pdev->dev;
 	struct thunderx_gpio *txgpio;
 	struct gpio_chip *chip;
-	struct gpio_irq_chip *girq;
 	int ngpio, i;
 	int err = 0;
 
@@ -450,8 +497,8 @@
 	}
 
 	txgpio->msix_entries = devm_kcalloc(dev,
-					    ngpio, sizeof(struct msix_entry),
-					    GFP_KERNEL);
+					  ngpio, sizeof(struct msix_entry),
+					  GFP_KERNEL);
 	if (!txgpio->msix_entries) {
 		err = -ENOMEM;
 		goto out;
@@ -492,6 +539,27 @@
 	if (err < 0)
 		goto out;
 
+	/*
+	 * Push GPIO specific irqdomain on hierarchy created as a side
+	 * effect of the pci_enable_msix()
+	 */
+	txgpio->irqd = irq_domain_create_hierarchy(irq_get_irq_data(txgpio->msix_entries[0].vector)->domain,
+						   0, 0, of_node_to_fwnode(dev->of_node),
+						   &thunderx_gpio_irqd_ops, txgpio);
+	if (!txgpio->irqd) {
+		err = -ENOMEM;
+		goto out;
+	}
+
+	/* Push on irq_data and the domain for each line. */
+	for (i = 0; i < ngpio; i++) {
+		err = irq_domain_push_irq(txgpio->irqd,
+					  txgpio->msix_entries[i].vector,
+					  &txgpio->line_entries[i]);
+		if (err < 0)
+			dev_err(dev, "irq_domain_push_irq: %d\n", err);
+	}
+
 	chip->label = KBUILD_MODNAME;
 	chip->parent = dev;
 	chip->owner = THIS_MODULE;
@@ -506,28 +574,11 @@
 	chip->set = thunderx_gpio_set;
 	chip->set_multiple = thunderx_gpio_set_multiple;
 	chip->set_config = thunderx_gpio_set_config;
-	girq = &chip->irq;
-	girq->chip = &thunderx_gpio_irq_chip;
-	girq->fwnode = of_node_to_fwnode(dev->of_node);
-	girq->parent_domain =
-		irq_get_irq_data(txgpio->msix_entries[0].vector)->domain;
-	girq->child_to_parent_hwirq = thunderx_gpio_child_to_parent_hwirq;
-	girq->handler = handle_bad_irq;
-	girq->default_type = IRQ_TYPE_NONE;
-
+	chip->to_irq = thunderx_gpio_to_irq;
 	err = devm_gpiochip_add_data(dev, chip, txgpio);
 	if (err)
 		goto out;
 
-	/* Push on irq_data and the domain for each line. */
-	for (i = 0; i < ngpio; i++) {
-		err = irq_domain_push_irq(chip->irq.domain,
-					  txgpio->msix_entries[i].vector,
-					  chip);
-		if (err < 0)
-			dev_err(dev, "irq_domain_push_irq: %d\n", err);
-	}
-
 	dev_info(dev, "ThunderX GPIO: %d lines with base %d.\n",
 		 ngpio, chip->base);
 	return 0;
@@ -542,10 +593,10 @@
 	struct thunderx_gpio *txgpio = pci_get_drvdata(pdev);
 
 	for (i = 0; i < txgpio->chip.ngpio; i++)
-		irq_domain_pop_irq(txgpio->chip.irq.domain,
+		irq_domain_pop_irq(txgpio->irqd,
 				   txgpio->msix_entries[i].vector);
 
-	irq_domain_remove(txgpio->chip.irq.domain);
+	irq_domain_remove(txgpio->irqd);
 
 	pci_set_drvdata(pdev, NULL);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-xilinx.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-xilinx.c
@@ -147,9 +147,10 @@
 	for (i = 0; i < gc->ngpio; i++) {
 		if (*mask == 0)
 			break;
+		/* Once finished with an index write it out to the register */
 		if (index !=  xgpio_index(chip, i)) {
 			xgpio_writereg(chip->regs + XGPIO_DATA_OFFSET +
-				       xgpio_regoffset(chip, i),
+				       index * XGPIO_CHANNEL_OFFSET,
 				       chip->gpio_state[index]);
 			spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
 			index =  xgpio_index(chip, i);
@@ -165,7 +166,7 @@
 	}
 
 	xgpio_writereg(chip->regs + XGPIO_DATA_OFFSET +
-		       xgpio_regoffset(chip, i), chip->gpio_state[index]);
+		       index * XGPIO_CHANNEL_OFFSET, chip->gpio_state[index]);
 
 	spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-xtensa.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-xtensa.c
@@ -44,15 +44,14 @@
 	unsigned long flags;
 
 	local_irq_save(flags);
-	RSR_CPENABLE(*cpenable);
-	WSR_CPENABLE(*cpenable | BIT(XCHAL_CP_ID_XTIOP));
-
+	*cpenable = xtensa_get_sr(cpenable);
+	xtensa_set_sr(*cpenable | BIT(XCHAL_CP_ID_XTIOP), cpenable);
 	return flags;
 }
 
 static inline void disable_cp(unsigned long flags, unsigned long cpenable)
 {
-	WSR_CPENABLE(cpenable);
+	xtensa_set_sr(cpenable, cpenable);
 	local_irq_restore(flags);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpio-zynq.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpio-zynq.c
@@ -556,7 +556,7 @@
 	struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
 	int ret;
 
-	ret = pm_runtime_get_sync(chip->parent);
+	ret = pm_runtime_resume_and_get(chip->parent);
 	if (ret < 0)
 		return ret;
 
@@ -681,6 +681,8 @@
 	unsigned int bank_num;
 
 	for (bank_num = 0; bank_num < gpio->p_data->max_bank; bank_num++) {
+		writel_relaxed(ZYNQ_GPIO_IXR_DISABLE_ALL, gpio->base_addr +
+				ZYNQ_GPIO_INTDIS_OFFSET(bank_num));
 		writel_relaxed(gpio->context.datalsw[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_DATA_LSW_OFFSET(bank_num));
@@ -690,9 +692,6 @@
 		writel_relaxed(gpio->context.dirm[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_DIRM_OFFSET(bank_num));
-		writel_relaxed(gpio->context.int_en[bank_num],
-			       gpio->base_addr +
-			       ZYNQ_GPIO_INTEN_OFFSET(bank_num));
 		writel_relaxed(gpio->context.int_type[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_INTTYPE_OFFSET(bank_num));
@@ -702,6 +701,9 @@
 		writel_relaxed(gpio->context.int_any[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_INTANY_OFFSET(bank_num));
+		writel_relaxed(~(gpio->context.int_en[bank_num]),
+			       gpio->base_addr +
+			       ZYNQ_GPIO_INTEN_OFFSET(bank_num));
 	}
 }
 
@@ -882,7 +884,7 @@
 
 	pm_runtime_set_active(&pdev->dev);
 	pm_runtime_enable(&pdev->dev);
-	ret = pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_resume_and_get(&pdev->dev);
 	if (ret < 0)
 		goto err_pm_dis;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpiolib-acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpiolib-acpi.c
@@ -26,6 +26,17 @@
 MODULE_PARM_DESC(run_edge_events_on_boot,
 		 "Run edge _AEI event-handlers at boot: 0=no, 1=yes, -1=auto");
 
+static char *ignore_wake;
+module_param(ignore_wake, charp, 0444);
+MODULE_PARM_DESC(ignore_wake,
+		 "controller@pin combos on which to ignore the ACPI wake flag "
+		 "ignore_wake=controller@pin[,controller@pin[,...]]");
+
+struct acpi_gpiolib_dmi_quirk {
+	bool no_edge_events_on_boot;
+	char *ignore_wake;
+};
+
 /**
  * struct acpi_gpio_event - ACPI GPIO event handler data
  *
@@ -194,6 +205,57 @@
 		acpi_gpiochip_request_irq(acpi_gpio, event);
 }
 
+static bool acpi_gpio_in_ignore_list(const char *controller_in, int pin_in)
+{
+	const char *controller, *pin_str;
+	int len, pin;
+	char *endp;
+
+	controller = ignore_wake;
+	while (controller) {
+		pin_str = strchr(controller, '@');
+		if (!pin_str)
+			goto err;
+
+		len = pin_str - controller;
+		if (len == strlen(controller_in) &&
+		    strncmp(controller, controller_in, len) == 0) {
+			pin = simple_strtoul(pin_str + 1, &endp, 10);
+			if (*endp != 0 && *endp != ',')
+				goto err;
+
+			if (pin == pin_in)
+				return true;
+		}
+
+		controller = strchr(controller, ',');
+		if (controller)
+			controller++;
+	}
+
+	return false;
+err:
+	pr_err_once("Error invalid value for gpiolib_acpi.ignore_wake: %s\n",
+		    ignore_wake);
+	return false;
+}
+
+static bool acpi_gpio_irq_is_wake(struct device *parent,
+				  struct acpi_resource_gpio *agpio)
+{
+	int pin = agpio->pin_table[0];
+
+	if (agpio->wake_capable != ACPI_WAKE_CAPABLE)
+		return false;
+
+	if (acpi_gpio_in_ignore_list(dev_name(parent), pin)) {
+		dev_info(parent, "Ignoring wakeup on pin %d\n", pin);
+		return false;
+	}
+
+	return true;
+}
+
 static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
 					     void *context)
 {
@@ -274,7 +336,7 @@
 	event->handle = evt_handle;
 	event->handler = handler;
 	event->irq = irq;
-	event->irq_is_wake = agpio->wake_capable == ACPI_WAKE_CAPABLE;
+	event->irq_is_wake = acpi_gpio_irq_is_wake(chip->parent, agpio);
 	event->pin = pin;
 	event->desc = desc;
 
@@ -1302,7 +1364,7 @@
 /* We must use _sync so that this runs after the first deferred_probe run */
 late_initcall_sync(acpi_gpio_handle_deferred_request_irqs);
 
-static const struct dmi_system_id run_edge_events_on_boot_blacklist[] = {
+static const struct dmi_system_id gpiolib_acpi_quirks[] = {
 	{
 		/*
 		 * The Minix Neo Z83-4 has a micro-USB-B id-pin handler for
@@ -1312,7 +1374,10 @@
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "MINIX"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),
-		}
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.no_edge_events_on_boot = true,
+		},
 	},
 	{
 		/*
@@ -1324,20 +1389,84 @@
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Wortmann_AG"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "TERRA_PAD_1061"),
-		}
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.no_edge_events_on_boot = true,
+		},
+	},
+	{
+		/*
+		 * HP X2 10 models with Cherry Trail SoC + TI PMIC use an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FF:01 pin 0, causing spurious wakeups.
+		 * When suspending by closing the LID, the power to the USB
+		 * keyboard is turned off, causing INT0002 ACPI events to
+		 * trigger once the XHCI controller notices the keyboard is
+		 * gone. So INT0002 events cause spurious wakeups too. Ignoring
+		 * EC wakes breaks wakeup when opening the lid, the user needs
+		 * to press the power-button to wakeup the system. The
+		 * alternative is suspend simply not working, which is worse.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP x2 Detachable 10-p0XX"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FF:01@0,INT0002:00@2",
+		},
+	},
+	{
+		/*
+		 * HP X2 10 models with Bay Trail SoC + AXP288 PMIC use an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FC:02 pin 28, causing spurious wakeups.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
+			DMI_MATCH(DMI_BOARD_NAME, "815D"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FC:02@28",
+		},
+	},
+	{
+		/*
+		 * HP X2 10 models with Cherry Trail SoC + AXP288 PMIC use an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FF:01 pin 0, causing spurious wakeups.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
+			DMI_MATCH(DMI_BOARD_NAME, "813E"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FF:01@0",
+		},
 	},
 	{} /* Terminating entry */
 };
 
 static int acpi_gpio_setup_params(void)
 {
+	const struct acpi_gpiolib_dmi_quirk *quirk = NULL;
+	const struct dmi_system_id *id;
+
+	id = dmi_first_match(gpiolib_acpi_quirks);
+	if (id)
+		quirk = id->driver_data;
+
 	if (run_edge_events_on_boot < 0) {
-		if (dmi_check_system(run_edge_events_on_boot_blacklist))
+		if (quirk && quirk->no_edge_events_on_boot)
 			run_edge_events_on_boot = 0;
 		else
 			run_edge_events_on_boot = 1;
 	}
 
+	if (ignore_wake == NULL && quirk && quirk->ignore_wake)
+		ignore_wake = quirk->ignore_wake;
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpiolib-of.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpiolib-of.c
@@ -23,6 +23,29 @@
 #include "gpiolib.h"
 #include "gpiolib-of.h"
 
+/**
+ * of_gpio_spi_cs_get_count() - special GPIO counting for SPI
+ * Some elder GPIO controllers need special quirks. Currently we handle
+ * the Freescale GPIO controller with bindings that doesn't use the
+ * established "cs-gpios" for chip selects but instead rely on
+ * "gpios" for the chip select lines. If we detect this, we redirect
+ * the counting of "cs-gpios" to count "gpios" transparent to the
+ * driver.
+ */
+int of_gpio_spi_cs_get_count(struct device *dev, const char *con_id)
+{
+	struct device_node *np = dev->of_node;
+
+	if (!IS_ENABLED(CONFIG_SPI_MASTER))
+		return 0;
+	if (!con_id || strcmp(con_id, "cs"))
+		return 0;
+	if (!of_device_is_compatible(np, "fsl,spi") &&
+	    !of_device_is_compatible(np, "aeroflexgaisler,spictrl"))
+		return 0;
+	return of_gpio_named_count(np, "gpios");
+}
+
 /*
  * This is used by external users of of_gpio_count() from <linux/of_gpio.h>
  *
@@ -35,6 +58,10 @@
 	char propname[32];
 	unsigned int i;
 
+	ret = of_gpio_spi_cs_get_count(dev, con_id);
+	if (ret > 0)
+		return ret;
+
 	for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
 		if (con_id)
 			snprintf(propname, sizeof(propname), "%s-%s",
@@ -119,10 +146,6 @@
 			if (of_property_read_bool(np, "cd-inverted"))
 				*flags ^= OF_GPIO_ACTIVE_LOW;
 		}
-		if (!strcmp(propname, "wp-gpios")) {
-			if (of_property_read_bool(np, "wp-inverted"))
-				*flags ^= OF_GPIO_ACTIVE_LOW;
-		}
 	}
 	/*
 	 * Some GPIO fixed regulator quirks.
@@ -882,16 +905,13 @@
 	of_node_get(chip->of_node);
 
 	ret = of_gpiochip_scan_gpios(chip);
-	if (ret) {
+	if (ret)
 		of_node_put(chip->of_node);
-		gpiochip_remove_pin_ranges(chip);
-	}
 
 	return ret;
 }
 
 void of_gpiochip_remove(struct gpio_chip *chip)
 {
-	gpiochip_remove_pin_ranges(chip);
 	of_node_put(chip->of_node);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/gpiolib.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/gpiolib.c
@@ -220,6 +220,14 @@
 	chip = gpiod_to_chip(desc);
 	offset = gpio_chip_hwgpio(desc);
 
+	/*
+	 * Open drain emulation using input mode may incorrectly report
+	 * input here, fix that up.
+	 */
+	if (test_bit(FLAG_OPEN_DRAIN, &desc->flags) &&
+	    test_bit(FLAG_IS_OUT, &desc->flags))
+		return 0;
+
 	if (!chip->get_direction)
 		return -ENOTSUPP;
 
@@ -1444,6 +1452,7 @@
 	gpiochip_free_hogs(chip);
 	of_gpiochip_remove(chip);
 err_free_gpiochip_mask:
+	gpiochip_remove_pin_ranges(chip);
 	gpiochip_free_valid_mask(chip);
 err_remove_from_list:
 	spin_lock_irqsave(&gpio_lock, flags);
@@ -1499,8 +1508,8 @@
 	gdev->chip = NULL;
 	gpiochip_irqchip_remove(chip);
 	acpi_gpiochip_remove(chip);
-	gpiochip_remove_pin_ranges(chip);
 	of_gpiochip_remove(chip);
+	gpiochip_remove_pin_ranges(chip);
 	gpiochip_free_valid_mask(chip);
 	/*
 	 * We accept no more calls into the driver from this point, so
@@ -1915,6 +1924,7 @@
 				     parent_type);
 	chip_info(gc, "alloc_irqs_parent for %d parent hwirq %d\n",
 		  irq, parent_hwirq);
+	irq_set_lockdep_class(irq, gc->irq.lock_key, gc->irq.request_key);
 	ret = irq_domain_alloc_irqs_parent(d, irq, 1, &parent_fwspec);
 	if (ret)
 		chip_err(gc,
@@ -2184,9 +2194,16 @@
 {
 	struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
 
+	/*
+	 * Since we override .irq_disable() we need to mimic the
+	 * behaviour of __irq_disable() in irq/chip.c.
+	 * First call .irq_disable() if it exists, else mimic the
+	 * behaviour of mask_irq() which calls .irq_mask() if
+	 * it exists.
+	 */
 	if (chip->irq.irq_disable)
 		chip->irq.irq_disable(d);
-	else
+	else if (chip->irq.chip->irq_mask)
 		chip->irq.chip->irq_mask(d);
 	gpiochip_disable_irq(chip, d->hwirq);
 }
@@ -3211,6 +3228,17 @@
 }
 EXPORT_SYMBOL_GPL(gpiod_is_active_low);
 
+/**
+ * gpiod_toggle_active_low - toggle whether a GPIO is active-low or not
+ * @desc: the gpio descriptor to change
+ */
+void gpiod_toggle_active_low(struct gpio_desc *desc)
+{
+	VALIDATE_DESC_VOID(desc);
+	change_bit(FLAG_ACTIVE_LOW, &desc->flags);
+}
+EXPORT_SYMBOL_GPL(gpiod_toggle_active_low);
+
 /* I/O calls are only valid after configuration completed; the relevant
  * "is this a valid GPIO" error checks should already have been done.
  *
@@ -3866,7 +3894,9 @@
 		}
 	}
 
-	if (test_bit(FLAG_IS_OUT, &desc->flags)) {
+	/* To be valid for IRQ the line needs to be input or open drain */
+	if (test_bit(FLAG_IS_OUT, &desc->flags) &&
+	    !test_bit(FLAG_OPEN_DRAIN, &desc->flags)) {
 		chip_err(chip,
 			 "%s: tried to flag a GPIO set as output for IRQ\n",
 			 __func__);
@@ -3929,7 +3959,12 @@
 
 	if (!IS_ERR(desc) &&
 	    !WARN_ON(!test_bit(FLAG_USED_AS_IRQ, &desc->flags))) {
-		WARN_ON(test_bit(FLAG_IS_OUT, &desc->flags));
+		/*
+		 * We must not be output when using IRQ UNLESS we are
+		 * open drain.
+		 */
+		WARN_ON(test_bit(FLAG_IS_OUT, &desc->flags) &&
+			!test_bit(FLAG_OPEN_DRAIN, &desc->flags));
 		set_bit(FLAG_IRQ_IS_ENABLED, &desc->flags);
 	}
 }
@@ -4320,8 +4355,9 @@
 
 		if (chip->ngpio <= p->chip_hwnum) {
 			dev_err(dev,
-				"requested GPIO %d is out of range [0..%d] for chip %s\n",
-				idx, chip->ngpio, chip->label);
+				"requested GPIO %u (%u) is out of range [0..%u] for chip %s\n",
+				idx, p->chip_hwnum, chip->ngpio - 1,
+				chip->label);
 			return ERR_PTR(-EINVAL);
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpio/sgpio-aspeed.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpio/sgpio-aspeed.c
@@ -17,7 +17,17 @@
 #include <linux/spinlock.h>
 #include <linux/string.h>
 
-#define MAX_NR_SGPIO			80
+/*
+ * MAX_NR_HW_GPIO represents the number of actual hardware-supported GPIOs (ie,
+ * slots within the clocked serial GPIO data). Since each HW GPIO is both an
+ * input and an output, we provide MAX_NR_HW_GPIO * 2 lines on our gpiochip
+ * device.
+ *
+ * We use SGPIO_OUTPUT_OFFSET to define the split between the inputs and
+ * outputs; the inputs start at line 0, the outputs start at OUTPUT_OFFSET.
+ */
+#define MAX_NR_HW_SGPIO			80
+#define SGPIO_OUTPUT_OFFSET		MAX_NR_HW_SGPIO
 
 #define ASPEED_SGPIO_CTRL		0x54
 
@@ -30,8 +40,8 @@
 	struct clk *pclk;
 	spinlock_t lock;
 	void __iomem *base;
-	uint32_t dir_in[3];
 	int irq;
+	int n_sgpio;
 };
 
 struct aspeed_sgpio_bank {
@@ -107,35 +117,73 @@
 		return gpio->base + bank->irq_regs + GPIO_IRQ_STATUS;
 	default:
 		/* acturally if code runs to here, it's an error case */
-		BUG_ON(1);
+		BUG();
 	}
 }
 
-#define GPIO_BANK(x)    ((x) >> 5)
-#define GPIO_OFFSET(x)  ((x) & 0x1f)
+#define GPIO_BANK(x)    ((x % SGPIO_OUTPUT_OFFSET) >> 5)
+#define GPIO_OFFSET(x)  ((x % SGPIO_OUTPUT_OFFSET) & 0x1f)
 #define GPIO_BIT(x)     BIT(GPIO_OFFSET(x))
 
 static const struct aspeed_sgpio_bank *to_bank(unsigned int offset)
 {
-	unsigned int bank = GPIO_BANK(offset);
+	unsigned int bank;
+
+	bank = GPIO_BANK(offset);
 
 	WARN_ON(bank >= ARRAY_SIZE(aspeed_sgpio_banks));
 	return &aspeed_sgpio_banks[bank];
 }
 
+static int aspeed_sgpio_init_valid_mask(struct gpio_chip *gc,
+		unsigned long *valid_mask, unsigned int ngpios)
+{
+	struct aspeed_sgpio *sgpio = gpiochip_get_data(gc);
+	int n = sgpio->n_sgpio;
+	int c = SGPIO_OUTPUT_OFFSET - n;
+
+	WARN_ON(ngpios < MAX_NR_HW_SGPIO * 2);
+
+	/* input GPIOs in the lower range */
+	bitmap_set(valid_mask, 0, n);
+	bitmap_clear(valid_mask, n, c);
+
+	/* output GPIOS above SGPIO_OUTPUT_OFFSET */
+	bitmap_set(valid_mask, SGPIO_OUTPUT_OFFSET, n);
+	bitmap_clear(valid_mask, SGPIO_OUTPUT_OFFSET + n, c);
+
+	return 0;
+}
+
+static void aspeed_sgpio_irq_init_valid_mask(struct gpio_chip *gc,
+		unsigned long *valid_mask, unsigned int ngpios)
+{
+	struct aspeed_sgpio *sgpio = gpiochip_get_data(gc);
+	int n = sgpio->n_sgpio;
+
+	WARN_ON(ngpios < MAX_NR_HW_SGPIO * 2);
+
+	/* input GPIOs in the lower range */
+	bitmap_set(valid_mask, 0, n);
+	bitmap_clear(valid_mask, n, ngpios - n);
+}
+
+static bool aspeed_sgpio_is_input(unsigned int offset)
+{
+	return offset < SGPIO_OUTPUT_OFFSET;
+}
+
 static int aspeed_sgpio_get(struct gpio_chip *gc, unsigned int offset)
 {
 	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
 	const struct aspeed_sgpio_bank *bank = to_bank(offset);
 	unsigned long flags;
 	enum aspeed_sgpio_reg reg;
-	bool is_input;
 	int rc = 0;
 
 	spin_lock_irqsave(&gpio->lock, flags);
 
-	is_input = gpio->dir_in[GPIO_BANK(offset)] & GPIO_BIT(offset);
-	reg = is_input ? reg_val : reg_rdata;
+	reg = aspeed_sgpio_is_input(offset) ? reg_val : reg_rdata;
 	rc = !!(ioread32(bank_reg(gpio, bank, reg)) & GPIO_BIT(offset));
 
 	spin_unlock_irqrestore(&gpio->lock, flags);
@@ -143,22 +191,31 @@
 	return rc;
 }
 
-static void sgpio_set_value(struct gpio_chip *gc, unsigned int offset, int val)
+static int sgpio_set_value(struct gpio_chip *gc, unsigned int offset, int val)
 {
 	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
 	const struct aspeed_sgpio_bank *bank = to_bank(offset);
-	void __iomem *addr;
+	void __iomem *addr_r, *addr_w;
 	u32 reg = 0;
 
-	addr = bank_reg(gpio, bank, reg_val);
-	reg = ioread32(addr);
+	if (aspeed_sgpio_is_input(offset))
+		return -EINVAL;
+
+	/* Since this is an output, read the cached value from rdata, then
+	 * update val. */
+	addr_r = bank_reg(gpio, bank, reg_rdata);
+	addr_w = bank_reg(gpio, bank, reg_val);
+
+	reg = ioread32(addr_r);
 
 	if (val)
 		reg |= GPIO_BIT(offset);
 	else
 		reg &= ~GPIO_BIT(offset);
 
-	iowrite32(reg, addr);
+	iowrite32(reg, addr_w);
+
+	return 0;
 }
 
 static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val)
@@ -175,43 +232,28 @@
 
 static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset)
 {
-	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
-	unsigned long flags;
-
-	spin_lock_irqsave(&gpio->lock, flags);
-	gpio->dir_in[GPIO_BANK(offset)] |= GPIO_BIT(offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
-
-	return 0;
+	return aspeed_sgpio_is_input(offset) ? 0 : -EINVAL;
 }
 
 static int aspeed_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val)
 {
 	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
 	unsigned long flags;
+	int rc;
 
-	spin_lock_irqsave(&gpio->lock, flags);
-
-	gpio->dir_in[GPIO_BANK(offset)] &= ~GPIO_BIT(offset);
-	sgpio_set_value(gc, offset, val);
+	/* No special action is required for setting the direction; we'll
+	 * error-out in sgpio_set_value if this isn't an output GPIO */
 
+	spin_lock_irqsave(&gpio->lock, flags);
+	rc = sgpio_set_value(gc, offset, val);
 	spin_unlock_irqrestore(&gpio->lock, flags);
 
-	return 0;
+	return rc;
 }
 
 static int aspeed_sgpio_get_direction(struct gpio_chip *gc, unsigned int offset)
 {
-	int dir_status;
-	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
-	unsigned long flags;
-
-	spin_lock_irqsave(&gpio->lock, flags);
-	dir_status = gpio->dir_in[GPIO_BANK(offset)] & GPIO_BIT(offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
-
-	return dir_status;
-
+	return !!aspeed_sgpio_is_input(offset);
 }
 
 static void irqd_to_aspeed_sgpio_data(struct irq_data *d,
@@ -402,6 +444,7 @@
 
 	irq = &gpio->chip.irq;
 	irq->chip = &aspeed_sgpio_irqchip;
+	irq->init_valid_mask = aspeed_sgpio_irq_init_valid_mask;
 	irq->handler = handle_bad_irq;
 	irq->default_type = IRQ_TYPE_NONE;
 	irq->parent_handler = aspeed_sgpio_irq_handler;
@@ -409,17 +452,15 @@
 	irq->parents = &gpio->irq;
 	irq->num_parents = 1;
 
-	/* set IRQ settings and Enable Interrupt */
+	/* Apply default IRQ settings */
 	for (i = 0; i < ARRAY_SIZE(aspeed_sgpio_banks); i++) {
 		bank = &aspeed_sgpio_banks[i];
 		/* set falling or level-low irq */
 		iowrite32(0x00000000, bank_reg(gpio, bank, reg_irq_type0));
 		/* trigger type is edge */
 		iowrite32(0x00000000, bank_reg(gpio, bank, reg_irq_type1));
-		/* dual edge trigger mode. */
-		iowrite32(0xffffffff, bank_reg(gpio, bank, reg_irq_type2));
-		/* enable irq */
-		iowrite32(0xffffffff, bank_reg(gpio, bank, reg_irq_enable));
+		/* single edge trigger */
+		iowrite32(0x00000000, bank_reg(gpio, bank, reg_irq_type2));
 	}
 
 	return 0;
@@ -452,11 +493,12 @@
 	if (rc < 0) {
 		dev_err(&pdev->dev, "Could not read ngpios property\n");
 		return -EINVAL;
-	} else if (nr_gpios > MAX_NR_SGPIO) {
+	} else if (nr_gpios > MAX_NR_HW_SGPIO) {
 		dev_err(&pdev->dev, "Number of GPIOs exceeds the maximum of %d: %d\n",
-			MAX_NR_SGPIO, nr_gpios);
+			MAX_NR_HW_SGPIO, nr_gpios);
 		return -EINVAL;
 	}
+	gpio->n_sgpio = nr_gpios;
 
 	rc = of_property_read_u32(pdev->dev.of_node, "bus-frequency", &sgpio_freq);
 	if (rc < 0) {
@@ -497,7 +539,8 @@
 	spin_lock_init(&gpio->lock);
 
 	gpio->chip.parent = &pdev->dev;
-	gpio->chip.ngpio = nr_gpios;
+	gpio->chip.ngpio = MAX_NR_HW_SGPIO * 2;
+	gpio->chip.init_valid_mask = aspeed_sgpio_init_valid_mask;
 	gpio->chip.direction_input = aspeed_sgpio_dir_in;
 	gpio->chip.direction_output = aspeed_sgpio_dir_out;
 	gpio->chip.get_direction = aspeed_sgpio_get_direction;
@@ -509,9 +552,6 @@
 	gpio->chip.label = dev_name(&pdev->dev);
 	gpio->chip.base = -1;
 
-	/* set all SGPIO pins as input (1). */
-	memset(gpio->dir_in, 0xff, sizeof(gpio->dir_in));
-
 	aspeed_sgpio_setup_irqs(gpio, pdev);
 
 	rc = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -813,6 +813,7 @@
 	uint8_t				*bios;
 	uint32_t			bios_size;
 	struct amdgpu_bo		*stolen_vga_memory;
+	struct amdgpu_bo		*discovery_memory;
 	uint32_t			bios_scratch_reg_offset;
 	uint32_t			bios_scratch[AMDGPU_BIOS_NUM_SCRATCH];
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
@@ -644,6 +644,9 @@
 	uint32_t temp;
 	struct v10_compute_mqd *m = get_mqd(mqd);
 
+	if (amdgpu_sriov_vf(adev) && adev->in_gpu_reset)
+		return 0;
+
 #if 0
 	unsigned long flags;
 	int retry;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
@@ -540,6 +540,9 @@
 	uint32_t temp;
 	struct v9_mqd *m = get_mqd(mqd);
 
+	if (amdgpu_sriov_vf(adev) && adev->in_gpu_reset)
+		return 0;
+
 	if (adev->in_gpu_reset)
 		return -EIO;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -1247,15 +1247,15 @@
 	 * be freed anyway
 	 */
 
-	/* No more MMU notifiers */
-	amdgpu_mn_unregister(mem->bo);
-
 	/* Make sure restore workers don't access the BO any more */
 	bo_list_entry = &mem->validate_list;
 	mutex_lock(&process_info->lock);
 	list_del(&bo_list_entry->head);
 	mutex_unlock(&process_info->lock);
 
+	/* No more MMU notifiers */
+	amdgpu_mn_unregister(mem->bo);
+
 	ret = reserve_bo_and_cond_vms(mem, NULL, BO_VM_ALL, &ctx);
 	if (unlikely(ret))
 		return ret;
@@ -1288,7 +1288,7 @@
 	}
 
 	/* Free the BO*/
-	amdgpu_bo_unref(&mem->bo);
+	drm_gem_object_put_unlocked(&mem->bo->tbo.base);
 	mutex_destroy(&mem->lock);
 	kfree(mem);
 
@@ -1630,7 +1630,8 @@
 		AMDGPU_VM_PAGE_READABLE | AMDGPU_VM_PAGE_WRITEABLE |
 		AMDGPU_VM_PAGE_EXECUTABLE | AMDGPU_VM_MTYPE_NC;
 
-	(*mem)->bo = amdgpu_bo_ref(bo);
+	drm_gem_object_get(&bo->tbo.base);
+	(*mem)->bo = bo;
 	(*mem)->va = va;
 	(*mem)->domain = (bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ?
 		AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -338,17 +338,9 @@
 		path_size += le16_to_cpu(path->usSize);
 
 		if (device_support & le16_to_cpu(path->usDeviceTag)) {
-			uint8_t con_obj_id, con_obj_num, con_obj_type;
-
-			con_obj_id =
+			uint8_t con_obj_id =
 			    (le16_to_cpu(path->usConnObjectId) & OBJECT_ID_MASK)
 			    >> OBJECT_ID_SHIFT;
-			con_obj_num =
-			    (le16_to_cpu(path->usConnObjectId) & ENUM_ID_MASK)
-			    >> ENUM_ID_SHIFT;
-			con_obj_type =
-			    (le16_to_cpu(path->usConnObjectId) &
-			     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
 
 			/* Skip TV/CV support */
 			if ((le16_to_cpu(path->usDeviceTag) ==
@@ -373,15 +365,7 @@
 			router.ddc_valid = false;
 			router.cd_valid = false;
 			for (j = 0; j < ((le16_to_cpu(path->usSize) - 8) / 2); j++) {
-				uint8_t grph_obj_id, grph_obj_num, grph_obj_type;
-
-				grph_obj_id =
-				    (le16_to_cpu(path->usGraphicObjIds[j]) &
-				     OBJECT_ID_MASK) >> OBJECT_ID_SHIFT;
-				grph_obj_num =
-				    (le16_to_cpu(path->usGraphicObjIds[j]) &
-				     ENUM_ID_MASK) >> ENUM_ID_SHIFT;
-				grph_obj_type =
+				uint8_t grph_obj_type =
 				    (le16_to_cpu(path->usGraphicObjIds[j]) &
 				     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
@@ -150,6 +150,7 @@
 				(mode_info->atom_context->bios + data_offset);
 			switch (crev) {
 			case 11:
+			case 12:
 				mem_channel_number = igp_info->v11.umachannelnumber;
 				/* channel width is 64 */
 				return mem_channel_number * 64;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
@@ -192,30 +192,35 @@
 
 static bool amdgpu_read_platform_bios(struct amdgpu_device *adev)
 {
-	uint8_t __iomem *bios;
-	size_t size;
+	phys_addr_t rom = adev->pdev->rom;
+	size_t romlen = adev->pdev->romlen;
+	void __iomem *bios;
 
 	adev->bios = NULL;
 
-	bios = pci_platform_rom(adev->pdev, &size);
-	if (!bios) {
+	if (!rom || romlen == 0)
 		return false;
-	}
 
-	adev->bios = kzalloc(size, GFP_KERNEL);
-	if (adev->bios == NULL)
+	adev->bios = kzalloc(romlen, GFP_KERNEL);
+	if (!adev->bios)
 		return false;
 
-	memcpy_fromio(adev->bios, bios, size);
+	bios = ioremap(rom, romlen);
+	if (!bios)
+		goto free_bios;
 
-	if (!check_atom_bios(adev->bios, size)) {
-		kfree(adev->bios);
-		return false;
-	}
+	memcpy_fromio(adev->bios, bios, romlen);
+	iounmap(bios);
+
+	if (!check_atom_bios(adev->bios, romlen))
+		goto free_bios;
 
-	adev->bios_size = size;
+	adev->bios_size = romlen;
 
 	return true;
+free_bios:
+	kfree(adev->bios);
+	return false;
 }
 
 #ifdef CONFIG_ACPI
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -719,8 +719,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (encoder) {
@@ -857,8 +859,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = amdgpu_connector_best_single_encoder(connector);
@@ -980,8 +984,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) {
@@ -1330,8 +1336,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
@@ -240,7 +240,7 @@
 	while (size) {
 		uint32_t value;
 
-		value = RREG32_PCIE(*pos >> 2);
+		value = RREG32_PCIE(*pos);
 		r = put_user(value, (uint32_t *)buf);
 		if (r)
 			return r;
@@ -283,7 +283,7 @@
 		if (r)
 			return r;
 
-		WREG32_PCIE(*pos >> 2, value);
+		WREG32_PCIE(*pos, value);
 
 		result += 4;
 		buf += 4;
@@ -694,11 +694,11 @@
 	ssize_t result = 0;
 	uint32_t offset, se, sh, cu, wave, simd, thread, bank, *data;
 
-	if (size & 3 || *pos & 3)
+	if (size > 4096 || size & 3 || *pos & 3)
 		return -EINVAL;
 
 	/* decode offset */
-	offset = *pos & GENMASK_ULL(11, 0);
+	offset = (*pos & GENMASK_ULL(11, 0)) >> 2;
 	se = (*pos & GENMASK_ULL(19, 12)) >> 12;
 	sh = (*pos & GENMASK_ULL(27, 20)) >> 20;
 	cu = (*pos & GENMASK_ULL(35, 28)) >> 28;
@@ -729,7 +729,7 @@
 	while (size) {
 		uint32_t value;
 
-		value = data[offset++];
+		value = data[result >> 2];
 		r = put_user(value, (uint32_t *)buf);
 		if (r) {
 			result = r;
@@ -859,6 +859,9 @@
 	struct amdgpu_device *adev = dev->dev_private;
 	int r = 0, i;
 
+	/* Avoid accidently unparking the sched thread during GPU reset */
+	mutex_lock(&adev->lock_reset);
+
 	/* hold on the scheduler */
 	for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
 		struct amdgpu_ring *ring = adev->rings[i];
@@ -884,6 +887,8 @@
 		kthread_unpark(ring->sched.thread);
 	}
 
+	mutex_unlock(&adev->lock_reset);
+
 	return 0;
 }
 
@@ -985,27 +990,37 @@
 static void amdgpu_ib_preempt_mark_partial_job(struct amdgpu_ring *ring)
 {
 	struct amdgpu_job *job;
-	struct drm_sched_job *s_job;
+	struct drm_sched_job *s_job, *tmp;
 	uint32_t preempt_seq;
 	struct dma_fence *fence, **ptr;
 	struct amdgpu_fence_driver *drv = &ring->fence_drv;
 	struct drm_gpu_scheduler *sched = &ring->sched;
+	bool preempted = true;
 
 	if (ring->funcs->type != AMDGPU_RING_TYPE_GFX)
 		return;
 
 	preempt_seq = le32_to_cpu(*(drv->cpu_addr + 2));
-	if (preempt_seq <= atomic_read(&drv->last_seq))
-		return;
+	if (preempt_seq <= atomic_read(&drv->last_seq)) {
+		preempted = false;
+		goto no_preempt;
+	}
 
 	preempt_seq &= drv->num_fences_mask;
 	ptr = &drv->fences[preempt_seq];
 	fence = rcu_dereference_protected(*ptr, 1);
 
+no_preempt:
 	spin_lock(&sched->job_list_lock);
-	list_for_each_entry(s_job, &sched->ring_mirror_list, node) {
+	list_for_each_entry_safe(s_job, tmp, &sched->ring_mirror_list, node) {
+		if (dma_fence_is_signaled(&s_job->s_fence->finished)) {
+			/* remove job from ring_mirror_list */
+			list_del_init(&s_job->node);
+			sched->ops->free_job(s_job);
+			continue;
+		}
 		job = to_amdgpu_job(s_job);
-		if (job->fence == fence)
+		if (preempted && job->fence == fence)
 			/* mark the job as preempted */
 			job->preemption_status |= AMDGPU_IB_PREEMPTED;
 	}
@@ -1036,6 +1051,9 @@
 	if (!fences)
 		return -ENOMEM;
 
+	/* Avoid accidently unparking the sched thread during GPU reset */
+	mutex_lock(&adev->lock_reset);
+
 	/* stop the scheduler */
 	kthread_park(ring->sched.thread);
 
@@ -1075,6 +1093,8 @@
 	/* restart the scheduler */
 	kthread_unpark(ring->sched.thread);
 
+	mutex_unlock(&adev->lock_reset);
+
 	ttm_bo_unlock_delayed_workqueue(&adev->mman.bdev, resched);
 
 	if (fences)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -70,11 +70,9 @@
 MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/picasso_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/raven2_gpu_info.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/renoir_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/navi10_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/navi14_gpu_info.bin");
-MODULE_FIRMWARE("amdgpu/navi12_gpu_info.bin");
 
 #define AMDGPU_RESUME_MS		2000
 
@@ -2057,11 +2055,11 @@
 	if (adev->gmc.xgmi.num_physical_nodes > 1)
 		amdgpu_xgmi_remove_device(adev);
 
-	amdgpu_amdkfd_device_fini(adev);
-
 	amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
 	amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
 
+	amdgpu_amdkfd_device_fini(adev);
+
 	/* need to disable SMC first */
 	for (i = 0; i < adev->num_ip_blocks; i++) {
 		if (!adev->ip_blocks[i].status.hw)
@@ -3070,12 +3068,12 @@
 		}
 	}
 
-	amdgpu_amdkfd_suspend(adev);
-
 	amdgpu_ras_suspend(adev);
 
 	r = amdgpu_device_ip_suspend_phase1(adev);
 
+	amdgpu_amdkfd_suspend(adev);
+
 	/* evict vram memory */
 	amdgpu_bo_evict_vram(adev);
 
@@ -3890,7 +3888,7 @@
 
 		amdgpu_device_lock_adev(tmp_adev, false);
 		r = amdgpu_device_pre_asic_reset(tmp_adev,
-						 NULL,
+						 (tmp_adev == adev) ? job : NULL,
 						 &need_full_reset);
 		/*TODO Should we stop ?*/
 		if (r) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -136,7 +136,7 @@
 {
 	uint32_t *p = (uint32_t *)binary;
 	uint64_t vram_size = (uint64_t)RREG32(mmRCC_CONFIG_MEMSIZE) << 20;
-	uint64_t pos = vram_size - BINARY_MAX_SIZE;
+	uint64_t pos = vram_size - DISCOVERY_TMR_SIZE;
 	unsigned long flags;
 
 	while (pos < vram_size) {
@@ -179,7 +179,7 @@
 	uint16_t checksum;
 	int r;
 
-	adev->discovery = kzalloc(BINARY_MAX_SIZE, GFP_KERNEL);
+	adev->discovery = kzalloc(DISCOVERY_TMR_SIZE, GFP_KERNEL);
 	if (!adev->discovery)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
@@ -24,6 +24,8 @@
 #ifndef __AMDGPU_DISCOVERY__
 #define __AMDGPU_DISCOVERY__
 
+#define DISCOVERY_TMR_SIZE  (64 << 10)
+
 int amdgpu_discovery_init(struct amdgpu_device *adev);
 void amdgpu_discovery_fini(struct amdgpu_device *adev);
 int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -282,7 +282,7 @@
 
 	ret = pm_runtime_get_sync(dev->dev);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	ret = drm_crtc_helper_set_config(set, ctx);
 
@@ -306,6 +306,7 @@
 		adev->have_disp_power_ref = false;
 	}
 
+out:
 	/* drop the power reference we got coming in here */
 	pm_runtime_put_autosuspend(dev->dev);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -145,7 +145,7 @@
 int amdgpu_mcbp = 0;
 int amdgpu_discovery = -1;
 int amdgpu_mes = 0;
-int amdgpu_noretry = 1;
+int amdgpu_noretry;
 
 struct amdgpu_mgpu_info mgpu_info = {
 	.mutex = __MUTEX_INITIALIZER(mgpu_info.mutex),
@@ -613,7 +613,7 @@
 module_param_named(mes, amdgpu_mes, int, 0444);
 
 MODULE_PARM_DESC(noretry,
-	"Disable retry faults (0 = retry enabled, 1 = retry disabled (default))");
+	"Disable retry faults (0 = retry enabled (default), 1 = retry disabled)");
 module_param_named(noretry, amdgpu_noretry, int, 0644);
 
 #ifdef CONFIG_HSA_AMD
@@ -1011,6 +1011,7 @@
 	{0x1002, 0x7319, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	{0x1002, 0x731A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	{0x1002, 0x731B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
+	{0x1002, 0x731E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	{0x1002, 0x731F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	/* Navi14 */
 	{0x1002, 0x7340, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14},
@@ -1023,6 +1024,7 @@
 
 	/* Navi12 */
 	{0x1002, 0x7360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI12|AMD_EXP_HW_SUPPORT},
+	{0x1002, 0x7362, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI12|AMD_EXP_HW_SUPPORT},
 
 	{0, 0, 0}
 };
@@ -1285,11 +1287,12 @@
 	dev = file_priv->minor->dev;
 	ret = pm_runtime_get_sync(dev->dev);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	ret = drm_ioctl(filp, cmd, arg);
 
 	pm_runtime_mark_last_busy(dev->dev);
+out:
 	pm_runtime_put_autosuspend(dev->dev);
 	return ret;
 }
@@ -1420,7 +1423,7 @@
 
 static struct drm_driver kms_driver = {
 	.driver_features =
-	    DRIVER_USE_AGP | DRIVER_ATOMIC |
+	    DRIVER_ATOMIC |
 	    DRIVER_GEM |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -133,8 +133,7 @@
 	u32 cpp;
 	u64 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			       AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS     |
-			       AMDGPU_GEM_CREATE_VRAM_CLEARED 	     |
-			       AMDGPU_GEM_CREATE_CPU_GTT_USWC;
+			       AMDGPU_GEM_CREATE_VRAM_CLEARED;
 
 	info = drm_get_format_info(adev->ddev, mode_cmd);
 	cpp = info->cpp[0];
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -404,7 +404,9 @@
 		ring->fence_drv.gpu_addr = adev->uvd.inst[ring->me].gpu_addr + index;
 	}
 	amdgpu_fence_write(ring, atomic_read(&ring->fence_drv.last_seq));
-	amdgpu_irq_get(adev, irq_src, irq_type);
+
+	if (irq_src)
+		amdgpu_irq_get(adev, irq_src, irq_type);
 
 	ring->fence_drv.irq_src = irq_src;
 	ring->fence_drv.irq_type = irq_type;
@@ -539,8 +541,9 @@
 			/* no need to trigger GPU reset as we are unloading */
 			amdgpu_fence_driver_force_completion(ring);
 		}
-		amdgpu_irq_put(adev, ring->fence_drv.irq_src,
-			       ring->fence_drv.irq_type);
+		if (ring->fence_drv.irq_src)
+			amdgpu_irq_put(adev, ring->fence_drv.irq_src,
+				       ring->fence_drv.irq_type);
 		drm_sched_fini(&ring->sched);
 		del_timer_sync(&ring->fence_drv.fallback_timer);
 		for (j = 0; j <= ring->fence_drv.num_fences_mask; ++j)
@@ -576,8 +579,9 @@
 		}
 
 		/* disable the interrupt */
-		amdgpu_irq_put(adev, ring->fence_drv.irq_src,
-			       ring->fence_drv.irq_type);
+		if (ring->fence_drv.irq_src)
+			amdgpu_irq_put(adev, ring->fence_drv.irq_src,
+				       ring->fence_drv.irq_type);
 	}
 }
 
@@ -603,8 +607,9 @@
 			continue;
 
 		/* enable the interrupt */
-		amdgpu_irq_get(adev, ring->fence_drv.irq_src,
-			       ring->fence_drv.irq_type);
+		if (ring->fence_drv.irq_src)
+			amdgpu_irq_get(adev, ring->fence_drv.irq_src,
+				       ring->fence_drv.irq_type);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -161,16 +161,17 @@
 
 	struct amdgpu_bo_list_entry vm_pd;
 	struct list_head list, duplicates;
+	struct dma_fence *fence = NULL;
 	struct ttm_validate_buffer tv;
 	struct ww_acquire_ctx ticket;
 	struct amdgpu_bo_va *bo_va;
-	int r;
+	long r;
 
 	INIT_LIST_HEAD(&list);
 	INIT_LIST_HEAD(&duplicates);
 
 	tv.bo = &bo->tbo;
-	tv.num_shared = 1;
+	tv.num_shared = 2;
 	list_add(&tv.head, &list);
 
 	amdgpu_vm_get_pd_bo(vm, &list, &vm_pd);
@@ -178,28 +179,34 @@
 	r = ttm_eu_reserve_buffers(&ticket, &list, false, &duplicates, false);
 	if (r) {
 		dev_err(adev->dev, "leaking bo va because "
-			"we fail to reserve bo (%d)\n", r);
+			"we fail to reserve bo (%ld)\n", r);
 		return;
 	}
 	bo_va = amdgpu_vm_bo_find(vm, bo);
-	if (bo_va && --bo_va->ref_count == 0) {
-		amdgpu_vm_bo_rmv(adev, bo_va);
+	if (!bo_va || --bo_va->ref_count)
+		goto out_unlock;
 
-		if (amdgpu_vm_ready(vm)) {
-			struct dma_fence *fence = NULL;
+	amdgpu_vm_bo_rmv(adev, bo_va);
+	if (!amdgpu_vm_ready(vm))
+		goto out_unlock;
 
-			r = amdgpu_vm_clear_freed(adev, vm, &fence);
-			if (unlikely(r)) {
-				dev_err(adev->dev, "failed to clear page "
-					"tables on GEM object close (%d)\n", r);
-			}
-
-			if (fence) {
-				amdgpu_bo_fence(bo, fence, true);
-				dma_fence_put(fence);
-			}
-		}
+	fence = dma_resv_get_excl(bo->tbo.base.resv);
+	if (fence) {
+		amdgpu_bo_fence(bo, fence, true);
+		fence = NULL;
 	}
+
+	r = amdgpu_vm_clear_freed(adev, vm, &fence);
+	if (r || !fence)
+		goto out_unlock;
+
+	amdgpu_bo_fence(bo, fence, true);
+	dma_fence_put(fence);
+
+out_unlock:
+	if (unlikely(r < 0))
+		dev_err(adev->dev, "failed to clear page "
+			"tables on GEM object close (%ld)\n", r);
 	ttm_eu_backoff_reservation(&ticket, &list);
 }
 
@@ -554,6 +561,7 @@
 	struct ww_acquire_ctx ticket;
 	struct list_head list, duplicates;
 	uint64_t va_flags;
+	uint64_t vm_size;
 	int r = 0;
 
 	if (args->va_address < AMDGPU_VA_RESERVED_SIZE) {
@@ -574,6 +582,15 @@
 
 	args->va_address &= AMDGPU_GMC_HOLE_MASK;
 
+	vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
+	vm_size -= AMDGPU_VA_RESERVED_SIZE;
+	if (args->va_address + args->map_size > vm_size) {
+		dev_dbg(&dev->pdev->dev,
+			"va_address 0x%llx is in top reserved area 0x%llx\n",
+			args->va_address + args->map_size, vm_size);
+		return -EINVAL;
+	}
+
 	if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
 		dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n",
 			args->flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
@@ -77,6 +77,7 @@
 struct amdgpu_vmhub {
 	uint32_t	ctx0_ptb_addr_lo32;
 	uint32_t	ctx0_ptb_addr_hi32;
+	uint32_t	vm_inv_eng0_sem;
 	uint32_t	vm_inv_eng0_req;
 	uint32_t	vm_inv_eng0_ack;
 	uint32_t	vm_context0_cntl;
@@ -156,6 +157,7 @@
 	uint32_t                srbm_soft_reset;
 	bool			prt_warning;
 	uint64_t		stolen_size;
+	uint32_t		sdpif_register;
 	/* apertures */
 	u64			shared_aperture_start;
 	u64			shared_aperture_end;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -36,7 +36,8 @@
 
 	memset(&ti, 0, sizeof(struct amdgpu_task_info));
 
-	if (amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) {
+	if (amdgpu_gpu_recovery &&
+	    amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) {
 		DRM_ERROR("ring %s timeout, but soft recovered\n",
 			  s_job->sched->name);
 		return;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -638,8 +638,12 @@
 		 * in the bitfields */
 		if (se_num == AMDGPU_INFO_MMR_SE_INDEX_MASK)
 			se_num = 0xffffffff;
+		else if (se_num >= AMDGPU_GFX_MAX_SE)
+			return -EINVAL;
 		if (sh_num == AMDGPU_INFO_MMR_SH_INDEX_MASK)
 			sh_num = 0xffffffff;
+		else if (sh_num >= AMDGPU_GFX_MAX_SH_PER_SE)
+			return -EINVAL;
 
 		if (info->read_mmr_reg.count > 128)
 			return -EINVAL;
@@ -667,9 +671,10 @@
 		return n ? -EFAULT : 0;
 	}
 	case AMDGPU_INFO_DEV_INFO: {
-		struct drm_amdgpu_info_device dev_info = {};
+		struct drm_amdgpu_info_device dev_info;
 		uint64_t vm_size;
 
+		memset(&dev_info, 0, sizeof(dev_info));
 		dev_info.device_id = dev->pdev->device;
 		dev_info.chip_rev = adev->rev_id;
 		dev_info.external_rev = adev->external_rev_id;
@@ -975,7 +980,7 @@
 
 	r = pm_runtime_get_sync(dev->dev);
 	if (r < 0)
-		return r;
+		goto pm_put;
 
 	fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
 	if (unlikely(!fpriv)) {
@@ -1026,6 +1031,7 @@
 
 out_suspend:
 	pm_runtime_mark_last_busy(dev->dev);
+pm_put:
 	pm_runtime_put_autosuspend(dev->dev);
 
 	return r;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -343,6 +343,67 @@
 }
 
 /**
+ * amdgpu_bo_create_kernel_at - create BO for kernel use at specific location
+ *
+ * @adev: amdgpu device object
+ * @offset: offset of the BO
+ * @size: size of the BO
+ * @domain: where to place it
+ * @bo_ptr:  used to initialize BOs in structures
+ * @cpu_addr: optional CPU address mapping
+ *
+ * Creates a kernel BO at a specific offset in the address space of the domain.
+ *
+ * Returns:
+ * 0 on success, negative error code otherwise.
+ */
+int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev,
+			       uint64_t offset, uint64_t size, uint32_t domain,
+			       struct amdgpu_bo **bo_ptr, void **cpu_addr)
+{
+	struct ttm_operation_ctx ctx = { false, false };
+	unsigned int i;
+	int r;
+
+	offset &= PAGE_MASK;
+	size = ALIGN(size, PAGE_SIZE);
+
+	r = amdgpu_bo_create_reserved(adev, size, PAGE_SIZE, domain, bo_ptr,
+				      NULL, NULL);
+	if (r)
+		return r;
+
+	/*
+	 * Remove the original mem node and create a new one at the request
+	 * position.
+	 */
+	for (i = 0; i < (*bo_ptr)->placement.num_placement; ++i) {
+		(*bo_ptr)->placements[i].fpfn = offset >> PAGE_SHIFT;
+		(*bo_ptr)->placements[i].lpfn = (offset + size) >> PAGE_SHIFT;
+	}
+
+	ttm_bo_mem_put(&(*bo_ptr)->tbo, &(*bo_ptr)->tbo.mem);
+	r = ttm_bo_mem_space(&(*bo_ptr)->tbo, &(*bo_ptr)->placement,
+			     &(*bo_ptr)->tbo.mem, &ctx);
+	if (r)
+		goto error;
+
+	if (cpu_addr) {
+		r = amdgpu_bo_kmap(*bo_ptr, cpu_addr);
+		if (r)
+			goto error;
+	}
+
+	amdgpu_bo_unreserve(*bo_ptr);
+	return 0;
+
+error:
+	amdgpu_bo_unreserve(*bo_ptr);
+	amdgpu_bo_unref(bo_ptr);
+	return r;
+}
+
+/**
  * amdgpu_bo_free_kernel - free BO for kernel use
  *
  * @bo: amdgpu BO to free
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
@@ -237,6 +237,9 @@
 			    unsigned long size, int align,
 			    u32 domain, struct amdgpu_bo **bo_ptr,
 			    u64 *gpu_addr, void **cpu_addr);
+int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev,
+			       uint64_t offset, uint64_t size, uint32_t domain,
+			       struct amdgpu_bo **bo_ptr, void **cpu_addr);
 void amdgpu_bo_free_kernel(struct amdgpu_bo **bo, u64 *gpu_addr,
 			   void **cpu_addr);
 int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -90,7 +90,8 @@
 			adev->pm.ac_power = true;
 		else
 			adev->pm.ac_power = false;
-		if (adev->powerplay.pp_funcs->enable_bapm)
+		if (adev->powerplay.pp_funcs &&
+		    adev->powerplay.pp_funcs->enable_bapm)
 			amdgpu_dpm_enable_bapm(adev, adev->pm.ac_power);
 		mutex_unlock(&adev->pm.mutex);
 	}
@@ -369,6 +370,15 @@
 	if (current_level == level)
 		return count;
 
+	if (adev->asic_type == CHIP_RAVEN) {
+		if (adev->rev_id < 8) {
+			if (current_level != AMD_DPM_FORCED_LEVEL_MANUAL && level == AMD_DPM_FORCED_LEVEL_MANUAL)
+				amdgpu_gfx_off_ctrl(adev, false);
+			else if (current_level == AMD_DPM_FORCED_LEVEL_MANUAL && level != AMD_DPM_FORCED_LEVEL_MANUAL)
+				amdgpu_gfx_off_ctrl(adev, true);
+		}
+	}
+
 	/* profile_exit setting is valid only when current mode is in profile mode */
 	if (!(current_level & (AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD |
 	    AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK |
@@ -415,8 +425,11 @@
 		ret = smu_get_power_num_states(&adev->smu, &data);
 		if (ret)
 			return ret;
-	} else if (adev->powerplay.pp_funcs->get_pp_num_states)
+	} else if (adev->powerplay.pp_funcs->get_pp_num_states) {
 		amdgpu_dpm_get_pp_num_states(adev, &data);
+	} else {
+		memset(&data, 0, sizeof(data));
+	}
 
 	buf_len = snprintf(buf, PAGE_SIZE, "states: %d\n", data.nums);
 	for (i = 0; i < data.nums; i++)
@@ -857,7 +870,7 @@
 static ssize_t amdgpu_read_mask(const char *buf, size_t count, uint32_t *mask)
 {
 	int ret;
-	long level;
+	unsigned long level;
 	char *sub_str = NULL;
 	char *tmp;
 	char buf_cpy[AMDGPU_MASK_BUF_MAX + 1];
@@ -873,8 +886,8 @@
 	while (tmp[0]) {
 		sub_str = strsep(&tmp, delimiter);
 		if (strlen(sub_str)) {
-			ret = kstrtol(sub_str, 0, &level);
-			if (ret)
+			ret = kstrtoul(sub_str, 0, &level);
+			if (ret || level > 31)
 				return -EINVAL;
 			*mask |= 1 << level;
 		} else
@@ -2088,7 +2101,7 @@
 	if (r)
 		return r;
 
-	return snprintf(buf, PAGE_SIZE, "%d\n", sclk * 10 * 1000);
+	return snprintf(buf, PAGE_SIZE, "%u\n", sclk * 10 * 1000);
 }
 
 static ssize_t amdgpu_hwmon_show_sclk_label(struct device *dev,
@@ -2118,7 +2131,7 @@
 	if (r)
 		return r;
 
-	return snprintf(buf, PAGE_SIZE, "%d\n", mclk * 10 * 1000);
+	return snprintf(buf, PAGE_SIZE, "%u\n", mclk * 10 * 1000);
 }
 
 static ssize_t amdgpu_hwmon_show_mclk_label(struct device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -65,12 +65,6 @@
 /* inject address is 52 bits */
 #define	RAS_UMC_INJECT_ADDR_LIMIT	(0x1ULL << 52)
 
-static int amdgpu_ras_reserve_vram(struct amdgpu_device *adev,
-		uint64_t offset, uint64_t size,
-		struct amdgpu_bo **bo_ptr);
-static int amdgpu_ras_release_vram(struct amdgpu_device *adev,
-		struct amdgpu_bo **bo_ptr);
-
 static ssize_t amdgpu_ras_debugfs_read(struct file *f, char __user *buf,
 					size_t size, loff_t *pos)
 {
@@ -1214,75 +1208,6 @@
 	atomic_set(&ras->in_recovery, 0);
 }
 
-static int amdgpu_ras_release_vram(struct amdgpu_device *adev,
-		struct amdgpu_bo **bo_ptr)
-{
-	/* no need to free it actually. */
-	amdgpu_bo_free_kernel(bo_ptr, NULL, NULL);
-	return 0;
-}
-
-/* reserve vram with size@offset */
-static int amdgpu_ras_reserve_vram(struct amdgpu_device *adev,
-		uint64_t offset, uint64_t size,
-		struct amdgpu_bo **bo_ptr)
-{
-	struct ttm_operation_ctx ctx = { false, false };
-	struct amdgpu_bo_param bp;
-	int r = 0;
-	int i;
-	struct amdgpu_bo *bo;
-
-	if (bo_ptr)
-		*bo_ptr = NULL;
-	memset(&bp, 0, sizeof(bp));
-	bp.size = size;
-	bp.byte_align = PAGE_SIZE;
-	bp.domain = AMDGPU_GEM_DOMAIN_VRAM;
-	bp.flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS |
-		AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
-	bp.type = ttm_bo_type_kernel;
-	bp.resv = NULL;
-
-	r = amdgpu_bo_create(adev, &bp, &bo);
-	if (r)
-		return -EINVAL;
-
-	r = amdgpu_bo_reserve(bo, false);
-	if (r)
-		goto error_reserve;
-
-	offset = ALIGN(offset, PAGE_SIZE);
-	for (i = 0; i < bo->placement.num_placement; ++i) {
-		bo->placements[i].fpfn = offset >> PAGE_SHIFT;
-		bo->placements[i].lpfn = (offset + size) >> PAGE_SHIFT;
-	}
-
-	ttm_bo_mem_put(&bo->tbo, &bo->tbo.mem);
-	r = ttm_bo_mem_space(&bo->tbo, &bo->placement, &bo->tbo.mem, &ctx);
-	if (r)
-		goto error_pin;
-
-	r = amdgpu_bo_pin_restricted(bo,
-			AMDGPU_GEM_DOMAIN_VRAM,
-			offset,
-			offset + size);
-	if (r)
-		goto error_pin;
-
-	if (bo_ptr)
-		*bo_ptr = bo;
-
-	amdgpu_bo_unreserve(bo);
-	return r;
-
-error_pin:
-	amdgpu_bo_unreserve(bo);
-error_reserve:
-	amdgpu_bo_unref(&bo);
-	return r;
-}
-
 /* alloc/realloc bps array */
 static int amdgpu_ras_realloc_eh_data_space(struct amdgpu_device *adev,
 		struct ras_err_handler_data *data, int pages)
@@ -1345,7 +1270,7 @@
 	struct amdgpu_ras *con = amdgpu_ras_get_context(adev);
 	struct ras_err_handler_data *data;
 	uint64_t bp;
-	struct amdgpu_bo *bo;
+	struct amdgpu_bo *bo = NULL;
 	int i;
 
 	if (!con || !con->eh_data)
@@ -1359,12 +1284,14 @@
 	for (i = data->last_reserved; i < data->count; i++) {
 		bp = data->bps[i].bp;
 
-		if (amdgpu_ras_reserve_vram(adev, bp << PAGE_SHIFT,
-					PAGE_SIZE, &bo))
+		if (amdgpu_bo_create_kernel_at(adev, bp << PAGE_SHIFT, PAGE_SIZE,
+					       AMDGPU_GEM_DOMAIN_VRAM,
+					       &bo, NULL))
 			DRM_ERROR("RAS ERROR: reserve vram %llx fail\n", bp);
 
 		data->bps[i].bo = bo;
 		data->last_reserved = i + 1;
+		bo = NULL;
 	}
 out:
 	mutex_unlock(&con->recovery_lock);
@@ -1390,7 +1317,7 @@
 	for (i = data->last_reserved - 1; i >= 0; i--) {
 		bo = data->bps[i].bo;
 
-		amdgpu_ras_release_vram(adev, &bo);
+		amdgpu_bo_free_kernel(&bo, NULL, NULL);
 
 		data->bps[i].bo = bo;
 		data->last_reserved = i;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
@@ -124,13 +124,12 @@
  */
 int amdgpu_gfx_rlc_init_csb(struct amdgpu_device *adev)
 {
-	volatile u32 *dst_ptr;
 	u32 dws;
 	int r;
 
 	/* allocate clear state block */
 	adev->gfx.rlc.clear_state_size = dws = adev->gfx.rlc.funcs->get_csb_size(adev);
-	r = amdgpu_bo_create_reserved(adev, dws * 4, PAGE_SIZE,
+	r = amdgpu_bo_create_kernel(adev, dws * 4, PAGE_SIZE,
 				      AMDGPU_GEM_DOMAIN_VRAM,
 				      &adev->gfx.rlc.clear_state_obj,
 				      &adev->gfx.rlc.clear_state_gpu_addr,
@@ -141,13 +140,6 @@
 		return r;
 	}
 
-	/* set up the cs buffer */
-	dst_ptr = adev->gfx.rlc.cs_ptr;
-	adev->gfx.rlc.funcs->get_csb_buffer(adev, dst_ptr);
-	amdgpu_bo_kunmap(adev->gfx.rlc.clear_state_obj);
-	amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
@@ -138,6 +138,7 @@
 		}
 
 		dma_fence_put(fence);
+		fence = NULL;
 
 		r = amdgpu_bo_kmap(vram_obj, &vram_map);
 		if (r) {
@@ -183,6 +184,7 @@
 		}
 
 		dma_fence_put(fence);
+		fence = NULL;
 
 		r = amdgpu_bo_kmap(gtt_obj[i], &gtt_map);
 		if (r) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -21,7 +21,7 @@
  *
  */
 
-#if !defined(_AMDGPU_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
+#if !defined(_AMDGPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
 #define _AMDGPU_TRACE_H_
 
 #include <linux/stringify.h>
@@ -170,7 +170,7 @@
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
 			     __field(struct dma_fence *, fence)
-			     __field(char *, ring_name)
+			     __string(ring, to_amdgpu_ring(job->base.sched)->name)
 			     __field(u32, num_ibs)
 			     ),
 
@@ -179,12 +179,12 @@
 			   __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
-			   __entry->ring_name = to_amdgpu_ring(job->base.sched)->name;
+			   __assign_str(ring, to_amdgpu_ring(job->base.sched)->name)
 			   __entry->num_ibs = job->num_ibs;
 			   ),
 	    TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
 		      __entry->sched_job_id, __get_str(timeline), __entry->context,
-		      __entry->seqno, __entry->ring_name, __entry->num_ibs)
+		      __entry->seqno, __get_str(ring), __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,
@@ -195,7 +195,7 @@
 			     __string(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job))
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
-			     __field(char *, ring_name)
+			     __string(ring, to_amdgpu_ring(job->base.sched)->name)
 			     __field(u32, num_ibs)
 			     ),
 
@@ -204,12 +204,12 @@
 			   __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
-			   __entry->ring_name = to_amdgpu_ring(job->base.sched)->name;
+			   __assign_str(ring, to_amdgpu_ring(job->base.sched)->name)
 			   __entry->num_ibs = job->num_ibs;
 			   ),
 	    TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
 		      __entry->sched_job_id, __get_str(timeline), __entry->context,
-		      __entry->seqno, __entry->ring_name, __entry->num_ibs)
+		      __entry->seqno, __get_str(ring), __entry->num_ibs)
 );
 
 
@@ -468,7 +468,7 @@
 	    TP_PROTO(struct amdgpu_job *sched_job, struct dma_fence *fence),
 	    TP_ARGS(sched_job, fence),
 	    TP_STRUCT__entry(
-			     __field(const char *,name)
+			     __string(ring, sched_job->base.sched->name);
 			     __field(uint64_t, id)
 			     __field(struct dma_fence *, fence)
 			     __field(uint64_t, ctx)
@@ -476,14 +476,14 @@
 			     ),
 
 	    TP_fast_assign(
-			   __entry->name = sched_job->base.sched->name;
+			   __assign_str(ring, sched_job->base.sched->name)
 			   __entry->id = sched_job->base.id;
 			   __entry->fence = fence;
 			   __entry->ctx = fence->context;
 			   __entry->seqno = fence->seqno;
 			   ),
 	    TP_printk("job ring=%s, id=%llu, need pipe sync to fence=%p, context=%llu, seq=%u",
-		      __entry->name, __entry->id,
+		      __get_str(ring), __entry->id,
 		      __entry->fence, __entry->ctx,
 		      __entry->seqno)
 );
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -35,6 +35,7 @@
 #include <linux/hmm.h>
 #include <linux/pagemap.h>
 #include <linux/sched/task.h>
+#include <linux/sched/mm.h>
 #include <linux/seq_file.h>
 #include <linux/slab.h>
 #include <linux/swap.h>
@@ -788,7 +789,7 @@
 	struct hmm_mirror *mirror = bo->mn ? &bo->mn->mirror : NULL;
 	struct ttm_tt *ttm = bo->tbo.ttm;
 	struct amdgpu_ttm_tt *gtt = (void *)ttm;
-	struct mm_struct *mm = gtt->usertask->mm;
+	struct mm_struct *mm;
 	unsigned long start = gtt->userptr;
 	struct vm_area_struct *vma;
 	struct hmm_range *range;
@@ -796,25 +797,14 @@
 	uint64_t *pfns;
 	int r = 0;
 
-	if (!mm) /* Happens during process shutdown */
-		return -ESRCH;
-
 	if (unlikely(!mirror)) {
 		DRM_DEBUG_DRIVER("Failed to get hmm_mirror\n");
-		r = -EFAULT;
-		goto out;
+		return -EFAULT;
 	}
 
-	vma = find_vma(mm, start);
-	if (unlikely(!vma || start < vma->vm_start)) {
-		r = -EFAULT;
-		goto out;
-	}
-	if (unlikely((gtt->userflags & AMDGPU_GEM_USERPTR_ANONONLY) &&
-		vma->vm_file)) {
-		r = -EPERM;
-		goto out;
-	}
+	mm = mirror->hmm->mmu_notifier.mm;
+	if (!mmget_not_zero(mm)) /* Happens during process shutdown */
+		return -ESRCH;
 
 	range = kzalloc(sizeof(*range), GFP_KERNEL);
 	if (unlikely(!range)) {
@@ -847,6 +837,17 @@
 	hmm_range_wait_until_valid(range, HMM_RANGE_DEFAULT_TIMEOUT);
 
 	down_read(&mm->mmap_sem);
+	vma = find_vma(mm, start);
+	if (unlikely(!vma || start < vma->vm_start)) {
+		r = -EFAULT;
+		goto out_unlock;
+	}
+	if (unlikely((gtt->userflags & AMDGPU_GEM_USERPTR_ANONONLY) &&
+		vma->vm_file)) {
+		r = -EPERM;
+		goto out_unlock;
+	}
+
 	r = hmm_range_fault(range, 0);
 	up_read(&mm->mmap_sem);
 
@@ -865,15 +866,19 @@
 	}
 
 	gtt->range = range;
+	mmput(mm);
 
 	return 0;
 
+out_unlock:
+	up_read(&mm->mmap_sem);
 out_free_pfns:
 	hmm_range_unregister(range);
 	kvfree(pfns);
 out_free_ranges:
 	kfree(range);
 out:
+	mmput(mm);
 	return r;
 }
 
@@ -962,6 +967,7 @@
 
 release_sg:
 	kfree(ttm->sg);
+	ttm->sg = NULL;
 	return r;
 }
 
@@ -1634,81 +1640,25 @@
  */
 static int amdgpu_ttm_fw_reserve_vram_init(struct amdgpu_device *adev)
 {
-	struct ttm_operation_ctx ctx = { false, false };
-	struct amdgpu_bo_param bp;
-	int r = 0;
-	int i;
-	u64 vram_size = adev->gmc.visible_vram_size;
-	u64 offset = adev->fw_vram_usage.start_offset;
-	u64 size = adev->fw_vram_usage.size;
-	struct amdgpu_bo *bo;
-
-	memset(&bp, 0, sizeof(bp));
-	bp.size = adev->fw_vram_usage.size;
-	bp.byte_align = PAGE_SIZE;
-	bp.domain = AMDGPU_GEM_DOMAIN_VRAM;
-	bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
-		AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
-	bp.type = ttm_bo_type_kernel;
-	bp.resv = NULL;
+	uint64_t vram_size = adev->gmc.visible_vram_size;
+	int r;
+
 	adev->fw_vram_usage.va = NULL;
 	adev->fw_vram_usage.reserved_bo = NULL;
 
-	if (adev->fw_vram_usage.size > 0 &&
-		adev->fw_vram_usage.size <= vram_size) {
-
-		r = amdgpu_bo_create(adev, &bp,
-				     &adev->fw_vram_usage.reserved_bo);
-		if (r)
-			goto error_create;
-
-		r = amdgpu_bo_reserve(adev->fw_vram_usage.reserved_bo, false);
-		if (r)
-			goto error_reserve;
-
-		/* remove the original mem node and create a new one at the
-		 * request position
-		 */
-		bo = adev->fw_vram_usage.reserved_bo;
-		offset = ALIGN(offset, PAGE_SIZE);
-		for (i = 0; i < bo->placement.num_placement; ++i) {
-			bo->placements[i].fpfn = offset >> PAGE_SHIFT;
-			bo->placements[i].lpfn = (offset + size) >> PAGE_SHIFT;
-		}
-
-		ttm_bo_mem_put(&bo->tbo, &bo->tbo.mem);
-		r = ttm_bo_mem_space(&bo->tbo, &bo->placement,
-				     &bo->tbo.mem, &ctx);
-		if (r)
-			goto error_pin;
-
-		r = amdgpu_bo_pin_restricted(adev->fw_vram_usage.reserved_bo,
-			AMDGPU_GEM_DOMAIN_VRAM,
-			adev->fw_vram_usage.start_offset,
-			(adev->fw_vram_usage.start_offset +
-			adev->fw_vram_usage.size));
-		if (r)
-			goto error_pin;
-		r = amdgpu_bo_kmap(adev->fw_vram_usage.reserved_bo,
-			&adev->fw_vram_usage.va);
-		if (r)
-			goto error_kmap;
-
-		amdgpu_bo_unreserve(adev->fw_vram_usage.reserved_bo);
-	}
-	return r;
+	if (adev->fw_vram_usage.size == 0 ||
+	    adev->fw_vram_usage.size > vram_size)
+		return 0;
 
-error_kmap:
-	amdgpu_bo_unpin(adev->fw_vram_usage.reserved_bo);
-error_pin:
-	amdgpu_bo_unreserve(adev->fw_vram_usage.reserved_bo);
-error_reserve:
-	amdgpu_bo_unref(&adev->fw_vram_usage.reserved_bo);
-error_create:
-	adev->fw_vram_usage.va = NULL;
-	adev->fw_vram_usage.reserved_bo = NULL;
+	return amdgpu_bo_create_kernel_at(adev,
+					  adev->fw_vram_usage.start_offset,
+					  adev->fw_vram_usage.size,
+					  AMDGPU_GEM_DOMAIN_VRAM,
+					  &adev->fw_vram_usage.reserved_bo,
+					  &adev->fw_vram_usage.va);
 	return r;
 }
+
 /**
  * amdgpu_ttm_init - Init the memory management (ttm) as well as various
  * gtt/vram related fields.
@@ -1781,6 +1731,20 @@
 				    NULL, &stolen_vga_buf);
 	if (r)
 		return r;
+
+	/*
+	 * reserve one TMR (64K) memory at the top of VRAM which holds
+	 * IP Discovery data and is protected by PSP.
+	 */
+	r = amdgpu_bo_create_kernel_at(adev,
+				       adev->gmc.real_vram_size - DISCOVERY_TMR_SIZE,
+				       DISCOVERY_TMR_SIZE,
+				       AMDGPU_GEM_DOMAIN_VRAM,
+				       &adev->discovery_memory,
+				       NULL);
+	if (r)
+		return r;
+
 	DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
 		 (unsigned) (adev->gmc.real_vram_size / (1024 * 1024)));
 
@@ -1845,6 +1809,9 @@
 	void *stolen_vga_buf;
 	/* return the VGA stolen memory (if any) back to VRAM */
 	amdgpu_bo_free_kernel(&adev->stolen_vga_memory, NULL, &stolen_vga_buf);
+
+	/* return the IP Discovery TMR memory back to VRAM */
+	amdgpu_bo_free_kernel(&adev->discovery_memory, NULL, NULL);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -55,11 +55,9 @@
 MODULE_FIRMWARE(FIRMWARE_RAVEN);
 MODULE_FIRMWARE(FIRMWARE_PICASSO);
 MODULE_FIRMWARE(FIRMWARE_RAVEN2);
-MODULE_FIRMWARE(FIRMWARE_ARCTURUS);
 MODULE_FIRMWARE(FIRMWARE_RENOIR);
 MODULE_FIRMWARE(FIRMWARE_NAVI10);
 MODULE_FIRMWARE(FIRMWARE_NAVI14);
-MODULE_FIRMWARE(FIRMWARE_NAVI12);
 
 static void amdgpu_vcn_idle_work_handler(struct work_struct *work);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1034,10 +1034,8 @@
 		id->oa_base != job->oa_base ||
 		id->oa_size != job->oa_size);
 	bool vm_flush_needed = job->vm_needs_flush;
-	bool pasid_mapping_needed = id->pasid != job->pasid ||
-		!id->pasid_mapping ||
-		!dma_fence_is_signaled(id->pasid_mapping);
 	struct dma_fence *fence = NULL;
+	bool pasid_mapping_needed = false;
 	unsigned patch_offset = 0;
 	int r;
 
@@ -1047,6 +1045,12 @@
 		pasid_mapping_needed = true;
 	}
 
+	mutex_lock(&id_mgr->lock);
+	if (id->pasid != job->pasid || !id->pasid_mapping ||
+	    !dma_fence_is_signaled(id->pasid_mapping))
+		pasid_mapping_needed = true;
+	mutex_unlock(&id_mgr->lock);
+
 	gds_switch_needed &= !!ring->funcs->emit_gds_switch;
 	vm_flush_needed &= !!ring->funcs->emit_vm_flush  &&
 			job->vm_pd_addr != AMDGPU_BO_INVALID_OFFSET;
@@ -1086,9 +1090,11 @@
 	}
 
 	if (pasid_mapping_needed) {
+		mutex_lock(&id_mgr->lock);
 		id->pasid = job->pasid;
 		dma_fence_put(id->pasid_mapping);
 		id->pasid_mapping = dma_fence_get(fence);
+		mutex_unlock(&id_mgr->lock);
 	}
 	dma_fence_put(fence);
 
@@ -2861,10 +2867,17 @@
 	WARN_ONCE((vm->use_cpu_for_update && !amdgpu_gmc_vram_full_visible(&adev->gmc)),
 		  "CPU update of VM recommended only for large BAR system\n");
 
-	if (vm->use_cpu_for_update)
+	if (vm->use_cpu_for_update) {
+		/* Sync with last SDMA update/clear before switching to CPU */
+		r = amdgpu_bo_sync_wait(vm->root.base.bo,
+					AMDGPU_FENCE_OWNER_UNDEFINED, true);
+		if (r)
+			goto free_idr;
+
 		vm->update_funcs = &amdgpu_vm_cpu_funcs;
-	else
+	} else {
 		vm->update_funcs = &amdgpu_vm_sdma_funcs;
+	}
 	dma_fence_put(vm->last_update);
 	vm->last_update = NULL;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
@@ -105,8 +105,8 @@
 #define AMDGPU_MMHUB_0				1
 #define AMDGPU_MMHUB_1				2
 
-/* hardcode that limit for now */
-#define AMDGPU_VA_RESERVED_SIZE			(1ULL << 20)
+/* Reserve 2MB at top/bottom of address space for kernel use */
+#define AMDGPU_VA_RESERVED_SIZE			(2ULL << 20)
 
 /* max vmids dedicated for process */
 #define AMDGPU_VM_MAX_RESERVED_VMID	1
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/atom.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/atom.c
@@ -744,8 +744,8 @@
 			cjiffies = jiffies;
 			if (time_after(cjiffies, ctx->last_jump_jiffies)) {
 				cjiffies -= ctx->last_jump_jiffies;
-				if ((jiffies_to_msecs(cjiffies) > 5000)) {
-					DRM_ERROR("atombios stuck in loop for more than 5secs aborting\n");
+				if ((jiffies_to_msecs(cjiffies) > 10000)) {
+					DRM_ERROR("atombios stuck in loop for more than 10secs aborting\n");
 					ctx->abort = true;
 				}
 			} else {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
@@ -228,7 +228,7 @@
 	u32 extra_bits = vmid & 0xf;
 
 	/* IB packet must end on a 8 DW boundary */
-	cik_sdma_ring_insert_nop(ring, (12 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	cik_sdma_ring_insert_nop(ring, (4 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_INDIRECT_BUFFER, 0, extra_bits));
 	amdgpu_ring_write(ring, ib->gpu_addr & 0xffffffe0); /* base must be 32 byte aligned */
@@ -811,7 +811,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
@@ -1071,22 +1071,19 @@
 {
 	u32 srbm_soft_reset = 0;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-	u32 tmp = RREG32(mmSRBM_STATUS2);
+	u32 tmp;
 
-	if (tmp & SRBM_STATUS2__SDMA_BUSY_MASK) {
-		/* sdma0 */
-		tmp = RREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET);
-		tmp |= SDMA0_F32_CNTL__HALT_MASK;
-		WREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET, tmp);
-		srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA_MASK;
-	}
-	if (tmp & SRBM_STATUS2__SDMA1_BUSY_MASK) {
-		/* sdma1 */
-		tmp = RREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET);
-		tmp |= SDMA0_F32_CNTL__HALT_MASK;
-		WREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET, tmp);
-		srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA1_MASK;
-	}
+	/* sdma0 */
+	tmp = RREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET);
+	tmp |= SDMA0_F32_CNTL__HALT_MASK;
+	WREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET, tmp);
+	srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA_MASK;
+
+	/* sdma1 */
+	tmp = RREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET);
+	tmp |= SDMA0_F32_CNTL__HALT_MASK;
+	WREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET, tmp);
+	srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA1_MASK;
 
 	if (srbm_soft_reset) {
 		tmp = RREG32(mmSRBM_SOFT_RESET);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/cz_ih.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/cz_ih.c
@@ -193,19 +193,30 @@
 
 	wptr = le32_to_cpu(*ih->wptr_cpu);
 
-	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
-		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
-		/* When a ring buffer overflow happen start parsing interrupt
-		 * from the last not overwritten vector (wptr + 16). Hopefully
-		 * this should allow us to catchup.
-		 */
-		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
-			wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
-		ih->rptr = (wptr + 16) & ih->ptr_mask;
-		tmp = RREG32(mmIH_RB_CNTL);
-		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
-		WREG32(mmIH_RB_CNTL, tmp);
-	}
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	/* Double check that the overflow wasn't already cleared. */
+	wptr = RREG32(mmIH_RB_WPTR);
+
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
+
+	/* When a ring buffer overflow happen start parsing interrupt
+	 * from the last not overwritten vector (wptr + 16). Hopefully
+	 * this should allow us to catchup.
+	 */
+	dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
+		wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
+	ih->rptr = (wptr + 16) & ih->ptr_mask;
+	tmp = RREG32(mmIH_RB_CNTL);
+	tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
+	WREG32(mmIH_RB_CNTL, tmp);
+
+
+out:
 	return (wptr & ih->ptr_mask);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/df_v3_6.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/df_v3_6.c
@@ -261,23 +261,29 @@
 {
 	u32 tmp;
 
-	/* Put DF on broadcast mode */
-	adev->df_funcs->enable_broadcast_mode(adev, true);
+	if (adev->cg_flags & AMD_CG_SUPPORT_DF_MGCG) {
+		/* Put DF on broadcast mode */
+		adev->df_funcs->enable_broadcast_mode(adev, true);
 
-	if (enable && (adev->cg_flags & AMD_CG_SUPPORT_DF_MGCG)) {
-		tmp = RREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater);
-		tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
-		tmp |= DF_V3_6_MGCG_ENABLE_15_CYCLE_DELAY;
-		WREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater, tmp);
-	} else {
-		tmp = RREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater);
-		tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
-		tmp |= DF_V3_6_MGCG_DISABLE;
-		WREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater, tmp);
-	}
+		if (enable) {
+			tmp = RREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater);
+			tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
+			tmp |= DF_V3_6_MGCG_ENABLE_15_CYCLE_DELAY;
+			WREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater, tmp);
+		} else {
+			tmp = RREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater);
+			tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
+			tmp |= DF_V3_6_MGCG_DISABLE;
+			WREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater, tmp);
+		}
 
-	/* Exit broadcast mode */
-	adev->df_funcs->enable_broadcast_mode(adev, false);
+		/* Exit broadcast mode */
+		adev->df_funcs->enable_broadcast_mode(adev, false);
+	}
 }
 
 static void df_v3_6_get_clockgating_state(struct amdgpu_device *adev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
@@ -82,13 +82,6 @@
 MODULE_FIRMWARE("amdgpu/navi14_mec2.bin");
 MODULE_FIRMWARE("amdgpu/navi14_rlc.bin");
 
-MODULE_FIRMWARE("amdgpu/navi12_ce.bin");
-MODULE_FIRMWARE("amdgpu/navi12_pfp.bin");
-MODULE_FIRMWARE("amdgpu/navi12_me.bin");
-MODULE_FIRMWARE("amdgpu/navi12_mec.bin");
-MODULE_FIRMWARE("amdgpu/navi12_mec2.bin");
-MODULE_FIRMWARE("amdgpu/navi12_rlc.bin");
-
 static const struct soc15_reg_golden golden_settings_gc_10_1[] =
 {
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmCB_HW_CONTROL_4, 0xffffffff, 0x00400014),
@@ -993,39 +986,6 @@
 	return 0;
 }
 
-static int gfx_v10_0_csb_vram_pin(struct amdgpu_device *adev)
-{
-	int r;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false);
-	if (unlikely(r != 0))
-		return r;
-
-	r = amdgpu_bo_pin(adev->gfx.rlc.clear_state_obj,
-			AMDGPU_GEM_DOMAIN_VRAM);
-	if (!r)
-		adev->gfx.rlc.clear_state_gpu_addr =
-			amdgpu_bo_gpu_offset(adev->gfx.rlc.clear_state_obj);
-
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-	return r;
-}
-
-static void gfx_v10_0_csb_vram_unpin(struct amdgpu_device *adev)
-{
-	int r;
-
-	if (!adev->gfx.rlc.clear_state_obj)
-		return;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-	if (likely(r == 0)) {
-		amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-		amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-	}
-}
-
 static void gfx_v10_0_mec_fini(struct amdgpu_device *adev)
 {
 	amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
@@ -1785,27 +1745,34 @@
 	WREG32_SOC15(GC, 0, mmCP_INT_CNTL_RING0, tmp);
 }
 
-static void gfx_v10_0_init_csb(struct amdgpu_device *adev)
+static int gfx_v10_0_init_csb(struct amdgpu_device *adev)
 {
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
+
 	/* csib */
 	WREG32_SOC15(GC, 0, mmRLC_CSIB_ADDR_HI,
 		     adev->gfx.rlc.clear_state_gpu_addr >> 32);
 	WREG32_SOC15(GC, 0, mmRLC_CSIB_ADDR_LO,
 		     adev->gfx.rlc.clear_state_gpu_addr & 0xfffffffc);
 	WREG32_SOC15(GC, 0, mmRLC_CSIB_LENGTH, adev->gfx.rlc.clear_state_size);
+
+	return 0;
 }
 
-static void gfx_v10_0_init_pg(struct amdgpu_device *adev)
+static int gfx_v10_0_init_pg(struct amdgpu_device *adev)
 {
 	int i;
+	int r;
 
-	gfx_v10_0_init_csb(adev);
+	r = gfx_v10_0_init_csb(adev);
+	if (r)
+		return r;
 
 	for (i = 0; i < adev->num_vmhubs; i++)
 		amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
 
 	/* TODO: init power gating */
-	return;
+	return 0;
 }
 
 void gfx_v10_0_rlc_stop(struct amdgpu_device *adev)
@@ -1907,7 +1874,10 @@
 		r = gfx_v10_0_wait_for_rlc_autoload_complete(adev);
 		if (r)
 			return r;
-		gfx_v10_0_init_pg(adev);
+
+		r = gfx_v10_0_init_pg(adev);
+		if (r)
+			return r;
 
 		/* enable RLC SRM */
 		gfx_v10_0_rlc_enable_srm(adev);
@@ -1933,7 +1903,10 @@
 				return r;
 		}
 
-		gfx_v10_0_init_pg(adev);
+		r = gfx_v10_0_init_pg(adev);
+		if (r)
+			return r;
+
 		adev->gfx.rlc.funcs->start(adev);
 
 		if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) {
@@ -2400,7 +2373,7 @@
 	return 0;
 }
 
-static void gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable)
+static int gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable)
 {
 	int i;
 	u32 tmp = RREG32_SOC15(GC, 0, mmCP_ME_CNTL);
@@ -2413,7 +2386,17 @@
 			adev->gfx.gfx_ring[i].sched.ready = false;
 	}
 	WREG32_SOC15(GC, 0, mmCP_ME_CNTL, tmp);
-	udelay(50);
+
+	for (i = 0; i < adev->usec_timeout; i++) {
+		if (RREG32_SOC15(GC, 0, mmCP_STAT) == 0)
+			break;
+		udelay(1);
+	}
+
+	if (i >= adev->usec_timeout)
+		DRM_ERROR("failed to %s cp gfx\n", enable ? "unhalt" : "halt");
+
+	return 0;
 }
 
 static int gfx_v10_0_cp_gfx_load_pfp_microcode(struct amdgpu_device *adev)
@@ -3514,6 +3497,7 @@
 
 		/* reset ring buffer */
 		ring->wptr = 0;
+		atomic64_set((atomic64_t *)&adev->wb.wb[ring->wptr_offs], 0);
 		amdgpu_ring_clear_ring(ring);
 	} else {
 		amdgpu_ring_clear_ring(ring);
@@ -3732,10 +3716,6 @@
 	int r;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	r = gfx_v10_0_csb_vram_pin(adev);
-	if (r)
-		return r;
-
 	if (!amdgpu_emu_mode)
 		gfx_v10_0_init_golden_registers(adev);
 
@@ -3823,7 +3803,6 @@
 	}
 	gfx_v10_0_cp_enable(adev, false);
 	gfx_v10_0_enable_gui_idle_interrupt(adev, false);
-	gfx_v10_0_csb_vram_unpin(adev);
 
 	return 0;
 }
@@ -3936,11 +3915,13 @@
 {
 	uint64_t clock;
 
+	amdgpu_gfx_off_ctrl(adev, false);
 	mutex_lock(&adev->gfx.gpu_clock_mutex);
 	WREG32_SOC15(GC, 0, mmRLC_CAPTURE_GPU_CLOCK_COUNT, 1);
 	clock = (uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_LSB) |
 		((uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_MSB) << 32ULL);
 	mutex_unlock(&adev->gfx.gpu_clock_mutex);
+	amdgpu_gfx_off_ctrl(adev, true);
 	return clock;
 }
 
@@ -4050,10 +4031,8 @@
 		def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
 		data &= ~(RLC_CGTT_MGCG_OVERRIDE__GRBM_CGTT_SCLK_OVERRIDE_MASK |
 			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGCG_OVERRIDE_MASK |
-			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK);
-
-		/* only for Vega10 & Raven1 */
-		data |= RLC_CGTT_MGCG_OVERRIDE__RLC_CGTT_SCLK_OVERRIDE_MASK;
+			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK |
+			  RLC_CGTT_MGCG_OVERRIDE__ENABLE_CGTS_LEGACY_MASK);
 
 		if (def != data)
 			WREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE, data);
@@ -4246,11 +4225,7 @@
 	switch (adev->asic_type) {
 	case CHIP_NAVI10:
 	case CHIP_NAVI14:
-		if (!enable) {
-			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		} else
-			amdgpu_gfx_off_ctrl(adev, true);
+		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	default:
 		break;
@@ -4643,12 +4618,17 @@
 	struct amdgpu_device *adev = ring->adev;
 	struct amdgpu_kiq *kiq = &adev->gfx.kiq;
 	struct amdgpu_ring *kiq_ring = &kiq->ring;
+	unsigned long flags;
 
 	if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues)
 		return -EINVAL;
 
-	if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size))
+	spin_lock_irqsave(&kiq->ring_lock, flags);
+
+	if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size)) {
+		spin_unlock_irqrestore(&kiq->ring_lock, flags);
 		return -ENOMEM;
+	}
 
 	/* assert preemption condition */
 	amdgpu_ring_set_preempt_cond_exec(ring, false);
@@ -4659,6 +4639,8 @@
 				   ++ring->trail_seq);
 	amdgpu_ring_commit(kiq_ring);
 
+	spin_unlock_irqrestore(&kiq->ring_lock, flags);
+
 	/* poll the trailing fence */
 	for (i = 0; i < adev->usec_timeout; i++) {
 		if (ring->trail_seq ==
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -4554,6 +4554,8 @@
 
 	gfx_v7_0_constants_init(adev);
 
+	/* init CSB */
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
 	/* init rlc */
 	r = adev->gfx.rlc.funcs->resume(adev);
 	if (r)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -1321,39 +1321,6 @@
 	return 0;
 }
 
-static int gfx_v8_0_csb_vram_pin(struct amdgpu_device *adev)
-{
-	int r;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false);
-	if (unlikely(r != 0))
-		return r;
-
-	r = amdgpu_bo_pin(adev->gfx.rlc.clear_state_obj,
-			AMDGPU_GEM_DOMAIN_VRAM);
-	if (!r)
-		adev->gfx.rlc.clear_state_gpu_addr =
-			amdgpu_bo_gpu_offset(adev->gfx.rlc.clear_state_obj);
-
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-	return r;
-}
-
-static void gfx_v8_0_csb_vram_unpin(struct amdgpu_device *adev)
-{
-	int r;
-
-	if (!adev->gfx.rlc.clear_state_obj)
-		return;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-	if (likely(r == 0)) {
-		amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-		amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-	}
-}
-
 static void gfx_v8_0_mec_fini(struct amdgpu_device *adev)
 {
 	amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
@@ -3917,6 +3884,7 @@
 
 static void gfx_v8_0_init_csb(struct amdgpu_device *adev)
 {
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
 	/* csib */
 	WREG32(mmRLC_CSIB_ADDR_HI,
 			adev->gfx.rlc.clear_state_gpu_addr >> 32);
@@ -4837,10 +4805,6 @@
 	gfx_v8_0_init_golden_registers(adev);
 	gfx_v8_0_constants_init(adev);
 
-	r = gfx_v8_0_csb_vram_pin(adev);
-	if (r)
-		return r;
-
 	r = adev->gfx.rlc.funcs->resume(adev);
 	if (r)
 		return r;
@@ -4958,8 +4922,6 @@
 		pr_err("rlc is busy, skip halt rlc\n");
 	amdgpu_gfx_rlc_exit_safe_mode(adev);
 
-	gfx_v8_0_csb_vram_unpin(adev);
-
 	return 0;
 }
 
@@ -6184,7 +6146,23 @@
 	bool write64bit = flags & AMDGPU_FENCE_FLAG_64BIT;
 	bool int_sel = flags & AMDGPU_FENCE_FLAG_INT;
 
-	/* EVENT_WRITE_EOP - flush caches, send int */
+	/* Workaround for cache flush problems. First send a dummy EOP
+	 * event down the pipe with seq one below.
+	 */
+	amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE_EOP, 4));
+	amdgpu_ring_write(ring, (EOP_TCL1_ACTION_EN |
+				 EOP_TC_ACTION_EN |
+				 EOP_TC_WB_ACTION_EN |
+				 EVENT_TYPE(CACHE_FLUSH_AND_INV_TS_EVENT) |
+				 EVENT_INDEX(5)));
+	amdgpu_ring_write(ring, addr & 0xfffffffc);
+	amdgpu_ring_write(ring, (upper_32_bits(addr) & 0xffff) |
+				DATA_SEL(1) | INT_SEL(0));
+	amdgpu_ring_write(ring, lower_32_bits(seq - 1));
+	amdgpu_ring_write(ring, upper_32_bits(seq - 1));
+
+	/* Then send the real EOP event down the pipe:
+	 * EVENT_WRITE_EOP - flush caches, send int */
 	amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE_EOP, 4));
 	amdgpu_ring_write(ring, (EOP_TCL1_ACTION_EN |
 				 EOP_TC_ACTION_EN |
@@ -6926,7 +6904,7 @@
 		5 +  /* COND_EXEC */
 		7 +  /* PIPELINE_SYNC */
 		VI_FLUSH_GPU_TLB_NUM_WREG * 5 + 9 + /* VM_FLUSH */
-		8 +  /* FENCE for VM_FLUSH */
+		12 +  /* FENCE for VM_FLUSH */
 		20 + /* GDS switch */
 		4 + /* double SWITCH_BUFFER,
 		       the first COND_EXEC jump to the place just
@@ -6938,7 +6916,7 @@
 		31 + /*	DE_META */
 		3 + /* CNTX_CTRL */
 		5 + /* HDP_INVL */
-		8 + 8 + /* FENCE x2 */
+		12 + 12 + /* FENCE x2 */
 		2, /* SWITCH_BUFFER */
 	.emit_ib_size =	4, /* gfx_v8_0_ring_emit_ib_gfx */
 	.emit_ib = gfx_v8_0_ring_emit_ib_gfx,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -107,10 +107,6 @@
 MODULE_FIRMWARE("amdgpu/raven2_rlc.bin");
 MODULE_FIRMWARE("amdgpu/raven_kicker_rlc.bin");
 
-MODULE_FIRMWARE("amdgpu/arcturus_mec.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_mec2.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_rlc.bin");
-
 MODULE_FIRMWARE("amdgpu/renoir_ce.bin");
 MODULE_FIRMWARE("amdgpu/renoir_pfp.bin");
 MODULE_FIRMWARE("amdgpu/renoir_me.bin");
@@ -1026,6 +1022,8 @@
 			adev->gfx.mec_fw_write_wait = true;
 		break;
 	default:
+		adev->gfx.me_fw_write_wait = true;
+		adev->gfx.mec_fw_write_wait = true;
 		break;
 	}
 }
@@ -1038,17 +1036,10 @@
 	case CHIP_VEGA20:
 		break;
 	case CHIP_RAVEN:
-		/* Disable GFXOFF on original raven.  There are combinations
-		 * of sbios and platforms that are not stable.
-		 */
-		if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8))
-			adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
-		else if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8)
-			 &&((adev->gfx.rlc_fw_version != 106 &&
-			     adev->gfx.rlc_fw_version < 531) ||
-			    (adev->gfx.rlc_fw_version == 53815) ||
-			    (adev->gfx.rlc_feature_version < 1) ||
-			    !adev->gfx.rlc.is_rlc_v2_1))
+		if (!(adev->rev_id >= 0x8 ||
+		      adev->pdev->device == 0x15d8) &&
+		    (adev->pm.fw_version < 0x41e2b || /* not raven1 fresh */
+		     !adev->gfx.rlc.is_rlc_v2_1)) /* without rlc save restore ucodes */
 			adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
 
 		if (adev->pm.pp_feature & PP_GFXOFF_MASK)
@@ -1680,39 +1671,6 @@
 	return 0;
 }
 
-static int gfx_v9_0_csb_vram_pin(struct amdgpu_device *adev)
-{
-	int r;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false);
-	if (unlikely(r != 0))
-		return r;
-
-	r = amdgpu_bo_pin(adev->gfx.rlc.clear_state_obj,
-			AMDGPU_GEM_DOMAIN_VRAM);
-	if (!r)
-		adev->gfx.rlc.clear_state_gpu_addr =
-			amdgpu_bo_gpu_offset(adev->gfx.rlc.clear_state_obj);
-
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-	return r;
-}
-
-static void gfx_v9_0_csb_vram_unpin(struct amdgpu_device *adev)
-{
-	int r;
-
-	if (!adev->gfx.rlc.clear_state_obj)
-		return;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-	if (likely(r == 0)) {
-		amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-		amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-	}
-}
-
 static void gfx_v9_0_mec_fini(struct amdgpu_device *adev)
 {
 	amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
@@ -2601,6 +2559,7 @@
 
 static void gfx_v9_0_init_csb(struct amdgpu_device *adev)
 {
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
 	/* csib */
 	WREG32_RLC(SOC15_REG_OFFSET(GC, 0, mmRLC_CSIB_ADDR_HI),
 			adev->gfx.rlc.clear_state_gpu_addr >> 32);
@@ -2930,7 +2889,10 @@
 	 * And it's needed by gfxoff feature.
 	 */
 	if (adev->gfx.rlc.is_rlc_v2_1) {
-		gfx_v9_1_init_rlc_save_restore_list(adev);
+		if (adev->asic_type == CHIP_VEGA12 ||
+		    (adev->asic_type == CHIP_RAVEN &&
+		     adev->rev_id >= 8))
+			gfx_v9_1_init_rlc_save_restore_list(adev);
 		gfx_v9_0_enable_save_restore_machine(adev);
 	}
 
@@ -3760,6 +3722,7 @@
 
 		/* reset ring buffer */
 		ring->wptr = 0;
+		atomic64_set((atomic64_t *)&adev->wb.wb[ring->wptr_offs], 0);
 		amdgpu_ring_clear_ring(ring);
 	} else {
 		amdgpu_ring_clear_ring(ring);
@@ -3889,10 +3852,6 @@
 
 	gfx_v9_0_constants_init(adev);
 
-	r = gfx_v9_0_csb_vram_pin(adev);
-	if (r)
-		return r;
-
 	r = adev->gfx.rlc.funcs->resume(adev);
 	if (r)
 		return r;
@@ -3978,8 +3937,6 @@
 	gfx_v9_0_cp_enable(adev, false);
 	adev->gfx.rlc.funcs->stop(adev);
 
-	gfx_v9_0_csb_vram_unpin(adev);
-
 	return 0;
 }
 
@@ -4084,11 +4041,13 @@
 {
 	uint64_t clock;
 
+	amdgpu_gfx_off_ctrl(adev, false);
 	mutex_lock(&adev->gfx.gpu_clock_mutex);
 	WREG32_SOC15(GC, 0, mmRLC_CAPTURE_GPU_CLOCK_COUNT, 1);
 	clock = (uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_LSB) |
 		((uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_MSB) << 32ULL);
 	mutex_unlock(&adev->gfx.gpu_clock_mutex);
+	amdgpu_gfx_off_ctrl(adev, true);
 	return clock;
 }
 
@@ -4838,10 +4797,9 @@
 	switch (adev->asic_type) {
 	case CHIP_RAVEN:
 	case CHIP_RENOIR:
-		if (!enable) {
+		if (!enable)
 			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		}
+
 		if (adev->pg_flags & AMD_PG_SUPPORT_RLC_SMU_HS) {
 			gfx_v9_0_enable_sck_slow_down_on_power_up(adev, true);
 			gfx_v9_0_enable_sck_slow_down_on_power_down(adev, true);
@@ -4867,12 +4825,7 @@
 			amdgpu_gfx_off_ctrl(adev, true);
 		break;
 	case CHIP_VEGA12:
-		if (!enable) {
-			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		} else {
-			amdgpu_gfx_off_ctrl(adev, true);
-		}
+		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	default:
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
@@ -365,6 +365,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(GC, 0,
 				 mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(GC, 0, mmVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(GC, 0, mmVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
@@ -350,6 +350,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(GC, 0,
 				 mmGCVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(GC, 0, mmGCVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(GC, 0, mmGCVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -230,12 +230,36 @@
 				   unsigned int vmhub, uint32_t flush_type)
 {
 	struct amdgpu_vmhub *hub = &adev->vmhub[vmhub];
-	u32 tmp = gmc_v10_0_get_invalidate_req(vmid, flush_type);
+	u32 inv_req = gmc_v10_0_get_invalidate_req(vmid, flush_type);
+	u32 tmp;
 	/* Use register 17 for GART */
 	const unsigned eng = 17;
 	unsigned int i;
 
-	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp);
+	spin_lock(&adev->gmc.invalidate_lock);
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (vmhub == AMDGPU_MMHUB_0 ||
+	    vmhub == AMDGPU_MMHUB_1) {
+		for (i = 0; i < adev->usec_timeout; i++) {
+			/* a read return value of 1 means semaphore acuqire */
+			tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng);
+			if (tmp & 0x1)
+				break;
+			udelay(1);
+		}
+
+		if (i >= adev->usec_timeout)
+			DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n");
+	}
+
+	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, inv_req);
 
 	/*
 	 * Issue a dummy read to wait for the ACK register to be cleared
@@ -254,6 +278,17 @@
 		udelay(1);
 	}
 
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (vmhub == AMDGPU_MMHUB_0 ||
+	    vmhub == AMDGPU_MMHUB_1)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		WREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng, 0);
+
+	spin_unlock(&adev->gmc.invalidate_lock);
+
 	if (i < adev->usec_timeout)
 		return;
 
@@ -338,6 +373,20 @@
 	uint32_t req = gmc_v10_0_get_invalidate_req(vmid, 0);
 	unsigned eng = ring->vm_inv_eng;
 
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (ring->funcs->vmhub == AMDGPU_MMHUB_0 ||
+	    ring->funcs->vmhub == AMDGPU_MMHUB_1)
+		/* a read return value of 1 means semaphore acuqire */
+		amdgpu_ring_emit_reg_wait(ring,
+					  hub->vm_inv_eng0_sem + eng, 0x1, 0x1);
+
 	amdgpu_ring_emit_wreg(ring, hub->ctx0_ptb_addr_lo32 + (2 * vmid),
 			      lower_32_bits(pd_addr));
 
@@ -348,6 +397,15 @@
 					    hub->vm_inv_eng0_ack + eng,
 					    req, 1 << vmid);
 
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (ring->funcs->vmhub == AMDGPU_MMHUB_0 ||
+	    ring->funcs->vmhub == AMDGPU_MMHUB_1)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		amdgpu_ring_emit_wreg(ring, hub->vm_inv_eng0_sem + eng, 0);
+
 	return pd_addr;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -448,6 +448,24 @@
 	return req;
 }
 
+/**
+ * gmc_v9_0_use_invalidate_semaphore - judge whether to use semaphore
+ *
+ * @adev: amdgpu_device pointer
+ * @vmhub: vmhub type
+ *
+ */
+static bool gmc_v9_0_use_invalidate_semaphore(struct amdgpu_device *adev,
+				       uint32_t vmhub)
+{
+	return ((vmhub == AMDGPU_MMHUB_0 ||
+		 vmhub == AMDGPU_MMHUB_1) &&
+		(!amdgpu_sriov_vf(adev)) &&
+		(!(adev->asic_type == CHIP_RAVEN &&
+		   adev->rev_id < 0x8 &&
+		   adev->pdev->device == 0x15d8)));
+}
+
 /*
  * GART
  * VMID 0 is the physical GPU addresses as used by the kernel.
@@ -467,14 +485,15 @@
 static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid,
 					uint32_t vmhub, uint32_t flush_type)
 {
+	bool use_semaphore = gmc_v9_0_use_invalidate_semaphore(adev, vmhub);
 	const unsigned eng = 17;
-	u32 j, tmp;
+	u32 j, inv_req, tmp;
 	struct amdgpu_vmhub *hub;
 
 	BUG_ON(vmhub >= adev->num_vmhubs);
 
 	hub = &adev->vmhub[vmhub];
-	tmp = gmc_v9_0_get_invalidate_req(vmid, flush_type);
+	inv_req = gmc_v9_0_get_invalidate_req(vmid, flush_type);
 
 	/* This is necessary for a HW workaround under SRIOV as well
 	 * as GFXOFF under bare metal
@@ -485,13 +504,35 @@
 		uint32_t req = hub->vm_inv_eng0_req + eng;
 		uint32_t ack = hub->vm_inv_eng0_ack + eng;
 
-		amdgpu_virt_kiq_reg_write_reg_wait(adev, req, ack, tmp,
+		amdgpu_virt_kiq_reg_write_reg_wait(adev, req, ack, inv_req,
 				1 << vmid);
 		return;
 	}
 
 	spin_lock(&adev->gmc.invalidate_lock);
-	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp);
+
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore) {
+		for (j = 0; j < adev->usec_timeout; j++) {
+			/* a read return value of 1 means semaphore acuqire */
+			tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng);
+			if (tmp & 0x1)
+				break;
+			udelay(1);
+		}
+
+		if (j >= adev->usec_timeout)
+			DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n");
+	}
+
+	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, inv_req);
 
 	/*
 	 * Issue a dummy read to wait for the ACK register to be cleared
@@ -506,7 +547,17 @@
 			break;
 		udelay(1);
 	}
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		WREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng, 0);
+
 	spin_unlock(&adev->gmc.invalidate_lock);
+
 	if (j < adev->usec_timeout)
 		return;
 
@@ -516,11 +567,25 @@
 static uint64_t gmc_v9_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring,
 					    unsigned vmid, uint64_t pd_addr)
 {
+	bool use_semaphore = gmc_v9_0_use_invalidate_semaphore(ring->adev, ring->funcs->vmhub);
 	struct amdgpu_device *adev = ring->adev;
 	struct amdgpu_vmhub *hub = &adev->vmhub[ring->funcs->vmhub];
 	uint32_t req = gmc_v9_0_get_invalidate_req(vmid, 0);
 	unsigned eng = ring->vm_inv_eng;
 
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore)
+		/* a read return value of 1 means semaphore acuqire */
+		amdgpu_ring_emit_reg_wait(ring,
+					  hub->vm_inv_eng0_sem + eng, 0x1, 0x1);
+
 	amdgpu_ring_emit_wreg(ring, hub->ctx0_ptb_addr_lo32 + (2 * vmid),
 			      lower_32_bits(pd_addr));
 
@@ -531,6 +596,14 @@
 					    hub->vm_inv_eng0_ack + eng,
 					    req, 1 << vmid);
 
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		amdgpu_ring_emit_wreg(ring, hub->vm_inv_eng0_sem + eng, 0);
+
 	return pd_addr;
 }
 
@@ -1310,6 +1383,19 @@
 }
 
 /**
+ * gmc_v9_0_restore_registers - restores regs
+ *
+ * @adev: amdgpu_device pointer
+ *
+ * This restores register values, saved at suspend.
+ */
+static void gmc_v9_0_restore_registers(struct amdgpu_device *adev)
+{
+	if (adev->asic_type == CHIP_RAVEN)
+		WREG32(mmDCHUBBUB_SDPIF_MMIO_CNTRL_0, adev->gmc.sdpif_register);
+}
+
+/**
  * gmc_v9_0_gart_enable - gart enable
  *
  * @adev: amdgpu_device pointer
@@ -1406,6 +1492,20 @@
 }
 
 /**
+ * gmc_v9_0_save_registers - saves regs
+ *
+ * @adev: amdgpu_device pointer
+ *
+ * This saves potential register values that should be
+ * restored upon resume
+ */
+static void gmc_v9_0_save_registers(struct amdgpu_device *adev)
+{
+	if (adev->asic_type == CHIP_RAVEN)
+		adev->gmc.sdpif_register = RREG32(mmDCHUBBUB_SDPIF_MMIO_CNTRL_0);
+}
+
+/**
  * gmc_v9_0_gart_disable - gart disable
  *
  * @adev: amdgpu_device pointer
@@ -1441,9 +1541,16 @@
 
 static int gmc_v9_0_suspend(void *handle)
 {
+	int r;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	return gmc_v9_0_hw_fini(adev);
+	r = gmc_v9_0_hw_fini(adev);
+	if (r)
+		return r;
+
+	gmc_v9_0_save_registers(adev);
+
+	return 0;
 }
 
 static int gmc_v9_0_resume(void *handle)
@@ -1451,6 +1558,7 @@
 	int r;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	gmc_v9_0_restore_registers(adev);
 	r = gmc_v9_0_hw_init(adev);
 	if (r)
 		return r;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
@@ -193,19 +193,29 @@
 
 	wptr = le32_to_cpu(*ih->wptr_cpu);
 
-	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
-		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
-		/* When a ring buffer overflow happen start parsing interrupt
-		 * from the last not overwritten vector (wptr + 16). Hopefully
-		 * this should allow us to catchup.
-		 */
-		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
-			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
-		ih->rptr = (wptr + 16) & ih->ptr_mask;
-		tmp = RREG32(mmIH_RB_CNTL);
-		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
-		WREG32(mmIH_RB_CNTL, tmp);
-	}
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	/* Double check that the overflow wasn't already cleared. */
+	wptr = RREG32(mmIH_RB_WPTR);
+
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
+	/* When a ring buffer overflow happen start parsing interrupt
+	 * from the last not overwritten vector (wptr + 16). Hopefully
+	 * this should allow us to catchup.
+	 */
+	dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
+		wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
+	ih->rptr = (wptr + 16) & ih->ptr_mask;
+	tmp = RREG32(mmIH_RB_CNTL);
+	tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
+	WREG32(mmIH_RB_CNTL, tmp);
+
+
+out:
 	return (wptr & ih->ptr_mask);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
@@ -29,8 +29,6 @@
 #include "gc/gc_10_1_0_offset.h"
 #include "gc/gc_10_1_0_sh_mask.h"
 
-MODULE_FIRMWARE("amdgpu/navi10_mes.bin");
-
 static int mes_v10_1_add_hw_queue(struct amdgpu_mes *mes,
 				  struct mes_add_queue_input *input)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
@@ -418,6 +418,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(MMHUB, 0,
 				 mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(MMHUB, 0, mmVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(MMHUB, 0, mmVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
@@ -341,6 +341,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(MMHUB, 0,
 				 mmMMVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
@@ -502,6 +502,10 @@
 			SOC15_REG_OFFSET(MMHUB, 0,
 			    mmVML2VC0_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32) +
 			    i * MMHUB_INSTANCE_REGISTER_OFFSET;
+		hub[i]->vm_inv_eng0_sem =
+			SOC15_REG_OFFSET(MMHUB, 0,
+					 mmVML2VC0_VM_INVALIDATE_ENG0_SEM) +
+					 i * MMHUB_INSTANCE_REGISTER_OFFSET;
 		hub[i]->vm_inv_eng0_req =
 			SOC15_REG_OFFSET(MMHUB, 0,
 					 mmVML2VC0_VM_INVALIDATE_ENG0_REQ) +
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/navi10_sdma_pkt_open.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/navi10_sdma_pkt_open.h
@@ -73,6 +73,22 @@
 #define SDMA_OP_AQL_COPY  0
 #define SDMA_OP_AQL_BARRIER_OR  0
 
+#define SDMA_GCR_RANGE_IS_PA		(1 << 18)
+#define SDMA_GCR_SEQ(x)			(((x) & 0x3) << 16)
+#define SDMA_GCR_GL2_WB			(1 << 15)
+#define SDMA_GCR_GL2_INV		(1 << 14)
+#define SDMA_GCR_GL2_DISCARD		(1 << 13)
+#define SDMA_GCR_GL2_RANGE(x)		(((x) & 0x3) << 11)
+#define SDMA_GCR_GL2_US			(1 << 10)
+#define SDMA_GCR_GL1_INV		(1 << 9)
+#define SDMA_GCR_GLV_INV		(1 << 8)
+#define SDMA_GCR_GLK_INV		(1 << 7)
+#define SDMA_GCR_GLK_WB			(1 << 6)
+#define SDMA_GCR_GLM_INV		(1 << 5)
+#define SDMA_GCR_GLM_WB			(1 << 4)
+#define SDMA_GCR_GL1_RANGE(x)		(((x) & 0x3) << 2)
+#define SDMA_GCR_GLI_INV(x)		(((x) & 0x3) << 0)
+
 /*define for op field*/
 #define SDMA_PKT_HEADER_op_offset 0
 #define SDMA_PKT_HEADER_op_mask   0x000000FF
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/nv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/nv.c
@@ -660,6 +660,12 @@
 		adev->pg_flags = AMD_PG_SUPPORT_VCN |
 			AMD_PG_SUPPORT_VCN_DPG |
 			AMD_PG_SUPPORT_ATHUB;
+		/* guest vm gets 0xffffffff when reading RCC_DEV0_EPF0_STRAP0,
+		 * as a consequence, the rev_id and external_rev_id are wrong.
+		 * workaround it by hardcoding rev_id to 0 (default value).
+		 */
+		if (amdgpu_sriov_vf(adev))
+			adev->rev_id = 0;
 		adev->external_rev_id = adev->rev_id + 0xa;
 		break;
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
@@ -44,7 +44,7 @@
     GFX_CTRL_CMD_ID_DISABLE_INT     = 0x00060000,   /* disable PSP-to-Gfx interrupt */
     GFX_CTRL_CMD_ID_MODE1_RST       = 0x00070000,   /* trigger the Mode 1 reset */
     GFX_CTRL_CMD_ID_GBR_IH_SET      = 0x00080000,   /* set Gbr IH_RB_CNTL registers */
-    GFX_CTRL_CMD_ID_CONSUME_CMD     = 0x000A0000,   /* send interrupt to psp for updating write pointer of vf */
+    GFX_CTRL_CMD_ID_CONSUME_CMD     = 0x00090000,   /* send interrupt to psp for updating write pointer of vf */
     GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING = 0x000C0000, /* destroy GPCOM ring */
 
     GFX_CTRL_CMD_ID_MAX             = 0x000F0000,   /* max command ID */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
@@ -40,15 +40,10 @@
 
 MODULE_FIRMWARE("amdgpu/vega20_sos.bin");
 MODULE_FIRMWARE("amdgpu/vega20_asd.bin");
-MODULE_FIRMWARE("amdgpu/vega20_ta.bin");
 MODULE_FIRMWARE("amdgpu/navi10_sos.bin");
 MODULE_FIRMWARE("amdgpu/navi10_asd.bin");
 MODULE_FIRMWARE("amdgpu/navi14_sos.bin");
 MODULE_FIRMWARE("amdgpu/navi14_asd.bin");
-MODULE_FIRMWARE("amdgpu/navi12_sos.bin");
-MODULE_FIRMWARE("amdgpu/navi12_asd.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_sos.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_asd.bin");
 
 /* address block */
 #define smnMP1_FIRMWARE_FLAGS		0x3010024
@@ -398,6 +393,34 @@
 	return false;
 }
 
+static int psp_v11_0_ring_stop(struct psp_context *psp,
+			      enum psp_ring_type ring_type)
+{
+	int ret = 0;
+	struct amdgpu_device *adev = psp->adev;
+
+	/* Write the ring destroy command*/
+	if (psp_v11_0_support_vmr_ring(psp))
+		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101,
+				     GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING);
+	else
+		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64,
+				     GFX_CTRL_CMD_ID_DESTROY_RINGS);
+
+	/* there might be handshake issue with hardware which needs delay */
+	mdelay(20);
+
+	/* Wait for response flag (bit 31) */
+	if (psp_v11_0_support_vmr_ring(psp))
+		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
+				   0x80000000, 0x80000000, false);
+	else
+		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
+				   0x80000000, 0x80000000, false);
+
+	return ret;
+}
+
 static int psp_v11_0_ring_create(struct psp_context *psp,
 				enum psp_ring_type ring_type)
 {
@@ -407,6 +430,12 @@
 	struct amdgpu_device *adev = psp->adev;
 
 	if (psp_v11_0_support_vmr_ring(psp)) {
+		ret = psp_v11_0_ring_stop(psp, ring_type);
+		if (ret) {
+			DRM_ERROR("psp_v11_0_ring_stop_sriov failed!\n");
+			return ret;
+		}
+
 		/* Write low address of the ring to C2PMSG_102 */
 		psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr);
 		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_102, psp_ring_reg);
@@ -451,33 +480,6 @@
 	return ret;
 }
 
-static int psp_v11_0_ring_stop(struct psp_context *psp,
-			      enum psp_ring_type ring_type)
-{
-	int ret = 0;
-	struct amdgpu_device *adev = psp->adev;
-
-	/* Write the ring destroy command*/
-	if (psp_v11_0_support_vmr_ring(psp))
-		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101,
-				     GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING);
-	else
-		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64,
-				     GFX_CTRL_CMD_ID_DESTROY_RINGS);
-
-	/* there might be handshake issue with hardware which needs delay */
-	mdelay(20);
-
-	/* Wait for response flag (bit 31) */
-	if (psp_v11_0_support_vmr_ring(psp))
-		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-				   0x80000000, 0x80000000, false);
-	else
-		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-				   0x80000000, 0x80000000, false);
-
-	return ret;
-}
 
 static int psp_v11_0_ring_destroy(struct psp_context *psp,
 				 enum psp_ring_type ring_type)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
@@ -255,7 +255,7 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 
 	/* IB packet must end on a 8 DW boundary */
-	sdma_v2_4_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	sdma_v2_4_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -750,7 +750,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -429,7 +429,7 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 
 	/* IB packet must end on a 8 DW boundary */
-	sdma_v3_0_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	sdma_v3_0_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -1021,7 +1021,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
@@ -67,7 +67,6 @@
 MODULE_FIRMWARE("amdgpu/raven_sdma.bin");
 MODULE_FIRMWARE("amdgpu/picasso_sdma.bin");
 MODULE_FIRMWARE("amdgpu/raven2_sdma.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_sdma.bin");
 MODULE_FIRMWARE("amdgpu/renoir_sdma.bin");
 
 #define SDMA0_POWER_CNTL__ON_OFF_CONDITION_HOLD_TIME_MASK  0x000000F8L
@@ -698,7 +697,7 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 
 	/* IB packet must end on a 8 DW boundary */
-	sdma_v4_0_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	sdma_v4_0_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -1579,7 +1578,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
@@ -48,9 +48,6 @@
 MODULE_FIRMWARE("amdgpu/navi14_sdma.bin");
 MODULE_FIRMWARE("amdgpu/navi14_sdma1.bin");
 
-MODULE_FIRMWARE("amdgpu/navi12_sdma.bin");
-MODULE_FIRMWARE("amdgpu/navi12_sdma1.bin");
-
 #define SDMA1_REG_OFFSET 0x600
 #define SDMA0_HYP_DEC_REG_START 0x5880
 #define SDMA0_HYP_DEC_REG_END 0x5893
@@ -286,30 +283,20 @@
 static uint64_t sdma_v5_0_ring_get_wptr(struct amdgpu_ring *ring)
 {
 	struct amdgpu_device *adev = ring->adev;
-	u64 *wptr = NULL;
-	uint64_t local_wptr = 0;
+	u64 wptr;
 
 	if (ring->use_doorbell) {
 		/* XXX check if swapping is necessary on BE */
-		wptr = ((u64 *)&adev->wb.wb[ring->wptr_offs]);
-		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", *wptr);
-		*wptr = (*wptr) >> 2;
-		DRM_DEBUG("wptr/doorbell after shift == 0x%016llx\n", *wptr);
+		wptr = READ_ONCE(*((u64 *)&adev->wb.wb[ring->wptr_offs]));
+		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", wptr);
 	} else {
-		u32 lowbit, highbit;
-
-		wptr = &local_wptr;
-		lowbit = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR)) >> 2;
-		highbit = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI)) >> 2;
-
-		DRM_DEBUG("wptr [%i]high== 0x%08x low==0x%08x\n",
-				ring->me, highbit, lowbit);
-		*wptr = highbit;
-		*wptr = (*wptr) << 32;
-		*wptr |= lowbit;
+		wptr = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI));
+		wptr = wptr << 32;
+		wptr |= RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR));
+		DRM_DEBUG("wptr before shift [%i] wptr == 0x%016llx\n", ring->me, wptr);
 	}
 
-	return *wptr;
+	return wptr >> 2;
 }
 
 /**
@@ -382,8 +369,27 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 	uint64_t csa_mc_addr = amdgpu_sdma_get_csa_mc_addr(ring, vmid);
 
-	/* IB packet must end on a 8 DW boundary */
-	sdma_v5_0_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	/* Invalidate L2, because if we don't do it, we might get stale cache
+	 * lines from previous IBs.
+	 */
+	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_GCR_REQ));
+	amdgpu_ring_write(ring, 0);
+	amdgpu_ring_write(ring, (SDMA_GCR_GL2_INV |
+				 SDMA_GCR_GL2_WB |
+				 SDMA_GCR_GLM_INV |
+				 SDMA_GCR_GLM_WB) << 16);
+	amdgpu_ring_write(ring, 0xffffff80);
+	amdgpu_ring_write(ring, 0xffff);
+
+	/* An IB packet must end on a 8 DW boundary--the next dword
+	 * must be on a 8-dword boundary. Our IB packet below is 6
+	 * dwords long, thus add x number of NOPs, such that, in
+	 * modular arithmetic,
+	 * wptr + 6 + x = 8k, k >= 0, which in C is,
+	 * (wptr + 6 + x) % 8 = 0.
+	 * The expression below, is a solution of x.
+	 */
+	sdma_v5_0_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -1086,10 +1092,10 @@
 }
 
 /**
- * sdma_v5_0_ring_pad_ib - pad the IB to the required number of dw
- *
+ * sdma_v5_0_ring_pad_ib - pad the IB
  * @ib: indirect buffer to fill with padding
  *
+ * Pad the IB with NOPs to a boundary multiple of 8.
  */
 static void sdma_v5_0_ring_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib)
 {
@@ -1097,7 +1103,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 0x7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
@@ -1254,8 +1260,12 @@
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	int i;
 
-	for (i = 0; i < adev->sdma.num_instances; i++)
+	for (i = 0; i < adev->sdma.num_instances; i++) {
+		if (adev->sdma.instance[i].fw != NULL)
+			release_firmware(adev->sdma.instance[i].fw);
+
 		amdgpu_ring_fini(&adev->sdma.instance[i].ring);
+	}
 
 	return 0;
 }
@@ -1600,7 +1610,7 @@
 		SOC15_FLUSH_GPU_TLB_NUM_WREG * 3 +
 		SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT * 6 * 2 +
 		10 + 10 + 10, /* sdma_v5_0_ring_emit_fence x3 for user fence, vm fence */
-	.emit_ib_size = 7 + 6, /* sdma_v5_0_ring_emit_ib */
+	.emit_ib_size = 5 + 7 + 6, /* sdma_v5_0_ring_emit_ib */
 	.emit_ib = sdma_v5_0_ring_emit_ib,
 	.emit_fence = sdma_v5_0_ring_emit_fence,
 	.emit_pipeline_sync = sdma_v5_0_ring_emit_pipeline_sync,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/si_ih.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/si_ih.c
@@ -64,7 +64,8 @@
 	u32 interrupt_cntl, ih_cntl, ih_rb_cntl;
 
 	si_ih_disable_interrupts(adev);
-	WREG32(INTERRUPT_CNTL2, adev->irq.ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, adev->dummy_page_addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	interrupt_cntl &= ~IH_DUMMY_RD_OVERRIDE;
 	interrupt_cntl &= ~IH_REQ_NONSNOOP_EN;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -84,6 +84,13 @@
 #define HDP_MEM_POWER_CTRL__RC_MEM_POWER_CTRL_EN_MASK	0x00010000L
 #define HDP_MEM_POWER_CTRL__RC_MEM_POWER_LS_EN_MASK		0x00020000L
 #define mmHDP_MEM_POWER_CTRL_BASE_IDX	0
+
+/* for Vega20/arcturus regiter offset change */
+#define	mmROM_INDEX_VG20				0x00e4
+#define	mmROM_INDEX_VG20_BASE_IDX			0
+#define	mmROM_DATA_VG20					0x00e5
+#define	mmROM_DATA_VG20_BASE_IDX			0
+
 /*
  * Indirect registers accessor
  */
@@ -267,7 +274,14 @@
 
 static u32 soc15_get_xclk(struct amdgpu_device *adev)
 {
-	return adev->clock.spll.reference_freq;
+	u32 reference_clock = adev->clock.spll.reference_freq;
+
+	if (adev->asic_type == CHIP_RENOIR)
+		return 10000;
+	if (adev->asic_type == CHIP_RAVEN)
+		return reference_clock / 4;
+
+	return reference_clock;
 }
 
 
@@ -299,6 +313,8 @@
 {
 	u32 *dw_ptr;
 	u32 i, length_dw;
+	uint32_t rom_index_offset;
+	uint32_t rom_data_offset;
 
 	if (bios == NULL)
 		return false;
@@ -311,11 +327,23 @@
 	dw_ptr = (u32 *)bios;
 	length_dw = ALIGN(length_bytes, 4) / 4;
 
+	switch (adev->asic_type) {
+	case CHIP_VEGA20:
+	case CHIP_ARCTURUS:
+		rom_index_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX_VG20);
+		rom_data_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA_VG20);
+		break;
+	default:
+		rom_index_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX);
+		rom_data_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA);
+		break;
+	}
+
 	/* set rom index to 0 */
-	WREG32(SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX), 0);
+	WREG32(rom_index_offset, 0);
 	/* read out the rom data */
 	for (i = 0; i < length_dw; i++)
-		dw_ptr[i] = RREG32(SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA));
+		dw_ptr[i] = RREG32(rom_data_offset);
 
 	return true;
 }
@@ -1118,8 +1146,7 @@
 
 			adev->pg_flags = AMD_PG_SUPPORT_SDMA |
 				AMD_PG_SUPPORT_MMHUB |
-				AMD_PG_SUPPORT_VCN |
-				AMD_PG_SUPPORT_VCN_DPG;
+				AMD_PG_SUPPORT_VCN;
 		} else {
 			adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
 				AMD_CG_SUPPORT_GFX_MGLS |
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/soc15.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/soc15.h
@@ -28,8 +28,8 @@
 #include "nbio_v7_0.h"
 #include "nbio_v7_4.h"
 
-#define SOC15_FLUSH_GPU_TLB_NUM_WREG		4
-#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT	1
+#define SOC15_FLUSH_GPU_TLB_NUM_WREG		6
+#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT	3
 
 extern const struct amd_ip_funcs soc15_common_ip_funcs;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/soc15_common.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/soc15_common.h
@@ -52,6 +52,7 @@
 		uint32_t old_ = 0;	\
 		uint32_t tmp_ = RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg); \
 		uint32_t loop = adev->usec_timeout;		\
+		ret = 0;					\
 		while ((tmp_ & (mask)) != (expected_value)) {	\
 			if (old_ != tmp_) {			\
 				loop = adev->usec_timeout;	\
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
@@ -195,19 +195,30 @@
 
 	wptr = le32_to_cpu(*ih->wptr_cpu);
 
-	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
-		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
-		/* When a ring buffer overflow happen start parsing interrupt
-		 * from the last not overwritten vector (wptr + 16). Hopefully
-		 * this should allow us to catchup.
-		 */
-		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
-			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
-		ih->rptr = (wptr + 16) & ih->ptr_mask;
-		tmp = RREG32(mmIH_RB_CNTL);
-		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
-		WREG32(mmIH_RB_CNTL, tmp);
-	}
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	/* Double check that the overflow wasn't already cleared. */
+	wptr = RREG32(mmIH_RB_WPTR);
+
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
+
+	/* When a ring buffer overflow happen start parsing interrupt
+	 * from the last not overwritten vector (wptr + 16). Hopefully
+	 * this should allow us to catchup.
+	 */
+
+	dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
+		wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
+	ih->rptr = (wptr + 16) & ih->ptr_mask;
+	tmp = RREG32(mmIH_RB_CNTL);
+	tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
+	WREG32(mmIH_RB_CNTL, tmp);
+
+out:
 	return (wptr & ih->ptr_mask);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
@@ -1375,7 +1375,7 @@
 
 	if (enable) {
 		/* wait for STATUS to clear */
-		if (vcn_v1_0_is_idle(handle))
+		if (!vcn_v1_0_is_idle(handle))
 			return -EBUSY;
 		vcn_v1_0_enable_clock_gating(adev);
 	} else {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
@@ -1026,6 +1026,10 @@
 	tmp = REG_SET_FIELD(tmp, UVD_RBC_RB_CNTL, RB_RPTR_WR_EN, 1);
 	WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_CNTL, tmp);
 
+	/* Stall DPG before WPTR/RPTR reset */
+	WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+		UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK,
+		~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 	/* set the write pointer delay */
 	WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_WPTR_CNTL, 0);
 
@@ -1048,6 +1052,9 @@
 	WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_WPTR,
 		lower_32_bits(ring->wptr));
 
+	/* Unstall DPG */
+	WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+		0, ~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 	return 0;
 }
 
@@ -1357,8 +1364,13 @@
 					   UVD_DPG_PAUSE__NJ_PAUSE_DPG_ACK_MASK,
 					   UVD_DPG_PAUSE__NJ_PAUSE_DPG_ACK_MASK, ret_code);
 
+				/* Stall DPG before WPTR/RPTR reset */
+				WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+					   UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK,
+					   ~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 				/* Restore */
 				ring = &adev->vcn.inst->ring_enc[0];
+				ring->wptr = 0;
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_LO, ring->gpu_addr);
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_HI, upper_32_bits(ring->gpu_addr));
 				WREG32_SOC15(UVD, 0, mmUVD_RB_SIZE, ring->ring_size / 4);
@@ -1366,6 +1378,7 @@
 				WREG32_SOC15(UVD, 0, mmUVD_RB_WPTR, lower_32_bits(ring->wptr));
 
 				ring = &adev->vcn.inst->ring_enc[1];
+				ring->wptr = 0;
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_LO2, ring->gpu_addr);
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_HI2, upper_32_bits(ring->gpu_addr));
 				WREG32_SOC15(UVD, 0, mmUVD_RB_SIZE2, ring->ring_size / 4);
@@ -1374,6 +1387,9 @@
 
 				WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_WPTR,
 					   RREG32_SOC15(UVD, 0, mmUVD_SCRATCH2) & 0x7FFFFFFF);
+				/* Unstall DPG */
+				WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+					   0, ~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 
 				SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS,
 					   UVD_PGFSM_CONFIG__UVDM_UVDU_PWR_ON,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
@@ -423,7 +423,6 @@
  * vcn_v2_5_disable_clock_gating - disable VCN clock gating
  *
  * @adev: amdgpu_device pointer
- * @sw: enable SW clock gating
  *
  * Disable clock gating for VCN block
  */
@@ -542,7 +541,6 @@
  * vcn_v2_5_enable_clock_gating - enable VCN clock gating
  *
  * @adev: amdgpu_device pointer
- * @sw: enable SW clock gating
  *
  * Enable clock gating for VCN block
  */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h
@@ -905,7 +905,7 @@
 	0x7a5d0000, 0x807c817c,
 	0x807aff7a, 0x00000080,
 	0xbf0a717c, 0xbf85fff8,
-	0xbf820141, 0xbef4037e,
+	0xbf820142, 0xbef4037e,
 	0x8775ff7f, 0x0000ffff,
 	0x8875ff75, 0x00040000,
 	0xbef60380, 0xbef703ff,
@@ -967,7 +967,7 @@
 	0x725d0000, 0xe0304080,
 	0x725d0100, 0xe0304100,
 	0x725d0200, 0xe0304180,
-	0x725d0300, 0xbf820031,
+	0x725d0300, 0xbf820032,
 	0xbef603ff, 0x01000000,
 	0xbef20378, 0x8078ff78,
 	0x00000400, 0xbefc0384,
@@ -992,83 +992,84 @@
 	0x725d0000, 0xe0304100,
 	0x725d0100, 0xe0304200,
 	0x725d0200, 0xe0304300,
-	0x725d0300, 0xb9782a05,
-	0x80788178, 0x907c9973,
-	0x877c817c, 0xbf06817c,
-	0xbf850002, 0x8f788978,
-	0xbf820001, 0x8f788a78,
-	0xb9721e06, 0x8f728a72,
-	0x80787278, 0x8078ff78,
-	0x00000200, 0x80f8ff78,
-	0x00000050, 0xbef603ff,
-	0x01000000, 0xbefc03ff,
-	0x0000006c, 0x80f89078,
-	0xf429003a, 0xf0000000,
-	0xbf8cc07f, 0x80fc847c,
-	0xbf800000, 0xbe803100,
-	0xbe823102, 0x80f8a078,
-	0xf42d003a, 0xf0000000,
-	0xbf8cc07f, 0x80fc887c,
-	0xbf800000, 0xbe803100,
-	0xbe823102, 0xbe843104,
-	0xbe863106, 0x80f8c078,
-	0xf431003a, 0xf0000000,
-	0xbf8cc07f, 0x80fc907c,
-	0xbf800000, 0xbe803100,
-	0xbe823102, 0xbe843104,
-	0xbe863106, 0xbe883108,
-	0xbe8a310a, 0xbe8c310c,
-	0xbe8e310e, 0xbf06807c,
-	0xbf84fff0, 0xb9782a05,
-	0x80788178, 0x907c9973,
-	0x877c817c, 0xbf06817c,
-	0xbf850002, 0x8f788978,
-	0xbf820001, 0x8f788a78,
-	0xb9721e06, 0x8f728a72,
-	0x80787278, 0x8078ff78,
-	0x00000200, 0xbef603ff,
-	0x01000000, 0xf4211bfa,
+	0x725d0300, 0xbf8c3f70,
+	0xb9782a05, 0x80788178,
+	0x907c9973, 0x877c817c,
+	0xbf06817c, 0xbf850002,
+	0x8f788978, 0xbf820001,
+	0x8f788a78, 0xb9721e06,
+	0x8f728a72, 0x80787278,
+	0x8078ff78, 0x00000200,
+	0x80f8ff78, 0x00000050,
+	0xbef603ff, 0x01000000,
+	0xbefc03ff, 0x0000006c,
+	0x80f89078, 0xf429003a,
+	0xf0000000, 0xbf8cc07f,
+	0x80fc847c, 0xbf800000,
+	0xbe803100, 0xbe823102,
+	0x80f8a078, 0xf42d003a,
+	0xf0000000, 0xbf8cc07f,
+	0x80fc887c, 0xbf800000,
+	0xbe803100, 0xbe823102,
+	0xbe843104, 0xbe863106,
+	0x80f8c078, 0xf431003a,
+	0xf0000000, 0xbf8cc07f,
+	0x80fc907c, 0xbf800000,
+	0xbe803100, 0xbe823102,
+	0xbe843104, 0xbe863106,
+	0xbe883108, 0xbe8a310a,
+	0xbe8c310c, 0xbe8e310e,
+	0xbf06807c, 0xbf84fff0,
+	0xb9782a05, 0x80788178,
+	0x907c9973, 0x877c817c,
+	0xbf06817c, 0xbf850002,
+	0x8f788978, 0xbf820001,
+	0x8f788a78, 0xb9721e06,
+	0x8f728a72, 0x80787278,
+	0x8078ff78, 0x00000200,
+	0xbef603ff, 0x01000000,
+	0xf4211bfa, 0xf0000000,
+	0x80788478, 0xf4211b3a,
 	0xf0000000, 0x80788478,
-	0xf4211b3a, 0xf0000000,
-	0x80788478, 0xf4211b7a,
+	0xf4211b7a, 0xf0000000,
+	0x80788478, 0xf4211eba,
 	0xf0000000, 0x80788478,
-	0xf4211eba, 0xf0000000,
-	0x80788478, 0xf4211efa,
+	0xf4211efa, 0xf0000000,
+	0x80788478, 0xf4211c3a,
 	0xf0000000, 0x80788478,
-	0xf4211c3a, 0xf0000000,
-	0x80788478, 0xf4211c7a,
+	0xf4211c7a, 0xf0000000,
+	0x80788478, 0xf4211e7a,
 	0xf0000000, 0x80788478,
-	0xf4211e7a, 0xf0000000,
-	0x80788478, 0xf4211cfa,
+	0xf4211cfa, 0xf0000000,
+	0x80788478, 0xf4211bba,
 	0xf0000000, 0x80788478,
+	0xbf8cc07f, 0xb9eef814,
 	0xf4211bba, 0xf0000000,
 	0x80788478, 0xbf8cc07f,
-	0xb9eef814, 0xf4211bba,
-	0xf0000000, 0x80788478,
-	0xbf8cc07f, 0xb9eef815,
-	0xbef2036d, 0x876dff72,
-	0x0000ffff, 0xbefc036f,
-	0xbefe037a, 0xbeff037b,
-	0x876f71ff, 0x000003ff,
-	0xb9ef4803, 0xb9f9f816,
-	0x876f71ff, 0xfffff800,
-	0x906f8b6f, 0xb9efa2c3,
-	0xb9f3f801, 0x876fff72,
-	0xfc000000, 0x906f9a6f,
-	0x8f6f906f, 0xbef30380,
+	0xb9eef815, 0xbef2036d,
+	0x876dff72, 0x0000ffff,
+	0xbefc036f, 0xbefe037a,
+	0xbeff037b, 0x876f71ff,
+	0x000003ff, 0xb9ef4803,
+	0xb9f9f816, 0x876f71ff,
+	0xfffff800, 0x906f8b6f,
+	0xb9efa2c3, 0xb9f3f801,
+	0x876fff72, 0xfc000000,
+	0x906f9a6f, 0x8f6f906f,
+	0xbef30380, 0x88736f73,
+	0x876fff72, 0x02000000,
+	0x906f996f, 0x8f6f8f6f,
 	0x88736f73, 0x876fff72,
-	0x02000000, 0x906f996f,
-	0x8f6f8f6f, 0x88736f73,
-	0x876fff72, 0x01000000,
-	0x906f986f, 0x8f6f996f,
-	0x88736f73, 0x876fff70,
-	0x00800000, 0x906f976f,
-	0xb9f3f807, 0x87fe7e7e,
-	0x87ea6a6a, 0xb9f0f802,
-	0xbf8a0000, 0xbe80226c,
-	0xbf810000, 0xbf9f0000,
+	0x01000000, 0x906f986f,
+	0x8f6f996f, 0x88736f73,
+	0x876fff70, 0x00800000,
+	0x906f976f, 0xb9f3f807,
+	0x87fe7e7e, 0x87ea6a6a,
+	0xb9f0f802, 0xbf8a0000,
+	0xbe80226c, 0xbf810000,
 	0xbf9f0000, 0xbf9f0000,
 	0xbf9f0000, 0xbf9f0000,
+	0xbf9f0000, 0x00000000,
 };
 static const uint32_t cwsr_trap_arcturus_hex[] = {
 	0xbf820001, 0xbf8202c4,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm
@@ -758,6 +758,7 @@
 	buffer_load_dword	v1, v0, s_restore_buf_rsrc0, s_restore_mem_offset_save slc:1 glc:1 offset:256
 	buffer_load_dword	v2, v0, s_restore_buf_rsrc0, s_restore_mem_offset_save slc:1 glc:1 offset:256*2
 	buffer_load_dword	v3, v0, s_restore_buf_rsrc0, s_restore_mem_offset_save slc:1 glc:1 offset:256*3
+	s_waitcnt	vmcnt(0)
 
 	/* restore SGPRs */
 	//will be 2+8+16*6
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -1664,6 +1664,7 @@
 	}
 
 	mutex_unlock(&p->mutex);
+	dma_buf_put(dmabuf);
 
 	args->handle = MAKE_HANDLE(args->gpu_id, idr_handle);
 
@@ -1673,6 +1674,7 @@
 	amdgpu_amdkfd_gpuvm_free_memory_of_gpu(dev->kgd, (struct kgd_mem *)mem);
 err_unlock:
 	mutex_unlock(&p->mutex);
+	dma_buf_put(dmabuf);
 	return r;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
@@ -93,7 +93,7 @@
 			    kfd_debugfs_hqds_by_device, &kfd_debugfs_fops);
 	debugfs_create_file("rls", S_IFREG | 0444, debugfs_root,
 			    kfd_debugfs_rls_by_device, &kfd_debugfs_fops);
-	debugfs_create_file("hang_hws", S_IFREG | 0644, debugfs_root,
+	debugfs_create_file("hang_hws", S_IFREG | 0200, debugfs_root,
 			    NULL, &kfd_debugfs_hang_hws_fops);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -1112,9 +1112,9 @@
 	return 0;
 
 kfd_gtt_no_free_chunk:
-	pr_debug("Allocation failed with mem_obj = %p\n", mem_obj);
+	pr_debug("Allocation failed with mem_obj = %p\n", *mem_obj);
 	mutex_unlock(&kfd->gtt_sa_lock);
-	kfree(mem_obj);
+	kfree(*mem_obj);
 	return -ENOMEM;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1075,6 +1075,8 @@
 	unmap_queues_cpsch(dqm, KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES, 0);
 	dqm_unlock(dqm);
 
+	pm_release_ib(&dqm->packets);
+
 	kfd_gtt_sa_free(dqm->dev, dqm->fence_mem);
 	pm_uninit(&dqm->packets);
 
@@ -1181,16 +1183,18 @@
 
 	list_add(&q->list, &qpd->queues_list);
 	qpd->queue_count++;
+
+	if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
+		dqm->sdma_queue_count++;
+	else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
+		dqm->xgmi_sdma_queue_count++;
+
 	if (q->properties.is_active) {
 		dqm->queue_count++;
 		retval = execute_queues_cpsch(dqm,
 				KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0);
 	}
 
-	if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
-		dqm->sdma_queue_count++;
-	else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
-		dqm->xgmi_sdma_queue_count++;
 	/*
 	 * Unconditionally increment this counter, regardless of the queue's
 	 * type or whether the queue is active.
@@ -1676,7 +1680,8 @@
 	struct kfd_dev *dev = dqm->dev;
 	struct kfd_mem_obj *mem_obj = &dqm->hiq_sdma_mqd;
 	uint32_t size = dqm->mqd_mgrs[KFD_MQD_TYPE_SDMA]->mqd_size *
-		dev->device_info->num_sdma_engines *
+		(dev->device_info->num_sdma_engines +
+		dev->device_info->num_xgmi_sdma_engines) *
 		dev->device_info->num_sdma_queues_per_engine +
 		dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c
@@ -58,8 +58,9 @@
 	/* check if sh_mem_config register already configured */
 	if (qpd->sh_mem_config == 0) {
 		qpd->sh_mem_config =
-				SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
-					SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT;
+			(SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
+				SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT) |
+			(3 << SH_MEM_CONFIG__INITIAL_INST_PREFETCH__SHIFT);
 #if 0
 		/* TODO:
 		 *    This shouldn't be an issue with Navi10.  Verify.
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
@@ -62,6 +62,11 @@
 	}
 
 	kfd->ih_wq = alloc_workqueue("KFD IH", WQ_HIGHPRI, 1);
+	if (unlikely(!kfd->ih_wq)) {
+		kfifo_free(&kfd->ih_fifo);
+		dev_err(kfd_chardev(), "Failed to allocate KFD IH workqueue\n");
+		return -ENOMEM;
+	}
 	spin_lock_init(&kfd->interrupt_lock);
 
 	INIT_WORK(&kfd->interrupt_work, interrupt_wq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -312,6 +312,7 @@
 					   (int)process->lead_thread->pid);
 		if (ret) {
 			pr_warn("Creating procfs pid directory failed");
+			kobject_put(process->kobj);
 			goto out;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -612,8 +612,10 @@
 
 	ret = kobject_init_and_add(dev->kobj_node, &node_type,
 			sys_props.kobj_nodes, "%d", id);
-	if (ret < 0)
+	if (ret < 0) {
+		kobject_put(dev->kobj_node);
 		return ret;
+	}
 
 	dev->kobj_mem = kobject_create_and_add("mem_banks", dev->kobj_node);
 	if (!dev->kobj_mem)
@@ -660,8 +662,10 @@
 			return -ENOMEM;
 		ret = kobject_init_and_add(mem->kobj, &mem_type,
 				dev->kobj_mem, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(mem->kobj);
 			return ret;
+		}
 
 		mem->attr.name = "properties";
 		mem->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -679,8 +683,10 @@
 			return -ENOMEM;
 		ret = kobject_init_and_add(cache->kobj, &cache_type,
 				dev->kobj_cache, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(cache->kobj);
 			return ret;
+		}
 
 		cache->attr.name = "properties";
 		cache->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -698,8 +704,10 @@
 			return -ENOMEM;
 		ret = kobject_init_and_add(iolink->kobj, &iolink_type,
 				dev->kobj_iolink, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(iolink->kobj);
 			return ret;
+		}
 
 		iolink->attr.name = "properties";
 		iolink->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -779,8 +787,10 @@
 		ret = kobject_init_and_add(sys_props.kobj_topology,
 				&sysprops_type,  &kfd_device->kobj,
 				"topology");
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(sys_props.kobj_topology);
 			return ret;
+		}
 
 		sys_props.kobj_nodes = kobject_create_and_add("nodes",
 				sys_props.kobj_topology);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -928,8 +928,13 @@
 	struct dmcu_iram_parameters params;
 	unsigned int linear_lut[16];
 	int i;
-	struct dmcu *dmcu = adev->dm.dc->res_pool->dmcu;
-	bool ret = false;
+	struct dmcu *dmcu = NULL;
+	bool ret;
+
+	if (!adev->dm.fw_dmcu)
+		return detect_mst_link_for_all_connectors(adev->ddev);
+
+	dmcu = adev->dm.dc->res_pool->dmcu;
 
 	for (i = 0; i < 16; i++)
 		linear_lut[i] = 0xFFFF * i / 15;
@@ -940,13 +945,15 @@
 	params.backlight_lut_array_size = 16;
 	params.backlight_lut_array = linear_lut;
 
-	/* todo will enable for navi10 */
-	if (adev->asic_type <= CHIP_RAVEN) {
-		ret = dmcu_load_iram(dmcu, params);
+	/* Min backlight level after ABM reduction,  Don't allow below 1%
+	 * 0xFFFF x 0.01 = 0x28F
+	 */
+	params.min_abm_backlight = 0x28F;
 
-		if (!ret)
-			return -EINVAL;
-	}
+	ret = dmcu_load_iram(dmcu, params);
+
+	if (!ret)
+		return -EINVAL;
 
 	return detect_mst_link_for_all_connectors(adev->ddev);
 }
@@ -1086,8 +1093,8 @@
 	link->type = dc_connection_none;
 	prev_sink = link->local_sink;
 
-	if (prev_sink != NULL)
-		dc_sink_retain(prev_sink);
+	if (prev_sink)
+		dc_sink_release(prev_sink);
 
 	switch (link->connector_signal) {
 	case SIGNAL_TYPE_HDMI_TYPE_A: {
@@ -1410,24 +1417,30 @@
 		 * TODO: check if we still need the S3 mode update workaround.
 		 * If yes, put it here.
 		 */
-		if (aconnector->dc_sink)
+		if (aconnector->dc_sink) {
 			amdgpu_dm_update_freesync_caps(connector, NULL);
+			dc_sink_release(aconnector->dc_sink);
+		}
 
 		aconnector->dc_sink = sink;
 		dc_sink_retain(aconnector->dc_sink);
 		if (sink->dc_edid.length == 0) {
 			aconnector->edid = NULL;
-			drm_dp_cec_unset_edid(&aconnector->dm_dp_aux.aux);
+			if (aconnector->dc_link->aux_mode) {
+				drm_dp_cec_unset_edid(
+					&aconnector->dm_dp_aux.aux);
+			}
 		} else {
 			aconnector->edid =
-				(struct edid *) sink->dc_edid.raw_edid;
-
+				(struct edid *)sink->dc_edid.raw_edid;
 
 			drm_connector_update_edid_property(connector,
-					aconnector->edid);
-			drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
-					    aconnector->edid);
+							   aconnector->edid);
+			if (aconnector->dc_link->aux_mode)
+				drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
+						    aconnector->edid);
 		}
+
 		amdgpu_dm_update_freesync_caps(connector, aconnector->edid);
 
 	} else {
@@ -2030,12 +2043,18 @@
 				    &dm_atomic_state_funcs);
 
 	r = amdgpu_display_modeset_create_props(adev);
-	if (r)
+	if (r) {
+		dc_release_state(state->context);
+		kfree(state);
 		return r;
+	}
 
 	r = amdgpu_dm_audio_init(adev);
-	if (r)
+	if (r) {
+		dc_release_state(state->context);
+		kfree(state);
 		return r;
+	}
 
 	return 0;
 }
@@ -2051,6 +2070,8 @@
 #if defined(CONFIG_ACPI)
 	struct amdgpu_dm_backlight_caps caps;
 
+	memset(&caps, 0, sizeof(caps));
+
 	if (dm->backlight_caps.caps_valid)
 		return;
 
@@ -2693,7 +2714,8 @@
 			  const union dc_tiling_info *tiling_info,
 			  const uint64_t info,
 			  struct dc_plane_dcc_param *dcc,
-			  struct dc_plane_address *address)
+			  struct dc_plane_address *address,
+			  bool force_disable_dcc)
 {
 	struct dc *dc = adev->dm.dc;
 	struct dc_dcc_surface_param input;
@@ -2705,6 +2727,9 @@
 	memset(&input, 0, sizeof(input));
 	memset(&output, 0, sizeof(output));
 
+	if (force_disable_dcc)
+		return 0;
+
 	if (!offset)
 		return 0;
 
@@ -2754,7 +2779,8 @@
 			     union dc_tiling_info *tiling_info,
 			     struct plane_size *plane_size,
 			     struct dc_plane_dcc_param *dcc,
-			     struct dc_plane_address *address)
+			     struct dc_plane_address *address,
+			     bool force_disable_dcc)
 {
 	const struct drm_framebuffer *fb = &afb->base;
 	int ret;
@@ -2864,7 +2890,8 @@
 
 		ret = fill_plane_dcc_attributes(adev, afb, format, rotation,
 						plane_size, tiling_info,
-						tiling_flags, dcc, address);
+						tiling_flags, dcc, address,
+						force_disable_dcc);
 		if (ret)
 			return ret;
 	}
@@ -2956,7 +2983,8 @@
 			    const struct drm_plane_state *plane_state,
 			    const uint64_t tiling_flags,
 			    struct dc_plane_info *plane_info,
-			    struct dc_plane_address *address)
+			    struct dc_plane_address *address,
+			    bool force_disable_dcc)
 {
 	const struct drm_framebuffer *fb = plane_state->fb;
 	const struct amdgpu_framebuffer *afb =
@@ -3035,7 +3063,8 @@
 					   plane_info->rotation, tiling_flags,
 					   &plane_info->tiling_info,
 					   &plane_info->plane_size,
-					   &plane_info->dcc, address);
+					   &plane_info->dcc, address,
+					   force_disable_dcc);
 	if (ret)
 		return ret;
 
@@ -3058,6 +3087,7 @@
 	struct dc_plane_info plane_info;
 	uint64_t tiling_flags;
 	int ret;
+	bool force_disable_dcc = false;
 
 	ret = fill_dc_scaling_info(plane_state, &scaling_info);
 	if (ret)
@@ -3072,9 +3102,11 @@
 	if (ret)
 		return ret;
 
+	force_disable_dcc = adev->asic_type == CHIP_RAVEN && adev->in_suspend;
 	ret = fill_dc_plane_info_and_addr(adev, plane_state, tiling_flags,
 					  &plane_info,
-					  &dc_plane_state->address);
+					  &dc_plane_state->address,
+					  force_disable_dcc);
 	if (ret)
 		return ret;
 
@@ -3261,27 +3293,21 @@
 	return color_space;
 }
 
-static void reduce_mode_colour_depth(struct dc_crtc_timing *timing_out)
-{
-	if (timing_out->display_color_depth <= COLOR_DEPTH_888)
-		return;
-
-	timing_out->display_color_depth--;
-}
-
-static void adjust_colour_depth_from_display_info(struct dc_crtc_timing *timing_out,
-						const struct drm_display_info *info)
+static bool adjust_colour_depth_from_display_info(
+	struct dc_crtc_timing *timing_out,
+	const struct drm_display_info *info)
 {
+	enum dc_color_depth depth = timing_out->display_color_depth;
 	int normalized_clk;
-	if (timing_out->display_color_depth <= COLOR_DEPTH_888)
-		return;
 	do {
 		normalized_clk = timing_out->pix_clk_100hz / 10;
 		/* YCbCr 4:2:0 requires additional adjustment of 1/2 */
 		if (timing_out->pixel_encoding == PIXEL_ENCODING_YCBCR420)
 			normalized_clk /= 2;
 		/* Adjusting pix clock following on HDMI spec based on colour depth */
-		switch (timing_out->display_color_depth) {
+		switch (depth) {
+		case COLOR_DEPTH_888:
+			break;
 		case COLOR_DEPTH_101010:
 			normalized_clk = (normalized_clk * 30) / 24;
 			break;
@@ -3292,14 +3318,15 @@
 			normalized_clk = (normalized_clk * 48) / 24;
 			break;
 		default:
-			return;
+			/* The above depths are the only ones valid for HDMI. */
+			return false;
 		}
-		if (normalized_clk <= info->max_tmds_clock)
-			return;
-		reduce_mode_colour_depth(timing_out);
-
-	} while (timing_out->display_color_depth > COLOR_DEPTH_888);
-
+		if (normalized_clk <= info->max_tmds_clock) {
+			timing_out->display_color_depth = depth;
+			return true;
+		}
+	} while (--depth > COLOR_DEPTH_666);
+	return false;
 }
 
 static void fill_stream_properties_from_drm_display_mode(
@@ -3365,8 +3392,14 @@
 
 	stream->out_transfer_func->type = TF_TYPE_PREDEFINED;
 	stream->out_transfer_func->tf = TRANSFER_FUNCTION_SRGB;
-	if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
-		adjust_colour_depth_from_display_info(timing_out, info);
+	if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A) {
+		if (!adjust_colour_depth_from_display_info(timing_out, info) &&
+		    drm_mode_is_420_also(info, mode_in) &&
+		    timing_out->pixel_encoding != PIXEL_ENCODING_YCBCR420) {
+			timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR420;
+			adjust_colour_depth_from_display_info(timing_out, info);
+		}
+	}
 }
 
 static void fill_audio_info(struct audio_info *audio_info,
@@ -3923,6 +3956,13 @@
 	struct amdgpu_device *adev = connector->dev->dev_private;
 	struct amdgpu_display_manager *dm = &adev->dm;
 
+	/*
+	 * Call only if mst_mgr was iniitalized before since it's not done
+	 * for all connector types.
+	 */
+	if (aconnector->mst_mgr.dev)
+		drm_dp_mst_topology_mgr_destroy(&aconnector->mst_mgr);
+
 #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) ||\
 	defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)
 
@@ -4266,19 +4306,6 @@
 {
 }
 
-static bool does_crtc_have_active_cursor(struct drm_crtc_state *new_crtc_state)
-{
-	struct drm_device *dev = new_crtc_state->crtc->dev;
-	struct drm_plane *plane;
-
-	drm_for_each_plane_mask(plane, dev, new_crtc_state->plane_mask) {
-		if (plane->type == DRM_PLANE_TYPE_CURSOR)
-			return true;
-	}
-
-	return false;
-}
-
 static int count_crtc_active_planes(struct drm_crtc_state *new_crtc_state)
 {
 	struct drm_atomic_state *state = new_crtc_state->state;
@@ -4358,19 +4385,20 @@
 		return ret;
 	}
 
-	/* In some use cases, like reset, no stream is attached */
-	if (!dm_crtc_state->stream)
-		return 0;
-
 	/*
-	 * We want at least one hardware plane enabled to use
-	 * the stream with a cursor enabled.
+	 * We require the primary plane to be enabled whenever the CRTC is, otherwise
+	 * drm_mode_cursor_universal may end up trying to enable the cursor plane while all other
+	 * planes are disabled, which is not supported by the hardware. And there is legacy
+	 * userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
 	 */
-	if (state->enable && state->active &&
-	    does_crtc_have_active_cursor(state) &&
-	    dm_crtc_state->active_planes == 0)
+	if (state->enable &&
+	    !(state->plane_mask & drm_plane_mask(crtc->primary)))
 		return -EINVAL;
 
+	/* In some use cases, like reset, no stream is attached */
+	if (!dm_crtc_state->stream)
+		return 0;
+
 	if (dc_validate_stream(dc, dm_crtc_state->stream) == DC_OK)
 		return 0;
 
@@ -4475,6 +4503,7 @@
 	uint64_t tiling_flags;
 	uint32_t domain;
 	int r;
+	bool force_disable_dcc = false;
 
 	dm_plane_state_old = to_dm_plane_state(plane->state);
 	dm_plane_state_new = to_dm_plane_state(new_state);
@@ -4533,11 +4562,13 @@
 			dm_plane_state_old->dc_state != dm_plane_state_new->dc_state) {
 		struct dc_plane_state *plane_state = dm_plane_state_new->dc_state;
 
+		force_disable_dcc = adev->asic_type == CHIP_RAVEN && adev->in_suspend;
 		fill_plane_buffer_attributes(
 			adev, afb, plane_state->format, plane_state->rotation,
 			tiling_flags, &plane_state->tiling_info,
 			&plane_state->plane_size, &plane_state->dcc,
-			&plane_state->address);
+			&plane_state->address,
+			force_disable_dcc);
 	}
 
 	return 0;
@@ -5761,7 +5792,12 @@
 		fill_dc_plane_info_and_addr(
 			dm->adev, new_plane_state, tiling_flags,
 			&bundle->plane_infos[planes_count],
-			&bundle->flip_addrs[planes_count].address);
+			&bundle->flip_addrs[planes_count].address,
+			false);
+
+		DRM_DEBUG_DRIVER("plane: id=%d dcc_en=%d\n",
+				 new_plane_state->plane->index,
+				 bundle->plane_infos[planes_count].dcc.enable);
 
 		bundle->surface_updates[planes_count].plane_info =
 			&bundle->plane_infos[planes_count];
@@ -6429,14 +6465,14 @@
 
 	ret = PTR_ERR_OR_ZERO(conn_state);
 	if (ret)
-		goto err;
+		goto out;
 
 	/* Attach crtc to drm_atomic_state*/
 	crtc_state = drm_atomic_get_crtc_state(state, &disconnected_acrtc->base);
 
 	ret = PTR_ERR_OR_ZERO(crtc_state);
 	if (ret)
-		goto err;
+		goto out;
 
 	/* force a restore */
 	crtc_state->mode_changed = true;
@@ -6446,17 +6482,15 @@
 
 	ret = PTR_ERR_OR_ZERO(plane_state);
 	if (ret)
-		goto err;
-
+		goto out;
 
 	/* Call commit internally with the state we just constructed */
 	ret = drm_atomic_commit(state);
-	if (!ret)
-		return 0;
 
-err:
-	DRM_ERROR("Restoring old state failed with %i\n", ret);
+out:
 	drm_atomic_state_put(state);
+	if (ret)
+		DRM_ERROR("Restoring old state failed with %i\n", ret);
 
 	return ret;
 }
@@ -6896,6 +6930,7 @@
 	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
 	struct dm_crtc_state *dm_new_crtc_state, *dm_old_crtc_state;
 	struct dm_plane_state *dm_new_plane_state, *dm_old_plane_state;
+	struct amdgpu_crtc *new_acrtc;
 	bool needs_reset;
 	int ret = 0;
 
@@ -6905,9 +6940,23 @@
 	dm_new_plane_state = to_dm_plane_state(new_plane_state);
 	dm_old_plane_state = to_dm_plane_state(old_plane_state);
 
-	/*TODO Implement atomic check for cursor plane */
-	if (plane->type == DRM_PLANE_TYPE_CURSOR)
+	/*TODO Implement better atomic check for cursor plane */
+	if (plane->type == DRM_PLANE_TYPE_CURSOR) {
+		if (!enable || !new_plane_crtc ||
+			drm_atomic_plane_disabling(plane->state, new_plane_state))
+			return 0;
+
+		new_acrtc = to_amdgpu_crtc(new_plane_crtc);
+
+		if ((new_plane_state->crtc_w > new_acrtc->max_cursor_width) ||
+			(new_plane_state->crtc_h > new_acrtc->max_cursor_height)) {
+			DRM_DEBUG_ATOMIC("Bad cursor size %d x %d\n",
+							 new_plane_state->crtc_w, new_plane_state->crtc_h);
+			return -EINVAL;
+		}
+
 		return 0;
+	}
 
 	needs_reset = should_reset_plane(state, plane, old_plane_state,
 					 new_plane_state);
@@ -6940,8 +6989,7 @@
 				dm_old_plane_state->dc_state,
 				dm_state->context)) {
 
-			ret = EINVAL;
-			return ret;
+			return -EINVAL;
 		}
 
 
@@ -7132,7 +7180,8 @@
 				ret = fill_dc_plane_info_and_addr(
 					dm->adev, new_plane_state, tiling_flags,
 					&plane_info,
-					&flip_addr.address);
+					&flip_addr.address,
+					false);
 				if (ret)
 					goto cleanup;
 
@@ -7180,6 +7229,30 @@
 	*out_type = update_type;
 	return ret;
 }
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+static int add_affected_mst_dsc_crtcs(struct drm_atomic_state *state, struct drm_crtc *crtc)
+{
+	struct drm_connector *connector;
+	struct drm_connector_state *conn_state;
+	struct amdgpu_dm_connector *aconnector = NULL;
+	int i;
+	for_each_new_connector_in_state(state, connector, conn_state, i) {
+		if (conn_state->crtc != crtc)
+			continue;
+
+		aconnector = to_amdgpu_dm_connector(connector);
+		if (!aconnector->port || !aconnector->mst_port)
+			aconnector = NULL;
+		else
+			break;
+	}
+
+	if (!aconnector)
+		return 0;
+
+	return drm_dp_mst_add_affected_dsc_crtcs(state, &aconnector->mst_port->mst_mgr);
+}
+#endif
 
 /**
  * amdgpu_dm_atomic_check() - Atomic check implementation for AMDgpu DM.
@@ -7233,6 +7306,40 @@
 	if (ret)
 		goto fail;
 
+	/* Check connector changes */
+	for_each_oldnew_connector_in_state(state, connector, old_con_state, new_con_state, i) {
+		struct dm_connector_state *dm_old_con_state = to_dm_connector_state(old_con_state);
+		struct dm_connector_state *dm_new_con_state = to_dm_connector_state(new_con_state);
+
+		/* Skip connectors that are disabled or part of modeset already. */
+		if (!old_con_state->crtc && !new_con_state->crtc)
+			continue;
+
+		if (!new_con_state->crtc)
+			continue;
+
+		new_crtc_state = drm_atomic_get_crtc_state(state, new_con_state->crtc);
+		if (IS_ERR(new_crtc_state)) {
+			ret = PTR_ERR(new_crtc_state);
+			goto fail;
+		}
+
+		if (dm_old_con_state->abm_level !=
+		    dm_new_con_state->abm_level)
+			new_crtc_state->connectors_changed = true;
+	}
+
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+	if (adev->asic_type >= CHIP_NAVI10) {
+		for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
+			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
+				ret = add_affected_mst_dsc_crtcs(state, crtc);
+				if (ret)
+					goto fail;
+			}
+		}
+	}
+#endif
 	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
 		if (!drm_atomic_crtc_needs_modeset(new_crtc_state) &&
 		    !new_crtc_state->color_mgmt_changed &&
@@ -7416,20 +7523,38 @@
 		 * the same resource. If we have a new DC context as part of
 		 * the DM atomic state from validation we need to free it and
 		 * retain the existing one instead.
+		 *
+		 * Furthermore, since the DM atomic state only contains the DC
+		 * context and can safely be annulled, we can free the state
+		 * and clear the associated private object now to free
+		 * some memory and avoid a possible use-after-free later.
 		 */
-		struct dm_atomic_state *new_dm_state, *old_dm_state;
 
-		new_dm_state = dm_atomic_get_new_state(state);
-		old_dm_state = dm_atomic_get_old_state(state);
+		for (i = 0; i < state->num_private_objs; i++) {
+			struct drm_private_obj *obj = state->private_objs[i].ptr;
 
-		if (new_dm_state && old_dm_state) {
-			if (new_dm_state->context)
-				dc_release_state(new_dm_state->context);
+			if (obj->funcs == adev->dm.atomic_obj.funcs) {
+				int j = state->num_private_objs-1;
 
-			new_dm_state->context = old_dm_state->context;
+				dm_atomic_destroy_state(obj,
+						state->private_objs[i].state);
 
-			if (old_dm_state->context)
-				dc_retain_state(old_dm_state->context);
+				/* If i is not at the end of the array then the
+				 * last element needs to be moved to where i was
+				 * before the array can safely be truncated.
+				 */
+				if (i != j)
+					state->private_objs[i] =
+						state->private_objs[j];
+
+				state->private_objs[j].ptr = NULL;
+				state->private_objs[j].state = NULL;
+				state->private_objs[j].old_state = NULL;
+				state->private_objs[j].new_state = NULL;
+
+				state->num_private_objs = j;
+				break;
+			}
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
@@ -210,6 +210,8 @@
 	res = mod_color_calculate_regamma_params(func, gamma, true, has_rom,
 						 NULL);
 
+	dc_gamma_release(&gamma);
+
 	return res ? 0 : -ENOMEM;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
@@ -113,7 +113,7 @@
 	mutex_lock(&adev->dm.dc_lock);
 
 	/* Enable CRTC CRC generation if necessary. */
-	if (dm_is_crc_source_crtc(source)) {
+	if (dm_is_crc_source_crtc(source) || source == AMDGPU_DM_PIPE_CRC_SOURCE_NONE) {
 		if (!dc_stream_configure_crc(stream_state->ctx->dc,
 					     stream_state, enable, enable)) {
 			ret = -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
@@ -247,7 +247,8 @@
 		drm_dp_mst_reset_vcpi_slots(mst_mgr, mst_port);
 	}
 
-	ret = drm_dp_update_payload_part1(mst_mgr);
+	/* It's OK for this to fail */
+	drm_dp_update_payload_part1(mst_mgr);
 
 	/* mst_mgr->->payloads are VC payload notify MST branch using DPCD or
 	 * AUX message. The sequence is slot 1-63 allocated sequence for each
@@ -256,9 +257,6 @@
 
 	get_payload_table(aconnector, proposed_table);
 
-	if (ret)
-		return false;
-
 	return true;
 }
 
@@ -316,7 +314,6 @@
 	struct amdgpu_dm_connector *aconnector;
 	struct drm_dp_mst_topology_mgr *mst_mgr;
 	struct drm_dp_mst_port *mst_port;
-	int ret;
 
 	aconnector = (struct amdgpu_dm_connector *)stream->dm_stream_context;
 
@@ -330,10 +327,8 @@
 	if (!mst_mgr->mst_state)
 		return false;
 
-	ret = drm_dp_update_payload_part2(mst_mgr);
-
-	if (ret)
-		return false;
+	/* It's OK for this to fail */
+	drm_dp_update_payload_part2(mst_mgr);
 
 	if (!enable)
 		drm_dp_mst_deallocate_vcpi(mst_mgr, mst_port);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -101,7 +101,7 @@
 	result = dc_link_aux_transfer_raw(TO_DM_AUX(aux)->ddc_service, &payload,
 				      &operation_result);
 
-	if (payload.write)
+	if (payload.write && result >= 0)
 		result = msg->size;
 
 	if (result < 0)
@@ -379,6 +379,7 @@
 					   aconnector->dc_sink);
 		dc_sink_release(aconnector->dc_sink);
 		aconnector->dc_sink = NULL;
+		aconnector->dc_link->cur_link_settings.lane_count = 0;
 	}
 
 	drm_connector_unregister(connector);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
@@ -342,7 +342,8 @@
 	if (adev->powerplay.pp_funcs && adev->powerplay.pp_funcs->get_clock_by_type) {
 		if (adev->powerplay.pp_funcs->get_clock_by_type(pp_handle,
 			dc_to_pp_clock_type(clk_type), &pp_clks)) {
-		/* Error in pplib. Provide default values. */
+			/* Error in pplib. Provide default values. */
+			get_default_clock_levels(clk_type, dc_clks);
 			return true;
 		}
 	} else if (adev->smu.funcs && adev->smu.funcs->get_clock_by_type) {
@@ -529,6 +530,8 @@
 			&pp_clk_info);
 	else if (adev->smu.funcs)
 		ret = smu_get_current_clocks(&adev->smu, &pp_clk_info);
+	else
+		return false;
 	if (ret)
 		return false;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
@@ -2543,7 +2543,6 @@
 
 	/* Sort voltage table from low to high*/
 	if (result == BP_RESULT_OK) {
-		struct clock_voltage_caps temp = {0, 0};
 		uint32_t i;
 		uint32_t j;
 
@@ -2553,10 +2552,8 @@
 						info->disp_clk_voltage[j].max_supported_clk <
 						info->disp_clk_voltage[j-1].max_supported_clk) {
 					/* swap j and j - 1*/
-					temp = info->disp_clk_voltage[j-1];
-					info->disp_clk_voltage[j-1] =
-							info->disp_clk_voltage[j];
-					info->disp_clk_voltage[j] = temp;
+					swap(info->disp_clk_voltage[j - 1],
+					     info->disp_clk_voltage[j]);
 				}
 			}
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
@@ -1613,8 +1613,6 @@
 
 	struct atom_common_table_header *header;
 	struct atom_data_revision revision;
-
-	struct clock_voltage_caps temp = {0, 0};
 	uint32_t i;
 	uint32_t j;
 
@@ -1644,10 +1642,8 @@
 				info->disp_clk_voltage[j-1].max_supported_clk
 				) {
 				/* swap j and j - 1*/
-				temp = info->disp_clk_voltage[j-1];
-				info->disp_clk_voltage[j-1] =
-					info->disp_clk_voltage[j];
-				info->disp_clk_voltage[j] = temp;
+				swap(info->disp_clk_voltage[j - 1],
+				     info->disp_clk_voltage[j]);
 			}
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/bios/command_table.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/bios/command_table.c
@@ -245,6 +245,23 @@
 					cntl->enable_dp_audio);
 	params.ucLaneNum = (uint8_t)(cntl->lanes_number);
 
+	switch (cntl->color_depth) {
+	case COLOR_DEPTH_888:
+		params.ucBitPerColor = PANEL_8BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_101010:
+		params.ucBitPerColor = PANEL_10BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_121212:
+		params.ucBitPerColor = PANEL_12BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_161616:
+		params.ucBitPerColor = PANEL_16BIT_PER_COLOR;
+		break;
+	default:
+		break;
+	}
+
 	if (EXEC_BIOS_CMD_TABLE(DIGxEncoderControl, params))
 		result = BP_RESULT_OK;
 
@@ -274,6 +291,23 @@
 					cntl->enable_dp_audio));
 	params.ucLaneNum = (uint8_t)(cntl->lanes_number);
 
+	switch (cntl->color_depth) {
+	case COLOR_DEPTH_888:
+		params.ucBitPerColor = PANEL_8BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_101010:
+		params.ucBitPerColor = PANEL_10BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_121212:
+		params.ucBitPerColor = PANEL_12BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_161616:
+		params.ucBitPerColor = PANEL_16BIT_PER_COLOR;
+		break;
+	default:
+		break;
+	}
+
 	if (EXEC_BIOS_CMD_TABLE(DIGxEncoderControl, params))
 		result = BP_RESULT_OK;
 
@@ -1057,6 +1091,19 @@
 		 * driver choose program it itself, i.e. here we program it
 		 * to 888 by default.
 		 */
+		if (bp_params->signal_type == SIGNAL_TYPE_HDMI_TYPE_A)
+			switch (bp_params->color_depth) {
+			case TRANSMITTER_COLOR_DEPTH_30:
+				/* yes this is correct, the atom define is wrong */
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_32BPP;
+				break;
+			case TRANSMITTER_COLOR_DEPTH_36:
+				/* yes this is correct, the atom define is wrong */
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_30BPP;
+				break;
+			default:
+				break;
+			}
 
 		if (EXEC_BIOS_CMD_TABLE(SetPixelClock, clk))
 			result = BP_RESULT_OK;
@@ -1135,6 +1182,20 @@
 		 * driver choose program it itself, i.e. here we pass required
 		 * target rate that includes deep color.
 		 */
+		if (bp_params->signal_type == SIGNAL_TYPE_HDMI_TYPE_A)
+			switch (bp_params->color_depth) {
+			case TRANSMITTER_COLOR_DEPTH_30:
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6;
+				break;
+			case TRANSMITTER_COLOR_DEPTH_36:
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6;
+				break;
+			case TRANSMITTER_COLOR_DEPTH_48:
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_48BPP;
+				break;
+			default:
+				break;
+			}
 
 		if (EXEC_BIOS_CMD_TABLE(SetPixelClock, clk))
 			result = BP_RESULT_OK;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
@@ -1438,6 +1438,7 @@
 	struct dc_context *ctx = dc->ctx;
 	struct dm_pp_clock_levels_with_voltage fclks = {0}, dcfclks = {0};
 	bool res;
+	unsigned vmin0p65_idx, vmid0p72_idx, vnom0p8_idx, vmax0p9_idx;
 
 	/* TODO: This is not the proper way to obtain fabric_and_dram_bandwidth, should be min(fclk, memclk) */
 	res = dm_pp_get_clock_levels_by_type_with_voltage(
@@ -1449,17 +1450,28 @@
 		res = verify_clock_values(&fclks);
 
 	if (res) {
-		ASSERT(fclks.num_levels >= 3);
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 = 32 * (fclks.data[0].clocks_in_khz / 1000.0) / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - (fclks.num_levels > 2 ? 3 : 2)].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - 2].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - 1].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
+		ASSERT(fclks.num_levels);
+
+		vmin0p65_idx = 0;
+		vmid0p72_idx = fclks.num_levels -
+			(fclks.num_levels > 2 ? 3 : (fclks.num_levels > 1 ? 2 : 1));
+		vnom0p8_idx = fclks.num_levels - (fclks.num_levels > 1 ? 2 : 1);
+		vmax0p9_idx = fclks.num_levels - 1;
+
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 =
+			32 * (fclks.data[vmin0p65_idx].clocks_in_khz / 1000.0) / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vmid0p72_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vnom0p8_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vmax0p9_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
 	} else
 		BREAK_TO_DEBUGGER();
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile
@@ -91,6 +91,12 @@
 ###############################################################################
 CLK_MGR_DCN21 = rn_clk_mgr.o rn_clk_mgr_vbios_smu.o
 
+# prevent build errors regarding soft-float vs hard-float FP ABI tags
+# this code is currently unused on ppc64, as it applies to Renoir APUs only
+ifdef CONFIG_PPC64
+CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn21/rn_clk_mgr.o := $(call cc-option,-mno-gnu-attribute)
+endif
+
 AMD_DAL_CLK_MGR_DCN21 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn21/,$(CLK_MGR_DCN21))
 
 AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN21)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
@@ -85,12 +85,77 @@
 	return disp_clk_threshold;
 }
 
-static void ramp_up_dispclk_with_dpp(struct clk_mgr_internal *clk_mgr, struct dc *dc, struct dc_clocks *new_clocks)
+static void ramp_up_dispclk_with_dpp(
+		struct clk_mgr_internal *clk_mgr,
+		struct dc *dc,
+		struct dc_clocks *new_clocks,
+		bool safe_to_lower)
 {
 	int i;
 	int dispclk_to_dpp_threshold = rv1_determine_dppclk_threshold(clk_mgr, new_clocks);
 	bool request_dpp_div = new_clocks->dispclk_khz > new_clocks->dppclk_khz;
 
+	/* this function is to change dispclk, dppclk and dprefclk according to
+	 * bandwidth requirement. Its call stack is rv1_update_clocks -->
+	 * update_clocks --> dcn10_prepare_bandwidth / dcn10_optimize_bandwidth
+	 * --> prepare_bandwidth / optimize_bandwidth. before change dcn hw,
+	 * prepare_bandwidth will be called first to allow enough clock,
+	 * watermark for change, after end of dcn hw change, optimize_bandwidth
+	 * is executed to lower clock to save power for new dcn hw settings.
+	 *
+	 * below is sequence of commit_planes_for_stream:
+	 *
+	 * step 1: prepare_bandwidth - raise clock to have enough bandwidth
+	 * step 2: lock_doublebuffer_enable
+	 * step 3: pipe_control_lock(true) - make dchubp register change will
+	 * not take effect right way
+	 * step 4: apply_ctx_for_surface - program dchubp
+	 * step 5: pipe_control_lock(false) - dchubp register change take effect
+	 * step 6: optimize_bandwidth --> dc_post_update_surfaces_to_stream
+	 * for full_date, optimize clock to save power
+	 *
+	 * at end of step 1, dcn clocks (dprefclk, dispclk, dppclk) may be
+	 * changed for new dchubp configuration. but real dcn hub dchubps are
+	 * still running with old configuration until end of step 5. this need
+	 * clocks settings at step 1 should not less than that before step 1.
+	 * this is checked by two conditions: 1. if (should_set_clock(safe_to_lower
+	 * , new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz) ||
+	 * new_clocks->dispclk_khz == clk_mgr_base->clks.dispclk_khz)
+	 * 2. request_dpp_div = new_clocks->dispclk_khz > new_clocks->dppclk_khz
+	 *
+	 * the second condition is based on new dchubp configuration. dppclk
+	 * for new dchubp may be different from dppclk before step 1.
+	 * for example, before step 1, dchubps are as below:
+	 * pipe 0: recout=(0,40,1920,980) viewport=(0,0,1920,979)
+	 * pipe 1: recout=(0,0,1920,1080) viewport=(0,0,1920,1080)
+	 * for dppclk for pipe0 need dppclk = dispclk
+	 *
+	 * new dchubp pipe split configuration:
+	 * pipe 0: recout=(0,0,960,1080) viewport=(0,0,960,1080)
+	 * pipe 1: recout=(960,0,960,1080) viewport=(960,0,960,1080)
+	 * dppclk only needs dppclk = dispclk /2.
+	 *
+	 * dispclk, dppclk are not lock by otg master lock. they take effect
+	 * after step 1. during this transition, dispclk are the same, but
+	 * dppclk is changed to half of previous clock for old dchubp
+	 * configuration between step 1 and step 6. This may cause p-state
+	 * warning intermittently.
+	 *
+	 * for new_clocks->dispclk_khz == clk_mgr_base->clks.dispclk_khz, we
+	 * need make sure dppclk are not changed to less between step 1 and 6.
+	 * for new_clocks->dispclk_khz > clk_mgr_base->clks.dispclk_khz,
+	 * new display clock is raised, but we do not know ratio of
+	 * new_clocks->dispclk_khz and clk_mgr_base->clks.dispclk_khz,
+	 * new_clocks->dispclk_khz /2 does not guarantee equal or higher than
+	 * old dppclk. we could ignore power saving different between
+	 * dppclk = displck and dppclk = dispclk / 2 between step 1 and step 6.
+	 * as long as safe_to_lower = false, set dpclk = dispclk to simplify
+	 * condition check.
+	 * todo: review this change for other asic.
+	 **/
+	if (!safe_to_lower)
+		request_dpp_div = false;
+
 	/* set disp clk to dpp clk threshold */
 
 	clk_mgr->funcs->set_dispclk(clk_mgr, dispclk_to_dpp_threshold);
@@ -206,7 +271,7 @@
 	/* program dispclk on = as a w/a for sleep resume clock ramping issues */
 	if (should_set_clock(safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)
 			|| new_clocks->dispclk_khz == clk_mgr_base->clks.dispclk_khz) {
-		ramp_up_dispclk_with_dpp(clk_mgr, dc, new_clocks);
+		ramp_up_dispclk_with_dpp(clk_mgr, dc, new_clocks, safe_to_lower);
 		clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz;
 		send_request_to_lower = true;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
@@ -320,6 +320,8 @@
 		struct dc_state *context,
 		bool safe_to_lower)
 {
+	struct clk_mgr_internal *clk_mgr_int = TO_CLK_MGR_INTERNAL(clk_mgr);
+
 	struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;
 	/* Min fclk = 1.2GHz since all the extra scemi logic seems to run off of it */
 	int fclk_adj = new_clocks->fclk_khz > 1200000 ? new_clocks->fclk_khz : 1200000;
@@ -357,14 +359,18 @@
 		clk_mgr->clks.dispclk_khz = new_clocks->dispclk_khz;
 	}
 
-	/* Both fclk and dppclk ref are run on the same scemi clock so we
-	 * need to keep the same value for both
+	/* Both fclk and ref_dppclk run on the same scemi clock.
+	 * So take the higher value since the DPP DTO is typically programmed
+	 * such that max dppclk is 1:1 with ref_dppclk.
 	 */
 	if (clk_mgr->clks.fclk_khz > clk_mgr->clks.dppclk_khz)
 		clk_mgr->clks.dppclk_khz = clk_mgr->clks.fclk_khz;
 	if (clk_mgr->clks.dppclk_khz > clk_mgr->clks.fclk_khz)
 		clk_mgr->clks.fclk_khz = clk_mgr->clks.dppclk_khz;
 
+	// Both fclk and ref_dppclk run on the same scemi clock.
+	clk_mgr_int->dccg->ref_dppclk = clk_mgr->clks.fclk_khz;
+
 	dm_set_dcn_clocks(clk_mgr->ctx, &clk_mgr->clks);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
@@ -91,8 +91,23 @@
 		rn_vbios_smu_set_min_deep_sleep_dcfclk(clk_mgr, clk_mgr_base->clks.dcfclk_deep_sleep_khz);
 	}
 
-	if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) {
-		if (clk_mgr->base.clks.dppclk_khz > new_clocks->dppclk_khz)
+	// workaround: Limit dppclk to 100Mhz to avoid lower eDP panel switch to plus 4K monitor underflow.
+	if (!IS_DIAG_DC(dc->ctx->dce_environment)) {
+		if (new_clocks->dppclk_khz < 100000)
+			new_clocks->dppclk_khz = 100000;
+	}
+
+	/*
+	 * Temporally ignore thew 0 cases for disp and dpp clks.
+	 * We may have a new feature that requires 0 clks in the future.
+	 */
+	if (new_clocks->dppclk_khz == 0 || new_clocks->dispclk_khz == 0) {
+		new_clocks->dppclk_khz = clk_mgr_base->clks.dppclk_khz;
+		new_clocks->dispclk_khz = clk_mgr_base->clks.dispclk_khz;
+	}
+
+	if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr_base->clks.dppclk_khz)) {
+		if (clk_mgr_base->clks.dppclk_khz > new_clocks->dppclk_khz)
 			dpp_clock_lowered = true;
 		clk_mgr_base->clks.dppclk_khz = new_clocks->dppclk_khz;
 		update_dppclk = true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c
@@ -33,7 +33,7 @@
 #include "mp/mp_12_0_0_sh_mask.h"
 
 #define REG(reg_name) \
-	(MP1_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name)
+	(MP0_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name)
 
 #define FN(reg_name, field) \
 	FD(reg_name##__##field)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -283,6 +283,8 @@
 	int i = 0;
 	bool ret = false;
 
+	stream->adjust = *adjust;
+
 	for (i = 0; i < MAX_PIPES; i++) {
 		struct pipe_ctx *pipe = &dc->current_state->res_ctx.pipe_ctx[i];
 
@@ -905,15 +907,11 @@
 
 		/* set first pipe with plane as master */
 		for (j = 0; j < group_size; j++) {
-			struct pipe_ctx *temp;
-
 			if (pipe_set[j]->plane_state) {
 				if (j == 0)
 					break;
 
-				temp = pipe_set[0];
-				pipe_set[0] = pipe_set[j];
-				pipe_set[j] = temp;
+				swap(pipe_set[0], pipe_set[j]);
 				break;
 			}
 		}
@@ -1180,6 +1178,26 @@
 	return (result == DC_OK);
 }
 
+static bool is_flip_pending_in_pipes(struct dc *dc, struct dc_state *context)
+{
+	int i;
+	struct pipe_ctx *pipe;
+
+	for (i = 0; i < MAX_PIPES; i++) {
+		pipe = &context->res_ctx.pipe_ctx[i];
+
+		if (!pipe->plane_state)
+			continue;
+
+		/* Must set to false to start with, due to OR in update function */
+		pipe->plane_state->status.is_flip_pending = false;
+		dc->hwss.update_pending_status(pipe);
+		if (pipe->plane_state->status.is_flip_pending)
+			return true;
+	}
+	return false;
+}
+
 bool dc_post_update_surfaces_to_stream(struct dc *dc)
 {
 	int i;
@@ -1190,6 +1208,9 @@
 
 	post_surface_trace(dc);
 
+	if (is_flip_pending_in_pipes(dc, context))
+		return true;
+
 	for (i = 0; i < dc->res_pool->pipe_count; i++)
 		if (context->res_ctx.pipe_ctx[i].stream == NULL ||
 		    context->res_ctx.pipe_ctx[i].plane_state == NULL) {
@@ -2152,7 +2173,7 @@
 	enum surface_update_type update_type;
 	struct dc_state *context;
 	struct dc_context *dc_ctx = dc->ctx;
-	int i;
+	int i, j;
 
 	stream_status = dc_stream_get_status(stream);
 	context = dc->current_state;
@@ -2190,10 +2211,29 @@
 
 		copy_surface_update_to_plane(surface, &srf_updates[i]);
 
+		if (update_type >= UPDATE_TYPE_MED) {
+			for (j = 0; j < dc->res_pool->pipe_count; j++) {
+				struct pipe_ctx *pipe_ctx =
+					&context->res_ctx.pipe_ctx[j];
+
+				if (pipe_ctx->plane_state != surface)
+					continue;
+
+				resource_build_scaling_params(pipe_ctx);
+			}
+		}
 	}
 
 	copy_stream_update_to_stream(dc, context, stream, stream_update);
 
+	if (update_type > UPDATE_TYPE_FAST) {
+		if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) {
+			DC_ERROR("Mode validation failed for stream update!\n");
+			dc_release_state(context);
+			return;
+		}
+	}
+
 	commit_planes_for_stream(
 				dc,
 				srf_updates,
@@ -2267,12 +2307,7 @@
 	enum dc_acpi_cm_power_state power_state)
 {
 	struct kref refcount;
-	struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib),
-						GFP_KERNEL);
-
-	ASSERT(dml);
-	if (!dml)
-		return;
+	struct display_mode_lib *dml;
 
 	switch (power_state) {
 	case DC_ACPI_CM_POWER_STATE_D0:
@@ -2294,6 +2329,12 @@
 		 * clean state, and dc hw programming optimizations will not
 		 * cause any trouble.
 		 */
+		dml = kzalloc(sizeof(struct display_mode_lib),
+				GFP_KERNEL);
+
+		ASSERT(dml);
+		if (!dml)
+			return;
 
 		/* Preserve refcount */
 		refcount = dc->current_state->refcount;
@@ -2307,10 +2348,10 @@
 		dc->current_state->refcount = refcount;
 		dc->current_state->bw_ctx.dml = *dml;
 
+		kfree(dml);
+
 		break;
 	}
-
-	kfree(dml);
 }
 
 void dc_resume(struct dc *dc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -373,7 +373,7 @@
 
 	if (GPIO_RESULT_OK != dal_ddc_open(
 		ddc, GPIO_MODE_INPUT, GPIO_DDC_CONFIG_TYPE_MODE_I2C)) {
-		dal_gpio_destroy_ddc(&ddc);
+		dal_ddc_close(ddc);
 
 		return present;
 	}
@@ -809,8 +809,8 @@
 		}
 
 		case SIGNAL_TYPE_EDP: {
-			read_edp_current_link_settings_on_detect(link);
 			detect_edp_sink_caps(link);
+			read_edp_current_link_settings_on_detect(link);
 			sink_caps.transaction_type =
 				DDC_TRANSACTION_TYPE_I2C_OVER_AUX;
 			sink_caps.signal = SIGNAL_TYPE_EDP;
@@ -948,8 +948,7 @@
 			same_edid = is_same_edid(&prev_sink->dc_edid, &sink->dc_edid);
 
 		if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
-			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX &&
-			reason != DETECT_REASON_HPDRX) {
+			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX) {
 			/*
 			 * TODO debug why Dell 2413 doesn't like
 			 *  two link trainings
@@ -1304,6 +1303,11 @@
 		goto ddc_create_fail;
 	}
 
+	if (!link->ddc->ddc_pin) {
+		DC_ERROR("Failed to get I2C info for connector!\n");
+		goto ddc_create_fail;
+	}
+
 	link->ddc_hw_inst =
 		dal_ddc_get_line(
 			dal_ddc_service_get_ddc_pin(link->ddc));
@@ -1734,8 +1738,7 @@
 				slave_address, buffer[0], buffer[1], i2c_success?1:0);
 
 			if (!i2c_success)
-				/* Write failure */
-				ASSERT(i2c_success);
+				goto i2c_write_fail;
 
 			/* Based on DP159 specs, APPLY_RX_TX_CHANGE bit in 0x0A
 			 * needs to be set to 1 on every 0xA-0xC write.
@@ -1753,8 +1756,7 @@
 						pipe_ctx->stream->link->ddc,
 						slave_address, &offset, 1, &value, 1);
 					if (!i2c_success)
-						/* Write failure */
-						ASSERT(i2c_success);
+						goto i2c_write_fail;
 				}
 
 				buffer[0] = offset;
@@ -1766,8 +1768,7 @@
 					offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 					slave_address, buffer[0], buffer[1], i2c_success?1:0);
 				if (!i2c_success)
-					/* Write failure */
-					ASSERT(i2c_success);
+					goto i2c_write_fail;
 			}
 		}
 	}
@@ -1787,8 +1788,7 @@
 					slave_address, buffer[0], buffer[1], i2c_success?1:0);
 
 				if (!i2c_success)
-					/* Write failure */
-					ASSERT(i2c_success);
+					goto i2c_write_fail;
 
 				/* Based on DP159 specs, APPLY_RX_TX_CHANGE bit in 0x0A
 				 * needs to be set to 1 on every 0xA-0xC write.
@@ -1806,8 +1806,7 @@
 								pipe_ctx->stream->link->ddc,
 								slave_address, &offset, 1, &value, 1);
 						if (!i2c_success)
-							/* Write failure */
-							ASSERT(i2c_success);
+							goto i2c_write_fail;
 					}
 
 					buffer[0] = offset;
@@ -1819,8 +1818,7 @@
 						offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 						slave_address, buffer[0], buffer[1], i2c_success?1:0);
 					if (!i2c_success)
-						/* Write failure */
-						ASSERT(i2c_success);
+						goto i2c_write_fail;
 				}
 			}
 		}
@@ -1838,8 +1836,7 @@
 				offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 				slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0x00 to 0x23 */
 		buffer[0] = 0x00;
@@ -1850,8 +1847,7 @@
 			offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0xff to 0x00 */
 		buffer[0] = 0xff;
@@ -1862,10 +1858,14 @@
 			offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 	}
+
+	return;
+
+i2c_write_fail:
+	DC_LOG_DEBUG("Set retimer failed");
 }
 
 static void write_i2c_default_retimer_setting(
@@ -1890,8 +1890,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0A to 0x17 */
 	buffer[0] = 0x0A;
@@ -1902,8 +1901,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0B to 0xDA or 0xD8 */
 	buffer[0] = 0x0B;
@@ -1914,8 +1912,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0A to 0x17 */
 	buffer[0] = 0x0A;
@@ -1926,8 +1923,7 @@
 		offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0C to 0x1D or 0x91 */
 	buffer[0] = 0x0C;
@@ -1938,8 +1934,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0A to 0x17 */
 	buffer[0] = 0x0A;
@@ -1950,8 +1945,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 
 	if (is_vga_mode) {
@@ -1966,8 +1960,7 @@
 			offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0x00 to 0x23 */
 		buffer[0] = 0x00;
@@ -1978,8 +1971,7 @@
 			offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0xff to 0x00 */
 		buffer[0] = 0xff;
@@ -1990,9 +1982,13 @@
 			offset = 0x%x, reg_val= 0x%x, i2c_success = %d end here\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 	}
+
+	return;
+
+i2c_write_fail:
+	DC_LOG_DEBUG("Set default retimer failed");
 }
 
 static void write_i2c_redriver_setting(
@@ -2021,8 +2017,7 @@
 		slave_address, buffer[3], buffer[4], buffer[5], buffer[6], i2c_success?1:0);
 
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		DC_LOG_DEBUG("Set redriver failed");
 }
 
 static void enable_link_hdmi(struct pipe_ctx *pipe_ctx)
@@ -2169,8 +2164,10 @@
 			dp_set_fec_ready(link, false);
 		}
 #endif
-	} else
-		link->link_enc->funcs->disable_output(link->link_enc, signal);
+	} else {
+		if (signal != SIGNAL_TYPE_VIRTUAL)
+			link->link_enc->funcs->disable_output(link->link_enc, signal);
+	}
 
 	if (signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
 		/* MST disable link only when no stream use the link */
@@ -2217,7 +2214,7 @@
 		break;
 	}
 
-	if (dongle_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER ||
+	if (dpcd_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER ||
 		dongle_caps->extendedCapValid == false)
 		return true;
 
@@ -2276,7 +2273,7 @@
 	/* A hack to avoid failing any modes for EDID override feature on
 	 * topology change such as lower quality cable for DP or different dongle
 	 */
-	if (link->remote_sinks[0])
+	if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL)
 		return DC_OK;
 
 	/* Passive Dongle */
@@ -2917,8 +2914,12 @@
 
 #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
 	if (timing->flags.DSC) {
-		kbps = (timing->pix_clk_100hz * timing->dsc_cfg.bits_per_pixel);
-		kbps = kbps / 160 + ((kbps % 160) ? 1 : 0);
+		struct fixed31_32 link_bw_kbps;
+
+		link_bw_kbps = dc_fixpt_from_int(timing->pix_clk_100hz);
+		link_bw_kbps = dc_fixpt_div_int(link_bw_kbps, 160);
+		link_bw_kbps = dc_fixpt_mul_int(link_bw_kbps, timing->dsc_cfg.bits_per_pixel);
+		kbps = dc_fixpt_ceil(link_bw_kbps);
 		return kbps;
 	}
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
@@ -126,22 +126,16 @@
 	struct vector payloads;
 };
 
-static struct i2c_payloads *dal_ddc_i2c_payloads_create(struct dc_context *ctx, uint32_t count)
+static bool dal_ddc_i2c_payloads_create(
+		struct dc_context *ctx,
+		struct i2c_payloads *payloads,
+		uint32_t count)
 {
-	struct i2c_payloads *payloads;
-
-	payloads = kzalloc(sizeof(struct i2c_payloads), GFP_KERNEL);
-
-	if (!payloads)
-		return NULL;
-
 	if (dal_vector_construct(
 		&payloads->payloads, ctx, count, sizeof(struct i2c_payload)))
-		return payloads;
-
-	kfree(payloads);
-	return NULL;
+		return true;
 
+	return false;
 }
 
 static struct i2c_payload *dal_ddc_i2c_payloads_get(struct i2c_payloads *p)
@@ -154,14 +148,12 @@
 	return p->payloads.count;
 }
 
-static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads **p)
+static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads *p)
 {
-	if (!p || !*p)
+	if (!p)
 		return;
-	dal_vector_destruct(&(*p)->payloads);
-	kfree(*p);
-	*p = NULL;
 
+	dal_vector_destruct(&p->payloads);
 }
 
 #define DDC_MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -521,9 +513,13 @@
 
 	uint32_t payloads_num = write_payloads + read_payloads;
 
+
 	if (write_size > EDID_SEGMENT_SIZE || read_size > EDID_SEGMENT_SIZE)
 		return false;
 
+	if (!payloads_num)
+		return false;
+
 	/*TODO: len of payload data for i2c and aux is uint8!!!!,
 	 *  but we want to read 256 over i2c!!!!*/
 	if (dal_ddc_service_is_in_aux_transaction_mode(ddc)) {
@@ -556,23 +552,25 @@
 
 		ret = dc_link_aux_transfer_with_retries(ddc, &read_payload);
 	} else {
-		struct i2c_payloads *payloads =
-			dal_ddc_i2c_payloads_create(ddc->ctx, payloads_num);
+		struct i2c_command command = {0};
+		struct i2c_payloads payloads;
+
+		if (!dal_ddc_i2c_payloads_create(ddc->ctx, &payloads, payloads_num))
+			return false;
 
-		struct i2c_command command = {
-			.payloads = dal_ddc_i2c_payloads_get(payloads),
-			.number_of_payloads = 0,
-			.engine = DDC_I2C_COMMAND_ENGINE,
-			.speed = ddc->ctx->dc->caps.i2c_speed_in_khz };
+		command.payloads = dal_ddc_i2c_payloads_get(&payloads);
+		command.number_of_payloads = 0;
+		command.engine = DDC_I2C_COMMAND_ENGINE;
+		command.speed = ddc->ctx->dc->caps.i2c_speed_in_khz;
 
 		dal_ddc_i2c_payloads_add(
-			payloads, address, write_size, write_buf, true);
+			&payloads, address, write_size, write_buf, true);
 
 		dal_ddc_i2c_payloads_add(
-			payloads, address, read_size, read_buf, false);
+			&payloads, address, read_size, read_buf, false);
 
 		command.number_of_payloads =
-			dal_ddc_i2c_payloads_get_count(payloads);
+			dal_ddc_i2c_payloads_get_count(&payloads);
 
 		ret = dm_helpers_submit_i2c(
 				ddc->ctx,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -1914,6 +1914,9 @@
 			initial_link_setting;
 	uint32_t link_bw;
 
+	if (req_bw > dc_link_bandwidth_kbps(link, &link->verified_link_cap))
+		return false;
+
 	/* search for the minimum link setting that:
 	 * 1. is supported according to the link training result
 	 * 2. could support the b/w requested by the timing
@@ -2545,6 +2548,7 @@
 	uint8_t data, struct dc_link *link)
 {
 	union dp_downstream_port_present ds_port = { .byte = data };
+	memset(&link->dpcd_caps.dongle_caps, 0, sizeof(link->dpcd_caps.dongle_caps));
 
 	/* decode converter info*/
 	if (!ds_port.fields.PORT_PRESENT) {
@@ -2691,6 +2695,7 @@
 		 * keep receiver powered all the time.*/
 		case DP_BRANCH_DEVICE_ID_0010FA:
 		case DP_BRANCH_DEVICE_ID_0080E1:
+		case DP_BRANCH_DEVICE_ID_00E04C:
 			link->wa_flags.dp_keep_receiver_powered = true;
 			break;
 
@@ -2877,6 +2882,17 @@
 		sink_id.ieee_device_id,
 		sizeof(sink_id.ieee_device_id));
 
+	/* Quirk Apple MBP 2017 15" Retina panel: Wrong DP_MAX_LINK_RATE */
+	{
+		uint8_t str_mbp_2017[] = { 101, 68, 21, 101, 98, 97 };
+
+		if ((link->dpcd_caps.sink_dev_id == 0x0010fa) &&
+		    !memcmp(link->dpcd_caps.sink_dev_id_str, str_mbp_2017,
+			    sizeof(str_mbp_2017))) {
+			link->reported_link_cap.link_rate = 0x0c;
+		}
+	}
+
 	core_link_read_dpcd(
 		link,
 		DP_SINK_HW_REVISION_START,
@@ -3365,7 +3381,7 @@
 
 		if (edp_config_set.bits.PANEL_MODE_EDP
 			!= panel_mode_edp) {
-			enum ddc_result result = DDC_RESULT_UNKNOWN;
+			enum dc_status result = DC_ERROR_UNEXPECTED;
 
 			edp_config_set.bits.PANEL_MODE_EDP =
 			panel_mode_edp;
@@ -3375,7 +3391,7 @@
 				&edp_config_set.raw,
 				sizeof(edp_config_set.raw));
 
-			ASSERT(result == DDC_RESULT_SUCESSFULL);
+			ASSERT(result == DC_OK);
 		}
 	}
 	DC_LOG_DETECTION_DP_CAPS("Link: %d eDP panel mode supported: %d "
@@ -3490,7 +3506,14 @@
 	if (link_enc->funcs->fec_set_enable &&
 			link->dpcd_caps.fec_cap.bits.FEC_CAPABLE) {
 		if (link->fec_state == dc_link_fec_ready && enable) {
-			msleep(1);
+			/* Accord to DP spec, FEC enable sequence can first
+			 * be transmitted anytime after 1000 LL codes have
+			 * been transmitted on the link after link training
+			 * completion. Using 1 lane RBR should have the maximum
+			 * time for transmitting 1000 LL codes which is 6.173 us.
+			 * So use 7 microseconds delay instead.
+			 */
+			udelay(7);
 			link_enc->funcs->fec_set_enable(link_enc, true);
 			link->fec_state = dc_link_fec_enabled;
 		} else if (link->fec_state == dc_link_fec_enabled && !enable) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c
@@ -277,7 +277,8 @@
 		if (pipes[i].stream != NULL &&
 			!pipes[i].top_pipe && !pipes[i].prev_odm_pipe &&
 			pipes[i].stream->link != NULL &&
-			pipes[i].stream_res.stream_enc != NULL) {
+			pipes[i].stream_res.stream_enc != NULL &&
+			pipes[i].stream->link == link) {
 			udelay(100);
 
 			pipes[i].stream_res.stream_enc->funcs->dp_blank(
@@ -399,6 +400,7 @@
 		dsc_cfg.pic_height = stream->timing.v_addressable + stream->timing.v_border_top + stream->timing.v_border_bottom;
 		dsc_cfg.pixel_encoding = stream->timing.pixel_encoding;
 		dsc_cfg.color_depth = stream->timing.display_color_depth;
+		dsc_cfg.is_odm = pipe_ctx->next_odm_pipe ? true : false;
 		dsc_cfg.dc_dsc_cfg = stream->timing.dsc_cfg;
 		ASSERT(dsc_cfg.dc_dsc_cfg.num_slices_h % opp_cnt == 0);
 		dsc_cfg.dc_dsc_cfg.num_slices_h /= opp_cnt;
@@ -495,11 +497,15 @@
 		struct dsc_config dsc_cfg;
 		uint8_t dsc_packed_pps[128];
 
+		memset(&dsc_cfg, 0, sizeof(dsc_cfg));
+		memset(dsc_packed_pps, 0, 128);
+
 		/* Enable DSC hw block */
 		dsc_cfg.pic_width = stream->timing.h_addressable + stream->timing.h_border_left + stream->timing.h_border_right;
 		dsc_cfg.pic_height = stream->timing.v_addressable + stream->timing.v_border_top + stream->timing.v_border_bottom;
 		dsc_cfg.pixel_encoding = stream->timing.pixel_encoding;
 		dsc_cfg.color_depth = stream->timing.display_color_depth;
+		dsc_cfg.is_odm = pipe_ctx->next_odm_pipe ? true : false;
 		dsc_cfg.dc_dsc_cfg = stream->timing.dsc_cfg;
 
 		DC_LOG_DSC(" ");
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -423,10 +423,10 @@
 
 		if (dwb->funcs->is_enabled(dwb)) {
 			/* writeback pipe already enabled, only need to update */
-			dc->hwss.update_writeback(dc, stream_status, wb_info);
+			dc->hwss.update_writeback(dc, stream_status, wb_info, dc->current_state);
 		} else {
 			/* Enable writeback pipe from scratch*/
-			dc->hwss.enable_writeback(dc, stream_status, wb_info);
+			dc->hwss.enable_writeback(dc, stream_status, wb_info, dc->current_state);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
@@ -77,6 +77,9 @@
 	/* notifyDMCUMsg */
 	REG_UPDATE(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 1);
 
+	REG_WAIT(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 0,
+			1, 80000);
+
 	return true;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
@@ -386,7 +386,7 @@
 {
 	enum gpio_result result;
 
-	if (!is_engine_available(engine))
+	if ((engine == NULL) || !is_engine_available(engine))
 		return false;
 
 	result = dal_ddc_open(ddc, GPIO_MODE_HARDWARE,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
@@ -871,6 +871,20 @@
 	bp_pc_params.flags.SET_EXTERNAL_REF_DIV_SRC =
 					pll_settings->use_external_clk;
 
+	switch (pix_clk_params->color_depth) {
+	case COLOR_DEPTH_101010:
+		bp_pc_params.color_depth = TRANSMITTER_COLOR_DEPTH_30;
+		break;
+	case COLOR_DEPTH_121212:
+		bp_pc_params.color_depth = TRANSMITTER_COLOR_DEPTH_36;
+		break;
+	case COLOR_DEPTH_161616:
+		bp_pc_params.color_depth = TRANSMITTER_COLOR_DEPTH_48;
+		break;
+	default:
+		break;
+	}
+
 	if (clk_src->bios->funcs->set_pixel_clock(
 			clk_src->bios, &bp_pc_params) != BP_RESULT_OK)
 		return false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
@@ -563,6 +563,7 @@
 	cntl.enable_dp_audio = enable_audio;
 	cntl.pixel_clock = actual_pix_clk_khz;
 	cntl.lanes_number = LANE_COUNT_FOUR;
+	cntl.color_depth = crtc_timing->display_color_depth;
 
 	if (enc110->base.bp->funcs->encoder_control(
 			enc110->base.bp, &cntl) != BP_RESULT_OK)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_transform.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_transform.c
@@ -429,12 +429,12 @@
 		clamp_max = 0x3FC0;
 		break;
 	case COLOR_DEPTH_101010:
-		/* 10bit MSB aligned on 14 bit bus '11 1111 1111 1100' */
-		clamp_max = 0x3FFC;
+		/* 10bit MSB aligned on 14 bit bus '11 1111 1111 0000' */
+		clamp_max = 0x3FF0;
 		break;
 	case COLOR_DEPTH_121212:
-		/* 12bit MSB aligned on 14 bit bus '11 1111 1111 1111' */
-		clamp_max = 0x3FFF;
+		/* 12bit MSB aligned on 14 bit bus '11 1111 1111 1100' */
+		clamp_max = 0x3FFC;
 		break;
 	default:
 		clamp_max = 0x3FC0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c
@@ -840,8 +840,8 @@
 
 	hubbub1_get_blk256_size(&blk256_width, &blk256_height, bpe);
 
-	swath_bytes_horz_wc = height * blk256_height * bpe;
-	swath_bytes_vert_wc = width * blk256_width * bpe;
+	swath_bytes_horz_wc = width * blk256_height * bpe;
+	swath_bytes_vert_wc = height * blk256_width * bpe;
 
 	*req128_horz_wc = (2 * swath_bytes_horz_wc <= detile_buf_size) ?
 			false : /* full 256B request */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
@@ -1151,6 +1151,7 @@
 	bool video_large = false;
 	bool desktop_large = false;
 	bool dcc_disabled = false;
+	bool mpo_enabled = false;
 
 	for (i = 0; i < context->stream_count; i++) {
 		if (context->stream_status[i].plane_count == 0)
@@ -1159,6 +1160,9 @@
 		if (context->stream_status[i].plane_count > 2)
 			return DC_FAIL_UNSUPPORTED_1;
 
+		if (context->stream_status[i].plane_count > 1)
+			mpo_enabled = true;
+
 		for (j = 0; j < context->stream_status[i].plane_count; j++) {
 			struct dc_plane_state *plane =
 				context->stream_status[i].plane_states[j];
@@ -1182,6 +1186,10 @@
 		}
 	}
 
+	/* Disable MPO in multi-display configurations. */
+	if (context->stream_count > 1 && mpo_enabled)
+		return DC_FAIL_UNSUPPORTED_1;
+
 	/*
 	 * Workaround: On DCN10 there is UMC issue that causes underflow when
 	 * playing 4k video on 4k desktop with video downscaled and single channel
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c
@@ -121,35 +121,35 @@
 	switch (packet_index) {
 	case 0:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC0_FRAME_UPDATE, 1);
+				AFMT_GENERIC0_IMMEDIATE_UPDATE, 1);
 		break;
 	case 1:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC1_FRAME_UPDATE, 1);
+				AFMT_GENERIC1_IMMEDIATE_UPDATE, 1);
 		break;
 	case 2:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC2_FRAME_UPDATE, 1);
+				AFMT_GENERIC2_IMMEDIATE_UPDATE, 1);
 		break;
 	case 3:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC3_FRAME_UPDATE, 1);
+				AFMT_GENERIC3_IMMEDIATE_UPDATE, 1);
 		break;
 	case 4:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC4_FRAME_UPDATE, 1);
+				AFMT_GENERIC4_IMMEDIATE_UPDATE, 1);
 		break;
 	case 5:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC5_FRAME_UPDATE, 1);
+				AFMT_GENERIC5_IMMEDIATE_UPDATE, 1);
 		break;
 	case 6:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC6_FRAME_UPDATE, 1);
+				AFMT_GENERIC6_IMMEDIATE_UPDATE, 1);
 		break;
 	case 7:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC7_FRAME_UPDATE, 1);
+				AFMT_GENERIC7_IMMEDIATE_UPDATE, 1);
 		break;
 	default:
 		break;
@@ -898,10 +898,10 @@
 	 */
 	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_DIS_DEFER, 2);
 	/* Larger delay to wait until VBLANK - use max retry of
-	 * 10us*5000=50ms. This covers 41.7ms of minimum 24 Hz mode +
+	 * 10us*10200=102ms. This covers 100.0ms of minimum 10 Hz mode +
 	 * a little more because we may not trust delay accuracy.
 	 */
-	max_retries = DP_BLANK_MAX_RETRY * 250;
+	max_retries = DP_BLANK_MAX_RETRY * 501;
 
 	/* disable DP stream */
 	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h
@@ -275,7 +275,14 @@
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_IMMEDIATE_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_IMMEDIATE_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE, mask_sh),\
@@ -339,7 +346,14 @@
 	type AFMT_GENERIC2_FRAME_UPDATE;\
 	type AFMT_GENERIC3_FRAME_UPDATE;\
 	type AFMT_GENERIC4_FRAME_UPDATE;\
+	type AFMT_GENERIC0_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC1_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC2_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC3_IMMEDIATE_UPDATE;\
 	type AFMT_GENERIC4_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC5_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC6_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC7_IMMEDIATE_UPDATE;\
 	type AFMT_GENERIC5_FRAME_UPDATE;\
 	type AFMT_GENERIC6_FRAME_UPDATE;\
 	type AFMT_GENERIC7_FRAME_UPDATE;\
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c
@@ -119,32 +119,6 @@
 
 void dccg2_init(struct dccg *dccg)
 {
-	struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg);
-
-	// Fallthrough intentional to program all available dpp_dto's
-	switch (dccg_dcn->base.ctx->dc->res_pool->pipe_count) {
-	case 6:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[5], 1);
-		/* Fall through */
-	case 5:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[4], 1);
-		/* Fall through */
-	case 4:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[3], 1);
-		/* Fall through */
-	case 3:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[2], 1);
-		/* Fall through */
-	case 2:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[1], 1);
-		/* Fall through */
-	case 1:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[0], 1);
-		break;
-	default:
-		ASSERT(false);
-		break;
-	}
 }
 
 static const struct dccg_funcs dccg2_funcs = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c
@@ -207,6 +207,9 @@
 	struct dsc_reg_values dsc_reg_vals;
 	struct dsc_optc_config dsc_optc_cfg;
 
+	memset(&dsc_reg_vals, 0, sizeof(dsc_reg_vals));
+	memset(&dsc_optc_cfg, 0, sizeof(dsc_optc_cfg));
+
 	DC_LOG_DSC("Getting packed DSC PPS for DSC Config:");
 	dsc_config_log(dsc, dsc_cfg);
 	DC_LOG_DSC("DSC Picture Parameter Set (PPS):");
@@ -348,6 +351,7 @@
 	dsc_reg_vals->pps.block_pred_enable = dsc_cfg->dc_dsc_cfg.block_pred_enable;
 	dsc_reg_vals->pps.line_buf_depth = dsc_cfg->dc_dsc_cfg.linebuf_depth;
 	dsc_reg_vals->alternate_ich_encoding_en = dsc_reg_vals->pps.dsc_version_minor == 1 ? 0 : 1;
+	dsc_reg_vals->ich_reset_at_eol = (dsc_cfg->is_odm || dsc_reg_vals->num_slices_h > 1) ? 0xF : 0;
 
 	// TODO: in addition to validating slice height (pic height must be divisible by slice height),
 	// see what happens when the same condition doesn't apply for slice_width/pic_width.
@@ -510,7 +514,6 @@
 		reg_vals->pps.rc_buf_thresh[i] = reg_vals->pps.rc_buf_thresh[i] >> 6;
 
 	reg_vals->rc_buffer_model_size = dsc_params->rc_buffer_model_size;
-	reg_vals->ich_reset_at_eol = reg_vals->num_slices_h == 1 ? 0 : 0xf;
 }
 
 static void dsc_write_to_registers(struct display_stream_compressor *dsc, const struct dsc_reg_values *reg_vals)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
@@ -493,7 +493,6 @@
 	dpp->funcs->dpp_dppclk_control(dpp, false, false);
 
 	hubp->power_gated = true;
-	dc->optimized_required = false; /* We're powering off, no need to optimize */
 
 	dc->hwss.plane_atomic_power_down(dc,
 			pipe_ctx->plane_res.dpp,
@@ -1103,6 +1102,25 @@
 	if (pipe->plane_state != NULL)
 		flip_immediate = pipe->plane_state->flip_immediate;
 
+	if (flip_immediate && lock) {
+		const int TIMEOUT_FOR_FLIP_PENDING = 100000;
+		int i;
+
+		for (i = 0; i < TIMEOUT_FOR_FLIP_PENDING; ++i) {
+			if (!pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->plane_res.hubp))
+				break;
+			udelay(1);
+		}
+
+		if (pipe->bottom_pipe != NULL) {
+			for (i = 0; i < TIMEOUT_FOR_FLIP_PENDING; ++i) {
+				if (!pipe->bottom_pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->bottom_pipe->plane_res.hubp))
+					break;
+				udelay(1);
+			}
+		}
+	}
+
 	/* In flip immediate and pipe splitting case, we need to use GSL
 	 * for synchronization. Only do setup on locking and on flip type change.
 	 */
@@ -1337,7 +1355,8 @@
 static void dcn20_enable_writeback(
 		struct dc *dc,
 		const struct dc_stream_status *stream_status,
-		struct dc_writeback_info *wb_info)
+		struct dc_writeback_info *wb_info,
+		struct dc_state *context)
 {
 	struct dwbc *dwb;
 	struct mcif_wb *mcif_wb;
@@ -1354,7 +1373,7 @@
 	optc->funcs->set_dwb_source(optc, wb_info->dwb_pipe_inst);
 	/* set MCIF_WB buffer and arbitration configuration */
 	mcif_wb->funcs->config_mcif_buf(mcif_wb, &wb_info->mcif_buf_params, wb_info->dwb_params.dest_height);
-	mcif_wb->funcs->config_mcif_arb(mcif_wb, &dc->current_state->bw_ctx.bw.dcn.bw_writeback.mcif_wb_arb[wb_info->dwb_pipe_inst]);
+	mcif_wb->funcs->config_mcif_arb(mcif_wb, &context->bw_ctx.bw.dcn.bw_writeback.mcif_wb_arb[wb_info->dwb_pipe_inst]);
 	/* Enable MCIF_WB */
 	mcif_wb->funcs->enable_mcif(mcif_wb);
 	/* Enable DWB */
@@ -1996,7 +2015,8 @@
 
 	REG_UPDATE(DCHUBBUB_GLOBAL_TIMER_CNTL, DCHUBBUB_GLOBAL_TIMER_REFDIV, 2);
 	REG_UPDATE(DCHUBBUB_GLOBAL_TIMER_CNTL, DCHUBBUB_GLOBAL_TIMER_ENABLE, 1);
-	REG_WRITE(REFCLK_CNTL, 0);
+	if (REG(REFCLK_CNTL))
+		REG_WRITE(REFCLK_CNTL, 0);
 	//
 
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c
@@ -233,12 +233,13 @@
 		struct dc_crtc_timing *timing)
 {
 	struct optc *optc1 = DCN10TG_FROM_TG(optc);
-	/* 2 pieces of memory required for up to 5120 displays, 4 for up to 8192 */
 	int mpcc_hactive = (timing->h_addressable + timing->h_border_left + timing->h_border_right)
 			/ opp_cnt;
-	int memory_mask = mpcc_hactive <= 2560 ? 0x3 : 0xf;
+	uint32_t memory_mask;
 	uint32_t data_fmt = 0;
 
+	ASSERT(opp_cnt == 2);
+
 	/* TODO: In pseudocode but does not affect maximus, delete comment if we dont need on asic
 	 * REG_SET(OTG_GLOBAL_CONTROL2, 0, GLOBAL_UPDATE_LOCK_EN, 1);
 	 * Program OTG register MASTER_UPDATE_LOCK_DB_X/Y to the position before DP frame start
@@ -246,9 +247,17 @@
 	 *		MASTER_UPDATE_LOCK_DB_X, 160,
 	 *		MASTER_UPDATE_LOCK_DB_Y, 240);
 	 */
+
+	/* 2 pieces of memory required for up to 5120 displays, 4 for up to 8192,
+	 * however, for ODM combine we can simplify by always using 4.
+	 * To make sure there's no overlap, each instance "reserves" 2 memories and
+	 * they are uniquely combined here.
+	 */
+	memory_mask = 0x3 << (opp_id[0] * 2) | 0x3 << (opp_id[1] * 2);
+
 	if (REG(OPTC_MEMORY_CONFIG))
 		REG_SET(OPTC_MEMORY_CONFIG, 0,
-			OPTC_MEM_SEL, memory_mask << (optc->inst * 4));
+			OPTC_MEM_SEL, memory_mask);
 
 	if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422)
 		data_fmt = 1;
@@ -257,7 +266,6 @@
 
 	REG_UPDATE(OPTC_DATA_FORMAT_CONTROL, OPTC_DATA_FORMAT, data_fmt);
 
-	ASSERT(opp_cnt == 2);
 	REG_SET_3(OPTC_DATA_SOURCE_SELECT, 0,
 			OPTC_NUM_OF_INPUT_SEGMENT, 1,
 			OPTC_SEG0_SRC_SEL, opp_id[0],
@@ -287,6 +295,10 @@
 		*num_of_src_opp = 2;
 	else
 		*num_of_src_opp = 1;
+
+	/* Work around VBIOS not updating OPTC_NUM_OF_INPUT_SEGMENT */
+	if (*src_opp_id_1 == 0xf)
+		*num_of_src_opp = 1;
 }
 
 void optc2_set_dwb_source(struct timing_generator *optc,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
@@ -269,6 +269,117 @@
 	.use_urgent_burst_bw = 0
 };
 
+struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv14_soc = {
+	.clock_limits = {
+			{
+				.state = 0,
+				.dcfclk_mhz = 560.0,
+				.fabricclk_mhz = 560.0,
+				.dispclk_mhz = 513.0,
+				.dppclk_mhz = 513.0,
+				.phyclk_mhz = 540.0,
+				.socclk_mhz = 560.0,
+				.dscclk_mhz = 171.0,
+				.dram_speed_mts = 8960.0,
+			},
+			{
+				.state = 1,
+				.dcfclk_mhz = 694.0,
+				.fabricclk_mhz = 694.0,
+				.dispclk_mhz = 642.0,
+				.dppclk_mhz = 642.0,
+				.phyclk_mhz = 600.0,
+				.socclk_mhz = 694.0,
+				.dscclk_mhz = 214.0,
+				.dram_speed_mts = 11104.0,
+			},
+			{
+				.state = 2,
+				.dcfclk_mhz = 875.0,
+				.fabricclk_mhz = 875.0,
+				.dispclk_mhz = 734.0,
+				.dppclk_mhz = 734.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 875.0,
+				.dscclk_mhz = 245.0,
+				.dram_speed_mts = 14000.0,
+			},
+			{
+				.state = 3,
+				.dcfclk_mhz = 1000.0,
+				.fabricclk_mhz = 1000.0,
+				.dispclk_mhz = 1100.0,
+				.dppclk_mhz = 1100.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 1000.0,
+				.dscclk_mhz = 367.0,
+				.dram_speed_mts = 16000.0,
+			},
+			{
+				.state = 4,
+				.dcfclk_mhz = 1200.0,
+				.fabricclk_mhz = 1200.0,
+				.dispclk_mhz = 1284.0,
+				.dppclk_mhz = 1284.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 1200.0,
+				.dscclk_mhz = 428.0,
+				.dram_speed_mts = 16000.0,
+			},
+			/*Extra state, no dispclk ramping*/
+			{
+				.state = 5,
+				.dcfclk_mhz = 1200.0,
+				.fabricclk_mhz = 1200.0,
+				.dispclk_mhz = 1284.0,
+				.dppclk_mhz = 1284.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 1200.0,
+				.dscclk_mhz = 428.0,
+				.dram_speed_mts = 16000.0,
+			},
+		},
+	.num_states = 5,
+	.sr_exit_time_us = 11.6,
+	.sr_enter_plus_exit_time_us = 13.9,
+	.urgent_latency_us = 4.0,
+	.urgent_latency_pixel_data_only_us = 4.0,
+	.urgent_latency_pixel_mixed_with_vm_data_us = 4.0,
+	.urgent_latency_vm_data_only_us = 4.0,
+	.urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096,
+	.urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096,
+	.urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
+	.pct_ideal_dram_sdp_bw_after_urgent_pixel_only = 40.0,
+	.pct_ideal_dram_sdp_bw_after_urgent_pixel_and_vm = 40.0,
+	.pct_ideal_dram_sdp_bw_after_urgent_vm_only = 40.0,
+	.max_avg_sdp_bw_use_normal_percent = 40.0,
+	.max_avg_dram_bw_use_normal_percent = 40.0,
+	.writeback_latency_us = 12.0,
+	.ideal_dram_bw_after_urgent_percent = 40.0,
+	.max_request_size_bytes = 256,
+	.dram_channel_width_bytes = 2,
+	.fabric_datapath_to_dcn_data_return_bytes = 64,
+	.dcn_downspread_percent = 0.5,
+	.downspread_percent = 0.38,
+	.dram_page_open_time_ns = 50.0,
+	.dram_rw_turnaround_time_ns = 17.5,
+	.dram_return_buffer_per_channel_bytes = 8192,
+	.round_trip_ping_latency_dcfclk_cycles = 131,
+	.urgent_out_of_order_return_per_channel_bytes = 256,
+	.channel_interleave_bytes = 256,
+	.num_banks = 8,
+	.num_chans = 8,
+	.vmm_page_size_bytes = 4096,
+	.dram_clock_change_latency_us = 404.0,
+	.dummy_pstate_latency_us = 5.0,
+	.writeback_dram_clock_change_latency_us = 23.0,
+	.return_bus_width_bytes = 64,
+	.dispclk_dppclk_vco_speed_mhz = 3850,
+	.xfc_bus_transport_time_us = 20,
+	.xfc_xbuf_latency_tolerance_us = 4,
+	.use_urgent_burst_bw = 0
+};
+
 struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv12_soc = { 0 };
 
 #ifndef mmDP0_DP_DPHY_INTERNAL_CTRL
@@ -1419,13 +1530,20 @@
 
 static void acquire_dsc(struct resource_context *res_ctx,
 			const struct resource_pool *pool,
-			struct display_stream_compressor **dsc)
+			struct display_stream_compressor **dsc,
+			int pipe_idx)
 {
 	int i;
 
 	ASSERT(*dsc == NULL);
 	*dsc = NULL;
 
+	if (pool->res_cap->num_dsc == pool->res_cap->num_opp) {
+		*dsc = pool->dscs[pipe_idx];
+		res_ctx->is_dsc_acquired[pipe_idx] = true;
+		return;
+	}
+
 	/* Find first free DSC */
 	for (i = 0; i < pool->res_cap->num_dsc; i++)
 		if (!res_ctx->is_dsc_acquired[i]) {
@@ -1468,7 +1586,7 @@
 		if (pipe_ctx->stream != dc_stream)
 			continue;
 
-		acquire_dsc(&dc_ctx->res_ctx, pool, &pipe_ctx->stream_res.dsc);
+		acquire_dsc(&dc_ctx->res_ctx, pool, &pipe_ctx->stream_res.dsc, i);
 
 		/* The number of DSCs can be less than the number of pipes */
 		if (!pipe_ctx->stream_res.dsc) {
@@ -1669,7 +1787,7 @@
 	next_odm_pipe->stream_res.opp = pool->opps[next_odm_pipe->pipe_idx];
 #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
 	if (next_odm_pipe->stream->timing.flags.DSC == 1) {
-		acquire_dsc(res_ctx, pool, &next_odm_pipe->stream_res.dsc);
+		acquire_dsc(res_ctx, pool, &next_odm_pipe->stream_res.dsc, next_odm_pipe->pipe_idx);
 		ASSERT(next_odm_pipe->stream_res.dsc);
 		if (next_odm_pipe->stream_res.dsc == NULL)
 			return false;
@@ -1765,7 +1883,7 @@
 			pipe_cnt = i;
 			continue;
 		}
-		if (!resource_are_streams_timing_synchronizable(
+		if (dc->debug.disable_timing_sync || !resource_are_streams_timing_synchronizable(
 				res_ctx->pipe_ctx[pipe_cnt].stream,
 				res_ctx->pipe_ctx[i].stream)) {
 			synchronized_vblank = false;
@@ -2157,6 +2275,7 @@
 				+ stream->timing.v_border_bottom;
 		dsc_cfg.pixel_encoding = stream->timing.pixel_encoding;
 		dsc_cfg.color_depth = stream->timing.display_color_depth;
+		dsc_cfg.is_odm = pipe_ctx->next_odm_pipe ? true : false;
 		dsc_cfg.dc_dsc_cfg = stream->timing.dsc_cfg;
 		dsc_cfg.dc_dsc_cfg.num_slices_h /= opp_cnt;
 
@@ -2474,6 +2593,7 @@
 							&context->res_ctx, dc->res_pool,
 							pipe, hsplit_pipe))
 						goto validate_fail;
+					dcn20_build_mapped_resource(dc, context, pipe->stream);
 				} else
 					dcn20_split_stream_for_mpc(
 						&context->res_ctx, dc->res_pool,
@@ -2726,7 +2846,7 @@
 	int vlevel = 0;
 	int pipe_split_from[MAX_PIPES];
 	int pipe_cnt = 0;
-	display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+	display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_ATOMIC);
 	DC_LOGGER_INIT(dc->ctx->logger);
 
 	BW_VAL_TRACE_COUNT();
@@ -3040,7 +3160,7 @@
 static void update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st *bb,
 		struct pp_smu_nv_clock_table *max_clocks, unsigned int *uclk_states, unsigned int num_states)
 {
-	struct _vcs_dpi_voltage_scaling_st calculated_states[MAX_CLOCK_LIMIT_STATES] = {0};
+	struct _vcs_dpi_voltage_scaling_st calculated_states[MAX_CLOCK_LIMIT_STATES];
 	int i;
 	int num_calculated_states = 0;
 	int min_dcfclk = 0;
@@ -3048,6 +3168,8 @@
 	if (num_states == 0)
 		return;
 
+	memset(calculated_states, 0, sizeof(calculated_states));
+
 	if (dc->bb_overrides.min_dcfclk_mhz > 0)
 		min_dcfclk = dc->bb_overrides.min_dcfclk_mhz;
 	else
@@ -3125,6 +3247,9 @@
 static struct _vcs_dpi_soc_bounding_box_st *get_asic_rev_soc_bb(
 	uint32_t hw_internal_rev)
 {
+	if (ASICREV_IS_NAVI14_M(hw_internal_rev))
+		return &dcn2_0_nv14_soc;
+
 	if (ASICREV_IS_NAVI12_P(hw_internal_rev))
 		return &dcn2_0_nv12_soc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_stream_encoder.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_stream_encoder.c
@@ -492,15 +492,23 @@
 				DP_VID_N_MUL, n_multiply);
 	}
 
-	/* set DIG_START to 0x1 to reset FIFO */
+	/* make sure stream is disabled before resetting steer fifo */
+	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, false);
+	REG_WAIT(DP_VID_STREAM_CNTL, DP_VID_STREAM_STATUS, 0, 10, 5000);
 
+	/* set DIG_START to 0x1 to reset FIFO */
 	REG_UPDATE(DIG_FE_CNTL, DIG_START, 1);
+	udelay(1);
 
 	/* write 0 to take the FIFO out of reset */
 
 	REG_UPDATE(DIG_FE_CNTL, DIG_START, 0);
 
-	/* switch DP encoder to CRTC data */
+	/* switch DP encoder to CRTC data, but reset it the fifo first. It may happen
+	 * that it overflows during mode transition, and sometimes doesn't recover.
+	 */
+	REG_UPDATE(DP_STEER_FIFO, DP_STEER_FIFO_RESET, 1);
+	udelay(10);
 
 	REG_UPDATE(DP_STEER_FIFO, DP_STEER_FIFO_RESET, 0);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c
@@ -22,6 +22,7 @@
  * Authors: AMD
  *
  */
+#include <linux/delay.h>
 #include "dm_services.h"
 #include "dcn20/dcn20_hubbub.h"
 #include "dcn21_hubbub.h"
@@ -71,30 +72,39 @@
 void dcn21_dchvm_init(struct hubbub *hubbub)
 {
 	struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub);
+	uint32_t riommu_active;
+	int i;
 
 	//Init DCHVM block
 	REG_UPDATE(DCHVM_CTRL0, HOSTVM_INIT_REQ, 1);
 
 	//Poll until RIOMMU_ACTIVE = 1
-	//TODO: Figure out interval us and retry count
-	REG_WAIT(DCHVM_RIOMMU_STAT0, RIOMMU_ACTIVE, 1, 5, 100);
+	for (i = 0; i < 100; i++) {
+		REG_GET(DCHVM_RIOMMU_STAT0, RIOMMU_ACTIVE, &riommu_active);
 
-	//Reflect the power status of DCHUBBUB
-	REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_POWERSTATUS, 1);
-
-	//Start rIOMMU prefetching
-	REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_PREFETCH_REQ, 1);
-
-	// Enable dynamic clock gating
-	REG_UPDATE_4(DCHVM_CLK_CTRL,
-					HVM_DISPCLK_R_GATE_DIS, 0,
-					HVM_DISPCLK_G_GATE_DIS, 0,
-					HVM_DCFCLK_R_GATE_DIS, 0,
-					HVM_DCFCLK_G_GATE_DIS, 0);
-
-	//Poll until HOSTVM_PREFETCH_DONE = 1
-	//TODO: Figure out interval us and retry count
-	REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100);
+		if (riommu_active)
+			break;
+		else
+			udelay(5);
+	}
+
+	if (riommu_active) {
+		//Reflect the power status of DCHUBBUB
+		REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_POWERSTATUS, 1);
+
+		//Start rIOMMU prefetching
+		REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_PREFETCH_REQ, 1);
+
+		// Enable dynamic clock gating
+		REG_UPDATE_4(DCHVM_CLK_CTRL,
+						HVM_DISPCLK_R_GATE_DIS, 0,
+						HVM_DISPCLK_G_GATE_DIS, 0,
+						HVM_DCFCLK_R_GATE_DIS, 0,
+						HVM_DCFCLK_G_GATE_DIS, 0);
+
+		//Poll until HOSTVM_PREFETCH_DONE = 1
+		REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100);
+	}
 }
 
 static int hubbub21_init_dchub(struct hubbub *hubbub,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
@@ -73,32 +73,47 @@
 		struct _vcs_dpi_display_dlg_regs_st *dlg_attr)
 {
 	struct dcn21_hubp *hubp21 = TO_DCN21_HUBP(hubp);
-	uint32_t cur_value;
+	uint32_t refcyc_per_vm_group_vblank;
+	uint32_t refcyc_per_vm_req_vblank;
+	uint32_t refcyc_per_vm_group_flip;
+	uint32_t refcyc_per_vm_req_flip;
+	const uint32_t uninitialized_hw_default = 0;
 
-	REG_GET(VBLANK_PARAMETERS_5, REFCYC_PER_VM_GROUP_VBLANK, &cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_group_vblank)
+	REG_GET(VBLANK_PARAMETERS_5,
+			REFCYC_PER_VM_GROUP_VBLANK, &refcyc_per_vm_group_vblank);
+
+	if (refcyc_per_vm_group_vblank == uninitialized_hw_default ||
+			refcyc_per_vm_group_vblank > dlg_attr->refcyc_per_vm_group_vblank)
 		REG_SET(VBLANK_PARAMETERS_5, 0,
 				REFCYC_PER_VM_GROUP_VBLANK, dlg_attr->refcyc_per_vm_group_vblank);
 
 	REG_GET(VBLANK_PARAMETERS_6,
-			REFCYC_PER_VM_REQ_VBLANK,
-			&cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_req_vblank)
+			REFCYC_PER_VM_REQ_VBLANK, &refcyc_per_vm_req_vblank);
+
+	if (refcyc_per_vm_req_vblank == uninitialized_hw_default ||
+			refcyc_per_vm_req_vblank > dlg_attr->refcyc_per_vm_req_vblank)
 		REG_SET(VBLANK_PARAMETERS_6, 0,
 				REFCYC_PER_VM_REQ_VBLANK, dlg_attr->refcyc_per_vm_req_vblank);
 
-	REG_GET(FLIP_PARAMETERS_3, REFCYC_PER_VM_GROUP_FLIP, &cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_group_flip)
+	REG_GET(FLIP_PARAMETERS_3,
+			REFCYC_PER_VM_GROUP_FLIP, &refcyc_per_vm_group_flip);
+
+	if (refcyc_per_vm_group_flip == uninitialized_hw_default ||
+			refcyc_per_vm_group_flip > dlg_attr->refcyc_per_vm_group_flip)
 		REG_SET(FLIP_PARAMETERS_3, 0,
 				REFCYC_PER_VM_GROUP_FLIP, dlg_attr->refcyc_per_vm_group_flip);
 
-	REG_GET(FLIP_PARAMETERS_4, REFCYC_PER_VM_REQ_FLIP, &cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_req_flip)
+	REG_GET(FLIP_PARAMETERS_4,
+			REFCYC_PER_VM_REQ_FLIP, &refcyc_per_vm_req_flip);
+
+	if (refcyc_per_vm_req_flip == uninitialized_hw_default ||
+			refcyc_per_vm_req_flip > dlg_attr->refcyc_per_vm_req_flip)
 		REG_SET(FLIP_PARAMETERS_4, 0,
 					REFCYC_PER_VM_REQ_FLIP, dlg_attr->refcyc_per_vm_req_flip);
 
 	REG_SET(FLIP_PARAMETERS_5, 0,
 			REFCYC_PER_PTE_GROUP_FLIP_C, dlg_attr->refcyc_per_pte_group_flip_c);
+
 	REG_SET(FLIP_PARAMETERS_6, 0,
 			REFCYC_PER_META_CHUNK_FLIP_C, dlg_attr->refcyc_per_meta_chunk_flip_c);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
@@ -57,6 +57,7 @@
 #include "dcn20/dcn20_dccg.h"
 #include "dcn21_hubbub.h"
 #include "dcn10/dcn10_resource.h"
+#include "dce110/dce110_resource.h"
 
 #include "dcn20/dcn20_dwb.h"
 #include "dcn20/dcn20_mmhubbub.h"
@@ -246,7 +247,7 @@
 	.dram_channel_width_bytes = 4,
 	.fabric_datapath_to_dcn_data_return_bytes = 32,
 	.dcn_downspread_percent = 0.5,
-	.downspread_percent = 0.5,
+	.downspread_percent = 0.38,
 	.dram_page_open_time_ns = 50.0,
 	.dram_rw_turnaround_time_ns = 17.5,
 	.dram_return_buffer_per_channel_bytes = 8192,
@@ -256,9 +257,9 @@
 	.num_banks = 8,
 	.num_chans = 4,
 	.vmm_page_size_bytes = 4096,
-	.dram_clock_change_latency_us = 23.84,
+	.dram_clock_change_latency_us = 11.72,
 	.return_bus_width_bytes = 64,
-	.dispclk_dppclk_vco_speed_mhz = 3550,
+	.dispclk_dppclk_vco_speed_mhz = 3600,
 	.xfc_bus_transport_time_us = 4,
 	.xfc_xbuf_latency_tolerance_us = 4,
 	.use_urgent_burst_bw = 1,
@@ -824,6 +825,9 @@
 enum dcn20_clk_src_array_id {
 	DCN20_CLK_SRC_PLL0,
 	DCN20_CLK_SRC_PLL1,
+	DCN20_CLK_SRC_PLL2,
+	DCN20_CLK_SRC_PLL3,
+	DCN20_CLK_SRC_PLL4,
 	DCN20_CLK_SRC_TOTAL_DCN21
 };
 
@@ -1492,6 +1496,18 @@
 			dcn21_clock_source_create(ctx, ctx->dc_bios,
 				CLOCK_SOURCE_COMBO_PHY_PLL1,
 				&clk_src_regs[1], false);
+	pool->base.clock_sources[DCN20_CLK_SRC_PLL2] =
+			dcn21_clock_source_create(ctx, ctx->dc_bios,
+				CLOCK_SOURCE_COMBO_PHY_PLL2,
+				&clk_src_regs[2], false);
+	pool->base.clock_sources[DCN20_CLK_SRC_PLL3] =
+			dcn21_clock_source_create(ctx, ctx->dc_bios,
+				CLOCK_SOURCE_COMBO_PHY_PLL3,
+				&clk_src_regs[3], false);
+	pool->base.clock_sources[DCN20_CLK_SRC_PLL4] =
+			dcn21_clock_source_create(ctx, ctx->dc_bios,
+				CLOCK_SOURCE_COMBO_PHY_PLL4,
+				&clk_src_regs[4], false);
 
 	pool->base.clk_src_count = DCN20_CLK_SRC_TOTAL_DCN21;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dml/dml_common_defs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dml/dml_common_defs.c
@@ -24,7 +24,7 @@
  */
 
 #include "dml_common_defs.h"
-#include "../calcs/dcn_calc_math.h"
+#include "dcn_calc_math.h"
 
 #include "dml_inline_defs.h"
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h
@@ -27,7 +27,7 @@
 #define __DML_INLINE_DEFS_H__
 
 #include "dml_common_defs.h"
-#include "../calcs/dcn_calc_math.h"
+#include "dcn_calc_math.h"
 #include "dml_logger.h"
 
 static inline double dml_min(double a, double b)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
@@ -63,13 +63,13 @@
 	enum gpio_mode mode)
 {
 	if (gpio->pin) {
-		ASSERT_CRITICAL(false);
+		BREAK_TO_DEBUGGER();
 		return GPIO_RESULT_ALREADY_OPENED;
 	}
 
 	// No action if allocation failed during gpio construct
 	if (!gpio->hw_container.ddc) {
-		ASSERT_CRITICAL(false);
+		BREAK_TO_DEBUGGER();
 		return GPIO_RESULT_NON_SPECIFIC_ERROR;
 	}
 	gpio->mode = mode;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/inc/dcn_calc_math.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/inc/dcn_calc_math.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2017 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors: AMD
+ *
+ */
+
+#ifndef _DCN_CALC_MATH_H_
+#define _DCN_CALC_MATH_H_
+
+float dcn_bw_mod(const float arg1, const float arg2);
+float dcn_bw_min2(const float arg1, const float arg2);
+unsigned int dcn_bw_max(const unsigned int arg1, const unsigned int arg2);
+float dcn_bw_max2(const float arg1, const float arg2);
+float dcn_bw_floor2(const float arg, const float significance);
+float dcn_bw_floor(const float arg);
+float dcn_bw_ceil2(const float arg, const float significance);
+float dcn_bw_ceil(const float arg);
+float dcn_bw_max3(float v1, float v2, float v3);
+float dcn_bw_max5(float v1, float v2, float v3, float v4, float v5);
+float dcn_bw_pow(float a, float exp);
+float dcn_bw_log(float a, float b);
+double dcn_bw_fabs(double a);
+
+#endif /* _DCN_CALC_MATH_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h
@@ -36,6 +36,7 @@
 	uint32_t pic_height;
 	enum dc_pixel_encoding pixel_encoding;
 	enum dc_color_depth color_depth;  /* Bits per component */
+	bool is_odm;
 	struct dc_dsc_config dc_dsc_cfg;
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
@@ -321,10 +321,12 @@
 			struct dc_state *context);
 	void (*update_writeback)(struct dc *dc,
 			const struct dc_stream_status *stream_status,
-			struct dc_writeback_info *wb_info);
+			struct dc_writeback_info *wb_info,
+			struct dc_state *context);
 	void (*enable_writeback)(struct dc *dc,
 			const struct dc_stream_status *stream_status,
-			struct dc_writeback_info *wb_info);
+			struct dc_writeback_info *wb_info,
+			struct dc_state *context);
 	void (*disable_writeback)(struct dc *dc,
 			unsigned int dwb_pipe_inst);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
@@ -299,8 +299,8 @@
 	pflip_int_entry(1),
 	pflip_int_entry(2),
 	pflip_int_entry(3),
-	[DC_IRQ_SOURCE_PFLIP5] = dummy_irq_entry(),
-	[DC_IRQ_SOURCE_PFLIP6] = dummy_irq_entry(),
+	pflip_int_entry(4),
+	pflip_int_entry(5),
 	[DC_IRQ_SOURCE_PFLIP_UNDERLAY0] = dummy_irq_entry(),
 	gpio_pad_int_entry(0),
 	gpio_pad_int_entry(1),
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
@@ -168,6 +168,11 @@
 	.ack = NULL
 };
 
+static const struct irq_source_info_funcs vupdate_no_lock_irq_info_funcs = {
+	.set = NULL,
+	.ack = NULL
+};
+
 #undef BASE_INNER
 #define BASE_INNER(seg) DMU_BASE__INST0_SEG ## seg
 
@@ -230,6 +235,17 @@
 		.funcs = &vblank_irq_info_funcs\
 	}
 
+/* vupdate_no_lock_int_entry maps to DC_IRQ_SOURCE_VUPDATEx, to match semantic
+ * of DCE's DC_IRQ_SOURCE_VUPDATEx.
+ */
+#define vupdate_no_lock_int_entry(reg_num)\
+	[DC_IRQ_SOURCE_VUPDATE1 + reg_num] = {\
+		IRQ_REG_ENTRY(OTG, reg_num,\
+			OTG_GLOBAL_SYNC_STATUS, VUPDATE_NO_LOCK_INT_EN,\
+			OTG_GLOBAL_SYNC_STATUS, VUPDATE_NO_LOCK_EVENT_CLEAR),\
+		.funcs = &vupdate_no_lock_irq_info_funcs\
+	}
+
 #define vblank_int_entry(reg_num)\
 	[DC_IRQ_SOURCE_VBLANK1 + reg_num] = {\
 		IRQ_REG_ENTRY(OTG, reg_num,\
@@ -338,6 +354,12 @@
 	vupdate_int_entry(3),
 	vupdate_int_entry(4),
 	vupdate_int_entry(5),
+	vupdate_no_lock_int_entry(0),
+	vupdate_no_lock_int_entry(1),
+	vupdate_no_lock_int_entry(2),
+	vupdate_no_lock_int_entry(3),
+	vupdate_no_lock_int_entry(4),
+	vupdate_no_lock_int_entry(5),
 	vblank_int_entry(0),
 	vblank_int_entry(1),
 	vblank_int_entry(2),
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/dc/os_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/dc/os_types.h
@@ -57,7 +57,7 @@
  * general debug capabilities
  *
  */
-#if defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB)
+#if defined(CONFIG_DEBUG_KERNEL_DC) && (defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB))
 #define ASSERT_CRITICAL(expr) do {	\
 	if (WARN_ON(!(expr))) { \
 		kgdb_breakpoint(); \
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/include/ddc_service_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/include/ddc_service_types.h
@@ -31,6 +31,8 @@
 #define DP_BRANCH_DEVICE_ID_0022B9 0x0022B9
 #define DP_BRANCH_DEVICE_ID_00001A 0x00001A
 #define DP_BRANCH_DEVICE_ID_0080E1 0x0080e1
+#define DP_BRANCH_DEVICE_ID_90CC24 0x90CC24
+#define DP_BRANCH_DEVICE_ID_00E04C 0x00E04C
 
 enum ddc_result {
 	DDC_RESULT_UNKNOWN = 0,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/include/fixed31_32.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/include/fixed31_32.h
@@ -431,6 +431,9 @@
  */
 static inline struct fixed31_32 dc_fixpt_pow(struct fixed31_32 arg1, struct fixed31_32 arg2)
 {
+	if (arg1.value == 0)
+		return arg2.value == 0 ? dc_fixpt_one : dc_fixpt_zero;
+
 	return dc_fixpt_exp(
 		dc_fixpt_mul(
 			dc_fixpt_log(arg1),
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
@@ -799,7 +799,7 @@
 	pow_buffer_ptr = -1; // reset back to no optimize
 	ret = true;
 release:
-	kfree(coeff);
+	kvfree(coeff);
 	return ret;
 }
 
@@ -1576,7 +1576,7 @@
 	struct pwl_float_data_ex *rgb = rgb_regamma;
 	const struct hw_x_point *coord_x = coordinates_x;
 
-	build_coefficients(&coeff, true);
+	build_coefficients(&coeff, TRANSFER_FUNCTION_SRGB);
 
 	i = 0;
 	while (i != hw_points_num + 1) {
@@ -1862,7 +1862,7 @@
 
 	kfree(rgb_regamma);
 rgb_regamma_alloc_fail:
-	kvfree(rgb_user);
+	kfree(rgb_user);
 rgb_user_alloc_fail:
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -743,6 +743,10 @@
 	nominal_field_rate_in_uhz =
 			mod_freesync_calc_nominal_field_rate(stream);
 
+	/* Rounded to the nearest Hz */
+	nominal_field_rate_in_uhz = 1000000ULL *
+			div_u64(nominal_field_rate_in_uhz + 500000, 1000000);
+
 	min_refresh_in_uhz = in_config->min_refresh_in_uhz;
 	max_refresh_in_uhz = in_config->max_refresh_in_uhz;
 
@@ -799,6 +803,7 @@
 			2 * in_out_vrr->min_refresh_in_uhz)
 		in_out_vrr->btr.btr_enabled = false;
 
+	in_out_vrr->fixed.fixed_active = false;
 	in_out_vrr->btr.btr_active = false;
 	in_out_vrr->btr.inserted_duration_in_us = 0;
 	in_out_vrr->btr.frames_to_insert = 0;
@@ -818,6 +823,7 @@
 		in_out_vrr->adjust.v_total_max = stream->timing.v_total;
 	} else if (in_out_vrr->state == VRR_STATE_ACTIVE_VARIABLE &&
 			refresh_range >= MIN_REFRESH_RANGE_IN_US) {
+
 		in_out_vrr->adjust.v_total_min =
 			calc_v_total_from_refresh(stream,
 				in_out_vrr->max_refresh_in_uhz);
@@ -996,14 +1002,13 @@
 			const struct dc_stream_state *stream)
 {
 	unsigned long long nominal_field_rate_in_uhz = 0;
+	unsigned int total = stream->timing.h_total * stream->timing.v_total;
 
-	/* Calculate nominal field rate for stream */
+	/* Calculate nominal field rate for stream, rounded up to nearest integer */
 	nominal_field_rate_in_uhz = stream->timing.pix_clk_100hz / 10;
 	nominal_field_rate_in_uhz *= 1000ULL * 1000ULL * 1000ULL;
-	nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz,
-						stream->timing.h_total);
-	nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz,
-						stream->timing.v_total);
+
+	nominal_field_rate_in_uhz =	div_u64(nominal_field_rate_in_uhz, total);
 
 	return nominal_field_rate_in_uhz;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/modules/power/power_helpers.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/modules/power/power_helpers.c
@@ -115,7 +115,7 @@
 /* NOTE: iRAM is 256B in size */
 struct iram_table_v_2 {
 	/* flags                      */
-	uint16_t flags;							/* 0x00 U16  */
+	uint16_t min_abm_backlight;					/* 0x00 U16  */
 
 	/* parameters for ABM2.0 algorithm */
 	uint8_t min_reduction[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];		/* 0x02 U0.8 */
@@ -140,10 +140,10 @@
 
 	/* For reading PSR State directly from IRAM */
 	uint8_t psr_state;						/* 0xf0       */
-	uint8_t dmcu_mcp_interface_version;							/* 0xf1       */
-	uint8_t dmcu_abm_feature_version;							/* 0xf2       */
-	uint8_t dmcu_psr_feature_version;							/* 0xf3       */
-	uint16_t dmcu_version;										/* 0xf4       */
+	uint8_t dmcu_mcp_interface_version;				/* 0xf1       */
+	uint8_t dmcu_abm_feature_version;				/* 0xf2       */
+	uint8_t dmcu_psr_feature_version;				/* 0xf3       */
+	uint16_t dmcu_version;						/* 0xf4       */
 	uint8_t dmcu_state;						/* 0xf6       */
 
 	uint16_t blRampReduction;					/* 0xf7       */
@@ -164,42 +164,43 @@
 	uint8_t max_reduction[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];		/* 0x16 U0.8 */
 	uint8_t bright_pos_gain[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];	/* 0x2a U2.6 */
 	uint8_t dark_pos_gain[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];		/* 0x3e U2.6 */
-	uint8_t hybrid_factor[NUM_AGGR_LEVEL];						/* 0x52 U0.8 */
-	uint8_t contrast_factor[NUM_AGGR_LEVEL];					/* 0x56 U0.8 */
-	uint8_t deviation_gain[NUM_AGGR_LEVEL];						/* 0x5a U0.8 */
-	uint8_t iir_curve[NUM_AMBI_LEVEL];							/* 0x5e U0.8 */
-	uint8_t min_knee[NUM_AGGR_LEVEL];							/* 0x63 U0.8 */
-	uint8_t max_knee[NUM_AGGR_LEVEL];							/* 0x67 U0.8 */
-	uint8_t pad[21];											/* 0x6b U0.8 */
+	uint8_t hybrid_factor[NUM_AGGR_LEVEL];				/* 0x52 U0.8 */
+	uint8_t contrast_factor[NUM_AGGR_LEVEL];			/* 0x56 U0.8 */
+	uint8_t deviation_gain[NUM_AGGR_LEVEL];				/* 0x5a U0.8 */
+	uint8_t iir_curve[NUM_AMBI_LEVEL];				/* 0x5e U0.8 */
+	uint8_t min_knee[NUM_AGGR_LEVEL];				/* 0x63 U0.8 */
+	uint8_t max_knee[NUM_AGGR_LEVEL];				/* 0x67 U0.8 */
+	uint16_t min_abm_backlight;					/* 0x6b U16  */
+	uint8_t pad[19];						/* 0x6d U0.8 */
 
 	/* parameters for crgb conversion */
-	uint16_t crgb_thresh[NUM_POWER_FN_SEGS];					/* 0x80 U3.13 */
-	uint16_t crgb_offset[NUM_POWER_FN_SEGS];					/* 0x90 U1.15 */
-	uint16_t crgb_slope[NUM_POWER_FN_SEGS];						/* 0xa0 U4.12 */
+	uint16_t crgb_thresh[NUM_POWER_FN_SEGS];			/* 0x80 U3.13 */
+	uint16_t crgb_offset[NUM_POWER_FN_SEGS];			/* 0x90 U1.15 */
+	uint16_t crgb_slope[NUM_POWER_FN_SEGS];				/* 0xa0 U4.12 */
 
 	/* parameters for custom curve */
 	/* thresholds for brightness --> backlight */
-	uint16_t backlight_thresholds[NUM_BL_CURVE_SEGS];			/* 0xb0 U16.0 */
+	uint16_t backlight_thresholds[NUM_BL_CURVE_SEGS];		/* 0xb0 U16.0 */
 	/* offsets for brightness --> backlight */
-	uint16_t backlight_offsets[NUM_BL_CURVE_SEGS];				/* 0xd0 U16.0 */
+	uint16_t backlight_offsets[NUM_BL_CURVE_SEGS];			/* 0xd0 U16.0 */
 
 	/* For reading PSR State directly from IRAM */
-	uint8_t psr_state;											/* 0xf0       */
-	uint8_t dmcu_mcp_interface_version;							/* 0xf1       */
-	uint8_t dmcu_abm_feature_version;							/* 0xf2       */
-	uint8_t dmcu_psr_feature_version;							/* 0xf3       */
-	uint16_t dmcu_version;										/* 0xf4       */
-	uint8_t dmcu_state;											/* 0xf6       */
-
-	uint8_t dummy1;												/* 0xf7       */
-	uint8_t dummy2;												/* 0xf8       */
-	uint8_t dummy3;												/* 0xf9       */
-	uint8_t dummy4;												/* 0xfa       */
-	uint8_t dummy5;												/* 0xfb       */
-	uint8_t dummy6;												/* 0xfc       */
-	uint8_t dummy7;												/* 0xfd       */
-	uint8_t dummy8;												/* 0xfe       */
-	uint8_t dummy9;												/* 0xff       */
+	uint8_t psr_state;						/* 0xf0       */
+	uint8_t dmcu_mcp_interface_version;				/* 0xf1       */
+	uint8_t dmcu_abm_feature_version;				/* 0xf2       */
+	uint8_t dmcu_psr_feature_version;				/* 0xf3       */
+	uint16_t dmcu_version;						/* 0xf4       */
+	uint8_t dmcu_state;						/* 0xf6       */
+
+	uint8_t dummy1;							/* 0xf7       */
+	uint8_t dummy2;							/* 0xf8       */
+	uint8_t dummy3;							/* 0xf9       */
+	uint8_t dummy4;							/* 0xfa       */
+	uint8_t dummy5;							/* 0xfb       */
+	uint8_t dummy6;							/* 0xfc       */
+	uint8_t dummy7;							/* 0xfd       */
+	uint8_t dummy8;							/* 0xfe       */
+	uint8_t dummy9;							/* 0xff       */
 };
 #pragma pack(pop)
 
@@ -271,7 +272,8 @@
 {
 	unsigned int set = params.set;
 
-	ram_table->flags = 0x0;
+	ram_table->min_abm_backlight =
+			cpu_to_be16(params.min_abm_backlight);
 	ram_table->deviation_gain = 0xb3;
 
 	ram_table->blRampReduction =
@@ -445,6 +447,9 @@
 
 	ram_table->flags = 0x0;
 
+	ram_table->min_abm_backlight =
+			cpu_to_be16(params.min_abm_backlight);
+
 	ram_table->deviation_gain[0] = 0xb3;
 	ram_table->deviation_gain[1] = 0xa8;
 	ram_table->deviation_gain[2] = 0x98;
@@ -588,6 +593,10 @@
 	unsigned int set = params.set;
 
 	ram_table->flags = 0x0;
+
+	ram_table->min_abm_backlight =
+			cpu_to_be16(params.min_abm_backlight);
+
 	for (i = 0; i < NUM_AGGR_LEVEL; i++) {
 		ram_table->hybrid_factor[i] = abm_settings[set][i].brightness_gain;
 		ram_table->contrast_factor[i] = abm_settings[set][i].contrast_factor;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/display/modules/power/power_helpers.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/display/modules/power/power_helpers.h
@@ -38,6 +38,7 @@
 	unsigned int backlight_lut_array_size;
 	unsigned int backlight_ramping_reduction;
 	unsigned int backlight_ramping_start;
+	unsigned int min_abm_backlight;
 	unsigned int set;
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_offset.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_offset.h
@@ -7376,6 +7376,8 @@
 #define mmCRTC4_CRTC_DRR_CONTROL                                                                       0x0f3e
 #define mmCRTC4_CRTC_DRR_CONTROL_BASE_IDX                                                              2
 
+#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0                                                                  0x395d
+#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0_BASE_IDX                                                         2
 
 // addressBlock: dce_dc_fmt4_dispdec
 // base address: 0x2000
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/include/discovery.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/include/discovery.h
@@ -25,7 +25,6 @@
 #define _DISCOVERY_H_
 
 #define PSP_HEADER_SIZE                 256
-#define BINARY_MAX_SIZE                 (64 << 10)
 #define BINARY_SIGNATURE                0x28211407
 #define DISCOVERY_TABLE_SIGNATURE       0x53445049
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
@@ -320,12 +320,12 @@
 		if (*level & profile_mode_mask) {
 			hwmgr->saved_dpm_level = hwmgr->dpm_level;
 			hwmgr->en_umd_pstate = true;
-			amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
-						AMD_IP_BLOCK_TYPE_GFX,
-						AMD_CG_STATE_UNGATE);
 			amdgpu_device_ip_set_powergating_state(hwmgr->adev,
 					AMD_IP_BLOCK_TYPE_GFX,
 					AMD_PG_STATE_UNGATE);
+			amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
+						AMD_IP_BLOCK_TYPE_GFX,
+						AMD_CG_STATE_UNGATE);
 		}
 	} else {
 		/* exit umd pstate, restore level, enable gfx cg*/
@@ -1421,10 +1421,12 @@
 {
 	struct pp_hwmgr *hwmgr = handle;
 
+	*cap = false;
 	if (!hwmgr)
 		return -EINVAL;
 
-	if (!hwmgr->pm_en || !hwmgr->hwmgr_func->get_asic_baco_capability)
+	if (!(hwmgr->not_vf && amdgpu_dpm) ||
+		!hwmgr->hwmgr_func->get_asic_baco_capability)
 		return 0;
 
 	mutex_lock(&hwmgr->smu_lock);
@@ -1458,7 +1460,8 @@
 	if (!hwmgr)
 		return -EINVAL;
 
-	if (!hwmgr->pm_en || !hwmgr->hwmgr_func->set_asic_baco_state)
+	if (!(hwmgr->not_vf && amdgpu_dpm) ||
+		!hwmgr->hwmgr_func->set_asic_baco_state)
 		return 0;
 
 	mutex_lock(&hwmgr->smu_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -844,6 +844,7 @@
 	smu->smu_baco.platform_support = false;
 
 	mutex_init(&smu->sensor_lock);
+	mutex_init(&smu->metrics_lock);
 
 	smu->watermarks_bitmap = 0;
 	smu->power_profile_mode = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT;
@@ -1344,7 +1345,10 @@
 	int ret;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	struct smu_context *smu = &adev->smu;
-	bool baco_feature_is_enabled = smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT);
+	bool baco_feature_is_enabled = false;
+
+	if(!(adev->flags & AMD_IS_APU))
+		baco_feature_is_enabled = smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT);
 
 	ret = smu_system_features_control(smu, false);
 	if (ret)
@@ -1537,12 +1541,12 @@
 		if (*level & profile_mode_mask) {
 			smu_dpm_ctx->saved_dpm_level = smu_dpm_ctx->dpm_level;
 			smu_dpm_ctx->enable_umd_pstate = true;
-			amdgpu_device_ip_set_clockgating_state(smu->adev,
-							       AMD_IP_BLOCK_TYPE_GFX,
-							       AMD_CG_STATE_UNGATE);
 			amdgpu_device_ip_set_powergating_state(smu->adev,
 							       AMD_IP_BLOCK_TYPE_GFX,
 							       AMD_PG_STATE_UNGATE);
+			amdgpu_device_ip_set_clockgating_state(smu->adev,
+							       AMD_IP_BLOCK_TYPE_GFX,
+							       AMD_CG_STATE_UNGATE);
 		}
 	} else {
 		/* exit umd pstate, restore level, enable gfx cg*/
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
@@ -910,18 +910,21 @@
 	struct smu_table_context *smu_table= &smu->smu_table;
 	int ret = 0;
 
+	mutex_lock(&smu->metrics_lock);
 	if (!smu_table->metrics_time ||
 	     time_after(jiffies, smu_table->metrics_time + HZ / 1000)) {
 		ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 				(void *)smu_table->metrics_table, false);
 		if (ret) {
 			pr_info("Failed to export SMU metrics table!\n");
+			mutex_unlock(&smu->metrics_lock);
 			return ret;
 		}
 		smu_table->metrics_time = jiffies;
 	}
 
 	memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));
+	mutex_unlock(&smu->metrics_lock);
 
 	return ret;
 }
@@ -1388,12 +1391,17 @@
 					"VR",
 					"COMPUTE",
 					"CUSTOM"};
+	static const char *title[] = {
+			"PROFILE_INDEX(NAME)"};
 	uint32_t i, size = 0;
 	int16_t workload_type = 0;
 
 	if (!smu->pm_enabled || !buf)
 		return -EINVAL;
 
+	size += sprintf(buf + size, "%16s\n",
+			title[0]);
+
 	for (i = 0; i <= PP_SMC_POWER_PROFILE_CUSTOM; i++) {
 		/*
 		 * Conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c
@@ -984,6 +984,32 @@
 			struct pp_hwmgr *hwmgr,
 			const ATOM_PPLIB_POWERPLAYTABLE *powerplay_table)
 {
+	hwmgr->thermal_controller.ucType =
+			powerplay_table->sThermalController.ucType;
+	hwmgr->thermal_controller.ucI2cLine =
+			powerplay_table->sThermalController.ucI2cLine;
+	hwmgr->thermal_controller.ucI2cAddress =
+			powerplay_table->sThermalController.ucI2cAddress;
+
+	hwmgr->thermal_controller.fanInfo.bNoFan =
+		(0 != (powerplay_table->sThermalController.ucFanParameters &
+			ATOM_PP_FANPARAMETERS_NOFAN));
+
+	hwmgr->thermal_controller.fanInfo.ucTachometerPulsesPerRevolution =
+		powerplay_table->sThermalController.ucFanParameters &
+		ATOM_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK;
+
+	hwmgr->thermal_controller.fanInfo.ulMinRPM
+		= powerplay_table->sThermalController.ucFanMinRPM * 100UL;
+	hwmgr->thermal_controller.fanInfo.ulMaxRPM
+		= powerplay_table->sThermalController.ucFanMaxRPM * 100UL;
+
+	set_hw_cap(hwmgr,
+		   ATOM_PP_THERMALCONTROLLER_NONE != hwmgr->thermal_controller.ucType,
+		   PHM_PlatformCaps_ThermalController);
+
+	hwmgr->thermal_controller.use_hw_fan_control = 1;
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
@@ -209,8 +209,7 @@
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->need_min_deep_sleep_dcefclk &&
-		smu10_data->deep_sleep_dcefclk != clock) {
+	if (clock && smu10_data->deep_sleep_dcefclk != clock) {
 		smu10_data->deep_sleep_dcefclk = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetMinDeepSleepDcefclk,
@@ -223,8 +222,7 @@
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->dcf_actual_hard_min_freq &&
-		smu10_data->dcf_actual_hard_min_freq != clock) {
+	if (clock && smu10_data->dcf_actual_hard_min_freq != clock) {
 		smu10_data->dcf_actual_hard_min_freq = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetHardMinDcefclkByFreq,
@@ -237,8 +235,7 @@
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->f_actual_hard_min_freq &&
-		smu10_data->f_actual_hard_min_freq != clock) {
+	if (clock && smu10_data->f_actual_hard_min_freq != clock) {
 		smu10_data->f_actual_hard_min_freq = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetHardMinFclkByFreq,
@@ -1026,12 +1023,15 @@
 
 	clocks->num_levels = 0;
 	for (i = 0; i < pclk_vol_table->count; i++) {
-		clocks->data[i].clocks_in_khz = pclk_vol_table->entries[i].clk * 10;
-		clocks->data[i].latency_in_us = latency_required ?
-						smu10_get_mem_latency(hwmgr,
-						pclk_vol_table->entries[i].clk) :
-						0;
-		clocks->num_levels++;
+		if (pclk_vol_table->entries[i].clk) {
+			clocks->data[clocks->num_levels].clocks_in_khz =
+				pclk_vol_table->entries[i].clk * 10;
+			clocks->data[clocks->num_levels].latency_in_us = latency_required ?
+				smu10_get_mem_latency(hwmgr,
+						      pclk_vol_table->entries[i].clk) :
+				0;
+			clocks->num_levels++;
+		}
 	}
 
 	return 0;
@@ -1077,9 +1077,11 @@
 
 	clocks->num_levels = 0;
 	for (i = 0; i < pclk_vol_table->count; i++) {
-		clocks->data[i].clocks_in_khz = pclk_vol_table->entries[i].clk  * 10;
-		clocks->data[i].voltage_in_mv = pclk_vol_table->entries[i].vol;
-		clocks->num_levels++;
+		if (pclk_vol_table->entries[i].clk) {
+			clocks->data[clocks->num_levels].clocks_in_khz = pclk_vol_table->entries[i].clk  * 10;
+			clocks->data[clocks->num_levels].voltage_in_mv = pclk_vol_table->entries[i].vol;
+			clocks->num_levels++;
+		}
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
@@ -1533,6 +1533,10 @@
 	PP_ASSERT_WITH_CODE((tmp_result == 0),
 			"Failed to reset to default!", result = tmp_result);
 
+	tmp_result = smum_stop_smc(hwmgr);
+	PP_ASSERT_WITH_CODE((tmp_result == 0),
+			"Failed to stop smc!", result = tmp_result);
+
 	tmp_result = smu7_force_switch_to_arbf0(hwmgr);
 	PP_ASSERT_WITH_CODE((tmp_result == 0),
 			"Failed to force to switch arbf0!", result = tmp_result);
@@ -2864,7 +2868,7 @@
 		if (hwmgr->is_kicker)
 			switch_limit_us = data->is_memory_gddr5 ? 450 : 150;
 		else
-			switch_limit_us = data->is_memory_gddr5 ? 190 : 150;
+			switch_limit_us = data->is_memory_gddr5 ? 200 : 150;
 		break;
 	case CHIP_VEGAM:
 		switch_limit_us = 30;
@@ -3575,7 +3579,8 @@
 	case AMDGPU_PP_SENSOR_GPU_POWER:
 		return smu7_get_gpu_power(hwmgr, (uint32_t *)value);
 	case AMDGPU_PP_SENSOR_VDDGFX:
-		if ((data->vr_config & 0xff) == 0x2)
+		if ((data->vr_config & VRCONF_VDDGFX_MASK) ==
+		    (VR_SVI2_PLANE_2 << VRCONF_VDDGFX_SHIFT))
 			val_vid = PHM_READ_INDIRECT_FIELD(hwmgr->device,
 					CGS_IND_REG__SMC, PWR_SVI2_STATUS, PLANE2_VID);
 		else
@@ -3805,9 +3810,12 @@
 {
 	uint32_t i;
 
+	/* force the trim if mclk_switching is disabled to prevent flicker */
+	bool force_trim = (low_limit == high_limit);
 	for (i = 0; i < dpm_table->count; i++) {
 	/*skip the trim if od is enabled*/
-		if (!hwmgr->od_enabled && (dpm_table->dpm_levels[i].value < low_limit
+		if ((!hwmgr->od_enabled || force_trim)
+			&& (dpm_table->dpm_levels[i].value < low_limit
 			|| dpm_table->dpm_levels[i].value > high_limit))
 			dpm_table->dpm_levels[i].enabled = false;
 		else
@@ -3983,6 +3991,13 @@
 			"Failed to populate and upload SCLK MCLK DPM levels!",
 			result = tmp_result);
 
+	/*
+	 * If a custom pp table is loaded, set DPMTABLE_OD_UPDATE_VDDC flag.
+	 * That effectively disables AVFS feature.
+	 */
+	if (hwmgr->hardcode_pp_table != NULL)
+		data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
+
 	tmp_result = smu7_update_avfs(hwmgr);
 	PP_ASSERT_WITH_CODE((0 == tmp_result),
 			"Failed to update avfs voltages!",
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -3691,6 +3691,13 @@
 	PP_ASSERT_WITH_CODE(!result,
 			"Failed to upload PPtable!", return result);
 
+	/*
+	 * If a custom pp table is loaded, set DPMTABLE_OD_UPDATE_VDDC flag.
+	 * That effectively disables AVFS feature.
+	 */
+	if(hwmgr->hardcode_pp_table != NULL)
+		data->need_update_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
+
 	vega10_update_avfs(hwmgr);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
@@ -364,17 +364,29 @@
 static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v2_information *pp_table_info =
+		(struct phm_ppt_v2_information *)(hwmgr->pptable);
+	struct phm_tdp_table *tdp_table = pp_table_info->tdp_table;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+
+	/*
+	 * As a common sense, usSoftwareShutdownTemp should be bigger
+	 * than ThotspotLimit. For any invalid usSoftwareShutdownTemp,
+	 * we will just use the max possible setting VEGA10_THERMAL_MAXIMUM_ALERT_TEMP
+	 * to avoid false alarms.
+	 */
+	if ((tdp_table->usSoftwareShutdownTemp >
+	     range->hotspot_crit_max / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)) {
+		if (high > tdp_table->usSoftwareShutdownTemp)
+			high = tdp_table->usSoftwareShutdownTemp;
+	}
 
 	if (low > high)
 		return -EINVAL;
@@ -383,8 +395,8 @@
 
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val &= (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK) &
 			(~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK) &
 			(~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c
@@ -170,17 +170,18 @@
 static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v3_information *pptable_information =
+		(struct phm_ppt_v3_information *)hwmgr->pptable;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > pptable_information->us_software_shutdown_temp)
+		high = pptable_information->us_software_shutdown_temp;
 
 	if (low > high)
 		return -EINVAL;
@@ -189,8 +190,8 @@
 
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
 
 	WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c
@@ -29,7 +29,7 @@
 #include "vega20_baco.h"
 #include "vega20_smumgr.h"
 
-
+#include "amdgpu_ras.h"
 
 static const struct soc15_baco_cmd_entry clean_baco_tbl[] =
 {
@@ -74,6 +74,7 @@
 int vega20_baco_set_state(struct pp_hwmgr *hwmgr, enum BACO_STATE state)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)(hwmgr->adev);
+	struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);
 	enum BACO_STATE cur_state;
 	uint32_t data;
 
@@ -84,10 +85,11 @@
 		return 0;
 
 	if (state == BACO_STATE_IN) {
-		data = RREG32_SOC15(THM, 0, mmTHM_BACO_CNTL);
-		data |= 0x80000000;
-		WREG32_SOC15(THM, 0, mmTHM_BACO_CNTL, data);
-
+		if (!ras || !ras->supported) {
+			data = RREG32_SOC15(THM, 0, mmTHM_BACO_CNTL);
+			data |= 0x80000000;
+			WREG32_SOC15(THM, 0, mmTHM_BACO_CNTL, data);
+		}
 
 		if(smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_EnterBaco, 0))
 			return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
@@ -981,27 +981,15 @@
 {
 	struct vega20_hwmgr *data =
 			(struct vega20_hwmgr *)(hwmgr->backend);
-	uint64_t features_enabled;
-	int i;
-	bool enabled;
-	int ret = 0;
+	int i, ret = 0;
 
 	PP_ASSERT_WITH_CODE((ret = smum_send_msg_to_smc(hwmgr,
 			PPSMC_MSG_DisableAllSmuFeatures)) == 0,
 			"[DisableAllSMUFeatures] Failed to disable all smu features!",
 			return ret);
 
-	ret = vega20_get_enabled_smc_features(hwmgr, &features_enabled);
-	PP_ASSERT_WITH_CODE(!ret,
-			"[DisableAllSMUFeatures] Failed to get enabled smc features!",
-			return ret);
-
-	for (i = 0; i < GNLD_FEATURES_MAX; i++) {
-		enabled = (features_enabled & data->smu_features[i].smu_feature_bitmap) ?
-			true : false;
-		data->smu_features[i].enabled = enabled;
-		data->smu_features[i].supported = enabled;
-	}
+	for (i = 0; i < GNLD_FEATURES_MAX; i++)
+		data->smu_features[i].enabled = 0;
 
 	return 0;
 }
@@ -1652,12 +1640,6 @@
 
 	data->uvd_power_gated = true;
 	data->vce_power_gated = true;
-
-	if (data->smu_features[GNLD_DPM_UVD].enabled)
-		data->uvd_power_gated = false;
-
-	if (data->smu_features[GNLD_DPM_VCE].enabled)
-		data->vce_power_gated = false;
 }
 
 static int vega20_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
@@ -3211,10 +3193,11 @@
 
 static int vega20_set_ppfeature_status(struct pp_hwmgr *hwmgr, uint64_t new_ppfeature_masks)
 {
-	uint64_t features_enabled;
-	uint64_t features_to_enable;
-	uint64_t features_to_disable;
-	int ret = 0;
+	struct vega20_hwmgr *data =
+			(struct vega20_hwmgr *)(hwmgr->backend);
+	uint64_t features_enabled, features_to_enable, features_to_disable;
+	int i, ret = 0;
+	bool enabled;
 
 	if (new_ppfeature_masks >= (1ULL << GNLD_FEATURES_MAX))
 		return -EINVAL;
@@ -3243,6 +3226,17 @@
 			return ret;
 	}
 
+	/* Update the cached feature enablement state */
+	ret = vega20_get_enabled_smc_features(hwmgr, &features_enabled);
+	if (ret)
+		return ret;
+
+	for (i = 0; i < GNLD_FEATURES_MAX; i++) {
+		enabled = (features_enabled & data->smu_features[i].smu_feature_bitmap) ?
+			true : false;
+		data->smu_features[i].enabled = enabled;
+	}
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c
@@ -240,17 +240,18 @@
 static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v3_information *pptable_information =
+		(struct phm_ppt_v3_information *)hwmgr->pptable;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > pptable_information->us_software_shutdown_temp)
+		high = pptable_information->us_software_shutdown_temp;
 
 	if (low > high)
 		return -EINVAL;
@@ -259,8 +260,8 @@
 
 	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
 
 	WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
@@ -345,6 +345,7 @@
 	const struct pptable_funcs	*ppt_funcs;
 	struct mutex			mutex;
 	struct mutex			sensor_lock;
+	struct mutex			metrics_lock;
 	uint64_t pool_size;
 
 	struct smu_table_context	smu_table;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -229,6 +229,7 @@
 	bool (*is_hw_avfs_present)(struct pp_hwmgr  *hwmgr);
 	int (*update_dpm_settings)(struct pp_hwmgr *hwmgr, void *profile_setting);
 	int (*smc_table_manager)(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t table_id, bool rw); /*rw: true for read, false for write */
+	int (*stop_smc)(struct pp_hwmgr *hwmgr);
 };
 
 struct pp_hwmgr_func {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
@@ -114,4 +114,6 @@
 
 extern int smum_smc_table_manager(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t table_id, bool rw);
 
+extern int smum_stop_smc(struct pp_hwmgr *hwmgr);
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
@@ -547,17 +547,20 @@
 	struct smu_table_context *smu_table= &smu->smu_table;
 	int ret = 0;
 
+	mutex_lock(&smu->metrics_lock);
 	if (!smu_table->metrics_time || time_after(jiffies, smu_table->metrics_time + msecs_to_jiffies(100))) {
 		ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 				(void *)smu_table->metrics_table, false);
 		if (ret) {
 			pr_info("Failed to export SMU metrics table!\n");
+			mutex_unlock(&smu->metrics_lock);
 			return ret;
 		}
 		smu_table->metrics_time = jiffies;
 	}
 
 	memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));
+	mutex_unlock(&smu->metrics_lock);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
@@ -183,11 +183,14 @@
 	int i, size = 0, ret = 0;
 	uint32_t cur_value = 0, value = 0, count = 0, min = 0, max = 0;
 	DpmClocks_t *clk_table = smu->smu_table.clocks_table;
-	SmuMetrics_t metrics = {0};
+	SmuMetrics_t metrics;
+	bool cur_value_match_level = false;
 
 	if (!clk_table || clk_type >= SMU_CLK_COUNT)
 		return -EINVAL;
 
+	memset(&metrics, 0, sizeof(metrics));
+
 	ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 			       (void *)&metrics, false);
 	if (ret)
@@ -241,8 +244,13 @@
 		GET_DPM_CUR_FREQ(clk_table, clk_type, i, value);
 		size += sprintf(buf + size, "%d: %uMhz %s\n", i, value,
 				cur_value == value ? "*" : "");
+		if (cur_value == value)
+			cur_value_match_level = true;
 	}
 
+	if (!cur_value_match_level)
+		size += sprintf(buf + size, "   %uMhz *\n", cur_value);
+
 	return size;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/renoir_ppt.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/renoir_ppt.h
@@ -37,7 +37,7 @@
 			freq = table->SocClocks[dpm_level].Freq;	\
 			break;						\
 		case SMU_MCLK:						\
-			freq = table->MemClocks[dpm_level].Freq;	\
+			freq = table->FClocks[dpm_level].Freq;	\
 			break;						\
 		case SMU_DCEFCLK:					\
 			freq = table->DcfClocks[dpm_level].Freq;	\
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
@@ -46,10 +46,8 @@
 #include "asic_reg/smuio/smuio_11_0_0_sh_mask.h"
 
 MODULE_FIRMWARE("amdgpu/vega20_smc.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_smc.bin");
 MODULE_FIRMWARE("amdgpu/navi10_smc.bin");
 MODULE_FIRMWARE("amdgpu/navi14_smc.bin");
-MODULE_FIRMWARE("amdgpu/navi12_smc.bin");
 
 #define SMU11_VOLTAGE_SCALE 4
 
@@ -171,7 +169,8 @@
 		chip_name = "navi12";
 		break;
 	default:
-		BUG();
+		dev_err(adev->dev, "Unsupported ASIC type %d\n", adev->asic_type);
+		return -EINVAL;
 	}
 
 	snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_smc.bin", chip_name);
@@ -988,8 +987,12 @@
 	struct smu_11_0_max_sustainable_clocks *max_sustainable_clocks;
 	int ret = 0;
 
-	max_sustainable_clocks = kzalloc(sizeof(struct smu_11_0_max_sustainable_clocks),
+	if (!smu->smu_table.max_sustainable_clocks)
+		max_sustainable_clocks = kzalloc(sizeof(struct smu_11_0_max_sustainable_clocks),
 					 GFP_KERNEL);
+	else
+		max_sustainable_clocks = smu->smu_table.max_sustainable_clocks;
+
 	smu->smu_table.max_sustainable_clocks = (void *)max_sustainable_clocks;
 
 	max_sustainable_clocks->uclock = smu->smu_table.boot_values.uclk / 100;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
@@ -239,7 +239,7 @@
 
 	switch (dev_id) {
 	case 0x67BA:
-	case 0x66B1:
+	case 0x67B1:
 		smu_data->power_tune_defaults = &defaults_hawaii_pro;
 		break;
 	case 0x67B8:
@@ -2933,6 +2933,29 @@
 	return 0;
 }
 
+static void ci_reset_smc(struct pp_hwmgr *hwmgr)
+{
+	PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
+				  SMC_SYSCON_RESET_CNTL,
+				  rst_reg, 1);
+}
+
+
+static void ci_stop_smc_clock(struct pp_hwmgr *hwmgr)
+{
+	PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
+				  SMC_SYSCON_CLOCK_CNTL_0,
+				  ck_disable, 1);
+}
+
+static int ci_stop_smc(struct pp_hwmgr *hwmgr)
+{
+	ci_reset_smc(hwmgr);
+	ci_stop_smc_clock(hwmgr);
+
+	return 0;
+}
+
 const struct pp_smumgr_func ci_smu_funcs = {
 	.name = "ci_smu",
 	.smu_init = ci_smu_init,
@@ -2957,4 +2980,5 @@
 	.is_dpm_running = ci_is_dpm_running,
 	.update_dpm_settings = ci_update_dpm_settings,
 	.update_smc_table = ci_update_smc_table,
+	.stop_smc = ci_stop_smc,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
@@ -217,3 +217,11 @@
 
 	return -EINVAL;
 }
+
+int smum_stop_smc(struct pp_hwmgr *hwmgr)
+{
+	if (hwmgr->smumgr_funcs->stop_smc)
+		return hwmgr->smumgr_funcs->stop_smc(hwmgr);
+
+	return 0;
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c
@@ -642,9 +642,6 @@
 
 	/* sclk is bigger than max sclk in the dependence table */
 	*voltage |= (dep_table->entries[i - 1].vddc * VOLTAGE_SCALE) << VDDC_SHIFT;
-	vddci = phm_find_closest_vddci(&(data->vddci_voltage_table),
-			(dep_table->entries[i - 1].vddc -
-					(uint16_t)VDDC_VDDCI_DELTA));
 
 	if (SMU7_VOLTAGE_CONTROL_NONE == data->vddci_control)
 		*voltage |= (data->vbios_boot_state.vddci_bootup_value *
@@ -652,8 +649,13 @@
 	else if (dep_table->entries[i - 1].vddci)
 		*voltage |= (dep_table->entries[i - 1].vddci *
 				VOLTAGE_SCALE) << VDDC_SHIFT;
-	else
+	else {
+		vddci = phm_find_closest_vddci(&(data->vddci_voltage_table),
+				(dep_table->entries[i - 1].vddc -
+						(uint16_t)VDDC_VDDCI_DELTA));
+
 		*voltage |= (vddci * VOLTAGE_SCALE) << VDDCI_SHIFT;
+	}
 
 	if (SMU7_VOLTAGE_CONTROL_NONE == data->mvdd_control)
 		*mvdd = data->vbios_boot_state.mvdd_bootup_value * VOLTAGE_SCALE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
@@ -1691,17 +1691,20 @@
 	struct smu_table_context *smu_table= &smu->smu_table;
 	int ret = 0;
 
+	mutex_lock(&smu->metrics_lock);
 	if (!smu_table->metrics_time || time_after(jiffies, smu_table->metrics_time + HZ / 1000)) {
 		ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 				(void *)smu_table->metrics_table, false);
 		if (ret) {
 			pr_info("Failed to export SMU metrics table!\n");
+			mutex_unlock(&smu->metrics_lock);
 			return ret;
 		}
 		smu_table->metrics_time = jiffies;
 	}
 
 	memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));
+	mutex_unlock(&smu->metrics_lock);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
@@ -250,6 +250,7 @@
 {
 	komeda_crtc_prepare(to_kcrtc(crtc));
 	drm_crtc_vblank_on(crtc);
+	WARN_ON(drm_crtc_vblank_get(crtc));
 	komeda_crtc_do_flush(crtc, old);
 }
 
@@ -319,6 +320,7 @@
 		}
 	}
 
+	drm_crtc_vblank_put(crtc);
 	drm_crtc_vblank_off(crtc);
 	komeda_crtc_unprepare(kcrtc);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/arm/malidp_mw.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/arm/malidp_mw.c
@@ -56,7 +56,7 @@
 	return MODE_OK;
 }
 
-const struct drm_connector_helper_funcs malidp_mw_connector_helper_funcs = {
+static const struct drm_connector_helper_funcs malidp_mw_connector_helper_funcs = {
 	.get_modes = malidp_mw_connector_get_modes,
 	.mode_valid = malidp_mw_connector_mode_valid,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/arm/malidp_planes.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/arm/malidp_planes.c
@@ -928,7 +928,7 @@
 	const struct malidp_hw_regmap *map = &malidp->dev->hw->map;
 	struct malidp_plane *plane = NULL;
 	enum drm_plane_type plane_type;
-	unsigned long crtcs = 1 << drm->mode_config.num_crtc;
+	unsigned long crtcs = BIT(drm->mode_config.num_crtc);
 	unsigned long flags = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_180 |
 			      DRM_MODE_ROTATE_270 | DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y;
 	unsigned int blend_caps = BIT(DRM_MODE_BLEND_PIXEL_NONE) |
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/aspeed/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/aspeed/Kconfig
@@ -3,6 +3,7 @@
 	tristate "ASPEED BMC Display Controller"
 	depends on DRM && OF
 	depends on (COMPILE_TEST || ARCH_ASPEED)
+	depends on MMU
 	select DRM_KMS_HELPER
 	select DRM_KMS_CMA_HELPER
 	select DMA_CMA if HAVE_DMA_CONTIGUOUS
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -73,7 +73,11 @@
 	unsigned long prate;
 	unsigned int mask = ATMEL_HLCDC_CLKDIV_MASK | ATMEL_HLCDC_CLKPOL;
 	unsigned int cfg = 0;
-	int div;
+	int div, ret;
+
+	ret = clk_prepare_enable(crtc->dc->hlcdc->sys_clk);
+	if (ret)
+		return;
 
 	vm.vfront_porch = adj->crtc_vsync_start - adj->crtc_vdisplay;
 	vm.vback_porch = adj->crtc_vtotal - adj->crtc_vsync_end;
@@ -95,14 +99,14 @@
 		     (adj->crtc_hdisplay - 1) |
 		     ((adj->crtc_vdisplay - 1) << 16));
 
+	prate = clk_get_rate(crtc->dc->hlcdc->sys_clk);
+	mode_rate = adj->crtc_clock * 1000;
 	if (!crtc->dc->desc->fixed_clksrc) {
+		prate *= 2;
 		cfg |= ATMEL_HLCDC_CLKSEL;
 		mask |= ATMEL_HLCDC_CLKSEL;
 	}
 
-	prate = 2 * clk_get_rate(crtc->dc->hlcdc->sys_clk);
-	mode_rate = adj->crtc_clock * 1000;
-
 	div = DIV_ROUND_UP(prate, mode_rate);
 	if (div < 2) {
 		div = 2;
@@ -117,8 +121,8 @@
 		int div_low = prate / mode_rate;
 
 		if (div_low >= 2 &&
-		    ((prate / div_low - mode_rate) <
-		     10 * (mode_rate - prate / div)))
+		    (10 * (prate / div_low - mode_rate) <
+		     (mode_rate - prate / div)))
 			/*
 			 * At least 10 times better when using a higher
 			 * frequency than requested, instead of a lower.
@@ -147,6 +151,8 @@
 			   ATMEL_HLCDC_VSPSU | ATMEL_HLCDC_VSPHO |
 			   ATMEL_HLCDC_GUARDTIME_MASK | ATMEL_HLCDC_MODE_MASK,
 			   cfg);
+
+	clk_disable_unprepare(crtc->dc->hlcdc->sys_clk);
 }
 
 static enum drm_mode_status
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bochs/bochs_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bochs/bochs_hw.c
@@ -156,10 +156,8 @@
 		size = min(size, mem);
 	}
 
-	if (pci_request_region(pdev, 0, "bochs-drm") != 0) {
-		DRM_ERROR("Cannot request framebuffer\n");
-		return -EBUSY;
-	}
+	if (pci_request_region(pdev, 0, "bochs-drm") != 0)
+		DRM_WARN("Cannot request framebuffer, boot fb still active?\n");
 
 	bochs->fb_map = ioremap(addr, size);
 	if (bochs->fb_map == NULL) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bochs/bochs_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bochs/bochs_kms.c
@@ -194,6 +194,7 @@
 	bochs->dev->mode_config.preferred_depth = 24;
 	bochs->dev->mode_config.prefer_shadow = 0;
 	bochs->dev->mode_config.prefer_shadow_fbdev = 1;
+	bochs->dev->mode_config.fbdev_use_iomem = true;
 	bochs->dev->mode_config.quirk_addfb_prefer_host_byte_order = true;
 
 	bochs->dev->mode_config.funcs = &bochs_mode_funcs;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/adv7511/Makefile
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
-adv7511-y := adv7511_drv.o
-adv7511-$(CONFIG_DRM_I2C_ADV7511_AUDIO) += adv7511_audio.o
-adv7511-$(CONFIG_DRM_I2C_ADV7511_CEC) += adv7511_cec.o
-adv7511-$(CONFIG_DRM_I2C_ADV7533) += adv7533.o
-obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511.o
+adv7511_drm-y := adv7511_drv.o
+adv7511_drm-$(CONFIG_DRM_I2C_ADV7511_AUDIO) += adv7511_audio.o
+adv7511_drm-$(CONFIG_DRM_I2C_ADV7511_CEC) += adv7511_cec.o
+adv7511_drm-$(CONFIG_DRM_I2C_ADV7533) += adv7533.o
+obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511_drm.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
@@ -19,13 +19,15 @@
 {
 	switch (fs) {
 	case 32000:
-		*n = 4096;
+	case 48000:
+	case 96000:
+	case 192000:
+		*n = fs * 128 / 1000;
 		break;
 	case 44100:
-		*n = 6272;
-		break;
-	case 48000:
-		*n = 6144;
+	case 88200:
+	case 176400:
+		*n = fs * 128 / 900;
 		break;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/analogix-anx78xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/analogix-anx78xx.c
@@ -715,7 +715,9 @@
 	/* 1.0V digital core power regulator  */
 	pdata->dvdd10 = devm_regulator_get(dev, "dvdd10");
 	if (IS_ERR(pdata->dvdd10)) {
-		DRM_ERROR("DVDD10 regulator not found\n");
+		if (PTR_ERR(pdata->dvdd10) != -EPROBE_DEFER)
+			DRM_ERROR("DVDD10 regulator not found\n");
+
 		return PTR_ERR(pdata->dvdd10);
 	}
 
@@ -1332,7 +1334,9 @@
 
 	err = anx78xx_init_pdata(anx78xx);
 	if (err) {
-		DRM_ERROR("Failed to initialize pdata: %d\n", err);
+		if (err != -EPROBE_DEFER)
+			DRM_ERROR("Failed to initialize pdata: %d\n", err);
+
 		return err;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1635,8 +1635,7 @@
 }
 
 struct analogix_dp_device *
-analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
-		 struct analogix_dp_plat_data *plat_data)
+analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct analogix_dp_device *dp;
@@ -1739,22 +1738,30 @@
 					irq_flags, "analogix-dp", dp);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to request irq\n");
-		goto err_disable_pm_runtime;
+		return ERR_PTR(ret);
 	}
 	disable_irq(dp->irq);
 
+	return dp;
+}
+EXPORT_SYMBOL_GPL(analogix_dp_probe);
+
+int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev)
+{
+	int ret;
+
 	dp->drm_dev = drm_dev;
 	dp->encoder = dp->plat_data->encoder;
 
 	dp->aux.name = "DP-AUX";
 	dp->aux.transfer = analogix_dpaux_transfer;
-	dp->aux.dev = &pdev->dev;
+	dp->aux.dev = dp->dev;
 
 	ret = drm_dp_aux_register(&dp->aux);
 	if (ret)
-		return ERR_PTR(ret);
+		return ret;
 
-	pm_runtime_enable(dev);
+	pm_runtime_enable(dp->dev);
 
 	ret = analogix_dp_create_bridge(drm_dev, dp);
 	if (ret) {
@@ -1762,13 +1769,12 @@
 		goto err_disable_pm_runtime;
 	}
 
-	return dp;
+	return 0;
 
 err_disable_pm_runtime:
+	pm_runtime_disable(dp->dev);
 
-	pm_runtime_disable(dev);
-
-	return ERR_PTR(ret);
+	return ret;
 }
 EXPORT_SYMBOL_GPL(analogix_dp_bind);
 
@@ -1785,10 +1791,15 @@
 
 	drm_dp_aux_unregister(&dp->aux);
 	pm_runtime_disable(dp->dev);
-	clk_disable_unprepare(dp->clock);
 }
 EXPORT_SYMBOL_GPL(analogix_dp_unbind);
 
+void analogix_dp_remove(struct analogix_dp_device *dp)
+{
+	clk_disable_unprepare(dp->clock);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_remove);
+
 #ifdef CONFIG_PM
 int analogix_dp_suspend(struct analogix_dp_device *dp)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -295,8 +295,12 @@
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp4028_i2c->dev;
+	int ret;
 
-	ge_b850v3_lvds_init(dev);
+	ret = ge_b850v3_lvds_init(dev);
+
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
 	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
@@ -354,8 +358,12 @@
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp2690_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
 
-	ge_b850v3_lvds_init(dev);
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
 	i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/sil-sii8620.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/sil-sii8620.c
@@ -177,7 +177,7 @@
 
 static u8 sii8620_readb(struct sii8620 *ctx, u16 addr)
 {
-	u8 ret;
+	u8 ret = 0;
 
 	sii8620_read_buf(ctx, addr, &ret, 1);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -36,6 +36,7 @@
 #include "dw-hdmi-cec.h"
 #include "dw-hdmi.h"
 
+#define DDC_CI_ADDR		0x37
 #define DDC_SEGMENT_ADDR	0x30
 
 #define HDMI_EDID_LEN		512
@@ -398,6 +399,15 @@
 	u8 addr = msgs[0].addr;
 	int i, ret = 0;
 
+	if (addr == DDC_CI_ADDR)
+		/*
+		 * The internal I2C controller does not support the multi-byte
+		 * read and write operations needed for DDC/CI.
+		 * TOFIX: Blacklist the DDC/CI address until we filter out
+		 * unsupported I2C operations.
+		 */
+		return -EOPNOTSUPP;
+
 	dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr);
 
 	for (i = 0; i < num; i++) {
@@ -1566,28 +1576,34 @@
 		frame.colorspace = HDMI_COLORSPACE_RGB;
 
 	/* Set up colorimetry */
-	switch (hdmi->hdmi_data.enc_out_encoding) {
-	case V4L2_YCBCR_ENC_601:
-		if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV601)
-			frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
-		else
+	if (!hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format)) {
+		switch (hdmi->hdmi_data.enc_out_encoding) {
+		case V4L2_YCBCR_ENC_601:
+			if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV601)
+				frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
+			else
+				frame.colorimetry = HDMI_COLORIMETRY_ITU_601;
+			frame.extended_colorimetry =
+					HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
+			break;
+		case V4L2_YCBCR_ENC_709:
+			if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV709)
+				frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
+			else
+				frame.colorimetry = HDMI_COLORIMETRY_ITU_709;
+			frame.extended_colorimetry =
+					HDMI_EXTENDED_COLORIMETRY_XV_YCC_709;
+			break;
+		default: /* Carries no data */
 			frame.colorimetry = HDMI_COLORIMETRY_ITU_601;
+			frame.extended_colorimetry =
+					HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
+			break;
+		}
+	} else {
+		frame.colorimetry = HDMI_COLORIMETRY_NONE;
 		frame.extended_colorimetry =
-				HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
-		break;
-	case V4L2_YCBCR_ENC_709:
-		if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV709)
-			frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
-		else
-			frame.colorimetry = HDMI_COLORIMETRY_ITU_709;
-		frame.extended_colorimetry =
-				HDMI_EXTENDED_COLORIMETRY_XV_YCC_709;
-		break;
-	default: /* Carries no data */
-		frame.colorimetry = HDMI_COLORIMETRY_ITU_601;
-		frame.extended_colorimetry =
-				HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
-		break;
+			HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
 	}
 
 	frame.scan_mode = HDMI_SCAN_MODE_NONE;
@@ -2023,7 +2039,7 @@
 
 		/* HDMI Initialization Step E - Configure audio */
 		hdmi_clk_regenerator_update_pixel_clock(hdmi);
-		hdmi_enable_audio_clk(hdmi, true);
+		hdmi_enable_audio_clk(hdmi, hdmi->audio_enable);
 	}
 
 	/* not for DVI mode */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -365,7 +365,6 @@
 	if (lpm)
 		val |= CMD_MODE_ALL_LP;
 
-	dsi_write(dsi, DSI_LPCLK_CTRL, lpm ? 0 : PHY_TXREQUESTCLKHS);
 	dsi_write(dsi, DSI_CMD_MODE_CFG, val);
 }
 
@@ -541,16 +540,22 @@
 static void dw_mipi_dsi_set_mode(struct dw_mipi_dsi *dsi,
 				 unsigned long mode_flags)
 {
+	u32 val;
+
 	dsi_write(dsi, DSI_PWR_UP, RESET);
 
 	if (mode_flags & MIPI_DSI_MODE_VIDEO) {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_VIDEO_MODE);
 		dw_mipi_dsi_video_mode_config(dsi);
-		dsi_write(dsi, DSI_LPCLK_CTRL, PHY_TXREQUESTCLKHS);
 	} else {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_CMD_MODE);
 	}
 
+	val = PHY_TXREQUESTCLKHS;
+	if (dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+		val |= AUTO_CLKLANE_CTRL;
+	dsi_write(dsi, DSI_LPCLK_CTRL, val);
+
 	dsi_write(dsi, DSI_PWR_UP, POWERUP);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/tc358767.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/tc358767.c
@@ -294,7 +294,7 @@
 
 static int tc_aux_wait_busy(struct tc_data *tc)
 {
-	return tc_poll_timeout(tc, DP0_AUXSTATUS, AUX_BUSY, 0, 1000, 100000);
+	return tc_poll_timeout(tc, DP0_AUXSTATUS, AUX_BUSY, 0, 100, 100000);
 }
 
 static int tc_aux_write_data(struct tc_data *tc, const void *data,
@@ -637,7 +637,7 @@
 	if (ret)
 		goto err;
 
-	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 1, 1000);
+	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 100, 100000);
 	if (ret == -ETIMEDOUT) {
 		dev_err(tc->dev, "Timeout waiting for PHY to become ready");
 		return ret;
@@ -861,7 +861,7 @@
 	int ret;
 
 	ret = tc_poll_timeout(tc, DP0_LTSTAT, LT_LOOPDONE,
-			      LT_LOOPDONE, 1, 1000);
+			      LT_LOOPDONE, 500, 100000);
 	if (ret) {
 		dev_err(tc->dev, "Link training timeout waiting for LT_LOOPDONE!\n");
 		return ret;
@@ -934,7 +934,7 @@
 	dp_phy_ctrl &= ~(DP_PHY_RST | PHY_M1_RST | PHY_M0_RST);
 	ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
 
-	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 1, 1000);
+	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 500, 100000);
 	if (ret) {
 		dev_err(dev, "timeout waiting for phy become ready");
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -647,6 +647,12 @@
 				     buf[i]);
 	}
 
+	/* Clear old status bits before start so we don't get confused */
+	regmap_write(pdata->regmap, SN_AUX_CMD_STATUS_REG,
+		     AUX_IRQ_STATUS_NAT_I2C_FAIL |
+		     AUX_IRQ_STATUS_AUX_RPLY_TOUT |
+		     AUX_IRQ_STATUS_AUX_SHORT);
+
 	regmap_write(pdata->regmap, SN_AUX_CMD_REG, request_val | AUX_CMD_SEND);
 
 	ret = regmap_read_poll_timeout(pdata->regmap, SN_AUX_CMD_REG, val,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_atomic_helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_atomic_helper.c
@@ -2948,7 +2948,7 @@
 
 	ret = handle_conflicting_encoders(state, true);
 	if (ret)
-		return ret;
+		goto fail;
 
 	ret = drm_atomic_commit(state);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_client_modeset.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_client_modeset.c
@@ -880,7 +880,8 @@
 	 * depending on the hardware this may require the framebuffer
 	 * to be in a specific tiling format.
 	 */
-	if ((*rotation & DRM_MODE_ROTATE_MASK) != DRM_MODE_ROTATE_180 ||
+	if (((*rotation & DRM_MODE_ROTATE_MASK) != DRM_MODE_ROTATE_0 &&
+	     (*rotation & DRM_MODE_ROTATE_MASK) != DRM_MODE_ROTATE_180) ||
 	    !plane->rotation_property)
 		return false;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_connector.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_connector.c
@@ -27,6 +27,7 @@
 #include <drm/drm_print.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_file.h>
+#include <drm/drm_sysfs.h>
 
 #include <linux/uaccess.h>
 
@@ -511,6 +512,10 @@
 	drm_mode_object_register(connector->dev, &connector->base);
 
 	connector->registration_state = DRM_CONNECTOR_REGISTERED;
+
+	/* Let userspace know we have a new connector */
+	drm_sysfs_hotplug_event(connector->dev);
+
 	goto unlock;
 
 err_debugfs:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_crtc_internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_crtc_internal.h
@@ -216,6 +216,8 @@
 			void *data, struct drm_file *file_priv);
 int drm_mode_getfb(struct drm_device *dev,
 		   void *data, struct drm_file *file_priv);
+int drm_mode_getfb2_ioctl(struct drm_device *dev,
+			  void *data, struct drm_file *file_priv);
 int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
 			   void *data, struct drm_file *file_priv);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_damage_helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_damage_helper.c
@@ -212,8 +212,14 @@
 	drm_for_each_plane(plane, fb->dev) {
 		struct drm_plane_state *plane_state;
 
-		if (plane->state->fb != fb)
+		ret = drm_modeset_lock(&plane->mutex, state->acquire_ctx);
+		if (ret)
+			goto out;
+
+		if (plane->state->fb != fb) {
+			drm_modeset_unlock(&plane->mutex);
 			continue;
+		}
 
 		plane_state = drm_atomic_get_plane_state(state, plane);
 		if (IS_ERR(plane_state)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_debugfs.c
@@ -337,13 +337,13 @@
 
 	buf[len] = '\0';
 
-	if (!strcmp(buf, "on"))
+	if (sysfs_streq(buf, "on"))
 		connector->force = DRM_FORCE_ON;
-	else if (!strcmp(buf, "digital"))
+	else if (sysfs_streq(buf, "digital"))
 		connector->force = DRM_FORCE_ON_DIGITAL;
-	else if (!strcmp(buf, "off"))
+	else if (sysfs_streq(buf, "off"))
 		connector->force = DRM_FORCE_OFF;
-	else if (!strcmp(buf, "unspecified"))
+	else if (sysfs_streq(buf, "unspecified"))
 		connector->force = DRM_FORCE_UNSPECIFIED;
 	else
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_debugfs_crc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_debugfs_crc.c
@@ -140,12 +140,14 @@
 	if (IS_ERR(source))
 		return PTR_ERR(source);
 
-	if (source[len] == '\n')
-		source[len] = '\0';
+	if (source[len - 1] == '\n')
+		source[len - 1] = '\0';
 
 	ret = crtc->funcs->verify_crc_source(crtc, source, &values_cnt);
-	if (ret)
+	if (ret) {
+		kfree(source);
 		return ret;
+	}
 
 	spin_lock_irq(&crc->lock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_dp_aux_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_dp_aux_dev.c
@@ -63,7 +63,7 @@
 
 	mutex_lock(&aux_idr_mutex);
 	aux_dev = idr_find(&aux_idr, index);
-	if (!kref_get_unless_zero(&aux_dev->refcount))
+	if (aux_dev && !kref_get_unless_zero(&aux_dev->refcount))
 		aux_dev = NULL;
 	mutex_unlock(&aux_idr_mutex);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_dp_helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_dp_helper.c
@@ -1302,6 +1302,98 @@
 #undef DEVICE_ID_ANY
 #undef DEVICE_ID
 
+struct edid_quirk {
+	u8 mfg_id[2];
+	u8 prod_id[2];
+	u32 quirks;
+};
+
+#define MFG(first, second) { (first), (second) }
+#define PROD_ID(first, second) { (first), (second) }
+
+/*
+ * Some devices have unreliable OUIDs where they don't set the device ID
+ * correctly, and as a result we need to use the EDID for finding additional
+ * DP quirks in such cases.
+ */
+static const struct edid_quirk edid_quirk_list[] = {
+	/* Optional 4K AMOLED panel in the ThinkPad X1 Extreme 2nd Generation
+	 * only supports DPCD backlight controls
+	 */
+	{ MFG(0x4c, 0x83), PROD_ID(0x41, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/* HP Spectre x360 Convertible 13t-aw100 */
+	{ MFG(0x4c, 0x83), PROD_ID(0x42, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/* HP CML 2020 system */
+	{ MFG(0x4c, 0x83), PROD_ID(0x45, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/*
+	 * Some Dell CML 2020 systems have panels support both AUX and PWM
+	 * backlight control, and some only support AUX backlight control. All
+	 * said panels start up in AUX mode by default, and we don't have any
+	 * support for disabling HDR mode on these panels which would be
+	 * required to switch to PWM backlight control mode (plus, I'm not
+	 * even sure we want PWM backlight controls over DPCD backlight
+	 * controls anyway...). Until we have a better way of detecting these,
+	 * force DPCD backlight mode on all of them.
+	 */
+	{ MFG(0x06, 0xaf), PROD_ID(0x8c, 0xcd), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x06, 0xaf), PROD_ID(0x9b, 0x32), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x06, 0xaf), PROD_ID(0xeb, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x30, 0xe4), PROD_ID(0x61, 0x06), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4d, 0x10), PROD_ID(0xc7, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4d, 0x10), PROD_ID(0xe6, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4c, 0x83), PROD_ID(0x47, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4c, 0x83), PROD_ID(0x4f, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/*
+	 * Some HP ZBook Studio G7 systems have panels support and relies on
+	 * PSR being enabled.
+	 */
+	{ MFG(0x0d, 0xae), PROD_ID(0x19, 0x15), BIT(DP_QUIRK_FORCE_PSR_CHIP_DEFAULT) },
+};
+
+#undef MFG
+#undef PROD_ID
+
+/**
+ * drm_dp_get_edid_quirks() - Check the EDID of a DP device to find additional
+ * DP-specific quirks
+ * @edid: The EDID to check
+ *
+ * While OUIDs are meant to be used to recognize a DisplayPort device, a lot
+ * of manufacturers don't seem to like following standards and neglect to fill
+ * the dev-ID in, making it impossible to only use OUIDs for determining
+ * quirks in some cases. This function can be used to check the EDID and look
+ * up any additional DP quirks. The bits returned by this function correspond
+ * to the quirk bits in &drm_dp_quirk.
+ *
+ * Returns: a bitmask of quirks, if any. The driver can check this using
+ * drm_dp_has_quirk().
+ */
+u32 drm_dp_get_edid_quirks(const struct edid *edid)
+{
+	const struct edid_quirk *quirk;
+	u32 quirks = 0;
+	int i;
+
+	if (!edid)
+		return 0;
+
+	for (i = 0; i < ARRAY_SIZE(edid_quirk_list); i++) {
+		quirk = &edid_quirk_list[i];
+		if (memcmp(quirk->mfg_id, edid->mfg_id,
+			   sizeof(edid->mfg_id)) == 0 &&
+		    memcmp(quirk->prod_id, edid->prod_code,
+			   sizeof(edid->prod_code)) == 0)
+			quirks |= quirk->quirks;
+	}
+
+	DRM_DEBUG_KMS("DP sink: EDID mfg %*phD prod-ID %*phD quirks: 0x%04x\n",
+		      (int)sizeof(edid->mfg_id), edid->mfg_id,
+		      (int)sizeof(edid->prod_code), edid->prod_code, quirks);
+
+	return quirks;
+}
+EXPORT_SYMBOL(drm_dp_get_edid_quirks);
+
 /**
  * drm_dp_read_desc - read sink/branch descriptor from DPCD
  * @aux: DisplayPort AUX channel
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_dp_mst_topology.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -27,6 +27,7 @@
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/seq_file.h>
+#include <linux/iopoll.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -339,7 +340,7 @@
 			memcpy(&buf[idx], req->u.i2c_read.transactions[i].bytes, req->u.i2c_read.transactions[i].num_bytes);
 			idx += req->u.i2c_read.transactions[i].num_bytes;
 
-			buf[idx] = (req->u.i2c_read.transactions[i].no_stop_bit & 0x1) << 5;
+			buf[idx] = (req->u.i2c_read.transactions[i].no_stop_bit & 0x1) << 4;
 			buf[idx] |= (req->u.i2c_read.transactions[i].i2c_transaction_delay & 0xf);
 			idx++;
 		}
@@ -2465,9 +2466,11 @@
 			drm_dp_mst_topology_put_port(port);
 	}
 
-	for (i = 0; i < mgr->max_payloads; i++) {
-		if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL)
+	for (i = 0; i < mgr->max_payloads; /* do nothing */) {
+		if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) {
+			i++;
 			continue;
+		}
 
 		DRM_DEBUG_KMS("removing payload %d\n", i);
 		for (j = i; j < mgr->max_payloads - 1; j++) {
@@ -2694,6 +2697,7 @@
 	int ret = 0;
 	struct drm_dp_mst_branch *mstb = NULL;
 
+	mutex_lock(&mgr->payload_lock);
 	mutex_lock(&mgr->lock);
 	if (mst_state == mgr->mst_state)
 		goto out_unlock;
@@ -2752,7 +2756,10 @@
 		/* this can fail if the device is gone */
 		drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, 0);
 		ret = 0;
-		memset(mgr->payloads, 0, mgr->max_payloads * sizeof(struct drm_dp_payload));
+		memset(mgr->payloads, 0,
+		       mgr->max_payloads * sizeof(mgr->payloads[0]));
+		memset(mgr->proposed_vcpis, 0,
+		       mgr->max_payloads * sizeof(mgr->proposed_vcpis[0]));
 		mgr->payload_mask = 0;
 		set_bit(0, &mgr->payload_mask);
 		mgr->vcpi_mask = 0;
@@ -2760,6 +2767,7 @@
 
 out_unlock:
 	mutex_unlock(&mgr->lock);
+	mutex_unlock(&mgr->payload_lock);
 	if (mstb)
 		drm_dp_mst_topology_put_mstb(mstb);
 	return ret;
@@ -3361,11 +3369,11 @@
 {
 	int ret;
 
-	port = drm_dp_mst_topology_get_port_validated(mgr, port);
-	if (!port)
+	if (slots < 0)
 		return false;
 
-	if (slots < 0)
+	port = drm_dp_mst_topology_get_port_validated(mgr, port);
+	if (!port)
 		return false;
 
 	if (port->vcpi.vcpi > 0) {
@@ -3381,6 +3389,7 @@
 	if (ret) {
 		DRM_DEBUG_KMS("failed to init vcpi slots=%d max=63 ret=%d\n",
 			      DIV_ROUND_UP(pbn, mgr->pbn_div), ret);
+		drm_dp_mst_topology_put_port(port);
 		goto out;
 	}
 	DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n",
@@ -3491,6 +3500,17 @@
 	return ret;
 }
 
+static int do_get_act_status(struct drm_dp_aux *aux)
+{
+	int ret;
+	u8 status;
+
+	ret = drm_dp_dpcd_readb(aux, DP_PAYLOAD_TABLE_UPDATE_STATUS, &status);
+	if (ret < 0)
+		return ret;
+
+	return status;
+}
 
 /**
  * drm_dp_check_act_status() - Check ACT handled status.
@@ -3500,33 +3520,29 @@
  */
 int drm_dp_check_act_status(struct drm_dp_mst_topology_mgr *mgr)
 {
-	u8 status;
-	int ret;
-	int count = 0;
-
-	do {
-		ret = drm_dp_dpcd_readb(mgr->aux, DP_PAYLOAD_TABLE_UPDATE_STATUS, &status);
-
-		if (ret < 0) {
-			DRM_DEBUG_KMS("failed to read payload table status %d\n", ret);
-			goto fail;
-		}
-
-		if (status & DP_PAYLOAD_ACT_HANDLED)
-			break;
-		count++;
-		udelay(100);
-
-	} while (count < 30);
+	/*
+	 * There doesn't seem to be any recommended retry count or timeout in
+	 * the MST specification. Since some hubs have been observed to take
+	 * over 1 second to update their payload allocations under certain
+	 * conditions, we use a rather large timeout value.
+	 */
+	const int timeout_ms = 3000;
+	int ret, status;
 
-	if (!(status & DP_PAYLOAD_ACT_HANDLED)) {
-		DRM_DEBUG_KMS("failed to get ACT bit %d after %d retries\n", status, count);
-		ret = -EINVAL;
-		goto fail;
+	ret = readx_poll_timeout(do_get_act_status, mgr->aux, status,
+				 status & DP_PAYLOAD_ACT_HANDLED || status < 0,
+				 200, timeout_ms * USEC_PER_MSEC);
+	if (ret < 0 && status >= 0) {
+		DRM_DEBUG_KMS("Failed to get ACT after %dms, last status: %02x\n",
+			      timeout_ms, status);
+		return -EINVAL;
+	} else if (status < 0) {
+		DRM_DEBUG_KMS("Failed to read payload table status: %d\n",
+			      status);
+		return status;
 	}
+
 	return 0;
-fail:
-	return ret;
 }
 EXPORT_SYMBOL(drm_dp_check_act_status);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_edid.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_edid.c
@@ -191,10 +191,11 @@
 	{ "HVR", 0xaa01, EDID_QUIRK_NON_DESKTOP },
 	{ "HVR", 0xaa02, EDID_QUIRK_NON_DESKTOP },
 
-	/* Oculus Rift DK1, DK2, and CV1 VR Headsets */
+	/* Oculus Rift DK1, DK2, CV1 and Rift S VR Headsets */
 	{ "OVR", 0x0001, EDID_QUIRK_NON_DESKTOP },
 	{ "OVR", 0x0003, EDID_QUIRK_NON_DESKTOP },
 	{ "OVR", 0x0004, EDID_QUIRK_NON_DESKTOP },
+	{ "OVR", 0x0012, EDID_QUIRK_NON_DESKTOP },
 
 	/* Windows Mixed Reality Headsets */
 	{ "ACR", 0x7fce, EDID_QUIRK_NON_DESKTOP },
@@ -3722,7 +3723,7 @@
 		if (*end < 4 || *end > 127)
 			return -ERANGE;
 	} else {
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	}
 
 	return 0;
@@ -4191,7 +4192,7 @@
 
 	if (cea_revision(cea) < 3) {
 		DRM_DEBUG_KMS("SAD: wrong CEA revision\n");
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	}
 
 	if (cea_db_offsets(cea, &start, &end)) {
@@ -4252,7 +4253,7 @@
 
 	if (cea_revision(cea) < 3) {
 		DRM_DEBUG_KMS("SAD: wrong CEA revision\n");
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	}
 
 	if (cea_db_offsets(cea, &start, &end)) {
@@ -4743,7 +4744,7 @@
 	struct drm_display_mode *mode;
 	unsigned pixel_clock = (timings->pixel_clock[0] |
 				(timings->pixel_clock[1] << 8) |
-				(timings->pixel_clock[2] << 16));
+				(timings->pixel_clock[2] << 16)) + 1;
 	unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
 	unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
 	unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_encoder_slave.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_encoder_slave.c
@@ -84,7 +84,7 @@
 
 	err = encoder_drv->encoder_init(client, dev, encoder);
 	if (err)
-		goto fail_unregister;
+		goto fail_module_put;
 
 	if (info->platform_data)
 		encoder->slave_funcs->set_config(&encoder->base,
@@ -92,9 +92,10 @@
 
 	return 0;
 
+fail_module_put:
+	module_put(module);
 fail_unregister:
 	i2c_unregister_device(client);
-	module_put(module);
 fail:
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_fb_helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_fb_helper.c
@@ -390,7 +390,11 @@
 	unsigned int y;
 
 	for (y = clip->y1; y < clip->y2; y++) {
-		memcpy(dst, src, len);
+		if (!fb_helper->dev->mode_config.fbdev_use_iomem)
+			memcpy(dst, src, len);
+		else
+			memcpy_toio((void __iomem *)dst, src, len);
+
 		src += fb->pitches[0];
 		dst += fb->pitches[0];
 	}
@@ -961,11 +965,15 @@
 	drm_modeset_lock_all(fb_helper->dev);
 	drm_client_for_each_modeset(modeset, &fb_helper->client) {
 		crtc = modeset->crtc;
-		if (!crtc->funcs->gamma_set || !crtc->gamma_size)
-			return -EINVAL;
+		if (!crtc->funcs->gamma_set || !crtc->gamma_size) {
+			ret = -EINVAL;
+			goto out;
+		}
 
-		if (cmap->start + cmap->len > crtc->gamma_size)
-			return -EINVAL;
+		if (cmap->start + cmap->len > crtc->gamma_size) {
+			ret = -EINVAL;
+			goto out;
+		}
 
 		r = crtc->gamma_store;
 		g = r + crtc->gamma_size;
@@ -978,8 +986,9 @@
 		ret = crtc->funcs->gamma_set(crtc, r, g, b,
 					     crtc->gamma_size, NULL);
 		if (ret)
-			return ret;
+			goto out;
 	}
+out:
 	drm_modeset_unlock_all(fb_helper->dev);
 
 	return ret;
@@ -1320,7 +1329,7 @@
 	 * Changes struct fb_var_screeninfo are currently not pushed back
 	 * to KMS, hence fail if different settings are requested.
 	 */
-	if (var->bits_per_pixel != fb->format->cpp[0] * 8 ||
+	if (var->bits_per_pixel > fb->format->cpp[0] * 8 ||
 	    var->xres > fb->width || var->yres > fb->height ||
 	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
 		DRM_DEBUG("fb requested width/height/bpp can't fit in current fb "
@@ -1346,6 +1355,11 @@
 	}
 
 	/*
+	 * Likewise, bits_per_pixel should be rounded up to a supported value.
+	 */
+	var->bits_per_pixel = fb->format->cpp[0] * 8;
+
+	/*
 	 * drm fbdev emulation doesn't support changing the pixel format at all,
 	 * so reject all pixel format changing requests.
 	 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_framebuffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_framebuffer.c
@@ -31,6 +31,7 @@
 #include <drm/drm_file.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_framebuffer.h>
+#include <drm/drm_gem.h>
 #include <drm/drm_print.h>
 #include <drm/drm_util.h>
 
@@ -548,7 +549,128 @@
 
 out:
 	drm_framebuffer_put(fb);
+	return ret;
+}
 
+/**
+ * drm_mode_getfb2 - get extended FB info
+ * @dev: drm device for the ioctl
+ * @data: data pointer for the ioctl
+ * @file_priv: drm file for the ioctl call
+ *
+ * Lookup the FB given its ID and return info about it.
+ *
+ * Called by the user via ioctl.
+ *
+ * Returns:
+ * Zero on success, negative errno on failure.
+ */
+int drm_mode_getfb2_ioctl(struct drm_device *dev,
+			  void *data, struct drm_file *file_priv)
+{
+	struct drm_mode_fb_cmd2 *r = data;
+	struct drm_framebuffer *fb;
+	unsigned int i;
+	int ret;
+
+	if (!drm_core_check_feature(dev, DRIVER_MODESET))
+		return -EINVAL;
+
+	fb = drm_framebuffer_lookup(dev, file_priv, r->fb_id);
+	if (!fb)
+		return -ENOENT;
+
+	/* For multi-plane framebuffers, we require the driver to place the
+	 * GEM objects directly in the drm_framebuffer. For single-plane
+	 * framebuffers, we can fall back to create_handle.
+	 */
+	if (!fb->obj[0] &&
+	    (fb->format->num_planes > 1 || !fb->funcs->create_handle)) {
+		ret = -ENODEV;
+		goto out;
+	}
+
+	r->height = fb->height;
+	r->width = fb->width;
+	r->pixel_format = fb->format->format;
+
+	r->flags = 0;
+	if (dev->mode_config.allow_fb_modifiers)
+		r->flags |= DRM_MODE_FB_MODIFIERS;
+
+	for (i = 0; i < ARRAY_SIZE(r->handles); i++) {
+		r->handles[i] = 0;
+		r->pitches[i] = 0;
+		r->offsets[i] = 0;
+		r->modifier[i] = 0;
+	}
+
+	for (i = 0; i < fb->format->num_planes; i++) {
+		r->pitches[i] = fb->pitches[i];
+		r->offsets[i] = fb->offsets[i];
+		if (dev->mode_config.allow_fb_modifiers)
+			r->modifier[i] = fb->modifier;
+	}
+
+	/* GET_FB2() is an unprivileged ioctl so we must not return a
+	 * buffer-handle to non master/root processes! To match GET_FB()
+	 * just return invalid handles (0) for non masters/root
+	 * rather than making GET_FB2() privileged.
+	 */
+	if (!drm_is_current_master(file_priv) && !capable(CAP_SYS_ADMIN)) {
+		ret = 0;
+		goto out;
+	}
+
+	for (i = 0; i < fb->format->num_planes; i++) {
+		int j;
+
+		/* If we reuse the same object for multiple planes, also
+		 * return the same handle.
+		 */
+		for (j = 0; j < i; j++) {
+			if (fb->obj[i] == fb->obj[j]) {
+				r->handles[i] = r->handles[j];
+				break;
+			}
+		}
+
+		if (r->handles[i])
+			continue;
+
+		if (fb->obj[i]) {
+			ret = drm_gem_handle_create(file_priv, fb->obj[i],
+						    &r->handles[i]);
+		} else {
+			WARN_ON(i > 0);
+			ret = fb->funcs->create_handle(fb, file_priv,
+						       &r->handles[i]);
+		}
+
+		if (ret != 0)
+			goto out;
+	}
+
+out:
+	if (ret != 0) {
+		/* Delete any previously-created handles on failure. */
+		for (i = 0; i < ARRAY_SIZE(r->handles); i++) {
+			int j;
+
+			if (r->handles[i])
+				drm_gem_handle_delete(file_priv, r->handles[i]);
+
+			/* Zero out any handles identical to the one we just
+			 * deleted.
+			 */
+			for (j = i + 1; j < ARRAY_SIZE(r->handles); j++) {
+				if (r->handles[j] == r->handles[i])
+					r->handles[j] = 0;
+			}
+		}
+	}
+
+	drm_framebuffer_put(fb);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_gem.c
@@ -710,6 +710,8 @@
 	if (!objs)
 		return -ENOMEM;
 
+	*objs_out = objs;
+
 	handles = kvmalloc_array(count, sizeof(u32), GFP_KERNEL);
 	if (!handles) {
 		ret = -ENOMEM;
@@ -723,8 +725,6 @@
 	}
 
 	ret = objects_lookup(filp, handles, count, objs);
-	*objs_out = objs;
-
 out:
 	kvfree(handles);
 	return ret;
@@ -872,9 +872,6 @@
  * @file_priv: drm file-private structure
  *
  * Open an object using the global name, returning a handle and the size.
- *
- * This handle (of course) holds a reference to the object, so the object
- * will not go away until the handle is deleted.
  */
 int
 drm_gem_open_ioctl(struct drm_device *dev, void *data,
@@ -899,14 +896,15 @@
 
 	/* drm_gem_handle_create_tail unlocks dev->object_name_lock. */
 	ret = drm_gem_handle_create_tail(file_priv, obj, &handle);
-	drm_gem_object_put_unlocked(obj);
 	if (ret)
-		return ret;
+		goto err;
 
 	args->handle = handle;
 	args->size = obj->size;
 
-	return 0;
+err:
+	drm_gem_object_put_unlocked(obj);
+	return ret;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -474,14 +474,28 @@
 	struct drm_gem_object *obj = vma->vm_private_data;
 	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 	loff_t num_pages = obj->size >> PAGE_SHIFT;
+	vm_fault_t ret;
 	struct page *page;
+	pgoff_t page_offset;
 
-	if (vmf->pgoff >= num_pages || WARN_ON_ONCE(!shmem->pages))
-		return VM_FAULT_SIGBUS;
+	/* We don't use vmf->pgoff since that has the fake offset */
+	page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
 
-	page = shmem->pages[vmf->pgoff];
+	mutex_lock(&shmem->pages_lock);
 
-	return vmf_insert_page(vma, vmf->address, page);
+	if (page_offset >= num_pages ||
+	    WARN_ON_ONCE(!shmem->pages) ||
+	    shmem->madv < 0) {
+		ret = VM_FAULT_SIGBUS;
+	} else {
+		page = shmem->pages[page_offset];
+
+		ret = vmf_insert_page(vma, vmf->address, page);
+	}
+
+	mutex_unlock(&shmem->pages_lock);
+
+	return ret;
 }
 
 static void drm_gem_shmem_vm_open(struct vm_area_struct *vma)
@@ -549,9 +563,6 @@
 	vma->vm_flags &= ~VM_PFNMAP;
 	vma->vm_flags |= VM_MIXEDMAP;
 
-	/* Remove the fake offset */
-	vma->vm_pgoff -= drm_vma_node_start(&shmem->base.vma_node);
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(drm_gem_shmem_mmap);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_ioc32.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_ioc32.c
@@ -99,6 +99,8 @@
 	if (copy_from_user(&v32, (void __user *)arg, sizeof(v32)))
 		return -EFAULT;
 
+	memset(&v, 0, sizeof(v));
+
 	v = (struct drm_version) {
 		.name_len = v32.name_len,
 		.name = compat_ptr(v32.name),
@@ -137,6 +139,9 @@
 
 	if (copy_from_user(&uq32, (void __user *)arg, sizeof(uq32)))
 		return -EFAULT;
+
+	memset(&uq, 0, sizeof(uq));
+
 	uq = (struct drm_unique){
 		.unique_len = uq32.unique_len,
 		.unique = compat_ptr(uq32.unique),
@@ -265,6 +270,8 @@
 	if (copy_from_user(&c32, argp, sizeof(c32)))
 		return -EFAULT;
 
+	memset(&client, 0, sizeof(client));
+
 	client.idx = c32.idx;
 
 	err = drm_ioctl_kernel(file, drm_getclient, &client, 0);
@@ -850,6 +857,8 @@
 	if (copy_from_user(&req32, argp, sizeof(req32)))
 		return -EFAULT;
 
+	memset(&req, 0, sizeof(req));
+
 	req.request.type = req32.request.type;
 	req.request.sequence = req32.request.sequence;
 	req.request.signal = req32.request.signal;
@@ -887,6 +896,8 @@
 	struct drm_mode_fb_cmd2 req64;
 	int err;
 
+	memset(&req64, 0, sizeof(req64));
+
 	if (copy_from_user(&req64, argp,
 			   offsetof(drm_mode_fb_cmd232_t, modifier)))
 		return -EFAULT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_ioctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_ioctl.c
@@ -671,6 +671,7 @@
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_SETPROPERTY, drm_connector_property_set_ioctl, DRM_MASTER),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETPROPBLOB, drm_mode_getblob_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETFB, drm_mode_getfb, 0),
+	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETFB2, drm_mode_getfb2_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, drm_mode_addfb_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB2, drm_mode_addfb2_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb_ioctl, 0),
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_lease.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_lease.c
@@ -542,10 +542,12 @@
 	}
 
 	DRM_DEBUG_LEASE("Creating lease\n");
+	/* lessee will take the ownership of leases */
 	lessee = drm_lease_create(lessor, &leases);
 
 	if (IS_ERR(lessee)) {
 		ret = PTR_ERR(lessee);
+		idr_destroy(&leases);
 		goto out_leases;
 	}
 
@@ -580,7 +582,6 @@
 
 out_leases:
 	put_unused_fd(fd);
-	idr_destroy(&leases);
 
 	DRM_DEBUG_LEASE("drm_mode_create_lease_ioctl failed: %d\n", ret);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_mipi_dbi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_mipi_dbi.c
@@ -367,9 +367,9 @@
 	memset(dbidev->tx_buf, 0, len);
 
 	mipi_dbi_command(dbi, MIPI_DCS_SET_COLUMN_ADDRESS, 0, 0,
-			 (width >> 8) & 0xFF, (width - 1) & 0xFF);
+			 ((width - 1) >> 8) & 0xFF, (width - 1) & 0xFF);
 	mipi_dbi_command(dbi, MIPI_DCS_SET_PAGE_ADDRESS, 0, 0,
-			 (height >> 8) & 0xFF, (height - 1) & 0xFF);
+			 ((height - 1) >> 8) & 0xFF, (height - 1) & 0xFF);
 	mipi_dbi_command_buf(dbi, MIPI_DCS_WRITE_MEMORY_START,
 			     (u8 *)dbidev->tx_buf, len);
 
@@ -937,7 +937,7 @@
 			}
 		}
 
-		tr.len = chunk;
+		tr.len = chunk * 2;
 		len -= chunk;
 
 		ret = spi_sync(spi, &m);
@@ -955,7 +955,7 @@
 	int ret;
 
 	if (mipi_dbi_command_is_read(dbi, *cmd))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	MIPI_DBI_DEBUG_COMMAND(*cmd, parameters, num);
 
@@ -1187,8 +1187,7 @@
 	struct mipi_dbi_dev *dbidev = m->private;
 	u8 val, cmd = 0, parameters[64];
 	char *buf, *pos, *token;
-	unsigned int i;
-	int ret, idx;
+	int i, ret, idx;
 
 	if (!drm_dev_enter(&dbidev->drm, &idx))
 		return -ENODEV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_mipi_dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_mipi_dsi.c
@@ -1029,11 +1029,11 @@
  */
 int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline)
 {
-	u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, scanline >> 8,
-			  scanline & 0xff };
+	u8 payload[2] = { scanline >> 8, scanline & 0xff };
 	ssize_t err;
 
-	err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_TEAR_SCANLINE, payload,
+				 sizeof(payload));
 	if (err < 0)
 		return err;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_modes.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_modes.c
@@ -1672,6 +1672,13 @@
 		}
 	}
 
+	if (!(rotation & DRM_MODE_ROTATE_MASK))
+		rotation |= DRM_MODE_ROTATE_0;
+
+	/* Make sure there is exactly one rotation defined */
+	if (!is_power_of_2(rotation & DRM_MODE_ROTATE_MASK))
+		return -EINVAL;
+
 	mode->rotation_reflection = rotation;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_panel_orientation_quirks.c
@@ -30,12 +30,6 @@
 	int orientation;
 };
 
-static const struct drm_dmi_panel_orientation_data acer_s1003 = {
-	.width = 800,
-	.height = 1280,
-	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
-};
-
 static const struct drm_dmi_panel_orientation_data asus_t100ha = {
 	.width = 800,
 	.height = 1280,
@@ -114,13 +108,25 @@
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"),
 		},
-		.driver_data = (void *)&acer_s1003,
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* Asus T100HA */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100HAN"),
 		},
 		.driver_data = (void *)&asus_t100ha,
+	}, {	/* Asus T101HA */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T101HA"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Asus T103HAF */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* GPD MicroPC (generic strings, also match on bios date) */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"),
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_pci.c
@@ -51,8 +51,6 @@
 drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align)
 {
 	drm_dma_handle_t *dmah;
-	unsigned long addr;
-	size_t sz;
 
 	/* pci_alloc_consistent only guarantees alignment to the smallest
 	 * PAGE_SIZE order which is greater than or equal to the requested size.
@@ -68,20 +66,13 @@
 	dmah->size = size;
 	dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size,
 					 &dmah->busaddr,
-					 GFP_KERNEL | __GFP_COMP);
+					 GFP_KERNEL);
 
 	if (dmah->vaddr == NULL) {
 		kfree(dmah);
 		return NULL;
 	}
 
-	/* XXX - Is virt_to_page() legal for consistent mem? */
-	/* Reserve */
-	for (addr = (unsigned long)dmah->vaddr, sz = size;
-	     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {
-		SetPageReserved(virt_to_page((void *)addr));
-	}
-
 	return dmah;
 }
 
@@ -94,19 +85,9 @@
  */
 void __drm_legacy_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah)
 {
-	unsigned long addr;
-	size_t sz;
-
-	if (dmah->vaddr) {
-		/* XXX - Is virt_to_page() legal for consistent mem? */
-		/* Unreserve */
-		for (addr = (unsigned long)dmah->vaddr, sz = dmah->size;
-		     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {
-			ClearPageReserved(virt_to_page((void *)addr));
-		}
+	if (dmah->vaddr)
 		dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr,
 				  dmah->busaddr);
-	}
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_property.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_property.c
@@ -561,7 +561,7 @@
 	struct drm_property_blob *blob;
 	int ret;
 
-	if (!length || length > ULONG_MAX - sizeof(struct drm_property_blob))
+	if (!length || length > INT_MAX - sizeof(struct drm_property_blob))
 		return ERR_PTR(-EINVAL);
 
 	blob = kvzalloc(sizeof(struct drm_property_blob)+length, GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_rect.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_rect.c
@@ -54,7 +54,12 @@
 
 static u32 clip_scaled(u32 src, u32 dst, u32 clip)
 {
-	u64 tmp = mul_u32_u32(src, dst - clip);
+	u64 tmp;
+
+	if (dst == 0)
+		return 0;
+
+	tmp = mul_u32_u32(src, dst - clip);
 
 	/*
 	 * Round toward 1.0 when clipping so that we don't accidentally
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_syncobj.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_syncobj.c
@@ -326,19 +326,18 @@
 		return -ENOENT;
 
 	*fence = drm_syncobj_fence_get(syncobj);
-	drm_syncobj_put(syncobj);
 
 	if (*fence) {
 		ret = dma_fence_chain_find_seqno(fence, point);
 		if (!ret)
-			return 0;
+			goto out;
 		dma_fence_put(*fence);
 	} else {
 		ret = -EINVAL;
 	}
 
 	if (!(flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT))
-		return ret;
+		goto out;
 
 	memset(&wait, 0, sizeof(wait));
 	wait.task = current;
@@ -370,6 +369,9 @@
 	if (wait.node.next)
 		drm_syncobj_remove_wait(syncobj, &wait);
 
+out:
+	drm_syncobj_put(syncobj);
+
 	return ret;
 }
 EXPORT_SYMBOL(drm_syncobj_find_fence);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_sysfs.c
@@ -293,9 +293,6 @@
 		return PTR_ERR(connector->kdev);
 	}
 
-	/* Let userspace know we have a new connector */
-	drm_sysfs_hotplug_event(dev);
-
 	if (connector->ddc)
 		return sysfs_create_link(&connector->kdev->kobj,
 				 &connector->ddc->dev.kobj, "ddc");
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/drm_vblank.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/drm_vblank.c
@@ -1581,7 +1581,7 @@
 	unsigned int flags, pipe, high_pipe;
 
 	if (!dev->irq_enabled)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	if (vblwait->request.type & _DRM_VBLANK_SIGNAL)
 		return -EINVAL;
@@ -1838,7 +1838,7 @@
 		return -EOPNOTSUPP;
 
 	if (!dev->irq_enabled)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	crtc = drm_crtc_find(dev, file_priv, get_seq->crtc_id);
 	if (!crtc)
@@ -1896,7 +1896,7 @@
 		return -EOPNOTSUPP;
 
 	if (!dev->irq_enabled)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	crtc = drm_crtc_find(dev, file_priv, queue_seq->crtc_id);
 	if (!crtc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_buffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_buffer.c
@@ -12,6 +12,7 @@
 
 #include "common.xml.h"
 #include "state.xml.h"
+#include "state_blt.xml.h"
 #include "state_hi.xml.h"
 #include "state_3d.xml.h"
 #include "cmdstream.xml.h"
@@ -233,6 +234,8 @@
 	struct etnaviv_cmdbuf *buffer = &gpu->buffer;
 	unsigned int waitlink_offset = buffer->user_size - 16;
 	u32 link_target, flush = 0;
+	bool has_blt = !!(gpu->identity.minor_features5 &
+			  chipMinorFeatures5_BLT_ENGINE);
 
 	lockdep_assert_held(&gpu->lock);
 
@@ -248,16 +251,38 @@
 	if (flush) {
 		unsigned int dwords = 7;
 
+		if (has_blt)
+			dwords += 10;
+
 		link_target = etnaviv_buffer_reserve(gpu, buffer, dwords);
 
 		CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
 		CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
+		if (has_blt) {
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+			CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+		}
 		CMD_LOAD_STATE(buffer, VIVS_GL_FLUSH_CACHE, flush);
-		if (gpu->exec_state == ETNA_PIPE_3D)
-			CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
-				       VIVS_TS_FLUSH_CACHE_FLUSH);
+		if (gpu->exec_state == ETNA_PIPE_3D) {
+			if (has_blt) {
+				CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+				CMD_LOAD_STATE(buffer, VIVS_BLT_SET_COMMAND, 0x1);
+				CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+			} else {
+				CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
+					       VIVS_TS_FLUSH_CACHE_FLUSH);
+			}
+		}
 		CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
 		CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
+		if (has_blt) {
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+			CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+		}
 		CMD_END(buffer);
 
 		etnaviv_buffer_replace_wait(buffer, waitlink_offset,
@@ -323,6 +348,8 @@
 	bool switch_mmu_context = gpu->mmu_context != mmu_context;
 	unsigned int new_flush_seq = READ_ONCE(gpu->mmu_context->flush_seq);
 	bool need_flush = switch_mmu_context || gpu->flush_seq != new_flush_seq;
+	bool has_blt = !!(gpu->identity.minor_features5 &
+			  chipMinorFeatures5_BLT_ENGINE);
 
 	lockdep_assert_held(&gpu->lock);
 
@@ -433,6 +460,15 @@
 	 * 2 semaphore stall + 1 event + 1 wait + 1 link.
 	 */
 	return_dwords = 7;
+
+	/*
+	 * When the BLT engine is present we need 6 more dwords in the return
+	 * target: 3 enable/flush/disable + 4 enable/semaphore stall/disable,
+	 * but we don't need the normal TS flush state.
+	 */
+	if (has_blt)
+		return_dwords += 6;
+
 	return_target = etnaviv_buffer_reserve(gpu, buffer, return_dwords);
 	CMD_LINK(cmdbuf, return_dwords, return_target);
 
@@ -447,11 +483,25 @@
 		CMD_LOAD_STATE(buffer, VIVS_GL_FLUSH_CACHE,
 				       VIVS_GL_FLUSH_CACHE_DEPTH |
 				       VIVS_GL_FLUSH_CACHE_COLOR);
-		CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
-				       VIVS_TS_FLUSH_CACHE_FLUSH);
+		if (has_blt) {
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_SET_COMMAND, 0x1);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+		} else {
+			CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
+					       VIVS_TS_FLUSH_CACHE_FLUSH);
+		}
 	}
 	CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
 	CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
+
+	if (has_blt) {
+		CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+		CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+		CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+		CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+	}
+
 	CMD_LOAD_STATE(buffer, VIVS_GL_EVENT, VIVS_GL_EVENT_EVENT_ID(event) |
 		       VIVS_GL_EVENT_FROM_PE);
 	CMD_WAIT(buffer);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -240,8 +240,10 @@
 		}
 
 		if ((submit->flags & ETNA_SUBMIT_SOFTPIN) &&
-		     submit->bos[i].va != mapping->iova)
+		     submit->bos[i].va != mapping->iova) {
+			etnaviv_gem_mapping_unreference(mapping);
 			return -EINVAL;
+		}
 
 		atomic_inc(&etnaviv_obj->gpu_active);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -713,7 +713,7 @@
 	ret = pm_runtime_get_sync(gpu->dev);
 	if (ret < 0) {
 		dev_err(gpu->dev, "Failed to enable GPU power domain\n");
-		return ret;
+		goto pm_put;
 	}
 
 	etnaviv_hw_identify(gpu);
@@ -802,6 +802,7 @@
 
 fail:
 	pm_runtime_mark_last_busy(gpu->dev);
+pm_put:
 	pm_runtime_put_autosuspend(gpu->dev);
 
 	return ret;
@@ -842,7 +843,7 @@
 
 	ret = pm_runtime_get_sync(gpu->dev);
 	if (ret < 0)
-		return ret;
+		goto pm_put;
 
 	dma_lo = gpu_read(gpu, VIVS_FE_DMA_LOW);
 	dma_hi = gpu_read(gpu, VIVS_FE_DMA_HIGH);
@@ -965,6 +966,7 @@
 	ret = 0;
 
 	pm_runtime_mark_last_busy(gpu->dev);
+pm_put:
 	pm_runtime_put_autosuspend(gpu->dev);
 
 	return ret;
@@ -978,7 +980,7 @@
 	dev_err(gpu->dev, "recover hung GPU!\n");
 
 	if (pm_runtime_get_sync(gpu->dev) < 0)
-		return;
+		goto pm_put;
 
 	mutex_lock(&gpu->lock);
 
@@ -997,6 +999,7 @@
 
 	mutex_unlock(&gpu->lock);
 	pm_runtime_mark_last_busy(gpu->dev);
+pm_put:
 	pm_runtime_put_autosuspend(gpu->dev);
 }
 
@@ -1269,8 +1272,10 @@
 
 	if (!submit->runtime_resumed) {
 		ret = pm_runtime_get_sync(gpu->dev);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put_noidle(gpu->dev);
 			return NULL;
+		}
 		submit->runtime_resumed = true;
 	}
 
@@ -1287,6 +1292,7 @@
 	ret = event_alloc(gpu, nr_events, event);
 	if (ret) {
 		DRM_ERROR("no free events\n");
+		pm_runtime_put_noidle(gpu->dev);
 		return NULL;
 	}
 
@@ -1457,7 +1463,7 @@
 	if (gpu->clk_bus) {
 		ret = clk_prepare_enable(gpu->clk_bus);
 		if (ret)
-			return ret;
+			goto disable_clk_reg;
 	}
 
 	if (gpu->clk_core) {
@@ -1480,6 +1486,9 @@
 disable_clk_bus:
 	if (gpu->clk_bus)
 		clk_disable_unprepare(gpu->clk_bus);
+disable_clk_reg:
+	if (gpu->clk_reg)
+		clk_disable_unprepare(gpu->clk_reg);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
@@ -32,6 +32,7 @@
 };
 
 struct etnaviv_pm_domain_meta {
+	unsigned int feature;
 	const struct etnaviv_pm_domain *domains;
 	u32 nr_domains;
 };
@@ -410,36 +411,78 @@
 
 static const struct etnaviv_pm_domain_meta doms_meta[] = {
 	{
+		.feature = chipFeatures_PIPE_3D,
 		.nr_domains = ARRAY_SIZE(doms_3d),
 		.domains = &doms_3d[0]
 	},
 	{
+		.feature = chipFeatures_PIPE_2D,
 		.nr_domains = ARRAY_SIZE(doms_2d),
 		.domains = &doms_2d[0]
 	},
 	{
+		.feature = chipFeatures_PIPE_VG,
 		.nr_domains = ARRAY_SIZE(doms_vg),
 		.domains = &doms_vg[0]
 	}
 };
 
+static unsigned int num_pm_domains(const struct etnaviv_gpu *gpu)
+{
+	unsigned int num = 0, i;
+
+	for (i = 0; i < ARRAY_SIZE(doms_meta); i++) {
+		const struct etnaviv_pm_domain_meta *meta = &doms_meta[i];
+
+		if (gpu->identity.features & meta->feature)
+			num += meta->nr_domains;
+	}
+
+	return num;
+}
+
+static const struct etnaviv_pm_domain *pm_domain(const struct etnaviv_gpu *gpu,
+	unsigned int index)
+{
+	const struct etnaviv_pm_domain *domain = NULL;
+	unsigned int offset = 0, i;
+
+	for (i = 0; i < ARRAY_SIZE(doms_meta); i++) {
+		const struct etnaviv_pm_domain_meta *meta = &doms_meta[i];
+
+		if (!(gpu->identity.features & meta->feature))
+			continue;
+
+		if (index - offset >= meta->nr_domains) {
+			offset += meta->nr_domains;
+			continue;
+		}
+
+		domain = meta->domains + (index - offset);
+	}
+
+	return domain;
+}
+
 int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu,
 	struct drm_etnaviv_pm_domain *domain)
 {
-	const struct etnaviv_pm_domain_meta *meta = &doms_meta[domain->pipe];
+	const unsigned int nr_domains = num_pm_domains(gpu);
 	const struct etnaviv_pm_domain *dom;
 
-	if (domain->iter >= meta->nr_domains)
+	if (domain->iter >= nr_domains)
 		return -EINVAL;
 
-	dom = meta->domains + domain->iter;
+	dom = pm_domain(gpu, domain->iter);
+	if (!dom)
+		return -EINVAL;
 
 	domain->id = domain->iter;
 	domain->nr_signals = dom->nr_signals;
 	strncpy(domain->name, dom->name, sizeof(domain->name));
 
 	domain->iter++;
-	if (domain->iter == meta->nr_domains)
+	if (domain->iter == nr_domains)
 		domain->iter = 0xff;
 
 	return 0;
@@ -448,14 +491,16 @@
 int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu,
 	struct drm_etnaviv_pm_signal *signal)
 {
-	const struct etnaviv_pm_domain_meta *meta = &doms_meta[signal->pipe];
+	const unsigned int nr_domains = num_pm_domains(gpu);
 	const struct etnaviv_pm_domain *dom;
 	const struct etnaviv_pm_signal *sig;
 
-	if (signal->domain >= meta->nr_domains)
+	if (signal->domain >= nr_domains)
 		return -EINVAL;
 
-	dom = meta->domains + signal->domain;
+	dom = pm_domain(gpu, signal->domain);
+	if (!dom)
+		return -EINVAL;
 
 	if (signal->iter >= dom->nr_signals)
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/etnaviv/state_blt.xml.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/etnaviv/state_blt.xml.h
@@ -46,6 +46,8 @@
 
 /* This is a cut-down version of the state_blt.xml.h file */
 
+#define VIVS_BLT_SET_COMMAND					0x000140ac
+
 #define VIVS_BLT_ENABLE						0x000140b8
 #define VIVS_BLT_ENABLE_ENABLE					0x00000001
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
@@ -55,6 +55,7 @@
 struct decon_context {
 	struct device			*dev;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct exynos_drm_crtc		*crtc;
 	struct exynos_drm_plane		planes[WINDOWS_NR];
 	struct exynos_drm_plane_config	configs[WINDOWS_NR];
@@ -644,7 +645,7 @@
 
 	decon_clear_channels(ctx->crtc);
 
-	return exynos_drm_register_dma(drm_dev, dev);
+	return exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static void decon_unbind(struct device *dev, struct device *master, void *data)
@@ -654,7 +655,7 @@
 	decon_disable(ctx->crtc);
 
 	/* detach this sub driver from iommu mapping if supported. */
-	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev);
+	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev, &ctx->dma_priv);
 }
 
 static const struct component_ops decon_component_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -40,6 +40,7 @@
 struct decon_context {
 	struct device			*dev;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct exynos_drm_crtc		*crtc;
 	struct exynos_drm_plane		planes[WINDOWS_NR];
 	struct exynos_drm_plane_config	configs[WINDOWS_NR];
@@ -127,13 +128,13 @@
 
 	decon_clear_channels(ctx->crtc);
 
-	return exynos_drm_register_dma(drm_dev, ctx->dev);
+	return exynos_drm_register_dma(drm_dev, ctx->dev, &ctx->dma_priv);
 }
 
 static void decon_ctx_remove(struct decon_context *ctx)
 {
 	/* detach this sub driver from iommu mapping if supported. */
-	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev);
+	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev, &ctx->dma_priv);
 }
 
 static u32 decon_calc_clkdiv(struct decon_context *ctx,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_dp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_dp.c
@@ -158,15 +158,8 @@
 	struct drm_device *drm_dev = data;
 	int ret;
 
-	dp->dev = dev;
 	dp->drm_dev = drm_dev;
 
-	dp->plat_data.dev_type = EXYNOS_DP;
-	dp->plat_data.power_on_start = exynos_dp_poweron;
-	dp->plat_data.power_off = exynos_dp_poweroff;
-	dp->plat_data.attach = exynos_dp_bridge_attach;
-	dp->plat_data.get_modes = exynos_dp_get_modes;
-
 	if (!dp->plat_data.panel && !dp->ptn_bridge) {
 		ret = exynos_dp_dt_parse_panel(dp);
 		if (ret)
@@ -184,13 +177,11 @@
 
 	dp->plat_data.encoder = encoder;
 
-	dp->adp = analogix_dp_bind(dev, dp->drm_dev, &dp->plat_data);
-	if (IS_ERR(dp->adp)) {
+	ret = analogix_dp_bind(dp->adp, dp->drm_dev);
+	if (ret)
 		dp->encoder.funcs->destroy(&dp->encoder);
-		return PTR_ERR(dp->adp);
-	}
 
-	return 0;
+	return ret;
 }
 
 static void exynos_dp_unbind(struct device *dev, struct device *master,
@@ -221,6 +212,7 @@
 	if (!dp)
 		return -ENOMEM;
 
+	dp->dev = dev;
 	/*
 	 * We just use the drvdata until driver run into component
 	 * add function, and then we would set drvdata to null, so
@@ -246,16 +238,29 @@
 
 	/* The remote port can be either a panel or a bridge */
 	dp->plat_data.panel = panel;
+	dp->plat_data.dev_type = EXYNOS_DP;
+	dp->plat_data.power_on_start = exynos_dp_poweron;
+	dp->plat_data.power_off = exynos_dp_poweroff;
+	dp->plat_data.attach = exynos_dp_bridge_attach;
+	dp->plat_data.get_modes = exynos_dp_get_modes;
 	dp->plat_data.skip_connector = !!bridge;
+
 	dp->ptn_bridge = bridge;
 
 out:
+	dp->adp = analogix_dp_probe(dev, &dp->plat_data);
+	if (IS_ERR(dp->adp))
+		return PTR_ERR(dp->adp);
+
 	return component_add(&pdev->dev, &exynos_dp_ops);
 }
 
 static int exynos_dp_remove(struct platform_device *pdev)
 {
+	struct exynos_dp_device *dp = platform_get_drvdata(pdev);
+
 	component_del(&pdev->dev, &exynos_dp_ops);
+	analogix_dp_remove(dp->adp);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_dma.c
@@ -58,10 +58,10 @@
  * mapping.
  */
 static int drm_iommu_attach_device(struct drm_device *drm_dev,
-				struct device *subdrv_dev)
+				struct device *subdrv_dev, void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm_dev->dev_private;
-	int ret;
+	int ret = 0;
 
 	if (get_dma_ops(priv->dma_dev) != get_dma_ops(subdrv_dev)) {
 		DRM_DEV_ERROR(subdrv_dev, "Device %s lacks support for IOMMU\n",
@@ -74,7 +74,14 @@
 		return ret;
 
 	if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) {
-		if (to_dma_iommu_mapping(subdrv_dev))
+		/*
+		 * Keep the original DMA mapping of the sub-device and
+		 * restore it on Exynos DRM detach, otherwise the DMA
+		 * framework considers it as IOMMU-less during the next
+		 * probe (in case of deferred probe or modular build)
+		 */
+		*dma_priv = to_dma_iommu_mapping(subdrv_dev);
+		if (*dma_priv)
 			arm_iommu_detach_device(subdrv_dev);
 
 		ret = arm_iommu_attach_device(subdrv_dev, priv->mapping);
@@ -85,7 +92,7 @@
 	if (ret)
 		clear_dma_max_seg_size(subdrv_dev);
 
-	return 0;
+	return ret;
 }
 
 /*
@@ -98,19 +105,21 @@
  * mapping
  */
 static void drm_iommu_detach_device(struct drm_device *drm_dev,
-				struct device *subdrv_dev)
+				    struct device *subdrv_dev, void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm_dev->dev_private;
 
-	if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU))
+	if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) {
 		arm_iommu_detach_device(subdrv_dev);
-	else if (IS_ENABLED(CONFIG_IOMMU_DMA))
+		arm_iommu_attach_device(subdrv_dev, *dma_priv);
+	} else if (IS_ENABLED(CONFIG_IOMMU_DMA))
 		iommu_detach_device(priv->mapping, subdrv_dev);
 
 	clear_dma_max_seg_size(subdrv_dev);
 }
 
-int exynos_drm_register_dma(struct drm_device *drm, struct device *dev)
+int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
+			    void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm->dev_private;
 
@@ -137,13 +146,14 @@
 		priv->mapping = mapping;
 	}
 
-	return drm_iommu_attach_device(drm, dev);
+	return drm_iommu_attach_device(drm, dev, dma_priv);
 }
 
-void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev)
+void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev,
+			       void **dma_priv)
 {
 	if (IS_ENABLED(CONFIG_EXYNOS_IOMMU))
-		drm_iommu_detach_device(drm, dev);
+		drm_iommu_detach_device(drm, dev, dma_priv);
 }
 
 void exynos_drm_cleanup_dma(struct drm_device *drm)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -223,8 +223,10 @@
 	return priv->mapping ? true : false;
 }
 
-int exynos_drm_register_dma(struct drm_device *drm, struct device *dev);
-void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev);
+int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
+			    void **dma_priv);
+void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev,
+			       void **dma_priv);
 void exynos_drm_cleanup_dma(struct drm_device *drm);
 
 #ifdef CONFIG_DRM_EXYNOS_DPI
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1741,17 +1741,14 @@
 	dsi->dev = dev;
 	dsi->driver_data = of_device_get_match_data(dev);
 
-	ret = exynos_dsi_parse_dt(dsi);
-	if (ret)
-		return ret;
-
 	dsi->supplies[0].supply = "vddcore";
 	dsi->supplies[1].supply = "vddio";
 	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(dsi->supplies),
 				      dsi->supplies);
 	if (ret) {
-		dev_info(dev, "failed to get regulators: %d\n", ret);
-		return -EPROBE_DEFER;
+		if (ret != -EPROBE_DEFER)
+			dev_info(dev, "failed to get regulators: %d\n", ret);
+		return ret;
 	}
 
 	dsi->clks = devm_kcalloc(dev,
@@ -1764,9 +1761,10 @@
 		dsi->clks[i] = devm_clk_get(dev, clk_names[i]);
 		if (IS_ERR(dsi->clks[i])) {
 			if (strcmp(clk_names[i], "sclk_mipi") == 0) {
-				strcpy(clk_names[i], OLD_SCLK_MIPI_CLK_NAME);
-				i--;
-				continue;
+				dsi->clks[i] = devm_clk_get(dev,
+							OLD_SCLK_MIPI_CLK_NAME);
+				if (!IS_ERR(dsi->clks[i]))
+					continue;
 			}
 
 			dev_info(dev, "failed to get the clock: %s\n",
@@ -1803,11 +1801,25 @@
 		return ret;
 	}
 
+	ret = exynos_dsi_parse_dt(dsi);
+	if (ret)
+		return ret;
+
 	platform_set_drvdata(pdev, &dsi->encoder);
 
 	pm_runtime_enable(dev);
 
-	return component_add(dev, &exynos_dsi_component_ops);
+	ret = component_add(dev, &exynos_dsi_component_ops);
+	if (ret)
+		goto err_disable_runtime;
+
+	return 0;
+
+err_disable_runtime:
+	pm_runtime_disable(dev);
+	of_node_put(dsi->in_bridge_node);
+
+	return ret;
 }
 
 static int exynos_dsi_remove(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -97,6 +97,7 @@
 struct fimc_context {
 	struct exynos_drm_ipp ipp;
 	struct drm_device *drm_dev;
+	void		*dma_priv;
 	struct device	*dev;
 	struct exynos_drm_ipp_task	*task;
 	struct exynos_drm_ipp_formats	*formats;
@@ -1133,7 +1134,7 @@
 
 	ctx->drm_dev = drm_dev;
 	ipp->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE |
@@ -1153,7 +1154,7 @@
 	struct exynos_drm_ipp *ipp = &ctx->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(drm_dev, dev);
+	exynos_drm_unregister_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static const struct component_ops fimc_component_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -167,6 +167,7 @@
 struct fimd_context {
 	struct device			*dev;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct exynos_drm_crtc		*crtc;
 	struct exynos_drm_plane		planes[WINDOWS_NR];
 	struct exynos_drm_plane_config	configs[WINDOWS_NR];
@@ -1090,7 +1091,7 @@
 	if (is_drm_iommu_supported(drm_dev))
 		fimd_clear_channels(ctx->crtc);
 
-	return exynos_drm_register_dma(drm_dev, dev);
+	return exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static void fimd_unbind(struct device *dev, struct device *master,
@@ -1100,7 +1101,7 @@
 
 	fimd_disable(ctx->crtc);
 
-	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev);
+	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev, &ctx->dma_priv);
 
 	if (ctx->encoder)
 		exynos_dpi_remove(ctx->encoder);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -232,6 +232,7 @@
 
 struct g2d_data {
 	struct device			*dev;
+	void				*dma_priv;
 	struct clk			*gate_clk;
 	void __iomem			*regs;
 	int				irq;
@@ -1409,7 +1410,7 @@
 		return ret;
 	}
 
-	ret = exynos_drm_register_dma(drm_dev, dev);
+	ret = exynos_drm_register_dma(drm_dev, dev, &g2d->dma_priv);
 	if (ret < 0) {
 		dev_err(dev, "failed to enable iommu.\n");
 		g2d_fini_cmdlist(g2d);
@@ -1434,7 +1435,7 @@
 	priv->g2d_dev = NULL;
 
 	cancel_work_sync(&g2d->runqueue_work);
-	exynos_drm_unregister_dma(g2d->drm_dev, dev);
+	exynos_drm_unregister_dma(g2d->drm_dev, dev, &g2d->dma_priv);
 }
 
 static const struct component_ops g2d_component_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -97,6 +97,7 @@
 struct gsc_context {
 	struct exynos_drm_ipp ipp;
 	struct drm_device *drm_dev;
+	void		*dma_priv;
 	struct device	*dev;
 	struct exynos_drm_ipp_task	*task;
 	struct exynos_drm_ipp_formats	*formats;
@@ -1169,7 +1170,7 @@
 
 	ctx->drm_dev = drm_dev;
 	ctx->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE |
@@ -1189,7 +1190,7 @@
 	struct exynos_drm_ipp *ipp = &ctx->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(drm_dev, dev);
+	exynos_drm_unregister_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static const struct component_ops gsc_component_ops = {
@@ -1313,6 +1314,7 @@
 {
 	struct device *dev = &pdev->dev;
 
+	component_del(dev, &gsc_component_ops);
 	pm_runtime_dont_use_autosuspend(dev);
 	pm_runtime_disable(dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_mic.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_mic.c
@@ -268,8 +268,10 @@
 		goto unlock;
 
 	ret = pm_runtime_get_sync(mic->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(mic->dev);
 		goto unlock;
+	}
 
 	mic_set_path(mic, 1);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -56,6 +56,7 @@
 struct rot_context {
 	struct exynos_drm_ipp ipp;
 	struct drm_device *drm_dev;
+	void		*dma_priv;
 	struct device	*dev;
 	void __iomem	*regs;
 	struct clk	*clock;
@@ -243,7 +244,7 @@
 
 	rot->drm_dev = drm_dev;
 	ipp->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &rot->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			   DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE,
@@ -261,7 +262,7 @@
 	struct exynos_drm_ipp *ipp = &rot->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(rot->drm_dev, rot->dev);
+	exynos_drm_unregister_dma(rot->drm_dev, rot->dev, &rot->dma_priv);
 }
 
 static const struct component_ops rotator_component_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_scaler.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_drm_scaler.c
@@ -39,6 +39,7 @@
 struct scaler_context {
 	struct exynos_drm_ipp		ipp;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct device			*dev;
 	void __iomem			*regs;
 	struct clk			*clock[SCALER_MAX_CLK];
@@ -450,7 +451,7 @@
 
 	scaler->drm_dev = drm_dev;
 	ipp->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &scaler->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE |
@@ -470,7 +471,8 @@
 	struct exynos_drm_ipp *ipp = &scaler->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(scaler->drm_dev, scaler->dev);
+	exynos_drm_unregister_dma(scaler->drm_dev, scaler->dev,
+				  &scaler->dma_priv);
 }
 
 static const struct component_ops scaler_component_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -852,6 +852,10 @@
 
 static void hdmi_connector_destroy(struct drm_connector *connector)
 {
+	struct hdmi_context *hdata = connector_to_hdmi(connector);
+
+	cec_notifier_conn_unregister(hdata->notifier);
+
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
@@ -935,6 +939,7 @@
 {
 	struct hdmi_context *hdata = encoder_to_hdmi(encoder);
 	struct drm_connector *connector = &hdata->connector;
+	struct cec_connector_info conn_info;
 	int ret;
 
 	connector->interlace_allowed = true;
@@ -957,6 +962,15 @@
 			DRM_DEV_ERROR(hdata->dev, "Failed to attach bridge\n");
 	}
 
+	cec_fill_conn_info_from_drm(&conn_info, connector);
+
+	hdata->notifier = cec_notifier_conn_register(hdata->dev, NULL,
+						     &conn_info);
+	if (!hdata->notifier) {
+		ret = -ENOMEM;
+		DRM_DEV_ERROR(hdata->dev, "Failed to allocate CEC notifier\n");
+	}
+
 	return ret;
 }
 
@@ -1528,8 +1542,8 @@
 		 */
 		mutex_unlock(&hdata->mutex);
 		cancel_delayed_work(&hdata->hotplug_work);
-		cec_notifier_set_phys_addr(hdata->notifier,
-					   CEC_PHYS_ADDR_INVALID);
+		if (hdata->notifier)
+			cec_notifier_phys_addr_invalidate(hdata->notifier);
 		return;
 	}
 
@@ -1788,18 +1802,10 @@
 
 	hdata->reg_hdmi_en = devm_regulator_get_optional(dev, "hdmi-en");
 
-	if (PTR_ERR(hdata->reg_hdmi_en) != -ENODEV) {
+	if (PTR_ERR(hdata->reg_hdmi_en) != -ENODEV)
 		if (IS_ERR(hdata->reg_hdmi_en))
 			return PTR_ERR(hdata->reg_hdmi_en);
 
-		ret = regulator_enable(hdata->reg_hdmi_en);
-		if (ret) {
-			DRM_DEV_ERROR(dev,
-				      "failed to enable hdmi-en regulator\n");
-			return ret;
-		}
-	}
-
 	return hdmi_bridge_init(hdata);
 }
 
@@ -2006,10 +2012,13 @@
 		}
 	}
 
-	hdata->notifier = cec_notifier_get(&pdev->dev);
-	if (hdata->notifier == NULL) {
-		ret = -ENOMEM;
-		goto err_hdmiphy;
+	if (!IS_ERR(hdata->reg_hdmi_en)) {
+		ret = regulator_enable(hdata->reg_hdmi_en);
+		if (ret) {
+			DRM_DEV_ERROR(dev,
+			      "failed to enable hdmi-en regulator\n");
+			goto err_hdmiphy;
+		}
 	}
 
 	pm_runtime_enable(dev);
@@ -2023,7 +2032,7 @@
 
 	ret = hdmi_register_audio_device(hdata);
 	if (ret)
-		goto err_notifier_put;
+		goto err_rpm_disable;
 
 	ret = component_add(&pdev->dev, &hdmi_component_ops);
 	if (ret)
@@ -2034,10 +2043,10 @@
 err_unregister_audio:
 	platform_device_unregister(hdata->audio.pdev);
 
-err_notifier_put:
-	cec_notifier_put(hdata->notifier);
+err_rpm_disable:
 	pm_runtime_disable(dev);
-
+	if (!IS_ERR(hdata->reg_hdmi_en))
+		regulator_disable(hdata->reg_hdmi_en);
 err_hdmiphy:
 	if (hdata->hdmiphy_port)
 		put_device(&hdata->hdmiphy_port->dev);
@@ -2054,12 +2063,10 @@
 	struct hdmi_context *hdata = platform_get_drvdata(pdev);
 
 	cancel_delayed_work_sync(&hdata->hotplug_work);
-	cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID);
 
 	component_del(&pdev->dev, &hdmi_component_ops);
 	platform_device_unregister(hdata->audio.pdev);
 
-	cec_notifier_put(hdata->notifier);
 	pm_runtime_disable(&pdev->dev);
 
 	if (!IS_ERR(hdata->reg_hdmi_en))
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/exynos/exynos_mixer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -94,6 +94,7 @@
 	struct platform_device *pdev;
 	struct device		*dev;
 	struct drm_device	*drm_dev;
+	void			*dma_priv;
 	struct exynos_drm_crtc	*crtc;
 	struct exynos_drm_plane	planes[MIXER_WIN_NR];
 	unsigned long		flags;
@@ -894,12 +895,14 @@
 		}
 	}
 
-	return exynos_drm_register_dma(drm_dev, mixer_ctx->dev);
+	return exynos_drm_register_dma(drm_dev, mixer_ctx->dev,
+				       &mixer_ctx->dma_priv);
 }
 
 static void mixer_ctx_remove(struct mixer_context *mixer_ctx)
 {
-	exynos_drm_unregister_dma(mixer_ctx->drm_dev, mixer_ctx->dev);
+	exynos_drm_unregister_dma(mixer_ctx->drm_dev, mixer_ctx->dev,
+				  &mixer_ctx->dma_priv);
 }
 
 static int mixer_enable_vblank(struct exynos_drm_crtc *crtc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/cdv_intel_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/cdv_intel_display.c
@@ -405,6 +405,8 @@
 	struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
 	struct gma_clock_t clock;
 
+	memset(&clock, 0, sizeof(clock));
+
 	switch (refclk) {
 	case 27000:
 		if (target < 200000) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/cdv_intel_dp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/cdv_intel_dp.c
@@ -2120,12 +2120,12 @@
 					       intel_dp->dpcd,
 					       sizeof(intel_dp->dpcd));
 		cdv_intel_edp_panel_vdd_off(gma_encoder);
-		if (ret == 0) {
+		if (ret <= 0) {
 			/* if this fails, presume the device is a ghost */
 			DRM_INFO("failed to retrieve link info, disabling eDP\n");
 			cdv_intel_dp_encoder_destroy(encoder);
 			cdv_intel_dp_destroy(connector);
-			goto err_priv;
+			goto err_connector;
 		} else {
         		DRM_DEBUG_KMS("DPCD: Rev=%x LN_Rate=%x LN_CNT=%x LN_DOWNSP=%x\n",
 				intel_dp->dpcd[0], intel_dp->dpcd[1], 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/framebuffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/framebuffer.c
@@ -462,6 +462,7 @@
 		container_of(helper, struct psb_fbdev, psb_fb_helper);
 	struct drm_device *dev = psb_fbdev->psb_fb_helper.dev;
 	struct drm_psb_private *dev_priv = dev->dev_private;
+	unsigned int fb_size;
 	int bytespp;
 
 	bytespp = sizes->surface_bpp / 8;
@@ -471,8 +472,11 @@
 	/* If the mode will not fit in 32bit then switch to 16bit to get
 	   a console on full resolution. The X mode setting server will
 	   allocate its own 32bit GEM framebuffer */
-	if (ALIGN(sizes->fb_width * bytespp, 64) * sizes->fb_height >
-	                dev_priv->vram_stolen_size) {
+	fb_size = ALIGN(sizes->surface_width * bytespp, 64) *
+		  sizes->surface_height;
+	fb_size = ALIGN(fb_size, PAGE_SIZE);
+
+	if (fb_size > dev_priv->vram_stolen_size) {
                 sizes->surface_bpp = 16;
                 sizes->surface_depth = 16;
         }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/oaktrail_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/oaktrail_crtc.c
@@ -129,6 +129,7 @@
 	s32 freq_error, min_error = 100000;
 
 	memset(best_clock, 0, sizeof(*best_clock));
+	memset(&clock, 0, sizeof(clock));
 
 	for (clock.m = limit->m.min; clock.m <= limit->m.max; clock.m++) {
 		for (clock.n = limit->n.min; clock.n <= limit->n.max;
@@ -185,6 +186,7 @@
 	int err = target;
 
 	memset(best_clock, 0, sizeof(*best_clock));
+	memset(&clock, 0, sizeof(clock));
 
 	for (clock.m = limit->m.min; clock.m <= limit->m.max; clock.m++) {
 		for (clock.p1 = limit->p1.min; clock.p1 <= limit->p1.max;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
@@ -279,11 +279,8 @@
 	hdmi_dev = pci_get_drvdata(dev);
 
 	i2c_dev = kzalloc(sizeof(struct hdmi_i2c_dev), GFP_KERNEL);
-	if (i2c_dev == NULL) {
-		DRM_ERROR("Can't allocate interface\n");
-		ret = -ENOMEM;
-		goto exit;
-	}
+	if (!i2c_dev)
+		return -ENOMEM;
 
 	i2c_dev->adap = &oaktrail_hdmi_i2c_adapter;
 	i2c_dev->status = I2C_STAT_INIT;
@@ -300,16 +297,23 @@
 			  oaktrail_hdmi_i2c_adapter.name, hdmi_dev);
 	if (ret) {
 		DRM_ERROR("Failed to request IRQ for I2C controller\n");
-		goto err;
+		goto free_dev;
 	}
 
 	/* Adapter registration */
 	ret = i2c_add_numbered_adapter(&oaktrail_hdmi_i2c_adapter);
-	return ret;
+	if (ret) {
+		DRM_ERROR("Failed to add I2C adapter\n");
+		goto free_irq;
+	}
+
+	return 0;
 
-err:
+free_irq:
+	free_irq(dev->irq, hdmi_dev);
+free_dev:
 	kfree(i2c_dev);
-exit:
+
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/psb_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/psb_drv.c
@@ -313,6 +313,8 @@
 	if (ret)
 		goto out_err;
 
+	ret = -ENOMEM;
+
 	dev_priv->mmu = psb_mmu_driver_init(dev, 1, 0, 0);
 	if (!dev_priv->mmu)
 		goto out_err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/gma500/psb_irq.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/gma500/psb_irq.c
@@ -337,6 +337,7 @@
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
 	unsigned long irqflags;
+	unsigned int i;
 
 	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
 
@@ -349,20 +350,12 @@
 	PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
 	PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);
 
-	if (dev->vblank[0].enabled)
-		psb_enable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[1].enabled)
-		psb_enable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[2].enabled)
-		psb_enable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+	for (i = 0; i < dev->num_crtcs; ++i) {
+		if (dev->vblank[i].enabled)
+			psb_enable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+		else
+			psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+	}
 
 	if (dev_priv->ops->hotplug_enable)
 		dev_priv->ops->hotplug_enable(dev, true);
@@ -375,6 +368,7 @@
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
 	unsigned long irqflags;
+	unsigned int i;
 
 	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
 
@@ -383,14 +377,10 @@
 
 	PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);
 
-	if (dev->vblank[0].enabled)
-		psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[1].enabled)
-		psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[2].enabled)
-		psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+	for (i = 0; i < dev->num_crtcs; ++i) {
+		if (dev->vblank[i].enabled)
+			psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+	}
 
 	dev_priv->vdc_irq_mask &= _PSB_IRQ_SGX_FLAG |
 				  _PSB_IRQ_MSVDX_FLAG |
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -376,7 +376,6 @@
 
 	drm_dev_unregister(dev);
 	hibmc_unload(dev);
-	drm_dev_put(dev);
 }
 
 static struct pci_device_id hibmc_pci_table[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
@@ -83,7 +83,6 @@
 #define VSIZE_OFST			20
 #define LDI_INT_EN			0x741C
 #define FRAME_END_INT_EN_OFST		1
-#define UNDERFLOW_INT_EN_OFST		2
 #define LDI_CTRL			0x7420
 #define BPP_OFST			3
 #define DATA_GATE_EN			BIT(2)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -46,7 +46,6 @@
 	struct clk *media_noc_clk;
 	struct clk *ade_pix_clk;
 	struct reset_control *reset;
-	struct work_struct display_reset_wq;
 	bool power_on;
 	int irq;
 
@@ -136,7 +135,6 @@
 	 */
 	ade_update_bits(base + ADE_CTRL, FRM_END_START_OFST,
 			FRM_END_START_MASK, REG_EFFECTIVE_IN_ADEEN_FRMEND);
-	ade_update_bits(base + LDI_INT_EN, UNDERFLOW_INT_EN_OFST, MASK(1), 1);
 }
 
 static bool ade_crtc_mode_fixup(struct drm_crtc *crtc,
@@ -304,17 +302,6 @@
 			MASK(1), 0);
 }
 
-static void drm_underflow_wq(struct work_struct *work)
-{
-	struct ade_hw_ctx *ctx = container_of(work, struct ade_hw_ctx,
-					      display_reset_wq);
-	struct drm_device *drm_dev = ctx->crtc->dev;
-	struct drm_atomic_state *state;
-
-	state = drm_atomic_helper_suspend(drm_dev);
-	drm_atomic_helper_resume(drm_dev, state);
-}
-
 static irqreturn_t ade_irq_handler(int irq, void *data)
 {
 	struct ade_hw_ctx *ctx = data;
@@ -331,12 +318,6 @@
 				MASK(1), 1);
 		drm_crtc_handle_vblank(crtc);
 	}
-	if (status & BIT(UNDERFLOW_INT_EN_OFST)) {
-		ade_update_bits(base + LDI_INT_CLR, UNDERFLOW_INT_EN_OFST,
-				MASK(1), 1);
-		DRM_ERROR("LDI underflow!");
-		schedule_work(&ctx->display_reset_wq);
-	}
 
 	return IRQ_HANDLED;
 }
@@ -919,7 +900,6 @@
 	if (ret)
 		return ERR_PTR(-EIO);
 
-	INIT_WORK(&ctx->display_reset_wq, drm_underflow_wq);
 	ctx->crtc = crtc;
 
 	return ctx;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i810/i810_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i810/i810_dma.c
@@ -728,7 +728,7 @@
 	if (nbox > I810_NR_SAREA_CLIPRECTS)
 		nbox = I810_NR_SAREA_CLIPRECTS;
 
-	if (used > 4 * 1024)
+	if (used < 0 || used > 4 * 1024)
 		used = 0;
 
 	if (sarea_priv->dirty)
@@ -1048,7 +1048,7 @@
 	if (u != I810_BUF_CLIENT)
 		DRM_DEBUG("MC found buffer that isn't mine!\n");
 
-	if (used > 4 * 1024)
+	if (used < 0 || used > 4 * 1024)
 		used = 0;
 
 	sarea_priv->dirty = 0x7f;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/Kconfig
@@ -75,9 +75,8 @@
 	help
 	  This option enables capturing the GPU state when a hang is detected.
 	  This information is vital for triaging hangs and assists in debugging.
-	  Please report any hang to
-            https://bugs.freedesktop.org/enter_bug.cgi?product=DRI
-	  for triaging.
+	  Please report any hang for triaging according to:
+	    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 
 	  If in doubt, say "Y".
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/Kconfig.debug
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/Kconfig.debug
@@ -7,7 +7,6 @@
         # We use the dependency on !COMPILE_TEST to not be enabled in
         # allmodconfig or allyesconfig configurations
         depends on !COMPILE_TEST
-	select HEADER_TEST
         default n
         help
           Add -Werror to the build flags for (and only for) i915.ko.
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/Makefile
@@ -83,6 +83,7 @@
 	gt/intel_gt_irq.o \
 	gt/intel_gt_pm.o \
 	gt/intel_gt_pm_irq.o \
+	gt/intel_gt_requests.o \
 	gt/intel_hangcheck.o \
 	gt/intel_lrc.o \
 	gt/intel_renderstate.o \
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_audio.c
@@ -851,10 +851,16 @@
 	ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
 
 	/* Force CDCLK to 2*BCLK as long as we need audio to be powered. */
-	if (dev_priv->audio_power_refcount++ == 0)
-		if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+	if (dev_priv->audio_power_refcount++ == 0) {
+		if (IS_GEMINILAKE(dev_priv))
 			glk_force_audio_cdclk(dev_priv, true);
 
+		if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+			I915_WRITE(AUD_PIN_BUF_CTL,
+				   (I915_READ(AUD_PIN_BUF_CTL) |
+				    AUD_PIN_BUF_ENABLE));
+	}
+
 	return ret;
 }
 
@@ -865,7 +871,7 @@
 
 	/* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */
 	if (--dev_priv->audio_power_refcount == 0)
-		if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+		if (IS_GEMINILAKE(dev_priv))
 			glk_force_audio_cdclk(dev_priv, false);
 
 	intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, cookie);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_bios.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_bios.c
@@ -32,6 +32,7 @@
 #include "display/intel_gmbus.h"
 
 #include "i915_drv.h"
+#include <linux/dmi.h>
 
 #define _INTEL_BIOS_PRIVATE
 #include "intel_vbt_defs.h"
@@ -1828,6 +1829,22 @@
 	return NULL;
 }
 
+#define DRM_DMI_PRODUCT_VERSION 0x6
+
+static void parse_product_info(struct drm_i915_private *dev_priv)
+{
+	const char *product_ver = dmi_get_system_info(DRM_DMI_PRODUCT_VERSION);
+	if (!product_ver)
+		return;
+
+	if (!strncmp(product_ver, "ThinkPad X1", 11)) {
+		DRM_DEBUG_KMS("dmi: %s, Bypassing TMDS_OE write\n", product_ver);
+		dev_priv->bypass_tmds_oe = true;
+	}
+
+	return;
+}
+
 /**
  * intel_bios_init - find VBT and initialize settings from the BIOS
  * @dev_priv: i915 device instance
@@ -1886,6 +1903,8 @@
 	parse_sdvo_device_mapping(dev_priv, bdb->version);
 	parse_ddi_ports(dev_priv, bdb->version);
 
+	parse_product_info(dev_priv);
+
 out:
 	if (!vbt) {
 		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_ddi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -2124,7 +2124,11 @@
 		return;
 
 	dig_port = enc_to_dig_port(&encoder->base);
-	intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
+
+	if (!intel_phy_is_tc(dev_priv, phy) ||
+	    dig_port->tc_mode != TC_PORT_TBT_ALT)
+		intel_display_power_get(dev_priv,
+					dig_port->ddi_io_power_domain);
 
 	/*
 	 * AUX power is only needed for (e)DP mode, and for HDMI mode on TC
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_display.c
@@ -6753,20 +6753,30 @@
 	    dig_port->tc_mode == TC_PORT_TBT_ALT) {
 		switch (dig_port->aux_ch) {
 		case AUX_CH_C:
-			return POWER_DOMAIN_AUX_TBT1;
+			return POWER_DOMAIN_AUX_C_TBT;
 		case AUX_CH_D:
-			return POWER_DOMAIN_AUX_TBT2;
+			return POWER_DOMAIN_AUX_D_TBT;
 		case AUX_CH_E:
-			return POWER_DOMAIN_AUX_TBT3;
+			return POWER_DOMAIN_AUX_E_TBT;
 		case AUX_CH_F:
-			return POWER_DOMAIN_AUX_TBT4;
+			return POWER_DOMAIN_AUX_F_TBT;
 		default:
 			MISSING_CASE(dig_port->aux_ch);
-			return POWER_DOMAIN_AUX_TBT1;
+			return POWER_DOMAIN_AUX_C_TBT;
 		}
 	}
 
-	switch (dig_port->aux_ch) {
+	return intel_legacy_aux_to_power_domain(dig_port->aux_ch);
+}
+
+/*
+ * Converts aux_ch to power_domain without caring about TBT ports for that use
+ * intel_aux_power_domain()
+ */
+enum intel_display_power_domain
+intel_legacy_aux_to_power_domain(enum aux_ch aux_ch)
+{
+	switch (aux_ch) {
 	case AUX_CH_A:
 		return POWER_DOMAIN_AUX_A;
 	case AUX_CH_B:
@@ -6780,7 +6790,7 @@
 	case AUX_CH_F:
 		return POWER_DOMAIN_AUX_F;
 	default:
-		MISSING_CASE(dig_port->aux_ch);
+		MISSING_CASE(aux_ch);
 		return POWER_DOMAIN_AUX_A;
 	}
 }
@@ -10510,7 +10520,7 @@
 	u32 base;
 
 	if (INTEL_INFO(dev_priv)->display.cursor_needs_physical)
-		base = obj->phys_handle->busaddr;
+		base = sg_dma_address(obj->mm.pages->sgl);
 	else
 		base = intel_plane_ggtt_offset(plane_state);
 
@@ -11893,10 +11903,11 @@
 	case 10 ... 11:
 		bpp = 10 * 3;
 		break;
-	case 12:
+	case 12 ... 16:
 		bpp = 12 * 3;
 		break;
 	default:
+		MISSING_CASE(conn_state->max_bpc);
 		return -EINVAL;
 	}
 
@@ -14429,7 +14440,7 @@
 		return ret;
 
 	fb_obj_bump_render_priority(obj);
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_DIRTYFB);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_DIRTYFB);
 
 	if (!new_state->fence) { /* implicit fencing */
 		struct dma_fence *fence;
@@ -16860,8 +16871,11 @@
 
 static void intel_early_display_was(struct drm_i915_private *dev_priv)
 {
-	/* Display WA #1185 WaDisableDARBFClkGating:cnl,glk */
-	if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+	/*
+	 * Display WA #1185 WaDisableDARBFClkGating:cnl,glk,icl,ehl,tgl
+	 * Also known as Wa_14010480278.
+	 */
+	if (IS_GEN_RANGE(dev_priv, 10, 12) || IS_GEMINILAKE(dev_priv))
 		I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
 			   DARBF_GATING_DIS);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_display.h
@@ -513,6 +513,8 @@
 enum intel_display_power_domain intel_port_to_power_domain(enum port port);
 enum intel_display_power_domain
 intel_aux_power_domain(struct intel_digital_port *dig_port);
+enum intel_display_power_domain
+intel_legacy_aux_to_power_domain(enum aux_ch aux_ch);
 void intel_mode_from_pipe_config(struct drm_display_mode *mode,
 				 struct intel_crtc_state *pipe_config);
 void intel_crtc_arm_fifo_underrun(struct intel_crtc *crtc,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display_power.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -20,15 +20,14 @@
 #include "intel_sideband.h"
 #include "intel_tc.h"
 
+static const struct i915_power_well_ops icl_tc_phy_aux_power_well_ops;
+
 bool intel_display_power_well_is_enabled(struct drm_i915_private *dev_priv,
 					 enum i915_power_well_id power_well_id);
 
 const char *
-intel_display_power_domain_str(struct drm_i915_private *i915,
-			       enum intel_display_power_domain domain)
+intel_display_power_domain_str(enum intel_display_power_domain domain)
 {
-	bool ddi_tc_ports = IS_GEN(i915, 12);
-
 	switch (domain) {
 	case POWER_DOMAIN_DISPLAY_CORE:
 		return "DISPLAY_CORE";
@@ -71,23 +70,17 @@
 	case POWER_DOMAIN_PORT_DDI_C_LANES:
 		return "PORT_DDI_C_LANES";
 	case POWER_DOMAIN_PORT_DDI_D_LANES:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_D_LANES !=
-			     POWER_DOMAIN_PORT_DDI_TC1_LANES);
-		return ddi_tc_ports ? "PORT_DDI_TC1_LANES" : "PORT_DDI_D_LANES";
+		return "PORT_DDI_D_LANES";
 	case POWER_DOMAIN_PORT_DDI_E_LANES:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_E_LANES !=
-			     POWER_DOMAIN_PORT_DDI_TC2_LANES);
-		return ddi_tc_ports ? "PORT_DDI_TC2_LANES" : "PORT_DDI_E_LANES";
+		return "PORT_DDI_E_LANES";
 	case POWER_DOMAIN_PORT_DDI_F_LANES:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_F_LANES !=
-			     POWER_DOMAIN_PORT_DDI_TC3_LANES);
-		return ddi_tc_ports ? "PORT_DDI_TC3_LANES" : "PORT_DDI_F_LANES";
-	case POWER_DOMAIN_PORT_DDI_TC4_LANES:
-		return "PORT_DDI_TC4_LANES";
-	case POWER_DOMAIN_PORT_DDI_TC5_LANES:
-		return "PORT_DDI_TC5_LANES";
-	case POWER_DOMAIN_PORT_DDI_TC6_LANES:
-		return "PORT_DDI_TC6_LANES";
+		return "PORT_DDI_F_LANES";
+	case POWER_DOMAIN_PORT_DDI_G_LANES:
+		return "PORT_DDI_G_LANES";
+	case POWER_DOMAIN_PORT_DDI_H_LANES:
+		return "PORT_DDI_H_LANES";
+	case POWER_DOMAIN_PORT_DDI_I_LANES:
+		return "PORT_DDI_I_LANES";
 	case POWER_DOMAIN_PORT_DDI_A_IO:
 		return "PORT_DDI_A_IO";
 	case POWER_DOMAIN_PORT_DDI_B_IO:
@@ -95,23 +88,17 @@
 	case POWER_DOMAIN_PORT_DDI_C_IO:
 		return "PORT_DDI_C_IO";
 	case POWER_DOMAIN_PORT_DDI_D_IO:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_D_IO !=
-			     POWER_DOMAIN_PORT_DDI_TC1_IO);
-		return ddi_tc_ports ? "PORT_DDI_TC1_IO" : "PORT_DDI_D_IO";
+		return "PORT_DDI_D_IO";
 	case POWER_DOMAIN_PORT_DDI_E_IO:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_E_IO !=
-			     POWER_DOMAIN_PORT_DDI_TC2_IO);
-		return ddi_tc_ports ? "PORT_DDI_TC2_IO" : "PORT_DDI_E_IO";
+		return "PORT_DDI_E_IO";
 	case POWER_DOMAIN_PORT_DDI_F_IO:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_F_IO !=
-			     POWER_DOMAIN_PORT_DDI_TC3_IO);
-		return ddi_tc_ports ? "PORT_DDI_TC3_IO" : "PORT_DDI_F_IO";
-	case POWER_DOMAIN_PORT_DDI_TC4_IO:
-		return "PORT_DDI_TC4_IO";
-	case POWER_DOMAIN_PORT_DDI_TC5_IO:
-		return "PORT_DDI_TC5_IO";
-	case POWER_DOMAIN_PORT_DDI_TC6_IO:
-		return "PORT_DDI_TC6_IO";
+		return "PORT_DDI_F_IO";
+	case POWER_DOMAIN_PORT_DDI_G_IO:
+		return "PORT_DDI_G_IO";
+	case POWER_DOMAIN_PORT_DDI_H_IO:
+		return "PORT_DDI_H_IO";
+	case POWER_DOMAIN_PORT_DDI_I_IO:
+		return "PORT_DDI_I_IO";
 	case POWER_DOMAIN_PORT_DSI:
 		return "PORT_DSI";
 	case POWER_DOMAIN_PORT_CRT:
@@ -129,34 +116,33 @@
 	case POWER_DOMAIN_AUX_C:
 		return "AUX_C";
 	case POWER_DOMAIN_AUX_D:
-		BUILD_BUG_ON(POWER_DOMAIN_AUX_D != POWER_DOMAIN_AUX_TC1);
-		return ddi_tc_ports ? "AUX_TC1" : "AUX_D";
+		return "AUX_D";
 	case POWER_DOMAIN_AUX_E:
-		BUILD_BUG_ON(POWER_DOMAIN_AUX_E != POWER_DOMAIN_AUX_TC2);
-		return ddi_tc_ports ? "AUX_TC2" : "AUX_E";
+		return "AUX_E";
 	case POWER_DOMAIN_AUX_F:
-		BUILD_BUG_ON(POWER_DOMAIN_AUX_F != POWER_DOMAIN_AUX_TC3);
-		return ddi_tc_ports ? "AUX_TC3" : "AUX_F";
-	case POWER_DOMAIN_AUX_TC4:
-		return "AUX_TC4";
-	case POWER_DOMAIN_AUX_TC5:
-		return "AUX_TC5";
-	case POWER_DOMAIN_AUX_TC6:
-		return "AUX_TC6";
+		return "AUX_F";
+	case POWER_DOMAIN_AUX_G:
+		return "AUX_G";
+	case POWER_DOMAIN_AUX_H:
+		return "AUX_H";
+	case POWER_DOMAIN_AUX_I:
+		return "AUX_I";
 	case POWER_DOMAIN_AUX_IO_A:
 		return "AUX_IO_A";
-	case POWER_DOMAIN_AUX_TBT1:
-		return "AUX_TBT1";
-	case POWER_DOMAIN_AUX_TBT2:
-		return "AUX_TBT2";
-	case POWER_DOMAIN_AUX_TBT3:
-		return "AUX_TBT3";
-	case POWER_DOMAIN_AUX_TBT4:
-		return "AUX_TBT4";
-	case POWER_DOMAIN_AUX_TBT5:
-		return "AUX_TBT5";
-	case POWER_DOMAIN_AUX_TBT6:
-		return "AUX_TBT6";
+	case POWER_DOMAIN_AUX_C_TBT:
+		return "AUX_C_TBT";
+	case POWER_DOMAIN_AUX_D_TBT:
+		return "AUX_D_TBT";
+	case POWER_DOMAIN_AUX_E_TBT:
+		return "AUX_E_TBT";
+	case POWER_DOMAIN_AUX_F_TBT:
+		return "AUX_F_TBT";
+	case POWER_DOMAIN_AUX_G_TBT:
+		return "AUX_G_TBT";
+	case POWER_DOMAIN_AUX_H_TBT:
+		return "AUX_H_TBT";
+	case POWER_DOMAIN_AUX_I_TBT:
+		return "AUX_I_TBT";
 	case POWER_DOMAIN_GMBUS:
 		return "GMBUS";
 	case POWER_DOMAIN_INIT:
@@ -167,6 +153,8 @@
 		return "GT_IRQ";
 	case POWER_DOMAIN_DPLL_DC_OFF:
 		return "DPLL_DC_OFF";
+	case POWER_DOMAIN_TC_COLD_OFF:
+		return "TC_COLD_OFF";
 	default:
 		MISSING_CASE(domain);
 		return "?";
@@ -312,6 +300,70 @@
 		gen8_irq_power_well_pre_disable(dev_priv, irq_pipe_mask);
 }
 
+#define ICL_AUX_PW_TO_CH(pw_idx)	\
+	((pw_idx) - ICL_PW_CTL_IDX_AUX_A + AUX_CH_A)
+
+#define ICL_TBT_AUX_PW_TO_CH(pw_idx)	\
+	((pw_idx) - ICL_PW_CTL_IDX_AUX_TBT1 + AUX_CH_C)
+
+static enum aux_ch icl_tc_phy_aux_ch(struct drm_i915_private *dev_priv,
+				     struct i915_power_well *power_well)
+{
+	int pw_idx = power_well->desc->hsw.idx;
+
+	return power_well->desc->hsw.is_tc_tbt ? ICL_TBT_AUX_PW_TO_CH(pw_idx) :
+						 ICL_AUX_PW_TO_CH(pw_idx);
+}
+
+static struct intel_digital_port *
+aux_ch_to_digital_port(struct drm_i915_private *dev_priv,
+		       enum aux_ch aux_ch)
+{
+	struct intel_digital_port *dig_port = NULL;
+	struct intel_encoder *encoder;
+
+	for_each_intel_encoder(&dev_priv->drm, encoder) {
+		/* We'll check the MST primary port */
+		if (encoder->type == INTEL_OUTPUT_DP_MST)
+			continue;
+
+		dig_port = enc_to_dig_port(&encoder->base);
+		if (!dig_port)
+			continue;
+
+		if (dig_port->aux_ch != aux_ch) {
+			dig_port = NULL;
+			continue;
+		}
+
+		break;
+	}
+
+	return dig_port;
+}
+
+static bool tc_phy_aux_timeout_expected(struct drm_i915_private *dev_priv,
+					struct i915_power_well *power_well)
+{
+	/* An AUX timeout is expected if the TBT DP tunnel is down. */
+	if (power_well->desc->hsw.is_tc_tbt)
+		return true;
+
+	/*
+	 * An AUX timeout is expected because we enable TC legacy port aux
+	 * to hold port out of TC cold
+	 */
+	if (INTEL_GEN(dev_priv) == 11 &&
+	    power_well->desc->ops == &icl_tc_phy_aux_power_well_ops) {
+		enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
+		struct intel_digital_port *dig_port = aux_ch_to_digital_port(dev_priv, aux_ch);
+
+		return dig_port->tc_legacy_port;
+	}
+
+	return false;
+}
+
 static void hsw_wait_for_power_well_enable(struct drm_i915_private *dev_priv,
 					   struct i915_power_well *power_well)
 {
@@ -324,8 +376,8 @@
 		DRM_DEBUG_KMS("%s power well enable timeout\n",
 			      power_well->desc->name);
 
-		/* An AUX timeout is expected if the TBT DP tunnel is down. */
-		WARN_ON(!power_well->desc->hsw.is_tc_tbt);
+		WARN_ON(!tc_phy_aux_timeout_expected(dev_priv, power_well));
+
 	}
 }
 
@@ -381,16 +433,16 @@
 				      SKL_FUSE_PG_DIST_STATUS(pg), 1));
 }
 
-static void hsw_power_well_enable(struct drm_i915_private *dev_priv,
-				  struct i915_power_well *power_well)
+static void hsw_power_well_enable_prepare(struct drm_i915_private *dev_priv,
+					  struct i915_power_well *power_well)
 {
 	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
 	int pw_idx = power_well->desc->hsw.idx;
-	bool wait_fuses = power_well->desc->hsw.has_fuses;
-	enum skl_power_gate uninitialized_var(pg);
 	u32 val;
 
-	if (wait_fuses) {
+	if (power_well->desc->hsw.has_fuses) {
+		enum skl_power_gate pg;
+
 		pg = INTEL_GEN(dev_priv) >= 11 ? ICL_PW_CTL_IDX_TO_PG(pw_idx) :
 						 SKL_PW_CTL_IDX_TO_PG(pw_idx);
 		/*
@@ -406,25 +458,46 @@
 
 	val = I915_READ(regs->driver);
 	I915_WRITE(regs->driver, val | HSW_PWR_WELL_CTL_REQ(pw_idx));
+}
+
+static void hsw_power_well_enable_complete(struct drm_i915_private *dev_priv,
+					   struct i915_power_well *power_well)
+{
+	int pw_idx = power_well->desc->hsw.idx;
+
 	hsw_wait_for_power_well_enable(dev_priv, power_well);
 
 	/* Display WA #1178: cnl */
 	if (IS_CANNONLAKE(dev_priv) &&
 	    pw_idx >= GLK_PW_CTL_IDX_AUX_B &&
 	    pw_idx <= CNL_PW_CTL_IDX_AUX_F) {
+		u32 val;
+
 		val = I915_READ(CNL_AUX_ANAOVRD1(pw_idx));
 		val |= CNL_AUX_ANAOVRD1_ENABLE | CNL_AUX_ANAOVRD1_LDO_BYPASS;
 		I915_WRITE(CNL_AUX_ANAOVRD1(pw_idx), val);
 	}
 
-	if (wait_fuses)
+	if (power_well->desc->hsw.has_fuses) {
+		enum skl_power_gate pg;
+
+		pg = INTEL_GEN(dev_priv) >= 11 ? ICL_PW_CTL_IDX_TO_PG(pw_idx) :
+						 SKL_PW_CTL_IDX_TO_PG(pw_idx);
 		gen9_wait_for_power_well_fuses(dev_priv, pg);
+	}
 
 	hsw_power_well_post_enable(dev_priv,
 				   power_well->desc->hsw.irq_pipe_mask,
 				   power_well->desc->hsw.has_vga);
 }
 
+static void hsw_power_well_enable(struct drm_i915_private *dev_priv,
+				  struct i915_power_well *power_well)
+{
+	hsw_power_well_enable_prepare(dev_priv, power_well);
+	hsw_power_well_enable_complete(dev_priv, power_well);
+}
+
 static void hsw_power_well_disable(struct drm_i915_private *dev_priv,
 				   struct i915_power_well *power_well)
 {
@@ -497,21 +570,6 @@
 	hsw_wait_for_power_well_disable(dev_priv, power_well);
 }
 
-#define ICL_AUX_PW_TO_CH(pw_idx)	\
-	((pw_idx) - ICL_PW_CTL_IDX_AUX_A + AUX_CH_A)
-
-#define ICL_TBT_AUX_PW_TO_CH(pw_idx)	\
-	((pw_idx) - ICL_PW_CTL_IDX_AUX_TBT1 + AUX_CH_C)
-
-static enum aux_ch icl_tc_phy_aux_ch(struct drm_i915_private *dev_priv,
-				     struct i915_power_well *power_well)
-{
-	int pw_idx = power_well->desc->hsw.idx;
-
-	return power_well->desc->hsw.is_tc_tbt ? ICL_TBT_AUX_PW_TO_CH(pw_idx) :
-						 ICL_AUX_PW_TO_CH(pw_idx);
-}
-
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
 
 static u64 async_put_domains_mask(struct i915_power_domains *power_domains);
@@ -528,64 +586,63 @@
 }
 
 static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
-					struct i915_power_well *power_well)
+					struct i915_power_well *power_well,
+					struct intel_digital_port *dig_port)
 {
-	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
-	struct intel_digital_port *dig_port = NULL;
-	struct intel_encoder *encoder;
-
 	/* Bypass the check if all references are released asynchronously */
 	if (power_well_async_ref_count(dev_priv, power_well) ==
 	    power_well->count)
 		return;
 
-	aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
-
-	for_each_intel_encoder(&dev_priv->drm, encoder) {
-		enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-
-		if (!intel_phy_is_tc(dev_priv, phy))
-			continue;
-
-		/* We'll check the MST primary port */
-		if (encoder->type == INTEL_OUTPUT_DP_MST)
-			continue;
-
-		dig_port = enc_to_dig_port(&encoder->base);
-		if (WARN_ON(!dig_port))
-			continue;
-
-		if (dig_port->aux_ch != aux_ch) {
-			dig_port = NULL;
-			continue;
-		}
-
-		break;
-	}
-
 	if (WARN_ON(!dig_port))
 		return;
 
+	if (INTEL_GEN(dev_priv) == 11 && dig_port->tc_legacy_port)
+		return;
+
 	WARN_ON(!intel_tc_port_ref_held(dig_port));
 }
 
 #else
 
 static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
-					struct i915_power_well *power_well)
+					struct i915_power_well *power_well,
+					struct intel_digital_port *dig_port)
 {
 }
 
 #endif
 
+static void icl_tc_cold_exit(struct drm_i915_private *i915)
+{
+	int ret, tries = 0;
+
+	while (1) {
+		ret = sandybridge_pcode_write_timeout(i915,
+						      ICL_PCODE_EXIT_TCCOLD,
+						      0, 250, 1);
+		if (ret != -EAGAIN || ++tries == 3)
+			break;
+		msleep(1);
+	}
+
+	/* Spec states that TC cold exit can take up to 1ms to complete */
+	if (!ret)
+		msleep(1);
+
+	/* TODO: turn failure into a error as soon i915 CI updates ICL IFWI */
+	DRM_DEBUG_KMS("TC cold block %s\n", ret ? "failed" : "succeeded");
+}
+
 static void
 icl_tc_phy_aux_power_well_enable(struct drm_i915_private *dev_priv,
 				 struct i915_power_well *power_well)
 {
 	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
+	struct intel_digital_port *dig_port = aux_ch_to_digital_port(dev_priv, aux_ch);
 	u32 val;
 
-	icl_tc_port_assert_ref_held(dev_priv, power_well);
+	icl_tc_port_assert_ref_held(dev_priv, power_well, dig_port);
 
 	val = I915_READ(DP_AUX_CH_CTL(aux_ch));
 	val &= ~DP_AUX_CH_CTL_TBT_IO;
@@ -593,14 +650,22 @@
 		val |= DP_AUX_CH_CTL_TBT_IO;
 	I915_WRITE(DP_AUX_CH_CTL(aux_ch), val);
 
-	hsw_power_well_enable(dev_priv, power_well);
+	hsw_power_well_enable_prepare(dev_priv, power_well);
+
+	if (INTEL_GEN(dev_priv) == 11 && dig_port->tc_legacy_port)
+		icl_tc_cold_exit(dev_priv);
+
+	hsw_power_well_enable_complete(dev_priv, power_well);
 }
 
 static void
 icl_tc_phy_aux_power_well_disable(struct drm_i915_private *dev_priv,
 				  struct i915_power_well *power_well)
 {
-	icl_tc_port_assert_ref_held(dev_priv, power_well);
+	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
+	struct intel_digital_port *dig_port = aux_ch_to_digital_port(dev_priv, aux_ch);
+
+	icl_tc_port_assert_ref_held(dev_priv, power_well, dig_port);
 
 	hsw_power_well_disable(dev_priv, power_well);
 }
@@ -1718,15 +1783,12 @@
 static void print_power_domains(struct i915_power_domains *power_domains,
 				const char *prefix, u64 mask)
 {
-	struct drm_i915_private *i915 =
-		container_of(power_domains, struct drm_i915_private,
-			     power_domains);
 	enum intel_display_power_domain domain;
 
 	DRM_DEBUG_DRIVER("%s (%lu):\n", prefix, hweight64(mask));
 	for_each_power_domain(domain, mask)
 		DRM_DEBUG_DRIVER("%s use_count %d\n",
-				 intel_display_power_domain_str(i915, domain),
+				 intel_display_power_domain_str(domain),
 				 power_domains->domain_use_count[domain]);
 }
 
@@ -1896,7 +1958,7 @@
 {
 	struct i915_power_domains *power_domains;
 	struct i915_power_well *power_well;
-	const char *name = intel_display_power_domain_str(dev_priv, domain);
+	const char *name = intel_display_power_domain_str(domain);
 
 	power_domains = &dev_priv->power_domains;
 
@@ -2487,10 +2549,10 @@
 	BIT_ULL(POWER_DOMAIN_AUX_D) |			\
 	BIT_ULL(POWER_DOMAIN_AUX_E) |			\
 	BIT_ULL(POWER_DOMAIN_AUX_F) |			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT1) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT2) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT3) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT4) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_C_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT) |		\
 	BIT_ULL(POWER_DOMAIN_VGA) |			\
 	BIT_ULL(POWER_DOMAIN_AUDIO) |			\
 	BIT_ULL(POWER_DOMAIN_INIT))
@@ -2530,22 +2592,22 @@
 	BIT_ULL(POWER_DOMAIN_AUX_A))
 #define ICL_AUX_B_IO_POWER_DOMAINS (			\
 	BIT_ULL(POWER_DOMAIN_AUX_B))
-#define ICL_AUX_C_IO_POWER_DOMAINS (			\
+#define ICL_AUX_C_TC1_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_C))
-#define ICL_AUX_D_IO_POWER_DOMAINS (			\
+#define ICL_AUX_D_TC2_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_D))
-#define ICL_AUX_E_IO_POWER_DOMAINS (			\
+#define ICL_AUX_E_TC3_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_E))
-#define ICL_AUX_F_IO_POWER_DOMAINS (			\
+#define ICL_AUX_F_TC4_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_F))
-#define ICL_AUX_TBT1_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT1))
-#define ICL_AUX_TBT2_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT2))
-#define ICL_AUX_TBT3_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT3))
-#define ICL_AUX_TBT4_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT4))
+#define ICL_AUX_C_TBT1_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_C_TBT))
+#define ICL_AUX_D_TBT2_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT))
+#define ICL_AUX_E_TBT3_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT))
+#define ICL_AUX_F_TBT4_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT))
 
 #define TGL_PW_5_POWER_DOMAINS (			\
 	BIT_ULL(POWER_DOMAIN_PIPE_D) |			\
@@ -2565,24 +2627,24 @@
 	BIT_ULL(POWER_DOMAIN_PIPE_B) |			\
 	BIT_ULL(POWER_DOMAIN_TRANSCODER_B) |		\
 	BIT_ULL(POWER_DOMAIN_PIPE_B_PANEL_FITTER) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC1_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC2_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC3_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC4_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC5_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC6_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_AUX_TC1) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC2) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC3) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC4) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC5) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC6) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT1) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT2) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT3) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT4) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT5) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT6) |		\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_D_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_E_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_F_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_G_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_H_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_I_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_AUX_D) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_E) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_F) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_G) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_H) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_I) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_G_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_H_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_I_TBT) |		\
 	BIT_ULL(POWER_DOMAIN_VGA) |			\
 	BIT_ULL(POWER_DOMAIN_AUDIO) |			\
 	BIT_ULL(POWER_DOMAIN_INIT))
@@ -2598,35 +2660,65 @@
 	BIT_ULL(POWER_DOMAIN_AUX_A) |			\
 	BIT_ULL(POWER_DOMAIN_INIT))
 
-#define TGL_DDI_IO_TC1_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC1_IO))
-#define TGL_DDI_IO_TC2_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC2_IO))
-#define TGL_DDI_IO_TC3_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC3_IO))
-#define TGL_DDI_IO_TC4_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC4_IO))
-#define TGL_DDI_IO_TC5_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC5_IO))
-#define TGL_DDI_IO_TC6_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC6_IO))
-
-#define TGL_AUX_TC1_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC1))
-#define TGL_AUX_TC2_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC2))
-#define TGL_AUX_TC3_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC3))
-#define TGL_AUX_TC4_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC4))
-#define TGL_AUX_TC5_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC5))
-#define TGL_AUX_TC6_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC6))
-#define TGL_AUX_TBT5_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT5))
-#define TGL_AUX_TBT6_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT6))
+#define TGL_DDI_IO_D_TC1_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_D_IO))
+#define TGL_DDI_IO_E_TC2_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_E_IO))
+#define TGL_DDI_IO_F_TC3_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_F_IO))
+#define TGL_DDI_IO_G_TC4_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_G_IO))
+#define TGL_DDI_IO_H_TC5_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_H_IO))
+#define TGL_DDI_IO_I_TC6_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_I_IO))
+
+#define TGL_AUX_A_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_IO_A) |	\
+	BIT_ULL(POWER_DOMAIN_AUX_A))
+#define TGL_AUX_B_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_B))
+#define TGL_AUX_C_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_C))
+#define TGL_AUX_D_TC1_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_D))
+#define TGL_AUX_E_TC2_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_E))
+#define TGL_AUX_F_TC3_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_F))
+#define TGL_AUX_G_TC4_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_G))
+#define TGL_AUX_H_TC5_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_H))
+#define TGL_AUX_I_TC6_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_I))
+#define TGL_AUX_D_TBT1_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT))
+#define TGL_AUX_E_TBT2_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT))
+#define TGL_AUX_F_TBT3_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT))
+#define TGL_AUX_G_TBT4_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_G_TBT))
+#define TGL_AUX_H_TBT5_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_H_TBT))
+#define TGL_AUX_I_TBT6_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_I_TBT))
+
+#define TGL_TC_COLD_OFF_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_D)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_E)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_F)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_G)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_H)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_I)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_G_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_H_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_I_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_TC_COLD_OFF))
 
 static const struct i915_power_well_ops i9xx_always_on_power_well_ops = {
 	.sync_hw = i9xx_power_well_sync_hw_noop,
@@ -3484,8 +3576,8 @@
 		},
 	},
 	{
-		.name = "AUX C",
-		.domains = ICL_AUX_C_IO_POWER_DOMAINS,
+		.name = "AUX C TC1",
+		.domains = ICL_AUX_C_TC1_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3495,8 +3587,8 @@
 		},
 	},
 	{
-		.name = "AUX D",
-		.domains = ICL_AUX_D_IO_POWER_DOMAINS,
+		.name = "AUX D TC2",
+		.domains = ICL_AUX_D_TC2_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3506,8 +3598,8 @@
 		},
 	},
 	{
-		.name = "AUX E",
-		.domains = ICL_AUX_E_IO_POWER_DOMAINS,
+		.name = "AUX E TC3",
+		.domains = ICL_AUX_E_TC3_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3517,8 +3609,8 @@
 		},
 	},
 	{
-		.name = "AUX F",
-		.domains = ICL_AUX_F_IO_POWER_DOMAINS,
+		.name = "AUX F TC4",
+		.domains = ICL_AUX_F_TC4_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3528,8 +3620,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT1",
-		.domains = ICL_AUX_TBT1_IO_POWER_DOMAINS,
+		.name = "AUX C TBT1",
+		.domains = ICL_AUX_C_TBT1_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3539,8 +3631,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT2",
-		.domains = ICL_AUX_TBT2_IO_POWER_DOMAINS,
+		.name = "AUX D TBT2",
+		.domains = ICL_AUX_D_TBT2_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3550,8 +3642,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT3",
-		.domains = ICL_AUX_TBT3_IO_POWER_DOMAINS,
+		.name = "AUX E TBT3",
+		.domains = ICL_AUX_E_TBT3_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3561,8 +3653,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT4",
-		.domains = ICL_AUX_TBT4_IO_POWER_DOMAINS,
+		.name = "AUX F TBT4",
+		.domains = ICL_AUX_F_TBT4_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3585,6 +3677,89 @@
 	},
 };
 
+static void
+tgl_tc_cold_request(struct drm_i915_private *i915, bool block)
+{
+	u8 tries = 0;
+	int ret;
+
+	while (1) {
+		u32 low_val = 0, high_val;
+
+		if (block)
+			high_val = TGL_PCODE_EXIT_TCCOLD_DATA_H_BLOCK_REQ;
+		else
+			high_val = TGL_PCODE_EXIT_TCCOLD_DATA_H_UNBLOCK_REQ;
+
+		/*
+		 * Spec states that we should timeout the request after 200us
+		 * but the function below will timeout after 500us
+		 */
+		ret = sandybridge_pcode_read(i915, TGL_PCODE_TCCOLD, &low_val,
+					     &high_val);
+		if (ret == 0) {
+			if (block &&
+			    (low_val & TGL_PCODE_EXIT_TCCOLD_DATA_L_EXIT_FAILED))
+				ret = -EIO;
+			else
+				break;
+		}
+
+		if (++tries == 3)
+			break;
+
+		if (ret == -EAGAIN)
+			msleep(1);
+	}
+
+	if (ret)
+		DRM_ERROR("TC cold %sblock failed\n", block ? "" : "un");
+	else
+		DRM_DEBUG_KMS("TC cold %sblock succeeded\n", block ? "" : "un");
+}
+
+static void
+tgl_tc_cold_off_power_well_enable(struct drm_i915_private *i915,
+				  struct i915_power_well *power_well)
+{
+	tgl_tc_cold_request(i915, true);
+}
+
+static void
+tgl_tc_cold_off_power_well_disable(struct drm_i915_private *i915,
+				   struct i915_power_well *power_well)
+{
+	tgl_tc_cold_request(i915, false);
+}
+
+static void
+tgl_tc_cold_off_power_well_sync_hw(struct drm_i915_private *i915,
+				   struct i915_power_well *power_well)
+{
+	if (power_well->count > 0)
+		tgl_tc_cold_off_power_well_enable(i915, power_well);
+	else
+		tgl_tc_cold_off_power_well_disable(i915, power_well);
+}
+
+static bool
+tgl_tc_cold_off_power_well_is_enabled(struct drm_i915_private *dev_priv,
+				      struct i915_power_well *power_well)
+{
+	/*
+	 * Not the correctly implementation but there is no way to just read it
+	 * from PCODE, so returning count to avoid state mismatch errors
+	 */
+	return power_well->count;
+}
+
+static const struct i915_power_well_ops tgl_tc_cold_off_ops = {
+	.sync_hw = tgl_tc_cold_off_power_well_sync_hw,
+	.enable = tgl_tc_cold_off_power_well_enable,
+	.disable = tgl_tc_cold_off_power_well_disable,
+	.is_enabled = tgl_tc_cold_off_power_well_is_enabled,
+};
+
 static const struct i915_power_well_desc tgl_power_wells[] = {
 	{
 		.name = "always-on",
@@ -3667,8 +3842,8 @@
 		}
 	},
 	{
-		.name = "DDI TC1 IO",
-		.domains = TGL_DDI_IO_TC1_POWER_DOMAINS,
+		.name = "DDI D TC1 IO",
+		.domains = TGL_DDI_IO_D_TC1_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3677,8 +3852,8 @@
 		},
 	},
 	{
-		.name = "DDI TC2 IO",
-		.domains = TGL_DDI_IO_TC2_POWER_DOMAINS,
+		.name = "DDI E TC2 IO",
+		.domains = TGL_DDI_IO_E_TC2_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3687,8 +3862,8 @@
 		},
 	},
 	{
-		.name = "DDI TC3 IO",
-		.domains = TGL_DDI_IO_TC3_POWER_DOMAINS,
+		.name = "DDI F TC3 IO",
+		.domains = TGL_DDI_IO_F_TC3_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3697,8 +3872,8 @@
 		},
 	},
 	{
-		.name = "DDI TC4 IO",
-		.domains = TGL_DDI_IO_TC4_POWER_DOMAINS,
+		.name = "DDI G TC4 IO",
+		.domains = TGL_DDI_IO_G_TC4_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3707,8 +3882,8 @@
 		},
 	},
 	{
-		.name = "DDI TC5 IO",
-		.domains = TGL_DDI_IO_TC5_POWER_DOMAINS,
+		.name = "DDI H TC5 IO",
+		.domains = TGL_DDI_IO_H_TC5_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3717,8 +3892,8 @@
 		},
 	},
 	{
-		.name = "DDI TC6 IO",
-		.domains = TGL_DDI_IO_TC6_POWER_DOMAINS,
+		.name = "DDI I TC6 IO",
+		.domains = TGL_DDI_IO_I_TC6_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3728,7 +3903,7 @@
 	},
 	{
 		.name = "AUX A",
-		.domains = ICL_AUX_A_IO_POWER_DOMAINS,
+		.domains = TGL_AUX_A_IO_POWER_DOMAINS,
 		.ops = &icl_combo_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3738,7 +3913,7 @@
 	},
 	{
 		.name = "AUX B",
-		.domains = ICL_AUX_B_IO_POWER_DOMAINS,
+		.domains = TGL_AUX_B_IO_POWER_DOMAINS,
 		.ops = &icl_combo_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3748,7 +3923,7 @@
 	},
 	{
 		.name = "AUX C",
-		.domains = ICL_AUX_C_IO_POWER_DOMAINS,
+		.domains = TGL_AUX_C_IO_POWER_DOMAINS,
 		.ops = &icl_combo_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3757,8 +3932,8 @@
 		},
 	},
 	{
-		.name = "AUX TC1",
-		.domains = TGL_AUX_TC1_IO_POWER_DOMAINS,
+		.name = "AUX D TC1",
+		.domains = TGL_AUX_D_TC1_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3768,8 +3943,8 @@
 		},
 	},
 	{
-		.name = "AUX TC2",
-		.domains = TGL_AUX_TC2_IO_POWER_DOMAINS,
+		.name = "AUX E TC2",
+		.domains = TGL_AUX_E_TC2_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3779,8 +3954,8 @@
 		},
 	},
 	{
-		.name = "AUX TC3",
-		.domains = TGL_AUX_TC3_IO_POWER_DOMAINS,
+		.name = "AUX F TC3",
+		.domains = TGL_AUX_F_TC3_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3790,8 +3965,8 @@
 		},
 	},
 	{
-		.name = "AUX TC4",
-		.domains = TGL_AUX_TC4_IO_POWER_DOMAINS,
+		.name = "AUX G TC4",
+		.domains = TGL_AUX_G_TC4_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3801,8 +3976,8 @@
 		},
 	},
 	{
-		.name = "AUX TC5",
-		.domains = TGL_AUX_TC5_IO_POWER_DOMAINS,
+		.name = "AUX H TC5",
+		.domains = TGL_AUX_H_TC5_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3812,8 +3987,8 @@
 		},
 	},
 	{
-		.name = "AUX TC6",
-		.domains = TGL_AUX_TC6_IO_POWER_DOMAINS,
+		.name = "AUX I TC6",
+		.domains = TGL_AUX_I_TC6_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3823,8 +3998,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT1",
-		.domains = ICL_AUX_TBT1_IO_POWER_DOMAINS,
+		.name = "AUX D TBT1",
+		.domains = TGL_AUX_D_TBT1_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3834,8 +4009,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT2",
-		.domains = ICL_AUX_TBT2_IO_POWER_DOMAINS,
+		.name = "AUX E TBT2",
+		.domains = TGL_AUX_E_TBT2_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3845,8 +4020,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT3",
-		.domains = ICL_AUX_TBT3_IO_POWER_DOMAINS,
+		.name = "AUX F TBT3",
+		.domains = TGL_AUX_F_TBT3_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3856,8 +4031,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT4",
-		.domains = ICL_AUX_TBT4_IO_POWER_DOMAINS,
+		.name = "AUX G TBT4",
+		.domains = TGL_AUX_G_TBT4_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3867,8 +4042,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT5",
-		.domains = TGL_AUX_TBT5_IO_POWER_DOMAINS,
+		.name = "AUX H TBT5",
+		.domains = TGL_AUX_H_TBT5_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3878,8 +4053,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT6",
-		.domains = TGL_AUX_TBT6_IO_POWER_DOMAINS,
+		.name = "AUX I TBT6",
+		.domains = TGL_AUX_I_TBT6_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3912,6 +4087,12 @@
 			.hsw.irq_pipe_mask = BIT(PIPE_D),
 		},
 	},
+	{
+		.name = "TC cold off",
+		.domains = TGL_TC_COLD_OFF_POWER_DOMAINS,
+		.ops = &tgl_tc_cold_off_ops,
+		.id = DISP_PW_ID_NONE,
+	},
 };
 
 static int
@@ -4205,13 +4386,19 @@
 
 static void icl_mbus_init(struct drm_i915_private *dev_priv)
 {
-	u32 val;
+	u32 mask, val;
 
-	val = MBUS_ABOX_BT_CREDIT_POOL1(16) |
-	      MBUS_ABOX_BT_CREDIT_POOL2(16) |
-	      MBUS_ABOX_B_CREDIT(1) |
-	      MBUS_ABOX_BW_CREDIT(1);
+	mask = MBUS_ABOX_BT_CREDIT_POOL1_MASK |
+		MBUS_ABOX_BT_CREDIT_POOL2_MASK |
+		MBUS_ABOX_B_CREDIT_MASK |
+		MBUS_ABOX_BW_CREDIT_MASK;
 
+	val = I915_READ(MBUS_ABOX_CTL);
+	val &= ~mask;
+	val |= MBUS_ABOX_BT_CREDIT_POOL1(16) |
+		MBUS_ABOX_BT_CREDIT_POOL2(16) |
+		MBUS_ABOX_B_CREDIT(1) |
+		MBUS_ABOX_BW_CREDIT(1);
 	I915_WRITE(MBUS_ABOX_CTL, val);
 }
 
@@ -5107,8 +5294,7 @@
 
 		for_each_power_domain(domain, power_well->desc->domains)
 			DRM_DEBUG_DRIVER("  %-23s %d\n",
-					 intel_display_power_domain_str(i915,
-									domain),
+					 intel_display_power_domain_str(domain),
 					 power_domains->domain_use_count[domain]);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display_power.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_display_power.h
@@ -36,29 +36,20 @@
 	POWER_DOMAIN_PORT_DDI_B_LANES,
 	POWER_DOMAIN_PORT_DDI_C_LANES,
 	POWER_DOMAIN_PORT_DDI_D_LANES,
-	POWER_DOMAIN_PORT_DDI_TC1_LANES = POWER_DOMAIN_PORT_DDI_D_LANES,
 	POWER_DOMAIN_PORT_DDI_E_LANES,
-	POWER_DOMAIN_PORT_DDI_TC2_LANES = POWER_DOMAIN_PORT_DDI_E_LANES,
 	POWER_DOMAIN_PORT_DDI_F_LANES,
-	POWER_DOMAIN_PORT_DDI_TC3_LANES = POWER_DOMAIN_PORT_DDI_F_LANES,
-	POWER_DOMAIN_PORT_DDI_TC4_LANES,
-	POWER_DOMAIN_PORT_DDI_TC5_LANES,
-	POWER_DOMAIN_PORT_DDI_TC6_LANES,
+	POWER_DOMAIN_PORT_DDI_G_LANES,
+	POWER_DOMAIN_PORT_DDI_H_LANES,
+	POWER_DOMAIN_PORT_DDI_I_LANES,
 	POWER_DOMAIN_PORT_DDI_A_IO,
 	POWER_DOMAIN_PORT_DDI_B_IO,
 	POWER_DOMAIN_PORT_DDI_C_IO,
 	POWER_DOMAIN_PORT_DDI_D_IO,
-	POWER_DOMAIN_PORT_DDI_TC1_IO = POWER_DOMAIN_PORT_DDI_D_IO,
 	POWER_DOMAIN_PORT_DDI_E_IO,
-	POWER_DOMAIN_PORT_DDI_TC2_IO = POWER_DOMAIN_PORT_DDI_E_IO,
 	POWER_DOMAIN_PORT_DDI_F_IO,
-	POWER_DOMAIN_PORT_DDI_TC3_IO = POWER_DOMAIN_PORT_DDI_F_IO,
 	POWER_DOMAIN_PORT_DDI_G_IO,
-	POWER_DOMAIN_PORT_DDI_TC4_IO = POWER_DOMAIN_PORT_DDI_G_IO,
 	POWER_DOMAIN_PORT_DDI_H_IO,
-	POWER_DOMAIN_PORT_DDI_TC5_IO = POWER_DOMAIN_PORT_DDI_H_IO,
 	POWER_DOMAIN_PORT_DDI_I_IO,
-	POWER_DOMAIN_PORT_DDI_TC6_IO = POWER_DOMAIN_PORT_DDI_I_IO,
 	POWER_DOMAIN_PORT_DSI,
 	POWER_DOMAIN_PORT_CRT,
 	POWER_DOMAIN_PORT_OTHER,
@@ -68,25 +59,24 @@
 	POWER_DOMAIN_AUX_B,
 	POWER_DOMAIN_AUX_C,
 	POWER_DOMAIN_AUX_D,
-	POWER_DOMAIN_AUX_TC1 = POWER_DOMAIN_AUX_D,
 	POWER_DOMAIN_AUX_E,
-	POWER_DOMAIN_AUX_TC2 = POWER_DOMAIN_AUX_E,
 	POWER_DOMAIN_AUX_F,
-	POWER_DOMAIN_AUX_TC3 = POWER_DOMAIN_AUX_F,
-	POWER_DOMAIN_AUX_TC4,
-	POWER_DOMAIN_AUX_TC5,
-	POWER_DOMAIN_AUX_TC6,
+	POWER_DOMAIN_AUX_G,
+	POWER_DOMAIN_AUX_H,
+	POWER_DOMAIN_AUX_I,
 	POWER_DOMAIN_AUX_IO_A,
-	POWER_DOMAIN_AUX_TBT1,
-	POWER_DOMAIN_AUX_TBT2,
-	POWER_DOMAIN_AUX_TBT3,
-	POWER_DOMAIN_AUX_TBT4,
-	POWER_DOMAIN_AUX_TBT5,
-	POWER_DOMAIN_AUX_TBT6,
+	POWER_DOMAIN_AUX_C_TBT,
+	POWER_DOMAIN_AUX_D_TBT,
+	POWER_DOMAIN_AUX_E_TBT,
+	POWER_DOMAIN_AUX_F_TBT,
+	POWER_DOMAIN_AUX_G_TBT,
+	POWER_DOMAIN_AUX_H_TBT,
+	POWER_DOMAIN_AUX_I_TBT,
 	POWER_DOMAIN_GMBUS,
 	POWER_DOMAIN_MODESET,
 	POWER_DOMAIN_GT_IRQ,
 	POWER_DOMAIN_DPLL_DC_OFF,
+	POWER_DOMAIN_TC_COLD_OFF,
 	POWER_DOMAIN_INIT,
 
 	POWER_DOMAIN_NUM,
@@ -269,8 +259,7 @@
 void intel_display_power_resume(struct drm_i915_private *i915);
 
 const char *
-intel_display_power_domain_str(struct drm_i915_private *i915,
-			       enum intel_display_power_domain domain);
+intel_display_power_domain_str(enum intel_display_power_domain domain);
 
 bool intel_display_power_is_enabled(struct drm_i915_private *dev_priv,
 				    enum intel_display_power_domain domain);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -214,6 +214,9 @@
 		u8 controller;		/* bxt+ only */
 		struct pwm_device *pwm;
 
+		/* DPCD backlight */
+		u8 pwmgen_bit_count;
+
 		struct backlight_device *device;
 
 		/* Connector and platform specific backlight functions */
@@ -1176,6 +1179,7 @@
 	int max_link_rate;
 	/* sink or branch descriptor */
 	struct drm_dp_desc desc;
+	u32 edid_quirks;
 	struct drm_dp_aux aux;
 	u8 train_set[4];
 	int panel_power_up_delay;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_dp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_dp.c
@@ -567,7 +567,7 @@
 		return 0;
 	}
 	/* Also take into account max slice width */
-	min_slice_count = min_t(u8, min_slice_count,
+	min_slice_count = max_t(u8, min_slice_count,
 				DIV_ROUND_UP(mode_hdisplay,
 					     max_slice_width));
 
@@ -1292,8 +1292,7 @@
 	bool is_tc_port = intel_phy_is_tc(i915, phy);
 	i915_reg_t ch_ctl, ch_data[5];
 	u32 aux_clock_divider;
-	enum intel_display_power_domain aux_domain =
-		intel_aux_power_domain(intel_dig_port);
+	enum intel_display_power_domain aux_domain;
 	intel_wakeref_t aux_wakeref;
 	intel_wakeref_t pps_wakeref;
 	int i, ret, recv_bytes;
@@ -1308,6 +1307,8 @@
 	if (is_tc_port)
 		intel_tc_port_lock(intel_dig_port);
 
+	aux_domain = intel_aux_power_domain(intel_dig_port);
+
 	aux_wakeref = intel_display_power_get(i915, aux_domain);
 	pps_wakeref = pps_lock(intel_dp);
 
@@ -2251,7 +2252,7 @@
 	struct intel_connector *intel_connector = intel_dp->attached_connector;
 	struct intel_digital_connector_state *intel_conn_state =
 		to_intel_digital_connector_state(conn_state);
-	bool constant_n = drm_dp_has_quirk(&intel_dp->desc,
+	bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0,
 					   DP_DPCD_QUIRK_CONSTANT_N);
 	int ret = 0, output_bpp;
 
@@ -4327,7 +4328,8 @@
 	 * it don't care about read it here and in intel_edp_init_dpcd().
 	 */
 	if (!intel_dp_is_edp(intel_dp) &&
-	    !drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_SINK_COUNT)) {
+	    !drm_dp_has_quirk(&intel_dp->desc, 0,
+			      DP_DPCD_QUIRK_NO_SINK_COUNT)) {
 		u8 count;
 		ssize_t r;
 
@@ -5328,6 +5330,7 @@
 
 	intel_dp->has_audio = drm_detect_monitor_audio(edid);
 	drm_dp_cec_set_edid(&intel_dp->aux, edid);
+	intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid);
 }
 
 static void
@@ -5340,6 +5343,7 @@
 	intel_connector->detect_edid = NULL;
 
 	intel_dp->has_audio = false;
+	intel_dp->edid_quirks = 0;
 }
 
 static int
@@ -7046,8 +7050,8 @@
 	edid = drm_get_edid(connector, &intel_dp->aux.ddc);
 	if (edid) {
 		if (drm_add_edid_modes(connector, edid)) {
-			drm_connector_update_edid_property(connector,
-								edid);
+			drm_connector_update_edid_property(connector, edid);
+			intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid);
 		} else {
 			kfree(edid);
 			edid = ERR_PTR(-EINVAL);
@@ -7218,11 +7222,8 @@
 		intel_connector->get_hw_state = intel_connector_get_hw_state;
 
 	/* init MST on ports that can support it */
-	if (HAS_DP_MST(dev_priv) && !intel_dp_is_edp(intel_dp) &&
-	    (port == PORT_B || port == PORT_C ||
-	     port == PORT_D || port == PORT_F))
-		intel_dp_mst_encoder_init(intel_dig_port,
-					  intel_connector->base.base.id);
+	intel_dp_mst_encoder_init(intel_dig_port,
+				  intel_connector->base.base.id);
 
 	if (!intel_edp_init_connector(intel_dp, intel_connector)) {
 		intel_dp_aux_fini(intel_dp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
@@ -59,8 +59,23 @@
 {
 	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
 	u8 read_val[2] = { 0x0 };
+	u8 control_reg;
 	u16 level = 0;
 
+	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_DISPLAY_CONTROL_REGISTER,
+			      &control_reg) != 1) {
+		DRM_DEBUG_KMS("Failed to read the DPCD register 0x%x\n",
+			      DP_EDP_DISPLAY_CONTROL_REGISTER);
+		return 0;
+	}
+
+	/*
+	 * If we're not in DPCD control mode yet, the programmed brightness
+	 * value is meaningless and we should assume max brightness
+	 */
+	if (!(control_reg & DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD))
+		return connector->panel.backlight.max;
+
 	if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_BACKLIGHT_BRIGHTNESS_MSB,
 			     &read_val, sizeof(read_val)) < 0) {
 		DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n",
@@ -111,61 +126,28 @@
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
-	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
-	u8 pn, pn_min, pn_max;
+	const u8 pn = connector->panel.backlight.pwmgen_bit_count;
+	int freq, fxp, f, fxp_actual, fxp_min, fxp_max;
 
-	/* Find desired value of (F x P)
-	 * Note that, if F x P is out of supported range, the maximum value or
-	 * minimum value will applied automatically. So no need to check that.
-	 */
 	freq = dev_priv->vbt.backlight.pwm_freq_hz;
-	DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq);
 	if (!freq) {
 		DRM_DEBUG_KMS("Use panel default backlight frequency\n");
 		return false;
 	}
 
 	fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq);
+	f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255);
+	fxp_actual = f << pn;
 
-	/* Use highest possible value of Pn for more granularity of brightness
-	 * adjustment while satifying the conditions below.
-	 * - Pn is in the range of Pn_min and Pn_max
-	 * - F is in the range of 1 and 255
-	 * - FxP is within 25% of desired value.
-	 *   Note: 25% is arbitrary value and may need some tweak.
-	 */
-	if (drm_dp_dpcd_readb(&intel_dp->aux,
-			       DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) {
-		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n");
-		return false;
-	}
-	if (drm_dp_dpcd_readb(&intel_dp->aux,
-			       DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) {
-		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n");
-		return false;
-	}
-	pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
-	pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
-
+	/* Ensure frequency is within 25% of desired value */
 	fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4);
 	fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4);
-	if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) {
-		DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n");
-		return false;
-	}
-
-	for (pn = pn_max; pn >= pn_min; pn--) {
-		f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255);
-		fxp_actual = f << pn;
-		if (fxp_min <= fxp_actual && fxp_actual <= fxp_max)
-			break;
-	}
 
-	if (drm_dp_dpcd_writeb(&intel_dp->aux,
-			       DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) {
-		DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n");
+	if (fxp_min > fxp_actual || fxp_actual > fxp_max) {
+		DRM_DEBUG_KMS("Actual frequency out of range\n");
 		return false;
 	}
+
 	if (drm_dp_dpcd_writeb(&intel_dp->aux,
 			       DP_EDP_BACKLIGHT_FREQ_SET, (u8) f) < 0) {
 		DRM_DEBUG_KMS("Failed to write aux backlight freq\n");
@@ -178,6 +160,7 @@
 					  const struct drm_connector_state *conn_state)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
+	struct intel_panel *panel = &connector->panel;
 	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
 	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
 
@@ -197,6 +180,12 @@
 	case DP_EDP_BACKLIGHT_CONTROL_MODE_PRODUCT:
 		new_dpcd_buf &= ~DP_EDP_BACKLIGHT_CONTROL_MODE_MASK;
 		new_dpcd_buf |= DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD;
+
+		if (drm_dp_dpcd_writeb(&intel_dp->aux,
+				       DP_EDP_PWMGEN_BIT_COUNT,
+				       panel->backlight.pwmgen_bit_count) < 0)
+			DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n");
+
 		break;
 
 	/* Do nothing when it is already DPCD mode */
@@ -216,8 +205,9 @@
 		}
 	}
 
+	intel_dp_aux_set_backlight(conn_state,
+				   connector->panel.backlight.level);
 	set_aux_backlight_enable(intel_dp, true);
-	intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level);
 }
 
 static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)
@@ -225,20 +215,91 @@
 	set_aux_backlight_enable(enc_to_intel_dp(old_conn_state->best_encoder), false);
 }
 
+static u32 intel_dp_aux_calc_max_backlight(struct intel_connector *connector)
+{
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_panel *panel = &connector->panel;
+	u32 max_backlight = 0;
+	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
+	u8 pn, pn_min, pn_max;
+
+	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_PWMGEN_BIT_COUNT, &pn)) {
+		pn &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
+		max_backlight = (1 << pn) - 1;
+	}
+
+	/* Find desired value of (F x P)
+	 * Note that, if F x P is out of supported range, the maximum value or
+	 * minimum value will applied automatically. So no need to check that.
+	 */
+	freq = dev_priv->vbt.backlight.pwm_freq_hz;
+	DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq);
+	if (!freq) {
+		DRM_DEBUG_KMS("Use panel default backlight frequency\n");
+		return max_backlight;
+	}
+
+	fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq);
+
+	/* Use highest possible value of Pn for more granularity of brightness
+	 * adjustment while satifying the conditions below.
+	 * - Pn is in the range of Pn_min and Pn_max
+	 * - F is in the range of 1 and 255
+	 * - FxP is within 25% of desired value.
+	 *   Note: 25% is arbitrary value and may need some tweak.
+	 */
+	if (drm_dp_dpcd_readb(&intel_dp->aux,
+			      DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) {
+		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n");
+		return max_backlight;
+	}
+	if (drm_dp_dpcd_readb(&intel_dp->aux,
+			      DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) {
+		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n");
+		return max_backlight;
+	}
+	pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
+	pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
+
+	fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4);
+	fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4);
+	if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) {
+		DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n");
+		return max_backlight;
+	}
+
+	for (pn = pn_max; pn >= pn_min; pn--) {
+		f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255);
+		fxp_actual = f << pn;
+		if (fxp_min <= fxp_actual && fxp_actual <= fxp_max)
+			break;
+	}
+
+	DRM_DEBUG_KMS("Using eDP pwmgen bit count of %d\n", pn);
+	if (drm_dp_dpcd_writeb(&intel_dp->aux,
+			       DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) {
+		DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n");
+		return max_backlight;
+	}
+	panel->backlight.pwmgen_bit_count = pn;
+
+	max_backlight = (1 << pn) - 1;
+
+	return max_backlight;
+}
+
 static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 					enum pipe pipe)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
 	struct intel_panel *panel = &connector->panel;
 
-	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
-		panel->backlight.max = 0xFFFF;
-	else
-		panel->backlight.max = 0xFF;
+	panel->backlight.max = intel_dp_aux_calc_max_backlight(connector);
+	if (!panel->backlight.max)
+		return -ENODEV;
 
 	panel->backlight.min = 0;
 	panel->backlight.level = intel_dp_aux_get_backlight(connector);
-
 	panel->backlight.enabled = panel->backlight.level != 0;
 
 	return 0;
@@ -264,15 +325,35 @@
 int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
 {
 	struct intel_panel *panel = &intel_connector->panel;
-	struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev);
+	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_connector->encoder->base);
+	struct drm_device *dev = intel_connector->base.dev;
+	struct drm_i915_private *dev_priv = to_i915(dev);
+	bool force_dpcd;
+
+	force_dpcd = drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
+				      DP_QUIRK_FORCE_DPCD_BACKLIGHT);
 
 	if (i915_modparams.enable_dpcd_backlight == 0 ||
-	    (i915_modparams.enable_dpcd_backlight == -1 &&
-	    dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE))
+	    (!force_dpcd && !intel_dp_aux_display_control_capable(intel_connector)))
 		return -ENODEV;
 
-	if (!intel_dp_aux_display_control_capable(intel_connector))
+	/*
+	 * There are a lot of machines that don't advertise the backlight
+	 * control interface to use properly in their VBIOS, :\
+	 */
+	if (dev_priv->vbt.backlight.type !=
+	    INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE &&
+	    i915_modparams.enable_dpcd_backlight != 1 && !force_dpcd) {
+		DRM_DEV_INFO(dev->dev,
+			     "Panel advertises DPCD backlight support, but "
+			     "VBT disagrees. If your backlight controls "
+			     "don't work try booting with "
+			     "i915.enable_dpcd_backlight=1. If your machine "
+			     "needs this, please file a _new_ bug report on "
+			     "bugs.freedesktop.org against DRI -> "
+			     "DRM/Intel\n");
 		return -ENODEV;
+	}
 
 	panel->backlight.setup = intel_dp_aux_setup_backlight;
 	panel->backlight.enable = intel_dp_aux_enable_backlight;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -50,7 +50,7 @@
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->base.adjusted_mode;
 	void *port = connector->port;
-	bool constant_n = drm_dp_has_quirk(&intel_dp->desc,
+	bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0,
 					   DP_DPCD_QUIRK_CONSTANT_N);
 	int bpp, slots = -EINVAL;
 
@@ -653,21 +653,31 @@
 int
 intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_base_id)
 {
+	struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
-	struct drm_device *dev = intel_dig_port->base.base.dev;
+	enum port port = intel_dig_port->base.port;
 	int ret;
 
-	intel_dp->can_mst = true;
+	if (!HAS_DP_MST(i915) || intel_dp_is_edp(intel_dp))
+		return 0;
+
+	if (INTEL_GEN(i915) < 12 && port == PORT_A)
+		return 0;
+
+	if (INTEL_GEN(i915) < 11 && port == PORT_E)
+		return 0;
+
 	intel_dp->mst_mgr.cbs = &mst_cbs;
 
 	/* create encoders */
 	intel_dp_create_fake_mst_encoders(intel_dig_port);
-	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev,
+	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, &i915->drm,
 					   &intel_dp->aux, 16, 3, conn_base_id);
-	if (ret) {
-		intel_dp->can_mst = false;
+	if (ret)
 		return ret;
-	}
+
+	intel_dp->can_mst = true;
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_fbc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -504,8 +504,7 @@
 	if (!ret)
 		goto err_llb;
 	else if (ret > 1) {
-		DRM_INFO("Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.\n");
-
+		DRM_INFO_ONCE("Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.\n");
 	}
 
 	fbc->threshold = ret;
@@ -1284,7 +1283,7 @@
 		return 0;
 
 	/* https://bugs.freedesktop.org/show_bug.cgi?id=108085 */
-	if (IS_GEMINILAKE(dev_priv))
+	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
 		return 0;
 
 	if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_frontbuffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_frontbuffer.c
@@ -221,11 +221,11 @@
 	struct intel_frontbuffer *front =
 		container_of(ref, typeof(*front), ref);
 
-	front->obj->frontbuffer = NULL;
+	RCU_INIT_POINTER(front->obj->frontbuffer, NULL);
 	spin_unlock(&to_i915(front->obj->base.dev)->fb_tracking.lock);
 
 	i915_gem_object_put(front->obj);
-	kfree(front);
+	kfree_rcu(front, rcu);
 }
 
 struct intel_frontbuffer *
@@ -234,11 +234,7 @@
 	struct drm_i915_private *i915 = to_i915(obj->base.dev);
 	struct intel_frontbuffer *front;
 
-	spin_lock(&i915->fb_tracking.lock);
-	front = obj->frontbuffer;
-	if (front)
-		kref_get(&front->ref);
-	spin_unlock(&i915->fb_tracking.lock);
+	front = __intel_frontbuffer_get(obj);
 	if (front)
 		return front;
 
@@ -253,13 +249,13 @@
 			 frontbuffer_active, frontbuffer_retire);
 
 	spin_lock(&i915->fb_tracking.lock);
-	if (obj->frontbuffer) {
+	if (rcu_access_pointer(obj->frontbuffer)) {
 		kfree(front);
-		front = obj->frontbuffer;
+		front = rcu_dereference_protected(obj->frontbuffer, true);
 		kref_get(&front->ref);
 	} else {
 		i915_gem_object_get(obj);
-		obj->frontbuffer = front;
+		rcu_assign_pointer(obj->frontbuffer, front);
 	}
 	spin_unlock(&i915->fb_tracking.lock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_frontbuffer.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_frontbuffer.h
@@ -27,10 +27,10 @@
 #include <linux/atomic.h>
 #include <linux/kref.h>
 
+#include "gem/i915_gem_object_types.h"
 #include "i915_active.h"
 
 struct drm_i915_private;
-struct drm_i915_gem_object;
 
 enum fb_op_origin {
 	ORIGIN_GTT,
@@ -45,6 +45,7 @@
 	atomic_t bits;
 	struct i915_active write;
 	struct drm_i915_gem_object *obj;
+	struct rcu_head rcu;
 };
 
 void intel_frontbuffer_flip_prepare(struct drm_i915_private *i915,
@@ -54,6 +55,35 @@
 void intel_frontbuffer_flip(struct drm_i915_private *i915,
 			    unsigned frontbuffer_bits);
 
+void intel_frontbuffer_put(struct intel_frontbuffer *front);
+
+static inline struct intel_frontbuffer *
+__intel_frontbuffer_get(const struct drm_i915_gem_object *obj)
+{
+	struct intel_frontbuffer *front;
+
+	if (likely(!rcu_access_pointer(obj->frontbuffer)))
+		return NULL;
+
+	rcu_read_lock();
+	do {
+		front = rcu_dereference(obj->frontbuffer);
+		if (!front)
+			break;
+
+		if (unlikely(!kref_get_unless_zero(&front->ref)))
+			continue;
+
+		if (likely(front == rcu_access_pointer(obj->frontbuffer)))
+			break;
+
+		intel_frontbuffer_put(front);
+	} while (1);
+	rcu_read_unlock();
+
+	return front;
+}
+
 struct intel_frontbuffer *
 intel_frontbuffer_get(struct drm_i915_gem_object *obj);
 
@@ -119,6 +149,4 @@
 			     struct intel_frontbuffer *new,
 			     unsigned int frontbuffer_bits);
 
-void intel_frontbuffer_put(struct intel_frontbuffer *front);
-
 #endif /* __INTEL_FRONTBUFFER_H__ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -1232,6 +1232,11 @@
 	if (hdmi->dp_dual_mode.type < DRM_DP_DUAL_MODE_TYPE2_DVI)
 		return;
 
+	if (dev_priv->bypass_tmds_oe) {
+		DRM_DEBUG_KMS("Bypassing TMDS_OE setting\n");
+		return;
+	}
+
 	DRM_DEBUG_KMS("%s DP dual mode adaptor TMDS output\n",
 		      enable ? "Enabling" : "Disabling");
 
@@ -2129,7 +2134,11 @@
 	if (clock > hdmi_port_clock_limit(hdmi, respect_downstream_limits, force_dvi))
 		return MODE_CLOCK_HIGH;
 
-	/* BXT DPLL can't generate 223-240 MHz */
+	/* GLK DPLL can't generate 446-480 MHz */
+	if (IS_GEMINILAKE(dev_priv) && clock > 446666 && clock < 480000)
+		return MODE_CLOCK_RANGE;
+
+	/* BXT/GLK DPLL can't generate 223-240 MHz */
 	if (IS_GEN9_LP(dev_priv) && clock > 223333 && clock < 240000)
 		return MODE_CLOCK_RANGE;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_lpe_audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_lpe_audio.c
@@ -172,6 +172,14 @@
 				handle_simple_irq,
 				"hdmi_lpe_audio_irq_handler");
 
+	static const struct pci_device_id irq_quirk_ids[] = {
+		/* Dell Wyse 3040 */
+		{PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, 0x22b0, 0x1028, 0x07c1)},
+		{}
+	};
+
+	if (pci_dev_present(irq_quirk_ids))
+		return 0;
 	return irq_set_chip_data(irq, dev_priv);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_overlay.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_overlay.c
@@ -278,12 +278,21 @@
 				       struct i915_vma *vma)
 {
 	enum pipe pipe = overlay->crtc->pipe;
+	struct intel_frontbuffer *from = NULL, *to = NULL;
 
 	WARN_ON(overlay->old_vma);
 
-	intel_frontbuffer_track(overlay->vma ? overlay->vma->obj->frontbuffer : NULL,
-				vma ? vma->obj->frontbuffer : NULL,
-				INTEL_FRONTBUFFER_OVERLAY(pipe));
+	if (overlay->vma)
+		from = intel_frontbuffer_get(overlay->vma->obj);
+	if (vma)
+		to = intel_frontbuffer_get(vma->obj);
+
+	intel_frontbuffer_track(from, to, INTEL_FRONTBUFFER_OVERLAY(pipe));
+
+	if (to)
+		intel_frontbuffer_put(to);
+	if (from)
+		intel_frontbuffer_put(from);
 
 	intel_frontbuffer_flip_prepare(overlay->i915,
 				       INTEL_FRONTBUFFER_OVERLAY(pipe));
@@ -768,7 +777,7 @@
 		ret = PTR_ERR(vma);
 		goto out_pin_section;
 	}
-	intel_frontbuffer_flush(new_bo->frontbuffer, ORIGIN_DIRTYFB);
+	i915_gem_object_flush_frontbuffer(new_bo, ORIGIN_DIRTYFB);
 
 	if (!overlay->active) {
 		u32 oconfig;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_panel.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_panel.c
@@ -1603,20 +1603,21 @@
 		val = pch_get_backlight(connector);
 	else
 		val = lpt_get_backlight(connector);
-	val = intel_panel_compute_brightness(connector, val);
-	panel->backlight.level = clamp(val, panel->backlight.min,
-				       panel->backlight.max);
 
 	if (cpu_mode) {
 		DRM_DEBUG_KMS("CPU backlight register was enabled, switching to PCH override\n");
 
 		/* Write converted CPU PWM value to PCH override register */
-		lpt_set_backlight(connector->base.state, panel->backlight.level);
+		lpt_set_backlight(connector->base.state, val);
 		I915_WRITE(BLC_PWM_PCH_CTL1, pch_ctl1 | BLM_PCH_OVERRIDE_ENABLE);
 
 		I915_WRITE(BLC_PWM_CPU_CTL2, cpu_ctl2 & ~BLM_PWM_ENABLE);
 	}
 
+	val = intel_panel_compute_brightness(connector, val);
+	panel->backlight.level = clamp(val, panel->backlight.min,
+				       panel->backlight.max);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_psr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_psr.c
@@ -291,7 +291,7 @@
 	DRM_DEBUG_KMS("eDP panel supports PSR version %x\n",
 		      intel_dp->psr_dpcd[0]);
 
-	if (drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_PSR)) {
+	if (drm_dp_has_quirk(&intel_dp->desc, 0, DP_DPCD_QUIRK_NO_PSR)) {
 		DRM_DEBUG_KMS("PSR support not currently available for this panel\n");
 		return;
 	}
@@ -1219,6 +1219,14 @@
 	if (!dev_priv->psr.sink_support)
 		return;
 
+	/*
+	 * PSR was disabled by module parameters but the underlying panel is
+	 * depending on it, so use per-chip default to probe that automatically.
+	 */
+	if ((dev_priv->psr.dp->edid_quirks & BIT(DP_QUIRK_FORCE_PSR_CHIP_DEFAULT)) &&
+	    i915_modparams.enable_psr == 0)
+		i915_modparams.enable_psr = -1;
+
 	if (i915_modparams.enable_psr == -1)
 		if (INTEL_GEN(dev_priv) < 9 || !dev_priv->vbt.psr.enable)
 			i915_modparams.enable_psr = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/intel_tc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/intel_tc.c
@@ -45,6 +45,62 @@
 	return tc_port / 2;
 }
 
+static enum intel_display_power_domain
+tc_cold_get_power_domain(struct intel_digital_port *dig_port)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+
+	if (INTEL_GEN(i915) == 11)
+		return intel_legacy_aux_to_power_domain(dig_port->aux_ch);
+	else
+		return POWER_DOMAIN_TC_COLD_OFF;
+}
+
+static intel_wakeref_t
+tc_cold_block(struct intel_digital_port *dig_port)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	enum intel_display_power_domain domain;
+
+	if (INTEL_GEN(i915) == 11 && !dig_port->tc_legacy_port)
+		return 0;
+
+	domain = tc_cold_get_power_domain(dig_port);
+	return intel_display_power_get(i915, domain);
+}
+
+static void
+tc_cold_unblock(struct intel_digital_port *dig_port, intel_wakeref_t wakeref)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	enum intel_display_power_domain domain;
+
+	/*
+	 * wakeref == -1, means some error happened saving save_depot_stack but
+	 * power should still be put down and 0 is a invalid save_depot_stack
+	 * id so can be used to skip it for non TC legacy ports.
+	 */
+	if (wakeref == 0)
+		return;
+
+	domain = tc_cold_get_power_domain(dig_port);
+	intel_display_power_put_async(i915, domain, wakeref);
+}
+
+static void
+assert_tc_cold_blocked(struct intel_digital_port *dig_port)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	bool enabled;
+
+	if (INTEL_GEN(i915) == 11 && !dig_port->tc_legacy_port)
+		return;
+
+	enabled = intel_display_power_is_enabled(i915,
+						 tc_cold_get_power_domain(dig_port));
+	WARN_ON(!enabled);
+}
+
 u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
@@ -56,6 +112,7 @@
 				      PORT_TX_DFLEXDPSP(dig_port->tc_phy_fia));
 
 	WARN_ON(lane_mask == 0xffffffff);
+	assert_tc_cold_blocked(dig_port);
 
 	return (lane_mask & DP_LANE_ASSIGNMENT_MASK(tc_port)) >>
 	       DP_LANE_ASSIGNMENT_SHIFT(tc_port);
@@ -70,6 +127,8 @@
 	if (dig_port->tc_mode != TC_PORT_DP_ALT)
 		return 4;
 
+	assert_tc_cold_blocked(dig_port);
+
 	lane_mask = 0;
 	with_intel_display_power(i915, POWER_DOMAIN_DISPLAY_CORE, wakeref)
 		lane_mask = intel_tc_port_get_lane_mask(dig_port);
@@ -102,6 +161,8 @@
 
 	WARN_ON(lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY);
 
+	assert_tc_cold_blocked(dig_port);
+
 	val = intel_uncore_read(uncore,
 				PORT_TX_DFLEXDPMLE1(dig_port->tc_phy_fia));
 	val &= ~DFLEXDPMLE1_DPMLETC_MASK(tc_port);
@@ -390,8 +451,14 @@
 	enum tc_port_mode old_tc_mode = dig_port->tc_mode;
 
 	intel_display_power_flush_work(i915);
-	WARN_ON(intel_display_power_is_enabled(i915,
-					       intel_aux_power_domain(dig_port)));
+	if (INTEL_GEN(i915) != 11 || !dig_port->tc_legacy_port) {
+		enum intel_display_power_domain aux_domain;
+		bool aux_powered;
+
+		aux_domain = intel_aux_power_domain(dig_port);
+		aux_powered = intel_display_power_is_enabled(i915, aux_domain);
+		WARN_ON(aux_powered);
+	}
 
 	icl_tc_phy_disconnect(dig_port);
 	icl_tc_phy_connect(dig_port, required_lanes);
@@ -413,9 +480,11 @@
 void intel_tc_port_sanitize(struct intel_digital_port *dig_port)
 {
 	struct intel_encoder *encoder = &dig_port->base;
+	intel_wakeref_t tc_cold_wref;
 	int active_links = 0;
 
 	mutex_lock(&dig_port->tc_lock);
+	tc_cold_wref = tc_cold_block(dig_port);
 
 	dig_port->tc_mode = intel_tc_port_get_current_mode(dig_port);
 	if (dig_port->dp.is_mst)
@@ -440,6 +509,7 @@
 		      dig_port->tc_port_name,
 		      tc_port_mode_name(dig_port->tc_mode));
 
+	tc_cold_unblock(dig_port, tc_cold_wref);
 	mutex_unlock(&dig_port->tc_lock);
 }
 
@@ -461,10 +531,15 @@
 bool intel_tc_port_connected(struct intel_digital_port *dig_port)
 {
 	bool is_connected;
+	intel_wakeref_t tc_cold_wref;
 
 	intel_tc_port_lock(dig_port);
+	tc_cold_wref = tc_cold_block(dig_port);
+
 	is_connected = tc_port_live_status_mask(dig_port) &
 		       BIT(dig_port->tc_mode);
+
+	tc_cold_unblock(dig_port, tc_cold_wref);
 	intel_tc_port_unlock(dig_port);
 
 	return is_connected;
@@ -480,9 +555,16 @@
 
 	mutex_lock(&dig_port->tc_lock);
 
-	if (!dig_port->tc_link_refcount &&
-	    intel_tc_port_needs_reset(dig_port))
-		intel_tc_port_reset_mode(dig_port, required_lanes);
+	if (!dig_port->tc_link_refcount) {
+		intel_wakeref_t tc_cold_wref;
+
+		tc_cold_wref = tc_cold_block(dig_port);
+
+		if (intel_tc_port_needs_reset(dig_port))
+			intel_tc_port_reset_mode(dig_port, required_lanes);
+
+		tc_cold_unblock(dig_port, tc_cold_wref);
+	}
 
 	WARN_ON(dig_port->tc_lock_wakeref);
 	dig_port->tc_lock_wakeref = wakeref;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -797,10 +797,20 @@
 	if (intel_dsi->gpio_panel)
 		gpiod_set_value_cansleep(intel_dsi->gpio_panel, 1);
 	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_ON);
-	intel_dsi_msleep(intel_dsi, intel_dsi->panel_on_delay);
 
-	/* Deassert reset */
-	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET);
+	/*
+	 * Give the panel time to power-on and then deassert its reset.
+	 * Depending on the VBT MIPI sequences version the deassert-seq
+	 * may contain the necessary delay, intel_dsi_msleep() will skip
+	 * the delay in that case. If there is no deassert-seq, then an
+	 * unconditional msleep is used to give the panel time to power-on.
+	 */
+	if (dev_priv->vbt.dsi.sequence[MIPI_SEQ_DEASSERT_RESET]) {
+		intel_dsi_msleep(intel_dsi, intel_dsi->panel_on_delay);
+		intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET);
+	} else {
+		msleep(intel_dsi->panel_on_delay);
+	}
 
 	if (IS_GEMINILAKE(dev_priv)) {
 		glk_cold_boot = glk_dsi_enable_io(encoder);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_busy.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_busy.c
@@ -9,16 +9,16 @@
 #include "i915_gem_ioctls.h"
 #include "i915_gem_object.h"
 
-static __always_inline u32 __busy_read_flag(u8 id)
+static __always_inline u32 __busy_read_flag(u16 id)
 {
-	if (id == (u8)I915_ENGINE_CLASS_INVALID)
+	if (id == (u16)I915_ENGINE_CLASS_INVALID)
 		return 0xffff0000u;
 
 	GEM_BUG_ON(id >= 16);
 	return 0x10000u << id;
 }
 
-static __always_inline u32 __busy_write_id(u8 id)
+static __always_inline u32 __busy_write_id(u16 id)
 {
 	/*
 	 * The uABI guarantees an active writer is also amongst the read
@@ -29,14 +29,14 @@
 	 * last_read - hence we always set both read and write busy for
 	 * last_write.
 	 */
-	if (id == (u8)I915_ENGINE_CLASS_INVALID)
+	if (id == (u16)I915_ENGINE_CLASS_INVALID)
 		return 0xffffffffu;
 
 	return (id + 1) | __busy_read_flag(id);
 }
 
 static __always_inline unsigned int
-__busy_set_if_active(const struct dma_fence *fence, u32 (*flag)(u8 id))
+__busy_set_if_active(const struct dma_fence *fence, u32 (*flag)(u16 id))
 {
 	const struct i915_request *rq;
 
@@ -57,7 +57,7 @@
 		return 0;
 
 	/* Beware type-expansion follies! */
-	BUILD_BUG_ON(!typecheck(u8, rq->engine->uabi_class));
+	BUILD_BUG_ON(!typecheck(u16, rq->engine->uabi_class));
 	return flag(rq->engine->uabi_class);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
@@ -20,7 +20,8 @@
 {
 	GEM_BUG_ON(!i915_gem_object_has_pages(obj));
 	drm_clflush_sg(obj->mm.pages);
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 }
 
 static int clflush_work(struct dma_fence_work *base)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -2094,8 +2094,7 @@
 	ext_data.fpriv = file->driver_priv;
 	if (client_is_banned(ext_data.fpriv)) {
 		DRM_DEBUG("client %s[%d] banned from creating ctx\n",
-			  current->comm,
-			  pid_nr(get_task_pid(current, PIDTYPE_PID)));
+			  current->comm, task_pid_nr(current));
 		return -EIO;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_domain.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_domain.c
@@ -606,21 +606,6 @@
 		return -ENOENT;
 
 	/*
-	 * Already in the desired write domain? Nothing for us to do!
-	 *
-	 * We apply a little bit of cunning here to catch a broader set of
-	 * no-ops. If obj->write_domain is set, we must be in the same
-	 * obj->read_domains, and only that domain. Therefore, if that
-	 * obj->write_domain matches the request read_domains, we are
-	 * already in the same read/write domain and can skip the operation,
-	 * without having to further check the requested write_domain.
-	 */
-	if (READ_ONCE(obj->write_domain) == read_domains) {
-		err = 0;
-		goto out;
-	}
-
-	/*
 	 * Try to flush the object off the GPU without holding the lock.
 	 * We will repeat the flush holding the lock in the normal manner
 	 * to catch cases where we are gazumped.
@@ -657,6 +642,19 @@
 	if (err)
 		goto out;
 
+	/*
+	 * Already in the desired write domain? Nothing for us to do!
+	 *
+	 * We apply a little bit of cunning here to catch a broader set of
+	 * no-ops. If obj->write_domain is set, we must be in the same
+	 * obj->read_domains, and only that domain. Therefore, if that
+	 * obj->write_domain matches the request read_domains, we are
+	 * already in the same read/write domain and can skip the operation,
+	 * without having to further check the requested write_domain.
+	 */
+	if (READ_ONCE(obj->write_domain) == read_domains)
+		goto out_unpin;
+
 	err = i915_gem_object_lock_interruptible(obj);
 	if (err)
 		goto out_unpin;
@@ -674,7 +672,7 @@
 	i915_gem_object_unlock(obj);
 
 	if (write_domain)
-		intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+		i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 
 out_unpin:
 	i915_gem_object_unpin_pages(obj);
@@ -794,7 +792,7 @@
 	}
 
 out:
-	intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 	obj->mm.dirty = true;
 	/* return with the pages pinned */
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -367,7 +367,7 @@
 		return true;
 
 	if (!(flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) &&
-	    (vma->node.start + vma->node.size - 1) >> 32)
+	    (vma->node.start + vma->node.size + 4095) >> 32)
 		return true;
 
 	if (flags & __EXEC_OBJECT_NEEDS_MAP &&
@@ -439,7 +439,8 @@
 	if (unlikely(entry->flags & eb->invalid_flags))
 		return -EINVAL;
 
-	if (unlikely(entry->alignment && !is_power_of_2(entry->alignment)))
+	if (unlikely(entry->alignment &&
+		     !is_power_of_2_u64(entry->alignment)))
 		return -EINVAL;
 
 	/*
@@ -930,11 +931,13 @@
 
 static void reloc_gpu_flush(struct reloc_cache *cache)
 {
-	GEM_BUG_ON(cache->rq_size >= cache->rq->batch->obj->base.size / sizeof(u32));
+	struct drm_i915_gem_object *obj = cache->rq->batch->obj;
+
+	GEM_BUG_ON(cache->rq_size >= obj->base.size / sizeof(u32));
 	cache->rq_cmd[cache->rq_size] = MI_BATCH_BUFFER_END;
 
-	__i915_gem_object_flush_map(cache->rq->batch->obj, 0, cache->rq_size);
-	i915_gem_object_unpin_map(cache->rq->batch->obj);
+	i915_gem_object_flush_map(obj);
+	i915_gem_object_unpin_map(obj);
 
 	intel_gt_chipset_flush(cache->rq->engine->gt);
 
@@ -1160,6 +1163,8 @@
 		goto out_pool;
 	}
 
+	memset32(cmd, 0, pool->obj->base.size / sizeof(u32));
+
 	batch = i915_vma_instance(pool->obj, vma->vm, NULL);
 	if (IS_ERR(batch)) {
 		err = PTR_ERR(batch);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -270,7 +270,7 @@
 		for_each_ggtt_vma(vma, obj)
 			intel_gt_flush_ggtt_writes(vma->vm->gt);
 
-		intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+		i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 
 		for_each_ggtt_vma(vma, obj) {
 			if (vma->iomap)
@@ -298,6 +298,30 @@
 	obj->write_domain = 0;
 }
 
+void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
+					 enum fb_op_origin origin)
+{
+	struct intel_frontbuffer *front;
+
+	front = __intel_frontbuffer_get(obj);
+	if (front) {
+		intel_frontbuffer_flush(front, origin);
+		intel_frontbuffer_put(front);
+	}
+}
+
+void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
+					      enum fb_op_origin origin)
+{
+	struct intel_frontbuffer *front;
+
+	front = __intel_frontbuffer_get(obj);
+	if (front) {
+		intel_frontbuffer_invalidate(front, origin);
+		intel_frontbuffer_put(front);
+	}
+}
+
 void i915_gem_init__objects(struct drm_i915_private *i915)
 {
 	INIT_WORK(&i915->mm.free_work, __i915_gem_free_work);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -13,8 +13,8 @@
 
 #include <drm/i915_drm.h>
 
+#include "display/intel_frontbuffer.h"
 #include "i915_gem_object_types.h"
-
 #include "i915_gem_gtt.h"
 
 void i915_gem_init__objects(struct drm_i915_private *i915);
@@ -431,4 +431,25 @@
 				  const struct i915_sched_attr *attr);
 #define I915_PRIORITY_DISPLAY I915_USER_PRIORITY(I915_PRIORITY_MAX)
 
+void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
+					 enum fb_op_origin origin);
+void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
+					      enum fb_op_origin origin);
+
+static inline void
+i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
+				  enum fb_op_origin origin)
+{
+	if (unlikely(rcu_access_pointer(obj->frontbuffer)))
+		__i915_gem_object_flush_frontbuffer(obj, origin);
+}
+
+static inline void
+i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
+				       enum fb_op_origin origin)
+{
+	if (unlikely(rcu_access_pointer(obj->frontbuffer)))
+		__i915_gem_object_invalidate_frontbuffer(obj, origin);
+}
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -143,7 +143,7 @@
 	 */
 	u16 write_domain;
 
-	struct intel_frontbuffer *frontbuffer;
+	struct intel_frontbuffer __rcu *frontbuffer;
 
 	/** Current tiling stride for the object, if it's tiled. */
 	unsigned int tiling_and_stride;
@@ -240,9 +240,6 @@
 
 		void *gvt_info;
 	};
-
-	/** for phys allocated objects */
-	struct drm_dma_handle *phys_handle;
 };
 
 static inline struct drm_i915_gem_object *
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_phys.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_phys.c
@@ -21,88 +21,87 @@
 static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
 {
 	struct address_space *mapping = obj->base.filp->f_mapping;
-	struct drm_dma_handle *phys;
-	struct sg_table *st;
 	struct scatterlist *sg;
-	char *vaddr;
+	struct sg_table *st;
+	dma_addr_t dma;
+	void *vaddr;
+	void *dst;
 	int i;
-	int err;
 
 	if (WARN_ON(i915_gem_object_needs_bit17_swizzle(obj)))
 		return -EINVAL;
 
-	/* Always aligning to the object size, allows a single allocation
+	/*
+	 * Always aligning to the object size, allows a single allocation
 	 * to handle all possible callers, and given typical object sizes,
 	 * the alignment of the buddy allocation will naturally match.
 	 */
-	phys = drm_pci_alloc(obj->base.dev,
-			     roundup_pow_of_two(obj->base.size),
-			     roundup_pow_of_two(obj->base.size));
-	if (!phys)
+	vaddr = dma_alloc_coherent(&obj->base.dev->pdev->dev,
+				   roundup_pow_of_two(obj->base.size),
+				   &dma, GFP_KERNEL);
+	if (!vaddr)
 		return -ENOMEM;
 
-	vaddr = phys->vaddr;
+	st = kmalloc(sizeof(*st), GFP_KERNEL);
+	if (!st)
+		goto err_pci;
+
+	if (sg_alloc_table(st, 1, GFP_KERNEL))
+		goto err_st;
+
+	sg = st->sgl;
+	sg->offset = 0;
+	sg->length = obj->base.size;
+
+	sg_assign_page(sg, (struct page *)vaddr);
+	sg_dma_address(sg) = dma;
+	sg_dma_len(sg) = obj->base.size;
+
+	dst = vaddr;
 	for (i = 0; i < obj->base.size / PAGE_SIZE; i++) {
 		struct page *page;
-		char *src;
+		void *src;
 
 		page = shmem_read_mapping_page(mapping, i);
-		if (IS_ERR(page)) {
-			err = PTR_ERR(page);
-			goto err_phys;
-		}
+		if (IS_ERR(page))
+			goto err_st;
 
 		src = kmap_atomic(page);
-		memcpy(vaddr, src, PAGE_SIZE);
-		drm_clflush_virt_range(vaddr, PAGE_SIZE);
+		memcpy(dst, src, PAGE_SIZE);
+		drm_clflush_virt_range(dst, PAGE_SIZE);
 		kunmap_atomic(src);
 
 		put_page(page);
-		vaddr += PAGE_SIZE;
+		dst += PAGE_SIZE;
 	}
 
 	intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt);
 
-	st = kmalloc(sizeof(*st), GFP_KERNEL);
-	if (!st) {
-		err = -ENOMEM;
-		goto err_phys;
-	}
-
-	if (sg_alloc_table(st, 1, GFP_KERNEL)) {
-		kfree(st);
-		err = -ENOMEM;
-		goto err_phys;
-	}
-
-	sg = st->sgl;
-	sg->offset = 0;
-	sg->length = obj->base.size;
-
-	sg_dma_address(sg) = phys->busaddr;
-	sg_dma_len(sg) = obj->base.size;
-
-	obj->phys_handle = phys;
-
 	__i915_gem_object_set_pages(obj, st, sg->length);
 
 	return 0;
 
-err_phys:
-	drm_pci_free(obj->base.dev, phys);
-
-	return err;
+err_st:
+	kfree(st);
+err_pci:
+	dma_free_coherent(&obj->base.dev->pdev->dev,
+			  roundup_pow_of_two(obj->base.size),
+			  vaddr, dma);
+	return -ENOMEM;
 }
 
 static void
 i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
 			       struct sg_table *pages)
 {
+	dma_addr_t dma = sg_dma_address(pages->sgl);
+	void *vaddr = sg_page(pages->sgl);
+
 	__i915_gem_object_release_shmem(obj, pages, false);
 
 	if (obj->mm.dirty) {
 		struct address_space *mapping = obj->base.filp->f_mapping;
-		char *vaddr = obj->phys_handle->vaddr;
+		void *src = vaddr;
 		int i;
 
 		for (i = 0; i < obj->base.size / PAGE_SIZE; i++) {
@@ -114,15 +113,16 @@
 				continue;
 
 			dst = kmap_atomic(page);
-			drm_clflush_virt_range(vaddr, PAGE_SIZE);
-			memcpy(dst, vaddr, PAGE_SIZE);
+			drm_clflush_virt_range(src, PAGE_SIZE);
+			memcpy(dst, src, PAGE_SIZE);
 			kunmap_atomic(dst);
 
 			set_page_dirty(page);
 			if (obj->mm.madv == I915_MADV_WILLNEED)
 				mark_page_accessed(page);
 			put_page(page);
-			vaddr += PAGE_SIZE;
+
+			src += PAGE_SIZE;
 		}
 		obj->mm.dirty = false;
 	}
@@ -130,7 +130,9 @@
 	sg_free_table(pages);
 	kfree(pages);
 
-	drm_pci_free(obj->base.dev, obj->phys_handle);
+	dma_free_coherent(&obj->base.dev->pdev->dev,
+			  roundup_pow_of_two(obj->base.size),
+			  vaddr, dma);
 }
 
 static void phys_release(struct drm_i915_gem_object *obj)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -36,7 +36,6 @@
 	unsigned long last_pfn = 0;	/* suppress gcc warning */
 	unsigned int max_segment = i915_sg_segment_size();
 	unsigned int sg_page_sizes;
-	struct pagevec pvec;
 	gfp_t noreclaim;
 	int ret;
 
@@ -188,13 +187,17 @@
 	sg_mark_end(sg);
 err_pages:
 	mapping_clear_unevictable(mapping);
-	pagevec_init(&pvec);
-	for_each_sgt_page(page, sgt_iter, st) {
-		if (!pagevec_add(&pvec, page))
+	if (sg != st->sgl) {
+		struct pagevec pvec;
+
+		pagevec_init(&pvec);
+		for_each_sgt_page(page, sgt_iter, st) {
+			if (!pagevec_add(&pvec, page))
+				check_release_pagevec(&pvec);
+		}
+		if (pagevec_count(&pvec))
 			check_release_pagevec(&pvec);
 	}
-	if (pagevec_count(&pvec))
-		check_release_pagevec(&pvec);
 	sg_free_table(st);
 	kfree(st);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -357,8 +357,7 @@
 				sc->nr_to_scan,
 				&sc->nr_scanned,
 				I915_SHRINK_BOUND |
-				I915_SHRINK_UNBOUND |
-				I915_SHRINK_WRITEBACK);
+				I915_SHRINK_UNBOUND);
 	if (sc->nr_scanned < sc->nr_to_scan && current_is_kswapd()) {
 		intel_wakeref_t wakeref;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
@@ -427,7 +427,7 @@
 
 static struct sg_table *
 __i915_gem_userptr_alloc_pages(struct drm_i915_gem_object *obj,
-			       struct page **pvec, int num_pages)
+			       struct page **pvec, unsigned long num_pages)
 {
 	unsigned int max_segment = i915_sg_segment_size();
 	struct sg_table *st;
@@ -473,9 +473,10 @@
 {
 	struct get_pages_work *work = container_of(_work, typeof(*work), work);
 	struct drm_i915_gem_object *obj = work->obj;
-	const int npages = obj->base.size >> PAGE_SHIFT;
+	const unsigned long npages = obj->base.size >> PAGE_SHIFT;
+	unsigned long pinned;
 	struct page **pvec;
-	int pinned, ret;
+	int ret;
 
 	ret = -ENOMEM;
 	pinned = 0;
@@ -578,7 +579,7 @@
 
 static int i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
 {
-	const int num_pages = obj->base.size >> PAGE_SHIFT;
+	const unsigned long num_pages = obj->base.size >> PAGE_SHIFT;
 	struct mm_struct *mm = obj->userptr.mm->mm;
 	struct page **pvec;
 	struct sg_table *pages;
@@ -618,6 +619,14 @@
 				      GFP_KERNEL |
 				      __GFP_NORETRY |
 				      __GFP_NOWARN);
+		/*
+		 * Using __get_user_pages_fast() with a read-only
+		 * access is questionable. A read-only page may be
+		 * COW-broken, and then this might end up giving
+		 * the wrong side of the COW..
+		 *
+		 * We may or may not care.
+		 */
 		if (pvec) /* defer to worker if malloc fails */
 			pinned = __get_user_pages_fast(obj->userptr.ptr,
 						       num_pages,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -375,7 +375,7 @@
 
 	obj = i915_gem_object_create_internal(i915, size);
 	if (IS_ERR(obj))
-		return PTR_ERR(obj);
+		return false;
 
 	err = create_mmap_offset(obj);
 	i915_gem_object_put(obj);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -250,6 +250,14 @@
 	return pos & (ring->size - 1);
 }
 
+static inline int intel_ring_direction(const struct intel_ring *ring,
+				       u32 next, u32 prev)
+{
+	typecheck(typeof(ring->size), next);
+	typecheck(typeof(ring->size), prev);
+	return (next - prev) << ring->wrap;
+}
+
 static inline bool
 intel_ring_offset_valid(const struct intel_ring *ring,
 			unsigned int pos)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -28,13 +28,13 @@
 
 #include "i915_drv.h"
 
-#include "gt/intel_gt.h"
-
+#include "intel_context.h"
 #include "intel_engine.h"
 #include "intel_engine_pm.h"
 #include "intel_engine_pool.h"
 #include "intel_engine_user.h"
-#include "intel_context.h"
+#include "intel_gt.h"
+#include "intel_gt_requests.h"
 #include "intel_lrc.h"
 #include "intel_reset.h"
 
@@ -354,7 +354,8 @@
 		 * instances.
 		 */
 		if ((INTEL_GEN(i915) >= 11 &&
-		     RUNTIME_INFO(i915)->vdbox_sfc_access & engine->mask) ||
+		     (RUNTIME_INFO(i915)->vdbox_sfc_access &
+		      BIT(engine->instance))) ||
 		    (INTEL_GEN(i915) >= 9 && engine->instance == 0))
 			engine->uabi_capabilities |=
 				I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC;
@@ -600,6 +601,7 @@
 	intel_engine_init_hangcheck(engine);
 	intel_engine_init_cmd_parser(engine);
 	intel_engine_init__pm(engine);
+	intel_engine_init_retire(engine);
 
 	intel_engine_pool_init(&engine->pool);
 
@@ -807,6 +809,7 @@
 
 	cleanup_status_page(engine);
 
+	intel_engine_fini_retire(engine);
 	intel_engine_pool_fini(&engine->pool);
 	intel_engine_fini_breadcrumbs(engine);
 	intel_engine_cleanup_cmd_parser(engine);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -70,8 +70,43 @@
 
 #endif /* !IS_ENABLED(CONFIG_LOCKDEP) */
 
+static void
+__queue_and_release_pm(struct i915_request *rq,
+		       struct intel_timeline *tl,
+		       struct intel_engine_cs *engine)
+{
+	struct intel_gt_timelines *timelines = &engine->gt->timelines;
+	unsigned long flags;
+
+	GEM_TRACE("%s\n", engine->name);
+
+	/*
+	 * We have to serialise all potential retirement paths with our
+	 * submission, as we don't want to underflow either the
+	 * engine->wakeref.counter or our timeline->active_count.
+	 *
+	 * Equally, we cannot allow a new submission to start until
+	 * after we finish queueing, nor could we allow that submitter
+	 * to retire us before we are ready!
+	 */
+	spin_lock_irqsave(&timelines->lock, flags);
+
+	/* Let intel_gt_retire_requests() retire us (acquired under lock) */
+	if (!atomic_fetch_inc(&tl->active_count))
+		list_add_tail(&tl->link, &timelines->active_list);
+
+	/* Hand the request over to HW and so engine_retire() */
+	__i915_request_queue(rq, NULL);
+
+	/* Let new submissions commence (and maybe retire this timeline) */
+	__intel_wakeref_defer_park(&engine->wakeref);
+
+	spin_unlock_irqrestore(&timelines->lock, flags);
+}
+
 static bool switch_to_kernel_context(struct intel_engine_cs *engine)
 {
+	struct intel_context *ce = engine->kernel_context;
 	struct i915_request *rq;
 	unsigned long flags;
 	bool result = true;
@@ -96,15 +131,13 @@
 	 * retiring the last request, thus all rings should be empty and
 	 * all timelines idle.
 	 */
-	flags = __timeline_mark_lock(engine->kernel_context);
+	flags = __timeline_mark_lock(ce);
 
-	rq = __i915_request_create(engine->kernel_context, GFP_NOWAIT);
+	rq = __i915_request_create(ce, GFP_NOWAIT);
 	if (IS_ERR(rq))
 		/* Context switch failed, hope for the best! Maybe reset? */
 		goto out_unlock;
 
-	intel_timeline_enter(rq->timeline);
-
 	/* Check again on the next retirement. */
 	engine->wakeref_serial = engine->serial + 1;
 	i915_request_add_active_barriers(rq);
@@ -113,13 +146,12 @@
 	rq->sched.attr.priority = I915_PRIORITY_UNPREEMPTABLE;
 	__i915_request_commit(rq);
 
-	/* Release our exclusive hold on the engine */
-	__intel_wakeref_defer_park(&engine->wakeref);
-	__i915_request_queue(rq, NULL);
+	/* Expose ourselves to the world */
+	__queue_and_release_pm(rq, ce->timeline, engine);
 
 	result = false;
 out_unlock:
-	__timeline_mark_unlock(engine->kernel_context, flags);
+	__timeline_mark_unlock(ce, flags);
 	return result;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_engine_types.h
@@ -107,6 +107,7 @@
 
 	u32 space;
 	u32 size;
+	u32 wrap;
 	u32 effective_size;
 };
 
@@ -300,8 +301,8 @@
 	u8 class;
 	u8 instance;
 
-	u8 uabi_class;
-	u8 uabi_instance;
+	u16 uabi_class;
+	u16 uabi_instance;
 
 	u32 context_size;
 	u32 mmio_base;
@@ -470,6 +471,14 @@
 
 	struct intel_engine_execlists execlists;
 
+	/*
+	 * Keep track of completed timelines on this engine for early
+	 * retirement with the goal of quickly enabling powersaving as
+	 * soon as the engine is idle.
+	 */
+	struct intel_timeline *retire;
+	struct work_struct retire_work;
+
 	/* status_notifier: list of callbacks for context-switch changes */
 	struct atomic_notifier_head context_status_notifier;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt_requests.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_gt_requests.c
@@ -0,0 +1,98 @@
+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright © 2019 Intel Corporation
+ */
+
+#include <linux/workqueue.h>
+
+#include "i915_drv.h" /* for_each_engine() */
+#include "i915_request.h"
+#include "intel_gt.h"
+#include "intel_gt_pm.h"
+#include "intel_gt_requests.h"
+#include "intel_timeline.h"
+
+static void retire_requests(struct intel_timeline *tl)
+{
+	struct i915_request *rq, *rn;
+
+	list_for_each_entry_safe(rq, rn, &tl->requests, link)
+		if (!i915_request_retire(rq))
+			break;
+}
+
+static void engine_retire(struct work_struct *work)
+{
+	struct intel_engine_cs *engine =
+		container_of(work, typeof(*engine), retire_work);
+	struct intel_timeline *tl = xchg(&engine->retire, NULL);
+
+	mutex_lock(&engine->i915->drm.struct_mutex);
+	do {
+		struct intel_timeline *next = xchg(&tl->retire, NULL);
+
+		/*
+		 * Our goal here is to retire _idle_ timelines as soon as
+		 * possible (as they are idle, we do not expect userspace
+		 * to be cleaning up anytime soon).
+		 *
+		 * If the timeline is currently locked, either it is being
+		 * retired elsewhere or about to be!
+		 */
+		if (mutex_trylock(&tl->mutex)) {
+			retire_requests(tl);
+			mutex_unlock(&tl->mutex);
+		}
+		intel_timeline_put(tl);
+
+		GEM_BUG_ON(!next);
+		tl = ptr_mask_bits(next, 1);
+	} while (tl);
+	mutex_unlock(&engine->i915->drm.struct_mutex);
+}
+
+static bool add_retire(struct intel_engine_cs *engine,
+		       struct intel_timeline *tl)
+{
+	struct intel_timeline *first;
+
+	/*
+	 * We open-code a llist here to include the additional tag [BIT(0)]
+	 * so that we know when the timeline is already on a
+	 * retirement queue: either this engine or another.
+	 *
+	 * However, we rely on that a timeline can only be active on a single
+	 * engine at any one time and that add_retire() is called before the
+	 * engine releases the timeline and transferred to another to retire.
+	 */
+
+	if (READ_ONCE(tl->retire)) /* already queued */
+		return false;
+
+	intel_timeline_get(tl);
+	first = READ_ONCE(engine->retire);
+	do
+		tl->retire = ptr_pack_bits(first, 1, 1);
+	while (!try_cmpxchg(&engine->retire, &first, tl));
+
+	return !first;
+}
+
+void intel_engine_add_retire(struct intel_engine_cs *engine,
+			     struct intel_timeline *tl)
+{
+	if (add_retire(engine, tl))
+		schedule_work(&engine->retire_work);
+}
+
+void intel_engine_init_retire(struct intel_engine_cs *engine)
+{
+	INIT_WORK(&engine->retire_work, engine_retire);
+}
+
+void intel_engine_fini_retire(struct intel_engine_cs *engine)
+{
+	flush_work(&engine->retire_work);
+	GEM_BUG_ON(engine->retire);
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt_requests.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_gt_requests.h
@@ -0,0 +1,18 @@
+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright © 2019 Intel Corporation
+ */
+
+#ifndef INTEL_GT_REQUESTS_H
+#define INTEL_GT_REQUESTS_H
+
+struct intel_engine_cs;
+struct intel_timeline;
+
+void intel_engine_init_retire(struct intel_engine_cs *engine);
+void intel_engine_add_retire(struct intel_engine_cs *engine,
+			     struct intel_timeline *tl);
+void intel_engine_fini_retire(struct intel_engine_cs *engine);
+
+#endif /* INTEL_GT_REQUESTS_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -142,6 +142,7 @@
 #include "intel_engine_pm.h"
 #include "intel_gt.h"
 #include "intel_gt_pm.h"
+#include "intel_gt_requests.h"
 #include "intel_lrc_reg.h"
 #include "intel_mocs.h"
 #include "intel_reset.h"
@@ -471,12 +472,6 @@
 	return desc;
 }
 
-static void unwind_wa_tail(struct i915_request *rq)
-{
-	rq->tail = intel_ring_wrap(rq->ring, rq->wa_tail - WA_TAIL_BYTES);
-	assert_ring_tail_valid(rq->ring, rq->tail);
-}
-
 static struct i915_request *
 __unwind_incomplete_requests(struct intel_engine_cs *engine)
 {
@@ -495,7 +490,6 @@
 			continue; /* XXX */
 
 		__i915_request_unsubmit(rq);
-		unwind_wa_tail(rq);
 
 		/*
 		 * Push the request back into the queue for later resubmission.
@@ -525,7 +519,8 @@
 			 */
 			if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
 				     &rq->fence.flags)) {
-				spin_lock(&rq->lock);
+				spin_lock_nested(&rq->lock,
+						 SINGLE_DEPTH_NESTING);
 				i915_request_cancel_breadcrumb(rq);
 				spin_unlock(&rq->lock);
 			}
@@ -612,6 +607,20 @@
 {
 	struct intel_context * const ce = rq->hw_context;
 
+	/*
+	 * NB process_csb() is not under the engine->active.lock and hence
+	 * schedule_out can race with schedule_in meaning that we should
+	 * refrain from doing non-trivial work here.
+	 */
+
+	/*
+	 * If we have just completed this context, the engine may now be
+	 * idle and we want to re-enter powersaving.
+	 */
+	if (list_is_last(&rq->link, &ce->timeline->requests) &&
+	    i915_request_completed(rq))
+		intel_engine_add_retire(engine, ce->timeline);
+
 	intel_engine_context_out(engine);
 	execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
 	intel_gt_pm_put(engine->gt);
@@ -649,13 +658,35 @@
 	i915_request_put(rq);
 }
 
-static u64 execlists_update_context(const struct i915_request *rq)
+static u64 execlists_update_context(struct i915_request *rq)
 {
 	struct intel_context *ce = rq->hw_context;
-	u64 desc;
+	u64 desc = ce->lrc_desc;
+	u32 tail, prev;
 
-	ce->lrc_reg_state[CTX_RING_TAIL + 1] =
-		intel_ring_set_tail(rq->ring, rq->tail);
+	/*
+	 * WaIdleLiteRestore:bdw,skl
+	 *
+	 * We should never submit the context with the same RING_TAIL twice
+	 * just in case we submit an empty ring, which confuses the HW.
+	 *
+	 * We append a couple of NOOPs (gen8_emit_wa_tail) after the end of
+	 * the normal request to be able to always advance the RING_TAIL on
+	 * subsequent resubmissions (for lite restore). Should that fail us,
+	 * and we try and submit the same tail again, force the context
+	 * reload.
+	 *
+	 * If we need to return to a preempted context, we need to skip the
+	 * lite-restore and force it to reload the RING_TAIL. Otherwise, the
+	 * HW has a tendency to ignore us rewinding the TAIL to the end of
+	 * an earlier request.
+	 */
+	tail = intel_ring_set_tail(rq->ring, rq->tail);
+	prev = ce->lrc_reg_state[CTX_RING_TAIL + 1];
+	if (unlikely(intel_ring_direction(rq->ring, tail, prev) <= 0))
+		desc |= CTX_DESC_FORCE_RESTORE;
+	ce->lrc_reg_state[CTX_RING_TAIL + 1] = tail;
+	rq->tail = rq->wa_tail;
 
 	/*
 	 * Make sure the context image is complete before we submit it to HW.
@@ -674,7 +705,6 @@
 	 */
 	mb();
 
-	desc = ce->lrc_desc;
 	ce->lrc_desc &= ~CTX_DESC_FORCE_RESTORE;
 
 	return desc;
@@ -918,6 +948,11 @@
 	return *last;
 }
 
+#define for_each_waiter(p__, rq__) \
+	list_for_each_entry_lockless(p__, \
+				     &(rq__)->sched.waiters_list, \
+				     wait_link)
+
 static void defer_request(struct i915_request *rq, struct list_head * const pl)
 {
 	LIST_HEAD(list);
@@ -935,7 +970,7 @@
 		GEM_BUG_ON(i915_request_is_active(rq));
 		list_move_tail(&rq->sched.link, pl);
 
-		list_for_each_entry(p, &rq->sched.waiters_list, wait_link) {
+		for_each_waiter(p, rq) {
 			struct i915_request *w =
 				container_of(p->waiter, typeof(*w), sched);
 
@@ -1101,14 +1136,6 @@
 			 */
 			__unwind_incomplete_requests(engine);
 
-			/*
-			 * If we need to return to the preempted context, we
-			 * need to skip the lite-restore and force it to
-			 * reload the RING_TAIL. Otherwise, the HW has a
-			 * tendency to ignore us rewinding the TAIL to the
-			 * end of an earlier request.
-			 */
-			last->hw_context->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 			last = NULL;
 		} else if (need_timeslice(engine, last) &&
 			   !timer_pending(&engine->execlists.timer)) {
@@ -1149,16 +1176,6 @@
 			if (!list_is_last(&last->sched.link,
 					  &engine->active.requests))
 				return;
-
-			/*
-			 * WaIdleLiteRestore:bdw,skl
-			 * Apply the wa NOOPs to prevent
-			 * ring:HEAD == rq:TAIL as we resubmit the
-			 * request. See gen8_emit_fini_breadcrumb() for
-			 * where we prepare the padding after the
-			 * end of the request.
-			 */
-			last->tail = last->wa_tail;
 		}
 	}
 
@@ -1572,6 +1589,9 @@
 			if (!inject_preempt_hang(execlists))
 				ring_set_paused(engine, 0);
 
+			/* XXX Magic delay for tgl */
+			ENGINE_POSTING_READ(engine, RING_CONTEXT_STATUS_PTR);
+
 			WRITE_ONCE(execlists->pending[0], NULL);
 			break;
 
@@ -2131,6 +2151,14 @@
 	/* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
 	batch = gen8_emit_flush_coherentl3_wa(engine, batch);
 
+	/* WaClearSlmSpaceAtContextSwitch:skl,bxt,kbl,glk,cfl */
+	batch = gen8_emit_pipe_control(batch,
+				       PIPE_CONTROL_FLUSH_L3 |
+				       PIPE_CONTROL_GLOBAL_GTT_IVB |
+				       PIPE_CONTROL_CS_STALL |
+				       PIPE_CONTROL_QW_WRITE,
+				       slm_offset(engine));
+
 	batch = emit_lri(batch, lri, ARRAY_SIZE(lri));
 
 	/* WaMediaPoolStateCmdInWABB:bxt,glk */
@@ -2232,6 +2260,9 @@
 static void lrc_destroy_wa_ctx(struct intel_engine_cs *engine)
 {
 	i915_vma_unpin_and_release(&engine->wa_ctx.vma, 0);
+
+	/* Called on error unwind, clear all flags to prevent further use */
+	memset(&engine->wa_ctx, 0, sizeof(engine->wa_ctx));
 }
 
 typedef u32 *(*wa_bb_func_t)(struct intel_engine_cs *engine, u32 *batch);
@@ -3715,9 +3746,11 @@
 	ve->base.i915 = ctx->i915;
 	ve->base.gt = siblings[0]->gt;
 	ve->base.id = -1;
+
 	ve->base.class = OTHER_CLASS;
 	ve->base.uabi_class = I915_ENGINE_CLASS_INVALID;
 	ve->base.instance = I915_ENGINE_CLASS_INVALID_VIRTUAL;
+	ve->base.uabi_instance = I915_ENGINE_CLASS_INVALID_VIRTUAL;
 
 	/*
 	 * The decision on whether to submit a request using semaphores
@@ -3739,6 +3772,7 @@
 	intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);
 
 	intel_engine_init_execlists(&ve->base);
+	ve->base.breadcrumbs.irq_armed = true; /* fake HW, used for irq_work */
 
 	ve->base.cops = &virtual_context_ops;
 	ve->base.request_alloc = execlists_request_alloc;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -130,7 +130,19 @@
 	GEN9_MOCS_ENTRIES,
 	MOCS_ENTRY(I915_MOCS_CACHED,
 		   LE_3_WB | LE_TC_2_LLC_ELLC | LE_LRUM(3),
-		   L3_3_WB)
+		   L3_3_WB),
+
+	/*
+	 * mocs:63
+	 * - used by the L3 for all of its evictions.
+	 *   Thus it is expected to allow LLC cacheability to enable coherent
+	 *   flows to be maintained.
+	 * - used to force L3 uncachable cycles.
+	 *   Thus it is expected to make the surface L3 uncacheable.
+	 */
+	MOCS_ENTRY(63,
+		   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3),
+		   L3_1_UC)
 };
 
 /* NOTE: the LE_TGT_CACHE is not used on Broxton */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_ringbuffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_ringbuffer.c
@@ -1220,9 +1220,10 @@
 
 	i915_vma_make_unshrinkable(vma);
 
-	GEM_BUG_ON(ring->vaddr);
-	ring->vaddr = addr;
+	/* Discard any unused bytes beyond that submitted to hw. */
+	intel_ring_reset(ring, ring->emit);
 
+	ring->vaddr = addr;
 	return 0;
 
 err_ring:
@@ -1248,20 +1249,14 @@
 	if (!atomic_dec_and_test(&ring->pin_count))
 		return;
 
-	/* Discard any unused bytes beyond that submitted to hw. */
-	intel_ring_reset(ring, ring->emit);
-
 	i915_vma_unset_ggtt_write(vma);
 	if (i915_vma_is_map_and_fenceable(vma))
 		i915_vma_unpin_iomap(vma);
 	else
 		i915_gem_object_unpin_map(vma->obj);
 
-	GEM_BUG_ON(!ring->vaddr);
-	ring->vaddr = NULL;
-
-	i915_vma_unpin(vma);
 	i915_vma_make_purgeable(vma);
+	i915_vma_unpin(vma);
 }
 
 static struct i915_vma *create_ring_vma(struct i915_ggtt *ggtt, int size)
@@ -1310,8 +1305,9 @@
 		return ERR_PTR(-ENOMEM);
 
 	kref_init(&ring->ref);
-
 	ring->size = size;
+	ring->wrap = BITS_PER_TYPE(ring->size) - ilog2(size);
+
 	/* Workaround an erratum on the i830 which causes a hang if
 	 * the TAIL pointer points to within the last 2 cachelines
 	 * of the buffer.
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_timeline.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_timeline.c
@@ -282,6 +282,7 @@
 {
 	GEM_BUG_ON(atomic_read(&timeline->pin_count));
 	GEM_BUG_ON(!list_empty(&timeline->requests));
+	GEM_BUG_ON(timeline->retire);
 
 	if (timeline->hwsp_cacheline)
 		cacheline_free(timeline->hwsp_cacheline);
@@ -339,15 +340,33 @@
 	struct intel_gt_timelines *timelines = &tl->gt->timelines;
 	unsigned long flags;
 
+	/*
+	 * Pretend we are serialised by the timeline->mutex.
+	 *
+	 * While generally true, there are a few exceptions to the rule
+	 * for the engine->kernel_context being used to manage power
+	 * transitions. As the engine_park may be called from under any
+	 * timeline, it uses the power mutex as a global serialisation
+	 * lock to prevent any other request entering its timeline.
+	 *
+	 * The rule is generally tl->mutex, otherwise engine->wakeref.mutex.
+	 *
+	 * However, intel_gt_retire_request() does not know which engine
+	 * it is retiring along and so cannot partake in the engine-pm
+	 * barrier, and there we use the tl->active_count as a means to
+	 * pin the timeline in the active_list while the locks are dropped.
+	 * Ergo, as that is outside of the engine-pm barrier, we need to
+	 * use atomic to manipulate tl->active_count.
+	 */
 	lockdep_assert_held(&tl->mutex);
-
 	GEM_BUG_ON(!atomic_read(&tl->pin_count));
-	if (tl->active_count++)
+
+	if (atomic_add_unless(&tl->active_count, 1, 0))
 		return;
-	GEM_BUG_ON(!tl->active_count); /* overflow? */
 
 	spin_lock_irqsave(&timelines->lock, flags);
-	list_add(&tl->link, &timelines->active_list);
+	if (!atomic_fetch_inc(&tl->active_count))
+		list_add_tail(&tl->link, &timelines->active_list);
 	spin_unlock_irqrestore(&timelines->lock, flags);
 }
 
@@ -356,14 +375,16 @@
 	struct intel_gt_timelines *timelines = &tl->gt->timelines;
 	unsigned long flags;
 
+	/* See intel_timeline_enter() */
 	lockdep_assert_held(&tl->mutex);
 
-	GEM_BUG_ON(!tl->active_count);
-	if (--tl->active_count)
+	GEM_BUG_ON(!atomic_read(&tl->active_count));
+	if (atomic_add_unless(&tl->active_count, -1, 1))
 		return;
 
 	spin_lock_irqsave(&timelines->lock, flags);
-	list_del(&tl->link);
+	if (atomic_dec_and_test(&tl->active_count))
+		list_del(&tl->link);
 	spin_unlock_irqrestore(&timelines->lock, flags);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_timeline_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gt/intel_timeline_types.h
@@ -42,7 +42,7 @@
 	 * from the intel_context caller plus internal atomicity.
 	 */
 	atomic_t pin_count;
-	unsigned int active_count;
+	atomic_t active_count;
 
 	const u32 *hwsp_seqno;
 	struct i915_vma *hwsp_ggtt;
@@ -65,6 +65,9 @@
 	 */
 	struct i915_active_request last_request;
 
+	/** A chain of completed timelines ready for early retirement. */
+	struct intel_timeline *retire;
+
 	/**
 	 * We track the most recent seqno that we wait on in every context so
 	 * that we only have to emit a new await and dependency on a more
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -963,18 +963,6 @@
 	int i, ret = 0;
 	int cmd_len = cmd_length(s);
 	struct intel_gvt *gvt = s->vgpu->gvt;
-	u32 valid_len = CMD_LEN(1);
-
-	/*
-	 * Official intel docs are somewhat sloppy , check the definition of
-	 * MI_LOAD_REGISTER_IMM.
-	 */
-	#define MAX_VALID_LEN 127
-	if ((cmd_len < valid_len) || (cmd_len > MAX_VALID_LEN)) {
-		gvt_err("len is not valid:  len=%u  valid_len=%u\n",
-			cmd_len, valid_len);
-		return -EFAULT;
-	}
 
 	for (i = 1; i < cmd_len; i += 2) {
 		if (IS_BROADWELL(gvt->dev_priv) && s->ring_id != RCS0) {
@@ -1597,9 +1585,9 @@
 	if (!(cmd_val(s, 0) & (1 << 22)))
 		return ret;
 
-	/* check if QWORD */
-	if (DWORD_FIELD(0, 20, 19) == 1)
-		valid_len += 8;
+	/* check inline data */
+	if (cmd_val(s, 0) & BIT(18))
+		valid_len = CMD_LEN(9);
 	ret = gvt_check_valid_cmd_length(cmd_length(s),
 			valid_len);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/display.c
@@ -207,14 +207,41 @@
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG0) |
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG1) |
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG2);
-		vgpu_vreg_t(vgpu, LCPLL1_CTL) |=
-				LCPLL_PLL_ENABLE |
-				LCPLL_PLL_LOCK;
-		vgpu_vreg_t(vgpu, LCPLL2_CTL) |= LCPLL_PLL_ENABLE;
-
+		/*
+		 * Only 1 PIPE enabled in current vGPU display and PIPE_A is
+		 *  tied to TRANSCODER_A in HW, so it's safe to assume PIPE_A,
+		 *   TRANSCODER_A can be enabled. PORT_x depends on the input of
+		 *   setup_virtual_dp_monitor, we can bind DPLL0 to any PORT_x
+		 *   so we fixed to DPLL0 here.
+		 * Setup DPLL0: DP link clk 1620 MHz, non SSC, DP Mode
+		 */
+		vgpu_vreg_t(vgpu, DPLL_CTRL1) =
+			DPLL_CTRL1_OVERRIDE(DPLL_ID_SKL_DPLL0);
+		vgpu_vreg_t(vgpu, DPLL_CTRL1) |=
+			DPLL_CTRL1_LINK_RATE(DPLL_CTRL1_LINK_RATE_1620, DPLL_ID_SKL_DPLL0);
+		vgpu_vreg_t(vgpu, LCPLL1_CTL) =
+			LCPLL_PLL_ENABLE | LCPLL_PLL_LOCK;
+		vgpu_vreg_t(vgpu, DPLL_STATUS) = DPLL_LOCK(DPLL_ID_SKL_DPLL0);
+		/*
+		 * Golden M/N are calculated based on:
+		 *   24 bpp, 4 lanes, 154000 pixel clk (from virtual EDID),
+		 *   DP link clk 1620 MHz and non-constant_n.
+		 * TODO: calculate DP link symbol clk and stream clk m/n.
+		 */
+		vgpu_vreg_t(vgpu, PIPE_DATA_M1(TRANSCODER_A)) = 63 << TU_SIZE_SHIFT;
+		vgpu_vreg_t(vgpu, PIPE_DATA_M1(TRANSCODER_A)) |= 0x5b425e;
+		vgpu_vreg_t(vgpu, PIPE_DATA_N1(TRANSCODER_A)) = 0x800000;
+		vgpu_vreg_t(vgpu, PIPE_LINK_M1(TRANSCODER_A)) = 0x3cd6e;
+		vgpu_vreg_t(vgpu, PIPE_LINK_N1(TRANSCODER_A)) = 0x80000;
 	}
 
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) &=
+			~DPLL_CTRL2_DDI_CLK_OFF(PORT_B);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_B);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_B);
 		vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIB_DETECTED;
 		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
@@ -235,6 +262,12 @@
 	}
 
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_C)) {
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) &=
+			~DPLL_CTRL2_DDI_CLK_OFF(PORT_C);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_C);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_C);
 		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTC_HOTPLUG_CPT;
 		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
@@ -255,6 +288,12 @@
 	}
 
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_D)) {
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) &=
+			~DPLL_CTRL2_DDI_CLK_OFF(PORT_D);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_D);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_D);
 		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTD_HOTPLUG_CPT;
 		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
@@ -457,7 +496,8 @@
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
 
 	/* TODO: add more platforms support */
-	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
+	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv) ||
+		IS_COFFEELAKE(dev_priv)) {
 		if (connected) {
 			vgpu_vreg_t(vgpu, SFUSE_STRAP) |=
 				SFUSE_STRAP_DDID_DETECTED;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/dmabuf.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/dmabuf.c
@@ -96,12 +96,12 @@
 			dmabuf_obj = container_of(pos,
 					struct intel_vgpu_dmabuf_obj, list);
 			if (dmabuf_obj == obj) {
+				list_del(pos);
 				intel_gvt_hypervisor_put_vfio_device(vgpu);
 				idr_remove(&vgpu->object_idr,
 					   dmabuf_obj->dmabuf_id);
 				kfree(dmabuf_obj->info);
 				kfree(dmabuf_obj);
-				list_del(pos);
 				break;
 			}
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/gtt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/gtt.c
@@ -1956,7 +1956,11 @@
 
 	if (mm->type == INTEL_GVT_MM_PPGTT) {
 		list_del(&mm->ppgtt_mm.list);
+
+		mutex_lock(&mm->vgpu->gvt->gtt.ppgtt_mm_lock);
 		list_del(&mm->ppgtt_mm.lru_list);
+		mutex_unlock(&mm->vgpu->gvt->gtt.ppgtt_mm_lock);
+
 		invalidate_ppgtt_mm(mm);
 	} else {
 		vfree(mm->ggtt_mm.virtual_ggtt);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/handlers.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/handlers.c
@@ -3103,8 +3103,8 @@
 	MMIO_DFH(GEN9_WM_CHICKEN3, D_SKL_PLUS, F_MODE_MASK | F_CMD_ACCESS,
 		 NULL, NULL);
 
-	MMIO_D(GAMT_CHKN_BIT_REG, D_KBL);
-	MMIO_D(GEN9_CTX_PREEMPT_REG, D_KBL | D_SKL);
+	MMIO_D(GAMT_CHKN_BIT_REG, D_KBL | D_CFL);
+	MMIO_D(GEN9_CTX_PREEMPT_REG, D_SKL_PLUS);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/scheduler.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -374,7 +374,11 @@
 		for (i = 0; i < GVT_RING_CTX_NR_PDPS; i++) {
 			struct i915_page_directory * const pd =
 				i915_pd_entry(ppgtt->pd, i);
-
+			/* skip now as current i915 ppgtt alloc won't allocate
+			   top level pdp for non 4-level table, won't impact
+			   shadow ppgtt. */
+			if (!pd)
+				break;
 			px_dma(pd) = mm->ppgtt_mm.shadow_pdps[i];
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/gvt/vgpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/gvt/vgpu.c
@@ -272,10 +272,17 @@
 {
 	struct intel_gvt *gvt = vgpu->gvt;
 
-	mutex_lock(&vgpu->vgpu_lock);
-
 	WARN(vgpu->active, "vGPU is still active!\n");
 
+	/*
+	 * remove idr first so later clean can judge if need to stop
+	 * service if no active vgpu.
+	 */
+	mutex_lock(&gvt->lock);
+	idr_remove(&gvt->vgpu_idr, vgpu->id);
+	mutex_unlock(&gvt->lock);
+
+	mutex_lock(&vgpu->vgpu_lock);
 	intel_gvt_debugfs_remove_vgpu(vgpu);
 	intel_vgpu_clean_sched_policy(vgpu);
 	intel_vgpu_clean_submission(vgpu);
@@ -290,7 +297,6 @@
 	mutex_unlock(&vgpu->vgpu_lock);
 
 	mutex_lock(&gvt->lock);
-	idr_remove(&gvt->vgpu_idr, vgpu->id);
 	if (idr_is_empty(&gvt->vgpu_idr))
 		intel_gvt_clean_irq(gvt);
 	intel_gvt_update_vgpu_types(gvt);
@@ -560,9 +566,9 @@
 
 		intel_vgpu_reset_mmio(vgpu, dmlr);
 		populate_pvinfo_page(vgpu);
-		intel_vgpu_reset_display(vgpu);
 
 		if (dmlr) {
+			intel_vgpu_reset_display(vgpu);
 			intel_vgpu_reset_cfg_space(vgpu);
 			/* only reset the failsafe mode when dmlr reset */
 			vgpu->failsafe = false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_active.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_active.c
@@ -121,7 +121,7 @@
 #endif
 
 static void
-__active_retire(struct i915_active *ref)
+__active_retire(struct i915_active *ref, bool lock)
 {
 	struct active_node *it, *n;
 	struct rb_root root;
@@ -138,7 +138,8 @@
 		retire = true;
 	}
 
-	mutex_unlock(&ref->mutex);
+	if (likely(lock))
+		mutex_unlock(&ref->mutex);
 	if (!retire)
 		return;
 
@@ -153,21 +154,28 @@
 }
 
 static void
-active_retire(struct i915_active *ref)
+active_retire(struct i915_active *ref, bool lock)
 {
 	GEM_BUG_ON(!atomic_read(&ref->count));
 	if (atomic_add_unless(&ref->count, -1, 1))
 		return;
 
 	/* One active may be flushed from inside the acquire of another */
-	mutex_lock_nested(&ref->mutex, SINGLE_DEPTH_NESTING);
-	__active_retire(ref);
+	if (likely(lock))
+		mutex_lock_nested(&ref->mutex, SINGLE_DEPTH_NESTING);
+	__active_retire(ref, lock);
 }
 
 static void
 node_retire(struct i915_active_request *base, struct i915_request *rq)
 {
-	active_retire(node_from_active(base)->ref);
+	active_retire(node_from_active(base)->ref, true);
+}
+
+static void
+node_retire_nolock(struct i915_active_request *base, struct i915_request *rq)
+{
+	active_retire(node_from_active(base)->ref, false);
 }
 
 static struct i915_active_request *
@@ -364,7 +372,7 @@
 void i915_active_release(struct i915_active *ref)
 {
 	debug_active_assert(ref);
-	active_retire(ref);
+	active_retire(ref, true);
 }
 
 static void __active_ungrab(struct i915_active *ref)
@@ -391,7 +399,7 @@
 {
 	GEM_BUG_ON(!test_bit(I915_ACTIVE_GRAB_BIT, &ref->flags));
 
-	active_retire(ref);
+	active_retire(ref, true);
 	__active_ungrab(ref);
 }
 
@@ -421,12 +429,13 @@
 			break;
 		}
 
-		err = i915_active_request_retire(&it->base, BKL(ref));
+		err = i915_active_request_retire(&it->base, BKL(ref),
+						 node_retire_nolock);
 		if (err)
 			break;
 	}
 
-	__active_retire(ref);
+	__active_retire(ref, true);
 	if (err)
 		return err;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_active.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_active.h
@@ -309,7 +309,7 @@
  */
 static inline int __must_check
 i915_active_request_retire(struct i915_active_request *active,
-			   struct mutex *mutex)
+			   struct mutex *mutex, i915_active_retire_fn retire)
 {
 	struct i915_request *request;
 	long ret;
@@ -327,7 +327,7 @@
 	list_del_init(&active->link);
 	RCU_INIT_POINTER(active->request, NULL);
 
-	active->retire(active, request);
+	retire(active, request);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_cmd_parser.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_cmd_parser.c
@@ -572,6 +572,9 @@
 #define REG32(_reg, ...) \
 	{ .addr = (_reg), __VA_ARGS__ }
 
+#define REG32_IDX(_reg, idx) \
+	{ .addr = _reg(idx) }
+
 /*
  * Convenience macro for adding 64-bit registers.
  *
@@ -669,6 +672,7 @@
 	REG64_IDX(RING_TIMESTAMP, BSD_RING_BASE),
 	REG32(BCS_SWCTRL),
 	REG64_IDX(RING_TIMESTAMP, BLT_RING_BASE),
+	REG32_IDX(RING_CTX_TIMESTAMP, BLT_RING_BASE),
 	REG64_IDX(BCS_GPR, 0),
 	REG64_IDX(BCS_GPR, 1),
 	REG64_IDX(BCS_GPR, 2),
@@ -1203,6 +1207,12 @@
 	return dst;
 }
 
+static inline bool cmd_desc_is(const struct drm_i915_cmd_descriptor * const desc,
+			       const u32 cmd)
+{
+	return desc->cmd.value == (cmd & desc->cmd.mask);
+}
+
 static bool check_cmd(const struct intel_engine_cs *engine,
 		      const struct drm_i915_cmd_descriptor *desc,
 		      const u32 *cmd, u32 length)
@@ -1241,19 +1251,19 @@
 			 * allowed mask/value pair given in the whitelist entry.
 			 */
 			if (reg->mask) {
-				if (desc->cmd.value == MI_LOAD_REGISTER_MEM) {
+				if (cmd_desc_is(desc, MI_LOAD_REGISTER_MEM)) {
 					DRM_DEBUG_DRIVER("CMD: Rejected LRM to masked register 0x%08X\n",
 							 reg_addr);
 					return false;
 				}
 
-				if (desc->cmd.value == MI_LOAD_REGISTER_REG) {
+				if (cmd_desc_is(desc, MI_LOAD_REGISTER_REG)) {
 					DRM_DEBUG_DRIVER("CMD: Rejected LRR to masked register 0x%08X\n",
 							 reg_addr);
 					return false;
 				}
 
-				if (desc->cmd.value == MI_LOAD_REGISTER_IMM(1) &&
+				if (cmd_desc_is(desc, MI_LOAD_REGISTER_IMM(1)) &&
 				    (offset + 2 > length ||
 				     (cmd[offset + 1] & reg->mask) != reg->value)) {
 					DRM_DEBUG_DRIVER("CMD: Rejected LRI to masked register 0x%08X\n",
@@ -1484,7 +1494,7 @@
 			goto err;
 		}
 
-		if (desc->cmd.value == MI_BATCH_BUFFER_START) {
+		if (cmd_desc_is(desc, MI_BATCH_BUFFER_START)) {
 			ret = check_bbstart(ctx, cmd, offset, length,
 					    batch_len, batch_start,
 					    shadow_batch_start);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2360,8 +2360,7 @@
 
 		for_each_power_domain(power_domain, power_well->desc->domains)
 			seq_printf(m, "  %-23s %d\n",
-				 intel_display_power_domain_str(dev_priv,
-								power_domain),
+				 intel_display_power_domain_str(power_domain),
 				 power_domains->domain_use_count[power_domain]);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_drv.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_drv.h
@@ -33,6 +33,8 @@
 #include <uapi/drm/i915_drm.h>
 #include <uapi/drm/drm_fourcc.h>
 
+#include <asm/hypervisor.h>
+
 #include <linux/io-mapping.h>
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
@@ -1740,6 +1742,9 @@
 
 	bool ipc_enabled;
 
+	/* Hack to bypass TMDS_OE write on DP->HDMI dongle */
+	bool bypass_tmds_oe;
+
 	/* Used to save the pipe-to-encoder mapping for audio */
 	struct intel_encoder *av_enc_map[I915_MAX_PIPES];
 
@@ -1892,7 +1897,7 @@
 {
 	const unsigned int pi = __platform_mask_index(info, p);
 
-	return info->platform_mask[pi] & INTEL_SUBPLATFORM_BITS;
+	return info->platform_mask[pi] & ((1 << INTEL_SUBPLATFORM_BITS) - 1);
 }
 
 static __always_inline bool
@@ -2197,7 +2202,9 @@
 	if (intel_iommu_gfx_mapped)
 		return true;
 #endif
-	return false;
+
+	/* Running as a guest, we assume the host is enforcing VT'd */
+	return !hypervisor_is_type(X86_HYPER_NATIVE);
 }
 
 static inline bool intel_scanout_needs_vtd_wa(struct drm_i915_private *dev_priv)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_gem.c
@@ -136,14 +136,14 @@
 		     struct drm_i915_gem_pwrite *args,
 		     struct drm_file *file)
 {
-	void *vaddr = obj->phys_handle->vaddr + args->offset;
+	void *vaddr = sg_page(obj->mm.pages->sgl) + args->offset;
 	char __user *user_data = u64_to_user_ptr(args->data_ptr);
 
 	/*
 	 * We manually control the domain here and pretend that it
 	 * remains coherent i.e. in the GTT domain, like shmem_pwrite.
 	 */
-	intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 
 	if (copy_from_user(vaddr, user_data, args->size))
 		return -EFAULT;
@@ -151,7 +151,7 @@
 	drm_clflush_virt_range(vaddr, args->size);
 	intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt);
 
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 	return 0;
 }
 
@@ -588,7 +588,7 @@
 		goto out_unpin;
 	}
 
-	intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 
 	user_data = u64_to_user_ptr(args->data_ptr);
 	offset = args->offset;
@@ -630,7 +630,7 @@
 		user_data += page_length;
 		offset += page_length;
 	}
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 
 	i915_gem_object_unlock_fence(obj, fence);
 out_unpin:
@@ -723,7 +723,7 @@
 		offset = 0;
 	}
 
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 	i915_gem_object_unlock_fence(obj, fence);
 
 	return ret;
@@ -802,10 +802,10 @@
 		ret = i915_gem_gtt_pwrite_fast(obj, args);
 
 	if (ret == -EFAULT || ret == -ENOSPC) {
-		if (obj->phys_handle)
-			ret = i915_gem_phys_pwrite(obj, args, file);
-		else
+		if (i915_gem_object_has_struct_page(obj))
 			ret = i915_gem_shmem_pwrite(obj, args);
+		else
+			ret = i915_gem_phys_pwrite(obj, args, file);
 	}
 
 	i915_gem_object_unpin_pages(obj);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1178,6 +1178,7 @@
 	pd = i915_pd_entry(pdp, gen8_pd_index(idx, 2));
 	vaddr = kmap_atomic_px(i915_pt_entry(pd, gen8_pd_index(idx, 1)));
 	do {
+		GEM_BUG_ON(iter->sg->length < I915_GTT_PAGE_SIZE);
 		vaddr[gen8_pd_index(idx, 0)] = pte_encode | iter->dma;
 
 		iter->dma += I915_GTT_PAGE_SIZE;
@@ -1657,6 +1658,7 @@
 
 	vaddr = kmap_atomic_px(i915_pt_entry(pd, act_pt));
 	do {
+		GEM_BUG_ON(iter.sg->length < I915_GTT_PAGE_SIZE);
 		vaddr[act_pte] = pte_encode | GEN6_PTE_ADDR_ENCODE(iter.dma);
 
 		iter.dma += I915_GTT_PAGE_SIZE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_gpu_error.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -307,6 +307,8 @@
 
 		if (zlib_deflate(zstream, Z_NO_FLUSH) != Z_OK)
 			return -EIO;
+
+		cond_resched();
 	} while (zstream->avail_in);
 
 	/* Fallback to uncompressed if we increase size? */
@@ -392,6 +394,7 @@
 	if (!i915_memcpy_from_wc(ptr, src, PAGE_SIZE))
 		memcpy(ptr, src, PAGE_SIZE);
 	dst->pages[dst->page_count++] = ptr;
+	cond_resched();
 
 	return 0;
 }
@@ -1768,7 +1771,8 @@
 	if (!xchg(&warned, true) &&
 	    ktime_get_real_seconds() - DRIVER_TIMESTAMP < DAY_AS_SECONDS(180)) {
 		pr_info("GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.\n");
-		pr_info("Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel\n");
+		pr_info("Please file a _new_ bug report at https://gitlab.freedesktop.org/drm/intel/issues/new.\n");
+		pr_info("Please see https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs for details.\n");
 		pr_info("drm/i915 developers can then reassign to the right component if it's not a kernel issue.\n");
 		pr_info("The GPU crash dump is required to analyze GPU hangs, so please always attach it.\n");
 		pr_info("GPU crash dump saved to /sys/class/drm/card%d/error\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_irq.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_irq.c
@@ -3500,6 +3500,7 @@
 
 	val = I915_READ(GEN11_DE_HPD_IMR);
 	val &= ~hotplug_irqs;
+	val |= ~enabled_irqs & hotplug_irqs;
 	I915_WRITE(GEN11_DE_HPD_IMR, val);
 	POSTING_READ(GEN11_DE_HPD_IMR);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_params.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_params.c
@@ -84,8 +84,7 @@
 
 i915_param_named_unsafe(enable_psr, int, 0600,
 	"Enable PSR "
-	"(0=disabled, 1=enabled) "
-	"Default: -1 (use per-chip default)");
+	"(-1=use per-chip default, 0=disabled [default], 1=enabled) ");
 
 i915_param_named_unsafe(force_probe, charp, 0400,
 	"Force probe the driver for specified devices. "
@@ -171,7 +170,7 @@
 
 i915_param_named(enable_dpcd_backlight, int, 0600,
 	"Enable support for DPCD backlight control"
-	"(-1=use per-VBT LFP backlight type setting, 0=disabled [default], 1=enabled)");
+	"(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enabled)");
 
 #if IS_ENABLED(CONFIG_DRM_I915_GVT)
 i915_param_named(enable_gvt, bool, 0400,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_params.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_params.h
@@ -50,7 +50,7 @@
 	param(int, vbt_sdvo_panel_type, -1) \
 	param(int, enable_dc, -1) \
 	param(int, enable_fbc, -1) \
-	param(int, enable_psr, -1) \
+	param(int, enable_psr, 0) \
 	param(int, disable_power_well, -1) \
 	param(int, enable_ips, 1) \
 	param(int, invert_brightness, 0) \
@@ -64,7 +64,7 @@
 	param(int, reset, 2) \
 	param(unsigned int, inject_load_failure, 0) \
 	param(int, fastboot, -1) \
-	param(int, enable_dpcd_backlight, 0) \
+	param(int, enable_dpcd_backlight, -1) \
 	param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE) \
 	/* leave bools at the end to not create holes */ \
 	param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_perf.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_perf.c
@@ -2313,49 +2313,6 @@
 }
 
 /**
- * i915_perf_read_locked - &i915_perf_stream_ops->read with error normalisation
- * @stream: An i915 perf stream
- * @file: An i915 perf stream file
- * @buf: destination buffer given by userspace
- * @count: the number of bytes userspace wants to read
- * @ppos: (inout) file seek position (unused)
- *
- * Besides wrapping &i915_perf_stream_ops->read this provides a common place to
- * ensure that if we've successfully copied any data then reporting that takes
- * precedence over any internal error status, so the data isn't lost.
- *
- * For example ret will be -ENOSPC whenever there is more buffered data than
- * can be copied to userspace, but that's only interesting if we weren't able
- * to copy some data because it implies the userspace buffer is too small to
- * receive a single record (and we never split records).
- *
- * Another case with ret == -EFAULT is more of a grey area since it would seem
- * like bad form for userspace to ask us to overrun its buffer, but the user
- * knows best:
- *
- *   http://yarchive.net/comp/linux/partial_reads_writes.html
- *
- * Returns: The number of bytes copied or a negative error code on failure.
- */
-static ssize_t i915_perf_read_locked(struct i915_perf_stream *stream,
-				     struct file *file,
-				     char __user *buf,
-				     size_t count,
-				     loff_t *ppos)
-{
-	/* Note we keep the offset (aka bytes read) separate from any
-	 * error status so that the final check for whether we return
-	 * the bytes read with a higher precedence than any error (see
-	 * comment below) doesn't need to be handled/duplicated in
-	 * stream->ops->read() implementations.
-	 */
-	size_t offset = 0;
-	int ret = stream->ops->read(stream, buf, count, &offset);
-
-	return offset ?: (ret ?: -EAGAIN);
-}
-
-/**
  * i915_perf_read - handles read() FOP for i915 perf stream FDs
  * @file: An i915 perf stream file
  * @buf: destination buffer given by userspace
@@ -2380,7 +2337,8 @@
 {
 	struct i915_perf_stream *stream = file->private_data;
 	struct drm_i915_private *dev_priv = stream->dev_priv;
-	ssize_t ret;
+	size_t offset = 0;
+	int ret;
 
 	/* To ensure it's handled consistently we simply treat all reads of a
 	 * disabled stream as an error. In particular it might otherwise lead
@@ -2403,13 +2361,12 @@
 				return ret;
 
 			mutex_lock(&dev_priv->perf.lock);
-			ret = i915_perf_read_locked(stream, file,
-						    buf, count, ppos);
+			ret = stream->ops->read(stream, buf, count, &offset);
 			mutex_unlock(&dev_priv->perf.lock);
-		} while (ret == -EAGAIN);
+		} while (!offset && !ret);
 	} else {
 		mutex_lock(&dev_priv->perf.lock);
-		ret = i915_perf_read_locked(stream, file, buf, count, ppos);
+		ret = stream->ops->read(stream, buf, count, &offset);
 		mutex_unlock(&dev_priv->perf.lock);
 	}
 
@@ -2420,15 +2377,15 @@
 	 * and read() returning -EAGAIN. Clearing the oa.pollin state here
 	 * effectively ensures we back off until the next hrtimer callback
 	 * before reporting another EPOLLIN event.
+	 * The exception to this is if ops->read() returned -ENOSPC which means
+	 * that more OA data is available than could fit in the user provided
+	 * buffer. In this case we want the next poll() call to not block.
 	 */
-	if (ret >= 0 || ret == -EAGAIN) {
-		/* Maybe make ->pollin per-stream state if we support multiple
-		 * concurrent streams in the future.
-		 */
+	if (ret != -ENOSPC)
 		stream->pollin = false;
-	}
 
-	return ret;
+	/* Possible values for ret are 0, -EFAULT, -ENOSPC, -EIO, ... */
+	return offset ?: (ret ?: -EAGAIN);
 }
 
 static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_reg.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_reg.h
@@ -4049,7 +4049,13 @@
 #define  GWUNIT_CLKGATE_DIS		(1 << 16)
 
 #define UNSLICE_UNIT_LEVEL_CLKGATE	_MMIO(0x9434)
-#define  VFUNIT_CLKGATE_DIS		(1 << 20)
+#define   VFUNIT_CLKGATE_DIS		REG_BIT(20)
+#define   HSUNIT_CLKGATE_DIS		REG_BIT(8)
+#define   VSUNIT_CLKGATE_DIS		REG_BIT(3)
+
+#define UNSLICE_UNIT_LEVEL_CLKGATE2	_MMIO(0x94e4)
+#define   VSUNIT_CLKGATE_DIS_TGL	REG_BIT(19)
+#define   PSDUNIT_CLKGATE_DIS		REG_BIT(5)
 
 #define INF_UNIT_LEVEL_CLKGATE		_MMIO(0x9560)
 #define   CGPSF_CLKGATE_DIS		(1 << 3)
@@ -8832,8 +8838,13 @@
 #define     ICL_PCODE_MEM_SS_READ_QGV_POINT_INFO(point)	(((point) << 16) | (0x1 << 8))
 #define   GEN6_PCODE_READ_D_COMP		0x10
 #define   GEN6_PCODE_WRITE_D_COMP		0x11
+#define   ICL_PCODE_EXIT_TCCOLD			0x12
 #define   HSW_PCODE_DE_WRITE_FREQ_REQ		0x17
 #define   DISPLAY_IPS_CONTROL			0x19
+#define   TGL_PCODE_TCCOLD			0x26
+#define     TGL_PCODE_EXIT_TCCOLD_DATA_L_EXIT_FAILED	REG_BIT(0)
+#define     TGL_PCODE_EXIT_TCCOLD_DATA_H_BLOCK_REQ	0
+#define     TGL_PCODE_EXIT_TCCOLD_DATA_H_UNBLOCK_REQ	REG_BIT(0)
             /* See also IPS_CTL */
 #define     IPS_PCODE_CONTROL			(1 << 30)
 #define   HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL	0x1A
@@ -9104,6 +9115,9 @@
 #define HSW_AUD_CHICKENBIT			_MMIO(0x65f10)
 #define   SKL_AUD_CODEC_WAKE_SIGNAL		(1 << 15)
 
+#define AUD_PIN_BUF_CTL		_MMIO(0x48414)
+#define   AUD_PIN_BUF_ENABLE		REG_BIT(31)
+
 /*
  * HSW - ICL power wells
  *
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_request.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_request.c
@@ -215,7 +215,7 @@
 	spin_unlock(&locked->active.lock);
 }
 
-static bool i915_request_retire(struct i915_request *rq)
+bool i915_request_retire(struct i915_request *rq)
 {
 	struct i915_active_request *active, *next;
 
@@ -560,19 +560,31 @@
 	return NOTIFY_DONE;
 }
 
+static void irq_semaphore_cb(struct irq_work *wrk)
+{
+	struct i915_request *rq =
+		container_of(wrk, typeof(*rq), semaphore_work);
+
+	i915_schedule_bump_priority(rq, I915_PRIORITY_NOSEMAPHORE);
+	i915_request_put(rq);
+}
+
 static int __i915_sw_fence_call
 semaphore_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state)
 {
-	struct i915_request *request =
-		container_of(fence, typeof(*request), semaphore);
+	struct i915_request *rq = container_of(fence, typeof(*rq), semaphore);
 
 	switch (state) {
 	case FENCE_COMPLETE:
-		i915_schedule_bump_priority(request, I915_PRIORITY_NOSEMAPHORE);
+		if (!(READ_ONCE(rq->sched.attr.priority) & I915_PRIORITY_NOSEMAPHORE)) {
+			i915_request_get(rq);
+			init_irq_work(&rq->semaphore_work, irq_semaphore_cb);
+			irq_work_queue(&rq->semaphore_work);
+		}
 		break;
 
 	case FENCE_FREE:
-		i915_request_put(request);
+		i915_request_put(rq);
 		break;
 	}
 
@@ -882,8 +894,10 @@
 	GEM_BUG_ON(to == from);
 	GEM_BUG_ON(to->timeline == from->timeline);
 
-	if (i915_request_completed(from))
+	if (i915_request_completed(from)) {
+		i915_sw_fence_set_error_once(&to->submit, from->fence.error);
 		return 0;
+	}
 
 	if (to->engine->schedule) {
 		ret = i915_sched_node_add_dependency(&to->sched, &from->sched);
@@ -1215,9 +1229,9 @@
 	 * decide whether to preempt the entire chain so that it is ready to
 	 * run at the earliest possible convenience.
 	 */
-	i915_sw_fence_commit(&rq->semaphore);
 	if (attr && rq->engine->schedule)
 		rq->engine->schedule(rq, attr);
+	i915_sw_fence_commit(&rq->semaphore);
 	i915_sw_fence_commit(&rq->submit);
 }
 
@@ -1513,8 +1527,8 @@
 			continue;
 
 		intel_timeline_get(tl);
-		GEM_BUG_ON(!tl->active_count);
-		tl->active_count++; /* pin the list element */
+		GEM_BUG_ON(!atomic_read(&tl->active_count));
+		atomic_inc(&tl->active_count); /* pin the list element */
 		spin_unlock_irqrestore(&timelines->lock, flags);
 
 		retire_requests(tl);
@@ -1523,14 +1537,14 @@
 
 		/* Resume iteration after dropping lock */
 		list_safe_reset_next(tl, tn, link);
-		if (!--tl->active_count)
+		if (atomic_dec_and_test(&tl->active_count))
 			list_del(&tl->link);
 
 		mutex_unlock(&tl->mutex);
 
 		/* Defer the final release to after the spinlock */
 		if (refcount_dec_and_test(&tl->kref.refcount)) {
-			GEM_BUG_ON(tl->active_count);
+			GEM_BUG_ON(atomic_read(&tl->active_count));
 			list_add(&tl->link, &free);
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_request.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_request.h
@@ -26,6 +26,7 @@
 #define I915_REQUEST_H
 
 #include <linux/dma-fence.h>
+#include <linux/irq_work.h>
 #include <linux/lockdep.h>
 
 #include "gt/intel_context_types.h"
@@ -147,6 +148,7 @@
 	};
 	struct list_head execute_cb;
 	struct i915_sw_fence semaphore;
+	struct irq_work semaphore_work;
 
 	/*
 	 * A list of everyone we wait upon, and everyone who waits upon us.
@@ -251,6 +253,7 @@
 void __i915_request_queue(struct i915_request *rq,
 			  const struct i915_sched_attr *attr);
 
+bool i915_request_retire(struct i915_request *rq);
 void i915_request_retire_upto(struct i915_request *rq);
 
 static inline struct i915_request *
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_scheduler.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_scheduler.c
@@ -418,8 +418,6 @@
 
 	if (!node_signaled(signal)) {
 		INIT_LIST_HEAD(&dep->dfs_link);
-		list_add(&dep->wait_link, &signal->waiters_list);
-		list_add(&dep->signal_link, &node->signalers_list);
 		dep->signaler = signal;
 		dep->waiter = node;
 		dep->flags = flags;
@@ -429,6 +427,10 @@
 		    !node_started(signal))
 			node->flags |= I915_SCHED_HAS_SEMAPHORE_CHAIN;
 
+		/* All set, now publish. Beware the lockless walkers. */
+		list_add(&dep->signal_link, &node->signalers_list);
+		list_add_rcu(&dep->wait_link, &signal->waiters_list);
+
 		/*
 		 * As we do not allow WAIT to preempt inflight requests,
 		 * once we have executed a request, along with triggering
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_sw_fence.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_sw_fence.c
@@ -158,9 +158,13 @@
 
 		do {
 			list_for_each_entry_safe(pos, next, &x->head, entry) {
-				pos->func(pos,
-					  TASK_NORMAL, fence->error,
-					  &extra);
+				int wake_flags;
+
+				wake_flags = fence->error;
+				if (pos->func == autoremove_wake_function)
+					wake_flags = 0;
+
+				pos->func(pos, TASK_NORMAL, wake_flags, &extra);
 			}
 
 			if (list_empty(&extra))
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_utils.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_utils.c
@@ -8,9 +8,8 @@
 #include "i915_drv.h"
 #include "i915_utils.h"
 
-#define FDO_BUG_URL "https://bugs.freedesktop.org/enter_bug.cgi?product=DRI"
-#define FDO_BUG_MSG "Please file a bug at " FDO_BUG_URL " against DRM/Intel " \
-		    "providing the dmesg log by booting with drm.debug=0xf"
+#define FDO_BUG_URL "https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs"
+#define FDO_BUG_MSG "Please file a bug on drm/i915; see " FDO_BUG_URL " for details."
 
 void
 __i915_printk(struct drm_i915_private *dev_priv, const char *level,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_utils.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_utils.h
@@ -233,6 +233,11 @@
 	__idx;								\
 })
 
+static inline bool is_power_of_2_u64(u64 n)
+{
+	return (n != 0 && ((n & (n - 1)) == 0));
+}
+
 static inline void __list_del_many(struct list_head *head,
 				   struct list_head *first)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/i915_vma.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/i915_vma.c
@@ -907,10 +907,16 @@
 		return err;
 
 	if (flags & EXEC_OBJECT_WRITE) {
-		if (intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CS))
-			i915_active_ref(&obj->frontbuffer->write,
-					rq->timeline,
-					rq);
+		struct intel_frontbuffer *front;
+
+		front = __intel_frontbuffer_get(obj);
+		if (unlikely(front)) {
+			if (intel_frontbuffer_invalidate(front, ORIGIN_CS))
+				i915_active_ref(&front->write,
+						rq->timeline,
+						rq);
+			intel_frontbuffer_put(front);
+		}
 
 		dma_resv_add_excl_fence(vma->resv, &rq->fence);
 		obj->write_domain = I915_GEM_DOMAIN_RENDER;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/intel_pch.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/intel_pch.c
@@ -74,6 +74,11 @@
 		WARN_ON(!IS_COFFEELAKE(dev_priv));
 		/* CometPoint is CNP Compatible */
 		return PCH_CNP;
+	case INTEL_PCH_CMP_V_DEVICE_ID_TYPE:
+		DRM_DEBUG_KMS("Found Comet Lake V PCH (CMP-V)\n");
+		WARN_ON(!IS_COFFEELAKE(dev_priv));
+		/* Comet Lake V PCH is based on KBP, which is SPT compatible */
+		return PCH_SPT;
 	case INTEL_PCH_ICP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Ice Lake PCH\n");
 		WARN_ON(!IS_ICELAKE(dev_priv));
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/intel_pch.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/intel_pch.h
@@ -42,6 +42,7 @@
 #define INTEL_PCH_CNP_LP_DEVICE_ID_TYPE		0x9D80
 #define INTEL_PCH_CMP_DEVICE_ID_TYPE		0x0280
 #define INTEL_PCH_CMP2_DEVICE_ID_TYPE		0x0680
+#define INTEL_PCH_CMP_V_DEVICE_ID_TYPE		0xA380
 #define INTEL_PCH_ICP_DEVICE_ID_TYPE		0x3480
 #define INTEL_PCH_MCC_DEVICE_ID_TYPE		0x4B00
 #define INTEL_PCH_MCC2_DEVICE_ID_TYPE		0x3880
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/intel_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/intel_pm.c
@@ -4784,7 +4784,7 @@
 	 * WaIncreaseLatencyIPCEnabled: kbl,cfl
 	 * Display WA #1141: kbl,cfl
 	 */
-	if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv)) ||
+	if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv)) &&
 	    dev_priv->ipc_enabled)
 		latency += 4;
 
@@ -9194,6 +9194,17 @@
 	/* WaEnable32PlaneMode:icl */
 	I915_WRITE(GEN9_CSFE_CHICKEN1_RCS,
 		   _MASKED_BIT_ENABLE(GEN11_ENABLE_32_PLANE_MODE));
+
+	/*
+	 * Wa_1408615072:icl,ehl  (vsunit)
+	 * Wa_1407596294:icl,ehl  (hsunit)
+	 */
+	intel_uncore_rmw(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE,
+			 0, VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
+
+	/* Wa_1407352427:icl,ehl */
+	intel_uncore_rmw(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE2,
+			 0, PSDUNIT_CLKGATE_DIS);
 }
 
 static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/intel_uncore.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/intel_uncore.c
@@ -1124,6 +1124,18 @@
 		spin_unlock(&uncore->debug->lock);
 }
 
+#define __vgpu_read(x) \
+static u##x \
+vgpu_read##x(struct intel_uncore *uncore, i915_reg_t reg, bool trace) { \
+	u##x val = __raw_uncore_read##x(uncore, reg); \
+	trace_i915_reg_rw(false, reg, val, sizeof(val), trace); \
+	return val; \
+}
+__vgpu_read(8)
+__vgpu_read(16)
+__vgpu_read(32)
+__vgpu_read(64)
+
 #define GEN2_READ_HEADER(x) \
 	u##x val = 0; \
 	assert_rpm_wakelock_held(uncore->rpm);
@@ -1327,6 +1339,16 @@
 #undef GEN6_WRITE_FOOTER
 #undef GEN6_WRITE_HEADER
 
+#define __vgpu_write(x) \
+static void \
+vgpu_write##x(struct intel_uncore *uncore, i915_reg_t reg, u##x val, bool trace) { \
+	trace_i915_reg_rw(true, reg, val, sizeof(val), trace); \
+	__raw_uncore_write##x(uncore, reg, val); \
+}
+__vgpu_write(8)
+__vgpu_write(16)
+__vgpu_write(32)
+
 #define ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, x) \
 do { \
 	(uncore)->funcs.mmio_writeb = x##_write8; \
@@ -1647,7 +1669,10 @@
 {
 	GEM_BUG_ON(intel_uncore_has_forcewake(uncore));
 
-	if (IS_GEN(uncore->i915, 5)) {
+	if (intel_vgpu_active(uncore->i915)) {
+		ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, vgpu);
+		ASSIGN_RAW_READ_MMIO_VFUNCS(uncore, vgpu);
+	} else if (IS_GEN(uncore->i915, 5)) {
 		ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, gen5);
 		ASSIGN_RAW_READ_MMIO_VFUNCS(uncore, gen5);
 	} else {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/i915/selftests/i915_random.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/i915/selftests/i915_random.h
@@ -25,6 +25,7 @@
 #ifndef __I915_SELFTESTS_RANDOM_H__
 #define __I915_SELFTESTS_RANDOM_H__
 
+#include <linux/math64.h>
 #include <linux/random.h>
 
 #include "../i915_selftest.h"
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/imx/dw_hdmi-imx.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/imx/dw_hdmi-imx.c
@@ -212,9 +212,8 @@
 	if (!pdev->dev.of_node)
 		return -ENODEV;
 
-	hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL);
-	if (!hdmi)
-		return -ENOMEM;
+	hdmi = dev_get_drvdata(dev);
+	memset(hdmi, 0, sizeof(*hdmi));
 
 	match = of_match_node(dw_hdmi_imx_dt_ids, pdev->dev.of_node);
 	plat_data = match->data;
@@ -239,8 +238,6 @@
 	drm_encoder_init(drm, encoder, &dw_hdmi_imx_encoder_funcs,
 			 DRM_MODE_ENCODER_TMDS, NULL);
 
-	platform_set_drvdata(pdev, hdmi);
-
 	hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data);
 
 	/*
@@ -270,6 +267,14 @@
 
 static int dw_hdmi_imx_probe(struct platform_device *pdev)
 {
+	struct imx_hdmi *hdmi;
+
+	hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL);
+	if (!hdmi)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, hdmi);
+
 	return component_add(&pdev->dev, &dw_hdmi_imx_ops);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/imx/imx-drm-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/imx/imx-drm-core.c
@@ -281,9 +281,10 @@
 
 	drm_kms_helper_poll_fini(drm);
 
+	component_unbind_all(drm->dev, drm);
+
 	drm_mode_config_cleanup(drm);
 
-	component_unbind_all(drm->dev, drm);
 	dev_set_drvdata(dev, NULL);
 
 	drm_dev_put(drm);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/imx/imx-ldb.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/imx/imx-ldb.c
@@ -302,18 +302,19 @@
 {
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
 	struct imx_ldb *ldb = imx_ldb_ch->ldb;
+	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
 	int mux, ret;
 
 	drm_panel_disable(imx_ldb_ch->panel);
 
-	if (imx_ldb_ch == &ldb->channel[0])
+	if (imx_ldb_ch == &ldb->channel[0] || dual)
 		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-	else if (imx_ldb_ch == &ldb->channel[1])
+	if (imx_ldb_ch == &ldb->channel[1] || dual)
 		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
 
 	regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
 
-	if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
+	if (dual) {
 		clk_disable_unprepare(ldb->clk[0]);
 		clk_disable_unprepare(ldb->clk[1]);
 	}
@@ -593,9 +594,8 @@
 	int ret;
 	int i;
 
-	imx_ldb = devm_kzalloc(dev, sizeof(*imx_ldb), GFP_KERNEL);
-	if (!imx_ldb)
-		return -ENOMEM;
+	imx_ldb = dev_get_drvdata(dev);
+	memset(imx_ldb, 0, sizeof(*imx_ldb));
 
 	imx_ldb->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");
 	if (IS_ERR(imx_ldb->regmap)) {
@@ -703,8 +703,6 @@
 		}
 	}
 
-	dev_set_drvdata(dev, imx_ldb);
-
 	return 0;
 
 free_child:
@@ -736,6 +734,14 @@
 
 static int imx_ldb_probe(struct platform_device *pdev)
 {
+	struct imx_ldb *imx_ldb;
+
+	imx_ldb = devm_kzalloc(&pdev->dev, sizeof(*imx_ldb), GFP_KERNEL);
+	if (!imx_ldb)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, imx_ldb);
+
 	return component_add(&pdev->dev, &imx_ldb_ops);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/imx/imx-tve.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/imx/imx-tve.c
@@ -494,6 +494,13 @@
 	return 0;
 }
 
+static void imx_tve_disable_regulator(void *data)
+{
+	struct imx_tve *tve = data;
+
+	regulator_disable(tve->dac_reg);
+}
+
 static bool imx_tve_readable_reg(struct device *dev, unsigned int reg)
 {
 	return (reg % 4 == 0) && (reg <= 0xdc);
@@ -546,9 +553,8 @@
 	int irq;
 	int ret;
 
-	tve = devm_kzalloc(dev, sizeof(*tve), GFP_KERNEL);
-	if (!tve)
-		return -ENOMEM;
+	tve = dev_get_drvdata(dev);
+	memset(tve, 0, sizeof(*tve));
 
 	tve->dev = dev;
 	spin_lock_init(&tve->lock);
@@ -618,6 +624,9 @@
 		ret = regulator_enable(tve->dac_reg);
 		if (ret)
 			return ret;
+		ret = devm_add_action_or_reset(dev, imx_tve_disable_regulator, tve);
+		if (ret)
+			return ret;
 	}
 
 	tve->clk = devm_clk_get(dev, "tve");
@@ -659,27 +668,23 @@
 	if (ret)
 		return ret;
 
-	dev_set_drvdata(dev, tve);
-
 	return 0;
 }
 
-static void imx_tve_unbind(struct device *dev, struct device *master,
-	void *data)
-{
-	struct imx_tve *tve = dev_get_drvdata(dev);
-
-	if (!IS_ERR(tve->dac_reg))
-		regulator_disable(tve->dac_reg);
-}
-
 static const struct component_ops imx_tve_ops = {
 	.bind	= imx_tve_bind,
-	.unbind	= imx_tve_unbind,
 };
 
 static int imx_tve_probe(struct platform_device *pdev)
 {
+	struct imx_tve *tve;
+
+	tve = devm_kzalloc(&pdev->dev, sizeof(*tve), GFP_KERNEL);
+	if (!tve)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, tve);
+
 	return component_add(&pdev->dev, &imx_tve_ops);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/imx/ipuv3-crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/imx/ipuv3-crtc.c
@@ -438,21 +438,13 @@
 	struct ipu_client_platformdata *pdata = dev->platform_data;
 	struct drm_device *drm = data;
 	struct ipu_crtc *ipu_crtc;
-	int ret;
 
-	ipu_crtc = devm_kzalloc(dev, sizeof(*ipu_crtc), GFP_KERNEL);
-	if (!ipu_crtc)
-		return -ENOMEM;
+	ipu_crtc = dev_get_drvdata(dev);
+	memset(ipu_crtc, 0, sizeof(*ipu_crtc));
 
 	ipu_crtc->dev = dev;
 
-	ret = ipu_crtc_init(ipu_crtc, pdata, drm);
-	if (ret)
-		return ret;
-
-	dev_set_drvdata(dev, ipu_crtc);
-
-	return 0;
+	return ipu_crtc_init(ipu_crtc, pdata, drm);
 }
 
 static void ipu_drm_unbind(struct device *dev, struct device *master,
@@ -474,6 +466,7 @@
 static int ipu_drm_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
+	struct ipu_crtc *ipu_crtc;
 	int ret;
 
 	if (!dev->platform_data)
@@ -483,6 +476,12 @@
 	if (ret)
 		return ret;
 
+	ipu_crtc = devm_kzalloc(dev, sizeof(*ipu_crtc), GFP_KERNEL);
+	if (!ipu_crtc)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, ipu_crtc);
+
 	return component_add(dev, &ipu_crtc_ops);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/imx/parallel-display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/imx/parallel-display.c
@@ -204,9 +204,8 @@
 	u32 bus_format = 0;
 	const char *fmt;
 
-	imxpd = devm_kzalloc(dev, sizeof(*imxpd), GFP_KERNEL);
-	if (!imxpd)
-		return -ENOMEM;
+	imxpd = dev_get_drvdata(dev);
+	memset(imxpd, 0, sizeof(*imxpd));
 
 	edidp = of_get_property(np, "edid", &imxpd->edid_len);
 	if (edidp)
@@ -236,8 +235,6 @@
 	if (ret)
 		return ret;
 
-	dev_set_drvdata(dev, imxpd);
-
 	return 0;
 }
 
@@ -259,6 +256,14 @@
 
 static int imx_pd_probe(struct platform_device *pdev)
 {
+	struct imx_parallel_display *imxpd;
+
+	imxpd = devm_kzalloc(&pdev->dev, sizeof(*imxpd), GFP_KERNEL);
+	if (!imxpd)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, imxpd);
+
 	return component_add(&pdev->dev, &imx_pd_ops);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/ingenic/ingenic-drm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/ingenic/ingenic-drm.c
@@ -371,14 +371,18 @@
 	struct ingenic_drm *priv = drm_plane_get_priv(plane);
 	struct drm_plane_state *state = plane->state;
 	unsigned int width, height, cpp;
+	dma_addr_t addr;
 
-	width = state->crtc->state->adjusted_mode.hdisplay;
-	height = state->crtc->state->adjusted_mode.vdisplay;
-	cpp = state->fb->format->cpp[plane->index];
-
-	priv->dma_hwdesc->addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
-	priv->dma_hwdesc->cmd = width * height * cpp / 4;
-	priv->dma_hwdesc->cmd |= JZ_LCD_CMD_EOF_IRQ;
+	if (state && state->fb) {
+		addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
+		width = state->src_w >> 16;
+		height = state->src_h >> 16;
+		cpp = state->fb->format->cpp[0];
+
+		priv->dma_hwdesc->addr = addr;
+		priv->dma_hwdesc->cmd = width * height * cpp / 4;
+		priv->dma_hwdesc->cmd |= JZ_LCD_CMD_EOF_IRQ;
+	}
 }
 
 static void ingenic_drm_encoder_atomic_mode_set(struct drm_encoder *encoder,
@@ -463,7 +467,7 @@
 
 static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg)
 {
-	struct ingenic_drm *priv = arg;
+	struct ingenic_drm *priv = drm_device_get_priv(arg);
 	unsigned int state;
 
 	regmap_read(priv->map, JZ_REG_LCD_STATE, &state);
@@ -820,6 +824,7 @@
 	{ .compatible = "ingenic,jz4725b-lcd", .data = &jz4725b_soc_info },
 	{ /* sentinel */ },
 };
+MODULE_DEVICE_TABLE(of, ingenic_drm_of_match);
 
 static struct platform_driver ingenic_drm_driver = {
 	.driver = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mcde/mcde_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mcde/mcde_display.c
@@ -946,6 +946,7 @@
 	struct drm_crtc *crtc = &pipe->crtc;
 	struct drm_device *drm = crtc->dev;
 	struct mcde *mcde = drm->dev_private;
+	struct drm_pending_vblank_event *event;
 
 	if (mcde->te_sync)
 		drm_crtc_vblank_off(crtc);
@@ -953,6 +954,15 @@
 	/* Disable FIFO A flow */
 	mcde_disable_fifo(mcde, MCDE_FIFO_A, true);
 
+	event = crtc->state->event;
+	if (event) {
+		crtc->state->event = NULL;
+
+		spin_lock_irq(&crtc->dev->event_lock);
+		drm_crtc_send_vblank_event(crtc, event);
+		spin_unlock_irq(&crtc->dev->event_lock);
+	}
+
 	dev_info(drm->dev, "MCDE display is disabled\n");
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mcde/mcde_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mcde/mcde_drv.c
@@ -215,7 +215,6 @@
 
 	drm_mode_config_reset(drm);
 	drm_kms_helper_poll_init(drm);
-	drm_fbdev_generic_setup(drm, 32);
 
 	return 0;
 
@@ -282,6 +281,8 @@
 	if (ret < 0)
 		goto unbind;
 
+	drm_fbdev_generic_setup(drm, 32);
+
 	return 0;
 
 unbind:
@@ -409,8 +410,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		ret = -EINVAL;
+	if (irq < 0) {
+		ret = irq;
 		goto clk_disable;
 	}
 
@@ -484,7 +485,8 @@
 	}
 	if (!match) {
 		dev_err(dev, "no matching components\n");
-		return -ENODEV;
+		ret = -ENODEV;
+		goto clk_disable;
 	}
 	if (IS_ERR(match)) {
 		dev_err(dev, "could not create component match\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mcde/mcde_dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mcde/mcde_dsi.c
@@ -935,13 +935,14 @@
 	for_each_available_child_of_node(dev->of_node, child) {
 		panel = of_drm_find_panel(child);
 		if (IS_ERR(panel)) {
-			dev_err(dev, "failed to find panel try bridge (%lu)\n",
+			dev_err(dev, "failed to find panel try bridge (%ld)\n",
 				PTR_ERR(panel));
+			panel = NULL;
+
 			bridge = of_drm_find_bridge(child);
-			if (IS_ERR(bridge)) {
-				dev_err(dev, "failed to find bridge (%lu)\n",
-					PTR_ERR(bridge));
-				return PTR_ERR(bridge);
+			if (!bridge) {
+				dev_err(dev, "failed to find bridge\n");
+				return -EINVAL;
 			}
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -10,7 +10,9 @@
 #include <linux/kernel.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/of_gpio.h>
 #include <linux/of_graph.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/platform_device.h>
 #include <linux/types.h>
 
@@ -73,6 +75,9 @@
 	enum mtk_dpi_out_yc_map yc_map;
 	enum mtk_dpi_out_bit_num bit_num;
 	enum mtk_dpi_out_channel_swap channel_swap;
+	struct pinctrl *pinctrl;
+	struct pinctrl_state *pins_gpio;
+	struct pinctrl_state *pins_dpi;
 	int refcount;
 };
 
@@ -378,6 +383,9 @@
 	if (--dpi->refcount != 0)
 		return;
 
+	if (dpi->pinctrl && dpi->pins_gpio)
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
+
 	mtk_dpi_disable(dpi);
 	clk_disable_unprepare(dpi->pixel_clk);
 	clk_disable_unprepare(dpi->engine_clk);
@@ -402,6 +410,9 @@
 		goto err_pixel;
 	}
 
+	if (dpi->pinctrl && dpi->pins_dpi)
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi);
+
 	mtk_dpi_enable(dpi);
 	return 0;
 
@@ -689,6 +700,26 @@
 	dpi->dev = dev;
 	dpi->conf = (struct mtk_dpi_conf *)of_device_get_match_data(dev);
 
+	dpi->pinctrl = devm_pinctrl_get(&pdev->dev);
+	if (IS_ERR(dpi->pinctrl)) {
+		dpi->pinctrl = NULL;
+		dev_dbg(&pdev->dev, "Cannot find pinctrl!\n");
+	}
+	if (dpi->pinctrl) {
+		dpi->pins_gpio = pinctrl_lookup_state(dpi->pinctrl, "sleep");
+		if (IS_ERR(dpi->pins_gpio)) {
+			dpi->pins_gpio = NULL;
+			dev_dbg(&pdev->dev, "Cannot find pinctrl idle!\n");
+		}
+		if (dpi->pins_gpio)
+			pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
+
+		dpi->pins_dpi = pinctrl_lookup_state(dpi->pinctrl, "default");
+		if (IS_ERR(dpi->pins_dpi)) {
+			dpi->pins_dpi = NULL;
+			dev_dbg(&pdev->dev, "Cannot find pinctrl active!\n");
+		}
+	}
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	dpi->regs = devm_ioremap_resource(dev, mem);
 	if (IS_ERR(dpi->regs)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
@@ -298,6 +298,7 @@
 static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc)
 {
 	struct drm_device *drm = mtk_crtc->base.dev;
+	struct drm_crtc *crtc = &mtk_crtc->base;
 	int i;
 
 	DRM_DEBUG_DRIVER("%s\n", __func__);
@@ -319,6 +320,13 @@
 	mtk_disp_mutex_unprepare(mtk_crtc->mutex);
 
 	pm_runtime_put(drm->dev);
+
+	if (crtc->state->event && !crtc->state->active) {
+		spin_lock_irq(&crtc->dev->event_lock);
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+		spin_unlock_irq(&crtc->dev->event_lock);
+	}
 }
 
 static void mtk_crtc_ddp_config(struct drm_crtc *crtc)
@@ -488,10 +496,18 @@
 
 static int mtk_drm_crtc_init(struct drm_device *drm,
 			     struct mtk_drm_crtc *mtk_crtc,
-			     struct drm_plane *primary,
-			     struct drm_plane *cursor, unsigned int pipe)
+			     unsigned int pipe)
 {
-	int ret;
+	struct drm_plane *primary = NULL;
+	struct drm_plane *cursor = NULL;
+	int i, ret;
+
+	for (i = 0; i < mtk_crtc->layer_nr; i++) {
+		if (mtk_crtc->planes[i].type == DRM_PLANE_TYPE_PRIMARY)
+			primary = &mtk_crtc->planes[i];
+		else if (mtk_crtc->planes[i].type == DRM_PLANE_TYPE_CURSOR)
+			cursor = &mtk_crtc->planes[i];
+	}
 
 	ret = drm_crtc_init_with_planes(drm, &mtk_crtc->base, primary, cursor,
 					&mtk_crtc_funcs, NULL);
@@ -529,6 +545,7 @@
 	int pipe = priv->num_pipes;
 	int ret;
 	int i;
+	uint gamma_lut_size = 0;
 
 	if (!path)
 		return 0;
@@ -579,6 +596,9 @@
 		}
 
 		mtk_crtc->ddp_comp[i] = comp;
+
+		if (comp->funcs && comp->funcs->gamma_set)
+			gamma_lut_size = MTK_LUT_SIZE;
 	}
 
 	mtk_crtc->layer_nr = mtk_ddp_comp_layer_nr(mtk_crtc->ddp_comp[0]);
@@ -596,13 +616,13 @@
 			return ret;
 	}
 
-	ret = mtk_drm_crtc_init(drm_dev, mtk_crtc, &mtk_crtc->planes[0],
-				mtk_crtc->layer_nr > 1 ? &mtk_crtc->planes[1] :
-				NULL, pipe);
+	ret = mtk_drm_crtc_init(drm_dev, mtk_crtc, pipe);
 	if (ret < 0)
 		return ret;
-	drm_mode_crtc_set_gamma_size(&mtk_crtc->base, MTK_LUT_SIZE);
-	drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, MTK_LUT_SIZE);
+
+	if (gamma_lut_size)
+		drm_mode_crtc_set_gamma_size(&mtk_crtc->base, gamma_lut_size);
+	drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, gamma_lut_size);
 	priv->num_pipes++;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -594,8 +594,13 @@
 	pm_runtime_disable(dev);
 err_node:
 	of_node_put(private->mutex_node);
-	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
+	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++) {
 		of_node_put(private->comp_node[i]);
+		if (private->ddp_comp[i]) {
+			put_device(private->ddp_comp[i]->larb_dev);
+			private->ddp_comp[i] = NULL;
+		}
+	}
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_plane.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_plane.c
@@ -101,6 +101,16 @@
 						   true, true);
 }
 
+static void mtk_plane_atomic_disable(struct drm_plane *plane,
+				     struct drm_plane_state *old_state)
+{
+	struct mtk_plane_state *state = to_mtk_plane_state(plane->state);
+
+	state->pending.enable = false;
+	wmb(); /* Make sure the above parameter is set before update */
+	state->pending.dirty = true;
+}
+
 static void mtk_plane_atomic_update(struct drm_plane *plane,
 				    struct drm_plane_state *old_state)
 {
@@ -115,6 +125,11 @@
 	if (!crtc || WARN_ON(!fb))
 		return;
 
+	if (!plane->state->visible) {
+		mtk_plane_atomic_disable(plane, old_state);
+		return;
+	}
+
 	gem = fb->obj[0];
 	mtk_gem = to_mtk_gem_obj(gem);
 	addr = mtk_gem->dma_addr;
@@ -136,16 +151,6 @@
 	state->pending.dirty = true;
 }
 
-static void mtk_plane_atomic_disable(struct drm_plane *plane,
-				     struct drm_plane_state *old_state)
-{
-	struct mtk_plane_state *state = to_mtk_plane_state(plane->state);
-
-	state->pending.enable = false;
-	wmb(); /* Make sure the above parameter is set before update */
-	state->pending.dirty = true;
-}
-
 static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = {
 	.prepare_fb = drm_gem_fb_prepare_fb,
 	.atomic_check = mtk_plane_atomic_check,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1482,25 +1482,30 @@
 		dev_err(dev,
 			"Failed to get system configuration registers: %d\n",
 			ret);
-		return ret;
+		goto put_device;
 	}
 	hdmi->sys_regmap = regmap;
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	hdmi->regs = devm_ioremap_resource(dev, mem);
-	if (IS_ERR(hdmi->regs))
-		return PTR_ERR(hdmi->regs);
+	if (IS_ERR(hdmi->regs)) {
+		ret = PTR_ERR(hdmi->regs);
+		goto put_device;
+	}
 
 	remote = of_graph_get_remote_node(np, 1, 0);
-	if (!remote)
-		return -EINVAL;
+	if (!remote) {
+		ret = -EINVAL;
+		goto put_device;
+	}
 
 	if (!of_device_is_compatible(remote, "hdmi-connector")) {
 		hdmi->next_bridge = of_drm_find_bridge(remote);
 		if (!hdmi->next_bridge) {
 			dev_err(dev, "Waiting for external bridge\n");
 			of_node_put(remote);
-			return -EPROBE_DEFER;
+			ret = -EPROBE_DEFER;
+			goto put_device;
 		}
 	}
 
@@ -1509,7 +1514,8 @@
 		dev_err(dev, "Failed to find ddc-i2c-bus node in %pOF\n",
 			remote);
 		of_node_put(remote);
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_device;
 	}
 	of_node_put(remote);
 
@@ -1517,10 +1523,14 @@
 	of_node_put(i2c_np);
 	if (!hdmi->ddc_adpt) {
 		dev_err(dev, "Failed to get ddc i2c adapter by node\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_device;
 	}
 
 	return 0;
+put_device:
+	put_device(hdmi->cec_dev);
+	return ret;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
@@ -84,8 +84,9 @@
 	    hdmi_phy->conf->hdmi_phy_disable_tmds)
 		return &mtk_hdmi_phy_dev_ops;
 
-	dev_err(hdmi_phy->dev, "Failed to get dev ops of phy\n");
-		return NULL;
+	if (hdmi_phy)
+		dev_err(hdmi_phy->dev, "Failed to get dev ops of phy\n");
+	return NULL;
 }
 
 static void mtk_hdmi_phy_clk_get_data(struct mtk_hdmi_phy *hdmi_phy,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/meson/meson_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/meson/meson_drv.c
@@ -420,6 +420,16 @@
 	return count;
 }
 
+static void meson_drv_shutdown(struct platform_device *pdev)
+{
+	struct meson_drm *priv = dev_get_drvdata(&pdev->dev);
+	struct drm_device *drm = priv->drm;
+
+	DRM_DEBUG_DRIVER("\n");
+	drm_kms_helper_poll_fini(drm);
+	drm_atomic_helper_shutdown(drm);
+}
+
 static int meson_drv_probe(struct platform_device *pdev)
 {
 	struct component_match *match = NULL;
@@ -469,6 +479,7 @@
 
 static struct platform_driver meson_drm_platform_driver = {
 	.probe      = meson_drv_probe,
+	.shutdown   = meson_drv_shutdown,
 	.driver     = {
 		.name	= "meson-drm",
 		.of_match_table = dt_match,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/meson/meson_vclk.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/meson/meson_vclk.c
@@ -638,13 +638,18 @@
 		if (frac >= HDMI_FRAC_MAX_GXBB)
 			return false;
 	} else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXM) ||
-		   meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL) ||
-		   meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
+		   meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL)) {
 		/* Empiric supported min/max dividers */
 		if (m < 106 || m > 247)
 			return false;
 		if (frac >= HDMI_FRAC_MAX_GXL)
 			return false;
+	} else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
+		/* Empiric supported min/max dividers */
+		if (m < 106 || m > 247)
+			return false;
+		if (frac >= HDMI_FRAC_MAX_G12A)
+			return false;
 	}
 
 	return true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/meson/meson_venc_cvbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/meson/meson_venc_cvbs.c
@@ -64,6 +64,25 @@
 	},
 };
 
+static const struct meson_cvbs_mode *
+meson_cvbs_get_mode(const struct drm_display_mode *req_mode)
+{
+	int i;
+
+	for (i = 0; i < MESON_CVBS_MODES_COUNT; ++i) {
+		struct meson_cvbs_mode *meson_mode = &meson_cvbs_modes[i];
+
+		if (drm_mode_match(req_mode, &meson_mode->mode,
+				   DRM_MODE_MATCH_TIMINGS |
+				   DRM_MODE_MATCH_CLOCK |
+				   DRM_MODE_MATCH_FLAGS |
+				   DRM_MODE_MATCH_3D_FLAGS))
+			return meson_mode;
+	}
+
+	return NULL;
+}
+
 /* Connector */
 
 static void meson_cvbs_connector_destroy(struct drm_connector *connector)
@@ -136,14 +155,8 @@
 					struct drm_crtc_state *crtc_state,
 					struct drm_connector_state *conn_state)
 {
-	int i;
-
-	for (i = 0; i < MESON_CVBS_MODES_COUNT; ++i) {
-		struct meson_cvbs_mode *meson_mode = &meson_cvbs_modes[i];
-
-		if (drm_mode_equal(&crtc_state->mode, &meson_mode->mode))
-			return 0;
-	}
+	if (meson_cvbs_get_mode(&crtc_state->mode))
+		return 0;
 
 	return -EINVAL;
 }
@@ -191,24 +204,17 @@
 				   struct drm_display_mode *mode,
 				   struct drm_display_mode *adjusted_mode)
 {
+	const struct meson_cvbs_mode *meson_mode = meson_cvbs_get_mode(mode);
 	struct meson_venc_cvbs *meson_venc_cvbs =
 					encoder_to_meson_venc_cvbs(encoder);
 	struct meson_drm *priv = meson_venc_cvbs->priv;
-	int i;
 
-	for (i = 0; i < MESON_CVBS_MODES_COUNT; ++i) {
-		struct meson_cvbs_mode *meson_mode = &meson_cvbs_modes[i];
+	if (meson_mode) {
+		meson_venci_cvbs_mode_set(priv, meson_mode->enci);
 
-		if (drm_mode_equal(mode, &meson_mode->mode)) {
-			meson_venci_cvbs_mode_set(priv,
-						  meson_mode->enci);
-
-			/* Setup 27MHz vclk2 for ENCI and VDAC */
-			meson_vclk_setup(priv, MESON_VCLK_TARGET_CVBS,
-					 MESON_VCLK_CVBS, MESON_VCLK_CVBS,
-					 MESON_VCLK_CVBS, true);
-			break;
-		}
+		/* Setup 27MHz vclk2 for ENCI and VDAC */
+		meson_vclk_setup(priv, MESON_VCLK_TARGET_CVBS, MESON_VCLK_CVBS,
+				 MESON_VCLK_CVBS, MESON_VCLK_CVBS, true);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mgag200/mgag200_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mgag200/mgag200_drv.c
@@ -30,7 +30,8 @@
 static struct drm_driver driver;
 
 static const struct pci_device_id pciidlist[] = {
-	{ PCI_VENDOR_ID_MATROX, 0x522, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_SE_A },
+	{ PCI_VENDOR_ID_MATROX, 0x522, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+		G200_SE_A | MGAG200_FLAG_HW_BUG_NO_STARTADD},
 	{ PCI_VENDOR_ID_MATROX, 0x524, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_SE_B },
 	{ PCI_VENDOR_ID_MATROX, 0x530, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_EV },
 	{ PCI_VENDOR_ID_MATROX, 0x532, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_WB },
@@ -63,6 +64,35 @@
 	DRM_VRAM_MM_FILE_OPERATIONS
 };
 
+static bool mgag200_pin_bo_at_0(const struct mga_device *mdev)
+{
+	return mdev->flags & MGAG200_FLAG_HW_BUG_NO_STARTADD;
+}
+
+int mgag200_driver_dumb_create(struct drm_file *file,
+			       struct drm_device *dev,
+			       struct drm_mode_create_dumb *args)
+{
+	struct mga_device *mdev = dev->dev_private;
+	unsigned long pg_align;
+
+	if (WARN_ONCE(!dev->vram_mm, "VRAM MM not initialized"))
+		return -EINVAL;
+
+	pg_align = 0ul;
+
+	/*
+	 * Aligning scanout buffers to the size of the video ram forces
+	 * placement at offset 0. Works around a bug where HW does not
+	 * respect 'startadd' field.
+	 */
+	if (mgag200_pin_bo_at_0(mdev))
+		pg_align = PFN_UP(mdev->mc.vram_size);
+
+	return drm_gem_vram_fill_create_dumb(file, dev, &dev->vram_mm->bdev,
+					     pg_align, false, args);
+}
+
 static struct drm_driver driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET,
 	.load = mgag200_driver_load,
@@ -74,7 +104,9 @@
 	.major = DRIVER_MAJOR,
 	.minor = DRIVER_MINOR,
 	.patchlevel = DRIVER_PATCHLEVEL,
-	DRM_GEM_VRAM_DRIVER
+	.dumb_create = mgag200_driver_dumb_create,
+	.dumb_map_offset = drm_gem_vram_driver_dumb_mmap_offset,
+	.gem_prime_mmap = drm_gem_prime_mmap,
 };
 
 static struct pci_driver mgag200_pci_driver = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -159,6 +159,12 @@
 	G200_EW3,
 };
 
+/* HW does not handle 'startadd' field correct. */
+#define MGAG200_FLAG_HW_BUG_NO_STARTADD	(1ul << 8)
+
+#define MGAG200_TYPE_MASK	(0x000000ff)
+#define MGAG200_FLAG_MASK	(0x00ffff00)
+
 #define IS_G200_SE(mdev) (mdev->type == G200_SE_A || mdev->type == G200_SE_B)
 
 struct mga_device {
@@ -188,6 +194,18 @@
 	u32 unique_rev_id;
 };
 
+static inline enum mga_type
+mgag200_type_from_driver_data(kernel_ulong_t driver_data)
+{
+	return (enum mga_type)(driver_data & MGAG200_TYPE_MASK);
+}
+
+static inline unsigned long
+mgag200_flags_from_driver_data(kernel_ulong_t driver_data)
+{
+	return driver_data & MGAG200_FLAG_MASK;
+}
+
 				/* mgag200_mode.c */
 int mgag200_modeset_init(struct mga_device *mdev);
 void mgag200_modeset_fini(struct mga_device *mdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mgag200/mgag200_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -94,7 +94,8 @@
 	struct mga_device *mdev = dev->dev_private;
 	int ret, option;
 
-	mdev->type = flags;
+	mdev->flags = mgag200_flags_from_driver_data(flags);
+	mdev->type = mgag200_type_from_driver_data(flags);
 
 	/* Hardcode the number of CRTCs to 1 */
 	mdev->num_crtc = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
@@ -164,6 +164,11 @@
 	if (ret)
 		return ret;
 
+	gpu_write(gpu, REG_AXXX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	gpu_write(gpu, REG_AXXX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
+
 	/* NOTE: PM4/micro-engine firmware registers look to be the same
 	 * for a2xx and a3xx.. we could possibly push that part down to
 	 * adreno_gpu base class.  Or push both PM4 and PFP but
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
@@ -215,6 +215,16 @@
 	if (ret)
 		return ret;
 
+	/*
+	 * Use the default ringbuffer size and block size but disable the RPTR
+	 * shadow
+	 */
+	gpu_write(gpu, REG_AXXX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	/* Set the ringbuffer address */
+	gpu_write(gpu, REG_AXXX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
+
 	/* setup access protection: */
 	gpu_write(gpu, REG_A3XX_CP_PROTECT_CTRL, 0x00000007);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
@@ -265,6 +265,16 @@
 	if (ret)
 		return ret;
 
+	/*
+	 * Use the default ringbuffer size and block size but disable the RPTR
+	 * shadow
+	 */
+	gpu_write(gpu, REG_A4XX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	/* Set the ringbuffer address */
+	gpu_write(gpu, REG_A4XX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
+
 	/* Load PM4: */
 	ptr = (uint32_t *)(adreno_gpu->fw[ADRENO_FW_PM4]->data);
 	len = adreno_gpu->fw[ADRENO_FW_PM4]->size / 4;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -581,8 +581,6 @@
 	if (adreno_gpu->info->quirks & ADRENO_QUIRK_TWO_PASS_USE_WFI)
 		gpu_rmw(gpu, REG_A5XX_PC_DBG_ECO_CNTL, 0, (1 << 8));
 
-	gpu_write(gpu, REG_A5XX_PC_DBG_ECO_CNTL, 0xc0200100);
-
 	/* Enable USE_RETENTION_FLOPS */
 	gpu_write(gpu, REG_A5XX_CP_CHICKEN_DBG, 0x02000000);
 
@@ -677,14 +675,21 @@
 	if (ret)
 		return ret;
 
-	a5xx_preempt_hw_init(gpu);
-
 	a5xx_gpmu_ucode_init(gpu);
 
 	ret = a5xx_ucode_init(gpu);
 	if (ret)
 		return ret;
 
+	/* Set the ringbuffer address */
+	gpu_write64(gpu, REG_A5XX_CP_RB_BASE, REG_A5XX_CP_RB_BASE_HI,
+		gpu->rb[0]->iova);
+
+	gpu_write(gpu, REG_A5XX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	a5xx_preempt_hw_init(gpu);
+
 	/* Disable the interrupts through the initial bringup stage */
 	gpu_write(gpu, REG_A5XX_RBBM_INT_0_MASK, A5XX_INT_MASK);
 
@@ -726,11 +731,18 @@
 		gpu->funcs->flush(gpu, gpu->rb[0]);
 		if (!a5xx_idle(gpu, gpu->rb[0]))
 			return -EINVAL;
-	} else {
-		/* Print a warning so if we die, we know why */
+	} else if (ret == -ENODEV) {
+		/*
+		 * This device does not use zap shader (but print a warning
+		 * just in case someone got their dt wrong.. hopefully they
+		 * have a debug UART to realize the error of their ways...
+		 * if you mess this up you are about to crash horribly)
+		 */
 		dev_warn_once(gpu->dev->dev,
 			"Zap shader not enabled - using SECVID_TRUST_CNTL instead\n");
 		gpu_write(gpu, REG_A5XX_RBBM_SECVID_TRUST_CNTL, 0x0);
+	} else {
+		return ret;
 	}
 
 	/* Last step - yield the ringbuffer */
@@ -1352,6 +1364,10 @@
 {
 	u64 busy_cycles, busy_time;
 
+	/* Only read the gpu busy if the hardware is already active */
+	if (pm_runtime_get_if_in_use(&gpu->pdev->dev) == 0)
+		return 0;
+
 	busy_cycles = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_RBBM_0_LO,
 			REG_A5XX_RBBM_PERFCTR_RBBM_0_HI);
 
@@ -1360,6 +1376,8 @@
 
 	gpu->devfreq.busy_cycles = busy_cycles;
 
+	pm_runtime_put(&gpu->pdev->dev);
+
 	if (WARN_ON(busy_time > ~0LU))
 		return ~0LU;
 
@@ -1394,18 +1412,31 @@
 static void check_speed_bin(struct device *dev)
 {
 	struct nvmem_cell *cell;
-	u32 bin, val;
+	u32 val;
+
+	/*
+	 * If the OPP table specifies a opp-supported-hw property then we have
+	 * to set something with dev_pm_opp_set_supported_hw() or the table
+	 * doesn't get populated so pick an arbitrary value that should
+	 * ensure the default frequencies are selected but not conflict with any
+	 * actual bins
+	 */
+	val = 0x80;
 
 	cell = nvmem_cell_get(dev, "speed_bin");
 
-	/* If a nvmem cell isn't defined, nothing to do */
-	if (IS_ERR(cell))
-		return;
+	if (!IS_ERR(cell)) {
+		void *buf = nvmem_cell_read(cell, NULL);
 
-	bin = *((u32 *) nvmem_cell_read(cell, NULL));
-	nvmem_cell_put(cell);
+		if (!IS_ERR(buf)) {
+			u8 bin = *((u8 *) buf);
 
-	val = (1 << bin);
+			val = (1 << bin);
+			kfree(buf);
+		}
+
+		nvmem_cell_put(cell);
+	}
 
 	dev_pm_opp_set_supported_hw(dev, &val, 1);
 }
@@ -1438,7 +1469,8 @@
 
 	check_speed_bin(&pdev->dev);
 
-	ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 4);
+	/* Restricting nr_rings to 1 to temporarily disable preemption */
+	ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 1);
 	if (ret) {
 		a5xx_destroy(&(a5xx_gpu->base.base));
 		return ERR_PTR(ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -107,6 +107,13 @@
 	struct msm_gpu *gpu = &adreno_gpu->base;
 	int ret;
 
+	/*
+	 * This can get called from devfreq while the hardware is idle. Don't
+	 * bring up the power if it isn't already active
+	 */
+	if (pm_runtime_get_if_in_use(gmu->dev) == 0)
+		return;
+
 	gmu_write(gmu, REG_A6XX_GMU_DCVS_ACK_OPTION, 0);
 
 	gmu_write(gmu, REG_A6XX_GMU_DCVS_PERF_SETTING,
@@ -133,6 +140,7 @@
 	 * for now leave it at max so that the performance is nominal.
 	 */
 	icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216));
+	pm_runtime_put(gmu->dev);
 }
 
 void a6xx_gmu_set_freq(struct msm_gpu *gpu, unsigned long freq)
@@ -191,12 +199,22 @@
 {
 	int ret;
 	u32 val;
+	u32 mask, reset_val;
+
+	val = gmu_read(gmu, REG_A6XX_GMU_CM3_DTCM_START + 0xff8);
+	if (val <= 0x20010004) {
+		mask = 0xffffffff;
+		reset_val = 0xbabeface;
+	} else {
+		mask = 0x1ff;
+		reset_val = 0x100;
+	}
 
 	gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 1);
 	gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 0);
 
 	ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_CM3_FW_INIT_RESULT, val,
-		val == 0xbabeface, 100, 10000);
+		(val & mask) == reset_val, 100, 10000);
 
 	if (ret)
 		DRM_DEV_ERROR(gmu->dev, "GMU firmware initialization timed out\n");
@@ -705,10 +723,19 @@
 	/* Turn on the resources */
 	pm_runtime_get_sync(gmu->dev);
 
+	/*
+	 * "enable" the GX power domain which won't actually do anything but it
+	 * will make sure that the refcounting is correct in case we need to
+	 * bring down the GX after a GMU failure
+	 */
+	if (!IS_ERR_OR_NULL(gmu->gxpd))
+		pm_runtime_get_sync(gmu->gxpd);
+
 	/* Use a known rate to bring up the GMU */
 	clk_set_rate(gmu->core_clk, 200000000);
 	ret = clk_bulk_prepare_enable(gmu->nr_clocks, gmu->clocks);
 	if (ret) {
+		pm_runtime_put(gmu->gxpd);
 		pm_runtime_put(gmu->dev);
 		return ret;
 	}
@@ -744,19 +771,12 @@
 	/* Set the GPU to the highest power frequency */
 	__a6xx_gmu_set_freq(gmu, gmu->nr_gpu_freqs - 1);
 
-	/*
-	 * "enable" the GX power domain which won't actually do anything but it
-	 * will make sure that the refcounting is correct in case we need to
-	 * bring down the GX after a GMU failure
-	 */
-	if (!IS_ERR_OR_NULL(gmu->gxpd))
-		pm_runtime_get(gmu->gxpd);
-
 out:
 	/* On failure, shut down the GMU to leave it in a good state */
 	if (ret) {
 		disable_irq(gmu->gmu_irq);
 		a6xx_rpmh_stop(gmu);
+		pm_runtime_put(gmu->gxpd);
 		pm_runtime_put(gmu->dev);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -512,6 +512,13 @@
 	if (ret)
 		goto out;
 
+	/* Set the ringbuffer address */
+	gpu_write64(gpu, REG_A6XX_CP_RB_BASE, REG_A6XX_CP_RB_BASE_HI,
+		gpu->rb[0]->iova);
+
+	gpu_write(gpu, REG_A6XX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
 	/* Always come up on rb 0 */
 	a6xx_gpu->cur_ring = gpu->rb[0];
 
@@ -537,12 +544,19 @@
 		a6xx_flush(gpu, gpu->rb[0]);
 		if (!a6xx_idle(gpu, gpu->rb[0]))
 			return -EINVAL;
-	} else {
-		/* Print a warning so if we die, we know why */
+	} else if (ret == -ENODEV) {
+		/*
+		 * This device does not use zap shader (but print a warning
+		 * just in case someone got their dt wrong.. hopefully they
+		 * have a debug UART to realize the error of their ways...
+		 * if you mess this up you are about to crash horribly)
+		 */
 		dev_warn_once(gpu->dev->dev,
 			"Zap shader not enabled - using SECVID_TRUST_CNTL instead\n");
 		gpu_write(gpu, REG_A6XX_RBBM_SECVID_TRUST_CNTL, 0x0);
 		ret = 0;
+	} else {
+		return ret;
 	}
 
 out:
@@ -796,6 +810,11 @@
 	struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
 	u64 busy_cycles, busy_time;
 
+
+	/* Only read the gpu busy if the hardware is already active */
+	if (pm_runtime_get_if_in_use(a6xx_gpu->gmu.dev) == 0)
+		return 0;
+
 	busy_cycles = gmu_read64(&a6xx_gpu->gmu,
 			REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_L,
 			REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_H);
@@ -805,6 +824,8 @@
 
 	gpu->devfreq.busy_cycles = busy_cycles;
 
+	pm_runtime_put(a6xx_gpu->gmu.dev);
+
 	if (WARN_ON(busy_time > ~0LU))
 		return ~0LU;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -352,26 +352,26 @@
 		cxdbg = ioremap(res->start, resource_size(res));
 
 	if (cxdbg) {
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_CNTLT,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLT,
 			A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(0xf));
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_CNTLM,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLM,
 			A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(0xf));
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_0, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_1, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_2, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_3, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_0, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_1, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_2, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_3, 0);
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_0,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0,
 			0x76543210);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_1,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1,
 			0xFEDCBA98);
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_0, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_1, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_2, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_3, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_0, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_1, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_2, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_3, 0);
 	}
 
 	a6xx_state->debugbus = state_kcalloc(a6xx_state,
@@ -834,7 +834,7 @@
 	int i;
 
 	a6xx_state->indexed_regs = state_kcalloc(a6xx_state, count,
-		sizeof(a6xx_state->indexed_regs));
+		sizeof(*a6xx_state->indexed_regs));
 	if (!a6xx_state->indexed_regs)
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -350,30 +350,10 @@
 		ring->next = ring->start;
 
 		/* reset completed fence seqno: */
-		ring->memptrs->fence = ring->seqno;
+		ring->memptrs->fence = ring->fctx->completed_fence;
 		ring->memptrs->rptr = 0;
 	}
 
-	/*
-	 * Setup REG_CP_RB_CNTL.  The same value is used across targets (with
-	 * the excpetion of A430 that disables the RPTR shadow) - the cacluation
-	 * for the ringbuffer size and block size is moved to msm_gpu.h for the
-	 * pre-processor to deal with and the A430 variant is ORed in here
-	 */
-	adreno_gpu_write(adreno_gpu, REG_ADRENO_CP_RB_CNTL,
-		MSM_GPU_RB_CNTL_DEFAULT |
-		(adreno_is_a430(adreno_gpu) ? AXXX_CP_RB_CNTL_NO_UPDATE : 0));
-
-	/* Setup ringbuffer address - use ringbuffer[0] for GPU init */
-	adreno_gpu_write64(adreno_gpu, REG_ADRENO_CP_RB_BASE,
-		REG_ADRENO_CP_RB_BASE_HI, gpu->rb[0]->iova);
-
-	if (!adreno_is_a430(adreno_gpu)) {
-		adreno_gpu_write64(adreno_gpu, REG_ADRENO_CP_RB_RPTR_ADDR,
-			REG_ADRENO_CP_RB_RPTR_ADDR_HI,
-			rbmemptr(gpu->rb[0], rptr));
-	}
-
 	return 0;
 }
 
@@ -381,11 +361,8 @@
 static uint32_t get_rptr(struct adreno_gpu *adreno_gpu,
 		struct msm_ringbuffer *ring)
 {
-	if (adreno_is_a430(adreno_gpu))
-		return ring->memptrs->rptr = adreno_gpu_read(
-			adreno_gpu, REG_ADRENO_CP_RB_RPTR);
-	else
-		return ring->memptrs->rptr;
+	return ring->memptrs->rptr = adreno_gpu_read(
+		adreno_gpu, REG_ADRENO_CP_RB_RPTR);
 }
 
 struct msm_ringbuffer *adreno_active_ring(struct msm_gpu *gpu)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -381,7 +381,7 @@
 	spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags);
 
 	if (!fevent) {
-		DRM_ERROR("crtc%d event %d overflow\n", crtc->base.id, event);
+		DRM_ERROR_RATELIMITED("crtc%d event %d overflow\n", crtc->base.id, event);
 		return;
 	}
 
@@ -819,7 +819,7 @@
 	struct drm_plane *plane;
 	struct drm_display_mode *mode;
 
-	int cnt = 0, rc = 0, mixer_width, i, z_pos;
+	int cnt = 0, rc = 0, mixer_width = 0, i, z_pos;
 
 	struct dpu_multirect_plane_states multirect_plane[DPU_STAGE_MAX * 2];
 	int multirect_count = 0;
@@ -852,9 +852,11 @@
 
 	memset(pipe_staged, 0, sizeof(pipe_staged));
 
-	mixer_width = mode->hdisplay / cstate->num_mixers;
+	if (cstate->num_mixers) {
+		mixer_width = mode->hdisplay / cstate->num_mixers;
 
-	_dpu_crtc_setup_lm_bounds(crtc, state);
+		_dpu_crtc_setup_lm_bounds(crtc, state);
+	}
 
 	crtc_rect.x2 = mode->hdisplay;
 	crtc_rect.y2 = mode->vdisplay;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -2185,7 +2185,6 @@
 
 	dpu_enc = to_dpu_encoder_virt(enc);
 
-	mutex_init(&dpu_enc->enc_lock);
 	ret = dpu_encoder_setup_display(dpu_enc, dpu_kms, disp_info);
 	if (ret)
 		goto fail;
@@ -2200,7 +2199,6 @@
 				0);
 
 
-	mutex_init(&dpu_enc->rc_lock);
 	INIT_DELAYED_WORK(&dpu_enc->delayed_off_work,
 			dpu_encoder_off_work);
 	dpu_enc->idle_timeout = IDLE_TIMEOUT;
@@ -2232,7 +2230,7 @@
 
 	dpu_enc = devm_kzalloc(dev->dev, sizeof(*dpu_enc), GFP_KERNEL);
 	if (!dpu_enc)
-		return ERR_PTR(ENOMEM);
+		return ERR_PTR(-ENOMEM);
 
 	rc = drm_encoder_init(dev, &dpu_enc->base, &dpu_encoder_funcs,
 			drm_enc_mode, NULL);
@@ -2245,6 +2243,8 @@
 
 	spin_lock_init(&dpu_enc->enc_spinlock);
 	dpu_enc->enabled = false;
+	mutex_init(&dpu_enc->enc_lock);
+	mutex_init(&dpu_enc->rc_lock);
 
 	return &dpu_enc->base;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -255,13 +255,13 @@
 
 	INTERLEAVED_RGB_FMT(RGB565,
 		0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
-		C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
+		C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3,
 		false, 2, 0,
 		DPU_FETCH_LINEAR, 1),
 
 	INTERLEAVED_RGB_FMT(BGR565,
 		0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
-		C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3,
+		C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
 		false, 2, 0,
 		DPU_FETCH_LINEAR, 1),
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -853,9 +853,9 @@
 		crtc_state = drm_atomic_get_new_crtc_state(state->state,
 							   state->crtc);
 
-	min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxdwnscale);
+	min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxupscale);
 	ret = drm_atomic_helper_check_plane_state(state, crtc_state, min_scale,
-					  pdpu->pipe_sblk->maxupscale << 16,
+					  pdpu->pipe_sblk->maxdwnscale << 16,
 					  true, true);
 	if (ret) {
 		DPU_ERROR_PLANE(pdpu, "Check plane state failed (%d)\n", ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c
@@ -121,7 +121,7 @@
 	if (mdp4_dsi_encoder->enabled)
 		return;
 
-	 mdp4_crtc_set_config(encoder->crtc,
+	mdp4_crtc_set_config(encoder->crtc,
 			MDP4_DMA_CONFIG_PACK_ALIGN_MSB |
 			MDP4_DMA_CONFIG_DEFLKR_EN |
 			MDP4_DMA_CONFIG_DITHER_EN |
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
@@ -1099,7 +1099,7 @@
 	struct mdp5_crtc *mdp5_crtc = container_of(irq, struct mdp5_crtc,
 								pp_done);
 
-	complete(&mdp5_crtc->pp_completion);
+	complete_all(&mdp5_crtc->pp_completion);
 }
 
 static void mdp5_crtc_wait_for_pp_done(struct drm_crtc *crtc)
@@ -1112,8 +1112,8 @@
 	ret = wait_for_completion_timeout(&mdp5_crtc->pp_completion,
 						msecs_to_jiffies(50));
 	if (ret == 0)
-		dev_warn(dev->dev, "pp done time out, lm=%d\n",
-			 mdp5_cstate->pipeline.mixer->lm);
+		dev_warn_ratelimited(dev->dev, "pp done time out, lm=%d\n",
+				     mdp5_cstate->pipeline.mixer->lm);
 }
 
 static void mdp5_crtc_wait_for_flush_done(struct drm_crtc *crtc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
@@ -1037,7 +1037,8 @@
 
 	return 0;
 fail:
-	mdp5_destroy(pdev);
+	if (mdp5_kms)
+		mdp5_destroy(pdev);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -336,7 +336,7 @@
 	return num;
 }
 
-static int dsi_mgr_connector_mode_valid(struct drm_connector *connector,
+static enum drm_mode_status dsi_mgr_connector_mode_valid(struct drm_connector *connector,
 				struct drm_display_mode *mode)
 {
 	int id = dsi_mgr_connector_get_id(connector);
@@ -479,6 +479,7 @@
 	struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1);
 	struct mipi_dsi_host *host = msm_dsi->host;
 	struct drm_panel *panel = msm_dsi->panel;
+	struct msm_dsi_pll *src_pll;
 	bool is_dual_dsi = IS_DUAL_DSI();
 	int ret;
 
@@ -519,6 +520,10 @@
 								id, ret);
 	}
 
+	/* Save PLL status if it is a clock source */
+	src_pll = msm_dsi_phy_get_pll(msm_dsi->phy);
+	msm_dsi_pll_save_state(src_pll);
+
 	ret = msm_dsi_host_power_off(host);
 	if (ret)
 		pr_err("%s: host %d power off failed,%d\n", __func__, id, ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
@@ -724,10 +724,6 @@
 	if (!phy || !phy->cfg->ops.disable)
 		return;
 
-	/* Save PLL status if it is a clock source */
-	if (phy->usecase != MSM_DSI_PHY_SLAVE)
-		msm_dsi_pll_save_state(phy->pll);
-
 	phy->cfg->ops.disable(phy);
 
 	dsi_phy_regulator_disable(phy);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c
@@ -139,7 +139,7 @@
 		.disable = dsi_20nm_phy_disable,
 		.init = msm_dsi_phy_init_common,
 	},
-	.io_start = { 0xfd998300, 0xfd9a0300 },
+	.io_start = { 0xfd998500, 0xfd9a0500 },
 	.num_dsi_phy = 2,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
@@ -411,6 +411,12 @@
 	if (pll_10nm->slave)
 		dsi_pll_enable_pll_bias(pll_10nm->slave);
 
+	rc = dsi_pll_10nm_vco_set_rate(hw,pll_10nm->vco_current_rate, 0);
+	if (rc) {
+		pr_err("vco_set_rate failed, rc=%d\n", rc);
+		return rc;
+	}
+
 	/* Start PLL */
 	pll_write(pll_10nm->phy_cmn_mmio + REG_DSI_10nm_PHY_CMN_PLL_CNTRL,
 		  0x01);
@@ -553,6 +559,7 @@
 	struct pll_10nm_cached_state *cached = &pll_10nm->cached_state;
 	void __iomem *phy_base = pll_10nm->phy_cmn_mmio;
 	u32 val;
+	int ret;
 
 	val = pll_read(pll_10nm->mmio + REG_DSI_10nm_PHY_PLL_PLL_OUTDIV_RATE);
 	val &= ~0x3;
@@ -567,6 +574,13 @@
 	val |= cached->pll_mux;
 	pll_write(phy_base + REG_DSI_10nm_PHY_CMN_CLK_CFG1, val);
 
+	ret = dsi_pll_10nm_vco_set_rate(&pll->clk_hw, pll_10nm->vco_current_rate, pll_10nm->vco_ref_clk_rate);
+	if (ret) {
+		DRM_DEV_ERROR(&pll_10nm->pdev->dev,
+			"restore vco rate failed. ret=%d\n", ret);
+		return ret;
+	}
+
 	DBG("DSI PLL%d", pll_10nm->id);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_atomic.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_atomic.c
@@ -27,6 +27,34 @@
 	return msm_framebuffer_prepare(new_state->fb, kms->aspace);
 }
 
+/*
+ * Helpers to control vblanks while we flush.. basically just to ensure
+ * that vblank accounting is switched on, so we get valid seqn/timestamp
+ * on pageflip events (if requested)
+ */
+
+static void vblank_get(struct msm_kms *kms, unsigned crtc_mask)
+{
+	struct drm_crtc *crtc;
+
+	for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
+		if (!crtc->state->active)
+			continue;
+		drm_crtc_vblank_get(crtc);
+	}
+}
+
+static void vblank_put(struct msm_kms *kms, unsigned crtc_mask)
+{
+	struct drm_crtc *crtc;
+
+	for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
+		if (!crtc->state->active)
+			continue;
+		drm_crtc_vblank_put(crtc);
+	}
+}
+
 static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx)
 {
 	unsigned crtc_mask = BIT(crtc_idx);
@@ -44,6 +72,8 @@
 
 	kms->funcs->enable_commit(kms);
 
+	vblank_get(kms, crtc_mask);
+
 	/*
 	 * Flush hardware updates:
 	 */
@@ -58,6 +88,8 @@
 	kms->funcs->wait_flush(kms, crtc_mask);
 	trace_msm_atomic_wait_flush_finish(crtc_mask);
 
+	vblank_put(kms, crtc_mask);
+
 	mutex_lock(&kms->commit_lock);
 	kms->funcs->complete_commit(kms, crtc_mask);
 	mutex_unlock(&kms->commit_lock);
@@ -221,6 +253,8 @@
 	 */
 	kms->pending_crtc_mask &= ~crtc_mask;
 
+	vblank_get(kms, crtc_mask);
+
 	/*
 	 * Flush hardware updates:
 	 */
@@ -235,6 +269,8 @@
 	kms->funcs->wait_flush(kms, crtc_mask);
 	trace_msm_atomic_wait_flush_finish(crtc_mask);
 
+	vblank_put(kms, crtc_mask);
+
 	mutex_lock(&kms->commit_lock);
 	kms->funcs->complete_commit(kms, crtc_mask);
 	mutex_unlock(&kms->commit_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_debugfs.c
@@ -47,12 +47,8 @@
 	struct msm_gpu_show_priv *show_priv = m->private;
 	struct msm_drm_private *priv = show_priv->dev->dev_private;
 	struct msm_gpu *gpu = priv->gpu;
-	int ret;
-
-	ret = mutex_lock_interruptible(&show_priv->dev->struct_mutex);
-	if (ret)
-		return ret;
 
+	mutex_lock(&show_priv->dev->struct_mutex);
 	gpu->funcs->gpu_state_put(show_priv->state);
 	mutex_unlock(&show_priv->dev->struct_mutex);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_drv.c
@@ -432,14 +432,24 @@
 
 	drm_mode_config_init(ddev);
 
+	ret = msm_init_vram(ddev);
+	if (ret)
+		goto err_destroy_mdss;
+
 	/* Bind all our sub-components: */
 	ret = component_bind_all(dev, ddev);
 	if (ret)
 		goto err_destroy_mdss;
 
-	ret = msm_init_vram(ddev);
-	if (ret)
-		goto err_msm_uninit;
+	if (!dev->dma_parms) {
+		dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms),
+					      GFP_KERNEL);
+		if (!dev->dma_parms) {
+			ret = -ENOMEM;
+			goto err_msm_uninit;
+		}
+	}
+	dma_set_max_seg_size(dev, DMA_BIT_MASK(32));
 
 	msm_gem_shrinker_init(ddev);
 
@@ -1313,6 +1323,13 @@
 	return 0;
 }
 
+static void msm_pdev_shutdown(struct platform_device *pdev)
+{
+	struct drm_device *drm = platform_get_drvdata(pdev);
+
+	drm_atomic_helper_shutdown(drm);
+}
+
 static const struct of_device_id dt_match[] = {
 	{ .compatible = "qcom,mdp4", .data = (void *)KMS_MDP4 },
 	{ .compatible = "qcom,mdss", .data = (void *)KMS_MDP5 },
@@ -1324,6 +1341,7 @@
 static struct platform_driver msm_platform_driver = {
 	.probe      = msm_pdev_probe,
 	.remove     = msm_pdev_remove,
+	.shutdown   = msm_pdev_shutdown,
 	.driver     = {
 		.name   = "msm",
 		.of_match_table = dt_match,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_gem.c
@@ -977,10 +977,8 @@
 
 static int msm_gem_new_impl(struct drm_device *dev,
 		uint32_t size, uint32_t flags,
-		struct drm_gem_object **obj,
-		bool struct_mutex_locked)
+		struct drm_gem_object **obj)
 {
-	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_gem_object *msm_obj;
 
 	switch (flags & MSM_BO_CACHE_MASK) {
@@ -1006,15 +1004,6 @@
 	INIT_LIST_HEAD(&msm_obj->submit_entry);
 	INIT_LIST_HEAD(&msm_obj->vmas);
 
-	if (struct_mutex_locked) {
-		WARN_ON(!mutex_is_locked(&dev->struct_mutex));
-		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
-	} else {
-		mutex_lock(&dev->struct_mutex);
-		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
-		mutex_unlock(&dev->struct_mutex);
-	}
-
 	*obj = &msm_obj->base;
 
 	return 0;
@@ -1024,6 +1013,7 @@
 		uint32_t size, uint32_t flags, bool struct_mutex_locked)
 {
 	struct msm_drm_private *priv = dev->dev_private;
+	struct msm_gem_object *msm_obj;
 	struct drm_gem_object *obj = NULL;
 	bool use_vram = false;
 	int ret;
@@ -1044,14 +1034,15 @@
 	if (size == 0)
 		return ERR_PTR(-EINVAL);
 
-	ret = msm_gem_new_impl(dev, size, flags, &obj, struct_mutex_locked);
+	ret = msm_gem_new_impl(dev, size, flags, &obj);
 	if (ret)
 		goto fail;
 
+	msm_obj = to_msm_bo(obj);
+
 	if (use_vram) {
 		struct msm_gem_vma *vma;
 		struct page **pages;
-		struct msm_gem_object *msm_obj = to_msm_bo(obj);
 
 		mutex_lock(&msm_obj->lock);
 
@@ -1086,6 +1077,15 @@
 		mapping_set_gfp_mask(obj->filp->f_mapping, GFP_HIGHUSER);
 	}
 
+	if (struct_mutex_locked) {
+		WARN_ON(!mutex_is_locked(&dev->struct_mutex));
+		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
+	} else {
+		mutex_lock(&dev->struct_mutex);
+		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
+		mutex_unlock(&dev->struct_mutex);
+	}
+
 	return obj;
 
 fail:
@@ -1108,6 +1108,7 @@
 struct drm_gem_object *msm_gem_import(struct drm_device *dev,
 		struct dma_buf *dmabuf, struct sg_table *sgt)
 {
+	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_gem_object *msm_obj;
 	struct drm_gem_object *obj;
 	uint32_t size;
@@ -1121,7 +1122,7 @@
 
 	size = PAGE_ALIGN(dmabuf->size);
 
-	ret = msm_gem_new_impl(dev, size, MSM_BO_WC, &obj, false);
+	ret = msm_gem_new_impl(dev, size, MSM_BO_WC, &obj);
 	if (ret)
 		goto fail;
 
@@ -1146,6 +1147,11 @@
 	}
 
 	mutex_unlock(&msm_obj->lock);
+
+	mutex_lock(&dev->struct_mutex);
+	list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
+	mutex_unlock(&dev->struct_mutex);
+
 	return obj;
 
 fail:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_gpu.c
@@ -16,6 +16,7 @@
 #include <linux/pm_opp.h>
 #include <linux/devfreq.h>
 #include <linux/devcoredump.h>
+#include <linux/sched/task.h>
 
 /*
  * Power Management:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_ringbuffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_ringbuffer.c
@@ -27,7 +27,8 @@
 	ring->id = id;
 
 	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
-		MSM_BO_WC, gpu->aspace, &ring->bo, &ring->iova);
+		MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->aspace, &ring->bo,
+		&ring->iova);
 
 	if (IS_ERR(ring->start)) {
 		ret = PTR_ERR(ring->start);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/msm/msm_submitqueue.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/msm/msm_submitqueue.c
@@ -71,8 +71,10 @@
 	queue->flags = flags;
 
 	if (priv->gpu) {
-		if (prio >= priv->gpu->nr_rings)
+		if (prio >= priv->gpu->nr_rings) {
+			kfree(queue);
 			return -EINVAL;
+		}
 
 		queue->prio = prio;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -26,6 +26,7 @@
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_fb_helper.h>
+#include <drm/drm_fourcc.h>
 #include <drm/drm_gem_cma_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_irq.h>
@@ -87,8 +88,26 @@
 		clk_disable_unprepare(mxsfb->clk_axi);
 }
 
+static struct drm_framebuffer *
+mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+		const struct drm_mode_fb_cmd2 *mode_cmd)
+{
+	const struct drm_format_info *info;
+
+	info = drm_get_format_info(dev, mode_cmd);
+	if (!info)
+		return ERR_PTR(-EINVAL);
+
+	if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
+		dev_dbg(dev->dev, "Invalid pitch: fb width must match pitch\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	return drm_gem_fb_create(dev, file_priv, mode_cmd);
+}
+
 static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
-	.fb_create		= drm_gem_fb_create,
+	.fb_create		= mxsfb_fb_create,
 	.atomic_check		= drm_atomic_helper_check,
 	.atomic_commit		= drm_atomic_helper_commit,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/atom.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/dispnv50/atom.h
@@ -114,6 +114,7 @@
 		u8 nhsync:1;
 		u8 nvsync:1;
 		u8 depth:4;
+		u8 bpc;
 	} or;
 
 	/* Currently only used for MST */
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -132,7 +132,7 @@
 
 int
 nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
-		 const s32 *oclass, u8 head, void *data, u32 size, u64 syncbuf,
+		 const s32 *oclass, u8 head, void *data, u32 size, s64 syncbuf,
 		 struct nv50_dmac *dmac)
 {
 	struct nouveau_cli *cli = (void *)device->object.client;
@@ -167,7 +167,7 @@
 	if (ret)
 		return ret;
 
-	if (!syncbuf)
+	if (syncbuf < 0)
 		return 0;
 
 	ret = nvif_object_init(&dmac->base.user, 0xf0000000, NV_DMA_IN_MEMORY,
@@ -326,9 +326,9 @@
 			 * same size as the native one (e.g. different
 			 * refresh rate)
 			 */
-			if (adjusted_mode->hdisplay == native_mode->hdisplay &&
-			    adjusted_mode->vdisplay == native_mode->vdisplay &&
-			    adjusted_mode->type & DRM_MODE_TYPE_DRIVER)
+			if (mode->hdisplay == native_mode->hdisplay &&
+			    mode->vdisplay == native_mode->vdisplay &&
+			    mode->type & DRM_MODE_TYPE_DRIVER)
 				break;
 			mode = native_mode;
 			asyc->scaler.full = true;
@@ -353,10 +353,20 @@
 		       struct drm_crtc_state *crtc_state,
 		       struct drm_connector_state *conn_state)
 {
-	struct nouveau_connector *nv_connector =
-		nouveau_connector(conn_state->connector);
-	return nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
-					   nv_connector->native_mode);
+	struct drm_connector *connector = conn_state->connector;
+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
+	struct nv50_head_atom *asyh = nv50_head_atom(crtc_state);
+	int ret;
+
+	ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
+					  nv_connector->native_mode);
+	if (ret)
+		return ret;
+
+	if (crtc_state->mode_changed || crtc_state->connectors_changed)
+		asyh->or.bpc = connector->display_info.bpc;
+
+	return 0;
 }
 
 /******************************************************************************
@@ -770,32 +780,54 @@
 	struct nv50_mstm *mstm = mstc->mstm;
 	struct nv50_head_atom *asyh = nv50_head_atom(crtc_state);
 	int slots;
+	int ret;
+
+	ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
+					  mstc->native);
+	if (ret)
+		return ret;
+
+	if (!crtc_state->mode_changed && !crtc_state->connectors_changed)
+		return 0;
+
+	/*
+	 * When restoring duplicated states, we need to make sure that the bw
+	 * remains the same and avoid recalculating it, as the connector's bpc
+	 * may have changed after the state was duplicated
+	 */
+	if (!state->duplicated) {
+		const int clock = crtc_state->adjusted_mode.clock;
 
-	if (crtc_state->mode_changed || crtc_state->connectors_changed) {
 		/*
-		 * When restoring duplicated states, we need to make sure that
-		 * the bw remains the same and avoid recalculating it, as the
-		 * connector's bpc may have changed after the state was
-		 * duplicated
+		 * XXX: Since we don't use HDR in userspace quite yet, limit
+		 * the bpc to 8 to save bandwidth on the topology. In the
+		 * future, we'll want to properly fix this by dynamically
+		 * selecting the highest possible bpc that would fit in the
+		 * topology
 		 */
-		if (!state->duplicated) {
-			const int bpp = connector->display_info.bpc * 3;
-			const int clock = crtc_state->adjusted_mode.clock;
+		asyh->or.bpc = min(connector->display_info.bpc, 8U);
+		asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, asyh->or.bpc * 3);
+	}
 
-			asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, bpp);
-		}
+	slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port,
+					      asyh->dp.pbn);
+	if (slots < 0)
+		return slots;
 
-		slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr,
-						      mstc->port,
-						      asyh->dp.pbn);
-		if (slots < 0)
-			return slots;
+	asyh->dp.tu = slots;
 
-		asyh->dp.tu = slots;
-	}
+	return 0;
+}
 
-	return nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
-					   mstc->native);
+static u8
+nv50_dp_bpc_to_depth(unsigned int bpc)
+{
+	switch (bpc) {
+	case  6: return 0x2;
+	case  8: return 0x5;
+	case 10: /* fall-through */
+	default: return 0x6;
+	}
 }
 
 static void
@@ -808,7 +840,7 @@
 	struct nv50_mstm *mstm = NULL;
 	struct drm_connector *connector;
 	struct drm_connector_list_iter conn_iter;
-	u8 proto, depth;
+	u8 proto;
 	bool r;
 
 	drm_connector_list_iter_begin(encoder->dev, &conn_iter);
@@ -837,14 +869,8 @@
 	else
 		proto = 0x9;
 
-	switch (mstc->connector.display_info.bpc) {
-	case  6: depth = 0x2; break;
-	case  8: depth = 0x5; break;
-	case 10:
-	default: depth = 0x6; break;
-	}
-
-	mstm->outp->update(mstm->outp, head->base.index, armh, proto, depth);
+	mstm->outp->update(mstm->outp, head->base.index, armh, proto,
+			   nv50_dp_bpc_to_depth(armh->or.bpc));
 
 	msto->head = head;
 	msto->mstc = mstc;
@@ -1006,8 +1032,10 @@
 		return connector_status_disconnected;
 
 	ret = pm_runtime_get_sync(connector->dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(connector->dev->dev);
 		return connector_status_disconnected;
+	}
 
 	conn_status = drm_dp_mst_detect_port(connector, mstc->port->mgr,
 					     mstc->port);
@@ -1498,20 +1526,14 @@
 					lvds.lvds.script |= 0x0200;
 			}
 
-			if (nv_connector->base.display_info.bpc == 8)
+			if (asyh->or.bpc == 8)
 				lvds.lvds.script |= 0x0200;
 		}
 
 		nvif_mthd(&disp->disp->object, 0, &lvds, sizeof(lvds));
 		break;
 	case DCB_OUTPUT_DP:
-		if (nv_connector->base.display_info.bpc == 6)
-			depth = 0x2;
-		else
-		if (nv_connector->base.display_info.bpc == 8)
-			depth = 0x5;
-		else
-			depth = 0x6;
+		depth = nv50_dp_bpc_to_depth(asyh->or.bpc);
 
 		if (nv_encoder->link & 1)
 			proto = 0x8;
@@ -1662,7 +1684,7 @@
 	nv50_outp_acquire(nv_encoder);
 
 	nv_connector = nouveau_encoder_connector_get(nv_encoder);
-	switch (nv_connector->base.display_info.bpc) {
+	switch (asyh->or.bpc) {
 	case 10: asyh->or.depth = 0x6; break;
 	case  8: asyh->or.depth = 0x5; break;
 	case  6: asyh->or.depth = 0x2; break;
@@ -2012,8 +2034,10 @@
 	int ret, i;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_atomic_helper_setup_commit(state, nonblock);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/disp.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/dispnv50/disp.h
@@ -70,7 +70,7 @@
 
 int nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
 		     const s32 *oclass, u8 head, void *data, u32 size,
-		     u64 syncbuf, struct nv50_dmac *dmac);
+		     s64 syncbuf, struct nv50_dmac *dmac);
 void nv50_dmac_destroy(struct nv50_dmac *);
 
 u32 *evo_wait(struct nv50_dmac *, int nr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/head.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/dispnv50/head.c
@@ -81,21 +81,22 @@
 			      struct nv50_head_atom *asyh,
 			      struct nouveau_conn_atom *asyc)
 {
-	struct drm_connector *connector = asyc->state.connector;
 	u32 mode = 0x00;
 
-	if (asyc->dither.mode == DITHERING_MODE_AUTO) {
-		if (asyh->base.depth > connector->display_info.bpc * 3)
-			mode = DITHERING_MODE_DYNAMIC2X2;
-	} else {
-		mode = asyc->dither.mode;
-	}
+	if (asyc->dither.mode) {
+		if (asyc->dither.mode == DITHERING_MODE_AUTO) {
+			if (asyh->base.depth > asyh->or.bpc * 3)
+				mode = DITHERING_MODE_DYNAMIC2X2;
+		} else {
+			mode = asyc->dither.mode;
+		}
 
-	if (asyc->dither.depth == DITHERING_DEPTH_AUTO) {
-		if (connector->display_info.bpc >= 8)
-			mode |= DITHERING_DEPTH_8BPC;
-	} else {
-		mode |= asyc->dither.depth;
+		if (asyc->dither.depth == DITHERING_DEPTH_AUTO) {
+			if (asyh->or.bpc >= 8)
+				mode |= DITHERING_DEPTH_8BPC;
+		} else {
+			mode |= asyc->dither.depth;
+		}
 	}
 
 	asyh->dither.enable = mode;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c
@@ -68,7 +68,7 @@
 	int ret;
 
 	ret = nv50_dmac_create(&drm->client.device, &disp->disp->object,
-			       &oclass, 0, &args, sizeof(args), 0,
+			       &oclass, 0, &args, sizeof(args), -1,
 			       &wndw->wimm);
 	if (ret) {
 		NV_ERROR(drm, "wimm%04x allocation failed: %d\n", oclass, ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/wndw.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/dispnv50/wndw.c
@@ -451,6 +451,8 @@
 		asyw->clr.ntfy = armw->ntfy.handle != 0;
 		asyw->clr.sema = armw->sema.handle != 0;
 		asyw->clr.xlut = armw->xlut.handle != 0;
+		if (asyw->clr.xlut && asyw->visible)
+			asyw->set.xlut = asyw->xlut.handle != 0;
 		asyw->clr.csc  = armw->csc.valid;
 		if (wndw->func->image_clr)
 			asyw->clr.image = armw->image.handle[0] != 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
@@ -14,6 +14,7 @@
 	DCB_CONNECTOR_LVDS_SPWG = 0x41,
 	DCB_CONNECTOR_DP = 0x46,
 	DCB_CONNECTOR_eDP = 0x47,
+	DCB_CONNECTOR_mDP = 0x48,
 	DCB_CONNECTOR_HDMI_0 = 0x60,
 	DCB_CONNECTOR_HDMI_1 = 0x61,
 	DCB_CONNECTOR_HDMI_C = 0x63,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -497,6 +497,7 @@
 	if (ret) {
 		NV_PRINTK(err, cli, "channel failed to initialise, %d\n", ret);
 		nouveau_channel_del(pchan);
+		goto done;
 	}
 
 	ret = nouveau_svmm_join((*pchan)->vmm->svmm, (*pchan)->inst);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -245,14 +245,22 @@
 void
 nouveau_conn_reset(struct drm_connector *connector)
 {
+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_conn_atom *asyc;
 
-	if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
-		return;
+	if (drm_drv_uses_atomic_modeset(connector->dev)) {
+		if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
+			return;
+
+		if (connector->state)
+			nouveau_conn_atomic_destroy_state(connector,
+							  connector->state);
+
+		__drm_atomic_helper_connector_reset(connector, &asyc->state);
+	} else {
+		asyc = &nv_connector->properties_state;
+	}
 
-	if (connector->state)
-		nouveau_conn_atomic_destroy_state(connector, connector->state);
-	__drm_atomic_helper_connector_reset(connector, &asyc->state);
 	asyc->dither.mode = DITHERING_MODE_AUTO;
 	asyc->dither.depth = DITHERING_DEPTH_AUTO;
 	asyc->scaler.mode = DRM_MODE_SCALE_NONE;
@@ -276,8 +284,14 @@
 nouveau_conn_attach_properties(struct drm_connector *connector)
 {
 	struct drm_device *dev = connector->dev;
-	struct nouveau_conn_atom *armc = nouveau_conn_atom(connector->state);
 	struct nouveau_display *disp = nouveau_display(dev);
+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
+	struct nouveau_conn_atom *armc;
+
+	if (drm_drv_uses_atomic_modeset(connector->dev))
+		armc = nouveau_conn_atom(connector->state);
+	else
+		armc = &nv_connector->properties_state;
 
 	/* Init DVI-I specific properties. */
 	if (connector->connector_type == DRM_MODE_CONNECTOR_DVII)
@@ -554,8 +568,10 @@
 		pm_runtime_get_noresume(dev->dev);
 	} else {
 		ret = pm_runtime_get_sync(dev->dev);
-		if (ret < 0 && ret != -EACCES)
+		if (ret < 0 && ret != -EACCES) {
+			pm_runtime_put_autosuspend(dev->dev);
 			return conn_status;
+		}
 	}
 
 	nv_encoder = nouveau_connector_ddc_detect(connector);
@@ -749,9 +765,9 @@
 nouveau_connector_set_property(struct drm_connector *connector,
 			       struct drm_property *property, uint64_t value)
 {
-	struct nouveau_conn_atom *asyc = nouveau_conn_atom(connector->state);
 	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder;
+	struct nouveau_conn_atom *asyc = &nv_connector->properties_state;
 	struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
 	int ret;
 
@@ -1131,6 +1147,16 @@
 	const char *name = connector->name;
 	struct nouveau_encoder *nv_encoder;
 	int ret;
+	bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG);
+
+	if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) {
+		NV_DEBUG(drm, "service %s\n", name);
+		drm_dp_cec_irq(&nv_connector->aux);
+		if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP)))
+			nv50_mstm_service(nv_encoder->dp.mstm);
+
+		return NVIF_NOTIFY_KEEP;
+	}
 
 	ret = pm_runtime_get(drm->dev->dev);
 	if (ret == 0) {
@@ -1151,25 +1177,16 @@
 		return NVIF_NOTIFY_DROP;
 	}
 
-	if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) {
-		NV_DEBUG(drm, "service %s\n", name);
-		drm_dp_cec_irq(&nv_connector->aux);
-		if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP)))
-			nv50_mstm_service(nv_encoder->dp.mstm);
-	} else {
-		bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG);
-
+	if (!plugged)
+		drm_dp_cec_unset_edid(&nv_connector->aux);
+	NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
+	if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) {
 		if (!plugged)
-			drm_dp_cec_unset_edid(&nv_connector->aux);
-		NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
-		if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) {
-			if (!plugged)
-				nv50_mstm_remove(nv_encoder->dp.mstm);
-		}
-
-		drm_helper_hpd_irq_event(connector->dev);
+			nv50_mstm_remove(nv_encoder->dp.mstm);
 	}
 
+	drm_helper_hpd_irq_event(connector->dev);
+
 	pm_runtime_mark_last_busy(drm->dev->dev);
 	pm_runtime_put_autosuspend(drm->dev->dev);
 	return NVIF_NOTIFY_KEEP;
@@ -1223,6 +1240,7 @@
 	case DCB_CONNECTOR_DMS59_DP0:
 	case DCB_CONNECTOR_DMS59_DP1:
 	case DCB_CONNECTOR_DP       :
+	case DCB_CONNECTOR_mDP      :
 	case DCB_CONNECTOR_USB_C    : return DRM_MODE_CONNECTOR_DisplayPort;
 	case DCB_CONNECTOR_eDP      : return DRM_MODE_CONNECTOR_eDP;
 	case DCB_CONNECTOR_HDMI_0   :
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_connector.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_connector.h
@@ -29,6 +29,7 @@
 
 #include <nvif/notify.h>
 
+#include <drm/drm_crtc.h>
 #include <drm/drm_edid.h>
 #include <drm/drm_encoder.h>
 #include <drm/drm_dp_helper.h>
@@ -44,6 +45,60 @@
 struct nouveau_backlight;
 #endif
 
+#define nouveau_conn_atom(p)                                                   \
+	container_of((p), struct nouveau_conn_atom, state)
+
+struct nouveau_conn_atom {
+	struct drm_connector_state state;
+
+	struct {
+		/* The enum values specifically defined here match nv50/gf119
+		 * hw values, and the code relies on this.
+		 */
+		enum {
+			DITHERING_MODE_OFF = 0x00,
+			DITHERING_MODE_ON = 0x01,
+			DITHERING_MODE_DYNAMIC2X2 = 0x10 | DITHERING_MODE_ON,
+			DITHERING_MODE_STATIC2X2 = 0x18 | DITHERING_MODE_ON,
+			DITHERING_MODE_TEMPORAL = 0x20 | DITHERING_MODE_ON,
+			DITHERING_MODE_AUTO
+		} mode;
+		enum {
+			DITHERING_DEPTH_6BPC = 0x00,
+			DITHERING_DEPTH_8BPC = 0x02,
+			DITHERING_DEPTH_AUTO
+		} depth;
+	} dither;
+
+	struct {
+		int mode;	/* DRM_MODE_SCALE_* */
+		struct {
+			enum {
+				UNDERSCAN_OFF,
+				UNDERSCAN_ON,
+				UNDERSCAN_AUTO,
+			} mode;
+			u32 hborder;
+			u32 vborder;
+		} underscan;
+		bool full;
+	} scaler;
+
+	struct {
+		int color_vibrance;
+		int vibrant_hue;
+	} procamp;
+
+	union {
+		struct {
+			bool dither:1;
+			bool scaler:1;
+			bool procamp:1;
+		};
+		u8 mask;
+	} set;
+};
+
 struct nouveau_connector {
 	struct drm_connector base;
 	enum dcb_connector_type type;
@@ -63,6 +118,12 @@
 #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
 	struct nouveau_backlight *backlight;
 #endif
+	/*
+	 * Our connector property code expects a nouveau_conn_atom struct
+	 * even on pre-nv50 where we do not support atomic. This embedded
+	 * version gets used in the non atomic modeset case.
+	 */
+	struct nouveau_conn_atom properties_state;
 };
 
 static inline struct nouveau_connector *nouveau_connector(
@@ -121,61 +182,6 @@
 extern int nouveau_duallink;
 extern int nouveau_hdmimhz;
 
-#include <drm/drm_crtc.h>
-#define nouveau_conn_atom(p)                                                   \
-	container_of((p), struct nouveau_conn_atom, state)
-
-struct nouveau_conn_atom {
-	struct drm_connector_state state;
-
-	struct {
-		/* The enum values specifically defined here match nv50/gf119
-		 * hw values, and the code relies on this.
-		 */
-		enum {
-			DITHERING_MODE_OFF = 0x00,
-			DITHERING_MODE_ON = 0x01,
-			DITHERING_MODE_DYNAMIC2X2 = 0x10 | DITHERING_MODE_ON,
-			DITHERING_MODE_STATIC2X2 = 0x18 | DITHERING_MODE_ON,
-			DITHERING_MODE_TEMPORAL = 0x20 | DITHERING_MODE_ON,
-			DITHERING_MODE_AUTO
-		} mode;
-		enum {
-			DITHERING_DEPTH_6BPC = 0x00,
-			DITHERING_DEPTH_8BPC = 0x02,
-			DITHERING_DEPTH_AUTO
-		} depth;
-	} dither;
-
-	struct {
-		int mode;	/* DRM_MODE_SCALE_* */
-		struct {
-			enum {
-				UNDERSCAN_OFF,
-				UNDERSCAN_ON,
-				UNDERSCAN_AUTO,
-			} mode;
-			u32 hborder;
-			u32 vborder;
-		} underscan;
-		bool full;
-	} scaler;
-
-	struct {
-		int color_vibrance;
-		int vibrant_hue;
-	} procamp;
-
-	union {
-		struct {
-			bool dither:1;
-			bool scaler:1;
-			bool procamp:1;
-		};
-		u8 mask;
-	} set;
-};
-
 void nouveau_conn_attach_properties(struct drm_connector *);
 void nouveau_conn_reset(struct drm_connector *);
 struct drm_connector_state *
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_debugfs.c
@@ -54,8 +54,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(drm->dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(drm->dev->dev);
 		return ret;
+	}
 
 	seq_printf(m, "0x%08x\n",
 		   nvif_rd32(&drm->client.device.object, 0x101000));
@@ -181,8 +183,11 @@
 	}
 
 	ret = pm_runtime_get_sync(drm->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(drm->dev);
 		return ret;
+	}
+
 	ret = nvif_mthd(ctrl, NVIF_CONTROL_PSTATE_USER, &args, sizeof(args));
 	pm_runtime_put_autosuspend(drm->dev);
 	if (ret < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_dmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_dmem.c
@@ -635,10 +635,10 @@
 	unsigned long c, i;
 	int ret = -ENOMEM;
 
-	args.src = kcalloc(max, sizeof(args.src), GFP_KERNEL);
+	args.src = kcalloc(max, sizeof(*args.src), GFP_KERNEL);
 	if (!args.src)
 		goto out;
-	args.dst = kcalloc(max, sizeof(args.dst), GFP_KERNEL);
+	args.dst = kcalloc(max, sizeof(*args.dst), GFP_KERNEL);
 	if (!args.dst)
 		goto out_free_src;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -618,6 +618,64 @@
 	kfree(drm);
 }
 
+/*
+ * On some Intel PCIe bridge controllers doing a
+ * D0 -> D3hot -> D3cold -> D0 sequence causes Nvidia GPUs to not reappear.
+ * Skipping the intermediate D3hot step seems to make it work again. This is
+ * probably caused by not meeting the expectation the involved AML code has
+ * when the GPU is put into D3hot state before invoking it.
+ *
+ * This leads to various manifestations of this issue:
+ *  - AML code execution to power on the GPU hits an infinite loop (as the
+ *    code waits on device memory to change).
+ *  - kernel crashes, as all PCI reads return -1, which most code isn't able
+ *    to handle well enough.
+ *
+ * In all cases dmesg will contain at least one line like this:
+ * 'nouveau 0000:01:00.0: Refused to change power state, currently in D3'
+ * followed by a lot of nouveau timeouts.
+ *
+ * In the \_SB.PCI0.PEG0.PG00._OFF code deeper down writes bit 0x80 to the not
+ * documented PCI config space register 0x248 of the Intel PCIe bridge
+ * controller (0x1901) in order to change the state of the PCIe link between
+ * the PCIe port and the GPU. There are alternative code paths using other
+ * registers, which seem to work fine (executed pre Windows 8):
+ *  - 0xbc bit 0x20 (publicly available documentation claims 'reserved')
+ *  - 0xb0 bit 0x10 (link disable)
+ * Changing the conditions inside the firmware by poking into the relevant
+ * addresses does resolve the issue, but it seemed to be ACPI private memory
+ * and not any device accessible memory at all, so there is no portable way of
+ * changing the conditions.
+ * On a XPS 9560 that means bits [0,3] on \CPEX need to be cleared.
+ *
+ * The only systems where this behavior can be seen are hybrid graphics laptops
+ * with a secondary Nvidia Maxwell, Pascal or Turing GPU. It's unclear whether
+ * this issue only occurs in combination with listed Intel PCIe bridge
+ * controllers and the mentioned GPUs or other devices as well.
+ *
+ * documentation on the PCIe bridge controller can be found in the
+ * "7th Generation Intel® Processor Families for H Platforms Datasheet Volume 2"
+ * Section "12 PCI Express* Controller (x16) Registers"
+ */
+
+static void quirk_broken_nv_runpm(struct pci_dev *pdev)
+{
+	struct drm_device *dev = pci_get_drvdata(pdev);
+	struct nouveau_drm *drm = nouveau_drm(dev);
+	struct pci_dev *bridge = pci_upstream_bridge(pdev);
+
+	if (!bridge || bridge->vendor != PCI_VENDOR_ID_INTEL)
+		return;
+
+	switch (bridge->device) {
+	case 0x1901:
+		drm->old_pm_cap = pdev->pm_cap;
+		pdev->pm_cap = 0;
+		NV_INFO(drm, "Disabling PCI power management to avoid bug\n");
+		break;
+	}
+}
+
 static int nouveau_drm_probe(struct pci_dev *pdev,
 			     const struct pci_device_id *pent)
 {
@@ -699,6 +757,7 @@
 	if (ret)
 		goto fail_drm_dev_init;
 
+	quirk_broken_nv_runpm(pdev);
 	return 0;
 
 fail_drm_dev_init:
@@ -736,7 +795,11 @@
 nouveau_drm_remove(struct pci_dev *pdev)
 {
 	struct drm_device *dev = pci_get_drvdata(pdev);
+	struct nouveau_drm *drm = nouveau_drm(dev);
 
+	/* revert our workaround */
+	if (drm->old_pm_cap)
+		pdev->pm_cap = drm->old_pm_cap;
 	nouveau_drm_device_remove(dev);
 }
 
@@ -989,8 +1052,10 @@
 
 	/* need to bring up power immediately if opening device */
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	get_task_comm(tmpname, current);
 	snprintf(name, sizeof(name), "%s[%d]", tmpname, pid_nr(fpriv->pid));
@@ -1072,8 +1137,10 @@
 	long ret;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	switch (_IOC_NR(cmd) - DRM_COMMAND_BASE) {
 	case DRM_NOUVEAU_NVIF:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -138,6 +138,8 @@
 
 	struct list_head clients;
 
+	u8 old_pm_cap;
+
 	struct {
 		struct agp_bridge_data *bridge;
 		u32 base;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -189,8 +189,10 @@
 	struct nouveau_fbdev *fbcon = info->par;
 	struct nouveau_drm *drm = nouveau_drm(fbcon->helper.dev);
 	int ret = pm_runtime_get_sync(drm->dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put(drm->dev->dev);
 		return ret;
+	}
 	return 0;
 }
 
@@ -315,7 +317,7 @@
 	struct nouveau_framebuffer *fb;
 	struct nouveau_channel *chan;
 	struct nouveau_bo *nvbo;
-	struct drm_mode_fb_cmd2 mode_cmd;
+	struct drm_mode_fb_cmd2 mode_cmd = {};
 	int ret;
 
 	mode_cmd.width = sizes->surface_width;
@@ -592,6 +594,7 @@
 	drm_fb_helper_fini(&fbcon->helper);
 free:
 	kfree(fbcon);
+	drm->fbcon = NULL;
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_fence.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_fence.c
@@ -156,7 +156,7 @@
 
 		fence = list_entry(fctx->pending.next, typeof(*fence), head);
 		chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock));
-		if (nouveau_fence_update(fence->channel, fctx))
+		if (nouveau_fence_update(chan, fctx))
 			ret = NVIF_NOTIFY_DROP;
 	}
 	spin_unlock_irqrestore(&fctx->lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -45,8 +45,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (WARN_ON(ret < 0 && ret != -EACCES))
+	if (WARN_ON(ret < 0 && ret != -EACCES)) {
+		pm_runtime_put_autosuspend(dev);
 		return;
+	}
 
 	if (gem->import_attach)
 		drm_prime_gem_destroy(gem, nvbo->bo.sg);
@@ -76,8 +78,10 @@
 		return ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev);
 		goto out;
+	}
 
 	ret = nouveau_vma_new(nvbo, vmm, &vma);
 	pm_runtime_mark_last_busy(dev);
@@ -193,7 +197,8 @@
 	 * to the caller, instead of a normal nouveau_bo ttm reference. */
 	ret = drm_gem_object_init(drm->dev, &nvbo->bo.base, size);
 	if (ret) {
-		nouveau_bo_ref(NULL, &nvbo);
+		drm_gem_object_release(&nvbo->bo.base);
+		kfree(nvbo);
 		return ret;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_mem.c
@@ -176,6 +176,8 @@
 nouveau_mem_del(struct ttm_mem_reg *reg)
 {
 	struct nouveau_mem *mem = nouveau_mem(reg);
+	if (!mem)
+		return;
 	nouveau_mem_fini(mem);
 	kfree(reg->mm_node);
 	reg->mm_node = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -96,12 +96,9 @@
 	else
 		nvbe->ttm.ttm.func = &nv50_sgdma_backend;
 
-	if (ttm_dma_tt_init(&nvbe->ttm, bo, page_flags))
-		/*
-		 * A failing ttm_dma_tt_init() will call ttm_tt_destroy()
-		 * and thus our nouveau_sgdma_destroy() hook, so we don't need
-		 * to free nvbe here.
-		 */
+	if (ttm_dma_tt_init(&nvbe->ttm, bo, page_flags)) {
+		kfree(nvbe);
 		return NULL;
+	}
 	return &nvbe->ttm.ttm;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_svm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_svm.c
@@ -112,11 +112,11 @@
 	struct nouveau_cli *cli = nouveau_cli(file_priv);
 	struct drm_nouveau_svm_bind *args = data;
 	unsigned target, cmd, priority;
-	unsigned long addr, end, size;
+	unsigned long addr, end;
 	struct mm_struct *mm;
 
 	args->va_start &= PAGE_MASK;
-	args->va_end &= PAGE_MASK;
+	args->va_end = ALIGN(args->va_end, PAGE_SIZE);
 
 	/* Sanity check arguments */
 	if (args->reserved0 || args->reserved1)
@@ -125,8 +125,6 @@
 		return -EINVAL;
 	if (args->va_start >= args->va_end)
 		return -EINVAL;
-	if (!args->npages)
-		return -EINVAL;
 
 	cmd = args->header >> NOUVEAU_SVM_BIND_COMMAND_SHIFT;
 	cmd &= NOUVEAU_SVM_BIND_COMMAND_MASK;
@@ -158,12 +156,6 @@
 	if (args->stride)
 		return -EINVAL;
 
-	size = ((unsigned long)args->npages) << PAGE_SHIFT;
-	if ((args->va_start + size) <= args->va_start)
-		return -EINVAL;
-	if ((args->va_start + size) > args->va_end)
-		return -EINVAL;
-
 	/*
 	 * Ok we are ask to do something sane, for now we only support migrate
 	 * commands but we will add things like memory policy (what to do on
@@ -173,7 +165,12 @@
 	mm = get_task_mm(current);
 	down_read(&mm->mmap_sem);
 
-	for (addr = args->va_start, end = args->va_start + size; addr < end;) {
+	if (!cli->svm.svmm) {
+		up_read(&mm->mmap_sem);
+		return -EINVAL;
+	}
+
+	for (addr = args->va_start, end = args->va_end; addr < end;) {
 		struct vm_area_struct *vma;
 		unsigned long next;
 
@@ -181,6 +178,7 @@
 		if (!vma)
 			break;
 
+		addr = max(addr, vma->vm_start);
 		next = min(vma->vm_end, end);
 		/* This is a best effort so we ignore errors */
 		nouveau_dmem_migrate_vma(cli->drm, vma, addr, next);
@@ -308,6 +306,10 @@
 	struct drm_nouveau_svm_init *args = data;
 	int ret;
 
+	/* We need to fail if svm is disabled */
+	if (!cli->drm->svm)
+		return -ENOSYS;
+
 	/* Allocate tracking for SVM-enabled VMM. */
 	if (!(svmm = kzalloc(sizeof(*svmm), GFP_KERNEL)))
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -63,14 +63,12 @@
 {
 	struct nouveau_bo *nvbo = nouveau_bo(bo);
 	struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
-	struct nouveau_mem *mem;
 	int ret;
 
 	if (drm->client.device.info.ram_size == 0)
 		return -ENOMEM;
 
 	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp, reg);
-	mem = nouveau_mem(reg);
 	if (ret)
 		return ret;
 
@@ -103,11 +101,9 @@
 {
 	struct nouveau_bo *nvbo = nouveau_bo(bo);
 	struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
-	struct nouveau_mem *mem;
 	int ret;
 
 	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp, reg);
-	mem = nouveau_mem(reg);
 	if (ret)
 		return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/core/memory.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/core/memory.c
@@ -91,8 +91,8 @@
 	}
 
 	refcount_set(&tags->refcount, 1);
+	*ptags = memory->tags = tags;
 	mutex_unlock(&fb->subdev.mutex);
-	*ptags = tags;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
@@ -74,6 +74,8 @@
 
 	if (debug > subdev->debug)
 		return;
+	if (!mthd)
+		return;
 
 	for (i = 0; (list = mthd->data[i].mthd) != NULL; i++) {
 		u32 base = chan->head * mthd->addr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigm200.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigm200.c
@@ -27,10 +27,10 @@
 gm200_hdmi_scdc(struct nvkm_ior *ior, int head, u8 scdc)
 {
 	struct nvkm_device *device = ior->disp->engine.subdev.device;
-	const u32 hoff = head * 0x800;
+	const u32 soff = nv50_ior_base(ior);
 	const u32 ctrl = scdc & 0x3;
 
-	nvkm_mask(device, 0x61c5bc + hoff, 0x00000003, ctrl);
+	nvkm_mask(device, 0x61c5bc + soff, 0x00000003, ctrl);
 
 	ior->tmds.high_speed = !!(scdc & 0x2);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
@@ -1988,8 +1988,34 @@
 {
 	struct gf100_gr *gr = gf100_gr(base);
 	struct nvkm_subdev *subdev = &base->engine.subdev;
+	struct nvkm_device *device = subdev->device;
+	bool reset = device->chipset == 0x137 || device->chipset == 0x138;
 	u32 ret;
 
+	/* On certain GP107/GP108 boards, we trigger a weird issue where
+	 * GR will stop responding to PRI accesses after we've asked the
+	 * SEC2 RTOS to boot the GR falcons.  This happens with far more
+	 * frequency when cold-booting a board (ie. returning from D3).
+	 *
+	 * The root cause for this is not known and has proven difficult
+	 * to isolate, with many avenues being dead-ends.
+	 *
+	 * A workaround was discovered by Karol, whereby putting GR into
+	 * reset for an extended period right before initialisation
+	 * prevents the problem from occuring.
+	 *
+	 * XXX: As RM does not require any such workaround, this is more
+	 *      of a hack than a true fix.
+	 */
+	reset = nvkm_boolopt(device->cfgopt, "NvGrResetWar", reset);
+	if (reset) {
+		nvkm_mask(device, 0x000200, 0x00001000, 0x00000000);
+		nvkm_rd32(device, 0x000200);
+		msleep(50);
+		nvkm_mask(device, 0x000200, 0x00001000, 0x00001000);
+		nvkm_rd32(device, 0x000200);
+	}
+
 	nvkm_pmu_pgob(gr->base.engine.subdev.device->pmu, false);
 
 	ret = nvkm_falcon_get(gr->fecs.falcon, subdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c
@@ -143,23 +143,24 @@
 
 	nent = (fuc.size / sizeof(struct gk20a_fw_av));
 
-	pack = vzalloc((sizeof(*pack) * max_classes) +
-		       (sizeof(*init) * (nent + 1)));
+	pack = vzalloc((sizeof(*pack) * (max_classes + 1)) +
+		       (sizeof(*init) * (nent + max_classes + 1)));
 	if (!pack) {
 		ret = -ENOMEM;
 		goto end;
 	}
 
-	init = (void *)(pack + max_classes);
+	init = (void *)(pack + max_classes + 1);
 
-	for (i = 0; i < nent; i++) {
-		struct gf100_gr_init *ent = &init[i];
+	for (i = 0; i < nent; i++, init++) {
 		struct gk20a_fw_av *av = &((struct gk20a_fw_av *)fuc.data)[i];
 		u32 class = av->addr & 0xffff;
 		u32 addr = (av->addr & 0xffff0000) >> 14;
 
 		if (prevclass != class) {
-			pack[classidx].init = ent;
+			if (prevclass) /* Add terminator to the method list. */
+				init++;
+			pack[classidx].init = init;
 			pack[classidx].type = class;
 			prevclass = class;
 			if (++classidx >= max_classes) {
@@ -169,10 +170,10 @@
 			}
 		}
 
-		ent->addr = addr;
-		ent->data = av->data;
-		ent->count = 1;
-		ent->pitch = 1;
+		init->addr = addr;
+		init->data = av->data;
+		init->count = 1;
+		init->pitch = 1;
 	}
 
 	*ppack = pack;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
@@ -75,7 +75,7 @@
 	nvkm_debug(subdev, "%08x: type %02x, %d bytes\n",
 		   image.base, image.type, image.size);
 
-	if (!shadow_fetch(bios, mthd, image.size)) {
+	if (!shadow_fetch(bios, mthd, image.base + image.size)) {
 		nvkm_debug(subdev, "%08x: fetch failed\n", image.base);
 		return 0;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
@@ -101,9 +101,13 @@
 	else
 		return ERR_PTR(-ENODEV);
 
+	if (!pdev->rom || pdev->romlen == 0)
+		return ERR_PTR(-ENODEV);
+
 	if ((priv = kmalloc(sizeof(*priv), GFP_KERNEL))) {
+		priv->size = pdev->romlen;
 		if (ret = -ENODEV,
-		    (priv->rom = pci_platform_rom(pdev, &priv->size)))
+		    (priv->rom = ioremap(pdev->rom, pdev->romlen)))
 			return priv;
 		kfree(priv);
 	}
@@ -111,11 +115,20 @@
 	return ERR_PTR(ret);
 }
 
+static void
+platform_fini(void *data)
+{
+	struct priv *priv = data;
+
+	iounmap(priv->rom);
+	kfree(priv);
+}
+
 const struct nvbios_source
 nvbios_platform = {
 	.name = "PLATFORM",
 	.init = platform_init,
-	.fini = (void(*)(void *))kfree,
+	.fini = platform_fini,
 	.read = pcirom_read,
 	.rw = true,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
@@ -146,6 +146,7 @@
 	struct nvkm_fault *fault = nvkm_fault(subdev);
 	int i;
 
+	nvkm_notify_fini(&fault->nrpfb);
 	nvkm_event_fini(&fault->event);
 
 	for (i = 0; i < fault->buffer_nr; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
@@ -118,10 +118,10 @@
 		if (retries)
 			udelay(400);
 
-		/* transaction request, wait up to 1ms for it to complete */
+		/* transaction request, wait up to 2ms for it to complete */
 		nvkm_wr32(device, 0x00e4e4 + base, 0x00010000 | ctrl);
 
-		timeout = 1000;
+		timeout = 2000;
 		do {
 			ctrl = nvkm_rd32(device, 0x00e4e4 + base);
 			udelay(1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
@@ -33,7 +33,7 @@
 gm200_i2c_aux_fini(struct gm200_i2c_aux *aux)
 {
 	struct nvkm_device *device = aux->base.pad->i2c->subdev.device;
-	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00310000, 0x00000000);
+	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00710000, 0x00000000);
 }
 
 static int
@@ -54,10 +54,10 @@
 			AUX_ERR(&aux->base, "begin idle timeout %08x", ctrl);
 			return -EBUSY;
 		}
-	} while (ctrl & 0x03010000);
+	} while (ctrl & 0x07010000);
 
 	/* set some magic, and wait up to 1ms for it to appear */
-	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00300000, ureq);
+	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00700000, ureq);
 	timeout = 1000;
 	do {
 		ctrl = nvkm_rd32(device, 0x00d954 + (aux->ch * 0x50));
@@ -67,7 +67,7 @@
 			gm200_i2c_aux_fini(aux);
 			return -EBUSY;
 		}
-	} while ((ctrl & 0x03000000) != urep);
+	} while ((ctrl & 0x07000000) != urep);
 
 	return 0;
 }
@@ -118,10 +118,10 @@
 		if (retries)
 			udelay(400);
 
-		/* transaction request, wait up to 1ms for it to complete */
+		/* transaction request, wait up to 2ms for it to complete */
 		nvkm_wr32(device, 0x00d954 + base, 0x00010000 | ctrl);
 
-		timeout = 1000;
+		timeout = 2000;
 		do {
 			ctrl = nvkm_rd32(device, 0x00d954 + base);
 			udelay(1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c
@@ -22,6 +22,7 @@
  * Authors: Ben Skeggs
  */
 #include "priv.h"
+#include <subdev/timer.h>
 
 static void
 gf100_ibus_intr_hub(struct nvkm_subdev *ibus, int i)
@@ -31,7 +32,6 @@
 	u32 data = nvkm_rd32(device, 0x122124 + (i * 0x0400));
 	u32 stat = nvkm_rd32(device, 0x122128 + (i * 0x0400));
 	nvkm_debug(ibus, "HUB%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x122128 + (i * 0x0400), 0x00000200, 0x00000000);
 }
 
 static void
@@ -42,7 +42,6 @@
 	u32 data = nvkm_rd32(device, 0x124124 + (i * 0x0400));
 	u32 stat = nvkm_rd32(device, 0x124128 + (i * 0x0400));
 	nvkm_debug(ibus, "ROP%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x124128 + (i * 0x0400), 0x00000200, 0x00000000);
 }
 
 static void
@@ -53,7 +52,6 @@
 	u32 data = nvkm_rd32(device, 0x128124 + (i * 0x0400));
 	u32 stat = nvkm_rd32(device, 0x128128 + (i * 0x0400));
 	nvkm_debug(ibus, "GPC%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x128128 + (i * 0x0400), 0x00000200, 0x00000000);
 }
 
 void
@@ -90,6 +88,12 @@
 			intr1 &= ~stat;
 		}
 	}
+
+	nvkm_mask(device, 0x121c4c, 0x0000003f, 0x00000002);
+	nvkm_msec(device, 2000,
+		if (!(nvkm_rd32(device, 0x121c4c) & 0x0000003f))
+			break;
+	);
 }
 
 static int
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c
@@ -22,6 +22,7 @@
  * Authors: Ben Skeggs
  */
 #include "priv.h"
+#include <subdev/timer.h>
 
 static void
 gk104_ibus_intr_hub(struct nvkm_subdev *ibus, int i)
@@ -31,7 +32,6 @@
 	u32 data = nvkm_rd32(device, 0x122124 + (i * 0x0800));
 	u32 stat = nvkm_rd32(device, 0x122128 + (i * 0x0800));
 	nvkm_debug(ibus, "HUB%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x122128 + (i * 0x0800), 0x00000200, 0x00000000);
 }
 
 static void
@@ -42,7 +42,6 @@
 	u32 data = nvkm_rd32(device, 0x124124 + (i * 0x0800));
 	u32 stat = nvkm_rd32(device, 0x124128 + (i * 0x0800));
 	nvkm_debug(ibus, "ROP%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x124128 + (i * 0x0800), 0x00000200, 0x00000000);
 }
 
 static void
@@ -53,7 +52,6 @@
 	u32 data = nvkm_rd32(device, 0x128124 + (i * 0x0800));
 	u32 stat = nvkm_rd32(device, 0x128128 + (i * 0x0800));
 	nvkm_debug(ibus, "GPC%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x128128 + (i * 0x0800), 0x00000200, 0x00000000);
 }
 
 void
@@ -90,6 +88,12 @@
 			intr1 &= ~stat;
 		}
 	}
+
+	nvkm_mask(device, 0x12004c, 0x0000003f, 0x00000002);
+	nvkm_msec(device, 2000,
+		if (!(nvkm_rd32(device, 0x12004c) & 0x0000003f))
+			break;
+	);
 }
 
 static int
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
@@ -316,9 +316,9 @@
 {
 	struct nvkm_device *device = mmu->subdev.device;
 	struct nvkm_mm *mm = &device->fb->ram->vram;
-	const u32 sizeN = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NORMAL);
-	const u32 sizeU = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NOMAP);
-	const u32 sizeM = nvkm_mm_heap_size(mm, NVKM_RAM_MM_MIXED);
+	const u64 sizeN = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NORMAL);
+	const u64 sizeU = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NOMAP);
+	const u64 sizeM = nvkm_mm_heap_size(mm, NVKM_RAM_MM_MIXED);
 	u8 type = NVKM_MEM_KIND * !!mmu->func->kind;
 	u8 heap = NVKM_MEM_VRAM;
 	int heapM, heapN, heapU;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c
@@ -108,6 +108,7 @@
 	struct gm200_secboot *gsb;
 	struct nvkm_acr *acr;
 
+	*psb = NULL;
 	acr = acr_r352_new(BIT(NVKM_SECBOOT_FALCON_FECS) |
 			   BIT(NVKM_SECBOOT_FALCON_PMU));
 	if (IS_ERR(acr))
@@ -116,10 +117,8 @@
 	acr->optional_falcons = BIT(NVKM_SECBOOT_FALCON_PMU);
 
 	gsb = kzalloc(sizeof(*gsb), GFP_KERNEL);
-	if (!gsb) {
-		psb = NULL;
+	if (!gsb)
 		return -ENOMEM;
-	}
 	*psb = &gsb->base;
 
 	ret = nvkm_secboot_ctor(&gm20b_secboot, acr, device, index, &gsb->base);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/omapdrm/dss/dss.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/omapdrm/dss/dss.c
@@ -1151,46 +1151,38 @@
 	.has_lcd_clk_src	=	true,
 };
 
-static int dss_init_ports(struct dss_device *dss)
+static void __dss_uninit_ports(struct dss_device *dss, unsigned int num_ports)
 {
 	struct platform_device *pdev = dss->pdev;
 	struct device_node *parent = pdev->dev.of_node;
 	struct device_node *port;
 	unsigned int i;
-	int r;
 
-	for (i = 0; i < dss->feat->num_ports; i++) {
+	for (i = 0; i < num_ports; i++) {
 		port = of_graph_get_port_by_id(parent, i);
 		if (!port)
 			continue;
 
 		switch (dss->feat->ports[i]) {
 		case OMAP_DISPLAY_TYPE_DPI:
-			r = dpi_init_port(dss, pdev, port, dss->feat->model);
-			if (r)
-				return r;
+			dpi_uninit_port(port);
 			break;
-
 		case OMAP_DISPLAY_TYPE_SDI:
-			r = sdi_init_port(dss, pdev, port);
-			if (r)
-				return r;
+			sdi_uninit_port(port);
 			break;
-
 		default:
 			break;
 		}
 	}
-
-	return 0;
 }
 
-static void dss_uninit_ports(struct dss_device *dss)
+static int dss_init_ports(struct dss_device *dss)
 {
 	struct platform_device *pdev = dss->pdev;
 	struct device_node *parent = pdev->dev.of_node;
 	struct device_node *port;
-	int i;
+	unsigned int i;
+	int r;
 
 	for (i = 0; i < dss->feat->num_ports; i++) {
 		port = of_graph_get_port_by_id(parent, i);
@@ -1199,15 +1191,32 @@
 
 		switch (dss->feat->ports[i]) {
 		case OMAP_DISPLAY_TYPE_DPI:
-			dpi_uninit_port(port);
+			r = dpi_init_port(dss, pdev, port, dss->feat->model);
+			if (r)
+				goto error;
 			break;
+
 		case OMAP_DISPLAY_TYPE_SDI:
-			sdi_uninit_port(port);
+			r = sdi_init_port(dss, pdev, port);
+			if (r)
+				goto error;
 			break;
+
 		default:
 			break;
 		}
 	}
+
+	return 0;
+
+error:
+	__dss_uninit_ports(dss, i);
+	return r;
+}
+
+static void dss_uninit_ports(struct dss_device *dss)
+{
+	__dss_uninit_ports(dss, dss->feat->num_ports);
 }
 
 static int dss_video_pll_probe(struct dss_device *dss)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
@@ -192,7 +192,7 @@
 	dss = of_find_matching_node(NULL, omapdss_of_match);
 
 	if (dss == NULL || !of_device_is_available(dss))
-		return 0;
+		goto put_node;
 
 	omapdss_walk_device(dss, true);
 
@@ -217,6 +217,8 @@
 		kfree(n);
 	}
 
+put_node:
+	of_node_put(dss);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -451,11 +451,12 @@
 	if (omap_state->manually_updated)
 		return;
 
-	spin_lock_irq(&crtc->dev->event_lock);
 	drm_crtc_vblank_on(crtc);
+
 	ret = drm_crtc_vblank_get(crtc);
 	WARN_ON(ret != 0);
 
+	spin_lock_irq(&crtc->dev->event_lock);
 	omap_crtc_arm_event(crtc);
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
@@ -891,6 +891,7 @@
 					   &omap_dmm->refill_pa, GFP_KERNEL);
 	if (!omap_dmm->refill_va) {
 		dev_err(&dev->dev, "could not allocate refill memory\n");
+		ret = -ENOMEM;
 		goto fail;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panel/panel-lvds.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panel/panel-lvds.c
@@ -197,7 +197,6 @@
 static int panel_lvds_probe(struct platform_device *pdev)
 {
 	struct panel_lvds *lvds;
-	struct device_node *np;
 	int ret;
 
 	lvds = devm_kzalloc(&pdev->dev, sizeof(*lvds), GFP_KERNEL);
@@ -243,14 +242,9 @@
 		return ret;
 	}
 
-	np = of_parse_phandle(lvds->dev->of_node, "backlight", 0);
-	if (np) {
-		lvds->backlight = of_find_backlight_by_node(np);
-		of_node_put(np);
-
-		if (!lvds->backlight)
-			return -EPROBE_DEFER;
-	}
+	lvds->backlight = devm_of_find_backlight(lvds->dev);
+	if (IS_ERR(lvds->backlight))
+		return PTR_ERR(lvds->backlight);
 
 	/*
 	 * TODO: Handle all power supplies specified in the DT node in a generic
@@ -266,14 +260,10 @@
 
 	ret = drm_panel_add(&lvds->panel);
 	if (ret < 0)
-		goto error;
+		return ret;
 
 	dev_set_drvdata(lvds->dev, lvds);
 	return 0;
-
-error:
-	put_device(&lvds->backlight->dev);
-	return ret;
 }
 
 static int panel_lvds_remove(struct platform_device *pdev)
@@ -284,9 +274,6 @@
 
 	panel_lvds_disable(&lvds->panel);
 
-	if (lvds->backlight)
-		put_device(&lvds->backlight->dev);
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -426,6 +426,7 @@
 		return PTR_ERR(ts->dsi);
 	}
 
+	drm_panel_init(&ts->base);
 	ts->base.dev = dev;
 	ts->base.funcs = &rpi_touchscreen_funcs;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panel/panel-simple.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panel/panel-simple.c
@@ -1935,7 +1935,7 @@
 static const struct panel_desc lg_lb070wv8 = {
 	.modes = &lg_lb070wv8_mode,
 	.num_modes = 1,
-	.bpc = 16,
+	.bpc = 8,
 	.size = {
 		.width = 151,
 		.height = 91,
@@ -2048,6 +2048,40 @@
 	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
 };
 
+static const struct drm_display_mode logicpd_type_28_mode = {
+	.clock = 9000,
+	.hdisplay = 480,
+	.hsync_start = 480 + 3,
+	.hsync_end = 480 + 3 + 42,
+	.htotal = 480 + 3 + 42 + 2,
+
+	.vdisplay = 272,
+	.vsync_start = 272 + 2,
+	.vsync_end = 272 + 2 + 11,
+	.vtotal = 272 + 2 + 11 + 3,
+	.vrefresh = 60,
+	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+};
+
+static const struct panel_desc logicpd_type_28 = {
+	.modes = &logicpd_type_28_mode,
+	.num_modes = 1,
+	.bpc = 8,
+	.size = {
+		.width = 105,
+		.height = 67,
+	},
+	.delay = {
+		.prepare = 200,
+		.enable = 200,
+		.unprepare = 200,
+		.disable = 200,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
+		     DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE,
+};
+
 static const struct panel_desc mitsubishi_aa070mc01 = {
 	.modes = &mitsubishi_aa070mc01_mode,
 	.num_modes = 1,
@@ -2348,12 +2382,12 @@
 static const struct panel_desc ortustech_com43h4m85ulc = {
 	.modes = &ortustech_com43h4m85ulc_mode,
 	.num_modes = 1,
-	.bpc = 8,
+	.bpc = 6,
 	.size = {
 		.width = 56,
 		.height = 93,
 	},
-	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 };
 
@@ -3265,6 +3299,9 @@
 		.compatible = "lg,lp129qe",
 		.data = &lg_lp129qe,
 	}, {
+		.compatible = "logicpd,type28",
+		.data = &logicpd_type_28,
+	}, {
 		.compatible = "mitsubishi,aa070mc01-ca1",
 		.data = &mitsubishi_aa070mc01,
 	}, {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -381,6 +381,7 @@
 	spi_set_drvdata(spi, ctx);
 	ctx->spi = spi;
 
+	drm_panel_init(&ctx->panel);
 	ctx->panel.dev = &spi->dev;
 	ctx->panel.funcs = &st7789v_drm_funcs;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_devfreq.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_devfreq.c
@@ -53,8 +53,10 @@
 	if (err) {
 		dev_err(dev, "Cannot set frequency %lu (%d)\n", target_rate,
 			err);
-		regulator_set_voltage(pfdev->regulator, pfdev->devfreq.cur_volt,
-				      pfdev->devfreq.cur_volt);
+		if (pfdev->regulator)
+			regulator_set_voltage(pfdev->regulator,
+					      pfdev->devfreq.cur_volt,
+					      pfdev->devfreq.cur_volt);
 		return err;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -78,8 +78,10 @@
 static int panfrost_ioctl_create_bo(struct drm_device *dev, void *data,
 		struct drm_file *file)
 {
+	struct panfrost_file_priv *priv = file->driver_priv;
 	struct panfrost_gem_object *bo;
 	struct drm_panfrost_create_bo *args = data;
+	struct panfrost_gem_mapping *mapping;
 
 	if (!args->size || args->pad ||
 	    (args->flags & ~(PANFROST_BO_NOEXEC | PANFROST_BO_HEAP)))
@@ -95,7 +97,14 @@
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
-	args->offset = bo->node.start << PAGE_SHIFT;
+	mapping = panfrost_gem_mapping_get(bo, priv);
+	if (!mapping) {
+		drm_gem_object_put_unlocked(&bo->base.base);
+		return -EINVAL;
+	}
+
+	args->offset = mapping->mmnode.start << PAGE_SHIFT;
+	panfrost_gem_mapping_put(mapping);
 
 	return 0;
 }
@@ -119,6 +128,11 @@
 		  struct drm_panfrost_submit *args,
 		  struct panfrost_job *job)
 {
+	struct panfrost_file_priv *priv = file_priv->driver_priv;
+	struct panfrost_gem_object *bo;
+	unsigned int i;
+	int ret;
+
 	job->bo_count = args->bo_handle_count;
 
 	if (!job->bo_count)
@@ -130,9 +144,33 @@
 	if (!job->implicit_fences)
 		return -ENOMEM;
 
-	return drm_gem_objects_lookup(file_priv,
-				      (void __user *)(uintptr_t)args->bo_handles,
-				      job->bo_count, &job->bos);
+	ret = drm_gem_objects_lookup(file_priv,
+				     (void __user *)(uintptr_t)args->bo_handles,
+				     job->bo_count, &job->bos);
+	if (ret)
+		return ret;
+
+	job->mappings = kvmalloc_array(job->bo_count,
+				       sizeof(struct panfrost_gem_mapping *),
+				       GFP_KERNEL | __GFP_ZERO);
+	if (!job->mappings)
+		return -ENOMEM;
+
+	for (i = 0; i < job->bo_count; i++) {
+		struct panfrost_gem_mapping *mapping;
+
+		bo = to_panfrost_bo(job->bos[i]);
+		mapping = panfrost_gem_mapping_get(bo, priv);
+		if (!mapping) {
+			ret = -EINVAL;
+			break;
+		}
+
+		atomic_inc(&bo->gpu_usecount);
+		job->mappings[i] = mapping;
+	}
+
+	return ret;
 }
 
 /**
@@ -303,21 +341,26 @@
 	}
 
 	/* Don't allow mmapping of heap objects as pages are not pinned. */
-	if (to_panfrost_bo(gem_obj)->is_heap)
-		return -EINVAL;
+	if (to_panfrost_bo(gem_obj)->is_heap) {
+		ret = -EINVAL;
+		goto out;
+	}
 
 	ret = drm_gem_create_mmap_offset(gem_obj);
 	if (ret == 0)
 		args->offset = drm_vma_node_offset_addr(&gem_obj->vma_node);
-	drm_gem_object_put_unlocked(gem_obj);
 
+out:
+	drm_gem_object_put_unlocked(gem_obj);
 	return ret;
 }
 
 static int panfrost_ioctl_get_bo_offset(struct drm_device *dev, void *data,
 			    struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *priv = file_priv->driver_priv;
 	struct drm_panfrost_get_bo_offset *args = data;
+	struct panfrost_gem_mapping *mapping;
 	struct drm_gem_object *gem_obj;
 	struct panfrost_gem_object *bo;
 
@@ -328,18 +371,26 @@
 	}
 	bo = to_panfrost_bo(gem_obj);
 
-	args->offset = bo->node.start << PAGE_SHIFT;
-
+	mapping = panfrost_gem_mapping_get(bo, priv);
 	drm_gem_object_put_unlocked(gem_obj);
+
+	if (!mapping)
+		return -EINVAL;
+
+	args->offset = mapping->mmnode.start << PAGE_SHIFT;
+	panfrost_gem_mapping_put(mapping);
 	return 0;
 }
 
 static int panfrost_ioctl_madvise(struct drm_device *dev, void *data,
 				  struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *priv = file_priv->driver_priv;
 	struct drm_panfrost_madvise *args = data;
 	struct panfrost_device *pfdev = dev->dev_private;
 	struct drm_gem_object *gem_obj;
+	struct panfrost_gem_object *bo;
+	int ret = 0;
 
 	gem_obj = drm_gem_object_lookup(file_priv, args->handle);
 	if (!gem_obj) {
@@ -347,23 +398,48 @@
 		return -ENOENT;
 	}
 
-	args->retained = drm_gem_shmem_madvise(gem_obj, args->madv);
+	bo = to_panfrost_bo(gem_obj);
 
-	if (args->retained) {
-		struct panfrost_gem_object *bo = to_panfrost_bo(gem_obj);
+	mutex_lock(&pfdev->shrinker_lock);
+	mutex_lock(&bo->mappings.lock);
+	if (args->madv == PANFROST_MADV_DONTNEED) {
+		struct panfrost_gem_mapping *first;
+
+		first = list_first_entry(&bo->mappings.list,
+					 struct panfrost_gem_mapping,
+					 node);
+
+		/*
+		 * If we want to mark the BO purgeable, there must be only one
+		 * user: the caller FD.
+		 * We could do something smarter and mark the BO purgeable only
+		 * when all its users have marked it purgeable, but globally
+		 * visible/shared BOs are likely to never be marked purgeable
+		 * anyway, so let's not bother.
+		 */
+		if (!list_is_singular(&bo->mappings.list) ||
+		    WARN_ON_ONCE(first->mmu != &priv->mmu)) {
+			ret = -EINVAL;
+			goto out_unlock_mappings;
+		}
+	}
 
-		mutex_lock(&pfdev->shrinker_lock);
+	args->retained = drm_gem_shmem_madvise(gem_obj, args->madv);
 
+	if (args->retained) {
 		if (args->madv == PANFROST_MADV_DONTNEED)
-			list_add_tail(&bo->base.madv_list, &pfdev->shrinker_list);
+			list_add_tail(&bo->base.madv_list,
+				      &pfdev->shrinker_list);
 		else if (args->madv == PANFROST_MADV_WILLNEED)
 			list_del_init(&bo->base.madv_list);
-
-		mutex_unlock(&pfdev->shrinker_lock);
 	}
 
+out_unlock_mappings:
+	mutex_unlock(&bo->mappings.lock);
+	mutex_unlock(&pfdev->shrinker_lock);
+
 	drm_gem_object_put_unlocked(gem_obj);
-	return 0;
+	return ret;
 }
 
 int panfrost_unstable_ioctl_check(void)
@@ -443,7 +519,7 @@
 {
 	struct panfrost_file_priv *panfrost_priv = file->driver_priv;
 
-	panfrost_perfcnt_close(panfrost_priv);
+	panfrost_perfcnt_close(file);
 	panfrost_job_close(panfrost_priv);
 
 	panfrost_mmu_pgtable_free(panfrost_priv);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_gem.c
@@ -19,6 +19,22 @@
 	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
 	struct panfrost_device *pfdev = obj->dev->dev_private;
 
+	/*
+	 * Make sure the BO is no longer inserted in the shrinker list before
+	 * taking care of the destruction itself. If we don't do that we have a
+	 * race condition between this function and what's done in
+	 * panfrost_gem_shrinker_scan().
+	 */
+	mutex_lock(&pfdev->shrinker_lock);
+	list_del_init(&bo->base.madv_list);
+	mutex_unlock(&pfdev->shrinker_lock);
+
+	/*
+	 * If we still have mappings attached to the BO, there's a problem in
+	 * our refcounting.
+	 */
+	WARN_ON_ONCE(!list_empty(&bo->mappings.list));
+
 	if (bo->sgts) {
 		int i;
 		int n_sgt = bo->base.base.size / SZ_2M;
@@ -30,18 +46,74 @@
 				sg_free_table(&bo->sgts[i]);
 			}
 		}
-		kfree(bo->sgts);
+		kvfree(bo->sgts);
 	}
 
-	mutex_lock(&pfdev->shrinker_lock);
-	if (!list_empty(&bo->base.madv_list))
-		list_del(&bo->base.madv_list);
-	mutex_unlock(&pfdev->shrinker_lock);
-
 	drm_gem_shmem_free_object(obj);
 }
 
-static int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv)
+struct panfrost_gem_mapping *
+panfrost_gem_mapping_get(struct panfrost_gem_object *bo,
+			 struct panfrost_file_priv *priv)
+{
+	struct panfrost_gem_mapping *iter, *mapping = NULL;
+
+	mutex_lock(&bo->mappings.lock);
+	list_for_each_entry(iter, &bo->mappings.list, node) {
+		if (iter->mmu == &priv->mmu) {
+			kref_get(&iter->refcount);
+			mapping = iter;
+			break;
+		}
+	}
+	mutex_unlock(&bo->mappings.lock);
+
+	return mapping;
+}
+
+static void
+panfrost_gem_teardown_mapping(struct panfrost_gem_mapping *mapping)
+{
+	struct panfrost_file_priv *priv;
+
+	if (mapping->active)
+		panfrost_mmu_unmap(mapping);
+
+	priv = container_of(mapping->mmu, struct panfrost_file_priv, mmu);
+	spin_lock(&priv->mm_lock);
+	if (drm_mm_node_allocated(&mapping->mmnode))
+		drm_mm_remove_node(&mapping->mmnode);
+	spin_unlock(&priv->mm_lock);
+}
+
+static void panfrost_gem_mapping_release(struct kref *kref)
+{
+	struct panfrost_gem_mapping *mapping;
+
+	mapping = container_of(kref, struct panfrost_gem_mapping, refcount);
+
+	panfrost_gem_teardown_mapping(mapping);
+	drm_gem_object_put_unlocked(&mapping->obj->base.base);
+	kfree(mapping);
+}
+
+void panfrost_gem_mapping_put(struct panfrost_gem_mapping *mapping)
+{
+	if (!mapping)
+		return;
+
+	kref_put(&mapping->refcount, panfrost_gem_mapping_release);
+}
+
+void panfrost_gem_teardown_mappings_locked(struct panfrost_gem_object *bo)
+{
+	struct panfrost_gem_mapping *mapping;
+
+	list_for_each_entry(mapping, &bo->mappings.list, node)
+		panfrost_gem_teardown_mapping(mapping);
+}
+
+int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv)
 {
 	int ret;
 	size_t size = obj->size;
@@ -49,6 +121,16 @@
 	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
 	unsigned long color = bo->noexec ? PANFROST_BO_NOEXEC : 0;
 	struct panfrost_file_priv *priv = file_priv->driver_priv;
+	struct panfrost_gem_mapping *mapping;
+
+	mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+	if (!mapping)
+		return -ENOMEM;
+
+	INIT_LIST_HEAD(&mapping->node);
+	kref_init(&mapping->refcount);
+	drm_gem_object_get(obj);
+	mapping->obj = bo;
 
 	/*
 	 * Executable buffers cannot cross a 16MB boundary as the program
@@ -61,37 +143,48 @@
 	else
 		align = size >= SZ_2M ? SZ_2M >> PAGE_SHIFT : 0;
 
-	bo->mmu = &priv->mmu;
+	mapping->mmu = &priv->mmu;
 	spin_lock(&priv->mm_lock);
-	ret = drm_mm_insert_node_generic(&priv->mm, &bo->node,
+	ret = drm_mm_insert_node_generic(&priv->mm, &mapping->mmnode,
 					 size >> PAGE_SHIFT, align, color, 0);
 	spin_unlock(&priv->mm_lock);
 	if (ret)
-		return ret;
+		goto err;
 
 	if (!bo->is_heap) {
-		ret = panfrost_mmu_map(bo);
-		if (ret) {
-			spin_lock(&priv->mm_lock);
-			drm_mm_remove_node(&bo->node);
-			spin_unlock(&priv->mm_lock);
-		}
+		ret = panfrost_mmu_map(mapping);
+		if (ret)
+			goto err;
 	}
+
+	mutex_lock(&bo->mappings.lock);
+	WARN_ON(bo->base.madv != PANFROST_MADV_WILLNEED);
+	list_add_tail(&mapping->node, &bo->mappings.list);
+	mutex_unlock(&bo->mappings.lock);
+
+err:
+	if (ret)
+		panfrost_gem_mapping_put(mapping);
 	return ret;
 }
 
-static void panfrost_gem_close(struct drm_gem_object *obj, struct drm_file *file_priv)
+void panfrost_gem_close(struct drm_gem_object *obj, struct drm_file *file_priv)
 {
-	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
 	struct panfrost_file_priv *priv = file_priv->driver_priv;
+	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
+	struct panfrost_gem_mapping *mapping = NULL, *iter;
 
-	if (bo->is_mapped)
-		panfrost_mmu_unmap(bo);
+	mutex_lock(&bo->mappings.lock);
+	list_for_each_entry(iter, &bo->mappings.list, node) {
+		if (iter->mmu == &priv->mmu) {
+			mapping = iter;
+			list_del(&iter->node);
+			break;
+		}
+	}
+	mutex_unlock(&bo->mappings.lock);
 
-	spin_lock(&priv->mm_lock);
-	if (drm_mm_node_allocated(&bo->node))
-		drm_mm_remove_node(&bo->node);
-	spin_unlock(&priv->mm_lock);
+	panfrost_gem_mapping_put(mapping);
 }
 
 static int panfrost_gem_pin(struct drm_gem_object *obj)
@@ -131,6 +224,8 @@
 	if (!obj)
 		return NULL;
 
+	INIT_LIST_HEAD(&obj->mappings.list);
+	mutex_init(&obj->mappings.lock);
 	obj->base.base.funcs = &panfrost_gem_funcs;
 
 	return &obj->base.base;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gem.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_gem.h
@@ -13,23 +13,52 @@
 	struct drm_gem_shmem_object base;
 	struct sg_table *sgts;
 
-	struct panfrost_mmu *mmu;
-	struct drm_mm_node node;
-	bool is_mapped		:1;
+	/*
+	 * Use a list for now. If searching a mapping ever becomes the
+	 * bottleneck, we should consider using an RB-tree, or even better,
+	 * let the core store drm_gem_object_mapping entries (where we
+	 * could place driver specific data) instead of drm_gem_object ones
+	 * in its drm_file->object_idr table.
+	 *
+	 * struct drm_gem_object_mapping {
+	 *	struct drm_gem_object *obj;
+	 *	void *driver_priv;
+	 * };
+	 */
+	struct {
+		struct list_head list;
+		struct mutex lock;
+	} mappings;
+
+	/*
+	 * Count the number of jobs referencing this BO so we don't let the
+	 * shrinker reclaim this object prematurely.
+	 */
+	atomic_t gpu_usecount;
+
 	bool noexec		:1;
 	bool is_heap		:1;
 };
 
+struct panfrost_gem_mapping {
+	struct list_head node;
+	struct kref refcount;
+	struct panfrost_gem_object *obj;
+	struct drm_mm_node mmnode;
+	struct panfrost_mmu *mmu;
+	bool active		:1;
+};
+
 static inline
 struct  panfrost_gem_object *to_panfrost_bo(struct drm_gem_object *obj)
 {
 	return container_of(to_drm_gem_shmem_obj(obj), struct panfrost_gem_object, base);
 }
 
-static inline
-struct  panfrost_gem_object *drm_mm_node_to_panfrost_bo(struct drm_mm_node *node)
+static inline struct panfrost_gem_mapping *
+drm_mm_node_to_panfrost_mapping(struct drm_mm_node *node)
 {
-	return container_of(node, struct panfrost_gem_object, node);
+	return container_of(node, struct panfrost_gem_mapping, mmnode);
 }
 
 struct drm_gem_object *panfrost_gem_create_object(struct drm_device *dev, size_t size);
@@ -45,6 +74,16 @@
 				u32 flags,
 				uint32_t *handle);
 
+int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv);
+void panfrost_gem_close(struct drm_gem_object *obj,
+			struct drm_file *file_priv);
+
+struct panfrost_gem_mapping *
+panfrost_gem_mapping_get(struct panfrost_gem_object *bo,
+			 struct panfrost_file_priv *priv);
+void panfrost_gem_mapping_put(struct panfrost_gem_mapping *mapping);
+void panfrost_gem_teardown_mappings_locked(struct panfrost_gem_object *bo);
+
 void panfrost_gem_shrinker_init(struct drm_device *dev);
 void panfrost_gem_shrinker_cleanup(struct drm_device *dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
@@ -39,15 +39,27 @@
 static bool panfrost_gem_purge(struct drm_gem_object *obj)
 {
 	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
+	bool ret = false;
 
-	if (!mutex_trylock(&shmem->pages_lock))
+	if (atomic_read(&bo->gpu_usecount))
+		return false;
+
+	if (!mutex_trylock(&bo->mappings.lock))
 		return false;
 
-	panfrost_mmu_unmap(to_panfrost_bo(obj));
+	if (!mutex_trylock(&shmem->pages_lock))
+		goto unlock_mappings;
+
+	panfrost_gem_teardown_mappings_locked(bo);
 	drm_gem_shmem_purge_locked(obj);
+	ret = true;
 
 	mutex_unlock(&shmem->pages_lock);
-	return true;
+
+unlock_mappings:
+	mutex_unlock(&bo->mappings.lock);
+	return ret;
 }
 
 static unsigned long
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -75,6 +75,17 @@
 	return 0;
 }
 
+void panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev)
+{
+	/*
+	 * The Amlogic integrated Mali-T820, Mali-G31 & Mali-G52 needs
+	 * these undocumented bits in GPU_PWR_OVERRIDE1 to be set in order
+	 * to operate correctly.
+	 */
+	gpu_write(pfdev, GPU_PWR_KEY, GPU_PWR_KEY_UNLOCK);
+	gpu_write(pfdev, GPU_PWR_OVERRIDE1, 0xfff | (0x20 << 16));
+}
+
 static void panfrost_gpu_init_quirks(struct panfrost_device *pfdev)
 {
 	u32 quirks = 0;
@@ -304,6 +315,8 @@
 	int ret;
 	u32 val;
 
+	panfrost_gpu_init_quirks(pfdev);
+
 	/* Just turn on everything for now */
 	gpu_write(pfdev, L2_PWRON_LO, pfdev->features.l2_present);
 	ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
@@ -357,7 +370,6 @@
 		return err;
 	}
 
-	panfrost_gpu_init_quirks(pfdev);
 	panfrost_gpu_power_on(pfdev);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gpu.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_gpu.h
@@ -16,4 +16,6 @@
 void panfrost_gpu_power_on(struct panfrost_device *pfdev);
 void panfrost_gpu_power_off(struct panfrost_device *pfdev);
 
+void panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev);
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_job.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -269,9 +269,25 @@
 	dma_fence_put(job->done_fence);
 	dma_fence_put(job->render_done_fence);
 
+	if (job->mappings) {
+		for (i = 0; i < job->bo_count; i++) {
+			if (!job->mappings[i])
+				break;
+
+			atomic_dec(&job->mappings[i]->obj->gpu_usecount);
+			panfrost_gem_mapping_put(job->mappings[i]);
+		}
+		kvfree(job->mappings);
+	}
+
 	if (job->bos) {
-		for (i = 0; i < job->bo_count; i++)
+		struct panfrost_gem_object *bo;
+
+		for (i = 0; i < job->bo_count; i++) {
+			bo = to_panfrost_bo(job->bos[i]);
 			drm_gem_object_put_unlocked(job->bos[i]);
+		}
+
 		kvfree(job->bos);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_job.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_job.h
@@ -32,6 +32,7 @@
 
 	/* Exclusive fences we have taken from the BOs to wait for */
 	struct dma_fence **implicit_fences;
+	struct panfrost_gem_mapping **mappings;
 	struct drm_gem_object **bos;
 	u32 bo_count;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_mmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_mmu.c
@@ -151,7 +151,12 @@
 	as = mmu->as;
 	if (as >= 0) {
 		int en = atomic_inc_return(&mmu->as_count);
-		WARN_ON(en >= NUM_JOB_SLOTS);
+
+		/*
+		 * AS can be retained by active jobs or a perfcnt context,
+		 * hence the '+ 1' here.
+		 */
+		WARN_ON(en >= (NUM_JOB_SLOTS + 1));
 
 		list_move(&mmu->list, &pfdev->as_lru_list);
 		goto out;
@@ -269,14 +274,15 @@
 	return 0;
 }
 
-int panfrost_mmu_map(struct panfrost_gem_object *bo)
+int panfrost_mmu_map(struct panfrost_gem_mapping *mapping)
 {
+	struct panfrost_gem_object *bo = mapping->obj;
 	struct drm_gem_object *obj = &bo->base.base;
 	struct panfrost_device *pfdev = to_panfrost_device(obj->dev);
 	struct sg_table *sgt;
 	int prot = IOMMU_READ | IOMMU_WRITE;
 
-	if (WARN_ON(bo->is_mapped))
+	if (WARN_ON(mapping->active))
 		return 0;
 
 	if (bo->noexec)
@@ -286,25 +292,28 @@
 	if (WARN_ON(IS_ERR(sgt)))
 		return PTR_ERR(sgt);
 
-	mmu_map_sg(pfdev, bo->mmu, bo->node.start << PAGE_SHIFT, prot, sgt);
-	bo->is_mapped = true;
+	mmu_map_sg(pfdev, mapping->mmu, mapping->mmnode.start << PAGE_SHIFT,
+		   prot, sgt);
+	mapping->active = true;
 
 	return 0;
 }
 
-void panfrost_mmu_unmap(struct panfrost_gem_object *bo)
+void panfrost_mmu_unmap(struct panfrost_gem_mapping *mapping)
 {
+	struct panfrost_gem_object *bo = mapping->obj;
 	struct drm_gem_object *obj = &bo->base.base;
 	struct panfrost_device *pfdev = to_panfrost_device(obj->dev);
-	struct io_pgtable_ops *ops = bo->mmu->pgtbl_ops;
-	u64 iova = bo->node.start << PAGE_SHIFT;
-	size_t len = bo->node.size << PAGE_SHIFT;
+	struct io_pgtable_ops *ops = mapping->mmu->pgtbl_ops;
+	u64 iova = mapping->mmnode.start << PAGE_SHIFT;
+	size_t len = mapping->mmnode.size << PAGE_SHIFT;
 	size_t unmapped_len = 0;
 
-	if (WARN_ON(!bo->is_mapped))
+	if (WARN_ON(!mapping->active))
 		return;
 
-	dev_dbg(pfdev->dev, "unmap: as=%d, iova=%llx, len=%zx", bo->mmu->as, iova, len);
+	dev_dbg(pfdev->dev, "unmap: as=%d, iova=%llx, len=%zx",
+		mapping->mmu->as, iova, len);
 
 	while (unmapped_len < len) {
 		size_t unmapped_page;
@@ -318,8 +327,9 @@
 		unmapped_len += pgsize;
 	}
 
-	panfrost_mmu_flush_range(pfdev, bo->mmu, bo->node.start << PAGE_SHIFT, len);
-	bo->is_mapped = false;
+	panfrost_mmu_flush_range(pfdev, mapping->mmu,
+				 mapping->mmnode.start << PAGE_SHIFT, len);
+	mapping->active = false;
 }
 
 static void mmu_tlb_inv_context_s1(void *cookie)
@@ -394,10 +404,10 @@
 	free_io_pgtable_ops(mmu->pgtbl_ops);
 }
 
-static struct panfrost_gem_object *
-addr_to_drm_mm_node(struct panfrost_device *pfdev, int as, u64 addr)
+static struct panfrost_gem_mapping *
+addr_to_mapping(struct panfrost_device *pfdev, int as, u64 addr)
 {
-	struct panfrost_gem_object *bo = NULL;
+	struct panfrost_gem_mapping *mapping = NULL;
 	struct panfrost_file_priv *priv;
 	struct drm_mm_node *node;
 	u64 offset = addr >> PAGE_SHIFT;
@@ -418,8 +428,9 @@
 	drm_mm_for_each_node(node, &priv->mm) {
 		if (offset >= node->start &&
 		    offset < (node->start + node->size)) {
-			bo = drm_mm_node_to_panfrost_bo(node);
-			drm_gem_object_get(&bo->base.base);
+			mapping = drm_mm_node_to_panfrost_mapping(node);
+
+			kref_get(&mapping->refcount);
 			break;
 		}
 	}
@@ -427,7 +438,7 @@
 	spin_unlock(&priv->mm_lock);
 out:
 	spin_unlock(&pfdev->as_lock);
-	return bo;
+	return mapping;
 }
 
 #define NUM_FAULT_PAGES (SZ_2M / PAGE_SIZE)
@@ -436,28 +447,30 @@
 				       u64 addr)
 {
 	int ret, i;
+	struct panfrost_gem_mapping *bomapping;
 	struct panfrost_gem_object *bo;
 	struct address_space *mapping;
 	pgoff_t page_offset;
 	struct sg_table *sgt;
 	struct page **pages;
 
-	bo = addr_to_drm_mm_node(pfdev, as, addr);
-	if (!bo)
+	bomapping = addr_to_mapping(pfdev, as, addr);
+	if (!bomapping)
 		return -ENOENT;
 
+	bo = bomapping->obj;
 	if (!bo->is_heap) {
 		dev_WARN(pfdev->dev, "matching BO is not heap type (GPU VA = %llx)",
-			 bo->node.start << PAGE_SHIFT);
+			 bomapping->mmnode.start << PAGE_SHIFT);
 		ret = -EINVAL;
 		goto err_bo;
 	}
-	WARN_ON(bo->mmu->as != as);
+	WARN_ON(bomapping->mmu->as != as);
 
 	/* Assume 2MB alignment and size multiple */
 	addr &= ~((u64)SZ_2M - 1);
 	page_offset = addr >> PAGE_SHIFT;
-	page_offset -= bo->node.start;
+	page_offset -= bomapping->mmnode.start;
 
 	mutex_lock(&bo->base.pages_lock);
 
@@ -473,7 +486,7 @@
 		pages = kvmalloc_array(bo->base.base.size >> PAGE_SHIFT,
 				       sizeof(struct page *), GFP_KERNEL | __GFP_ZERO);
 		if (!pages) {
-			kfree(bo->sgts);
+			kvfree(bo->sgts);
 			bo->sgts = NULL;
 			mutex_unlock(&bo->base.pages_lock);
 			ret = -ENOMEM;
@@ -509,13 +522,14 @@
 		goto err_map;
 	}
 
-	mmu_map_sg(pfdev, bo->mmu, addr, IOMMU_WRITE | IOMMU_READ | IOMMU_NOEXEC, sgt);
+	mmu_map_sg(pfdev, bomapping->mmu, addr,
+		   IOMMU_WRITE | IOMMU_READ | IOMMU_NOEXEC, sgt);
 
-	bo->is_mapped = true;
+	bomapping->active = true;
 
 	dev_dbg(pfdev->dev, "mapped page fault @ AS%d %llx", as, addr);
 
-	drm_gem_object_put_unlocked(&bo->base.base);
+	panfrost_gem_mapping_put(bomapping);
 
 	return 0;
 
@@ -587,33 +601,27 @@
 		source_id = (fault_status >> 16);
 
 		/* Page fault only */
-		if ((status & mask) == BIT(i)) {
-			WARN_ON(exception_type < 0xC1 || exception_type > 0xC4);
-
+		ret = -1;
+		if ((status & mask) == BIT(i) && (exception_type & 0xF8) == 0xC0)
 			ret = panfrost_mmu_map_fault_addr(pfdev, i, addr);
-			if (!ret) {
-				mmu_write(pfdev, MMU_INT_CLEAR, BIT(i));
-				status &= ~mask;
-				continue;
-			}
-		}
 
-		/* terminal fault, print info about the fault */
-		dev_err(pfdev->dev,
-			"Unhandled Page fault in AS%d at VA 0x%016llX\n"
-			"Reason: %s\n"
-			"raw fault status: 0x%X\n"
-			"decoded fault status: %s\n"
-			"exception type 0x%X: %s\n"
-			"access type 0x%X: %s\n"
-			"source id 0x%X\n",
-			i, addr,
-			"TODO",
-			fault_status,
-			(fault_status & (1 << 10) ? "DECODER FAULT" : "SLAVE FAULT"),
-			exception_type, panfrost_exception_name(pfdev, exception_type),
-			access_type, access_type_name(pfdev, fault_status),
-			source_id);
+		if (ret)
+			/* terminal fault, print info about the fault */
+			dev_err(pfdev->dev,
+				"Unhandled Page fault in AS%d at VA 0x%016llX\n"
+				"Reason: %s\n"
+				"raw fault status: 0x%X\n"
+				"decoded fault status: %s\n"
+				"exception type 0x%X: %s\n"
+				"access type 0x%X: %s\n"
+				"source id 0x%X\n",
+				i, addr,
+				"TODO",
+				fault_status,
+				(fault_status & (1 << 10) ? "DECODER FAULT" : "SLAVE FAULT"),
+				exception_type, panfrost_exception_name(pfdev, exception_type),
+				access_type, access_type_name(pfdev, fault_status),
+				source_id);
 
 		mmu_write(pfdev, MMU_INT_CLEAR, mask);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_mmu.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_mmu.h
@@ -4,12 +4,12 @@
 #ifndef __PANFROST_MMU_H__
 #define __PANFROST_MMU_H__
 
-struct panfrost_gem_object;
+struct panfrost_gem_mapping;
 struct panfrost_file_priv;
 struct panfrost_mmu;
 
-int panfrost_mmu_map(struct panfrost_gem_object *bo);
-void panfrost_mmu_unmap(struct panfrost_gem_object *bo);
+int panfrost_mmu_map(struct panfrost_gem_mapping *mapping);
+void panfrost_mmu_unmap(struct panfrost_gem_mapping *mapping);
 
 int panfrost_mmu_init(struct panfrost_device *pfdev);
 void panfrost_mmu_fini(struct panfrost_device *pfdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
@@ -25,7 +25,7 @@
 #define V4_SHADERS_PER_COREGROUP	4
 
 struct panfrost_perfcnt {
-	struct panfrost_gem_object *bo;
+	struct panfrost_gem_mapping *mapping;
 	size_t bosize;
 	void *buf;
 	struct panfrost_file_priv *user;
@@ -49,7 +49,7 @@
 	int ret;
 
 	reinit_completion(&pfdev->perfcnt->dump_comp);
-	gpuva = pfdev->perfcnt->bo->node.start << PAGE_SHIFT;
+	gpuva = pfdev->perfcnt->mapping->mmnode.start << PAGE_SHIFT;
 	gpu_write(pfdev, GPU_PERFCNT_BASE_LO, gpuva);
 	gpu_write(pfdev, GPU_PERFCNT_BASE_HI, gpuva >> 32);
 	gpu_write(pfdev, GPU_INT_CLEAR,
@@ -67,12 +67,13 @@
 }
 
 static int panfrost_perfcnt_enable_locked(struct panfrost_device *pfdev,
-					  struct panfrost_file_priv *user,
+					  struct drm_file *file_priv,
 					  unsigned int counterset)
 {
+	struct panfrost_file_priv *user = file_priv->driver_priv;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 	struct drm_gem_shmem_object *bo;
-	u32 cfg;
+	u32 cfg, as;
 	int ret;
 
 	if (user == perfcnt->user)
@@ -88,17 +89,22 @@
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
-	perfcnt->bo = to_panfrost_bo(&bo->base);
-
 	/* Map the perfcnt buf in the address space attached to file_priv. */
-	ret = panfrost_mmu_map(perfcnt->bo);
+	ret = panfrost_gem_open(&bo->base, file_priv);
 	if (ret)
 		goto err_put_bo;
 
+	perfcnt->mapping = panfrost_gem_mapping_get(to_panfrost_bo(&bo->base),
+						    user);
+	if (!perfcnt->mapping) {
+		ret = -EINVAL;
+		goto err_close_bo;
+	}
+
 	perfcnt->buf = drm_gem_shmem_vmap(&bo->base);
 	if (IS_ERR(perfcnt->buf)) {
 		ret = PTR_ERR(perfcnt->buf);
-		goto err_put_bo;
+		goto err_put_mapping;
 	}
 
 	/*
@@ -120,12 +126,8 @@
 
 	perfcnt->user = user;
 
-	/*
-	 * Always use address space 0 for now.
-	 * FIXME: this needs to be updated when we start using different
-	 * address space.
-	 */
-	cfg = GPU_PERFCNT_CFG_AS(0) |
+	as = panfrost_mmu_as_get(pfdev, perfcnt->mapping->mmu);
+	cfg = GPU_PERFCNT_CFG_AS(as) |
 	      GPU_PERFCNT_CFG_MODE(GPU_PERFCNT_CFG_MODE_MANUAL);
 
 	/*
@@ -153,18 +155,26 @@
 	if (panfrost_has_hw_issue(pfdev, HW_ISSUE_8186))
 		gpu_write(pfdev, GPU_PRFCNT_TILER_EN, 0xffffffff);
 
+	/* The BO ref is retained by the mapping. */
+	drm_gem_object_put_unlocked(&bo->base);
+
 	return 0;
 
 err_vunmap:
-	drm_gem_shmem_vunmap(&perfcnt->bo->base.base, perfcnt->buf);
+	drm_gem_shmem_vunmap(&bo->base, perfcnt->buf);
+err_put_mapping:
+	panfrost_gem_mapping_put(perfcnt->mapping);
+err_close_bo:
+	panfrost_gem_close(&bo->base, file_priv);
 err_put_bo:
 	drm_gem_object_put_unlocked(&bo->base);
 	return ret;
 }
 
 static int panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev,
-					   struct panfrost_file_priv *user)
+					   struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *user = file_priv->driver_priv;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 
 	if (user != perfcnt->user)
@@ -178,10 +188,12 @@
 		  GPU_PERFCNT_CFG_MODE(GPU_PERFCNT_CFG_MODE_OFF));
 
 	perfcnt->user = NULL;
-	drm_gem_shmem_vunmap(&perfcnt->bo->base.base, perfcnt->buf);
+	drm_gem_shmem_vunmap(&perfcnt->mapping->obj->base.base, perfcnt->buf);
 	perfcnt->buf = NULL;
-	drm_gem_object_put_unlocked(&perfcnt->bo->base.base);
-	perfcnt->bo = NULL;
+	panfrost_gem_close(&perfcnt->mapping->obj->base.base, file_priv);
+	panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
+	panfrost_gem_mapping_put(perfcnt->mapping);
+	perfcnt->mapping = NULL;
 	pm_runtime_mark_last_busy(pfdev->dev);
 	pm_runtime_put_autosuspend(pfdev->dev);
 
@@ -191,7 +203,6 @@
 int panfrost_ioctl_perfcnt_enable(struct drm_device *dev, void *data,
 				  struct drm_file *file_priv)
 {
-	struct panfrost_file_priv *pfile = file_priv->driver_priv;
 	struct panfrost_device *pfdev = dev->dev_private;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 	struct drm_panfrost_perfcnt_enable *req = data;
@@ -207,10 +218,10 @@
 
 	mutex_lock(&perfcnt->lock);
 	if (req->enable)
-		ret = panfrost_perfcnt_enable_locked(pfdev, pfile,
+		ret = panfrost_perfcnt_enable_locked(pfdev, file_priv,
 						     req->counterset);
 	else
-		ret = panfrost_perfcnt_disable_locked(pfdev, pfile);
+		ret = panfrost_perfcnt_disable_locked(pfdev, file_priv);
 	mutex_unlock(&perfcnt->lock);
 
 	return ret;
@@ -248,15 +259,16 @@
 	return ret;
 }
 
-void panfrost_perfcnt_close(struct panfrost_file_priv *pfile)
+void panfrost_perfcnt_close(struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *pfile = file_priv->driver_priv;
 	struct panfrost_device *pfdev = pfile->pfdev;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 
 	pm_runtime_get_sync(pfdev->dev);
 	mutex_lock(&perfcnt->lock);
 	if (perfcnt->user == pfile)
-		panfrost_perfcnt_disable_locked(pfdev, pfile);
+		panfrost_perfcnt_disable_locked(pfdev, file_priv);
 	mutex_unlock(&perfcnt->lock);
 	pm_runtime_mark_last_busy(pfdev->dev);
 	pm_runtime_put_autosuspend(pfdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_perfcnt.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_perfcnt.h
@@ -9,7 +9,7 @@
 void panfrost_perfcnt_clean_cache_done(struct panfrost_device *pfdev);
 int panfrost_perfcnt_init(struct panfrost_device *pfdev);
 void panfrost_perfcnt_fini(struct panfrost_device *pfdev);
-void panfrost_perfcnt_close(struct panfrost_file_priv *pfile);
+void panfrost_perfcnt_close(struct drm_file *file_priv);
 int panfrost_ioctl_perfcnt_enable(struct drm_device *dev, void *data,
 				  struct drm_file *file_priv);
 int panfrost_ioctl_perfcnt_dump(struct drm_device *dev, void *data,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/panfrost/panfrost_regs.h
@@ -51,6 +51,10 @@
 #define GPU_STATUS			0x34
 #define   GPU_STATUS_PRFCNT_ACTIVE	BIT(2)
 #define GPU_LATEST_FLUSH_ID		0x38
+#define GPU_PWR_KEY			0x50	/* (WO) Power manager key register */
+#define  GPU_PWR_KEY_UNLOCK		0x2968A819
+#define GPU_PWR_OVERRIDE0		0x54	/* (RW) Power manager override settings */
+#define GPU_PWR_OVERRIDE1		0x58	/* (RW) Power manager override settings */
 #define GPU_FAULT_STATUS		0x3C
 #define GPU_FAULT_ADDRESS_LO		0x40
 #define GPU_FAULT_ADDRESS_HI		0x44
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/qxl/qxl_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/qxl/qxl_cmd.c
@@ -480,9 +480,10 @@
 		return ret;
 
 	ret = qxl_release_reserve_list(release, true);
-	if (ret)
+	if (ret) {
+		qxl_release_free(qdev, release);
 		return ret;
-
+	}
 	cmd = (struct qxl_surface_cmd *)qxl_release_map(qdev, release);
 	cmd->type = QXL_SURFACE_CMD_CREATE;
 	cmd->flags = QXL_SURF_FLAG_KEEP_DATA;
@@ -499,8 +500,8 @@
 	/* no need to add a release to the fence for this surface bo,
 	   since it is only released when we ask to destroy the surface
 	   and it would never signal otherwise */
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 
 	surf->hw_surf_alloc = true;
 	spin_lock(&qdev->surf_id_idr_lock);
@@ -542,9 +543,8 @@
 	cmd->surface_id = id;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
-
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/qxl/qxl_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/qxl/qxl_display.c
@@ -325,6 +325,7 @@
 
 	head.id = i;
 	head.flags = 0;
+	head.surface_id = 0;
 	oldcount = qdev->monitors_config->count;
 	if (crtc->state->active) {
 		struct drm_display_mode *mode = &crtc->mode;
@@ -523,8 +524,8 @@
 	cmd->u.set.visible = 1;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 
 	return ret;
 
@@ -665,8 +666,8 @@
 	cmd->u.position.y = plane->state->crtc_y + fb->hot_y;
 
 	qxl_release_unmap(qdev, release, &cmd->release_info);
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 
 	if (old_cursor_bo != NULL)
 		qxl_bo_unpin(old_cursor_bo);
@@ -713,8 +714,8 @@
 	cmd->type = QXL_CURSOR_HIDE;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 }
 
 static void qxl_update_dumb_head(struct qxl_device *qdev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/qxl/qxl_draw.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/qxl/qxl_draw.c
@@ -209,9 +209,10 @@
 		goto out_release_backoff;
 
 	rects = drawable_set_clipping(qdev, num_clips, clips_bo);
-	if (!rects)
+	if (!rects) {
+		ret = -EINVAL;
 		goto out_release_backoff;
-
+	}
 	drawable = (struct qxl_drawable *)qxl_release_map(qdev, release);
 
 	drawable->clip.type = SPICE_CLIP_TYPE_RECTS;
@@ -242,8 +243,8 @@
 	}
 	qxl_bo_kunmap(clips_bo);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 
 out_release_backoff:
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/qxl/qxl_image.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/qxl/qxl_image.c
@@ -212,7 +212,8 @@
 		break;
 	default:
 		DRM_ERROR("unsupported image bit depth\n");
-		return -EINVAL; /* TODO: cleanup */
+		qxl_bo_kunmap_atomic_page(qdev, image_bo, ptr);
+		return -EINVAL;
 	}
 	image->u.bitmap.flags = QXL_BITMAP_TOP_DOWN;
 	image->u.bitmap.x = width;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/qxl/qxl_ioctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/qxl/qxl_ioctl.c
@@ -261,11 +261,8 @@
 			apply_surf_reloc(qdev, &reloc_info[i]);
 	}
 
+	qxl_release_fence_buffer_objects(release);
 	ret = qxl_push_command_ring_release(qdev, release, cmd->type, true);
-	if (ret)
-		qxl_release_backoff_reserve_list(release);
-	else
-		qxl_release_fence_buffer_objects(release);
 
 out_free_bos:
 out_free_release:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/qxl/qxl_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/qxl/qxl_kms.c
@@ -184,7 +184,7 @@
 
 	if (!qxl_check_device(qdev)) {
 		r = -ENODEV;
-		goto surface_mapping_free;
+		goto rom_unmap;
 	}
 
 	r = qxl_bo_init(qdev);
@@ -218,7 +218,7 @@
 				&(qdev->ram_header->cursor_ring_hdr),
 				sizeof(struct qxl_command),
 				QXL_CURSOR_RING_SIZE,
-				qdev->io_base + QXL_IO_NOTIFY_CMD,
+				qdev->io_base + QXL_IO_NOTIFY_CURSOR,
 				false,
 				&qdev->cursor_event);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/ci_dpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/ci_dpm.c
@@ -4366,7 +4366,7 @@
 					table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
 			}
 			j++;
-			if (j > SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
+			if (j >= SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
 				return -EINVAL;
 
 			if (!pi->mem_gddr5) {
@@ -5578,6 +5578,7 @@
 	if (!rdev->pm.dpm.ps)
 		return -ENOMEM;
 	power_state_offset = (u8 *)state_array->states;
+	rdev->pm.dpm.num_ps = 0;
 	for (i = 0; i < state_array->ucNumEntries; i++) {
 		u8 *idx;
 		power_state = (union pplib_power_state *)power_state_offset;
@@ -5587,10 +5588,8 @@
 		if (!rdev->pm.power_state[i].clock_info)
 			return -EINVAL;
 		ps = kzalloc(sizeof(struct ci_ps), GFP_KERNEL);
-		if (ps == NULL) {
-			kfree(rdev->pm.dpm.ps);
+		if (ps == NULL)
 			return -ENOMEM;
-		}
 		rdev->pm.dpm.ps[i].ps_priv = ps;
 		ci_parse_pplib_non_clock_info(rdev, &rdev->pm.dpm.ps[i],
 					      non_clock_info,
@@ -5612,8 +5611,8 @@
 			k++;
 		}
 		power_state_offset += 2 + power_state->v2.ucNumDPMLevels;
+		rdev->pm.dpm.num_ps = i + 1;
 	}
-	rdev->pm.dpm.num_ps = state_array->ucNumEntries;
 
 	/* fill in the vce power states */
 	for (i = 0; i < RADEON_MAX_VCE_LEVELS; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/cik.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/cik.c
@@ -6969,8 +6969,8 @@
 	}
 
 	/* setup interrupt control */
-	/* XXX this should actually be a bus address, not an MC address. same on older asics */
-	WREG32(INTERRUPT_CNTL2, rdev->ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, rdev->dummy_page.addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	/* IH_DUMMY_RD_OVERRIDE=0 - dummy read disabled with msi, enabled without msi
 	 * IH_DUMMY_RD_OVERRIDE=1 - dummy read controlled by IH_DUMMY_RD_EN
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/ni_dpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/ni_dpm.c
@@ -2128,7 +2128,7 @@
 		if (clk_s & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_SHIFT))
 			ret = -EINVAL;
 
-		if (clk_s & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_SHIFT))
+		if (fb_div & ~(SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_SHIFT))
 			ret = -EINVAL;
 
 		if (clk_v & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKV_SHIFT))
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/r100.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/r100.c
@@ -1826,8 +1826,8 @@
 			track->textures[i].use_pitch = 1;
 		} else {
 			track->textures[i].use_pitch = 0;
-			track->textures[i].width = 1 << ((idx_value >> RADEON_TXFORMAT_WIDTH_SHIFT) & RADEON_TXFORMAT_WIDTH_MASK);
-			track->textures[i].height = 1 << ((idx_value >> RADEON_TXFORMAT_HEIGHT_SHIFT) & RADEON_TXFORMAT_HEIGHT_MASK);
+			track->textures[i].width = 1 << ((idx_value & RADEON_TXFORMAT_WIDTH_MASK) >> RADEON_TXFORMAT_WIDTH_SHIFT);
+			track->textures[i].height = 1 << ((idx_value & RADEON_TXFORMAT_HEIGHT_MASK) >> RADEON_TXFORMAT_HEIGHT_SHIFT);
 		}
 		if (idx_value & RADEON_TXFORMAT_CUBIC_MAP_ENABLE)
 			track->textures[i].tex_coord_type = 2;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/r200.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/r200.c
@@ -476,8 +476,8 @@
 			track->textures[i].use_pitch = 1;
 		} else {
 			track->textures[i].use_pitch = 0;
-			track->textures[i].width = 1 << ((idx_value >> RADEON_TXFORMAT_WIDTH_SHIFT) & RADEON_TXFORMAT_WIDTH_MASK);
-			track->textures[i].height = 1 << ((idx_value >> RADEON_TXFORMAT_HEIGHT_SHIFT) & RADEON_TXFORMAT_HEIGHT_MASK);
+			track->textures[i].width = 1 << ((idx_value & RADEON_TXFORMAT_WIDTH_MASK) >> RADEON_TXFORMAT_WIDTH_SHIFT);
+			track->textures[i].height = 1 << ((idx_value & RADEON_TXFORMAT_HEIGHT_MASK) >> RADEON_TXFORMAT_HEIGHT_SHIFT);
 		}
 		if (idx_value & R200_TXFORMAT_LOOKUP_DISABLE)
 			track->textures[i].lookup_disable = true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/r600.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/r600.c
@@ -3696,8 +3696,8 @@
 	}
 
 	/* setup interrupt control */
-	/* set dummy read address to ring address */
-	WREG32(INTERRUPT_CNTL2, rdev->ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, rdev->dummy_page.addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	/* IH_DUMMY_RD_OVERRIDE=0 - dummy read disabled with msi, enabled without msi
 	 * IH_DUMMY_RD_OVERRIDE=1 - dummy read controlled by IH_DUMMY_RD_EN
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/radeon_bios.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/radeon_bios.c
@@ -108,25 +108,33 @@
 
 static bool radeon_read_platform_bios(struct radeon_device *rdev)
 {
-	uint8_t __iomem *bios;
-	size_t size;
+	phys_addr_t rom = rdev->pdev->rom;
+	size_t romlen = rdev->pdev->romlen;
+	void __iomem *bios;
 
 	rdev->bios = NULL;
 
-	bios = pci_platform_rom(rdev->pdev, &size);
-	if (!bios) {
+	if (!rom || romlen == 0)
 		return false;
-	}
 
-	if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) {
+	rdev->bios = kzalloc(romlen, GFP_KERNEL);
+	if (!rdev->bios)
 		return false;
-	}
-	rdev->bios = kmemdup(bios, size, GFP_KERNEL);
-	if (rdev->bios == NULL) {
-		return false;
-	}
+
+	bios = ioremap(rom, romlen);
+	if (!bios)
+		goto free_bios;
+
+	memcpy_fromio(rdev->bios, bios, romlen);
+	iounmap(bios);
+
+	if (rdev->bios[0] != 0x55 || rdev->bios[1] != 0xaa)
+		goto free_bios;
 
 	return true;
+free_bios:
+	kfree(rdev->bios);
+	return false;
 }
 
 #ifdef CONFIG_ACPI
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/radeon_connectors.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -883,8 +883,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (encoder) {
@@ -1029,8 +1031,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = radeon_best_single_encoder(connector);
@@ -1167,8 +1171,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = radeon_best_single_encoder(connector);
@@ -1251,8 +1257,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (radeon_connector->detected_hpd_without_ddc) {
@@ -1666,8 +1674,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && radeon_check_hpd_status_unchanged(connector)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/radeon_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/radeon_display.c
@@ -127,6 +127,8 @@
 
 	DRM_DEBUG_KMS("%d\n", radeon_crtc->crtc_id);
 
+	msleep(10);
+
 	WREG32(NI_INPUT_CSC_CONTROL + radeon_crtc->crtc_offset,
 	       (NI_INPUT_CSC_GRPH_MODE(NI_INPUT_CSC_BYPASS) |
 		NI_INPUT_CSC_OVL_MODE(NI_INPUT_CSC_BYPASS)));
@@ -629,8 +631,10 @@
 	dev = set->crtc->dev;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_crtc_helper_set_config(set, ctx);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/radeon_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/radeon_drv.c
@@ -37,6 +37,7 @@
 #include <linux/vga_switcheroo.h>
 #include <linux/mmu_notifier.h>
 
+#include <drm/drm_agpsupport.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_helper.h>
@@ -173,12 +174,7 @@
 int radeon_modeset = -1;
 int radeon_dynclks = -1;
 int radeon_r4xx_atom = 0;
-#ifdef __powerpc__
-/* Default to PCI on PowerPC (fdo #95017) */
 int radeon_agpmode = -1;
-#else
-int radeon_agpmode = 0;
-#endif
 int radeon_vram_limit = 0;
 int radeon_gart_size = -1; /* auto */
 int radeon_benchmarking = 0;
@@ -325,6 +321,7 @@
 			    const struct pci_device_id *ent)
 {
 	unsigned long flags = 0;
+	struct drm_device *dev;
 	int ret;
 
 	if (!ent)
@@ -365,7 +362,44 @@
 	if (ret)
 		return ret;
 
-	return drm_get_pci_dev(pdev, ent, &kms_driver);
+	dev = drm_dev_alloc(&kms_driver, &pdev->dev);
+	if (IS_ERR(dev))
+		return PTR_ERR(dev);
+
+	ret = pci_enable_device(pdev);
+	if (ret)
+		goto err_free;
+
+	dev->pdev = pdev;
+#ifdef __alpha__
+	dev->hose = pdev->sysdata;
+#endif
+
+	pci_set_drvdata(pdev, dev);
+
+	if (pci_find_capability(dev->pdev, PCI_CAP_ID_AGP))
+		dev->agp = drm_agp_init(dev);
+	if (dev->agp) {
+		dev->agp->agp_mtrr = arch_phys_wc_add(
+			dev->agp->agp_info.aper_base,
+			dev->agp->agp_info.aper_size *
+			1024 * 1024);
+	}
+
+	ret = drm_dev_register(dev, ent->driver_data);
+	if (ret)
+		goto err_agp;
+
+	return 0;
+
+err_agp:
+	if (dev->agp)
+		arch_phys_wc_del(dev->agp->agp_mtrr);
+	kfree(dev->agp);
+	pci_disable_device(pdev);
+err_free:
+	drm_dev_put(dev);
+	return ret;
 }
 
 static void
@@ -516,8 +550,10 @@
 	long ret;
 	dev = file_priv->minor->dev;
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_ioctl(filp, cmd, arg);
 	
@@ -578,7 +614,7 @@
 
 static struct drm_driver kms_driver = {
 	.driver_features =
-	    DRIVER_USE_AGP | DRIVER_GEM | DRIVER_RENDER,
+	    DRIVER_GEM | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
 	.postclose = radeon_driver_postclose_kms,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/radeon_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/radeon_kms.c
@@ -31,6 +31,7 @@
 #include <linux/uaccess.h>
 #include <linux/vga_switcheroo.h>
 
+#include <drm/drm_agpsupport.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_file.h>
 #include <drm/drm_ioctl.h>
@@ -77,6 +78,11 @@
 	radeon_modeset_fini(rdev);
 	radeon_device_fini(rdev);
 
+	if (dev->agp)
+		arch_phys_wc_del(dev->agp->agp_mtrr);
+	kfree(dev->agp);
+	dev->agp = NULL;
+
 done_free:
 	kfree(rdev);
 	dev->dev_private = NULL;
@@ -632,8 +638,10 @@
 	file_priv->driver_priv = NULL;
 
 	r = pm_runtime_get_sync(dev->dev);
-	if (r < 0)
+	if (r < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return r;
+	}
 
 	/* new gpu have virtual address space support */
 	if (rdev->family >= CHIP_CAYMAN) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/radeon/si.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/radeon/si.c
@@ -5997,8 +5997,8 @@
 	}
 
 	/* setup interrupt control */
-	/* set dummy read address to ring address */
-	WREG32(INTERRUPT_CNTL2, rdev->ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, rdev->dummy_page.addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	/* IH_DUMMY_RD_OVERRIDE=0 - dummy read disabled with msi, enabled without msi
 	 * IH_DUMMY_RD_OVERRIDE=1 - dummy read controlled by IH_DUMMY_RD_EN
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/rcar-du/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/rcar-du/Kconfig
@@ -23,6 +23,7 @@
 config DRM_RCAR_LVDS
 	tristate "R-Car DU LVDS Encoder Support"
 	depends on DRM && DRM_BRIDGE && OF
+	select DRM_KMS_HELPER
 	select DRM_PANEL
 	select OF_FLATTREE
 	select OF_OVERLAY
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/rcar-du/rcar_du_plane.c
@@ -785,13 +785,15 @@
 
 		drm_plane_create_alpha_property(&plane->plane);
 
-		if (type == DRM_PLANE_TYPE_PRIMARY)
-			continue;
-
-		drm_object_attach_property(&plane->plane.base,
-					   rcdu->props.colorkey,
-					   RCAR_DU_COLORKEY_NONE);
-		drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
+		if (type == DRM_PLANE_TYPE_PRIMARY) {
+			drm_plane_create_zpos_immutable_property(&plane->plane,
+								 0);
+		} else {
+			drm_object_attach_property(&plane->plane.base,
+						   rcdu->props.colorkey,
+						   RCAR_DU_COLORKEY_NONE);
+			drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
+		}
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
@@ -392,12 +392,14 @@
 		drm_plane_helper_add(&plane->plane,
 				     &rcar_du_vsp_plane_helper_funcs);
 
-		if (type == DRM_PLANE_TYPE_PRIMARY)
-			continue;
-
-		drm_plane_create_alpha_property(&plane->plane);
-		drm_plane_create_zpos_property(&plane->plane, 1, 1,
-					       vsp->num_planes - 1);
+		if (type == DRM_PLANE_TYPE_PRIMARY) {
+			drm_plane_create_zpos_immutable_property(&plane->plane,
+								 0);
+		} else {
+			drm_plane_create_alpha_property(&plane->plane);
+			drm_plane_create_zpos_property(&plane->plane, 1, 1,
+						       vsp->num_planes - 1);
+		}
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -16,6 +16,7 @@
 #include <linux/of_graph.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
+#include <linux/sys_soc.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -842,8 +843,23 @@
 	return 0;
 }
 
+static const struct rcar_lvds_device_info rcar_lvds_r8a7790es1_info = {
+	.gen = 2,
+	.quirks = RCAR_LVDS_QUIRK_LANES,
+	.pll_setup = rcar_lvds_pll_setup_gen2,
+};
+
+static const struct soc_device_attribute lvds_quirk_matches[] = {
+	{
+		.soc_id = "r8a7790", .revision = "ES1.*",
+		.data = &rcar_lvds_r8a7790es1_info,
+	},
+	{ /* sentinel */ }
+};
+
 static int rcar_lvds_probe(struct platform_device *pdev)
 {
+	const struct soc_device_attribute *attr;
 	struct rcar_lvds *lvds;
 	struct resource *mem;
 	int ret;
@@ -857,6 +873,10 @@
 	lvds->dev = &pdev->dev;
 	lvds->info = of_device_get_match_data(&pdev->dev);
 
+	attr = soc_device_match(lvds_quirk_matches);
+	if (attr)
+		lvds->info = attr->data;
+
 	ret = rcar_lvds_parse_dt(lvds);
 	if (ret < 0)
 		return ret;
@@ -893,12 +913,6 @@
 	.pll_setup = rcar_lvds_pll_setup_gen2,
 };
 
-static const struct rcar_lvds_device_info rcar_lvds_r8a7790_info = {
-	.gen = 2,
-	.quirks = RCAR_LVDS_QUIRK_LANES,
-	.pll_setup = rcar_lvds_pll_setup_gen2,
-};
-
 static const struct rcar_lvds_device_info rcar_lvds_gen3_info = {
 	.gen = 3,
 	.quirks = RCAR_LVDS_QUIRK_PWD,
@@ -930,7 +944,7 @@
 	{ .compatible = "renesas,r8a7744-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a774a1-lvds", .data = &rcar_lvds_gen3_info },
 	{ .compatible = "renesas,r8a774c0-lvds", .data = &rcar_lvds_r8a77990_info },
-	{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_r8a7790_info },
+	{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a7791-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a7793-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a7795-lvds", .data = &rcar_lvds_gen3_info },
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
@@ -325,15 +325,9 @@
 			    void *data)
 {
 	struct rockchip_dp_device *dp = dev_get_drvdata(dev);
-	const struct rockchip_dp_chip_data *dp_data;
 	struct drm_device *drm_dev = data;
 	int ret;
 
-	dp_data = of_device_get_match_data(dev);
-	if (!dp_data)
-		return -ENODEV;
-
-	dp->data = dp_data;
 	dp->drm_dev = drm_dev;
 
 	ret = rockchip_dp_drm_create_encoder(dp);
@@ -344,16 +338,9 @@
 
 	dp->plat_data.encoder = &dp->encoder;
 
-	dp->plat_data.dev_type = dp->data->chip_type;
-	dp->plat_data.power_on_start = rockchip_dp_poweron_start;
-	dp->plat_data.power_off = rockchip_dp_powerdown;
-	dp->plat_data.get_modes = rockchip_dp_get_modes;
-
-	dp->adp = analogix_dp_bind(dev, dp->drm_dev, &dp->plat_data);
-	if (IS_ERR(dp->adp)) {
-		ret = PTR_ERR(dp->adp);
+	ret = analogix_dp_bind(dp->adp, drm_dev);
+	if (ret)
 		goto err_cleanup_encoder;
-	}
 
 	return 0;
 err_cleanup_encoder:
@@ -368,8 +355,6 @@
 
 	analogix_dp_unbind(dp->adp);
 	dp->encoder.funcs->destroy(&dp->encoder);
-
-	dp->adp = ERR_PTR(-ENODEV);
 }
 
 static const struct component_ops rockchip_dp_component_ops = {
@@ -380,10 +365,15 @@
 static int rockchip_dp_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
+	const struct rockchip_dp_chip_data *dp_data;
 	struct drm_panel *panel = NULL;
 	struct rockchip_dp_device *dp;
 	int ret;
 
+	dp_data = of_device_get_match_data(dev);
+	if (!dp_data)
+		return -ENODEV;
+
 	ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &panel, NULL);
 	if (ret < 0)
 		return ret;
@@ -394,7 +384,12 @@
 
 	dp->dev = dev;
 	dp->adp = ERR_PTR(-ENODEV);
+	dp->data = dp_data;
 	dp->plat_data.panel = panel;
+	dp->plat_data.dev_type = dp->data->chip_type;
+	dp->plat_data.power_on_start = rockchip_dp_poweron_start;
+	dp->plat_data.power_off = rockchip_dp_powerdown;
+	dp->plat_data.get_modes = rockchip_dp_get_modes;
 
 	ret = rockchip_dp_of_probe(dp);
 	if (ret < 0)
@@ -402,12 +397,19 @@
 
 	platform_set_drvdata(pdev, dp);
 
+	dp->adp = analogix_dp_probe(dev, &dp->plat_data);
+	if (IS_ERR(dp->adp))
+		return PTR_ERR(dp->adp);
+
 	return component_add(dev, &rockchip_dp_component_ops);
 }
 
 static int rockchip_dp_remove(struct platform_device *pdev)
 {
+	struct rockchip_dp_device *dp = platform_get_drvdata(pdev);
+
 	component_del(&pdev->dev, &rockchip_dp_component_ops);
+	analogix_dp_remove(dp->adp);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1040,10 +1040,41 @@
 				struct drm_display_mode *adjusted_mode)
 {
 	struct vop *vop = to_vop(crtc);
+	unsigned long rate;
 
-	adjusted_mode->clock =
-		DIV_ROUND_UP(clk_round_rate(vop->dclk,
-					    adjusted_mode->clock * 1000), 1000);
+	/*
+	 * Clock craziness.
+	 *
+	 * Key points:
+	 *
+	 * - DRM works in in kHz.
+	 * - Clock framework works in Hz.
+	 * - Rockchip's clock driver picks the clock rate that is the
+	 *   same _OR LOWER_ than the one requested.
+	 *
+	 * Action plan:
+	 *
+	 * 1. When DRM gives us a mode, we should add 999 Hz to it.  That way
+	 *    if the clock we need is 60000001 Hz (~60 MHz) and DRM tells us to
+	 *    make 60000 kHz then the clock framework will actually give us
+	 *    the right clock.
+	 *
+	 *    NOTE: if the PLL (maybe through a divider) could actually make
+	 *    a clock rate 999 Hz higher instead of the one we want then this
+	 *    could be a problem.  Unfortunately there's not much we can do
+	 *    since it's baked into DRM to use kHz.  It shouldn't matter in
+	 *    practice since Rockchip PLLs are controlled by tables and
+	 *    even if there is a divider in the middle I wouldn't expect PLL
+	 *    rates in the table that are just a few kHz different.
+	 *
+	 * 2. Get the clock framework to round the rate for us to tell us
+	 *    what it will actually make.
+	 *
+	 * 3. Store the rounded up rate so that we don't need to worry about
+	 *    this in the actual clk_set_rate().
+	 */
+	rate = clk_round_rate(vop->dclk, adjusted_mode->clock * 1000 + 999);
+	adjusted_mode->clock = DIV_ROUND_UP(rate, 1000);
 
 	return true;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/scheduler/sched_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/scheduler/sched_main.c
@@ -284,10 +284,21 @@
 	unsigned long flags;
 
 	sched = container_of(work, struct drm_gpu_scheduler, work_tdr.work);
+
+	/* Protects against concurrent deletion in drm_sched_get_cleanup_job */
+	spin_lock_irqsave(&sched->job_list_lock, flags);
 	job = list_first_entry_or_null(&sched->ring_mirror_list,
 				       struct drm_sched_job, node);
 
 	if (job) {
+		/*
+		 * Remove the bad job so it cannot be freed by concurrent
+		 * drm_sched_cleanup_jobs. It will be reinserted back after sched->thread
+		 * is parked at which point it's safe.
+		 */
+		list_del_init(&job->node);
+		spin_unlock_irqrestore(&sched->job_list_lock, flags);
+
 		job->sched->ops->timedout_job(job);
 
 		/*
@@ -298,6 +309,8 @@
 			job->sched->ops->free_job(job);
 			sched->free_guilty = false;
 		}
+	} else {
+		spin_unlock_irqrestore(&sched->job_list_lock, flags);
 	}
 
 	spin_lock_irqsave(&sched->job_list_lock, flags);
@@ -370,6 +383,20 @@
 	kthread_park(sched->thread);
 
 	/*
+	 * Reinsert back the bad job here - now it's safe as
+	 * drm_sched_get_cleanup_job cannot race against us and release the
+	 * bad job at this point - we parked (waited for) any in progress
+	 * (earlier) cleanups and drm_sched_get_cleanup_job will not be called
+	 * now until the scheduler thread is unparked.
+	 */
+	if (bad && bad->sched == sched)
+		/*
+		 * Add at the head of the queue to reflect it was the earliest
+		 * job extracted.
+		 */
+		list_add(&bad->node, &sched->ring_mirror_list);
+
+	/*
 	 * Iterate the job list from later to  earlier one and either deactive
 	 * their HW callbacks or remove them from mirror list if they already
 	 * signaled.
@@ -496,8 +523,10 @@
 		fence = sched->ops->run_job(s_job);
 
 		if (IS_ERR_OR_NULL(fence)) {
+			if (IS_ERR(fence))
+				dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
+
 			s_job->s_fence->parent = NULL;
-			dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
 		} else {
 			s_job->s_fence->parent = fence;
 		}
@@ -627,48 +656,48 @@
 
 	trace_drm_sched_process_job(s_fence);
 
+	dma_fence_get(&s_fence->finished);
 	drm_sched_fence_finished(s_fence);
+	dma_fence_put(&s_fence->finished);
 	wake_up_interruptible(&sched->wake_up_worker);
 }
 
 /**
- * drm_sched_cleanup_jobs - destroy finished jobs
+ * drm_sched_get_cleanup_job - fetch the next finished job to be destroyed
  *
  * @sched: scheduler instance
  *
- * Remove all finished jobs from the mirror list and destroy them.
+ * Returns the next finished job from the mirror list (if there is one)
+ * ready for it to be destroyed.
  */
-static void drm_sched_cleanup_jobs(struct drm_gpu_scheduler *sched)
+static struct drm_sched_job *
+drm_sched_get_cleanup_job(struct drm_gpu_scheduler *sched)
 {
+	struct drm_sched_job *job;
 	unsigned long flags;
 
 	/* Don't destroy jobs while the timeout worker is running */
 	if (sched->timeout != MAX_SCHEDULE_TIMEOUT &&
 	    !cancel_delayed_work(&sched->work_tdr))
-		return;
-
+		return NULL;
 
-	while (!list_empty(&sched->ring_mirror_list)) {
-		struct drm_sched_job *job;
+	spin_lock_irqsave(&sched->job_list_lock, flags);
 
-		job = list_first_entry(&sched->ring_mirror_list,
+	job = list_first_entry_or_null(&sched->ring_mirror_list,
 				       struct drm_sched_job, node);
-		if (!dma_fence_is_signaled(&job->s_fence->finished))
-			break;
 
-		spin_lock_irqsave(&sched->job_list_lock, flags);
+	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
 		/* remove job from ring_mirror_list */
 		list_del_init(&job->node);
-		spin_unlock_irqrestore(&sched->job_list_lock, flags);
-
-		sched->ops->free_job(job);
+	} else {
+		job = NULL;
+		/* queue timeout for next job */
+		drm_sched_start_timeout(sched);
 	}
 
-	/* queue timeout for next job */
-	spin_lock_irqsave(&sched->job_list_lock, flags);
-	drm_sched_start_timeout(sched);
 	spin_unlock_irqrestore(&sched->job_list_lock, flags);
 
+	return job;
 }
 
 /**
@@ -708,12 +737,19 @@
 		struct drm_sched_fence *s_fence;
 		struct drm_sched_job *sched_job;
 		struct dma_fence *fence;
+		struct drm_sched_job *cleanup_job = NULL;
 
 		wait_event_interruptible(sched->wake_up_worker,
-					 (drm_sched_cleanup_jobs(sched),
+					 (cleanup_job = drm_sched_get_cleanup_job(sched)) ||
 					 (!drm_sched_blocked(sched) &&
 					  (entity = drm_sched_select_entity(sched))) ||
-					 kthread_should_stop()));
+					 kthread_should_stop());
+
+		if (cleanup_job) {
+			sched->ops->free_job(cleanup_job);
+			/* queue timeout for next job */
+			drm_sched_start_timeout(sched);
+		}
 
 		if (!entity)
 			continue;
@@ -741,8 +777,9 @@
 					  r);
 			dma_fence_put(fence);
 		} else {
+			if (IS_ERR(fence))
+				dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
 
-			dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
 			drm_sched_process_job(NULL, &sched_job->cb);
 		}
 
@@ -814,6 +851,9 @@
 	if (sched->thread)
 		kthread_stop(sched->thread);
 
+	/* Confirm no work left behind accessing device structures */
+	cancel_delayed_work_sync(&sched->work_tdr);
+
 	sched->ready = false;
 }
 EXPORT_SYMBOL(drm_sched_fini);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/selftests/drm_cmdline_selftests.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/selftests/drm_cmdline_selftests.h
@@ -53,6 +53,7 @@
 cmdline_test(drm_cmdline_test_rotate_90)
 cmdline_test(drm_cmdline_test_rotate_180)
 cmdline_test(drm_cmdline_test_rotate_270)
+cmdline_test(drm_cmdline_test_rotate_multiple)
 cmdline_test(drm_cmdline_test_rotate_invalid_val)
 cmdline_test(drm_cmdline_test_rotate_truncated)
 cmdline_test(drm_cmdline_test_hmirror)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
@@ -856,6 +856,17 @@
 	return 0;
 }
 
+static int drm_cmdline_test_rotate_multiple(void *ignored)
+{
+	struct drm_cmdline_mode mode = { };
+
+	FAIL_ON(drm_mode_parse_command_line_for_connector("720x480,rotate=0,rotate=90",
+							  &no_connector,
+							  &mode));
+
+	return 0;
+}
+
 static int drm_cmdline_test_rotate_invalid_val(void *ignored)
 {
 	struct drm_cmdline_mode mode = { };
@@ -888,7 +899,7 @@
 	FAIL_ON(!mode.specified);
 	FAIL_ON(mode.xres != 720);
 	FAIL_ON(mode.yres != 480);
-	FAIL_ON(mode.rotation_reflection != DRM_MODE_REFLECT_X);
+	FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_X));
 
 	FAIL_ON(mode.refresh_specified);
 
@@ -913,7 +924,7 @@
 	FAIL_ON(!mode.specified);
 	FAIL_ON(mode.xres != 720);
 	FAIL_ON(mode.yres != 480);
-	FAIL_ON(mode.rotation_reflection != DRM_MODE_REFLECT_Y);
+	FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_Y));
 
 	FAIL_ON(mode.refresh_specified);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/stm/ltdc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/stm/ltdc.c
@@ -424,9 +424,12 @@
 				    struct drm_crtc_state *old_state)
 {
 	struct ltdc_device *ldev = crtc_to_ltdc(crtc);
+	struct drm_device *ddev = crtc->dev;
 
 	DRM_DEBUG_DRIVER("\n");
 
+	pm_runtime_get_sync(ddev->dev);
+
 	/* Sets the background color value */
 	reg_write(ldev->regs, LTDC_BCCR, BCCR_BCBLACK);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_backend.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_backend.c
@@ -589,8 +589,7 @@
 
 	/* We can't have an alpha plane at the lowest position */
 	if (!backend->quirks->supports_lowest_plane_alpha &&
-	    (plane_states[0]->fb->format->has_alpha ||
-	    (plane_states[0]->alpha != DRM_BLEND_ALPHA_OPAQUE)))
+	    (plane_states[0]->alpha != DRM_BLEND_ALPHA_OPAQUE))
 		return -EINVAL;
 
 	for (i = 1; i < num_planes; i++) {
@@ -986,7 +985,6 @@
 
 static const struct sun4i_backend_quirks sun7i_backend_quirks = {
 	.needs_output_muxing = true,
-	.supports_lowest_plane_alpha = true,
 };
 
 static const struct sun4i_backend_quirks sun8i_a33_backend_quirks = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -85,7 +85,6 @@
 	}
 
 	drm_mode_config_init(drm);
-	drm->mode_config.allow_fb_modifiers = true;
 
 	ret = component_bind_all(drm->dev, drm);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_frontend.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_frontend.c
@@ -407,6 +407,7 @@
 	struct drm_framebuffer *fb = state->fb;
 	const struct drm_format_info *format = fb->format;
 	uint64_t modifier = fb->modifier;
+	unsigned int ch1_phase_idx;
 	u32 out_fmt_val;
 	u32 in_fmt_val, in_mod_val, in_ps_val;
 	unsigned int i;
@@ -442,18 +443,19 @@
 	 * I have no idea what this does exactly, but it seems to be
 	 * related to the scaler FIR filter phase parameters.
 	 */
+	ch1_phase_idx = (format->num_planes > 1) ? 1 : 0;
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH0_HORZPHASE_REG,
-		     frontend->data->ch_phase[0].horzphase);
+		     frontend->data->ch_phase[0]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH1_HORZPHASE_REG,
-		     frontend->data->ch_phase[1].horzphase);
+		     frontend->data->ch_phase[ch1_phase_idx]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH0_VERTPHASE0_REG,
-		     frontend->data->ch_phase[0].vertphase[0]);
+		     frontend->data->ch_phase[0]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH1_VERTPHASE0_REG,
-		     frontend->data->ch_phase[1].vertphase[0]);
+		     frontend->data->ch_phase[ch1_phase_idx]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH0_VERTPHASE1_REG,
-		     frontend->data->ch_phase[0].vertphase[1]);
+		     frontend->data->ch_phase[0]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH1_VERTPHASE1_REG,
-		     frontend->data->ch_phase[1].vertphase[1]);
+		     frontend->data->ch_phase[ch1_phase_idx]);
 
 	/*
 	 * Checking the input format is sufficient since we currently only
@@ -687,30 +689,12 @@
 };
 
 static const struct sun4i_frontend_data sun4i_a10_frontend = {
-	.ch_phase		= {
-		{
-			.horzphase = 0,
-			.vertphase = { 0, 0 },
-		},
-		{
-			.horzphase = 0xfc000,
-			.vertphase = { 0xfc000, 0xfc000 },
-		},
-	},
+	.ch_phase		= { 0x000, 0xfc000 },
 	.has_coef_rdy		= true,
 };
 
 static const struct sun4i_frontend_data sun8i_a33_frontend = {
-	.ch_phase		= {
-		{
-			.horzphase = 0x400,
-			.vertphase = { 0x400, 0x400 },
-		},
-		{
-			.horzphase = 0x400,
-			.vertphase = { 0x400, 0x400 },
-		},
-	},
+	.ch_phase		= { 0x400, 0xfc400 },
 	.has_coef_access_ctrl	= true,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_frontend.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_frontend.h
@@ -115,11 +115,7 @@
 struct sun4i_frontend_data {
 	bool	has_coef_access_ctrl;
 	bool	has_coef_rdy;
-
-	struct {
-		u32	horzphase;
-		u32	vertphase[2];
-	} ch_phase[2];
+	u32	ch_phase[2];
 };
 
 struct sun4i_frontend {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_hdmi.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_hdmi.h
@@ -148,7 +148,7 @@
 #define SUN4I_HDMI_DDC_CMD_IMPLICIT_WRITE	3
 
 #define SUN4I_HDMI_DDC_CLK_REG		0x528
-#define SUN4I_HDMI_DDC_CLK_M(m)			(((m) & 0x7) << 3)
+#define SUN4I_HDMI_DDC_CLK_M(m)			(((m) & 0xf) << 3)
 #define SUN4I_HDMI_DDC_CLK_N(n)			((n) & 0x7)
 
 #define SUN4I_HDMI_DDC_LINE_CTRL_REG	0x540
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c
@@ -33,7 +33,7 @@
 	unsigned long best_rate = 0;
 	u8 best_m = 0, best_n = 0, _m, _n;
 
-	for (_m = 0; _m < 8; _m++) {
+	for (_m = 0; _m < 16; _m++) {
 		for (_n = 0; _n < 8; _n++) {
 			unsigned long tmp_rate;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
@@ -262,9 +262,8 @@
 	struct sun4i_hdmi *hdmi = drm_connector_to_sun4i_hdmi(connector);
 	unsigned long reg;
 
-	if (readl_poll_timeout(hdmi->base + SUN4I_HDMI_HPD_REG, reg,
-			       reg & SUN4I_HDMI_HPD_HIGH,
-			       0, 500000)) {
+	reg = readl(hdmi->base + SUN4I_HDMI_HPD_REG);
+	if (!(reg & SUN4I_HDMI_HPD_HIGH)) {
 		cec_phys_addr_invalidate(hdmi->cec_adap);
 		return connector_status_disconnected;
 	}
@@ -683,8 +682,6 @@
 	struct sun4i_hdmi *hdmi = dev_get_drvdata(dev);
 
 	cec_unregister_adapter(hdmi->cec_adap);
-	drm_connector_cleanup(&hdmi->connector);
-	drm_encoder_cleanup(&hdmi->encoder);
 	i2c_del_adapter(hdmi->i2c);
 	i2c_put_adapter(hdmi->ddc_i2c);
 	clk_disable_unprepare(hdmi->mod_clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -488,7 +488,7 @@
 
 	WARN_ON(!tcon->quirks->has_channel_0);
 
-	tcon->dclk_min_div = 1;
+	tcon->dclk_min_div = tcon->quirks->dclk_min_div;
 	tcon->dclk_max_div = 127;
 	sun4i_tcon0_mode_set_common(tcon, mode);
 
@@ -545,30 +545,13 @@
 	if (info->bus_flags & DRM_BUS_FLAG_DE_LOW)
 		val |= SUN4I_TCON0_IO_POL_DE_NEGATIVE;
 
-	/*
-	 * On A20 and similar SoCs, the only way to achieve Positive Edge
-	 * (Rising Edge), is setting dclk clock phase to 2/3(240°).
-	 * By default TCON works in Negative Edge(Falling Edge),
-	 * this is why phase is set to 0 in that case.
-	 * Unfortunately there's no way to logically invert dclk through
-	 * IO_POL register.
-	 * The only acceptable way to work, triple checked with scope,
-	 * is using clock phase set to 0° for Negative Edge and set to 240°
-	 * for Positive Edge.
-	 * On A33 and similar SoCs there would be a 90° phase option,
-	 * but it divides also dclk by 2.
-	 * Following code is a way to avoid quirks all around TCON
-	 * and DOTCLOCK drivers.
-	 */
-	if (info->bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE)
-		clk_set_phase(tcon->dclk, 240);
-
 	if (info->bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)
-		clk_set_phase(tcon->dclk, 0);
+		val |= SUN4I_TCON0_IO_POL_DCLK_DRIVE_NEGEDGE;
 
 	regmap_update_bits(tcon->regs, SUN4I_TCON0_IO_POL_REG,
 			   SUN4I_TCON0_IO_POL_HSYNC_POSITIVE |
 			   SUN4I_TCON0_IO_POL_VSYNC_POSITIVE |
+			   SUN4I_TCON0_IO_POL_DCLK_DRIVE_NEGEDGE |
 			   SUN4I_TCON0_IO_POL_DE_NEGATIVE,
 			   val);
 
@@ -665,6 +648,30 @@
 		     SUN4I_TCON1_BASIC5_V_SYNC(vsync) |
 		     SUN4I_TCON1_BASIC5_H_SYNC(hsync));
 
+	/* Setup the polarity of multiple signals */
+	if (tcon->quirks->polarity_in_ch0) {
+		val = 0;
+
+		if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+			val |= SUN4I_TCON0_IO_POL_HSYNC_POSITIVE;
+
+		if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			val |= SUN4I_TCON0_IO_POL_VSYNC_POSITIVE;
+
+		regmap_write(tcon->regs, SUN4I_TCON0_IO_POL_REG, val);
+	} else {
+		/* according to vendor driver, this bit must be always set */
+		val = SUN4I_TCON1_IO_POL_UNKNOWN;
+
+		if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+			val |= SUN4I_TCON1_IO_POL_HSYNC_POSITIVE;
+
+		if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			val |= SUN4I_TCON1_IO_POL_VSYNC_POSITIVE;
+
+		regmap_write(tcon->regs, SUN4I_TCON1_IO_POL_REG, val);
+	}
+
 	/* Map output pins to channel 1 */
 	regmap_update_bits(tcon->regs, SUN4I_TCON_GCTL_REG,
 			   SUN4I_TCON_GCTL_IOMAP_MASK,
@@ -1409,14 +1416,18 @@
 	if (IS_ENABLED(CONFIG_DRM_SUN8I_TCON_TOP) &&
 	    encoder->encoder_type == DRM_MODE_ENCODER_TMDS) {
 		ret = sun8i_tcon_top_set_hdmi_src(&pdev->dev, id);
-		if (ret)
+		if (ret) {
+			put_device(&pdev->dev);
 			return ret;
+		}
 	}
 
 	if (IS_ENABLED(CONFIG_DRM_SUN8I_TCON_TOP)) {
 		ret = sun8i_tcon_top_de_config(&pdev->dev, tcon->id, id);
-		if (ret)
+		if (ret) {
+			put_device(&pdev->dev);
 			return ret;
+		}
 	}
 
 	return 0;
@@ -1425,12 +1436,14 @@
 static const struct sun4i_tcon_quirks sun4i_a10_quirks = {
 	.has_channel_0		= true,
 	.has_channel_1		= true,
+	.dclk_min_div		= 4,
 	.set_mux		= sun4i_a10_tcon_set_mux,
 };
 
 static const struct sun4i_tcon_quirks sun5i_a13_quirks = {
 	.has_channel_0		= true,
 	.has_channel_1		= true,
+	.dclk_min_div		= 4,
 	.set_mux		= sun5i_a13_tcon_set_mux,
 };
 
@@ -1439,6 +1452,7 @@
 	.has_channel_1		= true,
 	.has_lvds_alt		= true,
 	.needs_de_be_mux	= true,
+	.dclk_min_div		= 1,
 	.set_mux		= sun6i_tcon_set_mux,
 };
 
@@ -1446,11 +1460,13 @@
 	.has_channel_0		= true,
 	.has_channel_1		= true,
 	.needs_de_be_mux	= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun7i_a20_quirks = {
 	.has_channel_0		= true,
 	.has_channel_1		= true,
+	.dclk_min_div		= 4,
 	/* Same display pipeline structure as A10 */
 	.set_mux		= sun4i_a10_tcon_set_mux,
 };
@@ -1458,11 +1474,13 @@
 static const struct sun4i_tcon_quirks sun8i_a33_quirks = {
 	.has_channel_0		= true,
 	.has_lvds_alt		= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun8i_a83t_lcd_quirks = {
 	.supports_lvds		= true,
 	.has_channel_0		= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun8i_a83t_tv_quirks = {
@@ -1471,16 +1489,19 @@
 
 static const struct sun4i_tcon_quirks sun8i_r40_tv_quirks = {
 	.has_channel_1		= true,
+	.polarity_in_ch0	= true,
 	.set_mux		= sun8i_r40_tcon_tv_set_mux,
 };
 
 static const struct sun4i_tcon_quirks sun8i_v3s_quirks = {
 	.has_channel_0		= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun9i_a80_tcon_lcd_quirks = {
-	.has_channel_0	= true,
-	.needs_edp_reset = true,
+	.has_channel_0		= true,
+	.needs_edp_reset	= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun9i_a80_tcon_tv_quirks = {
@@ -1495,6 +1516,8 @@
 	{ .compatible = "allwinner,sun6i-a31-tcon", .data = &sun6i_a31_quirks },
 	{ .compatible = "allwinner,sun6i-a31s-tcon", .data = &sun6i_a31s_quirks },
 	{ .compatible = "allwinner,sun7i-a20-tcon", .data = &sun7i_a20_quirks },
+	{ .compatible = "allwinner,sun7i-a20-tcon0", .data = &sun7i_a20_quirks },
+	{ .compatible = "allwinner,sun7i-a20-tcon1", .data = &sun7i_a20_quirks },
 	{ .compatible = "allwinner,sun8i-a23-tcon", .data = &sun8i_a33_quirks },
 	{ .compatible = "allwinner,sun8i-a33-tcon", .data = &sun8i_a33_quirks },
 	{ .compatible = "allwinner,sun8i-a83t-tcon-lcd", .data = &sun8i_a83t_lcd_quirks },
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_tcon.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun4i_tcon.h
@@ -113,6 +113,7 @@
 #define SUN4I_TCON0_IO_POL_REG			0x88
 #define SUN4I_TCON0_IO_POL_DCLK_PHASE(phase)		((phase & 3) << 28)
 #define SUN4I_TCON0_IO_POL_DE_NEGATIVE			BIT(27)
+#define SUN4I_TCON0_IO_POL_DCLK_DRIVE_NEGEDGE		BIT(26)
 #define SUN4I_TCON0_IO_POL_HSYNC_POSITIVE		BIT(25)
 #define SUN4I_TCON0_IO_POL_VSYNC_POSITIVE		BIT(24)
 
@@ -153,6 +154,11 @@
 #define SUN4I_TCON1_BASIC5_V_SYNC(height)		(((height) - 1) & 0x3ff)
 
 #define SUN4I_TCON1_IO_POL_REG			0xf0
+/* there is no documentation about this bit */
+#define SUN4I_TCON1_IO_POL_UNKNOWN			BIT(26)
+#define SUN4I_TCON1_IO_POL_HSYNC_POSITIVE		BIT(25)
+#define SUN4I_TCON1_IO_POL_VSYNC_POSITIVE		BIT(24)
+
 #define SUN4I_TCON1_IO_TRI_REG			0xf4
 
 #define SUN4I_TCON_ECC_FIFO_REG			0xf8
@@ -224,6 +230,8 @@
 	bool	needs_de_be_mux; /* sun6i needs mux to select backend */
 	bool    needs_edp_reset; /* a80 edp reset needed for tcon0 access */
 	bool	supports_lvds;   /* Does the TCON support an LVDS output? */
+	bool	polarity_in_ch0; /* some tcon1 channels have polarity bits in tcon0 pol register */
+	u8	dclk_min_div;	/* minimum divider for TCON0 DCLK */
 
 	/* callback to handle tcon muxing options */
 	int	(*set_mux)(struct sun4i_tcon *, const struct drm_encoder *);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -437,9 +437,9 @@
 			     SUN6I_DSI_BURST_LINE_SYNC_POINT(SUN6I_DSI_SYNC_POINT));
 
 		val = SUN6I_DSI_TCON_DRQ_ENABLE_MODE;
-	} else if ((mode->hsync_end - mode->hdisplay) > 20) {
+	} else if ((mode->hsync_start - mode->hdisplay) > 20) {
 		/* Maaaaaagic */
-		u16 drq = (mode->hsync_end - mode->hdisplay) - 20;
+		u16 drq = (mode->hsync_start - mode->hdisplay) - 20;
 
 		drq *= mipi_dsi_pixel_format_to_bpp(device->format);
 		drq /= 32;
@@ -718,7 +718,7 @@
 	struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
 	struct sun6i_dsi *dsi = encoder_to_sun6i_dsi(encoder);
 	struct mipi_dsi_device *device = dsi->device;
-	union phy_configure_opts opts = { 0 };
+	union phy_configure_opts opts = { };
 	struct phy_configure_opts_mipi_dphy *cfg = &opts.mipi_dphy;
 	u16 delay;
 
@@ -867,7 +867,7 @@
 	regmap_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(0),
 		     sun6i_dsi_dcs_build_pkt_hdr(dsi, msg));
 
-	bounce = kzalloc(msg->tx_len + sizeof(crc), GFP_KERNEL);
+	bounce = kzalloc(ALIGN(msg->tx_len + sizeof(crc), 4), GFP_KERNEL);
 	if (!bounce)
 		return -ENOMEM;
 
@@ -878,7 +878,7 @@
 	memcpy((u8 *)bounce + msg->tx_len, &crc, sizeof(crc));
 	len += sizeof(crc);
 
-	regmap_bulk_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(1), bounce, len);
+	regmap_bulk_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(1), bounce, DIV_ROUND_UP(len, 4));
 	regmap_write(dsi->regs, SUN6I_DSI_CMD_CTL_REG, len + 4 - 1);
 	kfree(bounce);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_csc.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun8i_csc.h
@@ -12,7 +12,7 @@
 
 /* VI channel CSC units offsets */
 #define CCSC00_OFFSET 0xAA050
-#define CCSC01_OFFSET 0xFA000
+#define CCSC01_OFFSET 0xFA050
 #define CCSC10_OFFSET 0xA0000
 #define CCSC11_OFFSET 0xF0000
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
@@ -49,11 +49,9 @@
 {
 	/*
 	 * Controller support maximum of 594 MHz, which correlates to
-	 * 4K@60Hz 4:4:4 or RGB. However, for frequencies greater than
-	 * 340 MHz scrambling has to be enabled. Because scrambling is
-	 * not yet implemented, just limit to 340 MHz for now.
+	 * 4K@60Hz 4:4:4 or RGB.
 	 */
-	if (mode->clock > 340000)
+	if (mode->clock > 594000)
 		return MODE_CLOCK_HIGH;
 
 	return MODE_OK;
@@ -209,6 +207,7 @@
 	phy_node = of_parse_phandle(dev->of_node, "phys", 0);
 	if (!phy_node) {
 		dev_err(dev, "Can't found PHY phandle\n");
+		ret = -EINVAL;
 		goto err_disable_clk_tmds;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
@@ -104,29 +104,21 @@
 
 static const struct dw_hdmi_curr_ctrl sun50i_h6_cur_ctr[] = {
 	/* pixelclk    bpp8    bpp10   bpp12 */
-	{ 25175000,  { 0x0000, 0x0000, 0x0000 }, },
 	{ 27000000,  { 0x0012, 0x0000, 0x0000 }, },
-	{ 59400000,  { 0x0008, 0x0008, 0x0008 }, },
-	{ 72000000,  { 0x0008, 0x0008, 0x001b }, },
-	{ 74250000,  { 0x0013, 0x0013, 0x0013 }, },
-	{ 90000000,  { 0x0008, 0x001a, 0x001b }, },
-	{ 118800000, { 0x001b, 0x001a, 0x001b }, },
-	{ 144000000, { 0x001b, 0x001a, 0x0034 }, },
-	{ 180000000, { 0x001b, 0x0033, 0x0034 }, },
-	{ 216000000, { 0x0036, 0x0033, 0x0034 }, },
-	{ 237600000, { 0x0036, 0x0033, 0x001b }, },
-	{ 288000000, { 0x0036, 0x001b, 0x001b }, },
-	{ 297000000, { 0x0019, 0x001b, 0x0019 }, },
-	{ 330000000, { 0x0036, 0x001b, 0x001b }, },
-	{ 594000000, { 0x003f, 0x001b, 0x001b }, },
+	{ 74250000,  { 0x0013, 0x001a, 0x001b }, },
+	{ 148500000, { 0x0019, 0x0033, 0x0034 }, },
+	{ 297000000, { 0x0019, 0x001b, 0x001b }, },
+	{ 594000000, { 0x0010, 0x001b, 0x001b }, },
 	{ ~0UL,      { 0x0000, 0x0000, 0x0000 }, }
 };
 
 static const struct dw_hdmi_phy_config sun50i_h6_phy_config[] = {
 	/*pixelclk   symbol   term   vlev*/
-	{ 74250000,  0x8009, 0x0004, 0x0232},
-	{ 148500000, 0x8029, 0x0004, 0x0273},
-	{ 594000000, 0x8039, 0x0004, 0x014a},
+	{ 27000000,  0x8009, 0x0007, 0x02b0 },
+	{ 74250000,  0x8009, 0x0006, 0x022d },
+	{ 148500000, 0x8029, 0x0006, 0x0270 },
+	{ 297000000, 0x8039, 0x0005, 0x01ab },
+	{ 594000000, 0x8029, 0x0000, 0x008a },
 	{ ~0UL,	     0x0000, 0x0000, 0x0000}
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -107,48 +107,128 @@
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XRGB4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_ABGR4444,
 		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR4444,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XBGR4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_RGBA4444,
 		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA4444,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_RGBX4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_BGRA4444,
 		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA4444,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_BGRX4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_ARGB1555,
 		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB1555,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XRGB1555,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB1555,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_ABGR1555,
 		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR1555,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XBGR1555,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR1555,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_RGBA5551,
 		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA5551,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_RGBX5551,
+		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA5551,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_BGRA5551,
 		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA5551,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_BGRX5551,
+		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA5551,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_ARGB2101010,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB2101010,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_ABGR2101010,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR2101010,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_RGBA1010102,
+		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA1010102,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_BGRA1010102,
+		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA1010102,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_UYVY,
 		.de2_fmt = SUN8I_MIXER_FBFMT_UYVY,
 		.rgb = false,
@@ -197,12 +277,6 @@
 		.csc = SUN8I_CSC_MODE_YUV2RGB,
 	},
 	{
-		.drm_fmt = DRM_FORMAT_YUV444,
-		.de2_fmt = SUN8I_MIXER_FBFMT_RGB888,
-		.rgb = true,
-		.csc = SUN8I_CSC_MODE_YUV2RGB,
-	},
-	{
 		.drm_fmt = DRM_FORMAT_YUV422,
 		.de2_fmt = SUN8I_MIXER_FBFMT_YUV422,
 		.rgb = false,
@@ -221,12 +295,6 @@
 		.csc = SUN8I_CSC_MODE_YUV2RGB,
 	},
 	{
-		.drm_fmt = DRM_FORMAT_YVU444,
-		.de2_fmt = SUN8I_MIXER_FBFMT_RGB888,
-		.rgb = true,
-		.csc = SUN8I_CSC_MODE_YVU2RGB,
-	},
-	{
 		.drm_fmt = DRM_FORMAT_YVU422,
 		.de2_fmt = SUN8I_MIXER_FBFMT_YUV422,
 		.rgb = false,
@@ -244,6 +312,18 @@
 		.rgb = false,
 		.csc = SUN8I_CSC_MODE_YVU2RGB,
 	},
+	{
+		.drm_fmt = DRM_FORMAT_P010,
+		.de2_fmt = SUN8I_MIXER_FBFMT_P010_YUV,
+		.rgb = false,
+		.csc = SUN8I_CSC_MODE_YUV2RGB,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_P210,
+		.de2_fmt = SUN8I_MIXER_FBFMT_P210_YUV,
+		.rgb = false,
+		.csc = SUN8I_CSC_MODE_YUV2RGB,
+	},
 };
 
 const struct de2_fmt_info *sun8i_mixer_format_info(u32 format)
@@ -316,7 +396,7 @@
 	.reg_bits	= 32,
 	.val_bits	= 32,
 	.reg_stride	= 4,
-	.max_register	= 0xbfffc, /* guessed */
+	.max_register	= 0xffffc, /* guessed */
 };
 
 static int sun8i_mixer_of_get_id(struct device_node *node)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_mixer.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun8i_mixer.h
@@ -93,6 +93,10 @@
 #define SUN8I_MIXER_FBFMT_ABGR1555	17
 #define SUN8I_MIXER_FBFMT_RGBA5551	18
 #define SUN8I_MIXER_FBFMT_BGRA5551	19
+#define SUN8I_MIXER_FBFMT_ARGB2101010	20
+#define SUN8I_MIXER_FBFMT_ABGR2101010	21
+#define SUN8I_MIXER_FBFMT_RGBA1010102	22
+#define SUN8I_MIXER_FBFMT_BGRA1010102	23
 
 #define SUN8I_MIXER_FBFMT_YUYV		0
 #define SUN8I_MIXER_FBFMT_UYVY		1
@@ -109,6 +113,13 @@
 /* format 12 is semi-planar YUV411 UVUV */
 /* format 13 is semi-planar YUV411 VUVU */
 #define SUN8I_MIXER_FBFMT_YUV411	14
+/* format 15 doesn't exist */
+/* format 16 is P010 YVU */
+#define SUN8I_MIXER_FBFMT_P010_YUV	17
+/* format 18 is P210 YVU */
+#define SUN8I_MIXER_FBFMT_P210_YUV	19
+/* format 20 is packed YVU444 10-bit */
+/* format 21 is packed YUV444 10-bit */
 
 /*
  * Sub-engines listed bellow are unused for now. The EN registers are here only
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
@@ -398,24 +398,66 @@
 };
 
 /*
- * While all RGB formats are supported, VI planes don't support
- * alpha blending, so there is no point having formats with alpha
- * channel if their opaque analog exist.
+ * While DE2 VI layer supports same RGB formats as UI layer, alpha
+ * channel is ignored. This structure lists all unique variants
+ * where alpha channel is replaced with "don't care" (X) channel.
  */
 static const u32 sun8i_vi_layer_formats[] = {
+	DRM_FORMAT_BGR565,
+	DRM_FORMAT_BGR888,
+	DRM_FORMAT_BGRX4444,
+	DRM_FORMAT_BGRX5551,
+	DRM_FORMAT_BGRX8888,
+	DRM_FORMAT_RGB565,
+	DRM_FORMAT_RGB888,
+	DRM_FORMAT_RGBX4444,
+	DRM_FORMAT_RGBX5551,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_XBGR1555,
+	DRM_FORMAT_XBGR4444,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_XRGB1555,
+	DRM_FORMAT_XRGB4444,
+	DRM_FORMAT_XRGB8888,
+
+	DRM_FORMAT_NV16,
+	DRM_FORMAT_NV12,
+	DRM_FORMAT_NV21,
+	DRM_FORMAT_NV61,
+	DRM_FORMAT_UYVY,
+	DRM_FORMAT_VYUY,
+	DRM_FORMAT_YUYV,
+	DRM_FORMAT_YVYU,
+	DRM_FORMAT_YUV411,
+	DRM_FORMAT_YUV420,
+	DRM_FORMAT_YUV422,
+	DRM_FORMAT_YVU411,
+	DRM_FORMAT_YVU420,
+	DRM_FORMAT_YVU422,
+};
+
+static const u32 sun8i_vi_layer_de3_formats[] = {
 	DRM_FORMAT_ABGR1555,
+	DRM_FORMAT_ABGR2101010,
 	DRM_FORMAT_ABGR4444,
+	DRM_FORMAT_ABGR8888,
 	DRM_FORMAT_ARGB1555,
+	DRM_FORMAT_ARGB2101010,
 	DRM_FORMAT_ARGB4444,
+	DRM_FORMAT_ARGB8888,
 	DRM_FORMAT_BGR565,
 	DRM_FORMAT_BGR888,
+	DRM_FORMAT_BGRA1010102,
 	DRM_FORMAT_BGRA5551,
 	DRM_FORMAT_BGRA4444,
+	DRM_FORMAT_BGRA8888,
 	DRM_FORMAT_BGRX8888,
 	DRM_FORMAT_RGB565,
 	DRM_FORMAT_RGB888,
+	DRM_FORMAT_RGBA1010102,
 	DRM_FORMAT_RGBA4444,
 	DRM_FORMAT_RGBA5551,
+	DRM_FORMAT_RGBA8888,
 	DRM_FORMAT_RGBX8888,
 	DRM_FORMAT_XBGR8888,
 	DRM_FORMAT_XRGB8888,
@@ -424,6 +466,8 @@
 	DRM_FORMAT_NV12,
 	DRM_FORMAT_NV21,
 	DRM_FORMAT_NV61,
+	DRM_FORMAT_P010,
+	DRM_FORMAT_P210,
 	DRM_FORMAT_UYVY,
 	DRM_FORMAT_VYUY,
 	DRM_FORMAT_YUYV,
@@ -431,11 +475,9 @@
 	DRM_FORMAT_YUV411,
 	DRM_FORMAT_YUV420,
 	DRM_FORMAT_YUV422,
-	DRM_FORMAT_YUV444,
 	DRM_FORMAT_YVU411,
 	DRM_FORMAT_YVU420,
 	DRM_FORMAT_YVU422,
-	DRM_FORMAT_YVU444,
 };
 
 struct sun8i_vi_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
@@ -443,19 +485,27 @@
 					       int index)
 {
 	u32 supported_encodings, supported_ranges;
+	unsigned int plane_cnt, format_count;
 	struct sun8i_vi_layer *layer;
-	unsigned int plane_cnt;
+	const u32 *formats;
 	int ret;
 
 	layer = devm_kzalloc(drm->dev, sizeof(*layer), GFP_KERNEL);
 	if (!layer)
 		return ERR_PTR(-ENOMEM);
 
+	if (mixer->cfg->is_de3) {
+		formats = sun8i_vi_layer_de3_formats;
+		format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats);
+	} else {
+		formats = sun8i_vi_layer_formats;
+		format_count = ARRAY_SIZE(sun8i_vi_layer_formats);
+	}
+
 	/* possible crtcs are set later */
 	ret = drm_universal_plane_init(drm, &layer->plane, 0,
 				       &sun8i_vi_layer_funcs,
-				       sun8i_vi_layer_formats,
-				       ARRAY_SIZE(sun8i_vi_layer_formats),
+				       formats, format_count,
 				       NULL, DRM_PLANE_TYPE_OVERLAY, NULL);
 	if (ret) {
 		dev_err(drm->dev, "Couldn't initialize layer\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/tegra/drm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/tegra/drm.c
@@ -201,19 +201,19 @@
 	if (tegra->hub)
 		tegra_display_hub_cleanup(tegra->hub);
 device:
-	host1x_device_exit(device);
-fbdev:
-	drm_kms_helper_poll_fini(drm);
-	tegra_drm_fb_free(drm);
-config:
-	drm_mode_config_cleanup(drm);
-
 	if (tegra->domain) {
 		mutex_destroy(&tegra->mm_lock);
 		drm_mm_takedown(&tegra->mm);
 		put_iova_domain(&tegra->carveout.domain);
 		iova_cache_put();
 	}
+
+	host1x_device_exit(device);
+fbdev:
+	drm_kms_helper_poll_fini(drm);
+	tegra_drm_fb_free(drm);
+config:
+	drm_mode_config_cleanup(drm);
 domain:
 	if (tegra->domain)
 		iommu_domain_free(tegra->domain);
@@ -256,7 +256,7 @@
 	if (!fpriv)
 		return -ENOMEM;
 
-	idr_init(&fpriv->contexts);
+	idr_init_base(&fpriv->contexts, 1);
 	mutex_init(&fpriv->lock);
 	filp->driver_priv = fpriv;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/tegra/hub.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/tegra/hub.c
@@ -141,7 +141,9 @@
 	for (i = 0; i < hub->soc->num_wgrps; i++) {
 		struct tegra_windowgroup *wgrp = &hub->wgrps[i];
 
-		tegra_windowgroup_enable(wgrp);
+		/* Skip orphaned window group whose parent DC is disabled */
+		if (wgrp->parent)
+			tegra_windowgroup_enable(wgrp);
 	}
 
 	return 0;
@@ -158,7 +160,9 @@
 	for (i = 0; i < hub->soc->num_wgrps; i++) {
 		struct tegra_windowgroup *wgrp = &hub->wgrps[i];
 
-		tegra_windowgroup_disable(wgrp);
+		/* Skip orphaned window group whose parent DC is disabled */
+		if (wgrp->parent)
+			tegra_windowgroup_disable(wgrp);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/tegra/sor.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/tegra/sor.c
@@ -2899,6 +2899,7 @@
 		if (err < 0) {
 			dev_err(sor->dev, "failed to deassert SOR reset: %d\n",
 				err);
+			clk_disable_unprepare(sor->clk);
 			return err;
 		}
 
@@ -2906,12 +2907,17 @@
 	}
 
 	err = clk_prepare_enable(sor->clk_safe);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(sor->clk);
 		return err;
+	}
 
 	err = clk_prepare_enable(sor->clk_dp);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(sor->clk_safe);
+		clk_disable_unprepare(sor->clk);
 		return err;
+	}
 
 	/*
 	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
@@ -3200,6 +3206,11 @@
 		 * earlier
 		 */
 		sor->pad = TEGRA_IO_PAD_HDMI_DP0 + sor->index;
+	} else {
+		if (sor->soc->supports_edp)
+			sor->index = 0;
+		else
+			sor->index = 1;
 	}
 
 	err = of_property_read_u32_array(np, "nvidia,xbar-cfg", xbar_cfg, 5);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -143,12 +143,16 @@
 	int i;
 
 	for (i = 0; i < timings->num_timings; i++) {
-		struct drm_display_mode *mode = drm_mode_create(dev);
+		struct drm_display_mode *mode;
 		struct videomode vm;
 
 		if (videomode_from_timings(timings, &vm, i))
 			break;
 
+		mode = drm_mode_create(dev);
+		if (!mode)
+			break;
+
 		drm_display_mode_from_videomode(&vm, mode);
 
 		mode->type = DRM_MODE_TYPE_DRIVER;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/ttm/ttm_bo.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/ttm/ttm_bo.c
@@ -517,8 +517,10 @@
 
 		dma_resv_unlock(bo->base.resv);
 	}
-	if (bo->base.resv != &bo->base._resv)
+	if (bo->base.resv != &bo->base._resv) {
+		ttm_bo_flush_all_fences(bo);
 		dma_resv_unlock(&bo->base._resv);
+	}
 
 error:
 	kref_get(&bo->list_kref);
@@ -759,7 +761,7 @@
 	/* Don't evict this BO if it's outside of the
 	 * requested placement range
 	 */
-	if (place->fpfn >= (bo->mem.start + bo->mem.size) ||
+	if (place->fpfn >= (bo->mem.start + bo->mem.num_pages) ||
 	    (place->lpfn && place->lpfn <= bo->mem.start))
 		return false;
 
@@ -926,7 +928,8 @@
  */
 static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo,
 				 struct ttm_mem_type_manager *man,
-				 struct ttm_mem_reg *mem)
+				 struct ttm_mem_reg *mem,
+				 bool no_wait_gpu)
 {
 	struct dma_fence *fence;
 	int ret;
@@ -935,19 +938,24 @@
 	fence = dma_fence_get(man->move);
 	spin_unlock(&man->move_lock);
 
-	if (fence) {
-		dma_resv_add_shared_fence(bo->base.resv, fence);
+	if (!fence)
+		return 0;
 
-		ret = dma_resv_reserve_shared(bo->base.resv, 1);
-		if (unlikely(ret)) {
-			dma_fence_put(fence);
-			return ret;
-		}
+	if (no_wait_gpu) {
+		dma_fence_put(fence);
+		return -EBUSY;
+	}
+
+	dma_resv_add_shared_fence(bo->base.resv, fence);
 
-		dma_fence_put(bo->moving);
-		bo->moving = fence;
+	ret = dma_resv_reserve_shared(bo->base.resv, 1);
+	if (unlikely(ret)) {
+		dma_fence_put(fence);
+		return ret;
 	}
 
+	dma_fence_put(bo->moving);
+	bo->moving = fence;
 	return 0;
 }
 
@@ -978,7 +986,7 @@
 			return ret;
 	} while (1);
 
-	return ttm_bo_add_move_fence(bo, man, mem);
+	return ttm_bo_add_move_fence(bo, man, mem, ctx->no_wait_gpu);
 }
 
 static uint32_t ttm_bo_select_caching(struct ttm_mem_type_manager *man,
@@ -1120,14 +1128,18 @@
 		if (unlikely(ret))
 			goto error;
 
-		if (mem->mm_node) {
-			ret = ttm_bo_add_move_fence(bo, man, mem);
-			if (unlikely(ret)) {
-				(*man->func->put_node)(man, mem);
-				goto error;
-			}
-			return 0;
+		if (!mem->mm_node)
+			continue;
+
+		ret = ttm_bo_add_move_fence(bo, man, mem, ctx->no_wait_gpu);
+		if (unlikely(ret)) {
+			(*man->func->put_node)(man, mem);
+			if (ret == -EBUSY)
+				continue;
+
+			goto error;
 		}
+		return 0;
 	}
 
 	for (i = 0; i < placement->num_busy_placement; ++i) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -358,8 +358,10 @@
 static int ttm_bo_vm_access(struct vm_area_struct *vma, unsigned long addr,
 			    void *buf, int len, int write)
 {
-	unsigned long offset = (addr) - vma->vm_start;
 	struct ttm_buffer_object *bo = vma->vm_private_data;
+	unsigned long offset = (addr) - vma->vm_start +
+		((vma->vm_pgoff - drm_vma_node_start(&bo->base.vma_node))
+		 << PAGE_SHIFT);
 	int ret;
 
 	if (len < 1 || (offset + len) >> PAGE_SHIFT > bo->num_pages)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/ttm/ttm_tt.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/ttm/ttm_tt.c
@@ -241,7 +241,6 @@
 	ttm_tt_init_fields(ttm, bo, page_flags);
 
 	if (ttm_tt_alloc_page_directory(ttm)) {
-		ttm_tt_destroy(ttm);
 		pr_err("Failed allocating page table\n");
 		return -ENOMEM;
 	}
@@ -265,7 +264,6 @@
 
 	INIT_LIST_HEAD(&ttm_dma->pages_list);
 	if (ttm_dma_tt_alloc_page_directory(ttm_dma)) {
-		ttm_tt_destroy(ttm);
 		pr_err("Failed allocating page table\n");
 		return -ENOMEM;
 	}
@@ -287,7 +285,6 @@
 	else
 		ret = ttm_dma_tt_alloc_page_directory(ttm_dma);
 	if (ret) {
-		ttm_tt_destroy(ttm);
 		pr_err("Failed allocating page table\n");
 		return -ENOMEM;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/tve200/tve200_display.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/tve200/tve200_display.c
@@ -14,6 +14,7 @@
 #include <linux/version.h>
 #include <linux/dma-buf.h>
 #include <linux/of_graph.h>
+#include <linux/delay.h>
 
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_fourcc.h>
@@ -130,9 +131,25 @@
 	struct drm_connector *connector = priv->connector;
 	u32 format = fb->format->format;
 	u32 ctrl1 = 0;
+	int retries;
 
 	clk_prepare_enable(priv->clk);
 
+	/* Reset the TVE200 and wait for it to come back online */
+	writel(TVE200_CTRL_4_RESET, priv->regs + TVE200_CTRL_4);
+	for (retries = 0; retries < 5; retries++) {
+		usleep_range(30000, 50000);
+		if (readl(priv->regs + TVE200_CTRL_4) & TVE200_CTRL_4_RESET)
+			continue;
+		else
+			break;
+	}
+	if (retries == 5 &&
+	    readl(priv->regs + TVE200_CTRL_4) & TVE200_CTRL_4_RESET) {
+		dev_err(drm->dev, "can't get hardware out of reset\n");
+		return;
+	}
+
 	/* Function 1 */
 	ctrl1 |= TVE200_CTRL_CSMODE;
 	/* Interlace mode for CCIR656: parameterize? */
@@ -230,8 +247,9 @@
 
 	drm_crtc_vblank_off(crtc);
 
-	/* Disable and Power Down */
+	/* Disable put into reset and Power Down */
 	writel(0, priv->regs + TVE200_CTRL);
+	writel(TVE200_CTRL_4_RESET, priv->regs + TVE200_CTRL_4);
 
 	clk_disable_unprepare(priv->clk);
 }
@@ -279,6 +297,8 @@
 	struct drm_device *drm = crtc->dev;
 	struct tve200_drm_dev_private *priv = drm->dev_private;
 
+	/* Clear any IRQs and enable */
+	writel(0xFF, priv->regs + TVE200_INT_CLR);
 	writel(TVE200_INT_V_STATUS, priv->regs + TVE200_INT_EN);
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/tve200/tve200_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/tve200/tve200_drv.c
@@ -210,8 +210,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		ret = -EINVAL;
+	if (irq < 0) {
+		ret = irq;
 		goto clk_disable;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vc4/vc4_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vc4/vc4_drv.c
@@ -309,6 +309,7 @@
 	component_unbind_all(dev, drm);
 gem_destroy:
 	vc4_gem_destroy(drm);
+	drm_mode_config_cleanup(drm);
 	vc4_bo_cache_destroy(drm);
 dev_put:
 	drm_dev_put(drm);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -681,11 +681,23 @@
 vc4_hdmi_encoder_mode_valid(struct drm_encoder *crtc,
 			    const struct drm_display_mode *mode)
 {
-	/* HSM clock must be 108% of the pixel clock.  Additionally,
-	 * the AXI clock needs to be at least 25% of pixel clock, but
-	 * HSM ends up being the limiting factor.
+	/*
+	 * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must
+	 * be faster than pixel clock, infinitesimally faster, tested in
+	 * simulation. Otherwise, exact value is unimportant for HDMI
+	 * operation." This conflicts with bcm2835's vc4 documentation, which
+	 * states HSM's clock has to be at least 108% of the pixel clock.
+	 *
+	 * Real life tests reveal that vc4's firmware statement holds up, and
+	 * users are able to use pixel clocks closer to HSM's, namely for
+	 * 1920x1200@60Hz. So it was decided to have leave a 1% margin between
+	 * both clocks. Which, for RPi0-3 implies a maximum pixel clock of
+	 * 162MHz.
+	 *
+	 * Additionally, the AXI clock needs to be at least 25% of
+	 * pixel clock, but HSM ends up being the limiting factor.
 	 */
-	if (mode->clock > HSM_CLOCK_FREQ / (1000 * 108 / 100))
+	if (mode->clock > HSM_CLOCK_FREQ / (1000 * 101 / 100))
 		return MODE_CLOCK_HIGH;
 
 	return MODE_OK;
@@ -1113,6 +1125,7 @@
 	card->num_links = 1;
 	card->name = "vc4-hdmi";
 	card->dev = dev;
+	card->owner = THIS_MODULE;
 
 	/*
 	 * Be careful, snd_soc_register_card() calls dev_set_drvdata() and
@@ -1285,6 +1298,9 @@
 
 static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
 {
+#ifdef CONFIG_DRM_VC4_HDMI_CEC
+	struct cec_connector_info conn_info;
+#endif
 	struct platform_device *pdev = to_platform_device(dev);
 	struct drm_device *drm = dev_get_drvdata(master);
 	struct vc4_dev *vc4 = drm->dev_private;
@@ -1403,13 +1419,15 @@
 #ifdef CONFIG_DRM_VC4_HDMI_CEC
 	hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
 					      vc4, "vc4",
-					      CEC_CAP_TRANSMIT |
-					      CEC_CAP_LOG_ADDRS |
-					      CEC_CAP_PASSTHROUGH |
-					      CEC_CAP_RC, 1);
+					      CEC_CAP_DEFAULTS |
+					      CEC_CAP_CONNECTOR_INFO, 1);
 	ret = PTR_ERR_OR_ZERO(hdmi->cec_adap);
 	if (ret < 0)
 		goto err_destroy_conn;
+
+	cec_fill_conn_info_from_drm(&conn_info, hdmi->connector);
+	cec_s_conn_info(hdmi->cec_adap, &conn_info);
+
 	HDMI_WRITE(VC4_HDMI_CPU_MASK_SET, 0xffffffff);
 	value = HDMI_READ(VC4_HDMI_CEC_CNTRL_1);
 	value &= ~VC4_HDMI_CEC_DIV_CLK_CNT_MASK;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vc4/vc4_plane.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vc4/vc4_plane.c
@@ -205,7 +205,7 @@
 	__drm_atomic_helper_plane_reset(plane, &vc4_state->base);
 }
 
-static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val)
+static void vc4_dlist_counter_increment(struct vc4_plane_state *vc4_state)
 {
 	if (vc4_state->dlist_count == vc4_state->dlist_size) {
 		u32 new_size = max(4u, vc4_state->dlist_count * 2);
@@ -220,7 +220,15 @@
 		vc4_state->dlist_size = new_size;
 	}
 
-	vc4_state->dlist[vc4_state->dlist_count++] = val;
+	vc4_state->dlist_count++;
+}
+
+static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val)
+{
+	unsigned int idx = vc4_state->dlist_count;
+
+	vc4_dlist_counter_increment(vc4_state);
+	vc4_state->dlist[idx] = val;
 }
 
 /* Returns the scl0/scl1 field based on whether the dimensions need to
@@ -871,8 +879,10 @@
 		 * be set when calling vc4_plane_allocate_lbm().
 		 */
 		if (vc4_state->y_scaling[0] != VC4_SCALING_NONE ||
-		    vc4_state->y_scaling[1] != VC4_SCALING_NONE)
-			vc4_state->lbm_offset = vc4_state->dlist_count++;
+		    vc4_state->y_scaling[1] != VC4_SCALING_NONE) {
+			vc4_state->lbm_offset = vc4_state->dlist_count;
+			vc4_dlist_counter_increment(vc4_state);
+		}
 
 		if (num_planes > 1) {
 			/* Emit Cb/Cr as channel 0 and Y as channel
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vgem/vgem_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vgem/vgem_drv.c
@@ -196,9 +196,10 @@
 		return ERR_CAST(obj);
 
 	ret = drm_gem_handle_create(file, &obj->base, handle);
-	drm_gem_object_put_unlocked(&obj->base);
-	if (ret)
+	if (ret) {
+		drm_gem_object_put_unlocked(&obj->base);
 		return ERR_PTR(ret);
+	}
 
 	return &obj->base;
 }
@@ -221,35 +222,11 @@
 	args->size = gem_object->size;
 	args->pitch = pitch;
 
-	DRM_DEBUG("Created object of size %lld\n", size);
+	drm_gem_object_put_unlocked(gem_object);
 
-	return 0;
-}
-
-static int vgem_gem_dumb_map(struct drm_file *file, struct drm_device *dev,
-			     uint32_t handle, uint64_t *offset)
-{
-	struct drm_gem_object *obj;
-	int ret;
+	DRM_DEBUG("Created object of size %llu\n", args->size);
 
-	obj = drm_gem_object_lookup(file, handle);
-	if (!obj)
-		return -ENOENT;
-
-	if (!obj->filp) {
-		ret = -EINVAL;
-		goto unref;
-	}
-
-	ret = drm_gem_create_mmap_offset(obj);
-	if (ret)
-		goto unref;
-
-	*offset = drm_vma_node_offset_addr(&obj->vma_node);
-unref:
-	drm_gem_object_put_unlocked(obj);
-
-	return ret;
+	return 0;
 }
 
 static struct drm_ioctl_desc vgem_ioctls[] = {
@@ -445,7 +422,6 @@
 	.fops				= &vgem_driver_fops,
 
 	.dumb_create			= vgem_gem_dumb_create,
-	.dumb_map_offset		= vgem_gem_dumb_map,
 
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -96,8 +96,10 @@
 					 vgdev->capsets[i].id > 0, 5 * HZ);
 		if (ret == 0) {
 			DRM_ERROR("timed out waiting for cap set %d\n", i);
+			spin_lock(&vgdev->display_info_lock);
 			kfree(vgdev->capsets);
 			vgdev->capsets = NULL;
+			spin_unlock(&vgdev->display_info_lock);
 			return;
 		}
 		DRM_INFO("cap set %d: id %d, max-version %d, max-size %d\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_object.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -23,38 +23,44 @@
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/moduleparam.h>
+
 #include <drm/ttm/ttm_execbuf_util.h>
 
 #include "virtgpu_drv.h"
 
+static int virtio_gpu_virglrenderer_workaround = 1;
+module_param_named(virglhack, virtio_gpu_virglrenderer_workaround, int, 0400);
+
 static int virtio_gpu_resource_id_get(struct virtio_gpu_device *vgdev,
 				       uint32_t *resid)
 {
-#if 0
-	int handle = ida_alloc(&vgdev->resource_ida, GFP_KERNEL);
-
-	if (handle < 0)
-		return handle;
-#else
-	static int handle;
-
-	/*
-	 * FIXME: dirty hack to avoid re-using IDs, virglrenderer
-	 * can't deal with that.  Needs fixing in virglrenderer, also
-	 * should figure a better way to handle that in the guest.
-	 */
-	handle++;
-#endif
-
-	*resid = handle + 1;
+	if (virtio_gpu_virglrenderer_workaround) {
+		/*
+		 * Hack to avoid re-using resource IDs.
+		 *
+		 * virglrenderer versions up to (and including) 0.7.0
+		 * can't deal with that.  virglrenderer commit
+		 * "f91a9dd35715 Fix unlinking resources from hash
+		 * table." (Feb 2019) fixes the bug.
+		 */
+		static atomic_t seqno = ATOMIC_INIT(0);
+		int handle = atomic_inc_return(&seqno);
+		*resid = handle + 1;
+	} else {
+		int handle = ida_alloc(&vgdev->resource_ida, GFP_KERNEL);
+		if (handle < 0)
+			return handle;
+		*resid = handle + 1;
+	}
 	return 0;
 }
 
 static void virtio_gpu_resource_id_put(struct virtio_gpu_device *vgdev, uint32_t id)
 {
-#if 0
-	ida_free(&vgdev->resource_ida, id - 1);
-#endif
+	if (!virtio_gpu_virglrenderer_workaround) {
+		ida_free(&vgdev->resource_ida, id - 1);
+	}
 }
 
 static void virtio_gpu_ttm_bo_destroy(struct ttm_buffer_object *tbo)
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -572,9 +572,13 @@
 	int i = le32_to_cpu(cmd->capset_index);
 
 	spin_lock(&vgdev->display_info_lock);
-	vgdev->capsets[i].id = le32_to_cpu(resp->capset_id);
-	vgdev->capsets[i].max_version = le32_to_cpu(resp->capset_max_version);
-	vgdev->capsets[i].max_size = le32_to_cpu(resp->capset_max_size);
+	if (vgdev->capsets) {
+		vgdev->capsets[i].id = le32_to_cpu(resp->capset_id);
+		vgdev->capsets[i].max_version = le32_to_cpu(resp->capset_max_version);
+		vgdev->capsets[i].max_size = le32_to_cpu(resp->capset_max_size);
+	} else {
+		DRM_ERROR("invalid capset memory.");
+	}
 	spin_unlock(&vgdev->display_info_lock);
 	wake_up(&vgdev->resp_wq);
 }
@@ -988,8 +992,9 @@
 	}
 
 	/* gets freed when the ring has consumed it */
-	ents = kmalloc_array(nents, sizeof(struct virtio_gpu_mem_entry),
-			     GFP_KERNEL);
+	ents = kvmalloc_array(nents,
+			      sizeof(struct virtio_gpu_mem_entry),
+			      GFP_KERNEL);
 	if (!ents) {
 		DRM_ERROR("failed to allocate ent list\n");
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vkms/vkms_composer.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vkms/vkms_composer.c
@@ -33,7 +33,7 @@
 				     + (i * composer->pitch)
 				     + (j * composer->cpp);
 			/* XRGB format ignores Alpha channel */
-			memset(vaddr_out + src_offset + 24, 0,  8);
+			bitmap_clear(vaddr_out + src_offset, 24, 8);
 			crc = crc32_le(crc, vaddr_out + src_offset,
 				       sizeof(u32));
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vkms/vkms_drv.h
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vkms/vkms_drv.h
@@ -121,11 +121,6 @@
 				  enum drm_plane_type type, int index);
 
 /* Gem stuff */
-struct drm_gem_object *vkms_gem_create(struct drm_device *dev,
-				       struct drm_file *file,
-				       u32 *handle,
-				       u64 size);
-
 vm_fault_t vkms_gem_fault(struct vm_fault *vmf);
 
 int vkms_dumb_create(struct drm_file *file, struct drm_device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vkms/vkms_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vkms/vkms_gem.c
@@ -95,10 +95,10 @@
 	return ret;
 }
 
-struct drm_gem_object *vkms_gem_create(struct drm_device *dev,
-				       struct drm_file *file,
-				       u32 *handle,
-				       u64 size)
+static struct drm_gem_object *vkms_gem_create(struct drm_device *dev,
+					      struct drm_file *file,
+					      u32 *handle,
+					      u64 size)
 {
 	struct vkms_gem_object *obj;
 	int ret;
@@ -111,7 +111,6 @@
 		return ERR_CAST(obj);
 
 	ret = drm_gem_handle_create(file, &obj->gem, handle);
-	drm_gem_object_put_unlocked(&obj->gem);
 	if (ret)
 		return ERR_PTR(ret);
 
@@ -140,6 +139,8 @@
 	args->size = gem_obj->size;
 	args->pitch = pitch;
 
+	drm_gem_object_put_unlocked(gem_obj);
+
 	DRM_DEBUG_DRIVER("Created object of size %lld\n", size);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
@@ -209,8 +209,10 @@
 
 	cres->hash.key = user_key | (res_type << 24);
 	ret = drm_ht_insert_item(&man->resources, &cres->hash);
-	if (unlikely(ret != 0))
+	if (unlikely(ret != 0)) {
+		kfree(cres);
 		goto out_invalid_key;
+	}
 
 	cres->state = VMW_CMDBUF_RES_ADD;
 	cres->res = vmw_resource_reference(res);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -2666,7 +2666,7 @@
 		++i;
 	}
 
-	if (i != unit) {
+	if (&con->head == &dev_priv->dev->mode_config.connector_list) {
 		DRM_ERROR("Could not find initial display unit.\n");
 		ret = -EINVAL;
 		goto out_unlock;
@@ -2690,13 +2690,13 @@
 			break;
 	}
 
-	if (mode->type & DRM_MODE_TYPE_PREFERRED)
-		*p_mode = mode;
-	else {
+	if (&mode->head == &con->modes) {
 		WARN_ONCE(true, "Could not find initial preferred mode.\n");
 		*p_mode = list_first_entry(&con->modes,
 					   struct drm_display_mode,
 					   head);
+	} else {
+		*p_mode = mode;
 	}
 
  out_unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -81,7 +81,7 @@
 	struct vmw_legacy_display_unit *entry;
 	struct drm_framebuffer *fb = NULL;
 	struct drm_crtc *crtc = NULL;
-	int i = 0;
+	int i;
 
 	/* If there is no display topology the host just assumes
 	 * that the guest will set the same layout as the host.
@@ -92,12 +92,11 @@
 			crtc = &entry->base.crtc;
 			w = max(w, crtc->x + crtc->mode.hdisplay);
 			h = max(h, crtc->y + crtc->mode.vdisplay);
-			i++;
 		}
 
 		if (crtc == NULL)
 			return 0;
-		fb = entry->base.crtc.primary->state->fb;
+		fb = crtc->primary->state->fb;
 
 		return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0],
 					  fb->format->cpp[0] * 8,
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/xen/xen_drm_front.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/xen/xen_drm_front.c
@@ -400,7 +400,7 @@
 	args->size = args->pitch * args->height;
 
 	obj = xen_drm_front_gem_create(dev, args->size);
-	if (IS_ERR_OR_NULL(obj)) {
+	if (IS_ERR(obj)) {
 		ret = PTR_ERR(obj);
 		goto fail;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -83,7 +83,7 @@
 
 	size = round_up(size, PAGE_SIZE);
 	xen_obj = gem_create_obj(dev, size);
-	if (IS_ERR_OR_NULL(xen_obj))
+	if (IS_ERR(xen_obj))
 		return xen_obj;
 
 	if (drm_info->front_info->cfg.be_alloc) {
@@ -117,7 +117,7 @@
 	 */
 	xen_obj->num_pages = DIV_ROUND_UP(size, PAGE_SIZE);
 	xen_obj->pages = drm_gem_get_pages(&xen_obj->base);
-	if (IS_ERR_OR_NULL(xen_obj->pages)) {
+	if (IS_ERR(xen_obj->pages)) {
 		ret = PTR_ERR(xen_obj->pages);
 		xen_obj->pages = NULL;
 		goto fail;
@@ -136,7 +136,7 @@
 	struct xen_gem_object *xen_obj;
 
 	xen_obj = gem_create(dev, size);
-	if (IS_ERR_OR_NULL(xen_obj))
+	if (IS_ERR(xen_obj))
 		return ERR_CAST(xen_obj);
 
 	return &xen_obj->base;
@@ -194,7 +194,7 @@
 
 	size = attach->dmabuf->size;
 	xen_obj = gem_create_obj(dev, size);
-	if (IS_ERR_OR_NULL(xen_obj))
+	if (IS_ERR(xen_obj))
 		return ERR_CAST(xen_obj);
 
 	ret = gem_alloc_pages_array(xen_obj, size);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -60,7 +60,7 @@
 	int ret;
 
 	fb = drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, &fb_funcs);
-	if (IS_ERR_OR_NULL(fb))
+	if (IS_ERR(fb))
 		return fb;
 
 	gem_obj = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/host1x/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/host1x/bus.c
@@ -686,8 +686,17 @@
  */
 void host1x_driver_unregister(struct host1x_driver *driver)
 {
+	struct host1x *host1x;
+
 	driver_unregister(&driver->driver);
 
+	mutex_lock(&devices_lock);
+
+	list_for_each_entry(host1x, &devices, list)
+		host1x_detach_driver(host1x, driver);
+
+	mutex_unlock(&devices_lock);
+
 	mutex_lock(&drivers_lock);
 	list_del_init(&driver->list);
 	mutex_unlock(&drivers_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/host1x/debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/host1x/debug.c
@@ -16,6 +16,8 @@
 #include "debug.h"
 #include "channel.h"
 
+static DEFINE_MUTEX(debug_lock);
+
 unsigned int host1x_debug_trace_cmdbuf;
 
 static pid_t host1x_debug_force_timeout_pid;
@@ -52,12 +54,14 @@
 	struct output *o = data;
 
 	mutex_lock(&ch->cdma.lock);
+	mutex_lock(&debug_lock);
 
 	if (show_fifo)
 		host1x_hw_show_channel_fifo(m, ch, o);
 
 	host1x_hw_show_channel_cdma(m, ch, o);
 
+	mutex_unlock(&debug_lock);
 	mutex_unlock(&ch->cdma.lock);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/host1x/job.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/host1x/job.c
@@ -436,7 +436,8 @@
 	return err;
 }
 
-static inline int copy_gathers(struct host1x_job *job, struct device *dev)
+static inline int copy_gathers(struct device *host, struct host1x_job *job,
+			       struct device *dev)
 {
 	struct host1x_firewall fw;
 	size_t size = 0;
@@ -459,12 +460,12 @@
 	 * Try a non-blocking allocation from a higher priority pools first,
 	 * as awaiting for the allocation here is a major performance hit.
 	 */
-	job->gather_copy_mapped = dma_alloc_wc(dev, size, &job->gather_copy,
+	job->gather_copy_mapped = dma_alloc_wc(host, size, &job->gather_copy,
 					       GFP_NOWAIT);
 
 	/* the higher priority allocation failed, try the generic-blocking */
 	if (!job->gather_copy_mapped)
-		job->gather_copy_mapped = dma_alloc_wc(dev, size,
+		job->gather_copy_mapped = dma_alloc_wc(host, size,
 						       &job->gather_copy,
 						       GFP_KERNEL);
 	if (!job->gather_copy_mapped)
@@ -512,7 +513,7 @@
 		goto out;
 
 	if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL)) {
-		err = copy_gathers(job, dev);
+		err = copy_gathers(host->dev, job, dev);
 		if (err)
 			goto out;
 	}
@@ -573,7 +574,7 @@
 	job->num_unpins = 0;
 
 	if (job->gather_copy_size)
-		dma_free_wc(job->channel->dev, job->gather_copy_size,
+		dma_free_wc(host->dev, job->gather_copy_size,
 			    job->gather_copy_mapped, job->gather_copy);
 }
 EXPORT_SYMBOL(host1x_job_unpin);
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/ipu-v3/ipu-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/ipu-v3/ipu-common.c
@@ -124,6 +124,8 @@
 	case V4L2_PIX_FMT_RGBX32:
 	case V4L2_PIX_FMT_ARGB32:
 	case V4L2_PIX_FMT_XRGB32:
+	case V4L2_PIX_FMT_RGB32:
+	case V4L2_PIX_FMT_BGR32:
 		return IPUV3_COLORSPACE_RGB;
 	default:
 		return IPUV3_COLORSPACE_UNKNOWN;
--- linux-gkeop-5.4-5.4.0.orig/drivers/gpu/ipu-v3/ipu-image-convert.c
+++ linux-gkeop-5.4-5.4.0/drivers/gpu/ipu-v3/ipu-image-convert.c
@@ -137,6 +137,17 @@
 struct ipu_image_convert_chan;
 struct ipu_image_convert_priv;
 
+enum eof_irq_mask {
+	EOF_IRQ_IN      = BIT(0),
+	EOF_IRQ_ROT_IN  = BIT(1),
+	EOF_IRQ_OUT     = BIT(2),
+	EOF_IRQ_ROT_OUT = BIT(3),
+};
+
+#define EOF_IRQ_COMPLETE (EOF_IRQ_IN | EOF_IRQ_OUT)
+#define EOF_IRQ_ROT_COMPLETE (EOF_IRQ_IN | EOF_IRQ_OUT |	\
+			      EOF_IRQ_ROT_IN | EOF_IRQ_ROT_OUT)
+
 struct ipu_image_convert_ctx {
 	struct ipu_image_convert_chan *chan;
 
@@ -173,6 +184,9 @@
 	/* where to place converted tile in dest image */
 	unsigned int out_tile_map[MAX_TILES];
 
+	/* mask of completed EOF irqs at every tile conversion */
+	enum eof_irq_mask eof_mask;
+
 	struct list_head list;
 };
 
@@ -189,6 +203,8 @@
 	struct ipuv3_channel *rotation_out_chan;
 
 	/* the IPU end-of-frame irqs */
+	int in_eof_irq;
+	int rot_in_eof_irq;
 	int out_eof_irq;
 	int rot_out_eof_irq;
 
@@ -1380,6 +1396,9 @@
 	dev_dbg(priv->ipu->dev, "%s: task %u: starting ctx %p run %p tile %u -> %u\n",
 		__func__, chan->ic_task, ctx, run, tile, dst_tile);
 
+	/* clear EOF irq mask */
+	ctx->eof_mask = 0;
+
 	if (ipu_rot_mode_is_irt(ctx->rot_mode)) {
 		/* swap width/height for resizer */
 		dest_width = d_image->tile[dst_tile].height;
@@ -1615,7 +1634,7 @@
 }
 
 /* hold irqlock when calling */
-static irqreturn_t do_irq(struct ipu_image_convert_run *run)
+static irqreturn_t do_tile_complete(struct ipu_image_convert_run *run)
 {
 	struct ipu_image_convert_ctx *ctx = run->ctx;
 	struct ipu_image_convert_chan *chan = ctx->chan;
@@ -1700,6 +1719,7 @@
 		ctx->cur_buf_num ^= 1;
 	}
 
+	ctx->eof_mask = 0; /* clear EOF irq mask for next tile */
 	ctx->next_tile++;
 	return IRQ_HANDLED;
 done:
@@ -1709,13 +1729,15 @@
 	return IRQ_WAKE_THREAD;
 }
 
-static irqreturn_t norotate_irq(int irq, void *data)
+static irqreturn_t eof_irq(int irq, void *data)
 {
 	struct ipu_image_convert_chan *chan = data;
+	struct ipu_image_convert_priv *priv = chan->priv;
 	struct ipu_image_convert_ctx *ctx;
 	struct ipu_image_convert_run *run;
+	irqreturn_t ret = IRQ_HANDLED;
+	bool tile_complete = false;
 	unsigned long flags;
-	irqreturn_t ret;
 
 	spin_lock_irqsave(&chan->irqlock, flags);
 
@@ -1728,46 +1750,33 @@
 
 	ctx = run->ctx;
 
-	if (ipu_rot_mode_is_irt(ctx->rot_mode)) {
-		/* this is a rotation operation, just ignore */
-		spin_unlock_irqrestore(&chan->irqlock, flags);
-		return IRQ_HANDLED;
-	}
-
-	ret = do_irq(run);
-out:
-	spin_unlock_irqrestore(&chan->irqlock, flags);
-	return ret;
-}
-
-static irqreturn_t rotate_irq(int irq, void *data)
-{
-	struct ipu_image_convert_chan *chan = data;
-	struct ipu_image_convert_priv *priv = chan->priv;
-	struct ipu_image_convert_ctx *ctx;
-	struct ipu_image_convert_run *run;
-	unsigned long flags;
-	irqreturn_t ret;
-
-	spin_lock_irqsave(&chan->irqlock, flags);
-
-	/* get current run and its context */
-	run = chan->current_run;
-	if (!run) {
+	if (irq == chan->in_eof_irq) {
+		ctx->eof_mask |= EOF_IRQ_IN;
+	} else if (irq == chan->out_eof_irq) {
+		ctx->eof_mask |= EOF_IRQ_OUT;
+	} else if (irq == chan->rot_in_eof_irq ||
+		   irq == chan->rot_out_eof_irq) {
+		if (!ipu_rot_mode_is_irt(ctx->rot_mode)) {
+			/* this was NOT a rotation op, shouldn't happen */
+			dev_err(priv->ipu->dev,
+				"Unexpected rotation interrupt\n");
+			goto out;
+		}
+		ctx->eof_mask |= (irq == chan->rot_in_eof_irq) ?
+			EOF_IRQ_ROT_IN : EOF_IRQ_ROT_OUT;
+	} else {
+		dev_err(priv->ipu->dev, "Received unknown irq %d\n", irq);
 		ret = IRQ_NONE;
 		goto out;
 	}
 
-	ctx = run->ctx;
-
-	if (!ipu_rot_mode_is_irt(ctx->rot_mode)) {
-		/* this was NOT a rotation operation, shouldn't happen */
-		dev_err(priv->ipu->dev, "Unexpected rotation interrupt\n");
-		spin_unlock_irqrestore(&chan->irqlock, flags);
-		return IRQ_HANDLED;
-	}
+	if (ipu_rot_mode_is_irt(ctx->rot_mode))
+		tile_complete =	(ctx->eof_mask == EOF_IRQ_ROT_COMPLETE);
+	else
+		tile_complete = (ctx->eof_mask == EOF_IRQ_COMPLETE);
 
-	ret = do_irq(run);
+	if (tile_complete)
+		ret = do_tile_complete(run);
 out:
 	spin_unlock_irqrestore(&chan->irqlock, flags);
 	return ret;
@@ -1801,6 +1810,10 @@
 
 static void release_ipu_resources(struct ipu_image_convert_chan *chan)
 {
+	if (chan->in_eof_irq >= 0)
+		free_irq(chan->in_eof_irq, chan);
+	if (chan->rot_in_eof_irq >= 0)
+		free_irq(chan->rot_in_eof_irq, chan);
 	if (chan->out_eof_irq >= 0)
 		free_irq(chan->out_eof_irq, chan);
 	if (chan->rot_out_eof_irq >= 0)
@@ -1819,7 +1832,27 @@
 
 	chan->in_chan = chan->out_chan = chan->rotation_in_chan =
 		chan->rotation_out_chan = NULL;
-	chan->out_eof_irq = chan->rot_out_eof_irq = -1;
+	chan->in_eof_irq = -1;
+	chan->rot_in_eof_irq = -1;
+	chan->out_eof_irq = -1;
+	chan->rot_out_eof_irq = -1;
+}
+
+static int get_eof_irq(struct ipu_image_convert_chan *chan,
+		       struct ipuv3_channel *channel)
+{
+	struct ipu_image_convert_priv *priv = chan->priv;
+	int ret, irq;
+
+	irq = ipu_idmac_channel_irq(priv->ipu, channel, IPU_IRQ_EOF);
+
+	ret = request_threaded_irq(irq, eof_irq, do_bh, 0, "ipu-ic", chan);
+	if (ret < 0) {
+		dev_err(priv->ipu->dev, "could not acquire irq %d\n", irq);
+		return ret;
+	}
+
+	return irq;
 }
 
 static int get_ipu_resources(struct ipu_image_convert_chan *chan)
@@ -1855,31 +1888,33 @@
 	}
 
 	/* acquire the EOF interrupts */
-	chan->out_eof_irq = ipu_idmac_channel_irq(priv->ipu,
-						  chan->out_chan,
-						  IPU_IRQ_EOF);
+	ret = get_eof_irq(chan, chan->in_chan);
+	if (ret < 0) {
+		chan->in_eof_irq = -1;
+		goto err;
+	}
+	chan->in_eof_irq = ret;
 
-	ret = request_threaded_irq(chan->out_eof_irq, norotate_irq, do_bh,
-				   0, "ipu-ic", chan);
+	ret = get_eof_irq(chan, chan->rotation_in_chan);
 	if (ret < 0) {
-		dev_err(priv->ipu->dev, "could not acquire irq %d\n",
-			 chan->out_eof_irq);
-		chan->out_eof_irq = -1;
+		chan->rot_in_eof_irq = -1;
 		goto err;
 	}
+	chan->rot_in_eof_irq = ret;
 
-	chan->rot_out_eof_irq = ipu_idmac_channel_irq(priv->ipu,
-						     chan->rotation_out_chan,
-						     IPU_IRQ_EOF);
+	ret = get_eof_irq(chan, chan->out_chan);
+	if (ret < 0) {
+		chan->out_eof_irq = -1;
+		goto err;
+	}
+	chan->out_eof_irq = ret;
 
-	ret = request_threaded_irq(chan->rot_out_eof_irq, rotate_irq, do_bh,
-				   0, "ipu-ic", chan);
+	ret = get_eof_irq(chan, chan->rotation_out_chan);
 	if (ret < 0) {
-		dev_err(priv->ipu->dev, "could not acquire irq %d\n",
-			chan->rot_out_eof_irq);
 		chan->rot_out_eof_irq = -1;
 		goto err;
 	}
+	chan->rot_out_eof_irq = ret;
 
 	return 0;
 err:
@@ -2458,6 +2493,8 @@
 		chan->ic_task = i;
 		chan->priv = priv;
 		chan->dma_ch = &image_convert_dma_chan[i];
+		chan->in_eof_irq = -1;
+		chan->rot_in_eof_irq = -1;
 		chan->out_eof_irq = -1;
 		chan->rot_out_eof_irq = -1;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-alps.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-alps.c
@@ -25,6 +25,7 @@
 
 #define U1_MOUSE_REPORT_ID			0x01 /* Mouse data ReportID */
 #define U1_ABSOLUTE_REPORT_ID		0x03 /* Absolute data ReportID */
+#define U1_ABSOLUTE_REPORT_ID_SECD  0x02 /* FW-PTP Absolute data ReportID */
 #define U1_FEATURE_REPORT_ID		0x05 /* Feature ReportID */
 #define U1_SP_ABSOLUTE_REPORT_ID	0x06 /* Feature ReportID */
 
@@ -368,6 +369,7 @@
 	case U1_FEATURE_REPORT_ID:
 		break;
 	case U1_ABSOLUTE_REPORT_ID:
+	case U1_ABSOLUTE_REPORT_ID_SECD:
 		for (i = 0; i < hdata->max_fingers; i++) {
 			u8 *contact = &data[i * 5];
 
@@ -730,7 +732,7 @@
 	if (data->has_sp) {
 		input2 = input_allocate_device();
 		if (!input2) {
-			input_free_device(input2);
+			ret = -ENOMEM;
 			goto exit;
 		}
 
@@ -802,6 +804,7 @@
 		break;
 	case HID_DEVICE_ID_ALPS_U1_DUAL:
 	case HID_DEVICE_ID_ALPS_U1:
+	case HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY:
 		data->dev_type = U1;
 		break;
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-apple.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-apple.c
@@ -54,6 +54,7 @@
 struct apple_sc {
 	unsigned long quirks;
 	unsigned int fn_on;
+	unsigned int fn_found;
 	DECLARE_BITMAP(pressed_numlock, KEY_CNT);
 };
 
@@ -339,11 +340,15 @@
 		struct hid_field *field, struct hid_usage *usage,
 		unsigned long **bit, int *max)
 {
+	struct apple_sc *asc = hid_get_drvdata(hdev);
+
 	if (usage->hid == (HID_UP_CUSTOM | 0x0003) ||
-			usage->hid == (HID_UP_MSVENDOR | 0x0003)) {
+			usage->hid == (HID_UP_MSVENDOR | 0x0003) ||
+			usage->hid == (HID_UP_HPVENDOR2 | 0x0003)) {
 		/* The fn key on Apple USB keyboards */
 		set_bit(EV_REP, hi->input->evbit);
 		hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_FN);
+		asc->fn_found = true;
 		apple_setup_input(hi->input);
 		return 1;
 	}
@@ -370,6 +375,19 @@
 	return 0;
 }
 
+static int apple_input_configured(struct hid_device *hdev,
+		struct hid_input *hidinput)
+{
+	struct apple_sc *asc = hid_get_drvdata(hdev);
+
+	if ((asc->quirks & APPLE_HAS_FN) && !asc->fn_found) {
+		hid_info(hdev, "Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n");
+		asc->quirks = 0;
+	}
+
+	return 0;
+}
+
 static int apple_probe(struct hid_device *hdev,
 		const struct hid_device_id *id)
 {
@@ -584,6 +602,7 @@
 	.event = apple_event,
 	.input_mapping = apple_input_mapping,
 	.input_mapped = apple_input_mapped,
+	.input_configured = apple_input_configured,
 };
 module_hid_driver(apple_driver);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-asus.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-asus.c
@@ -261,7 +261,8 @@
 		      struct hid_usage *usage, __s32 value)
 {
 	if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 &&
-	    (usage->hid & HID_USAGE) != 0x00 && !usage->type) {
+	    (usage->hid & HID_USAGE) != 0x00 &&
+	    (usage->hid & HID_USAGE) != 0xff && !usage->type) {
 		hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n",
 			 usage->hid & HID_USAGE);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-bigbenff.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-bigbenff.c
@@ -174,6 +174,7 @@
 struct bigben_device {
 	struct hid_device *hid;
 	struct hid_report *report;
+	bool removed;
 	u8 led_state;         /* LED1 = 1 .. LED4 = 8 */
 	u8 right_motor_on;    /* right motor off/on 0/1 */
 	u8 left_motor_force;  /* left motor force 0-255 */
@@ -190,6 +191,9 @@
 		struct bigben_device, worker);
 	struct hid_field *report_field = bigben->report->field[0];
 
+	if (bigben->removed)
+		return;
+
 	if (bigben->work_led) {
 		bigben->work_led = false;
 		report_field->value[0] = 0x01; /* 1 = led message */
@@ -220,10 +224,16 @@
 static int hid_bigben_play_effect(struct input_dev *dev, void *data,
 			 struct ff_effect *effect)
 {
-	struct bigben_device *bigben = data;
+	struct hid_device *hid = input_get_drvdata(dev);
+	struct bigben_device *bigben = hid_get_drvdata(hid);
 	u8 right_motor_on;
 	u8 left_motor_force;
 
+	if (!bigben) {
+		hid_err(hid, "no device data\n");
+		return 0;
+	}
+
 	if (effect->type != FF_RUMBLE)
 		return 0;
 
@@ -298,8 +308,8 @@
 {
 	struct bigben_device *bigben = hid_get_drvdata(hid);
 
+	bigben->removed = true;
 	cancel_work_sync(&bigben->worker);
-	hid_hw_close(hid);
 	hid_hw_stop(hid);
 }
 
@@ -319,6 +329,7 @@
 		return -ENOMEM;
 	hid_set_drvdata(hid, bigben);
 	bigben->hid = hid;
+	bigben->removed = false;
 
 	error = hid_parse(hid);
 	if (error) {
@@ -341,10 +352,10 @@
 
 	INIT_WORK(&bigben->worker, bigben_worker);
 
-	error = input_ff_create_memless(hidinput->input, bigben,
+	error = input_ff_create_memless(hidinput->input, NULL,
 		hid_bigben_play_effect);
 	if (error)
-		return error;
+		goto error_hw_stop;
 
 	name_sz = strlen(dev_name(&hid->dev)) + strlen(":red:bigben#") + 1;
 
@@ -354,8 +365,10 @@
 			sizeof(struct led_classdev) + name_sz,
 			GFP_KERNEL
 		);
-		if (!led)
-			return -ENOMEM;
+		if (!led) {
+			error = -ENOMEM;
+			goto error_hw_stop;
+		}
 		name = (void *)(&led[1]);
 		snprintf(name, name_sz,
 			"%s:red:bigben%d",
@@ -369,7 +382,7 @@
 		bigben->leds[n] = led;
 		error = devm_led_classdev_register(&hid->dev, led);
 		if (error)
-			return error;
+			goto error_hw_stop;
 	}
 
 	/* initial state: LED1 is on, no rumble effect */
@@ -383,6 +396,10 @@
 	hid_info(hid, "LED and force feedback support for BigBen gamepad\n");
 
 	return 0;
+
+error_hw_stop:
+	hid_hw_stop(hid);
+	return error;
 }
 
 static __u8 *bigben_report_fixup(struct hid_device *hid, __u8 *rdesc,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-core.c
@@ -90,7 +90,7 @@
  * Register a new field for this report.
  */
 
-static struct hid_field *hid_register_field(struct hid_report *report, unsigned usages, unsigned values)
+static struct hid_field *hid_register_field(struct hid_report *report, unsigned usages)
 {
 	struct hid_field *field;
 
@@ -101,7 +101,7 @@
 
 	field = kzalloc((sizeof(struct hid_field) +
 			 usages * sizeof(struct hid_usage) +
-			 values * sizeof(unsigned)), GFP_KERNEL);
+			 usages * sizeof(unsigned)), GFP_KERNEL);
 	if (!field)
 		return NULL;
 
@@ -212,6 +212,18 @@
 }
 
 /*
+ * Concatenate usage which defines 16 bits or less with the
+ * currently defined usage page to form a 32 bit usage
+ */
+
+static void complete_usage(struct hid_parser *parser, unsigned int index)
+{
+	parser->local.usage[index] &= 0xFFFF;
+	parser->local.usage[index] |=
+		(parser->global.usage_page & 0xFFFF) << 16;
+}
+
+/*
  * Add a usage to the temporary parser table.
  */
 
@@ -222,6 +234,14 @@
 		return -1;
 	}
 	parser->local.usage[parser->local.usage_index] = usage;
+
+	/*
+	 * If Usage item only includes usage id, concatenate it with
+	 * currently defined usage page
+	 */
+	if (size <= 2)
+		complete_usage(parser, parser->local.usage_index);
+
 	parser->local.usage_size[parser->local.usage_index] = size;
 	parser->local.collection_index[parser->local.usage_index] =
 		parser->collection_stack_ptr ?
@@ -268,13 +288,19 @@
 	offset = report->size;
 	report->size += parser->global.report_size * parser->global.report_count;
 
+	/* Total size check: Allow for possible report index byte */
+	if (report->size > (HID_MAX_BUFFER_SIZE - 1) << 3) {
+		hid_err(parser->device, "report is too long\n");
+		return -1;
+	}
+
 	if (!parser->local.usage_index) /* Ignore padding fields */
 		return 0;
 
 	usages = max_t(unsigned, parser->local.usage_index,
 				 parser->global.report_count);
 
-	field = hid_register_field(report, usages, parser->global.report_count);
+	field = hid_register_field(report, usages);
 	if (!field)
 		return 0;
 
@@ -543,13 +569,32 @@
  * usage value."
  */
 
-static void hid_concatenate_usage_page(struct hid_parser *parser)
+static void hid_concatenate_last_usage_page(struct hid_parser *parser)
 {
 	int i;
+	unsigned int usage_page;
+	unsigned int current_page;
 
-	for (i = 0; i < parser->local.usage_index; i++)
-		if (parser->local.usage_size[i] <= 2)
-			parser->local.usage[i] += parser->global.usage_page << 16;
+	if (!parser->local.usage_index)
+		return;
+
+	usage_page = parser->global.usage_page;
+
+	/*
+	 * Concatenate usage page again only if last declared Usage Page
+	 * has not been already used in previous usages concatenation
+	 */
+	for (i = parser->local.usage_index - 1; i >= 0; i--) {
+		if (parser->local.usage_size[i] > 2)
+			/* Ignore extended usages */
+			continue;
+
+		current_page = parser->local.usage[i] >> 16;
+		if (current_page == usage_page)
+			break;
+
+		complete_usage(parser, i);
+	}
 }
 
 /*
@@ -561,7 +606,7 @@
 	__u32 data;
 	int ret;
 
-	hid_concatenate_usage_page(parser);
+	hid_concatenate_last_usage_page(parser);
 
 	data = item_udata(item);
 
@@ -742,6 +787,10 @@
 	if (usage == 0xff0000c5 && parser->global.report_count == 256 &&
 	    parser->global.report_size == 8)
 		parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
+
+	if (usage == 0xff0000c6 && parser->global.report_count == 1 &&
+	    parser->global.report_size == 8)
+		parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
 }
 
 static void hid_scan_collection(struct hid_parser *parser, unsigned type)
@@ -772,7 +821,7 @@
 	__u32 data;
 	int i;
 
-	hid_concatenate_usage_page(parser);
+	hid_concatenate_last_usage_page(parser);
 
 	data = item_udata(item);
 
@@ -1251,6 +1300,9 @@
 
 static s32 snto32(__u32 value, unsigned n)
 {
+	if (!value || !n)
+		return 0;
+
 	switch (n) {
 	case 8:  return ((__s8)value);
 	case 16: return ((__s16)value);
@@ -1549,6 +1601,17 @@
 }
 
 /*
+ * Compute the size of a report.
+ */
+static size_t hid_compute_report_size(struct hid_report *report)
+{
+	if (report->size)
+		return ((report->size - 1) >> 3) + 1;
+
+	return 0;
+}
+
+/*
  * Create a report. 'data' has to be allocated using
  * hid_alloc_report_buf() so that it has proper size.
  */
@@ -1560,7 +1623,7 @@
 	if (report->id > 0)
 		*data++ = report->id;
 
-	memset(data, 0, ((report->size - 1) >> 3) + 1);
+	memset(data, 0, hid_compute_report_size(report));
 	for (n = 0; n < report->maxfield; n++)
 		hid_output_field(report->device, report->field[n], data);
 }
@@ -1690,9 +1753,11 @@
 		csize--;
 	}
 
-	rsize = ((report->size - 1) >> 3) + 1;
+	rsize = hid_compute_report_size(report);
 
-	if (rsize > HID_MAX_BUFFER_SIZE)
+	if (report_enum->numbered && rsize >= HID_MAX_BUFFER_SIZE)
+		rsize = HID_MAX_BUFFER_SIZE - 1;
+	else if (rsize > HID_MAX_BUFFER_SIZE)
 		rsize = HID_MAX_BUFFER_SIZE;
 
 	if (csize < rsize) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-cypress.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-cypress.c
@@ -23,19 +23,17 @@
 #define CP_2WHEEL_MOUSE_HACK		0x02
 #define CP_2WHEEL_MOUSE_HACK_ON		0x04
 
+#define VA_INVAL_LOGICAL_BOUNDARY	0x08
+
 /*
  * Some USB barcode readers from cypress have usage min and usage max in
  * the wrong order
  */
-static __u8 *cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+static __u8 *cp_rdesc_fixup(struct hid_device *hdev, __u8 *rdesc,
 		unsigned int *rsize)
 {
-	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
 	unsigned int i;
 
-	if (!(quirks & CP_RDESC_SWAPPED_MIN_MAX))
-		return rdesc;
-
 	if (*rsize < 4)
 		return rdesc;
 
@@ -48,6 +46,40 @@
 	return rdesc;
 }
 
+static __u8 *va_logical_boundary_fixup(struct hid_device *hdev, __u8 *rdesc,
+		unsigned int *rsize)
+{
+	/*
+	 * Varmilo VA104M (with VID Cypress and device ID 07B1) incorrectly
+	 * reports Logical Minimum of its Consumer Control device as 572
+	 * (0x02 0x3c). Fix this by setting its Logical Minimum to zero.
+	 */
+	if (*rsize == 25 &&
+			rdesc[0] == 0x05 && rdesc[1] == 0x0c &&
+			rdesc[2] == 0x09 && rdesc[3] == 0x01 &&
+			rdesc[6] == 0x19 && rdesc[7] == 0x00 &&
+			rdesc[11] == 0x16 && rdesc[12] == 0x3c && rdesc[13] == 0x02) {
+		hid_info(hdev,
+			 "fixing up varmilo VA104M consumer control report descriptor\n");
+		rdesc[12] = 0x00;
+		rdesc[13] = 0x00;
+	}
+	return rdesc;
+}
+
+static __u8 *cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+		unsigned int *rsize)
+{
+	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
+
+	if (quirks & CP_RDESC_SWAPPED_MIN_MAX)
+		rdesc = cp_rdesc_fixup(hdev, rdesc, rsize);
+	if (quirks & VA_INVAL_LOGICAL_BOUNDARY)
+		rdesc = va_logical_boundary_fixup(hdev, rdesc, rsize);
+
+	return rdesc;
+}
+
 static int cp_input_mapped(struct hid_device *hdev, struct hid_input *hi,
 		struct hid_field *field, struct hid_usage *usage,
 		unsigned long **bit, int *max)
@@ -128,6 +160,8 @@
 		.driver_data = CP_RDESC_SWAPPED_MIN_MAX },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE),
 		.driver_data = CP_2WHEEL_MOUSE_HACK },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_VARMILO_VA104M_07B1),
+		.driver_data = VA_INVAL_LOGICAL_BOUNDARY },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, cp_devices);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-elan.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-elan.c
@@ -188,6 +188,7 @@
 	ret = input_mt_init_slots(input, ELAN_MAX_FINGERS, INPUT_MT_POINTER);
 	if (ret) {
 		hid_err(hdev, "Failed to init elan MT slots: %d\n", ret);
+		input_free_device(input);
 		return ret;
 	}
 
@@ -198,6 +199,7 @@
 	if (ret) {
 		hid_err(hdev, "Failed to register elan input device: %d\n",
 			ret);
+		input_mt_destroy_slots(input);
 		input_free_device(input);
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-google-hammer.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-google-hammer.c
@@ -474,6 +474,8 @@
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_MASTERBALL) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_MOONBALL) },
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_STAFF) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_WAND) },
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-ids.h
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-ids.h
@@ -79,10 +79,10 @@
 #define HID_DEVICE_ID_ALPS_U1_DUAL_PTP	0x121F
 #define HID_DEVICE_ID_ALPS_U1_DUAL_3BTN_PTP	0x1220
 #define HID_DEVICE_ID_ALPS_U1		0x1215
+#define HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY         0x121E
 #define HID_DEVICE_ID_ALPS_T4_BTNLESS	0x120C
 #define HID_DEVICE_ID_ALPS_1222		0x1222
 
-
 #define USB_VENDOR_ID_AMI		0x046b
 #define USB_DEVICE_ID_AMI_VIRT_KEYBOARD_AND_MOUSE	0xff10
 
@@ -337,6 +337,8 @@
 #define USB_DEVICE_ID_CYPRESS_BARCODE_4	0xed81
 #define USB_DEVICE_ID_CYPRESS_TRUETOUCH	0xc001
 
+#define USB_DEVICE_ID_CYPRESS_VARMILO_VA104M_07B1   0X07b1
+
 #define USB_VENDOR_ID_DATA_MODUL	0x7374
 #define USB_VENDOR_ID_DATA_MODUL_EASYMAXTOUCH	0x1201
 
@@ -363,6 +365,7 @@
 #define USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR	0x1803
 #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE1	0x1843
 #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE2	0x1844
+#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE3	0x1846
 
 #define USB_VENDOR_ID_DWAV		0x0eef
 #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER	0x0001
@@ -385,11 +388,13 @@
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349	0x7349
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7	0x73f7
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001	0xa001
+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C002	0xc002
 
 #define USB_VENDOR_ID_ELAN		0x04f3
 #define USB_DEVICE_ID_TOSHIBA_CLICK_L9W	0x0401
 #define USB_DEVICE_ID_HP_X2		0x074d
 #define USB_DEVICE_ID_HP_X2_10_COVER	0x0755
+#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN	0x2706
 
 #define USB_VENDOR_ID_ELECOM		0x056e
 #define USB_DEVICE_ID_ELECOM_BM084	0x0061
@@ -448,6 +453,10 @@
 #define USB_VENDOR_ID_FRUCTEL	0x25B6
 #define USB_DEVICE_ID_GAMETEL_MT_MODE	0x0002
 
+#define USB_VENDOR_ID_GAMEVICE	0x27F8
+#define USB_DEVICE_ID_GAMEVICE_GV186	0x0BBE
+#define USB_DEVICE_ID_GAMEVICE_KISHI	0x0BBF
+
 #define USB_VENDOR_ID_GAMERON		0x0810
 #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR	0x0001
 #define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR	0x0002
@@ -478,6 +487,7 @@
 #define USB_DEVICE_ID_GOOGLE_WHISKERS	0x5030
 #define USB_DEVICE_ID_GOOGLE_MASTERBALL	0x503c
 #define USB_DEVICE_ID_GOOGLE_MAGNEMITE	0x503d
+#define USB_DEVICE_ID_GOOGLE_MOONBALL	0x5044
 
 #define USB_VENDOR_ID_GOTOP		0x08f2
 #define USB_DEVICE_ID_SUPER_Q2		0x007f
@@ -485,6 +495,7 @@
 #define USB_DEVICE_ID_PENPOWER		0x00f4
 
 #define USB_VENDOR_ID_GREENASIA		0x0e8f
+#define USB_DEVICE_ID_GREENASIA_DUAL_SAT_ADAPTOR 0x3010
 #define USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD	0x3013
 
 #define USB_VENDOR_ID_GRETAGMACBETH	0x0971
@@ -573,6 +584,7 @@
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A	0x094a
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0941	0x0941
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641	0x0641
+#define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_1f4a	0x1f4a
 
 #define USB_VENDOR_ID_HUION		0x256c
 #define USB_DEVICE_ID_HUION_TABLET	0x006e
@@ -617,6 +629,7 @@
 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081	0xa081
 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2	0xa0c2
 #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096	0xa096
+#define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293	0xa293
 
 #define USB_VENDOR_ID_IMATION		0x0718
 #define USB_DEVICE_ID_DISC_STAKKA	0xd000
@@ -628,8 +641,11 @@
 #define USB_DEVICE_ID_INNEX_GENESIS_ATARI	0x4745
 
 #define USB_VENDOR_ID_ITE               0x048d
+#define I2C_VENDOR_ID_ITE		0x103c
+#define I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15	0x184f
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA   0x8386
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA2  0x8350
+#define I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720	0x837a
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA900	0x8396
 #define USB_DEVICE_ID_ITE8595		0x8595
 
@@ -724,15 +740,21 @@
 #define USB_DEVICE_ID_LENOVO_X1_COVER	0x6085
 #define USB_DEVICE_ID_LENOVO_X1_TAB	0x60a3
 #define USB_DEVICE_ID_LENOVO_X1_TAB3	0x60b5
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D	0x608d
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019	0x6019
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E	0x602e
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093	0x6093
 
 #define USB_VENDOR_ID_LG		0x1fd2
 #define USB_DEVICE_ID_LG_MULTITOUCH	0x0064
 #define USB_DEVICE_ID_LG_MELFAS_MT	0x6007
 #define I2C_DEVICE_ID_LG_8001		0x8001
+#define I2C_DEVICE_ID_LG_7010		0x7010
 
 #define USB_VENDOR_ID_LOGITECH		0x046d
 #define USB_DEVICE_ID_LOGITECH_AUDIOHUB 0x0a0e
 #define USB_DEVICE_ID_LOGITECH_T651	0xb00c
+#define USB_DEVICE_ID_LOGITECH_DINOVO_EDGE_KBD	0xb309
 #define USB_DEVICE_ID_LOGITECH_C007	0xc007
 #define USB_DEVICE_ID_LOGITECH_C077	0xc077
 #define USB_DEVICE_ID_LOGITECH_RECEIVER	0xc101
@@ -764,6 +786,7 @@
 #define USB_DEVICE_ID_LOGITECH_G27_WHEEL	0xc29b
 #define USB_DEVICE_ID_LOGITECH_WII_WHEEL	0xc29c
 #define USB_DEVICE_ID_LOGITECH_ELITE_KBD	0xc30a
+#define USB_DEVICE_ID_LOGITECH_GROUP_AUDIO	0x0882
 #define USB_DEVICE_ID_S510_RECEIVER	0xc50c
 #define USB_DEVICE_ID_S510_RECEIVER_2	0xc517
 #define USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500	0xc512
@@ -835,6 +858,7 @@
 #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
 #define USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER	0x02fd
 #define USB_DEVICE_ID_MS_PIXART_MOUSE    0x00cb
+#define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS      0x02e0
 
 #define USB_VENDOR_ID_MOJO		0x8282
 #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201
@@ -959,6 +983,7 @@
 
 #define I2C_VENDOR_ID_RAYDIUM		0x2386
 #define I2C_PRODUCT_ID_RAYDIUM_4B33	0x4b33
+#define I2C_PRODUCT_ID_RAYDIUM_3118	0x3118
 
 #define USB_VENDOR_ID_RAZER            0x1532
 #define USB_DEVICE_ID_RAZER_BLADE_14   0x011D
@@ -988,6 +1013,8 @@
 #define USB_DEVICE_ID_ROCCAT_RYOS_MK_PRO	0x3232
 #define USB_DEVICE_ID_ROCCAT_SAVU	0x2d5a
 
+#define USB_VENDOR_ID_SAI		0x17dd
+
 #define USB_VENDOR_ID_SAITEK		0x06a3
 #define USB_DEVICE_ID_SAITEK_RUMBLEPAD	0xff17
 #define USB_DEVICE_ID_SAITEK_PS1000	0x0621
@@ -997,6 +1024,8 @@
 #define USB_DEVICE_ID_SAITEK_RAT9	0x0cfa
 #define USB_DEVICE_ID_SAITEK_MMO7	0x0cd0
 #define USB_DEVICE_ID_SAITEK_X52	0x075c
+#define USB_DEVICE_ID_SAITEK_X52_2	0x0255
+#define USB_DEVICE_ID_SAITEK_X52_PRO	0x0762
 
 #define USB_VENDOR_ID_SAMSUNG		0x0419
 #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE	0x0001
@@ -1082,6 +1111,9 @@
 #define USB_DEVICE_ID_SYMBOL_SCANNER_2	0x1300
 #define USB_DEVICE_ID_SYMBOL_SCANNER_3	0x1200
 
+#define I2C_VENDOR_ID_SYNAPTICS     0x06cb
+#define I2C_PRODUCT_ID_SYNAPTICS_SYNA2393   0x7a13
+
 #define USB_VENDOR_ID_SYNAPTICS		0x06cb
 #define USB_DEVICE_ID_SYNAPTICS_TP	0x0001
 #define USB_DEVICE_ID_SYNAPTICS_INT_TP	0x0002
@@ -1096,7 +1128,10 @@
 #define USB_DEVICE_ID_SYNAPTICS_LTS2	0x1d10
 #define USB_DEVICE_ID_SYNAPTICS_HD	0x0ac3
 #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD	0x1ac3
+#define USB_DEVICE_ID_SYNAPTICS_DELL_K12A	0x2819
+#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012	0x2968
 #define USB_DEVICE_ID_SYNAPTICS_TP_V103	0x5710
+#define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003	0x73f5
 #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5	0x81a7
 
 #define USB_VENDOR_ID_TEXAS_INSTRUMENTS	0x2047
@@ -1135,6 +1170,9 @@
 #define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882	0x8882
 #define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883	0x8883
 
+#define USB_VENDOR_ID_TRUST             0x145f
+#define USB_DEVICE_ID_TRUST_PANORA_TABLET   0x0212
+
 #define USB_VENDOR_ID_TURBOX		0x062a
 #define USB_DEVICE_ID_TURBOX_KEYBOARD	0x0201
 #define USB_DEVICE_ID_ASUS_MD_5110	0x5110
@@ -1266,6 +1304,7 @@
 
 #define USB_VENDOR_ID_UGTIZER			0x2179
 #define USB_DEVICE_ID_UGTIZER_TABLET_GP0610	0x0053
+#define USB_DEVICE_ID_UGTIZER_TABLET_GT5040	0x0077
 
 #define USB_VENDOR_ID_VIEWSONIC			0x0543
 #define USB_DEVICE_ID_VIEWSONIC_PD1011		0xe621
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-input.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-input.c
@@ -319,6 +319,11 @@
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ASUSTEK,
 		USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD),
 	  HID_BATTERY_QUIRK_IGNORE },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH,
+		USB_DEVICE_ID_LOGITECH_DINOVO_EDGE_KBD),
+	  HID_BATTERY_QUIRK_IGNORE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN),
+	  HID_BATTERY_QUIRK_IGNORE },
 	{}
 };
 
@@ -350,13 +355,13 @@
 	u8 *buf;
 	int ret;
 
-	buf = kmalloc(2, GFP_KERNEL);
+	buf = kmalloc(4, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
-	ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 2,
+	ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 4,
 				 dev->battery_report_type, HID_REQ_GET_REPORT);
-	if (ret != 2) {
+	if (ret < 2) {
 		kfree(buf);
 		return -ENODATA;
 	}
@@ -797,7 +802,7 @@
 		case 0x3b: /* Battery Strength */
 			hidinput_setup_battery(device, HID_INPUT_REPORT, field);
 			usage->type = EV_PWR;
-			goto ignore;
+			return;
 
 		case 0x3c: /* Invert */
 			map_key_clear(BTN_TOOL_RUBBER);
@@ -1059,7 +1064,7 @@
 		case HID_DC_BATTERYSTRENGTH:
 			hidinput_setup_battery(device, HID_INPUT_REPORT, field);
 			usage->type = EV_PWR;
-			goto ignore;
+			return;
 		}
 		goto unknown;
 
@@ -1132,9 +1137,19 @@
 	}
 
 mapped:
-	if (device->driver->input_mapped && device->driver->input_mapped(device,
-				hidinput, field, usage, &bit, &max) < 0)
-		goto ignore;
+	/* Mapping failed, bail out */
+	if (!bit)
+		return;
+
+	if (device->driver->input_mapped &&
+	    device->driver->input_mapped(device, hidinput, field, usage,
+					 &bit, &max) < 0) {
+		/*
+		 * The driver indicated that no further generic handling
+		 * of the usage is desired.
+		 */
+		return;
+	}
 
 	set_bit(usage->type, input->evbit);
 
@@ -1215,9 +1230,11 @@
 		set_bit(MSC_SCAN, input->mscbit);
 	}
 
-ignore:
 	return;
 
+ignore:
+	usage->type = 0;
+	usage->code = 0;
 }
 
 static void hidinput_handle_scroll(struct hid_usage *usage,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-ite.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-ite.c
@@ -11,6 +11,48 @@
 
 #include "hid-ids.h"
 
+#define QUIRK_TOUCHPAD_ON_OFF_REPORT		BIT(0)
+
+static __u8 *ite_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize)
+{
+	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
+
+	if (quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) {
+		if (*rsize == 188 && rdesc[162] == 0x81 && rdesc[163] == 0x02) {
+			hid_info(hdev, "Fixing up ITE keyboard report descriptor\n");
+			rdesc[163] = HID_MAIN_ITEM_RELATIVE;
+		}
+	}
+
+	return rdesc;
+}
+
+static int ite_input_mapping(struct hid_device *hdev,
+		struct hid_input *hi, struct hid_field *field,
+		struct hid_usage *usage, unsigned long **bit,
+		int *max)
+{
+
+	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
+
+	if ((quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) &&
+	    (usage->hid & HID_USAGE_PAGE) == 0x00880000) {
+		if (usage->hid == 0x00880078) {
+			/* Touchpad on, userspace expects F22 for this */
+			hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_F22);
+			return 1;
+		}
+		if (usage->hid == 0x00880079) {
+			/* Touchpad off, userspace expects F23 for this */
+			hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_F23);
+			return 1;
+		}
+		return -1;
+	}
+
+	return 0;
+}
+
 static int ite_event(struct hid_device *hdev, struct hid_field *field,
 		     struct hid_usage *usage, __s32 value)
 {
@@ -37,9 +79,31 @@
 	return 0;
 }
 
+static int ite_probe(struct hid_device *hdev, const struct hid_device_id *id)
+{
+	int ret;
+
+	hid_set_drvdata(hdev, (void *)id->driver_data);
+
+	ret = hid_open_report(hdev);
+	if (ret)
+		return ret;
+
+	return hid_hw_start(hdev, HID_CONNECT_DEFAULT);
+}
+
 static const struct hid_device_id ite_devices[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_258A, USB_DEVICE_ID_258A_6A88) },
+	/* ITE8595 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_SYNAPTICS,
+		     USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012),
+	  .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT },
+	/* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_SYNAPTICS,
+		     USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ite_devices);
@@ -47,6 +111,9 @@
 static struct hid_driver ite_driver = {
 	.name = "itetech",
 	.id_table = ite_devices,
+	.probe = ite_probe,
+	.report_fixup = ite_report_fixup,
+	.input_mapping = ite_input_mapping,
 	.event = ite_event,
 };
 module_hid_driver(ite_driver);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-logitech-dj.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-logitech-dj.c
@@ -328,7 +328,7 @@
 	0x25, 0x01,		/*      LOGICAL_MAX (1)                 */
 	0x75, 0x01,		/*      REPORT_SIZE (1)                 */
 	0x95, 0x04,		/*      REPORT_COUNT (4)                */
-	0x81, 0x06,		/*      INPUT                           */
+	0x81, 0x02,		/*      INPUT (Data,Var,Abs)            */
 	0xC0,			/*    END_COLLECTION                    */
 	0xC0,			/*  END_COLLECTION                      */
 };
@@ -866,11 +866,24 @@
 	schedule_work(&djrcv_dev->work);
 }
 
+/*
+ * Some quad/bluetooth keyboards have a builtin touchpad in this case we see
+ * only 1 paired device with a device_type of REPORT_TYPE_KEYBOARD. For the
+ * touchpad to work we must also forward mouse input reports to the dj_hiddev
+ * created for the keyboard (instead of forwarding them to a second paired
+ * device with a device_type of REPORT_TYPE_MOUSE as we normally would).
+ */
+static const u16 kbd_builtin_touchpad_ids[] = {
+	0xb309, /* Dinovo Edge */
+	0xb30c, /* Dinovo Mini */
+};
+
 static void logi_hidpp_dev_conn_notif_equad(struct hid_device *hdev,
 					    struct hidpp_event *hidpp_report,
 					    struct dj_workitem *workitem)
 {
 	struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
+	int i, id;
 
 	workitem->type = WORKITEM_TYPE_PAIRED;
 	workitem->device_type = hidpp_report->params[HIDPP_PARAM_DEVICE_INFO] &
@@ -882,6 +895,13 @@
 		workitem->reports_supported |= STD_KEYBOARD | MULTIMEDIA |
 					       POWER_KEYS | MEDIA_CENTER |
 					       HIDPP;
+		id = (workitem->quad_id_msb << 8) | workitem->quad_id_lsb;
+		for (i = 0; i < ARRAY_SIZE(kbd_builtin_touchpad_ids); i++) {
+			if (id == kbd_builtin_touchpad_ids[i]) {
+				workitem->reports_supported |= STD_MOUSE;
+				break;
+			}
+		}
 		break;
 	case REPORT_TYPE_MOUSE:
 		workitem->reports_supported |= STD_MOUSE | HIDPP;
@@ -960,6 +980,7 @@
 	case 0x07:
 		device_type = "eQUAD step 4 Gaming";
 		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
+		workitem.reports_supported |= STD_KEYBOARD;
 		break;
 	case 0x08:
 		device_type = "eQUAD step 4 for gamepads";
@@ -974,7 +995,12 @@
 		workitem.reports_supported |= STD_KEYBOARD;
 		break;
 	case 0x0d:
-		device_type = "eQUAD Lightspeed 1_1";
+		device_type = "eQUAD Lightspeed 1.1";
+		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
+		workitem.reports_supported |= STD_KEYBOARD;
+		break;
+	case 0x0f:
+		device_type = "eQUAD Lightspeed 1.2";
 		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
 		workitem.reports_supported |= STD_KEYBOARD;
 		break;
@@ -1842,6 +1868,10 @@
 	  HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
 		0xc531),
 	 .driver_data = recvr_type_gaming_hidpp},
+	{ /* Logitech G602 receiver (0xc537) */
+	  HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
+		0xc537),
+	 .driver_data = recvr_type_gaming_hidpp},
 	{ /* Logitech lightspeed receiver (0xc539) */
 	  HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
 		USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1),
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-logitech-hidpp.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-logitech-hidpp.c
@@ -88,6 +88,8 @@
 #define HIDPP_CAPABILITY_BATTERY_MILEAGE	BIT(2)
 #define HIDPP_CAPABILITY_BATTERY_LEVEL_STATUS	BIT(3)
 
+#define lg_map_key_clear(c)  hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
+
 /*
  * There are two hidpp protocols in use, the first version hidpp10 is known
  * as register access protocol or RAP, the second version hidpp20 is known as
@@ -1102,6 +1104,9 @@
 	ret = hidpp_send_fap_command_sync(hidpp, feature_index,
 					  CMD_BATTERY_LEVEL_STATUS_GET_BATTERY_LEVEL_STATUS,
 					  NULL, 0, &response);
+	/* Ignore these intermittent errors */
+	if (ret == HIDPP_ERROR_RESOURCE_ERROR)
+		return -EIO;
 	if (ret > 0) {
 		hid_err(hidpp->hid_dev, "%s: received protocol error 0x%02x\n",
 			__func__, ret);
@@ -2766,6 +2771,26 @@
 }
 
 /* -------------------------------------------------------------------------- */
+/* Logitech Dinovo Mini keyboard with builtin touchpad                        */
+/* -------------------------------------------------------------------------- */
+#define DINOVO_MINI_PRODUCT_ID		0xb30c
+
+static int lg_dinovo_input_mapping(struct hid_device *hdev, struct hid_input *hi,
+		struct hid_field *field, struct hid_usage *usage,
+		unsigned long **bit, int *max)
+{
+	if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR)
+		return 0;
+
+	switch (usage->hid & HID_USAGE) {
+	case 0x00d: lg_map_key_clear(KEY_MEDIA);	break;
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+/* -------------------------------------------------------------------------- */
 /* HID++1.0 devices which use HID++ reports for their wheels                  */
 /* -------------------------------------------------------------------------- */
 static int hidpp10_wheel_connect(struct hidpp_device *hidpp)
@@ -2961,7 +2986,7 @@
 		multiplier = 1;
 
 	hidpp->vertical_wheel_counter.wheel_multiplier = multiplier;
-	hid_info(hidpp->hid_dev, "multiplier = %d\n", multiplier);
+	hid_dbg(hidpp->hid_dev, "wheel multiplier = %d\n", multiplier);
 	return 0;
 }
 
@@ -3000,6 +3025,9 @@
 			field->application != HID_GD_MOUSE)
 		return m560_input_mapping(hdev, hi, field, usage, bit, max);
 
+	if (hdev->product == DINOVO_MINI_PRODUCT_ID)
+		return lg_dinovo_input_mapping(hdev, hi, field, usage, bit, max);
+
 	return 0;
 }
 
@@ -3738,6 +3766,7 @@
 	  LDJ_DEVICE(0x405e), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ /* Mouse Logitech MX Anywhere 2 */
 	  LDJ_DEVICE(0x404a), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
+	{ LDJ_DEVICE(0x4072), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb013), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb018), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb01f), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
@@ -3760,6 +3789,9 @@
 	{ /* Keyboard MX5000 (Bluetooth-receiver in HID proxy mode) */
 	  LDJ_DEVICE(0xb305),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
+	{ /* Dinovo Edge (Bluetooth-receiver in HID proxy mode) */
+	  LDJ_DEVICE(0xb309),
+	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
 	{ /* Keyboard MX5500 (Bluetooth-receiver in HID proxy mode) */
 	  LDJ_DEVICE(0xb30b),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
@@ -3802,6 +3834,9 @@
 	{ /* MX5000 keyboard over Bluetooth */
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb305),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
+	{ /* Dinovo Edge keyboard over Bluetooth */
+	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb309),
+	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
 	{ /* MX5500 keyboard over Bluetooth */
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb30b),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-magicmouse.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-magicmouse.c
@@ -535,6 +535,12 @@
 		__set_bit(MSC_RAW, input->mscbit);
 	}
 
+	/*
+	 * hid-input may mark device as using autorepeat, but neither
+	 * the trackpad, nor the mouse actually want it.
+	 */
+	__clear_bit(EV_REP, input->evbit);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-mf.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-mf.c
@@ -153,6 +153,8 @@
 		.driver_data = HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2),
 		.driver_data = 0 }, /* No quirk required */
+	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3),
+		.driver_data = HID_QUIRK_MULTI_INPUT },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, mf_devices);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-microsoft.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-microsoft.c
@@ -451,6 +451,8 @@
 		.driver_data = MS_SURFACE_DIAL },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER),
 		.driver_data = MS_QUIRK_FF },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS),
+		.driver_data = MS_QUIRK_FF },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ms_devices);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-multitouch.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-multitouch.c
@@ -69,6 +69,7 @@
 #define MT_QUIRK_ASUS_CUSTOM_UP		BIT(17)
 #define MT_QUIRK_WIN8_PTP_BUTTONS	BIT(18)
 #define MT_QUIRK_SEPARATE_APP_REPORT	BIT(19)
+#define MT_QUIRK_FORCE_MULTI_INPUT	BIT(20)
 
 #define MT_INPUTMODE_TOUCHSCREEN	0x02
 #define MT_INPUTMODE_TOUCHPAD		0x03
@@ -189,6 +190,7 @@
 #define MT_CLS_WIN_8				0x0012
 #define MT_CLS_EXPORT_ALL_INPUTS		0x0013
 #define MT_CLS_WIN_8_DUAL			0x0014
+#define MT_CLS_WIN_8_FORCE_MULTI_INPUT		0x0015
 
 /* vendor specific classes */
 #define MT_CLS_3M				0x0101
@@ -279,6 +281,15 @@
 			MT_QUIRK_CONTACT_CNT_ACCURATE |
 			MT_QUIRK_WIN8_PTP_BUTTONS,
 		.export_all_inputs = true },
+	{ .name = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		.quirks = MT_QUIRK_ALWAYS_VALID |
+			MT_QUIRK_IGNORE_DUPLICATES |
+			MT_QUIRK_HOVERING |
+			MT_QUIRK_CONTACT_CNT_ACCURATE |
+			MT_QUIRK_STICKY_FINGERS |
+			MT_QUIRK_WIN8_PTP_BUTTONS |
+			MT_QUIRK_FORCE_MULTI_INPUT,
+		.export_all_inputs = true },
 
 	/*
 	 * vendor specific classes
@@ -853,6 +864,8 @@
 			code = BTN_0  + ((usage->hid - 1) & HID_USAGE);
 
 		hid_map_usage(hi, usage, bit, max, EV_KEY, code);
+		if (!*bit)
+			return -1;
 		input_set_capability(hi->input, EV_KEY, code);
 		return 1;
 
@@ -1019,7 +1032,7 @@
 		tool = MT_TOOL_DIAL;
 	else if (unlikely(!confidence_state)) {
 		tool = MT_TOOL_PALM;
-		if (!active &&
+		if (!active && mt &&
 		    input_mt_is_active(&mt->slots[slotnum])) {
 			/*
 			 * The non-confidence was reported for
@@ -1714,6 +1727,11 @@
 	if (id->group != HID_GROUP_MULTITOUCH_WIN_8)
 		hdev->quirks |= HID_QUIRK_MULTI_INPUT;
 
+	if (mtclass->quirks & MT_QUIRK_FORCE_MULTI_INPUT) {
+		hdev->quirks &= ~HID_QUIRK_INPUT_PER_APP;
+		hdev->quirks |= HID_QUIRK_MULTI_INPUT;
+	}
+
 	timer_setup(&td->release_timer, mt_expired_timeout, 0);
 
 	ret = hid_parse(hdev);
@@ -1922,6 +1940,14 @@
 	{ .driver_data = MT_CLS_EGALAX_SERIAL,
 		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
+	{ .driver_data = MT_CLS_EGALAX,
+		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C002) },
+
+	/* Elan devices */
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_ELAN, 0x313a) },
 
 	/* Elitegroup panel */
 	{ .driver_data = MT_CLS_SERIAL,
@@ -1985,6 +2011,9 @@
 	{ .driver_data = MT_CLS_LG,
 		HID_USB_DEVICE(USB_VENDOR_ID_LG,
 			USB_DEVICE_ID_LG_MELFAS_MT) },
+	{ .driver_data = MT_CLS_LG,
+		HID_DEVICE(BUS_I2C, HID_GROUP_GENERIC,
+			USB_VENDOR_ID_LG, I2C_DEVICE_ID_LG_7010) },
 
 	/* MosArt panels */
 	{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
@@ -2050,6 +2079,15 @@
 		MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
 			USB_DEVICE_ID_MTP_STM)},
 
+	/* Synaptics devices */
+	{ .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,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_SYNAPTICS, 0xce09) },
+
 	/* TopSeed panels */
 	{ .driver_data = MT_CLS_TOPSEED,
 		MT_USB_DEVICE(USB_VENDOR_ID_TOPSEED2,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-quirks.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-quirks.c
@@ -72,6 +72,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_REDRAGON_SEYMUR2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1), HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER), HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET },
@@ -83,17 +84,24 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28), HID_QUIRK_NOGET },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_FUTABA, USB_DEVICE_ID_LED_DISPLAY), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_SAT_ADAPTOR), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD), HID_QUIRK_MULTI_INPUT },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_GV186),
+		HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_KISHI),
+		HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0941), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_1f4a), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6680), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X), HID_QUIRK_MULTI_INPUT },
@@ -102,6 +110,10 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_PENSKETCH_M912), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M406XE), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C007), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C077), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS), HID_QUIRK_NOGET },
@@ -144,6 +156,8 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_RETROUSB, USB_DEVICE_ID_RETROUSB_SNES_RETROPORT), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD), HID_QUIRK_BADPAD },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_PRO), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD2), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB), HID_QUIRK_NOGET },
@@ -161,10 +175,12 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS2), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_QUAD_HD), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_DELL_K12A), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD), HID_QUIRK_BADPAD },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882), HID_QUIRK_NOGET },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883), HID_QUIRK_NOGET },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_TRUST, USB_DEVICE_ID_TRUST_PANORA_TABLET), HID_QUIRK_MULTI_INPUT | HID_QUIRK_HIDINPUT_FORCE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD), HID_QUIRK_NOGET },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_KNA5), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_TWA60), HID_QUIRK_MULTI_INPUT },
@@ -173,6 +189,8 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
 
 	{ 0 }
 };
@@ -395,9 +413,6 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2) },
 #endif
-#if IS_ENABLED(CONFIG_HID_ITE)
-	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
-#endif
 #if IS_ENABLED(CONFIG_HID_ICADE)
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ION, USB_DEVICE_ID_ICADE) },
 #endif
@@ -477,6 +492,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3) },
 #endif
 #if IS_ENABLED(CONFIG_HID_MICROSOFT)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500) },
@@ -837,6 +853,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PETZL, USB_DEVICE_ID_PETZL_HEADLAMP) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_POWERCOM, USB_DEVICE_ID_POWERCOM_UPS) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAI, USB_DEVICE_ID_CYPRESS_HIDCOM) },
 #if IS_ENABLED(CONFIG_MOUSE_SYNAPTICS_USB)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_INT_TP) },
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-rmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-rmi.c
@@ -744,7 +744,8 @@
 {
 	struct rmi_data *hdata = hid_get_drvdata(hdev);
 
-	if (hdata->device_flags & RMI_DEVICE) {
+	if ((hdata->device_flags & RMI_DEVICE)
+	    && test_bit(RMI_STARTED, &hdata->flags)) {
 		clear_bit(RMI_STARTED, &hdata->flags);
 		cancel_work_sync(&hdata->reset_work);
 		rmi_unregister_transport_device(&hdata->xport);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-roccat-kone.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-roccat-kone.c
@@ -294,31 +294,40 @@
 	struct kone_device *kone = hid_get_drvdata(dev_get_drvdata(dev));
 	struct usb_device *usb_dev = interface_to_usbdev(to_usb_interface(dev));
 	int retval = 0, difference, old_profile;
+	struct kone_settings *settings = (struct kone_settings *)buf;
 
 	/* I need to get my data in one piece */
 	if (off != 0 || count != sizeof(struct kone_settings))
 		return -EINVAL;
 
 	mutex_lock(&kone->kone_lock);
-	difference = memcmp(buf, &kone->settings, sizeof(struct kone_settings));
+	difference = memcmp(settings, &kone->settings,
+			    sizeof(struct kone_settings));
 	if (difference) {
-		retval = kone_set_settings(usb_dev,
-				(struct kone_settings const *)buf);
-		if (retval) {
-			mutex_unlock(&kone->kone_lock);
-			return retval;
+		if (settings->startup_profile < 1 ||
+		    settings->startup_profile > 5) {
+			retval = -EINVAL;
+			goto unlock;
 		}
 
+		retval = kone_set_settings(usb_dev, settings);
+		if (retval)
+			goto unlock;
+
 		old_profile = kone->settings.startup_profile;
-		memcpy(&kone->settings, buf, sizeof(struct kone_settings));
+		memcpy(&kone->settings, settings, sizeof(struct kone_settings));
 
 		kone_profile_activated(kone, kone->settings.startup_profile);
 
 		if (kone->settings.startup_profile != old_profile)
 			kone_profile_report(kone, kone->settings.startup_profile);
 	}
+unlock:
 	mutex_unlock(&kone->kone_lock);
 
+	if (retval)
+		return retval;
+
 	return sizeof(struct kone_settings);
 }
 static BIN_ATTR(settings, 0660, kone_sysfs_read_settings,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-sensor-hub.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-sensor-hub.c
@@ -483,7 +483,8 @@
 		return 1;
 
 	ptr = raw_data;
-	ptr++; /* Skip report id */
+	if (report->id)
+		ptr++; /* Skip report id */
 
 	spin_lock_irqsave(&pdata->lock, flags);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-sony.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-sony.c
@@ -867,6 +867,23 @@
 	if (sc->quirks & PS3REMOTE)
 		return ps3remote_fixup(hdev, rdesc, rsize);
 
+	/*
+	 * Some knock-off USB dongles incorrectly report their button count
+	 * as 13 instead of 16 causing three non-functional buttons.
+	 */
+	if ((sc->quirks & SIXAXIS_CONTROLLER_USB) && *rsize >= 45 &&
+		/* Report Count (13) */
+		rdesc[23] == 0x95 && rdesc[24] == 0x0D &&
+		/* Usage Maximum (13) */
+		rdesc[37] == 0x29 && rdesc[38] == 0x0D &&
+		/* Report Count (3) */
+		rdesc[43] == 0x95 && rdesc[44] == 0x03) {
+		hid_info(hdev, "Fixing up USB dongle report descriptor\n");
+		rdesc[24] = 0x10;
+		rdesc[38] = 0x10;
+		rdesc[44] = 0x00;
+	}
+
 	return rdesc;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-steam.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-steam.c
@@ -526,7 +526,8 @@
 			steam_battery_register(steam);
 
 		mutex_lock(&steam_devices_lock);
-		list_add(&steam->list, &steam_devices);
+		if (list_empty(&steam->list))
+			list_add(&steam->list, &steam_devices);
 		mutex_unlock(&steam_devices_lock);
 	}
 
@@ -552,7 +553,7 @@
 		hid_info(steam->hdev, "Steam Controller '%s' disconnected",
 				steam->serial_no);
 		mutex_lock(&steam_devices_lock);
-		list_del(&steam->list);
+		list_del_init(&steam->list);
 		mutex_unlock(&steam_devices_lock);
 		steam->serial_no[0] = 0;
 	}
@@ -738,6 +739,7 @@
 	mutex_init(&steam->mutex);
 	steam->quirks = id->driver_data;
 	INIT_WORK(&steam->work_connect, steam_work_connect_cb);
+	INIT_LIST_HEAD(&steam->list);
 
 	steam->client_hdev = steam_create_client_hid(hdev);
 	if (IS_ERR(steam->client_hdev)) {
@@ -768,8 +770,12 @@
 
 	if (steam->quirks & STEAM_QUIRK_WIRELESS) {
 		hid_info(hdev, "Steam wireless receiver connected");
+		/* If using a wireless adaptor ask for connection status */
+		steam->connected = false;
 		steam_request_conn_status(steam);
 	} else {
+		/* A wired connection is always present */
+		steam->connected = true;
 		ret = steam_register(steam);
 		if (ret) {
 			hid_err(hdev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-uclogic-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-uclogic-core.c
@@ -385,6 +385,8 @@
 				USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER,
 				USB_DEVICE_ID_UGTIZER_TABLET_GP0610) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER,
+				USB_DEVICE_ID_UGTIZER_TABLET_GT5040) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
 				USB_DEVICE_ID_UGEE_TABLET_G5) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hid-uclogic-params.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hid-uclogic-params.c
@@ -997,6 +997,8 @@
 		break;
 	case VID_PID(USB_VENDOR_ID_UGTIZER,
 		     USB_DEVICE_ID_UGTIZER_TABLET_GP0610):
+	case VID_PID(USB_VENDOR_ID_UGTIZER,
+		     USB_DEVICE_ID_UGTIZER_TABLET_GT5040):
 	case VID_PID(USB_VENDOR_ID_UGEE,
 		     USB_DEVICE_ID_UGEE_XPPEN_TABLET_G540):
 	case VID_PID(USB_VENDOR_ID_UGEE,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/hidraw.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/hidraw.c
@@ -249,13 +249,14 @@
 static __poll_t hidraw_poll(struct file *file, poll_table *wait)
 {
 	struct hidraw_list *list = file->private_data;
+	__poll_t mask = EPOLLOUT | EPOLLWRNORM; /* hidraw is always writable */
 
 	poll_wait(file, &list->hidraw->wait, wait);
 	if (list->head != list->tail)
-		return EPOLLIN | EPOLLRDNORM | EPOLLOUT;
+		mask |= EPOLLIN | EPOLLRDNORM;
 	if (!list->hidraw->exist)
-		return EPOLLERR | EPOLLHUP;
-	return 0;
+		mask |= EPOLLERR | EPOLLHUP;
+	return mask;
 }
 
 static int hidraw_open(struct inode *inode, struct file *file)
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/i2c-hid/i2c-hid-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -48,6 +48,9 @@
 #define I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV	BIT(0)
 #define I2C_HID_QUIRK_NO_IRQ_AFTER_RESET	BIT(1)
 #define I2C_HID_QUIRK_BOGUS_IRQ			BIT(4)
+#define I2C_HID_QUIRK_RESET_ON_RESUME		BIT(5)
+#define I2C_HID_QUIRK_BAD_INPUT_SIZE		BIT(6)
+
 
 /* flags */
 #define I2C_HID_STARTED		0
@@ -170,8 +173,18 @@
 		I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV },
 	{ I2C_VENDOR_ID_HANTICK, I2C_PRODUCT_ID_HANTICK_5288,
 		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
+	{ I2C_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15,
+		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
+	{ I2C_VENDOR_ID_RAYDIUM, I2C_PRODUCT_ID_RAYDIUM_3118,
+		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
 	{ USB_VENDOR_ID_ELAN, HID_ANY_ID,
 		 I2C_HID_QUIRK_BOGUS_IRQ },
+	{ USB_VENDOR_ID_ALPS_JP, HID_ANY_ID,
+		 I2C_HID_QUIRK_RESET_ON_RESUME },
+	{ I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA2393,
+		 I2C_HID_QUIRK_RESET_ON_RESUME },
+	{ USB_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720,
+		I2C_HID_QUIRK_BAD_INPUT_SIZE },
 	{ 0, 0 }
 };
 
@@ -411,6 +424,19 @@
 		dev_err(&client->dev, "failed to change power setting.\n");
 
 set_pwr_exit:
+
+	/*
+	 * The HID over I2C specification states that if a DEVICE needs time
+	 * after the PWR_ON request, it should utilise CLOCK stretching.
+	 * However, it has been observered that the Windows driver provides a
+	 * 1ms sleep between the PWR_ON and RESET requests.
+	 * According to Goodix Windows even waits 60 ms after (other?)
+	 * PWR_ON requests. Testing has confirmed that several devices
+	 * will not work properly without a delay after a PWR_ON request.
+	 */
+	if (!ret && power_state == I2C_HID_PWR_ON)
+		msleep(60);
+
 	return ret;
 }
 
@@ -432,15 +458,6 @@
 	if (ret)
 		goto out_unlock;
 
-	/*
-	 * The HID over I2C specification states that if a DEVICE needs time
-	 * after the PWR_ON request, it should utilise CLOCK stretching.
-	 * However, it has been observered that the Windows driver provides a
-	 * 1ms sleep between the PWR_ON and RESET requests and that some devices
-	 * rely on this.
-	 */
-	usleep_range(1000, 5000);
-
 	i2c_hid_dbg(ihid, "resetting...\n");
 
 	ret = i2c_hid_command(client, &hid_reset_cmd, NULL, 0);
@@ -493,9 +510,15 @@
 	}
 
 	if ((ret_size > size) || (ret_size < 2)) {
-		dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n",
-			__func__, size, ret_size);
-		return;
+		if (ihid->quirks & I2C_HID_QUIRK_BAD_INPUT_SIZE) {
+			ihid->inbuf[0] = size & 0xff;
+			ihid->inbuf[1] = size >> 8;
+			ret_size = size;
+		} else {
+			dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n",
+				__func__, size, ret_size);
+			return;
+		}
 	}
 
 	i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf);
@@ -1212,8 +1235,15 @@
 	 * solves "incomplete reports" on Raydium devices 2386:3118 and
 	 * 2386:4B33 and fixes various SIS touchscreens no longer sending
 	 * data after a suspend/resume.
+	 *
+	 * However some ALPS touchpads generate IRQ storm without reset, so
+	 * let's still reset them here.
 	 */
-	ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
+	if (ihid->quirks & I2C_HID_QUIRK_RESET_ON_RESUME)
+		ret = i2c_hid_hwreset(client);
+	else
+		ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
+
 	if (ret)
 		return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
@@ -342,6 +342,14 @@
 		.driver_data = (void *)&sipodev_desc
 	},
 	{
+		.ident = "Trekstor SURFBOOK E11B",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "TREKSTOR"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SURFBOOK E11B"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
+	{
 		.ident = "Direkt-Tek DTLAPY116-2",
 		.matches = {
 			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Direkt-Tek"),
@@ -366,6 +374,14 @@
 		.driver_data = (void *)&sipodev_desc
 	},
 	{
+		.ident = "Mediacom FlexBook edge 13",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "MEDIACOM"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "FlexBook_edge13-M-FBE13"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
+	{
 		.ident = "Odys Winbook 13",
 		.matches = {
 			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AXDIA International GmbH"),
@@ -381,6 +397,22 @@
 		},
 		.driver_data = (void *)&sipodev_desc
 	},
+	{
+		.ident = "Schneider SCL142ALM",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SCHNEIDER"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SCL142ALM"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
+	{
+		.ident = "Vero K147",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VERO"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "K147"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
 	{ }	/* Terminate list */
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/intel-ish-hid/ipc/hw-ish.h
+++ linux-gkeop-5.4-5.4.0/drivers/hid/intel-ish-hid/ipc/hw-ish.h
@@ -24,7 +24,10 @@
 #define ICL_MOBILE_DEVICE_ID	0x34FC
 #define SPT_H_DEVICE_ID		0xA135
 #define CML_LP_DEVICE_ID	0x02FC
+#define CMP_H_DEVICE_ID		0x06FC
 #define EHL_Ax_DEVICE_ID	0x4BB3
+#define TGL_LP_DEVICE_ID	0xA0FC
+#define TGL_H_DEVICE_ID		0x43FC
 
 #define	REVISION_ID_CHT_A0	0x6
 #define	REVISION_ID_CHT_Ax_SI	0x0
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/intel-ish-hid/ipc/pci-ish.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/intel-ish-hid/ipc/pci-ish.c
@@ -34,7 +34,10 @@
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, ICL_MOBILE_DEVICE_ID)},
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, SPT_H_DEVICE_ID)},
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, CML_LP_DEVICE_ID)},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, CMP_H_DEVICE_ID)},
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, EHL_Ax_DEVICE_ID)},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, TGL_LP_DEVICE_ID)},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, TGL_H_DEVICE_ID)},
 	{0, }
 };
 MODULE_DEVICE_TABLE(pci, ish_pci_tbl);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/intel-ish-hid/ishtp-fw-loader.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/intel-ish-hid/ishtp-fw-loader.c
@@ -480,6 +480,7 @@
 			    sizeof(ldr_xfer_query_resp));
 	if (rv < 0) {
 		client_data->flag_retry = true;
+		*fw_info = (struct shim_fw_info){};
 		return rv;
 	}
 
@@ -489,6 +490,7 @@
 			"data size %d is not equal to size of loader_xfer_query_response %zu\n",
 			rv, sizeof(struct loader_xfer_query_response));
 		client_data->flag_retry = true;
+		*fw_info = (struct shim_fw_info){};
 		return -EMSGSIZE;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/uhid.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/uhid.c
@@ -766,13 +766,14 @@
 static __poll_t uhid_char_poll(struct file *file, poll_table *wait)
 {
 	struct uhid_device *uhid = file->private_data;
+	__poll_t mask = EPOLLOUT | EPOLLWRNORM; /* uhid is always writable */
 
 	poll_wait(file, &uhid->waitq, wait);
 
 	if (uhid->head != uhid->tail)
-		return EPOLLIN | EPOLLRDNORM;
+		mask |= EPOLLIN | EPOLLRDNORM;
 
-	return 0;
+	return mask;
 }
 
 static const struct file_operations uhid_fops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/usbhid/hid-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/usbhid/hid-core.c
@@ -682,16 +682,21 @@
 	struct usbhid_device *usbhid = hid->driver_data;
 	int res;
 
+	mutex_lock(&usbhid->mutex);
+
 	set_bit(HID_OPENED, &usbhid->iofl);
 
-	if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
-		return 0;
+	if (hid->quirks & HID_QUIRK_ALWAYS_POLL) {
+		res = 0;
+		goto Done;
+	}
 
 	res = usb_autopm_get_interface(usbhid->intf);
 	/* the device must be awake to reliably request remote wakeup */
 	if (res < 0) {
 		clear_bit(HID_OPENED, &usbhid->iofl);
-		return -EIO;
+		res = -EIO;
+		goto Done;
 	}
 
 	usbhid->intf->needs_remote_wakeup = 1;
@@ -725,6 +730,9 @@
 		msleep(50);
 
 	clear_bit(HID_RESUME_RUNNING, &usbhid->iofl);
+
+ Done:
+	mutex_unlock(&usbhid->mutex);
 	return res;
 }
 
@@ -732,6 +740,8 @@
 {
 	struct usbhid_device *usbhid = hid->driver_data;
 
+	mutex_lock(&usbhid->mutex);
+
 	/*
 	 * Make sure we don't restart data acquisition due to
 	 * a resumption we no longer care about by avoiding racing
@@ -743,12 +753,13 @@
 		clear_bit(HID_IN_POLLING, &usbhid->iofl);
 	spin_unlock_irq(&usbhid->lock);
 
-	if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
-		return;
+	if (!(hid->quirks & HID_QUIRK_ALWAYS_POLL)) {
+		hid_cancel_delayed_stuff(usbhid);
+		usb_kill_urb(usbhid->urbin);
+		usbhid->intf->needs_remote_wakeup = 0;
+	}
 
-	hid_cancel_delayed_stuff(usbhid);
-	usb_kill_urb(usbhid->urbin);
-	usbhid->intf->needs_remote_wakeup = 0;
+	mutex_unlock(&usbhid->mutex);
 }
 
 /*
@@ -1057,6 +1068,8 @@
 	unsigned int n, insize = 0;
 	int ret;
 
+	mutex_lock(&usbhid->mutex);
+
 	clear_bit(HID_DISCONNECTED, &usbhid->iofl);
 
 	usbhid->bufsize = HID_MIN_BUFFER_SIZE;
@@ -1177,6 +1190,8 @@
 		usbhid_set_leds(hid);
 		device_set_wakeup_enable(&dev->dev, 1);
 	}
+
+	mutex_unlock(&usbhid->mutex);
 	return 0;
 
 fail:
@@ -1187,6 +1202,7 @@
 	usbhid->urbout = NULL;
 	usbhid->urbctrl = NULL;
 	hid_free_buffers(dev, hid);
+	mutex_unlock(&usbhid->mutex);
 	return ret;
 }
 
@@ -1202,6 +1218,8 @@
 		usbhid->intf->needs_remote_wakeup = 0;
 	}
 
+	mutex_lock(&usbhid->mutex);
+
 	clear_bit(HID_STARTED, &usbhid->iofl);
 	spin_lock_irq(&usbhid->lock);	/* Sync with error and led handlers */
 	set_bit(HID_DISCONNECTED, &usbhid->iofl);
@@ -1222,6 +1240,8 @@
 	usbhid->urbout = NULL;
 
 	hid_free_buffers(hid_to_usb_dev(hid), hid);
+
+	mutex_unlock(&usbhid->mutex);
 }
 
 static int usbhid_power(struct hid_device *hid, int lvl)
@@ -1382,6 +1402,7 @@
 	INIT_WORK(&usbhid->reset_work, hid_reset);
 	timer_setup(&usbhid->io_retry, hid_retry_timeout, 0);
 	spin_lock_init(&usbhid->lock);
+	mutex_init(&usbhid->mutex);
 
 	ret = hid_add_device(hid);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/usbhid/hiddev.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/usbhid/hiddev.c
@@ -241,12 +241,51 @@
 	return 0;
 }
 
+static int __hiddev_open(struct hiddev *hiddev, struct file *file)
+{
+	struct hiddev_list *list;
+	int error;
+
+	lockdep_assert_held(&hiddev->existancelock);
+
+	list = vzalloc(sizeof(*list));
+	if (!list)
+		return -ENOMEM;
+
+	mutex_init(&list->thread_lock);
+	list->hiddev = hiddev;
+
+	if (!hiddev->open++) {
+		error = hid_hw_power(hiddev->hid, PM_HINT_FULLON);
+		if (error < 0)
+			goto err_drop_count;
+
+		error = hid_hw_open(hiddev->hid);
+		if (error < 0)
+			goto err_normal_power;
+	}
+
+	spin_lock_irq(&hiddev->list_lock);
+	list_add_tail(&list->node, &hiddev->list);
+	spin_unlock_irq(&hiddev->list_lock);
+
+	file->private_data = list;
+
+	return 0;
+
+err_normal_power:
+	hid_hw_power(hiddev->hid, PM_HINT_NORMAL);
+err_drop_count:
+	hiddev->open--;
+	vfree(list);
+	return error;
+}
+
 /*
  * open file op
  */
 static int hiddev_open(struct inode *inode, struct file *file)
 {
-	struct hiddev_list *list;
 	struct usb_interface *intf;
 	struct hid_device *hid;
 	struct hiddev *hiddev;
@@ -255,66 +294,14 @@
 	intf = usbhid_find_interface(iminor(inode));
 	if (!intf)
 		return -ENODEV;
+
 	hid = usb_get_intfdata(intf);
 	hiddev = hid->hiddev;
 
-	if (!(list = vzalloc(sizeof(struct hiddev_list))))
-		return -ENOMEM;
-	mutex_init(&list->thread_lock);
-	list->hiddev = hiddev;
-	file->private_data = list;
-
-	/*
-	 * no need for locking because the USB major number
-	 * is shared which usbcore guards against disconnect
-	 */
-	if (list->hiddev->exist) {
-		if (!list->hiddev->open++) {
-			res = hid_hw_open(hiddev->hid);
-			if (res < 0)
-				goto bail;
-		}
-	} else {
-		res = -ENODEV;
-		goto bail;
-	}
-
-	spin_lock_irq(&list->hiddev->list_lock);
-	list_add_tail(&list->node, &hiddev->list);
-	spin_unlock_irq(&list->hiddev->list_lock);
-
 	mutex_lock(&hiddev->existancelock);
-	/*
-	 * recheck exist with existance lock held to
-	 * avoid opening a disconnected device
-	 */
-	if (!list->hiddev->exist) {
-		res = -ENODEV;
-		goto bail_unlock;
-	}
-	if (!list->hiddev->open++)
-		if (list->hiddev->exist) {
-			struct hid_device *hid = hiddev->hid;
-			res = hid_hw_power(hid, PM_HINT_FULLON);
-			if (res < 0)
-				goto bail_unlock;
-			res = hid_hw_open(hid);
-			if (res < 0)
-				goto bail_normal_power;
-		}
-	mutex_unlock(&hiddev->existancelock);
-	return 0;
-bail_normal_power:
-	hid_hw_power(hid, PM_HINT_NORMAL);
-bail_unlock:
+	res = hiddev->exist ? __hiddev_open(hiddev, file) : -ENODEV;
 	mutex_unlock(&hiddev->existancelock);
 
-	spin_lock_irq(&list->hiddev->list_lock);
-	list_del(&list->node);
-	spin_unlock_irq(&list->hiddev->list_lock);
-bail:
-	file->private_data = NULL;
-	vfree(list);
 	return res;
 }
 
@@ -532,12 +519,16 @@
 
 		switch (cmd) {
 		case HIDIOCGUSAGE:
+			if (uref->usage_index >= field->report_count)
+				goto inval;
 			uref->value = field->value[uref->usage_index];
 			if (copy_to_user(user_arg, uref, sizeof(*uref)))
 				goto fault;
 			goto goodreturn;
 
 		case HIDIOCSUSAGE:
+			if (uref->usage_index >= field->report_count)
+				goto inval;
 			field->value[uref->usage_index] = uref->value;
 			goto goodreturn;
 
@@ -954,9 +945,9 @@
 	hiddev->exist = 0;
 
 	if (hiddev->open) {
-		mutex_unlock(&hiddev->existancelock);
 		hid_hw_close(hiddev->hid);
 		wake_up_interruptible(&hiddev->wait);
+		mutex_unlock(&hiddev->existancelock);
 	} else {
 		mutex_unlock(&hiddev->existancelock);
 		kfree(hiddev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/usbhid/usbhid.h
+++ linux-gkeop-5.4-5.4.0/drivers/hid/usbhid/usbhid.h
@@ -80,6 +80,7 @@
 	dma_addr_t outbuf_dma;                                          /* Output buffer dma */
 	unsigned long last_out;							/* record of last output for timeouts */
 
+	struct mutex mutex;						/* start/stop/open/close */
 	spinlock_t lock;						/* fifo spinlock */
 	unsigned long iofl;                                             /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */
 	struct timer_list io_retry;                                     /* Retry timer */
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/wacom_sys.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/wacom_sys.c
@@ -147,9 +147,9 @@
 	}
 
 	if (flush)
-		wacom_wac_queue_flush(hdev, &wacom_wac->pen_fifo);
+		wacom_wac_queue_flush(hdev, wacom_wac->pen_fifo);
 	else if (insert)
-		wacom_wac_queue_insert(hdev, &wacom_wac->pen_fifo,
+		wacom_wac_queue_insert(hdev, wacom_wac->pen_fifo,
 				       raw_data, report_size);
 
 	return insert && !flush;
@@ -319,9 +319,11 @@
 			data[0] = field->report->id;
 			ret = wacom_get_report(hdev, HID_FEATURE_REPORT,
 					       data, n, WAC_CMD_RETRIES);
-			if (ret == n) {
+			if (ret == n && features->type == HID_GENERIC) {
 				ret = hid_report_raw_event(hdev,
 					HID_FEATURE_REPORT, data, n, 0);
+			} else if (ret == 2 && features->type != HID_GENERIC) {
+				features->touch_max = data[1];
 			} else {
 				features->touch_max = 16;
 				hid_warn(hdev, "wacom_feature_mapping: "
@@ -1268,6 +1270,38 @@
 					       group);
 }
 
+static void wacom_devm_kfifo_release(struct device *dev, void *res)
+{
+	struct kfifo_rec_ptr_2 *devres = res;
+
+	kfifo_free(devres);
+}
+
+static int wacom_devm_kfifo_alloc(struct wacom *wacom)
+{
+	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
+	struct kfifo_rec_ptr_2 *pen_fifo;
+	int error;
+
+	pen_fifo = devres_alloc(wacom_devm_kfifo_release,
+			      sizeof(struct kfifo_rec_ptr_2),
+			      GFP_KERNEL);
+
+	if (!pen_fifo)
+		return -ENOMEM;
+
+	error = kfifo_alloc(pen_fifo, WACOM_PKGLEN_MAX, GFP_KERNEL);
+	if (error) {
+		devres_free(pen_fifo);
+		return error;
+	}
+
+	devres_add(&wacom->hdev->dev, pen_fifo);
+	wacom_wac->pen_fifo = pen_fifo;
+
+	return 0;
+}
+
 enum led_brightness wacom_leds_brightness_get(struct wacom_led *led)
 {
 	struct wacom *wacom = led->wacom;
@@ -2722,7 +2756,7 @@
 	if (features->check_for_hid_type && features->hid_type != hdev->type)
 		return -ENODEV;
 
-	error = kfifo_alloc(&wacom_wac->pen_fifo, WACOM_PKGLEN_MAX, GFP_KERNEL);
+	error = wacom_devm_kfifo_alloc(wacom);
 	if (error)
 		return error;
 
@@ -2784,8 +2818,6 @@
 
 	if (wacom->wacom_wac.features.type != REMOTE)
 		wacom_release_resources(wacom);
-
-	kfifo_free(&wacom_wac->pen_fifo);
 }
 
 #ifdef CONFIG_PM
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/wacom_wac.c
+++ linux-gkeop-5.4-5.4.0/drivers/hid/wacom_wac.c
@@ -1427,11 +1427,13 @@
 {
 	struct input_dev *pad_input = wacom->pad_input;
 	unsigned char *data = wacom->data;
+	int nbuttons = wacom->features.numbered_buttons;
 
-	int buttons = data[282] | ((data[281] & 0x40) << 2);
+	int expresskeys = data[282];
+	int center = (data[281] & 0x40) >> 6;
 	int ring = data[285] & 0x7F;
 	bool ringstatus = data[285] & 0x80;
-	bool prox = buttons || ringstatus;
+	bool prox = expresskeys || center || ringstatus;
 
 	/* Fix touchring data: userspace expects 0 at left and increasing clockwise */
 	ring = 71 - ring;
@@ -1439,7 +1441,8 @@
 	if (ring > 71)
 		ring -= 72;
 
-	wacom_report_numbered_buttons(pad_input, 9, buttons);
+	wacom_report_numbered_buttons(pad_input, nbuttons,
+                                      expresskeys | (center << (nbuttons - 1)));
 
 	input_report_abs(pad_input, ABS_WHEEL, ringstatus ? ring : 0);
 
@@ -2096,14 +2099,16 @@
 		    (hdev->product == 0x34d || hdev->product == 0x34e ||  /* MobileStudio Pro */
 		     hdev->product == 0x357 || hdev->product == 0x358 ||  /* Intuos Pro 2 */
 		     hdev->product == 0x392 ||				  /* Intuos Pro 2 */
-		     hdev->product == 0x398 || hdev->product == 0x399)) { /* MobileStudio Pro */
+		     hdev->product == 0x398 || hdev->product == 0x399 ||  /* MobileStudio Pro */
+		     hdev->product == 0x3AA)) {				  /* MobileStudio Pro */
 			value = (field->logical_maximum - value);
 
 			if (hdev->product == 0x357 || hdev->product == 0x358 ||
 			    hdev->product == 0x392)
 				value = wacom_offset_rotation(input, usage, value, 3, 16);
 			else if (hdev->product == 0x34d || hdev->product == 0x34e ||
-				 hdev->product == 0x398 || hdev->product == 0x399)
+				 hdev->product == 0x398 || hdev->product == 0x399 ||
+				 hdev->product == 0x3AA)
 				value = wacom_offset_rotation(input, usage, value, 1, 2);
 		}
 		else {
@@ -2595,7 +2600,12 @@
 		wacom_wac->is_invalid_bt_frame = !value;
 		return;
 	case HID_DG_CONTACTMAX:
-		features->touch_max = value;
+		if (!features->touch_max) {
+			features->touch_max = value;
+		} else {
+			hid_warn(hdev, "%s: ignoring attempt to overwrite non-zero touch_max "
+				 "%d -> %d\n", __func__, features->touch_max, value);
+		}
 		return;
 	}
 
@@ -2635,9 +2645,25 @@
 			case HID_DG_TIPSWITCH:
 				hid_data->last_slot_field = equivalent_usage;
 				break;
+			case HID_DG_CONTACTCOUNT:
+				hid_data->cc_report = report->id;
+				hid_data->cc_index = i;
+				hid_data->cc_value_index = j;
+				break;
 			}
 		}
 	}
+
+	if (hid_data->cc_report != 0 &&
+	    hid_data->cc_index >= 0) {
+		struct hid_field *field = report->field[hid_data->cc_index];
+		int value = field->value[hid_data->cc_value_index];
+		if (value)
+			hid_data->num_expected = value;
+	}
+	else {
+		hid_data->num_expected = wacom_wac->features.touch_max;
+	}
 }
 
 static void wacom_wac_finger_report(struct hid_device *hdev,
@@ -2647,7 +2673,6 @@
 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
 	struct input_dev *input = wacom_wac->touch_input;
 	unsigned touch_max = wacom_wac->features.touch_max;
-	struct hid_data *hid_data = &wacom_wac->hid_data;
 
 	/* If more packets of data are expected, give us a chance to
 	 * process them rather than immediately syncing a partial
@@ -2661,7 +2686,6 @@
 
 	input_sync(input);
 	wacom_wac->hid_data.num_received = 0;
-	hid_data->num_expected = 0;
 
 	/* keep touch state for pen event */
 	wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac);
@@ -2736,73 +2760,12 @@
 	}
 }
 
-static void wacom_set_num_expected(struct hid_device *hdev,
-				   struct hid_report *report,
-				   int collection_index,
-				   struct hid_field *field,
-				   int field_index)
-{
-	struct wacom *wacom = hid_get_drvdata(hdev);
-	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
-	struct hid_data *hid_data = &wacom_wac->hid_data;
-	unsigned int original_collection_level =
-		hdev->collection[collection_index].level;
-	bool end_collection = false;
-	int i;
-
-	if (hid_data->num_expected)
-		return;
-
-	// find the contact count value for this segment
-	for (i = field_index; i < report->maxfield && !end_collection; i++) {
-		struct hid_field *field = report->field[i];
-		unsigned int field_level =
-			hdev->collection[field->usage[0].collection_index].level;
-		unsigned int j;
-
-		if (field_level != original_collection_level)
-			continue;
-
-		for (j = 0; j < field->maxusage; j++) {
-			struct hid_usage *usage = &field->usage[j];
-
-			if (usage->collection_index != collection_index) {
-				end_collection = true;
-				break;
-			}
-			if (wacom_equivalent_usage(usage->hid) == HID_DG_CONTACTCOUNT) {
-				hid_data->cc_report = report->id;
-				hid_data->cc_index = i;
-				hid_data->cc_value_index = j;
-
-				if (hid_data->cc_report != 0 &&
-				    hid_data->cc_index >= 0) {
-
-					struct hid_field *field =
-						report->field[hid_data->cc_index];
-					int value =
-						field->value[hid_data->cc_value_index];
-
-					if (value)
-						hid_data->num_expected = value;
-				}
-			}
-		}
-	}
-
-	if (hid_data->cc_report == 0 || hid_data->cc_index < 0)
-		hid_data->num_expected = wacom_wac->features.touch_max;
-}
-
 static int wacom_wac_collection(struct hid_device *hdev, struct hid_report *report,
 			 int collection_index, struct hid_field *field,
 			 int field_index)
 {
 	struct wacom *wacom = hid_get_drvdata(hdev);
 
-	if (WACOM_FINGER_FIELD(field))
-		wacom_set_num_expected(hdev, report, collection_index, field,
-				       field_index);
 	wacom_report_events(hdev, report, collection_index, field_index);
 
 	/*
@@ -2815,7 +2778,9 @@
 	if (report->type != HID_INPUT_REPORT)
 		return -1;
 
-	if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
+	if (WACOM_PAD_FIELD(field))
+		return 0;
+	else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
 		wacom_wac_pen_report(hdev, report);
 	else if (WACOM_FINGER_FIELD(field) && wacom->wacom_wac.touch_input)
 		wacom_wac_finger_report(hdev, report);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hid/wacom_wac.h
+++ linux-gkeop-5.4-5.4.0/drivers/hid/wacom_wac.h
@@ -342,7 +342,7 @@
 	struct input_dev *pen_input;
 	struct input_dev *touch_input;
 	struct input_dev *pad_input;
-	struct kfifo_rec_ptr_2 pen_fifo;
+	struct kfifo_rec_ptr_2 *pen_fifo;
 	int pid;
 	int num_contacts_left;
 	u8 bt_features;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hsi/controllers/omap_ssi_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/hsi/controllers/omap_ssi_core.c
@@ -355,7 +355,7 @@
 
 	err = ida_simple_get(&platform_omap_ssi_ida, 0, 0, GFP_KERNEL);
 	if (err < 0)
-		goto out_err;
+		return err;
 	ssi->id = err;
 
 	ssi->owner = THIS_MODULE;
@@ -424,7 +424,7 @@
 	struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi);
 	int err;
 
-	err = pm_runtime_get_sync(ssi->device.parent);
+	err = pm_runtime_resume_and_get(ssi->device.parent);
 	if (err < 0) {
 		dev_err(&ssi->device, "runtime PM failed %d\n", err);
 		return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hv/channel_mgmt.c
+++ linux-gkeop-5.4-5.4.0/drivers/hv/channel_mgmt.c
@@ -769,7 +769,7 @@
 	void *page_addr;
 	struct hv_message *msg;
 	struct vmbus_channel_message_header *hdr;
-	u32 message_type;
+	u32 message_type, i;
 
 	/*
 	 * CHANNELMSG_UNLOAD_RESPONSE is always delivered to the CPU which was
@@ -779,8 +779,11 @@
 	 * functional and vmbus_unload_response() will complete
 	 * vmbus_connection.unload_event. If not, the last thing we can do is
 	 * read message pages for all CPUs directly.
+	 *
+	 * Wait no more than 10 seconds so that the panic path can't get
+	 * hung forever in case the response message isn't seen.
 	 */
-	while (1) {
+	for (i = 0; i < 1000; i++) {
 		if (completion_done(&vmbus_connection.unload_event))
 			break;
 
@@ -839,6 +842,9 @@
 {
 	struct vmbus_channel_message_header hdr;
 
+	if (xchg(&vmbus_connection.conn_state, DISCONNECTED) == DISCONNECTED)
+		return;
+
 	/* Pre-Win2012R2 hosts don't support reconnect */
 	if (vmbus_proto_version < VERSION_WIN8_1)
 		return;
@@ -1095,8 +1101,7 @@
 			vmbus_device_unregister(channel->device_obj);
 			put_device(dev);
 		}
-	}
-	if (channel->primary_channel != NULL) {
+	} else if (channel->primary_channel != NULL) {
 		/*
 		 * Sub-channel is being rescinded. Following is the channel
 		 * close sequence when initiated from the driveri (refer to
@@ -1351,6 +1356,8 @@
 	{ CHANNELMSG_19,			0, NULL },
 	{ CHANNELMSG_20,			0, NULL },
 	{ CHANNELMSG_TL_CONNECT_REQUEST,	0, NULL },
+	{ CHANNELMSG_22,			0, NULL },
+	{ CHANNELMSG_TL_CONNECT_RESULT,		0, NULL },
 };
 
 /*
@@ -1362,25 +1369,16 @@
 {
 	struct hv_message *msg = context;
 	struct vmbus_channel_message_header *hdr;
-	int size;
 
 	hdr = (struct vmbus_channel_message_header *)msg->u.payload;
-	size = msg->header.payload_size;
 
 	trace_vmbus_on_message(hdr);
 
-	if (hdr->msgtype >= CHANNELMSG_COUNT) {
-		pr_err("Received invalid channel message type %d size %d\n",
-			   hdr->msgtype, size);
-		print_hex_dump_bytes("", DUMP_PREFIX_NONE,
-				     (unsigned char *)msg->u.payload, size);
-		return;
-	}
-
-	if (channel_message_table[hdr->msgtype].message_handler)
-		channel_message_table[hdr->msgtype].message_handler(hdr);
-	else
-		pr_err("Unhandled channel message type %d\n", hdr->msgtype);
+	/*
+	 * vmbus_on_msg_dpc() makes sure the hdr->msgtype here can not go
+	 * out of bound and the message_handler pointer can not be NULL.
+	 */
+	channel_message_table[hdr->msgtype].message_handler(hdr);
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/hv/connection.c
+++ linux-gkeop-5.4-5.4.0/drivers/hv/connection.c
@@ -67,7 +67,6 @@
 int vmbus_negotiate_version(struct vmbus_channel_msginfo *msginfo, u32 version)
 {
 	int ret = 0;
-	unsigned int cur_cpu;
 	struct vmbus_channel_initiate_contact *msg;
 	unsigned long flags;
 
@@ -100,24 +99,7 @@
 
 	msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]);
 	msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]);
-	/*
-	 * We want all channel messages to be delivered on CPU 0.
-	 * This has been the behavior pre-win8. This is not
-	 * perf issue and having all channel messages delivered on CPU 0
-	 * would be ok.
-	 * For post win8 hosts, we support receiving channel messagges on
-	 * all the CPUs. This is needed for kexec to work correctly where
-	 * the CPU attempting to connect may not be CPU 0.
-	 */
-	if (version >= VERSION_WIN8_1) {
-		cur_cpu = get_cpu();
-		msg->target_vcpu = hv_cpu_number_to_vp_number(cur_cpu);
-		vmbus_connection.connect_cpu = cur_cpu;
-		put_cpu();
-	} else {
-		msg->target_vcpu = 0;
-		vmbus_connection.connect_cpu = 0;
-	}
+	msg->target_vcpu = hv_cpu_number_to_vp_number(VMBUS_CONNECT_CPU);
 
 	/*
 	 * Add to list before we send the request since we may
--- linux-gkeop-5.4-5.4.0.orig/drivers/hv/hv.c
+++ linux-gkeop-5.4-5.4.0/drivers/hv/hv.c
@@ -250,6 +250,17 @@
 	unsigned long flags;
 
 	/*
+	 * Hyper-V does not provide a way to change the connect CPU once
+	 * it is set; we must prevent the connect CPU from going offline
+	 * while the VM is running normally. But in the panic or kexec()
+	 * path where the vmbus is already disconnected, the CPU must be
+	 * allowed to shut down.
+	 */
+	if (cpu == VMBUS_CONNECT_CPU &&
+	    vmbus_connection.conn_state == CONNECTED)
+		return -EBUSY;
+
+	/*
 	 * Search for channels which are bound to the CPU we're about to
 	 * cleanup. In case we find one and vmbus is still connected we need to
 	 * fail, this will effectively prevent CPU offlining. There is no way
--- linux-gkeop-5.4-5.4.0.orig/drivers/hv/hv_balloon.c
+++ linux-gkeop-5.4-5.4.0/drivers/hv/hv_balloon.c
@@ -1213,10 +1213,7 @@
 	unsigned int i, j;
 	struct page *pg;
 
-	if (num_pages < alloc_unit)
-		return 0;
-
-	for (i = 0; (i * alloc_unit) < num_pages; i++) {
+	for (i = 0; i < num_pages / alloc_unit; i++) {
 		if (bl_resp->hdr.size + sizeof(union dm_mem_page_range) >
 			PAGE_SIZE)
 			return i * alloc_unit;
@@ -1254,7 +1251,7 @@
 
 	}
 
-	return num_pages;
+	return i * alloc_unit;
 }
 
 static void balloon_up(struct work_struct *dummy)
@@ -1269,9 +1266,6 @@
 	long avail_pages;
 	unsigned long floor;
 
-	/* The host balloons pages in 2M granularity. */
-	WARN_ON_ONCE(num_pages % PAGES_IN_2M != 0);
-
 	/*
 	 * We will attempt 2M allocations. However, if we fail to
 	 * allocate 2M chunks, we will go back to 4k allocations.
@@ -1281,14 +1275,13 @@
 	avail_pages = si_mem_available();
 	floor = compute_balloon_floor();
 
-	/* Refuse to balloon below the floor, keep the 2M granularity. */
+	/* Refuse to balloon below the floor. */
 	if (avail_pages < num_pages || avail_pages - num_pages < floor) {
-		pr_warn("Balloon request will be partially fulfilled. %s\n",
+		pr_info("Balloon request will be partially fulfilled. %s\n",
 			avail_pages < num_pages ? "Not enough memory." :
 			"Balloon floor reached.");
 
 		num_pages = avail_pages > floor ? (avail_pages - floor) : 0;
-		num_pages -= num_pages % PAGES_IN_2M;
 	}
 
 	while (!done) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/hv/hyperv_vmbus.h
+++ linux-gkeop-5.4-5.4.0/drivers/hv/hyperv_vmbus.h
@@ -212,12 +212,13 @@
 
 #define MAX_SIZE_CHANNEL_MESSAGE	HV_MESSAGE_PAYLOAD_BYTE_COUNT
 
-struct vmbus_connection {
-	/*
-	 * CPU on which the initial host contact was made.
-	 */
-	int connect_cpu;
+/*
+ * The CPU that Hyper-V will interrupt for VMBUS messages, such as
+ * CHANNELMSG_OFFERCHANNEL and CHANNELMSG_RESCIND_CHANNELOFFER.
+ */
+#define VMBUS_CONNECT_CPU	0
 
+struct vmbus_connection {
 	u32 msg_conn_id;
 
 	atomic_t offer_in_progress;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hv/vmbus_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/hv/vmbus_drv.c
@@ -31,6 +31,7 @@
 #include <linux/kdebug.h>
 #include <linux/efi.h>
 #include <linux/random.h>
+#include <linux/kernel.h>
 #include <linux/syscore_ops.h>
 #include <clocksource/hyperv_timer.h>
 #include "hyperv_vmbus.h"
@@ -48,14 +49,35 @@
 
 static void *hv_panic_page;
 
+/*
+ * Boolean to control whether to report panic messages over Hyper-V.
+ *
+ * It can be set via /proc/sys/kernel/hyperv/record_panic_msg
+ */
+static int sysctl_record_panic_msg = 1;
+
+static int hyperv_report_reg(void)
+{
+	return !sysctl_record_panic_msg || !hv_panic_page;
+}
+
 static int hyperv_panic_event(struct notifier_block *nb, unsigned long val,
 			      void *args)
 {
 	struct pt_regs *regs;
 
-	regs = current_pt_regs();
+	vmbus_initiate_unload(true);
 
-	hyperv_report_panic(regs, val);
+	/*
+	 * Hyper-V should be notified only once about a panic.  If we will be
+	 * doing hyperv_report_panic_msg() later with kmsg data, don't do
+	 * the notification here.
+	 */
+	if (ms_hyperv.misc_features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE
+	    && hyperv_report_reg()) {
+		regs = current_pt_regs();
+		hyperv_report_panic(regs, val, false);
+	}
 	return NOTIFY_DONE;
 }
 
@@ -65,7 +87,13 @@
 	struct die_args *die = (struct die_args *)args;
 	struct pt_regs *regs = die->regs;
 
-	hyperv_report_panic(regs, val);
+	/*
+	 * Hyper-V should be notified only once about a panic.  If we will be
+	 * doing hyperv_report_panic_msg() later with kmsg data, don't do
+	 * the notification here.
+	 */
+	if (hyperv_report_reg())
+		hyperv_report_panic(regs, val, true);
 	return NOTIFY_DONE;
 }
 
@@ -950,6 +978,9 @@
 
 	return drv->resume(dev);
 }
+#else
+#define vmbus_suspend NULL
+#define vmbus_resume NULL
 #endif /* CONFIG_PM_SLEEP */
 
 /*
@@ -967,11 +998,22 @@
 }
 
 /*
- * Note: we must use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS rather than
- * SET_SYSTEM_SLEEP_PM_OPS: see the comment before vmbus_bus_pm.
+ * Note: we must use the "noirq" ops: see the comment before vmbus_bus_pm.
+ *
+ * suspend_noirq/resume_noirq are set to NULL to support Suspend-to-Idle: we
+ * shouldn't suspend the vmbus devices upon Suspend-to-Idle, otherwise there
+ * is no way to wake up a Generation-2 VM.
+ *
+ * The other 4 ops are for hibernation.
  */
+
 static const struct dev_pm_ops vmbus_pm = {
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(vmbus_suspend, vmbus_resume)
+	.suspend_noirq	= NULL,
+	.resume_noirq	= NULL,
+	.freeze_noirq	= vmbus_suspend,
+	.thaw_noirq	= vmbus_resume,
+	.poweroff_noirq	= vmbus_suspend,
+	.restore_noirq	= vmbus_resume,
 };
 
 /* The one and only one */
@@ -1031,6 +1073,10 @@
 	}
 
 	entry = &channel_message_table[hdr->msgtype];
+
+	if (!entry->message_handler)
+		goto msg_handled;
+
 	if (entry->handler_type	== VMHT_BLOCKING) {
 		ctx = kmalloc(sizeof(*ctx), GFP_ATOMIC);
 		if (ctx == NULL)
@@ -1050,14 +1096,28 @@
 			/*
 			 * If we are handling the rescind message;
 			 * schedule the work on the global work queue.
+			 *
+			 * The OFFER message and the RESCIND message should
+			 * not be handled by the same serialized work queue,
+			 * because the OFFER handler may call vmbus_open(),
+			 * which tries to open the channel by sending an
+			 * OPEN_CHANNEL message to the host and waits for
+			 * the host's response; however, if the host has
+			 * rescinded the channel before it receives the
+			 * OPEN_CHANNEL message, the host just silently
+			 * ignores the OPEN_CHANNEL message; as a result,
+			 * the guest's OFFER handler hangs for ever, if we
+			 * handle the RESCIND message in the same serialized
+			 * work queue: the RESCIND handler can not start to
+			 * run before the OFFER handler finishes.
 			 */
-			schedule_work_on(vmbus_connection.connect_cpu,
+			schedule_work_on(VMBUS_CONNECT_CPU,
 					 &ctx->work);
 			break;
 
 		case CHANNELMSG_OFFERCHANNEL:
 			atomic_inc(&vmbus_connection.offer_in_progress);
-			queue_work_on(vmbus_connection.connect_cpu,
+			queue_work_on(VMBUS_CONNECT_CPU,
 				      vmbus_connection.work_queue,
 				      &ctx->work);
 			break;
@@ -1104,7 +1164,7 @@
 
 	INIT_WORK(&ctx->work, vmbus_onmessage_work);
 
-	queue_work_on(vmbus_connection.connect_cpu,
+	queue_work_on(VMBUS_CONNECT_CPU,
 		      vmbus_connection.work_queue,
 		      &ctx->work);
 }
@@ -1247,13 +1307,6 @@
 }
 
 /*
- * Boolean to control whether to report panic messages over Hyper-V.
- *
- * It can be set via /proc/sys/kernel/hyperv/record_panic_msg
- */
-static int sysctl_record_panic_msg = 1;
-
-/*
  * Callback from kmsg_dump. Grab as much as possible from the end of the kmsg
  * buffer and call into Hyper-V to transfer the data.
  */
@@ -1380,19 +1433,29 @@
 			hv_panic_page = (void *)get_zeroed_page(GFP_KERNEL);
 			if (hv_panic_page) {
 				ret = kmsg_dump_register(&hv_kmsg_dumper);
-				if (ret)
+				if (ret) {
 					pr_err("Hyper-V: kmsg dump register "
 						"error 0x%x\n", ret);
+					hv_free_hyperv_page(
+					    (unsigned long)hv_panic_page);
+					hv_panic_page = NULL;
+				}
 			} else
 				pr_err("Hyper-V: panic message page memory "
 					"allocation failed");
 		}
 
 		register_die_notifier(&hyperv_die_block);
-		atomic_notifier_chain_register(&panic_notifier_list,
-					       &hyperv_panic_block);
 	}
 
+	/*
+	 * Always register the panic notifier because we need to unload
+	 * the VMbus channel connection to prevent any VMbus
+	 * activity after the VM panics.
+	 */
+	atomic_notifier_chain_register(&panic_notifier_list,
+			       &hyperv_panic_block);
+
 	vmbus_request_offers();
 
 	return 0;
@@ -1406,7 +1469,6 @@
 	hv_remove_vmbus_irq();
 
 	bus_unregister(&hv_bus);
-	free_page((unsigned long)hv_panic_page);
 	unregister_sysctl_table(hv_ctl_table_hdr);
 	hv_ctl_table_hdr = NULL;
 	return ret;
@@ -2169,7 +2231,10 @@
 	if (atomic_read(&vmbus_connection.nr_chan_close_on_suspend) > 0)
 		wait_for_completion(&vmbus_connection.ready_for_suspend_event);
 
-	WARN_ON(atomic_read(&vmbus_connection.nr_chan_fixup_on_resume) != 0);
+	if (atomic_read(&vmbus_connection.nr_chan_fixup_on_resume) != 0) {
+		pr_err("Can not suspend due to a previous failed resuming\n");
+		return -EBUSY;
+	}
 
 	mutex_lock(&vmbus_connection.channel_mutex);
 
@@ -2202,8 +2267,6 @@
 
 	vmbus_initiate_unload(false);
 
-	vmbus_connection.conn_state = DISCONNECTED;
-
 	/* Reset the event for the next resume. */
 	reinit_completion(&vmbus_connection.ready_for_resume_event);
 
@@ -2245,13 +2308,18 @@
 
 	vmbus_request_offers();
 
-	wait_for_completion(&vmbus_connection.ready_for_resume_event);
+	if (wait_for_completion_timeout(
+		&vmbus_connection.ready_for_resume_event, 10 * HZ) == 0)
+		pr_err("Some vmbus device is missing after suspending?\n");
 
 	/* Reset the event for the next suspend. */
 	reinit_completion(&vmbus_connection.ready_for_suspend_event);
 
 	return 0;
 }
+#else
+#define vmbus_bus_suspend NULL
+#define vmbus_bus_resume NULL
 #endif /* CONFIG_PM_SLEEP */
 
 static const struct acpi_device_id vmbus_acpi_device_ids[] = {
@@ -2262,16 +2330,24 @@
 MODULE_DEVICE_TABLE(acpi, vmbus_acpi_device_ids);
 
 /*
- * Note: we must use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS rather than
- * SET_SYSTEM_SLEEP_PM_OPS, otherwise NIC SR-IOV can not work, because the
- * "pci_dev_pm_ops" uses the "noirq" callbacks: in the resume path, the
- * pci "noirq" restore callback runs before "non-noirq" callbacks (see
+ * Note: we must use the "no_irq" ops, otherwise hibernation can not work with
+ * PCI device assignment, because "pci_dev_pm_ops" uses the "noirq" ops: in
+ * the resume path, the pci "noirq" restore op runs before "non-noirq" op (see
  * resume_target_kernel() -> dpm_resume_start(), and hibernation_restore() ->
  * dpm_resume_end()). This means vmbus_bus_resume() and the pci-hyperv's
- * resume callback must also run via the "noirq" callbacks.
+ * resume callback must also run via the "noirq" ops.
+ *
+ * Set suspend_noirq/resume_noirq to NULL for Suspend-to-Idle: see the comment
+ * earlier in this file before vmbus_pm.
  */
+
 static const struct dev_pm_ops vmbus_bus_pm = {
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(vmbus_bus_suspend, vmbus_bus_resume)
+	.suspend_noirq	= NULL,
+	.resume_noirq	= NULL,
+	.freeze_noirq	= vmbus_bus_suspend,
+	.thaw_noirq	= vmbus_bus_resume,
+	.poweroff_noirq	= vmbus_bus_suspend,
+	.restore_noirq	= vmbus_bus_resume
 };
 
 static struct acpi_driver vmbus_acpi_driver = {
@@ -2288,7 +2364,6 @@
 {
 	hv_stimer_global_cleanup();
 	vmbus_initiate_unload(false);
-	vmbus_connection.conn_state = DISCONNECTED;
 	/* Make sure conn_state is set as hv_synic_cleanup checks for it */
 	mb();
 	cpuhp_remove_state(hyperv_cpuhp_online);
@@ -2305,10 +2380,9 @@
 	 * doing the cleanup for current CPU only. This should be sufficient
 	 * for kdump.
 	 */
-	vmbus_connection.conn_state = DISCONNECTED;
 	cpu = smp_processor_id();
 	hv_stimer_cleanup(cpu);
-	hv_synic_cleanup(cpu);
+	hv_synic_disable_regs(cpu);
 	hyperv_cleanup();
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/Kconfig
@@ -1922,6 +1922,17 @@
 	  If you say yes here you get support for the temperature
 	  and power sensors for APM X-Gene SoC.
 
+config SENSORS_AHC1EC0_HWMON
+	tristate "Advantech AHC1EC0 Hardware Monitor Function"
+	depends on MFD_AHC1EC0
+	depends on UBUNTU_ODM_DRIVERS
+	help
+	  This driver provide support for the hardware monitoring functionality
+	  for Advantech AHC1EC0 embedded controller on the board.
+
+	  This driver provides the sysfs attributes for applications to monitor
+	  the system status, including system temperatures, voltages, current.
+
 if ACPI
 
 comment "ACPI drivers"
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/Makefile
@@ -44,6 +44,7 @@
 obj-$(CONFIG_SENSORS_ADT7462)	+= adt7462.o
 obj-$(CONFIG_SENSORS_ADT7470)	+= adt7470.o
 obj-$(CONFIG_SENSORS_ADT7475)	+= adt7475.o
+obj-$(CONFIG_SENSORS_AHC1EC0_HWMON)	+= ahc1ec0-hwmon.o
 obj-$(CONFIG_SENSORS_APPLESMC)	+= applesmc.o
 obj-$(CONFIG_SENSORS_ARM_SCMI)	+= scmi-hwmon.o
 obj-$(CONFIG_SENSORS_ARM_SCPI)	+= scpi-hwmon.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/acpi_power_meter.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/acpi_power_meter.c
@@ -883,7 +883,7 @@
 
 	res = setup_attrs(resource);
 	if (res)
-		goto exit_free;
+		goto exit_free_capability;
 
 	resource->hwmon_dev = hwmon_device_register(&device->dev);
 	if (IS_ERR(resource->hwmon_dev)) {
@@ -896,6 +896,8 @@
 
 exit_remove:
 	remove_attrs(resource);
+exit_free_capability:
+	free_capabilities(resource);
 exit_free:
 	kfree(resource);
 exit:
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/adt7462.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/adt7462.c
@@ -413,7 +413,7 @@
 			return 0x95;
 		break;
 	}
-	return -ENODEV;
+	return 0;
 }
 
 /* Provide labels for sysfs */
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/adt7475.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/adt7475.c
@@ -294,9 +294,10 @@
 	long reg;
 
 	if (bypass_attn & (1 << channel))
-		reg = (volt * 1024) / 2250;
+		reg = DIV_ROUND_CLOSEST(volt * 1024, 2250);
 	else
-		reg = (volt * r[1] * 1024) / ((r[0] + r[1]) * 2250);
+		reg = DIV_ROUND_CLOSEST(volt * r[1] * 1024,
+					(r[0] + r[1]) * 2250);
 	return clamp_val(reg, 0, 1023) & (0xff << 2);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/ahc1ec0-hwmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/ahc1ec0-hwmon.c
@@ -0,0 +1,660 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * HWMON Driver for Advantech Embedded Controller chip AHC1EC0
+ *
+ * Copyright 2020, Advantech IIoT Group
+ *
+ */
+
+#include <linux/device.h>
+#include <linux/errno.h>
+#include <linux/hwmon-sysfs.h>
+#include <linux/hwmon.h>
+#include <linux/mfd/ahc1ec0.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+#include <linux/string.h>
+#include <linux/types.h>
+
+struct ec_hwmon_attrs {
+	const char		*name;
+	umode_t			mode;
+	int (*read)(struct device *dev, long *val);
+};
+
+struct adv_hwmon_profile {
+	int offset;
+	unsigned long resolution, resolution_vin, resolution_sys, resolution_curr, resolution_power;
+	unsigned long r1, r1_vin, r1_sys, r1_curr, r1_power;
+	unsigned long r2, r2_vin, r2_sys, r2_curr, r2_power;
+	int hwmon_in_list_cnt;
+	int temp_list_cnt;
+	int *hwmon_in_list;
+	int *temp_list;
+};
+
+struct ec_hwmon_data {
+	struct device *dev;
+	struct device *hwmon_dev;
+	struct adv_ec_platform_data *adv_ec_data;
+	unsigned long temperature[3];
+	unsigned long ec_current[5];
+	unsigned long power[5];
+	unsigned long voltage[7];
+
+	struct ec_hw_pin_table pin_tbl;
+	struct ec_smbuso_em0 ec_smboem0;
+	struct adv_hwmon_profile *profile;
+};
+
+static int get_ec_in_vbat_input(struct device *dev, long *val);
+static int get_ec_in_v5_input(struct device *dev, long *val);
+static int get_ec_in_v12_input(struct device *dev, long *val);
+static int get_ec_in_vcore_input(struct device *dev, long *val);
+static int get_ec_current1_input(struct device *dev, long *val);
+static int get_ec_cpu_temp(struct device *dev, long *val);
+static int get_ec_sys_temp(struct device *dev, long *val);
+
+const struct ec_hwmon_attrs ec_hwmon_in_attr_template[] = {
+	{"VBAT",	0444, get_ec_in_vbat_input},	// in1
+	{"5VSB",	0444, get_ec_in_v5_input},	// in2
+	{"Vin",		0444, get_ec_in_v12_input},	// in3 (== in8)
+	{"VCORE",	0444, get_ec_in_vcore_input},	// in4
+	{"Vin1",	0444, NULL},	// in5
+	{"Vin2",	0444, NULL},	// in6
+	{"System Voltage", 0444, NULL},	// in7
+	{"Current",	0444, get_ec_current1_input},
+};
+
+const struct ec_hwmon_attrs ec_temp_attrs_template[] = {
+	{"CPU Temp",	0444, get_ec_cpu_temp},
+	{"System Temp",	0444, get_ec_sys_temp},
+};
+
+enum ec_hwmon_in_type {
+	EC_HWMON_IN_VBAT,
+	EC_HWMON_IN_5VSB,
+	EC_HWMON_IN_12V,
+	EC_HWMON_IN_VCORE,
+	EC_HWMON_IN_VIN1,
+	EC_HWMON_IN_VIN2,
+	EC_HWMON_IN_SYS_VOL,
+	EC_HWMON_IN_CURRENT,
+};
+
+enum ec_temp_type {
+	EC_TEMP_CPU,
+	EC_TEMP_SYS,
+};
+
+static int hwmon_in_list_0[] = {
+	EC_HWMON_IN_VBAT,
+	EC_HWMON_IN_5VSB,
+	EC_HWMON_IN_12V,
+	EC_HWMON_IN_VCORE,
+	EC_HWMON_IN_CURRENT,
+};
+
+static int hwmon_in_list_1[] = {
+	EC_HWMON_IN_VBAT,
+	EC_HWMON_IN_5VSB,
+	EC_HWMON_IN_12V,
+	EC_HWMON_IN_VCORE,
+};
+
+static int temp_list_0[] = {
+	EC_TEMP_CPU,
+};
+
+static int temp_list_1[] = {
+	EC_TEMP_CPU,
+	EC_TEMP_SYS,
+};
+
+static struct adv_hwmon_profile advec_profile[] = {
+	/*
+	 * TPC-8100TR, TPC-651T-E3AE, TPC-1251T-E3AE, TPC-1551T-E3AE,
+	 * TPC-1751T-E3AE, TPC-1051WP-E3AE, TPC-1551WP-E3AE, TPC-1581WP-433AE,
+	 * TPC-1782H-433AE, UNO-1483G-434AE, UNO-2483G-434AE, UNO-3483G-374AE,
+	 * UNO-2473G, UNO-2484G-6???AE, UNO-2484G-7???AE, UNO-3283G-674AE,
+	 * UNO-3285G-674AE
+	 * [0] AHC1EC0_HWMON_PRO_TEMPLATE
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_0),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_0),
+		.hwmon_in_list = hwmon_in_list_0,
+		.temp_list = temp_list_0,
+	},
+	/*
+	 * TPC-B500-6??AE, TPC-5???T-6??AE, TPC-5???W-6??AE, TPC-B200-???AE,
+	 * TPC-2???T-???AE, TPC-2???W-???AE
+	 * [1] AHC1EC0_HWMON_PRO_TPC5XXX
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_1),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_0),
+		.hwmon_in_list = hwmon_in_list_1,
+		.temp_list = temp_list_0,
+	},
+	/* PR/VR4
+	 * [2] AHC1EC0_HWMON_PRO_PRVR4
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_1),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_1),
+		.hwmon_in_list = hwmon_in_list_1,
+		.temp_list = temp_list_1,
+	},
+	/* UNO-2271G-E22AE/E23AE/E022AE/E023AE,UNO-420
+	 * [3] AHC1EC0_HWMON_PRO_UNO2271G
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_1),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_0),
+		.hwmon_in_list = hwmon_in_list_1,
+		.temp_list = temp_list_0,
+	},
+};
+
+static void adv_ec_init_hwmon_profile(u32 profile, struct ec_hwmon_data *lmsensor_data)
+{
+	int i;
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+	struct ec_dynamic_table *dym_tbl = adv_ec_data->dym_tbl;
+
+	if (profile >= ARRAY_SIZE(advec_profile))
+		return;
+
+	lmsensor_data->profile = &advec_profile[profile];
+
+	for (i = 0; i < EC_MAX_TBL_NUM ; i++) {
+		switch (dym_tbl[i].device_id) {
+		case EC_DID_CMOSBAT:
+			ptbl->vbat[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vbat[1] = 1;
+			break;
+		case EC_DID_CMOSBAT_X2:
+			ptbl->vbat[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vbat[1] = 2;
+			break;
+		case EC_DID_CMOSBAT_X10:
+			ptbl->vbat[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vbat[1] = 10;
+			break;
+		case EC_DID_5VS0:
+		case EC_DID_5VS5:
+			ptbl->v5[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v5[1] = 1;
+			break;
+		case EC_DID_5VS0_X2:
+		case EC_DID_5VS5_X2:
+			ptbl->v5[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v5[1] = 2;
+			break;
+		case EC_DID_5VS0_X10:
+		case EC_DID_5VS5_X10:
+			ptbl->v5[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v5[1] = 10;
+			break;
+		case EC_DID_12VS0:
+			ptbl->v12[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v12[1] = 1;
+			break;
+		case EC_DID_12VS0_X2:
+			ptbl->v12[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v12[1] = 2;
+			break;
+		case EC_DID_12VS0_X10:
+			ptbl->v12[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v12[1] = 10;
+			break;
+		case EC_DID_VCOREA:
+		case EC_DID_VCOREB:
+			ptbl->vcore[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vcore[1] = 1;
+			break;
+		case EC_DID_VCOREA_X2:
+		case EC_DID_VCOREB_X2:
+			ptbl->vcore[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vcore[1] = 2;
+			break;
+		case EC_DID_VCOREA_X10:
+		case EC_DID_VCOREB_X10:
+			ptbl->vcore[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vcore[1] = 10;
+			break;
+		case EC_DID_DC:
+			ptbl->vdc[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vdc[1] = 1;
+			break;
+		case EC_DID_DC_X2:
+			ptbl->vdc[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vdc[1] = 2;
+			break;
+		case EC_DID_DC_X10:
+			ptbl->vdc[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vdc[1] = 10;
+			break;
+		case EC_DID_CURRENT:
+			ptbl->ec_current[0] = dym_tbl[i].hw_pin_num;
+			ptbl->ec_current[1] = 1;
+			break;
+		case EC_DID_SMBOEM0:
+			lmsensor_data->ec_smboem0.hw_pin_num = dym_tbl[i].hw_pin_num;
+			break;
+		default:
+			break;
+		}
+	}
+}
+
+static int get_ec_in_vbat_input(struct device *dev, long *val)
+{
+	unsigned int temp = 0;
+	unsigned long voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->vbat[0], ptbl->vbat[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage =  temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += (int)profile->offset * 100;
+
+	lmsensor_data->voltage[0] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[0];
+	return 0;
+}
+
+static int get_ec_in_v5_input(struct device *dev, long *val)
+{
+	unsigned int temp;
+	unsigned long voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->v5[0], ptbl->v5[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage =  temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += (int)profile->offset * 100;
+
+	lmsensor_data->voltage[1] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[1];
+	return 0;
+}
+
+static int get_ec_in_v12_input(struct device *dev, long *val)
+{
+	int temp;
+	unsigned long voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->v12[0], ptbl->v12[1]);
+	if (temp == -1)
+		temp = read_ad_value(adv_ec_data, ptbl->vdc[0], ptbl->vdc[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage =  temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += profile->offset * 100;
+
+	lmsensor_data->voltage[2] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[2];
+	return 0;
+}
+
+static int get_ec_in_vcore_input(struct device *dev, long *val)
+{
+	int temp;
+	unsigned int voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->vcore[0], ptbl->vcore[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage = temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += profile->offset * 100;
+
+	lmsensor_data->voltage[3] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[3];
+	return 0;
+}
+
+static int get_ec_current1_input(struct device *dev, long *val)
+{
+	int temp;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->ec_current[0], ptbl->ec_current[1]);
+
+	if (profile->r2 != 0)
+		temp = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		temp = temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		temp += profile->offset * 100;
+
+	lmsensor_data->ec_current[3] = 10 * temp;
+
+	*val = lmsensor_data->ec_current[3];
+	return 0;
+}
+
+static int get_ec_cpu_temp(struct device *dev, long *val)
+{
+	#define EC_ACPI_THERMAL1_REMOTE_TEMP 0x61
+
+	unsigned char value;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	read_acpi_value(adv_ec_data, EC_ACPI_THERMAL1_REMOTE_TEMP, &value);
+	*val = 1000 * value;
+	return 0;
+}
+
+static int get_ec_sys_temp(struct device *dev, long *val)
+{
+	#define EC_ACPI_THERMAL1_LOCAL_TEMP 0x60
+
+	unsigned char value;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	read_acpi_value(adv_ec_data, EC_ACPI_THERMAL1_LOCAL_TEMP, &value);
+	*val = 1000 * value;
+	return 0;
+}
+
+
+static int
+ahc1ec0_read_in(struct device *dev, u32 attr, int channel, long *val)
+{
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	if (!(lmsensor_data && lmsensor_data->profile))
+		return -EINVAL;
+
+	if (attr == hwmon_in_input &&
+		lmsensor_data->profile->hwmon_in_list_cnt > channel) {
+		int index = lmsensor_data->profile->hwmon_in_list[channel];
+		const struct ec_hwmon_attrs *ec_hwmon_attr = &ec_hwmon_in_attr_template[index];
+
+		return ec_hwmon_attr->read(dev, val);
+	}
+
+	return -EOPNOTSUPP;
+}
+
+static int
+ahc1ec0_read_temp(struct device *dev, u32 attr, int channel, long *val)
+{
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	if (!(lmsensor_data && lmsensor_data->profile))
+		return -EINVAL;
+
+	switch (attr) {
+	case hwmon_temp_input:
+		if (lmsensor_data->profile->temp_list_cnt > channel) {
+			int index = lmsensor_data->profile->temp_list[channel];
+			const struct ec_hwmon_attrs *devec_hwmon_attr =
+				&ec_temp_attrs_template[index];
+
+			return devec_hwmon_attr->read(dev, val);
+		}
+		return -EOPNOTSUPP;
+	case hwmon_temp_crit:
+		// both CPU temp and System temp are all this value
+		*val = 100000;
+		return 0;
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static int
+ahc1ec0_read_string(struct device *dev,
+					enum hwmon_sensor_types type,
+					u32 attr,
+					int channel,
+					const char **str)
+{
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	if (!(lmsensor_data && lmsensor_data->profile))
+		return -EINVAL;
+
+	if ((type == hwmon_in && attr == hwmon_in_label) &&
+		(lmsensor_data->profile->hwmon_in_list_cnt > channel)) {
+		int index = lmsensor_data->profile->hwmon_in_list[channel];
+		const struct ec_hwmon_attrs *ec_hwmon_attr = &ec_hwmon_in_attr_template[index];
+
+		*str = ec_hwmon_attr->name;
+		return 0;
+	}
+
+	if ((type == hwmon_temp && attr == hwmon_temp_label) &&
+		(lmsensor_data->profile->temp_list_cnt > channel)) {
+		int index = lmsensor_data->profile->temp_list[channel];
+		const struct ec_hwmon_attrs *ec_hwmon_attr = &ec_temp_attrs_template[index];
+
+		*str = ec_hwmon_attr->name;
+		return 0;
+	}
+
+	return -EOPNOTSUPP;
+}
+
+static int
+ahc1ec0_read(struct device *dev,
+			enum hwmon_sensor_types type,
+			u32 attr,
+			int channel,
+			long *val)
+{
+	switch (type) {
+	case hwmon_in:
+		return ahc1ec0_read_in(dev, attr, channel, val);
+	case hwmon_temp:
+		return ahc1ec0_read_temp(dev, attr, channel, val);
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static umode_t
+ec_hwmon_in_visible(const void *data, u32 attr, int channel)
+{
+	switch (attr) {
+	case hwmon_in_input:
+	case hwmon_in_label:
+		return 0444;
+	default:
+		return 0;
+	}
+}
+
+static umode_t
+ec_temp_in_visible(const void *data, u32 attr, int channel)
+{
+	switch (attr) {
+	case hwmon_temp_input:
+	case hwmon_temp_crit:
+	case hwmon_temp_label:
+		return 0444;
+	default:
+		return 0;
+	}
+}
+
+static umode_t
+ahc1ec0_is_visible(const void *data,
+					enum hwmon_sensor_types type, u32 attr, int channel)
+{
+	switch (type) {
+	case hwmon_in:
+		return ec_hwmon_in_visible(data, attr, channel);
+	case hwmon_temp:
+		return ec_temp_in_visible(data, attr, channel);
+	default:
+		return 0;
+	}
+}
+
+static const u32 ahc1ec0_in_config[] = {
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	0
+};
+
+static const struct hwmon_channel_info ahc1ec0_in = {
+	.type = hwmon_in,
+	.config = ahc1ec0_in_config,
+};
+
+static const u32 ahc1ec0_temp_config[] = {
+	HWMON_T_INPUT | HWMON_T_CRIT | HWMON_T_LABEL,
+	0
+};
+
+static const struct hwmon_channel_info ahc1ec0_temp = {
+	.type = hwmon_temp,
+	.config = ahc1ec0_temp_config,
+};
+
+static const struct hwmon_channel_info *ahc1ec0_info[] = {
+	&ahc1ec0_in,
+	&ahc1ec0_temp,
+	NULL
+};
+
+static const struct hwmon_ops ahc1ec0_hwmon_ops = {
+	.is_visible = ahc1ec0_is_visible,
+	.read = ahc1ec0_read,
+	.read_string = ahc1ec0_read_string,
+};
+
+static const struct hwmon_chip_info ahc1ec0_chip_info = {
+	.ops = &ahc1ec0_hwmon_ops,
+	.info = ahc1ec0_info,
+};
+
+static int adv_ec_hwmon_probe(struct platform_device *pdev)
+{
+	int ret;
+	u32 profile;
+	struct device *dev = &pdev->dev;
+	struct adv_ec_platform_data *adv_ec_data;
+	struct ec_hwmon_data *lmsensor_data;
+
+	adv_ec_data = dev_get_drvdata(dev->parent);
+	if (!adv_ec_data)
+		return -EINVAL;
+
+	ret = device_property_read_u32(dev->parent, "advantech,hwmon-profile", &profile);
+	if (ret < 0) {
+		dev_err(dev, "get hwmon-profile failed! (%d)", ret);
+		return ret;
+	}
+
+	if (!(profile < ARRAY_SIZE(advec_profile))) {
+		dev_err(dev, "not support hwmon profile(%d)!\n", profile);
+		return -EINVAL;
+	}
+
+	lmsensor_data = devm_kzalloc(dev, sizeof(struct ec_hwmon_data), GFP_KERNEL);
+	if (!lmsensor_data)
+		return -ENOMEM;
+
+	lmsensor_data->adv_ec_data = adv_ec_data;
+	lmsensor_data->dev = dev;
+	dev_set_drvdata(dev, lmsensor_data);
+
+	adv_ec_init_hwmon_profile(profile, lmsensor_data);
+
+	lmsensor_data->hwmon_dev  = devm_hwmon_device_register_with_info(dev,
+			"ahc1ec0.hwmon", lmsensor_data, &ahc1ec0_chip_info, NULL);
+
+	return PTR_ERR_OR_ZERO(lmsensor_data->hwmon_dev);
+}
+
+static struct platform_driver adv_hwmon_drv = {
+	.driver = {
+		.name = "ahc1ec0-hwmon",
+	},
+	.probe = adv_ec_hwmon_probe,
+};
+module_platform_driver(adv_hwmon_drv);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_ALIAS("platform:ahc1ec0-hwmon");
+MODULE_DESCRIPTION("Advantech Embedded Controller HWMON Driver.");
+MODULE_AUTHOR("Campion Kang <campion.kang@advantech.com.tw>");
+MODULE_AUTHOR("Jianfeng Dai <jianfeng.dai@advantech.com.cn>");
+MODULE_VERSION("1.0");
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/applesmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/applesmc.c
@@ -748,15 +748,18 @@
 	}
 
 	ret = applesmc_read_key(LIGHT_SENSOR_LEFT_KEY, buffer, data_length);
+	if (ret)
+		goto out;
 	/* newer macbooks report a single 10-bit bigendian value */
 	if (data_length == 10) {
 		left = be16_to_cpu(*(__be16 *)(buffer + 6)) >> 2;
 		goto out;
 	}
 	left = buffer[2];
+
+	ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length);
 	if (ret)
 		goto out;
-	ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length);
 	right = buffer[2];
 
 out:
@@ -805,12 +808,11 @@
 		  to_index(attr));
 
 	ret = applesmc_read_key(newkey, buffer, 2);
-	speed = ((buffer[0] << 8 | buffer[1]) >> 2);
-
 	if (ret)
 		return ret;
-	else
-		return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed);
+
+	speed = ((buffer[0] << 8 | buffer[1]) >> 2);
+	return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed);
 }
 
 static ssize_t applesmc_store_fan_speed(struct device *dev,
@@ -846,12 +848,11 @@
 	u8 buffer[2];
 
 	ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
-	manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01;
-
 	if (ret)
 		return ret;
-	else
-		return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual);
+
+	manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01;
+	return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual);
 }
 
 static ssize_t applesmc_store_fan_manual(struct device *dev,
@@ -867,10 +868,11 @@
 		return -EINVAL;
 
 	ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
-	val = (buffer[0] << 8 | buffer[1]);
 	if (ret)
 		goto out;
 
+	val = (buffer[0] << 8 | buffer[1]);
+
 	if (input)
 		val = val | (0x01 << to_index(attr));
 	else
@@ -946,13 +948,12 @@
 	u32 count;
 
 	ret = applesmc_read_key(KEY_COUNT_KEY, buffer, 4);
-	count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) +
-						((u32)buffer[2]<<8) + buffer[3];
-
 	if (ret)
 		return ret;
-	else
-		return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count);
+
+	count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) +
+						((u32)buffer[2]<<8) + buffer[3];
+	return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count);
 }
 
 static ssize_t applesmc_key_at_index_read_show(struct device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/aspeed-pwm-tacho.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/aspeed-pwm-tacho.c
@@ -851,6 +851,8 @@
 	ret = of_property_read_u32(child, "reg", &pwm_port);
 	if (ret)
 		return ret;
+	if (pwm_port >= ARRAY_SIZE(pwm_port_params))
+		return -EINVAL;
 	aspeed_create_pwm_port(priv, (u8)pwm_port);
 
 	ret = of_property_count_u8_elems(child, "cooling-levels");
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/da9052-hwmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/da9052-hwmon.c
@@ -244,9 +244,9 @@
 	int channel = to_sensor_dev_attr(devattr)->index;
 	int ret;
 
-	mutex_lock(&hwmon->hwmon_lock);
+	mutex_lock(&hwmon->da9052->auxadc_lock);
 	ret = __da9052_read_tsi(dev, channel);
-	mutex_unlock(&hwmon->hwmon_lock);
+	mutex_unlock(&hwmon->da9052->auxadc_lock);
 
 	if (ret < 0)
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/emc2103.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/emc2103.c
@@ -443,7 +443,7 @@
 	}
 
 	result = read_u8_from_i2c(client, REG_FAN_CONF1, &conf_reg);
-	if (result) {
+	if (result < 0) {
 		count = result;
 		goto err;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/hwmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/hwmon.c
@@ -51,6 +51,7 @@
 
 #define to_hwmon_attr(d) \
 	container_of(d, struct hwmon_device_attribute, dev_attr)
+#define to_dev_attr(a) container_of(a, struct device_attribute, attr)
 
 /*
  * Thermal zone information
@@ -58,7 +59,7 @@
  * also provides the sensor index.
  */
 struct hwmon_thermal_data {
-	struct hwmon_device *hwdev;	/* Reference to hwmon device */
+	struct device *dev;		/* Reference to hwmon device */
 	int index;			/* sensor index */
 };
 
@@ -95,9 +96,27 @@
 	NULL
 };
 
+static void hwmon_free_attrs(struct attribute **attrs)
+{
+	int i;
+
+	for (i = 0; attrs[i]; i++) {
+		struct device_attribute *dattr = to_dev_attr(attrs[i]);
+		struct hwmon_device_attribute *hattr = to_hwmon_attr(dattr);
+
+		kfree(hattr);
+	}
+	kfree(attrs);
+}
+
 static void hwmon_dev_release(struct device *dev)
 {
-	kfree(to_hwmon_device(dev));
+	struct hwmon_device *hwdev = to_hwmon_device(dev);
+
+	if (hwdev->group.attrs)
+		hwmon_free_attrs(hwdev->group.attrs);
+	kfree(hwdev->groups);
+	kfree(hwdev);
 }
 
 static struct class hwmon_class = {
@@ -119,11 +138,11 @@
 static int hwmon_thermal_get_temp(void *data, int *temp)
 {
 	struct hwmon_thermal_data *tdata = data;
-	struct hwmon_device *hwdev = tdata->hwdev;
+	struct hwmon_device *hwdev = to_hwmon_device(tdata->dev);
 	int ret;
 	long t;
 
-	ret = hwdev->chip->ops->read(&hwdev->dev, hwmon_temp, hwmon_temp_input,
+	ret = hwdev->chip->ops->read(tdata->dev, hwmon_temp, hwmon_temp_input,
 				     tdata->index, &t);
 	if (ret < 0)
 		return ret;
@@ -137,8 +156,7 @@
 	.get_temp = hwmon_thermal_get_temp,
 };
 
-static int hwmon_thermal_add_sensor(struct device *dev,
-				    struct hwmon_device *hwdev, int index)
+static int hwmon_thermal_add_sensor(struct device *dev, int index)
 {
 	struct hwmon_thermal_data *tdata;
 	struct thermal_zone_device *tzd;
@@ -147,10 +165,10 @@
 	if (!tdata)
 		return -ENOMEM;
 
-	tdata->hwdev = hwdev;
+	tdata->dev = dev;
 	tdata->index = index;
 
-	tzd = devm_thermal_zone_of_sensor_register(&hwdev->dev, index, tdata,
+	tzd = devm_thermal_zone_of_sensor_register(dev, index, tdata,
 						   &hwmon_thermal_ops);
 	/*
 	 * If CONFIG_THERMAL_OF is disabled, this returns -ENODEV,
@@ -162,8 +180,7 @@
 	return 0;
 }
 #else
-static int hwmon_thermal_add_sensor(struct device *dev,
-				    struct hwmon_device *hwdev, int index)
+static int hwmon_thermal_add_sensor(struct device *dev, int index)
 {
 	return 0;
 }
@@ -250,8 +267,7 @@
 	       (type == hwmon_fan && attr == hwmon_fan_label);
 }
 
-static struct attribute *hwmon_genattr(struct device *dev,
-				       const void *drvdata,
+static struct attribute *hwmon_genattr(const void *drvdata,
 				       enum hwmon_sensor_types type,
 				       u32 attr,
 				       int index,
@@ -279,7 +295,7 @@
 	if ((mode & 0222) && !ops->write)
 		return ERR_PTR(-EINVAL);
 
-	hattr = devm_kzalloc(dev, sizeof(*hattr), GFP_KERNEL);
+	hattr = kzalloc(sizeof(*hattr), GFP_KERNEL);
 	if (!hattr)
 		return ERR_PTR(-ENOMEM);
 
@@ -492,8 +508,7 @@
 	return n;
 }
 
-static int hwmon_genattrs(struct device *dev,
-			  const void *drvdata,
+static int hwmon_genattrs(const void *drvdata,
 			  struct attribute **attrs,
 			  const struct hwmon_ops *ops,
 			  const struct hwmon_channel_info *info)
@@ -519,7 +534,7 @@
 			attr_mask &= ~BIT(attr);
 			if (attr >= template_size)
 				return -EINVAL;
-			a = hwmon_genattr(dev, drvdata, info->type, attr, i,
+			a = hwmon_genattr(drvdata, info->type, attr, i,
 					  templates[attr], ops);
 			if (IS_ERR(a)) {
 				if (PTR_ERR(a) != -ENOENT)
@@ -533,8 +548,7 @@
 }
 
 static struct attribute **
-__hwmon_create_attrs(struct device *dev, const void *drvdata,
-		     const struct hwmon_chip_info *chip)
+__hwmon_create_attrs(const void *drvdata, const struct hwmon_chip_info *chip)
 {
 	int ret, i, aindex = 0, nattrs = 0;
 	struct attribute **attrs;
@@ -545,15 +559,17 @@
 	if (nattrs == 0)
 		return ERR_PTR(-EINVAL);
 
-	attrs = devm_kcalloc(dev, nattrs + 1, sizeof(*attrs), GFP_KERNEL);
+	attrs = kcalloc(nattrs + 1, sizeof(*attrs), GFP_KERNEL);
 	if (!attrs)
 		return ERR_PTR(-ENOMEM);
 
 	for (i = 0; chip->info[i]; i++) {
-		ret = hwmon_genattrs(dev, drvdata, &attrs[aindex], chip->ops,
+		ret = hwmon_genattrs(drvdata, &attrs[aindex], chip->ops,
 				     chip->info[i]);
-		if (ret < 0)
+		if (ret < 0) {
+			hwmon_free_attrs(attrs);
 			return ERR_PTR(ret);
+		}
 		aindex += ret;
 	}
 
@@ -595,14 +611,13 @@
 			for (i = 0; groups[i]; i++)
 				ngroups++;
 
-		hwdev->groups = devm_kcalloc(dev, ngroups, sizeof(*groups),
-					     GFP_KERNEL);
+		hwdev->groups = kcalloc(ngroups, sizeof(*groups), GFP_KERNEL);
 		if (!hwdev->groups) {
 			err = -ENOMEM;
 			goto free_hwmon;
 		}
 
-		attrs = __hwmon_create_attrs(dev, drvdata, chip);
+		attrs = __hwmon_create_attrs(drvdata, chip);
 		if (IS_ERR(attrs)) {
 			err = PTR_ERR(attrs);
 			goto free_hwmon;
@@ -647,8 +662,7 @@
 							   hwmon_temp_input, j))
 					continue;
 				if (info[i]->config[j] & HWMON_T_INPUT) {
-					err = hwmon_thermal_add_sensor(dev,
-								hwdev, j);
+					err = hwmon_thermal_add_sensor(hdev, j);
 					if (err) {
 						device_unregister(hdev);
 						/*
@@ -667,7 +681,7 @@
 	return hdev;
 
 free_hwmon:
-	kfree(hwdev);
+	hwmon_dev_release(hdev);
 ida_remove:
 	ida_simple_remove(&hwmon_ida, id);
 	return ERR_PTR(err);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/ina3221.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/ina3221.c
@@ -403,7 +403,7 @@
 
 	/* For enabling routine, increase refcount and resume() at first */
 	if (enable) {
-		ret = pm_runtime_get_sync(ina->pm_dev);
+		ret = pm_runtime_resume_and_get(ina->pm_dev);
 		if (ret < 0) {
 			dev_err(dev, "Failed to get PM runtime\n");
 			return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/jc42.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/jc42.c
@@ -506,7 +506,7 @@
 	}
 	data->config = config;
 
-	hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name,
+	hwmon_dev = devm_hwmon_device_register_with_info(dev, "jc42",
 							 data, &jc42_chip_info,
 							 NULL);
 	return PTR_ERR_OR_ZERO(hwmon_dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/k10temp.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/k10temp.c
@@ -349,6 +349,7 @@
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) },
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F3) },
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) },
+	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F3) },
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F3) },
 	{ PCI_VDEVICE(HYGON, PCI_DEVICE_ID_AMD_17H_DF_F3) },
 	{}
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/max6697.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/max6697.c
@@ -38,8 +38,9 @@
  * Map device tree / platform data register bit map to chip bit map.
  * Applies to alert register and over-temperature register.
  */
-#define MAX6697_MAP_BITS(reg)	((((reg) & 0x7e) >> 1) | \
+#define MAX6697_ALERT_MAP_BITS(reg)	((((reg) & 0x7e) >> 1) | \
 				 (((reg) & 0x01) << 6) | ((reg) & 0x80))
+#define MAX6697_OVERT_MAP_BITS(reg) (((reg) >> 1) | (((reg) & 0x01) << 7))
 
 #define MAX6697_REG_STAT(n)		(0x44 + (n))
 
@@ -562,12 +563,12 @@
 		return ret;
 
 	ret = i2c_smbus_write_byte_data(client, MAX6697_REG_ALERT_MASK,
-					MAX6697_MAP_BITS(pdata->alert_mask));
+				MAX6697_ALERT_MAP_BITS(pdata->alert_mask));
 	if (ret < 0)
 		return ret;
 
 	ret = i2c_smbus_write_byte_data(client, MAX6697_REG_OVERT_MASK,
-				MAX6697_MAP_BITS(pdata->over_temperature_mask));
+			MAX6697_OVERT_MAP_BITS(pdata->over_temperature_mask));
 	if (ret < 0)
 		return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/nct6775.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/nct6775.c
@@ -786,13 +786,13 @@
 	"Agent1 Dimm1",
 	"BYTE_TEMP0",
 	"BYTE_TEMP1",
-	"",
-	"",
+	"PECI Agent 0 Calibration",	/* undocumented */
+	"PECI Agent 1 Calibration",	/* undocumented */
 	"",
 	"Virtual_TEMP"
 };
 
-#define NCT6798_TEMP_MASK	0x8fff0ffe
+#define NCT6798_TEMP_MASK	0xbfff0ffe
 #define NCT6798_VIRT_TEMP_MASK	0x80000c00
 
 /* NCT6102D/NCT6106D specific data */
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/nct7802.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/nct7802.c
@@ -23,8 +23,8 @@
 static const u8 REG_VOLTAGE[5] = { 0x09, 0x0a, 0x0c, 0x0d, 0x0e };
 
 static const u8 REG_VOLTAGE_LIMIT_LSB[2][5] = {
-	{ 0x40, 0x00, 0x42, 0x44, 0x46 },
-	{ 0x3f, 0x00, 0x41, 0x43, 0x45 },
+	{ 0x46, 0x00, 0x40, 0x42, 0x44 },
+	{ 0x45, 0x00, 0x3f, 0x41, 0x43 },
 };
 
 static const u8 REG_VOLTAGE_LIMIT_MSB[5] = { 0x48, 0x00, 0x47, 0x47, 0x48 };
@@ -58,6 +58,8 @@
 struct nct7802_data {
 	struct regmap *regmap;
 	struct mutex access_lock; /* for multi-byte read and write operations */
+	u8 in_status;
+	struct mutex in_alarm_lock;
 };
 
 static ssize_t temp_type_show(struct device *dev,
@@ -368,6 +370,66 @@
 	return err ? : count;
 }
 
+static ssize_t in_alarm_show(struct device *dev, struct device_attribute *attr,
+			     char *buf)
+{
+	struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr);
+	struct nct7802_data *data = dev_get_drvdata(dev);
+	int volt, min, max, ret;
+	unsigned int val;
+
+	mutex_lock(&data->in_alarm_lock);
+
+	/*
+	 * The SMI Voltage status register is the only register giving a status
+	 * for voltages. A bit is set for each input crossing a threshold, in
+	 * both direction, but the "inside" or "outside" limits info is not
+	 * available. Also this register is cleared on read.
+	 * Note: this is not explicitly spelled out in the datasheet, but
+	 * from experiment.
+	 * To deal with this we use a status cache with one validity bit and
+	 * one status bit for each input. Validity is cleared at startup and
+	 * each time the register reports a change, and the status is processed
+	 * by software based on current input value and limits.
+	 */
+	ret = regmap_read(data->regmap, 0x1e, &val); /* SMI Voltage status */
+	if (ret < 0)
+		goto abort;
+
+	/* invalidate cached status for all inputs crossing a threshold */
+	data->in_status &= ~((val & 0x0f) << 4);
+
+	/* if cached status for requested input is invalid, update it */
+	if (!(data->in_status & (0x10 << sattr->index))) {
+		ret = nct7802_read_voltage(data, sattr->nr, 0);
+		if (ret < 0)
+			goto abort;
+		volt = ret;
+
+		ret = nct7802_read_voltage(data, sattr->nr, 1);
+		if (ret < 0)
+			goto abort;
+		min = ret;
+
+		ret = nct7802_read_voltage(data, sattr->nr, 2);
+		if (ret < 0)
+			goto abort;
+		max = ret;
+
+		if (volt < min || volt > max)
+			data->in_status |= (1 << sattr->index);
+		else
+			data->in_status &= ~(1 << sattr->index);
+
+		data->in_status |= 0x10 << sattr->index;
+	}
+
+	ret = sprintf(buf, "%u\n", !!(data->in_status & (1 << sattr->index)));
+abort:
+	mutex_unlock(&data->in_alarm_lock);
+	return ret;
+}
+
 static ssize_t temp_show(struct device *dev, struct device_attribute *attr,
 			 char *buf)
 {
@@ -660,7 +722,7 @@
 static SENSOR_DEVICE_ATTR_2_RO(in0_input, in, 0, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in0_min, in, 0, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in0_max, in, 0, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in0_alarm, alarm, 0x1e, 3);
+static SENSOR_DEVICE_ATTR_2_RO(in0_alarm, in_alarm, 0, 3);
 static SENSOR_DEVICE_ATTR_2_RW(in0_beep, beep, 0x5a, 3);
 
 static SENSOR_DEVICE_ATTR_2_RO(in1_input, in, 1, 0);
@@ -668,19 +730,19 @@
 static SENSOR_DEVICE_ATTR_2_RO(in2_input, in, 2, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in2_min, in, 2, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in2_max, in, 2, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in2_alarm, alarm, 0x1e, 0);
+static SENSOR_DEVICE_ATTR_2_RO(in2_alarm, in_alarm, 2, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in2_beep, beep, 0x5a, 0);
 
 static SENSOR_DEVICE_ATTR_2_RO(in3_input, in, 3, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in3_min, in, 3, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in3_max, in, 3, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in3_alarm, alarm, 0x1e, 1);
+static SENSOR_DEVICE_ATTR_2_RO(in3_alarm, in_alarm, 3, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in3_beep, beep, 0x5a, 1);
 
 static SENSOR_DEVICE_ATTR_2_RO(in4_input, in, 4, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in4_min, in, 4, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in4_max, in, 4, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in4_alarm, alarm, 0x1e, 2);
+static SENSOR_DEVICE_ATTR_2_RO(in4_alarm, in_alarm, 4, 2);
 static SENSOR_DEVICE_ATTR_2_RW(in4_beep, beep, 0x5a, 2);
 
 static struct attribute *nct7802_in_attrs[] = {
@@ -1011,6 +1073,7 @@
 		return PTR_ERR(data->regmap);
 
 	mutex_init(&data->access_lock);
+	mutex_init(&data->in_alarm_lock);
 
 	ret = nct7802_init_chip(data);
 	if (ret < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/nct7904.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/nct7904.c
@@ -197,7 +197,7 @@
 		if (ret < 0)
 			return ret;
 		cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f);
-		if (cnt == 0x1fff)
+		if (cnt == 0 || cnt == 0x1fff)
 			rpm = 0;
 		else
 			rpm = 1350000 / cnt;
@@ -209,7 +209,7 @@
 		if (ret < 0)
 			return ret;
 		cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f);
-		if (cnt == 0x1fff)
+		if (cnt == 0 || cnt == 0x1fff)
 			rpm = 0;
 		else
 			rpm = 1350000 / cnt;
@@ -356,6 +356,7 @@
 	struct nct7904_data *data = dev_get_drvdata(dev);
 	int ret, temp;
 	unsigned int reg1, reg2, reg3;
+	s8 temps;
 
 	switch (attr) {
 	case hwmon_temp_input:
@@ -461,7 +462,8 @@
 
 	if (ret < 0)
 		return ret;
-	*val = ret * 1000;
+	temps = ret;
+	*val = temps * 1000;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/pmbus/adm1275.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/pmbus/adm1275.c
@@ -454,6 +454,7 @@
 static int adm1275_probe(struct i2c_client *client,
 			 const struct i2c_device_id *id)
 {
+	s32 (*config_read_fn)(const struct i2c_client *client, u8 reg);
 	u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1];
 	int config, device_config;
 	int ret;
@@ -499,11 +500,16 @@
 			   "Device mismatch: Configured %s, detected %s\n",
 			   id->name, mid->name);
 
-	config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
+	if (mid->driver_data == adm1272 || mid->driver_data == adm1278 ||
+	    mid->driver_data == adm1293 || mid->driver_data == adm1294)
+		config_read_fn = i2c_smbus_read_word_data;
+	else
+		config_read_fn = i2c_smbus_read_byte_data;
+	config = config_read_fn(client, ADM1275_PMON_CONFIG);
 	if (config < 0)
 		return config;
 
-	device_config = i2c_smbus_read_byte_data(client, ADM1275_DEVICE_CONFIG);
+	device_config = config_read_fn(client, ADM1275_DEVICE_CONFIG);
 	if (device_config < 0)
 		return device_config;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/pmbus/ibm-cffps.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/pmbus/ibm-cffps.c
@@ -39,9 +39,13 @@
 #define CFFPS_MFR_VAUX_FAULT			BIT(6)
 #define CFFPS_MFR_CURRENT_SHARE_WARNING		BIT(7)
 
+/*
+ * LED off state actually relinquishes LED control to PSU firmware, so it can
+ * turn on the LED for faults.
+ */
+#define CFFPS_LED_OFF				0
 #define CFFPS_LED_BLINK				BIT(0)
 #define CFFPS_LED_ON				BIT(1)
-#define CFFPS_LED_OFF				BIT(2)
 #define CFFPS_BLINK_RATE_MS			250
 
 enum {
@@ -292,28 +296,38 @@
 	return rc;
 }
 
-static void ibm_cffps_led_brightness_set(struct led_classdev *led_cdev,
-					 enum led_brightness brightness)
+static int ibm_cffps_led_brightness_set(struct led_classdev *led_cdev,
+					enum led_brightness brightness)
 {
 	int rc;
+	u8 next_led_state;
 	struct ibm_cffps *psu = container_of(led_cdev, struct ibm_cffps, led);
 
 	if (brightness == LED_OFF) {
-		psu->led_state = CFFPS_LED_OFF;
+		next_led_state = CFFPS_LED_OFF;
 	} else {
 		brightness = LED_FULL;
+
 		if (psu->led_state != CFFPS_LED_BLINK)
-			psu->led_state = CFFPS_LED_ON;
+			next_led_state = CFFPS_LED_ON;
+		else
+			next_led_state = CFFPS_LED_BLINK;
 	}
 
+	dev_dbg(&psu->client->dev, "LED brightness set: %d. Command: %d.\n",
+		brightness, next_led_state);
+
 	pmbus_set_page(psu->client, 0);
 
 	rc = i2c_smbus_write_byte_data(psu->client, CFFPS_SYS_CONFIG_CMD,
-				       psu->led_state);
+				       next_led_state);
 	if (rc < 0)
-		return;
+		return rc;
 
+	psu->led_state = next_led_state;
 	led_cdev->brightness = brightness;
+
+	return 0;
 }
 
 static int ibm_cffps_led_blink_set(struct led_classdev *led_cdev,
@@ -323,10 +337,7 @@
 	int rc;
 	struct ibm_cffps *psu = container_of(led_cdev, struct ibm_cffps, led);
 
-	psu->led_state = CFFPS_LED_BLINK;
-
-	if (led_cdev->brightness == LED_OFF)
-		return 0;
+	dev_dbg(&psu->client->dev, "LED blink set.\n");
 
 	pmbus_set_page(psu->client, 0);
 
@@ -335,6 +346,8 @@
 	if (rc < 0)
 		return rc;
 
+	psu->led_state = CFFPS_LED_BLINK;
+	led_cdev->brightness = LED_FULL;
 	*delay_on = CFFPS_BLINK_RATE_MS;
 	*delay_off = CFFPS_BLINK_RATE_MS;
 
@@ -351,7 +364,7 @@
 		 client->addr);
 	psu->led.name = psu->led_name;
 	psu->led.max_brightness = LED_FULL;
-	psu->led.brightness_set = ibm_cffps_led_brightness_set;
+	psu->led.brightness_set_blocking = ibm_cffps_led_brightness_set;
 	psu->led.blink_set = ibm_cffps_led_blink_set;
 
 	rc = devm_led_classdev_register(dev, &psu->led);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/pmbus/ltc2978.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/pmbus/ltc2978.c
@@ -82,8 +82,8 @@
 
 #define LTC_POLL_TIMEOUT		100	/* in milli-seconds */
 
-#define LTC_NOT_BUSY			BIT(5)
-#define LTC_NOT_PENDING			BIT(4)
+#define LTC_NOT_BUSY			BIT(6)
+#define LTC_NOT_PENDING			BIT(5)
 
 /*
  * LTC2978 clears peak data whenever the CLEAR_FAULTS command is executed, which
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/pmbus/max34440.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/pmbus/max34440.c
@@ -387,7 +387,6 @@
 		.func[18] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[19] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[20] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
-		.read_byte_data = max34440_read_byte_data,
 		.read_word_data = max34440_read_word_data,
 		.write_word_data = max34440_write_word_data,
 	},
@@ -418,7 +417,6 @@
 		.func[15] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[16] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[17] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
-		.read_byte_data = max34440_read_byte_data,
 		.read_word_data = max34440_read_word_data,
 		.write_word_data = max34440_write_word_data,
 	},
@@ -454,7 +452,6 @@
 		.func[19] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[20] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[21] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
-		.read_byte_data = max34440_read_byte_data,
 		.read_word_data = max34440_read_word_data,
 		.write_word_data = max34440_write_word_data,
 	},
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/pwm-fan.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/pwm-fan.c
@@ -54,16 +54,18 @@
 static void sample_timer(struct timer_list *t)
 {
 	struct pwm_fan_ctx *ctx = from_timer(ctx, t, rpm_timer);
+	unsigned int delta = ktime_ms_delta(ktime_get(), ctx->sample_start);
 	int pulses;
-	u64 tmp;
 
-	pulses = atomic_read(&ctx->pulses);
-	atomic_sub(pulses, &ctx->pulses);
-	tmp = (u64)pulses * ktime_ms_delta(ktime_get(), ctx->sample_start) * 60;
-	do_div(tmp, ctx->pulses_per_revolution * 1000);
-	ctx->rpm = tmp;
+	if (delta) {
+		pulses = atomic_read(&ctx->pulses);
+		atomic_sub(pulses, &ctx->pulses);
+		ctx->rpm = (unsigned int)(pulses * 1000 * 60) /
+			(ctx->pulses_per_revolution * delta);
+
+		ctx->sample_start = ktime_get();
+	}
 
-	ctx->sample_start = ktime_get();
 	mod_timer(&ctx->rpm_timer, jiffies + HZ);
 }
 
@@ -328,8 +330,18 @@
 
 	ctx->pwm_value = MAX_PWM;
 
-	/* Set duty cycle to maximum allowed and enable PWM output */
 	pwm_init_state(ctx->pwm, &state);
+	/*
+	 * __set_pwm assumes that MAX_PWM * (period - 1) fits into an unsigned
+	 * long. Check this here to prevent the fan running at a too low
+	 * frequency.
+	 */
+	if (state.period > ULONG_MAX / MAX_PWM + 1) {
+		dev_err(dev, "Configured period too big\n");
+		return -EINVAL;
+	}
+
+	/* Set duty cycle to maximum allowed and enable PWM output */
 	state.duty_cycle = ctx->pwm->args.period - 1;
 	state.enabled = true;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwmon/scmi-hwmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwmon/scmi-hwmon.c
@@ -147,7 +147,7 @@
 	[ENERGY] = hwmon_energy,
 };
 
-static u32 hwmon_attributes[] = {
+static u32 hwmon_attributes[hwmon_max] = {
 	[hwmon_chip] = HWMON_C_REGISTER_TZ,
 	[hwmon_temp] = HWMON_T_INPUT | HWMON_T_LABEL,
 	[hwmon_in] = HWMON_I_INPUT | HWMON_I_LABEL,
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-etb10.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-etb10.c
@@ -176,6 +176,7 @@
 	unsigned long flags;
 	struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
 	struct perf_output_handle *handle = data;
+	struct cs_buffers *buf = etm_perf_sink_config(handle);
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 
@@ -186,7 +187,7 @@
 	}
 
 	/* Get a handle on the pid of the process to monitor */
-	pid = task_pid_nr(handle->event->owner);
+	pid = buf->pid;
 
 	if (drvdata->pid != -1 && drvdata->pid != pid) {
 		ret = -EBUSY;
@@ -383,6 +384,7 @@
 	if (!buf)
 		return NULL;
 
+	buf->pid = task_pid_nr(event->owner);
 	buf->snapshot = overwrite;
 	buf->nr_pages = nr_pages;
 	buf->data_pages = pages;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-etm-perf.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-etm-perf.c
@@ -126,10 +126,10 @@
 	cpumask_t *mask = &event_data->mask;
 	struct coresight_device *sink;
 
-	if (WARN_ON(cpumask_empty(mask)))
+	if (!event_data->snk_config)
 		return;
 
-	if (!event_data->snk_config)
+	if (WARN_ON(cpumask_empty(mask)))
 		return;
 
 	cpu = cpumask_first(mask);
@@ -310,6 +310,16 @@
 	if (!event_data)
 		goto fail;
 
+	/*
+	 * Check if this ETM is allowed to trace, as decided
+	 * at etm_setup_aux(). This could be due to an unreachable
+	 * sink from this ETM. We can't do much in this case if
+	 * the sink was specified or hinted to the driver. For
+	 * now, simply don't record anything on this ETM.
+	 */
+	if (!cpumask_test_cpu(cpu, &event_data->mask))
+		goto fail_end_stop;
+
 	path = etm_event_cpu_path(event_data, cpu);
 	/* We need a sink, no need to continue without one */
 	sink = coresight_get_sink(path);
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
@@ -652,10 +652,13 @@
 
 	if (kstrtoul(buf, 16, &val))
 		return -EINVAL;
+
+	/* mask off max threshold before checking min value */
+	val &= ETM_CYC_THRESHOLD_MASK;
 	if (val < drvdata->ccitmin)
 		return -EINVAL;
 
-	config->ccctlr = val & ETM_CYC_THRESHOLD_MASK;
+	config->ccctlr = val;
 	return size;
 }
 static DEVICE_ATTR_RW(cyc_threshold);
@@ -686,14 +689,16 @@
 		return -EINVAL;
 	if (!drvdata->nr_addr_cmp)
 		return -EINVAL;
+
 	/*
-	 * Bit[7:0] selects which address range comparator is used for
-	 * branch broadcast control.
+	 * Bit[8] controls include(1) / exclude(0), bits[0-7] select
+	 * individual range comparators. If include then at least 1
+	 * range must be selected.
 	 */
-	if (BMVAL(val, 0, 7) > drvdata->nr_addr_cmp)
+	if ((val & BIT(8)) && (BMVAL(val, 0, 7) == 0))
 		return -EINVAL;
 
-	config->bb_ctrl = val;
+	config->bb_ctrl = val & GENMASK(8, 0);
 	return size;
 }
 static DEVICE_ATTR_RW(bb_ctrl);
@@ -1324,8 +1329,8 @@
 
 	spin_lock(&drvdata->spinlock);
 	idx = config->seq_idx;
-	/* RST, bits[7:0] */
-	config->seq_ctrl[idx] = val & 0xFF;
+	/* Seq control has two masks B[15:8] F[7:0] */
+	config->seq_ctrl[idx] = val & 0xFFFF;
 	spin_unlock(&drvdata->spinlock);
 	return size;
 }
@@ -1580,7 +1585,7 @@
 	if (idx % 2 != 0)
 		/* PAIRINV, bit[21] */
 		val &= ~BIT(21);
-	config->res_ctrl[idx] = val;
+	config->res_ctrl[idx] = val & GENMASK(21, 0);
 	spin_unlock(&drvdata->spinlock);
 	return size;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-etm4x.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-etm4x.c
@@ -1184,6 +1184,7 @@
 	return 0;
 
 err_arch_supported:
+	etmdrvdata[drvdata->cpu] = NULL;
 	if (--etm4_count == 0) {
 		cpuhp_remove_state_nocalls(CPUHP_AP_ARM_CORESIGHT_STARTING);
 		if (hp_online)
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-funnel.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-funnel.c
@@ -38,12 +38,14 @@
  * @atclk:	optional clock for the core parts of the funnel.
  * @csdev:	component vitals needed by the framework.
  * @priority:	port selection order.
+ * @spinlock:	serialize enable/disable operations.
  */
 struct funnel_drvdata {
 	void __iomem		*base;
 	struct clk		*atclk;
 	struct coresight_device	*csdev;
 	unsigned long		priority;
+	spinlock_t		spinlock;
 };
 
 static int dynamic_funnel_enable_hw(struct funnel_drvdata *drvdata, int port)
@@ -76,11 +78,21 @@
 {
 	int rc = 0;
 	struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool first_enable = false;
 
-	if (drvdata->base)
-		rc = dynamic_funnel_enable_hw(drvdata, inport);
-
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_read(&csdev->refcnt[inport]) == 0) {
+		if (drvdata->base)
+			rc = dynamic_funnel_enable_hw(drvdata, inport);
+		if (!rc)
+			first_enable = true;
+	}
 	if (!rc)
+		atomic_inc(&csdev->refcnt[inport]);
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
+
+	if (first_enable)
 		dev_dbg(&csdev->dev, "FUNNEL inport %d enabled\n", inport);
 	return rc;
 }
@@ -107,11 +119,19 @@
 			   int outport)
 {
 	struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool last_disable = false;
 
-	if (drvdata->base)
-		dynamic_funnel_disable_hw(drvdata, inport);
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_dec_return(&csdev->refcnt[inport]) == 0) {
+		if (drvdata->base)
+			dynamic_funnel_disable_hw(drvdata, inport);
+		last_disable = true;
+	}
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
 
-	dev_dbg(&csdev->dev, "FUNNEL inport %d disabled\n", inport);
+	if (last_disable)
+		dev_dbg(&csdev->dev, "FUNNEL inport %d disabled\n", inport);
 }
 
 static const struct coresight_ops_link funnel_link_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-priv.h
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-priv.h
@@ -86,6 +86,7 @@
  * struct cs_buffer - keep track of a recording session' specifics
  * @cur:	index of the current buffer
  * @nr_pages:	max number of pages granted to us
+ * @pid:	PID this cs_buffer belongs to
  * @offset:	offset within the current buffer
  * @data_size:	how much we collected in this run
  * @snapshot:	is this run in snapshot mode
@@ -94,6 +95,7 @@
 struct cs_buffers {
 	unsigned int		cur;
 	unsigned int		nr_pages;
+	pid_t			pid;
 	unsigned long		offset;
 	local_t			data_size;
 	bool			snapshot;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-replicator.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-replicator.c
@@ -31,11 +31,13 @@
  *		whether this one is programmable or not.
  * @atclk:	optional clock for the core parts of the replicator.
  * @csdev:	component vitals needed by the framework
+ * @spinlock:	serialize enable/disable operations.
  */
 struct replicator_drvdata {
 	void __iomem		*base;
 	struct clk		*atclk;
 	struct coresight_device	*csdev;
+	spinlock_t		spinlock;
 };
 
 static void dynamic_replicator_reset(struct replicator_drvdata *drvdata)
@@ -97,10 +99,22 @@
 {
 	int rc = 0;
 	struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool first_enable = false;
 
-	if (drvdata->base)
-		rc = dynamic_replicator_enable(drvdata, inport, outport);
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_read(&csdev->refcnt[outport]) == 0) {
+		if (drvdata->base)
+			rc = dynamic_replicator_enable(drvdata, inport,
+						       outport);
+		if (!rc)
+			first_enable = true;
+	}
 	if (!rc)
+		atomic_inc(&csdev->refcnt[outport]);
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
+
+	if (first_enable)
 		dev_dbg(&csdev->dev, "REPLICATOR enabled\n");
 	return rc;
 }
@@ -137,10 +151,19 @@
 			       int outport)
 {
 	struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool last_disable = false;
 
-	if (drvdata->base)
-		dynamic_replicator_disable(drvdata, inport, outport);
-	dev_dbg(&csdev->dev, "REPLICATOR disabled\n");
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_dec_return(&csdev->refcnt[outport]) == 0) {
+		if (drvdata->base)
+			dynamic_replicator_disable(drvdata, inport, outport);
+		last_disable = true;
+	}
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
+
+	if (last_disable)
+		dev_dbg(&csdev->dev, "REPLICATOR disabled\n");
 }
 
 static const struct coresight_ops_link replicator_link_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-tmc-etf.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-tmc-etf.c
@@ -227,6 +227,7 @@
 	unsigned long flags;
 	struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
 	struct perf_output_handle *handle = data;
+	struct cs_buffers *buf = etm_perf_sink_config(handle);
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 	do {
@@ -243,7 +244,7 @@
 		}
 
 		/* Get a handle on the pid of the process to monitor */
-		pid = task_pid_nr(handle->event->owner);
+		pid = buf->pid;
 
 		if (drvdata->pid != -1 && drvdata->pid != pid) {
 			ret = -EBUSY;
@@ -334,9 +335,10 @@
 static int tmc_enable_etf_link(struct coresight_device *csdev,
 			       int inport, int outport)
 {
-	int ret;
+	int ret = 0;
 	unsigned long flags;
 	struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	bool first_enable = false;
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 	if (drvdata->reading) {
@@ -344,12 +346,18 @@
 		return -EBUSY;
 	}
 
-	ret = tmc_etf_enable_hw(drvdata);
+	if (atomic_read(&csdev->refcnt[0]) == 0) {
+		ret = tmc_etf_enable_hw(drvdata);
+		if (!ret) {
+			drvdata->mode = CS_MODE_SYSFS;
+			first_enable = true;
+		}
+	}
 	if (!ret)
-		drvdata->mode = CS_MODE_SYSFS;
+		atomic_inc(&csdev->refcnt[0]);
 	spin_unlock_irqrestore(&drvdata->spinlock, flags);
 
-	if (!ret)
+	if (first_enable)
 		dev_dbg(&csdev->dev, "TMC-ETF enabled\n");
 	return ret;
 }
@@ -359,6 +367,7 @@
 {
 	unsigned long flags;
 	struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	bool last_disable = false;
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 	if (drvdata->reading) {
@@ -366,11 +375,15 @@
 		return;
 	}
 
-	tmc_etf_disable_hw(drvdata);
-	drvdata->mode = CS_MODE_DISABLED;
+	if (atomic_dec_return(&csdev->refcnt[0]) == 0) {
+		tmc_etf_disable_hw(drvdata);
+		drvdata->mode = CS_MODE_DISABLED;
+		last_disable = true;
+	}
 	spin_unlock_irqrestore(&drvdata->spinlock, flags);
 
-	dev_dbg(&csdev->dev, "TMC-ETF disabled\n");
+	if (last_disable)
+		dev_dbg(&csdev->dev, "TMC-ETF disabled\n");
 }
 
 static void *tmc_alloc_etf_buffer(struct coresight_device *csdev,
@@ -387,6 +400,7 @@
 	if (!buf)
 		return NULL;
 
+	buf->pid = task_pid_nr(event->owner);
 	buf->snapshot = overwrite;
 	buf->nr_pages = nr_pages;
 	buf->data_pages = pages;
@@ -584,13 +598,6 @@
 		goto out;
 	}
 
-	/* There is no point in reading a TMC in HW FIFO mode */
-	mode = readl_relaxed(drvdata->base + TMC_MODE);
-	if (mode != TMC_MODE_CIRCULAR_BUFFER) {
-		ret = -EINVAL;
-		goto out;
-	}
-
 	/* Don't interfere if operated from Perf */
 	if (drvdata->mode == CS_MODE_PERF) {
 		ret = -EINVAL;
@@ -604,8 +611,15 @@
 	}
 
 	/* Disable the TMC if need be */
-	if (drvdata->mode == CS_MODE_SYSFS)
+	if (drvdata->mode == CS_MODE_SYSFS) {
+		/* There is no point in reading a TMC in HW FIFO mode */
+		mode = readl_relaxed(drvdata->base + TMC_MODE);
+		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
+			ret = -EINVAL;
+			goto out;
+		}
 		__tmc_etb_disable_hw(drvdata);
+	}
 
 	drvdata->reading = true;
 out:
@@ -627,15 +641,14 @@
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 
-	/* There is no point in reading a TMC in HW FIFO mode */
-	mode = readl_relaxed(drvdata->base + TMC_MODE);
-	if (mode != TMC_MODE_CIRCULAR_BUFFER) {
-		spin_unlock_irqrestore(&drvdata->spinlock, flags);
-		return -EINVAL;
-	}
-
 	/* Re-enable the TMC if need be */
 	if (drvdata->mode == CS_MODE_SYSFS) {
+		/* There is no point in reading a TMC in HW FIFO mode */
+		mode = readl_relaxed(drvdata->base + TMC_MODE);
+		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
+			spin_unlock_irqrestore(&drvdata->spinlock, flags);
+			return -EINVAL;
+		}
 		/*
 		 * The trace run will continue with the same allocated trace
 		 * buffer. As such zero-out the buffer so that we don't end
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight-tmc-etr.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight-tmc-etr.c
@@ -217,6 +217,8 @@
 		} else {
 			page = alloc_pages_node(node,
 						GFP_KERNEL | __GFP_ZERO, 0);
+			if (!page)
+				goto err;
 		}
 		paddr = dma_map_page(real_dev, page, 0, PAGE_SIZE, dir);
 		if (dma_mapping_error(real_dev, paddr))
@@ -1533,7 +1535,7 @@
 
 	/* Insert barrier packets at the beginning, if there was an overflow */
 	if (lost)
-		tmc_etr_buf_insert_barrier_packet(etr_buf, etr_buf->offset);
+		tmc_etr_buf_insert_barrier_packet(etr_buf, offset);
 	tmc_etr_sync_perf_buffer(etr_perf, offset, size);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/coresight/coresight.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/coresight/coresight.c
@@ -253,9 +253,9 @@
 				 struct coresight_device *parent,
 				 struct coresight_device *child)
 {
-	int ret;
+	int ret = 0;
 	int link_subtype;
-	int refport, inport, outport;
+	int inport, outport;
 
 	if (!parent || !child)
 		return -EINVAL;
@@ -264,29 +264,17 @@
 	outport = coresight_find_link_outport(csdev, child);
 	link_subtype = csdev->subtype.link_subtype;
 
-	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG)
-		refport = inport;
-	else if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT)
-		refport = outport;
-	else
-		refport = 0;
-
-	if (refport < 0)
-		return refport;
-
-	if (atomic_inc_return(&csdev->refcnt[refport]) == 1) {
-		if (link_ops(csdev)->enable) {
-			ret = link_ops(csdev)->enable(csdev, inport, outport);
-			if (ret) {
-				atomic_dec(&csdev->refcnt[refport]);
-				return ret;
-			}
-		}
-	}
-
-	csdev->enable = true;
+	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG && inport < 0)
+		return inport;
+	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT && outport < 0)
+		return outport;
+
+	if (link_ops(csdev)->enable)
+		ret = link_ops(csdev)->enable(csdev, inport, outport);
+	if (!ret)
+		csdev->enable = true;
 
-	return 0;
+	return ret;
 }
 
 static void coresight_disable_link(struct coresight_device *csdev,
@@ -295,7 +283,7 @@
 {
 	int i, nr_conns;
 	int link_subtype;
-	int refport, inport, outport;
+	int inport, outport;
 
 	if (!parent || !child)
 		return;
@@ -305,20 +293,15 @@
 	link_subtype = csdev->subtype.link_subtype;
 
 	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG) {
-		refport = inport;
 		nr_conns = csdev->pdata->nr_inport;
 	} else if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT) {
-		refport = outport;
 		nr_conns = csdev->pdata->nr_outport;
 	} else {
-		refport = 0;
 		nr_conns = 1;
 	}
 
-	if (atomic_dec_return(&csdev->refcnt[refport]) == 0) {
-		if (link_ops(csdev)->disable)
-			link_ops(csdev)->disable(csdev, inport, outport);
-	}
+	if (link_ops(csdev)->disable)
+		link_ops(csdev)->disable(csdev, inport, outport);
 
 	for (i = 0; i < nr_conns; i++)
 		if (atomic_read(&csdev->refcnt[i]) != 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/intel_th/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/intel_th/core.c
@@ -649,10 +649,8 @@
 	}
 
 	err = intel_th_device_add_resources(thdev, res, subdev->nres);
-	if (err) {
-		put_device(&thdev->dev);
+	if (err)
 		goto fail_put_device;
-	}
 
 	if (subdev->type == INTEL_TH_OUTPUT) {
 		if (subdev->mknode)
@@ -667,10 +665,8 @@
 	}
 
 	err = device_add(&thdev->dev);
-	if (err) {
-		put_device(&thdev->dev);
+	if (err)
 		goto fail_free_res;
-	}
 
 	/* need switch driver to be loaded to enumerate the rest */
 	if (subdev->type == INTEL_TH_SWITCH && !req) {
@@ -838,9 +834,6 @@
 			ret |= d->irq(th->thdev[i]);
 	}
 
-	if (ret == IRQ_NONE)
-		pr_warn_ratelimited("nobody cared for irq\n");
-
 	return ret;
 }
 
@@ -891,6 +884,7 @@
 
 			if (th->irq == -1)
 				th->irq = devres[r].start;
+			th->num_irqs++;
 			break;
 		default:
 			dev_warn(dev, "Unknown resource type %lx\n",
@@ -944,6 +938,9 @@
 
 	th->num_thdevs = 0;
 
+	for (i = 0; i < th->num_irqs; i++)
+		devm_free_irq(th->dev, th->irq + i, th);
+
 	pm_runtime_get_sync(th->dev);
 	pm_runtime_forbid(th->dev);
 
@@ -1024,15 +1021,30 @@
 {
 	struct intel_th_device *hub = to_intel_th_hub(thdev);
 	struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver);
+	int ret;
 
 	/* In host mode, this is up to the external debugger, do nothing. */
 	if (hub->host_mode)
 		return 0;
 
-	if (!hubdrv->set_output)
-		return -ENOTSUPP;
+	/*
+	 * hub is instantiated together with the source device that
+	 * calls here, so guaranteed to be present.
+	 */
+	hubdrv = to_intel_th_driver(hub->dev.driver);
+	if (!hubdrv || !try_module_get(hubdrv->driver.owner))
+		return -EINVAL;
+
+	if (!hubdrv->set_output) {
+		ret = -ENOTSUPP;
+		goto out;
+	}
 
-	return hubdrv->set_output(hub, master);
+	ret = hubdrv->set_output(hub, master);
+
+out:
+	module_put(hubdrv->driver.owner);
+	return ret;
 }
 EXPORT_SYMBOL_GPL(intel_th_set_output);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/intel_th/intel_th.h
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/intel_th/intel_th.h
@@ -47,11 +47,13 @@
 /**
  * struct intel_th_drvdata - describes hardware capabilities and quirks
  * @tscu_enable:	device needs SW to enable time stamping unit
+ * @multi_is_broken:	device has multiblock mode is broken
  * @has_mintctl:	device has interrupt control (MINTCTL) register
  * @host_mode_only:	device can only operate in 'host debugger' mode
  */
 struct intel_th_drvdata {
 	unsigned int	tscu_enable        : 1,
+			multi_is_broken    : 1,
 			has_mintctl        : 1,
 			host_mode_only     : 1;
 };
@@ -261,6 +263,7 @@
  * @num_thdevs:	number of devices in the @thdev array
  * @num_resources:	number of resources in the @resource array
  * @irq:	irq number
+ * @num_irqs:	number of IRQs is use
  * @id:		this Intel TH controller's device ID in the system
  * @major:	device node major for output devices
  */
@@ -277,6 +280,7 @@
 	unsigned int		num_thdevs;
 	unsigned int		num_resources;
 	int			irq;
+	int			num_irqs;
 
 	int			id;
 	int			major;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/intel_th/msu.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/intel_th/msu.c
@@ -157,7 +157,8 @@
 	/* config */
 	unsigned int		enabled : 1,
 				wrap	: 1,
-				do_irq	: 1;
+				do_irq	: 1,
+				multi_is_broken : 1;
 	unsigned int		mode;
 	unsigned int		burst_len;
 	unsigned int		index;
@@ -718,9 +719,6 @@
 
 	if (old != expect) {
 		ret = -EINVAL;
-		dev_warn_ratelimited(msc_dev(win->msc),
-				     "expected lockout state %d, got %d\n",
-				     expect, old);
 		goto unlock;
 	}
 
@@ -741,6 +739,10 @@
 		/* from intel_th_msc_window_unlock(), don't warn if not locked */
 		if (expect == WIN_LOCKED && old == new)
 			return 0;
+
+		dev_warn_ratelimited(msc_dev(win->msc),
+				     "expected lockout state %d, got %d\n",
+				     expect, old);
 	}
 
 	return ret;
@@ -760,7 +762,7 @@
 	lockdep_assert_held(&msc->buf_mutex);
 
 	if (msc->mode > MSC_MODE_MULTI)
-		return -ENOTSUPP;
+		return -EINVAL;
 
 	if (msc->mode == MSC_MODE_MULTI) {
 		if (msc_win_set_lockout(msc->cur_win, WIN_READY, WIN_INUSE))
@@ -1294,7 +1296,7 @@
 	} else if (msc->mode == MSC_MODE_MULTI) {
 		ret = msc_buffer_multi_alloc(msc, nr_pages, nr_wins);
 	} else {
-		ret = -ENOTSUPP;
+		ret = -EINVAL;
 	}
 
 	if (!ret) {
@@ -1530,7 +1532,7 @@
 		if (ret >= 0)
 			*ppos = iter->offset;
 	} else {
-		ret = -ENOTSUPP;
+		ret = -EINVAL;
 	}
 
 put_count:
@@ -1664,7 +1666,7 @@
 {
 	atomic_set(&msc->user_count, -1);
 
-	msc->mode = MSC_MODE_MULTI;
+	msc->mode = msc->multi_is_broken ? MSC_MODE_SINGLE : MSC_MODE_MULTI;
 	mutex_init(&msc->buf_mutex);
 	INIT_LIST_HEAD(&msc->win_list);
 	INIT_LIST_HEAD(&msc->iter_list);
@@ -1676,10 +1678,13 @@
 	return 0;
 }
 
-static void msc_win_switch(struct msc *msc)
+static int msc_win_switch(struct msc *msc)
 {
 	struct msc_window *first;
 
+	if (list_empty(&msc->win_list))
+		return -EINVAL;
+
 	first = list_first_entry(&msc->win_list, struct msc_window, entry);
 
 	if (msc_is_last_win(msc->cur_win))
@@ -1691,6 +1696,8 @@
 	msc->base_addr = msc_win_base_dma(msc->cur_win);
 
 	intel_th_trace_switch(msc->thdev);
+
+	return 0;
 }
 
 /**
@@ -1871,6 +1878,9 @@
 	return -EINVAL;
 
 found:
+	if (i == MSC_MODE_MULTI && msc->multi_is_broken)
+		return -EOPNOTSUPP;
+
 	mutex_lock(&msc->buf_mutex);
 	ret = 0;
 
@@ -2025,16 +2035,15 @@
 	if (val != 1)
 		return -EINVAL;
 
+	ret = -EINVAL;
 	mutex_lock(&msc->buf_mutex);
 	/*
 	 * Window switch can only happen in the "multi" mode.
 	 * If a external buffer is engaged, they have the full
 	 * control over window switching.
 	 */
-	if (msc->mode != MSC_MODE_MULTI || msc->mbuf)
-		ret = -ENOTSUPP;
-	else
-		msc_win_switch(msc);
+	if (msc->mode == MSC_MODE_MULTI && !msc->mbuf)
+		ret = msc_win_switch(msc);
 	mutex_unlock(&msc->buf_mutex);
 
 	return ret ? ret : size;
@@ -2078,6 +2087,9 @@
 	if (!res)
 		msc->do_irq = 1;
 
+	if (INTEL_TH_CAP(to_intel_th(thdev), multi_is_broken))
+		msc->multi_is_broken = 1;
+
 	msc->index = thdev->id;
 
 	msc->thdev = thdev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/intel_th/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/intel_th/pci.c
@@ -120,6 +120,10 @@
 	pci_free_irq_vectors(pdev);
 }
 
+static const struct intel_th_drvdata intel_th_1x_multi_is_broken = {
+	.multi_is_broken	= 1,
+};
+
 static const struct intel_th_drvdata intel_th_2x = {
 	.tscu_enable	= 1,
 	.has_mintctl	= 1,
@@ -152,7 +156,7 @@
 	{
 		/* Kaby Lake PCH-H */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa2a6),
-		.driver_data = (kernel_ulong_t)0,
+		.driver_data = (kernel_ulong_t)&intel_th_1x_multi_is_broken,
 	},
 	{
 		/* Denverton */
@@ -205,20 +209,65 @@
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
 	{
+		/* Comet Lake PCH-V */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa3a6),
+		.driver_data = (kernel_ulong_t)&intel_th_1x_multi_is_broken,
+	},
+	{
 		/* Ice Lake NNPI */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x45c5),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
 	{
+		/* Ice Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x8a29),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Tiger Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x9a33),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
 		/* Tiger Lake PCH */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa0a6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
 	{
+		/* Tiger Lake PCH-H */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x43a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
 		/* Jasper Lake PCH */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4da6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Jasper Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4e29),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Elkhart Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4529),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Elkhart Lake */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4b26),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Alder Lake-P */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x51a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Emmitsburg PCH */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x1bcc),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{ 0 },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/intel_th/sth.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/intel_th/sth.c
@@ -161,9 +161,7 @@
 {
 	struct sth_device *sth = container_of(stm_data, struct sth_device, stm);
 
-	intel_th_set_output(to_intel_th_device(sth->dev), master);
-
-	return 0;
+	return intel_th_set_output(to_intel_th_device(sth->dev), master);
 }
 
 static int intel_th_sw_init(struct sth_device *sth)
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/stm/heartbeat.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/stm/heartbeat.c
@@ -64,7 +64,7 @@
 
 static int stm_heartbeat_init(void)
 {
-	int i, ret = -ENOMEM;
+	int i, ret;
 
 	if (nr_devs < 0 || nr_devs > STM_HEARTBEAT_MAX)
 		return -EINVAL;
@@ -72,8 +72,10 @@
 	for (i = 0; i < nr_devs; i++) {
 		stm_heartbeat[i].data.name =
 			kasprintf(GFP_KERNEL, "heartbeat.%d", i);
-		if (!stm_heartbeat[i].data.name)
+		if (!stm_heartbeat[i].data.name) {
+			ret = -ENOMEM;
 			goto fail_unregister;
+		}
 
 		stm_heartbeat[i].data.nr_chans	= 1;
 		stm_heartbeat[i].data.link	= stm_heartbeat_link;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/stm/p_sys-t.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/stm/p_sys-t.c
@@ -238,7 +238,7 @@
 static inline bool sys_t_need_ts(struct sys_t_output *op)
 {
 	if (op->node.ts_interval &&
-	    time_after(op->ts_jiffies + op->node.ts_interval, jiffies)) {
+	    time_after(jiffies, op->ts_jiffies + op->node.ts_interval)) {
 		op->ts_jiffies = jiffies;
 
 		return true;
@@ -250,8 +250,8 @@
 static bool sys_t_need_clock_sync(struct sys_t_output *op)
 {
 	if (op->node.clocksync_interval &&
-	    time_after(op->clocksync_jiffies + op->node.clocksync_interval,
-		       jiffies)) {
+	    time_after(jiffies,
+		       op->clocksync_jiffies + op->node.clocksync_interval)) {
 		op->clocksync_jiffies = jiffies;
 
 		return true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/hwtracing/stm/policy.c
+++ linux-gkeop-5.4-5.4.0/drivers/hwtracing/stm/policy.c
@@ -345,7 +345,11 @@
 	stm->policy = NULL;
 	policy->stm = NULL;
 
+	/*
+	 * Drop the reference on the protocol driver and lose the link.
+	 */
 	stm_put_protocol(stm->pdrv);
+	stm->pdrv = NULL;
 	stm_put_device(stm);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/algos/i2c-algo-pca.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/algos/i2c-algo-pca.c
@@ -41,8 +41,22 @@
 		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_IPRESET);
 		pca_outw(adap, I2C_PCA_IND, 0xA5);
 		pca_outw(adap, I2C_PCA_IND, 0x5A);
+
+		/*
+		 * After a reset we need to re-apply any configuration
+		 * (calculated in pca_init) to get the bus in a working state.
+		 */
+		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_IMODE);
+		pca_outw(adap, I2C_PCA_IND, adap->bus_settings.mode);
+		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_ISCLL);
+		pca_outw(adap, I2C_PCA_IND, adap->bus_settings.tlow);
+		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_ISCLH);
+		pca_outw(adap, I2C_PCA_IND, adap->bus_settings.thi);
+
+		pca_set_con(adap, I2C_PCA_CON_ENSIO);
 	} else {
 		adap->reset_chip(adap->data);
+		pca_set_con(adap, I2C_PCA_CON_ENSIO | adap->bus_settings.clock_freq);
 	}
 }
 
@@ -314,7 +328,8 @@
 			DEB2("BUS ERROR - SDA Stuck low\n");
 			pca_reset(adap);
 			goto out;
-		case 0x90: /* Bus error - SCL stuck low */
+		case 0x78: /* Bus error - SCL stuck low (PCA9665) */
+		case 0x90: /* Bus error - SCL stuck low (PCA9564) */
 			DEB2("BUS ERROR - SCL Stuck low\n");
 			pca_reset(adap);
 			goto out;
@@ -422,13 +437,14 @@
 				" Use the nominal frequency.\n", adap->name);
 		}
 
-		pca_reset(pca_data);
-
 		clock = pca_clock(pca_data);
 		printk(KERN_INFO "%s: Clock frequency is %dkHz\n",
 		     adap->name, freqs[clock]);
 
-		pca_set_con(pca_data, I2C_PCA_CON_ENSIO | clock);
+		/* Store settings as these will be needed when the PCA chip is reset */
+		pca_data->bus_settings.clock_freq = clock;
+
+		pca_reset(pca_data);
 	} else {
 		int clock;
 		int mode;
@@ -495,19 +511,15 @@
 			thi = tlow * min_thi / min_tlow;
 		}
 
+		/* Store settings as these will be needed when the PCA chip is reset */
+		pca_data->bus_settings.mode = mode;
+		pca_data->bus_settings.tlow = tlow;
+		pca_data->bus_settings.thi = thi;
+
 		pca_reset(pca_data);
 
 		printk(KERN_INFO
 		     "%s: Clock frequency is %dHz\n", adap->name, clock * 100);
-
-		pca_outw(pca_data, I2C_PCA_INDPTR, I2C_PCA_IMODE);
-		pca_outw(pca_data, I2C_PCA_IND, mode);
-		pca_outw(pca_data, I2C_PCA_INDPTR, I2C_PCA_ISCLL);
-		pca_outw(pca_data, I2C_PCA_IND, tlow);
-		pca_outw(pca_data, I2C_PCA_INDPTR, I2C_PCA_ISCLH);
-		pca_outw(pca_data, I2C_PCA_IND, thi);
-
-		pca_set_con(pca_data, I2C_PCA_CON_ENSIO);
 	}
 	udelay(500); /* 500 us for oscillator to stabilise */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/Kconfig
@@ -1162,6 +1162,7 @@
 	tristate "Renesas R-Car I2C Controller"
 	depends on ARCH_RENESAS || COMPILE_TEST
 	select I2C_SLAVE
+	select RESET_CONTROLLER if ARCH_RCAR_GEN3
 	help
 	  If you say yes to this option, support will be included for the
 	  R-Car I2C controller.
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-altera.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-altera.c
@@ -70,6 +70,7 @@
  * @isr_mask: cached copy of local ISR enables.
  * @isr_status: cached copy of local ISR status.
  * @lock: spinlock for IRQ synchronization.
+ * @isr_mutex: mutex for IRQ thread.
  */
 struct altr_i2c_dev {
 	void __iomem *base;
@@ -86,6 +87,7 @@
 	u32 isr_mask;
 	u32 isr_status;
 	spinlock_t lock;	/* IRQ synchronization */
+	struct mutex isr_mutex;
 };
 
 static void
@@ -171,7 +173,7 @@
 	/* SCL Low Time */
 	writel(t_low, idev->base + ALTR_I2C_SCL_LOW);
 	/* SDA Hold Time, 300ns */
-	writel(div_u64(300 * clk_mhz, 1000), idev->base + ALTR_I2C_SDA_HOLD);
+	writel(3 * clk_mhz / 10, idev->base + ALTR_I2C_SDA_HOLD);
 
 	/* Mask all master interrupt bits */
 	altr_i2c_int_enable(idev, ALTR_I2C_ALL_IRQ, false);
@@ -245,10 +247,11 @@
 	struct altr_i2c_dev *idev = _dev;
 	u32 status = idev->isr_status;
 
+	mutex_lock(&idev->isr_mutex);
 	if (!idev->msg) {
 		dev_warn(idev->dev, "unexpected interrupt\n");
 		altr_i2c_int_clear(idev, ALTR_I2C_ALL_IRQ);
-		return IRQ_HANDLED;
+		goto out;
 	}
 	read = (idev->msg->flags & I2C_M_RD) != 0;
 
@@ -301,6 +304,8 @@
 		complete(&idev->msg_complete);
 		dev_dbg(idev->dev, "Message Complete\n");
 	}
+out:
+	mutex_unlock(&idev->isr_mutex);
 
 	return IRQ_HANDLED;
 }
@@ -312,6 +317,7 @@
 	u32 value;
 	u8 addr = i2c_8bit_addr_from_msg(msg);
 
+	mutex_lock(&idev->isr_mutex);
 	idev->msg = msg;
 	idev->msg_len = msg->len;
 	idev->buf = msg->buf;
@@ -336,6 +342,7 @@
 		altr_i2c_int_enable(idev, imask, true);
 		altr_i2c_fill_tx_fifo(idev);
 	}
+	mutex_unlock(&idev->isr_mutex);
 
 	time_left = wait_for_completion_timeout(&idev->msg_complete,
 						ALTR_I2C_XFER_TIMEOUT);
@@ -384,7 +391,6 @@
 	struct altr_i2c_dev *idev = NULL;
 	struct resource *res;
 	int irq, ret;
-	u32 val;
 
 	idev = devm_kzalloc(&pdev->dev, sizeof(*idev), GFP_KERNEL);
 	if (!idev)
@@ -410,18 +416,19 @@
 	idev->dev = &pdev->dev;
 	init_completion(&idev->msg_complete);
 	spin_lock_init(&idev->lock);
+	mutex_init(&idev->isr_mutex);
 
-	val = device_property_read_u32(idev->dev, "fifo-size",
+	ret = device_property_read_u32(idev->dev, "fifo-size",
 				       &idev->fifo_size);
-	if (val) {
+	if (ret) {
 		dev_err(&pdev->dev, "FIFO size set to default of %d\n",
 			ALTR_I2C_DFLT_FIFO_SZ);
 		idev->fifo_size = ALTR_I2C_DFLT_FIFO_SZ;
 	}
 
-	val = device_property_read_u32(idev->dev, "clock-frequency",
+	ret = device_property_read_u32(idev->dev, "clock-frequency",
 				       &idev->bus_clk_rate);
-	if (val) {
+	if (ret) {
 		dev_err(&pdev->dev, "Default to 100kHz\n");
 		idev->bus_clk_rate = 100000;	/* default clock rate */
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-amd-mp2-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-amd-mp2-pci.c
@@ -349,12 +349,12 @@
 	if (!privdata)
 		return -ENOMEM;
 
+	privdata->pci_dev = pci_dev;
 	rc = amd_mp2_pci_init(privdata, pci_dev);
 	if (rc)
 		return rc;
 
 	mutex_init(&privdata->c2p_lock);
-	privdata->pci_dev = pci_dev;
 
 	pm_runtime_set_autosuspend_delay(&pci_dev->dev, 1000);
 	pm_runtime_use_autosuspend(&pci_dev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-aspeed.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-aspeed.c
@@ -69,6 +69,7 @@
  * These share bit definitions, so use the same values for the enable &
  * status bits.
  */
+#define ASPEED_I2CD_INTR_RECV_MASK			0xf000ffff
 #define ASPEED_I2CD_INTR_SDA_DL_TIMEOUT			BIT(14)
 #define ASPEED_I2CD_INTR_BUS_RECOVER_DONE		BIT(13)
 #define ASPEED_I2CD_INTR_SLAVE_MATCH			BIT(7)
@@ -603,6 +604,8 @@
 	/* Ack all interrupts except for Rx done */
 	writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE,
 	       bus->base + ASPEED_I2C_INTR_STS_REG);
+	readl(bus->base + ASPEED_I2C_INTR_STS_REG);
+	irq_received &= ASPEED_I2CD_INTR_RECV_MASK;
 	irq_remaining = irq_received;
 
 #if IS_ENABLED(CONFIG_I2C_SLAVE)
@@ -645,9 +648,11 @@
 			irq_received, irq_handled);
 
 	/* Ack Rx done */
-	if (irq_received & ASPEED_I2CD_INTR_RX_DONE)
+	if (irq_received & ASPEED_I2CD_INTR_RX_DONE) {
 		writel(ASPEED_I2CD_INTR_RX_DONE,
 		       bus->base + ASPEED_I2C_INTR_STS_REG);
+		readl(bus->base + ASPEED_I2C_INTR_STS_REG);
+	}
 	spin_unlock(&bus->lock);
 	return irq_remaining ? IRQ_NONE : IRQ_HANDLED;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-bcm-iproc.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-bcm-iproc.c
@@ -157,6 +157,11 @@
 
 #define IE_S_ALL_INTERRUPT_SHIFT     21
 #define IE_S_ALL_INTERRUPT_MASK      0x3f
+/*
+ * It takes ~18us to reading 10bytes of data, hence to keep tasklet
+ * running for less time, max slave read per tasklet is set to 10 bytes.
+ */
+#define MAX_SLAVE_RX_PER_INT         10
 
 enum i2c_slave_read_status {
 	I2C_SLAVE_RX_FIFO_EMPTY = 0,
@@ -203,8 +208,18 @@
 	/* bytes that have been read */
 	unsigned int rx_bytes;
 	unsigned int thld_bytes;
+
+	bool slave_rx_only;
+	bool rx_start_rcvd;
+	bool slave_read_complete;
+	u32 tx_underrun;
+	u32 slave_int_mask;
+	struct tasklet_struct slave_rx_tasklet;
 };
 
+/* tasklet to process slave rx data */
+static void slave_rx_tasklet_fn(unsigned long);
+
 /*
  * Can be expanded in the future if more interrupt status bits are utilized
  */
@@ -213,7 +228,8 @@
 
 #define ISR_MASK_SLAVE (BIT(IS_S_START_BUSY_SHIFT)\
 		| BIT(IS_S_RX_EVENT_SHIFT) | BIT(IS_S_RD_EVENT_SHIFT)\
-		| BIT(IS_S_TX_UNDERRUN_SHIFT))
+		| BIT(IS_S_TX_UNDERRUN_SHIFT) | BIT(IS_S_RX_FIFO_FULL_SHIFT)\
+		| BIT(IS_S_RX_THLD_SHIFT))
 
 static int bcm_iproc_i2c_reg_slave(struct i2c_client *slave);
 static int bcm_iproc_i2c_unreg_slave(struct i2c_client *slave);
@@ -257,6 +273,7 @@
 {
 	u32 val;
 
+	iproc_i2c->tx_underrun = 0;
 	if (need_reset) {
 		/* put controller in reset */
 		val = iproc_i2c_rd_reg(iproc_i2c, CFG_OFFSET);
@@ -293,8 +310,11 @@
 
 	/* Enable interrupt register to indicate a valid byte in receive fifo */
 	val = BIT(IE_S_RX_EVENT_SHIFT);
+	/* Enable interrupt register to indicate a Master read transaction */
+	val |= BIT(IE_S_RD_EVENT_SHIFT);
 	/* Enable interrupt register for the Slave BUSY command */
 	val |= BIT(IE_S_START_BUSY_SHIFT);
+	iproc_i2c->slave_int_mask = val;
 	iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val);
 }
 
@@ -319,73 +339,176 @@
 	}
 }
 
-static bool bcm_iproc_i2c_slave_isr(struct bcm_iproc_i2c_dev *iproc_i2c,
-				    u32 status)
+static void bcm_iproc_i2c_slave_read(struct bcm_iproc_i2c_dev *iproc_i2c)
 {
+	u8 rx_data, rx_status;
+	u32 rx_bytes = 0;
 	u32 val;
-	u8 value, rx_status;
 
-	/* Slave RX byte receive */
-	if (status & BIT(IS_S_RX_EVENT_SHIFT)) {
+	while (rx_bytes < MAX_SLAVE_RX_PER_INT) {
 		val = iproc_i2c_rd_reg(iproc_i2c, S_RX_OFFSET);
 		rx_status = (val >> S_RX_STATUS_SHIFT) & S_RX_STATUS_MASK;
-		if (rx_status == I2C_SLAVE_RX_START) {
-			/* Start of SMBUS for Master write */
-			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_WRITE_REQUESTED, &value);
+		rx_data = ((val >> S_RX_DATA_SHIFT) & S_RX_DATA_MASK);
 
-			val = iproc_i2c_rd_reg(iproc_i2c, S_RX_OFFSET);
-			value = (u8)((val >> S_RX_DATA_SHIFT) & S_RX_DATA_MASK);
+		if (rx_status == I2C_SLAVE_RX_START) {
+			/* Start of SMBUS Master write */
 			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_WRITE_RECEIVED, &value);
-		} else if (status & BIT(IS_S_RD_EVENT_SHIFT)) {
-			/* Start of SMBUS for Master Read */
+					I2C_SLAVE_WRITE_REQUESTED, &rx_data);
+			iproc_i2c->rx_start_rcvd = true;
+			iproc_i2c->slave_read_complete = false;
+		} else if (rx_status == I2C_SLAVE_RX_DATA &&
+			   iproc_i2c->rx_start_rcvd) {
+			/* Middle of SMBUS Master write */
 			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_READ_REQUESTED, &value);
-			iproc_i2c_wr_reg(iproc_i2c, S_TX_OFFSET, value);
+					I2C_SLAVE_WRITE_RECEIVED, &rx_data);
+		} else if (rx_status == I2C_SLAVE_RX_END &&
+			   iproc_i2c->rx_start_rcvd) {
+			/* End of SMBUS Master write */
+			if (iproc_i2c->slave_rx_only)
+				i2c_slave_event(iproc_i2c->slave,
+						I2C_SLAVE_WRITE_RECEIVED,
+						&rx_data);
+
+			i2c_slave_event(iproc_i2c->slave, I2C_SLAVE_STOP,
+					&rx_data);
+		} else if (rx_status == I2C_SLAVE_RX_FIFO_EMPTY) {
+			iproc_i2c->rx_start_rcvd = false;
+			iproc_i2c->slave_read_complete = true;
+			break;
+		}
 
-			val = BIT(S_CMD_START_BUSY_SHIFT);
-			iproc_i2c_wr_reg(iproc_i2c, S_CMD_OFFSET, val);
+		rx_bytes++;
+	}
+}
 
-			/*
-			 * Enable interrupt for TX FIFO becomes empty and
-			 * less than PKT_LENGTH bytes were output on the SMBUS
-			 */
-			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);
-		} else {
-			/* Master write other than start */
-			value = (u8)((val >> S_RX_DATA_SHIFT) & S_RX_DATA_MASK);
+static void slave_rx_tasklet_fn(unsigned long data)
+{
+	struct bcm_iproc_i2c_dev *iproc_i2c = (struct bcm_iproc_i2c_dev *)data;
+	u32 int_clr;
+
+	bcm_iproc_i2c_slave_read(iproc_i2c);
+
+	/* clear pending IS_S_RX_EVENT_SHIFT interrupt */
+	int_clr = BIT(IS_S_RX_EVENT_SHIFT);
+
+	if (!iproc_i2c->slave_rx_only && iproc_i2c->slave_read_complete) {
+		/*
+		 * In case of single byte master-read request,
+		 * IS_S_TX_UNDERRUN_SHIFT event is generated before
+		 * IS_S_START_BUSY_SHIFT event. Hence start slave data send
+		 * from first IS_S_TX_UNDERRUN_SHIFT event.
+		 *
+		 * This means don't send any data from slave when
+		 * IS_S_RD_EVENT_SHIFT event is generated else it will increment
+		 * eeprom or other backend slave driver read pointer twice.
+		 */
+		iproc_i2c->tx_underrun = 0;
+		iproc_i2c->slave_int_mask |= BIT(IE_S_TX_UNDERRUN_SHIFT);
+
+		/* clear IS_S_RD_EVENT_SHIFT interrupt */
+		int_clr |= BIT(IS_S_RD_EVENT_SHIFT);
+	}
+
+	/* clear slave interrupt */
+	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, int_clr);
+	/* enable slave interrupts */
+	iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, iproc_i2c->slave_int_mask);
+}
+
+static bool bcm_iproc_i2c_slave_isr(struct bcm_iproc_i2c_dev *iproc_i2c,
+				    u32 status)
+{
+	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
+	 */
+	if (status & BIT(IS_S_RX_EVENT_SHIFT) ||
+	    status & BIT(IS_S_RD_EVENT_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 interrupt */
+		iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET,
+				 BIT(IS_S_RX_EVENT_SHIFT));
+	}
+
+	if (status & BIT(IS_S_TX_UNDERRUN_SHIFT)) {
+		iproc_i2c->tx_underrun++;
+		if (iproc_i2c->tx_underrun == 1)
+			/* Start of SMBUS for Master Read */
 			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_WRITE_RECEIVED, &value);
-		}
-	} else if (status & BIT(IS_S_TX_UNDERRUN_SHIFT)) {
-		/* Master read other than start */
-		i2c_slave_event(iproc_i2c->slave,
-				I2C_SLAVE_READ_PROCESSED, &value);
+					I2C_SLAVE_READ_REQUESTED,
+					&value);
+		else
+			/* Master read other than start */
+			i2c_slave_event(iproc_i2c->slave,
+					I2C_SLAVE_READ_PROCESSED,
+					&value);
 
 		iproc_i2c_wr_reg(iproc_i2c, S_TX_OFFSET, value);
+		/* start transfer */
 		val = BIT(S_CMD_START_BUSY_SHIFT);
 		iproc_i2c_wr_reg(iproc_i2c, S_CMD_OFFSET, val);
+
+		/* clear interrupt */
+		iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET,
+				 BIT(IS_S_TX_UNDERRUN_SHIFT));
 	}
 
-	/* Stop */
+	/* Stop received from master in case of master read transaction */
 	if (status & BIT(IS_S_START_BUSY_SHIFT)) {
-		i2c_slave_event(iproc_i2c->slave, I2C_SLAVE_STOP, &value);
 		/*
 		 * Enable interrupt for TX FIFO becomes empty and
 		 * less than PKT_LENGTH bytes were output on the SMBUS
 		 */
-		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);
+		iproc_i2c->slave_int_mask &= ~BIT(IE_S_TX_UNDERRUN_SHIFT);
+		iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET,
+				 iproc_i2c->slave_int_mask);
+
+		/* End of SMBUS for Master Read */
+		val = BIT(S_TX_WR_STATUS_SHIFT);
+		iproc_i2c_wr_reg(iproc_i2c, S_TX_OFFSET, val);
+
+		val = BIT(S_CMD_START_BUSY_SHIFT);
+		iproc_i2c_wr_reg(iproc_i2c, S_CMD_OFFSET, val);
+
+		/* flush TX FIFOs */
+		val = iproc_i2c_rd_reg(iproc_i2c, S_FIFO_CTRL_OFFSET);
+		val |= (BIT(S_FIFO_TX_FLUSH_SHIFT));
+		iproc_i2c_wr_reg(iproc_i2c, S_FIFO_CTRL_OFFSET, val);
+
+		i2c_slave_event(iproc_i2c->slave, I2C_SLAVE_STOP, &value);
+
+		/* clear interrupt */
+		iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET,
+				 BIT(IS_S_START_BUSY_SHIFT));
 	}
 
-	/* clear interrupt status */
-	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, status);
+	/* check slave transmit status only if slave is transmitting */
+	if (!iproc_i2c->slave_rx_only)
+		bcm_iproc_i2c_check_slave_status(iproc_i2c);
 
-	bcm_iproc_i2c_check_slave_status(iproc_i2c);
 	return true;
 }
 
@@ -500,12 +623,17 @@
 static irqreturn_t bcm_iproc_i2c_isr(int irq, void *data)
 {
 	struct bcm_iproc_i2c_dev *iproc_i2c = data;
-	u32 status = iproc_i2c_rd_reg(iproc_i2c, IS_OFFSET);
+	u32 slave_status;
+	u32 status;
 	bool ret;
-	u32 sl_status = status & ISR_MASK_SLAVE;
 
-	if (sl_status) {
-		ret = bcm_iproc_i2c_slave_isr(iproc_i2c, sl_status);
+	status = iproc_i2c_rd_reg(iproc_i2c, IS_OFFSET);
+	/* process only slave interrupt which are enabled */
+	slave_status = status & iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET) &
+		       ISR_MASK_SLAVE;
+
+	if (slave_status) {
+		ret = bcm_iproc_i2c_slave_isr(iproc_i2c, slave_status);
 		if (ret)
 			return IRQ_HANDLED;
 		else
@@ -1022,6 +1150,10 @@
 		return -EAFNOSUPPORT;
 
 	iproc_i2c->slave = slave;
+
+	tasklet_init(&iproc_i2c->slave_rx_tasklet, slave_rx_tasklet_fn,
+		     (unsigned long)iproc_i2c);
+
 	bcm_iproc_i2c_slave_init(iproc_i2c, false);
 	return 0;
 }
@@ -1034,7 +1166,7 @@
 	if (!iproc_i2c->slave)
 		return -EINVAL;
 
-	iproc_i2c->slave = NULL;
+	disable_irq(iproc_i2c->irq);
 
 	/* disable all slave interrupts */
 	tmp = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET);
@@ -1042,11 +1174,24 @@
 			IE_S_ALL_INTERRUPT_SHIFT);
 	iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, tmp);
 
+	tasklet_kill(&iproc_i2c->slave_rx_tasklet);
+
 	/* Erase the slave address programmed */
 	tmp = iproc_i2c_rd_reg(iproc_i2c, S_CFG_SMBUS_ADDR_OFFSET);
 	tmp &= ~BIT(S_CFG_EN_NIC_SMB_ADDR3_SHIFT);
 	iproc_i2c_wr_reg(iproc_i2c, S_CFG_SMBUS_ADDR_OFFSET, tmp);
 
+	/* flush TX/RX FIFOs */
+	tmp = (BIT(S_FIFO_RX_FLUSH_SHIFT) | BIT(S_FIFO_TX_FLUSH_SHIFT));
+	iproc_i2c_wr_reg(iproc_i2c, S_FIFO_CTRL_OFFSET, tmp);
+
+	/* clear all pending slave interrupts */
+	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, ISR_MASK_SLAVE);
+
+	iproc_i2c->slave = NULL;
+
+	enable_irq(iproc_i2c->irq);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-bcm2835.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-bcm2835.c
@@ -58,6 +58,7 @@
 	struct i2c_adapter adapter;
 	struct completion completion;
 	struct i2c_msg *curr_msg;
+	struct clk *bus_clk;
 	int num_msgs;
 	u32 msg_err;
 	u8 *msg_buf;
@@ -404,7 +405,6 @@
 	struct resource *mem, *irq;
 	int ret;
 	struct i2c_adapter *adap;
-	struct clk *bus_clk;
 	struct clk *mclk;
 	u32 bus_clk_rate;
 
@@ -427,11 +427,11 @@
 		return PTR_ERR(mclk);
 	}
 
-	bus_clk = bcm2835_i2c_register_div(&pdev->dev, mclk, i2c_dev);
+	i2c_dev->bus_clk = bcm2835_i2c_register_div(&pdev->dev, mclk, i2c_dev);
 
-	if (IS_ERR(bus_clk)) {
+	if (IS_ERR(i2c_dev->bus_clk)) {
 		dev_err(&pdev->dev, "Could not register clock\n");
-		return PTR_ERR(bus_clk);
+		return PTR_ERR(i2c_dev->bus_clk);
 	}
 
 	ret = of_property_read_u32(pdev->dev.of_node, "clock-frequency",
@@ -442,13 +442,13 @@
 		bus_clk_rate = 100000;
 	}
 
-	ret = clk_set_rate_exclusive(bus_clk, bus_clk_rate);
+	ret = clk_set_rate_exclusive(i2c_dev->bus_clk, bus_clk_rate);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Could not set clock frequency\n");
 		return ret;
 	}
 
-	ret = clk_prepare_enable(bus_clk);
+	ret = clk_prepare_enable(i2c_dev->bus_clk);
 	if (ret) {
 		dev_err(&pdev->dev, "Couldn't prepare clock");
 		return ret;
@@ -491,10 +491,9 @@
 static int bcm2835_i2c_remove(struct platform_device *pdev)
 {
 	struct bcm2835_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
-	struct clk *bus_clk = devm_clk_get(i2c_dev->dev, "div");
 
-	clk_rate_exclusive_put(bus_clk);
-	clk_disable_unprepare(bus_clk);
+	clk_rate_exclusive_put(i2c_dev->bus_clk);
+	clk_disable_unprepare(i2c_dev->bus_clk);
 
 	free_irq(i2c_dev->irq, i2c_dev);
 	i2c_del_adapter(&i2c_dev->adapter);
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-brcmstb.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-brcmstb.c
@@ -316,7 +316,7 @@
 		goto cmd_out;
 	}
 
-	if ((CMD_RD || CMD_WR) &&
+	if ((cmd == CMD_RD || cmd == CMD_WR) &&
 	    bsc_readl(dev, iic_enable) & BSC_IIC_EN_NOACK_MASK) {
 		rc = -EREMOTEIO;
 		dev_dbg(dev->device, "controller received NOACK intr for %s\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-cadence.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-cadence.c
@@ -377,10 +377,8 @@
 	 * Check for the message size against FIFO depth and set the
 	 * 'hold bus' bit if it is greater than FIFO depth.
 	 */
-	if ((id->recv_count > CDNS_I2C_FIFO_DEPTH)  || id->bus_hold_flag)
+	if (id->recv_count > CDNS_I2C_FIFO_DEPTH)
 		ctrl_reg |= CDNS_I2C_CR_HOLD;
-	else
-		ctrl_reg = ctrl_reg & ~CDNS_I2C_CR_HOLD;
 
 	cdns_i2c_writereg(ctrl_reg, CDNS_I2C_CR_OFFSET);
 
@@ -437,11 +435,8 @@
 	 * Check for the message size against FIFO depth and set the
 	 * 'hold bus' bit if it is greater than FIFO depth.
 	 */
-	if ((id->send_count > CDNS_I2C_FIFO_DEPTH) || id->bus_hold_flag)
+	if (id->send_count > CDNS_I2C_FIFO_DEPTH)
 		ctrl_reg |= CDNS_I2C_CR_HOLD;
-	else
-		ctrl_reg = ctrl_reg & ~CDNS_I2C_CR_HOLD;
-
 	cdns_i2c_writereg(ctrl_reg, CDNS_I2C_CR_OFFSET);
 
 	/* Clear the interrupts in interrupt status register. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-cpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-cpm.c
@@ -65,6 +65,9 @@
 	char    res1[4];	/* Reserved */
 	ushort  rpbase;		/* Relocation pointer */
 	char    res2[2];	/* Reserved */
+	/* The following elements are only for CPM2 */
+	char    res3[4];	/* Reserved */
+	uint    sdmatmp;	/* Internal */
 };
 
 #define I2COM_START	0x80
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -313,6 +313,7 @@
 	pm_runtime_get_noresume(&pdev->dev);
 
 	i2c_del_adapter(&dev->adapter);
+	devm_free_irq(&pdev->dev, dev->irq, dev);
 	pci_free_irq_vectors(pdev);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-designware-platdrv.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -370,10 +370,16 @@
 	adap->dev.of_node = pdev->dev.of_node;
 	adap->nr = -1;
 
-	dev_pm_set_driver_flags(&pdev->dev,
-				DPM_FLAG_SMART_PREPARE |
-				DPM_FLAG_SMART_SUSPEND |
-				DPM_FLAG_LEAVE_SUSPENDED);
+	if (dev->flags & ACCESS_NO_IRQ_SUSPEND) {
+		dev_pm_set_driver_flags(&pdev->dev,
+					DPM_FLAG_SMART_PREPARE |
+					DPM_FLAG_LEAVE_SUSPENDED);
+	} else {
+		dev_pm_set_driver_flags(&pdev->dev,
+					DPM_FLAG_SMART_PREPARE |
+					DPM_FLAG_SMART_SUSPEND |
+					DPM_FLAG_LEAVE_SUSPENDED);
+	}
 
 	/* The code below assumes runtime PM to be disabled. */
 	WARN_ON(pm_runtime_enabled(&pdev->dev));
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-eg20t.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-eg20t.c
@@ -180,6 +180,7 @@
 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_I2C), 1, },
 	{0,}
 };
+MODULE_DEVICE_TABLE(pci, pch_pcidev_id);
 
 static irqreturn_t pch_i2c_handler(int irq, void *pData);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-fsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-fsi.c
@@ -98,7 +98,7 @@
 #define I2C_STAT_DAT_REQ	BIT(25)
 #define I2C_STAT_CMD_COMP	BIT(24)
 #define I2C_STAT_STOP_ERR	BIT(23)
-#define I2C_STAT_MAX_PORT	GENMASK(19, 16)
+#define I2C_STAT_MAX_PORT	GENMASK(22, 16)
 #define I2C_STAT_ANY_INT	BIT(15)
 #define I2C_STAT_SCL_IN		BIT(11)
 #define I2C_STAT_SDA_IN		BIT(10)
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-gpio.c
@@ -348,7 +348,7 @@
 	if (ret == -ENOENT)
 		retdesc = ERR_PTR(-EPROBE_DEFER);
 
-	if (ret != -EPROBE_DEFER)
+	if (PTR_ERR(retdesc) != -EPROBE_DEFER)
 		dev_err(dev, "error trying to get descriptor: %d\n", ret);
 
 	return retdesc;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-hix5hd2.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-hix5hd2.c
@@ -477,6 +477,7 @@
 	i2c_del_adapter(&priv->adap);
 	pm_runtime_disable(priv->dev);
 	pm_runtime_set_suspended(priv->dev);
+	clk_disable_unprepare(priv->clk);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-i801.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-i801.c
@@ -64,6 +64,7 @@
  * Cedar Fork (PCH)		0x18df	32	hard	yes	yes	yes
  * Ice Lake-LP (PCH)		0x34a3	32	hard	yes	yes	yes
  * Comet Lake (PCH)		0x02a3	32	hard	yes	yes	yes
+ * Comet Lake-H (PCH)		0x06a3	32	hard	yes	yes	yes
  * Elkhart Lake (PCH)		0x4b23	32	hard	yes	yes	yes
  * Tiger Lake-LP (PCH)		0xa0a3	32	hard	yes	yes	yes
  *
@@ -129,11 +130,6 @@
 #define TCOBASE		0x050
 #define TCOCTL		0x054
 
-#define ACPIBASE		0x040
-#define ACPIBASE_SMI_OFF	0x030
-#define ACPICTRL		0x044
-#define ACPICTRL_EN		0x080
-
 #define SBREG_BAR		0x10
 #define SBREG_SMBCTRL		0xc6000c
 #define SBREG_SMBCTRL_DNV	0xcf000c
@@ -205,6 +201,7 @@
 
 /* Older devices have their ID defined in <linux/pci_ids.h> */
 #define PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS		0x02a3
+#define PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS		0x06a3
 #define PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS		0x0f12
 #define PCI_DEVICE_ID_INTEL_CDF_SMBUS			0x18df
 #define PCI_DEVICE_ID_INTEL_DNV_SMBUS			0x19df
@@ -1069,6 +1066,7 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CANNONLAKE_LP_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS) },
 	{ 0, }
@@ -1429,7 +1427,7 @@
 
 	/* Register GPIO descriptor lookup table */
 	lookup = devm_kzalloc(dev,
-			      struct_size(lookup, table, mux_config->n_gpios),
+			      struct_size(lookup, table, mux_config->n_gpios + 1),
 			      GFP_KERNEL);
 	if (!lookup)
 		return -ENOMEM;
@@ -1544,7 +1542,7 @@
 		pci_bus_write_config_byte(pci_dev->bus, devfn, 0xe1, hidden);
 	spin_unlock(&p2sb_spinlock);
 
-	res = &tco_res[ICH_RES_MEM_OFF];
+	res = &tco_res[1];
 	if (pci_dev->device == PCI_DEVICE_ID_INTEL_DNV_SMBUS)
 		res->start = (resource_size_t)base64_addr + SBREG_SMBCTRL_DNV;
 	else
@@ -1554,7 +1552,7 @@
 	res->flags = IORESOURCE_MEM;
 
 	return platform_device_register_resndata(&pci_dev->dev, "iTCO_wdt", -1,
-					tco_res, 3, &spt_tco_platform_data,
+					tco_res, 2, &spt_tco_platform_data,
 					sizeof(spt_tco_platform_data));
 }
 
@@ -1567,17 +1565,16 @@
 i801_add_tco_cnl(struct i801_priv *priv, struct pci_dev *pci_dev,
 		 struct resource *tco_res)
 {
-	return platform_device_register_resndata(&pci_dev->dev, "iTCO_wdt", -1,
-					tco_res, 2, &cnl_tco_platform_data,
-					sizeof(cnl_tco_platform_data));
+	return platform_device_register_resndata(&pci_dev->dev,
+			"iTCO_wdt", -1, tco_res, 1, &cnl_tco_platform_data,
+			sizeof(cnl_tco_platform_data));
 }
 
 static void i801_add_tco(struct i801_priv *priv)
 {
-	u32 base_addr, tco_base, tco_ctl, ctrl_val;
 	struct pci_dev *pci_dev = priv->pci_dev;
-	struct resource tco_res[3], *res;
-	unsigned int devfn;
+	struct resource tco_res[2], *res;
+	u32 tco_base, tco_ctl;
 
 	/* If we have ACPI based watchdog use that instead */
 	if (acpi_has_watchdog())
@@ -1592,30 +1589,15 @@
 		return;
 
 	memset(tco_res, 0, sizeof(tco_res));
-
-	res = &tco_res[ICH_RES_IO_TCO];
-	res->start = tco_base & ~1;
-	res->end = res->start + 32 - 1;
-	res->flags = IORESOURCE_IO;
-
 	/*
-	 * Power Management registers.
+	 * Always populate the main iTCO IO resource here. The second entry
+	 * for NO_REBOOT MMIO is filled by the SPT specific function.
 	 */
-	devfn = PCI_DEVFN(PCI_SLOT(pci_dev->devfn), 2);
-	pci_bus_read_config_dword(pci_dev->bus, devfn, ACPIBASE, &base_addr);
-
-	res = &tco_res[ICH_RES_IO_SMI];
-	res->start = (base_addr & ~1) + ACPIBASE_SMI_OFF;
-	res->end = res->start + 3;
+	res = &tco_res[0];
+	res->start = tco_base & ~1;
+	res->end = res->start + 32 - 1;
 	res->flags = IORESOURCE_IO;
 
-	/*
-	 * Enable the ACPI I/O space.
-	 */
-	pci_bus_read_config_dword(pci_dev->bus, devfn, ACPICTRL, &ctrl_val);
-	ctrl_val |= ACPICTRL_EN;
-	pci_bus_write_config_dword(pci_dev->bus, devfn, ACPICTRL, ctrl_val);
-
 	if (priv->features & FEATURE_TCO_CNL)
 		priv->tco_pdev = i801_add_tco_cnl(priv, pci_dev, tco_res);
 	else
@@ -1709,6 +1691,16 @@
 static inline void i801_acpi_remove(struct i801_priv *priv) { }
 #endif
 
+static unsigned char i801_setup_hstcfg(struct i801_priv *priv)
+{
+	unsigned char hstcfg = priv->original_hstcfg;
+
+	hstcfg &= ~SMBHSTCFG_I2C_EN;	/* SMBus timing */
+	hstcfg |= SMBHSTCFG_HST_EN;
+	pci_write_config_byte(priv->pci_dev, SMBHSTCFG, hstcfg);
+	return hstcfg;
+}
+
 static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
 	unsigned char temp;
@@ -1750,6 +1742,7 @@
 	case PCI_DEVICE_ID_INTEL_CDF_SMBUS:
 	case PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS:
 	case PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS:
+	case PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS:
 	case PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS:
 	case PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS:
 		priv->features |= FEATURE_BLOCK_PROC;
@@ -1825,14 +1818,10 @@
 		return err;
 	}
 
-	pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &temp);
-	priv->original_hstcfg = temp;
-	temp &= ~SMBHSTCFG_I2C_EN;	/* SMBus timing */
-	if (!(temp & SMBHSTCFG_HST_EN)) {
+	pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &priv->original_hstcfg);
+	temp = i801_setup_hstcfg(priv);
+	if (!(priv->original_hstcfg & SMBHSTCFG_HST_EN))
 		dev_info(&dev->dev, "Enabling SMBus device\n");
-		temp |= SMBHSTCFG_HST_EN;
-	}
-	pci_write_config_byte(priv->pci_dev, SMBHSTCFG, temp);
 
 	if (temp & SMBHSTCFG_SMB_SMI_EN) {
 		dev_dbg(&dev->dev, "SMBus using interrupt SMI#\n");
@@ -1906,6 +1895,7 @@
 
 	pci_set_drvdata(dev, priv);
 
+	dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NEVER_SKIP);
 	pm_runtime_set_autosuspend_delay(&dev->dev, 1000);
 	pm_runtime_use_autosuspend(&dev->dev);
 	pm_runtime_put_autosuspend(&dev->dev);
@@ -1958,6 +1948,7 @@
 {
 	struct i801_priv *priv = dev_get_drvdata(dev);
 
+	i801_setup_hstcfg(priv);
 	i801_enable_host_notify(&priv->adapter);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-icy.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-icy.c
@@ -43,6 +43,7 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-pcf.h>
 
+#include <asm/amigahw.h>
 #include <asm/amigaints.h>
 #include <linux/zorro.h>
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-imx.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-imx.c
@@ -414,6 +414,19 @@
 	dma->chan_using = NULL;
 }
 
+static void i2c_imx_clear_irq(struct imx_i2c_struct *i2c_imx, unsigned int bits)
+{
+	unsigned int temp;
+
+	/*
+	 * i2sr_clr_opcode is the value to clear all interrupts. Here we want to
+	 * clear only <bits>, so we write ~i2sr_clr_opcode with just <bits>
+	 * toggled. This is required because i.MX needs W0C and Vybrid uses W1C.
+	 */
+	temp = ~i2c_imx->hwdata->i2sr_clr_opcode ^ bits;
+	imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
+}
+
 static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy)
 {
 	unsigned long orig_jiffies = jiffies;
@@ -426,8 +439,7 @@
 
 		/* check for arbitration lost */
 		if (temp & I2SR_IAL) {
-			temp &= ~I2SR_IAL;
-			imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
+			i2c_imx_clear_irq(i2c_imx, I2SR_IAL);
 			return -EAGAIN;
 		}
 
@@ -458,6 +470,16 @@
 		dev_dbg(&i2c_imx->adapter.dev, "<%s> Timeout\n", __func__);
 		return -ETIMEDOUT;
 	}
+
+	/* check for arbitration lost */
+	if (i2c_imx->i2csr & I2SR_IAL) {
+		dev_dbg(&i2c_imx->adapter.dev, "<%s> Arbitration lost\n", __func__);
+		i2c_imx_clear_irq(i2c_imx, I2SR_IAL);
+
+		i2c_imx->i2csr = 0;
+		return -EAGAIN;
+	}
+
 	dev_dbg(&i2c_imx->adapter.dev, "<%s> TRX complete\n", __func__);
 	i2c_imx->i2csr = 0;
 	return 0;
@@ -567,6 +589,8 @@
 		/* Stop I2C transaction */
 		dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
 		temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+		if (!(temp & I2CR_MSTA))
+			i2c_imx->stopped = 1;
 		temp &= ~(I2CR_MSTA | I2CR_MTX);
 		if (i2c_imx->dma)
 			temp &= ~I2CR_DMAEN;
@@ -597,9 +621,7 @@
 	if (temp & I2SR_IIF) {
 		/* save status register */
 		i2c_imx->i2csr = temp;
-		temp &= ~I2SR_IIF;
-		temp |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IIF);
-		imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
+		i2c_imx_clear_irq(i2c_imx, I2SR_IIF);
 		wake_up(&i2c_imx->queue);
 		return IRQ_HANDLED;
 	}
@@ -732,9 +754,12 @@
 		 */
 		dev_dbg(dev, "<%s> clear MSTA\n", __func__);
 		temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+		if (!(temp & I2CR_MSTA))
+			i2c_imx->stopped = 1;
 		temp &= ~(I2CR_MSTA | I2CR_MTX);
 		imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
-		i2c_imx_bus_busy(i2c_imx, 0);
+		if (!i2c_imx->stopped)
+			i2c_imx_bus_busy(i2c_imx, 0);
 	} else {
 		/*
 		 * For i2c master receiver repeat restart operation like:
@@ -857,9 +882,12 @@
 				dev_dbg(&i2c_imx->adapter.dev,
 					"<%s> clear MSTA\n", __func__);
 				temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+				if (!(temp & I2CR_MSTA))
+					i2c_imx->stopped =  1;
 				temp &= ~(I2CR_MSTA | I2CR_MTX);
 				imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
-				i2c_imx_bus_busy(i2c_imx, 0);
+				if (!i2c_imx->stopped)
+					i2c_imx_bus_busy(i2c_imx, 0);
 			} else {
 				/*
 				 * For i2c master receiver repeat restart operation like:
@@ -1112,14 +1140,6 @@
 		return ret;
 	}
 
-	/* Request IRQ */
-	ret = devm_request_irq(&pdev->dev, irq, i2c_imx_isr, IRQF_SHARED,
-				pdev->name, i2c_imx);
-	if (ret) {
-		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
-		goto clk_disable;
-	}
-
 	/* Init queue */
 	init_waitqueue_head(&i2c_imx->queue);
 
@@ -1138,6 +1158,14 @@
 	if (ret < 0)
 		goto rpm_disable;
 
+	/* Request IRQ */
+	ret = request_threaded_irq(irq, i2c_imx_isr, NULL, IRQF_SHARED,
+				   pdev->name, i2c_imx);
+	if (ret) {
+		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
+		goto rpm_disable;
+	}
+
 	/* Set up clock divider */
 	i2c_imx->bitrate = IMX_I2C_BIT_RATE;
 	ret = of_property_read_u32(pdev->dev.of_node,
@@ -1180,13 +1208,12 @@
 
 clk_notifier_unregister:
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	free_irq(irq, i2c_imx);
 rpm_disable:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 	pm_runtime_set_suspended(&pdev->dev);
 	pm_runtime_dont_use_autosuspend(&pdev->dev);
-
-clk_disable:
 	clk_disable_unprepare(i2c_imx->clk);
 	return ret;
 }
@@ -1194,7 +1221,7 @@
 static int i2c_imx_remove(struct platform_device *pdev)
 {
 	struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
-	int ret;
+	int irq, ret;
 
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
@@ -1214,6 +1241,9 @@
 	imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR);
 
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	irq = platform_get_irq(pdev, 0);
+	if (irq >= 0)
+		free_irq(irq, i2c_imx);
 	clk_disable_unprepare(i2c_imx->clk);
 
 	pm_runtime_put_noidle(&pdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-iop3xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-iop3xx.c
@@ -433,13 +433,17 @@
 	adapter_data->gpio_scl = devm_gpiod_get_optional(&pdev->dev,
 							 "scl",
 							 GPIOD_ASIS);
-	if (IS_ERR(adapter_data->gpio_scl))
-		return PTR_ERR(adapter_data->gpio_scl);
+	if (IS_ERR(adapter_data->gpio_scl)) {
+		ret = PTR_ERR(adapter_data->gpio_scl);
+		goto free_both;
+	}
 	adapter_data->gpio_sda = devm_gpiod_get_optional(&pdev->dev,
 							 "sda",
 							 GPIOD_ASIS);
-	if (IS_ERR(adapter_data->gpio_sda))
-		return PTR_ERR(adapter_data->gpio_sda);
+	if (IS_ERR(adapter_data->gpio_sda)) {
+		ret = PTR_ERR(adapter_data->gpio_sda);
+		goto free_both;
+	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!res) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-jz4780.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-jz4780.c
@@ -73,25 +73,6 @@
 #define JZ4780_I2C_STA_TFNF		BIT(1)
 #define JZ4780_I2C_STA_ACT		BIT(0)
 
-static const char * const jz4780_i2c_abrt_src[] = {
-	"ABRT_7B_ADDR_NOACK",
-	"ABRT_10ADDR1_NOACK",
-	"ABRT_10ADDR2_NOACK",
-	"ABRT_XDATA_NOACK",
-	"ABRT_GCALL_NOACK",
-	"ABRT_GCALL_READ",
-	"ABRT_HS_ACKD",
-	"SBYTE_ACKDET",
-	"ABRT_HS_NORSTRT",
-	"SBYTE_NORSTRT",
-	"ABRT_10B_RD_NORSTRT",
-	"ABRT_MASTER_DIS",
-	"ARB_LOST",
-	"SLVFLUSH_TXFIFO",
-	"SLV_ARBLOST",
-	"SLVRD_INTX",
-};
-
 #define JZ4780_I2C_INTST_IGC		BIT(11)
 #define JZ4780_I2C_INTST_ISTT		BIT(10)
 #define JZ4780_I2C_INTST_ISTP		BIT(9)
@@ -529,21 +510,8 @@
 
 static void jz4780_i2c_txabrt(struct jz4780_i2c *i2c, int src)
 {
-	int i;
-
-	dev_err(&i2c->adap.dev, "txabrt: 0x%08x\n", src);
-	dev_err(&i2c->adap.dev, "device addr=%x\n",
-		jz4780_i2c_readw(i2c, JZ4780_I2C_TAR));
-	dev_err(&i2c->adap.dev, "send cmd count:%d  %d\n",
-		i2c->cmd, i2c->cmd_buf[i2c->cmd]);
-	dev_err(&i2c->adap.dev, "receive data count:%d  %d\n",
-		i2c->cmd, i2c->data_buf[i2c->cmd]);
-
-	for (i = 0; i < 16; i++) {
-		if (src & BIT(i))
-			dev_dbg(&i2c->adap.dev, "I2C TXABRT[%d]=%s\n",
-				i, jz4780_i2c_abrt_src[i]);
-	}
+	dev_dbg(&i2c->adap.dev, "txabrt: 0x%08x, cmd: %d, send: %d, recv: %d\n",
+		src, i2c->cmd, i2c->cmd_buf[i2c->cmd], i2c->data_buf[i2c->cmd]);
 }
 
 static inline int jz4780_i2c_xfer_read(struct jz4780_i2c *i2c,
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-meson.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-meson.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2014 Beniamino Galvani <b.galvani@gmail.com>
  */
 
+#include <linux/bitfield.h>
 #include <linux/clk.h>
 #include <linux/completion.h>
 #include <linux/i2c.h>
@@ -32,12 +33,17 @@
 #define REG_CTRL_ACK_IGNORE	BIT(1)
 #define REG_CTRL_STATUS		BIT(2)
 #define REG_CTRL_ERROR		BIT(3)
-#define REG_CTRL_CLKDIV_SHIFT	12
-#define REG_CTRL_CLKDIV_MASK	GENMASK(21, 12)
-#define REG_CTRL_CLKDIVEXT_SHIFT 28
-#define REG_CTRL_CLKDIVEXT_MASK	GENMASK(29, 28)
+#define REG_CTRL_CLKDIV		GENMASK(21, 12)
+#define REG_CTRL_CLKDIVEXT	GENMASK(29, 28)
+
+#define REG_SLV_ADDR		GENMASK(7, 0)
+#define REG_SLV_SDA_FILTER	GENMASK(10, 8)
+#define REG_SLV_SCL_FILTER	GENMASK(13, 11)
+#define REG_SLV_SCL_LOW		GENMASK(27, 16)
+#define REG_SLV_SCL_LOW_EN	BIT(28)
 
 #define I2C_TIMEOUT_MS		500
+#define FILTER_DELAY		15
 
 enum {
 	TOKEN_END = 0,
@@ -132,19 +138,24 @@
 	unsigned long clk_rate = clk_get_rate(i2c->clk);
 	unsigned int div;
 
-	div = DIV_ROUND_UP(clk_rate, freq * i2c->data->div_factor);
+	div = DIV_ROUND_UP(clk_rate, freq);
+	div -= FILTER_DELAY;
+	div = DIV_ROUND_UP(div, i2c->data->div_factor);
 
 	/* clock divider has 12 bits */
-	if (div >= (1 << 12)) {
+	if (div > GENMASK(11, 0)) {
 		dev_err(i2c->dev, "requested bus frequency too low\n");
-		div = (1 << 12) - 1;
+		div = GENMASK(11, 0);
 	}
 
-	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV_MASK,
-			   (div & GENMASK(9, 0)) << REG_CTRL_CLKDIV_SHIFT);
+	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV,
+			   FIELD_PREP(REG_CTRL_CLKDIV, div & GENMASK(9, 0)));
+
+	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT,
+			   FIELD_PREP(REG_CTRL_CLKDIVEXT, div >> 10));
 
-	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT_MASK,
-			   (div >> 10) << REG_CTRL_CLKDIVEXT_SHIFT);
+	/* Disable HIGH/LOW mode */
+	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_SCL_LOW_EN, 0);
 
 	dev_dbg(i2c->dev, "%s: clk %lu, freq %u, div %u\n", __func__,
 		clk_rate, freq, div);
@@ -273,7 +284,10 @@
 	token = (msg->flags & I2C_M_RD) ? TOKEN_SLAVE_ADDR_READ :
 		TOKEN_SLAVE_ADDR_WRITE;
 
-	writel(msg->addr << 1, i2c->regs + REG_SLAVE_ADDR);
+
+	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_ADDR,
+			   FIELD_PREP(REG_SLV_ADDR, msg->addr << 1));
+
 	meson_i2c_add_token(i2c, TOKEN_START);
 	meson_i2c_add_token(i2c, token);
 }
@@ -432,6 +446,10 @@
 		return ret;
 	}
 
+	/* Disable filtering */
+	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR,
+			   REG_SLV_SDA_FILTER | REG_SLV_SCL_FILTER, 0);
+
 	meson_i2c_set_clk_div(i2c, timings.bus_freq_hz);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-mlxcpld.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-mlxcpld.c
@@ -337,9 +337,9 @@
 		if (priv->smbus_block && (val & MLXCPLD_I2C_SMBUS_BLK_BIT)) {
 			mlxcpld_i2c_read_comm(priv, MLXCPLD_LPCI2C_NUM_DAT_REG,
 					      &datalen, 1);
-			if (unlikely(datalen > (I2C_SMBUS_BLOCK_MAX + 1))) {
+			if (unlikely(datalen > I2C_SMBUS_BLOCK_MAX)) {
 				dev_err(priv->dev, "Incorrect smbus block read message len\n");
-				return -E2BIG;
+				return -EPROTO;
 			}
 		} else {
 			datalen = priv->xfer.data_len;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-mt65xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-mt65xx.c
@@ -389,6 +389,10 @@
 {
 	u16 control_reg;
 
+	writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
+	udelay(50);
+	writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
+
 	mtk_i2c_writew(i2c, I2C_SOFT_RST, OFFSET_SOFTRESET);
 
 	/* Set ioconfig */
@@ -419,10 +423,6 @@
 
 	mtk_i2c_writew(i2c, control_reg, OFFSET_CONTROL);
 	mtk_i2c_writew(i2c, I2C_DELAY_LEN, OFFSET_DELAY_LEN);
-
-	writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
-	udelay(50);
-	writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
 }
 
 /*
@@ -1008,7 +1008,8 @@
 	mtk_i2c_clock_disable(i2c);
 
 	ret = devm_request_irq(&pdev->dev, irq, mtk_i2c_irq,
-			       IRQF_TRIGGER_NONE, I2C_DRV_NAME, i2c);
+			       IRQF_NO_SUSPEND | IRQF_TRIGGER_NONE,
+			       I2C_DRV_NAME, i2c);
 	if (ret < 0) {
 		dev_err(&pdev->dev,
 			"Request I2C IRQ %d fail\n", irq);
@@ -1035,7 +1036,16 @@
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int mtk_i2c_resume(struct device *dev)
+static int mtk_i2c_suspend_noirq(struct device *dev)
+{
+	struct mtk_i2c *i2c = dev_get_drvdata(dev);
+
+	i2c_mark_adapter_suspended(&i2c->adap);
+
+	return 0;
+}
+
+static int mtk_i2c_resume_noirq(struct device *dev)
 {
 	int ret;
 	struct mtk_i2c *i2c = dev_get_drvdata(dev);
@@ -1050,12 +1060,15 @@
 
 	mtk_i2c_clock_disable(i2c);
 
+	i2c_mark_adapter_resumed(&i2c->adap);
+
 	return 0;
 }
 #endif
 
 static const struct dev_pm_ops mtk_i2c_pm = {
-	SET_SYSTEM_SLEEP_PM_OPS(NULL, mtk_i2c_resume)
+	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(mtk_i2c_suspend_noirq,
+				      mtk_i2c_resume_noirq)
 };
 
 static struct platform_driver mtk_i2c_driver = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-mxs.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-mxs.c
@@ -25,6 +25,7 @@
 #include <linux/of_device.h>
 #include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
+#include <linux/dma/mxs-dma.h>
 
 #define DRIVER_NAME "mxs-i2c"
 
@@ -200,7 +201,8 @@
 		dma_map_sg(i2c->dev, &i2c->sg_io[0], 1, DMA_TO_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, &i2c->sg_io[0], 1,
 					DMA_MEM_TO_DEV,
-					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
+					DMA_PREP_INTERRUPT |
+					MXS_DMA_CTRL_WAIT4END);
 		if (!desc) {
 			dev_err(i2c->dev,
 				"Failed to get DMA data write descriptor.\n");
@@ -228,7 +230,8 @@
 		dma_map_sg(i2c->dev, &i2c->sg_io[1], 1, DMA_FROM_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, &i2c->sg_io[1], 1,
 					DMA_DEV_TO_MEM,
-					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
+					DMA_PREP_INTERRUPT |
+					MXS_DMA_CTRL_WAIT4END);
 		if (!desc) {
 			dev_err(i2c->dev,
 				"Failed to get DMA data write descriptor.\n");
@@ -260,7 +263,8 @@
 		dma_map_sg(i2c->dev, i2c->sg_io, 2, DMA_TO_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, i2c->sg_io, 2,
 					DMA_MEM_TO_DEV,
-					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
+					DMA_PREP_INTERRUPT |
+					MXS_DMA_CTRL_WAIT4END);
 		if (!desc) {
 			dev_err(i2c->dev,
 				"Failed to get DMA data write descriptor.\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-nvidia-gpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-nvidia-gpu.c
@@ -8,6 +8,7 @@
 #include <linux/delay.h>
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
+#include <linux/iopoll.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/platform_device.h>
@@ -75,20 +76,15 @@
 
 static int gpu_i2c_check_status(struct gpu_i2c_dev *i2cd)
 {
-	unsigned long target = jiffies + msecs_to_jiffies(1000);
 	u32 val;
+	int ret;
 
-	do {
-		val = readl(i2cd->regs + I2C_MST_CNTL);
-		if (!(val & I2C_MST_CNTL_CYCLE_TRIGGER))
-			break;
-		if ((val & I2C_MST_CNTL_STATUS) !=
-				I2C_MST_CNTL_STATUS_BUS_BUSY)
-			break;
-		usleep_range(500, 600);
-	} while (time_is_after_jiffies(target));
+	ret = readl_poll_timeout(i2cd->regs + I2C_MST_CNTL, val,
+				 !(val & I2C_MST_CNTL_CYCLE_TRIGGER) ||
+				 (val & I2C_MST_CNTL_STATUS) != I2C_MST_CNTL_STATUS_BUS_BUSY,
+				 500, 1000 * USEC_PER_MSEC);
 
-	if (time_is_before_jiffies(target)) {
+	if (ret) {
 		dev_err(i2cd->dev, "i2c timeout error %x\n", val);
 		return -ETIMEDOUT;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-octeon-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-octeon-core.c
@@ -347,7 +347,7 @@
 		if (result)
 			return result;
 		if (recv_len && i == 0) {
-			if (data[i] > I2C_SMBUS_BLOCK_MAX + 1)
+			if (data[i] > I2C_SMBUS_BLOCK_MAX)
 				return -EPROTO;
 			length += data[i];
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-owl.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-owl.c
@@ -179,6 +179,9 @@
 	fifostat = readl(i2c_dev->base + OWL_I2C_REG_FIFOSTAT);
 	if (fifostat & OWL_I2C_FIFOSTAT_RNB) {
 		i2c_dev->err = -ENXIO;
+		/* Clear NACK error bit by writing "1" */
+		owl_i2c_update_reg(i2c_dev->base + OWL_I2C_REG_FIFOSTAT,
+				   OWL_I2C_FIFOSTAT_RNB, true);
 		goto stop;
 	}
 
@@ -186,6 +189,9 @@
 	stat = readl(i2c_dev->base + OWL_I2C_REG_STAT);
 	if (stat & OWL_I2C_STAT_BEB) {
 		i2c_dev->err = -EIO;
+		/* Clear BUS error bit by writing "1" */
+		owl_i2c_update_reg(i2c_dev->base + OWL_I2C_REG_STAT,
+				   OWL_I2C_STAT_BEB, true);
 		goto stop;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-pca-platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-pca-platform.c
@@ -140,7 +140,7 @@
 	int ret = 0;
 	int irq;
 
-	irq = platform_get_irq(pdev, 0);
+	irq = platform_get_irq_optional(pdev, 0);
 	/* If irq is 0, we do polling. */
 	if (irq < 0)
 		irq = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-piix4.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-piix4.c
@@ -977,7 +977,8 @@
 	}
 
 	if (dev->vendor == PCI_VENDOR_ID_AMD &&
-	    dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) {
+	    (dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS ||
+	     dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS)) {
 		retval = piix4_setup_sb800(dev, id, 1);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-pxa.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-pxa.c
@@ -312,11 +312,10 @@
 	dev_err(dev, "IBMR: %08x IDBR: %08x ICR: %08x ISR: %08x\n",
 		readl(_IBMR(i2c)), readl(_IDBR(i2c)), readl(_ICR(i2c)),
 		readl(_ISR(i2c)));
-	dev_dbg(dev, "log: ");
+	dev_err(dev, "log:");
 	for (i = 0; i < i2c->irqlogidx; i++)
-		pr_debug("[%08x:%08x] ", i2c->isrlog[i], i2c->icrlog[i]);
-
-	pr_debug("\n");
+		pr_cont(" [%03x:%05x]", i2c->isrlog[i], i2c->icrlog[i]);
+	pr_cont("\n");
 }
 
 #else /* ifdef DEBUG */
@@ -706,11 +705,9 @@
 {
 	u32 icr;
 
-	/*
-	 * Clear the STOP and ACK flags
-	 */
+	/* Clear the START, STOP, ACK, TB and MA flags */
 	icr = readl(_ICR(i2c));
-	icr &= ~(ICR_STOP | ICR_ACKNAK);
+	icr &= ~(ICR_START | ICR_STOP | ICR_ACKNAK | ICR_TB | ICR_MA);
 	writel(icr, _ICR(i2c));
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-qcom-geni.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-qcom-geni.c
@@ -87,6 +87,9 @@
 	u32 clk_freq_out;
 	const struct geni_i2c_clk_fld *clk_fld;
 	int suspended;
+	void *dma_buf;
+	size_t xfer_len;
+	dma_addr_t dma_addr;
 };
 
 struct geni_i2c_err_log {
@@ -350,14 +353,39 @@
 		dev_err(gi2c->se.dev, "Timeout resetting TX_FSM\n");
 }
 
+static void geni_i2c_rx_msg_cleanup(struct geni_i2c_dev *gi2c,
+				     struct i2c_msg *cur)
+{
+	gi2c->cur_rd = 0;
+	if (gi2c->dma_buf) {
+		if (gi2c->err)
+			geni_i2c_rx_fsm_rst(gi2c);
+		geni_se_rx_dma_unprep(&gi2c->se, gi2c->dma_addr, gi2c->xfer_len);
+		i2c_put_dma_safe_msg_buf(gi2c->dma_buf, cur, !gi2c->err);
+	}
+}
+
+static void geni_i2c_tx_msg_cleanup(struct geni_i2c_dev *gi2c,
+				     struct i2c_msg *cur)
+{
+	gi2c->cur_wr = 0;
+	if (gi2c->dma_buf) {
+		if (gi2c->err)
+			geni_i2c_tx_fsm_rst(gi2c);
+		geni_se_tx_dma_unprep(&gi2c->se, gi2c->dma_addr, gi2c->xfer_len);
+		i2c_put_dma_safe_msg_buf(gi2c->dma_buf, cur, !gi2c->err);
+	}
+}
+
 static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,
 				u32 m_param)
 {
-	dma_addr_t rx_dma;
+	dma_addr_t rx_dma = 0;
 	unsigned long time_left;
 	void *dma_buf = NULL;
 	struct geni_se *se = &gi2c->se;
 	size_t len = msg->len;
+	struct i2c_msg *cur;
 
 	if (!of_machine_is_compatible("lenovo,yoga-c630"))
 		dma_buf = i2c_get_dma_safe_msg_buf(msg, 32);
@@ -374,19 +402,18 @@
 		geni_se_select_mode(se, GENI_SE_FIFO);
 		i2c_put_dma_safe_msg_buf(dma_buf, msg, false);
 		dma_buf = NULL;
+	} else {
+		gi2c->xfer_len = len;
+		gi2c->dma_addr = rx_dma;
+		gi2c->dma_buf = dma_buf;
 	}
 
+	cur = gi2c->cur;
 	time_left = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT);
 	if (!time_left)
 		geni_i2c_abort_xfer(gi2c);
 
-	gi2c->cur_rd = 0;
-	if (dma_buf) {
-		if (gi2c->err)
-			geni_i2c_rx_fsm_rst(gi2c);
-		geni_se_rx_dma_unprep(se, rx_dma, len);
-		i2c_put_dma_safe_msg_buf(dma_buf, msg, !gi2c->err);
-	}
+	geni_i2c_rx_msg_cleanup(gi2c, cur);
 
 	return gi2c->err;
 }
@@ -394,11 +421,12 @@
 static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,
 				u32 m_param)
 {
-	dma_addr_t tx_dma;
+	dma_addr_t tx_dma = 0;
 	unsigned long time_left;
 	void *dma_buf = NULL;
 	struct geni_se *se = &gi2c->se;
 	size_t len = msg->len;
+	struct i2c_msg *cur;
 
 	if (!of_machine_is_compatible("lenovo,yoga-c630"))
 		dma_buf = i2c_get_dma_safe_msg_buf(msg, 32);
@@ -415,22 +443,21 @@
 		geni_se_select_mode(se, GENI_SE_FIFO);
 		i2c_put_dma_safe_msg_buf(dma_buf, msg, false);
 		dma_buf = NULL;
+	} else {
+		gi2c->xfer_len = len;
+		gi2c->dma_addr = tx_dma;
+		gi2c->dma_buf = dma_buf;
 	}
 
 	if (!dma_buf) /* Get FIFO IRQ */
 		writel_relaxed(1, se->base + SE_GENI_TX_WATERMARK_REG);
 
+	cur = gi2c->cur;
 	time_left = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT);
 	if (!time_left)
 		geni_i2c_abort_xfer(gi2c);
 
-	gi2c->cur_wr = 0;
-	if (dma_buf) {
-		if (gi2c->err)
-			geni_i2c_tx_fsm_rst(gi2c);
-		geni_se_tx_dma_unprep(se, tx_dma, len);
-		i2c_put_dma_safe_msg_buf(dma_buf, msg, !gi2c->err);
-	}
+	geni_i2c_tx_msg_cleanup(gi2c, cur);
 
 	return gi2c->err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-qup.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-qup.c
@@ -806,7 +806,8 @@
 	if (ret || qup->bus_err || qup->qup_err) {
 		reinit_completion(&qup->xfer);
 
-		if (qup_i2c_change_state(qup, QUP_RUN_STATE)) {
+		ret = qup_i2c_change_state(qup, QUP_RUN_STATE);
+		if (ret) {
 			dev_err(qup->dev, "change to run state timed out");
 			goto desc_err;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-rcar.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-rcar.c
@@ -89,7 +89,6 @@
 
 #define RCAR_BUS_PHASE_START	(MDBS | MIE | ESG)
 #define RCAR_BUS_PHASE_DATA	(MDBS | MIE)
-#define RCAR_BUS_MASK_DATA	(~(ESG | FSB) & 0xFF)
 #define RCAR_BUS_PHASE_STOP	(MDBS | MIE | FSB)
 
 #define RCAR_IRQ_SEND	(MNR | MAL | MST | MAT | MDE)
@@ -117,6 +116,7 @@
 };
 
 struct rcar_i2c_priv {
+	u32 flags;
 	void __iomem *io;
 	struct i2c_adapter adap;
 	struct i2c_msg *msg;
@@ -127,7 +127,6 @@
 
 	int pos;
 	u32 icccr;
-	u32 flags;
 	u8 recovery_icmcr;	/* protected by adapter lock */
 	enum rcar_i2c_type devtype;
 	struct i2c_client *slave;
@@ -580,13 +579,15 @@
 			rcar_i2c_write(priv, ICSIER, SDR | SSR | SAR);
 		}
 
-		rcar_i2c_write(priv, ICSSR, ~SAR & 0xff);
+		/* Clear SSR, too, because of old STOPs to other clients than us */
+		rcar_i2c_write(priv, ICSSR, ~(SAR | SSR) & 0xff);
 	}
 
 	/* master sent stop */
 	if (ssr_filtered & SSR) {
 		i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value);
-		rcar_i2c_write(priv, ICSIER, SAR | SSR);
+		rcar_i2c_write(priv, ICSCR, SIE | SDBS); /* clear our NACK */
+		rcar_i2c_write(priv, ICSIER, SAR);
 		rcar_i2c_write(priv, ICSSR, ~SSR & 0xff);
 	}
 
@@ -614,7 +615,7 @@
 /*
  * This driver has a lock-free design because there are IP cores (at least
  * R-Car Gen2) which have an inherent race condition in their hardware design.
- * There, we need to clear RCAR_BUS_MASK_DATA bits as soon as possible after
+ * There, we need to switch to RCAR_BUS_PHASE_DATA as soon as possible after
  * the interrupt was generated, otherwise an unwanted repeated message gets
  * generated. It turned out that taking a spinlock at the beginning of the ISR
  * was already causing repeated messages. Thus, this driver was converted to
@@ -623,13 +624,11 @@
 static irqreturn_t rcar_i2c_irq(int irq, void *ptr)
 {
 	struct rcar_i2c_priv *priv = ptr;
-	u32 msr, val;
+	u32 msr;
 
 	/* Clear START or STOP immediately, except for REPSTART after read */
-	if (likely(!(priv->flags & ID_P_REP_AFTER_RD))) {
-		val = rcar_i2c_read(priv, ICMCR);
-		rcar_i2c_write(priv, ICMCR, val & RCAR_BUS_MASK_DATA);
-	}
+	if (likely(!(priv->flags & ID_P_REP_AFTER_RD)))
+		rcar_i2c_write(priv, ICMCR, RCAR_BUS_PHASE_DATA);
 
 	msr = rcar_i2c_read(priv, ICMSR);
 
@@ -850,7 +849,7 @@
 	priv->slave = slave;
 	rcar_i2c_write(priv, ICSAR, slave->addr);
 	rcar_i2c_write(priv, ICSSR, 0);
-	rcar_i2c_write(priv, ICSIER, SAR | SSR);
+	rcar_i2c_write(priv, ICSIER, SAR);
 	rcar_i2c_write(priv, ICSCR, SIE | SDBS);
 
 	return 0;
@@ -862,11 +861,14 @@
 
 	WARN_ON(!priv->slave);
 
-	/* disable irqs and ensure none is running before clearing ptr */
+	/* ensure no irq is running before clearing ptr */
+	disable_irq(priv->irq);
 	rcar_i2c_write(priv, ICSIER, 0);
-	rcar_i2c_write(priv, ICSCR, 0);
+	rcar_i2c_write(priv, ICSSR, 0);
+	enable_irq(priv->irq);
+	rcar_i2c_write(priv, ICSCR, SDBS);
+	rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
 
-	synchronize_irq(priv->irq);
 	priv->slave = NULL;
 
 	pm_runtime_put(rcar_i2c_priv_to_dev(priv));
@@ -971,6 +973,8 @@
 	if (ret < 0)
 		goto out_pm_put;
 
+	rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
+
 	if (priv->devtype == I2C_RCAR_GEN3) {
 		priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
 		if (!IS_ERR(priv->rstc)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-sh_mobile.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-sh_mobile.c
@@ -129,6 +129,7 @@
 	int sr;
 	bool send_stop;
 	bool stop_after_dma;
+	bool atomic_xfer;
 
 	struct resource *res;
 	struct dma_chan *dma_tx;
@@ -333,13 +334,15 @@
 		ret = iic_rd(pd, ICDR);
 		break;
 	case OP_RX_STOP: /* enable DTE interrupt, issue stop */
-		iic_wr(pd, ICIC,
-		       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
+		if (!pd->atomic_xfer)
+			iic_wr(pd, ICIC,
+			       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
 		iic_wr(pd, ICCR, ICCR_ICE | ICCR_RACK);
 		break;
 	case OP_RX_STOP_DATA: /* enable DTE interrupt, read data, issue stop */
-		iic_wr(pd, ICIC,
-		       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
+		if (!pd->atomic_xfer)
+			iic_wr(pd, ICIC,
+			       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
 		ret = iic_rd(pd, ICDR);
 		iic_wr(pd, ICCR, ICCR_ICE | ICCR_RACK);
 		break;
@@ -435,7 +438,8 @@
 
 	if (wakeup) {
 		pd->sr |= SW_DONE;
-		wake_up(&pd->wait);
+		if (!pd->atomic_xfer)
+			wake_up(&pd->wait);
 	}
 
 	/* defeat write posting to avoid spurious WAIT interrupts */
@@ -587,6 +591,9 @@
 	pd->pos = -1;
 	pd->sr = 0;
 
+	if (pd->atomic_xfer)
+		return;
+
 	pd->dma_buf = i2c_get_dma_safe_msg_buf(pd->msg, 8);
 	if (pd->dma_buf)
 		sh_mobile_i2c_xfer_dma(pd);
@@ -643,15 +650,13 @@
 	return i ? 0 : -ETIMEDOUT;
 }
 
-static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
-			      struct i2c_msg *msgs,
-			      int num)
+static int sh_mobile_xfer(struct sh_mobile_i2c_data *pd,
+			 struct i2c_msg *msgs, int num)
 {
-	struct sh_mobile_i2c_data *pd = i2c_get_adapdata(adapter);
 	struct i2c_msg	*msg;
 	int err = 0;
 	int i;
-	long timeout;
+	long time_left;
 
 	/* Wake up device and enable clock */
 	pm_runtime_get_sync(pd->dev);
@@ -668,15 +673,35 @@
 		if (do_start)
 			i2c_op(pd, OP_START);
 
-		/* The interrupt handler takes care of the rest... */
-		timeout = wait_event_timeout(pd->wait,
-				       pd->sr & (ICSR_TACK | SW_DONE),
-				       adapter->timeout);
+		if (pd->atomic_xfer) {
+			unsigned long j = jiffies + pd->adap.timeout;
 
-		/* 'stop_after_dma' tells if DMA transfer was complete */
-		i2c_put_dma_safe_msg_buf(pd->dma_buf, pd->msg, pd->stop_after_dma);
+			time_left = time_before_eq(jiffies, j);
+			while (time_left &&
+			       !(pd->sr & (ICSR_TACK | SW_DONE))) {
+				unsigned char sr = iic_rd(pd, ICSR);
+
+				if (sr & (ICSR_AL   | ICSR_TACK |
+					  ICSR_WAIT | ICSR_DTE)) {
+					sh_mobile_i2c_isr(0, pd);
+					udelay(150);
+				} else {
+					cpu_relax();
+				}
+				time_left = time_before_eq(jiffies, j);
+			}
+		} else {
+			/* The interrupt handler takes care of the rest... */
+			time_left = wait_event_timeout(pd->wait,
+					pd->sr & (ICSR_TACK | SW_DONE),
+					pd->adap.timeout);
+
+			/* 'stop_after_dma' tells if DMA xfer was complete */
+			i2c_put_dma_safe_msg_buf(pd->dma_buf, pd->msg,
+						 pd->stop_after_dma);
+		}
 
-		if (!timeout) {
+		if (!time_left) {
 			dev_err(pd->dev, "Transfer request timed out\n");
 			if (pd->dma_direction != DMA_NONE)
 				sh_mobile_i2c_cleanup_dma(pd);
@@ -702,14 +727,35 @@
 	return err ?: num;
 }
 
+static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
+			      struct i2c_msg *msgs,
+			      int num)
+{
+	struct sh_mobile_i2c_data *pd = i2c_get_adapdata(adapter);
+
+	pd->atomic_xfer = false;
+	return sh_mobile_xfer(pd, msgs, num);
+}
+
+static int sh_mobile_i2c_xfer_atomic(struct i2c_adapter *adapter,
+				     struct i2c_msg *msgs,
+				     int num)
+{
+	struct sh_mobile_i2c_data *pd = i2c_get_adapdata(adapter);
+
+	pd->atomic_xfer = true;
+	return sh_mobile_xfer(pd, msgs, num);
+}
+
 static u32 sh_mobile_i2c_func(struct i2c_adapter *adapter)
 {
 	return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_PROTOCOL_MANGLING;
 }
 
 static const struct i2c_algorithm sh_mobile_i2c_algorithm = {
-	.functionality	= sh_mobile_i2c_func,
-	.master_xfer	= sh_mobile_i2c_xfer,
+	.functionality = sh_mobile_i2c_func,
+	.master_xfer = sh_mobile_i2c_xfer,
+	.master_xfer_atomic = sh_mobile_i2c_xfer_atomic,
 };
 
 static const struct i2c_adapter_quirks sh_mobile_i2c_quirks = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-sprd.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-sprd.c
@@ -72,6 +72,8 @@
 
 /* timeout (ms) for pm runtime autosuspend */
 #define SPRD_I2C_PM_TIMEOUT	1000
+/* timeout (ms) for transfer message */
+#define I2C_XFER_TIMEOUT	1000
 
 /* SPRD i2c data structure */
 struct sprd_i2c {
@@ -244,6 +246,7 @@
 			       struct i2c_msg *msg, bool is_last_msg)
 {
 	struct sprd_i2c *i2c_dev = i2c_adap->algo_data;
+	unsigned long time_left;
 
 	i2c_dev->msg = msg;
 	i2c_dev->buf = msg->buf;
@@ -273,7 +276,10 @@
 
 	sprd_i2c_opt_start(i2c_dev);
 
-	wait_for_completion(&i2c_dev->complete);
+	time_left = wait_for_completion_timeout(&i2c_dev->complete,
+				msecs_to_jiffies(I2C_XFER_TIMEOUT));
+	if (!time_left)
+		return -ETIMEDOUT;
 
 	return i2c_dev->err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-st.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-st.c
@@ -434,6 +434,7 @@
 /**
  * st_i2c_rd_fill_tx_fifo() - Fill the Tx FIFO in read mode
  * @i2c_dev: Controller's private data
+ * @max: Maximum amount of data to fill into the Tx FIFO
  *
  * This functions fills the Tx FIFO with fixed pattern when
  * in read mode to trigger clock.
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-stm32.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-stm32.c
@@ -20,13 +20,13 @@
 
 	dma = devm_kzalloc(dev, sizeof(*dma), GFP_KERNEL);
 	if (!dma)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	/* Request and configure I2C TX dma channel */
-	dma->chan_tx = dma_request_slave_channel(dev, "tx");
-	if (!dma->chan_tx) {
+	dma->chan_tx = dma_request_chan(dev, "tx");
+	if (IS_ERR(dma->chan_tx)) {
 		dev_dbg(dev, "can't request DMA tx channel\n");
-		ret = -EINVAL;
+		ret = PTR_ERR(dma->chan_tx);
 		goto fail_al;
 	}
 
@@ -42,10 +42,10 @@
 	}
 
 	/* Request and configure I2C RX dma channel */
-	dma->chan_rx = dma_request_slave_channel(dev, "rx");
-	if (!dma->chan_rx) {
+	dma->chan_rx = dma_request_chan(dev, "rx");
+	if (IS_ERR(dma->chan_rx)) {
 		dev_err(dev, "can't request DMA rx channel\n");
-		ret = -EINVAL;
+		ret = PTR_ERR(dma->chan_rx);
 		goto fail_tx;
 	}
 
@@ -75,7 +75,7 @@
 	devm_kfree(dev, dma);
 	dev_info(dev, "can't use DMA\n");
 
-	return NULL;
+	return ERR_PTR(ret);
 }
 
 void stm32_i2c_dma_free(struct stm32_i2c_dma *dma)
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-stm32f7.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-stm32f7.c
@@ -53,6 +53,8 @@
 #define STM32F7_I2C_CR1_RXDMAEN			BIT(15)
 #define STM32F7_I2C_CR1_TXDMAEN			BIT(14)
 #define STM32F7_I2C_CR1_ANFOFF			BIT(12)
+#define STM32F7_I2C_CR1_DNF_MASK		GENMASK(11, 8)
+#define STM32F7_I2C_CR1_DNF(n)			(((n) & 0xf) << 8)
 #define STM32F7_I2C_CR1_ERRIE			BIT(7)
 #define STM32F7_I2C_CR1_TCIE			BIT(6)
 #define STM32F7_I2C_CR1_STOPIE			BIT(5)
@@ -151,7 +153,7 @@
 #define STM32F7_I2C_MAX_SLAVE			0x2
 
 #define STM32F7_I2C_DNF_DEFAULT			0
-#define STM32F7_I2C_DNF_MAX			16
+#define STM32F7_I2C_DNF_MAX			15
 
 #define STM32F7_I2C_ANALOG_FILTER_ENABLE	1
 #define STM32F7_I2C_ANALOG_FILTER_DELAY_MIN	50	/* ns */
@@ -657,6 +659,13 @@
 	else
 		stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
 				     STM32F7_I2C_CR1_ANFOFF);
+
+	/* Program the Digital Filter */
+	stm32f7_i2c_clr_bits(i2c_dev->base + STM32F7_I2C_CR1,
+			     STM32F7_I2C_CR1_DNF_MASK);
+	stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
+			     STM32F7_I2C_CR1_DNF(i2c_dev->setup.dnf));
+
 	stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
 			     STM32F7_I2C_CR1_PE);
 }
@@ -1267,8 +1276,8 @@
 	 * slave[0] supports 7-bit and 10-bit slave address
 	 * slave[1] supports 7-bit slave address only
 	 */
-	for (i = 0; i < STM32F7_I2C_MAX_SLAVE; i++) {
-		if (i == 1 && (slave->flags & I2C_CLIENT_PEC))
+	for (i = STM32F7_I2C_MAX_SLAVE - 1; i >= 0; i--) {
+		if (i == 1 && (slave->flags & I2C_CLIENT_TEN))
 			continue;
 		if (!i2c_dev->slave[i]) {
 			*id = i;
@@ -1955,6 +1964,15 @@
 	i2c_dev->dma = stm32_i2c_dma_request(i2c_dev->dev, phy_addr,
 					     STM32F7_I2C_TXDR,
 					     STM32F7_I2C_RXDR);
+	if (PTR_ERR(i2c_dev->dma) == -ENODEV)
+		i2c_dev->dma = NULL;
+	else if (IS_ERR(i2c_dev->dma)) {
+		ret = PTR_ERR(i2c_dev->dma);
+		if (ret != -EPROBE_DEFER)
+			dev_err(&pdev->dev,
+				"Failed to request dma error %i\n", ret);
+		goto clk_free;
+	}
 
 	platform_set_drvdata(pdev, i2c_dev);
 
@@ -1985,6 +2003,11 @@
 	pm_runtime_set_suspended(i2c_dev->dev);
 	pm_runtime_dont_use_autosuspend(i2c_dev->dev);
 
+	if (i2c_dev->dma) {
+		stm32_i2c_dma_free(i2c_dev->dma);
+		i2c_dev->dma = NULL;
+	}
+
 clk_free:
 	clk_disable_unprepare(i2c_dev->clk);
 
@@ -1995,21 +2018,21 @@
 {
 	struct stm32f7_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
-	if (i2c_dev->dma) {
-		stm32_i2c_dma_free(i2c_dev->dma);
-		i2c_dev->dma = NULL;
-	}
-
 	i2c_del_adapter(&i2c_dev->adap);
 	pm_runtime_get_sync(i2c_dev->dev);
 
-	clk_disable_unprepare(i2c_dev->clk);
-
 	pm_runtime_put_noidle(i2c_dev->dev);
 	pm_runtime_disable(i2c_dev->dev);
 	pm_runtime_set_suspended(i2c_dev->dev);
 	pm_runtime_dont_use_autosuspend(i2c_dev->dev);
 
+	if (i2c_dev->dma) {
+		stm32_i2c_dma_free(i2c_dev->dma);
+		i2c_dev->dma = NULL;
+	}
+
+	clk_disable_unprepare(i2c_dev->clk);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-tegra-bpmp.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-tegra-bpmp.c
@@ -80,7 +80,7 @@
 		flags &= ~I2C_M_RECV_LEN;
 	}
 
-	return (flags != 0) ? -EINVAL : 0;
+	return 0;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/busses/i2c-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/busses/i2c-tegra.c
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
+#include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/of_device.h>
@@ -230,7 +231,6 @@
  * @base_phys: physical base address of the I2C controller
  * @cont_id: I2C controller ID, used for packet header
  * @irq: IRQ number of transfer complete interrupt
- * @irq_disabled: used to track whether or not the interrupt is enabled
  * @is_dvc: identifies the DVC I2C controller, has a different register layout
  * @msg_complete: transfer completion notifier
  * @msg_err: error code for completed message
@@ -240,7 +240,6 @@
  * @bus_clk_rate: current I2C bus clock rate
  * @clk_divisor_non_hs_mode: clock divider for non-high-speed modes
  * @is_multimaster_mode: track if I2C controller is in multi-master mode
- * @xfer_lock: lock to serialize transfer submission and processing
  * @tx_dma_chan: DMA transmit channel
  * @rx_dma_chan: DMA receive channel
  * @dma_phys: handle to DMA resources
@@ -260,7 +259,6 @@
 	phys_addr_t base_phys;
 	int cont_id;
 	int irq;
-	bool irq_disabled;
 	int is_dvc;
 	struct completion msg_complete;
 	int msg_err;
@@ -270,8 +268,6 @@
 	u32 bus_clk_rate;
 	u16 clk_divisor_non_hs_mode;
 	bool is_multimaster_mode;
-	/* xfer_lock: lock to serialize transfer submission and processing */
-	spinlock_t xfer_lock;
 	struct dma_chan *tx_dma_chan;
 	struct dma_chan *rx_dma_chan;
 	dma_addr_t dma_phys;
@@ -790,11 +786,6 @@
 	if (err)
 		return err;
 
-	if (i2c_dev->irq_disabled) {
-		i2c_dev->irq_disabled = false;
-		enable_irq(i2c_dev->irq);
-	}
-
 	return 0;
 }
 
@@ -825,18 +816,12 @@
 
 	status = i2c_readl(i2c_dev, I2C_INT_STATUS);
 
-	spin_lock(&i2c_dev->xfer_lock);
 	if (status == 0) {
 		dev_warn(i2c_dev->dev, "irq status 0 %08x %08x %08x\n",
 			 i2c_readl(i2c_dev, I2C_PACKET_TRANSFER_STATUS),
 			 i2c_readl(i2c_dev, I2C_STATUS),
 			 i2c_readl(i2c_dev, I2C_CNFG));
 		i2c_dev->msg_err |= I2C_ERR_UNKNOWN_INTERRUPT;
-
-		if (!i2c_dev->irq_disabled) {
-			disable_irq_nosync(i2c_dev->irq);
-			i2c_dev->irq_disabled = true;
-		}
 		goto err;
 	}
 
@@ -925,7 +910,6 @@
 
 	complete(&i2c_dev->msg_complete);
 done:
-	spin_unlock(&i2c_dev->xfer_lock);
 	return IRQ_HANDLED;
 }
 
@@ -999,6 +983,30 @@
 	i2c_writel(i2c_dev, val, reg);
 }
 
+static unsigned long
+tegra_i2c_wait_completion_timeout(struct tegra_i2c_dev *i2c_dev,
+				  struct completion *complete,
+				  unsigned int timeout_ms)
+{
+	unsigned long ret;
+
+	enable_irq(i2c_dev->irq);
+	ret = wait_for_completion_timeout(complete,
+					  msecs_to_jiffies(timeout_ms));
+	disable_irq(i2c_dev->irq);
+
+	/*
+	 * There is a chance that completion may happen after IRQ
+	 * synchronization, which is done by disable_irq().
+	 */
+	if (ret == 0 && completion_done(complete)) {
+		dev_warn(i2c_dev->dev, "completion done after timeout\n");
+		ret = 1;
+	}
+
+	return ret;
+}
+
 static int tegra_i2c_issue_bus_clear(struct i2c_adapter *adap)
 {
 	struct tegra_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
@@ -1020,8 +1028,8 @@
 	i2c_writel(i2c_dev, reg, I2C_BUS_CLEAR_CNFG);
 	tegra_i2c_unmask_irq(i2c_dev, I2C_INT_BUS_CLR_DONE);
 
-	time_left = wait_for_completion_timeout(&i2c_dev->msg_complete,
-						msecs_to_jiffies(50));
+	time_left = tegra_i2c_wait_completion_timeout(
+			i2c_dev, &i2c_dev->msg_complete, 50);
 	if (time_left == 0) {
 		dev_err(i2c_dev->dev, "timed out for bus clear\n");
 		return -ETIMEDOUT;
@@ -1044,7 +1052,6 @@
 	u32 packet_header;
 	u32 int_mask;
 	unsigned long time_left;
-	unsigned long flags;
 	size_t xfer_size;
 	u32 *buffer = NULL;
 	int err = 0;
@@ -1075,7 +1082,6 @@
 	 */
 	xfer_time += DIV_ROUND_CLOSEST(((xfer_size * 9) + 2) * MSEC_PER_SEC,
 					i2c_dev->bus_clk_rate);
-	spin_lock_irqsave(&i2c_dev->xfer_lock, flags);
 
 	int_mask = I2C_INT_NO_ACK | I2C_INT_ARBITRATION_LOST;
 	tegra_i2c_unmask_irq(i2c_dev, int_mask);
@@ -1090,7 +1096,7 @@
 				dev_err(i2c_dev->dev,
 					"starting RX DMA failed, err %d\n",
 					err);
-				goto unlock;
+				return err;
 			}
 
 		} else {
@@ -1149,7 +1155,7 @@
 				dev_err(i2c_dev->dev,
 					"starting TX DMA failed, err %d\n",
 					err);
-				goto unlock;
+				return err;
 			}
 		} else {
 			tegra_i2c_fill_tx_fifo(i2c_dev);
@@ -1169,15 +1175,10 @@
 	dev_dbg(i2c_dev->dev, "unmasked irq: %02x\n",
 		i2c_readl(i2c_dev, I2C_INT_MASK));
 
-unlock:
-	spin_unlock_irqrestore(&i2c_dev->xfer_lock, flags);
-
 	if (dma) {
-		if (err)
-			return err;
+		time_left = tegra_i2c_wait_completion_timeout(
+				i2c_dev, &i2c_dev->dma_complete, xfer_time);
 
-		time_left = wait_for_completion_timeout(&i2c_dev->dma_complete,
-							msecs_to_jiffies(xfer_time));
 		if (time_left == 0) {
 			dev_err(i2c_dev->dev, "DMA transfer timeout\n");
 			dmaengine_terminate_sync(i2c_dev->msg_read ?
@@ -1202,13 +1203,13 @@
 					      i2c_dev->tx_dma_chan);
 	}
 
-	time_left = wait_for_completion_timeout(&i2c_dev->msg_complete,
-						msecs_to_jiffies(xfer_time));
+	time_left = tegra_i2c_wait_completion_timeout(
+			i2c_dev, &i2c_dev->msg_complete, xfer_time);
+
 	tegra_i2c_mask_irq(i2c_dev, int_mask);
 
 	if (time_left == 0) {
 		dev_err(i2c_dev->dev, "i2c transfer timed out\n");
-
 		tegra_i2c_init(i2c_dev, true);
 		return -ETIMEDOUT;
 	}
@@ -1568,7 +1569,6 @@
 				I2C_PACKET_HEADER_SIZE;
 	init_completion(&i2c_dev->msg_complete);
 	init_completion(&i2c_dev->dma_complete);
-	spin_lock_init(&i2c_dev->xfer_lock);
 
 	if (!i2c_dev->hw->has_single_clk_source) {
 		fast_clk = devm_clk_get(&pdev->dev, "fast-clk");
@@ -1608,14 +1608,18 @@
 	}
 
 	pm_runtime_enable(&pdev->dev);
-	if (!pm_runtime_enabled(&pdev->dev))
+	if (!pm_runtime_enabled(&pdev->dev)) {
 		ret = tegra_i2c_runtime_resume(&pdev->dev);
-	else
+		if (ret < 0) {
+			dev_err(&pdev->dev, "runtime resume failed\n");
+			goto unprepare_div_clk;
+		}
+	} else {
 		ret = pm_runtime_get_sync(i2c_dev->dev);
-
-	if (ret < 0) {
-		dev_err(&pdev->dev, "runtime resume failed\n");
-		goto unprepare_div_clk;
+		if (ret < 0) {
+			dev_err(&pdev->dev, "runtime resume failed\n");
+			goto disable_rpm;
+		}
 	}
 
 	if (i2c_dev->is_multimaster_mode) {
@@ -1623,7 +1627,7 @@
 		if (ret < 0) {
 			dev_err(i2c_dev->dev, "div_clk enable failed %d\n",
 				ret);
-			goto disable_rpm;
+			goto put_rpm;
 		}
 	}
 
@@ -1640,6 +1644,8 @@
 		goto release_dma;
 	}
 
+	irq_set_status_flags(i2c_dev->irq, IRQ_NOAUTOEN);
+
 	ret = devm_request_irq(&pdev->dev, i2c_dev->irq,
 			       tegra_i2c_isr, 0, dev_name(&pdev->dev), i2c_dev);
 	if (ret) {
@@ -1671,11 +1677,16 @@
 	if (i2c_dev->is_multimaster_mode)
 		clk_disable(i2c_dev->div_clk);
 
-disable_rpm:
-	pm_runtime_disable(&pdev->dev);
-	if (!pm_runtime_status_suspended(&pdev->dev))
+put_rpm:
+	if (pm_runtime_enabled(&pdev->dev))
+		pm_runtime_put_sync(&pdev->dev);
+	else
 		tegra_i2c_runtime_suspend(&pdev->dev);
 
+disable_rpm:
+	if (pm_runtime_enabled(&pdev->dev))
+		pm_runtime_disable(&pdev->dev);
+
 unprepare_div_clk:
 	clk_unprepare(i2c_dev->div_clk);
 
@@ -1710,10 +1721,14 @@
 static int __maybe_unused tegra_i2c_suspend(struct device *dev)
 {
 	struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev);
+	int err = 0;
 
 	i2c_mark_adapter_suspended(&i2c_dev->adapter);
 
-	return 0;
+	if (!pm_runtime_status_suspended(dev))
+		err = tegra_i2c_runtime_suspend(dev);
+
+	return err;
 }
 
 static int __maybe_unused tegra_i2c_resume(struct device *dev)
@@ -1721,6 +1736,10 @@
 	struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev);
 	int err;
 
+	/*
+	 * We need to ensure that clocks are enabled so that registers can be
+	 * restored in tegra_i2c_init().
+	 */
 	err = tegra_i2c_runtime_resume(dev);
 	if (err)
 		return err;
@@ -1729,9 +1748,16 @@
 	if (err)
 		return err;
 
-	err = tegra_i2c_runtime_suspend(dev);
-	if (err)
-		return err;
+	/*
+	 * In case we are runtime suspended, disable clocks again so that we
+	 * don't unbalance the clock reference counts during the next runtime
+	 * resume transition.
+	 */
+	if (pm_runtime_status_suspended(dev)) {
+		err = tegra_i2c_runtime_suspend(dev);
+		if (err)
+			return err;
+	}
 
 	i2c_mark_adapter_resumed(&i2c_dev->adapter);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/i2c-core-acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/i2c-core-acpi.c
@@ -264,6 +264,7 @@
 void i2c_acpi_register_devices(struct i2c_adapter *adap)
 {
 	acpi_status status;
+	acpi_handle handle;
 
 	if (!has_acpi_companion(&adap->dev))
 		return;
@@ -274,6 +275,15 @@
 				     adap, NULL);
 	if (ACPI_FAILURE(status))
 		dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
+
+	if (!adap->dev.parent)
+		return;
+
+	handle = ACPI_HANDLE(adap->dev.parent);
+	if (!handle)
+		return;
+
+	acpi_walk_dep_device_list(handle);
 }
 
 const struct acpi_device_id *
@@ -394,9 +404,17 @@
 static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev)
 {
 	struct device *dev;
+	struct i2c_client *client;
 
 	dev = bus_find_device_by_acpi_dev(&i2c_bus_type, adev);
-	return dev ? i2c_verify_client(dev) : NULL;
+	if (!dev)
+		return NULL;
+
+	client = i2c_verify_client(dev);
+	if (!client)
+		put_device(dev);
+
+	return client;
 }
 
 static int i2c_acpi_notify(struct notifier_block *nb, unsigned long value,
@@ -729,7 +747,6 @@
 		return -ENOMEM;
 	}
 
-	acpi_walk_dep_device_list(handle);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/i2c-core-base.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/i2c-core-base.c
@@ -186,10 +186,11 @@
 	 * If we can set SDA, we will always create a STOP to ensure additional
 	 * pulses will do no harm. This is achieved by letting SDA follow SCL
 	 * half a cycle later. Check the 'incomplete_write_byte' fault injector
-	 * for details.
+	 * for details. Note that we must honour tsu:sto, 4us, but lets use 5us
+	 * here for simplicity.
 	 */
 	bri->set_scl(adap, scl);
-	ndelay(RECOVERY_NDELAY / 2);
+	ndelay(RECOVERY_NDELAY);
 	if (bri->set_sda)
 		bri->set_sda(adap, scl);
 	ndelay(RECOVERY_NDELAY / 2);
@@ -211,7 +212,13 @@
 		scl = !scl;
 		bri->set_scl(adap, scl);
 		/* Creating STOP again, see above */
-		ndelay(RECOVERY_NDELAY / 2);
+		if (scl)  {
+			/* Honour minimum tsu:sto */
+			ndelay(RECOVERY_NDELAY);
+		} else {
+			/* Honour minimum tf and thd:dat */
+			ndelay(RECOVERY_NDELAY / 2);
+		}
 		if (bri->set_sda)
 			bri->set_sda(adap, scl);
 		ndelay(RECOVERY_NDELAY / 2);
@@ -331,8 +338,10 @@
 		} else if (ACPI_COMPANION(dev)) {
 			irq = i2c_acpi_get_irq(client);
 		}
-		if (irq == -EPROBE_DEFER)
-			return irq;
+		if (irq == -EPROBE_DEFER) {
+			status = irq;
+			goto put_sync_adapter;
+		}
 
 		if (irq < 0)
 			irq = 0;
@@ -345,16 +354,20 @@
 	 * or ACPI ID table is supplied for the probing device.
 	 */
 	if (!driver->id_table &&
-	    !i2c_acpi_match_device(dev->driver->acpi_match_table, client) &&
-	    !i2c_of_match_device(dev->driver->of_match_table, client))
-		return -ENODEV;
+	    !acpi_driver_match_device(dev, dev->driver) &&
+	    !i2c_of_match_device(dev->driver->of_match_table, client)) {
+		status = -ENODEV;
+		goto put_sync_adapter;
+	}
 
 	if (client->flags & I2C_CLIENT_WAKE) {
 		int wakeirq;
 
 		wakeirq = of_irq_get_byname(dev->of_node, "wakeup");
-		if (wakeirq == -EPROBE_DEFER)
-			return wakeirq;
+		if (wakeirq == -EPROBE_DEFER) {
+			status = wakeirq;
+			goto put_sync_adapter;
+		}
 
 		device_init_wakeup(&client->dev, true);
 
@@ -401,6 +414,10 @@
 err_clear_wakeup_irq:
 	dev_pm_clear_wake_irq(&client->dev);
 	device_init_wakeup(&client->dev, false);
+put_sync_adapter:
+	if (client->flags & I2C_CLIENT_HOST_NOTIFY)
+		pm_runtime_put_sync(&client->adapter->dev);
+
 	return status;
 }
 
@@ -1368,8 +1385,8 @@
 
 	/* create pre-declared device nodes */
 	of_i2c_register_devices(adap);
-	i2c_acpi_register_devices(adap);
 	i2c_acpi_install_space_handler(adap);
+	i2c_acpi_register_devices(adap);
 
 	if (adap->nr < __i2c_first_dynamic_bus_num)
 		i2c_scan_static_board_info(adap);
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/i2c-core-slave.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/i2c-core-slave.c
@@ -18,10 +18,8 @@
 {
 	int ret;
 
-	if (!client || !slave_cb) {
-		WARN(1, "insufficient data\n");
+	if (WARN(IS_ERR_OR_NULL(client) || !slave_cb, "insufficient data\n"))
 		return -EINVAL;
-	}
 
 	if (!(client->flags & I2C_CLIENT_SLAVE))
 		dev_warn(&client->dev, "%s: client slave flag not set. You might see address collisions\n",
@@ -60,6 +58,9 @@
 {
 	int ret;
 
+	if (IS_ERR_OR_NULL(client))
+		return -EINVAL;
+
 	if (!client->adapter->algo->unreg_slave) {
 		dev_err(&client->dev, "%s: not supported by adapter\n", __func__);
 		return -EOPNOTSUPP;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/i2c-core-smbus.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/i2c-core-smbus.c
@@ -495,6 +495,13 @@
 			break;
 		case I2C_SMBUS_BLOCK_DATA:
 		case I2C_SMBUS_BLOCK_PROC_CALL:
+			if (msg[1].buf[0] > I2C_SMBUS_BLOCK_MAX) {
+				dev_err(&adapter->dev,
+					"Invalid block size returned: %d\n",
+					msg[1].buf[0]);
+				status = -EPROTO;
+				goto cleanup;
+			}
 			for (i = 0; i < msg[1].buf[0] + 1; i++)
 				data->block[i] = msg[1].buf[i];
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/i2c-dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/i2c-dev.c
@@ -40,7 +40,7 @@
 struct i2c_dev {
 	struct list_head list;
 	struct i2c_adapter *adap;
-	struct device *dev;
+	struct device dev;
 	struct cdev cdev;
 };
 
@@ -84,12 +84,14 @@
 	return i2c_dev;
 }
 
-static void put_i2c_dev(struct i2c_dev *i2c_dev)
+static void put_i2c_dev(struct i2c_dev *i2c_dev, bool del_cdev)
 {
 	spin_lock(&i2c_dev_list_lock);
 	list_del(&i2c_dev->list);
 	spin_unlock(&i2c_dev_list_lock);
-	kfree(i2c_dev);
+	if (del_cdev)
+		cdev_device_del(&i2c_dev->cdev, &i2c_dev->dev);
+	put_device(&i2c_dev->dev);
 }
 
 static ssize_t name_show(struct device *dev,
@@ -628,6 +630,14 @@
 
 static struct class *i2c_dev_class;
 
+static void i2cdev_dev_release(struct device *dev)
+{
+	struct i2c_dev *i2c_dev;
+
+	i2c_dev = container_of(dev, struct i2c_dev, dev);
+	kfree(i2c_dev);
+}
+
 static int i2cdev_attach_adapter(struct device *dev, void *dummy)
 {
 	struct i2c_adapter *adap;
@@ -644,27 +654,23 @@
 
 	cdev_init(&i2c_dev->cdev, &i2cdev_fops);
 	i2c_dev->cdev.owner = THIS_MODULE;
-	res = cdev_add(&i2c_dev->cdev, MKDEV(I2C_MAJOR, adap->nr), 1);
-	if (res)
-		goto error_cdev;
-
-	/* register this i2c device with the driver core */
-	i2c_dev->dev = device_create(i2c_dev_class, &adap->dev,
-				     MKDEV(I2C_MAJOR, adap->nr), NULL,
-				     "i2c-%d", adap->nr);
-	if (IS_ERR(i2c_dev->dev)) {
-		res = PTR_ERR(i2c_dev->dev);
-		goto error;
+
+	device_initialize(&i2c_dev->dev);
+	i2c_dev->dev.devt = MKDEV(I2C_MAJOR, adap->nr);
+	i2c_dev->dev.class = i2c_dev_class;
+	i2c_dev->dev.parent = &adap->dev;
+	i2c_dev->dev.release = i2cdev_dev_release;
+	dev_set_name(&i2c_dev->dev, "i2c-%d", adap->nr);
+
+	res = cdev_device_add(&i2c_dev->cdev, &i2c_dev->dev);
+	if (res) {
+		put_i2c_dev(i2c_dev, false);
+		return res;
 	}
 
 	pr_debug("i2c-dev: adapter [%s] registered as minor %d\n",
 		 adap->name, adap->nr);
 	return 0;
-error:
-	cdev_del(&i2c_dev->cdev);
-error_cdev:
-	put_i2c_dev(i2c_dev);
-	return res;
 }
 
 static int i2cdev_detach_adapter(struct device *dev, void *dummy)
@@ -680,9 +686,7 @@
 	if (!i2c_dev) /* attach_adapter must have failed */
 		return 0;
 
-	cdev_del(&i2c_dev->cdev);
-	put_i2c_dev(i2c_dev);
-	device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr));
+	put_i2c_dev(i2c_dev, true);
 
 	pr_debug("i2c-dev: adapter [%s] unregistered\n", adap->name);
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/i2c/muxes/i2c-demux-pinctrl.c
+++ linux-gkeop-5.4-5.4.0/drivers/i2c/muxes/i2c-demux-pinctrl.c
@@ -272,6 +272,7 @@
 err_rollback_available:
 	device_remove_file(&pdev->dev, &dev_attr_available_masters);
 err_rollback:
+	i2c_demux_deactivate_master(priv);
 	for (j = 0; j < i; j++) {
 		of_node_put(priv->chan[j].parent_np);
 		of_changeset_destroy(&priv->chan[j].chgset);
--- linux-gkeop-5.4-5.4.0.orig/drivers/i3c/master.c
+++ linux-gkeop-5.4-5.4.0/drivers/i3c/master.c
@@ -1760,6 +1760,21 @@
 	i3c_master_detach_free_devs(master);
 }
 
+static void i3c_master_attach_boardinfo(struct i3c_dev_desc *i3cdev)
+{
+	struct i3c_master_controller *master = i3cdev->common.master;
+	struct i3c_dev_boardinfo *i3cboardinfo;
+
+	list_for_each_entry(i3cboardinfo, &master->boardinfo.i3c, node) {
+		if (i3cdev->info.pid != i3cboardinfo->pid)
+			continue;
+
+		i3cdev->boardinfo = i3cboardinfo;
+		i3cdev->info.static_addr = i3cboardinfo->static_addr;
+		return;
+	}
+}
+
 static struct i3c_dev_desc *
 i3c_master_search_i3c_dev_duplicate(struct i3c_dev_desc *refdev)
 {
@@ -1815,10 +1830,10 @@
 	if (ret)
 		goto err_detach_dev;
 
+	i3c_master_attach_boardinfo(newdev);
+
 	olddev = i3c_master_search_i3c_dev_duplicate(newdev);
 	if (olddev) {
-		newdev->boardinfo = olddev->boardinfo;
-		newdev->info.static_addr = olddev->info.static_addr;
 		newdev->dev = olddev->dev;
 		if (newdev->dev)
 			newdev->dev->desc = newdev;
@@ -2477,7 +2492,7 @@
 
 	ret = i3c_master_bus_init(master);
 	if (ret)
-		goto err_put_dev;
+		goto err_destroy_wq;
 
 	ret = device_add(&master->dev);
 	if (ret)
@@ -2508,6 +2523,9 @@
 err_cleanup_bus:
 	i3c_master_bus_cleanup(master);
 
+err_destroy_wq:
+	destroy_workqueue(master->wq);
+
 err_put_dev:
 	put_device(&master->dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/i3c/master/i3c-master-cdns.c
+++ linux-gkeop-5.4-5.4.0/drivers/i3c/master/i3c-master-cdns.c
@@ -1593,8 +1593,10 @@
 	master->ibi.slots = devm_kcalloc(&pdev->dev, master->ibi.num_slots,
 					 sizeof(*master->ibi.slots),
 					 GFP_KERNEL);
-	if (!master->ibi.slots)
+	if (!master->ibi.slots) {
+		ret = -ENOMEM;
 		goto err_disable_sysclk;
+	}
 
 	writel(IBIR_THR(1), master->regs + CMD_IBI_THR_CTRL);
 	writel(MST_INT_IBIR_THR, master->regs + MST_IER);
--- linux-gkeop-5.4-5.4.0.orig/drivers/ide/cmd64x.c
+++ linux-gkeop-5.4-5.4.0/drivers/ide/cmd64x.c
@@ -66,6 +66,9 @@
 	struct ide_timing t;
 	u8 arttim = 0;
 
+	if (drive->dn >= ARRAY_SIZE(drwtim_regs))
+		return;
+
 	ide_timing_compute(drive, mode, &t, T, 0);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/ide/ide-atapi.c
+++ linux-gkeop-5.4-5.4.0/drivers/ide/ide-atapi.c
@@ -223,7 +223,6 @@
 	sense_rq->rq_disk = rq->rq_disk;
 	sense_rq->cmd_flags = REQ_OP_DRV_IN;
 	ide_req(sense_rq)->type = ATA_PRIV_SENSE;
-	sense_rq->rq_flags |= RQF_PREEMPT;
 
 	req->cmd[0] = GPCMD_REQUEST_SENSE;
 	req->cmd[4] = cmd_len;
--- linux-gkeop-5.4-5.4.0.orig/drivers/ide/ide-io.c
+++ linux-gkeop-5.4-5.4.0/drivers/ide/ide-io.c
@@ -512,11 +512,6 @@
 		 * above to return us whatever is in the queue. Since we call
 		 * ide_do_request() ourselves, we end up taking requests while
 		 * the queue is blocked...
-		 * 
-		 * We let requests forced at head of queue with ide-preempt
-		 * though. I hope that doesn't happen too much, hopefully not
-		 * unless the subdriver triggers such a thing in its own PM
-		 * state machine.
 		 */
 		if ((drive->dev_flags & IDE_DFLAG_BLOCKED) &&
 		    ata_pm_request(rq) == 0 &&
--- linux-gkeop-5.4-5.4.0.orig/drivers/ide/serverworks.c
+++ linux-gkeop-5.4-5.4.0/drivers/ide/serverworks.c
@@ -115,6 +115,9 @@
 	struct pci_dev *dev = to_pci_dev(hwif->dev);
 	const u8 pio = drive->pio_mode - XFER_PIO_0;
 
+	if (drive->dn >= ARRAY_SIZE(drive_pci))
+		return;
+
 	pci_write_config_byte(dev, drive_pci[drive->dn], pio_modes[pio]);
 
 	if (svwks_csb_check(dev)) {
@@ -141,6 +144,9 @@
 
 	u8 ultra_enable	 = 0, ultra_timing = 0, dma_timing = 0;
 
+	if (drive->dn >= ARRAY_SIZE(drive_pci2))
+		return;
+
 	pci_read_config_byte(dev, (0x56|hwif->channel), &ultra_timing);
 	pci_read_config_byte(dev, 0x54, &ultra_enable);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/adxl372.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/adxl372.c
@@ -237,6 +237,7 @@
 		.realbits = 12,						\
 		.storagebits = 16,					\
 		.shift = 4,						\
+		.endianness = IIO_BE,					\
 	},								\
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/bmc150-accel-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/bmc150-accel-core.c
@@ -189,6 +189,14 @@
 	struct mutex mutex;
 	u8 fifo_mode, watermark;
 	s16 buffer[8];
+	/*
+	 * Ensure there is sufficient space and correct alignment for
+	 * the timestamp if enabled
+	 */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 	u8 bw_bits;
 	u32 slope_dur;
 	u32 slope_thres;
@@ -922,15 +930,16 @@
 	 * now.
 	 */
 	for (i = 0; i < count; i++) {
-		u16 sample[8];
 		int j, bit;
 
 		j = 0;
 		for_each_set_bit(bit, indio_dev->active_scan_mask,
 				 indio_dev->masklength)
-			memcpy(&sample[j++], &buffer[i * 3 + bit], 2);
+			memcpy(&data->scan.channels[j++], &buffer[i * 3 + bit],
+			       sizeof(data->scan.channels[0]));
 
-		iio_push_to_buffers_with_timestamp(indio_dev, sample, tstamp);
+		iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
+						   tstamp);
 
 		tstamp += sample_period;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/kxcjk-1013.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/kxcjk-1013.c
@@ -126,6 +126,12 @@
 	KX_MAX_CHIPS /* this must be last */
 };
 
+enum kx_acpi_type {
+	ACPI_GENERIC,
+	ACPI_SMO8500,
+	ACPI_KIOX010A,
+};
+
 struct kxcjk1013_data {
 	struct i2c_client *client;
 	struct iio_trigger *dready_trig;
@@ -142,7 +148,7 @@
 	bool motion_trigger_on;
 	int64_t timestamp;
 	enum kx_chipset chipset;
-	bool is_smo8500_device;
+	enum kx_acpi_type acpi_type;
 };
 
 enum kxcjk1013_axis {
@@ -269,6 +275,32 @@
 			      {19163, 1, 0},
 			      {38326, 0, 1} };
 
+#ifdef CONFIG_ACPI
+enum kiox010a_fn_index {
+	KIOX010A_SET_LAPTOP_MODE = 1,
+	KIOX010A_SET_TABLET_MODE = 2,
+};
+
+static int kiox010a_dsm(struct device *dev, int fn_index)
+{
+	acpi_handle handle = ACPI_HANDLE(dev);
+	guid_t kiox010a_dsm_guid;
+	union acpi_object *obj;
+
+	if (!handle)
+		return -ENODEV;
+
+	guid_parse("1f339696-d475-4e26-8cad-2e9f8e6d7a91", &kiox010a_dsm_guid);
+
+	obj = acpi_evaluate_dsm(handle, &kiox010a_dsm_guid, 1, fn_index, NULL);
+	if (!obj)
+		return -EIO;
+
+	ACPI_FREE(obj);
+	return 0;
+}
+#endif
+
 static int kxcjk1013_set_mode(struct kxcjk1013_data *data,
 			      enum kxcjk1013_mode mode)
 {
@@ -346,6 +378,13 @@
 {
 	int ret;
 
+#ifdef CONFIG_ACPI
+	if (data->acpi_type == ACPI_KIOX010A) {
+		/* Make sure the kbd and touchpad on 2-in-1s using 2 KXCJ91008-s work */
+		kiox010a_dsm(&data->client->dev, KIOX010A_SET_LAPTOP_MODE);
+	}
+#endif
+
 	ret = i2c_smbus_read_byte_data(data->client, KXCJK1013_REG_WHO_AM_I);
 	if (ret < 0) {
 		dev_err(&data->client->dev, "Error reading who_am_i\n");
@@ -1233,7 +1272,7 @@
 
 static const char *kxcjk1013_match_acpi_device(struct device *dev,
 					       enum kx_chipset *chipset,
-					       bool *is_smo8500_device)
+					       enum kx_acpi_type *acpi_type)
 {
 	const struct acpi_device_id *id;
 
@@ -1242,7 +1281,9 @@
 		return NULL;
 
 	if (strcmp(id->id, "SMO8500") == 0)
-		*is_smo8500_device = true;
+		*acpi_type = ACPI_SMO8500;
+	else if (strcmp(id->id, "KIOX010A") == 0)
+		*acpi_type = ACPI_KIOX010A;
 
 	*chipset = (enum kx_chipset)id->driver_data;
 
@@ -1278,7 +1319,7 @@
 	} else if (ACPI_HANDLE(&client->dev)) {
 		name = kxcjk1013_match_acpi_device(&client->dev,
 						   &data->chipset,
-						   &data->is_smo8500_device);
+						   &data->acpi_type);
 	} else
 		return -ENODEV;
 
@@ -1296,7 +1337,7 @@
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->info = &kxcjk1013_info;
 
-	if (client->irq > 0 && !data->is_smo8500_device) {
+	if (client->irq > 0 && data->acpi_type != ACPI_SMO8500) {
 		ret = devm_request_threaded_irq(&client->dev, client->irq,
 						kxcjk1013_data_rdy_trig_poll,
 						kxcjk1013_event_handler,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/kxsd9.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/kxsd9.c
@@ -209,14 +209,20 @@
 	const struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct kxsd9_state *st = iio_priv(indio_dev);
+	/*
+	 * Ensure correct positioning and alignment of timestamp.
+	 * No need to zero initialize as all elements written.
+	 */
+	struct {
+		__be16 chan[4];
+		s64 ts __aligned(8);
+	} hw_values;
 	int ret;
-	/* 4 * 16bit values AND timestamp */
-	__be16 hw_values[8];
 
 	ret = regmap_bulk_read(st->map,
 			       KXSD9_REG_X,
-			       &hw_values,
-			       8);
+			       hw_values.chan,
+			       sizeof(hw_values.chan));
 	if (ret) {
 		dev_err(st->dev,
 			"error reading data\n");
@@ -224,7 +230,7 @@
 	}
 
 	iio_push_to_buffers_with_timestamp(indio_dev,
-					   hw_values,
+					   &hw_values,
 					   iio_get_time_ns(indio_dev));
 	iio_trigger_notify_done(indio_dev->trig);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/mma7455_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/mma7455_core.c
@@ -52,6 +52,14 @@
 
 struct mma7455_data {
 	struct regmap *regmap;
+	/*
+	 * Used to reorganize data.  Will ensure correct alignment of
+	 * the timestamp if present
+	 */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static int mma7455_drdy(struct mma7455_data *mma7455)
@@ -82,19 +90,19 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mma7455_data *mma7455 = iio_priv(indio_dev);
-	u8 buf[16]; /* 3 x 16-bit channels + padding + ts */
 	int ret;
 
 	ret = mma7455_drdy(mma7455);
 	if (ret)
 		goto done;
 
-	ret = regmap_bulk_read(mma7455->regmap, MMA7455_REG_XOUTL, buf,
-			       sizeof(__le16) * 3);
+	ret = regmap_bulk_read(mma7455->regmap, MMA7455_REG_XOUTL,
+			       mma7455->scan.channels,
+			       sizeof(mma7455->scan.channels));
 	if (ret)
 		goto done;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &mma7455->scan,
 					   iio_get_time_ns(indio_dev));
 
 done:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/mma8452.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/mma8452.c
@@ -110,6 +110,12 @@
 	int sleep_val;
 	struct regulator *vdd_reg;
 	struct regulator *vddio_reg;
+
+	/* Ensure correct alignment of time stamp when present */
+	struct {
+		__be16 channels[3];
+		s64 ts __aligned(8);
+	} buffer;
 };
 
  /**
@@ -1091,14 +1097,13 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mma8452_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 3 16-bit channels + padding + ts */
 	int ret;
 
-	ret = mma8452_read(data, (__be16 *)buffer);
+	ret = mma8452_read(data, data->buffer.channels);
 	if (ret < 0)
 		goto done;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
 					   iio_get_time_ns(indio_dev));
 
 done:
@@ -1685,10 +1690,13 @@
 
 	ret = mma8452_set_freefall_mode(data, false);
 	if (ret < 0)
-		goto buffer_cleanup;
+		goto unregister_device;
 
 	return 0;
 
+unregister_device:
+	iio_device_unregister(indio_dev);
+
 buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/sca3000.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/sca3000.c
@@ -980,7 +980,7 @@
 	st->tx[0] = SCA3000_READ_REG(reg_address_high);
 	ret = spi_sync_transfer(st->us, xfer, ARRAY_SIZE(xfer));
 	if (ret) {
-		dev_err(get_device(&st->us->dev), "problem reading register");
+		dev_err(&st->us->dev, "problem reading register\n");
 		return ret;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/st_accel_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/st_accel_core.c
@@ -993,6 +993,7 @@
 #define ST_ACCEL_TRIGGER_OPS NULL
 #endif
 
+#ifdef CONFIG_ACPI
 static const struct iio_mount_matrix *
 get_mount_matrix(const struct iio_dev *indio_dev,
 		 const struct iio_chan_spec *chan)
@@ -1013,7 +1014,6 @@
 static int apply_acpi_orientation(struct iio_dev *indio_dev,
 				  struct iio_chan_spec *channels)
 {
-#ifdef CONFIG_ACPI
 	struct st_sensor_data *adata = iio_priv(indio_dev);
 	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
 	struct acpi_device *adev;
@@ -1141,10 +1141,14 @@
 out:
 	kfree(buffer.pointer);
 	return ret;
+}
 #else /* !CONFIG_ACPI */
+static int apply_acpi_orientation(struct iio_dev *indio_dev,
+				  struct iio_chan_spec *channels)
+{
 	return 0;
-#endif
 }
+#endif
 
 /*
  * st_accel_get_settings() - get sensor settings from device name
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/accel/st_accel_i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/accel/st_accel_i2c.c
@@ -114,7 +114,7 @@
 
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id st_accel_acpi_match[] = {
-	{"SMO8840", (kernel_ulong_t)LNG2DM_ACCEL_DEV_NAME},
+	{"SMO8840", (kernel_ulong_t)LIS2DH12_ACCEL_DEV_NAME},
 	{"SMO8A90", (kernel_ulong_t)LNG2DM_ACCEL_DEV_NAME},
 	{ },
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ad7124.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ad7124.c
@@ -39,6 +39,8 @@
 #define AD7124_STATUS_POR_FLAG_MSK	BIT(4)
 
 /* AD7124_ADC_CONTROL */
+#define AD7124_ADC_CTRL_REF_EN_MSK	BIT(8)
+#define AD7124_ADC_CTRL_REF_EN(x)	FIELD_PREP(AD7124_ADC_CTRL_REF_EN_MSK, x)
 #define AD7124_ADC_CTRL_PWR_MSK	GENMASK(7, 6)
 #define AD7124_ADC_CTRL_PWR(x)		FIELD_PREP(AD7124_ADC_CTRL_PWR_MSK, x)
 #define AD7124_ADC_CTRL_MODE_MSK	GENMASK(5, 2)
@@ -424,7 +426,10 @@
 		break;
 	case AD7124_INT_REF:
 		st->channel_config[channel_number].vref_mv = 2500;
-		break;
+		st->adc_control &= ~AD7124_ADC_CTRL_REF_EN_MSK;
+		st->adc_control |= AD7124_ADC_CTRL_REF_EN(1);
+		return ad_sd_write_reg(&st->sd, AD7124_ADC_CONTROL,
+				      2, st->adc_control);
 	default:
 		dev_err(&st->sd.spi->dev, "Invalid reference %d\n", refsel);
 		return -EINVAL;
@@ -489,13 +494,11 @@
 		st->channel_config[channel].buf_negative =
 			of_property_read_bool(child, "adi,buffered-negative");
 
-		*chan = ad7124_channel_template;
-		chan->address = channel;
-		chan->scan_index = channel;
-		chan->channel = ain[0];
-		chan->channel2 = ain[1];
-
-		chan++;
+		chan[channel] = ad7124_channel_template;
+		chan[channel].address = channel;
+		chan[channel].scan_index = channel;
+		chan[channel].channel = ain[0];
+		chan[channel].channel2 = ain[1];
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ad7606.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ad7606.c
@@ -85,7 +85,7 @@
 
 static int ad7606_read_samples(struct ad7606_state *st)
 {
-	unsigned int num = st->chip_info->num_channels;
+	unsigned int num = st->chip_info->num_channels - 1;
 	u16 *data = st->data;
 	int ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ad7780.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ad7780.c
@@ -309,7 +309,7 @@
 
 	ret = ad7780_init_gpios(&spi->dev, st);
 	if (ret)
-		goto error_cleanup_buffer_and_trigger;
+		return ret;
 
 	st->reg = devm_regulator_get(&spi->dev, "avdd");
 	if (IS_ERR(st->reg))
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ad7793.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ad7793.c
@@ -541,7 +541,7 @@
 	.read_raw = &ad7793_read_raw,
 	.write_raw = &ad7793_write_raw,
 	.write_raw_get_fmt = &ad7793_write_raw_get_fmt,
-	.attrs = &ad7793_attribute_group,
+	.attrs = &ad7797_attribute_group,
 	.validate_trigger = ad_sd_validate_trigger,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ad7949.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ad7949.c
@@ -57,29 +57,11 @@
 	u32 buffer ____cacheline_aligned;
 };
 
-static bool ad7949_spi_cfg_is_read_back(struct ad7949_adc_chip *ad7949_adc)
-{
-	if (!(ad7949_adc->cfg & AD7949_CFG_READ_BACK))
-		return true;
-
-	return false;
-}
-
-static int ad7949_spi_bits_per_word(struct ad7949_adc_chip *ad7949_adc)
-{
-	int ret = ad7949_adc->resolution;
-
-	if (ad7949_spi_cfg_is_read_back(ad7949_adc))
-		ret += AD7949_CFG_REG_SIZE_BITS;
-
-	return ret;
-}
-
 static int ad7949_spi_write_cfg(struct ad7949_adc_chip *ad7949_adc, u16 val,
 				u16 mask)
 {
 	int ret;
-	int bits_per_word = ad7949_spi_bits_per_word(ad7949_adc);
+	int bits_per_word = ad7949_adc->resolution;
 	int shift = bits_per_word - AD7949_CFG_REG_SIZE_BITS;
 	struct spi_message msg;
 	struct spi_transfer tx[] = {
@@ -107,7 +89,8 @@
 				   unsigned int channel)
 {
 	int ret;
-	int bits_per_word = ad7949_spi_bits_per_word(ad7949_adc);
+	int i;
+	int bits_per_word = ad7949_adc->resolution;
 	int mask = GENMASK(ad7949_adc->resolution, 0);
 	struct spi_message msg;
 	struct spi_transfer tx[] = {
@@ -118,12 +101,23 @@
 		},
 	};
 
-	ret = ad7949_spi_write_cfg(ad7949_adc,
-				   channel << AD7949_OFFSET_CHANNEL_SEL,
-				   AD7949_MASK_CHANNEL_SEL);
-	if (ret)
-		return ret;
+	/*
+	 * 1: write CFG for sample N and read old data (sample N-2)
+	 * 2: if CFG was not changed since sample N-1 then we'll get good data
+	 *    at the next xfer, so we bail out now, otherwise we write something
+	 *    and we read garbage (sample N-1 configuration).
+	 */
+	for (i = 0; i < 2; i++) {
+		ret = ad7949_spi_write_cfg(ad7949_adc,
+					   channel << AD7949_OFFSET_CHANNEL_SEL,
+					   AD7949_MASK_CHANNEL_SEL);
+		if (ret)
+			return ret;
+		if (channel == ad7949_adc->current_channel)
+			break;
+	}
 
+	/* 3: write something and read actual data */
 	ad7949_adc->buffer = 0;
 	spi_message_init_with_transfers(&msg, tx, 1);
 	ret = spi_sync(ad7949_adc->spi, &msg);
@@ -138,10 +132,7 @@
 
 	ad7949_adc->current_channel = channel;
 
-	if (ad7949_spi_cfg_is_read_back(ad7949_adc))
-		*val = (ad7949_adc->buffer >> AD7949_CFG_REG_SIZE_BITS) & mask;
-	else
-		*val = ad7949_adc->buffer & mask;
+	*val = ad7949_adc->buffer & mask;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/at91-sama5d2_adc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/at91-sama5d2_adc.c
@@ -723,6 +723,7 @@
 
 	for_each_set_bit(bit, indio->active_scan_mask, indio->num_channels) {
 		struct iio_chan_spec const *chan = at91_adc_chan_get(indio, bit);
+		u32 cor;
 
 		if (!chan)
 			continue;
@@ -732,6 +733,20 @@
 			continue;
 
 		if (state) {
+			cor = at91_adc_readl(st, AT91_SAMA5D2_COR);
+
+			if (chan->differential)
+				cor |= (BIT(chan->channel) |
+					BIT(chan->channel2)) <<
+					AT91_SAMA5D2_COR_DIFF_OFFSET;
+			else
+				cor &= ~(BIT(chan->channel) <<
+				       AT91_SAMA5D2_COR_DIFF_OFFSET);
+
+			at91_adc_writel(st, AT91_SAMA5D2_COR, cor);
+		}
+
+		if (state) {
 			at91_adc_writel(st, AT91_SAMA5D2_CHER,
 					BIT(chan->channel));
 			/* enable irq only if not using DMA */
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/dln2-adc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/dln2-adc.c
@@ -524,6 +524,10 @@
 	u16 conflict;
 	unsigned int trigger_chan;
 
+	ret = iio_triggered_buffer_postenable(indio_dev);
+	if (ret)
+		return ret;
+
 	mutex_lock(&dln2->mutex);
 
 	/* Enable ADC */
@@ -537,6 +541,7 @@
 				(int)conflict);
 			ret = -EBUSY;
 		}
+		iio_triggered_buffer_predisable(indio_dev);
 		return ret;
 	}
 
@@ -550,6 +555,7 @@
 		mutex_unlock(&dln2->mutex);
 		if (ret < 0) {
 			dev_dbg(&dln2->pdev->dev, "Problem in %s\n", __func__);
+			iio_triggered_buffer_predisable(indio_dev);
 			return ret;
 		}
 	} else {
@@ -557,12 +563,12 @@
 		mutex_unlock(&dln2->mutex);
 	}
 
-	return iio_triggered_buffer_postenable(indio_dev);
+	return 0;
 }
 
 static int dln2_adc_triggered_buffer_predisable(struct iio_dev *indio_dev)
 {
-	int ret;
+	int ret, ret2;
 	struct dln2_adc *dln2 = iio_priv(indio_dev);
 
 	mutex_lock(&dln2->mutex);
@@ -577,12 +583,14 @@
 	ret = dln2_adc_set_port_enabled(dln2, false, NULL);
 
 	mutex_unlock(&dln2->mutex);
-	if (ret < 0) {
+	if (ret < 0)
 		dev_dbg(&dln2->pdev->dev, "Problem in %s\n", __func__);
-		return ret;
-	}
 
-	return iio_triggered_buffer_predisable(indio_dev);
+	ret2 = iio_triggered_buffer_predisable(indio_dev);
+	if (ret == 0)
+		ret = ret2;
+
+	return ret;
 }
 
 static const struct iio_buffer_setup_ops dln2_adc_buffer_setup_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ina2xx-adc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ina2xx-adc.c
@@ -146,6 +146,11 @@
 	int range_vbus; /* Bus voltage maximum in V */
 	int pga_gain_vshunt; /* Shunt voltage PGA gain */
 	bool allow_async_readout;
+	/* data buffer needs space for channel data and timestamp */
+	struct {
+		u16 chan[4];
+		u64 ts __aligned(8);
+	} scan;
 };
 
 static const struct ina2xx_config ina2xx_config[] = {
@@ -738,8 +743,6 @@
 static int ina2xx_work_buffer(struct iio_dev *indio_dev)
 {
 	struct ina2xx_chip_info *chip = iio_priv(indio_dev);
-	/* data buffer needs space for channel data and timestap */
-	unsigned short data[4 + sizeof(s64)/sizeof(short)];
 	int bit, ret, i = 0;
 	s64 time;
 
@@ -758,10 +761,10 @@
 		if (ret < 0)
 			return ret;
 
-		data[i++] = val;
+		chip->scan.chan[i++] = val;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data, time);
+	iio_push_to_buffers_with_timestamp(indio_dev, &chip->scan, time);
 
 	return 0;
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/max1027.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/max1027.c
@@ -458,6 +458,14 @@
 		return ret;
 	}
 
+	/* Internal reset */
+	st->reg = MAX1027_RST_REG;
+	ret = spi_write(st->spi, &st->reg, 1);
+	if (ret < 0) {
+		dev_err(&indio_dev->dev, "Failed to reset the ADC\n");
+		return ret;
+	}
+
 	/* Disable averaging */
 	st->reg = MAX1027_AVG_REG;
 	ret = spi_write(st->spi, &st->reg, 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/max1118.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/max1118.c
@@ -35,6 +35,11 @@
 	struct spi_device *spi;
 	struct mutex lock;
 	struct regulator *reg;
+	/* Ensure natural alignment of buffer elements */
+	struct {
+		u8 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 
 	u8 data ____cacheline_aligned;
 };
@@ -159,7 +164,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct max1118 *adc = iio_priv(indio_dev);
-	u8 data[16] = { }; /* 2x 8-bit ADC data + padding + 8 bytes timestamp */
 	int scan_index;
 	int i = 0;
 
@@ -177,10 +181,10 @@
 			goto out;
 		}
 
-		data[i] = ret;
+		adc->scan.channels[i] = ret;
 		i++;
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &adc->scan,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/max9611.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/max9611.c
@@ -89,6 +89,12 @@
 #define MAX9611_TEMP_SCALE_NUM		1000000
 #define MAX9611_TEMP_SCALE_DIV		2083
 
+/*
+ * Conversion time is 2 ms (typically) at Ta=25 degreeC
+ * No maximum value is known, so play it safe.
+ */
+#define MAX9611_CONV_TIME_US_RANGE	3000, 3300
+
 struct max9611_dev {
 	struct device *dev;
 	struct i2c_client *i2c_client;
@@ -236,11 +242,9 @@
 		return ret;
 	}
 
-	/*
-	 * need a delay here to make register configuration
-	 * stabilize. 1 msec at least, from empirical testing.
-	 */
-	usleep_range(1000, 2000);
+	/* need a delay here to make register configuration stabilize. */
+
+	usleep_range(MAX9611_CONV_TIME_US_RANGE);
 
 	ret = i2c_smbus_read_word_swapped(max9611->i2c_client, reg_addr);
 	if (ret < 0) {
@@ -507,7 +511,7 @@
 			MAX9611_REG_CTRL2, 0);
 		return ret;
 	}
-	usleep_range(1000, 2000);
+	usleep_range(MAX9611_CONV_TIME_US_RANGE);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/mcp3422.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/mcp3422.c
@@ -95,16 +95,12 @@
 {
 	int ret;
 
-	mutex_lock(&adc->lock);
-
 	ret = i2c_master_send(adc->i2c, &newconfig, 1);
 	if (ret > 0) {
 		adc->config = newconfig;
 		ret = 0;
 	}
 
-	mutex_unlock(&adc->lock);
-
 	return ret;
 }
 
@@ -137,6 +133,8 @@
 	u8 config;
 	u8 req_channel = channel->channel;
 
+	mutex_lock(&adc->lock);
+
 	if (req_channel != MCP3422_CHANNEL(adc->config)) {
 		config = adc->config;
 		config &= ~MCP3422_CHANNEL_MASK;
@@ -144,12 +142,18 @@
 		config &= ~MCP3422_PGA_MASK;
 		config |= MCP3422_PGA_VALUE(adc->pga[req_channel]);
 		ret = mcp3422_update_config(adc, config);
-		if (ret < 0)
+		if (ret < 0) {
+			mutex_unlock(&adc->lock);
 			return ret;
+		}
 		msleep(mcp3422_read_times[MCP3422_SAMPLE_RATE(adc->config)]);
 	}
 
-	return mcp3422_read(adc, value, &config);
+	ret = mcp3422_read(adc, value, &config);
+
+	mutex_unlock(&adc->lock);
+
+	return ret;
 }
 
 static int mcp3422_read_raw(struct iio_dev *iio,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/mt6577_auxadc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/mt6577_auxadc.c
@@ -9,9 +9,9 @@
 #include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
+#include <linux/mod_devicetable.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/iopoll.h>
 #include <linux/io.h>
 #include <linux/iio/iio.h>
@@ -279,6 +279,8 @@
 		goto err_disable_clk;
 	}
 
+	adc_dev->dev_comp = device_get_match_data(&pdev->dev);
+
 	mutex_init(&adc_dev->lock);
 
 	mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/qcom-spmi-adc5.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/qcom-spmi-adc5.c
@@ -786,7 +786,7 @@
 
 static struct platform_driver adc5_driver = {
 	.driver = {
-		.name = "qcom-spmi-adc5.c",
+		.name = "qcom-spmi-adc5",
 		.of_match_table = adc5_match_table,
 	},
 	.probe = adc5_probe,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/rcar-gyroadc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/rcar-gyroadc.c
@@ -357,7 +357,7 @@
 			num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3);
 			break;
 		default:
-			return -EINVAL;
+			goto err_e_inval;
 		}
 
 		/*
@@ -374,7 +374,7 @@
 				dev_err(dev,
 					"Failed to get child reg property of ADC \"%pOFn\".\n",
 					child);
-				return ret;
+				goto err_of_node_put;
 			}
 
 			/* Channel number is too high. */
@@ -382,7 +382,7 @@
 				dev_err(dev,
 					"Only %i channels supported with %pOFn, but reg = <%i>.\n",
 					num_channels, child, reg);
-				return -EINVAL;
+				goto err_e_inval;
 			}
 		}
 
@@ -391,7 +391,7 @@
 			dev_err(dev,
 				"Channel %i uses different ADC mode than the rest.\n",
 				reg);
-			return -EINVAL;
+			goto err_e_inval;
 		}
 
 		/* Channel is valid, grab the regulator. */
@@ -401,7 +401,8 @@
 		if (IS_ERR(vref)) {
 			dev_dbg(dev, "Channel %i 'vref' supply not connected.\n",
 				reg);
-			return PTR_ERR(vref);
+			ret = PTR_ERR(vref);
+			goto err_of_node_put;
 		}
 
 		priv->vref[reg] = vref;
@@ -425,8 +426,10 @@
 		 * attached to the GyroADC at a time, so if we found it,
 		 * we can stop parsing here.
 		 */
-		if (childmode == RCAR_GYROADC_MODE_SELECT_1_MB88101A)
+		if (childmode == RCAR_GYROADC_MODE_SELECT_1_MB88101A) {
+			of_node_put(child);
 			break;
+		}
 	}
 
 	if (first) {
@@ -435,6 +438,12 @@
 	}
 
 	return 0;
+
+err_e_inval:
+	ret = -EINVAL;
+err_of_node_put:
+	of_node_put(child);
+	return ret;
 }
 
 static void rcar_gyroadc_deinit_supplies(struct iio_dev *indio_dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/rockchip_saradc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/rockchip_saradc.c
@@ -372,7 +372,7 @@
 
 	ret = clk_prepare_enable(info->clk);
 	if (ret)
-		return ret;
+		clk_disable_unprepare(info->pclk);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/stm32-adc-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/stm32-adc-core.c
@@ -65,12 +65,14 @@
  * @clk_sel:	clock selection routine
  * @max_clk_rate_hz: maximum analog clock rate (Hz, from datasheet)
  * @has_syscfg: SYSCFG capability flags
+ * @num_irqs:	number of interrupt lines
  */
 struct stm32_adc_priv_cfg {
 	const struct stm32_adc_common_regs *regs;
 	int (*clk_sel)(struct platform_device *, struct stm32_adc_priv *);
 	u32 max_clk_rate_hz;
 	unsigned int has_syscfg;
+	unsigned int num_irqs;
 };
 
 /**
@@ -372,21 +374,15 @@
 	struct device_node *np = pdev->dev.of_node;
 	unsigned int i;
 
-	for (i = 0; i < STM32_ADC_MAX_ADCS; i++) {
+	/*
+	 * Interrupt(s) must be provided, depending on the compatible:
+	 * - stm32f4/h7 shares a common interrupt line.
+	 * - stm32mp1, has one line per ADC
+	 */
+	for (i = 0; i < priv->cfg->num_irqs; i++) {
 		priv->irq[i] = platform_get_irq(pdev, i);
-		if (priv->irq[i] < 0) {
-			/*
-			 * At least one interrupt must be provided, make others
-			 * optional:
-			 * - stm32f4/h7 shares a common interrupt.
-			 * - stm32mp1, has one line per ADC (either for ADC1,
-			 *   ADC2 or both).
-			 */
-			if (i && priv->irq[i] == -ENXIO)
-				continue;
-
+		if (priv->irq[i] < 0)
 			return priv->irq[i];
-		}
 	}
 
 	priv->domain = irq_domain_add_simple(np, STM32_ADC_MAX_ADCS, 0,
@@ -397,9 +393,7 @@
 		return -ENOMEM;
 	}
 
-	for (i = 0; i < STM32_ADC_MAX_ADCS; i++) {
-		if (priv->irq[i] < 0)
-			continue;
+	for (i = 0; i < priv->cfg->num_irqs; i++) {
 		irq_set_chained_handler(priv->irq[i], stm32_adc_irq_handler);
 		irq_set_handler_data(priv->irq[i], priv);
 	}
@@ -417,11 +411,8 @@
 		irq_dispose_mapping(irq_find_mapping(priv->domain, hwirq));
 	irq_domain_remove(priv->domain);
 
-	for (i = 0; i < STM32_ADC_MAX_ADCS; i++) {
-		if (priv->irq[i] < 0)
-			continue;
+	for (i = 0; i < priv->cfg->num_irqs; i++)
 		irq_set_chained_handler(priv->irq[i], NULL);
-	}
 }
 
 static int stm32_adc_core_switches_supply_en(struct stm32_adc_priv *priv,
@@ -789,6 +780,13 @@
 {
 	return stm32_adc_core_hw_start(dev);
 }
+
+static int stm32_adc_core_runtime_idle(struct device *dev)
+{
+	pm_runtime_mark_last_busy(dev);
+
+	return 0;
+}
 #endif
 
 static const struct dev_pm_ops stm32_adc_core_pm_ops = {
@@ -796,13 +794,14 @@
 				pm_runtime_force_resume)
 	SET_RUNTIME_PM_OPS(stm32_adc_core_runtime_suspend,
 			   stm32_adc_core_runtime_resume,
-			   NULL)
+			   stm32_adc_core_runtime_idle)
 };
 
 static const struct stm32_adc_priv_cfg stm32f4_adc_priv_cfg = {
 	.regs = &stm32f4_adc_common_regs,
 	.clk_sel = stm32f4_adc_clk_sel,
 	.max_clk_rate_hz = 36000000,
+	.num_irqs = 1,
 };
 
 static const struct stm32_adc_priv_cfg stm32h7_adc_priv_cfg = {
@@ -810,6 +809,7 @@
 	.clk_sel = stm32h7_adc_clk_sel,
 	.max_clk_rate_hz = 36000000,
 	.has_syscfg = HAS_VBOOSTER,
+	.num_irqs = 1,
 };
 
 static const struct stm32_adc_priv_cfg stm32mp1_adc_priv_cfg = {
@@ -817,6 +817,7 @@
 	.clk_sel = stm32h7_adc_clk_sel,
 	.max_clk_rate_hz = 40000000,
 	.has_syscfg = HAS_VBOOSTER | HAS_ANASWVDD,
+	.num_irqs = 2,
 };
 
 static const struct of_device_id stm32_adc_of_match[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/stm32-adc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/stm32-adc.c
@@ -1367,8 +1367,30 @@
 static void stm32_adc_dma_buffer_done(void *data)
 {
 	struct iio_dev *indio_dev = data;
+	struct stm32_adc *adc = iio_priv(indio_dev);
+	int residue = stm32_adc_dma_residue(adc);
+
+	/*
+	 * In DMA mode the trigger services of IIO are not used
+	 * (e.g. no call to iio_trigger_poll).
+	 * Calling irq handler associated to the hardware trigger is not
+	 * relevant as the conversions have already been done. Data
+	 * transfers are performed directly in DMA callback instead.
+	 * This implementation avoids to call trigger irq handler that
+	 * may sleep, in an atomic context (DMA irq handler context).
+	 */
+	dev_dbg(&indio_dev->dev, "%s bufi=%d\n", __func__, adc->bufi);
+
+	while (residue >= indio_dev->scan_bytes) {
+		u16 *buffer = (u16 *)&adc->rx_buf[adc->bufi];
 
-	iio_trigger_poll_chained(indio_dev->trig);
+		iio_push_to_buffers(indio_dev, buffer);
+
+		residue -= indio_dev->scan_bytes;
+		adc->bufi += indio_dev->scan_bytes;
+		if (adc->bufi >= adc->rx_buf_sz)
+			adc->bufi = 0;
+	}
 }
 
 static int stm32_adc_dma_start(struct iio_dev *indio_dev)
@@ -1735,15 +1757,27 @@
 	return 0;
 }
 
-static int stm32_adc_dma_request(struct iio_dev *indio_dev)
+static int stm32_adc_dma_request(struct device *dev, struct iio_dev *indio_dev)
 {
 	struct stm32_adc *adc = iio_priv(indio_dev);
 	struct dma_slave_config config;
 	int ret;
 
-	adc->dma_chan = dma_request_slave_channel(&indio_dev->dev, "rx");
-	if (!adc->dma_chan)
+	adc->dma_chan = dma_request_chan(dev, "rx");
+	if (IS_ERR(adc->dma_chan)) {
+		ret = PTR_ERR(adc->dma_chan);
+		if (ret != -ENODEV) {
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev,
+					"DMA channel request failed with %d\n",
+					ret);
+			return ret;
+		}
+
+		/* DMA is optional: fall back to IRQ mode */
+		adc->dma_chan = NULL;
 		return 0;
+	}
 
 	adc->rx_buf = dma_alloc_coherent(adc->dma_chan->device->dev,
 					 STM32_DMA_BUFFER_SIZE,
@@ -1778,6 +1812,7 @@
 {
 	struct iio_dev *indio_dev;
 	struct device *dev = &pdev->dev;
+	irqreturn_t (*handler)(int irq, void *p) = NULL;
 	struct stm32_adc *adc;
 	int ret;
 
@@ -1839,13 +1874,15 @@
 	if (ret < 0)
 		return ret;
 
-	ret = stm32_adc_dma_request(indio_dev);
+	ret = stm32_adc_dma_request(dev, indio_dev);
 	if (ret < 0)
 		return ret;
 
+	if (!adc->dma_chan)
+		handler = &stm32_adc_trigger_handler;
+
 	ret = iio_triggered_buffer_setup(indio_dev,
-					 &iio_pollfunc_store_time,
-					 &stm32_adc_trigger_handler,
+					 &iio_pollfunc_store_time, handler,
 					 &stm32_adc_buffer_setup_ops);
 	if (ret) {
 		dev_err(&pdev->dev, "buffer setup failed\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/stm32-dfsdm-adc.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/stm32-dfsdm-adc.c
@@ -62,7 +62,7 @@
 
 struct stm32_dfsdm_dev_data {
 	int type;
-	int (*init)(struct iio_dev *indio_dev);
+	int (*init)(struct device *dev, struct iio_dev *indio_dev);
 	unsigned int num_channels;
 	const struct regmap_config *regmap_cfg;
 };
@@ -842,31 +842,6 @@
 	}
 }
 
-static irqreturn_t stm32_dfsdm_adc_trigger_handler(int irq, void *p)
-{
-	struct iio_poll_func *pf = p;
-	struct iio_dev *indio_dev = pf->indio_dev;
-	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
-	int available = stm32_dfsdm_adc_dma_residue(adc);
-
-	while (available >= indio_dev->scan_bytes) {
-		s32 *buffer = (s32 *)&adc->rx_buf[adc->bufi];
-
-		stm32_dfsdm_process_data(adc, buffer);
-
-		iio_push_to_buffers_with_timestamp(indio_dev, buffer,
-						   pf->timestamp);
-		available -= indio_dev->scan_bytes;
-		adc->bufi += indio_dev->scan_bytes;
-		if (adc->bufi >= adc->buf_sz)
-			adc->bufi = 0;
-	}
-
-	iio_trigger_notify_done(indio_dev->trig);
-
-	return IRQ_HANDLED;
-}
-
 static void stm32_dfsdm_dma_buffer_done(void *data)
 {
 	struct iio_dev *indio_dev = data;
@@ -874,11 +849,6 @@
 	int available = stm32_dfsdm_adc_dma_residue(adc);
 	size_t old_pos;
 
-	if (indio_dev->currentmode & INDIO_BUFFER_TRIGGERED) {
-		iio_trigger_poll_chained(indio_dev->trig);
-		return;
-	}
-
 	/*
 	 * FIXME: In Kernel interface does not support cyclic DMA buffer,and
 	 * offers only an interface to push data samples per samples.
@@ -906,7 +876,15 @@
 			adc->bufi = 0;
 			old_pos = 0;
 		}
-		/* regular iio buffer without trigger */
+		/*
+		 * In DMA mode the trigger services of IIO are not used
+		 * (e.g. no call to iio_trigger_poll).
+		 * Calling irq handler associated to the hardware trigger is not
+		 * relevant as the conversions have already been done. Data
+		 * transfers are performed directly in DMA callback instead.
+		 * This implementation avoids to call trigger irq handler that
+		 * may sleep, in an atomic context (DMA irq handler context).
+		 */
 		if (adc->dev_data->type == DFSDM_IIO)
 			iio_push_to_buffers(indio_dev, buffer);
 	}
@@ -1204,6 +1182,8 @@
 
 	stm32_dfsdm_stop_conv(adc);
 
+	stm32_dfsdm_process_data(adc, res);
+
 stop_dfsdm:
 	stm32_dfsdm_stop_dfsdm(adc->dfsdm);
 
@@ -1379,13 +1359,18 @@
 	}
 }
 
-static int stm32_dfsdm_dma_request(struct iio_dev *indio_dev)
+static int stm32_dfsdm_dma_request(struct device *dev,
+				   struct iio_dev *indio_dev)
 {
 	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
 
-	adc->dma_chan = dma_request_slave_channel(&indio_dev->dev, "rx");
-	if (!adc->dma_chan)
-		return -EINVAL;
+	adc->dma_chan = dma_request_chan(dev, "rx");
+	if (IS_ERR(adc->dma_chan)) {
+		int ret = PTR_ERR(adc->dma_chan);
+
+		adc->dma_chan = NULL;
+		return ret;
+	}
 
 	adc->rx_buf = dma_alloc_coherent(adc->dma_chan->device->dev,
 					 DFSDM_DMA_BUFFER_SIZE,
@@ -1435,7 +1420,7 @@
 					  &adc->dfsdm->ch_list[ch->channel]);
 }
 
-static int stm32_dfsdm_audio_init(struct iio_dev *indio_dev)
+static int stm32_dfsdm_audio_init(struct device *dev, struct iio_dev *indio_dev)
 {
 	struct iio_chan_spec *ch;
 	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
@@ -1462,10 +1447,10 @@
 	indio_dev->num_channels = 1;
 	indio_dev->channels = ch;
 
-	return stm32_dfsdm_dma_request(indio_dev);
+	return stm32_dfsdm_dma_request(dev, indio_dev);
 }
 
-static int stm32_dfsdm_adc_init(struct iio_dev *indio_dev)
+static int stm32_dfsdm_adc_init(struct device *dev, struct iio_dev *indio_dev)
 {
 	struct iio_chan_spec *ch;
 	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
@@ -1509,14 +1494,22 @@
 	init_completion(&adc->completion);
 
 	/* Optionally request DMA */
-	if (stm32_dfsdm_dma_request(indio_dev)) {
-		dev_dbg(&indio_dev->dev, "No DMA support\n");
+	ret = stm32_dfsdm_dma_request(dev, indio_dev);
+	if (ret) {
+		if (ret != -ENODEV) {
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev,
+					"DMA channel request failed with %d\n",
+					ret);
+			return ret;
+		}
+
+		dev_dbg(dev, "No DMA support\n");
 		return 0;
 	}
 
 	ret = iio_triggered_buffer_setup(indio_dev,
-					 &iio_pollfunc_store_time,
-					 &stm32_dfsdm_adc_trigger_handler,
+					 &iio_pollfunc_store_time, NULL,
 					 &stm32_dfsdm_buffer_setup_ops);
 	if (ret) {
 		stm32_dfsdm_dma_release(indio_dev);
@@ -1624,7 +1617,7 @@
 		adc->dfsdm->fl_list[adc->fl_id].sync_mode = val;
 
 	adc->dev_data = dev_data;
-	ret = dev_data->init(iio);
+	ret = dev_data->init(dev, iio);
 	if (ret < 0)
 		return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-adc081c.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-adc081c.c
@@ -33,6 +33,12 @@
 
 	/* 8, 10 or 12 */
 	int bits;
+
+	/* Ensure natural alignment of buffer elements */
+	struct {
+		u16 channel;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 #define REG_CONV_RES 0x00
@@ -128,14 +134,13 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc081c *data = iio_priv(indio_dev);
-	u16 buf[8]; /* 2 bytes data + 6 bytes padding + 8 bytes timestamp */
 	int ret;
 
 	ret = i2c_smbus_read_word_swapped(data->i2c, REG_CONV_RES);
 	if (ret < 0)
 		goto out;
-	buf[0] = ret;
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	data->scan.channel = ret;
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 out:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-adc0832.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-adc0832.c
@@ -28,6 +28,12 @@
 	struct regulator *reg;
 	struct mutex lock;
 	u8 mux_bits;
+	/*
+	 * Max size needed: 16x 1 byte ADC data + 8 bytes timestamp
+	 * May be shorter if not all channels are enabled subject
+	 * to the timestamp remaining 8 byte aligned.
+	 */
+	u8 data[24] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -199,7 +205,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc0832 *adc = iio_priv(indio_dev);
-	u8 data[24] = { }; /* 16x 1 byte ADC data + 8 bytes timestamp */
 	int scan_index;
 	int i = 0;
 
@@ -217,10 +222,10 @@
 			goto out;
 		}
 
-		data[i] = ret;
+		adc->data[i] = ret;
 		i++;
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-adc084s021.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-adc084s021.c
@@ -25,6 +25,11 @@
 	struct spi_transfer spi_trans;
 	struct regulator *reg;
 	struct mutex lock;
+	/* Buffer used to align data */
+	struct {
+		__be16 channels[4];
+		s64 ts __aligned(8);
+	} scan;
 	/*
 	 * DMA (thus cache coherency maintenance) requires the
 	 * transfer buffers to live in their own cache line.
@@ -140,14 +145,13 @@
 	struct iio_poll_func *pf = pollfunc;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc084s021 *adc = iio_priv(indio_dev);
-	__be16 data[8] = {0}; /* 4 * 16-bit words of data + 8 bytes timestamp */
 
 	mutex_lock(&adc->lock);
 
-	if (adc084s021_adc_conversion(adc, &data) < 0)
+	if (adc084s021_adc_conversion(adc, adc->scan.channels) < 0)
 		dev_err(&adc->spi->dev, "Failed to read data\n");
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &adc->scan,
 					   iio_get_time_ns(indio_dev));
 	mutex_unlock(&adc->lock);
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-adc12138.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-adc12138.c
@@ -47,6 +47,12 @@
 	struct completion complete;
 	/* The number of cclk periods for the S/H's acquisition time */
 	unsigned int acquisition_time;
+	/*
+	 * Maximum size needed: 16x 2 bytes ADC data + 8 bytes timestamp.
+	 * Less may be need if not all channels are enabled, as long as
+	 * the 8 byte alignment of the timestamp is maintained.
+	 */
+	__be16 data[20] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -329,7 +335,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc12138 *adc = iio_priv(indio_dev);
-	__be16 data[20] = { }; /* 16x 2 bytes ADC data + 8 bytes timestamp */
 	__be16 trash;
 	int ret;
 	int scan_index;
@@ -345,7 +350,7 @@
 		reinit_completion(&adc->complete);
 
 		ret = adc12138_start_and_read_conv(adc, scan_chan,
-						   i ? &data[i - 1] : &trash);
+					i ? &adc->data[i - 1] : &trash);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to start conversion\n");
@@ -362,7 +367,7 @@
 	}
 
 	if (i) {
-		ret = adc12138_read_conv_data(adc, &data[i - 1]);
+		ret = adc12138_read_conv_data(adc, &adc->data[i - 1]);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to get conversion data\n");
@@ -370,7 +375,7 @@
 		}
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-ads1015.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-ads1015.c
@@ -309,6 +309,7 @@
 	IIO_CHAN_SOFT_TIMESTAMP(ADS1015_TIMESTAMP),
 };
 
+#ifdef CONFIG_PM
 static int ads1015_set_power_state(struct ads1015_data *data, bool on)
 {
 	int ret;
@@ -326,6 +327,15 @@
 	return ret < 0 ? ret : 0;
 }
 
+#else /* !CONFIG_PM */
+
+static int ads1015_set_power_state(struct ads1015_data *data, bool on)
+{
+	return 0;
+}
+
+#endif /* !CONFIG_PM */
+
 static
 int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-ads124s08.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-ads124s08.c
@@ -97,6 +97,14 @@
 	struct gpio_desc *reset_gpio;
 	struct spi_device *spi;
 	struct mutex lock;
+	/*
+	 * Used to correctly align data.
+	 * Ensure timestamp is naturally aligned.
+	 * Note that the full buffer length may not be needed if not
+	 * all channels are enabled, as long as the alignment of the
+	 * timestamp is maintained.
+	 */
+	u32 buffer[ADS124S08_MAX_CHANNELS + sizeof(s64)/sizeof(u32)] __aligned(8);
 	u8 data[5] ____cacheline_aligned;
 };
 
@@ -270,7 +278,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ads124s_private *priv = iio_priv(indio_dev);
-	u32 buffer[ADS124S08_MAX_CHANNELS + sizeof(s64)/sizeof(u16)];
 	int scan_index, j = 0;
 	int ret;
 
@@ -285,7 +292,7 @@
 		if (ret)
 			dev_err(&priv->spi->dev, "Start ADC conversions failed\n");
 
-		buffer[j] = ads124s_read(indio_dev, scan_index);
+		priv->buffer[j] = ads124s_read(indio_dev, scan_index);
 		ret = ads124s_write_cmd(indio_dev, ADS124S08_STOP_CONV);
 		if (ret)
 			dev_err(&priv->spi->dev, "Stop ADC conversions failed\n");
@@ -293,7 +300,7 @@
 		j++;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, priv->buffer,
 			pf->timestamp);
 
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/ti-ads8344.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/ti-ads8344.c
@@ -29,19 +29,20 @@
 	struct mutex lock;
 
 	u8 tx_buf ____cacheline_aligned;
-	u16 rx_buf;
+	u8 rx_buf[3];
 };
 
-#define ADS8344_VOLTAGE_CHANNEL(chan, si)				\
+#define ADS8344_VOLTAGE_CHANNEL(chan, addr)				\
 	{								\
 		.type = IIO_VOLTAGE,					\
 		.indexed = 1,						\
 		.channel = chan,					\
 		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),		\
 		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),	\
+		.address = addr,					\
 	}
 
-#define ADS8344_VOLTAGE_CHANNEL_DIFF(chan1, chan2, si)			\
+#define ADS8344_VOLTAGE_CHANNEL_DIFF(chan1, chan2, addr)		\
 	{								\
 		.type = IIO_VOLTAGE,					\
 		.indexed = 1,						\
@@ -50,6 +51,7 @@
 		.differential = 1,					\
 		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),		\
 		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),	\
+		.address = addr,					\
 	}
 
 static const struct iio_chan_spec ads8344_channels[] = {
@@ -89,11 +91,11 @@
 
 	udelay(9);
 
-	ret = spi_read(spi, &adc->rx_buf, 2);
+	ret = spi_read(spi, adc->rx_buf, sizeof(adc->rx_buf));
 	if (ret)
 		return ret;
 
-	return adc->rx_buf;
+	return adc->rx_buf[0] << 9 | adc->rx_buf[1] << 1 | adc->rx_buf[2] >> 7;
 }
 
 static int ads8344_read_raw(struct iio_dev *iio,
@@ -105,7 +107,7 @@
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
 		mutex_lock(&adc->lock);
-		*value = ads8344_adc_conversion(adc, channel->scan_index,
+		*value = ads8344_adc_conversion(adc, channel->address,
 						channel->differential);
 		mutex_unlock(&adc->lock);
 		if (*value < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/adc/xilinx-xadc-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/adc/xilinx-xadc-core.c
@@ -102,6 +102,16 @@
 
 #define XADC_FLAGS_BUFFERED BIT(0)
 
+/*
+ * The XADC hardware supports a samplerate of up to 1MSPS. Unfortunately it does
+ * not have a hardware FIFO. Which means an interrupt is generated for each
+ * conversion sequence. At 1MSPS sample rate the CPU in ZYNQ7000 is completely
+ * overloaded by the interrupts that it soft-lockups. For this reason the driver
+ * limits the maximum samplerate 150kSPS. At this rate the CPU is fairly busy,
+ * but still responsive.
+ */
+#define XADC_MAX_SAMPLERATE 150000
+
 static void xadc_write_reg(struct xadc *xadc, unsigned int reg,
 	uint32_t val)
 {
@@ -674,7 +684,7 @@
 
 	spin_lock_irqsave(&xadc->lock, flags);
 	xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
-	xadc_write_reg(xadc, XADC_AXI_REG_IPISR, val & XADC_AXI_INT_EOS);
+	xadc_write_reg(xadc, XADC_AXI_REG_IPISR, XADC_AXI_INT_EOS);
 	if (state)
 		val |= XADC_AXI_INT_EOS;
 	else
@@ -722,13 +732,14 @@
 {
 	uint16_t val;
 
+	/* Powerdown the ADC-B when it is not needed. */
 	switch (seq_mode) {
 	case XADC_CONF1_SEQ_SIMULTANEOUS:
 	case XADC_CONF1_SEQ_INDEPENDENT:
-		val = XADC_CONF2_PD_ADC_B;
+		val = 0;
 		break;
 	default:
-		val = 0;
+		val = XADC_CONF2_PD_ADC_B;
 		break;
 	}
 
@@ -797,6 +808,16 @@
 	if (ret)
 		goto err;
 
+	/*
+	 * In simultaneous mode the upper and lower aux channels are samples at
+	 * the same time. In this mode the upper 8 bits in the sequencer
+	 * register are don't care and the lower 8 bits control two channels
+	 * each. As such we must set the bit if either the channel in the lower
+	 * group or the upper group is enabled.
+	 */
+	if (seq_mode == XADC_CONF1_SEQ_SIMULTANEOUS)
+		scan_mask = ((scan_mask >> 8) | scan_mask) & 0xff0000;
+
 	ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
 	if (ret)
 		goto err;
@@ -823,11 +844,27 @@
 	.postdisable = &xadc_postdisable,
 };
 
+static int xadc_read_samplerate(struct xadc *xadc)
+{
+	unsigned int div;
+	uint16_t val16;
+	int ret;
+
+	ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
+	if (ret)
+		return ret;
+
+	div = (val16 & XADC_CONF2_DIV_MASK) >> XADC_CONF2_DIV_OFFSET;
+	if (div < 2)
+		div = 2;
+
+	return xadc_get_dclk_rate(xadc) / div / 26;
+}
+
 static int xadc_read_raw(struct iio_dev *indio_dev,
 	struct iio_chan_spec const *chan, int *val, int *val2, long info)
 {
 	struct xadc *xadc = iio_priv(indio_dev);
-	unsigned int div;
 	uint16_t val16;
 	int ret;
 
@@ -880,41 +917,31 @@
 		*val = -((273150 << 12) / 503975);
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SAMP_FREQ:
-		ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
-		if (ret)
+		ret = xadc_read_samplerate(xadc);
+		if (ret < 0)
 			return ret;
 
-		div = (val16 & XADC_CONF2_DIV_MASK) >> XADC_CONF2_DIV_OFFSET;
-		if (div < 2)
-			div = 2;
-
-		*val = xadc_get_dclk_rate(xadc) / div / 26;
-
+		*val = ret;
 		return IIO_VAL_INT;
 	default:
 		return -EINVAL;
 	}
 }
 
-static int xadc_write_raw(struct iio_dev *indio_dev,
-	struct iio_chan_spec const *chan, int val, int val2, long info)
+static int xadc_write_samplerate(struct xadc *xadc, int val)
 {
-	struct xadc *xadc = iio_priv(indio_dev);
 	unsigned long clk_rate = xadc_get_dclk_rate(xadc);
 	unsigned int div;
 
 	if (!clk_rate)
 		return -EINVAL;
 
-	if (info != IIO_CHAN_INFO_SAMP_FREQ)
-		return -EINVAL;
-
 	if (val <= 0)
 		return -EINVAL;
 
 	/* Max. 150 kSPS */
-	if (val > 150000)
-		val = 150000;
+	if (val > XADC_MAX_SAMPLERATE)
+		val = XADC_MAX_SAMPLERATE;
 
 	val *= 26;
 
@@ -927,7 +954,7 @@
 	 * limit.
 	 */
 	div = clk_rate / val;
-	if (clk_rate / div / 26 > 150000)
+	if (clk_rate / div / 26 > XADC_MAX_SAMPLERATE)
 		div++;
 	if (div < 2)
 		div = 2;
@@ -938,6 +965,17 @@
 		div << XADC_CONF2_DIV_OFFSET);
 }
 
+static int xadc_write_raw(struct iio_dev *indio_dev,
+	struct iio_chan_spec const *chan, int val, int val2, long info)
+{
+	struct xadc *xadc = iio_priv(indio_dev);
+
+	if (info != IIO_CHAN_INFO_SAMP_FREQ)
+		return -EINVAL;
+
+	return xadc_write_samplerate(xadc, val);
+}
+
 static const struct iio_event_spec xadc_temp_events[] = {
 	{
 		.type = IIO_EV_TYPE_THRESH,
@@ -1225,6 +1263,21 @@
 	if (ret)
 		goto err_free_samplerate_trigger;
 
+	/*
+	 * Make sure not to exceed the maximum samplerate since otherwise the
+	 * resulting interrupt storm will soft-lock the system.
+	 */
+	if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
+		ret = xadc_read_samplerate(xadc);
+		if (ret < 0)
+			goto err_free_samplerate_trigger;
+		if (ret > XADC_MAX_SAMPLERATE) {
+			ret = xadc_write_samplerate(xadc, XADC_MAX_SAMPLERATE);
+			if (ret < 0)
+				goto err_free_samplerate_trigger;
+		}
+	}
+
 	ret = request_irq(xadc->irq, xadc->ops->interrupt_handler, 0,
 			dev_name(&pdev->dev), indio_dev);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/chemical/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/iio/chemical/Kconfig
@@ -65,6 +65,7 @@
 config PMS7003
 	tristate "Plantower PMS7003 particulate matter sensor"
 	depends on SERIAL_DEV_BUS
+	select IIO_BUFFER
 	select IIO_TRIGGERED_BUFFER
 	help
 	  Say Y here to build support for the Plantower PMS7003 particulate
@@ -90,6 +91,8 @@
 	tristate "SPS30 particulate matter sensor"
 	depends on I2C
 	select CRC8
+	select IIO_BUFFER
+	select IIO_TRIGGERED_BUFFER
 	help
 	  Say Y here to build support for the Sensirion SPS30 particulate
 	  matter sensor.
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/chemical/ccs811.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/chemical/ccs811.c
@@ -75,6 +75,11 @@
 	struct ccs811_reading buffer;
 	struct iio_trigger *drdy_trig;
 	bool drdy_trig_on;
+	/* Ensures correct alignment of timestamp if present */
+	struct {
+		s16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static const struct iio_chan_spec ccs811_channels[] = {
@@ -306,17 +311,17 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ccs811_data *data = iio_priv(indio_dev);
 	struct i2c_client *client = data->client;
-	s16 buf[8]; /* s16 eCO2 + s16 TVOC + padding + 8 byte timestamp */
 	int ret;
 
-	ret = i2c_smbus_read_i2c_block_data(client, CCS811_ALG_RESULT_DATA, 4,
-					    (u8 *)&buf);
+	ret = i2c_smbus_read_i2c_block_data(client, CCS811_ALG_RESULT_DATA,
+					    sizeof(data->scan.channels),
+					    (u8 *)data->scan.channels);
 	if (ret != 4) {
 		dev_err(&client->dev, "cannot read sensor data\n");
 		goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 
 err:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/chemical/pms7003.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/chemical/pms7003.c
@@ -73,6 +73,11 @@
 	struct pms7003_frame frame;
 	struct completion frame_ready;
 	struct mutex lock; /* must be held whenever state gets touched */
+	/* Used to construct scan to push to the IIO buffer */
+	struct {
+		u16 data[3]; /* PM1, PM2P5, PM10 */
+		s64 ts;
+	} scan;
 };
 
 static int pms7003_do_cmd(struct pms7003_state *state, enum pms7003_cmd cmd)
@@ -104,7 +109,6 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct pms7003_state *state = iio_priv(indio_dev);
 	struct pms7003_frame *frame = &state->frame;
-	u16 data[3 + 1 + 4]; /* PM1, PM2P5, PM10, padding, timestamp */
 	int ret;
 
 	mutex_lock(&state->lock);
@@ -114,12 +118,15 @@
 		goto err;
 	}
 
-	data[PM1] = pms7003_get_pm(frame->data + PMS7003_PM1_OFFSET);
-	data[PM2P5] = pms7003_get_pm(frame->data + PMS7003_PM2P5_OFFSET);
-	data[PM10] = pms7003_get_pm(frame->data + PMS7003_PM10_OFFSET);
+	state->scan.data[PM1] =
+		pms7003_get_pm(frame->data + PMS7003_PM1_OFFSET);
+	state->scan.data[PM2P5] =
+		pms7003_get_pm(frame->data + PMS7003_PM2P5_OFFSET);
+	state->scan.data[PM10] =
+		pms7003_get_pm(frame->data + PMS7003_PM10_OFFSET);
 	mutex_unlock(&state->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &state->scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/chemical/sps30.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/chemical/sps30.c
@@ -230,15 +230,18 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct sps30_state *state = iio_priv(indio_dev);
 	int ret;
-	s32 data[4 + 2]; /* PM1, PM2P5, PM4, PM10, timestamp */
+	struct {
+		s32 data[4]; /* PM1, PM2P5, PM4, PM10 */
+		s64 ts;
+	} scan;
 
 	mutex_lock(&state->lock);
-	ret = sps30_do_meas(state, data, 4);
+	ret = sps30_do_meas(state, scan.data, ARRAY_SIZE(scan.data));
 	mutex_unlock(&state->lock);
 	if (ret)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
@@ -57,10 +57,13 @@
 {
 	switch (type) {
 	case MOTIONSENSE_TYPE_ACCEL:
-	case MOTIONSENSE_TYPE_GYRO:
 		*min_freq = 12500;
 		*max_freq = 100000;
 		break;
+	case MOTIONSENSE_TYPE_GYRO:
+		*min_freq = 25000;
+		*max_freq = 100000;
+		break;
 	case MOTIONSENSE_TYPE_MAG:
 		*min_freq = 5000;
 		*max_freq = 25000;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/common/st_sensors/st_sensors_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/common/st_sensors/st_sensors_core.c
@@ -80,7 +80,7 @@
 	struct st_sensor_odr_avl odr_out = {0, 0};
 	struct st_sensor_data *sdata = iio_priv(indio_dev);
 
-	if (!sdata->sensor_settings->odr.addr)
+	if (!sdata->sensor_settings->odr.mask)
 		return 0;
 
 	err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/dac/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/iio/dac/Kconfig
@@ -60,8 +60,8 @@
 	help
 	  Say yes here to build support for Analog Devices AD5300, AD5301, AD5310,
 	  AD5311, AD5320, AD5321, AD5444, AD5446, AD5450, AD5451, AD5452, AD5453,
-	  AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5601, AD5602, AD5611, AD5612,
-	  AD5620, AD5621, AD5622, AD5640, AD5641, AD5660, AD5662 DACs
+	  AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5600, AD5601, AD5602, AD5611,
+	  AD5612, AD5620, AD5621, AD5622, AD5640, AD5641, AD5660, AD5662 DACs
 	  as well as Texas Instruments DAC081S101, DAC101S101, DAC121S101.
 
 	  To compile this driver as a module, choose M here: the
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/dac/ad5446.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/dac/ad5446.c
@@ -327,6 +327,7 @@
 	ID_AD5541A,
 	ID_AD5512A,
 	ID_AD5553,
+	ID_AD5600,
 	ID_AD5601,
 	ID_AD5611,
 	ID_AD5621,
@@ -381,6 +382,10 @@
 		.channel = AD5446_CHANNEL(14, 16, 0),
 		.write = ad5446_write,
 	},
+	[ID_AD5600] = {
+		.channel = AD5446_CHANNEL(16, 16, 0),
+		.write = ad5446_write,
+	},
 	[ID_AD5601] = {
 		.channel = AD5446_CHANNEL_POWERDOWN(8, 16, 6),
 		.write = ad5446_write,
@@ -448,6 +453,7 @@
 	{"ad5542a", ID_AD5541A}, /* ad5541a and ad5542a are compatible */
 	{"ad5543", ID_AD5541A}, /* ad5541a and ad5543 are compatible */
 	{"ad5553", ID_AD5553},
+	{"ad5600", ID_AD5600},
 	{"ad5601", ID_AD5601},
 	{"ad5611", ID_AD5611},
 	{"ad5621", ID_AD5621},
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/dac/ad5504.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/dac/ad5504.c
@@ -188,9 +188,9 @@
 		return ret;
 
 	if (pwr_down)
-		st->pwr_down_mask |= (1 << chan->channel);
-	else
 		st->pwr_down_mask &= ~(1 << chan->channel);
+	else
+		st->pwr_down_mask |= (1 << chan->channel);
 
 	ret = ad5504_spi_write(st, AD5504_ADDR_CTRL,
 				AD5504_DAC_PWRDWN_MODE(st->pwr_down_mode) |
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/dac/ad5592r-base.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/dac/ad5592r-base.c
@@ -416,7 +416,7 @@
 			s64 tmp = *val * (3767897513LL / 25LL);
 			*val = div_s64_rem(tmp, 1000000000LL, val2);
 
-			ret = IIO_VAL_INT_PLUS_MICRO;
+			return IIO_VAL_INT_PLUS_MICRO;
 		} else {
 			int mult;
 
@@ -447,7 +447,7 @@
 		ret =  IIO_VAL_INT;
 		break;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
 
 unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/dac/vf610_dac.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/dac/vf610_dac.c
@@ -225,6 +225,7 @@
 	return 0;
 
 error_iio_device_register:
+	vf610_dac_exit(info);
 	clk_disable_unprepare(info->clk);
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/gyro/itg3200_buffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/gyro/itg3200_buffer.c
@@ -46,13 +46,20 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct itg3200 *st = iio_priv(indio_dev);
-	__be16 buf[ITG3200_SCAN_ELEMENTS + sizeof(s64)/sizeof(u16)];
+	/*
+	 * Ensure correct alignment and padding including for the
+	 * timestamp that may be inserted.
+	 */
+	struct {
+		__be16 buf[ITG3200_SCAN_ELEMENTS];
+		s64 ts __aligned(8);
+	} scan;
 
-	int ret = itg3200_read_all_channels(st->i2c, buf);
+	int ret = itg3200_read_all_channels(st->i2c, scan.buf);
 	if (ret < 0)
 		goto error_ret;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan, pf->timestamp);
 
 	iio_trigger_notify_done(indio_dev->trig);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/gyro/st_gyro_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/gyro/st_gyro_core.c
@@ -139,7 +139,6 @@
 			[2] = LSM330DLC_GYRO_DEV_NAME,
 			[3] = L3G4IS_GYRO_DEV_NAME,
 			[4] = LSM330_GYRO_DEV_NAME,
-			[5] = LSM9DS0_GYRO_DEV_NAME,
 		},
 		.ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
 		.odr = {
@@ -203,6 +202,80 @@
 			},
 		},
 		.sim = {
+			.addr = 0x23,
+			.value = BIT(0),
+		},
+		.multi_read_bit = true,
+		.bootime = 2,
+	},
+	{
+		.wai = 0xd4,
+		.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
+		.sensors_supported = {
+			[0] = LSM9DS0_GYRO_DEV_NAME,
+		},
+		.ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
+		.odr = {
+			.addr = 0x20,
+			.mask = GENMASK(7, 6),
+			.odr_avl = {
+				{ .hz = 95, .value = 0x00, },
+				{ .hz = 190, .value = 0x01, },
+				{ .hz = 380, .value = 0x02, },
+				{ .hz = 760, .value = 0x03, },
+			},
+		},
+		.pw = {
+			.addr = 0x20,
+			.mask = BIT(3),
+			.value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
+			.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
+		},
+		.enable_axis = {
+			.addr = ST_SENSORS_DEFAULT_AXIS_ADDR,
+			.mask = ST_SENSORS_DEFAULT_AXIS_MASK,
+		},
+		.fs = {
+			.addr = 0x23,
+			.mask = GENMASK(5, 4),
+			.fs_avl = {
+				[0] = {
+					.num = ST_GYRO_FS_AVL_245DPS,
+					.value = 0x00,
+					.gain = IIO_DEGREE_TO_RAD(8750),
+				},
+				[1] = {
+					.num = ST_GYRO_FS_AVL_500DPS,
+					.value = 0x01,
+					.gain = IIO_DEGREE_TO_RAD(17500),
+				},
+				[2] = {
+					.num = ST_GYRO_FS_AVL_2000DPS,
+					.value = 0x02,
+					.gain = IIO_DEGREE_TO_RAD(70000),
+				},
+			},
+		},
+		.bdu = {
+			.addr = 0x23,
+			.mask = BIT(7),
+		},
+		.drdy_irq = {
+			.int2 = {
+				.addr = 0x22,
+				.mask = BIT(3),
+			},
+			/*
+			 * The sensor has IHL (active low) and open
+			 * drain settings, but only for INT1 and not
+			 * for the DRDY line on INT2.
+			 */
+			.stat_drdy = {
+				.addr = ST_SENSORS_DEFAULT_STAT_ADDR,
+				.mask = GENMASK(2, 0),
+			},
+		},
+		.sim = {
 			.addr = 0x23,
 			.value = BIT(0),
 		},
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/health/afe4403.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/health/afe4403.c
@@ -63,6 +63,7 @@
  * @regulator: Pointer to the regulator for the IC
  * @trig: IIO trigger for this device
  * @irq: ADC_RDY line interrupt number
+ * @buffer: Used to construct data layout to push into IIO buffer.
  */
 struct afe4403_data {
 	struct device *dev;
@@ -72,6 +73,8 @@
 	struct regulator *regulator;
 	struct iio_trigger *trig;
 	int irq;
+	/* Ensure suitable alignment for timestamp */
+	s32 buffer[8] __aligned(8);
 };
 
 enum afe4403_chan_id {
@@ -309,7 +312,6 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct afe4403_data *afe = iio_priv(indio_dev);
 	int ret, bit, i = 0;
-	s32 buffer[8];
 	u8 tx[4] = {AFE440X_CONTROL0, 0x0, 0x0, AFE440X_CONTROL0_READ};
 	u8 rx[3];
 
@@ -326,9 +328,9 @@
 		if (ret)
 			goto err;
 
-		buffer[i++] = (rx[0] << 16) |
-				(rx[1] << 8) |
-				(rx[2]);
+		afe->buffer[i++] = (rx[0] << 16) |
+				   (rx[1] << 8) |
+				   (rx[2]);
 	}
 
 	/* Disable reading from the device */
@@ -337,7 +339,8 @@
 	if (ret)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
+					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/health/afe4404.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/health/afe4404.c
@@ -83,6 +83,7 @@
  * @regulator: Pointer to the regulator for the IC
  * @trig: IIO trigger for this device
  * @irq: ADC_RDY line interrupt number
+ * @buffer: Used to construct a scan to push to the iio buffer.
  */
 struct afe4404_data {
 	struct device *dev;
@@ -91,6 +92,7 @@
 	struct regulator *regulator;
 	struct iio_trigger *trig;
 	int irq;
+	s32 buffer[10] __aligned(8);
 };
 
 enum afe4404_chan_id {
@@ -328,17 +330,17 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct afe4404_data *afe = iio_priv(indio_dev);
 	int ret, bit, i = 0;
-	s32 buffer[10];
 
 	for_each_set_bit(bit, indio_dev->active_scan_mask,
 			 indio_dev->masklength) {
 		ret = regmap_read(afe->regmap, afe4404_channel_values[bit],
-				  &buffer[i++]);
+				  &afe->buffer[i++]);
 		if (ret)
 			goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
+					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/humidity/hdc100x.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/humidity/hdc100x.c
@@ -38,6 +38,11 @@
 
 	/* integration time of the sensor */
 	int adc_int_us[2];
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__be16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* integration time in us */
@@ -229,7 +234,7 @@
 			*val2 = 65536;
 			return IIO_VAL_FRACTIONAL;
 		} else {
-			*val = 100;
+			*val = 100000;
 			*val2 = 65536;
 			return IIO_VAL_FRACTIONAL;
 		}
@@ -319,7 +324,6 @@
 	struct i2c_client *client = data->client;
 	int delay = data->adc_int_us[0] + data->adc_int_us[1];
 	int ret;
-	s16 buf[8];  /* 2x s16 + padding + 8 byte timestamp */
 
 	/* dual read starts at temp register */
 	mutex_lock(&data->lock);
@@ -330,13 +334,13 @@
 	}
 	usleep_range(delay, delay + 1000);
 
-	ret = i2c_master_recv(client, (u8 *)buf, 4);
+	ret = i2c_master_recv(client, (u8 *)data->scan.channels, 4);
 	if (ret < 0) {
 		dev_err(&client->dev, "cannot read sensor data\n");
 		goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	mutex_unlock(&data->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/humidity/hts221.h
+++ linux-gkeop-5.4-5.4.0/drivers/iio/humidity/hts221.h
@@ -14,8 +14,6 @@
 
 #include <linux/iio/iio.h>
 
-#define HTS221_DATA_SIZE	2
-
 enum hts221_sensor_type {
 	HTS221_SENSOR_H,
 	HTS221_SENSOR_T,
@@ -39,6 +37,11 @@
 
 	bool enabled;
 	u8 odr;
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__le16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 extern const struct dev_pm_ops hts221_pm_ops;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/humidity/hts221_buffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/humidity/hts221_buffer.c
@@ -162,7 +162,6 @@
 
 static irqreturn_t hts221_buffer_handler_thread(int irq, void *p)
 {
-	u8 buffer[ALIGN(2 * HTS221_DATA_SIZE, sizeof(s64)) + sizeof(s64)];
 	struct iio_poll_func *pf = p;
 	struct iio_dev *iio_dev = pf->indio_dev;
 	struct hts221_hw *hw = iio_priv(iio_dev);
@@ -172,18 +171,20 @@
 	/* humidity data */
 	ch = &iio_dev->channels[HTS221_SENSOR_H];
 	err = regmap_bulk_read(hw->regmap, ch->address,
-			       buffer, HTS221_DATA_SIZE);
+			       &hw->scan.channels[0],
+			       sizeof(hw->scan.channels[0]));
 	if (err < 0)
 		goto out;
 
 	/* temperature data */
 	ch = &iio_dev->channels[HTS221_SENSOR_T];
 	err = regmap_bulk_read(hw->regmap, ch->address,
-			       buffer + HTS221_DATA_SIZE, HTS221_DATA_SIZE);
+			       &hw->scan.channels[1],
+			       sizeof(hw->scan.channels[1]));
 	if (err < 0)
 		goto out;
 
-	iio_push_to_buffers_with_timestamp(iio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan,
 					   iio_get_time_ns(iio_dev));
 
 out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/adis16480.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/adis16480.c
@@ -454,12 +454,14 @@
 	case IIO_MAGN:
 	case IIO_PRESSURE:
 		ret = adis_read_reg_16(&st->adis, reg, &val16);
-		*bias = sign_extend32(val16, 15);
+		if (ret == 0)
+			*bias = sign_extend32(val16, 15);
 		break;
 	case IIO_ANGL_VEL:
 	case IIO_ACCEL:
 		ret = adis_read_reg_32(&st->adis, reg, &val32);
-		*bias = sign_extend32(val32, 31);
+		if (ret == 0)
+			*bias = sign_extend32(val32, 31);
 		break;
 	default:
 			ret = -EINVAL;
@@ -623,9 +625,13 @@
 			*val2 = (st->chip_info->temp_scale % 1000) * 1000;
 			return IIO_VAL_INT_PLUS_MICRO;
 		case IIO_PRESSURE:
-			*val = 0;
-			*val2 = 4000; /* 40ubar = 0.004 kPa */
-			return IIO_VAL_INT_PLUS_MICRO;
+			/*
+			 * max scale is 1310 mbar
+			 * max raw value is 32767 shifted for 32bits
+			 */
+			*val = 131; /* 1310mbar = 131 kPa */
+			*val2 = 32767 << 16;
+			return IIO_VAL_FRACTIONAL;
 		default:
 			return -EINVAL;
 		}
@@ -786,13 +792,14 @@
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
 		/*
-		 * storing the value in rad/degree and the scale in degree
-		 * gives us the result in rad and better precession than
-		 * storing the scale directly in rad.
+		 * Typically we do IIO_RAD_TO_DEGREE in the denominator, which
+		 * is exactly the same as IIO_DEGREE_TO_RAD in numerator, since
+		 * it gives better approximation. However, in this case we
+		 * cannot do it since it would not fit in a 32bit variable.
 		 */
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22887),
-		.gyro_max_scale = 300,
-		.accel_max_val = IIO_M_S_2_TO_G(21973),
+		.gyro_max_val = 22887 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(300),
+		.accel_max_val = IIO_M_S_2_TO_G(21973 << 16),
 		.accel_max_scale = 18,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -802,9 +809,9 @@
 	[ADIS16480] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(12500),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(12500 << 16),
 		.accel_max_scale = 10,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -814,9 +821,9 @@
 	[ADIS16485] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(20000),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
 		.accel_max_scale = 5,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -826,9 +833,9 @@
 	[ADIS16488] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(22500),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(22500 << 16),
 		.accel_max_scale = 18,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -838,9 +845,9 @@
 	[ADIS16495_1] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 125,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -851,9 +858,9 @@
 	[ADIS16495_2] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 18000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -864,9 +871,9 @@
 	[ADIS16495_3] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 2000,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -877,9 +884,9 @@
 	[ADIS16497_1] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 125,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -890,9 +897,9 @@
 	[ADIS16497_2] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 18000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -903,9 +910,9 @@
 	[ADIS16497_3] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 2000,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -919,6 +926,7 @@
 	.read_raw = &adis16480_read_raw,
 	.write_raw = &adis16480_write_raw,
 	.update_scan_mode = adis_update_scan_mode,
+	.debugfs_reg_access = adis_debugfs_reg_access,
 };
 
 static int adis16480_stop_device(struct iio_dev *indio_dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/bmi160/bmi160.h
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/bmi160/bmi160.h
@@ -7,6 +7,13 @@
 struct bmi160_data {
 	struct regmap *regmap;
 	struct iio_trigger *trig;
+	/*
+	 * Ensure natural alignment for timestamp if present.
+	 * Max length needed: 2 * 3 channels + 4 bytes padding + 8 byte ts.
+	 * If fewer channels are enabled, less space may be needed, as
+	 * long as the timestamp is still aligned to 8 bytes.
+	 */
+	__le16 buf[12] __aligned(8);
 };
 
 extern const struct regmap_config bmi160_regmap_config;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/bmi160/bmi160_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/bmi160/bmi160_core.c
@@ -411,8 +411,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct bmi160_data *data = iio_priv(indio_dev);
-	__le16 buf[16];
-	/* 3 sens x 3 axis x __le16 + 3 x __le16 pad + 4 x __le16 tstamp */
 	int i, ret, j = 0, base = BMI160_REG_DATA_MAGN_XOUT_L;
 	__le16 sample;
 
@@ -422,10 +420,10 @@
 				       &sample, sizeof(sample));
 		if (ret)
 			goto done;
-		buf[j++] = sample;
+		data->buf[j++] = sample;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buf, pf->timestamp);
 done:
 	iio_trigger_notify_done(indio_dev->trig);
 	return IRQ_HANDLED;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -115,6 +115,7 @@
 		.reg = &reg_set_6050,
 		.config = &chip_config_6050,
 		.fifo_size = 1024,
+		.temp = {INV_MPU6050_TEMP_OFFSET, INV_MPU6050_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU6500_WHOAMI_VALUE,
@@ -122,6 +123,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU6515_WHOAMI_VALUE,
@@ -129,6 +131,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU6000_WHOAMI_VALUE,
@@ -136,6 +139,7 @@
 		.reg = &reg_set_6050,
 		.config = &chip_config_6050,
 		.fifo_size = 1024,
+		.temp = {INV_MPU6050_TEMP_OFFSET, INV_MPU6050_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU9150_WHOAMI_VALUE,
@@ -143,6 +147,7 @@
 		.reg = &reg_set_6050,
 		.config = &chip_config_6050,
 		.fifo_size = 1024,
+		.temp = {INV_MPU6050_TEMP_OFFSET, INV_MPU6050_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU9250_WHOAMI_VALUE,
@@ -150,6 +155,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU9255_WHOAMI_VALUE,
@@ -157,6 +163,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_ICM20608_WHOAMI_VALUE,
@@ -164,6 +171,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_ICM20602_WHOAMI_VALUE,
@@ -171,6 +179,7 @@
 		.reg = &reg_set_icm20602,
 		.config = &chip_config_6050,
 		.fifo_size = 1008,
+		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
 	},
 };
 
@@ -471,12 +480,8 @@
 
 			return IIO_VAL_INT_PLUS_MICRO;
 		case IIO_TEMP:
-			*val = 0;
-			if (st->chip_type == INV_ICM20602)
-				*val2 = INV_ICM20602_TEMP_SCALE;
-			else
-				*val2 = INV_MPU6050_TEMP_SCALE;
-
+			*val = st->hw->temp.scale / 1000000;
+			*val2 = st->hw->temp.scale % 1000000;
 			return IIO_VAL_INT_PLUS_MICRO;
 		default:
 			return -EINVAL;
@@ -484,11 +489,7 @@
 	case IIO_CHAN_INFO_OFFSET:
 		switch (chan->type) {
 		case IIO_TEMP:
-			if (st->chip_type == INV_ICM20602)
-				*val = INV_ICM20602_TEMP_OFFSET;
-			else
-				*val = INV_MPU6050_TEMP_OFFSET;
-
+			*val = st->hw->temp.offset;
 			return IIO_VAL_INT;
 		default:
 			return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
@@ -101,6 +101,7 @@
  *  @reg:   register map of the chip.
  *  @config:    configuration of the chip.
  *  @fifo_size:	size of the FIFO in bytes.
+ *  @temp:	offset and scale to apply to raw temperature.
  */
 struct inv_mpu6050_hw {
 	u8 whoami;
@@ -108,6 +109,10 @@
 	const struct inv_mpu6050_reg_map *reg;
 	const struct inv_mpu6050_chip_config *config;
 	size_t fifo_size;
+	struct {
+		int offset;
+		int scale;
+	} temp;
 };
 
 /*
@@ -218,16 +223,19 @@
 #define INV_MPU6050_REG_UP_TIME_MIN          5000
 #define INV_MPU6050_REG_UP_TIME_MAX          10000
 
-#define INV_MPU6050_TEMP_OFFSET	             12421
-#define INV_MPU6050_TEMP_SCALE               2941
+#define INV_MPU6050_TEMP_OFFSET	             12420
+#define INV_MPU6050_TEMP_SCALE               2941176
 #define INV_MPU6050_MAX_GYRO_FS_PARAM        3
 #define INV_MPU6050_MAX_ACCL_FS_PARAM        3
 #define INV_MPU6050_THREE_AXIS               3
 #define INV_MPU6050_GYRO_CONFIG_FSR_SHIFT    3
 #define INV_MPU6050_ACCL_CONFIG_FSR_SHIFT    3
 
-#define INV_ICM20602_TEMP_OFFSET	     8170
-#define INV_ICM20602_TEMP_SCALE		     3060
+#define INV_MPU6500_TEMP_OFFSET              7011
+#define INV_MPU6500_TEMP_SCALE               2995178
+
+#define INV_ICM20608_TEMP_OFFSET	     8170
+#define INV_ICM20608_TEMP_SCALE		     3059976
 
 /* 6 + 6 round up and plus 8 */
 #define INV_MPU6050_OUTPUT_DATA_SIZE         24
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c
@@ -664,13 +664,29 @@
 static irqreturn_t st_lsm6dsx_handler_thread(int irq, void *private)
 {
 	struct st_lsm6dsx_hw *hw = private;
-	int count;
+	int fifo_len = 0, len;
 
-	mutex_lock(&hw->fifo_lock);
-	count = hw->settings->fifo_ops.read_fifo(hw);
-	mutex_unlock(&hw->fifo_lock);
+	/*
+	 * If we are using edge IRQs, new samples can arrive while
+	 * processing current interrupt since there are no hw
+	 * guarantees the irq line stays "low" long enough to properly
+	 * detect the new interrupt. In this case the new sample will
+	 * be missed.
+	 * Polling FIFO status register allow us to read new
+	 * samples even if the interrupt arrives while processing
+	 * previous data and the timeslot where the line is "low" is
+	 * too short to be properly detected.
+	 */
+	do {
+		mutex_lock(&hw->fifo_lock);
+		len = hw->settings->fifo_ops.read_fifo(hw);
+		mutex_unlock(&hw->fifo_lock);
 
-	return count ? IRQ_HANDLED : IRQ_NONE;
+		if (len > 0)
+			fifo_len += len;
+	} while (len > 0);
+
+	return fifo_len ? IRQ_HANDLED : IRQ_NONE;
 }
 
 static int st_lsm6dsx_buffer_preenable(struct iio_dev *iio_dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -152,9 +152,10 @@
 					.addr = 0x10,
 					.mask = GENMASK(4, 3),
 				},
-				.fs_avl[0] = {  IIO_DEGREE_TO_RAD(245), 0x0 },
-				.fs_avl[1] = {  IIO_DEGREE_TO_RAD(500), 0x1 },
-				.fs_avl[2] = { IIO_DEGREE_TO_RAD(2000), 0x3 },
+
+				.fs_avl[0] = {  IIO_DEGREE_TO_RAD(8750), 0x0 },
+				.fs_avl[1] = { IIO_DEGREE_TO_RAD(17500), 0x1 },
+				.fs_avl[2] = { IIO_DEGREE_TO_RAD(70000), 0x3 },
 				.fs_len = 3,
 			},
 		},
@@ -910,7 +911,8 @@
 
 	for (i = 0; i < ARRAY_SIZE(st_lsm6dsx_sensor_settings); i++) {
 		for (j = 0; j < ST_LSM6DSX_MAX_ID; j++) {
-			if (id == st_lsm6dsx_sensor_settings[i].id[j].hw_id)
+			if (st_lsm6dsx_sensor_settings[i].id[j].name &&
+			    id == st_lsm6dsx_sensor_settings[i].id[j].hw_id)
 				break;
 		}
 		if (j < ST_LSM6DSX_MAX_ID)
@@ -985,8 +987,7 @@
 		return -EINVAL;
 
 	*val = odr_table->odr_avl[i].val;
-
-	return 0;
+	return odr_table->odr_avl[i].hz;
 }
 
 static u16 st_lsm6dsx_check_odr_dependency(struct st_lsm6dsx_hw *hw, u16 odr,
@@ -1149,8 +1150,10 @@
 	case IIO_CHAN_INFO_SAMP_FREQ: {
 		u8 data;
 
-		err = st_lsm6dsx_check_odr(sensor, val, &data);
-		if (!err)
+		val = st_lsm6dsx_check_odr(sensor, val, &data);
+		if (val < 0)
+			err = val;
+		else
 			sensor->odr = val;
 		break;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/industrialio-buffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/industrialio-buffer.c
@@ -566,7 +566,7 @@
 				const unsigned long *mask, bool timestamp)
 {
 	unsigned bytes = 0;
-	int length, i;
+	int length, i, largest = 0;
 
 	/* How much space will the demuxed element take? */
 	for_each_set_bit(i, mask,
@@ -574,13 +574,17 @@
 		length = iio_storage_bytes_for_si(indio_dev, i);
 		bytes = ALIGN(bytes, length);
 		bytes += length;
+		largest = max(largest, length);
 	}
 
 	if (timestamp) {
 		length = iio_storage_bytes_for_timestamp(indio_dev);
 		bytes = ALIGN(bytes, length);
 		bytes += length;
+		largest = max(largest, length);
 	}
+
+	bytes = ALIGN(bytes, largest);
 	return bytes;
 }
 
@@ -841,12 +845,12 @@
 				       indio_dev->masklength,
 				       in_ind + 1);
 		while (in_ind != out_ind) {
-			in_ind = find_next_bit(indio_dev->active_scan_mask,
-					       indio_dev->masklength,
-					       in_ind + 1);
 			length = iio_storage_bytes_for_si(indio_dev, in_ind);
 			/* Make sure we are aligned */
 			in_loc = roundup(in_loc, length) + length;
+			in_ind = find_next_bit(indio_dev->active_scan_mask,
+					       indio_dev->masklength,
+					       in_ind + 1);
 		}
 		length = iio_storage_bytes_for_si(indio_dev, in_ind);
 		out_loc = roundup(out_loc, length);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/industrialio-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/industrialio-core.c
@@ -130,6 +130,8 @@
 	[IIO_MOD_PM2P5] = "pm2p5",
 	[IIO_MOD_PM4] = "pm4",
 	[IIO_MOD_PM10] = "pm10",
+	[IIO_MOD_ETHANOL] = "ethanol",
+	[IIO_MOD_H2] = "h2",
 };
 
 /* relies on pairs of these shared then separate */
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/Kconfig
@@ -485,6 +485,7 @@
 
 config VCNL4035
 	tristate "VCNL4035 combined ALS and proximity sensor"
+	select IIO_BUFFER
 	select IIO_TRIGGERED_BUFFER
 	select REGMAP_I2C
 	depends on I2C
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/bh1750.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/bh1750.c
@@ -59,9 +59,9 @@
 
 	u16 int_time_low_mask;
 	u16 int_time_high_mask;
-}
+};
 
-static const bh1750_chip_info_tbl[] = {
+static const struct bh1750_chip_info bh1750_chip_info_tbl[] = {
 	[BH1710] = { 140, 1022, 300, 400,  250000000, 2, 0x001F, 0x03E0 },
 	[BH1721] = { 140, 1020, 300, 400,  250000000, 2, 0x0010, 0x03E0 },
 	[BH1750] = { 31,  254,  69,  1740, 57500000,  1, 0x001F, 0x00E0 },
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/ltr501.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/ltr501.c
@@ -1242,13 +1242,16 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ltr501_data *data = iio_priv(indio_dev);
-	u16 buf[8];
+	struct {
+		u16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 	__le16 als_buf[2];
 	u8 mask = 0;
 	int j = 0;
 	int ret, psdata;
 
-	memset(buf, 0, sizeof(buf));
+	memset(&scan, 0, sizeof(scan));
 
 	/* figure out which data needs to be ready */
 	if (test_bit(0, indio_dev->active_scan_mask) ||
@@ -1267,9 +1270,9 @@
 		if (ret < 0)
 			return ret;
 		if (test_bit(0, indio_dev->active_scan_mask))
-			buf[j++] = le16_to_cpu(als_buf[1]);
+			scan.channels[j++] = le16_to_cpu(als_buf[1]);
 		if (test_bit(1, indio_dev->active_scan_mask))
-			buf[j++] = le16_to_cpu(als_buf[0]);
+			scan.channels[j++] = le16_to_cpu(als_buf[0]);
 	}
 
 	if (mask & LTR501_STATUS_PS_RDY) {
@@ -1277,10 +1280,10 @@
 				       &psdata, 2);
 		if (ret < 0)
 			goto done;
-		buf[j++] = psdata & LTR501_PS_DATA_MASK;
+		scan.channels[j++] = psdata & LTR501_PS_DATA_MASK;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 
 done:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/max44000.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/max44000.c
@@ -75,6 +75,11 @@
 struct max44000_data {
 	struct mutex lock;
 	struct regmap *regmap;
+	/* Ensure naturally aligned timestamp */
+	struct {
+		u16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* Default scale is set to the minimum of 0.03125 or 1 / (1 << 5) lux */
@@ -488,7 +493,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct max44000_data *data = iio_priv(indio_dev);
-	u16 buf[8]; /* 2x u16 + padding + 8 bytes timestamp */
 	int index = 0;
 	unsigned int regval;
 	int ret;
@@ -498,17 +502,17 @@
 		ret = max44000_read_alsval(data);
 		if (ret < 0)
 			goto out_unlock;
-		buf[index++] = ret;
+		data->scan.channels[index++] = ret;
 	}
 	if (test_bit(MAX44000_SCAN_INDEX_PRX, indio_dev->active_scan_mask)) {
 		ret = regmap_read(data->regmap, MAX44000_REG_PRX_DATA, &regval);
 		if (ret < 0)
 			goto out_unlock;
-		buf[index] = regval;
+		data->scan.channels[index] = regval;
 	}
 	mutex_unlock(&data->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 	iio_trigger_notify_done(indio_dev->trig);
 	return IRQ_HANDLED;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/rpr0521.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/rpr0521.c
@@ -194,6 +194,17 @@
 	bool pxs_need_dis;
 
 	struct regmap *regmap;
+
+	/*
+	 * Ensure correct naturally aligned timestamp.
+	 * Note that the read will put garbage data into
+	 * the padding but this should not be a problem
+	 */
+	struct {
+		__le16 channels[3];
+		u8 garbage;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static IIO_CONST_ATTR(in_intensity_scale_available, RPR0521_ALS_SCALE_AVAIL);
@@ -449,8 +460,6 @@
 	struct rpr0521_data *data = iio_priv(indio_dev);
 	int err;
 
-	u8 buffer[16]; /* 3 16-bit channels + padding + ts */
-
 	/* Use irq timestamp when reasonable. */
 	if (iio_trigger_using_own(indio_dev) && data->irq_timestamp) {
 		pf->timestamp = data->irq_timestamp;
@@ -461,11 +470,11 @@
 		pf->timestamp = iio_get_time_ns(indio_dev);
 
 	err = regmap_bulk_read(data->regmap, RPR0521_REG_PXS_DATA,
-		&buffer,
+		data->scan.channels,
 		(3 * 2) + 1);	/* 3 * 16-bit + (discarded) int clear reg. */
 	if (!err)
 		iio_push_to_buffers_with_timestamp(indio_dev,
-						   buffer, pf->timestamp);
+						   &data->scan, pf->timestamp);
 	else
 		dev_err(&data->client->dev,
 			"Trigger consumer can't read from sensor.\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/si1133.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/si1133.c
@@ -102,6 +102,9 @@
 #define SI1133_INPUT_FRACTION_LOW	15
 #define SI1133_LUX_OUTPUT_FRACTION	12
 #define SI1133_LUX_BUFFER_SIZE		9
+#define SI1133_MEASURE_BUFFER_SIZE	3
+
+#define SI1133_SIGN_BIT_INDEX 23
 
 static const int si1133_scale_available[] = {
 	1, 2, 4, 8, 16, 32, 64, 128};
@@ -234,13 +237,13 @@
 	}
 };
 
-static int si1133_calculate_polynomial_inner(u32 input, u8 fraction, u16 mag,
+static int si1133_calculate_polynomial_inner(s32 input, u8 fraction, u16 mag,
 					     s8 shift)
 {
 	return ((input << fraction) / mag) << shift;
 }
 
-static int si1133_calculate_output(u32 x, u32 y, u8 x_order, u8 y_order,
+static int si1133_calculate_output(s32 x, s32 y, u8 x_order, u8 y_order,
 				   u8 input_fraction, s8 sign,
 				   const struct si1133_coeff *coeffs)
 {
@@ -276,7 +279,7 @@
  * The algorithm is from:
  * https://siliconlabs.github.io/Gecko_SDK_Doc/efm32zg/html/si1133_8c_source.html#l00716
  */
-static int si1133_calc_polynomial(u32 x, u32 y, u8 input_fraction, u8 num_coeff,
+static int si1133_calc_polynomial(s32 x, s32 y, u8 input_fraction, u8 num_coeff,
 				  const struct si1133_coeff *coeffs)
 {
 	u8 x_order, y_order;
@@ -614,7 +617,7 @@
 {
 	int err;
 
-	__be16 resp;
+	u8 buffer[SI1133_MEASURE_BUFFER_SIZE];
 
 	err = si1133_set_adcmux(data, 0, chan->channel);
 	if (err)
@@ -625,12 +628,13 @@
 	if (err)
 		return err;
 
-	err = si1133_bulk_read(data, SI1133_REG_HOSTOUT(0), sizeof(resp),
-			       (u8 *)&resp);
+	err = si1133_bulk_read(data, SI1133_REG_HOSTOUT(0), sizeof(buffer),
+			       buffer);
 	if (err)
 		return err;
 
-	*val = be16_to_cpu(resp);
+	*val = sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
+			     SI1133_SIGN_BIT_INDEX);
 
 	return err;
 }
@@ -704,9 +708,9 @@
 {
 	int err;
 	int lux;
-	u32 high_vis;
-	u32 low_vis;
-	u32 ir;
+	s32 high_vis;
+	s32 low_vis;
+	s32 ir;
 	u8 buffer[SI1133_LUX_BUFFER_SIZE];
 
 	/* Activate lux channels */
@@ -719,9 +723,16 @@
 	if (err)
 		return err;
 
-	high_vis = (buffer[0] << 16) | (buffer[1] << 8) | buffer[2];
-	low_vis = (buffer[3] << 16) | (buffer[4] << 8) | buffer[5];
-	ir = (buffer[6] << 16) | (buffer[7] << 8) | buffer[8];
+	high_vis =
+		sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
+			      SI1133_SIGN_BIT_INDEX);
+
+	low_vis =
+		sign_extend32((buffer[3] << 16) | (buffer[4] << 8) | buffer[5],
+			      SI1133_SIGN_BIT_INDEX);
+
+	ir = sign_extend32((buffer[6] << 16) | (buffer[7] << 8) | buffer[8],
+			   SI1133_SIGN_BIT_INDEX);
 
 	if (high_vis > SI1133_ADC_THRESHOLD || ir > SI1133_ADC_THRESHOLD)
 		lux = si1133_calc_polynomial(high_vis, ir,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/si1145.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/si1145.c
@@ -169,6 +169,7 @@
  * @part_info:	Part information
  * @trig:	Pointer to iio trigger
  * @meas_rate:	Value of MEAS_RATE register. Only set in HW in auto mode
+ * @buffer:	Used to pack data read from sensor.
  */
 struct si1145_data {
 	struct i2c_client *client;
@@ -180,6 +181,14 @@
 	bool autonomous;
 	struct iio_trigger *trig;
 	int meas_rate;
+	/*
+	 * Ensure timestamp will be naturally aligned if present.
+	 * Maximum buffer size (may be only partly used if not all
+	 * channels are enabled):
+	 *   6*2 bytes channels data + 4 bytes alignment +
+	 *   8 bytes timestamp
+	 */
+	u8 buffer[24] __aligned(8);
 };
 
 /**
@@ -441,12 +450,6 @@
 	struct iio_poll_func *pf = private;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct si1145_data *data = iio_priv(indio_dev);
-	/*
-	 * Maximum buffer size:
-	 *   6*2 bytes channels data + 4 bytes alignment +
-	 *   8 bytes timestamp
-	 */
-	u8 buffer[24];
 	int i, j = 0;
 	int ret;
 	u8 irq_status = 0;
@@ -479,7 +482,7 @@
 
 		ret = i2c_smbus_read_i2c_block_data_or_emulated(
 				data->client, indio_dev->channels[i].address,
-				sizeof(u16) * run, &buffer[j]);
+				sizeof(u16) * run, &data->buffer[j]);
 		if (ret < 0)
 			goto done;
 		j += run * sizeof(u16);
@@ -494,7 +497,7 @@
 			goto done;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
 		iio_get_time_ns(indio_dev));
 
 done:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/st_uvis25.h
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/st_uvis25.h
@@ -27,6 +27,11 @@
 	struct iio_trigger *trig;
 	bool enabled;
 	int irq;
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u8 chan;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 extern const struct dev_pm_ops st_uvis25_pm_ops;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/st_uvis25_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/st_uvis25_core.c
@@ -234,17 +234,19 @@
 
 static irqreturn_t st_uvis25_buffer_handler_thread(int irq, void *p)
 {
-	u8 buffer[ALIGN(sizeof(u8), sizeof(s64)) + sizeof(s64)];
 	struct iio_poll_func *pf = p;
 	struct iio_dev *iio_dev = pf->indio_dev;
 	struct st_uvis25_hw *hw = iio_priv(iio_dev);
+	unsigned int val;
 	int err;
 
-	err = regmap_read(hw->regmap, ST_UVIS25_REG_OUT_ADDR, (int *)buffer);
+	err = regmap_read(hw->regmap, ST_UVIS25_REG_OUT_ADDR, &val);
 	if (err < 0)
 		goto out;
 
-	iio_push_to_buffers_with_timestamp(iio_dev, buffer,
+	hw->scan.chan = val;
+
+	iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan,
 					   iio_get_time_ns(iio_dev));
 
 out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/light/vcnl4000.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/light/vcnl4000.c
@@ -163,20 +163,22 @@
 	if (ret < 0)
 		return ret;
 
-	data->al_scale = 24000;
 	data->vcnl4200_al.reg = VCNL4200_AL_DATA;
 	data->vcnl4200_ps.reg = VCNL4200_PS_DATA;
 	switch (id) {
 	case VCNL4200_PROD_ID:
-		/* Integration time is 50ms, but the experiments */
-		/* show 54ms in total. */
-		data->vcnl4200_al.sampling_rate = ktime_set(0, 54000 * 1000);
-		data->vcnl4200_ps.sampling_rate = ktime_set(0, 4200 * 1000);
+		/* Default wait time is 50ms, add 20% tolerance. */
+		data->vcnl4200_al.sampling_rate = ktime_set(0, 60000 * 1000);
+		/* Default wait time is 4.8ms, add 20% tolerance. */
+		data->vcnl4200_ps.sampling_rate = ktime_set(0, 5760 * 1000);
+		data->al_scale = 24000;
 		break;
 	case VCNL4040_PROD_ID:
-		/* Integration time is 80ms, add 10ms. */
-		data->vcnl4200_al.sampling_rate = ktime_set(0, 100000 * 1000);
-		data->vcnl4200_ps.sampling_rate = ktime_set(0, 100000 * 1000);
+		/* Default wait time is 80ms, add 20% tolerance. */
+		data->vcnl4200_al.sampling_rate = ktime_set(0, 96000 * 1000);
+		/* Default wait time is 5ms, add 20% tolerance. */
+		data->vcnl4200_ps.sampling_rate = ktime_set(0, 6000 * 1000);
+		data->al_scale = 120000;
 		break;
 	}
 	data->vcnl4200_al.last_measurement = ktime_set(0, 0);
@@ -191,7 +193,6 @@
 				u8 rdy_mask, u8 data_reg, int *val)
 {
 	int tries = 20;
-	__be16 buf;
 	int ret;
 
 	mutex_lock(&data->vcnl4000_lock);
@@ -218,13 +219,12 @@
 		goto fail;
 	}
 
-	ret = i2c_smbus_read_i2c_block_data(data->client,
-		data_reg, sizeof(buf), (u8 *) &buf);
+	ret = i2c_smbus_read_word_swapped(data->client, data_reg);
 	if (ret < 0)
 		goto fail;
 
 	mutex_unlock(&data->vcnl4000_lock);
-	*val = be16_to_cpu(buf);
+	*val = ret;
 
 	return 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/magnetometer/ak8974.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/magnetometer/ak8974.c
@@ -185,6 +185,11 @@
 	bool drdy_irq;
 	struct completion drdy_complete;
 	bool drdy_active_low;
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static const char ak8974_reg_avdd[] = "avdd";
@@ -564,7 +569,7 @@
 		 * We read all axes and discard all but one, for optimized
 		 * reading, use the triggered buffer.
 		 */
-		*val = le16_to_cpu(hw_values[chan->address]);
+		*val = (s16)le16_to_cpu(hw_values[chan->address]);
 
 		ret = IIO_VAL_INT;
 	}
@@ -581,7 +586,6 @@
 {
 	struct ak8974 *ak8974 = iio_priv(indio_dev);
 	int ret;
-	__le16 hw_values[8]; /* Three axes + 64bit padding */
 
 	pm_runtime_get_sync(&ak8974->i2c->dev);
 	mutex_lock(&ak8974->lock);
@@ -591,13 +595,13 @@
 		dev_err(&ak8974->i2c->dev, "error triggering measure\n");
 		goto out_unlock;
 	}
-	ret = ak8974_getresult(ak8974, hw_values);
+	ret = ak8974_getresult(ak8974, ak8974->scan.channels);
 	if (ret) {
 		dev_err(&ak8974->i2c->dev, "error getting measures\n");
 		goto out_unlock;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, hw_values,
+	iio_push_to_buffers_with_timestamp(indio_dev, &ak8974->scan,
 					   iio_get_time_ns(indio_dev));
 
  out_unlock:
@@ -764,19 +768,21 @@
 	ak8974->map = devm_regmap_init_i2c(i2c, &ak8974_regmap_config);
 	if (IS_ERR(ak8974->map)) {
 		dev_err(&i2c->dev, "failed to allocate register map\n");
+		pm_runtime_put_noidle(&i2c->dev);
+		pm_runtime_disable(&i2c->dev);
 		return PTR_ERR(ak8974->map);
 	}
 
 	ret = ak8974_set_power(ak8974, AK8974_PWR_ON);
 	if (ret) {
 		dev_err(&i2c->dev, "could not power on\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
 	ret = ak8974_detect(ak8974);
 	if (ret) {
 		dev_err(&i2c->dev, "neither AK8974 nor AMI30x found\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
 	ret = ak8974_selftest(ak8974);
@@ -786,14 +792,9 @@
 	ret = ak8974_reset(ak8974);
 	if (ret) {
 		dev_err(&i2c->dev, "AK8974 reset failed\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
-	pm_runtime_set_autosuspend_delay(&i2c->dev,
-					 AK8974_AUTOSUSPEND_DELAY);
-	pm_runtime_use_autosuspend(&i2c->dev);
-	pm_runtime_put(&i2c->dev);
-
 	indio_dev->dev.parent = &i2c->dev;
 	indio_dev->channels = ak8974_channels;
 	indio_dev->num_channels = ARRAY_SIZE(ak8974_channels);
@@ -846,6 +847,11 @@
 		goto cleanup_buffer;
 	}
 
+	pm_runtime_set_autosuspend_delay(&i2c->dev,
+					 AK8974_AUTOSUSPEND_DELAY);
+	pm_runtime_use_autosuspend(&i2c->dev);
+	pm_runtime_put(&i2c->dev);
+
 	return 0;
 
 cleanup_buffer:
@@ -854,7 +860,6 @@
 	pm_runtime_put_noidle(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 	ak8974_set_power(ak8974, AK8974_PWR_OFF);
-power_off:
 	regulator_bulk_disable(ARRAY_SIZE(ak8974->regs), ak8974->regs);
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/magnetometer/ak8975.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/magnetometer/ak8975.c
@@ -368,6 +368,12 @@
 	struct iio_mount_matrix orientation;
 	struct regulator	*vdd;
 	struct regulator	*vid;
+
+	/* Ensure natural alignment of timestamp */
+	struct {
+		s16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* Enable attached power regulator if any. */
@@ -805,7 +811,6 @@
 	const struct i2c_client *client = data->client;
 	const struct ak_def *def = data->def;
 	int ret;
-	s16 buff[8]; /* 3 x 16 bits axis values + 1 aligned 64 bits timestamp */
 	__le16 fval[3];
 
 	mutex_lock(&data->lock);
@@ -828,12 +833,13 @@
 	mutex_unlock(&data->lock);
 
 	/* Clamp to valid range. */
-	buff[0] = clamp_t(s16, le16_to_cpu(fval[0]), -def->range, def->range);
-	buff[1] = clamp_t(s16, le16_to_cpu(fval[1]), -def->range, def->range);
-	buff[2] = clamp_t(s16, le16_to_cpu(fval[2]), -def->range, def->range);
+	data->scan.channels[0] = clamp_t(s16, le16_to_cpu(fval[0]), -def->range, def->range);
+	data->scan.channels[1] = clamp_t(s16, le16_to_cpu(fval[1]), -def->range, def->range);
+	data->scan.channels[2] = clamp_t(s16, le16_to_cpu(fval[2]), -def->range, def->range);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buff,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
+
 	return;
 
 unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/magnetometer/mag3110.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/magnetometer/mag3110.c
@@ -56,6 +56,12 @@
 	int sleep_val;
 	struct regulator *vdd_reg;
 	struct regulator *vddio_reg;
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__be16 channels[3];
+		u8 temperature;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static int mag3110_request(struct mag3110_data *data)
@@ -387,10 +393,9 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mag3110_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 3 16-bit channels + 1 byte temp + padding + ts */
 	int ret;
 
-	ret = mag3110_read(data, (__be16 *) buffer);
+	ret = mag3110_read(data, data->scan.channels);
 	if (ret < 0)
 		goto done;
 
@@ -399,10 +404,10 @@
 			MAG3110_DIE_TEMP);
 		if (ret < 0)
 			goto done;
-		buffer[6] = ret;
+		data->scan.temperature = ret;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 		iio_get_time_ns(indio_dev));
 
 done:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/pressure/bmp280-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/pressure/bmp280-core.c
@@ -264,6 +264,8 @@
 		+ (s32)2097152) * calib->H2 + 8192) >> 14);
 	var -= ((((var >> 15) * (var >> 15)) >> 7) * (s32)calib->H1) >> 4;
 
+	var = clamp_val(var, 0, 419430400);
+
 	return var >> 12;
 };
 
@@ -706,7 +708,7 @@
 	unsigned int ctrl;
 
 	if (data->use_eoc)
-		init_completion(&data->done);
+		reinit_completion(&data->done);
 
 	ret = regmap_write(data->regmap, BMP280_REG_CTRL_MEAS, ctrl_meas);
 	if (ret)
@@ -962,6 +964,9 @@
 			"trying to enforce it\n");
 		irq_trig = IRQF_TRIGGER_RISING;
 	}
+
+	init_completion(&data->done);
+
 	ret = devm_request_threaded_irq(dev,
 			irq,
 			bmp085_eoc_irq,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/pressure/cros_ec_baro.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/pressure/cros_ec_baro.c
@@ -114,6 +114,7 @@
 static const struct iio_info cros_ec_baro_info = {
 	.read_raw = &cros_ec_baro_read,
 	.write_raw = &cros_ec_baro_write,
+	.read_avail = &cros_ec_sensors_core_read_avail,
 };
 
 static int cros_ec_baro_probe(struct platform_device *pdev)
@@ -149,6 +150,8 @@
 		BIT(IIO_CHAN_INFO_SCALE) |
 		BIT(IIO_CHAN_INFO_SAMP_FREQ) |
 		BIT(IIO_CHAN_INFO_FREQUENCY);
+	channel->info_mask_shared_by_all_available =
+		BIT(IIO_CHAN_INFO_SAMP_FREQ);
 	channel->scan_type.realbits = CROS_EC_SENSOR_BITS;
 	channel->scan_type.storagebits = CROS_EC_SENSOR_BITS;
 	channel->scan_type.shift = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/pressure/mpl3115.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/pressure/mpl3115.c
@@ -144,7 +144,14 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mpl3115_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 32-bit channel + 16-bit channel + padding + ts */
+	/*
+	 * 32-bit channel + 16-bit channel + padding + ts
+	 * Note that it is possible for only one of the first 2
+	 * channels to be enabled. If that happens, the first element
+	 * of the buffer may be either 16 or 32-bits.  As such we cannot
+	 * use a simple structure definition to express this data layout.
+	 */
+	u8 buffer[16] __aligned(8);
 	int ret, pos = 0;
 
 	mutex_lock(&data->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/pressure/ms5611_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/pressure/ms5611_core.c
@@ -212,16 +212,21 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ms5611_state *st = iio_priv(indio_dev);
-	s32 buf[4]; /* s32 (pressure) + s32 (temp) + 2 * s32 (timestamp) */
+	/* Ensure buffer elements are naturally aligned */
+	struct {
+		s32 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 	int ret;
 
 	mutex_lock(&st->lock);
-	ret = ms5611_read_temp_and_pressure(indio_dev, &buf[1], &buf[0]);
+	ret = ms5611_read_temp_and_pressure(indio_dev, &scan.channels[1],
+					    &scan.channels[0]);
 	mutex_unlock(&st->lock);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 
 err:
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/pressure/zpa2326.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/pressure/zpa2326.c
@@ -664,8 +664,10 @@
 	int err;
 
 	err = pm_runtime_get_sync(indio_dev->dev.parent);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put(indio_dev->dev.parent);
 		return err;
+	}
 
 	if (err > 0) {
 		/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/proximity/mb1232.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/proximity/mb1232.c
@@ -40,6 +40,11 @@
 	 */
 	struct completion	ranging;
 	int			irqnr;
+	/* Ensure correct alignment of data to push to IIO buffer */
+	struct {
+		s16 distance;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static irqreturn_t mb1232_handle_irq(int irq, void *dev_id)
@@ -113,17 +118,13 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mb1232_data *data = iio_priv(indio_dev);
-	/*
-	 * triggered buffer
-	 * 16-bit channel + 48-bit padding + 64-bit timestamp
-	 */
-	s16 buffer[8] = { 0 };
 
-	buffer[0] = mb1232_read_distance(data);
-	if (buffer[0] < 0)
+	data->scan.distance = mb1232_read_distance(data);
+	if (data->scan.distance < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
+					   pf->timestamp);
 
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/temperature/max31856.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/temperature/max31856.c
@@ -284,6 +284,8 @@
 	spi_set_drvdata(spi, indio_dev);
 
 	indio_dev->info = &max31856_info;
+	indio_dev->dev.parent = &spi->dev;
+	indio_dev->dev.of_node = spi->dev.of_node;
 	indio_dev->name = id->name;
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->channels = max31856_channels;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/trigger/iio-trig-hrtimer.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/trigger/iio-trig-hrtimer.c
@@ -102,7 +102,7 @@
 
 	if (state)
 		hrtimer_start(&trig_info->timer, trig_info->period,
-			      HRTIMER_MODE_REL);
+			      HRTIMER_MODE_REL_HARD);
 	else
 		hrtimer_cancel(&trig_info->timer);
 
@@ -132,7 +132,7 @@
 	trig_info->swt.trigger->ops = &iio_hrtimer_trigger_ops;
 	trig_info->swt.trigger->dev.groups = iio_hrtimer_attr_groups;
 
-	hrtimer_init(&trig_info->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	hrtimer_init(&trig_info->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 	trig_info->timer.function = iio_hrtimer_trig_handler;
 
 	trig_info->sampling_frequency = HRTIMER_DEFAULT_SAMPLING_FREQUENCY;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iio/trigger/stm32-timer-trigger.c
+++ linux-gkeop-5.4-5.4.0/drivers/iio/trigger/stm32-timer-trigger.c
@@ -161,7 +161,8 @@
 	return 0;
 }
 
-static void stm32_timer_stop(struct stm32_timer_trigger *priv)
+static void stm32_timer_stop(struct stm32_timer_trigger *priv,
+			     struct iio_trigger *trig)
 {
 	u32 ccer, cr1;
 
@@ -179,6 +180,12 @@
 	regmap_write(priv->regmap, TIM_PSC, 0);
 	regmap_write(priv->regmap, TIM_ARR, 0);
 
+	/* Force disable master mode */
+	if (stm32_timer_is_trgo2_name(trig->name))
+		regmap_update_bits(priv->regmap, TIM_CR2, TIM_CR2_MMS2, 0);
+	else
+		regmap_update_bits(priv->regmap, TIM_CR2, TIM_CR2_MMS, 0);
+
 	/* Make sure that registers are updated */
 	regmap_update_bits(priv->regmap, TIM_EGR, TIM_EGR_UG, TIM_EGR_UG);
 }
@@ -197,7 +204,7 @@
 		return ret;
 
 	if (freq == 0) {
-		stm32_timer_stop(priv);
+		stm32_timer_stop(priv, trig);
 	} else {
 		ret = stm32_timer_start(priv, trig, freq);
 		if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/Kconfig
@@ -80,6 +80,9 @@
 	  This allows the user to config the default GID type that the CM
 	  uses for each device, when initiaing new connections.
 
+config INFINIBAND_VIRT_DMA
+	def_bool !HIGHMEM
+
 if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
 source "drivers/infiniband/hw/mthca/Kconfig"
 source "drivers/infiniband/hw/qib/Kconfig"
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/Makefile
@@ -11,7 +11,7 @@
 				device.o fmr_pool.o cache.o netlink.o \
 				roce_gid_mgmt.o mr_pool.o addr.o sa_query.o \
 				multicast.o mad.o smi.o agent.o mad_rmpp.o \
-				nldev.o restrack.o counters.o
+				nldev.o restrack.o counters.o ib_core_uverbs.o
 
 ib_core-$(CONFIG_SECURITY_INFINIBAND) += security.o
 ib_core-$(CONFIG_CGROUP_RDMA) += cgroup.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/addr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/addr.c
@@ -139,7 +139,7 @@
 	if (ib_nl_is_good_ip_resp(nlh))
 		ib_nl_process_good_ip_rsep(nlh);
 
-	return skb->len;
+	return 0;
 }
 
 static int ib_nl_ip_send_msg(struct rdma_dev_addr *dev_addr,
@@ -421,16 +421,15 @@
 				(const struct sockaddr_in6 *)dst_sock;
 	struct flowi6 fl6;
 	struct dst_entry *dst;
-	int ret;
 
 	memset(&fl6, 0, sizeof fl6);
 	fl6.daddr = dst_in->sin6_addr;
 	fl6.saddr = src_in->sin6_addr;
 	fl6.flowi6_oif = addr->bound_dev_if;
 
-	ret = ipv6_stub->ipv6_dst_lookup(addr->net, NULL, &dst, &fl6);
-	if (ret < 0)
-		return ret;
+	dst = ipv6_stub->ipv6_dst_lookup_flow(addr->net, NULL, &fl6, NULL);
+	if (IS_ERR(dst))
+		return PTR_ERR(dst);
 
 	if (ipv6_addr_any(&src_in->sin6_addr))
 		src_in->sin6_addr = fl6.saddr;
@@ -646,13 +645,12 @@
 	req->callback = NULL;
 
 	spin_lock_bh(&lock);
+	/*
+	 * Although the work will normally have been canceled by the workqueue,
+	 * it can still be requeued as long as it is on the req_list.
+	 */
+	cancel_delayed_work(&req->work);
 	if (!list_empty(&req->list)) {
-		/*
-		 * Although the work will normally have been canceled by the
-		 * workqueue, it can still be requeued as long as it is on the
-		 * req_list.
-		 */
-		cancel_delayed_work(&req->work);
 		list_del_init(&req->list);
 		kfree(req);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/cache.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/cache.c
@@ -51,9 +51,8 @@
 
 struct ib_update_work {
 	struct work_struct work;
-	struct ib_device  *device;
-	u8                 port_num;
-	bool		   enforce_security;
+	struct ib_event event;
+	bool enforce_security;
 };
 
 union ib_gid zgid;
@@ -130,7 +129,7 @@
 	event.element.port_num	= port;
 	event.event		= IB_EVENT_GID_CHANGE;
 
-	ib_dispatch_event(&event);
+	ib_dispatch_event_clients(&event);
 }
 
 static const char * const gid_type_str[] = {
@@ -1387,9 +1386,8 @@
 	return ret;
 }
 
-static void ib_cache_update(struct ib_device *device,
-			    u8                port,
-			    bool	      enforce_security)
+static int
+ib_cache_update(struct ib_device *device, u8 port, bool enforce_security)
 {
 	struct ib_port_attr       *tprops = NULL;
 	struct ib_pkey_cache      *pkey_cache = NULL, *old_pkey_cache;
@@ -1397,11 +1395,11 @@
 	int                        ret;
 
 	if (!rdma_is_port_valid(device, port))
-		return;
+		return -EINVAL;
 
 	tprops = kmalloc(sizeof *tprops, GFP_KERNEL);
 	if (!tprops)
-		return;
+		return -ENOMEM;
 
 	ret = ib_query_port(device, port, tprops);
 	if (ret) {
@@ -1419,8 +1417,10 @@
 	pkey_cache = kmalloc(struct_size(pkey_cache, table,
 					 tprops->pkey_tbl_len),
 			     GFP_KERNEL);
-	if (!pkey_cache)
+	if (!pkey_cache) {
+		ret = -ENOMEM;
 		goto err;
+	}
 
 	pkey_cache->table_len = tprops->pkey_tbl_len;
 
@@ -1452,50 +1452,84 @@
 
 	kfree(old_pkey_cache);
 	kfree(tprops);
-	return;
+	return 0;
 
 err:
 	kfree(pkey_cache);
 	kfree(tprops);
+	return ret;
 }
 
-static void ib_cache_task(struct work_struct *_work)
+static void ib_cache_event_task(struct work_struct *_work)
 {
 	struct ib_update_work *work =
 		container_of(_work, struct ib_update_work, work);
+	int ret;
+
+	/* Before distributing the cache update event, first sync
+	 * the cache.
+	 */
+	ret = ib_cache_update(work->event.device, work->event.element.port_num,
+			      work->enforce_security);
+
+	/* GID event is notified already for individual GID entries by
+	 * dispatch_gid_change_event(). Hence, notifiy for rest of the
+	 * events.
+	 */
+	if (!ret && work->event.event != IB_EVENT_GID_CHANGE)
+		ib_dispatch_event_clients(&work->event);
 
-	ib_cache_update(work->device,
-			work->port_num,
-			work->enforce_security);
 	kfree(work);
 }
 
-static void ib_cache_event(struct ib_event_handler *handler,
-			   struct ib_event *event)
+static void ib_generic_event_task(struct work_struct *_work)
+{
+	struct ib_update_work *work =
+		container_of(_work, struct ib_update_work, work);
+
+	ib_dispatch_event_clients(&work->event);
+	kfree(work);
+}
+
+static bool is_cache_update_event(const struct ib_event *event)
+{
+	return (event->event == IB_EVENT_PORT_ERR    ||
+		event->event == IB_EVENT_PORT_ACTIVE ||
+		event->event == IB_EVENT_LID_CHANGE  ||
+		event->event == IB_EVENT_PKEY_CHANGE ||
+		event->event == IB_EVENT_CLIENT_REREGISTER ||
+		event->event == IB_EVENT_GID_CHANGE);
+}
+
+/**
+ * ib_dispatch_event - Dispatch an asynchronous event
+ * @event:Event to dispatch
+ *
+ * Low-level drivers must call ib_dispatch_event() to dispatch the
+ * event to all registered event handlers when an asynchronous event
+ * occurs.
+ */
+void ib_dispatch_event(const struct ib_event *event)
 {
 	struct ib_update_work *work;
 
-	if (event->event == IB_EVENT_PORT_ERR    ||
-	    event->event == IB_EVENT_PORT_ACTIVE ||
-	    event->event == IB_EVENT_LID_CHANGE  ||
-	    event->event == IB_EVENT_PKEY_CHANGE ||
-	    event->event == IB_EVENT_CLIENT_REREGISTER ||
-	    event->event == IB_EVENT_GID_CHANGE) {
-		work = kmalloc(sizeof *work, GFP_ATOMIC);
-		if (work) {
-			INIT_WORK(&work->work, ib_cache_task);
-			work->device   = event->device;
-			work->port_num = event->element.port_num;
-			if (event->event == IB_EVENT_PKEY_CHANGE ||
-			    event->event == IB_EVENT_GID_CHANGE)
-				work->enforce_security = true;
-			else
-				work->enforce_security = false;
+	work = kzalloc(sizeof(*work), GFP_ATOMIC);
+	if (!work)
+		return;
 
-			queue_work(ib_wq, &work->work);
-		}
-	}
+	if (is_cache_update_event(event))
+		INIT_WORK(&work->work, ib_cache_event_task);
+	else
+		INIT_WORK(&work->work, ib_generic_event_task);
+
+	work->event = *event;
+	if (event->event == IB_EVENT_PKEY_CHANGE ||
+	    event->event == IB_EVENT_GID_CHANGE)
+		work->enforce_security = true;
+
+	queue_work(ib_wq, &work->work);
 }
+EXPORT_SYMBOL(ib_dispatch_event);
 
 int ib_cache_setup_one(struct ib_device *device)
 {
@@ -1508,12 +1542,12 @@
 	if (err)
 		return err;
 
-	rdma_for_each_port (device, p)
-		ib_cache_update(device, p, true);
+	rdma_for_each_port (device, p) {
+		err = ib_cache_update(device, p, true);
+		if (err)
+			return err;
+	}
 
-	INIT_IB_EVENT_HANDLER(&device->cache.event_handler,
-			      device, ib_cache_event);
-	ib_register_event_handler(&device->cache.event_handler);
 	return 0;
 }
 
@@ -1535,14 +1569,12 @@
 
 void ib_cache_cleanup_one(struct ib_device *device)
 {
-	/* The cleanup function unregisters the event handler,
-	 * waits for all in-progress workqueue elements and cleans
-	 * up the GID cache. This function should be called after
-	 * the device was removed from the devices list and all
-	 * clients were removed, so the cache exists but is
+	/* The cleanup function waits for all in-progress workqueue
+	 * elements and cleans up the GID cache. This function should be
+	 * called after the device was removed from the devices list and
+	 * all clients were removed, so the cache exists but is
 	 * non-functional and shouldn't be updated anymore.
 	 */
-	ib_unregister_event_handler(&device->cache.event_handler);
 	flush_workqueue(ib_wq);
 	gid_table_cleanup_one(device);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/cm.c
@@ -597,18 +597,6 @@
 	return 0;
 }
 
-static int cm_alloc_id(struct cm_id_private *cm_id_priv)
-{
-	int err;
-	u32 id;
-
-	err = xa_alloc_cyclic_irq(&cm.local_id_table, &id, cm_id_priv,
-			xa_limit_32b, &cm.local_id_next, GFP_KERNEL);
-
-	cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
-	return err;
-}
-
 static u32 cm_local_id(__be32 local_id)
 {
 	return (__force u32) (local_id ^ cm.random_id_operand);
@@ -862,6 +850,7 @@
 				 void *context)
 {
 	struct cm_id_private *cm_id_priv;
+	u32 id;
 	int ret;
 
 	cm_id_priv = kzalloc(sizeof *cm_id_priv, GFP_KERNEL);
@@ -873,9 +862,6 @@
 	cm_id_priv->id.cm_handler = cm_handler;
 	cm_id_priv->id.context = context;
 	cm_id_priv->id.remote_cm_qpn = 1;
-	ret = cm_alloc_id(cm_id_priv);
-	if (ret)
-		goto error;
 
 	spin_lock_init(&cm_id_priv->lock);
 	init_completion(&cm_id_priv->comp);
@@ -884,11 +870,20 @@
 	INIT_LIST_HEAD(&cm_id_priv->altr_list);
 	atomic_set(&cm_id_priv->work_count, -1);
 	atomic_set(&cm_id_priv->refcount, 1);
+
+	ret = xa_alloc_cyclic_irq(&cm.local_id_table, &id, NULL, xa_limit_32b,
+				  &cm.local_id_next, GFP_KERNEL);
+	if (ret < 0)
+		goto error;
+	cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
+	xa_store_irq(&cm.local_id_table, cm_local_id(cm_id_priv->id.local_id),
+		     cm_id_priv, GFP_KERNEL);
+
 	return &cm_id_priv->id;
 
 error:
 	kfree(cm_id_priv);
-	return ERR_PTR(-ENOMEM);
+	return ERR_PTR(ret);
 }
 EXPORT_SYMBOL(ib_create_cm_id);
 
@@ -1097,14 +1092,22 @@
 		break;
 	}
 
-	spin_lock_irq(&cm.lock);
+	spin_lock_irq(&cm_id_priv->lock);
+	spin_lock(&cm.lock);
+	/* Required for cleanup paths related cm_req_handler() */
+	if (cm_id_priv->timewait_info) {
+		cm_cleanup_timewait(cm_id_priv->timewait_info);
+		kfree(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
+	}
 	if (!list_empty(&cm_id_priv->altr_list) &&
 	    (!cm_id_priv->altr_send_port_not_ready))
 		list_del(&cm_id_priv->altr_list);
 	if (!list_empty(&cm_id_priv->prim_list) &&
 	    (!cm_id_priv->prim_send_port_not_ready))
 		list_del(&cm_id_priv->prim_list);
-	spin_unlock_irq(&cm.lock);
+	spin_unlock(&cm.lock);
+	spin_unlock_irq(&cm_id_priv->lock);
 
 	cm_free_id(cm_id->local_id);
 	cm_deref_id(cm_id_priv);
@@ -1228,6 +1231,7 @@
 			/* Sharing an ib_cm_id with different handlers is not
 			 * supported */
 			spin_unlock_irqrestore(&cm.lock, flags);
+			ib_destroy_cm_id(cm_id);
 			return ERR_PTR(-EINVAL);
 		}
 		atomic_inc(&cm_id_priv->refcount);
@@ -1420,7 +1424,7 @@
 	/* Verify that we're not in timewait. */
 	cm_id_priv = container_of(cm_id, struct cm_id_private, id);
 	spin_lock_irqsave(&cm_id_priv->lock, flags);
-	if (cm_id->state != IB_CM_IDLE) {
+	if (cm_id->state != IB_CM_IDLE || WARN_ON(cm_id_priv->timewait_info)) {
 		spin_unlock_irqrestore(&cm_id_priv->lock, flags);
 		ret = -EINVAL;
 		goto out;
@@ -1431,6 +1435,7 @@
 							    id.local_id);
 	if (IS_ERR(cm_id_priv->timewait_info)) {
 		ret = PTR_ERR(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
 		goto out;
 	}
 
@@ -1438,12 +1443,12 @@
 				 param->ppath_sgid_attr, &cm_id_priv->av,
 				 cm_id_priv);
 	if (ret)
-		goto error1;
+		goto out;
 	if (param->alternate_path) {
 		ret = cm_init_av_by_path(param->alternate_path, NULL,
 					 &cm_id_priv->alt_av, cm_id_priv);
 		if (ret)
-			goto error1;
+			goto out;
 	}
 	cm_id->service_id = param->service_id;
 	cm_id->service_mask = ~cpu_to_be64(0);
@@ -1461,7 +1466,7 @@
 
 	ret = cm_alloc_msg(cm_id_priv, &cm_id_priv->msg);
 	if (ret)
-		goto error1;
+		goto out;
 
 	req_msg = (struct cm_req_msg *) cm_id_priv->msg->mad;
 	cm_format_req(req_msg, cm_id_priv, param);
@@ -1484,7 +1489,6 @@
 	return 0;
 
 error2:	cm_free_msg(cm_id_priv->msg);
-error1:	kfree(cm_id_priv->timewait_info);
 out:	return ret;
 }
 EXPORT_SYMBOL(ib_send_cm_req);
@@ -1958,6 +1962,7 @@
 							    id.local_id);
 	if (IS_ERR(cm_id_priv->timewait_info)) {
 		ret = PTR_ERR(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
 		goto destroy;
 	}
 	cm_id_priv->timewait_info->work.remote_id = req_msg->local_comm_id;
@@ -1969,7 +1974,7 @@
 		pr_debug("%s: local_id %d, no listen_cm_id_priv\n", __func__,
 			 be32_to_cpu(cm_id->local_id));
 		ret = -EINVAL;
-		goto free_timeinfo;
+		goto destroy;
 	}
 
 	cm_id_priv->id.cm_handler = listen_cm_id_priv->id.cm_handler;
@@ -2054,8 +2059,6 @@
 rejected:
 	atomic_dec(&cm_id_priv->refcount);
 	cm_deref_id(listen_cm_id_priv);
-free_timeinfo:
-	kfree(cm_id_priv->timewait_info);
 destroy:
 	ib_destroy_cm_id(cm_id);
 	return ret;
@@ -4333,7 +4336,7 @@
 	unsigned long flags;
 	int ret;
 	int count = 0;
-	u8 i;
+	unsigned int i;
 
 	cm_dev = kzalloc(struct_size(cm_dev, port, ib_device->phys_port_cnt),
 			 GFP_KERNEL);
@@ -4345,7 +4348,7 @@
 	cm_dev->going_down = 0;
 
 	set_bit(IB_MGMT_METHOD_SEND, reg_req.method_mask);
-	for (i = 1; i <= ib_device->phys_port_cnt; i++) {
+	rdma_for_each_port (ib_device, i) {
 		if (!rdma_cap_ib_cm(ib_device, i))
 			continue;
 
@@ -4424,7 +4427,7 @@
 		.clr_port_cap_mask = IB_PORT_CM_SUP
 	};
 	unsigned long flags;
-	int i;
+	unsigned int i;
 
 	if (!cm_dev)
 		return;
@@ -4437,7 +4440,7 @@
 	cm_dev->going_down = 1;
 	spin_unlock_irq(&cm.lock);
 
-	for (i = 1; i <= ib_device->phys_port_cnt; i++) {
+	rdma_for_each_port (ib_device, i) {
 		if (!rdma_cap_ib_cm(ib_device, i))
 			continue;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/cma.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/cma.c
@@ -530,6 +530,10 @@
 	list_del(&id_priv->list);
 	cma_deref_dev(id_priv->cma_dev);
 	id_priv->cma_dev = NULL;
+	if (id_priv->id.route.addr.dev_addr.sgid_attr) {
+		rdma_put_gid_attr(id_priv->id.route.addr.dev_addr.sgid_attr);
+		id_priv->id.route.addr.dev_addr.sgid_attr = NULL;
+	}
 	mutex_unlock(&lock);
 }
 
@@ -1631,6 +1635,8 @@
 {
 	struct rdma_id_private *id_priv, *id_priv_dev;
 
+	lockdep_assert_held(&lock);
+
 	if (!bind_list)
 		return ERR_PTR(-EINVAL);
 
@@ -1677,6 +1683,7 @@
 		}
 	}
 
+	mutex_lock(&lock);
 	/*
 	 * Net namespace might be getting deleted while route lookup,
 	 * cm_id lookup is in progress. Therefore, perform netdevice
@@ -1718,6 +1725,7 @@
 	id_priv = cma_find_listener(bind_list, cm_id, ib_event, req, *net_dev);
 err:
 	rcu_read_unlock();
+	mutex_unlock(&lock);
 	if (IS_ERR(id_priv) && *net_dev) {
 		dev_put(*net_dev);
 		*net_dev = NULL;
@@ -1799,19 +1807,30 @@
 	mutex_unlock(&lock);
 }
 
-static void cma_leave_roce_mc_group(struct rdma_id_private *id_priv,
-				    struct cma_multicast *mc)
+static void destroy_mc(struct rdma_id_private *id_priv,
+		       struct cma_multicast *mc)
 {
-	struct rdma_dev_addr *dev_addr = &id_priv->id.route.addr.dev_addr;
-	struct net_device *ndev = NULL;
+	if (rdma_cap_ib_mcast(id_priv->id.device, id_priv->id.port_num)) {
+		ib_sa_free_multicast(mc->multicast.ib);
+		kfree(mc);
+		return;
+	}
 
-	if (dev_addr->bound_dev_if)
-		ndev = dev_get_by_index(dev_addr->net, dev_addr->bound_dev_if);
-	if (ndev) {
-		cma_igmp_send(ndev, &mc->multicast.ib->rec.mgid, false);
-		dev_put(ndev);
+	if (rdma_protocol_roce(id_priv->id.device,
+				      id_priv->id.port_num)) {
+		struct rdma_dev_addr *dev_addr =
+			&id_priv->id.route.addr.dev_addr;
+		struct net_device *ndev = NULL;
+
+		if (dev_addr->bound_dev_if)
+			ndev = dev_get_by_index(dev_addr->net,
+						dev_addr->bound_dev_if);
+		if (ndev) {
+			cma_igmp_send(ndev, &mc->multicast.ib->rec.mgid, false);
+			dev_put(ndev);
+		}
+		kref_put(&mc->mcref, release_mc);
 	}
-	kref_put(&mc->mcref, release_mc);
 }
 
 static void cma_leave_mc_groups(struct rdma_id_private *id_priv)
@@ -1819,16 +1838,10 @@
 	struct cma_multicast *mc;
 
 	while (!list_empty(&id_priv->mc_list)) {
-		mc = container_of(id_priv->mc_list.next,
-				  struct cma_multicast, list);
+		mc = list_first_entry(&id_priv->mc_list, struct cma_multicast,
+				      list);
 		list_del(&mc->list);
-		if (rdma_cap_ib_mcast(id_priv->cma_dev->device,
-				      id_priv->id.port_num)) {
-			ib_sa_free_multicast(mc->multicast.ib);
-			kfree(mc);
-		} else {
-			cma_leave_roce_mc_group(id_priv, mc);
-		}
+		destroy_mc(id_priv, mc);
 	}
 }
 
@@ -1870,9 +1883,6 @@
 
 	kfree(id_priv->id.route.path_rec);
 
-	if (id_priv->id.route.addr.dev_addr.sgid_attr)
-		rdma_put_gid_attr(id_priv->id.route.addr.dev_addr.sgid_attr);
-
 	put_net(id_priv->id.route.addr.dev_addr.net);
 	kfree(id_priv);
 }
@@ -2473,6 +2483,8 @@
 	struct net *net = id_priv->id.route.addr.dev_addr.net;
 	int ret;
 
+	lockdep_assert_held(&lock);
+
 	if (cma_family(id_priv) == AF_IB && !rdma_cap_ib_cm(cma_dev->device, 1))
 		return;
 
@@ -2911,6 +2923,7 @@
 err2:
 	kfree(route->path_rec);
 	route->path_rec = NULL;
+	route->num_paths = 0;
 err1:
 	kfree(work);
 	return ret;
@@ -3091,6 +3104,7 @@
 	rdma_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid);
 	rdma_addr_set_dgid(&id_priv->id.route.addr.dev_addr, &gid);
 
+	atomic_inc(&id_priv->refcount);
 	cma_init_resolve_addr_work(work, id_priv);
 	queue_work(cma_wq, &work->work);
 	return 0;
@@ -3117,6 +3131,7 @@
 	rdma_addr_set_dgid(&id_priv->id.route.addr.dev_addr, (union ib_gid *)
 		&(((struct sockaddr_ib *) &id_priv->id.route.addr.dst_addr)->sib_addr));
 
+	atomic_inc(&id_priv->refcount);
 	cma_init_resolve_addr_work(work, id_priv);
 	queue_work(cma_wq, &work->work);
 	return 0;
@@ -3153,19 +3168,26 @@
 	int ret;
 
 	id_priv = container_of(id, struct rdma_id_private, id);
+	memcpy(cma_dst_addr(id_priv), dst_addr, rdma_addr_size(dst_addr));
 	if (id_priv->state == RDMA_CM_IDLE) {
 		ret = cma_bind_addr(id, src_addr, dst_addr);
-		if (ret)
+		if (ret) {
+			memset(cma_dst_addr(id_priv), 0,
+			       rdma_addr_size(dst_addr));
 			return ret;
+		}
 	}
 
-	if (cma_family(id_priv) != dst_addr->sa_family)
+	if (cma_family(id_priv) != dst_addr->sa_family) {
+		memset(cma_dst_addr(id_priv), 0, rdma_addr_size(dst_addr));
 		return -EINVAL;
+	}
 
-	if (!cma_comp_exch(id_priv, RDMA_CM_ADDR_BOUND, RDMA_CM_ADDR_QUERY))
+	if (!cma_comp_exch(id_priv, RDMA_CM_ADDR_BOUND, RDMA_CM_ADDR_QUERY)) {
+		memset(cma_dst_addr(id_priv), 0, rdma_addr_size(dst_addr));
 		return -EINVAL;
+	}
 
-	memcpy(cma_dst_addr(id_priv), dst_addr, rdma_addr_size(dst_addr));
 	if (cma_any_addr(dst_addr)) {
 		ret = cma_resolve_loopback(id_priv);
 	} else {
@@ -3235,6 +3257,8 @@
 	u64 sid, mask;
 	__be16 port;
 
+	lockdep_assert_held(&lock);
+
 	addr = cma_src_addr(id_priv);
 	port = htons(bind_list->port);
 
@@ -3263,6 +3287,8 @@
 	struct rdma_bind_list *bind_list;
 	int ret;
 
+	lockdep_assert_held(&lock);
+
 	bind_list = kzalloc(sizeof *bind_list, GFP_KERNEL);
 	if (!bind_list)
 		return -ENOMEM;
@@ -3289,6 +3315,8 @@
 	struct sockaddr  *saddr = cma_src_addr(id_priv);
 	__be16 dport = cma_port(daddr);
 
+	lockdep_assert_held(&lock);
+
 	hlist_for_each_entry(cur_id, &bind_list->owners, node) {
 		struct sockaddr  *cur_daddr = cma_dst_addr(cur_id);
 		struct sockaddr  *cur_saddr = cma_src_addr(cur_id);
@@ -3328,6 +3356,8 @@
 	unsigned int rover;
 	struct net *net = id_priv->id.route.addr.dev_addr.net;
 
+	lockdep_assert_held(&lock);
+
 	inet_get_local_port_range(net, &low, &high);
 	remaining = (high - low) + 1;
 	rover = prandom_u32() % remaining + low;
@@ -3375,6 +3405,8 @@
 	struct rdma_id_private *cur_id;
 	struct sockaddr *addr, *cur_addr;
 
+	lockdep_assert_held(&lock);
+
 	addr = cma_src_addr(id_priv);
 	hlist_for_each_entry(cur_id, &bind_list->owners, node) {
 		if (id_priv == cur_id)
@@ -3405,6 +3437,8 @@
 	unsigned short snum;
 	int ret;
 
+	lockdep_assert_held(&lock);
+
 	snum = ntohs(cma_port(cma_src_addr(id_priv)));
 	if (snum < PROT_SOCK && !capable(CAP_NET_BIND_SERVICE))
 		return -EACCES;
@@ -4154,16 +4188,6 @@
 	else
 		pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to join multicast. status %d\n",
 				     status);
-	mutex_lock(&id_priv->qp_mutex);
-	if (!status && id_priv->id.qp) {
-		status = ib_attach_mcast(id_priv->id.qp, &multicast->rec.mgid,
-					 be16_to_cpu(multicast->rec.mlid));
-		if (status)
-			pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to attach QP. status %d\n",
-					     status);
-	}
-	mutex_unlock(&id_priv->qp_mutex);
-
 	event.status = status;
 	event.param.ud.private_data = mc->context;
 	if (!status) {
@@ -4418,6 +4442,10 @@
 	struct cma_multicast *mc;
 	int ret;
 
+	/* Not supported for kernel QPs */
+	if (WARN_ON(id->qp))
+		return -EINVAL;
+
 	if (!id->device)
 		return -EINVAL;
 
@@ -4468,25 +4496,14 @@
 	id_priv = container_of(id, struct rdma_id_private, id);
 	spin_lock_irq(&id_priv->lock);
 	list_for_each_entry(mc, &id_priv->mc_list, list) {
-		if (!memcmp(&mc->addr, addr, rdma_addr_size(addr))) {
-			list_del(&mc->list);
-			spin_unlock_irq(&id_priv->lock);
-
-			if (id->qp)
-				ib_detach_mcast(id->qp,
-						&mc->multicast.ib->rec.mgid,
-						be16_to_cpu(mc->multicast.ib->rec.mlid));
-
-			BUG_ON(id_priv->cma_dev->device != id->device);
-
-			if (rdma_cap_ib_mcast(id->device, id->port_num)) {
-				ib_sa_free_multicast(mc->multicast.ib);
-				kfree(mc);
-			} else if (rdma_protocol_roce(id->device, id->port_num)) {
-				cma_leave_roce_mc_group(id_priv, mc);
-			}
-			return;
-		}
+		if (memcmp(&mc->addr, addr, rdma_addr_size(addr)) != 0)
+			continue;
+		list_del(&mc->list);
+		spin_unlock_irq(&id_priv->lock);
+
+		WARN_ON(id_priv->cma_dev->device != id->device);
+		destroy_mc(id_priv, mc);
+		return;
 	}
 	spin_unlock_irq(&id_priv->lock);
 }
@@ -4710,6 +4727,19 @@
 {
 	int ret;
 
+	/*
+	 * There is a rare lock ordering dependency in cma_netdev_callback()
+	 * that only happens when bonding is enabled. Teach lockdep that rtnl
+	 * must never be nested under lock so it can find these without having
+	 * to test with bonding.
+	 */
+	if (IS_ENABLED(CONFIG_LOCKDEP)) {
+		rtnl_lock();
+		mutex_lock(&lock);
+		mutex_unlock(&lock);
+		rtnl_unlock();
+	}
+
 	cma_wq = alloc_ordered_workqueue("rdma_cm", WQ_MEM_RECLAIM);
 	if (!cma_wq)
 		return -ENOMEM;
@@ -4736,6 +4766,7 @@
 err:
 	unregister_netdevice_notifier(&cma_nb);
 	ib_sa_unregister_client(&sa_client);
+	unregister_pernet_subsys(&cma_pernet_operations);
 err_wq:
 	destroy_workqueue(cma_wq);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/cma_configfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/cma_configfs.c
@@ -322,8 +322,21 @@
 	return ERR_PTR(err);
 }
 
+static void drop_cma_dev(struct config_group *cgroup, struct config_item *item)
+{
+	struct config_group *group =
+		container_of(item, struct config_group, cg_item);
+	struct cma_dev_group *cma_dev_group =
+		container_of(group, struct cma_dev_group, device_group);
+
+	configfs_remove_default_groups(&cma_dev_group->ports_group);
+	configfs_remove_default_groups(&cma_dev_group->device_group);
+	config_item_put(item);
+}
+
 static struct configfs_group_operations cma_subsys_group_ops = {
 	.make_group	= make_cma_dev,
+	.drop_item	= drop_cma_dev,
 };
 
 static const struct config_item_type cma_subsys_type = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/core_priv.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/core_priv.h
@@ -149,6 +149,7 @@
 int ib_cache_setup_one(struct ib_device *device);
 void ib_cache_cleanup_one(struct ib_device *device);
 void ib_cache_release_one(struct ib_device *device);
+void ib_dispatch_event_clients(struct ib_event *event);
 
 #ifdef CONFIG_CGROUP_RDMA
 void ib_device_register_rdmacg(struct ib_device *device);
@@ -337,6 +338,21 @@
 	qp->pd = pd;
 	qp->uobject = uobj;
 	qp->real_qp = qp;
+
+	qp->qp_type = attr->qp_type;
+	qp->qp_context = attr->qp_context;
+	qp->rwq_ind_tbl = attr->rwq_ind_tbl;
+	qp->send_cq = attr->send_cq;
+	qp->recv_cq = attr->recv_cq;
+	qp->srq = attr->srq;
+	qp->rwq_ind_tbl = attr->rwq_ind_tbl;
+	qp->event_handler = attr->event_handler;
+
+	atomic_set(&qp->usecnt, 0);
+	spin_lock_init(&qp->mr_lock);
+	INIT_LIST_HEAD(&qp->rdma_mrs);
+	INIT_LIST_HEAD(&qp->sig_mrs);
+
 	/*
 	 * We don't track XRC QPs for now, because they don't have PD
 	 * and more importantly they are created internaly by driver,
@@ -388,4 +404,15 @@
 
 int rdma_nl_net_init(struct rdma_dev_net *rnet);
 void rdma_nl_net_exit(struct rdma_dev_net *rnet);
+
+struct rdma_umap_priv {
+	struct vm_area_struct *vma;
+	struct list_head list;
+	struct rdma_user_mmap_entry *entry;
+};
+
+void rdma_umap_priv_init(struct rdma_umap_priv *priv,
+			 struct vm_area_struct *vma,
+			 struct rdma_user_mmap_entry *entry);
+
 #endif /* _CORE_PRIV_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/counters.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/counters.c
@@ -195,7 +195,7 @@
 	return ret;
 }
 
-static void counter_history_stat_update(const struct rdma_counter *counter)
+static void counter_history_stat_update(struct rdma_counter *counter)
 {
 	struct ib_device *dev = counter->device;
 	struct rdma_port_counter *port_counter;
@@ -205,6 +205,8 @@
 	if (!port_counter->hstats)
 		return;
 
+	rdma_counter_query_stats(counter);
+
 	for (i = 0; i < counter->stats->num_counters; i++)
 		port_counter->hstats->value[i] += counter->stats->value[i];
 }
@@ -282,6 +284,9 @@
 	struct rdma_counter *counter;
 	int ret;
 
+	if (!qp->res.valid || rdma_is_kernel_res(&qp->res))
+		return 0;
+
 	if (!rdma_is_port_valid(dev, port))
 		return -EINVAL;
 
@@ -463,10 +468,15 @@
 int rdma_counter_bind_qpn(struct ib_device *dev, u8 port,
 			  u32 qp_num, u32 counter_id)
 {
+	struct rdma_port_counter *port_counter;
 	struct rdma_counter *counter;
 	struct ib_qp *qp;
 	int ret;
 
+	port_counter = &dev->port_data[port].port_counter;
+	if (port_counter->mode.mode == RDMA_COUNTER_MODE_AUTO)
+		return -EINVAL;
+
 	qp = rdma_counter_get_qp(dev, qp_num);
 	if (!qp)
 		return -ENOENT;
@@ -477,7 +487,7 @@
 		goto err;
 	}
 
-	if (counter->res.task != qp->res.task) {
+	if (rdma_is_kernel_res(&counter->res) != rdma_is_kernel_res(&qp->res)) {
 		ret = -EINVAL;
 		goto err_task;
 	}
@@ -503,6 +513,7 @@
 int rdma_counter_bind_qpn_alloc(struct ib_device *dev, u8 port,
 				u32 qp_num, u32 *counter_id)
 {
+	struct rdma_port_counter *port_counter;
 	struct rdma_counter *counter;
 	struct ib_qp *qp;
 	int ret;
@@ -510,9 +521,13 @@
 	if (!rdma_is_port_valid(dev, port))
 		return -EINVAL;
 
-	if (!dev->port_data[port].port_counter.hstats)
+	port_counter = &dev->port_data[port].port_counter;
+	if (!port_counter->hstats)
 		return -EOPNOTSUPP;
 
+	if (port_counter->mode.mode == RDMA_COUNTER_MODE_AUTO)
+		return -EINVAL;
+
 	qp = rdma_counter_get_qp(dev, qp_num);
 	if (!qp)
 		return -ENOENT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/device.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/device.c
@@ -591,6 +591,7 @@
 
 	INIT_LIST_HEAD(&device->event_handler_list);
 	spin_lock_init(&device->event_handler_lock);
+	init_rwsem(&device->event_handler_rwsem);
 	mutex_init(&device->unregistration_lock);
 	/*
 	 * client_data needs to be alloc because we don't want our mark to be
@@ -898,7 +899,9 @@
 	cdev->dev.parent = device->dev.parent;
 	rdma_init_coredev(cdev, device, read_pnet(&rnet->net));
 	cdev->dev.release = compatdev_release;
-	dev_set_name(&cdev->dev, "%s", dev_name(&device->dev));
+	ret = dev_set_name(&cdev->dev, "%s", dev_name(&device->dev));
+	if (ret)
+		goto add_err;
 
 	ret = device_add(&cdev->dev);
 	if (ret)
@@ -1199,9 +1202,21 @@
 		WARN_ON_ONCE(!parent);
 		device->dma_device = parent;
 	}
-	/* Setup default max segment size for all IB devices */
-	dma_set_max_seg_size(device->dma_device, SZ_2G);
 
+	if (!device->dev.dma_parms) {
+		if (parent) {
+			/*
+			 * The caller did not provide DMA parameters, so
+			 * 'parent' probably represents a PCI device. The PCI
+			 * core sets the maximum segment size to 64
+			 * KB. Increase this parameter to 2 GB.
+			 */
+			device->dev.dma_parms = parent->dma_parms;
+			dma_set_max_seg_size(device->dma_device, SZ_2G);
+		} else {
+			WARN_ON_ONCE(true);
+		}
+	}
 }
 
 /*
@@ -1315,6 +1330,10 @@
 	return ret;
 }
 
+static void prevent_dealloc_device(struct ib_device *ib_dev)
+{
+}
+
 /**
  * ib_register_device - Register an IB device with IB core
  * @device:Device to register
@@ -1368,9 +1387,6 @@
 	}
 
 	ret = enable_device_and_get(device);
-	dev_set_uevent_suppress(&device->dev, false);
-	/* Mark for userspace that device is ready */
-	kobject_uevent(&device->dev.kobj, KOBJ_ADD);
 	if (ret) {
 		void (*dealloc_fn)(struct ib_device *);
 
@@ -1382,16 +1398,20 @@
 		 * possibility for a parallel unregistration along with this
 		 * error flow. Since we have a refcount here we know any
 		 * parallel flow is stopped in disable_device and will see the
-		 * NULL pointers, causing the responsibility to
+		 * special dealloc_driver pointer, causing the responsibility to
 		 * ib_dealloc_device() to revert back to this thread.
 		 */
 		dealloc_fn = device->ops.dealloc_driver;
-		device->ops.dealloc_driver = NULL;
+		device->ops.dealloc_driver = prevent_dealloc_device;
 		ib_device_put(device);
 		__ib_unregister_device(device);
 		device->ops.dealloc_driver = dealloc_fn;
+		dev_set_uevent_suppress(&device->dev, false);
 		return ret;
 	}
+	dev_set_uevent_suppress(&device->dev, false);
+	/* Mark for userspace that device is ready */
+	kobject_uevent(&device->dev.kobj, KOBJ_ADD);
 	ib_device_put(device);
 
 	return 0;
@@ -1434,7 +1454,8 @@
 	 * Drivers using the new flow may not call ib_dealloc_device except
 	 * in error unwind prior to registration success.
 	 */
-	if (ib_dev->ops.dealloc_driver) {
+	if (ib_dev->ops.dealloc_driver &&
+	    ib_dev->ops.dealloc_driver != prevent_dealloc_device) {
 		WARN_ON(kref_read(&ib_dev->dev.kobj.kref) <= 1);
 		ib_dealloc_device(ib_dev);
 	}
@@ -1920,17 +1941,15 @@
  *
  * ib_register_event_handler() registers an event handler that will be
  * called back when asynchronous IB events occur (as defined in
- * chapter 11 of the InfiniBand Architecture Specification).  This
- * callback may occur in interrupt context.
+ * chapter 11 of the InfiniBand Architecture Specification). This
+ * callback occurs in workqueue context.
  */
 void ib_register_event_handler(struct ib_event_handler *event_handler)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&event_handler->device->event_handler_lock, flags);
+	down_write(&event_handler->device->event_handler_rwsem);
 	list_add_tail(&event_handler->list,
 		      &event_handler->device->event_handler_list);
-	spin_unlock_irqrestore(&event_handler->device->event_handler_lock, flags);
+	up_write(&event_handler->device->event_handler_rwsem);
 }
 EXPORT_SYMBOL(ib_register_event_handler);
 
@@ -1943,35 +1962,23 @@
  */
 void ib_unregister_event_handler(struct ib_event_handler *event_handler)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&event_handler->device->event_handler_lock, flags);
+	down_write(&event_handler->device->event_handler_rwsem);
 	list_del(&event_handler->list);
-	spin_unlock_irqrestore(&event_handler->device->event_handler_lock, flags);
+	up_write(&event_handler->device->event_handler_rwsem);
 }
 EXPORT_SYMBOL(ib_unregister_event_handler);
 
-/**
- * ib_dispatch_event - Dispatch an asynchronous event
- * @event:Event to dispatch
- *
- * Low-level drivers must call ib_dispatch_event() to dispatch the
- * event to all registered event handlers when an asynchronous event
- * occurs.
- */
-void ib_dispatch_event(struct ib_event *event)
+void ib_dispatch_event_clients(struct ib_event *event)
 {
-	unsigned long flags;
 	struct ib_event_handler *handler;
 
-	spin_lock_irqsave(&event->device->event_handler_lock, flags);
+	down_read(&event->device->event_handler_rwsem);
 
 	list_for_each_entry(handler, &event->device->event_handler_list, list)
 		handler->handler(handler, event);
 
-	spin_unlock_irqrestore(&event->device->event_handler_lock, flags);
+	up_read(&event->device->event_handler_rwsem);
 }
-EXPORT_SYMBOL(ib_dispatch_event);
 
 static int iw_query_port(struct ib_device *device,
 			   u8 port_num,
@@ -2397,8 +2404,12 @@
 		rc = device->ops.modify_port(device, port_num,
 					     port_modify_mask,
 					     port_modify);
+	else if (rdma_protocol_roce(device, port_num) &&
+		 ((port_modify->set_port_cap_mask & ~IB_PORT_CM_SUP) == 0 ||
+		  (port_modify->clr_port_cap_mask & ~IB_PORT_CM_SUP) == 0))
+		rc = 0;
 	else
-		rc = rdma_protocol_roce(device, port_num) ? 0 : -ENOSYS;
+		rc = -EOPNOTSUPP;
 	return rc;
 }
 EXPORT_SYMBOL(ib_modify_port);
@@ -2630,6 +2641,7 @@
 	SET_DEVICE_OP(dev_ops, map_mr_sg_pi);
 	SET_DEVICE_OP(dev_ops, map_phys_fmr);
 	SET_DEVICE_OP(dev_ops, mmap);
+	SET_DEVICE_OP(dev_ops, mmap_free);
 	SET_DEVICE_OP(dev_ops, modify_ah);
 	SET_DEVICE_OP(dev_ops, modify_cq);
 	SET_DEVICE_OP(dev_ops, modify_device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/ib_core_uverbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/ib_core_uverbs.c
@@ -0,0 +1,335 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
+/*
+ * Copyright (c) 2005 Mellanox Technologies. All rights reserved.
+ * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2019 Marvell. All rights reserved.
+ */
+#include <linux/xarray.h>
+#include "uverbs.h"
+#include "core_priv.h"
+
+/**
+ * rdma_umap_priv_init() - Initialize the private data of a vma
+ *
+ * @priv: The already allocated private data
+ * @vma: The vm area struct that needs private data
+ * @entry: entry into the mmap_xa that needs to be linked with
+ *       this vma
+ *
+ * Each time we map IO memory into user space this keeps track of the
+ * mapping. When the device is hot-unplugged we 'zap' the mmaps in user space
+ * to point to the zero page and allow the hot unplug to proceed.
+ *
+ * This is necessary for cases like PCI physical hot unplug as the actual BAR
+ * memory may vanish after this and access to it from userspace could MCE.
+ *
+ * RDMA drivers supporting disassociation must have their user space designed
+ * to cope in some way with their IO pages going to the zero page.
+ *
+ */
+void rdma_umap_priv_init(struct rdma_umap_priv *priv,
+			 struct vm_area_struct *vma,
+			 struct rdma_user_mmap_entry *entry)
+{
+	struct ib_uverbs_file *ufile = vma->vm_file->private_data;
+
+	priv->vma = vma;
+	if (entry) {
+		kref_get(&entry->ref);
+		priv->entry = entry;
+	}
+	vma->vm_private_data = priv;
+	/* vm_ops is setup in ib_uverbs_mmap() to avoid module dependencies */
+
+	mutex_lock(&ufile->umap_lock);
+	list_add(&priv->list, &ufile->umaps);
+	mutex_unlock(&ufile->umap_lock);
+}
+EXPORT_SYMBOL(rdma_umap_priv_init);
+
+/**
+ * rdma_user_mmap_io() - Map IO memory into a process
+ *
+ * @ucontext: associated user context
+ * @vma: the vma related to the current mmap call
+ * @pfn: pfn to map
+ * @size: size to map
+ * @prot: pgprot to use in remap call
+ * @entry: mmap_entry retrieved from rdma_user_mmap_entry_get(), or NULL
+ *         if mmap_entry is not used by the driver
+ *
+ * This is to be called by drivers as part of their mmap() functions if they
+ * wish to send something like PCI-E BAR memory to userspace.
+ *
+ * Return -EINVAL on wrong flags or size, -EAGAIN on failure to map. 0 on
+ * success.
+ */
+int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma,
+		      unsigned long pfn, unsigned long size, pgprot_t prot,
+		      struct rdma_user_mmap_entry *entry)
+{
+	struct ib_uverbs_file *ufile = ucontext->ufile;
+	struct rdma_umap_priv *priv;
+
+	if (!(vma->vm_flags & VM_SHARED))
+		return -EINVAL;
+
+	if (vma->vm_end - vma->vm_start != size)
+		return -EINVAL;
+
+	/* Driver is using this wrong, must be called by ib_uverbs_mmap */
+	if (WARN_ON(!vma->vm_file ||
+		    vma->vm_file->private_data != ufile))
+		return -EINVAL;
+	lockdep_assert_held(&ufile->device->disassociate_srcu);
+
+	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+	if (!priv)
+		return -ENOMEM;
+
+	vma->vm_page_prot = prot;
+	if (io_remap_pfn_range(vma, vma->vm_start, pfn, size, prot)) {
+		kfree(priv);
+		return -EAGAIN;
+	}
+
+	rdma_umap_priv_init(priv, vma, entry);
+	return 0;
+}
+EXPORT_SYMBOL(rdma_user_mmap_io);
+
+/**
+ * rdma_user_mmap_entry_get_pgoff() - Get an entry from the mmap_xa
+ *
+ * @ucontext: associated user context
+ * @pgoff: The mmap offset >> PAGE_SHIFT
+ *
+ * This function is called when a user tries to mmap with an offset (returned
+ * by rdma_user_mmap_get_offset()) it initially received from the driver. The
+ * rdma_user_mmap_entry was created by the function
+ * rdma_user_mmap_entry_insert().  This function increases the refcnt of the
+ * entry so that it won't be deleted from the xarray in the meantime.
+ *
+ * Return an reference to an entry if exists or NULL if there is no
+ * match. rdma_user_mmap_entry_put() must be called to put the reference.
+ */
+struct rdma_user_mmap_entry *
+rdma_user_mmap_entry_get_pgoff(struct ib_ucontext *ucontext,
+			       unsigned long pgoff)
+{
+	struct rdma_user_mmap_entry *entry;
+
+	if (pgoff > U32_MAX)
+		return NULL;
+
+	xa_lock(&ucontext->mmap_xa);
+
+	entry = xa_load(&ucontext->mmap_xa, pgoff);
+
+	/*
+	 * If refcount is zero, entry is already being deleted, driver_removed
+	 * indicates that the no further mmaps are possible and we waiting for
+	 * the active VMAs to be closed.
+	 */
+	if (!entry || entry->start_pgoff != pgoff || entry->driver_removed ||
+	    !kref_get_unless_zero(&entry->ref))
+		goto err;
+
+	xa_unlock(&ucontext->mmap_xa);
+
+	ibdev_dbg(ucontext->device, "mmap: pgoff[%#lx] npages[%#zx] returned\n",
+		  pgoff, entry->npages);
+
+	return entry;
+
+err:
+	xa_unlock(&ucontext->mmap_xa);
+	return NULL;
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_get_pgoff);
+
+/**
+ * rdma_user_mmap_entry_get() - Get an entry from the mmap_xa
+ *
+ * @ucontext: associated user context
+ * @vma: the vma being mmap'd into
+ *
+ * This function is like rdma_user_mmap_entry_get_pgoff() except that it also
+ * checks that the VMA is correct.
+ */
+struct rdma_user_mmap_entry *
+rdma_user_mmap_entry_get(struct ib_ucontext *ucontext,
+			 struct vm_area_struct *vma)
+{
+	struct rdma_user_mmap_entry *entry;
+
+	if (!(vma->vm_flags & VM_SHARED))
+		return NULL;
+	entry = rdma_user_mmap_entry_get_pgoff(ucontext, vma->vm_pgoff);
+	if (!entry)
+		return NULL;
+	if (entry->npages * PAGE_SIZE != vma->vm_end - vma->vm_start) {
+		rdma_user_mmap_entry_put(entry);
+		return NULL;
+	}
+	return entry;
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_get);
+
+static void rdma_user_mmap_entry_free(struct kref *kref)
+{
+	struct rdma_user_mmap_entry *entry =
+		container_of(kref, struct rdma_user_mmap_entry, ref);
+	struct ib_ucontext *ucontext = entry->ucontext;
+	unsigned long i;
+
+	/*
+	 * Erase all entries occupied by this single entry, this is deferred
+	 * until all VMA are closed so that the mmap offsets remain unique.
+	 */
+	xa_lock(&ucontext->mmap_xa);
+	for (i = 0; i < entry->npages; i++)
+		__xa_erase(&ucontext->mmap_xa, entry->start_pgoff + i);
+	xa_unlock(&ucontext->mmap_xa);
+
+	ibdev_dbg(ucontext->device, "mmap: pgoff[%#lx] npages[%#zx] removed\n",
+		  entry->start_pgoff, entry->npages);
+
+	if (ucontext->device->ops.mmap_free)
+		ucontext->device->ops.mmap_free(entry);
+}
+
+/**
+ * rdma_user_mmap_entry_put() - Drop reference to the mmap entry
+ *
+ * @entry: an entry in the mmap_xa
+ *
+ * This function is called when the mapping is closed if it was
+ * an io mapping or when the driver is done with the entry for
+ * some other reason.
+ * Should be called after rdma_user_mmap_entry_get was called
+ * and entry is no longer needed. This function will erase the
+ * entry and free it if its refcnt reaches zero.
+ */
+void rdma_user_mmap_entry_put(struct rdma_user_mmap_entry *entry)
+{
+	kref_put(&entry->ref, rdma_user_mmap_entry_free);
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_put);
+
+/**
+ * rdma_user_mmap_entry_remove() - Drop reference to entry and
+ *				   mark it as unmmapable
+ *
+ * @entry: the entry to insert into the mmap_xa
+ *
+ * Drivers can call this to prevent userspace from creating more mappings for
+ * entry, however existing mmaps continue to exist and ops->mmap_free() will
+ * not be called until all user mmaps are destroyed.
+ */
+void rdma_user_mmap_entry_remove(struct rdma_user_mmap_entry *entry)
+{
+	if (!entry)
+		return;
+
+	entry->driver_removed = true;
+	kref_put(&entry->ref, rdma_user_mmap_entry_free);
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_remove);
+
+/**
+ * rdma_user_mmap_entry_insert() - Insert an entry to the mmap_xa
+ *
+ * @ucontext: associated user context.
+ * @entry: the entry to insert into the mmap_xa
+ * @length: length of the address that will be mmapped
+ *
+ * This function should be called by drivers that use the rdma_user_mmap
+ * interface for implementing their mmap syscall A database of mmap offsets is
+ * handled in the core and helper functions are provided to insert entries
+ * into the database and extract entries when the user calls mmap with the
+ * given offset.  The function allocates a unique page offset that should be
+ * provided to user, the user will use the offset to retrieve information such
+ * as address to be mapped and how.
+ *
+ * Return: 0 on success and -ENOMEM on failure
+ */
+int rdma_user_mmap_entry_insert(struct ib_ucontext *ucontext,
+				struct rdma_user_mmap_entry *entry,
+				size_t length)
+{
+	struct ib_uverbs_file *ufile = ucontext->ufile;
+	XA_STATE(xas, &ucontext->mmap_xa, 0);
+	u32 xa_first, xa_last, npages;
+	int err;
+	u32 i;
+
+	if (!entry)
+		return -EINVAL;
+
+	kref_init(&entry->ref);
+	entry->ucontext = ucontext;
+
+	/*
+	 * We want the whole allocation to be done without interruption from a
+	 * different thread. The allocation requires finding a free range and
+	 * storing. During the xa_insert the lock could be released, possibly
+	 * allowing another thread to choose the same range.
+	 */
+	mutex_lock(&ufile->umap_lock);
+
+	xa_lock(&ucontext->mmap_xa);
+
+	/* We want to find an empty range */
+	npages = (u32)DIV_ROUND_UP(length, PAGE_SIZE);
+	entry->npages = npages;
+	while (true) {
+		/* First find an empty index */
+		xas_find_marked(&xas, U32_MAX, XA_FREE_MARK);
+		if (xas.xa_node == XAS_RESTART)
+			goto err_unlock;
+
+		xa_first = xas.xa_index;
+
+		/* Is there enough room to have the range? */
+		if (check_add_overflow(xa_first, npages, &xa_last))
+			goto err_unlock;
+
+		/*
+		 * Now look for the next present entry. If an entry doesn't
+		 * exist, we found an empty range and can proceed.
+		 */
+		xas_next_entry(&xas, xa_last - 1);
+		if (xas.xa_node == XAS_BOUNDS || xas.xa_index >= xa_last)
+			break;
+	}
+
+	for (i = xa_first; i < xa_last; i++) {
+		err = __xa_insert(&ucontext->mmap_xa, i, entry, GFP_KERNEL);
+		if (err)
+			goto err_undo;
+	}
+
+	/*
+	 * Internally the kernel uses a page offset, in libc this is a byte
+	 * offset. Drivers should not return pgoff to userspace.
+	 */
+	entry->start_pgoff = xa_first;
+	xa_unlock(&ucontext->mmap_xa);
+	mutex_unlock(&ufile->umap_lock);
+
+	ibdev_dbg(ucontext->device, "mmap: pgoff[%#lx] npages[%#x] inserted\n",
+		  entry->start_pgoff, npages);
+
+	return 0;
+
+err_undo:
+	for (; i > xa_first; i--)
+		__xa_erase(&ucontext->mmap_xa, i - 1);
+
+err_unlock:
+	xa_unlock(&ucontext->mmap_xa);
+	mutex_unlock(&ufile->umap_lock);
+	return -ENOMEM;
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_insert);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/iwcm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/iwcm.c
@@ -159,8 +159,10 @@
 {
 	struct list_head *e, *tmp;
 
-	list_for_each_safe(e, tmp, &cm_id_priv->work_free_list)
+	list_for_each_safe(e, tmp, &cm_id_priv->work_free_list) {
+		list_del(e);
 		kfree(list_entry(e, struct iwcm_work, free_list));
+	}
 }
 
 static int alloc_work_entries(struct iwcm_id_private *cm_id_priv, int count)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/mad.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/mad.c
@@ -639,10 +639,10 @@
 	xa_erase(&ib_mad_clients, mad_agent_priv->agent.hi_tid);
 
 	flush_workqueue(port_priv->wq);
-	ib_cancel_rmpp_recvs(mad_agent_priv);
 
 	deref_mad_agent(mad_agent_priv);
 	wait_for_completion(&mad_agent_priv->comp);
+	ib_cancel_rmpp_recvs(mad_agent_priv);
 
 	ib_mad_agent_security_cleanup(&mad_agent_priv->agent);
 
@@ -2960,6 +2960,7 @@
 						 DMA_FROM_DEVICE);
 		if (unlikely(ib_dma_mapping_error(qp_info->port_priv->device,
 						  sg_list.addr))) {
+			kfree(mad_priv);
 			ret = -ENOMEM;
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/nldev.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/nldev.c
@@ -702,9 +702,6 @@
 			continue;
 
 		qp = container_of(res, struct ib_qp, res);
-		if (qp->qp_type == IB_QPT_RAW_PACKET && !capable(CAP_NET_RAW))
-			continue;
-
 		if (!qp->counter || (qp->counter->id != counter->id))
 			continue;
 
@@ -863,6 +860,10 @@
 
 		nla_strlcpy(name, tb[RDMA_NLDEV_ATTR_DEV_NAME],
 			    IB_DEVICE_NAME_MAX);
+		if (strlen(name) == 0) {
+			err = -EINVAL;
+			goto done;
+		}
 		err = ib_device_rename(device, name);
 		goto done;
 	}
@@ -1244,10 +1245,10 @@
 
 	has_cap_net_admin = netlink_capable(skb, CAP_NET_ADMIN);
 	ret = fe->fill_res_func(msg, has_cap_net_admin, res, port);
-	rdma_restrack_put(res);
 	if (ret)
 		goto err_free;
 
+	rdma_restrack_put(res);
 	nlmsg_end(msg, nlh);
 	ib_device_put(device);
 	return rdma_nl_unicast(sock_net(skb->sk), msg, NETLINK_CB(skb).portid);
@@ -1468,7 +1469,7 @@
 
 	nla_strlcpy(ibdev_name, tb[RDMA_NLDEV_ATTR_DEV_NAME],
 		    sizeof(ibdev_name));
-	if (strchr(ibdev_name, '%'))
+	if (strchr(ibdev_name, '%') || strlen(ibdev_name) == 0)
 		return -EINVAL;
 
 	nla_strlcpy(type, tb[RDMA_NLDEV_ATTR_LINK_TYPE], sizeof(type));
@@ -1711,6 +1712,8 @@
 		if (ret)
 			goto err_msg;
 	} else {
+		if (!tb[RDMA_NLDEV_ATTR_RES_LQPN])
+			goto err_msg;
 		qpn = nla_get_u32(tb[RDMA_NLDEV_ATTR_RES_LQPN]);
 		if (tb[RDMA_NLDEV_ATTR_STAT_COUNTER_ID]) {
 			cntn = nla_get_u32(tb[RDMA_NLDEV_ATTR_STAT_COUNTER_ID]);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/rdma_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/rdma_core.c
@@ -160,9 +160,9 @@
 	uobj->context = NULL;
 
 	/*
-	 * For DESTROY the usecnt is held write locked, the caller is expected
-	 * to put it unlock and put the object when done with it. Only DESTROY
-	 * can remove the IDR handle.
+	 * For DESTROY the usecnt is not changed, the caller is expected to
+	 * manage it via uobj_put_destroy(). Only DESTROY can remove the IDR
+	 * handle.
 	 */
 	if (reason != RDMA_REMOVE_DESTROY)
 		atomic_set(&uobj->usecnt, 0);
@@ -194,7 +194,7 @@
 /*
  * This calls uverbs_destroy_uobject() using the RDMA_REMOVE_DESTROY
  * sequence. It should only be used from command callbacks. On success the
- * caller must pair this with rdma_lookup_put_uobject(LOOKUP_WRITE). This
+ * caller must pair this with uobj_put_destroy(). This
  * version requires the caller to have already obtained an
  * LOOKUP_DESTROY uobject kref.
  */
@@ -205,6 +205,13 @@
 
 	down_read(&ufile->hw_destroy_rwsem);
 
+	/*
+	 * Once the uobject is destroyed by RDMA_REMOVE_DESTROY then it is left
+	 * write locked as the callers put it back with UVERBS_LOOKUP_DESTROY.
+	 * This is because any other concurrent thread can still see the object
+	 * in the xarray due to RCU. Leaving it locked ensures nothing else will
+	 * touch it.
+	 */
 	ret = uverbs_try_lock_object(uobj, UVERBS_LOOKUP_WRITE);
 	if (ret)
 		goto out_unlock;
@@ -223,7 +230,7 @@
 /*
  * uobj_get_destroy destroys the HW object and returns a handle to the uobj
  * with a NULL object pointer. The caller must pair this with
- * uverbs_put_destroy.
+ * uobj_put_destroy().
  */
 struct ib_uobject *__uobj_get_destroy(const struct uverbs_api_object *obj,
 				      u32 id, struct uverbs_attr_bundle *attrs)
@@ -257,8 +264,7 @@
 	uobj = __uobj_get_destroy(obj, id, attrs);
 	if (IS_ERR(uobj))
 		return PTR_ERR(uobj);
-
-	rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE);
+	uobj_put_destroy(uobj);
 	return 0;
 }
 
@@ -362,7 +368,7 @@
 	 * and the caller is expected to ensure that uverbs_close_fd is never
 	 * done while a call top lookup is possible.
 	 */
-	if (f->f_op != fd_type->fops) {
+	if (f->f_op != fd_type->fops || uobject->ufile != ufile) {
 		fput(f);
 		return ERR_PTR(-EBADF);
 	}
@@ -689,7 +695,6 @@
 			     enum rdma_lookup_mode mode)
 {
 	assert_uverbs_usecnt(uobj, mode);
-	uobj->uapi_object->type_class->lookup_put(uobj, mode);
 	/*
 	 * In order to unlock an object, either decrease its usecnt for
 	 * read access or zero it in case of exclusive access. See
@@ -706,6 +711,7 @@
 		break;
 	}
 
+	uobj->uapi_object->type_class->lookup_put(uobj, mode);
 	/* Pairs with the kref obtained by type->lookup_get */
 	uverbs_uobject_put(uobj);
 }
@@ -817,6 +823,7 @@
 	rdma_restrack_del(&ucontext->res);
 
 	ib_dev->ops.dealloc_ucontext(ucontext);
+	WARN_ON(!xa_empty(&ucontext->mmap_xa));
 	kfree(ucontext);
 
 	ufile->ucontext = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/restrack.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/restrack.c
@@ -234,6 +234,7 @@
 	} else {
 		ret = xa_alloc_cyclic(&rt->xa, &res->id, res, xa_limit_32b,
 				      &rt->next_id, GFP_KERNEL);
+		ret = (ret < 0) ? ret : 0;
 	}
 
 	if (!ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/rw.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/rw.c
@@ -268,6 +268,23 @@
 	return 1;
 }
 
+static void rdma_rw_unmap_sg(struct ib_device *dev, struct scatterlist *sg,
+			     u32 sg_cnt, enum dma_data_direction dir)
+{
+	if (is_pci_p2pdma_page(sg_page(sg)))
+		pci_p2pdma_unmap_sg(dev->dma_device, sg, sg_cnt, dir);
+	else
+		ib_dma_unmap_sg(dev, sg, sg_cnt, dir);
+}
+
+static int rdma_rw_map_sg(struct ib_device *dev, struct scatterlist *sg,
+			  u32 sg_cnt, enum dma_data_direction dir)
+{
+	if (is_pci_p2pdma_page(sg_page(sg)))
+		return pci_p2pdma_map_sg(dev->dma_device, sg, sg_cnt, dir);
+	return ib_dma_map_sg(dev, sg, sg_cnt, dir);
+}
+
 /**
  * rdma_rw_ctx_init - initialize a RDMA READ/WRITE context
  * @ctx:	context to initialize
@@ -290,11 +307,7 @@
 	struct ib_device *dev = qp->pd->device;
 	int ret;
 
-	if (is_pci_p2pdma_page(sg_page(sg)))
-		ret = pci_p2pdma_map_sg(dev->dma_device, sg, sg_cnt, dir);
-	else
-		ret = ib_dma_map_sg(dev, sg, sg_cnt, dir);
-
+	ret = rdma_rw_map_sg(dev, sg, sg_cnt, dir);
 	if (!ret)
 		return -ENOMEM;
 	sg_cnt = ret;
@@ -333,7 +346,7 @@
 	return ret;
 
 out_unmap_sg:
-	ib_dma_unmap_sg(dev, sg, sg_cnt, dir);
+	rdma_rw_unmap_sg(dev, sg, sg_cnt, dir);
 	return ret;
 }
 EXPORT_SYMBOL(rdma_rw_ctx_init);
@@ -583,11 +596,7 @@
 		break;
 	}
 
-	if (is_pci_p2pdma_page(sg_page(sg)))
-		pci_p2pdma_unmap_sg(qp->pd->device->dma_device, sg,
-				    sg_cnt, dir);
-	else
-		ib_dma_unmap_sg(qp->pd->device, sg, sg_cnt, dir);
+	rdma_rw_unmap_sg(qp->pd->device, sg, sg_cnt, dir);
 }
 EXPORT_SYMBOL(rdma_rw_ctx_destroy);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/sa_query.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/sa_query.c
@@ -829,13 +829,20 @@
 	return len;
 }
 
-static int ib_nl_send_msg(struct ib_sa_query *query, gfp_t gfp_mask)
+static int ib_nl_make_request(struct ib_sa_query *query, gfp_t gfp_mask)
 {
 	struct sk_buff *skb = NULL;
 	struct nlmsghdr *nlh;
 	void *data;
 	struct ib_sa_mad *mad;
 	int len;
+	unsigned long flags;
+	unsigned long delay;
+	gfp_t gfp_flag;
+	int ret;
+
+	INIT_LIST_HEAD(&query->list);
+	query->seq = (u32)atomic_inc_return(&ib_nl_sa_request_seq);
 
 	mad = query->mad_buf->mad;
 	len = ib_nl_get_path_rec_attrs_len(mad->sa_hdr.comp_mask);
@@ -860,36 +867,25 @@
 	/* Repair the nlmsg header length */
 	nlmsg_end(skb, nlh);
 
-	return rdma_nl_multicast(&init_net, skb, RDMA_NL_GROUP_LS, gfp_mask);
-}
+	gfp_flag = ((gfp_mask & GFP_ATOMIC) == GFP_ATOMIC) ? GFP_ATOMIC :
+		GFP_NOWAIT;
 
-static int ib_nl_make_request(struct ib_sa_query *query, gfp_t gfp_mask)
-{
-	unsigned long flags;
-	unsigned long delay;
-	int ret;
+	spin_lock_irqsave(&ib_nl_request_lock, flags);
+	ret = rdma_nl_multicast(&init_net, skb, RDMA_NL_GROUP_LS, gfp_flag);
 
-	INIT_LIST_HEAD(&query->list);
-	query->seq = (u32)atomic_inc_return(&ib_nl_sa_request_seq);
+	if (ret)
+		goto out;
 
-	/* Put the request on the list first.*/
-	spin_lock_irqsave(&ib_nl_request_lock, flags);
+	/* Put the request on the list.*/
 	delay = msecs_to_jiffies(sa_local_svc_timeout_ms);
 	query->timeout = delay + jiffies;
 	list_add_tail(&query->list, &ib_nl_request_list);
 	/* Start the timeout if this is the only request */
 	if (ib_nl_request_list.next == &query->list)
 		queue_delayed_work(ib_nl_wq, &ib_nl_timed_work, delay);
-	spin_unlock_irqrestore(&ib_nl_request_lock, flags);
 
-	ret = ib_nl_send_msg(query, gfp_mask);
-	if (ret) {
-		ret = -EIO;
-		/* Remove the request */
-		spin_lock_irqsave(&ib_nl_request_lock, flags);
-		list_del(&query->list);
-		spin_unlock_irqrestore(&ib_nl_request_lock, flags);
-	}
+out:
+	spin_unlock_irqrestore(&ib_nl_request_lock, flags);
 
 	return ret;
 }
@@ -1068,7 +1064,7 @@
 	}
 
 settimeout_out:
-	return skb->len;
+	return 0;
 }
 
 static inline int ib_nl_is_good_resolve_resp(const struct nlmsghdr *nlh)
@@ -1139,7 +1135,7 @@
 	}
 
 resp_out:
-	return skb->len;
+	return 0;
 }
 
 static void free_sm_ah(struct kref *kref)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/security.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/security.c
@@ -339,27 +339,20 @@
 	if (!new_pps)
 		return NULL;
 
-	if (qp_attr_mask & (IB_QP_PKEY_INDEX | IB_QP_PORT)) {
-		if (!qp_pps) {
-			new_pps->main.port_num = qp_attr->port_num;
-			new_pps->main.pkey_index = qp_attr->pkey_index;
-		} else {
-			new_pps->main.port_num = (qp_attr_mask & IB_QP_PORT) ?
-						  qp_attr->port_num :
-						  qp_pps->main.port_num;
-
-			new_pps->main.pkey_index =
-					(qp_attr_mask & IB_QP_PKEY_INDEX) ?
-					 qp_attr->pkey_index :
-					 qp_pps->main.pkey_index;
-		}
-		new_pps->main.state = IB_PORT_PKEY_VALID;
-	} else if (qp_pps) {
+	if (qp_attr_mask & IB_QP_PORT)
+		new_pps->main.port_num = qp_attr->port_num;
+	else if (qp_pps)
 		new_pps->main.port_num = qp_pps->main.port_num;
+
+	if (qp_attr_mask & IB_QP_PKEY_INDEX)
+		new_pps->main.pkey_index = qp_attr->pkey_index;
+	else if (qp_pps)
 		new_pps->main.pkey_index = qp_pps->main.pkey_index;
-		if (qp_pps->main.state != IB_PORT_PKEY_NOT_VALID)
-			new_pps->main.state = IB_PORT_PKEY_VALID;
-	}
+
+	if (((qp_attr_mask & IB_QP_PKEY_INDEX) &&
+	     (qp_attr_mask & IB_QP_PORT)) ||
+	    (qp_pps && qp_pps->main.state != IB_PORT_PKEY_NOT_VALID))
+		new_pps->main.state = IB_PORT_PKEY_VALID;
 
 	if (qp_attr_mask & IB_QP_ALT_PATH) {
 		new_pps->alt.port_num = qp_attr->alt_port_num;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/sysfs.c
@@ -1060,8 +1060,7 @@
 				   coredev->ports_kobj,
 				   "%d", port_num);
 	if (ret) {
-		kfree(p);
-		return ret;
+		goto err_put;
 	}
 
 	p->gid_attr_group = kzalloc(sizeof(*p->gid_attr_group), GFP_KERNEL);
@@ -1074,8 +1073,7 @@
 	ret = kobject_init_and_add(&p->gid_attr_group->kobj, &gid_attr_type,
 				   &p->kobj, "gid_attrs");
 	if (ret) {
-		kfree(p->gid_attr_group);
-		goto err_put;
+		goto err_put_gid_attrs;
 	}
 
 	if (device->ops.process_mad && is_full_dev) {
@@ -1406,8 +1404,10 @@
 
 		ret = kobject_init_and_add(kobj, ktype, &port->kobj, "%s",
 					   name);
-		if (ret)
+		if (ret) {
+			kobject_put(kobj);
 			return ret;
+		}
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/ucma.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/ucma.c
@@ -91,6 +91,7 @@
 
 	struct ucma_file	*file;
 	struct rdma_cm_id	*cm_id;
+	struct mutex		mutex;
 	u64			uid;
 
 	struct list_head	list;
@@ -216,6 +217,7 @@
 	init_completion(&ctx->comp);
 	INIT_LIST_HEAD(&ctx->mc_list);
 	ctx->file = file;
+	mutex_init(&ctx->mutex);
 
 	if (xa_alloc(&ctx_table, &ctx->id, ctx, xa_limit_32b, GFP_KERNEL))
 		goto error;
@@ -579,6 +581,7 @@
 			list_move_tail(&uevent->list, &list);
 	}
 	list_del(&ctx->list);
+	events_reported = ctx->events_reported;
 	mutex_unlock(&ctx->file->mut);
 
 	list_for_each_entry_safe(uevent, tmp, &list, list) {
@@ -588,7 +591,7 @@
 		kfree(uevent);
 	}
 
-	events_reported = ctx->events_reported;
+	mutex_destroy(&ctx->mutex);
 	kfree(ctx);
 	return events_reported;
 }
@@ -658,7 +661,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr);
+	mutex_unlock(&ctx->mutex);
+
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -681,7 +687,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -705,8 +713,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr,
 				(struct sockaddr *) &cmd.dst_addr, cmd.timeout_ms);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -731,8 +741,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr,
 				(struct sockaddr *) &cmd.dst_addr, cmd.timeout_ms);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -752,7 +764,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_resolve_route(ctx->cm_id, cmd.timeout_ms);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -841,6 +855,7 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	memset(&resp, 0, sizeof resp);
 	addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr;
 	memcpy(&resp.src_addr, addr, addr->sa_family == AF_INET ?
@@ -864,6 +879,7 @@
 		ucma_copy_iw_route(&resp, &ctx->cm_id->route);
 
 out:
+	mutex_unlock(&ctx->mutex);
 	if (copy_to_user(u64_to_user_ptr(cmd.response),
 			 &resp, sizeof(resp)))
 		ret = -EFAULT;
@@ -1014,6 +1030,7 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	switch (cmd.option) {
 	case RDMA_USER_CM_QUERY_ADDR:
 		ret = ucma_query_addr(ctx, response, out_len);
@@ -1028,6 +1045,7 @@
 		ret = -ENOSYS;
 		break;
 	}
+	mutex_unlock(&ctx->mutex);
 
 	ucma_put_ctx(ctx);
 	return ret;
@@ -1068,7 +1086,9 @@
 		return PTR_ERR(ctx);
 
 	ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param);
+	mutex_lock(&ctx->mutex);
 	ret = rdma_connect(ctx->cm_id, &conn_param);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1089,7 +1109,9 @@
 
 	ctx->backlog = cmd.backlog > 0 && cmd.backlog < max_backlog ?
 		       cmd.backlog : max_backlog;
+	mutex_lock(&ctx->mutex);
 	ret = rdma_listen(ctx->cm_id, ctx->backlog);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1112,13 +1134,17 @@
 	if (cmd.conn_param.valid) {
 		ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param);
 		mutex_lock(&file->mut);
+		mutex_lock(&ctx->mutex);
 		ret = __rdma_accept(ctx->cm_id, &conn_param, NULL);
+		mutex_unlock(&ctx->mutex);
 		if (!ret)
 			ctx->uid = cmd.uid;
 		mutex_unlock(&file->mut);
-	} else
+	} else {
+		mutex_lock(&ctx->mutex);
 		ret = __rdma_accept(ctx->cm_id, NULL, NULL);
-
+		mutex_unlock(&ctx->mutex);
+	}
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1137,7 +1163,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_reject(ctx->cm_id, cmd.private_data, cmd.private_data_len);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1156,7 +1184,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_disconnect(ctx->cm_id);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1187,7 +1217,9 @@
 	resp.qp_attr_mask = 0;
 	memset(&qp_attr, 0, sizeof qp_attr);
 	qp_attr.qp_state = cmd.qp_state;
+	mutex_lock(&ctx->mutex);
 	ret = rdma_init_qp_attr(ctx->cm_id, &qp_attr, &resp.qp_attr_mask);
+	mutex_unlock(&ctx->mutex);
 	if (ret)
 		goto out;
 
@@ -1273,9 +1305,13 @@
 		struct sa_path_rec opa;
 
 		sa_convert_path_ib_to_opa(&opa, &sa_path);
+		mutex_lock(&ctx->mutex);
 		ret = rdma_set_ib_path(ctx->cm_id, &opa);
+		mutex_unlock(&ctx->mutex);
 	} else {
+		mutex_lock(&ctx->mutex);
 		ret = rdma_set_ib_path(ctx->cm_id, &sa_path);
+		mutex_unlock(&ctx->mutex);
 	}
 	if (ret)
 		return ret;
@@ -1308,7 +1344,9 @@
 
 	switch (level) {
 	case RDMA_OPTION_ID:
+		mutex_lock(&ctx->mutex);
 		ret = ucma_set_option_id(ctx, optname, optval, optlen);
+		mutex_unlock(&ctx->mutex);
 		break;
 	case RDMA_OPTION_IB:
 		ret = ucma_set_option_ib(ctx, optname, optval, optlen);
@@ -1368,8 +1406,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	if (ctx->cm_id->device)
 		ret = rdma_notify(ctx->cm_id, (enum ib_event_type)cmd.event);
+	mutex_unlock(&ctx->mutex);
 
 	ucma_put_ctx(ctx);
 	return ret;
@@ -1412,8 +1452,10 @@
 	mc->join_state = join_state;
 	mc->uid = cmd->uid;
 	memcpy(&mc->addr, addr, cmd->addr_size);
+	mutex_lock(&ctx->mutex);
 	ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *)&mc->addr,
 				  join_state, mc);
+	mutex_unlock(&ctx->mutex);
 	if (ret)
 		goto err2;
 
@@ -1431,7 +1473,9 @@
 	return 0;
 
 err3:
+	mutex_lock(&ctx->mutex);
 	rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr);
+	mutex_unlock(&ctx->mutex);
 	ucma_cleanup_mc_events(mc);
 err2:
 	xa_erase(&multicast_table, mc->id);
@@ -1513,7 +1557,10 @@
 		goto out;
 	}
 
+	mutex_lock(&mc->ctx->mutex);
 	rdma_leave_multicast(mc->ctx->cm_id, (struct sockaddr *) &mc->addr);
+	mutex_unlock(&mc->ctx->mutex);
+
 	mutex_lock(&mc->ctx->file->mut);
 	ucma_cleanup_mc_events(mc);
 	list_del(&mc->list);
@@ -1594,7 +1641,9 @@
 
 	cur_file = ctx->file;
 	if (cur_file == new_file) {
+		mutex_lock(&cur_file->mut);
 		resp.events_reported = ctx->events_reported;
+		mutex_unlock(&cur_file->mut);
 		goto response;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/umem.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/umem.c
@@ -151,13 +151,24 @@
 	dma_addr_t mask;
 	int i;
 
+	/* 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);
+
 	/* At minimum, drivers must support PAGE_SIZE or smaller */
 	if (WARN_ON(!(pgsz_bitmap & GENMASK(PAGE_SHIFT, 0))))
 		return 0;
 
 	va = virt;
-	/* max page size not to exceed MR length */
-	mask = roundup_pow_of_two(umem->length);
+	/* 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.
+	 */
+	mask = pgsz_bitmap &
+	       GENMASK(BITS_PER_LONG - 1,
+		       bits_per((umem->length - 1 + virt) ^ virt));
 	/* offset into first SGL */
 	pgoff = umem->address & ~PAGE_MASK;
 
@@ -166,10 +177,13 @@
 		 * for any address.
 		 */
 		mask |= (sg_dma_address(sg) + pgoff) ^ va;
-		if (i && i != (umem->nmap - 1))
-			/* restrict by length as well for interior SGEs */
-			mask |= sg_dma_len(sg);
 		va += sg_dma_len(sg) - pgoff;
+		/* Except for the last entry, the ending iova alignment sets
+		 * the maximum possible page size as the low bits of the iova
+		 * must be zero when starting the next chunk.
+		 */
+		if (i != (umem->nmap - 1))
+			mask |= va;
 		pgoff = 0;
 	}
 	best_pg_bit = rdma_find_pg_bit(mask, pgsz_bitmap);
@@ -185,10 +199,9 @@
  * @addr: userspace virtual address to start at
  * @size: length of region to pin
  * @access: IB_ACCESS_xxx flags for memory being pinned
- * @dmasync: flush in-flight DMA when the memory region is written
  */
 struct ib_umem *ib_umem_get(struct ib_udata *udata, unsigned long addr,
-			    size_t size, int access, int dmasync)
+			    size_t size, int access)
 {
 	struct ib_ucontext *context;
 	struct ib_umem *umem;
@@ -199,7 +212,6 @@
 	struct mm_struct *mm;
 	unsigned long npages;
 	int ret;
-	unsigned long dma_attrs = 0;
 	struct scatterlist *sg;
 	unsigned int gup_flags = FOLL_WRITE;
 
@@ -211,9 +223,6 @@
 	if (!context)
 		return ERR_PTR(-EIO);
 
-	if (dmasync)
-		dma_attrs |= DMA_ATTR_WRITE_BARRIER;
-
 	/*
 	 * If the combination of the addr and size requested for this memory
 	 * region causes an integer overflow, return error.
@@ -294,11 +303,10 @@
 
 	sg_mark_end(sg);
 
-	umem->nmap = ib_dma_map_sg_attrs(context->device,
+	umem->nmap = ib_dma_map_sg(context->device,
 				  umem->sg_head.sgl,
 				  umem->sg_nents,
-				  DMA_BIDIRECTIONAL,
-				  dma_attrs);
+				  DMA_BIDIRECTIONAL);
 
 	if (!umem->nmap) {
 		ret = -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/umem_odp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/umem_odp.c
@@ -632,7 +632,7 @@
 
 	while (bcnt > 0) {
 		const size_t gup_num_pages = min_t(size_t,
-				(bcnt + BIT(page_shift) - 1) >> page_shift,
+				ALIGN(bcnt, PAGE_SIZE) / PAGE_SIZE,
 				PAGE_SIZE / sizeof(struct page *));
 
 		down_read(&owning_mm->mmap_sem);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/user_mad.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/user_mad.c
@@ -379,6 +379,11 @@
 
 	mutex_lock(&file->mutex);
 
+	if (file->agents_dead) {
+		mutex_unlock(&file->mutex);
+		return -EIO;
+	}
+
 	while (list_empty(&file->recv_list)) {
 		mutex_unlock(&file->mutex);
 
@@ -392,6 +397,11 @@
 		mutex_lock(&file->mutex);
 	}
 
+	if (file->agents_dead) {
+		mutex_unlock(&file->mutex);
+		return -EIO;
+	}
+
 	packet = list_entry(file->recv_list.next, struct ib_umad_packet, list);
 	list_del(&packet->list);
 
@@ -524,7 +534,7 @@
 
 	agent = __get_agent(file, packet->mad.hdr.id);
 	if (!agent) {
-		ret = -EINVAL;
+		ret = -EIO;
 		goto err_up;
 	}
 
@@ -653,10 +663,14 @@
 	/* we will always be able to post a MAD send */
 	__poll_t mask = EPOLLOUT | EPOLLWRNORM;
 
+	mutex_lock(&file->mutex);
 	poll_wait(filp, &file->recv_wait, wait);
 
 	if (!list_empty(&file->recv_list))
 		mask |= EPOLLIN | EPOLLRDNORM;
+	if (file->agents_dead)
+		mask = EPOLLERR;
+	mutex_unlock(&file->mutex);
 
 	return mask;
 }
@@ -1129,17 +1143,30 @@
 	.llseek	 = no_llseek,
 };
 
+static struct ib_umad_port *get_port(struct ib_device *ibdev,
+				     struct ib_umad_device *umad_dev,
+				     unsigned int port)
+{
+	if (!umad_dev)
+		return ERR_PTR(-EOPNOTSUPP);
+	if (!rdma_is_port_valid(ibdev, port))
+		return ERR_PTR(-EINVAL);
+	if (!rdma_cap_ib_mad(ibdev, port))
+		return ERR_PTR(-EOPNOTSUPP);
+
+	return &umad_dev->ports[port - rdma_start_port(ibdev)];
+}
+
 static int ib_umad_get_nl_info(struct ib_device *ibdev, void *client_data,
 			       struct ib_client_nl_info *res)
 {
-	struct ib_umad_device *umad_dev = client_data;
+	struct ib_umad_port *port = get_port(ibdev, client_data, res->port);
 
-	if (!rdma_is_port_valid(ibdev, res->port))
-		return -EINVAL;
+	if (IS_ERR(port))
+		return PTR_ERR(port);
 
 	res->abi = IB_USER_MAD_ABI_VERSION;
-	res->cdev = &umad_dev->ports[res->port - rdma_start_port(ibdev)].dev;
-
+	res->cdev = &port->dev;
 	return 0;
 }
 
@@ -1154,15 +1181,13 @@
 static int ib_issm_get_nl_info(struct ib_device *ibdev, void *client_data,
 			       struct ib_client_nl_info *res)
 {
-	struct ib_umad_device *umad_dev =
-		ib_get_client_data(ibdev, &umad_client);
+	struct ib_umad_port *port = get_port(ibdev, client_data, res->port);
 
-	if (!rdma_is_port_valid(ibdev, res->port))
-		return -EINVAL;
+	if (IS_ERR(port))
+		return PTR_ERR(port);
 
 	res->abi = IB_USER_MAD_ABI_VERSION;
-	res->cdev = &umad_dev->ports[res->port - rdma_start_port(ibdev)].sm_dev;
-
+	res->cdev = &port->sm_dev;
 	return 0;
 }
 
@@ -1312,6 +1337,9 @@
 	struct ib_umad_file *file;
 	int id;
 
+	cdev_device_del(&port->sm_cdev, &port->sm_dev);
+	cdev_device_del(&port->cdev, &port->dev);
+
 	mutex_lock(&port->file_mutex);
 
 	/* Mark ib_dev NULL and block ioctl or other file ops to progress
@@ -1322,6 +1350,7 @@
 	list_for_each_entry(file, &port->file_list, port_list) {
 		mutex_lock(&file->mutex);
 		file->agents_dead = 1;
+		wake_up_interruptible(&file->recv_wait);
 		mutex_unlock(&file->mutex);
 
 		for (id = 0; id < IB_UMAD_MAX_AGENTS; ++id)
@@ -1331,8 +1360,6 @@
 
 	mutex_unlock(&port->file_mutex);
 
-	cdev_device_del(&port->sm_cdev, &port->sm_dev);
-	cdev_device_del(&port->cdev, &port->dev);
 	ida_free(&umad_ida, port->dev_num);
 
 	/* balances device_initialize() */
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/uverbs_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/uverbs_cmd.c
@@ -252,6 +252,8 @@
 	ucontext->closing = false;
 	ucontext->cleanup_retryable = false;
 
+	xa_init_flags(&ucontext->mmap_xa, XA_FLAGS_ALLOC);
+
 	ret = get_unused_fd_flags(O_CLOEXEC);
 	if (ret < 0)
 		goto err_free;
@@ -757,6 +759,7 @@
 	mr->uobject = uobj;
 	atomic_inc(&pd->usecnt);
 	mr->res.type = RDMA_RESTRACK_MR;
+	mr->iova = cmd.hca_va;
 	rdma_restrack_uadd(&mr->res);
 
 	uobj->object = mr;
@@ -847,6 +850,9 @@
 		atomic_dec(&old_pd->usecnt);
 	}
 
+	if (cmd.flags & IB_MR_REREG_TRANS)
+		mr->iova = cmd.hca_va;
+
 	memset(&resp, 0, sizeof(resp));
 	resp.lkey      = mr->lkey;
 	resp.rkey      = mr->rkey;
@@ -1431,17 +1437,7 @@
 		if (ret)
 			goto err_cb;
 
-		qp->pd		  = pd;
-		qp->send_cq	  = attr.send_cq;
-		qp->recv_cq	  = attr.recv_cq;
-		qp->srq		  = attr.srq;
-		qp->rwq_ind_tbl	  = ind_tbl;
-		qp->event_handler = attr.event_handler;
-		qp->qp_context	  = attr.qp_context;
-		qp->qp_type	  = attr.qp_type;
-		atomic_set(&qp->usecnt, 0);
 		atomic_inc(&pd->usecnt);
-		qp->port = 0;
 		if (attr.send_cq)
 			atomic_inc(&attr.send_cq->usecnt);
 		if (attr.recv_cq)
@@ -2718,12 +2714,6 @@
 	return 0;
 }
 
-static size_t kern_spec_filter_sz(const struct ib_uverbs_flow_spec_hdr *spec)
-{
-	/* Returns user space filter size, includes padding */
-	return (spec->size - sizeof(struct ib_uverbs_flow_spec_hdr)) / 2;
-}
-
 static ssize_t spec_filter_size(const void *kern_spec_filter, u16 kern_filter_size,
 				u16 ib_real_filter_sz)
 {
@@ -2867,11 +2857,16 @@
 static int kern_spec_to_ib_spec_filter(struct ib_uverbs_flow_spec *kern_spec,
 				       union ib_flow_spec *ib_spec)
 {
-	ssize_t kern_filter_sz;
+	size_t kern_filter_sz;
 	void *kern_spec_mask;
 	void *kern_spec_val;
 
-	kern_filter_sz = kern_spec_filter_sz(&kern_spec->hdr);
+	if (check_sub_overflow((size_t)kern_spec->hdr.size,
+			       sizeof(struct ib_uverbs_flow_spec_hdr),
+			       &kern_filter_sz))
+		return -EINVAL;
+
+	kern_filter_sz /= 2;
 
 	kern_spec_val = (void *)kern_spec +
 		sizeof(struct ib_uverbs_flow_spec_hdr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/uverbs_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/uverbs_main.c
@@ -220,7 +220,6 @@
 }
 
 static ssize_t ib_uverbs_event_read(struct ib_uverbs_event_queue *ev_queue,
-				    struct ib_uverbs_file *uverbs_file,
 				    struct file *filp, char __user *buf,
 				    size_t count, loff_t *pos,
 				    size_t eventsz)
@@ -238,19 +237,16 @@
 
 		if (wait_event_interruptible(ev_queue->poll_wait,
 					     (!list_empty(&ev_queue->event_list) ||
-			/* The barriers built into wait_event_interruptible()
-			 * and wake_up() guarentee this will see the null set
-			 * without using RCU
-			 */
-					     !uverbs_file->device->ib_dev)))
+					      ev_queue->is_closed)))
 			return -ERESTARTSYS;
 
+		spin_lock_irq(&ev_queue->lock);
+
 		/* If device was disassociated and no event exists set an error */
-		if (list_empty(&ev_queue->event_list) &&
-		    !uverbs_file->device->ib_dev)
+		if (list_empty(&ev_queue->event_list) && ev_queue->is_closed) {
+			spin_unlock_irq(&ev_queue->lock);
 			return -EIO;
-
-		spin_lock_irq(&ev_queue->lock);
+		}
 	}
 
 	event = list_entry(ev_queue->event_list.next, struct ib_uverbs_event, list);
@@ -285,8 +281,7 @@
 {
 	struct ib_uverbs_async_event_file *file = filp->private_data;
 
-	return ib_uverbs_event_read(&file->ev_queue, file->uverbs_file, filp,
-				    buf, count, pos,
+	return ib_uverbs_event_read(&file->ev_queue, filp, buf, count, pos,
 				    sizeof(struct ib_uverbs_async_event_desc));
 }
 
@@ -296,9 +291,8 @@
 	struct ib_uverbs_completion_event_file *comp_ev_file =
 		filp->private_data;
 
-	return ib_uverbs_event_read(&comp_ev_file->ev_queue,
-				    comp_ev_file->uobj.ufile, filp,
-				    buf, count, pos,
+	return ib_uverbs_event_read(&comp_ev_file->ev_queue, filp, buf, count,
+				    pos,
 				    sizeof(struct ib_uverbs_comp_event_desc));
 }
 
@@ -313,6 +307,8 @@
 	spin_lock_irq(&ev_queue->lock);
 	if (!list_empty(&ev_queue->event_list))
 		pollflags = EPOLLIN | EPOLLRDNORM;
+	else if (ev_queue->is_closed)
+		pollflags = EPOLLERR;
 	spin_unlock_irq(&ev_queue->lock);
 
 	return pollflags;
@@ -321,7 +317,9 @@
 static __poll_t ib_uverbs_async_event_poll(struct file *filp,
 					       struct poll_table_struct *wait)
 {
-	return ib_uverbs_event_poll(filp->private_data, filp, wait);
+	struct ib_uverbs_async_event_file *file = filp->private_data;
+
+	return ib_uverbs_event_poll(&file->ev_queue, filp, wait);
 }
 
 static __poll_t ib_uverbs_comp_event_poll(struct file *filp,
@@ -335,9 +333,9 @@
 
 static int ib_uverbs_async_event_fasync(int fd, struct file *filp, int on)
 {
-	struct ib_uverbs_event_queue *ev_queue = filp->private_data;
+	struct ib_uverbs_async_event_file *file = filp->private_data;
 
-	return fasync_helper(fd, filp, on, &ev_queue->async_queue);
+	return fasync_helper(fd, filp, on, &file->ev_queue.async_queue);
 }
 
 static int ib_uverbs_comp_event_fasync(int fd, struct file *filp, int on)
@@ -772,6 +770,8 @@
 	return (ret) ? : count;
 }
 
+static const struct vm_operations_struct rdma_umap_ops;
+
 static int ib_uverbs_mmap(struct file *filp, struct vm_area_struct *vma)
 {
 	struct ib_uverbs_file *file = filp->private_data;
@@ -785,7 +785,7 @@
 		ret = PTR_ERR(ucontext);
 		goto out;
 	}
-
+	vma->vm_ops = &rdma_umap_ops;
 	ret = ucontext->device->ops.mmap(ucontext, vma);
 out:
 	srcu_read_unlock(&file->device->disassociate_srcu, srcu_key);
@@ -793,38 +793,6 @@
 }
 
 /*
- * Each time we map IO memory into user space this keeps track of the mapping.
- * When the device is hot-unplugged we 'zap' the mmaps in user space to point
- * to the zero page and allow the hot unplug to proceed.
- *
- * This is necessary for cases like PCI physical hot unplug as the actual BAR
- * memory may vanish after this and access to it from userspace could MCE.
- *
- * RDMA drivers supporting disassociation must have their user space designed
- * to cope in some way with their IO pages going to the zero page.
- */
-struct rdma_umap_priv {
-	struct vm_area_struct *vma;
-	struct list_head list;
-};
-
-static const struct vm_operations_struct rdma_umap_ops;
-
-static void rdma_umap_priv_init(struct rdma_umap_priv *priv,
-				struct vm_area_struct *vma)
-{
-	struct ib_uverbs_file *ufile = vma->vm_file->private_data;
-
-	priv->vma = vma;
-	vma->vm_private_data = priv;
-	vma->vm_ops = &rdma_umap_ops;
-
-	mutex_lock(&ufile->umap_lock);
-	list_add(&priv->list, &ufile->umaps);
-	mutex_unlock(&ufile->umap_lock);
-}
-
-/*
  * The VMA has been dup'd, initialize the vm_private_data with a new tracking
  * struct
  */
@@ -849,7 +817,7 @@
 	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		goto out_unlock;
-	rdma_umap_priv_init(priv, vma);
+	rdma_umap_priv_init(priv, vma, opriv->entry);
 
 	up_read(&ufile->hw_destroy_rwsem);
 	return;
@@ -880,6 +848,9 @@
 	 * this point.
 	 */
 	mutex_lock(&ufile->umap_lock);
+	if (priv->entry)
+		rdma_user_mmap_entry_put(priv->entry);
+
 	list_del(&priv->list);
 	mutex_unlock(&ufile->umap_lock);
 	kfree(priv);
@@ -931,44 +902,6 @@
 	.fault = rdma_umap_fault,
 };
 
-/*
- * Map IO memory into a process. This is to be called by drivers as part of
- * their mmap() functions if they wish to send something like PCI-E BAR memory
- * to userspace.
- */
-int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma,
-		      unsigned long pfn, unsigned long size, pgprot_t prot)
-{
-	struct ib_uverbs_file *ufile = ucontext->ufile;
-	struct rdma_umap_priv *priv;
-
-	if (!(vma->vm_flags & VM_SHARED))
-		return -EINVAL;
-
-	if (vma->vm_end - vma->vm_start != size)
-		return -EINVAL;
-
-	/* Driver is using this wrong, must be called by ib_uverbs_mmap */
-	if (WARN_ON(!vma->vm_file ||
-		    vma->vm_file->private_data != ufile))
-		return -EINVAL;
-	lockdep_assert_held(&ufile->device->disassociate_srcu);
-
-	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
-
-	vma->vm_page_prot = prot;
-	if (io_remap_pfn_range(vma, vma->vm_start, pfn, size, prot)) {
-		kfree(priv);
-		return -EAGAIN;
-	}
-
-	rdma_umap_priv_init(priv, vma);
-	return 0;
-}
-EXPORT_SYMBOL(rdma_user_mmap_io);
-
 void uverbs_user_mmap_disassociate(struct ib_uverbs_file *ufile)
 {
 	struct rdma_umap_priv *priv, *next_priv;
@@ -1018,6 +951,11 @@
 
 			zap_vma_ptes(vma, vma->vm_start,
 				     vma->vm_end - vma->vm_start);
+
+			if (priv->entry) {
+				rdma_user_mmap_entry_put(priv->entry);
+				priv->entry = NULL;
+			}
 		}
 		mutex_unlock(&ufile->umap_lock);
 	skip_mm:
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/core/verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/core/verbs.c
@@ -1180,16 +1180,6 @@
 	if (ret)
 		goto err;
 
-	qp->qp_type    = qp_init_attr->qp_type;
-	qp->rwq_ind_tbl = qp_init_attr->rwq_ind_tbl;
-
-	atomic_set(&qp->usecnt, 0);
-	qp->mrs_used = 0;
-	spin_lock_init(&qp->mr_lock);
-	INIT_LIST_HEAD(&qp->rdma_mrs);
-	INIT_LIST_HEAD(&qp->sig_mrs);
-	qp->port = 0;
-
 	if (qp_init_attr->qp_type == IB_QPT_XRC_TGT) {
 		struct ib_qp *xrc_qp =
 			create_xrc_qp_user(qp, qp_init_attr, udata);
@@ -1658,7 +1648,7 @@
 		if (!(rdma_protocol_ib(qp->device,
 				       attr->alt_ah_attr.port_num) &&
 		      rdma_protocol_ib(qp->device, port))) {
-			ret = EINVAL;
+			ret = -EINVAL;
 			goto out;
 		}
 	}
@@ -1759,7 +1749,7 @@
 
 	dev_put(netdev);
 
-	if (!rc) {
+	if (!rc && lksettings.base.speed != (u32)SPEED_UNKNOWN) {
 		netdev_speed = lksettings.base.speed;
 	} else {
 		netdev_speed = SPEED_1000;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -855,7 +855,7 @@
 		bytes += (qplib_qp->sq.max_wqe * psn_sz);
 	}
 	bytes = PAGE_ALIGN(bytes);
-	umem = ib_umem_get(udata, ureq.qpsva, bytes, IB_ACCESS_LOCAL_WRITE, 1);
+	umem = ib_umem_get(udata, ureq.qpsva, bytes, IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(umem))
 		return PTR_ERR(umem);
 
@@ -869,7 +869,7 @@
 		bytes = (qplib_qp->rq.max_wqe * BNXT_QPLIB_MAX_RQE_ENTRY_SIZE);
 		bytes = PAGE_ALIGN(bytes);
 		umem = ib_umem_get(udata, ureq.qprva, bytes,
-				   IB_ACCESS_LOCAL_WRITE, 1);
+				   IB_ACCESS_LOCAL_WRITE);
 		if (IS_ERR(umem))
 			goto rqfail;
 		qp->rumem = umem;
@@ -1322,7 +1322,7 @@
 
 	bytes = (qplib_srq->max_wqe * BNXT_QPLIB_MAX_RQE_ENTRY_SIZE);
 	bytes = PAGE_ALIGN(bytes);
-	umem = ib_umem_get(udata, ureq.srqva, bytes, IB_ACCESS_LOCAL_WRITE, 1);
+	umem = ib_umem_get(udata, ureq.srqva, bytes, IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(umem))
 		return PTR_ERR(umem);
 
@@ -1793,6 +1793,7 @@
 		goto out;
 	}
 	qp_attr->qp_state = __to_ib_qp_state(qplib_qp->state);
+	qp_attr->cur_qp_state = __to_ib_qp_state(qplib_qp->cur_qp_state);
 	qp_attr->en_sqd_async_notify = qplib_qp->en_sqd_async_notify ? 1 : 0;
 	qp_attr->qp_access_flags = __to_ib_access_flags(qplib_qp->access);
 	qp_attr->pkey_index = qplib_qp->pkey_index;
@@ -2565,7 +2566,7 @@
 
 		cq->umem = ib_umem_get(udata, req.cq_va,
 				       entries * sizeof(struct cq_base),
-				       IB_ACCESS_LOCAL_WRITE, 1);
+				       IB_ACCESS_LOCAL_WRITE);
 		if (IS_ERR(cq->umem)) {
 			rc = PTR_ERR(cq->umem);
 			goto fail;
@@ -2973,6 +2974,19 @@
 	wc->wc_flags |= IB_WC_GRH;
 }
 
+static bool bnxt_re_check_if_vlan_valid(struct bnxt_re_dev *rdev,
+					u16 vlan_id)
+{
+	/*
+	 * Check if the vlan is configured in the host.  If not configured, it
+	 * can be a transparent VLAN. So dont report the vlan id.
+	 */
+	if (!__vlan_find_dev_deep_rcu(rdev->netdev,
+				      htons(ETH_P_8021Q), vlan_id))
+		return false;
+	return true;
+}
+
 static bool bnxt_re_is_vlan_pkt(struct bnxt_qplib_cqe *orig_cqe,
 				u16 *vid, u8 *sl)
 {
@@ -3041,9 +3055,11 @@
 	wc->src_qp = orig_cqe->src_qp;
 	memcpy(wc->smac, orig_cqe->smac, ETH_ALEN);
 	if (bnxt_re_is_vlan_pkt(orig_cqe, &vlan_id, &sl)) {
-		wc->vlan_id = vlan_id;
-		wc->sl = sl;
-		wc->wc_flags |= IB_WC_WITH_VLAN;
+		if (bnxt_re_check_if_vlan_valid(rdev, vlan_id)) {
+			wc->vlan_id = vlan_id;
+			wc->sl = sl;
+			wc->wc_flags |= IB_WC_WITH_VLAN;
+		}
 	}
 	wc->port_num = 1;
 	wc->vendor_err = orig_cqe->status;
@@ -3323,8 +3339,10 @@
 	int rc;
 
 	rc = bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr);
-	if (rc)
+	if (rc) {
 		dev_err(rdev_to_dev(rdev), "Dereg MR failed: %#x\n", rc);
+		return rc;
+	}
 
 	if (mr->pages) {
 		rc = bnxt_qplib_free_fast_reg_page_list(&rdev->qplib_res,
@@ -3530,7 +3548,7 @@
 	/* The fixed portion of the rkey is the same as the lkey */
 	mr->ib_mr.rkey = mr->qplib_mr.rkey;
 
-	umem = ib_umem_get(udata, start, length, mr_access_flags, 0);
+	umem = ib_umem_get(udata, start, length, mr_access_flags);
 	if (IS_ERR(umem)) {
 		dev_err(rdev_to_dev(rdev), "Failed to get umem");
 		rc = -EFAULT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/bnxt_re/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/bnxt_re/main.c
@@ -477,6 +477,7 @@
 	bnxt_re_init_hwrm_hdr(rdev, (void *)&req, HWRM_STAT_CTX_ALLOC, -1, -1);
 	req.update_period_ms = cpu_to_le32(1000);
 	req.stats_dma_addr = cpu_to_le64(dma_map);
+	req.stats_dma_length = cpu_to_le16(sizeof(struct ctx_hw_stats_ext));
 	req.stat_ctx_flags = STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE;
 	bnxt_re_fill_fw_msg(&fw_msg, (void *)&req, sizeof(req), (void *)&resp,
 			    sizeof(resp), DFLT_HWRM_CMD_TIMEOUT);
@@ -788,7 +789,8 @@
 	struct ib_event event;
 	unsigned int flags;
 
-	if (qp->qplib_qp.state == CMDQ_MODIFY_QP_NEW_STATE_ERR) {
+	if (qp->qplib_qp.state == CMDQ_MODIFY_QP_NEW_STATE_ERR &&
+	    rdma_is_kernel_res(&qp->ib_qp.res)) {
 		flags = bnxt_re_lock_cqs(qp);
 		bnxt_qplib_add_flush_qp(&qp->qplib_qp);
 		bnxt_re_unlock_cqs(qp, flags);
@@ -1270,10 +1272,10 @@
 		return;
 	}
 	rdev->qplib_ctx.hwrm_intf_ver =
-		(u64)resp.hwrm_intf_major << 48 |
-		(u64)resp.hwrm_intf_minor << 32 |
-		(u64)resp.hwrm_intf_build << 16 |
-		resp.hwrm_intf_patch;
+		(u64)le16_to_cpu(resp.hwrm_intf_major) << 48 |
+		(u64)le16_to_cpu(resp.hwrm_intf_minor) << 32 |
+		(u64)le16_to_cpu(resp.hwrm_intf_build) << 16 |
+		le16_to_cpu(resp.hwrm_intf_patch);
 }
 
 static void bnxt_re_ib_unreg(struct bnxt_re_dev *rdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -2283,13 +2283,13 @@
 			/* Add qp to flush list of the CQ */
 			bnxt_qplib_add_flush_qp(qp);
 		} else {
+			/* Before we complete, do WA 9060 */
+			if (do_wa9060(qp, cq, cq_cons, sw_sq_cons,
+				      cqe_sq_cons)) {
+				*lib_qp = qp;
+				goto out;
+			}
 			if (swq->flags & SQ_SEND_FLAGS_SIGNAL_COMP) {
-				/* Before we complete, do WA 9060 */
-				if (do_wa9060(qp, cq, cq_cons, sw_sq_cons,
-					      cqe_sq_cons)) {
-					*lib_qp = qp;
-					goto out;
-				}
 				cqe->status = CQ_REQ_STATUS_OK;
 				cqe++;
 				(*budget)--;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_res.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_res.h
@@ -186,7 +186,9 @@
 	u8	chip_metal;
 };
 
-#define CHIP_NUM_57500          0x1750
+#define CHIP_NUM_57508		0x1750
+#define CHIP_NUM_57504		0x1751
+#define CHIP_NUM_57502		0x1752
 
 struct bnxt_qplib_res {
 	struct pci_dev			*pdev;
@@ -203,7 +205,9 @@
 
 static inline bool bnxt_qplib_is_chip_gen_p5(struct bnxt_qplib_chip_ctx *cctx)
 {
-	return (cctx->chip_num == CHIP_NUM_57500);
+	return (cctx->chip_num == CHIP_NUM_57508 ||
+		cctx->chip_num == CHIP_NUM_57504 ||
+		cctx->chip_num == CHIP_NUM_57502);
 }
 
 static inline u8 bnxt_qplib_get_hwq_type(struct bnxt_qplib_res *res)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_sp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_sp.c
@@ -152,7 +152,7 @@
 	attr->max_inline_data = le32_to_cpu(sb->max_inline_data);
 	attr->l2_db_size = (sb->l2_db_space_size + 1) *
 			    (0x01 << RCFW_DBR_BASE_PAGE_SHIFT);
-	attr->max_sgid = le32_to_cpu(sb->max_gid);
+	attr->max_sgid = BNXT_QPLIB_NUM_GIDS_SUPPORTED;
 
 	bnxt_qplib_query_version(rcfw, attr->fw_ver);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_sp.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_sp.h
@@ -47,6 +47,7 @@
 struct bnxt_qplib_dev_attr {
 #define FW_VER_ARR_LEN			4
 	u8				fw_ver[FW_VER_ARR_LEN];
+#define BNXT_QPLIB_NUM_GIDS_SUPPORTED	256
 	u16				max_sgid;
 	u16				max_mrw;
 	u32				max_qp;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -451,7 +451,7 @@
 
 	mhp->rhp = rhp;
 
-	mhp->umem = ib_umem_get(udata, start, length, acc, 0);
+	mhp->umem = ib_umem_get(udata, start, length, acc);
 	if (IS_ERR(mhp->umem)) {
 		err = PTR_ERR(mhp->umem);
 		kfree(mhp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/cxgb4/cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/cxgb4/cm.c
@@ -2891,8 +2891,7 @@
 			srqidx = ABORT_RSS_SRQIDX_G(
 					be32_to_cpu(req->srqidx_status));
 			if (srqidx) {
-				complete_cached_srq_buffers(ep,
-							    req->srqidx_status);
+				complete_cached_srq_buffers(ep, srqidx);
 			} else {
 				/* Hold ep ref until finish_peer_abort() */
 				c4iw_get_ep(&ep->com);
@@ -3036,6 +3035,10 @@
 				       C4IW_QP_ATTR_NEXT_STATE, &attrs, 1);
 		}
 
+		/* As per draft-hilland-iwarp-verbs-v1.0, sec 6.2.3,
+		 * when entering the TERM state the RNIC MUST initiate a CLOSE.
+		 */
+		c4iw_ep_disconnect(ep, 1, GFP_KERNEL);
 		c4iw_put_ep(&ep->com);
 	} else
 		pr_warn("TERM received tid %u no ep/qp\n", tid);
@@ -3379,7 +3382,7 @@
 		if (raddr->sin_addr.s_addr == htonl(INADDR_ANY)) {
 			err = pick_local_ipaddrs(dev, cm_id);
 			if (err)
-				goto fail2;
+				goto fail3;
 		}
 
 		/* find a route */
@@ -3401,7 +3404,7 @@
 		if (ipv6_addr_type(&raddr6->sin6_addr) == IPV6_ADDR_ANY) {
 			err = pick_local_ip6addrs(dev, cm_id);
 			if (err)
-				goto fail2;
+				goto fail3;
 		}
 
 		/* find a route */
@@ -3874,8 +3877,8 @@
 		return 0;
 	}
 
-	ep->srqe_idx = t4_tcb_get_field32(tcb, TCB_RQ_START_W, TCB_RQ_START_W,
-			TCB_RQ_START_S);
+	ep->srqe_idx = t4_tcb_get_field32(tcb, TCB_RQ_START_W, TCB_RQ_START_M,
+					  TCB_RQ_START_S);
 cleanup:
 	pr_debug("ep %p tid %u %016x\n", ep, ep->hwtid, ep->srqe_idx);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/cxgb4/cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/cxgb4/cq.c
@@ -1007,6 +1007,9 @@
 	if (attr->flags)
 		return -EINVAL;
 
+	if (entries < 1 || entries > ibdev->attrs.max_cqe)
+		return -EINVAL;
+
 	if (vector >= rhp->rdev.lldi.nciq)
 		return -EINVAL;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/cxgb4/device.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/cxgb4/device.c
@@ -953,6 +953,7 @@
 static void c4iw_remove(struct uld_ctx *ctx)
 {
 	pr_debug("c4iw_dev %p\n", ctx->dev);
+	debugfs_remove_recursive(ctx->dev->debugfs_root);
 	c4iw_unregister_device(ctx->dev);
 	c4iw_dealloc(ctx);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/cxgb4/mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/cxgb4/mem.c
@@ -399,7 +399,6 @@
 	mmid = stag >> 8;
 	mhp->ibmr.rkey = mhp->ibmr.lkey = stag;
 	mhp->ibmr.length = mhp->attr.len;
-	mhp->ibmr.iova = mhp->attr.va_fbo;
 	mhp->ibmr.page_size = 1U << (mhp->attr.page_size + 12);
 	pr_debug("mmid 0x%x mhp %p\n", mmid, mhp);
 	return xa_insert_irq(&mhp->rhp->mrs, mmid, mhp, GFP_KERNEL);
@@ -543,7 +542,7 @@
 
 	mhp->rhp = rhp;
 
-	mhp->umem = ib_umem_get(udata, start, length, acc, 0);
+	mhp->umem = ib_umem_get(udata, start, length, acc);
 	if (IS_ERR(mhp->umem))
 		goto err_free_skb;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/cxgb4/qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/cxgb4/qp.c
@@ -1948,10 +1948,10 @@
 			qhp->attr.layer_etype = attrs->layer_etype;
 			qhp->attr.ecode = attrs->ecode;
 			ep = qhp->ep;
-			c4iw_get_ep(&ep->com);
-			disconnect = 1;
 			if (!internal) {
+				c4iw_get_ep(&ep->com);
 				terminate = 1;
+				disconnect = 1;
 			} else {
 				terminate = qhp->attr.send_term;
 				ret = rdma_fini(rhp, qhp, ep);
@@ -2471,7 +2471,7 @@
 	init_attr->cap.max_send_wr = qhp->attr.sq_num_entries;
 	init_attr->cap.max_recv_wr = qhp->attr.rq_num_entries;
 	init_attr->cap.max_send_sge = qhp->attr.sq_max_sges;
-	init_attr->cap.max_recv_sge = qhp->attr.sq_max_sges;
+	init_attr->cap.max_recv_sge = qhp->attr.rq_max_sges;
 	init_attr->cap.max_inline_data = T4_MAX_SEND_INLINE;
 	init_attr->sq_sig_type = qhp->sq_sig_all ? IB_SIGNAL_ALL_WR : 0;
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
@@ -579,7 +579,8 @@
 	/* Number of sub-CQs to be created for each CQ */
 	u16 sub_cqs_per_cq;
 
-	u16 reserved;
+	/* Minimum number of WQEs per SQ */
+	u16 min_sq_depth;
 
 	/*
 	 * Maximum number of SGEs (buffs) allowed for a single send work
@@ -604,6 +605,17 @@
 
 	/* The maximum size of LLQ in bytes */
 	u32 max_llq_size;
+
+	/*
+	 * Maximum number of bytes that can be written to SQ between two
+	 * consecutive doorbells (in units of 64B). Driver must ensure that only
+	 * complete WQEs are written to queue before issuing a doorbell.
+	 * Examples: max_tx_batch=16 and WQE size = 64B, means up to 16 WQEs can
+	 * be written to SQ between two consecutive doorbells. max_tx_batch=11
+	 * and WQE size = 128B, means up to 5 WQEs can be written to SQ between
+	 * two consecutive doorbells. Zero means unlimited.
+	 */
+	u16 max_tx_batch;
 };
 
 struct efa_admin_feature_aenq_desc {
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/efa/efa_com.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/efa/efa_com.c
@@ -317,6 +317,7 @@
 						       struct efa_admin_acq_entry *comp,
 						       size_t comp_size_in_bytes)
 {
+	struct efa_admin_aq_entry *aqe;
 	struct efa_comp_ctx *comp_ctx;
 	u16 queue_size_mask;
 	u16 cmd_id;
@@ -350,7 +351,9 @@
 
 	reinit_completion(&comp_ctx->wait_event);
 
-	memcpy(&aq->sq.entries[pi], cmd, cmd_size_in_bytes);
+	aqe = &aq->sq.entries[pi];
+	memset(aqe, 0, sizeof(*aqe));
+	memcpy(aqe, cmd, cmd_size_in_bytes);
 
 	aq->sq.pc++;
 	atomic64_inc(&aq->stats.submitted_cmd);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/efa/efa_com_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/efa/efa_com_cmd.c
@@ -500,6 +500,8 @@
 	result->max_ah = resp.u.queue_attr.max_ah;
 	result->max_llq_size = resp.u.queue_attr.max_llq_size;
 	result->sub_cqs_per_cq = resp.u.queue_attr.sub_cqs_per_cq;
+	result->max_tx_batch = resp.u.queue_attr.max_tx_batch;
+	result->min_sq_depth = resp.u.queue_attr.min_sq_depth;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/efa/efa_com_cmd.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/efa/efa_com_cmd.h
@@ -127,6 +127,8 @@
 	u16 sub_cqs_per_cq;
 	u16 max_sq_sge;
 	u16 max_rq_sge;
+	u16 max_tx_batch;
+	u16 min_sq_depth;
 	u8 db_bar;
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/efa/efa_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/efa/efa_main.c
@@ -10,10 +10,12 @@
 
 #include "efa.h"
 
-#define PCI_DEV_ID_EFA_VF 0xefa0
+#define PCI_DEV_ID_EFA0_VF 0xefa0
+#define PCI_DEV_ID_EFA1_VF 0xefa1
 
 static const struct pci_device_id efa_pci_tbl[] = {
-	{ PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA_VF) },
+	{ PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA0_VF) },
+	{ PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA1_VF) },
 	{ }
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/efa/efa_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/efa/efa_verbs.c
@@ -1423,7 +1423,7 @@
 		goto err_out;
 	}
 
-	mr->umem = ib_umem_get(udata, start, length, access_flags, 0);
+	mr->umem = ib_umem_get(udata, start, length, access_flags);
 	if (IS_ERR(mr->umem)) {
 		err = PTR_ERR(mr->umem);
 		ibdev_dbg(&dev->ibdev,
@@ -1538,11 +1538,39 @@
 	return efa_com_dealloc_uar(&dev->edev, &params);
 }
 
+#define EFA_CHECK_USER_COMP(_dev, _comp_mask, _attr, _mask, _attr_str) \
+	(_attr_str = (!(_dev)->dev_attr._attr || ((_comp_mask) & (_mask))) ? \
+		     NULL : #_attr)
+
+static int efa_user_comp_handshake(const struct ib_ucontext *ibucontext,
+				   const struct efa_ibv_alloc_ucontext_cmd *cmd)
+{
+	struct efa_dev *dev = to_edev(ibucontext->device);
+	char *attr_str;
+
+	if (EFA_CHECK_USER_COMP(dev, cmd->comp_mask, max_tx_batch,
+				EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH, attr_str))
+		goto err;
+
+	if (EFA_CHECK_USER_COMP(dev, cmd->comp_mask, min_sq_depth,
+				EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR,
+				attr_str))
+		goto err;
+
+	return 0;
+
+err:
+	ibdev_dbg(&dev->ibdev, "Userspace handshake failed for %s attribute\n",
+		  attr_str);
+	return -EOPNOTSUPP;
+}
+
 int efa_alloc_ucontext(struct ib_ucontext *ibucontext, struct ib_udata *udata)
 {
 	struct efa_ucontext *ucontext = to_eucontext(ibucontext);
 	struct efa_dev *dev = to_edev(ibucontext->device);
 	struct efa_ibv_alloc_ucontext_resp resp = {};
+	struct efa_ibv_alloc_ucontext_cmd cmd = {};
 	struct efa_com_alloc_uar_result result;
 	int err;
 
@@ -1551,6 +1579,18 @@
 	 * we will ack input fields in our response.
 	 */
 
+	err = ib_copy_from_udata(&cmd, udata,
+				 min(sizeof(cmd), udata->inlen));
+	if (err) {
+		ibdev_dbg(&dev->ibdev,
+			  "Cannot copy udata for alloc_ucontext\n");
+		goto err_out;
+	}
+
+	err = efa_user_comp_handshake(ibucontext, &cmd);
+	if (err)
+		goto err_out;
+
 	err = efa_com_alloc_uar(&dev->edev, &result);
 	if (err)
 		goto err_out;
@@ -1563,6 +1603,8 @@
 	resp.sub_cqs_per_cq = dev->dev_attr.sub_cqs_per_cq;
 	resp.inline_buf_size = dev->dev_attr.inline_buf_size;
 	resp.max_llq_size = dev->dev_attr.max_llq_size;
+	resp.max_tx_batch = dev->dev_attr.max_tx_batch;
+	resp.min_sq_wr = dev->dev_attr.min_sq_depth;
 
 	if (udata && udata->outlen) {
 		err = ib_copy_to_udata(udata, &resp,
@@ -1612,11 +1654,13 @@
 	switch (entry->mmap_flag) {
 	case EFA_MMAP_IO_NC:
 		err = rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, length,
-					pgprot_noncached(vma->vm_page_prot));
+					pgprot_noncached(vma->vm_page_prot),
+					NULL);
 		break;
 	case EFA_MMAP_IO_WC:
 		err = rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, length,
-					pgprot_writecombine(vma->vm_page_prot));
+					pgprot_writecombine(vma->vm_page_prot),
+					NULL);
 		break;
 	case EFA_MMAP_DMA_PAGE:
 		for (va = vma->vm_start; va < vma->vm_end;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/affinity.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/affinity.c
@@ -479,6 +479,8 @@
 			  rvt_get_ibdev_name(&(dd)->verbs_dev.rdi), i, cpu);
 	}
 
+	free_cpumask_var(available_cpus);
+	free_cpumask_var(non_intr_cpus);
 	return 0;
 
 fail:
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/chip.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/chip.c
@@ -1685,6 +1685,14 @@
 	return dd->verbs_dev.n_piodrain;
 }
 
+static u64 access_sw_ctx0_seq_drop(const struct cntr_entry *entry,
+				   void *context, int vl, int mode, u64 data)
+{
+	struct hfi1_devdata *dd = context;
+
+	return dd->ctx0_seq_drop;
+}
+
 static u64 access_sw_vtx_wait(const struct cntr_entry *entry,
 			      void *context, int vl, int mode, u64 data)
 {
@@ -4106,6 +4114,7 @@
 static struct cntr_entry dev_cntrs[DEV_CNTR_LAST] = {
 [C_RCV_OVF] = RXE32_DEV_CNTR_ELEM(RcvOverflow, RCV_BUF_OVFL_CNT, CNTR_SYNTH),
 [C_RX_LEN_ERR] = RXE32_DEV_CNTR_ELEM(RxLenErr, RCV_LENGTH_ERR_CNT, CNTR_SYNTH),
+[C_RX_SHORT_ERR] = RXE32_DEV_CNTR_ELEM(RxShrErr, RCV_SHORT_ERR_CNT, CNTR_SYNTH),
 [C_RX_ICRC_ERR] = RXE32_DEV_CNTR_ELEM(RxICrcErr, RCV_ICRC_ERR_CNT, CNTR_SYNTH),
 [C_RX_EBP] = RXE32_DEV_CNTR_ELEM(RxEbpCnt, RCV_EBP_CNT, CNTR_SYNTH),
 [C_RX_TID_FULL] = RXE32_DEV_CNTR_ELEM(RxTIDFullEr, RCV_TID_FULL_ERR_CNT,
@@ -4249,6 +4258,8 @@
 			    access_sw_cpu_intr),
 [C_SW_CPU_RCV_LIM] = CNTR_ELEM("RcvLimit", 0, 0, CNTR_NORMAL,
 			    access_sw_cpu_rcv_limit),
+[C_SW_CTX0_SEQ_DROP] = CNTR_ELEM("SeqDrop0", 0, 0, CNTR_NORMAL,
+			    access_sw_ctx0_seq_drop),
 [C_SW_VTX_WAIT] = CNTR_ELEM("vTxWait", 0, 0, CNTR_NORMAL,
 			    access_sw_vtx_wait),
 [C_SW_PIO_WAIT] = CNTR_ELEM("PioWait", 0, 0, CNTR_NORMAL,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/chip.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/chip.h
@@ -859,6 +859,7 @@
 enum {
 	C_RCV_OVF = 0,
 	C_RX_LEN_ERR,
+	C_RX_SHORT_ERR,
 	C_RX_ICRC_ERR,
 	C_RX_EBP,
 	C_RX_TID_FULL,
@@ -926,6 +927,7 @@
 	C_DC_PG_STS_TX_MBE_CNT,
 	C_SW_CPU_INTR,
 	C_SW_CPU_RCV_LIM,
+	C_SW_CTX0_SEQ_DROP,
 	C_SW_VTX_WAIT,
 	C_SW_PIO_WAIT,
 	C_SW_PIO_DRAIN,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/chip_registers.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/chip_registers.h
@@ -381,6 +381,7 @@
 #define DC_LCB_STS_LINK_TRANSFER_ACTIVE (DC_LCB_CSRS + 0x000000000468)
 #define DC_LCB_STS_ROUND_TRIP_LTP_CNT (DC_LCB_CSRS + 0x0000000004B0)
 #define RCV_LENGTH_ERR_CNT 0
+#define RCV_SHORT_ERR_CNT 2
 #define RCV_ICRC_ERR_CNT 6
 #define RCV_EBP_CNT 9
 #define RCV_BUF_OVFL_CNT 10
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/debugfs.c
@@ -985,15 +985,10 @@
 static int __i2c_debugfs_open(struct inode *in, struct file *fp, u32 target)
 {
 	struct hfi1_pportdata *ppd;
-	int ret;
 
 	ppd = private2ppd(fp);
 
-	ret = acquire_chip_resource(ppd->dd, i2c_target(target), 0);
-	if (ret) /* failed - release the module */
-		module_put(THIS_MODULE);
-
-	return ret;
+	return acquire_chip_resource(ppd->dd, i2c_target(target), 0);
 }
 
 static int i2c1_debugfs_open(struct inode *in, struct file *fp)
@@ -1013,7 +1008,6 @@
 	ppd = private2ppd(fp);
 
 	release_chip_resource(ppd->dd, i2c_target(target));
-	module_put(THIS_MODULE);
 
 	return 0;
 }
@@ -1031,18 +1025,10 @@
 static int __qsfp_debugfs_open(struct inode *in, struct file *fp, u32 target)
 {
 	struct hfi1_pportdata *ppd;
-	int ret;
-
-	if (!try_module_get(THIS_MODULE))
-		return -ENODEV;
 
 	ppd = private2ppd(fp);
 
-	ret = acquire_chip_resource(ppd->dd, i2c_target(target), 0);
-	if (ret) /* failed - release the module */
-		module_put(THIS_MODULE);
-
-	return ret;
+	return acquire_chip_resource(ppd->dd, i2c_target(target), 0);
 }
 
 static int qsfp1_debugfs_open(struct inode *in, struct file *fp)
@@ -1062,7 +1048,6 @@
 	ppd = private2ppd(fp);
 
 	release_chip_resource(ppd->dd, i2c_target(target));
-	module_put(THIS_MODULE);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/driver.c
@@ -734,6 +734,7 @@
 {
 	int ret;
 
+	packet->rcd->dd->ctx0_seq_drop++;
 	/* Set up for the next packet */
 	packet->rhqoff += packet->rsize;
 	if (packet->rhqoff >= packet->maxcnt)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/file_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/file_ops.c
@@ -200,23 +200,24 @@
 
 	fd = kzalloc(sizeof(*fd), GFP_KERNEL);
 
-	if (fd) {
-		fd->rec_cpu_num = -1; /* no cpu affinity by default */
-		fd->mm = current->mm;
-		mmgrab(fd->mm);
-		fd->dd = dd;
-		kobject_get(&fd->dd->kobj);
-		fp->private_data = fd;
-	} else {
-		fp->private_data = NULL;
-
-		if (atomic_dec_and_test(&dd->user_refcount))
-			complete(&dd->user_comp);
-
-		return -ENOMEM;
-	}
-
+	if (!fd || init_srcu_struct(&fd->pq_srcu))
+		goto nomem;
+	spin_lock_init(&fd->pq_rcu_lock);
+	spin_lock_init(&fd->tid_lock);
+	spin_lock_init(&fd->invalid_lock);
+	fd->rec_cpu_num = -1; /* no cpu affinity by default */
+	fd->mm = current->mm;
+	mmgrab(fd->mm);
+	fd->dd = dd;
+	kobject_get(&fd->dd->kobj);
+	fp->private_data = fd;
 	return 0;
+nomem:
+	kfree(fd);
+	fp->private_data = NULL;
+	if (atomic_dec_and_test(&dd->user_refcount))
+		complete(&dd->user_comp);
+	return -ENOMEM;
 }
 
 static long hfi1_file_ioctl(struct file *fp, unsigned int cmd,
@@ -301,21 +302,30 @@
 static ssize_t hfi1_write_iter(struct kiocb *kiocb, struct iov_iter *from)
 {
 	struct hfi1_filedata *fd = kiocb->ki_filp->private_data;
-	struct hfi1_user_sdma_pkt_q *pq = fd->pq;
+	struct hfi1_user_sdma_pkt_q *pq;
 	struct hfi1_user_sdma_comp_q *cq = fd->cq;
 	int done = 0, reqs = 0;
 	unsigned long dim = from->nr_segs;
+	int idx;
 
-	if (!cq || !pq)
+	idx = srcu_read_lock(&fd->pq_srcu);
+	pq = srcu_dereference(fd->pq, &fd->pq_srcu);
+	if (!cq || !pq) {
+		srcu_read_unlock(&fd->pq_srcu, idx);
 		return -EIO;
+	}
 
-	if (!iter_is_iovec(from) || !dim)
+	if (!iter_is_iovec(from) || !dim) {
+		srcu_read_unlock(&fd->pq_srcu, idx);
 		return -EINVAL;
+	}
 
 	trace_hfi1_sdma_request(fd->dd, fd->uctxt->ctxt, fd->subctxt, dim);
 
-	if (atomic_read(&pq->n_reqs) == pq->n_max_reqs)
+	if (atomic_read(&pq->n_reqs) == pq->n_max_reqs) {
+		srcu_read_unlock(&fd->pq_srcu, idx);
 		return -ENOSPC;
+	}
 
 	while (dim) {
 		int ret;
@@ -333,6 +343,7 @@
 		reqs++;
 	}
 
+	srcu_read_unlock(&fd->pq_srcu, idx);
 	return reqs;
 }
 
@@ -707,6 +718,7 @@
 	if (atomic_dec_and_test(&dd->user_refcount))
 		complete(&dd->user_comp);
 
+	cleanup_srcu_struct(&fdata->pq_srcu);
 	kfree(fdata);
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/hfi.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/hfi.h
@@ -1153,6 +1153,8 @@
 
 	char *boardname; /* human readable board info */
 
+	u64 ctx0_seq_drop;
+
 	/* reset value */
 	u64 z_int_counter;
 	u64 z_rcv_limit;
@@ -1436,10 +1438,13 @@
 
 /* Private data for file operations */
 struct hfi1_filedata {
+	struct srcu_struct pq_srcu;
 	struct hfi1_devdata *dd;
 	struct hfi1_ctxtdata *uctxt;
 	struct hfi1_user_sdma_comp_q *cq;
-	struct hfi1_user_sdma_pkt_q *pq;
+	/* update side lock for SRCU */
+	spinlock_t pq_rcu_lock;
+	struct hfi1_user_sdma_pkt_q __rcu *pq;
 	u16 subctxt;
 	/* for cpu affinity; -1 if none */
 	int rec_cpu_num;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/init.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/init.c
@@ -845,6 +845,29 @@
 }
 
 /**
+ * destroy_workqueues - destroy per port workqueues
+ * @dd: the hfi1_ib device
+ */
+static void destroy_workqueues(struct hfi1_devdata *dd)
+{
+	int pidx;
+	struct hfi1_pportdata *ppd;
+
+	for (pidx = 0; pidx < dd->num_pports; ++pidx) {
+		ppd = dd->pport + pidx;
+
+		if (ppd->hfi1_wq) {
+			destroy_workqueue(ppd->hfi1_wq);
+			ppd->hfi1_wq = NULL;
+		}
+		if (ppd->link_wq) {
+			destroy_workqueue(ppd->link_wq);
+			ppd->link_wq = NULL;
+		}
+	}
+}
+
+/**
  * enable_general_intr() - Enable the IRQs that will be handled by the
  * general interrupt handler.
  * @dd: valid devdata
@@ -1117,15 +1140,10 @@
 		 * We can't count on interrupts since we are stopping.
 		 */
 		hfi1_quiet_serdes(ppd);
-
-		if (ppd->hfi1_wq) {
-			destroy_workqueue(ppd->hfi1_wq);
-			ppd->hfi1_wq = NULL;
-		}
-		if (ppd->link_wq) {
-			destroy_workqueue(ppd->link_wq);
-			ppd->link_wq = NULL;
-		}
+		if (ppd->hfi1_wq)
+			flush_workqueue(ppd->hfi1_wq);
+		if (ppd->link_wq)
+			flush_workqueue(ppd->link_wq);
 	}
 	sdma_exit(dd);
 }
@@ -1814,6 +1832,7 @@
 	 * clear dma engines, etc.
 	 */
 	shutdown_device(dd);
+	destroy_workqueues(dd);
 
 	stop_timers(dd);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/iowait.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/iowait.c
@@ -81,7 +81,9 @@
 void iowait_cancel_work(struct iowait *w)
 {
 	cancel_work_sync(&iowait_get_ib_work(w)->iowork);
-	cancel_work_sync(&iowait_get_tid_work(w)->iowork);
+	/* Make sure that the iowork for TID RDMA is used */
+	if (iowait_get_tid_work(w)->iowork.func)
+		cancel_work_sync(&iowait_get_tid_work(w)->iowork);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/qp.c
@@ -381,7 +381,10 @@
 	struct hfi1_ibport *ibp =
 		to_iport(qp->ibqp.device, qp->port_num);
 	struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
-	struct hfi1_devdata *dd = dd_from_ibdev(qp->ibqp.device);
+	struct hfi1_devdata *dd = ppd->dd;
+
+	if (dd->flags & HFI1_SHUTDOWN)
+		return true;
 
 	return iowait_schedule(&priv->s_iowait, ppd->hfi1_wq,
 			       priv->s_sde ?
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/sysfs.c
@@ -674,7 +674,11 @@
 		dd_dev_err(dd,
 			   "Skipping sc2vl sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail;
+		/*
+		 * Based on the documentation for kobject_init_and_add(), the
+		 * caller should call kobject_put even if this call fails.
+		 */
+		goto bail_sc2vl;
 	}
 	kobject_uevent(&ppd->sc2vl_kobj, KOBJ_ADD);
 
@@ -684,7 +688,7 @@
 		dd_dev_err(dd,
 			   "Skipping sl2sc sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail_sc2vl;
+		goto bail_sl2sc;
 	}
 	kobject_uevent(&ppd->sl2sc_kobj, KOBJ_ADD);
 
@@ -694,7 +698,7 @@
 		dd_dev_err(dd,
 			   "Skipping vl2mtu sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail_sl2sc;
+		goto bail_vl2mtu;
 	}
 	kobject_uevent(&ppd->vl2mtu_kobj, KOBJ_ADD);
 
@@ -704,7 +708,7 @@
 		dd_dev_err(dd,
 			   "Skipping Congestion Control sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail_vl2mtu;
+		goto bail_cc;
 	}
 
 	kobject_uevent(&ppd->pport_cc_kobj, KOBJ_ADD);
@@ -742,7 +746,6 @@
 	kobject_put(&ppd->sl2sc_kobj);
 bail_sc2vl:
 	kobject_put(&ppd->sc2vl_kobj);
-bail:
 	return ret;
 }
 
@@ -853,8 +856,13 @@
 
 	return 0;
 bail:
-	for (i = 0; i < dd->num_sdma; i++)
-		kobject_del(&dd->per_sdma[i].kobj);
+	/*
+	 * The function kobject_put() will call kobject_del() if the kobject
+	 * has been added successfully. The sysfs files created under the
+	 * kobject directory will also be removed during the process.
+	 */
+	for (; i >= 0; i--)
+		kobject_put(&dd->per_sdma[i].kobj);
 
 	return ret;
 }
@@ -867,6 +875,10 @@
 	struct hfi1_pportdata *ppd;
 	int i;
 
+	/* Unwind operations in hfi1_verbs_register_sysfs() */
+	for (i = 0; i < dd->num_sdma; i++)
+		kobject_put(&dd->per_sdma[i].kobj);
+
 	for (i = 0; i < dd->num_pports; i++) {
 		ppd = &dd->pport[i];
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/tid_rdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/tid_rdma.c
@@ -3215,6 +3215,7 @@
 	case IB_WR_ATOMIC_CMP_AND_SWP:
 	case IB_WR_ATOMIC_FETCH_AND_ADD:
 	case IB_WR_RDMA_WRITE:
+	case IB_WR_RDMA_WRITE_WITH_IMM:
 		switch (prev->wr.opcode) {
 		case IB_WR_TID_RDMA_WRITE:
 			req = wqe_to_tid_req(prev);
@@ -4633,6 +4634,15 @@
 			 */
 			fpsn = full_flow_psn(flow, flow->flow_state.spsn);
 			req->r_ack_psn = psn;
+			/*
+			 * If resync_psn points to the last flow PSN for a
+			 * segment and the new segment (likely from a new
+			 * request) starts with a new generation number, we
+			 * need to adjust resync_psn accordingly.
+			 */
+			if (flow->flow_state.generation !=
+			    (resync_psn >> HFI1_KDETH_BTH_SEQ_SHIFT))
+				resync_psn = mask_psn(fpsn - 1);
 			flow->resync_npkts +=
 				delta_psn(mask_psn(resync_psn + 1), fpsn);
 			/*
@@ -5397,7 +5407,10 @@
 	struct hfi1_ibport *ibp =
 		to_iport(qp->ibqp.device, qp->port_num);
 	struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
-	struct hfi1_devdata *dd = dd_from_ibdev(qp->ibqp.device);
+	struct hfi1_devdata *dd = ppd->dd;
+
+	if ((dd->flags & HFI1_SHUTDOWN))
+		return true;
 
 	return iowait_tid_schedule(&priv->s_iowait, ppd->hfi1_wq,
 				   priv->s_sde ?
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/user_exp_rcv.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/user_exp_rcv.c
@@ -90,9 +90,6 @@
 	struct hfi1_devdata *dd = uctxt->dd;
 	int ret = 0;
 
-	spin_lock_init(&fd->tid_lock);
-	spin_lock_init(&fd->invalid_lock);
-
 	fd->entry_to_rb = kcalloc(uctxt->expected_count,
 				  sizeof(struct rb_node *),
 				  GFP_KERNEL);
@@ -165,10 +162,12 @@
 	if (fd->handler) {
 		hfi1_mmu_rb_unregister(fd->handler);
 	} else {
+		mutex_lock(&uctxt->exp_mutex);
 		if (!EXP_TID_SET_EMPTY(uctxt->tid_full_list))
 			unlock_exp_tids(uctxt, &uctxt->tid_full_list, fd);
 		if (!EXP_TID_SET_EMPTY(uctxt->tid_used_list))
 			unlock_exp_tids(uctxt, &uctxt->tid_used_list, fd);
+		mutex_unlock(&uctxt->exp_mutex);
 	}
 
 	kfree(fd->invalid_tids);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/user_sdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -141,6 +141,7 @@
 	 */
 	xchg(&pq->state, SDMA_PKT_Q_DEFERRED);
 	if (list_empty(&pq->busy.list)) {
+		pq->busy.lock = &sde->waitlock;
 		iowait_get_priority(&pq->busy);
 		iowait_queue(pkts_sent, &pq->busy, &sde->dmawait);
 	}
@@ -155,6 +156,7 @@
 {
 	struct hfi1_user_sdma_pkt_q *pq =
 		container_of(wait, struct hfi1_user_sdma_pkt_q, busy);
+	pq->busy.lock = NULL;
 	xchg(&pq->state, SDMA_PKT_Q_ACTIVE);
 	wake_up(&wait->wait_dma);
 };
@@ -179,7 +181,6 @@
 	pq = kzalloc(sizeof(*pq), GFP_KERNEL);
 	if (!pq)
 		return -ENOMEM;
-
 	pq->dd = dd;
 	pq->ctxt = uctxt->ctxt;
 	pq->subctxt = fd->subctxt;
@@ -236,7 +237,7 @@
 		goto pq_mmu_fail;
 	}
 
-	fd->pq = pq;
+	rcu_assign_pointer(fd->pq, pq);
 	fd->cq = cq;
 
 	return 0;
@@ -257,6 +258,21 @@
 	return ret;
 }
 
+static void flush_pq_iowait(struct hfi1_user_sdma_pkt_q *pq)
+{
+	unsigned long flags;
+	seqlock_t *lock = pq->busy.lock;
+
+	if (!lock)
+		return;
+	write_seqlock_irqsave(lock, flags);
+	if (!list_empty(&pq->busy.list)) {
+		list_del_init(&pq->busy.list);
+		pq->busy.lock = NULL;
+	}
+	write_sequnlock_irqrestore(lock, flags);
+}
+
 int hfi1_user_sdma_free_queues(struct hfi1_filedata *fd,
 			       struct hfi1_ctxtdata *uctxt)
 {
@@ -264,8 +280,14 @@
 
 	trace_hfi1_sdma_user_free_queues(uctxt->dd, uctxt->ctxt, fd->subctxt);
 
-	pq = fd->pq;
+	spin_lock(&fd->pq_rcu_lock);
+	pq = srcu_dereference_check(fd->pq, &fd->pq_srcu,
+				    lockdep_is_held(&fd->pq_rcu_lock));
 	if (pq) {
+		rcu_assign_pointer(fd->pq, NULL);
+		spin_unlock(&fd->pq_rcu_lock);
+		synchronize_srcu(&fd->pq_srcu);
+		/* at this point there can be no more new requests */
 		if (pq->handler)
 			hfi1_mmu_rb_unregister(pq->handler);
 		iowait_sdma_drain(&pq->busy);
@@ -276,8 +298,10 @@
 		kfree(pq->reqs);
 		kfree(pq->req_in_use);
 		kmem_cache_destroy(pq->txreq_cache);
+		flush_pq_iowait(pq);
 		kfree(pq);
-		fd->pq = NULL;
+	} else {
+		spin_unlock(&fd->pq_rcu_lock);
 	}
 	if (fd->cq) {
 		vfree(fd->cq->comps);
@@ -321,7 +345,8 @@
 {
 	int ret = 0, i;
 	struct hfi1_ctxtdata *uctxt = fd->uctxt;
-	struct hfi1_user_sdma_pkt_q *pq = fd->pq;
+	struct hfi1_user_sdma_pkt_q *pq =
+		srcu_dereference(fd->pq, &fd->pq_srcu);
 	struct hfi1_user_sdma_comp_q *cq = fd->cq;
 	struct hfi1_devdata *dd = pq->dd;
 	unsigned long idx = 0;
@@ -564,10 +589,6 @@
 
 	set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
 	pq->state = SDMA_PKT_Q_ACTIVE;
-	/* Send the first N packets in the request to buy us some time */
-	ret = user_sdma_send_pkts(req, pcount);
-	if (unlikely(ret < 0 && ret != -EBUSY))
-		goto free_req;
 
 	/*
 	 * This is a somewhat blocking send implementation.
@@ -580,11 +601,12 @@
 		if (ret < 0) {
 			if (ret != -EBUSY)
 				goto free_req;
-			wait_event_interruptible_timeout(
+			if (wait_event_interruptible_timeout(
 				pq->busy.wait_dma,
-				(pq->state == SDMA_PKT_Q_ACTIVE),
+				pq->state == SDMA_PKT_Q_ACTIVE,
 				msecs_to_jiffies(
-					SDMA_IOWAIT_TIMEOUT));
+					SDMA_IOWAIT_TIMEOUT)) <= 0)
+				flush_pq_iowait(pq);
 		}
 	}
 	*count += idx;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hfi1/verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hfi1/verbs.c
@@ -515,10 +515,11 @@
 				       opa_get_lid(packet->dlid, 9B));
 		if (!mcast)
 			goto drop;
+		rcu_read_lock();
 		list_for_each_entry_rcu(p, &mcast->qp_list, list) {
 			packet->qp = p->qp;
 			if (hfi1_do_pkey_check(packet))
-				goto drop;
+				goto unlock_drop;
 			spin_lock_irqsave(&packet->qp->r_lock, flags);
 			packet_handler = qp_ok(packet);
 			if (likely(packet_handler))
@@ -527,6 +528,7 @@
 				ibp->rvp.n_pkt_drops++;
 			spin_unlock_irqrestore(&packet->qp->r_lock, flags);
 		}
+		rcu_read_unlock();
 		/*
 		 * Notify rvt_multicast_detach() if it is waiting for us
 		 * to finish.
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/Kconfig
@@ -1,23 +1,34 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config INFINIBAND_HNS
-	bool "HNS RoCE Driver"
+	tristate "HNS RoCE Driver"
 	depends on NET_VENDOR_HISILICON
 	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	depends on (HNS_DSAF && HNS_ENET) || HNS3
 	---help---
 	  This is a RoCE/RDMA driver for the Hisilicon RoCE engine. The engine
 	  is used in Hisilicon Hip06 and more further ICT SoC based on
 	  platform device.
 
+	  To compile HIP06 or HIP08 driver as module, choose M here.
+
 config INFINIBAND_HNS_HIP06
-	tristate "Hisilicon Hip06 Family RoCE support"
+	bool "Hisilicon Hip06 Family RoCE support"
 	depends on INFINIBAND_HNS && HNS && HNS_DSAF && HNS_ENET
+	depends on INFINIBAND_HNS=m || (HNS_DSAF=y && HNS_ENET=y)
 	---help---
 	  RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip06 and
 	  Hip07 SoC. These RoCE engines are platform devices.
 
+	  To compile this driver, choose Y here: if INFINIBAND_HNS is m, this
+	  module will be called hns-roce-hw-v1
+
 config INFINIBAND_HNS_HIP08
-	tristate "Hisilicon Hip08 Family RoCE support"
+	bool "Hisilicon Hip08 Family RoCE support"
 	depends on INFINIBAND_HNS && PCI && HNS3
+	depends on INFINIBAND_HNS=m || HNS3=y
 	---help---
 	  RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
 	  The RoCE engine is a PCI device.
+
+	  To compile this driver, choose Y here: if INFINIBAND_HNS is m, this
+	  module will be called hns-roce-hw-v2.
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/Makefile
@@ -9,8 +9,12 @@
 	hns_roce_ah.o hns_roce_hem.o hns_roce_mr.o hns_roce_qp.o \
 	hns_roce_cq.o hns_roce_alloc.o hns_roce_db.o hns_roce_srq.o hns_roce_restrack.o
 
+ifdef CONFIG_INFINIBAND_HNS_HIP06
 hns-roce-hw-v1-objs := hns_roce_hw_v1.o $(hns-roce-objs)
-obj-$(CONFIG_INFINIBAND_HNS_HIP06) += hns-roce-hw-v1.o
+obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v1.o
+endif
 
+ifdef CONFIG_INFINIBAND_HNS_HIP08
 hns-roce-hw-v2-objs := hns_roce_hw_v2.o hns_roce_hw_v2_dfx.o $(hns-roce-objs)
-obj-$(CONFIG_INFINIBAND_HNS_HIP08) += hns-roce-hw-v2.o
+obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v2.o
+endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_ah.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_ah.c
@@ -46,32 +46,32 @@
 	const struct ib_gid_attr *gid_attr;
 	struct device *dev = hr_dev->dev;
 	struct hns_roce_ah *ah = to_hr_ah(ibah);
-	u16 vlan_tag = 0xffff;
 	const struct ib_global_route *grh = rdma_ah_read_grh(ah_attr);
+	u16 vlan_id = 0xffff;
 	bool vlan_en = false;
 	int ret;
 
 	gid_attr = ah_attr->grh.sgid_attr;
-	ret = rdma_read_gid_l2_fields(gid_attr, &vlan_tag, NULL);
+	ret = rdma_read_gid_l2_fields(gid_attr, &vlan_id, NULL);
 	if (ret)
 		return ret;
 
 	/* Get mac address */
 	memcpy(ah->av.mac, ah_attr->roce.dmac, ETH_ALEN);
 
-	if (vlan_tag < VLAN_CFI_MASK) {
+	if (vlan_id < VLAN_N_VID) {
 		vlan_en = true;
-		vlan_tag |= (rdma_ah_get_sl(ah_attr) &
+		vlan_id |= (rdma_ah_get_sl(ah_attr) &
 			     HNS_ROCE_VLAN_SL_BIT_MASK) <<
 			     HNS_ROCE_VLAN_SL_SHIFT;
 	}
 
 	ah->av.port = rdma_ah_get_port_num(ah_attr);
 	ah->av.gid_index = grh->sgid_index;
-	ah->av.vlan = vlan_tag;
+	ah->av.vlan_id = vlan_id;
 	ah->av.vlan_en = vlan_en;
-	dev_dbg(dev, "gid_index = 0x%x,vlan = 0x%x\n", ah->av.gid_index,
-		ah->av.vlan);
+	dev_dbg(dev, "gid_index = 0x%x,vlan_id = 0x%x\n", ah->av.gid_index,
+		ah->av.vlan_id);
 
 	if (rdma_ah_get_static_rate(ah_attr))
 		ah->av.stat_rate = IB_RATE_10_GBPS;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_alloc.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_alloc.c
@@ -55,7 +55,7 @@
 			bitmap->last = 0;
 		*obj |= bitmap->top;
 	} else {
-		ret = -1;
+		ret = -EINVAL;
 	}
 
 	spin_unlock(&bitmap->lock);
@@ -100,7 +100,7 @@
 		}
 		*obj |= bitmap->top;
 	} else {
-		ret = -1;
+		ret = -EINVAL;
 	}
 
 	spin_unlock(&bitmap->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_cmd.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_cmd.h
@@ -115,12 +115,12 @@
 
 enum {
 	/* TPT commands */
-	HNS_ROCE_CMD_SW2HW_MPT		= 0xd,
-	HNS_ROCE_CMD_HW2SW_MPT		= 0xf,
+	HNS_ROCE_CMD_CREATE_MPT		= 0xd,
+	HNS_ROCE_CMD_DESTROY_MPT	= 0xf,
 
 	/* CQ commands */
-	HNS_ROCE_CMD_SW2HW_CQ		= 0x16,
-	HNS_ROCE_CMD_HW2SW_CQ		= 0x17,
+	HNS_ROCE_CMD_CREATE_CQC		= 0x16,
+	HNS_ROCE_CMD_DESTROY_CQC	= 0x17,
 
 	/* QP/EE commands */
 	HNS_ROCE_CMD_RST2INIT_QP	= 0x19,
@@ -129,14 +129,14 @@
 	HNS_ROCE_CMD_RTS2RTS_QP		= 0x1c,
 	HNS_ROCE_CMD_2ERR_QP		= 0x1e,
 	HNS_ROCE_CMD_RTS2SQD_QP		= 0x1f,
-	HNS_ROCE_CMD_SQD2SQD_QP		= 0x38,
 	HNS_ROCE_CMD_SQD2RTS_QP		= 0x20,
 	HNS_ROCE_CMD_2RST_QP		= 0x21,
 	HNS_ROCE_CMD_QUERY_QP		= 0x22,
-	HNS_ROCE_CMD_SW2HW_SRQ		= 0x70,
+	HNS_ROCE_CMD_SQD2SQD_QP		= 0x38,
+	HNS_ROCE_CMD_CREATE_SRQ		= 0x70,
 	HNS_ROCE_CMD_MODIFY_SRQC	= 0x72,
 	HNS_ROCE_CMD_QUERY_SRQC		= 0x73,
-	HNS_ROCE_CMD_HW2SW_SRQ		= 0x74,
+	HNS_ROCE_CMD_DESTROY_SRQ	= 0x74,
 };
 
 int hns_roce_cmd_mbox(struct hns_roce_dev *hr_dev, u64 in_param, u64 out_param,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_cq.c
@@ -39,51 +39,8 @@
 #include <rdma/hns-abi.h>
 #include "hns_roce_common.h"
 
-static void hns_roce_ib_cq_comp(struct hns_roce_cq *hr_cq)
-{
-	struct ib_cq *ibcq = &hr_cq->ib_cq;
-
-	ibcq->comp_handler(ibcq, ibcq->cq_context);
-}
-
-static void hns_roce_ib_cq_event(struct hns_roce_cq *hr_cq,
-				 enum hns_roce_event event_type)
-{
-	struct hns_roce_dev *hr_dev;
-	struct ib_event event;
-	struct ib_cq *ibcq;
-
-	ibcq = &hr_cq->ib_cq;
-	hr_dev = to_hr_dev(ibcq->device);
-
-	if (event_type != HNS_ROCE_EVENT_TYPE_CQ_ID_INVALID &&
-	    event_type != HNS_ROCE_EVENT_TYPE_CQ_ACCESS_ERROR &&
-	    event_type != HNS_ROCE_EVENT_TYPE_CQ_OVERFLOW) {
-		dev_err(hr_dev->dev,
-			"hns_roce_ib: Unexpected event type 0x%x on CQ %06lx\n",
-			event_type, hr_cq->cqn);
-		return;
-	}
-
-	if (ibcq->event_handler) {
-		event.device = ibcq->device;
-		event.event = IB_EVENT_CQ_ERR;
-		event.element.cq = ibcq;
-		ibcq->event_handler(&event, ibcq->cq_context);
-	}
-}
-
-static int hns_roce_sw2hw_cq(struct hns_roce_dev *dev,
-			     struct hns_roce_cmd_mailbox *mailbox,
-			     unsigned long cq_num)
-{
-	return hns_roce_cmd_mbox(dev, mailbox->dma, 0, cq_num, 0,
-			    HNS_ROCE_CMD_SW2HW_CQ, HNS_ROCE_CMD_TIMEOUT_MSECS);
-}
-
-static int hns_roce_cq_alloc(struct hns_roce_dev *hr_dev, int nent,
-			     struct hns_roce_mtt *hr_mtt,
-			     struct hns_roce_cq *hr_cq, int vector)
+static int hns_roce_alloc_cqc(struct hns_roce_dev *hr_dev,
+			      struct hns_roce_cq *hr_cq)
 {
 	struct hns_roce_cmd_mailbox *mailbox;
 	struct hns_roce_hem_table *mtt_table;
@@ -101,35 +58,32 @@
 	else
 		mtt_table = &hr_dev->mr_table.mtt_table;
 
-	mtts = hns_roce_table_find(hr_dev, mtt_table,
-				   hr_mtt->first_seg, &dma_handle);
-	if (!mtts) {
-		dev_err(dev, "CQ alloc.Failed to find cq buf addr.\n");
-		return -EINVAL;
-	}
+	mtts = hns_roce_table_find(hr_dev, mtt_table, hr_cq->mtt.first_seg,
+				   &dma_handle);
 
-	if (vector >= hr_dev->caps.num_comp_vectors) {
-		dev_err(dev, "CQ alloc.Invalid vector.\n");
+	if (!mtts) {
+		dev_err(dev, "Failed to find mtt for CQ buf.\n");
 		return -EINVAL;
 	}
-	hr_cq->vector = vector;
 
 	ret = hns_roce_bitmap_alloc(&cq_table->bitmap, &hr_cq->cqn);
-	if (ret == -1) {
-		dev_err(dev, "CQ alloc.Failed to alloc index.\n");
-		return -ENOMEM;
+	if (ret) {
+		dev_err(dev, "Num of CQ out of range.\n");
+		return ret;
 	}
 
 	/* Get CQC memory HEM(Hardware Entry Memory) table */
 	ret = hns_roce_table_get(hr_dev, &cq_table->table, hr_cq->cqn);
 	if (ret) {
-		dev_err(dev, "CQ alloc.Failed to get context mem.\n");
+		dev_err(dev,
+			"Get context mem failed(%d) when CQ(0x%lx) alloc.\n",
+			ret, hr_cq->cqn);
 		goto err_out;
 	}
 
 	ret = xa_err(xa_store(&cq_table->array, hr_cq->cqn, hr_cq, GFP_KERNEL));
 	if (ret) {
-		dev_err(dev, "CQ alloc failed xa_store.\n");
+		dev_err(dev, "Failed to xa_store CQ.\n");
 		goto err_put;
 	}
 
@@ -140,14 +94,16 @@
 		goto err_xa;
 	}
 
-	hr_dev->hw->write_cqc(hr_dev, hr_cq, mailbox->buf, mtts, dma_handle,
-			      nent, vector);
+	hr_dev->hw->write_cqc(hr_dev, hr_cq, mailbox->buf, mtts, dma_handle);
 
 	/* Send mailbox to hw */
-	ret = hns_roce_sw2hw_cq(hr_dev, mailbox, hr_cq->cqn);
+	ret = hns_roce_cmd_mbox(hr_dev, mailbox->dma, 0, hr_cq->cqn, 0,
+			HNS_ROCE_CMD_CREATE_CQC, HNS_ROCE_CMD_TIMEOUT_MSECS);
 	hns_roce_free_cmd_mailbox(hr_dev, mailbox);
 	if (ret) {
-		dev_err(dev, "CQ alloc.Failed to cmd mailbox.\n");
+		dev_err(dev,
+			"Send cmd mailbox failed(%d) when CQ(0x%lx) alloc.\n",
+			ret, hr_cq->cqn);
 		goto err_xa;
 	}
 
@@ -170,24 +126,17 @@
 	return ret;
 }
 
-static int hns_roce_hw2sw_cq(struct hns_roce_dev *dev,
-			     struct hns_roce_cmd_mailbox *mailbox,
-			     unsigned long cq_num)
-{
-	return hns_roce_cmd_mbox(dev, 0, mailbox ? mailbox->dma : 0, cq_num,
-				 mailbox ? 0 : 1, HNS_ROCE_CMD_HW2SW_CQ,
-				 HNS_ROCE_CMD_TIMEOUT_MSECS);
-}
-
-void hns_roce_free_cq(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq)
+void hns_roce_free_cqc(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq)
 {
 	struct hns_roce_cq_table *cq_table = &hr_dev->cq_table;
 	struct device *dev = hr_dev->dev;
 	int ret;
 
-	ret = hns_roce_hw2sw_cq(hr_dev, NULL, hr_cq->cqn);
+	ret = hns_roce_cmd_mbox(hr_dev, 0, 0, hr_cq->cqn, 1,
+				HNS_ROCE_CMD_DESTROY_CQC,
+				HNS_ROCE_CMD_TIMEOUT_MSECS);
 	if (ret)
-		dev_err(dev, "HW2SW_CQ failed (%d) for CQN %06lx\n", ret,
+		dev_err(dev, "DESTROY_CQ failed (%d) for CQN %06lx\n", ret,
 			hr_cq->cqn);
 
 	xa_erase(&cq_table->array, hr_cq->cqn);
@@ -204,103 +153,91 @@
 	hns_roce_bitmap_free(&cq_table->bitmap, hr_cq->cqn, BITMAP_NO_RR);
 }
 
-static int hns_roce_ib_get_cq_umem(struct hns_roce_dev *hr_dev,
-				   struct ib_udata *udata,
-				   struct hns_roce_cq_buf *buf,
-				   struct ib_umem **umem, u64 buf_addr, int cqe)
-{
-	int ret;
-	u32 page_shift;
+static int get_cq_umem(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq,
+		       struct hns_roce_ib_create_cq ucmd,
+		       struct ib_udata *udata)
+{
+	struct hns_roce_buf *buf = &hr_cq->buf;
+	struct hns_roce_mtt *mtt = &hr_cq->mtt;
+	struct ib_umem **umem = &hr_cq->umem;
 	u32 npages;
+	int ret;
 
-	*umem = ib_umem_get(udata, buf_addr, cqe * hr_dev->caps.cq_entry_sz,
-			    IB_ACCESS_LOCAL_WRITE, 1);
+	*umem = ib_umem_get(udata, ucmd.buf_addr, buf->size,
+			    IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(*umem))
 		return PTR_ERR(*umem);
 
 	if (hns_roce_check_whether_mhop(hr_dev, HEM_TYPE_CQE))
-		buf->hr_mtt.mtt_type = MTT_TYPE_CQE;
+		mtt->mtt_type = MTT_TYPE_CQE;
 	else
-		buf->hr_mtt.mtt_type = MTT_TYPE_WQE;
+		mtt->mtt_type = MTT_TYPE_WQE;
 
-	if (hr_dev->caps.cqe_buf_pg_sz) {
-		npages = (ib_umem_page_count(*umem) +
-			(1 << hr_dev->caps.cqe_buf_pg_sz) - 1) /
-			(1 << hr_dev->caps.cqe_buf_pg_sz);
-		page_shift = PAGE_SHIFT + hr_dev->caps.cqe_buf_pg_sz;
-		ret = hns_roce_mtt_init(hr_dev, npages, page_shift,
-					&buf->hr_mtt);
-	} else {
-		ret = hns_roce_mtt_init(hr_dev, ib_umem_page_count(*umem),
-					PAGE_SHIFT, &buf->hr_mtt);
-	}
+	npages = DIV_ROUND_UP(ib_umem_page_count(*umem),
+			      1 << hr_dev->caps.cqe_buf_pg_sz);
+	ret = hns_roce_mtt_init(hr_dev, npages, buf->page_shift, mtt);
 	if (ret)
 		goto err_buf;
 
-	ret = hns_roce_ib_umem_write_mtt(hr_dev, &buf->hr_mtt, *umem);
+	ret = hns_roce_ib_umem_write_mtt(hr_dev, mtt, *umem);
 	if (ret)
 		goto err_mtt;
 
 	return 0;
 
 err_mtt:
-	hns_roce_mtt_cleanup(hr_dev, &buf->hr_mtt);
+	hns_roce_mtt_cleanup(hr_dev, mtt);
 
 err_buf:
 	ib_umem_release(*umem);
 	return ret;
 }
 
-static int hns_roce_ib_alloc_cq_buf(struct hns_roce_dev *hr_dev,
-				    struct hns_roce_cq_buf *buf, u32 nent)
+static int alloc_cq_buf(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq)
 {
+	struct hns_roce_buf *buf = &hr_cq->buf;
+	struct hns_roce_mtt *mtt = &hr_cq->mtt;
 	int ret;
-	u32 page_shift = PAGE_SHIFT + hr_dev->caps.cqe_buf_pg_sz;
 
-	ret = hns_roce_buf_alloc(hr_dev, nent * hr_dev->caps.cq_entry_sz,
-				 (1 << page_shift) * 2, &buf->hr_buf,
-				 page_shift);
+	ret = hns_roce_buf_alloc(hr_dev, buf->size, (1 << buf->page_shift) * 2,
+				 buf, buf->page_shift);
 	if (ret)
 		goto out;
 
 	if (hns_roce_check_whether_mhop(hr_dev, HEM_TYPE_CQE))
-		buf->hr_mtt.mtt_type = MTT_TYPE_CQE;
+		mtt->mtt_type = MTT_TYPE_CQE;
 	else
-		buf->hr_mtt.mtt_type = MTT_TYPE_WQE;
+		mtt->mtt_type = MTT_TYPE_WQE;
 
-	ret = hns_roce_mtt_init(hr_dev, buf->hr_buf.npages,
-				buf->hr_buf.page_shift, &buf->hr_mtt);
+	ret = hns_roce_mtt_init(hr_dev, buf->npages, buf->page_shift, mtt);
 	if (ret)
 		goto err_buf;
 
-	ret = hns_roce_buf_write_mtt(hr_dev, &buf->hr_mtt, &buf->hr_buf);
+	ret = hns_roce_buf_write_mtt(hr_dev, mtt, buf);
 	if (ret)
 		goto err_mtt;
 
 	return 0;
 
 err_mtt:
-	hns_roce_mtt_cleanup(hr_dev, &buf->hr_mtt);
+	hns_roce_mtt_cleanup(hr_dev, mtt);
 
 err_buf:
-	hns_roce_buf_free(hr_dev, nent * hr_dev->caps.cq_entry_sz,
-			  &buf->hr_buf);
+	hns_roce_buf_free(hr_dev, buf->size, buf);
+
 out:
 	return ret;
 }
 
-static void hns_roce_ib_free_cq_buf(struct hns_roce_dev *hr_dev,
-				    struct hns_roce_cq_buf *buf, int cqe)
+static void free_cq_buf(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq)
 {
-	hns_roce_buf_free(hr_dev, (cqe + 1) * hr_dev->caps.cq_entry_sz,
-			  &buf->hr_buf);
+	hns_roce_buf_free(hr_dev, hr_cq->buf.size, &hr_cq->buf);
 }
 
 static int create_user_cq(struct hns_roce_dev *hr_dev,
 			  struct hns_roce_cq *hr_cq,
 			  struct ib_udata *udata,
-			  struct hns_roce_ib_create_cq_resp *resp,
-			  int cq_entries)
+			  struct hns_roce_ib_create_cq_resp *resp)
 {
 	struct hns_roce_ib_create_cq ucmd;
 	struct device *dev = hr_dev->dev;
@@ -314,9 +251,7 @@
 	}
 
 	/* Get user space address, write it into mtt table */
-	ret = hns_roce_ib_get_cq_umem(hr_dev, udata, &hr_cq->hr_buf,
-				      &hr_cq->umem, ucmd.buf_addr,
-				      cq_entries);
+	ret = get_cq_umem(hr_dev, hr_cq, ucmd, udata);
 	if (ret) {
 		dev_err(dev, "Failed to get_cq_umem.\n");
 		return ret;
@@ -337,17 +272,16 @@
 	return 0;
 
 err_mtt:
-	hns_roce_mtt_cleanup(hr_dev, &hr_cq->hr_buf.hr_mtt);
+	hns_roce_mtt_cleanup(hr_dev, &hr_cq->mtt);
 	ib_umem_release(hr_cq->umem);
 
 	return ret;
 }
 
 static int create_kernel_cq(struct hns_roce_dev *hr_dev,
-			    struct hns_roce_cq *hr_cq, int cq_entries)
+			    struct hns_roce_cq *hr_cq)
 {
 	struct device *dev = hr_dev->dev;
-	struct hns_roce_uar *uar;
 	int ret;
 
 	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB) {
@@ -361,15 +295,14 @@
 	}
 
 	/* Init mtt table and write buff address to mtt table */
-	ret = hns_roce_ib_alloc_cq_buf(hr_dev, &hr_cq->hr_buf, cq_entries);
+	ret = alloc_cq_buf(hr_dev, hr_cq);
 	if (ret) {
 		dev_err(dev, "Failed to alloc_cq_buf.\n");
 		goto err_db;
 	}
 
-	uar = &hr_dev->priv_uar;
 	hr_cq->cq_db_l = hr_dev->reg_base + hr_dev->odb_offset +
-			 DB_REG_OFFSET * uar->index;
+			 DB_REG_OFFSET * hr_dev->priv_uar.index;
 
 	return 0;
 
@@ -392,64 +325,71 @@
 	    (udata->outlen >= sizeof(*resp)))
 		hns_roce_db_unmap_user(context, &hr_cq->db);
 
-	hns_roce_mtt_cleanup(hr_dev, &hr_cq->hr_buf.hr_mtt);
+	hns_roce_mtt_cleanup(hr_dev, &hr_cq->mtt);
 	ib_umem_release(hr_cq->umem);
 }
 
 static void destroy_kernel_cq(struct hns_roce_dev *hr_dev,
 			      struct hns_roce_cq *hr_cq)
 {
-	hns_roce_mtt_cleanup(hr_dev, &hr_cq->hr_buf.hr_mtt);
-	hns_roce_ib_free_cq_buf(hr_dev, &hr_cq->hr_buf, hr_cq->ib_cq.cqe);
+	hns_roce_mtt_cleanup(hr_dev, &hr_cq->mtt);
+	free_cq_buf(hr_dev, hr_cq);
 
 	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB)
 		hns_roce_free_db(hr_dev, &hr_cq->db);
 }
 
-int hns_roce_ib_create_cq(struct ib_cq *ib_cq,
-			  const struct ib_cq_init_attr *attr,
-			  struct ib_udata *udata)
+int hns_roce_create_cq(struct ib_cq *ib_cq, const struct ib_cq_init_attr *attr,
+		       struct ib_udata *udata)
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(ib_cq->device);
-	struct device *dev = hr_dev->dev;
 	struct hns_roce_ib_create_cq_resp resp = {};
 	struct hns_roce_cq *hr_cq = to_hr_cq(ib_cq);
+	struct device *dev = hr_dev->dev;
 	int vector = attr->comp_vector;
-	int cq_entries = attr->cqe;
+	u32 cq_entries = attr->cqe;
 	int ret;
 
 	if (cq_entries < 1 || cq_entries > hr_dev->caps.max_cqes) {
-		dev_err(dev, "Creat CQ failed. entries=%d, max=%d\n",
+		dev_err(dev, "Create CQ failed. entries=%d, max=%d\n",
 			cq_entries, hr_dev->caps.max_cqes);
 		return -EINVAL;
 	}
 
-	if (hr_dev->caps.min_cqes)
-		cq_entries = max(cq_entries, hr_dev->caps.min_cqes);
+	if (vector >= hr_dev->caps.num_comp_vectors) {
+		dev_err(dev, "Create CQ failed, vector=%d, max=%d\n",
+			vector, hr_dev->caps.num_comp_vectors);
+		return -EINVAL;
+	}
 
-	cq_entries = roundup_pow_of_two((unsigned int)cq_entries);
-	hr_cq->ib_cq.cqe = cq_entries - 1;
+	cq_entries = max(cq_entries, hr_dev->caps.min_cqes);
+	cq_entries = roundup_pow_of_two(cq_entries);
+	hr_cq->ib_cq.cqe = cq_entries - 1; /* used as cqe index */
+	hr_cq->cq_depth = cq_entries;
+	hr_cq->vector = vector;
+	hr_cq->buf.size = hr_cq->cq_depth * hr_dev->caps.cq_entry_sz;
+	hr_cq->buf.page_shift = PAGE_SHIFT + hr_dev->caps.cqe_buf_pg_sz;
 	spin_lock_init(&hr_cq->lock);
+	INIT_LIST_HEAD(&hr_cq->sq_list);
+	INIT_LIST_HEAD(&hr_cq->rq_list);
 
 	if (udata) {
-		ret = create_user_cq(hr_dev, hr_cq, udata, &resp, cq_entries);
+		ret = create_user_cq(hr_dev, hr_cq, udata, &resp);
 		if (ret) {
 			dev_err(dev, "Create cq failed in user mode!\n");
 			goto err_cq;
 		}
 	} else {
-		ret = create_kernel_cq(hr_dev, hr_cq, cq_entries);
+		ret = create_kernel_cq(hr_dev, hr_cq);
 		if (ret) {
 			dev_err(dev, "Create cq failed in kernel mode!\n");
 			goto err_cq;
 		}
 	}
 
-	/* Allocate cq index, fill cq_context */
-	ret = hns_roce_cq_alloc(hr_dev, cq_entries, &hr_cq->hr_buf.hr_mtt,
-				hr_cq, vector);
+	ret = hns_roce_alloc_cqc(hr_dev, hr_cq);
 	if (ret) {
-		dev_err(dev, "Creat CQ .Failed to cq_alloc.\n");
+		dev_err(dev, "Alloc CQ failed(%d).\n", ret);
 		goto err_dbmap;
 	}
 
@@ -462,11 +402,6 @@
 	if (!udata && hr_cq->tptr_addr)
 		*hr_cq->tptr_addr = 0;
 
-	/* Get created cq handler and carry out event */
-	hr_cq->comp = hns_roce_ib_cq_comp;
-	hr_cq->event = hns_roce_ib_cq_event;
-	hr_cq->cq_depth = cq_entries;
-
 	if (udata) {
 		resp.cqn = hr_cq->cqn;
 		ret = ib_copy_to_udata(udata, &resp, sizeof(resp));
@@ -477,7 +412,7 @@
 	return 0;
 
 err_cqc:
-	hns_roce_free_cq(hr_dev, hr_cq);
+	hns_roce_free_cqc(hr_dev, hr_cq);
 
 err_dbmap:
 	if (udata)
@@ -489,7 +424,7 @@
 	return ret;
 }
 
-void hns_roce_ib_destroy_cq(struct ib_cq *ib_cq, struct ib_udata *udata)
+void hns_roce_destroy_cq(struct ib_cq *ib_cq, struct ib_udata *udata)
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(ib_cq->device);
 	struct hns_roce_cq *hr_cq = to_hr_cq(ib_cq);
@@ -499,8 +434,8 @@
 		return;
 	}
 
-	hns_roce_free_cq(hr_dev, hr_cq);
-	hns_roce_mtt_cleanup(hr_dev, &hr_cq->hr_buf.hr_mtt);
+	hns_roce_free_cqc(hr_dev, hr_cq);
+	hns_roce_mtt_cleanup(hr_dev, &hr_cq->mtt);
 
 	ib_umem_release(hr_cq->umem);
 	if (udata) {
@@ -512,7 +447,7 @@
 					       &hr_cq->db);
 	} else {
 		/* Free the buff of stored cq */
-		hns_roce_ib_free_cq_buf(hr_dev, &hr_cq->hr_buf, ib_cq->cqe);
+		free_cq_buf(hr_dev, hr_cq);
 		if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB)
 			hns_roce_free_db(hr_dev, &hr_cq->db);
 	}
@@ -520,38 +455,57 @@
 
 void hns_roce_cq_completion(struct hns_roce_dev *hr_dev, u32 cqn)
 {
-	struct device *dev = hr_dev->dev;
-	struct hns_roce_cq *cq;
+	struct hns_roce_cq *hr_cq;
+	struct ib_cq *ibcq;
 
-	cq = xa_load(&hr_dev->cq_table.array, cqn & (hr_dev->caps.num_cqs - 1));
-	if (!cq) {
-		dev_warn(dev, "Completion event for bogus CQ 0x%08x\n", cqn);
+	hr_cq = xa_load(&hr_dev->cq_table.array,
+			cqn & (hr_dev->caps.num_cqs - 1));
+	if (!hr_cq) {
+		dev_warn(hr_dev->dev, "Completion event for bogus CQ 0x%06x\n",
+			 cqn);
 		return;
 	}
 
-	++cq->arm_sn;
-	cq->comp(cq);
+	++hr_cq->arm_sn;
+	ibcq = &hr_cq->ib_cq;
+	if (ibcq->comp_handler)
+		ibcq->comp_handler(ibcq, ibcq->cq_context);
 }
 
 void hns_roce_cq_event(struct hns_roce_dev *hr_dev, u32 cqn, int event_type)
 {
-	struct hns_roce_cq_table *cq_table = &hr_dev->cq_table;
 	struct device *dev = hr_dev->dev;
-	struct hns_roce_cq *cq;
+	struct hns_roce_cq *hr_cq;
+	struct ib_event event;
+	struct ib_cq *ibcq;
 
-	cq = xa_load(&cq_table->array, cqn & (hr_dev->caps.num_cqs - 1));
-	if (cq)
-		atomic_inc(&cq->refcount);
+	hr_cq = xa_load(&hr_dev->cq_table.array,
+			cqn & (hr_dev->caps.num_cqs - 1));
+	if (!hr_cq) {
+		dev_warn(dev, "Async event for bogus CQ 0x%06x\n", cqn);
+		return;
+	}
 
-	if (!cq) {
-		dev_warn(dev, "Async event for bogus CQ %08x\n", cqn);
+	if (event_type != HNS_ROCE_EVENT_TYPE_CQ_ID_INVALID &&
+	    event_type != HNS_ROCE_EVENT_TYPE_CQ_ACCESS_ERROR &&
+	    event_type != HNS_ROCE_EVENT_TYPE_CQ_OVERFLOW) {
+		dev_err(dev, "Unexpected event type 0x%x on CQ 0x%06x\n",
+			event_type, cqn);
 		return;
 	}
 
-	cq->event(cq, (enum hns_roce_event)event_type);
+	atomic_inc(&hr_cq->refcount);
+
+	ibcq = &hr_cq->ib_cq;
+	if (ibcq->event_handler) {
+		event.device = ibcq->device;
+		event.element.cq = ibcq;
+		event.event = IB_EVENT_CQ_ERR;
+		ibcq->event_handler(&event, ibcq->cq_context);
+	}
 
-	if (atomic_dec_and_test(&cq->refcount))
-		complete(&cq->free);
+	if (atomic_dec_and_test(&hr_cq->refcount))
+		complete(&hr_cq->free);
 }
 
 int hns_roce_init_cq_table(struct hns_roce_dev *hr_dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_db.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_db.c
@@ -31,7 +31,7 @@
 
 	refcount_set(&page->refcount, 1);
 	page->user_virt = page_addr;
-	page->umem = ib_umem_get(udata, page_addr, PAGE_SIZE, 0, 0);
+	page->umem = ib_umem_get(udata, page_addr, PAGE_SIZE, 0);
 	if (IS_ERR(page->umem)) {
 		ret = PTR_ERR(page->umem);
 		kfree(page);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_device.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_device.h
@@ -45,16 +45,12 @@
 
 #define HNS_ROCE_MAX_MSG_LEN			0x80000000
 
-#define HNS_ROCE_ALOGN_UP(a, b) ((((a) + (b) - 1) / (b)) * (b))
-
 #define HNS_ROCE_IB_MIN_SQ_STRIDE		6
 
 #define HNS_ROCE_BA_SIZE			(32 * 4096)
 
 #define BA_BYTE_LEN				8
 
-#define BITS_PER_BYTE				8
-
 /* Hardware specification only for v1 engine */
 #define HNS_ROCE_MIN_CQE_NUM			0x40
 #define HNS_ROCE_MIN_WQE_NUM			0x20
@@ -109,11 +105,6 @@
 #define NODE_DESC_SIZE				64
 #define DB_REG_OFFSET				0x1000
 
-#define SERV_TYPE_RC				0
-#define SERV_TYPE_RD				1
-#define SERV_TYPE_UC				2
-#define SERV_TYPE_UD				3
-
 /* Configure to HW for PAGE_SIZE larger than 4KB */
 #define PG_SHIFT_OFFSET				(PAGE_SHIFT - 12)
 
@@ -133,6 +124,13 @@
 #define EQ_DEPTH_COEFF				2
 
 enum {
+	SERV_TYPE_RC,
+	SERV_TYPE_UC,
+	SERV_TYPE_RD,
+	SERV_TYPE_UD,
+};
+
+enum {
 	HNS_ROCE_SUPPORT_RQ_RECORD_DB = 1 << 0,
 	HNS_ROCE_SUPPORT_SQ_RECORD_DB = 1 << 1,
 };
@@ -425,8 +423,7 @@
 struct hns_roce_wq {
 	u64		*wrid;     /* Work request ID */
 	spinlock_t	lock;
-	int		wqe_cnt;  /* WQE num */
-	u32		max_post;
+	u32		wqe_cnt;  /* WQE num */
 	int		max_gs;
 	int		offset;
 	int		wqe_shift;	/* WQE size */
@@ -451,6 +448,7 @@
 	struct hns_roce_buf_list	*page_list;
 	int				nbufs;
 	u32				npages;
+	u32				size;
 	int				page_shift;
 };
 
@@ -482,22 +480,14 @@
 	int		order;
 };
 
-struct hns_roce_cq_buf {
-	struct hns_roce_buf hr_buf;
-	struct hns_roce_mtt hr_mtt;
-};
-
 struct hns_roce_cq {
 	struct ib_cq			ib_cq;
-	struct hns_roce_cq_buf		hr_buf;
+	struct hns_roce_buf		buf;
+	struct hns_roce_mtt		mtt;
 	struct hns_roce_db		db;
 	u8				db_en;
 	spinlock_t			lock;
 	struct ib_umem			*umem;
-	void (*comp)(struct hns_roce_cq *cq);
-	void (*event)(struct hns_roce_cq *cq, enum hns_roce_event event_type);
-
-	struct hns_roce_uar		*uar;
 	u32				cq_depth;
 	u32				cons_index;
 	u32				*set_ci_db;
@@ -508,6 +498,10 @@
 	u32				vector;
 	atomic_t			refcount;
 	struct completion		free;
+	struct list_head		sq_list; /* all qps on this send cq */
+	struct list_head		rq_list; /* all qps on this recv cq */
+	int				is_armed; /* cq is armed */
+	struct list_head		node; /* all armed cqs are on a list */
 };
 
 struct hns_roce_idx_que {
@@ -521,9 +515,8 @@
 
 struct hns_roce_srq {
 	struct ib_srq		ibsrq;
-	void (*event)(struct hns_roce_srq *srq, enum hns_roce_event event);
 	unsigned long		srqn;
-	int			max;
+	u32			wqe_cnt;
 	int			max_gs;
 	int			wqe_shift;
 	void __iomem		*db_reg_l;
@@ -539,8 +532,8 @@
 	spinlock_t		lock;
 	int			head;
 	int			tail;
-	u16			wqe_ctr;
 	struct mutex		mutex;
+	void (*event)(struct hns_roce_srq *srq, enum hns_roce_event event);
 };
 
 struct hns_roce_uar_table {
@@ -582,7 +575,7 @@
 	u8          tclass;
 	u8          dgid[HNS_ROCE_GID_SIZE];
 	u8          mac[ETH_ALEN];
-	u16         vlan;
+	u16         vlan_id;
 	bool	    vlan_en;
 };
 
@@ -648,6 +641,19 @@
 	u32			 wqe_cnt;
 };
 
+enum {
+	HNS_ROCE_FLUSH_FLAG = 0,
+};
+
+struct hns_roce_work {
+	struct hns_roce_dev *hr_dev;
+	struct work_struct work;
+	u32 qpn;
+	u32 cqn;
+	int event_type;
+	int sub_type;
+};
+
 struct hns_roce_qp {
 	struct ib_qp		ibqp;
 	struct hns_roce_buf	hr_buf;
@@ -657,8 +663,7 @@
 	u8			rdb_en;
 	u8			sdb_en;
 	u32			doorbell_qpn;
-	u32			sq_signal_bits;
-	u32			sq_next_wqe;
+	enum ib_sig_type	sq_signal_bits;
 	struct hns_roce_wq	sq;
 
 	struct ib_umem		*umem;
@@ -668,7 +673,6 @@
 	/* this define must less than HNS_ROCE_MAX_BT_REGION */
 #define HNS_ROCE_WQE_REGION_MAX	 3
 	struct hns_roce_buf_region regions[HNS_ROCE_WQE_REGION_MAX];
-	int			region_cnt;
 	int                     wqe_bt_pg_shift;
 
 	u32			buff_size;
@@ -692,11 +696,13 @@
 	struct hns_roce_sge	sge;
 	u32			next_sge;
 
+	/* 0: flush needed, 1: unneeded */
+	unsigned long		flush_flag;
+	struct hns_roce_work	flush_work;
 	struct hns_roce_rinl_buf rq_inl_buf;
-};
-
-struct hns_roce_sqp {
-	struct hns_roce_qp	hr_qp;
+	struct list_head	node;		/* all qps are on a list */
+	struct list_head	rq_node;	/* all recv qps are on a list */
+	struct list_head	sq_node;	/* all send qps are on a list */
 };
 
 struct hns_roce_ib_iboe {
@@ -771,14 +777,8 @@
 	int				eqe_ba_pg_sz;
 	int				eqe_buf_pg_sz;
 	int				hop_num;
-	u64				*bt_l0;	/* Base address table for L0 */
-	u64				**bt_l1; /* Base address table for L1 */
-	u64				**buf;
-	dma_addr_t			l0_dma;
-	dma_addr_t			*l1_dma;
-	dma_addr_t			*buf_dma;
-	u32				l0_last_num; /* L0 last chunk num */
-	u32				l1_last_num; /* L1 last chunk num */
+	struct hns_roce_mtr		mtr;
+	struct hns_roce_buf		buf;
 	int				eq_max_cnt;
 	int				eq_period;
 	int				shift;
@@ -809,10 +809,8 @@
 	int             reserved_qps;
 	int		num_qpc_timer;
 	int		num_cqc_timer;
-	u32		max_srq_sg;
 	int		num_srqs;
 	u32		max_wqes;
-	u32		max_srqs;
 	u32		max_srq_wrs;
 	u32		max_srq_sges;
 	u32		max_sq_desc_sz;
@@ -821,12 +819,11 @@
 	int		max_qp_init_rdma;
 	int		max_qp_dest_rdma;
 	int		num_cqs;
-	int		max_cqes;
-	int		min_cqes;
+	u32		max_cqes;
+	u32		min_cqes;
 	u32		min_wqes;
 	int		reserved_cqs;
 	int		reserved_srqs;
-	u32		max_srqwqes;
 	int		num_aeq_vectors;
 	int		num_comp_vectors;
 	int		num_other_vectors;
@@ -893,7 +890,7 @@
 	u32		cqc_timer_ba_pg_sz;
 	u32		cqc_timer_buf_pg_sz;
 	u32		cqc_timer_hop_num;
-	u32		cqe_ba_pg_sz;
+	u32             cqe_ba_pg_sz;	/* page_size = 4K*(2^cqe_ba_pg_sz) */
 	u32		cqe_buf_pg_sz;
 	u32		cqe_hop_num;
 	u32		srqwqe_ba_pg_sz;
@@ -910,15 +907,12 @@
 	u32		tpq_buf_pg_sz;
 	u32		chunk_sz;	/* chunk size in non multihop mode */
 	u64		flags;
-};
-
-struct hns_roce_work {
-	struct hns_roce_dev *hr_dev;
-	struct work_struct work;
-	u32 qpn;
-	u32 cqn;
-	int event_type;
-	int sub_type;
+	u16		default_ceq_max_cnt;
+	u16		default_ceq_period;
+	u16		default_aeq_max_cnt;
+	u16		default_aeq_period;
+	u16		default_aeq_arm_st;
+	u16		default_ceq_arm_st;
 };
 
 struct hns_roce_dfx_hw {
@@ -926,6 +920,12 @@
 			      int *buffer);
 };
 
+enum hns_roce_device_state {
+	HNS_ROCE_DEVICE_STATE_INITED,
+	HNS_ROCE_DEVICE_STATE_RST_DOWN,
+	HNS_ROCE_DEVICE_STATE_UNINIT,
+};
+
 struct hns_roce_hw {
 	int (*reset)(struct hns_roce_dev *hr_dev, bool enable);
 	int (*cmq_init)(struct hns_roce_dev *hr_dev);
@@ -953,7 +953,7 @@
 	int (*mw_write_mtpt)(void *mb_buf, struct hns_roce_mw *mw);
 	void (*write_cqc)(struct hns_roce_dev *hr_dev,
 			  struct hns_roce_cq *hr_cq, void *mb_buf, u64 *mtts,
-			  dma_addr_t dma_handle, int nent, u32 vector);
+			  dma_addr_t dma_handle);
 	int (*set_hem)(struct hns_roce_dev *hr_dev,
 		       struct hns_roce_hem_table *table, int obj, int step_idx);
 	int (*clear_hem)(struct hns_roce_dev *hr_dev,
@@ -1008,6 +1008,9 @@
 	bool			dis_db;
 	unsigned long		reset_cnt;
 	struct hns_roce_ib_iboe iboe;
+	enum hns_roce_device_state state;
+	struct list_head	qp_list; /* list of all qps on this dev */
+	spinlock_t		qp_list_lock; /* protect qp_list */
 
 	struct list_head        pgdir_list;
 	struct mutex            pgdir_mutex;
@@ -1092,11 +1095,6 @@
 	return container_of(ibsrq, struct hns_roce_srq, ibsrq);
 }
 
-static inline struct hns_roce_sqp *hr_to_hr_sqp(struct hns_roce_qp *hr_qp)
-{
-	return container_of(hr_qp, struct hns_roce_sqp, hr_qp);
-}
-
 static inline void hns_roce_write64_k(__le32 val[2], void __iomem *dest)
 {
 	__raw_writeq(*(u64 *) val, dest);
@@ -1153,7 +1151,6 @@
 
 int hns_roce_init_pd_table(struct hns_roce_dev *hr_dev);
 int hns_roce_init_mr_table(struct hns_roce_dev *hr_dev);
-int hns_roce_init_eq_table(struct hns_roce_dev *hr_dev);
 int hns_roce_init_cq_table(struct hns_roce_dev *hr_dev);
 int hns_roce_init_qp_table(struct hns_roce_dev *hr_dev);
 int hns_roce_init_srq_table(struct hns_roce_dev *hr_dev);
@@ -1198,9 +1195,9 @@
 int hns_roce_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
 		       unsigned int *sg_offset);
 int hns_roce_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata);
-int hns_roce_hw2sw_mpt(struct hns_roce_dev *hr_dev,
-		       struct hns_roce_cmd_mailbox *mailbox,
-		       unsigned long mpt_index);
+int hns_roce_hw_destroy_mpt(struct hns_roce_dev *hr_dev,
+			    struct hns_roce_cmd_mailbox *mailbox,
+			    unsigned long mpt_index);
 unsigned long key_to_hw_index(u32 key);
 
 struct ib_mw *hns_roce_alloc_mw(struct ib_pd *pd, enum ib_mw_type,
@@ -1240,6 +1237,7 @@
 				 struct ib_udata *udata);
 int hns_roce_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
 		       int attr_mask, struct ib_udata *udata);
+void init_flush_work(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp);
 void *get_recv_wqe(struct hns_roce_qp *hr_qp, int n);
 void *get_send_wqe(struct hns_roce_qp *hr_qp, int n);
 void *get_send_extend_sge(struct hns_roce_qp *hr_qp, int n);
@@ -1251,18 +1249,16 @@
 void hns_roce_unlock_cqs(struct hns_roce_cq *send_cq,
 			 struct hns_roce_cq *recv_cq);
 void hns_roce_qp_remove(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp);
-void hns_roce_qp_free(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp);
-void hns_roce_release_range_qp(struct hns_roce_dev *hr_dev, int base_qpn,
-			       int cnt);
+void hns_roce_qp_destroy(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+			 struct ib_udata *udata);
 __be32 send_ieth(const struct ib_send_wr *wr);
 int to_hr_qp_type(int qp_type);
 
-int hns_roce_ib_create_cq(struct ib_cq *ib_cq,
-			  const struct ib_cq_init_attr *attr,
-			  struct ib_udata *udata);
+int hns_roce_create_cq(struct ib_cq *ib_cq, const struct ib_cq_init_attr *attr,
+		       struct ib_udata *udata);
 
-void hns_roce_ib_destroy_cq(struct ib_cq *ib_cq, struct ib_udata *udata);
-void hns_roce_free_cq(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq);
+void hns_roce_destroy_cq(struct ib_cq *ib_cq, struct ib_udata *udata);
+void hns_roce_free_cqc(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq);
 
 int hns_roce_db_map_user(struct hns_roce_ucontext *context,
 			 struct ib_udata *udata, unsigned long virt,
@@ -1278,6 +1274,7 @@
 void hns_roce_qp_event(struct hns_roce_dev *hr_dev, u32 qpn, int event_type);
 void hns_roce_srq_event(struct hns_roce_dev *hr_dev, u32 srqn, int event_type);
 int hns_get_gid_index(struct hns_roce_dev *hr_dev, u8 port, int gid_index);
+void hns_roce_handle_device_err(struct hns_roce_dev *hr_dev);
 int hns_roce_init(struct hns_roce_dev *hr_dev);
 void hns_roce_exit(struct hns_roce_dev *hr_dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
@@ -69,13 +69,13 @@
 	struct hns_roce_wqe_data_seg *dseg = NULL;
 	struct hns_roce_qp *qp = to_hr_qp(ibqp);
 	struct device *dev = &hr_dev->pdev->dev;
-	struct hns_roce_sq_db sq_db;
+	struct hns_roce_sq_db sq_db = {};
 	int ps_opcode = 0, i = 0;
 	unsigned long flags = 0;
 	void *wqe = NULL;
 	__le32 doorbell[2];
+	u32 wqe_idx = 0;
 	int nreq = 0;
-	u32 ind = 0;
 	int ret = 0;
 	u8 *smac;
 	int loopback;
@@ -88,7 +88,7 @@
 	}
 
 	spin_lock_irqsave(&qp->sq.lock, flags);
-	ind = qp->sq_next_wqe;
+
 	for (nreq = 0; wr; ++nreq, wr = wr->next) {
 		if (hns_roce_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) {
 			ret = -ENOMEM;
@@ -96,6 +96,8 @@
 			goto out;
 		}
 
+		wqe_idx = (qp->sq.head + nreq) & (qp->sq.wqe_cnt - 1);
+
 		if (unlikely(wr->num_sge > qp->sq.max_gs)) {
 			dev_err(dev, "num_sge=%d > qp->sq.max_gs=%d\n",
 				wr->num_sge, qp->sq.max_gs);
@@ -104,9 +106,8 @@
 			goto out;
 		}
 
-		wqe = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1));
-		qp->sq.wrid[(qp->sq.head + nreq) & (qp->sq.wqe_cnt - 1)] =
-								      wr->wr_id;
+		wqe = get_send_wqe(qp, wqe_idx);
+		qp->sq.wrid[wqe_idx] = wr->wr_id;
 
 		/* Corresponding to the RC and RD type wqe process separately */
 		if (ibqp->qp_type == IB_QPT_GSI) {
@@ -210,7 +211,6 @@
 				       cpu_to_le32((wr->sg_list[1].addr) >> 32);
 			ud_sq_wqe->l_key1 =
 				       cpu_to_le32(wr->sg_list[1].lkey);
-			ind++;
 		} else if (ibqp->qp_type == IB_QPT_RC) {
 			u32 tmp_len = 0;
 
@@ -271,7 +271,6 @@
 				ps_opcode = HNS_ROCE_WQE_OPCODE_SEND;
 				break;
 			case IB_WR_LOCAL_INV:
-				break;
 			case IB_WR_ATOMIC_CMP_AND_SWP:
 			case IB_WR_ATOMIC_FETCH_AND_ADD:
 			case IB_WR_LSO:
@@ -308,7 +307,6 @@
 				ctrl->flag |= cpu_to_le32(wr->num_sge <<
 					      HNS_ROCE_WQE_SGE_NUM_BIT);
 			}
-			ind++;
 		}
 	}
 
@@ -319,8 +317,6 @@
 		/* Memory barrier */
 		wmb();
 
-		sq_db.u32_4 = 0;
-		sq_db.u32_8 = 0;
 		roce_set_field(sq_db.u32_4, SQ_DOORBELL_U32_4_SQ_HEAD_M,
 			       SQ_DOORBELL_U32_4_SQ_HEAD_S,
 			      (qp->sq.head & ((qp->sq.wqe_cnt << 1) - 1)));
@@ -336,7 +332,6 @@
 		doorbell[1] = sq_db.u32_8;
 
 		hns_roce_write64_k(doorbell, qp->sq.db_reg_l);
-		qp->sq_next_wqe = ind;
 	}
 
 	spin_unlock_irqrestore(&qp->sq.lock, flags);
@@ -348,22 +343,21 @@
 				 const struct ib_recv_wr *wr,
 				 const struct ib_recv_wr **bad_wr)
 {
-	int ret = 0;
-	int nreq = 0;
-	int ind = 0;
-	int i = 0;
-	u32 reg_val;
-	unsigned long flags = 0;
 	struct hns_roce_rq_wqe_ctrl *ctrl = NULL;
 	struct hns_roce_wqe_data_seg *scat = NULL;
 	struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
 	struct hns_roce_dev *hr_dev = to_hr_dev(ibqp->device);
 	struct device *dev = &hr_dev->pdev->dev;
-	struct hns_roce_rq_db rq_db;
+	struct hns_roce_rq_db rq_db = {};
 	__le32 doorbell[2] = {0};
+	unsigned long flags = 0;
+	unsigned int wqe_idx;
+	int ret = 0;
+	int nreq = 0;
+	int i = 0;
+	u32 reg_val;
 
 	spin_lock_irqsave(&hr_qp->rq.lock, flags);
-	ind = hr_qp->rq.head & (hr_qp->rq.wqe_cnt - 1);
 
 	for (nreq = 0; wr; ++nreq, wr = wr->next) {
 		if (hns_roce_wq_overflow(&hr_qp->rq, nreq,
@@ -373,6 +367,8 @@
 			goto out;
 		}
 
+		wqe_idx = (hr_qp->rq.head + nreq) & (hr_qp->rq.wqe_cnt - 1);
+
 		if (unlikely(wr->num_sge > hr_qp->rq.max_gs)) {
 			dev_err(dev, "rq:num_sge=%d > qp->sq.max_gs=%d\n",
 				wr->num_sge, hr_qp->rq.max_gs);
@@ -381,7 +377,7 @@
 			goto out;
 		}
 
-		ctrl = get_recv_wqe(hr_qp, ind);
+		ctrl = get_recv_wqe(hr_qp, wqe_idx);
 
 		roce_set_field(ctrl->rwqe_byte_12,
 			       RQ_WQE_CTRL_RWQE_BYTE_12_RWQE_SGE_NUM_M,
@@ -393,9 +389,7 @@
 		for (i = 0; i < wr->num_sge; i++)
 			set_data_seg(scat + i, wr->sg_list + i);
 
-		hr_qp->rq.wrid[ind] = wr->wr_id;
-
-		ind = (ind + 1) & (hr_qp->rq.wqe_cnt - 1);
+		hr_qp->rq.wrid[wqe_idx] = wr->wr_id;
 	}
 
 out:
@@ -421,9 +415,6 @@
 				   ROCEE_QP1C_CFG3_0_REG +
 				   QP1C_CFGN_OFFSET * hr_qp->phy_port, reg_val);
 		} else {
-			rq_db.u32_4 = 0;
-			rq_db.u32_8 = 0;
-
 			roce_set_field(rq_db.u32_4, RQ_DOORBELL_U32_4_RQ_HEAD_M,
 				       RQ_DOORBELL_U32_4_RQ_HEAD_S,
 				       hr_qp->rq.head);
@@ -732,7 +723,7 @@
 	if (!cq)
 		return -ENOMEM;
 
-	ret = hns_roce_ib_create_cq(cq, &cq_init_attr, NULL);
+	ret = hns_roce_create_cq(cq, &cq_init_attr, NULL);
 	if (ret) {
 		dev_err(dev, "Create cq for reserved loop qp failed!");
 		goto alloc_cq_failed;
@@ -868,7 +859,7 @@
 	kfree(pd);
 
 alloc_mem_failed:
-	hns_roce_ib_destroy_cq(cq, NULL);
+	hns_roce_destroy_cq(cq, NULL);
 alloc_cq_failed:
 	kfree(cq);
 	return ret;
@@ -897,7 +888,7 @@
 				i, ret);
 	}
 
-	hns_roce_ib_destroy_cq(&free_mr->mr_free_cq->ib_cq, NULL);
+	hns_roce_destroy_cq(&free_mr->mr_free_cq->ib_cq, NULL);
 	kfree(&free_mr->mr_free_cq->ib_cq);
 	hns_roce_dealloc_pd(&free_mr->mr_free_pd->ibpd, NULL);
 	kfree(&free_mr->mr_free_pd->ibpd);
@@ -1114,9 +1105,10 @@
 	free_mr = &priv->free_mr;
 
 	if (mr->enabled) {
-		if (hns_roce_hw2sw_mpt(hr_dev, NULL, key_to_hw_index(mr->key)
-				       & (hr_dev->caps.num_mtpts - 1)))
-			dev_warn(dev, "HW2SW_MPT failed!\n");
+		if (hns_roce_hw_destroy_mpt(hr_dev, NULL,
+					    key_to_hw_index(mr->key) &
+					    (hr_dev->caps.num_mtpts - 1)))
+			dev_warn(dev, "DESTROY_MPT failed!\n");
 	}
 
 	mr_work = kzalloc(sizeof(*mr_work), GFP_KERNEL);
@@ -1979,8 +1971,7 @@
 
 static void *get_cqe(struct hns_roce_cq *hr_cq, int n)
 {
-	return hns_roce_buf_offset(&hr_cq->hr_buf.hr_buf,
-				   n * HNS_ROCE_V1_CQE_ENTRY_SIZE);
+	return hns_roce_buf_offset(&hr_cq->buf, n * HNS_ROCE_V1_CQE_ENTRY_SIZE);
 }
 
 static void *get_sw_cqe(struct hns_roce_cq *hr_cq, int n)
@@ -1989,7 +1980,7 @@
 
 	/* Get cqe when Owner bit is Conversely with the MSB of cons_idx */
 	return (roce_get_bit(hr_cqe->cqe_byte_4, CQE_BYTE_4_OWNER_S) ^
-		!!(n & (hr_cq->ib_cq.cqe + 1))) ? hr_cqe : NULL;
+		!!(n & hr_cq->cq_depth)) ? hr_cqe : NULL;
 }
 
 static struct hns_roce_cqe *next_cqe_sw(struct hns_roce_cq *hr_cq)
@@ -2072,8 +2063,7 @@
 
 static void hns_roce_v1_write_cqc(struct hns_roce_dev *hr_dev,
 				  struct hns_roce_cq *hr_cq, void *mb_buf,
-				  u64 *mtts, dma_addr_t dma_handle, int nent,
-				  u32 vector)
+				  u64 *mtts, dma_addr_t dma_handle)
 {
 	struct hns_roce_cq_context *cq_context = NULL;
 	struct hns_roce_buf_list *tptr_buf;
@@ -2108,9 +2098,9 @@
 	roce_set_field(cq_context->cqc_byte_12,
 		       CQ_CONTEXT_CQC_BYTE_12_CQ_CQE_SHIFT_M,
 		       CQ_CONTEXT_CQC_BYTE_12_CQ_CQE_SHIFT_S,
-		       ilog2((unsigned int)nent));
+		       ilog2(hr_cq->cq_depth));
 	roce_set_field(cq_context->cqc_byte_12, CQ_CONTEXT_CQC_BYTE_12_CEQN_M,
-		       CQ_CONTEXT_CQC_BYTE_12_CEQN_S, vector);
+		       CQ_CONTEXT_CQC_BYTE_12_CEQN_S, hr_cq->vector);
 
 	cq_context->cur_cqe_ba0_l = cpu_to_le32((u32)(mtts[0]));
 
@@ -2702,7 +2692,6 @@
 		hr_qp->rq.tail = 0;
 		hr_qp->sq.head = 0;
 		hr_qp->sq.tail = 0;
-		hr_qp->sq_next_wqe = 0;
 	}
 
 	kfree(context);
@@ -3316,7 +3305,6 @@
 		hr_qp->rq.tail = 0;
 		hr_qp->sq.head = 0;
 		hr_qp->sq.tail = 0;
-		hr_qp->sq_next_wqe = 0;
 	}
 out:
 	kfree(context);
@@ -3615,39 +3603,25 @@
 	if (ret)
 		return ret;
 
-	send_cq = to_hr_cq(hr_qp->ibqp.send_cq);
-	recv_cq = to_hr_cq(hr_qp->ibqp.recv_cq);
+	send_cq = hr_qp->ibqp.send_cq ? to_hr_cq(hr_qp->ibqp.send_cq) : NULL;
+	recv_cq = hr_qp->ibqp.recv_cq ? to_hr_cq(hr_qp->ibqp.recv_cq) : NULL;
 
 	hns_roce_lock_cqs(send_cq, recv_cq);
 	if (!udata) {
-		__hns_roce_v1_cq_clean(recv_cq, hr_qp->qpn, hr_qp->ibqp.srq ?
-				       to_hr_srq(hr_qp->ibqp.srq) : NULL);
-		if (send_cq != recv_cq)
+		if (recv_cq)
+			__hns_roce_v1_cq_clean(recv_cq, hr_qp->qpn,
+					       (hr_qp->ibqp.srq ?
+						to_hr_srq(hr_qp->ibqp.srq) :
+						NULL));
+
+		if (send_cq && send_cq != recv_cq)
 			__hns_roce_v1_cq_clean(send_cq, hr_qp->qpn, NULL);
 	}
-	hns_roce_unlock_cqs(send_cq, recv_cq);
-
 	hns_roce_qp_remove(hr_dev, hr_qp);
-	hns_roce_qp_free(hr_dev, hr_qp);
-
-	/* RC QP, release QPN */
-	if (hr_qp->ibqp.qp_type == IB_QPT_RC)
-		hns_roce_release_range_qp(hr_dev, hr_qp->qpn, 1);
-
-	hns_roce_mtt_cleanup(hr_dev, &hr_qp->mtt);
-
-	ib_umem_release(hr_qp->umem);
-	if (!udata) {
-		kfree(hr_qp->sq.wrid);
-		kfree(hr_qp->rq.wrid);
+	hns_roce_unlock_cqs(send_cq, recv_cq);
 
-		hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf);
-	}
+	hns_roce_qp_destroy(hr_dev, hr_qp, udata);
 
-	if (hr_qp->ibqp.qp_type == IB_QPT_RC)
-		kfree(hr_qp);
-	else
-		kfree(hr_to_hr_sqp(hr_qp));
 	return 0;
 }
 
@@ -3658,10 +3632,9 @@
 	struct device *dev = &hr_dev->pdev->dev;
 	u32 cqe_cnt_ori;
 	u32 cqe_cnt_cur;
-	u32 cq_buf_size;
 	int wait_time = 0;
 
-	hns_roce_free_cq(hr_dev, hr_cq);
+	hns_roce_free_cqc(hr_dev, hr_cq);
 
 	/*
 	 * Before freeing cq buffer, we need to ensure that the outstanding CQE
@@ -3686,13 +3659,12 @@
 		wait_time++;
 	}
 
-	hns_roce_mtt_cleanup(hr_dev, &hr_cq->hr_buf.hr_mtt);
+	hns_roce_mtt_cleanup(hr_dev, &hr_cq->mtt);
 
 	ib_umem_release(hr_cq->umem);
 	if (!udata) {
 		/* Free the buff of stored cq */
-		cq_buf_size = (ibcq->cqe + 1) * hr_dev->caps.cq_entry_sz;
-		hns_roce_buf_free(hr_dev, cq_buf_size, &hr_cq->hr_buf.hr_buf);
+		hns_roce_buf_free(hr_dev, hr_cq->buf.size, &hr_cq->buf);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -63,20 +63,15 @@
 	struct hns_roce_mr *mr = to_hr_mr(wr->mr);
 
 	/* use ib_access_flags */
-	roce_set_bit(rc_sq_wqe->byte_4,
-		     V2_RC_FRMR_WQE_BYTE_4_BIND_EN_S,
+	roce_set_bit(rc_sq_wqe->byte_4, V2_RC_FRMR_WQE_BYTE_4_BIND_EN_S,
 		     wr->access & IB_ACCESS_MW_BIND ? 1 : 0);
-	roce_set_bit(rc_sq_wqe->byte_4,
-		     V2_RC_FRMR_WQE_BYTE_4_ATOMIC_S,
+	roce_set_bit(rc_sq_wqe->byte_4, V2_RC_FRMR_WQE_BYTE_4_ATOMIC_S,
 		     wr->access & IB_ACCESS_REMOTE_ATOMIC ? 1 : 0);
-	roce_set_bit(rc_sq_wqe->byte_4,
-		     V2_RC_FRMR_WQE_BYTE_4_RR_S,
+	roce_set_bit(rc_sq_wqe->byte_4, V2_RC_FRMR_WQE_BYTE_4_RR_S,
 		     wr->access & IB_ACCESS_REMOTE_READ ? 1 : 0);
-	roce_set_bit(rc_sq_wqe->byte_4,
-		     V2_RC_FRMR_WQE_BYTE_4_RW_S,
+	roce_set_bit(rc_sq_wqe->byte_4, V2_RC_FRMR_WQE_BYTE_4_RW_S,
 		     wr->access & IB_ACCESS_REMOTE_WRITE ? 1 : 0);
-	roce_set_bit(rc_sq_wqe->byte_4,
-		     V2_RC_FRMR_WQE_BYTE_4_LW_S,
+	roce_set_bit(rc_sq_wqe->byte_4, V2_RC_FRMR_WQE_BYTE_4_LW_S,
 		     wr->access & IB_ACCESS_LOCAL_WRITE ? 1 : 0);
 
 	/* Data structure reuse may lead to confusion */
@@ -110,7 +105,7 @@
 }
 
 static void set_extend_sge(struct hns_roce_qp *qp, const struct ib_send_wr *wr,
-			   unsigned int *sge_ind)
+			   unsigned int *sge_ind, int valid_num_sge)
 {
 	struct hns_roce_v2_wqe_data_seg *dseg;
 	struct ib_sge *sg;
@@ -123,7 +118,7 @@
 
 	if (qp->ibqp.qp_type == IB_QPT_RC || qp->ibqp.qp_type == IB_QPT_UC)
 		num_in_wqe = HNS_ROCE_V2_UC_RC_SGE_NUM_IN_WQE;
-	extend_sge_num = wr->num_sge - num_in_wqe;
+	extend_sge_num = valid_num_sge - num_in_wqe;
 	sg = wr->sg_list + num_in_wqe;
 	shift = qp->hr_buf.page_shift;
 
@@ -159,14 +154,16 @@
 static int set_rwqe_data_seg(struct ib_qp *ibqp, const struct ib_send_wr *wr,
 			     struct hns_roce_v2_rc_send_wqe *rc_sq_wqe,
 			     void *wqe, unsigned int *sge_ind,
+			     int valid_num_sge,
 			     const struct ib_send_wr **bad_wr)
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(ibqp->device);
 	struct hns_roce_v2_wqe_data_seg *dseg = wqe;
 	struct hns_roce_qp *qp = to_hr_qp(ibqp);
+	int j = 0;
 	int i;
 
-	if (wr->send_flags & IB_SEND_INLINE && wr->num_sge) {
+	if (wr->send_flags & IB_SEND_INLINE && valid_num_sge) {
 		if (le32_to_cpu(rc_sq_wqe->msg_len) >
 		    hr_dev->caps.max_sq_inline) {
 			*bad_wr = wr;
@@ -190,7 +187,7 @@
 		roce_set_bit(rc_sq_wqe->byte_4, V2_RC_SEND_WQE_BYTE_4_INLINE_S,
 			     1);
 	} else {
-		if (wr->num_sge <= HNS_ROCE_V2_UC_RC_SGE_NUM_IN_WQE) {
+		if (valid_num_sge <= HNS_ROCE_V2_UC_RC_SGE_NUM_IN_WQE) {
 			for (i = 0; i < wr->num_sge; i++) {
 				if (likely(wr->sg_list[i].length)) {
 					set_data_seg_v2(dseg, wr->sg_list + i);
@@ -203,28 +200,81 @@
 				     V2_RC_SEND_WQE_BYTE_20_MSG_START_SGE_IDX_S,
 				     (*sge_ind) & (qp->sge.sge_cnt - 1));
 
-			for (i = 0; i < HNS_ROCE_V2_UC_RC_SGE_NUM_IN_WQE; i++) {
+			for (i = 0; i < wr->num_sge &&
+			     j < HNS_ROCE_V2_UC_RC_SGE_NUM_IN_WQE; i++) {
 				if (likely(wr->sg_list[i].length)) {
 					set_data_seg_v2(dseg, wr->sg_list + i);
 					dseg++;
+					j++;
 				}
 			}
 
-			set_extend_sge(qp, wr, sge_ind);
+			set_extend_sge(qp, wr, sge_ind, valid_num_sge);
 		}
 
 		roce_set_field(rc_sq_wqe->byte_16,
 			       V2_RC_SEND_WQE_BYTE_16_SGE_NUM_M,
-			       V2_RC_SEND_WQE_BYTE_16_SGE_NUM_S, wr->num_sge);
+			       V2_RC_SEND_WQE_BYTE_16_SGE_NUM_S, valid_num_sge);
 	}
 
 	return 0;
 }
 
-static int hns_roce_v2_modify_qp(struct ib_qp *ibqp,
-				 const struct ib_qp_attr *attr,
-				 int attr_mask, enum ib_qp_state cur_state,
-				 enum ib_qp_state new_state);
+static int check_send_valid(struct hns_roce_dev *hr_dev,
+			    struct hns_roce_qp *hr_qp)
+{
+	struct ib_qp *ibqp = &hr_qp->ibqp;
+	struct device *dev = hr_dev->dev;
+
+	if (unlikely(ibqp->qp_type != IB_QPT_RC &&
+		     ibqp->qp_type != IB_QPT_GSI &&
+		     ibqp->qp_type != IB_QPT_UD)) {
+		dev_err(dev, "Not supported QP(0x%x)type!\n", ibqp->qp_type);
+		return -EOPNOTSUPP;
+	} else if (unlikely(hr_qp->state == IB_QPS_RESET ||
+		   hr_qp->state == IB_QPS_INIT ||
+		   hr_qp->state == IB_QPS_RTR)) {
+		dev_err(dev, "Post WQE fail, QP state %d!\n", hr_qp->state);
+		return -EINVAL;
+	} else if (unlikely(hr_dev->state >= HNS_ROCE_DEVICE_STATE_RST_DOWN)) {
+		dev_err(dev, "Post WQE fail, dev state %d!\n", hr_dev->state);
+		return -EIO;
+	}
+
+	return 0;
+}
+
+static inline void update_sq_db(struct hns_roce_dev *hr_dev,
+				struct hns_roce_qp *qp)
+{
+	/*
+	 * Hip08 hardware cannot flush the WQEs in SQ if the QP state
+	 * gets into errored mode. Hence, as a workaround to this
+	 * hardware limitation, driver needs to assist in flushing. But
+	 * the flushing operation uses mailbox to convey the QP state to
+	 * the hardware and which can sleep due to the mutex protection
+	 * around the mailbox calls. Hence, use the deferred flush for
+	 * now.
+	 */
+	if (qp->state == IB_QPS_ERR) {
+		if (!test_and_set_bit(HNS_ROCE_FLUSH_FLAG, &qp->flush_flag))
+			init_flush_work(hr_dev, qp);
+	} else {
+		struct hns_roce_v2_db sq_db = {};
+
+		roce_set_field(sq_db.byte_4, V2_DB_BYTE_4_TAG_M,
+			       V2_DB_BYTE_4_TAG_S, qp->doorbell_qpn);
+		roce_set_field(sq_db.byte_4, V2_DB_BYTE_4_CMD_M,
+			       V2_DB_BYTE_4_CMD_S, HNS_ROCE_V2_SQ_DB);
+		roce_set_field(sq_db.parameter, V2_DB_PARAMETER_IDX_M,
+			       V2_DB_PARAMETER_IDX_S,
+			       qp->sq.head & ((qp->sq.wqe_cnt << 1) - 1));
+		roce_set_field(sq_db.parameter, V2_DB_PARAMETER_SL_M,
+			       V2_DB_PARAMETER_SL_S, qp->sl);
+
+		hns_roce_write64(hr_dev, (__le32 *)&sq_db, qp->sq.db_reg_l);
+	}
+}
 
 static int hns_roce_v2_post_send(struct ib_qp *ibqp,
 				 const struct ib_send_wr *wr,
@@ -237,40 +287,30 @@
 	struct hns_roce_qp *qp = to_hr_qp(ibqp);
 	struct hns_roce_wqe_frmr_seg *fseg;
 	struct device *dev = hr_dev->dev;
-	struct hns_roce_v2_db sq_db;
-	struct ib_qp_attr attr;
-	unsigned int sge_ind;
 	unsigned int owner_bit;
+	unsigned int sge_idx;
+	unsigned int wqe_idx;
 	unsigned long flags;
-	unsigned int ind;
+	int valid_num_sge;
 	void *wqe = NULL;
 	bool loopback;
-	int attr_mask;
 	u32 tmp_len;
-	int ret = 0;
 	u32 hr_op;
 	u8 *smac;
 	int nreq;
+	int ret;
 	int i;
 
-	if (unlikely(ibqp->qp_type != IB_QPT_RC &&
-		     ibqp->qp_type != IB_QPT_GSI &&
-		     ibqp->qp_type != IB_QPT_UD)) {
-		dev_err(dev, "Not supported QP(0x%x)type!\n", ibqp->qp_type);
-		*bad_wr = wr;
-		return -EOPNOTSUPP;
-	}
+	spin_lock_irqsave(&qp->sq.lock, flags);
 
-	if (unlikely(qp->state == IB_QPS_RESET || qp->state == IB_QPS_INIT ||
-		     qp->state == IB_QPS_RTR)) {
-		dev_err(dev, "Post WQE fail, QP state %d err!\n", qp->state);
+	ret = check_send_valid(hr_dev, qp);
+	if (ret) {
 		*bad_wr = wr;
-		return -EINVAL;
+		nreq = 0;
+		goto out;
 	}
 
-	spin_lock_irqsave(&qp->sq.lock, flags);
-	ind = qp->sq_next_wqe;
-	sge_ind = qp->next_sge;
+	sge_idx = qp->next_sge;
 
 	for (nreq = 0; wr; ++nreq, wr = wr->next) {
 		if (hns_roce_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) {
@@ -279,6 +319,8 @@
 			goto out;
 		}
 
+		wqe_idx = (qp->sq.head + nreq) & (qp->sq.wqe_cnt - 1);
+
 		if (unlikely(wr->num_sge > qp->sq.max_gs)) {
 			dev_err(dev, "num_sge=%d > qp->sq.max_gs=%d\n",
 				wr->num_sge, qp->sq.max_gs);
@@ -287,14 +329,20 @@
 			goto out;
 		}
 
-		wqe = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1));
-		qp->sq.wrid[(qp->sq.head + nreq) & (qp->sq.wqe_cnt - 1)] =
-								      wr->wr_id;
-
+		wqe = get_send_wqe(qp, wqe_idx);
+		qp->sq.wrid[wqe_idx] = wr->wr_id;
 		owner_bit =
 		       ~(((qp->sq.head + nreq) >> ilog2(qp->sq.wqe_cnt)) & 0x1);
+		valid_num_sge = 0;
 		tmp_len = 0;
 
+		for (i = 0; i < wr->num_sge; i++) {
+			if (likely(wr->sg_list[i].length)) {
+				tmp_len += wr->sg_list[i].length;
+				valid_num_sge++;
+			}
+		}
+
 		/* Corresponding to the QP type, wqe process separately */
 		if (ibqp->qp_type == IB_QPT_GSI) {
 			ud_sq_wqe = wqe;
@@ -330,9 +378,6 @@
 				       V2_UD_SEND_WQE_BYTE_4_OPCODE_S,
 				       HNS_ROCE_V2_WQE_OP_SEND);
 
-			for (i = 0; i < wr->num_sge; i++)
-				tmp_len += wr->sg_list[i].length;
-
 			ud_sq_wqe->msg_len =
 			 cpu_to_le32(le32_to_cpu(ud_sq_wqe->msg_len) + tmp_len);
 
@@ -368,12 +413,12 @@
 			roce_set_field(ud_sq_wqe->byte_16,
 				       V2_UD_SEND_WQE_BYTE_16_SGE_NUM_M,
 				       V2_UD_SEND_WQE_BYTE_16_SGE_NUM_S,
-				       wr->num_sge);
+				       valid_num_sge);
 
 			roce_set_field(ud_sq_wqe->byte_20,
 				     V2_UD_SEND_WQE_BYTE_20_MSG_START_SGE_IDX_M,
 				     V2_UD_SEND_WQE_BYTE_20_MSG_START_SGE_IDX_S,
-				     sge_ind & (qp->sge.sge_cnt - 1));
+				     sge_idx & (qp->sge.sge_cnt - 1));
 
 			roce_set_field(ud_sq_wqe->byte_24,
 				       V2_UD_SEND_WQE_BYTE_24_UDPSPN_M,
@@ -389,7 +434,7 @@
 			roce_set_field(ud_sq_wqe->byte_36,
 				       V2_UD_SEND_WQE_BYTE_36_VLAN_M,
 				       V2_UD_SEND_WQE_BYTE_36_VLAN_S,
-				       le16_to_cpu(ah->av.vlan));
+				       ah->av.vlan_id);
 			roce_set_field(ud_sq_wqe->byte_36,
 				       V2_UD_SEND_WQE_BYTE_36_HOPLIMIT_M,
 				       V2_UD_SEND_WQE_BYTE_36_HOPLIMIT_S,
@@ -423,13 +468,10 @@
 			memcpy(&ud_sq_wqe->dgid[0], &ah->av.dgid[0],
 			       GID_LEN_V2);
 
-			set_extend_sge(qp, wr, &sge_ind);
-			ind++;
+			set_extend_sge(qp, wr, &sge_idx, valid_num_sge);
 		} else if (ibqp->qp_type == IB_QPT_RC) {
 			rc_sq_wqe = wqe;
 			memset(rc_sq_wqe, 0, sizeof(*rc_sq_wqe));
-			for (i = 0; i < wr->num_sge; i++)
-				tmp_len += wr->sg_list[i].length;
 
 			rc_sq_wqe->msg_len =
 			 cpu_to_le32(le32_to_cpu(rc_sq_wqe->msg_len) + tmp_len);
@@ -550,15 +592,14 @@
 				roce_set_field(rc_sq_wqe->byte_16,
 					       V2_RC_SEND_WQE_BYTE_16_SGE_NUM_M,
 					       V2_RC_SEND_WQE_BYTE_16_SGE_NUM_S,
-					       wr->num_sge);
+					       valid_num_sge);
 			} else if (wr->opcode != IB_WR_REG_MR) {
 				ret = set_rwqe_data_seg(ibqp, wr, rc_sq_wqe,
-							wqe, &sge_ind, bad_wr);
+							wqe, &sge_idx,
+							valid_num_sge, bad_wr);
 				if (ret)
 					goto out;
 			}
-
-			ind++;
 		} else {
 			dev_err(dev, "Illegal qp_type(0x%x)\n", ibqp->qp_type);
 			spin_unlock_irqrestore(&qp->sq.lock, flags);
@@ -570,39 +611,10 @@
 out:
 	if (likely(nreq)) {
 		qp->sq.head += nreq;
+		qp->next_sge = sge_idx;
 		/* Memory barrier */
 		wmb();
-
-		sq_db.byte_4 = 0;
-		sq_db.parameter = 0;
-
-		roce_set_field(sq_db.byte_4, V2_DB_BYTE_4_TAG_M,
-			       V2_DB_BYTE_4_TAG_S, qp->doorbell_qpn);
-		roce_set_field(sq_db.byte_4, V2_DB_BYTE_4_CMD_M,
-			       V2_DB_BYTE_4_CMD_S, HNS_ROCE_V2_SQ_DB);
-		roce_set_field(sq_db.parameter, V2_DB_PARAMETER_IDX_M,
-			       V2_DB_PARAMETER_IDX_S,
-			       qp->sq.head & ((qp->sq.wqe_cnt << 1) - 1));
-		roce_set_field(sq_db.parameter, V2_DB_PARAMETER_SL_M,
-			       V2_DB_PARAMETER_SL_S, qp->sl);
-
-		hns_roce_write64(hr_dev, (__le32 *)&sq_db, qp->sq.db_reg_l);
-
-		qp->sq_next_wqe = ind;
-		qp->next_sge = sge_ind;
-
-		if (qp->state == IB_QPS_ERR) {
-			attr_mask = IB_QP_STATE;
-			attr.qp_state = IB_QPS_ERR;
-
-			ret = hns_roce_v2_modify_qp(&qp->ibqp, &attr, attr_mask,
-						    qp->state, IB_QPS_ERR);
-			if (ret) {
-				spin_unlock_irqrestore(&qp->sq.lock, flags);
-				*bad_wr = wr;
-				return ret;
-			}
-		}
+		update_sq_db(hr_dev, qp);
 	}
 
 	spin_unlock_irqrestore(&qp->sq.lock, flags);
@@ -610,6 +622,17 @@
 	return ret;
 }
 
+static int check_recv_valid(struct hns_roce_dev *hr_dev,
+			    struct hns_roce_qp *hr_qp)
+{
+	if (unlikely(hr_dev->state >= HNS_ROCE_DEVICE_STATE_RST_DOWN))
+		return -EIO;
+	else if (hr_qp->state == IB_QPS_RESET)
+		return -EINVAL;
+
+	return 0;
+}
+
 static int hns_roce_v2_post_recv(struct ib_qp *ibqp,
 				 const struct ib_recv_wr *wr,
 				 const struct ib_recv_wr **bad_wr)
@@ -619,22 +642,20 @@
 	struct hns_roce_v2_wqe_data_seg *dseg;
 	struct hns_roce_rinl_sge *sge_list;
 	struct device *dev = hr_dev->dev;
-	struct ib_qp_attr attr;
 	unsigned long flags;
 	void *wqe = NULL;
-	int attr_mask;
-	int ret = 0;
+	u32 wqe_idx;
 	int nreq;
-	int ind;
+	int ret;
 	int i;
 
 	spin_lock_irqsave(&hr_qp->rq.lock, flags);
-	ind = hr_qp->rq.head & (hr_qp->rq.wqe_cnt - 1);
 
-	if (hr_qp->state == IB_QPS_RESET) {
-		spin_unlock_irqrestore(&hr_qp->rq.lock, flags);
+	ret = check_recv_valid(hr_dev, hr_qp);
+	if (ret) {
 		*bad_wr = wr;
-		return -EINVAL;
+		nreq = 0;
+		goto out;
 	}
 
 	for (nreq = 0; wr; ++nreq, wr = wr->next) {
@@ -645,6 +666,8 @@
 			goto out;
 		}
 
+		wqe_idx = (hr_qp->rq.head + nreq) & (hr_qp->rq.wqe_cnt - 1);
+
 		if (unlikely(wr->num_sge > hr_qp->rq.max_gs)) {
 			dev_err(dev, "rq:num_sge=%d > qp->sq.max_gs=%d\n",
 				wr->num_sge, hr_qp->rq.max_gs);
@@ -653,7 +676,7 @@
 			goto out;
 		}
 
-		wqe = get_recv_wqe(hr_qp, ind);
+		wqe = get_recv_wqe(hr_qp, wqe_idx);
 		dseg = (struct hns_roce_v2_wqe_data_seg *)wqe;
 		for (i = 0; i < wr->num_sge; i++) {
 			if (!wr->sg_list[i].length)
@@ -669,8 +692,8 @@
 
 		/* rq support inline data */
 		if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) {
-			sge_list = hr_qp->rq_inl_buf.wqe_list[ind].sg_list;
-			hr_qp->rq_inl_buf.wqe_list[ind].sge_cnt =
+			sge_list = hr_qp->rq_inl_buf.wqe_list[wqe_idx].sg_list;
+			hr_qp->rq_inl_buf.wqe_list[wqe_idx].sge_cnt =
 							       (u32)wr->num_sge;
 			for (i = 0; i < wr->num_sge; i++) {
 				sge_list[i].addr =
@@ -679,9 +702,7 @@
 			}
 		}
 
-		hr_qp->rq.wrid[ind] = wr->wr_id;
-
-		ind = (ind + 1) & (hr_qp->rq.wqe_cnt - 1);
+		hr_qp->rq.wrid[wqe_idx] = wr->wr_id;
 	}
 
 out:
@@ -690,20 +711,21 @@
 		/* Memory barrier */
 		wmb();
 
-		*hr_qp->rdb.db_record = hr_qp->rq.head & 0xffff;
-
+		/*
+		 * Hip08 hardware cannot flush the WQEs in RQ if the QP state
+		 * gets into errored mode. Hence, as a workaround to this
+		 * hardware limitation, driver needs to assist in flushing. But
+		 * the flushing operation uses mailbox to convey the QP state to
+		 * the hardware and which can sleep due to the mutex protection
+		 * around the mailbox calls. Hence, use the deferred flush for
+		 * now.
+		 */
 		if (hr_qp->state == IB_QPS_ERR) {
-			attr_mask = IB_QP_STATE;
-			attr.qp_state = IB_QPS_ERR;
-
-			ret = hns_roce_v2_modify_qp(&hr_qp->ibqp, &attr,
-						    attr_mask, hr_qp->state,
-						    IB_QPS_ERR);
-			if (ret) {
-				spin_unlock_irqrestore(&hr_qp->rq.lock, flags);
-				*bad_wr = wr;
-				return ret;
-			}
+			if (!test_and_set_bit(HNS_ROCE_FLUSH_FLAG,
+					      &hr_qp->flush_flag))
+				init_flush_work(hr_dev, hr_qp);
+		} else {
+			*hr_qp->rdb.db_record = hr_qp->rq.head & 0xffff;
 		}
 	}
 	spin_unlock_irqrestore(&hr_qp->rq.lock, flags);
@@ -1006,7 +1028,7 @@
 	u32 timeout = 0;
 	int handle = 0;
 	u16 desc_ret;
-	int ret = 0;
+	int ret;
 	int ntc;
 
 	spin_lock_bh(&csq->lock);
@@ -1051,15 +1073,14 @@
 	if (hns_roce_cmq_csq_done(hr_dev)) {
 		complete = true;
 		handle = 0;
+		ret = 0;
 		while (handle < num) {
 			/* get the result of hardware write back */
 			desc_to_use = &csq->desc[ntc];
 			desc[handle] = *desc_to_use;
 			dev_dbg(hr_dev->dev, "Get cmq desc:\n");
 			desc_ret = le16_to_cpu(desc[handle].retval);
-			if (desc_ret == CMD_EXEC_SUCCESS)
-				ret = 0;
-			else
+			if (unlikely(desc_ret != CMD_EXEC_SUCCESS))
 				ret = -EIO;
 			priv->cmq.last_status = desc_ret;
 			ntc++;
@@ -1254,7 +1275,6 @@
 	}
 
 out:
-	dev_err(hr_dev->dev, "Func clear fail.\n");
 	hns_roce_func_clr_rst_prc(hr_dev, ret, fclr_write_fail_flag);
 }
 
@@ -1346,40 +1366,31 @@
 static int hns_roce_query_pf_timer_resource(struct hns_roce_dev *hr_dev)
 {
 	struct hns_roce_pf_timer_res_a *req_a;
-	struct hns_roce_cmq_desc desc[2];
-	int ret, i;
-
-	for (i = 0; i < 2; i++) {
-		hns_roce_cmq_setup_basic_desc(&desc[i],
-					      HNS_ROCE_OPC_QUERY_PF_TIMER_RES,
-					      true);
+	struct hns_roce_cmq_desc desc;
+	int ret;
 
-		if (i == 0)
-			desc[i].flag |= cpu_to_le16(HNS_ROCE_CMD_FLAG_NEXT);
-		else
-			desc[i].flag &= ~cpu_to_le16(HNS_ROCE_CMD_FLAG_NEXT);
-	}
+	hns_roce_cmq_setup_basic_desc(&desc, HNS_ROCE_OPC_QUERY_PF_TIMER_RES,
+				      true);
 
-	ret = hns_roce_cmq_send(hr_dev, desc, 2);
+	ret = hns_roce_cmq_send(hr_dev, &desc, 1);
 	if (ret)
 		return ret;
 
-	req_a = (struct hns_roce_pf_timer_res_a *)desc[0].data;
+	req_a = (struct hns_roce_pf_timer_res_a *)desc.data;
 
 	hr_dev->caps.qpc_timer_bt_num =
-				roce_get_field(req_a->qpc_timer_bt_idx_num,
-					PF_RES_DATA_1_PF_QPC_TIMER_BT_NUM_M,
-					PF_RES_DATA_1_PF_QPC_TIMER_BT_NUM_S);
+		roce_get_field(req_a->qpc_timer_bt_idx_num,
+			       PF_RES_DATA_1_PF_QPC_TIMER_BT_NUM_M,
+			       PF_RES_DATA_1_PF_QPC_TIMER_BT_NUM_S);
 	hr_dev->caps.cqc_timer_bt_num =
-				roce_get_field(req_a->cqc_timer_bt_idx_num,
-					PF_RES_DATA_2_PF_CQC_TIMER_BT_NUM_M,
-					PF_RES_DATA_2_PF_CQC_TIMER_BT_NUM_S);
+		roce_get_field(req_a->cqc_timer_bt_idx_num,
+			       PF_RES_DATA_2_PF_CQC_TIMER_BT_NUM_M,
+			       PF_RES_DATA_2_PF_CQC_TIMER_BT_NUM_S);
 
 	return 0;
 }
 
-static int hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev,
-						  int vf_id)
+static int hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev, int vf_id)
 {
 	struct hns_roce_cmq_desc desc;
 	struct hns_roce_vf_switch *swt;
@@ -1388,13 +1399,12 @@
 	swt = (struct hns_roce_vf_switch *)desc.data;
 	hns_roce_cmq_setup_basic_desc(&desc, HNS_SWITCH_PARAMETER_CFG, true);
 	swt->rocee_sel |= cpu_to_le32(HNS_ICL_SWITCH_CMD_ROCEE_SEL);
-	roce_set_field(swt->fun_id,
-			VF_SWITCH_DATA_FUN_ID_VF_ID_M,
-			VF_SWITCH_DATA_FUN_ID_VF_ID_S,
-			vf_id);
+	roce_set_field(swt->fun_id, VF_SWITCH_DATA_FUN_ID_VF_ID_M,
+		       VF_SWITCH_DATA_FUN_ID_VF_ID_S, vf_id);
 	ret = hns_roce_cmq_send(hr_dev, &desc, 1);
 	if (ret)
 		return ret;
+
 	desc.flag =
 		cpu_to_le16(HNS_ROCE_CMD_FLAG_NO_INTR | HNS_ROCE_CMD_FLAG_IN);
 	desc.flag &= cpu_to_le16(~HNS_ROCE_CMD_FLAG_WR);
@@ -1574,69 +1584,9 @@
 	return hns_roce_cmq_send(hr_dev, &desc, 1);
 }
 
-static int hns_roce_v2_profile(struct hns_roce_dev *hr_dev)
+static void set_default_caps(struct hns_roce_dev *hr_dev)
 {
 	struct hns_roce_caps *caps = &hr_dev->caps;
-	int ret;
-
-	ret = hns_roce_cmq_query_hw_info(hr_dev);
-	if (ret) {
-		dev_err(hr_dev->dev, "Query hardware version fail, ret = %d.\n",
-			ret);
-		return ret;
-	}
-
-	ret = hns_roce_query_fw_ver(hr_dev);
-	if (ret) {
-		dev_err(hr_dev->dev, "Query firmware version fail, ret = %d.\n",
-			ret);
-		return ret;
-	}
-
-	ret = hns_roce_config_global_param(hr_dev);
-	if (ret) {
-		dev_err(hr_dev->dev, "Configure global param fail, ret = %d.\n",
-			ret);
-		return ret;
-	}
-
-	/* Get pf resource owned by every pf */
-	ret = hns_roce_query_pf_resource(hr_dev);
-	if (ret) {
-		dev_err(hr_dev->dev, "Query pf resource fail, ret = %d.\n",
-			ret);
-		return ret;
-	}
-
-	if (hr_dev->pci_dev->revision == 0x21) {
-		ret = hns_roce_query_pf_timer_resource(hr_dev);
-		if (ret) {
-			dev_err(hr_dev->dev,
-				"Query pf timer resource fail, ret = %d.\n",
-				ret);
-			return ret;
-		}
-	}
-
-	ret = hns_roce_alloc_vf_resource(hr_dev);
-	if (ret) {
-		dev_err(hr_dev->dev, "Allocate vf resource fail, ret = %d.\n",
-			ret);
-		return ret;
-	}
-
-	if (hr_dev->pci_dev->revision == 0x21) {
-		ret = hns_roce_set_vf_switch_param(hr_dev, 0);
-		if (ret) {
-			dev_err(hr_dev->dev,
-				"Set function switch param fail, ret = %d.\n",
-				ret);
-			return ret;
-		}
-	}
-
-	hr_dev->vendor_part_id = hr_dev->pci_dev->device;
-	hr_dev->sys_image_guid = be64_to_cpu(hr_dev->ib_dev.node_guid);
 
 	caps->num_qps		= HNS_ROCE_V2_MAX_QP_NUM;
 	caps->max_wqes		= HNS_ROCE_V2_MAX_WQE_NUM;
@@ -1644,17 +1594,15 @@
 	caps->num_srqs		= HNS_ROCE_V2_MAX_SRQ_NUM;
 	caps->min_cqes		= HNS_ROCE_MIN_CQE_NUM;
 	caps->max_cqes		= HNS_ROCE_V2_MAX_CQE_NUM;
-	caps->max_srqwqes	= HNS_ROCE_V2_MAX_SRQWQE_NUM;
 	caps->max_sq_sg		= HNS_ROCE_V2_MAX_SQ_SGE_NUM;
 	caps->max_extend_sg	= HNS_ROCE_V2_MAX_EXTEND_SGE_NUM;
 	caps->max_rq_sg		= HNS_ROCE_V2_MAX_RQ_SGE_NUM;
 	caps->max_sq_inline	= HNS_ROCE_V2_MAX_SQ_INLINE;
-	caps->max_srq_sg	= HNS_ROCE_V2_MAX_SRQ_SGE_NUM;
 	caps->num_uars		= HNS_ROCE_V2_UAR_NUM;
 	caps->phy_num_uars	= HNS_ROCE_V2_PHY_UAR_NUM;
 	caps->num_aeq_vectors	= HNS_ROCE_V2_AEQE_VEC_NUM;
 	caps->num_comp_vectors	= HNS_ROCE_V2_COMP_VEC_NUM;
-	caps->num_other_vectors	= HNS_ROCE_V2_ABNORMAL_VEC_NUM;
+	caps->num_other_vectors = HNS_ROCE_V2_ABNORMAL_VEC_NUM;
 	caps->num_mtpts		= HNS_ROCE_V2_MAX_MTPT_NUM;
 	caps->num_mtt_segs	= HNS_ROCE_V2_MAX_MTT_SEGS;
 	caps->num_cqe_segs	= HNS_ROCE_V2_MAX_CQE_SEGS;
@@ -1668,12 +1616,12 @@
 	caps->max_srq_desc_sz	= HNS_ROCE_V2_MAX_SRQ_DESC_SZ;
 	caps->qpc_entry_sz	= HNS_ROCE_V2_QPC_ENTRY_SZ;
 	caps->irrl_entry_sz	= HNS_ROCE_V2_IRRL_ENTRY_SZ;
-	caps->trrl_entry_sz	= HNS_ROCE_V2_TRRL_ENTRY_SZ;
+	caps->trrl_entry_sz	= HNS_ROCE_V2_EXT_ATOMIC_TRRL_ENTRY_SZ;
 	caps->cqc_entry_sz	= HNS_ROCE_V2_CQC_ENTRY_SZ;
 	caps->srqc_entry_sz	= HNS_ROCE_V2_SRQC_ENTRY_SZ;
 	caps->mtpt_entry_sz	= HNS_ROCE_V2_MTPT_ENTRY_SZ;
 	caps->mtt_entry_sz	= HNS_ROCE_V2_MTT_ENTRY_SZ;
-	caps->idx_entry_sz	= 4;
+	caps->idx_entry_sz	= HNS_ROCE_V2_IDX_ENTRY_SZ;
 	caps->cq_entry_sz	= HNS_ROCE_V2_CQE_ENTRY_SIZE;
 	caps->page_size_cap	= HNS_ROCE_V2_PAGE_SIZE_SUPPORTED;
 	caps->reserved_lkey	= 0;
@@ -1696,16 +1644,13 @@
 	caps->mpt_ba_pg_sz	= 0;
 	caps->mpt_buf_pg_sz	= 0;
 	caps->mpt_hop_num	= HNS_ROCE_CONTEXT_HOP_NUM;
-	caps->pbl_ba_pg_sz	= 2;
-	caps->pbl_buf_pg_sz	= 0;
-	caps->pbl_hop_num	= HNS_ROCE_PBL_HOP_NUM;
 	caps->mtt_ba_pg_sz	= 0;
 	caps->mtt_buf_pg_sz	= 0;
 	caps->mtt_hop_num	= HNS_ROCE_MTT_HOP_NUM;
-	caps->wqe_sq_hop_num	= 2;
-	caps->wqe_sge_hop_num	= 1;
-	caps->wqe_rq_hop_num	= 2;
-	caps->cqe_ba_pg_sz	= 6;
+	caps->wqe_sq_hop_num	= HNS_ROCE_SQWQE_HOP_NUM;
+	caps->wqe_sge_hop_num	= HNS_ROCE_EXT_SGE_HOP_NUM;
+	caps->wqe_rq_hop_num	= HNS_ROCE_RQWQE_HOP_NUM;
+	caps->cqe_ba_pg_sz	= HNS_ROCE_BA_PG_SZ_SUPPORTED_256K;
 	caps->cqe_buf_pg_sz	= 0;
 	caps->cqe_hop_num	= HNS_ROCE_CQE_HOP_NUM;
 	caps->srqwqe_ba_pg_sz	= 0;
@@ -1714,10 +1659,6 @@
 	caps->idx_ba_pg_sz	= 0;
 	caps->idx_buf_pg_sz	= 0;
 	caps->idx_hop_num	= HNS_ROCE_IDX_HOP_NUM;
-	caps->eqe_ba_pg_sz	= 0;
-	caps->eqe_buf_pg_sz	= 0;
-	caps->eqe_hop_num	= HNS_ROCE_EQE_HOP_NUM;
-	caps->tsq_buf_pg_sz	= 0;
 	caps->chunk_sz		= HNS_ROCE_V2_TABLE_CHUNK_SIZE;
 
 	caps->flags		= HNS_ROCE_CAP_FLAG_REREG_MR |
@@ -1726,24 +1667,19 @@
 				  HNS_ROCE_CAP_FLAG_RECORD_DB |
 				  HNS_ROCE_CAP_FLAG_SQ_RECORD_DB;
 
-	if (hr_dev->pci_dev->revision == 0x21)
-		caps->flags |= HNS_ROCE_CAP_FLAG_MW |
-			       HNS_ROCE_CAP_FLAG_FRMR;
-
 	caps->pkey_table_len[0] = 1;
-	caps->gid_table_len[0] = HNS_ROCE_V2_GID_INDEX_NUM;
+	caps->gid_table_len[0]	= HNS_ROCE_V2_GID_INDEX_NUM;
 	caps->ceqe_depth	= HNS_ROCE_V2_COMP_EQE_NUM;
 	caps->aeqe_depth	= HNS_ROCE_V2_ASYNC_EQE_NUM;
 	caps->local_ca_ack_delay = 0;
 	caps->max_mtu = IB_MTU_4096;
 
-	caps->max_srqs		= HNS_ROCE_V2_MAX_SRQ;
 	caps->max_srq_wrs	= HNS_ROCE_V2_MAX_SRQ_WR;
 	caps->max_srq_sges	= HNS_ROCE_V2_MAX_SRQ_SGE;
 
-	if (hr_dev->pci_dev->revision == 0x21) {
-		caps->flags |= HNS_ROCE_CAP_FLAG_ATOMIC |
-			       HNS_ROCE_CAP_FLAG_SRQ |
+	if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP08_B) {
+		caps->flags |= HNS_ROCE_CAP_FLAG_ATOMIC | HNS_ROCE_CAP_FLAG_MW |
+			       HNS_ROCE_CAP_FLAG_SRQ | HNS_ROCE_CAP_FLAG_FRMR |
 			       HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL;
 
 		caps->num_qpc_timer	  = HNS_ROCE_V2_MAX_QPC_TIMER_NUM;
@@ -1757,12 +1693,343 @@
 		caps->cqc_timer_buf_pg_sz = 0;
 		caps->cqc_timer_hop_num   = HNS_ROCE_HOP_NUM_0;
 
-		caps->sccc_entry_sz	= HNS_ROCE_V2_SCCC_ENTRY_SZ;
-		caps->sccc_ba_pg_sz	= 0;
-		caps->sccc_buf_pg_sz    = 0;
-		caps->sccc_hop_num	= HNS_ROCE_SCCC_HOP_NUM;
+		caps->sccc_entry_sz	  = HNS_ROCE_V2_SCCC_ENTRY_SZ;
+		caps->sccc_ba_pg_sz	  = 0;
+		caps->sccc_buf_pg_sz	  = 0;
+		caps->sccc_hop_num	  = HNS_ROCE_SCCC_HOP_NUM;
+	}
+}
+
+static void calc_pg_sz(int obj_num, int obj_size, int hop_num, int ctx_bt_num,
+		       int *buf_page_size, int *bt_page_size, u32 hem_type)
+{
+	u64 obj_per_chunk;
+	int bt_chunk_size = 1 << PAGE_SHIFT;
+	int buf_chunk_size = 1 << PAGE_SHIFT;
+	int obj_per_chunk_default = buf_chunk_size / obj_size;
+
+	*buf_page_size = 0;
+	*bt_page_size = 0;
+
+	switch (hop_num) {
+	case 3:
+		obj_per_chunk = ctx_bt_num * (bt_chunk_size / BA_BYTE_LEN) *
+				(bt_chunk_size / BA_BYTE_LEN) *
+				(bt_chunk_size / BA_BYTE_LEN) *
+				 obj_per_chunk_default;
+		break;
+	case 2:
+		obj_per_chunk = ctx_bt_num * (bt_chunk_size / BA_BYTE_LEN) *
+				(bt_chunk_size / BA_BYTE_LEN) *
+				 obj_per_chunk_default;
+		break;
+	case 1:
+		obj_per_chunk = ctx_bt_num * (bt_chunk_size / BA_BYTE_LEN) *
+				obj_per_chunk_default;
+		break;
+	case HNS_ROCE_HOP_NUM_0:
+		obj_per_chunk = ctx_bt_num * obj_per_chunk_default;
+		break;
+	default:
+		pr_err("Table %d not support hop_num = %d!\n", hem_type,
+			hop_num);
+		return;
 	}
 
+	if (hem_type >= HEM_TYPE_MTT)
+		*bt_page_size = ilog2(DIV_ROUND_UP(obj_num, obj_per_chunk));
+	else
+		*buf_page_size = ilog2(DIV_ROUND_UP(obj_num, obj_per_chunk));
+}
+
+static int hns_roce_query_pf_caps(struct hns_roce_dev *hr_dev)
+{
+	struct hns_roce_cmq_desc desc[HNS_ROCE_QUERY_PF_CAPS_CMD_NUM];
+	struct hns_roce_caps *caps = &hr_dev->caps;
+	struct hns_roce_query_pf_caps_a *resp_a;
+	struct hns_roce_query_pf_caps_b *resp_b;
+	struct hns_roce_query_pf_caps_c *resp_c;
+	struct hns_roce_query_pf_caps_d *resp_d;
+	struct hns_roce_query_pf_caps_e *resp_e;
+	int ctx_hop_num;
+	int pbl_hop_num;
+	int ret;
+	int i;
+
+	for (i = 0; i < HNS_ROCE_QUERY_PF_CAPS_CMD_NUM; i++) {
+		hns_roce_cmq_setup_basic_desc(&desc[i],
+					      HNS_ROCE_OPC_QUERY_PF_CAPS_NUM,
+					      true);
+		if (i < (HNS_ROCE_QUERY_PF_CAPS_CMD_NUM - 1))
+			desc[i].flag |= cpu_to_le16(HNS_ROCE_CMD_FLAG_NEXT);
+		else
+			desc[i].flag &= ~cpu_to_le16(HNS_ROCE_CMD_FLAG_NEXT);
+	}
+
+	ret = hns_roce_cmq_send(hr_dev, desc, HNS_ROCE_QUERY_PF_CAPS_CMD_NUM);
+	if (ret)
+		return ret;
+
+	resp_a = (struct hns_roce_query_pf_caps_a *)desc[0].data;
+	resp_b = (struct hns_roce_query_pf_caps_b *)desc[1].data;
+	resp_c = (struct hns_roce_query_pf_caps_c *)desc[2].data;
+	resp_d = (struct hns_roce_query_pf_caps_d *)desc[3].data;
+	resp_e = (struct hns_roce_query_pf_caps_e *)desc[4].data;
+
+	caps->local_ca_ack_delay     = resp_a->local_ca_ack_delay;
+	caps->max_sq_sg		     = le16_to_cpu(resp_a->max_sq_sg);
+	caps->max_sq_inline	     = le16_to_cpu(resp_a->max_sq_inline);
+	caps->max_rq_sg		     = le16_to_cpu(resp_a->max_rq_sg);
+	caps->max_extend_sg	     = le32_to_cpu(resp_a->max_extend_sg);
+	caps->num_qpc_timer	     = le16_to_cpu(resp_a->num_qpc_timer);
+	caps->num_cqc_timer	     = le16_to_cpu(resp_a->num_cqc_timer);
+	caps->max_srq_sges	     = le16_to_cpu(resp_a->max_srq_sges);
+	caps->num_aeq_vectors	     = resp_a->num_aeq_vectors;
+	caps->num_other_vectors	     = resp_a->num_other_vectors;
+	caps->max_sq_desc_sz	     = resp_a->max_sq_desc_sz;
+	caps->max_rq_desc_sz	     = resp_a->max_rq_desc_sz;
+	caps->max_srq_desc_sz	     = resp_a->max_srq_desc_sz;
+	caps->cq_entry_sz	     = resp_a->cq_entry_sz;
+
+	caps->mtpt_entry_sz	     = resp_b->mtpt_entry_sz;
+	caps->irrl_entry_sz	     = resp_b->irrl_entry_sz;
+	caps->trrl_entry_sz	     = resp_b->trrl_entry_sz;
+	caps->cqc_entry_sz	     = resp_b->cqc_entry_sz;
+	caps->srqc_entry_sz	     = resp_b->srqc_entry_sz;
+	caps->idx_entry_sz	     = resp_b->idx_entry_sz;
+	caps->sccc_entry_sz	     = resp_b->scc_ctx_entry_sz;
+	caps->max_mtu		     = resp_b->max_mtu;
+	caps->qpc_entry_sz	     = le16_to_cpu(resp_b->qpc_entry_sz);
+	caps->min_cqes		     = resp_b->min_cqes;
+	caps->min_wqes		     = resp_b->min_wqes;
+	caps->page_size_cap	     = le32_to_cpu(resp_b->page_size_cap);
+	caps->pkey_table_len[0]	     = resp_b->pkey_table_len;
+	caps->phy_num_uars	     = resp_b->phy_num_uars;
+	ctx_hop_num		     = resp_b->ctx_hop_num;
+	pbl_hop_num		     = resp_b->pbl_hop_num;
+
+	caps->num_pds = 1 << roce_get_field(resp_c->cap_flags_num_pds,
+					    V2_QUERY_PF_CAPS_C_NUM_PDS_M,
+					    V2_QUERY_PF_CAPS_C_NUM_PDS_S);
+	caps->flags = roce_get_field(resp_c->cap_flags_num_pds,
+				     V2_QUERY_PF_CAPS_C_CAP_FLAGS_M,
+				     V2_QUERY_PF_CAPS_C_CAP_FLAGS_S);
+	caps->num_cqs = 1 << roce_get_field(resp_c->max_gid_num_cqs,
+					    V2_QUERY_PF_CAPS_C_NUM_CQS_M,
+					    V2_QUERY_PF_CAPS_C_NUM_CQS_S);
+	caps->gid_table_len[0] = roce_get_field(resp_c->max_gid_num_cqs,
+						V2_QUERY_PF_CAPS_C_MAX_GID_M,
+						V2_QUERY_PF_CAPS_C_MAX_GID_S);
+	caps->max_cqes = 1 << roce_get_field(resp_c->cq_depth,
+					     V2_QUERY_PF_CAPS_C_CQ_DEPTH_M,
+					     V2_QUERY_PF_CAPS_C_CQ_DEPTH_S);
+	caps->num_mtpts = 1 << roce_get_field(resp_c->num_mrws,
+					      V2_QUERY_PF_CAPS_C_NUM_MRWS_M,
+					      V2_QUERY_PF_CAPS_C_NUM_MRWS_S);
+	caps->num_qps = 1 << roce_get_field(resp_c->ord_num_qps,
+					    V2_QUERY_PF_CAPS_C_NUM_QPS_M,
+					    V2_QUERY_PF_CAPS_C_NUM_QPS_S);
+	caps->max_qp_init_rdma = roce_get_field(resp_c->ord_num_qps,
+						V2_QUERY_PF_CAPS_C_MAX_ORD_M,
+						V2_QUERY_PF_CAPS_C_MAX_ORD_S);
+	caps->max_qp_dest_rdma = caps->max_qp_init_rdma;
+	caps->max_wqes = 1 << le16_to_cpu(resp_c->sq_depth);
+	caps->num_srqs = 1 << roce_get_field(resp_d->wq_hop_num_max_srqs,
+					     V2_QUERY_PF_CAPS_D_NUM_SRQS_M,
+					     V2_QUERY_PF_CAPS_D_NUM_SRQS_S);
+	caps->max_srq_wrs = 1 << le16_to_cpu(resp_d->srq_depth);
+	caps->ceqe_depth = 1 << roce_get_field(resp_d->num_ceqs_ceq_depth,
+					       V2_QUERY_PF_CAPS_D_CEQ_DEPTH_M,
+					       V2_QUERY_PF_CAPS_D_CEQ_DEPTH_S);
+	caps->num_comp_vectors = roce_get_field(resp_d->num_ceqs_ceq_depth,
+						V2_QUERY_PF_CAPS_D_NUM_CEQS_M,
+						V2_QUERY_PF_CAPS_D_NUM_CEQS_S);
+	caps->aeqe_depth = 1 << roce_get_field(resp_d->arm_st_aeq_depth,
+					       V2_QUERY_PF_CAPS_D_AEQ_DEPTH_M,
+					       V2_QUERY_PF_CAPS_D_AEQ_DEPTH_S);
+	caps->default_aeq_arm_st = roce_get_field(resp_d->arm_st_aeq_depth,
+					    V2_QUERY_PF_CAPS_D_AEQ_ARM_ST_M,
+					    V2_QUERY_PF_CAPS_D_AEQ_ARM_ST_S);
+	caps->default_ceq_arm_st = roce_get_field(resp_d->arm_st_aeq_depth,
+					    V2_QUERY_PF_CAPS_D_CEQ_ARM_ST_M,
+					    V2_QUERY_PF_CAPS_D_CEQ_ARM_ST_S);
+	caps->reserved_pds = roce_get_field(resp_d->num_uars_rsv_pds,
+					    V2_QUERY_PF_CAPS_D_RSV_PDS_M,
+					    V2_QUERY_PF_CAPS_D_RSV_PDS_S);
+	caps->num_uars = 1 << roce_get_field(resp_d->num_uars_rsv_pds,
+					     V2_QUERY_PF_CAPS_D_NUM_UARS_M,
+					     V2_QUERY_PF_CAPS_D_NUM_UARS_S);
+	caps->reserved_qps = roce_get_field(resp_d->rsv_uars_rsv_qps,
+					    V2_QUERY_PF_CAPS_D_RSV_QPS_M,
+					    V2_QUERY_PF_CAPS_D_RSV_QPS_S);
+	caps->reserved_uars = roce_get_field(resp_d->rsv_uars_rsv_qps,
+					     V2_QUERY_PF_CAPS_D_RSV_UARS_M,
+					     V2_QUERY_PF_CAPS_D_RSV_UARS_S);
+	caps->reserved_mrws = roce_get_field(resp_e->chunk_size_shift_rsv_mrws,
+					     V2_QUERY_PF_CAPS_E_RSV_MRWS_M,
+					     V2_QUERY_PF_CAPS_E_RSV_MRWS_S);
+	caps->chunk_sz = 1 << roce_get_field(resp_e->chunk_size_shift_rsv_mrws,
+					 V2_QUERY_PF_CAPS_E_CHUNK_SIZE_SHIFT_M,
+					 V2_QUERY_PF_CAPS_E_CHUNK_SIZE_SHIFT_S);
+	caps->reserved_cqs = roce_get_field(resp_e->rsv_cqs,
+					    V2_QUERY_PF_CAPS_E_RSV_CQS_M,
+					    V2_QUERY_PF_CAPS_E_RSV_CQS_S);
+	caps->reserved_srqs = roce_get_field(resp_e->rsv_srqs,
+					     V2_QUERY_PF_CAPS_E_RSV_SRQS_M,
+					     V2_QUERY_PF_CAPS_E_RSV_SRQS_S);
+	caps->reserved_lkey = roce_get_field(resp_e->rsv_lkey,
+					     V2_QUERY_PF_CAPS_E_RSV_LKEYS_M,
+					     V2_QUERY_PF_CAPS_E_RSV_LKEYS_S);
+	caps->default_ceq_max_cnt = le16_to_cpu(resp_e->ceq_max_cnt);
+	caps->default_ceq_period = le16_to_cpu(resp_e->ceq_period);
+	caps->default_aeq_max_cnt = le16_to_cpu(resp_e->aeq_max_cnt);
+	caps->default_aeq_period = le16_to_cpu(resp_e->aeq_period);
+
+	caps->qpc_timer_entry_sz = HNS_ROCE_V2_QPC_TIMER_ENTRY_SZ;
+	caps->cqc_timer_entry_sz = HNS_ROCE_V2_CQC_TIMER_ENTRY_SZ;
+	caps->mtt_entry_sz = HNS_ROCE_V2_MTT_ENTRY_SZ;
+	caps->num_mtt_segs = HNS_ROCE_V2_MAX_MTT_SEGS;
+	caps->mtt_ba_pg_sz = 0;
+	caps->num_cqe_segs = HNS_ROCE_V2_MAX_CQE_SEGS;
+	caps->num_srqwqe_segs = HNS_ROCE_V2_MAX_SRQWQE_SEGS;
+	caps->num_idx_segs = HNS_ROCE_V2_MAX_IDX_SEGS;
+
+	caps->qpc_hop_num = ctx_hop_num;
+	caps->srqc_hop_num = ctx_hop_num;
+	caps->cqc_hop_num = ctx_hop_num;
+	caps->mpt_hop_num = ctx_hop_num;
+	caps->mtt_hop_num = pbl_hop_num;
+	caps->cqe_hop_num = pbl_hop_num;
+	caps->srqwqe_hop_num = pbl_hop_num;
+	caps->idx_hop_num = pbl_hop_num;
+	caps->wqe_sq_hop_num = roce_get_field(resp_d->wq_hop_num_max_srqs,
+					  V2_QUERY_PF_CAPS_D_SQWQE_HOP_NUM_M,
+					  V2_QUERY_PF_CAPS_D_SQWQE_HOP_NUM_S);
+	caps->wqe_sge_hop_num = roce_get_field(resp_d->wq_hop_num_max_srqs,
+					  V2_QUERY_PF_CAPS_D_EX_SGE_HOP_NUM_M,
+					  V2_QUERY_PF_CAPS_D_EX_SGE_HOP_NUM_S);
+	caps->wqe_rq_hop_num = roce_get_field(resp_d->wq_hop_num_max_srqs,
+					  V2_QUERY_PF_CAPS_D_RQWQE_HOP_NUM_M,
+					  V2_QUERY_PF_CAPS_D_RQWQE_HOP_NUM_S);
+
+	calc_pg_sz(caps->num_qps, caps->qpc_entry_sz, caps->qpc_hop_num,
+		   caps->qpc_bt_num, &caps->qpc_buf_pg_sz, &caps->qpc_ba_pg_sz,
+		   HEM_TYPE_QPC);
+	calc_pg_sz(caps->num_mtpts, caps->mtpt_entry_sz, caps->mpt_hop_num,
+		   caps->mpt_bt_num, &caps->mpt_buf_pg_sz, &caps->mpt_ba_pg_sz,
+		   HEM_TYPE_MTPT);
+	calc_pg_sz(caps->num_cqs, caps->cqc_entry_sz, caps->cqc_hop_num,
+		   caps->cqc_bt_num, &caps->cqc_buf_pg_sz, &caps->cqc_ba_pg_sz,
+		   HEM_TYPE_CQC);
+	calc_pg_sz(caps->num_srqs, caps->srqc_entry_sz, caps->srqc_hop_num,
+		   caps->srqc_bt_num, &caps->srqc_buf_pg_sz,
+		   &caps->srqc_ba_pg_sz, HEM_TYPE_SRQC);
+
+	if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP08_B) {
+		caps->sccc_hop_num = ctx_hop_num;
+		caps->qpc_timer_hop_num = HNS_ROCE_HOP_NUM_0;
+		caps->cqc_timer_hop_num = HNS_ROCE_HOP_NUM_0;
+
+		calc_pg_sz(caps->num_qps, caps->sccc_entry_sz,
+			   caps->sccc_hop_num, caps->sccc_bt_num,
+			   &caps->sccc_buf_pg_sz, &caps->sccc_ba_pg_sz,
+			   HEM_TYPE_SCCC);
+		calc_pg_sz(caps->num_cqc_timer, caps->cqc_timer_entry_sz,
+			   caps->cqc_timer_hop_num, caps->cqc_timer_bt_num,
+			   &caps->cqc_timer_buf_pg_sz,
+			   &caps->cqc_timer_ba_pg_sz, HEM_TYPE_CQC_TIMER);
+	}
+
+	calc_pg_sz(caps->num_cqe_segs, caps->mtt_entry_sz, caps->cqe_hop_num,
+		   1, &caps->cqe_buf_pg_sz, &caps->cqe_ba_pg_sz, HEM_TYPE_CQE);
+	calc_pg_sz(caps->num_srqwqe_segs, caps->mtt_entry_sz,
+		   caps->srqwqe_hop_num, 1, &caps->srqwqe_buf_pg_sz,
+		   &caps->srqwqe_ba_pg_sz, HEM_TYPE_SRQWQE);
+	calc_pg_sz(caps->num_idx_segs, caps->idx_entry_sz, caps->idx_hop_num,
+		   1, &caps->idx_buf_pg_sz, &caps->idx_ba_pg_sz, HEM_TYPE_IDX);
+
+	return 0;
+}
+
+static int hns_roce_v2_profile(struct hns_roce_dev *hr_dev)
+{
+	struct hns_roce_caps *caps = &hr_dev->caps;
+	int ret;
+
+	ret = hns_roce_cmq_query_hw_info(hr_dev);
+	if (ret) {
+		dev_err(hr_dev->dev, "Query hardware version fail, ret = %d.\n",
+			ret);
+		return ret;
+	}
+
+	ret = hns_roce_query_fw_ver(hr_dev);
+	if (ret) {
+		dev_err(hr_dev->dev, "Query firmware version fail, ret = %d.\n",
+			ret);
+		return ret;
+	}
+
+	ret = hns_roce_config_global_param(hr_dev);
+	if (ret) {
+		dev_err(hr_dev->dev, "Configure global param fail, ret = %d.\n",
+			ret);
+		return ret;
+	}
+
+	/* Get pf resource owned by every pf */
+	ret = hns_roce_query_pf_resource(hr_dev);
+	if (ret) {
+		dev_err(hr_dev->dev, "Query pf resource fail, ret = %d.\n",
+			ret);
+		return ret;
+	}
+
+	if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP08_B) {
+		ret = hns_roce_query_pf_timer_resource(hr_dev);
+		if (ret) {
+			dev_err(hr_dev->dev,
+				"Query pf timer resource fail, ret = %d.\n",
+				ret);
+			return ret;
+		}
+
+		ret = hns_roce_set_vf_switch_param(hr_dev, 0);
+		if (ret) {
+			dev_err(hr_dev->dev,
+				"Set function switch param fail, ret = %d.\n",
+				ret);
+			return ret;
+		}
+	}
+
+	ret = hns_roce_alloc_vf_resource(hr_dev);
+	if (ret) {
+		dev_err(hr_dev->dev, "Allocate vf resource fail, ret = %d.\n",
+			ret);
+		return ret;
+	}
+
+	hr_dev->vendor_part_id = hr_dev->pci_dev->device;
+	hr_dev->sys_image_guid = be64_to_cpu(hr_dev->ib_dev.node_guid);
+
+	caps->num_mtt_segs	= HNS_ROCE_V2_MAX_MTT_SEGS;
+	caps->num_cqe_segs	= HNS_ROCE_V2_MAX_CQE_SEGS;
+	caps->num_srqwqe_segs	= HNS_ROCE_V2_MAX_SRQWQE_SEGS;
+	caps->num_idx_segs	= HNS_ROCE_V2_MAX_IDX_SEGS;
+
+	caps->pbl_ba_pg_sz	= HNS_ROCE_BA_PG_SZ_SUPPORTED_16K;
+	caps->pbl_buf_pg_sz	= 0;
+	caps->pbl_hop_num	= HNS_ROCE_PBL_HOP_NUM;
+	caps->eqe_ba_pg_sz	= 0;
+	caps->eqe_buf_pg_sz	= 0;
+	caps->eqe_hop_num	= HNS_ROCE_EQE_HOP_NUM;
+	caps->tsq_buf_pg_sz	= 0;
+
+	ret = hns_roce_query_pf_caps(hr_dev);
+	if (ret)
+		set_default_caps(hr_dev);
+
 	ret = hns_roce_v2_set_bt(hr_dev);
 	if (ret)
 		dev_err(hr_dev->dev, "Configure bt attribute fail, ret = %d.\n",
@@ -1818,37 +2085,32 @@
 			req_a->base_addr_h =
 				cpu_to_le32(link_tbl->table.map >> 32);
 			roce_set_field(req_a->depth_pgsz_init_en,
-				       CFG_LLM_QUE_DEPTH_M,
-				       CFG_LLM_QUE_DEPTH_S,
+				       CFG_LLM_QUE_DEPTH_M, CFG_LLM_QUE_DEPTH_S,
 				       link_tbl->npages);
 			roce_set_field(req_a->depth_pgsz_init_en,
-				       CFG_LLM_QUE_PGSZ_M,
-				       CFG_LLM_QUE_PGSZ_S,
+				       CFG_LLM_QUE_PGSZ_M, CFG_LLM_QUE_PGSZ_S,
 				       link_tbl->pg_sz);
 			req_a->head_ba_l = cpu_to_le32(entry[0].blk_ba0);
 			req_a->head_ba_h_nxtptr =
 				cpu_to_le32(entry[0].blk_ba1_nxt_ptr);
-			roce_set_field(req_a->head_ptr,
-				       CFG_LLM_HEAD_PTR_M,
+			roce_set_field(req_a->head_ptr, CFG_LLM_HEAD_PTR_M,
 				       CFG_LLM_HEAD_PTR_S, 0);
 		} else {
 			req_b->tail_ba_l =
 				cpu_to_le32(entry[page_num - 1].blk_ba0);
-			roce_set_field(req_b->tail_ba_h,
-				       CFG_LLM_TAIL_BA_H_M,
+			roce_set_field(req_b->tail_ba_h, CFG_LLM_TAIL_BA_H_M,
 				       CFG_LLM_TAIL_BA_H_S,
 				       entry[page_num - 1].blk_ba1_nxt_ptr &
-				       HNS_ROCE_LINK_TABLE_BA1_M);
-			roce_set_field(req_b->tail_ptr,
-				       CFG_LLM_TAIL_PTR_M,
+					       HNS_ROCE_LINK_TABLE_BA1_M);
+			roce_set_field(req_b->tail_ptr, CFG_LLM_TAIL_PTR_M,
 				       CFG_LLM_TAIL_PTR_S,
 				       (entry[page_num - 2].blk_ba1_nxt_ptr &
-				       HNS_ROCE_LINK_TABLE_NXT_PTR_M) >>
-				       HNS_ROCE_LINK_TABLE_NXT_PTR_S);
+					HNS_ROCE_LINK_TABLE_NXT_PTR_M) >>
+					       HNS_ROCE_LINK_TABLE_NXT_PTR_S);
 		}
 	}
-	roce_set_field(req_a->depth_pgsz_init_en,
-		       CFG_LLM_INIT_EN_M, CFG_LLM_INIT_EN_S, 1);
+	roce_set_field(req_a->depth_pgsz_init_en, CFG_LLM_INIT_EN_M,
+		       CFG_LLM_INIT_EN_S, 1);
 
 	return hns_roce_cmq_send(hr_dev, desc, 2);
 }
@@ -2020,7 +2282,7 @@
 {
 	struct hns_roce_v2_priv *priv = hr_dev->priv;
 
-	if (hr_dev->pci_dev->revision == 0x21)
+	if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP08_B)
 		hns_roce_function_clear(hr_dev);
 
 	hns_roce_free_link_table(hr_dev, &priv->tpq);
@@ -2141,11 +2403,9 @@
 
 	hns_roce_cmq_setup_basic_desc(&desc, HNS_ROCE_OPC_CFG_SGID_TB, false);
 
-	roce_set_field(sgid_tb->table_idx_rsv,
-		       CFG_SGID_TB_TABLE_IDX_M,
+	roce_set_field(sgid_tb->table_idx_rsv, CFG_SGID_TB_TABLE_IDX_M,
 		       CFG_SGID_TB_TABLE_IDX_S, gid_index);
-	roce_set_field(sgid_tb->vf_sgid_type_rsv,
-		       CFG_SGID_TB_VF_SGID_TYPE_M,
+	roce_set_field(sgid_tb->vf_sgid_type_rsv, CFG_SGID_TB_VF_SGID_TYPE_M,
 		       CFG_SGID_TB_VF_SGID_TYPE_S, sgid_type);
 
 	p = (u32 *)&gid->raw[0];
@@ -2416,11 +2676,10 @@
 		       V2_MPT_BYTE_4_MPT_ST_S, V2_MPT_ST_FREE);
 	roce_set_field(mpt_entry->byte_4_pd_hop_st, V2_MPT_BYTE_4_PD_M,
 		       V2_MPT_BYTE_4_PD_S, mw->pdn);
-	roce_set_field(mpt_entry->byte_4_pd_hop_st,
-		       V2_MPT_BYTE_4_PBL_HOP_NUM_M,
+	roce_set_field(mpt_entry->byte_4_pd_hop_st, V2_MPT_BYTE_4_PBL_HOP_NUM_M,
 		       V2_MPT_BYTE_4_PBL_HOP_NUM_S,
-		       mw->pbl_hop_num == HNS_ROCE_HOP_NUM_0 ?
-		       0 : mw->pbl_hop_num);
+		       mw->pbl_hop_num == HNS_ROCE_HOP_NUM_0 ? 0 :
+							       mw->pbl_hop_num);
 	roce_set_field(mpt_entry->byte_4_pd_hop_st,
 		       V2_MPT_BYTE_4_PBL_BA_PG_SZ_M,
 		       V2_MPT_BYTE_4_PBL_BA_PG_SZ_S,
@@ -2428,6 +2687,7 @@
 
 	roce_set_bit(mpt_entry->byte_8_mw_cnt_en, V2_MPT_BYTE_8_R_INV_EN_S, 1);
 	roce_set_bit(mpt_entry->byte_8_mw_cnt_en, V2_MPT_BYTE_8_L_INV_EN_S, 1);
+	roce_set_bit(mpt_entry->byte_8_mw_cnt_en, V2_MPT_BYTE_8_LW_EN_S, 1);
 
 	roce_set_bit(mpt_entry->byte_12_mw_pa, V2_MPT_BYTE_12_PA_S, 0);
 	roce_set_bit(mpt_entry->byte_12_mw_pa, V2_MPT_BYTE_12_MR_MW_S, 1);
@@ -2447,8 +2707,7 @@
 
 static void *get_cqe_v2(struct hns_roce_cq *hr_cq, int n)
 {
-	return hns_roce_buf_offset(&hr_cq->hr_buf.hr_buf,
-				   n * HNS_ROCE_V2_CQE_ENTRY_SIZE);
+	return hns_roce_buf_offset(&hr_cq->buf, n * HNS_ROCE_V2_CQE_ENTRY_SIZE);
 }
 
 static void *get_sw_cqe_v2(struct hns_roce_cq *hr_cq, int n)
@@ -2457,7 +2716,7 @@
 
 	/* Get cqe when Owner bit is Conversely with the MSB of cons_idx */
 	return (roce_get_bit(cqe->byte_4, V2_CQE_BYTE_4_OWNER_S) ^
-		!!(n & (hr_cq->ib_cq.cqe + 1))) ? cqe : NULL;
+		!!(n & hr_cq->cq_depth)) ? cqe : NULL;
 }
 
 static struct hns_roce_v2_cqe *next_cqe_sw_v2(struct hns_roce_cq *hr_cq)
@@ -2483,7 +2742,7 @@
 
 static void hns_roce_v2_cq_set_ci(struct hns_roce_cq *hr_cq, u32 cons_index)
 {
-	*hr_cq->set_ci_db = cons_index & 0xffffff;
+	*hr_cq->set_ci_db = cons_index & V2_CQ_DB_PARAMETER_CONS_IDX_M;
 }
 
 static void __hns_roce_v2_cq_clean(struct hns_roce_cq *hr_cq, u32 qpn,
@@ -2550,8 +2809,7 @@
 
 static void hns_roce_v2_write_cqc(struct hns_roce_dev *hr_dev,
 				  struct hns_roce_cq *hr_cq, void *mb_buf,
-				  u64 *mtts, dma_addr_t dma_handle, int nent,
-				  u32 vector)
+				  u64 *mtts, dma_addr_t dma_handle)
 {
 	struct hns_roce_v2_cq_context *cq_context;
 
@@ -2563,9 +2821,9 @@
 	roce_set_field(cq_context->byte_4_pg_ceqn, V2_CQC_BYTE_4_ARM_ST_M,
 		       V2_CQC_BYTE_4_ARM_ST_S, REG_NXT_CEQE);
 	roce_set_field(cq_context->byte_4_pg_ceqn, V2_CQC_BYTE_4_SHIFT_M,
-		       V2_CQC_BYTE_4_SHIFT_S, ilog2((unsigned int)nent));
+		       V2_CQC_BYTE_4_SHIFT_S, ilog2(hr_cq->cq_depth));
 	roce_set_field(cq_context->byte_4_pg_ceqn, V2_CQC_BYTE_4_CEQN_M,
-		       V2_CQC_BYTE_4_CEQN_S, vector);
+		       V2_CQC_BYTE_4_CEQN_S, hr_cq->vector);
 
 	roce_set_field(cq_context->byte_8_cqn, V2_CQC_BYTE_8_CQN_M,
 		       V2_CQC_BYTE_8_CQN_S, hr_cq->cqn);
@@ -2688,16 +2946,63 @@
 	return 0;
 }
 
+static int sw_comp(struct hns_roce_qp *hr_qp, struct hns_roce_wq *wq,
+		   int num_entries, struct ib_wc *wc)
+{
+	unsigned int left;
+	int npolled = 0;
+
+	left = wq->head - wq->tail;
+	if (left == 0)
+		return 0;
+
+	left = min_t(unsigned int, (unsigned int)num_entries, left);
+	while (npolled < left) {
+		wc->wr_id = wq->wrid[wq->tail & (wq->wqe_cnt - 1)];
+		wc->status = IB_WC_WR_FLUSH_ERR;
+		wc->vendor_err = 0;
+		wc->qp = &hr_qp->ibqp;
+
+		wq->tail++;
+		wc++;
+		npolled++;
+	}
+
+	return npolled;
+}
+
+static int hns_roce_v2_sw_poll_cq(struct hns_roce_cq *hr_cq, int num_entries,
+				  struct ib_wc *wc)
+{
+	struct hns_roce_qp *hr_qp;
+	int npolled = 0;
+
+	list_for_each_entry(hr_qp, &hr_cq->sq_list, sq_node) {
+		npolled += sw_comp(hr_qp, &hr_qp->sq,
+				   num_entries - npolled, wc + npolled);
+		if (npolled >= num_entries)
+			goto out;
+	}
+
+	list_for_each_entry(hr_qp, &hr_cq->rq_list, rq_node) {
+		npolled += sw_comp(hr_qp, &hr_qp->rq,
+				   num_entries - npolled, wc + npolled);
+		if (npolled >= num_entries)
+			goto out;
+	}
+
+out:
+	return npolled;
+}
+
 static int hns_roce_v2_poll_one(struct hns_roce_cq *hr_cq,
 				struct hns_roce_qp **cur_qp, struct ib_wc *wc)
 {
+	struct hns_roce_dev *hr_dev = to_hr_dev(hr_cq->ib_cq.device);
 	struct hns_roce_srq *srq = NULL;
-	struct hns_roce_dev *hr_dev;
 	struct hns_roce_v2_cqe *cqe;
 	struct hns_roce_qp *hr_qp;
 	struct hns_roce_wq *wq;
-	struct ib_qp_attr attr;
-	int attr_mask;
 	int is_send;
 	u16 wqe_ctr;
 	u32 opcode;
@@ -2721,7 +3026,6 @@
 				V2_CQE_BYTE_16_LCL_QPN_S);
 
 	if (!*cur_qp || (qpn & HNS_ROCE_V2_CQE_QPN_MASK) != (*cur_qp)->qpn) {
-		hr_dev = to_hr_dev(hr_cq->ib_cq.device);
 		hr_qp = __hns_roce_qp_lookup(hr_dev, qpn);
 		if (unlikely(!hr_qp)) {
 			dev_err(hr_dev->dev, "CQ %06lx with entry for unknown QPN %06x\n",
@@ -2731,6 +3035,7 @@
 		*cur_qp = hr_qp;
 	}
 
+	hr_qp = *cur_qp;
 	wc->qp = &(*cur_qp)->ibqp;
 	wc->vendor_err = 0;
 
@@ -2815,14 +3120,24 @@
 		break;
 	}
 
-	/* flush cqe if wc status is error, excluding flush error */
-	if ((wc->status != IB_WC_SUCCESS) &&
-	    (wc->status != IB_WC_WR_FLUSH_ERR)) {
-		attr_mask = IB_QP_STATE;
-		attr.qp_state = IB_QPS_ERR;
-		return hns_roce_v2_modify_qp(&(*cur_qp)->ibqp,
-					     &attr, attr_mask,
-					     (*cur_qp)->state, IB_QPS_ERR);
+	/*
+	 * Hip08 hardware cannot flush the WQEs in SQ/RQ if the QP state gets
+	 * into errored mode. Hence, as a workaround to this hardware
+	 * limitation, driver needs to assist in flushing. But the flushing
+	 * operation uses mailbox to convey the QP state to the hardware and
+	 * which can sleep due to the mutex protection around the mailbox calls.
+	 * Hence, use the deferred flush for now. Once wc error detected, the
+	 * flushing operation is needed.
+	 */
+	if (wc->status != IB_WC_SUCCESS &&
+	    wc->status != IB_WC_WR_FLUSH_ERR) {
+		dev_err(hr_dev->dev, "error cqe status is: 0x%x\n",
+			status & HNS_ROCE_V2_CQE_STATUS_MASK);
+
+		if (!test_and_set_bit(HNS_ROCE_FLUSH_FLAG, &hr_qp->flush_flag))
+			init_flush_work(hr_dev, hr_qp);
+
+		return 0;
 	}
 
 	if (wc->status == IB_WC_WR_FLUSH_ERR)
@@ -2968,6 +3283,7 @@
 static int hns_roce_v2_poll_cq(struct ib_cq *ibcq, int num_entries,
 			       struct ib_wc *wc)
 {
+	struct hns_roce_dev *hr_dev = to_hr_dev(ibcq->device);
 	struct hns_roce_cq *hr_cq = to_hr_cq(ibcq);
 	struct hns_roce_qp *cur_qp = NULL;
 	unsigned long flags;
@@ -2975,6 +3291,18 @@
 
 	spin_lock_irqsave(&hr_cq->lock, flags);
 
+	/*
+	 * When the device starts to reset, the state is RST_DOWN. At this time,
+	 * there may still be some valid CQEs in the hardware that are not
+	 * polled. Therefore, it is not allowed to switch to the software mode
+	 * immediately. When the state changes to UNINIT, CQE no longer exists
+	 * in the hardware, and then switch to software mode.
+	 */
+	if (hr_dev->state == HNS_ROCE_DEVICE_STATE_UNINIT) {
+		npolled = hns_roce_v2_sw_poll_cq(hr_cq, num_entries, wc);
+		goto out;
+	}
+
 	for (npolled = 0; npolled < num_entries; ++npolled) {
 		if (hns_roce_v2_poll_one(hr_cq, &cur_qp, wc + npolled))
 			break;
@@ -2986,6 +3314,7 @@
 		hns_roce_v2_cq_set_ci(hr_cq, hr_cq->cons_index);
 	}
 
+out:
 	spin_unlock_irqrestore(&hr_cq->lock, flags);
 
 	return npolled;
@@ -3160,8 +3489,6 @@
 }
 
 static int hns_roce_v2_qp_modify(struct hns_roce_dev *hr_dev,
-				 enum ib_qp_state cur_state,
-				 enum ib_qp_state new_state,
 				 struct hns_roce_v2_qp_context *context,
 				 struct hns_roce_qp *hr_qp)
 {
@@ -3211,6 +3538,9 @@
 	roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
 		     !!(access_flags & IB_ACCESS_REMOTE_ATOMIC));
 	roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S, 0);
+	roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_EXT_ATE_S,
+		     !!(access_flags & IB_ACCESS_REMOTE_ATOMIC));
+	roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_EXT_ATE_S, 0);
 }
 
 static void set_qpc_wqe_cnt(struct hns_roce_qp *hr_qp,
@@ -3578,6 +3908,12 @@
 			     IB_ACCESS_REMOTE_ATOMIC));
 		roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
 			     0);
+		roce_set_bit(context->byte_76_srqn_op_en,
+			     V2_QPC_BYTE_76_EXT_ATE_S,
+			     !!(attr->qp_access_flags &
+				IB_ACCESS_REMOTE_ATOMIC));
+		roce_set_bit(qpc_mask->byte_76_srqn_op_en,
+			     V2_QPC_BYTE_76_EXT_ATE_S, 0);
 	} else {
 		roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S,
 			     !!(hr_qp->access_flags & IB_ACCESS_REMOTE_READ));
@@ -3593,6 +3929,11 @@
 			     !!(hr_qp->access_flags & IB_ACCESS_REMOTE_ATOMIC));
 		roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
 			     0);
+		roce_set_bit(context->byte_76_srqn_op_en,
+			     V2_QPC_BYTE_76_EXT_ATE_S,
+			     !!(hr_qp->access_flags & IB_ACCESS_REMOTE_ATOMIC));
+		roce_set_bit(qpc_mask->byte_76_srqn_op_en,
+			     V2_QPC_BYTE_76_EXT_ATE_S, 0);
 	}
 
 	roce_set_field(context->byte_16_buf_ba_pg_sz, V2_QPC_BYTE_16_PD_M,
@@ -3839,13 +4180,11 @@
 	/* Configure GID index */
 	port_num = rdma_ah_get_port_num(&attr->ah_attr);
 	roce_set_field(context->byte_20_smac_sgid_idx,
-		       V2_QPC_BYTE_20_SGID_IDX_M,
-		       V2_QPC_BYTE_20_SGID_IDX_S,
+		       V2_QPC_BYTE_20_SGID_IDX_M, V2_QPC_BYTE_20_SGID_IDX_S,
 		       hns_get_gid_index(hr_dev, port_num - 1,
 					 grh->sgid_index));
 	roce_set_field(qpc_mask->byte_20_smac_sgid_idx,
-		       V2_QPC_BYTE_20_SGID_IDX_M,
-		       V2_QPC_BYTE_20_SGID_IDX_S, 0);
+		       V2_QPC_BYTE_20_SGID_IDX_M, V2_QPC_BYTE_20_SGID_IDX_S, 0);
 	memcpy(&(context->dmac), dmac, sizeof(u32));
 	roce_set_field(context->byte_52_udpspn_dmac, V2_QPC_BYTE_52_DMAC_M,
 		       V2_QPC_BYTE_52_DMAC_S, *((u16 *)(&dmac[4])));
@@ -4061,8 +4400,8 @@
 	struct hns_roce_qp *hr_qp = to_hr_qp(ibqp);
 	const struct ib_gid_attr *gid_attr = NULL;
 	int is_roce_protocol;
+	u16 vlan_id = 0xffff;
 	bool is_udp = false;
-	u16 vlan = 0xffff;
 	u8 ib_port;
 	u8 hr_port;
 	int ret;
@@ -4074,7 +4413,7 @@
 
 	if (is_roce_protocol) {
 		gid_attr = attr->ah_attr.grh.sgid_attr;
-		ret = rdma_read_gid_l2_fields(gid_attr, &vlan, NULL);
+		ret = rdma_read_gid_l2_fields(gid_attr, &vlan_id, NULL);
 		if (ret)
 			return ret;
 
@@ -4083,7 +4422,7 @@
 				 IB_GID_TYPE_ROCE_UDP_ENCAP);
 	}
 
-	if (vlan < VLAN_CFI_MASK) {
+	if (vlan_id < VLAN_N_VID) {
 		roce_set_bit(context->byte_76_srqn_op_en,
 			     V2_QPC_BYTE_76_RQ_VLAN_EN_S, 1);
 		roce_set_bit(qpc_mask->byte_76_srqn_op_en,
@@ -4095,7 +4434,7 @@
 	}
 
 	roce_set_field(context->byte_24_mtu_tc, V2_QPC_BYTE_24_VLAN_ID_M,
-		       V2_QPC_BYTE_24_VLAN_ID_S, vlan);
+		       V2_QPC_BYTE_24_VLAN_ID_S, vlan_id);
 	roce_set_field(qpc_mask->byte_24_mtu_tc, V2_QPC_BYTE_24_VLAN_ID_M,
 		       V2_QPC_BYTE_24_VLAN_ID_S, 0);
 
@@ -4129,7 +4468,7 @@
 	roce_set_field(qpc_mask->byte_24_mtu_tc, V2_QPC_BYTE_24_HOP_LIMIT_M,
 		       V2_QPC_BYTE_24_HOP_LIMIT_S, 0);
 
-	if (hr_dev->pci_dev->revision == 0x21 && is_udp)
+	if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP08_B && is_udp)
 		roce_set_field(context->byte_24_mtu_tc, V2_QPC_BYTE_24_TC_M,
 			       V2_QPC_BYTE_24_TC_S, grh->traffic_class >> 2);
 	else
@@ -4235,8 +4574,7 @@
 
 		roce_set_field(context->byte_212_lsn,
 			       V2_QPC_BYTE_212_RETRY_CNT_M,
-			       V2_QPC_BYTE_212_RETRY_CNT_S,
-			       attr->retry_cnt);
+			       V2_QPC_BYTE_212_RETRY_CNT_S, attr->retry_cnt);
 		roce_set_field(qpc_mask->byte_212_lsn,
 			       V2_QPC_BYTE_212_RETRY_CNT_M,
 			       V2_QPC_BYTE_212_RETRY_CNT_S, 0);
@@ -4390,6 +4728,8 @@
 	struct hns_roce_v2_qp_context *context = ctx;
 	struct hns_roce_v2_qp_context *qpc_mask = ctx + 1;
 	struct device *dev = hr_dev->dev;
+	unsigned long sq_flag = 0;
+	unsigned long rq_flag = 0;
 	int ret;
 
 	/*
@@ -4407,6 +4747,8 @@
 
 	/* When QP state is err, SQ and RQ WQE should be flushed */
 	if (new_state == IB_QPS_ERR) {
+		spin_lock_irqsave(&hr_qp->sq.lock, sq_flag);
+		hr_qp->state = IB_QPS_ERR;
 		roce_set_field(context->byte_160_sq_ci_pi,
 			       V2_QPC_BYTE_160_SQ_PRODUCER_IDX_M,
 			       V2_QPC_BYTE_160_SQ_PRODUCER_IDX_S,
@@ -4414,8 +4756,10 @@
 		roce_set_field(qpc_mask->byte_160_sq_ci_pi,
 			       V2_QPC_BYTE_160_SQ_PRODUCER_IDX_M,
 			       V2_QPC_BYTE_160_SQ_PRODUCER_IDX_S, 0);
+		spin_unlock_irqrestore(&hr_qp->sq.lock, sq_flag);
 
 		if (!ibqp->srq) {
+			spin_lock_irqsave(&hr_qp->rq.lock, rq_flag);
 			roce_set_field(context->byte_84_rq_ci_pi,
 			       V2_QPC_BYTE_84_RQ_PRODUCER_IDX_M,
 			       V2_QPC_BYTE_84_RQ_PRODUCER_IDX_S,
@@ -4423,6 +4767,7 @@
 			roce_set_field(qpc_mask->byte_84_rq_ci_pi,
 			       V2_QPC_BYTE_84_RQ_PRODUCER_IDX_M,
 			       V2_QPC_BYTE_84_RQ_PRODUCER_IDX_S, 0);
+			spin_unlock_irqrestore(&hr_qp->rq.lock, rq_flag);
 		}
 	}
 
@@ -4444,7 +4789,7 @@
 		       V2_QPC_BYTE_60_QP_ST_S, 0);
 
 	/* SW pass context to HW */
-	ret = hns_roce_v2_qp_modify(hr_dev, cur_state, new_state, ctx, hr_qp);
+	ret = hns_roce_v2_qp_modify(hr_dev, ctx, hr_qp);
 	if (ret) {
 		dev_err(dev, "hns_roce_qp_modify failed(%d)\n", ret);
 		goto out;
@@ -4465,7 +4810,6 @@
 		hr_qp->rq.tail = 0;
 		hr_qp->sq.head = 0;
 		hr_qp->sq.tail = 0;
-		hr_qp->sq_next_wqe = 0;
 		hr_qp->next_sge = 0;
 		if (hr_qp->rq.wqe_cnt)
 			*hr_qp->rdb.db_record = 0;
@@ -4562,7 +4906,7 @@
 	qp_attr->path_mig_state = IB_MIG_ARMED;
 	qp_attr->ah_attr.type   = RDMA_AH_ATTR_TYPE_ROCE;
 	if (hr_qp->ibqp.qp_type == IB_QPT_UD)
-		qp_attr->qkey = V2_QKEY_VAL;
+		qp_attr->qkey = le32_to_cpu(context.qkey_xrcd);
 
 	qp_attr->rq_psn = roce_get_field(context.byte_108_rx_reqepsn,
 					 V2_QPC_BYTE_108_RX_REQ_EPSN_M,
@@ -4620,9 +4964,11 @@
 					      V2_QPC_BYTE_28_AT_M,
 					      V2_QPC_BYTE_28_AT_S);
 	qp_attr->retry_cnt = roce_get_field(context.byte_212_lsn,
-					    V2_QPC_BYTE_212_RETRY_CNT_M,
-					    V2_QPC_BYTE_212_RETRY_CNT_S);
-	qp_attr->rnr_retry = le32_to_cpu(context.rq_rnr_timer);
+					    V2_QPC_BYTE_212_RETRY_NUM_INIT_M,
+					    V2_QPC_BYTE_212_RETRY_NUM_INIT_S);
+	qp_attr->rnr_retry = roce_get_field(context.byte_244_rnr_rxack,
+					    V2_QPC_BYTE_244_RNR_NUM_INIT_M,
+					    V2_QPC_BYTE_244_RNR_NUM_INIT_S);
 
 done:
 	qp_attr->cur_qp_state = qp_attr->qp_state;
@@ -4638,6 +4984,7 @@
 	}
 
 	qp_init_attr->cap = qp_attr->cap;
+	qp_init_attr->sq_sig_type = hr_qp->sq_signal_bits;
 
 out:
 	mutex_unlock(&hr_qp->mutex);
@@ -4650,72 +4997,41 @@
 {
 	struct hns_roce_cq *send_cq, *recv_cq;
 	struct ib_device *ibdev = &hr_dev->ib_dev;
-	int ret;
+	unsigned long flags;
+	int ret = 0;
 
 	if (hr_qp->ibqp.qp_type == IB_QPT_RC && hr_qp->state != IB_QPS_RESET) {
 		/* Modify qp to reset before destroying qp */
 		ret = hns_roce_v2_modify_qp(&hr_qp->ibqp, NULL, 0,
 					    hr_qp->state, IB_QPS_RESET);
-		if (ret) {
+		if (ret)
 			ibdev_err(ibdev, "modify QP to Reset failed.\n");
-			return ret;
-		}
 	}
 
-	send_cq = to_hr_cq(hr_qp->ibqp.send_cq);
-	recv_cq = to_hr_cq(hr_qp->ibqp.recv_cq);
+	send_cq = hr_qp->ibqp.send_cq ? to_hr_cq(hr_qp->ibqp.send_cq) : NULL;
+	recv_cq = hr_qp->ibqp.recv_cq ? to_hr_cq(hr_qp->ibqp.recv_cq) : NULL;
 
+	spin_lock_irqsave(&hr_dev->qp_list_lock, flags);
 	hns_roce_lock_cqs(send_cq, recv_cq);
 
 	if (!udata) {
-		__hns_roce_v2_cq_clean(recv_cq, hr_qp->qpn, hr_qp->ibqp.srq ?
-				       to_hr_srq(hr_qp->ibqp.srq) : NULL);
-		if (send_cq != recv_cq)
+		if (recv_cq)
+			__hns_roce_v2_cq_clean(recv_cq, hr_qp->qpn,
+					       (hr_qp->ibqp.srq ?
+						to_hr_srq(hr_qp->ibqp.srq) :
+						NULL));
+
+		if (send_cq && send_cq != recv_cq)
 			__hns_roce_v2_cq_clean(send_cq, hr_qp->qpn, NULL);
+
 	}
 
 	hns_roce_qp_remove(hr_dev, hr_qp);
 
 	hns_roce_unlock_cqs(send_cq, recv_cq);
+	spin_unlock_irqrestore(&hr_dev->qp_list_lock, flags);
 
-	hns_roce_qp_free(hr_dev, hr_qp);
-
-	/* Not special_QP, free their QPN */
-	if ((hr_qp->ibqp.qp_type == IB_QPT_RC) ||
-	    (hr_qp->ibqp.qp_type == IB_QPT_UC) ||
-	    (hr_qp->ibqp.qp_type == IB_QPT_UD))
-		hns_roce_release_range_qp(hr_dev, hr_qp->qpn, 1);
-
-	hns_roce_mtr_cleanup(hr_dev, &hr_qp->mtr);
-
-	if (udata) {
-		struct hns_roce_ucontext *context =
-			rdma_udata_to_drv_context(
-				udata,
-				struct hns_roce_ucontext,
-				ibucontext);
-
-		if (hr_qp->sq.wqe_cnt && (hr_qp->sdb_en == 1))
-			hns_roce_db_unmap_user(context, &hr_qp->sdb);
-
-		if (hr_qp->rq.wqe_cnt && (hr_qp->rdb_en == 1))
-			hns_roce_db_unmap_user(context, &hr_qp->rdb);
-	} else {
-		kfree(hr_qp->sq.wrid);
-		kfree(hr_qp->rq.wrid);
-		hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf);
-		if (hr_qp->rq.wqe_cnt)
-			hns_roce_free_db(hr_dev, &hr_qp->rdb);
-	}
-	ib_umem_release(hr_qp->umem);
-
-	if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) &&
-	     hr_qp->rq.wqe_cnt) {
-		kfree(hr_qp->rq_inl_buf.wqe_list[0].sg_list);
-		kfree(hr_qp->rq_inl_buf.wqe_list);
-	}
-
-	return 0;
+	return ret;
 }
 
 static int hns_roce_v2_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
@@ -4725,16 +5041,11 @@
 	int ret;
 
 	ret = hns_roce_v2_destroy_qp_common(hr_dev, hr_qp, udata);
-	if (ret) {
+	if (ret)
 		ibdev_err(&hr_dev->ib_dev, "Destroy qp 0x%06lx failed(%d)\n",
 			  hr_qp->qpn, ret);
-		return ret;
-	}
 
-	if (hr_qp->ibqp.qp_type == IB_QPT_GSI)
-		kfree(hr_to_hr_sqp(hr_qp));
-	else
-		kfree(hr_qp);
+	hns_roce_qp_destroy(hr_dev, hr_qp, udata);
 
 	return 0;
 }
@@ -4833,39 +5144,6 @@
 	return ret;
 }
 
-static void hns_roce_set_qps_to_err(struct hns_roce_dev *hr_dev, u32 qpn)
-{
-	struct hns_roce_qp *hr_qp;
-	struct ib_qp_attr attr;
-	int attr_mask;
-	int ret;
-
-	hr_qp = __hns_roce_qp_lookup(hr_dev, qpn);
-	if (!hr_qp) {
-		dev_warn(hr_dev->dev, "no hr_qp can be found!\n");
-		return;
-	}
-
-	if (hr_qp->ibqp.uobject) {
-		if (hr_qp->sdb_en == 1) {
-			hr_qp->sq.head = *(int *)(hr_qp->sdb.virt_addr);
-			if (hr_qp->rdb_en == 1)
-				hr_qp->rq.head = *(int *)(hr_qp->rdb.virt_addr);
-		} else {
-			dev_warn(hr_dev->dev, "flush cqe is unsupported in userspace!\n");
-			return;
-		}
-	}
-
-	attr_mask = IB_QP_STATE;
-	attr.qp_state = IB_QPS_ERR;
-	ret = hns_roce_v2_modify_qp(&hr_qp->ibqp, &attr, attr_mask,
-				    hr_qp->state, IB_QPS_ERR);
-	if (ret)
-		dev_err(hr_dev->dev, "failed to modify qp %d to err state.\n",
-			qpn);
-}
-
 static void hns_roce_irq_work_handle(struct work_struct *work)
 {
 	struct hns_roce_work *irq_work =
@@ -4889,17 +5167,14 @@
 	case HNS_ROCE_EVENT_TYPE_WQ_CATAS_ERROR:
 		dev_err(dev, "Local work queue 0x%x catas error, sub_type:%d\n",
 			qpn, irq_work->sub_type);
-		hns_roce_set_qps_to_err(irq_work->hr_dev, qpn);
 		break;
 	case HNS_ROCE_EVENT_TYPE_INV_REQ_LOCAL_WQ_ERROR:
 		dev_err(dev, "Invalid request local work queue 0x%x error.\n",
 			qpn);
-		hns_roce_set_qps_to_err(irq_work->hr_dev, qpn);
 		break;
 	case HNS_ROCE_EVENT_TYPE_LOCAL_WQ_ACCESS_ERROR:
 		dev_err(dev, "Local access violation work queue 0x%x error, sub_type:%d\n",
 			qpn, irq_work->sub_type);
-		hns_roce_set_qps_to_err(irq_work->hr_dev, qpn);
 		break;
 	case HNS_ROCE_EVENT_TYPE_SRQ_LIMIT_REACH:
 		dev_warn(dev, "SRQ limit reach.\n");
@@ -4951,10 +5226,7 @@
 static void set_eq_cons_index_v2(struct hns_roce_eq *eq)
 {
 	struct hns_roce_dev *hr_dev = eq->hr_dev;
-	__le32 doorbell[2];
-
-	doorbell[0] = 0;
-	doorbell[1] = 0;
+	__le32 doorbell[2] = {};
 
 	if (eq->type_flag == HNS_ROCE_AEQ) {
 		roce_set_field(doorbell[0], HNS_ROCE_V2_EQ_DB_CMD_M,
@@ -4980,44 +5252,24 @@
 	hns_roce_write64(hr_dev, doorbell, eq->doorbell);
 }
 
-static struct hns_roce_aeqe *get_aeqe_v2(struct hns_roce_eq *eq, u32 entry)
-{
-	u32 buf_chk_sz;
-	unsigned long off;
-
-	buf_chk_sz = 1 << (eq->eqe_buf_pg_sz + PAGE_SHIFT);
-	off = (entry & (eq->entries - 1)) * HNS_ROCE_AEQ_ENTRY_SIZE;
-
-	return (struct hns_roce_aeqe *)((char *)(eq->buf_list->buf) +
-		off % buf_chk_sz);
-}
-
-static struct hns_roce_aeqe *mhop_get_aeqe(struct hns_roce_eq *eq, u32 entry)
+static inline void *get_eqe_buf(struct hns_roce_eq *eq, unsigned long offset)
 {
 	u32 buf_chk_sz;
-	unsigned long off;
 
 	buf_chk_sz = 1 << (eq->eqe_buf_pg_sz + PAGE_SHIFT);
-
-	off = (entry & (eq->entries - 1)) * HNS_ROCE_AEQ_ENTRY_SIZE;
-
-	if (eq->hop_num == HNS_ROCE_HOP_NUM_0)
-		return (struct hns_roce_aeqe *)((u8 *)(eq->bt_l0) +
-			off % buf_chk_sz);
+	if (eq->buf.nbufs == 1)
+		return eq->buf.direct.buf + offset % buf_chk_sz;
 	else
-		return (struct hns_roce_aeqe *)((u8 *)
-			(eq->buf[off / buf_chk_sz]) + off % buf_chk_sz);
+		return eq->buf.page_list[offset / buf_chk_sz].buf +
+		       offset % buf_chk_sz;
 }
 
 static struct hns_roce_aeqe *next_aeqe_sw_v2(struct hns_roce_eq *eq)
 {
 	struct hns_roce_aeqe *aeqe;
 
-	if (!eq->hop_num)
-		aeqe = get_aeqe_v2(eq, eq->cons_index);
-	else
-		aeqe = mhop_get_aeqe(eq, eq->cons_index);
-
+	aeqe = get_eqe_buf(eq, (eq->cons_index & (eq->entries - 1)) *
+			   HNS_ROCE_AEQ_ENTRY_SIZE);
 	return (roce_get_bit(aeqe->asyn, HNS_ROCE_V2_AEQ_AEQE_OWNER_S) ^
 		!!(eq->cons_index & eq->entries)) ? aeqe : NULL;
 }
@@ -5110,44 +5362,12 @@
 	return aeqe_found;
 }
 
-static struct hns_roce_ceqe *get_ceqe_v2(struct hns_roce_eq *eq, u32 entry)
-{
-	u32 buf_chk_sz;
-	unsigned long off;
-
-	buf_chk_sz = 1 << (eq->eqe_buf_pg_sz + PAGE_SHIFT);
-	off = (entry & (eq->entries - 1)) * HNS_ROCE_CEQ_ENTRY_SIZE;
-
-	return (struct hns_roce_ceqe *)((char *)(eq->buf_list->buf) +
-		off % buf_chk_sz);
-}
-
-static struct hns_roce_ceqe *mhop_get_ceqe(struct hns_roce_eq *eq, u32 entry)
-{
-	u32 buf_chk_sz;
-	unsigned long off;
-
-	buf_chk_sz = 1 << (eq->eqe_buf_pg_sz + PAGE_SHIFT);
-
-	off = (entry & (eq->entries - 1)) * HNS_ROCE_CEQ_ENTRY_SIZE;
-
-	if (eq->hop_num == HNS_ROCE_HOP_NUM_0)
-		return (struct hns_roce_ceqe *)((u8 *)(eq->bt_l0) +
-			off % buf_chk_sz);
-	else
-		return (struct hns_roce_ceqe *)((u8 *)(eq->buf[off /
-			buf_chk_sz]) + off % buf_chk_sz);
-}
-
 static struct hns_roce_ceqe *next_ceqe_sw_v2(struct hns_roce_eq *eq)
 {
 	struct hns_roce_ceqe *ceqe;
 
-	if (!eq->hop_num)
-		ceqe = get_ceqe_v2(eq, eq->cons_index);
-	else
-		ceqe = mhop_get_ceqe(eq, eq->cons_index);
-
+	ceqe = get_eqe_buf(eq, (eq->cons_index & (eq->entries - 1)) *
+			   HNS_ROCE_CEQ_ENTRY_SIZE);
 	return (!!(roce_get_bit(ceqe->comp, HNS_ROCE_V2_CEQ_CEQE_OWNER_S))) ^
 		(!!(eq->cons_index & eq->entries)) ? ceqe : NULL;
 }
@@ -5166,8 +5386,7 @@
 		 */
 		dma_rmb();
 
-		cqn = roce_get_field(ceqe->comp,
-				     HNS_ROCE_V2_CEQE_COMP_CQN_M,
+		cqn = roce_get_field(ceqe->comp, HNS_ROCE_V2_CEQE_COMP_CQN_M,
 				     HNS_ROCE_V2_CEQE_COMP_CQN_S);
 
 		hns_roce_cq_completion(hr_dev, cqn);
@@ -5308,90 +5527,11 @@
 		dev_err(dev, "[mailbox cmd] destroy eqc(%d) failed.\n", eqn);
 }
 
-static void hns_roce_mhop_free_eq(struct hns_roce_dev *hr_dev,
-				  struct hns_roce_eq *eq)
+static void free_eq_buf(struct hns_roce_dev *hr_dev, struct hns_roce_eq *eq)
 {
-	struct device *dev = hr_dev->dev;
-	u64 idx;
-	u64 size;
-	u32 buf_chk_sz;
-	u32 bt_chk_sz;
-	u32 mhop_num;
-	int eqe_alloc;
-	int i = 0;
-	int j = 0;
-
-	mhop_num = hr_dev->caps.eqe_hop_num;
-	buf_chk_sz = 1 << (hr_dev->caps.eqe_buf_pg_sz + PAGE_SHIFT);
-	bt_chk_sz = 1 << (hr_dev->caps.eqe_ba_pg_sz + PAGE_SHIFT);
-
-	if (mhop_num == HNS_ROCE_HOP_NUM_0) {
-		dma_free_coherent(dev, (unsigned int)(eq->entries *
-				  eq->eqe_size), eq->bt_l0, eq->l0_dma);
-		return;
-	}
-
-	dma_free_coherent(dev, bt_chk_sz, eq->bt_l0, eq->l0_dma);
-	if (mhop_num == 1) {
-		for (i = 0; i < eq->l0_last_num; i++) {
-			if (i == eq->l0_last_num - 1) {
-				eqe_alloc = i * (buf_chk_sz / eq->eqe_size);
-				size = (eq->entries - eqe_alloc) * eq->eqe_size;
-				dma_free_coherent(dev, size, eq->buf[i],
-						  eq->buf_dma[i]);
-				break;
-			}
-			dma_free_coherent(dev, buf_chk_sz, eq->buf[i],
-					  eq->buf_dma[i]);
-		}
-	} else if (mhop_num == 2) {
-		for (i = 0; i < eq->l0_last_num; i++) {
-			dma_free_coherent(dev, bt_chk_sz, eq->bt_l1[i],
-					  eq->l1_dma[i]);
-
-			for (j = 0; j < bt_chk_sz / BA_BYTE_LEN; j++) {
-				idx = i * (bt_chk_sz / BA_BYTE_LEN) + j;
-				if ((i == eq->l0_last_num - 1)
-				     && j == eq->l1_last_num - 1) {
-					eqe_alloc = (buf_chk_sz / eq->eqe_size)
-						    * idx;
-					size = (eq->entries - eqe_alloc)
-						* eq->eqe_size;
-					dma_free_coherent(dev, size,
-							  eq->buf[idx],
-							  eq->buf_dma[idx]);
-					break;
-				}
-				dma_free_coherent(dev, buf_chk_sz, eq->buf[idx],
-						  eq->buf_dma[idx]);
-			}
-		}
-	}
-	kfree(eq->buf_dma);
-	kfree(eq->buf);
-	kfree(eq->l1_dma);
-	kfree(eq->bt_l1);
-	eq->buf_dma = NULL;
-	eq->buf = NULL;
-	eq->l1_dma = NULL;
-	eq->bt_l1 = NULL;
-}
-
-static void hns_roce_v2_free_eq(struct hns_roce_dev *hr_dev,
-				struct hns_roce_eq *eq)
-{
-	u32 buf_chk_sz;
-
-	buf_chk_sz = 1 << (eq->eqe_buf_pg_sz + PAGE_SHIFT);
-
-	if (hr_dev->caps.eqe_hop_num) {
-		hns_roce_mhop_free_eq(hr_dev, eq);
-		return;
-	}
-
-	dma_free_coherent(hr_dev->dev, buf_chk_sz, eq->buf_list->buf,
-			  eq->buf_list->map);
-	kfree(eq->buf_list);
+	if (!eq->hop_num || eq->hop_num == HNS_ROCE_HOP_NUM_0)
+		hns_roce_mtr_cleanup(hr_dev, &eq->mtr);
+	hns_roce_buf_free(hr_dev, eq->buf.size, &eq->buf);
 }
 
 static void hns_roce_config_eqc(struct hns_roce_dev *hr_dev,
@@ -5399,6 +5539,8 @@
 				void *mb_buf)
 {
 	struct hns_roce_eq_context *eqc;
+	u64 ba[MTT_MIN_COUNT] = { 0 };
+	int count;
 
 	eqc = mb_buf;
 	memset(eqc, 0, sizeof(struct hns_roce_eq_context));
@@ -5414,349 +5556,211 @@
 	eq->eqe_buf_pg_sz = hr_dev->caps.eqe_buf_pg_sz;
 	eq->shift = ilog2((unsigned int)eq->entries);
 
-	if (!eq->hop_num)
-		eq->eqe_ba = eq->buf_list->map;
-	else
-		eq->eqe_ba = eq->l0_dma;
+	/* if not muti-hop, eqe buffer only use one trunk */
+	if (!eq->hop_num || eq->hop_num == HNS_ROCE_HOP_NUM_0) {
+		eq->eqe_ba = eq->buf.direct.map;
+		eq->cur_eqe_ba = eq->eqe_ba;
+		if (eq->buf.npages > 1)
+			eq->nxt_eqe_ba = eq->eqe_ba + (1 << eq->eqe_buf_pg_sz);
+		else
+			eq->nxt_eqe_ba = eq->eqe_ba;
+	} else {
+		count = hns_roce_mtr_find(hr_dev, &eq->mtr, 0, ba,
+					  MTT_MIN_COUNT, &eq->eqe_ba);
+		eq->cur_eqe_ba = ba[0];
+		if (count > 1)
+			eq->nxt_eqe_ba = ba[1];
+		else
+			eq->nxt_eqe_ba = ba[0];
+	}
 
 	/* set eqc state */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_EQ_ST_M,
-		       HNS_ROCE_EQC_EQ_ST_S,
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_EQ_ST_M, HNS_ROCE_EQC_EQ_ST_S,
 		       HNS_ROCE_V2_EQ_STATE_VALID);
 
 	/* set eqe hop num */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_HOP_NUM_M,
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_HOP_NUM_M,
 		       HNS_ROCE_EQC_HOP_NUM_S, eq->hop_num);
 
 	/* set eqc over_ignore */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_OVER_IGNORE_M,
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_OVER_IGNORE_M,
 		       HNS_ROCE_EQC_OVER_IGNORE_S, eq->over_ignore);
 
 	/* set eqc coalesce */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_COALESCE_M,
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_COALESCE_M,
 		       HNS_ROCE_EQC_COALESCE_S, eq->coalesce);
 
 	/* set eqc arm_state */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_ARM_ST_M,
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_ARM_ST_M,
 		       HNS_ROCE_EQC_ARM_ST_S, eq->arm_st);
 
 	/* set eqn */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_EQN_M,
-		       HNS_ROCE_EQC_EQN_S, eq->eqn);
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_EQN_M, HNS_ROCE_EQC_EQN_S,
+		       eq->eqn);
 
 	/* set eqe_cnt */
-	roce_set_field(eqc->byte_4,
-		       HNS_ROCE_EQC_EQE_CNT_M,
-		       HNS_ROCE_EQC_EQE_CNT_S,
-		       HNS_ROCE_EQ_INIT_EQE_CNT);
+	roce_set_field(eqc->byte_4, HNS_ROCE_EQC_EQE_CNT_M,
+		       HNS_ROCE_EQC_EQE_CNT_S, HNS_ROCE_EQ_INIT_EQE_CNT);
 
 	/* set eqe_ba_pg_sz */
-	roce_set_field(eqc->byte_8,
-		       HNS_ROCE_EQC_BA_PG_SZ_M,
+	roce_set_field(eqc->byte_8, HNS_ROCE_EQC_BA_PG_SZ_M,
 		       HNS_ROCE_EQC_BA_PG_SZ_S,
 		       eq->eqe_ba_pg_sz + PG_SHIFT_OFFSET);
 
 	/* set eqe_buf_pg_sz */
-	roce_set_field(eqc->byte_8,
-		       HNS_ROCE_EQC_BUF_PG_SZ_M,
+	roce_set_field(eqc->byte_8, HNS_ROCE_EQC_BUF_PG_SZ_M,
 		       HNS_ROCE_EQC_BUF_PG_SZ_S,
 		       eq->eqe_buf_pg_sz + PG_SHIFT_OFFSET);
 
 	/* set eq_producer_idx */
-	roce_set_field(eqc->byte_8,
-		       HNS_ROCE_EQC_PROD_INDX_M,
-		       HNS_ROCE_EQC_PROD_INDX_S,
-		       HNS_ROCE_EQ_INIT_PROD_IDX);
+	roce_set_field(eqc->byte_8, HNS_ROCE_EQC_PROD_INDX_M,
+		       HNS_ROCE_EQC_PROD_INDX_S, HNS_ROCE_EQ_INIT_PROD_IDX);
 
 	/* set eq_max_cnt */
-	roce_set_field(eqc->byte_12,
-		       HNS_ROCE_EQC_MAX_CNT_M,
+	roce_set_field(eqc->byte_12, HNS_ROCE_EQC_MAX_CNT_M,
 		       HNS_ROCE_EQC_MAX_CNT_S, eq->eq_max_cnt);
 
 	/* set eq_period */
-	roce_set_field(eqc->byte_12,
-		       HNS_ROCE_EQC_PERIOD_M,
+	roce_set_field(eqc->byte_12, HNS_ROCE_EQC_PERIOD_M,
 		       HNS_ROCE_EQC_PERIOD_S, eq->eq_period);
 
 	/* set eqe_report_timer */
-	roce_set_field(eqc->eqe_report_timer,
-		       HNS_ROCE_EQC_REPORT_TIMER_M,
+	roce_set_field(eqc->eqe_report_timer, HNS_ROCE_EQC_REPORT_TIMER_M,
 		       HNS_ROCE_EQC_REPORT_TIMER_S,
 		       HNS_ROCE_EQ_INIT_REPORT_TIMER);
 
 	/* set eqe_ba [34:3] */
-	roce_set_field(eqc->eqe_ba0,
-		       HNS_ROCE_EQC_EQE_BA_L_M,
+	roce_set_field(eqc->eqe_ba0, HNS_ROCE_EQC_EQE_BA_L_M,
 		       HNS_ROCE_EQC_EQE_BA_L_S, eq->eqe_ba >> 3);
 
 	/* set eqe_ba [64:35] */
-	roce_set_field(eqc->eqe_ba1,
-		       HNS_ROCE_EQC_EQE_BA_H_M,
+	roce_set_field(eqc->eqe_ba1, HNS_ROCE_EQC_EQE_BA_H_M,
 		       HNS_ROCE_EQC_EQE_BA_H_S, eq->eqe_ba >> 35);
 
 	/* set eq shift */
-	roce_set_field(eqc->byte_28,
-		       HNS_ROCE_EQC_SHIFT_M,
-		       HNS_ROCE_EQC_SHIFT_S, eq->shift);
+	roce_set_field(eqc->byte_28, HNS_ROCE_EQC_SHIFT_M, HNS_ROCE_EQC_SHIFT_S,
+		       eq->shift);
 
 	/* set eq MSI_IDX */
-	roce_set_field(eqc->byte_28,
-		       HNS_ROCE_EQC_MSI_INDX_M,
-		       HNS_ROCE_EQC_MSI_INDX_S,
-		       HNS_ROCE_EQ_INIT_MSI_IDX);
+	roce_set_field(eqc->byte_28, HNS_ROCE_EQC_MSI_INDX_M,
+		       HNS_ROCE_EQC_MSI_INDX_S, HNS_ROCE_EQ_INIT_MSI_IDX);
 
 	/* set cur_eqe_ba [27:12] */
-	roce_set_field(eqc->byte_28,
-		       HNS_ROCE_EQC_CUR_EQE_BA_L_M,
+	roce_set_field(eqc->byte_28, HNS_ROCE_EQC_CUR_EQE_BA_L_M,
 		       HNS_ROCE_EQC_CUR_EQE_BA_L_S, eq->cur_eqe_ba >> 12);
 
 	/* set cur_eqe_ba [59:28] */
-	roce_set_field(eqc->byte_32,
-		       HNS_ROCE_EQC_CUR_EQE_BA_M_M,
+	roce_set_field(eqc->byte_32, HNS_ROCE_EQC_CUR_EQE_BA_M_M,
 		       HNS_ROCE_EQC_CUR_EQE_BA_M_S, eq->cur_eqe_ba >> 28);
 
 	/* set cur_eqe_ba [63:60] */
-	roce_set_field(eqc->byte_36,
-		       HNS_ROCE_EQC_CUR_EQE_BA_H_M,
+	roce_set_field(eqc->byte_36, HNS_ROCE_EQC_CUR_EQE_BA_H_M,
 		       HNS_ROCE_EQC_CUR_EQE_BA_H_S, eq->cur_eqe_ba >> 60);
 
 	/* set eq consumer idx */
-	roce_set_field(eqc->byte_36,
-		       HNS_ROCE_EQC_CONS_INDX_M,
-		       HNS_ROCE_EQC_CONS_INDX_S,
-		       HNS_ROCE_EQ_INIT_CONS_IDX);
+	roce_set_field(eqc->byte_36, HNS_ROCE_EQC_CONS_INDX_M,
+		       HNS_ROCE_EQC_CONS_INDX_S, HNS_ROCE_EQ_INIT_CONS_IDX);
 
 	/* set nex_eqe_ba[43:12] */
-	roce_set_field(eqc->nxt_eqe_ba0,
-		       HNS_ROCE_EQC_NXT_EQE_BA_L_M,
+	roce_set_field(eqc->nxt_eqe_ba0, HNS_ROCE_EQC_NXT_EQE_BA_L_M,
 		       HNS_ROCE_EQC_NXT_EQE_BA_L_S, eq->nxt_eqe_ba >> 12);
 
 	/* set nex_eqe_ba[63:44] */
-	roce_set_field(eqc->nxt_eqe_ba1,
-		       HNS_ROCE_EQC_NXT_EQE_BA_H_M,
+	roce_set_field(eqc->nxt_eqe_ba1, HNS_ROCE_EQC_NXT_EQE_BA_H_M,
 		       HNS_ROCE_EQC_NXT_EQE_BA_H_S, eq->nxt_eqe_ba >> 44);
 }
 
-static int hns_roce_mhop_alloc_eq(struct hns_roce_dev *hr_dev,
-				  struct hns_roce_eq *eq)
+static int map_eq_buf(struct hns_roce_dev *hr_dev, struct hns_roce_eq *eq,
+		      u32 page_shift)
 {
-	struct device *dev = hr_dev->dev;
-	int eq_alloc_done = 0;
-	int eq_buf_cnt = 0;
-	int eqe_alloc;
-	u32 buf_chk_sz;
-	u32 bt_chk_sz;
-	u32 mhop_num;
-	u64 size;
-	u64 idx;
+	struct hns_roce_buf_region region = {};
+	dma_addr_t *buf_list = NULL;
 	int ba_num;
-	int bt_num;
-	int record_i;
-	int record_j;
-	int i = 0;
-	int j = 0;
-
-	mhop_num = hr_dev->caps.eqe_hop_num;
-	buf_chk_sz = 1 << (hr_dev->caps.eqe_buf_pg_sz + PAGE_SHIFT);
-	bt_chk_sz = 1 << (hr_dev->caps.eqe_ba_pg_sz + PAGE_SHIFT);
+	int ret;
 
 	ba_num = DIV_ROUND_UP(PAGE_ALIGN(eq->entries * eq->eqe_size),
-			      buf_chk_sz);
-	bt_num = DIV_ROUND_UP(ba_num, bt_chk_sz / BA_BYTE_LEN);
-
-	if (mhop_num == HNS_ROCE_HOP_NUM_0) {
-		if (eq->entries > buf_chk_sz / eq->eqe_size) {
-			dev_err(dev, "eq entries %d is larger than buf_pg_sz!",
-				eq->entries);
-			return -EINVAL;
-		}
-		eq->bt_l0 = dma_alloc_coherent(dev, eq->entries * eq->eqe_size,
-					       &(eq->l0_dma), GFP_KERNEL);
-		if (!eq->bt_l0)
-			return -ENOMEM;
+			      1 << page_shift);
+	hns_roce_init_buf_region(&region, hr_dev->caps.eqe_hop_num, 0, ba_num);
 
-		eq->cur_eqe_ba = eq->l0_dma;
-		eq->nxt_eqe_ba = 0;
+	/* alloc a tmp list for storing eq buf address */
+	ret = hns_roce_alloc_buf_list(&region, &buf_list, 1);
+	if (ret) {
+		dev_err(hr_dev->dev, "alloc eq buf_list error\n");
+		return ret;
+	}
 
-		return 0;
+	ba_num = hns_roce_get_kmem_bufs(hr_dev, buf_list, region.count,
+					region.offset, &eq->buf);
+	if (ba_num != region.count) {
+		dev_err(hr_dev->dev, "get eqe buf err,expect %d,ret %d.\n",
+			region.count, ba_num);
+		ret = -ENOBUFS;
+		goto done;
 	}
 
-	eq->buf_dma = kcalloc(ba_num, sizeof(*eq->buf_dma), GFP_KERNEL);
-	if (!eq->buf_dma)
-		return -ENOMEM;
-	eq->buf = kcalloc(ba_num, sizeof(*eq->buf), GFP_KERNEL);
-	if (!eq->buf)
-		goto err_kcalloc_buf;
-
-	if (mhop_num == 2) {
-		eq->l1_dma = kcalloc(bt_num, sizeof(*eq->l1_dma), GFP_KERNEL);
-		if (!eq->l1_dma)
-			goto err_kcalloc_l1_dma;
-
-		eq->bt_l1 = kcalloc(bt_num, sizeof(*eq->bt_l1), GFP_KERNEL);
-		if (!eq->bt_l1)
-			goto err_kcalloc_bt_l1;
-	}
-
-	/* alloc L0 BT */
-	eq->bt_l0 = dma_alloc_coherent(dev, bt_chk_sz, &eq->l0_dma, GFP_KERNEL);
-	if (!eq->bt_l0)
-		goto err_dma_alloc_l0;
-
-	if (mhop_num == 1) {
-		if (ba_num > (bt_chk_sz / BA_BYTE_LEN))
-			dev_err(dev, "ba_num %d is too large for 1 hop\n",
-				ba_num);
-
-		/* alloc buf */
-		for (i = 0; i < bt_chk_sz / BA_BYTE_LEN; i++) {
-			if (eq_buf_cnt + 1 < ba_num) {
-				size = buf_chk_sz;
-			} else {
-				eqe_alloc = i * (buf_chk_sz / eq->eqe_size);
-				size = (eq->entries - eqe_alloc) * eq->eqe_size;
-			}
-			eq->buf[i] = dma_alloc_coherent(dev, size,
-							&(eq->buf_dma[i]),
-							GFP_KERNEL);
-			if (!eq->buf[i])
-				goto err_dma_alloc_buf;
+	hns_roce_mtr_init(&eq->mtr, PAGE_SHIFT + hr_dev->caps.eqe_ba_pg_sz,
+			  page_shift);
+	ret = hns_roce_mtr_attach(hr_dev, &eq->mtr, &buf_list, &region, 1);
+	if (ret)
+		dev_err(hr_dev->dev, "mtr attach error for eqe\n");
 
-			*(eq->bt_l0 + i) = eq->buf_dma[i];
+	goto done;
 
-			eq_buf_cnt++;
-			if (eq_buf_cnt >= ba_num)
-				break;
-		}
-		eq->cur_eqe_ba = eq->buf_dma[0];
-		if (ba_num > 1)
-			eq->nxt_eqe_ba = eq->buf_dma[1];
-
-	} else if (mhop_num == 2) {
-		/* alloc L1 BT and buf */
-		for (i = 0; i < bt_chk_sz / BA_BYTE_LEN; i++) {
-			eq->bt_l1[i] = dma_alloc_coherent(dev, bt_chk_sz,
-							  &(eq->l1_dma[i]),
-							  GFP_KERNEL);
-			if (!eq->bt_l1[i])
-				goto err_dma_alloc_l1;
-			*(eq->bt_l0 + i) = eq->l1_dma[i];
-
-			for (j = 0; j < bt_chk_sz / BA_BYTE_LEN; j++) {
-				idx = i * bt_chk_sz / BA_BYTE_LEN + j;
-				if (eq_buf_cnt + 1 < ba_num) {
-					size = buf_chk_sz;
-				} else {
-					eqe_alloc = (buf_chk_sz / eq->eqe_size)
-						    * idx;
-					size = (eq->entries - eqe_alloc)
-						* eq->eqe_size;
-				}
-				eq->buf[idx] = dma_alloc_coherent(dev, size,
-								  &(eq->buf_dma[idx]),
-								  GFP_KERNEL);
-				if (!eq->buf[idx])
-					goto err_dma_alloc_buf;
-
-				*(eq->bt_l1[i] + j) = eq->buf_dma[idx];
-
-				eq_buf_cnt++;
-				if (eq_buf_cnt >= ba_num) {
-					eq_alloc_done = 1;
-					break;
-				}
-			}
+	hns_roce_mtr_cleanup(hr_dev, &eq->mtr);
+done:
+	hns_roce_free_buf_list(&buf_list, 1);
 
-			if (eq_alloc_done)
-				break;
-		}
-		eq->cur_eqe_ba = eq->buf_dma[0];
-		if (ba_num > 1)
-			eq->nxt_eqe_ba = eq->buf_dma[1];
-	}
+	return ret;
+}
 
-	eq->l0_last_num = i + 1;
-	if (mhop_num == 2)
-		eq->l1_last_num = j + 1;
+static int alloc_eq_buf(struct hns_roce_dev *hr_dev, struct hns_roce_eq *eq)
+{
+	struct hns_roce_buf *buf = &eq->buf;
+	bool is_mhop = false;
+	u32 page_shift;
+	u32 mhop_num;
+	u32 max_size;
+	int ret;
 
-	return 0;
+	page_shift = PAGE_SHIFT + hr_dev->caps.eqe_buf_pg_sz;
+	mhop_num = hr_dev->caps.eqe_hop_num;
+	if (!mhop_num) {
+		max_size = 1 << page_shift;
+		buf->size = max_size;
+	} else if (mhop_num == HNS_ROCE_HOP_NUM_0) {
+		max_size = eq->entries * eq->eqe_size;
+		buf->size = max_size;
+	} else {
+		max_size = 1 << page_shift;
+		buf->size = PAGE_ALIGN(eq->entries * eq->eqe_size);
+		is_mhop = true;
+	}
 
-err_dma_alloc_l1:
-	dma_free_coherent(dev, bt_chk_sz, eq->bt_l0, eq->l0_dma);
-	eq->bt_l0 = NULL;
-	eq->l0_dma = 0;
-	for (i -= 1; i >= 0; i--) {
-		dma_free_coherent(dev, bt_chk_sz, eq->bt_l1[i],
-				  eq->l1_dma[i]);
-
-		for (j = 0; j < bt_chk_sz / BA_BYTE_LEN; j++) {
-			idx = i * bt_chk_sz / BA_BYTE_LEN + j;
-			dma_free_coherent(dev, buf_chk_sz, eq->buf[idx],
-					  eq->buf_dma[idx]);
-		}
-	}
-	goto err_dma_alloc_l0;
-
-err_dma_alloc_buf:
-	dma_free_coherent(dev, bt_chk_sz, eq->bt_l0, eq->l0_dma);
-	eq->bt_l0 = NULL;
-	eq->l0_dma = 0;
-
-	if (mhop_num == 1)
-		for (i -= 1; i >= 0; i--)
-			dma_free_coherent(dev, buf_chk_sz, eq->buf[i],
-					  eq->buf_dma[i]);
-	else if (mhop_num == 2) {
-		record_i = i;
-		record_j = j;
-		for (; i >= 0; i--) {
-			dma_free_coherent(dev, bt_chk_sz, eq->bt_l1[i],
-					  eq->l1_dma[i]);
-
-			for (j = 0; j < bt_chk_sz / BA_BYTE_LEN; j++) {
-				if (i == record_i && j >= record_j)
-					break;
-
-				idx = i * bt_chk_sz / BA_BYTE_LEN + j;
-				dma_free_coherent(dev, buf_chk_sz,
-						  eq->buf[idx],
-						  eq->buf_dma[idx]);
-			}
-		}
+	ret = hns_roce_buf_alloc(hr_dev, buf->size, max_size, buf, page_shift);
+	if (ret) {
+		dev_err(hr_dev->dev, "alloc eq buf error\n");
+		return ret;
 	}
 
-err_dma_alloc_l0:
-	kfree(eq->bt_l1);
-	eq->bt_l1 = NULL;
-
-err_kcalloc_bt_l1:
-	kfree(eq->l1_dma);
-	eq->l1_dma = NULL;
-
-err_kcalloc_l1_dma:
-	kfree(eq->buf);
-	eq->buf = NULL;
-
-err_kcalloc_buf:
-	kfree(eq->buf_dma);
-	eq->buf_dma = NULL;
+	if (is_mhop) {
+		ret = map_eq_buf(hr_dev, eq, page_shift);
+		if (ret) {
+			dev_err(hr_dev->dev, "map roce buf error\n");
+			goto err_alloc;
+		}
+	}
 
-	return -ENOMEM;
+	return 0;
+err_alloc:
+	hns_roce_buf_free(hr_dev, buf->size, buf);
+	return ret;
 }
 
 static int hns_roce_v2_create_eq(struct hns_roce_dev *hr_dev,
 				 struct hns_roce_eq *eq,
 				 unsigned int eq_cmd)
 {
-	struct device *dev = hr_dev->dev;
 	struct hns_roce_cmd_mailbox *mailbox;
-	u32 buf_chk_sz = 0;
 	int ret;
 
 	/* Allocate mailbox memory */
@@ -5764,38 +5768,17 @@
 	if (IS_ERR(mailbox))
 		return PTR_ERR(mailbox);
 
-	if (!hr_dev->caps.eqe_hop_num) {
-		buf_chk_sz = 1 << (hr_dev->caps.eqe_buf_pg_sz + PAGE_SHIFT);
-
-		eq->buf_list = kzalloc(sizeof(struct hns_roce_buf_list),
-				       GFP_KERNEL);
-		if (!eq->buf_list) {
-			ret = -ENOMEM;
-			goto free_cmd_mbox;
-		}
-
-		eq->buf_list->buf = dma_alloc_coherent(dev, buf_chk_sz,
-						       &(eq->buf_list->map),
-						       GFP_KERNEL);
-		if (!eq->buf_list->buf) {
-			ret = -ENOMEM;
-			goto err_alloc_buf;
-		}
-
-	} else {
-		ret = hns_roce_mhop_alloc_eq(hr_dev, eq);
-		if (ret) {
-			ret = -ENOMEM;
-			goto free_cmd_mbox;
-		}
+	ret = alloc_eq_buf(hr_dev, eq);
+	if (ret) {
+		ret = -ENOMEM;
+		goto free_cmd_mbox;
 	}
-
 	hns_roce_config_eqc(hr_dev, eq, mailbox->buf);
 
 	ret = hns_roce_cmd_mbox(hr_dev, mailbox->dma, 0, eq->eqn, 0,
 				eq_cmd, HNS_ROCE_CMD_TIMEOUT_MSECS);
 	if (ret) {
-		dev_err(dev, "[mailbox cmd] create eqc failed.\n");
+		dev_err(hr_dev->dev, "[mailbox cmd] create eqc failed.\n");
 		goto err_cmd_mbox;
 	}
 
@@ -5804,16 +5787,7 @@
 	return 0;
 
 err_cmd_mbox:
-	if (!hr_dev->caps.eqe_hop_num)
-		dma_free_coherent(dev, buf_chk_sz, eq->buf_list->buf,
-				  eq->buf_list->map);
-	else {
-		hns_roce_mhop_free_eq(hr_dev, eq);
-		goto free_cmd_mbox;
-	}
-
-err_alloc_buf:
-	kfree(eq->buf_list);
+	free_eq_buf(hr_dev, eq);
 
 free_cmd_mbox:
 	hns_roce_free_cmd_mailbox(hr_dev, mailbox);
@@ -5839,18 +5813,16 @@
 
 	/* irq contains: abnormal + AEQ + CEQ */
 	for (j = 0; j < other_num; j++)
-		snprintf((char *)hr_dev->irq_names[j],
-			 HNS_ROCE_INT_NAME_LEN, "hns-abn-%d", j);
+		snprintf((char *)hr_dev->irq_names[j], HNS_ROCE_INT_NAME_LEN,
+			 "hns-abn-%d", j);
 
 	for (j = other_num; j < (other_num + aeq_num); j++)
-		snprintf((char *)hr_dev->irq_names[j],
-			 HNS_ROCE_INT_NAME_LEN, "hns-aeq-%d",
-			 j - other_num);
+		snprintf((char *)hr_dev->irq_names[j], HNS_ROCE_INT_NAME_LEN,
+			 "hns-aeq-%d", j - other_num);
 
 	for (j = (other_num + aeq_num); j < irq_num; j++)
-		snprintf((char *)hr_dev->irq_names[j],
-			 HNS_ROCE_INT_NAME_LEN, "hns-ceq-%d",
-			 j - other_num - aeq_num);
+		snprintf((char *)hr_dev->irq_names[j], HNS_ROCE_INT_NAME_LEN,
+			 "hns-ceq-%d", j - other_num - aeq_num);
 
 	for (j = 0; j < irq_num; j++) {
 		if (j < other_num)
@@ -5977,8 +5949,7 @@
 		goto err_request_irq_fail;
 	}
 
-	hr_dev->irq_workq =
-		create_singlethread_workqueue("hns_roce_irq_workqueue");
+	hr_dev->irq_workq = alloc_ordered_workqueue("hns_roce_irq_workq", 0);
 	if (!hr_dev->irq_workq) {
 		dev_err(dev, "Create irq workqueue failed!\n");
 		ret = -ENOMEM;
@@ -5995,7 +5966,7 @@
 
 err_create_eq_fail:
 	for (i -= 1; i >= 0; i--)
-		hns_roce_v2_free_eq(hr_dev, &eq_table->eq[i]);
+		free_eq_buf(hr_dev, &eq_table->eq[i]);
 	kfree(eq_table->eq);
 
 	return ret;
@@ -6017,7 +5988,7 @@
 	for (i = 0; i < eq_num; i++) {
 		hns_roce_v2_destroy_eqc(hr_dev, i);
 
-		hns_roce_v2_free_eq(hr_dev, &eq_table->eq[i]);
+		free_eq_buf(hr_dev, &eq_table->eq[i]);
 	}
 
 	kfree(eq_table->eq);
@@ -6047,7 +6018,7 @@
 		       hr_dev->caps.srqwqe_hop_num));
 	roce_set_field(srq_context->byte_4_srqn_srqst,
 		       SRQC_BYTE_4_SRQ_SHIFT_M, SRQC_BYTE_4_SRQ_SHIFT_S,
-		       ilog2(srq->max));
+		       ilog2(srq->wqe_cnt));
 
 	roce_set_field(srq_context->byte_4_srqn_srqst, SRQC_BYTE_4_SRQN_M,
 		       SRQC_BYTE_4_SRQN_S, srq->srqn);
@@ -6092,11 +6063,11 @@
 	roce_set_field(srq_context->byte_44_idxbufpgsz_addr,
 		       SRQC_BYTE_44_SRQ_IDX_BA_PG_SZ_M,
 		       SRQC_BYTE_44_SRQ_IDX_BA_PG_SZ_S,
-		       hr_dev->caps.idx_ba_pg_sz);
+		       hr_dev->caps.idx_ba_pg_sz + PG_SHIFT_OFFSET);
 	roce_set_field(srq_context->byte_44_idxbufpgsz_addr,
 		       SRQC_BYTE_44_SRQ_IDX_BUF_PG_SZ_M,
 		       SRQC_BYTE_44_SRQ_IDX_BUF_PG_SZ_S,
-		       hr_dev->caps.idx_buf_pg_sz);
+		       hr_dev->caps.idx_buf_pg_sz + PG_SHIFT_OFFSET);
 
 	srq_context->idx_nxt_blk_addr =
 		cpu_to_le32(mtts_idx[1] >> PAGE_ADDR_SHIFT);
@@ -6133,7 +6104,7 @@
 	int ret;
 
 	if (srq_attr_mask & IB_SRQ_LIMIT) {
-		if (srq_attr->srq_limit >= srq->max)
+		if (srq_attr->srq_limit >= srq->wqe_cnt)
 			return -EINVAL;
 
 		mailbox = hns_roce_alloc_cmd_mailbox(hr_dev);
@@ -6193,7 +6164,7 @@
 				  SRQC_BYTE_8_SRQ_LIMIT_WL_S);
 
 	attr->srq_limit = limit_wl;
-	attr->max_wr    = srq->max - 1;
+	attr->max_wr    = srq->wqe_cnt - 1;
 	attr->max_sge   = srq->max_gs;
 
 	memcpy(srq_context, mailbox->buf, sizeof(*srq_context));
@@ -6246,7 +6217,7 @@
 
 	spin_lock_irqsave(&srq->lock, flags);
 
-	ind = srq->head & (srq->max - 1);
+	ind = srq->head & (srq->wqe_cnt - 1);
 
 	for (nreq = 0; wr; ++nreq, wr = wr->next) {
 		if (unlikely(wr->num_sge > srq->max_gs)) {
@@ -6261,7 +6232,7 @@
 			break;
 		}
 
-		wqe_idx = find_empty_entry(&srq->idx_que, srq->max);
+		wqe_idx = find_empty_entry(&srq->idx_que, srq->wqe_cnt);
 		if (wqe_idx < 0) {
 			ret = -ENOMEM;
 			*bad_wr = wr;
@@ -6285,7 +6256,7 @@
 		}
 
 		srq->wrid[wqe_idx] = wr->wr_id;
-		ind = (ind + 1) & (srq->max - 1);
+		ind = (ind + 1) & (srq->wqe_cnt - 1);
 	}
 
 	if (likely(nreq)) {
@@ -6380,12 +6351,14 @@
 
 MODULE_DEVICE_TABLE(pci, hns_roce_hw_v2_pci_tbl);
 
-static int hns_roce_hw_v2_get_cfg(struct hns_roce_dev *hr_dev,
+static void hns_roce_hw_v2_get_cfg(struct hns_roce_dev *hr_dev,
 				  struct hnae3_handle *handle)
 {
 	struct hns_roce_v2_priv *priv = hr_dev->priv;
 	int i;
 
+	hr_dev->pci_dev = handle->pdev;
+	hr_dev->dev = &handle->pdev->dev;
 	hr_dev->hw = &hns_roce_hw_v2;
 	hr_dev->dfx = &hns_roce_dfx_hw_v2;
 	hr_dev->sdb_offset = ROCEE_DB_SQ_L_0_REG;
@@ -6410,8 +6383,6 @@
 
 	hr_dev->reset_cnt = handle->ae_algo->ops->ae_dev_reset_cnt(handle);
 	priv->handle = handle;
-
-	return 0;
 }
 
 static int __hns_roce_hw_v2_init_instance(struct hnae3_handle *handle)
@@ -6429,14 +6400,7 @@
 		goto error_failed_kzalloc;
 	}
 
-	hr_dev->pci_dev = handle->pdev;
-	hr_dev->dev = &handle->pdev->dev;
-
-	ret = hns_roce_hw_v2_get_cfg(hr_dev, handle);
-	if (ret) {
-		dev_err(hr_dev->dev, "Get Configuration failed!\n");
-		goto error_failed_get_cfg;
-	}
+	hns_roce_hw_v2_get_cfg(hr_dev, handle);
 
 	ret = hns_roce_init(hr_dev);
 	if (ret) {
@@ -6466,6 +6430,10 @@
 		return;
 
 	handle->priv = NULL;
+
+	hr_dev->state = HNS_ROCE_DEVICE_STATE_UNINIT;
+	hns_roce_handle_device_err(hr_dev);
+
 	hns_roce_exit(hr_dev);
 	kfree(hr_dev->priv);
 	ib_dealloc_device(&hr_dev->ib_dev);
@@ -6527,7 +6495,6 @@
 static int hns_roce_hw_v2_reset_notify_down(struct hnae3_handle *handle)
 {
 	struct hns_roce_dev *hr_dev;
-	struct ib_event event;
 
 	if (handle->rinfo.instance_state != HNS_ROCE_STATE_INITED) {
 		set_bit(HNS_ROCE_RST_DIRECT_RETURN, &handle->rinfo.state);
@@ -6545,10 +6512,7 @@
 	hr_dev->active = false;
 	hr_dev->dis_db = true;
 
-	event.event = IB_EVENT_DEVICE_FATAL;
-	event.device = &hr_dev->ib_dev;
-	event.element.port_num = 1;
-	ib_dispatch_event(&event);
+	hr_dev->state = HNS_ROCE_DEVICE_STATE_RST_DOWN;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.h
@@ -81,14 +81,16 @@
 #define HNS_ROCE_V2_QPC_ENTRY_SZ		256
 #define HNS_ROCE_V2_IRRL_ENTRY_SZ		64
 #define HNS_ROCE_V2_TRRL_ENTRY_SZ		48
+#define HNS_ROCE_V2_EXT_ATOMIC_TRRL_ENTRY_SZ	100
 #define HNS_ROCE_V2_CQC_ENTRY_SZ		64
 #define HNS_ROCE_V2_SRQC_ENTRY_SZ		64
 #define HNS_ROCE_V2_MTPT_ENTRY_SZ		64
 #define HNS_ROCE_V2_MTT_ENTRY_SZ		64
+#define HNS_ROCE_V2_IDX_ENTRY_SZ		4
 #define HNS_ROCE_V2_CQE_ENTRY_SIZE		32
 #define HNS_ROCE_V2_SCCC_ENTRY_SZ		32
-#define HNS_ROCE_V2_QPC_TIMER_ENTRY_SZ		4096
-#define HNS_ROCE_V2_CQC_TIMER_ENTRY_SZ		4096
+#define HNS_ROCE_V2_QPC_TIMER_ENTRY_SZ		PAGE_SIZE
+#define HNS_ROCE_V2_CQC_TIMER_ENTRY_SZ		PAGE_SIZE
 #define HNS_ROCE_V2_PAGE_SIZE_SUPPORTED		0xFFFFF000
 #define HNS_ROCE_V2_MAX_INNER_MTPT_NUM		2
 #define HNS_ROCE_INVALID_LKEY			0x100
@@ -109,7 +111,12 @@
 #define HNS_ROCE_PBL_HOP_NUM			2
 #define HNS_ROCE_EQE_HOP_NUM			2
 #define HNS_ROCE_IDX_HOP_NUM			1
+#define HNS_ROCE_SQWQE_HOP_NUM			2
+#define HNS_ROCE_EXT_SGE_HOP_NUM		1
+#define HNS_ROCE_RQWQE_HOP_NUM			2
 
+#define HNS_ROCE_BA_PG_SZ_SUPPORTED_256K	6
+#define HNS_ROCE_BA_PG_SZ_SUPPORTED_16K		2
 #define HNS_ROCE_V2_GID_INDEX_NUM		256
 
 #define HNS_ROCE_V2_TABLE_CHUNK_SIZE		(1 << 18)
@@ -237,6 +244,7 @@
 	HNS_ROCE_OPC_CFG_EXT_LLM			= 0x8403,
 	HNS_ROCE_OPC_CFG_TMOUT_LLM			= 0x8404,
 	HNS_ROCE_OPC_QUERY_PF_TIMER_RES			= 0x8406,
+	HNS_ROCE_OPC_QUERY_PF_CAPS_NUM                  = 0x8408,
 	HNS_ROCE_OPC_CFG_SGID_TB			= 0x8500,
 	HNS_ROCE_OPC_CFG_SMAC_TB			= 0x8501,
 	HNS_ROCE_OPC_POST_MB				= 0x8504,
@@ -643,7 +651,7 @@
 #define	V2_QPC_BYTE_76_ATE_S 27
 
 #define	V2_QPC_BYTE_76_RQIE_S 28
-
+#define	V2_QPC_BYTE_76_EXT_ATE_S 29
 #define	V2_QPC_BYTE_76_RQ_VLAN_EN_S 30
 #define	V2_QPC_BYTE_80_RX_CQN_S 0
 #define V2_QPC_BYTE_80_RX_CQN_M GENMASK(23, 0)
@@ -1569,6 +1577,155 @@
 #define CFG_SMAC_TB_VF_SMAC_H_S 0
 #define CFG_SMAC_TB_VF_SMAC_H_M GENMASK(15, 0)
 
+#define HNS_ROCE_QUERY_PF_CAPS_CMD_NUM 5
+struct hns_roce_query_pf_caps_a {
+	u8 number_ports;
+	u8 local_ca_ack_delay;
+	__le16 max_sq_sg;
+	__le16 max_sq_inline;
+	__le16 max_rq_sg;
+	__le32 max_extend_sg;
+	__le16 num_qpc_timer;
+	__le16 num_cqc_timer;
+	__le16 max_srq_sges;
+	u8 num_aeq_vectors;
+	u8 num_other_vectors;
+	u8 max_sq_desc_sz;
+	u8 max_rq_desc_sz;
+	u8 max_srq_desc_sz;
+	u8 cq_entry_sz;
+};
+
+struct hns_roce_query_pf_caps_b {
+	u8 mtpt_entry_sz;
+	u8 irrl_entry_sz;
+	u8 trrl_entry_sz;
+	u8 cqc_entry_sz;
+	u8 srqc_entry_sz;
+	u8 idx_entry_sz;
+	u8 scc_ctx_entry_sz;
+	u8 max_mtu;
+	__le16 qpc_entry_sz;
+	__le16 qpc_timer_entry_sz;
+	__le16 cqc_timer_entry_sz;
+	u8 min_cqes;
+	u8 min_wqes;
+	__le32 page_size_cap;
+	u8 pkey_table_len;
+	u8 phy_num_uars;
+	u8 ctx_hop_num;
+	u8 pbl_hop_num;
+};
+
+struct hns_roce_query_pf_caps_c {
+	__le32 cap_flags_num_pds;
+	__le32 max_gid_num_cqs;
+	__le32 cq_depth;
+	__le32 num_mrws;
+	__le32 ord_num_qps;
+	__le16 sq_depth;
+	__le16 rq_depth;
+};
+
+#define V2_QUERY_PF_CAPS_C_NUM_PDS_S 0
+#define V2_QUERY_PF_CAPS_C_NUM_PDS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_C_CAP_FLAGS_S 20
+#define V2_QUERY_PF_CAPS_C_CAP_FLAGS_M GENMASK(31, 20)
+
+#define V2_QUERY_PF_CAPS_C_NUM_CQS_S 0
+#define V2_QUERY_PF_CAPS_C_NUM_CQS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_C_MAX_GID_S 20
+#define V2_QUERY_PF_CAPS_C_MAX_GID_M GENMASK(28, 20)
+
+#define V2_QUERY_PF_CAPS_C_CQ_DEPTH_S 0
+#define V2_QUERY_PF_CAPS_C_CQ_DEPTH_M GENMASK(22, 0)
+
+#define V2_QUERY_PF_CAPS_C_NUM_MRWS_S 0
+#define V2_QUERY_PF_CAPS_C_NUM_MRWS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_C_NUM_QPS_S 0
+#define V2_QUERY_PF_CAPS_C_NUM_QPS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_C_MAX_ORD_S 20
+#define V2_QUERY_PF_CAPS_C_MAX_ORD_M GENMASK(27, 20)
+
+struct hns_roce_query_pf_caps_d {
+	__le32 wq_hop_num_max_srqs;
+	__le16 srq_depth;
+	__le16 rsv;
+	__le32 num_ceqs_ceq_depth;
+	__le32 arm_st_aeq_depth;
+	__le32 num_uars_rsv_pds;
+	__le32 rsv_uars_rsv_qps;
+};
+#define V2_QUERY_PF_CAPS_D_NUM_SRQS_S 0
+#define V2_QUERY_PF_CAPS_D_NUM_SRQS_M GENMASK(20, 0)
+
+#define V2_QUERY_PF_CAPS_D_RQWQE_HOP_NUM_S 20
+#define V2_QUERY_PF_CAPS_D_RQWQE_HOP_NUM_M GENMASK(21, 20)
+
+#define V2_QUERY_PF_CAPS_D_EX_SGE_HOP_NUM_S 22
+#define V2_QUERY_PF_CAPS_D_EX_SGE_HOP_NUM_M GENMASK(23, 22)
+
+#define V2_QUERY_PF_CAPS_D_SQWQE_HOP_NUM_S 24
+#define V2_QUERY_PF_CAPS_D_SQWQE_HOP_NUM_M GENMASK(25, 24)
+
+
+#define V2_QUERY_PF_CAPS_D_CEQ_DEPTH_S 0
+#define V2_QUERY_PF_CAPS_D_CEQ_DEPTH_M GENMASK(21, 0)
+
+#define V2_QUERY_PF_CAPS_D_NUM_CEQS_S 22
+#define V2_QUERY_PF_CAPS_D_NUM_CEQS_M GENMASK(31, 22)
+
+#define V2_QUERY_PF_CAPS_D_AEQ_DEPTH_S 0
+#define V2_QUERY_PF_CAPS_D_AEQ_DEPTH_M GENMASK(21, 0)
+
+#define V2_QUERY_PF_CAPS_D_AEQ_ARM_ST_S 22
+#define V2_QUERY_PF_CAPS_D_AEQ_ARM_ST_M GENMASK(23, 22)
+
+#define V2_QUERY_PF_CAPS_D_CEQ_ARM_ST_S 24
+#define V2_QUERY_PF_CAPS_D_CEQ_ARM_ST_M GENMASK(25, 24)
+
+#define V2_QUERY_PF_CAPS_D_RSV_PDS_S 0
+#define V2_QUERY_PF_CAPS_D_RSV_PDS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_D_NUM_UARS_S 20
+#define V2_QUERY_PF_CAPS_D_NUM_UARS_M GENMASK(27, 20)
+
+#define V2_QUERY_PF_CAPS_D_RSV_QPS_S 0
+#define V2_QUERY_PF_CAPS_D_RSV_QPS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_D_RSV_UARS_S 20
+#define V2_QUERY_PF_CAPS_D_RSV_UARS_M GENMASK(27, 20)
+
+struct hns_roce_query_pf_caps_e {
+	__le32 chunk_size_shift_rsv_mrws;
+	__le32 rsv_cqs;
+	__le32 rsv_srqs;
+	__le32 rsv_lkey;
+	__le16 ceq_max_cnt;
+	__le16 ceq_period;
+	__le16 aeq_max_cnt;
+	__le16 aeq_period;
+};
+
+#define V2_QUERY_PF_CAPS_E_RSV_MRWS_S 0
+#define V2_QUERY_PF_CAPS_E_RSV_MRWS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_E_CHUNK_SIZE_SHIFT_S 20
+#define V2_QUERY_PF_CAPS_E_CHUNK_SIZE_SHIFT_M GENMASK(31, 20)
+
+#define V2_QUERY_PF_CAPS_E_RSV_CQS_S 0
+#define V2_QUERY_PF_CAPS_E_RSV_CQS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_E_RSV_SRQS_S 0
+#define V2_QUERY_PF_CAPS_E_RSV_SRQS_M GENMASK(19, 0)
+
+#define V2_QUERY_PF_CAPS_E_RSV_LKEYS_S 0
+#define V2_QUERY_PF_CAPS_E_RSV_LKEYS_M GENMASK(19, 0)
+
 struct hns_roce_cmq_desc {
 	__le16 opcode;
 	__le16 flag;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -90,7 +90,7 @@
 static int hns_roce_del_gid(const struct ib_gid_attr *attr, void **context)
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(attr->device);
-	struct ib_gid_attr zattr = { };
+	struct ib_gid_attr zattr = {};
 	u8 port = attr->port_num - 1;
 	int ret;
 
@@ -111,7 +111,7 @@
 
 	netdev = hr_dev->iboe.netdevs[port];
 	if (!netdev) {
-		dev_err(dev, "port(%d) can't find netdev\n", port);
+		dev_err(dev, "Can't find netdev on port(%u)!\n", port);
 		return -ENODEV;
 	}
 
@@ -210,7 +210,7 @@
 	props->max_pkeys = 1;
 	props->local_ca_ack_delay = hr_dev->caps.local_ca_ack_delay;
 	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ) {
-		props->max_srq = hr_dev->caps.max_srqs;
+		props->max_srq = hr_dev->caps.num_srqs;
 		props->max_srq_wr = hr_dev->caps.max_srq_wrs;
 		props->max_srq_sge = hr_dev->caps.max_srq_sges;
 	}
@@ -253,17 +253,18 @@
 	net_dev = hr_dev->iboe.netdevs[port];
 	if (!net_dev) {
 		spin_unlock_irqrestore(&hr_dev->iboe.lock, flags);
-		dev_err(dev, "find netdev %d failed!\r\n", port);
+		dev_err(dev, "Find netdev %u failed!\n", port);
 		return -EINVAL;
 	}
 
 	mtu = iboe_get_mtu(net_dev->mtu);
 	props->active_mtu = mtu ? min(props->max_mtu, mtu) : IB_MTU_256;
-	props->state = (netif_running(net_dev) && netif_carrier_ok(net_dev)) ?
-			IB_PORT_ACTIVE : IB_PORT_DOWN;
-	props->phys_state = (props->state == IB_PORT_ACTIVE) ?
-			     IB_PORT_PHYS_STATE_LINK_UP :
-			     IB_PORT_PHYS_STATE_DISABLED;
+	props->state = netif_running(net_dev) && netif_carrier_ok(net_dev) ?
+			       IB_PORT_ACTIVE :
+			       IB_PORT_DOWN;
+	props->phys_state = props->state == IB_PORT_ACTIVE ?
+				    IB_PORT_PHYS_STATE_LINK_UP :
+				    IB_PORT_PHYS_STATE_DISABLED;
 
 	spin_unlock_irqrestore(&hr_dev->iboe.lock, flags);
 
@@ -301,12 +302,6 @@
 	return 0;
 }
 
-static int hns_roce_modify_port(struct ib_device *ib_dev, u8 port_num, int mask,
-				struct ib_port_modify *props)
-{
-	return 0;
-}
-
 static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx,
 				   struct ib_udata *udata)
 {
@@ -359,7 +354,8 @@
 		return rdma_user_mmap_io(context, vma,
 					 to_hr_ucontext(context)->uar.pfn,
 					 PAGE_SIZE,
-					 pgprot_noncached(vma->vm_page_prot));
+					 pgprot_noncached(vma->vm_page_prot),
+					 NULL);
 
 	/* vm_pgoff: 1 -- TPTR */
 	case 1:
@@ -372,7 +368,8 @@
 		return rdma_user_mmap_io(context, vma,
 					 hr_dev->tptr_dma_addr >> PAGE_SHIFT,
 					 hr_dev->tptr_size,
-					 vma->vm_page_prot);
+					 vma->vm_page_prot,
+					 NULL);
 
 	default:
 		return -EINVAL;
@@ -423,14 +420,14 @@
 	.alloc_pd = hns_roce_alloc_pd,
 	.alloc_ucontext = hns_roce_alloc_ucontext,
 	.create_ah = hns_roce_create_ah,
-	.create_cq = hns_roce_ib_create_cq,
+	.create_cq = hns_roce_create_cq,
 	.create_qp = hns_roce_create_qp,
 	.dealloc_pd = hns_roce_dealloc_pd,
 	.dealloc_ucontext = hns_roce_dealloc_ucontext,
 	.del_gid = hns_roce_del_gid,
 	.dereg_mr = hns_roce_dereg_mr,
 	.destroy_ah = hns_roce_destroy_ah,
-	.destroy_cq = hns_roce_ib_destroy_cq,
+	.destroy_cq = hns_roce_destroy_cq,
 	.disassociate_ucontext = hns_roce_disassociate_ucontext,
 	.fill_res_entry = hns_roce_fill_res_entry,
 	.get_dma_mr = hns_roce_get_dma_mr,
@@ -438,7 +435,6 @@
 	.get_port_immutable = hns_roce_port_immutable,
 	.mmap = hns_roce_mmap,
 	.modify_device = hns_roce_modify_device,
-	.modify_port = hns_roce_modify_port,
 	.modify_qp = hns_roce_modify_qp,
 	.query_ah = hns_roce_query_ah,
 	.query_device = hns_roce_query_device,
@@ -486,13 +482,13 @@
 
 	ib_dev = &hr_dev->ib_dev;
 
-	ib_dev->node_type		= RDMA_NODE_IB_CA;
-	ib_dev->dev.parent		= dev;
+	ib_dev->node_type = RDMA_NODE_IB_CA;
+	ib_dev->dev.parent = dev;
 
-	ib_dev->phys_port_cnt		= hr_dev->caps.num_ports;
-	ib_dev->local_dma_lkey		= hr_dev->caps.reserved_lkey;
-	ib_dev->num_comp_vectors	= hr_dev->caps.num_comp_vectors;
-	ib_dev->uverbs_cmd_mask		=
+	ib_dev->phys_port_cnt = hr_dev->caps.num_ports;
+	ib_dev->local_dma_lkey = hr_dev->caps.reserved_lkey;
+	ib_dev->num_comp_vectors = hr_dev->caps.num_comp_vectors;
+	ib_dev->uverbs_cmd_mask =
 		(1ULL << IB_USER_VERBS_CMD_GET_CONTEXT) |
 		(1ULL << IB_USER_VERBS_CMD_QUERY_DEVICE) |
 		(1ULL << IB_USER_VERBS_CMD_QUERY_PORT) |
@@ -508,8 +504,7 @@
 		(1ULL << IB_USER_VERBS_CMD_QUERY_QP) |
 		(1ULL << IB_USER_VERBS_CMD_DESTROY_QP);
 
-	ib_dev->uverbs_ex_cmd_mask |=
-		(1ULL << IB_USER_VERBS_EX_CMD_MODIFY_CQ);
+	ib_dev->uverbs_ex_cmd_mask |= (1ULL << IB_USER_VERBS_EX_CMD_MODIFY_CQ);
 
 	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_REREG_MR) {
 		ib_dev->uverbs_cmd_mask |= (1ULL << IB_USER_VERBS_CMD_REREG_MR);
@@ -594,11 +589,13 @@
 
 	if (hns_roce_check_whether_mhop(hr_dev, HEM_TYPE_CQE)) {
 		ret = hns_roce_init_hem_table(hr_dev,
-				      &hr_dev->mr_table.mtt_cqe_table,
-				      HEM_TYPE_CQE, hr_dev->caps.mtt_entry_sz,
-				      hr_dev->caps.num_cqe_segs, 1);
+					      &hr_dev->mr_table.mtt_cqe_table,
+					      HEM_TYPE_CQE,
+					      hr_dev->caps.mtt_entry_sz,
+					      hr_dev->caps.num_cqe_segs, 1);
 		if (ret) {
-			dev_err(dev, "Failed to init MTT CQE context memory, aborting.\n");
+			dev_err(dev,
+				"Failed to init CQE context memory, aborting.\n");
 			goto err_unmap_cqe;
 		}
 	}
@@ -638,7 +635,7 @@
 					      hr_dev->caps.num_qps, 1);
 		if (ret) {
 			dev_err(dev,
-			       "Failed to init trrl_table memory, aborting.\n");
+				"Failed to init trrl_table memory, aborting.\n");
 			goto err_unmap_irrl;
 		}
 	}
@@ -658,7 +655,7 @@
 					      hr_dev->caps.num_srqs, 1);
 		if (ret) {
 			dev_err(dev,
-			      "Failed to init SRQ context memory, aborting.\n");
+				"Failed to init SRQ context memory, aborting.\n");
 			goto err_unmap_cq;
 		}
 	}
@@ -697,33 +694,31 @@
 					      hr_dev->caps.num_qps, 1);
 		if (ret) {
 			dev_err(dev,
-			      "Failed to init SCC context memory, aborting.\n");
+				"Failed to init SCC context memory, aborting.\n");
 			goto err_unmap_idx;
 		}
 	}
 
 	if (hr_dev->caps.qpc_timer_entry_sz) {
-		ret = hns_roce_init_hem_table(hr_dev,
-					      &hr_dev->qpc_timer_table,
+		ret = hns_roce_init_hem_table(hr_dev, &hr_dev->qpc_timer_table,
 					      HEM_TYPE_QPC_TIMER,
 					      hr_dev->caps.qpc_timer_entry_sz,
 					      hr_dev->caps.num_qpc_timer, 1);
 		if (ret) {
 			dev_err(dev,
-			      "Failed to init QPC timer memory, aborting.\n");
+				"Failed to init QPC timer memory, aborting.\n");
 			goto err_unmap_ctx;
 		}
 	}
 
 	if (hr_dev->caps.cqc_timer_entry_sz) {
-		ret = hns_roce_init_hem_table(hr_dev,
-					      &hr_dev->cqc_timer_table,
+		ret = hns_roce_init_hem_table(hr_dev, &hr_dev->cqc_timer_table,
 					      HEM_TYPE_CQC_TIMER,
 					      hr_dev->caps.cqc_timer_entry_sz,
 					      hr_dev->caps.num_cqc_timer, 1);
 		if (ret) {
 			dev_err(dev,
-			      "Failed to init CQC timer memory, aborting.\n");
+				"Failed to init CQC timer memory, aborting.\n");
 			goto err_unmap_qpc_timer;
 		}
 	}
@@ -732,8 +727,7 @@
 
 err_unmap_qpc_timer:
 	if (hr_dev->caps.qpc_timer_entry_sz)
-		hns_roce_cleanup_hem_table(hr_dev,
-					   &hr_dev->qpc_timer_table);
+		hns_roce_cleanup_hem_table(hr_dev, &hr_dev->qpc_timer_table);
 
 err_unmap_ctx:
 	if (hr_dev->caps.sccc_entry_sz)
@@ -848,8 +842,7 @@
 	return 0;
 
 err_qp_table_free:
-	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ)
-		hns_roce_cleanup_qp_table(hr_dev);
+	hns_roce_cleanup_qp_table(hr_dev);
 
 err_cq_table_free:
 	hns_roce_cleanup_cq_table(hr_dev);
@@ -868,6 +861,50 @@
 	return ret;
 }
 
+static void check_and_get_armed_cq(struct list_head *cq_list, struct ib_cq *cq)
+{
+	struct hns_roce_cq *hr_cq = to_hr_cq(cq);
+	unsigned long flags;
+
+	spin_lock_irqsave(&hr_cq->lock, flags);
+	if (cq->comp_handler) {
+		if (!hr_cq->is_armed) {
+			hr_cq->is_armed = 1;
+			list_add_tail(&hr_cq->node, cq_list);
+		}
+	}
+	spin_unlock_irqrestore(&hr_cq->lock, flags);
+}
+
+void hns_roce_handle_device_err(struct hns_roce_dev *hr_dev)
+{
+	struct hns_roce_qp *hr_qp;
+	struct hns_roce_cq *hr_cq;
+	struct list_head cq_list;
+	unsigned long flags_qp;
+	unsigned long flags;
+
+	INIT_LIST_HEAD(&cq_list);
+
+	spin_lock_irqsave(&hr_dev->qp_list_lock, flags);
+	list_for_each_entry(hr_qp, &hr_dev->qp_list, node) {
+		spin_lock_irqsave(&hr_qp->sq.lock, flags_qp);
+		if (hr_qp->sq.tail != hr_qp->sq.head)
+			check_and_get_armed_cq(&cq_list, hr_qp->ibqp.send_cq);
+		spin_unlock_irqrestore(&hr_qp->sq.lock, flags_qp);
+
+		spin_lock_irqsave(&hr_qp->rq.lock, flags_qp);
+		if ((!hr_qp->ibqp.srq) && (hr_qp->rq.tail != hr_qp->rq.head))
+			check_and_get_armed_cq(&cq_list, hr_qp->ibqp.recv_cq);
+		spin_unlock_irqrestore(&hr_qp->rq.lock, flags_qp);
+	}
+
+	list_for_each_entry(hr_cq, &cq_list, node)
+		hns_roce_cq_completion(hr_dev, hr_cq->cqn);
+
+	spin_unlock_irqrestore(&hr_dev->qp_list_lock, flags);
+}
+
 int hns_roce_init(struct hns_roce_dev *hr_dev)
 {
 	int ret;
@@ -938,6 +975,9 @@
 		}
 	}
 
+	INIT_LIST_HEAD(&hr_dev->qp_list);
+	spin_lock_init(&hr_dev->qp_list_lock);
+
 	ret = hns_roce_register_device(hr_dev);
 	if (ret)
 		goto error_failed_register_device;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_mr.c
@@ -48,21 +48,21 @@
 	return (key << 24) | (key >> 8);
 }
 
-static int hns_roce_sw2hw_mpt(struct hns_roce_dev *hr_dev,
-			      struct hns_roce_cmd_mailbox *mailbox,
-			      unsigned long mpt_index)
+static int hns_roce_hw_create_mpt(struct hns_roce_dev *hr_dev,
+				  struct hns_roce_cmd_mailbox *mailbox,
+				  unsigned long mpt_index)
 {
 	return hns_roce_cmd_mbox(hr_dev, mailbox->dma, 0, mpt_index, 0,
-				 HNS_ROCE_CMD_SW2HW_MPT,
+				 HNS_ROCE_CMD_CREATE_MPT,
 				 HNS_ROCE_CMD_TIMEOUT_MSECS);
 }
 
-int hns_roce_hw2sw_mpt(struct hns_roce_dev *hr_dev,
-			      struct hns_roce_cmd_mailbox *mailbox,
-			      unsigned long mpt_index)
+int hns_roce_hw_destroy_mpt(struct hns_roce_dev *hr_dev,
+			    struct hns_roce_cmd_mailbox *mailbox,
+			    unsigned long mpt_index)
 {
 	return hns_roce_cmd_mbox(hr_dev, 0, mailbox ? mailbox->dma : 0,
-				 mpt_index, !mailbox, HNS_ROCE_CMD_HW2SW_MPT,
+				 mpt_index, !mailbox, HNS_ROCE_CMD_DESTROY_MPT,
 				 HNS_ROCE_CMD_TIMEOUT_MSECS);
 }
 
@@ -83,7 +83,7 @@
 		}
 	}
 	spin_unlock(&buddy->lock);
-	return -1;
+	return -EINVAL;
 
  found:
 	clear_bit(*seg, buddy->bits[o]);
@@ -206,13 +206,14 @@
 	}
 
 	ret = hns_roce_buddy_alloc(buddy, order, seg);
-	if (ret == -1)
-		return -1;
+	if (ret)
+		return ret;
 
-	if (hns_roce_table_get_range(hr_dev, table, *seg,
-				     *seg + (1 << order) - 1)) {
+	ret = hns_roce_table_get_range(hr_dev, table, *seg,
+				       *seg + (1 << order) - 1);
+	if (ret) {
 		hns_roce_buddy_free(buddy, *seg, order);
-		return -1;
+		return ret;
 	}
 
 	return 0;
@@ -578,7 +579,7 @@
 
 	/* Allocate a key for mr from mr_table */
 	ret = hns_roce_bitmap_alloc(&hr_dev->mr_table.mtpt_bitmap, &index);
-	if (ret == -1)
+	if (ret)
 		return -ENOMEM;
 
 	mr->iova = iova;			/* MR va starting addr */
@@ -707,10 +708,11 @@
 	int ret;
 
 	if (mr->enabled) {
-		ret = hns_roce_hw2sw_mpt(hr_dev, NULL, key_to_hw_index(mr->key)
-					 & (hr_dev->caps.num_mtpts - 1));
+		ret = hns_roce_hw_destroy_mpt(hr_dev, NULL,
+					      key_to_hw_index(mr->key) &
+					      (hr_dev->caps.num_mtpts - 1));
 		if (ret)
-			dev_warn(dev, "HW2SW_MPT failed (%d)\n", ret);
+			dev_warn(dev, "DESTROY_MPT failed (%d)\n", ret);
 	}
 
 	if (mr->size != ~0ULL) {
@@ -763,10 +765,10 @@
 		goto err_page;
 	}
 
-	ret = hns_roce_sw2hw_mpt(hr_dev, mailbox,
-				 mtpt_idx & (hr_dev->caps.num_mtpts - 1));
+	ret = hns_roce_hw_create_mpt(hr_dev, mailbox,
+				     mtpt_idx & (hr_dev->caps.num_mtpts - 1));
 	if (ret) {
-		dev_err(dev, "SW2HW_MPT failed (%d)\n", ret);
+		dev_err(dev, "CREATE_MPT failed (%d)\n", ret);
 		goto err_page;
 	}
 
@@ -1062,8 +1064,8 @@
 		if (!(npage % (1 << (mtt->page_shift - PAGE_SHIFT)))) {
 			if (page_addr & ((1 << mtt->page_shift) - 1)) {
 				dev_err(dev,
-					"page_addr 0x%llx is not page_shift %d alignment!\n",
-					page_addr, mtt->page_shift);
+					"page_addr is not page_shift %d alignment!\n",
+					mtt->page_shift);
 				ret = -EINVAL;
 				goto out;
 			}
@@ -1143,7 +1145,7 @@
 	if (!mr)
 		return ERR_PTR(-ENOMEM);
 
-	mr->umem = ib_umem_get(udata, start, length, access_flags, 0);
+	mr->umem = ib_umem_get(udata, start, length, access_flags);
 	if (IS_ERR(mr->umem)) {
 		ret = PTR_ERR(mr->umem);
 		goto err_free;
@@ -1228,7 +1230,7 @@
 	}
 	ib_umem_release(mr->umem);
 
-	mr->umem = ib_umem_get(udata, start, length, mr_access_flags, 0);
+	mr->umem = ib_umem_get(udata, start, length, mr_access_flags);
 	if (IS_ERR(mr->umem)) {
 		ret = PTR_ERR(mr->umem);
 		mr->umem = NULL;
@@ -1308,9 +1310,9 @@
 	if (ret)
 		goto free_cmd_mbox;
 
-	ret = hns_roce_hw2sw_mpt(hr_dev, NULL, mtpt_idx);
+	ret = hns_roce_hw_destroy_mpt(hr_dev, NULL, mtpt_idx);
 	if (ret)
-		dev_warn(dev, "HW2SW_MPT failed (%d)\n", ret);
+		dev_warn(dev, "DESTROY_MPT failed (%d)\n", ret);
 
 	mr->enabled = 0;
 
@@ -1332,9 +1334,9 @@
 			goto free_cmd_mbox;
 	}
 
-	ret = hns_roce_sw2hw_mpt(hr_dev, mailbox, mtpt_idx);
+	ret = hns_roce_hw_create_mpt(hr_dev, mailbox, mtpt_idx);
 	if (ret) {
-		dev_err(dev, "SW2HW_MPT failed (%d)\n", ret);
+		dev_err(dev, "CREATE_MPT failed (%d)\n", ret);
 		ib_umem_release(mr->umem);
 		goto free_cmd_mbox;
 	}
@@ -1448,10 +1450,11 @@
 	int ret;
 
 	if (mw->enabled) {
-		ret = hns_roce_hw2sw_mpt(hr_dev, NULL, key_to_hw_index(mw->rkey)
-					 & (hr_dev->caps.num_mtpts - 1));
+		ret = hns_roce_hw_destroy_mpt(hr_dev, NULL,
+					      key_to_hw_index(mw->rkey) &
+					      (hr_dev->caps.num_mtpts - 1));
 		if (ret)
-			dev_warn(dev, "MW HW2SW_MPT failed (%d)\n", ret);
+			dev_warn(dev, "MW DESTROY_MPT failed (%d)\n", ret);
 
 		hns_roce_table_put(hr_dev, &hr_dev->mr_table.mtpt_table,
 				   key_to_hw_index(mw->rkey));
@@ -1487,10 +1490,10 @@
 		goto err_page;
 	}
 
-	ret = hns_roce_sw2hw_mpt(hr_dev, mailbox,
-				 mtpt_idx & (hr_dev->caps.num_mtpts - 1));
+	ret = hns_roce_hw_create_mpt(hr_dev, mailbox,
+				     mtpt_idx & (hr_dev->caps.num_mtpts - 1));
 	if (ret) {
-		dev_err(dev, "MW sw2hw_mpt failed (%d)\n", ret);
+		dev_err(dev, "MW CREATE_MPT failed (%d)\n", ret);
 		goto err_page;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_pd.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_pd.c
@@ -96,7 +96,7 @@
 
 	/* Using bitmap to manager UAR index */
 	ret = hns_roce_bitmap_alloc(&hr_dev->uar_table.bitmap, &uar->logic_idx);
-	if (ret == -1)
+	if (ret)
 		return -ENOMEM;
 
 	if (uar->logic_idx > 0 && hr_dev->caps.phy_num_uars > 1)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_qp.c
@@ -43,6 +43,45 @@
 
 #define SQP_NUM				(2 * HNS_ROCE_MAX_PORTS)
 
+static void flush_work_handle(struct work_struct *work)
+{
+	struct hns_roce_work *flush_work = container_of(work,
+					struct hns_roce_work, work);
+	struct hns_roce_qp *hr_qp = container_of(flush_work,
+					struct hns_roce_qp, flush_work);
+	struct device *dev = flush_work->hr_dev->dev;
+	struct ib_qp_attr attr;
+	int attr_mask;
+	int ret;
+
+	attr_mask = IB_QP_STATE;
+	attr.qp_state = IB_QPS_ERR;
+
+	if (test_and_clear_bit(HNS_ROCE_FLUSH_FLAG, &hr_qp->flush_flag)) {
+		ret = hns_roce_modify_qp(&hr_qp->ibqp, &attr, attr_mask, NULL);
+		if (ret)
+			dev_err(dev, "Modify QP to error state failed(%d) during CQE flush\n",
+				ret);
+	}
+
+	/*
+	 * make sure we signal QP destroy leg that flush QP was completed
+	 * so that it can safely proceed ahead now and destroy QP
+	 */
+	if (atomic_dec_and_test(&hr_qp->refcount))
+		complete(&hr_qp->free);
+}
+
+void init_flush_work(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
+{
+	struct hns_roce_work *flush_work = &hr_qp->flush_work;
+
+	flush_work->hr_dev = hr_dev;
+	INIT_WORK(&flush_work->work, flush_work_handle);
+	atomic_inc(&hr_qp->refcount);
+	queue_work(hr_dev->irq_workq, &flush_work->work);
+}
+
 void hns_roce_qp_event(struct hns_roce_dev *hr_dev, u32 qpn, int event_type)
 {
 	struct device *dev = hr_dev->dev;
@@ -59,6 +98,15 @@
 		return;
 	}
 
+	if (hr_dev->hw_rev != HNS_ROCE_HW_VER1 &&
+	    (event_type == HNS_ROCE_EVENT_TYPE_WQ_CATAS_ERROR ||
+	     event_type == HNS_ROCE_EVENT_TYPE_INV_REQ_LOCAL_WQ_ERROR ||
+	     event_type == HNS_ROCE_EVENT_TYPE_LOCAL_WQ_ACCESS_ERROR)) {
+		qp->state = IB_QPS_ERR;
+		if (!test_and_set_bit(HNS_ROCE_FLUSH_FLAG, &qp->flush_flag))
+			init_flush_work(hr_dev, qp);
+	}
+
 	qp->event(qp, (enum hns_roce_event)event_type);
 
 	if (atomic_dec_and_test(&qp->refcount))
@@ -108,15 +156,34 @@
 	}
 }
 
-static int hns_roce_reserve_range_qp(struct hns_roce_dev *hr_dev, int cnt,
-				     int align, unsigned long *base)
+static int alloc_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
 {
-	struct hns_roce_qp_table *qp_table = &hr_dev->qp_table;
+	unsigned long num = 0;
+	int ret;
 
-	return hns_roce_bitmap_alloc_range(&qp_table->bitmap, cnt, align,
-					   base) ?
-		       -ENOMEM :
-		       0;
+	if (hr_qp->ibqp.qp_type == IB_QPT_GSI) {
+		/* when hw version is v1, the sqpn is allocated */
+		if (hr_dev->hw_rev == HNS_ROCE_HW_VER1)
+			num = HNS_ROCE_MAX_PORTS +
+			      hr_dev->iboe.phy_port[hr_qp->port];
+		else
+			num = 1;
+
+		hr_qp->doorbell_qpn = 1;
+	} else {
+		ret = hns_roce_bitmap_alloc_range(&hr_dev->qp_table.bitmap,
+						  1, 1, &num);
+		if (ret) {
+			ibdev_err(&hr_dev->ib_dev, "Failed to alloc bitmap\n");
+			return -ENOMEM;
+		}
+
+		hr_qp->doorbell_qpn = (u32)num;
+	}
+
+	hr_qp->qpn = num;
+
+	return 0;
 }
 
 enum hns_roce_qp_state to_hns_roce_state(enum ib_qp_state state)
@@ -139,50 +206,75 @@
 	}
 }
 
-static int hns_roce_gsi_qp_alloc(struct hns_roce_dev *hr_dev, unsigned long qpn,
-				 struct hns_roce_qp *hr_qp)
+static void add_qp_to_list(struct hns_roce_dev *hr_dev,
+			   struct hns_roce_qp *hr_qp,
+			   struct ib_cq *send_cq, struct ib_cq *recv_cq)
+{
+	struct hns_roce_cq *hr_send_cq, *hr_recv_cq;
+	unsigned long flags;
+
+	hr_send_cq = send_cq ? to_hr_cq(send_cq) : NULL;
+	hr_recv_cq = recv_cq ? to_hr_cq(recv_cq) : NULL;
+
+	spin_lock_irqsave(&hr_dev->qp_list_lock, flags);
+	hns_roce_lock_cqs(hr_send_cq, hr_recv_cq);
+
+	list_add_tail(&hr_qp->node, &hr_dev->qp_list);
+	if (hr_send_cq)
+		list_add_tail(&hr_qp->sq_node, &hr_send_cq->sq_list);
+	if (hr_recv_cq)
+		list_add_tail(&hr_qp->rq_node, &hr_recv_cq->rq_list);
+
+	hns_roce_unlock_cqs(hr_send_cq, hr_recv_cq);
+	spin_unlock_irqrestore(&hr_dev->qp_list_lock, flags);
+}
+
+static int hns_roce_qp_store(struct hns_roce_dev *hr_dev,
+			     struct hns_roce_qp *hr_qp,
+			     struct ib_qp_init_attr *init_attr)
 {
 	struct xarray *xa = &hr_dev->qp_table_xa;
 	int ret;
 
-	if (!qpn)
+	if (!hr_qp->qpn)
 		return -EINVAL;
 
-	hr_qp->qpn = qpn;
-	atomic_set(&hr_qp->refcount, 1);
-	init_completion(&hr_qp->free);
-
-	ret = xa_err(xa_store_irq(xa, hr_qp->qpn & (hr_dev->caps.num_qps - 1),
-				hr_qp, GFP_KERNEL));
+	ret = xa_err(xa_store_irq(xa, hr_qp->qpn, hr_qp, GFP_KERNEL));
 	if (ret)
-		dev_err(hr_dev->dev, "QPC xa_store failed\n");
+		dev_err(hr_dev->dev, "Failed to xa store for QPC\n");
+	else
+		/* add QP to device's QP list for softwc */
+		add_qp_to_list(hr_dev, hr_qp, init_attr->send_cq,
+			       init_attr->recv_cq);
 
 	return ret;
 }
 
-static int hns_roce_qp_alloc(struct hns_roce_dev *hr_dev, unsigned long qpn,
-			     struct hns_roce_qp *hr_qp)
+static int alloc_qpc(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
 {
 	struct hns_roce_qp_table *qp_table = &hr_dev->qp_table;
 	struct device *dev = hr_dev->dev;
 	int ret;
 
-	if (!qpn)
+	if (!hr_qp->qpn)
 		return -EINVAL;
 
-	hr_qp->qpn = qpn;
+	/* In v1 engine, GSI QP context is saved in the RoCE hw's register */
+	if (hr_qp->ibqp.qp_type == IB_QPT_GSI &&
+	    hr_dev->hw_rev == HNS_ROCE_HW_VER1)
+		return 0;
 
 	/* Alloc memory for QPC */
 	ret = hns_roce_table_get(hr_dev, &qp_table->qp_table, hr_qp->qpn);
 	if (ret) {
-		dev_err(dev, "QPC table get failed\n");
+		dev_err(dev, "Failed to get QPC table\n");
 		goto err_out;
 	}
 
 	/* Alloc memory for IRRL */
 	ret = hns_roce_table_get(hr_dev, &qp_table->irrl_table, hr_qp->qpn);
 	if (ret) {
-		dev_err(dev, "IRRL table get failed\n");
+		dev_err(dev, "Failed to get IRRL table\n");
 		goto err_put_qp;
 	}
 
@@ -191,7 +283,7 @@
 		ret = hns_roce_table_get(hr_dev, &qp_table->trrl_table,
 					 hr_qp->qpn);
 		if (ret) {
-			dev_err(dev, "TRRL table get failed\n");
+			dev_err(dev, "Failed to get TRRL table\n");
 			goto err_put_irrl;
 		}
 	}
@@ -201,22 +293,13 @@
 		ret = hns_roce_table_get(hr_dev, &qp_table->sccc_table,
 					 hr_qp->qpn);
 		if (ret) {
-			dev_err(dev, "SCC CTX table get failed\n");
+			dev_err(dev, "Failed to get SCC CTX table\n");
 			goto err_put_trrl;
 		}
 	}
 
-	ret = hns_roce_gsi_qp_alloc(hr_dev, qpn, hr_qp);
-	if (ret)
-		goto err_put_sccc;
-
 	return 0;
 
-err_put_sccc:
-	if (hr_dev->caps.sccc_entry_sz)
-		hns_roce_table_put(hr_dev, &qp_table->sccc_table,
-				   hr_qp->qpn);
-
 err_put_trrl:
 	if (hr_dev->caps.trrl_entry_sz)
 		hns_roce_table_put(hr_dev, &qp_table->trrl_table, hr_qp->qpn);
@@ -236,89 +319,85 @@
 	struct xarray *xa = &hr_dev->qp_table_xa;
 	unsigned long flags;
 
+	list_del(&hr_qp->node);
+	list_del(&hr_qp->sq_node);
+	list_del(&hr_qp->rq_node);
+
 	xa_lock_irqsave(xa, flags);
 	__xa_erase(xa, hr_qp->qpn & (hr_dev->caps.num_qps - 1));
 	xa_unlock_irqrestore(xa, flags);
 }
 
-void hns_roce_qp_free(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
+static void free_qpc(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
 {
 	struct hns_roce_qp_table *qp_table = &hr_dev->qp_table;
 
-	if (atomic_dec_and_test(&hr_qp->refcount))
-		complete(&hr_qp->free);
-	wait_for_completion(&hr_qp->free);
+	/* In v1 engine, GSI QP context is saved in the RoCE hw's register */
+	if (hr_qp->ibqp.qp_type == IB_QPT_GSI &&
+	    hr_dev->hw_rev == HNS_ROCE_HW_VER1)
+		return;
 
-	if ((hr_qp->ibqp.qp_type) != IB_QPT_GSI) {
-		if (hr_dev->caps.trrl_entry_sz)
-			hns_roce_table_put(hr_dev, &qp_table->trrl_table,
-					   hr_qp->qpn);
-		hns_roce_table_put(hr_dev, &qp_table->irrl_table, hr_qp->qpn);
-	}
+	if (hr_dev->caps.trrl_entry_sz)
+		hns_roce_table_put(hr_dev, &qp_table->trrl_table, hr_qp->qpn);
+	hns_roce_table_put(hr_dev, &qp_table->irrl_table, hr_qp->qpn);
 }
 
-void hns_roce_release_range_qp(struct hns_roce_dev *hr_dev, int base_qpn,
-			       int cnt)
+static void free_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
 {
 	struct hns_roce_qp_table *qp_table = &hr_dev->qp_table;
 
-	if (base_qpn < hr_dev->caps.reserved_qps)
+	if (hr_qp->ibqp.qp_type == IB_QPT_GSI)
 		return;
 
-	hns_roce_bitmap_free_range(&qp_table->bitmap, base_qpn, cnt, BITMAP_RR);
+	if (hr_qp->qpn < hr_dev->caps.reserved_qps)
+		return;
+
+	hns_roce_bitmap_free_range(&qp_table->bitmap, hr_qp->qpn, 1, BITMAP_RR);
 }
 
-static int hns_roce_set_rq_size(struct hns_roce_dev *hr_dev,
+static int set_rq_size(struct hns_roce_dev *hr_dev,
 				struct ib_qp_cap *cap, bool is_user, int has_rq,
 				struct hns_roce_qp *hr_qp)
 {
-	struct device *dev = hr_dev->dev;
 	u32 max_cnt;
 
-	/* Check the validity of QP support capacity */
-	if (cap->max_recv_wr > hr_dev->caps.max_wqes ||
-	    cap->max_recv_sge > hr_dev->caps.max_rq_sg) {
-		dev_err(dev, "RQ WR or sge error!max_recv_wr=%d max_recv_sge=%d\n",
-			cap->max_recv_wr, cap->max_recv_sge);
-		return -EINVAL;
-	}
-
 	/* If srq exist, set zero for relative number of rq */
 	if (!has_rq) {
 		hr_qp->rq.wqe_cnt = 0;
 		hr_qp->rq.max_gs = 0;
 		cap->max_recv_wr = 0;
 		cap->max_recv_sge = 0;
-	} else {
-		if (is_user && (!cap->max_recv_wr || !cap->max_recv_sge)) {
-			dev_err(dev, "user space no need config max_recv_wr max_recv_sge\n");
-			return -EINVAL;
-		}
 
-		if (hr_dev->caps.min_wqes)
-			max_cnt = max(cap->max_recv_wr, hr_dev->caps.min_wqes);
-		else
-			max_cnt = cap->max_recv_wr;
+		return 0;
+	}
 
-		hr_qp->rq.wqe_cnt = roundup_pow_of_two(max_cnt);
+	/* Check the validity of QP support capacity */
+	if (!cap->max_recv_wr || cap->max_recv_wr > hr_dev->caps.max_wqes ||
+	    cap->max_recv_sge > hr_dev->caps.max_rq_sg) {
+		ibdev_err(&hr_dev->ib_dev, "RQ config error, depth=%u, sge=%d\n",
+			  cap->max_recv_wr, cap->max_recv_sge);
+		return -EINVAL;
+	}
 
-		if ((u32)hr_qp->rq.wqe_cnt > hr_dev->caps.max_wqes) {
-			dev_err(dev, "while setting rq size, rq.wqe_cnt too large\n");
-			return -EINVAL;
-		}
+	max_cnt = max(cap->max_recv_wr, hr_dev->caps.min_wqes);
 
-		max_cnt = max(1U, cap->max_recv_sge);
-		hr_qp->rq.max_gs = roundup_pow_of_two(max_cnt);
-		if (hr_dev->caps.max_rq_sg <= 2)
-			hr_qp->rq.wqe_shift =
-					ilog2(hr_dev->caps.max_rq_desc_sz);
-		else
-			hr_qp->rq.wqe_shift =
-					ilog2(hr_dev->caps.max_rq_desc_sz
-					      * hr_qp->rq.max_gs);
+	hr_qp->rq.wqe_cnt = roundup_pow_of_two(max_cnt);
+	if ((u32)hr_qp->rq.wqe_cnt > hr_dev->caps.max_wqes) {
+		ibdev_err(&hr_dev->ib_dev, "rq depth %u too large\n",
+			  cap->max_recv_wr);
+		return -EINVAL;
 	}
 
-	cap->max_recv_wr = hr_qp->rq.max_post = hr_qp->rq.wqe_cnt;
+	max_cnt = max(1U, cap->max_recv_sge);
+	hr_qp->rq.max_gs = roundup_pow_of_two(max_cnt);
+
+	if (hr_dev->caps.max_rq_sg <= HNS_ROCE_SGE_IN_WQE)
+		hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz);
+	else
+		hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz *
+					    hr_qp->rq.max_gs);
+
+	cap->max_recv_wr = hr_qp->rq.wqe_cnt;
 	cap->max_recv_sge = hr_qp->rq.max_gs;
 
 	return 0;
@@ -332,15 +411,14 @@
 	u8 max_sq_stride = ilog2(roundup_sq_stride);
 
 	/* Sanity check SQ size before proceeding */
-	if ((u32)(1 << ucmd->log_sq_bb_count) > hr_dev->caps.max_wqes ||
-	     ucmd->log_sq_stride > max_sq_stride ||
-	     ucmd->log_sq_stride < HNS_ROCE_IB_MIN_SQ_STRIDE) {
-		ibdev_err(&hr_dev->ib_dev, "check SQ size error!\n");
+	if (ucmd->log_sq_stride > max_sq_stride ||
+	    ucmd->log_sq_stride < HNS_ROCE_IB_MIN_SQ_STRIDE) {
+		ibdev_err(&hr_dev->ib_dev, "Failed to check SQ stride size\n");
 		return -EINVAL;
 	}
 
 	if (cap->max_send_sge > hr_dev->caps.max_sq_sg) {
-		ibdev_err(&hr_dev->ib_dev, "SQ sge error! max_send_sge=%d\n",
+		ibdev_err(&hr_dev->ib_dev, "Failed to check SQ SGE size %d\n",
 			  cap->max_send_sge);
 		return -EINVAL;
 	}
@@ -348,40 +426,43 @@
 	return 0;
 }
 
-static int hns_roce_set_user_sq_size(struct hns_roce_dev *hr_dev,
-				     struct ib_qp_cap *cap,
-				     struct hns_roce_qp *hr_qp,
-				     struct hns_roce_ib_create_qp *ucmd)
+static int set_user_sq_size(struct hns_roce_dev *hr_dev,
+			    struct ib_qp_cap *cap, struct hns_roce_qp *hr_qp,
+			    struct hns_roce_ib_create_qp *ucmd)
 {
 	u32 ex_sge_num;
 	u32 page_size;
 	u32 max_cnt;
 	int ret;
 
+	if (check_shl_overflow(1, ucmd->log_sq_bb_count, &hr_qp->sq.wqe_cnt) ||
+	    hr_qp->sq.wqe_cnt > hr_dev->caps.max_wqes)
+		return -EINVAL;
+
 	ret = check_sq_size_with_integrity(hr_dev, cap, ucmd);
 	if (ret) {
-		ibdev_err(&hr_dev->ib_dev, "Sanity check sq size failed\n");
+		ibdev_err(&hr_dev->ib_dev, "Failed to check user SQ size limit\n");
 		return ret;
 	}
 
-	hr_qp->sq.wqe_cnt = 1 << ucmd->log_sq_bb_count;
 	hr_qp->sq.wqe_shift = ucmd->log_sq_stride;
 
 	max_cnt = max(1U, cap->max_send_sge);
-	if (hr_dev->caps.max_sq_sg <= 2)
+	if (hr_dev->hw_rev == HNS_ROCE_HW_VER1)
 		hr_qp->sq.max_gs = roundup_pow_of_two(max_cnt);
 	else
 		hr_qp->sq.max_gs = max_cnt;
 
-	if (hr_qp->sq.max_gs > 2)
+	if (hr_qp->sq.max_gs > HNS_ROCE_SGE_IN_WQE)
 		hr_qp->sge.sge_cnt = roundup_pow_of_two(hr_qp->sq.wqe_cnt *
 							(hr_qp->sq.max_gs - 2));
 
-	if ((hr_qp->sq.max_gs > 2) && (hr_dev->pci_dev->revision == 0x20)) {
+	if (hr_qp->sq.max_gs > HNS_ROCE_SGE_IN_WQE &&
+	    hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08_A) {
 		if (hr_qp->sge.sge_cnt > hr_dev->caps.max_extend_sg) {
-			dev_err(hr_dev->dev,
-				"The extended sge cnt error! sge_cnt=%d\n",
-				hr_qp->sge.sge_cnt);
+			ibdev_err(&hr_dev->ib_dev,
+				  "Failed to check extended SGE size limit %d\n",
+				  hr_qp->sge.sge_cnt);
 			return -EINVAL;
 		}
 	}
@@ -390,41 +471,39 @@
 	ex_sge_num = hr_qp->sge.sge_cnt;
 
 	/* Get buf size, SQ and RQ  are aligned to page_szie */
-	if (hr_dev->caps.max_sq_sg <= 2) {
-		hr_qp->buff_size = HNS_ROCE_ALOGN_UP((hr_qp->rq.wqe_cnt <<
+	if (hr_dev->hw_rev == HNS_ROCE_HW_VER1) {
+		hr_qp->buff_size = round_up((hr_qp->rq.wqe_cnt <<
 					     hr_qp->rq.wqe_shift), PAGE_SIZE) +
-				   HNS_ROCE_ALOGN_UP((hr_qp->sq.wqe_cnt <<
+				   round_up((hr_qp->sq.wqe_cnt <<
 					     hr_qp->sq.wqe_shift), PAGE_SIZE);
 
 		hr_qp->sq.offset = 0;
-		hr_qp->rq.offset = HNS_ROCE_ALOGN_UP((hr_qp->sq.wqe_cnt <<
+		hr_qp->rq.offset = round_up((hr_qp->sq.wqe_cnt <<
 					     hr_qp->sq.wqe_shift), PAGE_SIZE);
 	} else {
 		page_size = 1 << (hr_dev->caps.mtt_buf_pg_sz + PAGE_SHIFT);
 		hr_qp->sge.sge_cnt = ex_sge_num ?
 		   max(page_size / (1 << hr_qp->sge.sge_shift), ex_sge_num) : 0;
-		hr_qp->buff_size = HNS_ROCE_ALOGN_UP((hr_qp->rq.wqe_cnt <<
+		hr_qp->buff_size = round_up((hr_qp->rq.wqe_cnt <<
 					     hr_qp->rq.wqe_shift), page_size) +
-				   HNS_ROCE_ALOGN_UP((hr_qp->sge.sge_cnt <<
+				   round_up((hr_qp->sge.sge_cnt <<
 					     hr_qp->sge.sge_shift), page_size) +
-				   HNS_ROCE_ALOGN_UP((hr_qp->sq.wqe_cnt <<
+				   round_up((hr_qp->sq.wqe_cnt <<
 					     hr_qp->sq.wqe_shift), page_size);
 
 		hr_qp->sq.offset = 0;
 		if (ex_sge_num) {
-			hr_qp->sge.offset = HNS_ROCE_ALOGN_UP(
-							(hr_qp->sq.wqe_cnt <<
-							hr_qp->sq.wqe_shift),
-							page_size);
+			hr_qp->sge.offset = round_up((hr_qp->sq.wqe_cnt <<
+						      hr_qp->sq.wqe_shift),
+						     page_size);
 			hr_qp->rq.offset = hr_qp->sge.offset +
-					HNS_ROCE_ALOGN_UP((hr_qp->sge.sge_cnt <<
-						hr_qp->sge.sge_shift),
-						page_size);
+					   round_up((hr_qp->sge.sge_cnt <<
+						     hr_qp->sge.sge_shift),
+						    page_size);
 		} else {
-			hr_qp->rq.offset = HNS_ROCE_ALOGN_UP(
-							(hr_qp->sq.wqe_cnt <<
-							hr_qp->sq.wqe_shift),
-							page_size);
+			hr_qp->rq.offset = round_up((hr_qp->sq.wqe_cnt <<
+						     hr_qp->sq.wqe_shift),
+						    page_size);
 		}
 	}
 
@@ -528,13 +607,15 @@
 	}
 
 	/* ud sqwqe's sge use extend sge */
-	if (hr_dev->caps.max_sq_sg > 2 && hr_qp->ibqp.qp_type == IB_QPT_GSI) {
+	if (hr_dev->hw_rev != HNS_ROCE_HW_VER1 &&
+	    hr_qp->ibqp.qp_type == IB_QPT_GSI) {
 		hr_qp->sge.sge_cnt = roundup_pow_of_two(hr_qp->sq.wqe_cnt *
 				     hr_qp->sq.max_gs);
 		hr_qp->sge.sge_shift = 4;
 	}
 
-	if ((hr_qp->sq.max_gs > 2) && hr_dev->pci_dev->revision == 0x20) {
+	if (hr_qp->sq.max_gs > 2 &&
+	    hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08_A) {
 		if (hr_qp->sge.sge_cnt > hr_dev->caps.max_extend_sg) {
 			dev_err(dev, "The extended sge cnt error! sge_cnt=%d\n",
 				hr_qp->sge.sge_cnt);
@@ -545,70 +626,65 @@
 	return 0;
 }
 
-static int hns_roce_set_kernel_sq_size(struct hns_roce_dev *hr_dev,
-				       struct ib_qp_cap *cap,
-				       struct hns_roce_qp *hr_qp)
+static int set_kernel_sq_size(struct hns_roce_dev *hr_dev,
+			      struct ib_qp_cap *cap, struct hns_roce_qp *hr_qp)
 {
-	struct device *dev = hr_dev->dev;
 	u32 page_size;
 	u32 max_cnt;
 	int size;
 	int ret;
 
-	if (cap->max_send_wr  > hr_dev->caps.max_wqes  ||
+	if (!cap->max_send_wr || cap->max_send_wr > hr_dev->caps.max_wqes ||
 	    cap->max_send_sge > hr_dev->caps.max_sq_sg ||
 	    cap->max_inline_data > hr_dev->caps.max_sq_inline) {
-		dev_err(dev, "SQ WR or sge or inline data error!\n");
+		ibdev_err(&hr_dev->ib_dev,
+			  "SQ WR or sge or inline data error!\n");
 		return -EINVAL;
 	}
 
 	hr_qp->sq.wqe_shift = ilog2(hr_dev->caps.max_sq_desc_sz);
 
-	if (hr_dev->caps.min_wqes)
-		max_cnt = max(cap->max_send_wr, hr_dev->caps.min_wqes);
-	else
-		max_cnt = cap->max_send_wr;
+	max_cnt = max(cap->max_send_wr, hr_dev->caps.min_wqes);
 
 	hr_qp->sq.wqe_cnt = roundup_pow_of_two(max_cnt);
 	if ((u32)hr_qp->sq.wqe_cnt > hr_dev->caps.max_wqes) {
-		dev_err(dev, "while setting kernel sq size, sq.wqe_cnt too large\n");
+		ibdev_err(&hr_dev->ib_dev,
+			  "while setting kernel sq size, sq.wqe_cnt too large\n");
 		return -EINVAL;
 	}
 
 	/* Get data_seg numbers */
 	max_cnt = max(1U, cap->max_send_sge);
-	if (hr_dev->caps.max_sq_sg <= 2)
+	if (hr_dev->hw_rev == HNS_ROCE_HW_VER1)
 		hr_qp->sq.max_gs = roundup_pow_of_two(max_cnt);
 	else
 		hr_qp->sq.max_gs = max_cnt;
 
 	ret = set_extend_sge_param(hr_dev, hr_qp);
 	if (ret) {
-		dev_err(dev, "set extend sge parameters fail\n");
+		ibdev_err(&hr_dev->ib_dev, "set extend sge parameters fail\n");
 		return ret;
 	}
 
 	/* Get buf size, SQ and RQ are aligned to PAGE_SIZE */
 	page_size = 1 << (hr_dev->caps.mtt_buf_pg_sz + PAGE_SHIFT);
 	hr_qp->sq.offset = 0;
-	size = HNS_ROCE_ALOGN_UP(hr_qp->sq.wqe_cnt << hr_qp->sq.wqe_shift,
-				 page_size);
+	size = round_up(hr_qp->sq.wqe_cnt << hr_qp->sq.wqe_shift, page_size);
 
-	if (hr_dev->caps.max_sq_sg > 2 && hr_qp->sge.sge_cnt) {
+	if (hr_dev->hw_rev != HNS_ROCE_HW_VER1 && hr_qp->sge.sge_cnt) {
 		hr_qp->sge.sge_cnt = max(page_size/(1 << hr_qp->sge.sge_shift),
-					(u32)hr_qp->sge.sge_cnt);
+					 (u32)hr_qp->sge.sge_cnt);
 		hr_qp->sge.offset = size;
-		size += HNS_ROCE_ALOGN_UP(hr_qp->sge.sge_cnt <<
-					  hr_qp->sge.sge_shift, page_size);
+		size += round_up(hr_qp->sge.sge_cnt << hr_qp->sge.sge_shift,
+				 page_size);
 	}
 
 	hr_qp->rq.offset = size;
-	size += HNS_ROCE_ALOGN_UP((hr_qp->rq.wqe_cnt << hr_qp->rq.wqe_shift),
-				  page_size);
+	size += round_up((hr_qp->rq.wqe_cnt << hr_qp->rq.wqe_shift), page_size);
 	hr_qp->buff_size = size;
 
 	/* Get wr and sge number which send */
-	cap->max_send_wr = hr_qp->sq.max_post = hr_qp->sq.wqe_cnt;
+	cap->max_send_wr = hr_qp->sq.wqe_cnt;
 	cap->max_send_sge = hr_qp->sq.max_gs;
 
 	/* We don't support inline sends for kernel QPs (yet) */
@@ -679,336 +755,447 @@
 	kfree(hr_qp->rq_inl_buf.wqe_list);
 }
 
-static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev,
-				     struct ib_pd *ib_pd,
-				     struct ib_qp_init_attr *init_attr,
-				     struct ib_udata *udata, unsigned long sqpn,
-				     struct hns_roce_qp *hr_qp)
+static int map_wqe_buf(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+		       u32 page_shift, bool is_user)
 {
 	dma_addr_t *buf_list[ARRAY_SIZE(hr_qp->regions)] = { NULL };
-	struct device *dev = hr_dev->dev;
-	struct hns_roce_ib_create_qp ucmd;
-	struct hns_roce_ib_create_qp_resp resp = {};
-	struct hns_roce_ucontext *uctx = rdma_udata_to_drv_context(
-		udata, struct hns_roce_ucontext, ibucontext);
+	struct ib_device *ibdev = &hr_dev->ib_dev;
 	struct hns_roce_buf_region *r;
-	unsigned long qpn = 0;
-	u32 page_shift;
+	int region_count;
 	int buf_count;
 	int ret;
 	int i;
 
-	mutex_init(&hr_qp->mutex);
-	spin_lock_init(&hr_qp->sq.lock);
-	spin_lock_init(&hr_qp->rq.lock);
+	region_count = split_wqe_buf_region(hr_dev, hr_qp, hr_qp->regions,
+					ARRAY_SIZE(hr_qp->regions), page_shift);
 
-	hr_qp->state = IB_QPS_RESET;
-
-	hr_qp->ibqp.qp_type = init_attr->qp_type;
-
-	if (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR)
-		hr_qp->sq_signal_bits = IB_SIGNAL_ALL_WR;
-	else
-		hr_qp->sq_signal_bits = IB_SIGNAL_REQ_WR;
-
-	ret = hns_roce_set_rq_size(hr_dev, &init_attr->cap, udata,
-				   hns_roce_qp_has_rq(init_attr), hr_qp);
+	/* alloc a tmp list to store WQE buffers address */
+	ret = hns_roce_alloc_buf_list(hr_qp->regions, buf_list, region_count);
 	if (ret) {
-		dev_err(dev, "hns_roce_set_rq_size failed\n");
-		goto err_out;
+		ibdev_err(ibdev, "Failed to alloc WQE buffer list\n");
+		return ret;
 	}
 
-	if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) &&
-	    hns_roce_qp_has_rq(init_attr)) {
-		ret = alloc_rq_inline_buf(hr_qp, init_attr);
-		if (ret) {
-			dev_err(dev, "allocate receive inline buffer failed\n");
-			goto err_out;
+	for (i = 0; i < region_count; i++) {
+		r = &hr_qp->regions[i];
+		if (is_user)
+			buf_count = hns_roce_get_umem_bufs(hr_dev, buf_list[i],
+					r->count, r->offset, hr_qp->umem,
+					page_shift);
+		else
+			buf_count = hns_roce_get_kmem_bufs(hr_dev, buf_list[i],
+					r->count, r->offset, &hr_qp->hr_buf);
+
+		if (buf_count != r->count) {
+			ibdev_err(ibdev, "Failed to get %s WQE buf, expect %d = %d.\n",
+				  is_user ? "user" : "kernel",
+				  r->count, buf_count);
+			ret = -ENOBUFS;
+			goto done;
 		}
 	}
 
-	page_shift = PAGE_SHIFT + hr_dev->caps.mtt_buf_pg_sz;
-	if (udata) {
-		if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) {
-			dev_err(dev, "ib_copy_from_udata error for create qp\n");
-			ret = -EFAULT;
-			goto err_alloc_rq_inline_buf;
-		}
+	hr_qp->wqe_bt_pg_shift = calc_wqe_bt_page_shift(hr_dev, hr_qp->regions,
+							region_count);
+	hns_roce_mtr_init(&hr_qp->mtr, PAGE_SHIFT + hr_qp->wqe_bt_pg_shift,
+			  page_shift);
+	ret = hns_roce_mtr_attach(hr_dev, &hr_qp->mtr, buf_list, hr_qp->regions,
+				  region_count);
+	if (ret)
+		ibdev_err(ibdev, "Failed to attatch WQE's mtr\n");
+
+	goto done;
+
+	hns_roce_mtr_cleanup(hr_dev, &hr_qp->mtr);
+done:
+	hns_roce_free_buf_list(buf_list, region_count);
 
-		ret = hns_roce_set_user_sq_size(hr_dev, &init_attr->cap, hr_qp,
-						&ucmd);
+	return ret;
+}
+
+static int alloc_qp_buf(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+			struct ib_qp_init_attr *init_attr,
+			struct ib_udata *udata, unsigned long addr)
+{
+	u32 page_shift = PAGE_SHIFT + hr_dev->caps.mtt_buf_pg_sz;
+	struct ib_device *ibdev = &hr_dev->ib_dev;
+	bool is_rq_buf_inline;
+	int ret;
+
+	is_rq_buf_inline = (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) &&
+			   hns_roce_qp_has_rq(init_attr);
+	if (is_rq_buf_inline) {
+		ret = alloc_rq_inline_buf(hr_qp, init_attr);
 		if (ret) {
-			dev_err(dev, "hns_roce_set_user_sq_size error for create qp\n");
-			goto err_alloc_rq_inline_buf;
+			ibdev_err(ibdev, "Failed to alloc inline RQ buffer\n");
+			return ret;
 		}
+	}
 
-		hr_qp->umem = ib_umem_get(udata, ucmd.buf_addr,
-					  hr_qp->buff_size, 0, 0);
+	if (udata) {
+		hr_qp->umem = ib_umem_get(udata, addr, hr_qp->buff_size, 0);
 		if (IS_ERR(hr_qp->umem)) {
-			dev_err(dev, "ib_umem_get error for create qp\n");
 			ret = PTR_ERR(hr_qp->umem);
-			goto err_alloc_rq_inline_buf;
-		}
-		hr_qp->region_cnt = split_wqe_buf_region(hr_dev, hr_qp,
-				hr_qp->regions, ARRAY_SIZE(hr_qp->regions),
-				page_shift);
-		ret = hns_roce_alloc_buf_list(hr_qp->regions, buf_list,
-					      hr_qp->region_cnt);
-		if (ret) {
-			dev_err(dev, "alloc buf_list error for create qp\n");
-			goto err_alloc_list;
+			goto err_inline;
 		}
+	} else {
+		ret = hns_roce_buf_alloc(hr_dev, hr_qp->buff_size,
+					 (1 << page_shift) * 2,
+					 &hr_qp->hr_buf, page_shift);
+		if (ret)
+			goto err_inline;
+	}
 
-		for (i = 0; i < hr_qp->region_cnt; i++) {
-			r = &hr_qp->regions[i];
-			buf_count = hns_roce_get_umem_bufs(hr_dev,
-					buf_list[i], r->count, r->offset,
-					hr_qp->umem, page_shift);
-			if (buf_count != r->count) {
-				dev_err(dev,
-					"get umem buf err, expect %d,ret %d.\n",
-					r->count, buf_count);
-				ret = -ENOBUFS;
-				goto err_get_bufs;
-			}
-		}
+	ret = map_wqe_buf(hr_dev, hr_qp, page_shift, udata);
+	if (ret)
+		goto err_alloc;
+
+	return 0;
+
+err_inline:
+	if (is_rq_buf_inline)
+		free_rq_inline_buf(hr_qp);
+
+err_alloc:
+	if (udata) {
+		ib_umem_release(hr_qp->umem);
+		hr_qp->umem = NULL;
+	} else {
+		hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf);
+	}
 
-		if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SQ_RECORD_DB) &&
-		    (udata->inlen >= sizeof(ucmd)) &&
-		    (udata->outlen >= sizeof(resp)) &&
-		    hns_roce_qp_has_sq(init_attr)) {
-			ret = hns_roce_db_map_user(uctx, udata, ucmd.sdb_addr,
+	ibdev_err(ibdev, "Failed to alloc WQE buffer, ret %d.\n", ret);
+
+	return ret;
+}
+
+static void free_qp_buf(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
+{
+	hns_roce_mtr_cleanup(hr_dev, &hr_qp->mtr);
+	if (hr_qp->umem) {
+		ib_umem_release(hr_qp->umem);
+		hr_qp->umem = NULL;
+	}
+
+	if (hr_qp->hr_buf.nbufs > 0)
+		hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf);
+
+	if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) &&
+	     hr_qp->rq.wqe_cnt)
+		free_rq_inline_buf(hr_qp);
+}
+
+static inline bool user_qp_has_sdb(struct hns_roce_dev *hr_dev,
+				   struct ib_qp_init_attr *init_attr,
+				   struct ib_udata *udata,
+				   struct hns_roce_ib_create_qp_resp *resp,
+				   struct hns_roce_ib_create_qp *ucmd)
+{
+	return ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SQ_RECORD_DB) &&
+		udata->outlen >= offsetofend(typeof(*resp), cap_flags) &&
+		hns_roce_qp_has_sq(init_attr) &&
+		udata->inlen >= offsetofend(typeof(*ucmd), sdb_addr));
+}
+
+static inline bool user_qp_has_rdb(struct hns_roce_dev *hr_dev,
+				   struct ib_qp_init_attr *init_attr,
+				   struct ib_udata *udata,
+				   struct hns_roce_ib_create_qp_resp *resp)
+{
+	return ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB) &&
+		udata->outlen >= offsetofend(typeof(*resp), cap_flags) &&
+		hns_roce_qp_has_rq(init_attr));
+}
+
+static inline bool kernel_qp_has_rdb(struct hns_roce_dev *hr_dev,
+				     struct ib_qp_init_attr *init_attr)
+{
+	return ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB) &&
+		hns_roce_qp_has_rq(init_attr));
+}
+
+static int alloc_qp_db(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+		       struct ib_qp_init_attr *init_attr,
+		       struct ib_udata *udata,
+		       struct hns_roce_ib_create_qp *ucmd,
+		       struct hns_roce_ib_create_qp_resp *resp)
+{
+	struct hns_roce_ucontext *uctx = rdma_udata_to_drv_context(
+		udata, struct hns_roce_ucontext, ibucontext);
+	struct ib_device *ibdev = &hr_dev->ib_dev;
+	int ret;
+
+	if (udata) {
+		if (user_qp_has_sdb(hr_dev, init_attr, udata, resp, ucmd)) {
+			ret = hns_roce_db_map_user(uctx, udata, ucmd->sdb_addr,
 						   &hr_qp->sdb);
 			if (ret) {
-				dev_err(dev, "sq record doorbell map failed!\n");
-				goto err_get_bufs;
+				ibdev_err(ibdev,
+					  "Failed to map user SQ doorbell\n");
+				goto err_out;
 			}
-
-			/* indicate kernel supports sq record db */
-			resp.cap_flags |= HNS_ROCE_SUPPORT_SQ_RECORD_DB;
 			hr_qp->sdb_en = 1;
+			resp->cap_flags |= HNS_ROCE_SUPPORT_SQ_RECORD_DB;
 		}
 
-		if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB) &&
-		    (udata->outlen >= sizeof(resp)) &&
-		    hns_roce_qp_has_rq(init_attr)) {
-			ret = hns_roce_db_map_user(uctx, udata, ucmd.db_addr,
+		if (user_qp_has_rdb(hr_dev, init_attr, udata, resp)) {
+			ret = hns_roce_db_map_user(uctx, udata, ucmd->db_addr,
 						   &hr_qp->rdb);
 			if (ret) {
-				dev_err(dev, "rq record doorbell map failed!\n");
-				goto err_sq_dbmap;
+				ibdev_err(ibdev,
+					  "Failed to map user RQ doorbell\n");
+				goto err_sdb;
 			}
-
-			/* indicate kernel supports rq record db */
-			resp.cap_flags |= HNS_ROCE_SUPPORT_RQ_RECORD_DB;
 			hr_qp->rdb_en = 1;
+			resp->cap_flags |= HNS_ROCE_SUPPORT_RQ_RECORD_DB;
 		}
 	} else {
-		if (init_attr->create_flags &
-		    IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK) {
-			dev_err(dev, "init_attr->create_flags error!\n");
-			ret = -EINVAL;
-			goto err_alloc_rq_inline_buf;
-		}
-
-		if (init_attr->create_flags & IB_QP_CREATE_IPOIB_UD_LSO) {
-			dev_err(dev, "init_attr->create_flags error!\n");
-			ret = -EINVAL;
-			goto err_alloc_rq_inline_buf;
-		}
-
-		/* Set SQ size */
-		ret = hns_roce_set_kernel_sq_size(hr_dev, &init_attr->cap,
-						  hr_qp);
-		if (ret) {
-			dev_err(dev, "hns_roce_set_kernel_sq_size error!\n");
-			goto err_alloc_rq_inline_buf;
-		}
-
 		/* QP doorbell register address */
 		hr_qp->sq.db_reg_l = hr_dev->reg_base + hr_dev->sdb_offset +
 				     DB_REG_OFFSET * hr_dev->priv_uar.index;
 		hr_qp->rq.db_reg_l = hr_dev->reg_base + hr_dev->odb_offset +
 				     DB_REG_OFFSET * hr_dev->priv_uar.index;
 
-		if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB) &&
-		    hns_roce_qp_has_rq(init_attr)) {
+		if (kernel_qp_has_rdb(hr_dev, init_attr)) {
 			ret = hns_roce_alloc_db(hr_dev, &hr_qp->rdb, 0);
 			if (ret) {
-				dev_err(dev, "rq record doorbell alloc failed!\n");
-				goto err_alloc_rq_inline_buf;
+				ibdev_err(ibdev,
+					  "Failed to alloc kernel RQ doorbell\n");
+				goto err_out;
 			}
 			*hr_qp->rdb.db_record = 0;
 			hr_qp->rdb_en = 1;
 		}
+	}
 
-		/* Allocate QP buf */
-		if (hns_roce_buf_alloc(hr_dev, hr_qp->buff_size,
-				       (1 << page_shift) * 2,
-				       &hr_qp->hr_buf, page_shift)) {
-			dev_err(dev, "hns_roce_buf_alloc error!\n");
+	return 0;
+err_sdb:
+	if (udata && hr_qp->sdb_en)
+		hns_roce_db_unmap_user(uctx, &hr_qp->sdb);
+err_out:
+	return ret;
+}
+
+static void free_qp_db(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+		       struct ib_udata *udata)
+{
+	struct hns_roce_ucontext *uctx = rdma_udata_to_drv_context(
+		udata, struct hns_roce_ucontext, ibucontext);
+
+	if (udata) {
+		if (hr_qp->rdb_en)
+			hns_roce_db_unmap_user(uctx, &hr_qp->rdb);
+		if (hr_qp->sdb_en)
+			hns_roce_db_unmap_user(uctx, &hr_qp->sdb);
+	} else {
+		if (hr_qp->rdb_en)
+			hns_roce_free_db(hr_dev, &hr_qp->rdb);
+	}
+}
+
+static int alloc_kernel_wrid(struct hns_roce_dev *hr_dev,
+			     struct hns_roce_qp *hr_qp)
+{
+	struct ib_device *ibdev = &hr_dev->ib_dev;
+	u64 *sq_wrid = NULL;
+	u64 *rq_wrid = NULL;
+	int ret;
+
+	sq_wrid = kcalloc(hr_qp->sq.wqe_cnt, sizeof(u64), GFP_KERNEL);
+	if (ZERO_OR_NULL_PTR(sq_wrid)) {
+		ibdev_err(ibdev, "Failed to alloc SQ wrid\n");
+		return -ENOMEM;
+	}
+
+	if (hr_qp->rq.wqe_cnt) {
+		rq_wrid = kcalloc(hr_qp->rq.wqe_cnt, sizeof(u64), GFP_KERNEL);
+		if (ZERO_OR_NULL_PTR(rq_wrid)) {
+			ibdev_err(ibdev, "Failed to alloc RQ wrid\n");
 			ret = -ENOMEM;
-			goto err_db;
-		}
-		hr_qp->region_cnt = split_wqe_buf_region(hr_dev, hr_qp,
-				hr_qp->regions, ARRAY_SIZE(hr_qp->regions),
-				page_shift);
-		ret = hns_roce_alloc_buf_list(hr_qp->regions, buf_list,
-					      hr_qp->region_cnt);
-		if (ret) {
-			dev_err(dev, "alloc buf_list error for create qp!\n");
-			goto err_alloc_list;
+			goto err_sq;
 		}
+	}
 
-		for (i = 0; i < hr_qp->region_cnt; i++) {
-			r = &hr_qp->regions[i];
-			buf_count = hns_roce_get_kmem_bufs(hr_dev,
-					buf_list[i], r->count, r->offset,
-					&hr_qp->hr_buf);
-			if (buf_count != r->count) {
-				dev_err(dev,
-					"get kmem buf err, expect %d,ret %d.\n",
-					r->count, buf_count);
-				ret = -ENOBUFS;
-				goto err_get_bufs;
-			}
+	hr_qp->sq.wrid = sq_wrid;
+	hr_qp->rq.wrid = rq_wrid;
+	return 0;
+err_sq:
+	kfree(sq_wrid);
+
+	return ret;
+}
+
+static void free_kernel_wrid(struct hns_roce_dev *hr_dev,
+			     struct hns_roce_qp *hr_qp)
+{
+	kfree(hr_qp->rq.wrid);
+	kfree(hr_qp->sq.wrid);
+}
+
+static int set_qp_param(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+			struct ib_qp_init_attr *init_attr,
+			struct ib_udata *udata,
+			struct hns_roce_ib_create_qp *ucmd)
+{
+	struct ib_device *ibdev = &hr_dev->ib_dev;
+	int ret;
+
+	hr_qp->ibqp.qp_type = init_attr->qp_type;
+
+	if (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR)
+		hr_qp->sq_signal_bits = IB_SIGNAL_ALL_WR;
+	else
+		hr_qp->sq_signal_bits = IB_SIGNAL_REQ_WR;
+
+	ret = set_rq_size(hr_dev, &init_attr->cap, udata,
+			  hns_roce_qp_has_rq(init_attr), hr_qp);
+	if (ret) {
+		ibdev_err(ibdev, "Failed to set user RQ size\n");
+		return ret;
+	}
+
+	if (udata) {
+		if (ib_copy_from_udata(ucmd, udata, sizeof(*ucmd))) {
+			ibdev_err(ibdev, "Failed to copy QP ucmd\n");
+			return -EFAULT;
 		}
 
-		hr_qp->sq.wrid = kcalloc(hr_qp->sq.wqe_cnt, sizeof(u64),
-					 GFP_KERNEL);
-		if (ZERO_OR_NULL_PTR(hr_qp->sq.wrid)) {
-			ret = -ENOMEM;
-			goto err_get_bufs;
+		ret = set_user_sq_size(hr_dev, &init_attr->cap, hr_qp, ucmd);
+		if (ret)
+			ibdev_err(ibdev, "Failed to set user SQ size\n");
+	} else {
+		if (init_attr->create_flags &
+		    IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK) {
+			ibdev_err(ibdev, "Failed to check multicast loopback\n");
+			return -EINVAL;
 		}
 
-		if (hr_qp->rq.wqe_cnt) {
-			hr_qp->rq.wrid = kcalloc(hr_qp->rq.wqe_cnt, sizeof(u64),
-						 GFP_KERNEL);
-			if (ZERO_OR_NULL_PTR(hr_qp->rq.wrid)) {
-				ret = -ENOMEM;
-				goto err_sq_wrid;
-			}
+		if (init_attr->create_flags & IB_QP_CREATE_IPOIB_UD_LSO) {
+			ibdev_err(ibdev, "Failed to check ipoib ud lso\n");
+			return -EINVAL;
 		}
+
+		ret = set_kernel_sq_size(hr_dev, &init_attr->cap, hr_qp);
+		if (ret)
+			ibdev_err(ibdev, "Failed to set kernel SQ size\n");
 	}
 
-	if (sqpn) {
-		qpn = sqpn;
-	} else {
-		/* Get QPN */
-		ret = hns_roce_reserve_range_qp(hr_dev, 1, 1, &qpn);
+	return ret;
+}
+
+static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev,
+				     struct ib_pd *ib_pd,
+				     struct ib_qp_init_attr *init_attr,
+				     struct ib_udata *udata,
+				     struct hns_roce_qp *hr_qp)
+{
+	struct hns_roce_ib_create_qp_resp resp = {};
+	struct ib_device *ibdev = &hr_dev->ib_dev;
+	struct hns_roce_ib_create_qp ucmd;
+	int ret;
+
+	mutex_init(&hr_qp->mutex);
+	spin_lock_init(&hr_qp->sq.lock);
+	spin_lock_init(&hr_qp->rq.lock);
+
+	hr_qp->state = IB_QPS_RESET;
+	hr_qp->flush_flag = 0;
+
+	ret = set_qp_param(hr_dev, hr_qp, init_attr, udata, &ucmd);
+	if (ret) {
+		ibdev_err(ibdev, "Failed to set QP param\n");
+		return ret;
+	}
+
+	if (!udata) {
+		ret = alloc_kernel_wrid(hr_dev, hr_qp);
 		if (ret) {
-			dev_err(dev, "hns_roce_reserve_range_qp alloc qpn error\n");
-			goto err_wrid;
+			ibdev_err(ibdev, "Failed to alloc wrid\n");
+			return ret;
 		}
 	}
 
-	hr_qp->wqe_bt_pg_shift = calc_wqe_bt_page_shift(hr_dev, hr_qp->regions,
-							hr_qp->region_cnt);
-	hns_roce_mtr_init(&hr_qp->mtr, PAGE_SHIFT + hr_qp->wqe_bt_pg_shift,
-			  page_shift);
-	ret = hns_roce_mtr_attach(hr_dev, &hr_qp->mtr, buf_list,
-				  hr_qp->regions, hr_qp->region_cnt);
+	ret = alloc_qp_db(hr_dev, hr_qp, init_attr, udata, &ucmd, &resp);
 	if (ret) {
-		dev_err(dev, "mtr attach error for create qp\n");
-		goto err_mtr;
+		ibdev_err(ibdev, "Failed to alloc QP doorbell\n");
+		goto err_wrid;
 	}
 
-	if (init_attr->qp_type == IB_QPT_GSI &&
-	    hr_dev->hw_rev == HNS_ROCE_HW_VER1) {
-		/* In v1 engine, GSI QP context in RoCE engine's register */
-		ret = hns_roce_gsi_qp_alloc(hr_dev, qpn, hr_qp);
-		if (ret) {
-			dev_err(dev, "hns_roce_qp_alloc failed!\n");
-			goto err_qpn;
-		}
-	} else {
-		ret = hns_roce_qp_alloc(hr_dev, qpn, hr_qp);
-		if (ret) {
-			dev_err(dev, "hns_roce_qp_alloc failed!\n");
-			goto err_qpn;
-		}
+	ret = alloc_qp_buf(hr_dev, hr_qp, init_attr, udata, ucmd.buf_addr);
+	if (ret) {
+		ibdev_err(ibdev, "Failed to alloc QP buffer\n");
+		goto err_db;
 	}
 
-	if (sqpn)
-		hr_qp->doorbell_qpn = 1;
-	else
-		hr_qp->doorbell_qpn = (u32)hr_qp->qpn;
+	ret = alloc_qpn(hr_dev, hr_qp);
+	if (ret) {
+		ibdev_err(ibdev, "Failed to alloc QPN\n");
+		goto err_buf;
+	}
+
+	ret = alloc_qpc(hr_dev, hr_qp);
+	if (ret) {
+		ibdev_err(ibdev, "Failed to alloc QP context\n");
+		goto err_qpn;
+	}
+
+	ret = hns_roce_qp_store(hr_dev, hr_qp, init_attr);
+	if (ret) {
+		ibdev_err(ibdev, "Failed to store QP\n");
+		goto err_qpc;
+	}
 
 	if (udata) {
 		ret = ib_copy_to_udata(udata, &resp,
 				       min(udata->outlen, sizeof(resp)));
-		if (ret)
-			goto err_qp;
+		if (ret) {
+			ibdev_err(ibdev, "copy qp resp failed!\n");
+			goto err_store;
+		}
 	}
 
 	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL) {
 		ret = hr_dev->hw->qp_flow_control_init(hr_dev, hr_qp);
 		if (ret)
-			goto err_qp;
+			goto err_store;
 	}
 
+	hr_qp->ibqp.qp_num = hr_qp->qpn;
 	hr_qp->event = hns_roce_ib_qp_event;
-	hns_roce_free_buf_list(buf_list, hr_qp->region_cnt);
+	atomic_set(&hr_qp->refcount, 1);
+	init_completion(&hr_qp->free);
 
 	return 0;
 
-err_qp:
-	if (init_attr->qp_type == IB_QPT_GSI &&
-		hr_dev->hw_rev == HNS_ROCE_HW_VER1)
-		hns_roce_qp_remove(hr_dev, hr_qp);
-	else
-		hns_roce_qp_free(hr_dev, hr_qp);
-
+err_store:
+	hns_roce_qp_remove(hr_dev, hr_qp);
+err_qpc:
+	free_qpc(hr_dev, hr_qp);
 err_qpn:
-	if (!sqpn)
-		hns_roce_release_range_qp(hr_dev, qpn, 1);
-
-err_mtr:
-	hns_roce_mtr_cleanup(hr_dev, &hr_qp->mtr);
-
+	free_qpn(hr_dev, hr_qp);
+err_buf:
+	free_qp_buf(hr_dev, hr_qp);
+err_db:
+	free_qp_db(hr_dev, hr_qp, udata);
 err_wrid:
-	if (udata) {
-		if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB) &&
-		    (udata->outlen >= sizeof(resp)) &&
-		    hns_roce_qp_has_rq(init_attr))
-			hns_roce_db_unmap_user(uctx, &hr_qp->rdb);
-	} else {
-		if (hr_qp->rq.wqe_cnt)
-			kfree(hr_qp->rq.wrid);
-	}
-
-err_sq_dbmap:
-	if (udata)
-		if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SQ_RECORD_DB) &&
-		    (udata->inlen >= sizeof(ucmd)) &&
-		    (udata->outlen >= sizeof(resp)) &&
-		    hns_roce_qp_has_sq(init_attr))
-			hns_roce_db_unmap_user(uctx, &hr_qp->sdb);
-
-err_sq_wrid:
-	if (!udata)
-		kfree(hr_qp->sq.wrid);
-
-err_get_bufs:
-	hns_roce_free_buf_list(buf_list, hr_qp->region_cnt);
-
-err_alloc_list:
-	if (!hr_qp->umem)
-		hns_roce_buf_free(hr_dev, hr_qp->buff_size, &hr_qp->hr_buf);
-	ib_umem_release(hr_qp->umem);
+	free_kernel_wrid(hr_dev, hr_qp);
+	return ret;
+}
 
-err_db:
-	if (!udata && hns_roce_qp_has_rq(init_attr) &&
-	    (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RECORD_DB))
-		hns_roce_free_db(hr_dev, &hr_qp->rdb);
+void hns_roce_qp_destroy(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp,
+			 struct ib_udata *udata)
+{
+	if (atomic_dec_and_test(&hr_qp->refcount))
+		complete(&hr_qp->free);
+	wait_for_completion(&hr_qp->free);
 
-err_alloc_rq_inline_buf:
-	if ((hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE) &&
-	     hns_roce_qp_has_rq(init_attr))
-		free_rq_inline_buf(hr_qp);
+	free_qpc(hr_dev, hr_qp);
+	free_qpn(hr_dev, hr_qp);
+	free_qp_buf(hr_dev, hr_qp);
+	free_kernel_wrid(hr_dev, hr_qp);
+	free_qp_db(hr_dev, hr_qp, udata);
 
-err_out:
-	return ret;
+	kfree(hr_qp);
 }
 
 struct ib_qp *hns_roce_create_qp(struct ib_pd *pd,
@@ -1017,7 +1204,6 @@
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(pd->device);
 	struct ib_device *ibdev = &hr_dev->ib_dev;
-	struct hns_roce_sqp *hr_sqp;
 	struct hns_roce_qp *hr_qp;
 	int ret;
 
@@ -1027,17 +1213,15 @@
 		if (!hr_qp)
 			return ERR_PTR(-ENOMEM);
 
-		ret = hns_roce_create_qp_common(hr_dev, pd, init_attr, udata, 0,
+		ret = hns_roce_create_qp_common(hr_dev, pd, init_attr, udata,
 						hr_qp);
 		if (ret) {
-			ibdev_err(ibdev, "Create RC QP 0x%06lx failed(%d)\n",
+			ibdev_err(ibdev, "Create QP 0x%06lx failed(%d)\n",
 				  hr_qp->qpn, ret);
 			kfree(hr_qp);
 			return ERR_PTR(ret);
 		}
 
-		hr_qp->ibqp.qp_num = hr_qp->qpn;
-
 		break;
 	}
 	case IB_QPT_GSI: {
@@ -1047,26 +1231,18 @@
 			return ERR_PTR(-EINVAL);
 		}
 
-		hr_sqp = kzalloc(sizeof(*hr_sqp), GFP_KERNEL);
-		if (!hr_sqp)
+		hr_qp = kzalloc(sizeof(*hr_qp), GFP_KERNEL);
+		if (!hr_qp)
 			return ERR_PTR(-ENOMEM);
 
-		hr_qp = &hr_sqp->hr_qp;
 		hr_qp->port = init_attr->port_num - 1;
 		hr_qp->phy_port = hr_dev->iboe.phy_port[hr_qp->port];
 
-		/* when hw version is v1, the sqpn is allocated */
-		if (hr_dev->caps.max_sq_sg <= 2)
-			hr_qp->ibqp.qp_num = HNS_ROCE_MAX_PORTS +
-					     hr_dev->iboe.phy_port[hr_qp->port];
-		else
-			hr_qp->ibqp.qp_num = 1;
-
 		ret = hns_roce_create_qp_common(hr_dev, pd, init_attr, udata,
-						hr_qp->ibqp.qp_num, hr_qp);
+						hr_qp);
 		if (ret) {
 			ibdev_err(ibdev, "Create GSI QP failed!\n");
-			kfree(hr_sqp);
+			kfree(hr_qp);
 			return ERR_PTR(ret);
 		}
 
@@ -1179,8 +1355,10 @@
 
 	mutex_lock(&hr_qp->mutex);
 
-	cur_state = attr_mask & IB_QP_CUR_STATE ?
-		    attr->cur_qp_state : (enum ib_qp_state)hr_qp->state;
+	if (attr_mask & IB_QP_CUR_STATE && attr->cur_qp_state != hr_qp->state)
+		goto out;
+
+	cur_state = hr_qp->state;
 	new_state = attr_mask & IB_QP_STATE ? attr->qp_state : cur_state;
 
 	if (ibqp->uobject &&
@@ -1208,11 +1386,10 @@
 		goto out;
 
 	if (cur_state == new_state && cur_state == IB_QPS_RESET) {
-		if (hr_dev->caps.min_wqes) {
+		if (hr_dev->hw_rev == HNS_ROCE_HW_VER1) {
 			ret = -EPERM;
 			ibdev_err(&hr_dev->ib_dev,
-				"cur_state=%d new_state=%d\n", cur_state,
-				new_state);
+				  "RST2RST state is not supported\n");
 		} else {
 			ret = 0;
 		}
@@ -1232,7 +1409,16 @@
 void hns_roce_lock_cqs(struct hns_roce_cq *send_cq, struct hns_roce_cq *recv_cq)
 		       __acquires(&send_cq->lock) __acquires(&recv_cq->lock)
 {
-	if (send_cq == recv_cq) {
+	if (unlikely(send_cq == NULL && recv_cq == NULL)) {
+		__acquire(&send_cq->lock);
+		__acquire(&recv_cq->lock);
+	} else if (unlikely(send_cq != NULL && recv_cq == NULL)) {
+		spin_lock_irq(&send_cq->lock);
+		__acquire(&recv_cq->lock);
+	} else if (unlikely(send_cq == NULL && recv_cq != NULL)) {
+		spin_lock_irq(&recv_cq->lock);
+		__acquire(&send_cq->lock);
+	} else if (send_cq == recv_cq) {
 		spin_lock_irq(&send_cq->lock);
 		__acquire(&recv_cq->lock);
 	} else if (send_cq->cqn < recv_cq->cqn) {
@@ -1248,7 +1434,16 @@
 			 struct hns_roce_cq *recv_cq) __releases(&send_cq->lock)
 			 __releases(&recv_cq->lock)
 {
-	if (send_cq == recv_cq) {
+	if (unlikely(send_cq == NULL && recv_cq == NULL)) {
+		__release(&recv_cq->lock);
+		__release(&send_cq->lock);
+	} else if (unlikely(send_cq != NULL && recv_cq == NULL)) {
+		__release(&recv_cq->lock);
+		spin_unlock(&send_cq->lock);
+	} else if (unlikely(send_cq == NULL && recv_cq != NULL)) {
+		__release(&send_cq->lock);
+		spin_unlock(&recv_cq->lock);
+	} else if (send_cq == recv_cq) {
 		__release(&recv_cq->lock);
 		spin_unlock_irq(&send_cq->lock);
 	} else if (send_cq->cqn < recv_cq->cqn) {
@@ -1289,7 +1484,7 @@
 	u32 cur;
 
 	cur = hr_wq->head - hr_wq->tail;
-	if (likely(cur + nreq < hr_wq->max_post))
+	if (likely(cur + nreq < hr_wq->wqe_cnt))
 		return false;
 
 	hr_cq = to_hr_cq(ib_cq);
@@ -1297,7 +1492,7 @@
 	cur = hr_wq->head - hr_wq->tail;
 	spin_unlock(&hr_cq->lock);
 
-	return cur + nreq >= hr_wq->max_post;
+	return cur + nreq >= hr_wq->wqe_cnt;
 }
 
 int hns_roce_init_qp_table(struct hns_roce_dev *hr_dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_restrack.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_restrack.c
@@ -95,14 +95,18 @@
 
 	ret = hr_dev->dfx->query_cqc_info(hr_dev, hr_cq->cqn, (int *)context);
 	if (ret)
-		goto err;
+		return -EINVAL;
 
 	table_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_DRIVER);
-	if (!table_attr)
+	if (!table_attr) {
+		ret = -EMSGSIZE;
 		goto err;
+	}
 
-	if (hns_roce_fill_cq(msg, context))
+	if (hns_roce_fill_cq(msg, context)) {
+		ret = -EMSGSIZE;
 		goto err_cancel_table;
+	}
 
 	nla_nest_end(msg, table_attr);
 	kfree(context);
@@ -113,7 +117,7 @@
 	nla_nest_cancel(msg, table_attr);
 err:
 	kfree(context);
-	return -EMSGSIZE;
+	return ret;
 }
 
 int hns_roce_fill_res_entry(struct sk_buff *msg,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_srq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/hns/hns_roce_srq.c
@@ -59,21 +59,21 @@
 	}
 }
 
-static int hns_roce_sw2hw_srq(struct hns_roce_dev *dev,
-			      struct hns_roce_cmd_mailbox *mailbox,
-			      unsigned long srq_num)
+static int hns_roce_hw_create_srq(struct hns_roce_dev *dev,
+				  struct hns_roce_cmd_mailbox *mailbox,
+				  unsigned long srq_num)
 {
 	return hns_roce_cmd_mbox(dev, mailbox->dma, 0, srq_num, 0,
-				 HNS_ROCE_CMD_SW2HW_SRQ,
+				 HNS_ROCE_CMD_CREATE_SRQ,
 				 HNS_ROCE_CMD_TIMEOUT_MSECS);
 }
 
-static int hns_roce_hw2sw_srq(struct hns_roce_dev *dev,
-			     struct hns_roce_cmd_mailbox *mailbox,
-			     unsigned long srq_num)
+static int hns_roce_hw_destroy_srq(struct hns_roce_dev *dev,
+				   struct hns_roce_cmd_mailbox *mailbox,
+				   unsigned long srq_num)
 {
 	return hns_roce_cmd_mbox(dev, 0, mailbox ? mailbox->dma : 0, srq_num,
-				 mailbox ? 0 : 1, HNS_ROCE_CMD_HW2SW_SRQ,
+				 mailbox ? 0 : 1, HNS_ROCE_CMD_DESTROY_SRQ,
 				 HNS_ROCE_CMD_TIMEOUT_MSECS);
 }
 
@@ -95,8 +95,7 @@
 				       srq->mtt.first_seg,
 				       &dma_handle_wqe);
 	if (!mtts_wqe) {
-		dev_err(hr_dev->dev,
-			"SRQ alloc.Failed to find srq buf addr.\n");
+		dev_err(hr_dev->dev, "Failed to find mtt for srq buf.\n");
 		return -EINVAL;
 	}
 
@@ -106,13 +105,14 @@
 				       &dma_handle_idx);
 	if (!mtts_idx) {
 		dev_err(hr_dev->dev,
-			"SRQ alloc.Failed to find idx que buf addr.\n");
+			"Failed to find mtt for srq idx queue buf.\n");
 		return -EINVAL;
 	}
 
 	ret = hns_roce_bitmap_alloc(&srq_table->bitmap, &srq->srqn);
-	if (ret == -1) {
-		dev_err(hr_dev->dev, "SRQ alloc.Failed to alloc index.\n");
+	if (ret) {
+		dev_err(hr_dev->dev,
+			"Failed to alloc a bit from srq bitmap.\n");
 		return -ENOMEM;
 	}
 
@@ -134,7 +134,7 @@
 			       mtts_wqe, mtts_idx, dma_handle_wqe,
 			       dma_handle_idx);
 
-	ret = hns_roce_sw2hw_srq(hr_dev, mailbox, srq->srqn);
+	ret = hns_roce_hw_create_srq(hr_dev, mailbox, srq->srqn);
 	hns_roce_free_cmd_mailbox(hr_dev, mailbox);
 	if (ret)
 		goto err_xa;
@@ -160,9 +160,9 @@
 	struct hns_roce_srq_table *srq_table = &hr_dev->srq_table;
 	int ret;
 
-	ret = hns_roce_hw2sw_srq(hr_dev, NULL, srq->srqn);
+	ret = hns_roce_hw_destroy_srq(hr_dev, NULL, srq->srqn);
 	if (ret)
-		dev_err(hr_dev->dev, "HW2SW_SRQ failed (%d) for CQN %06lx\n",
+		dev_err(hr_dev->dev, "DESTROY_SRQ failed (%d) for SRQN %06lx\n",
 			ret, srq->srqn);
 
 	xa_erase(&srq_table->xa, srq->srqn);
@@ -180,22 +180,23 @@
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(srq->ibsrq.device);
 	struct hns_roce_ib_create_srq  ucmd;
-	u32 page_shift;
-	u32 npages;
+	struct hns_roce_buf *buf;
 	int ret;
 
 	if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd)))
 		return -EFAULT;
 
-	srq->umem = ib_umem_get(udata, ucmd.buf_addr, srq_buf_size, 0, 0);
+	srq->umem = ib_umem_get(udata, ucmd.buf_addr, srq_buf_size, 0);
 	if (IS_ERR(srq->umem))
 		return PTR_ERR(srq->umem);
 
-	npages = (ib_umem_page_count(srq->umem) +
-		(1 << hr_dev->caps.srqwqe_buf_pg_sz) - 1) /
-		(1 << hr_dev->caps.srqwqe_buf_pg_sz);
-	page_shift = PAGE_SHIFT + hr_dev->caps.srqwqe_buf_pg_sz;
-	ret = hns_roce_mtt_init(hr_dev, npages, page_shift, &srq->mtt);
+	buf = &srq->buf;
+	buf->npages = (ib_umem_page_count(srq->umem) +
+		       (1 << hr_dev->caps.srqwqe_buf_pg_sz) - 1) /
+		      (1 << hr_dev->caps.srqwqe_buf_pg_sz);
+	buf->page_shift = PAGE_SHIFT + hr_dev->caps.srqwqe_buf_pg_sz;
+	ret = hns_roce_mtt_init(hr_dev, buf->npages, buf->page_shift,
+				&srq->mtt);
 	if (ret)
 		goto err_user_buf;
 
@@ -205,16 +206,19 @@
 
 	/* config index queue BA */
 	srq->idx_que.umem = ib_umem_get(udata, ucmd.que_addr,
-					srq->idx_que.buf_size, 0, 0);
+					srq->idx_que.buf_size, 0);
 	if (IS_ERR(srq->idx_que.umem)) {
 		dev_err(hr_dev->dev, "ib_umem_get error for index queue\n");
 		ret = PTR_ERR(srq->idx_que.umem);
 		goto err_user_srq_mtt;
 	}
 
-	ret = hns_roce_mtt_init(hr_dev, ib_umem_page_count(srq->idx_que.umem),
-				PAGE_SHIFT, &srq->idx_que.mtt);
-
+	buf = &srq->idx_que.idx_buf;
+	buf->npages = DIV_ROUND_UP(ib_umem_page_count(srq->idx_que.umem),
+				   1 << hr_dev->caps.idx_buf_pg_sz);
+	buf->page_shift = PAGE_SHIFT + hr_dev->caps.idx_buf_pg_sz;
+	ret = hns_roce_mtt_init(hr_dev, buf->npages, buf->page_shift,
+				&srq->idx_que.mtt);
 	if (ret) {
 		dev_err(hr_dev->dev, "hns_roce_mtt_init error for idx que\n");
 		goto err_user_idx_mtt;
@@ -251,7 +255,7 @@
 	struct hns_roce_dev *hr_dev = to_hr_dev(pd->device);
 	struct hns_roce_idx_que *idx_que = &srq->idx_que;
 
-	idx_que->bitmap = bitmap_zalloc(srq->max, GFP_KERNEL);
+	idx_que->bitmap = bitmap_zalloc(srq->wqe_cnt, GFP_KERNEL);
 	if (!idx_que->bitmap)
 		return -ENOMEM;
 
@@ -277,7 +281,7 @@
 		return -ENOMEM;
 
 	srq->head = 0;
-	srq->tail = srq->max - 1;
+	srq->tail = srq->wqe_cnt - 1;
 
 	ret = hns_roce_mtt_init(hr_dev, srq->buf.npages, srq->buf.page_shift,
 				&srq->mtt);
@@ -308,7 +312,7 @@
 	if (ret)
 		goto err_kernel_idx_buf;
 
-	srq->wrid = kvmalloc_array(srq->max, sizeof(u64), GFP_KERNEL);
+	srq->wrid = kvmalloc_array(srq->wqe_cnt, sizeof(u64), GFP_KERNEL);
 	if (!srq->wrid) {
 		ret = -ENOMEM;
 		goto err_kernel_idx_buf;
@@ -354,7 +358,7 @@
 }
 
 int hns_roce_create_srq(struct ib_srq *ib_srq,
-			struct ib_srq_init_attr *srq_init_attr,
+			struct ib_srq_init_attr *init_attr,
 			struct ib_udata *udata)
 {
 	struct hns_roce_dev *hr_dev = to_hr_dev(ib_srq->device);
@@ -366,24 +370,25 @@
 	u32 cqn;
 
 	/* Check the actual SRQ wqe and SRQ sge num */
-	if (srq_init_attr->attr.max_wr >= hr_dev->caps.max_srq_wrs ||
-	    srq_init_attr->attr.max_sge > hr_dev->caps.max_srq_sges)
+	if (init_attr->attr.max_wr >= hr_dev->caps.max_srq_wrs ||
+	    init_attr->attr.max_sge > hr_dev->caps.max_srq_sges)
 		return -EINVAL;
 
 	mutex_init(&srq->mutex);
 	spin_lock_init(&srq->lock);
 
-	srq->max = roundup_pow_of_two(srq_init_attr->attr.max_wr + 1);
-	srq->max_gs = srq_init_attr->attr.max_sge;
+	srq->wqe_cnt = roundup_pow_of_two(init_attr->attr.max_wr + 1);
+	srq->max_gs = init_attr->attr.max_sge;
 
-	srq_desc_size = roundup_pow_of_two(max(16, 16 * srq->max_gs));
+	srq_desc_size = roundup_pow_of_two(max(HNS_ROCE_SGE_SIZE,
+					HNS_ROCE_SGE_SIZE * srq->max_gs));
 
 	srq->wqe_shift = ilog2(srq_desc_size);
 
-	srq_buf_size = srq->max * srq_desc_size;
+	srq_buf_size = srq->wqe_cnt * srq_desc_size;
 
 	srq->idx_que.entry_sz = HNS_ROCE_IDX_QUE_ENTRY_SZ;
-	srq->idx_que.buf_size = srq->max * srq->idx_que.entry_sz;
+	srq->idx_que.buf_size = srq->wqe_cnt * srq->idx_que.entry_sz;
 	srq->mtt.mtt_type = MTT_TYPE_SRQWQE;
 	srq->idx_que.mtt.mtt_type = MTT_TYPE_IDX;
 
@@ -401,8 +406,8 @@
 		}
 	}
 
-	cqn = ib_srq_has_cq(srq_init_attr->srq_type) ?
-	      to_hr_cq(srq_init_attr->ext.cq)->cqn : 0;
+	cqn = ib_srq_has_cq(init_attr->srq_type) ?
+	      to_hr_cq(init_attr->ext.cq)->cqn : 0;
 
 	srq->db_reg_l = hr_dev->reg_base + SRQ_DB_REG;
 
@@ -449,7 +454,7 @@
 		hns_roce_mtt_cleanup(hr_dev, &srq->idx_que.mtt);
 	} else {
 		kvfree(srq->wrid);
-		hns_roce_buf_free(hr_dev, srq->max << srq->wqe_shift,
+		hns_roce_buf_free(hr_dev, srq->wqe_cnt << srq->wqe_shift,
 				  &srq->buf);
 	}
 	ib_umem_release(srq->idx_que.umem);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw.h
@@ -398,8 +398,8 @@
 }
 
 /* i40iw.c */
-void i40iw_add_ref(struct ib_qp *);
-void i40iw_rem_ref(struct ib_qp *);
+void i40iw_qp_add_ref(struct ib_qp *ibqp);
+void i40iw_qp_rem_ref(struct ib_qp *ibqp);
 struct ib_qp *i40iw_get_qp(struct ib_device *, int);
 
 void i40iw_flush_wqes(struct i40iw_device *iwdev,
@@ -543,9 +543,8 @@
 					  bool wait);
 void i40iw_receive_ilq(struct i40iw_sc_vsi *vsi, struct i40iw_puda_buf *rbuf);
 void i40iw_free_sqbuf(struct i40iw_sc_vsi *vsi, void *bufp);
-void i40iw_free_qp_resources(struct i40iw_device *iwdev,
-			     struct i40iw_qp *iwqp,
-			     u32 qp_num);
+void i40iw_free_qp_resources(struct i40iw_qp *iwqp);
+
 enum i40iw_status_code i40iw_obj_aligned_mem(struct i40iw_device *iwdev,
 					     struct i40iw_dma_mem *memptr,
 					     u32 size, u32 mask);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw_cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw_cm.c
@@ -1987,7 +1987,6 @@
 	struct rtable *rt;
 	struct neighbour *neigh;
 	int rc = arpindex;
-	struct net_device *netdev = iwdev->netdev;
 	__be32 dst_ipaddr = htonl(dst_ip);
 	__be32 src_ipaddr = htonl(src_ip);
 
@@ -1997,9 +1996,6 @@
 		return rc;
 	}
 
-	if (netif_is_bond_slave(netdev))
-		netdev = netdev_master_upper_dev_get(netdev);
-
 	neigh = dst_neigh_lookup(&rt->dst, &dst_ipaddr);
 
 	rcu_read_lock();
@@ -2065,7 +2061,6 @@
 {
 	struct neighbour *neigh;
 	int rc = arpindex;
-	struct net_device *netdev = iwdev->netdev;
 	struct dst_entry *dst;
 	struct sockaddr_in6 dst_addr;
 	struct sockaddr_in6 src_addr;
@@ -2079,16 +2074,13 @@
 	dst = i40iw_get_dst_ipv6(&src_addr, &dst_addr);
 	if (!dst || dst->error) {
 		if (dst) {
-			dst_release(dst);
 			i40iw_pr_err("ip6_route_output returned dst->error = %d\n",
 				     dst->error);
+			dst_release(dst);
 		}
 		return rc;
 	}
 
-	if (netif_is_bond_slave(netdev))
-		netdev = netdev_master_upper_dev_get(netdev);
-
 	neigh = dst_neigh_lookup(dst, dst_addr.sin6_addr.in6_u.u6_addr32);
 
 	rcu_read_lock();
@@ -2330,7 +2322,7 @@
 	iwqp = cm_node->iwqp;
 	if (iwqp) {
 		iwqp->cm_node = NULL;
-		i40iw_rem_ref(&iwqp->ibqp);
+		i40iw_qp_rem_ref(&iwqp->ibqp);
 		cm_node->iwqp = NULL;
 	} else if (cm_node->qhash_set) {
 		i40iw_get_addr_info(cm_node, &nfo);
@@ -3460,7 +3452,7 @@
 		kfree(work);
 		return;
 	}
-	i40iw_add_ref(&iwqp->ibqp);
+	i40iw_qp_add_ref(&iwqp->ibqp);
 	spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
 
 	work->iwqp = iwqp;
@@ -3631,7 +3623,7 @@
 
 	kfree(dwork);
 	i40iw_cm_disconn_true(iwqp);
-	i40iw_rem_ref(&iwqp->ibqp);
+	i40iw_qp_rem_ref(&iwqp->ibqp);
 }
 
 /**
@@ -3753,7 +3745,7 @@
 	cm_node->lsmm_size = accept.size + conn_param->private_data_len;
 	i40iw_cm_init_tsa_conn(iwqp, cm_node);
 	cm_id->add_ref(cm_id);
-	i40iw_add_ref(&iwqp->ibqp);
+	i40iw_qp_add_ref(&iwqp->ibqp);
 
 	attr.qp_state = IB_QPS_RTS;
 	cm_node->qhash_set = false;
@@ -3916,7 +3908,7 @@
 	iwqp->cm_node = cm_node;
 	cm_node->iwqp = iwqp;
 	iwqp->cm_id = cm_id;
-	i40iw_add_ref(&iwqp->ibqp);
+	i40iw_qp_add_ref(&iwqp->ibqp);
 
 	if (cm_node->state != I40IW_CM_STATE_OFFLOADED) {
 		cm_node->state = I40IW_CM_STATE_SYN_SENT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw_hw.c
@@ -313,7 +313,7 @@
 					    __func__, info->qp_cq_id);
 				continue;
 			}
-			i40iw_add_ref(&iwqp->ibqp);
+			i40iw_qp_add_ref(&iwqp->ibqp);
 			spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
 			qp = &iwqp->sc_qp;
 			spin_lock_irqsave(&iwqp->lock, flags);
@@ -427,7 +427,7 @@
 			break;
 		}
 		if (info->qp)
-			i40iw_rem_ref(&iwqp->ibqp);
+			i40iw_qp_rem_ref(&iwqp->ibqp);
 	} while (1);
 
 	if (aeqcnt)
@@ -534,7 +534,7 @@
 	int arp_index;
 
 	arp_index = i40iw_arp_table(iwdev, ip_addr, ipv4, mac_addr, action);
-	if (arp_index == -1)
+	if (arp_index < 0)
 		return;
 	cqp_request = i40iw_get_cqp_request(&iwdev->cqp, false);
 	if (!cqp_request)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw_main.c
@@ -54,10 +54,6 @@
 #define DRV_VERSION	__stringify(DRV_VERSION_MAJOR) "."		\
 	__stringify(DRV_VERSION_MINOR) "." __stringify(DRV_VERSION_BUILD)
 
-static int push_mode;
-module_param(push_mode, int, 0644);
-MODULE_PARM_DESC(push_mode, "Low latency mode: 0=disabled (default), 1=enabled)");
-
 static int debug;
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug, "debug flags: 0=disabled (default), 0x7fffffff=all");
@@ -1225,6 +1221,8 @@
 			const struct in_ifaddr *ifa;
 
 			idev = in_dev_get(dev);
+			if (!idev)
+				continue;
 			in_dev_for_each_ifa_rtnl(ifa, idev) {
 				i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_CM,
 					    "IP=%pI4, vlan_id=%d, MAC=%pM\n", &ifa->ifa_address,
@@ -1586,7 +1584,6 @@
 	if (status)
 		goto exit;
 	iwdev->obj_next = iwdev->obj_mem;
-	iwdev->push_mode = push_mode;
 
 	init_waitqueue_head(&iwdev->vchnl_waitq);
 	init_waitqueue_head(&dev->vf_reqs);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw_utils.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw_utils.c
@@ -480,25 +480,6 @@
 }
 
 /**
- * i40iw_free_qp - callback after destroy cqp completes
- * @cqp_request: cqp request for destroy qp
- * @num: not used
- */
-static void i40iw_free_qp(struct i40iw_cqp_request *cqp_request, u32 num)
-{
-	struct i40iw_sc_qp *qp = (struct i40iw_sc_qp *)cqp_request->param;
-	struct i40iw_qp *iwqp = (struct i40iw_qp *)qp->back_qp;
-	struct i40iw_device *iwdev;
-	u32 qp_num = iwqp->ibqp.qp_num;
-
-	iwdev = iwqp->iwdev;
-
-	i40iw_rem_pdusecount(iwqp->iwpd, iwdev);
-	i40iw_free_qp_resources(iwdev, iwqp, qp_num);
-	i40iw_rem_devusecount(iwdev);
-}
-
-/**
  * i40iw_wait_event - wait for completion
  * @iwdev: iwarp device
  * @cqp_request: cqp request to wait
@@ -618,26 +599,23 @@
 }
 
 /**
- * i40iw_add_ref - add refcount for qp
+ * i40iw_qp_add_ref - add refcount for qp
  * @ibqp: iqarp qp
  */
-void i40iw_add_ref(struct ib_qp *ibqp)
+void i40iw_qp_add_ref(struct ib_qp *ibqp)
 {
 	struct i40iw_qp *iwqp = (struct i40iw_qp *)ibqp;
 
-	atomic_inc(&iwqp->refcount);
+	refcount_inc(&iwqp->refcount);
 }
 
 /**
- * i40iw_rem_ref - rem refcount for qp and free if 0
+ * i40iw_qp_rem_ref - rem refcount for qp and free if 0
  * @ibqp: iqarp qp
  */
-void i40iw_rem_ref(struct ib_qp *ibqp)
+void i40iw_qp_rem_ref(struct ib_qp *ibqp)
 {
 	struct i40iw_qp *iwqp;
-	enum i40iw_status_code status;
-	struct i40iw_cqp_request *cqp_request;
-	struct cqp_commands_info *cqp_info;
 	struct i40iw_device *iwdev;
 	u32 qp_num;
 	unsigned long flags;
@@ -645,7 +623,7 @@
 	iwqp = to_iwqp(ibqp);
 	iwdev = iwqp->iwdev;
 	spin_lock_irqsave(&iwdev->qptable_lock, flags);
-	if (!atomic_dec_and_test(&iwqp->refcount)) {
+	if (!refcount_dec_and_test(&iwqp->refcount)) {
 		spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
 		return;
 	}
@@ -653,25 +631,8 @@
 	qp_num = iwqp->ibqp.qp_num;
 	iwdev->qp_table[qp_num] = NULL;
 	spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
-	cqp_request = i40iw_get_cqp_request(&iwdev->cqp, false);
-	if (!cqp_request)
-		return;
-
-	cqp_request->callback_fcn = i40iw_free_qp;
-	cqp_request->param = (void *)&iwqp->sc_qp;
-	cqp_info = &cqp_request->info;
-	cqp_info->cqp_cmd = OP_QP_DESTROY;
-	cqp_info->post_sq = 1;
-	cqp_info->in.u.qp_destroy.qp = &iwqp->sc_qp;
-	cqp_info->in.u.qp_destroy.scratch = (uintptr_t)cqp_request;
-	cqp_info->in.u.qp_destroy.remove_hash_idx = true;
-	status = i40iw_handle_cqp_op(iwdev, cqp_request);
-	if (!status)
-		return;
+	complete(&iwqp->free_qp);
 
-	i40iw_rem_pdusecount(iwqp->iwpd, iwdev);
-	i40iw_free_qp_resources(iwdev, iwqp, qp_num);
-	i40iw_rem_devusecount(iwdev);
 }
 
 /**
@@ -938,7 +899,7 @@
 	struct i40iw_sc_qp *qp = (struct i40iw_sc_qp *)&iwqp->sc_qp;
 
 	i40iw_terminate_done(qp, 1);
-	i40iw_rem_ref(&iwqp->ibqp);
+	i40iw_qp_rem_ref(&iwqp->ibqp);
 }
 
 /**
@@ -950,7 +911,7 @@
 	struct i40iw_qp *iwqp;
 
 	iwqp = (struct i40iw_qp *)qp->back_qp;
-	i40iw_add_ref(&iwqp->ibqp);
+	i40iw_qp_add_ref(&iwqp->ibqp);
 	timer_setup(&iwqp->terminate_timer, i40iw_terminate_timeout, 0);
 	iwqp->terminate_timer.expires = jiffies + HZ;
 	add_timer(&iwqp->terminate_timer);
@@ -966,7 +927,7 @@
 
 	iwqp = (struct i40iw_qp *)qp->back_qp;
 	if (del_timer(&iwqp->terminate_timer))
-		i40iw_rem_ref(&iwqp->ibqp);
+		i40iw_qp_rem_ref(&iwqp->ibqp);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw_verbs.c
@@ -168,38 +168,16 @@
  */
 static int i40iw_mmap(struct ib_ucontext *context, struct vm_area_struct *vma)
 {
-	struct i40iw_ucontext *ucontext;
-	u64 db_addr_offset;
-	u64 push_offset;
-
-	ucontext = to_ucontext(context);
-	if (ucontext->iwdev->sc_dev.is_pf) {
-		db_addr_offset = I40IW_DB_ADDR_OFFSET;
-		push_offset = I40IW_PUSH_OFFSET;
-		if (vma->vm_pgoff)
-			vma->vm_pgoff += I40IW_PF_FIRST_PUSH_PAGE_INDEX - 1;
-	} else {
-		db_addr_offset = I40IW_VF_DB_ADDR_OFFSET;
-		push_offset = I40IW_VF_PUSH_OFFSET;
-		if (vma->vm_pgoff)
-			vma->vm_pgoff += I40IW_VF_FIRST_PUSH_PAGE_INDEX - 1;
-	}
+	struct i40iw_ucontext *ucontext = to_ucontext(context);
+	u64 dbaddr;
 
-	vma->vm_pgoff += db_addr_offset >> PAGE_SHIFT;
+	if (vma->vm_pgoff || vma->vm_end - vma->vm_start != PAGE_SIZE)
+		return -EINVAL;
 
-	if (vma->vm_pgoff == (db_addr_offset >> PAGE_SHIFT)) {
-		vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-		vma->vm_private_data = ucontext;
-	} else {
-		if ((vma->vm_pgoff - (push_offset >> PAGE_SHIFT)) % 2)
-			vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-		else
-			vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
-	}
+	dbaddr = I40IW_DB_ADDR_OFFSET + pci_resource_start(ucontext->iwdev->ldev->pcidev, 0);
 
-	if (io_remap_pfn_range(vma, vma->vm_start,
-			       vma->vm_pgoff + (pci_resource_start(ucontext->iwdev->ldev->pcidev, 0) >> PAGE_SHIFT),
-			       PAGE_SIZE, vma->vm_page_prot))
+	if (io_remap_pfn_range(vma, vma->vm_start, dbaddr >> PAGE_SHIFT, PAGE_SIZE,
+			       pgprot_noncached(vma->vm_page_prot)))
 		return -EAGAIN;
 
 	return 0;
@@ -366,11 +344,11 @@
  * @iwqp: qp ptr (user or kernel)
  * @qp_num: qp number assigned
  */
-void i40iw_free_qp_resources(struct i40iw_device *iwdev,
-			     struct i40iw_qp *iwqp,
-			     u32 qp_num)
+void i40iw_free_qp_resources(struct i40iw_qp *iwqp)
 {
 	struct i40iw_pbl *iwpbl = &iwqp->iwpbl;
+	struct i40iw_device *iwdev = iwqp->iwdev;
+	u32 qp_num = iwqp->ibqp.qp_num;
 
 	i40iw_ieq_cleanup_qp(iwdev->vsi.ieq, &iwqp->sc_qp);
 	i40iw_dealloc_push_page(iwdev, &iwqp->sc_qp);
@@ -404,6 +382,10 @@
 static int i40iw_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
 {
 	struct i40iw_qp *iwqp = to_iwqp(ibqp);
+	struct ib_qp_attr attr;
+	struct i40iw_device *iwdev = iwqp->iwdev;
+
+	memset(&attr, 0, sizeof(attr));
 
 	iwqp->destroyed = 1;
 
@@ -418,7 +400,15 @@
 		}
 	}
 
-	i40iw_rem_ref(&iwqp->ibqp);
+	attr.qp_state = IB_QPS_ERR;
+	i40iw_modify_qp(&iwqp->ibqp, &attr, IB_QP_STATE, NULL);
+	i40iw_qp_rem_ref(&iwqp->ibqp);
+	wait_for_completion(&iwqp->free_qp);
+	i40iw_cqp_qp_destroy_cmd(&iwdev->sc_dev, &iwqp->sc_qp);
+	i40iw_rem_pdusecount(iwqp->iwpd, iwdev);
+	i40iw_free_qp_resources(iwqp);
+	i40iw_rem_devusecount(iwdev);
+
 	return 0;
 }
 
@@ -579,6 +569,7 @@
 	qp->back_qp = (void *)iwqp;
 	qp->push_idx = I40IW_INVALID_PUSH_PAGE_INDEX;
 
+	iwqp->iwdev = iwdev;
 	iwqp->ctx_info.iwarp_info = &iwqp->iwarp_info;
 
 	if (i40iw_allocate_dma_mem(dev->hw,
@@ -603,7 +594,6 @@
 		goto error;
 	}
 
-	iwqp->iwdev = iwdev;
 	iwqp->iwpd = iwpd;
 	iwqp->ibqp.qp_num = qp_num;
 	qp = &iwqp->sc_qp;
@@ -717,7 +707,7 @@
 		goto error;
 	}
 
-	i40iw_add_ref(&iwqp->ibqp);
+	refcount_set(&iwqp->refcount, 1);
 	spin_lock_init(&iwqp->lock);
 	iwqp->sig_all = (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR) ? 1 : 0;
 	iwdev->qp_table[qp_num] = iwqp;
@@ -739,10 +729,11 @@
 	}
 	init_completion(&iwqp->sq_drained);
 	init_completion(&iwqp->rq_drained);
+	init_completion(&iwqp->free_qp);
 
 	return &iwqp->ibqp;
 error:
-	i40iw_free_qp_resources(iwdev, iwqp, qp_num);
+	i40iw_free_qp_resources(iwqp);
 	return ERR_PTR(err_code);
 }
 
@@ -1763,7 +1754,7 @@
 
 	if (length > I40IW_MAX_MR_SIZE)
 		return ERR_PTR(-EINVAL);
-	region = ib_umem_get(udata, start, length, acc, 0);
+	region = ib_umem_get(udata, start, length, acc);
 	if (IS_ERR(region))
 		return (struct ib_mr *)region;
 
@@ -2654,13 +2645,13 @@
 	.get_hw_stats = i40iw_get_hw_stats,
 	.get_port_immutable = i40iw_port_immutable,
 	.iw_accept = i40iw_accept,
-	.iw_add_ref = i40iw_add_ref,
+	.iw_add_ref = i40iw_qp_add_ref,
 	.iw_connect = i40iw_connect,
 	.iw_create_listen = i40iw_create_listen,
 	.iw_destroy_listen = i40iw_destroy_listen,
 	.iw_get_qp = i40iw_get_qp,
 	.iw_reject = i40iw_reject,
-	.iw_rem_ref = i40iw_rem_ref,
+	.iw_rem_ref = i40iw_qp_rem_ref,
 	.map_mr_sg = i40iw_map_mr_sg,
 	.mmap = i40iw_mmap,
 	.modify_qp = i40iw_modify_qp,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/i40iw/i40iw_verbs.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/i40iw/i40iw_verbs.h
@@ -140,7 +140,7 @@
 	struct i40iw_qp_host_ctx_info ctx_info;
 	struct i40iwarp_offload_info iwarp_info;
 	void *allocated_buffer;
-	atomic_t refcount;
+	refcount_t refcount;
 	struct iw_cm_id *cm_id;
 	void *cm_node;
 	struct ib_mr *lsmm_mr;
@@ -175,5 +175,6 @@
 	struct i40iw_dma_mem ietf_mem;
 	struct completion sq_drained;
 	struct completion rq_drained;
+	struct completion free_qp;
 };
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/cm.c
@@ -186,23 +186,6 @@
 	kfree(ent);
 }
 
-static void id_map_find_del(struct ib_device *ibdev, int pv_cm_id)
-{
-	struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov;
-	struct rb_root *sl_id_map = &sriov->sl_id_map;
-	struct id_map_entry *ent, *found_ent;
-
-	spin_lock(&sriov->id_map_lock);
-	ent = xa_erase(&sriov->pv_id_table, pv_cm_id);
-	if (!ent)
-		goto out;
-	found_ent = id_map_find_by_sl_id(ibdev, ent->slave_id, ent->sl_cm_id);
-	if (found_ent && found_ent == ent)
-		rb_erase(&found_ent->node, sl_id_map);
-out:
-	spin_unlock(&sriov->id_map_lock);
-}
-
 static void sl_id_map_add(struct ib_device *ibdev, struct id_map_entry *new)
 {
 	struct rb_root *sl_id_map = &to_mdev(ibdev)->sriov.sl_id_map;
@@ -294,9 +277,12 @@
 	spin_lock(&sriov->id_map_lock);
 	spin_lock_irqsave(&sriov->going_down_lock, flags);
 	/*make sure that there is no schedule inside the scheduled work.*/
-	if (!sriov->is_going_down) {
+	if (!sriov->is_going_down && !id->scheduled_delete) {
 		id->scheduled_delete = 1;
 		schedule_delayed_work(&id->timeout, CM_CLEANUP_CACHE_TIMEOUT);
+	} else if (id->scheduled_delete) {
+		/* Adjust timeout if already scheduled */
+		mod_delayed_work(system_wq, &id->timeout, CM_CLEANUP_CACHE_TIMEOUT);
 	}
 	spin_unlock_irqrestore(&sriov->going_down_lock, flags);
 	spin_unlock(&sriov->id_map_lock);
@@ -341,9 +327,6 @@
 
 	if (mad->mad_hdr.attr_id == CM_DREQ_ATTR_ID)
 		schedule_delayed(ibdev, id);
-	else if (mad->mad_hdr.attr_id == CM_DREP_ATTR_ID)
-		id_map_find_del(ibdev, pv_cm_id);
-
 	return 0;
 }
 
@@ -382,12 +365,9 @@
 		*slave = id->slave_id;
 	set_remote_comm_id(mad, id->sl_cm_id);
 
-	if (mad->mad_hdr.attr_id == CM_DREQ_ATTR_ID)
+	if (mad->mad_hdr.attr_id == CM_DREQ_ATTR_ID ||
+	    mad->mad_hdr.attr_id == CM_REJ_ATTR_ID)
 		schedule_delayed(ibdev, id);
-	else if (mad->mad_hdr.attr_id == CM_REJ_ATTR_ID ||
-			mad->mad_hdr.attr_id == CM_DREP_ATTR_ID) {
-		id_map_find_del(ibdev, (int) pv_cm_id);
-	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/cq.c
@@ -145,7 +145,7 @@
 	int n;
 
 	*umem = ib_umem_get(udata, buf_addr, cqe * cqe_size,
-			    IB_ACCESS_LOCAL_WRITE, 1);
+			    IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(*umem))
 		return PTR_ERR(*umem);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/doorbell.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/doorbell.c
@@ -64,7 +64,7 @@
 
 	page->user_virt = (virt & PAGE_MASK);
 	page->refcnt    = 0;
-	page->umem = ib_umem_get(udata, virt & PAGE_MASK, PAGE_SIZE, 0, 0);
+	page->umem = ib_umem_get(udata, virt & PAGE_MASK, PAGE_SIZE, 0);
 	if (IS_ERR(page->umem)) {
 		err = PTR_ERR(page->umem);
 		kfree(page);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/mad.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/mad.c
@@ -1307,6 +1307,18 @@
 	spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags);
 }
 
+static void mlx4_ib_wire_comp_handler(struct ib_cq *cq, void *arg)
+{
+	unsigned long flags;
+	struct mlx4_ib_demux_pv_ctx *ctx = cq->cq_context;
+	struct mlx4_ib_dev *dev = to_mdev(ctx->ib_dev);
+
+	spin_lock_irqsave(&dev->sriov.going_down_lock, flags);
+	if (!dev->sriov.is_going_down && ctx->state == DEMUX_PV_STATE_ACTIVE)
+		queue_work(ctx->wi_wq, &ctx->work);
+	spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags);
+}
+
 static int mlx4_ib_post_pv_qp_buf(struct mlx4_ib_demux_pv_ctx *ctx,
 				  struct mlx4_ib_demux_pv_qp *tun_qp,
 				  int index)
@@ -2009,7 +2021,8 @@
 		cq_size *= 2;
 
 	cq_attr.cqe = cq_size;
-	ctx->cq = ib_create_cq(ctx->ib_dev, mlx4_ib_tunnel_comp_handler,
+	ctx->cq = ib_create_cq(ctx->ib_dev,
+			       create_tun ? mlx4_ib_tunnel_comp_handler : mlx4_ib_wire_comp_handler,
 			       NULL, ctx, &cq_attr);
 	if (IS_ERR(ctx->cq)) {
 		ret = PTR_ERR(ctx->cq);
@@ -2046,6 +2059,7 @@
 		INIT_WORK(&ctx->work, mlx4_ib_sqp_comp_worker);
 
 	ctx->wq = to_mdev(ibdev)->sriov.demux[port - 1].wq;
+	ctx->wi_wq = to_mdev(ibdev)->sriov.demux[port - 1].wi_wq;
 
 	ret = ib_req_notify_cq(ctx->cq, IB_CQ_NEXT_COMP);
 	if (ret) {
@@ -2189,7 +2203,7 @@
 		goto err_mcg;
 	}
 
-	snprintf(name, sizeof name, "mlx4_ibt%d", port);
+	snprintf(name, sizeof(name), "mlx4_ibt%d", port);
 	ctx->wq = alloc_ordered_workqueue(name, WQ_MEM_RECLAIM);
 	if (!ctx->wq) {
 		pr_err("Failed to create tunnelling WQ for port %d\n", port);
@@ -2197,7 +2211,15 @@
 		goto err_wq;
 	}
 
-	snprintf(name, sizeof name, "mlx4_ibud%d", port);
+	snprintf(name, sizeof(name), "mlx4_ibwi%d", port);
+	ctx->wi_wq = alloc_ordered_workqueue(name, WQ_MEM_RECLAIM);
+	if (!ctx->wi_wq) {
+		pr_err("Failed to create wire WQ for port %d\n", port);
+		ret = -ENOMEM;
+		goto err_wiwq;
+	}
+
+	snprintf(name, sizeof(name), "mlx4_ibud%d", port);
 	ctx->ud_wq = alloc_ordered_workqueue(name, WQ_MEM_RECLAIM);
 	if (!ctx->ud_wq) {
 		pr_err("Failed to create up/down WQ for port %d\n", port);
@@ -2208,6 +2230,10 @@
 	return 0;
 
 err_udwq:
+	destroy_workqueue(ctx->wi_wq);
+	ctx->wi_wq = NULL;
+
+err_wiwq:
 	destroy_workqueue(ctx->wq);
 	ctx->wq = NULL;
 
@@ -2255,12 +2281,14 @@
 				ctx->tun[i]->state = DEMUX_PV_STATE_DOWNING;
 		}
 		flush_workqueue(ctx->wq);
+		flush_workqueue(ctx->wi_wq);
 		for (i = 0; i < dev->dev->caps.sqp_demux; i++) {
 			destroy_pv_resources(dev, i, ctx->port, ctx->tun[i], 0);
 			free_pv_object(dev, i, ctx->port);
 		}
 		kfree(ctx->tun);
 		destroy_workqueue(ctx->ud_wq);
+		destroy_workqueue(ctx->wi_wq);
 		destroy_workqueue(ctx->wq);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/main.c
@@ -246,6 +246,13 @@
 	return mlx4_ib_update_gids_v1(gids, ibdev, port_num);
 }
 
+static void free_gid_entry(struct gid_entry *entry)
+{
+	memset(&entry->gid, 0, sizeof(entry->gid));
+	kfree(entry->ctx);
+	entry->ctx = NULL;
+}
+
 static int mlx4_ib_add_gid(const struct ib_gid_attr *attr, void **context)
 {
 	struct mlx4_ib_dev *ibdev = to_mdev(attr->device);
@@ -306,6 +313,8 @@
 				     GFP_ATOMIC);
 		if (!gids) {
 			ret = -ENOMEM;
+			*context = NULL;
+			free_gid_entry(&port_gid_table->gids[free]);
 		} else {
 			for (i = 0; i < MLX4_MAX_PORT_GIDS; i++) {
 				memcpy(&gids[i].gid, &port_gid_table->gids[i].gid, sizeof(union ib_gid));
@@ -317,6 +326,12 @@
 
 	if (!ret && hw_update) {
 		ret = mlx4_ib_update_gids(gids, ibdev, attr->port_num);
+		if (ret) {
+			spin_lock_bh(&iboe->lock);
+			*context = NULL;
+			free_gid_entry(&port_gid_table->gids[free]);
+			spin_unlock_bh(&iboe->lock);
+		}
 		kfree(gids);
 	}
 
@@ -346,10 +361,7 @@
 		if (!ctx->refcount) {
 			unsigned int real_index = ctx->real_index;
 
-			memset(&port_gid_table->gids[real_index].gid, 0,
-			       sizeof(port_gid_table->gids[real_index].gid));
-			kfree(port_gid_table->gids[real_index].ctx);
-			port_gid_table->gids[real_index].ctx = NULL;
+			free_gid_entry(&port_gid_table->gids[real_index]);
 			hw_update = 1;
 		}
 	}
@@ -769,7 +781,8 @@
 	props->ip_gids = true;
 	props->gid_tbl_len	= mdev->dev->caps.gid_table_len[port];
 	props->max_msg_sz	= mdev->dev->caps.max_msg_sz;
-	props->pkey_tbl_len	= 1;
+	if (mdev->dev->caps.pkey_table_len[port])
+		props->pkey_tbl_len = 1;
 	props->max_mtu		= IB_MTU_4096;
 	props->max_vl_num	= 2;
 	props->state		= IB_PORT_DOWN;
@@ -1146,7 +1159,8 @@
 		return rdma_user_mmap_io(context, vma,
 					 to_mucontext(context)->uar.pfn,
 					 PAGE_SIZE,
-					 pgprot_noncached(vma->vm_page_prot));
+					 pgprot_noncached(vma->vm_page_prot),
+					 NULL);
 
 	case 1:
 		if (dev->dev->caps.bf_reg_size == 0)
@@ -1155,7 +1169,8 @@
 			context, vma,
 			to_mucontext(context)->uar.pfn +
 				dev->dev->caps.num_uars,
-			PAGE_SIZE, pgprot_writecombine(vma->vm_page_prot));
+			PAGE_SIZE, pgprot_writecombine(vma->vm_page_prot),
+			NULL);
 
 	case 3: {
 		struct mlx4_clock_params params;
@@ -1171,7 +1186,8 @@
 					    params.bar) +
 			 params.offset) >>
 				PAGE_SHIFT,
-			PAGE_SIZE, pgprot_noncached(vma->vm_page_prot));
+			PAGE_SIZE, pgprot_noncached(vma->vm_page_prot),
+			NULL);
 	}
 
 	default:
@@ -1480,8 +1496,9 @@
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(pdefault_rules->rules_create_list); i++) {
+		union ib_flow_spec ib_spec = {};
 		int ret;
-		union ib_flow_spec ib_spec;
+
 		switch (pdefault_rules->rules_create_list[i]) {
 		case 0:
 			/* no rule */
@@ -3008,16 +3025,17 @@
 	ibdev->ib_active = false;
 	flush_workqueue(wq);
 
-	mlx4_ib_close_sriov(ibdev);
-	mlx4_ib_mad_cleanup(ibdev);
-	ib_unregister_device(&ibdev->ib_dev);
-	mlx4_ib_diag_cleanup(ibdev);
 	if (ibdev->iboe.nb.notifier_call) {
 		if (unregister_netdevice_notifier(&ibdev->iboe.nb))
 			pr_warn("failure unregistering notifier\n");
 		ibdev->iboe.nb.notifier_call = NULL;
 	}
 
+	mlx4_ib_close_sriov(ibdev);
+	mlx4_ib_mad_cleanup(ibdev);
+	ib_unregister_device(&ibdev->ib_dev);
+	mlx4_ib_diag_cleanup(ibdev);
+
 	mlx4_qp_release_range(dev, ibdev->steer_qpn_base,
 			      ibdev->steer_qpn_count);
 	kfree(ibdev->ib_uc_qpns_bitmap);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/mlx4_ib.h
@@ -459,6 +459,7 @@
 	struct ib_pd *pd;
 	struct work_struct work;
 	struct workqueue_struct *wq;
+	struct workqueue_struct *wi_wq;
 	struct mlx4_ib_demux_pv_qp qp[2];
 };
 
@@ -466,6 +467,7 @@
 	struct ib_device *ib_dev;
 	int port;
 	struct workqueue_struct *wq;
+	struct workqueue_struct *wi_wq;
 	struct workqueue_struct *ud_wq;
 	spinlock_t ud_lock;
 	atomic64_t subnet_prefix;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/mr.c
@@ -398,7 +398,7 @@
 		up_read(&current->mm->mmap_sem);
 	}
 
-	return ib_umem_get(udata, start, length, access_flags, 0);
+	return ib_umem_get(udata, start, length, access_flags);
 }
 
 struct ib_mr *mlx4_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
@@ -439,7 +439,6 @@
 
 	mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key;
 	mr->ibmr.length = length;
-	mr->ibmr.iova = virt_addr;
 	mr->ibmr.page_size = 1U << shift;
 
 	return &mr->ibmr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/qp.c
@@ -916,7 +916,7 @@
 	qp->buf_size = (qp->rq.wqe_cnt << qp->rq.wqe_shift) +
 		       (qp->sq.wqe_cnt << qp->sq.wqe_shift);
 
-	qp->umem = ib_umem_get(udata, wq.buf_addr, qp->buf_size, 0, 0);
+	qp->umem = ib_umem_get(udata, wq.buf_addr, qp->buf_size, 0);
 	if (IS_ERR(qp->umem)) {
 		err = PTR_ERR(qp->umem);
 		goto err;
@@ -1110,8 +1110,7 @@
 		if (err)
 			goto err;
 
-		qp->umem =
-			ib_umem_get(udata, ucmd.buf_addr, qp->buf_size, 0, 0);
+		qp->umem = ib_umem_get(udata, ucmd.buf_addr, qp->buf_size, 0);
 		if (IS_ERR(qp->umem)) {
 			err = PTR_ERR(qp->umem);
 			goto err;
@@ -2891,6 +2890,7 @@
 	int send_size;
 	int header_size;
 	int spc;
+	int err;
 	int i;
 
 	if (wr->wr.opcode != IB_WR_SEND)
@@ -2925,7 +2925,9 @@
 
 	sqp->ud_header.lrh.virtual_lane    = 0;
 	sqp->ud_header.bth.solicited_event = !!(wr->wr.send_flags & IB_SEND_SOLICITED);
-	ib_get_cached_pkey(ib_dev, sqp->qp.port, 0, &pkey);
+	err = ib_get_cached_pkey(ib_dev, sqp->qp.port, 0, &pkey);
+	if (err)
+		return err;
 	sqp->ud_header.bth.pkey = cpu_to_be16(pkey);
 	if (sqp->qp.mlx4_ib_qp_type == MLX4_IB_QPT_TUN_SMI_OWNER)
 		sqp->ud_header.bth.destination_qpn = cpu_to_be32(wr->remote_qpn);
@@ -3212,9 +3214,14 @@
 	}
 	sqp->ud_header.bth.solicited_event = !!(wr->wr.send_flags & IB_SEND_SOLICITED);
 	if (!sqp->qp.ibqp.qp_num)
-		ib_get_cached_pkey(ib_dev, sqp->qp.port, sqp->pkey_index, &pkey);
+		err = ib_get_cached_pkey(ib_dev, sqp->qp.port, sqp->pkey_index,
+					 &pkey);
 	else
-		ib_get_cached_pkey(ib_dev, sqp->qp.port, wr->pkey_index, &pkey);
+		err = ib_get_cached_pkey(ib_dev, sqp->qp.port, wr->pkey_index,
+					 &pkey);
+	if (err)
+		return err;
+
 	sqp->ud_header.bth.pkey = cpu_to_be16(pkey);
 	sqp->ud_header.bth.destination_qpn = cpu_to_be32(wr->remote_qpn);
 	sqp->ud_header.bth.psn = cpu_to_be32((sqp->send_psn++) & ((1 << 24) - 1));
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx4/srq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx4/srq.c
@@ -110,7 +110,7 @@
 		if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd)))
 			return -EFAULT;
 
-		srq->umem = ib_umem_get(udata, ucmd.buf_addr, buf_size, 0, 0);
+		srq->umem = ib_umem_get(udata, ucmd.buf_addr, buf_size, 0);
 		if (IS_ERR(srq->umem))
 			return PTR_ERR(srq->umem);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/cq.c
@@ -167,7 +167,7 @@
 {
 	enum rdma_link_layer ll = rdma_port_get_link_layer(qp->ibqp.device, 1);
 	struct mlx5_ib_dev *dev = to_mdev(qp->ibqp.device);
-	struct mlx5_ib_srq *srq;
+	struct mlx5_ib_srq *srq = NULL;
 	struct mlx5_ib_wq *wq;
 	u16 wqe_ctr;
 	u8  roce_packet_type;
@@ -179,7 +179,8 @@
 
 		if (qp->ibqp.xrcd) {
 			msrq = mlx5_cmd_get_srq(dev, be32_to_cpu(cqe->srqn));
-			srq = to_mibsrq(msrq);
+			if (msrq)
+				srq = to_mibsrq(msrq);
 		} else {
 			srq = to_msrq(qp->ibqp.srq);
 		}
@@ -330,6 +331,22 @@
 		dump_cqe(dev, cqe);
 }
 
+static void handle_atomics(struct mlx5_ib_qp *qp, struct mlx5_cqe64 *cqe64,
+			   u16 tail, u16 head)
+{
+	u16 idx;
+
+	do {
+		idx = tail & (qp->sq.wqe_cnt - 1);
+		if (idx == head)
+			break;
+
+		tail = qp->sq.w_list[idx].next;
+	} while (1);
+	tail = qp->sq.w_list[idx].next;
+	qp->sq.last_poll = tail;
+}
+
 static void free_cq_buf(struct mlx5_ib_dev *dev, struct mlx5_ib_cq_buf *buf)
 {
 	mlx5_frag_buf_free(dev->mdev, &buf->frag_buf);
@@ -368,7 +385,7 @@
 }
 
 static void sw_comp(struct mlx5_ib_qp *qp, int num_entries, struct ib_wc *wc,
-		    int *npolled, int is_send)
+		    int *npolled, bool is_send)
 {
 	struct mlx5_ib_wq *wq;
 	unsigned int cur;
@@ -383,10 +400,16 @@
 		return;
 
 	for (i = 0;  i < cur && np < num_entries; i++) {
-		wc->wr_id = wq->wrid[wq->tail & (wq->wqe_cnt - 1)];
+		unsigned int idx;
+
+		idx = (is_send) ? wq->last_poll : wq->tail;
+		idx &= (wq->wqe_cnt - 1);
+		wc->wr_id = wq->wrid[idx];
 		wc->status = IB_WC_WR_FLUSH_ERR;
 		wc->vendor_err = MLX5_CQE_SYNDROME_WR_FLUSH_ERR;
 		wq->tail++;
+		if (is_send)
+			wq->last_poll = wq->w_list[idx].next;
 		np++;
 		wc->qp = &qp->ibqp;
 		wc++;
@@ -476,6 +499,7 @@
 		wqe_ctr = be16_to_cpu(cqe64->wqe_counter);
 		idx = wqe_ctr & (wq->wqe_cnt - 1);
 		handle_good_req(wc, cqe64, wq, idx);
+		handle_atomics(*cur_qp, cqe64, wq->last_poll, idx);
 		wc->wr_id = wq->wrid[idx];
 		wq->tail = wq->wqe_head[idx] + 1;
 		wc->status = IB_WC_SUCCESS;
@@ -710,7 +734,7 @@
 
 	cq->buf.umem =
 		ib_umem_get(udata, ucmd.buf_addr, entries * ucmd.cqe_size,
-			    IB_ACCESS_LOCAL_WRITE, 1);
+			    IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(cq->buf.umem)) {
 		err = PTR_ERR(cq->buf.umem);
 		return err;
@@ -1111,7 +1135,7 @@
 
 	umem = ib_umem_get(udata, ucmd.buf_addr,
 			   (size_t)ucmd.cqe_size * entries,
-			   IB_ACCESS_LOCAL_WRITE, 1);
+			   IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(umem)) {
 		err = PTR_ERR(umem);
 		return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/devx.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/devx.c
@@ -489,6 +489,10 @@
 		obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_QP,
 					MLX5_GET(rst2init_qp_in, in, qpn));
 		break;
+	case MLX5_CMD_OP_INIT2INIT_QP:
+		obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_QP,
+					MLX5_GET(init2init_qp_in, in, qpn));
+		break;
 	case MLX5_CMD_OP_INIT2RTR_QP:
 		obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_QP,
 					MLX5_GET(init2rtr_qp_in, in, qpn));
@@ -814,6 +818,7 @@
 	case MLX5_CMD_OP_SET_L2_TABLE_ENTRY:
 	case MLX5_CMD_OP_RST2INIT_QP:
 	case MLX5_CMD_OP_INIT2RTR_QP:
+	case MLX5_CMD_OP_INIT2INIT_QP:
 	case MLX5_CMD_OP_RTR2RTS_QP:
 	case MLX5_CMD_OP_RTS2RTS_QP:
 	case MLX5_CMD_OP_SQERR2RTS_QP:
@@ -1113,7 +1118,9 @@
 		MLX5_SET(general_obj_in_cmd_hdr, din, opcode, MLX5_CMD_OP_DESTROY_RQT);
 		break;
 	case MLX5_CMD_OP_CREATE_TIR:
-		MLX5_SET(general_obj_in_cmd_hdr, din, opcode, MLX5_CMD_OP_DESTROY_TIR);
+		*obj_id = MLX5_GET(create_tir_out, out, tirn);
+		MLX5_SET(destroy_tir_in, din, opcode, MLX5_CMD_OP_DESTROY_TIR);
+		MLX5_SET(destroy_tir_in, din, tirn, *obj_id);
 		break;
 	case MLX5_CMD_OP_CREATE_TIS:
 		MLX5_SET(general_obj_in_cmd_hdr, din, opcode, MLX5_CMD_OP_DESTROY_TIS);
@@ -2015,8 +2022,10 @@
 
 		num_alloc_xa_entries++;
 		event_sub = kzalloc(sizeof(*event_sub), GFP_KERNEL);
-		if (!event_sub)
+		if (!event_sub) {
+			err = -ENOMEM;
 			goto err;
+		}
 
 		list_add_tail(&event_sub->event_list, &sub_list);
 		if (use_eventfd) {
@@ -2121,7 +2130,7 @@
 	if (err)
 		return err;
 
-	obj->umem = ib_umem_get(&attrs->driver_udata, addr, size, access, 0);
+	obj->umem = ib_umem_get(&attrs->driver_udata, addr, size, access);
 	if (IS_ERR(obj->umem))
 		return PTR_ERR(obj->umem);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/doorbell.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/doorbell.c
@@ -64,7 +64,7 @@
 
 	page->user_virt = (virt & PAGE_MASK);
 	page->refcnt    = 0;
-	page->umem = ib_umem_get(udata, virt & PAGE_MASK, PAGE_SIZE, 0, 0);
+	page->umem = ib_umem_get(udata, virt & PAGE_MASK, PAGE_SIZE, 0);
 	if (IS_ERR(page->umem)) {
 		err = PTR_ERR(page->umem);
 		kfree(page);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/gsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/gsi.c
@@ -507,8 +507,7 @@
 		ret = ib_post_send(tx_qp, &cur_wr.wr, bad_wr);
 		if (ret) {
 			/* Undo the effect of adding the outstanding wr */
-			gsi->outstanding_pi = (gsi->outstanding_pi - 1) %
-					      gsi->cap.max_send_wr;
+			gsi->outstanding_pi--;
 			goto err;
 		}
 		spin_unlock_irqrestore(&gsi->lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/ib_rep.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/ib_rep.c
@@ -35,7 +35,7 @@
 	int vport_index;
 
 	if (rep->vport == MLX5_VPORT_UPLINK)
-		profile = &uplink_rep_profile;
+		profile = &raw_eth_profile;
 	else
 		return mlx5_ib_set_vport_rep(dev, rep);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/ib_rep.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/ib_rep.h
@@ -10,7 +10,7 @@
 #include "mlx5_ib.h"
 
 #ifdef CONFIG_MLX5_ESWITCH
-extern const struct mlx5_ib_profile uplink_rep_profile;
+extern const struct mlx5_ib_profile raw_eth_profile;
 
 u8 mlx5_ib_eswitch_mode(struct mlx5_eswitch *esw);
 struct mlx5_ib_dev *mlx5_ib_get_rep_ibdev(struct mlx5_eswitch *esw,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/main.c
@@ -517,7 +517,7 @@
 					   mdev_port_num);
 	if (err)
 		goto out;
-	ext = MLX5_CAP_PCAM_FEATURE(dev->mdev, ptys_extended_ethernet);
+	ext = !!MLX5_GET_ETH_PROTO(ptys_reg, out, true, eth_proto_capability);
 	eth_prot_oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper);
 
 	props->active_width     = IB_WIDTH_4X;
@@ -829,6 +829,7 @@
 				struct ib_device_attr *props,
 				struct ib_udata *uhw)
 {
+	size_t uhw_outlen = (uhw) ? uhw->outlen : 0;
 	struct mlx5_ib_dev *dev = to_mdev(ibdev);
 	struct mlx5_core_dev *mdev = dev->mdev;
 	int err = -ENOMEM;
@@ -842,12 +843,12 @@
 	u64 max_tso;
 
 	resp_len = sizeof(resp.comp_mask) + sizeof(resp.response_length);
-	if (uhw->outlen && uhw->outlen < resp_len)
+	if (uhw_outlen && uhw_outlen < resp_len)
 		return -EINVAL;
 	else
 		resp.response_length = resp_len;
 
-	if (uhw->inlen && !ib_is_udata_cleared(uhw, 0, uhw->inlen))
+	if (uhw && uhw->inlen && !ib_is_udata_cleared(uhw, 0, uhw->inlen))
 		return -EINVAL;
 
 	memset(props, 0, sizeof(*props));
@@ -887,7 +888,9 @@
 		/* We support 'Gappy' memory registration too */
 		props->device_cap_flags |= IB_DEVICE_SG_GAPS_REG;
 	}
-	props->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS;
+	/* IB_WR_REG_MR always requires changing the entity size with UMR */
+	if (!MLX5_CAP_GEN(dev->mdev, umr_modify_entity_size_disabled))
+		props->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS;
 	if (MLX5_CAP_GEN(mdev, sho)) {
 		props->device_cap_flags |= IB_DEVICE_INTEGRITY_HANDOVER;
 		/* At this stage no support for signature handover */
@@ -911,7 +914,7 @@
 			props->raw_packet_caps |=
 				IB_RAW_PACKET_CAP_CVLAN_STRIPPING;
 
-		if (field_avail(typeof(resp), tso_caps, uhw->outlen)) {
+		if (field_avail(typeof(resp), tso_caps, uhw_outlen)) {
 			max_tso = MLX5_CAP_ETH(mdev, max_lso_cap);
 			if (max_tso) {
 				resp.tso_caps.max_tso = 1 << max_tso;
@@ -921,7 +924,7 @@
 			}
 		}
 
-		if (field_avail(typeof(resp), rss_caps, uhw->outlen)) {
+		if (field_avail(typeof(resp), rss_caps, uhw_outlen)) {
 			resp.rss_caps.rx_hash_function =
 						MLX5_RX_HASH_FUNC_TOEPLITZ;
 			resp.rss_caps.rx_hash_fields_mask =
@@ -941,9 +944,9 @@
 			resp.response_length += sizeof(resp.rss_caps);
 		}
 	} else {
-		if (field_avail(typeof(resp), tso_caps, uhw->outlen))
+		if (field_avail(typeof(resp), tso_caps, uhw_outlen))
 			resp.response_length += sizeof(resp.tso_caps);
-		if (field_avail(typeof(resp), rss_caps, uhw->outlen))
+		if (field_avail(typeof(resp), rss_caps, uhw_outlen))
 			resp.response_length += sizeof(resp.rss_caps);
 	}
 
@@ -1066,7 +1069,7 @@
 						MLX5_MAX_CQ_PERIOD;
 	}
 
-	if (field_avail(typeof(resp), cqe_comp_caps, uhw->outlen)) {
+	if (field_avail(typeof(resp), cqe_comp_caps, uhw_outlen)) {
 		resp.response_length += sizeof(resp.cqe_comp_caps);
 
 		if (MLX5_CAP_GEN(dev->mdev, cqe_compression)) {
@@ -1084,7 +1087,7 @@
 		}
 	}
 
-	if (field_avail(typeof(resp), packet_pacing_caps, uhw->outlen) &&
+	if (field_avail(typeof(resp), packet_pacing_caps, uhw_outlen) &&
 	    raw_support) {
 		if (MLX5_CAP_QOS(mdev, packet_pacing) &&
 		    MLX5_CAP_GEN(mdev, qos)) {
@@ -1103,7 +1106,7 @@
 	}
 
 	if (field_avail(typeof(resp), mlx5_ib_support_multi_pkt_send_wqes,
-			uhw->outlen)) {
+			uhw_outlen)) {
 		if (MLX5_CAP_ETH(mdev, multi_pkt_send_wqe))
 			resp.mlx5_ib_support_multi_pkt_send_wqes =
 				MLX5_IB_ALLOW_MPW;
@@ -1116,7 +1119,7 @@
 			sizeof(resp.mlx5_ib_support_multi_pkt_send_wqes);
 	}
 
-	if (field_avail(typeof(resp), flags, uhw->outlen)) {
+	if (field_avail(typeof(resp), flags, uhw_outlen)) {
 		resp.response_length += sizeof(resp.flags);
 
 		if (MLX5_CAP_GEN(mdev, cqe_compression_128))
@@ -1132,8 +1135,7 @@
 		resp.flags |= MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT;
 	}
 
-	if (field_avail(typeof(resp), sw_parsing_caps,
-			uhw->outlen)) {
+	if (field_avail(typeof(resp), sw_parsing_caps, uhw_outlen)) {
 		resp.response_length += sizeof(resp.sw_parsing_caps);
 		if (MLX5_CAP_ETH(mdev, swp)) {
 			resp.sw_parsing_caps.sw_parsing_offloads |=
@@ -1153,7 +1155,7 @@
 		}
 	}
 
-	if (field_avail(typeof(resp), striding_rq_caps, uhw->outlen) &&
+	if (field_avail(typeof(resp), striding_rq_caps, uhw_outlen) &&
 	    raw_support) {
 		resp.response_length += sizeof(resp.striding_rq_caps);
 		if (MLX5_CAP_GEN(mdev, striding_rq)) {
@@ -1170,8 +1172,7 @@
 		}
 	}
 
-	if (field_avail(typeof(resp), tunnel_offloads_caps,
-			uhw->outlen)) {
+	if (field_avail(typeof(resp), tunnel_offloads_caps, uhw_outlen)) {
 		resp.response_length += sizeof(resp.tunnel_offloads_caps);
 		if (MLX5_CAP_ETH(mdev, tunnel_stateless_vxlan))
 			resp.tunnel_offloads_caps |=
@@ -1182,17 +1183,15 @@
 		if (MLX5_CAP_ETH(mdev, tunnel_stateless_gre))
 			resp.tunnel_offloads_caps |=
 				MLX5_IB_TUNNELED_OFFLOADS_GRE;
-		if (MLX5_CAP_GEN(mdev, flex_parser_protocols) &
-		    MLX5_FLEX_PROTO_CW_MPLS_GRE)
+		if (MLX5_CAP_ETH(mdev, tunnel_stateless_mpls_over_gre))
 			resp.tunnel_offloads_caps |=
 				MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE;
-		if (MLX5_CAP_GEN(mdev, flex_parser_protocols) &
-		    MLX5_FLEX_PROTO_CW_MPLS_UDP)
+		if (MLX5_CAP_ETH(mdev, tunnel_stateless_mpls_over_udp))
 			resp.tunnel_offloads_caps |=
 				MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP;
 	}
 
-	if (uhw->outlen) {
+	if (uhw_outlen) {
 		err = ib_copy_to_udata(uhw, &resp, resp.response_length);
 
 		if (err)
@@ -2168,7 +2167,7 @@
 	mlx5_ib_dbg(dev, "uar idx 0x%lx, pfn %pa\n", idx, &pfn);
 
 	err = rdma_user_mmap_io(&context->ibucontext, vma, pfn, PAGE_SIZE,
-				prot);
+				prot, NULL);
 	if (err) {
 		mlx5_ib_err(dev,
 			    "rdma_user_mmap_io failed with error=%d, mmap_cmd=%s\n",
@@ -2210,7 +2209,8 @@
 	      PAGE_SHIFT) +
 	      page_idx;
 	return rdma_user_mmap_io(context, vma, pfn, map_size,
-				 pgprot_writecombine(vma->vm_page_prot));
+				 pgprot_writecombine(vma->vm_page_prot),
+				 NULL);
 }
 
 static int mlx5_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma)
@@ -2248,7 +2248,8 @@
 			PAGE_SHIFT;
 		return rdma_user_mmap_io(&context->ibucontext, vma, pfn,
 					 PAGE_SIZE,
-					 pgprot_noncached(vma->vm_page_prot));
+					 pgprot_noncached(vma->vm_page_prot),
+					 NULL);
 	case MLX5_IB_MMAP_CLOCK_INFO:
 		return mlx5_ib_mmap_clock_info_page(dev, vma, context);
 
@@ -3548,10 +3549,6 @@
 	}
 
 	INIT_LIST_HEAD(&handler->list);
-	if (dst) {
-		memcpy(&dest_arr[0], dst, sizeof(*dst));
-		dest_num++;
-	}
 
 	for (spec_index = 0; spec_index < flow_attr->num_of_specs; spec_index++) {
 		err = parse_flow_attr(dev->mdev, spec,
@@ -3564,6 +3561,11 @@
 		ib_flow += ((union ib_flow_spec *)ib_flow)->size;
 	}
 
+	if (dst && !(flow_act.action & MLX5_FLOW_CONTEXT_ACTION_DROP)) {
+		memcpy(&dest_arr[0], dst, sizeof(*dst));
+		dest_num++;
+	}
+
 	if (!flow_is_multicast_only(flow_attr))
 		set_underlay_qp(dev, spec, underlay_qpn);
 
@@ -3604,10 +3606,8 @@
 	}
 
 	if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_DROP) {
-		if (!(flow_act.action & MLX5_FLOW_CONTEXT_ACTION_COUNT)) {
+		if (!dest_num)
 			rule_dst = NULL;
-			dest_num = 0;
-		}
 	} else {
 		if (is_egress)
 			flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_ALLOW;
@@ -4739,7 +4739,6 @@
 	struct ib_device_attr *dprops = NULL;
 	struct ib_port_attr *pprops = NULL;
 	int err = -ENOMEM;
-	struct ib_udata uhw = {.inlen = 0, .outlen = 0};
 
 	pprops = kzalloc(sizeof(*pprops), GFP_KERNEL);
 	if (!pprops)
@@ -4749,7 +4748,7 @@
 	if (!dprops)
 		goto out;
 
-	err = mlx5_ib_query_device(&dev->ib_dev, dprops, &uhw);
+	err = mlx5_ib_query_device(&dev->ib_dev, dprops, NULL);
 	if (err) {
 		mlx5_ib_warn(dev, "query_device failed %d\n", err);
 		goto out;
@@ -5145,8 +5144,7 @@
 	immutable->pkey_tbl_len = attr.pkey_tbl_len;
 	immutable->gid_tbl_len = attr.gid_tbl_len;
 	immutable->core_cap_flags = get_core_cap_flags(ibdev, &rep);
-	if ((ll == IB_LINK_LAYER_INFINIBAND) || MLX5_CAP_GEN(dev->mdev, roce))
-		immutable->max_mad_size = IB_MGMT_MAD_SIZE;
+	immutable->max_mad_size = IB_MGMT_MAD_SIZE;
 
 	return 0;
 }
@@ -5249,11 +5247,9 @@
 {
 	int err;
 
-	if (MLX5_CAP_GEN(dev->mdev, roce)) {
-		err = mlx5_nic_vport_enable_roce(dev->mdev);
-		if (err)
-			return err;
-	}
+	err = mlx5_nic_vport_enable_roce(dev->mdev);
+	if (err)
+		return err;
 
 	err = mlx5_eth_lag_init(dev);
 	if (err)
@@ -5262,8 +5258,7 @@
 	return 0;
 
 err_disable_roce:
-	if (MLX5_CAP_GEN(dev->mdev, roce))
-		mlx5_nic_vport_disable_roce(dev->mdev);
+	mlx5_nic_vport_disable_roce(dev->mdev);
 
 	return err;
 }
@@ -5271,8 +5266,7 @@
 static void mlx5_disable_eth(struct mlx5_ib_dev *dev)
 {
 	mlx5_eth_lag_cleanup(dev);
-	if (MLX5_CAP_GEN(dev->mdev, roce))
-		mlx5_nic_vport_disable_roce(dev->mdev);
+	mlx5_nic_vport_disable_roce(dev->mdev);
 }
 
 struct mlx5_ib_counter {
@@ -5641,9 +5635,10 @@
 	const struct mlx5_ib_counters *cnts =
 		get_counters(dev, counter->port - 1);
 
-	/* Q counters are in the beginning of all counters */
 	return rdma_alloc_hw_stats_struct(cnts->names,
-					  cnts->num_q_counters,
+					  cnts->num_q_counters +
+					  cnts->num_cong_counters +
+					  cnts->num_ext_ppcnt_counters,
 					  RDMA_HW_STATS_DEFAULT_LIFESPAN);
 }
 
@@ -6175,7 +6170,7 @@
 
 	err = set_has_smi_cap(dev);
 	if (err)
-		return err;
+		goto err_mp;
 
 	if (!mlx5_core_mp_enabled(mdev)) {
 		for (i = 1; i <= dev->num_ports; i++) {
@@ -6215,8 +6210,7 @@
 
 err_mp:
 	mlx5_ib_cleanup_multiport_master(dev);
-
-	return -ENOMEM;
+	return err;
 }
 
 static int mlx5_ib_stage_flow_db_init(struct mlx5_ib_dev *dev)
@@ -6444,7 +6438,7 @@
 	.query_port = mlx5_ib_rep_query_port,
 };
 
-static int mlx5_ib_stage_rep_non_default_cb(struct mlx5_ib_dev *dev)
+static int mlx5_ib_stage_raw_eth_non_default_cb(struct mlx5_ib_dev *dev)
 {
 	ib_set_device_ops(&dev->ib_dev, &mlx5_ib_dev_port_rep_ops);
 	return 0;
@@ -6484,7 +6478,7 @@
 	mlx5_remove_netdev_notifier(dev, port_num);
 }
 
-static int mlx5_ib_stage_rep_roce_init(struct mlx5_ib_dev *dev)
+static int mlx5_ib_stage_raw_eth_roce_init(struct mlx5_ib_dev *dev)
 {
 	struct mlx5_core_dev *mdev = dev->mdev;
 	enum rdma_link_layer ll;
@@ -6500,7 +6494,7 @@
 	return err;
 }
 
-static void mlx5_ib_stage_rep_roce_cleanup(struct mlx5_ib_dev *dev)
+static void mlx5_ib_stage_raw_eth_roce_cleanup(struct mlx5_ib_dev *dev)
 {
 	mlx5_ib_stage_common_roce_cleanup(dev);
 }
@@ -6628,7 +6622,7 @@
 
 	err = mlx5_alloc_bfreg(dev->mdev, &dev->fp_bfreg, false, true);
 	if (err)
-		mlx5_free_bfreg(dev->mdev, &dev->fp_bfreg);
+		mlx5_free_bfreg(dev->mdev, &dev->bfreg);
 
 	return err;
 }
@@ -6714,6 +6708,8 @@
 		      const struct mlx5_ib_profile *profile,
 		      int stage)
 {
+	dev->ib_active = false;
+
 	/* Number of stages to cleanup */
 	while (stage) {
 		stage--;
@@ -6807,7 +6803,7 @@
 		     mlx5_ib_stage_delay_drop_cleanup),
 };
 
-const struct mlx5_ib_profile uplink_rep_profile = {
+const struct mlx5_ib_profile raw_eth_profile = {
 	STAGE_CREATE(MLX5_IB_STAGE_INIT,
 		     mlx5_ib_stage_init_init,
 		     mlx5_ib_stage_init_cleanup),
@@ -6818,11 +6814,11 @@
 		     mlx5_ib_stage_caps_init,
 		     NULL),
 	STAGE_CREATE(MLX5_IB_STAGE_NON_DEFAULT_CB,
-		     mlx5_ib_stage_rep_non_default_cb,
+		     mlx5_ib_stage_raw_eth_non_default_cb,
 		     NULL),
 	STAGE_CREATE(MLX5_IB_STAGE_ROCE,
-		     mlx5_ib_stage_rep_roce_init,
-		     mlx5_ib_stage_rep_roce_cleanup),
+		     mlx5_ib_stage_raw_eth_roce_init,
+		     mlx5_ib_stage_raw_eth_roce_cleanup),
 	STAGE_CREATE(MLX5_IB_STAGE_SRQ,
 		     mlx5_init_srq_table,
 		     mlx5_cleanup_srq_table),
@@ -6898,6 +6894,7 @@
 
 static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
 {
+	const struct mlx5_ib_profile *profile;
 	enum rdma_link_layer ll;
 	struct mlx5_ib_dev *dev;
 	int port_type_cap;
@@ -6933,7 +6930,12 @@
 	dev->mdev = mdev;
 	dev->num_ports = num_ports;
 
-	return __mlx5_ib_add(dev, &pf_profile);
+	if (ll == IB_LINK_LAYER_ETHERNET && !mlx5_is_roce_enabled(mdev))
+		profile = &raw_eth_profile;
+	else
+		profile = &pf_profile;
+
+	return __mlx5_ib_add(dev, profile);
 }
 
 static void mlx5_ib_remove(struct mlx5_core_dev *mdev, void *context)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -283,6 +283,7 @@
 	unsigned		head;
 	unsigned		tail;
 	u16			cur_post;
+	u16			last_poll;
 	void			*cur_edge;
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/mr.c
@@ -428,7 +428,7 @@
 
 	if (entry < 0 || entry >= MAX_MR_CACHE_ENTRIES) {
 		mlx5_ib_err(dev, "cache entry %d is out of range\n", entry);
-		return NULL;
+		return ERR_PTR(-EINVAL);
 	}
 
 	ent = &cache->ent[entry];
@@ -779,7 +779,7 @@
 		if (order)
 			*order = ilog2(roundup_pow_of_two(*ncont));
 	} else {
-		u = ib_umem_get(udata, start, length, access_flags, 0);
+		u = ib_umem_get(udata, start, length, access_flags);
 		if (IS_ERR(u)) {
 			mlx5_ib_dbg(dev, "umem get failed (%ld)\n", PTR_ERR(u));
 			return PTR_ERR(u);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/qp.c
@@ -749,7 +749,7 @@
 {
 	int err;
 
-	*umem = ib_umem_get(udata, addr, size, 0, 0);
+	*umem = ib_umem_get(udata, addr, size, 0);
 	if (IS_ERR(*umem)) {
 		mlx5_ib_dbg(dev, "umem_get failed\n");
 		return PTR_ERR(*umem);
@@ -806,7 +806,7 @@
 	if (!ucmd->buf_addr)
 		return -EINVAL;
 
-	rwq->umem = ib_umem_get(udata, ucmd->buf_addr, rwq->buf_size, 0, 0);
+	rwq->umem = ib_umem_get(udata, ucmd->buf_addr, rwq->buf_size, 0);
 	if (IS_ERR(rwq->umem)) {
 		mlx5_ib_dbg(dev, "umem_get failed\n");
 		err = PTR_ERR(rwq->umem);
@@ -1463,6 +1463,8 @@
 	u16 uid = to_mpd(pd)->uid;
 	u32 out[MLX5_ST_SZ_DW(create_tir_out)] = {};
 
+	if (!qp->sq.wqe_cnt && !qp->rq.wqe_cnt)
+		return -EINVAL;
 	if (qp->sq.wqe_cnt) {
 		err = create_raw_packet_qp_tis(dev, qp, sq, tdn, pd);
 		if (err)
@@ -3391,9 +3393,6 @@
 	struct mlx5_ib_qp_base *base;
 	u32 set_id;
 
-	if (!MLX5_CAP_GEN(dev->mdev, rts2rts_qp_counters_set_id))
-		return 0;
-
 	if (counter)
 		set_id = counter->id;
 	else
@@ -3728,6 +3727,7 @@
 		qp->sq.cur_post = 0;
 		if (qp->sq.wqe_cnt)
 			qp->sq.cur_edge = get_sq_edge(&qp->sq, 0);
+		qp->sq.last_poll = 0;
 		qp->db.db[MLX5_RCV_DBR] = 0;
 		qp->db.db[MLX5_SND_DBR] = 0;
 	}
@@ -5498,7 +5498,9 @@
 	rdma_ah_set_path_bits(ah_attr, path->grh_mlid & 0x7f);
 	rdma_ah_set_static_rate(ah_attr,
 				path->static_rate ? path->static_rate - 5 : 0);
-	if (path->grh_mlid & (1 << 7)) {
+
+	if (path->grh_mlid & (1 << 7) ||
+	    ah_attr->type == RDMA_AH_ATTR_TYPE_ROCE) {
 		u32 tc_fl = be32_to_cpu(path->tclass_flowlabel);
 
 		rdma_ah_set_grh(ah_attr, NULL,
@@ -6134,6 +6136,10 @@
 	if (udata->outlen && udata->outlen < min_resp_len)
 		return ERR_PTR(-EINVAL);
 
+	if (!capable(CAP_SYS_RAWIO) &&
+	    init_attr->create_flags & IB_WQ_FLAGS_DELAY_DROP)
+		return ERR_PTR(-EPERM);
+
 	dev = to_mdev(pd->device);
 	switch (init_attr->wq_type) {
 	case IB_WQT_RQ:
@@ -6503,6 +6509,7 @@
  */
 int mlx5_ib_qp_set_counter(struct ib_qp *qp, struct rdma_counter *counter)
 {
+	struct mlx5_ib_dev *dev = to_mdev(qp->device);
 	struct mlx5_ib_qp *mqp = to_mqp(qp);
 	int err = 0;
 
@@ -6512,6 +6519,11 @@
 		goto out;
 	}
 
+	if (!MLX5_CAP_GEN(dev->mdev, rts2rts_qp_counters_set_id)) {
+		err = -EOPNOTSUPP;
+		goto out;
+	}
+
 	if (mqp->state == IB_QPS_RTS) {
 		err = __mlx5_ib_qp_set_counter(qp, counter);
 		if (!err)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/srq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/srq.c
@@ -80,7 +80,7 @@
 
 	srq->wq_sig = !!(ucmd.flags & MLX5_SRQ_FLAG_SIGNATURE);
 
-	srq->umem = ib_umem_get(udata, ucmd.buf_addr, buf_size, 0, 0);
+	srq->umem = ib_umem_get(udata, ucmd.buf_addr, buf_size, 0);
 	if (IS_ERR(srq->umem)) {
 		mlx5_ib_dbg(dev, "failed umem get, size %d\n", buf_size);
 		err = PTR_ERR(srq->umem);
@@ -310,12 +310,18 @@
 	srq->msrq.event = mlx5_ib_srq_event;
 	srq->ibsrq.ext.xrc.srq_num = srq->msrq.srqn;
 
-	if (udata)
-		if (ib_copy_to_udata(udata, &srq->msrq.srqn, sizeof(__u32))) {
+	if (udata) {
+		struct mlx5_ib_create_srq_resp resp = {
+			.srqn = srq->msrq.srqn,
+		};
+
+		if (ib_copy_to_udata(udata, &resp, min(udata->outlen,
+				     sizeof(resp)))) {
 			mlx5_ib_dbg(dev, "copy to user failed\n");
 			err = -EFAULT;
 			goto err_core;
 		}
+	}
 
 	init_attr->attr.max_wr = srq->msrq.max - 1;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mlx5/srq_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mlx5/srq_cmd.c
@@ -83,11 +83,11 @@
 	struct mlx5_srq_table *table = &dev->srq_table;
 	struct mlx5_core_srq *srq;
 
-	xa_lock(&table->array);
+	xa_lock_irq(&table->array);
 	srq = xa_load(&table->array, srqn);
 	if (srq)
 		refcount_inc(&srq->common.refcount);
-	xa_unlock(&table->array);
+	xa_unlock_irq(&table->array);
 
 	return srq;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mthca/mthca_cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mthca/mthca_cq.c
@@ -604,7 +604,7 @@
 			entry->byte_len  = MTHCA_ATOMIC_BYTE_LEN;
 			break;
 		default:
-			entry->opcode    = MTHCA_OPCODE_INVALID;
+			entry->opcode = 0xFF;
 			break;
 		}
 	} else {
@@ -803,8 +803,10 @@
 	}
 
 	mailbox = mthca_alloc_mailbox(dev, GFP_KERNEL);
-	if (IS_ERR(mailbox))
+	if (IS_ERR(mailbox)) {
+		err = PTR_ERR(mailbox);
 		goto err_out_arm;
+	}
 
 	cq_context = mailbox->buf;
 
@@ -846,9 +848,9 @@
 	}
 
 	spin_lock_irq(&dev->cq_table.lock);
-	if (mthca_array_set(&dev->cq_table.cq,
-			    cq->cqn & (dev->limits.num_cqs - 1),
-			    cq)) {
+	err = mthca_array_set(&dev->cq_table.cq,
+			      cq->cqn & (dev->limits.num_cqs - 1), cq);
+	if (err) {
 		spin_unlock_irq(&dev->cq_table.lock);
 		goto err_out_free_mr;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mthca/mthca_dev.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mthca/mthca_dev.h
@@ -105,7 +105,6 @@
 	MTHCA_OPCODE_ATOMIC_CS      = 0x11,
 	MTHCA_OPCODE_ATOMIC_FA      = 0x12,
 	MTHCA_OPCODE_BIND_MW        = 0x18,
-	MTHCA_OPCODE_INVALID        = 0xff
 };
 
 enum {
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/mthca/mthca_provider.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -880,9 +880,7 @@
 	if (!mr)
 		return ERR_PTR(-ENOMEM);
 
-	mr->umem = ib_umem_get(udata, start, length, acc,
-			       ucmd.mr_attrs & MTHCA_MR_DMASYNC);
-
+	mr->umem = ib_umem_get(udata, start, length, acc);
 	if (IS_ERR(mr->umem)) {
 		err = PTR_ERR(mr->umem);
 		goto err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -442,9 +442,9 @@
 		pr_err("%s(%d) Freeing in use pdid=0x%x.\n",
 		       __func__, dev->id, pd->id);
 	}
-	kfree(uctx->cntxt_pd);
 	uctx->cntxt_pd = NULL;
 	_ocrdma_dealloc_pd(dev, pd);
+	kfree(pd);
 }
 
 static struct ocrdma_pd *ocrdma_get_ucontext_pd(struct ocrdma_ucontext *uctx)
@@ -875,7 +875,7 @@
 	mr = kzalloc(sizeof(*mr), GFP_KERNEL);
 	if (!mr)
 		return ERR_PTR(status);
-	mr->umem = ib_umem_get(udata, start, len, acc, 0);
+	mr->umem = ib_umem_get(udata, start, len, acc);
 	if (IS_ERR(mr->umem)) {
 		status = -EFAULT;
 		goto umem_err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/qedr/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/qedr/main.c
@@ -357,9 +357,10 @@
 		return -ENOMEM;
 
 	spin_lock_init(&dev->sgid_lock);
+	xa_init_flags(&dev->srqs, XA_FLAGS_LOCK_IRQ);
 
 	if (IS_IWARP(dev)) {
-		xa_init_flags(&dev->qps, XA_FLAGS_LOCK_IRQ);
+		xa_init(&dev->qps);
 		dev->iwarp_wq = create_singlethread_workqueue("qedr_iwarpq");
 	}
 
@@ -600,7 +601,7 @@
 	qed_attr = dev->ops->rdma_query_device(dev->rdma_ctx);
 
 	/* Part 2 - check capabilities */
-	page_size = ~dev->attr.page_size_caps + 1;
+	page_size = ~qed_attr->page_size_caps + 1;
 	if (page_size > PAGE_SIZE) {
 		DP_ERR(dev,
 		       "Kernel PAGE_SIZE is %ld which is smaller than minimum page size (%d) required by qedr\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/qedr/qedr.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/qedr/qedr.h
@@ -40,6 +40,7 @@
 #include <linux/qed/qed_rdma_if.h>
 #include <linux/qed/qede_rdma.h>
 #include <linux/qed/roce_common.h>
+#include <linux/completion.h>
 #include "qedr_hsi_rdma.h"
 
 #define QEDR_NODE_DESC "QLogic 579xx RoCE HCA"
@@ -348,10 +349,10 @@
 	u32 wqe_prod;
 	u32 sge_prod;
 	u32 wr_prod_cnt;
-	u32 wr_cons_cnt;
+	atomic_t wr_cons_cnt;
 	u32 num_elems;
 
-	u32 *virt_prod_pair_addr;
+	struct rdma_srq_producers *virt_prod_pair_addr;
 	dma_addr_t phy_prod_pair_addr;
 };
 
@@ -377,10 +378,20 @@
 	QEDR_QP_ERR_RQ_PBL_FULL = 32,
 };
 
+enum qedr_qp_create_type {
+	QEDR_QP_CREATE_NONE,
+	QEDR_QP_CREATE_USER,
+	QEDR_QP_CREATE_KERNEL,
+};
+
+enum qedr_iwarp_cm_flags {
+	QEDR_IWARP_CM_WAIT_FOR_CONNECT    = BIT(0),
+	QEDR_IWARP_CM_WAIT_FOR_DISCONNECT = BIT(1),
+};
+
 struct qedr_qp {
 	struct ib_qp ibqp;	/* must be first */
 	struct qedr_dev *dev;
-	struct qedr_iw_ep *ep;
 	struct qedr_qp_hwq_info sq;
 	struct qedr_qp_hwq_info rq;
 
@@ -395,6 +406,7 @@
 	u32 id;
 	struct qedr_pd *pd;
 	enum ib_qp_type qp_type;
+	enum qedr_qp_create_type create_type;
 	struct qed_rdma_qp *qed_qp;
 	u32 qp_id;
 	u16 icid;
@@ -437,8 +449,11 @@
 	/* Relevant to qps created from user space only (applications) */
 	struct qedr_userq usq;
 	struct qedr_userq urq;
-	atomic_t refcnt;
-	bool destroyed;
+
+	/* synchronization objects used with iwarp ep */
+	struct kref refcnt;
+	struct completion iwarp_cm_comp;
+	unsigned long iwarp_cm_flags; /* enum iwarp_cm_flags */
 };
 
 struct qedr_ah {
@@ -531,7 +546,7 @@
 	struct iw_cm_id	*cm_id;
 	struct qedr_qp	*qp;
 	void		*qed_context;
-	u8		during_connect;
+	struct kref	refcnt;
 };
 
 static inline
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/qedr/qedr_iw_cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/qedr/qedr_iw_cm.c
@@ -79,6 +79,27 @@
 	}
 }
 
+static void qedr_iw_free_qp(struct kref *ref)
+{
+	struct qedr_qp *qp = container_of(ref, struct qedr_qp, refcnt);
+
+	kfree(qp);
+}
+
+static void
+qedr_iw_free_ep(struct kref *ref)
+{
+	struct qedr_iw_ep *ep = container_of(ref, struct qedr_iw_ep, refcnt);
+
+	if (ep->qp)
+		kref_put(&ep->qp->refcnt, qedr_iw_free_qp);
+
+	if (ep->cm_id)
+		ep->cm_id->rem_ref(ep->cm_id);
+
+	kfree(ep);
+}
+
 static void
 qedr_iw_mpa_request(void *context, struct qed_iwarp_cm_event_params *params)
 {
@@ -93,6 +114,7 @@
 
 	ep->dev = dev;
 	ep->qed_context = params->ep_context;
+	kref_init(&ep->refcnt);
 
 	memset(&event, 0, sizeof(event));
 	event.event = IW_CM_EVENT_CONNECT_REQUEST;
@@ -128,8 +150,17 @@
 	if (params->cm_info) {
 		event.ird = params->cm_info->ird;
 		event.ord = params->cm_info->ord;
-		event.private_data_len = params->cm_info->private_data_len;
-		event.private_data = (void *)params->cm_info->private_data;
+		/* Only connect_request and reply have valid private data
+		 * the rest of the events this may be left overs from
+		 * connection establishment. CONNECT_REQUEST is issued via
+		 * qedr_iw_mpa_request
+		 */
+		if (event_type == IW_CM_EVENT_CONNECT_REPLY) {
+			event.private_data_len =
+				params->cm_info->private_data_len;
+			event.private_data =
+				(void *)params->cm_info->private_data;
+		}
 	}
 
 	if (ep->cm_id)
@@ -141,12 +172,10 @@
 {
 	struct qedr_iw_ep *ep = (struct qedr_iw_ep *)context;
 
-	if (ep->cm_id) {
+	if (ep->cm_id)
 		qedr_iw_issue_event(context, params, IW_CM_EVENT_CLOSE);
 
-		ep->cm_id->rem_ref(ep->cm_id);
-		ep->cm_id = NULL;
-	}
+	kref_put(&ep->refcnt, qedr_iw_free_ep);
 }
 
 static void
@@ -186,11 +215,13 @@
 	struct qedr_qp *qp = ep->qp;
 	struct iw_cm_event event;
 
-	if (qp->destroyed) {
-		kfree(dwork);
-		qedr_iw_qp_rem_ref(&qp->ibqp);
-		return;
-	}
+	/* The qp won't be released until we release the ep.
+	 * the ep's refcnt was increased before calling this
+	 * function, therefore it is safe to access qp
+	 */
+	if (test_and_set_bit(QEDR_IWARP_CM_WAIT_FOR_DISCONNECT,
+			     &qp->iwarp_cm_flags))
+		goto out;
 
 	memset(&event, 0, sizeof(event));
 	event.status = dwork->status;
@@ -204,7 +235,6 @@
 	else
 		qp_params.new_state = QED_ROCE_QP_STATE_SQD;
 
-	kfree(dwork);
 
 	if (ep->cm_id)
 		ep->cm_id->event_handler(ep->cm_id, &event);
@@ -214,7 +244,10 @@
 
 	dev->ops->rdma_modify_qp(dev->rdma_ctx, qp->qed_qp, &qp_params);
 
-	qedr_iw_qp_rem_ref(&qp->ibqp);
+	complete(&ep->qp->iwarp_cm_comp);
+out:
+	kfree(dwork);
+	kref_put(&ep->refcnt, qedr_iw_free_ep);
 }
 
 static void
@@ -224,13 +257,17 @@
 	struct qedr_discon_work *work;
 	struct qedr_iw_ep *ep = (struct qedr_iw_ep *)context;
 	struct qedr_dev *dev = ep->dev;
-	struct qedr_qp *qp = ep->qp;
 
 	work = kzalloc(sizeof(*work), GFP_ATOMIC);
 	if (!work)
 		return;
 
-	qedr_iw_qp_add_ref(&qp->ibqp);
+	/* We can't get a close event before disconnect, but since
+	 * we're scheduling a work queue we need to make sure close
+	 * won't delete the ep, so we increase the refcnt
+	 */
+	kref_get(&ep->refcnt);
+
 	work->ep = ep;
 	work->event = params->event;
 	work->status = params->status;
@@ -252,16 +289,30 @@
 	if ((params->status == -ECONNREFUSED) && (!ep->qp)) {
 		DP_DEBUG(dev, QEDR_MSG_IWARP,
 			 "PASSIVE connection refused releasing ep...\n");
-		kfree(ep);
+		kref_put(&ep->refcnt, qedr_iw_free_ep);
 		return;
 	}
 
+	complete(&ep->qp->iwarp_cm_comp);
 	qedr_iw_issue_event(context, params, IW_CM_EVENT_ESTABLISHED);
 
 	if (params->status < 0)
 		qedr_iw_close_event(context, params);
 }
 
+static void
+qedr_iw_active_complete(void *context,
+			struct qed_iwarp_cm_event_params *params)
+{
+	struct qedr_iw_ep *ep = (struct qedr_iw_ep *)context;
+
+	complete(&ep->qp->iwarp_cm_comp);
+	qedr_iw_issue_event(context, params, IW_CM_EVENT_CONNECT_REPLY);
+
+	if (params->status < 0)
+		kref_put(&ep->refcnt, qedr_iw_free_ep);
+}
+
 static int
 qedr_iw_mpa_reply(void *context, struct qed_iwarp_cm_event_params *params)
 {
@@ -288,27 +339,15 @@
 		qedr_iw_mpa_reply(context, params);
 		break;
 	case QED_IWARP_EVENT_PASSIVE_COMPLETE:
-		ep->during_connect = 0;
 		qedr_iw_passive_complete(context, params);
 		break;
-
 	case QED_IWARP_EVENT_ACTIVE_COMPLETE:
-		ep->during_connect = 0;
-		qedr_iw_issue_event(context,
-				    params,
-				    IW_CM_EVENT_CONNECT_REPLY);
-		if (params->status < 0) {
-			struct qedr_iw_ep *ep = (struct qedr_iw_ep *)context;
-
-			ep->cm_id->rem_ref(ep->cm_id);
-			ep->cm_id = NULL;
-		}
+		qedr_iw_active_complete(context, params);
 		break;
 	case QED_IWARP_EVENT_DISCONNECT:
 		qedr_iw_disconnect_event(context, params);
 		break;
 	case QED_IWARP_EVENT_CLOSE:
-		ep->during_connect = 0;
 		qedr_iw_close_event(context, params);
 		break;
 	case QED_IWARP_EVENT_RQ_EMPTY:
@@ -451,10 +490,10 @@
 
 	if ((!dst) || dst->error) {
 		if (dst) {
-			dst_release(dst);
 			DP_ERR(dev,
 			       "ip6_route_output returned dst->error = %d\n",
 			       dst->error);
+			dst_release(dst);
 		}
 		return -EINVAL;
 	}
@@ -476,6 +515,19 @@
 	return rc;
 }
 
+struct qedr_qp *qedr_iw_load_qp(struct qedr_dev *dev, u32 qpn)
+{
+	struct qedr_qp *qp;
+
+	xa_lock(&dev->qps);
+	qp = xa_load(&dev->qps, qpn);
+	if (qp)
+		kref_get(&qp->refcnt);
+	xa_unlock(&dev->qps);
+
+	return qp;
+}
+
 int qedr_iw_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 {
 	struct qedr_dev *dev = get_qedr_dev(cm_id->device);
@@ -491,10 +543,6 @@
 	int rc = 0;
 	int i;
 
-	qp = xa_load(&dev->qps, conn_param->qpn);
-	if (unlikely(!qp))
-		return -EINVAL;
-
 	laddr = (struct sockaddr_in *)&cm_id->m_local_addr;
 	raddr = (struct sockaddr_in *)&cm_id->m_remote_addr;
 	laddr6 = (struct sockaddr_in6 *)&cm_id->m_local_addr;
@@ -516,8 +564,15 @@
 		return -ENOMEM;
 
 	ep->dev = dev;
+	kref_init(&ep->refcnt);
+
+	qp = qedr_iw_load_qp(dev, conn_param->qpn);
+	if (!qp) {
+		rc = -EINVAL;
+		goto err;
+	}
+
 	ep->qp = qp;
-	qp->ep = ep;
 	cm_id->add_ref(cm_id);
 	ep->cm_id = cm_id;
 
@@ -580,16 +635,20 @@
 	in_params.qp = qp->qed_qp;
 	memcpy(in_params.local_mac_addr, dev->ndev->dev_addr, ETH_ALEN);
 
-	ep->during_connect = 1;
+	if (test_and_set_bit(QEDR_IWARP_CM_WAIT_FOR_CONNECT,
+			     &qp->iwarp_cm_flags))
+		goto err; /* QP already being destroyed */
+
 	rc = dev->ops->iwarp_connect(dev->rdma_ctx, &in_params, &out_params);
-	if (rc)
+	if (rc) {
+		complete(&qp->iwarp_cm_comp);
 		goto err;
+	}
 
 	return rc;
 
 err:
-	cm_id->rem_ref(cm_id);
-	kfree(ep);
+	kref_put(&ep->refcnt, qedr_iw_free_ep);
 	return rc;
 }
 
@@ -668,6 +727,7 @@
 						    listener->qed_handle);
 
 	cm_id->rem_ref(cm_id);
+	kfree(listener);
 	return rc;
 }
 
@@ -681,14 +741,13 @@
 
 	DP_DEBUG(dev, QEDR_MSG_IWARP, "Accept on qpid=%d\n", conn_param->qpn);
 
-	qp = xa_load(&dev->qps, conn_param->qpn);
+	qp = qedr_iw_load_qp(dev, conn_param->qpn);
 	if (!qp) {
 		DP_ERR(dev, "Invalid QP number %d\n", conn_param->qpn);
 		return -EINVAL;
 	}
 
 	ep->qp = qp;
-	qp->ep = ep;
 	cm_id->add_ref(cm_id);
 	ep->cm_id = cm_id;
 
@@ -700,15 +759,23 @@
 	params.ird = conn_param->ird;
 	params.ord = conn_param->ord;
 
-	ep->during_connect = 1;
+	if (test_and_set_bit(QEDR_IWARP_CM_WAIT_FOR_CONNECT,
+			     &qp->iwarp_cm_flags)) {
+		rc = -EINVAL;
+		goto err; /* QP already destroyed */
+	}
+
 	rc = dev->ops->iwarp_accept(dev->rdma_ctx, &params);
-	if (rc)
+	if (rc) {
+		complete(&qp->iwarp_cm_comp);
 		goto err;
+	}
 
 	return rc;
+
 err:
-	ep->during_connect = 0;
-	cm_id->rem_ref(cm_id);
+	kref_put(&ep->refcnt, qedr_iw_free_ep);
+
 	return rc;
 }
 
@@ -731,17 +798,14 @@
 {
 	struct qedr_qp *qp = get_qedr_qp(ibqp);
 
-	atomic_inc(&qp->refcnt);
+	kref_get(&qp->refcnt);
 }
 
 void qedr_iw_qp_rem_ref(struct ib_qp *ibqp)
 {
 	struct qedr_qp *qp = get_qedr_qp(ibqp);
 
-	if (atomic_dec_and_test(&qp->refcnt)) {
-		xa_erase_irq(&qp->dev->qps, qp->qp_id);
-		kfree(qp);
-	}
+	kref_put(&qp->refcnt, qedr_iw_free_qp);
 }
 
 struct ib_qp *qedr_iw_get_qp(struct ib_device *ibdev, int qpn)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/qedr/verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/qedr/verbs.c
@@ -51,6 +51,7 @@
 #include "verbs.h"
 #include <rdma/qedr-abi.h>
 #include "qedr_roce_cm.h"
+#include "qedr_iw_cm.h"
 
 #define QEDR_SRQ_WQE_ELEM_SIZE	sizeof(union rdma_srq_elm)
 #define	RDMA_MAX_SGE_PER_SRQ	(4)
@@ -697,7 +698,7 @@
 static inline int qedr_init_user_queue(struct ib_udata *udata,
 				       struct qedr_dev *dev,
 				       struct qedr_userq *q, u64 buf_addr,
-				       size_t buf_len, int access, int dmasync,
+				       size_t buf_len, int access,
 				       int alloc_and_init)
 {
 	u32 fw_pages;
@@ -705,7 +706,7 @@
 
 	q->buf_addr = buf_addr;
 	q->buf_len = buf_len;
-	q->umem = ib_umem_get(udata, q->buf_addr, q->buf_len, access, dmasync);
+	q->umem = ib_umem_get(udata, q->buf_addr, q->buf_len, access);
 	if (IS_ERR(q->umem)) {
 		DP_ERR(dev, "create user queue: failed ib_umem_get, got %ld\n",
 		       PTR_ERR(q->umem));
@@ -856,8 +857,7 @@
 		cq->cq_type = QEDR_CQ_TYPE_USER;
 
 		rc = qedr_init_user_queue(udata, dev, &cq->q, ureq.addr,
-					  ureq.len, IB_ACCESS_LOCAL_WRITE, 1,
-					  1);
+					  ureq.len, IB_ACCESS_LOCAL_WRITE, 1);
 		if (rc)
 			goto err0;
 
@@ -1193,7 +1193,10 @@
 				      struct ib_qp_init_attr *attrs)
 {
 	spin_lock_init(&qp->q_lock);
-	atomic_set(&qp->refcnt, 1);
+	if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
+		kref_init(&qp->refcnt);
+		init_completion(&qp->iwarp_cm_comp);
+	}
 	qp->pd = pd;
 	qp->qp_type = attrs->qp_type;
 	qp->max_inline_data = attrs->cap.max_inline_data;
@@ -1279,19 +1282,19 @@
 static int qedr_init_srq_user_params(struct ib_udata *udata,
 				     struct qedr_srq *srq,
 				     struct qedr_create_srq_ureq *ureq,
-				     int access, int dmasync)
+				     int access)
 {
 	struct scatterlist *sg;
 	int rc;
 
 	rc = qedr_init_user_queue(udata, srq->dev, &srq->usrq, ureq->srq_addr,
-				  ureq->srq_len, access, dmasync, 1);
+				  ureq->srq_len, access, 1);
 	if (rc)
 		return rc;
 
 	srq->prod_umem =
 		ib_umem_get(udata, ureq->prod_pair_addr,
-			    sizeof(struct rdma_srq_producers), access, dmasync);
+			    sizeof(struct rdma_srq_producers), access);
 	if (IS_ERR(srq->prod_umem)) {
 		qedr_free_pbl(srq->dev, &srq->usrq.pbl_info, srq->usrq.pbl_tbl);
 		ib_umem_release(srq->usrq.umem);
@@ -1387,7 +1390,7 @@
 			goto err0;
 		}
 
-		rc = qedr_init_srq_user_params(udata, srq, &ureq, 0, 0);
+		rc = qedr_init_srq_user_params(udata, srq, &ureq, 0);
 		if (rc)
 			goto err0;
 
@@ -1577,6 +1580,14 @@
 
 	ib_umem_release(qp->urq.umem);
 	qp->urq.umem = NULL;
+
+	if (rdma_protocol_roce(&dev->ibdev, 1)) {
+		qedr_free_pbl(dev, &qp->usq.pbl_info, qp->usq.pbl_tbl);
+		qedr_free_pbl(dev, &qp->urq.pbl_info, qp->urq.pbl_tbl);
+	} else {
+		kfree(qp->usq.pbl_tbl);
+		kfree(qp->urq.pbl_tbl);
+	}
 }
 
 static int qedr_create_user_qp(struct qedr_dev *dev,
@@ -1592,6 +1603,7 @@
 	int alloc_and_init = rdma_protocol_roce(&dev->ibdev, 1);
 	int rc = -EINVAL;
 
+	qp->create_type = QEDR_QP_CREATE_USER;
 	memset(&ureq, 0, sizeof(ureq));
 	rc = ib_copy_from_udata(&ureq, udata, sizeof(ureq));
 	if (rc) {
@@ -1599,16 +1611,16 @@
 		return rc;
 	}
 
-	/* SQ - read access only (0), dma sync not required (0) */
+	/* SQ - read access only (0) */
 	rc = qedr_init_user_queue(udata, dev, &qp->usq, ureq.sq_addr,
-				  ureq.sq_len, 0, 0, alloc_and_init);
+				  ureq.sq_len, 0, alloc_and_init);
 	if (rc)
 		return rc;
 
 	if (!qp->srq) {
-		/* RQ - read access only (0), dma sync not required (0) */
+		/* RQ - read access only (0) */
 		rc = qedr_init_user_queue(udata, dev, &qp->urq, ureq.rq_addr,
-					  ureq.rq_len, 0, 0, alloc_and_init);
+					  ureq.rq_len, 0, alloc_and_init);
 		if (rc)
 			return rc;
 	}
@@ -1805,6 +1817,7 @@
 	u32 n_sq_entries;
 
 	memset(&in_params, 0, sizeof(in_params));
+	qp->create_type = QEDR_QP_CREATE_KERNEL;
 
 	/* A single work request may take up to QEDR_MAX_SQ_WQE_SIZE elements in
 	 * the ring. The ring should allow at least a single WR, even if the
@@ -1918,7 +1931,7 @@
 	qp->ibqp.qp_num = qp->qp_id;
 
 	if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
-		rc = xa_insert_irq(&dev->qps, qp->qp_id, qp, GFP_KERNEL);
+		rc = xa_insert(&dev->qps, qp->qp_id, qp, GFP_KERNEL);
 		if (rc)
 			goto err;
 	}
@@ -2391,7 +2404,7 @@
 	qp_attr->cap.max_recv_wr = qp->rq.max_wr;
 	qp_attr->cap.max_send_sge = qp->sq.max_sges;
 	qp_attr->cap.max_recv_sge = qp->rq.max_sges;
-	qp_attr->cap.max_inline_data = ROCE_REQ_MAX_INLINE_DATA_SIZE;
+	qp_attr->cap.max_inline_data = dev->attr.max_inline;
 	qp_init_attr->cap = qp_attr->cap;
 
 	qp_attr->ah_attr.type = RDMA_AH_ATTR_TYPE_ROCE;
@@ -2437,7 +2450,7 @@
 			return rc;
 	}
 
-	if (udata)
+	if (qp->create_type == QEDR_QP_CREATE_USER)
 		qedr_cleanup_user(dev, qp);
 	else
 		qedr_cleanup_kernel(dev, qp);
@@ -2467,34 +2480,46 @@
 			qedr_modify_qp(ibqp, &attr, attr_mask, NULL);
 		}
 	} else {
-		/* Wait for the connect/accept to complete */
-		if (qp->ep) {
-			int wait_count = 1;
-
-			while (qp->ep->during_connect) {
-				DP_DEBUG(dev, QEDR_MSG_QP,
-					 "Still in during connect/accept\n");
-
-				msleep(100);
-				if (wait_count++ > 200) {
-					DP_NOTICE(dev,
-						  "during connect timeout\n");
-					break;
-				}
-			}
-		}
+		/* If connection establishment started the WAIT_FOR_CONNECT
+		 * bit will be on and we need to Wait for the establishment
+		 * to complete before destroying the qp.
+		 */
+		if (test_and_set_bit(QEDR_IWARP_CM_WAIT_FOR_CONNECT,
+				     &qp->iwarp_cm_flags))
+			wait_for_completion(&qp->iwarp_cm_comp);
+
+		/* If graceful disconnect started, the WAIT_FOR_DISCONNECT
+		 * bit will be on, and we need to wait for the disconnect to
+		 * complete before continuing. We can use the same completion,
+		 * iwarp_cm_comp, since this is the only place that waits for
+		 * this completion and it is sequential. In addition,
+		 * disconnect can't occur before the connection is fully
+		 * established, therefore if WAIT_FOR_DISCONNECT is on it
+		 * means WAIT_FOR_CONNECT is also on and the completion for
+		 * CONNECT already occurred.
+		 */
+		if (test_and_set_bit(QEDR_IWARP_CM_WAIT_FOR_DISCONNECT,
+				     &qp->iwarp_cm_flags))
+			wait_for_completion(&qp->iwarp_cm_comp);
 	}
 
 	if (qp->qp_type == IB_QPT_GSI)
 		qedr_destroy_gsi_qp(dev);
 
+	/* We need to remove the entry from the xarray before we release the
+	 * qp_id to avoid a race of the qp_id being reallocated and failing
+	 * on xa_insert
+	 */
+	if (rdma_protocol_iwarp(&dev->ibdev, 1))
+		xa_erase(&dev->qps, qp->qp_id);
+
 	qedr_free_qp_resources(dev, qp, udata);
 
-	if (atomic_dec_and_test(&qp->refcnt) &&
-	    rdma_protocol_iwarp(&dev->ibdev, 1)) {
-		xa_erase_irq(&dev->qps, qp->qp_id);
+	if (rdma_protocol_iwarp(&dev->ibdev, 1))
+		qedr_iw_qp_rem_ref(&qp->ibqp);
+	else
 		kfree(qp);
-	}
+
 	return 0;
 }
 
@@ -2597,7 +2622,7 @@
 
 	mr->type = QEDR_MR_USER;
 
-	mr->umem = ib_umem_get(udata, start, len, acc, 0);
+	mr->umem = ib_umem_get(udata, start, len, acc);
 	if (IS_ERR(mr->umem)) {
 		rc = -EFAULT;
 		goto err0;
@@ -2673,8 +2698,8 @@
 
 	dev->ops->rdma_free_tid(dev->rdma_ctx, mr->hw_mr.itid);
 
-	if ((mr->type != QEDR_MR_DMA) && (mr->type != QEDR_MR_FRMR))
-		qedr_free_pbl(dev, &mr->info.pbl_info, mr->info.pbl_table);
+	if (mr->type != QEDR_MR_DMA)
+		free_mr_info(dev, &mr->info);
 
 	/* it could be user registered memory. */
 	ib_umem_release(mr->umem);
@@ -3436,7 +3461,7 @@
 	 * count and consumer count and subtract it from max
 	 * work request supported so that we get elements left.
 	 */
-	used = hw_srq->wr_prod_cnt - hw_srq->wr_cons_cnt;
+	used = hw_srq->wr_prod_cnt - (u32)atomic_read(&hw_srq->wr_cons_cnt);
 
 	return hw_srq->max_wr - used;
 }
@@ -3451,7 +3476,6 @@
 	unsigned long flags;
 	int status = 0;
 	u32 num_sge;
-	u32 offset;
 
 	spin_lock_irqsave(&srq->lock, flags);
 
@@ -3464,7 +3488,8 @@
 		if (!qedr_srq_elem_left(hw_srq) ||
 		    wr->num_sge > srq->hw_srq.max_sges) {
 			DP_ERR(dev, "Can't post WR  (%d,%d) || (%d > %d)\n",
-			       hw_srq->wr_prod_cnt, hw_srq->wr_cons_cnt,
+			       hw_srq->wr_prod_cnt,
+			       atomic_read(&hw_srq->wr_cons_cnt),
 			       wr->num_sge, srq->hw_srq.max_sges);
 			status = -ENOMEM;
 			*bad_wr = wr;
@@ -3498,22 +3523,20 @@
 			hw_srq->sge_prod++;
 		}
 
-		/* Flush WQE and SGE information before
+		/* Update WQE and SGE information before
 		 * updating producer.
 		 */
-		wmb();
+		dma_wmb();
 
 		/* SRQ producer is 8 bytes. Need to update SGE producer index
 		 * in first 4 bytes and need to update WQE producer in
 		 * next 4 bytes.
 		 */
-		*srq->hw_srq.virt_prod_pair_addr = hw_srq->sge_prod;
-		offset = offsetof(struct rdma_srq_producers, wqe_prod);
-		*((u8 *)srq->hw_srq.virt_prod_pair_addr + offset) =
-			hw_srq->wqe_prod;
+		srq->hw_srq.virt_prod_pair_addr->sge_prod = hw_srq->sge_prod;
+		/* Make sure sge producer is updated first */
+		dma_wmb();
+		srq->hw_srq.virt_prod_pair_addr->wqe_prod = hw_srq->wqe_prod;
 
-		/* Flush producer after updating it. */
-		wmb();
 		wr = wr->next;
 	}
 
@@ -3932,7 +3955,7 @@
 	} else {
 		__process_resp_one(dev, qp, cq, wc, resp, wr_id);
 	}
-	srq->hw_srq.wr_cons_cnt++;
+	atomic_inc(&srq->hw_srq.wr_cons_cnt);
 
 	return 1;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/qib/qib_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/qib/qib_sysfs.c
@@ -301,6 +301,9 @@
 	struct qib_pportdata *ppd =
 		container_of(kobj, struct qib_pportdata, pport_kobj);
 
+	if (!pattr->show)
+		return -EIO;
+
 	return pattr->show(ppd, buf);
 }
 
@@ -312,6 +315,9 @@
 	struct qib_pportdata *ppd =
 		container_of(kobj, struct qib_pportdata, pport_kobj);
 
+	if (!pattr->store)
+		return -EIO;
+
 	return pattr->store(ppd, buf, len);
 }
 
@@ -754,7 +760,7 @@
 		qib_dev_err(dd,
 			"Skipping linkcontrol sysfs info, (err %d) port %u\n",
 			ret, port_num);
-		goto bail;
+		goto bail_link;
 	}
 	kobject_uevent(&ppd->pport_kobj, KOBJ_ADD);
 
@@ -764,7 +770,7 @@
 		qib_dev_err(dd,
 			"Skipping sl2vl sysfs info, (err %d) port %u\n",
 			ret, port_num);
-		goto bail_link;
+		goto bail_sl;
 	}
 	kobject_uevent(&ppd->sl2vl_kobj, KOBJ_ADD);
 
@@ -774,7 +780,7 @@
 		qib_dev_err(dd,
 			"Skipping diag_counters sysfs info, (err %d) port %u\n",
 			ret, port_num);
-		goto bail_sl;
+		goto bail_diagc;
 	}
 	kobject_uevent(&ppd->diagc_kobj, KOBJ_ADD);
 
@@ -787,7 +793,7 @@
 		qib_dev_err(dd,
 		 "Skipping Congestion Control sysfs info, (err %d) port %u\n",
 		 ret, port_num);
-		goto bail_diagc;
+		goto bail_cc;
 	}
 
 	kobject_uevent(&ppd->pport_cc_kobj, KOBJ_ADD);
@@ -848,6 +854,7 @@
 				&cc_table_bin_attr);
 			kobject_put(&ppd->pport_cc_kobj);
 		}
+		kobject_put(&ppd->diagc_kobj);
 		kobject_put(&ppd->sl2vl_kobj);
 		kobject_put(&ppd->pport_kobj);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/qib/qib_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/qib/qib_verbs.c
@@ -329,8 +329,10 @@
 		if (mcast == NULL)
 			goto drop;
 		this_cpu_inc(ibp->pmastats->n_multicast_rcv);
+		rcu_read_lock();
 		list_for_each_entry_rcu(p, &mcast->qp_list, list)
 			qib_qp_rcv(rcd, hdr, 1, data, tlen, p->qp);
+		rcu_read_unlock();
 		/*
 		 * Notify rvt_multicast_detach() if it is waiting for us
 		 * to finish.
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
@@ -214,6 +214,7 @@
 
 		}
 		usnic_uiom_free_dev_list(dev_list);
+		dev_list = NULL;
 	}
 
 	/* Try to find resources on an unused vf */
@@ -239,6 +240,8 @@
 qp_grp_check:
 	if (IS_ERR_OR_NULL(qp_grp)) {
 		usnic_err("Failed to allocate qp_grp\n");
+		if (usnic_ib_share_vf)
+			usnic_uiom_free_dev_list(dev_list);
 		return ERR_PTR(qp_grp ? PTR_ERR(qp_grp) : -ENOMEM);
 	}
 	return qp_grp;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c
@@ -136,7 +136,7 @@
 		}
 
 		cq->umem = ib_umem_get(udata, ucmd.buf_addr, ucmd.buf_size,
-				       IB_ACCESS_LOCAL_WRITE, 1);
+				       IB_ACCESS_LOCAL_WRITE);
 		if (IS_ERR(cq->umem)) {
 			ret = PTR_ERR(cq->umem);
 			goto err_cq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
@@ -266,7 +266,7 @@
 	}
 	ret = ib_device_set_netdev(&dev->ib_dev, dev->netdev, 1);
 	if (ret)
-		return ret;
+		goto err_srq_free;
 	spin_lock_init(&dev->srq_tbl_lock);
 	rdma_set_device_sysfs_group(&dev->ib_dev, &pvrdma_attr_group);
 
@@ -829,7 +829,7 @@
 	    !(pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) {
 		dev_err(&pdev->dev, "PCI BAR region not MMIO\n");
 		ret = -ENOMEM;
-		goto err_free_device;
+		goto err_disable_pdev;
 	}
 
 	ret = pci_request_regions(pdev, DRV_NAME);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
@@ -126,7 +126,7 @@
 		return ERR_PTR(-EINVAL);
 	}
 
-	umem = ib_umem_get(udata, start, length, access_flags, 0);
+	umem = ib_umem_get(udata, start, length, access_flags);
 	if (IS_ERR(umem)) {
 		dev_warn(&dev->pdev->dev,
 			 "could not get umem for mem region\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c
@@ -263,7 +263,7 @@
 			if (!is_srq) {
 				/* set qp->sq.wqe_cnt, shift, buf_size.. */
 				qp->rumem = ib_umem_get(udata, ucmd.rbuf_addr,
-							ucmd.rbuf_size, 0, 0);
+							ucmd.rbuf_size, 0);
 				if (IS_ERR(qp->rumem)) {
 					ret = PTR_ERR(qp->rumem);
 					goto err_qp;
@@ -275,7 +275,7 @@
 			}
 
 			qp->sumem = ib_umem_get(udata, ucmd.sbuf_addr,
-						ucmd.sbuf_size, 0, 0);
+						ucmd.sbuf_size, 0);
 			if (IS_ERR(qp->sumem)) {
 				if (!is_srq)
 					ib_umem_release(qp->rumem);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c
@@ -146,7 +146,7 @@
 		goto err_srq;
 	}
 
-	srq->umem = ib_umem_get(udata, ucmd.buf_addr, ucmd.buf_size, 0, 0);
+	srq->umem = ib_umem_get(udata, ucmd.buf_addr, ucmd.buf_size, 0);
 	if (IS_ERR(srq->umem)) {
 		ret = PTR_ERR(srq->umem);
 		goto err_srq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/Kconfig
@@ -1,7 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config INFINIBAND_RDMAVT
 	tristate "RDMA verbs transport library"
-	depends on X86_64 && ARCH_DMA_ADDR_T_64BIT
+	depends on INFINIBAND_VIRT_DMA
+	depends on X86_64
 	depends on PCI
 	select DMA_VIRT_OPS
 	---help---
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/cq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/cq.c
@@ -248,8 +248,8 @@
 	 */
 	if (udata && udata->outlen >= sizeof(__u64)) {
 		cq->ip = rvt_create_mmap_info(rdi, sz, udata, u_wc);
-		if (!cq->ip) {
-			err = -ENOMEM;
+		if (IS_ERR(cq->ip)) {
+			err = PTR_ERR(cq->ip);
 			goto bail_wc;
 		}
 
@@ -327,7 +327,7 @@
 	if (cq->ip)
 		kref_put(&cq->ip->ref, rvt_release_mmap_info);
 	else
-		vfree(cq->queue);
+		vfree(cq->kqueue);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/mmap.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/mmap.c
@@ -154,7 +154,7 @@
  * @udata: user data (must be valid!)
  * @obj: opaque pointer to a cq, wq etc
  *
- * Return: rvt_mmap struct on success
+ * Return: rvt_mmap struct on success, ERR_PTR on failure
  */
 struct rvt_mmap_info *rvt_create_mmap_info(struct rvt_dev_info *rdi, u32 size,
 					   struct ib_udata *udata, void *obj)
@@ -166,7 +166,7 @@
 
 	ip = kmalloc_node(sizeof(*ip), GFP_KERNEL, rdi->dparms.node);
 	if (!ip)
-		return ip;
+		return ERR_PTR(-ENOMEM);
 
 	size = PAGE_ALIGN(size);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/mr.c
@@ -390,7 +390,7 @@
 	if (length == 0)
 		return ERR_PTR(-EINVAL);
 
-	umem = ib_umem_get(udata, start, length, mr_access_flags, 0);
+	umem = ib_umem_get(udata, start, length, mr_access_flags);
 	if (IS_ERR(umem))
 		return (void *)umem;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/qp.c
@@ -61,6 +61,8 @@
 #define RVT_RWQ_COUNT_THRESHOLD 16
 
 static void rvt_rc_timeout(struct timer_list *t);
+static void rvt_reset_qp(struct rvt_dev_info *rdi, struct rvt_qp *qp,
+			 enum ib_qp_type type);
 
 /*
  * Convert the AETH RNR timeout code into the number of microseconds.
@@ -452,40 +454,41 @@
 }
 
 /**
- * free_all_qps - check for QPs still in use
+ * rvt_free_qp_cb - callback function to reset a qp
+ * @qp: the qp to reset
+ * @v: a 64-bit value
+ *
+ * This function resets the qp and removes it from the
+ * qp hash table.
+ */
+static void rvt_free_qp_cb(struct rvt_qp *qp, u64 v)
+{
+	unsigned int *qp_inuse = (unsigned int *)v;
+	struct rvt_dev_info *rdi = ib_to_rvt(qp->ibqp.device);
+
+	/* Reset the qp and remove it from the qp hash list */
+	rvt_reset_qp(rdi, qp, qp->ibqp.qp_type);
+
+	/* Increment the qp_inuse count */
+	(*qp_inuse)++;
+}
+
+/**
+ * rvt_free_all_qps - check for QPs still in use
  * @rdi: rvt device info structure
  *
  * There should not be any QPs still in use.
  * Free memory for table.
+ * Return the number of QPs still in use.
  */
 static unsigned rvt_free_all_qps(struct rvt_dev_info *rdi)
 {
-	unsigned long flags;
-	struct rvt_qp *qp;
-	unsigned n, qp_inuse = 0;
-	spinlock_t *ql; /* work around too long line below */
-
-	if (rdi->driver_f.free_all_qps)
-		qp_inuse = rdi->driver_f.free_all_qps(rdi);
+	unsigned int qp_inuse = 0;
 
 	qp_inuse += rvt_mcast_tree_empty(rdi);
 
-	if (!rdi->qp_dev)
-		return qp_inuse;
+	rvt_qp_iter(rdi, (u64)&qp_inuse, rvt_free_qp_cb);
 
-	ql = &rdi->qp_dev->qpt_lock;
-	spin_lock_irqsave(ql, flags);
-	for (n = 0; n < rdi->qp_dev->qp_table_size; n++) {
-		qp = rcu_dereference_protected(rdi->qp_dev->qp_table[n],
-					       lockdep_is_held(ql));
-		RCU_INIT_POINTER(rdi->qp_dev->qp_table[n], NULL);
-
-		for (; qp; qp = rcu_dereference_protected(qp->next,
-							  lockdep_is_held(ql)))
-			qp_inuse++;
-	}
-	spin_unlock_irqrestore(ql, flags);
-	synchronize_rcu();
 	return qp_inuse;
 }
 
@@ -895,21 +898,19 @@
 	qp->s_tail_ack_queue = 0;
 	qp->s_acked_ack_queue = 0;
 	qp->s_num_rd_atomic = 0;
-	if (qp->r_rq.kwq)
-		qp->r_rq.kwq->count = qp->r_rq.size;
 	qp->r_sge.num_sge = 0;
 	atomic_set(&qp->s_reserved_used, 0);
 }
 
 /**
- * rvt_reset_qp - initialize the QP state to the reset state
+ * _rvt_reset_qp - initialize the QP state to the reset state
  * @qp: the QP to reset
  * @type: the QP type
  *
  * r_lock, s_hlock, and s_lock are required to be held by the caller
  */
-static void rvt_reset_qp(struct rvt_dev_info *rdi, struct rvt_qp *qp,
-			 enum ib_qp_type type)
+static void _rvt_reset_qp(struct rvt_dev_info *rdi, struct rvt_qp *qp,
+			  enum ib_qp_type type)
 	__must_hold(&qp->s_lock)
 	__must_hold(&qp->s_hlock)
 	__must_hold(&qp->r_lock)
@@ -955,6 +956,27 @@
 	lockdep_assert_held(&qp->s_lock);
 }
 
+/**
+ * rvt_reset_qp - initialize the QP state to the reset state
+ * @rdi: the device info
+ * @qp: the QP to reset
+ * @type: the QP type
+ *
+ * This is the wrapper function to acquire the r_lock, s_hlock, and s_lock
+ * before calling _rvt_reset_qp().
+ */
+static void rvt_reset_qp(struct rvt_dev_info *rdi, struct rvt_qp *qp,
+			 enum ib_qp_type type)
+{
+	spin_lock_irq(&qp->r_lock);
+	spin_lock(&qp->s_hlock);
+	spin_lock(&qp->s_lock);
+	_rvt_reset_qp(rdi, qp, type);
+	spin_unlock(&qp->s_lock);
+	spin_unlock(&qp->s_hlock);
+	spin_unlock_irq(&qp->r_lock);
+}
+
 /** rvt_free_qpn - Free a qpn from the bit map
  * @qpt: QP table
  * @qpn: queue pair number to free
@@ -1172,7 +1194,7 @@
 		err = alloc_ud_wq_attr(qp, rdi->dparms.node);
 		if (err) {
 			ret = (ERR_PTR(err));
-			goto bail_driver_priv;
+			goto bail_rq_rvt;
 		}
 
 		err = alloc_qpn(rdi, &rdi->qp_dev->qpn_table,
@@ -1220,8 +1242,8 @@
 
 			qp->ip = rvt_create_mmap_info(rdi, s, udata,
 						      qp->r_rq.wq);
-			if (!qp->ip) {
-				ret = ERR_PTR(-ENOMEM);
+			if (IS_ERR(qp->ip)) {
+				ret = ERR_CAST(qp->ip);
 				goto bail_qpn;
 			}
 
@@ -1276,9 +1298,11 @@
 	rvt_free_qpn(&rdi->qp_dev->qpn_table, qp->ibqp.qp_num);
 
 bail_rq_wq:
-	rvt_free_rq(&qp->r_rq);
 	free_ud_wq_attr(qp);
 
+bail_rq_rvt:
+	rvt_free_rq(&qp->r_rq);
+
 bail_driver_priv:
 	rdi->driver_f.qp_priv_free(rdi, qp);
 
@@ -1546,7 +1570,7 @@
 	switch (new_state) {
 	case IB_QPS_RESET:
 		if (qp->state != IB_QPS_RESET)
-			rvt_reset_qp(rdi, qp, ibqp->qp_type);
+			_rvt_reset_qp(rdi, qp, ibqp->qp_type);
 		break;
 
 	case IB_QPS_RTR:
@@ -1695,13 +1719,7 @@
 	struct rvt_qp *qp = ibqp_to_rvtqp(ibqp);
 	struct rvt_dev_info *rdi = ib_to_rvt(ibqp->device);
 
-	spin_lock_irq(&qp->r_lock);
-	spin_lock(&qp->s_hlock);
-	spin_lock(&qp->s_lock);
 	rvt_reset_qp(rdi, qp, ibqp->qp_type);
-	spin_unlock(&qp->s_lock);
-	spin_unlock(&qp->s_hlock);
-	spin_unlock_irq(&qp->r_lock);
 
 	wait_event(qp->wait, !atomic_read(&qp->refcount));
 	/* qpn is now available for use again */
@@ -2333,31 +2351,6 @@
 }
 
 /**
- * get_count - count numbers of request work queue entries
- * in circular buffer
- * @rq: data structure for request queue entry
- * @tail: tail indices of the circular buffer
- * @head: head indices of the circular buffer
- *
- * Return - total number of entries in the circular buffer
- */
-static u32 get_count(struct rvt_rq *rq, u32 tail, u32 head)
-{
-	u32 count;
-
-	count = head;
-
-	if (count >= rq->size)
-		count = 0;
-	if (count < tail)
-		count += rq->size - tail;
-	else
-		count -= tail;
-
-	return count;
-}
-
-/**
  * get_rvt_head - get head indices of the circular buffer
  * @rq: data structure for request queue entry
  * @ip: the QP
@@ -2431,7 +2424,7 @@
 
 	if (kwq->count < RVT_RWQ_COUNT_THRESHOLD) {
 		head = get_rvt_head(rq, ip);
-		kwq->count = get_count(rq, tail, head);
+		kwq->count = rvt_get_rq_count(rq, head, tail);
 	}
 	if (unlikely(kwq->count == 0)) {
 		ret = 0;
@@ -2466,7 +2459,9 @@
 		 * the number of remaining WQEs.
 		 */
 		if (kwq->count < srq->limit) {
-			kwq->count = get_count(rq, tail, get_rvt_head(rq, ip));
+			kwq->count =
+				rvt_get_rq_count(rq,
+						 get_rvt_head(rq, ip), tail);
 			if (kwq->count < srq->limit) {
 				struct ib_event ev;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/rc.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/rc.c
@@ -127,9 +127,7 @@
 			 * not atomic, which is OK, since the fuzziness is
 			 * resolved as further ACKs go out.
 			 */
-			credits = head - tail;
-			if ((int)credits < 0)
-				credits += qp->r_rq.size;
+			credits = rvt_get_rq_count(&qp->r_rq, head, tail);
 		}
 		/*
 		 * Binary search the credit table to find the code to
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/srq.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/srq.c
@@ -111,8 +111,8 @@
 		u32 s = sizeof(struct rvt_rwq) + srq->rq.size * sz;
 
 		srq->ip = rvt_create_mmap_info(dev, s, udata, srq->rq.wq);
-		if (!srq->ip) {
-			ret = -ENOMEM;
+		if (IS_ERR(srq->ip)) {
+			ret = PTR_ERR(srq->ip);
 			goto bail_wq;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rdmavt/vt.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rdmavt/vt.c
@@ -95,9 +95,7 @@
 	if (!rdi)
 		return rdi;
 
-	rdi->ports = kcalloc(nports,
-			     sizeof(struct rvt_ibport **),
-			     GFP_KERNEL);
+	rdi->ports = kcalloc(nports, sizeof(*rdi->ports), GFP_KERNEL);
 	if (!rdi->ports)
 		ib_dealloc_device(&rdi->ibdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/Kconfig
@@ -2,8 +2,9 @@
 config RDMA_RXE
 	tristate "Software RDMA over Ethernet (RoCE) driver"
 	depends on INET && PCI && INFINIBAND
-	depends on !64BIT || ARCH_DMA_ADDR_T_64BIT
+	depends on INFINIBAND_VIRT_DMA
 	select NET_UDP_TUNNEL
+	select CRYPTO
 	select CRYPTO_CRC32
 	select DMA_VIRT_OPS
 	---help---
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe.c
@@ -48,6 +48,8 @@
 
 }
 
+bool rxe_initialized;
+
 /* free resources for a rxe device all objects created for this device must
  * have been destroyed
  */
@@ -116,6 +118,8 @@
 	rxe->attr.max_fast_reg_page_list_len	= RXE_MAX_FMR_PAGE_LIST_LEN;
 	rxe->attr.max_pkeys			= RXE_MAX_PKEYS;
 	rxe->attr.local_ca_ack_delay		= RXE_LOCAL_CA_ACK_DELAY;
+	addrconf_addr_eui48((unsigned char *)&rxe->attr.sys_image_guid,
+			rxe->ndev->dev_addr);
 
 	rxe->max_ucontext			= RXE_MAX_UCONTEXT;
 }
@@ -157,9 +161,6 @@
 
 	rxe_init_port_param(port);
 
-	if (!port->attr.pkey_tbl_len || !port->attr.gid_tbl_len)
-		return -EINVAL;
-
 	port->pkey_tbl = kcalloc(port->attr.pkey_tbl_len,
 			sizeof(*port->pkey_tbl), GFP_KERNEL);
 
@@ -358,6 +359,7 @@
 		return err;
 
 	rdma_link_register(&rxe_link_ops);
+	rxe_initialized = true;
 	pr_info("loaded\n");
 	return 0;
 }
@@ -369,6 +371,7 @@
 	rxe_net_exit();
 	rxe_cache_exit();
 
+	rxe_initialized = false;
 	pr_info("unloaded\n");
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe.h
@@ -67,6 +67,8 @@
 
 #define RXE_ROCE_V2_SPORT		(0xc000)
 
+extern bool rxe_initialized;
+
 static inline u32 rxe_crc32(struct rxe_dev *rxe,
 			    u32 crc, void *next, size_t len)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_comp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_comp.c
@@ -329,7 +329,7 @@
 					qp->comp.psn = pkt->psn;
 					if (qp->req.wait_psn) {
 						qp->req.wait_psn = 0;
-						rxe_run_task(&qp->req.task, 1);
+						rxe_run_task(&qp->req.task, 0);
 					}
 				}
 				return COMPST_ERROR_RETRY;
@@ -463,7 +463,7 @@
 	 */
 	if (qp->req.wait_fence) {
 		qp->req.wait_fence = 0;
-		rxe_run_task(&qp->req.task, 1);
+		rxe_run_task(&qp->req.task, 0);
 	}
 }
 
@@ -479,7 +479,7 @@
 		if (qp->req.need_rd_atomic) {
 			qp->comp.timeout_retry = 0;
 			qp->req.need_rd_atomic = 0;
-			rxe_run_task(&qp->req.task, 1);
+			rxe_run_task(&qp->req.task, 0);
 		}
 	}
 
@@ -725,7 +725,7 @@
 							RXE_CNT_COMP_RETRY);
 					qp->req.need_retry = 1;
 					qp->comp.started_retry = 1;
-					rxe_run_task(&qp->req.task, 1);
+					rxe_run_task(&qp->req.task, 0);
 				}
 
 				if (pkt) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_mmap.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_mmap.c
@@ -151,7 +151,7 @@
 
 	ip = kmalloc(sizeof(*ip), GFP_KERNEL);
 	if (!ip)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	size = PAGE_ALIGN(size);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_mr.c
@@ -169,7 +169,7 @@
 	void			*vaddr;
 	int err;
 
-	umem = ib_umem_get(udata, start, length, access, 0);
+	umem = ib_umem_get(udata, start, length, access);
 	if (IS_ERR(umem)) {
 		pr_warn("err %d from rxe_umem_get\n",
 			(int)PTR_ERR(umem));
@@ -207,6 +207,7 @@
 			vaddr = page_address(sg_page_iter_page(&sg_iter));
 			if (!vaddr) {
 				pr_warn("null vaddr\n");
+				ib_umem_release(umem);
 				err = -ENOMEM;
 				goto err1;
 			}
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_net.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_net.c
@@ -117,10 +117,12 @@
 	memcpy(&fl6.daddr, daddr, sizeof(*daddr));
 	fl6.flowi6_proto = IPPROTO_UDP;
 
-	if (unlikely(ipv6_stub->ipv6_dst_lookup(sock_net(recv_sockets.sk6->sk),
-						recv_sockets.sk6->sk, &ndst, &fl6))) {
+	ndst = ipv6_stub->ipv6_dst_lookup_flow(sock_net(recv_sockets.sk6->sk),
+					       recv_sockets.sk6->sk, &fl6,
+					       NULL);
+	if (unlikely(IS_ERR(ndst))) {
 		pr_err_ratelimited("no route to %pI6\n", daddr);
-		goto put;
+		return NULL;
 	}
 
 	if (unlikely(ndst->error)) {
@@ -451,6 +453,11 @@
 
 void rxe_loopback(struct sk_buff *skb)
 {
+	if (skb->protocol == htons(ETH_P_IP))
+		skb_pull(skb, sizeof(struct iphdr));
+	else
+		skb_pull(skb, sizeof(struct ipv6hdr));
+
 	rxe_rcv(skb);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_qp.c
@@ -592,15 +592,16 @@
 	int err;
 
 	if (mask & IB_QP_MAX_QP_RD_ATOMIC) {
-		int max_rd_atomic = __roundup_pow_of_two(attr->max_rd_atomic);
+		int max_rd_atomic = attr->max_rd_atomic ?
+			roundup_pow_of_two(attr->max_rd_atomic) : 0;
 
 		qp->attr.max_rd_atomic = max_rd_atomic;
 		atomic_set(&qp->req.rd_atomic, max_rd_atomic);
 	}
 
 	if (mask & IB_QP_MAX_DEST_RD_ATOMIC) {
-		int max_dest_rd_atomic =
-			__roundup_pow_of_two(attr->max_dest_rd_atomic);
+		int max_dest_rd_atomic = attr->max_dest_rd_atomic ?
+			roundup_pow_of_two(attr->max_dest_rd_atomic) : 0;
 
 		qp->attr.max_dest_rd_atomic = max_dest_rd_atomic;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_queue.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_queue.c
@@ -45,12 +45,15 @@
 
 	if (outbuf) {
 		ip = rxe_create_mmap_info(rxe, buf_size, udata, buf);
-		if (!ip)
+		if (IS_ERR(ip)) {
+			err = PTR_ERR(ip);
 			goto err1;
+		}
 
-		err = copy_to_user(outbuf, &ip->info, sizeof(ip->info));
-		if (err)
+		if (copy_to_user(outbuf, &ip->info, sizeof(ip->info))) {
+			err = -EFAULT;
 			goto err2;
+		}
 
 		spin_lock_bh(&rxe->pending_lock);
 		list_add(&ip->pending_mmaps, &rxe->pending_mmaps);
@@ -64,7 +67,7 @@
 err2:
 	kfree(ip);
 err1:
-	return -EINVAL;
+	return err;
 }
 
 inline void rxe_queue_reset(struct rxe_queue *q)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_recv.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_recv.c
@@ -36,21 +36,26 @@
 #include "rxe.h"
 #include "rxe_loc.h"
 
+/* check that QP matches packet opcode type and is in a valid state */
 static int check_type_state(struct rxe_dev *rxe, struct rxe_pkt_info *pkt,
 			    struct rxe_qp *qp)
 {
+	unsigned int pkt_type;
+
 	if (unlikely(!qp->valid))
 		goto err1;
 
+	pkt_type = pkt->opcode & 0xe0;
+
 	switch (qp_type(qp)) {
 	case IB_QPT_RC:
-		if (unlikely((pkt->opcode & IB_OPCODE_RC) != 0)) {
+		if (unlikely(pkt_type != IB_OPCODE_RC)) {
 			pr_warn_ratelimited("bad qp type\n");
 			goto err1;
 		}
 		break;
 	case IB_QPT_UC:
-		if (unlikely(!(pkt->opcode & IB_OPCODE_UC))) {
+		if (unlikely(pkt_type != IB_OPCODE_UC)) {
 			pr_warn_ratelimited("bad qp type\n");
 			goto err1;
 		}
@@ -58,7 +63,7 @@
 	case IB_QPT_UD:
 	case IB_QPT_SMI:
 	case IB_QPT_GSI:
-		if (unlikely(!(pkt->opcode & IB_OPCODE_UD))) {
+		if (unlikely(pkt_type != IB_OPCODE_UD)) {
 			pr_warn_ratelimited("bad qp type\n");
 			goto err1;
 		}
@@ -281,6 +286,8 @@
 	struct rxe_mc_elem *mce;
 	struct rxe_qp *qp;
 	union ib_gid dgid;
+	struct sk_buff *per_qp_skb;
+	struct rxe_pkt_info *per_qp_pkt;
 	int err;
 
 	if (skb->protocol == htons(ETH_P_IP))
@@ -298,7 +305,6 @@
 
 	list_for_each_entry(mce, &mcg->qp_list, qp_list) {
 		qp = mce->qp;
-		pkt = SKB_TO_PKT(skb);
 
 		/* validate qp for incoming packet */
 		err = check_type_state(rxe, pkt, qp);
@@ -309,15 +315,27 @@
 		if (err)
 			continue;
 
-		/* if *not* the last qp in the list
-		 * increase the users of the skb then post to the next qp
+		/* for all but the last qp create a new clone of the
+		 * skb and pass to the qp. If an error occurs in the
+		 * checks for the last qp in the list we need to
+		 * free the skb since it hasn't been passed on to
+		 * rxe_rcv_pkt() which would free it later.
 		 */
-		if (mce->qp_list.next != &mcg->qp_list)
-			skb_get(skb);
+		if (mce->qp_list.next != &mcg->qp_list) {
+			per_qp_skb = skb_clone(skb, GFP_ATOMIC);
+		} else {
+			per_qp_skb = skb;
+			/* show we have consumed the skb */
+			skb = NULL;
+		}
 
-		pkt->qp = qp;
+		if (unlikely(!per_qp_skb))
+			continue;
+
+		per_qp_pkt = SKB_TO_PKT(per_qp_skb);
+		per_qp_pkt->qp = qp;
 		rxe_add_ref(qp);
-		rxe_rcv_pkt(pkt, skb);
+		rxe_rcv_pkt(per_qp_pkt, per_qp_skb);
 	}
 
 	spin_unlock_bh(&mcg->mcg_lock);
@@ -325,15 +343,20 @@
 	rxe_drop_ref(mcg);	/* drop ref from rxe_pool_get_key. */
 
 err1:
+	/* free skb if not consumed */
 	kfree_skb(skb);
 }
 
 static int rxe_match_dgid(struct rxe_dev *rxe, struct sk_buff *skb)
 {
+	struct rxe_pkt_info *pkt = SKB_TO_PKT(skb);
 	const struct ib_gid_attr *gid_attr;
 	union ib_gid dgid;
 	union ib_gid *pdgid;
 
+	if (pkt->mask & RXE_LOOPBACK_MASK)
+		return 0;
+
 	if (skb->protocol == htons(ETH_P_IP)) {
 		ipv6_addr_set_v4mapped(ip_hdr(skb)->daddr,
 				       (struct in6_addr *)&dgid);
@@ -366,7 +389,7 @@
 	if (unlikely(skb->len < pkt->offset + RXE_BTH_BYTES))
 		goto drop;
 
-	if (unlikely(rxe_match_dgid(rxe, skb) < 0)) {
+	if (rxe_match_dgid(rxe, skb) < 0) {
 		pr_warn_ratelimited("failed matching dgid\n");
 		goto drop;
 	}
@@ -389,7 +412,7 @@
 
 	calc_icrc = rxe_icrc_hdr(pkt, skb);
 	calc_icrc = rxe_crc32(rxe, calc_icrc, (u8 *)payload_addr(pkt),
-			      payload_size(pkt));
+			      payload_size(pkt) + bth_pad(pkt));
 	calc_icrc = (__force u32)cpu_to_be32(~calc_icrc);
 	if (unlikely(calc_icrc != pack_icrc)) {
 		if (skb->protocol == htons(ETH_P_IPV6))
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_req.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_req.c
@@ -500,6 +500,12 @@
 			if (err)
 				return err;
 		}
+		if (bth_pad(pkt)) {
+			u8 *pad = payload_addr(pkt) + paylen;
+
+			memset(pad, 0, bth_pad(pkt));
+			crc = rxe_crc32(rxe, crc, pad, bth_pad(pkt));
+		}
 	}
 	p = payload_addr(pkt) + paylen + bth_pad(pkt);
 
@@ -658,7 +664,8 @@
 	}
 
 	if (unlikely(qp_type(qp) == IB_QPT_RC &&
-		     qp->req.psn > (qp->comp.psn + RXE_MAX_UNACKED_PSNS))) {
+		psn_compare(qp->req.psn, (qp->comp.psn +
+				RXE_MAX_UNACKED_PSNS)) > 0)) {
 		qp->req.wait_psn = 1;
 		goto exit;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_resp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_resp.c
@@ -732,6 +732,13 @@
 	if (err)
 		pr_err("Failed copying memory\n");
 
+	if (bth_pad(&ack_pkt)) {
+		struct rxe_dev *rxe = to_rdev(qp->ibqp.device);
+		u8 *pad = payload_addr(&ack_pkt) + payload;
+
+		memset(pad, 0, bth_pad(&ack_pkt));
+		icrc = rxe_crc32(rxe, icrc, pad, bth_pad(&ack_pkt));
+	}
 	p = payload_addr(&ack_pkt) + payload + bth_pad(&ack_pkt);
 	*p = ~icrc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_sysfs.c
@@ -61,6 +61,11 @@
 	struct net_device *ndev;
 	struct rxe_dev *exists;
 
+	if (!rxe_initialized) {
+		pr_err("Module parameters are not supported, use rdma link add or rxe_cfg\n");
+		return -EAGAIN;
+	}
+
 	len = sanitize_arg(val, intf, sizeof(intf));
 	if (!len) {
 		pr_err("add: invalid interface name\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_verbs.c
@@ -679,6 +679,7 @@
 	unsigned int mask;
 	unsigned int length = 0;
 	int i;
+	struct ib_send_wr *next;
 
 	while (wr) {
 		mask = wr_opcode_mask(wr->opcode, qp);
@@ -695,6 +696,8 @@
 			break;
 		}
 
+		next = wr->next;
+
 		length = 0;
 		for (i = 0; i < wr->num_sge; i++)
 			length += wr->sg_list[i].length;
@@ -705,7 +708,7 @@
 			*bad_wr = wr;
 			break;
 		}
-		wr = wr->next;
+		wr = next;
 	}
 
 	rxe_run_task(&qp->req.task, 1);
@@ -1075,7 +1078,7 @@
 	struct rxe_dev *rxe =
 		rdma_device_to_drv_device(device, struct rxe_dev, ib_dev);
 
-	return snprintf(buf, 16, "%s\n", rxe_parent_name(rxe, 1));
+	return scnprintf(buf, PAGE_SIZE, "%s\n", rxe_parent_name(rxe, 1));
 }
 
 static DEVICE_ATTR_RO(parent);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/rxe/rxe_verbs.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/rxe/rxe_verbs.h
@@ -407,7 +407,7 @@
 	struct list_head	pending_mmaps;
 
 	spinlock_t		mmap_offset_lock; /* guard mmap_offset */
-	int			mmap_offset;
+	u64			mmap_offset;
 
 	atomic64_t		stats_counters[RXE_NUM_OF_COUNTERS];
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/Kconfig
@@ -1,6 +1,7 @@
 config RDMA_SIW
 	tristate "Software RDMA over TCP/IP (iWARP) driver"
 	depends on INET && INFINIBAND && LIBCRC32C
+	depends on INFINIBAND_VIRT_DMA
 	select DMA_VIRT_OPS
 	help
 	This driver implements the iWARP RDMA transport over
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw.h
@@ -667,7 +667,7 @@
 {
 	struct siw_sqe *orq_e = orq_get_tail(qp);
 
-	if (orq_e && READ_ONCE(orq_e->flags) == 0)
+	if (READ_ONCE(orq_e->flags) == 0)
 		return orq_e;
 
 	return NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw_cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw_cm.c
@@ -1225,10 +1225,9 @@
 	read_lock(&sk->sk_callback_lock);
 
 	cep = sk_to_cep(sk);
-	if (!cep) {
-		WARN_ON(1);
+	if (!cep)
 		goto out;
-	}
+
 	siw_dbg_cep(cep, "state: %d\n", cep->state);
 
 	switch (cep->state) {
@@ -1784,14 +1783,23 @@
 	return 0;
 }
 
-static int siw_listen_address(struct iw_cm_id *id, int backlog,
-			      struct sockaddr *laddr, int addr_family)
+/*
+ * siw_create_listen - Create resources for a listener's IWCM ID @id
+ *
+ * Starts listen on the socket address id->local_addr.
+ *
+ */
+int siw_create_listen(struct iw_cm_id *id, int backlog)
 {
 	struct socket *s;
 	struct siw_cep *cep = NULL;
 	struct siw_device *sdev = to_siw_dev(id->device);
+	int addr_family = id->local_addr.ss_family;
 	int rv = 0, s_val;
 
+	if (addr_family != AF_INET && addr_family != AF_INET6)
+		return -EAFNOSUPPORT;
+
 	rv = sock_create(addr_family, SOCK_STREAM, IPPROTO_TCP, &s);
 	if (rv < 0)
 		return rv;
@@ -1806,9 +1814,25 @@
 		siw_dbg(id->device, "setsockopt error: %d\n", rv);
 		goto error;
 	}
-	rv = s->ops->bind(s, laddr, addr_family == AF_INET ?
-				    sizeof(struct sockaddr_in) :
-				    sizeof(struct sockaddr_in6));
+	if (addr_family == AF_INET) {
+		struct sockaddr_in *laddr = &to_sockaddr_in(id->local_addr);
+
+		/* For wildcard addr, limit binding to current device only */
+		if (ipv4_is_zeronet(laddr->sin_addr.s_addr))
+			s->sk->sk_bound_dev_if = sdev->netdev->ifindex;
+
+		rv = s->ops->bind(s, (struct sockaddr *)laddr,
+				  sizeof(struct sockaddr_in));
+	} else {
+		struct sockaddr_in6 *laddr = &to_sockaddr_in6(id->local_addr);
+
+		/* For wildcard addr, limit binding to current device only */
+		if (ipv6_addr_any(&laddr->sin6_addr))
+			s->sk->sk_bound_dev_if = sdev->netdev->ifindex;
+
+		rv = s->ops->bind(s, (struct sockaddr *)laddr,
+				  sizeof(struct sockaddr_in6));
+	}
 	if (rv) {
 		siw_dbg(id->device, "socket bind error: %d\n", rv);
 		goto error;
@@ -1867,14 +1891,7 @@
 	list_add_tail(&cep->listenq, (struct list_head *)id->provider_data);
 	cep->state = SIW_EPSTATE_LISTENING;
 
-	if (addr_family == AF_INET)
-		siw_dbg(id->device, "Listen at laddr %pI4 %u\n",
-			&(((struct sockaddr_in *)laddr)->sin_addr),
-			((struct sockaddr_in *)laddr)->sin_port);
-	else
-		siw_dbg(id->device, "Listen at laddr %pI6 %u\n",
-			&(((struct sockaddr_in6 *)laddr)->sin6_addr),
-			((struct sockaddr_in6 *)laddr)->sin6_port);
+	siw_dbg(id->device, "Listen at laddr %pISp\n", &id->local_addr);
 
 	return 0;
 
@@ -1932,114 +1949,6 @@
 	}
 }
 
-/*
- * siw_create_listen - Create resources for a listener's IWCM ID @id
- *
- * Listens on the socket addresses id->local_addr and id->remote_addr.
- *
- * If the listener's @id provides a specific local IP address, at most one
- * listening socket is created and associated with @id.
- *
- * If the listener's @id provides the wildcard (zero) local IP address,
- * a separate listen is performed for each local IP address of the device
- * by creating a listening socket and binding to that local IP address.
- *
- */
-int siw_create_listen(struct iw_cm_id *id, int backlog)
-{
-	struct net_device *dev = to_siw_dev(id->device)->netdev;
-	int rv = 0, listeners = 0;
-
-	siw_dbg(id->device, "backlog %d\n", backlog);
-
-	/*
-	 * For each attached address of the interface, create a
-	 * listening socket, if id->local_addr is the wildcard
-	 * IP address or matches the IP address.
-	 */
-	if (id->local_addr.ss_family == AF_INET) {
-		struct in_device *in_dev = in_dev_get(dev);
-		struct sockaddr_in s_laddr, *s_raddr;
-		const struct in_ifaddr *ifa;
-
-		if (!in_dev) {
-			rv = -ENODEV;
-			goto out;
-		}
-		memcpy(&s_laddr, &id->local_addr, sizeof(s_laddr));
-		s_raddr = (struct sockaddr_in *)&id->remote_addr;
-
-		siw_dbg(id->device,
-			"laddr %pI4:%d, raddr %pI4:%d\n",
-			&s_laddr.sin_addr, ntohs(s_laddr.sin_port),
-			&s_raddr->sin_addr, ntohs(s_raddr->sin_port));
-
-		rtnl_lock();
-		in_dev_for_each_ifa_rtnl(ifa, in_dev) {
-			if (ipv4_is_zeronet(s_laddr.sin_addr.s_addr) ||
-			    s_laddr.sin_addr.s_addr == ifa->ifa_address) {
-				s_laddr.sin_addr.s_addr = ifa->ifa_address;
-
-				rv = siw_listen_address(id, backlog,
-						(struct sockaddr *)&s_laddr,
-						AF_INET);
-				if (!rv)
-					listeners++;
-			}
-		}
-		rtnl_unlock();
-		in_dev_put(in_dev);
-	} else if (id->local_addr.ss_family == AF_INET6) {
-		struct inet6_dev *in6_dev = in6_dev_get(dev);
-		struct inet6_ifaddr *ifp;
-		struct sockaddr_in6 *s_laddr = &to_sockaddr_in6(id->local_addr),
-			*s_raddr = &to_sockaddr_in6(id->remote_addr);
-
-		if (!in6_dev) {
-			rv = -ENODEV;
-			goto out;
-		}
-		siw_dbg(id->device,
-			"laddr %pI6:%d, raddr %pI6:%d\n",
-			&s_laddr->sin6_addr, ntohs(s_laddr->sin6_port),
-			&s_raddr->sin6_addr, ntohs(s_raddr->sin6_port));
-
-		rtnl_lock();
-		list_for_each_entry(ifp, &in6_dev->addr_list, if_list) {
-			if (ifp->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED))
-				continue;
-			if (ipv6_addr_any(&s_laddr->sin6_addr) ||
-			    ipv6_addr_equal(&s_laddr->sin6_addr, &ifp->addr)) {
-				struct sockaddr_in6 bind_addr  = {
-					.sin6_family = AF_INET6,
-					.sin6_port = s_laddr->sin6_port,
-					.sin6_flowinfo = 0,
-					.sin6_addr = ifp->addr,
-					.sin6_scope_id = dev->ifindex };
-
-				rv = siw_listen_address(id, backlog,
-						(struct sockaddr *)&bind_addr,
-						AF_INET6);
-				if (!rv)
-					listeners++;
-			}
-		}
-		rtnl_unlock();
-		in6_dev_put(in6_dev);
-	} else {
-		rv = -EAFNOSUPPORT;
-	}
-out:
-	if (listeners)
-		rv = 0;
-	else if (!rv)
-		rv = -EINVAL;
-
-	siw_dbg(id->device, "%s\n", rv ? "FAIL" : "OK");
-
-	return rv;
-}
-
 int siw_destroy_listen(struct iw_cm_id *id)
 {
 	if (!id->provider_data) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw_main.c
@@ -66,12 +66,13 @@
 	static int dev_id = 1;
 	int rv;
 
+	sdev->vendor_part_id = dev_id++;
+
 	rv = ib_register_device(base_dev, name);
 	if (rv) {
 		pr_warn("siw: device registration error %d\n", rv);
 		return rv;
 	}
-	sdev->vendor_part_id = dev_id++;
 
 	siw_dbg(base_dev, "HWaddr=%pM\n", sdev->netdev->dev_addr);
 
@@ -133,7 +134,7 @@
 
 static int siw_init_cpulist(void)
 {
-	int i, num_nodes = num_possible_nodes();
+	int i, num_nodes = nr_node_ids;
 
 	memset(siw_tx_thread, 0, sizeof(siw_tx_thread));
 
@@ -248,24 +249,6 @@
 	return NULL;
 }
 
-static void siw_verbs_sq_flush(struct ib_qp *base_qp)
-{
-	struct siw_qp *qp = to_siw_qp(base_qp);
-
-	down_write(&qp->state_lock);
-	siw_sq_flush(qp);
-	up_write(&qp->state_lock);
-}
-
-static void siw_verbs_rq_flush(struct ib_qp *base_qp)
-{
-	struct siw_qp *qp = to_siw_qp(base_qp);
-
-	down_write(&qp->state_lock);
-	siw_rq_flush(qp);
-	up_write(&qp->state_lock);
-}
-
 static const struct ib_device_ops siw_device_ops = {
 	.owner = THIS_MODULE,
 	.uverbs_abi_ver = SIW_ABI_VERSION,
@@ -284,8 +267,6 @@
 	.destroy_cq = siw_destroy_cq,
 	.destroy_qp = siw_destroy_qp,
 	.destroy_srq = siw_destroy_srq,
-	.drain_rq = siw_verbs_rq_flush,
-	.drain_sq = siw_verbs_sq_flush,
 	.get_dma_mr = siw_get_dma_mr,
 	.get_port_immutable = siw_get_port_immutable,
 	.iw_accept = siw_accept,
@@ -399,6 +380,9 @@
 	base_dev->dev.dma_ops = &dma_virt_ops;
 	base_dev->num_comp_vectors = num_possible_cpus();
 
+	xa_init_flags(&sdev->qp_xa, XA_FLAGS_ALLOC1);
+	xa_init_flags(&sdev->mem_xa, XA_FLAGS_ALLOC1);
+
 	ib_set_device_ops(base_dev, &siw_device_ops);
 	rv = ib_device_set_netdev(base_dev, netdev, 1);
 	if (rv)
@@ -426,9 +410,6 @@
 	sdev->attrs.max_srq_wr = SIW_MAX_SRQ_WR;
 	sdev->attrs.max_srq_sge = SIW_MAX_SGE;
 
-	xa_init_flags(&sdev->qp_xa, XA_FLAGS_ALLOC1);
-	xa_init_flags(&sdev->mem_xa, XA_FLAGS_ALLOC1);
-
 	INIT_LIST_HEAD(&sdev->cep_list);
 	INIT_LIST_HEAD(&sdev->qp_list);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw_qp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw_qp.c
@@ -199,26 +199,26 @@
 
 static int siw_qp_readq_init(struct siw_qp *qp, int irq_size, int orq_size)
 {
-	irq_size = roundup_pow_of_two(irq_size);
-	orq_size = roundup_pow_of_two(orq_size);
-
+	if (irq_size) {
+		irq_size = roundup_pow_of_two(irq_size);
+		qp->irq = vzalloc(irq_size * sizeof(struct siw_sqe));
+		if (!qp->irq) {
+			qp->attrs.irq_size = 0;
+			return -ENOMEM;
+		}
+	}
+	if (orq_size) {
+		orq_size = roundup_pow_of_two(orq_size);
+		qp->orq = vzalloc(orq_size * sizeof(struct siw_sqe));
+		if (!qp->orq) {
+			qp->attrs.orq_size = 0;
+			qp->attrs.irq_size = 0;
+			vfree(qp->irq);
+			return -ENOMEM;
+		}
+	}
 	qp->attrs.irq_size = irq_size;
 	qp->attrs.orq_size = orq_size;
-
-	qp->irq = vzalloc(irq_size * sizeof(struct siw_sqe));
-	if (!qp->irq) {
-		siw_dbg_qp(qp, "irq malloc for %d failed\n", irq_size);
-		qp->attrs.irq_size = 0;
-		return -ENOMEM;
-	}
-	qp->orq = vzalloc(orq_size * sizeof(struct siw_sqe));
-	if (!qp->orq) {
-		siw_dbg_qp(qp, "orq malloc for %d failed\n", orq_size);
-		qp->attrs.orq_size = 0;
-		qp->attrs.irq_size = 0;
-		vfree(qp->irq);
-		return -ENOMEM;
-	}
 	siw_dbg_qp(qp, "ORD %d, IRD %d\n", orq_size, irq_size);
 	return 0;
 }
@@ -288,13 +288,14 @@
 	if (ctrl & MPA_V2_RDMA_WRITE_RTR)
 		wqe->sqe.opcode = SIW_OP_WRITE;
 	else if (ctrl & MPA_V2_RDMA_READ_RTR) {
-		struct siw_sqe *rreq;
+		struct siw_sqe *rreq = NULL;
 
 		wqe->sqe.opcode = SIW_OP_READ;
 
 		spin_lock(&qp->orq_lock);
 
-		rreq = orq_get_free(qp);
+		if (qp->attrs.orq_size)
+			rreq = orq_get_free(qp);
 		if (rreq) {
 			siw_read_to_orq(rreq, &wqe->sqe);
 			qp->orq_put++;
@@ -877,135 +878,88 @@
 	rreq->num_sge = 1;
 }
 
-/*
- * Must be called with SQ locked.
- * To avoid complete SQ starvation by constant inbound READ requests,
- * the active IRQ will not be served after qp->irq_burst, if the
- * SQ has pending work.
- */
-int siw_activate_tx(struct siw_qp *qp)
+static int siw_activate_tx_from_sq(struct siw_qp *qp)
 {
-	struct siw_sqe *irqe, *sqe;
+	struct siw_sqe *sqe;
 	struct siw_wqe *wqe = tx_wqe(qp);
 	int rv = 1;
 
-	irqe = &qp->irq[qp->irq_get % qp->attrs.irq_size];
-
-	if (irqe->flags & SIW_WQE_VALID) {
-		sqe = sq_get_next(qp);
-
-		/*
-		 * Avoid local WQE processing starvation in case
-		 * of constant inbound READ request stream
-		 */
-		if (sqe && ++qp->irq_burst >= SIW_IRQ_MAXBURST_SQ_ACTIVE) {
-			qp->irq_burst = 0;
-			goto skip_irq;
-		}
-		memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
-		wqe->wr_status = SIW_WR_QUEUED;
-
-		/* start READ RESPONSE */
-		wqe->sqe.opcode = SIW_OP_READ_RESPONSE;
-		wqe->sqe.flags = 0;
-		if (irqe->num_sge) {
-			wqe->sqe.num_sge = 1;
-			wqe->sqe.sge[0].length = irqe->sge[0].length;
-			wqe->sqe.sge[0].laddr = irqe->sge[0].laddr;
-			wqe->sqe.sge[0].lkey = irqe->sge[0].lkey;
-		} else {
-			wqe->sqe.num_sge = 0;
-		}
-
-		/* Retain original RREQ's message sequence number for
-		 * potential error reporting cases.
-		 */
-		wqe->sqe.sge[1].length = irqe->sge[1].length;
-
-		wqe->sqe.rkey = irqe->rkey;
-		wqe->sqe.raddr = irqe->raddr;
+	sqe = sq_get_next(qp);
+	if (!sqe)
+		return 0;
 
-		wqe->processed = 0;
-		qp->irq_get++;
+	memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
+	wqe->wr_status = SIW_WR_QUEUED;
 
-		/* mark current IRQ entry free */
-		smp_store_mb(irqe->flags, 0);
+	/* First copy SQE to kernel private memory */
+	memcpy(&wqe->sqe, sqe, sizeof(*sqe));
 
+	if (wqe->sqe.opcode >= SIW_NUM_OPCODES) {
+		rv = -EINVAL;
 		goto out;
 	}
-	sqe = sq_get_next(qp);
-	if (sqe) {
-skip_irq:
-		memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
-		wqe->wr_status = SIW_WR_QUEUED;
-
-		/* First copy SQE to kernel private memory */
-		memcpy(&wqe->sqe, sqe, sizeof(*sqe));
-
-		if (wqe->sqe.opcode >= SIW_NUM_OPCODES) {
+	if (wqe->sqe.flags & SIW_WQE_INLINE) {
+		if (wqe->sqe.opcode != SIW_OP_SEND &&
+		    wqe->sqe.opcode != SIW_OP_WRITE) {
 			rv = -EINVAL;
 			goto out;
 		}
-		if (wqe->sqe.flags & SIW_WQE_INLINE) {
-			if (wqe->sqe.opcode != SIW_OP_SEND &&
-			    wqe->sqe.opcode != SIW_OP_WRITE) {
-				rv = -EINVAL;
-				goto out;
-			}
-			if (wqe->sqe.sge[0].length > SIW_MAX_INLINE) {
-				rv = -EINVAL;
-				goto out;
-			}
-			wqe->sqe.sge[0].laddr = (uintptr_t)&wqe->sqe.sge[1];
-			wqe->sqe.sge[0].lkey = 0;
-			wqe->sqe.num_sge = 1;
-		}
-		if (wqe->sqe.flags & SIW_WQE_READ_FENCE) {
-			/* A READ cannot be fenced */
-			if (unlikely(wqe->sqe.opcode == SIW_OP_READ ||
-				     wqe->sqe.opcode ==
-					     SIW_OP_READ_LOCAL_INV)) {
-				siw_dbg_qp(qp, "cannot fence read\n");
-				rv = -EINVAL;
-				goto out;
-			}
-			spin_lock(&qp->orq_lock);
+		if (wqe->sqe.sge[0].length > SIW_MAX_INLINE) {
+			rv = -EINVAL;
+			goto out;
+		}
+		wqe->sqe.sge[0].laddr = (uintptr_t)&wqe->sqe.sge[1];
+		wqe->sqe.sge[0].lkey = 0;
+		wqe->sqe.num_sge = 1;
+	}
+	if (wqe->sqe.flags & SIW_WQE_READ_FENCE) {
+		/* A READ cannot be fenced */
+		if (unlikely(wqe->sqe.opcode == SIW_OP_READ ||
+			     wqe->sqe.opcode ==
+				     SIW_OP_READ_LOCAL_INV)) {
+			siw_dbg_qp(qp, "cannot fence read\n");
+			rv = -EINVAL;
+			goto out;
+		}
+		spin_lock(&qp->orq_lock);
 
-			if (!siw_orq_empty(qp)) {
-				qp->tx_ctx.orq_fence = 1;
-				rv = 0;
-			}
-			spin_unlock(&qp->orq_lock);
+		if (qp->attrs.orq_size && !siw_orq_empty(qp)) {
+			qp->tx_ctx.orq_fence = 1;
+			rv = 0;
+		}
+		spin_unlock(&qp->orq_lock);
 
-		} else if (wqe->sqe.opcode == SIW_OP_READ ||
-			   wqe->sqe.opcode == SIW_OP_READ_LOCAL_INV) {
-			struct siw_sqe *rreq;
+	} else if (wqe->sqe.opcode == SIW_OP_READ ||
+		   wqe->sqe.opcode == SIW_OP_READ_LOCAL_INV) {
+		struct siw_sqe *rreq;
 
-			wqe->sqe.num_sge = 1;
+		if (unlikely(!qp->attrs.orq_size)) {
+			/* We negotiated not to send READ req's */
+			rv = -EINVAL;
+			goto out;
+		}
+		wqe->sqe.num_sge = 1;
 
-			spin_lock(&qp->orq_lock);
+		spin_lock(&qp->orq_lock);
 
-			rreq = orq_get_free(qp);
-			if (rreq) {
-				/*
-				 * Make an immediate copy in ORQ to be ready
-				 * to process loopback READ reply
-				 */
-				siw_read_to_orq(rreq, &wqe->sqe);
-				qp->orq_put++;
-			} else {
-				qp->tx_ctx.orq_fence = 1;
-				rv = 0;
-			}
-			spin_unlock(&qp->orq_lock);
+		rreq = orq_get_free(qp);
+		if (rreq) {
+			/*
+			 * Make an immediate copy in ORQ to be ready
+			 * to process loopback READ reply
+			 */
+			siw_read_to_orq(rreq, &wqe->sqe);
+			qp->orq_put++;
+		} else {
+			qp->tx_ctx.orq_fence = 1;
+			rv = 0;
 		}
-
-		/* Clear SQE, can be re-used by application */
-		smp_store_mb(sqe->flags, 0);
-		qp->sq_get++;
-	} else {
-		rv = 0;
+		spin_unlock(&qp->orq_lock);
 	}
+
+	/* Clear SQE, can be re-used by application */
+	smp_store_mb(sqe->flags, 0);
+	qp->sq_get++;
 out:
 	if (unlikely(rv < 0)) {
 		siw_dbg_qp(qp, "error %d\n", rv);
@@ -1015,6 +969,65 @@
 }
 
 /*
+ * Must be called with SQ locked.
+ * To avoid complete SQ starvation by constant inbound READ requests,
+ * the active IRQ will not be served after qp->irq_burst, if the
+ * SQ has pending work.
+ */
+int siw_activate_tx(struct siw_qp *qp)
+{
+	struct siw_sqe *irqe;
+	struct siw_wqe *wqe = tx_wqe(qp);
+
+	if (!qp->attrs.irq_size)
+		return siw_activate_tx_from_sq(qp);
+
+	irqe = &qp->irq[qp->irq_get % qp->attrs.irq_size];
+
+	if (!(irqe->flags & SIW_WQE_VALID))
+		return siw_activate_tx_from_sq(qp);
+
+	/*
+	 * Avoid local WQE processing starvation in case
+	 * of constant inbound READ request stream
+	 */
+	if (sq_get_next(qp) && ++qp->irq_burst >= SIW_IRQ_MAXBURST_SQ_ACTIVE) {
+		qp->irq_burst = 0;
+		return siw_activate_tx_from_sq(qp);
+	}
+	memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
+	wqe->wr_status = SIW_WR_QUEUED;
+
+	/* start READ RESPONSE */
+	wqe->sqe.opcode = SIW_OP_READ_RESPONSE;
+	wqe->sqe.flags = 0;
+	if (irqe->num_sge) {
+		wqe->sqe.num_sge = 1;
+		wqe->sqe.sge[0].length = irqe->sge[0].length;
+		wqe->sqe.sge[0].laddr = irqe->sge[0].laddr;
+		wqe->sqe.sge[0].lkey = irqe->sge[0].lkey;
+	} else {
+		wqe->sqe.num_sge = 0;
+	}
+
+	/* Retain original RREQ's message sequence number for
+	 * potential error reporting cases.
+	 */
+	wqe->sqe.sge[1].length = irqe->sge[1].length;
+
+	wqe->sqe.rkey = irqe->rkey;
+	wqe->sqe.raddr = irqe->raddr;
+
+	wqe->processed = 0;
+	qp->irq_get++;
+
+	/* mark current IRQ entry free */
+	smp_store_mb(irqe->flags, 0);
+
+	return 1;
+}
+
+/*
  * Check if current CQ state qualifies for calling CQ completion
  * handler. Must be called with CQ lock held.
  */
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw_qp_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw_qp_rx.c
@@ -139,7 +139,8 @@
 			break;
 
 		bytes = min(bytes, len);
-		if (siw_rx_kva(srx, (void *)buf_addr, bytes) == bytes) {
+		if (siw_rx_kva(srx, (void *)(uintptr_t)buf_addr, bytes) ==
+		    bytes) {
 			copied += bytes;
 			offset += bytes;
 			len -= bytes;
@@ -679,6 +680,10 @@
 	}
 	spin_lock_irqsave(&qp->sq_lock, flags);
 
+	if (unlikely(!qp->attrs.irq_size)) {
+		run_sq = 0;
+		goto error_irq;
+	}
 	if (tx_work->wr_status == SIW_WR_IDLE) {
 		/*
 		 * immediately schedule READ response w/o
@@ -711,8 +716,9 @@
 		/* RRESP now valid as current TX wqe or placed into IRQ */
 		smp_store_mb(resp->flags, SIW_WQE_VALID);
 	} else {
-		pr_warn("siw: [QP %u]: irq %d exceeded %d\n", qp_id(qp),
-			qp->irq_put % qp->attrs.irq_size, qp->attrs.irq_size);
+error_irq:
+		pr_warn("siw: [QP %u]: IRQ exceeded or null, size %d\n",
+			qp_id(qp), qp->attrs.irq_size);
 
 		siw_init_terminate(qp, TERM_ERROR_LAYER_RDMAP,
 				   RDMAP_ETYPE_REMOTE_OPERATION,
@@ -739,6 +745,9 @@
 	struct siw_sqe *orqe;
 	struct siw_wqe *wqe = NULL;
 
+	if (unlikely(!qp->attrs.orq_size))
+		return -EPROTO;
+
 	/* make sure ORQ indices are current */
 	smp_mb();
 
@@ -795,8 +804,8 @@
 		 */
 		rv = siw_orqe_start_rx(qp);
 		if (rv) {
-			pr_warn("siw: [QP %u]: ORQ empty at idx %d\n",
-				qp_id(qp), qp->orq_get % qp->attrs.orq_size);
+			pr_warn("siw: [QP %u]: ORQ empty, size %d\n",
+				qp_id(qp), qp->attrs.orq_size);
 			goto error_term;
 		}
 		rv = siw_rresp_check_ntoh(srx, frx);
@@ -1289,11 +1298,13 @@
 					      wc_status);
 		siw_wqe_put_mem(wqe, SIW_OP_READ);
 
-		if (!error)
+		if (!error) {
 			rv = siw_check_tx_fence(qp);
-		else
-			/* Disable current ORQ eleement */
-			WRITE_ONCE(orq_get_current(qp)->flags, 0);
+		} else {
+			/* Disable current ORQ element */
+			if (qp->attrs.orq_size)
+				WRITE_ONCE(orq_get_current(qp)->flags, 0);
+		}
 		break;
 
 	case RDMAP_RDMA_READ_REQ:
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw_qp_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw_qp_tx.c
@@ -920,20 +920,27 @@
 {
 	struct ib_mr *base_mr = (struct ib_mr *)(uintptr_t)sqe->base_mr;
 	struct siw_device *sdev = to_siw_dev(pd->device);
-	struct siw_mem *mem = siw_mem_id2obj(sdev, sqe->rkey  >> 8);
+	struct siw_mem *mem;
 	int rv = 0;
 
 	siw_dbg_pd(pd, "STag 0x%08x\n", sqe->rkey);
 
-	if (unlikely(!mem || !base_mr)) {
+	if (unlikely(!base_mr)) {
 		pr_warn("siw: fastreg: STag 0x%08x unknown\n", sqe->rkey);
 		return -EINVAL;
 	}
+
 	if (unlikely(base_mr->rkey >> 8 != sqe->rkey  >> 8)) {
 		pr_warn("siw: fastreg: STag 0x%08x: bad MR\n", sqe->rkey);
-		rv = -EINVAL;
-		goto out;
+		return -EINVAL;
 	}
+
+	mem = siw_mem_id2obj(sdev, sqe->rkey  >> 8);
+	if (unlikely(!mem)) {
+		pr_warn("siw: fastreg: STag 0x%08x unknown\n", sqe->rkey);
+		return -EINVAL;
+	}
+
 	if (unlikely(mem->pd != pd)) {
 		pr_warn("siw: fastreg: PD mismatch\n");
 		rv = -EINVAL;
@@ -1100,8 +1107,8 @@
 		/*
 		 * RREQ may have already been completed by inbound RRESP!
 		 */
-		if (tx_type == SIW_OP_READ ||
-		    tx_type == SIW_OP_READ_LOCAL_INV) {
+		if ((tx_type == SIW_OP_READ ||
+		     tx_type == SIW_OP_READ_LOCAL_INV) && qp->attrs.orq_size) {
 			/* Cleanup pending entry in ORQ */
 			qp->orq_put--;
 			qp->orq[qp->orq_put % qp->attrs.orq_size].flags = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/sw/siw/siw_verbs.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/sw/siw/siw_verbs.c
@@ -387,13 +387,23 @@
 	if (rv)
 		goto err_out;
 
+	num_sqe = attrs->cap.max_send_wr;
+	num_rqe = attrs->cap.max_recv_wr;
+
 	/* All queue indices are derived from modulo operations
 	 * on a free running 'get' (consumer) and 'put' (producer)
 	 * unsigned counter. Having queue sizes at power of two
 	 * avoids handling counter wrap around.
 	 */
-	num_sqe = roundup_pow_of_two(attrs->cap.max_send_wr);
-	num_rqe = roundup_pow_of_two(attrs->cap.max_recv_wr);
+	if (num_sqe)
+		num_sqe = roundup_pow_of_two(num_sqe);
+	else {
+		/* Zero sized SQ is not supported */
+		rv = -EINVAL;
+		goto err_out;
+	}
+	if (num_rqe)
+		num_rqe = roundup_pow_of_two(num_rqe);
 
 	if (qp->kernel_verbs)
 		qp->sendq = vzalloc(num_sqe * sizeof(struct siw_sqe));
@@ -401,7 +411,6 @@
 		qp->sendq = vmalloc_user(num_sqe * sizeof(struct siw_sqe));
 
 	if (qp->sendq == NULL) {
-		siw_dbg(base_dev, "SQ size %d alloc failed\n", num_sqe);
 		rv = -ENOMEM;
 		goto err_out_xa;
 	}
@@ -434,7 +443,6 @@
 				vmalloc_user(num_rqe * sizeof(struct siw_rqe));
 
 		if (qp->recvq == NULL) {
-			siw_dbg(base_dev, "RQ size %d alloc failed\n", num_rqe);
 			rv = -ENOMEM;
 			goto err_out_xa;
 		}
@@ -685,6 +693,47 @@
 	return bytes;
 }
 
+/* Complete SQ WR's without processing */
+static int siw_sq_flush_wr(struct siw_qp *qp, const struct ib_send_wr *wr,
+			   const struct ib_send_wr **bad_wr)
+{
+	struct siw_sqe sqe = {};
+	int rv = 0;
+
+	while (wr) {
+		sqe.id = wr->wr_id;
+		sqe.opcode = wr->opcode;
+		rv = siw_sqe_complete(qp, &sqe, 0, SIW_WC_WR_FLUSH_ERR);
+		if (rv) {
+			if (bad_wr)
+				*bad_wr = wr;
+			break;
+		}
+		wr = wr->next;
+	}
+	return rv;
+}
+
+/* Complete RQ WR's without processing */
+static int siw_rq_flush_wr(struct siw_qp *qp, const struct ib_recv_wr *wr,
+			   const struct ib_recv_wr **bad_wr)
+{
+	struct siw_rqe rqe = {};
+	int rv = 0;
+
+	while (wr) {
+		rqe.id = wr->wr_id;
+		rv = siw_rqe_complete(qp, &rqe, 0, 0, SIW_WC_WR_FLUSH_ERR);
+		if (rv) {
+			if (bad_wr)
+				*bad_wr = wr;
+			break;
+		}
+		wr = wr->next;
+	}
+	return rv;
+}
+
 /*
  * siw_post_send()
  *
@@ -703,26 +752,54 @@
 	unsigned long flags;
 	int rv = 0;
 
+	if (wr && !qp->kernel_verbs) {
+		siw_dbg_qp(qp, "wr must be empty for user mapped sq\n");
+		*bad_wr = wr;
+		return -EINVAL;
+	}
+
 	/*
 	 * Try to acquire QP state lock. Must be non-blocking
 	 * to accommodate kernel clients needs.
 	 */
 	if (!down_read_trylock(&qp->state_lock)) {
-		*bad_wr = wr;
-		siw_dbg_qp(qp, "QP locked, state %d\n", qp->attrs.state);
-		return -ENOTCONN;
+		if (qp->attrs.state == SIW_QP_STATE_ERROR) {
+			/*
+			 * ERROR state is final, so we can be sure
+			 * this state will not change as long as the QP
+			 * exists.
+			 *
+			 * This handles an ib_drain_sq() call with
+			 * a concurrent request to set the QP state
+			 * to ERROR.
+			 */
+			rv = siw_sq_flush_wr(qp, wr, bad_wr);
+		} else {
+			siw_dbg_qp(qp, "QP locked, state %d\n",
+				   qp->attrs.state);
+			*bad_wr = wr;
+			rv = -ENOTCONN;
+		}
+		return rv;
 	}
 	if (unlikely(qp->attrs.state != SIW_QP_STATE_RTS)) {
+		if (qp->attrs.state == SIW_QP_STATE_ERROR) {
+			/*
+			 * Immediately flush this WR to CQ, if QP
+			 * is in ERROR state. SQ is guaranteed to
+			 * be empty, so WR complets in-order.
+			 *
+			 * Typically triggered by ib_drain_sq().
+			 */
+			rv = siw_sq_flush_wr(qp, wr, bad_wr);
+		} else {
+			siw_dbg_qp(qp, "QP out of state %d\n",
+				   qp->attrs.state);
+			*bad_wr = wr;
+			rv = -ENOTCONN;
+		}
 		up_read(&qp->state_lock);
-		*bad_wr = wr;
-		siw_dbg_qp(qp, "QP out of state %d\n", qp->attrs.state);
-		return -ENOTCONN;
-	}
-	if (wr && !qp->kernel_verbs) {
-		siw_dbg_qp(qp, "wr must be empty for user mapped sq\n");
-		up_read(&qp->state_lock);
-		*bad_wr = wr;
-		return -EINVAL;
+		return rv;
 	}
 	spin_lock_irqsave(&qp->sq_lock, flags);
 
@@ -913,28 +990,58 @@
 	unsigned long flags;
 	int rv = 0;
 
-	if (qp->srq) {
+	if (qp->srq || qp->attrs.rq_size == 0) {
+		*bad_wr = wr;
+		return -EINVAL;
+	}
+	if (!qp->kernel_verbs) {
+		siw_dbg_qp(qp, "no kernel post_recv for user mapped sq\n");
 		*bad_wr = wr;
-		return -EOPNOTSUPP; /* what else from errno.h? */
+		return -EINVAL;
 	}
+
 	/*
 	 * Try to acquire QP state lock. Must be non-blocking
 	 * to accommodate kernel clients needs.
 	 */
 	if (!down_read_trylock(&qp->state_lock)) {
-		*bad_wr = wr;
-		return -ENOTCONN;
-	}
-	if (!qp->kernel_verbs) {
-		siw_dbg_qp(qp, "no kernel post_recv for user mapped sq\n");
-		up_read(&qp->state_lock);
-		*bad_wr = wr;
-		return -EINVAL;
+		if (qp->attrs.state == SIW_QP_STATE_ERROR) {
+			/*
+			 * ERROR state is final, so we can be sure
+			 * this state will not change as long as the QP
+			 * exists.
+			 *
+			 * This handles an ib_drain_rq() call with
+			 * a concurrent request to set the QP state
+			 * to ERROR.
+			 */
+			rv = siw_rq_flush_wr(qp, wr, bad_wr);
+		} else {
+			siw_dbg_qp(qp, "QP locked, state %d\n",
+				   qp->attrs.state);
+			*bad_wr = wr;
+			rv = -ENOTCONN;
+		}
+		return rv;
 	}
 	if (qp->attrs.state > SIW_QP_STATE_RTS) {
+		if (qp->attrs.state == SIW_QP_STATE_ERROR) {
+			/*
+			 * Immediately flush this WR to CQ, if QP
+			 * is in ERROR state. RQ is guaranteed to
+			 * be empty, so WR complets in-order.
+			 *
+			 * Typically triggered by ib_drain_rq().
+			 */
+			rv = siw_rq_flush_wr(qp, wr, bad_wr);
+		} else {
+			siw_dbg_qp(qp, "QP out of state %d\n",
+				   qp->attrs.state);
+			*bad_wr = wr;
+			rv = -ENOTCONN;
+		}
 		up_read(&qp->state_lock);
-		*bad_wr = wr;
-		return -EINVAL;
+		return rv;
 	}
 	/*
 	 * Serialize potentially multiple producers.
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/ipoib/ipoib.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -377,8 +377,12 @@
 	struct ipoib_rx_buf *rx_ring;
 
 	struct ipoib_tx_buf *tx_ring;
+	/* cyclic ring variables for managing tx_ring, for UD only */
 	unsigned int	     tx_head;
 	unsigned int	     tx_tail;
+	/* cyclic ring variables for counting overall outstanding send WRs */
+	unsigned int	     global_tx_head;
+	unsigned int	     global_tx_tail;
 	struct ib_sge	     tx_sge[MAX_SKB_FRAGS + 1];
 	struct ib_ud_wr      tx_wr;
 	struct ib_wc	     send_wc[MAX_SEND_CQE];
@@ -511,7 +515,7 @@
 
 int ipoib_ib_dev_open_default(struct net_device *dev);
 int ipoib_ib_dev_open(struct net_device *dev);
-int ipoib_ib_dev_stop(struct net_device *dev);
+void ipoib_ib_dev_stop(struct net_device *dev);
 void ipoib_ib_dev_up(struct net_device *dev);
 void ipoib_ib_dev_down(struct net_device *dev);
 int ipoib_ib_dev_stop_default(struct net_device *dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -756,7 +756,8 @@
 		return;
 	}
 
-	if ((priv->tx_head - priv->tx_tail) == ipoib_sendq_size - 1) {
+	if ((priv->global_tx_head - priv->global_tx_tail) ==
+	    ipoib_sendq_size - 1) {
 		ipoib_dbg(priv, "TX ring 0x%x full, stopping kernel net queue\n",
 			  tx->qp->qp_num);
 		netif_stop_queue(dev);
@@ -786,7 +787,7 @@
 	} else {
 		netif_trans_update(dev);
 		++tx->tx_head;
-		++priv->tx_head;
+		++priv->global_tx_head;
 	}
 }
 
@@ -820,10 +821,11 @@
 	netif_tx_lock(dev);
 
 	++tx->tx_tail;
-	++priv->tx_tail;
+	++priv->global_tx_tail;
 
 	if (unlikely(netif_queue_stopped(dev) &&
-		     (priv->tx_head - priv->tx_tail) <= ipoib_sendq_size >> 1 &&
+		     ((priv->global_tx_head - priv->global_tx_tail) <=
+		      ipoib_sendq_size >> 1) &&
 		     test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)))
 		netif_wake_queue(dev);
 
@@ -1232,8 +1234,9 @@
 		dev_kfree_skb_any(tx_req->skb);
 		netif_tx_lock_bh(p->dev);
 		++p->tx_tail;
-		++priv->tx_tail;
-		if (unlikely(priv->tx_head - priv->tx_tail == ipoib_sendq_size >> 1) &&
+		++priv->global_tx_tail;
+		if (unlikely((priv->global_tx_head - priv->global_tx_tail) <=
+			     ipoib_sendq_size >> 1) &&
 		    netif_queue_stopped(p->dev) &&
 		    test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags))
 			netif_wake_queue(p->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -407,9 +407,11 @@
 	dev_kfree_skb_any(tx_req->skb);
 
 	++priv->tx_tail;
+	++priv->global_tx_tail;
 
 	if (unlikely(netif_queue_stopped(dev) &&
-		     ((priv->tx_head - priv->tx_tail) <= ipoib_sendq_size >> 1) &&
+		     ((priv->global_tx_head - priv->global_tx_tail) <=
+		      ipoib_sendq_size >> 1) &&
 		     test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)))
 		netif_wake_queue(dev);
 
@@ -634,7 +636,8 @@
 	else
 		priv->tx_wr.wr.send_flags &= ~IB_SEND_IP_CSUM;
 	/* increase the tx_head after send success, but use it for queue state */
-	if (priv->tx_head - priv->tx_tail == ipoib_sendq_size - 1) {
+	if ((priv->global_tx_head - priv->global_tx_tail) ==
+	    ipoib_sendq_size - 1) {
 		ipoib_dbg(priv, "TX ring full, stopping kernel net queue\n");
 		netif_stop_queue(dev);
 	}
@@ -662,17 +665,17 @@
 
 		rc = priv->tx_head;
 		++priv->tx_head;
+		++priv->global_tx_head;
 	}
 	return rc;
 }
 
-static void __ipoib_reap_ah(struct net_device *dev)
+static void ipoib_reap_dead_ahs(struct ipoib_dev_priv *priv)
 {
-	struct ipoib_dev_priv *priv = ipoib_priv(dev);
 	struct ipoib_ah *ah, *tah;
 	unsigned long flags;
 
-	netif_tx_lock_bh(dev);
+	netif_tx_lock_bh(priv->dev);
 	spin_lock_irqsave(&priv->lock, flags);
 
 	list_for_each_entry_safe(ah, tah, &priv->dead_ahs, list)
@@ -683,37 +686,37 @@
 		}
 
 	spin_unlock_irqrestore(&priv->lock, flags);
-	netif_tx_unlock_bh(dev);
+	netif_tx_unlock_bh(priv->dev);
 }
 
 void ipoib_reap_ah(struct work_struct *work)
 {
 	struct ipoib_dev_priv *priv =
 		container_of(work, struct ipoib_dev_priv, ah_reap_task.work);
-	struct net_device *dev = priv->dev;
 
-	__ipoib_reap_ah(dev);
+	ipoib_reap_dead_ahs(priv);
 
 	if (!test_bit(IPOIB_STOP_REAPER, &priv->flags))
 		queue_delayed_work(priv->wq, &priv->ah_reap_task,
 				   round_jiffies_relative(HZ));
 }
 
-static void ipoib_flush_ah(struct net_device *dev)
+static void ipoib_start_ah_reaper(struct ipoib_dev_priv *priv)
 {
-	struct ipoib_dev_priv *priv = ipoib_priv(dev);
-
-	cancel_delayed_work(&priv->ah_reap_task);
-	flush_workqueue(priv->wq);
-	ipoib_reap_ah(&priv->ah_reap_task.work);
+	clear_bit(IPOIB_STOP_REAPER, &priv->flags);
+	queue_delayed_work(priv->wq, &priv->ah_reap_task,
+			   round_jiffies_relative(HZ));
 }
 
-static void ipoib_stop_ah(struct net_device *dev)
+static void ipoib_stop_ah_reaper(struct ipoib_dev_priv *priv)
 {
-	struct ipoib_dev_priv *priv = ipoib_priv(dev);
-
 	set_bit(IPOIB_STOP_REAPER, &priv->flags);
-	ipoib_flush_ah(dev);
+	cancel_delayed_work(&priv->ah_reap_task);
+	/*
+	 * After ipoib_stop_ah_reaper() we always go through
+	 * ipoib_reap_dead_ahs() which ensures the work is really stopped and
+	 * does a final flush out of the dead_ah's list
+	 */
 }
 
 static int recvs_pending(struct net_device *dev)
@@ -807,6 +810,7 @@
 				ipoib_dma_unmap_tx(priv, tx_req);
 				dev_kfree_skb_any(tx_req->skb);
 				++priv->tx_tail;
+				++priv->global_tx_tail;
 			}
 
 			for (i = 0; i < ipoib_recvq_size; ++i) {
@@ -841,18 +845,6 @@
 	return 0;
 }
 
-int ipoib_ib_dev_stop(struct net_device *dev)
-{
-	struct ipoib_dev_priv *priv = ipoib_priv(dev);
-
-	priv->rn_ops->ndo_stop(dev);
-
-	clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags);
-	ipoib_flush_ah(dev);
-
-	return 0;
-}
-
 int ipoib_ib_dev_open_default(struct net_device *dev)
 {
 	struct ipoib_dev_priv *priv = ipoib_priv(dev);
@@ -896,10 +888,7 @@
 		return -1;
 	}
 
-	clear_bit(IPOIB_STOP_REAPER, &priv->flags);
-	queue_delayed_work(priv->wq, &priv->ah_reap_task,
-			   round_jiffies_relative(HZ));
-
+	ipoib_start_ah_reaper(priv);
 	if (priv->rn_ops->ndo_open(dev)) {
 		pr_warn("%s: Failed to open dev\n", dev->name);
 		goto dev_stop;
@@ -910,13 +899,20 @@
 	return 0;
 
 dev_stop:
-	set_bit(IPOIB_STOP_REAPER, &priv->flags);
-	cancel_delayed_work(&priv->ah_reap_task);
-	set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags);
-	ipoib_ib_dev_stop(dev);
+	ipoib_stop_ah_reaper(priv);
 	return -1;
 }
 
+void ipoib_ib_dev_stop(struct net_device *dev)
+{
+	struct ipoib_dev_priv *priv = ipoib_priv(dev);
+
+	priv->rn_ops->ndo_stop(dev);
+
+	clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags);
+	ipoib_stop_ah_reaper(priv);
+}
+
 void ipoib_pkey_dev_check_presence(struct net_device *dev)
 {
 	struct ipoib_dev_priv *priv = ipoib_priv(dev);
@@ -1227,7 +1223,7 @@
 		ipoib_mcast_dev_flush(dev);
 		if (oper_up)
 			set_bit(IPOIB_FLAG_OPER_UP, &priv->flags);
-		ipoib_flush_ah(dev);
+		ipoib_reap_dead_ahs(priv);
 	}
 
 	if (level >= IPOIB_FLUSH_NORMAL)
@@ -1302,7 +1298,7 @@
 	 * the neighbor garbage collection is stopped and reaped.
 	 * That should all be done now, so make a final ah flush.
 	 */
-	ipoib_stop_ah(dev);
+	ipoib_reap_dead_ahs(priv);
 
 	clear_bit(IPOIB_PKEY_ASSIGNED, &priv->flags);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -1188,9 +1188,11 @@
 
 	ipoib_warn(priv, "transmit timeout: latency %d msecs\n",
 		   jiffies_to_msecs(jiffies - dev_trans_start(dev)));
-	ipoib_warn(priv, "queue stopped %d, tx_head %u, tx_tail %u\n",
-		   netif_queue_stopped(dev),
-		   priv->tx_head, priv->tx_tail);
+	ipoib_warn(priv,
+		   "queue stopped %d, tx_head %u, tx_tail %u, global_tx_head %u, global_tx_tail %u\n",
+		   netif_queue_stopped(dev), priv->tx_head, priv->tx_tail,
+		   priv->global_tx_head, priv->global_tx_tail);
+
 	/* XXX reset QP, etc. */
 }
 
@@ -1705,7 +1707,7 @@
 		goto out_rx_ring_cleanup;
 	}
 
-	/* priv->tx_head, tx_tail & tx_outstanding are already 0 */
+	/* priv->tx_head, tx_tail and global_tx_tail/head are already 0 */
 
 	if (ipoib_transport_dev_init(dev, priv->ca)) {
 		pr_warn("%s: ipoib_transport_dev_init failed\n",
@@ -1977,6 +1979,8 @@
 
 	/* no more works over the priv->wq */
 	if (priv->wq) {
+		/* See ipoib_mcast_carrier_on_task() */
+		WARN_ON(test_bit(IPOIB_FLAG_OPER_UP, &priv->flags));
 		flush_workqueue(priv->wq);
 		destroy_workqueue(priv->wq);
 		priv->wq = NULL;
@@ -2459,6 +2463,8 @@
 	/* call event handler to ensure pkey in sync */
 	queue_work(ipoib_workqueue, &priv->flush_heavy);
 
+	ndev->rtnl_link_ops = ipoib_get_link_ops();
+
 	result = register_netdev(ndev);
 	if (result) {
 		pr_warn("%s: couldn't register ipoib port %d; error %d\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
@@ -144,6 +144,16 @@
 	return 0;
 }
 
+static void ipoib_del_child_link(struct net_device *dev, struct list_head *head)
+{
+	struct ipoib_dev_priv *priv = ipoib_priv(dev);
+
+	if (!priv->parent)
+		return;
+
+	unregister_netdevice_queue(dev, head);
+}
+
 static size_t ipoib_get_size(const struct net_device *dev)
 {
 	return nla_total_size(2) +	/* IFLA_IPOIB_PKEY   */
@@ -158,6 +168,7 @@
 	.priv_size	= sizeof(struct ipoib_dev_priv),
 	.setup		= ipoib_setup_common,
 	.newlink	= ipoib_new_child_link,
+	.dellink	= ipoib_del_child_link,
 	.changelink	= ipoib_changelink,
 	.get_size	= ipoib_get_size,
 	.fill_info	= ipoib_fill_info,
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
@@ -192,6 +192,8 @@
 	}
 	priv = ipoib_priv(ndev);
 
+	ndev->rtnl_link_ops = ipoib_get_link_ops();
+
 	result = __ipoib_vlan_add(ppriv, priv, pkey, IPOIB_LEGACY_CHILD);
 
 	if (result && ndev->reg_state == NETREG_UNINITIALIZED)
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -646,6 +646,7 @@
 		if (ib_conn->pi_support) {
 			u32 sig_caps = ib_dev->attrs.sig_prot_cap;
 
+			shost->sg_prot_tablesize = shost->sg_tablesize;
 			scsi_host_set_prot(shost, iser_dif_prot_caps(sig_caps));
 			scsi_host_set_guard(shost, SHOST_DIX_GUARD_IP |
 						   SHOST_DIX_GUARD_CRC);
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/iser/iser_memory.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/iser/iser_memory.c
@@ -292,12 +292,27 @@
 {
 	struct iser_device *device = iser_task->iser_conn->ib_conn.device;
 	struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir];
+	struct iser_fr_desc *desc;
+	struct ib_mr_status mr_status;
 
-	if (!reg->mem_h)
+	desc = reg->mem_h;
+	if (!desc)
 		return;
 
-	device->reg_ops->reg_desc_put(&iser_task->iser_conn->ib_conn,
-				     reg->mem_h);
+	/*
+	 * The signature MR cannot be invalidated and reused without checking.
+	 * libiscsi calls the check_protection transport handler only if
+	 * SCSI-Response is received. And the signature MR is not checked if
+	 * the task is completed for some other reason like a timeout or error
+	 * handling. That's why we must check the signature MR here before
+	 * putting it to the free pool.
+	 */
+	if (unlikely(desc->sig_protected)) {
+		desc->sig_protected = false;
+		ib_check_mr_status(desc->rsc.sig_mr, IB_MR_CHECK_SIG_STATUS,
+				   &mr_status);
+	}
+	device->reg_ops->reg_desc_put(&iser_task->iser_conn->ib_conn, desc);
 	reg->mem_h = NULL;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/isert/ib_isert.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/isert/ib_isert.c
@@ -182,15 +182,15 @@
 	rx_desc = isert_conn->rx_descs;
 
 	for (i = 0; i < ISERT_QP_MAX_RECV_DTOS; i++, rx_desc++)  {
-		dma_addr = ib_dma_map_single(ib_dev, (void *)rx_desc,
-					ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+		dma_addr = ib_dma_map_single(ib_dev, rx_desc->buf,
+					ISER_RX_SIZE, DMA_FROM_DEVICE);
 		if (ib_dma_mapping_error(ib_dev, dma_addr))
 			goto dma_map_fail;
 
 		rx_desc->dma_addr = dma_addr;
 
 		rx_sg = &rx_desc->rx_sg;
-		rx_sg->addr = rx_desc->dma_addr;
+		rx_sg->addr = rx_desc->dma_addr + isert_get_hdr_offset(rx_desc);
 		rx_sg->length = ISER_RX_PAYLOAD_SIZE;
 		rx_sg->lkey = device->pd->local_dma_lkey;
 		rx_desc->rx_cqe.done = isert_recv_done;
@@ -202,7 +202,7 @@
 	rx_desc = isert_conn->rx_descs;
 	for (j = 0; j < i; j++, rx_desc++) {
 		ib_dma_unmap_single(ib_dev, rx_desc->dma_addr,
-				    ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+				    ISER_RX_SIZE, DMA_FROM_DEVICE);
 	}
 	kfree(isert_conn->rx_descs);
 	isert_conn->rx_descs = NULL;
@@ -223,7 +223,7 @@
 	rx_desc = isert_conn->rx_descs;
 	for (i = 0; i < ISERT_QP_MAX_RECV_DTOS; i++, rx_desc++)  {
 		ib_dma_unmap_single(ib_dev, rx_desc->dma_addr,
-				    ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+				    ISER_RX_SIZE, DMA_FROM_DEVICE);
 	}
 
 	kfree(isert_conn->rx_descs);
@@ -408,10 +408,9 @@
 			    ISER_RX_PAYLOAD_SIZE, DMA_TO_DEVICE);
 	kfree(isert_conn->login_rsp_buf);
 
-	ib_dma_unmap_single(ib_dev, isert_conn->login_req_dma,
-			    ISER_RX_PAYLOAD_SIZE,
-			    DMA_FROM_DEVICE);
-	kfree(isert_conn->login_req_buf);
+	ib_dma_unmap_single(ib_dev, isert_conn->login_desc->dma_addr,
+			    ISER_RX_SIZE, DMA_FROM_DEVICE);
+	kfree(isert_conn->login_desc);
 }
 
 static int
@@ -420,25 +419,25 @@
 {
 	int ret;
 
-	isert_conn->login_req_buf = kzalloc(sizeof(*isert_conn->login_req_buf),
+	isert_conn->login_desc = kzalloc(sizeof(*isert_conn->login_desc),
 			GFP_KERNEL);
-	if (!isert_conn->login_req_buf)
+	if (!isert_conn->login_desc)
 		return -ENOMEM;
 
-	isert_conn->login_req_dma = ib_dma_map_single(ib_dev,
-				isert_conn->login_req_buf,
-				ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
-	ret = ib_dma_mapping_error(ib_dev, isert_conn->login_req_dma);
+	isert_conn->login_desc->dma_addr = ib_dma_map_single(ib_dev,
+				isert_conn->login_desc->buf,
+				ISER_RX_SIZE, DMA_FROM_DEVICE);
+	ret = ib_dma_mapping_error(ib_dev, isert_conn->login_desc->dma_addr);
 	if (ret) {
-		isert_err("login_req_dma mapping error: %d\n", ret);
-		isert_conn->login_req_dma = 0;
-		goto out_free_login_req_buf;
+		isert_err("login_desc dma mapping error: %d\n", ret);
+		isert_conn->login_desc->dma_addr = 0;
+		goto out_free_login_desc;
 	}
 
 	isert_conn->login_rsp_buf = kzalloc(ISER_RX_PAYLOAD_SIZE, GFP_KERNEL);
 	if (!isert_conn->login_rsp_buf) {
 		ret = -ENOMEM;
-		goto out_unmap_login_req_buf;
+		goto out_unmap_login_desc;
 	}
 
 	isert_conn->login_rsp_dma = ib_dma_map_single(ib_dev,
@@ -455,11 +454,11 @@
 
 out_free_login_rsp_buf:
 	kfree(isert_conn->login_rsp_buf);
-out_unmap_login_req_buf:
-	ib_dma_unmap_single(ib_dev, isert_conn->login_req_dma,
-			    ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
-out_free_login_req_buf:
-	kfree(isert_conn->login_req_buf);
+out_unmap_login_desc:
+	ib_dma_unmap_single(ib_dev, isert_conn->login_desc->dma_addr,
+			    ISER_RX_SIZE, DMA_FROM_DEVICE);
+out_free_login_desc:
+	kfree(isert_conn->login_desc);
 	return ret;
 }
 
@@ -578,7 +577,7 @@
 		ib_destroy_qp(isert_conn->qp);
 	}
 
-	if (isert_conn->login_req_buf)
+	if (isert_conn->login_desc)
 		isert_free_login_buf(isert_conn);
 
 	isert_device_put(device);
@@ -964,17 +963,18 @@
 	int ret;
 
 	memset(&sge, 0, sizeof(struct ib_sge));
-	sge.addr = isert_conn->login_req_dma;
+	sge.addr = isert_conn->login_desc->dma_addr +
+		isert_get_hdr_offset(isert_conn->login_desc);
 	sge.length = ISER_RX_PAYLOAD_SIZE;
 	sge.lkey = isert_conn->device->pd->local_dma_lkey;
 
 	isert_dbg("Setup sge: addr: %llx length: %d 0x%08x\n",
 		sge.addr, sge.length, sge.lkey);
 
-	isert_conn->login_req_buf->rx_cqe.done = isert_login_recv_done;
+	isert_conn->login_desc->rx_cqe.done = isert_login_recv_done;
 
 	memset(&rx_wr, 0, sizeof(struct ib_recv_wr));
-	rx_wr.wr_cqe = &isert_conn->login_req_buf->rx_cqe;
+	rx_wr.wr_cqe = &isert_conn->login_desc->rx_cqe;
 	rx_wr.sg_list = &sge;
 	rx_wr.num_sge = 1;
 
@@ -1051,7 +1051,7 @@
 static void
 isert_rx_login_req(struct isert_conn *isert_conn)
 {
-	struct iser_rx_desc *rx_desc = isert_conn->login_req_buf;
+	struct iser_rx_desc *rx_desc = isert_conn->login_desc;
 	int rx_buflen = isert_conn->login_req_len;
 	struct iscsi_conn *conn = isert_conn->conn;
 	struct iscsi_login *login = conn->conn_login;
@@ -1063,7 +1063,7 @@
 
 	if (login->first_request) {
 		struct iscsi_login_req *login_req =
-			(struct iscsi_login_req *)&rx_desc->iscsi_header;
+			(struct iscsi_login_req *)isert_get_iscsi_hdr(rx_desc);
 		/*
 		 * Setup the initial iscsi_login values from the leading
 		 * login request PDU.
@@ -1082,13 +1082,13 @@
 		login->tsih		= be16_to_cpu(login_req->tsih);
 	}
 
-	memcpy(&login->req[0], (void *)&rx_desc->iscsi_header, ISCSI_HDR_LEN);
+	memcpy(&login->req[0], isert_get_iscsi_hdr(rx_desc), ISCSI_HDR_LEN);
 
 	size = min(rx_buflen, MAX_KEY_VALUE_PAIRS);
 	isert_dbg("Using login payload size: %d, rx_buflen: %d "
 		  "MAX_KEY_VALUE_PAIRS: %d\n", size, rx_buflen,
 		  MAX_KEY_VALUE_PAIRS);
-	memcpy(login->req_buf, &rx_desc->data[0], size);
+	memcpy(login->req_buf, isert_get_data(rx_desc), size);
 
 	if (login->first_request) {
 		complete(&isert_conn->login_comp);
@@ -1153,14 +1153,15 @@
 	if (imm_data_len != data_len) {
 		sg_nents = max(1UL, DIV_ROUND_UP(imm_data_len, PAGE_SIZE));
 		sg_copy_from_buffer(cmd->se_cmd.t_data_sg, sg_nents,
-				    &rx_desc->data[0], imm_data_len);
+				    isert_get_data(rx_desc), imm_data_len);
 		isert_dbg("Copy Immediate sg_nents: %u imm_data_len: %d\n",
 			  sg_nents, imm_data_len);
 	} else {
 		sg_init_table(&isert_cmd->sg, 1);
 		cmd->se_cmd.t_data_sg = &isert_cmd->sg;
 		cmd->se_cmd.t_data_nents = 1;
-		sg_set_buf(&isert_cmd->sg, &rx_desc->data[0], imm_data_len);
+		sg_set_buf(&isert_cmd->sg, isert_get_data(rx_desc),
+				imm_data_len);
 		isert_dbg("Transfer Immediate imm_data_len: %d\n",
 			  imm_data_len);
 	}
@@ -1229,9 +1230,9 @@
 	}
 	isert_dbg("Copying DataOut: sg_start: %p, sg_off: %u "
 		  "sg_nents: %u from %p %u\n", sg_start, sg_off,
-		  sg_nents, &rx_desc->data[0], unsol_data_len);
+		  sg_nents, isert_get_data(rx_desc), unsol_data_len);
 
-	sg_copy_from_buffer(sg_start, sg_nents, &rx_desc->data[0],
+	sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc),
 			    unsol_data_len);
 
 	rc = iscsit_check_dataout_payload(cmd, hdr, false);
@@ -1290,7 +1291,7 @@
 	}
 	cmd->text_in_ptr = text_in;
 
-	memcpy(cmd->text_in_ptr, &rx_desc->data[0], payload_length);
+	memcpy(cmd->text_in_ptr, isert_get_data(rx_desc), payload_length);
 
 	return iscsit_process_text_cmd(conn, cmd, hdr);
 }
@@ -1300,7 +1301,7 @@
 		uint32_t read_stag, uint64_t read_va,
 		uint32_t write_stag, uint64_t write_va)
 {
-	struct iscsi_hdr *hdr = &rx_desc->iscsi_header;
+	struct iscsi_hdr *hdr = isert_get_iscsi_hdr(rx_desc);
 	struct iscsi_conn *conn = isert_conn->conn;
 	struct iscsi_cmd *cmd;
 	struct isert_cmd *isert_cmd;
@@ -1398,8 +1399,8 @@
 	struct isert_conn *isert_conn = wc->qp->qp_context;
 	struct ib_device *ib_dev = isert_conn->cm_id->device;
 	struct iser_rx_desc *rx_desc = cqe_to_rx_desc(wc->wr_cqe);
-	struct iscsi_hdr *hdr = &rx_desc->iscsi_header;
-	struct iser_ctrl *iser_ctrl = &rx_desc->iser_header;
+	struct iscsi_hdr *hdr = isert_get_iscsi_hdr(rx_desc);
+	struct iser_ctrl *iser_ctrl = isert_get_iser_hdr(rx_desc);
 	uint64_t read_va = 0, write_va = 0;
 	uint32_t read_stag = 0, write_stag = 0;
 
@@ -1413,7 +1414,7 @@
 	rx_desc->in_use = true;
 
 	ib_dma_sync_single_for_cpu(ib_dev, rx_desc->dma_addr,
-			ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+			ISER_RX_SIZE, DMA_FROM_DEVICE);
 
 	isert_dbg("DMA: 0x%llx, iSCSI opcode: 0x%02x, ITT: 0x%08x, flags: 0x%02x dlen: %d\n",
 		 rx_desc->dma_addr, hdr->opcode, hdr->itt, hdr->flags,
@@ -1448,7 +1449,7 @@
 			read_stag, read_va, write_stag, write_va);
 
 	ib_dma_sync_single_for_device(ib_dev, rx_desc->dma_addr,
-			ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+			ISER_RX_SIZE, DMA_FROM_DEVICE);
 }
 
 static void
@@ -1462,8 +1463,8 @@
 		return;
 	}
 
-	ib_dma_sync_single_for_cpu(ib_dev, isert_conn->login_req_dma,
-			ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+	ib_dma_sync_single_for_cpu(ib_dev, isert_conn->login_desc->dma_addr,
+			ISER_RX_SIZE, DMA_FROM_DEVICE);
 
 	isert_conn->login_req_len = wc->byte_len - ISER_HEADERS_LEN;
 
@@ -1478,8 +1479,8 @@
 	complete(&isert_conn->login_req_comp);
 	mutex_unlock(&isert_conn->mutex);
 
-	ib_dma_sync_single_for_device(ib_dev, isert_conn->login_req_dma,
-				ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+	ib_dma_sync_single_for_device(ib_dev, isert_conn->login_desc->dma_addr,
+				ISER_RX_SIZE, DMA_FROM_DEVICE);
 }
 
 static void
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/isert/ib_isert.h
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/isert/ib_isert.h
@@ -59,9 +59,11 @@
 				ISERT_MAX_TX_MISC_PDUS	+ \
 				ISERT_MAX_RX_MISC_PDUS)
 
-#define ISER_RX_PAD_SIZE	(ISCSI_DEF_MAX_RECV_SEG_LEN + 4096 - \
-		(ISER_RX_PAYLOAD_SIZE + sizeof(u64) + sizeof(struct ib_sge) + \
-		 sizeof(struct ib_cqe) + sizeof(bool)))
+/*
+ * RX size is default of 8k plus headers, but data needs to align to
+ * 512 boundary, so use 1024 to have the extra space for alignment.
+ */
+#define ISER_RX_SIZE		(ISCSI_DEF_MAX_RECV_SEG_LEN + 1024)
 
 #define ISCSI_ISER_SG_TABLESIZE		256
 
@@ -80,21 +82,41 @@
 };
 
 struct iser_rx_desc {
-	struct iser_ctrl iser_header;
-	struct iscsi_hdr iscsi_header;
-	char		data[ISCSI_DEF_MAX_RECV_SEG_LEN];
+	char		buf[ISER_RX_SIZE];
 	u64		dma_addr;
 	struct ib_sge	rx_sg;
 	struct ib_cqe	rx_cqe;
 	bool		in_use;
-	char		pad[ISER_RX_PAD_SIZE];
-} __packed;
+};
 
 static inline struct iser_rx_desc *cqe_to_rx_desc(struct ib_cqe *cqe)
 {
 	return container_of(cqe, struct iser_rx_desc, rx_cqe);
 }
 
+static void *isert_get_iser_hdr(struct iser_rx_desc *desc)
+{
+	return PTR_ALIGN(desc->buf + ISER_HEADERS_LEN, 512) - ISER_HEADERS_LEN;
+}
+
+static size_t isert_get_hdr_offset(struct iser_rx_desc *desc)
+{
+	return isert_get_iser_hdr(desc) - (void *)desc->buf;
+}
+
+static void *isert_get_iscsi_hdr(struct iser_rx_desc *desc)
+{
+	return isert_get_iser_hdr(desc) + sizeof(struct iser_ctrl);
+}
+
+static void *isert_get_data(struct iser_rx_desc *desc)
+{
+	void *data = isert_get_iser_hdr(desc) + ISER_HEADERS_LEN;
+
+	WARN_ON((uintptr_t)data & 511);
+	return data;
+}
+
 struct iser_tx_desc {
 	struct iser_ctrl iser_header;
 	struct iscsi_hdr iscsi_header;
@@ -141,9 +163,8 @@
 	u32			responder_resources;
 	u32			initiator_depth;
 	bool			pi_support;
-	struct iser_rx_desc	*login_req_buf;
+	struct iser_rx_desc	*login_desc;
 	char			*login_rsp_buf;
-	u64			login_req_dma;
 	int			login_req_len;
 	u64			login_rsp_dma;
 	struct iser_rx_desc	*rx_descs;
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/srp/ib_srp.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2536,7 +2536,8 @@
 	if (lrsp->opcode == SRP_LOGIN_RSP) {
 		ch->max_ti_iu_len = be32_to_cpu(lrsp->max_ti_iu_len);
 		ch->req_lim       = be32_to_cpu(lrsp->req_lim_delta);
-		ch->use_imm_data  = lrsp->rsp_flags & SRP_LOGIN_RSP_IMMED_SUPP;
+		ch->use_imm_data  = srp_use_imm_data &&
+			(lrsp->rsp_flags & SRP_LOGIN_RSP_IMMED_SUPP);
 		ch->max_it_iu_len = srp_max_it_iu_len(target->cmd_sg_cnt,
 						      ch->use_imm_data);
 		WARN_ON_ONCE(ch->max_it_iu_len >
--- linux-gkeop-5.4-5.4.0.orig/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ linux-gkeop-5.4-5.4.0/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -1364,9 +1364,11 @@
 			      struct srpt_send_ioctx *ioctx, u64 tag,
 			      int status)
 {
+	struct se_cmd *cmd = &ioctx->cmd;
 	struct srp_rsp *srp_rsp;
 	const u8 *sense_data;
 	int sense_data_len, max_sense_len;
+	u32 resid = cmd->residual_count;
 
 	/*
 	 * The lowest bit of all SAM-3 status codes is zero (see also
@@ -1388,6 +1390,28 @@
 	srp_rsp->tag = tag;
 	srp_rsp->status = status;
 
+	if (cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) {
+		if (cmd->data_direction == DMA_TO_DEVICE) {
+			/* residual data from an underflow write */
+			srp_rsp->flags = SRP_RSP_FLAG_DOUNDER;
+			srp_rsp->data_out_res_cnt = cpu_to_be32(resid);
+		} else if (cmd->data_direction == DMA_FROM_DEVICE) {
+			/* residual data from an underflow read */
+			srp_rsp->flags = SRP_RSP_FLAG_DIUNDER;
+			srp_rsp->data_in_res_cnt = cpu_to_be32(resid);
+		}
+	} else if (cmd->se_cmd_flags & SCF_OVERFLOW_BIT) {
+		if (cmd->data_direction == DMA_TO_DEVICE) {
+			/* residual data from an overflow write */
+			srp_rsp->flags = SRP_RSP_FLAG_DOOVER;
+			srp_rsp->data_out_res_cnt = cpu_to_be32(resid);
+		} else if (cmd->data_direction == DMA_FROM_DEVICE) {
+			/* residual data from an overflow read */
+			srp_rsp->flags = SRP_RSP_FLAG_DIOVER;
+			srp_rsp->data_in_res_cnt = cpu_to_be32(resid);
+		}
+	}
+
 	if (sense_data_len) {
 		BUILD_BUG_ON(MIN_MAX_RSP_SIZE <= sizeof(*srp_rsp));
 		max_sense_len = ch->max_ti_iu_len - sizeof(*srp_rsp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/evdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/evdev.c
@@ -224,13 +224,13 @@
 		 */
 		client->tail = (client->head - 2) & (client->bufsize - 1);
 
-		client->buffer[client->tail].input_event_sec =
-						event->input_event_sec;
-		client->buffer[client->tail].input_event_usec =
-						event->input_event_usec;
-		client->buffer[client->tail].type = EV_SYN;
-		client->buffer[client->tail].code = SYN_DROPPED;
-		client->buffer[client->tail].value = 0;
+		client->buffer[client->tail] = (struct input_event) {
+			.input_event_sec = event->input_event_sec,
+			.input_event_usec = event->input_event_usec,
+			.type = EV_SYN,
+			.code = SYN_DROPPED,
+			.value = 0,
+		};
 
 		client->packet_head = client->tail;
 	}
@@ -326,20 +326,6 @@
 	return fasync_helper(fd, file, on, &client->fasync);
 }
 
-static int evdev_flush(struct file *file, fl_owner_t id)
-{
-	struct evdev_client *client = file->private_data;
-	struct evdev *evdev = client->evdev;
-
-	mutex_lock(&evdev->mutex);
-
-	if (evdev->exist && !client->revoked)
-		input_flush_device(&evdev->handle, file);
-
-	mutex_unlock(&evdev->mutex);
-	return 0;
-}
-
 static void evdev_free(struct device *dev)
 {
 	struct evdev *evdev = container_of(dev, struct evdev, dev);
@@ -453,6 +439,10 @@
 	unsigned int i;
 
 	mutex_lock(&evdev->mutex);
+
+	if (evdev->exist && !client->revoked)
+		input_flush_device(&evdev->handle, file);
+
 	evdev_ungrab(evdev, client);
 	mutex_unlock(&evdev->mutex);
 
@@ -484,10 +474,7 @@
 	struct evdev_client *client;
 	int error;
 
-	client = kzalloc(struct_size(client, buffer, bufsize),
-			 GFP_KERNEL | __GFP_NOWARN);
-	if (!client)
-		client = vzalloc(struct_size(client, buffer, bufsize));
+	client = kvzalloc(struct_size(client, buffer, bufsize), GFP_KERNEL);
 	if (!client)
 		return -ENOMEM;
 
@@ -1313,7 +1300,6 @@
 	.compat_ioctl	= evdev_ioctl_compat,
 #endif
 	.fasync		= evdev_fasync,
-	.flush		= evdev_flush,
 	.llseek		= no_llseek,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/input.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/input.c
@@ -190,6 +190,7 @@
 			input_value_sync
 		};
 
+		input_set_timestamp(dev, ktime_get());
 		input_pass_values(dev, vals, ARRAY_SIZE(vals));
 
 		if (dev->rep[REP_PERIOD])
@@ -878,16 +879,18 @@
 		}
 	}
 
-	__clear_bit(*old_keycode, dev->keybit);
-	__set_bit(ke->keycode, dev->keybit);
-
-	for (i = 0; i < dev->keycodemax; i++) {
-		if (input_fetch_keycode(dev, i) == *old_keycode) {
-			__set_bit(*old_keycode, dev->keybit);
-			break; /* Setting the bit twice is useless, so break */
+	if (*old_keycode <= KEY_MAX) {
+		__clear_bit(*old_keycode, dev->keybit);
+		for (i = 0; i < dev->keycodemax; i++) {
+			if (input_fetch_keycode(dev, i) == *old_keycode) {
+				__set_bit(*old_keycode, dev->keybit);
+				/* Setting the bit twice is useless, so break */
+				break;
+			}
 		}
 	}
 
+	__set_bit(ke->keycode, dev->keybit);
 	return 0;
 }
 
@@ -943,9 +946,13 @@
 	 * Simulate keyup event if keycode is not present
 	 * in the keymap anymore
 	 */
-	if (test_bit(EV_KEY, dev->evbit) &&
-	    !is_event_supported(old_keycode, dev->keybit, KEY_MAX) &&
-	    __test_and_clear_bit(old_keycode, dev->key)) {
+	if (old_keycode > KEY_MAX) {
+		dev_warn(dev->dev.parent ?: &dev->dev,
+			 "%s: got too big old keycode %#x\n",
+			 __func__, old_keycode);
+	} else if (test_bit(EV_KEY, dev->evbit) &&
+		   !is_event_supported(old_keycode, dev->keybit, KEY_MAX) &&
+		   __test_and_clear_bit(old_keycode, dev->key)) {
 		struct input_value vals[] =  {
 			{ EV_KEY, old_keycode, 0 },
 			input_value_sync
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/joydev.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/joydev.c
@@ -456,7 +456,7 @@
 	if (IS_ERR(abspam))
 		return PTR_ERR(abspam);
 
-	for (i = 0; i < joydev->nabs; i++) {
+	for (i = 0; i < len && i < joydev->nabs; i++) {
 		if (abspam[i] > ABS_MAX) {
 			retval = -EINVAL;
 			goto out;
@@ -480,6 +480,9 @@
 	int i;
 	int retval = 0;
 
+	if (len % sizeof(*keypam))
+		return -EINVAL;
+
 	len = min(len, sizeof(joydev->keypam));
 
 	/* Validate the map. */
@@ -487,7 +490,7 @@
 	if (IS_ERR(keypam))
 		return PTR_ERR(keypam);
 
-	for (i = 0; i < joydev->nkey; i++) {
+	for (i = 0; i < (len / 2) && i < joydev->nkey; i++) {
 		if (keypam[i] > KEY_MAX || keypam[i] < BTN_MISC) {
 			retval = -EINVAL;
 			goto out;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/joystick/psxpad-spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/joystick/psxpad-spi.c
@@ -292,7 +292,7 @@
 	if (!pad)
 		return -ENOMEM;
 
-	pdev = input_allocate_polled_device();
+	pdev = devm_input_allocate_polled_device(&spi->dev);
 	if (!pdev) {
 		dev_err(&spi->dev, "failed to allocate input device\n");
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/joystick/xpad.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/joystick/xpad.c
@@ -215,9 +215,17 @@
 	{ 0x0e6f, 0x0213, "Afterglow Gamepad for Xbox 360", 0, XTYPE_XBOX360 },
 	{ 0x0e6f, 0x021f, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 },
 	{ 0x0e6f, 0x0246, "Rock Candy Gamepad for Xbox One 2015", 0, XTYPE_XBOXONE },
-	{ 0x0e6f, 0x02ab, "PDP Controller for Xbox One", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02a0, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02a1, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02a2, "PDP Wired Controller for Xbox One - Crimson Red", 0, XTYPE_XBOXONE },
 	{ 0x0e6f, 0x02a4, "PDP Wired Controller for Xbox One - Stealth Series", 0, XTYPE_XBOXONE },
 	{ 0x0e6f, 0x02a6, "PDP Wired Controller for Xbox One - Camo Series", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02a7, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02a8, "PDP Xbox One Controller", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02ab, "PDP Controller for Xbox One", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02ad, "PDP Wired Controller for Xbox One - Stealth Series", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02b3, "Afterglow Prismatic Wired Controller", 0, XTYPE_XBOXONE },
+	{ 0x0e6f, 0x02b8, "Afterglow Prismatic Wired Controller", 0, XTYPE_XBOXONE },
 	{ 0x0e6f, 0x0301, "Logic3 Controller", 0, XTYPE_XBOX360 },
 	{ 0x0e6f, 0x0346, "Rock Candy Gamepad for Xbox One 2016", 0, XTYPE_XBOXONE },
 	{ 0x0e6f, 0x0401, "Logic3 Controller", 0, XTYPE_XBOX360 },
@@ -241,6 +249,7 @@
 	{ 0x1038, 0x1430, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 },
 	{ 0x1038, 0x1431, "SteelSeries Stratus Duo", 0, XTYPE_XBOX360 },
 	{ 0x11c9, 0x55f0, "Nacon GC-100XF", 0, XTYPE_XBOX360 },
+	{ 0x1209, 0x2882, "Ardwiino Controller", 0, XTYPE_XBOX360 },
 	{ 0x12ab, 0x0004, "Honey Bee Xbox360 dancepad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x12ab, 0x0301, "PDP AFTERGLOW AX.1", 0, XTYPE_XBOX360 },
 	{ 0x12ab, 0x0303, "Mortal Kombat Klassic FightStick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
@@ -295,6 +304,10 @@
 	{ 0x1bad, 0xfa01, "MadCatz GamePad", 0, XTYPE_XBOX360 },
 	{ 0x1bad, 0xfd00, "Razer Onza TE", 0, XTYPE_XBOX360 },
 	{ 0x1bad, 0xfd01, "Razer Onza", 0, XTYPE_XBOX360 },
+	{ 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE },
+	{ 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE },
+	{ 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 },
+	{ 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE },
 	{ 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
 	{ 0x24c6, 0x5300, "PowerA MINI PROEX Controller", 0, XTYPE_XBOX360 },
 	{ 0x24c6, 0x5303, "Xbox Airflo wired controller", 0, XTYPE_XBOX360 },
@@ -418,6 +431,7 @@
 	XPAD_XBOXONE_VENDOR(0x0f0d),		/* Hori Controllers */
 	XPAD_XBOX360_VENDOR(0x1038),		/* SteelSeries Controllers */
 	XPAD_XBOX360_VENDOR(0x11c9),		/* Nacon GC100XF */
+	XPAD_XBOX360_VENDOR(0x1209),		/* Ardwiino Controllers */
 	XPAD_XBOX360_VENDOR(0x12ab),		/* X-Box 360 dance pads */
 	XPAD_XBOX360_VENDOR(0x1430),		/* RedOctane X-Box 360 controllers */
 	XPAD_XBOX360_VENDOR(0x146b),		/* BigBen Interactive Controllers */
@@ -427,8 +441,12 @@
 	XPAD_XBOX360_VENDOR(0x162e),		/* Joytech X-Box 360 controllers */
 	XPAD_XBOX360_VENDOR(0x1689),		/* Razer Onza */
 	XPAD_XBOX360_VENDOR(0x1bad),		/* Harminix Rock Band Guitar and Drums */
+	XPAD_XBOX360_VENDOR(0x20d6),		/* PowerA Controllers */
+	XPAD_XBOXONE_VENDOR(0x20d6),		/* PowerA Controllers */
 	XPAD_XBOX360_VENDOR(0x24c6),		/* PowerA Controllers */
 	XPAD_XBOXONE_VENDOR(0x24c6),		/* PowerA Controllers */
+	XPAD_XBOXONE_VENDOR(0x2e24),		/* Hyperkin Duke X-Box One pad */
+	XPAD_XBOX360_VENDOR(0x2f24),		/* GameSir Controllers */
 	{ }
 };
 
@@ -459,6 +477,16 @@
 };
 
 /*
+ * This packet is required for Xbox One S (0x045e:0x02ea)
+ * and Xbox One Elite Series 2 (0x045e:0x0b00) pads to
+ * initialize the controller that was previously used in
+ * Bluetooth mode.
+ */
+static const u8 xboxone_s_init[] = {
+	0x05, 0x20, 0x00, 0x0f, 0x06
+};
+
+/*
  * This packet is required for the Titanfall 2 Xbox One pads
  * (0x0e6f:0x0165) to finish initialization and for Hori pads
  * (0x0f0d:0x0067) to make the analog sticks work.
@@ -516,6 +544,8 @@
 	XBOXONE_INIT_PKT(0x0e6f, 0x0165, xboxone_hori_init),
 	XBOXONE_INIT_PKT(0x0f0d, 0x0067, xboxone_hori_init),
 	XBOXONE_INIT_PKT(0x0000, 0x0000, xboxone_fw2015_init),
+	XBOXONE_INIT_PKT(0x045e, 0x02ea, xboxone_s_init),
+	XBOXONE_INIT_PKT(0x045e, 0x0b00, xboxone_s_init),
 	XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_init1),
 	XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_init2),
 	XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/applespi.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/applespi.c
@@ -48,6 +48,7 @@
 #include <linux/efi.h>
 #include <linux/input.h>
 #include <linux/input/mt.h>
+#include <linux/ktime.h>
 #include <linux/leds.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
@@ -400,7 +401,7 @@
 	unsigned int			cmd_msg_cntr;
 	/* lock to protect the above parameters and flags below */
 	spinlock_t			cmd_msg_lock;
-	bool				cmd_msg_queued;
+	ktime_t				cmd_msg_queued;
 	enum applespi_evt_type		cmd_evt_type;
 
 	struct led_classdev		backlight_info;
@@ -716,7 +717,7 @@
 		wake_up_all(&applespi->drain_complete);
 
 	if (is_write_msg) {
-		applespi->cmd_msg_queued = false;
+		applespi->cmd_msg_queued = 0;
 		applespi_send_cmd_msg(applespi);
 	}
 
@@ -758,8 +759,16 @@
 		return 0;
 
 	/* check whether send is in progress */
-	if (applespi->cmd_msg_queued)
-		return 0;
+	if (applespi->cmd_msg_queued) {
+		if (ktime_ms_delta(ktime_get(), applespi->cmd_msg_queued) < 1000)
+			return 0;
+
+		dev_warn(&applespi->spi->dev, "Command %d timed out\n",
+			 applespi->cmd_evt_type);
+
+		applespi->cmd_msg_queued = 0;
+		applespi->write_active = false;
+	}
 
 	/* set up packet */
 	memset(packet, 0, APPLESPI_PACKET_SIZE);
@@ -856,7 +865,7 @@
 		return sts;
 	}
 
-	applespi->cmd_msg_queued = true;
+	applespi->cmd_msg_queued = ktime_get_coarse();
 	applespi->write_active = true;
 
 	return 0;
@@ -1908,7 +1917,7 @@
 	applespi->drain = false;
 	applespi->have_cl_led_on = false;
 	applespi->have_bl_level = 0;
-	applespi->cmd_msg_queued = false;
+	applespi->cmd_msg_queued = 0;
 	applespi->read_active = false;
 	applespi->write_active = false;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/cros_ec_keyb.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/cros_ec_keyb.c
@@ -183,6 +183,7 @@
 					"changed: [r%d c%d]: byte %02x\n",
 					row, col, new_state);
 
+				input_event(idev, EV_MSC, MSC_SCAN, pos);
 				input_report_key(idev, keycodes[pos],
 						 new_state);
 			}
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/dlink-dir685-touchkeys.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/dlink-dir685-touchkeys.c
@@ -143,7 +143,7 @@
 
 static struct i2c_driver dir685_tk_i2c_driver = {
 	.driver = {
-		.name	= "dlin-dir685-touchkeys",
+		.name	= "dlink-dir685-touchkeys",
 		.of_match_table = of_match_ptr(dir685_tk_of_match),
 	},
 	.probe		= dir685_tk_probe,
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/ep93xx_keypad.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/ep93xx_keypad.c
@@ -250,8 +250,8 @@
 	}
 
 	keypad->irq = platform_get_irq(pdev, 0);
-	if (!keypad->irq) {
-		err = -ENXIO;
+	if (keypad->irq < 0) {
+		err = keypad->irq;
 		goto failed_free;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/omap4-keypad.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/omap4-keypad.c
@@ -186,12 +186,8 @@
 	return 0;
 }
 
-static void omap4_keypad_close(struct input_dev *input)
+static void omap4_keypad_stop(struct omap4_keypad *keypad_data)
 {
-	struct omap4_keypad *keypad_data = input_get_drvdata(input);
-
-	disable_irq(keypad_data->irq);
-
 	/* Disable interrupts and wake-up events */
 	kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,
 			 OMAP4_VAL_IRQDISABLE);
@@ -200,7 +196,15 @@
 	/* clear pending interrupts */
 	kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,
 			 kbd_read_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS));
+}
+
+static void omap4_keypad_close(struct input_dev *input)
+{
+	struct omap4_keypad *keypad_data;
 
+	keypad_data = input_get_drvdata(input);
+	disable_irq(keypad_data->irq);
+	omap4_keypad_stop(keypad_data);
 	enable_irq(keypad_data->irq);
 
 	pm_runtime_put_sync(input->dev.parent);
@@ -223,13 +227,37 @@
 	return 0;
 }
 
+static int omap4_keypad_check_revision(struct device *dev,
+				       struct omap4_keypad *keypad_data)
+{
+	unsigned int rev;
+
+	rev = __raw_readl(keypad_data->base + OMAP4_KBD_REVISION);
+	rev &= 0x03 << 30;
+	rev >>= 30;
+	switch (rev) {
+	case KBD_REVISION_OMAP4:
+		keypad_data->reg_offset = 0x00;
+		keypad_data->irqreg_offset = 0x00;
+		break;
+	case KBD_REVISION_OMAP5:
+		keypad_data->reg_offset = 0x10;
+		keypad_data->irqreg_offset = 0x0c;
+		break;
+	default:
+		dev_err(dev, "Keypad reports unsupported revision %d", rev);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 static int omap4_keypad_probe(struct platform_device *pdev)
 {
 	struct omap4_keypad *keypad_data;
 	struct input_dev *input_dev;
 	struct resource *res;
 	unsigned int max_keys;
-	int rev;
 	int irq;
 	int error;
 
@@ -240,10 +268,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		dev_err(&pdev->dev, "no keyboard irq assigned\n");
-		return -EINVAL;
-	}
+	if (irq < 0)
+		return irq;
 
 	keypad_data = kzalloc(sizeof(struct omap4_keypad), GFP_KERNEL);
 	if (!keypad_data) {
@@ -271,41 +297,33 @@
 		goto err_release_mem;
 	}
 
+	pm_runtime_enable(&pdev->dev);
 
 	/*
 	 * Enable clocks for the keypad module so that we can read
 	 * revision register.
 	 */
-	pm_runtime_enable(&pdev->dev);
 	error = pm_runtime_get_sync(&pdev->dev);
 	if (error) {
 		dev_err(&pdev->dev, "pm_runtime_get_sync() failed\n");
-		goto err_unmap;
-	}
-	rev = __raw_readl(keypad_data->base + OMAP4_KBD_REVISION);
-	rev &= 0x03 << 30;
-	rev >>= 30;
-	switch (rev) {
-	case KBD_REVISION_OMAP4:
-		keypad_data->reg_offset = 0x00;
-		keypad_data->irqreg_offset = 0x00;
-		break;
-	case KBD_REVISION_OMAP5:
-		keypad_data->reg_offset = 0x10;
-		keypad_data->irqreg_offset = 0x0c;
-		break;
-	default:
-		dev_err(&pdev->dev,
-			"Keypad reports unsupported revision %d", rev);
-		error = -EINVAL;
-		goto err_pm_put_sync;
+		pm_runtime_put_noidle(&pdev->dev);
+	} else {
+		error = omap4_keypad_check_revision(&pdev->dev,
+						    keypad_data);
+		if (!error) {
+			/* Ensure device does not raise interrupts */
+			omap4_keypad_stop(keypad_data);
+		}
+		pm_runtime_put_sync(&pdev->dev);
 	}
+	if (error)
+		goto err_pm_disable;
 
 	/* input device allocation */
 	keypad_data->input = input_dev = input_allocate_device();
 	if (!input_dev) {
 		error = -ENOMEM;
-		goto err_pm_put_sync;
+		goto err_pm_disable;
 	}
 
 	input_dev->name = pdev->name;
@@ -351,28 +369,25 @@
 		goto err_free_keymap;
 	}
 
-	device_init_wakeup(&pdev->dev, true);
-	pm_runtime_put_sync(&pdev->dev);
-
 	error = input_register_device(keypad_data->input);
 	if (error < 0) {
 		dev_err(&pdev->dev, "failed to register input device\n");
-		goto err_pm_disable;
+		goto err_free_irq;
 	}
 
+	device_init_wakeup(&pdev->dev, true);
 	platform_set_drvdata(pdev, keypad_data);
+
 	return 0;
 
-err_pm_disable:
-	pm_runtime_disable(&pdev->dev);
+err_free_irq:
 	free_irq(keypad_data->irq, keypad_data);
 err_free_keymap:
 	kfree(keypad_data->keymap);
 err_free_input:
 	input_free_device(input_dev);
-err_pm_put_sync:
-	pm_runtime_put_sync(&pdev->dev);
-err_unmap:
+err_pm_disable:
+	pm_runtime_disable(&pdev->dev);
 	iounmap(keypad_data->base);
 err_release_mem:
 	release_mem_region(res->start, resource_size(res));
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/sunkbd.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/sunkbd.c
@@ -99,7 +99,8 @@
 	switch (data) {
 
 	case SUNKBD_RET_RESET:
-		schedule_work(&sunkbd->tq);
+		if (sunkbd->enabled)
+			schedule_work(&sunkbd->tq);
 		sunkbd->reset = -1;
 		break;
 
@@ -200,16 +201,12 @@
 }
 
 /*
- * sunkbd_reinit() sets leds and beeps to a state the computer remembers they
- * were in.
+ * sunkbd_set_leds_beeps() sets leds and beeps to a state the computer remembers
+ * they were in.
  */
 
-static void sunkbd_reinit(struct work_struct *work)
+static void sunkbd_set_leds_beeps(struct sunkbd *sunkbd)
 {
-	struct sunkbd *sunkbd = container_of(work, struct sunkbd, tq);
-
-	wait_event_interruptible_timeout(sunkbd->wait, sunkbd->reset >= 0, HZ);
-
 	serio_write(sunkbd->serio, SUNKBD_CMD_SETLED);
 	serio_write(sunkbd->serio,
 		(!!test_bit(LED_CAPSL,   sunkbd->dev->led) << 3) |
@@ -222,11 +219,39 @@
 		SUNKBD_CMD_BELLOFF - !!test_bit(SND_BELL, sunkbd->dev->snd));
 }
 
+
+/*
+ * sunkbd_reinit() wait for the keyboard reset to complete and restores state
+ * of leds and beeps.
+ */
+
+static void sunkbd_reinit(struct work_struct *work)
+{
+	struct sunkbd *sunkbd = container_of(work, struct sunkbd, tq);
+
+	/*
+	 * It is OK that we check sunkbd->enabled without pausing serio,
+	 * as we only want to catch true->false transition that will
+	 * happen once and we will be woken up for it.
+	 */
+	wait_event_interruptible_timeout(sunkbd->wait,
+					 sunkbd->reset >= 0 || !sunkbd->enabled,
+					 HZ);
+
+	if (sunkbd->reset >= 0 && sunkbd->enabled)
+		sunkbd_set_leds_beeps(sunkbd);
+}
+
 static void sunkbd_enable(struct sunkbd *sunkbd, bool enable)
 {
 	serio_pause_rx(sunkbd->serio);
 	sunkbd->enabled = enable;
 	serio_continue_rx(sunkbd->serio);
+
+	if (!enable) {
+		wake_up_interruptible(&sunkbd->wait);
+		cancel_work_sync(&sunkbd->tq);
+	}
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/tm2-touchkey.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/tm2-touchkey.c
@@ -75,6 +75,14 @@
 	.cmd_led_off = ARIES_TOUCHKEY_CMD_LED_OFF,
 };
 
+static const struct touchkey_variant tc360_touchkey_variant = {
+	.keycode_reg = 0x00,
+	.base_reg = 0x00,
+	.fixed_regulator = true,
+	.cmd_led_on = TM2_TOUCHKEY_CMD_LED_ON,
+	.cmd_led_off = TM2_TOUCHKEY_CMD_LED_OFF,
+};
+
 static int tm2_touchkey_led_brightness_set(struct led_classdev *led_dev,
 					    enum led_brightness brightness)
 {
@@ -327,6 +335,9 @@
 	}, {
 		.compatible = "cypress,aries-touchkey",
 		.data = &aries_touchkey_variant,
+	}, {
+		.compatible = "coreriver,tc360-touchkey",
+		.data = &tc360_touchkey_variant,
 	},
 	{ },
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/keyboard/twl4030_keypad.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/keyboard/twl4030_keypad.c
@@ -50,7 +50,7 @@
 	bool		autorepeat;
 	unsigned int	n_rows;
 	unsigned int	n_cols;
-	unsigned int	irq;
+	int		irq;
 
 	struct device *dbg_dev;
 	struct input_dev *input;
@@ -376,10 +376,8 @@
 	}
 
 	kp->irq = platform_get_irq(pdev, 0);
-	if (!kp->irq) {
-		dev_err(&pdev->dev, "no keyboard irq assigned\n");
-		return -EINVAL;
-	}
+	if (kp->irq < 0)
+		return kp->irq;
 
 	error = matrix_keypad_build_keymap(keymap_data, NULL,
 					   TWL4030_MAX_ROWS,
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/adxl34x.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/adxl34x.c
@@ -696,7 +696,7 @@
 	struct input_dev *input_dev;
 	const struct adxl34x_platform_data *pdata;
 	int err, range, i;
-	unsigned char revid;
+	int revid;
 
 	if (!irq) {
 		dev_err(dev, "no IRQ?\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/ati_remote2.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/ati_remote2.c
@@ -68,7 +68,7 @@
 {
 	pr_debug("%s()\n", __func__);
 
-	return sprintf(buffer, "0x%04x", *(unsigned int *)kp->arg);
+	return sprintf(buffer, "0x%04x\n", *(unsigned int *)kp->arg);
 }
 
 static int ati_remote2_set_mode_mask(const char *val,
@@ -84,7 +84,7 @@
 {
 	pr_debug("%s()\n", __func__);
 
-	return sprintf(buffer, "0x%02x", *(unsigned int *)kp->arg);
+	return sprintf(buffer, "0x%02x\n", *(unsigned int *)kp->arg);
 }
 
 static unsigned int channel_mask = ATI_REMOTE2_MAX_CHANNEL_MASK;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/cm109.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/cm109.c
@@ -568,12 +568,15 @@
 	dev->ctl_data->byte[HID_OR2] = dev->keybit;
 	dev->ctl_data->byte[HID_OR3] = 0x00;
 
+	dev->ctl_urb_pending = 1;
 	error = usb_submit_urb(dev->urb_ctl, GFP_KERNEL);
-	if (error)
+	if (error) {
+		dev->ctl_urb_pending = 0;
 		dev_err(&dev->intf->dev, "%s: usb_submit_urb (urb_ctl) failed %d\n",
 			__func__, error);
-	else
+	} else {
 		dev->open = 1;
+	}
 
 	mutex_unlock(&dev->pm_mutex);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/keyspan_remote.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/keyspan_remote.c
@@ -336,7 +336,8 @@
 	int retval = 0;
 
 	retval = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
-				 0x11, 0x40, 0x5601, 0x0, NULL, 0, 0);
+				 0x11, 0x40, 0x5601, 0x0, NULL, 0,
+				 USB_CTRL_SET_TIMEOUT);
 	if (retval) {
 		dev_dbg(&dev->dev, "%s - failed to set bit rate due to error: %d\n",
 			__func__, retval);
@@ -344,7 +345,8 @@
 	}
 
 	retval = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
-				 0x44, 0x40, 0x0, 0x0, NULL, 0, 0);
+				 0x44, 0x40, 0x0, 0x0, NULL, 0,
+				 USB_CTRL_SET_TIMEOUT);
 	if (retval) {
 		dev_dbg(&dev->dev, "%s - failed to set resume sensitivity due to error: %d\n",
 			__func__, retval);
@@ -352,7 +354,8 @@
 	}
 
 	retval = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
-				 0x22, 0x40, 0x0, 0x0, NULL, 0, 0);
+				 0x22, 0x40, 0x0, 0x0, NULL, 0,
+				 USB_CTRL_SET_TIMEOUT);
 	if (retval) {
 		dev_dbg(&dev->dev, "%s - failed to turn receive on due to error: %d\n",
 			__func__, retval);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/max77650-onkey.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/max77650-onkey.c
@@ -108,9 +108,16 @@
 	return input_register_device(onkey->input);
 }
 
+static const struct of_device_id max77650_onkey_of_match[] = {
+	{ .compatible = "maxim,max77650-onkey" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, max77650_onkey_of_match);
+
 static struct platform_driver max77650_onkey_driver = {
 	.driver = {
 		.name = "max77650-onkey",
+		.of_match_table = max77650_onkey_of_match,
 	},
 	.probe = max77650_onkey_probe,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/pm8xxx-vibrator.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/pm8xxx-vibrator.c
@@ -90,7 +90,7 @@
 
 	if (regs->enable_mask)
 		rc = regmap_update_bits(vib->regmap, regs->enable_addr,
-					on ? regs->enable_mask : 0, val);
+					regs->enable_mask, on ? ~0 : 0);
 
 	return rc;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/misc/uinput.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/misc/uinput.c
@@ -74,12 +74,16 @@
 	struct uinput_device	*udev = input_get_drvdata(dev);
 	struct timespec64	ts;
 
-	udev->buff[udev->head].type = type;
-	udev->buff[udev->head].code = code;
-	udev->buff[udev->head].value = value;
 	ktime_get_ts64(&ts);
-	udev->buff[udev->head].input_event_sec = ts.tv_sec;
-	udev->buff[udev->head].input_event_usec = ts.tv_nsec / NSEC_PER_USEC;
+
+	udev->buff[udev->head] = (struct input_event) {
+		.input_event_sec = ts.tv_sec,
+		.input_event_usec = ts.tv_nsec / NSEC_PER_USEC,
+		.type = type,
+		.code = code,
+		.value = value,
+	};
+
 	udev->head = (udev->head + 1) % UINPUT_BUFFER_SIZE;
 
 	wake_up_interruptible(&udev->waitq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/cyapa_gen6.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/cyapa_gen6.c
@@ -573,7 +573,7 @@
 
 	memset(&cmd, 0, sizeof(cmd));
 	put_unaligned_le16(PIP_OUTPUT_REPORT_ADDR, &cmd.head.addr);
-	put_unaligned_le16(sizeof(cmd), &cmd.head.length - 2);
+	put_unaligned_le16(sizeof(cmd) - 2, &cmd.head.length);
 	cmd.head.report_id = PIP_APP_CMD_REPORT_ID;
 	cmd.head.cmd_code = PIP_RETRIEVE_DATA_STRUCTURE;
 	put_unaligned_le16(read_offset, &cmd.read_offset);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/cypress_ps2.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/cypress_ps2.c
@@ -387,7 +387,9 @@
 	if (ret < 0)
 		return ret;
 
+#if ( CYPRESS_SIMULATED_MT != 1 )
 	__set_bit(INPUT_PROP_SEMI_MT, input->propbit);
+#endif
 
 	input_abs_set_res(input, ABS_X, cytp->tp_res_x);
 	input_abs_set_res(input, ABS_Y, cytp->tp_res_y);
@@ -473,6 +475,22 @@
 			((packet[5] & 0x0f) << 8) | packet[7];
 		if (cytp->mode & CYTP_BIT_ABS_PRESSURE)
 			report_data->contacts[1].z = report_data->contacts[0].z;
+#if ( CYPRESS_SIMULATED_MT == 1 )
+		/* simulate contact positions for >2 fingers */
+		if ( report_data->contact_cnt >= 3 ) {
+			int i;
+			for ( i=1; i<report_data->contact_cnt; i++ ) {
+			    report_data->contacts[i].x =
+					    report_data->contacts[0].x
+					    + 100*(i)*((i%2)?-1:1);
+			    report_data->contacts[i].y =
+					    report_data->contacts[0].y;
+			    if (cytp->mode & CYTP_BIT_ABS_PRESSURE)
+				    report_data->contacts[i].z =
+					    report_data->contacts[0].z;
+			}
+		}
+#endif
 	}
 
 	report_data->left = (header_byte & BTN_LEFT_BIT) ? 1 : 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/cypress_ps2.h
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/cypress_ps2.h
@@ -131,7 +131,18 @@
 #define RESP_REMOTE_BIT     0x40
 #define RESP_SMBUS_BIT      0x80
 
-#define CYTP_MAX_MT_SLOTS 2
+/*
+ * CYPRESS_SIMULATED_MT
+ *   set to 1 for simulated multitouch (up to 5 contact points)
+ *   set to 0 for SEMI_MT (only 2 corner points, and count of fingers)
+ */
+#define CYPRESS_SIMULATED_MT 1
+
+#if ( CYPRESS_SIMULATED_MT == 1 )
+# define CYTP_MAX_MT_SLOTS 5
+#else
+# define CYTP_MAX_MT_SLOTS 2
+#endif
 
 struct cytp_contact {
 	int x;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/elan_i2c.h
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/elan_i2c.h
@@ -26,6 +26,24 @@
 
 #define ETP_CALIBRATE_MAX_LEN	3
 
+#define ETP_FEATURE_REPORT_MK	BIT(0)
+
+#define ETP_REPORT_ID		0x5D
+#define ETP_TP_REPORT_ID	0x5E
+#define ETP_TP_REPORT_ID2	0x5F
+#define ETP_REPORT_ID2		0x60	/* High precision report */
+
+#define ETP_REPORT_ID_OFFSET	2
+#define ETP_TOUCH_INFO_OFFSET	3
+#define ETP_FINGER_DATA_OFFSET	4
+#define ETP_HOVER_INFO_OFFSET	30
+#define ETP_MK_DATA_OFFSET	33	/* For high precision reports */
+
+#define ETP_MAX_REPORT_LEN	39
+
+#define ETP_MAX_FINGERS		5
+#define ETP_FINGER_DATA_LEN	5
+
 /* IAP Firmware handling */
 #define ETP_PRODUCT_ID_FORMAT_STRING	"%d.0"
 #define ETP_FW_NAME		"elan_i2c_" ETP_PRODUCT_ID_FORMAT_STRING ".bin"
@@ -78,7 +96,11 @@
 	int (*finish_fw_update)(struct i2c_client *client,
 				struct completion *reset_done);
 
-	int (*get_report)(struct i2c_client *client, u8 *report);
+	int (*get_report_features)(struct i2c_client *client, u8 pattern,
+				   unsigned int *features,
+				   unsigned int *report_len);
+	int (*get_report)(struct i2c_client *client, u8 *report,
+			  unsigned int report_len);
 	int (*get_pressure_adjustment)(struct i2c_client *client,
 				       int *adjustment);
 	int (*get_pattern)(struct i2c_client *client, u8 *pattern);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/elan_i2c_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/elan_i2c_core.c
@@ -47,16 +47,6 @@
 #define ETP_FINGER_WIDTH	15
 #define ETP_RETRY_COUNT		3
 
-#define ETP_MAX_FINGERS		5
-#define ETP_FINGER_DATA_LEN	5
-#define ETP_REPORT_ID		0x5D
-#define ETP_TP_REPORT_ID	0x5E
-#define ETP_REPORT_ID_OFFSET	2
-#define ETP_TOUCH_INFO_OFFSET	3
-#define ETP_FINGER_DATA_OFFSET	4
-#define ETP_HOVER_INFO_OFFSET	30
-#define ETP_MAX_REPORT_LEN	34
-
 /* The main device structure */
 struct elan_tp_data {
 	struct i2c_client	*client;
@@ -85,6 +75,8 @@
 	u8			sm_version;
 	u8			iap_version;
 	u16			fw_checksum;
+	unsigned int		report_features;
+	unsigned int		report_len;
 	int			pressure_adjustment;
 	u8			mode;
 	u16			ic_type;
@@ -341,6 +333,12 @@
 	else
 		ic_type = data->iap_version;
 
+	error = data->ops->get_report_features(data->client, data->pattern,
+					       &data->report_features,
+					       &data->report_len);
+	if (error)
+		return error;
+
 	error = elan_get_fwinfo(ic_type, &data->fw_validpage_count,
 				&data->fw_signature_address);
 	if (error)
@@ -351,16 +349,21 @@
 	return 0;
 }
 
-static unsigned int elan_convert_resolution(u8 val)
+static unsigned int elan_convert_resolution(u8 val, u8 pattern)
 {
 	/*
-	 * (value from firmware) * 10 + 790 = dpi
-	 *
+	 * pattern <= 0x01:
+	 *	(value from firmware) * 10 + 790 = dpi
+	 * else
+	 *	((value from firmware) + 3) * 100 = dpi
+	 */
+	int res = pattern <= 0x01 ?
+		(int)(char)val * 10 + 790 : ((int)(char)val + 3) * 100;
+	/*
 	 * We also have to convert dpi to dots/mm (*10/254 to avoid floating
 	 * point).
 	 */
-
-	return ((int)(char)val * 10 + 790) * 10 / 254;
+	return res * 10 / 254;
 }
 
 static int elan_query_device_parameters(struct elan_tp_data *data)
@@ -409,8 +412,8 @@
 		if (error)
 			return error;
 
-		data->x_res = elan_convert_resolution(hw_x_res);
-		data->y_res = elan_convert_resolution(hw_y_res);
+		data->x_res = elan_convert_resolution(hw_x_res, data->pattern);
+		data->y_res = elan_convert_resolution(hw_y_res, data->pattern);
 	} else {
 		data->x_res = (data->max_x + 1) / x_mm;
 		data->y_res = (data->max_y + 1) / y_mm;
@@ -886,24 +889,22 @@
  * Elan isr functions
  ******************************************************************
  */
-static void elan_report_contact(struct elan_tp_data *data,
-				int contact_num, bool contact_valid,
-				u8 *finger_data)
+static void elan_report_contact(struct elan_tp_data *data, int contact_num,
+				bool contact_valid, bool high_precision,
+				u8 *packet, u8 *finger_data)
 {
 	struct input_dev *input = data->input;
 	unsigned int pos_x, pos_y;
-	unsigned int pressure, mk_x, mk_y;
-	unsigned int area_x, area_y, major, minor;
-	unsigned int scaled_pressure;
+	unsigned int pressure, scaled_pressure;
 
 	if (contact_valid) {
-		pos_x = ((finger_data[0] & 0xf0) << 4) |
-						finger_data[1];
-		pos_y = ((finger_data[0] & 0x0f) << 8) |
-						finger_data[2];
-		mk_x = (finger_data[3] & 0x0f);
-		mk_y = (finger_data[3] >> 4);
-		pressure = finger_data[4];
+		if (high_precision) {
+			pos_x = get_unaligned_be16(&finger_data[0]);
+			pos_y = get_unaligned_be16(&finger_data[2]);
+		} else {
+			pos_x = ((finger_data[0] & 0xf0) << 4) | finger_data[1];
+			pos_y = ((finger_data[0] & 0x0f) << 8) | finger_data[2];
+		}
 
 		if (pos_x > data->max_x || pos_y > data->max_y) {
 			dev_dbg(input->dev.parent,
@@ -913,18 +914,8 @@
 			return;
 		}
 
-		/*
-		 * To avoid treating large finger as palm, let's reduce the
-		 * width x and y per trace.
-		 */
-		area_x = mk_x * (data->width_x - ETP_FWIDTH_REDUCE);
-		area_y = mk_y * (data->width_y - ETP_FWIDTH_REDUCE);
-
-		major = max(area_x, area_y);
-		minor = min(area_x, area_y);
-
+		pressure = finger_data[4];
 		scaled_pressure = pressure + data->pressure_adjustment;
-
 		if (scaled_pressure > ETP_MAX_PRESSURE)
 			scaled_pressure = ETP_MAX_PRESSURE;
 
@@ -933,16 +924,37 @@
 		input_report_abs(input, ABS_MT_POSITION_X, pos_x);
 		input_report_abs(input, ABS_MT_POSITION_Y, data->max_y - pos_y);
 		input_report_abs(input, ABS_MT_PRESSURE, scaled_pressure);
-		input_report_abs(input, ABS_TOOL_WIDTH, mk_x);
-		input_report_abs(input, ABS_MT_TOUCH_MAJOR, major);
-		input_report_abs(input, ABS_MT_TOUCH_MINOR, minor);
+
+		if (data->report_features & ETP_FEATURE_REPORT_MK) {
+			unsigned int mk_x, mk_y, area_x, area_y;
+			u8 mk_data = high_precision ?
+				packet[ETP_MK_DATA_OFFSET + contact_num] :
+				finger_data[3];
+
+			mk_x = mk_data & 0x0f;
+			mk_y = mk_data >> 4;
+
+			/*
+			 * To avoid treating large finger as palm, let's reduce
+			 * the width x and y per trace.
+			 */
+			area_x = mk_x * (data->width_x - ETP_FWIDTH_REDUCE);
+			area_y = mk_y * (data->width_y - ETP_FWIDTH_REDUCE);
+
+			input_report_abs(input, ABS_TOOL_WIDTH, mk_x);
+			input_report_abs(input, ABS_MT_TOUCH_MAJOR,
+					 max(area_x, area_y));
+			input_report_abs(input, ABS_MT_TOUCH_MINOR,
+					 min(area_x, area_y));
+		}
 	} else {
 		input_mt_slot(input, contact_num);
 		input_mt_report_slot_state(input, MT_TOOL_FINGER, false);
 	}
 }
 
-static void elan_report_absolute(struct elan_tp_data *data, u8 *packet)
+static void elan_report_absolute(struct elan_tp_data *data, u8 *packet,
+				 bool high_precision)
 {
 	struct input_dev *input = data->input;
 	u8 *finger_data = &packet[ETP_FINGER_DATA_OFFSET];
@@ -951,11 +963,14 @@
 	u8 hover_info = packet[ETP_HOVER_INFO_OFFSET];
 	bool contact_valid, hover_event;
 
-	hover_event = hover_info & 0x40;
-	for (i = 0; i < ETP_MAX_FINGERS; i++) {
-		contact_valid = tp_info & (1U << (3 + i));
-		elan_report_contact(data, i, contact_valid, finger_data);
+	pm_wakeup_event(&data->client->dev, 0);
+
+	hover_event = hover_info & BIT(6);
 
+	for (i = 0; i < ETP_MAX_FINGERS; i++) {
+		contact_valid = tp_info & BIT(3 + i);
+		elan_report_contact(data, i, contact_valid, high_precision,
+				    packet, finger_data);
 		if (contact_valid)
 			finger_data += ETP_FINGER_DATA_LEN;
 	}
@@ -974,6 +989,8 @@
 	u8 *packet = &report[ETP_REPORT_ID_OFFSET + 1];
 	int x, y;
 
+	pm_wakeup_event(&data->client->dev, 0);
+
 	if (!data->tp_input) {
 		dev_warn_once(&data->client->dev,
 			      "received a trackpoint report while no trackpoint device has been created. Please report upstream.\n");
@@ -998,7 +1015,6 @@
 static irqreturn_t elan_isr(int irq, void *dev_id)
 {
 	struct elan_tp_data *data = dev_id;
-	struct device *dev = &data->client->dev;
 	int error;
 	u8 report[ETP_MAX_REPORT_LEN];
 
@@ -1012,21 +1028,23 @@
 		goto out;
 	}
 
-	error = data->ops->get_report(data->client, report);
+	error = data->ops->get_report(data->client, report, data->report_len);
 	if (error)
 		goto out;
 
-	pm_wakeup_event(dev, 0);
-
 	switch (report[ETP_REPORT_ID_OFFSET]) {
 	case ETP_REPORT_ID:
-		elan_report_absolute(data, report);
+		elan_report_absolute(data, report, false);
+		break;
+	case ETP_REPORT_ID2:
+		elan_report_absolute(data, report, true);
 		break;
 	case ETP_TP_REPORT_ID:
+	case ETP_TP_REPORT_ID2:
 		elan_report_trackpoint(data, report);
 		break;
 	default:
-		dev_err(dev, "invalid report id data (%x)\n",
+		dev_err(&data->client->dev, "invalid report id data (%x)\n",
 			report[ETP_REPORT_ID_OFFSET]);
 	}
 
@@ -1111,7 +1129,9 @@
 	input_abs_set_res(input, ABS_X, data->x_res);
 	input_abs_set_res(input, ABS_Y, data->y_res);
 	input_set_abs_params(input, ABS_PRESSURE, 0, ETP_MAX_PRESSURE, 0, 0);
-	input_set_abs_params(input, ABS_TOOL_WIDTH, 0, ETP_FINGER_WIDTH, 0, 0);
+	if (data->report_features & ETP_FEATURE_REPORT_MK)
+		input_set_abs_params(input, ABS_TOOL_WIDTH,
+				     0, ETP_FINGER_WIDTH, 0, 0);
 	input_set_abs_params(input, ABS_DISTANCE, 0, 1, 0, 0);
 
 	/* And MT parameters */
@@ -1121,10 +1141,12 @@
 	input_abs_set_res(input, ABS_MT_POSITION_Y, data->y_res);
 	input_set_abs_params(input, ABS_MT_PRESSURE, 0,
 			     ETP_MAX_PRESSURE, 0, 0);
-	input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0,
-			     ETP_FINGER_WIDTH * max_width, 0, 0);
-	input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0,
-			     ETP_FINGER_WIDTH * min_width, 0, 0);
+	if (data->report_features & ETP_FEATURE_REPORT_MK) {
+		input_set_abs_params(input, ABS_MT_TOUCH_MAJOR,
+				     0, ETP_FINGER_WIDTH * max_width, 0, 0);
+		input_set_abs_params(input, ABS_MT_TOUCH_MINOR,
+				     0, ETP_FINGER_WIDTH * min_width, 0, 0);
+	}
 
 	data->input = input;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/elan_i2c_i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/elan_i2c_i2c.c
@@ -55,6 +55,8 @@
 #define ETP_I2C_MIN_BASELINE_CMD	0x0318
 
 #define ETP_I2C_REPORT_LEN		34
+#define ETP_I2C_REPORT_LEN_ID2		39
+#define ETP_I2C_REPORT_MAX_LEN		39
 #define ETP_I2C_DESC_LENGTH		30
 #define ETP_I2C_REPORT_DESC_LENGTH	158
 #define ETP_I2C_INF_LENGTH		2
@@ -386,7 +388,7 @@
 		return error;
 	}
 
-	*max_x = le16_to_cpup((__le16 *)val) & 0x0fff;
+	*max_x = le16_to_cpup((__le16 *)val);
 
 	error = elan_i2c_read_cmd(client, ETP_I2C_MAX_Y_AXIS_CMD, val);
 	if (error) {
@@ -394,7 +396,7 @@
 		return error;
 	}
 
-	*max_y = le16_to_cpup((__le16 *)val) & 0x0fff;
+	*max_y = le16_to_cpup((__le16 *)val);
 
 	return 0;
 }
@@ -617,12 +619,12 @@
 				     struct completion *completion)
 {
 	struct device *dev = &client->dev;
-	int error;
+	int error = 0;
 	int len;
-	u8 buffer[ETP_I2C_REPORT_LEN];
+	u8 buffer[ETP_I2C_REPORT_MAX_LEN];
 
-	len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_LEN);
-	if (len != ETP_I2C_REPORT_LEN) {
+	len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_MAX_LEN);
+	if (len <= 0) {
 		error = len < 0 ? len : -EIO;
 		dev_warn(dev, "failed to read I2C data after FW WDT reset: %d (%d)\n",
 			error, len);
@@ -656,20 +658,31 @@
 	return 0;
 }
 
-static int elan_i2c_get_report(struct i2c_client *client, u8 *report)
+static int elan_i2c_get_report_features(struct i2c_client *client, u8 pattern,
+					unsigned int *features,
+					unsigned int *report_len)
+{
+	*features = ETP_FEATURE_REPORT_MK;
+	*report_len = pattern <= 0x01 ?
+			ETP_I2C_REPORT_LEN : ETP_I2C_REPORT_LEN_ID2;
+	return 0;
+}
+
+static int elan_i2c_get_report(struct i2c_client *client,
+			       u8 *report, unsigned int report_len)
 {
 	int len;
 
-	len = i2c_master_recv(client, report, ETP_I2C_REPORT_LEN);
+	len = i2c_master_recv(client, report, report_len);
 	if (len < 0) {
 		dev_err(&client->dev, "failed to read report data: %d\n", len);
 		return len;
 	}
 
-	if (len != ETP_I2C_REPORT_LEN) {
+	if (len != report_len) {
 		dev_err(&client->dev,
 			"wrong report length (%d vs %d expected)\n",
-			len, ETP_I2C_REPORT_LEN);
+			len, report_len);
 		return -EIO;
 	}
 
@@ -706,5 +719,6 @@
 
 	.get_pattern		= elan_i2c_get_pattern,
 
+	.get_report_features	= elan_i2c_get_report_features,
 	.get_report		= elan_i2c_get_report,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/elan_i2c_smbus.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/elan_i2c_smbus.c
@@ -45,6 +45,7 @@
 #define ETP_SMBUS_CALIBRATE_QUERY	0xC5
 
 #define ETP_SMBUS_REPORT_LEN		32
+#define ETP_SMBUS_REPORT_LEN2		7
 #define ETP_SMBUS_REPORT_OFFSET		2
 #define ETP_SMBUS_HELLOPACKET_LEN	5
 #define ETP_SMBUS_IAP_PASSWORD		0x1234
@@ -469,7 +470,21 @@
 	return 0;
 }
 
-static int elan_smbus_get_report(struct i2c_client *client, u8 *report)
+static int elan_smbus_get_report_features(struct i2c_client *client, u8 pattern,
+					  unsigned int *features,
+					  unsigned int *report_len)
+{
+	/*
+	 * SMBus controllers with pattern 2 lack area info, as newer
+	 * high-precision packets use that space for coordinates.
+	 */
+	*features = pattern <= 0x01 ? ETP_FEATURE_REPORT_MK : 0;
+	*report_len = ETP_SMBUS_REPORT_LEN;
+	return 0;
+}
+
+static int elan_smbus_get_report(struct i2c_client *client,
+				 u8 *report, unsigned int report_len)
 {
 	int len;
 
@@ -483,10 +498,13 @@
 		return len;
 	}
 
-	if (len != ETP_SMBUS_REPORT_LEN) {
+	if (report[ETP_REPORT_ID_OFFSET] == ETP_TP_REPORT_ID2)
+		report_len = ETP_SMBUS_REPORT_LEN2;
+
+	if (len != report_len) {
 		dev_err(&client->dev,
 			"wrong report length (%d vs %d expected)\n",
-			len, ETP_SMBUS_REPORT_LEN);
+			len, report_len);
 		return -EIO;
 	}
 
@@ -534,6 +552,7 @@
 	.write_fw_block		= elan_smbus_write_fw_block,
 	.finish_fw_update	= elan_smbus_finish_fw_update,
 
+	.get_report_features	= elan_smbus_get_report_features,
 	.get_report		= elan_smbus_get_report,
 	.get_pattern		= elan_smbus_get_pattern,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/elantech.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/elantech.c
@@ -90,6 +90,47 @@
 }
 
 /*
+ * Send an Elantech style special command to read 3 bytes from a register
+ */
+static int elantech_read_reg_params(struct psmouse *psmouse, u8 reg, u8 *param)
+{
+	if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
+	    elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
+	    elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
+	    elantech_ps2_command(psmouse, NULL, reg) ||
+	    elantech_ps2_command(psmouse, param, PSMOUSE_CMD_GETINFO)) {
+		psmouse_err(psmouse,
+			    "failed to read register %#02x\n", reg);
+		return -EIO;
+	}
+
+	return 0;
+}
+
+/*
+ * Send an Elantech style special command to write a register with a parameter
+ */
+static int elantech_write_reg_params(struct psmouse *psmouse, u8 reg, u8 *param)
+{
+	if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
+	    elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
+	    elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
+	    elantech_ps2_command(psmouse, NULL, reg) ||
+	    elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
+	    elantech_ps2_command(psmouse, NULL, param[0]) ||
+	    elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
+	    elantech_ps2_command(psmouse, NULL, param[1]) ||
+	    elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) {
+		psmouse_err(psmouse,
+			    "failed to write register %#02x with value %#02x%#02x\n",
+			    reg, param[0], param[1]);
+		return -EIO;
+	}
+
+	return 0;
+}
+
+/*
  * Send an Elantech style special command to read a value from a register
  */
 static int elantech_read_reg(struct psmouse *psmouse, unsigned char reg,
@@ -1530,18 +1571,34 @@
 };
 
 /*
+ * Change Report id 0x5E to 0x5F.
+ */
+static int elantech_change_report_id(struct psmouse *psmouse)
+{
+	unsigned char param[2] = { 0x10, 0x03 };
+
+	if (elantech_write_reg_params(psmouse, 0x7, param) ||
+	    elantech_read_reg_params(psmouse, 0x7, param) ||
+	    param[0] != 0x10 || param[1] != 0x03) {
+		psmouse_err(psmouse, "Unable to change report ID to 0x5f.\n");
+		return -EIO;
+	}
+
+	return 0;
+}
+/*
  * determine hardware version and set some properties according to it.
  */
 static int elantech_set_properties(struct elantech_device_info *info)
 {
 	/* This represents the version of IC body. */
-	int ver = (info->fw_version & 0x0f0000) >> 16;
+	info->ic_version = (info->fw_version & 0x0f0000) >> 16;
 
 	/* Early version of Elan touchpads doesn't obey the rule. */
 	if (info->fw_version < 0x020030 || info->fw_version == 0x020600)
 		info->hw_version = 1;
 	else {
-		switch (ver) {
+		switch (info->ic_version) {
 		case 2:
 		case 4:
 			info->hw_version = 2;
@@ -1557,6 +1614,11 @@
 		}
 	}
 
+	/* Get information pattern for hw_version 4 */
+	info->pattern = 0x00;
+	if (info->ic_version == 0x0f && (info->fw_version & 0xff) <= 0x02)
+		info->pattern = info->fw_version & 0xff;
+
 	/* decide which send_cmd we're gonna use early */
 	info->send_cmd = info->hw_version >= 3 ? elantech_send_cmd :
 						 synaptics_send_cmd;
@@ -1598,6 +1660,7 @@
 {
 	unsigned char param[3];
 	unsigned char traces;
+	unsigned char ic_body[3];
 
 	memset(info, 0, sizeof(*info));
 
@@ -1640,6 +1703,21 @@
 			     info->samples[2]);
 	}
 
+	if (info->pattern > 0x00 && info->ic_version == 0xf) {
+		if (info->send_cmd(psmouse, ETP_ICBODY_QUERY, ic_body)) {
+			psmouse_err(psmouse, "failed to query ic body\n");
+			return -EINVAL;
+		}
+		info->ic_version = be16_to_cpup((__be16 *)ic_body);
+		psmouse_info(psmouse,
+			     "Elan ic body: %#04x, current fw version: %#02x\n",
+			     info->ic_version, ic_body[2]);
+	}
+
+	info->product_id = be16_to_cpup((__be16 *)info->samples);
+	if (info->pattern == 0x00)
+		info->product_id &= 0xff;
+
 	if (info->samples[1] == 0x74 && info->hw_version == 0x03) {
 		/*
 		 * This module has a bug which makes absolute mode
@@ -1654,6 +1732,23 @@
 	/* The MSB indicates the presence of the trackpoint */
 	info->has_trackpoint = (info->capabilities[0] & 0x80) == 0x80;
 
+	if (info->has_trackpoint && info->ic_version == 0x0011 &&
+	    (info->product_id == 0x08 || info->product_id == 0x09 ||
+	     info->product_id == 0x0d || info->product_id == 0x0e)) {
+		/*
+		 * This module has a bug which makes trackpoint in SMBus
+		 * mode return invalid data unless trackpoint is switched
+		 * from using 0x5e reports to 0x5f. If we are not able to
+		 * make the switch, let's abort initialization so we'll be
+		 * using standard PS/2 protocol.
+		 */
+		if (elantech_change_report_id(psmouse)) {
+			psmouse_info(psmouse,
+				     "Trackpoint report is broken, forcing standard PS/2 protocol\n");
+			return -ENODEV;
+		}
+	}
+
 	info->x_res = 31;
 	info->y_res = 31;
 	if (info->hw_version == 4) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/elantech.h
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/elantech.h
@@ -18,6 +18,7 @@
 #define ETP_CAPABILITIES_QUERY		0x02
 #define ETP_SAMPLE_QUERY		0x03
 #define ETP_RESOLUTION_QUERY		0x04
+#define ETP_ICBODY_QUERY		0x05
 
 /*
  * Command values for register reading or writing
@@ -140,7 +141,10 @@
 	unsigned char samples[3];
 	unsigned char debug;
 	unsigned char hw_version;
+	unsigned char pattern;
 	unsigned int fw_version;
+	unsigned int ic_version;
+	unsigned int product_id;
 	unsigned int x_min;
 	unsigned int y_min;
 	unsigned int x_max;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/psmouse-base.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/psmouse-base.c
@@ -2042,7 +2042,7 @@
 {
 	int type = *((unsigned int *)kp->arg);
 
-	return sprintf(buffer, "%s", psmouse_protocol_by_type(type)->name);
+	return sprintf(buffer, "%s\n", psmouse_protocol_by_type(type)->name);
 }
 
 static int __init psmouse_init(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/sentelic.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/sentelic.c
@@ -441,7 +441,7 @@
 
 	fsp_reg_write_enable(psmouse, false);
 
-	return count;
+	return retval;
 }
 
 PSMOUSE_DEFINE_WO_ATTR(setreg, S_IWUSR, NULL, fsp_attr_set_setreg);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/synaptics.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/synaptics.c
@@ -146,7 +146,6 @@
 	"LEN0042", /* Yoga */
 	"LEN0045",
 	"LEN0047",
-	"LEN0049",
 	"LEN2000", /* S540 */
 	"LEN2001", /* Edge E431 */
 	"LEN2002", /* Edge E531 */
@@ -166,23 +165,30 @@
 	/* all of the topbuttonpad_pnp_ids are valid, we just add some extras */
 	"LEN0048", /* X1 Carbon 3 */
 	"LEN0046", /* X250 */
+	"LEN0049", /* Yoga 11e */
 	"LEN004a", /* W541 */
 	"LEN005b", /* P50 */
 	"LEN005e", /* T560 */
+	"LEN006c", /* T470s */
+	"LEN007a", /* T470s */
 	"LEN0071", /* T480 */
 	"LEN0072", /* X1 Carbon Gen 5 (2017) - Elan/ALPS trackpoint */
 	"LEN0073", /* X1 Carbon G5 (Elantech) */
+	"LEN0091", /* X1 Carbon 6 */
 	"LEN0092", /* X1 Carbon 6 */
 	"LEN0093", /* T480 */
 	"LEN0096", /* X280 */
 	"LEN0097", /* X280 -> ALPS trackpoint */
+	"LEN0099", /* X1 Extreme 1st */
 	"LEN009b", /* T580 */
 	"LEN200f", /* T450s */
+	"LEN2044", /* L470  */
 	"LEN2054", /* E480 */
 	"LEN2055", /* E580 */
 	"SYN3052", /* HP EliteBook 840 G4 */
 	"SYN3221", /* HP 15-ay000 */
 	"SYN323d", /* HP Spectre X360 13-w013dx */
+	"SYN3257", /* HP Envy 13-ad105ng */
 	NULL
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/trackpoint.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/trackpoint.c
@@ -17,10 +17,12 @@
 #include "trackpoint.h"
 
 static const char * const trackpoint_variants[] = {
-	[TP_VARIANT_IBM]	= "IBM",
-	[TP_VARIANT_ALPS]	= "ALPS",
-	[TP_VARIANT_ELAN]	= "Elan",
-	[TP_VARIANT_NXP]	= "NXP",
+	[TP_VARIANT_IBM]		= "IBM",
+	[TP_VARIANT_ALPS]		= "ALPS",
+	[TP_VARIANT_ELAN]		= "Elan",
+	[TP_VARIANT_NXP]		= "NXP",
+	[TP_VARIANT_JYT_SYNAPTICS]	= "JYT_Synaptics",
+	[TP_VARIANT_SYNAPTICS]		= "Synaptics",
 };
 
 /*
@@ -280,6 +282,8 @@
 	case TP_VARIANT_ALPS:
 	case TP_VARIANT_ELAN:
 	case TP_VARIANT_NXP:
+	case TP_VARIANT_JYT_SYNAPTICS:
+	case TP_VARIANT_SYNAPTICS:
 		if (variant_id)
 			*variant_id = param[0];
 		if (firmware_id)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/mouse/trackpoint.h
+++ linux-gkeop-5.4-5.4.0/drivers/input/mouse/trackpoint.h
@@ -24,10 +24,12 @@
  * 0x01 was the original IBM trackpoint, others implement very limited
  * subset of trackpoint features.
  */
-#define TP_VARIANT_IBM		0x01
-#define TP_VARIANT_ALPS		0x02
-#define TP_VARIANT_ELAN		0x03
-#define TP_VARIANT_NXP		0x04
+#define TP_VARIANT_IBM			0x01
+#define TP_VARIANT_ALPS			0x02
+#define TP_VARIANT_ELAN			0x03
+#define TP_VARIANT_NXP			0x04
+#define TP_VARIANT_JYT_SYNAPTICS	0x05
+#define TP_VARIANT_SYNAPTICS		0x06
 
 /*
  * Commands
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/rmi4/rmi_driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/rmi4/rmi_driver.c
@@ -205,7 +205,7 @@
 
 	if (count) {
 		kfree(attn_data.data);
-		attn_data.data = NULL;
+		drvdata->attn_data.data = NULL;
 	}
 
 	if (!kfifo_is_empty(&drvdata->attn_fifo))
@@ -1210,7 +1210,8 @@
 	if (data->input) {
 		rmi_driver_set_input_name(rmi_dev, data->input);
 		if (!rmi_dev->xport->input) {
-			if (input_register_device(data->input)) {
+			retval = input_register_device(data->input);
+			if (retval) {
 				dev_err(dev, "%s: Failed to register input device.\n",
 					__func__);
 				goto err_destroy_functions;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/rmi4/rmi_f34v7.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/rmi4/rmi_f34v7.c
@@ -1189,6 +1189,9 @@
 {
 	int ret;
 
+	f34->fn->rmi_dev->driver->set_irq_bits(f34->fn->rmi_dev,
+					       f34->fn->irq_mask);
+
 	rmi_f34v7_read_queries_bl_version(f34);
 
 	f34->v7.image = fw->data;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/serio/hil_mlc.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/serio/hil_mlc.c
@@ -74,7 +74,7 @@
 static LIST_HEAD(hil_mlcs);
 static DEFINE_RWLOCK(hil_mlcs_lock);
 static struct timer_list	hil_mlcs_kicker;
-static int			hil_mlcs_probe;
+static int			hil_mlcs_probe, hil_mlc_stop;
 
 static void hil_mlcs_process(unsigned long unused);
 static DECLARE_TASKLET_DISABLED(hil_mlcs_tasklet, hil_mlcs_process, 0);
@@ -702,9 +702,13 @@
 		if (!mlc->ostarted) {
 			mlc->ostarted = 1;
 			mlc->opacket = pack;
-			mlc->out(mlc);
+			rc = mlc->out(mlc);
 			nextidx = HILSEN_DOZE;
 			write_unlock_irqrestore(&mlc->lock, flags);
+			if (rc) {
+				hil_mlc_stop = 1;
+				return 1;
+			}
 			break;
 		}
 		mlc->ostarted = 0;
@@ -715,8 +719,13 @@
 
 	case HILSE_CTS:
 		write_lock_irqsave(&mlc->lock, flags);
-		nextidx = mlc->cts(mlc) ? node->bad : node->good;
+		rc = mlc->cts(mlc);
+		nextidx = rc ? node->bad : node->good;
 		write_unlock_irqrestore(&mlc->lock, flags);
+		if (rc) {
+			hil_mlc_stop = 1;
+			return 1;
+		}
 		break;
 
 	default:
@@ -780,6 +789,12 @@
 
 static void hil_mlcs_timer(struct timer_list *unused)
 {
+	if (hil_mlc_stop) {
+		/* could not send packet - stop immediately. */
+		pr_warn(PREFIX "HIL seems stuck - Disabling HIL MLC.\n");
+		return;
+	}
+
 	hil_mlcs_probe = 1;
 	tasklet_schedule(&hil_mlcs_tasklet);
 	/* Re-insert the periodic task. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/serio/hp_sdc_mlc.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/serio/hp_sdc_mlc.c
@@ -210,7 +210,7 @@
 	priv->tseq[2] = 1;
 	priv->tseq[3] = 0;
 	priv->tseq[4] = 0;
-	__hp_sdc_enqueue_transaction(&priv->trans);
+	return __hp_sdc_enqueue_transaction(&priv->trans);
  busy:
 	return 1;
  done:
@@ -219,7 +219,7 @@
 	return 0;
 }
 
-static void hp_sdc_mlc_out(hil_mlc *mlc)
+static int hp_sdc_mlc_out(hil_mlc *mlc)
 {
 	struct hp_sdc_mlc_priv_s *priv;
 
@@ -234,7 +234,7 @@
  do_data:
 	if (priv->emtestmode) {
 		up(&mlc->osem);
-		return;
+		return 0;
 	}
 	/* Shouldn't be sending commands when loop may be busy */
 	BUG_ON(down_trylock(&mlc->csem));
@@ -296,7 +296,7 @@
 		BUG_ON(down_trylock(&mlc->csem));
 	}
  enqueue:
-	hp_sdc_enqueue_transaction(&priv->trans);
+	return hp_sdc_enqueue_transaction(&priv->trans);
 }
 
 static int __init hp_sdc_mlc_init(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/serio/i8042-x86ia64io.h
+++ linux-gkeop-5.4-5.4.0/drivers/input/serio/i8042-x86ia64io.h
@@ -220,6 +220,12 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "C15B"),
 		},
 	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ByteSpeed LLC"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "ByteSpeed Laptop C15B"),
+		},
+	},
 	{ }
 };
 
@@ -426,6 +432,13 @@
 		},
 	},
 	{
+		/* Lenovo XiaoXin Air 12 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "80UN"),
+		},
+	},
+	{
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1360"),
@@ -530,6 +543,25 @@
 			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo LaVie Z"),
 		},
 	},
+	{
+		/*
+		 * Acer Aspire 5738z
+		 * Touchpad stops working in mux mode when dis- + re-enabled
+		 * with the touchpad enable/disable toggle hotkey
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5738"),
+		},
+	},
+	{
+		/* Entroware Proteus */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Entroware"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Proteus"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "EL07R4"),
+		},
+	},
 	{ }
 };
 
@@ -556,6 +588,10 @@
 			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
 			DMI_MATCH(DMI_CHASSIS_TYPE, "10"), /* Notebook */
 		},
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_CHASSIS_TYPE, "31"), /* Convertible Notebook */
+		},
 	},
 	{ }
 };
@@ -582,6 +618,48 @@
 		},
 	},
 	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire A114-31"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire A314-31"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire A315-31"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire ES1-132"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire ES1-332"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire ES1-432"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate Spin B118-RN"),
+		},
+	},
+	{
 		/* Advent 4211 */
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "DIXONSXP"),
@@ -651,6 +729,21 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "P65xRP"),
 		},
 	},
+	{
+		/* Lenovo ThinkPad Twist S230u */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "33474HU"),
+		},
+	},
+	{
+		/* Entroware Proteus */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Entroware"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Proteus"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "EL07R4"),
+		},
+	},
 	{ }
 };
 
@@ -680,6 +773,13 @@
 			DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
 		},
 	},
+	{
+		/* Acer Aspire 5 A515 */
+		.matches = {
+			DMI_MATCH(DMI_BOARD_NAME, "Grumpy_PK"),
+			DMI_MATCH(DMI_BOARD_VENDOR, "PK"),
+		},
+	},
 	{ }
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/serio/i8042.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/serio/i8042.c
@@ -121,6 +121,7 @@
 MODULE_PARM_DESC(unmask_kbd_data, "Unconditional enable (may reveal sensitive data) of normally sanitize-filtered kbd data traffic debug log [pre-condition: i8042.debug=1 enabled]");
 #endif
 
+static bool i8042_present;
 static bool i8042_bypass_aux_irq_test;
 static char i8042_kbd_firmware_id[128];
 static char i8042_aux_firmware_id[128];
@@ -341,6 +342,9 @@
 	unsigned long flags;
 	int retval;
 
+	if (!i8042_present)
+		return -1;
+
 	spin_lock_irqsave(&i8042_lock, flags);
 	retval = __i8042_command(param, command);
 	spin_unlock_irqrestore(&i8042_lock, flags);
@@ -611,7 +615,7 @@
 	if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
 		i8042_ctr &= ~I8042_CTR_KBDINT;
 		i8042_ctr |= I8042_CTR_KBDDIS;
-		pr_err("Failed to enable KBD port\n");
+		pr_info("Failed to enable KBD port\n");
 		return -EIO;
 	}
 
@@ -630,7 +634,7 @@
 	if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
 		i8042_ctr &= ~I8042_CTR_AUXINT;
 		i8042_ctr |= I8042_CTR_AUXDIS;
-		pr_err("Failed to enable AUX port\n");
+		pr_info("Failed to enable AUX port\n");
 		return -EIO;
 	}
 
@@ -722,7 +726,7 @@
 	i8042_ctr &= ~I8042_CTR_AUXINT;
 
 	if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
-		pr_err("Failed to disable AUX port, can't use MUX\n");
+		pr_info("Failed to disable AUX port, can't use MUX\n");
 		return -EIO;
 	}
 
@@ -937,25 +941,28 @@
 {
 	unsigned char param;
 	int i = 0;
+	int ret;
 
 	/*
 	 * We try this 5 times; on some really fragile systems this does not
 	 * take the first time...
 	 */
-	do {
+	while (i++ < 5) {
 
-		if (i8042_command(&param, I8042_CMD_CTL_TEST)) {
-			pr_err("i8042 controller selftest timeout\n");
-			return -ENODEV;
-		}
-
-		if (param == I8042_RET_CTL_TEST)
+		ret = i8042_command(&param, I8042_CMD_CTL_TEST);
+		if (ret)
+			pr_info("i8042 controller selftest timeout (%d/5)\n", i);
+		else if (param == I8042_RET_CTL_TEST)
 			return 0;
+		else
+			dbg("i8042 controller selftest: %#x != %#x\n",
+			    param, I8042_RET_CTL_TEST);
 
-		dbg("i8042 controller selftest: %#x != %#x\n",
-		    param, I8042_RET_CTL_TEST);
 		msleep(50);
-	} while (i++ < 5);
+	}
+
+	if (ret)
+		return -ENODEV;
 
 #ifdef CONFIG_X86
 	/*
@@ -967,7 +974,7 @@
 	pr_info("giving up on controller selftest, continuing anyway...\n");
 	return 0;
 #else
-	pr_err("i8042 controller selftest failed\n");
+	pr_info("i8042 controller selftest failed\n");
 	return -EIO;
 #endif
 }
@@ -1464,7 +1471,8 @@
 	if (error)
 		goto err_free_ports;
 
-	if (aux_enable())
+	error = aux_enable();
+	if (error)
 		goto err_free_irq;
 
 	i8042_aux_irq_registered = true;
@@ -1609,12 +1617,15 @@
 
 	err = i8042_platform_init();
 	if (err)
-		return err;
+		return (err == -ENODEV) ? 0 : err;
 
 	err = i8042_controller_check();
 	if (err)
 		goto err_platform_exit;
 
+	/* Set this before creating the dev to allow i8042_command to work right away */
+	i8042_present = true;
+
 	pdev = platform_create_bundle(&i8042_driver, i8042_probe, NULL, 0, NULL, 0);
 	if (IS_ERR(pdev)) {
 		err = PTR_ERR(pdev);
@@ -1633,6 +1644,9 @@
 
 static void __exit i8042_exit(void)
 {
+	if (!i8042_present)
+		return;
+
 	platform_device_unregister(i8042_platform_device);
 	platform_driver_unregister(&i8042_driver);
 	i8042_platform_exit();
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/serio/i8042.h
+++ linux-gkeop-5.4-5.4.0/drivers/input/serio/i8042.h
@@ -17,8 +17,6 @@
 #include "i8042-ip22io.h"
 #elif defined(CONFIG_SNI_RM)
 #include "i8042-snirm.h"
-#elif defined(CONFIG_PPC)
-#include "i8042-ppcio.h"
 #elif defined(CONFIG_SPARC)
 #include "i8042-sparcio.h"
 #elif defined(CONFIG_X86) || defined(CONFIG_IA64)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/serio/sun4i-ps2.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/serio/sun4i-ps2.c
@@ -211,7 +211,6 @@
 	struct sun4i_ps2data *drvdata;
 	struct serio *serio;
 	struct device *dev = &pdev->dev;
-	unsigned int irq;
 	int error;
 
 	drvdata = kzalloc(sizeof(struct sun4i_ps2data), GFP_KERNEL);
@@ -264,14 +263,12 @@
 	writel(0, drvdata->reg_base + PS2_REG_GCTL);
 
 	/* Get IRQ for the device */
-	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		dev_err(dev, "no IRQ found\n");
-		error = -ENXIO;
+	drvdata->irq = platform_get_irq(pdev, 0);
+	if (drvdata->irq < 0) {
+		error = drvdata->irq;
 		goto err_disable_clk;
 	}
 
-	drvdata->irq = irq;
 	drvdata->serio = serio;
 	drvdata->dev = dev;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/tablet/aiptek.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/tablet/aiptek.c
@@ -1802,14 +1802,14 @@
 	input_set_abs_params(inputdev, ABS_WHEEL, AIPTEK_WHEEL_MIN, AIPTEK_WHEEL_MAX - 1, 0, 0);
 
 	/* Verify that a device really has an endpoint */
-	if (intf->altsetting[0].desc.bNumEndpoints < 1) {
+	if (intf->cur_altsetting->desc.bNumEndpoints < 1) {
 		dev_err(&intf->dev,
 			"interface has %d endpoints, but must have minimum 1\n",
-			intf->altsetting[0].desc.bNumEndpoints);
+			intf->cur_altsetting->desc.bNumEndpoints);
 		err = -EINVAL;
 		goto fail3;
 	}
-	endpoint = &intf->altsetting[0].endpoint[0].desc;
+	endpoint = &intf->cur_altsetting->endpoint[0].desc;
 
 	/* Go set up our URB, which is called when the tablet receives
 	 * input.
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/tablet/gtco.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/tablet/gtco.c
@@ -875,18 +875,14 @@
 	}
 
 	/* Sanity check that a device has an endpoint */
-	if (usbinterface->altsetting[0].desc.bNumEndpoints < 1) {
+	if (usbinterface->cur_altsetting->desc.bNumEndpoints < 1) {
 		dev_err(&usbinterface->dev,
 			"Invalid number of endpoints\n");
 		error = -EINVAL;
 		goto err_free_urb;
 	}
 
-	/*
-	 * The endpoint is always altsetting 0, we know this since we know
-	 * this device only has one interrupt endpoint
-	 */
-	endpoint = &usbinterface->altsetting[0].endpoint[0].desc;
+	endpoint = &usbinterface->cur_altsetting->endpoint[0].desc;
 
 	/* Some debug */
 	dev_dbg(&usbinterface->dev, "gtco # interfaces: %d\n", usbinterface->num_altsetting);
@@ -973,7 +969,7 @@
 	input_dev->dev.parent = &usbinterface->dev;
 
 	/* Setup the URB, it will be posted later on open of input device */
-	endpoint = &usbinterface->altsetting[0].endpoint[0].desc;
+	endpoint = &usbinterface->cur_altsetting->endpoint[0].desc;
 
 	usb_fill_int_urb(gtco->urbinfo,
 			 udev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/tablet/pegasus_notetaker.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/tablet/pegasus_notetaker.c
@@ -275,7 +275,7 @@
 		return -ENODEV;
 
 	/* Sanity check that the device has an endpoint */
-	if (intf->altsetting[0].desc.bNumEndpoints < 1) {
+	if (intf->cur_altsetting->desc.bNumEndpoints < 1) {
 		dev_err(&intf->dev, "Invalid number of endpoints\n");
 		return -EINVAL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/Kconfig
@@ -96,6 +96,7 @@
 config TOUCHSCREEN_ADC
 	tristate "Generic ADC based resistive touchscreen"
 	depends on IIO
+	select IIO_BUFFER
 	select IIO_BUFFER_CB
 	help
 	  Say Y here if you want to use the generic ADC
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/ads7846.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/ads7846.c
@@ -33,6 +33,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/module.h>
 #include <asm/irq.h>
+#include <asm/unaligned.h>
 
 /*
  * This code has been heavily tested on a Nokia 770, and lightly
@@ -199,6 +200,26 @@
 #define	REF_ON	(READ_12BIT_DFR(x, 1, 1))
 #define	REF_OFF	(READ_12BIT_DFR(y, 0, 0))
 
+static int get_pendown_state(struct ads7846 *ts)
+{
+	if (ts->get_pendown_state)
+		return ts->get_pendown_state();
+
+	return !gpio_get_value(ts->gpio_pendown);
+}
+
+static void ads7846_report_pen_up(struct ads7846 *ts)
+{
+	struct input_dev *input = ts->input;
+
+	input_report_key(input, BTN_TOUCH, 0);
+	input_report_abs(input, ABS_PRESSURE, 0);
+	input_sync(input);
+
+	ts->pendown = false;
+	dev_vdbg(&ts->spi->dev, "UP\n");
+}
+
 /* Must be called with ts->lock held */
 static void ads7846_stop(struct ads7846 *ts)
 {
@@ -215,6 +236,10 @@
 static void ads7846_restart(struct ads7846 *ts)
 {
 	if (!ts->disabled && !ts->suspended) {
+		/* Check if pen was released since last stop */
+		if (ts->pendown && !get_pendown_state(ts))
+			ads7846_report_pen_up(ts);
+
 		/* Tell IRQ thread that it may poll the device. */
 		ts->stopped = false;
 		mb();
@@ -410,7 +435,7 @@
 
 	if (status == 0) {
 		/* BE12 value, then padding */
-		status = be16_to_cpu(*((u16 *)&req->sample[1]));
+		status = get_unaligned_be16(&req->sample[1]);
 		status = status >> 3;
 		status &= 0x0fff;
 	}
@@ -605,14 +630,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-static int get_pendown_state(struct ads7846 *ts)
-{
-	if (ts->get_pendown_state)
-		return ts->get_pendown_state();
-
-	return !gpio_get_value(ts->gpio_pendown);
-}
-
 static void null_wait_for_sync(void)
 {
 }
@@ -785,10 +802,11 @@
 		/* compute touch pressure resistance using equation #2 */
 		Rt = z2;
 		Rt -= z1;
-		Rt *= x;
 		Rt *= ts->x_plate_ohms;
+		Rt = DIV_ROUND_CLOSEST(Rt, 16);
+		Rt *= x;
 		Rt /= z1;
-		Rt = (Rt + 2047) >> 12;
+		Rt = DIV_ROUND_CLOSEST(Rt, 256);
 	} else {
 		Rt = 0;
 	}
@@ -867,16 +885,8 @@
 				   msecs_to_jiffies(TS_POLL_PERIOD));
 	}
 
-	if (ts->pendown && !ts->stopped) {
-		struct input_dev *input = ts->input;
-
-		input_report_key(input, BTN_TOUCH, 0);
-		input_report_abs(input, ABS_PRESSURE, 0);
-		input_sync(input);
-
-		ts->pendown = false;
-		dev_vdbg(&ts->spi->dev, "UP\n");
-	}
+	if (ts->pendown && !ts->stopped)
+		ads7846_report_pen_up(ts);
 
 	return IRQ_HANDLED;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/atmel_mxt_ts.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -3156,6 +3156,8 @@
 
 	mutex_unlock(&input_dev->mutex);
 
+	disable_irq(data->irq);
+
 	return 0;
 }
 
@@ -3168,6 +3170,8 @@
 	if (!input_dev)
 		return 0;
 
+	enable_irq(data->irq);
+
 	mutex_lock(&input_dev->mutex);
 
 	if (input_dev->users)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/edt-ft5x06.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/edt-ft5x06.c
@@ -935,19 +935,25 @@
 
 	error = device_property_read_u32(dev, "offset", &val);
 	if (!error) {
-		edt_ft5x06_register_write(tsdata, reg_addr->reg_offset, val);
+		if (reg_addr->reg_offset != NO_REGISTER)
+			edt_ft5x06_register_write(tsdata,
+						  reg_addr->reg_offset, val);
 		tsdata->offset = val;
 	}
 
 	error = device_property_read_u32(dev, "offset-x", &val);
 	if (!error) {
-		edt_ft5x06_register_write(tsdata, reg_addr->reg_offset_x, val);
+		if (reg_addr->reg_offset_x != NO_REGISTER)
+			edt_ft5x06_register_write(tsdata,
+						  reg_addr->reg_offset_x, val);
 		tsdata->offset_x = val;
 	}
 
 	error = device_property_read_u32(dev, "offset-y", &val);
 	if (!error) {
-		edt_ft5x06_register_write(tsdata, reg_addr->reg_offset_y, val);
+		if (reg_addr->reg_offset_y != NO_REGISTER)
+			edt_ft5x06_register_write(tsdata,
+						  reg_addr->reg_offset_y, val);
 		tsdata->offset_y = val;
 	}
 }
@@ -1041,6 +1047,7 @@
 {
 	const struct edt_i2c_chip_data *chip_data;
 	struct edt_ft5x06_ts_data *tsdata;
+	u8 buf[2] = { 0xfc, 0x00 };
 	struct input_dev *input;
 	unsigned long irq_flags;
 	int error;
@@ -1110,6 +1117,12 @@
 		return error;
 	}
 
+	/*
+	 * Dummy read access. EP0700MLP1 returns bogus data on the first
+	 * register read access and ignores writes.
+	 */
+	edt_ft5x06_ts_readwrite(tsdata->client, 2, buf, 2, buf);
+
 	edt_ft5x06_ts_set_regs(tsdata);
 	edt_ft5x06_ts_get_defaults(&client->dev, tsdata);
 	edt_ft5x06_ts_get_parameters(tsdata);
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/elo.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/elo.c
@@ -341,8 +341,10 @@
 	switch (elo->id) {
 
 	case 0: /* 10-byte protocol */
-		if (elo_setup_10(elo))
+		if (elo_setup_10(elo)) {
+			err = -EIO;
 			goto fail3;
+		}
 
 		break;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/goodix.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/goodix.c
@@ -129,6 +129,27 @@
 static const struct dmi_system_id rotated_screen[] = {
 #if defined(CONFIG_DMI) && defined(CONFIG_X86)
 	{
+		.ident = "Teclast X89",
+		.matches = {
+			/* tPAD is too generic, also match on bios date */
+			DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
+			DMI_MATCH(DMI_BOARD_NAME, "tPAD"),
+			DMI_MATCH(DMI_BIOS_DATE, "12/19/2014"),
+		},
+	},
+	{
+		.ident = "Teclast X98 Pro",
+		.matches = {
+			/*
+			 * Only match BIOS date, because the manufacturers
+			 * BIOS does not report the board name at all
+			 * (sometimes)...
+			 */
+			DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
+			DMI_MATCH(DMI_BIOS_DATE, "10/28/2015"),
+		},
+	},
+	{
 		.ident = "WinBook TW100",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "WinBook"),
@@ -159,6 +180,22 @@
 	{}
 };
 
+/*
+ * Those tablets have their x coordinate inverted
+ */
+static const struct dmi_system_id inverted_x_screen[] = {
+#if defined(CONFIG_DMI) && defined(CONFIG_X86)
+	{
+		.ident = "Cube I15-TC",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Cube"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "I15-TC")
+		},
+	},
+#endif
+	{}
+};
+
 /**
  * goodix_i2c_read - read data from a register of the i2c slave device.
  *
@@ -771,6 +808,12 @@
 			"Non-standard 9-bytes report format quirk\n");
 	}
 
+	if (dmi_check_system(inverted_x_screen)) {
+		ts->prop.invert_x = true;
+		dev_dbg(&ts->client->dev,
+			"Applying 'inverted x screen' quirk\n");
+	}
+
 	error = input_mt_init_slots(ts->input_dev, ts->max_touch_num,
 				    INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED);
 	if (error) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/ili210x.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/ili210x.c
@@ -334,7 +334,12 @@
 	input_set_abs_params(input, ABS_MT_POSITION_X, 0, 0xffff, 0, 0);
 	input_set_abs_params(input, ABS_MT_POSITION_Y, 0, 0xffff, 0, 0);
 	touchscreen_parse_properties(input, true, &priv->prop);
-	input_mt_init_slots(input, priv->max_touches, INPUT_MT_DIRECT);
+
+	error = input_mt_init_slots(input, priv->max_touches, INPUT_MT_DIRECT);
+	if (error) {
+		dev_err(dev, "Unable to set up slots, err: %d\n", error);
+		return error;
+	}
 
 	error = devm_add_action(dev, ili210x_cancel_work, priv);
 	if (error)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/imx6ul_tsc.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/imx6ul_tsc.c
@@ -530,20 +530,25 @@
 
 	mutex_lock(&input_dev->mutex);
 
-	if (input_dev->users) {
-		retval = clk_prepare_enable(tsc->adc_clk);
-		if (retval)
-			goto out;
+	if (!input_dev->users)
+		goto out;
 
-		retval = clk_prepare_enable(tsc->tsc_clk);
-		if (retval) {
-			clk_disable_unprepare(tsc->adc_clk);
-			goto out;
-		}
+	retval = clk_prepare_enable(tsc->adc_clk);
+	if (retval)
+		goto out;
 
-		retval = imx6ul_tsc_init(tsc);
+	retval = clk_prepare_enable(tsc->tsc_clk);
+	if (retval) {
+		clk_disable_unprepare(tsc->adc_clk);
+		goto out;
 	}
 
+	retval = imx6ul_tsc_init(tsc);
+	if (retval) {
+		clk_disable_unprepare(tsc->tsc_clk);
+		clk_disable_unprepare(tsc->adc_clk);
+		goto out;
+	}
 out:
 	mutex_unlock(&input_dev->mutex);
 	return retval;
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/mms114.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/mms114.c
@@ -54,6 +54,7 @@
 enum mms_type {
 	TYPE_MMS114	= 114,
 	TYPE_MMS152	= 152,
+	TYPE_MMS345L	= 345,
 };
 
 struct mms114_data {
@@ -91,15 +92,15 @@
 	if (reg <= MMS114_MODE_CONTROL && reg + len > MMS114_MODE_CONTROL)
 		BUG();
 
-	/* Write register: use repeated start */
+	/* Write register */
 	xfer[0].addr = client->addr;
-	xfer[0].flags = I2C_M_TEN | I2C_M_NOSTART;
+	xfer[0].flags = client->flags & I2C_M_TEN;
 	xfer[0].len = 1;
 	xfer[0].buf = &buf;
 
 	/* Read data */
 	xfer[1].addr = client->addr;
-	xfer[1].flags = I2C_M_RD;
+	xfer[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD;
 	xfer[1].len = len;
 	xfer[1].buf = val;
 
@@ -250,6 +251,15 @@
 	int error;
 
 	switch (data->type) {
+	case TYPE_MMS345L:
+		error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
+		if (error)
+			return error;
+
+		dev_info(dev, "TSP FW Rev: bootloader 0x%x / core 0x%x / config 0x%x\n",
+			 buf[0], buf[1], buf[2]);
+		break;
+
 	case TYPE_MMS152:
 		error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
 		if (error)
@@ -287,8 +297,8 @@
 	if (error < 0)
 		return error;
 
-	/* MMS152 has no configuration or power on registers */
-	if (data->type == TYPE_MMS152)
+	/* Only MMS114 has configuration and power on registers */
+	if (data->type != TYPE_MMS114)
 		return 0;
 
 	error = mms114_set_active(data, true);
@@ -428,10 +438,8 @@
 	const void *match_data;
 	int error;
 
-	if (!i2c_check_functionality(client->adapter,
-				I2C_FUNC_PROTOCOL_MANGLING)) {
-		dev_err(&client->dev,
-			"Need i2c bus that supports protocol mangling\n");
+	if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
+		dev_err(&client->dev, "Not supported I2C adapter\n");
 		return -ENODEV;
 	}
 
@@ -600,6 +608,9 @@
 	}, {
 		.compatible = "melfas,mms152",
 		.data = (void *)TYPE_MMS152,
+	}, {
+		.compatible = "melfas,mms345l",
+		.data = (void *)TYPE_MMS345L,
 	},
 	{ }
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/raydium_i2c_ts.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/raydium_i2c_ts.c
@@ -410,6 +410,7 @@
 				    enum raydium_bl_ack state)
 {
 	int error;
+	static const u8 cmd[] = { 0xFF, 0x39 };
 
 	error = raydium_i2c_send(client, RM_CMD_BOOT_WRT, data, len);
 	if (error) {
@@ -418,7 +419,7 @@
 		return error;
 	}
 
-	error = raydium_i2c_send(client, RM_CMD_BOOT_ACK, NULL, 0);
+	error = raydium_i2c_send(client, RM_CMD_BOOT_ACK, cmd, sizeof(cmd));
 	if (error) {
 		dev_err(&client->dev, "Ack obj command failed: %d\n", error);
 		return error;
@@ -432,7 +433,7 @@
 	return 0;
 }
 
-static bool raydium_i2c_boot_trigger(struct i2c_client *client)
+static int raydium_i2c_boot_trigger(struct i2c_client *client)
 {
 	static const u8 cmd[7][6] = {
 		{ 0x08, 0x0C, 0x09, 0x00, 0x50, 0xD7 },
@@ -457,10 +458,10 @@
 		}
 	}
 
-	return false;
+	return 0;
 }
 
-static bool raydium_i2c_fw_trigger(struct i2c_client *client)
+static int raydium_i2c_fw_trigger(struct i2c_client *client)
 {
 	static const u8 cmd[5][11] = {
 		{ 0, 0x09, 0x71, 0x0C, 0x09, 0x00, 0x50, 0xD7, 0, 0, 0 },
@@ -483,7 +484,7 @@
 		}
 	}
 
-	return false;
+	return 0;
 }
 
 static int raydium_i2c_check_path(struct i2c_client *client)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/st1232.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/st1232.c
@@ -149,6 +149,11 @@
 		gpiod_set_value_cansleep(ts->reset_gpio, !poweron);
 }
 
+static void st1232_ts_power_off(void *data)
+{
+	st1232_ts_power(data, false);
+}
+
 static const struct st_chip_info st1232_chip_info = {
 	.have_z		= true,
 	.max_x		= 0x31f, /* 800 - 1 */
@@ -229,6 +234,13 @@
 
 	st1232_ts_power(ts, true);
 
+	error = devm_add_action_or_reset(&client->dev, st1232_ts_power_off, ts);
+	if (error) {
+		dev_err(&client->dev,
+			"Failed to install power off action: %d\n", error);
+		return error;
+	}
+
 	input_dev->name = "st1232-touchscreen";
 	input_dev->id.bustype = BUS_I2C;
 	input_dev->dev.parent = &client->dev;
@@ -271,15 +283,6 @@
 	return 0;
 }
 
-static int st1232_ts_remove(struct i2c_client *client)
-{
-	struct st1232_ts_data *ts = i2c_get_clientdata(client);
-
-	st1232_ts_power(ts, false);
-
-	return 0;
-}
-
 static int __maybe_unused st1232_ts_suspend(struct device *dev)
 {
 	struct i2c_client *client = to_i2c_client(dev);
@@ -329,7 +332,6 @@
 
 static struct i2c_driver st1232_ts_driver = {
 	.probe		= st1232_ts_probe,
-	.remove		= st1232_ts_remove,
 	.id_table	= st1232_ts_id,
 	.driver = {
 		.name	= ST1232_TS_NAME,
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/stmfts.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/stmfts.c
@@ -479,7 +479,7 @@
 
 	mutex_lock(&sdata->mutex);
 
-	if (value & sdata->hover_enabled)
+	if (value && sdata->hover_enabled)
 		goto out;
 
 	if (sdata->running)
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/sun4i-ts.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/sun4i-ts.c
@@ -237,6 +237,7 @@
 	struct device *dev = &pdev->dev;
 	struct device_node *np = dev->of_node;
 	struct device *hwmon;
+	struct thermal_zone_device *thermal;
 	int error;
 	u32 reg;
 	bool ts_attached;
@@ -355,7 +356,10 @@
 	if (IS_ERR(hwmon))
 		return PTR_ERR(hwmon);
 
-	devm_thermal_zone_of_sensor_register(ts->dev, 0, ts, &sun4i_ts_tz_ops);
+	thermal = devm_thermal_zone_of_sensor_register(ts->dev, 0, ts,
+						       &sun4i_ts_tz_ops);
+	if (IS_ERR(thermal))
+		return PTR_ERR(thermal);
 
 	writel(TEMP_IRQ_EN(1), ts->base + TP_INT_FIFOC);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/sur40.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/sur40.c
@@ -653,7 +653,7 @@
 	int error;
 
 	/* Check if we really have the right interface. */
-	iface_desc = &interface->altsetting[0];
+	iface_desc = interface->cur_altsetting;
 	if (iface_desc->desc.bInterfaceClass != 0xFF)
 		return -ENODEV;
 
@@ -774,6 +774,7 @@
 		dev_err(&interface->dev,
 			"Unable to register video controls.");
 		v4l2_ctrl_handler_free(&sur40->hdl);
+		error = sur40->hdl.error;
 		goto err_unreg_v4l2;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/input/touchscreen/usbtouchscreen.c
+++ linux-gkeop-5.4-5.4.0/drivers/input/touchscreen/usbtouchscreen.c
@@ -182,6 +182,7 @@
 #endif
 
 #ifdef CONFIG_TOUCHSCREEN_USB_IRTOUCH
+	{USB_DEVICE(0x255e, 0x0001), .driver_info = DEVTYPE_IRTOUCH},
 	{USB_DEVICE(0x595a, 0x0001), .driver_info = DEVTYPE_IRTOUCH},
 	{USB_DEVICE(0x6615, 0x0001), .driver_info = DEVTYPE_IRTOUCH},
 	{USB_DEVICE(0x6615, 0x0012), .driver_info = DEVTYPE_IRTOUCH_HIRES},
--- linux-gkeop-5.4-5.4.0.orig/drivers/interconnect/qcom/qcs404.c
+++ linux-gkeop-5.4-5.4.0/drivers/interconnect/qcom/qcs404.c
@@ -157,8 +157,8 @@
 	}
 
 DEFINE_QNODE(mas_apps_proc, QCS404_MASTER_AMPSS_M0, 8, 0, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
-DEFINE_QNODE(mas_oxili, QCS404_MASTER_GRAPHICS_3D, 8, 6, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
-DEFINE_QNODE(mas_mdp, QCS404_MASTER_MDP_PORT0, 8, 8, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
+DEFINE_QNODE(mas_oxili, QCS404_MASTER_GRAPHICS_3D, 8, -1, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
+DEFINE_QNODE(mas_mdp, QCS404_MASTER_MDP_PORT0, 8, -1, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
 DEFINE_QNODE(mas_snoc_bimc_1, QCS404_SNOC_BIMC_1_MAS, 8, 76, -1, QCS404_SLAVE_EBI_CH0);
 DEFINE_QNODE(mas_tcu_0, QCS404_MASTER_TCU_0, 8, -1, -1, QCS404_SLAVE_EBI_CH0, QCS404_BIMC_SNOC_SLV);
 DEFINE_QNODE(mas_spdm, QCS404_MASTER_SPDM, 4, -1, -1, QCS404_PNOC_INT_3);
@@ -414,7 +414,7 @@
 	struct icc_provider *provider;
 	struct qcom_icc_node **qnodes;
 	struct qcom_icc_provider *qp;
-	struct icc_node *node;
+	struct icc_node *node, *tmp;
 	size_t num_nodes, i;
 	int ret;
 
@@ -494,7 +494,7 @@
 
 	return 0;
 err:
-	list_for_each_entry(node, &provider->nodes, node_list) {
+	list_for_each_entry_safe(node, tmp, &provider->nodes, node_list) {
 		icc_node_del(node);
 		icc_node_destroy(node->id);
 	}
@@ -508,9 +508,9 @@
 {
 	struct qcom_icc_provider *qp = platform_get_drvdata(pdev);
 	struct icc_provider *provider = &qp->provider;
-	struct icc_node *n;
+	struct icc_node *n, *tmp;
 
-	list_for_each_entry(n, &provider->nodes, node_list) {
+	list_for_each_entry_safe(n, tmp, &provider->nodes, node_list) {
 		icc_node_del(n);
 		icc_node_destroy(n->id);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/interconnect/qcom/sdm845.c
+++ linux-gkeop-5.4-5.4.0/drivers/interconnect/qcom/sdm845.c
@@ -868,9 +868,9 @@
 {
 	struct qcom_icc_provider *qp = platform_get_drvdata(pdev);
 	struct icc_provider *provider = &qp->provider;
-	struct icc_node *n;
+	struct icc_node *n, *tmp;
 
-	list_for_each_entry(n, &provider->nodes, node_list) {
+	list_for_each_entry_safe(n, tmp, &provider->nodes, node_list) {
 		icc_node_del(n);
 		icc_node_destroy(n->id);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/Kconfig
@@ -138,7 +138,7 @@
 	select PCI_PASID
 	select IOMMU_API
 	select IOMMU_IOVA
-	depends on X86_64 && PCI && ACPI
+	depends on X86_64 && PCI && ACPI && HAVE_CMPXCHG_DOUBLE
 	---help---
 	  With this option you can enable support for AMD IOMMU hardware in
 	  your system. An IOMMU is a hardware component which provides
@@ -205,7 +205,7 @@
 
 config INTEL_IOMMU_SVM
 	bool "Support for Shared Virtual Memory with Intel IOMMU"
-	depends on INTEL_IOMMU && X86
+	depends on INTEL_IOMMU && X86_64
 	select PCI_PASID
 	select MMU_NOTIFIER
 	help
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/amd_iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/amd_iommu.c
@@ -226,71 +226,58 @@
 	return NULL;
 }
 
-static int __last_alias(struct pci_dev *pdev, u16 alias, void *data)
+static int clone_alias(struct pci_dev *pdev, u16 alias, void *data)
 {
-	*(u16 *)data = alias;
-	return 0;
-}
-
-static u16 get_alias(struct device *dev)
-{
-	struct pci_dev *pdev = to_pci_dev(dev);
-	u16 devid, ivrs_alias, pci_alias;
+	u16 devid = pci_dev_id(pdev);
 
-	/* The callers make sure that get_device_id() does not fail here */
-	devid = get_device_id(dev);
-
-	/* For ACPI HID devices, we simply return the devid as such */
-	if (!dev_is_pci(dev))
-		return devid;
+	if (devid == alias)
+		return 0;
 
-	ivrs_alias = amd_iommu_alias_table[devid];
+	amd_iommu_rlookup_table[alias] =
+		amd_iommu_rlookup_table[devid];
+	memcpy(amd_iommu_dev_table[alias].data,
+	       amd_iommu_dev_table[devid].data,
+	       sizeof(amd_iommu_dev_table[alias].data));
 
-	pci_for_each_dma_alias(pdev, __last_alias, &pci_alias);
+	return 0;
+}
 
-	if (ivrs_alias == pci_alias)
-		return ivrs_alias;
+static void clone_aliases(struct pci_dev *pdev)
+{
+	if (!pdev)
+		return;
 
 	/*
-	 * DMA alias showdown
-	 *
-	 * The IVRS is fairly reliable in telling us about aliases, but it
-	 * can't know about every screwy device.  If we don't have an IVRS
-	 * reported alias, use the PCI reported alias.  In that case we may
-	 * still need to initialize the rlookup and dev_table entries if the
-	 * alias is to a non-existent device.
+	 * The IVRS alias stored in the alias table may not be
+	 * part of the PCI DMA aliases if it's bus differs
+	 * from the original device.
 	 */
-	if (ivrs_alias == devid) {
-		if (!amd_iommu_rlookup_table[pci_alias]) {
-			amd_iommu_rlookup_table[pci_alias] =
-				amd_iommu_rlookup_table[devid];
-			memcpy(amd_iommu_dev_table[pci_alias].data,
-			       amd_iommu_dev_table[devid].data,
-			       sizeof(amd_iommu_dev_table[pci_alias].data));
-		}
+	clone_alias(pdev, amd_iommu_alias_table[pci_dev_id(pdev)], NULL);
 
-		return pci_alias;
-	}
+	pci_for_each_dma_alias(pdev, clone_alias, NULL);
+}
 
-	pci_info(pdev, "Using IVRS reported alias %02x:%02x.%d "
-		"for device [%04x:%04x], kernel reported alias "
-		"%02x:%02x.%d\n", PCI_BUS_NUM(ivrs_alias), PCI_SLOT(ivrs_alias),
-		PCI_FUNC(ivrs_alias), pdev->vendor, pdev->device,
-		PCI_BUS_NUM(pci_alias), PCI_SLOT(pci_alias),
-		PCI_FUNC(pci_alias));
+static struct pci_dev *setup_aliases(struct device *dev)
+{
+	struct pci_dev *pdev = to_pci_dev(dev);
+	u16 ivrs_alias;
+
+	/* For ACPI HID devices, there are no aliases */
+	if (!dev_is_pci(dev))
+		return NULL;
 
 	/*
-	 * If we don't have a PCI DMA alias and the IVRS alias is on the same
-	 * bus, then the IVRS table may know about a quirk that we don't.
+	 * Add the IVRS alias to the pci aliases if it is on the same
+	 * bus. The IVRS table may know about a quirk that we don't.
 	 */
-	if (pci_alias == devid &&
-	    PCI_BUS_NUM(ivrs_alias) == pdev->bus->number) {
-		pci_add_dma_alias(pdev, ivrs_alias & 0xff);
-		pci_info(pdev, "Added PCI DMA alias %02x.%d\n",
-			PCI_SLOT(ivrs_alias), PCI_FUNC(ivrs_alias));
-	}
+	ivrs_alias = amd_iommu_alias_table[pci_dev_id(pdev)];
+	if (ivrs_alias != pci_dev_id(pdev) &&
+	    PCI_BUS_NUM(ivrs_alias) == pdev->bus->number)
+		pci_add_dma_alias(pdev, ivrs_alias & 0xff, 1);
+
+	clone_aliases(pdev);
 
-	return ivrs_alias;
+	return pdev;
 }
 
 static struct iommu_dev_data *find_dev_data(u16 devid)
@@ -428,7 +415,7 @@
 	if (!dev_data)
 		return -ENOMEM;
 
-	dev_data->alias = get_alias(dev);
+	dev_data->pdev = setup_aliases(dev);
 
 	/*
 	 * By default we use passthrough mode for IOMMUv2 capable device.
@@ -453,20 +440,16 @@
 
 static void iommu_ignore_device(struct device *dev)
 {
-	u16 alias;
 	int devid;
 
 	devid = get_device_id(dev);
 	if (devid < 0)
 		return;
 
-	alias = get_alias(dev);
-
+	amd_iommu_rlookup_table[devid] = NULL;
 	memset(&amd_iommu_dev_table[devid], 0, sizeof(struct dev_table_entry));
-	memset(&amd_iommu_dev_table[alias], 0, sizeof(struct dev_table_entry));
 
-	amd_iommu_rlookup_table[devid] = NULL;
-	amd_iommu_rlookup_table[alias] = NULL;
+	setup_aliases(dev);
 }
 
 static void iommu_uninit_device(struct device *dev)
@@ -1236,6 +1219,13 @@
 	return iommu_queue_command(iommu, &cmd);
 }
 
+static int device_flush_dte_alias(struct pci_dev *pdev, u16 alias, void *data)
+{
+	struct amd_iommu *iommu = data;
+
+	return iommu_flush_dte(iommu, alias);
+}
+
 /*
  * Command send function for invalidating a device table entry
  */
@@ -1246,14 +1236,22 @@
 	int ret;
 
 	iommu = amd_iommu_rlookup_table[dev_data->devid];
-	alias = dev_data->alias;
 
-	ret = iommu_flush_dte(iommu, dev_data->devid);
-	if (!ret && alias != dev_data->devid)
-		ret = iommu_flush_dte(iommu, alias);
+	if (dev_data->pdev)
+		ret = pci_for_each_dma_alias(dev_data->pdev,
+					     device_flush_dte_alias, iommu);
+	else
+		ret = iommu_flush_dte(iommu, dev_data->devid);
 	if (ret)
 		return ret;
 
+	alias = amd_iommu_alias_table[dev_data->devid];
+	if (alias != dev_data->devid) {
+		ret = iommu_flush_dte(iommu, alias);
+		if (ret)
+			return ret;
+	}
+
 	if (dev_data->ats.enabled)
 		ret = device_flush_iotlb(dev_data, 0, ~0UL);
 
@@ -1471,25 +1469,27 @@
 	bool ret = false;
 	u64 *pte;
 
+	pte = (void *)get_zeroed_page(gfp);
+	if (!pte)
+		return false;
+
 	spin_lock_irqsave(&domain->lock, flags);
 
 	if (address <= PM_LEVEL_SIZE(domain->mode) ||
 	    WARN_ON_ONCE(domain->mode == PAGE_MODE_6_LEVEL))
 		goto out;
 
-	pte = (void *)get_zeroed_page(gfp);
-	if (!pte)
-		goto out;
-
 	*pte             = PM_LEVEL_PDE(domain->mode,
 					iommu_virt_to_phys(domain->pt_root));
 	domain->pt_root  = pte;
 	domain->mode    += 1;
 
+	pte = NULL;
 	ret = true;
 
 out:
 	spin_unlock_irqrestore(&domain->lock, flags);
+	free_page((unsigned long)pte);
 
 	return ret;
 }
@@ -2035,11 +2035,9 @@
 		      struct protection_domain *domain)
 {
 	struct amd_iommu *iommu;
-	u16 alias;
 	bool ats;
 
 	iommu = amd_iommu_rlookup_table[dev_data->devid];
-	alias = dev_data->alias;
 	ats   = dev_data->ats.enabled;
 
 	/* Update data structures */
@@ -2052,8 +2050,7 @@
 
 	/* Update device table */
 	set_dte_entry(dev_data->devid, domain, ats, dev_data->iommu_v2);
-	if (alias != dev_data->devid)
-		set_dte_entry(alias, domain, ats, dev_data->iommu_v2);
+	clone_aliases(dev_data->pdev);
 
 	device_flush_dte(dev_data);
 }
@@ -2062,17 +2059,14 @@
 {
 	struct protection_domain *domain = dev_data->domain;
 	struct amd_iommu *iommu;
-	u16 alias;
 
 	iommu = amd_iommu_rlookup_table[dev_data->devid];
-	alias = dev_data->alias;
 
 	/* Update data structures */
 	dev_data->domain = NULL;
 	list_del(&dev_data->list);
 	clear_dte_entry(dev_data->devid);
-	if (alias != dev_data->devid)
-		clear_dte_entry(alias);
+	clone_aliases(dev_data->pdev);
 
 	/* Flush the DTE entry */
 	device_flush_dte(dev_data);
@@ -2384,13 +2378,7 @@
 	list_for_each_entry(dev_data, &domain->dev_list, list) {
 		set_dte_entry(dev_data->devid, domain, dev_data->ats.enabled,
 			      dev_data->iommu_v2);
-
-		if (dev_data->devid == dev_data->alias)
-			continue;
-
-		/* There is an alias, update device table entry for it */
-		set_dte_entry(dev_data->alias, domain, dev_data->ats.enabled,
-			      dev_data->iommu_v2);
+		clone_aliases(dev_data->pdev);
 	}
 }
 
@@ -2400,6 +2388,7 @@
 
 	domain_flush_devices(domain);
 	domain_flush_tlb_pde(domain);
+	domain_flush_complete(domain);
 }
 
 static int dir2prot(enum dma_data_direction direction)
@@ -3752,7 +3741,20 @@
 	iommu_flush_dte(iommu, devid);
 }
 
-static struct irq_remap_table *alloc_irq_table(u16 devid)
+static int set_remap_table_entry_alias(struct pci_dev *pdev, u16 alias,
+				       void *data)
+{
+	struct irq_remap_table *table = data;
+
+	irq_lookup_table[alias] = table;
+	set_dte_irq_entry(alias, table);
+
+	iommu_flush_dte(amd_iommu_rlookup_table[alias], alias);
+
+	return 0;
+}
+
+static struct irq_remap_table *alloc_irq_table(u16 devid, struct pci_dev *pdev)
 {
 	struct irq_remap_table *table = NULL;
 	struct irq_remap_table *new_table = NULL;
@@ -3798,7 +3800,12 @@
 	table = new_table;
 	new_table = NULL;
 
-	set_remap_table_entry(iommu, devid, table);
+	if (pdev)
+		pci_for_each_dma_alias(pdev, set_remap_table_entry_alias,
+				       table);
+	else
+		set_remap_table_entry(iommu, devid, table);
+
 	if (devid != alias)
 		set_remap_table_entry(iommu, alias, table);
 
@@ -3815,7 +3822,8 @@
 	return table;
 }
 
-static int alloc_irq_index(u16 devid, int count, bool align)
+static int alloc_irq_index(u16 devid, int count, bool align,
+			   struct pci_dev *pdev)
 {
 	struct irq_remap_table *table;
 	int index, c, alignment = 1;
@@ -3825,7 +3833,7 @@
 	if (!iommu)
 		return -ENODEV;
 
-	table = alloc_irq_table(devid);
+	table = alloc_irq_table(devid, pdev);
 	if (!table)
 		return -ENODEV;
 
@@ -3867,6 +3875,7 @@
 static int modify_irte_ga(u16 devid, int index, struct irte_ga *irte,
 			  struct amd_ir_data *data)
 {
+	bool ret;
 	struct irq_remap_table *table;
 	struct amd_iommu *iommu;
 	unsigned long flags;
@@ -3884,10 +3893,18 @@
 
 	entry = (struct irte_ga *)table->table;
 	entry = &entry[index];
-	entry->lo.fields_remap.valid = 0;
-	entry->hi.val = irte->hi.val;
-	entry->lo.val = irte->lo.val;
-	entry->lo.fields_remap.valid = 1;
+
+	ret = cmpxchg_double(&entry->lo.val, &entry->hi.val,
+			     entry->lo.val, entry->hi.val,
+			     irte->lo.val, irte->hi.val);
+	/*
+	 * We use cmpxchg16 to atomically update the 128-bit IRTE,
+	 * and it cannot be updated by the hardware or other processors
+	 * behind us, so the return value of cmpxchg16 should be the
+	 * same as the old value.
+	 */
+	WARN_ON(!ret);
+
 	if (data)
 		data->ref = entry;
 
@@ -4258,7 +4275,7 @@
 		struct irq_remap_table *table;
 		struct amd_iommu *iommu;
 
-		table = alloc_irq_table(devid);
+		table = alloc_irq_table(devid, NULL);
 		if (table) {
 			if (!table->min_index) {
 				/*
@@ -4275,11 +4292,15 @@
 		} else {
 			index = -ENOMEM;
 		}
-	} else {
+	} else if (info->type == X86_IRQ_ALLOC_TYPE_MSI ||
+		   info->type == X86_IRQ_ALLOC_TYPE_MSIX) {
 		bool align = (info->type == X86_IRQ_ALLOC_TYPE_MSI);
 
-		index = alloc_irq_index(devid, nr_irqs, align);
+		index = alloc_irq_index(devid, nr_irqs, align, info->msi_dev);
+	} else {
+		index = alloc_irq_index(devid, nr_irqs, false, NULL);
 	}
+
 	if (index < 0) {
 		pr_warn("Failed to allocate IRTE\n");
 		ret = index;
@@ -4412,7 +4433,7 @@
 	entry->lo.fields_vapic.ga_tag      = ir_data->ga_tag;
 
 	return modify_irte_ga(ir_data->irq_2_irte.devid,
-			      ir_data->irq_2_irte.index, entry, NULL);
+			      ir_data->irq_2_irte.index, entry, ir_data);
 }
 EXPORT_SYMBOL(amd_iommu_activate_guest_mode);
 
@@ -4421,14 +4442,18 @@
 	struct amd_ir_data *ir_data = (struct amd_ir_data *)data;
 	struct irte_ga *entry = (struct irte_ga *) ir_data->entry;
 	struct irq_cfg *cfg = ir_data->cfg;
+	u64 valid;
 
 	if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir) ||
 	    !entry || !entry->lo.fields_vapic.guest_mode)
 		return 0;
 
+	valid = entry->lo.fields_remap.valid;
+
 	entry->lo.val = 0;
 	entry->hi.val = 0;
 
+	entry->lo.fields_remap.valid       = valid;
 	entry->lo.fields_remap.dm          = apic->irq_dest_mode;
 	entry->lo.fields_remap.int_type    = apic->irq_delivery_mode;
 	entry->hi.fields.vector            = cfg->vector;
@@ -4438,7 +4463,7 @@
 				APICID_TO_IRTE_DEST_HI(cfg->dest_apicid);
 
 	return modify_irte_ga(ir_data->irq_2_irte.devid,
-			      ir_data->irq_2_irte.index, entry, NULL);
+			      ir_data->irq_2_irte.index, entry, ir_data);
 }
 EXPORT_SYMBOL(amd_iommu_deactivate_guest_mode);
 
@@ -4565,9 +4590,10 @@
 	if (!fn)
 		return -ENOMEM;
 	iommu->ir_domain = irq_domain_create_tree(fn, &amd_ir_domain_ops, iommu);
-	irq_domain_free_fwnode(fn);
-	if (!iommu->ir_domain)
+	if (!iommu->ir_domain) {
+		irq_domain_free_fwnode(fn);
 		return -ENOMEM;
+	}
 
 	iommu->ir_domain->parent = arch_get_ir_parent_domain();
 	iommu->msi_domain = arch_create_remap_msi_irq_domain(iommu->ir_domain,
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/amd_iommu_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/amd_iommu_init.c
@@ -12,6 +12,7 @@
 #include <linux/acpi.h>
 #include <linux/list.h>
 #include <linux/bitmap.h>
+#include <linux/delay.h>
 #include <linux/slab.h>
 #include <linux/syscore_ops.h>
 #include <linux/interrupt.h>
@@ -147,7 +148,7 @@
 bool amd_iommu_irq_remap __read_mostly;
 
 int amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_VAPIC;
-static int amd_iommu_xt_mode = IRQ_REMAP_X2APIC_MODE;
+static int amd_iommu_xt_mode = IRQ_REMAP_XAPIC_MODE;
 
 static bool amd_iommu_detected;
 static bool __initdata amd_iommu_disabled;
@@ -253,6 +254,8 @@
 static int amd_iommu_enable_interrupts(void);
 static int __init iommu_go_to_state(enum iommu_init_state state);
 static void init_device_table_dma(void);
+static int iommu_pc_get_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr,
+				u8 fxn, u64 *value, bool is_write);
 
 static bool amd_iommu_pre_enabled = true;
 
@@ -1331,8 +1334,8 @@
 		}
 		case IVHD_DEV_ACPI_HID: {
 			u16 devid;
-			u8 hid[ACPIHID_HID_LEN] = {0};
-			u8 uid[ACPIHID_UID_LEN] = {0};
+			u8 hid[ACPIHID_HID_LEN];
+			u8 uid[ACPIHID_UID_LEN];
 			int ret;
 
 			if (h->type != 0x40) {
@@ -1349,6 +1352,7 @@
 				break;
 			}
 
+			uid[0] = '\0';
 			switch (e->uidf) {
 			case UID_NOT_PRESENT:
 
@@ -1363,8 +1367,8 @@
 				break;
 			case UID_IS_CHARACTER:
 
-				memcpy(uid, (u8 *)(&e->uid), ACPIHID_UID_LEN - 1);
-				uid[ACPIHID_UID_LEN - 1] = '\0';
+				memcpy(uid, &e->uid, e->uidl);
+				uid[e->uidl] = '\0';
 
 				break;
 			default:
@@ -1521,10 +1525,15 @@
 			iommu->mmio_phys_end = MMIO_REG_END_OFFSET;
 		else
 			iommu->mmio_phys_end = MMIO_CNTR_CONF_OFFSET;
-		if (((h->efr_attr & (0x1 << IOMMU_FEAT_GASUP_SHIFT)) == 0))
+
+		/*
+		 * Note: GA (128-bit IRTE) mode requires cmpxchg16b supports.
+		 * GAM also requires GA mode. Therefore, we need to
+		 * check cmpxchg16b support before enabling it.
+		 */
+		if (!boot_cpu_has(X86_FEATURE_CX16) ||
+		    ((h->efr_attr & (0x1 << IOMMU_FEAT_GASUP_SHIFT)) == 0))
 			amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_LEGACY;
-		if (((h->efr_attr & (0x1 << IOMMU_FEAT_XTSUP_SHIFT)) == 0))
-			amd_iommu_xt_mode = IRQ_REMAP_XAPIC_MODE;
 		break;
 	case 0x11:
 	case 0x40:
@@ -1532,10 +1541,27 @@
 			iommu->mmio_phys_end = MMIO_REG_END_OFFSET;
 		else
 			iommu->mmio_phys_end = MMIO_CNTR_CONF_OFFSET;
-		if (((h->efr_reg & (0x1 << IOMMU_EFR_GASUP_SHIFT)) == 0))
+
+		/*
+		 * Note: GA (128-bit IRTE) mode requires cmpxchg16b supports.
+		 * XT, GAM also requires GA mode. Therefore, we need to
+		 * check cmpxchg16b support before enabling them.
+		 */
+		if (!boot_cpu_has(X86_FEATURE_CX16) ||
+		    ((h->efr_reg & (0x1 << IOMMU_EFR_GASUP_SHIFT)) == 0)) {
 			amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_LEGACY;
-		if (((h->efr_reg & (0x1 << IOMMU_EFR_XTSUP_SHIFT)) == 0))
-			amd_iommu_xt_mode = IRQ_REMAP_XAPIC_MODE;
+			break;
+		}
+
+		/*
+		 * Note: Since iommu_update_intcapxt() leverages
+		 * the IOMMU MMIO access to MSI capability block registers
+		 * for MSI address lo/hi/data, we need to check both
+		 * EFR[XtSup] and EFR[MsiCapMmioSup] for x2APIC support.
+		 */
+		if ((h->efr_reg & BIT(IOMMU_EFR_XTSUP_SHIFT)) &&
+		    (h->efr_reg & BIT(IOMMU_EFR_MSICAPMMIOSUP_SHIFT)))
+			amd_iommu_xt_mode = IRQ_REMAP_X2APIC_MODE;
 		break;
 	default:
 		return -EINVAL;
@@ -1649,33 +1675,65 @@
 	return 0;
 }
 
-static int iommu_pc_get_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr,
-				u8 fxn, u64 *value, bool is_write);
-
-static void init_iommu_perf_ctr(struct amd_iommu *iommu)
+static void __init init_iommu_perf_ctr(struct amd_iommu *iommu)
 {
+	int retry;
 	struct pci_dev *pdev = iommu->dev;
-	u64 val = 0xabcd, val2 = 0;
+	u64 val = 0xabcd, val2 = 0, save_reg, save_src;
 
 	if (!iommu_feature(iommu, FEATURE_PC))
 		return;
 
 	amd_iommu_pc_present = true;
 
+	/* save the value to restore, if writable */
+	if (iommu_pc_get_set_reg(iommu, 0, 0, 0, &save_reg, false) ||
+	    iommu_pc_get_set_reg(iommu, 0, 0, 8, &save_src, false))
+		goto pc_false;
+
+	/*
+	 * Disable power gating by programing the performance counter
+	 * source to 20 (i.e. counts the reads and writes from/to IOMMU
+	 * Reserved Register [MMIO Offset 1FF8h] that are ignored.),
+	 * which never get incremented during this init phase.
+	 * (Note: The event is also deprecated.)
+	 */
+	val = 20;
+	if (iommu_pc_get_set_reg(iommu, 0, 0, 8, &val, true))
+		goto pc_false;
+
 	/* Check if the performance counters can be written to */
-	if ((iommu_pc_get_set_reg(iommu, 0, 0, 0, &val, true)) ||
-	    (iommu_pc_get_set_reg(iommu, 0, 0, 0, &val2, false)) ||
-	    (val != val2)) {
-		pci_err(pdev, "Unable to write to IOMMU perf counter.\n");
-		amd_iommu_pc_present = false;
-		return;
+	val = 0xabcd;
+	for (retry = 5; retry; retry--) {
+		if (iommu_pc_get_set_reg(iommu, 0, 0, 0, &val, true) ||
+		    iommu_pc_get_set_reg(iommu, 0, 0, 0, &val2, false) ||
+		    val2)
+			break;
+
+		/* Wait about 20 msec for power gating to disable and retry. */
+		msleep(20);
 	}
 
+	/* restore */
+	if (iommu_pc_get_set_reg(iommu, 0, 0, 0, &save_reg, true) ||
+	    iommu_pc_get_set_reg(iommu, 0, 0, 8, &save_src, true))
+		goto pc_false;
+
+	if (val != val2)
+		goto pc_false;
+
 	pci_info(pdev, "IOMMU performance counters supported\n");
 
 	val = readl(iommu->mmio_base + MMIO_CNTR_CONF_OFFSET);
 	iommu->max_banks = (u8) ((val >> 12) & 0x3f);
 	iommu->max_counters = (u8) ((val >> 7) & 0xf);
+
+	return;
+
+pc_false:
+	pci_err(pdev, "Unable to read/write to IOMMU perf counter.\n");
+	amd_iommu_pc_present = false;
+	return;
 }
 
 static ssize_t amd_iommu_show_cap(struct device *dev,
@@ -1984,8 +2042,8 @@
 	struct irq_affinity_notify *notify = &iommu->intcapxt_notify;
 
 	/**
-	 * IntCapXT requires XTSup=1, which can be inferred
-	 * amd_iommu_xt_mode.
+	 * IntCapXT requires XTSup=1 and MsiCapMmioSup=1,
+	 * which can be inferred from amd_iommu_xt_mode.
 	 */
 	if (amd_iommu_xt_mode != IRQ_REMAP_X2APIC_MODE)
 		return 0;
@@ -2516,6 +2574,7 @@
 	struct acpi_table_header *ivrs_base;
 	acpi_status status;
 	int i, remap_cache_sz, ret = 0;
+	u32 pci_id;
 
 	if (!amd_iommu_detected)
 		return -ENODEV;
@@ -2603,6 +2662,16 @@
 	if (ret)
 		goto out;
 
+	/* Disable IOMMU if there's Stoney Ridge graphics */
+	for (i = 0; i < 32; i++) {
+		pci_id = read_pci_config(0, i, 0, 0);
+		if ((pci_id & 0xffff) == 0x1002 && (pci_id >> 16) == 0x98e4) {
+			pr_info("Disable IOMMU on Stoney Ridge\n");
+			amd_iommu_disabled = true;
+			break;
+		}
+	}
+
 	/* Disable any previously enabled IOMMUs */
 	if (!is_kdump_kernel() || amd_iommu_disabled)
 		disable_iommus();
@@ -2711,7 +2780,7 @@
 		ret = early_amd_iommu_init();
 		init_state = ret ? IOMMU_INIT_ERROR : IOMMU_ACPI_FINISHED;
 		if (init_state == IOMMU_ACPI_FINISHED && amd_iommu_disabled) {
-			pr_info("AMD IOMMU disabled on kernel command-line\n");
+			pr_info("AMD IOMMU disabled\n");
 			init_state = IOMMU_CMDLINE_DISABLED;
 			ret = -EINVAL;
 		}
@@ -2918,7 +2987,7 @@
 {
 	for (; *str; ++str) {
 		if (strncmp(str, "legacy", 6) == 0) {
-			amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_LEGACY;
+			amd_iommu_guest_ir = AMD_IOMMU_GUEST_IR_LEGACY_GA;
 			break;
 		}
 		if (strncmp(str, "vapic", 5) == 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/amd_iommu_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/amd_iommu_types.h
@@ -254,7 +254,7 @@
 #define DTE_IRQ_REMAP_INTCTL_MASK	(0x3ULL << 60)
 #define DTE_IRQ_TABLE_LEN_MASK	(0xfULL << 1)
 #define DTE_IRQ_REMAP_INTCTL    (2ULL << 60)
-#define DTE_IRQ_TABLE_LEN       (8ULL << 1)
+#define DTE_IRQ_TABLE_LEN       (9ULL << 1)
 #define DTE_IRQ_REMAP_ENABLE    1ULL
 
 #define PAGE_MODE_NONE    0x00
@@ -348,7 +348,7 @@
 
 #define DTE_GCR3_VAL_A(x)	(((x) >> 12) & 0x00007ULL)
 #define DTE_GCR3_VAL_B(x)	(((x) >> 15) & 0x0ffffULL)
-#define DTE_GCR3_VAL_C(x)	(((x) >> 31) & 0xfffffULL)
+#define DTE_GCR3_VAL_C(x)	(((x) >> 31) & 0x1fffffULL)
 
 #define DTE_GCR3_INDEX_A	0
 #define DTE_GCR3_INDEX_B	1
@@ -377,12 +377,12 @@
 #define IOMMU_CAP_EFR     27
 
 /* IOMMU Feature Reporting Field (for IVHD type 10h */
-#define IOMMU_FEAT_XTSUP_SHIFT	0
 #define IOMMU_FEAT_GASUP_SHIFT	6
 
 /* IOMMU Extended Feature Register (EFR) */
 #define IOMMU_EFR_XTSUP_SHIFT	2
 #define IOMMU_EFR_GASUP_SHIFT	7
+#define IOMMU_EFR_MSICAPMMIOSUP_SHIFT	46
 
 #define MAX_DOMAIN_ID 65536
 
@@ -406,7 +406,11 @@
 /* Only true if all IOMMUs support device IOTLBs */
 extern bool amd_iommu_iotlb_sup;
 
-#define MAX_IRQS_PER_TABLE	256
+/*
+ * AMD IOMMU hardware only support 512 IRTEs despite
+ * the architectural limitation of 2048 entries.
+ */
+#define MAX_IRQS_PER_TABLE	512
 #define IRQ_TABLE_ALIGNMENT	128
 
 struct irq_remap_table {
@@ -639,8 +643,8 @@
 	struct list_head list;		  /* For domain->dev_list */
 	struct llist_node dev_data_list;  /* For global dev_data_list */
 	struct protection_domain *domain; /* Domain the device is bound to */
+	struct pci_dev *pdev;
 	u16 devid;			  /* PCI Device ID */
-	u16 alias;			  /* Alias Device ID */
 	bool iommu_v2;			  /* Device can make use of IOMMUv2 */
 	bool passthrough;		  /* Device is identity mapped */
 	struct {
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/amd_iommu_v2.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/amd_iommu_v2.c
@@ -741,6 +741,13 @@
 
 	might_sleep();
 
+	/*
+	 * When memory encryption is active the device is likely not in a
+	 * direct-mapped domain. Forbid using IOMMUv2 functionality for now.
+	 */
+	if (mem_encrypt_active())
+		return -ENODEV;
+
 	if (!amd_iommu_v2_supported())
 		return -ENODEV;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/arm-smmu-v3.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/arm-smmu-v3.c
@@ -856,6 +856,7 @@
 		cmd[1] |= FIELD_PREP(CMDQ_CFGI_1_RANGE, 31);
 		break;
 	case CMDQ_OP_TLBI_NH_VA:
+		cmd[0] |= FIELD_PREP(CMDQ_TLBI_0_VMID, ent->tlbi.vmid);
 		cmd[0] |= FIELD_PREP(CMDQ_TLBI_0_ASID, ent->tlbi.asid);
 		cmd[1] |= FIELD_PREP(CMDQ_TLBI_1_LEAF, ent->tlbi.leaf);
 		cmd[1] |= ent->tlbi.addr & CMDQ_TLBI_1_VA_MASK;
@@ -1642,7 +1643,8 @@
 						 STRTAB_STE_1_EATS_TRANS));
 
 	arm_smmu_sync_ste_for_sid(smmu, sid);
-	dst[0] = cpu_to_le64(val);
+	/* See comment in arm_smmu_write_ctx_desc() */
+	WRITE_ONCE(dst[0], cpu_to_le64(val));
 	arm_smmu_sync_ste_for_sid(smmu, sid);
 
 	/* It's likely that we'll want to use the new STE soon */
@@ -3611,19 +3613,19 @@
 
 	/* Interrupt lines */
 
-	irq = platform_get_irq_byname(pdev, "combined");
+	irq = platform_get_irq_byname_optional(pdev, "combined");
 	if (irq > 0)
 		smmu->combined_irq = irq;
 	else {
-		irq = platform_get_irq_byname(pdev, "eventq");
+		irq = platform_get_irq_byname_optional(pdev, "eventq");
 		if (irq > 0)
 			smmu->evtq.q.irq = irq;
 
-		irq = platform_get_irq_byname(pdev, "priq");
+		irq = platform_get_irq_byname_optional(pdev, "priq");
 		if (irq > 0)
 			smmu->priq.q.irq = irq;
 
-		irq = platform_get_irq_byname(pdev, "gerror");
+		irq = platform_get_irq_byname_optional(pdev, "gerror");
 		if (irq > 0)
 			smmu->gerr_irq = irq;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/dma-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/dma-iommu.c
@@ -19,6 +19,7 @@
 #include <linux/iova.h>
 #include <linux/irq.h>
 #include <linux/mm.h>
+#include <linux/mutex.h>
 #include <linux/pci.h>
 #include <linux/scatterlist.h>
 #include <linux/vmalloc.h>
@@ -43,7 +44,6 @@
 		dma_addr_t		msi_iova;
 	};
 	struct list_head		msi_page_list;
-	spinlock_t			msi_lock;
 
 	/* Domain for flush queue callback; NULL if flush queue not in use */
 	struct iommu_domain		*fq_domain;
@@ -62,7 +62,6 @@
 
 	cookie = kzalloc(sizeof(*cookie), GFP_KERNEL);
 	if (cookie) {
-		spin_lock_init(&cookie->msi_lock);
 		INIT_LIST_HEAD(&cookie->msi_page_list);
 		cookie->type = type;
 	}
@@ -177,15 +176,15 @@
 	start -= iova_offset(iovad, start);
 	num_pages = iova_align(iovad, end - start) >> iova_shift(iovad);
 
-	msi_page = kcalloc(num_pages, sizeof(*msi_page), GFP_KERNEL);
-	if (!msi_page)
-		return -ENOMEM;
-
 	for (i = 0; i < num_pages; i++) {
-		msi_page[i].phys = start;
-		msi_page[i].iova = start;
-		INIT_LIST_HEAD(&msi_page[i].list);
-		list_add(&msi_page[i].list, &cookie->msi_page_list);
+		msi_page = kmalloc(sizeof(*msi_page), GFP_KERNEL);
+		if (!msi_page)
+			return -ENOMEM;
+
+		msi_page->phys = start;
+		msi_page->iova = start;
+		INIT_LIST_HEAD(&msi_page->list);
+		list_add(&msi_page->list, &cookie->msi_page_list);
 		start += iovad->granule;
 	}
 
@@ -1150,7 +1149,7 @@
 		if (msi_page->phys == msi_addr)
 			return msi_page;
 
-	msi_page = kzalloc(sizeof(*msi_page), GFP_ATOMIC);
+	msi_page = kzalloc(sizeof(*msi_page), GFP_KERNEL);
 	if (!msi_page)
 		return NULL;
 
@@ -1178,25 +1177,22 @@
 {
 	struct device *dev = msi_desc_to_dev(desc);
 	struct iommu_domain *domain = iommu_get_domain_for_dev(dev);
-	struct iommu_dma_cookie *cookie;
 	struct iommu_dma_msi_page *msi_page;
-	unsigned long flags;
+	static DEFINE_MUTEX(msi_prepare_lock); /* see below */
 
 	if (!domain || !domain->iova_cookie) {
 		desc->iommu_cookie = NULL;
 		return 0;
 	}
 
-	cookie = domain->iova_cookie;
-
 	/*
-	 * We disable IRQs to rule out a possible inversion against
-	 * irq_desc_lock if, say, someone tries to retarget the affinity
-	 * of an MSI from within an IPI handler.
+	 * In fact the whole prepare operation should already be serialised by
+	 * irq_domain_mutex further up the callchain, but that's pretty subtle
+	 * on its own, so consider this locking as failsafe documentation...
 	 */
-	spin_lock_irqsave(&cookie->msi_lock, flags);
+	mutex_lock(&msi_prepare_lock);
 	msi_page = iommu_dma_get_msi_page(dev, msi_addr, domain);
-	spin_unlock_irqrestore(&cookie->msi_lock, flags);
+	mutex_unlock(&msi_prepare_lock);
 
 	msi_desc_set_iommu_cookie(desc, msi_page);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/dmar.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/dmar.c
@@ -28,6 +28,7 @@
 #include <linux/slab.h>
 #include <linux/iommu.h>
 #include <linux/numa.h>
+#include <linux/limits.h>
 #include <asm/irq_remapping.h>
 #include <asm/iommu_table.h>
 
@@ -128,6 +129,13 @@
 
 	BUG_ON(dev->is_virtfn);
 
+	/*
+	 * Ignore devices that have a domain number higher than what can
+	 * be looked up in DMAR, e.g. VMD subdevices with domain 0x10000
+	 */
+	if (pci_domain_nr(dev->bus) > U16_MAX)
+		return NULL;
+
 	/* Only generate path[] for device addition event */
 	if (event == BUS_NOTIFY_ADD_DEVICE)
 		for (tmp = dev; tmp; tmp = tmp->bus->self)
@@ -363,7 +371,8 @@
 {
 	struct dmar_drhd_unit *dmaru;
 
-	list_for_each_entry_rcu(dmaru, &dmar_drhd_units, list)
+	list_for_each_entry_rcu(dmaru, &dmar_drhd_units, list,
+				dmar_rcu_check())
 		if (dmaru->segment == drhd->segment &&
 		    dmaru->reg_base_addr == drhd->address)
 			return dmaru;
@@ -440,12 +449,13 @@
 
 	/* Check for NUL termination within the designated length */
 	if (strnlen(andd->device_name, header->length - 8) == header->length - 8) {
-		WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND,
+		pr_warn(FW_BUG
 			   "Your BIOS is broken; ANDD object name is not NUL-terminated\n"
 			   "BIOS vendor: %s; Ver: %s; Product Version: %s\n",
 			   dmi_get_system_info(DMI_BIOS_VENDOR),
 			   dmi_get_system_info(DMI_BIOS_VERSION),
 			   dmi_get_system_info(DMI_PRODUCT_VERSION));
+		add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
 		return -EINVAL;
 	}
 	pr_info("ANDD device: %x name: %s\n", andd->device_number,
@@ -471,14 +481,14 @@
 			return 0;
 		}
 	}
-	WARN_TAINT(
-		1, TAINT_FIRMWARE_WORKAROUND,
+	pr_warn(FW_BUG
 		"Your BIOS is broken; RHSA refers to non-existent DMAR unit at %llx\n"
 		"BIOS vendor: %s; Ver: %s; Product Version: %s\n",
-		drhd->reg_base_addr,
+		rhsa->base_address,
 		dmi_get_system_info(DMI_BIOS_VENDOR),
 		dmi_get_system_info(DMI_BIOS_VERSION),
 		dmi_get_system_info(DMI_PRODUCT_VERSION));
+	add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
 
 	return 0;
 }
@@ -827,14 +837,14 @@
 
 static void warn_invalid_dmar(u64 addr, const char *message)
 {
-	WARN_TAINT_ONCE(
-		1, TAINT_FIRMWARE_WORKAROUND,
+	pr_warn_once(FW_BUG
 		"Your BIOS is broken; DMAR reported at address %llx%s!\n"
 		"BIOS vendor: %s; Ver: %s; Product Version: %s\n",
 		addr, message,
 		dmi_get_system_info(DMI_BIOS_VENDOR),
 		dmi_get_system_info(DMI_BIOS_VERSION),
 		dmi_get_system_info(DMI_PRODUCT_VERSION));
+	add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
 }
 
 static int __ref
@@ -888,7 +898,8 @@
 	if (!ret)
 		ret = dmar_walk_dmar_table((struct acpi_table_dmar *)dmar_tbl,
 					   &validate_drhd_cb);
-	if (!ret && !no_iommu && !iommu_detected && !dmar_disabled) {
+	if (!ret && !no_iommu && !iommu_detected &&
+	    (!dmar_disabled || dmar_platform_optin())) {
 		iommu_detected = 1;
 		/* Make sure ACS will be enabled */
 		pci_request_acs();
@@ -1009,8 +1020,8 @@
 {
 	struct intel_iommu *iommu;
 	u32 ver, sts;
-	int agaw = 0;
-	int msagaw = 0;
+	int agaw = -1;
+	int msagaw = -1;
 	int err;
 
 	if (!drhd->reg_base_addr) {
@@ -1035,17 +1046,28 @@
 	}
 
 	err = -EINVAL;
-	agaw = iommu_calculate_agaw(iommu);
-	if (agaw < 0) {
-		pr_err("Cannot get a valid agaw for iommu (seq_id = %d)\n",
-			iommu->seq_id);
-		goto err_unmap;
-	}
-	msagaw = iommu_calculate_max_sagaw(iommu);
-	if (msagaw < 0) {
-		pr_err("Cannot get a valid max agaw for iommu (seq_id = %d)\n",
-			iommu->seq_id);
-		goto err_unmap;
+	if (cap_sagaw(iommu->cap) == 0) {
+		pr_info("%s: No supported address widths. Not attempting DMA translation.\n",
+			iommu->name);
+		drhd->ignored = 1;
+	}
+
+	if (!drhd->ignored) {
+		agaw = iommu_calculate_agaw(iommu);
+		if (agaw < 0) {
+			pr_err("Cannot get a valid agaw for iommu (seq_id = %d)\n",
+			       iommu->seq_id);
+			drhd->ignored = 1;
+		}
+	}
+	if (!drhd->ignored) {
+		msagaw = iommu_calculate_max_sagaw(iommu);
+		if (msagaw < 0) {
+			pr_err("Cannot get a valid max agaw for iommu (seq_id = %d)\n",
+			       iommu->seq_id);
+			drhd->ignored = 1;
+			agaw = -1;
+		}
 	}
 	iommu->agaw = agaw;
 	iommu->msagaw = msagaw;
@@ -1072,7 +1094,12 @@
 
 	raw_spin_lock_init(&iommu->register_lock);
 
-	if (intel_iommu_enabled) {
+	/*
+	 * This is only for hotplug; at boot time intel_iommu_enabled won't
+	 * be set yet. When intel_iommu_init() runs, it registers the units
+	 * present at boot time, then sets intel_iommu_enabled.
+	 */
+	if (intel_iommu_enabled && !drhd->ignored) {
 		err = iommu_device_sysfs_add(&iommu->iommu, NULL,
 					     intel_iommu_groups,
 					     "%s", iommu->name);
@@ -1087,6 +1114,7 @@
 	}
 
 	drhd->iommu = iommu;
+	iommu->drhd = drhd;
 
 	return 0;
 
@@ -1101,7 +1129,7 @@
 
 static void free_iommu(struct intel_iommu *iommu)
 {
-	if (intel_iommu_enabled) {
+	if (intel_iommu_enabled && !iommu->drhd->ignored) {
 		iommu_device_unregister(&iommu->iommu);
 		iommu_device_sysfs_remove(&iommu->iommu);
 	}
@@ -1351,7 +1379,6 @@
 	struct qi_desc desc;
 
 	if (mask) {
-		WARN_ON_ONCE(addr & ((1ULL << (VTD_PAGE_SHIFT + mask)) - 1));
 		addr |= (1ULL << (VTD_PAGE_SHIFT + mask - 1)) - 1;
 		desc.qw1 = QI_DEV_IOTLB_ADDR(addr) | QI_DEV_IOTLB_SIZE;
 	} else
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/exynos-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/exynos-iommu.c
@@ -1299,13 +1299,17 @@
 		return -ENODEV;
 
 	data = platform_get_drvdata(sysmmu);
-	if (!data)
+	if (!data) {
+		put_device(&sysmmu->dev);
 		return -ENODEV;
+	}
 
 	if (!owner) {
 		owner = kzalloc(sizeof(*owner), GFP_KERNEL);
-		if (!owner)
+		if (!owner) {
+			put_device(&sysmmu->dev);
 			return -ENOMEM;
+		}
 
 		INIT_LIST_HEAD(&owner->controllers);
 		mutex_init(&owner->rpm_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/hyperv-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/hyperv-iommu.c
@@ -155,7 +155,10 @@
 				0, IOAPIC_REMAPPING_ENTRY, fn,
 				&hyperv_ir_domain_ops, NULL);
 
-	irq_domain_free_fwnode(fn);
+	if (!ioapic_ir_domain) {
+		irq_domain_free_fwnode(fn);
+		return -ENOMEM;
+	}
 
 	/*
 	 * Hyper-V doesn't provide irq remapping function for
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/intel-iommu-debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/intel-iommu-debugfs.c
@@ -32,38 +32,42 @@
 
 #define IOMMU_REGSET_ENTRY(_reg_)					\
 	{ DMAR_##_reg_##_REG, __stringify(_reg_) }
-static const struct iommu_regset iommu_regs[] = {
+
+static const struct iommu_regset iommu_regs_32[] = {
 	IOMMU_REGSET_ENTRY(VER),
-	IOMMU_REGSET_ENTRY(CAP),
-	IOMMU_REGSET_ENTRY(ECAP),
 	IOMMU_REGSET_ENTRY(GCMD),
 	IOMMU_REGSET_ENTRY(GSTS),
-	IOMMU_REGSET_ENTRY(RTADDR),
-	IOMMU_REGSET_ENTRY(CCMD),
 	IOMMU_REGSET_ENTRY(FSTS),
 	IOMMU_REGSET_ENTRY(FECTL),
 	IOMMU_REGSET_ENTRY(FEDATA),
 	IOMMU_REGSET_ENTRY(FEADDR),
 	IOMMU_REGSET_ENTRY(FEUADDR),
-	IOMMU_REGSET_ENTRY(AFLOG),
 	IOMMU_REGSET_ENTRY(PMEN),
 	IOMMU_REGSET_ENTRY(PLMBASE),
 	IOMMU_REGSET_ENTRY(PLMLIMIT),
+	IOMMU_REGSET_ENTRY(ICS),
+	IOMMU_REGSET_ENTRY(PRS),
+	IOMMU_REGSET_ENTRY(PECTL),
+	IOMMU_REGSET_ENTRY(PEDATA),
+	IOMMU_REGSET_ENTRY(PEADDR),
+	IOMMU_REGSET_ENTRY(PEUADDR),
+};
+
+static const struct iommu_regset iommu_regs_64[] = {
+	IOMMU_REGSET_ENTRY(CAP),
+	IOMMU_REGSET_ENTRY(ECAP),
+	IOMMU_REGSET_ENTRY(RTADDR),
+	IOMMU_REGSET_ENTRY(CCMD),
+	IOMMU_REGSET_ENTRY(AFLOG),
 	IOMMU_REGSET_ENTRY(PHMBASE),
 	IOMMU_REGSET_ENTRY(PHMLIMIT),
 	IOMMU_REGSET_ENTRY(IQH),
 	IOMMU_REGSET_ENTRY(IQT),
 	IOMMU_REGSET_ENTRY(IQA),
-	IOMMU_REGSET_ENTRY(ICS),
 	IOMMU_REGSET_ENTRY(IRTA),
 	IOMMU_REGSET_ENTRY(PQH),
 	IOMMU_REGSET_ENTRY(PQT),
 	IOMMU_REGSET_ENTRY(PQA),
-	IOMMU_REGSET_ENTRY(PRS),
-	IOMMU_REGSET_ENTRY(PECTL),
-	IOMMU_REGSET_ENTRY(PEDATA),
-	IOMMU_REGSET_ENTRY(PEADDR),
-	IOMMU_REGSET_ENTRY(PEUADDR),
 	IOMMU_REGSET_ENTRY(MTRRCAP),
 	IOMMU_REGSET_ENTRY(MTRRDEF),
 	IOMMU_REGSET_ENTRY(MTRR_FIX64K_00000),
@@ -126,10 +130,16 @@
 		 * by adding the offset to the pointer (virtual address).
 		 */
 		raw_spin_lock_irqsave(&iommu->register_lock, flag);
-		for (i = 0 ; i < ARRAY_SIZE(iommu_regs); i++) {
-			value = dmar_readq(iommu->reg + iommu_regs[i].offset);
+		for (i = 0 ; i < ARRAY_SIZE(iommu_regs_32); i++) {
+			value = dmar_readl(iommu->reg + iommu_regs_32[i].offset);
 			seq_printf(m, "%-16s\t0x%02x\t\t0x%016llx\n",
-				   iommu_regs[i].regs, iommu_regs[i].offset,
+				   iommu_regs_32[i].regs, iommu_regs_32[i].offset,
+				   value);
+		}
+		for (i = 0 ; i < ARRAY_SIZE(iommu_regs_64); i++) {
+			value = dmar_readq(iommu->reg + iommu_regs_64[i].offset);
+			seq_printf(m, "%-16s\t0x%02x\t\t0x%016llx\n",
+				   iommu_regs_64[i].regs, iommu_regs_64[i].offset,
 				   value);
 		}
 		raw_spin_unlock_irqrestore(&iommu->register_lock, flag);
@@ -271,9 +281,16 @@
 {
 	struct dmar_drhd_unit *drhd;
 	struct intel_iommu *iommu;
+	u32 sts;
 
 	rcu_read_lock();
 	for_each_active_iommu(iommu, drhd) {
+		sts = dmar_readl(iommu->reg + DMAR_GSTS_REG);
+		if (!(sts & DMA_GSTS_TES)) {
+			seq_printf(m, "DMA Remapping is not enabled on %s\n",
+				   iommu->name);
+			continue;
+		}
 		root_tbl_walk(m, iommu);
 		seq_putc(m, '\n');
 	}
@@ -343,6 +360,7 @@
 	struct dmar_drhd_unit *drhd;
 	struct intel_iommu *iommu;
 	u64 irta;
+	u32 sts;
 
 	rcu_read_lock();
 	for_each_active_iommu(iommu, drhd) {
@@ -352,7 +370,8 @@
 		seq_printf(m, "Remapped Interrupt supported on IOMMU: %s\n",
 			   iommu->name);
 
-		if (iommu->ir_table) {
+		sts = dmar_readl(iommu->reg + DMAR_GSTS_REG);
+		if (iommu->ir_table && (sts & DMA_GSTS_IRES)) {
 			irta = virt_to_phys(iommu->ir_table->base);
 			seq_printf(m, " IR table address:%llx\n", irta);
 			ir_tbl_remap_entry_show(m, iommu);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/intel-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/intel-iommu.c
@@ -123,29 +123,29 @@
 	return (level - 1) * LEVEL_STRIDE;
 }
 
-static inline int pfn_level_offset(unsigned long pfn, int level)
+static inline int pfn_level_offset(u64 pfn, int level)
 {
 	return (pfn >> level_to_offset_bits(level)) & LEVEL_MASK;
 }
 
-static inline unsigned long level_mask(int level)
+static inline u64 level_mask(int level)
 {
-	return -1UL << level_to_offset_bits(level);
+	return -1ULL << level_to_offset_bits(level);
 }
 
-static inline unsigned long level_size(int level)
+static inline u64 level_size(int level)
 {
-	return 1UL << level_to_offset_bits(level);
+	return 1ULL << level_to_offset_bits(level);
 }
 
-static inline unsigned long align_to_level(unsigned long pfn, int level)
+static inline u64 align_to_level(u64 pfn, int level)
 {
 	return (pfn + level_size(level) - 1) & level_mask(level);
 }
 
 static inline unsigned long lvl_to_nr_pages(unsigned int lvl)
 {
-	return  1 << min_t(int, (lvl - 1) * LEVEL_STRIDE, MAX_AGAW_PFN_WIDTH);
+	return 1UL << min_t(int, (lvl - 1) * LEVEL_STRIDE, MAX_AGAW_PFN_WIDTH);
 }
 
 /* VT-d pages must always be _smaller_ than MM pages. Otherwise things
@@ -179,7 +179,7 @@
  * (used when kernel is launched w/ TXT)
  */
 static int force_on = 0;
-int intel_iommu_tboot_noforce;
+static int intel_iommu_tboot_noforce;
 static int no_platform_optin;
 
 #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry))
@@ -611,6 +611,12 @@
 	return g_iommus[iommu_id];
 }
 
+static inline bool iommu_paging_structure_coherency(struct intel_iommu *iommu)
+{
+	return sm_supported(iommu) ?
+			ecap_smpwc(iommu->ecap) : ecap_coherent(iommu->ecap);
+}
+
 static void domain_update_iommu_coherency(struct dmar_domain *domain)
 {
 	struct dmar_drhd_unit *drhd;
@@ -622,7 +628,7 @@
 
 	for_each_domain_iommu(i, domain) {
 		found = true;
-		if (!ecap_coherent(g_iommus[i]->ecap)) {
+		if (!iommu_paging_structure_coherency(g_iommus[i])) {
 			domain->iommu_coherency = 0;
 			break;
 		}
@@ -633,7 +639,7 @@
 	/* No hardware attached; use lowest common denominator */
 	rcu_read_lock();
 	for_each_active_iommu(iommu, drhd) {
-		if (!ecap_coherent(iommu->ecap)) {
+		if (!iommu_paging_structure_coherency(iommu)) {
 			domain->iommu_coherency = 0;
 			break;
 		}
@@ -732,6 +738,11 @@
 	return dev->archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO;
 }
 
+static bool attach_deferred(struct device *dev)
+{
+	return dev->archdata.iommu == DEFER_DEVICE_DOMAIN_INFO;
+}
+
 /**
  * is_downstream_to_pci_bridge - test if a device belongs to the PCI
  *				 sub-hierarchy of a candidate PCI-PCI bridge
@@ -2090,7 +2101,8 @@
 
 	context_set_fault_enable(context);
 	context_set_present(context);
-	domain_flush_cache(domain, context, sizeof(*context));
+	if (!ecap_coherent(iommu->ecap))
+		clflush_cache_range(context, sizeof(*context));
 
 	/*
 	 * It's a non-present to present mapping. If hardware doesn't cache
@@ -2420,31 +2432,31 @@
 	spin_unlock_irqrestore(&device_domain_lock, flags);
 }
 
-/*
- * find_domain
- * Note: we use struct device->archdata.iommu stores the info
- */
 static struct dmar_domain *find_domain(struct device *dev)
 {
 	struct device_domain_info *info;
 
-	if (unlikely(dev->archdata.iommu == DEFER_DEVICE_DOMAIN_INFO)) {
-		struct iommu_domain *domain;
-
-		dev->archdata.iommu = NULL;
-		domain = iommu_get_domain_for_dev(dev);
-		if (domain)
-			intel_iommu_attach_device(domain, dev);
-	}
+	if (unlikely(attach_deferred(dev) || iommu_dummy(dev)))
+		return NULL;
 
 	/* No lock here, assumes no domain exit in normal case */
 	info = dev->archdata.iommu;
-
 	if (likely(info))
 		return info->domain;
+
 	return NULL;
 }
 
+static void do_deferred_attach(struct device *dev)
+{
+	struct iommu_domain *domain;
+
+	dev->archdata.iommu = NULL;
+	domain = iommu_get_domain_for_dev(dev);
+	if (domain)
+		intel_iommu_attach_device(domain, dev);
+}
+
 static inline struct device_domain_info *
 dmar_search_domain_by_dev_info(int segment, int bus, int devfn)
 {
@@ -2553,14 +2565,14 @@
 		}
 
 		/* Setup the PASID entry for requests without PASID: */
-		spin_lock(&iommu->lock);
+		spin_lock_irqsave(&iommu->lock, flags);
 		if (hw_pass_through && domain_type_is_si(domain))
 			ret = intel_pasid_setup_pass_through(iommu, domain,
 					dev, PASID_RID2PASID);
 		else
 			ret = intel_pasid_setup_second_level(iommu, domain,
 					dev, PASID_RID2PASID);
-		spin_unlock(&iommu->lock);
+		spin_unlock_irqrestore(&iommu->lock, flags);
 		if (ret) {
 			dev_err(dev, "Setup RID2PASID failed\n");
 			dmar_remove_one_dev_info(dev);
@@ -2762,10 +2774,8 @@
 	}
 
 	/*
-	 * Normally we use DMA domains for devices which have RMRRs. But we
-	 * loose this requirement for graphic and usb devices. Identity map
-	 * the RMRRs for graphic and USB devices so that they could use the
-	 * si_domain.
+	 * Identity map the RMRRs so that devices with RMRRs could also use
+	 * the si_domain.
 	 */
 	for_each_rmrr_units(rmrr) {
 		for_each_active_dev_scope(rmrr->devices, rmrr->devices_cnt,
@@ -2773,9 +2783,6 @@
 			unsigned long long start = rmrr->base_address;
 			unsigned long long end = rmrr->end_address;
 
-			if (device_is_rmrr_locked(dev))
-				continue;
-
 			if (WARN_ON(end < start ||
 				    end >> agaw_to_width(si_domain->agaw)))
 				continue;
@@ -2794,7 +2801,7 @@
 	struct device_domain_info *info;
 
 	info = dev->archdata.iommu;
-	if (info && info != DUMMY_DEVICE_DOMAIN_INFO && info != DEFER_DEVICE_DOMAIN_INFO)
+	if (info)
 		return (info->domain == si_domain);
 
 	return 0;
@@ -2914,9 +2921,6 @@
 	if (dev_is_pci(dev)) {
 		struct pci_dev *pdev = to_pci_dev(dev);
 
-		if (device_is_rmrr_locked(dev))
-			return IOMMU_DOMAIN_DMA;
-
 		/*
 		 * Prevent any device marked as untrusted from getting
 		 * placed into the statically identity mapping domain.
@@ -2954,9 +2958,6 @@
 				return IOMMU_DOMAIN_DMA;
 		} else if (pci_pcie_type(pdev) == PCI_EXP_TYPE_PCI_BRIDGE)
 			return IOMMU_DOMAIN_DMA;
-	} else {
-		if (device_has_rmrr(dev))
-			return IOMMU_DOMAIN_DMA;
 	}
 
 	return (iommu_identity_mapping & IDENTMAP_ALL) ?
@@ -3289,6 +3290,12 @@
 
 		if (!ecap_pass_through(iommu->ecap))
 			hw_pass_through = 0;
+
+		if (!intel_iommu_strict && cap_caching_mode(iommu->cap)) {
+			pr_info("Disable batched IOTLB flush due to virtualization");
+			intel_iommu_strict = 1;
+		}
+
 #ifdef CONFIG_INTEL_IOMMU_SVM
 		if (pasid_supported(iommu))
 			intel_svm_init(iommu);
@@ -3401,7 +3408,8 @@
 	iova_pfn = alloc_iova_fast(&domain->iovad, nrpages,
 				   IOVA_PFN(dma_mask), true);
 	if (unlikely(!iova_pfn)) {
-		dev_err(dev, "Allocating %ld-page iova failed", nrpages);
+		dev_err_once(dev, "Allocating %ld-page iova failed\n",
+			     nrpages);
 		return 0;
 	}
 
@@ -3464,6 +3472,9 @@
 	if (iommu_dummy(dev))
 		return false;
 
+	if (unlikely(attach_deferred(dev)))
+		do_deferred_attach(dev);
+
 	ret = identity_mapping(dev);
 	if (ret) {
 		u64 dma_mask = *dev->dma_mask;
@@ -3827,7 +3838,11 @@
 	int prot = 0;
 	int ret;
 
+	if (unlikely(attach_deferred(dev)))
+		do_deferred_attach(dev);
+
 	domain = find_domain(dev);
+
 	if (WARN_ON(dir == DMA_NONE || !domain))
 		return DMA_MAPPING_ERROR;
 
@@ -4128,10 +4143,11 @@
 
 	/* we know that the this iommu should be at offset 0xa000 from vtbar */
 	drhd = dmar_find_matched_drhd_unit(pdev);
-	if (WARN_TAINT_ONCE(!drhd || drhd->reg_base_addr - vtbar != 0xa000,
-			    TAINT_FIRMWARE_WORKAROUND,
-			    "BIOS assigned incorrect VT-d unit for Intel(R) QuickData Technology device\n"))
+	if (!drhd || drhd->reg_base_addr - vtbar != 0xa000) {
+		pr_warn_once(FW_BUG "BIOS assigned incorrect VT-d unit for Intel(R) QuickData Technology device\n");
+		add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
 		pdev->dev.archdata.iommu = DUMMY_DEVICE_DOMAIN_INFO;
+	}
 }
 DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_SNB, quirk_ioat_snb_local_iommu);
 
@@ -4344,7 +4360,8 @@
 	struct dmar_atsr_unit *atsru;
 	struct acpi_dmar_atsr *tmp;
 
-	list_for_each_entry_rcu(atsru, &dmar_atsr_units, list) {
+	list_for_each_entry_rcu(atsru, &dmar_atsr_units, list,
+				dmar_rcu_check()) {
 		tmp = (struct acpi_dmar_atsr *)atsru->hdr;
 		if (atsr->segment != tmp->segment)
 			continue;
@@ -4928,7 +4945,8 @@
 	 * Intel IOMMU is required for a TXT/tboot launch or platform
 	 * opt in, so enforce that.
 	 */
-	force_on = tboot_force_iommu() || platform_optin_force_iommu();
+	force_on = (!intel_iommu_tboot_noforce && tboot_force_iommu()) ||
+		    platform_optin_force_iommu();
 
 	if (iommu_init_mempool()) {
 		if (force_on)
@@ -4959,6 +4977,9 @@
 
 	down_write(&dmar_global_lock);
 
+	if (!no_iommu)
+		intel_iommu_debugfs_init();
+
 	if (no_iommu || dmar_disabled) {
 		/*
 		 * We exit the function here to ensure IOMMU's remapping and
@@ -5022,6 +5043,7 @@
 
 	init_iommu_pm_ops();
 
+	down_read(&dmar_global_lock);
 	for_each_active_iommu(iommu, drhd) {
 		iommu_device_sysfs_add(&iommu->iommu, NULL,
 				       intel_iommu_groups,
@@ -5029,6 +5051,7 @@
 		iommu_device_set_ops(&iommu->iommu, &intel_iommu_ops);
 		iommu_device_register(&iommu->iommu);
 	}
+	up_read(&dmar_global_lock);
 
 	bus_set_iommu(&pci_bus_type, &intel_iommu_ops);
 	if (si_domain && !hw_pass_through)
@@ -5039,7 +5062,6 @@
 	down_read(&dmar_global_lock);
 	if (probe_acpi_namespace_devices())
 		pr_warn("ACPI name space devices didn't probe correctly\n");
-	up_read(&dmar_global_lock);
 
 	/* Finally, we enable the DMA remapping hardware. */
 	for_each_iommu(iommu, drhd) {
@@ -5048,10 +5070,11 @@
 
 		iommu_disable_protect_mem_regions(iommu);
 	}
+	up_read(&dmar_global_lock);
+
 	pr_info("Intel(R) Virtualization Technology for Directed I/O\n");
 
 	intel_iommu_enabled = 1;
-	intel_iommu_debugfs_init();
 
 	return 0;
 
@@ -5132,7 +5155,8 @@
 
 	spin_lock_irqsave(&device_domain_lock, flags);
 	info = dev->archdata.iommu;
-	if (info)
+	if (info && info != DEFER_DEVICE_DOMAIN_INFO
+	    && info != DUMMY_DEVICE_DOMAIN_INFO)
 		__dmar_remove_one_dev_info(info);
 	spin_unlock_irqrestore(&device_domain_lock, flags);
 }
@@ -5447,9 +5471,6 @@
 	int prot = 0;
 	int ret;
 
-	if (dmar_domain->flags & DOMAIN_FLAG_LOSE_CHILDREN)
-		return -EINVAL;
-
 	if (iommu_prot & IOMMU_READ)
 		prot |= DMA_PTE_READ;
 	if (iommu_prot & IOMMU_WRITE)
@@ -5492,8 +5513,6 @@
 	/* Cope with horrid API which requires us to unmap more than the
 	   size argument if it happens to be a large-page mapping. */
 	BUG_ON(!pfn_to_dma_pte(dmar_domain, iova >> VTD_PAGE_SHIFT, &level));
-	if (dmar_domain->flags & DOMAIN_FLAG_LOSE_CHILDREN)
-		return 0;
 
 	if (size < VTD_PAGE_SIZE << level_to_offset_bits(level))
 		size = VTD_PAGE_SIZE << level_to_offset_bits(level);
@@ -5525,12 +5544,11 @@
 	int level = 0;
 	u64 phys = 0;
 
-	if (dmar_domain->flags & DOMAIN_FLAG_LOSE_CHILDREN)
-		return 0;
-
 	pte = pfn_to_dma_pte(dmar_domain, iova >> VTD_PAGE_SHIFT, &level);
-	if (pte)
-		phys = dma_pte_addr(pte);
+	if (pte && dma_pte_present(pte))
+		phys = dma_pte_addr(pte) +
+			(iova & (BIT_MASK(level_to_offset_bits(level) +
+						VTD_PAGE_SHIFT) - 1));
 
 	return phys;
 }
@@ -5601,8 +5619,10 @@
 
 	group = iommu_group_get_for_dev(dev);
 
-	if (IS_ERR(group))
-		return PTR_ERR(group);
+	if (IS_ERR(group)) {
+		ret = PTR_ERR(group);
+		goto unlink;
+	}
 
 	iommu_group_put(group);
 
@@ -5628,7 +5648,8 @@
 				if (!get_private_domain_for_dev(dev)) {
 					dev_warn(dev,
 						 "Failed to get a private domain.\n");
-					return -ENOMEM;
+					ret = -ENOMEM;
+					goto unlink;
 				}
 
 				dev_info(dev,
@@ -5643,6 +5664,10 @@
 	}
 
 	return 0;
+
+unlink:
+	iommu_device_unlink(&iommu->iommu, dev);
+	return ret;
 }
 
 static void intel_iommu_remove_device(struct device *dev)
@@ -5705,8 +5730,8 @@
 		struct pci_dev *pdev = to_pci_dev(device);
 
 		if ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) {
-			reg = iommu_alloc_resv_region(0, 1UL << 24, 0,
-						      IOMMU_RESV_DIRECT);
+			reg = iommu_alloc_resv_region(0, 1UL << 24, prot,
+						   IOMMU_RESV_DIRECT_RELAXABLE);
 			if (reg)
 				list_add_tail(&reg->list, head);
 		}
@@ -5794,6 +5819,13 @@
 	WARN_ON_ONCE(!reserve_iova(&dmar_domain->iovad, start, end));
 }
 
+static struct iommu_group *intel_iommu_device_group(struct device *dev)
+{
+	if (dev_is_pci(dev))
+		return pci_device_group(dev);
+	return generic_device_group(dev);
+}
+
 #ifdef CONFIG_INTEL_IOMMU_SVM
 struct intel_iommu *intel_svm_device_to_iommu(struct device *dev)
 {
@@ -5946,7 +5978,24 @@
 static bool intel_iommu_is_attach_deferred(struct iommu_domain *domain,
 					   struct device *dev)
 {
-	return dev->archdata.iommu == DEFER_DEVICE_DOMAIN_INFO;
+	return attach_deferred(dev);
+}
+
+/*
+ * Check that the device does not live on an external facing PCI port that is
+ * marked as untrusted. Such devices should not be able to apply quirks and
+ * thus not be able to bypass the IOMMU restrictions.
+ */
+static bool risky_device(struct pci_dev *pdev)
+{
+	if (pdev->untrusted) {
+		pci_info(pdev,
+			 "Skipping IOMMU quirk for dev [%04X:%04X] on untrusted PCI link\n",
+			 pdev->vendor, pdev->device);
+		pci_info(pdev, "Please check with your BIOS/Platform vendor about this\n");
+		return true;
+	}
+	return false;
 }
 
 const struct iommu_ops intel_iommu_ops = {
@@ -5966,7 +6015,7 @@
 	.get_resv_regions	= intel_iommu_get_resv_regions,
 	.put_resv_regions	= intel_iommu_put_resv_regions,
 	.apply_resv_region	= intel_iommu_apply_resv_region,
-	.device_group		= pci_device_group,
+	.device_group		= intel_iommu_device_group,
 	.dev_has_feat		= intel_iommu_dev_has_feat,
 	.dev_feat_enabled	= intel_iommu_dev_feat_enabled,
 	.dev_enable_feat	= intel_iommu_dev_enable_feat,
@@ -5977,6 +6026,9 @@
 
 static void quirk_iommu_igfx(struct pci_dev *dev)
 {
+	if (risky_device(dev))
+		return;
+
 	pci_info(dev, "Disabling IOMMU for graphics on this chipset\n");
 	dmar_map_gfx = 0;
 }
@@ -6018,6 +6070,9 @@
 
 static void quirk_iommu_rwbf(struct pci_dev *dev)
 {
+	if (risky_device(dev))
+		return;
+
 	/*
 	 * Mobile 4 Series Chipset neglects to set RWBF capability,
 	 * but needs it. Same seems to hold for the desktop versions.
@@ -6048,6 +6103,9 @@
 {
 	unsigned short ggc;
 
+	if (risky_device(dev))
+		return;
+
 	if (pci_read_config_word(dev, GGC, &ggc))
 		return;
 
@@ -6081,6 +6139,12 @@
 	pdev = pci_get_device(PCI_VENDOR_ID_INTEL, 0x3a3e, NULL);
 	if (!pdev)
 		return;
+
+	if (risky_device(pdev)) {
+		pci_dev_put(pdev);
+		return;
+	}
+
 	pci_dev_put(pdev);
 
 	/* System Management Registers. Might be hidden, in which case
@@ -6090,6 +6154,11 @@
 	if (!pdev)
 		return;
 
+	if (risky_device(pdev)) {
+		pci_dev_put(pdev);
+		return;
+	}
+
 	if (pci_read_config_dword(pdev, 0x188, &vtisochctrl)) {
 		pci_dev_put(pdev);
 		return;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/intel-pasid.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/intel-pasid.c
@@ -499,8 +499,16 @@
 	}
 
 #ifdef CONFIG_X86
-	if (cpu_feature_enabled(X86_FEATURE_LA57))
-		pasid_set_flpm(pte, 1);
+	/* Both CPU and IOMMU paging mode need to match */
+	if (cpu_feature_enabled(X86_FEATURE_LA57)) {
+		if (cap_5lp_support(iommu->cap)) {
+			pasid_set_flpm(pte, 1);
+		} else {
+			pr_err("VT-d has no 5-level paging support for CPU\n");
+			pasid_clear_entry(pte);
+			return -EINVAL;
+		}
+	}
 #endif /* CONFIG_X86 */
 
 	pasid_set_domain_id(pte, did);
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/intel-svm.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/intel-svm.c
@@ -99,16 +99,14 @@
 	return 0;
 }
 
-static void intel_flush_svm_range_dev (struct intel_svm *svm, struct intel_svm_dev *sdev,
-				unsigned long address, unsigned long pages, int ih)
+static void __flush_svm_range_dev(struct intel_svm *svm,
+				  struct intel_svm_dev *sdev,
+				  unsigned long address,
+				  unsigned long pages, int ih)
 {
 	struct qi_desc desc;
 
-	/*
-	 * Do PASID granu IOTLB invalidation if page selective capability is
-	 * not available.
-	 */
-	if (pages == -1 || !cap_pgsel_inv(svm->iommu->cap)) {
+	if (pages == -1) {
 		desc.qw0 = QI_EIOTLB_PASID(svm->pasid) |
 			QI_EIOTLB_DID(sdev->did) |
 			QI_EIOTLB_GRAN(QI_GRAN_NONG_PASID) |
@@ -155,6 +153,22 @@
 	}
 }
 
+static void intel_flush_svm_range_dev(struct intel_svm *svm,
+				      struct intel_svm_dev *sdev,
+				      unsigned long address,
+				      unsigned long pages, int ih)
+{
+	unsigned long shift = ilog2(__roundup_pow_of_two(pages));
+	unsigned long align = (1ULL << (VTD_PAGE_SHIFT + shift));
+	unsigned long start = ALIGN_DOWN(address, align);
+	unsigned long end = ALIGN(address + (pages << VTD_PAGE_SHIFT), align);
+
+	while (start < end) {
+		__flush_svm_range_dev(svm, sdev, start, align >> VTD_PAGE_SHIFT, ih);
+		start += align;
+	}
+}
+
 static void intel_flush_svm_range(struct intel_svm *svm, unsigned long address,
 				unsigned long pages, int ih)
 {
@@ -321,7 +335,7 @@
 		/* Do not use PASID 0 in caching mode (virtualised IOMMU) */
 		ret = intel_pasid_alloc_id(svm,
 					   !!cap_caching_mode(iommu->cap),
-					   pasid_max - 1, GFP_KERNEL);
+					   pasid_max, GFP_KERNEL);
 		if (ret < 0) {
 			kfree(svm);
 			kfree(sdev);
@@ -506,7 +520,7 @@
 	u64 priv_data[2];
 };
 
-#define PRQ_RING_MASK ((0x1000 << PRQ_ORDER) - 0x10)
+#define PRQ_RING_MASK	((0x1000 << PRQ_ORDER) - 0x20)
 
 static bool access_error(struct vm_area_struct *vma, struct page_req_dsc *req)
 {
@@ -587,14 +601,15 @@
 		 * any faults on kernel addresses. */
 		if (!svm->mm)
 			goto bad_req;
-		/* If the mm is already defunct, don't handle faults. */
-		if (!mmget_not_zero(svm->mm))
-			goto bad_req;
 
 		/* If address is not canonical, return invalid response */
 		if (!is_canonical_address(address))
 			goto bad_req;
 
+		/* If the mm is already defunct, don't handle faults. */
+		if (!mmget_not_zero(svm->mm))
+			goto bad_req;
+
 		down_read(&svm->mm->mmap_sem);
 		vma = find_extend_vma(svm->mm, address);
 		if (!vma || address < vma->vm_start)
@@ -649,7 +664,7 @@
 			resp.qw0 = QI_PGRP_PASID(req->pasid) |
 				QI_PGRP_DID(req->rid) |
 				QI_PGRP_PASID_P(req->pasid_present) |
-				QI_PGRP_PDP(req->pasid_present) |
+				QI_PGRP_PDP(req->priv_data_present) |
 				QI_PGRP_RESP_CODE(result) |
 				QI_PGRP_RESP_TYPE;
 			resp.qw1 = QI_PGRP_IDX(req->prg_index) |
@@ -658,11 +673,10 @@
 			if (req->priv_data_present)
 				memcpy(&resp.qw2, req->priv_data,
 				       sizeof(req->priv_data));
+			resp.qw2 = 0;
+			resp.qw3 = 0;
+			qi_submit_sync(&resp, iommu);
 		}
-		resp.qw2 = 0;
-		resp.qw3 = 0;
-		qi_submit_sync(&resp, iommu);
-
 		head = (head + sizeof(*req)) & PRQ_RING_MASK;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/intel_irq_remapping.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/intel_irq_remapping.c
@@ -507,12 +507,18 @@
 
 	/* Enable interrupt-remapping */
 	iommu->gcmd |= DMA_GCMD_IRE;
-	iommu->gcmd &= ~DMA_GCMD_CFI;  /* Block compatibility-format MSIs */
 	writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
-
 	IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
 		      readl, (sts & DMA_GSTS_IRES), sts);
 
+	/* Block compatibility-format MSIs */
+	if (sts & DMA_GSTS_CFIS) {
+		iommu->gcmd &= ~DMA_GCMD_CFI;
+		writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
+		IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
+			      readl, !(sts & DMA_GSTS_CFIS), sts);
+	}
+
 	/*
 	 * With CFI clear in the Global Command register, we should be
 	 * protected from dangerous (i.e. compatibility) interrupts
@@ -563,8 +569,8 @@
 					    0, INTR_REMAP_TABLE_ENTRIES,
 					    fn, &intel_ir_domain_ops,
 					    iommu);
-	irq_domain_free_fwnode(fn);
 	if (!iommu->ir_domain) {
+		irq_domain_free_fwnode(fn);
 		pr_err("IR%d: failed to allocate irqdomain\n", iommu->seq_id);
 		goto out_free_bitmap;
 	}
@@ -628,13 +634,21 @@
 
 static void intel_teardown_irq_remapping(struct intel_iommu *iommu)
 {
+	struct fwnode_handle *fn;
+
 	if (iommu && iommu->ir_table) {
 		if (iommu->ir_msi_domain) {
+			fn = iommu->ir_msi_domain->fwnode;
+
 			irq_domain_remove(iommu->ir_msi_domain);
+			irq_domain_free_fwnode(fn);
 			iommu->ir_msi_domain = NULL;
 		}
 		if (iommu->ir_domain) {
+			fn = iommu->ir_domain->fwnode;
+
 			irq_domain_remove(iommu->ir_domain);
+			irq_domain_free_fwnode(fn);
 			iommu->ir_domain = NULL;
 		}
 		free_pages((unsigned long)iommu->ir_table->base,
@@ -1386,6 +1400,8 @@
 		irq_data = irq_domain_get_irq_data(domain, virq + i);
 		irq_cfg = irqd_cfg(irq_data);
 		if (!irq_data || !irq_cfg) {
+			if (!i)
+				kfree(data);
 			ret = -EINVAL;
 			goto out_free_data;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/iommu.c
@@ -312,8 +312,8 @@
 	list_for_each_entry_safe(iter, tmp, regions, list) {
 		phys_addr_t top_end, iter_end = iter->start + iter->length - 1;
 
-		/* no merge needed on elements of different types than @nr */
-		if (iter->type != nr->type) {
+		/* no merge needed on elements of different types than @new */
+		if (iter->type != new->type) {
 			list_move_tail(&iter->list, &stack);
 			continue;
 		}
@@ -492,7 +492,7 @@
 				   NULL, "%d", group->id);
 	if (ret) {
 		ida_simple_remove(&iommu_group_ida, group->id);
-		kfree(group);
+		kobject_put(&group->kobj);
 		return ERR_PTR(ret);
 	}
 
@@ -751,6 +751,7 @@
 	mutex_unlock(&group->mutex);
 	dev->iommu_group = NULL;
 	kobject_put(group->devices_kobj);
+	sysfs_remove_link(group->devices_kobj, device->name);
 err_free_name:
 	kfree(device->name);
 err_remove_link:
@@ -2221,13 +2222,13 @@
 		goto out;
 	}
 
-	iommu_group_create_direct_mappings(group, dev);
-
 	/* Make the domain the default for this group */
 	if (group->default_domain)
 		iommu_domain_free(group->default_domain);
 	group->default_domain = domain;
 
+	iommu_group_create_direct_mappings(group, dev);
+
 	dev_info(dev, "Using iommu %s mapping\n",
 		 type == IOMMU_DOMAIN_DMA ? "dma" : "direct");
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/iova.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/iova.c
@@ -233,7 +233,7 @@
 
 struct iova *alloc_iova_mem(void)
 {
-	return kmem_cache_alloc(iova_cache, GFP_ATOMIC);
+	return kmem_cache_zalloc(iova_cache, GFP_ATOMIC | __GFP_NOWARN);
 }
 EXPORT_SYMBOL(alloc_iova_mem);
 
@@ -811,7 +811,9 @@
 	for (i = 0 ; i < mag->size; ++i) {
 		struct iova *iova = private_find_iova(iovad, mag->pfns[i]);
 
-		BUG_ON(!iova);
+		if (WARN_ON(!iova))
+			continue;
+
 		private_free_iova(iovad, iova);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/mtk_iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/mtk_iommu.c
@@ -219,22 +219,37 @@
 static void mtk_iommu_tlb_flush_walk(unsigned long iova, size_t size,
 				     size_t granule, void *cookie)
 {
+	struct mtk_iommu_data *data = cookie;
+	unsigned long flags;
+
+	spin_lock_irqsave(&data->tlb_lock, flags);
 	mtk_iommu_tlb_add_flush_nosync(iova, size, granule, false, cookie);
 	mtk_iommu_tlb_sync(cookie);
+	spin_unlock_irqrestore(&data->tlb_lock, flags);
 }
 
 static void mtk_iommu_tlb_flush_leaf(unsigned long iova, size_t size,
 				     size_t granule, void *cookie)
 {
+	struct mtk_iommu_data *data = cookie;
+	unsigned long flags;
+
+	spin_lock_irqsave(&data->tlb_lock, flags);
 	mtk_iommu_tlb_add_flush_nosync(iova, size, granule, true, cookie);
 	mtk_iommu_tlb_sync(cookie);
+	spin_unlock_irqrestore(&data->tlb_lock, flags);
 }
 
 static void mtk_iommu_tlb_flush_page_nosync(struct iommu_iotlb_gather *gather,
 					    unsigned long iova, size_t granule,
 					    void *cookie)
 {
+	struct mtk_iommu_data *data = cookie;
+	unsigned long flags;
+
+	spin_lock_irqsave(&data->tlb_lock, flags);
 	mtk_iommu_tlb_add_flush_nosync(iova, granule, granule, true, cookie);
+	spin_unlock_irqrestore(&data->tlb_lock, flags);
 }
 
 static const struct iommu_flush_ops mtk_iommu_flush_ops = {
@@ -447,13 +462,18 @@
 
 static void mtk_iommu_flush_iotlb_all(struct iommu_domain *domain)
 {
-	mtk_iommu_tlb_sync(mtk_iommu_get_m4u_data());
+	mtk_iommu_tlb_flush_all(mtk_iommu_get_m4u_data());
 }
 
 static void mtk_iommu_iotlb_sync(struct iommu_domain *domain,
 				 struct iommu_iotlb_gather *gather)
 {
-	mtk_iommu_tlb_sync(mtk_iommu_get_m4u_data());
+	struct mtk_iommu_data *data = mtk_iommu_get_m4u_data();
+	unsigned long flags;
+
+	spin_lock_irqsave(&data->tlb_lock, flags);
+	mtk_iommu_tlb_sync(data);
+	spin_unlock_irqrestore(&data->tlb_lock, flags);
 }
 
 static phys_addr_t mtk_iommu_iova_to_phys(struct iommu_domain *domain,
@@ -733,6 +753,7 @@
 	if (ret)
 		return ret;
 
+	spin_lock_init(&data->tlb_lock);
 	list_add_tail(&data->list, &m4ulist);
 
 	if (!iommu_present(&platform_bus_type))
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/mtk_iommu.h
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/mtk_iommu.h
@@ -58,6 +58,7 @@
 	struct iommu_group		*m4u_group;
 	bool                            enable_4GB;
 	bool				tlb_flush_active;
+	spinlock_t			tlb_lock; /* lock for tlb range flush */
 
 	struct iommu_device		iommu;
 	const struct mtk_iommu_plat_data *plat_data;
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/omap-iommu-debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/omap-iommu-debug.c
@@ -98,8 +98,11 @@
 	mutex_lock(&iommu_debug_lock);
 
 	bytes = omap_iommu_dump_ctx(obj, p, count);
+	if (bytes < 0)
+		goto err;
 	bytes = simple_read_from_buffer(userbuf, count, ppos, buf, bytes);
 
+err:
 	mutex_unlock(&iommu_debug_lock);
 	kfree(buf);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/qcom_iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/qcom_iommu.c
@@ -345,21 +345,19 @@
 {
 	struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
 
-	if (WARN_ON(qcom_domain->iommu))    /* forgot to detach? */
-		return;
-
 	iommu_put_dma_cookie(domain);
 
-	/* NOTE: unmap can be called after client device is powered off,
-	 * for example, with GPUs or anything involving dma-buf.  So we
-	 * cannot rely on the device_link.  Make sure the IOMMU is on to
-	 * avoid unclocked accesses in the TLB inv path:
-	 */
-	pm_runtime_get_sync(qcom_domain->iommu->dev);
-
-	free_io_pgtable_ops(qcom_domain->pgtbl_ops);
-
-	pm_runtime_put_sync(qcom_domain->iommu->dev);
+	if (qcom_domain->iommu) {
+		/*
+		 * NOTE: unmap can be called after client device is powered
+		 * off, for example, with GPUs or anything involving dma-buf.
+		 * So we cannot rely on the device_link.  Make sure the IOMMU
+		 * is on to avoid unclocked accesses in the TLB inv path:
+		 */
+		pm_runtime_get_sync(qcom_domain->iommu->dev);
+		free_io_pgtable_ops(qcom_domain->pgtbl_ops);
+		pm_runtime_put_sync(qcom_domain->iommu->dev);
+	}
 
 	kfree(qcom_domain);
 }
@@ -405,7 +403,7 @@
 	struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
 	unsigned i;
 
-	if (!qcom_domain->iommu)
+	if (WARN_ON(!qcom_domain->iommu))
 		return;
 
 	pm_runtime_get_sync(qcom_iommu->dev);
@@ -418,8 +416,6 @@
 		ctx->domain = NULL;
 	}
 	pm_runtime_put_sync(qcom_iommu->dev);
-
-	qcom_domain->iommu = NULL;
 }
 
 static int qcom_iommu_map(struct iommu_domain *domain, unsigned long iova,
@@ -818,8 +814,11 @@
 	qcom_iommu->dev = dev;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	if (res)
+	if (res) {
 		qcom_iommu->local_base = devm_ioremap_resource(dev, res);
+		if (IS_ERR(qcom_iommu->local_base))
+			return PTR_ERR(qcom_iommu->local_base);
+	}
 
 	qcom_iommu->iface_clk = devm_clk_get(dev, "iface");
 	if (IS_ERR(qcom_iommu->iface_clk)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/rockchip-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/rockchip-iommu.c
@@ -980,13 +980,13 @@
 	if (!dma_dev)
 		return NULL;
 
-	rk_domain = devm_kzalloc(dma_dev, sizeof(*rk_domain), GFP_KERNEL);
+	rk_domain = kzalloc(sizeof(*rk_domain), GFP_KERNEL);
 	if (!rk_domain)
 		return NULL;
 
 	if (type == IOMMU_DOMAIN_DMA &&
 	    iommu_get_dma_cookie(&rk_domain->domain))
-		return NULL;
+		goto err_free_domain;
 
 	/*
 	 * rk32xx iommus use a 2 level pagetable.
@@ -1021,6 +1021,8 @@
 err_put_cookie:
 	if (type == IOMMU_DOMAIN_DMA)
 		iommu_put_dma_cookie(&rk_domain->domain);
+err_free_domain:
+	kfree(rk_domain);
 
 	return NULL;
 }
@@ -1049,6 +1051,7 @@
 
 	if (domain->type == IOMMU_DOMAIN_DMA)
 		iommu_put_dma_cookie(&rk_domain->domain);
+	kfree(rk_domain);
 }
 
 static int rk_iommu_add_device(struct device *dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/s390-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/s390-iommu.c
@@ -87,7 +87,7 @@
 				    struct device *dev)
 {
 	struct s390_domain *s390_domain = to_s390_domain(domain);
-	struct zpci_dev *zdev = to_pci_dev(dev)->sysdata;
+	struct zpci_dev *zdev = to_zpci_dev(dev);
 	struct s390_domain_device *domain_device;
 	unsigned long flags;
 	int rc;
@@ -139,7 +139,7 @@
 				     struct device *dev)
 {
 	struct s390_domain *s390_domain = to_s390_domain(domain);
-	struct zpci_dev *zdev = to_pci_dev(dev)->sysdata;
+	struct zpci_dev *zdev = to_zpci_dev(dev);
 	struct s390_domain_device *domain_device, *tmp;
 	unsigned long flags;
 	int found = 0;
@@ -169,7 +169,7 @@
 static int s390_iommu_add_device(struct device *dev)
 {
 	struct iommu_group *group = iommu_group_get_for_dev(dev);
-	struct zpci_dev *zdev = to_pci_dev(dev)->sysdata;
+	struct zpci_dev *zdev = to_zpci_dev(dev);
 
 	if (IS_ERR(group))
 		return PTR_ERR(group);
@@ -182,7 +182,7 @@
 
 static void s390_iommu_remove_device(struct device *dev)
 {
-	struct zpci_dev *zdev = to_pci_dev(dev)->sysdata;
+	struct zpci_dev *zdev = to_zpci_dev(dev);
 	struct iommu_domain *domain;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/tegra-smmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/tegra-smmu.c
@@ -159,9 +159,9 @@
 	return (addr & smmu->pfn_mask) == addr;
 }
 
-static dma_addr_t smmu_pde_to_dma(u32 pde)
+static dma_addr_t smmu_pde_to_dma(struct tegra_smmu *smmu, u32 pde)
 {
-	return pde << 12;
+	return (dma_addr_t)(pde & smmu->pfn_mask) << 12;
 }
 
 static void smmu_flush_ptc_all(struct tegra_smmu *smmu)
@@ -549,6 +549,7 @@
 				  dma_addr_t *dmap)
 {
 	unsigned int pd_index = iova_pd_index(iova);
+	struct tegra_smmu *smmu = as->smmu;
 	struct page *pt_page;
 	u32 *pd;
 
@@ -557,7 +558,7 @@
 		return NULL;
 
 	pd = page_address(as->pd);
-	*dmap = smmu_pde_to_dma(pd[pd_index]);
+	*dmap = smmu_pde_to_dma(smmu, pd[pd_index]);
 
 	return tegra_smmu_pte_offset(pt_page, iova);
 }
@@ -599,7 +600,7 @@
 	} else {
 		u32 *pd = page_address(as->pd);
 
-		*dmap = smmu_pde_to_dma(pd[pde]);
+		*dmap = smmu_pde_to_dma(smmu, pd[pde]);
 	}
 
 	return tegra_smmu_pte_offset(as->pts[pde], iova);
@@ -624,7 +625,7 @@
 	if (--as->count[pde] == 0) {
 		struct tegra_smmu *smmu = as->smmu;
 		u32 *pd = page_address(as->pd);
-		dma_addr_t pte_dma = smmu_pde_to_dma(pd[pde]);
+		dma_addr_t pte_dma = smmu_pde_to_dma(smmu, pd[pde]);
 
 		tegra_smmu_set_pde(as, iova, 0);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/iommu/virtio-iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/iommu/virtio-iommu.c
@@ -454,7 +454,7 @@
 	if (!region)
 		return -ENOMEM;
 
-	list_add(&vdev->resv_regions, &region->list);
+	list_add(&region->list, &vdev->resv_regions);
 	return 0;
 }
 
@@ -614,18 +614,20 @@
 	int ret;
 	struct viommu_domain *vdomain = to_viommu_domain(domain);
 
-	vdomain->viommu		= viommu;
-	vdomain->map_flags	= viommu->map_flags;
+	ret = ida_alloc_range(&viommu->domain_ids, viommu->first_domain,
+			      viommu->last_domain, GFP_KERNEL);
+	if (ret < 0)
+		return ret;
+
+	vdomain->id		= (unsigned int)ret;
 
 	domain->pgsize_bitmap	= viommu->pgsize_bitmap;
 	domain->geometry	= viommu->geometry;
 
-	ret = ida_alloc_range(&viommu->domain_ids, viommu->first_domain,
-			      viommu->last_domain, GFP_KERNEL);
-	if (ret >= 0)
-		vdomain->id = (unsigned int)ret;
+	vdomain->map_flags	= viommu->map_flags;
+	vdomain->viommu		= viommu;
 
-	return ret > 0 ? 0 : ret;
+	return 0;
 }
 
 static void viommu_domain_free(struct iommu_domain *domain)
--- linux-gkeop-5.4-5.4.0.orig/drivers/ipack/carriers/tpci200.c
+++ linux-gkeop-5.4-5.4.0/drivers/ipack/carriers/tpci200.c
@@ -306,6 +306,7 @@
 			"(bn 0x%X, sn 0x%X) failed to map driver user space!",
 			tpci200->info->pdev->bus->number,
 			tpci200->info->pdev->devfn);
+		res = -ENOMEM;
 		goto out_release_mem8_space;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/Kconfig
@@ -483,8 +483,6 @@
 	  If you wish to use interrupt aggregator irq resources managed by the
 	  TI System Controller, say Y here. Otherwise, say N.
 
-endmenu
-
 config SIFIVE_PLIC
 	bool "SiFive Platform-Level Interrupt Controller"
 	depends on RISCV
@@ -496,3 +494,5 @@
 	   interrupt sources are subordinate to the PLIC.
 
 	   If you don't know what to do here, say Y.
+
+endmenu
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-alpine-msi.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-alpine-msi.c
@@ -165,8 +165,7 @@
 	return 0;
 
 err_sgi:
-	while (--i >= 0)
-		irq_domain_free_irqs_parent(domain, virq, i);
+	irq_domain_free_irqs_parent(domain, virq, i - 1);
 	alpine_msix_free_sgi(priv, sgi, nr_irqs);
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-bcm7038-l1.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-bcm7038-l1.c
@@ -281,6 +281,10 @@
 		pr_err("failed to map parent interrupt %d\n", parent_irq);
 		return -EINVAL;
 	}
+
+	if (of_property_read_bool(dn, "brcm,irq-can-wake"))
+		enable_irq_wake(parent_irq);
+
 	irq_set_chained_handler_and_data(parent_irq, bcm7038_l1_irq_handle,
 					 intc);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-gic-v3-its.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-gic-v3-its.c
@@ -40,7 +40,6 @@
 #define ITS_FLAGS_CMDQ_NEEDS_FLUSHING		(1ULL << 0)
 #define ITS_FLAGS_WORKAROUND_CAVIUM_22375	(1ULL << 1)
 #define ITS_FLAGS_WORKAROUND_CAVIUM_23144	(1ULL << 2)
-#define ITS_FLAGS_SAVE_SUSPEND_STATE		(1ULL << 3)
 
 #define RDIST_FLAGS_PROPBASE_NEEDS_FLUSHING	(1 << 0)
 #define RDIST_FLAGS_RD_TABLES_PREALLOCATED	(1 << 1)
@@ -571,7 +570,7 @@
 						   struct its_cmd_desc *desc)
 {
 	its_encode_cmd(cmd, GITS_CMD_INVALL);
-	its_encode_collection(cmd, desc->its_mapc_cmd.col->col_id);
+	its_encode_collection(cmd, desc->its_invall_cmd.col->col_id);
 
 	its_fixup_cmd(cmd);
 
@@ -2581,6 +2580,7 @@
 	msi_alloc_info_t *info = args;
 	struct its_device *its_dev = info->scratchpad[0].ptr;
 	struct its_node *its = its_dev->its;
+	struct irq_data *irqd;
 	irq_hw_number_t hwirq;
 	int err;
 	int i;
@@ -2600,7 +2600,9 @@
 
 		irq_domain_set_hwirq_and_chip(domain, virq + i,
 					      hwirq + i, &its_irq_chip, its_dev);
-		irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(virq + i)));
+		irqd = irq_get_irq_data(virq + i);
+		irqd_set_single_target(irqd);
+		irqd_set_affinity_on_activate(irqd);
 		pr_debug("ID:%d pID:%d vID:%d\n",
 			 (int)(hwirq + i - its_dev->event_map.lpi_base),
 			 (int)(hwirq + i), virq + i);
@@ -2985,12 +2987,18 @@
 	return 0;
 }
 
+static int its_vpe_retrigger(struct irq_data *d)
+{
+	return !its_vpe_set_irqchip_state(d, IRQCHIP_STATE_PENDING, true);
+}
+
 static struct irq_chip its_vpe_irq_chip = {
 	.name			= "GICv4-vpe",
 	.irq_mask		= its_vpe_mask_irq,
 	.irq_unmask		= its_vpe_unmask_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
 	.irq_set_affinity	= its_vpe_set_affinity,
+	.irq_retrigger		= its_vpe_retrigger,
 	.irq_set_irqchip_state	= its_vpe_set_irqchip_state,
 	.irq_set_vcpu_affinity	= its_vpe_set_vcpu_affinity,
 };
@@ -3358,9 +3366,6 @@
 	list_for_each_entry(its, &its_nodes, entry) {
 		void __iomem *base;
 
-		if (!(its->flags & ITS_FLAGS_SAVE_SUSPEND_STATE))
-			continue;
-
 		base = its->base;
 		its->ctlr_save = readl_relaxed(base + GITS_CTLR);
 		err = its_force_quiescent(base);
@@ -3379,9 +3384,6 @@
 		list_for_each_entry_continue_reverse(its, &its_nodes, entry) {
 			void __iomem *base;
 
-			if (!(its->flags & ITS_FLAGS_SAVE_SUSPEND_STATE))
-				continue;
-
 			base = its->base;
 			writel_relaxed(its->ctlr_save, base + GITS_CTLR);
 		}
@@ -3401,9 +3403,6 @@
 		void __iomem *base;
 		int i;
 
-		if (!(its->flags & ITS_FLAGS_SAVE_SUSPEND_STATE))
-			continue;
-
 		base = its->base;
 
 		/*
@@ -3411,7 +3410,10 @@
 		 * don't restore it since writing to CBASER or BASER<n>
 		 * registers is undefined according to the GIC v3 ITS
 		 * Specification.
+		 *
+		 * Firmware resuming with the ITS enabled is terminally broken.
 		 */
+		WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
 		ret = its_force_quiescent(base);
 		if (ret) {
 			pr_err("ITS@%pa: failed to quiesce on resume: %d\n",
@@ -3678,9 +3680,6 @@
 		ctlr |= GITS_CTLR_ImDe;
 	writel_relaxed(ctlr, its->base + GITS_CTLR);
 
-	if (GITS_TYPER_HCC(typer))
-		its->flags |= ITS_FLAGS_SAVE_SUSPEND_STATE;
-
 	err = its_init_domain(handle, its);
 	if (err)
 		goto out_free_tables;
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-gic-v3.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-gic-v3.c
@@ -1801,6 +1801,7 @@
 	struct redist_region *redist_regs;
 	u32 nr_redist_regions;
 	bool single_redist;
+	int enabled_rdists;
 	u32 maint_irq;
 	int maint_irq_mode;
 	phys_addr_t vcpu_base;
@@ -1895,8 +1896,10 @@
 	 * If GICC is enabled and has valid gicr base address, then it means
 	 * GICR base is presented via GICC
 	 */
-	if ((gicc->flags & ACPI_MADT_ENABLED) && gicc->gicr_base_address)
+	if ((gicc->flags & ACPI_MADT_ENABLED) && gicc->gicr_base_address) {
+		acpi_data.enabled_rdists++;
 		return 0;
+	}
 
 	/*
 	 * It's perfectly valid firmware can pass disabled GICC entry, driver
@@ -1926,8 +1929,10 @@
 
 	count = acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
 				      gic_acpi_match_gicc, 0);
-	if (count > 0)
+	if (count > 0) {
 		acpi_data.single_redist = true;
+		count = acpi_data.enabled_rdists;
+	}
 
 	return count;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-gic.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-gic.c
@@ -329,10 +329,8 @@
 static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
 			    bool force)
 {
-	void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + (gic_irq(d) & ~3);
-	unsigned int cpu, shift = (gic_irq(d) % 4) * 8;
-	u32 val, mask, bit;
-	unsigned long flags;
+	void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + gic_irq(d);
+	unsigned int cpu;
 
 	if (!force)
 		cpu = cpumask_any_and(mask_val, cpu_online_mask);
@@ -342,13 +340,7 @@
 	if (cpu >= NR_GIC_CPU_IF || cpu >= nr_cpu_ids)
 		return -EINVAL;
 
-	gic_lock_irqsave(flags);
-	mask = 0xff << shift;
-	bit = gic_cpu_map[cpu] << shift;
-	val = readl_relaxed(reg) & ~mask;
-	writel_relaxed(val | bit, reg);
-	gic_unlock_irqrestore(flags);
-
+	writeb_relaxed(gic_cpu_map[cpu], reg);
 	irq_data_update_effective_affinity(d, cpumask_of(cpu));
 
 	return IRQ_SET_MASK_OK_DONE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-ingenic.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-ingenic.c
@@ -108,6 +108,14 @@
 		goto out_unmap_irq;
 	}
 
+	domain = irq_domain_add_legacy(node, num_chips * 32,
+				       JZ4740_IRQ_BASE, 0,
+				       &irq_domain_simple_ops, NULL);
+	if (!domain) {
+		err = -ENOMEM;
+		goto out_unmap_base;
+	}
+
 	for (i = 0; i < num_chips; i++) {
 		/* Mask all irqs */
 		writel(0xffffffff, intc->base + (i * CHIP_SIZE) +
@@ -134,14 +142,11 @@
 				       IRQ_NOPROBE | IRQ_LEVEL);
 	}
 
-	domain = irq_domain_add_legacy(node, num_chips * 32, JZ4740_IRQ_BASE, 0,
-				       &irq_domain_simple_ops, NULL);
-	if (!domain)
-		pr_warn("unable to register IRQ domain\n");
-
 	setup_irq(parent_irq, &intc_cascade_action);
 	return 0;
 
+out_unmap_base:
+	iounmap(intc->base);
 out_unmap_irq:
 	irq_dispose_mapping(parent_irq);
 out_free:
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-mbigen.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-mbigen.c
@@ -220,10 +220,16 @@
 	return 0;
 }
 
+static void mbigen_irq_domain_free(struct irq_domain *domain, unsigned int virq,
+				   unsigned int nr_irqs)
+{
+	platform_msi_domain_free(domain, virq, nr_irqs);
+}
+
 static const struct irq_domain_ops mbigen_domain_ops = {
 	.translate	= mbigen_domain_translate,
 	.alloc		= mbigen_irq_domain_alloc,
-	.free		= irq_domain_free_irqs_common,
+	.free		= mbigen_irq_domain_free,
 };
 
 static int mbigen_of_create_domain(struct platform_device *pdev,
@@ -374,6 +380,7 @@
 		.name		= "Hisilicon MBIGEN-V2",
 		.of_match_table	= mbigen_of_match,
 		.acpi_match_table = ACPI_PTR(mbigen_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe			= mbigen_device_probe,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-mips-cpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-mips-cpu.c
@@ -197,6 +197,13 @@
 		if (ret)
 			return ret;
 
+		ret = irq_domain_set_hwirq_and_chip(domain->parent, virq + i, hwirq,
+						    &mips_mt_cpu_irq_controller,
+						    NULL);
+
+		if (ret)
+			return ret;
+
 		ret = irq_set_irq_type(virq + i, IRQ_TYPE_LEVEL_HIGH);
 		if (ret)
 			return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-mtk-sysirq.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-mtk-sysirq.c
@@ -15,7 +15,7 @@
 #include <linux/spinlock.h>
 
 struct mtk_sysirq_chip_data {
-	spinlock_t lock;
+	raw_spinlock_t lock;
 	u32 nr_intpol_bases;
 	void __iomem **intpol_bases;
 	u32 *intpol_words;
@@ -37,7 +37,7 @@
 	reg_index = chip_data->which_word[hwirq];
 	offset = hwirq & 0x1f;
 
-	spin_lock_irqsave(&chip_data->lock, flags);
+	raw_spin_lock_irqsave(&chip_data->lock, flags);
 	value = readl_relaxed(base + reg_index * 4);
 	if (type == IRQ_TYPE_LEVEL_LOW || type == IRQ_TYPE_EDGE_FALLING) {
 		if (type == IRQ_TYPE_LEVEL_LOW)
@@ -53,7 +53,7 @@
 
 	data = data->parent_data;
 	ret = data->chip->irq_set_type(data, type);
-	spin_unlock_irqrestore(&chip_data->lock, flags);
+	raw_spin_unlock_irqrestore(&chip_data->lock, flags);
 	return ret;
 }
 
@@ -212,7 +212,7 @@
 		ret = -ENOMEM;
 		goto out_free_which_word;
 	}
-	spin_lock_init(&chip_data->lock);
+	raw_spin_lock_init(&chip_data->lock);
 
 	return 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-sni-exiu.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-sni-exiu.c
@@ -136,7 +136,7 @@
 		if (fwspec->param_count != 2)
 			return -EINVAL;
 		*hwirq = fwspec->param[0];
-		*type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK;
+		*type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK;
 	}
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-stm32-exti.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-stm32-exti.c
@@ -431,6 +431,16 @@
 	irq_gc_unlock(gc);
 }
 
+/* directly set the target bit without reading first. */
+static inline void stm32_exti_write_bit(struct irq_data *d, u32 reg)
+{
+	struct stm32_exti_chip_data *chip_data = irq_data_get_irq_chip_data(d);
+	void __iomem *base = chip_data->host_data->base;
+	u32 val = BIT(d->hwirq % IRQS_PER_BANK);
+
+	writel_relaxed(val, base + reg);
+}
+
 static inline u32 stm32_exti_set_bit(struct irq_data *d, u32 reg)
 {
 	struct stm32_exti_chip_data *chip_data = irq_data_get_irq_chip_data(d);
@@ -464,9 +474,9 @@
 
 	raw_spin_lock(&chip_data->rlock);
 
-	stm32_exti_set_bit(d, stm32_bank->rpr_ofst);
+	stm32_exti_write_bit(d, stm32_bank->rpr_ofst);
 	if (stm32_bank->fpr_ofst != UNDEF_REG)
-		stm32_exti_set_bit(d, stm32_bank->fpr_ofst);
+		stm32_exti_write_bit(d, stm32_bank->fpr_ofst);
 
 	raw_spin_unlock(&chip_data->rlock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-ti-sci-inta.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-ti-sci-inta.c
@@ -37,6 +37,7 @@
 #define VINT_ENABLE_SET_OFFSET	0x0
 #define VINT_ENABLE_CLR_OFFSET	0x8
 #define VINT_STATUS_OFFSET	0x18
+#define VINT_STATUS_MASKED_OFFSET	0x20
 
 /**
  * struct ti_sci_inta_event_desc - Description of an event coming to
@@ -116,7 +117,7 @@
 	chained_irq_enter(irq_desc_get_chip(desc), desc);
 
 	val = readq_relaxed(inta->base + vint_desc->vint_id * 0x1000 +
-			    VINT_STATUS_OFFSET);
+			    VINT_STATUS_MASKED_OFFSET);
 
 	for_each_set_bit(bit, &val, MAX_EVENTS_PER_VINT) {
 		virq = irq_find_mapping(domain, vint_desc->events[bit].hwirq);
@@ -570,7 +571,7 @@
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	inta->base = devm_ioremap_resource(dev, res);
 	if (IS_ERR(inta->base))
-		return -ENODEV;
+		return PTR_ERR(inta->base);
 
 	domain = irq_domain_add_linear(dev_of_node(dev),
 				       ti_sci_get_num_resources(inta->vint),
--- linux-gkeop-5.4-5.4.0.orig/drivers/irqchip/irq-versatile-fpga.c
+++ linux-gkeop-5.4-5.4.0/drivers/irqchip/irq-versatile-fpga.c
@@ -6,6 +6,7 @@
 #include <linux/irq.h>
 #include <linux/io.h>
 #include <linux/irqchip.h>
+#include <linux/irqchip/chained_irq.h>
 #include <linux/irqchip/versatile-fpga.h>
 #include <linux/irqdomain.h>
 #include <linux/module.h>
@@ -68,12 +69,16 @@
 
 static void fpga_irq_handle(struct irq_desc *desc)
 {
+	struct irq_chip *chip = irq_desc_get_chip(desc);
 	struct fpga_irq_data *f = irq_desc_get_handler_data(desc);
-	u32 status = readl(f->base + IRQ_STATUS);
+	u32 status;
+
+	chained_irq_enter(chip, desc);
 
+	status = readl(f->base + IRQ_STATUS);
 	if (status == 0) {
 		do_bad_IRQ(desc);
-		return;
+		goto out;
 	}
 
 	do {
@@ -82,6 +87,9 @@
 		status &= ~(1 << irq);
 		generic_handle_irq(irq_find_mapping(f->domain, irq));
 	} while (status);
+
+out:
+	chained_irq_exit(chip, desc);
 }
 
 /*
@@ -204,6 +212,9 @@
 	if (of_property_read_u32(node, "valid-mask", &valid_mask))
 		valid_mask = 0;
 
+	writel(clear_mask, base + IRQ_ENABLE_CLEAR);
+	writel(clear_mask, base + FIQ_ENABLE_CLEAR);
+
 	/* Some chips are cascaded from a parent IRQ */
 	parent_irq = irq_of_parse_and_map(node, 0);
 	if (!parent_irq) {
@@ -213,9 +224,6 @@
 
 	fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node);
 
-	writel(clear_mask, base + IRQ_ENABLE_CLEAR);
-	writel(clear_mask, base + FIQ_ENABLE_CLEAR);
-
 	/*
 	 * On Versatile AB/PB, some secondary interrupts have a direct
 	 * pass-thru to the primary controller for IRQs 20 and 22-31 which need
--- linux-gkeop-5.4-5.4.0.orig/drivers/isdn/mISDN/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/isdn/mISDN/Kconfig
@@ -13,6 +13,7 @@
 config MISDN_DSP
 	tristate "Digital Audio Processing of transparent data"
 	depends on MISDN
+	select BITREVERSE
 	help
 	  Enable support for digital audio processing capability.
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/leds/Kconfig
@@ -344,7 +344,6 @@
 	tristate "Common Driver for TI/National LP5521/5523/55231/5562/8501"
 	depends on LEDS_LP5521 || LEDS_LP5523 || LEDS_LP5562 || LEDS_LP8501
 	select FW_LOADER
-	select FW_LOADER_USER_HELPER
 	help
 	  This option supports common operations for LP5521/5523/55231/5562/8501
 	  devices.
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/led-class.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/led-class.c
@@ -172,6 +172,7 @@
 {
 	led_cdev->flags |= LED_SUSPENDED;
 	led_set_brightness_nopm(led_cdev, 0);
+	flush_work(&led_cdev->set_brightness_work);
 }
 EXPORT_SYMBOL_GPL(led_classdev_suspend);
 
@@ -281,7 +282,7 @@
 
 	if (ret)
 		dev_warn(parent, "Led %s renamed to %s due to name collision",
-				led_cdev->name, dev_name(led_cdev->dev));
+				proposed_name, dev_name(led_cdev->dev));
 
 	if (led_cdev->flags & LED_BRIGHT_HW_CHANGED) {
 		ret = led_add_brightness_hw_changed(led_cdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/led-triggers.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/led-triggers.c
@@ -318,14 +318,15 @@
 			enum led_brightness brightness)
 {
 	struct led_classdev *led_cdev;
+	unsigned long flags;
 
 	if (!trig)
 		return;
 
-	read_lock(&trig->leddev_list_lock);
+	read_lock_irqsave(&trig->leddev_list_lock, flags);
 	list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list)
 		led_set_brightness(led_cdev, brightness);
-	read_unlock(&trig->leddev_list_lock);
+	read_unlock_irqrestore(&trig->leddev_list_lock, flags);
 }
 EXPORT_SYMBOL_GPL(led_trigger_event);
 
@@ -336,11 +337,12 @@
 			     int invert)
 {
 	struct led_classdev *led_cdev;
+	unsigned long flags;
 
 	if (!trig)
 		return;
 
-	read_lock(&trig->leddev_list_lock);
+	read_lock_irqsave(&trig->leddev_list_lock, flags);
 	list_for_each_entry(led_cdev, &trig->led_cdevs, trig_list) {
 		if (oneshot)
 			led_blink_set_oneshot(led_cdev, delay_on, delay_off,
@@ -348,7 +350,7 @@
 		else
 			led_blink_set(led_cdev, delay_on, delay_off);
 	}
-	read_unlock(&trig->leddev_list_lock);
+	read_unlock_irqrestore(&trig->leddev_list_lock, flags);
 }
 
 void led_trigger_blink(struct led_trigger *trig,
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-88pm860x.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-88pm860x.c
@@ -203,21 +203,33 @@
 	data->cdev.brightness_set_blocking = pm860x_led_set;
 	mutex_init(&data->lock);
 
-	ret = devm_led_classdev_register(chip->dev, &data->cdev);
+	ret = led_classdev_register(chip->dev, &data->cdev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to register LED: %d\n", ret);
 		return ret;
 	}
 	pm860x_led_set(&data->cdev, 0);
+
+	platform_set_drvdata(pdev, data);
+
 	return 0;
 }
 
+static int pm860x_led_remove(struct platform_device *pdev)
+{
+	struct pm860x_led *data = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&data->cdev);
+
+	return 0;
+}
 
 static struct platform_driver pm860x_led_driver = {
 	.driver	= {
 		.name	= "88pm860x-led",
 	},
 	.probe	= pm860x_led_probe,
+	.remove	= pm860x_led_remove,
 };
 
 module_platform_driver(pm860x_led_driver);
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-an30259a.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-an30259a.c
@@ -305,6 +305,13 @@
 
 	chip->regmap = devm_regmap_init_i2c(client, &an30259a_regmap_config);
 
+	if (IS_ERR(chip->regmap)) {
+		err = PTR_ERR(chip->regmap);
+		dev_err(&client->dev, "Failed to allocate register map: %d\n",
+			err);
+		goto exit;
+	}
+
 	for (i = 0; i < chip->num_leds; i++) {
 		struct led_init_data init_data = {};
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-bcm6328.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-bcm6328.c
@@ -332,7 +332,7 @@
 	led->cdev.brightness_set = bcm6328_led_set;
 	led->cdev.blink_set = bcm6328_blink_set;
 
-	rc = led_classdev_register(dev, &led->cdev);
+	rc = devm_led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
 		return rc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-bcm6358.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-bcm6358.c
@@ -137,7 +137,7 @@
 
 	led->cdev.brightness_set = bcm6358_led_set;
 
-	rc = led_classdev_register(dev, &led->cdev);
+	rc = devm_led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
 		return rc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-da903x.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-da903x.c
@@ -110,12 +110,23 @@
 	led->flags = pdata->flags;
 	led->master = pdev->dev.parent;
 
-	ret = devm_led_classdev_register(led->master, &led->cdev);
+	ret = led_classdev_register(led->master, &led->cdev);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register LED %d\n", id);
 		return ret;
 	}
 
+	platform_set_drvdata(pdev, led);
+
+	return 0;
+}
+
+static int da903x_led_remove(struct platform_device *pdev)
+{
+	struct da903x_led *led = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&led->cdev);
+
 	return 0;
 }
 
@@ -124,6 +135,7 @@
 		.name	= "da903x-led",
 	},
 	.probe		= da903x_led_probe,
+	.remove		= da903x_led_remove,
 };
 
 module_platform_driver(da903x_led_driver);
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-gpio.c
@@ -151,9 +151,14 @@
 		struct gpio_led led = {};
 		const char *state = NULL;
 
+		/*
+		 * Acquire gpiod from DT with uninitialized label, which
+		 * will be updated after LED class device is registered,
+		 * Only then the final LED name is known.
+		 */
 		led.gpiod = devm_fwnode_get_gpiod_from_child(dev, NULL, child,
 							     GPIOD_ASIS,
-							     led.name);
+							     NULL);
 		if (IS_ERR(led.gpiod)) {
 			fwnode_handle_put(child);
 			return ERR_CAST(led.gpiod);
@@ -186,6 +191,9 @@
 			fwnode_handle_put(child);
 			return ERR_PTR(ret);
 		}
+		/* Set gpiod label to match the corresponding LED name. */
+		gpiod_set_consumer_name(led_dat->gpiod,
+					led_dat->cdev.dev->kobj.name);
 		priv->num_leds++;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-lm3533.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-lm3533.c
@@ -694,7 +694,7 @@
 
 	platform_set_drvdata(pdev, led);
 
-	ret = devm_led_classdev_register(pdev->dev.parent, &led->cdev);
+	ret = led_classdev_register(pdev->dev.parent, &led->cdev);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register LED %d\n", pdev->id);
 		return ret;
@@ -704,13 +704,18 @@
 
 	ret = lm3533_led_setup(led, pdata);
 	if (ret)
-		return ret;
+		goto err_deregister;
 
 	ret = lm3533_ctrlbank_enable(&led->cb);
 	if (ret)
-		return ret;
+		goto err_deregister;
 
 	return 0;
+
+err_deregister:
+	led_classdev_unregister(&led->cdev);
+
+	return ret;
 }
 
 static int lm3533_led_remove(struct platform_device *pdev)
@@ -720,6 +725,7 @@
 	dev_dbg(&pdev->dev, "%s\n", __func__);
 
 	lm3533_ctrlbank_disable(&led->cb);
+	led_classdev_unregister(&led->cdev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-lm355x.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-lm355x.c
@@ -165,18 +165,19 @@
 	/* input and output pins configuration */
 	switch (chip->type) {
 	case CHIP_LM3554:
-		reg_val = pdata->pin_tx2 | pdata->ntc_pin;
+		reg_val = (u32)pdata->pin_tx2 | (u32)pdata->ntc_pin;
 		ret = regmap_update_bits(chip->regmap, 0xE0, 0x28, reg_val);
 		if (ret < 0)
 			goto out;
-		reg_val = pdata->pass_mode;
+		reg_val = (u32)pdata->pass_mode;
 		ret = regmap_update_bits(chip->regmap, 0xA0, 0x04, reg_val);
 		if (ret < 0)
 			goto out;
 		break;
 
 	case CHIP_LM3556:
-		reg_val = pdata->pin_tx2 | pdata->ntc_pin | pdata->pass_mode;
+		reg_val = (u32)pdata->pin_tx2 | (u32)pdata->ntc_pin |
+		          (u32)pdata->pass_mode;
 		ret = regmap_update_bits(chip->regmap, 0x0A, 0xC4, reg_val);
 		if (ret < 0)
 			goto out;
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-lm36274.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-lm36274.c
@@ -133,7 +133,7 @@
 	lm36274_data->pdev = pdev;
 	lm36274_data->dev = lmu->dev;
 	lm36274_data->regmap = lmu->regmap;
-	dev_set_drvdata(&pdev->dev, lm36274_data);
+	platform_set_drvdata(pdev, lm36274_data);
 
 	ret = lm36274_parse_dt(lm36274_data);
 	if (ret) {
@@ -147,8 +147,16 @@
 		return ret;
 	}
 
-	return devm_led_classdev_register(lm36274_data->dev,
-					 &lm36274_data->led_dev);
+	return led_classdev_register(lm36274_data->dev, &lm36274_data->led_dev);
+}
+
+static int lm36274_remove(struct platform_device *pdev)
+{
+	struct lm36274 *lm36274_data = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&lm36274_data->led_dev);
+
+	return 0;
 }
 
 static const struct of_device_id of_lm36274_leds_match[] = {
@@ -159,6 +167,7 @@
 
 static struct platform_driver lm36274_driver = {
 	.probe  = lm36274_probe,
+	.remove = lm36274_remove,
 	.driver = {
 		.name = "lm36274-leds",
 	},
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-lm3692x.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-lm3692x.c
@@ -334,9 +334,18 @@
 		return ret;
 	}
 
-	led->regulator = devm_regulator_get(&led->client->dev, "vled");
-	if (IS_ERR(led->regulator))
+	led->regulator = devm_regulator_get_optional(&led->client->dev, "vled");
+	if (IS_ERR(led->regulator)) {
+		ret = PTR_ERR(led->regulator);
+		if (ret != -ENODEV) {
+			if (ret != -EPROBE_DEFER)
+				dev_err(&led->client->dev,
+					"Failed to get vled regulator: %d\n",
+					ret);
+			return ret;
+		}
 		led->regulator = NULL;
+	}
 
 	child = device_get_next_child_node(&led->client->dev, child);
 	if (!child) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-max77650.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-max77650.c
@@ -135,9 +135,16 @@
 	return rv;
 }
 
+static const struct of_device_id max77650_led_of_match[] = {
+	{ .compatible = "maxim,max77650-led" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, max77650_led_of_match);
+
 static struct platform_driver max77650_led_driver = {
 	.driver = {
 		.name = "max77650-led",
+		.of_match_table = max77650_led_of_match,
 	},
 	.probe = max77650_led_probe,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-mlxreg.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-mlxreg.c
@@ -228,8 +228,8 @@
 			brightness = LED_OFF;
 			led_data->base_color = MLXREG_LED_GREEN_SOLID;
 		}
-		sprintf(led_data->led_cdev_name, "%s:%s", "mlxreg",
-			data->label);
+		snprintf(led_data->led_cdev_name, sizeof(led_data->led_cdev_name),
+			 "mlxreg:%s", data->label);
 		led_cdev->name = led_data->led_cdev_name;
 		led_cdev->brightness = brightness;
 		led_cdev->max_brightness = LED_ON;
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-pca963x.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-pca963x.c
@@ -40,6 +40,8 @@
 #define PCA963X_LED_PWM		0x2	/* Controlled through PWM */
 #define PCA963X_LED_GRP_PWM	0x3	/* Controlled through PWM/GRPPWM */
 
+#define PCA963X_MODE2_OUTDRV	0x04	/* Open-drain or totem pole */
+#define PCA963X_MODE2_INVRT	0x10	/* Normal or inverted direction */
 #define PCA963X_MODE2_DMBLNK	0x20	/* Enable blinking */
 
 #define PCA963X_MODE1		0x00
@@ -438,12 +440,12 @@
 						    PCA963X_MODE2);
 		/* Configure output: open-drain or totem pole (push-pull) */
 		if (pdata->outdrv == PCA963X_OPEN_DRAIN)
-			mode2 |= 0x01;
+			mode2 &= ~PCA963X_MODE2_OUTDRV;
 		else
-			mode2 |= 0x05;
+			mode2 |= PCA963X_MODE2_OUTDRV;
 		/* Configure direction: normal or inverted */
 		if (pdata->dir == PCA963X_INVERTED)
-			mode2 |= 0x10;
+			mode2 |= PCA963X_MODE2_INVRT;
 		i2c_smbus_write_byte_data(pca963x->chip->client, PCA963X_MODE2,
 					  mode2);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-tlc591xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-tlc591xx.c
@@ -13,6 +13,7 @@
 #include <linux/slab.h>
 
 #define TLC591XX_MAX_LEDS	16
+#define TLC591XX_MAX_BRIGHTNESS	256
 
 #define TLC591XX_REG_MODE1	0x00
 #define MODE1_RESPON_ADDR_MASK	0xF0
@@ -112,11 +113,11 @@
 	struct tlc591xx_priv *priv = led->priv;
 	int err;
 
-	switch (brightness) {
+	switch ((int)brightness) {
 	case 0:
 		err = tlc591xx_set_ledout(priv, led, LEDOUT_OFF);
 		break;
-	case LED_FULL:
+	case TLC591XX_MAX_BRIGHTNESS:
 		err = tlc591xx_set_ledout(priv, led, LEDOUT_ON);
 		break;
 	default:
@@ -157,7 +158,7 @@
 		led->priv = priv;
 		led->led_no = i;
 		led->ldev.brightness_set_blocking = tlc591xx_brightness_set;
-		led->ldev.max_brightness = LED_FULL;
+		led->ldev.max_brightness = TLC591XX_MAX_BRIGHTNESS;
 		err = led_classdev_register(dev, &led->ldev);
 		if (err < 0) {
 			dev_err(dev, "couldn't register LED %s\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/leds-wm831x-status.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/leds-wm831x-status.c
@@ -269,12 +269,23 @@
 	drvdata->cdev.blink_set = wm831x_status_blink_set;
 	drvdata->cdev.groups = wm831x_status_groups;
 
-	ret = devm_led_classdev_register(wm831x->dev, &drvdata->cdev);
+	ret = led_classdev_register(wm831x->dev, &drvdata->cdev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to register LED: %d\n", ret);
 		return ret;
 	}
 
+	platform_set_drvdata(pdev, drvdata);
+
+	return 0;
+}
+
+static int wm831x_status_remove(struct platform_device *pdev)
+{
+	struct wm831x_status *drvdata = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&drvdata->cdev);
+
 	return 0;
 }
 
@@ -283,6 +294,7 @@
 		   .name = "wm831x-status",
 		   },
 	.probe = wm831x_status_probe,
+	.remove = wm831x_status_remove,
 };
 
 module_platform_driver(wm831x_status_driver);
--- linux-gkeop-5.4-5.4.0.orig/drivers/leds/trigger/ledtrig-netdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/leds/trigger/ledtrig-netdev.c
@@ -302,10 +302,12 @@
 		container_of(nb, struct led_netdev_data, notifier);
 
 	if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE
-	    && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
+	    && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER
+	    && evt != NETDEV_CHANGENAME)
 		return NOTIFY_DONE;
 
 	if (!(dev == trigger_data->net_dev ||
+	      (evt == NETDEV_CHANGENAME && !strcmp(dev->name, trigger_data->device_name)) ||
 	      (evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name))))
 		return NOTIFY_DONE;
 
@@ -315,6 +317,7 @@
 
 	clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
 	switch (evt) {
+	case NETDEV_CHANGENAME:
 	case NETDEV_REGISTER:
 		if (trigger_data->net_dev)
 			dev_put(trigger_data->net_dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/lightnvm/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/lightnvm/Kconfig
@@ -19,6 +19,7 @@
 
 config NVM_PBLK
 	tristate "Physical Block Device Open-Channel SSD target"
+	select CRC32
 	help
 	  Allows an open-channel SSD to be exposed as a block device to the
 	  host. The target assumes the device exposes raw flash and must be
--- linux-gkeop-5.4-5.4.0.orig/drivers/lightnvm/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/lightnvm/core.c
@@ -849,11 +849,10 @@
 	rqd.ppa_addr = generic_to_dev_addr(dev, ppa);
 
 	ret = nvm_submit_io_sync_raw(dev, &rqd);
+	__free_page(page);
 	if (ret)
 		return ret;
 
-	__free_page(page);
-
 	return rqd.error;
 }
 
@@ -1316,8 +1315,9 @@
 		strlcpy(info->bmname, "gennvm", sizeof(info->bmname));
 		i++;
 
-		if (i > 31) {
-			pr_err("max 31 devices can be reported.\n");
+		if (i >= ARRAY_SIZE(devices->info)) {
+			pr_err("max %zd devices can be reported.\n",
+			       ARRAY_SIZE(devices->info));
 			break;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/therm_windtunnel.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/therm_windtunnel.c
@@ -300,9 +300,11 @@
 /*	i2c probing and setup						*/
 /************************************************************************/
 
-static int
-do_attach( struct i2c_adapter *adapter )
+static void do_attach(struct i2c_adapter *adapter)
 {
+	struct i2c_board_info info = { };
+	struct device_node *np;
+
 	/* scan 0x48-0x4f (DS1775) and 0x2c-2x2f (ADM1030) */
 	static const unsigned short scan_ds1775[] = {
 		0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
@@ -313,25 +315,24 @@
 		I2C_CLIENT_END
 	};
 
-	if( strncmp(adapter->name, "uni-n", 5) )
-		return 0;
-
-	if( !x.running ) {
-		struct i2c_board_info info;
+	if (x.running || strncmp(adapter->name, "uni-n", 5))
+		return;
 
-		memset(&info, 0, sizeof(struct i2c_board_info));
-		strlcpy(info.type, "therm_ds1775", I2C_NAME_SIZE);
+	np = of_find_compatible_node(adapter->dev.of_node, NULL, "MAC,ds1775");
+	if (np) {
+		of_node_put(np);
+	} else {
+		strlcpy(info.type, "MAC,ds1775", I2C_NAME_SIZE);
 		i2c_new_probed_device(adapter, &info, scan_ds1775, NULL);
+	}
 
-		strlcpy(info.type, "therm_adm1030", I2C_NAME_SIZE);
+	np = of_find_compatible_node(adapter->dev.of_node, NULL, "MAC,adm1030");
+	if (np) {
+		of_node_put(np);
+	} else {
+		strlcpy(info.type, "MAC,adm1030", I2C_NAME_SIZE);
 		i2c_new_probed_device(adapter, &info, scan_adm1030, NULL);
-
-		if( x.thermostat && x.fan ) {
-			x.running = 1;
-			x.poll_task = kthread_run(control_loop, NULL, "g4fand");
-		}
 	}
-	return 0;
 }
 
 static int
@@ -404,8 +405,8 @@
 enum chip { ds1775, adm1030 };
 
 static const struct i2c_device_id therm_windtunnel_id[] = {
-	{ "therm_ds1775", ds1775 },
-	{ "therm_adm1030", adm1030 },
+	{ "MAC,ds1775", ds1775 },
+	{ "MAC,adm1030", adm1030 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, therm_windtunnel_id);
@@ -414,6 +415,7 @@
 do_probe(struct i2c_client *cl, const struct i2c_device_id *id)
 {
 	struct i2c_adapter *adapter = cl->adapter;
+	int ret = 0;
 
 	if( !i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA
 				     | I2C_FUNC_SMBUS_WRITE_BYTE) )
@@ -421,11 +423,19 @@
 
 	switch (id->driver_data) {
 	case adm1030:
-		return attach_fan( cl );
+		ret = attach_fan(cl);
+		break;
 	case ds1775:
-		return attach_thermostat(cl);
+		ret = attach_thermostat(cl);
+		break;
 	}
-	return 0;
+
+	if (!x.running && x.thermostat && x.fan) {
+		x.running = 1;
+		x.poll_task = kthread_run(control_loop, NULL, "g4fand");
+	}
+
+	return ret;
 }
 
 static struct i2c_driver g4fan_driver = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/via-macii.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/via-macii.c
@@ -270,15 +270,12 @@
 	unsigned long flags;
 	int err = 0;
 
+	local_irq_save(flags);
+
 	/* bit 1 == device 1, and so on. */
 	autopoll_devs = devs & 0xFFFE;
 
-	if (!autopoll_devs)
-		return 0;
-
-	local_irq_save(flags);
-
-	if (current_req == NULL) {
+	if (autopoll_devs && !current_req) {
 		/* Send a Talk Reg 0. The controller will repeatedly transmit
 		 * this as long as it is idle.
 		 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_ad7417_sensor.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_ad7417_sensor.c
@@ -312,9 +312,16 @@
 };
 MODULE_DEVICE_TABLE(i2c, wf_ad7417_id);
 
+static const struct of_device_id wf_ad7417_of_id[] = {
+	{ .compatible = "ad7417", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wf_ad7417_of_id);
+
 static struct i2c_driver wf_ad7417_driver = {
 	.driver = {
 		.name	= "wf_ad7417",
+		.of_match_table = wf_ad7417_of_id,
 	},
 	.probe		= wf_ad7417_probe,
 	.remove		= wf_ad7417_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_fcu_controls.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_fcu_controls.c
@@ -582,9 +582,16 @@
 };
 MODULE_DEVICE_TABLE(i2c, wf_fcu_id);
 
+static const struct of_device_id wf_fcu_of_id[] = {
+	{ .compatible = "fcu", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wf_fcu_of_id);
+
 static struct i2c_driver wf_fcu_driver = {
 	.driver = {
 		.name	= "wf_fcu",
+		.of_match_table = wf_fcu_of_id,
 	},
 	.probe		= wf_fcu_probe,
 	.remove		= wf_fcu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_lm75_sensor.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_lm75_sensor.c
@@ -14,6 +14,7 @@
 #include <linux/init.h>
 #include <linux/wait.h>
 #include <linux/i2c.h>
+#include <linux/of_device.h>
 #include <asm/prom.h>
 #include <asm/machdep.h>
 #include <asm/io.h>
@@ -91,9 +92,14 @@
 			 const struct i2c_device_id *id)
 {	
 	struct wf_lm75_sensor *lm;
-	int rc, ds1775 = id->driver_data;
+	int rc, ds1775;
 	const char *name, *loc;
 
+	if (id)
+		ds1775 = id->driver_data;
+	else
+		ds1775 = !!of_device_get_match_data(&client->dev);
+
 	DBG("wf_lm75: creating  %s device at address 0x%02x\n",
 	    ds1775 ? "ds1775" : "lm75", client->addr);
 
@@ -164,9 +170,17 @@
 };
 MODULE_DEVICE_TABLE(i2c, wf_lm75_id);
 
+static const struct of_device_id wf_lm75_of_id[] = {
+	{ .compatible = "lm75", .data = (void *)0},
+	{ .compatible = "ds1775", .data = (void *)1 },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wf_lm75_of_id);
+
 static struct i2c_driver wf_lm75_driver = {
 	.driver = {
 		.name	= "wf_lm75",
+		.of_match_table = wf_lm75_of_id,
 	},
 	.probe		= wf_lm75_probe,
 	.remove		= wf_lm75_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_lm87_sensor.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_lm87_sensor.c
@@ -166,9 +166,16 @@
 };
 MODULE_DEVICE_TABLE(i2c, wf_lm87_id);
 
+static const struct of_device_id wf_lm87_of_id[] = {
+	{ .compatible = "lm87cimt", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wf_lm87_of_id);
+
 static struct i2c_driver wf_lm87_driver = {
 	.driver = {
 		.name	= "wf_lm87",
+		.of_match_table = wf_lm87_of_id,
 	},
 	.probe		= wf_lm87_probe,
 	.remove		= wf_lm87_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_max6690_sensor.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_max6690_sensor.c
@@ -120,9 +120,16 @@
 };
 MODULE_DEVICE_TABLE(i2c, wf_max6690_id);
 
+static const struct of_device_id wf_max6690_of_id[] = {
+	{ .compatible = "max6690", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wf_max6690_of_id);
+
 static struct i2c_driver wf_max6690_driver = {
 	.driver = {
 		.name		= "wf_max6690",
+		.of_match_table = wf_max6690_of_id,
 	},
 	.probe		= wf_max6690_probe,
 	.remove		= wf_max6690_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_pm112.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_pm112.c
@@ -132,14 +132,6 @@
 	s32 tmax;
 	int fmin;
 
-	/* Get PID params from the appropriate SAT */
-	hdr = smu_sat_get_sdb_partition(chip, 0xC8 + core, NULL);
-	if (hdr == NULL) {
-		printk(KERN_WARNING"windfarm: can't get CPU PID fan config\n");
-		return -EINVAL;
-	}
-	piddata = (struct smu_sdbp_cpupiddata *)&hdr[1];
-
 	/* Get FVT params to get Tmax; if not found, assume default */
 	hdr = smu_sat_get_sdb_partition(chip, 0xC4 + core, NULL);
 	if (hdr) {
@@ -152,6 +144,16 @@
 	if (tmax < cpu_all_tmax)
 		cpu_all_tmax = tmax;
 
+	kfree(hdr);
+
+	/* Get PID params from the appropriate SAT */
+	hdr = smu_sat_get_sdb_partition(chip, 0xC8 + core, NULL);
+	if (hdr == NULL) {
+		printk(KERN_WARNING"windfarm: can't get CPU PID fan config\n");
+		return -EINVAL;
+	}
+	piddata = (struct smu_sdbp_cpupiddata *)&hdr[1];
+
 	/*
 	 * Darwin has a minimum fan speed of 1000 rpm for the 4-way and
 	 * 515 for the 2-way.  That appears to be overkill, so for now,
@@ -174,6 +176,9 @@
 		pid.min = fmin;
 
 	wf_cpu_pid_init(&cpu_pid[cpu], &pid);
+
+	kfree(hdr);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/macintosh/windfarm_smu_sat.c
+++ linux-gkeop-5.4-5.4.0/drivers/macintosh/windfarm_smu_sat.c
@@ -341,9 +341,16 @@
 };
 MODULE_DEVICE_TABLE(i2c, wf_sat_id);
 
+static const struct of_device_id wf_sat_of_id[] = {
+	{ .compatible = "smu-sat", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wf_sat_of_id);
+
 static struct i2c_driver wf_sat_driver = {
 	.driver = {
 		.name		= "wf_smu_sat",
+		.of_match_table = wf_sat_of_id,
 	},
 	.probe		= wf_sat_probe,
 	.remove		= wf_sat_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/mailbox/imx-mailbox.c
+++ linux-gkeop-5.4-5.4.0/drivers/mailbox/imx-mailbox.c
@@ -214,11 +214,24 @@
 	struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox);
 	struct imx_mu_con_priv *cp = chan->con_priv;
 
-	if (cp->type == IMX_MU_TYPE_TXDB)
+	if (cp->type == IMX_MU_TYPE_TXDB) {
 		tasklet_kill(&cp->txdb_tasklet);
+		return;
+	}
 
-	imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_TIEn(cp->idx) |
-		       IMX_MU_xCR_RIEn(cp->idx) | IMX_MU_xCR_GIEn(cp->idx));
+	switch (cp->type) {
+	case IMX_MU_TYPE_TX:
+		imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_TIEn(cp->idx));
+		break;
+	case IMX_MU_TYPE_RX:
+		imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_RIEn(cp->idx));
+		break;
+	case IMX_MU_TYPE_RXDB:
+		imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_GIEn(cp->idx));
+		break;
+	default:
+		break;
+	}
 
 	free_irq(priv->irq, chan);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/mailbox/mailbox.c
+++ linux-gkeop-5.4-5.4.0/drivers/mailbox/mailbox.c
@@ -82,9 +82,12 @@
 exit:
 	spin_unlock_irqrestore(&chan->lock, flags);
 
-	if (!err && (chan->txdone_method & TXDONE_BY_POLL))
-		/* kick start the timer immediately to avoid delays */
-		hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
+	/* kick start the timer immediately to avoid delays */
+	if (!err && (chan->txdone_method & TXDONE_BY_POLL)) {
+		/* but only if not already active */
+		if (!hrtimer_active(&chan->mbox->poll_hrt))
+			hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
+	}
 }
 
 static void tx_tick(struct mbox_chan *chan, int r)
@@ -122,11 +125,10 @@
 		struct mbox_chan *chan = &mbox->chans[i];
 
 		if (chan->active_req && chan->cl) {
+			resched = true;
 			txdone = chan->mbox->ops->last_tx_done(chan);
 			if (txdone)
 				tx_tick(chan, 0);
-			else
-				resched = true;
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mailbox/mtk-cmdq-mailbox.c
+++ linux-gkeop-5.4-5.4.0/drivers/mailbox/mtk-cmdq-mailbox.c
@@ -70,7 +70,7 @@
 struct cmdq {
 	struct mbox_controller	mbox;
 	void __iomem		*base;
-	u32			irq;
+	int			irq;
 	u32			thread_nr;
 	u32			irq_mask;
 	struct cmdq_thread	*thread;
@@ -474,10 +474,8 @@
 	}
 
 	cmdq->irq = platform_get_irq(pdev, 0);
-	if (!cmdq->irq) {
-		dev_err(dev, "failed to get irq\n");
-		return -EINVAL;
-	}
+	if (cmdq->irq < 0)
+		return cmdq->irq;
 
 	cmdq->thread_nr = (u32)(unsigned long)of_device_get_match_data(dev);
 	cmdq->irq_mask = GENMASK(cmdq->thread_nr - 1, 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mailbox/tegra-hsp.c
+++ linux-gkeop-5.4-5.4.0/drivers/mailbox/tegra-hsp.c
@@ -657,7 +657,7 @@
 	hsp->num_db = (value >> HSP_nDB_SHIFT) & HSP_nINT_MASK;
 	hsp->num_si = (value >> HSP_nSI_SHIFT) & HSP_nINT_MASK;
 
-	err = platform_get_irq_byname(pdev, "doorbell");
+	err = platform_get_irq_byname_optional(pdev, "doorbell");
 	if (err >= 0)
 		hsp->doorbell_irq = err;
 
@@ -677,7 +677,7 @@
 			if (!name)
 				return -ENOMEM;
 
-			err = platform_get_irq_byname(pdev, name);
+			err = platform_get_irq_byname_optional(pdev, name);
 			if (err >= 0) {
 				hsp->shared_irqs[i] = err;
 				count++;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mailbox/zynqmp-ipi-mailbox.c
+++ linux-gkeop-5.4-5.4.0/drivers/mailbox/zynqmp-ipi-mailbox.c
@@ -504,10 +504,9 @@
 		mchan->req_buf_size = resource_size(&res);
 		mchan->req_buf = devm_ioremap(mdev, res.start,
 					      mchan->req_buf_size);
-		if (IS_ERR(mchan->req_buf)) {
+		if (!mchan->req_buf) {
 			dev_err(mdev, "Unable to map IPI buffer I/O memory\n");
-			ret = PTR_ERR(mchan->req_buf);
-			return ret;
+			return -ENOMEM;
 		}
 	} else if (ret != -ENODEV) {
 		dev_err(mdev, "Unmatched resource %s, %d.\n", name, ret);
@@ -520,10 +519,9 @@
 		mchan->resp_buf_size = resource_size(&res);
 		mchan->resp_buf = devm_ioremap(mdev, res.start,
 					       mchan->resp_buf_size);
-		if (IS_ERR(mchan->resp_buf)) {
+		if (!mchan->resp_buf) {
 			dev_err(mdev, "Unable to map IPI buffer I/O memory\n");
-			ret = PTR_ERR(mchan->resp_buf);
-			return ret;
+			return -ENOMEM;
 		}
 	} else if (ret != -ENODEV) {
 		dev_err(mdev, "Unmatched resource %s.\n", name);
@@ -543,10 +541,9 @@
 		mchan->req_buf_size = resource_size(&res);
 		mchan->req_buf = devm_ioremap(mdev, res.start,
 					      mchan->req_buf_size);
-		if (IS_ERR(mchan->req_buf)) {
+		if (!mchan->req_buf) {
 			dev_err(mdev, "Unable to map IPI buffer I/O memory\n");
-			ret = PTR_ERR(mchan->req_buf);
-			return ret;
+			return -ENOMEM;
 		}
 	} else if (ret != -ENODEV) {
 		dev_err(mdev, "Unmatched resource %s.\n", name);
@@ -559,10 +556,9 @@
 		mchan->resp_buf_size = resource_size(&res);
 		mchan->resp_buf = devm_ioremap(mdev, res.start,
 					       mchan->resp_buf_size);
-		if (IS_ERR(mchan->resp_buf)) {
+		if (!mchan->resp_buf) {
 			dev_err(mdev, "Unable to map IPI buffer I/O memory\n");
-			ret = PTR_ERR(mchan->resp_buf);
-			return ret;
+			return -ENOMEM;
 		}
 	} else if (ret != -ENODEV) {
 		dev_err(mdev, "Unmatched resource %s.\n", name);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/md/Kconfig
@@ -565,6 +565,7 @@
 	select BLK_DEV_INTEGRITY
 	select DM_BUFIO
 	select CRYPTO
+	select CRYPTO_SKCIPHER
 	select ASYNC_XOR
 	---help---
 	  This device-mapper target emulates a block device that has
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/alloc.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/alloc.c
@@ -377,7 +377,10 @@
 			if (!fifo_full(&ca->free_inc))
 				goto retry_invalidate;
 
-			bch_prio_write(ca);
+			if (bch_prio_write(ca, false) < 0) {
+				ca->invalidate_needs_gc = 1;
+				wake_up_gc(ca->set);
+			}
 		}
 	}
 out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/bcache.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/bcache.h
@@ -264,7 +264,7 @@
 #define BCACHE_DEV_UNLINK_DONE		2
 #define BCACHE_DEV_WB_RUNNING		3
 #define BCACHE_DEV_RATE_DW_RUNNING	4
-	unsigned int		nr_stripes;
+	int			nr_stripes;
 	unsigned int		stripe_size;
 	atomic_t		*stripe_sectors_dirty;
 	unsigned long		*full_dirty_stripes;
@@ -329,6 +329,9 @@
 	 */
 	atomic_t		has_dirty;
 
+#define BCH_CACHE_READA_ALL		0
+#define BCH_CACHE_READA_META_ONLY	1
+	unsigned int		cache_readahead_policy;
 	struct bch_ratelimit	writeback_rate;
 	struct delayed_work	writeback_rate_update;
 
@@ -369,6 +372,7 @@
 	unsigned int		partial_stripes_expensive:1;
 	unsigned int		writeback_metadata:1;
 	unsigned int		writeback_running:1;
+	unsigned int		writeback_consider_fragment:1;
 	unsigned char		writeback_percent;
 	unsigned int		writeback_delay;
 
@@ -381,6 +385,9 @@
 	unsigned int		writeback_rate_update_seconds;
 	unsigned int		writeback_rate_i_term_inverse;
 	unsigned int		writeback_rate_p_term_inverse;
+	unsigned int		writeback_rate_fp_term_low;
+	unsigned int		writeback_rate_fp_term_mid;
+	unsigned int		writeback_rate_fp_term_high;
 	unsigned int		writeback_rate_minimum;
 
 	enum stop_on_failure	stop_when_cache_set_failed;
@@ -582,6 +589,7 @@
 	 */
 	wait_queue_head_t	btree_cache_wait;
 	struct task_struct	*btree_cache_alloc_lock;
+	spinlock_t		btree_cannibalize_lock;
 
 	/*
 	 * When we free a btree node, we increment the gen of the bucket the
@@ -977,11 +985,12 @@
 __printf(2, 3)
 bool bch_cache_set_error(struct cache_set *c, const char *fmt, ...);
 
-void bch_prio_write(struct cache *ca);
+int bch_prio_write(struct cache *ca, bool wait);
 void bch_write_bdev_super(struct cached_dev *dc, struct closure *parent);
 
 extern struct workqueue_struct *bcache_wq;
 extern struct workqueue_struct *bch_journal_wq;
+extern struct workqueue_struct *bch_flush_wq;
 extern struct mutex bch_register_lock;
 extern struct list_head bch_cache_sets;
 
@@ -1004,6 +1013,7 @@
 int bch_cached_dev_attach(struct cached_dev *dc, struct cache_set *c,
 			  uint8_t *set_uuid);
 void bch_cached_dev_detach(struct cached_dev *dc);
+void bch_cached_dev_emit_change(struct cached_dev *);
 int bch_cached_dev_run(struct cached_dev *dc);
 void bcache_device_stop(struct bcache_device *d);
 
@@ -1023,5 +1033,7 @@
 void bch_debug_init(void);
 void bch_request_exit(void);
 int bch_request_init(void);
+void bch_btree_exit(void);
+int bch_btree_init(void);
 
 #endif /* _BCACHE_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/bset.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/bset.c
@@ -321,7 +321,7 @@
 
 	b->page_order = page_order;
 
-	t->data = (void *) __get_free_pages(gfp, b->page_order);
+	t->data = (void *) __get_free_pages(__GFP_COMP|gfp, b->page_order);
 	if (!t->data)
 		goto err;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/bset.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/bset.h
@@ -397,7 +397,8 @@
 
 /* Bkey utility code */
 
-#define bset_bkey_last(i)	bkey_idx((struct bkey *) (i)->d, (i)->keys)
+#define bset_bkey_last(i)	bkey_idx((struct bkey *) (i)->d, \
+					 (unsigned int)(i)->keys)
 
 static inline struct bkey *bset_bkey_idx(struct bset *i, unsigned int idx)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/btree.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/btree.c
@@ -99,6 +99,8 @@
 #define PTR_HASH(c, k)							\
 	(((k)->ptr[0] >> c->bucket_bits) | PTR_GEN(k, 0))
 
+static struct workqueue_struct *btree_io_wq;
+
 #define insert_lock(s, b)	((b)->level <= (s)->lock)
 
 /*
@@ -366,7 +368,7 @@
 	btree_complete_write(b, w);
 
 	if (btree_node_dirty(b))
-		schedule_delayed_work(&b->work, 30 * HZ);
+		queue_delayed_work(btree_io_wq, &b->work, 30 * HZ);
 
 	closure_return_with_destructor(cl, btree_node_write_unlock);
 }
@@ -539,7 +541,7 @@
 	BUG_ON(!i->keys);
 
 	if (!btree_node_dirty(b))
-		schedule_delayed_work(&b->work, 30 * HZ);
+		queue_delayed_work(btree_io_wq, &b->work, 30 * HZ);
 
 	set_btree_node_dirty(b);
 
@@ -723,38 +725,38 @@
 	 * IO can always make forward progress:
 	 */
 	nr /= c->btree_pages;
+	if (nr == 0)
+		nr = 1;
 	nr = min_t(unsigned long, nr, mca_can_free(c));
 
 	i = 0;
 	btree_cache_used = c->btree_cache_used;
-	list_for_each_entry_safe(b, t, &c->btree_cache_freeable, list) {
+	list_for_each_entry_safe_reverse(b, t, &c->btree_cache_freeable, list) {
 		if (nr <= 0)
 			goto out;
 
-		if (++i > 3 &&
-		    !mca_reap(b, 0, false)) {
+		if (!mca_reap(b, 0, false)) {
 			mca_data_free(b);
 			rw_unlock(true, b);
 			freed++;
 		}
 		nr--;
+		i++;
 	}
 
-	for (;  (nr--) && i < btree_cache_used; i++) {
-		if (list_empty(&c->btree_cache))
+	list_for_each_entry_safe_reverse(b, t, &c->btree_cache, list) {
+		if (nr <= 0 || i >= btree_cache_used)
 			goto out;
 
-		b = list_first_entry(&c->btree_cache, struct btree, list);
-		list_rotate_left(&c->btree_cache);
-
-		if (!b->accessed &&
-		    !mca_reap(b, 0, false)) {
+		if (!mca_reap(b, 0, false)) {
 			mca_bucket_free(b);
 			mca_data_free(b);
 			rw_unlock(true, b);
 			freed++;
-		} else
-			b->accessed = 0;
+		}
+
+		nr--;
+		i++;
 	}
 out:
 	mutex_unlock(&c->bucket_lock);
@@ -838,7 +840,7 @@
 	mutex_init(&c->verify_lock);
 
 	c->verify_ondisk = (void *)
-		__get_free_pages(GFP_KERNEL, ilog2(bucket_pages(c)));
+		__get_free_pages(GFP_KERNEL|__GFP_COMP, ilog2(bucket_pages(c)));
 
 	c->verify_data = mca_bucket_alloc(c, &ZERO_KEY, GFP_KERNEL);
 
@@ -884,15 +886,17 @@
 
 static int mca_cannibalize_lock(struct cache_set *c, struct btree_op *op)
 {
-	struct task_struct *old;
-
-	old = cmpxchg(&c->btree_cache_alloc_lock, NULL, current);
-	if (old && old != current) {
+	spin_lock(&c->btree_cannibalize_lock);
+	if (likely(c->btree_cache_alloc_lock == NULL)) {
+		c->btree_cache_alloc_lock = current;
+	} else if (c->btree_cache_alloc_lock != current) {
 		if (op)
 			prepare_to_wait(&c->btree_cache_wait, &op->wait,
 					TASK_UNINTERRUPTIBLE);
+		spin_unlock(&c->btree_cannibalize_lock);
 		return -EINTR;
 	}
+	spin_unlock(&c->btree_cannibalize_lock);
 
 	return 0;
 }
@@ -927,10 +931,12 @@
  */
 static void bch_cannibalize_unlock(struct cache_set *c)
 {
+	spin_lock(&c->btree_cannibalize_lock);
 	if (c->btree_cache_alloc_lock == current) {
 		c->btree_cache_alloc_lock = NULL;
 		wake_up(&c->btree_cache_wait);
 	}
+	spin_unlock(&c->btree_cannibalize_lock);
 }
 
 static struct btree *mca_alloc(struct cache_set *c, struct btree_op *op,
@@ -1058,7 +1064,6 @@
 	BUG_ON(!b->written);
 
 	b->parent = parent;
-	b->accessed = 1;
 
 	for (; i <= b->keys.nsets && b->keys.set[i].size; i++) {
 		prefetch(b->keys.set[i].tree);
@@ -1149,7 +1154,6 @@
 		goto retry;
 	}
 
-	b->accessed = 1;
 	b->parent = parent;
 	bch_bset_init_next(&b->keys, b->keys.set->data, bset_magic(&b->c->sb));
 
@@ -1440,7 +1444,7 @@
 			if (__set_blocks(n1, n1->keys + n2->keys,
 					 block_bytes(b->c)) >
 			    btree_blocks(new_nodes[i]))
-				goto out_nocoalesce;
+				goto out_unlock_nocoalesce;
 
 			keys = n2->keys;
 			/* Take the key of the node we're getting rid of */
@@ -1469,7 +1473,7 @@
 
 		if (__bch_keylist_realloc(&keylist,
 					  bkey_u64s(&new_nodes[i]->key)))
-			goto out_nocoalesce;
+			goto out_unlock_nocoalesce;
 
 		bch_btree_node_write(new_nodes[i], &cl);
 		bch_keylist_add(&keylist, &new_nodes[i]->key);
@@ -1515,6 +1519,10 @@
 	/* Invalidated our iterator */
 	return -EINTR;
 
+out_unlock_nocoalesce:
+	for (i = 0; i < nodes; i++)
+		mutex_unlock(&new_nodes[i]->write_lock);
+
 out_nocoalesce:
 	closure_sync(&cl);
 
@@ -2649,3 +2657,18 @@
 	spin_lock_init(&buf->lock);
 	array_allocator_init(&buf->freelist);
 }
+
+void bch_btree_exit(void)
+{
+	if (btree_io_wq)
+		destroy_workqueue(btree_io_wq);
+}
+
+int __init bch_btree_init(void)
+{
+	btree_io_wq = alloc_workqueue("bch_btree_io", WQ_MEM_RECLAIM, 0);
+	if (!btree_io_wq)
+		return -ENOMEM;
+
+	return 0;
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/btree.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/btree.h
@@ -121,8 +121,6 @@
 	/* Key/pointer for this btree node */
 	BKEY_PADDED(key);
 
-	/* Single bit - set when accessed, cleared by shrinker */
-	unsigned long		accessed;
 	unsigned long		seq;
 	struct rw_semaphore	lock;
 	struct cache_set	*c;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/journal.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/journal.c
@@ -417,10 +417,15 @@
 
 /* Journalling */
 
+#define nr_to_fifo_front(p, front_p, mask)	(((p) - (front_p)) & (mask))
+
 static void btree_flush_write(struct cache_set *c)
 {
 	struct btree *b, *t, *btree_nodes[BTREE_FLUSH_NR];
-	unsigned int i, n;
+	unsigned int i, nr;
+	int ref_nr;
+	atomic_t *fifo_front_p, *now_fifo_front_p;
+	size_t mask;
 
 	if (c->journal.btree_flushing)
 		return;
@@ -433,12 +438,50 @@
 	c->journal.btree_flushing = true;
 	spin_unlock(&c->journal.flush_write_lock);
 
+	/* get the oldest journal entry and check its refcount */
+	spin_lock(&c->journal.lock);
+	fifo_front_p = &fifo_front(&c->journal.pin);
+	ref_nr = atomic_read(fifo_front_p);
+	if (ref_nr <= 0) {
+		/*
+		 * do nothing if no btree node references
+		 * the oldest journal entry
+		 */
+		spin_unlock(&c->journal.lock);
+		goto out;
+	}
+	spin_unlock(&c->journal.lock);
+
+	mask = c->journal.pin.mask;
+	nr = 0;
 	atomic_long_inc(&c->flush_write);
 	memset(btree_nodes, 0, sizeof(btree_nodes));
-	n = 0;
 
 	mutex_lock(&c->bucket_lock);
 	list_for_each_entry_safe_reverse(b, t, &c->btree_cache, list) {
+		/*
+		 * It is safe to get now_fifo_front_p without holding
+		 * c->journal.lock here, because we don't need to know
+		 * the exactly accurate value, just check whether the
+		 * front pointer of c->journal.pin is changed.
+		 */
+		now_fifo_front_p = &fifo_front(&c->journal.pin);
+		/*
+		 * If the oldest journal entry is reclaimed and front
+		 * pointer of c->journal.pin changes, it is unnecessary
+		 * to scan c->btree_cache anymore, just quit the loop and
+		 * flush out what we have already.
+		 */
+		if (now_fifo_front_p != fifo_front_p)
+			break;
+		/*
+		 * quit this loop if all matching btree nodes are
+		 * scanned and record in btree_nodes[] already.
+		 */
+		ref_nr = atomic_read(fifo_front_p);
+		if (nr >= ref_nr)
+			break;
+
 		if (btree_node_journal_flush(b))
 			pr_err("BUG: flush_write bit should not be set here!");
 
@@ -454,17 +497,44 @@
 			continue;
 		}
 
+		/*
+		 * Only select the btree node which exactly references
+		 * the oldest journal entry.
+		 *
+		 * If the journal entry pointed by fifo_front_p is
+		 * reclaimed in parallel, don't worry:
+		 * - the list_for_each_xxx loop will quit when checking
+		 *   next now_fifo_front_p.
+		 * - If there are matched nodes recorded in btree_nodes[],
+		 *   they are clean now (this is why and how the oldest
+		 *   journal entry can be reclaimed). These selected nodes
+		 *   will be ignored and skipped in the folowing for-loop.
+		 */
+		if (nr_to_fifo_front(btree_current_write(b)->journal,
+				     fifo_front_p,
+				     mask) != 0) {
+			mutex_unlock(&b->write_lock);
+			continue;
+		}
+
 		set_btree_node_journal_flush(b);
 
 		mutex_unlock(&b->write_lock);
 
-		btree_nodes[n++] = b;
-		if (n == BTREE_FLUSH_NR)
+		btree_nodes[nr++] = b;
+		/*
+		 * To avoid holding c->bucket_lock too long time,
+		 * only scan for BTREE_FLUSH_NR matched btree nodes
+		 * at most. If there are more btree nodes reference
+		 * the oldest journal entry, try to flush them next
+		 * time when btree_flush_write() is called.
+		 */
+		if (nr == BTREE_FLUSH_NR)
 			break;
 	}
 	mutex_unlock(&c->bucket_lock);
 
-	for (i = 0; i < n; i++) {
+	for (i = 0; i < nr; i++) {
 		b = btree_nodes[i];
 		if (!b) {
 			pr_err("BUG: btree_nodes[%d] is NULL", i);
@@ -497,6 +567,7 @@
 		mutex_unlock(&b->write_lock);
 	}
 
+out:
 	spin_lock(&c->journal.flush_write_lock);
 	c->journal.btree_flushing = false;
 	spin_unlock(&c->journal.flush_write_lock);
@@ -887,8 +958,8 @@
 		journal_try_write(c);
 	} else if (!w->dirty) {
 		w->dirty = true;
-		schedule_delayed_work(&c->journal.work,
-				      msecs_to_jiffies(c->journal_delay_ms));
+		queue_delayed_work(bch_flush_wq, &c->journal.work,
+				   msecs_to_jiffies(c->journal_delay_ms));
 		spin_unlock(&c->journal.lock);
 	} else {
 		spin_unlock(&c->journal.lock);
@@ -931,8 +1002,8 @@
 	j->w[1].c = c;
 
 	if (!(init_fifo(&j->pin, JOURNAL_PIN, GFP_KERNEL)) ||
-	    !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)) ||
-	    !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)))
+	    !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL|__GFP_COMP, JSET_BITS)) ||
+	    !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL|__GFP_COMP, JSET_BITS)))
 		return -ENOMEM;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/request.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/request.c
@@ -391,13 +391,20 @@
 		goto skip;
 
 	/*
-	 * Flag for bypass if the IO is for read-ahead or background,
-	 * unless the read-ahead request is for metadata
+	 * If the bio is for read-ahead or background IO, bypass it or
+	 * not depends on the following situations,
+	 * - If the IO is for meta data, always cache it and no bypass
+	 * - If the IO is not meta data, check dc->cache_reada_policy,
+	 *      BCH_CACHE_READA_ALL: cache it and not bypass
+	 *      BCH_CACHE_READA_META_ONLY: not cache it and bypass
+	 * That is, read-ahead request for metadata always get cached
 	 * (eg, for gfs2 or xfs).
 	 */
-	if (bio->bi_opf & (REQ_RAHEAD|REQ_BACKGROUND) &&
-	    !(bio->bi_opf & (REQ_META|REQ_PRIO)))
-		goto skip;
+	if ((bio->bi_opf & (REQ_RAHEAD|REQ_BACKGROUND))) {
+		if (!(bio->bi_opf & (REQ_META|REQ_PRIO)) &&
+		    (dc->cache_readahead_policy != BCH_CACHE_READA_ALL))
+			goto skip;
+	}
 
 	if (bio->bi_iter.bi_sector & (c->sb.block_size - 1) ||
 	    bio_sectors(bio) & (c->sb.block_size - 1)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/stats.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/stats.c
@@ -109,9 +109,13 @@
 
 void bch_cache_accounting_clear(struct cache_accounting *acc)
 {
-	memset(&acc->total.cache_hits,
-	       0,
-	       sizeof(struct cache_stats));
+	acc->total.cache_hits = 0;
+	acc->total.cache_misses = 0;
+	acc->total.cache_bypass_hits = 0;
+	acc->total.cache_bypass_misses = 0;
+	acc->total.cache_readaheads = 0;
+	acc->total.cache_miss_collisions = 0;
+	acc->total.sectors_bypassed = 0;
 }
 
 void bch_cache_accounting_destroy(struct cache_accounting *acc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/super.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/super.c
@@ -48,6 +48,7 @@
 static DEFINE_IDA(bcache_device_idx);
 static wait_queue_head_t unregister_wait;
 struct workqueue_struct *bcache_wq;
+struct workqueue_struct *bch_flush_wq;
 struct workqueue_struct *bch_journal_wq;
 
 
@@ -529,12 +530,29 @@
 	closure_sync(cl);
 }
 
-void bch_prio_write(struct cache *ca)
+int bch_prio_write(struct cache *ca, bool wait)
 {
 	int i;
 	struct bucket *b;
 	struct closure cl;
 
+	pr_debug("free_prio=%zu, free_none=%zu, free_inc=%zu",
+		 fifo_used(&ca->free[RESERVE_PRIO]),
+		 fifo_used(&ca->free[RESERVE_NONE]),
+		 fifo_used(&ca->free_inc));
+
+	/*
+	 * Pre-check if there are enough free buckets. In the non-blocking
+	 * scenario it's better to fail early rather than starting to allocate
+	 * buckets and do a cleanup later in case of failure.
+	 */
+	if (!wait) {
+		size_t avail = fifo_used(&ca->free[RESERVE_PRIO]) +
+			       fifo_used(&ca->free[RESERVE_NONE]);
+		if (prio_buckets(ca) > avail)
+			return -ENOMEM;
+	}
+
 	closure_init_stack(&cl);
 
 	lockdep_assert_held(&ca->set->bucket_lock);
@@ -544,9 +562,6 @@
 	atomic_long_add(ca->sb.bucket_size * prio_buckets(ca),
 			&ca->meta_sectors_written);
 
-	//pr_debug("free %zu, free_inc %zu, unused %zu", fifo_used(&ca->free),
-	//	 fifo_used(&ca->free_inc), fifo_used(&ca->unused));
-
 	for (i = prio_buckets(ca) - 1; i >= 0; --i) {
 		long bucket;
 		struct prio_set *p = ca->disk_buckets;
@@ -564,7 +579,7 @@
 		p->magic	= pset_magic(&ca->sb);
 		p->csum		= bch_crc64(&p->magic, bucket_bytes(ca) - 8);
 
-		bucket = bch_bucket_alloc(ca, RESERVE_PRIO, true);
+		bucket = bch_bucket_alloc(ca, RESERVE_PRIO, wait);
 		BUG_ON(bucket == -1);
 
 		mutex_unlock(&ca->set->bucket_lock);
@@ -593,6 +608,7 @@
 
 		ca->prio_last_buckets[i] = ca->prio_buckets[i];
 	}
+	return 0;
 }
 
 static void prio_read(struct cache *ca, uint64_t bucket)
@@ -761,20 +777,31 @@
 
 static void bcache_device_free(struct bcache_device *d)
 {
+	struct gendisk *disk = d->disk;
+
 	lockdep_assert_held(&bch_register_lock);
 
-	pr_info("%s stopped", d->disk->disk_name);
+	if (disk)
+		pr_info("%s stopped", disk->disk_name);
+	else
+		pr_err("bcache device (NULL gendisk) stopped");
 
 	if (d->c)
 		bcache_device_detach(d);
-	if (d->disk && d->disk->flags & GENHD_FL_UP)
-		del_gendisk(d->disk);
-	if (d->disk && d->disk->queue)
-		blk_cleanup_queue(d->disk->queue);
-	if (d->disk) {
+
+	if (disk) {
+		bool disk_added = (disk->flags & GENHD_FL_UP) != 0;
+
+		if (disk_added)
+			del_gendisk(disk);
+
+		if (disk->queue)
+			blk_cleanup_queue(disk->queue);
+
 		ida_simple_remove(&bcache_device_idx,
-				  first_minor_to_idx(d->disk->first_minor));
-		put_disk(d->disk);
+				  first_minor_to_idx(disk->first_minor));
+		if (disk_added)
+			put_disk(disk);
 	}
 
 	bioset_exit(&d->bio_split);
@@ -785,24 +812,24 @@
 }
 
 static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
-			      sector_t sectors)
+			      sector_t sectors, struct block_device *cached_bdev)
 {
 	struct request_queue *q;
 	const size_t max_stripes = min_t(size_t, INT_MAX,
 					 SIZE_MAX / sizeof(atomic_t));
-	size_t n;
+	uint64_t n;
 	int idx;
 
 	if (!d->stripe_size)
 		d->stripe_size = 1 << 31;
 
-	d->nr_stripes = DIV_ROUND_UP_ULL(sectors, d->stripe_size);
-
-	if (!d->nr_stripes || d->nr_stripes > max_stripes) {
-		pr_err("nr_stripes too large or invalid: %u (start sector beyond end of disk?)",
-			(unsigned int)d->nr_stripes);
+	n = DIV_ROUND_UP_ULL(sectors, d->stripe_size);
+	if (!n || n > max_stripes) {
+		pr_err("nr_stripes too large or invalid: %llu (start sector beyond end of disk?)\n",
+			n);
 		return -ENOMEM;
 	}
+	d->nr_stripes = n;
 
 	n = d->nr_stripes * sizeof(atomic_t);
 	d->stripe_sectors_dirty = kvzalloc(n, GFP_KERNEL);
@@ -852,6 +879,21 @@
 	q->limits.io_min		= block_size;
 	q->limits.logical_block_size	= block_size;
 	q->limits.physical_block_size	= block_size;
+
+	if (q->limits.logical_block_size > PAGE_SIZE && cached_bdev) {
+		/*
+		 * This should only happen with BCACHE_SB_VERSION_BDEV.
+		 * Block/page size is checked for BCACHE_SB_VERSION_CDEV.
+		 */
+		pr_info("%s: sb/logical block size (%u) greater than page size "
+			"(%lu) falling back to device logical block size (%u)",
+			d->disk->disk_name, q->limits.logical_block_size,
+			PAGE_SIZE, bdev_logical_block_size(cached_bdev));
+
+		/* This also adjusts physical block size/min io size if needed */
+		blk_queue_logical_block_size(q, bdev_logical_block_size(cached_bdev));
+	}
+
 	blk_queue_flag_set(QUEUE_FLAG_NONROT, d->disk->queue);
 	blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, d->disk->queue);
 	blk_queue_flag_set(QUEUE_FLAG_DISCARD, d->disk->queue);
@@ -917,7 +959,7 @@
 }
 
 
-int bch_cached_dev_run(struct cached_dev *dc)
+void bch_cached_dev_emit_change(struct cached_dev *dc)
 {
 	struct bcache_device *d = &dc->disk;
 	char *buf = kmemdup_nul(dc->sb.label, SB_LABEL_SIZE, GFP_KERNEL);
@@ -928,19 +970,26 @@
 		NULL,
 	};
 
+	/*
+	 * won't show up in the uevent file, use udevadm monitor -e instead
+	 * only class / kset properties are persistent
+	 */
+	kobject_uevent_env(&disk_to_dev(d->disk)->kobj, KOBJ_CHANGE, env);
+	kfree(env[1]);
+	kfree(env[2]);
+	kfree(buf);
+}
+
+int bch_cached_dev_run(struct cached_dev *dc)
+{
+	struct bcache_device *d = &dc->disk;
 	if (dc->io_disable) {
 		pr_err("I/O disabled on cached dev %s",
 		       dc->backing_dev_name);
-		kfree(env[1]);
-		kfree(env[2]);
-		kfree(buf);
 		return -EIO;
 	}
 
 	if (atomic_xchg(&dc->running, 1)) {
-		kfree(env[1]);
-		kfree(env[2]);
-		kfree(buf);
 		pr_info("cached dev %s is running already",
 		       dc->backing_dev_name);
 		return -EBUSY;
@@ -959,14 +1008,9 @@
 
 	add_disk(d->disk);
 	bd_link_disk_holder(dc->bdev, dc->disk.disk);
-	/*
-	 * won't show up in the uevent file, use udevadm monitor -e instead
-	 * only class / kset properties are persistent
-	 */
-	kobject_uevent_env(&disk_to_dev(d->disk)->kobj, KOBJ_CHANGE, env);
-	kfree(env[1]);
-	kfree(env[2]);
-	kfree(buf);
+
+	/* emit change event */
+	bch_cached_dev_emit_change(dc);
 
 	if (sysfs_create_link(&d->kobj, &disk_to_dev(d->disk)->kobj, "dev") ||
 	    sysfs_create_link(&disk_to_dev(d->disk)->kobj,
@@ -1251,6 +1295,9 @@
 
 	mutex_unlock(&bch_register_lock);
 
+	if (dc->sb_bio.bi_inline_vecs[0].bv_page)
+		put_page(bio_first_page_all(&dc->sb_bio));
+
 	if (!IS_ERR_OR_NULL(dc->bdev))
 		blkdev_put(dc->bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
 
@@ -1305,7 +1352,7 @@
 			q->limits.raid_partial_stripes_expensive;
 
 	ret = bcache_device_init(&dc->disk, block_size,
-			 dc->bdev->bd_part->nr_sects - dc->sb.data_offset);
+			 dc->bdev->bd_part->nr_sects - dc->sb.data_offset, dc->bdev);
 	if (ret)
 		return ret;
 
@@ -1421,7 +1468,7 @@
 
 	kobject_init(&d->kobj, &bch_flash_dev_ktype);
 
-	if (bcache_device_init(d, block_bytes(c), u->sectors))
+	if (bcache_device_init(d, block_bytes(c), u->sectors, NULL))
 		goto err;
 
 	bcache_device_attach(d, c, u - c->uuids);
@@ -1725,7 +1772,7 @@
 }
 
 #define alloc_bucket_pages(gfp, c)			\
-	((void *) __get_free_pages(__GFP_ZERO|gfp, ilog2(bucket_pages(c))))
+	((void *) __get_free_pages(__GFP_ZERO|__GFP_COMP|gfp, ilog2(bucket_pages(c))))
 
 struct cache_set *bch_cache_set_alloc(struct cache_sb *sb)
 {
@@ -1769,6 +1816,7 @@
 	sema_init(&c->sb_write_mutex, 1);
 	mutex_init(&c->bucket_lock);
 	init_waitqueue_head(&c->btree_cache_wait);
+	spin_lock_init(&c->btree_cannibalize_lock);
 	init_waitqueue_head(&c->bucket_wait);
 	init_waitqueue_head(&c->gc_wait);
 	sema_init(&c->uuid_write_mutex, 1);
@@ -1954,7 +2002,7 @@
 
 		mutex_lock(&c->bucket_lock);
 		for_each_cache(ca, c, i)
-			bch_prio_write(ca);
+			bch_prio_write(ca, true);
 		mutex_unlock(&c->bucket_lock);
 
 		err = "cannot allocate new UUID bucket";
@@ -2062,7 +2110,14 @@
 	    sysfs_create_link(&c->kobj, &ca->kobj, buf))
 		goto err;
 
-	if (ca->sb.seq > c->sb.seq) {
+	/*
+	 * A special case is both ca->sb.seq and c->sb.seq are 0,
+	 * such condition happens on a new created cache device whose
+	 * super block is never flushed yet. In this case c->sb.version
+	 * and other members should be updated too, otherwise we will
+	 * have a mistaken super block version in cache set.
+	 */
+	if (ca->sb.seq > c->sb.seq || c->sb.seq == 0) {
 		c->sb.version		= ca->sb.version;
 		memcpy(c->sb.set_uuid, ca->sb.set_uuid, 16);
 		c->sb.flags             = ca->sb.flags;
@@ -2325,6 +2380,21 @@
 	return false;
 }
 
+static struct cached_dev *bch_find_cached_dev(struct block_device *bdev) {
+	struct cache_set *c, *tc;
+	struct cached_dev *dc, *t;
+
+	list_for_each_entry_safe(c, tc, &bch_cache_sets, list)
+		list_for_each_entry_safe(dc, t, &c->cached_devs, list)
+			if (dc->bdev == bdev)
+				return dc;
+	list_for_each_entry_safe(dc, t, &uncached_devices, list)
+		if (dc->bdev == bdev)
+			return dc;
+
+	return NULL;
+}
+
 static bool bch_is_open_cache(struct block_device *bdev)
 {
 	struct cache_set *c, *tc;
@@ -2346,29 +2416,36 @@
 static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
 			       const char *buffer, size_t size)
 {
-	ssize_t ret = -EINVAL;
-	const char *err = "cannot allocate memory";
+	const char *err;
 	char *path = NULL;
-	struct cache_sb *sb = NULL;
+	struct cache_sb *sb;
 	struct block_device *bdev = NULL;
-	struct page *sb_page = NULL;
+	struct cached_dev *dc = NULL;
+	struct page *sb_page;
+	ssize_t ret;
 
+	ret = -EBUSY;
+	err = "failed to reference bcache module";
 	if (!try_module_get(THIS_MODULE))
-		return -EBUSY;
+		goto out;
 
 	/* For latest state of bcache_is_reboot */
 	smp_mb();
+	err = "bcache is in reboot";
 	if (bcache_is_reboot)
-		return -EBUSY;
+		goto out_module_put;
 
+	ret = -ENOMEM;
+	err = "cannot allocate memory";
 	path = kstrndup(buffer, size, GFP_KERNEL);
 	if (!path)
-		goto err;
+		goto out_module_put;
 
 	sb = kmalloc(sizeof(struct cache_sb), GFP_KERNEL);
 	if (!sb)
-		goto err;
+		goto out_free_path;
 
+	ret = -EINVAL;
 	err = "failed to open device";
 	bdev = blkdev_get_by_path(strim(path),
 				  FMODE_READ|FMODE_WRITE|FMODE_EXCL,
@@ -2377,65 +2454,87 @@
 		if (bdev == ERR_PTR(-EBUSY)) {
 			bdev = lookup_bdev(strim(path));
 			mutex_lock(&bch_register_lock);
-			if (!IS_ERR(bdev) && bch_is_open(bdev))
+			if (!IS_ERR(bdev) && bch_is_open(bdev)) {
 				err = "device already registered";
-			else
+				/* emit CHANGE event for backing devices to export
+				 * CACHED_{UUID/LABEL} values to udev */
+				if (bch_is_open_backing(bdev)) {
+					dc = bch_find_cached_dev(bdev);
+					if (dc) {
+						bch_cached_dev_emit_change(dc);
+						err = "device already registered (emitting change event)";
+					}
+				}
+			} else {
 				err = "device busy";
+			}
 			mutex_unlock(&bch_register_lock);
 			if (!IS_ERR(bdev))
 				bdput(bdev);
 			if (attr == &ksysfs_register_quiet)
-				goto quiet_out;
+				goto done;
 		}
-		goto err;
+		goto out_free_sb;
 	}
 
 	err = "failed to set blocksize";
 	if (set_blocksize(bdev, 4096))
-		goto err_close;
+		goto out_blkdev_put;
 
 	err = read_super(sb, bdev, &sb_page);
 	if (err)
-		goto err_close;
+		goto out_blkdev_put;
 
 	err = "failed to register device";
 	if (SB_IS_BDEV(sb)) {
 		struct cached_dev *dc = kzalloc(sizeof(*dc), GFP_KERNEL);
 
 		if (!dc)
-			goto err_close;
+			goto out_put_sb_page;
 
 		mutex_lock(&bch_register_lock);
 		ret = register_bdev(sb, sb_page, bdev, dc);
 		mutex_unlock(&bch_register_lock);
 		/* blkdev_put() will be called in cached_dev_free() */
-		if (ret < 0)
-			goto err;
+		if (ret < 0) {
+			bdev = NULL;
+			goto out_put_sb_page;
+		}
 	} else {
 		struct cache *ca = kzalloc(sizeof(*ca), GFP_KERNEL);
 
 		if (!ca)
-			goto err_close;
+			goto out_put_sb_page;
 
 		/* blkdev_put() will be called in bch_cache_release() */
-		if (register_cache(sb, sb_page, bdev, ca) != 0)
-			goto err;
+		if (register_cache(sb, sb_page, bdev, ca) != 0) {
+			bdev = NULL;
+			goto out_put_sb_page;
+		}
 	}
-quiet_out:
-	ret = size;
-out:
-	if (sb_page)
-		put_page(sb_page);
+
+	put_page(sb_page);
+done:
 	kfree(sb);
 	kfree(path);
 	module_put(THIS_MODULE);
-	return ret;
+	return size;
 
-err_close:
-	blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
-err:
-	pr_info("error %s: %s", path, err);
-	goto out;
+out_put_sb_page:
+	put_page(sb_page);
+out_blkdev_put:
+	if (bdev)
+		blkdev_put(bdev, FMODE_READ | FMODE_WRITE | FMODE_EXCL);
+out_free_sb:
+	kfree(sb);
+out_free_path:
+	kfree(path);
+	path = NULL;
+out_module_put:
+	module_put(THIS_MODULE);
+out:
+	pr_info("error %s: %s", path?path:"", err);
+	return ret;
 }
 
 
@@ -2597,6 +2696,9 @@
 		destroy_workqueue(bcache_wq);
 	if (bch_journal_wq)
 		destroy_workqueue(bch_journal_wq);
+	if (bch_flush_wq)
+		destroy_workqueue(bch_flush_wq);
+	bch_btree_exit();
 
 	if (bcache_major)
 		unregister_blkdev(bcache_major, "bcache");
@@ -2652,10 +2754,26 @@
 		return bcache_major;
 	}
 
+	if (bch_btree_init())
+		goto err;
+
 	bcache_wq = alloc_workqueue("bcache", WQ_MEM_RECLAIM, 0);
 	if (!bcache_wq)
 		goto err;
 
+	/*
+	 * Let's not make this `WQ_MEM_RECLAIM` for the following reasons:
+	 *
+	 * 1. It used `system_wq` before which also does no memory reclaim.
+	 * 2. With `WQ_MEM_RECLAIM` desktop stalls, increased boot times, and
+	 *    reduced throughput can be observed.
+	 *
+	 * We still want to user our own queue to not congest the `system_wq`.
+	 */
+	bch_flush_wq = alloc_workqueue("bch_flush", 0, 0);
+	if (!bch_flush_wq)
+		goto err;
+
 	bch_journal_wq = alloc_workqueue("bch_journal", WQ_MEM_RECLAIM, 0);
 	if (!bch_journal_wq)
 		goto err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/sysfs.c
@@ -27,6 +27,12 @@
 	NULL
 };
 
+static const char * const bch_reada_cache_policies[] = {
+	"all",
+	"meta-only",
+	NULL
+};
+
 /* Default is 0 ("auto") */
 static const char * const bch_stop_on_failure_modes[] = {
 	"auto",
@@ -100,16 +106,21 @@
 rw_attribute(sequential_cutoff);
 rw_attribute(data_csum);
 rw_attribute(cache_mode);
+rw_attribute(readahead_cache_policy);
 rw_attribute(stop_when_cache_set_failed);
 rw_attribute(writeback_metadata);
 rw_attribute(writeback_running);
 rw_attribute(writeback_percent);
 rw_attribute(writeback_delay);
 rw_attribute(writeback_rate);
+rw_attribute(writeback_consider_fragment);
 
 rw_attribute(writeback_rate_update_seconds);
 rw_attribute(writeback_rate_i_term_inverse);
 rw_attribute(writeback_rate_p_term_inverse);
+rw_attribute(writeback_rate_fp_term_low);
+rw_attribute(writeback_rate_fp_term_mid);
+rw_attribute(writeback_rate_fp_term_high);
 rw_attribute(writeback_rate_minimum);
 read_attribute(writeback_rate_debug);
 
@@ -167,6 +178,11 @@
 					       bch_cache_modes,
 					       BDEV_CACHE_MODE(&dc->sb));
 
+	if (attr == &sysfs_readahead_cache_policy)
+		return bch_snprint_string_list(buf, PAGE_SIZE,
+					      bch_reada_cache_policies,
+					      dc->cache_readahead_policy);
+
 	if (attr == &sysfs_stop_when_cache_set_failed)
 		return bch_snprint_string_list(buf, PAGE_SIZE,
 					       bch_stop_on_failure_modes,
@@ -178,6 +194,7 @@
 	var_printf(bypass_torture_test,	"%i");
 	var_printf(writeback_metadata,	"%i");
 	var_printf(writeback_running,	"%i");
+	var_printf(writeback_consider_fragment,	"%i");
 	var_print(writeback_delay);
 	var_print(writeback_percent);
 	sysfs_hprint(writeback_rate,
@@ -188,6 +205,9 @@
 	var_print(writeback_rate_update_seconds);
 	var_print(writeback_rate_i_term_inverse);
 	var_print(writeback_rate_p_term_inverse);
+	var_print(writeback_rate_fp_term_low);
+	var_print(writeback_rate_fp_term_mid);
+	var_print(writeback_rate_fp_term_high);
 	var_print(writeback_rate_minimum);
 
 	if (attr == &sysfs_writeback_rate_debug) {
@@ -286,6 +306,7 @@
 	sysfs_strtoul_bool(bypass_torture_test, dc->bypass_torture_test);
 	sysfs_strtoul_bool(writeback_metadata, dc->writeback_metadata);
 	sysfs_strtoul_bool(writeback_running, dc->writeback_running);
+	sysfs_strtoul_bool(writeback_consider_fragment, dc->writeback_consider_fragment);
 	sysfs_strtoul_clamp(writeback_delay, dc->writeback_delay, 0, UINT_MAX);
 
 	sysfs_strtoul_clamp(writeback_percent, dc->writeback_percent,
@@ -314,6 +335,16 @@
 	sysfs_strtoul_clamp(writeback_rate_p_term_inverse,
 			    dc->writeback_rate_p_term_inverse,
 			    1, UINT_MAX);
+	sysfs_strtoul_clamp(writeback_rate_fp_term_low,
+			    dc->writeback_rate_fp_term_low,
+			    1, dc->writeback_rate_fp_term_mid - 1);
+	sysfs_strtoul_clamp(writeback_rate_fp_term_mid,
+			    dc->writeback_rate_fp_term_mid,
+			    dc->writeback_rate_fp_term_low + 1,
+			    dc->writeback_rate_fp_term_high - 1);
+	sysfs_strtoul_clamp(writeback_rate_fp_term_high,
+			    dc->writeback_rate_fp_term_high,
+			    dc->writeback_rate_fp_term_mid + 1, UINT_MAX);
 	sysfs_strtoul_clamp(writeback_rate_minimum,
 			    dc->writeback_rate_minimum,
 			    1, UINT_MAX);
@@ -352,6 +383,15 @@
 		}
 	}
 
+	if (attr == &sysfs_readahead_cache_policy) {
+		v = __sysfs_match_string(bch_reada_cache_policies, -1, buf);
+		if (v < 0)
+			return v;
+
+		if ((unsigned int) v != dc->cache_readahead_policy)
+			dc->cache_readahead_policy = v;
+	}
+
 	if (attr == &sysfs_stop_when_cache_set_failed) {
 		v = __sysfs_match_string(bch_stop_on_failure_modes, -1, buf);
 		if (v < 0)
@@ -466,15 +506,20 @@
 	&sysfs_data_csum,
 #endif
 	&sysfs_cache_mode,
+	&sysfs_readahead_cache_policy,
 	&sysfs_stop_when_cache_set_failed,
 	&sysfs_writeback_metadata,
 	&sysfs_writeback_running,
 	&sysfs_writeback_delay,
 	&sysfs_writeback_percent,
 	&sysfs_writeback_rate,
+	&sysfs_writeback_consider_fragment,
 	&sysfs_writeback_rate_update_seconds,
 	&sysfs_writeback_rate_i_term_inverse,
 	&sysfs_writeback_rate_p_term_inverse,
+	&sysfs_writeback_rate_fp_term_low,
+	&sysfs_writeback_rate_fp_term_mid,
+	&sysfs_writeback_rate_fp_term_high,
 	&sysfs_writeback_rate_minimum,
 	&sysfs_writeback_rate_debug,
 	&sysfs_io_errors,
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/writeback.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/writeback.c
@@ -88,6 +88,44 @@
 	int64_t integral_scaled;
 	uint32_t new_rate;
 
+	/*
+	 * We need to consider the number of dirty buckets as well
+	 * when calculating the proportional_scaled, Otherwise we might
+	 * have an unreasonable small writeback rate at a highly fragmented situation
+	 * when very few dirty sectors consumed a lot dirty buckets, the
+	 * worst case is when dirty buckets reached cutoff_writeback_sync and
+	 * dirty data is still not even reached to writeback percent, so the rate
+	 * still will be at the minimum value, which will cause the write
+	 * stuck at a non-writeback mode.
+	 */
+	struct cache_set *c = dc->disk.c;
+
+	int64_t dirty_buckets = c->nbuckets - c->avail_nbuckets;
+
+	if (dc->writeback_consider_fragment &&
+		c->gc_stats.in_use > BCH_WRITEBACK_FRAGMENT_THRESHOLD_LOW && dirty > 0) {
+		int64_t fragment =
+			div_s64((dirty_buckets *  c->sb.bucket_size), dirty);
+		int64_t fp_term;
+		int64_t fps;
+
+		if (c->gc_stats.in_use <= BCH_WRITEBACK_FRAGMENT_THRESHOLD_MID) {
+			fp_term = dc->writeback_rate_fp_term_low *
+			(c->gc_stats.in_use - BCH_WRITEBACK_FRAGMENT_THRESHOLD_LOW);
+		} else if (c->gc_stats.in_use <= BCH_WRITEBACK_FRAGMENT_THRESHOLD_HIGH) {
+			fp_term = dc->writeback_rate_fp_term_mid *
+			(c->gc_stats.in_use - BCH_WRITEBACK_FRAGMENT_THRESHOLD_MID);
+		} else {
+			fp_term = dc->writeback_rate_fp_term_high *
+			(c->gc_stats.in_use - BCH_WRITEBACK_FRAGMENT_THRESHOLD_HIGH);
+		}
+		fps = div_s64(dirty, dirty_buckets) * fp_term;
+		if (fragment > 3 && fps > proportional_scaled) {
+			/* Only overrite the p when fragment > 3 */
+			proportional_scaled = fps;
+		}
+	}
+
 	if ((error < 0 && dc->writeback_rate_integral > 0) ||
 	    (error > 0 && time_before64(local_clock(),
 			 dc->writeback_rate.next + NSEC_PER_MSEC))) {
@@ -519,15 +557,19 @@
 				  uint64_t offset, int nr_sectors)
 {
 	struct bcache_device *d = c->devices[inode];
-	unsigned int stripe_offset, stripe, sectors_dirty;
+	unsigned int stripe_offset, sectors_dirty;
+	int stripe;
 
 	if (!d)
 		return;
 
+	stripe = offset_to_stripe(d, offset);
+	if (stripe < 0)
+		return;
+
 	if (UUID_FLASH_ONLY(&c->uuids[inode]))
 		atomic_long_add(nr_sectors, &c->flash_dev_dirty_sectors);
 
-	stripe = offset_to_stripe(d, offset);
 	stripe_offset = offset & (d->stripe_size - 1);
 
 	while (nr_sectors) {
@@ -567,12 +609,12 @@
 static void refill_full_stripes(struct cached_dev *dc)
 {
 	struct keybuf *buf = &dc->writeback_keys;
-	unsigned int start_stripe, stripe, next_stripe;
+	unsigned int start_stripe, next_stripe;
+	int stripe;
 	bool wrapped = false;
 
 	stripe = offset_to_stripe(&dc->disk, KEY_OFFSET(&buf->last_scanned));
-
-	if (stripe >= dc->disk.nr_stripes)
+	if (stripe < 0)
 		stripe = 0;
 
 	start_stripe = stripe;
@@ -812,6 +854,7 @@
 
 	dc->writeback_metadata		= true;
 	dc->writeback_running		= false;
+	dc->writeback_consider_fragment = true;
 	dc->writeback_percent		= 10;
 	dc->writeback_delay		= 30;
 	atomic_long_set(&dc->writeback_rate.rate, 1024);
@@ -819,6 +862,9 @@
 
 	dc->writeback_rate_update_seconds = WRITEBACK_RATE_UPDATE_SECS_DEFAULT;
 	dc->writeback_rate_p_term_inverse = 40;
+	dc->writeback_rate_fp_term_low = 1;
+	dc->writeback_rate_fp_term_mid = 10;
+	dc->writeback_rate_fp_term_high = 1000;
 	dc->writeback_rate_i_term_inverse = 10000;
 
 	WARN_ON(test_and_clear_bit(BCACHE_DEV_WB_RUNNING, &dc->disk.flags));
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/bcache/writeback.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/bcache/writeback.h
@@ -16,6 +16,10 @@
 
 #define BCH_AUTO_GC_DIRTY_THRESHOLD	50
 
+#define BCH_WRITEBACK_FRAGMENT_THRESHOLD_LOW 50
+#define BCH_WRITEBACK_FRAGMENT_THRESHOLD_MID 57
+#define BCH_WRITEBACK_FRAGMENT_THRESHOLD_HIGH 64
+
 /*
  * 14 (16384ths) is chosen here as something that each backing device
  * should be a reasonable fraction of the share, and not to blow up
@@ -33,10 +37,22 @@
 	return ret;
 }
 
-static inline unsigned int offset_to_stripe(struct bcache_device *d,
+static inline int offset_to_stripe(struct bcache_device *d,
 					uint64_t offset)
 {
 	do_div(offset, d->stripe_size);
+
+	/* d->nr_stripes is in range [1, INT_MAX] */
+	if (unlikely(offset >= d->nr_stripes)) {
+		pr_err("Invalid stripe %llu (>= nr_stripes %d).\n",
+			offset, d->nr_stripes);
+		return -EINVAL;
+	}
+
+	/*
+	 * Here offset is definitly smaller than INT_MAX,
+	 * return it as int will never overflow.
+	 */
 	return offset;
 }
 
@@ -44,7 +60,10 @@
 					   uint64_t offset,
 					   unsigned int nr_sectors)
 {
-	unsigned int stripe = offset_to_stripe(&dc->disk, offset);
+	int stripe = offset_to_stripe(&dc->disk, offset);
+
+	if (stripe < 0)
+		return false;
 
 	while (1) {
 		if (atomic_read(dc->disk.stripe_sectors_dirty + stripe))
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-bio-record.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-bio-record.h
@@ -20,8 +20,13 @@
 struct dm_bio_details {
 	struct gendisk *bi_disk;
 	u8 bi_partno;
+	int __bi_remaining;
 	unsigned long bi_flags;
 	struct bvec_iter bi_iter;
+	bio_end_io_t *bi_end_io;
+#if defined(CONFIG_BLK_DEV_INTEGRITY)
+	struct bio_integrity_payload *bi_integrity;
+#endif
 };
 
 static inline void dm_bio_record(struct dm_bio_details *bd, struct bio *bio)
@@ -30,6 +35,11 @@
 	bd->bi_partno = bio->bi_partno;
 	bd->bi_flags = bio->bi_flags;
 	bd->bi_iter = bio->bi_iter;
+	bd->__bi_remaining = atomic_read(&bio->__bi_remaining);
+	bd->bi_end_io = bio->bi_end_io;
+#if defined(CONFIG_BLK_DEV_INTEGRITY)
+	bd->bi_integrity = bio_integrity(bio);
+#endif
 }
 
 static inline void dm_bio_restore(struct dm_bio_details *bd, struct bio *bio)
@@ -38,6 +48,11 @@
 	bio->bi_partno = bd->bi_partno;
 	bio->bi_flags = bd->bi_flags;
 	bio->bi_iter = bd->bi_iter;
+	atomic_set(&bio->__bi_remaining, bd->__bi_remaining);
+	bio->bi_end_io = bd->bi_end_io;
+#if defined(CONFIG_BLK_DEV_INTEGRITY)
+	bio->bi_integrity = bd->bi_integrity;
+#endif
 }
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-bufio.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-bufio.c
@@ -1438,6 +1438,10 @@
 sector_t dm_bufio_get_device_size(struct dm_bufio_client *c)
 {
 	sector_t s = i_size_read(c->bdev->bd_inode) >> SECTOR_SHIFT;
+	if (s >= c->start)
+		s -= c->start;
+	else
+		s = 0;
 	if (likely(c->sectors_per_block_bits >= 0))
 		s >>= c->sectors_per_block_bits;
 	else
@@ -1446,6 +1450,12 @@
 }
 EXPORT_SYMBOL_GPL(dm_bufio_get_device_size);
 
+struct dm_io_client *dm_bufio_get_dm_io_client(struct dm_bufio_client *c)
+{
+	return c->dm_io;
+}
+EXPORT_SYMBOL_GPL(dm_bufio_get_dm_io_client);
+
 sector_t dm_bufio_get_block_number(struct dm_buffer *b)
 {
 	return b->block;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-cache-metadata.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-cache-metadata.c
@@ -537,12 +537,16 @@
 					  CACHE_MAX_CONCURRENT_LOCKS);
 	if (IS_ERR(cmd->bm)) {
 		DMERR("could not create block manager");
-		return PTR_ERR(cmd->bm);
+		r = PTR_ERR(cmd->bm);
+		cmd->bm = NULL;
+		return r;
 	}
 
 	r = __open_or_format_metadata(cmd, may_format_device);
-	if (r)
+	if (r) {
 		dm_block_manager_destroy(cmd->bm);
+		cmd->bm = NULL;
+	}
 
 	return r;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-cache-target.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-cache-target.c
@@ -2867,8 +2867,8 @@
 	prevent_background_work(cache);
 	BUG_ON(atomic_read(&cache->nr_io_migrations));
 
-	cancel_delayed_work(&cache->waker);
-	flush_workqueue(cache->wq);
+	cancel_delayed_work_sync(&cache->waker);
+	drain_workqueue(cache->wq);
 	WARN_ON(cache->tracker.in_flight);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-clone-metadata.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-clone-metadata.c
@@ -67,23 +67,34 @@
  * To save constantly doing look ups on disk we keep an in core copy of the
  * on-disk bitmap, the region_map.
  *
- * To further reduce metadata I/O overhead we use a second bitmap, the dmap
- * (dirty bitmap), which tracks the dirty words, i.e. longs, of the region_map.
+ * In order to track which regions are hydrated during a metadata transaction,
+ * we use a second set of bitmaps, the dmap (dirty bitmap), which includes two
+ * bitmaps, namely dirty_regions and dirty_words. The dirty_regions bitmap
+ * tracks the regions that got hydrated during the current metadata
+ * transaction. The dirty_words bitmap tracks the dirty words, i.e. longs, of
+ * the dirty_regions bitmap.
+ *
+ * This allows us to precisely track the regions that were hydrated during the
+ * current metadata transaction and update the metadata accordingly, when we
+ * commit the current transaction. This is important because dm-clone should
+ * only commit the metadata of regions that were properly flushed to the
+ * destination device beforehand. Otherwise, in case of a crash, we could end
+ * up with a corrupted dm-clone device.
  *
  * When a region finishes hydrating dm-clone calls
  * dm_clone_set_region_hydrated(), or for discard requests
  * dm_clone_cond_set_range(), which sets the corresponding bits in region_map
  * and dmap.
  *
- * During a metadata commit we scan the dmap for dirty region_map words (longs)
- * and update accordingly the on-disk metadata. Thus, we don't have to flush to
- * disk the whole region_map. We can just flush the dirty region_map words.
+ * During a metadata commit we scan dmap->dirty_words and dmap->dirty_regions
+ * and update the on-disk metadata accordingly. Thus, we don't have to flush to
+ * disk the whole region_map. We can just flush the dirty region_map bits.
  *
- * We use a dirty bitmap, which is smaller than the original region_map, to
- * reduce the amount of memory accesses during a metadata commit. As dm-bitset
- * accesses the on-disk bitmap in 64-bit word granularity, there is no
- * significant benefit in tracking the dirty region_map bits with a smaller
- * granularity.
+ * We use the helper dmap->dirty_words bitmap, which is smaller than the
+ * original region_map, to reduce the amount of memory accesses during a
+ * metadata commit. Moreover, as dm-bitset also accesses the on-disk bitmap in
+ * 64-bit word granularity, the dirty_words bitmap helps us avoid useless disk
+ * accesses.
  *
  * We could update directly the on-disk bitmap, when dm-clone calls either
  * dm_clone_set_region_hydrated() or dm_clone_cond_set_range(), buts this
@@ -92,12 +103,13 @@
  * e.g., in a hooked overwrite bio's completion routine, and further reduce the
  * I/O completion latency.
  *
- * We maintain two dirty bitmaps. During a metadata commit we atomically swap
- * the currently used dmap with the unused one. This allows the metadata update
- * functions to run concurrently with an ongoing commit.
+ * We maintain two dirty bitmap sets. During a metadata commit we atomically
+ * swap the currently used dmap with the unused one. This allows the metadata
+ * update functions to run concurrently with an ongoing commit.
  */
 struct dirty_map {
 	unsigned long *dirty_words;
+	unsigned long *dirty_regions;
 	unsigned int changed;
 };
 
@@ -115,6 +127,9 @@
 	struct dirty_map dmap[2];
 	struct dirty_map *current_dmap;
 
+	/* Protected by lock */
+	struct dirty_map *committing_dmap;
+
 	/*
 	 * In core copy of the on-disk bitmap to save constantly doing look ups
 	 * on disk.
@@ -461,34 +476,53 @@
 	return BITS_TO_LONGS(nr_bits) * sizeof(long);
 }
 
-static int dirty_map_init(struct dm_clone_metadata *cmd)
+static int __dirty_map_init(struct dirty_map *dmap, unsigned long nr_words,
+			    unsigned long nr_regions)
 {
-	cmd->dmap[0].changed = 0;
-	cmd->dmap[0].dirty_words = kvzalloc(bitmap_size(cmd->nr_words), GFP_KERNEL);
+	dmap->changed = 0;
 
-	if (!cmd->dmap[0].dirty_words) {
-		DMERR("Failed to allocate dirty bitmap");
+	dmap->dirty_words = kvzalloc(bitmap_size(nr_words), GFP_KERNEL);
+	if (!dmap->dirty_words)
+		return -ENOMEM;
+
+	dmap->dirty_regions = kvzalloc(bitmap_size(nr_regions), GFP_KERNEL);
+	if (!dmap->dirty_regions) {
+		kvfree(dmap->dirty_words);
 		return -ENOMEM;
 	}
 
-	cmd->dmap[1].changed = 0;
-	cmd->dmap[1].dirty_words = kvzalloc(bitmap_size(cmd->nr_words), GFP_KERNEL);
+	return 0;
+}
+
+static void __dirty_map_exit(struct dirty_map *dmap)
+{
+	kvfree(dmap->dirty_words);
+	kvfree(dmap->dirty_regions);
+}
+
+static int dirty_map_init(struct dm_clone_metadata *cmd)
+{
+	if (__dirty_map_init(&cmd->dmap[0], cmd->nr_words, cmd->nr_regions)) {
+		DMERR("Failed to allocate dirty bitmap");
+		return -ENOMEM;
+	}
 
-	if (!cmd->dmap[1].dirty_words) {
+	if (__dirty_map_init(&cmd->dmap[1], cmd->nr_words, cmd->nr_regions)) {
 		DMERR("Failed to allocate dirty bitmap");
-		kvfree(cmd->dmap[0].dirty_words);
+		__dirty_map_exit(&cmd->dmap[0]);
 		return -ENOMEM;
 	}
 
 	cmd->current_dmap = &cmd->dmap[0];
+	cmd->committing_dmap = NULL;
 
 	return 0;
 }
 
 static void dirty_map_exit(struct dm_clone_metadata *cmd)
 {
-	kvfree(cmd->dmap[0].dirty_words);
-	kvfree(cmd->dmap[1].dirty_words);
+	__dirty_map_exit(&cmd->dmap[0]);
+	__dirty_map_exit(&cmd->dmap[1]);
 }
 
 static int __load_bitset_in_core(struct dm_clone_metadata *cmd)
@@ -622,7 +656,7 @@
 	return (bit >= (start + nr_regions));
 }
 
-unsigned long dm_clone_nr_of_hydrated_regions(struct dm_clone_metadata *cmd)
+unsigned int dm_clone_nr_of_hydrated_regions(struct dm_clone_metadata *cmd)
 {
 	return bitmap_weight(cmd->region_map, cmd->nr_regions);
 }
@@ -633,21 +667,23 @@
 	return find_next_zero_bit(cmd->region_map, cmd->nr_regions, start);
 }
 
-static int __update_metadata_word(struct dm_clone_metadata *cmd, unsigned long word)
+static int __update_metadata_word(struct dm_clone_metadata *cmd,
+				  unsigned long *dirty_regions,
+				  unsigned long word)
 {
 	int r;
 	unsigned long index = word * BITS_PER_LONG;
 	unsigned long max_index = min(cmd->nr_regions, (word + 1) * BITS_PER_LONG);
 
 	while (index < max_index) {
-		if (test_bit(index, cmd->region_map)) {
+		if (test_bit(index, dirty_regions)) {
 			r = dm_bitset_set_bit(&cmd->bitset_info, cmd->bitset_root,
 					      index, &cmd->bitset_root);
-
 			if (r) {
 				DMERR("dm_bitset_set_bit failed");
 				return r;
 			}
+			__clear_bit(index, dirty_regions);
 		}
 		index++;
 	}
@@ -712,7 +748,7 @@
 static int __flush_dmap(struct dm_clone_metadata *cmd, struct dirty_map *dmap)
 {
 	int r;
-	unsigned long word, flags;
+	unsigned long word;
 
 	word = 0;
 	do {
@@ -721,7 +757,7 @@
 		if (word == cmd->nr_words)
 			break;
 
-		r = __update_metadata_word(cmd, word);
+		r = __update_metadata_word(cmd, dmap->dirty_regions, word);
 
 		if (r)
 			return r;
@@ -736,23 +772,24 @@
 		return r;
 
 	/* Update the changed flag */
-	spin_lock_irqsave(&cmd->bitmap_lock, flags);
+	spin_lock_irq(&cmd->bitmap_lock);
 	dmap->changed = 0;
-	spin_unlock_irqrestore(&cmd->bitmap_lock, flags);
+	spin_unlock_irq(&cmd->bitmap_lock);
 
 	return 0;
 }
 
-int dm_clone_metadata_commit(struct dm_clone_metadata *cmd)
+int dm_clone_metadata_pre_commit(struct dm_clone_metadata *cmd)
 {
-	int r = -EPERM;
-	unsigned long flags;
+	int r = 0;
 	struct dirty_map *dmap, *next_dmap;
 
 	down_write(&cmd->lock);
 
-	if (cmd->fail_io || dm_bm_is_read_only(cmd->bm))
+	if (cmd->fail_io || dm_bm_is_read_only(cmd->bm)) {
+		r = -EPERM;
 		goto out;
+	}
 
 	/* Get current dirty bitmap */
 	dmap = cmd->current_dmap;
@@ -764,21 +801,43 @@
 	 * The last commit failed, so we don't have a clean dirty-bitmap to
 	 * use.
 	 */
-	if (WARN_ON(next_dmap->changed)) {
+	if (WARN_ON(next_dmap->changed || cmd->committing_dmap)) {
 		r = -EINVAL;
 		goto out;
 	}
 
 	/* Swap dirty bitmaps */
-	spin_lock_irqsave(&cmd->bitmap_lock, flags);
+	spin_lock_irq(&cmd->bitmap_lock);
 	cmd->current_dmap = next_dmap;
-	spin_unlock_irqrestore(&cmd->bitmap_lock, flags);
+	spin_unlock_irq(&cmd->bitmap_lock);
 
-	/*
-	 * No one is accessing the old dirty bitmap anymore, so we can flush
-	 * it.
-	 */
-	r = __flush_dmap(cmd, dmap);
+	/* Set old dirty bitmap as currently committing */
+	cmd->committing_dmap = dmap;
+out:
+	up_write(&cmd->lock);
+
+	return r;
+}
+
+int dm_clone_metadata_commit(struct dm_clone_metadata *cmd)
+{
+	int r = -EPERM;
+
+	down_write(&cmd->lock);
+
+	if (cmd->fail_io || dm_bm_is_read_only(cmd->bm))
+		goto out;
+
+	if (WARN_ON(!cmd->committing_dmap)) {
+		r = -EINVAL;
+		goto out;
+	}
+
+	r = __flush_dmap(cmd, cmd->committing_dmap);
+	if (!r) {
+		/* Clear committing dmap */
+		cmd->committing_dmap = NULL;
+	}
 out:
 	up_write(&cmd->lock);
 
@@ -791,6 +850,12 @@
 	struct dirty_map *dmap;
 	unsigned long word, flags;
 
+	if (unlikely(region_nr >= cmd->nr_regions)) {
+		DMERR("Region %lu out of range (total number of regions %lu)",
+		      region_nr, cmd->nr_regions);
+		return -ERANGE;
+	}
+
 	word = region_nr / BITS_PER_LONG;
 
 	spin_lock_irqsave(&cmd->bitmap_lock, flags);
@@ -803,6 +868,7 @@
 	dmap = cmd->current_dmap;
 
 	__set_bit(word, dmap->dirty_words);
+	__set_bit(region_nr, dmap->dirty_regions);
 	__set_bit(region_nr, cmd->region_map);
 	dmap->changed = 1;
 
@@ -817,9 +883,16 @@
 {
 	int r = 0;
 	struct dirty_map *dmap;
-	unsigned long word, region_nr, flags;
+	unsigned long word, region_nr;
 
-	spin_lock_irqsave(&cmd->bitmap_lock, flags);
+	if (unlikely(start >= cmd->nr_regions || (start + nr_regions) < start ||
+		     (start + nr_regions) > cmd->nr_regions)) {
+		DMERR("Invalid region range: start %lu, nr_regions %lu (total number of regions %lu)",
+		      start, nr_regions, cmd->nr_regions);
+		return -ERANGE;
+	}
+
+	spin_lock_irq(&cmd->bitmap_lock);
 
 	if (cmd->read_only) {
 		r = -EPERM;
@@ -831,12 +904,13 @@
 		if (!test_bit(region_nr, cmd->region_map)) {
 			word = region_nr / BITS_PER_LONG;
 			__set_bit(word, dmap->dirty_words);
+			__set_bit(region_nr, dmap->dirty_regions);
 			__set_bit(region_nr, cmd->region_map);
 			dmap->changed = 1;
 		}
 	}
 out:
-	spin_unlock_irqrestore(&cmd->bitmap_lock, flags);
+	spin_unlock_irq(&cmd->bitmap_lock);
 
 	return r;
 }
@@ -903,13 +977,11 @@
 
 void dm_clone_metadata_set_read_only(struct dm_clone_metadata *cmd)
 {
-	unsigned long flags;
-
 	down_write(&cmd->lock);
 
-	spin_lock_irqsave(&cmd->bitmap_lock, flags);
+	spin_lock_irq(&cmd->bitmap_lock);
 	cmd->read_only = 1;
-	spin_unlock_irqrestore(&cmd->bitmap_lock, flags);
+	spin_unlock_irq(&cmd->bitmap_lock);
 
 	if (!cmd->fail_io)
 		dm_bm_set_read_only(cmd->bm);
@@ -919,13 +991,11 @@
 
 void dm_clone_metadata_set_read_write(struct dm_clone_metadata *cmd)
 {
-	unsigned long flags;
-
 	down_write(&cmd->lock);
 
-	spin_lock_irqsave(&cmd->bitmap_lock, flags);
+	spin_lock_irq(&cmd->bitmap_lock);
 	cmd->read_only = 0;
-	spin_unlock_irqrestore(&cmd->bitmap_lock, flags);
+	spin_unlock_irq(&cmd->bitmap_lock);
 
 	if (!cmd->fail_io)
 		dm_bm_set_read_write(cmd->bm);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-clone-metadata.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-clone-metadata.h
@@ -44,7 +44,9 @@
  * @start: Starting region number
  * @nr_regions: Number of regions in the range
  *
- * This function doesn't block, so it's safe to call it from interrupt context.
+ * This function doesn't block, but since it uses spin_lock_irq()/spin_unlock_irq()
+ * it's NOT safe to call it from any context where interrupts are disabled, e.g.,
+ * from interrupt context.
  */
 int dm_clone_cond_set_range(struct dm_clone_metadata *cmd, unsigned long start,
 			    unsigned long nr_regions);
@@ -73,7 +75,23 @@
 
 /*
  * Commit dm-clone metadata to disk.
+ *
+ * We use a two phase commit:
+ *
+ * 1. dm_clone_metadata_pre_commit(): Prepare the current transaction for
+ *    committing. After this is called, all subsequent metadata updates, done
+ *    through either dm_clone_set_region_hydrated() or
+ *    dm_clone_cond_set_range(), will be part of the **next** transaction.
+ *
+ * 2. dm_clone_metadata_commit(): Actually commit the current transaction to
+ *    disk and start a new transaction.
+ *
+ * This allows dm-clone to flush the destination device after step (1) to
+ * ensure that all freshly hydrated regions, for which we are updating the
+ * metadata, are properly written to non-volatile storage and won't be lost in
+ * case of a crash.
  */
+int dm_clone_metadata_pre_commit(struct dm_clone_metadata *cmd);
 int dm_clone_metadata_commit(struct dm_clone_metadata *cmd);
 
 /*
@@ -110,6 +128,7 @@
  * Switches metadata to a read only mode. Once read-only mode has been entered
  * the following functions will return -EPERM:
  *
+ *   dm_clone_metadata_pre_commit()
  *   dm_clone_metadata_commit()
  *   dm_clone_set_region_hydrated()
  *   dm_clone_cond_set_range()
@@ -137,7 +156,7 @@
 /*
  * Returns the number of hydrated regions.
  */
-unsigned long dm_clone_nr_of_hydrated_regions(struct dm_clone_metadata *cmd);
+unsigned int dm_clone_nr_of_hydrated_regions(struct dm_clone_metadata *cmd);
 
 /*
  * Returns the first unhydrated region with region_nr >= @start
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-clone-target.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-clone-target.c
@@ -86,6 +86,12 @@
 
 	struct dm_clone_metadata *cmd;
 
+	/*
+	 * bio used to flush the destination device, before committing the
+	 * metadata.
+	 */
+	struct bio flush_bio;
+
 	/* Region hydration hash table */
 	struct hash_table_bucket *ht;
 
@@ -276,7 +282,7 @@
 /* Get the address of the region in sectors */
 static inline sector_t region_to_sector(struct clone *clone, unsigned long region_nr)
 {
-	return (region_nr << clone->region_shift);
+	return ((sector_t)region_nr << clone->region_shift);
 }
 
 /* Get the region number of the bio */
@@ -287,10 +293,17 @@
 
 /* Get the region range covered by the bio */
 static void bio_region_range(struct clone *clone, struct bio *bio,
-			     unsigned long *rs, unsigned long *re)
+			     unsigned long *rs, unsigned long *nr_regions)
 {
+	unsigned long end;
+
 	*rs = dm_sector_div_up(bio->bi_iter.bi_sector, clone->region_size);
-	*re = bio_end_sector(bio) >> clone->region_shift;
+	end = bio_end_sector(bio) >> clone->region_shift;
+
+	if (*rs >= end)
+		*nr_regions = 0;
+	else
+		*nr_regions = end - *rs;
 }
 
 /* Check whether a bio overwrites a region */
@@ -332,8 +345,6 @@
  */
 static void issue_bio(struct clone *clone, struct bio *bio)
 {
-	unsigned long flags;
-
 	if (!bio_triggers_commit(clone, bio)) {
 		generic_make_request(bio);
 		return;
@@ -352,9 +363,9 @@
 	 * Batch together any bios that trigger commits and then issue a single
 	 * commit for them in process_deferred_flush_bios().
 	 */
-	spin_lock_irqsave(&clone->lock, flags);
+	spin_lock_irq(&clone->lock);
 	bio_list_add(&clone->deferred_flush_bios, bio);
-	spin_unlock_irqrestore(&clone->lock, flags);
+	spin_unlock_irq(&clone->lock);
 
 	wake_worker(clone);
 }
@@ -450,7 +461,7 @@
 
 static void complete_discard_bio(struct clone *clone, struct bio *bio, bool success)
 {
-	unsigned long rs, re;
+	unsigned long rs, nr_regions;
 
 	/*
 	 * If the destination device supports discards, remap and trim the
@@ -459,9 +470,9 @@
 	 */
 	if (test_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags) && success) {
 		remap_to_dest(clone, bio);
-		bio_region_range(clone, bio, &rs, &re);
-		trim_bio(bio, rs << clone->region_shift,
-			 (re - rs) << clone->region_shift);
+		bio_region_range(clone, bio, &rs, &nr_regions);
+		trim_bio(bio, region_to_sector(clone, rs),
+			 nr_regions << clone->region_shift);
 		generic_make_request(bio);
 	} else
 		bio_endio(bio);
@@ -469,12 +480,21 @@
 
 static void process_discard_bio(struct clone *clone, struct bio *bio)
 {
-	unsigned long rs, re, flags;
+	unsigned long rs, nr_regions;
 
-	bio_region_range(clone, bio, &rs, &re);
-	BUG_ON(re > clone->nr_regions);
+	bio_region_range(clone, bio, &rs, &nr_regions);
+	if (!nr_regions) {
+		bio_endio(bio);
+		return;
+	}
 
-	if (unlikely(rs == re)) {
+	if (WARN_ON(rs >= clone->nr_regions || (rs + nr_regions) < rs ||
+		    (rs + nr_regions) > clone->nr_regions)) {
+		DMERR("%s: Invalid range (%lu + %lu, total regions %lu) for discard (%llu + %u)",
+		      clone_device_name(clone), rs, nr_regions,
+		      clone->nr_regions,
+		      (unsigned long long)bio->bi_iter.bi_sector,
+		      bio_sectors(bio));
 		bio_endio(bio);
 		return;
 	}
@@ -483,7 +503,7 @@
 	 * The covered regions are already hydrated so we just need to pass
 	 * down the discard.
 	 */
-	if (dm_clone_is_range_hydrated(clone->cmd, rs, re - rs)) {
+	if (dm_clone_is_range_hydrated(clone->cmd, rs, nr_regions)) {
 		complete_discard_bio(clone, bio, true);
 		return;
 	}
@@ -501,9 +521,9 @@
 	/*
 	 * Defer discard processing.
 	 */
-	spin_lock_irqsave(&clone->lock, flags);
+	spin_lock_irq(&clone->lock);
 	bio_list_add(&clone->deferred_discard_bios, bio);
-	spin_unlock_irqrestore(&clone->lock, flags);
+	spin_unlock_irq(&clone->lock);
 
 	wake_worker(clone);
 }
@@ -778,11 +798,14 @@
 	struct dm_io_region from, to;
 	struct clone *clone = hd->clone;
 
+	if (WARN_ON(!nr_regions))
+		return;
+
 	region_size = clone->region_size;
 	region_start = hd->region_nr;
 	region_end = region_start + nr_regions - 1;
 
-	total_size = (nr_regions - 1) << clone->region_shift;
+	total_size = region_to_sector(clone, nr_regions - 1);
 
 	if (region_end == clone->nr_regions - 1) {
 		/*
@@ -1106,10 +1129,13 @@
 /*
  * A non-zero return indicates read-only or fail mode.
  */
-static int commit_metadata(struct clone *clone)
+static int commit_metadata(struct clone *clone, bool *dest_dev_flushed)
 {
 	int r = 0;
 
+	if (dest_dev_flushed)
+		*dest_dev_flushed = false;
+
 	mutex_lock(&clone->commit_lock);
 
 	if (!dm_clone_changed_this_transaction(clone->cmd))
@@ -1120,8 +1146,26 @@
 		goto out;
 	}
 
-	r = dm_clone_metadata_commit(clone->cmd);
+	r = dm_clone_metadata_pre_commit(clone->cmd);
+	if (unlikely(r)) {
+		__metadata_operation_failed(clone, "dm_clone_metadata_pre_commit", r);
+		goto out;
+	}
 
+	bio_reset(&clone->flush_bio);
+	bio_set_dev(&clone->flush_bio, clone->dest_dev->bdev);
+	clone->flush_bio.bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
+
+	r = submit_bio_wait(&clone->flush_bio);
+	if (unlikely(r)) {
+		__metadata_operation_failed(clone, "flush destination device", r);
+		goto out;
+	}
+
+	if (dest_dev_flushed)
+		*dest_dev_flushed = true;
+
+	r = dm_clone_metadata_commit(clone->cmd);
 	if (unlikely(r)) {
 		__metadata_operation_failed(clone, "dm_clone_metadata_commit", r);
 		goto out;
@@ -1140,13 +1184,13 @@
 	int r = -EPERM;
 	struct bio *bio;
 	struct blk_plug plug;
-	unsigned long rs, re, flags;
+	unsigned long rs, nr_regions;
 	struct bio_list discards = BIO_EMPTY_LIST;
 
-	spin_lock_irqsave(&clone->lock, flags);
+	spin_lock_irq(&clone->lock);
 	bio_list_merge(&discards, &clone->deferred_discard_bios);
 	bio_list_init(&clone->deferred_discard_bios);
-	spin_unlock_irqrestore(&clone->lock, flags);
+	spin_unlock_irq(&clone->lock);
 
 	if (bio_list_empty(&discards))
 		return;
@@ -1156,14 +1200,13 @@
 
 	/* Update the metadata */
 	bio_list_for_each(bio, &discards) {
-		bio_region_range(clone, bio, &rs, &re);
+		bio_region_range(clone, bio, &rs, &nr_regions);
 		/*
 		 * A discard request might cover regions that have been already
 		 * hydrated. There is no need to update the metadata for these
 		 * regions.
 		 */
-		r = dm_clone_cond_set_range(clone->cmd, rs, re - rs);
-
+		r = dm_clone_cond_set_range(clone->cmd, rs, nr_regions);
 		if (unlikely(r))
 			break;
 	}
@@ -1176,13 +1219,12 @@
 
 static void process_deferred_bios(struct clone *clone)
 {
-	unsigned long flags;
 	struct bio_list bios = BIO_EMPTY_LIST;
 
-	spin_lock_irqsave(&clone->lock, flags);
+	spin_lock_irq(&clone->lock);
 	bio_list_merge(&bios, &clone->deferred_bios);
 	bio_list_init(&clone->deferred_bios);
-	spin_unlock_irqrestore(&clone->lock, flags);
+	spin_unlock_irq(&clone->lock);
 
 	if (bio_list_empty(&bios))
 		return;
@@ -1193,7 +1235,7 @@
 static void process_deferred_flush_bios(struct clone *clone)
 {
 	struct bio *bio;
-	unsigned long flags;
+	bool dest_dev_flushed;
 	struct bio_list bios = BIO_EMPTY_LIST;
 	struct bio_list bio_completions = BIO_EMPTY_LIST;
 
@@ -1201,19 +1243,19 @@
 	 * If there are any deferred flush bios, we must commit the metadata
 	 * before issuing them or signaling their completion.
 	 */
-	spin_lock_irqsave(&clone->lock, flags);
+	spin_lock_irq(&clone->lock);
 	bio_list_merge(&bios, &clone->deferred_flush_bios);
 	bio_list_init(&clone->deferred_flush_bios);
 
 	bio_list_merge(&bio_completions, &clone->deferred_flush_completions);
 	bio_list_init(&clone->deferred_flush_completions);
-	spin_unlock_irqrestore(&clone->lock, flags);
+	spin_unlock_irq(&clone->lock);
 
 	if (bio_list_empty(&bios) && bio_list_empty(&bio_completions) &&
 	    !(dm_clone_changed_this_transaction(clone->cmd) && need_commit_due_to_time(clone)))
 		return;
 
-	if (commit_metadata(clone)) {
+	if (commit_metadata(clone, &dest_dev_flushed)) {
 		bio_list_merge(&bios, &bio_completions);
 
 		while ((bio = bio_list_pop(&bios)))
@@ -1227,8 +1269,17 @@
 	while ((bio = bio_list_pop(&bio_completions)))
 		bio_endio(bio);
 
-	while ((bio = bio_list_pop(&bios)))
-		generic_make_request(bio);
+	while ((bio = bio_list_pop(&bios))) {
+		if ((bio->bi_opf & REQ_PREFLUSH) && dest_dev_flushed) {
+			/* We just flushed the destination device as part of
+			 * the metadata commit, so there is no reason to send
+			 * another flush.
+			 */
+			bio_endio(bio);
+		} else {
+			generic_make_request(bio);
+		}
+	}
 }
 
 static void do_worker(struct work_struct *work)
@@ -1400,7 +1451,7 @@
 
 		/* Commit to ensure statistics aren't out-of-date */
 		if (!(status_flags & DM_STATUS_NOFLUSH_FLAG) && !dm_suspended(ti))
-			(void) commit_metadata(clone);
+			(void) commit_metadata(clone, NULL);
 
 		r = dm_clone_get_free_metadata_block_count(clone->cmd, &nr_free_metadata_blocks);
 
@@ -1418,7 +1469,7 @@
 			goto error;
 		}
 
-		DMEMIT("%u %llu/%llu %llu %lu/%lu %u ",
+		DMEMIT("%u %llu/%llu %llu %u/%lu %u ",
 		       DM_CLONE_METADATA_BLOCK_SIZE,
 		       (unsigned long long)(nr_metadata_blocks - nr_free_metadata_blocks),
 		       (unsigned long long)nr_metadata_blocks,
@@ -1738,6 +1789,7 @@
 static int clone_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 {
 	int r;
+	sector_t nr_regions;
 	struct clone *clone;
 	struct dm_arg_set as;
 
@@ -1779,7 +1831,16 @@
 		goto out_with_source_dev;
 
 	clone->region_shift = __ffs(clone->region_size);
-	clone->nr_regions = dm_sector_div_up(ti->len, clone->region_size);
+	nr_regions = dm_sector_div_up(ti->len, clone->region_size);
+
+	/* Check for overflow */
+	if (nr_regions != (unsigned long)nr_regions) {
+		ti->error = "Too many regions. Consider increasing the region size";
+		r = -EOVERFLOW;
+		goto out_with_source_dev;
+	}
+
+	clone->nr_regions = nr_regions;
 
 	r = validate_nr_regions(clone->nr_regions, &ti->error);
 	if (r)
@@ -1834,6 +1895,7 @@
 	bio_list_init(&clone->deferred_flush_completions);
 	clone->hydration_offset = 0;
 	atomic_set(&clone->hydrations_in_flight, 0);
+	bio_init(&clone->flush_bio, NULL, 0);
 
 	clone->wq = alloc_workqueue("dm-" DM_MSG_PREFIX, WQ_MEM_RECLAIM, 0);
 	if (!clone->wq) {
@@ -1907,6 +1969,7 @@
 	struct clone *clone = ti->private;
 
 	mutex_destroy(&clone->commit_lock);
+	bio_uninit(&clone->flush_bio);
 
 	for (i = 0; i < clone->nr_ctr_args; i++)
 		kfree(clone->ctr_args[i]);
@@ -1961,7 +2024,7 @@
 	wait_event(clone->hydration_stopped, !atomic_read(&clone->hydrations_in_flight));
 	flush_workqueue(clone->wq);
 
-	(void) commit_metadata(clone);
+	(void) commit_metadata(clone, NULL);
 }
 
 static void clone_resume(struct dm_target *ti)
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-core.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-core.h
@@ -106,6 +106,10 @@
 
 	struct block_device *bdev;
 
+	int swap_bios;
+	struct semaphore swap_bios_semaphore;
+	struct mutex swap_bios_lock;
+
 	struct dm_stats stats;
 
 	/* for blk-mq request-based DM support */
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-crypt.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-crypt.c
@@ -331,8 +331,14 @@
 static int crypt_iv_benbi_ctr(struct crypt_config *cc, struct dm_target *ti,
 			      const char *opts)
 {
-	unsigned bs = crypto_skcipher_blocksize(any_tfm(cc));
-	int log = ilog2(bs);
+	unsigned bs;
+	int log;
+
+	if (test_bit(CRYPT_MODE_INTEGRITY_AEAD, &cc->cipher_flags))
+		bs = crypto_aead_blocksize(any_tfm_aead(cc));
+	else
+		bs = crypto_skcipher_blocksize(any_tfm(cc));
+	log = ilog2(bs);
 
 	/* we need to calculate how far we must shift the sector count
 	 * to get the cipher block count, we use this shift in _gen */
@@ -714,10 +720,10 @@
 	u8 buf[MAX_CIPHER_BLOCKSIZE] __aligned(__alignof__(__le64));
 	struct skcipher_request *req;
 	struct scatterlist src, dst;
-	struct crypto_wait wait;
+	DECLARE_CRYPTO_WAIT(wait);
 	int err;
 
-	req = skcipher_request_alloc(any_tfm(cc), GFP_KERNEL | GFP_NOFS);
+	req = skcipher_request_alloc(any_tfm(cc), GFP_NOIO);
 	if (!req)
 		return -ENOMEM;
 
@@ -2700,21 +2706,18 @@
 	}
 
 	ret = -ENOMEM;
-	cc->io_queue = alloc_workqueue("kcryptd_io/%s",
-				       WQ_HIGHPRI | WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM,
-				       1, devname);
+	cc->io_queue = alloc_workqueue("kcryptd_io/%s", WQ_MEM_RECLAIM, 1, devname);
 	if (!cc->io_queue) {
 		ti->error = "Couldn't create kcryptd io queue";
 		goto bad;
 	}
 
 	if (test_bit(DM_CRYPT_SAME_CPU, &cc->flags))
-		cc->crypt_queue = alloc_workqueue("kcryptd/%s",
-						  WQ_HIGHPRI | WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM,
+		cc->crypt_queue = alloc_workqueue("kcryptd/%s", WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM,
 						  1, devname);
 	else
 		cc->crypt_queue = alloc_workqueue("kcryptd/%s",
-						  WQ_HIGHPRI | WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | WQ_UNBOUND,
+						  WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | WQ_UNBOUND,
 						  num_online_cpus(), devname);
 	if (!cc->crypt_queue) {
 		ti->error = "Couldn't create kcryptd queue";
@@ -2734,6 +2737,7 @@
 	wake_up_process(cc->write_thread);
 
 	ti->num_flush_bios = 1;
+	ti->limit_swap_bios = true;
 
 	return 0;
 
@@ -2954,7 +2958,7 @@
 	limits->max_segment_size = PAGE_SIZE;
 
 	limits->logical_block_size =
-		max_t(unsigned short, limits->logical_block_size, cc->sector_size);
+		max_t(unsigned, limits->logical_block_size, cc->sector_size);
 	limits->physical_block_size =
 		max_t(unsigned, limits->physical_block_size, cc->sector_size);
 	limits->io_min = max_t(unsigned, limits->io_min, cc->sector_size);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-era-target.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-era-target.c
@@ -47,6 +47,7 @@
 static void writeset_free(struct writeset *ws)
 {
 	vfree(ws->bits);
+	ws->bits = NULL;
 }
 
 static int setup_on_disk_bitset(struct dm_disk_bitset *info,
@@ -71,8 +72,6 @@
  */
 static int writeset_alloc(struct writeset *ws, dm_block_t nr_blocks)
 {
-	ws->md.nr_bits = nr_blocks;
-	ws->md.root = INVALID_WRITESET_ROOT;
 	ws->bits = vzalloc(bitset_size(nr_blocks));
 	if (!ws->bits) {
 		DMERR("%s: couldn't allocate in memory bitset", __func__);
@@ -85,12 +84,14 @@
 /*
  * Wipes the in-core bitset, and creates a new on disk bitset.
  */
-static int writeset_init(struct dm_disk_bitset *info, struct writeset *ws)
+static int writeset_init(struct dm_disk_bitset *info, struct writeset *ws,
+			 dm_block_t nr_blocks)
 {
 	int r;
 
-	memset(ws->bits, 0, bitset_size(ws->md.nr_bits));
+	memset(ws->bits, 0, bitset_size(nr_blocks));
 
+	ws->md.nr_bits = nr_blocks;
 	r = setup_on_disk_bitset(info, ws->md.nr_bits, &ws->md.root);
 	if (r) {
 		DMERR("%s: setup_on_disk_bitset failed", __func__);
@@ -134,7 +135,7 @@
 {
 	int r;
 
-	if (!test_and_set_bit(block, ws->bits)) {
+	if (!test_bit(block, ws->bits)) {
 		r = dm_bitset_set_bit(info, ws->md.root, block, &ws->md.root);
 		if (r) {
 			/* FIXME: fail mode */
@@ -388,7 +389,7 @@
 
 static int ws_eq(void *context, const void *value1, const void *value2)
 {
-	return !memcmp(value1, value2, sizeof(struct writeset_metadata));
+	return !memcmp(value1, value2, sizeof(struct writeset_disk));
 }
 
 /*----------------------------------------------------------------*/
@@ -564,6 +565,15 @@
 	}
 
 	disk = dm_block_data(sblock);
+
+	/* Verify the data block size hasn't changed */
+	if (le32_to_cpu(disk->data_block_size) != md->block_size) {
+		DMERR("changing the data block size (from %u to %llu) is not supported",
+		      le32_to_cpu(disk->data_block_size), md->block_size);
+		r = -EINVAL;
+		goto bad;
+	}
+
 	r = dm_tm_open_with_sm(md->bm, SUPERBLOCK_LOCATION,
 			       disk->metadata_space_map_root,
 			       sizeof(disk->metadata_space_map_root),
@@ -575,10 +585,10 @@
 
 	setup_infos(md);
 
-	md->block_size = le32_to_cpu(disk->data_block_size);
 	md->nr_blocks = le32_to_cpu(disk->nr_blocks);
 	md->current_era = le32_to_cpu(disk->current_era);
 
+	ws_unpack(&disk->current_writeset, &md->current_writeset->md);
 	md->writeset_tree_root = le64_to_cpu(disk->writeset_tree_root);
 	md->era_array_root = le64_to_cpu(disk->era_array_root);
 	md->metadata_snap = le64_to_cpu(disk->metadata_snap);
@@ -746,6 +756,12 @@
 	ws_unpack(&disk, &d->writeset);
 	d->value = cpu_to_le32(key);
 
+	/*
+	 * We initialise another bitset info to avoid any caching side effects
+	 * with the previous one.
+	 */
+	dm_disk_bitset_init(md->tm, &d->info);
+
 	d->nr_bits = min(d->writeset.nr_bits, md->nr_blocks);
 	d->current_bit = 0;
 	d->step = metadata_digest_transcribe_writeset;
@@ -759,12 +775,6 @@
 		return 0;
 
 	memset(d, 0, sizeof(*d));
-
-	/*
-	 * We initialise another bitset info to avoid any caching side
-	 * effects with the previous one.
-	 */
-	dm_disk_bitset_init(md->tm, &d->info);
 	d->step = metadata_digest_lookup_writeset;
 
 	return 0;
@@ -802,6 +812,8 @@
 
 static void metadata_close(struct era_metadata *md)
 {
+	writeset_free(&md->writesets[0]);
+	writeset_free(&md->writesets[1]);
 	destroy_persistent_data_objects(md);
 	kfree(md);
 }
@@ -839,6 +851,7 @@
 	r = writeset_alloc(&md->writesets[1], *new_size);
 	if (r) {
 		DMERR("%s: writeset_alloc failed for writeset 1", __func__);
+		writeset_free(&md->writesets[0]);
 		return r;
 	}
 
@@ -849,6 +862,8 @@
 			    &value, &md->era_array_root);
 	if (r) {
 		DMERR("%s: dm_array_resize failed", __func__);
+		writeset_free(&md->writesets[0]);
+		writeset_free(&md->writesets[1]);
 		return r;
 	}
 
@@ -870,7 +885,6 @@
 	}
 
 	ws_pack(&md->current_writeset->md, &value);
-	md->current_writeset->md.root = INVALID_WRITESET_ROOT;
 
 	keys[0] = md->current_era;
 	__dm_bless_for_disk(&value);
@@ -882,6 +896,7 @@
 		return r;
 	}
 
+	md->current_writeset->md.root = INVALID_WRITESET_ROOT;
 	md->archived_writesets = true;
 
 	return 0;
@@ -898,7 +913,7 @@
 	int r;
 	struct writeset *new_writeset = next_writeset(md);
 
-	r = writeset_init(&md->bitset_info, new_writeset);
+	r = writeset_init(&md->bitset_info, new_writeset, md->nr_blocks);
 	if (r) {
 		DMERR("%s: writeset_init failed", __func__);
 		return r;
@@ -951,7 +966,7 @@
 	int r;
 	struct dm_block *sblock;
 
-	if (md->current_writeset->md.root != SUPERBLOCK_LOCATION) {
+	if (md->current_writeset->md.root != INVALID_WRITESET_ROOT) {
 		r = dm_bitset_flush(&md->bitset_info, md->current_writeset->md.root,
 				    &md->current_writeset->md.root);
 		if (r) {
@@ -1226,8 +1241,10 @@
 	int r;
 	struct bio_list deferred_bios, marked_bios;
 	struct bio *bio;
+	struct blk_plug plug;
 	bool commit_needed = false;
 	bool failed = false;
+	struct writeset *ws = era->md->current_writeset;
 
 	bio_list_init(&deferred_bios);
 	bio_list_init(&marked_bios);
@@ -1237,9 +1254,11 @@
 	bio_list_init(&era->deferred_bios);
 	spin_unlock(&era->deferred_lock);
 
+	if (bio_list_empty(&deferred_bios))
+		return;
+
 	while ((bio = bio_list_pop(&deferred_bios))) {
-		r = writeset_test_and_set(&era->md->bitset_info,
-					  era->md->current_writeset,
+		r = writeset_test_and_set(&era->md->bitset_info, ws,
 					  get_block(era, bio));
 		if (r < 0) {
 			/*
@@ -1247,7 +1266,6 @@
 			 * FIXME: finish.
 			 */
 			failed = true;
-
 		} else if (r == 0)
 			commit_needed = true;
 
@@ -1263,9 +1281,19 @@
 	if (failed)
 		while ((bio = bio_list_pop(&marked_bios)))
 			bio_io_error(bio);
-	else
-		while ((bio = bio_list_pop(&marked_bios)))
+	else {
+		blk_start_plug(&plug);
+		while ((bio = bio_list_pop(&marked_bios))) {
+			/*
+			 * Only update the in-core writeset if the on-disk one
+			 * was updated too.
+			 */
+			if (commit_needed)
+				set_bit(get_block(era, bio), ws->bits);
 			generic_make_request(bio);
+		}
+		blk_finish_plug(&plug);
+	}
 }
 
 static void process_rpc_calls(struct era *era)
@@ -1486,15 +1514,6 @@
 	}
 	era->md = md;
 
-	era->nr_blocks = calc_nr_blocks(era);
-
-	r = metadata_resize(era->md, &era->nr_blocks);
-	if (r) {
-		ti->error = "couldn't resize metadata";
-		era_destroy(era);
-		return -ENOMEM;
-	}
-
 	era->wq = alloc_ordered_workqueue("dm-" DM_MSG_PREFIX, WQ_MEM_RECLAIM);
 	if (!era->wq) {
 		ti->error = "could not create workqueue for metadata object";
@@ -1571,16 +1590,24 @@
 	dm_block_t new_size = calc_nr_blocks(era);
 
 	if (era->nr_blocks != new_size) {
-		r = in_worker1(era, metadata_resize, &new_size);
-		if (r)
+		r = metadata_resize(era->md, &new_size);
+		if (r) {
+			DMERR("%s: metadata_resize failed", __func__);
+			return r;
+		}
+
+		r = metadata_commit(era->md);
+		if (r) {
+			DMERR("%s: metadata_commit failed", __func__);
 			return r;
+		}
 
 		era->nr_blocks = new_size;
 	}
 
 	start_worker(era);
 
-	r = in_worker0(era, metadata_new_era);
+	r = in_worker0(era, metadata_era_rollover);
 	if (r) {
 		DMERR("%s: metadata_era_rollover failed", __func__);
 		return r;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-integrity.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-integrity.c
@@ -6,6 +6,8 @@
  * This file is released under the GPL.
  */
 
+#include "dm-bio-record.h"
+
 #include <linux/compiler.h>
 #include <linux/module.h>
 #include <linux/device-mapper.h>
@@ -199,17 +201,19 @@
 	__u8 log2_blocks_per_bitmap_bit;
 
 	unsigned char mode;
-	int suspending;
 
 	int failed;
 
 	struct crypto_shash *internal_hash;
 
+	struct dm_target *ti;
+
 	/* these variables are locked with endio_wait.lock */
 	struct rb_root in_progress;
 	struct list_head wait_list;
 	wait_queue_head_t endio_wait;
 	struct workqueue_struct *wait_wq;
+	struct workqueue_struct *offload_wq;
 
 	unsigned char commit_seq;
 	commit_id_t commit_ids[N_COMMIT_IDS];
@@ -250,6 +254,7 @@
 	bool journal_uptodate;
 	bool just_formatted;
 	bool recalculate_flag;
+	bool legacy_recalculate;
 
 	struct alg_spec internal_hash_alg;
 	struct alg_spec journal_crypt_alg;
@@ -290,11 +295,7 @@
 
 	struct completion *completion;
 
-	struct gendisk *orig_bi_disk;
-	u8 orig_bi_partno;
-	bio_end_io_t *orig_bi_end_io;
-	struct bio_integrity_payload *orig_bi_integrity;
-	struct bvec_iter orig_bi_iter;
+	struct dm_bio_details bio_details;
 };
 
 struct journal_completion {
@@ -381,6 +382,14 @@
 	return READ_ONCE(ic->failed);
 }
 
+static bool dm_integrity_disable_recalculate(struct dm_integrity_c *ic)
+{
+	if ((ic->internal_hash_alg.key || ic->journal_mac_alg.key) &&
+	    !ic->legacy_recalculate)
+		return true;
+	return false;
+}
+
 static commit_id_t dm_integrity_commit_id(struct dm_integrity_c *ic, unsigned i,
 					  unsigned j, unsigned char seq)
 {
@@ -1343,12 +1352,52 @@
 	return 0;
 }
 
-static void dm_integrity_flush_buffers(struct dm_integrity_c *ic)
+struct flush_request {
+	struct dm_io_request io_req;
+	struct dm_io_region io_reg;
+	struct dm_integrity_c *ic;
+	struct completion comp;
+};
+
+static void flush_notify(unsigned long error, void *fr_)
+{
+	struct flush_request *fr = fr_;
+	if (unlikely(error != 0))
+		dm_integrity_io_error(fr->ic, "flusing disk cache", -EIO);
+	complete(&fr->comp);
+}
+
+static void dm_integrity_flush_buffers(struct dm_integrity_c *ic, bool flush_data)
 {
 	int r;
+
+	struct flush_request fr;
+
+	if (!ic->meta_dev)
+		flush_data = false;
+	if (flush_data) {
+		fr.io_req.bi_op = REQ_OP_WRITE,
+		fr.io_req.bi_op_flags = REQ_PREFLUSH | REQ_SYNC,
+		fr.io_req.mem.type = DM_IO_KMEM,
+		fr.io_req.mem.ptr.addr = NULL,
+		fr.io_req.notify.fn = flush_notify,
+		fr.io_req.notify.context = &fr;
+		fr.io_req.client = dm_bufio_get_dm_io_client(ic->bufio),
+		fr.io_reg.bdev = ic->dev->bdev,
+		fr.io_reg.sector = 0,
+		fr.io_reg.count = 0,
+		fr.ic = ic;
+		init_completion(&fr.comp);
+		r = dm_io(&fr.io_req, 1, &fr.io_reg, NULL);
+		BUG_ON(r);
+	}
+
 	r = dm_bufio_write_dirty_buffers(ic->bufio);
 	if (unlikely(r))
 		dm_integrity_io_error(ic, "writing tags", r);
+
+	if (flush_data)
+		wait_for_completion(&fr.comp);
 }
 
 static void sleep_on_endio_wait(struct dm_integrity_c *ic)
@@ -1434,7 +1483,7 @@
 			dio->range.logical_sector += dio->range.n_sectors;
 			bio_advance(bio, dio->range.n_sectors << SECTOR_SHIFT);
 			INIT_WORK(&dio->work, integrity_bio_wait);
-			queue_work(ic->wait_wq, &dio->work);
+			queue_work(ic->offload_wq, &dio->work);
 			return;
 		}
 		do_endio_flush(ic, dio);
@@ -1445,14 +1494,9 @@
 {
 	struct dm_integrity_io *dio = dm_per_bio_data(bio, sizeof(struct dm_integrity_io));
 
-	bio->bi_iter = dio->orig_bi_iter;
-	bio->bi_disk = dio->orig_bi_disk;
-	bio->bi_partno = dio->orig_bi_partno;
-	if (dio->orig_bi_integrity) {
-		bio->bi_integrity = dio->orig_bi_integrity;
+	dm_bio_restore(&dio->bio_details, bio);
+	if (bio->bi_integrity)
 		bio->bi_opf |= REQ_INTEGRITY;
-	}
-	bio->bi_end_io = dio->orig_bi_end_io;
 
 	if (dio->completion)
 		complete(dio->completion);
@@ -1519,7 +1563,7 @@
 		struct bio *bio = dm_bio_from_per_bio_data(dio, sizeof(struct dm_integrity_io));
 		char *checksums;
 		unsigned extra_space = unlikely(digest_size > ic->tag_size) ? digest_size - ic->tag_size : 0;
-		char checksums_onstack[HASH_MAX_DIGESTSIZE];
+		char checksums_onstack[max((size_t)HASH_MAX_DIGESTSIZE, MAX_TAG_SIZE)];
 		unsigned sectors_to_process = dio->range.n_sectors;
 		sector_t sector = dio->range.logical_sector;
 
@@ -1537,7 +1581,7 @@
 			}
 		}
 
-		__bio_for_each_segment(bv, bio, iter, dio->orig_bi_iter) {
+		__bio_for_each_segment(bv, bio, iter, dio->bio_details.bi_iter) {
 			unsigned pos;
 			char *mem, *checksums_ptr;
 
@@ -1581,7 +1625,7 @@
 		if (likely(checksums != checksums_onstack))
 			kfree(checksums);
 	} else {
-		struct bio_integrity_payload *bip = dio->orig_bi_integrity;
+		struct bio_integrity_payload *bip = dio->bio_details.bi_integrity;
 
 		if (bip) {
 			struct bio_vec biv;
@@ -1748,7 +1792,7 @@
 				} while (++s < ic->sectors_per_block);
 #ifdef INTERNAL_VERIFY
 				if (ic->internal_hash) {
-					char checksums_onstack[max(HASH_MAX_DIGESTSIZE, MAX_TAG_SIZE)];
+					char checksums_onstack[max((size_t)HASH_MAX_DIGESTSIZE, MAX_TAG_SIZE)];
 
 					integrity_sector_checksum(ic, logical_sector, mem + bv.bv_offset, checksums_onstack);
 					if (unlikely(memcmp(checksums_onstack, journal_entry_tag(ic, je), ic->tag_size))) {
@@ -1860,7 +1904,7 @@
 
 	if (need_sync_io && from_map) {
 		INIT_WORK(&dio->work, integrity_bio_wait);
-		queue_work(ic->metadata_wq, &dio->work);
+		queue_work(ic->offload_wq, &dio->work);
 		return;
 	}
 
@@ -2000,20 +2044,13 @@
 	} else
 		dio->completion = NULL;
 
-	dio->orig_bi_iter = bio->bi_iter;
-
-	dio->orig_bi_disk = bio->bi_disk;
-	dio->orig_bi_partno = bio->bi_partno;
+	dm_bio_record(&dio->bio_details, bio);
 	bio_set_dev(bio, ic->dev->bdev);
-
-	dio->orig_bi_integrity = bio_integrity(bio);
 	bio->bi_integrity = NULL;
 	bio->bi_opf &= ~REQ_INTEGRITY;
-
-	dio->orig_bi_end_io = bio->bi_end_io;
 	bio->bi_end_io = integrity_end_io;
-
 	bio->bi_iter.bi_size = dio->range.n_sectors << SECTOR_SHIFT;
+
 	generic_make_request(bio);
 
 	if (need_sync_io) {
@@ -2089,7 +2126,7 @@
 	flushes = bio_list_get(&ic->flush_bio_list);
 	if (unlikely(ic->mode != 'J')) {
 		spin_unlock_irq(&ic->endio_wait.lock);
-		dm_integrity_flush_buffers(ic);
+		dm_integrity_flush_buffers(ic, true);
 		goto release_flush_bios;
 	}
 
@@ -2299,7 +2336,7 @@
 	complete_journal_op(&comp);
 	wait_for_completion_io(&comp.comp);
 
-	dm_integrity_flush_buffers(ic);
+	dm_integrity_flush_buffers(ic, true);
 }
 
 static void integrity_writer(struct work_struct *w)
@@ -2310,7 +2347,7 @@
 	unsigned prev_free_sectors;
 
 	/* the following test is not needed, but it tests the replay code */
-	if (READ_ONCE(ic->suspending) && !ic->meta_dev)
+	if (unlikely(dm_post_suspending(ic->ti)) && !ic->meta_dev)
 		return;
 
 	spin_lock_irq(&ic->endio_wait.lock);
@@ -2341,7 +2378,7 @@
 {
 	int r;
 
-	dm_integrity_flush_buffers(ic);
+	dm_integrity_flush_buffers(ic, false);
 	if (dm_integrity_failed(ic))
 		return;
 
@@ -2371,12 +2408,13 @@
 
 next_chunk:
 
-	if (unlikely(READ_ONCE(ic->suspending)))
+	if (unlikely(dm_post_suspending(ic->ti)))
 		goto unlock_ret;
 
 	range.logical_sector = le64_to_cpu(ic->sb->recalc_sector);
 	if (unlikely(range.logical_sector >= ic->provided_data_sectors)) {
 		if (ic->mode == 'B') {
+			block_bitmap_op(ic, ic->recalc_bitmap, 0, ic->provided_data_sectors, BITMAP_OP_CLEAR);
 			DEBUG_print("queue_delayed_work: bitmap_flush_work\n");
 			queue_delayed_work(ic->commit_wq, &ic->bitmap_flush_work, 0);
 		}
@@ -2454,6 +2492,17 @@
 		goto err;
 	}
 
+	if (ic->mode == 'B') {
+		sector_t start, end;
+		start = (range.logical_sector >>
+			 (ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit)) <<
+			(ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit);
+		end = ((range.logical_sector + range.n_sectors) >>
+		       (ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit)) <<
+			(ic->sb->log2_sectors_per_block + ic->log2_blocks_per_bitmap_bit);
+		block_bitmap_op(ic, ic->recalc_bitmap, start, end - start, BITMAP_OP_CLEAR);
+	}
+
 advance_and_next:
 	cond_resched();
 
@@ -2496,7 +2545,7 @@
 				    dio->range.n_sectors, BITMAP_OP_TEST_ALL_SET)) {
 			remove_range(ic, &dio->range);
 			INIT_WORK(&dio->work, integrity_bio_wait);
-			queue_work(ic->wait_wq, &dio->work);
+			queue_work(ic->offload_wq, &dio->work);
 		} else {
 			block_bitmap_op(ic, ic->journal, dio->range.logical_sector,
 					dio->range.n_sectors, BITMAP_OP_SET);
@@ -2519,7 +2568,7 @@
 
 		remove_range(ic, &dio->range);
 		INIT_WORK(&dio->work, integrity_bio_wait);
-		queue_work(ic->wait_wq, &dio->work);
+		queue_work(ic->offload_wq, &dio->work);
 	}
 
 	queue_delayed_work(ic->commit_wq, &ic->bitmap_flush_work, ic->bitmap_flush_interval);
@@ -2532,7 +2581,7 @@
 	unsigned long limit;
 	struct bio *bio;
 
-	dm_integrity_flush_buffers(ic);
+	dm_integrity_flush_buffers(ic, false);
 
 	range.logical_sector = 0;
 	range.n_sectors = ic->provided_data_sectors;
@@ -2541,7 +2590,7 @@
 	add_new_range_and_wait(ic, &range);
 	spin_unlock_irq(&ic->endio_wait.lock);
 
-	dm_integrity_flush_buffers(ic);
+	dm_integrity_flush_buffers(ic, true);
 	if (ic->meta_dev)
 		blkdev_issue_flush(ic->dev->bdev, GFP_NOIO, NULL);
 
@@ -2799,8 +2848,6 @@
 
 	del_timer_sync(&ic->autocommit_timer);
 
-	WRITE_ONCE(ic->suspending, 1);
-
 	if (ic->recalc_wq)
 		drain_workqueue(ic->recalc_wq);
 
@@ -2814,11 +2861,11 @@
 		if (ic->meta_dev)
 			queue_work(ic->writer_wq, &ic->writer_work);
 		drain_workqueue(ic->writer_wq);
-		dm_integrity_flush_buffers(ic);
+		dm_integrity_flush_buffers(ic, true);
 	}
 
 	if (ic->mode == 'B') {
-		dm_integrity_flush_buffers(ic);
+		dm_integrity_flush_buffers(ic, true);
 #if 1
 		/* set to 0 to test bitmap replay code */
 		init_journal(ic, 0, ic->journal_sections, 0);
@@ -2829,8 +2876,6 @@
 #endif
 	}
 
-	WRITE_ONCE(ic->suspending, 0);
-
 	BUG_ON(!RB_EMPTY_ROOT(&ic->in_progress));
 
 	ic->journal_uptodate = true;
@@ -2883,17 +2928,24 @@
 	} else {
 		replay_journal(ic);
 		if (ic->mode == 'B') {
-			int mode;
 			ic->sb->flags |= cpu_to_le32(SB_FLAG_DIRTY_BITMAP);
 			ic->sb->log2_blocks_per_bitmap_bit = ic->log2_blocks_per_bitmap_bit;
 			r = sync_rw_sb(ic, REQ_OP_WRITE, REQ_FUA);
 			if (unlikely(r))
 				dm_integrity_io_error(ic, "writing superblock", r);
 
-			mode = ic->recalculate_flag ? BITMAP_OP_SET : BITMAP_OP_CLEAR;
-			block_bitmap_op(ic, ic->journal, 0, ic->provided_data_sectors, mode);
-			block_bitmap_op(ic, ic->recalc_bitmap, 0, ic->provided_data_sectors, mode);
-			block_bitmap_op(ic, ic->may_write_bitmap, 0, ic->provided_data_sectors, mode);
+			block_bitmap_op(ic, ic->journal, 0, ic->provided_data_sectors, BITMAP_OP_CLEAR);
+			block_bitmap_op(ic, ic->recalc_bitmap, 0, ic->provided_data_sectors, BITMAP_OP_CLEAR);
+			block_bitmap_op(ic, ic->may_write_bitmap, 0, ic->provided_data_sectors, BITMAP_OP_CLEAR);
+			if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING) &&
+			    le64_to_cpu(ic->sb->recalc_sector) < ic->provided_data_sectors) {
+				block_bitmap_op(ic, ic->journal, le64_to_cpu(ic->sb->recalc_sector),
+						ic->provided_data_sectors - le64_to_cpu(ic->sb->recalc_sector), BITMAP_OP_SET);
+				block_bitmap_op(ic, ic->recalc_bitmap, le64_to_cpu(ic->sb->recalc_sector),
+						ic->provided_data_sectors - le64_to_cpu(ic->sb->recalc_sector), BITMAP_OP_SET);
+				block_bitmap_op(ic, ic->may_write_bitmap, le64_to_cpu(ic->sb->recalc_sector),
+						ic->provided_data_sectors - le64_to_cpu(ic->sb->recalc_sector), BITMAP_OP_SET);
+			}
 			rw_journal_sectors(ic, REQ_OP_WRITE, REQ_FUA | REQ_SYNC, 0,
 					   ic->n_bitmap_blocks * (BITMAP_BLOCK_SIZE >> SECTOR_SHIFT), NULL);
 		}
@@ -2955,13 +3007,14 @@
 		arg_count += !!ic->internal_hash_alg.alg_string;
 		arg_count += !!ic->journal_crypt_alg.alg_string;
 		arg_count += !!ic->journal_mac_alg.alg_string;
+		arg_count += ic->legacy_recalculate;
 		DMEMIT("%s %llu %u %c %u", ic->dev->name, (unsigned long long)ic->start,
 		       ic->tag_size, ic->mode, arg_count);
 		if (ic->meta_dev)
 			DMEMIT(" meta_device:%s", ic->meta_dev->name);
 		if (ic->sectors_per_block != 1)
 			DMEMIT(" block_size:%u", ic->sectors_per_block << SECTOR_SHIFT);
-		if (ic->recalculate_flag)
+		if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING))
 			DMEMIT(" recalculate");
 		DMEMIT(" journal_sectors:%u", ic->initial_sectors - SB_SECTORS);
 		DMEMIT(" interleave_sectors:%u", 1U << ic->sb->log2_interleave_sectors);
@@ -2974,6 +3027,8 @@
 			DMEMIT(" sectors_per_bit:%llu", (unsigned long long)ic->sectors_per_block << ic->log2_blocks_per_bitmap_bit);
 			DMEMIT(" bitmap_flush_interval:%u", jiffies_to_msecs(ic->bitmap_flush_interval));
 		}
+		if (ic->legacy_recalculate)
+			DMEMIT(" legacy_recalculate");
 
 #define EMIT_ALG(a, n)							\
 		do {							\
@@ -3582,7 +3637,7 @@
 	unsigned extra_args;
 	struct dm_arg_set as;
 	static const struct dm_arg _args[] = {
-		{0, 9, "Invalid number of feature args"},
+		{0, 14, "Invalid number of feature args"},
 	};
 	unsigned journal_sectors, interleave_sectors, buffer_sectors, journal_watermark, sync_msec;
 	bool should_write_sb;
@@ -3607,6 +3662,7 @@
 	}
 	ti->private = ic;
 	ti->per_io_data_size = sizeof(struct dm_integrity_io);
+	ic->ti = ti;
 
 	ic->in_progress = RB_ROOT;
 	INIT_LIST_HEAD(&ic->wait_list);
@@ -3725,6 +3781,8 @@
 				goto bad;
 		} else if (!strcmp(opt_string, "recalculate")) {
 			ic->recalculate_flag = true;
+		} else if (!strcmp(opt_string, "legacy_recalculate")) {
+			ic->legacy_recalculate = true;
 		} else {
 			r = -EINVAL;
 			ti->error = "Invalid argument";
@@ -3818,6 +3876,14 @@
 		goto bad;
 	}
 
+	ic->offload_wq = alloc_workqueue("dm-integrity-offload", WQ_MEM_RECLAIM,
+					  METADATA_WORKQUEUE_MAX_ACTIVE);
+	if (!ic->offload_wq) {
+		ti->error = "Cannot allocate workqueue";
+		r = -ENOMEM;
+		goto bad;
+	}
+
 	ic->commit_wq = alloc_workqueue("dm-integrity-commit", WQ_MEM_RECLAIM, 1);
 	if (!ic->commit_wq) {
 		ti->error = "Cannot allocate workqueue";
@@ -4007,6 +4073,20 @@
 			r = -ENOMEM;
 			goto bad;
 		}
+	} else {
+		if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING)) {
+			ti->error = "Recalculate can only be specified with internal_hash";
+			r = -EINVAL;
+			goto bad;
+		}
+	}
+
+	if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING) &&
+	    le64_to_cpu(ic->sb->recalc_sector) < ic->provided_data_sectors &&
+	    dm_integrity_disable_recalculate(ic)) {
+		ti->error = "Recalculating with HMAC is disabled for security reasons - if you really need it, use the argument \"legacy_recalculate\"";
+		r = -EOPNOTSUPP;
+		goto bad;
 	}
 
 	ic->bufio = dm_bufio_client_create(ic->meta_dev ? ic->meta_dev->bdev : ic->dev->bdev,
@@ -4122,6 +4202,8 @@
 		destroy_workqueue(ic->metadata_wq);
 	if (ic->wait_wq)
 		destroy_workqueue(ic->wait_wq);
+	if (ic->offload_wq)
+		destroy_workqueue(ic->offload_wq);
 	if (ic->commit_wq)
 		destroy_workqueue(ic->commit_wq);
 	if (ic->writer_wq)
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-ioctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-ioctl.c
@@ -1600,6 +1600,7 @@
 
 	if (!argc) {
 		DMWARN("Empty message received.");
+		r = -EINVAL;
 		goto out_argv;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-mpath.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-mpath.c
@@ -576,10 +576,12 @@
 
 	/* Do we need to select a new pgpath? */
 	pgpath = READ_ONCE(m->current_pgpath);
-	queue_io = test_bit(MPATHF_QUEUE_IO, &m->flags);
-	if (!pgpath || !queue_io)
+	if (!pgpath || !test_bit(MPATHF_QUEUE_IO, &m->flags))
 		pgpath = choose_pgpath(m, bio->bi_iter.bi_size);
 
+	/* MPATHF_QUEUE_IO might have been cleared by choose_pgpath. */
+	queue_io = test_bit(MPATHF_QUEUE_IO, &m->flags);
+
 	if ((pgpath && queue_io) ||
 	    (!pgpath && test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags))) {
 		/* Queue for the daemon to resubmit */
@@ -599,45 +601,10 @@
 	return pgpath;
 }
 
-static struct pgpath *__map_bio_fast(struct multipath *m, struct bio *bio)
-{
-	struct pgpath *pgpath;
-	unsigned long flags;
-
-	/* Do we need to select a new pgpath? */
-	/*
-	 * FIXME: currently only switching path if no path (due to failure, etc)
-	 * - which negates the point of using a path selector
-	 */
-	pgpath = READ_ONCE(m->current_pgpath);
-	if (!pgpath)
-		pgpath = choose_pgpath(m, bio->bi_iter.bi_size);
-
-	if (!pgpath) {
-		if (test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) {
-			/* Queue for the daemon to resubmit */
-			spin_lock_irqsave(&m->lock, flags);
-			bio_list_add(&m->queued_bios, bio);
-			spin_unlock_irqrestore(&m->lock, flags);
-			queue_work(kmultipathd, &m->process_queued_bios);
-
-			return ERR_PTR(-EAGAIN);
-		}
-		return NULL;
-	}
-
-	return pgpath;
-}
-
 static int __multipath_map_bio(struct multipath *m, struct bio *bio,
 			       struct dm_mpath_io *mpio)
 {
-	struct pgpath *pgpath;
-
-	if (!m->hw_handler_name)
-		pgpath = __map_bio_fast(m, bio);
-	else
-		pgpath = __map_bio(m, bio);
+	struct pgpath *pgpath = __map_bio(m, bio);
 
 	if (IS_ERR(pgpath))
 		return DM_MAPIO_SUBMITTED;
@@ -1223,17 +1190,25 @@
 static void flush_multipath_work(struct multipath *m)
 {
 	if (m->hw_handler_name) {
-		set_bit(MPATHF_PG_INIT_DISABLED, &m->flags);
-		smp_mb__after_atomic();
+		unsigned long flags;
+
+		if (!atomic_read(&m->pg_init_in_progress))
+			goto skip;
+
+		spin_lock_irqsave(&m->lock, flags);
+		if (atomic_read(&m->pg_init_in_progress) &&
+		    !test_and_set_bit(MPATHF_PG_INIT_DISABLED, &m->flags)) {
+			spin_unlock_irqrestore(&m->lock, flags);
 
-		if (atomic_read(&m->pg_init_in_progress))
 			flush_workqueue(kmpath_handlerd);
-		multipath_wait_for_pg_init_completion(m);
+			multipath_wait_for_pg_init_completion(m);
 
-		clear_bit(MPATHF_PG_INIT_DISABLED, &m->flags);
-		smp_mb__after_atomic();
+			spin_lock_irqsave(&m->lock, flags);
+			clear_bit(MPATHF_PG_INIT_DISABLED, &m->flags);
+		}
+		spin_unlock_irqrestore(&m->lock, flags);
 	}
-
+skip:
 	if (m->queue_mode == DM_TYPE_BIO_BASED)
 		flush_work(&m->process_queued_bios);
 	flush_work(&m->trigger_event);
@@ -1889,7 +1864,7 @@
 	int r;
 
 	current_pgpath = READ_ONCE(m->current_pgpath);
-	if (!current_pgpath)
+	if (!current_pgpath || !test_bit(MPATHF_QUEUE_IO, &m->flags))
 		current_pgpath = choose_pgpath(m, 0);
 
 	if (current_pgpath) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-raid.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-raid.c
@@ -3744,10 +3744,10 @@
 	blk_limits_io_opt(limits, chunk_size_bytes * mddev_data_stripes(rs));
 
 	/*
-	 * RAID1 and RAID10 personalities require bio splitting,
-	 * RAID0/4/5/6 don't and process large discard bios properly.
+	 * RAID0 and RAID10 personalities require bio splitting,
+	 * RAID1/4/5/6 don't and process large discard bios properly.
 	 */
-	if (rs_is_raid1(rs) || rs_is_raid10(rs)) {
+	if (rs_is_raid0(rs) || rs_is_raid10(rs)) {
 		limits->discard_granularity = chunk_size_bytes;
 		limits->max_discard_sectors = rs->md.chunk_sectors;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-rq.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-rq.c
@@ -70,9 +70,6 @@
 
 void dm_stop_queue(struct request_queue *q)
 {
-	if (blk_mq_queue_stopped(q))
-		return;
-
 	blk_mq_quiesce_queue(q);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-snap-persistent.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-snap-persistent.c
@@ -17,7 +17,7 @@
 #include <linux/dm-bufio.h>
 
 #define DM_MSG_PREFIX "persistent snapshot"
-#define DM_CHUNK_SIZE_DEFAULT_SECTORS 32	/* 16KB */
+#define DM_CHUNK_SIZE_DEFAULT_SECTORS 32U	/* 16KB */
 
 #define DM_PREFETCH_CHUNKS		12
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-snap.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-snap.c
@@ -141,6 +141,11 @@
 	 * for them to be committed.
 	 */
 	struct bio_list bios_queued_during_merge;
+
+	/*
+	 * Flush data after merge.
+	 */
+	struct bio flush_bio;
 };
 
 /*
@@ -1121,6 +1126,17 @@
 
 static void error_bios(struct bio *bio);
 
+static int flush_data(struct dm_snapshot *s)
+{
+	struct bio *flush_bio = &s->flush_bio;
+
+	bio_reset(flush_bio);
+	bio_set_dev(flush_bio, s->origin->bdev);
+	flush_bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
+
+	return submit_bio_wait(flush_bio);
+}
+
 static void merge_callback(int read_err, unsigned long write_err, void *context)
 {
 	struct dm_snapshot *s = context;
@@ -1134,6 +1150,11 @@
 		goto shut;
 	}
 
+	if (flush_data(s) < 0) {
+		DMERR("Flush after merge failed: shutting down merge");
+		goto shut;
+	}
+
 	if (s->store->type->commit_merge(s->store,
 					 s->num_merging_chunks) < 0) {
 		DMERR("Write error in exception store: shutting down merge");
@@ -1318,6 +1339,7 @@
 	s->first_merging_chunk = 0;
 	s->num_merging_chunks = 0;
 	bio_list_init(&s->bios_queued_during_merge);
+	bio_init(&s->flush_bio, NULL, 0);
 
 	/* Allocate hash table for COW data */
 	if (init_hash_tables(s)) {
@@ -1504,6 +1526,8 @@
 
 	dm_exception_store_destroy(s->store);
 
+	bio_uninit(&s->flush_bio);
+
 	dm_put_device(ti, s->cow);
 
 	dm_put_device(ti, s->origin);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-table.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-table.c
@@ -428,14 +428,23 @@
 {
 	int r;
 	dev_t dev;
+	unsigned int major, minor;
+	char dummy;
 	struct dm_dev_internal *dd;
 	struct dm_table *t = ti->table;
 
 	BUG_ON(!t);
 
-	dev = dm_get_dev_t(path);
-	if (!dev)
-		return -ENODEV;
+	if (sscanf(path, "%u:%u%c", &major, &minor, &dummy) == 2) {
+		/* Extract the major/minor numbers */
+		dev = MKDEV(major, minor);
+		if (MAJOR(dev) != major || MINOR(dev) != minor)
+			return -EOVERFLOW;
+	} else {
+		dev = dm_get_dev_t(path);
+		if (!dev)
+			return -ENODEV;
+	}
 
 	dd = find_device(&t->devices, dev);
 	if (!dd) {
@@ -879,20 +888,24 @@
 EXPORT_SYMBOL_GPL(dm_table_set_type);
 
 /* validate the dax capability of the target device span */
-int device_supports_dax(struct dm_target *ti, struct dm_dev *dev,
+int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
 			sector_t start, sector_t len, void *data)
 {
-	int blocksize = *(int *) data;
+	int blocksize = *(int *) data, id;
+	bool rc;
+
+	id = dax_read_lock();
+	rc = !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
+	dax_read_unlock(id);
 
-	return generic_fsdax_supported(dev->dax_dev, dev->bdev, blocksize,
-				       start, len);
+	return rc;
 }
 
 /* Check devices support synchronous DAX */
-static int device_dax_synchronous(struct dm_target *ti, struct dm_dev *dev,
-				  sector_t start, sector_t len, void *data)
+static int device_not_dax_synchronous_capable(struct dm_target *ti, struct dm_dev *dev,
+					      sector_t start, sector_t len, void *data)
 {
-	return dev->dax_dev && dax_synchronous(dev->dax_dev);
+	return !dev->dax_dev || !dax_synchronous(dev->dax_dev);
 }
 
 bool dm_table_supports_dax(struct dm_table *t,
@@ -909,7 +922,7 @@
 			return false;
 
 		if (!ti->type->iterate_devices ||
-		    !ti->type->iterate_devices(ti, iterate_fn, blocksize))
+		    ti->type->iterate_devices(ti, iterate_fn, blocksize))
 			return false;
 	}
 
@@ -918,21 +931,15 @@
 
 static bool dm_table_does_not_support_partial_completion(struct dm_table *t);
 
-struct verify_rq_based_data {
-	unsigned sq_count;
-	unsigned mq_count;
-};
-
-static int device_is_rq_based(struct dm_target *ti, struct dm_dev *dev,
-			      sector_t start, sector_t len, void *data)
+static int device_is_rq_stackable(struct dm_target *ti, struct dm_dev *dev,
+				  sector_t start, sector_t len, void *data)
 {
-	struct request_queue *q = bdev_get_queue(dev->bdev);
-	struct verify_rq_based_data *v = data;
+	struct block_device *bdev = dev->bdev;
+	struct request_queue *q = bdev_get_queue(bdev);
 
-	if (queue_is_mq(q))
-		v->mq_count++;
-	else
-		v->sq_count++;
+	/* request-based cannot stack on partitions! */
+	if (bdev != bdev->bd_contains)
+		return false;
 
 	return queue_is_mq(q);
 }
@@ -941,7 +948,6 @@
 {
 	unsigned i;
 	unsigned bio_based = 0, request_based = 0, hybrid = 0;
-	struct verify_rq_based_data v = {.sq_count = 0, .mq_count = 0};
 	struct dm_target *tgt;
 	struct list_head *devices = dm_table_get_devices(t);
 	enum dm_queue_mode live_md_type = dm_get_md_type(t->md);
@@ -990,7 +996,7 @@
 verify_bio_based:
 		/* We must use this table as bio-based */
 		t->type = DM_TYPE_BIO_BASED;
-		if (dm_table_supports_dax(t, device_supports_dax, &page_size) ||
+		if (dm_table_supports_dax(t, device_not_dax_capable, &page_size) ||
 		    (list_empty(devices) && live_md_type == DM_TYPE_DAX_BIO_BASED)) {
 			t->type = DM_TYPE_DAX_BIO_BASED;
 		} else {
@@ -1045,14 +1051,10 @@
 
 	/* Non-request-stackable devices can't be used for request-based dm */
 	if (!tgt->type->iterate_devices ||
-	    !tgt->type->iterate_devices(tgt, device_is_rq_based, &v)) {
+	    !tgt->type->iterate_devices(tgt, device_is_rq_stackable, NULL)) {
 		DMERR("table load rejected: including non-request-stackable devices");
 		return -EINVAL;
 	}
-	if (v.sq_count > 0) {
-		DMERR("table load rejected: not all devices are blk-mq request-stackable");
-		return -EINVAL;
-	}
 
 	return 0;
 }
@@ -1327,12 +1329,6 @@
 
 void dm_table_event(struct dm_table *t)
 {
-	/*
-	 * You can no longer call dm_table_event() from interrupt
-	 * context, use a bottom half instead.
-	 */
-	BUG_ON(in_interrupt());
-
 	mutex_lock(&_event_lock);
 	if (t->event_fn)
 		t->event_fn(t->event_context);
@@ -1380,6 +1376,46 @@
 	return &t->targets[(KEYS_PER_NODE * n) + k];
 }
 
+/*
+ * type->iterate_devices() should be called when the sanity check needs to
+ * iterate and check all underlying data devices. iterate_devices() will
+ * iterate all underlying data devices until it encounters a non-zero return
+ * code, returned by whether the input iterate_devices_callout_fn, or
+ * iterate_devices() itself internally.
+ *
+ * For some target type (e.g. dm-stripe), one call of iterate_devices() may
+ * iterate multiple underlying devices internally, in which case a non-zero
+ * return code returned by iterate_devices_callout_fn will stop the iteration
+ * in advance.
+ *
+ * Cases requiring _any_ underlying device supporting some kind of attribute,
+ * should use the iteration structure like dm_table_any_dev_attr(), or call
+ * it directly. @func should handle semantics of positive examples, e.g.
+ * capable of something.
+ *
+ * Cases requiring _all_ underlying devices supporting some kind of attribute,
+ * should use the iteration structure like dm_table_supports_nowait() or
+ * dm_table_supports_discards(). Or introduce dm_table_all_devs_attr() that
+ * uses an @anti_func that handle semantics of counter examples, e.g. not
+ * capable of something. So: return !dm_table_any_dev_attr(t, anti_func, data);
+ */
+static bool dm_table_any_dev_attr(struct dm_table *t,
+				  iterate_devices_callout_fn func, void *data)
+{
+	struct dm_target *ti;
+	unsigned int i;
+
+	for (i = 0; i < dm_table_get_num_targets(t); i++) {
+		ti = dm_table_get_target(t, i);
+
+		if (ti->type->iterate_devices &&
+		    ti->type->iterate_devices(ti, func, data))
+			return true;
+        }
+
+	return false;
+}
+
 static int count_device(struct dm_target *ti, struct dm_dev *dev,
 			sector_t start, sector_t len, void *data)
 {
@@ -1416,13 +1452,13 @@
 	return true;
 }
 
-static int device_is_zoned_model(struct dm_target *ti, struct dm_dev *dev,
-				 sector_t start, sector_t len, void *data)
+static int device_not_zoned_model(struct dm_target *ti, struct dm_dev *dev,
+				  sector_t start, sector_t len, void *data)
 {
 	struct request_queue *q = bdev_get_queue(dev->bdev);
 	enum blk_zoned_model *zoned_model = data;
 
-	return q && blk_queue_zoned_model(q) == *zoned_model;
+	return !q || blk_queue_zoned_model(q) != *zoned_model;
 }
 
 static bool dm_table_supports_zoned_model(struct dm_table *t,
@@ -1439,37 +1475,20 @@
 			return false;
 
 		if (!ti->type->iterate_devices ||
-		    !ti->type->iterate_devices(ti, device_is_zoned_model, &zoned_model))
+		    ti->type->iterate_devices(ti, device_not_zoned_model, &zoned_model))
 			return false;
 	}
 
 	return true;
 }
 
-static int device_matches_zone_sectors(struct dm_target *ti, struct dm_dev *dev,
-				       sector_t start, sector_t len, void *data)
+static int device_not_matches_zone_sectors(struct dm_target *ti, struct dm_dev *dev,
+					   sector_t start, sector_t len, void *data)
 {
 	struct request_queue *q = bdev_get_queue(dev->bdev);
 	unsigned int *zone_sectors = data;
 
-	return q && blk_queue_zone_sectors(q) == *zone_sectors;
-}
-
-static bool dm_table_matches_zone_sectors(struct dm_table *t,
-					  unsigned int zone_sectors)
-{
-	struct dm_target *ti;
-	unsigned i;
-
-	for (i = 0; i < dm_table_get_num_targets(t); i++) {
-		ti = dm_table_get_target(t, i);
-
-		if (!ti->type->iterate_devices ||
-		    !ti->type->iterate_devices(ti, device_matches_zone_sectors, &zone_sectors))
-			return false;
-	}
-
-	return true;
+	return !q || blk_queue_zone_sectors(q) != *zone_sectors;
 }
 
 static int validate_hardware_zoned_model(struct dm_table *table,
@@ -1489,7 +1508,7 @@
 	if (!zone_sectors || !is_power_of_2(zone_sectors))
 		return -EINVAL;
 
-	if (!dm_table_matches_zone_sectors(table, zone_sectors)) {
+	if (dm_table_any_dev_attr(table, device_not_matches_zone_sectors, &zone_sectors)) {
 		DMERR("%s: zone sectors is not consistent across all devices",
 		      dm_device_name(table->md));
 		return -EINVAL;
@@ -1679,29 +1698,12 @@
 	return false;
 }
 
-static int dm_table_supports_dax_write_cache(struct dm_table *t)
-{
-	struct dm_target *ti;
-	unsigned i;
-
-	for (i = 0; i < dm_table_get_num_targets(t); i++) {
-		ti = dm_table_get_target(t, i);
-
-		if (ti->type->iterate_devices &&
-		    ti->type->iterate_devices(ti,
-				device_dax_write_cache_enabled, NULL))
-			return true;
-	}
-
-	return false;
-}
-
-static int device_is_nonrot(struct dm_target *ti, struct dm_dev *dev,
-			    sector_t start, sector_t len, void *data)
+static int device_is_rotational(struct dm_target *ti, struct dm_dev *dev,
+				sector_t start, sector_t len, void *data)
 {
 	struct request_queue *q = bdev_get_queue(dev->bdev);
 
-	return q && blk_queue_nonrot(q);
+	return q && !blk_queue_nonrot(q);
 }
 
 static int device_is_not_random(struct dm_target *ti, struct dm_dev *dev,
@@ -1712,35 +1714,18 @@
 	return q && !blk_queue_add_random(q);
 }
 
-static bool dm_table_all_devices_attribute(struct dm_table *t,
-					   iterate_devices_callout_fn func)
-{
-	struct dm_target *ti;
-	unsigned i;
-
-	for (i = 0; i < dm_table_get_num_targets(t); i++) {
-		ti = dm_table_get_target(t, i);
-
-		if (!ti->type->iterate_devices ||
-		    !ti->type->iterate_devices(ti, func, NULL))
-			return false;
-	}
-
-	return true;
-}
-
-static int device_no_partial_completion(struct dm_target *ti, struct dm_dev *dev,
+static int device_is_partial_completion(struct dm_target *ti, struct dm_dev *dev,
 					sector_t start, sector_t len, void *data)
 {
 	char b[BDEVNAME_SIZE];
 
 	/* For now, NVMe devices are the only devices of this class */
-	return (strncmp(bdevname(dev->bdev, b), "nvme", 4) == 0);
+	return (strncmp(bdevname(dev->bdev, b), "nvme", 4) != 0);
 }
 
 static bool dm_table_does_not_support_partial_completion(struct dm_table *t)
 {
-	return dm_table_all_devices_attribute(t, device_no_partial_completion);
+	return !dm_table_any_dev_attr(t, device_is_partial_completion, NULL);
 }
 
 static int device_not_write_same_capable(struct dm_target *ti, struct dm_dev *dev,
@@ -1867,27 +1852,6 @@
 	return q && bdi_cap_stable_pages_required(q->backing_dev_info);
 }
 
-/*
- * If any underlying device requires stable pages, a table must require
- * them as well.  Only targets that support iterate_devices are considered:
- * don't want error, zero, etc to require stable pages.
- */
-static bool dm_table_requires_stable_pages(struct dm_table *t)
-{
-	struct dm_target *ti;
-	unsigned i;
-
-	for (i = 0; i < dm_table_get_num_targets(t); i++) {
-		ti = dm_table_get_target(t, i);
-
-		if (ti->type->iterate_devices &&
-		    ti->type->iterate_devices(ti, device_requires_stable_pages, NULL))
-			return true;
-	}
-
-	return false;
-}
-
 void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q,
 			       struct queue_limits *limits)
 {
@@ -1920,22 +1884,22 @@
 	}
 	blk_queue_write_cache(q, wc, fua);
 
-	if (dm_table_supports_dax(t, device_supports_dax, &page_size)) {
+	if (dm_table_supports_dax(t, device_not_dax_capable, &page_size)) {
 		blk_queue_flag_set(QUEUE_FLAG_DAX, q);
-		if (dm_table_supports_dax(t, device_dax_synchronous, NULL))
+		if (dm_table_supports_dax(t, device_not_dax_synchronous_capable, NULL))
 			set_dax_synchronous(t->md->dax_dev);
 	}
 	else
 		blk_queue_flag_clear(QUEUE_FLAG_DAX, q);
 
-	if (dm_table_supports_dax_write_cache(t))
+	if (dm_table_any_dev_attr(t, device_dax_write_cache_enabled, NULL))
 		dax_write_cache(t->md->dax_dev, true);
 
 	/* Ensure that all underlying devices are non-rotational. */
-	if (dm_table_all_devices_attribute(t, device_is_nonrot))
-		blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
-	else
+	if (dm_table_any_dev_attr(t, device_is_rotational, NULL))
 		blk_queue_flag_clear(QUEUE_FLAG_NONROT, q);
+	else
+		blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
 
 	if (!dm_table_supports_write_same(t))
 		q->limits.max_write_same_sectors = 0;
@@ -1947,8 +1911,11 @@
 	/*
 	 * Some devices don't use blk_integrity but still want stable pages
 	 * because they do their own checksumming.
+	 * If any underlying device requires stable pages, a table must require
+	 * them as well.  Only targets that support iterate_devices are considered:
+	 * don't want error, zero, etc to require stable pages.
 	 */
-	if (dm_table_requires_stable_pages(t))
+	if (dm_table_any_dev_attr(t, device_requires_stable_pages, NULL))
 		q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES;
 	else
 		q->backing_dev_info->capabilities &= ~BDI_CAP_STABLE_WRITES;
@@ -1959,7 +1926,8 @@
 	 * Clear QUEUE_FLAG_ADD_RANDOM if any underlying device does not
 	 * have it set.
 	 */
-	if (blk_queue_add_random(q) && dm_table_all_devices_attribute(t, device_is_not_random))
+	if (blk_queue_add_random(q) &&
+	    dm_table_any_dev_attr(t, device_is_not_random, NULL))
 		blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, q);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-thin-metadata.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-thin-metadata.c
@@ -189,6 +189,15 @@
 	sector_t data_block_size;
 
 	/*
+	 * Pre-commit callback.
+	 *
+	 * This allows the thin provisioning target to run a callback before
+	 * the metadata are committed.
+	 */
+	dm_pool_pre_commit_fn pre_commit_fn;
+	void *pre_commit_context;
+
+	/*
 	 * We reserve a section of the metadata for commit overhead.
 	 * All reported space does *not* include this.
 	 */
@@ -378,16 +387,15 @@
  * Variant that is used for in-core only changes or code that
  * shouldn't put the pool in service on its own (e.g. commit).
  */
-static inline void __pmd_write_lock(struct dm_pool_metadata *pmd)
+static inline void pmd_write_lock_in_core(struct dm_pool_metadata *pmd)
 	__acquires(pmd->root_lock)
 {
 	down_write(&pmd->root_lock);
 }
-#define pmd_write_lock_in_core(pmd) __pmd_write_lock((pmd))
 
 static inline void pmd_write_lock(struct dm_pool_metadata *pmd)
 {
-	__pmd_write_lock(pmd);
+	pmd_write_lock_in_core(pmd);
 	if (unlikely(!pmd->in_service))
 		pmd->in_service = true;
 }
@@ -731,12 +739,16 @@
 					  THIN_MAX_CONCURRENT_LOCKS);
 	if (IS_ERR(pmd->bm)) {
 		DMERR("could not create block manager");
-		return PTR_ERR(pmd->bm);
+		r = PTR_ERR(pmd->bm);
+		pmd->bm = NULL;
+		return r;
 	}
 
 	r = __open_or_format_metadata(pmd, format_device);
-	if (r)
+	if (r) {
 		dm_block_manager_destroy(pmd->bm);
+		pmd->bm = NULL;
+	}
 
 	return r;
 }
@@ -822,10 +834,19 @@
 	 * We need to know if the thin_disk_superblock exceeds a 512-byte sector.
 	 */
 	BUILD_BUG_ON(sizeof(struct thin_disk_superblock) > 512);
+	BUG_ON(!rwsem_is_locked(&pmd->root_lock));
 
 	if (unlikely(!pmd->in_service))
 		return 0;
 
+	if (pmd->pre_commit_fn) {
+		r = pmd->pre_commit_fn(pmd->pre_commit_context);
+		if (r < 0) {
+			DMERR("pre-commit callback failed");
+			return r;
+		}
+	}
+
 	r = __write_changed_details(pmd);
 	if (r < 0)
 		return r;
@@ -892,6 +913,8 @@
 	pmd->in_service = false;
 	pmd->bdev = bdev;
 	pmd->data_block_size = data_block_size;
+	pmd->pre_commit_fn = NULL;
+	pmd->pre_commit_context = NULL;
 
 	r = __create_persistent_data_objects(pmd, format_device);
 	if (r) {
@@ -934,12 +957,14 @@
 		return -EBUSY;
 	}
 
-	if (!dm_bm_is_read_only(pmd->bm) && !pmd->fail_io) {
+	pmd_write_lock_in_core(pmd);
+	if (!pmd->fail_io && !dm_bm_is_read_only(pmd->bm)) {
 		r = __commit_transaction(pmd);
 		if (r < 0)
 			DMWARN("%s: __commit_transaction() failed, error = %d",
 			       __func__, r);
 	}
+	pmd_write_unlock(pmd);
 	if (!pmd->fail_io)
 		__destroy_persistent_data_objects(pmd);
 
@@ -1822,7 +1847,7 @@
 	 * Care is taken to not have commit be what
 	 * triggers putting the thin-pool in-service.
 	 */
-	__pmd_write_lock(pmd);
+	pmd_write_lock_in_core(pmd);
 	if (pmd->fail_io)
 		goto out;
 
@@ -2044,6 +2069,16 @@
 	return r;
 }
 
+void dm_pool_register_pre_commit_callback(struct dm_pool_metadata *pmd,
+					  dm_pool_pre_commit_fn fn,
+					  void *context)
+{
+	pmd_write_lock_in_core(pmd);
+	pmd->pre_commit_fn = fn;
+	pmd->pre_commit_context = context;
+	pmd_write_unlock(pmd);
+}
+
 int dm_pool_metadata_set_needs_check(struct dm_pool_metadata *pmd)
 {
 	int r = -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-thin-metadata.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-thin-metadata.h
@@ -230,6 +230,13 @@
  */
 void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd);
 
+/* Pre-commit callback */
+typedef int (*dm_pool_pre_commit_fn)(void *context);
+
+void dm_pool_register_pre_commit_callback(struct dm_pool_metadata *pmd,
+					  dm_pool_pre_commit_fn fn,
+					  void *context);
+
 /*----------------------------------------------------------------*/
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-thin.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-thin.c
@@ -231,6 +231,7 @@
 	struct dm_target *ti;	/* Only set if a pool target is bound */
 
 	struct mapped_device *pool_md;
+	struct block_device *data_dev;
 	struct block_device *md_dev;
 	struct dm_pool_metadata *pmd;
 
@@ -328,6 +329,7 @@
 	dm_block_t low_water_blocks;
 	struct pool_features requested_pf; /* Features requested during table load */
 	struct pool_features adjusted_pf;  /* Features used after adjusting for constituent devices */
+	struct bio flush_bio;
 };
 
 /*
@@ -2392,8 +2394,16 @@
 	while ((bio = bio_list_pop(&bio_completions)))
 		bio_endio(bio);
 
-	while ((bio = bio_list_pop(&bios)))
-		generic_make_request(bio);
+	while ((bio = bio_list_pop(&bios))) {
+		/*
+		 * The data device was flushed as part of metadata commit,
+		 * so complete redundant flushes immediately.
+		 */
+		if (bio->bi_opf & REQ_PREFLUSH)
+			bio_endio(bio);
+		else
+			generic_make_request(bio);
+	}
 }
 
 static void do_worker(struct work_struct *ws)
@@ -2936,6 +2946,7 @@
 
 static struct pool *pool_create(struct mapped_device *pool_md,
 				struct block_device *metadata_dev,
+				struct block_device *data_dev,
 				unsigned long block_size,
 				int read_only, char **error)
 {
@@ -3043,6 +3054,7 @@
 	pool->last_commit_jiffies = jiffies;
 	pool->pool_md = pool_md;
 	pool->md_dev = metadata_dev;
+	pool->data_dev = data_dev;
 	__pool_table_insert(pool);
 
 	return pool;
@@ -3084,6 +3096,7 @@
 
 static struct pool *__pool_find(struct mapped_device *pool_md,
 				struct block_device *metadata_dev,
+				struct block_device *data_dev,
 				unsigned long block_size, int read_only,
 				char **error, int *created)
 {
@@ -3094,19 +3107,23 @@
 			*error = "metadata device already in use by a pool";
 			return ERR_PTR(-EBUSY);
 		}
+		if (pool->data_dev != data_dev) {
+			*error = "data device already in use by a pool";
+			return ERR_PTR(-EBUSY);
+		}
 		__pool_inc(pool);
 
 	} else {
 		pool = __pool_table_lookup(pool_md);
 		if (pool) {
-			if (pool->md_dev != metadata_dev) {
+			if (pool->md_dev != metadata_dev || pool->data_dev != data_dev) {
 				*error = "different pool cannot replace a pool";
 				return ERR_PTR(-EINVAL);
 			}
 			__pool_inc(pool);
 
 		} else {
-			pool = pool_create(pool_md, metadata_dev, block_size, read_only, error);
+			pool = pool_create(pool_md, metadata_dev, data_dev, block_size, read_only, error);
 			*created = 1;
 		}
 	}
@@ -3127,6 +3144,7 @@
 	__pool_dec(pt->pool);
 	dm_put_device(ti, pt->metadata_dev);
 	dm_put_device(ti, pt->data_dev);
+	bio_uninit(&pt->flush_bio);
 	kfree(pt);
 
 	mutex_unlock(&dm_thin_pool_table.mutex);
@@ -3192,6 +3210,29 @@
 	dm_table_event(pool->ti->table);
 }
 
+/*
+ * We need to flush the data device **before** committing the metadata.
+ *
+ * This ensures that the data blocks of any newly inserted mappings are
+ * properly written to non-volatile storage and won't be lost in case of a
+ * crash.
+ *
+ * Failure to do so can result in data corruption in the case of internal or
+ * external snapshots and in the case of newly provisioned blocks, when block
+ * zeroing is enabled.
+ */
+static int metadata_pre_commit_callback(void *context)
+{
+	struct pool_c *pt = context;
+	struct bio *flush_bio = &pt->flush_bio;
+
+	bio_reset(flush_bio);
+	bio_set_dev(flush_bio, pt->data_dev->bdev);
+	flush_bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
+
+	return submit_bio_wait(flush_bio);
+}
+
 static sector_t get_dev_size(struct block_device *bdev)
 {
 	return i_size_read(bdev->bd_inode) >> SECTOR_SHIFT;
@@ -3335,7 +3376,7 @@
 		goto out;
 	}
 
-	pool = __pool_find(dm_table_get_md(ti->table), metadata_dev->bdev,
+	pool = __pool_find(dm_table_get_md(ti->table), metadata_dev->bdev, data_dev->bdev,
 			   block_size, pf.mode == PM_READ_ONLY, &ti->error, &pool_created);
 	if (IS_ERR(pool)) {
 		r = PTR_ERR(pool);
@@ -3360,6 +3401,7 @@
 	pt->data_dev = data_dev;
 	pt->low_water_blocks = low_water_blocks;
 	pt->adjusted_pf = pt->requested_pf = pf;
+	bio_init(&pt->flush_bio, NULL, 0);
 	ti->num_flush_bios = 1;
 
 	/*
@@ -3549,6 +3591,9 @@
 	if (r)
 		return r;
 
+	dm_pool_register_pre_commit_callback(pool->pmd,
+					     metadata_pre_commit_callback, pt);
+
 	r = maybe_resize_data_dev(ti, &need_commit1);
 	if (r)
 		return r;
@@ -4077,7 +4122,7 @@
 	.name = "thin-pool",
 	.features = DM_TARGET_SINGLETON | DM_TARGET_ALWAYS_WRITEABLE |
 		    DM_TARGET_IMMUTABLE,
-	.version = {1, 21, 0},
+	.version = {1, 22, 0},
 	.module = THIS_MODULE,
 	.ctr = pool_ctr,
 	.dtr = pool_dtr,
@@ -4456,7 +4501,7 @@
 
 static struct target_type thin_target = {
 	.name = "thin",
-	.version = {1, 21, 0},
+	.version = {1, 22, 0},
 	.module	= THIS_MODULE,
 	.ctr = thin_ctr,
 	.dtr = thin_dtr,
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-verity-fec.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-verity-fec.c
@@ -61,19 +61,18 @@
 static u8 *fec_read_parity(struct dm_verity *v, u64 rsb, int index,
 			   unsigned *offset, struct dm_buffer **buf)
 {
-	u64 position, block;
+	u64 position, block, rem;
 	u8 *res;
 
 	position = (index + rsb) * v->fec->roots;
-	block = position >> v->data_dev_block_bits;
-	*offset = (unsigned)(position - (block << v->data_dev_block_bits));
+	block = div64_u64_rem(position, v->fec->roots << SECTOR_SHIFT, &rem);
+	*offset = (unsigned)rem;
 
-	res = dm_bufio_read(v->fec->bufio, v->fec->start + block, buf);
+	res = dm_bufio_read(v->fec->bufio, block, buf);
 	if (IS_ERR(res)) {
 		DMERR("%s: FEC %llu: parity read failed (block %llu): %ld",
 		      v->data_dev->name, (unsigned long long)rsb,
-		      (unsigned long long)(v->fec->start + block),
-		      PTR_ERR(res));
+		      (unsigned long long)block, PTR_ERR(res));
 		*buf = NULL;
 	}
 
@@ -155,7 +154,7 @@
 
 		/* read the next block when we run out of parity bytes */
 		offset += v->fec->roots;
-		if (offset >= 1 << v->data_dev_block_bits) {
+		if (offset >= v->fec->roots << SECTOR_SHIFT) {
 			dm_bufio_release(buf);
 
 			par = fec_read_parity(v, rsb, block_offset, &offset, &buf);
@@ -435,7 +434,7 @@
 	fio->level++;
 
 	if (type == DM_VERITY_BLOCK_TYPE_METADATA)
-		block += v->data_blocks;
+		block = block - v->hash_start + v->data_blocks;
 
 	/*
 	 * For RS(M, N), the continuous FEC data is divided into blocks of N
@@ -551,6 +550,7 @@
 	mempool_exit(&f->rs_pool);
 	mempool_exit(&f->prealloc_pool);
 	mempool_exit(&f->extra_pool);
+	mempool_exit(&f->output_pool);
 	kmem_cache_destroy(f->cache);
 
 	if (f->data_bufio)
@@ -673,7 +673,7 @@
 {
 	struct dm_verity_fec *f = v->fec;
 	struct dm_target *ti = v->ti;
-	u64 hash_blocks;
+	u64 hash_blocks, fec_blocks;
 	int ret;
 
 	if (!verity_fec_is_enabled(v)) {
@@ -743,15 +743,17 @@
 	}
 
 	f->bufio = dm_bufio_client_create(f->dev->bdev,
-					  1 << v->data_dev_block_bits,
+					  f->roots << SECTOR_SHIFT,
 					  1, 0, NULL, NULL);
 	if (IS_ERR(f->bufio)) {
 		ti->error = "Cannot initialize FEC bufio client";
 		return PTR_ERR(f->bufio);
 	}
 
-	if (dm_bufio_get_device_size(f->bufio) <
-	    ((f->start + f->rounds * f->roots) >> v->data_dev_block_bits)) {
+	dm_bufio_set_sector_offset(f->bufio, f->start << (v->data_dev_block_bits - SECTOR_SHIFT));
+
+	fec_blocks = div64_u64(f->rounds * f->roots, v->fec->roots << SECTOR_SHIFT);
+	if (dm_bufio_get_device_size(f->bufio) < fec_blocks) {
 		ti->error = "FEC device is too small";
 		return -E2BIG;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-verity-target.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-verity-target.c
@@ -534,6 +534,15 @@
 }
 
 /*
+ * Skip verity work in response to I/O error when system is shutting down.
+ */
+static inline bool verity_is_system_shutting_down(void)
+{
+	return system_state == SYSTEM_HALT || system_state == SYSTEM_POWER_OFF
+		|| system_state == SYSTEM_RESTART;
+}
+
+/*
  * End one "io" structure with a given error.
  */
 static void verity_finish_io(struct dm_verity_io *io, blk_status_t status)
@@ -560,7 +569,8 @@
 {
 	struct dm_verity_io *io = bio->bi_private;
 
-	if (bio->bi_status && !verity_fec_is_enabled(io->v)) {
+	if (bio->bi_status &&
+	    (!verity_fec_is_enabled(io->v) || verity_is_system_shutting_down())) {
 		verity_finish_io(io, bio->bi_status);
 		return;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-writecache.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-writecache.c
@@ -142,6 +142,7 @@
 	size_t metadata_sectors;
 	size_t n_blocks;
 	uint64_t seq_count;
+	sector_t data_device_sectors;
 	void *block_start;
 	struct wc_entry *entries;
 	unsigned block_size;
@@ -224,6 +225,7 @@
 	pfn_t pfn;
 	int id;
 	struct page **pages;
+	sector_t offset;
 
 	wc->memory_vmapped = false;
 
@@ -242,9 +244,16 @@
 		goto err1;
 	}
 
+	offset = get_start_sect(wc->ssd_dev->bdev);
+	if (offset & (PAGE_SIZE / 512 - 1)) {
+		r = -EINVAL;
+		goto err1;
+	}
+	offset >>= PAGE_SHIFT - 9;
+
 	id = dax_read_lock();
 
-	da = dax_direct_access(wc->ssd_dev->dax_dev, 0, p, &wc->memory_map, &pfn);
+	da = dax_direct_access(wc->ssd_dev->dax_dev, offset, p, &wc->memory_map, &pfn);
 	if (da < 0) {
 		wc->memory_map = NULL;
 		r = da;
@@ -266,7 +275,7 @@
 		i = 0;
 		do {
 			long daa;
-			daa = dax_direct_access(wc->ssd_dev->dax_dev, i, p - i,
+			daa = dax_direct_access(wc->ssd_dev->dax_dev, offset + i, p - i,
 						NULL, &pfn);
 			if (daa <= 0) {
 				r = daa ? daa : -EINVAL;
@@ -279,6 +288,8 @@
 			while (daa-- && i < p) {
 				pages[i++] = pfn_t_to_page(pfn);
 				pfn.val++;
+				if (!(i & 15))
+					cond_resched();
 			}
 		} while (i < p);
 		wc->memory_map = vmap(pages, p, VM_MAP, PAGE_KERNEL);
@@ -306,7 +317,7 @@
 #else
 static int persistent_memory_claim(struct dm_writecache *wc)
 {
-	BUG();
+	return -EOPNOTSUPP;
 }
 #endif
 
@@ -442,7 +453,13 @@
 		complete(&endio->c);
 }
 
-static void ssd_commit_flushed(struct dm_writecache *wc)
+static void writecache_wait_for_ios(struct dm_writecache *wc, int direction)
+{
+	wait_event(wc->bio_in_progress_wait[direction],
+		   !atomic_read(&wc->bio_in_progress[direction]));
+}
+
+static void ssd_commit_flushed(struct dm_writecache *wc, bool wait_for_ios)
 {
 	struct dm_io_region region;
 	struct dm_io_request req;
@@ -488,17 +505,20 @@
 	writecache_notify_io(0, &endio);
 	wait_for_completion_io(&endio.c);
 
+	if (wait_for_ios)
+		writecache_wait_for_ios(wc, WRITE);
+
 	writecache_disk_flush(wc, wc->ssd_dev);
 
 	memset(wc->dirty_bitmap, 0, wc->dirty_bitmap_size);
 }
 
-static void writecache_commit_flushed(struct dm_writecache *wc)
+static void writecache_commit_flushed(struct dm_writecache *wc, bool wait_for_ios)
 {
 	if (WC_MODE_PMEM(wc))
 		wmb();
 	else
-		ssd_commit_flushed(wc);
+		ssd_commit_flushed(wc, wait_for_ios);
 }
 
 static void writecache_disk_flush(struct dm_writecache *wc, struct dm_dev *dev)
@@ -522,12 +542,6 @@
 		writecache_error(wc, r, "error flushing metadata: %d", r);
 }
 
-static void writecache_wait_for_ios(struct dm_writecache *wc, int direction)
-{
-	wait_event(wc->bio_in_progress_wait[direction],
-		   !atomic_read(&wc->bio_in_progress[direction]));
-}
-
 #define WFE_RETURN_FOLLOWING	1
 #define WFE_LOWEST_SEQ		2
 
@@ -622,6 +636,12 @@
 	wc->freelist_size++;
 }
 
+static inline void writecache_verify_watermark(struct dm_writecache *wc)
+{
+	if (unlikely(wc->freelist_size + wc->writeback_size <= wc->freelist_high_watermark))
+		queue_work(wc->writeback_wq, &wc->writeback_work);
+}
+
 static struct wc_entry *writecache_pop_from_freelist(struct dm_writecache *wc)
 {
 	struct wc_entry *e;
@@ -643,8 +663,8 @@
 		list_del(&e->lru);
 	}
 	wc->freelist_size--;
-	if (unlikely(wc->freelist_size + wc->writeback_size <= wc->freelist_high_watermark))
-		queue_work(wc->writeback_wq, &wc->writeback_work);
+
+	writecache_verify_watermark(wc);
 
 	return e;
 }
@@ -724,15 +744,12 @@
 		e = e2;
 		cond_resched();
 	}
-	writecache_commit_flushed(wc);
-
-	if (!WC_MODE_PMEM(wc))
-		writecache_wait_for_ios(wc, WRITE);
+	writecache_commit_flushed(wc, true);
 
 	wc->seq_count++;
 	pmem_assign(sb(wc)->seq_count, cpu_to_le64(wc->seq_count));
 	writecache_flush_region(wc, &sb(wc)->seq_count, sizeof sb(wc)->seq_count);
-	writecache_commit_flushed(wc);
+	writecache_commit_flushed(wc, false);
 
 	wc->overwrote_committed = false;
 
@@ -756,7 +773,7 @@
 	}
 
 	if (need_flush_after_free)
-		writecache_commit_flushed(wc);
+		writecache_commit_flushed(wc, false);
 }
 
 static void writecache_flush_work(struct work_struct *work)
@@ -799,6 +816,8 @@
 				writecache_wait_for_ios(wc, WRITE);
 				discarded_something = true;
 			}
+			if (!writecache_entry_is_committed(wc, e))
+				wc->uncommitted_blocks--;
 			writecache_free_entry(wc, e);
 		}
 
@@ -809,7 +828,7 @@
 	}
 
 	if (discarded_something)
-		writecache_commit_flushed(wc);
+		writecache_commit_flushed(wc, false);
 }
 
 static bool writecache_wait_for_writeback(struct dm_writecache *wc)
@@ -838,7 +857,7 @@
 	}
 	wc_unlock(wc);
 
-	flush_workqueue(wc->writeback_wq);
+	drain_workqueue(wc->writeback_wq);
 
 	wc_lock(wc);
 	if (flush_on_suspend)
@@ -866,11 +885,30 @@
 		struct wc_entry *e = &wc->entries[b];
 		e->index = b;
 		e->write_in_progress = false;
+		cond_resched();
 	}
 
 	return 0;
 }
 
+static int writecache_read_metadata(struct dm_writecache *wc, sector_t n_sectors)
+{
+	struct dm_io_region region;
+	struct dm_io_request req;
+
+	region.bdev = wc->ssd_dev->bdev;
+	region.sector = wc->start_sector;
+	region.count = n_sectors;
+	req.bi_op = REQ_OP_READ;
+	req.bi_op_flags = REQ_SYNC;
+	req.mem.type = DM_IO_VMA;
+	req.mem.ptr.vma = (char *)wc->memory_map;
+	req.client = wc->dm_io;
+	req.notify.fn = NULL;
+
+	return dm_io(&req, 1, &region, NULL);
+}
+
 static void writecache_resume(struct dm_target *ti)
 {
 	struct dm_writecache *wc = ti->private;
@@ -881,8 +919,20 @@
 
 	wc_lock(wc);
 
-	if (WC_MODE_PMEM(wc))
+	wc->data_device_sectors = i_size_read(wc->dev->bdev->bd_inode) >> SECTOR_SHIFT;
+
+	if (WC_MODE_PMEM(wc)) {
 		persistent_memory_invalidate_cache(wc->memory_map, wc->memory_map_size);
+	} else {
+		r = writecache_read_metadata(wc, wc->metadata_sectors);
+		if (r) {
+			size_t sb_entries_offset;
+			writecache_error(wc, r, "unable to read metadata: %d", r);
+			sb_entries_offset = offsetof(struct wc_memory_superblock, entries);
+			memset((char *)wc->memory_map + sb_entries_offset, -1,
+			       (wc->metadata_sectors << SECTOR_SHIFT) - sb_entries_offset);
+		}
+	}
 
 	wc->tree = RB_ROOT;
 	INIT_LIST_HEAD(&wc->lru);
@@ -920,6 +970,7 @@
 			e->original_sector = le64_to_cpu(wme.original_sector);
 			e->seq_count = le64_to_cpu(wme.seq_count);
 		}
+		cond_resched();
 	}
 #endif
 	for (b = 0; b < wc->n_blocks; b++) {
@@ -958,9 +1009,11 @@
 
 	if (need_flush) {
 		writecache_flush_all_metadata(wc);
-		writecache_commit_flushed(wc);
+		writecache_commit_flushed(wc, false);
 	}
 
+	writecache_verify_watermark(wc);
+
 	wc_unlock(wc);
 }
 
@@ -1218,7 +1271,8 @@
 			}
 		} while (bio->bi_iter.bi_size);
 
-		if (unlikely(wc->uncommitted_blocks >= wc->autocommit_blocks))
+		if (unlikely(bio->bi_opf & REQ_FUA ||
+			     wc->uncommitted_blocks >= wc->autocommit_blocks))
 			writecache_flush(wc);
 		else
 			writecache_schedule_autocommit(wc);
@@ -1341,7 +1395,7 @@
 			wc->writeback_size--;
 			n_walked++;
 			if (unlikely(n_walked >= ENDIO_LATENCY)) {
-				writecache_commit_flushed(wc);
+				writecache_commit_flushed(wc, false);
 				wc_unlock(wc);
 				wc_lock(wc);
 				n_walked = 0;
@@ -1422,7 +1476,7 @@
 			writecache_wait_for_ios(wc, READ);
 		}
 
-		writecache_commit_flushed(wc);
+		writecache_commit_flushed(wc, false);
 
 		wc_unlock(wc);
 	}
@@ -1437,6 +1491,10 @@
 	void *address = memory_data(wc, e);
 
 	persistent_memory_flush_cache(address, block_size);
+
+	if (unlikely(bio_end_sector(&wb->bio) >= wc->data_device_sectors))
+		return true;
+
 	return bio_add_page(&wb->bio, persistent_memory_page(address),
 			    block_size, persistent_memory_page_offset(address)) != 0;
 }
@@ -1508,6 +1566,9 @@
 		if (writecache_has_error(wc)) {
 			bio->bi_status = BLK_STS_IOERR;
 			bio_endio(bio);
+		} else if (unlikely(!bio_sectors(bio))) {
+			bio->bi_status = BLK_STS_OK;
+			bio_endio(bio);
 		} else {
 			submit_bio(bio);
 		}
@@ -1551,6 +1612,14 @@
 			e = f;
 		}
 
+		if (unlikely(to.sector + to.count > wc->data_device_sectors)) {
+			if (to.sector >= wc->data_device_sectors) {
+				writecache_copy_endio(0, 0, c);
+				continue;
+			}
+			from.count = to.count = wc->data_device_sectors - to.sector;
+		}
+
 		dm_kcopyd_copy(wc->dm_kcopyd, &from, 1, &to, 0, writecache_copy_endio, c);
 
 		__writeback_throttle(wc, wbl);
@@ -1761,14 +1830,16 @@
 	pmem_assign(sb(wc)->n_blocks, cpu_to_le64(wc->n_blocks));
 	pmem_assign(sb(wc)->seq_count, cpu_to_le64(0));
 
-	for (b = 0; b < wc->n_blocks; b++)
+	for (b = 0; b < wc->n_blocks; b++) {
 		write_original_sector_seq_count(wc, &wc->entries[b], -1, -1);
+		cond_resched();
+	}
 
 	writecache_flush_all_metadata(wc);
-	writecache_commit_flushed(wc);
+	writecache_commit_flushed(wc, false);
 	pmem_assign(sb(wc)->magic, cpu_to_le32(MEMORY_SUPERBLOCK_MAGIC));
 	writecache_flush_region(wc, &sb(wc)->magic, sizeof sb(wc)->magic);
-	writecache_commit_flushed(wc);
+	writecache_commit_flushed(wc, false);
 
 	return 0;
 }
@@ -1836,7 +1907,7 @@
 	struct wc_memory_superblock s;
 
 	static struct dm_arg _args[] = {
-		{0, 10, "Invalid number of feature args"},
+		{0, 16, "Invalid number of feature args"},
 	};
 
 	as.argc = argc;
@@ -1971,6 +2042,12 @@
 		ti->error = "Invalid block size";
 		goto bad;
 	}
+	if (wc->block_size < bdev_logical_block_size(wc->dev->bdev) ||
+	    wc->block_size < bdev_logical_block_size(wc->ssd_dev->bdev)) {
+		r = -EINVAL;
+		ti->error = "Block size is smaller than device logical block size";
+		goto bad;
+	}
 	wc->block_size_bits = __ffs(wc->block_size);
 
 	wc->max_writeback_jobs = MAX_WRITEBACK_JOBS;
@@ -2053,14 +2130,18 @@
 	}
 
 	if (WC_MODE_PMEM(wc)) {
+		if (!dax_synchronous(wc->ssd_dev->dax_dev)) {
+			r = -EOPNOTSUPP;
+			ti->error = "Asynchronous persistent memory not supported as pmem cache";
+			goto bad;
+		}
+
 		r = persistent_memory_claim(wc);
 		if (r) {
 			ti->error = "Unable to map persistent memory for cache";
 			goto bad;
 		}
 	} else {
-		struct dm_io_region region;
-		struct dm_io_request req;
 		size_t n_blocks, n_metadata_blocks;
 		uint64_t n_bitmap_bits;
 
@@ -2117,19 +2198,9 @@
 			goto bad;
 		}
 
-		region.bdev = wc->ssd_dev->bdev;
-		region.sector = wc->start_sector;
-		region.count = wc->metadata_sectors;
-		req.bi_op = REQ_OP_READ;
-		req.bi_op_flags = REQ_SYNC;
-		req.mem.type = DM_IO_VMA;
-		req.mem.ptr.vma = (char *)wc->memory_map;
-		req.client = wc->dm_io;
-		req.notify.fn = NULL;
-
-		r = dm_io(&req, 1, &region, NULL);
+		r = writecache_read_metadata(wc, wc->block_size >> SECTOR_SHIFT);
 		if (r) {
-			ti->error = "Unable to read metadata";
+			ti->error = "Unable to read first block of metadata";
 			goto bad;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-zoned-metadata.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-zoned-metadata.c
@@ -134,6 +134,7 @@
 
 	sector_t		zone_bitmap_size;
 	unsigned int		zone_nr_bitmap_blocks;
+	unsigned int		zone_bits_per_mblk;
 
 	unsigned int		nr_bitmap_blocks;
 	unsigned int		nr_map_blocks;
@@ -554,6 +555,7 @@
 		       TASK_UNINTERRUPTIBLE);
 	if (test_bit(DMZ_META_ERROR, &mblk->state)) {
 		dmz_release_mblock(zmd, mblk);
+		dmz_check_bdev(zmd->dev);
 		return ERR_PTR(-EIO);
 	}
 
@@ -625,6 +627,8 @@
 	ret = submit_bio_wait(bio);
 	bio_put(bio);
 
+	if (ret)
+		dmz_check_bdev(zmd->dev);
 	return ret;
 }
 
@@ -691,6 +695,7 @@
 			       TASK_UNINTERRUPTIBLE);
 		if (test_bit(DMZ_META_ERROR, &mblk->state)) {
 			clear_bit(DMZ_META_ERROR, &mblk->state);
+			dmz_check_bdev(zmd->dev);
 			ret = -EIO;
 		}
 		nr_mblks_submitted--;
@@ -768,7 +773,7 @@
 	/* If there are no dirty metadata blocks, just flush the device cache */
 	if (list_empty(&write_list)) {
 		ret = blkdev_issue_flush(zmd->dev->bdev, GFP_NOIO, NULL);
-		goto out;
+		goto err;
 	}
 
 	/*
@@ -778,7 +783,7 @@
 	 */
 	ret = dmz_log_dirty_mblocks(zmd, &write_list);
 	if (ret)
-		goto out;
+		goto err;
 
 	/*
 	 * The log is on disk. It is now safe to update in place
@@ -786,11 +791,11 @@
 	 */
 	ret = dmz_write_dirty_mblocks(zmd, &write_list, zmd->mblk_primary);
 	if (ret)
-		goto out;
+		goto err;
 
 	ret = dmz_write_sb(zmd, zmd->mblk_primary);
 	if (ret)
-		goto out;
+		goto err;
 
 	while (!list_empty(&write_list)) {
 		mblk = list_first_entry(&write_list, struct dmz_mblock, link);
@@ -805,16 +810,20 @@
 
 	zmd->sb_gen++;
 out:
-	if (ret && !list_empty(&write_list)) {
-		spin_lock(&zmd->mblk_lock);
-		list_splice(&write_list, &zmd->mblk_dirty_list);
-		spin_unlock(&zmd->mblk_lock);
-	}
-
 	dmz_unlock_flush(zmd);
 	up_write(&zmd->mblk_sem);
 
 	return ret;
+
+err:
+	if (!list_empty(&write_list)) {
+		spin_lock(&zmd->mblk_lock);
+		list_splice(&write_list, &zmd->mblk_dirty_list);
+		spin_unlock(&zmd->mblk_lock);
+	}
+	if (!dmz_check_bdev(zmd->dev))
+		ret = -EIO;
+	goto out;
 }
 
 /*
@@ -1098,7 +1107,6 @@
 
 	if (blkz->type == BLK_ZONE_TYPE_CONVENTIONAL) {
 		set_bit(DMZ_RND, &zone->flags);
-		zmd->nr_rnd_zones++;
 	} else if (blkz->type == BLK_ZONE_TYPE_SEQWRITE_REQ ||
 		   blkz->type == BLK_ZONE_TYPE_SEQWRITE_PREF) {
 		set_bit(DMZ_SEQ, &zone->flags);
@@ -1159,7 +1167,10 @@
 
 	/* Init */
 	zmd->zone_bitmap_size = dev->zone_nr_blocks >> 3;
-	zmd->zone_nr_bitmap_blocks = zmd->zone_bitmap_size >> DMZ_BLOCK_SHIFT;
+	zmd->zone_nr_bitmap_blocks =
+		max_t(sector_t, 1, zmd->zone_bitmap_size >> DMZ_BLOCK_SHIFT);
+	zmd->zone_bits_per_mblk = min_t(sector_t, dev->zone_nr_blocks,
+					DMZ_BLOCK_SIZE_BITS);
 
 	/* Allocate zone array */
 	zmd->zones = kcalloc(dev->nr_zones, sizeof(struct dm_zone), GFP_KERNEL);
@@ -1244,6 +1255,7 @@
 	if (ret) {
 		dmz_dev_err(zmd->dev, "Get zone %u report failed",
 			    dmz_id(zmd, zone));
+		dmz_check_bdev(zmd->dev);
 		return ret;
 	}
 
@@ -1577,7 +1589,7 @@
 			return dzone;
 	}
 
-	return ERR_PTR(-EBUSY);
+	return NULL;
 }
 
 /*
@@ -1597,7 +1609,7 @@
 			return zone;
 	}
 
-	return ERR_PTR(-EBUSY);
+	return NULL;
 }
 
 /*
@@ -1982,7 +1994,7 @@
 		dmz_release_mblock(zmd, to_mblk);
 		dmz_release_mblock(zmd, from_mblk);
 
-		chunk_block += DMZ_BLOCK_SIZE_BITS;
+		chunk_block += zmd->zone_bits_per_mblk;
 	}
 
 	to_zone->weight = from_zone->weight;
@@ -2043,7 +2055,7 @@
 
 		/* Set bits */
 		bit = chunk_block & DMZ_BLOCK_MASK_BITS;
-		nr_bits = min(nr_blocks, DMZ_BLOCK_SIZE_BITS - bit);
+		nr_bits = min(nr_blocks, zmd->zone_bits_per_mblk - bit);
 
 		count = dmz_set_bits((unsigned long *)mblk->data, bit, nr_bits);
 		if (count) {
@@ -2122,7 +2134,7 @@
 
 		/* Clear bits */
 		bit = chunk_block & DMZ_BLOCK_MASK_BITS;
-		nr_bits = min(nr_blocks, DMZ_BLOCK_SIZE_BITS - bit);
+		nr_bits = min(nr_blocks, zmd->zone_bits_per_mblk - bit);
 
 		count = dmz_clear_bits((unsigned long *)mblk->data,
 				       bit, nr_bits);
@@ -2182,6 +2194,7 @@
 {
 	struct dmz_mblock *mblk;
 	unsigned int bit, set_bit, nr_bits;
+	unsigned int zone_bits = zmd->zone_bits_per_mblk;
 	unsigned long *bitmap;
 	int n = 0;
 
@@ -2196,15 +2209,15 @@
 		/* Get offset */
 		bitmap = (unsigned long *) mblk->data;
 		bit = chunk_block & DMZ_BLOCK_MASK_BITS;
-		nr_bits = min(nr_blocks, DMZ_BLOCK_SIZE_BITS - bit);
+		nr_bits = min(nr_blocks, zone_bits - bit);
 		if (set)
-			set_bit = find_next_bit(bitmap, DMZ_BLOCK_SIZE_BITS, bit);
+			set_bit = find_next_bit(bitmap, zone_bits, bit);
 		else
-			set_bit = find_next_zero_bit(bitmap, DMZ_BLOCK_SIZE_BITS, bit);
+			set_bit = find_next_zero_bit(bitmap, zone_bits, bit);
 		dmz_release_mblock(zmd, mblk);
 
 		n += set_bit - bit;
-		if (set_bit < DMZ_BLOCK_SIZE_BITS)
+		if (set_bit < zone_bits)
 			break;
 
 		nr_blocks -= nr_bits;
@@ -2307,7 +2320,7 @@
 		/* Count bits in this block */
 		bitmap = mblk->data;
 		bit = chunk_block & DMZ_BLOCK_MASK_BITS;
-		nr_bits = min(nr_blocks, DMZ_BLOCK_SIZE_BITS - bit);
+		nr_bits = min(nr_blocks, zmd->zone_bits_per_mblk - bit);
 		n += dmz_count_bits(bitmap, bit, nr_bits);
 
 		dmz_release_mblock(zmd, mblk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-zoned-reclaim.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-zoned-reclaim.c
@@ -82,6 +82,7 @@
 			    "Align zone %u wp %llu to %llu (wp+%u) blocks failed %d",
 			    dmz_id(zmd, zone), (unsigned long long)wp_block,
 			    (unsigned long long)block, nr_blocks, ret);
+		dmz_check_bdev(zrc->dev);
 		return ret;
 	}
 
@@ -348,8 +349,8 @@
 
 	/* Get a data zone */
 	dzone = dmz_get_zone_for_reclaim(zmd);
-	if (IS_ERR(dzone))
-		return PTR_ERR(dzone);
+	if (!dzone)
+		return -EBUSY;
 
 	start = jiffies;
 
@@ -489,12 +490,7 @@
 	ret = dmz_do_reclaim(zrc);
 	if (ret) {
 		dmz_dev_debug(zrc->dev, "Reclaim error %d\n", ret);
-		if (ret == -EIO)
-			/*
-			 * LLD might be performing some error handling sequence
-			 * at the underlying device. To not interfere, do not
-			 * attempt to schedule the next reclaim run immediately.
-			 */
+		if (!dmz_check_bdev(zrc->dev))
 			return;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-zoned-target.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-zoned-target.c
@@ -80,6 +80,8 @@
 
 	if (status != BLK_STS_OK && bio->bi_status == BLK_STS_OK)
 		bio->bi_status = status;
+	if (bio->bi_status != BLK_STS_OK)
+		bioctx->target->dev->flags |= DMZ_CHECK_BDEV;
 
 	if (refcount_dec_and_test(&bioctx->ref)) {
 		struct dm_zone *zone = bioctx->zone;
@@ -531,8 +533,9 @@
 
 	/* Get the BIO chunk work. If one is not active yet, create one */
 	cw = radix_tree_lookup(&dmz->chunk_rxtree, chunk);
-	if (!cw) {
-
+	if (cw) {
+		dmz_get_chunk_work(cw);
+	} else {
 		/* Create a new chunk work */
 		cw = kmalloc(sizeof(struct dm_chunk_work), GFP_NOIO);
 		if (unlikely(!cw)) {
@@ -541,7 +544,7 @@
 		}
 
 		INIT_WORK(&cw->work, dmz_chunk_work);
-		refcount_set(&cw->refcount, 0);
+		refcount_set(&cw->refcount, 1);
 		cw->target = dmz;
 		cw->chunk = chunk;
 		bio_list_init(&cw->bio_list);
@@ -554,7 +557,6 @@
 	}
 
 	bio_list_add(&cw->bio_list, bio);
-	dmz_get_chunk_work(cw);
 
 	dmz_reclaim_bio_acc(dmz->reclaim);
 	if (queue_work(dmz->chunk_wq, &cw->work))
@@ -565,32 +567,52 @@
 }
 
 /*
- * Check the backing device availability. If it's on the way out,
+ * Check if the backing device is being removed. If it's on the way out,
  * start failing I/O. Reclaim and metadata components also call this
  * function to cleanly abort operation in the event of such failure.
  */
 bool dmz_bdev_is_dying(struct dmz_dev *dmz_dev)
 {
-	struct gendisk *disk;
+	if (dmz_dev->flags & DMZ_BDEV_DYING)
+		return true;
 
-	if (!(dmz_dev->flags & DMZ_BDEV_DYING)) {
-		disk = dmz_dev->bdev->bd_disk;
-		if (blk_queue_dying(bdev_get_queue(dmz_dev->bdev))) {
-			dmz_dev_warn(dmz_dev, "Backing device queue dying");
-			dmz_dev->flags |= DMZ_BDEV_DYING;
-		} else if (disk->fops->check_events) {
-			if (disk->fops->check_events(disk, 0) &
-					DISK_EVENT_MEDIA_CHANGE) {
-				dmz_dev_warn(dmz_dev, "Backing device offline");
-				dmz_dev->flags |= DMZ_BDEV_DYING;
-			}
-		}
+	if (dmz_dev->flags & DMZ_CHECK_BDEV)
+		return !dmz_check_bdev(dmz_dev);
+
+	if (blk_queue_dying(bdev_get_queue(dmz_dev->bdev))) {
+		dmz_dev_warn(dmz_dev, "Backing device queue dying");
+		dmz_dev->flags |= DMZ_BDEV_DYING;
 	}
 
 	return dmz_dev->flags & DMZ_BDEV_DYING;
 }
 
 /*
+ * Check the backing device availability. This detects such events as
+ * backing device going offline due to errors, media removals, etc.
+ * This check is less efficient than dmz_bdev_is_dying() and should
+ * only be performed as a part of error handling.
+ */
+bool dmz_check_bdev(struct dmz_dev *dmz_dev)
+{
+	struct gendisk *disk;
+
+	dmz_dev->flags &= ~DMZ_CHECK_BDEV;
+
+	if (dmz_bdev_is_dying(dmz_dev))
+		return false;
+
+	disk = dmz_dev->bdev->bd_disk;
+	if (disk->fops->check_events &&
+	    disk->fops->check_events(disk, 0) & DISK_EVENT_MEDIA_CHANGE) {
+		dmz_dev_warn(dmz_dev, "Backing device offline");
+		dmz_dev->flags |= DMZ_BDEV_DYING;
+	}
+
+	return !(dmz_dev->flags & DMZ_BDEV_DYING);
+}
+
+/*
  * Process a new BIO.
  */
 static int dmz_map(struct dm_target *ti, struct bio *bio)
@@ -768,7 +790,7 @@
 	}
 
 	/* Set target (no write same support) */
-	ti->max_io_len = dev->zone_nr_sectors << 9;
+	ti->max_io_len = dev->zone_nr_sectors;
 	ti->num_flush_bios = 1;
 	ti->num_discard_bios = 1;
 	ti->num_write_zeroes_bios = 1;
@@ -902,8 +924,8 @@
 {
 	struct dmz_target *dmz = ti->private;
 
-	if (dmz_bdev_is_dying(dmz->dev))
-		return -ENODEV;
+	if (!dmz_check_bdev(dmz->dev))
+		return -EIO;
 
 	*bdev = dmz->dev->bdev;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm-zoned.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm-zoned.h
@@ -72,6 +72,7 @@
 
 /* Device flags. */
 #define DMZ_BDEV_DYING		(1 << 0)
+#define DMZ_CHECK_BDEV		(2 << 0)
 
 /*
  * Zone descriptor.
@@ -255,5 +256,6 @@
  * Functions defined in dm-zoned-target.c
  */
 bool dmz_bdev_is_dying(struct dmz_dev *dmz_dev);
+bool dmz_check_bdev(struct dmz_dev *dmz_dev);
 
 #endif /* DM_ZONED_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm.c
@@ -12,6 +12,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/sched/mm.h>
 #include <linux/sched/signal.h>
 #include <linux/blkpg.h>
 #include <linux/bio.h>
@@ -140,10 +141,21 @@
 #define DMF_NOFLUSH_SUSPENDING 5
 #define DMF_DEFERRED_REMOVE 6
 #define DMF_SUSPENDED_INTERNALLY 7
+#define DMF_POST_SUSPENDING 8
 
 #define DM_NUMA_NODE NUMA_NO_NODE
 static int dm_numa_node = DM_NUMA_NODE;
 
+#define DEFAULT_SWAP_BIOS	(8 * 1048576 / PAGE_SIZE)
+static int swap_bios = DEFAULT_SWAP_BIOS;
+static int get_swap_bios(void)
+{
+	int latch = READ_ONCE(swap_bios);
+	if (unlikely(latch <= 0))
+		latch = DEFAULT_SWAP_BIOS;
+	return latch;
+}
+
 /*
  * For mempools pre-allocation at the table loading time.
  */
@@ -453,8 +465,10 @@
 		return -EAGAIN;
 
 	map = dm_get_live_table(md, &srcu_idx);
-	if (!map)
-		return -EIO;
+	if (!map) {
+		ret = -EIO;
+		goto out;
+	}
 
 	tgt = dm_table_find_target(map, sector);
 	if (!tgt) {
@@ -491,7 +505,6 @@
 
 static int dm_prepare_ioctl(struct mapped_device *md, int *srcu_idx,
 			    struct block_device **bdev)
-	__acquires(md->io_barrier)
 {
 	struct dm_target *tgt;
 	struct dm_table *map;
@@ -525,7 +538,6 @@
 }
 
 static void dm_unprepare_ioctl(struct mapped_device *md, int srcu_idx)
-	__releases(md->io_barrier)
 {
 	dm_put_live_table(md, srcu_idx);
 }
@@ -546,7 +558,7 @@
 		 * subset of the parent bdev; require extra privileges.
 		 */
 		if (!capable(CAP_SYS_RAWIO)) {
-			DMWARN_LIMIT(
+			DMDEBUG_LIMIT(
 	"%s: sending ioctl %x to DM device without required privilege.",
 				current->comm, cmd);
 			r = -ENOIOCTLCMD;
@@ -970,6 +982,11 @@
 	limits->max_write_zeroes_sectors = 0;
 }
 
+static bool swap_bios_limit(struct dm_target *ti, struct bio *bio)
+{
+	return unlikely((bio->bi_opf & REQ_SWAP) != 0) && unlikely(ti->limit_swap_bios);
+}
+
 static void clone_endio(struct bio *bio)
 {
 	blk_status_t error = bio->bi_status;
@@ -1007,6 +1024,11 @@
 		}
 	}
 
+	if (unlikely(swap_bios_limit(tio->ti, bio))) {
+		struct mapped_device *md = io->md;
+		up(&md->swap_bios_semaphore);
+	}
+
 	free_tio(tio);
 	dec_pending(io, error);
 }
@@ -1110,15 +1132,16 @@
 {
 	struct mapped_device *md = dax_get_private(dax_dev);
 	struct dm_table *map;
+	bool ret = false;
 	int srcu_idx;
-	bool ret;
 
 	map = dm_get_live_table(md, &srcu_idx);
 	if (!map)
-		return false;
+		goto out;
 
-	ret = dm_table_supports_dax(map, device_supports_dax, &blocksize);
+	ret = dm_table_supports_dax(map, device_not_dax_capable, &blocksize);
 
+out:
 	dm_put_live_table(md, srcu_idx);
 
 	return ret;
@@ -1260,6 +1283,22 @@
 }
 EXPORT_SYMBOL_GPL(dm_remap_zone_report);
 
+static noinline void __set_swap_bios_limit(struct mapped_device *md, int latch)
+{
+	mutex_lock(&md->swap_bios_lock);
+	while (latch < md->swap_bios) {
+		cond_resched();
+		down(&md->swap_bios_semaphore);
+		md->swap_bios--;
+	}
+	while (latch > md->swap_bios) {
+		cond_resched();
+		up(&md->swap_bios_semaphore);
+		md->swap_bios++;
+	}
+	mutex_unlock(&md->swap_bios_lock);
+}
+
 static blk_qc_t __map_bio(struct dm_target_io *tio)
 {
 	int r;
@@ -1280,6 +1319,14 @@
 	atomic_inc(&io->io_count);
 	sector = clone->bi_iter.bi_sector;
 
+	if (unlikely(swap_bios_limit(ti, clone))) {
+		struct mapped_device *md = io->md;
+		int latch = get_swap_bios();
+		if (unlikely(latch != md->swap_bios))
+			__set_swap_bios_limit(md, latch);
+		down(&md->swap_bios_semaphore);
+	}
+
 	r = ti->type->map(ti, clone);
 	switch (r) {
 	case DM_MAPIO_SUBMITTED:
@@ -1294,10 +1341,18 @@
 			ret = generic_make_request(clone);
 		break;
 	case DM_MAPIO_KILL:
+		if (unlikely(swap_bios_limit(ti, clone))) {
+			struct mapped_device *md = io->md;
+			up(&md->swap_bios_semaphore);
+		}
 		free_tio(tio);
 		dec_pending(io, BLK_STS_IOERR);
 		break;
 	case DM_MAPIO_REQUEUE:
+		if (unlikely(swap_bios_limit(ti, clone))) {
+			struct mapped_device *md = io->md;
+			up(&md->swap_bios_semaphore);
+		}
 		free_tio(tio);
 		dec_pending(io, BLK_STS_DM_REQUEUE);
 		break;
@@ -1436,9 +1491,6 @@
 	BUG_ON(bio_has_data(ci->bio));
 	while ((ti = dm_table_get_target(ci->map, target_nr++)))
 		__send_duplicate_bios(ci, ti, ti->num_flush_bios, NULL);
-
-	bio_disassociate_blkg(ci->bio);
-
 	return 0;
 }
 
@@ -1626,6 +1678,7 @@
 		ci.bio = &flush_bio;
 		ci.sector_count = 0;
 		error = __send_empty_flush(&ci);
+		bio_uninit(ci.bio);
 		/* dec_pending submits any data associated with flush */
 	} else if (bio_op(bio) == REQ_OP_ZONE_RESET) {
 		ci.bio = bio;
@@ -1700,6 +1753,7 @@
 		ci.bio = &flush_bio;
 		ci.sector_count = 0;
 		error = __send_empty_flush(&ci);
+		bio_uninit(ci.bio);
 		/* dec_pending submits any data associated with flush */
 	} else {
 		struct dm_target_io *tio;
@@ -1718,23 +1772,6 @@
 	return ret;
 }
 
-static void dm_queue_split(struct mapped_device *md, struct dm_target *ti, struct bio **bio)
-{
-	unsigned len, sector_count;
-
-	sector_count = bio_sectors(*bio);
-	len = min_t(sector_t, max_io_len((*bio)->bi_iter.bi_sector, ti), sector_count);
-
-	if (sector_count > len) {
-		struct bio *split = bio_split(*bio, len, GFP_NOIO, &md->queue->bio_split);
-
-		bio_chain(split, *bio);
-		trace_block_split(md->queue, split, (*bio)->bi_iter.bi_sector);
-		generic_make_request(*bio);
-		*bio = split;
-	}
-}
-
 static blk_qc_t dm_process_bio(struct mapped_device *md,
 			       struct dm_table *map, struct bio *bio)
 {
@@ -1760,15 +1797,14 @@
 	 * won't be imposed.
 	 */
 	if (current->bio_list) {
-		blk_queue_split(md->queue, &bio);
-		if (!is_abnormal_io(bio))
-			dm_queue_split(md, ti, &bio);
+		if (is_abnormal_io(bio))
+			blk_queue_split(md->queue, &bio);
+		/* regular IO is split by __split_and_process_bio */
 	}
 
 	if (dm_get_md_type(md) == DM_TYPE_NVME_BIO_BASED)
 		return __process_bio(md, map, bio, ti);
-	else
-		return __split_and_process_bio(md, map, bio);
+	return __split_and_process_bio(md, map, bio);
 }
 
 static blk_qc_t dm_make_request(struct request_queue *q, struct bio *bio)
@@ -1809,7 +1845,8 @@
 			 * With request-based DM we only need to check the
 			 * top-level queue for congestion.
 			 */
-			r = md->queue->backing_dev_info->wb.state & bdi_bits;
+			struct backing_dev_info *bdi = md->queue->backing_dev_info;
+			r = bdi->wb.congested->state & bdi_bits;
 		} else {
 			map = dm_get_live_table_fast(md);
 			if (map)
@@ -1875,14 +1912,6 @@
 
 static void dm_wq_work(struct work_struct *work);
 
-static void dm_init_normal_md_queue(struct mapped_device *md)
-{
-	/*
-	 * Initialize aspects of queue that aren't relevant for blk-mq
-	 */
-	md->queue->backing_dev_info->congested_fn = dm_any_congested;
-}
-
 static void cleanup_mapped_device(struct mapped_device *md)
 {
 	if (md->wq)
@@ -1917,6 +1946,7 @@
 	mutex_destroy(&md->suspend_lock);
 	mutex_destroy(&md->type_lock);
 	mutex_destroy(&md->table_devices_lock);
+	mutex_destroy(&md->swap_bios_lock);
 
 	dm_mq_cleanup_mapped_device(md);
 }
@@ -1970,7 +2000,12 @@
 	if (!md->queue)
 		goto bad;
 	md->queue->queuedata = md;
-	md->queue->backing_dev_info->congested_data = md;
+	/*
+	 * default to bio-based required ->make_request_fn until DM
+	 * table is loaded and md->type established. If request-based
+	 * table is loaded: blk-mq will override accordingly.
+	 */
+	blk_queue_make_request(md->queue, dm_make_request);
 
 	md->disk = alloc_disk_node(1, md->numa_node_id);
 	if (!md->disk)
@@ -1981,6 +2016,10 @@
 	init_waitqueue_head(&md->eventq);
 	init_completion(&md->kobj_holder.completion);
 
+	md->swap_bios = get_swap_bios();
+	sema_init(&md->swap_bios_semaphore, md->swap_bios);
+	mutex_init(&md->swap_bios_lock);
+
 	md->disk->major = _major;
 	md->disk->first_minor = minor;
 	md->disk->fops = &dm_blk_dops;
@@ -2264,6 +2303,12 @@
 }
 EXPORT_SYMBOL_GPL(dm_get_queue_limits);
 
+static void dm_init_congested_fn(struct mapped_device *md)
+{
+	md->queue->backing_dev_info->congested_data = md;
+	md->queue->backing_dev_info->congested_fn = dm_any_congested;
+}
+
 /*
  * Setup the DM device's queue based on md's type
  */
@@ -2280,12 +2325,12 @@
 			DMERR("Cannot initialize queue for request-based dm-mq mapped device");
 			return r;
 		}
+		dm_init_congested_fn(md);
 		break;
 	case DM_TYPE_BIO_BASED:
 	case DM_TYPE_DAX_BIO_BASED:
 	case DM_TYPE_NVME_BIO_BASED:
-		dm_init_normal_md_queue(md);
-		blk_queue_make_request(md->queue, dm_make_request);
+		dm_init_congested_fn(md);
 		break;
 	case DM_TYPE_NONE:
 		WARN_ON_ONCE(true);
@@ -2384,6 +2429,8 @@
 	map = dm_get_live_table(md, &srcu_idx);
 	if (!dm_suspended_md(md)) {
 		dm_table_presuspend_targets(map);
+		set_bit(DMF_SUSPENDED, &md->flags);
+		set_bit(DMF_POST_SUSPENDING, &md->flags);
 		dm_table_postsuspend_targets(map);
 	}
 	/* dm_put_live_table must be before msleep, otherwise deadlock is possible */
@@ -2706,7 +2753,9 @@
 	if (r)
 		goto out_unlock;
 
+	set_bit(DMF_POST_SUSPENDING, &md->flags);
 	dm_table_postsuspend_targets(map);
+	clear_bit(DMF_POST_SUSPENDING, &md->flags);
 
 out_unlock:
 	mutex_unlock(&md->suspend_lock);
@@ -2803,7 +2852,9 @@
 	(void) __dm_suspend(md, map, suspend_flags, TASK_UNINTERRUPTIBLE,
 			    DMF_SUSPENDED_INTERNALLY);
 
+	set_bit(DMF_POST_SUSPENDING, &md->flags);
 	dm_table_postsuspend_targets(map);
+	clear_bit(DMF_POST_SUSPENDING, &md->flags);
 }
 
 static void __dm_internal_resume(struct mapped_device *md)
@@ -2880,17 +2931,25 @@
 int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
 		       unsigned cookie)
 {
+	int r;
+	unsigned noio_flag;
 	char udev_cookie[DM_COOKIE_LENGTH];
 	char *envp[] = { udev_cookie, NULL };
 
+	noio_flag = memalloc_noio_save();
+
 	if (!cookie)
-		return kobject_uevent(&disk_to_dev(md->disk)->kobj, action);
+		r = kobject_uevent(&disk_to_dev(md->disk)->kobj, action);
 	else {
 		snprintf(udev_cookie, DM_COOKIE_LENGTH, "%s=%u",
 			 DM_COOKIE_ENV_VAR_NAME, cookie);
-		return kobject_uevent_env(&disk_to_dev(md->disk)->kobj,
-					  action, envp);
+		r = kobject_uevent_env(&disk_to_dev(md->disk)->kobj,
+				       action, envp);
 	}
+
+	memalloc_noio_restore(noio_flag);
+
+	return r;
 }
 
 uint32_t dm_next_uevent_seq(struct mapped_device *md)
@@ -2956,6 +3015,11 @@
 	return test_bit(DMF_SUSPENDED, &md->flags);
 }
 
+static int dm_post_suspending_md(struct mapped_device *md)
+{
+	return test_bit(DMF_POST_SUSPENDING, &md->flags);
+}
+
 int dm_suspended_internally_md(struct mapped_device *md)
 {
 	return test_bit(DMF_SUSPENDED_INTERNALLY, &md->flags);
@@ -2972,6 +3036,12 @@
 }
 EXPORT_SYMBOL_GPL(dm_suspended);
 
+int dm_post_suspending(struct dm_target *ti)
+{
+	return dm_post_suspending_md(dm_table_get_md(ti->table));
+}
+EXPORT_SYMBOL_GPL(dm_post_suspending);
+
 int dm_noflush_suspending(struct dm_target *ti)
 {
 	return __noflush_suspending(dm_table_get_md(ti->table));
@@ -3232,6 +3302,9 @@
 module_param(dm_numa_node, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(dm_numa_node, "NUMA node for DM device memory allocations");
 
+module_param(swap_bios, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(swap_bios, "Maximum allowed inflight swap IOs");
+
 MODULE_DESCRIPTION(DM_NAME " driver");
 MODULE_AUTHOR("Joe Thornber <dm-devel@redhat.com>");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/dm.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/dm.h
@@ -74,7 +74,7 @@
 struct dm_md_mempools *dm_table_get_md_mempools(struct dm_table *t);
 bool dm_table_supports_dax(struct dm_table *t, iterate_devices_callout_fn fn,
 			   int *blocksize);
-int device_supports_dax(struct dm_target *ti, struct dm_dev *dev,
+int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
 			   sector_t start, sector_t len, void *data);
 
 void dm_lock_md_type(struct mapped_device *md);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/md-bitmap.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/md-bitmap.c
@@ -1372,7 +1372,7 @@
 	if (bitmap->bp[page].hijacked ||
 	    bitmap->bp[page].map == NULL)
 		csize = ((sector_t)1) << (bitmap->chunkshift +
-					  PAGE_COUNTER_SHIFT - 1);
+					  PAGE_COUNTER_SHIFT);
 	else
 		csize = ((sector_t)1) << bitmap->chunkshift;
 	*blocks = csize - (offset & (csize - 1));
@@ -1954,6 +1954,7 @@
 }
 EXPORT_SYMBOL_GPL(md_bitmap_load);
 
+/* caller need to free returned bitmap with md_bitmap_free() */
 struct bitmap *get_bitmap_from_slot(struct mddev *mddev, int slot)
 {
 	int rv = 0;
@@ -2017,6 +2018,7 @@
 	md_bitmap_unplug(mddev->bitmap);
 	*low = lo;
 	*high = hi;
+	md_bitmap_free(bitmap);
 
 	return rv;
 }
@@ -2139,6 +2141,7 @@
 		memcpy(page_address(store.sb_page),
 		       page_address(bitmap->storage.sb_page),
 		       sizeof(bitmap_super_t));
+	spin_lock_irq(&bitmap->counts.lock);
 	md_bitmap_file_unmap(&bitmap->storage);
 	bitmap->storage = store;
 
@@ -2154,7 +2157,6 @@
 	blocks = min(old_counts.chunks << old_counts.chunkshift,
 		     chunks << chunkshift);
 
-	spin_lock_irq(&bitmap->counts.lock);
 	/* For cluster raid, need to pre-allocate bitmap */
 	if (mddev_is_clustered(bitmap->mddev)) {
 		unsigned long page;
@@ -2620,4 +2622,3 @@
 	.name = "bitmap",
 	.attrs = md_bitmap_attrs,
 };
-
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/md-cluster.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/md-cluster.c
@@ -664,9 +664,27 @@
  * Takes the lock on the TOKEN lock resource so no other
  * node can communicate while the operation is underway.
  */
-static int lock_token(struct md_cluster_info *cinfo, bool mddev_locked)
+static int lock_token(struct md_cluster_info *cinfo)
 {
-	int error, set_bit = 0;
+	int error;
+
+	error = dlm_lock_sync(cinfo->token_lockres, DLM_LOCK_EX);
+	if (error) {
+		pr_err("md-cluster(%s:%d): failed to get EX on TOKEN (%d)\n",
+				__func__, __LINE__, error);
+	} else {
+		/* Lock the receive sequence */
+		mutex_lock(&cinfo->recv_mutex);
+	}
+	return error;
+}
+
+/* lock_comm()
+ * Sets the MD_CLUSTER_SEND_LOCK bit to lock the send channel.
+ */
+static int lock_comm(struct md_cluster_info *cinfo, bool mddev_locked)
+{
+	int rv, set_bit = 0;
 	struct mddev *mddev = cinfo->mddev;
 
 	/*
@@ -677,34 +695,19 @@
 	 */
 	if (mddev_locked && !test_bit(MD_CLUSTER_HOLDING_MUTEX_FOR_RECVD,
 				      &cinfo->state)) {
-		error = test_and_set_bit_lock(MD_CLUSTER_HOLDING_MUTEX_FOR_RECVD,
+		rv = test_and_set_bit_lock(MD_CLUSTER_HOLDING_MUTEX_FOR_RECVD,
 					      &cinfo->state);
-		WARN_ON_ONCE(error);
+		WARN_ON_ONCE(rv);
 		md_wakeup_thread(mddev->thread);
 		set_bit = 1;
 	}
-	error = dlm_lock_sync(cinfo->token_lockres, DLM_LOCK_EX);
-	if (set_bit)
-		clear_bit_unlock(MD_CLUSTER_HOLDING_MUTEX_FOR_RECVD, &cinfo->state);
 
-	if (error)
-		pr_err("md-cluster(%s:%d): failed to get EX on TOKEN (%d)\n",
-				__func__, __LINE__, error);
-
-	/* Lock the receive sequence */
-	mutex_lock(&cinfo->recv_mutex);
-	return error;
-}
-
-/* lock_comm()
- * Sets the MD_CLUSTER_SEND_LOCK bit to lock the send channel.
- */
-static int lock_comm(struct md_cluster_info *cinfo, bool mddev_locked)
-{
 	wait_event(cinfo->wait,
 		   !test_and_set_bit(MD_CLUSTER_SEND_LOCK, &cinfo->state));
-
-	return lock_token(cinfo, mddev_locked);
+	rv = lock_token(cinfo);
+	if (set_bit)
+		clear_bit_unlock(MD_CLUSTER_HOLDING_MUTEX_FOR_RECVD, &cinfo->state);
+	return rv;
 }
 
 static void unlock_comm(struct md_cluster_info *cinfo)
@@ -784,9 +787,11 @@
 {
 	int ret;
 
-	lock_comm(cinfo, mddev_locked);
-	ret = __sendmsg(cinfo, cmsg);
-	unlock_comm(cinfo);
+	ret = lock_comm(cinfo, mddev_locked);
+	if (!ret) {
+		ret = __sendmsg(cinfo, cmsg);
+		unlock_comm(cinfo);
+	}
 	return ret;
 }
 
@@ -1061,7 +1066,7 @@
 		return 0;
 	}
 
-	ret = lock_token(cinfo, 1);
+	ret = lock_token(cinfo);
 	clear_bit_unlock(MD_CLUSTER_HOLDING_MUTEX_FOR_RECVD, &cinfo->state);
 	return ret;
 }
@@ -1139,6 +1144,7 @@
 		bitmap = get_bitmap_from_slot(mddev, i);
 		if (IS_ERR(bitmap)) {
 			pr_err("can't get bitmap from slot %d\n", i);
+			bitmap = NULL;
 			goto out;
 		}
 		counts = &bitmap->counts;
@@ -1165,6 +1171,7 @@
 			 * can't resize bitmap
 			 */
 			goto out;
+		md_bitmap_free(bitmap);
 	}
 
 	return 0;
@@ -1253,7 +1260,10 @@
 	int raid_slot = -1;
 
 	md_update_sb(mddev, 1);
-	lock_comm(cinfo, 1);
+	if (lock_comm(cinfo, 1)) {
+		pr_err("%s: lock_comm failed\n", __func__);
+		return;
+	}
 
 	memset(&cmsg, 0, sizeof(cmsg));
 	cmsg.type = cpu_to_le32(METADATA_UPDATED);
@@ -1405,7 +1415,8 @@
 	cmsg.type = cpu_to_le32(NEWDISK);
 	memcpy(cmsg.uuid, uuid, 16);
 	cmsg.raid_slot = cpu_to_le32(rdev->desc_nr);
-	lock_comm(cinfo, 1);
+	if (lock_comm(cinfo, 1))
+		return -EAGAIN;
 	ret = __sendmsg(cinfo, &cmsg);
 	if (ret) {
 		unlock_comm(cinfo);
@@ -1518,6 +1529,7 @@
 			}
 		}
 		kfree(cinfo->other_bitmap_lockres);
+		cinfo->other_bitmap_lockres = NULL;
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/md-linear.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/md-linear.c
@@ -244,10 +244,9 @@
 	sector_t start_sector, end_sector, data_offset;
 	sector_t bio_sector = bio->bi_iter.bi_sector;
 
-	if (unlikely(bio->bi_opf & REQ_PREFLUSH)) {
-		md_flush_request(mddev, bio);
+	if (unlikely(bio->bi_opf & REQ_PREFLUSH)
+	    && md_flush_request(mddev, bio))
 		return true;
-	}
 
 	tmp_dev = which_dev(mddev, bio_sector);
 	start_sector = tmp_dev->end_sector - tmp_dev->rdev->sectors;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/md-multipath.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/md-multipath.c
@@ -104,10 +104,9 @@
 	struct multipath_bh * mp_bh;
 	struct multipath_info *multipath;
 
-	if (unlikely(bio->bi_opf & REQ_PREFLUSH)) {
-		md_flush_request(mddev, bio);
+	if (unlikely(bio->bi_opf & REQ_PREFLUSH)
+	    && md_flush_request(mddev, bio))
 		return true;
-	}
 
 	mp_bh = mempool_alloc(&conf->pool, GFP_NOIO);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/md.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/md.c
@@ -376,17 +376,18 @@
 	struct mddev *mddev = q->queuedata;
 	unsigned int sectors;
 
-	if (unlikely(test_bit(MD_BROKEN, &mddev->flags)) && (rw == WRITE)) {
+	if (mddev == NULL || mddev->pers == NULL) {
 		bio_io_error(bio);
 		return BLK_QC_T_NONE;
 	}
 
-	blk_queue_split(q, &bio);
-
-	if (mddev == NULL || mddev->pers == NULL) {
+	if (unlikely(test_bit(MD_BROKEN, &mddev->flags)) && (rw == WRITE)) {
 		bio_io_error(bio);
 		return BLK_QC_T_NONE;
 	}
+
+	blk_queue_split(q, &bio);
+
 	if (mddev->ro == 1 && unlikely(rw == WRITE)) {
 		if (bio_sectors(bio) != 0)
 			bio->bi_status = BLK_STS_IOERR;
@@ -537,8 +538,10 @@
 	 * could wait for this and below md_handle_request could wait for those
 	 * bios because of suspend check
 	 */
+	spin_lock_irq(&mddev->lock);
 	mddev->last_flush = mddev->start_flush;
 	mddev->flush_bio = NULL;
+	spin_unlock_irq(&mddev->lock);
 	wake_up(&mddev->sb_wait);
 
 	if (bio->bi_iter.bi_size == 0) {
@@ -550,7 +553,13 @@
 	}
 }
 
-void md_flush_request(struct mddev *mddev, struct bio *bio)
+/*
+ * Manages consolidation of flushes and submitting any flushes needed for
+ * a bio with REQ_PREFLUSH.  Returns true if the bio is finished or is
+ * being finished in another context.  Returns false if the flushing is
+ * complete but still needs the I/O portion of the bio to be processed.
+ */
+bool md_flush_request(struct mddev *mddev, struct bio *bio)
 {
 	ktime_t start = ktime_get_boottime();
 	spin_lock_irq(&mddev->lock);
@@ -575,9 +584,10 @@
 			bio_endio(bio);
 		else {
 			bio->bi_opf &= ~REQ_PREFLUSH;
-			mddev->pers->make_request(mddev, bio);
+			return false;
 		}
 	}
+	return true;
 }
 EXPORT_SYMBOL(md_flush_request);
 
@@ -1098,6 +1108,7 @@
 	char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
 	mdp_super_t *sb;
 	int ret;
+	bool spare_disk = true;
 
 	/*
 	 * Calculate the position of the superblock (512byte sectors),
@@ -1148,8 +1159,19 @@
 	else
 		rdev->desc_nr = sb->this_disk.number;
 
+	/* not spare disk, or LEVEL_MULTIPATH */
+	if (sb->level == LEVEL_MULTIPATH ||
+		(rdev->desc_nr >= 0 &&
+		 rdev->desc_nr < MD_SB_DISKS &&
+		 sb->disks[rdev->desc_nr].state &
+		 ((1<<MD_DISK_SYNC) | (1 << MD_DISK_ACTIVE))))
+		spare_disk = false;
+
 	if (!refdev) {
-		ret = 1;
+		if (!spare_disk)
+			ret = 1;
+		else
+			ret = 0;
 	} else {
 		__u64 ev1, ev2;
 		mdp_super_t *refsb = page_address(refdev->sb_page);
@@ -1165,7 +1187,8 @@
 		}
 		ev1 = md_event(sb);
 		ev2 = md_event(refsb);
-		if (ev1 > ev2)
+
+		if (!spare_disk && ev1 > ev2)
 			ret = 1;
 		else
 			ret = 0;
@@ -1525,6 +1548,7 @@
 	sector_t sectors;
 	char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
 	int bmask;
+	bool spare_disk = true;
 
 	/*
 	 * Calculate the position of the superblock in 512byte sectors.
@@ -1658,8 +1682,19 @@
 	    sb->level != 0)
 		return -EINVAL;
 
+	/* not spare disk, or LEVEL_MULTIPATH */
+	if (sb->level == cpu_to_le32(LEVEL_MULTIPATH) ||
+		(rdev->desc_nr >= 0 &&
+		rdev->desc_nr < le32_to_cpu(sb->max_dev) &&
+		(le16_to_cpu(sb->dev_roles[rdev->desc_nr]) < MD_DISK_ROLE_MAX ||
+		 le16_to_cpu(sb->dev_roles[rdev->desc_nr]) == MD_DISK_ROLE_JOURNAL)))
+		spare_disk = false;
+
 	if (!refdev) {
-		ret = 1;
+		if (!spare_disk)
+			ret = 1;
+		else
+			ret = 0;
 	} else {
 		__u64 ev1, ev2;
 		struct mdp_superblock_1 *refsb = page_address(refdev->sb_page);
@@ -1676,7 +1711,7 @@
 		ev1 = le64_to_cpu(sb->events);
 		ev2 = le64_to_cpu(refsb->events);
 
-		if (ev1 > ev2)
+		if (!spare_disk && ev1 > ev2)
 			ret = 1;
 		else
 			ret = 0;
@@ -3597,7 +3632,7 @@
  * Check a full RAID array for plausibility
  */
 
-static void analyze_sbs(struct mddev *mddev)
+static int analyze_sbs(struct mddev *mddev)
 {
 	int i;
 	struct md_rdev *rdev, *freshest, *tmp;
@@ -3618,6 +3653,12 @@
 			md_kick_rdev_from_array(rdev);
 		}
 
+	/* Cannot find a valid fresh disk */
+	if (!freshest) {
+		pr_warn("md: cannot find a valid disk\n");
+		return -EINVAL;
+	}
+
 	super_types[mddev->major_version].
 		validate_super(mddev, freshest);
 
@@ -3652,6 +3693,8 @@
 			clear_bit(In_sync, &rdev->flags);
 		}
 	}
+
+	return 0;
 }
 
 /* Read a fixed-point number.
@@ -5570,7 +5613,9 @@
 	if (!mddev->raid_disks) {
 		if (!mddev->persistent)
 			return -EINVAL;
-		analyze_sbs(mddev);
+		err = analyze_sbs(mddev);
+		if (err)
+			return -EINVAL;
 	}
 
 	if (mddev->level != LEVEL_NONE)
@@ -5998,7 +6043,7 @@
 static void mddev_detach(struct mddev *mddev)
 {
 	md_bitmap_wait_behind_writes(mddev);
-	if (mddev->pers && mddev->pers->quiesce) {
+	if (mddev->pers && mddev->pers->quiesce && !mddev->suspended) {
 		mddev->pers->quiesce(mddev, 1);
 		mddev->pers->quiesce(mddev, 0);
 	}
@@ -6678,8 +6723,10 @@
 		goto busy;
 
 kick_rdev:
-	if (mddev_is_clustered(mddev))
-		md_cluster_ops->remove_disk(mddev, rdev);
+	if (mddev_is_clustered(mddev)) {
+		if (md_cluster_ops->remove_disk(mddev, rdev))
+			goto busy;
+	}
 
 	md_kick_rdev_from_array(rdev);
 	set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
@@ -7009,6 +7056,7 @@
 		return -EINVAL;
 	if (mddev->sync_thread ||
 	    test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) ||
+	    test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) ||
 	    mddev->reshape_position != MaxSector)
 		return -EBUSY;
 
@@ -7328,8 +7376,11 @@
 			err = -EBUSY;
 			goto out;
 		}
-		WARN_ON_ONCE(test_bit(MD_CLOSING, &mddev->flags));
-		set_bit(MD_CLOSING, &mddev->flags);
+		if (test_and_set_bit(MD_CLOSING, &mddev->flags)) {
+			mutex_unlock(&mddev->open_mutex);
+			err = -EBUSY;
+			goto out;
+		}
 		did_set_md_closing = true;
 		mutex_unlock(&mddev->open_mutex);
 		sync_blockdev(bdev);
@@ -7565,7 +7616,8 @@
 		 */
 		mddev_put(mddev);
 		/* Wait until bdev->bd_disk is definitely gone */
-		flush_workqueue(md_misc_wq);
+		if (work_pending(&mddev->del_work))
+			flush_workqueue(md_misc_wq);
 		/* Then retry the open from the top */
 		return -ERESTARTSYS;
 	}
@@ -9376,8 +9428,11 @@
 		}
 	}
 
-	if (mddev->raid_disks != le32_to_cpu(sb->raid_disks))
-		update_raid_disks(mddev, le32_to_cpu(sb->raid_disks));
+	if (mddev->raid_disks != le32_to_cpu(sb->raid_disks)) {
+		ret = update_raid_disks(mddev, le32_to_cpu(sb->raid_disks));
+		if (ret)
+			pr_warn("md: updating array disks failed. %d\n", ret);
+	}
 
 	/*
 	 * Since mddev->delta_disks has already updated in update_raid_disks,
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/md.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/md.h
@@ -550,7 +550,7 @@
 	int level;
 	struct list_head list;
 	struct module *owner;
-	bool (*make_request)(struct mddev *mddev, struct bio *bio);
+	bool __must_check (*make_request)(struct mddev *mddev, struct bio *bio);
 	/*
 	 * start up works that do NOT require md_thread. tasks that
 	 * requires md_thread should go into start()
@@ -703,7 +703,7 @@
 extern void md_finish_reshape(struct mddev *mddev);
 
 extern int mddev_congested(struct mddev *mddev, int bits);
-extern void md_flush_request(struct mddev *mddev, struct bio *bio);
+extern bool __must_check md_flush_request(struct mddev *mddev, struct bio *bio);
 extern void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
 			   sector_t sector, int size, struct page *page);
 extern int md_super_wait(struct mddev *mddev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/persistent-data/dm-block-manager.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/persistent-data/dm-block-manager.c
@@ -493,7 +493,7 @@
 	void *p;
 	int r;
 
-	if (bm->read_only)
+	if (dm_bm_is_read_only(bm))
 		return -EPERM;
 
 	p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result);
@@ -562,7 +562,7 @@
 	struct buffer_aux *aux;
 	void *p;
 
-	if (bm->read_only)
+	if (dm_bm_is_read_only(bm))
 		return -EPERM;
 
 	p = dm_bufio_new(bm->bufio, b, (struct dm_buffer **) result);
@@ -602,7 +602,7 @@
 
 int dm_bm_flush(struct dm_block_manager *bm)
 {
-	if (bm->read_only)
+	if (dm_bm_is_read_only(bm))
 		return -EPERM;
 
 	return dm_bufio_write_dirty_buffers(bm->bufio);
@@ -616,19 +616,21 @@
 
 bool dm_bm_is_read_only(struct dm_block_manager *bm)
 {
-	return bm->read_only;
+	return (bm ? bm->read_only : true);
 }
 EXPORT_SYMBOL_GPL(dm_bm_is_read_only);
 
 void dm_bm_set_read_only(struct dm_block_manager *bm)
 {
-	bm->read_only = true;
+	if (bm)
+		bm->read_only = true;
 }
 EXPORT_SYMBOL_GPL(dm_bm_set_read_only);
 
 void dm_bm_set_read_write(struct dm_block_manager *bm)
 {
-	bm->read_only = false;
+	if (bm)
+		bm->read_only = false;
 }
 EXPORT_SYMBOL_GPL(dm_bm_set_read_write);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/persistent-data/dm-btree-remove.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/persistent-data/dm-btree-remove.c
@@ -203,7 +203,13 @@
 	struct btree_node *right = r->n;
 	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
 	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
-	unsigned threshold = 2 * merge_threshold(left) + 1;
+	/*
+	 * Ensure the number of entries in each child will be greater
+	 * than or equal to (max_entries / 3 + 1), so no matter which
+	 * child is used for removal, the number will still be not
+	 * less than (max_entries / 3).
+	 */
+	unsigned int threshold = 2 * (merge_threshold(left) + 1);
 
 	if (nr_left + nr_right < threshold) {
 		/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/persistent-data/dm-space-map-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/persistent-data/dm-space-map-common.c
@@ -380,6 +380,33 @@
 	return -ENOSPC;
 }
 
+int sm_ll_find_common_free_block(struct ll_disk *old_ll, struct ll_disk *new_ll,
+	                         dm_block_t begin, dm_block_t end, dm_block_t *b)
+{
+	int r;
+	uint32_t count;
+
+	do {
+		r = sm_ll_find_free_block(new_ll, begin, new_ll->nr_blocks, b);
+		if (r)
+			break;
+
+		/* double check this block wasn't used in the old transaction */
+		if (*b >= old_ll->nr_blocks)
+			count = 0;
+		else {
+			r = sm_ll_lookup(old_ll, *b, &count);
+			if (r)
+				break;
+
+			if (count)
+				begin = *b + 1;
+		}
+	} while (count);
+
+	return r;
+}
+
 static int sm_ll_mutate(struct ll_disk *ll, dm_block_t b,
 			int (*mutator)(void *context, uint32_t old, uint32_t *new),
 			void *context, enum allocation_event *ev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/persistent-data/dm-space-map-common.h
+++ linux-gkeop-5.4-5.4.0/drivers/md/persistent-data/dm-space-map-common.h
@@ -109,6 +109,8 @@
 int sm_ll_lookup(struct ll_disk *ll, dm_block_t b, uint32_t *result);
 int sm_ll_find_free_block(struct ll_disk *ll, dm_block_t begin,
 			  dm_block_t end, dm_block_t *result);
+int sm_ll_find_common_free_block(struct ll_disk *old_ll, struct ll_disk *new_ll,
+	                         dm_block_t begin, dm_block_t end, dm_block_t *result);
 int sm_ll_insert(struct ll_disk *ll, dm_block_t b, uint32_t ref_count, enum allocation_event *ev);
 int sm_ll_inc(struct ll_disk *ll, dm_block_t b, enum allocation_event *ev);
 int sm_ll_dec(struct ll_disk *ll, dm_block_t b, enum allocation_event *ev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/persistent-data/dm-space-map-disk.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/persistent-data/dm-space-map-disk.c
@@ -167,8 +167,10 @@
 	enum allocation_event ev;
 	struct sm_disk *smd = container_of(sm, struct sm_disk, sm);
 
-	/* FIXME: we should loop round a couple of times */
-	r = sm_ll_find_free_block(&smd->old_ll, smd->begin, smd->old_ll.nr_blocks, b);
+	/*
+	 * Any block we allocate has to be free in both the old and current ll.
+	 */
+	r = sm_ll_find_common_free_block(&smd->old_ll, &smd->ll, smd->begin, smd->ll.nr_blocks, b);
 	if (r)
 		return r;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/persistent-data/dm-space-map-metadata.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/persistent-data/dm-space-map-metadata.c
@@ -448,7 +448,10 @@
 	enum allocation_event ev;
 	struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm);
 
-	r = sm_ll_find_free_block(&smm->old_ll, smm->begin, smm->old_ll.nr_blocks, b);
+	/*
+	 * Any block we allocate has to be free in both the old and current ll.
+	 */
+	r = sm_ll_find_common_free_block(&smm->old_ll, &smm->ll, smm->begin, smm->ll.nr_blocks, b);
 	if (r)
 		return r;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/raid0.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/raid0.c
@@ -87,7 +87,7 @@
 	char b[BDEVNAME_SIZE];
 	char b2[BDEVNAME_SIZE];
 	struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL);
-	unsigned short blksize = 512;
+	unsigned blksize = 512;
 
 	*private_conf = ERR_PTR(-ENOMEM);
 	if (!conf)
@@ -152,11 +152,12 @@
 		   default_layout == RAID0_ALT_MULTIZONE_LAYOUT) {
 		conf->layout = default_layout;
 	} else {
-		pr_err("md/raid0:%s: cannot assemble multi-zone RAID0 with default_layout setting\n",
+		conf->layout = RAID0_ALT_MULTIZONE_LAYOUT;
+		pr_warn("md/raid0:%s: !!! DEFAULTING TO ALTERNATE LAYOUT !!!\n",
 		       mdname(mddev));
-		pr_err("md/raid0: please set raid0.default_layout to 1 or 2\n");
-		err = -ENOTSUPP;
-		goto abort;
+		pr_warn("md/raid0: Please set raid0.default_layout to 1 or 2\n");
+		pr_warn("md/raid0: Read the following page for more information:\n");
+		pr_warn("md/raid0: https://wiki.ubuntu.com/Kernel/Raid0LayoutMigration\n");
 	}
 	/*
 	 * now since we have the hard sector sizes, we can make sure
@@ -575,10 +576,9 @@
 	unsigned chunk_sects;
 	unsigned sectors;
 
-	if (unlikely(bio->bi_opf & REQ_PREFLUSH)) {
-		md_flush_request(mddev, bio);
+	if (unlikely(bio->bi_opf & REQ_PREFLUSH)
+	    && md_flush_request(mddev, bio))
 		return true;
-	}
 
 	if (unlikely((bio_op(bio) == REQ_OP_DISCARD))) {
 		raid0_handle_discard(mddev, bio);
@@ -615,7 +615,7 @@
 		tmp_dev = map_sector(mddev, zone, sector, &sector);
 		break;
 	default:
-		WARN("md/raid0:%s: Invalid layout\n", mdname(mddev));
+		WARN(1, "md/raid0:%s: Invalid layout\n", mdname(mddev));
 		bio_io_error(bio);
 		return true;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/raid1.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/raid1.c
@@ -1567,10 +1567,9 @@
 {
 	sector_t sectors;
 
-	if (unlikely(bio->bi_opf & REQ_PREFLUSH)) {
-		md_flush_request(mddev, bio);
+	if (unlikely(bio->bi_opf & REQ_PREFLUSH)
+	    && md_flush_request(mddev, bio))
 		return true;
-	}
 
 	/*
 	 * There is a limit to the maximum size, but
@@ -2782,7 +2781,7 @@
 				write_targets++;
 			}
 		}
-		if (bio->bi_end_io) {
+		if (rdev && bio->bi_end_io) {
 			atomic_inc(&rdev->nr_pending);
 			bio->bi_iter.bi_sector = sector_nr + rdev->data_offset;
 			bio_set_dev(bio, rdev->bdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/raid10.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/raid10.c
@@ -191,7 +191,7 @@
 
 out_free_pages:
 	while (--j >= 0)
-		resync_free_pages(&rps[j * 2]);
+		resync_free_pages(&rps[j]);
 
 	j = 0;
 out_free_bio:
@@ -1145,7 +1145,7 @@
 	struct md_rdev *err_rdev = NULL;
 	gfp_t gfp = GFP_NOIO;
 
-	if (r10_bio->devs[slot].rdev) {
+	if (slot >= 0 && r10_bio->devs[slot].rdev) {
 		/*
 		 * This is an error retry, but we cannot
 		 * safely dereference the rdev in the r10_bio,
@@ -1510,6 +1510,7 @@
 	r10_bio->mddev = mddev;
 	r10_bio->sector = bio->bi_iter.bi_sector;
 	r10_bio->state = 0;
+	r10_bio->read_slot = -1;
 	memset(r10_bio->devs, 0, sizeof(r10_bio->devs[0]) * conf->copies);
 
 	if (bio_data_dir(bio) == READ)
@@ -1525,10 +1526,9 @@
 	int chunk_sects = chunk_mask + 1;
 	int sectors = bio_sectors(bio);
 
-	if (unlikely(bio->bi_opf & REQ_PREFLUSH)) {
-		md_flush_request(mddev, bio);
+	if (unlikely(bio->bi_opf & REQ_PREFLUSH)
+	    && md_flush_request(mddev, bio))
 		return true;
-	}
 
 	if (!md_write_start(mddev, bio))
 		return false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/md/raid5.c
+++ linux-gkeop-5.4-5.4.0/drivers/md/raid5.c
@@ -2228,14 +2228,19 @@
  * of the P and Q blocks.
  */
 static int scribble_alloc(struct raid5_percpu *percpu,
-			  int num, int cnt, gfp_t flags)
+			  int num, int cnt)
 {
 	size_t obj_size =
 		sizeof(struct page *) * (num+2) +
 		sizeof(addr_conv_t) * (num+2);
 	void *scribble;
 
-	scribble = kvmalloc_array(cnt, obj_size, flags);
+	/*
+	 * If here is in raid array suspend context, it is in memalloc noio
+	 * context as well, there is no potential recursive memory reclaim
+	 * I/Os with the GFP_KERNEL flag.
+	 */
+	scribble = kvmalloc_array(cnt, obj_size, GFP_KERNEL);
 	if (!scribble)
 		return -ENOMEM;
 
@@ -2267,8 +2272,7 @@
 
 		percpu = per_cpu_ptr(conf->percpu, cpu);
 		err = scribble_alloc(percpu, new_disks,
-				     new_sectors / STRIPE_SECTORS,
-				     GFP_NOIO);
+				     new_sectors / STRIPE_SECTORS);
 		if (err)
 			break;
 	}
@@ -2403,8 +2407,6 @@
 	} else
 		err = -ENOMEM;
 
-	mutex_unlock(&conf->cache_size_mutex);
-
 	conf->slab_cache = sc;
 	conf->active_name = 1-conf->active_name;
 
@@ -2427,6 +2429,8 @@
 
 	if (!err)
 		conf->pool_size = newsize;
+	mutex_unlock(&conf->cache_size_mutex);
+
 	return err;
 }
 
@@ -3600,6 +3604,7 @@
 	 * is missing/faulty, then we need to read everything we can.
 	 */
 	if (sh->raid_conf->level != 6 &&
+	    sh->raid_conf->rmw_level != PARITY_DISABLE_RMW &&
 	    sh->sector < sh->raid_conf->mddev->recovery_cp)
 		/* reconstruct-write isn't being forced */
 		return 0;
@@ -4835,7 +4840,7 @@
 	 * or to load a block that is being partially written.
 	 */
 	if (s.to_read || s.non_overwrite
-	    || (conf->level == 6 && s.to_write && s.failed)
+	    || (s.to_write && s.failed)
 	    || (s.syncing && (s.uptodate + s.compute < disks))
 	    || s.replacing
 	    || s.expanding)
@@ -5592,8 +5597,8 @@
 		if (ret == 0)
 			return true;
 		if (ret == -ENODEV) {
-			md_flush_request(mddev, bi);
-			return true;
+			if (md_flush_request(mddev, bi))
+				return true;
 		}
 		/* ret == -EAGAIN, fallback */
 		/*
@@ -5726,7 +5731,7 @@
 				do_flush = false;
 			}
 
-			if (!sh->batch_head)
+			if (!sh->batch_head || sh == sh->batch_head)
 				set_bit(STRIPE_HANDLE, &sh->state);
 			clear_bit(STRIPE_DELAYED, &sh->state);
 			if ((!sh->batch_head || sh == sh->batch_head) &&
@@ -6765,8 +6770,7 @@
 			       conf->previous_raid_disks),
 			   max(conf->chunk_sectors,
 			       conf->prev_chunk_sectors)
-			   / STRIPE_SECTORS,
-			   GFP_KERNEL)) {
+			   / STRIPE_SECTORS)) {
 		free_scratch_buffer(conf, percpu);
 		return -ENOMEM;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/cec/cec-adap.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/cec/cec-adap.c
@@ -378,7 +378,8 @@
 	} else {
 		list_del_init(&data->list);
 		if (!(data->msg.tx_status & CEC_TX_STATUS_OK))
-			data->adap->transmit_queue_sz--;
+			if (!WARN_ON(!data->adap->transmit_queue_sz))
+				data->adap->transmit_queue_sz--;
 	}
 
 	if (data->msg.tx_status & CEC_TX_STATUS_OK) {
@@ -430,6 +431,14 @@
 		 * need to do anything special in that case.
 		 */
 	}
+	/*
+	 * If something went wrong and this counter isn't what it should
+	 * be, then this will reset it back to 0. Warn if it is not 0,
+	 * since it indicates a bug, either in this framework or in a
+	 * CEC driver.
+	 */
+	if (WARN_ON(adap->transmit_queue_sz))
+		adap->transmit_queue_sz = 0;
 }
 
 /*
@@ -454,7 +463,7 @@
 		bool timeout = false;
 		u8 attempts;
 
-		if (adap->transmitting) {
+		if (adap->transmit_in_progress) {
 			int err;
 
 			/*
@@ -489,7 +498,7 @@
 			goto unlock;
 		}
 
-		if (adap->transmitting && timeout) {
+		if (adap->transmit_in_progress && timeout) {
 			/*
 			 * If we timeout, then log that. Normally this does
 			 * not happen and it is an indication of a faulty CEC
@@ -498,14 +507,18 @@
 			 * so much traffic on the bus that the adapter was
 			 * unable to transmit for CEC_XFER_TIMEOUT_MS (2.1s).
 			 */
-			pr_warn("cec-%s: message %*ph timed out\n", adap->name,
-				adap->transmitting->msg.len,
-				adap->transmitting->msg.msg);
+			if (adap->transmitting) {
+				pr_warn("cec-%s: message %*ph timed out\n", adap->name,
+					adap->transmitting->msg.len,
+					adap->transmitting->msg.msg);
+				/* Just give up on this. */
+				cec_data_cancel(adap->transmitting,
+						CEC_TX_STATUS_TIMEOUT);
+			} else {
+				pr_warn("cec-%s: transmit timed out\n", adap->name);
+			}
 			adap->transmit_in_progress = false;
 			adap->tx_timeouts++;
-			/* Just give up on this. */
-			cec_data_cancel(adap->transmitting,
-					CEC_TX_STATUS_TIMEOUT);
 			goto unlock;
 		}
 
@@ -520,7 +533,8 @@
 		data = list_first_entry(&adap->transmit_queue,
 					struct cec_data, list);
 		list_del_init(&data->list);
-		adap->transmit_queue_sz--;
+		if (!WARN_ON(!data->adap->transmit_queue_sz))
+			adap->transmit_queue_sz--;
 
 		/* Make this the current transmitting message */
 		adap->transmitting = data;
@@ -1083,11 +1097,11 @@
 			valid_la = false;
 		else if (!cec_msg_is_broadcast(msg) && !(dir_fl & DIRECTED))
 			valid_la = false;
-		else if (cec_msg_is_broadcast(msg) && !(dir_fl & BCAST1_4))
+		else if (cec_msg_is_broadcast(msg) && !(dir_fl & BCAST))
 			valid_la = false;
 		else if (cec_msg_is_broadcast(msg) &&
-			 adap->log_addrs.cec_version >= CEC_OP_CEC_VERSION_2_0 &&
-			 !(dir_fl & BCAST2_0))
+			 adap->log_addrs.cec_version < CEC_OP_CEC_VERSION_2_0 &&
+			 !(dir_fl & BCAST1_4))
 			valid_la = false;
 	}
 	if (valid_la && min_len) {
@@ -1718,6 +1732,10 @@
 		unsigned j;
 
 		log_addrs->log_addr[i] = CEC_LOG_ADDR_INVALID;
+		if (log_addrs->log_addr_type[i] > CEC_LOG_ADDR_TYPE_UNREGISTERED) {
+			dprintk(1, "unknown logical address type\n");
+			return -EINVAL;
+		}
 		if (type_mask & (1 << log_addrs->log_addr_type[i])) {
 			dprintk(1, "duplicate logical address type\n");
 			return -EINVAL;
@@ -1738,10 +1756,6 @@
 			dprintk(1, "invalid primary device type\n");
 			return -EINVAL;
 		}
-		if (log_addrs->log_addr_type[i] > CEC_LOG_ADDR_TYPE_UNREGISTERED) {
-			dprintk(1, "unknown logical address type\n");
-			return -EINVAL;
-		}
 		for (j = 0; j < feature_sz; j++) {
 			if ((features[j] & 0x80) == 0) {
 				if (op_is_dev_features)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/cec/cec-api.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/cec/cec-api.c
@@ -147,7 +147,13 @@
 	struct cec_log_addrs log_addrs;
 
 	mutex_lock(&adap->lock);
-	log_addrs = adap->log_addrs;
+	/*
+	 * We use memcpy here instead of assignment since there is a
+	 * hole at the end of struct cec_log_addrs that an assignment
+	 * might ignore. So when we do copy_to_user() we could leak
+	 * one byte of memory.
+	 */
+	memcpy(&log_addrs, &adap->log_addrs, sizeof(log_addrs));
 	if (!adap->is_configured)
 		memset(log_addrs.log_addr, CEC_LOG_ADDR_INVALID,
 		       sizeof(log_addrs.log_addr));
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/common/siano/smsdvb-main.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/common/siano/smsdvb-main.c
@@ -1169,12 +1169,15 @@
 	rc = dvb_create_media_graph(&client->adapter, true);
 	if (rc < 0) {
 		pr_err("dvb_create_media_graph failed %d\n", rc);
-		goto client_error;
+		goto media_graph_error;
 	}
 
 	pr_info("DVB interface registered.\n");
 	return 0;
 
+media_graph_error:
+	smsdvb_debugfs_release(client);
+
 client_error:
 	dvb_unregister_frontend(&client->frontend);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/dvb-core/dvbdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/dvb-core/dvbdev.c
@@ -707,9 +707,10 @@
 	}
 
 	if (ntuner && ndemod) {
-		pad_source = media_get_pad_index(tuner, true,
+		/* NOTE: first found tuner source pad presumed correct */
+		pad_source = media_get_pad_index(tuner, false,
 						 PAD_SIGNAL_ANALOG);
-		if (pad_source)
+		if (pad_source < 0)
 			return -EINVAL;
 		ret = media_create_pad_links(mdev,
 					     MEDIA_ENT_F_TUNER,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/dvb-frontends/tda10071.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/dvb-frontends/tda10071.c
@@ -470,10 +470,11 @@
 			goto error;
 
 		if (dev->delivery_system == SYS_DVBS) {
-			dev->dvbv3_ber = buf[0] << 24 | buf[1] << 16 |
-					 buf[2] << 8 | buf[3] << 0;
-			dev->post_bit_error += buf[0] << 24 | buf[1] << 16 |
-					       buf[2] << 8 | buf[3] << 0;
+			u32 bit_error = buf[0] << 24 | buf[1] << 16 |
+					buf[2] << 8 | buf[3] << 0;
+
+			dev->dvbv3_ber = bit_error;
+			dev->post_bit_error += bit_error;
 			c->post_bit_error.stat[0].scale = FE_SCALE_COUNTER;
 			c->post_bit_error.stat[0].uvalue = dev->post_bit_error;
 			dev->block_error += buf[4] << 8 | buf[5] << 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/firewire/firedtv-fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/firewire/firedtv-fw.c
@@ -272,6 +272,10 @@
 
 	name_len = fw_csr_string(unit->directory, CSR_MODEL,
 				 name, sizeof(name));
+	if (name_len < 0) {
+		err = name_len;
+		goto fail_free;
+	}
 	for (i = ARRAY_SIZE(model_names); --i; )
 		if (strlen(model_names[i]) <= name_len &&
 		    strncmp(name, model_names[i], name_len) == 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/Kconfig
@@ -1113,6 +1113,7 @@
 config SDR_MAX2175
 	tristate "Maxim 2175 RF to Bits tuner"
 	depends on VIDEO_V4L2 && MEDIA_SDR_SUPPORT && I2C
+	select REGMAP_I2C
 	help
 	  Support for Maxim 2175 tuner. It is an advanced analog/digital
 	  radio receiver with RF-to-Bits front-end designed for SDR solutions.
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/ad5820.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/ad5820.c
@@ -309,6 +309,7 @@
 	v4l2_i2c_subdev_init(&coil->subdev, client, &ad5820_ops);
 	coil->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 	coil->subdev.internal_ops = &ad5820_internal_ops;
+	coil->subdev.entity.function = MEDIA_ENT_F_LENS;
 	strscpy(coil->subdev.name, "ad5820 focus", sizeof(coil->subdev.name));
 
 	ret = media_entity_pads_init(&coil->subdev.entity, 0, NULL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/adv748x/adv748x.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/adv748x/adv748x.h
@@ -394,10 +394,10 @@
 
 #define io_read(s, r) adv748x_read(s, ADV748X_PAGE_IO, r)
 #define io_write(s, r, v) adv748x_write(s, ADV748X_PAGE_IO, r, v)
-#define io_clrset(s, r, m, v) io_write(s, r, (io_read(s, r) & ~m) | v)
+#define io_clrset(s, r, m, v) io_write(s, r, (io_read(s, r) & ~(m)) | (v))
 
 #define hdmi_read(s, r) adv748x_read(s, ADV748X_PAGE_HDMI, r)
-#define hdmi_read16(s, r, m) (((hdmi_read(s, r) << 8) | hdmi_read(s, r+1)) & m)
+#define hdmi_read16(s, r, m) (((hdmi_read(s, r) << 8) | hdmi_read(s, (r)+1)) & (m))
 #define hdmi_write(s, r, v) adv748x_write(s, ADV748X_PAGE_HDMI, r, v)
 
 #define repeater_read(s, r) adv748x_read(s, ADV748X_PAGE_REPEATER, r)
@@ -405,11 +405,11 @@
 
 #define sdp_read(s, r) adv748x_read(s, ADV748X_PAGE_SDP, r)
 #define sdp_write(s, r, v) adv748x_write(s, ADV748X_PAGE_SDP, r, v)
-#define sdp_clrset(s, r, m, v) sdp_write(s, r, (sdp_read(s, r) & ~m) | v)
+#define sdp_clrset(s, r, m, v) sdp_write(s, r, (sdp_read(s, r) & ~(m)) | (v))
 
 #define cp_read(s, r) adv748x_read(s, ADV748X_PAGE_CP, r)
 #define cp_write(s, r, v) adv748x_write(s, ADV748X_PAGE_CP, r, v)
-#define cp_clrset(s, r, m, v) cp_write(s, r, (cp_read(s, r) & ~m) | v)
+#define cp_clrset(s, r, m, v) cp_write(s, r, (cp_read(s, r) & ~(m)) | (v))
 
 #define tx_read(t, r) adv748x_read(t->state, t->page, r)
 #define tx_write(t, r, v) adv748x_write(t->state, t->page, r, v)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/imx214.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/imx214.c
@@ -785,7 +785,7 @@
 		if (ret < 0)
 			goto err_rpm_put;
 	} else {
-		ret = imx214_start_streaming(imx214);
+		ret = imx214_stop_streaming(imx214);
 		if (ret < 0)
 			goto err_rpm_put;
 		pm_runtime_put(imx214->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/imx274.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/imx274.c
@@ -1235,6 +1235,8 @@
 	ret = imx274_set_frame_interval(imx274, fi->interval);
 
 	if (!ret) {
+		fi->interval = imx274->frame_interval;
+
 		/*
 		 * exposure time range is decided by frame interval
 		 * need to update it after frame interval changes
@@ -1730,9 +1732,9 @@
 		__func__, frame_interval.numerator,
 		frame_interval.denominator);
 
-	if (frame_interval.numerator == 0) {
-		err = -EINVAL;
-		goto fail;
+	if (frame_interval.numerator == 0 || frame_interval.denominator == 0) {
+		frame_interval.denominator = IMX274_DEF_FRAME_RATE;
+		frame_interval.numerator = 1;
 	}
 
 	req_frame_rate = (u32)(frame_interval.denominator
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/m5mols/m5mols_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/m5mols/m5mols_core.c
@@ -764,7 +764,8 @@
 
 		ret = regulator_bulk_enable(ARRAY_SIZE(supplies), supplies);
 		if (ret) {
-			info->set_power(&client->dev, 0);
+			if (info->set_power)
+				info->set_power(&client->dev, 0);
 			return ret;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/max2175.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/max2175.c
@@ -503,7 +503,7 @@
 	}
 }
 
-static bool max2175_set_csm_mode(struct max2175 *ctx,
+static int max2175_set_csm_mode(struct max2175 *ctx,
 			  enum max2175_csm_mode new_mode)
 {
 	int ret = max2175_poll_csm_ready(ctx);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/mt9v032.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/mt9v032.c
@@ -428,10 +428,12 @@
 				  struct v4l2_subdev_pad_config *cfg,
 				  struct v4l2_subdev_mbus_code_enum *code)
 {
+	struct mt9v032 *mt9v032 = to_mt9v032(subdev);
+
 	if (code->index > 0)
 		return -EINVAL;
 
-	code->code = MEDIA_BUS_FMT_SGRBG10_1X10;
+	code->code = mt9v032->format.code;
 	return 0;
 }
 
@@ -439,7 +441,11 @@
 				   struct v4l2_subdev_pad_config *cfg,
 				   struct v4l2_subdev_frame_size_enum *fse)
 {
-	if (fse->index >= 3 || fse->code != MEDIA_BUS_FMT_SGRBG10_1X10)
+	struct mt9v032 *mt9v032 = to_mt9v032(subdev);
+
+	if (fse->index >= 3)
+		return -EINVAL;
+	if (mt9v032->format.code != fse->code)
 		return -EINVAL;
 
 	fse->min_width = MT9V032_WINDOW_WIDTH_DEF / (1 << fse->index);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/ov2659.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/ov2659.c
@@ -419,10 +419,14 @@
 	{ REG_TIMING_YINC, 0x11 },
 	{ REG_TIMING_VERT_FORMAT, 0x80 },
 	{ REG_TIMING_HORIZ_FORMAT, 0x00 },
+	{ 0x370a, 0x12 },
 	{ 0x3a03, 0xe8 },
 	{ 0x3a09, 0x6f },
 	{ 0x3a0b, 0x5d },
 	{ 0x3a15, 0x9a },
+	{ REG_VFIFO_READ_START_H, 0x00 },
+	{ REG_VFIFO_READ_START_L, 0x80 },
+	{ REG_ISP_CTRL02, 0x00 },
 	{ REG_NULL, 0x00 },
 };
 
@@ -1201,11 +1205,15 @@
 		goto unlock;
 	}
 
-	ov2659_set_pixel_clock(ov2659);
-	ov2659_set_frame_size(ov2659);
-	ov2659_set_format(ov2659);
-	ov2659_set_streaming(ov2659, 1);
-	ov2659->streaming = on;
+	ret = ov2659_set_pixel_clock(ov2659);
+	if (!ret)
+		ret = ov2659_set_frame_size(ov2659);
+	if (!ret)
+		ret = ov2659_set_format(ov2659);
+	if (!ret) {
+		ov2659_set_streaming(ov2659, 1);
+		ov2659->streaming = on;
+	}
 
 unlock:
 	mutex_unlock(&ov2659->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/ov5640.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/ov5640.c
@@ -34,6 +34,8 @@
 #define OV5640_REG_SYS_RESET02		0x3002
 #define OV5640_REG_SYS_CLOCK_ENABLE02	0x3006
 #define OV5640_REG_SYS_CTRL0		0x3008
+#define OV5640_REG_SYS_CTRL0_SW_PWDN	0x42
+#define OV5640_REG_SYS_CTRL0_SW_PWUP	0x02
 #define OV5640_REG_CHIP_ID		0x300a
 #define OV5640_REG_IO_MIPI_CTRL00	0x300e
 #define OV5640_REG_PAD_OUTPUT_ENABLE01	0x3017
@@ -272,8 +274,7 @@
 /* YUV422 UYVY VGA@30fps */
 static const struct reg_value ov5640_init_setting_30fps_VGA[] = {
 	{0x3103, 0x11, 0, 0}, {0x3008, 0x82, 0, 5}, {0x3008, 0x42, 0, 0},
-	{0x3103, 0x03, 0, 0}, {0x3017, 0x00, 0, 0}, {0x3018, 0x00, 0, 0},
-	{0x3630, 0x36, 0, 0},
+	{0x3103, 0x03, 0, 0}, {0x3630, 0x36, 0, 0},
 	{0x3631, 0x0e, 0, 0}, {0x3632, 0xe2, 0, 0}, {0x3633, 0x12, 0, 0},
 	{0x3621, 0xe0, 0, 0}, {0x3704, 0xa0, 0, 0}, {0x3703, 0x5a, 0, 0},
 	{0x3715, 0x78, 0, 0}, {0x3717, 0x01, 0, 0}, {0x370b, 0x60, 0, 0},
@@ -740,7 +741,7 @@
  *               +->| PLL Root Div | - reg 0x3037, bit 4
  *                  +-+------------+
  *                    |  +---------+
- *                    +->| Bit Div | - reg 0x3035, bits 0-3
+ *                    +->| Bit Div | - reg 0x3034, bits 0-3
  *                       +-+-------+
  *                         |  +-------------+
  *                         +->| SCLK Div    | - reg 0x3108, bits 0-1
@@ -874,7 +875,7 @@
 			 * We have reached the maximum allowed PLL1 output,
 			 * increase sysdiv.
 			 */
-			if (!rate)
+			if (!_rate)
 				break;
 
 			/*
@@ -1109,6 +1110,12 @@
 		val = regs->val;
 		mask = regs->mask;
 
+		/* remain in power down mode for DVP */
+		if (regs->reg_addr == OV5640_REG_SYS_CTRL0 &&
+		    val == OV5640_REG_SYS_CTRL0_SW_PWUP &&
+		    sensor->ep.bus_type != V4L2_MBUS_CSI2_DPHY)
+			continue;
+
 		if (mask)
 			ret = ov5640_mod_reg(sensor, reg_addr, mask, val);
 		else
@@ -1264,31 +1271,9 @@
 	if (ret)
 		return ret;
 
-	/*
-	 * enable VSYNC/HREF/PCLK DVP control lines
-	 * & D[9:6] DVP data lines
-	 *
-	 * PAD OUTPUT ENABLE 01
-	 * - 6:		VSYNC output enable
-	 * - 5:		HREF output enable
-	 * - 4:		PCLK output enable
-	 * - [3:0]:	D[9:6] output enable
-	 */
-	ret = ov5640_write_reg(sensor,
-			       OV5640_REG_PAD_OUTPUT_ENABLE01,
-			       on ? 0x7f : 0);
-	if (ret)
-		return ret;
-
-	/*
-	 * enable D[5:0] DVP data lines
-	 *
-	 * PAD OUTPUT ENABLE 02
-	 * - [7:2]:	D[5:0] output enable
-	 */
-	return ov5640_write_reg(sensor,
-				OV5640_REG_PAD_OUTPUT_ENABLE02,
-				on ? 0xfc : 0);
+	return ov5640_write_reg(sensor, OV5640_REG_SYS_CTRL0, on ?
+				OV5640_REG_SYS_CTRL0_SW_PWUP :
+				OV5640_REG_SYS_CTRL0_SW_PWDN);
 }
 
 static int ov5640_set_stream_mipi(struct ov5640_dev *sensor, bool on)
@@ -1611,6 +1596,11 @@
 	    !(mode->hact == 640 && mode->vact == 480))
 		return NULL;
 
+	/* 2592x1944 only works at 15fps max */
+	if ((mode->hact == 2592 && mode->vact == 1944) &&
+	    fr > OV5640_15_FPS)
+		return NULL;
+
 	return mode;
 }
 
@@ -1982,6 +1972,95 @@
 	clk_disable_unprepare(sensor->xclk);
 }
 
+static int ov5640_set_power_mipi(struct ov5640_dev *sensor, bool on)
+{
+	int ret;
+
+	if (!on) {
+		/* Reset MIPI bus settings to their default values. */
+		ov5640_write_reg(sensor, OV5640_REG_IO_MIPI_CTRL00, 0x58);
+		ov5640_write_reg(sensor, OV5640_REG_MIPI_CTRL00, 0x04);
+		ov5640_write_reg(sensor, OV5640_REG_PAD_OUTPUT00, 0x00);
+		return 0;
+	}
+
+	/*
+	 * Power up MIPI HS Tx and LS Rx; 2 data lanes mode
+	 *
+	 * 0x300e = 0x40
+	 * [7:5] = 010	: 2 data lanes mode (see FIXME note in
+	 *		  "ov5640_set_stream_mipi()")
+	 * [4] = 0	: Power up MIPI HS Tx
+	 * [3] = 0	: Power up MIPI LS Rx
+	 * [2] = 0	: MIPI interface disabled
+	 */
+	ret = ov5640_write_reg(sensor, OV5640_REG_IO_MIPI_CTRL00, 0x40);
+	if (ret)
+		return ret;
+
+	/*
+	 * Gate clock and set LP11 in 'no packets mode' (idle)
+	 *
+	 * 0x4800 = 0x24
+	 * [5] = 1	: Gate clock when 'no packets'
+	 * [2] = 1	: MIPI bus in LP11 when 'no packets'
+	 */
+	ret = ov5640_write_reg(sensor, OV5640_REG_MIPI_CTRL00, 0x24);
+	if (ret)
+		return ret;
+
+	/*
+	 * Set data lanes and clock in LP11 when 'sleeping'
+	 *
+	 * 0x3019 = 0x70
+	 * [6] = 1	: MIPI data lane 2 in LP11 when 'sleeping'
+	 * [5] = 1	: MIPI data lane 1 in LP11 when 'sleeping'
+	 * [4] = 1	: MIPI clock lane in LP11 when 'sleeping'
+	 */
+	ret = ov5640_write_reg(sensor, OV5640_REG_PAD_OUTPUT00, 0x70);
+	if (ret)
+		return ret;
+
+	/* Give lanes some time to coax into LP11 state. */
+	usleep_range(500, 1000);
+
+	return 0;
+}
+
+static int ov5640_set_power_dvp(struct ov5640_dev *sensor, bool on)
+{
+	int ret;
+
+	if (!on) {
+		/* Reset settings to their default values. */
+		ov5640_write_reg(sensor, OV5640_REG_PAD_OUTPUT_ENABLE01, 0x00);
+		ov5640_write_reg(sensor, OV5640_REG_PAD_OUTPUT_ENABLE02, 0x00);
+		return 0;
+	}
+
+	/*
+	 * enable VSYNC/HREF/PCLK DVP control lines
+	 * & D[9:6] DVP data lines
+	 *
+	 * PAD OUTPUT ENABLE 01
+	 * - 6:		VSYNC output enable
+	 * - 5:		HREF output enable
+	 * - 4:		PCLK output enable
+	 * - [3:0]:	D[9:6] output enable
+	 */
+	ret = ov5640_write_reg(sensor, OV5640_REG_PAD_OUTPUT_ENABLE01, 0x7f);
+	if (ret)
+		return ret;
+
+	/*
+	 * enable D[5:0] DVP data lines
+	 *
+	 * PAD OUTPUT ENABLE 02
+	 * - [7:2]:	D[5:0] output enable
+	 */
+	return ov5640_write_reg(sensor, OV5640_REG_PAD_OUTPUT_ENABLE02, 0xfc);
+}
+
 static int ov5640_set_power(struct ov5640_dev *sensor, bool on)
 {
 	int ret = 0;
@@ -1994,67 +2073,17 @@
 		ret = ov5640_restore_mode(sensor);
 		if (ret)
 			goto power_off;
+	}
 
-		/* We're done here for DVP bus, while CSI-2 needs setup. */
-		if (sensor->ep.bus_type != V4L2_MBUS_CSI2_DPHY)
-			return 0;
-
-		/*
-		 * Power up MIPI HS Tx and LS Rx; 2 data lanes mode
-		 *
-		 * 0x300e = 0x40
-		 * [7:5] = 010	: 2 data lanes mode (see FIXME note in
-		 *		  "ov5640_set_stream_mipi()")
-		 * [4] = 0	: Power up MIPI HS Tx
-		 * [3] = 0	: Power up MIPI LS Rx
-		 * [2] = 0	: MIPI interface disabled
-		 */
-		ret = ov5640_write_reg(sensor,
-				       OV5640_REG_IO_MIPI_CTRL00, 0x40);
-		if (ret)
-			goto power_off;
-
-		/*
-		 * Gate clock and set LP11 in 'no packets mode' (idle)
-		 *
-		 * 0x4800 = 0x24
-		 * [5] = 1	: Gate clock when 'no packets'
-		 * [2] = 1	: MIPI bus in LP11 when 'no packets'
-		 */
-		ret = ov5640_write_reg(sensor,
-				       OV5640_REG_MIPI_CTRL00, 0x24);
-		if (ret)
-			goto power_off;
-
-		/*
-		 * Set data lanes and clock in LP11 when 'sleeping'
-		 *
-		 * 0x3019 = 0x70
-		 * [6] = 1	: MIPI data lane 2 in LP11 when 'sleeping'
-		 * [5] = 1	: MIPI data lane 1 in LP11 when 'sleeping'
-		 * [4] = 1	: MIPI clock lane in LP11 when 'sleeping'
-		 */
-		ret = ov5640_write_reg(sensor,
-				       OV5640_REG_PAD_OUTPUT00, 0x70);
-		if (ret)
-			goto power_off;
-
-		/* Give lanes some time to coax into LP11 state. */
-		usleep_range(500, 1000);
-
-	} else {
-		if (sensor->ep.bus_type == V4L2_MBUS_CSI2_DPHY) {
-			/* Reset MIPI bus settings to their default values. */
-			ov5640_write_reg(sensor,
-					 OV5640_REG_IO_MIPI_CTRL00, 0x58);
-			ov5640_write_reg(sensor,
-					 OV5640_REG_MIPI_CTRL00, 0x04);
-			ov5640_write_reg(sensor,
-					 OV5640_REG_PAD_OUTPUT00, 0x00);
-		}
+	if (sensor->ep.bus_type == V4L2_MBUS_CSI2_DPHY)
+		ret = ov5640_set_power_mipi(sensor, on);
+	else
+		ret = ov5640_set_power_dvp(sensor, on);
+	if (ret)
+		goto power_off;
 
+	if (!on)
 		ov5640_set_power_off(sensor);
-	}
 
 	return 0;
 
@@ -3063,8 +3092,8 @@
 free_ctrls:
 	v4l2_ctrl_handler_free(&sensor->ctrls.handler);
 entity_cleanup:
-	mutex_destroy(&sensor->lock);
 	media_entity_cleanup(&sensor->sd.entity);
+	mutex_destroy(&sensor->lock);
 	return ret;
 }
 
@@ -3074,9 +3103,9 @@
 	struct ov5640_dev *sensor = to_ov5640_dev(sd);
 
 	v4l2_async_unregister_subdev(&sensor->sd);
-	mutex_destroy(&sensor->lock);
 	media_entity_cleanup(&sensor->sd.entity);
 	v4l2_ctrl_handler_free(&sensor->ctrls.handler);
+	mutex_destroy(&sensor->lock);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/ov5670.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/ov5670.c
@@ -2081,7 +2081,8 @@
 
 	/* By default, V4L2_CID_PIXEL_RATE is read only */
 	ov5670->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &ov5670_ctrl_ops,
-					       V4L2_CID_PIXEL_RATE, 0,
+					       V4L2_CID_PIXEL_RATE,
+					       link_freq_configs[0].pixel_rate,
 					       link_freq_configs[0].pixel_rate,
 					       1,
 					       link_freq_configs[0].pixel_rate);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/ov5695.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/ov5695.c
@@ -971,16 +971,9 @@
 	return ret;
 }
 
-/* Calculate the delay in us by clock rate and clock cycles */
-static inline u32 ov5695_cal_delay(u32 cycles)
-{
-	return DIV_ROUND_UP(cycles, OV5695_XVCLK_FREQ / 1000 / 1000);
-}
-
 static int __ov5695_power_on(struct ov5695 *ov5695)
 {
-	int ret;
-	u32 delay_us;
+	int i, ret;
 	struct device *dev = &ov5695->client->dev;
 
 	ret = clk_prepare_enable(ov5695->xvclk);
@@ -991,21 +984,28 @@
 
 	gpiod_set_value_cansleep(ov5695->reset_gpio, 1);
 
-	ret = regulator_bulk_enable(OV5695_NUM_SUPPLIES, ov5695->supplies);
-	if (ret < 0) {
-		dev_err(dev, "Failed to enable regulators\n");
-		goto disable_clk;
+	/*
+	 * The hardware requires the regulators to be powered on in order,
+	 * so enable them one by one.
+	 */
+	for (i = 0; i < OV5695_NUM_SUPPLIES; i++) {
+		ret = regulator_enable(ov5695->supplies[i].consumer);
+		if (ret) {
+			dev_err(dev, "Failed to enable %s: %d\n",
+				ov5695->supplies[i].supply, ret);
+			goto disable_reg_clk;
+		}
 	}
 
 	gpiod_set_value_cansleep(ov5695->reset_gpio, 0);
 
-	/* 8192 cycles prior to first SCCB transaction */
-	delay_us = ov5695_cal_delay(8192);
-	usleep_range(delay_us, delay_us * 2);
+	usleep_range(1000, 1200);
 
 	return 0;
 
-disable_clk:
+disable_reg_clk:
+	for (--i; i >= 0; i--)
+		regulator_disable(ov5695->supplies[i].consumer);
 	clk_disable_unprepare(ov5695->xvclk);
 
 	return ret;
@@ -1013,9 +1013,22 @@
 
 static void __ov5695_power_off(struct ov5695 *ov5695)
 {
+	struct device *dev = &ov5695->client->dev;
+	int i, ret;
+
 	clk_disable_unprepare(ov5695->xvclk);
 	gpiod_set_value_cansleep(ov5695->reset_gpio, 1);
-	regulator_bulk_disable(OV5695_NUM_SUPPLIES, ov5695->supplies);
+
+	/*
+	 * The hardware requires the regulators to be powered off in order,
+	 * so disable them one by one.
+	 */
+	for (i = OV5695_NUM_SUPPLIES - 1; i >= 0; i--) {
+		ret = regulator_disable(ov5695->supplies[i].consumer);
+		if (ret)
+			dev_err(dev, "Failed to disable %s: %d\n",
+				ov5695->supplies[i].supply, ret);
+	}
 }
 
 static int __maybe_unused ov5695_runtime_resume(struct device *dev)
@@ -1285,7 +1298,7 @@
 	if (clk_get_rate(ov5695->xvclk) != OV5695_XVCLK_FREQ)
 		dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n");
 
-	ov5695->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
+	ov5695->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
 	if (IS_ERR(ov5695->reset_gpio)) {
 		dev_err(dev, "Failed to get reset-gpios\n");
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/ov6650.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/ov6650.c
@@ -130,6 +130,7 @@
 #define CLKRC_24MHz		0xc0
 #define CLKRC_DIV_MASK		0x3f
 #define GET_CLKRC_DIV(x)	(((x) & CLKRC_DIV_MASK) + 1)
+#define DEF_CLKRC		0x00
 
 #define COMA_RESET		BIT(7)
 #define COMA_QCIF		BIT(5)
@@ -200,7 +201,6 @@
 	unsigned long		pclk_max;	/* from resolution and format */
 	struct v4l2_fract	tpf;		/* as requested with s_frame_interval */
 	u32 code;
-	enum v4l2_colorspace	colorspace;
 };
 
 
@@ -213,6 +213,17 @@
 	MEDIA_BUS_FMT_Y8_1X8,
 };
 
+static const struct v4l2_mbus_framefmt ov6650_def_fmt = {
+	.width		= W_CIF,
+	.height		= H_CIF,
+	.code		= MEDIA_BUS_FMT_SBGGR8_1X8,
+	.colorspace	= V4L2_COLORSPACE_SRGB,
+	.field		= V4L2_FIELD_NONE,
+	.ycbcr_enc	= V4L2_YCBCR_ENC_DEFAULT,
+	.quantization	= V4L2_QUANTIZATION_DEFAULT,
+	.xfer_func	= V4L2_XFER_FUNC_DEFAULT,
+};
+
 /* read a register */
 static int ov6650_reg_read(struct i2c_client *client, u8 reg, u8 *val)
 {
@@ -465,38 +476,39 @@
 {
 	struct i2c_client *client = v4l2_get_subdevdata(sd);
 	struct ov6650 *priv = to_ov6650(client);
-	struct v4l2_rect rect = sel->r;
 	int ret;
 
 	if (sel->which != V4L2_SUBDEV_FORMAT_ACTIVE ||
 	    sel->target != V4L2_SEL_TGT_CROP)
 		return -EINVAL;
 
-	v4l_bound_align_image(&rect.width, 2, W_CIF, 1,
-			      &rect.height, 2, H_CIF, 1, 0);
-	v4l_bound_align_image(&rect.left, DEF_HSTRT << 1,
-			      (DEF_HSTRT << 1) + W_CIF - (__s32)rect.width, 1,
-			      &rect.top, DEF_VSTRT << 1,
-			      (DEF_VSTRT << 1) + H_CIF - (__s32)rect.height, 1,
-			      0);
+	v4l_bound_align_image(&sel->r.width, 2, W_CIF, 1,
+			      &sel->r.height, 2, H_CIF, 1, 0);
+	v4l_bound_align_image(&sel->r.left, DEF_HSTRT << 1,
+			      (DEF_HSTRT << 1) + W_CIF - (__s32)sel->r.width, 1,
+			      &sel->r.top, DEF_VSTRT << 1,
+			      (DEF_VSTRT << 1) + H_CIF - (__s32)sel->r.height,
+			      1, 0);
 
-	ret = ov6650_reg_write(client, REG_HSTRT, rect.left >> 1);
+	ret = ov6650_reg_write(client, REG_HSTRT, sel->r.left >> 1);
 	if (!ret) {
-		priv->rect.left = rect.left;
+		priv->rect.width += priv->rect.left - sel->r.left;
+		priv->rect.left = sel->r.left;
 		ret = ov6650_reg_write(client, REG_HSTOP,
-				(rect.left + rect.width) >> 1);
+				       (sel->r.left + sel->r.width) >> 1);
 	}
 	if (!ret) {
-		priv->rect.width = rect.width;
-		ret = ov6650_reg_write(client, REG_VSTRT, rect.top >> 1);
+		priv->rect.width = sel->r.width;
+		ret = ov6650_reg_write(client, REG_VSTRT, sel->r.top >> 1);
 	}
 	if (!ret) {
-		priv->rect.top = rect.top;
+		priv->rect.height += priv->rect.top - sel->r.top;
+		priv->rect.top = sel->r.top;
 		ret = ov6650_reg_write(client, REG_VSTOP,
-				(rect.top + rect.height) >> 1);
+				       (sel->r.top + sel->r.height) >> 1);
 	}
 	if (!ret)
-		priv->rect.height = rect.height;
+		priv->rect.height = sel->r.height;
 
 	return ret;
 }
@@ -512,12 +524,20 @@
 	if (format->pad)
 		return -EINVAL;
 
-	mf->width	= priv->rect.width >> priv->half_scale;
-	mf->height	= priv->rect.height >> priv->half_scale;
-	mf->code	= priv->code;
-	mf->colorspace	= priv->colorspace;
-	mf->field	= V4L2_FIELD_NONE;
+	/* initialize response with default media bus frame format */
+	*mf = ov6650_def_fmt;
 
+	/* update media bus format code and frame size */
+	if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
+		mf->width = cfg->try_fmt.width;
+		mf->height = cfg->try_fmt.height;
+		mf->code = cfg->try_fmt.code;
+
+	} else {
+		mf->width = priv->rect.width >> priv->half_scale;
+		mf->height = priv->rect.height >> priv->half_scale;
+		mf->code = priv->code;
+	}
 	return 0;
 }
 
@@ -610,7 +630,6 @@
 		dev_err(&client->dev, "Pixel format not handled: 0x%x\n", code);
 		return -EINVAL;
 	}
-	priv->code = code;
 
 	if (code == MEDIA_BUS_FMT_Y8_1X8 ||
 			code == MEDIA_BUS_FMT_SBGGR8_1X8) {
@@ -623,11 +642,6 @@
 		priv->pclk_max = 8000000;
 	}
 
-	if (code == MEDIA_BUS_FMT_SBGGR8_1X8)
-		priv->colorspace = V4L2_COLORSPACE_SRGB;
-	else if (code != 0)
-		priv->colorspace = V4L2_COLORSPACE_JPEG;
-
 	if (half_scale) {
 		dev_dbg(&client->dev, "max resolution: QCIF\n");
 		coma_set |= COMA_QCIF;
@@ -636,7 +650,6 @@
 		dev_dbg(&client->dev, "max resolution: CIF\n");
 		coma_mask |= COMA_QCIF;
 	}
-	priv->half_scale = half_scale;
 
 	clkrc = CLKRC_12MHz;
 	mclk = 12000000;
@@ -654,14 +667,14 @@
 		ret = ov6650_reg_rmw(client, REG_COMA, coma_set, coma_mask);
 	if (!ret)
 		ret = ov6650_reg_write(client, REG_CLKRC, clkrc);
-	if (!ret)
-		ret = ov6650_reg_rmw(client, REG_COML, coml_set, coml_mask);
-
 	if (!ret) {
-		mf->colorspace	= priv->colorspace;
-		mf->width = priv->rect.width >> half_scale;
-		mf->height = priv->rect.height >> half_scale;
+		priv->half_scale = half_scale;
+
+		ret = ov6650_reg_rmw(client, REG_COML, coml_set, coml_mask);
 	}
+	if (!ret)
+		priv->code = code;
+
 	return ret;
 }
 
@@ -680,8 +693,6 @@
 		v4l_bound_align_image(&mf->width, 2, W_CIF, 1,
 				&mf->height, 2, H_CIF, 1, 0);
 
-	mf->field = V4L2_FIELD_NONE;
-
 	switch (mf->code) {
 	case MEDIA_BUS_FMT_Y10_1X10:
 		mf->code = MEDIA_BUS_FMT_Y8_1X8;
@@ -691,20 +702,39 @@
 	case MEDIA_BUS_FMT_YUYV8_2X8:
 	case MEDIA_BUS_FMT_VYUY8_2X8:
 	case MEDIA_BUS_FMT_UYVY8_2X8:
-		mf->colorspace = V4L2_COLORSPACE_JPEG;
 		break;
 	default:
 		mf->code = MEDIA_BUS_FMT_SBGGR8_1X8;
 		/* fall through */
 	case MEDIA_BUS_FMT_SBGGR8_1X8:
-		mf->colorspace = V4L2_COLORSPACE_SRGB;
 		break;
 	}
 
-	if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
-		return ov6650_s_fmt(sd, mf);
-	cfg->try_fmt = *mf;
+	if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
+		/* store media bus format code and frame size in pad config */
+		cfg->try_fmt.width = mf->width;
+		cfg->try_fmt.height = mf->height;
+		cfg->try_fmt.code = mf->code;
+
+		/* return default mbus frame format updated with pad config */
+		*mf = ov6650_def_fmt;
+		mf->width = cfg->try_fmt.width;
+		mf->height = cfg->try_fmt.height;
+		mf->code = cfg->try_fmt.code;
+
+	} else {
+		/* apply new media bus format code and frame size */
+		int ret = ov6650_s_fmt(sd, mf);
 
+		if (ret)
+			return ret;
+
+		/* return default format updated with active size and code */
+		*mf = ov6650_def_fmt;
+		mf->width = priv->rect.width >> priv->half_scale;
+		mf->height = priv->rect.height >> priv->half_scale;
+		mf->code = priv->code;
+	}
 	return 0;
 }
 
@@ -754,19 +784,17 @@
 	else if (div > GET_CLKRC_DIV(CLKRC_DIV_MASK))
 		div = GET_CLKRC_DIV(CLKRC_DIV_MASK);
 
-	/*
-	 * Keep result to be used as tpf limit
-	 * for subsequent clock divider calculations
-	 */
-	priv->tpf.numerator = div;
-	priv->tpf.denominator = FRAME_RATE_MAX;
+	tpf->numerator = div;
+	tpf->denominator = FRAME_RATE_MAX;
 
-	clkrc = to_clkrc(&priv->tpf, priv->pclk_limit, priv->pclk_max);
+	clkrc = to_clkrc(tpf, priv->pclk_limit, priv->pclk_max);
 
 	ret = ov6650_reg_rmw(client, REG_CLKRC, clkrc, CLKRC_DIV_MASK);
 	if (!ret) {
-		tpf->numerator = GET_CLKRC_DIV(clkrc);
-		tpf->denominator = FRAME_RATE_MAX;
+		priv->tpf.numerator = GET_CLKRC_DIV(clkrc);
+		priv->tpf.denominator = FRAME_RATE_MAX;
+
+		*tpf = priv->tpf;
 	}
 
 	return ret;
@@ -849,6 +877,11 @@
 	ret = ov6650_reset(client);
 	if (!ret)
 		ret = ov6650_prog_dflt(client);
+	if (!ret) {
+		struct v4l2_mbus_framefmt mf = ov6650_def_fmt;
+
+		ret = ov6650_s_fmt(sd, &mf);
+	}
 	if (!ret)
 		ret = v4l2_ctrl_handler_setup(&priv->hdl);
 
@@ -989,8 +1022,10 @@
 			V4L2_CID_GAMMA, 0, 0xff, 1, 0x12);
 
 	priv->subdev.ctrl_handler = &priv->hdl;
-	if (priv->hdl.error)
-		return priv->hdl.error;
+	if (priv->hdl.error) {
+		ret = priv->hdl.error;
+		goto ectlhdlfree;
+	}
 
 	v4l2_ctrl_auto_cluster(2, &priv->autogain, 0, true);
 	v4l2_ctrl_auto_cluster(3, &priv->autowb, 0, true);
@@ -1001,15 +1036,18 @@
 	priv->rect.top	  = DEF_VSTRT << 1;
 	priv->rect.width  = W_CIF;
 	priv->rect.height = H_CIF;
-	priv->half_scale  = false;
-	priv->code	  = MEDIA_BUS_FMT_YUYV8_2X8;
-	priv->colorspace  = V4L2_COLORSPACE_JPEG;
+
+	/* Hardware default frame interval */
+	priv->tpf.numerator   = GET_CLKRC_DIV(DEF_CLKRC);
+	priv->tpf.denominator = FRAME_RATE_MAX;
 
 	priv->subdev.internal_ops = &ov6650_internal_ops;
 
 	ret = v4l2_async_register_subdev(&priv->subdev);
-	if (ret)
-		v4l2_ctrl_handler_free(&priv->hdl);
+	if (!ret)
+		return 0;
+ectlhdlfree:
+	v4l2_ctrl_handler_free(&priv->hdl);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/smiapp/smiapp-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/smiapp/smiapp-core.c
@@ -2327,11 +2327,12 @@
 		if (rval < 0) {
 			if (rval != -EBUSY && rval != -EAGAIN)
 				pm_runtime_set_active(&client->dev);
-			pm_runtime_put(&client->dev);
+			pm_runtime_put_noidle(&client->dev);
 			return -ENODEV;
 		}
 
 		if (smiapp_read_nvm(sensor, sensor->nvm)) {
+			pm_runtime_put(&client->dev);
 			dev_err(&client->dev, "nvm read failed\n");
 			return -ENODEV;
 		}
@@ -3101,19 +3102,23 @@
 	if (rval < 0)
 		goto out_media_entity_cleanup;
 
-	rval = v4l2_async_register_subdev_sensor_common(&sensor->src->sd);
-	if (rval < 0)
-		goto out_media_entity_cleanup;
-
 	pm_runtime_set_active(&client->dev);
 	pm_runtime_get_noresume(&client->dev);
 	pm_runtime_enable(&client->dev);
+
+	rval = v4l2_async_register_subdev_sensor_common(&sensor->src->sd);
+	if (rval < 0)
+		goto out_disable_runtime_pm;
+
 	pm_runtime_set_autosuspend_delay(&client->dev, 1000);
 	pm_runtime_use_autosuspend(&client->dev);
 	pm_runtime_put_autosuspend(&client->dev);
 
 	return 0;
 
+out_disable_runtime_pm:
+	pm_runtime_disable(&client->dev);
+
 out_media_entity_cleanup:
 	media_entity_cleanup(&sensor->src->sd.entity);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/st-mipid02.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/st-mipid02.c
@@ -971,6 +971,11 @@
 	bridge->reset_gpio = devm_gpiod_get_optional(dev, "reset",
 						     GPIOD_OUT_HIGH);
 
+	if (IS_ERR(bridge->reset_gpio)) {
+		dev_err(dev, "failed to get reset GPIO\n");
+		return PTR_ERR(bridge->reset_gpio);
+	}
+
 	ret = mipid02_get_regulators(bridge);
 	if (ret) {
 		dev_err(dev, "failed to get regulators %d", ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/tc358743.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/tc358743.c
@@ -919,8 +919,8 @@
 	.adap_monitor_all_enable = tc358743_cec_adap_monitor_all_enable,
 };
 
-static void tc358743_cec_isr(struct v4l2_subdev *sd, u16 intstatus,
-			     bool *handled)
+static void tc358743_cec_handler(struct v4l2_subdev *sd, u16 intstatus,
+				 bool *handled)
 {
 	struct tc358743_state *state = to_state(sd);
 	unsigned int cec_rxint, cec_txint;
@@ -953,7 +953,8 @@
 			cec_transmit_attempt_done(state->cec_adap,
 						  CEC_TX_STATUS_ERROR);
 		}
-		*handled = true;
+		if (handled)
+			*handled = true;
 	}
 	if ((intstatus & MASK_CEC_RINT) &&
 	    (cec_rxint & MASK_CECRIEND)) {
@@ -968,7 +969,8 @@
 			msg.msg[i] = v & 0xff;
 		}
 		cec_received_msg(state->cec_adap, &msg);
-		*handled = true;
+		if (handled)
+			*handled = true;
 	}
 	i2c_wr16(sd, INTSTATUS,
 		 intstatus & (MASK_CEC_RINT | MASK_CEC_TINT));
@@ -1432,7 +1434,7 @@
 
 #ifdef CONFIG_VIDEO_TC358743_CEC
 	if (intstatus & (MASK_CEC_RINT | MASK_CEC_TINT)) {
-		tc358743_cec_isr(sd, intstatus, handled);
+		tc358743_cec_handler(sd, intstatus, handled);
 		i2c_wr16(sd, INTSTATUS,
 			 intstatus & (MASK_CEC_RINT | MASK_CEC_TINT));
 		intstatus &= ~(MASK_CEC_RINT | MASK_CEC_TINT);
@@ -1461,7 +1463,7 @@
 static irqreturn_t tc358743_irq_handler(int irq, void *dev_id)
 {
 	struct tc358743_state *state = dev_id;
-	bool handled;
+	bool handled = false;
 
 	tc358743_isr(&state->sd, 0, &handled);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/i2c/video-i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/i2c/video-i2c.c
@@ -255,7 +255,7 @@
 	return amg88xx_set_power_off(data);
 }
 
-#if IS_ENABLED(CONFIG_HWMON)
+#if IS_REACHABLE(CONFIG_HWMON)
 
 static const u32 amg88xx_temp_config[] = {
 	HWMON_T_INPUT,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/mc/mc-device.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/mc/mc-device.c
@@ -575,6 +575,38 @@
 	dev_dbg(devnode->parent, "Media device released\n");
 }
 
+static void __media_device_unregister_entity(struct media_entity *entity)
+{
+	struct media_device *mdev = entity->graph_obj.mdev;
+	struct media_link *link, *tmp;
+	struct media_interface *intf;
+	unsigned int i;
+
+	ida_free(&mdev->entity_internal_idx, entity->internal_idx);
+
+	/* Remove all interface links pointing to this entity */
+	list_for_each_entry(intf, &mdev->interfaces, graph_obj.list) {
+		list_for_each_entry_safe(link, tmp, &intf->links, list) {
+			if (link->entity == entity)
+				__media_remove_intf_link(link);
+		}
+	}
+
+	/* Remove all data links that belong to this entity */
+	__media_entity_remove_links(entity);
+
+	/* Remove all pads that belong to this entity */
+	for (i = 0; i < entity->num_pads; i++)
+		media_gobj_destroy(&entity->pads[i].graph_obj);
+
+	/* Remove the entity */
+	media_gobj_destroy(&entity->graph_obj);
+
+	/* invoke entity_notify callbacks to handle entity removal?? */
+
+	entity->graph_obj.mdev = NULL;
+}
+
 /**
  * media_device_register_entity - Register an entity with a media device
  * @mdev:	The media device
@@ -632,6 +664,7 @@
 		 */
 		ret = media_graph_walk_init(&new, mdev);
 		if (ret) {
+			__media_device_unregister_entity(entity);
 			mutex_unlock(&mdev->graph_mutex);
 			return ret;
 		}
@@ -644,38 +677,6 @@
 }
 EXPORT_SYMBOL_GPL(media_device_register_entity);
 
-static void __media_device_unregister_entity(struct media_entity *entity)
-{
-	struct media_device *mdev = entity->graph_obj.mdev;
-	struct media_link *link, *tmp;
-	struct media_interface *intf;
-	unsigned int i;
-
-	ida_free(&mdev->entity_internal_idx, entity->internal_idx);
-
-	/* Remove all interface links pointing to this entity */
-	list_for_each_entry(intf, &mdev->interfaces, graph_obj.list) {
-		list_for_each_entry_safe(link, tmp, &intf->links, list) {
-			if (link->entity == entity)
-				__media_remove_intf_link(link);
-		}
-	}
-
-	/* Remove all data links that belong to this entity */
-	__media_entity_remove_links(entity);
-
-	/* Remove all pads that belong to this entity */
-	for (i = 0; i < entity->num_pads; i++)
-		media_gobj_destroy(&entity->pads[i].graph_obj);
-
-	/* Remove the entity */
-	media_gobj_destroy(&entity->graph_obj);
-
-	/* invoke entity_notify callbacks to handle entity removal?? */
-
-	entity->graph_obj.mdev = NULL;
-}
-
 void media_device_unregister_entity(struct media_entity *entity)
 {
 	struct media_device *mdev = entity->graph_obj.mdev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/mc/mc-entity.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/mc/mc-entity.c
@@ -639,9 +639,9 @@
 		return -EINVAL;
 
 	for (i = 0; i < entity->num_pads; i++) {
-		if (entity->pads[i].flags == MEDIA_PAD_FL_SINK)
+		if (entity->pads[i].flags & MEDIA_PAD_FL_SINK)
 			pad_is_sink = true;
-		else if (entity->pads[i].flags == MEDIA_PAD_FL_SOURCE)
+		else if (entity->pads[i].flags & MEDIA_PAD_FL_SOURCE)
 			pad_is_sink = false;
 		else
 			continue;	/* This is an error! */
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/mc/mc-request.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/mc/mc-request.c
@@ -296,9 +296,18 @@
 	if (WARN_ON(!mdev->ops->req_alloc ^ !mdev->ops->req_free))
 		return -ENOMEM;
 
+	if (mdev->ops->req_alloc)
+		req = mdev->ops->req_alloc(mdev);
+	else
+		req = kzalloc(sizeof(*req), GFP_KERNEL);
+	if (!req)
+		return -ENOMEM;
+
 	fd = get_unused_fd_flags(O_CLOEXEC);
-	if (fd < 0)
-		return fd;
+	if (fd < 0) {
+		ret = fd;
+		goto err_free_req;
+	}
 
 	filp = anon_inode_getfile("request", &request_fops, NULL, O_CLOEXEC);
 	if (IS_ERR(filp)) {
@@ -306,15 +315,6 @@
 		goto err_put_fd;
 	}
 
-	if (mdev->ops->req_alloc)
-		req = mdev->ops->req_alloc(mdev);
-	else
-		req = kzalloc(sizeof(*req), GFP_KERNEL);
-	if (!req) {
-		ret = -ENOMEM;
-		goto err_fput;
-	}
-
 	filp->private_data = req;
 	req->mdev = mdev;
 	req->state = MEDIA_REQUEST_STATE_IDLE;
@@ -336,12 +336,15 @@
 
 	return 0;
 
-err_fput:
-	fput(filp);
-
 err_put_fd:
 	put_unused_fd(fd);
 
+err_free_req:
+	if (mdev->ops->req_free)
+		mdev->ops->req_free(req);
+	else
+		kfree(req);
+
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/bt8xx/bttv-driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/bt8xx/bttv-driver.c
@@ -4013,11 +4013,13 @@
 	btv->id  = dev->device;
 	if (pci_enable_device(dev)) {
 		pr_warn("%d: Can't enable device\n", btv->c.nr);
-		return -EIO;
+		result = -EIO;
+		goto free_mem;
 	}
 	if (pci_set_dma_mask(dev, DMA_BIT_MASK(32))) {
 		pr_warn("%d: No suitable DMA available\n", btv->c.nr);
-		return -EIO;
+		result = -EIO;
+		goto free_mem;
 	}
 	if (!request_mem_region(pci_resource_start(dev,0),
 				pci_resource_len(dev,0),
@@ -4025,7 +4027,8 @@
 		pr_warn("%d: can't request iomem (0x%llx)\n",
 			btv->c.nr,
 			(unsigned long long)pci_resource_start(dev, 0));
-		return -EBUSY;
+		result = -EBUSY;
+		goto free_mem;
 	}
 	pci_set_master(dev);
 	pci_set_command(dev);
@@ -4211,6 +4214,10 @@
 	release_mem_region(pci_resource_start(btv->c.pci,0),
 			   pci_resource_len(btv->c.pci,0));
 	pci_disable_device(btv->c.pci);
+
+free_mem:
+	bttvs[btv->c.nr] = NULL;
+	kfree(btv);
 	return result;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx23885/cx23885-cards.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx23885/cx23885-cards.c
@@ -801,6 +801,25 @@
 		.name		= "Hauppauge WinTV-Starburst2",
 		.portb		= CX23885_MPEG_DVB,
 	},
+	[CX23885_BOARD_AVERMEDIA_CE310B] = {
+		.name		= "AVerMedia CE310B",
+		.porta		= CX23885_ANALOG_VIDEO,
+		.force_bff	= 1,
+		.input          = {{
+			.type   = CX23885_VMUX_COMPOSITE1,
+			.vmux   = CX25840_VIN1_CH1 |
+				  CX25840_NONE_CH2 |
+				  CX25840_NONE0_CH3,
+			.amux   = CX25840_AUDIO7,
+		}, {
+			.type   = CX23885_VMUX_SVIDEO,
+			.vmux   = CX25840_VIN8_CH1 |
+				  CX25840_NONE_CH2 |
+				  CX25840_VIN7_CH3 |
+				  CX25840_SVIDEO_ON,
+			.amux   = CX25840_AUDIO7,
+		} },
+	},
 };
 const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
 
@@ -1124,6 +1143,10 @@
 		.subvendor = 0x0070,
 		.subdevice = 0xf02a,
 		.card      = CX23885_BOARD_HAUPPAUGE_STARBURST2,
+	}, {
+		.subvendor = 0x1461,
+		.subdevice = 0x3100,
+		.card      = CX23885_BOARD_AVERMEDIA_CE310B,
 	},
 };
 const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -2348,6 +2371,7 @@
 	case CX23885_BOARD_DVBSKY_T982:
 	case CX23885_BOARD_VIEWCAST_260E:
 	case CX23885_BOARD_VIEWCAST_460E:
+	case CX23885_BOARD_AVERMEDIA_CE310B:
 		dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
 				&dev->i2c_bus[2].i2c_adap,
 				"cx25840", 0x88 >> 1, NULL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx23885/cx23885-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx23885/cx23885-core.c
@@ -2074,6 +2074,10 @@
 	 * 0x1451 is PCI ID for the IOMMU found on Ryzen
 	 */
 	{ PCI_VENDOR_ID_AMD, 0x1451 },
+	/* According to sudo lspci -nn,
+	 * 0x1423 is the PCI ID for the IOMMU found on Kaveri
+	 */
+	{ PCI_VENDOR_ID_AMD, 0x1423 },
 };
 
 static bool cx23885_does_need_dma_reset(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx23885/cx23885-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx23885/cx23885-video.c
@@ -257,7 +257,8 @@
 		(dev->board == CX23885_BOARD_MYGICA_X8507) ||
 		(dev->board == CX23885_BOARD_AVERMEDIA_HC81R) ||
 		(dev->board == CX23885_BOARD_VIEWCAST_260E) ||
-		(dev->board == CX23885_BOARD_VIEWCAST_460E)) {
+		(dev->board == CX23885_BOARD_VIEWCAST_460E) ||
+		(dev->board == CX23885_BOARD_AVERMEDIA_CE310B)) {
 		/* Configure audio routing */
 		v4l2_subdev_call(dev->sd_cx25840, audio, s_routing,
 			INPUT(input)->amux, 0, 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx23885/cx23885.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx23885/cx23885.h
@@ -101,6 +101,7 @@
 #define CX23885_BOARD_HAUPPAUGE_STARBURST2     59
 #define CX23885_BOARD_HAUPPAUGE_QUADHD_DVB_885 60
 #define CX23885_BOARD_HAUPPAUGE_QUADHD_ATSC_885 61
+#define CX23885_BOARD_AVERMEDIA_CE310B         62
 
 #define GPIO_0 0x00000001
 #define GPIO_1 0x00000002
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx23885/cx23888-ir.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx23885/cx23888-ir.c
@@ -1167,8 +1167,11 @@
 		return -ENOMEM;
 
 	spin_lock_init(&state->rx_kfifo_lock);
-	if (kfifo_alloc(&state->rx_kfifo, CX23888_IR_RX_KFIFO_SIZE, GFP_KERNEL))
+	if (kfifo_alloc(&state->rx_kfifo, CX23888_IR_RX_KFIFO_SIZE,
+			GFP_KERNEL)) {
+		kfree(state);
 		return -ENOMEM;
+	}
 
 	state->dev = dev;
 	sd = &state->sd;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx25821/cx25821-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx25821/cx25821-core.c
@@ -976,8 +976,10 @@
 	__le32 *cpu;
 	dma_addr_t dma = 0;
 
-	if (NULL != risc->cpu && risc->size < size)
+	if (risc->cpu && risc->size < size) {
 		pci_free_consistent(pci, risc->size, risc->cpu, risc->dma);
+		risc->cpu = NULL;
+	}
 	if (NULL == risc->cpu) {
 		cpu = pci_zalloc_consistent(pci, size, &dma);
 		if (NULL == cpu)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/cx88/cx88-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/cx88/cx88-video.c
@@ -1277,7 +1277,7 @@
 	core = cx88_core_get(dev->pci);
 	if (!core) {
 		err = -EINVAL;
-		goto fail_free;
+		goto fail_disable;
 	}
 	dev->core = core;
 
@@ -1323,7 +1323,7 @@
 				       cc->step, cc->default_value);
 		if (!vc) {
 			err = core->audio_hdl.error;
-			goto fail_core;
+			goto fail_irq;
 		}
 		vc->priv = (void *)cc;
 	}
@@ -1337,7 +1337,7 @@
 				       cc->step, cc->default_value);
 		if (!vc) {
 			err = core->video_hdl.error;
-			goto fail_core;
+			goto fail_irq;
 		}
 		vc->priv = (void *)cc;
 		if (vc->id == V4L2_CID_CHROMA_AGC)
@@ -1509,11 +1509,14 @@
 
 fail_unreg:
 	cx8800_unregister_video(dev);
-	free_irq(pci_dev->irq, dev);
 	mutex_unlock(&core->lock);
+fail_irq:
+	free_irq(pci_dev->irq, dev);
 fail_core:
 	core->v4ldev = NULL;
 	cx88_core_put(core, dev->pci);
+fail_disable:
+	pci_disable_device(pci_dev);
 fail_free:
 	kfree(dev);
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/intel/ipu3/ipu3-cio2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/intel/ipu3/ipu3-cio2.c
@@ -799,6 +799,7 @@
 			atomic_dec(&q->bufs_queued);
 			vb2_buffer_done(&q->bufs[i]->vbb.vb2_buf,
 					state);
+			q->bufs[i] = NULL;
 		}
 	}
 }
@@ -1243,29 +1244,15 @@
 			       struct v4l2_subdev_format *fmt)
 {
 	struct cio2_queue *q = container_of(sd, struct cio2_queue, subdev);
-	struct v4l2_subdev_format format;
-	int ret;
-
-	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-		fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
-		return 0;
-	}
 
-	if (fmt->pad == CIO2_PAD_SINK) {
-		format.which = V4L2_SUBDEV_FORMAT_ACTIVE;
-		ret = v4l2_subdev_call(sd, pad, get_fmt, NULL,
-				       &format);
+	mutex_lock(&q->subdev_lock);
 
-		if (ret)
-			return ret;
-		/* update colorspace etc */
-		q->subdev_fmt.colorspace = format.format.colorspace;
-		q->subdev_fmt.ycbcr_enc = format.format.ycbcr_enc;
-		q->subdev_fmt.quantization = format.format.quantization;
-		q->subdev_fmt.xfer_func = format.format.xfer_func;
-	}
+	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
+		fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
+	else
+		fmt->format = q->subdev_fmt;
 
-	fmt->format = q->subdev_fmt;
+	mutex_unlock(&q->subdev_lock);
 
 	return 0;
 }
@@ -1282,6 +1269,9 @@
 			       struct v4l2_subdev_format *fmt)
 {
 	struct cio2_queue *q = container_of(sd, struct cio2_queue, subdev);
+	struct v4l2_mbus_framefmt *mbus;
+	u32 mbus_code = fmt->format.code;
+	unsigned int i;
 
 	/*
 	 * Only allow setting sink pad format;
@@ -1290,16 +1280,29 @@
 	if (fmt->pad == CIO2_PAD_SOURCE)
 		return cio2_subdev_get_fmt(sd, cfg, fmt);
 
-	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-		*v4l2_subdev_get_try_format(sd, cfg, fmt->pad) = fmt->format;
-	} else {
-		/* It's the sink, allow changing frame size */
-		q->subdev_fmt.width = fmt->format.width;
-		q->subdev_fmt.height = fmt->format.height;
-		q->subdev_fmt.code = fmt->format.code;
-		fmt->format = q->subdev_fmt;
+	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
+		mbus = v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
+	else
+		mbus = &q->subdev_fmt;
+
+	fmt->format.code = formats[0].mbus_code;
+
+	for (i = 0; i < ARRAY_SIZE(formats); i++) {
+		if (formats[i].mbus_code == mbus_code) {
+			fmt->format.code = mbus_code;
+			break;
+		}
 	}
 
+	fmt->format.width = min_t(u32, fmt->format.width, CIO2_IMAGE_MAX_WIDTH);
+	fmt->format.height = min_t(u32, fmt->format.height,
+				   CIO2_IMAGE_MAX_LENGTH);
+	fmt->format.field = V4L2_FIELD_NONE;
+
+	mutex_lock(&q->subdev_lock);
+	*mbus = fmt->format;
+	mutex_unlock(&q->subdev_lock);
+
 	return 0;
 }
 
@@ -1558,6 +1561,7 @@
 
 	/* Initialize miscellaneous variables */
 	mutex_init(&q->lock);
+	mutex_init(&q->subdev_lock);
 
 	/* Initialize formats to default values */
 	fmt = &q->subdev_fmt;
@@ -1676,6 +1680,7 @@
 fail_subdev_media_entity:
 	cio2_fbpt_exit(q, &cio2->pci_dev->dev);
 fail_fbpt:
+	mutex_destroy(&q->subdev_lock);
 	mutex_destroy(&q->lock);
 
 	return r;
@@ -1689,6 +1694,7 @@
 	v4l2_device_unregister_subdev(&q->subdev);
 	media_entity_cleanup(&q->subdev.entity);
 	cio2_fbpt_exit(q, &cio2->pci_dev->dev);
+	mutex_destroy(&q->subdev_lock);
 	mutex_destroy(&q->lock);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/intel/ipu3/ipu3-cio2.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/intel/ipu3/ipu3-cio2.h
@@ -332,6 +332,7 @@
 
 	/* Subdev, /dev/v4l-subdevX */
 	struct v4l2_subdev subdev;
+	struct mutex subdev_lock; /* Serialise acces to subdev_fmt field */
 	struct media_pad subdev_pads[CIO2_PADS];
 	struct v4l2_mbus_framefmt subdev_fmt;
 	atomic_t frame_sequence;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
@@ -175,7 +175,7 @@
 	struct spi_master *master;
 	struct netup_spi *nspi;
 
-	master = spi_alloc_master(&ndev->pci_dev->dev,
+	master = devm_spi_alloc_master(&ndev->pci_dev->dev,
 		sizeof(struct netup_spi));
 	if (!master) {
 		dev_err(&ndev->pci_dev->dev,
@@ -208,6 +208,7 @@
 		ndev->pci_slot,
 		ndev->pci_func);
 	if (!spi_new_device(master, &netup_spi_board)) {
+		spi_unregister_master(master);
 		ndev->spi = NULL;
 		dev_err(&ndev->pci_dev->dev,
 			"%s(): unable to create SPI device\n", __func__);
@@ -226,13 +227,13 @@
 	if (!spi)
 		return;
 
+	spi_unregister_master(spi->master);
 	spin_lock_irqsave(&spi->lock, flags);
 	reg = readw(&spi->regs->control_stat);
 	writew(reg | NETUP_SPI_CTRL_IRQ, &spi->regs->control_stat);
 	reg = readw(&spi->regs->control_stat);
 	writew(reg & ~NETUP_SPI_CTRL_IMASK, &spi->regs->control_stat);
 	spin_unlock_irqrestore(&spi->lock, flags);
-	spi_unregister_master(spi->master);
 	ndev->spi = NULL;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/saa7134/saa7134-empress.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/saa7134/saa7134-empress.c
@@ -282,8 +282,11 @@
 	q->lock = &dev->lock;
 	q->dev = &dev->pci->dev;
 	err = vb2_queue_init(q);
-	if (err)
+	if (err) {
+		video_device_release(dev->empress_dev);
+		dev->empress_dev = NULL;
 		return err;
+	}
 	dev->empress_dev->queue = q;
 	dev->empress_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING |
 					V4L2_CAP_VIDEO_CAPTURE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/saa7134/saa7134-tvaudio.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/saa7134/saa7134-tvaudio.c
@@ -683,7 +683,8 @@
 {
 	int err;
 
-	audio_dbg(2, "dsp write reg 0x%x = 0x%06x\n", reg << 2, value);
+	audio_dbg(2, "dsp write reg 0x%x = 0x%06x\n",
+		  (reg << 2) & 0xffffffff, value);
 	err = saa_dsp_wait_bit(dev,SAA7135_DSP_RWSTATE_WRR);
 	if (err < 0)
 		return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/saa7146/mxb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/saa7146/mxb.c
@@ -641,16 +641,17 @@
 	struct mxb *mxb = (struct mxb *)dev->ext_priv;
 
 	DEB_D("VIDIOC_S_AUDIO %d\n", a->index);
-	if (mxb_inputs[mxb->cur_input].audioset & (1 << a->index)) {
-		if (mxb->cur_audinput != a->index) {
-			mxb->cur_audinput = a->index;
-			tea6420_route(mxb, a->index);
-			if (mxb->cur_audinput == 0)
-				mxb_update_audmode(mxb);
-		}
-		return 0;
+	if (a->index >= 32 ||
+	    !(mxb_inputs[mxb->cur_input].audioset & (1 << a->index)))
+		return -EINVAL;
+
+	if (mxb->cur_audinput != a->index) {
+		mxb->cur_audinput = a->index;
+		tea6420_route(mxb, a->index);
+		if (mxb->cur_audinput == 0)
+			mxb_update_audmode(mxb);
 	}
-	return -EINVAL;
+	return 0;
 }
 
 #ifdef CONFIG_VIDEO_ADV_DEBUG
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/smipcie/smipcie-ir.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/smipcie/smipcie-ir.c
@@ -60,39 +60,45 @@
 {
 	struct smi_dev *dev = ir->dev;
 	struct rc_dev *rc_dev = ir->rc_dev;
-	u32 dwIRControl, dwIRData;
-	u8 index, ucIRCount, readLoop;
+	u32 control, data;
+	u8 index, ir_count, read_loop;
 
-	dwIRControl = smi_read(IR_Init_Reg);
+	control = smi_read(IR_Init_Reg);
 
-	if (dwIRControl & rbIRVld) {
-		ucIRCount = (u8) smi_read(IR_Data_Cnt);
+	dev_dbg(&rc_dev->dev, "ircontrol: 0x%08x\n", control);
 
-		readLoop = ucIRCount/4;
-		if (ucIRCount % 4)
-			readLoop += 1;
-		for (index = 0; index < readLoop; index++) {
-			dwIRData = smi_read(IR_DATA_BUFFER_BASE + (index * 4));
-
-			ir->irData[index*4 + 0] = (u8)(dwIRData);
-			ir->irData[index*4 + 1] = (u8)(dwIRData >> 8);
-			ir->irData[index*4 + 2] = (u8)(dwIRData >> 16);
-			ir->irData[index*4 + 3] = (u8)(dwIRData >> 24);
+	if (control & rbIRVld) {
+		ir_count = (u8)smi_read(IR_Data_Cnt);
+
+		dev_dbg(&rc_dev->dev, "ircount %d\n", ir_count);
+
+		read_loop = ir_count / 4;
+		if (ir_count % 4)
+			read_loop += 1;
+		for (index = 0; index < read_loop; index++) {
+			data = smi_read(IR_DATA_BUFFER_BASE + (index * 4));
+			dev_dbg(&rc_dev->dev, "IRData 0x%08x\n", data);
+
+			ir->irData[index * 4 + 0] = (u8)(data);
+			ir->irData[index * 4 + 1] = (u8)(data >> 8);
+			ir->irData[index * 4 + 2] = (u8)(data >> 16);
+			ir->irData[index * 4 + 3] = (u8)(data >> 24);
 		}
-		smi_raw_process(rc_dev, ir->irData, ucIRCount);
-		smi_set(IR_Init_Reg, rbIRVld);
+		smi_raw_process(rc_dev, ir->irData, ir_count);
 	}
 
-	if (dwIRControl & rbIRhighidle) {
+	if (control & rbIRhighidle) {
 		struct ir_raw_event rawir = {};
 
+		dev_dbg(&rc_dev->dev, "high idle\n");
+
 		rawir.pulse = 0;
 		rawir.duration = US_TO_NS(SMI_SAMPLE_PERIOD *
 					  SMI_SAMPLE_IDLEMIN);
 		ir_raw_event_store_with_filter(rc_dev, &rawir);
-		smi_set(IR_Init_Reg, rbIRhighidle);
 	}
 
+	smi_set(IR_Init_Reg, rbIRVld);
 	ir_raw_event_handle(rc_dev);
 }
 
@@ -151,7 +157,7 @@
 	rc_dev->dev.parent = &dev->pci_dev->dev;
 
 	rc_dev->map_name = dev->info->rc_map;
-	rc_dev->timeout = MS_TO_NS(100);
+	rc_dev->timeout = US_TO_NS(SMI_SAMPLE_PERIOD * SMI_SAMPLE_IDLEMIN);
 	rc_dev->rx_resolution = US_TO_NS(SMI_SAMPLE_PERIOD);
 
 	ir->rc_dev = rc_dev;
@@ -174,7 +180,7 @@
 	struct smi_rc *ir = &dev->ir;
 	struct rc_dev *rc_dev = ir->rc_dev;
 
-	smi_ir_stop(ir);
 	rc_unregister_device(rc_dev);
+	smi_ir_stop(ir);
 	ir->rc_dev = NULL;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/solo6x10/solo6x10-g723.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/solo6x10/solo6x10-g723.c
@@ -399,7 +399,7 @@
 
 	ret = snd_ctl_add(card, snd_ctl_new1(&kctl, solo_dev));
 	if (ret < 0)
-		return ret;
+		goto snd_error;
 
 	ret = solo_snd_pcm_init(solo_dev);
 	if (ret < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/ttpci/av7110.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/ttpci/av7110.c
@@ -406,14 +406,15 @@
 	case DATA_CI_GET:
 	{
 		u8 *data = av7110->debi_virt;
+		u8 data_0 = data[0];
 
-		if ((data[0] < 2) && data[2] == 0xff) {
+		if (data_0 < 2 && data[2] == 0xff) {
 			int flags = 0;
 			if (data[5] > 0)
 				flags |= CA_CI_MODULE_PRESENT;
 			if (data[5] > 5)
 				flags |= CA_CI_MODULE_READY;
-			av7110->ci_slot[data[0]].flags = flags;
+			av7110->ci_slot[data_0].flags = flags;
 		} else
 			ci_get_data(&av7110->ci_rbuffer,
 				    av7110->debi_virt,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/ttpci/budget-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/ttpci/budget-core.c
@@ -369,20 +369,25 @@
 	ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->hw_frontend);
 
 	if (ret < 0)
-		return ret;
+		goto err_release_dmx;
 
 	budget->mem_frontend.source = DMX_MEMORY_FE;
 	ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->mem_frontend);
 	if (ret < 0)
-		return ret;
+		goto err_release_dmx;
 
 	ret = dvbdemux->dmx.connect_frontend(&dvbdemux->dmx, &budget->hw_frontend);
 	if (ret < 0)
-		return ret;
+		goto err_release_dmx;
 
 	dvb_net_init(&budget->dvb_adapter, &budget->dvb_net, &dvbdemux->dmx);
 
 	return 0;
+
+err_release_dmx:
+	dvb_dmxdev_release(&budget->dmxdev);
+	dvb_dmx_release(&budget->demux);
+	return ret;
 }
 
 static void budget_unregister(struct budget *budget)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/pci/tw5864/tw5864-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/pci/tw5864/tw5864-video.c
@@ -767,6 +767,9 @@
 	fintv->type = V4L2_FRMIVAL_TYPE_STEPWISE;
 
 	ret = tw5864_frameinterval_get(input, &frameinterval);
+	if (ret)
+		return ret;
+
 	fintv->stepwise.step = frameinterval;
 	fintv->stepwise.min = frameinterval;
 	fintv->stepwise.max = frameinterval;
@@ -785,6 +788,9 @@
 	cp->capability = V4L2_CAP_TIMEPERFRAME;
 
 	ret = tw5864_frameinterval_get(input, &cp->timeperframe);
+	if (ret)
+		return ret;
+
 	cp->timeperframe.numerator *= input->frame_interval;
 	cp->capturemode = 0;
 	cp->readbuffers = 2;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/am437x/am437x-vpfe.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/am437x/am437x-vpfe.c
@@ -1830,6 +1830,10 @@
 	if (!(sdinfo->inputs[0].capabilities & V4L2_IN_CAP_STD))
 		return -ENODATA;
 
+	/* if trying to set the same std then nothing to do */
+	if (vpfe_standards[vpfe->std_index].std_id == std_id)
+		return 0;
+
 	/* If streaming is started, return error */
 	if (vb2_is_busy(&vpfe->buffer_queue)) {
 		vpfe_err(vpfe, "%s device busy\n", __func__);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/aspeed-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/aspeed-video.c
@@ -606,6 +606,16 @@
 			aspeed_video_start_frame(video);
 	}
 
+	/*
+	 * CAPTURE_COMPLETE and FRAME_COMPLETE interrupts come even when these
+	 * are disabled in the VE_INTERRUPT_CTRL register so clear them to
+	 * prevent unnecessary interrupt calls.
+	 */
+	if (sts & VE_INTERRUPT_CAPTURE_COMPLETE)
+		sts &= ~VE_INTERRUPT_CAPTURE_COMPLETE;
+	if (sts & VE_INTERRUPT_FRAME_COMPLETE)
+		sts &= ~VE_INTERRUPT_FRAME_COMPLETE;
+
 	return sts ? IRQ_NONE : IRQ_HANDLED;
 }
 
@@ -741,6 +751,8 @@
 		}
 
 		set_bit(VIDEO_RES_DETECT, &video->flags);
+		aspeed_video_update(video, VE_CTRL,
+				    VE_CTRL_VSYNC_POL | VE_CTRL_HSYNC_POL, 0);
 		aspeed_video_enable_mode_detect(video);
 
 		rc = wait_event_interruptible_timeout(video->wait,
@@ -1517,12 +1529,12 @@
 			       V4L2_JPEG_CHROMA_SUBSAMPLING_420, mask,
 			       V4L2_JPEG_CHROMA_SUBSAMPLING_444);
 
-	if (video->ctrl_handler.error) {
+	rc = video->ctrl_handler.error;
+	if (rc) {
 		v4l2_ctrl_handler_free(&video->ctrl_handler);
 		v4l2_device_unregister(v4l2_dev);
 
-		dev_err(video->dev, "Failed to init controls: %d\n",
-			video->ctrl_handler.error);
+		dev_err(video->dev, "Failed to init controls: %d\n", rc);
 		return rc;
 	}
 
@@ -1646,7 +1658,8 @@
 {
 	int rc;
 	struct resource *res;
-	struct aspeed_video *video = kzalloc(sizeof(*video), GFP_KERNEL);
+	struct aspeed_video *video =
+		devm_kzalloc(&pdev->dev, sizeof(*video), GFP_KERNEL);
 
 	if (!video)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/cadence/cdns-csi2rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/cadence/cdns-csi2rx.c
@@ -129,7 +129,7 @@
 	 */
 	for (i = csi2rx->num_lanes; i < csi2rx->max_lanes; i++) {
 		unsigned int idx = find_first_zero_bit(&lanes_used,
-						       sizeof(lanes_used));
+						       csi2rx->max_lanes);
 		set_bit(idx, &lanes_used);
 		reg |= CSI2RX_STATIC_CFG_DLANE_MAP(i, i + 1);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/coda/coda-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/coda/coda-common.c
@@ -1084,16 +1084,16 @@
 
 	switch (dc->cmd) {
 	case V4L2_DEC_CMD_START:
-		mutex_lock(&ctx->bitstream_mutex);
 		mutex_lock(&dev->coda_mutex);
+		mutex_lock(&ctx->bitstream_mutex);
 		coda_bitstream_flush(ctx);
-		mutex_unlock(&dev->coda_mutex);
 		dst_vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx,
 					 V4L2_BUF_TYPE_VIDEO_CAPTURE);
 		vb2_clear_last_buffer_dequeued(dst_vq);
 		ctx->bit_stream_param &= ~CODA_BIT_STREAM_END_FLAG;
 		coda_fill_bitstream(ctx, NULL);
 		mutex_unlock(&ctx->bitstream_mutex);
+		mutex_unlock(&dev->coda_mutex);
 		break;
 	case V4L2_DEC_CMD_STOP:
 		stream_end = false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/cros-ec-cec/cros-ec-cec.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/cros-ec-cec/cros-ec-cec.c
@@ -278,11 +278,7 @@
 	platform_set_drvdata(pdev, cros_ec_cec);
 	cros_ec_cec->cros_ec = cros_ec;
 
-	ret = device_init_wakeup(&pdev->dev, 1);
-	if (ret) {
-		dev_err(&pdev->dev, "failed to initialize wakeup\n");
-		return ret;
-	}
+	device_init_wakeup(&pdev->dev, 1);
 
 	cros_ec_cec->adap = cec_allocate_adapter(&cros_ec_cec_ops, cros_ec_cec,
 						 DRV_NAME,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/davinci/vpif_capture.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/davinci/vpif_capture.c
@@ -1482,8 +1482,6 @@
 		/* Unregister video device */
 		video_unregister_device(&ch->video_dev);
 	}
-	kfree(vpif_obj.sd);
-	v4l2_device_unregister(&vpif_obj.v4l2_dev);
 
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/davinci/vpss.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/davinci/vpss.c
@@ -505,19 +505,31 @@
 
 static int __init vpss_init(void)
 {
+	int ret;
+
 	if (!request_mem_region(VPSS_CLK_CTRL, 4, "vpss_clock_control"))
 		return -EBUSY;
 
 	oper_cfg.vpss_regs_base2 = ioremap(VPSS_CLK_CTRL, 4);
 	if (unlikely(!oper_cfg.vpss_regs_base2)) {
-		release_mem_region(VPSS_CLK_CTRL, 4);
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto err_ioremap;
 	}
 
 	writel(VPSS_CLK_CTRL_VENCCLKEN |
-		     VPSS_CLK_CTRL_DACCLKEN, oper_cfg.vpss_regs_base2);
+	       VPSS_CLK_CTRL_DACCLKEN, oper_cfg.vpss_regs_base2);
+
+	ret = platform_driver_register(&vpss_driver);
+	if (ret)
+		goto err_pd_register;
+
+	return 0;
 
-	return platform_driver_register(&vpss_driver);
+err_pd_register:
+	iounmap(oper_cfg.vpss_regs_base2);
+err_ioremap:
+	release_mem_region(VPSS_CLK_CTRL, 4);
+	return ret;
 }
 subsys_initcall(vpss_init);
 module_exit(vpss_exit);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/exynos4-is/fimc-isp-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/exynos4-is/fimc-isp-video.c
@@ -313,7 +313,7 @@
 		ivc->streaming = 0;
 	}
 
-	vb2_fop_release(file);
+	_vb2_fop_release(file, NULL);
 
 	if (v4l2_fh_is_singular_file(file)) {
 		fimc_pipeline_call(&ivc->ve, close);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/exynos4-is/fimc-isp.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/exynos4-is/fimc-isp.c
@@ -305,8 +305,10 @@
 
 	if (on) {
 		ret = pm_runtime_get_sync(&is->pdev->dev);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put(&is->pdev->dev);
 			return ret;
+		}
 		set_bit(IS_ST_PWR_ON, &is->state);
 
 		ret = fimc_is_start_firmware(is);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/exynos4-is/fimc-lite.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/exynos4-is/fimc-lite.c
@@ -470,7 +470,7 @@
 	set_bit(ST_FLITE_IN_USE, &fimc->state);
 	ret = pm_runtime_get_sync(&fimc->pdev->dev);
 	if (ret < 0)
-		goto unlock;
+		goto err_pm;
 
 	ret = v4l2_fh_open(file);
 	if (ret < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/exynos4-is/media-dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/exynos4-is/media-dev.c
@@ -484,8 +484,10 @@
 		return -ENXIO;
 
 	ret = pm_runtime_get_sync(fmd->pmf);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put(fmd->pmf);
 		return ret;
+	}
 
 	fmd->num_sensors = 0;
 
@@ -1268,6 +1270,7 @@
 	if (IS_ERR(pctl->state_default))
 		return PTR_ERR(pctl->state_default);
 
+	/* PINCTRL_STATE_IDLE is optional */
 	pctl->state_idle = pinctrl_lookup_state(pctl->pinctrl,
 					PINCTRL_STATE_IDLE);
 	return 0;
@@ -1457,12 +1460,12 @@
 	ret = v4l2_device_register(dev, &fmd->v4l2_dev);
 	if (ret < 0) {
 		v4l2_err(v4l2_dev, "Failed to register v4l2_device: %d\n", ret);
-		return ret;
+		goto err_md;
 	}
 
 	ret = fimc_md_get_clocks(fmd);
 	if (ret)
-		goto err_md;
+		goto err_v4l2dev;
 
 	ret = fimc_md_get_pinctrl(fmd);
 	if (ret < 0) {
@@ -1519,9 +1522,10 @@
 	fimc_md_unregister_entities(fmd);
 err_clk:
 	fimc_md_put_clocks(fmd);
+err_v4l2dev:
+	v4l2_device_unregister(&fmd->v4l2_dev);
 err_md:
 	media_device_cleanup(&fmd->media_dev);
-	v4l2_device_unregister(&fmd->v4l2_dev);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/exynos4-is/mipi-csis.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/exynos4-is/mipi-csis.c
@@ -510,8 +510,10 @@
 	if (enable) {
 		s5pcsis_clear_counters(state);
 		ret = pm_runtime_get_sync(&state->pdev->dev);
-		if (ret && ret != 1)
+		if (ret && ret != 1) {
+			pm_runtime_put_noidle(&state->pdev->dev);
 			return ret;
+		}
 	}
 
 	mutex_lock(&state->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/marvell-ccic/mcam-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/marvell-ccic/mcam-core.c
@@ -1940,6 +1940,7 @@
 out:
 	v4l2_async_notifier_unregister(&cam->notifier);
 	v4l2_device_unregister(&cam->v4l2_dev);
+	v4l2_async_notifier_cleanup(&cam->notifier);
 	return ret;
 }
 EXPORT_SYMBOL_GPL(mccic_register);
@@ -1961,6 +1962,7 @@
 	v4l2_ctrl_handler_free(&cam->ctrl_handler);
 	v4l2_async_notifier_unregister(&cam->notifier);
 	v4l2_device_unregister(&cam->v4l2_dev);
+	v4l2_async_notifier_cleanup(&cam->notifier);
 }
 EXPORT_SYMBOL_GPL(mccic_shutdown);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/meson/ao-cec-g12a.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/meson/ao-cec-g12a.c
@@ -662,34 +662,27 @@
 	if (IS_ERR(ao_cec->adap))
 		return PTR_ERR(ao_cec->adap);
 
-	ao_cec->notify = cec_notifier_cec_adap_register(hdmi_dev, NULL,
-							ao_cec->adap);
-	if (!ao_cec->notify) {
-		ret = -ENOMEM;
-		goto out_probe_adapter;
-	}
-
 	ao_cec->adap->owner = THIS_MODULE;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	base = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(base)) {
 		ret = PTR_ERR(base);
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ao_cec->regmap = devm_regmap_init_mmio(&pdev->dev, base,
 					       &meson_ao_cec_g12a_regmap_conf);
 	if (IS_ERR(ao_cec->regmap)) {
 		ret = PTR_ERR(ao_cec->regmap);
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ao_cec->regmap_cec = devm_regmap_init(&pdev->dev, NULL, ao_cec,
 					   &meson_ao_cec_g12a_cec_regmap_conf);
 	if (IS_ERR(ao_cec->regmap_cec)) {
 		ret = PTR_ERR(ao_cec->regmap_cec);
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	irq = platform_get_irq(pdev, 0);
@@ -699,45 +692,52 @@
 					0, NULL, ao_cec);
 	if (ret) {
 		dev_err(&pdev->dev, "irq request failed\n");
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ao_cec->oscin = devm_clk_get(&pdev->dev, "oscin");
 	if (IS_ERR(ao_cec->oscin)) {
 		dev_err(&pdev->dev, "oscin clock request failed\n");
 		ret = PTR_ERR(ao_cec->oscin);
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ret = meson_ao_cec_g12a_setup_clk(ao_cec);
 	if (ret)
-		goto out_probe_notify;
+		goto out_probe_adapter;
 
 	ret = clk_prepare_enable(ao_cec->core);
 	if (ret) {
 		dev_err(&pdev->dev, "core clock enable failed\n");
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	device_reset_optional(&pdev->dev);
 
 	platform_set_drvdata(pdev, ao_cec);
 
+	ao_cec->notify = cec_notifier_cec_adap_register(hdmi_dev, NULL,
+							ao_cec->adap);
+	if (!ao_cec->notify) {
+		ret = -ENOMEM;
+		goto out_probe_core_clk;
+	}
+
 	ret = cec_register_adapter(ao_cec->adap, &pdev->dev);
 	if (ret < 0)
-		goto out_probe_core_clk;
+		goto out_probe_notify;
 
 	/* Setup Hardware */
 	regmap_write(ao_cec->regmap, CECB_GEN_CNTL_REG, CECB_GEN_CNTL_RESET);
 
 	return 0;
 
-out_probe_core_clk:
-	clk_disable_unprepare(ao_cec->core);
-
 out_probe_notify:
 	cec_notifier_cec_adap_unregister(ao_cec->notify);
 
+out_probe_core_clk:
+	clk_disable_unprepare(ao_cec->core);
+
 out_probe_adapter:
 	cec_delete_adapter(ao_cec->adap);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/meson/ao-cec.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/meson/ao-cec.c
@@ -624,20 +624,13 @@
 	if (IS_ERR(ao_cec->adap))
 		return PTR_ERR(ao_cec->adap);
 
-	ao_cec->notify = cec_notifier_cec_adap_register(hdmi_dev, NULL,
-							ao_cec->adap);
-	if (!ao_cec->notify) {
-		ret = -ENOMEM;
-		goto out_probe_adapter;
-	}
-
 	ao_cec->adap->owner = THIS_MODULE;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	ao_cec->base = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(ao_cec->base)) {
 		ret = PTR_ERR(ao_cec->base);
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	irq = platform_get_irq(pdev, 0);
@@ -647,20 +640,20 @@
 					0, NULL, ao_cec);
 	if (ret) {
 		dev_err(&pdev->dev, "irq request failed\n");
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ao_cec->core = devm_clk_get(&pdev->dev, "core");
 	if (IS_ERR(ao_cec->core)) {
 		dev_err(&pdev->dev, "core clock request failed\n");
 		ret = PTR_ERR(ao_cec->core);
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ret = clk_prepare_enable(ao_cec->core);
 	if (ret) {
 		dev_err(&pdev->dev, "core clock enable failed\n");
-		goto out_probe_notify;
+		goto out_probe_adapter;
 	}
 
 	ret = clk_set_rate(ao_cec->core, CEC_CLK_RATE);
@@ -674,9 +667,16 @@
 	ao_cec->pdev = pdev;
 	platform_set_drvdata(pdev, ao_cec);
 
+	ao_cec->notify = cec_notifier_cec_adap_register(hdmi_dev, NULL,
+							ao_cec->adap);
+	if (!ao_cec->notify) {
+		ret = -ENOMEM;
+		goto out_probe_clk;
+	}
+
 	ret = cec_register_adapter(ao_cec->adap, &pdev->dev);
 	if (ret < 0)
-		goto out_probe_clk;
+		goto out_probe_notify;
 
 	/* Setup Hardware */
 	writel_relaxed(CEC_GEN_CNTL_RESET,
@@ -684,12 +684,12 @@
 
 	return 0;
 
-out_probe_clk:
-	clk_disable_unprepare(ao_cec->core);
-
 out_probe_notify:
 	cec_notifier_cec_adap_unregister(ao_cec->notify);
 
+out_probe_clk:
+	clk_disable_unprepare(ao_cec->core);
+
 out_probe_adapter:
 	cec_delete_adapter(ao_cec->adap);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
@@ -571,6 +571,13 @@
 	if (!q_data)
 		return -EINVAL;
 
+	if (*num_planes) {
+		for (i = 0; i < *num_planes; i++)
+			if (sizes[i] < q_data->sizeimage[i])
+				return -EINVAL;
+		return 0;
+	}
+
 	*num_planes = q_data->fmt->colplanes;
 	for (i = 0; i < q_data->fmt->colplanes; i++) {
 		sizes[i] = q_data->sizeimage[i];
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c
@@ -48,11 +48,14 @@
 		dec_clk->clk_info = devm_kcalloc(&pdev->dev,
 			dec_clk->clk_num, sizeof(*clk_info),
 			GFP_KERNEL);
-		if (!dec_clk->clk_info)
-			return -ENOMEM;
+		if (!dec_clk->clk_info) {
+			ret = -ENOMEM;
+			goto put_device;
+		}
 	} else {
 		mtk_v4l2_err("Failed to get vdec clock count");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_device;
 	}
 
 	for (i = 0; i < dec_clk->clk_num; i++) {
@@ -61,25 +64,29 @@
 			"clock-names", i, &clk_info->clk_name);
 		if (ret) {
 			mtk_v4l2_err("Failed to get clock name id = %d", i);
-			return ret;
+			goto put_device;
 		}
 		clk_info->vcodec_clk = devm_clk_get(&pdev->dev,
 			clk_info->clk_name);
 		if (IS_ERR(clk_info->vcodec_clk)) {
 			mtk_v4l2_err("devm_clk_get (%d)%s fail", i,
 				clk_info->clk_name);
-			return PTR_ERR(clk_info->vcodec_clk);
+			ret = PTR_ERR(clk_info->vcodec_clk);
+			goto put_device;
 		}
 	}
 
 	pm_runtime_enable(&pdev->dev);
-
+	return 0;
+put_device:
+	put_device(pm->larbvdec);
 	return ret;
 }
 
 void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev)
 {
 	pm_runtime_disable(dev->pm.dev);
+	put_device(dev->pm.larbvdec);
 }
 
 void mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c
@@ -49,14 +49,16 @@
 	node = of_parse_phandle(dev->of_node, "mediatek,larb", 1);
 	if (!node) {
 		mtk_v4l2_err("no mediatek,larb found");
-		return -ENODEV;
+		ret = -ENODEV;
+		goto put_larbvenc;
 	}
 
 	pdev = of_find_device_by_node(node);
 	of_node_put(node);
 	if (!pdev) {
 		mtk_v4l2_err("no mediatek,larb device found");
-		return -ENODEV;
+		ret = -ENODEV;
+		goto put_larbvenc;
 	}
 
 	pm->larbvenclt = &pdev->dev;
@@ -69,11 +71,14 @@
 		enc_clk->clk_info = devm_kcalloc(&pdev->dev,
 			enc_clk->clk_num, sizeof(*clk_info),
 			GFP_KERNEL);
-		if (!enc_clk->clk_info)
-			return -ENOMEM;
+		if (!enc_clk->clk_info) {
+			ret = -ENOMEM;
+			goto put_larbvenclt;
+		}
 	} else {
 		mtk_v4l2_err("Failed to get venc clock count");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_larbvenclt;
 	}
 
 	for (i = 0; i < enc_clk->clk_num; i++) {
@@ -82,17 +87,24 @@
 			"clock-names", i, &clk_info->clk_name);
 		if (ret) {
 			mtk_v4l2_err("venc failed to get clk name %d", i);
-			return ret;
+			goto put_larbvenclt;
 		}
 		clk_info->vcodec_clk = devm_clk_get(&pdev->dev,
 			clk_info->clk_name);
 		if (IS_ERR(clk_info->vcodec_clk)) {
 			mtk_v4l2_err("venc devm_clk_get (%d)%s fail", i,
 				clk_info->clk_name);
-			return PTR_ERR(clk_info->vcodec_clk);
+			ret = PTR_ERR(clk_info->vcodec_clk);
+			goto put_larbvenclt;
 		}
 	}
 
+	return 0;
+
+put_larbvenclt:
+	put_device(pm->larbvenclt);
+put_larbvenc:
+	put_device(pm->larbvenc);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/mx2_emmaprp.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/mx2_emmaprp.c
@@ -852,8 +852,11 @@
 	platform_set_drvdata(pdev, pcdev);
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq < 0)
-		return irq;
+	if (irq < 0) {
+		ret = irq;
+		goto rel_vdev;
+	}
+
 	ret = devm_request_irq(&pdev->dev, irq, emmaprp_irq, 0,
 			       dev_name(&pdev->dev), pcdev);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/omap3isp/isp.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/omap3isp/isp.c
@@ -2330,8 +2330,10 @@
 		mem = platform_get_resource(pdev, IORESOURCE_MEM, i);
 		isp->mmio_base[map_idx] =
 			devm_ioremap_resource(isp->dev, mem);
-		if (IS_ERR(isp->mmio_base[map_idx]))
-			return PTR_ERR(isp->mmio_base[map_idx]);
+		if (IS_ERR(isp->mmio_base[map_idx])) {
+			ret = PTR_ERR(isp->mmio_base[map_idx]);
+			goto error;
+		}
 	}
 
 	ret = isp_get_clocks(isp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/omap3isp/isppreview.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/omap3isp/isppreview.c
@@ -2287,7 +2287,7 @@
 	me->ops = &preview_media_ops;
 	ret = media_entity_pads_init(me, PREV_PADS_NUM, pads);
 	if (ret < 0)
-		return ret;
+		goto error_handler_free;
 
 	preview_init_formats(sd, NULL);
 
@@ -2320,6 +2320,8 @@
 	omap3isp_video_cleanup(&prev->video_in);
 error_video_in:
 	media_entity_cleanup(&prev->subdev.entity);
+error_handler_free:
+	v4l2_ctrl_handler_free(&prev->ctrls);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/pxa_camera.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/pxa_camera.c
@@ -1447,6 +1447,9 @@
 	struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
 	struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
 	int ret = 0;
+#ifdef DEBUG
+	int i;
+#endif
 
 	switch (pcdev->channels) {
 	case 1:
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/camss/camss-csiphy.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/camss/camss-csiphy.c
@@ -176,8 +176,10 @@
 		int ret;
 
 		ret = pm_runtime_get_sync(dev);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put_sync(dev);
 			return ret;
+		}
 
 		ret = csiphy_set_clock_rates(csiphy);
 		if (ret < 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/camss/camss-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/camss/camss-video.c
@@ -901,6 +901,7 @@
 			video->nformats = ARRAY_SIZE(formats_rdi_8x96);
 		}
 	} else {
+		ret = -EINVAL;
 		goto error_video_register;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/camss/camss.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/camss/camss.c
@@ -504,7 +504,6 @@
 	return num_subdevs;
 
 err_cleanup:
-	v4l2_async_notifier_cleanup(&camss->notifier);
 	of_node_put(node);
 	return ret;
 }
@@ -835,29 +834,38 @@
 		camss->csid_num = 4;
 		camss->vfe_num = 2;
 	} else {
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_free;
 	}
 
 	camss->csiphy = devm_kcalloc(dev, camss->csiphy_num,
 				     sizeof(*camss->csiphy), GFP_KERNEL);
-	if (!camss->csiphy)
-		return -ENOMEM;
+	if (!camss->csiphy) {
+		ret = -ENOMEM;
+		goto err_free;
+	}
 
 	camss->csid = devm_kcalloc(dev, camss->csid_num, sizeof(*camss->csid),
 				   GFP_KERNEL);
-	if (!camss->csid)
-		return -ENOMEM;
+	if (!camss->csid) {
+		ret = -ENOMEM;
+		goto err_free;
+	}
 
 	camss->vfe = devm_kcalloc(dev, camss->vfe_num, sizeof(*camss->vfe),
 				  GFP_KERNEL);
-	if (!camss->vfe)
-		return -ENOMEM;
+	if (!camss->vfe) {
+		ret = -ENOMEM;
+		goto err_free;
+	}
 
 	v4l2_async_notifier_init(&camss->notifier);
 
 	num_subdevs = camss_of_parse_ports(camss);
-	if (num_subdevs < 0)
-		return num_subdevs;
+	if (num_subdevs < 0) {
+		ret = num_subdevs;
+		goto err_cleanup;
+	}
 
 	ret = camss_init_subdevices(camss);
 	if (ret < 0)
@@ -936,6 +944,8 @@
 	v4l2_device_unregister(&camss->v4l2_dev);
 err_cleanup:
 	v4l2_async_notifier_cleanup(&camss->notifier);
+err_free:
+	kfree(camss);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/venus/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/venus/core.c
@@ -316,8 +316,10 @@
 		goto err_core_deinit;
 
 	ret = pm_runtime_put_sync(dev);
-	if (ret)
+	if (ret) {
+		pm_runtime_get_noresume(dev);
 		goto err_dev_unregister;
+	}
 
 	return 0;
 
@@ -328,6 +330,7 @@
 err_venus_shutdown:
 	venus_shutdown(core);
 err_runtime_disable:
+	pm_runtime_put_noidle(dev);
 	pm_runtime_set_suspended(dev);
 	pm_runtime_disable(dev);
 	hfi_destroy(core);
@@ -427,10 +430,11 @@
 };
 
 static const struct freq_tbl msm8996_freq_table[] = {
-	{ 1944000, 490000000 },	/* 4k UHD @ 60 */
-	{  972000, 320000000 },	/* 4k UHD @ 30 */
-	{  489600, 150000000 },	/* 1080p @ 60 */
-	{  244800,  75000000 },	/* 1080p @ 30 */
+	{ 1944000, 520000000 },	/* 4k UHD @ 60 (decode only) */
+	{  972000, 520000000 },	/* 4k UHD @ 30 */
+	{  489600, 346666667 },	/* 1080p @ 60 */
+	{  244800, 150000000 },	/* 1080p @ 30 */
+	{  108000,  75000000 },	/* 720p @ 30 */
 };
 
 static const struct reg_val msm8996_reg_preset[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/venus/firmware.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/venus/firmware.c
@@ -44,8 +44,14 @@
 
 int venus_set_hw_state(struct venus_core *core, bool resume)
 {
-	if (core->use_tz)
-		return qcom_scm_set_remote_state(resume, 0);
+	int ret;
+
+	if (core->use_tz) {
+		ret = qcom_scm_set_remote_state(resume, 0);
+		if (resume && ret == -EINVAL)
+			ret = 0;
+		return ret;
+	}
 
 	if (resume)
 		venus_reset_cpu(core);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/venus/hfi_parser.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/venus/hfi_parser.c
@@ -181,6 +181,7 @@
 	if (IS_V1(core)) {
 		core->dec_codecs &= ~HFI_VIDEO_CODEC_HEVC;
 		core->dec_codecs &= ~HFI_VIDEO_CODEC_SPARK;
+		core->enc_codecs &= ~HFI_VIDEO_CODEC_HEVC;
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/venus/hfi_venus.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/venus/hfi_venus.c
@@ -1472,6 +1472,7 @@
 {
 	struct venus_hfi_device *hdev = to_hfi_priv(core);
 	struct device *dev = core->dev;
+	u32 ctrl_status;
 	bool val;
 	int ret;
 
@@ -1487,6 +1488,10 @@
 		return -EINVAL;
 	}
 
+	ctrl_status = venus_readl(hdev, CPU_CS_SCIACMDARG0);
+	if (ctrl_status & CPU_CS_SCIACMDARG0_PC_READY)
+		goto power_off;
+
 	/*
 	 * Power collapse sequence for Venus 3xx and 4xx versions:
 	 * 1. Check for ARM9 and video core to be idle by checking WFI bit
@@ -1511,6 +1516,7 @@
 	if (ret)
 		return ret;
 
+power_off:
 	mutex_lock(&hdev->lock);
 
 	ret = venus_power_off(hdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/venus/vdec.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/venus/vdec.c
@@ -987,11 +987,10 @@
 		ret = hfi_session_flush(inst, HFI_FLUSH_OUTPUT);
 		vdec_cancel_dst_buffers(inst);
 		inst->codec_state = VENUS_DEC_STATE_CAPTURE_SETUP;
-		INIT_LIST_HEAD(&inst->registeredbufs);
 		venus_helper_free_dpb_bufs(inst);
 		break;
 	default:
-		return 0;
+		break;
 	}
 
 	return ret;
@@ -1090,6 +1089,14 @@
 static void vdec_buf_cleanup(struct vb2_buffer *vb)
 {
 	struct venus_inst *inst = vb2_get_drv_priv(vb->vb2_queue);
+	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+	struct venus_buffer *buf = to_venus_buffer(vbuf);
+
+	mutex_lock(&inst->lock);
+	if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
+		if (!list_empty(&inst->registeredbufs))
+			list_del_init(&buf->reg_list);
+	mutex_unlock(&inst->lock);
 
 	inst->buf_count--;
 	if (!inst->buf_count)
@@ -1412,9 +1419,6 @@
 	.unlocked_ioctl = video_ioctl2,
 	.poll = v4l2_m2m_fop_poll,
 	.mmap = v4l2_m2m_fop_mmap,
-#ifdef CONFIG_COMPAT
-	.compat_ioctl32 = v4l2_compat_ioctl32,
-#endif
 };
 
 static int vdec_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/qcom/venus/venc.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/qcom/venus/venc.c
@@ -1235,9 +1235,6 @@
 	.unlocked_ioctl = video_ioctl2,
 	.poll = v4l2_m2m_fop_poll,
 	.mmap = v4l2_m2m_fop_mmap,
-#ifdef CONFIG_COMPAT
-	.compat_ioctl32 = v4l2_compat_ioctl32,
-#endif
 };
 
 static int venc_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rcar-fcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rcar-fcp.c
@@ -8,6 +8,7 @@
  */
 
 #include <linux/device.h>
+#include <linux/dma-mapping.h>
 #include <linux/list.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
@@ -21,6 +22,7 @@
 struct rcar_fcp_device {
 	struct list_head list;
 	struct device *dev;
+	struct device_dma_parameters dma_parms;
 };
 
 static LIST_HEAD(fcp_devices);
@@ -101,8 +103,10 @@
 		return 0;
 
 	ret = pm_runtime_get_sync(fcp->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(fcp->dev);
 		return ret;
+	}
 
 	return 0;
 }
@@ -136,6 +140,9 @@
 
 	fcp->dev = &pdev->dev;
 
+	fcp->dev->dma_parms = &fcp->dma_parms;
+	dma_set_max_seg_size(fcp->dev, DMA_BIT_MASK(32));
+
 	pm_runtime_enable(&pdev->dev);
 
 	mutex_lock(&fcp_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -361,7 +361,6 @@
 	struct media_pad pads[NR_OF_RCAR_CSI2_PAD];
 
 	struct v4l2_async_notifier notifier;
-	struct v4l2_async_subdev asd;
 	struct v4l2_subdev *remote;
 
 	struct v4l2_mbus_framefmt mf;
@@ -810,6 +809,8 @@
 
 static int rcsi2_parse_dt(struct rcar_csi2 *priv)
 {
+	struct v4l2_async_subdev *asd;
+	struct fwnode_handle *fwnode;
 	struct device_node *ep;
 	struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 };
 	int ret;
@@ -833,24 +834,19 @@
 		return ret;
 	}
 
-	priv->asd.match.fwnode =
-		fwnode_graph_get_remote_endpoint(of_fwnode_handle(ep));
-	priv->asd.match_type = V4L2_ASYNC_MATCH_FWNODE;
-
+	fwnode = fwnode_graph_get_remote_endpoint(of_fwnode_handle(ep));
 	of_node_put(ep);
 
-	v4l2_async_notifier_init(&priv->notifier);
-
-	ret = v4l2_async_notifier_add_subdev(&priv->notifier, &priv->asd);
-	if (ret) {
-		fwnode_handle_put(priv->asd.match.fwnode);
-		return ret;
-	}
+	dev_dbg(priv->dev, "Found '%pOF'\n", to_of_node(fwnode));
 
+	v4l2_async_notifier_init(&priv->notifier);
 	priv->notifier.ops = &rcar_csi2_notify_ops;
 
-	dev_dbg(priv->dev, "Found '%pOF'\n",
-		to_of_node(priv->asd.match.fwnode));
+	asd = v4l2_async_notifier_add_fwnode_subdev(&priv->notifier, fwnode,
+						    sizeof(*asd));
+	fwnode_handle_put(fwnode);
+	if (IS_ERR(asd))
+		return PTR_ERR(asd);
 
 	ret = v4l2_async_subdev_notifier_register(&priv->subdev,
 						  &priv->notifier);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rcar-vin/rcar-dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -1334,8 +1334,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(vin->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(vin->dev);
 		return ret;
+	}
 
 	/* Make register writes take effect immediately. */
 	vnmc = rvin_read(vin, VNMC_REG);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -208,6 +208,7 @@
 	ret = v4l2_subdev_call(sd, pad, set_fmt, pad_cfg, &format);
 	if (ret < 0 && ret != -ENOIOCTLCMD)
 		goto done;
+	ret = 0;
 
 	v4l2_fill_pix_format(pix, &format.format);
 
@@ -242,7 +243,7 @@
 done:
 	v4l2_subdev_free_pad_config(pad_cfg);
 
-	return 0;
+	return ret;
 }
 
 static int rvin_querycap(struct file *file, void *priv,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rcar_drif.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rcar_drif.c
@@ -185,7 +185,6 @@
 /* OF graph endpoint's V4L2 async data */
 struct rcar_drif_graph_ep {
 	struct v4l2_subdev *subdev;	/* Async matched subdev */
-	struct v4l2_async_subdev asd;	/* Async sub-device descriptor */
 };
 
 /* DMA buffer */
@@ -912,6 +911,7 @@
 {
 	struct rcar_drif_sdr *sdr = video_drvdata(file);
 
+	memset(f->fmt.sdr.reserved, 0, sizeof(f->fmt.sdr.reserved));
 	f->fmt.sdr.pixelformat = sdr->fmt->pixelformat;
 	f->fmt.sdr.buffersize = sdr->fmt->buffersize;
 
@@ -1104,12 +1104,6 @@
 	struct rcar_drif_sdr *sdr =
 		container_of(notifier, struct rcar_drif_sdr, notifier);
 
-	if (sdr->ep.asd.match.fwnode !=
-	    of_fwnode_handle(subdev->dev->of_node)) {
-		rdrif_err(sdr, "subdev %s cannot bind\n", subdev->name);
-		return -EINVAL;
-	}
-
 	v4l2_set_subdev_hostdata(subdev, sdr);
 	sdr->ep.subdev = subdev;
 	rdrif_dbg(sdr, "bound asd %s\n", subdev->name);
@@ -1213,7 +1207,7 @@
 {
 	struct v4l2_async_notifier *notifier = &sdr->notifier;
 	struct fwnode_handle *fwnode, *ep;
-	int ret;
+	struct v4l2_async_subdev *asd;
 
 	v4l2_async_notifier_init(notifier);
 
@@ -1222,26 +1216,21 @@
 	if (!ep)
 		return 0;
 
+	/* Get the endpoint properties */
+	rcar_drif_get_ep_properties(sdr, ep);
+
 	fwnode = fwnode_graph_get_remote_port_parent(ep);
+	fwnode_handle_put(ep);
 	if (!fwnode) {
 		dev_warn(sdr->dev, "bad remote port parent\n");
-		fwnode_handle_put(ep);
 		return -EINVAL;
 	}
 
-	sdr->ep.asd.match.fwnode = fwnode;
-	sdr->ep.asd.match_type = V4L2_ASYNC_MATCH_FWNODE;
-	ret = v4l2_async_notifier_add_subdev(notifier, &sdr->ep.asd);
-	if (ret) {
-		fwnode_handle_put(fwnode);
-		return ret;
-	}
-
-	/* Get the endpoint properties */
-	rcar_drif_get_ep_properties(sdr, ep);
-
+	asd = v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode,
+						    sizeof(*asd));
 	fwnode_handle_put(fwnode);
-	fwnode_handle_put(ep);
+	if (IS_ERR(asd))
+		return PTR_ERR(asd);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rcar_fdp1.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rcar_fdp1.c
@@ -2369,7 +2369,7 @@
 		dprintk(fdp1, "FDP1 Version R-Car H3\n");
 		break;
 	case FD1_IP_M3N:
-		dprintk(fdp1, "FDP1 Version R-Car M3N\n");
+		dprintk(fdp1, "FDP1 Version R-Car M3-N\n");
 		break;
 	case FD1_IP_E3:
 		dprintk(fdp1, "FDP1 Version R-Car E3\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rockchip/rga/rga-buf.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rockchip/rga/rga-buf.c
@@ -81,6 +81,7 @@
 
 	ret = pm_runtime_get_sync(rga->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(rga->dev);
 		rga_buf_return_buffers(q, VB2_BUF_STATE_QUEUED);
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rockchip/rga/rga-hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rockchip/rga/rga-hw.c
@@ -200,22 +200,25 @@
 	dst_info.data.format = ctx->out.fmt->hw_format;
 	dst_info.data.swap = ctx->out.fmt->color_swap;
 
-	if (ctx->in.fmt->hw_format >= RGA_COLOR_FMT_YUV422SP) {
-		if (ctx->out.fmt->hw_format < RGA_COLOR_FMT_YUV422SP) {
-			switch (ctx->in.colorspace) {
-			case V4L2_COLORSPACE_REC709:
-				src_info.data.csc_mode =
-					RGA_SRC_CSC_MODE_BT709_R0;
-				break;
-			default:
-				src_info.data.csc_mode =
-					RGA_SRC_CSC_MODE_BT601_R0;
-				break;
-			}
+	/*
+	 * CSC mode must only be set when the colorspace families differ between
+	 * input and output. It must remain unset (zeroed) if both are the same.
+	 */
+
+	if (RGA_COLOR_FMT_IS_YUV(ctx->in.fmt->hw_format) &&
+	    RGA_COLOR_FMT_IS_RGB(ctx->out.fmt->hw_format)) {
+		switch (ctx->in.colorspace) {
+		case V4L2_COLORSPACE_REC709:
+			src_info.data.csc_mode = RGA_SRC_CSC_MODE_BT709_R0;
+			break;
+		default:
+			src_info.data.csc_mode = RGA_SRC_CSC_MODE_BT601_R0;
+			break;
 		}
 	}
 
-	if (ctx->out.fmt->hw_format >= RGA_COLOR_FMT_YUV422SP) {
+	if (RGA_COLOR_FMT_IS_RGB(ctx->in.fmt->hw_format) &&
+	    RGA_COLOR_FMT_IS_YUV(ctx->out.fmt->hw_format)) {
 		switch (ctx->out.colorspace) {
 		case V4L2_COLORSPACE_REC709:
 			dst_info.data.csc_mode = RGA_SRC_CSC_MODE_BT709_R0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/rockchip/rga/rga-hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/rockchip/rga/rga-hw.h
@@ -95,6 +95,11 @@
 #define RGA_COLOR_FMT_CP_8BPP 15
 #define RGA_COLOR_FMT_MASK 15
 
+#define RGA_COLOR_FMT_IS_YUV(fmt) \
+	(((fmt) >= RGA_COLOR_FMT_YUV422SP) && ((fmt) < RGA_COLOR_FMT_CP_1BPP))
+#define RGA_COLOR_FMT_IS_RGB(fmt) \
+	((fmt) < RGA_COLOR_FMT_YUV422SP)
+
 #define RGA_COLOR_NONE_SWAP 0
 #define RGA_COLOR_RB_SWAP 1
 #define RGA_COLOR_ALPHA_SWAP 2
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/s3c-camif/camif-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/s3c-camif/camif-core.c
@@ -464,7 +464,7 @@
 
 	ret = camif_media_dev_init(camif);
 	if (ret < 0)
-		goto err_alloc;
+		goto err_pm;
 
 	ret = camif_register_sensor(camif);
 	if (ret < 0)
@@ -498,10 +498,9 @@
 	media_device_unregister(&camif->media_dev);
 	media_device_cleanup(&camif->media_dev);
 	camif_unregister_media_entities(camif);
-err_alloc:
+err_pm:
 	pm_runtime_put(dev);
 	pm_runtime_disable(dev);
-err_pm:
 	camif_clk_put(camif);
 err_clk:
 	s3c_camif_unregister_subdev(camif);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c
@@ -79,8 +79,10 @@
 	int i, ret = 0;
 
 	ret = pm_runtime_get_sync(pm->device);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(pm->device);
 		return ret;
+	}
 
 	/* clock control */
 	for (i = 0; i < pm->num_clocks; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/seco-cec/seco-cec.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/seco-cec/seco-cec.c
@@ -675,6 +675,7 @@
 err_delete_adapter:
 	cec_delete_adapter(secocec->cec_adap);
 err:
+	release_region(BRA_SMB_BASE_ADDR, 7);
 	dev_err(dev, "%s device probe failed\n", dev_name(dev));
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sti/bdisp/bdisp-hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sti/bdisp/bdisp-hw.c
@@ -14,8 +14,8 @@
 #define MAX_SRC_WIDTH           2048
 
 /* Reset & boot poll config */
-#define POLL_RST_MAX            50
-#define POLL_RST_DELAY_MS       20
+#define POLL_RST_MAX            500
+#define POLL_RST_DELAY_MS       2
 
 enum bdisp_target_plan {
 	BDISP_RGB,
@@ -382,7 +382,7 @@
 	for (i = 0; i < POLL_RST_MAX; i++) {
 		if (readl(bdisp->regs + BLT_STA1) & BLT_STA1_IDLE)
 			break;
-		msleep(POLL_RST_DELAY_MS);
+		udelay(POLL_RST_DELAY_MS * 1000);
 	}
 	if (i == POLL_RST_MAX)
 		dev_err(bdisp->dev, "Reset timeout\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sti/bdisp/bdisp-v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sti/bdisp/bdisp-v4l2.c
@@ -651,8 +651,7 @@
 
 	dev_dbg(bdisp->dev, "%s\n", __func__);
 
-	if (mutex_lock_interruptible(&bdisp->lock))
-		return -ERESTARTSYS;
+	mutex_lock(&bdisp->lock);
 
 	v4l2_m2m_ctx_release(ctx->fh.m2m_ctx);
 
@@ -1368,7 +1367,7 @@
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
 		dev_err(dev, "failed to set PM\n");
-		goto err_dbg;
+		goto err_pm;
 	}
 
 	/* Filters */
@@ -1396,7 +1395,6 @@
 	bdisp_hw_free_filters(bdisp->dev);
 err_pm:
 	pm_runtime_put(dev);
-err_dbg:
 	bdisp_debugfs_remove(bdisp);
 err_v4l2:
 	v4l2_device_unregister(&bdisp->v4l2_dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sti/delta/delta-v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sti/delta/delta-v4l2.c
@@ -954,8 +954,10 @@
 	/* enable the hardware */
 	if (!dec->pm) {
 		ret = delta_get_sync(ctx);
-		if (ret)
+		if (ret) {
+			delta_put_autosuspend(ctx);
 			goto err;
+		}
 	}
 
 	/* decode this access unit */
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sti/hva/hva-hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sti/hva/hva-hw.c
@@ -272,6 +272,7 @@
 
 	if (pm_runtime_get_sync(dev) < 0) {
 		dev_err(dev, "%s     failed to get pm_runtime\n", HVA_PREFIX);
+		pm_runtime_put_noidle(dev);
 		mutex_unlock(&hva->protect_mutex);
 		return -EFAULT;
 	}
@@ -388,7 +389,7 @@
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
 		dev_err(dev, "%s     failed to set PM\n", HVA_PREFIX);
-		goto err_clk;
+		goto err_pm;
 	}
 
 	/* check IP hardware version */
@@ -553,6 +554,7 @@
 
 	if (pm_runtime_get_sync(dev) < 0) {
 		seq_puts(s, "Cannot wake up IP\n");
+		pm_runtime_put_noidle(dev);
 		mutex_unlock(&hva->protect_mutex);
 		return;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/stm32/stm32-dcmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/stm32/stm32-dcmi.c
@@ -733,7 +733,7 @@
 	if (ret < 0) {
 		dev_err(dcmi->dev, "%s: Failed to start streaming, cannot get sync (%d)\n",
 			__func__, ret);
-		goto err_release_buffers;
+		goto err_pm_put;
 	}
 
 	ret = media_pipeline_start(&dcmi->vdev->entity, &dcmi->pipeline);
@@ -837,8 +837,6 @@
 
 err_pm_put:
 	pm_runtime_put(dcmi->dev);
-
-err_release_buffers:
 	spin_lock_irq(&dcmi->irqlock);
 	/*
 	 * Return all buffers to vb2 in QUEUED state.
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/of_graph.h>
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
@@ -155,6 +156,27 @@
 	subdev = &csi->subdev;
 	vdev = &csi->vdev;
 
+	/*
+	 * On Allwinner SoCs, some high memory bandwidth devices do DMA
+	 * directly over the memory bus (called MBUS), instead of the
+	 * system bus. The memory bus has a different addressing scheme
+	 * without the DRAM starting offset.
+	 *
+	 * In some cases this can be described by an interconnect in
+	 * the device tree. In other cases where the hardware is not
+	 * fully understood and the interconnect is left out of the
+	 * device tree, fall back to a default offset.
+	 */
+	if (of_find_property(csi->dev->of_node, "interconnects", NULL)) {
+		ret = of_dma_configure(csi->dev, csi->dev->of_node, true);
+		if (ret)
+			return ret;
+	} else {
+#ifdef PHYS_PFN_OFFSET
+		csi->dev->dma_pfn_offset = PHYS_PFN_OFFSET;
+#endif
+	}
+
 	csi->mdev.dev = csi->dev;
 	strscpy(csi->mdev.model, "Allwinner Video Capture Device",
 		sizeof(csi->mdev.model));
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.h
@@ -22,8 +22,8 @@
 #define CSI_CFG_INPUT_FMT(fmt)			((fmt) << 20)
 #define CSI_CFG_OUTPUT_FMT(fmt)			((fmt) << 16)
 #define CSI_CFG_YUV_DATA_SEQ(seq)		((seq) << 8)
-#define CSI_CFG_VSYNC_POL(pol)			((pol) << 2)
-#define CSI_CFG_HSYNC_POL(pol)			((pol) << 1)
+#define CSI_CFG_VREF_POL(pol)			((pol) << 2)
+#define CSI_CFG_HREF_POL(pol)			((pol) << 1)
 #define CSI_CFG_PCLK_POL(pol)			((pol) << 0)
 
 #define CSI_CPT_CTRL_REG		0x08
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c
@@ -228,7 +228,7 @@
 	struct sun4i_csi *csi = vb2_get_drv_priv(vq);
 	struct v4l2_fwnode_bus_parallel *bus = &csi->bus;
 	const struct sun4i_csi_format *csi_fmt;
-	unsigned long hsync_pol, pclk_pol, vsync_pol;
+	unsigned long href_pol, pclk_pol, vref_pol;
 	unsigned long flags;
 	unsigned int i;
 	int ret;
@@ -278,13 +278,21 @@
 	writel(CSI_WIN_CTRL_H_ACTIVE(csi->fmt.height),
 	       csi->regs + CSI_WIN_CTRL_H_REG);
 
-	hsync_pol = !!(bus->flags & V4L2_MBUS_HSYNC_ACTIVE_HIGH);
-	pclk_pol = !!(bus->flags & V4L2_MBUS_DATA_ACTIVE_HIGH);
-	vsync_pol = !!(bus->flags & V4L2_MBUS_VSYNC_ACTIVE_HIGH);
+	/*
+	 * This hardware uses [HV]REF instead of [HV]SYNC. Based on the
+	 * provided timing diagrams in the manual, positive polarity
+	 * equals active high [HV]REF.
+	 *
+	 * When the back porch is 0, [HV]REF is more or less equivalent
+	 * to [HV]SYNC inverted.
+	 */
+	href_pol = !!(bus->flags & V4L2_MBUS_HSYNC_ACTIVE_LOW);
+	vref_pol = !!(bus->flags & V4L2_MBUS_VSYNC_ACTIVE_LOW);
+	pclk_pol = !!(bus->flags & V4L2_MBUS_PCLK_SAMPLE_RISING);
 	writel(CSI_CFG_INPUT_FMT(csi_fmt->input) |
 	       CSI_CFG_OUTPUT_FMT(csi_fmt->output) |
-	       CSI_CFG_VSYNC_POL(vsync_pol) |
-	       CSI_CFG_HSYNC_POL(hsync_pol) |
+	       CSI_CFG_VREF_POL(vref_pol) |
+	       CSI_CFG_HREF_POL(href_pol) |
 	       CSI_CFG_PCLK_POL(pclk_pol),
 	       csi->regs + CSI_CFG_REG);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/ti-vpe/cal.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/ti-vpe/cal.c
@@ -266,8 +266,6 @@
 	struct v4l2_subdev	*sensor;
 	struct v4l2_fwnode_endpoint	endpoint;
 
-	struct v4l2_async_subdev asd;
-
 	struct v4l2_fh		fh;
 	struct cal_dev		*dev;
 	struct cc_data		*cc;
@@ -537,16 +535,16 @@
 
 static void disable_irqs(struct cal_ctx *ctx)
 {
+	u32 val;
+
 	/* Disable IRQ_WDMA_END 0/1 */
-	reg_write_field(ctx->dev,
-			CAL_HL_IRQENABLE_CLR(2),
-			CAL_HL_IRQ_CLEAR,
-			CAL_HL_IRQ_MASK(ctx->csi2_port));
+	val = 0;
+	set_field(&val, CAL_HL_IRQ_CLEAR, CAL_HL_IRQ_MASK(ctx->csi2_port));
+	reg_write(ctx->dev, CAL_HL_IRQENABLE_CLR(2), val);
 	/* Disable IRQ_WDMA_START 0/1 */
-	reg_write_field(ctx->dev,
-			CAL_HL_IRQENABLE_CLR(3),
-			CAL_HL_IRQ_CLEAR,
-			CAL_HL_IRQ_MASK(ctx->csi2_port));
+	val = 0;
+	set_field(&val, CAL_HL_IRQ_CLEAR, CAL_HL_IRQ_MASK(ctx->csi2_port));
+	reg_write(ctx->dev, CAL_HL_IRQENABLE_CLR(3), val);
 	/* Todo: Add VC_IRQ and CSI2_COMPLEXIO_IRQ handling */
 	reg_write(ctx->dev, CAL_CSI2_VC_IRQENABLE(1), 0);
 }
@@ -680,12 +678,13 @@
 }
 
 static void cal_wr_dma_config(struct cal_ctx *ctx,
-			      unsigned int width)
+			      unsigned int width, unsigned int height)
 {
 	u32 val;
 
 	val = reg_read(ctx->dev, CAL_WR_DMA_CTRL(ctx->csi2_port));
 	set_field(&val, ctx->csi2_port, CAL_WR_DMA_CTRL_CPORT_MASK);
+	set_field(&val, height, CAL_WR_DMA_CTRL_YSIZE_MASK);
 	set_field(&val, CAL_WR_DMA_CTRL_DTAG_PIX_DAT,
 		  CAL_WR_DMA_CTRL_DTAG_MASK);
 	set_field(&val, CAL_WR_DMA_CTRL_MODE_CONST,
@@ -1308,7 +1307,8 @@
 	csi2_lane_config(ctx);
 	csi2_ctx_config(ctx);
 	pix_proc_config(ctx);
-	cal_wr_dma_config(ctx, ctx->v_fmt.fmt.pix.bytesperline);
+	cal_wr_dma_config(ctx, ctx->v_fmt.fmt.pix.bytesperline,
+			  ctx->v_fmt.fmt.pix.height);
 	cal_wr_dma_addr(ctx, addr);
 	csi2_ppi_enable(ctx);
 
@@ -1648,7 +1648,6 @@
 
 	parent = pdev->dev.of_node;
 
-	asd = &ctx->asd;
 	endpoint = &ctx->endpoint;
 
 	ep_node = NULL;
@@ -1695,8 +1694,6 @@
 		ctx_dbg(3, ctx, "can't get remote parent\n");
 		goto cleanup_exit;
 	}
-	asd->match_type = V4L2_ASYNC_MATCH_FWNODE;
-	asd->match.fwnode = of_fwnode_handle(sensor_node);
 
 	v4l2_fwnode_endpoint_parse(of_fwnode_handle(ep_node), endpoint);
 
@@ -1726,9 +1723,17 @@
 
 	v4l2_async_notifier_init(&ctx->notifier);
 
+	asd = kzalloc(sizeof(*asd), GFP_KERNEL);
+	if (!asd)
+		goto cleanup_exit;
+
+	asd->match_type = V4L2_ASYNC_MATCH_FWNODE;
+	asd->match.fwnode = of_fwnode_handle(sensor_node);
+
 	ret = v4l2_async_notifier_add_subdev(&ctx->notifier, asd);
 	if (ret) {
 		ctx_err(ctx, "Error adding asd\n");
+		kfree(asd);
 		goto cleanup_exit;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/ti-vpe/vpdma.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/ti-vpe/vpdma.h
@@ -57,6 +57,7 @@
 						 * line stride of source and dest
 						 * buffers should be 16 byte aligned
 						 */
+#define VPDMA_MAX_STRIDE		65520	/* Max line stride 16 byte aligned */
 #define VPDMA_DTD_DESC_SIZE		32	/* 8 words */
 #define VPDMA_CFD_CTD_DESC_SIZE		16	/* 4 words */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/ti-vpe/vpe.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/ti-vpe/vpe.c
@@ -338,20 +338,25 @@
 };
 
 /* find our format description corresponding to the passed v4l2_format */
-static struct vpe_fmt *find_format(struct v4l2_format *f)
+static struct vpe_fmt *__find_format(u32 fourcc)
 {
 	struct vpe_fmt *fmt;
 	unsigned int k;
 
 	for (k = 0; k < ARRAY_SIZE(vpe_formats); k++) {
 		fmt = &vpe_formats[k];
-		if (fmt->fourcc == f->fmt.pix.pixelformat)
+		if (fmt->fourcc == fourcc)
 			return fmt;
 	}
 
 	return NULL;
 }
 
+static struct vpe_fmt *find_format(struct v4l2_format *f)
+{
+	return __find_format(f->fmt.pix.pixelformat);
+}
+
 /*
  * there is one vpe_dev structure in the driver, it is shared by
  * all instances.
@@ -1013,11 +1018,14 @@
 	dma_addr_t dma_addr;
 	u32 flags = 0;
 	u32 offset = 0;
+	u32 stride;
 
 	if (port == VPE_PORT_MV_OUT) {
 		vpdma_fmt = &vpdma_misc_fmts[VPDMA_DATA_FMT_MV];
 		dma_addr = ctx->mv_buf_dma[mv_buf_selector];
 		q_data = &ctx->q_data[Q_DATA_SRC];
+		stride = ALIGN((q_data->width * vpdma_fmt->depth) >> 3,
+			       VPDMA_STRIDE_ALIGN);
 	} else {
 		/* to incorporate interleaved formats */
 		int plane = fmt->coplanar ? p_data->vb_part : 0;
@@ -1044,6 +1052,7 @@
 		}
 		/* Apply the offset */
 		dma_addr += offset;
+		stride = q_data->bytesperline[VPE_LUMA];
 	}
 
 	if (q_data->flags & Q_DATA_FRAME_1D)
@@ -1055,7 +1064,7 @@
 			   MAX_W, MAX_H);
 
 	vpdma_add_out_dtd(&ctx->desc_list, q_data->width,
-			  q_data->bytesperline[VPE_LUMA], &q_data->c_rect,
+			  stride, &q_data->c_rect,
 			  vpdma_fmt, dma_addr, MAX_OUT_WIDTH_REG1,
 			  MAX_OUT_HEIGHT_REG1, p_data->channel, flags);
 }
@@ -1074,10 +1083,13 @@
 	dma_addr_t dma_addr;
 	u32 flags = 0;
 	u32 offset = 0;
+	u32 stride;
 
 	if (port == VPE_PORT_MV_IN) {
 		vpdma_fmt = &vpdma_misc_fmts[VPDMA_DATA_FMT_MV];
 		dma_addr = ctx->mv_buf_dma[mv_buf_selector];
+		stride = ALIGN((q_data->width * vpdma_fmt->depth) >> 3,
+			       VPDMA_STRIDE_ALIGN);
 	} else {
 		/* to incorporate interleaved formats */
 		int plane = fmt->coplanar ? p_data->vb_part : 0;
@@ -1104,6 +1116,7 @@
 		}
 		/* Apply the offset */
 		dma_addr += offset;
+		stride = q_data->bytesperline[VPE_LUMA];
 
 		if (q_data->flags & Q_DATA_INTERLACED_SEQ_TB) {
 			/*
@@ -1139,10 +1152,10 @@
 	if (p_data->vb_part && fmt->fourcc == V4L2_PIX_FMT_NV12)
 		frame_height /= 2;
 
-	vpdma_add_in_dtd(&ctx->desc_list, q_data->width,
-			 q_data->bytesperline[VPE_LUMA], &q_data->c_rect,
-		vpdma_fmt, dma_addr, p_data->channel, field, flags, frame_width,
-		frame_height, 0, 0);
+	vpdma_add_in_dtd(&ctx->desc_list, q_data->width, stride,
+			 &q_data->c_rect, vpdma_fmt, dma_addr,
+			 p_data->channel, field, flags, frame_width,
+			 frame_height, 0, 0);
 }
 
 /*
@@ -1391,9 +1404,6 @@
 	 /* the previous dst mv buffer becomes the next src mv buffer */
 	ctx->src_mv_buf_selector = !ctx->src_mv_buf_selector;
 
-	if (ctx->aborting)
-		goto finished;
-
 	s_vb = ctx->src_vbs[0];
 	d_vb = ctx->dst_vb;
 
@@ -1404,6 +1414,7 @@
 		d_vb->timecode = s_vb->timecode;
 
 	d_vb->sequence = ctx->sequence;
+	s_vb->sequence = ctx->sequence;
 
 	d_q_data = &ctx->q_data[Q_DATA_DST];
 	if (d_q_data->flags & Q_IS_INTERLACED) {
@@ -1457,6 +1468,9 @@
 	ctx->src_vbs[0] = NULL;
 	ctx->dst_vb = NULL;
 
+	if (ctx->aborting)
+		goto finished;
+
 	ctx->bufs_completed++;
 	if (ctx->bufs_completed < ctx->bufs_per_job && job_ready(ctx)) {
 		device_run(ctx);
@@ -1566,9 +1580,9 @@
 	unsigned int stride = 0;
 
 	if (!fmt || !(fmt->types & type)) {
-		vpe_err(ctx->dev, "Fourcc format (0x%08x) invalid.\n",
+		vpe_dbg(ctx->dev, "Fourcc format (0x%08x) invalid.\n",
 			pix->pixelformat);
-		return -EINVAL;
+		fmt = __find_format(V4L2_PIX_FMT_YUYV);
 	}
 
 	if (pix->field != V4L2_FIELD_NONE && pix->field != V4L2_FIELD_ALTERNATE
@@ -1615,7 +1629,7 @@
 			      &pix->height, MIN_H, MAX_H, H_ALIGN,
 			      S_ALIGN);
 
-	if (!pix->num_planes)
+	if (!pix->num_planes || pix->num_planes > 2)
 		pix->num_planes = fmt->coplanar ? 2 : 1;
 	else if (pix->num_planes > 1 && !fmt->coplanar)
 		pix->num_planes = 1;
@@ -1654,6 +1668,10 @@
 		if (stride > plane_fmt->bytesperline)
 			plane_fmt->bytesperline = stride;
 
+		plane_fmt->bytesperline = clamp_t(u32, plane_fmt->bytesperline,
+						  stride,
+						  VPDMA_MAX_STRIDE);
+
 		plane_fmt->bytesperline = ALIGN(plane_fmt->bytesperline,
 						VPDMA_STRIDE_ALIGN);
 
@@ -2274,7 +2292,7 @@
 	v4l2_ctrl_handler_setup(hdl);
 
 	s_q_data = &ctx->q_data[Q_DATA_SRC];
-	s_q_data->fmt = &vpe_formats[2];
+	s_q_data->fmt = __find_format(V4L2_PIX_FMT_YUYV);
 	s_q_data->width = 1920;
 	s_q_data->height = 1080;
 	s_q_data->nplanes = 1;
@@ -2352,6 +2370,12 @@
 
 	mutex_lock(&dev->dev_mutex);
 	free_mv_buffers(ctx);
+
+	vpdma_unmap_desc_buf(dev->vpdma, &ctx->desc_list.buf);
+	vpdma_unmap_desc_buf(dev->vpdma, &ctx->mmr_adb);
+	vpdma_unmap_desc_buf(dev->vpdma, &ctx->sc_coeff_h);
+	vpdma_unmap_desc_buf(dev->vpdma, &ctx->sc_coeff_v);
+
 	vpdma_free_desc_list(&ctx->desc_list);
 	vpdma_free_desc_buf(&ctx->mmr_adb);
 
@@ -2411,6 +2435,8 @@
 
 	r = pm_runtime_get_sync(&pdev->dev);
 	WARN_ON(r < 0);
+	if (r)
+		pm_runtime_put_noidle(&pdev->dev);
 	return r < 0 ? r : 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vicodec/codec-v4l2-fwht.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vicodec/codec-v4l2-fwht.c
@@ -27,17 +27,17 @@
 	{ V4L2_PIX_FMT_BGR24,   3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
 	{ V4L2_PIX_FMT_RGB24,   3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
 	{ V4L2_PIX_FMT_HSV24,   3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV},
-	{ V4L2_PIX_FMT_BGR32,   4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
-	{ V4L2_PIX_FMT_XBGR32,  4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
+	{ V4L2_PIX_FMT_BGR32,   4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
+	{ V4L2_PIX_FMT_XBGR32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
 	{ V4L2_PIX_FMT_ABGR32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
-	{ V4L2_PIX_FMT_RGB32,   4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
-	{ V4L2_PIX_FMT_XRGB32,  4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
+	{ V4L2_PIX_FMT_RGB32,   4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
+	{ V4L2_PIX_FMT_XRGB32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
 	{ V4L2_PIX_FMT_ARGB32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
-	{ V4L2_PIX_FMT_BGRX32,  4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
+	{ V4L2_PIX_FMT_BGRX32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
 	{ V4L2_PIX_FMT_BGRA32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
-	{ V4L2_PIX_FMT_RGBX32,  4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB},
+	{ V4L2_PIX_FMT_RGBX32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
 	{ V4L2_PIX_FMT_RGBA32,  4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB},
-	{ V4L2_PIX_FMT_HSV32,   4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV},
+	{ V4L2_PIX_FMT_HSV32,   4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_HSV},
 	{ V4L2_PIX_FMT_GREY,    1, 1, 1, 1, 0, 1, 1, 1, 1, FWHT_FL_PIXENC_RGB},
 };
 
@@ -175,22 +175,14 @@
 	case V4L2_PIX_FMT_RGB32:
 	case V4L2_PIX_FMT_XRGB32:
 	case V4L2_PIX_FMT_HSV32:
-		rf->cr = rf->luma + 1;
-		rf->cb = rf->cr + 2;
-		rf->luma += 2;
-		break;
-	case V4L2_PIX_FMT_BGR32:
-	case V4L2_PIX_FMT_XBGR32:
-		rf->cb = rf->luma;
-		rf->cr = rf->cb + 2;
-		rf->luma++;
-		break;
 	case V4L2_PIX_FMT_ARGB32:
 		rf->alpha = rf->luma;
 		rf->cr = rf->luma + 1;
 		rf->cb = rf->cr + 2;
 		rf->luma += 2;
 		break;
+	case V4L2_PIX_FMT_BGR32:
+	case V4L2_PIX_FMT_XBGR32:
 	case V4L2_PIX_FMT_ABGR32:
 		rf->cb = rf->luma;
 		rf->cr = rf->cb + 2;
@@ -198,10 +190,6 @@
 		rf->alpha = rf->cr + 1;
 		break;
 	case V4L2_PIX_FMT_BGRX32:
-		rf->cb = rf->luma + 1;
-		rf->cr = rf->cb + 2;
-		rf->luma += 2;
-		break;
 	case V4L2_PIX_FMT_BGRA32:
 		rf->alpha = rf->luma;
 		rf->cb = rf->luma + 1;
@@ -209,10 +197,6 @@
 		rf->luma += 2;
 		break;
 	case V4L2_PIX_FMT_RGBX32:
-		rf->cr = rf->luma;
-		rf->cb = rf->cr + 2;
-		rf->luma++;
-		break;
 	case V4L2_PIX_FMT_RGBA32:
 		rf->alpha = rf->luma + 3;
 		rf->cr = rf->luma;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vicodec/vicodec-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vicodec/vicodec-core.c
@@ -2052,6 +2052,7 @@
 	}
 	ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl,
 					       vicodec_ctrl_stateless_state.id);
+	v4l2_ctrl_request_hdl_put(hdl);
 	if (!ctrl) {
 		v4l2_info(&ctx->dev->v4l2_dev,
 			  "Missing required codec control\n");
@@ -2139,6 +2140,9 @@
 	v4l2_m2m_release(dev->stateful_enc.m2m_dev);
 	v4l2_m2m_release(dev->stateful_dec.m2m_dev);
 	v4l2_m2m_release(dev->stateless_dec.m2m_dev);
+#ifdef CONFIG_MEDIA_CONTROLLER
+	media_device_cleanup(&dev->mdev);
+#endif
 	kfree(dev);
 }
 
@@ -2169,16 +2173,19 @@
 
 	platform_set_drvdata(pdev, dev);
 
-	if (register_instance(dev, &dev->stateful_enc,
-			      "stateful-encoder", true))
+	ret = register_instance(dev, &dev->stateful_enc, "stateful-encoder",
+				true);
+	if (ret)
 		goto unreg_dev;
 
-	if (register_instance(dev, &dev->stateful_dec,
-			      "stateful-decoder", false))
+	ret = register_instance(dev, &dev->stateful_dec, "stateful-decoder",
+				false);
+	if (ret)
 		goto unreg_sf_enc;
 
-	if (register_instance(dev, &dev->stateless_dec,
-			      "stateless-decoder", false))
+	ret = register_instance(dev, &dev->stateless_dec, "stateless-decoder",
+				false);
+	if (ret)
 		goto unreg_sf_dec;
 
 #ifdef CONFIG_MEDIA_CONTROLLER
@@ -2250,7 +2257,6 @@
 	v4l2_m2m_unregister_media_controller(dev->stateful_enc.m2m_dev);
 	v4l2_m2m_unregister_media_controller(dev->stateful_dec.m2m_dev);
 	v4l2_m2m_unregister_media_controller(dev->stateless_dec.m2m_dev);
-	media_device_cleanup(&dev->mdev);
 #endif
 
 	video_unregister_device(&dev->stateful_enc.vfd);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vim2m.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vim2m.c
@@ -1073,6 +1073,9 @@
 	if (!q_data)
 		return -EINVAL;
 
+	if (V4L2_TYPE_IS_OUTPUT(q->type))
+		ctx->aborting = 0;
+
 	q_data->sequence = 0;
 	return 0;
 }
@@ -1272,6 +1275,9 @@
 
 	v4l2_device_unregister(&dev->v4l2_dev);
 	v4l2_m2m_release(dev->m2m_dev);
+#ifdef CONFIG_MEDIA_CONTROLLER
+	media_device_cleanup(&dev->mdev);
+#endif
 	kfree(dev);
 }
 
@@ -1343,6 +1349,7 @@
 	if (IS_ERR(dev->m2m_dev)) {
 		v4l2_err(&dev->v4l2_dev, "Failed to init mem2mem device\n");
 		ret = PTR_ERR(dev->m2m_dev);
+		dev->m2m_dev = NULL;
 		goto error_dev;
 	}
 
@@ -1395,7 +1402,6 @@
 #ifdef CONFIG_MEDIA_CONTROLLER
 	media_device_unregister(&dev->mdev);
 	v4l2_m2m_unregister_media_controller(dev->m2m_dev);
-	media_device_cleanup(&dev->mdev);
 #endif
 	video_unregister_device(&dev->vfd);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vimc/vimc-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vimc/vimc-common.c
@@ -375,7 +375,7 @@
 {
 	int ret;
 
-	/* Allocate the pads */
+	/* Allocate the pads. Should be released from the sd_int_op release */
 	ved->pads = vimc_pads_init(num_pads, pads_flag);
 	if (IS_ERR(ved->pads))
 		return PTR_ERR(ved->pads);
@@ -424,7 +424,6 @@
 void vimc_ent_sd_unregister(struct vimc_ent_device *ved, struct v4l2_subdev *sd)
 {
 	media_entity_cleanup(ved->ent);
-	vimc_pads_cleanup(ved->pads);
 	v4l2_device_unregister_subdev(sd);
 }
 EXPORT_SYMBOL_GPL(vimc_ent_sd_unregister);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vimc/vimc-debayer.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vimc/vimc-debayer.c
@@ -484,6 +484,7 @@
 	struct vimc_deb_device *vdeb =
 				container_of(sd, struct vimc_deb_device, sd);
 
+	vimc_pads_cleanup(vdeb->ved.pads);
 	kfree(vdeb);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vimc/vimc-scaler.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vimc/vimc-scaler.c
@@ -343,6 +343,7 @@
 	struct vimc_sca_device *vsca =
 				container_of(sd, struct vimc_sca_device, sd);
 
+	vimc_pads_cleanup(vsca->ved.pads);
 	kfree(vsca);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vimc/vimc-sensor.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vimc/vimc-sensor.c
@@ -25,7 +25,6 @@
 	struct v4l2_subdev sd;
 	struct device *dev;
 	struct tpg_data tpg;
-	struct task_struct *kthread_sen;
 	u8 *frame;
 	/* The active format */
 	struct v4l2_mbus_framefmt mbus_format;
@@ -208,10 +207,6 @@
 		const struct vimc_pix_map *vpix;
 		unsigned int frame_size;
 
-		if (vsen->kthread_sen)
-			/* tpg is already executing */
-			return 0;
-
 		/* Calculate the frame size */
 		vpix = vimc_pix_map_by_code(vsen->mbus_format.code);
 		frame_size = vsen->mbus_format.width * vpix->bpp *
@@ -297,6 +292,7 @@
 
 	v4l2_ctrl_handler_free(&vsen->hdl);
 	tpg_free(&vsen->tpg);
+	vimc_pads_cleanup(vsen->ved.pads);
 	kfree(vsen);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vivid/vivid-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vivid/vivid-core.c
@@ -616,6 +616,9 @@
 
 	vivid_free_controls(dev);
 	v4l2_device_unregister(&dev->v4l2_dev);
+#ifdef CONFIG_MEDIA_CONTROLLER
+	media_device_cleanup(&dev->mdev);
+#endif
 	vfree(dev->scaled_line);
 	vfree(dev->blended_line);
 	vfree(dev->edid);
@@ -1580,7 +1583,6 @@
 
 #ifdef CONFIG_MEDIA_CONTROLLER
 		media_device_unregister(&dev->mdev);
-		media_device_cleanup(&dev->mdev);
 #endif
 
 		if (dev->has_vid_cap) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vivid/vivid-kthread-cap.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vivid/vivid-kthread-cap.c
@@ -796,7 +796,11 @@
 		if (kthread_should_stop())
 			break;
 
-		mutex_lock(&dev->mutex);
+		if (!mutex_trylock(&dev->mutex)) {
+			schedule_timeout_uninterruptible(1);
+			continue;
+		}
+
 		cur_jiffies = jiffies;
 		if (dev->cap_seq_resync) {
 			dev->jiffies_vid_cap = cur_jiffies;
@@ -956,8 +960,6 @@
 
 	/* shutdown control thread */
 	vivid_grab_controls(dev, false);
-	mutex_unlock(&dev->mutex);
 	kthread_stop(dev->kthread_vid_cap);
 	dev->kthread_vid_cap = NULL;
-	mutex_lock(&dev->mutex);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vivid/vivid-kthread-out.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vivid/vivid-kthread-out.c
@@ -143,7 +143,11 @@
 		if (kthread_should_stop())
 			break;
 
-		mutex_lock(&dev->mutex);
+		if (!mutex_trylock(&dev->mutex)) {
+			schedule_timeout_uninterruptible(1);
+			continue;
+		}
+
 		cur_jiffies = jiffies;
 		if (dev->out_seq_resync) {
 			dev->jiffies_vid_out = cur_jiffies;
@@ -301,8 +305,6 @@
 
 	/* shutdown control thread */
 	vivid_grab_controls(dev, false);
-	mutex_unlock(&dev->mutex);
 	kthread_stop(dev->kthread_vid_out);
 	dev->kthread_vid_out = NULL;
-	mutex_lock(&dev->mutex);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vivid/vivid-sdr-cap.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vivid/vivid-sdr-cap.c
@@ -141,7 +141,11 @@
 		if (kthread_should_stop())
 			break;
 
-		mutex_lock(&dev->mutex);
+		if (!mutex_trylock(&dev->mutex)) {
+			schedule_timeout_uninterruptible(1);
+			continue;
+		}
+
 		cur_jiffies = jiffies;
 		if (dev->sdr_cap_seq_resync) {
 			dev->jiffies_sdr_cap = cur_jiffies;
@@ -303,10 +307,8 @@
 	}
 
 	/* shutdown control thread */
-	mutex_unlock(&dev->mutex);
 	kthread_stop(dev->kthread_sdr_cap);
 	dev->kthread_sdr_cap = NULL;
-	mutex_lock(&dev->mutex);
 }
 
 static void sdr_cap_buf_request_complete(struct vb2_buffer *vb)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vivid/vivid-vid-cap.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vivid/vivid-vid-cap.c
@@ -223,9 +223,6 @@
 	if (vb2_is_streaming(&dev->vb_vid_out_q))
 		dev->can_loop_video = vivid_vid_can_loop(dev);
 
-	if (dev->kthread_vid_cap)
-		return 0;
-
 	dev->vid_cap_seq_count = 0;
 	dprintk(dev, 1, "%s\n", __func__);
 	for (i = 0; i < VIDEO_MAX_FRAME; i++)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vivid/vivid-vid-out.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vivid/vivid-vid-out.c
@@ -161,9 +161,6 @@
 	if (vb2_is_streaming(&dev->vb_vid_cap_q))
 		dev->can_loop_video = vivid_vid_can_loop(dev);
 
-	if (dev->kthread_vid_out)
-		return 0;
-
 	dev->vid_out_seq_count = 0;
 	dprintk(dev, 1, "%s\n", __func__);
 	if (dev->start_streaming_error) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vsp1/vsp1_dl.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vsp1/vsp1_dl.c
@@ -431,6 +431,8 @@
 	if (!pool)
 		return NULL;
 
+	pool->vsp1 = vsp1;
+
 	spin_lock_init(&pool->lock);
 	INIT_LIST_HEAD(&pool->free);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vsp1/vsp1_drm.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vsp1/vsp1_drm.c
@@ -245,7 +245,7 @@
 		brx = &vsp1->bru->entity;
 	else if (pipe->brx && !drm_pipe->force_brx_release)
 		brx = pipe->brx;
-	else if (!vsp1->bru->entity.pipe)
+	else if (vsp1_feature(vsp1, VSP1_HAS_BRU) && !vsp1->bru->entity.pipe)
 		brx = &vsp1->bru->entity;
 	else
 		brx = &vsp1->brs->entity;
@@ -462,9 +462,9 @@
 	 * make sure it is present in the pipeline's list of entities if it
 	 * wasn't already.
 	 */
-	if (!use_uif) {
+	if (drm_pipe->uif && !use_uif) {
 		drm_pipe->uif->pipe = NULL;
-	} else if (!drm_pipe->uif->pipe) {
+	} else if (drm_pipe->uif && !drm_pipe->uif->pipe) {
 		drm_pipe->uif->pipe = pipe;
 		list_add_tail(&drm_pipe->uif->list_pipe, &pipe->entities);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/platform/vsp1/vsp1_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/platform/vsp1/vsp1_drv.c
@@ -562,7 +562,12 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(vsp1->dev);
-	return ret < 0 ? ret : 0;
+	if (ret < 0) {
+		pm_runtime_put_noidle(vsp1->dev);
+		return ret;
+	}
+
+	return 0;
 }
 
 /*
@@ -845,12 +850,12 @@
 	/* Configure device parameters based on the version register. */
 	pm_runtime_enable(&pdev->dev);
 
-	ret = pm_runtime_get_sync(&pdev->dev);
+	ret = vsp1_device_get(vsp1);
 	if (ret < 0)
 		goto done;
 
 	vsp1->version = vsp1_read(vsp1, VI6_IP_VERSION);
-	pm_runtime_put_sync(&pdev->dev);
+	vsp1_device_put(vsp1);
 
 	for (i = 0; i < ARRAY_SIZE(vsp1_device_infos); ++i) {
 		if ((vsp1->version & VI6_IP_VERSION_MODEL_MASK) ==
@@ -877,8 +882,10 @@
 	}
 
 done:
-	if (ret)
+	if (ret) {
 		pm_runtime_disable(&pdev->dev);
+		rcar_fcp_put(vsp1->fcp);
+	}
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/radio/radio-wl1273.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/radio/radio-wl1273.c
@@ -1148,8 +1148,7 @@
 	if (radio->rds_users > 0) {
 		radio->rds_users--;
 		if (radio->rds_users == 0) {
-			if (mutex_lock_interruptible(&core->lock))
-				return -EINTR;
+			mutex_lock(&core->lock);
 
 			radio->irq_flags &= ~WL1273_RDS_EVENT;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/radio/si470x/radio-si470x-i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/radio/si470x/radio-si470x-i2c.c
@@ -482,6 +482,8 @@
 	if (radio->gpio_reset)
 		gpiod_set_value(radio->gpio_reset, 0);
 
+	v4l2_ctrl_handler_free(&radio->hdl);
+	v4l2_device_unregister(&radio->v4l2_dev);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/Makefile
@@ -5,6 +5,7 @@
 obj-$(CONFIG_RC_CORE) += rc-core.o
 rc-core-y := rc-main.o rc-ir-raw.o
 rc-core-$(CONFIG_LIRC) += lirc_dev.o
+rc-core-$(CONFIG_MEDIA_CEC_RC) += keymaps/rc-cec.o
 rc-core-$(CONFIG_BPF_LIRC_MODE2) += bpf-lirc.o
 obj-$(CONFIG_IR_NEC_DECODER) += ir-nec-decoder.o
 obj-$(CONFIG_IR_RC5_DECODER) += ir-rc5-decoder.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/ati_remote.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/ati_remote.c
@@ -835,6 +835,10 @@
 		err("%s: endpoint_in message size==0? \n", __func__);
 		return -ENODEV;
 	}
+	if (!usb_endpoint_is_int_out(endpoint_out)) {
+		err("%s: Unexpected endpoint_out\n", __func__);
+		return -ENODEV;
+	}
 
 	ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL);
 	rc_dev = rc_allocate_device(RC_DRIVER_SCANCODE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/gpio-ir-tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/gpio-ir-tx.c
@@ -79,13 +79,8 @@
 			// space
 			edge = ktime_add_us(edge, txbuf[i]);
 			delta = ktime_us_delta(edge, ktime_get());
-			if (delta > 10) {
-				spin_unlock_irqrestore(&gpio_ir->lock, flags);
-				usleep_range(delta, delta + 10);
-				spin_lock_irqsave(&gpio_ir->lock, flags);
-			} else if (delta > 0) {
+			if (delta > 0)
 				udelay(delta);
-			}
 		} else {
 			// pulse
 			ktime_t last = ktime_add_us(edge, txbuf[i]);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/iguanair.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/iguanair.c
@@ -413,7 +413,7 @@
 	int ret, pipein, pipeout;
 	struct usb_host_interface *idesc;
 
-	idesc = intf->altsetting;
+	idesc = intf->cur_altsetting;
 	if (idesc->desc.bNumEndpoints < 2)
 		return -ENODEV;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/imon.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/imon.c
@@ -1598,8 +1598,7 @@
 	spin_unlock_irqrestore(&ictx->kc_lock, flags);
 
 	/* send touchscreen events through input subsystem if touchpad data */
-	if (ictx->display_type == IMON_DISPLAY_TYPE_VGA && len == 8 &&
-	    buf[7] == 0x86) {
+	if (ictx->touch && len == 8 && buf[7] == 0x86) {
 		imon_touch_event(ictx, buf);
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/keymaps/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/keymaps/Makefile
@@ -20,7 +20,6 @@
 			rc-behold.o \
 			rc-behold-columbus.o \
 			rc-budget-ci-old.o \
-			rc-cec.o \
 			rc-cinergy-1400.o \
 			rc-cinergy.o \
 			rc-d680-dmb.o \
@@ -117,6 +116,7 @@
 			rc-videomate-m1f.o \
 			rc-videomate-s350.o \
 			rc-videomate-tv-pvr.o \
+			rc-videostrong-kii-pro.o \
 			rc-wetek-hub.o \
 			rc-wetek-play2.o \
 			rc-winfast.o \
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/keymaps/rc-cec.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/keymaps/rc-cec.c
@@ -1,6 +1,16 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 /* Keytable for the CEC remote control
  *
+ * This keymap is unusual in that it can't be built as a module,
+ * instead it is registered directly in rc-main.c if CONFIG_MEDIA_CEC_RC
+ * is set. This is because it can be called from drm_dp_cec_set_edid() via
+ * cec_register_adapter() in an asynchronous context, and it is not
+ * allowed to use request_module() to load rc-cec.ko in that case.
+ *
+ * Since this keymap is only used if CONFIG_MEDIA_CEC_RC is set, we
+ * just compile this keymap into the rc-core module and never as a
+ * separate module.
+ *
  * Copyright (c) 2015 by Kamil Debski
  */
 
@@ -152,7 +162,7 @@
 	/* 0x77-0xff: Reserved */
 };
 
-static struct rc_map_list cec_map = {
+struct rc_map_list cec_map = {
 	.map = {
 		.scan		= cec,
 		.size		= ARRAY_SIZE(cec),
@@ -160,19 +170,3 @@
 		.name		= RC_MAP_CEC,
 	}
 };
-
-static int __init init_rc_map_cec(void)
-{
-	return rc_map_register(&cec_map);
-}
-
-static void __exit exit_rc_map_cec(void)
-{
-	rc_map_unregister(&cec_map);
-}
-
-module_init(init_rc_map_cec);
-module_exit(exit_rc_map_cec);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Kamil Debski");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/keymaps/rc-videostrong-kii-pro.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/keymaps/rc-videostrong-kii-pro.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright (C) 2019 Mohammad Rasim <mohammad.rasim96@gmail.com>
+
+#include <media/rc-map.h>
+#include <linux/module.h>
+
+//
+// Keytable for the Videostrong KII Pro STB remote control
+//
+
+static struct rc_map_table kii_pro[] = {
+	{ 0x59, KEY_POWER },
+	{ 0x19, KEY_MUTE },
+	{ 0x42, KEY_RED },
+	{ 0x40, KEY_GREEN },
+	{ 0x00, KEY_YELLOW },
+	{ 0x03, KEY_BLUE },
+	{ 0x4a, KEY_BACK },
+	{ 0x48, KEY_FORWARD },
+	{ 0x08, KEY_PREVIOUSSONG},
+	{ 0x0b, KEY_NEXTSONG},
+	{ 0x46, KEY_PLAYPAUSE },
+	{ 0x44, KEY_STOP },
+	{ 0x1f, KEY_FAVORITES},	//KEY_F5?
+	{ 0x04, KEY_PVR },
+	{ 0x4d, KEY_EPG },
+	{ 0x02, KEY_INFO },
+	{ 0x09, KEY_SUBTITLE },
+	{ 0x01, KEY_AUDIO },
+	{ 0x0d, KEY_HOMEPAGE },
+	{ 0x11, KEY_TV },	// DTV ?
+	{ 0x06, KEY_UP },
+	{ 0x5a, KEY_LEFT },
+	{ 0x1a, KEY_ENTER },	// KEY_OK ?
+	{ 0x1b, KEY_RIGHT },
+	{ 0x16, KEY_DOWN },
+	{ 0x45, KEY_MENU },
+	{ 0x05, KEY_ESC },
+	{ 0x13, KEY_VOLUMEUP },
+	{ 0x17, KEY_VOLUMEDOWN },
+	{ 0x58, KEY_APPSELECT },
+	{ 0x12, KEY_VENDOR },	// mouse
+	{ 0x55, KEY_PAGEUP },	// KEY_CHANNELUP ?
+	{ 0x15, KEY_PAGEDOWN },	// KEY_CHANNELDOWN ?
+	{ 0x52, KEY_1 },
+	{ 0x50, KEY_2 },
+	{ 0x10, KEY_3 },
+	{ 0x56, KEY_4 },
+	{ 0x54, KEY_5 },
+	{ 0x14, KEY_6 },
+	{ 0x4e, KEY_7 },
+	{ 0x4c, KEY_8 },
+	{ 0x0c, KEY_9 },
+	{ 0x18, KEY_WWW },	// KEY_F7
+	{ 0x0f, KEY_0 },
+	{ 0x51, KEY_BACKSPACE },
+};
+
+static struct rc_map_list kii_pro_map = {
+	.map = {
+		.scan     = kii_pro,
+		.size     = ARRAY_SIZE(kii_pro),
+		.rc_proto = RC_PROTO_NEC,
+		.name     = RC_MAP_KII_PRO,
+	}
+};
+
+static int __init init_rc_map_kii_pro(void)
+{
+	return rc_map_register(&kii_pro_map);
+}
+
+static void __exit exit_rc_map_kii_pro(void)
+{
+	rc_map_unregister(&kii_pro_map);
+}
+
+module_init(init_rc_map_kii_pro)
+module_exit(exit_rc_map_kii_pro)
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Mohammad Rasim <mohammad.rasim96@gmail.com>");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/mceusb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/mceusb.c
@@ -564,7 +564,7 @@
 			datasize = 4;
 			break;
 		case MCE_CMD_G_REVISION:
-			datasize = 2;
+			datasize = 4;
 			break;
 		case MCE_RSP_EQWAKESUPPORT:
 		case MCE_RSP_GETWAKESOURCE:
@@ -600,14 +600,9 @@
 	char *inout;
 	u8 cmd, subcmd, *data;
 	struct device *dev = ir->dev;
-	int start, skip = 0;
 	u32 carrier, period;
 
-	/* skip meaningless 0xb1 0x60 header bytes on orig receiver */
-	if (ir->flags.microsoft_gen1 && !out && !offset)
-		skip = 2;
-
-	if (len <= skip)
+	if (offset < 0 || offset >= buf_len)
 		return;
 
 	dev_dbg(dev, "%cx data[%d]: %*ph (len=%d sz=%d)",
@@ -616,11 +611,32 @@
 
 	inout = out ? "Request" : "Got";
 
-	start  = offset + skip;
-	cmd    = buf[start] & 0xff;
-	subcmd = buf[start + 1] & 0xff;
-	data = buf + start + 2;
+	cmd    = buf[offset];
+	subcmd = (offset + 1 < buf_len) ? buf[offset + 1] : 0;
+	data   = &buf[offset] + 2;
+
+	/* Trace meaningless 0xb1 0x60 header bytes on original receiver */
+	if (ir->flags.microsoft_gen1 && !out && !offset) {
+		dev_dbg(dev, "MCE gen 1 header");
+		return;
+	}
+
+	/* Trace IR data header or trailer */
+	if (cmd != MCE_CMD_PORT_IR &&
+	    (cmd & MCE_PORT_MASK) == MCE_COMMAND_IRDATA) {
+		if (cmd == MCE_IRDATA_TRAILER)
+			dev_dbg(dev, "End of raw IR data");
+		else
+			dev_dbg(dev, "Raw IR data, %d pulse/space samples",
+				cmd & MCE_PACKET_LENGTH_MASK);
+		return;
+	}
+
+	/* Unexpected end of buffer? */
+	if (offset + len > buf_len)
+		return;
 
+	/* Decode MCE command/response */
 	switch (cmd) {
 	case MCE_CMD_NULL:
 		if (subcmd == MCE_CMD_NULL)
@@ -644,7 +660,7 @@
 				dev_dbg(dev, "Get hw/sw rev?");
 			else
 				dev_dbg(dev, "hw/sw rev %*ph",
-					4, &buf[start + 2]);
+					4, &buf[offset + 2]);
 			break;
 		case MCE_CMD_RESUME:
 			dev_dbg(dev, "Device resume requested");
@@ -685,11 +701,18 @@
 				data[0], data[1]);
 			break;
 		case MCE_RSP_EQIRCFS:
+			if (!data[0] && !data[1]) {
+				dev_dbg(dev, "%s: no carrier", inout);
+				break;
+			}
+			// prescaler should make sense
+			if (data[0] > 8)
+				break;
 			period = DIV_ROUND_CLOSEST((1U << data[0] * 2) *
 						   (data[1] + 1), 10);
 			if (!period)
 				break;
-			carrier = (1000 * 1000) / period;
+			carrier = USEC_PER_SEC / period;
 			dev_dbg(dev, "%s carrier of %u Hz (period %uus)",
 				 inout, carrier, period);
 			break;
@@ -746,13 +769,6 @@
 	default:
 		break;
 	}
-
-	if (cmd == MCE_IRDATA_TRAILER)
-		dev_dbg(dev, "End of raw IR data");
-	else if ((cmd != MCE_CMD_PORT_IR) &&
-		 ((cmd & MCE_PORT_MASK) == MCE_COMMAND_IRDATA))
-		dev_dbg(dev, "Raw IR data, %d pulse/space samples",
-			cmd & MCE_PACKET_LENGTH_MASK);
 #endif
 }
 
@@ -1136,32 +1152,62 @@
 }
 
 /*
+ * Handle PORT_SYS/IR command response received from the MCE device.
+ *
+ * Assumes single response with all its data (not truncated)
+ * in buf_in[]. The response itself determines its total length
+ * (mceusb_cmd_datasize() + 2) and hence the minimum size of buf_in[].
+ *
  * We don't do anything but print debug spew for many of the command bits
  * we receive from the hardware, but some of them are useful information
  * we want to store so that we can use them.
  */
-static void mceusb_handle_command(struct mceusb_dev *ir, int index)
+static void mceusb_handle_command(struct mceusb_dev *ir, u8 *buf_in)
 {
+	u8 cmd = buf_in[0];
+	u8 subcmd = buf_in[1];
+	u8 *hi = &buf_in[2];		/* read only when required */
+	u8 *lo = &buf_in[3];		/* read only when required */
 	struct ir_raw_event rawir = {};
-	u8 hi = ir->buf_in[index + 1] & 0xff;
-	u8 lo = ir->buf_in[index + 2] & 0xff;
 	u32 carrier_cycles;
 	u32 cycles_fix;
 
-	switch (ir->buf_in[index]) {
-	/* the one and only 5-byte return value command */
-	case MCE_RSP_GETPORTSTATUS:
-		if ((ir->buf_in[index + 4] & 0xff) == 0x00)
-			ir->txports_cabled |= 1 << hi;
-		break;
+	if (cmd == MCE_CMD_PORT_SYS) {
+		switch (subcmd) {
+		/* the one and only 5-byte return value command */
+		case MCE_RSP_GETPORTSTATUS:
+			if (buf_in[5] == 0 && *hi < 8)
+				ir->txports_cabled |= 1 << *hi;
+			break;
 
+		/* 1-byte return value commands */
+		case MCE_RSP_EQEMVER:
+			ir->emver = *hi;
+			break;
+
+		/* No return value commands */
+		case MCE_RSP_CMD_ILLEGAL:
+			ir->need_reset = true;
+			break;
+
+		default:
+			break;
+		}
+
+		return;
+	}
+
+	if (cmd != MCE_CMD_PORT_IR)
+		return;
+
+	switch (subcmd) {
 	/* 2-byte return value commands */
 	case MCE_RSP_EQIRTIMEOUT:
-		ir->rc->timeout = US_TO_NS((hi << 8 | lo) * MCE_TIME_UNIT);
+		ir->rc->timeout = US_TO_NS((*hi << 8 | *lo) * MCE_TIME_UNIT);
 		break;
 	case MCE_RSP_EQIRNUMPORTS:
-		ir->num_txports = hi;
-		ir->num_rxports = lo;
+		ir->num_txports = *hi;
+		ir->num_rxports = *lo;
 		break;
 	case MCE_RSP_EQIRRXCFCNT:
 		/*
@@ -1174,7 +1220,7 @@
 		 */
 		if (ir->carrier_report_enabled && ir->learning_active &&
 		    ir->pulse_tunit > 0) {
-			carrier_cycles = (hi << 8 | lo);
+			carrier_cycles = (*hi << 8 | *lo);
 			/*
 			 * Adjust carrier cycle count by adding
 			 * 1 missed count per pulse "on"
@@ -1192,24 +1238,24 @@
 		break;
 
 	/* 1-byte return value commands */
-	case MCE_RSP_EQEMVER:
-		ir->emver = hi;
-		break;
 	case MCE_RSP_EQIRTXPORTS:
-		ir->tx_mask = hi;
+		ir->tx_mask = *hi;
 		break;
 	case MCE_RSP_EQIRRXPORTEN:
-		ir->learning_active = ((hi & 0x02) == 0x02);
-		if (ir->rxports_active != hi) {
+		ir->learning_active = ((*hi & 0x02) == 0x02);
+		if (ir->rxports_active != *hi) {
 			dev_info(ir->dev, "%s-range (0x%x) receiver active",
-				 ir->learning_active ? "short" : "long", hi);
-			ir->rxports_active = hi;
+				 ir->learning_active ? "short" : "long", *hi);
+			ir->rxports_active = *hi;
 		}
 		break;
+
+	/* No return value commands */
 	case MCE_RSP_CMD_ILLEGAL:
 	case MCE_RSP_TX_TIMEOUT:
 		ir->need_reset = true;
 		break;
+
 	default:
 		break;
 	}
@@ -1235,7 +1281,8 @@
 			ir->rem = mceusb_cmd_datasize(ir->cmd, ir->buf_in[i]);
 			mceusb_dev_printdata(ir, ir->buf_in, buf_len, i - 1,
 					     ir->rem + 2, false);
-			mceusb_handle_command(ir, i);
+			if (i + ir->rem < buf_len)
+				mceusb_handle_command(ir, &ir->buf_in[i - 1]);
 			ir->parser_state = CMD_DATA;
 			break;
 		case PARSE_IRDATA:
@@ -1264,15 +1311,22 @@
 			ir->rem--;
 			break;
 		case CMD_HEADER:
-			/* decode mce packets of the form (84),AA,BB,CC,DD */
-			/* IR data packets can span USB messages - rem */
 			ir->cmd = ir->buf_in[i];
 			if ((ir->cmd == MCE_CMD_PORT_IR) ||
 			    ((ir->cmd & MCE_PORT_MASK) !=
 			     MCE_COMMAND_IRDATA)) {
+				/*
+				 * got PORT_SYS, PORT_IR, or unknown
+				 * command response prefix
+				 */
 				ir->parser_state = SUBCMD;
 				continue;
 			}
+			/*
+			 * got IR data prefix (0x80 + num_bytes)
+			 * decode MCE packets of the form {0x83, AA, BB, CC}
+			 * IR data packets can span USB messages
+			 */
 			ir->rem = (ir->cmd & MCE_PACKET_LENGTH_MASK);
 			mceusb_dev_printdata(ir, ir->buf_in, buf_len,
 					     i, ir->rem + 1, false);
@@ -1296,6 +1350,14 @@
 		if (ir->parser_state != CMD_HEADER && !ir->rem)
 			ir->parser_state = CMD_HEADER;
 	}
+
+	/*
+	 * Accept IR data spanning multiple rx buffers.
+	 * Reject MCE command response spanning multiple rx buffers.
+	 */
+	if (ir->parser_state != PARSE_IRDATA || !ir->rem)
+		ir->parser_state = CMD_HEADER;
+
 	if (event) {
 		dev_dbg(ir->dev, "processed IR data");
 		ir_raw_event_handle(ir->rc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/rc-main.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/rc-main.c
@@ -1256,6 +1256,10 @@
 	}
 
 	mutex_lock(&dev->lock);
+	if (!dev->registered) {
+		mutex_unlock(&dev->lock);
+		return -ENODEV;
+	}
 
 	old_protocols = *current_protocols;
 	new_protocols = old_protocols;
@@ -1394,6 +1398,10 @@
 		return -EINVAL;
 
 	mutex_lock(&dev->lock);
+	if (!dev->registered) {
+		mutex_unlock(&dev->lock);
+		return -ENODEV;
+	}
 
 	new_filter = *filter;
 	if (fattr->mask)
@@ -1508,6 +1516,10 @@
 	int i;
 
 	mutex_lock(&dev->lock);
+	if (!dev->registered) {
+		mutex_unlock(&dev->lock);
+		return -ENODEV;
+	}
 
 	allowed = dev->allowed_wakeup_protocols;
 
@@ -1565,25 +1577,25 @@
 	kfree(dev);
 }
 
-#define ADD_HOTPLUG_VAR(fmt, val...)					\
-	do {								\
-		int err = add_uevent_var(env, fmt, val);		\
-		if (err)						\
-			return err;					\
-	} while (0)
-
 static int rc_dev_uevent(struct device *device, struct kobj_uevent_env *env)
 {
 	struct rc_dev *dev = to_rc_dev(device);
+	int ret = 0;
+
+	mutex_lock(&dev->lock);
 
-	if (dev->rc_map.name)
-		ADD_HOTPLUG_VAR("NAME=%s", dev->rc_map.name);
-	if (dev->driver_name)
-		ADD_HOTPLUG_VAR("DRV_NAME=%s", dev->driver_name);
-	if (dev->device_name)
-		ADD_HOTPLUG_VAR("DEV_NAME=%s", dev->device_name);
+	if (!dev->registered)
+		ret = -ENODEV;
+	if (ret == 0 && dev->rc_map.name)
+		ret = add_uevent_var(env, "NAME=%s", dev->rc_map.name);
+	if (ret == 0 && dev->driver_name)
+		ret = add_uevent_var(env, "DRV_NAME=%s", dev->driver_name);
+	if (ret == 0 && dev->device_name)
+		ret = add_uevent_var(env, "DEV_NAME=%s", dev->device_name);
 
-	return 0;
+	mutex_unlock(&dev->lock);
+
+	return ret;
 }
 
 /*
@@ -1773,6 +1785,7 @@
 	set_bit(MSC_SCAN, dev->input_dev->mscbit);
 
 	/* Pointer/mouse events */
+	set_bit(INPUT_PROP_POINTING_STICK, dev->input_dev->propbit);
 	set_bit(EV_REL, dev->input_dev->evbit);
 	set_bit(REL_X, dev->input_dev->relbit);
 	set_bit(REL_Y, dev->input_dev->relbit);
@@ -1879,6 +1892,8 @@
 			goto out_raw;
 	}
 
+	dev->registered = true;
+
 	rc = device_add(&dev->dev);
 	if (rc)
 		goto out_rx_free;
@@ -1888,25 +1903,28 @@
 		 dev->device_name ?: "Unspecified device", path ?: "N/A");
 	kfree(path);
 
-	dev->registered = true;
+	/*
+	 * once the the input device is registered in rc_setup_rx_device,
+	 * userspace can open the input device and rc_open() will be called
+	 * as a result. This results in driver code being allowed to submit
+	 * keycodes with rc_keydown, so lirc must be registered first.
+	 */
+	if (dev->allowed_protocols != RC_PROTO_BIT_CEC) {
+		rc = ir_lirc_register(dev);
+		if (rc < 0)
+			goto out_dev;
+	}
 
 	if (dev->driver_type != RC_DRIVER_IR_RAW_TX) {
 		rc = rc_setup_rx_device(dev);
 		if (rc)
-			goto out_dev;
-	}
-
-	/* Ensure that the lirc kfifo is setup before we start the thread */
-	if (dev->allowed_protocols != RC_PROTO_BIT_CEC) {
-		rc = ir_lirc_register(dev);
-		if (rc < 0)
-			goto out_rx;
+			goto out_lirc;
 	}
 
 	if (dev->driver_type == RC_DRIVER_IR_RAW) {
 		rc = ir_raw_event_register(dev);
 		if (rc < 0)
-			goto out_lirc;
+			goto out_rx;
 	}
 
 	dev_dbg(&dev->dev, "Registered rc%u (driver: %s)\n", dev->minor,
@@ -1914,11 +1932,11 @@
 
 	return 0;
 
+out_rx:
+	rc_free_rx_device(dev);
 out_lirc:
 	if (dev->allowed_protocols != RC_PROTO_BIT_CEC)
 		ir_lirc_unregister(dev);
-out_rx:
-	rc_free_rx_device(dev);
 out_dev:
 	device_del(&dev->dev);
 out_rx_free:
@@ -1969,14 +1987,14 @@
 	del_timer_sync(&dev->timer_keyup);
 	del_timer_sync(&dev->timer_repeat);
 
-	rc_free_rx_device(dev);
-
 	mutex_lock(&dev->lock);
 	if (dev->users && dev->close)
 		dev->close(dev);
 	dev->registered = false;
 	mutex_unlock(&dev->lock);
 
+	rc_free_rx_device(dev);
+
 	/*
 	 * lirc device should be freed with dev->registered = false, so
 	 * that userspace polling will get notified.
@@ -2015,6 +2033,9 @@
 
 	led_trigger_register_simple("rc-feedback", &led_feedback);
 	rc_map_register(&empty_map);
+#ifdef CONFIG_MEDIA_CEC_RC
+	rc_map_register(&cec_map);
+#endif
 
 	return 0;
 }
@@ -2024,6 +2045,9 @@
 	lirc_dev_exit();
 	class_unregister(&rc_class);
 	led_trigger_unregister_simple(led_feedback);
+#ifdef CONFIG_MEDIA_CEC_RC
+	rc_map_unregister(&cec_map);
+#endif
 	rc_map_unregister(&empty_map);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/rc/sunxi-cir.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/rc/sunxi-cir.c
@@ -137,6 +137,8 @@
 	} else if (status & REG_RXSTA_RPE) {
 		ir_raw_event_set_idle(ir->rc, true);
 		ir_raw_event_handle(ir->rc);
+	} else {
+		ir_raw_event_handle(ir->rc);
 	}
 
 	spin_unlock(&ir->ir_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/tuners/qm1d1c0042.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/tuners/qm1d1c0042.c
@@ -343,8 +343,10 @@
 		if (val == reg_initval[reg_index][0x00])
 			break;
 	}
-	if (reg_index >= QM1D1C0042_NUM_REG_ROWS)
+	if (reg_index >= QM1D1C0042_NUM_REG_ROWS) {
+		ret = -EINVAL;
 		goto failed;
+	}
 	memcpy(state->regs, reg_initval[reg_index], QM1D1C0042_NUM_REGS);
 	usleep_range(2000, 3000);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/tuners/si2157.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/tuners/si2157.c
@@ -75,24 +75,23 @@
 	struct si2157_cmd cmd;
 	const struct firmware *fw;
 	const char *fw_name;
-	unsigned int uitmp, chip_id;
+	unsigned int chip_id, xtal_trim;
 
 	dev_dbg(&client->dev, "\n");
 
-	/* Returned IF frequency is garbage when firmware is not running */
-	memcpy(cmd.args, "\x15\x00\x06\x07", 4);
+	/* Try to get Xtal trim property, to verify tuner still running */
+	memcpy(cmd.args, "\x15\x00\x04\x02", 4);
 	cmd.wlen = 4;
 	cmd.rlen = 4;
 	ret = si2157_cmd_execute(client, &cmd);
-	if (ret)
-		goto err;
 
-	uitmp = cmd.args[2] << 0 | cmd.args[3] << 8;
-	dev_dbg(&client->dev, "if_frequency kHz=%u\n", uitmp);
+	xtal_trim = cmd.args[2] | (cmd.args[3] << 8);
 
-	if (uitmp == dev->if_frequency / 1000)
+	if (ret == 0 && xtal_trim < 16)
 		goto warm;
 
+	dev->if_frequency = 0; /* we no longer know current tuner state */
+
 	/* power up */
 	if (dev->chiptype == SI2157_CHIPTYPE_SI2146) {
 		memcpy(cmd.args, "\xc0\x05\x01\x00\x00\x0b\x00\x00\x01", 9);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/tuners/tuner-simple.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/tuners/tuner-simple.c
@@ -500,7 +500,7 @@
 	case TUNER_TENA_9533_DI:
 	case TUNER_YMEC_TVF_5533MF:
 		tuner_dbg("This tuner doesn't have FM. Most cards have a TEA5767 for FM\n");
-		return 0;
+		return -EINVAL;
 	case TUNER_PHILIPS_FM1216ME_MK3:
 	case TUNER_PHILIPS_FM1236_MK3:
 	case TUNER_PHILIPS_FMD1216ME_MK3:
@@ -702,7 +702,8 @@
 		    TUNER_RATIO_SELECT_50; /* 50 kHz step */
 
 	/* Bandswitch byte */
-	simple_radio_bandswitch(fe, &buffer[0]);
+	if (simple_radio_bandswitch(fe, &buffer[0]))
+		return 0;
 
 	/* Convert from 1/16 kHz V4L steps to 1/20 MHz (=50 kHz) PLL steps
 	   freq * (1 Mhz / 16000 V4L steps) * (20 PLL steps / 1 MHz) =
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/b2c2/flexcop-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/b2c2/flexcop-usb.c
@@ -295,7 +295,7 @@
 
 	mutex_unlock(&fc_usb->data_mutex);
 
-	return 0;
+	return ret;
 }
 
 /* actual bus specific access functions,
@@ -504,7 +504,16 @@
 static int flexcop_usb_init(struct flexcop_usb *fc_usb)
 {
 	/* use the alternate setting with the larges buffer */
-	usb_set_interface(fc_usb->udev,0,1);
+	int ret = usb_set_interface(fc_usb->udev, 0, 1);
+
+	if (ret) {
+		err("set interface failed.");
+		return ret;
+	}
+
+	if (fc_usb->uintf->cur_altsetting->desc.bNumEndpoints < 1)
+		return -ENODEV;
+
 	switch (fc_usb->udev->speed) {
 	case USB_SPEED_LOW:
 		err("cannot handle USB speed because it is too slow.");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb-v2/dvbsky.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb-v2/dvbsky.c
@@ -792,6 +792,9 @@
 	{ DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C,
 		&mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230C",
 		RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
+	{ DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C_LITE,
+		&mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230C Lite",
+		NULL) },
 	{ DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C2,
 		&mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230C v2",
 		RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb-v2/lmedm04.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb-v2/lmedm04.c
@@ -391,7 +391,7 @@
 	ep = usb_pipe_endpoint(d->udev, lme_int->lme_urb->pipe);
 
 	if (usb_endpoint_type(&ep->desc) == USB_ENDPOINT_XFER_BULK)
-		lme_int->lme_urb->pipe = usb_rcvbulkpipe(d->udev, 0xa),
+		lme_int->lme_urb->pipe = usb_rcvbulkpipe(d->udev, 0xa);
 
 	usb_submit_urb(lme_int->lme_urb, GFP_ATOMIC);
 	info("INT Interrupt Service Started");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/Kconfig
@@ -150,6 +150,7 @@
 config DVB_USB_CXUSB_ANALOG
 	bool "Analog support for the Conexant USB2.0 hybrid reference design"
 	depends on DVB_USB_CXUSB && VIDEO_V4L2
+	depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_USB_CXUSB
 	select VIDEO_CX25840
 	select VIDEOBUF2_VMALLOC
 	help
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/af9005.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/af9005.c
@@ -554,7 +554,7 @@
 			      u8 *buf, int size)
 {
 	u16 checksum;
-	int act_len, i, ret;
+	int act_len = 0, i, ret;
 
 	memset(buf, 0, size);
 	buf[0] = (u8) (FW_BULKOUT_SIZE & 0xff);
@@ -976,8 +976,9 @@
 	else if (reply == 0x02)
 		*cold = 0;
 	else
-		return -EIO;
-	deb_info("Identify state cold = %d\n", *cold);
+		ret = -EIO;
+	if (!ret)
+		deb_info("Identify state cold = %d\n", *cold);
 
 err:
 	kfree(buf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/cxusb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/cxusb.c
@@ -521,7 +521,8 @@
 {
 	u8 ircode[4];
 
-	cxusb_ctrl_msg(d, CMD_GET_IR_CODE, NULL, 0, ircode, 4);
+	if (cxusb_ctrl_msg(d, CMD_GET_IR_CODE, NULL, 0, ircode, 4) < 0)
+		return 0;
 
 	if (ircode[2] || ircode[3])
 		rc_keydown(d->rc_dev, RC_PROTO_NEC,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/dib0700_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/dib0700_core.c
@@ -818,7 +818,7 @@
 
 	/* Starting in firmware 1.20, the RC info is provided on a bulk pipe */
 
-	if (intf->altsetting[0].desc.bNumEndpoints < rc_ep + 1)
+	if (intf->cur_altsetting->desc.bNumEndpoints < rc_ep + 1)
 		return -ENODEV;
 
 	purb = usb_alloc_urb(0, GFP_KERNEL);
@@ -838,7 +838,7 @@
 	 * Some devices like the Hauppauge NovaTD model 52009 use an interrupt
 	 * endpoint, while others use a bulk one.
 	 */
-	e = &intf->altsetting[0].endpoint[rc_ep].desc;
+	e = &intf->cur_altsetting->endpoint[rc_ep].desc;
 	if (usb_endpoint_dir_in(e)) {
 		if (usb_endpoint_xfer_bulk(e)) {
 			pipe = usb_rcvbulkpipe(d->udev, rc_ep);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/dibusb-mb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/dibusb-mb.c
@@ -81,7 +81,7 @@
 
 	if (i2c_transfer(&adap->dev->i2c_adap, msg, 2) != 2) {
 		err("tuner i2c write failed.");
-		ret = -EREMOTEIO;
+		return -EREMOTEIO;
 	}
 
 	if (adap->fe_adap[0].fe->ops.i2c_gate_ctrl)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/digitv.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/digitv.c
@@ -230,18 +230,22 @@
 
 static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
 {
-	int i;
+	int ret, i;
 	u8 key[5];
 	u8 b[4] = { 0 };
 
 	*event = 0;
 	*state = REMOTE_NO_KEY_PRESSED;
 
-	digitv_ctrl_msg(d,USB_READ_REMOTE,0,NULL,0,&key[1],4);
+	ret = digitv_ctrl_msg(d, USB_READ_REMOTE, 0, NULL, 0, &key[1], 4);
+	if (ret)
+		return ret;
 
 	/* Tell the device we've read the remote. Not sure how necessary
 	   this is, but the Nebula SDK does it. */
-	digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0);
+	ret = digitv_ctrl_msg(d, USB_WRITE_REMOTE, 0, b, 4, NULL, 0);
+	if (ret)
+		return ret;
 
 	/* if something is inside the buffer, simulate key press */
 	if (key[1] != 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/dvb-usb-urb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/dvb-usb-urb.c
@@ -12,7 +12,7 @@
 int dvb_usb_generic_rw(struct dvb_usb_device *d, u8 *wbuf, u16 wlen, u8 *rbuf,
 	u16 rlen, int delay_ms)
 {
-	int actlen,ret = -ENOMEM;
+	int actlen = 0, ret = -ENOMEM;
 
 	if (!d || wbuf == NULL || wlen == 0)
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/gp8psk.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/gp8psk.c
@@ -182,7 +182,7 @@
 
 static int gp8psk_power_ctrl(struct dvb_usb_device *d, int onoff)
 {
-	u8 status, buf;
+	u8 status = 0, buf;
 	int gp_product_id = le16_to_cpu(d->udev->descriptor.idProduct);
 
 	if (onoff) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/dvb-usb/vp7045.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/dvb-usb/vp7045.c
@@ -96,10 +96,14 @@
 
 static int vp7045_rc_query(struct dvb_usb_device *d)
 {
+	int ret;
 	u8 key;
-	vp7045_usb_op(d,RC_VAL_READ,NULL,0,&key,1,20);
 
-	deb_rc("remote query key: %x %d\n",key,key);
+	ret = vp7045_usb_op(d, RC_VAL_READ, NULL, 0, &key, 1, 20);
+	if (ret)
+		return ret;
+
+	deb_rc("remote query key: %x\n", key);
 
 	if (key != 0x44) {
 		/*
@@ -115,15 +119,18 @@
 
 static int vp7045_read_eeprom(struct dvb_usb_device *d,u8 *buf, int len, int offset)
 {
-	int i = 0;
-	u8 v,br[2];
+	int i, ret;
+	u8 v, br[2];
 	for (i=0; i < len; i++) {
 		v = offset + i;
-		vp7045_usb_op(d,GET_EE_VALUE,&v,1,br,2,5);
+		ret = vp7045_usb_op(d, GET_EE_VALUE, &v, 1, br, 2, 5);
+		if (ret)
+			return ret;
+
 		buf[i] = br[1];
 	}
-	deb_info("VP7045 EEPROM read (offs: %d, len: %d) : ",offset, i);
-	debug_dump(buf,i,deb_info);
+	deb_info("VP7045 EEPROM read (offs: %d, len: %d) : ", offset, i);
+	debug_dump(buf, i, deb_info);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/em28xx/em28xx-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/em28xx/em28xx-core.c
@@ -956,14 +956,10 @@
 
 		usb_bufs->buf[i] = kzalloc(sb_size, GFP_KERNEL);
 		if (!usb_bufs->buf[i]) {
-			em28xx_uninit_usb_xfer(dev, mode);
-
 			for (i--; i >= 0; i--)
 				kfree(usb_bufs->buf[i]);
 
-			kfree(usb_bufs->buf);
-			usb_bufs->buf = NULL;
-
+			em28xx_uninit_usb_xfer(dev, mode);
 			return -ENOMEM;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/go7007/go7007-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/go7007/go7007-usb.c
@@ -1044,6 +1044,7 @@
 	struct go7007_usb *usb;
 	const struct go7007_usb_board *board;
 	struct usb_device *usbdev = interface_to_usbdev(intf);
+	struct usb_host_endpoint *ep;
 	unsigned num_i2c_devs;
 	char *name;
 	int video_pipe, i, v_urb_len;
@@ -1140,7 +1141,8 @@
 	if (usb->intr_urb->transfer_buffer == NULL)
 		goto allocfail;
 
-	if (go->board_id == GO7007_BOARDID_SENSORAY_2250)
+	ep = usb->usbdev->ep_in[4];
+	if (usb_endpoint_type(&ep->desc) == USB_ENDPOINT_XFER_BULK)
 		usb_fill_bulk_urb(usb->intr_urb, usb->usbdev,
 			usb_rcvbulkpipe(usb->usbdev, 4),
 			usb->intr_urb->transfer_buffer, 2*sizeof(u16),
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/go7007/snd-go7007.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/go7007/snd-go7007.c
@@ -236,22 +236,18 @@
 	gosnd->capturing = 0;
 	ret = snd_card_new(go->dev, index[dev], id[dev], THIS_MODULE, 0,
 			   &gosnd->card);
-	if (ret < 0) {
-		kfree(gosnd);
-		return ret;
-	}
+	if (ret < 0)
+		goto free_snd;
+
 	ret = snd_device_new(gosnd->card, SNDRV_DEV_LOWLEVEL, go,
 			&go7007_snd_device_ops);
-	if (ret < 0) {
-		kfree(gosnd);
-		return ret;
-	}
+	if (ret < 0)
+		goto free_card;
+
 	ret = snd_pcm_new(gosnd->card, "go7007", 0, 0, 1, &gosnd->pcm);
-	if (ret < 0) {
-		snd_card_free(gosnd->card);
-		kfree(gosnd);
-		return ret;
-	}
+	if (ret < 0)
+		goto free_card;
+
 	strscpy(gosnd->card->driver, "go7007", sizeof(gosnd->card->driver));
 	strscpy(gosnd->card->shortname, go->name, sizeof(gosnd->card->shortname));
 	strscpy(gosnd->card->longname, gosnd->card->shortname,
@@ -262,11 +258,8 @@
 			&go7007_snd_capture_ops);
 
 	ret = snd_card_register(gosnd->card);
-	if (ret < 0) {
-		snd_card_free(gosnd->card);
-		kfree(gosnd);
-		return ret;
-	}
+	if (ret < 0)
+		goto free_card;
 
 	gosnd->substream = NULL;
 	go->snd_context = gosnd;
@@ -274,6 +267,12 @@
 	++dev;
 
 	return 0;
+
+free_card:
+	snd_card_free(gosnd->card);
+free_snd:
+	kfree(gosnd);
+	return ret;
 }
 EXPORT_SYMBOL(go7007_snd_init);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/gspca/gspca.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/gspca/gspca.c
@@ -1461,7 +1461,7 @@
 		pr_err("couldn't kzalloc gspca struct\n");
 		return -ENOMEM;
 	}
-	gspca_dev->usb_buf = kmalloc(USB_BUF_SZ, GFP_KERNEL);
+	gspca_dev->usb_buf = kzalloc(USB_BUF_SZ, GFP_KERNEL);
 	if (!gspca_dev->usb_buf) {
 		pr_err("out of memory\n");
 		ret = -ENOMEM;
@@ -1575,6 +1575,7 @@
 		input_unregister_device(gspca_dev->input_dev);
 #endif
 	v4l2_ctrl_handler_free(gspca_dev->vdev.ctrl_handler);
+	v4l2_device_unregister(&gspca_dev->v4l2_dev);
 	kfree(gspca_dev->usb_buf);
 	kfree(gspca_dev);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/gspca/ov519.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/gspca/ov519.c
@@ -3477,6 +3477,11 @@
 		return;
 	}
 
+	if (alt->desc.bNumEndpoints < 1) {
+		sd->gspca_dev.usb_err = -ENODEV;
+		return;
+	}
+
 	packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 	reg_w(sd, R51x_FIFO_PSIZE, packet_size >> 5);
 
@@ -3603,6 +3608,11 @@
 		return;
 	}
 
+	if (alt->desc.bNumEndpoints < 1) {
+		sd->gspca_dev.usb_err = -ENODEV;
+		return;
+	}
+
 	packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 	ov518_reg_w32(sd, R51x_FIFO_PSIZE, packet_size & ~7, 2);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/gspca/stv06xx/stv06xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/gspca/stv06xx/stv06xx.c
@@ -282,6 +282,9 @@
 		return -EIO;
 	}
 
+	if (alt->desc.bNumEndpoints < 1)
+		return -ENODEV;
+
 	packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 	err = stv06xx_write_bridge(sd, STV_ISO_SIZE_L, packet_size);
 	if (err < 0)
@@ -306,11 +309,21 @@
 
 static int stv06xx_isoc_init(struct gspca_dev *gspca_dev)
 {
+	struct usb_interface_cache *intfc;
 	struct usb_host_interface *alt;
 	struct sd *sd = (struct sd *) gspca_dev;
 
+	intfc = gspca_dev->dev->actconfig->intf_cache[0];
+
+	if (intfc->num_altsetting < 2)
+		return -ENODEV;
+
+	alt = &intfc->altsetting[1];
+
+	if (alt->desc.bNumEndpoints < 1)
+		return -ENODEV;
+
 	/* Start isoc bandwidth "negotiation" at max isoc bandwidth */
-	alt = &gspca_dev->dev->actconfig->intf_cache[0]->altsetting[1];
 	alt->endpoint[0].desc.wMaxPacketSize =
 		cpu_to_le16(sd->sensor->max_packet_size[gspca_dev->curr_mode]);
 
@@ -323,6 +336,10 @@
 	struct usb_host_interface *alt;
 	struct sd *sd = (struct sd *) gspca_dev;
 
+	/*
+	 * Existence of altsetting and endpoint was verified in
+	 * stv06xx_isoc_init()
+	 */
 	alt = &gspca_dev->dev->actconfig->intf_cache[0]->altsetting[1];
 	packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 	min_packet_size = sd->sensor->min_packet_size[gspca_dev->curr_mode];
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c
@@ -185,6 +185,10 @@
 	alt = usb_altnum_to_altsetting(intf, sd->gspca_dev.alt);
 	if (!alt)
 		return -ENODEV;
+
+	if (alt->desc.bNumEndpoints < 1)
+		return -ENODEV;
+
 	packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 
 	/* If we don't have enough bandwidth use a lower framerate */
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/gspca/xirlink_cit.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/gspca/xirlink_cit.c
@@ -1442,6 +1442,9 @@
 		return -EIO;
 	}
 
+	if (alt->desc.bNumEndpoints < 1)
+		return -ENODEV;
+
 	return le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 }
 
@@ -2626,6 +2629,7 @@
 
 static int sd_isoc_init(struct gspca_dev *gspca_dev)
 {
+	struct usb_interface_cache *intfc;
 	struct usb_host_interface *alt;
 	int max_packet_size;
 
@@ -2641,8 +2645,17 @@
 		break;
 	}
 
+	intfc = gspca_dev->dev->actconfig->intf_cache[0];
+
+	if (intfc->num_altsetting < 2)
+		return -ENODEV;
+
+	alt = &intfc->altsetting[1];
+
+	if (alt->desc.bNumEndpoints < 1)
+		return -ENODEV;
+
 	/* Start isoc bandwidth "negotiation" at max isoc bandwidth */
-	alt = &gspca_dev->dev->actconfig->intf_cache[0]->altsetting[1];
 	alt->endpoint[0].desc.wMaxPacketSize = cpu_to_le16(max_packet_size);
 
 	return 0;
@@ -2665,6 +2678,9 @@
 		break;
 	}
 
+	/*
+	 * Existence of altsetting and endpoint was verified in sd_isoc_init()
+	 */
 	alt = &gspca_dev->dev->actconfig->intf_cache[0]->altsetting[1];
 	packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
 	if (packet_size <= min_packet_size)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/msi2500/msi2500.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/msi2500/msi2500.c
@@ -1230,7 +1230,7 @@
 	}
 
 	dev->master = master;
-	master->bus_num = 0;
+	master->bus_num = -1;
 	master->num_chipselect = 1;
 	master->transfer_one_message = msi2500_transfer_one_message;
 	spi_master_set_devdata(master, dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/pulse8-cec/pulse8-cec.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/pulse8-cec/pulse8-cec.c
@@ -116,6 +116,7 @@
 	unsigned int vers;
 	struct completion cmd_done;
 	struct work_struct work;
+	u8 work_result;
 	struct delayed_work ping_eeprom_work;
 	struct cec_msg rx_msg;
 	u8 data[DATA_SIZE];
@@ -137,8 +138,10 @@
 {
 	struct pulse8 *pulse8 =
 		container_of(work, struct pulse8, work);
+	u8 result = pulse8->work_result;
 
-	switch (pulse8->data[0] & 0x3f) {
+	pulse8->work_result = 0;
+	switch (result & 0x3f) {
 	case MSGCODE_FRAME_DATA:
 		cec_received_msg(pulse8->adap, &pulse8->rx_msg);
 		break;
@@ -172,12 +175,12 @@
 		pulse8->escape = false;
 	} else if (data == MSGEND) {
 		struct cec_msg *msg = &pulse8->rx_msg;
+		u8 msgcode = pulse8->buf[0];
 
 		if (debug)
 			dev_info(pulse8->dev, "received: %*ph\n",
 				 pulse8->idx, pulse8->buf);
-		pulse8->data[0] = pulse8->buf[0];
-		switch (pulse8->buf[0] & 0x3f) {
+		switch (msgcode & 0x3f) {
 		case MSGCODE_FRAME_START:
 			msg->len = 1;
 			msg->msg[0] = pulse8->buf[1];
@@ -186,14 +189,20 @@
 			if (msg->len == CEC_MAX_MSG_SIZE)
 				break;
 			msg->msg[msg->len++] = pulse8->buf[1];
-			if (pulse8->buf[0] & MSGCODE_FRAME_EOM)
+			if (msgcode & MSGCODE_FRAME_EOM) {
+				WARN_ON(pulse8->work_result);
+				pulse8->work_result = msgcode;
 				schedule_work(&pulse8->work);
+				break;
+			}
 			break;
 		case MSGCODE_TRANSMIT_SUCCEEDED:
 		case MSGCODE_TRANSMIT_FAILED_LINE:
 		case MSGCODE_TRANSMIT_FAILED_ACK:
 		case MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA:
 		case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
+			WARN_ON(pulse8->work_result);
+			pulse8->work_result = msgcode;
 			schedule_work(&pulse8->work);
 			break;
 		case MSGCODE_HIGH_ERROR:
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
@@ -898,8 +898,12 @@
 	pvr2_v4l2_dev_disassociate_parent(vp->dev_video);
 	pvr2_v4l2_dev_disassociate_parent(vp->dev_radio);
 	if (!list_empty(&vp->dev_video->devbase.fh_list) ||
-	    !list_empty(&vp->dev_radio->devbase.fh_list))
+	    (vp->dev_radio &&
+	     !list_empty(&vp->dev_radio->devbase.fh_list))) {
+		pvr2_trace(PVR2_TRACE_STRUCT,
+			   "pvr2_v4l2 internal_check exit-empty id=%p", vp);
 		return;
+	}
 	pvr2_v4l2_destroy_no_lock(vp);
 }
 
@@ -935,7 +939,8 @@
 	kfree(fhp);
 	if (vp->channel.mc_head->disconnect_flag &&
 	    list_empty(&vp->dev_video->devbase.fh_list) &&
-	    list_empty(&vp->dev_radio->devbase.fh_list)) {
+	    (!vp->dev_radio ||
+	     list_empty(&vp->dev_radio->devbase.fh_list))) {
 		pvr2_v4l2_destroy_no_lock(vp);
 	}
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/pwc/pwc-if.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/pwc/pwc-if.c
@@ -147,16 +147,17 @@
 /***************************************************************************/
 /* Private functions */
 
-static void *pwc_alloc_urb_buffer(struct device *dev,
+static void *pwc_alloc_urb_buffer(struct usb_device *dev,
 				  size_t size, dma_addr_t *dma_handle)
 {
+	struct device *dmadev = dev->bus->sysdev;
 	void *buffer = kmalloc(size, GFP_KERNEL);
 
 	if (!buffer)
 		return NULL;
 
-	*dma_handle = dma_map_single(dev, buffer, size, DMA_FROM_DEVICE);
-	if (dma_mapping_error(dev, *dma_handle)) {
+	*dma_handle = dma_map_single(dmadev, buffer, size, DMA_FROM_DEVICE);
+	if (dma_mapping_error(dmadev, *dma_handle)) {
 		kfree(buffer);
 		return NULL;
 	}
@@ -164,12 +165,14 @@
 	return buffer;
 }
 
-static void pwc_free_urb_buffer(struct device *dev,
+static void pwc_free_urb_buffer(struct usb_device *dev,
 				size_t size,
 				void *buffer,
 				dma_addr_t dma_handle)
 {
-	dma_unmap_single(dev, dma_handle, size, DMA_FROM_DEVICE);
+	struct device *dmadev = dev->bus->sysdev;
+
+	dma_unmap_single(dmadev, dma_handle, size, DMA_FROM_DEVICE);
 	kfree(buffer);
 }
 
@@ -274,6 +277,7 @@
 static void pwc_isoc_handler(struct urb *urb)
 {
 	struct pwc_device *pdev = (struct pwc_device *)urb->context;
+	struct device *dmadev = urb->dev->bus->sysdev;
 	int i, fst, flen;
 	unsigned char *iso_buf = NULL;
 
@@ -320,7 +324,7 @@
 	/* Reset ISOC error counter. We did get here, after all. */
 	pdev->visoc_errors = 0;
 
-	dma_sync_single_for_cpu(&urb->dev->dev,
+	dma_sync_single_for_cpu(dmadev,
 				urb->transfer_dma,
 				urb->transfer_buffer_length,
 				DMA_FROM_DEVICE);
@@ -371,7 +375,7 @@
 		pdev->vlast_packet_size = flen;
 	}
 
-	dma_sync_single_for_device(&urb->dev->dev,
+	dma_sync_single_for_device(dmadev,
 				   urb->transfer_dma,
 				   urb->transfer_buffer_length,
 				   DMA_FROM_DEVICE);
@@ -453,7 +457,7 @@
 		urb->pipe = usb_rcvisocpipe(udev, pdev->vendpoint);
 		urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
 		urb->transfer_buffer_length = ISO_BUFFER_SIZE;
-		urb->transfer_buffer = pwc_alloc_urb_buffer(&udev->dev,
+		urb->transfer_buffer = pwc_alloc_urb_buffer(udev,
 							    urb->transfer_buffer_length,
 							    &urb->transfer_dma);
 		if (urb->transfer_buffer == NULL) {
@@ -516,7 +520,7 @@
 		if (urb) {
 			PWC_DEBUG_MEMORY("Freeing URB\n");
 			if (urb->transfer_buffer)
-				pwc_free_urb_buffer(&urb->dev->dev,
+				pwc_free_urb_buffer(urb->dev,
 						    urb->transfer_buffer_length,
 						    urb->transfer_buffer,
 						    urb->transfer_dma);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/tm6000/tm6000-dvb.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/tm6000/tm6000-dvb.c
@@ -141,6 +141,10 @@
 	if (ret < 0) {
 		printk(KERN_ERR "tm6000: error %i in %s during pipe reset\n",
 							ret, __func__);
+
+		kfree(dvb->bulk_urb->transfer_buffer);
+		usb_free_urb(dvb->bulk_urb);
+		dvb->bulk_urb = NULL;
 		return ret;
 	} else
 		printk(KERN_ERR "tm6000: pipe reset\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/tm6000/tm6000-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/tm6000/tm6000-video.c
@@ -461,11 +461,12 @@
 	if (dev->urb_buffer)
 		return 0;
 
-	dev->urb_buffer = kmalloc_array(num_bufs, sizeof(void *), GFP_KERNEL);
+	dev->urb_buffer = kmalloc_array(num_bufs, sizeof(*dev->urb_buffer),
+					GFP_KERNEL);
 	if (!dev->urb_buffer)
 		return -ENOMEM;
 
-	dev->urb_dma = kmalloc_array(num_bufs, sizeof(dma_addr_t *),
+	dev->urb_dma = kmalloc_array(num_bufs, sizeof(*dev->urb_dma),
 				     GFP_KERNEL);
 	if (!dev->urb_dma)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/usbtv/usbtv-audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/usbtv/usbtv-audio.c
@@ -399,7 +399,7 @@
 	cancel_work_sync(&usbtv->snd_trigger);
 
 	if (usbtv->snd && usbtv->udev) {
-		snd_card_free(usbtv->snd);
+		snd_card_free_when_closed(usbtv->snd);
 		usbtv->snd = NULL;
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/usbtv/usbtv-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/usbtv/usbtv-core.c
@@ -56,7 +56,7 @@
 
 		ret = usb_control_msg(usbtv->udev, pipe, USBTV_REQUEST_REG,
 			USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
-			value, index, NULL, 0, 0);
+			value, index, NULL, 0, USB_CTRL_GET_TIMEOUT);
 		if (ret < 0)
 			return ret;
 	}
@@ -113,7 +113,8 @@
 
 usbtv_audio_fail:
 	/* we must not free at this point */
-	usb_get_dev(usbtv->udev);
+	v4l2_device_get(&usbtv->v4l2_dev);
+	/* this will undo the v4l2_device_get() */
 	usbtv_video_free(usbtv);
 
 usbtv_video_fail:
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/usbtv/usbtv-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/usbtv/usbtv-video.c
@@ -800,7 +800,8 @@
 		ret = usb_control_msg(usbtv->udev,
 			usb_rcvctrlpipe(usbtv->udev, 0), USBTV_CONTROL_REG,
 			USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
-			0, USBTV_BASE + 0x0244, (void *)data, 3, 0);
+			0, USBTV_BASE + 0x0244, (void *)data, 3,
+			USB_CTRL_GET_TIMEOUT);
 		if (ret < 0)
 			goto error;
 	}
@@ -851,7 +852,7 @@
 	ret = usb_control_msg(usbtv->udev, usb_sndctrlpipe(usbtv->udev, 0),
 			USBTV_CONTROL_REG,
 			USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
-			0, index, (void *)data, size, 0);
+			0, index, (void *)data, size, USB_CTRL_SET_TIMEOUT);
 
 error:
 	if (ret < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/usbvision/usbvision-video.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/usbvision/usbvision-video.c
@@ -314,6 +314,10 @@
 	if (mutex_lock_interruptible(&usbvision->v4l2_lock))
 		return -ERESTARTSYS;
 
+	if (usbvision->remove_pending) {
+		err_code = -ENODEV;
+		goto unlock;
+	}
 	if (usbvision->user) {
 		err_code = -EBUSY;
 	} else {
@@ -377,6 +381,7 @@
 static int usbvision_v4l2_close(struct file *file)
 {
 	struct usb_usbvision *usbvision = video_drvdata(file);
+	int r;
 
 	PDEBUG(DBG_IO, "close");
 
@@ -391,9 +396,10 @@
 	usbvision_scratch_free(usbvision);
 
 	usbvision->user--;
+	r = usbvision->remove_pending;
 	mutex_unlock(&usbvision->v4l2_lock);
 
-	if (usbvision->remove_pending) {
+	if (r) {
 		printk(KERN_INFO "%s: Final disconnect\n", __func__);
 		usbvision_release(usbvision);
 		return 0;
@@ -453,6 +459,9 @@
 {
 	struct usb_usbvision *usbvision = video_drvdata(file);
 
+	if (!usbvision->dev)
+		return -ENODEV;
+
 	strscpy(vc->driver, "USBVision", sizeof(vc->driver));
 	strscpy(vc->card,
 		usbvision_device_data[usbvision->dev_model].model_string,
@@ -1061,6 +1070,11 @@
 
 	if (mutex_lock_interruptible(&usbvision->v4l2_lock))
 		return -ERESTARTSYS;
+
+	if (usbvision->remove_pending) {
+		err_code = -ENODEV;
+		goto out;
+	}
 	err_code = v4l2_fh_open(file);
 	if (err_code)
 		goto out;
@@ -1093,21 +1107,24 @@
 static int usbvision_radio_close(struct file *file)
 {
 	struct usb_usbvision *usbvision = video_drvdata(file);
+	int r;
 
 	PDEBUG(DBG_IO, "");
 
 	mutex_lock(&usbvision->v4l2_lock);
 	/* Set packet size to 0 */
 	usbvision->iface_alt = 0;
-	usb_set_interface(usbvision->dev, usbvision->iface,
-				    usbvision->iface_alt);
+	if (usbvision->dev)
+		usb_set_interface(usbvision->dev, usbvision->iface,
+				  usbvision->iface_alt);
 
 	usbvision_audio_off(usbvision);
 	usbvision->radio = 0;
 	usbvision->user--;
+	r = usbvision->remove_pending;
 	mutex_unlock(&usbvision->v4l2_lock);
 
-	if (usbvision->remove_pending) {
+	if (r) {
 		printk(KERN_INFO "%s: Final disconnect\n", __func__);
 		v4l2_fh_release(file);
 		usbvision_release(usbvision);
@@ -1539,6 +1556,7 @@
 static void usbvision_disconnect(struct usb_interface *intf)
 {
 	struct usb_usbvision *usbvision = to_usbvision(usb_get_intfdata(intf));
+	int u;
 
 	PDEBUG(DBG_PROBE, "");
 
@@ -1555,13 +1573,14 @@
 	v4l2_device_disconnect(&usbvision->v4l2_dev);
 	usbvision_i2c_unregister(usbvision);
 	usbvision->remove_pending = 1;	/* Now all ISO data will be ignored */
+	u = usbvision->user;
 
 	usb_put_dev(usbvision->dev);
 	usbvision->dev = NULL;	/* USB device is no more */
 
 	mutex_unlock(&usbvision->v4l2_lock);
 
-	if (usbvision->user) {
+	if (u) {
 		printk(KERN_INFO "%s: In use, disconnect pending\n",
 		       __func__);
 		wake_up_interruptible(&usbvision->wait_frame);
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/uvc/uvc_ctrl.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/uvc/uvc_ctrl.c
@@ -773,12 +773,16 @@
 	offset &= 7;
 	mask = ((1LL << bits) - 1) << offset;
 
-	for (; bits > 0; data++) {
+	while (1) {
 		u8 byte = *data & mask;
 		value |= offset > 0 ? (byte >> offset) : (byte << (-offset));
 		bits -= 8 - (offset > 0 ? offset : 0);
+		if (bits <= 0)
+			break;
+
 		offset -= 8;
 		mask = (1 << bits) - 1;
+		data++;
 	}
 
 	/* Sign-extend the value if needed. */
@@ -1844,30 +1848,35 @@
 {
 	struct uvc_entity *entity;
 	struct uvc_control *ctrl;
-	unsigned int i, found = 0;
+	unsigned int i;
+	bool found;
 	u32 reqflags;
 	u16 size;
 	u8 *data = NULL;
 	int ret;
 
 	/* Find the extension unit. */
+	found = false;
 	list_for_each_entry(entity, &chain->entities, chain) {
 		if (UVC_ENTITY_TYPE(entity) == UVC_VC_EXTENSION_UNIT &&
-		    entity->id == xqry->unit)
+		    entity->id == xqry->unit) {
+			found = true;
 			break;
+		}
 	}
 
-	if (entity->id != xqry->unit) {
+	if (!found) {
 		uvc_trace(UVC_TRACE_CONTROL, "Extension unit %u not found.\n",
 			xqry->unit);
 		return -ENOENT;
 	}
 
 	/* Find the control and perform delayed initialization if needed. */
+	found = false;
 	for (i = 0; i < entity->ncontrols; ++i) {
 		ctrl = &entity->controls[i];
 		if (ctrl->index == xqry->selector - 1) {
-			found = 1;
+			found = true;
 			break;
 		}
 	}
@@ -2024,13 +2033,6 @@
 		goto done;
 	}
 
-	/*
-	 * Retrieve control flags from the device. Ignore errors and work with
-	 * default flag values from the uvc_ctrl array when the device doesn't
-	 * properly implement GET_INFO on standard controls.
-	 */
-	uvc_ctrl_get_flags(dev, ctrl, &ctrl->info);
-
 	ctrl->initialized = 1;
 
 	uvc_trace(UVC_TRACE_CONTROL, "Added control %pUl/%u to device %s "
@@ -2253,6 +2255,13 @@
 		if (uvc_entity_match_guid(ctrl->entity, info->entity) &&
 		    ctrl->index == info->index) {
 			uvc_ctrl_add_info(dev, ctrl, info);
+			/*
+			 * Retrieve control flags from the device. Ignore errors
+			 * and work with default flag values from the uvc_ctrl
+			 * array when the device doesn't properly implement
+			 * GET_INFO on standard controls.
+			 */
+			uvc_ctrl_get_flags(dev, ctrl, &ctrl->info);
 			break;
 		 }
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/uvc/uvc_driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/uvc/uvc_driver.c
@@ -214,6 +214,11 @@
 		.guid		= UVC_GUID_FORMAT_CNF4,
 		.fcc		= V4L2_PIX_FMT_CNF4,
 	},
+	{
+		.name		= "HEVC",
+		.guid		= UVC_GUID_FORMAT_HEVC,
+		.fcc		= V4L2_PIX_FMT_HEVC,
+	},
 };
 
 /* ------------------------------------------------------------------------
@@ -497,6 +502,22 @@
 			}
 		}
 
+		/* Some devices report bpp that doesn't match the format. */
+		if (dev->quirks & UVC_QUIRK_FORCE_BPP) {
+			const struct v4l2_format_info *info =
+				v4l2_format_info(format->fcc);
+
+			if (info) {
+				unsigned int div = info->hdiv * info->vdiv;
+
+				n = info->bpp[0] * div;
+				for (i = 1; i < info->comp_planes; i++)
+					n += info->bpp[i];
+
+				format->bpp = DIV_ROUND_UP(8 * n, div);
+			}
+		}
+
 		if (buffer[2] == UVC_VS_FORMAT_UNCOMPRESSED) {
 			ftype = UVC_VS_FRAME_UNCOMPRESSED;
 		} else {
@@ -951,7 +972,10 @@
 	unsigned int i;
 
 	extra_size = roundup(extra_size, sizeof(*entity->pads));
-	num_inputs = (type & UVC_TERM_OUTPUT) ? num_pads : num_pads - 1;
+	if (num_pads)
+		num_inputs = type & UVC_TERM_OUTPUT ? num_pads : num_pads - 1;
+	else
+		num_inputs = 0;
 	size = sizeof(*entity) + extra_size + sizeof(*entity->pads) * num_pads
 	     + num_inputs;
 	entity = kzalloc(size, GFP_KERNEL);
@@ -967,7 +991,7 @@
 
 	for (i = 0; i < num_inputs; ++i)
 		entity->pads[i].flags = MEDIA_PAD_FL_SINK;
-	if (!UVC_ENTITY_IS_OTERM(entity))
+	if (!UVC_ENTITY_IS_OTERM(entity) && num_pads)
 		entity->pads[num_pads-1].flags = MEDIA_PAD_FL_SOURCE;
 
 	entity->bNrInPins = num_inputs;
@@ -1493,6 +1517,11 @@
 			break;
 		if (forward == prev)
 			continue;
+		if (forward->chain.next || forward->chain.prev) {
+			uvc_trace(UVC_TRACE_DESCR, "Found reference to "
+				"entity %d already in chain.\n", forward->id);
+			return -EINVAL;
+		}
 
 		switch (UVC_ENTITY_TYPE(forward)) {
 		case UVC_VC_EXTENSION_UNIT:
@@ -1574,6 +1603,13 @@
 				return -1;
 			}
 
+			if (term->chain.next || term->chain.prev) {
+				uvc_trace(UVC_TRACE_DESCR, "Found reference to "
+					"entity %d already in chain.\n",
+					term->id);
+				return -EINVAL;
+			}
+
 			if (uvc_trace_param & UVC_TRACE_PROBE)
 				printk(KERN_CONT " %d", term->id);
 
@@ -2151,6 +2187,20 @@
 			   sizeof(dev->name) - len);
 	}
 
+	/* Initialize the media device. */
+#ifdef CONFIG_MEDIA_CONTROLLER
+	dev->mdev.dev = &intf->dev;
+	strscpy(dev->mdev.model, dev->name, sizeof(dev->mdev.model));
+	if (udev->serial)
+		strscpy(dev->mdev.serial, udev->serial,
+			sizeof(dev->mdev.serial));
+	usb_make_path(udev, dev->mdev.bus_info, sizeof(dev->mdev.bus_info));
+	dev->mdev.hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
+	media_device_init(&dev->mdev);
+
+	dev->vdev.mdev = &dev->mdev;
+#endif
+
 	/* Parse the Video Class control descriptor. */
 	if (uvc_parse_control(dev) < 0) {
 		uvc_trace(UVC_TRACE_PROBE, "Unable to parse UVC "
@@ -2171,19 +2221,7 @@
 			"linux-uvc-devel mailing list.\n");
 	}
 
-	/* Initialize the media device and register the V4L2 device. */
-#ifdef CONFIG_MEDIA_CONTROLLER
-	dev->mdev.dev = &intf->dev;
-	strscpy(dev->mdev.model, dev->name, sizeof(dev->mdev.model));
-	if (udev->serial)
-		strscpy(dev->mdev.serial, udev->serial,
-			sizeof(dev->mdev.serial));
-	usb_make_path(udev, dev->mdev.bus_info, sizeof(dev->mdev.bus_info));
-	dev->mdev.hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
-	media_device_init(&dev->mdev);
-
-	dev->vdev.mdev = &dev->mdev;
-#endif
+	/* Register the V4L2 device. */
 	if (v4l2_device_register(&intf->dev, &dev->vdev) < 0)
 		goto error;
 
@@ -2860,6 +2898,15 @@
 	  .bInterfaceSubClass	= 1,
 	  .bInterfaceProtocol	= 0,
 	  .driver_info		= (kernel_ulong_t)&uvc_quirk_force_y8 },
+	/* GEO Semiconductor GC6500 */
+	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
+				| USB_DEVICE_ID_MATCH_INT_INFO,
+	  .idVendor		= 0x29fe,
+	  .idProduct		= 0x4d53,
+	  .bInterfaceClass	= USB_CLASS_VIDEO,
+	  .bInterfaceSubClass	= 1,
+	  .bInterfaceProtocol	= 0,
+	  .driver_info		= UVC_INFO_QUIRK(UVC_QUIRK_FORCE_BPP) },
 	/* Intel RealSense D4M */
 	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
 				| USB_DEVICE_ID_MATCH_INT_INFO,
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/uvc/uvc_entity.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/uvc/uvc_entity.c
@@ -73,10 +73,45 @@
 	int ret;
 
 	if (UVC_ENTITY_TYPE(entity) != UVC_TT_STREAMING) {
+		u32 function;
+
 		v4l2_subdev_init(&entity->subdev, &uvc_subdev_ops);
 		strscpy(entity->subdev.name, entity->name,
 			sizeof(entity->subdev.name));
 
+		switch (UVC_ENTITY_TYPE(entity)) {
+		case UVC_VC_SELECTOR_UNIT:
+			function = MEDIA_ENT_F_VID_MUX;
+			break;
+		case UVC_VC_PROCESSING_UNIT:
+		case UVC_VC_EXTENSION_UNIT:
+			/* For lack of a better option. */
+			function = MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER;
+			break;
+		case UVC_COMPOSITE_CONNECTOR:
+		case UVC_COMPONENT_CONNECTOR:
+			function = MEDIA_ENT_F_CONN_COMPOSITE;
+			break;
+		case UVC_SVIDEO_CONNECTOR:
+			function = MEDIA_ENT_F_CONN_SVIDEO;
+			break;
+		case UVC_ITT_CAMERA:
+			function = MEDIA_ENT_F_CAM_SENSOR;
+			break;
+		case UVC_TT_VENDOR_SPECIFIC:
+		case UVC_ITT_VENDOR_SPECIFIC:
+		case UVC_ITT_MEDIA_TRANSPORT_INPUT:
+		case UVC_OTT_VENDOR_SPECIFIC:
+		case UVC_OTT_DISPLAY:
+		case UVC_OTT_MEDIA_TRANSPORT_OUTPUT:
+		case UVC_EXTERNAL_VENDOR_SPECIFIC:
+		default:
+			function = MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN;
+			break;
+		}
+
+		entity->subdev.entity.function = function;
+
 		ret = media_entity_pads_init(&entity->subdev.entity,
 					entity->num_pads, entity->pads);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/uvc/uvc_v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/uvc/uvc_v4l2.c
@@ -247,11 +247,41 @@
 	if (ret < 0)
 		goto done;
 
+	/* After the probe, update fmt with the values returned from
+	 * negotiation with the device. Some devices return invalid bFormatIndex
+	 * and bFrameIndex values, in which case we can only assume they have
+	 * accepted the requested format as-is.
+	 */
+	for (i = 0; i < stream->nformats; ++i) {
+		if (probe->bFormatIndex == stream->format[i].index) {
+			format = &stream->format[i];
+			break;
+		}
+	}
+
+	if (i == stream->nformats)
+		uvc_trace(UVC_TRACE_FORMAT,
+			  "Unknown bFormatIndex %u, using default\n",
+			  probe->bFormatIndex);
+
+	for (i = 0; i < format->nframes; ++i) {
+		if (probe->bFrameIndex == format->frame[i].bFrameIndex) {
+			frame = &format->frame[i];
+			break;
+		}
+	}
+
+	if (i == format->nframes)
+		uvc_trace(UVC_TRACE_FORMAT,
+			  "Unknown bFrameIndex %u, using default\n",
+			  probe->bFrameIndex);
+
 	fmt->fmt.pix.width = frame->wWidth;
 	fmt->fmt.pix.height = frame->wHeight;
 	fmt->fmt.pix.field = V4L2_FIELD_NONE;
 	fmt->fmt.pix.bytesperline = uvc_v4l2_get_bytesperline(format, frame);
 	fmt->fmt.pix.sizeimage = probe->dwMaxVideoFrameSize;
+	fmt->fmt.pix.pixelformat = format->fcc;
 	fmt->fmt.pix.colorspace = format->colorspace;
 
 	if (uvc_format != NULL)
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/usb/uvc/uvcvideo.h
+++ linux-gkeop-5.4-5.4.0/drivers/media/usb/uvc/uvcvideo.h
@@ -165,6 +165,10 @@
 	{0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \
 	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
 
+#define UVC_GUID_FORMAT_HEVC \
+	{ 'H',  'E',  'V',  'C', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+
 
 /* ------------------------------------------------------------------------
  * Driver specific constants.
@@ -198,6 +202,7 @@
 #define UVC_QUIRK_RESTRICT_FRAME_RATE	0x00000200
 #define UVC_QUIRK_RESTORE_CTRLS_ON_INIT	0x00000400
 #define UVC_QUIRK_FORCE_Y8		0x00000800
+#define UVC_QUIRK_FORCE_BPP		0x00001000
 
 /* Format flags */
 #define UVC_FMT_FLAG_COMPRESSED		0x00000001
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
@@ -1183,36 +1183,38 @@
 	u32 aux_space;
 	int compatible_arg = 1;
 	long err = 0;
+	unsigned int ncmd;
 
 	/*
 	 * 1. When struct size is different, converts the command.
 	 */
 	switch (cmd) {
-	case VIDIOC_G_FMT32: cmd = VIDIOC_G_FMT; break;
-	case VIDIOC_S_FMT32: cmd = VIDIOC_S_FMT; break;
-	case VIDIOC_QUERYBUF32: cmd = VIDIOC_QUERYBUF; break;
-	case VIDIOC_G_FBUF32: cmd = VIDIOC_G_FBUF; break;
-	case VIDIOC_S_FBUF32: cmd = VIDIOC_S_FBUF; break;
-	case VIDIOC_QBUF32: cmd = VIDIOC_QBUF; break;
-	case VIDIOC_DQBUF32: cmd = VIDIOC_DQBUF; break;
-	case VIDIOC_ENUMSTD32: cmd = VIDIOC_ENUMSTD; break;
-	case VIDIOC_ENUMINPUT32: cmd = VIDIOC_ENUMINPUT; break;
-	case VIDIOC_TRY_FMT32: cmd = VIDIOC_TRY_FMT; break;
-	case VIDIOC_G_EXT_CTRLS32: cmd = VIDIOC_G_EXT_CTRLS; break;
-	case VIDIOC_S_EXT_CTRLS32: cmd = VIDIOC_S_EXT_CTRLS; break;
-	case VIDIOC_TRY_EXT_CTRLS32: cmd = VIDIOC_TRY_EXT_CTRLS; break;
-	case VIDIOC_DQEVENT32: cmd = VIDIOC_DQEVENT; break;
-	case VIDIOC_OVERLAY32: cmd = VIDIOC_OVERLAY; break;
-	case VIDIOC_STREAMON32: cmd = VIDIOC_STREAMON; break;
-	case VIDIOC_STREAMOFF32: cmd = VIDIOC_STREAMOFF; break;
-	case VIDIOC_G_INPUT32: cmd = VIDIOC_G_INPUT; break;
-	case VIDIOC_S_INPUT32: cmd = VIDIOC_S_INPUT; break;
-	case VIDIOC_G_OUTPUT32: cmd = VIDIOC_G_OUTPUT; break;
-	case VIDIOC_S_OUTPUT32: cmd = VIDIOC_S_OUTPUT; break;
-	case VIDIOC_CREATE_BUFS32: cmd = VIDIOC_CREATE_BUFS; break;
-	case VIDIOC_PREPARE_BUF32: cmd = VIDIOC_PREPARE_BUF; break;
-	case VIDIOC_G_EDID32: cmd = VIDIOC_G_EDID; break;
-	case VIDIOC_S_EDID32: cmd = VIDIOC_S_EDID; break;
+	case VIDIOC_G_FMT32: ncmd = VIDIOC_G_FMT; break;
+	case VIDIOC_S_FMT32: ncmd = VIDIOC_S_FMT; break;
+	case VIDIOC_QUERYBUF32: ncmd = VIDIOC_QUERYBUF; break;
+	case VIDIOC_G_FBUF32: ncmd = VIDIOC_G_FBUF; break;
+	case VIDIOC_S_FBUF32: ncmd = VIDIOC_S_FBUF; break;
+	case VIDIOC_QBUF32: ncmd = VIDIOC_QBUF; break;
+	case VIDIOC_DQBUF32: ncmd = VIDIOC_DQBUF; break;
+	case VIDIOC_ENUMSTD32: ncmd = VIDIOC_ENUMSTD; break;
+	case VIDIOC_ENUMINPUT32: ncmd = VIDIOC_ENUMINPUT; break;
+	case VIDIOC_TRY_FMT32: ncmd = VIDIOC_TRY_FMT; break;
+	case VIDIOC_G_EXT_CTRLS32: ncmd = VIDIOC_G_EXT_CTRLS; break;
+	case VIDIOC_S_EXT_CTRLS32: ncmd = VIDIOC_S_EXT_CTRLS; break;
+	case VIDIOC_TRY_EXT_CTRLS32: ncmd = VIDIOC_TRY_EXT_CTRLS; break;
+	case VIDIOC_DQEVENT32: ncmd = VIDIOC_DQEVENT; break;
+	case VIDIOC_OVERLAY32: ncmd = VIDIOC_OVERLAY; break;
+	case VIDIOC_STREAMON32: ncmd = VIDIOC_STREAMON; break;
+	case VIDIOC_STREAMOFF32: ncmd = VIDIOC_STREAMOFF; break;
+	case VIDIOC_G_INPUT32: ncmd = VIDIOC_G_INPUT; break;
+	case VIDIOC_S_INPUT32: ncmd = VIDIOC_S_INPUT; break;
+	case VIDIOC_G_OUTPUT32: ncmd = VIDIOC_G_OUTPUT; break;
+	case VIDIOC_S_OUTPUT32: ncmd = VIDIOC_S_OUTPUT; break;
+	case VIDIOC_CREATE_BUFS32: ncmd = VIDIOC_CREATE_BUFS; break;
+	case VIDIOC_PREPARE_BUF32: ncmd = VIDIOC_PREPARE_BUF; break;
+	case VIDIOC_G_EDID32: ncmd = VIDIOC_G_EDID; break;
+	case VIDIOC_S_EDID32: ncmd = VIDIOC_S_EDID; break;
+	default: ncmd = cmd; break;
 	}
 
 	/*
@@ -1221,11 +1223,11 @@
 	 * argument into it.
 	 */
 	switch (cmd) {
-	case VIDIOC_OVERLAY:
-	case VIDIOC_STREAMON:
-	case VIDIOC_STREAMOFF:
-	case VIDIOC_S_INPUT:
-	case VIDIOC_S_OUTPUT:
+	case VIDIOC_OVERLAY32:
+	case VIDIOC_STREAMON32:
+	case VIDIOC_STREAMOFF32:
+	case VIDIOC_S_INPUT32:
+	case VIDIOC_S_OUTPUT32:
 		err = alloc_userspace(sizeof(unsigned int), 0, &new_p64);
 		if (!err && assign_in_user((unsigned int __user *)new_p64,
 					   (compat_uint_t __user *)p32))
@@ -1233,23 +1235,23 @@
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_G_INPUT:
-	case VIDIOC_G_OUTPUT:
+	case VIDIOC_G_INPUT32:
+	case VIDIOC_G_OUTPUT32:
 		err = alloc_userspace(sizeof(unsigned int), 0, &new_p64);
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_G_EDID:
-	case VIDIOC_S_EDID:
+	case VIDIOC_G_EDID32:
+	case VIDIOC_S_EDID32:
 		err = alloc_userspace(sizeof(struct v4l2_edid), 0, &new_p64);
 		if (!err)
 			err = get_v4l2_edid32(new_p64, p32);
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_G_FMT:
-	case VIDIOC_S_FMT:
-	case VIDIOC_TRY_FMT:
+	case VIDIOC_G_FMT32:
+	case VIDIOC_S_FMT32:
+	case VIDIOC_TRY_FMT32:
 		err = bufsize_v4l2_format(p32, &aux_space);
 		if (!err)
 			err = alloc_userspace(sizeof(struct v4l2_format),
@@ -1262,7 +1264,7 @@
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_CREATE_BUFS:
+	case VIDIOC_CREATE_BUFS32:
 		err = bufsize_v4l2_create(p32, &aux_space);
 		if (!err)
 			err = alloc_userspace(sizeof(struct v4l2_create_buffers),
@@ -1275,10 +1277,10 @@
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_PREPARE_BUF:
-	case VIDIOC_QUERYBUF:
-	case VIDIOC_QBUF:
-	case VIDIOC_DQBUF:
+	case VIDIOC_PREPARE_BUF32:
+	case VIDIOC_QUERYBUF32:
+	case VIDIOC_QBUF32:
+	case VIDIOC_DQBUF32:
 		err = bufsize_v4l2_buffer(p32, &aux_space);
 		if (!err)
 			err = alloc_userspace(sizeof(struct v4l2_buffer),
@@ -1291,7 +1293,7 @@
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_S_FBUF:
+	case VIDIOC_S_FBUF32:
 		err = alloc_userspace(sizeof(struct v4l2_framebuffer), 0,
 				      &new_p64);
 		if (!err)
@@ -1299,13 +1301,13 @@
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_G_FBUF:
+	case VIDIOC_G_FBUF32:
 		err = alloc_userspace(sizeof(struct v4l2_framebuffer), 0,
 				      &new_p64);
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_ENUMSTD:
+	case VIDIOC_ENUMSTD32:
 		err = alloc_userspace(sizeof(struct v4l2_standard), 0,
 				      &new_p64);
 		if (!err)
@@ -1313,16 +1315,16 @@
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_ENUMINPUT:
+	case VIDIOC_ENUMINPUT32:
 		err = alloc_userspace(sizeof(struct v4l2_input), 0, &new_p64);
 		if (!err)
 			err = get_v4l2_input32(new_p64, p32);
 		compatible_arg = 0;
 		break;
 
-	case VIDIOC_G_EXT_CTRLS:
-	case VIDIOC_S_EXT_CTRLS:
-	case VIDIOC_TRY_EXT_CTRLS:
+	case VIDIOC_G_EXT_CTRLS32:
+	case VIDIOC_S_EXT_CTRLS32:
+	case VIDIOC_TRY_EXT_CTRLS32:
 		err = bufsize_v4l2_ext_controls(p32, &aux_space);
 		if (!err)
 			err = alloc_userspace(sizeof(struct v4l2_ext_controls),
@@ -1334,7 +1336,7 @@
 		}
 		compatible_arg = 0;
 		break;
-	case VIDIOC_DQEVENT:
+	case VIDIOC_DQEVENT32:
 		err = alloc_userspace(sizeof(struct v4l2_event), 0, &new_p64);
 		compatible_arg = 0;
 		break;
@@ -1352,9 +1354,9 @@
 	 * Otherwise, it will pass the newly allocated @new_p64 argument.
 	 */
 	if (compatible_arg)
-		err = native_ioctl(file, cmd, (unsigned long)p32);
+		err = native_ioctl(file, ncmd, (unsigned long)p32);
 	else
-		err = native_ioctl(file, cmd, (unsigned long)new_p64);
+		err = native_ioctl(file, ncmd, (unsigned long)new_p64);
 
 	if (err == -ENOTTY)
 		return err;
@@ -1370,13 +1372,13 @@
 	 * the blocks to maximum allowed value.
 	 */
 	switch (cmd) {
-	case VIDIOC_G_EXT_CTRLS:
-	case VIDIOC_S_EXT_CTRLS:
-	case VIDIOC_TRY_EXT_CTRLS:
+	case VIDIOC_G_EXT_CTRLS32:
+	case VIDIOC_S_EXT_CTRLS32:
+	case VIDIOC_TRY_EXT_CTRLS32:
 		if (put_v4l2_ext_controls32(file, new_p64, p32))
 			err = -EFAULT;
 		break;
-	case VIDIOC_S_EDID:
+	case VIDIOC_S_EDID32:
 		if (put_v4l2_edid32(new_p64, p32))
 			err = -EFAULT;
 		break;
@@ -1389,49 +1391,49 @@
 	 * the original 32 bits structure.
 	 */
 	switch (cmd) {
-	case VIDIOC_S_INPUT:
-	case VIDIOC_S_OUTPUT:
-	case VIDIOC_G_INPUT:
-	case VIDIOC_G_OUTPUT:
+	case VIDIOC_S_INPUT32:
+	case VIDIOC_S_OUTPUT32:
+	case VIDIOC_G_INPUT32:
+	case VIDIOC_G_OUTPUT32:
 		if (assign_in_user((compat_uint_t __user *)p32,
 				   ((unsigned int __user *)new_p64)))
 			err = -EFAULT;
 		break;
 
-	case VIDIOC_G_FBUF:
+	case VIDIOC_G_FBUF32:
 		err = put_v4l2_framebuffer32(new_p64, p32);
 		break;
 
-	case VIDIOC_DQEVENT:
+	case VIDIOC_DQEVENT32:
 		err = put_v4l2_event32(new_p64, p32);
 		break;
 
-	case VIDIOC_G_EDID:
+	case VIDIOC_G_EDID32:
 		err = put_v4l2_edid32(new_p64, p32);
 		break;
 
-	case VIDIOC_G_FMT:
-	case VIDIOC_S_FMT:
-	case VIDIOC_TRY_FMT:
+	case VIDIOC_G_FMT32:
+	case VIDIOC_S_FMT32:
+	case VIDIOC_TRY_FMT32:
 		err = put_v4l2_format32(new_p64, p32);
 		break;
 
-	case VIDIOC_CREATE_BUFS:
+	case VIDIOC_CREATE_BUFS32:
 		err = put_v4l2_create32(new_p64, p32);
 		break;
 
-	case VIDIOC_PREPARE_BUF:
-	case VIDIOC_QUERYBUF:
-	case VIDIOC_QBUF:
-	case VIDIOC_DQBUF:
+	case VIDIOC_PREPARE_BUF32:
+	case VIDIOC_QUERYBUF32:
+	case VIDIOC_QBUF32:
+	case VIDIOC_DQBUF32:
 		err = put_v4l2_buffer32(new_p64, p32);
 		break;
 
-	case VIDIOC_ENUMSTD:
+	case VIDIOC_ENUMSTD32:
 		err = put_v4l2_standard32(new_p64, p32);
 		break;
 
-	case VIDIOC_ENUMINPUT:
+	case VIDIOC_ENUMINPUT32:
 		err = put_v4l2_input32(new_p64, p32);
 		break;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/v4l2-ctrls.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -1795,7 +1795,8 @@
 	case V4L2_CTRL_TYPE_INTEGER_MENU:
 		if (ptr.p_s32[idx] < ctrl->minimum || ptr.p_s32[idx] > ctrl->maximum)
 			return -ERANGE;
-		if (ctrl->menu_skip_mask & (1ULL << ptr.p_s32[idx]))
+		if (ptr.p_s32[idx] < BITS_PER_LONG_LONG &&
+		    (ctrl->menu_skip_mask & BIT_ULL(ptr.p_s32[idx])))
 			return -EINVAL;
 		if (ctrl->type == V4L2_CTRL_TYPE_MENU &&
 		    ctrl->qmenu[ptr.p_s32[idx]][0] == '\0')
@@ -3144,6 +3145,7 @@
 	struct v4l2_ctrl_handler *prev_hdl = NULL;
 	struct v4l2_ctrl_ref *ref_ctrl, *ref_ctrl_prev = NULL;
 
+	mutex_lock(main_hdl->lock);
 	if (list_empty(&main_hdl->requests_queued))
 		goto queue;
 
@@ -3175,18 +3177,22 @@
 queue:
 	list_add_tail(&hdl->requests_queued, &main_hdl->requests_queued);
 	hdl->request_is_queued = true;
+	mutex_unlock(main_hdl->lock);
 }
 
 static void v4l2_ctrl_request_unbind(struct media_request_object *obj)
 {
 	struct v4l2_ctrl_handler *hdl =
 		container_of(obj, struct v4l2_ctrl_handler, req_obj);
+	struct v4l2_ctrl_handler *main_hdl = obj->priv;
 
 	list_del_init(&hdl->requests);
+	mutex_lock(main_hdl->lock);
 	if (hdl->request_is_queued) {
 		list_del_init(&hdl->requests_queued);
 		hdl->request_is_queued = false;
 	}
+	mutex_unlock(main_hdl->lock);
 }
 
 static void v4l2_ctrl_request_release(struct media_request_object *obj)
@@ -4128,9 +4134,11 @@
 		v4l2_ctrl_unlock(ctrl);
 	}
 
+	mutex_lock(main_hdl->lock);
 	WARN_ON(!hdl->request_is_queued);
 	list_del_init(&hdl->requests_queued);
 	hdl->request_is_queued = false;
+	mutex_unlock(main_hdl->lock);
 	media_request_object_complete(obj);
 	media_request_object_put(obj);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/v4l2-device.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/v4l2-device.c
@@ -179,6 +179,7 @@
 
 	if (sd->internal_ops && sd->internal_ops->release)
 		sd->internal_ops->release(sd);
+	sd->devnode = NULL;
 	module_put(owner);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/v4l2-fwnode.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -93,7 +93,7 @@
 	const struct v4l2_fwnode_bus_conv *conv =
 		get_v4l2_fwnode_bus_conv_by_fwnode_bus(type);
 
-	return conv ? conv->mbus_type : V4L2_MBUS_UNKNOWN;
+	return conv ? conv->mbus_type : V4L2_MBUS_INVALID;
 }
 
 static const char *
@@ -436,6 +436,10 @@
 		 v4l2_fwnode_mbus_type_to_string(vep->bus_type),
 		 vep->bus_type);
 	mbus_type = v4l2_fwnode_bus_type_to_mbus(bus_type);
+	if (mbus_type == V4L2_MBUS_INVALID) {
+		pr_debug("unsupported bus type %u\n", bus_type);
+		return -EINVAL;
+	}
 
 	if (vep->bus_type != V4L2_MBUS_UNKNOWN) {
 		if (mbus_type != V4L2_MBUS_UNKNOWN &&
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/v4l2-ioctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1466,10 +1466,26 @@
 	return ret;
 }
 
+static void v4l_pix_format_touch(struct v4l2_pix_format *p)
+{
+	/*
+	 * The v4l2_pix_format structure contains fields that make no sense for
+	 * touch. Set them to default values in this case.
+	 */
+
+	p->field = V4L2_FIELD_NONE;
+	p->colorspace = V4L2_COLORSPACE_RAW;
+	p->flags = 0;
+	p->ycbcr_enc = 0;
+	p->quantization = 0;
+	p->xfer_func = 0;
+}
+
 static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops,
 				struct file *file, void *fh, void *arg)
 {
 	struct v4l2_format *p = arg;
+	struct video_device *vfd = video_devdata(file);
 	int ret = check_fmt(file, p->type);
 
 	if (ret)
@@ -1507,6 +1523,8 @@
 		ret = ops->vidioc_g_fmt_vid_cap(file, fh, arg);
 		/* just in case the driver zeroed it again */
 		p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC;
+		if (vfd->vfl_type == VFL_TYPE_TOUCH)
+			v4l_pix_format_touch(&p->fmt.pix);
 		return ret;
 	case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
 		return ops->vidioc_g_fmt_vid_cap_mplane(file, fh, arg);
@@ -1544,21 +1562,6 @@
 	return -EINVAL;
 }
 
-static void v4l_pix_format_touch(struct v4l2_pix_format *p)
-{
-	/*
-	 * The v4l2_pix_format structure contains fields that make no sense for
-	 * touch. Set them to default values in this case.
-	 */
-
-	p->field = V4L2_FIELD_NONE;
-	p->colorspace = V4L2_COLORSPACE_RAW;
-	p->flags = 0;
-	p->ycbcr_enc = 0;
-	p->quantization = 0;
-	p->xfer_func = 0;
-}
-
 static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops,
 				struct file *file, void *fh, void *arg)
 {
@@ -1602,12 +1605,12 @@
 	case V4L2_BUF_TYPE_VBI_CAPTURE:
 		if (unlikely(!ops->vidioc_s_fmt_vbi_cap))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.vbi);
+		CLEAR_AFTER_FIELD(p, fmt.vbi.flags);
 		return ops->vidioc_s_fmt_vbi_cap(file, fh, arg);
 	case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
 		if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_cap))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sliced);
+		CLEAR_AFTER_FIELD(p, fmt.sliced.io_size);
 		return ops->vidioc_s_fmt_sliced_vbi_cap(file, fh, arg);
 	case V4L2_BUF_TYPE_VIDEO_OUTPUT:
 		if (unlikely(!ops->vidioc_s_fmt_vid_out))
@@ -1633,22 +1636,22 @@
 	case V4L2_BUF_TYPE_VBI_OUTPUT:
 		if (unlikely(!ops->vidioc_s_fmt_vbi_out))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.vbi);
+		CLEAR_AFTER_FIELD(p, fmt.vbi.flags);
 		return ops->vidioc_s_fmt_vbi_out(file, fh, arg);
 	case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
 		if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_out))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sliced);
+		CLEAR_AFTER_FIELD(p, fmt.sliced.io_size);
 		return ops->vidioc_s_fmt_sliced_vbi_out(file, fh, arg);
 	case V4L2_BUF_TYPE_SDR_CAPTURE:
 		if (unlikely(!ops->vidioc_s_fmt_sdr_cap))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sdr);
+		CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize);
 		return ops->vidioc_s_fmt_sdr_cap(file, fh, arg);
 	case V4L2_BUF_TYPE_SDR_OUTPUT:
 		if (unlikely(!ops->vidioc_s_fmt_sdr_out))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sdr);
+		CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize);
 		return ops->vidioc_s_fmt_sdr_out(file, fh, arg);
 	case V4L2_BUF_TYPE_META_CAPTURE:
 		if (unlikely(!ops->vidioc_s_fmt_meta_cap))
@@ -1704,12 +1707,12 @@
 	case V4L2_BUF_TYPE_VBI_CAPTURE:
 		if (unlikely(!ops->vidioc_try_fmt_vbi_cap))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.vbi);
+		CLEAR_AFTER_FIELD(p, fmt.vbi.flags);
 		return ops->vidioc_try_fmt_vbi_cap(file, fh, arg);
 	case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
 		if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_cap))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sliced);
+		CLEAR_AFTER_FIELD(p, fmt.sliced.io_size);
 		return ops->vidioc_try_fmt_sliced_vbi_cap(file, fh, arg);
 	case V4L2_BUF_TYPE_VIDEO_OUTPUT:
 		if (unlikely(!ops->vidioc_try_fmt_vid_out))
@@ -1735,22 +1738,22 @@
 	case V4L2_BUF_TYPE_VBI_OUTPUT:
 		if (unlikely(!ops->vidioc_try_fmt_vbi_out))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.vbi);
+		CLEAR_AFTER_FIELD(p, fmt.vbi.flags);
 		return ops->vidioc_try_fmt_vbi_out(file, fh, arg);
 	case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
 		if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_out))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sliced);
+		CLEAR_AFTER_FIELD(p, fmt.sliced.io_size);
 		return ops->vidioc_try_fmt_sliced_vbi_out(file, fh, arg);
 	case V4L2_BUF_TYPE_SDR_CAPTURE:
 		if (unlikely(!ops->vidioc_try_fmt_sdr_cap))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sdr);
+		CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize);
 		return ops->vidioc_try_fmt_sdr_cap(file, fh, arg);
 	case V4L2_BUF_TYPE_SDR_OUTPUT:
 		if (unlikely(!ops->vidioc_try_fmt_sdr_out))
 			break;
-		CLEAR_AFTER_FIELD(p, fmt.sdr);
+		CLEAR_AFTER_FIELD(p, fmt.sdr.buffersize);
 		return ops->vidioc_try_fmt_sdr_out(file, fh, arg);
 	case V4L2_BUF_TYPE_META_CAPTURE:
 		if (unlikely(!ops->vidioc_try_fmt_meta_cap))
@@ -3013,7 +3016,7 @@
 	       v4l2_kioctl func)
 {
 	char	sbuf[128];
-	void    *mbuf = NULL;
+	void    *mbuf = NULL, *array_buf = NULL;
 	void	*parg = (void *)arg;
 	long	err  = -EINVAL;
 	bool	has_array_args;
@@ -3072,20 +3075,14 @@
 	has_array_args = err;
 
 	if (has_array_args) {
-		/*
-		 * When adding new types of array args, make sure that the
-		 * parent argument to ioctl (which contains the pointer to the
-		 * array) fits into sbuf (so that mbuf will still remain
-		 * unused up to here).
-		 */
-		mbuf = kvmalloc(array_size, GFP_KERNEL);
+		array_buf = kvmalloc(array_size, GFP_KERNEL);
 		err = -ENOMEM;
-		if (NULL == mbuf)
+		if (array_buf == NULL)
 			goto out_array_args;
 		err = -EFAULT;
-		if (copy_from_user(mbuf, user_ptr, array_size))
+		if (copy_from_user(array_buf, user_ptr, array_size))
 			goto out_array_args;
-		*kernel_ptr = mbuf;
+		*kernel_ptr = array_buf;
 	}
 
 	/* Handles IOCTL */
@@ -3104,7 +3101,7 @@
 
 	if (has_array_args) {
 		*kernel_ptr = (void __force *)user_ptr;
-		if (copy_to_user(user_ptr, mbuf, array_size))
+		if (copy_to_user(user_ptr, array_buf, array_size))
 			err = -EFAULT;
 		goto out_array_args;
 	}
@@ -3126,6 +3123,7 @@
 	}
 
 out:
+	kvfree(array_buf);
 	kvfree(mbuf);
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/v4l2-mem2mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/v4l2-mem2mem.c
@@ -809,12 +809,12 @@
 		goto err_rel_entity1;
 
 	/* Connect the three entities */
-	ret = media_create_pad_link(m2m_dev->source, 0, &m2m_dev->proc, 1,
+	ret = media_create_pad_link(m2m_dev->source, 0, &m2m_dev->proc, 0,
 			MEDIA_LNK_FL_IMMUTABLE | MEDIA_LNK_FL_ENABLED);
 	if (ret)
 		goto err_rel_entity2;
 
-	ret = media_create_pad_link(&m2m_dev->proc, 0, &m2m_dev->sink, 0,
+	ret = media_create_pad_link(&m2m_dev->proc, 1, &m2m_dev->sink, 0,
 			MEDIA_LNK_FL_IMMUTABLE | MEDIA_LNK_FL_ENABLED);
 	if (ret)
 		goto err_rm_links0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/media/v4l2-core/videobuf-dma-sg.c
+++ linux-gkeop-5.4-5.4.0/drivers/media/v4l2-core/videobuf-dma-sg.c
@@ -349,8 +349,11 @@
 	BUG_ON(dma->sglen);
 
 	if (dma->pages) {
-		for (i = 0; i < dma->nr_pages; i++)
+		for (i = 0; i < dma->nr_pages; i++) {
+			if (dma->direction == DMA_FROM_DEVICE)
+				set_page_dirty_lock(dma->pages[i]);
 			put_page(dma->pages[i]);
+		}
 		kfree(dma->pages);
 		dma->pages = NULL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/memory/emif.c
+++ linux-gkeop-5.4-5.4.0/drivers/memory/emif.c
@@ -163,35 +163,12 @@
 
 static int __init_or_module emif_debugfs_init(struct emif_data *emif)
 {
-	struct dentry	*dentry;
-	int		ret;
-
-	dentry = debugfs_create_dir(dev_name(emif->dev), NULL);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err0;
-	}
-	emif->debugfs_root = dentry;
-
-	dentry = debugfs_create_file("regcache_dump", S_IRUGO,
-			emif->debugfs_root, emif, &emif_regdump_fops);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err1;
-	}
-
-	dentry = debugfs_create_file("mr4", S_IRUGO,
-			emif->debugfs_root, emif, &emif_mr4_fops);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err1;
-	}
-
+	emif->debugfs_root = debugfs_create_dir(dev_name(emif->dev), NULL);
+	debugfs_create_file("regcache_dump", S_IRUGO, emif->debugfs_root, emif,
+			    &emif_regdump_fops);
+	debugfs_create_file("mr4", S_IRUGO, emif->debugfs_root, emif,
+			    &emif_mr4_fops);
 	return 0;
-err1:
-	debugfs_remove_recursive(emif->debugfs_root);
-err0:
-	return ret;
 }
 
 static void __exit emif_debugfs_exit(struct emif_data *emif)
--- linux-gkeop-5.4-5.4.0.orig/drivers/memory/fsl-corenet-cf.c
+++ linux-gkeop-5.4-5.4.0/drivers/memory/fsl-corenet-cf.c
@@ -211,10 +211,8 @@
 	dev_set_drvdata(&pdev->dev, ccf);
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		dev_err(&pdev->dev, "%s: no irq\n", __func__);
-		return -ENXIO;
-	}
+	if (irq < 0)
+		return irq;
 
 	ret = devm_request_irq(&pdev->dev, irq, ccf_irq, 0, pdev->name, ccf);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/memory/mtk-smi.c
+++ linux-gkeop-5.4-5.4.0/drivers/memory/mtk-smi.c
@@ -127,7 +127,7 @@
 
 int mtk_smi_larb_get(struct device *larbdev)
 {
-	int ret = pm_runtime_get_sync(larbdev);
+	int ret = pm_runtime_resume_and_get(larbdev);
 
 	return (ret < 0) ? ret : 0;
 }
@@ -336,7 +336,7 @@
 	int ret;
 
 	/* Power on smi-common. */
-	ret = pm_runtime_get_sync(larb->smi_common_dev);
+	ret = pm_runtime_resume_and_get(larb->smi_common_dev);
 	if (ret < 0) {
 		dev_err(dev, "Failed to pm get for smi-common(%d).\n", ret);
 		return ret;
@@ -366,6 +366,8 @@
 
 static const struct dev_pm_ops smi_larb_pm_ops = {
 	SET_RUNTIME_PM_OPS(mtk_smi_larb_suspend, mtk_smi_larb_resume, NULL)
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+				     pm_runtime_force_resume)
 };
 
 static struct platform_driver mtk_smi_larb_driver = {
@@ -507,6 +509,8 @@
 
 static const struct dev_pm_ops smi_common_pm_ops = {
 	SET_RUNTIME_PM_OPS(mtk_smi_common_suspend, mtk_smi_common_resume, NULL)
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+				     pm_runtime_force_resume)
 };
 
 static struct platform_driver mtk_smi_common_driver = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/memory/omap-gpmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/memory/omap-gpmc.c
@@ -949,7 +949,7 @@
 	int ret;
 	u32 old_base, size;
 
-	if (cs > gpmc_cs_num) {
+	if (cs >= gpmc_cs_num) {
 		pr_err("%s: requested chip-select is disabled\n", __func__);
 		return -ENODEV;
 	}
@@ -984,7 +984,7 @@
 	struct resource *res = &gpmc->mem;
 	int r = -1;
 
-	if (cs > gpmc_cs_num) {
+	if (cs >= gpmc_cs_num) {
 		pr_err("%s: requested chip-select is disabled\n", __func__);
 		return -ENODEV;
 	}
@@ -2274,6 +2274,10 @@
 	}
 }
 #else
+void gpmc_read_settings_dt(struct device_node *np, struct gpmc_settings *p)
+{
+	memset(p, 0, sizeof(*p));
+}
 static int gpmc_probe_dt(struct platform_device *pdev)
 {
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/memory/ti-aemif.c
+++ linux-gkeop-5.4-5.4.0/drivers/memory/ti-aemif.c
@@ -378,8 +378,10 @@
 		 */
 		for_each_available_child_of_node(np, child_np) {
 			ret = of_aemif_parse_abus_config(pdev, child_np);
-			if (ret < 0)
+			if (ret < 0) {
+				of_node_put(child_np);
 				goto error;
+			}
 		}
 	} else if (pdata && pdata->num_abus_data > 0) {
 		for (i = 0; i < pdata->num_abus_data; i++, aemif->num_cs++) {
@@ -405,8 +407,10 @@
 		for_each_available_child_of_node(np, child_np) {
 			ret = of_platform_populate(child_np, NULL,
 						   dev_lookup, dev);
-			if (ret < 0)
+			if (ret < 0) {
+				of_node_put(child_np);
 				goto error;
+			}
 		}
 	} else if (pdata) {
 		for (i = 0; i < pdata->num_sub_devices; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/memstick/core/memstick.c
+++ linux-gkeop-5.4-5.4.0/drivers/memstick/core/memstick.c
@@ -441,6 +441,9 @@
 	} else if (host->card->stop)
 		host->card->stop(host->card);
 
+	if (host->removing)
+		goto out_power_off;
+
 	card = memstick_alloc_card(host);
 
 	if (!card) {
@@ -465,7 +468,6 @@
 			host->card = card;
 			if (device_register(&card->dev)) {
 				put_device(&card->dev);
-				kfree(host->card);
 				host->card = NULL;
 			}
 		} else
@@ -545,6 +547,7 @@
  */
 void memstick_remove_host(struct memstick_host *host)
 {
+	host->removing = 1;
 	flush_workqueue(workqueue);
 	mutex_lock(&host->lock);
 	if (host->card)
--- linux-gkeop-5.4-5.4.0.orig/drivers/memstick/host/r592.c
+++ linux-gkeop-5.4-5.4.0/drivers/memstick/host/r592.c
@@ -759,8 +759,10 @@
 		goto error3;
 
 	dev->mmio = pci_ioremap_bar(pdev, 0);
-	if (!dev->mmio)
+	if (!dev->mmio) {
+		error = -ENOMEM;
 		goto error4;
+	}
 
 	dev->irq = pdev->irq;
 	spin_lock_init(&dev->irq_lock);
@@ -786,12 +788,14 @@
 		&dev->dummy_dma_page_physical_address, GFP_KERNEL);
 	r592_stop_dma(dev , 0);
 
-	if (request_irq(dev->irq, &r592_irq, IRQF_SHARED,
-			  DRV_NAME, dev))
+	error = request_irq(dev->irq, &r592_irq, IRQF_SHARED,
+			  DRV_NAME, dev);
+	if (error)
 		goto error6;
 
 	r592_update_card_detect(dev);
-	if (memstick_add_host(host))
+	error = memstick_add_host(host);
+	if (error)
 		goto error7;
 
 	message("driver successfully loaded");
--- linux-gkeop-5.4-5.4.0.orig/drivers/message/fusion/mptctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/message/fusion/mptctl.c
@@ -100,19 +100,19 @@
  * Function prototypes. Called from OS entry point mptctl_ioctl.
  * arg contents specific to function.
  */
-static int mptctl_fw_download(unsigned long arg);
-static int mptctl_getiocinfo(unsigned long arg, unsigned int cmd);
-static int mptctl_gettargetinfo(unsigned long arg);
-static int mptctl_readtest(unsigned long arg);
-static int mptctl_mpt_command(unsigned long arg);
-static int mptctl_eventquery(unsigned long arg);
-static int mptctl_eventenable(unsigned long arg);
-static int mptctl_eventreport(unsigned long arg);
-static int mptctl_replace_fw(unsigned long arg);
-
-static int mptctl_do_reset(unsigned long arg);
-static int mptctl_hp_hostinfo(unsigned long arg, unsigned int cmd);
-static int mptctl_hp_targetinfo(unsigned long arg);
+static int mptctl_fw_download(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_getiocinfo(MPT_ADAPTER *iocp, unsigned long arg, unsigned int cmd);
+static int mptctl_gettargetinfo(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_readtest(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_mpt_command(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_eventquery(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_eventenable(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_eventreport(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_replace_fw(MPT_ADAPTER *iocp, unsigned long arg);
+
+static int mptctl_do_reset(MPT_ADAPTER *iocp, unsigned long arg);
+static int mptctl_hp_hostinfo(MPT_ADAPTER *iocp, unsigned long arg, unsigned int cmd);
+static int mptctl_hp_targetinfo(MPT_ADAPTER *iocp, unsigned long arg);
 
 static int  mptctl_probe(struct pci_dev *, const struct pci_device_id *);
 static void mptctl_remove(struct pci_dev *);
@@ -123,8 +123,8 @@
 /*
  * Private function calls.
  */
-static int mptctl_do_mpt_command(struct mpt_ioctl_command karg, void __user *mfPtr);
-static int mptctl_do_fw_download(int ioc, char __user *ufwbuf, size_t fwlen);
+static int mptctl_do_mpt_command(MPT_ADAPTER *iocp, struct mpt_ioctl_command karg, void __user *mfPtr);
+static int mptctl_do_fw_download(MPT_ADAPTER *iocp, char __user *ufwbuf, size_t fwlen);
 static MptSge_t *kbuf_alloc_2_sgl(int bytes, u32 dir, int sge_offset, int *frags,
 		struct buflist **blp, dma_addr_t *sglbuf_dma, MPT_ADAPTER *ioc);
 static void kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma,
@@ -656,19 +656,19 @@
 	 * by TM and FW reloads.
 	 */
 	if ((cmd & ~IOCSIZE_MASK) == (MPTIOCINFO & ~IOCSIZE_MASK)) {
-		return mptctl_getiocinfo(arg, _IOC_SIZE(cmd));
+		return mptctl_getiocinfo(iocp, arg, _IOC_SIZE(cmd));
 	} else if (cmd == MPTTARGETINFO) {
-		return mptctl_gettargetinfo(arg);
+		return mptctl_gettargetinfo(iocp, arg);
 	} else if (cmd == MPTTEST) {
-		return mptctl_readtest(arg);
+		return mptctl_readtest(iocp, arg);
 	} else if (cmd == MPTEVENTQUERY) {
-		return mptctl_eventquery(arg);
+		return mptctl_eventquery(iocp, arg);
 	} else if (cmd == MPTEVENTENABLE) {
-		return mptctl_eventenable(arg);
+		return mptctl_eventenable(iocp, arg);
 	} else if (cmd == MPTEVENTREPORT) {
-		return mptctl_eventreport(arg);
+		return mptctl_eventreport(iocp, arg);
 	} else if (cmd == MPTFWREPLACE) {
-		return mptctl_replace_fw(arg);
+		return mptctl_replace_fw(iocp, arg);
 	}
 
 	/* All of these commands require an interrupt or
@@ -678,15 +678,15 @@
 		return ret;
 
 	if (cmd == MPTFWDOWNLOAD)
-		ret = mptctl_fw_download(arg);
+		ret = mptctl_fw_download(iocp, arg);
 	else if (cmd == MPTCOMMAND)
-		ret = mptctl_mpt_command(arg);
+		ret = mptctl_mpt_command(iocp, arg);
 	else if (cmd == MPTHARDRESET)
-		ret = mptctl_do_reset(arg);
+		ret = mptctl_do_reset(iocp, arg);
 	else if ((cmd & ~IOCSIZE_MASK) == (HP_GETHOSTINFO & ~IOCSIZE_MASK))
-		ret = mptctl_hp_hostinfo(arg, _IOC_SIZE(cmd));
+		ret = mptctl_hp_hostinfo(iocp, arg, _IOC_SIZE(cmd));
 	else if (cmd == HP_GETTARGETINFO)
-		ret = mptctl_hp_targetinfo(arg);
+		ret = mptctl_hp_targetinfo(iocp, arg);
 	else
 		ret = -EINVAL;
 
@@ -705,11 +705,10 @@
 	return ret;
 }
 
-static int mptctl_do_reset(unsigned long arg)
+static int mptctl_do_reset(MPT_ADAPTER *iocp, unsigned long arg)
 {
 	struct mpt_ioctl_diag_reset __user *urinfo = (void __user *) arg;
 	struct mpt_ioctl_diag_reset krinfo;
-	MPT_ADAPTER		*iocp;
 
 	if (copy_from_user(&krinfo, urinfo, sizeof(struct mpt_ioctl_diag_reset))) {
 		printk(KERN_ERR MYNAM "%s@%d::mptctl_do_reset - "
@@ -718,12 +717,6 @@
 		return -EFAULT;
 	}
 
-	if (mpt_verify_adapter(krinfo.hdr.iocnum, &iocp) < 0) {
-		printk(KERN_DEBUG MYNAM "%s@%d::mptctl_do_reset - ioc%d not found!\n",
-				__FILE__, __LINE__, krinfo.hdr.iocnum);
-		return -ENODEV; /* (-6) No such device or address */
-	}
-
 	dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "mptctl_do_reset called.\n",
 	    iocp->name));
 
@@ -754,7 +747,7 @@
  *		-ENOMSG if FW upload returned bad status
  */
 static int
-mptctl_fw_download(unsigned long arg)
+mptctl_fw_download(MPT_ADAPTER *iocp, unsigned long arg)
 {
 	struct mpt_fw_xfer __user *ufwdl = (void __user *) arg;
 	struct mpt_fw_xfer	 kfwdl;
@@ -766,7 +759,7 @@
 		return -EFAULT;
 	}
 
-	return mptctl_do_fw_download(kfwdl.iocnum, kfwdl.bufp, kfwdl.fwlen);
+	return mptctl_do_fw_download(iocp, kfwdl.bufp, kfwdl.fwlen);
 }
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
@@ -784,11 +777,10 @@
  *		-ENOMSG if FW upload returned bad status
  */
 static int
-mptctl_do_fw_download(int ioc, char __user *ufwbuf, size_t fwlen)
+mptctl_do_fw_download(MPT_ADAPTER *iocp, char __user *ufwbuf, size_t fwlen)
 {
 	FWDownload_t		*dlmsg;
 	MPT_FRAME_HDR		*mf;
-	MPT_ADAPTER		*iocp;
 	FWDownloadTCSGE_t	*ptsge;
 	MptSge_t		*sgl, *sgIn;
 	char			*sgOut;
@@ -808,17 +800,10 @@
 	pFWDownloadReply_t	 ReplyMsg = NULL;
 	unsigned long		 timeleft;
 
-	if (mpt_verify_adapter(ioc, &iocp) < 0) {
-		printk(KERN_DEBUG MYNAM "ioctl_fwdl - ioc%d not found!\n",
-				 ioc);
-		return -ENODEV; /* (-6) No such device or address */
-	} else {
-
-		/*  Valid device. Get a message frame and construct the FW download message.
-	 	*/
-		if ((mf = mpt_get_msg_frame(mptctl_id, iocp)) == NULL)
-			return -EAGAIN;
-	}
+	/*  Valid device. Get a message frame and construct the FW download message.
+	*/
+	if ((mf = mpt_get_msg_frame(mptctl_id, iocp)) == NULL)
+		return -EAGAIN;
 
 	dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT
 	    "mptctl_do_fwdl called. mptctl_id = %xh.\n", iocp->name, mptctl_id));
@@ -826,8 +811,6 @@
 	    iocp->name, ufwbuf));
 	dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.fwlen = %d\n",
 	    iocp->name, (int)fwlen));
-	dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.ioc   = %04xh\n",
-	    iocp->name, ioc));
 
 	dlmsg = (FWDownload_t*) mf;
 	ptsge = (FWDownloadTCSGE_t *) &dlmsg->SGL;
@@ -1238,13 +1221,11 @@
  *		-ENODEV  if no such device/adapter
  */
 static int
-mptctl_getiocinfo (unsigned long arg, unsigned int data_size)
+mptctl_getiocinfo (MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
 {
 	struct mpt_ioctl_iocinfo __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_iocinfo *karg;
-	MPT_ADAPTER		*ioc;
 	struct pci_dev		*pdev;
-	int			iocnum;
 	unsigned int		port;
 	int			cim_rev;
 	struct scsi_device 	*sdev;
@@ -1272,14 +1253,6 @@
 		return PTR_ERR(karg);
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg->hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_getiocinfo() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		kfree(karg);
-		return -ENODEV;
-	}
-
 	/* Verify the data transfer size is correct. */
 	if (karg->hdr.maxDataSize != data_size) {
 		printk(MYIOC_s_ERR_FMT "%s@%d::mptctl_getiocinfo - "
@@ -1385,15 +1358,13 @@
  *		-ENODEV  if no such device/adapter
  */
 static int
-mptctl_gettargetinfo (unsigned long arg)
+mptctl_gettargetinfo (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_targetinfo __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_targetinfo karg;
-	MPT_ADAPTER		*ioc;
 	VirtDevice		*vdevice;
 	char			*pmem;
 	int			*pdata;
-	int			iocnum;
 	int			numDevices = 0;
 	int			lun;
 	int			maxWordsLeft;
@@ -1408,13 +1379,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_gettargetinfo() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_gettargetinfo called.\n",
 	    ioc->name));
 	/* Get the port number and set the maximum number of bytes
@@ -1510,12 +1474,10 @@
  *		-ENODEV  if no such device/adapter
  */
 static int
-mptctl_readtest (unsigned long arg)
+mptctl_readtest (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_test __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_test	 karg;
-	MPT_ADAPTER *ioc;
-	int iocnum;
 
 	if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_test))) {
 		printk(KERN_ERR MYNAM "%s@%d::mptctl_readtest - "
@@ -1524,13 +1486,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_readtest() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_readtest called.\n",
 	    ioc->name));
 	/* Fill in the data and return the structure to the calling
@@ -1571,12 +1526,10 @@
  *		-ENODEV  if no such device/adapter
  */
 static int
-mptctl_eventquery (unsigned long arg)
+mptctl_eventquery (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_eventquery __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_eventquery	 karg;
-	MPT_ADAPTER *ioc;
-	int iocnum;
 
 	if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_eventquery))) {
 		printk(KERN_ERR MYNAM "%s@%d::mptctl_eventquery - "
@@ -1585,13 +1538,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_eventquery() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventquery called.\n",
 	    ioc->name));
 	karg.eventEntries = MPTCTL_EVENT_LOG_SIZE;
@@ -1610,12 +1556,10 @@
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 static int
-mptctl_eventenable (unsigned long arg)
+mptctl_eventenable (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_eventenable __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_eventenable	 karg;
-	MPT_ADAPTER *ioc;
-	int iocnum;
 
 	if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_eventenable))) {
 		printk(KERN_ERR MYNAM "%s@%d::mptctl_eventenable - "
@@ -1624,13 +1568,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_eventenable() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventenable called.\n",
 	    ioc->name));
 	if (ioc->events == NULL) {
@@ -1658,12 +1595,10 @@
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 static int
-mptctl_eventreport (unsigned long arg)
+mptctl_eventreport (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_eventreport __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_eventreport	 karg;
-	MPT_ADAPTER		 *ioc;
-	int			 iocnum;
 	int			 numBytes, maxEvents, max;
 
 	if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_eventreport))) {
@@ -1673,12 +1608,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_eventreport() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventreport called.\n",
 	    ioc->name));
 
@@ -1712,12 +1641,10 @@
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 static int
-mptctl_replace_fw (unsigned long arg)
+mptctl_replace_fw (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_replace_fw __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_replace_fw	 karg;
-	MPT_ADAPTER		 *ioc;
-	int			 iocnum;
 	int			 newFwSize;
 
 	if (copy_from_user(&karg, uarg, sizeof(struct mpt_ioctl_replace_fw))) {
@@ -1727,13 +1654,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_replace_fw() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_replace_fw called.\n",
 	    ioc->name));
 	/* If caching FW, Free the old FW image
@@ -1780,12 +1700,10 @@
  *		-ENOMEM if memory allocation error
  */
 static int
-mptctl_mpt_command (unsigned long arg)
+mptctl_mpt_command (MPT_ADAPTER *ioc, unsigned long arg)
 {
 	struct mpt_ioctl_command __user *uarg = (void __user *) arg;
 	struct mpt_ioctl_command  karg;
-	MPT_ADAPTER	*ioc;
-	int		iocnum;
 	int		rc;
 
 
@@ -1796,14 +1714,7 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_mpt_command() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
-	rc = mptctl_do_mpt_command (karg, &uarg->MF);
+	rc = mptctl_do_mpt_command (ioc, karg, &uarg->MF);
 
 	return rc;
 }
@@ -1821,9 +1732,8 @@
  *		-EPERM if SCSI I/O and target is untagged
  */
 static int
-mptctl_do_mpt_command (struct mpt_ioctl_command karg, void __user *mfPtr)
+mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __user *mfPtr)
 {
-	MPT_ADAPTER	*ioc;
 	MPT_FRAME_HDR	*mf = NULL;
 	MPIHeader_t	*hdr;
 	char		*psge;
@@ -1832,7 +1742,7 @@
 	dma_addr_t	dma_addr_in;
 	dma_addr_t	dma_addr_out;
 	int		sgSize = 0;	/* Num SG elements */
-	int		iocnum, flagsLength;
+	int		flagsLength;
 	int		sz, rc = 0;
 	int		msgContext;
 	u16		req_idx;
@@ -1847,13 +1757,6 @@
 	bufIn.kptr = bufOut.kptr = NULL;
 	bufIn.len = bufOut.len = 0;
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_do_mpt_command() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
-
 	spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
 	if (ioc->ioc_reset_in_progress) {
 		spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
@@ -2418,17 +2321,15 @@
  *		-ENOMEM if memory allocation error
  */
 static int
-mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
+mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
 {
 	hp_host_info_t	__user *uarg = (void __user *) arg;
-	MPT_ADAPTER		*ioc;
 	struct pci_dev		*pdev;
 	char                    *pbuf=NULL;
 	dma_addr_t		buf_dma;
 	hp_host_info_t		karg;
 	CONFIGPARMS		cfg;
 	ConfigPageHeader_t	hdr;
-	int			iocnum;
 	int			rc, cim_rev;
 	ToolboxIstwiReadWriteRequest_t	*IstwiRWRequest;
 	MPT_FRAME_HDR		*mf = NULL;
@@ -2452,12 +2353,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-	    (ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_hp_hostinfo() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": mptctl_hp_hostinfo called.\n",
 	    ioc->name));
 
@@ -2659,15 +2554,13 @@
  *		-ENOMEM if memory allocation error
  */
 static int
-mptctl_hp_targetinfo(unsigned long arg)
+mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
 {
 	hp_target_info_t __user *uarg = (void __user *) arg;
 	SCSIDevicePage0_t	*pg0_alloc;
 	SCSIDevicePage3_t	*pg3_alloc;
-	MPT_ADAPTER		*ioc;
 	MPT_SCSI_HOST 		*hd = NULL;
 	hp_target_info_t	karg;
-	int			iocnum;
 	int			data_sz;
 	dma_addr_t		page_dma;
 	CONFIGPARMS	 	cfg;
@@ -2681,12 +2574,6 @@
 		return -EFAULT;
 	}
 
-	if (((iocnum = mpt_verify_adapter(karg.hdr.iocnum, &ioc)) < 0) ||
-		(ioc == NULL)) {
-		printk(KERN_DEBUG MYNAM "%s::mptctl_hp_targetinfo() @%d - ioc%d not found!\n",
-				__FILE__, __LINE__, iocnum);
-		return -ENODEV;
-	}
 	if (karg.hdr.id >= MPT_MAX_FC_DEVICES)
 		return -EINVAL;
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_hp_targetinfo called.\n",
@@ -2854,7 +2741,7 @@
 	kfw.fwlen = kfw32.fwlen;
 	kfw.bufp = compat_ptr(kfw32.bufp);
 
-	ret = mptctl_do_fw_download(kfw.iocnum, kfw.bufp, kfw.fwlen);
+	ret = mptctl_do_fw_download(iocp, kfw.bufp, kfw.fwlen);
 
 	mutex_unlock(&iocp->ioctl_cmds.mutex);
 
@@ -2908,7 +2795,7 @@
 
 	/* Pass new structure to do_mpt_command
 	 */
-	ret = mptctl_do_mpt_command (karg, &uarg->MF);
+	ret = mptctl_do_mpt_command (iocp, karg, &uarg->MF);
 
 	mutex_unlock(&iocp->ioctl_cmds.mutex);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/message/fusion/mptscsih.c
+++ linux-gkeop-5.4-5.4.0/drivers/message/fusion/mptscsih.c
@@ -118,8 +118,6 @@
 int 		mptscsih_resume(struct pci_dev *pdev);
 #endif
 
-#define SNS_LEN(scp)	SCSI_SENSE_BUFFERSIZE
-
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 /*
@@ -1178,8 +1176,10 @@
 	MPT_SCSI_HOST		*hd;
 	int sz1;
 
-	if((hd = shost_priv(host)) == NULL)
-		return;
+	if (host == NULL)
+		hd = NULL;
+	else
+		hd = shost_priv(host);
 
 	mptscsih_shutdown(pdev);
 
@@ -1195,14 +1195,15 @@
 	    "Free'd ScsiLookup (%d) memory\n",
 	    ioc->name, sz1));
 
-	kfree(hd->info_kbuf);
+	if (hd)
+		kfree(hd->info_kbuf);
 
 	/* NULL the Scsi_Host pointer
 	 */
 	ioc->sh = NULL;
 
-	scsi_host_put(host);
-
+	if (host)
+		scsi_host_put(host);
 	mpt_detach(pdev);
 
 }
@@ -2422,7 +2423,7 @@
 		/* Copy the sense received into the scsi command block. */
 		req_index = le16_to_cpu(mf->u.frame.hwhdr.msgctxu.fld.req_idx);
 		sense_data = ((u8 *)ioc->sense_buf_pool + (req_index * MPT_SENSE_BUFFER_ALLOC));
-		memcpy(sc->sense_buffer, sense_data, SNS_LEN(sc));
+		memcpy(sc->sense_buffer, sense_data, MPT_SENSE_BUFFER_ALLOC);
 
 		/* Log SMART data (asc = 0x5D, non-IM case only) if required.
 		 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/Kconfig
@@ -758,6 +758,7 @@
 	depends on OF || COMPILE_TEST
 	select MFD_CORE
 	select REGMAP_I2C
+	select REGMAP_IRQ
 	help
 	  Say Y here to add support for Maxim Semiconductor MAX77650 and
 	  MAX77651 Power Management ICs. This is the core multifunction
@@ -2011,5 +2012,16 @@
 	  Select this to get support for the Supervisory Processor
 	  device found on several devices in RAVE line of hardware.
 
+config MFD_AHC1EC0
+	tristate "Advantech AHC1EC0 Embedded Controller Module"
+	depends on X86
+	depends on UBUNTU_ODM_DRIVERS
+	select MFD_CORE
+	help
+	  This is the core function that for Advantech EC drivers. It
+	  includes the sub-devices such as hwmon, watchdog, etc. And also
+	  provides expose functions for sub-devices to read/write the value
+	  to embedded controller.
+
 endmenu
 endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/Makefile
@@ -256,3 +256,5 @@
 obj-$(CONFIG_MFD_ROHM_BD718XX)	+= rohm-bd718x7.o
 obj-$(CONFIG_MFD_STMFX) 	+= stmfx.o
 
+obj-$(CONFIG_MFD_AHC1EC0)	+= ahc1ec0.o
+
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/ahc1ec0.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/ahc1ec0.c
@@ -0,0 +1,808 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Advantech embedded controller core driver AHC1EC0
+ *
+ * Copyright 2020 Advantech IIoT Group
+ *
+ */
+
+#include <linux/acpi.h>
+#include <linux/delay.h>
+#include <linux/dmi.h>
+#include <linux/errno.h>
+#include <linux/mfd/ahc1ec0.h>
+#include <linux/mfd/core.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+
+#define DRV_NAME      "ahc1ec0"
+
+enum {
+	ADVEC_SUBDEV_BRIGHTNESS = 0,
+	ADVEC_SUBDEV_EEPROM,
+	ADVEC_SUBDEV_GPIO,
+	ADVEC_SUBDEV_HWMON,
+	ADVEC_SUBDEV_LED,
+	ADVEC_SUBDEV_WDT,
+	ADVEC_SUBDEV_MAX,
+};
+
+/* Wait IBF (Input Buffer Full) clear */
+static int ec_wait_write(void)
+{
+	int i;
+
+	for (i = 0; i < EC_MAX_TIMEOUT_COUNT; i++) {
+		if ((inb(EC_COMMAND_PORT) & EC_COMMAND_BIT_IBF) == 0)
+			return 0;
+
+		udelay(EC_RETRY_UDELAY);
+	}
+
+	return -ETIMEDOUT;
+}
+
+/* Wait OBF (Output Buffer Full) data ready */
+static int ec_wait_read(void)
+{
+	int i;
+
+	for (i = 0; i < EC_MAX_TIMEOUT_COUNT; i++) {
+		if ((inb(EC_COMMAND_PORT) & EC_COMMAND_BIT_OBF) != 0)
+			return 0;
+
+		udelay(EC_RETRY_UDELAY);
+	}
+
+	return -ETIMEDOUT;
+}
+
+/* Read data from EC HW RAM, the process is the following:
+ * Step 0. Wait IBF clear to send command
+ * Step 1. Send read command to EC command port
+ * Step 2. Wait IBF clear that means command is got by EC
+ * Step 3. Send read address to EC data port
+ * Step 4. Wait OBF data ready
+ * Step 5. Get data from EC data port
+ */
+int read_hw_ram(struct adv_ec_platform_data *adv_ec_data, unsigned char addr, unsigned char *data)
+{
+	int ret;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_HW_RAM_READ, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(addr, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+	*data = inb(EC_STATUS_PORT);
+
+	mutex_unlock(&adv_ec_data->lock);
+
+	return ret;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+	dev_err(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+	       __LINE__);
+
+	return ret;
+}
+
+/* Write data to EC HW RAM
+ * Step 0. Wait IBF clear to send command
+ * Step 1. Send write command to EC command port
+ * Step 2. Wait IBF clear that means command is got by EC
+ * Step 3. Send write address to EC data port
+ * Step 4. Wait IBF clear that means command is got by EC
+ * Step 5. Send data to EC data port
+ */
+int write_hw_ram(struct adv_ec_platform_data *adv_ec_data, unsigned char addr, unsigned char data)
+{
+	int ret;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_HW_RAM_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(addr, EC_STATUS_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(data, EC_STATUS_PORT);
+
+	mutex_unlock(&adv_ec_data->lock);
+
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_err(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+	       __LINE__);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(write_hw_ram);
+
+/* Get dynamic control table */
+static int adv_get_dynamic_tab(struct adv_ec_platform_data *adv_ec_data)
+{
+	int i, ret;
+	unsigned char pin_tmp, device_id;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	for (i = 0; i < EC_MAX_TBL_NUM; i++) {
+		adv_ec_data->dym_tbl[i].device_id = 0xff;
+		adv_ec_data->dym_tbl[i].hw_pin_num = 0xff;
+	}
+
+	for (i = 0; i < EC_MAX_TBL_NUM; i++) {
+		ret = ec_wait_write();
+		if (ret) {
+			dev_dbg(adv_ec_data->dev, "%s: ec_wait_write. line: %d\n", __func__,
+				__LINE__);
+			goto error;
+		}
+		outb(EC_TBL_WRITE_ITEM, EC_COMMAND_PORT);
+
+		ret = ec_wait_write();
+		if (ret) {
+			dev_dbg(adv_ec_data->dev, "%s: ec_wait_write. line: %d\n", __func__,
+				__LINE__);
+			goto error;
+		}
+		outb(i, EC_STATUS_PORT);
+
+		ret = ec_wait_read();
+		if (ret) {
+			dev_dbg(adv_ec_data->dev, "%s: ec_wait_read. line: %d\n", __func__,
+				__LINE__);
+			goto error;
+		}
+
+		/*
+		 *  If item is defined, EC will return item number.
+		 *  If table item is not defined, EC will return 0xFF.
+		 */
+		pin_tmp = inb(EC_STATUS_PORT);
+		if (pin_tmp == 0xff) {
+			dev_dbg(adv_ec_data->dev, "%s: inb(EC_STATUS_PORT)=0x%02x != 0xff.\n",
+				__func__, pin_tmp);
+			goto pass;
+		}
+
+		ret = ec_wait_write();
+		if (ret) {
+			dev_dbg(adv_ec_data->dev, "%s: ec_wait_write. line: %d\n", __func__,
+				__LINE__);
+			goto error;
+		}
+		outb(EC_TBL_GET_PIN, EC_COMMAND_PORT);
+
+		ret = ec_wait_read();
+		if (ret) {
+			dev_dbg(adv_ec_data->dev, "%s: ec_wait_read. line: %d\n", __func__,
+				__LINE__);
+			goto error;
+		}
+		pin_tmp = inb(EC_STATUS_PORT) & 0xff;
+		if (pin_tmp == 0xff) {
+			dev_dbg(adv_ec_data->dev, "%s: pin_tmp(0x%02X). line: %d\n", __func__,
+				pin_tmp, __LINE__);
+			goto pass;
+		}
+
+		ret = ec_wait_write();
+		if (ret)
+			goto error;
+		outb(EC_TBL_GET_DEVID, EC_COMMAND_PORT);
+
+		ret = ec_wait_read();
+		if (ret) {
+			dev_dbg(adv_ec_data->dev, "%s: ec_wait_read. line: %d\n", __func__,
+				__LINE__);
+			goto error;
+		}
+		device_id = inb(EC_STATUS_PORT) & 0xff;
+
+		dev_dbg(adv_ec_data->dev, "%s: device_id=0x%02X. line: %d\n", __func__,
+			device_id, __LINE__);
+
+		adv_ec_data->dym_tbl[i].device_id = device_id;
+		adv_ec_data->dym_tbl[i].hw_pin_num = pin_tmp;
+	}
+
+pass:
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+	dev_err(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n",
+		__func__, __LINE__);
+	return ret;
+}
+
+int read_ad_value(struct adv_ec_platform_data *adv_ec_data, unsigned char hwpin,
+		unsigned char multi)
+{
+	int ret;
+	u32 ret_val;
+	unsigned int LSB, MSB;
+
+	mutex_lock(&adv_ec_data->lock);
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_AD_INDEX_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(hwpin, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+
+	if (inb(EC_STATUS_PORT) == 0xff) {
+		mutex_unlock(&adv_ec_data->lock);
+		return -1;
+	}
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_AD_LSB_READ, EC_COMMAND_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+	LSB = inb(EC_STATUS_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_AD_MSB_READ, EC_COMMAND_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+	MSB = inb(EC_STATUS_PORT);
+	ret_val = ((MSB << 8) | LSB) & 0x03FF;
+	ret_val = ret_val * multi * 100;
+
+	mutex_unlock(&adv_ec_data->lock);
+	return ret_val;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+		__LINE__);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(read_ad_value);
+
+int read_acpi_value(struct adv_ec_platform_data *adv_ec_data, unsigned char addr,
+		unsigned char *pvalue)
+{
+	int ret;
+	unsigned char value;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_ACPI_RAM_READ, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(addr, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+	value = inb(EC_STATUS_PORT);
+	*pvalue = value;
+
+	mutex_unlock(&adv_ec_data->lock);
+
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+		__LINE__);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(read_acpi_value);
+
+int write_acpi_value(struct adv_ec_platform_data *adv_ec_data, unsigned char addr,
+		unsigned char value)
+{
+	int ret;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_ACPI_DATA_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(addr, EC_STATUS_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(value, EC_STATUS_PORT);
+
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+		__LINE__);
+
+	return ret;
+}
+
+int read_gpio_status(struct adv_ec_platform_data *adv_ec_data, unsigned char PinNumber,
+		unsigned char *pvalue)
+{
+	int ret;
+
+	unsigned char gpio_status_value;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_INDEX_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(PinNumber, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+
+	if (inb(EC_STATUS_PORT) == 0xff) {
+		dev_err(adv_ec_data->dev, "%s: Read Pin Number error!!\n", __func__);
+		mutex_unlock(&adv_ec_data->lock);
+		return -1;
+	}
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_STATUS_READ, EC_COMMAND_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+	gpio_status_value = inb(EC_STATUS_PORT);
+
+	*pvalue = gpio_status_value;
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+		__LINE__);
+	return ret;
+}
+
+int write_gpio_status(struct adv_ec_platform_data *adv_ec_data, unsigned char PinNumber,
+		unsigned char value)
+{
+	int ret;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_INDEX_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(PinNumber, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+
+	if (inb(EC_STATUS_PORT) == 0xff) {
+		mutex_unlock(&adv_ec_data->lock);
+		dev_err(adv_ec_data->dev, "%s: Read Pin Number error!!\n", __func__);
+		return -1;
+	}
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_STATUS_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(value, EC_STATUS_PORT);
+
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+	dev_err(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d", __func__,
+		__LINE__);
+
+	return ret;
+}
+
+int read_gpio_dir(struct adv_ec_platform_data *adv_ec_data, unsigned char PinNumber,
+		unsigned char *pvalue)
+{
+	int ret;
+	unsigned char gpio_dir_value;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_INDEX_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(PinNumber, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+
+	if (inb(EC_STATUS_PORT) == 0xff) {
+		mutex_unlock(&adv_ec_data->lock);
+		dev_err(adv_ec_data->dev, "%s: Read Pin Number error!! line: %d\n", __func__,
+			__LINE__);
+		return -1;
+	}
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_DIR_READ, EC_COMMAND_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+	gpio_dir_value = inb(EC_STATUS_PORT);
+	*pvalue = gpio_dir_value;
+
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+			__LINE__);
+
+	return ret;
+}
+
+int write_gpio_dir(struct adv_ec_platform_data *adv_ec_data, unsigned char PinNumber,
+		unsigned char value)
+{
+	int ret;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_INDEX_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(PinNumber, EC_STATUS_PORT);
+
+	ret = ec_wait_read();
+	if (ret)
+		goto error;
+
+	if (inb(EC_STATUS_PORT) == 0xff) {
+		mutex_unlock(&adv_ec_data->lock);
+		dev_warn(adv_ec_data->dev, "%s: Read Pin Number error!! line: %d\n", __func__,
+			__LINE__);
+
+		return -1;
+	}
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(EC_GPIO_DIR_WRITE, EC_COMMAND_PORT);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(value, EC_STATUS_PORT);
+
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+			__LINE__);
+
+	return ret;
+}
+
+int write_hwram_command(struct adv_ec_platform_data *adv_ec_data, unsigned char data)
+{
+	int ret;
+
+	mutex_lock(&adv_ec_data->lock);
+
+	ret = ec_wait_write();
+	if (ret)
+		goto error;
+	outb(data, EC_COMMAND_PORT);
+
+	mutex_unlock(&adv_ec_data->lock);
+	return 0;
+
+error:
+	mutex_unlock(&adv_ec_data->lock);
+
+	dev_warn(adv_ec_data->dev, "%s: Wait for IBF or OBF too long. line: %d\n", __func__,
+			__LINE__);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(write_hwram_command);
+
+static int adv_ec_get_productname(struct adv_ec_platform_data *adv_ec_data, char *product)
+{
+	const char *vendor, *device;
+	int length = 0;
+
+	/* Check it is Advantech board */
+	vendor = dmi_get_system_info(DMI_SYS_VENDOR);
+	if (memcmp(vendor, "Advantech", sizeof("Advantech")) != 0)
+		return -ENODEV;
+
+	/* Get product model name */
+	device = dmi_get_system_info(DMI_PRODUCT_NAME);
+	if (device) {
+		while ((device[length] != ' ')
+			&& (length < AMI_ADVANTECH_BOARD_ID_LENGTH))
+			length++;
+		memset(product, 0, AMI_ADVANTECH_BOARD_ID_LENGTH);
+		memmove(product, device, length);
+
+		dev_info(adv_ec_data->dev, "BIOS Product Name = %s\n", product);
+
+		return 0;
+	}
+
+	dev_warn(adv_ec_data->dev, "This device is not Advantech Board (%s)!\n", product);
+
+	return -ENODEV;
+}
+
+static const struct mfd_cell adv_ec_sub_cells[] = {
+	{ .name = "adv-ec-brightness", },
+	{ .name = "adv-ec-eeprom", },
+	{ .name = "adv-ec-gpio", },
+	{ .name = "ahc1ec0-hwmon", },
+	{ .name = "adv-ec-led", },
+	{ .name = "ahc1ec0-wdt", },
+};
+
+static int adv_ec_init_ec_data(struct adv_ec_platform_data *adv_ec_data)
+{
+	int ret;
+
+	adv_ec_data->sub_dev_mask = 0;
+	adv_ec_data->sub_dev_nb = 0;
+	adv_ec_data->dym_tbl = NULL;
+	adv_ec_data->bios_product_name = NULL;
+
+	mutex_init(&adv_ec_data->lock);
+
+	/* Get product name */
+	adv_ec_data->bios_product_name =
+		devm_kzalloc(adv_ec_data->dev, AMI_ADVANTECH_BOARD_ID_LENGTH, GFP_KERNEL);
+	if (!adv_ec_data->bios_product_name)
+		return -ENOMEM;
+
+	memset(adv_ec_data->bios_product_name, 0, AMI_ADVANTECH_BOARD_ID_LENGTH);
+	ret = adv_ec_get_productname(adv_ec_data, adv_ec_data->bios_product_name);
+	if (ret)
+		return ret;
+
+	/* Get pin table */
+	adv_ec_data->dym_tbl = devm_kzalloc(adv_ec_data->dev,
+					EC_MAX_TBL_NUM * sizeof(struct ec_dynamic_table),
+					GFP_KERNEL);
+	if (!adv_ec_data->dym_tbl)
+		return -ENOMEM;
+
+	ret = adv_get_dynamic_tab(adv_ec_data);
+
+	return ret;
+}
+
+static int adv_ec_parse_prop(struct adv_ec_platform_data *adv_ec_data)
+{
+	int i, ret;
+	u32 nb, sub_dev[ADVEC_SUBDEV_MAX];
+
+	ret = device_property_read_u32(adv_ec_data->dev, "advantech,sub-dev-nb", &nb);
+	if (ret < 0) {
+		dev_err(adv_ec_data->dev, "get sub-dev-nb failed! (%d)\n", ret);
+		return ret;
+	}
+	adv_ec_data->sub_dev_nb = nb;
+
+	ret = device_property_read_u32_array(adv_ec_data->dev, "advantech,sub-dev",
+					     sub_dev, nb);
+	if (ret < 0) {
+		dev_err(adv_ec_data->dev, "get sub-dev failed! (%d)\n", ret);
+		return ret;
+	}
+
+	for (i = 0; i < nb; i++) {
+		switch (sub_dev[i]) {
+		case ADVEC_SUBDEV_BRIGHTNESS:
+		case ADVEC_SUBDEV_EEPROM:
+		case ADVEC_SUBDEV_GPIO:
+		case ADVEC_SUBDEV_HWMON:
+		case ADVEC_SUBDEV_LED:
+		case ADVEC_SUBDEV_WDT:
+			adv_ec_data->sub_dev_mask |= BIT(sub_dev[i]);
+			break;
+		default:
+			dev_err(adv_ec_data->dev, "invalid prop value(%d)!\n",
+				sub_dev[i]);
+		}
+	}
+	dev_info(adv_ec_data->dev, "sub-dev mask = 0x%x\n", adv_ec_data->sub_dev_mask);
+
+	return 0;
+}
+
+static int adv_ec_probe(struct platform_device *pdev)
+{
+	int ret, i;
+	struct device *dev = &pdev->dev;
+	struct adv_ec_platform_data *adv_ec_data;
+
+	adv_ec_data = devm_kzalloc(dev, sizeof(struct adv_ec_platform_data), GFP_KERNEL);
+	if (!adv_ec_data)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, adv_ec_data);
+	adv_ec_data->dev = dev;
+
+	ret = adv_ec_init_ec_data(adv_ec_data);
+	if (ret)
+		goto err_init_data;
+
+	ret = adv_ec_parse_prop(adv_ec_data);
+	if (ret)
+		goto err_prop;
+
+	/* check whether this EC has the following subdevices. */
+	for (i = 0; i < ARRAY_SIZE(adv_ec_sub_cells); i++) {
+		if (adv_ec_data->sub_dev_mask & BIT(i)) {
+			ret = mfd_add_hotplug_devices(dev, &adv_ec_sub_cells[i], 1);
+			dev_info(adv_ec_data->dev, "mfd_add_hotplug_devices[%d] %s\n", i,
+				adv_ec_sub_cells[i].name);
+			if (ret)
+				dev_err(dev, "failed to add %s subdevice: %d\n",
+					adv_ec_sub_cells[i].name, ret);
+		}
+	}
+
+	dev_info(adv_ec_data->dev, "Advantech EC probe done");
+
+	return 0;
+
+err_prop:
+	dev_err(dev, "failed to probe\n");
+
+err_init_data:
+	mutex_destroy(&adv_ec_data->lock);
+
+	dev_err(dev, "failed to init data\n");
+
+	return ret;
+}
+
+static int adv_ec_remove(struct platform_device *pdev)
+{
+	struct adv_ec_platform_data *adv_ec_data;
+
+	adv_ec_data = dev_get_drvdata(&pdev->dev);
+
+	mutex_destroy(&adv_ec_data->lock);
+
+	mfd_remove_devices(&pdev->dev);
+
+	return 0;
+}
+
+static const struct of_device_id adv_ec_of_match[] __maybe_unused = {
+	{
+		.compatible = "advantech,ahc1ec0",
+	},
+	{}
+};
+MODULE_DEVICE_TABLE(of, adv_ec_of_match);
+
+static const struct acpi_device_id adv_ec_acpi_match[] __maybe_unused = {
+	{"AHC1EC0", 0},
+	{},
+};
+MODULE_DEVICE_TABLE(acpi, adv_ec_acpi_match);
+
+static struct platform_driver adv_ec_driver = {
+	.driver = {
+		.name = DRV_NAME,
+		.of_match_table = of_match_ptr(adv_ec_of_match),
+		.acpi_match_table = ACPI_PTR(adv_ec_acpi_match),
+	},
+	.probe = adv_ec_probe,
+	.remove = adv_ec_remove,
+};
+module_platform_driver(adv_ec_driver);
+
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRV_NAME);
+MODULE_DESCRIPTION("Advantech Embedded Controller core driver.");
+MODULE_AUTHOR("Campion Kang <campion.kang@advantech.com.tw>");
+MODULE_AUTHOR("Jianfeng Dai <jianfeng.dai@advantech.com.cn>");
+MODULE_VERSION("1.0");
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/arizona-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/arizona-core.c
@@ -1430,6 +1430,15 @@
 	arizona_irq_exit(arizona);
 err_pm:
 	pm_runtime_disable(arizona->dev);
+
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
 err_reset:
 	arizona_enable_reset(arizona);
 	regulator_disable(arizona->dcvdd);
@@ -1452,6 +1461,15 @@
 	regulator_disable(arizona->dcvdd);
 	regulator_put(arizona->dcvdd);
 
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
+
 	mfd_remove_devices(arizona->dev);
 	arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
 	arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/axp20x.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/axp20x.c
@@ -126,7 +126,7 @@
 static const struct regmap_range axp288_volatile_ranges[] = {
 	regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP288_POWER_REASON),
 	regmap_reg_range(AXP288_BC_GLOBAL, AXP288_BC_GLOBAL),
-	regmap_reg_range(AXP288_BC_DET_STAT, AXP288_BC_DET_STAT),
+	regmap_reg_range(AXP288_BC_DET_STAT, AXP20X_VBUS_IPSOUT_MGMT),
 	regmap_reg_range(AXP20X_CHRG_BAK_CTRL, AXP20X_CHRG_BAK_CTRL),
 	regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IPSOUT_V_HIGH_L),
 	regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL),
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/bd9571mwv.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/bd9571mwv.c
@@ -185,9 +185,9 @@
 		return ret;
 	}
 
-	ret = mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO, bd9571mwv_cells,
-			      ARRAY_SIZE(bd9571mwv_cells), NULL, 0,
-			      regmap_irq_get_domain(bd->irq_data));
+	ret = devm_mfd_add_devices(bd->dev, PLATFORM_DEVID_AUTO,
+				   bd9571mwv_cells, ARRAY_SIZE(bd9571mwv_cells),
+				   NULL, 0, regmap_irq_get_domain(bd->irq_data));
 	if (ret) {
 		regmap_del_irq_chip(bd->irq, bd->irq_data);
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/da9062-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/da9062-core.c
@@ -248,7 +248,7 @@
 		.name		= "da9062-watchdog",
 		.num_resources	= ARRAY_SIZE(da9062_wdt_resources),
 		.resources	= da9062_wdt_resources,
-		.of_compatible  = "dlg,da9062-wdt",
+		.of_compatible  = "dlg,da9062-watchdog",
 	},
 	{
 		.name		= "da9062-thermal",
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/dln2.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/dln2.c
@@ -90,6 +90,11 @@
 	spinlock_t lock;
 };
 
+enum dln2_endpoint {
+	DLN2_EP_OUT	= 0,
+	DLN2_EP_IN	= 1,
+};
+
 struct dln2_dev {
 	struct usb_device *usb_dev;
 	struct usb_interface *interface;
@@ -282,7 +287,11 @@
 	len = urb->actual_length - sizeof(struct dln2_header);
 
 	if (handle == DLN2_HANDLE_EVENT) {
+		unsigned long flags;
+
+		spin_lock_irqsave(&dln2->event_cb_lock, flags);
 		dln2_run_event_callbacks(dln2, id, echo, data, len);
+		spin_unlock_irqrestore(&dln2->event_cb_lock, flags);
 	} else {
 		/* URB will be re-submitted in _dln2_transfer (free_rx_slot) */
 		if (dln2_transfer_complete(dln2, urb, handle, echo))
@@ -722,6 +731,8 @@
 		      const struct usb_device_id *usb_id)
 {
 	struct usb_host_interface *hostif = interface->cur_altsetting;
+	struct usb_endpoint_descriptor *epin;
+	struct usb_endpoint_descriptor *epout;
 	struct device *dev = &interface->dev;
 	struct dln2_dev *dln2;
 	int ret;
@@ -731,12 +742,19 @@
 	    hostif->desc.bNumEndpoints < 2)
 		return -ENODEV;
 
+	epout = &hostif->endpoint[DLN2_EP_OUT].desc;
+	if (!usb_endpoint_is_bulk_out(epout))
+		return -ENODEV;
+	epin = &hostif->endpoint[DLN2_EP_IN].desc;
+	if (!usb_endpoint_is_bulk_in(epin))
+		return -ENODEV;
+
 	dln2 = kzalloc(sizeof(*dln2), GFP_KERNEL);
 	if (!dln2)
 		return -ENOMEM;
 
-	dln2->ep_out = hostif->endpoint[0].desc.bEndpointAddress;
-	dln2->ep_in = hostif->endpoint[1].desc.bEndpointAddress;
+	dln2->ep_out = epout->bEndpointAddress;
+	dln2->ep_in = epin->bEndpointAddress;
 	dln2->usb_dev = usb_get_dev(interface_to_usbdev(interface));
 	dln2->interface = interface;
 	usb_set_intfdata(interface, dln2);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/intel-lpss-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/intel-lpss-pci.c
@@ -122,13 +122,25 @@
 	.properties = apl_i2c_properties,
 };
 
+static struct property_entry glk_i2c_properties[] = {
+	PROPERTY_ENTRY_U32("i2c-sda-hold-time-ns", 313),
+	PROPERTY_ENTRY_U32("i2c-sda-falling-time-ns", 171),
+	PROPERTY_ENTRY_U32("i2c-scl-falling-time-ns", 290),
+	{ },
+};
+
+static const struct intel_lpss_platform_info glk_i2c_info = {
+	.clk_rate = 133000000,
+	.properties = glk_i2c_properties,
+};
+
 static const struct intel_lpss_platform_info cnl_i2c_info = {
 	.clk_rate = 216000000,
 	.properties = spt_i2c_properties,
 };
 
 static const struct pci_device_id intel_lpss_pci_ids[] = {
-	/* CML */
+	/* CML-LP */
 	{ PCI_VDEVICE(INTEL, 0x02a8), (kernel_ulong_t)&spt_uart_info },
 	{ PCI_VDEVICE(INTEL, 0x02a9), (kernel_ulong_t)&spt_uart_info },
 	{ PCI_VDEVICE(INTEL, 0x02aa), (kernel_ulong_t)&spt_info },
@@ -141,6 +153,17 @@
 	{ PCI_VDEVICE(INTEL, 0x02ea), (kernel_ulong_t)&cnl_i2c_info },
 	{ PCI_VDEVICE(INTEL, 0x02eb), (kernel_ulong_t)&cnl_i2c_info },
 	{ PCI_VDEVICE(INTEL, 0x02fb), (kernel_ulong_t)&spt_info },
+	/* CML-H */
+	{ PCI_VDEVICE(INTEL, 0x06a8), (kernel_ulong_t)&spt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x06a9), (kernel_ulong_t)&spt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x06aa), (kernel_ulong_t)&spt_info },
+	{ PCI_VDEVICE(INTEL, 0x06ab), (kernel_ulong_t)&spt_info },
+	{ PCI_VDEVICE(INTEL, 0x06c7), (kernel_ulong_t)&spt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x06e8), (kernel_ulong_t)&cnl_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x06e9), (kernel_ulong_t)&cnl_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x06ea), (kernel_ulong_t)&cnl_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x06eb), (kernel_ulong_t)&cnl_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x06fb), (kernel_ulong_t)&spt_info },
 	/* BXT A-Step */
 	{ PCI_VDEVICE(INTEL, 0x0aac), (kernel_ulong_t)&bxt_i2c_info },
 	{ PCI_VDEVICE(INTEL, 0x0aae), (kernel_ulong_t)&bxt_i2c_info },
@@ -173,15 +196,18 @@
 	{ PCI_VDEVICE(INTEL, 0x1ac4), (kernel_ulong_t)&bxt_info },
 	{ PCI_VDEVICE(INTEL, 0x1ac6), (kernel_ulong_t)&bxt_info },
 	{ PCI_VDEVICE(INTEL, 0x1aee), (kernel_ulong_t)&bxt_uart_info },
+	/* EBG */
+	{ PCI_VDEVICE(INTEL, 0x1bad), (kernel_ulong_t)&bxt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x1bae), (kernel_ulong_t)&bxt_uart_info },
 	/* GLK */
-	{ PCI_VDEVICE(INTEL, 0x31ac), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31ae), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31b0), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31b2), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31b4), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31b6), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31b8), (kernel_ulong_t)&bxt_i2c_info },
-	{ PCI_VDEVICE(INTEL, 0x31ba), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31ac), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31ae), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31b0), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31b2), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31b4), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31b6), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31b8), (kernel_ulong_t)&glk_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x31ba), (kernel_ulong_t)&glk_i2c_info },
 	{ PCI_VDEVICE(INTEL, 0x31bc), (kernel_ulong_t)&bxt_uart_info },
 	{ PCI_VDEVICE(INTEL, 0x31be), (kernel_ulong_t)&bxt_uart_info },
 	{ PCI_VDEVICE(INTEL, 0x31c0), (kernel_ulong_t)&bxt_uart_info },
@@ -202,6 +228,22 @@
 	{ PCI_VDEVICE(INTEL, 0x34ea), (kernel_ulong_t)&bxt_i2c_info },
 	{ PCI_VDEVICE(INTEL, 0x34eb), (kernel_ulong_t)&bxt_i2c_info },
 	{ PCI_VDEVICE(INTEL, 0x34fb), (kernel_ulong_t)&spt_info },
+	/* TGL-H */
+	{ PCI_VDEVICE(INTEL, 0x43a7), (kernel_ulong_t)&bxt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x43a8), (kernel_ulong_t)&bxt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x43a9), (kernel_ulong_t)&bxt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x43aa), (kernel_ulong_t)&bxt_info },
+	{ PCI_VDEVICE(INTEL, 0x43ab), (kernel_ulong_t)&bxt_info },
+	{ PCI_VDEVICE(INTEL, 0x43ad), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43ae), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43d8), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43da), (kernel_ulong_t)&bxt_uart_info },
+	{ PCI_VDEVICE(INTEL, 0x43e8), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43e9), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43ea), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43eb), (kernel_ulong_t)&bxt_i2c_info },
+	{ PCI_VDEVICE(INTEL, 0x43fb), (kernel_ulong_t)&bxt_info },
+	{ PCI_VDEVICE(INTEL, 0x43fd), (kernel_ulong_t)&bxt_info },
 	/* EHL */
 	{ PCI_VDEVICE(INTEL, 0x4b28), (kernel_ulong_t)&bxt_uart_info },
 	{ PCI_VDEVICE(INTEL, 0x4b29), (kernel_ulong_t)&bxt_uart_info },
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/intel-lpss.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/intel-lpss.c
@@ -384,7 +384,7 @@
 	if (!lpss)
 		return -ENOMEM;
 
-	lpss->priv = devm_ioremap(dev, info->mem->start + LPSS_PRIV_OFFSET,
+	lpss->priv = devm_ioremap_uc(dev, info->mem->start + LPSS_PRIV_OFFSET,
 				  LPSS_PRIV_SIZE);
 	if (!lpss->priv)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/mfd-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/mfd-core.c
@@ -28,6 +28,11 @@
 	const struct mfd_cell *cell = mfd_get_cell(pdev);
 	int err = 0;
 
+	if (!cell->enable) {
+		dev_dbg(&pdev->dev, "No .enable() call-back registered\n");
+		return 0;
+	}
+
 	/* only call enable hook if the cell wasn't previously enabled */
 	if (atomic_inc_return(cell->usage_count) == 1)
 		err = cell->enable(pdev);
@@ -45,6 +50,11 @@
 	const struct mfd_cell *cell = mfd_get_cell(pdev);
 	int err = 0;
 
+	if (!cell->disable) {
+		dev_dbg(&pdev->dev, "No .disable() call-back registered\n");
+		return 0;
+	}
+
 	/* only disable if no other clients are using it */
 	if (atomic_dec_return(cell->usage_count) == 0)
 		err = cell->disable(pdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/rn5t618.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/rn5t618.c
@@ -26,6 +26,7 @@
 	case RN5T618_WATCHDOGCNT:
 	case RN5T618_DCIRQ:
 	case RN5T618_ILIMDATAH ... RN5T618_AIN0DATAL:
+	case RN5T618_ADCCNT3:
 	case RN5T618_IR_ADC1 ... RN5T618_IR_ADC3:
 	case RN5T618_IR_GPR:
 	case RN5T618_IR_GPF:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/sm501.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/sm501.c
@@ -1424,8 +1424,14 @@
 		goto err_claim;
 	}
 
-	return sm501_init_dev(sm);
+	ret = sm501_init_dev(sm);
+	if (ret)
+		goto err_unmap;
 
+	return 0;
+
+ err_unmap:
+	iounmap(sm->regs);
  err_claim:
 	release_resource(sm->regs_claim);
 	kfree(sm->regs_claim);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/sprd-sc27xx-spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/sprd-sc27xx-spi.c
@@ -204,7 +204,7 @@
 	}
 
 	ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq,
-				       IRQF_ONESHOT | IRQF_NO_SUSPEND, 0,
+				       IRQF_ONESHOT, 0,
 				       &ddata->irq_chip, &ddata->irq_data);
 	if (ret) {
 		dev_err(&spi->dev, "Failed to add PMIC irq chip %d\n", ret);
@@ -220,9 +220,34 @@
 		return ret;
 	}
 
+	device_init_wakeup(&spi->dev, true);
 	return 0;
 }
 
+#ifdef CONFIG_PM_SLEEP
+static int sprd_pmic_suspend(struct device *dev)
+{
+	struct sprd_pmic *ddata = dev_get_drvdata(dev);
+
+	if (device_may_wakeup(dev))
+		enable_irq_wake(ddata->irq);
+
+	return 0;
+}
+
+static int sprd_pmic_resume(struct device *dev)
+{
+	struct sprd_pmic *ddata = dev_get_drvdata(dev);
+
+	if (device_may_wakeup(dev))
+		disable_irq_wake(ddata->irq);
+
+	return 0;
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(sprd_pmic_pm_ops, sprd_pmic_suspend, sprd_pmic_resume);
+
 static const struct of_device_id sprd_pmic_match[] = {
 	{ .compatible = "sprd,sc2731", .data = &sc2731_data },
 	{},
@@ -234,6 +259,7 @@
 		.name = "sc27xx-pmic",
 		.bus = &spi_bus_type,
 		.of_match_table = sprd_pmic_match,
+		.pm = &sprd_pmic_pm_ops,
 	},
 	.probe = sprd_pmic_probe,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/stmfx.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/stmfx.c
@@ -287,14 +287,21 @@
 
 	ret = regmap_write(stmfx->map, STMFX_REG_IRQ_OUT_PIN, irqoutpin);
 	if (ret)
-		return ret;
+		goto irq_exit;
 
 	ret = devm_request_threaded_irq(stmfx->dev, client->irq,
 					NULL, stmfx_irq_handler,
 					irqtrigger | IRQF_ONESHOT,
 					"stmfx", stmfx);
 	if (ret)
-		stmfx_irq_exit(client);
+		goto irq_exit;
+
+	stmfx->irq = client->irq;
+
+	return 0;
+
+irq_exit:
+	stmfx_irq_exit(client);
 
 	return ret;
 }
@@ -481,6 +488,8 @@
 	if (ret)
 		return ret;
 
+	disable_irq(stmfx->irq);
+
 	if (stmfx->vdd)
 		return regulator_disable(stmfx->vdd);
 
@@ -501,6 +510,13 @@
 		}
 	}
 
+	/* Reset STMFX - supply has been stopped during suspend */
+	ret = stmfx_chip_reset(stmfx);
+	if (ret) {
+		dev_err(stmfx->dev, "Failed to reset chip: %d\n", ret);
+		return ret;
+	}
+
 	ret = regmap_raw_write(stmfx->map, STMFX_REG_SYS_CTRL,
 			       &stmfx->bkp_sysctrl, sizeof(stmfx->bkp_sysctrl));
 	if (ret)
@@ -517,6 +533,8 @@
 	if (ret)
 		return ret;
 
+	enable_irq(stmfx->irq);
+
 	return 0;
 }
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/wm831x-auxadc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/wm831x-auxadc.c
@@ -93,11 +93,10 @@
 	wait_for_completion_timeout(&req->done, msecs_to_jiffies(500));
 
 	mutex_lock(&wm831x->auxadc_lock);
-
-	list_del(&req->list);
 	ret = req->val;
 
 out:
+	list_del(&req->list);
 	mutex_unlock(&wm831x->auxadc_lock);
 
 	kfree(req);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mfd/wm8994-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mfd/wm8994-core.c
@@ -690,3 +690,4 @@
 MODULE_DESCRIPTION("Core support for the WM8994 audio CODEC");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
+MODULE_SOFTDEP("pre: wm8994_regulator");
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/altera-stapl/altera.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/altera-stapl/altera.c
@@ -2112,8 +2112,8 @@
 	return status;
 }
 
-static int altera_get_note(u8 *p, s32 program_size,
-			s32 *offset, char *key, char *value, int length)
+static int altera_get_note(u8 *p, s32 program_size, s32 *offset,
+			   char *key, char *value, int keylen, int vallen)
 /*
  * Gets key and value of NOTE fields in the JBC file.
  * Can be called in two modes:  if offset pointer is NULL,
@@ -2170,7 +2170,7 @@
 						&p[note_table + (8 * i) + 4])];
 
 				if (value != NULL)
-					strlcpy(value, value_ptr, length);
+					strlcpy(value, value_ptr, vallen);
 
 			}
 		}
@@ -2189,13 +2189,13 @@
 				strlcpy(key, &p[note_strings +
 						get_unaligned_be32(
 						&p[note_table + (8 * i)])],
-					length);
+					keylen);
 
 			if (value != NULL)
 				strlcpy(value, &p[note_strings +
 						get_unaligned_be32(
 						&p[note_table + (8 * i) + 4])],
-					length);
+					vallen);
 
 			*offset = i + 1;
 		}
@@ -2449,7 +2449,7 @@
 			__func__, (format_version == 2) ? "Jam STAPL" :
 						"pre-standardized Jam 1.1");
 		while (altera_get_note((u8 *)fw->data, fw->size,
-					&offset, key, value, 256) == 0)
+					&offset, key, value, 32, 256) == 0)
 			printk(KERN_INFO "%s: NOTE \"%s\" = \"%s\"\n",
 					__func__, key, value);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/atmel-ssc.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/atmel-ssc.c
@@ -10,7 +10,7 @@
 #include <linux/clk.h>
 #include <linux/err.h>
 #include <linux/io.h>
-#include <linux/spinlock.h>
+#include <linux/mutex.h>
 #include <linux/atmel-ssc.h>
 #include <linux/slab.h>
 #include <linux/module.h>
@@ -20,7 +20,7 @@
 #include "../../sound/soc/atmel/atmel_ssc_dai.h"
 
 /* Serialize access to ssc_list and user count */
-static DEFINE_SPINLOCK(user_lock);
+static DEFINE_MUTEX(user_lock);
 static LIST_HEAD(ssc_list);
 
 struct ssc_device *ssc_request(unsigned int ssc_num)
@@ -28,7 +28,7 @@
 	int ssc_valid = 0;
 	struct ssc_device *ssc;
 
-	spin_lock(&user_lock);
+	mutex_lock(&user_lock);
 	list_for_each_entry(ssc, &ssc_list, list) {
 		if (ssc->pdev->dev.of_node) {
 			if (of_alias_get_id(ssc->pdev->dev.of_node, "ssc")
@@ -44,18 +44,18 @@
 	}
 
 	if (!ssc_valid) {
-		spin_unlock(&user_lock);
+		mutex_unlock(&user_lock);
 		pr_err("ssc: ssc%d platform device is missing\n", ssc_num);
 		return ERR_PTR(-ENODEV);
 	}
 
 	if (ssc->user) {
-		spin_unlock(&user_lock);
+		mutex_unlock(&user_lock);
 		dev_dbg(&ssc->pdev->dev, "module busy\n");
 		return ERR_PTR(-EBUSY);
 	}
 	ssc->user++;
-	spin_unlock(&user_lock);
+	mutex_unlock(&user_lock);
 
 	clk_prepare(ssc->clk);
 
@@ -67,14 +67,14 @@
 {
 	bool disable_clk = true;
 
-	spin_lock(&user_lock);
+	mutex_lock(&user_lock);
 	if (ssc->user)
 		ssc->user--;
 	else {
 		disable_clk = false;
 		dev_dbg(&ssc->pdev->dev, "device already free\n");
 	}
-	spin_unlock(&user_lock);
+	mutex_unlock(&user_lock);
 
 	if (disable_clk)
 		clk_unprepare(ssc->clk);
@@ -237,9 +237,9 @@
 		return -ENXIO;
 	}
 
-	spin_lock(&user_lock);
+	mutex_lock(&user_lock);
 	list_add_tail(&ssc->list, &ssc_list);
-	spin_unlock(&user_lock);
+	mutex_unlock(&user_lock);
 
 	platform_set_drvdata(pdev, ssc);
 
@@ -258,9 +258,9 @@
 
 	ssc_sound_dai_remove(ssc);
 
-	spin_lock(&user_lock);
+	mutex_lock(&user_lock);
 	list_del(&ssc->list);
-	spin_unlock(&user_lock);
+	mutex_unlock(&user_lock);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cardreader/rts5227.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cardreader/rts5227.c
@@ -338,6 +338,11 @@
 {
 	rts5227_extra_init_hw(pcr);
 
+	/* Power down OCP for power consumption */
+	if (!pcr->card_exist)
+		rtsx_pci_write_register(pcr, FPDCTL, OC_POWER_DOWN,
+				OC_POWER_DOWN);
+
 	rtsx_pci_write_register(pcr, FUNC_FORCE_CTL, FUNC_FORCE_UPME_XMT_DBG,
 		FUNC_FORCE_UPME_XMT_DBG);
 	rtsx_pci_write_register(pcr, PCLK_CTL, 0x04, 0x04);
@@ -394,7 +399,8 @@
 void rts522a_init_params(struct rtsx_pcr *pcr)
 {
 	rts5227_init_params(pcr);
-
+	pcr->ops = &rts522a_pcr_ops;
+	pcr->tx_initial_phase = SET_CLOCK_PHASE(20, 20, 11);
 	pcr->reg_pm_ctrl3 = RTS522A_PM_CTRL3;
 
 	pcr->option.ocp_en = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cardreader/rts5249.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cardreader/rts5249.c
@@ -618,6 +618,7 @@
 void rts524a_init_params(struct rtsx_pcr *pcr)
 {
 	rts5249_init_params(pcr);
+	pcr->tx_initial_phase = SET_CLOCK_PHASE(27, 29, 11);
 	pcr->option.ltr_l1off_sspwrgate = LTR_L1OFF_SSPWRGATE_5250_DEF;
 	pcr->option.ltr_l1off_snooze_sspwrgate =
 		LTR_L1OFF_SNOOZE_SSPWRGATE_5250_DEF;
@@ -733,6 +734,7 @@
 void rts525a_init_params(struct rtsx_pcr *pcr)
 {
 	rts5249_init_params(pcr);
+	pcr->tx_initial_phase = SET_CLOCK_PHASE(25, 29, 11);
 	pcr->option.ltr_l1off_sspwrgate = LTR_L1OFF_SSPWRGATE_5250_DEF;
 	pcr->option.ltr_l1off_snooze_sspwrgate =
 		LTR_L1OFF_SNOOZE_SSPWRGATE_5250_DEF;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cardreader/rts5260.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cardreader/rts5260.c
@@ -663,7 +663,7 @@
 	pcr->sd30_drive_sel_1v8 = CFG_DRIVER_TYPE_B;
 	pcr->sd30_drive_sel_3v3 = CFG_DRIVER_TYPE_B;
 	pcr->aspm_en = ASPM_L1_EN;
-	pcr->tx_initial_phase = SET_CLOCK_PHASE(1, 29, 16);
+	pcr->tx_initial_phase = SET_CLOCK_PHASE(27, 29, 11);
 	pcr->rx_initial_phase = SET_CLOCK_PHASE(24, 6, 5);
 
 	pcr->ic_version = rts5260_get_ic_version(pcr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cardreader/rtsx_pcr.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cardreader/rtsx_pcr.c
@@ -143,6 +143,9 @@
 
 	rtsx_disable_aspm(pcr);
 
+	/* Fixes DMA transfer timout issue after disabling ASPM on RTS5260 */
+	msleep(1);
+
 	if (option->ltr_enabled)
 		rtsx_set_ltr_latency(pcr, option->ltr_active_latency);
 
@@ -1186,10 +1189,6 @@
 			rtsx_pci_write_register(pcr, REG_OCPGLITCH,
 				SD_OCP_GLITCH_MASK, pcr->hw_param.ocp_glitch);
 			rtsx_pci_enable_ocp(pcr);
-		} else {
-			/* OC power down */
-			rtsx_pci_write_register(pcr, FPDCTL, OC_POWER_DOWN,
-				OC_POWER_DOWN);
 		}
 	}
 }
@@ -1531,12 +1530,14 @@
 	ret = mfd_add_devices(&pcidev->dev, pcr->id, rtsx_pcr_cells,
 			ARRAY_SIZE(rtsx_pcr_cells), NULL, 0, NULL);
 	if (ret < 0)
-		goto disable_irq;
+		goto free_slots;
 
 	schedule_delayed_work(&pcr->idle_work, msecs_to_jiffies(200));
 
 	return 0;
 
+free_slots:
+	kfree(pcr->slots);
 disable_irq:
 	free_irq(pcr->irq, (void *)pcr);
 disable_msi:
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cxl/flash.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cxl/flash.c
@@ -473,12 +473,6 @@
 		return -EINVAL;
 }
 
-static long device_compat_ioctl(struct file *file, unsigned int cmd,
-				unsigned long arg)
-{
-	return device_ioctl(file, cmd, arg);
-}
-
 static int device_close(struct inode *inode, struct file *file)
 {
 	struct cxl *adapter = file->private_data;
@@ -514,7 +508,7 @@
 	.owner		= THIS_MODULE,
 	.open		= device_open,
 	.unlocked_ioctl	= device_ioctl,
-	.compat_ioctl	= device_compat_ioctl,
+	.compat_ioctl	= compat_ptr_ioctl,
 	.release	= device_close,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cxl/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cxl/pci.c
@@ -393,8 +393,8 @@
 	*capp_unit_id = get_capp_unit_id(np, *phb_index);
 	of_node_put(np);
 	if (!*capp_unit_id) {
-		pr_err("cxl: invalid capp unit id (phb_index: %d)\n",
-		       *phb_index);
+		pr_err("cxl: No capp unit found for PHB[%lld,%d]. Make sure the adapter is on a capi-compatible slot\n",
+		       *chipid, *phb_index);
 		return -ENODEV;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/cxl/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/cxl/sysfs.c
@@ -624,7 +624,7 @@
 	rc = kobject_init_and_add(&cr->kobj, &afu_config_record_type,
 				  &afu->dev.kobj, "cr%i", cr->cr);
 	if (rc)
-		goto err;
+		goto err1;
 
 	rc = sysfs_create_bin_file(&cr->kobj, &cr->config_attr);
 	if (rc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/eeprom/at25.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/eeprom/at25.c
@@ -358,7 +358,7 @@
 	at25->nvmem_config.reg_read = at25_ee_read;
 	at25->nvmem_config.reg_write = at25_ee_write;
 	at25->nvmem_config.priv = at25;
-	at25->nvmem_config.stride = 4;
+	at25->nvmem_config.stride = 1;
 	at25->nvmem_config.word_size = 1;
 	at25->nvmem_config.size = chip.byte_len;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/eeprom/eeprom_93xx46.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/eeprom/eeprom_93xx46.c
@@ -35,6 +35,10 @@
 		  EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH,
 };
 
+static const struct eeprom_93xx46_devtype_data microchip_93lc46b_data = {
+	.quirks = EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE,
+};
+
 struct eeprom_93xx46_dev {
 	struct spi_device *spi;
 	struct eeprom_93xx46_platform_data *pdata;
@@ -55,6 +59,11 @@
 	return edev->pdata->quirks & EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH;
 }
 
+static inline bool has_quirk_extra_read_cycle(struct eeprom_93xx46_dev *edev)
+{
+	return edev->pdata->quirks & EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE;
+}
+
 static int eeprom_93xx46_read(void *priv, unsigned int off,
 			      void *val, size_t count)
 {
@@ -96,6 +105,11 @@
 		dev_dbg(&edev->spi->dev, "read cmd 0x%x, %d Hz\n",
 			cmd_addr, edev->spi->max_speed_hz);
 
+		if (has_quirk_extra_read_cycle(edev)) {
+			cmd_addr <<= 1;
+			bits += 1;
+		}
+
 		spi_message_init(&m);
 
 		t[0].tx_buf = (char *)&cmd_addr;
@@ -363,6 +377,7 @@
 static const struct of_device_id eeprom_93xx46_of_table[] = {
 	{ .compatible = "eeprom-93xx46", },
 	{ .compatible = "atmel,at93c46d", .data = &atmel_at93c46d_data, },
+	{ .compatible = "microchip,93lc46b", .data = &microchip_93lc46b_data, },
 	{}
 };
 MODULE_DEVICE_TABLE(of, eeprom_93xx46_of_table);
@@ -511,3 +526,4 @@
 MODULE_DESCRIPTION("Driver for 93xx46 EEPROMs");
 MODULE_AUTHOR("Anatolij Gustschin <agust@denx.de>");
 MODULE_ALIAS("spi:93xx46");
+MODULE_ALIAS("spi:eeprom-93xx46");
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/enclosure.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/enclosure.c
@@ -406,10 +406,9 @@
 		cdev = &edev->component[i];
 		if (cdev->dev == dev) {
 			enclosure_remove_links(cdev);
-			device_del(&cdev->cdev);
 			put_device(dev);
 			cdev->dev = NULL;
-			return device_add(&cdev->cdev);
+			return 0;
 		}
 	}
 	return -ENODEV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/fastrpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/fastrpc.c
@@ -886,6 +886,7 @@
 	struct fastrpc_channel_ctx *cctx;
 	struct fastrpc_user *fl = ctx->fl;
 	struct fastrpc_msg *msg = &ctx->msg;
+	int ret;
 
 	cctx = fl->cctx;
 	msg->pid = fl->tgid;
@@ -901,7 +902,13 @@
 	msg->size = roundup(ctx->msg_sz, PAGE_SIZE);
 	fastrpc_context_get(ctx);
 
-	return rpmsg_send(cctx->rpdev->ept, (void *)msg, sizeof(*msg));
+	ret = rpmsg_send(cctx->rpdev->ept, (void *)msg, sizeof(*msg));
+
+	if (ret)
+		fastrpc_context_put(ctx);
+
+	return ret;
+
 }
 
 static int fastrpc_internal_invoke(struct fastrpc_user *fl,  u32 kernel,
@@ -917,6 +924,11 @@
 	if (!fl->cctx->rpdev)
 		return -EPIPE;
 
+	if (handle == FASTRPC_INIT_HANDLE && !kernel) {
+		dev_warn_ratelimited(fl->sctx->dev, "user app trying to send a kernel RPC message (%d)\n",  handle);
+		return -EPERM;
+	}
+
 	ctx = fastrpc_context_alloc(fl, kernel, sc, args);
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
@@ -1430,12 +1442,14 @@
 		return -ENOMEM;
 
 	data->miscdev.minor = MISC_DYNAMIC_MINOR;
-	data->miscdev.name = kasprintf(GFP_KERNEL, "fastrpc-%s",
-				domains[domain_id]);
+	data->miscdev.name = devm_kasprintf(rdev, GFP_KERNEL, "fastrpc-%s",
+					    domains[domain_id]);
 	data->miscdev.fops = &fastrpc_fops;
 	err = misc_register(&data->miscdev);
-	if (err)
+	if (err) {
+		kfree(data);
 		return err;
+	}
 
 	kref_init(&data->refcount);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/genwqe/card_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/genwqe/card_dev.c
@@ -1215,34 +1215,13 @@
 	return rc;
 }
 
-#if defined(CONFIG_COMPAT)
-/**
- * genwqe_compat_ioctl() - Compatibility ioctl
- *
- * Called whenever a 32-bit process running under a 64-bit kernel
- * performs an ioctl on /dev/genwqe<n>_card.
- *
- * @filp:        file pointer.
- * @cmd:         command.
- * @arg:         user argument.
- * Return:       zero on success or negative number on failure.
- */
-static long genwqe_compat_ioctl(struct file *filp, unsigned int cmd,
-				unsigned long arg)
-{
-	return genwqe_ioctl(filp, cmd, arg);
-}
-#endif /* defined(CONFIG_COMPAT) */
-
 static const struct file_operations genwqe_fops = {
 	.owner		= THIS_MODULE,
 	.open		= genwqe_open,
 	.fasync		= genwqe_fasync,
 	.mmap		= genwqe_mmap,
 	.unlocked_ioctl	= genwqe_ioctl,
-#if defined(CONFIG_COMPAT)
-	.compat_ioctl   = genwqe_compat_ioctl,
-#endif
+	.compat_ioctl   = compat_ptr_ioctl,
 	.release	= genwqe_release,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/command_submission.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/command_submission.c
@@ -777,8 +777,9 @@
 	memset(args, 0, sizeof(*args));
 
 	if (rc < 0) {
-		dev_err(hdev->dev, "Error %ld on waiting for CS handle %llu\n",
-			rc, seq);
+		dev_err_ratelimited(hdev->dev,
+				"Error %ld on waiting for CS handle %llu\n",
+				rc, seq);
 		if (rc == -ERESTARTSYS) {
 			args->out.status = HL_WAIT_CS_STATUS_INTERRUPTED;
 			rc = -EINTR;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/context.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/context.c
@@ -176,7 +176,7 @@
 	spin_lock(&ctx->cs_lock);
 
 	if (seq >= ctx->cs_sequence) {
-		dev_notice(hdev->dev,
+		dev_notice_ratelimited(hdev->dev,
 			"Can't wait on seq %llu because current CS is at seq %llu\n",
 			seq, ctx->cs_sequence);
 		spin_unlock(&ctx->cs_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/device.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/device.c
@@ -229,16 +229,16 @@
 
 static void device_cdev_sysfs_del(struct hl_device *hdev)
 {
-	/* device_release() won't be called so must free devices explicitly */
-	if (!hdev->cdev_sysfs_created) {
-		kfree(hdev->dev_ctrl);
-		kfree(hdev->dev);
-		return;
-	}
+	if (!hdev->cdev_sysfs_created)
+		goto put_devices;
 
 	hl_sysfs_fini(hdev);
 	cdev_device_del(&hdev->cdev_ctrl, hdev->dev_ctrl);
 	cdev_device_del(&hdev->cdev, hdev->dev);
+
+put_devices:
+	put_device(hdev->dev);
+	put_device(hdev->dev_ctrl);
 }
 
 /*
@@ -600,7 +600,9 @@
 			goto out;
 		}
 
-		hdev->asic_funcs->halt_coresight(hdev);
+		if (!hdev->hard_reset_pending)
+			hdev->asic_funcs->halt_coresight(hdev);
+
 		hdev->in_debug = 0;
 
 		goto out;
@@ -957,6 +959,7 @@
 						GFP_KERNEL);
 		if (!hdev->kernel_ctx) {
 			rc = -ENOMEM;
+			hl_mmu_fini(hdev);
 			goto out_err;
 		}
 
@@ -968,6 +971,7 @@
 				"failed to init kernel ctx in hard reset\n");
 			kfree(hdev->kernel_ctx);
 			hdev->kernel_ctx = NULL;
+			hl_mmu_fini(hdev);
 			goto out_err;
 		}
 	}
@@ -1185,6 +1189,7 @@
 	if (hdev->asic_funcs->get_hw_state(hdev) == HL_DEVICE_HW_STATE_DIRTY) {
 		dev_info(hdev->dev,
 			"H/W state is dirty, must reset before initializing\n");
+		hdev->asic_funcs->halt_engines(hdev, true);
 		hdev->asic_funcs->hw_fini(hdev, true);
 	}
 
@@ -1282,9 +1287,9 @@
 early_fini:
 	device_early_fini(hdev);
 free_dev_ctrl:
-	kfree(hdev->dev_ctrl);
+	put_device(hdev->dev_ctrl);
 free_dev:
-	kfree(hdev->dev);
+	put_device(hdev->dev);
 out_disabled:
 	hdev->disabled = true;
 	if (add_cdev_sysfs_on_err)
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/firmware_if.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/firmware_if.c
@@ -11,6 +11,7 @@
 #include <linux/genalloc.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
 
+#define FW_FILE_MAX_SIZE	0x1400000 /* maximum size of 20MB */
 /**
  * hl_fw_push_fw_to_device() - Push FW code to device.
  * @hdev: pointer to hl_device structure.
@@ -43,6 +44,14 @@
 
 	dev_dbg(hdev->dev, "%s firmware size == %zu\n", fw_name, fw_size);
 
+	if (fw_size > FW_FILE_MAX_SIZE) {
+		dev_err(hdev->dev,
+			"FW file size %zu exceeds maximum of %u bytes\n",
+			fw_size, FW_FILE_MAX_SIZE);
+		rc = -EINVAL;
+		goto out;
+	}
+
 	fw_data = (const u64 *) fw->data;
 
 	memcpy_toio(dst, fw_data, fw_size);
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/goya/goya.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/goya/goya.c
@@ -869,6 +869,11 @@
  */
 static void goya_disable_external_queues(struct hl_device *hdev)
 {
+	struct goya_device *goya = hdev->asic_specific;
+
+	if (!(goya->hw_cap_initialized & HW_CAP_DMA))
+		return;
+
 	WREG32(mmDMA_QM_0_GLBL_CFG0, 0);
 	WREG32(mmDMA_QM_1_GLBL_CFG0, 0);
 	WREG32(mmDMA_QM_2_GLBL_CFG0, 0);
@@ -930,6 +935,11 @@
 {
 	int rc, retval = 0;
 
+	struct goya_device *goya = hdev->asic_specific;
+
+	if (!(goya->hw_cap_initialized & HW_CAP_DMA))
+		return retval;
+
 	rc = goya_stop_queue(hdev,
 			mmDMA_QM_0_GLBL_CFG1,
 			mmDMA_QM_0_CP_STS,
@@ -1719,9 +1729,18 @@
  */
 static void goya_disable_internal_queues(struct hl_device *hdev)
 {
+	struct goya_device *goya = hdev->asic_specific;
+
+	if (!(goya->hw_cap_initialized & HW_CAP_MME))
+		goto disable_tpc;
+
 	WREG32(mmMME_QM_GLBL_CFG0, 0);
 	WREG32(mmMME_CMDQ_GLBL_CFG0, 0);
 
+disable_tpc:
+	if (!(goya->hw_cap_initialized & HW_CAP_TPC))
+		return;
+
 	WREG32(mmTPC0_QM_GLBL_CFG0, 0);
 	WREG32(mmTPC0_CMDQ_GLBL_CFG0, 0);
 
@@ -1757,8 +1776,12 @@
  */
 static int goya_stop_internal_queues(struct hl_device *hdev)
 {
+	struct goya_device *goya = hdev->asic_specific;
 	int rc, retval = 0;
 
+	if (!(goya->hw_cap_initialized & HW_CAP_MME))
+		goto stop_tpc;
+
 	/*
 	 * Each queue (QMAN) is a separate H/W logic. That means that each
 	 * QMAN can be stopped independently and failure to stop one does NOT
@@ -1785,6 +1808,10 @@
 		retval = -EIO;
 	}
 
+stop_tpc:
+	if (!(goya->hw_cap_initialized & HW_CAP_TPC))
+		return retval;
+
 	rc = goya_stop_queue(hdev,
 			mmTPC0_QM_GLBL_CFG1,
 			mmTPC0_QM_CP_STS,
@@ -1950,6 +1977,11 @@
 
 static void goya_dma_stall(struct hl_device *hdev)
 {
+	struct goya_device *goya = hdev->asic_specific;
+
+	if (!(goya->hw_cap_initialized & HW_CAP_DMA))
+		return;
+
 	WREG32(mmDMA_QM_0_GLBL_CFG1, 1 << DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT);
 	WREG32(mmDMA_QM_1_GLBL_CFG1, 1 << DMA_QM_1_GLBL_CFG1_DMA_STOP_SHIFT);
 	WREG32(mmDMA_QM_2_GLBL_CFG1, 1 << DMA_QM_2_GLBL_CFG1_DMA_STOP_SHIFT);
@@ -1959,6 +1991,11 @@
 
 static void goya_tpc_stall(struct hl_device *hdev)
 {
+	struct goya_device *goya = hdev->asic_specific;
+
+	if (!(goya->hw_cap_initialized & HW_CAP_TPC))
+		return;
+
 	WREG32(mmTPC0_CFG_TPC_STALL, 1 << TPC0_CFG_TPC_STALL_V_SHIFT);
 	WREG32(mmTPC1_CFG_TPC_STALL, 1 << TPC1_CFG_TPC_STALL_V_SHIFT);
 	WREG32(mmTPC2_CFG_TPC_STALL, 1 << TPC2_CFG_TPC_STALL_V_SHIFT);
@@ -1971,6 +2008,11 @@
 
 static void goya_mme_stall(struct hl_device *hdev)
 {
+	struct goya_device *goya = hdev->asic_specific;
+
+	if (!(goya->hw_cap_initialized & HW_CAP_MME))
+		return;
+
 	WREG32(mmMME_STALL, 0xFFFFFFFF);
 }
 
@@ -2171,7 +2213,7 @@
 
 static int goya_pldm_init_cpu(struct hl_device *hdev)
 {
-	u32 val, unit_rst_val;
+	u32 unit_rst_val;
 	int rc;
 
 	/* Must initialize SRAM scrambler before pushing u-boot to SRAM */
@@ -2179,14 +2221,14 @@
 
 	/* Put ARM cores into reset */
 	WREG32(mmCPU_CA53_CFG_ARM_RST_CONTROL, CPU_RESET_ASSERT);
-	val = RREG32(mmCPU_CA53_CFG_ARM_RST_CONTROL);
+	RREG32(mmCPU_CA53_CFG_ARM_RST_CONTROL);
 
 	/* Reset the CA53 MACRO */
 	unit_rst_val = RREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N);
 	WREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N, CA53_RESET);
-	val = RREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N);
+	RREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N);
 	WREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N, unit_rst_val);
-	val = RREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N);
+	RREG32(mmPSOC_GLOBAL_CONF_UNIT_RST_N);
 
 	rc = goya_push_uboot_to_device(hdev);
 	if (rc)
@@ -2207,7 +2249,7 @@
 	/* Release ARM core 0 from reset */
 	WREG32(mmCPU_CA53_CFG_ARM_RST_CONTROL,
 					CPU_RESET_CORE0_DEASSERT);
-	val = RREG32(mmCPU_CA53_CFG_ARM_RST_CONTROL);
+	RREG32(mmCPU_CA53_CFG_ARM_RST_CONTROL);
 
 	return 0;
 }
@@ -2475,13 +2517,12 @@
 static int goya_hw_init(struct hl_device *hdev)
 {
 	struct asic_fixed_properties *prop = &hdev->asic_prop;
-	u32 val;
 	int rc;
 
 	dev_info(hdev->dev, "Starting initialization of H/W\n");
 
 	/* Perform read from the device to make sure device is up */
-	val = RREG32(mmPCIE_DBI_DEVICE_ID_VENDOR_ID_REG);
+	RREG32(mmPCIE_DBI_DEVICE_ID_VENDOR_ID_REG);
 
 	/*
 	 * Let's mark in the H/W that we have reached this point. We check
@@ -2533,7 +2574,7 @@
 		goto disable_queues;
 
 	/* Perform read from the device to flush all MSI-X configuration */
-	val = RREG32(mmPCIE_DBI_DEVICE_ID_VENDOR_ID_REG);
+	RREG32(mmPCIE_DBI_DEVICE_ID_VENDOR_ID_REG);
 
 	return 0;
 
@@ -4625,8 +4666,6 @@
 
 	rc = goya_send_job_on_qman0(hdev, job);
 
-	hl_cb_put(job->patched_cb);
-
 	hl_debugfs_remove_job(hdev, job);
 	kfree(job);
 	cb->cs_cnt--;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/goya/goya_security.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/goya/goya_security.c
@@ -695,7 +695,6 @@
 	mask |= 1 << ((mmTPC0_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC0_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
-	mask |= 1 << ((mmTPC0_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC0_CFG_TPC_STALL & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC0_CFG_MSS_CONFIG & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC0_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
@@ -875,6 +874,16 @@
 	goya_pb_set_block(hdev, mmTPC1_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC1_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC1_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC1_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC1_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
 	word_offset = ((mmTPC1_CFG_CFG_BASE_ADDRESS_HIGH &
 			PROT_BITS_OFFS) >> 7) << 2;
@@ -882,6 +891,10 @@
 	mask |= 1 << ((mmTPC1_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC1_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC1_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
@@ -1057,6 +1070,16 @@
 	goya_pb_set_block(hdev, mmTPC2_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC2_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC2_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC2_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC2_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
 	word_offset = ((mmTPC2_CFG_CFG_BASE_ADDRESS_HIGH &
 			PROT_BITS_OFFS) >> 7) << 2;
@@ -1064,6 +1087,10 @@
 	mask |= 1 << ((mmTPC2_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC2_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC2_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC2_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
@@ -1239,6 +1266,16 @@
 	goya_pb_set_block(hdev, mmTPC3_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC3_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC3_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC3_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC3_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
 	word_offset = ((mmTPC3_CFG_CFG_BASE_ADDRESS_HIGH
 			& PROT_BITS_OFFS) >> 7) << 2;
@@ -1246,6 +1283,10 @@
 	mask |= 1 << ((mmTPC3_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC3_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC3_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC3_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
@@ -1421,6 +1462,16 @@
 	goya_pb_set_block(hdev, mmTPC4_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC4_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC4_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC4_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC4_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
 	word_offset = ((mmTPC4_CFG_CFG_BASE_ADDRESS_HIGH &
 			PROT_BITS_OFFS) >> 7) << 2;
@@ -1428,6 +1479,10 @@
 	mask |= 1 << ((mmTPC4_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC4_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC4_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC4_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
@@ -1603,6 +1658,16 @@
 	goya_pb_set_block(hdev, mmTPC5_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC5_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC5_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC5_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC5_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
 	word_offset = ((mmTPC5_CFG_CFG_BASE_ADDRESS_HIGH &
 			PROT_BITS_OFFS) >> 7) << 2;
@@ -1610,6 +1675,10 @@
 	mask |= 1 << ((mmTPC5_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC5_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC5_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC5_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
@@ -1785,6 +1854,16 @@
 	goya_pb_set_block(hdev, mmTPC6_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC6_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC6_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC6_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC6_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) + PROT_BITS_OFFS;
 	word_offset = ((mmTPC6_CFG_CFG_BASE_ADDRESS_HIGH &
 			PROT_BITS_OFFS) >> 7) << 2;
@@ -1792,6 +1871,10 @@
 	mask |= 1 << ((mmTPC6_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC6_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC6_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC6_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
@@ -1967,6 +2050,16 @@
 	goya_pb_set_block(hdev, mmTPC7_RD_REGULATOR_BASE);
 	goya_pb_set_block(hdev, mmTPC7_WR_REGULATOR_BASE);
 
+	pb_addr = (mmTPC7_CFG_SEMAPHORE & ~0xFFF) + PROT_BITS_OFFS;
+	word_offset = ((mmTPC7_CFG_SEMAPHORE & PROT_BITS_OFFS) >> 7) << 2;
+
+	mask = 1 << ((mmTPC7_CFG_SEMAPHORE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_VFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_SFLAGS & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_STATUS & 0x7F) >> 2);
+
+	WREG32(pb_addr + word_offset, ~mask);
+
 	pb_addr = (mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH & ~0xFFF) +	PROT_BITS_OFFS;
 	word_offset = ((mmTPC7_CFG_CFG_BASE_ADDRESS_HIGH &
 			PROT_BITS_OFFS) >> 7) << 2;
@@ -1974,6 +2067,10 @@
 	mask |= 1 << ((mmTPC7_CFG_CFG_SUBTRACT_VALUE & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC7_CFG_SM_BASE_ADDRESS_LOW & 0x7F) >> 2);
 	mask |= 1 << ((mmTPC7_CFG_SM_BASE_ADDRESS_HIGH & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_TPC_STALL & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_MSS_CONFIG & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_TPC_INTR_CAUSE & 0x7F) >> 2);
+	mask |= 1 << ((mmTPC7_CFG_TPC_INTR_MASK & 0x7F) >> 2);
 
 	WREG32(pb_addr + word_offset, ~mask);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/habanalabs.h
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/habanalabs.h
@@ -23,7 +23,7 @@
 
 #define HL_MMAP_CB_MASK			(0x8000000000000000ull >> PAGE_SHIFT)
 
-#define HL_PENDING_RESET_PER_SEC	5
+#define HL_PENDING_RESET_PER_SEC	30
 
 #define HL_DEVICE_TIMEOUT_USEC		1000000 /* 1 s */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/habanalabs_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/habanalabs_drv.c
@@ -443,6 +443,7 @@
 	.id_table = ids,
 	.probe = hl_pci_probe,
 	.remove = hl_pci_remove,
+	.shutdown = hl_pci_remove,
 	.driver.pm = &hl_pm_ops,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/memory.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/memory.c
@@ -67,6 +67,11 @@
 	num_pgs = (args->alloc.mem_size + (page_size - 1)) >> page_shift;
 	total_size = num_pgs << page_shift;
 
+	if (!total_size) {
+		dev_err(hdev->dev, "Cannot allocate 0 bytes\n");
+		return -EINVAL;
+	}
+
 	contiguous = args->flags & HL_MEM_CONTIGUOUS;
 
 	if (contiguous) {
@@ -94,7 +99,7 @@
 	phys_pg_pack->contiguous = contiguous;
 
 	phys_pg_pack->pages = kvmalloc_array(num_pgs, sizeof(u64), GFP_KERNEL);
-	if (!phys_pg_pack->pages) {
+	if (ZERO_OR_NULL_PTR(phys_pg_pack->pages)) {
 		rc = -ENOMEM;
 		goto pages_arr_err;
 	}
@@ -689,7 +694,7 @@
 
 	phys_pg_pack->pages = kvmalloc_array(total_npages, sizeof(u64),
 						GFP_KERNEL);
-	if (!phys_pg_pack->pages) {
+	if (ZERO_OR_NULL_PTR(phys_pg_pack->pages)) {
 		rc = -ENOMEM;
 		goto page_pack_arr_mem_err;
 	}
@@ -965,17 +970,19 @@
  *
  * @ctx                 : current context
  * @vaddr               : device virtual address to unmap
+ * @ctx_free            : true if in context free flow, false otherwise.
  *
  * This function does the following:
  * - Unmap the physical pages related to the given virtual address
  * - return the device virtual block to the virtual block list
  */
-static int unmap_device_va(struct hl_ctx *ctx, u64 vaddr)
+static int unmap_device_va(struct hl_ctx *ctx, u64 vaddr, bool ctx_free)
 {
 	struct hl_device *hdev = ctx->hdev;
 	struct hl_vm_phys_pg_pack *phys_pg_pack = NULL;
 	struct hl_vm_hash_node *hnode = NULL;
 	struct hl_userptr *userptr = NULL;
+	struct hl_va_range *va_range;
 	enum vm_type_t *vm_type;
 	u64 next_vaddr, i;
 	u32 page_size;
@@ -1003,6 +1010,7 @@
 
 	if (*vm_type == VM_TYPE_USERPTR) {
 		is_userptr = true;
+		va_range = &ctx->host_va_range;
 		userptr = hnode->ptr;
 		rc = init_phys_pg_pack_from_userptr(ctx, userptr,
 				&phys_pg_pack);
@@ -1014,6 +1022,7 @@
 		}
 	} else if (*vm_type == VM_TYPE_PHYS_PACK) {
 		is_userptr = false;
+		va_range = &ctx->dram_va_range;
 		phys_pg_pack = hnode->ptr;
 	} else {
 		dev_warn(hdev->dev,
@@ -1052,12 +1061,18 @@
 
 	mutex_unlock(&ctx->mmu_lock);
 
-	if (add_va_block(hdev,
-			is_userptr ? &ctx->host_va_range : &ctx->dram_va_range,
-			vaddr,
-			vaddr + phys_pg_pack->total_size - 1))
-		dev_warn(hdev->dev, "add va block failed for vaddr: 0x%llx\n",
-				vaddr);
+	/*
+	 * No point in maintaining the free VA block list if the context is
+	 * closing as the list will be freed anyway
+	 */
+	if (!ctx_free) {
+		rc = add_va_block(hdev, va_range, vaddr,
+					vaddr + phys_pg_pack->total_size - 1);
+		if (rc)
+			dev_warn(hdev->dev,
+					"add va block failed for vaddr: 0x%llx\n",
+					vaddr);
+	}
 
 	atomic_dec(&phys_pg_pack->mapping_cnt);
 	kfree(hnode);
@@ -1189,8 +1204,8 @@
 		break;
 
 	case HL_MEM_OP_UNMAP:
-		rc = unmap_device_va(ctx,
-				args->in.unmap.device_virt_addr);
+		rc = unmap_device_va(ctx, args->in.unmap.device_virt_addr,
+					false);
 		break;
 
 	default:
@@ -1620,7 +1635,7 @@
 		dev_dbg(hdev->dev,
 			"hl_mem_hash_node of vaddr 0x%llx of asid %d is still alive\n",
 			hnode->vaddr, ctx->asid);
-		unmap_device_va(ctx, hnode->vaddr);
+		unmap_device_va(ctx, hnode->vaddr, true);
 	}
 
 	spin_lock(&vm->idr_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/habanalabs/mmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/habanalabs/mmu.c
@@ -422,7 +422,7 @@
 	hdev->mmu_shadow_hop0 = kvmalloc_array(prop->max_asid,
 					prop->mmu_hop_table_size,
 					GFP_KERNEL | __GFP_ZERO);
-	if (!hdev->mmu_shadow_hop0) {
+	if (ZERO_OR_NULL_PTR(hdev->mmu_shadow_hop0)) {
 		rc = -ENOMEM;
 		goto err_pool_add;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/lkdtm/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/misc/lkdtm/Makefile
@@ -16,7 +16,7 @@
 
 OBJCOPYFLAGS :=
 OBJCOPYFLAGS_rodata_objcopy.o	:= \
-			--rename-section .text=.rodata,alloc,readonly,load
+			--rename-section .noinstr.text=.rodata,alloc,readonly,load
 targets += rodata.o rodata_objcopy.o
 $(obj)/rodata_objcopy.o: $(obj)/rodata.o FORCE
 	$(call if_changed,objcopy)
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/lkdtm/bugs.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/lkdtm/bugs.c
@@ -274,7 +274,7 @@
 
 void lkdtm_UNSET_SMEP(void)
 {
-#ifdef CONFIG_X86_64
+#if IS_ENABLED(CONFIG_X86_64) && !IS_ENABLED(CONFIG_UML)
 #define MOV_CR4_DEPTH	64
 	void (*direct_write_cr4)(unsigned long val);
 	unsigned char *insn;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/lkdtm/rodata.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/lkdtm/rodata.c
@@ -5,7 +5,7 @@
  */
 #include "lkdtm.h"
 
-void notrace lkdtm_rodata_do_nothing(void)
+void noinstr lkdtm_rodata_do_nothing(void)
 {
 	/* Does nothing. We just want an architecture agnostic "return". */
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/bus.c
@@ -745,9 +745,8 @@
 
 	mei_cl_bus_module_put(cldev);
 	module_put(THIS_MODULE);
-	dev->driver = NULL;
-	return ret;
 
+	return ret;
 }
 
 static ssize_t name_show(struct device *dev, struct device_attribute *a,
@@ -873,15 +872,16 @@
 
 /**
  * mei_cl_bus_set_name - set device name for me client device
+ *  <controller>-<client device>
+ *  Example: 0000:00:16.0-55213584-9a29-4916-badf-0fb7ed682aeb
  *
  * @cldev: me client device
  */
 static inline void mei_cl_bus_set_name(struct mei_cl_device *cldev)
 {
-	dev_set_name(&cldev->dev, "mei:%s:%pUl:%02X",
-		     cldev->name,
-		     mei_me_cl_uuid(cldev->me_cl),
-		     mei_me_cl_ver(cldev->me_cl));
+	dev_set_name(&cldev->dev, "%s-%pUl",
+		     dev_name(cldev->bus->dev),
+		     mei_me_cl_uuid(cldev->me_cl));
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/client.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/client.c
@@ -266,6 +266,7 @@
 	down_write(&dev->me_clients_rwsem);
 	me_cl = __mei_me_cl_by_uuid(dev, uuid);
 	__mei_me_cl_del(dev, me_cl);
+	mei_me_cl_put(me_cl);
 	up_write(&dev->me_clients_rwsem);
 }
 
@@ -287,6 +288,7 @@
 	down_write(&dev->me_clients_rwsem);
 	me_cl = __mei_me_cl_by_uuid_id(dev, uuid, id);
 	__mei_me_cl_del(dev, me_cl);
+	mei_me_cl_put(me_cl);
 	up_write(&dev->me_clients_rwsem);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/client.h
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/client.h
@@ -128,11 +128,11 @@
  *
  * @cl: host client
  *
- * Return: mtu
+ * Return: mtu or 0 if client is not connected
  */
 static inline size_t mei_cl_mtu(const struct mei_cl *cl)
 {
-	return cl->me_cl->props.max_msg_length;
+	return cl->me_cl ? cl->me_cl->props.max_msg_length : 0;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/hbm.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/hbm.c
@@ -1300,7 +1300,7 @@
 			return -EPROTO;
 		}
 
-		dev->dev_state = MEI_DEV_POWER_DOWN;
+		mei_set_devstate(dev, MEI_DEV_POWER_DOWN);
 		dev_info(dev->dev, "hbm: stop response: resetting.\n");
 		/* force the reset */
 		return -EPROTO;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/hdcp/mei_hdcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -758,11 +758,38 @@
 	.unbind = mei_component_master_unbind,
 };
 
+/**
+ * mei_hdcp_component_match - compare function for matching mei hdcp.
+ *
+ *    The function checks if the driver is i915, the subcomponent is HDCP
+ *    and the grand parent of hdcp and the parent of i915 are the same
+ *    PCH device.
+ *
+ * @dev: master device
+ * @subcomponent: subcomponent to match (I915_COMPONENT_HDCP)
+ * @data: compare data (mei hdcp device)
+ *
+ * Return:
+ * * 1 - if components match
+ * * 0 - otherwise
+ */
 static int mei_hdcp_component_match(struct device *dev, int subcomponent,
 				    void *data)
 {
-	return !strcmp(dev->driver->name, "i915") &&
-	       subcomponent == I915_COMPONENT_HDCP;
+	struct device *base = data;
+
+	if (strcmp(dev->driver->name, "i915") ||
+	    subcomponent != I915_COMPONENT_HDCP)
+		return 0;
+
+	base = base->parent;
+	if (!base)
+		return 0;
+
+	base = base->parent;
+	dev = dev->parent;
+
+	return (base && dev && dev == base);
 }
 
 static int mei_hdcp_probe(struct mei_cl_device *cldev,
@@ -786,7 +813,7 @@
 
 	master_match = NULL;
 	component_match_add_typed(&cldev->dev, &master_match,
-				  mei_hdcp_component_match, comp_master);
+				  mei_hdcp_component_match, &cldev->dev);
 	if (IS_ERR_OR_NULL(master_match)) {
 		ret = -ENOMEM;
 		goto err_exit;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/hw-me-regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/hw-me-regs.h
@@ -82,6 +82,13 @@
 #define MEI_DEV_ID_CMP_LP     0x02e0  /* Comet Point LP */
 #define MEI_DEV_ID_CMP_LP_3   0x02e4  /* Comet Point LP 3 (iTouch) */
 
+#define MEI_DEV_ID_CMP_V      0xA3BA  /* Comet Point Lake V */
+
+#define MEI_DEV_ID_CMP_H      0x06e0  /* Comet Lake H */
+#define MEI_DEV_ID_CMP_H_3    0x06e4  /* Comet Lake H 3 (iTouch) */
+
+#define MEI_DEV_ID_CDF        0x18D3  /* Cedar Fork */
+
 #define MEI_DEV_ID_ICP_LP     0x34E0  /* Ice Lake Point LP */
 
 #define MEI_DEV_ID_TGP_LP     0xA0E0  /* Tiger Lake Point LP */
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mei/pci-me.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mei/pci-me.c
@@ -32,6 +32,9 @@
 #include "hw-me-regs.h"
 #include "hw-me.h"
 
+static bool disable_msi;
+module_param(disable_msi, bool, 0);
+
 /* mei_pci_tbl - PCI Device ID Table */
 static const struct pci_device_id mei_me_pci_tbl[] = {
 	{MEI_PCI_DEVICE(MEI_DEV_ID_82946GZ, MEI_ME_ICH_CFG)},
@@ -98,6 +101,9 @@
 
 	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_LP, MEI_ME_PCH12_CFG)},
 	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_LP_3, MEI_ME_PCH8_CFG)},
+	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_V, MEI_ME_PCH12_CFG)},
+	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H, MEI_ME_PCH12_CFG)},
+	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
 
 	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
 
@@ -106,6 +112,8 @@
 	{MEI_PCI_DEVICE(MEI_DEV_ID_MCC, MEI_ME_PCH12_CFG)},
 	{MEI_PCI_DEVICE(MEI_DEV_ID_MCC_4, MEI_ME_PCH8_CFG)},
 
+	{MEI_PCI_DEVICE(MEI_DEV_ID_CDF, MEI_ME_PCH8_CFG)},
+
 	/* required last entry */
 	{0, }
 };
@@ -199,7 +207,8 @@
 	hw = to_me_hw(dev);
 	hw->mem_addr = pcim_iomap_table(pdev)[0];
 
-	pci_enable_msi(pdev);
+	if (!disable_msi)
+		pci_enable_msi(pdev);
 
 	 /* request and enable interrupt */
 	irqflags = pci_dev_msi_enabled(pdev) ? IRQF_ONESHOT : IRQF_SHARED;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mic/scif/scif_rma.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mic/scif/scif_rma.c
@@ -1381,6 +1381,8 @@
 				(prot & SCIF_PROT_WRITE) ? FOLL_WRITE : 0,
 				pinned_pages->pages);
 		if (nr_pages != pinned_pages->nr_pages) {
+			if (pinned_pages->nr_pages < 0)
+				pinned_pages->nr_pages = 0;
 			if (try_upgrade) {
 				if (ulimit)
 					__scif_dec_pinned_vm_lock(mm, nr_pages);
@@ -1400,7 +1402,6 @@
 
 	if (pinned_pages->nr_pages < nr_pages) {
 		err = -EFAULT;
-		pinned_pages->nr_pages = nr_pages;
 		goto dec_pinned;
 	}
 
@@ -1413,7 +1414,6 @@
 		__scif_dec_pinned_vm_lock(mm, nr_pages);
 	/* Something went wrong! Rollback */
 error_unmap:
-	pinned_pages->nr_pages = nr_pages;
 	scif_destroy_pinned_pages(pinned_pages);
 	*pages = NULL;
 	dev_dbg(scif_info.mdev.this_device,
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mic/vop/vop_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mic/vop/vop_main.c
@@ -320,7 +320,7 @@
 	/* First assign the vring's allocated in host memory */
 	vqconfig = _vop_vq_config(vdev->desc) + index;
 	memcpy_fromio(&config, vqconfig, sizeof(config));
-	_vr_size = vring_size(le16_to_cpu(config.num), MIC_VIRTIO_RING_ALIGN);
+	_vr_size = round_up(vring_size(le16_to_cpu(config.num), MIC_VIRTIO_RING_ALIGN), 4);
 	vr_size = PAGE_ALIGN(_vr_size + sizeof(struct _mic_vring_info));
 	va = vpdev->hw_ops->remap(vpdev, le64_to_cpu(config.address), vr_size);
 	if (!va)
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/mic/vop/vop_vringh.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/mic/vop/vop_vringh.c
@@ -296,7 +296,7 @@
 
 		num = le16_to_cpu(vqconfig[i].num);
 		mutex_init(&vvr->vr_mutex);
-		vr_size = PAGE_ALIGN(vring_size(num, MIC_VIRTIO_RING_ALIGN) +
+		vr_size = PAGE_ALIGN(round_up(vring_size(num, MIC_VIRTIO_RING_ALIGN), 4) +
 			sizeof(struct _mic_vring_info));
 		vr->va = (void *)
 			__get_free_pages(GFP_KERNEL | __GFP_ZERO,
@@ -308,7 +308,7 @@
 			goto err;
 		}
 		vr->len = vr_size;
-		vr->info = vr->va + vring_size(num, MIC_VIRTIO_RING_ALIGN);
+		vr->info = vr->va + round_up(vring_size(num, MIC_VIRTIO_RING_ALIGN), 4);
 		vr->info->magic = cpu_to_le32(MIC_MAGIC + vdev->virtio_id + i);
 		vr_addr = dma_map_single(&vpdev->dev, vr->va, vr_size,
 					 DMA_BIDIRECTIONAL);
@@ -602,6 +602,7 @@
 	size_t partlen;
 	bool dma = VOP_USE_DMA && vi->dma_ch;
 	int err = 0;
+	size_t offset = 0;
 
 	if (dma) {
 		dma_alignment = 1 << vi->dma_ch->device->copy_align;
@@ -655,13 +656,20 @@
 	 * We are copying to IO below and should ideally use something
 	 * like copy_from_user_toio(..) if it existed.
 	 */
-	if (copy_from_user((void __force *)dbuf, ubuf, len)) {
-		err = -EFAULT;
-		dev_err(vop_dev(vdev), "%s %d err %d\n",
-			__func__, __LINE__, err);
-		goto err;
+	while (len) {
+		partlen = min_t(size_t, len, VOP_INT_DMA_BUF_SIZE);
+
+		if (copy_from_user(vvr->buf, ubuf + offset, partlen)) {
+			err = -EFAULT;
+			dev_err(vop_dev(vdev), "%s %d err %d\n",
+				__func__, __LINE__, err);
+			goto err;
+		}
+		memcpy_toio(dbuf + offset, vvr->buf, partlen);
+		offset += partlen;
+		vdev->out_bytes += partlen;
+		len -= partlen;
 	}
-	vdev->out_bytes += len;
 	err = 0;
 err:
 	vpdev->hw_ops->unmap(vpdev, dbuf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/ocxl/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/misc/ocxl/Kconfig
@@ -11,6 +11,7 @@
 	tristate "OpenCAPI coherent accelerator support"
 	depends on PPC_POWERNV && PCI && EEH
 	select OCXL_BASE
+	select HOTPLUG_PCI_POWERNV
 	default m
 	help
 	  Select this option to enable the ocxl driver for Open
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/ocxl/context.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/ocxl/context.c
@@ -10,18 +10,17 @@
 	int pasid;
 	struct ocxl_context *ctx;
 
-	*context = kzalloc(sizeof(struct ocxl_context), GFP_KERNEL);
-	if (!*context)
+	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+	if (!ctx)
 		return -ENOMEM;
 
-	ctx = *context;
-
 	ctx->afu = afu;
 	mutex_lock(&afu->contexts_lock);
 	pasid = idr_alloc(&afu->contexts_idr, ctx, afu->pasid_base,
 			afu->pasid_base + afu->pasid_max, GFP_KERNEL);
 	if (pasid < 0) {
 		mutex_unlock(&afu->contexts_lock);
+		kfree(ctx);
 		return pasid;
 	}
 	afu->pasid_count++;
@@ -43,6 +42,7 @@
 	 * duration of the life of the context
 	 */
 	ocxl_afu_get(afu);
+	*context = ctx;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(ocxl_context_alloc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/ocxl/file.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/ocxl/file.c
@@ -18,18 +18,15 @@
 static struct mutex minors_idr_lock;
 static struct idr minors_idr;
 
-static struct ocxl_file_info *find_file_info(dev_t devno)
+static struct ocxl_file_info *find_and_get_file_info(dev_t devno)
 {
 	struct ocxl_file_info *info;
 
-	/*
-	 * We don't declare an RCU critical section here, as our AFU
-	 * is protected by a reference counter on the device. By the time the
-	 * info reference is removed from the idr, the ref count of
-	 * the device is already at 0, so no user API will access that AFU and
-	 * this function can't return it.
-	 */
+	mutex_lock(&minors_idr_lock);
 	info = idr_find(&minors_idr, MINOR(devno));
+	if (info)
+		get_device(&info->dev);
+	mutex_unlock(&minors_idr_lock);
 	return info;
 }
 
@@ -58,14 +55,16 @@
 
 	pr_debug("%s for device %x\n", __func__, inode->i_rdev);
 
-	info = find_file_info(inode->i_rdev);
+	info = find_and_get_file_info(inode->i_rdev);
 	if (!info)
 		return -ENODEV;
 
 	rc = ocxl_context_alloc(&ctx, info->afu, inode->i_mapping);
-	if (rc)
+	if (rc) {
+		put_device(&info->dev);
 		return rc;
-
+	}
+	put_device(&info->dev);
 	file->private_data = ctx;
 	return 0;
 }
@@ -487,7 +486,6 @@
 {
 	struct ocxl_file_info *info = container_of(dev, struct ocxl_file_info, dev);
 
-	free_minor(info);
 	ocxl_afu_put(info->afu);
 	kfree(info);
 }
@@ -577,6 +575,7 @@
 
 	ocxl_file_make_invisible(info);
 	ocxl_sysfs_unregister_afu(info);
+	free_minor(info);
 	device_unregister(&info->dev);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/pci_endpoint_test.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/pci_endpoint_test.c
@@ -98,6 +98,7 @@
 	struct completion irq_raised;
 	int		last_irq;
 	int		num_irqs;
+	int		irq_type;
 	/* mutex to protect the ioctls */
 	struct mutex	mutex;
 	struct miscdevice miscdev;
@@ -157,6 +158,7 @@
 	struct pci_dev *pdev = test->pdev;
 
 	pci_free_irq_vectors(pdev);
+	test->irq_type = IRQ_TYPE_UNDEFINED;
 }
 
 static bool pci_endpoint_test_alloc_irq_vectors(struct pci_endpoint_test *test,
@@ -191,6 +193,8 @@
 		irq = 0;
 		res = false;
 	}
+
+	test->irq_type = type;
 	test->num_irqs = irq;
 
 	return res;
@@ -330,6 +334,7 @@
 	dma_addr_t orig_dst_phys_addr;
 	size_t offset;
 	size_t alignment = test->alignment;
+	int irq_type = test->irq_type;
 	u32 src_crc32;
 	u32 dst_crc32;
 
@@ -426,6 +431,7 @@
 	dma_addr_t orig_phys_addr;
 	size_t offset;
 	size_t alignment = test->alignment;
+	int irq_type = test->irq_type;
 	u32 crc32;
 
 	if (size > SIZE_MAX - alignment)
@@ -494,6 +500,7 @@
 	dma_addr_t orig_phys_addr;
 	size_t offset;
 	size_t alignment = test->alignment;
+	int irq_type = test->irq_type;
 	u32 crc32;
 
 	if (size > SIZE_MAX - alignment)
@@ -555,7 +562,7 @@
 		return false;
 	}
 
-	if (irq_type == req_irq_type)
+	if (test->irq_type == req_irq_type)
 		return true;
 
 	pci_endpoint_test_release_irq(test);
@@ -567,12 +574,10 @@
 	if (!pci_endpoint_test_request_irq(test))
 		goto err;
 
-	irq_type = req_irq_type;
 	return true;
 
 err:
 	pci_endpoint_test_free_irq_vectors(test);
-	irq_type = IRQ_TYPE_UNDEFINED;
 	return false;
 }
 
@@ -633,7 +638,7 @@
 {
 	int err;
 	int id;
-	char name[20];
+	char name[24];
 	enum pci_barno bar;
 	void __iomem *base;
 	struct device *dev = &pdev->dev;
@@ -652,6 +657,7 @@
 	test->test_reg_bar = 0;
 	test->alignment = 0;
 	test->pdev = pdev;
+	test->irq_type = IRQ_TYPE_UNDEFINED;
 
 	if (no_msi)
 		irq_type = IRQ_TYPE_LEGACY;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/pvpanic.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/pvpanic.c
@@ -166,6 +166,7 @@
 	{ .compatible = "qemu,pvpanic-mmio", },
 	{}
 };
+MODULE_DEVICE_TABLE(of, pvpanic_mmio_match);
 
 static struct platform_driver pvpanic_mmio_driver = {
 	.driver = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/vmw_vmci/vmci_context.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/vmw_vmci/vmci_context.c
@@ -743,7 +743,7 @@
 			return VMCI_ERROR_MORE_DATA;
 		}
 
-		dbells = kmalloc(data_size, GFP_ATOMIC);
+		dbells = kzalloc(data_size, GFP_ATOMIC);
 		if (!dbells)
 			return VMCI_ERROR_NO_MEM;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/vmw_vmci/vmci_queue_pair.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/vmw_vmci/vmci_queue_pair.c
@@ -537,6 +537,9 @@
 
 	queue_page_size = num_pages * sizeof(*queue->kernel_if->u.h.page);
 
+	if (queue_size + queue_page_size > KMALLOC_MAX_SIZE)
+		return NULL;
+
 	queue = kzalloc(queue_size + queue_page_size, GFP_KERNEL);
 	if (queue) {
 		queue->q_header = NULL;
@@ -630,7 +633,7 @@
 
 	for (i = 0; i < num_pages; i++) {
 		if (dirty)
-			set_page_dirty(pages[i]);
+			set_page_dirty_lock(pages[i]);
 
 		put_page(pages[i]);
 		pages[i] = NULL;
@@ -657,8 +660,9 @@
 	if (retval < (int)produce_q->kernel_if->num_pages) {
 		pr_debug("get_user_pages_fast(produce) failed (retval=%d)",
 			retval);
-		qp_release_pages(produce_q->kernel_if->u.h.header_page,
-				 retval, false);
+		if (retval > 0)
+			qp_release_pages(produce_q->kernel_if->u.h.header_page,
+					retval, false);
 		err = VMCI_ERROR_NO_MEM;
 		goto out;
 	}
@@ -670,8 +674,9 @@
 	if (retval < (int)consume_q->kernel_if->num_pages) {
 		pr_debug("get_user_pages_fast(consume) failed (retval=%d)",
 			retval);
-		qp_release_pages(consume_q->kernel_if->u.h.header_page,
-				 retval, false);
+		if (retval > 0)
+			qp_release_pages(consume_q->kernel_if->u.h.header_page,
+					retval, false);
 		qp_release_pages(produce_q->kernel_if->u.h.header_page,
 				 produce_q->kernel_if->num_pages, false);
 		err = VMCI_ERROR_NO_MEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/misc/xilinx_sdfec.c
+++ linux-gkeop-5.4-5.4.0/drivers/misc/xilinx_sdfec.c
@@ -602,10 +602,10 @@
 			      const u32 depth)
 {
 	u32 reg = 0;
-	u32 res;
-	u32 n, i;
+	int res, i, nr_pages;
+	u32 n;
 	u32 *addr = NULL;
-	struct page *page[MAX_NUM_PAGES];
+	struct page *pages[MAX_NUM_PAGES];
 
 	/*
 	 * Writes that go beyond the length of
@@ -622,15 +622,22 @@
 	if ((len * XSDFEC_REG_WIDTH_JUMP) % PAGE_SIZE)
 		n += 1;
 
-	res = get_user_pages_fast((unsigned long)src_ptr, n, 0, page);
-	if (res < n) {
-		for (i = 0; i < res; i++)
-			put_page(page[i]);
+	if (WARN_ON_ONCE(n > INT_MAX))
+		return -EINVAL;
+
+	nr_pages = n;
+
+	res = get_user_pages_fast((unsigned long)src_ptr, nr_pages, 0, pages);
+	if (res < nr_pages) {
+		if (res > 0) {
+			for (i = 0; i < res; i++)
+				put_page(pages[i]);
+		}
 		return -EINVAL;
 	}
 
-	for (i = 0; i < n; i++) {
-		addr = kmap(page[i]);
+	for (i = 0; i < nr_pages; i++) {
+		addr = kmap(pages[i]);
 		do {
 			xsdfec_regwrite(xsdfec,
 					base_addr + ((offset + reg) *
@@ -639,7 +646,7 @@
 			reg++;
 		} while ((reg < len) &&
 			 ((reg * XSDFEC_REG_WIDTH_JUMP) % PAGE_SIZE));
-		put_page(page[i]);
+		put_page(pages[i]);
 	}
 	return reg;
 }
@@ -1025,25 +1032,25 @@
 }
 #endif
 
-static unsigned int xsdfec_poll(struct file *file, poll_table *wait)
+static __poll_t xsdfec_poll(struct file *file, poll_table *wait)
 {
-	unsigned int mask = 0;
+	__poll_t mask = 0;
 	struct xsdfec_dev *xsdfec;
 
 	xsdfec = container_of(file->private_data, struct xsdfec_dev, miscdev);
 
 	if (!xsdfec)
-		return POLLNVAL | POLLHUP;
+		return EPOLLNVAL | EPOLLHUP;
 
 	poll_wait(file, &xsdfec->waitq, wait);
 
 	/* XSDFEC ISR detected an error */
 	spin_lock_irqsave(&xsdfec->error_data_lock, xsdfec->flags);
 	if (xsdfec->state_updated)
-		mask |= POLLIN | POLLPRI;
+		mask |= EPOLLIN | EPOLLPRI;
 
 	if (xsdfec->stats_updated)
-		mask |= POLLIN | POLLRDNORM;
+		mask |= EPOLLIN | EPOLLRDNORM;
 	spin_unlock_irqrestore(&xsdfec->error_data_lock, xsdfec->flags);
 
 	return mask;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/block.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/block.c
@@ -408,38 +408,6 @@
 	return 0;
 }
 
-static int ioctl_rpmb_card_status_poll(struct mmc_card *card, u32 *status,
-				       u32 retries_max)
-{
-	int err;
-	u32 retry_count = 0;
-
-	if (!status || !retries_max)
-		return -EINVAL;
-
-	do {
-		err = __mmc_send_status(card, status, 5);
-		if (err)
-			break;
-
-		if (!R1_STATUS(*status) &&
-				(R1_CURRENT_STATE(*status) != R1_STATE_PRG))
-			break; /* RPMB programming operation complete */
-
-		/*
-		 * Rechedule to give the MMC device a chance to continue
-		 * processing the previous command without being polled too
-		 * frequently.
-		 */
-		usleep_range(1000, 5000);
-	} while (++retry_count < retries_max);
-
-	if (retry_count == retries_max)
-		err = -EPERM;
-
-	return err;
-}
-
 static int ioctl_do_sanitize(struct mmc_card *card)
 {
 	int err;
@@ -468,6 +436,58 @@
 	return err;
 }
 
+static inline bool mmc_blk_in_tran_state(u32 status)
+{
+	/*
+	 * Some cards mishandle the status bits, so make sure to check both the
+	 * busy indication and the card state.
+	 */
+	return status & R1_READY_FOR_DATA &&
+	       (R1_CURRENT_STATE(status) == R1_STATE_TRAN);
+}
+
+static int card_busy_detect(struct mmc_card *card, unsigned int timeout_ms,
+			    u32 *resp_errs)
+{
+	unsigned long timeout = jiffies + msecs_to_jiffies(timeout_ms);
+	int err = 0;
+	u32 status;
+
+	do {
+		bool done = time_after(jiffies, timeout);
+
+		err = __mmc_send_status(card, &status, 5);
+		if (err) {
+			dev_err(mmc_dev(card->host),
+				"error %d requesting status\n", err);
+			return err;
+		}
+
+		/* Accumulate any response error bits seen */
+		if (resp_errs)
+			*resp_errs |= status;
+
+		/*
+		 * Timeout if the device never becomes ready for data and never
+		 * leaves the program state.
+		 */
+		if (done) {
+			dev_err(mmc_dev(card->host),
+				"Card stuck in wrong state! %s status: %#x\n",
+				 __func__, status);
+			return -ETIMEDOUT;
+		}
+
+		/*
+		 * Some cards mishandle the status bits,
+		 * so make sure to check both the busy
+		 * indication and the card state.
+		 */
+	} while (!mmc_blk_in_tran_state(status));
+
+	return err;
+}
+
 static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
 			       struct mmc_blk_ioc_data *idata)
 {
@@ -477,7 +497,6 @@
 	struct scatterlist sg;
 	int err;
 	unsigned int target_part;
-	u32 status = 0;
 
 	if (!card || !md || !idata)
 		return -EINVAL;
@@ -611,16 +630,12 @@
 
 	memcpy(&(idata->ic.response), cmd.resp, sizeof(cmd.resp));
 
-	if (idata->rpmb) {
+	if (idata->rpmb || (cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) {
 		/*
-		 * Ensure RPMB command has completed by polling CMD13
+		 * Ensure RPMB/R1B command has completed by polling CMD13
 		 * "Send Status".
 		 */
-		err = ioctl_rpmb_card_status_poll(card, &status, 5);
-		if (err)
-			dev_err(mmc_dev(card->host),
-					"%s: Card Status=0x%08X, error %d\n",
-					__func__, status, err);
+		err = card_busy_detect(card, MMC_BLK_TIMEOUT_MS, NULL);
 	}
 
 	return err;
@@ -970,58 +985,6 @@
 	return ms;
 }
 
-static inline bool mmc_blk_in_tran_state(u32 status)
-{
-	/*
-	 * Some cards mishandle the status bits, so make sure to check both the
-	 * busy indication and the card state.
-	 */
-	return status & R1_READY_FOR_DATA &&
-	       (R1_CURRENT_STATE(status) == R1_STATE_TRAN);
-}
-
-static int card_busy_detect(struct mmc_card *card, unsigned int timeout_ms,
-			    struct request *req, u32 *resp_errs)
-{
-	unsigned long timeout = jiffies + msecs_to_jiffies(timeout_ms);
-	int err = 0;
-	u32 status;
-
-	do {
-		bool done = time_after(jiffies, timeout);
-
-		err = __mmc_send_status(card, &status, 5);
-		if (err) {
-			pr_err("%s: error %d requesting status\n",
-			       req->rq_disk->disk_name, err);
-			return err;
-		}
-
-		/* Accumulate any response error bits seen */
-		if (resp_errs)
-			*resp_errs |= status;
-
-		/*
-		 * Timeout if the device never becomes ready for data and never
-		 * leaves the program state.
-		 */
-		if (done) {
-			pr_err("%s: Card stuck in wrong state! %s %s status: %#x\n",
-				mmc_hostname(card->host),
-				req->rq_disk->disk_name, __func__, status);
-			return -ETIMEDOUT;
-		}
-
-		/*
-		 * Some cards mishandle the status bits,
-		 * so make sure to check both the busy
-		 * indication and the card state.
-		 */
-	} while (!mmc_blk_in_tran_state(status));
-
-	return err;
-}
-
 static int mmc_blk_reset(struct mmc_blk_data *md, struct mmc_host *host,
 			 int type)
 {
@@ -1454,6 +1417,7 @@
 	struct mmc_request *mrq = &mqrq->brq.mrq;
 	struct request_queue *q = req->q;
 	struct mmc_host *host = mq->card->host;
+	enum mmc_issue_type issue_type = mmc_issue_type(mq, req);
 	unsigned long flags;
 	bool put_card;
 	int err;
@@ -1483,7 +1447,7 @@
 
 	spin_lock_irqsave(&mq->lock, flags);
 
-	mq->in_flight[mmc_issue_type(mq, req)] -= 1;
+	mq->in_flight[issue_type] -= 1;
 
 	put_card = (mmc_tot_in_flight(mq) == 0);
 
@@ -1671,7 +1635,7 @@
 
 	mmc_blk_send_stop(card, timeout);
 
-	err = card_busy_detect(card, timeout, req, NULL);
+	err = card_busy_detect(card, timeout, NULL);
 
 	mmc_retune_release(card->host);
 
@@ -1895,7 +1859,7 @@
 	if (mmc_host_is_spi(card->host) || rq_data_dir(req) == READ)
 		return 0;
 
-	err = card_busy_detect(card, MMC_BLK_TIMEOUT_MS, req, &status);
+	err = card_busy_detect(card, MMC_BLK_TIMEOUT_MS, &status);
 
 	/*
 	 * Do not assume data transferred correctly if there are any error bits
@@ -2511,8 +2475,8 @@
 	struct mmc_rpmb_data *rpmb = container_of(inode->i_cdev,
 						  struct mmc_rpmb_data, chrdev);
 
-	put_device(&rpmb->dev);
 	mmc_blk_put(rpmb->md);
+	put_device(&rpmb->dev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/bus.c
@@ -373,11 +373,6 @@
 	mmc_remove_card_debugfs(card);
 #endif
 
-	if (host->cqe_enabled) {
-		host->cqe_ops->cqe_disable(host);
-		host->cqe_enabled = false;
-	}
-
 	if (mmc_card_present(card)) {
 		if (mmc_host_is_spi(card->host)) {
 			pr_info("%s: SPI card removed\n",
@@ -390,6 +385,10 @@
 		of_node_put(card->dev.of_node);
 	}
 
+	if (host->cqe_enabled) {
+		host->cqe_ops->cqe_disable(host);
+		host->cqe_enabled = false;
+	}
+
 	put_device(&card->dev);
 }
-
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/core.c
@@ -1469,8 +1469,7 @@
 	mmc_bus_put(host);
 }
 
-static void _mmc_detect_change(struct mmc_host *host, unsigned long delay,
-				bool cd_irq)
+void _mmc_detect_change(struct mmc_host *host, unsigned long delay, bool cd_irq)
 {
 	/*
 	 * If the device is configured as wakeup, we prevent a new sleep for
@@ -1733,8 +1732,11 @@
 	 * the erase operation does not exceed the max_busy_timeout, we should
 	 * use R1B response. Or we need to prevent the host from doing hw busy
 	 * detection, which is done by converting to a R1 response instead.
+	 * Note, some hosts requires R1B, which also means they are on their own
+	 * when it comes to deal with the busy timeout.
 	 */
-	if (card->host->max_busy_timeout &&
+	if (!(card->host->caps & MMC_CAP_NEED_RSP_BUSY) &&
+	    card->host->max_busy_timeout &&
 	    busy_timeout > card->host->max_busy_timeout) {
 		cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_AC;
 	} else {
@@ -2129,7 +2131,7 @@
 	ret = host->bus_ops->hw_reset(host);
 	mmc_bus_put(host);
 
-	if (ret)
+	if (ret < 0)
 		pr_warn("%s: tried to HW reset card, got error %d\n",
 			mmc_hostname(host), ret);
 
@@ -2297,11 +2299,8 @@
 
 	mmc_bus_get(host);
 
-	/*
-	 * if there is a _removable_ card registered, check whether it is
-	 * still present
-	 */
-	if (host->bus_ops && !host->bus_dead && mmc_card_is_removable(host))
+	/* Verify a registered card to be functional, else remove it. */
+	if (host->bus_ops && !host->bus_dead)
 		host->bus_ops->detect(host);
 
 	host->detect_change = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/core.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/core.h
@@ -70,6 +70,8 @@
 void mmc_start_host(struct mmc_host *host);
 void mmc_stop_host(struct mmc_host *host);
 
+void _mmc_detect_change(struct mmc_host *host, unsigned long delay,
+			bool cd_irq);
 int _mmc_detect_card_removed(struct mmc_host *host);
 int mmc_detect_card_removed(struct mmc_host *host);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/host.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/host.c
@@ -176,7 +176,6 @@
 	u32 bus_width, drv_type, cd_debounce_delay_ms;
 	int ret;
 	bool cd_cap_invert, cd_gpio_invert = false;
-	bool ro_cap_invert, ro_gpio_invert = false;
 
 	if (!dev || !dev_fwnode(dev))
 		return 0;
@@ -255,9 +254,11 @@
 	}
 
 	/* Parse Write Protection */
-	ro_cap_invert = device_property_read_bool(dev, "wp-inverted");
 
-	ret = mmc_gpiod_request_ro(host, "wp", 0, 0, &ro_gpio_invert);
+	if (device_property_read_bool(dev, "wp-inverted"))
+		host->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
+
+	ret = mmc_gpiod_request_ro(host, "wp", 0, 0, NULL);
 	if (!ret)
 		dev_info(host->parent, "Got WP GPIO\n");
 	else if (ret != -ENOENT && ret != -ENOSYS)
@@ -266,10 +267,6 @@
 	if (device_property_read_bool(dev, "disable-wp"))
 		host->caps2 |= MMC_CAP2_NO_WRITE_PROTECT;
 
-	/* See the comment on CD inversion above */
-	if (ro_cap_invert ^ ro_gpio_invert)
-		host->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
-
 	if (device_property_read_bool(dev, "cap-sd-highspeed"))
 		host->caps |= MMC_CAP_SD_HIGHSPEED;
 	if (device_property_read_bool(dev, "cap-mmc-highspeed"))
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/mmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/mmc.c
@@ -297,7 +297,7 @@
 	}
 }
 
-static void mmc_part_add(struct mmc_card *card, unsigned int size,
+static void mmc_part_add(struct mmc_card *card, u64 size,
 			 unsigned int part_cfg, char *name, int idx, bool ro,
 			 int area_type)
 {
@@ -313,7 +313,7 @@
 {
 	int idx;
 	u8 hc_erase_grp_sz, hc_wp_grp_sz;
-	unsigned int part_size;
+	u64 part_size;
 
 	/*
 	 * General purpose partition feature support --
@@ -343,8 +343,7 @@
 				(ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 1]
 				<< 8) +
 				ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3];
-			part_size *= (size_t)(hc_erase_grp_sz *
-				hc_wp_grp_sz);
+			part_size *= (hc_erase_grp_sz * hc_wp_grp_sz);
 			mmc_part_add(card, part_size << 19,
 				EXT_CSD_PART_CONFIG_ACC_GP0 + idx,
 				"gp%d", idx, false,
@@ -362,7 +361,7 @@
 static int mmc_decode_ext_csd(struct mmc_card *card, u8 *ext_csd)
 {
 	int err = 0, idx;
-	unsigned int part_size;
+	u64 part_size;
 	struct device_node *np;
 	bool broken_hpi = false;
 
@@ -424,10 +423,6 @@
 
 		/* EXT_CSD value is in units of 10ms, but we store in ms */
 		card->ext_csd.part_time = 10 * ext_csd[EXT_CSD_PART_SWITCH_TIME];
-		/* Some eMMC set the value too low so set a minimum */
-		if (card->ext_csd.part_time &&
-		    card->ext_csd.part_time < MMC_MIN_PART_SWITCH_TIME)
-			card->ext_csd.part_time = MMC_MIN_PART_SWITCH_TIME;
 
 		/* Sleep / awake timeout in 100ns units */
 		if (sa_shift > 0 && sa_shift <= 0x17)
@@ -617,6 +612,17 @@
 		card->ext_csd.data_sector_size = 512;
 	}
 
+	/*
+	 * GENERIC_CMD6_TIME is to be used "unless a specific timeout is defined
+	 * when accessing a specific field", so use it here if there is no
+	 * PARTITION_SWITCH_TIME.
+	 */
+	if (!card->ext_csd.part_time)
+		card->ext_csd.part_time = card->ext_csd.generic_cmd6_time;
+	/* Some eMMC set the value too low so set a minimum */
+	if (card->ext_csd.part_time < MMC_MIN_PART_SWITCH_TIME)
+		card->ext_csd.part_time = MMC_MIN_PART_SWITCH_TIME;
+
 	/* eMMC v5 or later */
 	if (card->ext_csd.rev >= 7) {
 		memcpy(card->ext_csd.fwrev, &ext_csd[EXT_CSD_FIRMWARE_VERSION],
@@ -1911,9 +1917,12 @@
 	 * If the max_busy_timeout of the host is specified, validate it against
 	 * the sleep cmd timeout. A failure means we need to prevent the host
 	 * from doing hw busy detection, which is done by converting to a R1
-	 * response instead of a R1B.
+	 * response instead of a R1B. Note, some hosts requires R1B, which also
+	 * means they are on their own when it comes to deal with the busy
+	 * timeout.
 	 */
-	if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout)) {
+	if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout &&
+	    (timeout_ms > host->max_busy_timeout)) {
 		cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
 	} else {
 		cmd.flags = MMC_RSP_R1B | MMC_CMD_AC;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/mmc_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/mmc_ops.c
@@ -538,10 +538,12 @@
 	 * If the cmd timeout and the max_busy_timeout of the host are both
 	 * specified, let's validate them. A failure means we need to prevent
 	 * the host from doing hw busy detection, which is done by converting
-	 * to a R1 response instead of a R1B.
+	 * to a R1 response instead of a R1B. Note, some hosts requires R1B,
+	 * which also means they are on their own when it comes to deal with the
+	 * busy timeout.
 	 */
-	if (timeout_ms && host->max_busy_timeout &&
-		(timeout_ms > host->max_busy_timeout))
+	if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && timeout_ms &&
+	    host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
 		use_r1b_resp = false;
 
 	cmd.opcode = MMC_SWITCH;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/queue.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/queue.c
@@ -107,11 +107,10 @@
 	case MMC_ISSUE_DCMD:
 		if (host->cqe_ops->cqe_timeout(host, mrq, &recovery_needed)) {
 			if (recovery_needed)
-				__mmc_cqe_recovery_notifier(mq);
+				mmc_cqe_recovery_notifier(mrq);
 			return BLK_EH_RESET_TIMER;
 		}
-		/* No timeout (XXX: huh? comment doesn't make much sense) */
-		blk_mq_complete_request(req);
+		/* The request has gone already */
 		return BLK_EH_DONE;
 	default:
 		/* Timeout is handled by mmc core */
@@ -125,18 +124,13 @@
 	struct request_queue *q = req->q;
 	struct mmc_queue *mq = q->queuedata;
 	unsigned long flags;
-	int ret;
+	bool ignore_tout;
 
 	spin_lock_irqsave(&mq->lock, flags);
-
-	if (mq->recovery_needed || !mq->use_cqe)
-		ret = BLK_EH_RESET_TIMER;
-	else
-		ret = mmc_cqe_timed_out(req);
-
+	ignore_tout = mq->recovery_needed || !mq->use_cqe;
 	spin_unlock_irqrestore(&mq->lock, flags);
 
-	return ret;
+	return ignore_tout ? BLK_EH_RESET_TIMER : mmc_cqe_timed_out(req);
 }
 
 static void mmc_mq_recovery_handler(struct work_struct *work)
@@ -190,7 +184,7 @@
 	q->limits.discard_granularity = card->pref_erase << 9;
 	/* granularity must not be greater than max. discard */
 	if (card->pref_erase > max_discard)
-		q->limits.discard_granularity = 0;
+		q->limits.discard_granularity = SECTOR_SIZE;
 	if (mmc_can_secure_erase_trim(card))
 		blk_queue_flag_set(QUEUE_FLAG_SECERASE, q);
 }
@@ -376,8 +370,10 @@
 		     "merging was advertised but not possible");
 	blk_queue_max_segments(mq->queue, mmc_get_max_segments(host));
 
-	if (mmc_card_mmc(card))
+	if (mmc_card_mmc(card) && card->ext_csd.data_sector_size) {
 		block_size = card->ext_csd.data_sector_size;
+		WARN_ON(block_size != 512 && block_size != 4096);
+	}
 
 	blk_queue_logical_block_size(mq->queue, block_size);
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/quirks.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/quirks.h
@@ -119,7 +119,14 @@
 	END_FIXUP
 };
 
+
 static const struct mmc_fixup sdio_fixup_methods[] = {
+	SDIO_FIXUP(SDIO_VENDOR_ID_TI_WL1251, SDIO_DEVICE_ID_TI_WL1251,
+		   add_quirk, MMC_QUIRK_NONSTD_FUNC_IF),
+
+	SDIO_FIXUP(SDIO_VENDOR_ID_TI_WL1251, SDIO_DEVICE_ID_TI_WL1251,
+		   add_quirk, MMC_QUIRK_DISABLE_CD),
+
 	SDIO_FIXUP(SDIO_VENDOR_ID_TI, SDIO_DEVICE_ID_TI_WL1271,
 		   add_quirk, MMC_QUIRK_NONSTD_FUNC_IF),
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/sdio.c
@@ -584,7 +584,7 @@
 	 */
 	err = mmc_send_io_op_cond(host, ocr, &rocr);
 	if (err)
-		goto err;
+		return err;
 
 	/*
 	 * For SPI, enable CRC as appropriate.
@@ -592,17 +592,15 @@
 	if (mmc_host_is_spi(host)) {
 		err = mmc_spi_set_crc(host, use_spi_crc);
 		if (err)
-			goto err;
+			return err;
 	}
 
 	/*
 	 * Allocate card structure.
 	 */
 	card = mmc_alloc_card(host, NULL);
-	if (IS_ERR(card)) {
-		err = PTR_ERR(card);
-		goto err;
-	}
+	if (IS_ERR(card))
+		return PTR_ERR(card);
 
 	if ((rocr & R4_MEMORY_PRESENT) &&
 	    mmc_sd_get_cid(host, ocr & rocr, card->raw_cid, NULL) == 0) {
@@ -610,19 +608,15 @@
 
 		if (oldcard && (oldcard->type != MMC_TYPE_SD_COMBO ||
 		    memcmp(card->raw_cid, oldcard->raw_cid, sizeof(card->raw_cid)) != 0)) {
-			mmc_remove_card(card);
-			pr_debug("%s: Perhaps the card was replaced\n",
-				mmc_hostname(host));
-			return -ENOENT;
+			err = -ENOENT;
+			goto mismatch;
 		}
 	} else {
 		card->type = MMC_TYPE_SDIO;
 
 		if (oldcard && oldcard->type != MMC_TYPE_SDIO) {
-			mmc_remove_card(card);
-			pr_debug("%s: Perhaps the card was replaced\n",
-				mmc_hostname(host));
-			return -ENOENT;
+			err = -ENOENT;
+			goto mismatch;
 		}
 	}
 
@@ -677,7 +671,7 @@
 	if (!oldcard && card->type == MMC_TYPE_SD_COMBO) {
 		err = mmc_sd_get_csd(host, card);
 		if (err)
-			return err;
+			goto remove;
 
 		mmc_decode_cid(card);
 	}
@@ -704,7 +698,12 @@
 			mmc_set_timing(card->host, MMC_TIMING_SD_HS);
 		}
 
-		goto finish;
+		if (oldcard)
+			mmc_remove_card(card);
+		else
+			host->card = card;
+
+		return 0;
 	}
 
 	/*
@@ -718,9 +717,8 @@
 			/* Retry init sequence, but without R4_18V_PRESENT. */
 			retries = 0;
 			goto try_again;
-		} else {
-			goto remove;
 		}
+		return err;
 	}
 
 	/*
@@ -731,16 +729,14 @@
 		goto remove;
 
 	if (oldcard) {
-		int same = (card->cis.vendor == oldcard->cis.vendor &&
-			    card->cis.device == oldcard->cis.device);
-		mmc_remove_card(card);
-		if (!same) {
-			pr_debug("%s: Perhaps the card was replaced\n",
-				mmc_hostname(host));
-			return -ENOENT;
+		if (card->cis.vendor == oldcard->cis.vendor &&
+		    card->cis.device == oldcard->cis.device) {
+			mmc_remove_card(card);
+			card = oldcard;
+		} else {
+			err = -ENOENT;
+			goto mismatch;
 		}
-
-		card = oldcard;
 	}
 	card->ocr = ocr_card;
 	mmc_fixup_device(card, sdio_fixup_methods);
@@ -801,16 +797,15 @@
 		err = -EINVAL;
 		goto remove;
 	}
-finish:
-	if (!oldcard)
-		host->card = card;
+
+	host->card = card;
 	return 0;
 
+mismatch:
+	pr_debug("%s: Perhaps the card was replaced\n", mmc_hostname(host));
 remove:
-	if (!oldcard)
+	if (oldcard != card)
 		mmc_remove_card(card);
-
-err:
 	return err;
 }
 
@@ -1048,9 +1043,35 @@
 	return ret;
 }
 
+/*
+ * SDIO HW reset
+ *
+ * Returns 0 if the HW reset was executed synchronously, returns 1 if the HW
+ * reset was asynchronously scheduled, else a negative error code.
+ */
 static int mmc_sdio_hw_reset(struct mmc_host *host)
 {
-	mmc_power_cycle(host, host->card->ocr);
+	struct mmc_card *card = host->card;
+
+	/*
+	 * In case the card is shared among multiple func drivers, reset the
+	 * card through a rescan work. In this way it will be removed and
+	 * re-detected, thus all func drivers becomes informed about it.
+	 */
+	if (atomic_read(&card->sdio_funcs_probed) > 1) {
+		if (mmc_card_removed(card))
+			return 1;
+		host->rescan_entered = 0;
+		mmc_card_set_removed(card);
+		_mmc_detect_change(host, 0, false);
+		return 1;
+	}
+
+	/*
+	 * A single func driver has been probed, then let's skip the heavy
+	 * hotplug dance above and execute the reset immediately.
+	 */
+	mmc_power_cycle(host, card->ocr);
 	return mmc_sdio_reinit_card(host);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/sdio_bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/sdio_bus.c
@@ -138,6 +138,8 @@
 	if (ret)
 		return ret;
 
+	atomic_inc(&func->card->sdio_funcs_probed);
+
 	/* Unbound SDIO functions are always suspended.
 	 * During probe, the function is set active and the usage count
 	 * is incremented.  If the driver supports runtime PM,
@@ -153,7 +155,10 @@
 	/* Set the default block size so the driver is sure it's something
 	 * sensible. */
 	sdio_claim_host(func);
-	ret = sdio_set_block_size(func, 0);
+	if (mmc_card_removed(func->card))
+		ret = -ENOMEDIUM;
+	else
+		ret = sdio_set_block_size(func, 0);
 	sdio_release_host(func);
 	if (ret)
 		goto disable_runtimepm;
@@ -165,6 +170,7 @@
 	return 0;
 
 disable_runtimepm:
+	atomic_dec(&func->card->sdio_funcs_probed);
 	if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD)
 		pm_runtime_put_noidle(dev);
 	dev_pm_domain_detach(dev, false);
@@ -181,6 +187,7 @@
 		pm_runtime_get_sync(dev);
 
 	drv->remove(func);
+	atomic_dec(&func->card->sdio_funcs_probed);
 
 	if (func->irq_handler) {
 		pr_warn("WARNING: driver %s did not remove its interrupt handler!\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/sdio_cis.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/sdio_cis.c
@@ -20,12 +20,17 @@
 #include "sdio_cis.h"
 #include "sdio_ops.h"
 
+#define SDIO_READ_CIS_TIMEOUT_MS  (10 * 1000) /* 10s */
+
 static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func,
 			 const unsigned char *buf, unsigned size)
 {
 	unsigned i, nr_strings;
 	char **buffer, *string;
 
+	if (size < 2)
+		return 0;
+
 	/* Find all null-terminated (including zero length) strings in
 	   the TPLLV1_INFO field. Trailing garbage is ignored. */
 	buf += 2;
@@ -263,6 +268,8 @@
 
 	do {
 		unsigned char tpl_code, tpl_link;
+		unsigned long timeout = jiffies +
+			msecs_to_jiffies(SDIO_READ_CIS_TIMEOUT_MS);
 
 		ret = mmc_io_rw_direct(card, 0, 0, ptr++, 0, &tpl_code);
 		if (ret)
@@ -315,6 +322,8 @@
 			prev = &this->next;
 
 			if (ret == -ENOENT) {
+				if (time_after(jiffies, timeout))
+					break;
 				/* warn about unknown tuples */
 				pr_warn_ratelimited("%s: queuing unknown"
 				       " CIS tuple 0x%02x (%u bytes)\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/sdio_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/sdio_ops.c
@@ -121,6 +121,7 @@
 	struct sg_table sgtable;
 	unsigned int nents, left_size, i;
 	unsigned int seg_size = card->host->max_seg_size;
+	int err;
 
 	WARN_ON(blksz == 0);
 
@@ -170,28 +171,32 @@
 
 	mmc_set_data_timeout(&data, card);
 
-	mmc_wait_for_req(card->host, &mrq);
+	mmc_pre_req(card->host, &mrq);
 
-	if (nents > 1)
-		sg_free_table(&sgtable);
+	mmc_wait_for_req(card->host, &mrq);
 
 	if (cmd.error)
-		return cmd.error;
-	if (data.error)
-		return data.error;
-
-	if (mmc_host_is_spi(card->host)) {
+		err = cmd.error;
+	else if (data.error)
+		err = data.error;
+	else if (mmc_host_is_spi(card->host))
 		/* host driver already reported errors */
-	} else {
-		if (cmd.resp[0] & R5_ERROR)
-			return -EIO;
-		if (cmd.resp[0] & R5_FUNCTION_NUMBER)
-			return -EINVAL;
-		if (cmd.resp[0] & R5_OUT_OF_RANGE)
-			return -ERANGE;
-	}
+		err = 0;
+	else if (cmd.resp[0] & R5_ERROR)
+		err = -EIO;
+	else if (cmd.resp[0] & R5_FUNCTION_NUMBER)
+		err = -EINVAL;
+	else if (cmd.resp[0] & R5_OUT_OF_RANGE)
+		err = -ERANGE;
+	else
+		err = 0;
+
+	mmc_post_req(card->host, &mrq, err);
+
+	if (nents > 1)
+		sg_free_table(&sgtable);
 
-	return 0;
+	return err;
 }
 
 int sdio_reset(struct mmc_host *host)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/core/slot-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/core/slot-gpio.c
@@ -241,6 +241,9 @@
 			return ret;
 	}
 
+	if (host->caps2 & MMC_CAP2_RO_ACTIVE_HIGH)
+		gpiod_toggle_active_low(desc);
+
 	if (gpio_invert)
 		*gpio_invert = !gpiod_is_active_low(desc);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/alcor.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/alcor.c
@@ -1104,7 +1104,7 @@
 
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to get irq for data line\n");
-		return ret;
+		goto free_host;
 	}
 
 	mutex_init(&host->cmd_mutex);
@@ -1116,6 +1116,10 @@
 	dev_set_drvdata(&pdev->dev, host);
 	mmc_add_host(mmc);
 	return 0;
+
+free_host:
+	mmc_free_host(mmc);
+	return ret;
 }
 
 static int alcor_pci_sdmmc_drv_remove(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/cqhci.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/cqhci.c
@@ -5,6 +5,7 @@
 #include <linux/delay.h>
 #include <linux/highmem.h>
 #include <linux/io.h>
+#include <linux/iopoll.h>
 #include <linux/module.h>
 #include <linux/dma-mapping.h>
 #include <linux/slab.h>
@@ -298,16 +299,16 @@
 	cq_host->activated = false;
 }
 
-int cqhci_suspend(struct mmc_host *mmc)
+int cqhci_deactivate(struct mmc_host *mmc)
 {
 	struct cqhci_host *cq_host = mmc->cqe_private;
 
-	if (cq_host->enabled)
+	if (cq_host->enabled && cq_host->activated)
 		__cqhci_disable(cq_host);
 
 	return 0;
 }
-EXPORT_SYMBOL(cqhci_suspend);
+EXPORT_SYMBOL(cqhci_deactivate);
 
 int cqhci_resume(struct mmc_host *mmc)
 {
@@ -343,12 +344,16 @@
 /* CQHCI is idle and should halt immediately, so set a small timeout */
 #define CQHCI_OFF_TIMEOUT 100
 
+static u32 cqhci_read_ctl(struct cqhci_host *cq_host)
+{
+	return cqhci_readl(cq_host, CQHCI_CTL);
+}
+
 static void cqhci_off(struct mmc_host *mmc)
 {
 	struct cqhci_host *cq_host = mmc->cqe_private;
-	ktime_t timeout;
-	bool timed_out;
 	u32 reg;
+	int err;
 
 	if (!cq_host->enabled || !mmc->cqe_on || cq_host->recovery_halt)
 		return;
@@ -358,15 +363,9 @@
 
 	cqhci_writel(cq_host, CQHCI_HALT, CQHCI_CTL);
 
-	timeout = ktime_add_us(ktime_get(), CQHCI_OFF_TIMEOUT);
-	while (1) {
-		timed_out = ktime_compare(ktime_get(), timeout) > 0;
-		reg = cqhci_readl(cq_host, CQHCI_CTL);
-		if ((reg & CQHCI_HALT) || timed_out)
-			break;
-	}
-
-	if (timed_out)
+	err = readx_poll_timeout(cqhci_read_ctl, cq_host, reg,
+				 reg & CQHCI_HALT, 0, CQHCI_OFF_TIMEOUT);
+	if (err < 0)
 		pr_err("%s: cqhci: CQE stuck on\n", mmc_hostname(mmc));
 	else
 		pr_debug("%s: cqhci: CQE off\n", mmc_hostname(mmc));
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/cqhci.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/cqhci.h
@@ -230,7 +230,11 @@
 		      int data_error);
 int cqhci_init(struct cqhci_host *cq_host, struct mmc_host *mmc, bool dma64);
 struct cqhci_host *cqhci_pltfm_init(struct platform_device *pdev);
-int cqhci_suspend(struct mmc_host *mmc);
+int cqhci_deactivate(struct mmc_host *mmc);
+static inline int cqhci_suspend(struct mmc_host *mmc)
+{
+	return cqhci_deactivate(mmc);
+}
 int cqhci_resume(struct mmc_host *mmc);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/meson-gx-mmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/meson-gx-mmc.c
@@ -1151,9 +1151,11 @@
 
 	mmc->caps |= MMC_CAP_CMD23;
 	if (host->dram_access_quirk) {
+		/* Limit segments to 1 due to low available sram memory */
+		mmc->max_segs = 1;
 		/* Limit to the available sram memory */
-		mmc->max_segs = SD_EMMC_SRAM_DATA_BUF_LEN / mmc->max_blk_size;
-		mmc->max_blk_count = mmc->max_segs;
+		mmc->max_blk_count = SD_EMMC_SRAM_DATA_BUF_LEN /
+				     mmc->max_blk_size;
 	} else {
 		mmc->max_blk_count = CMD_CFG_LENGTH_MASK;
 		mmc->max_segs = SD_EMMC_DESC_BUF_LEN /
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/meson-mx-sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/meson-mx-sdio.c
@@ -246,6 +246,9 @@
 
 	mrq = host->mrq;
 
+	if (host->cmd->error)
+		meson_mx_mmc_soft_reset(host);
+
 	host->mrq = NULL;
 	host->cmd = NULL;
 
@@ -357,14 +360,6 @@
 		meson_mx_mmc_start_cmd(mmc, mrq->cmd);
 }
 
-static int meson_mx_mmc_card_busy(struct mmc_host *mmc)
-{
-	struct meson_mx_mmc_host *host = mmc_priv(mmc);
-	u32 irqc = readl(host->base + MESON_MX_SDIO_IRQC);
-
-	return !!(irqc & MESON_MX_SDIO_IRQC_FORCE_DATA_DAT_MASK);
-}
-
 static void meson_mx_mmc_read_response(struct mmc_host *mmc,
 				       struct mmc_command *cmd)
 {
@@ -506,7 +501,6 @@
 static struct mmc_host_ops meson_mx_mmc_ops = {
 	.request		= meson_mx_mmc_request,
 	.set_ios		= meson_mx_mmc_set_ios,
-	.card_busy		= meson_mx_mmc_card_busy,
 	.get_cd			= mmc_gpio_get_cd,
 	.get_ro			= mmc_gpio_get_ro,
 };
@@ -570,7 +564,7 @@
 	mmc->f_max = clk_round_rate(host->cfg_div_clk,
 				    clk_get_rate(host->parent_clk));
 
-	mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;
+	mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY;
 	mmc->ops = &meson_mx_mmc_ops;
 
 	ret = mmc_of_parse(mmc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/mmc_spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/mmc_spi.c
@@ -1134,17 +1134,22 @@
 	 * SPI protocol.  Another is that when chipselect is released while
 	 * the card returns BUSY status, the clock must issue several cycles
 	 * with chipselect high before the card will stop driving its output.
+	 *
+	 * SPI_CS_HIGH means "asserted" here. In some cases like when using
+	 * GPIOs for chip select, SPI_CS_HIGH is set but this will be logically
+	 * inverted by gpiolib, so if we want to ascertain to drive it high
+	 * we should toggle the default with an XOR as we do here.
 	 */
-	host->spi->mode |= SPI_CS_HIGH;
+	host->spi->mode ^= SPI_CS_HIGH;
 	if (spi_setup(host->spi) != 0) {
 		/* Just warn; most cards work without it. */
 		dev_warn(&host->spi->dev,
 				"can't change chip-select polarity\n");
-		host->spi->mode &= ~SPI_CS_HIGH;
+		host->spi->mode ^= SPI_CS_HIGH;
 	} else {
 		mmc_spi_readbytes(host, 18);
 
-		host->spi->mode &= ~SPI_CS_HIGH;
+		host->spi->mode ^= SPI_CS_HIGH;
 		if (spi_setup(host->spi) != 0) {
 			/* Wot, we can't get the same setup we had before? */
 			dev_err(&host->spi->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/mmci.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/mmci.c
@@ -168,6 +168,8 @@
 	.cmdreg_srsp		= MCI_CPSM_RESPONSE,
 	.datalength_bits	= 24,
 	.datactrl_blocksz	= 11,
+	.datactrl_any_blocksz	= true,
+	.dma_power_of_2		= true,
 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
 	.st_sdio		= true,
 	.st_clkdiv		= true,
@@ -201,6 +203,8 @@
 	.datactrl_mask_ddrmode	= MCI_DPSM_ST_DDRMODE,
 	.datalength_bits	= 24,
 	.datactrl_blocksz	= 11,
+	.datactrl_any_blocksz	= true,
+	.dma_power_of_2		= true,
 	.datactrl_mask_sdio	= MCI_DPSM_ST_SDIOEN,
 	.st_sdio		= true,
 	.st_clkdiv		= true,
@@ -260,6 +264,7 @@
 	.datacnt_useless	= true,
 	.datalength_bits	= 25,
 	.datactrl_blocksz	= 14,
+	.datactrl_any_blocksz	= true,
 	.stm32_idmabsize_mask	= GENMASK(12, 5),
 	.init			= sdmmc_variant_init,
 };
@@ -279,6 +284,7 @@
 	.data_cmd_enable	= MCI_CPSM_QCOM_DATCMD,
 	.datalength_bits	= 24,
 	.datactrl_blocksz	= 11,
+	.datactrl_any_blocksz	= true,
 	.pwrreg_powerup		= MCI_PWR_UP,
 	.f_max			= 208000000,
 	.explicit_mclk_control	= true,
@@ -447,10 +453,11 @@
 static int mmci_validate_data(struct mmci_host *host,
 			      struct mmc_data *data)
 {
+	struct variant_data *variant = host->variant;
+
 	if (!data)
 		return 0;
-
-	if (!is_power_of_2(data->blksz)) {
+	if (!is_power_of_2(data->blksz) && !variant->datactrl_any_blocksz) {
 		dev_err(mmc_dev(host->mmc),
 			"unsupported block size (%d bytes)\n", data->blksz);
 		return -EINVAL;
@@ -515,7 +522,9 @@
 		 "Submit MMCI DMA job, sglen %d blksz %04x blks %04x flags %08x\n",
 		 data->sg_len, data->blksz, data->blocks, data->flags);
 
-	host->ops->dma_start(host, &datactrl);
+	ret = host->ops->dma_start(host, &datactrl);
+	if (ret)
+		return ret;
 
 	/* Trigger the DMA transfer */
 	mmci_write_datactrlreg(host, datactrl);
@@ -822,6 +831,18 @@
 	if (data->blksz * data->blocks <= variant->fifosize)
 		return -EINVAL;
 
+	/*
+	 * This is necessary to get SDIO working on the Ux500. We do not yet
+	 * know if this is a bug in:
+	 * - The Ux500 DMA controller (DMA40)
+	 * - The MMCI DMA interface on the Ux500
+	 * some power of two blocks (such as 64 bytes) are sent regularly
+	 * during SDIO traffic and those work fine so for these we enable DMA
+	 * transfers.
+	 */
+	if (host->variant->dma_power_of_2 && !is_power_of_2(data->blksz))
+		return -EINVAL;
+
 	device = chan->device;
 	nr_sg = dma_map_sg(device->dev, data->sg, data->sg_len,
 			   mmc_get_dma_dir(data));
@@ -872,9 +893,14 @@
 int mmci_dmae_start(struct mmci_host *host, unsigned int *datactrl)
 {
 	struct mmci_dmae_priv *dmae = host->dma_priv;
+	int ret;
 
 	host->dma_in_progress = true;
-	dmaengine_submit(dmae->desc_current);
+	ret = dma_submit_error(dmaengine_submit(dmae->desc_current));
+	if (ret < 0) {
+		host->dma_in_progress = false;
+		return ret;
+	}
 	dma_async_issue_pending(dmae->cur);
 
 	*datactrl |= MCI_DPSM_DMAENABLE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/mmci.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/mmci.h
@@ -278,7 +278,11 @@
  * @stm32_clkdiv: true if using a STM32-specific clock divider algorithm
  * @datactrl_mask_ddrmode: ddr mode mask in datactrl register.
  * @datactrl_mask_sdio: SDIO enable mask in datactrl register
- * @datactrl_blksz: block size in power of two
+ * @datactrl_blocksz: block size in power of two
+ * @datactrl_any_blocksz: true if block any block sizes are accepted by
+ *		  hardware, such as with some SDIO traffic that send
+ *		  odd packets.
+ * @dma_power_of_2: DMA only works with blocks that are a power of 2.
  * @datactrl_first: true if data must be setup before send command
  * @datacnt_useless: true if you could not use datacnt register to read
  *		     remaining data
@@ -323,6 +327,8 @@
 	unsigned int		datactrl_mask_ddrmode;
 	unsigned int		datactrl_mask_sdio;
 	unsigned int		datactrl_blocksz;
+	u8			datactrl_any_blocksz:1;
+	u8			dma_power_of_2:1;
 	u8			datactrl_first:1;
 	u8			datacnt_useless:1;
 	u8			st_sdio:1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/mmci_stm32_sdmmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/mmci_stm32_sdmmc.c
@@ -162,6 +162,9 @@
 static void sdmmc_idma_finalize(struct mmci_host *host, struct mmc_data *data)
 {
 	writel_relaxed(0, host->base + MMCI_STM32_IDMACTRLR);
+
+	if (!data->host_cookie)
+		sdmmc_idma_unprep_data(host, data, 0);
 }
 
 static void mmci_sdmmc_set_clkreg(struct mmci_host *host, unsigned int desired)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/mtk-sd.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/mtk-sd.c
@@ -22,6 +22,7 @@
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
+#include <linux/reset.h>
 
 #include <linux/mmc/card.h>
 #include <linux/mmc/core.h>
@@ -228,6 +229,7 @@
 #define MSDC_PATCH_BIT_SPCPUSH    (0x1 << 29)	/* RW */
 #define MSDC_PATCH_BIT_DECRCTMO   (0x1 << 30)	/* RW */
 
+#define MSDC_PATCH_BIT1_CMDTA     (0x7 << 3)    /* RW */
 #define MSDC_PATCH_BIT1_STOP_DLY  (0xf << 8)    /* RW */
 
 #define MSDC_PATCH_BIT2_CFGRESP   (0x1 << 15)   /* RW */
@@ -411,6 +413,7 @@
 	struct pinctrl_state *pins_uhs;
 	struct delayed_work req_timeout;
 	int irq;		/* host interrupt */
+	struct reset_control *reset;
 
 	struct clk *src_clk;	/* msdc source clock */
 	struct clk *h_clk;      /* msdc h_clk */
@@ -1017,13 +1020,13 @@
 static void msdc_request_done(struct msdc_host *host, struct mmc_request *mrq)
 {
 	unsigned long flags;
-	bool ret;
 
-	ret = cancel_delayed_work(&host->req_timeout);
-	if (!ret) {
-		/* delay work already running */
-		return;
-	}
+	/*
+	 * No need check the return value of cancel_delayed_work, as only ONE
+	 * path will go here!
+	 */
+	cancel_delayed_work(&host->req_timeout);
+
 	spin_lock_irqsave(&host->lock, flags);
 	host->mrq = NULL;
 	spin_unlock_irqrestore(&host->lock, flags);
@@ -1043,7 +1046,7 @@
 	bool done = false;
 	bool sbc_error;
 	unsigned long flags;
-	u32 *rsp = cmd->resp;
+	u32 *rsp;
 
 	if (mrq->sbc && cmd == mrq->cmd &&
 	    (events & (MSDC_INT_ACMDRDY | MSDC_INT_ACMDCRCERR
@@ -1064,6 +1067,7 @@
 
 	if (done)
 		return true;
+	rsp = cmd->resp;
 
 	sdr_clr_bits(host->base + MSDC_INTEN, cmd_ints_mask);
 
@@ -1251,7 +1255,7 @@
 static bool msdc_data_xfer_done(struct msdc_host *host, u32 events,
 				struct mmc_request *mrq, struct mmc_data *data)
 {
-	struct mmc_command *stop = data->stop;
+	struct mmc_command *stop;
 	unsigned long flags;
 	bool done;
 	unsigned int check_data = events &
@@ -1267,6 +1271,7 @@
 
 	if (done)
 		return true;
+	stop = data->stop;
 
 	if (check_data || (stop && stop->error)) {
 		dev_dbg(host->dev, "DMA status: 0x%8X\n",
@@ -1473,6 +1478,12 @@
 	u32 val;
 	u32 tune_reg = host->dev_comp->pad_tune_reg;
 
+	if (host->reset) {
+		reset_control_assert(host->reset);
+		usleep_range(10, 50);
+		reset_control_deassert(host->reset);
+	}
+
 	/* Configure to MMC/SD mode, clock free running */
 	sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_MODE | MSDC_CFG_CKPDN);
 
@@ -1881,6 +1892,7 @@
 
 	/* select EMMC50 PAD CMD tune */
 	sdr_set_bits(host->base + PAD_CMD_TUNE, BIT(0));
+	sdr_set_field(host->base + MSDC_PATCH_BIT1, MSDC_PATCH_BIT1_CMDTA, 2);
 
 	if (mmc->ios.timing == MMC_TIMING_MMC_HS200 ||
 	    mmc->ios.timing == MMC_TIMING_UHS_SDR104)
@@ -2230,6 +2242,11 @@
 	if (IS_ERR(host->src_clk_cg))
 		host->src_clk_cg = NULL;
 
+	host->reset = devm_reset_control_get_optional_exclusive(&pdev->dev,
+								"hrst");
+	if (IS_ERR(host->reset))
+		return PTR_ERR(host->reset);
+
 	host->irq = platform_get_irq(pdev, 0);
 	if (host->irq < 0) {
 		ret = -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/mxs-mmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/mxs-mmc.c
@@ -644,7 +644,7 @@
 
 	ret = mmc_of_parse(mmc);
 	if (ret)
-		goto out_clk_disable;
+		goto out_free_dma;
 
 	mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/omap_hsmmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/omap_hsmmc.c
@@ -1512,6 +1512,36 @@
 
 	if (mmc_pdata(host)->init_card)
 		mmc_pdata(host)->init_card(card);
+	else if (card->type == MMC_TYPE_SDIO ||
+		 card->type == MMC_TYPE_SD_COMBO) {
+		struct device_node *np = mmc_dev(mmc)->of_node;
+
+		/*
+		 * REVISIT: should be moved to sdio core and made more
+		 * general e.g. by expanding the DT bindings of child nodes
+		 * to provide a mechanism to provide this information:
+		 * Documentation/devicetree/bindings/mmc/mmc-card.txt
+		 */
+
+		np = of_get_compatible_child(np, "ti,wl1251");
+		if (np) {
+			/*
+			 * We have TI wl1251 attached to MMC3. Pass this
+			 * information to the SDIO core because it can't be
+			 * probed by normal methods.
+			 */
+
+			dev_info(host->dev, "found wl1251\n");
+			card->quirks |= MMC_QUIRK_NONSTD_SDIO;
+			card->cccr.wide_bus = 1;
+			card->cis.vendor = 0x104c;
+			card->cis.device = 0x9066;
+			card->cis.blksize = 512;
+			card->cis.max_dtr = 24000000;
+			card->ocr = 0x80;
+			of_node_put(np);
+		}
+	}
 }
 
 static void omap_hsmmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/pxamci.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/pxamci.c
@@ -729,6 +729,7 @@
 
 		host->power = devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW);
 		if (IS_ERR(host->power)) {
+			ret = PTR_ERR(host->power);
 			dev_err(dev, "Failed requesting gpio_power\n");
 			goto out;
 		}
@@ -740,16 +741,16 @@
 			goto out;
 		}
 
+		if (!host->pdata->gpio_card_ro_invert)
+			mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
+
 		ret = mmc_gpiod_request_ro(mmc, "wp", 0, 0, NULL);
 		if (ret && ret != -ENOENT) {
 			dev_err(dev, "Failed requesting gpio_ro\n");
 			goto out;
 		}
-		if (!ret) {
+		if (!ret)
 			host->use_ro_gpio = true;
-			mmc->caps2 |= host->pdata->gpio_card_ro_invert ?
-				0 : MMC_CAP2_RO_ACTIVE_HIGH;
-		}
 
 		if (host->pdata->init)
 			host->pdata->init(dev, pxamci_detect_irq, mmc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/renesas_sdhi_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/renesas_sdhi_core.c
@@ -874,6 +874,7 @@
 
 	tmio_mmc_host_remove(host);
 	renesas_sdhi_clk_disable(host);
+	tmio_mmc_host_free(host);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/renesas_sdhi_internal_dmac.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/renesas_sdhi_internal_dmac.c
@@ -186,8 +186,8 @@
 			mmc_get_dma_dir(data)))
 		goto force_pio;
 
-	/* This DMAC cannot handle if buffer is not 8-bytes alignment */
-	if (!IS_ALIGNED(sg_dma_address(sg), 8))
+	/* This DMAC cannot handle if buffer is not 128-bytes alignment */
+	if (!IS_ALIGNED(sg_dma_address(sg), 128))
 		goto force_pio_with_unmap;
 
 	if (data->flags & MMC_DATA_READ) {
@@ -229,15 +229,12 @@
 					    DTRAN_CTRL_DM_START);
 }
 
-static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
+static bool renesas_sdhi_internal_dmac_complete(struct tmio_mmc_host *host)
 {
-	struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg;
 	enum dma_data_direction dir;
 
-	spin_lock_irq(&host->lock);
-
 	if (!host->data)
-		goto out;
+		return false;
 
 	if (host->data->flags & MMC_DATA_READ)
 		dir = DMA_FROM_DEVICE;
@@ -250,6 +247,17 @@
 	if (dir == DMA_FROM_DEVICE)
 		clear_bit(SDHI_INTERNAL_DMAC_RX_IN_USE, &global_flags);
 
+	return true;
+}
+
+static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
+{
+	struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg;
+
+	spin_lock_irq(&host->lock);
+	if (!renesas_sdhi_internal_dmac_complete(host))
+		goto out;
+
 	tmio_mmc_do_data_irq(host);
 out:
 	spin_unlock_irq(&host->lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/rtsx_pci_sdmmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/rtsx_pci_sdmmc.c
@@ -606,19 +606,22 @@
 		u8 sample_point, bool rx)
 {
 	struct rtsx_pcr *pcr = host->pcr;
-
+	u16 SD_VP_CTL = 0;
 	dev_dbg(sdmmc_dev(host), "%s(%s): sample_point = %d\n",
 			__func__, rx ? "RX" : "TX", sample_point);
 
 	rtsx_pci_write_register(pcr, CLK_CTL, CHANGE_CLK, CHANGE_CLK);
-	if (rx)
+	if (rx) {
+		SD_VP_CTL = SD_VPRX_CTL;
 		rtsx_pci_write_register(pcr, SD_VPRX_CTL,
 			PHASE_SELECT_MASK, sample_point);
-	else
+	} else {
+		SD_VP_CTL = SD_VPTX_CTL;
 		rtsx_pci_write_register(pcr, SD_VPTX_CTL,
 			PHASE_SELECT_MASK, sample_point);
-	rtsx_pci_write_register(pcr, SD_VPCLK0_CTL, PHASE_NOT_RESET, 0);
-	rtsx_pci_write_register(pcr, SD_VPCLK0_CTL, PHASE_NOT_RESET,
+	}
+	rtsx_pci_write_register(pcr, SD_VP_CTL, PHASE_NOT_RESET, 0);
+	rtsx_pci_write_register(pcr, SD_VP_CTL, PHASE_NOT_RESET,
 				PHASE_NOT_RESET);
 	rtsx_pci_write_register(pcr, CLK_CTL, CHANGE_CLK, 0);
 	rtsx_pci_write_register(pcr, SD_CFG1, SD_ASYNC_FIFO_NOT_RST, 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-acpi.c
@@ -532,6 +532,11 @@
 	.caps    = MMC_CAP_NONREMOVABLE,
 };
 
+struct amd_sdhci_host {
+	bool	tuned_clock;
+	bool	dll_enabled;
+};
+
 /* AMD sdhci reset dll register. */
 #define SDHCI_AMD_RESET_DLL_REGISTER    0x908
 
@@ -542,39 +547,96 @@
 	return MMC_SET_DRIVER_TYPE_A;
 }
 
-static void sdhci_acpi_amd_hs400_dll(struct sdhci_host *host)
+static void sdhci_acpi_amd_hs400_dll(struct sdhci_host *host, bool enable)
 {
+	struct sdhci_acpi_host *acpi_host = sdhci_priv(host);
+	struct amd_sdhci_host *amd_host = sdhci_acpi_priv(acpi_host);
+
 	/* AMD Platform requires dll setting */
 	sdhci_writel(host, 0x40003210, SDHCI_AMD_RESET_DLL_REGISTER);
 	usleep_range(10, 20);
-	sdhci_writel(host, 0x40033210, SDHCI_AMD_RESET_DLL_REGISTER);
+	if (enable)
+		sdhci_writel(host, 0x40033210, SDHCI_AMD_RESET_DLL_REGISTER);
+
+	amd_host->dll_enabled = enable;
 }
 
 /*
- * For AMD Platform it is required to disable the tuning
- * bit first controller to bring to HS Mode from HS200
- * mode, later enable to tune to HS400 mode.
+ * The initialization sequence for HS400 is:
+ *     HS->HS200->Perform Tuning->HS->HS400
+ *
+ * The re-tuning sequence is:
+ *     HS400->DDR52->HS->HS200->Perform Tuning->HS->HS400
+ *
+ * The AMD eMMC Controller can only use the tuned clock while in HS200 and HS400
+ * mode. If we switch to a different mode, we need to disable the tuned clock.
+ * If we have previously performed tuning and switch back to HS200 or
+ * HS400, we can re-enable the tuned clock.
+ *
  */
 static void amd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
 {
 	struct sdhci_host *host = mmc_priv(mmc);
+	struct sdhci_acpi_host *acpi_host = sdhci_priv(host);
+	struct amd_sdhci_host *amd_host = sdhci_acpi_priv(acpi_host);
 	unsigned int old_timing = host->timing;
+	u16 val;
 
 	sdhci_set_ios(mmc, ios);
-	if (old_timing == MMC_TIMING_MMC_HS200 &&
-	    ios->timing == MMC_TIMING_MMC_HS)
-		sdhci_writew(host, 0x9, SDHCI_HOST_CONTROL2);
-	if (old_timing != MMC_TIMING_MMC_HS400 &&
-	    ios->timing == MMC_TIMING_MMC_HS400) {
-		sdhci_writew(host, 0x80, SDHCI_HOST_CONTROL2);
-		sdhci_acpi_amd_hs400_dll(host);
+
+	if (old_timing != host->timing && amd_host->tuned_clock) {
+		if (host->timing == MMC_TIMING_MMC_HS400 ||
+		    host->timing == MMC_TIMING_MMC_HS200) {
+			val = sdhci_readw(host, SDHCI_HOST_CONTROL2);
+			val |= SDHCI_CTRL_TUNED_CLK;
+			sdhci_writew(host, val, SDHCI_HOST_CONTROL2);
+		} else {
+			val = sdhci_readw(host, SDHCI_HOST_CONTROL2);
+			val &= ~SDHCI_CTRL_TUNED_CLK;
+			sdhci_writew(host, val, SDHCI_HOST_CONTROL2);
+		}
+
+		/* DLL is only required for HS400 */
+		if (host->timing == MMC_TIMING_MMC_HS400 &&
+		    !amd_host->dll_enabled)
+			sdhci_acpi_amd_hs400_dll(host, true);
+	}
+}
+
+static int amd_sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
+{
+	int err;
+	struct sdhci_host *host = mmc_priv(mmc);
+	struct sdhci_acpi_host *acpi_host = sdhci_priv(host);
+	struct amd_sdhci_host *amd_host = sdhci_acpi_priv(acpi_host);
+
+	amd_host->tuned_clock = false;
+
+	err = sdhci_execute_tuning(mmc, opcode);
+
+	if (!err && !host->tuning_err)
+		amd_host->tuned_clock = true;
+
+	return err;
+}
+
+static void amd_sdhci_reset(struct sdhci_host *host, u8 mask)
+{
+	struct sdhci_acpi_host *acpi_host = sdhci_priv(host);
+	struct amd_sdhci_host *amd_host = sdhci_acpi_priv(acpi_host);
+
+	if (mask & SDHCI_RESET_ALL) {
+		amd_host->tuned_clock = false;
+		sdhci_acpi_amd_hs400_dll(host, false);
 	}
+
+	sdhci_reset(host, mask);
 }
 
 static const struct sdhci_ops sdhci_acpi_ops_amd = {
 	.set_clock	= sdhci_set_clock,
 	.set_bus_width	= sdhci_set_bus_width,
-	.reset		= sdhci_reset,
+	.reset		= amd_sdhci_reset,
 	.set_uhs_signaling = sdhci_set_uhs_signaling,
 };
 
@@ -596,17 +658,58 @@
 	    (host->mmc->caps & MMC_CAP_1_8V_DDR))
 		host->mmc->caps2 = MMC_CAP2_HS400_1_8V;
 
+	/*
+	 * There are two types of presets out in the wild:
+	 * 1) Default/broken presets.
+	 *    These presets have two sets of problems:
+	 *    a) The clock divisor for SDR12, SDR25, and SDR50 is too small.
+	 *       This results in clock frequencies that are 2x higher than
+	 *       acceptable. i.e., SDR12 = 25 MHz, SDR25 = 50 MHz, SDR50 =
+	 *       100 MHz.x
+	 *    b) The HS200 and HS400 driver strengths don't match.
+	 *       By default, the SDR104 preset register has a driver strength of
+	 *       A, but the (internal) HS400 preset register has a driver
+	 *       strength of B. As part of initializing HS400, HS200 tuning
+	 *       needs to be performed. Having different driver strengths
+	 *       between tuning and operation is wrong. It results in different
+	 *       rise/fall times that lead to incorrect sampling.
+	 * 2) Firmware with properly initialized presets.
+	 *    These presets have proper clock divisors. i.e., SDR12 => 12MHz,
+	 *    SDR25 => 25 MHz, SDR50 => 50 MHz. Additionally the HS200 and
+	 *    HS400 preset driver strengths match.
+	 *
+	 *    Enabling presets for HS400 doesn't work for the following reasons:
+	 *    1) sdhci_set_ios has a hard coded list of timings that are used
+	 *       to determine if presets should be enabled.
+	 *    2) sdhci_get_preset_value is using a non-standard register to
+	 *       read out HS400 presets. The AMD controller doesn't support this
+	 *       non-standard register. In fact, it doesn't expose the HS400
+	 *       preset register anywhere in the SDHCI memory map. This results
+	 *       in reading a garbage value and using the wrong presets.
+	 *
+	 *       Since HS400 and HS200 presets must be identical, we could
+	 *       instead use the the SDR104 preset register.
+	 *
+	 *    If the above issues are resolved we could remove this quirk for
+	 *    firmware that that has valid presets (i.e., SDR12 <= 12 MHz).
+	 */
+	host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
+
 	host->mmc_host_ops.select_drive_strength = amd_select_drive_strength;
 	host->mmc_host_ops.set_ios = amd_set_ios;
+	host->mmc_host_ops.execute_tuning = amd_sdhci_execute_tuning;
 	return 0;
 }
 
 static const struct sdhci_acpi_slot sdhci_acpi_slot_amd_emmc = {
-	.chip   = &sdhci_acpi_chip_amd,
-	.caps   = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
-	.quirks = SDHCI_QUIRK_32BIT_DMA_ADDR | SDHCI_QUIRK_32BIT_DMA_SIZE |
-			SDHCI_QUIRK_32BIT_ADMA_SIZE,
+	.chip		= &sdhci_acpi_chip_amd,
+	.caps		= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
+	.quirks		= SDHCI_QUIRK_32BIT_DMA_ADDR |
+			  SDHCI_QUIRK_32BIT_DMA_SIZE |
+			  SDHCI_QUIRK_32BIT_ADMA_SIZE,
+	.quirks2	= SDHCI_QUIRK2_BROKEN_64_BIT_DMA,
 	.probe_slot     = sdhci_acpi_emmc_amd_probe_slot,
+	.priv_size	= sizeof(struct amd_sdhci_host),
 };
 
 struct sdhci_acpi_uid_slot {
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-cadence.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-cadence.c
@@ -11,6 +11,7 @@
 #include <linux/mmc/host.h>
 #include <linux/mmc/mmc.h>
 #include <linux/of.h>
+#include <linux/of_device.h>
 
 #include "sdhci-pltfm.h"
 
@@ -193,52 +194,6 @@
 	return FIELD_GET(SDHCI_CDNS_HRS06_MODE, tmp);
 }
 
-static void sdhci_cdns_set_uhs_signaling(struct sdhci_host *host,
-					 unsigned int timing)
-{
-	struct sdhci_cdns_priv *priv = sdhci_cdns_priv(host);
-	u32 mode;
-
-	switch (timing) {
-	case MMC_TIMING_MMC_HS:
-		mode = SDHCI_CDNS_HRS06_MODE_MMC_SDR;
-		break;
-	case MMC_TIMING_MMC_DDR52:
-		mode = SDHCI_CDNS_HRS06_MODE_MMC_DDR;
-		break;
-	case MMC_TIMING_MMC_HS200:
-		mode = SDHCI_CDNS_HRS06_MODE_MMC_HS200;
-		break;
-	case MMC_TIMING_MMC_HS400:
-		if (priv->enhanced_strobe)
-			mode = SDHCI_CDNS_HRS06_MODE_MMC_HS400ES;
-		else
-			mode = SDHCI_CDNS_HRS06_MODE_MMC_HS400;
-		break;
-	default:
-		mode = SDHCI_CDNS_HRS06_MODE_SD;
-		break;
-	}
-
-	sdhci_cdns_set_emmc_mode(priv, mode);
-
-	/* For SD, fall back to the default handler */
-	if (mode == SDHCI_CDNS_HRS06_MODE_SD)
-		sdhci_set_uhs_signaling(host, timing);
-}
-
-static const struct sdhci_ops sdhci_cdns_ops = {
-	.set_clock = sdhci_set_clock,
-	.get_timeout_clock = sdhci_cdns_get_timeout_clock,
-	.set_bus_width = sdhci_set_bus_width,
-	.reset = sdhci_reset,
-	.set_uhs_signaling = sdhci_cdns_set_uhs_signaling,
-};
-
-static const struct sdhci_pltfm_data sdhci_cdns_pltfm_data = {
-	.ops = &sdhci_cdns_ops,
-};
-
 static int sdhci_cdns_set_tune_val(struct sdhci_host *host, unsigned int val)
 {
 	struct sdhci_cdns_priv *priv = sdhci_cdns_priv(host);
@@ -272,23 +227,24 @@
 	return 0;
 }
 
-static int sdhci_cdns_execute_tuning(struct mmc_host *mmc, u32 opcode)
+/*
+ * In SD mode, software must not use the hardware tuning and instead perform
+ * an almost identical procedure to eMMC.
+ */
+static int sdhci_cdns_execute_tuning(struct sdhci_host *host, u32 opcode)
 {
-	struct sdhci_host *host = mmc_priv(mmc);
 	int cur_streak = 0;
 	int max_streak = 0;
 	int end_of_streak = 0;
 	int i;
 
 	/*
-	 * This handler only implements the eMMC tuning that is specific to
-	 * this controller.  Fall back to the standard method for SD timing.
+	 * Do not execute tuning for UHS_SDR50 or UHS_DDR50.
+	 * The delay is set by probe, based on the DT properties.
 	 */
-	if (host->timing != MMC_TIMING_MMC_HS200)
-		return sdhci_execute_tuning(mmc, opcode);
-
-	if (WARN_ON(opcode != MMC_SEND_TUNING_BLOCK_HS200))
-		return -EINVAL;
+	if (host->timing != MMC_TIMING_MMC_HS200 &&
+	    host->timing != MMC_TIMING_UHS_SDR104)
+		return 0;
 
 	for (i = 0; i < SDHCI_CDNS_MAX_TUNING_LOOP; i++) {
 		if (sdhci_cdns_set_tune_val(host, i) ||
@@ -311,6 +267,58 @@
 	return sdhci_cdns_set_tune_val(host, end_of_streak - max_streak / 2);
 }
 
+static void sdhci_cdns_set_uhs_signaling(struct sdhci_host *host,
+					 unsigned int timing)
+{
+	struct sdhci_cdns_priv *priv = sdhci_cdns_priv(host);
+	u32 mode;
+
+	switch (timing) {
+	case MMC_TIMING_MMC_HS:
+		mode = SDHCI_CDNS_HRS06_MODE_MMC_SDR;
+		break;
+	case MMC_TIMING_MMC_DDR52:
+		mode = SDHCI_CDNS_HRS06_MODE_MMC_DDR;
+		break;
+	case MMC_TIMING_MMC_HS200:
+		mode = SDHCI_CDNS_HRS06_MODE_MMC_HS200;
+		break;
+	case MMC_TIMING_MMC_HS400:
+		if (priv->enhanced_strobe)
+			mode = SDHCI_CDNS_HRS06_MODE_MMC_HS400ES;
+		else
+			mode = SDHCI_CDNS_HRS06_MODE_MMC_HS400;
+		break;
+	default:
+		mode = SDHCI_CDNS_HRS06_MODE_SD;
+		break;
+	}
+
+	sdhci_cdns_set_emmc_mode(priv, mode);
+
+	/* For SD, fall back to the default handler */
+	if (mode == SDHCI_CDNS_HRS06_MODE_SD)
+		sdhci_set_uhs_signaling(host, timing);
+}
+
+static const struct sdhci_ops sdhci_cdns_ops = {
+	.set_clock = sdhci_set_clock,
+	.get_timeout_clock = sdhci_cdns_get_timeout_clock,
+	.set_bus_width = sdhci_set_bus_width,
+	.reset = sdhci_reset,
+	.platform_execute_tuning = sdhci_cdns_execute_tuning,
+	.set_uhs_signaling = sdhci_cdns_set_uhs_signaling,
+};
+
+static const struct sdhci_pltfm_data sdhci_cdns_uniphier_pltfm_data = {
+	.ops = &sdhci_cdns_ops,
+	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
+};
+
+static const struct sdhci_pltfm_data sdhci_cdns_pltfm_data = {
+	.ops = &sdhci_cdns_ops,
+};
+
 static void sdhci_cdns_hs400_enhanced_strobe(struct mmc_host *mmc,
 					     struct mmc_ios *ios)
 {
@@ -334,6 +342,7 @@
 static int sdhci_cdns_probe(struct platform_device *pdev)
 {
 	struct sdhci_host *host;
+	const struct sdhci_pltfm_data *data;
 	struct sdhci_pltfm_host *pltfm_host;
 	struct sdhci_cdns_priv *priv;
 	struct clk *clk;
@@ -350,8 +359,12 @@
 	if (ret)
 		return ret;
 
+	data = of_device_get_match_data(dev);
+	if (!data)
+		data = &sdhci_cdns_pltfm_data;
+
 	nr_phy_params = sdhci_cdns_phy_param_count(dev->of_node);
-	host = sdhci_pltfm_init(pdev, &sdhci_cdns_pltfm_data,
+	host = sdhci_pltfm_init(pdev, data,
 				struct_size(priv, phy_params, nr_phy_params));
 	if (IS_ERR(host)) {
 		ret = PTR_ERR(host);
@@ -366,7 +379,6 @@
 	priv->hrs_addr = host->ioaddr;
 	priv->enhanced_strobe = false;
 	host->ioaddr += SDHCI_CDNS_SRS_BASE;
-	host->mmc_host_ops.execute_tuning = sdhci_cdns_execute_tuning;
 	host->mmc_host_ops.hs400_enhanced_strobe =
 				sdhci_cdns_hs400_enhanced_strobe;
 	sdhci_enable_v4_mode(host);
@@ -431,7 +443,10 @@
 };
 
 static const struct of_device_id sdhci_cdns_match[] = {
-	{ .compatible = "socionext,uniphier-sd4hc" },
+	{
+		.compatible = "socionext,uniphier-sd4hc",
+		.data = &sdhci_cdns_uniphier_pltfm_data,
+	},
 	{ .compatible = "cdns,sd4hc" },
 	{ /* sentinel */ }
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-esdhc-imx.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -87,7 +87,7 @@
 #define ESDHC_STD_TUNING_EN		(1 << 24)
 /* NOTE: the minimum valid tuning start tap for mx6sl is 1 */
 #define ESDHC_TUNING_START_TAP_DEFAULT	0x1
-#define ESDHC_TUNING_START_TAP_MASK	0xff
+#define ESDHC_TUNING_START_TAP_MASK	0x7f
 #define ESDHC_TUNING_STEP_MASK		0x00070000
 #define ESDHC_TUNING_STEP_SHIFT		16
 
@@ -1381,13 +1381,14 @@
 				host->mmc->parent->platform_data);
 	/* write_protect */
 	if (boarddata->wp_type == ESDHC_WP_GPIO) {
+		host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
+
 		err = mmc_gpiod_request_ro(host->mmc, "wp", 0, 0, NULL);
 		if (err) {
 			dev_err(mmc_dev(host->mmc),
 				"failed to request write-protect gpio!\n");
 			return err;
 		}
-		host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
 	}
 
 	/* card_detect */
@@ -1588,9 +1589,10 @@
 	struct sdhci_host *host = platform_get_drvdata(pdev);
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
-	int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff);
+	int dead;
 
 	pm_runtime_get_sync(&pdev->dev);
+	dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff);
 	pm_runtime_disable(&pdev->dev);
 	pm_runtime_put_noidle(&pdev->dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-esdhc.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-esdhc.h
@@ -51,6 +51,11 @@
 #define ESDHC_CLOCK_HCKEN		0x00000002
 #define ESDHC_CLOCK_IPGEN		0x00000001
 
+/* System Control 2 Register */
+#define ESDHC_SYSTEM_CONTROL_2		0x3c
+#define ESDHC_SMPCLKSEL			0x00800000
+#define ESDHC_EXTN			0x00400000
+
 /* Host Controller Capabilities Register 2 */
 #define ESDHC_CAPABILITIES_1		0x114
 
@@ -59,7 +64,16 @@
 #define ESDHC_HS400_WNDW_ADJUST		0x00000040
 #define ESDHC_HS400_MODE		0x00000010
 #define ESDHC_TB_EN			0x00000004
+#define ESDHC_TB_MODE_MASK		0x00000003
+#define ESDHC_TB_MODE_SW		0x00000003
+#define ESDHC_TB_MODE_3			0x00000002
+
+#define ESDHC_TBSTAT			0x124
+
 #define ESDHC_TBPTR			0x128
+#define ESDHC_WNDW_STRT_PTR_SHIFT	8
+#define ESDHC_WNDW_STRT_PTR_MASK	(0x7f << 8)
+#define ESDHC_WNDW_END_PTR_MASK		0x7f
 
 /* SD Clock Control Register */
 #define ESDHC_SDCLKCTL			0x144
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-msm.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-msm.c
@@ -99,7 +99,7 @@
 
 #define CORE_PWRSAVE_DLL	BIT(3)
 
-#define DDR_CONFIG_POR_VAL	0x80040853
+#define DDR_CONFIG_POR_VAL	0x80040873
 
 
 #define INVALID_TUNING_PHASE	-1
@@ -148,8 +148,9 @@
 	u32 core_ddr_200_cfg;
 	u32 core_vendor_spec3;
 	u32 core_dll_config_2;
+	u32 core_dll_config_3;
+	u32 core_ddr_config_old; /* Applicable to sdcc minor ver < 0x49 */
 	u32 core_ddr_config;
-	u32 core_ddr_config_2;
 };
 
 static const struct sdhci_msm_offset sdhci_msm_v5_offset = {
@@ -177,8 +178,8 @@
 	.core_ddr_200_cfg = 0x224,
 	.core_vendor_spec3 = 0x250,
 	.core_dll_config_2 = 0x254,
-	.core_ddr_config = 0x258,
-	.core_ddr_config_2 = 0x25c,
+	.core_dll_config_3 = 0x258,
+	.core_ddr_config = 0x25c,
 };
 
 static const struct sdhci_msm_offset sdhci_msm_mci_offset = {
@@ -207,8 +208,8 @@
 	.core_ddr_200_cfg = 0x184,
 	.core_vendor_spec3 = 0x1b0,
 	.core_dll_config_2 = 0x1b4,
-	.core_ddr_config = 0x1b8,
-	.core_ddr_config_2 = 0x1bc,
+	.core_ddr_config_old = 0x1b8,
+	.core_ddr_config = 0x1bc,
 };
 
 struct sdhci_msm_variant_ops {
@@ -253,6 +254,7 @@
 	const struct sdhci_msm_offset *offset;
 	bool use_cdr;
 	u32 transfer_mode;
+	bool updated_ddr_cfg;
 };
 
 static const struct sdhci_msm_offset *sdhci_priv_msm_offset(struct sdhci_host *host)
@@ -924,8 +926,10 @@
 static int sdhci_msm_cm_dll_sdc4_calibration(struct sdhci_host *host)
 {
 	struct mmc_host *mmc = host->mmc;
-	u32 dll_status, config;
+	u32 dll_status, config, ddr_cfg_offset;
 	int ret;
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
 	const struct sdhci_msm_offset *msm_offset =
 					sdhci_priv_msm_offset(host);
 
@@ -938,8 +942,11 @@
 	 * bootloaders. In the future, if this changes, then the desired
 	 * values will need to be programmed appropriately.
 	 */
-	writel_relaxed(DDR_CONFIG_POR_VAL, host->ioaddr +
-			msm_offset->core_ddr_config);
+	if (msm_host->updated_ddr_cfg)
+		ddr_cfg_offset = msm_offset->core_ddr_config;
+	else
+		ddr_cfg_offset = msm_offset->core_ddr_config_old;
+	writel_relaxed(DDR_CONFIG_POR_VAL, host->ioaddr + ddr_cfg_offset);
 
 	if (mmc->ios.enhanced_strobe) {
 		config = readl_relaxed(host->ioaddr +
@@ -1089,7 +1096,7 @@
 static int sdhci_msm_execute_tuning(struct mmc_host *mmc, u32 opcode)
 {
 	struct sdhci_host *host = mmc_priv(mmc);
-	int tuning_seq_cnt = 3;
+	int tuning_seq_cnt = 10;
 	u8 phase, tuned_phases[16], tuned_phase_cnt = 0;
 	int rc;
 	struct mmc_ios ios = host->mmc->ios;
@@ -1106,6 +1113,12 @@
 	msm_host->use_cdr = true;
 
 	/*
+	 * Clear tuning_done flag before tuning to ensure proper
+	 * HS400 settings.
+	 */
+	msm_host->tuning_done = 0;
+
+	/*
 	 * For HS400 tuning in HS200 timing requires:
 	 * - select MCLK/2 in VENDOR_SPEC
 	 * - program MCLK to 400MHz (or nearest supported) in GCC
@@ -1139,6 +1152,22 @@
 	} while (++phase < ARRAY_SIZE(tuned_phases));
 
 	if (tuned_phase_cnt) {
+		if (tuned_phase_cnt == ARRAY_SIZE(tuned_phases)) {
+			/*
+			 * All phases valid is _almost_ as bad as no phases
+			 * valid.  Probably all phases are not really reliable
+			 * but we didn't detect where the unreliable place is.
+			 * That means we'll essentially be guessing and hoping
+			 * we get a good phase.  Better to try a few times.
+			 */
+			dev_dbg(mmc_dev(mmc), "%s: All phases valid; try again\n",
+				mmc_hostname(mmc));
+			if (--tuning_seq_cnt) {
+				tuned_phase_cnt = 0;
+				goto retry;
+			}
+		}
+
 		rc = msm_find_most_appropriate_phase(host, tuned_phases,
 						     tuned_phase_cnt);
 		if (rc < 0)
@@ -1729,7 +1758,9 @@
 static const struct sdhci_pltfm_data sdhci_msm_pdata = {
 	.quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
 		  SDHCI_QUIRK_SINGLE_POWER_WRITE |
-		  SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN,
+		  SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+		  SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
+
 	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 	.ops = &sdhci_msm_ops,
 };
@@ -1899,6 +1930,9 @@
 				msm_offset->core_vendor_spec_capabilities0);
 	}
 
+	if (core_major == 1 && core_minor >= 0x49)
+		msm_host->updated_ddr_cfg = true;
+
 	/*
 	 * Power on reset state may trigger power irq if previous status of
 	 * PWRCTL was either BUS_ON or IO_HIGH_V. So before enabling pwr irq
@@ -1934,6 +1968,8 @@
 		goto clk_disable;
 	}
 
+	msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY;
+
 	pm_runtime_get_noresume(&pdev->dev);
 	pm_runtime_set_active(&pdev->dev);
 	pm_runtime_enable(&pdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-of-aspeed.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-of-aspeed.c
@@ -68,7 +68,7 @@
 	if (WARN_ON(clock > host->max_clk))
 		clock = host->max_clk;
 
-	for (div = 1; div < 256; div *= 2) {
+	for (div = 2; div < 256; div *= 2) {
 		if ((parent / div) <= clock)
 			break;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-of-at91.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-of-at91.c
@@ -118,7 +118,8 @@
 {
 	sdhci_reset(host, mask);
 
-	if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
+	if ((host->mmc->caps & MMC_CAP_NONREMOVABLE)
+	    || mmc_gpio_get_cd(host->mmc) >= 0)
 		sdhci_at91_set_force_card_detect(host);
 }
 
@@ -324,19 +325,22 @@
 	priv->mainck = devm_clk_get(&pdev->dev, "baseclk");
 	if (IS_ERR(priv->mainck)) {
 		dev_err(&pdev->dev, "failed to get baseclk\n");
-		return PTR_ERR(priv->mainck);
+		ret = PTR_ERR(priv->mainck);
+		goto sdhci_pltfm_free;
 	}
 
 	priv->hclock = devm_clk_get(&pdev->dev, "hclock");
 	if (IS_ERR(priv->hclock)) {
 		dev_err(&pdev->dev, "failed to get hclock\n");
-		return PTR_ERR(priv->hclock);
+		ret = PTR_ERR(priv->hclock);
+		goto sdhci_pltfm_free;
 	}
 
 	priv->gck = devm_clk_get(&pdev->dev, "multclk");
 	if (IS_ERR(priv->gck)) {
 		dev_err(&pdev->dev, "failed to get multclk\n");
-		return PTR_ERR(priv->gck);
+		ret = PTR_ERR(priv->gck);
+		goto sdhci_pltfm_free;
 	}
 
 	ret = sdhci_at91_set_clks_presets(&pdev->dev);
@@ -394,8 +398,11 @@
 	 * detection procedure using the SDMCC_CD signal is bypassed.
 	 * This bit is reset when a software reset for all command is performed
 	 * so we need to implement our own reset function to set back this bit.
+	 *
+	 * WA: SAMA5D2 doesn't drive CMD if using CD GPIO line.
 	 */
-	if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
+	if ((host->mmc->caps & MMC_CAP_NONREMOVABLE)
+	    || mmc_gpio_get_cd(host->mmc) >= 0)
 		sdhci_at91_set_force_card_detect(host);
 
 	pm_runtime_put_autosuspend(&pdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-of-dwcmshc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-of-dwcmshc.c
@@ -58,6 +58,7 @@
 static const struct sdhci_pltfm_data sdhci_dwcmshc_pdata = {
 	.ops = &sdhci_dwcmshc_ops,
 	.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN,
+	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 };
 
 static int dwcmshc_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-of-esdhc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-of-esdhc.c
@@ -77,8 +77,12 @@
 	bool quirk_incorrect_hostver;
 	bool quirk_limited_clk_division;
 	bool quirk_unreliable_pulse_detection;
-	bool quirk_fixup_tuning;
+	bool quirk_tuning_erratum_type1;
+	bool quirk_tuning_erratum_type2;
 	bool quirk_ignore_data_inhibit;
+	bool quirk_delay_before_data_reset;
+	bool quirk_trans_complete_erratum;
+	bool in_sw_tuning;
 	unsigned int peripheral_clock;
 	const struct esdhc_clk_fixup *clk_fixup;
 	u32 div_ratio;
@@ -408,6 +412,8 @@
 
 static void esdhc_be_writew(struct sdhci_host *host, u16 val, int reg)
 {
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
 	int base = reg & ~0x3;
 	u32 value;
 	u32 ret;
@@ -416,10 +422,24 @@
 	ret = esdhc_writew_fixup(host, reg, val, value);
 	if (reg != SDHCI_TRANSFER_MODE)
 		iowrite32be(ret, host->ioaddr + base);
+
+	/* Starting SW tuning requires ESDHC_SMPCLKSEL to be set
+	 * 1us later after ESDHC_EXTN is set.
+	 */
+	if (base == ESDHC_SYSTEM_CONTROL_2) {
+		if (!(value & ESDHC_EXTN) && (ret & ESDHC_EXTN) &&
+		    esdhc->in_sw_tuning) {
+			udelay(1);
+			ret |= ESDHC_SMPCLKSEL;
+			iowrite32be(ret, host->ioaddr + base);
+		}
+	}
 }
 
 static void esdhc_le_writew(struct sdhci_host *host, u16 val, int reg)
 {
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
 	int base = reg & ~0x3;
 	u32 value;
 	u32 ret;
@@ -428,6 +448,18 @@
 	ret = esdhc_writew_fixup(host, reg, val, value);
 	if (reg != SDHCI_TRANSFER_MODE)
 		iowrite32(ret, host->ioaddr + base);
+
+	/* Starting SW tuning requires ESDHC_SMPCLKSEL to be set
+	 * 1us later after ESDHC_EXTN is set.
+	 */
+	if (base == ESDHC_SYSTEM_CONTROL_2) {
+		if (!(value & ESDHC_EXTN) && (ret & ESDHC_EXTN) &&
+		    esdhc->in_sw_tuning) {
+			udelay(1);
+			ret |= ESDHC_SMPCLKSEL;
+			iowrite32(ret, host->ioaddr + base);
+		}
+	}
 }
 
 static void esdhc_be_writeb(struct sdhci_host *host, u8 val, int reg)
@@ -703,21 +735,58 @@
 {
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
-	u32 val;
+	u32 val, bus_width = 0;
+
+	/*
+	 * Add delay to make sure all the DMA transfers are finished
+	 * for quirk.
+	 */
+	if (esdhc->quirk_delay_before_data_reset &&
+	    (mask & SDHCI_RESET_DATA) &&
+	    (host->flags & SDHCI_REQ_USE_DMA))
+		mdelay(5);
+
+	/*
+	 * Save bus-width for eSDHC whose vendor version is 2.2
+	 * or lower for data reset.
+	 */
+	if ((mask & SDHCI_RESET_DATA) &&
+	    (esdhc->vendor_ver <= VENDOR_V_22)) {
+		val = sdhci_readl(host, ESDHC_PROCTL);
+		bus_width = val & ESDHC_CTRL_BUSWIDTH_MASK;
+	}
 
 	sdhci_reset(host, mask);
 
-	sdhci_writel(host, host->ier, SDHCI_INT_ENABLE);
-	sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
+	/*
+	 * Restore bus-width setting and interrupt registers for eSDHC
+	 * whose vendor version is 2.2 or lower for data reset.
+	 */
+	if ((mask & SDHCI_RESET_DATA) &&
+	    (esdhc->vendor_ver <= VENDOR_V_22)) {
+		val = sdhci_readl(host, ESDHC_PROCTL);
+		val &= ~ESDHC_CTRL_BUSWIDTH_MASK;
+		val |= bus_width;
+		sdhci_writel(host, val, ESDHC_PROCTL);
 
-	if (of_find_compatible_node(NULL, NULL, "fsl,p2020-esdhc"))
-		mdelay(5);
+		sdhci_writel(host, host->ier, SDHCI_INT_ENABLE);
+		sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
+	}
 
-	if (mask & SDHCI_RESET_ALL) {
+	/*
+	 * Some bits have to be cleaned manually for eSDHC whose spec
+	 * version is higher than 3.0 for all reset.
+	 */
+	if ((mask & SDHCI_RESET_ALL) &&
+	    (esdhc->spec_ver >= SDHCI_SPEC_300)) {
 		val = sdhci_readl(host, ESDHC_TBCTL);
 		val &= ~ESDHC_TB_EN;
 		sdhci_writel(host, val, ESDHC_TBCTL);
 
+		/*
+		 * Initialize eSDHC_DLLCFG1[DLL_PD_PULSE_STRETCH_SEL] to
+		 * 0 for quirk.
+		 */
 		if (esdhc->quirk_unreliable_pulse_detection) {
 			val = sdhci_readl(host, ESDHC_DLLCFG1);
 			val &= ~ESDHC_DLL_PD_PULSE_STRETCH_SEL;
@@ -796,16 +865,21 @@
 	}
 }
 
-static struct soc_device_attribute soc_fixup_tuning[] = {
+static struct soc_device_attribute soc_tuning_erratum_type1[] = {
+	{ .family = "QorIQ T1023", .revision = "1.0", },
 	{ .family = "QorIQ T1040", .revision = "1.0", },
 	{ .family = "QorIQ T2080", .revision = "1.0", },
-	{ .family = "QorIQ T1023", .revision = "1.0", },
 	{ .family = "QorIQ LS1021A", .revision = "1.0", },
-	{ .family = "QorIQ LS1080A", .revision = "1.0", },
-	{ .family = "QorIQ LS2080A", .revision = "1.0", },
+	{ },
+};
+
+static struct soc_device_attribute soc_tuning_erratum_type2[] = {
 	{ .family = "QorIQ LS1012A", .revision = "1.0", },
 	{ .family = "QorIQ LS1043A", .revision = "1.*", },
 	{ .family = "QorIQ LS1046A", .revision = "1.0", },
+	{ .family = "QorIQ LS1080A", .revision = "1.0", },
+	{ .family = "QorIQ LS2080A", .revision = "1.0", },
+	{ .family = "QorIQ LA1575A", .revision = "1.0", },
 	{ },
 };
 
@@ -829,15 +903,97 @@
 	esdhc_clock_enable(host, true);
 }
 
+static void esdhc_prepare_sw_tuning(struct sdhci_host *host, u8 *window_start,
+				    u8 *window_end)
+{
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
+	u8 tbstat_15_8, tbstat_7_0;
+	u32 val;
+
+	if (esdhc->quirk_tuning_erratum_type1) {
+		*window_start = 5 * esdhc->div_ratio;
+		*window_end = 3 * esdhc->div_ratio;
+		return;
+	}
+
+	/* Write TBCTL[11:8]=4'h8 */
+	val = sdhci_readl(host, ESDHC_TBCTL);
+	val &= ~(0xf << 8);
+	val |= 8 << 8;
+	sdhci_writel(host, val, ESDHC_TBCTL);
+
+	mdelay(1);
+
+	/* Read TBCTL[31:0] register and rewrite again */
+	val = sdhci_readl(host, ESDHC_TBCTL);
+	sdhci_writel(host, val, ESDHC_TBCTL);
+
+	mdelay(1);
+
+	/* Read the TBSTAT[31:0] register twice */
+	val = sdhci_readl(host, ESDHC_TBSTAT);
+	val = sdhci_readl(host, ESDHC_TBSTAT);
+
+	/* Reset data lines by setting ESDHCCTL[RSTD] */
+	sdhci_reset(host, SDHCI_RESET_DATA);
+	/* Write 32'hFFFF_FFFF to IRQSTAT register */
+	sdhci_writel(host, 0xFFFFFFFF, SDHCI_INT_STATUS);
+
+	/* If TBSTAT[15:8]-TBSTAT[7:0] > 4 * div_ratio
+	 * or TBSTAT[7:0]-TBSTAT[15:8] > 4 * div_ratio,
+	 * then program TBPTR[TB_WNDW_END_PTR] = 4 * div_ratio
+	 * and program TBPTR[TB_WNDW_START_PTR] = 8 * div_ratio.
+	 */
+	tbstat_7_0 = val & 0xff;
+	tbstat_15_8 = (val >> 8) & 0xff;
+
+	if (abs(tbstat_15_8 - tbstat_7_0) > (4 * esdhc->div_ratio)) {
+		*window_start = 8 * esdhc->div_ratio;
+		*window_end = 4 * esdhc->div_ratio;
+	} else {
+		*window_start = 5 * esdhc->div_ratio;
+		*window_end = 3 * esdhc->div_ratio;
+	}
+}
+
+static int esdhc_execute_sw_tuning(struct mmc_host *mmc, u32 opcode,
+				   u8 window_start, u8 window_end)
+{
+	struct sdhci_host *host = mmc_priv(mmc);
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
+	u32 val;
+	int ret;
+
+	/* Program TBPTR[TB_WNDW_END_PTR] and TBPTR[TB_WNDW_START_PTR] */
+	val = ((u32)window_start << ESDHC_WNDW_STRT_PTR_SHIFT) &
+	      ESDHC_WNDW_STRT_PTR_MASK;
+	val |= window_end & ESDHC_WNDW_END_PTR_MASK;
+	sdhci_writel(host, val, ESDHC_TBPTR);
+
+	/* Program the software tuning mode by setting TBCTL[TB_MODE]=2'h3 */
+	val = sdhci_readl(host, ESDHC_TBCTL);
+	val &= ~ESDHC_TB_MODE_MASK;
+	val |= ESDHC_TB_MODE_SW;
+	sdhci_writel(host, val, ESDHC_TBCTL);
+
+	esdhc->in_sw_tuning = true;
+	ret = sdhci_execute_tuning(mmc, opcode);
+	esdhc->in_sw_tuning = false;
+	return ret;
+}
+
 static int esdhc_execute_tuning(struct mmc_host *mmc, u32 opcode)
 {
 	struct sdhci_host *host = mmc_priv(mmc);
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
+	u8 window_start, window_end;
+	int ret, retries = 1;
 	bool hs400_tuning;
 	unsigned int clk;
 	u32 val;
-	int ret;
 
 	/* For tuning mode, the sd clock divisor value
 	 * must be larger than 3 according to reference manual.
@@ -846,39 +1002,84 @@
 	if (host->clock > clk)
 		esdhc_of_set_clock(host, clk);
 
-	if (esdhc->quirk_limited_clk_division &&
-	    host->flags & SDHCI_HS400_TUNING)
-		esdhc_of_set_clock(host, host->clock);
-
 	esdhc_tuning_block_enable(host, true);
 
+	/*
+	 * The eSDHC controller takes the data timeout value into account
+	 * during tuning. If the SD card is too slow sending the response, the
+	 * timer will expire and a "Buffer Read Ready" interrupt without data
+	 * is triggered. This leads to tuning errors.
+	 *
+	 * Just set the timeout to the maximum value because the core will
+	 * already take care of it in sdhci_send_tuning().
+	 */
+	sdhci_writeb(host, 0xe, SDHCI_TIMEOUT_CONTROL);
+
 	hs400_tuning = host->flags & SDHCI_HS400_TUNING;
-	ret = sdhci_execute_tuning(mmc, opcode);
 
-	if (hs400_tuning) {
-		val = sdhci_readl(host, ESDHC_SDTIMNGCTL);
-		val |= ESDHC_FLW_CTL_BG;
-		sdhci_writel(host, val, ESDHC_SDTIMNGCTL);
-	}
+	do {
+		if (esdhc->quirk_limited_clk_division &&
+		    hs400_tuning)
+			esdhc_of_set_clock(host, host->clock);
 
-	if (host->tuning_err == -EAGAIN && esdhc->quirk_fixup_tuning) {
+		/* Do HW tuning */
+		val = sdhci_readl(host, ESDHC_TBCTL);
+		val &= ~ESDHC_TB_MODE_MASK;
+		val |= ESDHC_TB_MODE_3;
+		sdhci_writel(host, val, ESDHC_TBCTL);
 
-		/* program TBPTR[TB_WNDW_END_PTR] = 3*DIV_RATIO and
-		 * program TBPTR[TB_WNDW_START_PTR] = 5*DIV_RATIO
-		 */
-		val = sdhci_readl(host, ESDHC_TBPTR);
-		val = (val & ~((0x7f << 8) | 0x7f)) |
-		(3 * esdhc->div_ratio) | ((5 * esdhc->div_ratio) << 8);
-		sdhci_writel(host, val, ESDHC_TBPTR);
+		ret = sdhci_execute_tuning(mmc, opcode);
+		if (ret)
+			break;
 
-		/* program the software tuning mode by setting
-		 * TBCTL[TB_MODE]=2'h3
+		/* If HW tuning fails and triggers erratum,
+		 * try workaround.
 		 */
-		val = sdhci_readl(host, ESDHC_TBCTL);
-		val |= 0x3;
-		sdhci_writel(host, val, ESDHC_TBCTL);
-		sdhci_execute_tuning(mmc, opcode);
+		ret = host->tuning_err;
+		if (ret == -EAGAIN &&
+		    (esdhc->quirk_tuning_erratum_type1 ||
+		     esdhc->quirk_tuning_erratum_type2)) {
+			/* Recover HS400 tuning flag */
+			if (hs400_tuning)
+				host->flags |= SDHCI_HS400_TUNING;
+			pr_info("%s: Hold on to use fixed sampling clock. Try SW tuning!\n",
+				mmc_hostname(mmc));
+			/* Do SW tuning */
+			esdhc_prepare_sw_tuning(host, &window_start,
+						&window_end);
+			ret = esdhc_execute_sw_tuning(mmc, opcode,
+						      window_start,
+						      window_end);
+			if (ret)
+				break;
+
+			/* Retry both HW/SW tuning with reduced clock. */
+			ret = host->tuning_err;
+			if (ret == -EAGAIN && retries) {
+				/* Recover HS400 tuning flag */
+				if (hs400_tuning)
+					host->flags |= SDHCI_HS400_TUNING;
+
+				clk = host->max_clk / (esdhc->div_ratio + 1);
+				esdhc_of_set_clock(host, clk);
+				pr_info("%s: Hold on to use fixed sampling clock. Try tuning with reduced clock!\n",
+					mmc_hostname(mmc));
+			} else {
+				break;
+			}
+		} else {
+			break;
+		}
+	} while (retries--);
+
+	if (ret) {
+		esdhc_tuning_block_enable(host, false);
+	} else if (hs400_tuning) {
+		val = sdhci_readl(host, ESDHC_SDTIMNGCTL);
+		val |= ESDHC_FLW_CTL_BG;
+		sdhci_writel(host, val, ESDHC_SDTIMNGCTL);
 	}
+
 	return ret;
 }
 
@@ -893,10 +1094,11 @@
 
 static u32 esdhc_irq(struct sdhci_host *host, u32 intmask)
 {
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
 	u32 command;
 
-	if (of_find_compatible_node(NULL, NULL,
-				"fsl,p2020-esdhc")) {
+	if (esdhc->quirk_trans_complete_erratum) {
 		command = SDHCI_GET_CMD(sdhci_readw(host,
 					SDHCI_COMMAND));
 		if (command == MMC_WRITE_MULTIPLE_BLOCK &&
@@ -1010,6 +1212,8 @@
 
 static struct soc_device_attribute soc_unreliable_pulse_detection[] = {
 	{ .family = "QorIQ LX2160A", .revision = "1.0", },
+	{ .family = "QorIQ LX2160A", .revision = "2.0", },
+	{ .family = "QorIQ LS1028A", .revision = "1.0", },
 	{ },
 };
 
@@ -1049,6 +1253,12 @@
 	if (match)
 		esdhc->clk_fixup = match->data;
 	np = pdev->dev.of_node;
+
+	if (of_device_is_compatible(np, "fsl,p2020-esdhc")) {
+		esdhc->quirk_delay_before_data_reset = true;
+		esdhc->quirk_trans_complete_erratum = true;
+	}
+
 	clk = of_clk_get(np, 0);
 	if (!IS_ERR(clk)) {
 		/*
@@ -1114,10 +1324,15 @@
 
 	pltfm_host = sdhci_priv(host);
 	esdhc = sdhci_pltfm_priv(pltfm_host);
-	if (soc_device_match(soc_fixup_tuning))
-		esdhc->quirk_fixup_tuning = true;
+	if (soc_device_match(soc_tuning_erratum_type1))
+		esdhc->quirk_tuning_erratum_type1 = true;
+	else
+		esdhc->quirk_tuning_erratum_type1 = false;
+
+	if (soc_device_match(soc_tuning_erratum_type2))
+		esdhc->quirk_tuning_erratum_type2 = true;
 	else
-		esdhc->quirk_fixup_tuning = false;
+		esdhc->quirk_tuning_erratum_type2 = false;
 
 	if (esdhc->vendor_ver == VENDOR_V_22)
 		host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23;
@@ -1126,8 +1341,8 @@
 		host->quirks &= ~SDHCI_QUIRK_NO_BUSY_IRQ;
 
 	if (of_find_compatible_node(NULL, NULL, "fsl,p2020-esdhc")) {
-		host->quirks2 |= SDHCI_QUIRK_RESET_AFTER_REQUEST;
-		host->quirks2 |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
+		host->quirks |= SDHCI_QUIRK_RESET_AFTER_REQUEST;
+		host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
 	}
 
 	if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-omap.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-omap.c
@@ -1134,6 +1134,9 @@
 	host->mmc_host_ops.execute_tuning = sdhci_omap_execute_tuning;
 	host->mmc_host_ops.enable_sdio_irq = sdhci_omap_enable_sdio_irq;
 
+	/* R1B responses is required to properly manage HW busy detection. */
+	mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
+
 	ret = sdhci_setup_host(host);
 	if (ret)
 		goto err_put_sync;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-pci-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-pci-core.c
@@ -21,11 +21,15 @@
 #include <linux/mmc/mmc.h>
 #include <linux/scatterlist.h>
 #include <linux/io.h>
+#include <linux/iopoll.h>
 #include <linux/gpio.h>
 #include <linux/pm_runtime.h>
+#include <linux/pm_qos.h>
+#include <linux/debugfs.h>
 #include <linux/mmc/slot-gpio.h>
 #include <linux/mmc/sdhci-pci-data.h>
 #include <linux/acpi.h>
+#include <linux/dmi.h>
 
 #ifdef CONFIG_X86
 #include <asm/iosf_mbi.h>
@@ -230,6 +234,14 @@
 	sdhci_dumpregs(mmc_priv(mmc));
 }
 
+static void sdhci_cqhci_reset(struct sdhci_host *host, u8 mask)
+{
+	if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL) &&
+	    host->mmc->cqe_private)
+		cqhci_deactivate(host->mmc);
+	sdhci_reset(host, mask);
+}
+
 /*****************************************************************************\
  *                                                                           *
  * Hardware specific quirk handling                                          *
@@ -510,6 +522,8 @@
 	bool	rpm_retune_ok;
 	u32	glk_rx_ctrl1;
 	u32	glk_tun_val;
+	u32	active_ltr;
+	u32	idle_ltr;
 };
 
 static const guid_t intel_dsm_guid =
@@ -599,6 +613,9 @@
 	struct sdhci_pci_slot *slot = sdhci_priv(host);
 	struct intel_host *intel_host = sdhci_pci_priv(slot);
 
+	if (!(mmc_driver_type_mask(intel_host->drv_strength) & card_drv))
+		return 0;
+
 	return intel_host->drv_strength;
 }
 
@@ -652,6 +669,15 @@
 	}
 }
 
+static void sdhci_intel_set_uhs_signaling(struct sdhci_host *host,
+					  unsigned int timing)
+{
+	/* Set UHS timing to SDR25 for High Speed mode */
+	if (timing == MMC_TIMING_MMC_HS || timing == MMC_TIMING_SD_HS)
+		timing = MMC_TIMING_UHS_SDR25;
+	sdhci_set_uhs_signaling(host, timing);
+}
+
 #define INTEL_HS400_ES_REG 0x78
 #define INTEL_HS400_ES_BIT BIT(0)
 
@@ -708,7 +734,7 @@
 	.enable_dma		= sdhci_pci_enable_dma,
 	.set_bus_width		= sdhci_set_bus_width,
 	.reset			= sdhci_reset,
-	.set_uhs_signaling	= sdhci_set_uhs_signaling,
+	.set_uhs_signaling	= sdhci_intel_set_uhs_signaling,
 	.hw_reset		= sdhci_pci_hw_reset,
 };
 
@@ -717,8 +743,8 @@
 	.set_power		= sdhci_intel_set_power,
 	.enable_dma		= sdhci_pci_enable_dma,
 	.set_bus_width		= sdhci_set_bus_width,
-	.reset			= sdhci_reset,
-	.set_uhs_signaling	= sdhci_set_uhs_signaling,
+	.reset			= sdhci_cqhci_reset,
+	.set_uhs_signaling	= sdhci_intel_set_uhs_signaling,
 	.hw_reset		= sdhci_pci_hw_reset,
 	.irq			= sdhci_cqhci_irq,
 };
@@ -751,6 +777,108 @@
 	return 0;
 }
 
+#define INTEL_ACTIVELTR		0x804
+#define INTEL_IDLELTR		0x808
+
+#define INTEL_LTR_REQ		BIT(15)
+#define INTEL_LTR_SCALE_MASK	GENMASK(11, 10)
+#define INTEL_LTR_SCALE_1US	(2 << 10)
+#define INTEL_LTR_SCALE_32US	(3 << 10)
+#define INTEL_LTR_VALUE_MASK	GENMASK(9, 0)
+
+static void intel_cache_ltr(struct sdhci_pci_slot *slot)
+{
+	struct intel_host *intel_host = sdhci_pci_priv(slot);
+	struct sdhci_host *host = slot->host;
+
+	intel_host->active_ltr = readl(host->ioaddr + INTEL_ACTIVELTR);
+	intel_host->idle_ltr = readl(host->ioaddr + INTEL_IDLELTR);
+}
+
+static void intel_ltr_set(struct device *dev, s32 val)
+{
+	struct sdhci_pci_chip *chip = dev_get_drvdata(dev);
+	struct sdhci_pci_slot *slot = chip->slots[0];
+	struct intel_host *intel_host = sdhci_pci_priv(slot);
+	struct sdhci_host *host = slot->host;
+	u32 ltr;
+
+	pm_runtime_get_sync(dev);
+
+	/*
+	 * Program latency tolerance (LTR) accordingly what has been asked
+	 * by the PM QoS layer or disable it in case we were passed
+	 * negative value or PM_QOS_LATENCY_ANY.
+	 */
+	ltr = readl(host->ioaddr + INTEL_ACTIVELTR);
+
+	if (val == PM_QOS_LATENCY_ANY || val < 0) {
+		ltr &= ~INTEL_LTR_REQ;
+	} else {
+		ltr |= INTEL_LTR_REQ;
+		ltr &= ~INTEL_LTR_SCALE_MASK;
+		ltr &= ~INTEL_LTR_VALUE_MASK;
+
+		if (val > INTEL_LTR_VALUE_MASK) {
+			val >>= 5;
+			if (val > INTEL_LTR_VALUE_MASK)
+				val = INTEL_LTR_VALUE_MASK;
+			ltr |= INTEL_LTR_SCALE_32US | val;
+		} else {
+			ltr |= INTEL_LTR_SCALE_1US | val;
+		}
+	}
+
+	if (ltr == intel_host->active_ltr)
+		goto out;
+
+	writel(ltr, host->ioaddr + INTEL_ACTIVELTR);
+	writel(ltr, host->ioaddr + INTEL_IDLELTR);
+
+	/* Cache the values into lpss structure */
+	intel_cache_ltr(slot);
+out:
+	pm_runtime_put_autosuspend(dev);
+}
+
+static bool intel_use_ltr(struct sdhci_pci_chip *chip)
+{
+	switch (chip->pdev->device) {
+	case PCI_DEVICE_ID_INTEL_BYT_EMMC:
+	case PCI_DEVICE_ID_INTEL_BYT_EMMC2:
+	case PCI_DEVICE_ID_INTEL_BYT_SDIO:
+	case PCI_DEVICE_ID_INTEL_BYT_SD:
+	case PCI_DEVICE_ID_INTEL_BSW_EMMC:
+	case PCI_DEVICE_ID_INTEL_BSW_SDIO:
+	case PCI_DEVICE_ID_INTEL_BSW_SD:
+		return false;
+	default:
+		return true;
+	}
+}
+
+static void intel_ltr_expose(struct sdhci_pci_chip *chip)
+{
+	struct device *dev = &chip->pdev->dev;
+
+	if (!intel_use_ltr(chip))
+		return;
+
+	dev->power.set_latency_tolerance = intel_ltr_set;
+	dev_pm_qos_expose_latency_tolerance(dev);
+}
+
+static void intel_ltr_hide(struct sdhci_pci_chip *chip)
+{
+	struct device *dev = &chip->pdev->dev;
+
+	if (!intel_use_ltr(chip))
+		return;
+
+	dev_pm_qos_hide_latency_tolerance(dev);
+	dev->power.set_latency_tolerance = NULL;
+}
+
 static void byt_probe_slot(struct sdhci_pci_slot *slot)
 {
 	struct mmc_host_ops *ops = &slot->host->mmc_host_ops;
@@ -765,6 +893,43 @@
 	ops->start_signal_voltage_switch = intel_start_signal_voltage_switch;
 
 	device_property_read_u32(dev, "max-frequency", &mmc->f_max);
+
+	if (!mmc->slotno) {
+		slot->chip->slots[mmc->slotno] = slot;
+		intel_ltr_expose(slot->chip);
+	}
+}
+
+static void byt_add_debugfs(struct sdhci_pci_slot *slot)
+{
+	struct intel_host *intel_host = sdhci_pci_priv(slot);
+	struct mmc_host *mmc = slot->host->mmc;
+	struct dentry *dir = mmc->debugfs_root;
+
+	if (!intel_use_ltr(slot->chip))
+		return;
+
+	debugfs_create_x32("active_ltr", 0444, dir, &intel_host->active_ltr);
+	debugfs_create_x32("idle_ltr", 0444, dir, &intel_host->idle_ltr);
+
+	intel_cache_ltr(slot);
+}
+
+static int byt_add_host(struct sdhci_pci_slot *slot)
+{
+	int ret = sdhci_add_host(slot->host);
+
+	if (!ret)
+		byt_add_debugfs(slot);
+	return ret;
+}
+
+static void byt_remove_slot(struct sdhci_pci_slot *slot, int dead)
+{
+	struct mmc_host *mmc = slot->host->mmc;
+
+	if (!mmc->slotno)
+		intel_ltr_hide(slot->chip);
 }
 
 static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot)
@@ -782,11 +947,19 @@
 	return 0;
 }
 
+static bool glk_broken_cqhci(struct sdhci_pci_slot *slot)
+{
+	return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC &&
+	       (dmi_match(DMI_BIOS_VENDOR, "LENOVO") ||
+		dmi_match(DMI_SYS_VENDOR, "IRBIS"));
+}
+
 static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot)
 {
 	int ret = byt_emmc_probe_slot(slot);
 
-	slot->host->mmc->caps2 |= MMC_CAP2_CQE;
+	if (!glk_broken_cqhci(slot))
+		slot->host->mmc->caps2 |= MMC_CAP2_CQE;
 
 	if (slot->chip->pdev->device != PCI_DEVICE_ID_INTEL_GLK_EMMC) {
 		slot->host->mmc->caps2 |= MMC_CAP2_HS400_ES,
@@ -838,6 +1011,8 @@
 	if (ret)
 		goto cleanup;
 
+	byt_add_debugfs(slot);
+
 	return 0;
 
 cleanup:
@@ -1015,6 +1190,8 @@
 #endif
 	.allow_runtime_pm = true,
 	.probe_slot	= byt_emmc_probe_slot,
+	.add_host	= byt_add_host,
+	.remove_slot	= byt_remove_slot,
 	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
 			  SDHCI_QUIRK_NO_LED,
 	.quirks2	= SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
@@ -1028,6 +1205,7 @@
 	.allow_runtime_pm	= true,
 	.probe_slot		= glk_emmc_probe_slot,
 	.add_host		= glk_emmc_add_host,
+	.remove_slot		= byt_remove_slot,
 #ifdef CONFIG_PM_SLEEP
 	.suspend		= sdhci_cqhci_suspend,
 	.resume			= sdhci_cqhci_resume,
@@ -1058,6 +1236,8 @@
 			  SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 	.allow_runtime_pm = true,
 	.probe_slot	= ni_byt_sdio_probe_slot,
+	.add_host	= byt_add_host,
+	.remove_slot	= byt_remove_slot,
 	.ops		= &sdhci_intel_byt_ops,
 	.priv_size	= sizeof(struct intel_host),
 };
@@ -1075,6 +1255,8 @@
 			SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 	.allow_runtime_pm = true,
 	.probe_slot	= byt_sdio_probe_slot,
+	.add_host	= byt_add_host,
+	.remove_slot	= byt_remove_slot,
 	.ops		= &sdhci_intel_byt_ops,
 	.priv_size	= sizeof(struct intel_host),
 };
@@ -1094,6 +1276,8 @@
 	.allow_runtime_pm = true,
 	.own_cd_for_runtime_pm = true,
 	.probe_slot	= byt_sd_probe_slot,
+	.add_host	= byt_add_host,
+	.remove_slot	= byt_remove_slot,
 	.ops		= &sdhci_intel_byt_ops,
 	.priv_size	= sizeof(struct intel_host),
 };
@@ -1590,11 +1774,59 @@
 	return 0;
 }
 
+static u32 sdhci_read_present_state(struct sdhci_host *host)
+{
+	return sdhci_readl(host, SDHCI_PRESENT_STATE);
+}
+
+static void amd_sdhci_reset(struct sdhci_host *host, u8 mask)
+{
+	struct sdhci_pci_slot *slot = sdhci_priv(host);
+	struct pci_dev *pdev = slot->chip->pdev;
+	u32 present_state;
+
+	/*
+	 * SDHC 0x7906 requires a hard reset to clear all internal state.
+	 * Otherwise it can get into a bad state where the DATA lines are always
+	 * read as zeros.
+	 */
+	if (pdev->device == 0x7906 && (mask & SDHCI_RESET_ALL)) {
+		pci_clear_master(pdev);
+
+		pci_save_state(pdev);
+
+		pci_set_power_state(pdev, PCI_D3cold);
+		pr_debug("%s: power_state=%u\n", mmc_hostname(host->mmc),
+			pdev->current_state);
+		pci_set_power_state(pdev, PCI_D0);
+
+		pci_restore_state(pdev);
+
+		/*
+		 * SDHCI_RESET_ALL says the card detect logic should not be
+		 * reset, but since we need to reset the entire controller
+		 * we should wait until the card detect logic has stabilized.
+		 *
+		 * This normally takes about 40ms.
+		 */
+		readx_poll_timeout(
+			sdhci_read_present_state,
+			host,
+			present_state,
+			present_state & SDHCI_CD_STABLE,
+			10000,
+			100000
+		);
+	}
+
+	return sdhci_reset(host, mask);
+}
+
 static const struct sdhci_ops amd_sdhci_pci_ops = {
 	.set_clock			= sdhci_set_clock,
 	.enable_dma			= sdhci_pci_enable_dma,
 	.set_bus_width			= sdhci_set_bus_width,
-	.reset				= sdhci_reset,
+	.reset				= amd_sdhci_reset,
 	.set_uhs_signaling		= sdhci_set_uhs_signaling,
 };
 
@@ -1673,6 +1905,8 @@
 	SDHCI_PCI_DEVICE(INTEL, CML_EMMC,  intel_glk_emmc),
 	SDHCI_PCI_DEVICE(INTEL, CML_SD,    intel_byt_sd),
 	SDHCI_PCI_DEVICE(INTEL, CMLH_SD,   intel_byt_sd),
+	SDHCI_PCI_DEVICE(INTEL, JSL_EMMC,  intel_glk_emmc),
+	SDHCI_PCI_DEVICE(INTEL, JSL_SD,    intel_byt_sd),
 	SDHCI_PCI_DEVICE(O2, 8120,     o2),
 	SDHCI_PCI_DEVICE(O2, 8220,     o2),
 	SDHCI_PCI_DEVICE(O2, 8221,     o2),
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-pci-gli.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-pci-gli.c
@@ -26,6 +26,9 @@
 #define   SDHCI_GLI_9750_DRIVING_2    GENMASK(27, 26)
 #define   GLI_9750_DRIVING_1_VALUE    0xFFF
 #define   GLI_9750_DRIVING_2_VALUE    0x3
+#define   SDHCI_GLI_9750_SEL_1        BIT(29)
+#define   SDHCI_GLI_9750_SEL_2        BIT(31)
+#define   SDHCI_GLI_9750_ALL_RST      (BIT(24)|BIT(25)|BIT(28)|BIT(30))
 
 #define SDHCI_GLI_9750_PLL	      0x864
 #define   SDHCI_GLI_9750_PLL_TX2_INV    BIT(23)
@@ -122,6 +125,8 @@
 				    GLI_9750_DRIVING_1_VALUE);
 	driving_value |= FIELD_PREP(SDHCI_GLI_9750_DRIVING_2,
 				    GLI_9750_DRIVING_2_VALUE);
+	driving_value &= ~(SDHCI_GLI_9750_SEL_1|SDHCI_GLI_9750_SEL_2|SDHCI_GLI_9750_ALL_RST);
+	driving_value |= SDHCI_GLI_9750_SEL_2;
 	sdhci_writel(host, driving_value, SDHCI_GLI_9750_DRIVING);
 
 	sw_ctrl_value &= ~SDHCI_GLI_9750_SW_CTRL_4;
@@ -262,10 +267,26 @@
 	return 0;
 }
 
+static void gli_pcie_enable_msi(struct sdhci_pci_slot *slot)
+{
+	int ret;
+
+	ret = pci_alloc_irq_vectors(slot->chip->pdev, 1, 1,
+				    PCI_IRQ_MSI | PCI_IRQ_MSIX);
+	if (ret < 0) {
+		pr_warn("%s: enable PCI MSI failed, error=%d\n",
+		       mmc_hostname(slot->host->mmc), ret);
+		return;
+	}
+
+	slot->host->irq = pci_irq_vector(slot->chip->pdev, 0);
+}
+
 static int gli_probe_slot_gl9750(struct sdhci_pci_slot *slot)
 {
 	struct sdhci_host *host = slot->host;
 
+	gli_pcie_enable_msi(slot);
 	slot->host->mmc->caps2 |= MMC_CAP2_NO_SDIO;
 	sdhci_enable_v4_mode(host);
 
@@ -276,6 +297,7 @@
 {
 	struct sdhci_host *host = slot->host;
 
+	gli_pcie_enable_msi(slot);
 	slot->host->mmc->caps2 |= MMC_CAP2_NO_SDIO;
 	sdhci_enable_v4_mode(host);
 
@@ -317,6 +339,18 @@
 	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);
+}
+#endif
+
 static const struct sdhci_ops sdhci_gl9755_ops = {
 	.set_clock		= sdhci_set_clock,
 	.enable_dma		= sdhci_pci_enable_dma,
@@ -331,6 +365,9 @@
 	.quirks2	= SDHCI_QUIRK2_BROKEN_DDR50,
 	.probe_slot	= gli_probe_slot_gl9755,
 	.ops            = &sdhci_gl9755_ops,
+#ifdef CONFIG_PM_SLEEP
+	.resume         = sdhci_pci_gli_resume,
+#endif
 };
 
 static const struct sdhci_ops sdhci_gl9750_ops = {
@@ -349,4 +386,7 @@
 	.quirks2	= SDHCI_QUIRK2_BROKEN_DDR50,
 	.probe_slot	= gli_probe_slot_gl9750,
 	.ops            = &sdhci_gl9750_ops,
+#ifdef CONFIG_PM_SLEEP
+	.resume         = sdhci_pci_gli_resume,
+#endif
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-pci-o2micro.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-pci-o2micro.c
@@ -561,6 +561,12 @@
 			slot->host->mmc_host_ops.get_cd = sdhci_o2_get_cd;
 		}
 
+		if (chip->pdev->device == PCI_DEVICE_ID_O2_SEABIRD1) {
+			slot->host->mmc_host_ops.get_cd = sdhci_o2_get_cd;
+			host->mmc->caps2 |= MMC_CAP2_NO_SDIO;
+			host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
+		}
+
 		host->mmc_host_ops.execute_tuning = sdhci_o2_execute_tuning;
 
 		if (chip->pdev->device != PCI_DEVICE_ID_O2_FUJIN2)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-pci.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-pci.h
@@ -55,6 +55,8 @@
 #define PCI_DEVICE_ID_INTEL_CML_EMMC	0x02c4
 #define PCI_DEVICE_ID_INTEL_CML_SD	0x02f5
 #define PCI_DEVICE_ID_INTEL_CMLH_SD	0x06f5
+#define PCI_DEVICE_ID_INTEL_JSL_EMMC	0x4dc4
+#define PCI_DEVICE_ID_INTEL_JSL_SD	0x4df8
 
 #define PCI_DEVICE_ID_SYSKONNECT_8000	0x8000
 #define PCI_DEVICE_ID_VIA_95D0		0x95d0
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-sprd.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-sprd.c
@@ -665,14 +665,14 @@
 {
 	struct sdhci_host *host = platform_get_drvdata(pdev);
 	struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host);
-	struct mmc_host *mmc = host->mmc;
 
-	mmc_remove_host(mmc);
+	sdhci_remove_host(host, 0);
+
 	clk_disable_unprepare(sprd_host->clk_sdio);
 	clk_disable_unprepare(sprd_host->clk_enable);
 	clk_disable_unprepare(sprd_host->clk_2x_enable);
 
-	mmc_free_host(mmc);
+	sdhci_pltfm_free(pdev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-tegra.c
@@ -100,6 +100,12 @@
 #define NVQUIRK_DIS_CARD_CLK_CONFIG_TAP			BIT(8)
 #define NVQUIRK_CQHCI_DCMD_R1B_CMD_TIMING		BIT(9)
 
+/*
+ * NVQUIRK_HAS_TMCLK is for SoC's having separate timeout clock for Tegra
+ * SDMMC hardware data timeout.
+ */
+#define NVQUIRK_HAS_TMCLK				BIT(10)
+
 /* SDMMC CQE Base Address for Tegra Host Ver 4.1 and Higher */
 #define SDHCI_TEGRA_CQE_BASE_ADDR			0xF000
 
@@ -130,6 +136,7 @@
 struct sdhci_tegra {
 	const struct sdhci_tegra_soc_data *soc_data;
 	struct gpio_desc *power_gpio;
+	struct clk *tmclk;
 	bool ddr_signaling;
 	bool pad_calib_required;
 	bool pad_control_available;
@@ -386,7 +393,7 @@
 			misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50;
 		if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104)
 			misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104;
-		if (soc_data->nvquirks & SDHCI_MISC_CTRL_ENABLE_SDR50)
+		if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50)
 			clk_ctrl |= SDHCI_CLOCK_CTRL_SDR50_TUNING_OVERRIDE;
 	}
 
@@ -1370,7 +1377,6 @@
 
 static const struct sdhci_pltfm_data sdhci_tegra210_pdata = {
 	.quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
-		  SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
 		  SDHCI_QUIRK_SINGLE_POWER_WRITE |
 		  SDHCI_QUIRK_NO_HISPD_BIT |
 		  SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC |
@@ -1386,7 +1392,8 @@
 		    NVQUIRK_HAS_PADCALIB |
 		    NVQUIRK_DIS_CARD_CLK_CONFIG_TAP |
 		    NVQUIRK_ENABLE_SDR50 |
-		    NVQUIRK_ENABLE_SDR104,
+		    NVQUIRK_ENABLE_SDR104 |
+		    NVQUIRK_HAS_TMCLK,
 	.min_tap_delay = 106,
 	.max_tap_delay = 185,
 };
@@ -1407,7 +1414,6 @@
 
 static const struct sdhci_pltfm_data sdhci_tegra186_pdata = {
 	.quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
-		  SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
 		  SDHCI_QUIRK_SINGLE_POWER_WRITE |
 		  SDHCI_QUIRK_NO_HISPD_BIT |
 		  SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC |
@@ -1424,6 +1430,7 @@
 		    NVQUIRK_DIS_CARD_CLK_CONFIG_TAP |
 		    NVQUIRK_ENABLE_SDR50 |
 		    NVQUIRK_ENABLE_SDR104 |
+		    NVQUIRK_HAS_TMCLK |
 		    NVQUIRK_CQHCI_DCMD_R1B_CMD_TIMING,
 	.min_tap_delay = 84,
 	.max_tap_delay = 136,
@@ -1436,7 +1443,8 @@
 		    NVQUIRK_HAS_PADCALIB |
 		    NVQUIRK_DIS_CARD_CLK_CONFIG_TAP |
 		    NVQUIRK_ENABLE_SDR50 |
-		    NVQUIRK_ENABLE_SDR104,
+		    NVQUIRK_ENABLE_SDR104 |
+		    NVQUIRK_HAS_TMCLK,
 	.min_tap_delay = 96,
 	.max_tap_delay = 139,
 };
@@ -1552,6 +1560,9 @@
 	if (tegra_host->soc_data->nvquirks & NVQUIRK_ENABLE_DDR50)
 		host->mmc->caps |= MMC_CAP_1_8V_DDR;
 
+	/* R1B responses is required to properly manage HW busy detection. */
+	host->mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
+
 	tegra_sdhci_parse_dt(host);
 
 	tegra_host->power_gpio = devm_gpiod_get_optional(&pdev->dev, "power",
@@ -1561,6 +1572,43 @@
 		goto err_power_req;
 	}
 
+	/*
+	 * Tegra210 has a separate SDMMC_LEGACY_TM clock used for host
+	 * timeout clock and SW can choose TMCLK or SDCLK for hardware
+	 * data timeout through the bit USE_TMCLK_FOR_DATA_TIMEOUT of
+	 * the register SDHCI_TEGRA_VENDOR_SYS_SW_CTRL.
+	 *
+	 * USE_TMCLK_FOR_DATA_TIMEOUT bit default is set to 1 and SDMMC uses
+	 * 12Mhz TMCLK which is advertised in host capability register.
+	 * With TMCLK of 12Mhz provides maximum data timeout period that can
+	 * be achieved is 11s better than using SDCLK for data timeout.
+	 *
+	 * So, TMCLK is set to 12Mhz and kept enabled all the time on SoC's
+	 * supporting separate TMCLK.
+	 */
+
+	if (soc_data->nvquirks & NVQUIRK_HAS_TMCLK) {
+		clk = devm_clk_get(&pdev->dev, "tmclk");
+		if (IS_ERR(clk)) {
+			rc = PTR_ERR(clk);
+			if (rc == -EPROBE_DEFER)
+				goto err_power_req;
+
+			dev_warn(&pdev->dev, "failed to get tmclk: %d\n", rc);
+			clk = NULL;
+		}
+
+		clk_set_rate(clk, 12000000);
+		rc = clk_prepare_enable(clk);
+		if (rc) {
+			dev_err(&pdev->dev,
+				"failed to enable tmclk: %d\n", rc);
+			goto err_power_req;
+		}
+
+		tegra_host->tmclk = clk;
+	}
+
 	clk = devm_clk_get(mmc_dev(host->mmc), NULL);
 	if (IS_ERR(clk)) {
 		rc = PTR_ERR(clk);
@@ -1604,6 +1652,7 @@
 err_rst_get:
 	clk_disable_unprepare(pltfm_host->clk);
 err_clk_get:
+	clk_disable_unprepare(tegra_host->tmclk);
 err_power_req:
 err_parse_dt:
 	sdhci_pltfm_free(pdev);
@@ -1621,6 +1670,7 @@
 	reset_control_assert(tegra_host->rst);
 	usleep_range(2000, 4000);
 	clk_disable_unprepare(pltfm_host->clk);
+	clk_disable_unprepare(tegra_host->tmclk);
 
 	sdhci_pltfm_free(pdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci-xenon.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci-xenon.c
@@ -167,7 +167,12 @@
 	/* Disable tuning request and auto-retuning again */
 	xenon_retune_setup(host);
 
-	xenon_set_acg(host, true);
+	/*
+	 * The ACG should be turned off at the early init time, in order
+	 * to solve a possible issues with the 1.8V regulator stabilization.
+	 * The feature is enabled in later stage.
+	 */
+	xenon_set_acg(host, false);
 
 	xenon_set_sdclk_off_idle(host, sdhc_id, false);
 
@@ -235,6 +240,16 @@
 {
 	/* Wait for 5ms after set 1.8V signal enable bit */
 	usleep_range(5000, 5500);
+
+	/*
+	 * For some reason the controller's Host Control2 register reports
+	 * the bit representing 1.8V signaling as 0 when read after it was
+	 * written as 1. Subsequent read reports 1.
+	 *
+	 * Since this may cause some issues, do an empty read of the Host
+	 * Control2 register here to circumvent this.
+	 */
+	sdhci_readw(host, SDHCI_HOST_CONTROL2);
 }
 
 static const struct sdhci_ops sdhci_xenon_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci.c
@@ -152,7 +152,7 @@
 	u32 present;
 
 	if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) ||
-	    !mmc_card_is_removable(host->mmc))
+	    !mmc_card_is_removable(host->mmc) || mmc_can_gpio_cd(host->mmc))
 		return;
 
 	if (enable) {
@@ -981,7 +981,7 @@
 	sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
 }
 
-static void sdhci_set_data_timeout_irq(struct sdhci_host *host, bool enable)
+void sdhci_set_data_timeout_irq(struct sdhci_host *host, bool enable)
 {
 	if (enable)
 		host->ier |= SDHCI_INT_DATA_TIMEOUT;
@@ -990,28 +990,31 @@
 	sdhci_writel(host, host->ier, SDHCI_INT_ENABLE);
 	sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
 }
+EXPORT_SYMBOL_GPL(sdhci_set_data_timeout_irq);
 
-static void sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
+void __sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
 {
-	u8 count;
-
-	if (host->ops->set_timeout) {
-		host->ops->set_timeout(host, cmd);
-	} else {
-		bool too_big = false;
+	bool too_big = false;
+	u8 count = sdhci_calc_timeout(host, cmd, &too_big);
 
-		count = sdhci_calc_timeout(host, cmd, &too_big);
+	if (too_big &&
+	    host->quirks2 & SDHCI_QUIRK2_DISABLE_HW_TIMEOUT) {
+		sdhci_calc_sw_timeout(host, cmd);
+		sdhci_set_data_timeout_irq(host, false);
+	} else if (!(host->ier & SDHCI_INT_DATA_TIMEOUT)) {
+		sdhci_set_data_timeout_irq(host, true);
+	}
 
-		if (too_big &&
-		    host->quirks2 & SDHCI_QUIRK2_DISABLE_HW_TIMEOUT) {
-			sdhci_calc_sw_timeout(host, cmd);
-			sdhci_set_data_timeout_irq(host, false);
-		} else if (!(host->ier & SDHCI_INT_DATA_TIMEOUT)) {
-			sdhci_set_data_timeout_irq(host, true);
-		}
+	sdhci_writeb(host, count, SDHCI_TIMEOUT_CONTROL);
+}
+EXPORT_SYMBOL_GPL(__sdhci_set_timeout);
 
-		sdhci_writeb(host, count, SDHCI_TIMEOUT_CONTROL);
-	}
+static void sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
+{
+	if (host->ops->set_timeout)
+		host->ops->set_timeout(host, cmd);
+	else
+		__sdhci_set_timeout(host, cmd);
 }
 
 static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
@@ -1159,9 +1162,11 @@
 	/*
 	 * In case of Version 4.10 or later, use of 'Auto CMD Auto
 	 * Select' is recommended rather than use of 'Auto CMD12
-	 * Enable' or 'Auto CMD23 Enable'.
+	 * Enable' or 'Auto CMD23 Enable'. We require Version 4 Mode
+	 * here because some controllers (e.g sdhci-of-dwmshc) expect it.
 	 */
-	if (host->version >= SDHCI_SPEC_410 && (use_cmd12 || use_cmd23)) {
+	if (host->version >= SDHCI_SPEC_410 && host->v4_mode &&
+	    (use_cmd12 || use_cmd23)) {
 		*mode |= SDHCI_TRNS_AUTO_SEL;
 
 		ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2);
@@ -1871,9 +1876,7 @@
 		ctrl_2 |= SDHCI_CTRL_UHS_SDR104;
 	else if (timing == MMC_TIMING_UHS_SDR12)
 		ctrl_2 |= SDHCI_CTRL_UHS_SDR12;
-	else if (timing == MMC_TIMING_SD_HS ||
-		 timing == MMC_TIMING_MMC_HS ||
-		 timing == MMC_TIMING_UHS_SDR25)
+	else if (timing == MMC_TIMING_UHS_SDR25)
 		ctrl_2 |= SDHCI_CTRL_UHS_SDR25;
 	else if (timing == MMC_TIMING_UHS_SDR50)
 		ctrl_2 |= SDHCI_CTRL_UHS_SDR50;
@@ -2408,8 +2411,8 @@
 		sdhci_send_tuning(host, opcode);
 
 		if (!host->tuning_done) {
-			pr_info("%s: Tuning timeout, falling back to fixed sampling clock\n",
-				mmc_hostname(host->mmc));
+			pr_debug("%s: Tuning timeout, falling back to fixed sampling clock\n",
+				 mmc_hostname(host->mmc));
 			sdhci_abort_tuning(host, opcode);
 			return -ETIMEDOUT;
 		}
@@ -3758,6 +3761,9 @@
 		       mmc_hostname(mmc), host->version);
 	}
 
+	if (host->quirks & SDHCI_QUIRK_BROKEN_CQE)
+		mmc->caps2 &= ~MMC_CAP2_CQE;
+
 	if (host->quirks & SDHCI_QUIRK_FORCE_DMA)
 		host->flags |= SDHCI_USE_SDMA;
 	else if (!(host->caps & SDHCI_CAN_DO_SDMA))
@@ -3901,11 +3907,13 @@
 	if (host->ops->get_min_clock)
 		mmc->f_min = host->ops->get_min_clock(host);
 	else if (host->version >= SDHCI_SPEC_300) {
-		if (host->clk_mul) {
-			mmc->f_min = (host->max_clk * host->clk_mul) / 1024;
+		if (host->clk_mul)
 			max_clk = host->max_clk * host->clk_mul;
-		} else
-			mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_300;
+		/*
+		 * Divided Clock Mode minimum clock rate is always less than
+		 * Programmable Clock Mode minimum clock rate.
+		 */
+		mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_300;
 	} else
 		mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_200;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci.h
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci.h
@@ -409,6 +409,8 @@
 #define SDHCI_QUIRK_BROKEN_CARD_DETECTION		(1<<15)
 /* Controller reports inverted write-protect state */
 #define SDHCI_QUIRK_INVERTED_WRITE_PROTECT		(1<<16)
+/* Controller has unusable command queue engine */
+#define SDHCI_QUIRK_BROKEN_CQE				(1<<17)
 /* Controller does not like fast PIO transfers */
 #define SDHCI_QUIRK_PIO_NEEDS_DELAY			(1<<18)
 /* Controller does not have a LED */
@@ -793,5 +795,7 @@
 void sdhci_reset_tuning(struct sdhci_host *host);
 void sdhci_send_tuning(struct sdhci_host *host, u32 opcode);
 void sdhci_abort_tuning(struct sdhci_host *host, u32 opcode);
+void sdhci_set_data_timeout_irq(struct sdhci_host *host, bool enable);
+void __sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd);
 
 #endif /* __SDHCI_HW_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/sdhci_am654.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/sdhci_am654.c
@@ -236,6 +236,22 @@
 	writeb(val, host->ioaddr + reg);
 }
 
+static int sdhci_am654_execute_tuning(struct mmc_host *mmc, u32 opcode)
+{
+	struct sdhci_host *host = mmc_priv(mmc);
+	int err = sdhci_execute_tuning(mmc, opcode);
+
+	if (err)
+		return err;
+	/*
+	 * Tuning data remains in the buffer after tuning.
+	 * Do a command and data reset to get rid of it
+	 */
+	sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
+
+	return 0;
+}
+
 static struct sdhci_ops sdhci_am654_ops = {
 	.get_max_clock = sdhci_pltfm_clk_get_max_clock,
 	.get_timeout_clock = sdhci_pltfm_clk_get_max_clock,
@@ -249,8 +265,7 @@
 
 static const struct sdhci_pltfm_data sdhci_am654_pdata = {
 	.ops = &sdhci_am654_ops,
-	.quirks = SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
-		  SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
+	.quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
 	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 };
 
@@ -272,8 +287,7 @@
 
 static const struct sdhci_pltfm_data sdhci_j721e_8bit_pdata = {
 	.ops = &sdhci_j721e_8bit_ops,
-	.quirks = SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
-		  SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
+	.quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
 	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 };
 
@@ -295,8 +309,7 @@
 
 static const struct sdhci_pltfm_data sdhci_j721e_4bit_pdata = {
 	.ops = &sdhci_j721e_4bit_ops,
-	.quirks = SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
-		  SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
+	.quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
 	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
 };
 
@@ -480,6 +493,8 @@
 		goto pm_runtime_put;
 	}
 
+	host->mmc_host_ops.execute_tuning = sdhci_am654_execute_tuning;
+
 	ret = sdhci_am654_init(host);
 	if (ret)
 		goto pm_runtime_put;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/tmio_mmc_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/tmio_mmc_core.c
@@ -1184,7 +1184,7 @@
 	if (ret == -EPROBE_DEFER)
 		return ret;
 
-	mmc->caps |= MMC_CAP_4_BIT_DATA | pdata->capabilities;
+	mmc->caps |= MMC_CAP_ERASE | MMC_CAP_4_BIT_DATA | pdata->capabilities;
 	mmc->caps2 |= pdata->capabilities2;
 	mmc->max_segs = pdata->max_segs ? : 32;
 	mmc->max_blk_size = TMIO_MAX_BLK_SIZE;
@@ -1285,12 +1285,14 @@
 	cancel_work_sync(&host->done);
 	cancel_delayed_work_sync(&host->delayed_reset_work);
 	tmio_mmc_release_dma(host);
+	tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_ALL);
 
-	pm_runtime_dont_use_autosuspend(&pdev->dev);
 	if (host->native_hotplug)
 		pm_runtime_put_noidle(&pdev->dev);
-	pm_runtime_put_sync(&pdev->dev);
+
 	pm_runtime_disable(&pdev->dev);
+	pm_runtime_dont_use_autosuspend(&pdev->dev);
+	pm_runtime_put_noidle(&pdev->dev);
 }
 EXPORT_SYMBOL_GPL(tmio_mmc_host_remove);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/uniphier-sd.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/uniphier-sd.c
@@ -614,11 +614,6 @@
 		}
 	}
 
-	ret = devm_request_irq(dev, irq, tmio_mmc_irq, IRQF_SHARED,
-			       dev_name(dev), host);
-	if (ret)
-		goto free_host;
-
 	if (priv->caps & UNIPHIER_SD_CAP_EXTENDED_IP)
 		host->dma_ops = &uniphier_sd_internal_dma_ops;
 	else
@@ -646,8 +641,15 @@
 	if (ret)
 		goto free_host;
 
+	ret = devm_request_irq(dev, irq, tmio_mmc_irq, IRQF_SHARED,
+			       dev_name(dev), host);
+	if (ret)
+		goto remove_host;
+
 	return 0;
 
+remove_host:
+	tmio_mmc_host_remove(host);
 free_host:
 	tmio_mmc_host_free(host);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/usdhi6rol0.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/usdhi6rol0.c
@@ -1860,10 +1860,12 @@
 
 	ret = mmc_add_host(mmc);
 	if (ret < 0)
-		goto e_clk_off;
+		goto e_release_dma;
 
 	return 0;
 
+e_release_dma:
+	usdhi6_dma_release(host);
 e_clk_off:
 	clk_disable_unprepare(host->clk);
 e_free_mmc:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mmc/host/via-sdmmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mmc/host/via-sdmmc.c
@@ -319,6 +319,8 @@
 /* some devices need a very long delay for power to stabilize */
 #define VIA_CRDR_QUIRK_300MS_PWRDELAY	0x0001
 
+#define VIA_CMD_TIMEOUT_MS		1000
+
 static const struct pci_device_id via_ids[] = {
 	{PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_9530,
 	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,},
@@ -551,14 +553,17 @@
 {
 	void __iomem *addrbase;
 	struct mmc_data *data;
+	unsigned int timeout_ms;
 	u32 cmdctrl = 0;
 
 	WARN_ON(host->cmd);
 
 	data = cmd->data;
-	mod_timer(&host->timer, jiffies + HZ);
 	host->cmd = cmd;
 
+	timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : VIA_CMD_TIMEOUT_MS;
+	mod_timer(&host->timer, jiffies + msecs_to_jiffies(timeout_ms));
+
 	/*Command index*/
 	cmdctrl = cmd->opcode << 8;
 
@@ -1254,11 +1259,14 @@
 static int via_sd_suspend(struct pci_dev *pcidev, pm_message_t state)
 {
 	struct via_crdr_mmc_host *host;
+	unsigned long flags;
 
 	host = pci_get_drvdata(pcidev);
 
+	spin_lock_irqsave(&host->lock, flags);
 	via_save_pcictrlreg(host);
 	via_save_sdcreg(host);
+	spin_unlock_irqrestore(&host->lock, flags);
 
 	pci_save_state(pcidev);
 	pci_enable_wake(pcidev, pci_choose_state(pcidev, state), 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/chips/cfi_cmdset_0002.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -123,19 +123,23 @@
 		(extp->SoftwareFeatures & poll_mask) == CFI_POLL_STATUS_REG;
 }
 
-static void cfi_check_err_status(struct map_info *map, struct flchip *chip,
-				 unsigned long adr)
+static int cfi_check_err_status(struct map_info *map, struct flchip *chip,
+				unsigned long adr)
 {
 	struct cfi_private *cfi = map->fldrv_priv;
 	map_word status;
 
 	if (!cfi_use_status_reg(cfi))
-		return;
+		return 0;
 
 	cfi_send_gen_cmd(0x70, cfi->addr_unlock1, chip->start, map, cfi,
 			 cfi->device_type, NULL);
 	status = map_read(map, adr);
 
+	/* The error bits are invalid while the chip's busy */
+	if (!map_word_bitsset(map, status, CMD(CFI_SR_DRB)))
+		return 0;
+
 	if (map_word_bitsset(map, status, CMD(0x3a))) {
 		unsigned long chipstatus = MERGESTATUS(status);
 
@@ -151,7 +155,12 @@
 		if (chipstatus & CFI_SR_SLSB)
 			pr_err("%s sector write protected, status %lx\n",
 			       map->name, chipstatus);
+
+		/* Erase/Program status bits are set on the operation failure */
+		if (chipstatus & (CFI_SR_ESB | CFI_SR_PSB))
+			return 1;
 	}
+	return 0;
 }
 
 /* #define DEBUG_CFI_FEATURES */
@@ -785,7 +794,6 @@
 	kfree(mtd->eraseregions);
 	kfree(mtd);
 	kfree(cfi->cmdset_priv);
-	kfree(cfi->cfiq);
 	return NULL;
 }
 
@@ -848,20 +856,16 @@
 
 	if (cfi_use_status_reg(cfi)) {
 		map_word ready = CMD(CFI_SR_DRB);
-		map_word err = CMD(CFI_SR_PSB | CFI_SR_ESB);
+
 		/*
 		 * For chips that support status register, check device
-		 * ready bit and Erase/Program status bit to know if
-		 * operation succeeded.
+		 * ready bit
 		 */
 		cfi_send_gen_cmd(0x70, cfi->addr_unlock1, chip->start, map, cfi,
 				 cfi->device_type, NULL);
 		curd = map_read(map, addr);
 
-		if (map_word_andequal(map, curd, ready, ready))
-			return !map_word_bitsset(map, curd, err);
-
-		return 0;
+		return map_word_andequal(map, curd, ready, ready);
 	}
 
 	oldd = map_read(map, addr);
@@ -1699,8 +1703,11 @@
 			break;
 		}
 
-		if (chip_good(map, chip, adr, datum))
+		if (chip_good(map, chip, adr, datum)) {
+			if (cfi_check_err_status(map, chip, adr))
+				ret = -EIO;
 			break;
+		}
 
 		/* Latency issues. Drop the lock, wait a while and retry */
 		UDELAY(map, chip, adr, 1);
@@ -1773,7 +1780,6 @@
 	ret = do_write_oneword_once(map, chip, adr, datum, mode, cfi);
 	if (ret) {
 		/* reset on all failures. */
-		cfi_check_err_status(map, chip, adr);
 		map_write(map, CMD(0xF0), chip->start);
 		/* FIXME - should have reset delay before continuing */
 
@@ -1970,12 +1976,17 @@
 		 */
 		if (time_after(jiffies, timeo) &&
 		    !chip_good(map, chip, adr, datum)) {
+			pr_err("MTD %s(): software timeout, address:0x%.8lx.\n",
+			       __func__, adr);
 			ret = -EIO;
 			break;
 		}
 
-		if (chip_good(map, chip, adr, datum))
+		if (chip_good(map, chip, adr, datum)) {
+			if (cfi_check_err_status(map, chip, adr))
+				ret = -EIO;
 			break;
+		}
 
 		/* Latency issues. Drop the lock, wait a while and retry */
 		UDELAY(map, chip, adr, 1);
@@ -2071,12 +2082,8 @@
 				chip->word_write_time);
 
 	ret = do_write_buffer_wait(map, chip, adr, datum);
-	if (ret) {
-		cfi_check_err_status(map, chip, adr);
+	if (ret)
 		do_write_buffer_reset(map, chip, cfi);
-		pr_err("MTD %s(): software timeout, address:0x%.8lx.\n",
-		       __func__, adr);
-	}
 
 	xip_enable(map, chip, adr);
 
@@ -2271,9 +2278,9 @@
 		udelay(1);
 	}
 
-	if (!chip_good(map, chip, adr, datum)) {
+	if (!chip_good(map, chip, adr, datum) ||
+	    cfi_check_err_status(map, chip, adr)) {
 		/* reset on all failures. */
-		cfi_check_err_status(map, chip, adr);
 		map_write(map, CMD(0xF0), chip->start);
 		/* FIXME - should have reset delay before continuing */
 
@@ -2467,8 +2474,11 @@
 			chip->erase_suspended = 0;
 		}
 
-		if (chip_good(map, chip, adr, map_word_ff(map)))
+		if (chip_good(map, chip, adr, map_word_ff(map))) {
+			if (cfi_check_err_status(map, chip, adr))
+				ret = -EIO;
 			break;
+		}
 
 		if (time_after(jiffies, timeo)) {
 			printk(KERN_WARNING "MTD %s(): software timeout\n",
@@ -2483,7 +2493,6 @@
 	/* Did we succeed? */
 	if (ret) {
 		/* reset on all failures. */
-		cfi_check_err_status(map, chip, adr);
 		map_write(map, CMD(0xF0), chip->start);
 		/* FIXME - should have reset delay before continuing */
 
@@ -2564,8 +2573,11 @@
 			chip->erase_suspended = 0;
 		}
 
-		if (chip_good(map, chip, adr, map_word_ff(map)))
+		if (chip_good(map, chip, adr, map_word_ff(map))) {
+			if (cfi_check_err_status(map, chip, adr))
+				ret = -EIO;
 			break;
+		}
 
 		if (time_after(jiffies, timeo)) {
 			printk(KERN_WARNING "MTD %s(): software timeout\n",
@@ -2580,7 +2592,6 @@
 	/* Did we succeed? */
 	if (ret) {
 		/* reset on all failures. */
-		cfi_check_err_status(map, chip, adr);
 		map_write(map, CMD(0xF0), chip->start);
 		/* FIXME - should have reset delay before continuing */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/devices/mchp23k256.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/devices/mchp23k256.c
@@ -64,15 +64,17 @@
 	struct spi_transfer transfer[2] = {};
 	struct spi_message message;
 	unsigned char command[MAX_CMD_SIZE];
-	int ret;
+	int ret, cmd_len;
 
 	spi_message_init(&message);
 
+	cmd_len = mchp23k256_cmdsz(flash);
+
 	command[0] = MCHP23K256_CMD_WRITE;
 	mchp23k256_addr2cmd(flash, to, command);
 
 	transfer[0].tx_buf = command;
-	transfer[0].len = mchp23k256_cmdsz(flash);
+	transfer[0].len = cmd_len;
 	spi_message_add_tail(&transfer[0], &message);
 
 	transfer[1].tx_buf = buf;
@@ -88,8 +90,8 @@
 	if (ret)
 		return ret;
 
-	if (retlen && message.actual_length > sizeof(command))
-		*retlen += message.actual_length - sizeof(command);
+	if (retlen && message.actual_length > cmd_len)
+		*retlen += message.actual_length - cmd_len;
 
 	return 0;
 }
@@ -101,16 +103,18 @@
 	struct spi_transfer transfer[2] = {};
 	struct spi_message message;
 	unsigned char command[MAX_CMD_SIZE];
-	int ret;
+	int ret, cmd_len;
 
 	spi_message_init(&message);
 
+	cmd_len = mchp23k256_cmdsz(flash);
+
 	memset(&transfer, 0, sizeof(transfer));
 	command[0] = MCHP23K256_CMD_READ;
 	mchp23k256_addr2cmd(flash, from, command);
 
 	transfer[0].tx_buf = command;
-	transfer[0].len = mchp23k256_cmdsz(flash);
+	transfer[0].len = cmd_len;
 	spi_message_add_tail(&transfer[0], &message);
 
 	transfer[1].rx_buf = buf;
@@ -126,8 +130,8 @@
 	if (ret)
 		return ret;
 
-	if (retlen && message.actual_length > sizeof(command))
-		*retlen += message.actual_length - sizeof(command);
+	if (retlen && message.actual_length > cmd_len)
+		*retlen += message.actual_length - cmd_len;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/devices/phram.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/devices/phram.c
@@ -243,22 +243,25 @@
 
 	ret = parse_num64(&start, token[1]);
 	if (ret) {
-		kfree(name);
 		parse_err("illegal start address\n");
+		goto error;
 	}
 
 	ret = parse_num64(&len, token[2]);
 	if (ret) {
-		kfree(name);
 		parse_err("illegal device length\n");
+		goto error;
 	}
 
 	ret = register_device(name, start, len);
-	if (!ret)
-		pr_info("%s device: %#llx at %#llx\n", name, len, start);
-	else
-		kfree(name);
+	if (ret)
+		goto error;
 
+	pr_info("%s device: %#llx at %#llx\n", name, len, start);
+	return 0;
+
+error:
+	kfree(name);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/devices/spear_smi.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/devices/spear_smi.c
@@ -592,6 +592,26 @@
 	return 0;
 }
 
+/*
+ * The purpose of this function is to ensure a memcpy_toio() with byte writes
+ * only. Its structure is inspired from the ARM implementation of _memcpy_toio()
+ * which also does single byte writes but cannot be used here as this is just an
+ * implementation detail and not part of the API. Not mentioning the comment
+ * stating that _memcpy_toio() should be optimized.
+ */
+static void spear_smi_memcpy_toio_b(volatile void __iomem *dest,
+				    const void *src, size_t len)
+{
+	const unsigned char *from = src;
+
+	while (len) {
+		len--;
+		writeb(*from, dest);
+		from++;
+		dest++;
+	}
+}
+
 static inline int spear_smi_cpy_toio(struct spear_smi *dev, u32 bank,
 		void __iomem *dest, const void *src, size_t len)
 {
@@ -614,7 +634,23 @@
 	ctrlreg1 = readl(dev->io_base + SMI_CR1);
 	writel((ctrlreg1 | WB_MODE) & ~SW_MODE, dev->io_base + SMI_CR1);
 
-	memcpy_toio(dest, src, len);
+	/*
+	 * In Write Burst mode (WB_MODE), the specs states that writes must be:
+	 * - incremental
+	 * - of the same size
+	 * The ARM implementation of memcpy_toio() will optimize the number of
+	 * I/O by using as much 4-byte writes as possible, surrounded by
+	 * 2-byte/1-byte access if:
+	 * - the destination is not 4-byte aligned
+	 * - the length is not a multiple of 4-byte.
+	 * Avoid this alternance of write access size by using our own 'byte
+	 * access' helper if at least one of the two conditions above is true.
+	 */
+	if (IS_ALIGNED(len, sizeof(u32)) &&
+	    IS_ALIGNED((uintptr_t)dest, sizeof(u32)))
+		memcpy_toio(dest, src, len);
+	else
+		spear_smi_memcpy_toio_b(dest, src, len);
 
 	writel(ctrlreg1, dev->io_base + SMI_CR1);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/lpddr/lpddr2_nvm.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/lpddr/lpddr2_nvm.c
@@ -393,6 +393,17 @@
 	return lpddr2_nvm_do_block_op(mtd, start_add, len, LPDDR2_NVM_LOCK);
 }
 
+static const struct mtd_info lpddr2_nvm_mtd_info = {
+	.type		= MTD_RAM,
+	.writesize	= 1,
+	.flags		= (MTD_CAP_NVRAM | MTD_POWERUP_LOCK),
+	._read		= lpddr2_nvm_read,
+	._write		= lpddr2_nvm_write,
+	._erase		= lpddr2_nvm_erase,
+	._unlock	= lpddr2_nvm_unlock,
+	._lock		= lpddr2_nvm_lock,
+};
+
 /*
  * lpddr2_nvm driver probe method
  */
@@ -433,6 +444,7 @@
 		.pfow_base	= OW_BASE_ADDRESS,
 		.fldrv_priv	= pcm_data,
 	};
+
 	if (IS_ERR(map->virt))
 		return PTR_ERR(map->virt);
 
@@ -444,22 +456,13 @@
 		return PTR_ERR(pcm_data->ctl_regs);
 
 	/* Populate mtd_info data structure */
-	*mtd = (struct mtd_info) {
-		.dev		= { .parent = &pdev->dev },
-		.name		= pdev->dev.init_name,
-		.type		= MTD_RAM,
-		.priv		= map,
-		.size		= resource_size(add_range),
-		.erasesize	= ERASE_BLOCKSIZE * pcm_data->bus_width,
-		.writesize	= 1,
-		.writebufsize	= WRITE_BUFFSIZE * pcm_data->bus_width,
-		.flags		= (MTD_CAP_NVRAM | MTD_POWERUP_LOCK),
-		._read		= lpddr2_nvm_read,
-		._write		= lpddr2_nvm_write,
-		._erase		= lpddr2_nvm_erase,
-		._unlock	= lpddr2_nvm_unlock,
-		._lock		= lpddr2_nvm_lock,
-	};
+	*mtd = lpddr2_nvm_mtd_info;
+	mtd->dev.parent		= &pdev->dev;
+	mtd->name		= pdev->dev.init_name;
+	mtd->priv		= map;
+	mtd->size		= resource_size(add_range);
+	mtd->erasesize		= ERASE_BLOCKSIZE * pcm_data->bus_width;
+	mtd->writebufsize	= WRITE_BUFFSIZE * pcm_data->bus_width;
 
 	/* Verify the presence of the device looking for PFOW string */
 	if (!lpddr2_nvm_pfow_present(map)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/lpddr/lpddr_cmds.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/lpddr/lpddr_cmds.c
@@ -68,7 +68,6 @@
 	shared = kmalloc_array(lpddr->numchips, sizeof(struct flchip_shared),
 						GFP_KERNEL);
 	if (!shared) {
-		kfree(lpddr);
 		kfree(mtd);
 		return NULL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/mtdchar.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/mtdchar.c
@@ -354,9 +354,6 @@
 	uint32_t retlen;
 	int ret = 0;
 
-	if (!(file->f_mode & FMODE_WRITE))
-		return -EPERM;
-
 	if (length > 4096)
 		return -EINVAL;
 
@@ -641,6 +638,48 @@
 
 	pr_debug("MTD_ioctl\n");
 
+	/*
+	 * Check the file mode to require "dangerous" commands to have write
+	 * permissions.
+	 */
+	switch (cmd) {
+	/* "safe" commands */
+	case MEMGETREGIONCOUNT:
+	case MEMGETREGIONINFO:
+	case MEMGETINFO:
+	case MEMREADOOB:
+	case MEMREADOOB64:
+	case MEMLOCK:
+	case MEMUNLOCK:
+	case MEMISLOCKED:
+	case MEMGETOOBSEL:
+	case MEMGETBADBLOCK:
+	case MEMSETBADBLOCK:
+	case OTPSELECT:
+	case OTPGETREGIONCOUNT:
+	case OTPGETREGIONINFO:
+	case OTPLOCK:
+	case ECCGETLAYOUT:
+	case ECCGETSTATS:
+	case MTDFILEMODE:
+	case BLKPG:
+	case BLKRRPART:
+		break;
+
+	/* "dangerous" commands */
+	case MEMERASE:
+	case MEMERASE64:
+	case MEMWRITEOOB:
+	case MEMWRITEOOB64:
+	case MEMWRITE:
+		if (!(file->f_mode & FMODE_WRITE))
+			return -EPERM;
+		break;
+
+	default:
+		return -ENOTTY;
+	}
+
 	switch (cmd) {
 	case MEMGETREGIONCOUNT:
 		if (copy_to_user(argp, &(mtd->numeraseregions), sizeof(int)))
@@ -688,9 +727,6 @@
 	{
 		struct erase_info *erase;
 
-		if(!(file->f_mode & FMODE_WRITE))
-			return -EPERM;
-
 		erase=kzalloc(sizeof(struct erase_info),GFP_KERNEL);
 		if (!erase)
 			ret = -ENOMEM;
@@ -983,9 +1019,6 @@
 		ret = 0;
 		break;
 	}
-
-	default:
-		ret = -ENOTTY;
 	}
 
 	return ret;
@@ -1029,6 +1062,11 @@
 		struct mtd_oob_buf32 buf;
 		struct mtd_oob_buf32 __user *buf_user = argp;
 
+		if (!(file->f_mode & FMODE_WRITE)) {
+			ret = -EPERM;
+			break;
+		}
+
 		if (copy_from_user(&buf, argp, sizeof(buf)))
 			ret = -EFAULT;
 		else
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/mtdcore.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/mtdcore.c
@@ -563,7 +563,7 @@
 
 	config.id = -1;
 	config.dev = &mtd->dev;
-	config.name = mtd->name;
+	config.name = dev_name(&mtd->dev);
 	config.owner = THIS_MODULE;
 	config.reg_read = mtd_nvmem_reg_read;
 	config.size = mtd->size;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/mtdoops.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/mtdoops.c
@@ -279,12 +279,13 @@
 	kmsg_dump_get_buffer(dumper, true, cxt->oops_buf + MTDOOPS_HEADER_SIZE,
 			     record_size - MTDOOPS_HEADER_SIZE, NULL);
 
-	/* Panics must be written immediately */
-	if (reason != KMSG_DUMP_OOPS)
+	if (reason != KMSG_DUMP_OOPS) {
+		/* Panics must be written immediately */
 		mtdoops_write(cxt, 1);
-
-	/* For other cases, schedule work to write it "nicely" */
-	schedule_work(&cxt->work_write);
+	} else {
+		/* For other cases, schedule work to write it "nicely" */
+		schedule_work(&cxt->work_write);
+	}
 }
 
 static void mtdoops_notify_add(struct mtd_info *mtd)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/onenand/omap2.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/onenand/omap2.c
@@ -328,7 +328,8 @@
 	struct dma_async_tx_descriptor *tx;
 	dma_cookie_t cookie;
 
-	tx = dmaengine_prep_dma_memcpy(c->dma_chan, dst, src, count, 0);
+	tx = dmaengine_prep_dma_memcpy(c->dma_chan, dst, src, count,
+				       DMA_CTRL_ACK | DMA_PREP_INTERRUPT);
 	if (!tx) {
 		dev_err(&c->pdev->dev, "Failed to prepare DMA memcpy\n");
 		return -EIO;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/onenand/onenand_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/onenand/onenand_base.c
@@ -1248,44 +1248,44 @@
 
 	stats = mtd->ecc_stats;
 
- 	/* Read-while-load method */
+	/* Read-while-load method */
 
- 	/* Do first load to bufferRAM */
- 	if (read < len) {
- 		if (!onenand_check_bufferram(mtd, from)) {
+	/* Do first load to bufferRAM */
+	if (read < len) {
+		if (!onenand_check_bufferram(mtd, from)) {
 			this->command(mtd, ONENAND_CMD_READ, from, writesize);
- 			ret = this->wait(mtd, FL_READING);
- 			onenand_update_bufferram(mtd, from, !ret);
+			ret = this->wait(mtd, FL_READING);
+			onenand_update_bufferram(mtd, from, !ret);
 			if (mtd_is_eccerr(ret))
 				ret = 0;
- 		}
- 	}
+		}
+	}
 
 	thislen = min_t(int, writesize, len - read);
 	column = from & (writesize - 1);
 	if (column + thislen > writesize)
 		thislen = writesize - column;
 
- 	while (!ret) {
- 		/* If there is more to load then start next load */
- 		from += thislen;
- 		if (read + thislen < len) {
+	while (!ret) {
+		/* If there is more to load then start next load */
+		from += thislen;
+		if (read + thislen < len) {
 			this->command(mtd, ONENAND_CMD_READ, from, writesize);
- 			/*
- 			 * Chip boundary handling in DDP
- 			 * Now we issued chip 1 read and pointed chip 1
+			/*
+			 * Chip boundary handling in DDP
+			 * Now we issued chip 1 read and pointed chip 1
 			 * bufferram so we have to point chip 0 bufferram.
- 			 */
- 			if (ONENAND_IS_DDP(this) &&
- 			    unlikely(from == (this->chipsize >> 1))) {
- 				this->write_word(ONENAND_DDP_CHIP0, this->base + ONENAND_REG_START_ADDRESS2);
- 				boundary = 1;
- 			} else
- 				boundary = 0;
- 			ONENAND_SET_PREV_BUFFERRAM(this);
- 		}
- 		/* While load is going, read from last bufferRAM */
- 		this->read_bufferram(mtd, ONENAND_DATARAM, buf, column, thislen);
+			 */
+			if (ONENAND_IS_DDP(this) &&
+			    unlikely(from == (this->chipsize >> 1))) {
+				this->write_word(ONENAND_DDP_CHIP0, this->base + ONENAND_REG_START_ADDRESS2);
+				boundary = 1;
+			} else
+				boundary = 0;
+			ONENAND_SET_PREV_BUFFERRAM(this);
+		}
+		/* While load is going, read from last bufferRAM */
+		this->read_bufferram(mtd, ONENAND_DATARAM, buf, column, thislen);
 
 		/* Read oob area if needed */
 		if (oobbuf) {
@@ -1301,24 +1301,24 @@
 			oobcolumn = 0;
 		}
 
- 		/* See if we are done */
- 		read += thislen;
- 		if (read == len)
- 			break;
- 		/* Set up for next read from bufferRAM */
- 		if (unlikely(boundary))
- 			this->write_word(ONENAND_DDP_CHIP1, this->base + ONENAND_REG_START_ADDRESS2);
- 		ONENAND_SET_NEXT_BUFFERRAM(this);
- 		buf += thislen;
+		/* See if we are done */
+		read += thislen;
+		if (read == len)
+			break;
+		/* Set up for next read from bufferRAM */
+		if (unlikely(boundary))
+			this->write_word(ONENAND_DDP_CHIP1, this->base + ONENAND_REG_START_ADDRESS2);
+		ONENAND_SET_NEXT_BUFFERRAM(this);
+		buf += thislen;
 		thislen = min_t(int, writesize, len - read);
- 		column = 0;
- 		cond_resched();
- 		/* Now wait for load */
- 		ret = this->wait(mtd, FL_READING);
- 		onenand_update_bufferram(mtd, from, !ret);
+		column = 0;
+		cond_resched();
+		/* Now wait for load */
+		ret = this->wait(mtd, FL_READING);
+		onenand_update_bufferram(mtd, from, !ret);
 		if (mtd_is_eccerr(ret))
 			ret = 0;
- 	}
+	}
 
 	/*
 	 * Return success, if no ECC failures, else -EBADMSG
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/brcmnand/brcmnand.c
@@ -537,8 +537,9 @@
 	} else {
 		ctrl->cs_offsets = brcmnand_cs_offsets;
 
-		/* v5.0 and earlier has a different CS0 offset layout */
-		if (ctrl->nand_version <= 0x0500)
+		/* v3.3-5.0 have a different CS0 offset layout */
+		if (ctrl->nand_version >= 0x0303 &&
+		    ctrl->nand_version <= 0x0500)
 			ctrl->cs0_offsets = brcmnand_cs_offsets_cs0;
 	}
 
@@ -1019,11 +1020,14 @@
 		if (!section) {
 			/*
 			 * Small-page NAND use byte 6 for BBI while large-page
-			 * NAND use byte 0.
+			 * NAND use bytes 0 and 1.
 			 */
-			if (cfg->page_size > 512)
-				oobregion->offset++;
-			oobregion->length--;
+			if (cfg->page_size > 512) {
+				oobregion->offset += 2;
+				oobregion->length -= 2;
+			} else {
+				oobregion->length--;
+			}
 		}
 	}
 
@@ -1787,28 +1791,31 @@
 static int brcmstb_nand_verify_erased_page(struct mtd_info *mtd,
 		  struct nand_chip *chip, void *buf, u64 addr)
 {
-	int i, sas;
-	void *oob = chip->oob_poi;
+	struct mtd_oob_region ecc;
+	int i;
 	int bitflips = 0;
 	int page = addr >> chip->page_shift;
 	int ret;
+	void *ecc_bytes;
 	void *ecc_chunk;
 
 	if (!buf)
 		buf = nand_get_data_buf(chip);
 
-	sas = mtd->oobsize / chip->ecc.steps;
-
 	/* read without ecc for verification */
 	ret = chip->ecc.read_page_raw(chip, buf, true, page);
 	if (ret)
 		return ret;
 
-	for (i = 0; i < chip->ecc.steps; i++, oob += sas) {
+	for (i = 0; i < chip->ecc.steps; i++) {
 		ecc_chunk = buf + chip->ecc.size * i;
-		ret = nand_check_erased_ecc_chunk(ecc_chunk,
-						  chip->ecc.size,
-						  oob, sas, NULL, 0,
+
+		mtd_ooblayout_ecc(mtd, i, &ecc);
+		ecc_bytes = chip->oob_poi + ecc.offset;
+
+		ret = nand_check_erased_ecc_chunk(ecc_chunk, chip->ecc.size,
+						  ecc_bytes, ecc.length,
+						  NULL, 0,
 						  chip->ecc.strength);
 		if (ret < 0)
 			return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/diskonchip.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/diskonchip.c
@@ -1609,13 +1609,10 @@
 		numchips = doc2001_init(mtd);
 
 	if ((ret = nand_scan(nand, numchips)) || (ret = doc->late_init(mtd))) {
-		/* DBB note: i believe nand_release is necessary here, as
+		/* DBB note: i believe nand_cleanup is necessary here, as
 		   buffers may have been allocated in nand_base.  Check with
 		   Thomas. FIX ME! */
-		/* nand_release will call mtd_device_unregister, but we
-		   haven't yet added it.  This is handled without incident by
-		   mtd_device_unregister, as far as I can tell. */
-		nand_release(nand);
+		nand_cleanup(nand);
 		goto fail;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/fsl_upm.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/fsl_upm.c
@@ -62,7 +62,6 @@
 static void fun_wait_rnb(struct fsl_upm_nand *fun)
 {
 	if (fun->rnb_gpio[fun->mchip_number] >= 0) {
-		struct mtd_info *mtd = nand_to_mtd(&fun->chip);
 		int cnt = 1000000;
 
 		while (--cnt && !fun_chip_ready(&fun->chip))
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
@@ -148,6 +148,12 @@
 	struct resources *r = &this->resources;
 	int ret;
 
+	ret = pm_runtime_get_sync(this->dev);
+	if (ret < 0) {
+		pm_runtime_put_noidle(this->dev);
+		return ret;
+	}
+
 	ret = gpmi_reset_block(r->gpmi_regs, false);
 	if (ret)
 		goto err_out;
@@ -179,8 +185,9 @@
 	 */
 	writel(BM_GPMI_CTRL1_DECOUPLE_CS, r->gpmi_regs + HW_GPMI_CTRL1_SET);
 
-	return 0;
 err_out:
+	pm_runtime_mark_last_busy(this->dev);
+	pm_runtime_put_autosuspend(this->dev);
 	return ret;
 }
 
@@ -535,8 +542,10 @@
 		return ret;
 
 	ret = pm_runtime_get_sync(this->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(this->dev);
 		return ret;
+	}
 
 	/*
 	* Due to erratum #2847 of the MX23, the BCH cannot be soft reset on this
@@ -2399,7 +2408,7 @@
 	void *buf_read = NULL;
 	const void *buf_write = NULL;
 	bool direct = false;
-	struct completion *completion;
+	struct completion *dma_completion, *bch_completion;
 	unsigned long to;
 
 	this->ntransfers = 0;
@@ -2407,8 +2416,10 @@
 		this->transfers[i].direction = DMA_NONE;
 
 	ret = pm_runtime_get_sync(this->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(this->dev);
 		return ret;
+	}
 
 	/*
 	 * This driver currently supports only one NAND chip. Plus, dies share
@@ -2491,22 +2502,24 @@
 		       this->resources.bch_regs + HW_BCH_FLASH0LAYOUT1);
 	}
 
+	desc->callback = dma_irq_callback;
+	desc->callback_param = this;
+	dma_completion = &this->dma_done;
+	bch_completion = NULL;
+
+	init_completion(dma_completion);
+
 	if (this->bch && buf_read) {
 		writel(BM_BCH_CTRL_COMPLETE_IRQ_EN,
 		       this->resources.bch_regs + HW_BCH_CTRL_SET);
-		completion = &this->bch_done;
-	} else {
-		desc->callback = dma_irq_callback;
-		desc->callback_param = this;
-		completion = &this->dma_done;
+		bch_completion = &this->bch_done;
+		init_completion(bch_completion);
 	}
 
-	init_completion(completion);
-
 	dmaengine_submit(desc);
 	dma_async_issue_pending(get_dma_chan(this));
 
-	to = wait_for_completion_timeout(completion, msecs_to_jiffies(1000));
+	to = wait_for_completion_timeout(dma_completion, msecs_to_jiffies(1000));
 	if (!to) {
 		dev_err(this->dev, "DMA timeout, last DMA\n");
 		gpmi_dump_info(this);
@@ -2514,6 +2527,16 @@
 		goto unmap;
 	}
 
+	if (this->bch && buf_read) {
+		to = wait_for_completion_timeout(bch_completion, msecs_to_jiffies(1000));
+		if (!to) {
+			dev_err(this->dev, "BCH timeout, last DMA\n");
+			gpmi_dump_info(this);
+			ret = -ETIMEDOUT;
+			goto unmap;
+		}
+	}
+
 	writel(BM_BCH_CTRL_COMPLETE_IRQ_EN,
 	       this->resources.bch_regs + HW_BCH_CTRL_CLR);
 	gpmi_clear_bch(this);
@@ -2722,6 +2745,10 @@
 		return ret;
 	}
 
+	/* Set flag to get timing setup restored for next exec_op */
+	if (this->hw.clk_rate)
+		this->hw.must_apply_timings = true;
+
 	/* re-init the BCH registers */
 	ret = bch_set_geometry(this);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
@@ -376,7 +376,7 @@
 
 	ret = mtd_device_register(mtd, NULL, 0);
 	if (ret) {
-		nand_release(chip);
+		nand_cleanup(chip);
 		return ret;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/marvell_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/marvell_nand.c
@@ -707,7 +707,7 @@
 	 * In case the interrupt was not served in the required time frame,
 	 * check if the ISR was not served or if something went actually wrong.
 	 */
-	if (ret && !pending) {
+	if (!ret && !pending) {
 		dev_err(nfc->dev, "Timeout waiting for RB signal\n");
 		return -ETIMEDOUT;
 	}
@@ -2664,7 +2664,7 @@
 		ret = mtd_device_register(mtd, NULL, 0);
 	if (ret) {
 		dev_err(dev, "failed to register mtd device: %d\n", ret);
-		nand_release(chip);
+		nand_cleanup(chip);
 		return ret;
 	}
 
@@ -2673,6 +2673,16 @@
 	return 0;
 }
 
+static void marvell_nand_chips_cleanup(struct marvell_nfc *nfc)
+{
+	struct marvell_nand_chip *entry, *temp;
+
+	list_for_each_entry_safe(entry, temp, &nfc->chips, node) {
+		nand_release(&entry->chip);
+		list_del(&entry->node);
+	}
+}
+
 static int marvell_nand_chips_init(struct device *dev, struct marvell_nfc *nfc)
 {
 	struct device_node *np = dev->of_node;
@@ -2707,21 +2717,16 @@
 		ret = marvell_nand_chip_init(dev, nfc, nand_np);
 		if (ret) {
 			of_node_put(nand_np);
-			return ret;
+			goto cleanup_chips;
 		}
 	}
 
 	return 0;
-}
 
-static void marvell_nand_chips_cleanup(struct marvell_nfc *nfc)
-{
-	struct marvell_nand_chip *entry, *temp;
+cleanup_chips:
+	marvell_nand_chips_cleanup(nfc);
 
-	list_for_each_entry_safe(entry, temp, &nfc->chips, node) {
-		nand_release(&entry->chip);
-		list_del(&entry->node);
-	}
+	return ret;
 }
 
 static int marvell_nfc_init_dma(struct marvell_nfc *nfc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/meson_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/meson_nand.c
@@ -510,7 +510,7 @@
 }
 
 static void meson_nfc_dma_buffer_release(struct nand_chip *nand,
-					 int infolen, int datalen,
+					 int datalen, int infolen,
 					 enum dma_data_direction dir)
 {
 	struct meson_nfc *nfc = nand_get_controller_data(nand);
@@ -1041,9 +1041,12 @@
 
 	ret = clk_set_rate(nfc->device_clk, 24000000);
 	if (ret)
-		goto err_phase_rx;
+		goto err_disable_rx;
 
 	return 0;
+
+err_disable_rx:
+	clk_disable_unprepare(nfc->phase_rx);
 err_phase_rx:
 	clk_disable_unprepare(nfc->phase_tx);
 err_phase_tx:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/mtk_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/mtk_nand.c
@@ -1419,7 +1419,7 @@
 	ret = mtd_device_register(mtd, NULL, 0);
 	if (ret) {
 		dev_err(dev, "mtd parse partition error\n");
-		nand_release(nand);
+		nand_cleanup(nand);
 		return ret;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/nand_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/nand_base.c
@@ -292,12 +292,16 @@
 	struct mtd_info *mtd = nand_to_mtd(chip);
 	int last_page = ((mtd->erasesize - mtd->writesize) >>
 			 chip->page_shift) & chip->pagemask;
+	unsigned int bbm_flags = NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE
+		| NAND_BBM_LASTPAGE;
 
+	if (page == 0 && !(chip->options & bbm_flags))
+		return 0;
 	if (page == 0 && chip->options & NAND_BBM_FIRSTPAGE)
 		return 0;
-	else if (page <= 1 && chip->options & NAND_BBM_SECONDPAGE)
+	if (page <= 1 && chip->options & NAND_BBM_SECONDPAGE)
 		return 1;
-	else if (page <= last_page && chip->options & NAND_BBM_LASTPAGE)
+	if (page <= last_page && chip->options & NAND_BBM_LASTPAGE)
 		return last_page;
 
 	return -EINVAL;
@@ -727,8 +731,14 @@
 int nand_gpio_waitrdy(struct nand_chip *chip, struct gpio_desc *gpiod,
 		      unsigned long timeout_ms)
 {
-	/* Wait until R/B pin indicates chip is ready or timeout occurs */
-	timeout_ms = jiffies + msecs_to_jiffies(timeout_ms);
+
+	/*
+	 * Wait until R/B pin indicates chip is ready or timeout occurs.
+	 * +1 below is necessary because if we are now in the last fraction
+	 * of jiffy and msecs_to_jiffies is 1 then we will wait only that
+	 * small jiffy fraction - possibly leading to false timeout.
+	 */
+	timeout_ms = jiffies + msecs_to_jiffies(timeout_ms) + 1;
 	do {
 		if (gpiod_get_value_cansleep(gpiod))
 			return 0;
@@ -5903,6 +5913,8 @@
 	    chip->ecc.algo == NAND_ECC_BCH)
 		nand_bch_free((struct nand_bch_control *)chip->ecc.priv);
 
+	nanddev_cleanup(&chip->base);
+
 	/* Free bad block table memory */
 	kfree(chip->bbt);
 	kfree(chip->data_buf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/nand_micron.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/nand_micron.c
@@ -446,8 +446,10 @@
 	if (ret)
 		goto err_free_manuf_data;
 
+	chip->options |= NAND_BBM_FIRSTPAGE;
+
 	if (mtd->writesize == 2048)
-		chip->options |= NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE;
+		chip->options |= NAND_BBM_SECONDPAGE;
 
 	ondie = micron_supports_on_die_ecc(chip);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/nand_onfi.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/nand_onfi.c
@@ -173,7 +173,7 @@
 		}
 
 		if (onfi_crc16(ONFI_CRC_BASE, (u8 *)&p[i], 254) ==
-				le16_to_cpu(p->crc)) {
+		    le16_to_cpu(p[i].crc)) {
 			if (i)
 				memcpy(p, &p[i], sizeof(*p));
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/nand_timings.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/nand_timings.c
@@ -314,10 +314,9 @@
 		/* microseconds -> picoseconds */
 		timings->tPROG_max = 1000000ULL * ONFI_DYN_TIMING_MAX;
 		timings->tBERS_max = 1000000ULL * ONFI_DYN_TIMING_MAX;
-		timings->tR_max = 1000000ULL * 200000000ULL;
 
-		/* nanoseconds -> picoseconds */
-		timings->tCCS_min = 1000UL * 500000;
+		timings->tR_max = 200000000;
+		timings->tCCS_min = 500000;
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/omap_elm.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/omap_elm.c
@@ -411,6 +411,7 @@
 	pm_runtime_enable(&pdev->dev);
 	if (pm_runtime_get_sync(&pdev->dev) < 0) {
 		ret = -EINVAL;
+		pm_runtime_put_sync(&pdev->dev);
 		pm_runtime_disable(&pdev->dev);
 		dev_err(&pdev->dev, "can't enable clock\n");
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/orion_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/orion_nand.c
@@ -180,7 +180,7 @@
 	mtd->name = "orion_nand";
 	ret = mtd_device_register(mtd, board->parts, board->nr_parts);
 	if (ret) {
-		nand_release(nc);
+		nand_cleanup(nc);
 		goto no_dev;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/oxnas_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/oxnas_nand.c
@@ -32,6 +32,7 @@
 	void __iomem *io_base;
 	struct clk *clk;
 	struct nand_chip *chips[OXNAS_NAND_MAX_CHIPS];
+	unsigned int nchips;
 };
 
 static uint8_t oxnas_nand_read_byte(struct nand_chip *chip)
@@ -79,9 +80,9 @@
 	struct nand_chip *chip;
 	struct mtd_info *mtd;
 	struct resource *res;
-	int nchips = 0;
 	int count = 0;
 	int err = 0;
+	int i;
 
 	/* Allocate memory for the device structure (and zero it) */
 	oxnas = devm_kzalloc(&pdev->dev, sizeof(*oxnas),
@@ -140,17 +141,15 @@
 			goto err_release_child;
 
 		err = mtd_device_register(mtd, NULL, 0);
-		if (err) {
-			nand_release(chip);
-			goto err_release_child;
-		}
+		if (err)
+			goto err_cleanup_nand;
 
-		oxnas->chips[nchips] = chip;
-		++nchips;
+		oxnas->chips[oxnas->nchips] = chip;
+		++oxnas->nchips;
 	}
 
 	/* Exit if no chips found */
-	if (!nchips) {
+	if (!oxnas->nchips) {
 		err = -ENODEV;
 		goto err_clk_unprepare;
 	}
@@ -159,8 +158,17 @@
 
 	return 0;
 
+err_cleanup_nand:
+	nand_cleanup(chip);
 err_release_child:
 	of_node_put(nand_np);
+
+	for (i = 0; i < oxnas->nchips; i++) {
+		chip = oxnas->chips[i];
+		WARN_ON(mtd_device_unregister(nand_to_mtd(chip)));
+		nand_cleanup(chip);
+	}
+
 err_clk_unprepare:
 	clk_disable_unprepare(oxnas->clk);
 	return err;
@@ -169,9 +177,13 @@
 static int oxnas_nand_remove(struct platform_device *pdev)
 {
 	struct oxnas_nand_ctrl *oxnas = platform_get_drvdata(pdev);
+	struct nand_chip *chip;
+	int i;
 
-	if (oxnas->chips[0])
-		nand_release(oxnas->chips[0]);
+	for (i = 0; i < oxnas->nchips; i++) {
+		chip = oxnas->chips[i];
+		nand_release(chip);
+	}
 
 	clk_disable_unprepare(oxnas->clk);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/pasemi_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/pasemi_nand.c
@@ -146,7 +146,7 @@
 	if (mtd_device_register(pasemi_nand_mtd, NULL, 0)) {
 		dev_err(dev, "Unable to register MTD device\n");
 		err = -ENODEV;
-		goto out_lpc;
+		goto out_cleanup_nand;
 	}
 
 	dev_info(dev, "PA Semi NAND flash at %pR, control at I/O %x\n", &res,
@@ -154,6 +154,8 @@
 
 	return 0;
 
+ out_cleanup_nand:
+	nand_cleanup(chip);
  out_lpc:
 	release_region(lpcctl, 4);
  out_ior:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/plat_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/plat_nand.c
@@ -92,7 +92,7 @@
 	if (!err)
 		return err;
 
-	nand_release(&data->chip);
+	nand_cleanup(&data->chip);
 out:
 	if (pdata->ctrl.remove)
 		pdata->ctrl.remove(pdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/qcom_nandc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/qcom_nandc.c
@@ -459,11 +459,13 @@
  * among different NAND controllers.
  * @ecc_modes - ecc mode for NAND
  * @is_bam - whether NAND controller is using BAM
+ * @is_qpic - whether NAND CTRL is part of qpic IP
  * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset
  */
 struct qcom_nandc_props {
 	u32 ecc_modes;
 	bool is_bam;
+	bool is_qpic;
 	u32 dev_cmd_reg_start;
 };
 
@@ -1568,6 +1570,8 @@
 	struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
 	int i;
 
+	nandc_read_buffer_sync(nandc, true);
+
 	for (i = 0; i < cw_cnt; i++) {
 		u32 flash = le32_to_cpu(nandc->reg_read_buf[i]);
 
@@ -2751,7 +2755,8 @@
 	u32 nand_ctrl;
 
 	/* kill onenand */
-	nandc_write(nandc, SFLASHC_BURST_CFG, 0);
+	if (!nandc->props->is_qpic)
+		nandc_write(nandc, SFLASHC_BURST_CFG, 0);
 	nandc_write(nandc, dev_cmd_reg_addr(nandc, NAND_DEV_CMD_VLD),
 		    NAND_DEV_CMD_VLD_VAL);
 
@@ -3007,12 +3012,14 @@
 static const struct qcom_nandc_props ipq4019_nandc_props = {
 	.ecc_modes = (ECC_BCH_4BIT | ECC_BCH_8BIT),
 	.is_bam = true,
+	.is_qpic = true,
 	.dev_cmd_reg_start = 0x0,
 };
 
 static const struct qcom_nandc_props ipq8074_nandc_props = {
 	.ecc_modes = (ECC_BCH_4BIT | ECC_BCH_8BIT),
 	.is_bam = true,
+	.is_qpic = true,
 	.dev_cmd_reg_start = 0x7000,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/sharpsl.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/sharpsl.c
@@ -183,7 +183,7 @@
 	return 0;
 
 err_add:
-	nand_release(this);
+	nand_cleanup(this);
 
 err_scan:
 	iounmap(sharpsl->io);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/socrates_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/socrates_nand.c
@@ -169,7 +169,7 @@
 	if (!res)
 		return res;
 
-	nand_release(nand_chip);
+	nand_cleanup(nand_chip);
 
 out:
 	iounmap(host->io_base);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/stm32_fmc2_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/stm32_fmc2_nand.c
@@ -37,6 +37,7 @@
 /* Max ECC buffer length */
 #define FMC2_MAX_ECC_BUF_LEN		(FMC2_BCHDSRS_LEN * FMC2_MAX_SG)
 
+#define FMC2_TIMEOUT_US			1000
 #define FMC2_TIMEOUT_MS			1000
 
 /* Timings */
@@ -53,6 +54,8 @@
 #define FMC2_PMEM			0x88
 #define FMC2_PATT			0x8c
 #define FMC2_HECCR			0x94
+#define FMC2_ISR			0x184
+#define FMC2_ICR			0x188
 #define FMC2_CSQCR			0x200
 #define FMC2_CSQCFGR1			0x204
 #define FMC2_CSQCFGR2			0x208
@@ -118,6 +121,12 @@
 #define FMC2_PATT_ATTHIZ(x)		(((x) & 0xff) << 24)
 #define FMC2_PATT_DEFAULT		0x0a0a0a0a
 
+/* Register: FMC2_ISR */
+#define FMC2_ISR_IHLF			BIT(1)
+
+/* Register: FMC2_ICR */
+#define FMC2_ICR_CIHLF			BIT(1)
+
 /* Register: FMC2_CSQCR */
 #define FMC2_CSQCR_CSQSTART		BIT(0)
 
@@ -1322,6 +1331,31 @@
 		stm32_fmc2_set_buswidth_16(fmc2, true);
 }
 
+static int stm32_fmc2_waitrdy(struct nand_chip *chip, unsigned long timeout_ms)
+{
+	struct stm32_fmc2_nfc *fmc2 = to_stm32_nfc(chip->controller);
+	const struct nand_sdr_timings *timings;
+	u32 isr, sr;
+
+	/* Check if there is no pending requests to the NAND flash */
+	if (readl_relaxed_poll_timeout_atomic(fmc2->io_base + FMC2_SR, sr,
+					      sr & FMC2_SR_NWRF, 1,
+					      FMC2_TIMEOUT_US))
+		dev_warn(fmc2->dev, "Waitrdy timeout\n");
+
+	/* Wait tWB before R/B# signal is low */
+	timings = nand_get_sdr_timings(&chip->data_interface);
+	ndelay(PSEC_TO_NSEC(timings->tWB_max));
+
+	/* R/B# signal is low, clear high level flag */
+	writel_relaxed(FMC2_ICR_CIHLF, fmc2->io_base + FMC2_ICR);
+
+	/* Wait R/B# signal is high */
+	return readl_relaxed_poll_timeout_atomic(fmc2->io_base + FMC2_ISR,
+						 isr, isr & FMC2_ISR_IHLF,
+						 5, 1000 * timeout_ms);
+}
+
 static int stm32_fmc2_exec_op(struct nand_chip *chip,
 			      const struct nand_operation *op,
 			      bool check_only)
@@ -1366,8 +1400,8 @@
 			break;
 
 		case NAND_OP_WAITRDY_INSTR:
-			ret = nand_soft_waitrdy(chip,
-						instr->ctx.waitrdy.timeout_ms);
+			ret = stm32_fmc2_waitrdy(chip,
+						 instr->ctx.waitrdy.timeout_ms);
 			break;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/sunxi_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/sunxi_nand.c
@@ -2003,7 +2003,7 @@
 	ret = mtd_device_register(mtd, NULL, 0);
 	if (ret) {
 		dev_err(dev, "failed to register mtd device: %d\n", ret);
-		nand_release(nand);
+		nand_cleanup(nand);
 		return ret;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/tmio_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/tmio_nand.c
@@ -448,7 +448,7 @@
 	if (!retval)
 		return retval;
 
-	nand_release(nand_chip);
+	nand_cleanup(nand_chip);
 
 err_irq:
 	tmio_hw_stop(dev, tmio);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/vf610_nfc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/vf610_nfc.c
@@ -850,8 +850,10 @@
 	}
 
 	of_id = of_match_device(vf610_nfc_dt_ids, &pdev->dev);
-	if (!of_id)
-		return -ENODEV;
+	if (!of_id) {
+		err = -ENODEV;
+		goto err_disable_clk;
+	}
 
 	nfc->variant = (enum vf610_nfc_variant)of_id->data;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/raw/xway_nand.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/raw/xway_nand.c
@@ -210,7 +210,7 @@
 
 	err = mtd_device_register(mtd, NULL, 0);
 	if (err)
-		nand_release(&data->chip);
+		nand_cleanup(&data->chip);
 
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/spi/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/spi/core.c
@@ -568,18 +568,18 @@
 static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
 {
 	struct spinand_device *spinand = nand_to_spinand(nand);
+	u8 marker[2] = { };
 	struct nand_page_io_req req = {
 		.pos = *pos,
-		.ooblen = 2,
+		.ooblen = sizeof(marker),
 		.ooboffs = 0,
-		.oobbuf.in = spinand->oobbuf,
+		.oobbuf.in = marker,
 		.mode = MTD_OPS_RAW,
 	};
 
-	memset(spinand->oobbuf, 0, 2);
 	spinand_select_target(spinand, pos->target);
 	spinand_read_page(spinand, &req, false);
-	if (spinand->oobbuf[0] != 0xff || spinand->oobbuf[1] != 0xff)
+	if (marker[0] != 0xff || marker[1] != 0xff)
 		return true;
 
 	return false;
@@ -603,15 +603,16 @@
 static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos)
 {
 	struct spinand_device *spinand = nand_to_spinand(nand);
+	u8 marker[2] = { };
 	struct nand_page_io_req req = {
 		.pos = *pos,
 		.ooboffs = 0,
-		.ooblen = 2,
-		.oobbuf.out = spinand->oobbuf,
+		.ooblen = sizeof(marker),
+		.oobbuf.out = marker,
+		.mode = MTD_OPS_RAW,
 	};
 	int ret;
 
-	/* Erase block before marking it bad. */
 	ret = spinand_select_target(spinand, pos->target);
 	if (ret)
 		return ret;
@@ -620,9 +621,6 @@
 	if (ret)
 		return ret;
 
-	spinand_erase_op(spinand, pos);
-
-	memset(spinand->oobbuf, 0, 2);
 	return spinand_write_page(spinand, &req);
 }
 
@@ -1051,6 +1049,10 @@
 
 	mtd->oobavail = ret;
 
+	/* Propagate ECC information to mtd_info */
+	mtd->ecc_strength = nand->eccreq.strength;
+	mtd->ecc_step_size = nand->eccreq.step_size;
+
 	return 0;
 
 err_cleanup_nanddev:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/nand/spi/gigadevice.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/nand/spi/gigadevice.c
@@ -21,7 +21,7 @@
 #define GD5FXGQ4UXFXXG_STATUS_ECC_UNCOR_ERROR	(7 << 4)
 
 static SPINAND_OP_VARIANTS(read_cache_variants,
-		SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
+		SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 1, NULL, 0),
 		SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
 		SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
 		SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
@@ -29,7 +29,7 @@
 		SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(read_cache_variants_f,
-		SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
+		SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 1, NULL, 0),
 		SPINAND_PAGE_READ_FROM_CACHE_X4_OP_3A(0, 1, NULL, 0),
 		SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
 		SPINAND_PAGE_READ_FROM_CACHE_X2_OP_3A(0, 1, NULL, 0),
@@ -201,7 +201,7 @@
 		     SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
 					      &write_cache_variants,
 					      &update_cache_variants),
-		     0,
+		     SPINAND_HAS_QE_BIT,
 		     SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
 				     gd5fxgq4xa_ecc_get_status)),
 	SPINAND_INFO("GD5F2GQ4xA", 0xF2,
@@ -210,7 +210,7 @@
 		     SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
 					      &write_cache_variants,
 					      &update_cache_variants),
-		     0,
+		     SPINAND_HAS_QE_BIT,
 		     SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
 				     gd5fxgq4xa_ecc_get_status)),
 	SPINAND_INFO("GD5F4GQ4xA", 0xF4,
@@ -219,7 +219,7 @@
 		     SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
 					      &write_cache_variants,
 					      &update_cache_variants),
-		     0,
+		     SPINAND_HAS_QE_BIT,
 		     SPINAND_ECCINFO(&gd5fxgq4xa_ooblayout,
 				     gd5fxgq4xa_ecc_get_status)),
 	SPINAND_INFO("GD5F1GQ4UExxG", 0xd1,
@@ -228,7 +228,7 @@
 		     SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
 					      &write_cache_variants,
 					      &update_cache_variants),
-		     0,
+		     SPINAND_HAS_QE_BIT,
 		     SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout,
 				     gd5fxgq4uexxg_ecc_get_status)),
 	SPINAND_INFO("GD5F1GQ4UFxxG", 0xb148,
@@ -237,7 +237,7 @@
 		     SPINAND_INFO_OP_VARIANTS(&read_cache_variants_f,
 					      &write_cache_variants,
 					      &update_cache_variants),
-		     0,
+		     SPINAND_HAS_QE_BIT,
 		     SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout,
 				     gd5fxgq4ufxxg_ecc_get_status)),
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/parsers/afs.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/parsers/afs.c
@@ -370,10 +370,8 @@
 	return i;
 
 out_free_parts:
-	while (i >= 0) {
+	while (--i >= 0)
 		kfree(parts[i].name);
-		i--;
-	}
 	kfree(parts);
 	*pparts = NULL;
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/parsers/cmdlinepart.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/parsers/cmdlinepart.c
@@ -218,12 +218,41 @@
 		struct cmdline_mtd_partition *this_mtd;
 		struct mtd_partition *parts;
 		int mtd_id_len, num_parts;
-		char *p, *mtd_id;
+		char *p, *mtd_id, *semicol, *open_parenth;
+
+		/*
+		 * Replace the first ';' by a NULL char so strrchr can work
+		 * properly.
+		 */
+		semicol = strchr(s, ';');
+		if (semicol)
+			*semicol = '\0';
+
+		/*
+		 * make sure that part-names with ":" will not be handled as
+		 * part of the mtd-id with an ":"
+		 */
+		open_parenth = strchr(s, '(');
+		if (open_parenth)
+			*open_parenth = '\0';
 
 		mtd_id = s;
 
-		/* fetch <mtd-id> */
-		p = strchr(s, ':');
+		/*
+		 * fetch <mtd-id>. We use strrchr to ignore all ':' that could
+		 * be present in the MTD name, only the last one is interpreted
+		 * as an <mtd-id>/<part-definition> separator.
+		 */
+		p = strrchr(s, ':');
+
+		/* Restore the '(' now. */
+		if (open_parenth)
+			*open_parenth = '(';
+
+		/* Restore the ';' now. */
+		if (semicol)
+			*semicol = ';';
+
 		if (!p) {
 			pr_err("no mtd-id\n");
 			return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/parsers/parser_imagetag.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/parsers/parser_imagetag.c
@@ -83,6 +83,7 @@
 			pr_err("invalid rootfs address: %*ph\n",
 				(int)sizeof(buf->flash_image_start),
 				buf->flash_image_start);
+			ret = -EINVAL;
 			goto out;
 		}
 
@@ -92,6 +93,7 @@
 			pr_err("invalid kernel address: %*ph\n",
 				(int)sizeof(buf->kernel_address),
 				buf->kernel_address);
+			ret = -EINVAL;
 			goto out;
 		}
 
@@ -100,6 +102,7 @@
 			pr_err("invalid kernel length: %*ph\n",
 				(int)sizeof(buf->kernel_length),
 				buf->kernel_length);
+			ret = -EINVAL;
 			goto out;
 		}
 
@@ -108,6 +111,7 @@
 			pr_err("invalid total length: %*ph\n",
 				(int)sizeof(buf->total_length),
 				buf->total_length);
+			ret = -EINVAL;
 			goto out;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/parsers/sharpslpart.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/parsers/sharpslpart.c
@@ -165,10 +165,10 @@
 
 static int sharpsl_nand_init_ftl(struct mtd_info *mtd, struct sharpsl_ftl *ftl)
 {
-	unsigned int block_num, log_num, phymax;
+	unsigned int block_num, phymax;
+	int i, ret, log_num;
 	loff_t block_adr;
 	u8 *oob;
-	int i, ret;
 
 	oob = kzalloc(mtd->oobsize, GFP_KERNEL);
 	if (!oob)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/spi-nor/cadence-quadspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/spi-nor/cadence-quadspi.c
@@ -475,7 +475,7 @@
 	/* Setup dummy clock cycles */
 	dummy_clk = nor->read_dummy;
 	if (dummy_clk > CQSPI_DUMMY_CLKS_MAX)
-		dummy_clk = CQSPI_DUMMY_CLKS_MAX;
+		return -EOPNOTSUPP;
 
 	if (dummy_clk / 8) {
 		reg |= (1 << CQSPI_REG_RD_INSTR_MODE_EN_LSB);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/spi-nor/hisi-sfc.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/spi-nor/hisi-sfc.c
@@ -396,8 +396,10 @@
 
 	for_each_available_child_of_node(dev->of_node, np) {
 		ret = hisi_spi_nor_register(np, host);
-		if (ret)
+		if (ret) {
+			of_node_put(np);
 			goto fail;
+		}
 
 		if (host->num_chip == HIFMC_MAX_CHIP_NUM) {
 			dev_warn(dev, "Flash device number exceeds the maximum chipselect number\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/spi-nor/intel-spi-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/spi-nor/intel-spi-pci.c
@@ -61,6 +61,7 @@
 
 static const struct pci_device_id intel_spi_pci_ids[] = {
 	{ PCI_VDEVICE(INTEL, 0x02a4), (unsigned long)&bxt_info },
+	{ PCI_VDEVICE(INTEL, 0x06a4), (unsigned long)&bxt_info },
 	{ PCI_VDEVICE(INTEL, 0x18e0), (unsigned long)&bxt_info },
 	{ PCI_VDEVICE(INTEL, 0x19e0), (unsigned long)&bxt_info },
 	{ PCI_VDEVICE(INTEL, 0x34a4), (unsigned long)&bxt_info },
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/spi-nor/spi-nor.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/spi-nor/spi-nor.c
@@ -1011,14 +1011,15 @@
 
 		erase = &map->erase_type[i];
 
+		/* Alignment is not mandatory for overlaid regions */
+		if (region->offset & SNOR_OVERLAID_REGION &&
+		    region->size <= len)
+			return erase;
+
 		/* Don't erase more than what the user has asked for. */
 		if (erase->size > len)
 			continue;
 
-		/* Alignment is not mandatory for overlaid regions */
-		if (region->offset & SNOR_OVERLAID_REGION)
-			return erase;
-
 		spi_nor_div_by_erase_size(erase, addr, &rem);
 		if (rem)
 			continue;
@@ -1152,6 +1153,7 @@
 			goto destroy_erase_cmd_list;
 
 		if (prev_erase != erase ||
+		    erase->size != cmd->size ||
 		    region->offset & SNOR_OVERLAID_REGION) {
 			cmd = spi_nor_init_erase_cmd(region, erase);
 			if (IS_ERR(cmd)) {
@@ -2267,6 +2269,10 @@
 			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ "is25wp128",  INFO(0x9d7018, 0, 64 * 1024, 256,
 			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+	{ "is25wp256", INFO(0x9d7019, 0, 64 * 1024, 512,
+			    SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
+			    SPI_NOR_4B_OPCODES)
+		       .fixups = &is25lp256_fixups },
 
 	/* Macronix */
 	{ "mx25l512e",   INFO(0xc22010, 0, 64 * 1024,   1, SECT_4K) },
@@ -2310,15 +2316,16 @@
 	{ "n25q256a",    INFO(0x20ba19, 0, 64 * 1024,  512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ "n25q256ax1",  INFO(0x20bb19, 0, 64 * 1024,  512, SECT_4K | SPI_NOR_QUAD_READ) },
 	{ "n25q512ax3",  INFO(0x20ba20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
+	{ "mt25qu512a",  INFO6(0x20bb20, 0x104400, 64 * 1024, 1024,
+			       SECT_4K | USE_FSR | SPI_NOR_DUAL_READ |
+			       SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
+	{ "n25q512a",    INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K |
+			      SPI_NOR_QUAD_READ) },
 	{ "n25q00",      INFO(0x20ba21, 0, 64 * 1024, 2048, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) },
 	{ "n25q00a",     INFO(0x20bb21, 0, 64 * 1024, 2048, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) },
 	{ "mt25ql02g",   INFO(0x20ba22, 0, 64 * 1024, 4096,
 			      SECT_4K | USE_FSR | SPI_NOR_QUAD_READ |
 			      NO_CHIP_ERASE) },
-	{ "mt25qu512a (n25q512a)", INFO(0x20bb20, 0, 64 * 1024, 1024,
-					SECT_4K | USE_FSR | SPI_NOR_DUAL_READ |
-					SPI_NOR_QUAD_READ |
-					SPI_NOR_4B_OPCODES) },
 	{ "mt25qu02g",   INFO(0x20bb22, 0, 64 * 1024, 4096, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) },
 
 	/* Micron */
@@ -2544,7 +2551,7 @@
 			size_t *retlen, u_char *buf)
 {
 	struct spi_nor *nor = mtd_to_spi_nor(mtd);
-	int ret;
+	ssize_t ret;
 
 	dev_dbg(nor->dev, "from 0x%08x, len %zd\n", (u32)from, len);
 
@@ -2865,7 +2872,7 @@
  */
 static int spi_nor_read_raw(struct spi_nor *nor, u32 addr, size_t len, u8 *buf)
 {
-	int ret;
+	ssize_t ret;
 
 	while (len) {
 		ret = spi_nor_read_data(nor, addr, len, buf);
@@ -3699,7 +3706,7 @@
 	int i;
 
 	for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) {
-		if (!(erase_type & BIT(i)))
+		if (!(erase[i].size && erase_type & BIT(erase[i].idx)))
 			continue;
 		if (region->size & erase[i].size_mask) {
 			spi_nor_region_mark_overlay(region);
@@ -3769,6 +3776,7 @@
 		offset = (region[i].offset & ~SNOR_ERASE_FLAGS_MASK) +
 			 region[i].size;
 	}
+	spi_nor_region_mark_end(&region[i - 1]);
 
 	save_uniform_erase_type = map->uniform_erase_type;
 	map->uniform_erase_type = spi_nor_sort_erase_mask(map,
@@ -3792,8 +3800,6 @@
 		if (!(regions_erase_type & BIT(erase[i].idx)))
 			spi_nor_set_erase_type(&erase[i], 0, 0xFF);
 
-	spi_nor_region_mark_end(&region[i - 1]);
-
 	return 0;
 }
 
@@ -4443,11 +4449,10 @@
 
 	memcpy(&sfdp_params, &nor->params, sizeof(sfdp_params));
 
-	if (spi_nor_parse_sfdp(nor, &sfdp_params)) {
+	if (spi_nor_parse_sfdp(nor, &nor->params)) {
+		memcpy(&nor->params, &sfdp_params, sizeof(nor->params));
 		nor->addr_width = 0;
 		nor->flags &= ~SNOR_F_4B_OPCODES;
-	} else {
-		memcpy(&nor->params, &sfdp_params, sizeof(nor->params));
 	}
 }
 
@@ -4544,9 +4549,7 @@
 
 static void spansion_post_sfdp_fixups(struct spi_nor *nor)
 {
-	struct mtd_info *mtd = &nor->mtd;
-
-	if (mtd->size <= SZ_16M)
+	if (nor->params.size <= SZ_16M)
 		return;
 
 	nor->flags |= SNOR_F_4B_OPCODES;
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/ubi/debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/ubi/debug.c
@@ -392,9 +392,6 @@
 {
 	struct ubi_device *ubi = s->private;
 
-	if (*pos == 0)
-		return SEQ_START_TOKEN;
-
 	if (*pos < ubi->peb_count)
 		return pos;
 
@@ -408,8 +405,6 @@
 {
 	struct ubi_device *ubi = s->private;
 
-	if (v == SEQ_START_TOKEN)
-		return pos;
 	(*pos)++;
 
 	if (*pos < ubi->peb_count)
@@ -431,11 +426,8 @@
 	int err;
 
 	/* If this is the start, print a header */
-	if (iter == SEQ_START_TOKEN) {
-		seq_puts(s,
-			 "physical_block_number\terase_count\tblock_status\tread_status\n");
-		return 0;
-	}
+	if (*block_number == 0)
+		seq_puts(s, "physical_block_number\terase_count\n");
 
 	err = ubi_io_is_bad(ubi, *block_number);
 	if (err)
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/ubi/fastmap-wl.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/ubi/fastmap-wl.c
@@ -39,6 +39,13 @@
 	return victim;
 }
 
+static inline void return_unused_peb(struct ubi_device *ubi,
+				     struct ubi_wl_entry *e)
+{
+	wl_tree_add(e, &ubi->free);
+	ubi->free_count++;
+}
+
 /**
  * return_unused_pool_pebs - returns unused PEB to the free tree.
  * @ubi: UBI device description object
@@ -52,23 +59,10 @@
 
 	for (i = pool->used; i < pool->size; i++) {
 		e = ubi->lookuptbl[pool->pebs[i]];
-		wl_tree_add(e, &ubi->free);
-		ubi->free_count++;
+		return_unused_peb(ubi, e);
 	}
 }
 
-static int anchor_pebs_available(struct rb_root *root)
-{
-	struct rb_node *p;
-	struct ubi_wl_entry *e;
-
-	ubi_rb_for_each_entry(p, e, root, u.rb)
-		if (e->pnum < UBI_FM_MAX_START)
-			return 1;
-
-	return 0;
-}
-
 /**
  * ubi_wl_get_fm_peb - find a physical erase block with a given maximal number.
  * @ubi: UBI device description object
@@ -277,8 +271,26 @@
 int ubi_ensure_anchor_pebs(struct ubi_device *ubi)
 {
 	struct ubi_work *wrk;
+	struct ubi_wl_entry *anchor;
 
 	spin_lock(&ubi->wl_lock);
+
+	/* Do we already have an anchor? */
+	if (ubi->fm_anchor) {
+		spin_unlock(&ubi->wl_lock);
+		return 0;
+	}
+
+	/* See if we can find an anchor PEB on the list of free PEBs */
+	anchor = ubi_wl_get_fm_peb(ubi, 1);
+	if (anchor) {
+		ubi->fm_anchor = anchor;
+		spin_unlock(&ubi->wl_lock);
+		return 0;
+	}
+
+	/* No luck, trigger wear leveling to produce a new anchor PEB */
+	ubi->fm_do_produce_anchor = 1;
 	if (ubi->wl_scheduled) {
 		spin_unlock(&ubi->wl_lock);
 		return 0;
@@ -294,7 +306,6 @@
 		return -ENOMEM;
 	}
 
-	wrk->anchor = 1;
 	wrk->func = &wear_leveling_worker;
 	__schedule_ubi_work(ubi, wrk);
 	return 0;
@@ -356,6 +367,11 @@
 	return_unused_pool_pebs(ubi, &ubi->fm_pool);
 	return_unused_pool_pebs(ubi, &ubi->fm_wl_pool);
 
+	if (ubi->fm_anchor) {
+		return_unused_peb(ubi, ubi->fm_anchor);
+		ubi->fm_anchor = NULL;
+	}
+
 	if (ubi->fm) {
 		for (i = 0; i < ubi->fm->used_blocks; i++)
 			kfree(ubi->fm->e[i]);
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/ubi/fastmap.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/ubi/fastmap.c
@@ -64,7 +64,7 @@
 		return 0;
 
 	for (pnum = 0; pnum < ubi->peb_count; pnum++) {
-		if (test_bit(pnum, seen) && ubi->lookuptbl[pnum]) {
+		if (!test_bit(pnum, seen) && ubi->lookuptbl[pnum]) {
 			ubi_err(ubi, "self-check failed for PEB %d, fastmap didn't see it", pnum);
 			ret = -EINVAL;
 		}
@@ -1137,7 +1137,7 @@
 	struct rb_node *tmp_rb;
 	int ret, i, j, free_peb_count, used_peb_count, vol_count;
 	int scrub_peb_count, erase_peb_count;
-	unsigned long *seen_pebs = NULL;
+	unsigned long *seen_pebs;
 
 	fm_raw = ubi->fm_buf;
 	memset(ubi->fm_buf, 0, ubi->fm_size);
@@ -1151,7 +1151,7 @@
 	dvbuf = new_fm_vbuf(ubi, UBI_FM_DATA_VOLUME_ID);
 	if (!dvbuf) {
 		ret = -ENOMEM;
-		goto out_kfree;
+		goto out_free_avbuf;
 	}
 
 	avhdr = ubi_get_vid_hdr(avbuf);
@@ -1160,7 +1160,7 @@
 	seen_pebs = init_seen(ubi);
 	if (IS_ERR(seen_pebs)) {
 		ret = PTR_ERR(seen_pebs);
-		goto out_kfree;
+		goto out_free_dvbuf;
 	}
 
 	spin_lock(&ubi->volumes_lock);
@@ -1328,7 +1328,7 @@
 	ret = ubi_io_write_vid_hdr(ubi, new_fm->e[0]->pnum, avbuf);
 	if (ret) {
 		ubi_err(ubi, "unable to write vid_hdr to fastmap SB!");
-		goto out_kfree;
+		goto out_free_seen;
 	}
 
 	for (i = 0; i < new_fm->used_blocks; i++) {
@@ -1350,7 +1350,7 @@
 		if (ret) {
 			ubi_err(ubi, "unable to write vid_hdr to PEB %i!",
 				new_fm->e[i]->pnum);
-			goto out_kfree;
+			goto out_free_seen;
 		}
 	}
 
@@ -1360,7 +1360,7 @@
 		if (ret) {
 			ubi_err(ubi, "unable to write fastmap to PEB %i!",
 				new_fm->e[i]->pnum);
-			goto out_kfree;
+			goto out_free_seen;
 		}
 	}
 
@@ -1370,10 +1370,13 @@
 	ret = self_check_seen(ubi, seen_pebs);
 	dbg_bld("fastmap written!");
 
-out_kfree:
-	ubi_free_vid_buf(avbuf);
-	ubi_free_vid_buf(dvbuf);
+out_free_seen:
 	free_seen(seen_pebs);
+out_free_dvbuf:
+	ubi_free_vid_buf(dvbuf);
+out_free_avbuf:
+	ubi_free_vid_buf(avbuf);
+
 out:
 	return ret;
 }
@@ -1540,14 +1543,6 @@
 		return 0;
 	}
 
-	ret = ubi_ensure_anchor_pebs(ubi);
-	if (ret) {
-		up_write(&ubi->fm_eba_sem);
-		up_write(&ubi->work_sem);
-		up_write(&ubi->fm_protect);
-		return ret;
-	}
-
 	new_fm = kzalloc(sizeof(*new_fm), GFP_KERNEL);
 	if (!new_fm) {
 		up_write(&ubi->fm_eba_sem);
@@ -1618,7 +1613,8 @@
 	}
 
 	spin_lock(&ubi->wl_lock);
-	tmp_e = ubi_wl_get_fm_peb(ubi, 1);
+	tmp_e = ubi->fm_anchor;
+	ubi->fm_anchor = NULL;
 	spin_unlock(&ubi->wl_lock);
 
 	if (old_fm) {
@@ -1670,6 +1666,9 @@
 	up_write(&ubi->work_sem);
 	up_write(&ubi->fm_protect);
 	kfree(old_fm);
+
+	ubi_ensure_anchor_pebs(ubi);
+
 	return ret;
 
 err:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/ubi/ubi.h
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/ubi/ubi.h
@@ -491,6 +491,8 @@
  * @fm_work: fastmap work queue
  * @fm_work_scheduled: non-zero if fastmap work was scheduled
  * @fast_attach: non-zero if UBI was attached by fastmap
+ * @fm_anchor: The next anchor PEB to use for fastmap
+ * @fm_do_produce_anchor: If true produce an anchor PEB in wl
  *
  * @used: RB-tree of used physical eraseblocks
  * @erroneous: RB-tree of erroneous used physical eraseblocks
@@ -599,6 +601,8 @@
 	struct work_struct fm_work;
 	int fm_work_scheduled;
 	int fast_attach;
+	struct ubi_wl_entry *fm_anchor;
+	int fm_do_produce_anchor;
 
 	/* Wear-leveling sub-system's stuff */
 	struct rb_root used;
@@ -789,7 +793,6 @@
  * @vol_id: the volume ID on which this erasure is being performed
  * @lnum: the logical eraseblock number
  * @torture: if the physical eraseblock has to be tortured
- * @anchor: produce a anchor PEB to by used by fastmap
  *
  * The @func pointer points to the worker function. If the @shutdown argument is
  * not zero, the worker has to free the resources and exit immediately as the
@@ -805,7 +808,6 @@
 	int vol_id;
 	int lnum;
 	int torture;
-	int anchor;
 };
 
 #include "debug.h"
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/ubi/wl.c
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/ubi/wl.c
@@ -339,13 +339,6 @@
 		}
 	}
 
-	/* If no fastmap has been written and this WL entry can be used
-	 * as anchor PEB, hold it back and return the second best WL entry
-	 * such that fastmap can use the anchor PEB later. */
-	if (prev_e && !ubi->fm_disabled &&
-	    !ubi->fm && e->pnum < UBI_FM_MAX_START)
-		return prev_e;
-
 	return e;
 }
 
@@ -656,9 +649,6 @@
 {
 	int err, scrubbing = 0, torture = 0, protect = 0, erroneous = 0;
 	int erase = 0, keep = 0, vol_id = -1, lnum = -1;
-#ifdef CONFIG_MTD_UBI_FASTMAP
-	int anchor = wrk->anchor;
-#endif
 	struct ubi_wl_entry *e1, *e2;
 	struct ubi_vid_io_buf *vidb;
 	struct ubi_vid_hdr *vid_hdr;
@@ -698,11 +688,7 @@
 	}
 
 #ifdef CONFIG_MTD_UBI_FASTMAP
-	/* Check whether we need to produce an anchor PEB */
-	if (!anchor)
-		anchor = !anchor_pebs_available(&ubi->free);
-
-	if (anchor) {
+	if (ubi->fm_do_produce_anchor) {
 		e1 = find_anchor_wl_entry(&ubi->used);
 		if (!e1)
 			goto out_cancel;
@@ -719,6 +705,7 @@
 		self_check_in_wl_tree(ubi, e1, &ubi->used);
 		rb_erase(&e1->u.rb, &ubi->used);
 		dbg_wl("anchor-move PEB %d to PEB %d", e1->pnum, e2->pnum);
+		ubi->fm_do_produce_anchor = 0;
 	} else if (!ubi->scrub.rb_node) {
 #else
 	if (!ubi->scrub.rb_node) {
@@ -1051,7 +1038,6 @@
 		goto out_cancel;
 	}
 
-	wrk->anchor = 0;
 	wrk->func = &wear_leveling_worker;
 	if (nested)
 		__schedule_ubi_work(ubi, wrk);
@@ -1093,8 +1079,15 @@
 	err = sync_erase(ubi, e, wl_wrk->torture);
 	if (!err) {
 		spin_lock(&ubi->wl_lock);
-		wl_tree_add(e, &ubi->free);
-		ubi->free_count++;
+
+		if (!ubi->fm_anchor && e->pnum < UBI_FM_MAX_START) {
+			ubi->fm_anchor = e;
+			ubi->fm_do_produce_anchor = 0;
+		} else {
+			wl_tree_add(e, &ubi->free);
+			ubi->free_count++;
+		}
+
 		spin_unlock(&ubi->wl_lock);
 
 		/*
@@ -1636,6 +1629,19 @@
 		    !ubi->thread_enabled || ubi_dbg_is_bgt_disabled(ubi)) {
 			set_current_state(TASK_INTERRUPTIBLE);
 			spin_unlock(&ubi->wl_lock);
+
+			/*
+			 * Check kthread_should_stop() after we set the task
+			 * state to guarantee that we either see the stop bit
+			 * and exit or the task state is reset to runnable such
+			 * that it's not scheduled out indefinitely and detects
+			 * the stop bit at kthread_should_stop().
+			 */
+			if (kthread_should_stop()) {
+				set_current_state(TASK_RUNNING);
+				break;
+			}
+
 			schedule();
 			continue;
 		}
@@ -1882,6 +1888,9 @@
 	if (err)
 		goto out_free;
 
+#ifdef CONFIG_MTD_UBI_FASTMAP
+	ubi_ensure_anchor_pebs(ubi);
+#endif
 	return 0;
 
 out_free:
--- linux-gkeop-5.4-5.4.0.orig/drivers/mtd/ubi/wl.h
+++ linux-gkeop-5.4-5.4.0/drivers/mtd/ubi/wl.h
@@ -2,7 +2,6 @@
 #ifndef UBI_WL_H
 #define UBI_WL_H
 #ifdef CONFIG_MTD_UBI_FASTMAP
-static int anchor_pebs_available(struct rb_root *root);
 static void update_fastmap_work_fn(struct work_struct *wrk);
 static struct ubi_wl_entry *find_anchor_wl_entry(struct rb_root *root);
 static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/Kconfig
@@ -106,6 +106,7 @@
 config IFB
 	tristate "Intermediate Functional Block support"
 	depends on NET_CLS_ACT
+	select NET_REDIRECT
 	---help---
 	  This is an intermediate driver that allows sharing of
 	  resources.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/bonding/bond_alb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/bonding/bond_alb.c
@@ -50,11 +50,6 @@
 };
 #pragma pack()
 
-static inline struct arp_pkt *arp_pkt(const struct sk_buff *skb)
-{
-	return (struct arp_pkt *)skb_network_header(skb);
-}
-
 /* Forward declaration */
 static void alb_send_learning_packets(struct slave *slave, u8 mac_addr[],
 				      bool strict_match);
@@ -553,10 +548,11 @@
 	spin_unlock(&bond->mode_lock);
 }
 
-static struct slave *rlb_choose_channel(struct sk_buff *skb, struct bonding *bond)
+static struct slave *rlb_choose_channel(struct sk_buff *skb,
+					struct bonding *bond,
+					const struct arp_pkt *arp)
 {
 	struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond));
-	struct arp_pkt *arp = arp_pkt(skb);
 	struct slave *assigned_slave, *curr_active_slave;
 	struct rlb_client_info *client_info;
 	u32 hash_index = 0;
@@ -653,8 +649,12 @@
  */
 static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond)
 {
-	struct arp_pkt *arp = arp_pkt(skb);
 	struct slave *tx_slave = NULL;
+	struct arp_pkt *arp;
+
+	if (!pskb_network_may_pull(skb, sizeof(*arp)))
+		return NULL;
+	arp = (struct arp_pkt *)skb_network_header(skb);
 
 	/* Don't modify or load balance ARPs that do not originate locally
 	 * (e.g.,arrive via a bridge).
@@ -664,7 +664,7 @@
 
 	if (arp->op_code == htons(ARPOP_REPLY)) {
 		/* the arp must be sent on the selected rx channel */
-		tx_slave = rlb_choose_channel(skb, bond);
+		tx_slave = rlb_choose_channel(skb, bond, arp);
 		if (tx_slave)
 			bond_hw_addr_copy(arp->mac_src, tx_slave->dev->dev_addr,
 					  tx_slave->dev->addr_len);
@@ -676,7 +676,7 @@
 		 * When the arp reply is received the entry will be updated
 		 * with the correct unicast address of the client.
 		 */
-		tx_slave = rlb_choose_channel(skb, bond);
+		tx_slave = rlb_choose_channel(skb, bond, arp);
 
 		/* The ARP reply packets must be delayed so that
 		 * they can cancel out the influence of the ARP request.
@@ -1383,26 +1383,31 @@
 	bool do_tx_balance = true;
 	u32 hash_index = 0;
 	const u8 *hash_start = NULL;
-	struct ipv6hdr *ip6hdr;
 
 	skb_reset_mac_header(skb);
 	eth_data = eth_hdr(skb);
 
 	switch (ntohs(skb->protocol)) {
 	case ETH_P_IP: {
-		const struct iphdr *iph = ip_hdr(skb);
+		const struct iphdr *iph;
 
 		if (is_broadcast_ether_addr(eth_data->h_dest) ||
-		    iph->daddr == ip_bcast ||
-		    iph->protocol == IPPROTO_IGMP) {
+		    !pskb_network_may_pull(skb, sizeof(*iph))) {
+			do_tx_balance = false;
+			break;
+		}
+		iph = ip_hdr(skb);
+		if (iph->daddr == ip_bcast || iph->protocol == IPPROTO_IGMP) {
 			do_tx_balance = false;
 			break;
 		}
 		hash_start = (char *)&(iph->daddr);
 		hash_size = sizeof(iph->daddr);
-	}
 		break;
-	case ETH_P_IPV6:
+	}
+	case ETH_P_IPV6: {
+		const struct ipv6hdr *ip6hdr;
+
 		/* IPv6 doesn't really use broadcast mac address, but leave
 		 * that here just in case.
 		 */
@@ -1419,7 +1424,11 @@
 			break;
 		}
 
-		/* Additianally, DAD probes should not be tx-balanced as that
+		if (!pskb_network_may_pull(skb, sizeof(*ip6hdr))) {
+			do_tx_balance = false;
+			break;
+		}
+		/* Additionally, DAD probes should not be tx-balanced as that
 		 * will lead to false positives for duplicate addresses and
 		 * prevent address configuration from working.
 		 */
@@ -1429,17 +1438,26 @@
 			break;
 		}
 
-		hash_start = (char *)&(ipv6_hdr(skb)->daddr);
-		hash_size = sizeof(ipv6_hdr(skb)->daddr);
+		hash_start = (char *)&ip6hdr->daddr;
+		hash_size = sizeof(ip6hdr->daddr);
 		break;
-	case ETH_P_IPX:
-		if (ipx_hdr(skb)->ipx_checksum != IPX_NO_CHECKSUM) {
+	}
+	case ETH_P_IPX: {
+		const struct ipxhdr *ipxhdr;
+
+		if (pskb_network_may_pull(skb, sizeof(*ipxhdr))) {
+			do_tx_balance = false;
+			break;
+		}
+		ipxhdr = (struct ipxhdr *)skb_network_header(skb);
+
+		if (ipxhdr->ipx_checksum != IPX_NO_CHECKSUM) {
 			/* something is wrong with this packet */
 			do_tx_balance = false;
 			break;
 		}
 
-		if (ipx_hdr(skb)->ipx_type != IPX_TYPE_NCP) {
+		if (ipxhdr->ipx_type != IPX_TYPE_NCP) {
 			/* The only protocol worth balancing in
 			 * this family since it has an "ARP" like
 			 * mechanism
@@ -1448,9 +1466,11 @@
 			break;
 		}
 
+		eth_data = eth_hdr(skb);
 		hash_start = (char *)eth_data->h_dest;
 		hash_size = ETH_ALEN;
 		break;
+	}
 	case ETH_P_ARP:
 		do_tx_balance = false;
 		if (bond_info->rlb_enabled)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/bonding/bond_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/bonding/bond_main.c
@@ -1148,6 +1148,7 @@
 
 	bond_dev->type		    = slave_dev->type;
 	bond_dev->hard_header_len   = slave_dev->hard_header_len;
+	bond_dev->needed_headroom   = slave_dev->needed_headroom;
 	bond_dev->addr_len	    = slave_dev->addr_len;
 
 	memcpy(bond_dev->broadcast, slave_dev->broadcast,
@@ -1292,7 +1293,39 @@
 	slave->dev->flags &= ~IFF_SLAVE;
 }
 
-static struct slave *bond_alloc_slave(struct bonding *bond)
+static void slave_kobj_release(struct kobject *kobj)
+{
+	struct slave *slave = to_slave(kobj);
+	struct bonding *bond = bond_get_bond_by_slave(slave);
+
+	cancel_delayed_work_sync(&slave->notify_work);
+	if (BOND_MODE(bond) == BOND_MODE_8023AD)
+		kfree(SLAVE_AD_INFO(slave));
+
+	kfree(slave);
+}
+
+static struct kobj_type slave_ktype = {
+	.release = slave_kobj_release,
+#ifdef CONFIG_SYSFS
+	.sysfs_ops = &slave_sysfs_ops,
+#endif
+};
+
+static int bond_kobj_init(struct slave *slave)
+{
+	int err;
+
+	err = kobject_init_and_add(&slave->kobj, &slave_ktype,
+				   &(slave->dev->dev.kobj), "bonding_slave");
+	if (err)
+		kobject_put(&slave->kobj);
+
+	return err;
+}
+
+static struct slave *bond_alloc_slave(struct bonding *bond,
+				      struct net_device *slave_dev)
 {
 	struct slave *slave = NULL;
 
@@ -1300,11 +1333,17 @@
 	if (!slave)
 		return NULL;
 
+	slave->bond = bond;
+	slave->dev = slave_dev;
+
+	if (bond_kobj_init(slave))
+		return NULL;
+
 	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
 		SLAVE_AD_INFO(slave) = kzalloc(sizeof(struct ad_slave_info),
 					       GFP_KERNEL);
 		if (!SLAVE_AD_INFO(slave)) {
-			kfree(slave);
+			kobject_put(&slave->kobj);
 			return NULL;
 		}
 	}
@@ -1313,17 +1352,6 @@
 	return slave;
 }
 
-static void bond_free_slave(struct slave *slave)
-{
-	struct bonding *bond = bond_get_bond_by_slave(slave);
-
-	cancel_delayed_work_sync(&slave->notify_work);
-	if (BOND_MODE(bond) == BOND_MODE_8023AD)
-		kfree(SLAVE_AD_INFO(slave));
-
-	kfree(slave);
-}
-
 static void bond_fill_ifbond(struct bonding *bond, struct ifbond *info)
 {
 	info->bond_mode = BOND_MODE(bond);
@@ -1507,14 +1535,12 @@
 			goto err_undo_flags;
 	}
 
-	new_slave = bond_alloc_slave(bond);
+	new_slave = bond_alloc_slave(bond, slave_dev);
 	if (!new_slave) {
 		res = -ENOMEM;
 		goto err_undo_flags;
 	}
 
-	new_slave->bond = bond;
-	new_slave->dev = slave_dev;
 	/* Set the new_slave's queue_id to be zero.  Queue ID mapping
 	 * is set via sysfs or module option if desired.
 	 */
@@ -1836,7 +1862,7 @@
 	dev_set_mtu(slave_dev, new_slave->original_mtu);
 
 err_free:
-	bond_free_slave(new_slave);
+	kobject_put(&new_slave->kobj);
 
 err_undo_flags:
 	/* Enslave of first slave has failed and we need to fix master's mac */
@@ -2016,7 +2042,7 @@
 	if (!netif_is_bond_master(slave_dev))
 		slave_dev->priv_flags &= ~IFF_BONDING;
 
-	bond_free_slave(slave);
+	kobject_put(&slave->kobj);
 
 	return 0;
 }
@@ -2037,7 +2063,8 @@
 	int ret;
 
 	ret = __bond_release_one(bond_dev, slave_dev, false, true);
-	if (ret == 0 && !bond_has_slaves(bond)) {
+	if (ret == 0 && !bond_has_slaves(bond) &&
+	    bond_dev->reg_state != NETREG_UNREGISTERING) {
 		bond_dev->priv_flags |= IFF_DISABLE_NETPOLL;
 		netdev_info(bond_dev, "Destroying bond\n");
 		bond_remove_proc_entry(bond);
@@ -2225,9 +2252,6 @@
 			} else if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
 				/* make it immediately active */
 				bond_set_active_slave(slave);
-			} else if (slave != primary) {
-				/* prevent it from being the active one */
-				bond_set_backup_slave(slave);
 			}
 
 			slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
@@ -2780,6 +2804,9 @@
 			if (bond_time_in_interval(bond, last_rx, 1)) {
 				bond_propose_link_state(slave, BOND_LINK_UP);
 				commit++;
+			} else if (slave->link == BOND_LINK_BACK) {
+				bond_propose_link_state(slave, BOND_LINK_FAIL);
+				commit++;
 			}
 			continue;
 		}
@@ -2888,6 +2915,19 @@
 
 			continue;
 
+		case BOND_LINK_FAIL:
+			bond_set_slave_link_state(slave, BOND_LINK_FAIL,
+						  BOND_SLAVE_NOTIFY_NOW);
+			bond_set_slave_inactive_flags(slave,
+						      BOND_SLAVE_NOTIFY_NOW);
+
+			/* A slave has just been enslaved and has become
+			 * the current active slave.
+			 */
+			if (rtnl_dereference(bond->curr_active_slave))
+				RCU_INIT_POINTER(bond->current_arp_slave, NULL);
+			continue;
+
 		default:
 			slave_err(bond->dev, slave->dev,
 				  "impossible: link_new_state %d on slave\n",
@@ -2938,8 +2978,6 @@
 			return should_notify_rtnl;
 	}
 
-	bond_set_slave_inactive_flags(curr_arp_slave, BOND_SLAVE_NOTIFY_LATER);
-
 	bond_for_each_slave_rcu(bond, slave, iter) {
 		if (!found && !before && bond_slave_is_up(slave))
 			before = slave;
@@ -3439,6 +3477,47 @@
 	}
 }
 
+#ifdef CONFIG_LOCKDEP
+static int bond_get_lowest_level_rcu(struct net_device *dev)
+{
+	struct net_device *ldev, *next, *now, *dev_stack[MAX_NEST_DEV + 1];
+	struct list_head *niter, *iter, *iter_stack[MAX_NEST_DEV + 1];
+	int cur = 0, max = 0;
+
+	now = dev;
+	iter = &dev->adj_list.lower;
+
+	while (1) {
+		next = NULL;
+		while (1) {
+			ldev = netdev_next_lower_dev_rcu(now, &iter);
+			if (!ldev)
+				break;
+
+			next = ldev;
+			niter = &ldev->adj_list.lower;
+			dev_stack[cur] = now;
+			iter_stack[cur++] = iter;
+			if (max <= cur)
+				max = cur;
+			break;
+		}
+
+		if (!next) {
+			if (!cur)
+				return max;
+			next = dev_stack[--cur];
+			niter = iter_stack[cur];
+		}
+
+		now = next;
+		iter = niter;
+	}
+
+	return max;
+}
+#endif
+
 static void bond_get_stats(struct net_device *bond_dev,
 			   struct rtnl_link_stats64 *stats)
 {
@@ -3446,11 +3525,17 @@
 	struct rtnl_link_stats64 temp;
 	struct list_head *iter;
 	struct slave *slave;
+	int nest_level = 0;
 
-	spin_lock(&bond->stats_lock);
-	memcpy(stats, &bond->bond_stats, sizeof(*stats));
 
 	rcu_read_lock();
+#ifdef CONFIG_LOCKDEP
+	nest_level = bond_get_lowest_level_rcu(bond_dev);
+#endif
+
+	spin_lock_nested(&bond->stats_lock, nest_level);
+	memcpy(stats, &bond->bond_stats, sizeof(*stats));
+
 	bond_for_each_slave_rcu(bond, slave, iter) {
 		const struct rtnl_link_stats64 *new =
 			dev_get_stats(slave->dev, &temp);
@@ -3460,10 +3545,10 @@
 		/* save off the slave stats for the next run */
 		memcpy(&slave->slave_stats, new, sizeof(*new));
 	}
-	rcu_read_unlock();
 
 	memcpy(&bond->bond_stats, stats, sizeof(*stats));
 	spin_unlock(&bond->stats_lock);
+	rcu_read_unlock();
 }
 
 static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd)
@@ -3553,6 +3638,8 @@
 	case BOND_RELEASE_OLD:
 	case SIOCBONDRELEASE:
 		res = bond_release(bond_dev, slave_dev);
+		if (!res)
+			netdev_update_lockdep_key(slave_dev);
 		break;
 	case BOND_SETHWADDR_OLD:
 	case SIOCBONDSETHWADDR:
@@ -3612,32 +3699,35 @@
 	const struct net_device_ops *slave_ops;
 	struct neigh_parms parms;
 	struct slave *slave;
-	int ret;
+	int ret = 0;
 
-	slave = bond_first_slave(bond);
+	rcu_read_lock();
+	slave = bond_first_slave_rcu(bond);
 	if (!slave)
-		return 0;
+		goto out;
 	slave_ops = slave->dev->netdev_ops;
 	if (!slave_ops->ndo_neigh_setup)
-		return 0;
-
-	parms.neigh_setup = NULL;
-	parms.neigh_cleanup = NULL;
-	ret = slave_ops->ndo_neigh_setup(slave->dev, &parms);
-	if (ret)
-		return ret;
+		goto out;
 
-	/* Assign slave's neigh_cleanup to neighbour in case cleanup is called
-	 * after the last slave has been detached.  Assumes that all slaves
-	 * utilize the same neigh_cleanup (true at this writing as only user
-	 * is ipoib).
+	/* TODO: find another way [1] to implement this.
+	 * Passing a zeroed structure is fragile,
+	 * but at least we do not pass garbage.
+	 *
+	 * [1] One way would be that ndo_neigh_setup() never touch
+	 *     struct neigh_parms, but propagate the new neigh_setup()
+	 *     back to ___neigh_create() / neigh_parms_alloc()
 	 */
-	n->parms->neigh_cleanup = parms.neigh_cleanup;
+	memset(&parms, 0, sizeof(parms));
+	ret = slave_ops->ndo_neigh_setup(slave->dev, &parms);
 
-	if (!parms.neigh_setup)
-		return 0;
+	if (ret)
+		goto out;
 
-	return parms.neigh_setup(n);
+	if (parms.neigh_setup)
+		ret = parms.neigh_setup(n);
+out:
+	rcu_read_unlock();
+	return ret;
 }
 
 /* The bonding ndo_neigh_setup is called at init time beofre any
@@ -4197,13 +4287,23 @@
 	return ret;
 }
 
+static u32 bond_mode_bcast_speed(struct slave *slave, u32 speed)
+{
+	if (speed == 0 || speed == SPEED_UNKNOWN)
+		speed = slave->speed;
+	else
+		speed = min(speed, slave->speed);
+
+	return speed;
+}
+
 static int bond_ethtool_get_link_ksettings(struct net_device *bond_dev,
 					   struct ethtool_link_ksettings *cmd)
 {
 	struct bonding *bond = netdev_priv(bond_dev);
-	unsigned long speed = 0;
 	struct list_head *iter;
 	struct slave *slave;
+	u32 speed = 0;
 
 	cmd->base.duplex = DUPLEX_UNKNOWN;
 	cmd->base.port = PORT_OTHER;
@@ -4215,8 +4315,13 @@
 	 */
 	bond_for_each_slave(bond, slave, iter) {
 		if (bond_slave_can_tx(slave)) {
-			if (slave->speed != SPEED_UNKNOWN)
-				speed += slave->speed;
+			if (slave->speed != SPEED_UNKNOWN) {
+				if (BOND_MODE(bond) == BOND_MODE_BROADCAST)
+					speed = bond_mode_bcast_speed(slave,
+								      speed);
+				else
+					speed += slave->speed;
+			}
 			if (cmd->base.duplex == DUPLEX_UNKNOWN &&
 			    slave->duplex != DUPLEX_UNKNOWN)
 				cmd->base.duplex = slave->duplex;
@@ -4815,15 +4920,19 @@
 	bond_dev->rtnl_link_ops = &bond_link_ops;
 
 	res = register_netdevice(bond_dev);
+	if (res < 0) {
+		free_netdev(bond_dev);
+		rtnl_unlock();
+
+		return res;
+	}
 
 	netif_carrier_off(bond_dev);
 
 	bond_work_init_all(bond);
 
 	rtnl_unlock();
-	if (res < 0)
-		free_netdev(bond_dev);
-	return res;
+	return 0;
 }
 
 static int __net_init bond_net_init(struct net *net)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/bonding/bond_netlink.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/bonding/bond_netlink.c
@@ -456,11 +456,10 @@
 		return err;
 
 	err = register_netdevice(bond_dev);
-
-	netif_carrier_off(bond_dev);
 	if (!err) {
 		struct bonding *bond = netdev_priv(bond_dev);
 
+		netif_carrier_off(bond_dev);
 		bond_work_init_all(bond);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/bonding/bond_options.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/bonding/bond_options.c
@@ -1398,6 +1398,8 @@
 	case '-':
 		slave_dbg(bond->dev, dev, "Releasing interface\n");
 		ret = bond_release(bond->dev, dev);
+		if (!ret)
+			netdev_update_lockdep_key(dev);
 		break;
 
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/bonding/bond_sysfs_slave.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/bonding/bond_sysfs_slave.c
@@ -121,7 +121,6 @@
 };
 
 #define to_slave_attr(_at) container_of(_at, struct slave_attribute, attr)
-#define to_slave(obj)	container_of(obj, struct slave, kobj)
 
 static ssize_t slave_show(struct kobject *kobj,
 			  struct attribute *attr, char *buf)
@@ -132,26 +131,15 @@
 	return slave_attr->show(slave, buf);
 }
 
-static const struct sysfs_ops slave_sysfs_ops = {
+const struct sysfs_ops slave_sysfs_ops = {
 	.show = slave_show,
 };
 
-static struct kobj_type slave_ktype = {
-#ifdef CONFIG_SYSFS
-	.sysfs_ops = &slave_sysfs_ops,
-#endif
-};
-
 int bond_sysfs_slave_add(struct slave *slave)
 {
 	const struct slave_attribute **a;
 	int err;
 
-	err = kobject_init_and_add(&slave->kobj, &slave_ktype,
-				   &(slave->dev->dev.kobj), "bonding_slave");
-	if (err)
-		return err;
-
 	for (a = slave_attrs; *a; ++a) {
 		err = sysfs_create_file(&slave->kobj, &((*a)->attr));
 		if (err) {
@@ -169,6 +157,4 @@
 
 	for (a = slave_attrs; *a; ++a)
 		sysfs_remove_file(&slave->kobj, &((*a)->attr));
-
-	kobject_put(&slave->kobj);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/Kconfig
@@ -123,6 +123,7 @@
 config CAN_KVASER_PCIEFD
 	depends on PCI
 	tristate "Kvaser PCIe FD cards"
+	select CRC32
 	  help
 	  This is a driver for the Kvaser PCI Express CAN FD family.
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/dev.c
@@ -486,9 +486,13 @@
 		 */
 		struct sk_buff *skb = priv->echo_skb[idx];
 		struct canfd_frame *cf = (struct canfd_frame *)skb->data;
-		u8 len = cf->len;
 
-		*len_ptr = len;
+		/* get the real payload length for netdev statistics */
+		if (cf->can_id & CAN_RTR_FLAG)
+			*len_ptr = 0;
+		else
+			*len_ptr = cf->len;
+
 		priv->echo_skb[idx] = NULL;
 
 		return skb;
@@ -512,7 +516,11 @@
 	if (!skb)
 		return 0;
 
-	netif_rx(skb);
+	skb_get(skb);
+	if (netif_rx(skb) == NET_RX_SUCCESS)
+		dev_consume_skb_any(skb);
+	else
+		dev_kfree_skb_any(skb);
 
 	return len;
 }
@@ -559,11 +567,11 @@
 	}
 	cf->can_id |= CAN_ERR_RESTARTED;
 
-	netif_rx(skb);
-
 	stats->rx_packets++;
 	stats->rx_bytes += cf->can_dlc;
 
+	netif_rx_ni(skb);
+
 restart:
 	netdev_dbg(dev, "restarted\n");
 	priv->can_stats.restarts++;
@@ -884,6 +892,7 @@
 				= { .len = sizeof(struct can_bittiming) },
 	[IFLA_CAN_DATA_BITTIMING_CONST]
 				= { .len = sizeof(struct can_bittiming_const) },
+	[IFLA_CAN_TERMINATION]	= { .type = NLA_U16 },
 };
 
 static int can_validate(struct nlattr *tb[], struct nlattr *data[],
@@ -1125,7 +1134,7 @@
 {
 	struct can_priv *priv = netdev_priv(dev);
 	struct can_ctrlmode cm = {.flags = priv->ctrlmode};
-	struct can_berr_counter bec;
+	struct can_berr_counter bec = { };
 	enum can_state state = priv->state;
 
 	if (priv->do_get_state)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/flexcan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/flexcan.c
@@ -321,8 +321,7 @@
 
 static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
 	.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
-		FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
-		FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
+		FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
 };
 
 static const struct can_bittiming_const flexcan_bittiming_const = {
@@ -389,6 +388,34 @@
 		(&priv->regs->mb[bank][priv->mb_size * mb_index]);
 }
 
+static int flexcan_low_power_enter_ack(struct flexcan_priv *priv)
+{
+	struct flexcan_regs __iomem *regs = priv->regs;
+	unsigned int timeout = FLEXCAN_TIMEOUT_US / 10;
+
+	while (timeout-- && !(priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK))
+		udelay(10);
+
+	if (!(priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK))
+		return -ETIMEDOUT;
+
+	return 0;
+}
+
+static int flexcan_low_power_exit_ack(struct flexcan_priv *priv)
+{
+	struct flexcan_regs __iomem *regs = priv->regs;
+	unsigned int timeout = FLEXCAN_TIMEOUT_US / 10;
+
+	while (timeout-- && (priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK))
+		udelay(10);
+
+	if (priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK)
+		return -ETIMEDOUT;
+
+	return 0;
+}
+
 static void flexcan_enable_wakeup_irq(struct flexcan_priv *priv, bool enable)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
@@ -407,7 +434,6 @@
 static inline int flexcan_enter_stop_mode(struct flexcan_priv *priv)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
-	unsigned int ackval;
 	u32 reg_mcr;
 
 	reg_mcr = priv->read(&regs->mcr);
@@ -418,36 +444,24 @@
 	regmap_update_bits(priv->stm.gpr, priv->stm.req_gpr,
 			   1 << priv->stm.req_bit, 1 << priv->stm.req_bit);
 
-	/* get stop acknowledgment */
-	if (regmap_read_poll_timeout(priv->stm.gpr, priv->stm.ack_gpr,
-				     ackval, ackval & (1 << priv->stm.ack_bit),
-				     0, FLEXCAN_TIMEOUT_US))
-		return -ETIMEDOUT;
-
-	return 0;
+	return flexcan_low_power_enter_ack(priv);
 }
 
 static inline int flexcan_exit_stop_mode(struct flexcan_priv *priv)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
-	unsigned int ackval;
 	u32 reg_mcr;
 
 	/* remove stop request */
 	regmap_update_bits(priv->stm.gpr, priv->stm.req_gpr,
 			   1 << priv->stm.req_bit, 0);
 
-	/* get stop acknowledgment */
-	if (regmap_read_poll_timeout(priv->stm.gpr, priv->stm.ack_gpr,
-				     ackval, !(ackval & (1 << priv->stm.ack_bit)),
-				     0, FLEXCAN_TIMEOUT_US))
-		return -ETIMEDOUT;
 
 	reg_mcr = priv->read(&regs->mcr);
 	reg_mcr &= ~FLEXCAN_MCR_SLF_WAK;
 	priv->write(reg_mcr, &regs->mcr);
 
-	return 0;
+	return flexcan_low_power_exit_ack(priv);
 }
 
 static inline void flexcan_error_irq_enable(const struct flexcan_priv *priv)
@@ -506,39 +520,25 @@
 static int flexcan_chip_enable(struct flexcan_priv *priv)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
-	unsigned int timeout = FLEXCAN_TIMEOUT_US / 10;
 	u32 reg;
 
 	reg = priv->read(&regs->mcr);
 	reg &= ~FLEXCAN_MCR_MDIS;
 	priv->write(reg, &regs->mcr);
 
-	while (timeout-- && (priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK))
-		udelay(10);
-
-	if (priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK)
-		return -ETIMEDOUT;
-
-	return 0;
+	return flexcan_low_power_exit_ack(priv);
 }
 
 static int flexcan_chip_disable(struct flexcan_priv *priv)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
-	unsigned int timeout = FLEXCAN_TIMEOUT_US / 10;
 	u32 reg;
 
 	reg = priv->read(&regs->mcr);
 	reg |= FLEXCAN_MCR_MDIS;
 	priv->write(reg, &regs->mcr);
 
-	while (timeout-- && !(priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK))
-		udelay(10);
-
-	if (!(priv->read(&regs->mcr) & FLEXCAN_MCR_LPM_ACK))
-		return -ETIMEDOUT;
-
-	return 0;
+	return flexcan_low_power_enter_ack(priv);
 }
 
 static int flexcan_chip_freeze(struct flexcan_priv *priv)
@@ -548,7 +548,7 @@
 	u32 reg;
 
 	reg = priv->read(&regs->mcr);
-	reg |= FLEXCAN_MCR_HALT;
+	reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT;
 	priv->write(reg, &regs->mcr);
 
 	while (timeout-- && !(priv->read(&regs->mcr) & FLEXCAN_MCR_FRZ_ACK))
@@ -614,8 +614,10 @@
 	int err;
 
 	err = pm_runtime_get_sync(priv->dev);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put_noidle(priv->dev);
 		return err;
+	}
 
 	err = __flexcan_get_berr_counter(dev, bec);
 
@@ -1055,10 +1057,13 @@
 
 	flexcan_set_bittiming(dev);
 
+	/* set freeze, halt */
+	err = flexcan_chip_freeze(priv);
+	if (err)
+		goto out_chip_disable;
+
 	/* MCR
 	 *
-	 * enable freeze
-	 * halt now
 	 * only supervisor access
 	 * enable warning int
 	 * enable individual RX masking
@@ -1067,9 +1072,8 @@
 	 */
 	reg_mcr = priv->read(&regs->mcr);
 	reg_mcr &= ~FLEXCAN_MCR_MAXMB(0xff);
-	reg_mcr |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT | FLEXCAN_MCR_SUPV |
-		FLEXCAN_MCR_WRN_EN | FLEXCAN_MCR_IRMQ | FLEXCAN_MCR_IDAM_C |
-		FLEXCAN_MCR_MAXMB(priv->tx_mb_idx);
+	reg_mcr |= FLEXCAN_MCR_SUPV | FLEXCAN_MCR_WRN_EN | FLEXCAN_MCR_IRMQ |
+		FLEXCAN_MCR_IDAM_C | FLEXCAN_MCR_MAXMB(priv->tx_mb_idx);
 
 	/* MCR
 	 *
@@ -1200,14 +1204,10 @@
 		priv->write(reg_mecr, &regs->mecr);
 	}
 
-	err = flexcan_transceiver_enable(priv);
-	if (err)
-		goto out_chip_disable;
-
 	/* synchronize with the can bus */
 	err = flexcan_chip_unfreeze(priv);
 	if (err)
-		goto out_transceiver_disable;
+		goto out_chip_disable;
 
 	priv->can.state = CAN_STATE_ERROR_ACTIVE;
 
@@ -1224,25 +1224,28 @@
 
 	return 0;
 
- out_transceiver_disable:
-	flexcan_transceiver_disable(priv);
  out_chip_disable:
 	flexcan_chip_disable(priv);
 	return err;
 }
 
-/* flexcan_chip_stop
+/* __flexcan_chip_stop
  *
- * this functions is entered with clocks enabled
+ * this function is entered with clocks enabled
  */
-static void flexcan_chip_stop(struct net_device *dev)
+static int __flexcan_chip_stop(struct net_device *dev, bool disable_on_error)
 {
 	struct flexcan_priv *priv = netdev_priv(dev);
 	struct flexcan_regs __iomem *regs = priv->regs;
+	int err;
 
 	/* freeze + disable module */
-	flexcan_chip_freeze(priv);
-	flexcan_chip_disable(priv);
+	err = flexcan_chip_freeze(priv);
+	if (err && !disable_on_error)
+		return err;
+	err = flexcan_chip_disable(priv);
+	if (err && !disable_on_error)
+		goto out_chip_unfreeze;
 
 	/* Disable all interrupts */
 	priv->write(0, &regs->imask2);
@@ -1250,8 +1253,24 @@
 	priv->write(priv->reg_ctrl_default & ~FLEXCAN_CTRL_ERR_ALL,
 		    &regs->ctrl);
 
-	flexcan_transceiver_disable(priv);
 	priv->can.state = CAN_STATE_STOPPED;
+
+	return 0;
+
+ out_chip_unfreeze:
+	flexcan_chip_unfreeze(priv);
+
+	return err;
+}
+
+static inline int flexcan_chip_stop_disable_on_error(struct net_device *dev)
+{
+	return __flexcan_chip_stop(dev, true);
+}
+
+static inline int flexcan_chip_stop(struct net_device *dev)
+{
+	return __flexcan_chip_stop(dev, false);
 }
 
 static int flexcan_open(struct net_device *dev)
@@ -1260,17 +1279,23 @@
 	int err;
 
 	err = pm_runtime_get_sync(priv->dev);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put_noidle(priv->dev);
 		return err;
+	}
 
 	err = open_candev(dev);
 	if (err)
 		goto out_runtime_put;
 
-	err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
+	err = flexcan_transceiver_enable(priv);
 	if (err)
 		goto out_close;
 
+	err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
+	if (err)
+		goto out_transceiver_disable;
+
 	priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN;
 	priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
 			 (sizeof(priv->regs->mb[1]) / priv->mb_size);
@@ -1326,6 +1351,8 @@
 	can_rx_offload_del(&priv->offload);
  out_free_irq:
 	free_irq(dev->irq, dev);
+ out_transceiver_disable:
+	flexcan_transceiver_disable(priv);
  out_close:
 	close_candev(dev);
  out_runtime_put:
@@ -1340,10 +1367,11 @@
 
 	netif_stop_queue(dev);
 	can_rx_offload_disable(&priv->offload);
-	flexcan_chip_stop(dev);
+	flexcan_chip_stop_disable_on_error(dev);
 
 	can_rx_offload_del(&priv->offload);
 	free_irq(dev->irq, dev);
+	flexcan_transceiver_disable(priv);
 
 	close_candev(dev);
 	pm_runtime_put(priv->dev);
@@ -1406,10 +1434,14 @@
 	if (err)
 		goto out_chip_disable;
 
-	/* set freeze, halt and activate FIFO, restrict register access */
+	/* set freeze, halt */
+	err = flexcan_chip_freeze(priv);
+	if (err)
+		goto out_chip_disable;
+
+	/* activate FIFO, restrict register access */
 	reg = priv->read(&regs->mcr);
-	reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT |
-		FLEXCAN_MCR_FEN | FLEXCAN_MCR_SUPV;
+	reg |=  FLEXCAN_MCR_FEN | FLEXCAN_MCR_SUPV;
 	priv->write(reg, &regs->mcr);
 
 	/* Currently we only support newer versions of this core
@@ -1654,6 +1686,8 @@
 {
 	struct net_device *dev = platform_get_drvdata(pdev);
 
+	device_set_wakeup_enable(&pdev->dev, false);
+	device_set_wakeup_capable(&pdev->dev, false);
 	unregister_flexcandev(dev);
 	pm_runtime_disable(&pdev->dev);
 	free_candev(dev);
@@ -1680,8 +1714,6 @@
 			err = flexcan_chip_disable(priv);
 			if (err)
 				return err;
-
-			err = pm_runtime_force_suspend(device);
 		}
 		netif_stop_queue(dev);
 		netif_device_detach(dev);
@@ -1703,11 +1735,10 @@
 		netif_start_queue(dev);
 		if (device_may_wakeup(device)) {
 			disable_irq_wake(dev->irq);
-		} else {
-			err = pm_runtime_force_resume(device);
+			err = flexcan_exit_stop_mode(priv);
 			if (err)
 				return err;
-
+		} else {
 			err = flexcan_chip_enable(priv);
 		}
 	}
@@ -1738,8 +1769,16 @@
 	struct net_device *dev = dev_get_drvdata(device);
 	struct flexcan_priv *priv = netdev_priv(dev);
 
-	if (netif_running(dev) && device_may_wakeup(device))
-		flexcan_enable_wakeup_irq(priv, true);
+	if (netif_running(dev)) {
+		int err;
+
+		if (device_may_wakeup(device))
+			flexcan_enable_wakeup_irq(priv, true);
+
+		err = pm_runtime_force_suspend(device);
+		if (err)
+			return err;
+	}
 
 	return 0;
 }
@@ -1748,13 +1787,16 @@
 {
 	struct net_device *dev = dev_get_drvdata(device);
 	struct flexcan_priv *priv = netdev_priv(dev);
-	int err;
 
-	if (netif_running(dev) && device_may_wakeup(device)) {
-		flexcan_enable_wakeup_irq(priv, false);
-		err = flexcan_exit_stop_mode(priv);
+	if (netif_running(dev)) {
+		int err;
+
+		err = pm_runtime_force_resume(device);
 		if (err)
 			return err;
+
+		if (device_may_wakeup(device))
+			flexcan_enable_wakeup_irq(priv, false);
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/kvaser_pciefd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/kvaser_pciefd.c
@@ -287,12 +287,12 @@
 static const struct can_bittiming_const kvaser_pciefd_bittiming_const = {
 	.name = KVASER_PCIEFD_DRV_NAME,
 	.tseg1_min = 1,
-	.tseg1_max = 255,
+	.tseg1_max = 512,
 	.tseg2_min = 1,
 	.tseg2_max = 32,
 	.sjw_max = 16,
 	.brp_min = 1,
-	.brp_max = 4096,
+	.brp_max = 8192,
 	.brp_inc = 1,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/m_can/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/m_can/Kconfig
@@ -16,7 +16,8 @@
 
 config CAN_M_CAN_TCAN4X5X
 	depends on CAN_M_CAN
-	depends on REGMAP_SPI
+	depends on SPI
+	select REGMAP_SPI
 	tristate "TCAN4X5X M_CAN device"
 	---help---
 	  Say Y here if you want support for Texas Instruments TCAN4x5x
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/m_can/m_can.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/m_can/m_can.c
@@ -379,10 +379,6 @@
 		cccr &= ~CCCR_CSR;
 
 	if (enable) {
-		/* Clear the Clock stop request if it was set */
-		if (cccr & CCCR_CSR)
-			cccr &= ~CCCR_CSR;
-
 		/* enable m_can configuration */
 		m_can_write(cdev, M_CAN_CCCR, cccr | CCCR_INIT);
 		udelay(5);
@@ -664,7 +660,7 @@
 	unsigned int ecr;
 
 	switch (new_state) {
-	case CAN_STATE_ERROR_ACTIVE:
+	case CAN_STATE_ERROR_WARNING:
 		/* error warning state */
 		cdev->can.can_stats.error_warning++;
 		cdev->can.state = CAN_STATE_ERROR_WARNING;
@@ -693,7 +689,7 @@
 	__m_can_get_berr_counter(dev, &bec);
 
 	switch (new_state) {
-	case CAN_STATE_ERROR_ACTIVE:
+	case CAN_STATE_ERROR_WARNING:
 		/* error warning state */
 		cf->can_id |= CAN_ERR_CRTL;
 		cf->data[1] = (bec.txerr > bec.rxerr) ?
@@ -913,6 +909,8 @@
 	struct net_device_stats *stats = &dev->stats;
 	u32 ir;
 
+	if (pm_runtime_suspended(cdev->dev))
+		return IRQ_NONE;
 	ir = m_can_read(cdev, M_CAN_IR);
 	if (!ir)
 		return IRQ_NONE;
@@ -988,7 +986,7 @@
 	.name = KBUILD_MODNAME,
 	.tseg1_min = 2,		/* Time segment 1 = prop_seg + phase_seg1 */
 	.tseg1_max = 256,
-	.tseg2_min = 1,		/* Time segment 2 = phase_seg2 */
+	.tseg2_min = 2,		/* Time segment 2 = phase_seg2 */
 	.tseg2_max = 128,
 	.sjw_max = 128,
 	.brp_min = 1,
@@ -1335,6 +1333,8 @@
 						&m_can_data_bittiming_const_31X;
 		break;
 	case 32:
+	case 33:
+		/* Support both MCAN version v3.2.x and v3.3.0 */
 		m_can_dev->can.bittiming_const = m_can_dev->bit_timing ?
 			m_can_dev->bit_timing : &m_can_bittiming_const_31X;
 
@@ -1366,6 +1366,9 @@
 	/* disable all interrupts */
 	m_can_disable_all_interrupts(cdev);
 
+	/* Set init mode to disengage from the network */
+	m_can_config_endisable(cdev, true);
+
 	/* set the state as STOPPED */
 	cdev->can.state = CAN_STATE_STOPPED;
 }
@@ -1600,7 +1603,7 @@
 		INIT_WORK(&cdev->tx_work, m_can_tx_work_queue);
 
 		err = request_threaded_irq(dev->irq, NULL, m_can_isr,
-					   IRQF_ONESHOT | IRQF_TRIGGER_FALLING,
+					   IRQF_ONESHOT,
 					   dev->name, dev);
 	} else {
 		err = request_irq(dev->irq, m_can_isr, IRQF_SHARED, dev->name,
@@ -1764,6 +1767,12 @@
 }
 EXPORT_SYMBOL_GPL(m_can_class_allocate_dev);
 
+void m_can_class_free_dev(struct net_device *net)
+{
+	free_candev(net);
+}
+EXPORT_SYMBOL_GPL(m_can_class_free_dev);
+
 int m_can_class_register(struct m_can_classdev *m_can_dev)
 {
 	int ret;
@@ -1859,8 +1868,6 @@
 {
 	unregister_candev(m_can_dev->net);
 
-	m_can_clk_stop(m_can_dev);
-
 	free_candev(m_can_dev->net);
 }
 EXPORT_SYMBOL_GPL(m_can_class_unregister);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/m_can/m_can.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/m_can/m_can.h
@@ -99,6 +99,7 @@
 };
 
 struct m_can_classdev *m_can_class_allocate_dev(struct device *dev);
+void m_can_class_free_dev(struct net_device *net);
 int m_can_class_register(struct m_can_classdev *cdev);
 void m_can_class_unregister(struct m_can_classdev *cdev);
 int m_can_class_get_clocks(struct m_can_classdev *cdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/m_can/m_can_platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/m_can/m_can_platform.c
@@ -144,8 +144,6 @@
 	struct net_device *ndev = dev_get_drvdata(dev);
 	struct m_can_classdev *mcan_class = netdev_priv(ndev);
 
-	m_can_class_suspend(dev);
-
 	clk_disable_unprepare(mcan_class->cclk);
 	clk_disable_unprepare(mcan_class->hclk);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/m_can/tcan4x5x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/m_can/tcan4x5x.c
@@ -126,30 +126,6 @@
 	int reg_offset;
 };
 
-static struct can_bittiming_const tcan4x5x_bittiming_const = {
-	.name = DEVICE_NAME,
-	.tseg1_min = 2,
-	.tseg1_max = 31,
-	.tseg2_min = 2,
-	.tseg2_max = 16,
-	.sjw_max = 16,
-	.brp_min = 1,
-	.brp_max = 32,
-	.brp_inc = 1,
-};
-
-static struct can_bittiming_const tcan4x5x_data_bittiming_const = {
-	.name = DEVICE_NAME,
-	.tseg1_min = 1,
-	.tseg1_max = 32,
-	.tseg2_min = 1,
-	.tseg2_max = 16,
-	.sjw_max = 16,
-	.brp_min = 1,
-	.brp_max = 32,
-	.brp_inc = 1,
-};
-
 static void tcan4x5x_check_wake(struct tcan4x5x_priv *priv)
 {
 	int wake_state = 0;
@@ -164,6 +140,28 @@
 	}
 }
 
+static int tcan4x5x_reset(struct tcan4x5x_priv *priv)
+{
+	int ret = 0;
+
+	if (priv->reset_gpio) {
+		gpiod_set_value(priv->reset_gpio, 1);
+
+		/* tpulse_width minimum 30us */
+		usleep_range(30, 100);
+		gpiod_set_value(priv->reset_gpio, 0);
+	} else {
+		ret = regmap_write(priv->regmap, TCAN4X5X_CONFIG,
+				   TCAN4X5X_SW_RESET);
+		if (ret)
+			return ret;
+	}
+
+	usleep_range(700, 1000);
+
+	return ret;
+}
+
 static int regmap_spi_gather_write(void *context, const void *reg,
 				   size_t reg_len, const void *val,
 				   size_t val_len)
@@ -327,20 +325,21 @@
 	if (ret)
 		return ret;
 
+	/* Zero out the MCAN buffers */
+	m_can_init_ram(cdev);
+
 	ret = regmap_update_bits(tcan4x5x->regmap, TCAN4X5X_CONFIG,
 				 TCAN4X5X_MODE_SEL_MASK, TCAN4X5X_MODE_NORMAL);
 	if (ret)
 		return ret;
 
-	/* Zero out the MCAN buffers */
-	m_can_init_ram(cdev);
-
 	return ret;
 }
 
 static int tcan4x5x_parse_config(struct m_can_classdev *cdev)
 {
 	struct tcan4x5x_priv *tcan4x5x = cdev->device_data;
+	int ret;
 
 	tcan4x5x->device_wake_gpio = devm_gpiod_get(cdev->dev, "device-wake",
 						    GPIOD_OUT_HIGH);
@@ -354,6 +353,10 @@
 	if (IS_ERR(tcan4x5x->reset_gpio))
 		tcan4x5x->reset_gpio = NULL;
 
+	ret = tcan4x5x_reset(tcan4x5x);
+	if (ret)
+		return ret;
+
 	tcan4x5x->device_state_gpio = devm_gpiod_get_optional(cdev->dev,
 							      "device-state",
 							      GPIOD_IN);
@@ -422,8 +425,6 @@
 	mcan_class->dev = &spi->dev;
 	mcan_class->ops = &tcan4x5x_ops;
 	mcan_class->is_peripheral = true;
-	mcan_class->bit_timing = &tcan4x5x_bittiming_const;
-	mcan_class->data_timing = &tcan4x5x_data_bittiming_const;
 	mcan_class->net->irq = spi->irq;
 
 	spi_set_drvdata(spi, priv);
@@ -440,9 +441,17 @@
 
 	priv->regmap = devm_regmap_init(&spi->dev, &tcan4x5x_bus,
 					&spi->dev, &tcan4x5x_regmap);
+	if (IS_ERR(priv->regmap)) {
+		ret = PTR_ERR(priv->regmap);
+		goto out_clk;
+	}
 
 	tcan4x5x_power_enable(priv->power, 1);
 
+	ret = tcan4x5x_init(mcan_class);
+	if (ret)
+		goto out_power;
+
 	ret = m_can_class_register(mcan_class);
 	if (ret)
 		goto out_power;
@@ -466,10 +475,10 @@
 {
 	struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
 
-	tcan4x5x_power_enable(priv->power, 0);
-
 	m_can_class_unregister(priv->mcan_dev);
 
+	tcan4x5x_power_enable(priv->power, 0);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/mscan/mscan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/mscan/mscan.c
@@ -381,13 +381,12 @@
 	struct net_device *dev = napi->dev;
 	struct mscan_regs __iomem *regs = priv->reg_base;
 	struct net_device_stats *stats = &dev->stats;
-	int npackets = 0;
-	int ret = 1;
+	int work_done = 0;
 	struct sk_buff *skb;
 	struct can_frame *frame;
 	u8 canrflg;
 
-	while (npackets < quota) {
+	while (work_done < quota) {
 		canrflg = in_8(&regs->canrflg);
 		if (!(canrflg & (MSCAN_RXF | MSCAN_ERR_IF)))
 			break;
@@ -408,18 +407,18 @@
 
 		stats->rx_packets++;
 		stats->rx_bytes += frame->can_dlc;
-		npackets++;
+		work_done++;
 		netif_receive_skb(skb);
 	}
 
-	if (!(in_8(&regs->canrflg) & (MSCAN_RXF | MSCAN_ERR_IF))) {
-		napi_complete(&priv->napi);
-		clear_bit(F_RX_PROGRESS, &priv->flags);
-		if (priv->can.state < CAN_STATE_BUS_OFF)
-			out_8(&regs->canrier, priv->shadow_canrier);
-		ret = 0;
+	if (work_done < quota) {
+		if (likely(napi_complete_done(&priv->napi, work_done))) {
+			clear_bit(F_RX_PROGRESS, &priv->flags);
+			if (priv->can.state < CAN_STATE_BUS_OFF)
+				out_8(&regs->canrier, priv->shadow_canrier);
+		}
 	}
-	return ret;
+	return work_done;
 }
 
 static irqreturn_t mscan_isr(int irq, void *dev_id)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/peak_canfd/peak_canfd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/peak_canfd/peak_canfd.c
@@ -232,6 +232,20 @@
 	return pucan_write_cmd(priv);
 }
 
+static int pucan_netif_rx(struct sk_buff *skb, __le32 ts_low, __le32 ts_high)
+{
+	struct skb_shared_hwtstamps *hwts = skb_hwtstamps(skb);
+	u64 ts_us;
+
+	ts_us = (u64)le32_to_cpu(ts_high) << 32;
+	ts_us |= le32_to_cpu(ts_low);
+
+	/* IP core timestamps are µs. */
+	hwts->hwtstamp = ns_to_ktime(ts_us * NSEC_PER_USEC);
+
+	return netif_rx(skb);
+}
+
 /* handle the reception of one CAN frame */
 static int pucan_handle_can_rx(struct peak_canfd_priv *priv,
 			       struct pucan_rx_msg *msg)
@@ -248,8 +262,7 @@
 		cf_len = get_can_dlc(pucan_msg_get_dlc(msg));
 
 	/* if this frame is an echo, */
-	if ((rx_msg_flags & PUCAN_MSG_LOOPED_BACK) &&
-	    !(rx_msg_flags & PUCAN_MSG_SELF_RECEIVE)) {
+	if (rx_msg_flags & PUCAN_MSG_LOOPED_BACK) {
 		unsigned long flags;
 
 		spin_lock_irqsave(&priv->echo_lock, flags);
@@ -263,7 +276,13 @@
 		netif_wake_queue(priv->ndev);
 
 		spin_unlock_irqrestore(&priv->echo_lock, flags);
-		return 0;
+
+		/* if this frame is only an echo, stop here. Otherwise,
+		 * continue to push this application self-received frame into
+		 * its own rx queue.
+		 */
+		if (!(rx_msg_flags & PUCAN_MSG_SELF_RECEIVE))
+			return 0;
 	}
 
 	/* otherwise, it should be pushed into rx fifo */
@@ -299,7 +318,7 @@
 	stats->rx_bytes += cf->len;
 	stats->rx_packets++;
 
-	netif_rx(skb);
+	pucan_netif_rx(skb, msg->ts_low, msg->ts_high);
 
 	return 0;
 }
@@ -393,7 +412,7 @@
 
 	stats->rx_packets++;
 	stats->rx_bytes += cf->can_dlc;
-	netif_rx(skb);
+	pucan_netif_rx(skb, msg->ts_low, msg->ts_high);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/rx-offload.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/rx-offload.c
@@ -272,7 +272,7 @@
 
 	if (skb_queue_len(&offload->skb_queue) >
 	    offload->skb_queue_len_max) {
-		kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 		return -ENOBUFS;
 	}
 
@@ -317,7 +317,7 @@
 {
 	if (skb_queue_len(&offload->skb_queue) >
 	    offload->skb_queue_len_max) {
-		kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 		return -ENOBUFS;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/slcan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/slcan.c
@@ -148,7 +148,7 @@
 	u32 tmpid;
 	char *cmd = sl->rbuff;
 
-	cf.can_id = 0;
+	memset(&cf, 0, sizeof(cf));
 
 	switch (*cmd) {
 	case 'r':
@@ -187,8 +187,6 @@
 	else
 		return;
 
-	*(u64 *) (&cf.data) = 0; /* clear payload */
-
 	/* RTR frames may have a dlc > 0 but they never have any data bytes */
 	if (!(cf.can_id & CAN_RTR_FLAG)) {
 		for (i = 0; i < cf.can_dlc; i++) {
@@ -344,9 +342,16 @@
  */
 static void slcan_write_wakeup(struct tty_struct *tty)
 {
-	struct slcan *sl = tty->disc_data;
+	struct slcan *sl;
+
+	rcu_read_lock();
+	sl = rcu_dereference(tty->disc_data);
+	if (!sl)
+		goto out;
 
 	schedule_work(&sl->tx_work);
+out:
+	rcu_read_unlock();
 }
 
 /* Send a can_frame to a TTY queue. */
@@ -617,7 +622,11 @@
 	sl->tty = NULL;
 	tty->disc_data = NULL;
 	clear_bit(SLF_INUSE, &sl->flags);
+	slc_free_netdev(sl->dev);
+	/* do not call free_netdev before rtnl_unlock */
+	rtnl_unlock();
 	free_netdev(sl->dev);
+	return err;
 
 err_exit:
 	rtnl_unlock();
@@ -643,10 +652,11 @@
 		return;
 
 	spin_lock_bh(&sl->lock);
-	tty->disc_data = NULL;
+	rcu_assign_pointer(tty->disc_data, NULL);
 	sl->tty = NULL;
 	spin_unlock_bh(&sl->lock);
 
+	synchronize_rcu();
 	flush_work(&sl->tx_work);
 
 	/* Flush network side */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/softing/softing_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/softing/softing_main.c
@@ -382,8 +382,13 @@
 
 	/* check or determine and set bittime */
 	ret = open_candev(ndev);
-	if (!ret)
-		ret = softing_startstop(ndev, 1);
+	if (ret)
+		return ret;
+
+	ret = softing_startstop(ndev, 1);
+	if (ret < 0)
+		close_candev(ndev);
+
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/ti_hecc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/ti_hecc.c
@@ -873,7 +873,8 @@
 	priv->base = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(priv->base)) {
 		dev_err(&pdev->dev, "hecc ioremap failed\n");
-		return PTR_ERR(priv->base);
+		err = PTR_ERR(priv->base);
+		goto probe_exit_candev;
 	}
 
 	/* handle hecc-ram memory */
@@ -886,7 +887,8 @@
 	priv->hecc_ram = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(priv->hecc_ram)) {
 		dev_err(&pdev->dev, "hecc-ram ioremap failed\n");
-		return PTR_ERR(priv->hecc_ram);
+		err = PTR_ERR(priv->hecc_ram);
+		goto probe_exit_candev;
 	}
 
 	/* handle mbx memory */
@@ -899,13 +901,14 @@
 	priv->mbx = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(priv->mbx)) {
 		dev_err(&pdev->dev, "mbx ioremap failed\n");
-		return PTR_ERR(priv->mbx);
+		err = PTR_ERR(priv->mbx);
+		goto probe_exit_candev;
 	}
 
 	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
 	if (!irq) {
 		dev_err(&pdev->dev, "No irq resource\n");
-		goto probe_exit;
+		goto probe_exit_candev;
 	}
 
 	priv->ndev = ndev;
@@ -936,7 +939,7 @@
 	err = clk_prepare_enable(priv->clk);
 	if (err) {
 		dev_err(&pdev->dev, "clk_prepare_enable() failed\n");
-		goto probe_exit_clk;
+		goto probe_exit_release_clk;
 	}
 
 	priv->offload.mailbox_read = ti_hecc_mailbox_read;
@@ -945,7 +948,7 @@
 	err = can_rx_offload_add_timestamp(ndev, &priv->offload);
 	if (err) {
 		dev_err(&pdev->dev, "can_rx_offload_add_timestamp() failed\n");
-		goto probe_exit_clk;
+		goto probe_exit_disable_clk;
 	}
 
 	err = register_candev(ndev);
@@ -963,11 +966,13 @@
 
 probe_exit_offload:
 	can_rx_offload_del(&priv->offload);
-probe_exit_clk:
+probe_exit_disable_clk:
+	clk_disable_unprepare(priv->clk);
+probe_exit_release_clk:
 	clk_put(priv->clk);
 probe_exit_candev:
 	free_candev(ndev);
-probe_exit:
+
 	return err;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/gs_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/gs_usb.c
@@ -63,21 +63,27 @@
 };
 
 /* data types passed between host and device */
+
+/* The firmware on the original USB2CAN by Geschwister Schneider
+ * Technologie Entwicklungs- und Vertriebs UG exchanges all data
+ * between the host and the device in host byte order. This is done
+ * with the struct gs_host_config::byte_order member, which is sent
+ * first to indicate the desired byte order.
+ *
+ * The widely used open source firmware candleLight doesn't support
+ * this feature and exchanges the data in little endian byte order.
+ */
 struct gs_host_config {
-	u32 byte_order;
+	__le32 byte_order;
 } __packed;
-/* All data exchanged between host and device is exchanged in host byte order,
- * thanks to the struct gs_host_config byte_order member, which is sent first
- * to indicate the desired byte order.
- */
 
 struct gs_device_config {
 	u8 reserved1;
 	u8 reserved2;
 	u8 reserved3;
 	u8 icount;
-	u32 sw_version;
-	u32 hw_version;
+	__le32 sw_version;
+	__le32 hw_version;
 } __packed;
 
 #define GS_CAN_MODE_NORMAL               0
@@ -87,26 +93,26 @@
 #define GS_CAN_MODE_ONE_SHOT             BIT(3)
 
 struct gs_device_mode {
-	u32 mode;
-	u32 flags;
+	__le32 mode;
+	__le32 flags;
 } __packed;
 
 struct gs_device_state {
-	u32 state;
-	u32 rxerr;
-	u32 txerr;
+	__le32 state;
+	__le32 rxerr;
+	__le32 txerr;
 } __packed;
 
 struct gs_device_bittiming {
-	u32 prop_seg;
-	u32 phase_seg1;
-	u32 phase_seg2;
-	u32 sjw;
-	u32 brp;
+	__le32 prop_seg;
+	__le32 phase_seg1;
+	__le32 phase_seg2;
+	__le32 sjw;
+	__le32 brp;
 } __packed;
 
 struct gs_identify_mode {
-	u32 mode;
+	__le32 mode;
 } __packed;
 
 #define GS_CAN_FEATURE_LISTEN_ONLY      BIT(0)
@@ -117,23 +123,23 @@
 #define GS_CAN_FEATURE_IDENTIFY         BIT(5)
 
 struct gs_device_bt_const {
-	u32 feature;
-	u32 fclk_can;
-	u32 tseg1_min;
-	u32 tseg1_max;
-	u32 tseg2_min;
-	u32 tseg2_max;
-	u32 sjw_max;
-	u32 brp_min;
-	u32 brp_max;
-	u32 brp_inc;
+	__le32 feature;
+	__le32 fclk_can;
+	__le32 tseg1_min;
+	__le32 tseg1_max;
+	__le32 tseg2_min;
+	__le32 tseg2_max;
+	__le32 sjw_max;
+	__le32 brp_min;
+	__le32 brp_max;
+	__le32 brp_inc;
 } __packed;
 
 #define GS_CAN_FLAG_OVERFLOW 1
 
 struct gs_host_frame {
 	u32 echo_id;
-	u32 can_id;
+	__le32 can_id;
 
 	u8 can_dlc;
 	u8 channel;
@@ -329,13 +335,13 @@
 		if (!skb)
 			return;
 
-		cf->can_id = hf->can_id;
+		cf->can_id = le32_to_cpu(hf->can_id);
 
 		cf->can_dlc = get_can_dlc(hf->can_dlc);
 		memcpy(cf->data, hf->data, 8);
 
 		/* ERROR frames tell us information about the controller */
-		if (hf->can_id & CAN_ERR_FLAG)
+		if (le32_to_cpu(hf->can_id) & CAN_ERR_FLAG)
 			gs_update_state(dev, cf);
 
 		netdev->stats.rx_packets++;
@@ -418,11 +424,11 @@
 	if (!dbt)
 		return -ENOMEM;
 
-	dbt->prop_seg = bt->prop_seg;
-	dbt->phase_seg1 = bt->phase_seg1;
-	dbt->phase_seg2 = bt->phase_seg2;
-	dbt->sjw = bt->sjw;
-	dbt->brp = bt->brp;
+	dbt->prop_seg = cpu_to_le32(bt->prop_seg);
+	dbt->phase_seg1 = cpu_to_le32(bt->phase_seg1);
+	dbt->phase_seg2 = cpu_to_le32(bt->phase_seg2);
+	dbt->sjw = cpu_to_le32(bt->sjw);
+	dbt->brp = cpu_to_le32(bt->brp);
 
 	/* request bit timings */
 	rc = usb_control_msg(interface_to_usbdev(intf),
@@ -503,7 +509,7 @@
 
 	cf = (struct can_frame *)skb->data;
 
-	hf->can_id = cf->can_id;
+	hf->can_id = cpu_to_le32(cf->can_id);
 	hf->can_dlc = cf->can_dlc;
 	memcpy(hf->data, cf->data, cf->can_dlc);
 
@@ -573,6 +579,7 @@
 	int rc, i;
 	struct gs_device_mode *dm;
 	u32 ctrlmode;
+	u32 flags = 0;
 
 	rc = open_candev(netdev);
 	if (rc)
@@ -640,24 +647,24 @@
 
 	/* flags */
 	ctrlmode = dev->can.ctrlmode;
-	dm->flags = 0;
 
 	if (ctrlmode & CAN_CTRLMODE_LOOPBACK)
-		dm->flags |= GS_CAN_MODE_LOOP_BACK;
+		flags |= GS_CAN_MODE_LOOP_BACK;
 	else if (ctrlmode & CAN_CTRLMODE_LISTENONLY)
-		dm->flags |= GS_CAN_MODE_LISTEN_ONLY;
+		flags |= GS_CAN_MODE_LISTEN_ONLY;
 
 	/* Controller is not allowed to retry TX
 	 * this mode is unavailable on atmels uc3c hardware
 	 */
 	if (ctrlmode & CAN_CTRLMODE_ONE_SHOT)
-		dm->flags |= GS_CAN_MODE_ONE_SHOT;
+		flags |= GS_CAN_MODE_ONE_SHOT;
 
 	if (ctrlmode & CAN_CTRLMODE_3_SAMPLES)
-		dm->flags |= GS_CAN_MODE_TRIPLE_SAMPLE;
+		flags |= GS_CAN_MODE_TRIPLE_SAMPLE;
 
 	/* finally start device */
-	dm->mode = GS_CAN_MODE_START;
+	dm->mode = cpu_to_le32(GS_CAN_MODE_START);
+	dm->flags = cpu_to_le32(flags);
 	rc = usb_control_msg(interface_to_usbdev(dev->iface),
 			     usb_sndctrlpipe(interface_to_usbdev(dev->iface), 0),
 			     GS_USB_BREQ_MODE,
@@ -737,9 +744,9 @@
 		return -ENOMEM;
 
 	if (do_identify)
-		imode->mode = GS_CAN_IDENTIFY_ON;
+		imode->mode = cpu_to_le32(GS_CAN_IDENTIFY_ON);
 	else
-		imode->mode = GS_CAN_IDENTIFY_OFF;
+		imode->mode = cpu_to_le32(GS_CAN_IDENTIFY_OFF);
 
 	rc = usb_control_msg(interface_to_usbdev(dev->iface),
 			     usb_sndctrlpipe(interface_to_usbdev(dev->iface),
@@ -790,6 +797,7 @@
 	struct net_device *netdev;
 	int rc;
 	struct gs_device_bt_const *bt_const;
+	u32 feature;
 
 	bt_const = kmalloc(sizeof(*bt_const), GFP_KERNEL);
 	if (!bt_const)
@@ -830,14 +838,14 @@
 
 	/* dev settup */
 	strcpy(dev->bt_const.name, "gs_usb");
-	dev->bt_const.tseg1_min = bt_const->tseg1_min;
-	dev->bt_const.tseg1_max = bt_const->tseg1_max;
-	dev->bt_const.tseg2_min = bt_const->tseg2_min;
-	dev->bt_const.tseg2_max = bt_const->tseg2_max;
-	dev->bt_const.sjw_max = bt_const->sjw_max;
-	dev->bt_const.brp_min = bt_const->brp_min;
-	dev->bt_const.brp_max = bt_const->brp_max;
-	dev->bt_const.brp_inc = bt_const->brp_inc;
+	dev->bt_const.tseg1_min = le32_to_cpu(bt_const->tseg1_min);
+	dev->bt_const.tseg1_max = le32_to_cpu(bt_const->tseg1_max);
+	dev->bt_const.tseg2_min = le32_to_cpu(bt_const->tseg2_min);
+	dev->bt_const.tseg2_max = le32_to_cpu(bt_const->tseg2_max);
+	dev->bt_const.sjw_max = le32_to_cpu(bt_const->sjw_max);
+	dev->bt_const.brp_min = le32_to_cpu(bt_const->brp_min);
+	dev->bt_const.brp_max = le32_to_cpu(bt_const->brp_max);
+	dev->bt_const.brp_inc = le32_to_cpu(bt_const->brp_inc);
 
 	dev->udev = interface_to_usbdev(intf);
 	dev->iface = intf;
@@ -854,28 +862,29 @@
 
 	/* can settup */
 	dev->can.state = CAN_STATE_STOPPED;
-	dev->can.clock.freq = bt_const->fclk_can;
+	dev->can.clock.freq = le32_to_cpu(bt_const->fclk_can);
 	dev->can.bittiming_const = &dev->bt_const;
 	dev->can.do_set_bittiming = gs_usb_set_bittiming;
 
 	dev->can.ctrlmode_supported = 0;
 
-	if (bt_const->feature & GS_CAN_FEATURE_LISTEN_ONLY)
+	feature = le32_to_cpu(bt_const->feature);
+	if (feature & GS_CAN_FEATURE_LISTEN_ONLY)
 		dev->can.ctrlmode_supported |= CAN_CTRLMODE_LISTENONLY;
 
-	if (bt_const->feature & GS_CAN_FEATURE_LOOP_BACK)
+	if (feature & GS_CAN_FEATURE_LOOP_BACK)
 		dev->can.ctrlmode_supported |= CAN_CTRLMODE_LOOPBACK;
 
-	if (bt_const->feature & GS_CAN_FEATURE_TRIPLE_SAMPLE)
+	if (feature & GS_CAN_FEATURE_TRIPLE_SAMPLE)
 		dev->can.ctrlmode_supported |= CAN_CTRLMODE_3_SAMPLES;
 
-	if (bt_const->feature & GS_CAN_FEATURE_ONE_SHOT)
+	if (feature & GS_CAN_FEATURE_ONE_SHOT)
 		dev->can.ctrlmode_supported |= CAN_CTRLMODE_ONE_SHOT;
 
 	SET_NETDEV_DEV(netdev, &intf->dev);
 
-	if (dconf->sw_version > 1)
-		if (bt_const->feature & GS_CAN_FEATURE_IDENTIFY)
+	if (le32_to_cpu(dconf->sw_version) > 1)
+		if (feature & GS_CAN_FEATURE_IDENTIFY)
 			netdev->ethtool_ops = &gs_usb_ethtool_ops;
 
 	kfree(bt_const);
@@ -910,7 +919,7 @@
 	if (!hconf)
 		return -ENOMEM;
 
-	hconf->byte_order = 0x0000beef;
+	hconf->byte_order = cpu_to_le32(0x0000beef);
 
 	/* send host config */
 	rc = usb_control_msg(interface_to_usbdev(intf),
@@ -918,7 +927,7 @@
 			     GS_USB_BREQ_HOST_FORMAT,
 			     USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
 			     1,
-			     intf->altsetting[0].desc.bInterfaceNumber,
+			     intf->cur_altsetting->desc.bInterfaceNumber,
 			     hconf,
 			     sizeof(*hconf),
 			     1000);
@@ -941,7 +950,7 @@
 			     GS_USB_BREQ_DEVICE_CONFIG,
 			     USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
 			     1,
-			     intf->altsetting[0].desc.bInterfaceNumber,
+			     intf->cur_altsetting->desc.bInterfaceNumber,
 			     dconf,
 			     sizeof(*dconf),
 			     1000);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
@@ -367,7 +367,7 @@
 	.tseg2_max = 32,
 	.sjw_max = 16,
 	.brp_min = 1,
-	.brp_max = 4096,
+	.brp_max = 8192,
 	.brp_inc = 1,
 };
 
@@ -1590,7 +1590,7 @@
 	struct usb_endpoint_descriptor *ep;
 	int i;
 
-	iface_desc = &dev->intf->altsetting[0];
+	iface_desc = dev->intf->cur_altsetting;
 
 	for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
 		ep = &iface_desc->endpoint[i].desc;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
@@ -608,7 +608,7 @@
 	struct kvaser_cmd *cmd;
 	int err;
 
-	cmd = kmalloc(sizeof(*cmd), GFP_ATOMIC);
+	cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
 	if (!cmd)
 		return -ENOMEM;
 
@@ -1140,7 +1140,7 @@
 	struct kvaser_cmd *cmd;
 	int rc;
 
-	cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+	cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
 	if (!cmd)
 		return -ENOMEM;
 
@@ -1206,7 +1206,7 @@
 	struct kvaser_cmd *cmd;
 	int rc;
 
-	cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+	cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
 	if (!cmd)
 		return -ENOMEM;
 
@@ -1310,7 +1310,7 @@
 	struct usb_endpoint_descriptor *endpoint;
 	int i;
 
-	iface_desc = &dev->intf->altsetting[0];
+	iface_desc = dev->intf->cur_altsetting;
 
 	for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
 		endpoint = &iface_desc->endpoint[i].desc;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/mcba_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/mcba_usb.c
@@ -326,8 +326,6 @@
 	if (!ctx)
 		return NETDEV_TX_BUSY;
 
-	can_put_echo_skb(skb, priv->netdev, ctx->ndx);
-
 	if (cf->can_id & CAN_EFF_FLAG) {
 		/* SIDH    | SIDL                 | EIDH   | EIDL
 		 * 28 - 21 | 20 19 18 x x x 17 16 | 15 - 8 | 7 - 0
@@ -357,6 +355,8 @@
 	if (cf->can_id & CAN_RTR_FLAG)
 		usb_msg.dlc |= MCBA_DLC_RTR_MASK;
 
+	can_put_echo_skb(skb, priv->netdev, ctx->ndx);
+
 	err = mcba_usb_xmit(priv, (struct mcba_usb_msg *)&usb_msg, ctx);
 	if (err)
 		goto xmit_failed;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/peak_usb/pcan_usb_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/peak_usb/pcan_usb_core.c
@@ -130,14 +130,55 @@
 	/* protect from getting time before setting now */
 	if (ktime_to_ns(time_ref->tv_host)) {
 		u64 delta_us;
+		s64 delta_ts = 0;
 
-		delta_us = ts - time_ref->ts_dev_2;
-		if (ts < time_ref->ts_dev_2)
-			delta_us &= (1 << time_ref->adapter->ts_used_bits) - 1;
+		/* General case: dev_ts_1 < dev_ts_2 < ts, with:
+		 *
+		 * - dev_ts_1 = previous sync timestamp
+		 * - dev_ts_2 = last sync timestamp
+		 * - ts = event timestamp
+		 * - ts_period = known sync period (theoretical)
+		 *             ~ dev_ts2 - dev_ts1
+		 * *but*:
+		 *
+		 * - time counters wrap (see adapter->ts_used_bits)
+		 * - sometimes, dev_ts_1 < ts < dev_ts2
+		 *
+		 * "normal" case (sync time counters increase):
+		 * must take into account case when ts wraps (tsw)
+		 *
+		 *      < ts_period > <          >
+		 *     |             |            |
+		 *  ---+--------+----+-------0-+--+-->
+		 *     ts_dev_1 |    ts_dev_2  |
+		 *              ts             tsw
+		 */
+		if (time_ref->ts_dev_1 < time_ref->ts_dev_2) {
+			/* case when event time (tsw) wraps */
+			if (ts < time_ref->ts_dev_1)
+				delta_ts = BIT_ULL(time_ref->adapter->ts_used_bits);
 
-		delta_us += time_ref->ts_total;
+		/* Otherwise, sync time counter (ts_dev_2) has wrapped:
+		 * handle case when event time (tsn) hasn't.
+		 *
+		 *      < ts_period > <          >
+		 *     |             |            |
+		 *  ---+--------+--0-+---------+--+-->
+		 *     ts_dev_1 |    ts_dev_2  |
+		 *              tsn            ts
+		 */
+		} else if (time_ref->ts_dev_1 < ts) {
+			delta_ts = -BIT_ULL(time_ref->adapter->ts_used_bits);
+		}
 
-		delta_us *= time_ref->adapter->us_per_ts_scale;
+		/* add delay between last sync and event timestamps */
+		delta_ts += (signed int)(ts - time_ref->ts_dev_2);
+
+		/* add time from beginning to last sync */
+		delta_ts += time_ref->ts_total;
+
+		/* convert ticks number into microseconds */
+		delta_us = delta_ts * time_ref->adapter->us_per_ts_scale;
 		delta_us >>= time_ref->adapter->us_per_ts_shift;
 
 		*time = ktime_add_us(time_ref->tv_host_0, delta_us);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
@@ -468,12 +468,18 @@
 				     struct pucan_msg *rx_msg)
 {
 	struct pucan_rx_msg *rm = (struct pucan_rx_msg *)rx_msg;
-	struct peak_usb_device *dev = usb_if->dev[pucan_msg_get_channel(rm)];
-	struct net_device *netdev = dev->netdev;
+	struct peak_usb_device *dev;
+	struct net_device *netdev;
 	struct canfd_frame *cfd;
 	struct sk_buff *skb;
 	const u16 rx_msg_flags = le16_to_cpu(rm->flags);
 
+	if (pucan_msg_get_channel(rm) >= ARRAY_SIZE(usb_if->dev))
+		return -ENOMEM;
+
+	dev = usb_if->dev[pucan_msg_get_channel(rm)];
+	netdev = dev->netdev;
+
 	if (rx_msg_flags & PUCAN_MSG_EXT_DATA_LEN) {
 		/* CANFD frame case */
 		skb = alloc_canfd_skb(netdev, &cfd);
@@ -506,11 +512,11 @@
 	else
 		memcpy(cfd->data, rm->d, cfd->len);
 
-	peak_usb_netif_rx(skb, &usb_if->time_ref, le32_to_cpu(rm->ts_low));
-
 	netdev->stats.rx_packets++;
 	netdev->stats.rx_bytes += cfd->len;
 
+	peak_usb_netif_rx(skb, &usb_if->time_ref, le32_to_cpu(rm->ts_low));
+
 	return 0;
 }
 
@@ -519,15 +525,21 @@
 				     struct pucan_msg *rx_msg)
 {
 	struct pucan_status_msg *sm = (struct pucan_status_msg *)rx_msg;
-	struct peak_usb_device *dev = usb_if->dev[pucan_stmsg_get_channel(sm)];
-	struct pcan_usb_fd_device *pdev =
-			container_of(dev, struct pcan_usb_fd_device, dev);
+	struct pcan_usb_fd_device *pdev;
 	enum can_state new_state = CAN_STATE_ERROR_ACTIVE;
 	enum can_state rx_state, tx_state;
-	struct net_device *netdev = dev->netdev;
+	struct peak_usb_device *dev;
+	struct net_device *netdev;
 	struct can_frame *cf;
 	struct sk_buff *skb;
 
+	if (pucan_stmsg_get_channel(sm) >= ARRAY_SIZE(usb_if->dev))
+		return -ENOMEM;
+
+	dev = usb_if->dev[pucan_stmsg_get_channel(sm)];
+	pdev = container_of(dev, struct pcan_usb_fd_device, dev);
+	netdev = dev->netdev;
+
 	/* nothing should be sent while in BUS_OFF state */
 	if (dev->can.state == CAN_STATE_BUS_OFF)
 		return 0;
@@ -566,11 +578,11 @@
 	if (!skb)
 		return -ENOMEM;
 
-	peak_usb_netif_rx(skb, &usb_if->time_ref, le32_to_cpu(sm->ts_low));
-
 	netdev->stats.rx_packets++;
 	netdev->stats.rx_bytes += cf->can_dlc;
 
+	peak_usb_netif_rx(skb, &usb_if->time_ref, le32_to_cpu(sm->ts_low));
+
 	return 0;
 }
 
@@ -579,9 +591,14 @@
 				    struct pucan_msg *rx_msg)
 {
 	struct pucan_error_msg *er = (struct pucan_error_msg *)rx_msg;
-	struct peak_usb_device *dev = usb_if->dev[pucan_ermsg_get_channel(er)];
-	struct pcan_usb_fd_device *pdev =
-			container_of(dev, struct pcan_usb_fd_device, dev);
+	struct pcan_usb_fd_device *pdev;
+	struct peak_usb_device *dev;
+
+	if (pucan_ermsg_get_channel(er) >= ARRAY_SIZE(usb_if->dev))
+		return -EINVAL;
+
+	dev = usb_if->dev[pucan_ermsg_get_channel(er)];
+	pdev = container_of(dev, struct pcan_usb_fd_device, dev);
 
 	/* keep a trace of tx and rx error counters for later use */
 	pdev->bec.txerr = er->tx_err_cnt;
@@ -595,11 +612,17 @@
 				      struct pucan_msg *rx_msg)
 {
 	struct pcan_ufd_ovr_msg *ov = (struct pcan_ufd_ovr_msg *)rx_msg;
-	struct peak_usb_device *dev = usb_if->dev[pufd_omsg_get_channel(ov)];
-	struct net_device *netdev = dev->netdev;
+	struct peak_usb_device *dev;
+	struct net_device *netdev;
 	struct can_frame *cf;
 	struct sk_buff *skb;
 
+	if (pufd_omsg_get_channel(ov) >= ARRAY_SIZE(usb_if->dev))
+		return -EINVAL;
+
+	dev = usb_if->dev[pufd_omsg_get_channel(ov)];
+	netdev = dev->netdev;
+
 	/* allocate an skb to store the error frame */
 	skb = alloc_can_err_skb(netdev, &cf);
 	if (!skb)
@@ -716,6 +739,9 @@
 	u16 tx_msg_size, tx_msg_flags;
 	u8 can_dlc;
 
+	if (cfd->len > CANFD_MAX_DLEN)
+		return -EINVAL;
+
 	tx_msg_size = ALIGN(sizeof(struct pucan_tx_msg) + cfd->len, 4);
 	tx_msg->size = cpu_to_le16(tx_msg_size);
 	tx_msg->type = cpu_to_le16(PUCAN_MSG_CAN_TX);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/usb/ucan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/usb/ucan.c
@@ -792,7 +792,7 @@
 			  up);
 
 	usb_anchor_urb(urb, &up->rx_urbs);
-	ret = usb_submit_urb(urb, GFP_KERNEL);
+	ret = usb_submit_urb(urb, GFP_ATOMIC);
 
 	if (ret < 0) {
 		netdev_err(up->netdev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/vxcan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/vxcan.c
@@ -39,6 +39,7 @@
 	struct net_device *peer;
 	struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
 	struct net_device_stats *peerstats, *srcstats = &dev->stats;
+	u8 len;
 
 	if (can_dropped_invalid_skb(dev, skb))
 		return NETDEV_TX_OK;
@@ -61,12 +62,13 @@
 	skb->dev        = peer;
 	skb->ip_summed  = CHECKSUM_UNNECESSARY;
 
+	len = cfd->len;
 	if (netif_rx_ni(skb) == NET_RX_SUCCESS) {
 		srcstats->tx_packets++;
-		srcstats->tx_bytes += cfd->len;
+		srcstats->tx_bytes += len;
 		peerstats = &peer->stats;
 		peerstats->rx_packets++;
-		peerstats->rx_bytes += cfd->len;
+		peerstats->rx_bytes += len;
 	}
 
 out_unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/can/xilinx_can.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/can/xilinx_can.c
@@ -60,6 +60,8 @@
 	XCAN_TXMSG_BASE_OFFSET	= 0x0100, /* TX Message Space */
 	XCAN_RXMSG_BASE_OFFSET	= 0x1100, /* RX Message Space */
 	XCAN_RXMSG_2_BASE_OFFSET	= 0x2100, /* RX Message Space */
+	XCAN_AFR_2_MASK_OFFSET	= 0x0A00, /* Acceptance Filter MASK */
+	XCAN_AFR_2_ID_OFFSET	= 0x0A04, /* Acceptance Filter ID */
 };
 
 #define XCAN_FRAME_ID_OFFSET(frame_base)	((frame_base) + 0x00)
@@ -1382,7 +1384,7 @@
 	if (ret < 0) {
 		netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n",
 			   __func__, ret);
-		return ret;
+		goto err;
 	}
 
 	ret = request_irq(ndev->irq, xcan_interrupt, priv->irq_flags,
@@ -1466,6 +1468,7 @@
 	if (ret < 0) {
 		netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n",
 			   __func__, ret);
+		pm_runtime_put(priv->dev);
 		return ret;
 	}
 
@@ -1781,7 +1784,7 @@
 	if (ret < 0) {
 		netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n",
 			   __func__, ret);
-		goto err_pmdisable;
+		goto err_disableclks;
 	}
 
 	if (priv->read_reg(priv, XCAN_SR_OFFSET) != XCAN_SR_CONFIG_MASK) {
@@ -1803,6 +1806,11 @@
 
 	pm_runtime_put(&pdev->dev);
 
+	if (priv->devtype.flags & XCAN_FLAG_CANFD_2) {
+		priv->write_reg(priv, XCAN_AFR_2_ID_OFFSET, 0x00000000);
+		priv->write_reg(priv, XCAN_AFR_2_MASK_OFFSET, 0x00000000);
+	}
+
 	netdev_dbg(ndev, "reg_base=0x%p irq=%d clock=%d, tx buffers: actual %d, using %d\n",
 		   priv->reg_base, ndev->irq, priv->can.clock.freq,
 		   hw_tx_max, priv->tx_max);
@@ -1811,7 +1819,6 @@
 
 err_disableclks:
 	pm_runtime_put(priv->dev);
-err_pmdisable:
 	pm_runtime_disable(&pdev->dev);
 err_free:
 	free_candev(ndev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/Kconfig
@@ -77,6 +77,7 @@
 config NET_DSA_SMSC_LAN9303
 	tristate
 	select NET_DSA_TAG_LAN9303
+	select REGMAP
 	---help---
 	  This enables support for the SMSC/Microchip LAN9303 3 port ethernet
 	  switch chips.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/b53/b53_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/b53/b53_common.c
@@ -347,7 +347,7 @@
 	 * frames should be flooded or not.
 	 */
 	b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
-	mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN;
+	mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN;
 	b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
 }
 
@@ -526,6 +526,8 @@
 
 	cpu_port = ds->ports[port].cpu_dp->index;
 
+	b53_br_egress_floods(ds, port, true, true);
+
 	if (dev->ops->irq_enable)
 		ret = dev->ops->irq_enable(dev, port);
 	if (ret)
@@ -641,6 +643,8 @@
 	b53_write8(dev, B53_CTRL_PAGE, B53_PORT_CTRL(port), port_ctrl);
 
 	b53_brcm_hdr_setup(dev->ds, port);
+
+	b53_br_egress_floods(dev->ds, port, true, true);
 }
 
 static void b53_enable_mib(struct b53_device *dev)
@@ -676,7 +680,7 @@
 		b53_do_vlan_op(dev, VTA_CMD_CLEAR);
 	}
 
-	b53_enable_vlan(dev, false, ds->vlan_filtering);
+	b53_enable_vlan(dev, dev->vlan_enabled, ds->vlan_filtering);
 
 	b53_for_each_port(dev, i)
 		b53_write16(dev, B53_VLAN_PAGE,
@@ -1326,7 +1330,7 @@
 	if ((is5325(dev) || is5365(dev)) && vlan->vid_begin == 0)
 		return -EOPNOTSUPP;
 
-	if (vlan->vid_end > dev->num_vlans)
+	if (vlan->vid_end >= dev->num_vlans)
 		return -ERANGE;
 
 	b53_enable_vlan(dev, true, ds->vlan_filtering);
@@ -1349,6 +1353,9 @@
 
 		b53_get_vlan_entry(dev, vid, vl);
 
+		if (vid == 0 && vid == b53_default_pvid(dev))
+			untagged = true;
+
 		vl->members |= BIT(port);
 		if (untagged && !dsa_is_cpu_port(ds, port))
 			vl->untag |= BIT(port);
@@ -1434,6 +1441,10 @@
 		reg |= ARLTBL_RW;
 	else
 		reg &= ~ARLTBL_RW;
+	if (dev->vlan_enabled)
+		reg &= ~ARLTBL_IVL_SVL_SELECT;
+	else
+		reg |= ARLTBL_IVL_SVL_SELECT;
 	b53_write8(dev, B53_ARLIO_PAGE, B53_ARLTBL_RW_CTRL, reg);
 
 	return b53_arl_op_wait(dev);
@@ -1443,6 +1454,7 @@
 			u16 vid, struct b53_arl_entry *ent, u8 *idx,
 			bool is_valid)
 {
+	DECLARE_BITMAP(free_bins, B53_ARLTBL_MAX_BIN_ENTRIES);
 	unsigned int i;
 	int ret;
 
@@ -1450,6 +1462,8 @@
 	if (ret)
 		return ret;
 
+	bitmap_zero(free_bins, dev->num_arl_entries);
+
 	/* Read the bins */
 	for (i = 0; i < dev->num_arl_entries; i++) {
 		u64 mac_vid;
@@ -1461,13 +1475,24 @@
 			   B53_ARLTBL_DATA_ENTRY(i), &fwd_entry);
 		b53_arl_to_entry(ent, mac_vid, fwd_entry);
 
-		if (!(fwd_entry & ARLTBL_VALID))
+		if (!(fwd_entry & ARLTBL_VALID)) {
+			set_bit(i, free_bins);
 			continue;
+		}
 		if ((mac_vid & ARLTBL_MAC_MASK) != mac)
 			continue;
+		if (dev->vlan_enabled &&
+		    ((mac_vid >> ARLTBL_VID_S) & ARLTBL_VID_MASK) != vid)
+			continue;
 		*idx = i;
+		return 0;
 	}
 
+	if (bitmap_weight(free_bins, dev->num_arl_entries) == 0)
+		return -ENOSPC;
+
+	*idx = find_first_bit(free_bins, dev->num_arl_entries);
+
 	return -ENOENT;
 }
 
@@ -1497,15 +1522,27 @@
 	if (op)
 		return ret;
 
-	/* We could not find a matching MAC, so reset to a new entry */
-	if (ret) {
+	switch (ret) {
+	case -ETIMEDOUT:
+		return ret;
+	case -ENOSPC:
+		dev_dbg(dev->dev, "{%pM,%.4d} no space left in ARL\n",
+			addr, vid);
+		return is_valid ? ret : 0;
+	case -ENOENT:
+		/* We could not find a matching MAC, so reset to a new entry */
+		dev_dbg(dev->dev, "{%pM,%.4d} not found, using idx: %d\n",
+			addr, vid, idx);
 		fwd_entry = 0;
-		idx = 1;
+		break;
+	default:
+		dev_dbg(dev->dev, "{%pM,%.4d} found, using idx: %d\n",
+			addr, vid, idx);
+		break;
 	}
 
 	memset(&ent, 0, sizeof(ent));
 	ent.port = port;
-	ent.is_valid = is_valid;
 	ent.vid = vid;
 	ent.is_static = true;
 	memcpy(ent.mac, addr, ETH_ALEN);
@@ -1766,19 +1803,26 @@
 	struct b53_device *dev = ds->priv;
 	u16 uc, mc;
 
-	b53_read16(dev, B53_CTRL_PAGE, B53_UC_FWD_EN, &uc);
+	b53_read16(dev, B53_CTRL_PAGE, B53_UC_FLOOD_MASK, &uc);
 	if (unicast)
 		uc |= BIT(port);
 	else
 		uc &= ~BIT(port);
-	b53_write16(dev, B53_CTRL_PAGE, B53_UC_FWD_EN, uc);
+	b53_write16(dev, B53_CTRL_PAGE, B53_UC_FLOOD_MASK, uc);
+
+	b53_read16(dev, B53_CTRL_PAGE, B53_MC_FLOOD_MASK, &mc);
+	if (multicast)
+		mc |= BIT(port);
+	else
+		mc &= ~BIT(port);
+	b53_write16(dev, B53_CTRL_PAGE, B53_MC_FLOOD_MASK, mc);
 
-	b53_read16(dev, B53_CTRL_PAGE, B53_MC_FWD_EN, &mc);
+	b53_read16(dev, B53_CTRL_PAGE, B53_IPMC_FLOOD_MASK, &mc);
 	if (multicast)
 		mc |= BIT(port);
 	else
 		mc &= ~BIT(port);
-	b53_write16(dev, B53_CTRL_PAGE, B53_MC_FWD_EN, mc);
+	b53_write16(dev, B53_CTRL_PAGE, B53_IPMC_FLOOD_MASK, mc);
 
 	return 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/b53/b53_regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/b53/b53_regs.h
@@ -292,6 +292,7 @@
 /* ARL Table Read/Write Register (8 bit) */
 #define B53_ARLTBL_RW_CTRL		0x00
 #define    ARLTBL_RW			BIT(0)
+#define    ARLTBL_IVL_SVL_SELECT	BIT(6)
 #define    ARLTBL_START_DONE		BIT(7)
 
 /* MAC Address Index Register (48 bit) */
@@ -304,7 +305,7 @@
  *
  * BCM5325 and BCM5365 share most definitions below
  */
-#define B53_ARLTBL_MAC_VID_ENTRY(n)	(0x10 * (n))
+#define B53_ARLTBL_MAC_VID_ENTRY(n)	((0x10 * (n)) + 0x10)
 #define   ARLTBL_MAC_MASK		0xffffffffffffULL
 #define   ARLTBL_VID_S			48
 #define   ARLTBL_VID_MASK_25		0xff
@@ -316,13 +317,16 @@
 #define   ARLTBL_VALID_25		BIT(63)
 
 /* ARL Table Data Entry N Registers (32 bit) */
-#define B53_ARLTBL_DATA_ENTRY(n)	((0x10 * (n)) + 0x08)
+#define B53_ARLTBL_DATA_ENTRY(n)	((0x10 * (n)) + 0x18)
 #define   ARLTBL_DATA_PORT_ID_MASK	0x1ff
 #define   ARLTBL_TC(tc)			((3 & tc) << 11)
 #define   ARLTBL_AGE			BIT(14)
 #define   ARLTBL_STATIC			BIT(15)
 #define   ARLTBL_VALID			BIT(16)
 
+/* Maximum number of bin entries in the ARL for all switches */
+#define B53_ARLTBL_MAX_BIN_ENTRIES	4
+
 /* ARL Search Control Register (8 bit) */
 #define B53_ARL_SRCH_CTL		0x50
 #define B53_ARL_SRCH_CTL_25		0x20
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/bcm_sf2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/bcm_sf2.c
@@ -69,6 +69,7 @@
 		/* Force link status for IMP port */
 		reg = core_readl(priv, offset);
 		reg |= (MII_SW_OR | LINK_STS);
+		reg &= ~GMII_SPEED_UP_2G;
 		core_writel(priv, reg, offset);
 
 		/* Enable Broadcast, Multicast, Unicast forwarding to IMP port */
@@ -420,15 +421,19 @@
 	/* Find our integrated MDIO bus node */
 	dn = of_find_compatible_node(NULL, NULL, "brcm,unimac-mdio");
 	priv->master_mii_bus = of_mdio_find_bus(dn);
-	if (!priv->master_mii_bus)
+	if (!priv->master_mii_bus) {
+		of_node_put(dn);
 		return -EPROBE_DEFER;
+	}
 
 	get_device(&priv->master_mii_bus->dev);
 	priv->master_mii_dn = dn;
 
 	priv->slave_mii_bus = devm_mdiobus_alloc(ds->dev);
-	if (!priv->slave_mii_bus)
+	if (!priv->slave_mii_bus) {
+		of_node_put(dn);
 		return -ENOMEM;
+	}
 
 	priv->slave_mii_bus->priv = priv;
 	priv->slave_mii_bus->name = "sf2 slave mii";
@@ -458,7 +463,7 @@
 	priv->slave_mii_bus->parent = ds->dev->parent;
 	priv->slave_mii_bus->phy_mask = ~priv->indir_phy_mask;
 
-	err = of_mdiobus_register(priv->slave_mii_bus, dn);
+	err = mdiobus_register(priv->slave_mii_bus);
 	if (err && dn)
 		of_node_put(dn);
 
@@ -1052,6 +1057,7 @@
 	const struct bcm_sf2_of_data *data;
 	struct b53_platform_data *pdata;
 	struct dsa_switch_ops *ops;
+	struct device_node *ports;
 	struct bcm_sf2_priv *priv;
 	struct b53_device *dev;
 	struct dsa_switch *ds;
@@ -1114,7 +1120,13 @@
 	set_bit(0, priv->cfp.used);
 	set_bit(0, priv->cfp.unique);
 
-	bcm_sf2_identify_ports(priv, dn->child);
+	/* Balance of_node_put() done by of_find_node_by_name() */
+	of_node_get(dn);
+	ports = of_find_node_by_name(dn, "ports");
+	if (ports) {
+		bcm_sf2_identify_ports(priv, ports);
+		of_node_put(ports);
+	}
 
 	priv->irq0 = irq_of_parse_and_map(dn, 0);
 	priv->irq1 = irq_of_parse_and_map(dn, 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/bcm_sf2_cfp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/bcm_sf2_cfp.c
@@ -358,7 +358,7 @@
 		return -EINVAL;
 	}
 
-	ip_frag = be32_to_cpu(fs->m_ext.data[0]);
+	ip_frag = !!(be32_to_cpu(fs->h_ext.data[0]) & 1);
 
 	/* Locate the first rule available */
 	if (fs->location == RX_CLS_LOC_ANY)
@@ -569,7 +569,7 @@
 
 		if (rule->fs.flow_type != fs->flow_type ||
 		    rule->fs.ring_cookie != fs->ring_cookie ||
-		    rule->fs.m_ext.data[0] != fs->m_ext.data[0])
+		    rule->fs.h_ext.data[0] != fs->h_ext.data[0])
 			continue;
 
 		switch (fs->flow_type & ~FLOW_EXT) {
@@ -621,7 +621,7 @@
 		return -EINVAL;
 	}
 
-	ip_frag = be32_to_cpu(fs->m_ext.data[0]);
+	ip_frag = !!(be32_to_cpu(fs->h_ext.data[0]) & 1);
 
 	layout = &udf_tcpip6_layout;
 	slice_num = bcm_sf2_get_slice_number(layout, 0);
@@ -882,17 +882,14 @@
 	     fs->m_ext.data[1]))
 		return -EINVAL;
 
-	if (fs->location != RX_CLS_LOC_ANY && fs->location >= CFP_NUM_RULES)
+	if (fs->location != RX_CLS_LOC_ANY &&
+	    fs->location > bcm_sf2_cfp_rule_size(priv))
 		return -EINVAL;
 
 	if (fs->location != RX_CLS_LOC_ANY &&
 	    test_bit(fs->location, priv->cfp.used))
 		return -EBUSY;
 
-	if (fs->location != RX_CLS_LOC_ANY &&
-	    fs->location > bcm_sf2_cfp_rule_size(priv))
-		return -EINVAL;
-
 	ret = bcm_sf2_cfp_rule_cmp(priv, port, fs);
 	if (ret == 0)
 		return -EEXIST;
@@ -973,7 +970,7 @@
 	struct cfp_rule *rule;
 	int ret;
 
-	if (loc >= CFP_NUM_RULES)
+	if (loc > bcm_sf2_cfp_rule_size(priv))
 		return -EINVAL;
 
 	/* Refuse deleting unused rules, and those that are not unique since
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/dsa_loop.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/dsa_loop.c
@@ -356,6 +356,7 @@
 }
 module_exit(dsa_loop_exit);
 
+MODULE_SOFTDEP("pre: dsa_loop_bdinfo");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Florian Fainelli");
 MODULE_DESCRIPTION("DSA loopback driver");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/lantiq_gswip.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/lantiq_gswip.c
@@ -26,6 +26,7 @@
  */
 
 #include <linux/clk.h>
+#include <linux/delay.h>
 #include <linux/etherdevice.h>
 #include <linux/firmware.h>
 #include <linux/if_bridge.h>
@@ -91,9 +92,7 @@
 					 GSWIP_MDIO_PHY_FDUP_MASK)
 
 /* GSWIP MII Registers */
-#define GSWIP_MII_CFG0			0x00
-#define GSWIP_MII_CFG1			0x02
-#define GSWIP_MII_CFG5			0x04
+#define GSWIP_MII_CFGp(p)		(0x2 * (p))
 #define  GSWIP_MII_CFG_EN		BIT(14)
 #define  GSWIP_MII_CFG_LDCLKDIS		BIT(12)
 #define  GSWIP_MII_CFG_MODE_MIIP	0x0
@@ -391,17 +390,9 @@
 static void gswip_mii_mask_cfg(struct gswip_priv *priv, u32 clear, u32 set,
 			       int port)
 {
-	switch (port) {
-	case 0:
-		gswip_mii_mask(priv, clear, set, GSWIP_MII_CFG0);
-		break;
-	case 1:
-		gswip_mii_mask(priv, clear, set, GSWIP_MII_CFG1);
-		break;
-	case 5:
-		gswip_mii_mask(priv, clear, set, GSWIP_MII_CFG5);
-		break;
-	}
+	/* There's no MII_CFG register for the CPU port */
+	if (!dsa_is_cpu_port(priv->ds, port))
+		gswip_mii_mask(priv, clear, set, GSWIP_MII_CFGp(port));
 }
 
 static void gswip_mii_mask_pcdu(struct gswip_priv *priv, u32 clear, u32 set,
@@ -805,9 +796,8 @@
 	gswip_mdio_mask(priv, 0xff, 0x09, GSWIP_MDIO_MDC_CFG1);
 
 	/* Disable the xMII link */
-	gswip_mii_mask_cfg(priv, GSWIP_MII_CFG_EN, 0, 0);
-	gswip_mii_mask_cfg(priv, GSWIP_MII_CFG_EN, 0, 1);
-	gswip_mii_mask_cfg(priv, GSWIP_MII_CFG_EN, 0, 5);
+	for (i = 0; i < priv->hw_info->max_ports; i++)
+		gswip_mii_mask_cfg(priv, GSWIP_MII_CFG_EN, 0, i);
 
 	/* enable special tag insertion on cpu port */
 	gswip_switch_mask(priv, 0, GSWIP_FDMA_PCTRL_STEN,
@@ -1429,11 +1419,12 @@
 	phylink_set(mask, Pause);
 	phylink_set(mask, Asym_Pause);
 
-	/* With the exclusion of MII and Reverse MII, we support Gigabit,
-	 * including Half duplex
+	/* With the exclusion of MII, Reverse MII and Reduced MII, we
+	 * support Gigabit, including Half duplex
 	 */
 	if (state->interface != PHY_INTERFACE_MODE_MII &&
-	    state->interface != PHY_INTERFACE_MODE_REVMII) {
+	    state->interface != PHY_INTERFACE_MODE_REVMII &&
+	    state->interface != PHY_INTERFACE_MODE_RMII) {
 		phylink_set(mask, 1000baseT_Full);
 		phylink_set(mask, 1000baseT_Half);
 	}
@@ -1451,7 +1442,8 @@
 
 unsupported:
 	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-	dev_err(ds->dev, "Unsupported interface: %d\n", state->interface);
+	dev_err(ds->dev, "Unsupported interface '%s' for port %d\n",
+		phy_modes(state->interface), port);
 	return;
 }
 
@@ -1520,9 +1512,7 @@
 {
 	struct gswip_priv *priv = ds->priv;
 
-	/* Enable the xMII interface only for the external PHY */
-	if (interface != PHY_INTERFACE_MODE_INTERNAL)
-		gswip_mii_mask_cfg(priv, 0, GSWIP_MII_CFG_EN, port);
+	gswip_mii_mask_cfg(priv, 0, GSWIP_MII_CFG_EN, port);
 }
 
 static void gswip_get_strings(struct dsa_switch *ds, int port, u32 stringset,
@@ -1817,6 +1807,16 @@
 		i++;
 	}
 
+	/* The standalone PHY11G requires 300ms to be fully
+	 * initialized and ready for any MDIO communication after being
+	 * taken out of reset. For the SoC-internal GPHY variant there
+	 * is no (known) documentation for the minimum time after a
+	 * reset. Use the same value as for the standalone variant as
+	 * some users have reported internal PHYs not being detected
+	 * without any delay.
+	 */
+	msleep(300);
+
 	return 0;
 
 remove_gphy:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/microchip/ksz8795.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/microchip/ksz8795.c
@@ -1267,6 +1267,9 @@
 			return -ENOMEM;
 	}
 
+	/* set the real number of ports */
+	dev->ds->num_ports = dev->port_cnt;
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/microchip/ksz9477.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/microchip/ksz9477.c
@@ -973,23 +973,6 @@
 			     PORT_MIRROR_SNIFFER, false);
 }
 
-static void ksz9477_phy_setup(struct ksz_device *dev, int port,
-			      struct phy_device *phy)
-{
-	/* Only apply to port with PHY. */
-	if (port >= dev->phy_port_cnt)
-		return;
-
-	/* The MAC actually cannot run in 1000 half-duplex mode. */
-	phy_remove_link_mode(phy,
-			     ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
-
-	/* PHY does not support gigabit. */
-	if (!(dev->features & GBIT_SUPPORT))
-		phy_remove_link_mode(phy,
-				     ETHTOOL_LINK_MODE_1000baseT_Full_BIT);
-}
-
 static bool ksz9477_get_gbit(struct ksz_device *dev, u8 data)
 {
 	bool gbit;
@@ -1587,6 +1570,9 @@
 			return -ENOMEM;
 	}
 
+	/* set the real number of ports */
+	dev->ds->num_ports = dev->port_cnt;
+
 	return 0;
 }
 
@@ -1599,7 +1585,6 @@
 	.get_port_addr = ksz9477_get_port_addr,
 	.cfg_port_member = ksz9477_cfg_port_member,
 	.flush_dyn_mac_table = ksz9477_flush_dyn_mac_table,
-	.phy_setup = ksz9477_phy_setup,
 	.port_setup = ksz9477_port_setup,
 	.r_mib_cnt = ksz9477_r_mib_cnt,
 	.r_mib_pkt = ksz9477_r_mib_pkt,
@@ -1613,7 +1598,29 @@
 
 int ksz9477_switch_register(struct ksz_device *dev)
 {
-	return ksz_switch_register(dev, &ksz9477_dev_ops);
+	int ret, i;
+	struct phy_device *phydev;
+
+	ret = ksz_switch_register(dev, &ksz9477_dev_ops);
+	if (ret)
+		return ret;
+
+	for (i = 0; i < dev->phy_port_cnt; ++i) {
+		if (!dsa_is_user_port(dev->ds, i))
+			continue;
+
+		phydev = dsa_to_port(dev->ds, i)->slave->phydev;
+
+		/* The MAC actually cannot run in 1000 half-duplex mode. */
+		phy_remove_link_mode(phydev,
+				     ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
+
+		/* PHY does not support gigabit. */
+		if (!(dev->features & GBIT_SUPPORT))
+			phy_remove_link_mode(phydev,
+					     ETHTOOL_LINK_MODE_1000baseT_Full_BIT);
+	}
+	return ret;
 }
 EXPORT_SYMBOL(ksz9477_switch_register);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/microchip/ksz9477_spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/microchip/ksz9477_spi.c
@@ -101,6 +101,12 @@
 
 module_spi_driver(ksz9477_spi_driver);
 
+MODULE_ALIAS("spi:ksz9477");
+MODULE_ALIAS("spi:ksz9897");
+MODULE_ALIAS("spi:ksz9893");
+MODULE_ALIAS("spi:ksz9563");
+MODULE_ALIAS("spi:ksz8563");
+MODULE_ALIAS("spi:ksz9567");
 MODULE_AUTHOR("Woojung Huh <Woojung.Huh@microchip.com>");
 MODULE_DESCRIPTION("Microchip KSZ9477 Series Switch SPI access Driver");
 MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/microchip/ksz_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/microchip/ksz_common.c
@@ -366,8 +366,6 @@
 
 	/* setup slave port */
 	dev->dev_ops->port_setup(dev, port, false);
-	if (dev->dev_ops->phy_setup)
-		dev->dev_ops->phy_setup(dev, port, phy);
 
 	/* port_stp_state_set() will be called after to enable the port so
 	 * there is no need to do anything.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/microchip/ksz_common.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/microchip/ksz_common.h
@@ -120,8 +120,6 @@
 	u32 (*get_port_addr)(int port, int offset);
 	void (*cfg_port_member)(struct ksz_device *dev, int port, u8 member);
 	void (*flush_dyn_mac_table)(struct ksz_device *dev, int port);
-	void (*phy_setup)(struct ksz_device *dev, int port,
-			  struct phy_device *phy);
 	void (*port_cleanup)(struct ksz_device *dev, int port);
 	void (*port_setup)(struct ksz_device *dev, int port, bool cpu_port);
 	void (*r_phy)(struct ksz_device *dev, u16 phy, u16 reg, u16 *val);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mt7530.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mt7530.c
@@ -67,58 +67,6 @@
 };
 
 static int
-mt7623_trgmii_write(struct mt7530_priv *priv,  u32 reg, u32 val)
-{
-	int ret;
-
-	ret =  regmap_write(priv->ethernet, TRGMII_BASE(reg), val);
-	if (ret < 0)
-		dev_err(priv->dev,
-			"failed to priv write register\n");
-	return ret;
-}
-
-static u32
-mt7623_trgmii_read(struct mt7530_priv *priv, u32 reg)
-{
-	int ret;
-	u32 val;
-
-	ret = regmap_read(priv->ethernet, TRGMII_BASE(reg), &val);
-	if (ret < 0) {
-		dev_err(priv->dev,
-			"failed to priv read register\n");
-		return ret;
-	}
-
-	return val;
-}
-
-static void
-mt7623_trgmii_rmw(struct mt7530_priv *priv, u32 reg,
-		  u32 mask, u32 set)
-{
-	u32 val;
-
-	val = mt7623_trgmii_read(priv, reg);
-	val &= ~mask;
-	val |= set;
-	mt7623_trgmii_write(priv, reg, val);
-}
-
-static void
-mt7623_trgmii_set(struct mt7530_priv *priv, u32 reg, u32 val)
-{
-	mt7623_trgmii_rmw(priv, reg, 0, val);
-}
-
-static void
-mt7623_trgmii_clear(struct mt7530_priv *priv, u32 reg, u32 val)
-{
-	mt7623_trgmii_rmw(priv, reg, val, 0);
-}
-
-static int
 core_read_mmd_indirect(struct mt7530_priv *priv, int prtad, int devad)
 {
 	struct mii_bus *bus = priv->bus;
@@ -530,27 +478,6 @@
 		for (i = 0 ; i < NUM_TRGMII_CTRL; i++)
 			mt7530_rmw(priv, MT7530_TRGMII_RD(i),
 				   RD_TAP_MASK, RD_TAP(16));
-	else
-		if (priv->id != ID_MT7621)
-			mt7623_trgmii_set(priv, GSW_INTF_MODE,
-					  INTF_MODE_TRGMII);
-
-	return 0;
-}
-
-static int
-mt7623_pad_clk_setup(struct dsa_switch *ds)
-{
-	struct mt7530_priv *priv = ds->priv;
-	int i;
-
-	for (i = 0 ; i < NUM_TRGMII_CTRL; i++)
-		mt7623_trgmii_write(priv, GSW_TRGMII_TD_ODT(i),
-				    TD_DM_DRVP(8) | TD_DM_DRVN(8));
-
-	mt7623_trgmii_set(priv, GSW_TRGMII_RCK_CTRL, RX_RST | RXC_DQSISEL);
-	mt7623_trgmii_clear(priv, GSW_TRGMII_RCK_CTRL, RX_RST);
-
 	return 0;
 }
 
@@ -566,7 +493,7 @@
 static void
 mt7530_port_set_status(struct mt7530_priv *priv, int port, int enable)
 {
-	u32 mask = PMCR_TX_EN | PMCR_RX_EN;
+	u32 mask = PMCR_TX_EN | PMCR_RX_EN | PMCR_FORCE_LNK;
 
 	if (enable)
 		mt7530_set(priv, MT7530_PMCR_P(port), mask);
@@ -712,11 +639,8 @@
 	mt7530_write(priv, MT7530_PVC_P(port),
 		     PORT_SPEC_TAG);
 
-	/* Disable auto learning on the cpu port */
-	mt7530_set(priv, MT7530_PSC_P(port), SA_DIS);
-
-	/* Unknown unicast frame fordwarding to the cpu port */
-	mt7530_set(priv, MT7530_MFC, UNU_FFP(BIT(port)));
+	/* Unknown multicast frame forwarding to the cpu port */
+	mt7530_rmw(priv, MT7530_MFC, UNM_FFP_MASK, UNM_FFP(BIT(port)));
 
 	/* Set CPU port number */
 	if (priv->id == ID_MT7621)
@@ -857,8 +781,9 @@
 	 */
 	mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK,
 		   MT7530_PORT_MATRIX_MODE);
-	mt7530_rmw(priv, MT7530_PVC_P(port), VLAN_ATTR_MASK,
-		   VLAN_ATTR(MT7530_VLAN_TRANSPARENT));
+	mt7530_rmw(priv, MT7530_PVC_P(port), VLAN_ATTR_MASK | PVC_EG_TAG_MASK,
+		   VLAN_ATTR(MT7530_VLAN_TRANSPARENT) |
+		   PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT));
 
 	for (i = 0; i < MT7530_NUM_PORTS; i++) {
 		if (dsa_is_user_port(ds, i) &&
@@ -874,8 +799,8 @@
 	if (all_user_ports_removed) {
 		mt7530_write(priv, MT7530_PCR_P(MT7530_CPU_PORT),
 			     PCR_MATRIX(dsa_user_ports(priv->ds)));
-		mt7530_write(priv, MT7530_PVC_P(MT7530_CPU_PORT),
-			     PORT_SPEC_TAG);
+		mt7530_write(priv, MT7530_PVC_P(MT7530_CPU_PORT), PORT_SPEC_TAG
+			     | PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT));
 	}
 }
 
@@ -893,16 +818,22 @@
 		   PCR_MATRIX_MASK, PCR_MATRIX(MT7530_ALL_MEMBERS));
 
 	/* Trapped into security mode allows packet forwarding through VLAN
-	 * table lookup.
+	 * table lookup. CPU port is set to fallback mode to let untagged
+	 * frames pass through.
 	 */
-	mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK,
-		   MT7530_PORT_SECURITY_MODE);
+	if (dsa_is_cpu_port(ds, port))
+		mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK,
+			   MT7530_PORT_FALLBACK_MODE);
+	else
+		mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK,
+			   MT7530_PORT_SECURITY_MODE);
 
 	/* Set the port as a user port which is to be able to recognize VID
 	 * from incoming packets before fetching entry within the VLAN table.
 	 */
-	mt7530_rmw(priv, MT7530_PVC_P(port), VLAN_ATTR_MASK,
-		   VLAN_ATTR(MT7530_VLAN_USER));
+	mt7530_rmw(priv, MT7530_PVC_P(port), VLAN_ATTR_MASK | PVC_EG_TAG_MASK,
+		   VLAN_ATTR(MT7530_VLAN_USER) |
+		   PVC_EG_TAG(MT7530_VLAN_EG_DISABLED));
 }
 
 static void
@@ -1255,10 +1186,6 @@
 	dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent;
 
 	if (priv->id == ID_MT7530) {
-		priv->ethernet = syscon_node_to_regmap(dn);
-		if (IS_ERR(priv->ethernet))
-			return PTR_ERR(priv->ethernet);
-
 		regulator_set_voltage(priv->core_pwr, 1000000, 1000000);
 		ret = regulator_enable(priv->core_pwr);
 		if (ret < 0) {
@@ -1321,8 +1248,6 @@
 	/* Enable and reset MIB counters */
 	mt7530_mib_reset(ds);
 
-	mt7530_clear(priv, MT7530_MFC, UNU_FFP_MASK);
-
 	for (i = 0; i < MT7530_NUM_PORTS; i++) {
 		/* Disable forwarding by default on all ports */
 		mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK,
@@ -1332,6 +1257,10 @@
 			mt7530_cpu_port_enable(priv, i);
 		else
 			mt7530_port_disable(ds, i);
+
+		/* Enable consistent egress tag */
+		mt7530_rmw(priv, MT7530_PVC_P(i), PVC_EG_TAG_MASK,
+			   PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT));
 	}
 
 	/* Setup port 5 */
@@ -1353,6 +1282,9 @@
 				continue;
 
 			phy_node = of_parse_phandle(mac_np, "phy-handle", 0);
+			if (!phy_node)
+				continue;
+
 			if (phy_node->parent == priv->dev->of_node->parent) {
 				interface = of_get_phy_mode(mac_np);
 				id = of_mdio_parse_addr(ds->dev, phy_node);
@@ -1413,14 +1345,6 @@
 		/* Setup TX circuit incluing relevant PAD and driving */
 		mt7530_pad_clk_setup(ds, state->interface);
 
-		if (priv->id == ID_MT7530) {
-			/* Setup RX circuit, relevant PAD and driving on the
-			 * host which must be placed after the setup on the
-			 * device side is all finished.
-			 */
-			mt7623_pad_clk_setup(ds);
-		}
-
 		priv->p6_interface = state->interface;
 		break;
 	default:
@@ -1439,7 +1363,7 @@
 	mcr_new &= ~(PMCR_FORCE_SPEED_1000 | PMCR_FORCE_SPEED_100 |
 		     PMCR_FORCE_FDX | PMCR_TX_FC_EN | PMCR_RX_FC_EN);
 	mcr_new |= PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | PMCR_BACKOFF_EN |
-		   PMCR_BACKPR_EN | PMCR_FORCE_MODE | PMCR_FORCE_LNK;
+		   PMCR_BACKPR_EN | PMCR_FORCE_MODE;
 
 	/* Are we connected to external phy */
 	if (port == 5 && dsa_is_user_port(ds, 5))
@@ -1532,7 +1456,7 @@
 		phylink_set(mask, 100baseT_Full);
 
 		if (state->interface != PHY_INTERFACE_MODE_MII) {
-			phylink_set(mask, 1000baseT_Half);
+			/* This switch only supports 1G full-duplex. */
 			phylink_set(mask, 1000baseT_Full);
 			if (port == 5)
 				phylink_set(mask, 1000baseX_Full);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mt7530.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mt7530.h
@@ -31,6 +31,7 @@
 #define MT7530_MFC			0x10
 #define  BC_FFP(x)			(((x) & 0xff) << 24)
 #define  UNM_FFP(x)			(((x) & 0xff) << 16)
+#define  UNM_FFP_MASK			UNM_FFP(~0)
 #define  UNU_FFP(x)			(((x) & 0xff) << 8)
 #define  UNU_FFP_MASK			UNU_FFP(~0)
 #define  CPU_EN				BIT(7)
@@ -147,6 +148,12 @@
 	/* Port Matrix Mode: Frames are forwarded by the PCR_MATRIX members. */
 	MT7530_PORT_MATRIX_MODE = PORT_VLAN(0),
 
+	/* Fallback Mode: Forward received frames with ingress ports that do
+	 * not belong to the VLAN member. Frames whose VID is not listed on
+	 * the VLAN table are forwarded by the PCR_MATRIX members.
+	 */
+	MT7530_PORT_FALLBACK_MODE = PORT_VLAN(1),
+
 	/* Security Mode: Discard any frame due to ingress membership
 	 * violation or VID missed on the VLAN table.
 	 */
@@ -167,9 +174,16 @@
 /* Register for port vlan control */
 #define MT7530_PVC_P(x)			(0x2010 + ((x) * 0x100))
 #define  PORT_SPEC_TAG			BIT(5)
+#define  PVC_EG_TAG(x)			(((x) & 0x7) << 8)
+#define  PVC_EG_TAG_MASK		PVC_EG_TAG(7)
 #define  VLAN_ATTR(x)			(((x) & 0x3) << 6)
 #define  VLAN_ATTR_MASK			VLAN_ATTR(3)
 
+enum mt7530_vlan_port_eg_tag {
+	MT7530_VLAN_EG_DISABLED = 0,
+	MT7530_VLAN_EG_CONSISTENT = 1,
+};
+
 enum mt7530_vlan_port_attr {
 	MT7530_VLAN_USER = 0,
 	MT7530_VLAN_TRANSPARENT = 3,
@@ -268,7 +282,6 @@
 
 /* Registers for TRGMII on the both side */
 #define MT7530_TRGMII_RCK_CTRL		0x7a00
-#define GSW_TRGMII_RCK_CTRL		0x300
 #define  RX_RST				BIT(31)
 #define  RXC_DQSISEL			BIT(30)
 #define  DQSI1_TAP_MASK			(0x7f << 8)
@@ -277,31 +290,24 @@
 #define  DQSI0_TAP(x)			((x) & 0x7f)
 
 #define MT7530_TRGMII_RCK_RTT		0x7a04
-#define GSW_TRGMII_RCK_RTT		0x304
 #define  DQS1_GATE			BIT(31)
 #define  DQS0_GATE			BIT(30)
 
 #define MT7530_TRGMII_RD(x)		(0x7a10 + (x) * 8)
-#define GSW_TRGMII_RD(x)		(0x310 + (x) * 8)
 #define  BSLIP_EN			BIT(31)
 #define  EDGE_CHK			BIT(30)
 #define  RD_TAP_MASK			0x7f
 #define  RD_TAP(x)			((x) & 0x7f)
 
-#define GSW_TRGMII_TXCTRL		0x340
 #define MT7530_TRGMII_TXCTRL		0x7a40
 #define  TRAIN_TXEN			BIT(31)
 #define  TXC_INV			BIT(30)
 #define  TX_RST				BIT(28)
 
 #define MT7530_TRGMII_TD_ODT(i)		(0x7a54 + 8 * (i))
-#define GSW_TRGMII_TD_ODT(i)		(0x354 + 8 * (i))
 #define  TD_DM_DRVP(x)			((x) & 0xf)
 #define  TD_DM_DRVN(x)			(((x) & 0xf) << 4)
 
-#define GSW_INTF_MODE			0x390
-#define  INTF_MODE_TRGMII		BIT(1)
-
 #define MT7530_TRGMII_TCK_CTRL		0x7a78
 #define  TCK_TAP(x)			(((x) & 0xf) << 8)
 
@@ -434,7 +440,6 @@
  * @ds:			The pointer to the dsa core structure
  * @bus:		The bus used for the device and built-in PHY
  * @rstc:		The pointer to reset control used by MCM
- * @ethernet:		The regmap used for access TRGMII-based registers
  * @core_pwr:		The power supplied into the core
  * @io_pwr:		The power supplied into the I/O
  * @reset:		The descriptor for GPIO line tied to its reset pin
@@ -451,7 +456,6 @@
 	struct dsa_switch	*ds;
 	struct mii_bus		*bus;
 	struct reset_control	*rstc;
-	struct regmap		*ethernet;
 	struct regulator	*core_pwr;
 	struct regulator	*io_pwr;
 	struct gpio_desc	*reset;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mv88e6xxx/chip.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mv88e6xxx/chip.c
@@ -1517,7 +1517,11 @@
 		if (!entry.portvec)
 			entry.state = 0;
 	} else {
-		entry.portvec |= BIT(port);
+		if (state == MV88E6XXX_G1_ATU_DATA_STATE_UC_STATIC)
+			entry.portvec = BIT(port);
+		else
+			entry.portvec |= BIT(port);
+
 		entry.state = state;
 	}
 
@@ -2143,6 +2147,8 @@
 		usleep_range(10000, 20000);
 		gpiod_set_value_cansleep(gpiod, 0);
 		usleep_range(10000, 20000);
+
+		mv88e6xxx_g1_wait_eeprom_done(chip);
 	}
 }
 
@@ -3063,7 +3069,6 @@
 	.port_set_frame_mode = mv88e6351_port_set_frame_mode,
 	.port_set_egress_floods = mv88e6352_port_set_egress_floods,
 	.port_set_ether_type = mv88e6351_port_set_ether_type,
-	.port_set_jumbo_size = mv88e6165_port_set_jumbo_size,
 	.port_egress_rate_limiting = mv88e6095_port_egress_rate_limiting,
 	.port_pause_limit = mv88e6097_port_pause_limit,
 	.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mv88e6xxx/global1.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mv88e6xxx/global1.c
@@ -75,6 +75,37 @@
 	return mv88e6xxx_g1_wait_bit(chip, MV88E6XXX_G1_STS, bit, 1);
 }
 
+void mv88e6xxx_g1_wait_eeprom_done(struct mv88e6xxx_chip *chip)
+{
+	const unsigned long timeout = jiffies + 1 * HZ;
+	u16 val;
+	int err;
+
+	/* Wait up to 1 second for the switch to finish reading the
+	 * EEPROM.
+	 */
+	while (time_before(jiffies, timeout)) {
+		err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_STS, &val);
+		if (err) {
+			dev_err(chip->dev, "Error reading status");
+			return;
+		}
+
+		/* If the switch is still resetting, it may not
+		 * respond on the bus, and so MDIO read returns
+		 * 0xffff. Differentiate between that, and waiting for
+		 * the EEPROM to be done by bit 0 being set.
+		 */
+		if (val != 0xffff &&
+		    val & BIT(MV88E6XXX_G1_STS_IRQ_EEPROM_DONE))
+			return;
+
+		usleep_range(1000, 2000);
+	}
+
+	dev_err(chip->dev, "Timeout waiting for EEPROM done");
+}
+
 /* Offset 0x01: Switch MAC Address Register Bytes 0 & 1
  * Offset 0x02: Switch MAC Address Register Bytes 2 & 3
  * Offset 0x03: Switch MAC Address Register Bytes 4 & 5
@@ -332,6 +363,11 @@
 {
 	u16 ptr = MV88E6390_G1_MONITOR_MGMT_CTL_PTR_CPU_DEST;
 
+	/* Use the default high priority for management frames sent to
+	 * the CPU.
+	 */
+	port |= MV88E6390_G1_MONITOR_MGMT_CTL_PTR_CPU_DEST_MGMTPRI;
+
 	return mv88e6390_g1_monitor_write(chip, ptr, port);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mv88e6xxx/global1.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mv88e6xxx/global1.h
@@ -210,6 +210,7 @@
 #define MV88E6390_G1_MONITOR_MGMT_CTL_PTR_INGRESS_DEST		0x2000
 #define MV88E6390_G1_MONITOR_MGMT_CTL_PTR_EGRESS_DEST		0x2100
 #define MV88E6390_G1_MONITOR_MGMT_CTL_PTR_CPU_DEST		0x3000
+#define MV88E6390_G1_MONITOR_MGMT_CTL_PTR_CPU_DEST_MGMTPRI	0x00e0
 #define MV88E6390_G1_MONITOR_MGMT_CTL_DATA_MASK			0x00ff
 
 /* Offset 0x1C: Global Control 2 */
@@ -276,6 +277,7 @@
 int mv88e6185_g1_reset(struct mv88e6xxx_chip *chip);
 int mv88e6352_g1_reset(struct mv88e6xxx_chip *chip);
 int mv88e6250_g1_reset(struct mv88e6xxx_chip *chip);
+void mv88e6xxx_g1_wait_eeprom_done(struct mv88e6xxx_chip *chip);
 
 int mv88e6185_g1_ppu_enable(struct mv88e6xxx_chip *chip);
 int mv88e6185_g1_ppu_disable(struct mv88e6xxx_chip *chip);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mv88e6xxx/global1_vtu.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mv88e6xxx/global1_vtu.c
@@ -125,11 +125,9 @@
  * Offset 0x08: VTU/STU Data Register 2
  * Offset 0x09: VTU/STU Data Register 3
  */
-
-static int mv88e6185_g1_vtu_data_read(struct mv88e6xxx_chip *chip,
-				      struct mv88e6xxx_vtu_entry *entry)
+static int mv88e6185_g1_vtu_stu_data_read(struct mv88e6xxx_chip *chip,
+					  u16 *regs)
 {
-	u16 regs[3];
 	int i;
 
 	/* Read all 3 VTU/STU Data registers */
@@ -142,12 +140,45 @@
 			return err;
 	}
 
-	/* Extract MemberTag and PortState data */
+	return 0;
+}
+
+static int mv88e6185_g1_vtu_data_read(struct mv88e6xxx_chip *chip,
+				      struct mv88e6xxx_vtu_entry *entry)
+{
+	u16 regs[3];
+	int err;
+	int i;
+
+	err = mv88e6185_g1_vtu_stu_data_read(chip, regs);
+	if (err)
+		return err;
+
+	/* Extract MemberTag data */
 	for (i = 0; i < mv88e6xxx_num_ports(chip); ++i) {
 		unsigned int member_offset = (i % 4) * 4;
-		unsigned int state_offset = member_offset + 2;
 
 		entry->member[i] = (regs[i / 4] >> member_offset) & 0x3;
+	}
+
+	return 0;
+}
+
+static int mv88e6185_g1_stu_data_read(struct mv88e6xxx_chip *chip,
+				      struct mv88e6xxx_vtu_entry *entry)
+{
+	u16 regs[3];
+	int err;
+	int i;
+
+	err = mv88e6185_g1_vtu_stu_data_read(chip, regs);
+	if (err)
+		return err;
+
+	/* Extract PortState data */
+	for (i = 0; i < mv88e6xxx_num_ports(chip); ++i) {
+		unsigned int state_offset = (i % 4) * 4 + 2;
+
 		entry->state[i] = (regs[i / 4] >> state_offset) & 0x3;
 	}
 
@@ -320,6 +351,10 @@
 		if (err)
 			return err;
 
+		err = mv88e6185_g1_stu_data_read(chip, entry);
+		if (err)
+			return err;
+
 		/* VTU DBNum[3:0] are located in VTU Operation 3:0
 		 * VTU DBNum[5:4] are located in VTU Operation 9:8
 		 */
@@ -349,6 +384,10 @@
 		if (err)
 			return err;
 
+		err = mv88e6185_g1_stu_data_read(chip, entry);
+		if (err)
+			return err;
+
 		/* VTU DBNum[3:0] are located in VTU Operation 3:0
 		 * VTU DBNum[7:4] are located in VTU Operation 11:8
 		 */
@@ -374,16 +413,20 @@
 		return err;
 
 	if (entry->valid) {
-		/* Fetch (and mask) VLAN PortState data from the STU */
-		err = mv88e6xxx_g1_vtu_stu_get(chip, entry);
+		err = mv88e6185_g1_vtu_data_read(chip, entry);
 		if (err)
 			return err;
 
-		err = mv88e6185_g1_vtu_data_read(chip, entry);
+		err = mv88e6xxx_g1_vtu_fid_read(chip, entry);
 		if (err)
 			return err;
 
-		err = mv88e6xxx_g1_vtu_fid_read(chip, entry);
+		/* Fetch VLAN PortState data from the STU */
+		err = mv88e6xxx_g1_vtu_stu_get(chip, entry);
+		if (err)
+			return err;
+
+		err = mv88e6185_g1_stu_data_read(chip, entry);
 		if (err)
 			return err;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mv88e6xxx/global2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mv88e6xxx/global2.c
@@ -1083,6 +1083,13 @@
 {
 	int err, irq, virq;
 
+	chip->g2_irq.masked = ~0;
+	mv88e6xxx_reg_lock(chip);
+	err = mv88e6xxx_g2_int_mask(chip, ~chip->g2_irq.masked);
+	mv88e6xxx_reg_unlock(chip);
+	if (err)
+		return err;
+
 	chip->g2_irq.domain = irq_domain_add_simple(
 		chip->dev->of_node, 16, 0, &mv88e6xxx_g2_irq_domain_ops, chip);
 	if (!chip->g2_irq.domain)
@@ -1092,7 +1099,6 @@
 		irq_create_mapping(chip->g2_irq.domain, irq);
 
 	chip->g2_irq.chip = mv88e6xxx_g2_irq_chip;
-	chip->g2_irq.masked = ~0;
 
 	chip->device_irq = irq_find_mapping(chip->g1_irq.domain,
 					    MV88E6XXX_G1_STS_IRQ_DEVICE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/mv88e6xxx/port.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/mv88e6xxx/port.c
@@ -393,7 +393,7 @@
 }
 
 static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
-				    phy_interface_t mode)
+				    phy_interface_t mode, bool force)
 {
 	u8 lane;
 	u16 cmode;
@@ -427,8 +427,8 @@
 		cmode = 0;
 	}
 
-	/* cmode doesn't change, nothing to do for us */
-	if (cmode == chip->ports[port].cmode)
+	/* cmode doesn't change, nothing to do for us unless forced */
+	if (cmode == chip->ports[port].cmode && !force)
 		return 0;
 
 	lane = mv88e6xxx_serdes_get_lane(chip, port);
@@ -484,7 +484,7 @@
 	if (port != 9 && port != 10)
 		return -EOPNOTSUPP;
 
-	return mv88e6xxx_port_set_cmode(chip, port, mode);
+	return mv88e6xxx_port_set_cmode(chip, port, mode, false);
 }
 
 int mv88e6390_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
@@ -504,7 +504,7 @@
 		break;
 	}
 
-	return mv88e6xxx_port_set_cmode(chip, port, mode);
+	return mv88e6xxx_port_set_cmode(chip, port, mode, false);
 }
 
 static int mv88e6341_port_set_cmode_writable(struct mv88e6xxx_chip *chip,
@@ -555,7 +555,7 @@
 	if (err)
 		return err;
 
-	return mv88e6xxx_port_set_cmode(chip, port, mode);
+	return mv88e6xxx_port_set_cmode(chip, port, mode, true);
 }
 
 int mv88e6185_port_get_cmode(struct mv88e6xxx_chip *chip, int port, u8 *cmode)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/realtek-smi-core.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/realtek-smi-core.h
@@ -25,6 +25,9 @@
 	const char	*name;
 };
 
+/**
+ * struct rtl8366_vlan_mc - Virtual LAN member configuration
+ */
 struct rtl8366_vlan_mc {
 	u16	vid;
 	u16	untag;
@@ -119,7 +122,6 @@
 int rtl8366_mc_is_used(struct realtek_smi *smi, int mc_index, int *used);
 int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member,
 		     u32 untag, u32 fid);
-int rtl8366_get_pvid(struct realtek_smi *smi, int port, int *val);
 int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port,
 		     unsigned int vid);
 int rtl8366_enable_vlan4k(struct realtek_smi *smi, bool enable);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/rtl8366.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/rtl8366.c
@@ -36,113 +36,66 @@
 }
 EXPORT_SYMBOL_GPL(rtl8366_mc_is_used);
 
-int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member,
-		     u32 untag, u32 fid)
+/**
+ * rtl8366_obtain_mc() - retrieve or allocate a VLAN member configuration
+ * @smi: the Realtek SMI device instance
+ * @vid: the VLAN ID to look up or allocate
+ * @vlanmc: the pointer will be assigned to a pointer to a valid member config
+ * if successful
+ * @return: index of a new member config or negative error number
+ */
+static int rtl8366_obtain_mc(struct realtek_smi *smi, int vid,
+			     struct rtl8366_vlan_mc *vlanmc)
 {
 	struct rtl8366_vlan_4k vlan4k;
 	int ret;
 	int i;
 
-	/* Update the 4K table */
-	ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k);
-	if (ret)
-		return ret;
-
-	vlan4k.member = member;
-	vlan4k.untag = untag;
-	vlan4k.fid = fid;
-	ret = smi->ops->set_vlan_4k(smi, &vlan4k);
-	if (ret)
-		return ret;
-
-	/* Try to find an existing MC entry for this VID */
+	/* Try to find an existing member config entry for this VID */
 	for (i = 0; i < smi->num_vlan_mc; i++) {
-		struct rtl8366_vlan_mc vlanmc;
-
-		ret = smi->ops->get_vlan_mc(smi, i, &vlanmc);
-		if (ret)
+		ret = smi->ops->get_vlan_mc(smi, i, vlanmc);
+		if (ret) {
+			dev_err(smi->dev, "error searching for VLAN MC %d for VID %d\n",
+				i, vid);
 			return ret;
-
-		if (vid == vlanmc.vid) {
-			/* update the MC entry */
-			vlanmc.member = member;
-			vlanmc.untag = untag;
-			vlanmc.fid = fid;
-
-			ret = smi->ops->set_vlan_mc(smi, i, &vlanmc);
-			break;
 		}
-	}
-
-	return ret;
-}
-EXPORT_SYMBOL_GPL(rtl8366_set_vlan);
 
-int rtl8366_get_pvid(struct realtek_smi *smi, int port, int *val)
-{
-	struct rtl8366_vlan_mc vlanmc;
-	int ret;
-	int index;
-
-	ret = smi->ops->get_mc_index(smi, port, &index);
-	if (ret)
-		return ret;
-
-	ret = smi->ops->get_vlan_mc(smi, index, &vlanmc);
-	if (ret)
-		return ret;
-
-	*val = vlanmc.vid;
-	return 0;
-}
-EXPORT_SYMBOL_GPL(rtl8366_get_pvid);
-
-int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port,
-		     unsigned int vid)
-{
-	struct rtl8366_vlan_mc vlanmc;
-	struct rtl8366_vlan_4k vlan4k;
-	int ret;
-	int i;
-
-	/* Try to find an existing MC entry for this VID */
-	for (i = 0; i < smi->num_vlan_mc; i++) {
-		ret = smi->ops->get_vlan_mc(smi, i, &vlanmc);
-		if (ret)
-			return ret;
-
-		if (vid == vlanmc.vid) {
-			ret = smi->ops->set_vlan_mc(smi, i, &vlanmc);
-			if (ret)
-				return ret;
-
-			ret = smi->ops->set_mc_index(smi, port, i);
-			return ret;
-		}
+		if (vid == vlanmc->vid)
+			return i;
 	}
 
 	/* We have no MC entry for this VID, try to find an empty one */
 	for (i = 0; i < smi->num_vlan_mc; i++) {
-		ret = smi->ops->get_vlan_mc(smi, i, &vlanmc);
-		if (ret)
+		ret = smi->ops->get_vlan_mc(smi, i, vlanmc);
+		if (ret) {
+			dev_err(smi->dev, "error searching for VLAN MC %d for VID %d\n",
+				i, vid);
 			return ret;
+		}
 
-		if (vlanmc.vid == 0 && vlanmc.member == 0) {
+		if (vlanmc->vid == 0 && vlanmc->member == 0) {
 			/* Update the entry from the 4K table */
 			ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k);
-			if (ret)
+			if (ret) {
+				dev_err(smi->dev, "error looking for 4K VLAN MC %d for VID %d\n",
+					i, vid);
 				return ret;
+			}
 
-			vlanmc.vid = vid;
-			vlanmc.member = vlan4k.member;
-			vlanmc.untag = vlan4k.untag;
-			vlanmc.fid = vlan4k.fid;
-			ret = smi->ops->set_vlan_mc(smi, i, &vlanmc);
-			if (ret)
+			vlanmc->vid = vid;
+			vlanmc->member = vlan4k.member;
+			vlanmc->untag = vlan4k.untag;
+			vlanmc->fid = vlan4k.fid;
+			ret = smi->ops->set_vlan_mc(smi, i, vlanmc);
+			if (ret) {
+				dev_err(smi->dev, "unable to set/update VLAN MC %d for VID %d\n",
+					i, vid);
 				return ret;
+			}
 
-			ret = smi->ops->set_mc_index(smi, port, i);
-			return ret;
+			dev_dbg(smi->dev, "created new MC at index %d for VID %d\n",
+				i, vid);
+			return i;
 		}
 	}
 
@@ -160,24 +113,110 @@
 			if (ret)
 				return ret;
 
-			vlanmc.vid = vid;
-			vlanmc.member = vlan4k.member;
-			vlanmc.untag = vlan4k.untag;
-			vlanmc.fid = vlan4k.fid;
-			ret = smi->ops->set_vlan_mc(smi, i, &vlanmc);
-			if (ret)
+			vlanmc->vid = vid;
+			vlanmc->member = vlan4k.member;
+			vlanmc->untag = vlan4k.untag;
+			vlanmc->fid = vlan4k.fid;
+			ret = smi->ops->set_vlan_mc(smi, i, vlanmc);
+			if (ret) {
+				dev_err(smi->dev, "unable to set/update VLAN MC %d for VID %d\n",
+					i, vid);
 				return ret;
-
-			ret = smi->ops->set_mc_index(smi, port, i);
-			return ret;
+			}
+			dev_dbg(smi->dev, "recycled MC at index %i for VID %d\n",
+				i, vid);
+			return i;
 		}
 	}
 
-	dev_err(smi->dev,
-		"all VLAN member configurations are in use\n");
-
+	dev_err(smi->dev, "all VLAN member configurations are in use\n");
 	return -ENOSPC;
 }
+
+int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member,
+		     u32 untag, u32 fid)
+{
+	struct rtl8366_vlan_mc vlanmc;
+	struct rtl8366_vlan_4k vlan4k;
+	int mc;
+	int ret;
+
+	if (!smi->ops->is_vlan_valid(smi, vid))
+		return -EINVAL;
+
+	dev_dbg(smi->dev,
+		"setting VLAN%d 4k members: 0x%02x, untagged: 0x%02x\n",
+		vid, member, untag);
+
+	/* Update the 4K table */
+	ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k);
+	if (ret)
+		return ret;
+
+	vlan4k.member |= member;
+	vlan4k.untag |= untag;
+	vlan4k.fid = fid;
+	ret = smi->ops->set_vlan_4k(smi, &vlan4k);
+	if (ret)
+		return ret;
+
+	dev_dbg(smi->dev,
+		"resulting VLAN%d 4k members: 0x%02x, untagged: 0x%02x\n",
+		vid, vlan4k.member, vlan4k.untag);
+
+	/* Find or allocate a member config for this VID */
+	ret = rtl8366_obtain_mc(smi, vid, &vlanmc);
+	if (ret < 0)
+		return ret;
+	mc = ret;
+
+	/* Update the MC entry */
+	vlanmc.member |= member;
+	vlanmc.untag |= untag;
+	vlanmc.fid = fid;
+
+	/* Commit updates to the MC entry */
+	ret = smi->ops->set_vlan_mc(smi, mc, &vlanmc);
+	if (ret)
+		dev_err(smi->dev, "failed to commit changes to VLAN MC index %d for VID %d\n",
+			mc, vid);
+	else
+		dev_dbg(smi->dev,
+			"resulting VLAN%d MC members: 0x%02x, untagged: 0x%02x\n",
+			vid, vlanmc.member, vlanmc.untag);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(rtl8366_set_vlan);
+
+int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port,
+		     unsigned int vid)
+{
+	struct rtl8366_vlan_mc vlanmc;
+	int mc;
+	int ret;
+
+	if (!smi->ops->is_vlan_valid(smi, vid))
+		return -EINVAL;
+
+	/* Find or allocate a member config for this VID */
+	ret = rtl8366_obtain_mc(smi, vid, &vlanmc);
+	if (ret < 0)
+		return ret;
+	mc = ret;
+
+	ret = smi->ops->set_mc_index(smi, port, mc);
+	if (ret) {
+		dev_err(smi->dev, "set PVID: failed to set MC index %d for port %d\n",
+			mc, port);
+		return ret;
+	}
+
+	dev_dbg(smi->dev, "set PVID: the PVID for port %d set to %d using existing MC index %d\n",
+		port, vid, mc);
+
+	return 0;
+}
 EXPORT_SYMBOL_GPL(rtl8366_set_pvid);
 
 int rtl8366_enable_vlan4k(struct realtek_smi *smi, bool enable)
@@ -376,7 +415,8 @@
 		if (!smi->ops->is_vlan_valid(smi, vid))
 			return;
 
-	dev_info(smi->dev, "add VLAN on port %d, %s, %s\n",
+	dev_info(smi->dev, "add VLAN %d on port %d, %s, %s\n",
+		 vlan->vid_begin,
 		 port,
 		 untagged ? "untagged" : "tagged",
 		 pvid ? " PVID" : "no PVID");
@@ -384,36 +424,31 @@
 	if (dsa_is_dsa_port(ds, port) || dsa_is_cpu_port(ds, port))
 		dev_err(smi->dev, "port is DSA or CPU port\n");
 
-	for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) {
-		int pvid_val = 0;
-
-		dev_info(smi->dev, "add VLAN %04x\n", vid);
+	for (vid = vlan->vid_begin; vid <= vlan->vid_end; vid++) {
 		member |= BIT(port);
 
 		if (untagged)
 			untag |= BIT(port);
 
-		/* To ensure that we have a valid MC entry for this VLAN,
-		 * initialize the port VLAN ID here.
-		 */
-		ret = rtl8366_get_pvid(smi, port, &pvid_val);
-		if (ret < 0) {
-			dev_err(smi->dev, "could not lookup PVID for port %d\n",
-				port);
-			return;
-		}
-		if (pvid_val == 0) {
-			ret = rtl8366_set_pvid(smi, port, vid);
-			if (ret < 0)
-				return;
-		}
-	}
+		ret = rtl8366_set_vlan(smi, vid, member, untag, 0);
+		if (ret)
+			dev_err(smi->dev,
+				"failed to set up VLAN %04x",
+				vid);
 
-	ret = rtl8366_set_vlan(smi, port, member, untag, 0);
-	if (ret)
-		dev_err(smi->dev,
-			"failed to set up VLAN %04x",
-			vid);
+		if (!pvid)
+			continue;
+
+		ret = rtl8366_set_pvid(smi, port, vid);
+		if (ret)
+			dev_err(smi->dev,
+				"failed to set PVID on port %d to VLAN %04x",
+				port, vid);
+
+		if (!ret)
+			dev_dbg(smi->dev, "VLAN add: added VLAN %d with PVID on port %d\n",
+				vid, port);
+	}
 }
 EXPORT_SYMBOL_GPL(rtl8366_vlan_add);
 
@@ -439,13 +474,19 @@
 				return ret;
 
 			if (vid == vlanmc.vid) {
-				/* clear VLAN member configurations */
-				vlanmc.vid = 0;
-				vlanmc.priority = 0;
-				vlanmc.member = 0;
-				vlanmc.untag = 0;
-				vlanmc.fid = 0;
-
+				/* Remove this port from the VLAN */
+				vlanmc.member &= ~BIT(port);
+				vlanmc.untag &= ~BIT(port);
+				/*
+				 * If no ports are members of this VLAN
+				 * anymore then clear the whole member
+				 * config so it can be reused.
+				 */
+				if (!vlanmc.member && vlanmc.untag) {
+					vlanmc.vid = 0;
+					vlanmc.priority = 0;
+					vlanmc.fid = 0;
+				}
 				ret = smi->ops->set_vlan_mc(smi, i, &vlanmc);
 				if (ret) {
 					dev_err(smi->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/rtl8366rb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/rtl8366rb.c
@@ -1269,7 +1269,7 @@
 	if (smi->vlan4k_enabled)
 		max = RTL8366RB_NUM_VIDS - 1;
 
-	if (vlan == 0 || vlan >= max)
+	if (vlan == 0 || vlan > max)
 		return false;
 
 	return true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/sja1105/sja1105_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/sja1105/sja1105_main.c
@@ -594,15 +594,15 @@
 	int i;
 
 	for (i = 0; i < SJA1105_NUM_PORTS; i++) {
-		if (ports->role == XMII_MAC)
+		if (ports[i].role == XMII_MAC)
 			continue;
 
-		if (ports->phy_mode == PHY_INTERFACE_MODE_RGMII_RXID ||
-		    ports->phy_mode == PHY_INTERFACE_MODE_RGMII_ID)
+		if (ports[i].phy_mode == PHY_INTERFACE_MODE_RGMII_RXID ||
+		    ports[i].phy_mode == PHY_INTERFACE_MODE_RGMII_ID)
 			priv->rgmii_rx_delay[i] = true;
 
-		if (ports->phy_mode == PHY_INTERFACE_MODE_RGMII_TXID ||
-		    ports->phy_mode == PHY_INTERFACE_MODE_RGMII_ID)
+		if (ports[i].phy_mode == PHY_INTERFACE_MODE_RGMII_TXID ||
+		    ports[i].phy_mode == PHY_INTERFACE_MODE_RGMII_ID)
 			priv->rgmii_tx_delay[i] = true;
 
 		if ((priv->rgmii_rx_delay[i] || priv->rgmii_tx_delay[i]) &&
@@ -619,7 +619,7 @@
 	struct device *dev = &priv->spidev->dev;
 	struct device_node *child;
 
-	for_each_child_of_node(ports_node, child) {
+	for_each_available_child_of_node(ports_node, child) {
 		struct device_node *phy_node;
 		int phy_mode;
 		u32 index;
@@ -1389,6 +1389,8 @@
 	int speed_mbps[SJA1105_NUM_PORTS];
 	int rc, i;
 
+	mutex_lock(&priv->mgmt_lock);
+
 	mac = priv->static_config.tables[BLK_IDX_MAC_CONFIG].entries;
 
 	/* Back up the dynamic link speed changed by sja1105_adjust_port_config
@@ -1420,6 +1422,8 @@
 			goto out;
 	}
 out:
+	mutex_unlock(&priv->mgmt_lock);
+
 	return rc;
 }
 
@@ -1556,8 +1560,8 @@
 
 	if (enabled) {
 		/* Enable VLAN filtering. */
-		tpid  = ETH_P_8021AD;
-		tpid2 = ETH_P_8021Q;
+		tpid  = ETH_P_8021Q;
+		tpid2 = ETH_P_8021AD;
 	} else {
 		/* Disable VLAN filtering. */
 		tpid  = ETH_P_SJA1105;
@@ -1566,9 +1570,9 @@
 
 	table = &priv->static_config.tables[BLK_IDX_GENERAL_PARAMS];
 	general_params = table->entries;
-	/* EtherType used to identify outer tagged (S-tag) VLAN traffic */
-	general_params->tpid = tpid;
 	/* EtherType used to identify inner tagged (C-tag) VLAN traffic */
+	general_params->tpid = tpid;
+	/* EtherType used to identify outer tagged (S-tag) VLAN traffic */
 	general_params->tpid2 = tpid2;
 	/* When VLAN filtering is on, we need to at least be able to
 	 * decode management traffic through the "backup plan".
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/dsa/sja1105/sja1105_static_config.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/dsa/sja1105/sja1105_static_config.c
@@ -142,6 +142,9 @@
 	return size;
 }
 
+/* TPID and TPID2 are intentionally reversed so that semantic
+ * compatibility with E/T is kept.
+ */
 static size_t
 sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
 					 enum packing_op op)
@@ -166,9 +169,9 @@
 	sja1105_packing(buf, &entry->mirr_port,   141, 139, size, op);
 	sja1105_packing(buf, &entry->vlmarker,    138, 107, size, op);
 	sja1105_packing(buf, &entry->vlmask,      106,  75, size, op);
-	sja1105_packing(buf, &entry->tpid,         74,  59, size, op);
+	sja1105_packing(buf, &entry->tpid2,        74,  59, size, op);
 	sja1105_packing(buf, &entry->ignore2stf,   58,  58, size, op);
-	sja1105_packing(buf, &entry->tpid2,        57,  42, size, op);
+	sja1105_packing(buf, &entry->tpid,         57,  42, size, op);
 	sja1105_packing(buf, &entry->queue_ts,     41,  41, size, op);
 	sja1105_packing(buf, &entry->egrmirrvid,   40,  29, size, op);
 	sja1105_packing(buf, &entry->egrmirrpcp,   28,  26, size, op);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/allwinner/sun4i-emac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/allwinner/sun4i-emac.c
@@ -432,7 +432,7 @@
 /* Hardware start transmission.
  * Send a packet to media from the upper layer.
  */
-static int emac_start_xmit(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t emac_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	struct emac_board_info *db = netdev_priv(dev);
 	unsigned long channel;
@@ -440,7 +440,7 @@
 
 	channel = db->tx_fifo_stat & 3;
 	if (channel == 3)
-		return 1;
+		return NETDEV_TX_BUSY;
 
 	channel = (channel == 1 ? 1 : 0);
 
@@ -845,13 +845,13 @@
 	db->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(db->clk)) {
 		ret = PTR_ERR(db->clk);
-		goto out_iounmap;
+		goto out_dispose_mapping;
 	}
 
 	ret = clk_prepare_enable(db->clk);
 	if (ret) {
 		dev_err(&pdev->dev, "Error couldn't enable clock (%d)\n", ret);
-		goto out_iounmap;
+		goto out_dispose_mapping;
 	}
 
 	ret = sunxi_sram_claim(&pdev->dev);
@@ -910,6 +910,8 @@
 	sunxi_sram_release(&pdev->dev);
 out_clk_disable_unprepare:
 	clk_disable_unprepare(db->clk);
+out_dispose_mapping:
+	irq_dispose_mapping(ndev->irq);
 out_iounmap:
 	iounmap(db->membase);
 out:
@@ -928,6 +930,7 @@
 	unregister_netdev(ndev);
 	sunxi_sram_release(&pdev->dev);
 	clk_disable_unprepare(db->clk);
+	irq_dispose_mapping(ndev->irq);
 	iounmap(db->membase);
 	free_netdev(ndev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
@@ -1,37 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 - 2016 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 #ifndef _ENA_ADMIN_H_
 #define _ENA_ADMIN_H_
 
+#define ENA_ADMIN_RSS_KEY_PARTS              10
 
 enum ena_admin_aq_opcode {
 	ENA_ADMIN_CREATE_SQ                         = 1,
@@ -55,6 +29,7 @@
 	ENA_ADMIN_RESOURCE_BUSY                     = 7,
 };
 
+/* subcommands for the set/get feature admin commands */
 enum ena_admin_aq_feature_id {
 	ENA_ADMIN_DEVICE_ATTRIBUTES                 = 1,
 	ENA_ADMIN_MAX_QUEUES_NUM                    = 2,
@@ -63,7 +38,7 @@
 	ENA_ADMIN_MAX_QUEUES_EXT                    = 7,
 	ENA_ADMIN_RSS_HASH_FUNCTION                 = 10,
 	ENA_ADMIN_STATELESS_OFFLOAD_CONFIG          = 11,
-	ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG      = 12,
+	ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG      = 12,
 	ENA_ADMIN_MTU                               = 14,
 	ENA_ADMIN_RSS_HASH_INPUT                    = 18,
 	ENA_ADMIN_INTERRUPT_MODERATION              = 20,
@@ -117,6 +92,8 @@
 enum ena_admin_get_stats_type {
 	ENA_ADMIN_GET_STATS_TYPE_BASIC              = 0,
 	ENA_ADMIN_GET_STATS_TYPE_EXTENDED           = 1,
+	/* extra HW stats for specific network interface */
+	ENA_ADMIN_GET_STATS_TYPE_ENI                = 2,
 };
 
 enum ena_admin_get_stats_scope {
@@ -193,7 +170,7 @@
 	u16 extended_status;
 
 	/* indicates to the driver which AQ entry has been consumed by the
-	 *    device and could be reused
+	 * device and could be reused
 	 */
 	u16 sq_head_indx;
 };
@@ -238,8 +215,8 @@
 	 */
 	u8 sq_caps_3;
 
-	/* associated completion queue id. This CQ must be created prior to
-	 *    SQ creation
+	/* associated completion queue id. This CQ must be created prior to SQ
+	 * creation
 	 */
 	u16 cq_idx;
 
@@ -378,7 +355,7 @@
 	u16 queue_idx;
 
 	/* device id, value 0xFFFF means mine. only privileged device can get
-	 *    stats of other device
+	 * stats of other device
 	 */
 	u16 device_id;
 };
@@ -404,12 +381,49 @@
 	u32 rx_drops_low;
 
 	u32 rx_drops_high;
+
+	u32 tx_drops_low;
+
+	u32 tx_drops_high;
+};
+
+/* ENI Statistics Command. */
+struct ena_admin_eni_stats {
+	/* The number of packets shaped due to inbound aggregate BW
+	 * allowance being exceeded
+	 */
+	u64 bw_in_allowance_exceeded;
+
+	/* The number of packets shaped due to outbound aggregate BW
+	 * allowance being exceeded
+	 */
+	u64 bw_out_allowance_exceeded;
+
+	/* The number of packets shaped due to PPS allowance being exceeded */
+	u64 pps_allowance_exceeded;
+
+	/* The number of packets shaped due to connection tracking
+	 * allowance being exceeded and leading to failure in establishment
+	 * of new connections
+	 */
+	u64 conntrack_allowance_exceeded;
+
+	/* The number of packets shaped due to linklocal packet rate
+	 * allowance being exceeded
+	 */
+	u64 linklocal_allowance_exceeded;
 };
 
 struct ena_admin_acq_get_stats_resp {
 	struct ena_admin_acq_common_desc acq_common_desc;
 
-	struct ena_admin_basic_stats basic_stats;
+	union {
+		u64 raw[7];
+
+		struct ena_admin_basic_stats basic_stats;
+
+		struct ena_admin_eni_stats eni_stats;
+	} u;
 };
 
 struct ena_admin_get_set_feature_common_desc {
@@ -436,7 +450,9 @@
 
 	u32 device_version;
 
-	/* bitmap of ena_admin_aq_feature_id */
+	/* bitmap of ena_admin_aq_feature_id, which represents supported
+	 * subcommands for the set/get feature admin commands.
+	 */
 	u32 supported_features;
 
 	u32 reserved3;
@@ -487,37 +503,65 @@
 	ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY          = 2,
 };
 
+enum ena_admin_accel_mode_feat {
+	ENA_ADMIN_DISABLE_META_CACHING              = 0,
+	ENA_ADMIN_LIMIT_TX_BURST                    = 1,
+};
+
+struct ena_admin_accel_mode_get {
+	/* bit field of enum ena_admin_accel_mode_feat */
+	u16 supported_flags;
+
+	/* maximum burst size between two doorbells. The size is in bytes */
+	u16 max_tx_burst_size;
+};
+
+struct ena_admin_accel_mode_set {
+	/* bit field of enum ena_admin_accel_mode_feat */
+	u16 enabled_flags;
+
+	u16 reserved;
+};
+
+struct ena_admin_accel_mode_req {
+	union {
+		u32 raw[2];
+
+		struct ena_admin_accel_mode_get get;
+
+		struct ena_admin_accel_mode_set set;
+	} u;
+};
+
 struct ena_admin_feature_llq_desc {
 	u32 max_llq_num;
 
 	u32 max_llq_depth;
 
-	/*  specify the header locations the device supports. bitfield of
-	 *    enum ena_admin_llq_header_location.
+	/* specify the header locations the device supports. bitfield of enum
+	 * ena_admin_llq_header_location.
 	 */
 	u16 header_location_ctrl_supported;
 
 	/* the header location the driver selected to use. */
 	u16 header_location_ctrl_enabled;
 
-	/* if inline header is specified - this is the size of descriptor
-	 *    list entry. If header in a separate ring is specified - this is
-	 *    the size of header ring entry. bitfield of enum
-	 *    ena_admin_llq_ring_entry_size. specify the entry sizes the device
-	 *    supports
+	/* if inline header is specified - this is the size of descriptor list
+	 * entry. If header in a separate ring is specified - this is the size
+	 * of header ring entry. bitfield of enum ena_admin_llq_ring_entry_size.
+	 * specify the entry sizes the device supports
 	 */
 	u16 entry_size_ctrl_supported;
 
 	/* the entry size the driver selected to use. */
 	u16 entry_size_ctrl_enabled;
 
-	/* valid only if inline header is specified. First entry associated
-	 *    with the packet includes descriptors and header. Rest of the
-	 *    entries occupied by descriptors. This parameter defines the max
-	 *    number of descriptors precedding the header in the first entry.
-	 *    The field is bitfield of enum
-	 *    ena_admin_llq_num_descs_before_header and specify the values the
-	 *    device supports
+	/* valid only if inline header is specified. First entry associated with
+	 * the packet includes descriptors and header. Rest of the entries
+	 * occupied by descriptors. This parameter defines the max number of
+	 * descriptors precedding the header in the first entry. The field is
+	 * bitfield of enum ena_admin_llq_num_descs_before_header and specify
+	 * the values the device supports
 	 */
 	u16 desc_num_before_header_supported;
 
@@ -525,17 +569,20 @@
 	u16 desc_num_before_header_enabled;
 
 	/* valid only if inline was chosen. bitfield of enum
-	 *    ena_admin_llq_stride_ctrl
+	 * ena_admin_llq_stride_ctrl
 	 */
 	u16 descriptors_stride_ctrl_supported;
 
 	/* the stride control the driver selected to use */
 	u16 descriptors_stride_ctrl_enabled;
 
-	/* Maximum size in bytes taken by llq entries in a single tx burst.
-	 * Set to 0 when there is no such limit.
+	/* reserved */
+	u32 reserved1;
+
+	/* accelerated low latency queues requirement. driver needs to
+	 * support those requirements in order to use accelerated llq
 	 */
-	u32 max_tx_burst_size;
+	struct ena_admin_accel_mode_req accel_mode;
 };
 
 struct ena_admin_queue_ext_feature_fields {
@@ -557,8 +604,8 @@
 
 	u32 max_tx_header_size;
 
-	/* Maximum Descriptors number, including meta descriptor, allowed for
-	 * a single Tx packet
+	/* Maximum Descriptors number, including meta descriptor, allowed for a
+	 * single Tx packet
 	 */
 	u16 max_per_packet_tx_descs;
 
@@ -581,8 +628,8 @@
 
 	u32 max_header_size;
 
-	/* Maximum Descriptors number, including meta descriptor, allowed for
-	 *    a single Tx packet
+	/* Maximum Descriptors number, including meta descriptor, allowed for a
+	 * single Tx packet
 	 */
 	u16 max_packet_tx_descs;
 
@@ -670,11 +717,11 @@
 };
 
 struct ena_admin_feature_rss_flow_hash_control {
-	u32 keys_num;
+	u32 key_parts;
 
 	u32 reserved;
 
-	u32 key[10];
+	u32 key[ENA_ADMIN_RSS_KEY_PARTS];
 };
 
 struct ena_admin_feature_rss_flow_hash_function {
@@ -764,8 +811,8 @@
 	ENA_ADMIN_OS_DPDK                           = 3,
 	ENA_ADMIN_OS_FREEBSD                        = 4,
 	ENA_ADMIN_OS_IPXE                           = 5,
-	ENA_ADMIN_OS_ESXI			    = 6,
-	ENA_ADMIN_OS_GROUPS_NUM			    = 6,
+	ENA_ADMIN_OS_ESXI                           = 6,
+	ENA_ADMIN_OS_GROUPS_NUM                     = 6,
 };
 
 struct ena_admin_host_info {
@@ -809,9 +856,12 @@
 
 	u16 reserved;
 
-	/* 1 :0 : reserved
+	/* 0 : reserved
+	 * 1 : rx_offset
 	 * 2 : interrupt_moderation
-	 * 31:3 : reserved
+	 * 3 : rx_buf_mirroring
+	 * 4 : rss_configurable_function_key
+	 * 31:5 : reserved
 	 */
 	u32 driver_supported_features;
 };
@@ -967,7 +1017,7 @@
 struct ena_admin_aenq_common_desc {
 	u16 group;
 
-	u16 syndrom;
+	u16 syndrome;
 
 	/* 0 : phase
 	 * 7:1 : reserved - MBZ
@@ -991,7 +1041,7 @@
 	ENA_ADMIN_AENQ_GROUPS_NUM                   = 5,
 };
 
-enum ena_admin_aenq_notification_syndrom {
+enum ena_admin_aenq_notification_syndrome {
 	ENA_ADMIN_SUSPEND                           = 0,
 	ENA_ADMIN_RESUME                            = 1,
 	ENA_ADMIN_UPDATE_HINTS                      = 2,
@@ -1017,6 +1067,10 @@
 	u32 rx_drops_low;
 
 	u32 rx_drops_high;
+
+	u32 tx_drops_low;
+
+	u32 tx_drops_high;
 };
 
 struct ena_admin_ena_mmio_req_read_less_resp {
@@ -1116,8 +1170,14 @@
 #define ENA_ADMIN_HOST_INFO_DEVICE_MASK                     GENMASK(7, 3)
 #define ENA_ADMIN_HOST_INFO_BUS_SHIFT                       8
 #define ENA_ADMIN_HOST_INFO_BUS_MASK                        GENMASK(15, 8)
+#define ENA_ADMIN_HOST_INFO_RX_OFFSET_SHIFT                 1
+#define ENA_ADMIN_HOST_INFO_RX_OFFSET_MASK                  BIT(1)
 #define ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_SHIFT      2
 #define ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_MASK       BIT(2)
+#define ENA_ADMIN_HOST_INFO_RX_BUF_MIRRORING_SHIFT          3
+#define ENA_ADMIN_HOST_INFO_RX_BUF_MIRRORING_MASK           BIT(3)
+#define ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_SHIFT 4
+#define ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_MASK BIT(4)
 
 /* aenq_common_desc */
 #define ENA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK               BIT(0)
@@ -1125,4 +1185,4 @@
 /* aenq_link_change_desc */
 #define ENA_ADMIN_AENQ_LINK_CHANGE_DESC_LINK_STATUS_MASK    BIT(0)
 
-#endif /*_ENA_ADMIN_H_ */
+#endif /* _ENA_ADMIN_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_com.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_com.c
@@ -1,33 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #include "ena_com.h"
@@ -62,7 +35,9 @@
 
 #define ENA_REGS_ADMIN_INTR_MASK 1
 
-#define ENA_POLL_MS	5
+#define ENA_MIN_ADMIN_POLL_US 100
+
+#define ENA_MAX_ADMIN_POLL_US 5000
 
 /*****************************************************************************/
 /*****************************************************************************/
@@ -96,7 +71,7 @@
 				       dma_addr_t addr)
 {
 	if ((addr & GENMASK_ULL(ena_dev->dma_addr_bits - 1, 0)) != addr) {
-		pr_err("dma address has more bits that the device supports\n");
+		pr_err("DMA address has more bits that the device supports\n");
 		return -EINVAL;
 	}
 
@@ -106,16 +81,16 @@
 	return 0;
 }
 
-static int ena_com_admin_init_sq(struct ena_com_admin_queue *queue)
+static int ena_com_admin_init_sq(struct ena_com_admin_queue *admin_queue)
 {
-	struct ena_com_admin_sq *sq = &queue->sq;
-	u16 size = ADMIN_SQ_SIZE(queue->q_depth);
+	struct ena_com_admin_sq *sq = &admin_queue->sq;
+	u16 size = ADMIN_SQ_SIZE(admin_queue->q_depth);
 
-	sq->entries = dma_alloc_coherent(queue->q_dmadev, size, &sq->dma_addr,
-					 GFP_KERNEL);
+	sq->entries = dma_alloc_coherent(admin_queue->q_dmadev, size,
+					 &sq->dma_addr, GFP_KERNEL);
 
 	if (!sq->entries) {
-		pr_err("memory allocation failed\n");
+		pr_err("Memory allocation failed\n");
 		return -ENOMEM;
 	}
 
@@ -128,16 +103,16 @@
 	return 0;
 }
 
-static int ena_com_admin_init_cq(struct ena_com_admin_queue *queue)
+static int ena_com_admin_init_cq(struct ena_com_admin_queue *admin_queue)
 {
-	struct ena_com_admin_cq *cq = &queue->cq;
-	u16 size = ADMIN_CQ_SIZE(queue->q_depth);
+	struct ena_com_admin_cq *cq = &admin_queue->cq;
+	u16 size = ADMIN_CQ_SIZE(admin_queue->q_depth);
 
-	cq->entries = dma_alloc_coherent(queue->q_dmadev, size, &cq->dma_addr,
-					 GFP_KERNEL);
+	cq->entries = dma_alloc_coherent(admin_queue->q_dmadev, size,
+					 &cq->dma_addr, GFP_KERNEL);
 
 	if (!cq->entries) {
-		pr_err("memory allocation failed\n");
+		pr_err("Memory allocation failed\n");
 		return -ENOMEM;
 	}
 
@@ -147,20 +122,20 @@
 	return 0;
 }
 
-static int ena_com_admin_init_aenq(struct ena_com_dev *dev,
+static int ena_com_admin_init_aenq(struct ena_com_dev *ena_dev,
 				   struct ena_aenq_handlers *aenq_handlers)
 {
-	struct ena_com_aenq *aenq = &dev->aenq;
+	struct ena_com_aenq *aenq = &ena_dev->aenq;
 	u32 addr_low, addr_high, aenq_caps;
 	u16 size;
 
-	dev->aenq.q_depth = ENA_ASYNC_QUEUE_DEPTH;
+	ena_dev->aenq.q_depth = ENA_ASYNC_QUEUE_DEPTH;
 	size = ADMIN_AENQ_SIZE(ENA_ASYNC_QUEUE_DEPTH);
-	aenq->entries = dma_alloc_coherent(dev->dmadev, size, &aenq->dma_addr,
-					   GFP_KERNEL);
+	aenq->entries = dma_alloc_coherent(ena_dev->dmadev, size,
+					   &aenq->dma_addr, GFP_KERNEL);
 
 	if (!aenq->entries) {
-		pr_err("memory allocation failed\n");
+		pr_err("Memory allocation failed\n");
 		return -ENOMEM;
 	}
 
@@ -170,18 +145,18 @@
 	addr_low = ENA_DMA_ADDR_TO_UINT32_LOW(aenq->dma_addr);
 	addr_high = ENA_DMA_ADDR_TO_UINT32_HIGH(aenq->dma_addr);
 
-	writel(addr_low, dev->reg_bar + ENA_REGS_AENQ_BASE_LO_OFF);
-	writel(addr_high, dev->reg_bar + ENA_REGS_AENQ_BASE_HI_OFF);
+	writel(addr_low, ena_dev->reg_bar + ENA_REGS_AENQ_BASE_LO_OFF);
+	writel(addr_high, ena_dev->reg_bar + ENA_REGS_AENQ_BASE_HI_OFF);
 
 	aenq_caps = 0;
-	aenq_caps |= dev->aenq.q_depth & ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK;
+	aenq_caps |= ena_dev->aenq.q_depth & ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK;
 	aenq_caps |= (sizeof(struct ena_admin_aenq_entry)
 		      << ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_SHIFT) &
 		     ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_MASK;
-	writel(aenq_caps, dev->reg_bar + ENA_REGS_AENQ_CAPS_OFF);
+	writel(aenq_caps, ena_dev->reg_bar + ENA_REGS_AENQ_CAPS_OFF);
 
 	if (unlikely(!aenq_handlers)) {
-		pr_err("aenq handlers pointer is NULL\n");
+		pr_err("AENQ handlers pointer is NULL\n");
 		return -EINVAL;
 	}
 
@@ -197,26 +172,31 @@
 	atomic_dec(&queue->outstanding_cmds);
 }
 
-static struct ena_comp_ctx *get_comp_ctxt(struct ena_com_admin_queue *queue,
+static struct ena_comp_ctx *get_comp_ctxt(struct ena_com_admin_queue *admin_queue,
 					  u16 command_id, bool capture)
 {
-	if (unlikely(command_id >= queue->q_depth)) {
-		pr_err("command id is larger than the queue size. cmd_id: %u queue size %d\n",
-		       command_id, queue->q_depth);
+	if (unlikely(command_id >= admin_queue->q_depth)) {
+		pr_err("Command id is larger than the queue size. cmd_id: %u queue size %d\n",
+		       command_id, admin_queue->q_depth);
+		return NULL;
+	}
+
+	if (unlikely(!admin_queue->comp_ctx)) {
+		pr_err("Completion context is NULL\n");
 		return NULL;
 	}
 
-	if (unlikely(queue->comp_ctx[command_id].occupied && capture)) {
+	if (unlikely(admin_queue->comp_ctx[command_id].occupied && capture)) {
 		pr_err("Completion context is occupied\n");
 		return NULL;
 	}
 
 	if (capture) {
-		atomic_inc(&queue->outstanding_cmds);
-		queue->comp_ctx[command_id].occupied = true;
+		atomic_inc(&admin_queue->outstanding_cmds);
+		admin_queue->comp_ctx[command_id].occupied = true;
 	}
 
-	return &queue->comp_ctx[command_id];
+	return &admin_queue->comp_ctx[command_id];
 }
 
 static struct ena_comp_ctx *__ena_com_submit_admin_cmd(struct ena_com_admin_queue *admin_queue,
@@ -237,7 +217,7 @@
 	/* In case of queue FULL */
 	cnt = (u16)atomic_read(&admin_queue->outstanding_cmds);
 	if (cnt >= admin_queue->q_depth) {
-		pr_debug("admin queue is full.\n");
+		pr_debug("Admin queue is full.\n");
 		admin_queue->stats.out_of_space++;
 		return ERR_PTR(-ENOSPC);
 	}
@@ -277,20 +257,21 @@
 	return comp_ctx;
 }
 
-static int ena_com_init_comp_ctxt(struct ena_com_admin_queue *queue)
+static int ena_com_init_comp_ctxt(struct ena_com_admin_queue *admin_queue)
 {
-	size_t size = queue->q_depth * sizeof(struct ena_comp_ctx);
+	size_t size = admin_queue->q_depth * sizeof(struct ena_comp_ctx);
 	struct ena_comp_ctx *comp_ctx;
 	u16 i;
 
-	queue->comp_ctx = devm_kzalloc(queue->q_dmadev, size, GFP_KERNEL);
-	if (unlikely(!queue->comp_ctx)) {
-		pr_err("memory allocation failed\n");
+	admin_queue->comp_ctx =
+		devm_kzalloc(admin_queue->q_dmadev, size, GFP_KERNEL);
+	if (unlikely(!admin_queue->comp_ctx)) {
+		pr_err("Memory allocation failed\n");
 		return -ENOMEM;
 	}
 
-	for (i = 0; i < queue->q_depth; i++) {
-		comp_ctx = get_comp_ctxt(queue, i, false);
+	for (i = 0; i < admin_queue->q_depth; i++) {
+		comp_ctx = get_comp_ctxt(admin_queue, i, false);
 		if (comp_ctx)
 			init_completion(&comp_ctx->wait_event);
 	}
@@ -356,7 +337,7 @@
 		}
 
 		if (!io_sq->desc_addr.virt_addr) {
-			pr_err("memory allocation failed\n");
+			pr_err("Memory allocation failed\n");
 			return -ENOMEM;
 		}
 	}
@@ -370,7 +351,7 @@
 		io_sq->bounce_buf_ctrl.next_to_use = 0;
 
 		size = io_sq->bounce_buf_ctrl.buffer_size *
-			 io_sq->bounce_buf_ctrl.buffers_num;
+			io_sq->bounce_buf_ctrl.buffers_num;
 
 		dev_node = dev_to_node(ena_dev->dmadev);
 		set_dev_node(ena_dev->dmadev, ctx->numa_node);
@@ -382,7 +363,7 @@
 				devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
 
 		if (!io_sq->bounce_buf_ctrl.base_buffer) {
-			pr_err("bounce buffer memory allocation failed\n");
+			pr_err("Bounce buffer memory allocation failed\n");
 			return -ENOMEM;
 		}
 
@@ -396,6 +377,8 @@
 		       0x0, io_sq->llq_info.desc_list_entry_size);
 		io_sq->llq_buf_ctrl.descs_left_in_line =
 			io_sq->llq_info.descs_num_before_header;
+		io_sq->disable_meta_caching =
+			io_sq->llq_info.disable_meta_caching;
 
 		if (io_sq->llq_info.max_entries_in_tx_burst > 0)
 			io_sq->entries_in_tx_burst_left =
@@ -440,7 +423,7 @@
 	}
 
 	if (!io_cq->cdesc_addr.virt_addr) {
-		pr_err("memory allocation failed\n");
+		pr_err("Memory allocation failed\n");
 		return -ENOMEM;
 	}
 
@@ -516,10 +499,7 @@
 static int ena_com_comp_status_to_errno(u8 comp_status)
 {
 	if (unlikely(comp_status != 0))
-		pr_err("admin command failed[%u]\n", comp_status);
-
-	if (unlikely(comp_status > ENA_ADMIN_UNKNOWN_ERROR))
-		return -EINVAL;
+		pr_err("Admin command failed[%u]\n", comp_status);
 
 	switch (comp_status) {
 	case ENA_ADMIN_SUCCESS:
@@ -533,9 +513,18 @@
 	case ENA_ADMIN_ILLEGAL_PARAMETER:
 	case ENA_ADMIN_UNKNOWN_ERROR:
 		return -EINVAL;
+	case ENA_ADMIN_RESOURCE_BUSY:
+		return -EAGAIN;
 	}
 
-	return 0;
+	return -EINVAL;
+}
+
+static void ena_delay_exponential_backoff_us(u32 exp, u32 delay_us)
+{
+	delay_us = max_t(u32, ENA_MIN_ADMIN_POLL_US, delay_us);
+	delay_us = min_t(u32, delay_us * (1U << exp), ENA_MAX_ADMIN_POLL_US);
+	usleep_range(delay_us, 2 * delay_us);
 }
 
 static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_ctx,
@@ -544,6 +533,7 @@
 	unsigned long flags = 0;
 	unsigned long timeout;
 	int ret;
+	u32 exp = 0;
 
 	timeout = jiffies + usecs_to_jiffies(admin_queue->completion_timeout);
 
@@ -567,7 +557,8 @@
 			goto err;
 		}
 
-		msleep(ENA_POLL_MS);
+		ena_delay_exponential_backoff_us(exp++,
+						 admin_queue->ena_dev->ena_min_poll_delay_us);
 	}
 
 	if (unlikely(comp_ctx->status == ENA_CMD_ABORTED)) {
@@ -588,7 +579,7 @@
 	return ret;
 }
 
-/**
+/*
  * Set the LLQ configurations of the firmware
  *
  * The driver provides only the enabled feature values to the device,
@@ -613,6 +604,10 @@
 	cmd.u.llq.desc_num_before_header_enabled = llq_info->descs_num_before_header;
 	cmd.u.llq.descriptors_stride_ctrl_enabled = llq_info->desc_stride_ctrl;
 
+	cmd.u.llq.accel_mode.u.set.enabled_flags =
+		BIT(ENA_ADMIN_DISABLE_META_CACHING) |
+		BIT(ENA_ADMIN_LIMIT_TX_BURST);
+
 	ret = ena_com_execute_admin_command(admin_queue,
 					    (struct ena_admin_aq_entry *)&cmd,
 					    sizeof(cmd),
@@ -630,6 +625,7 @@
 				   struct ena_llq_configurations *llq_default_cfg)
 {
 	struct ena_com_llq_info *llq_info = &ena_dev->llq_info;
+	struct ena_admin_accel_mode_get llq_accel_mode_get;
 	u16 supported_feat;
 	int rc;
 
@@ -697,8 +693,7 @@
 		/* The desc list entry size should be whole multiply of 8
 		 * This requirement comes from __iowrite64_copy()
 		 */
-		pr_err("illegal entry size %d\n",
-		       llq_info->desc_list_entry_size);
+		pr_err("Illegal entry size %d\n", llq_info->desc_list_entry_size);
 		return -EINVAL;
 	}
 
@@ -730,9 +725,17 @@
 		       llq_default_cfg->llq_num_decs_before_header,
 		       supported_feat, llq_info->descs_num_before_header);
 	}
+	/* Check for accelerated queue supported */
+	llq_accel_mode_get = llq_features->accel_mode.u.get;
 
-	llq_info->max_entries_in_tx_burst =
-		(u16)(llq_features->max_tx_burst_size /	llq_default_cfg->llq_ring_entry_size_value);
+	llq_info->disable_meta_caching =
+		!!(llq_accel_mode_get.supported_flags &
+		   BIT(ENA_ADMIN_DISABLE_META_CACHING));
+
+	if (llq_accel_mode_get.supported_flags & BIT(ENA_ADMIN_LIMIT_TX_BURST))
+		llq_info->max_entries_in_tx_burst =
+			llq_accel_mode_get.max_tx_burst_size /
+			llq_default_cfg->llq_ring_entry_size_value;
 
 	rc = ena_com_set_llq(ena_dev);
 	if (rc)
@@ -770,7 +773,7 @@
 			if (admin_queue->auto_polling)
 				admin_queue->polling = true;
 		} else {
-			pr_err("The ena device doesn't send a completion for the admin cmd %d status %d\n",
+			pr_err("The ena device didn't send a completion for the admin cmd %d status %d\n",
 			       comp_ctx->cmd_opcode, comp_ctx->status);
 		}
 		/* Check if shifted to polling mode.
@@ -831,7 +834,7 @@
 	}
 
 	if (unlikely(i == timeout)) {
-		pr_err("reading reg failed for timeout. expected: req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
+		pr_err("Reading reg failed for timeout. expected: req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
 		       mmio_read->seq_num, offset, read_resp->req_id,
 		       read_resp->reg_off);
 		ret = ENA_MMIO_READ_TIMEOUT;
@@ -898,7 +901,7 @@
 					    sizeof(destroy_resp));
 
 	if (unlikely(ret && (ret != -ENODEV)))
-		pr_err("failed to destroy io sq error: %d\n", ret);
+		pr_err("Failed to destroy io sq error: %d\n", ret);
 
 	return ret;
 }
@@ -938,12 +941,13 @@
 static int wait_for_reset_state(struct ena_com_dev *ena_dev, u32 timeout,
 				u16 exp_state)
 {
-	u32 val, i;
+	u32 val, exp = 0;
+	unsigned long timeout_stamp;
 
-	/* Convert timeout from resolution of 100ms to ENA_POLL_MS */
-	timeout = (timeout * 100) / ENA_POLL_MS;
+	/* Convert timeout from resolution of 100ms to us resolution. */
+	timeout_stamp = jiffies + usecs_to_jiffies(100 * 1000 * timeout);
 
-	for (i = 0; i < timeout; i++) {
+	while (1) {
 		val = ena_com_reg_bar_read32(ena_dev, ENA_REGS_DEV_STS_OFF);
 
 		if (unlikely(val == ENA_MMIO_READ_TIMEOUT)) {
@@ -955,10 +959,11 @@
 			exp_state)
 			return 0;
 
-		msleep(ENA_POLL_MS);
-	}
+		if (time_is_before_jiffies(timeout_stamp))
+			return -ETIME;
 
-	return -ETIME;
+		ena_delay_exponential_backoff_us(exp++, ena_dev->ena_min_poll_delay_us);
+	}
 }
 
 static bool ena_com_check_supported_feature_id(struct ena_com_dev *ena_dev,
@@ -1005,7 +1010,7 @@
 				   &get_cmd.control_buffer.address,
 				   control_buf_dma_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 
@@ -1041,10 +1046,31 @@
 				      feature_ver);
 }
 
+static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev)
+{
+	struct ena_admin_feature_rss_flow_hash_control *hash_key =
+		(ena_dev->rss).hash_key;
+
+	netdev_rss_key_fill(&hash_key->key, sizeof(hash_key->key));
+	/* The key buffer is stored in the device in an array of
+	 * uint32 elements.
+	 */
+	hash_key->key_parts = ENA_ADMIN_RSS_KEY_PARTS;
+}
+
+int ena_com_get_current_hash_function(struct ena_com_dev *ena_dev)
+{
+	return ena_dev->rss.hash_func;
+}
+
 static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev)
 {
 	struct ena_rss *rss = &ena_dev->rss;
 
+	if (!ena_com_check_supported_feature_id(ena_dev,
+						ENA_ADMIN_RSS_HASH_FUNCTION))
+		return -EOPNOTSUPP;
+
 	rss->hash_key =
 		dma_alloc_coherent(ena_dev->dmadev, sizeof(*rss->hash_key),
 				   &rss->hash_key_dma_addr, GFP_KERNEL);
@@ -1098,13 +1124,13 @@
 	int ret;
 
 	ret = ena_com_get_feature(ena_dev, &get_resp,
-				  ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG, 0);
+				  ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG, 0);
 	if (unlikely(ret))
 		return ret;
 
 	if ((get_resp.u.ind_table.min_size > log_size) ||
 	    (get_resp.u.ind_table.max_size < log_size)) {
-		pr_err("indirect table size doesn't fit. requested size: %d while min is:%d and max %d\n",
+		pr_err("Indirect table size doesn't fit. requested size: %d while min is:%d and max %d\n",
 		       1 << log_size, 1 << get_resp.u.ind_table.min_size,
 		       1 << get_resp.u.ind_table.max_size);
 		return -EINVAL;
@@ -1197,7 +1223,7 @@
 					   &create_cmd.sq_ba,
 					   io_sq->desc_addr.phys_addr);
 		if (unlikely(ret)) {
-			pr_err("memory address set failed\n");
+			pr_err("Memory address set failed\n");
 			return ret;
 		}
 	}
@@ -1226,7 +1252,7 @@
 			cmd_completion.llq_descriptors_offset);
 	}
 
-	pr_debug("created sq[%u], depth[%u]\n", io_sq->idx, io_sq->q_depth);
+	pr_debug("Created sq[%u], depth[%u]\n", io_sq->idx, io_sq->q_depth);
 
 	return ret;
 }
@@ -1254,40 +1280,12 @@
 	return 0;
 }
 
-static int ena_com_ind_tbl_convert_from_device(struct ena_com_dev *ena_dev)
-{
-	u16 dev_idx_to_host_tbl[ENA_TOTAL_NUM_QUEUES] = { (u16)-1 };
-	struct ena_rss *rss = &ena_dev->rss;
-	u8 idx;
-	u16 i;
-
-	for (i = 0; i < ENA_TOTAL_NUM_QUEUES; i++)
-		dev_idx_to_host_tbl[ena_dev->io_sq_queues[i].idx] = i;
-
-	for (i = 0; i < 1 << rss->tbl_log_size; i++) {
-		if (rss->rss_ind_tbl[i].cq_idx > ENA_TOTAL_NUM_QUEUES)
-			return -EINVAL;
-		idx = (u8)rss->rss_ind_tbl[i].cq_idx;
-
-		if (dev_idx_to_host_tbl[idx] > ENA_TOTAL_NUM_QUEUES)
-			return -EINVAL;
-
-		rss->host_rss_ind_tbl[i] = dev_idx_to_host_tbl[idx];
-	}
-
-	return 0;
-}
-
 static void ena_com_update_intr_delay_resolution(struct ena_com_dev *ena_dev,
 						 u16 intr_delay_resolution)
 {
-	/* Initial value of intr_delay_resolution might be 0 */
-	u16 prev_intr_delay_resolution =
-		ena_dev->intr_delay_resolution ?
-		ena_dev->intr_delay_resolution :
-		ENA_DEFAULT_INTR_DELAY_RESOLUTION;
+	u16 prev_intr_delay_resolution = ena_dev->intr_delay_resolution;
 
-	if (!intr_delay_resolution) {
+	if (unlikely(!intr_delay_resolution)) {
 		pr_err("Illegal intr_delay_resolution provided. Going to use default 1 usec resolution\n");
 		intr_delay_resolution = ENA_DEFAULT_INTR_DELAY_RESOLUTION;
 	}
@@ -1367,7 +1365,7 @@
 				   &create_cmd.cq_ba,
 				   io_cq->cdesc_addr.phys_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 
@@ -1396,7 +1394,7 @@
 			(u32 __iomem *)((uintptr_t)ena_dev->reg_bar +
 			cmd_completion.numa_node_register_offset);
 
-	pr_debug("created cq[%u], depth[%u]\n", io_cq->idx, io_cq->q_depth);
+	pr_debug("Created cq[%u], depth[%u]\n", io_cq->idx, io_cq->q_depth);
 
 	return ret;
 }
@@ -1441,11 +1439,13 @@
 {
 	struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
 	unsigned long flags = 0;
+	u32 exp = 0;
 
 	spin_lock_irqsave(&admin_queue->q_lock, flags);
 	while (atomic_read(&admin_queue->outstanding_cmds) != 0) {
 		spin_unlock_irqrestore(&admin_queue->q_lock, flags);
-		msleep(ENA_POLL_MS);
+		ena_delay_exponential_backoff_us(exp++,
+						 ena_dev->ena_min_poll_delay_us);
 		spin_lock_irqsave(&admin_queue->q_lock, flags);
 	}
 	spin_unlock_irqrestore(&admin_queue->q_lock, flags);
@@ -1587,12 +1587,12 @@
 		return -ETIME;
 	}
 
-	pr_info("ena device version: %d.%d\n",
+	pr_info("ENA device version: %d.%d\n",
 		(ver & ENA_REGS_VERSION_MAJOR_VERSION_MASK) >>
 			ENA_REGS_VERSION_MAJOR_VERSION_SHIFT,
 		ver & ENA_REGS_VERSION_MINOR_VERSION_MASK);
 
-	pr_info("ena controller version: %d.%d.%d implementation version %d\n",
+	pr_info("ENA controller version: %d.%d.%d implementation version %d\n",
 		(ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK) >>
 			ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT,
 		(ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK) >>
@@ -1615,6 +1615,19 @@
 	return 0;
 }
 
+static void
+ena_com_free_ena_admin_queue_comp_ctx(struct ena_com_dev *ena_dev,
+				      struct ena_com_admin_queue *admin_queue)
+
+{
+	if (!admin_queue->comp_ctx)
+		return;
+
+	devm_kfree(ena_dev->dmadev, admin_queue->comp_ctx);
+
+	admin_queue->comp_ctx = NULL;
+}
+
 void ena_com_admin_destroy(struct ena_com_dev *ena_dev)
 {
 	struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
@@ -1623,9 +1636,8 @@
 	struct ena_com_aenq *aenq = &ena_dev->aenq;
 	u16 size;
 
-	if (admin_queue->comp_ctx)
-		devm_kfree(ena_dev->dmadev, admin_queue->comp_ctx);
-	admin_queue->comp_ctx = NULL;
+	ena_com_free_ena_admin_queue_comp_ctx(ena_dev, admin_queue);
+
 	size = ADMIN_SQ_SIZE(admin_queue->q_depth);
 	if (sq->entries)
 		dma_free_coherent(ena_dev->dmadev, size, sq->entries,
@@ -1793,6 +1805,7 @@
 	if (ret)
 		goto error;
 
+	admin_queue->ena_dev = ena_dev;
 	admin_queue->running_state = true;
 
 	return 0;
@@ -1902,6 +1915,7 @@
 
 	memcpy(&get_feat_ctx->dev_attr, &get_resp.u.dev_attr,
 	       sizeof(get_resp.u.dev_attr));
+
 	ena_dev->supported_features = get_resp.u.dev_attr.supported_features;
 
 	if (ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
@@ -1980,10 +1994,10 @@
 /* ena_handle_specific_aenq_event:
  * return the handler that is relevant to the specific event group
  */
-static ena_aenq_handler ena_com_get_specific_aenq_cb(struct ena_com_dev *dev,
+static ena_aenq_handler ena_com_get_specific_aenq_cb(struct ena_com_dev *ena_dev,
 						     u16 group)
 {
-	struct ena_aenq_handlers *aenq_handlers = dev->aenq.aenq_handlers;
+	struct ena_aenq_handlers *aenq_handlers = ena_dev->aenq.aenq_handlers;
 
 	if ((group < ENA_MAX_HANDLERS) && aenq_handlers->handlers[group])
 		return aenq_handlers->handlers[group];
@@ -1995,12 +2009,12 @@
  * handles the aenq incoming events.
  * pop events from the queue and apply the specific handler
  */
-void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data)
+void ena_com_aenq_intr_handler(struct ena_com_dev *ena_dev, void *data)
 {
 	struct ena_admin_aenq_entry *aenq_e;
 	struct ena_admin_aenq_common_desc *aenq_common;
-	struct ena_com_aenq *aenq  = &dev->aenq;
-	unsigned long long timestamp;
+	struct ena_com_aenq *aenq  = &ena_dev->aenq;
+	u64 timestamp;
 	ena_aenq_handler handler_cb;
 	u16 masked_head, processed = 0;
 	u8 phase;
@@ -2018,14 +2032,14 @@
 		 */
 		dma_rmb();
 
-		timestamp =
-			(unsigned long long)aenq_common->timestamp_low |
-			((unsigned long long)aenq_common->timestamp_high << 32);
-		pr_debug("AENQ! Group[%x] Syndrom[%x] timestamp: [%llus]\n",
-			 aenq_common->group, aenq_common->syndrom, timestamp);
+		timestamp = (u64)aenq_common->timestamp_low |
+			((u64)aenq_common->timestamp_high << 32);
+
+		pr_debug("AENQ! Group[%x] Syndrome[%x] timestamp: [%llus]\n",
+			 aenq_common->group, aenq_common->syndrome, timestamp);
 
 		/* Handle specific event*/
-		handler_cb = ena_com_get_specific_aenq_cb(dev,
+		handler_cb = ena_com_get_specific_aenq_cb(ena_dev,
 							  aenq_common->group);
 		handler_cb(data, aenq_e); /* call the actual event handler*/
 
@@ -2051,7 +2065,7 @@
 	/* write the aenq doorbell after all AENQ descriptors were read */
 	mb();
 	writel_relaxed((u32)aenq->head,
-		       dev->reg_bar + ENA_REGS_AENQ_HEAD_DB_OFF);
+		       ena_dev->reg_bar + ENA_REGS_AENQ_HEAD_DB_OFF);
 }
 
 int ena_com_dev_reset(struct ena_com_dev *ena_dev,
@@ -2143,6 +2157,21 @@
 	return ret;
 }
 
+int ena_com_get_eni_stats(struct ena_com_dev *ena_dev,
+			  struct ena_admin_eni_stats *stats)
+{
+	struct ena_com_stats_ctx ctx;
+	int ret;
+
+	memset(&ctx, 0x0, sizeof(ctx));
+	ret = ena_get_dev_stats(ena_dev, &ctx, ENA_ADMIN_GET_STATS_TYPE_ENI);
+	if (likely(ret == 0))
+		memcpy(stats, &ctx.get_resp.u.eni_stats,
+		       sizeof(ctx.get_resp.u.eni_stats));
+
+	return ret;
+}
+
 int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev,
 				struct ena_admin_basic_stats *stats)
 {
@@ -2152,8 +2181,8 @@
 	memset(&ctx, 0x0, sizeof(ctx));
 	ret = ena_get_dev_stats(ena_dev, &ctx, ENA_ADMIN_GET_STATS_TYPE_BASIC);
 	if (likely(ret == 0))
-		memcpy(stats, &ctx.get_resp.basic_stats,
-		       sizeof(ctx.get_resp.basic_stats));
+		memcpy(stats, &ctx.get_resp.u.basic_stats,
+		       sizeof(ctx.get_resp.u.basic_stats));
 
 	return ret;
 }
@@ -2249,7 +2278,7 @@
 				   &cmd.control_buffer.address,
 				   rss->hash_key_dma_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 
@@ -2273,12 +2302,14 @@
 			       enum ena_admin_hash_functions func,
 			       const u8 *key, u16 key_len, u32 init_val)
 {
-	struct ena_rss *rss = &ena_dev->rss;
+	struct ena_admin_feature_rss_flow_hash_control *hash_key;
 	struct ena_admin_get_feat_resp get_resp;
-	struct ena_admin_feature_rss_flow_hash_control *hash_key =
-		rss->hash_key;
+	enum ena_admin_hash_functions old_func;
+	struct ena_rss *rss = &ena_dev->rss;
 	int rc;
 
+	hash_key = rss->hash_key;
+
 	/* Make sure size is a mult of DWs */
 	if (unlikely(key_len & 0x3))
 		return -EINVAL;
@@ -2290,22 +2321,23 @@
 	if (unlikely(rc))
 		return rc;
 
-	if (!((1 << func) & get_resp.u.flow_hash_func.supported_func)) {
+	if (!(BIT(func) & get_resp.u.flow_hash_func.supported_func)) {
 		pr_err("Flow hash function %d isn't supported\n", func);
 		return -EOPNOTSUPP;
 	}
 
 	switch (func) {
 	case ENA_ADMIN_TOEPLITZ:
-		if (key_len > sizeof(hash_key->key)) {
-			pr_err("key len (%hu) is bigger than the max supported (%zu)\n",
-			       key_len, sizeof(hash_key->key));
-			return -EINVAL;
+		if (key) {
+			if (key_len != sizeof(hash_key->key)) {
+				pr_err("key len (%hu) doesn't equal the supported size (%zu)\n",
+				       key_len, sizeof(hash_key->key));
+				return -EINVAL;
+			}
+			memcpy(hash_key->key, key, key_len);
+			rss->hash_init_val = init_val;
+			hash_key->key_parts = key_len / sizeof(hash_key->key[0]);
 		}
-
-		memcpy(hash_key->key, key, key_len);
-		rss->hash_init_val = init_val;
-		hash_key->keys_num = key_len >> 2;
 		break;
 	case ENA_ADMIN_CRC32:
 		rss->hash_init_val = init_val;
@@ -2315,26 +2347,27 @@
 		return -EINVAL;
 	}
 
+	old_func = rss->hash_func;
 	rss->hash_func = func;
 	rc = ena_com_set_hash_function(ena_dev);
 
 	/* Restore the old function */
 	if (unlikely(rc))
-		ena_com_get_hash_function(ena_dev, NULL, NULL);
+		rss->hash_func = old_func;
 
 	return rc;
 }
 
 int ena_com_get_hash_function(struct ena_com_dev *ena_dev,
-			      enum ena_admin_hash_functions *func,
-			      u8 *key)
+			      enum ena_admin_hash_functions *func)
 {
 	struct ena_rss *rss = &ena_dev->rss;
 	struct ena_admin_get_feat_resp get_resp;
-	struct ena_admin_feature_rss_flow_hash_control *hash_key =
-		rss->hash_key;
 	int rc;
 
+	if (unlikely(!func))
+		return -EINVAL;
+
 	rc = ena_com_get_feature_ex(ena_dev, &get_resp,
 				    ENA_ADMIN_RSS_HASH_FUNCTION,
 				    rss->hash_key_dma_addr,
@@ -2342,12 +2375,24 @@
 	if (unlikely(rc))
 		return rc;
 
-	rss->hash_func = get_resp.u.flow_hash_func.selected_func;
-	if (func)
-		*func = rss->hash_func;
+	/* ffs() returns 1 in case the lsb is set */
+	rss->hash_func = ffs(get_resp.u.flow_hash_func.selected_func);
+	if (rss->hash_func)
+		rss->hash_func--;
+
+	*func = rss->hash_func;
+
+	return 0;
+}
+
+int ena_com_get_hash_key(struct ena_com_dev *ena_dev, u8 *key)
+{
+	struct ena_admin_feature_rss_flow_hash_control *hash_key =
+		ena_dev->rss.hash_key;
 
 	if (key)
-		memcpy(key, hash_key->key, (size_t)(hash_key->keys_num) << 2);
+		memcpy(key, hash_key->key,
+		       (size_t)(hash_key->key_parts) * sizeof(hash_key->key[0]));
 
 	return 0;
 }
@@ -2403,7 +2448,7 @@
 				   &cmd.control_buffer.address,
 				   rss->hash_ctrl_dma_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 	cmd.control_buffer.length = sizeof(*hash_ctrl);
@@ -2464,7 +2509,7 @@
 		available_fields = hash_ctrl->selected_fields[i].fields &
 				hash_ctrl->supported_fields[i].fields;
 		if (available_fields != hash_ctrl->selected_fields[i].fields) {
-			pr_err("hash control doesn't support all the desire configuration. proto %x supported %x selected %x\n",
+			pr_err("Hash control doesn't support all the desire configuration. proto %x supported %x selected %x\n",
 			       i, hash_ctrl->supported_fields[i].fields,
 			       hash_ctrl->selected_fields[i].fields);
 			return -EOPNOTSUPP;
@@ -2502,7 +2547,7 @@
 	/* Make sure all the fields are supported */
 	supported_fields = hash_ctrl->supported_fields[proto].fields;
 	if ((hash_fields & supported_fields) != hash_fields) {
-		pr_err("proto %d doesn't support the required fields %x. supports only: %x\n",
+		pr_err("Proto %d doesn't support the required fields %x. supports only: %x\n",
 		       proto, hash_fields, supported_fields);
 	}
 
@@ -2542,9 +2587,9 @@
 	int ret;
 
 	if (!ena_com_check_supported_feature_id(
-		    ena_dev, ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG)) {
+		    ena_dev, ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG)) {
 		pr_debug("Feature %d isn't supported\n",
-			 ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG);
+			 ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG);
 		return -EOPNOTSUPP;
 	}
 
@@ -2559,7 +2604,7 @@
 	cmd.aq_common_descriptor.opcode = ENA_ADMIN_SET_FEATURE;
 	cmd.aq_common_descriptor.flags =
 		ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK;
-	cmd.feat_common.feature_id = ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG;
+	cmd.feat_common.feature_id = ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG;
 	cmd.u.ind_table.size = rss->tbl_log_size;
 	cmd.u.ind_table.inline_index = 0xFFFFFFFF;
 
@@ -2567,7 +2612,7 @@
 				   &cmd.control_buffer.address,
 				   rss->rss_ind_tbl_dma_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 
@@ -2597,7 +2642,7 @@
 		sizeof(struct ena_admin_rss_ind_table_entry);
 
 	rc = ena_com_get_feature_ex(ena_dev, &get_resp,
-				    ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG,
+				    ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG,
 				    rss->rss_ind_tbl_dma_addr,
 				    tbl_size, 0);
 	if (unlikely(rc))
@@ -2606,10 +2651,6 @@
 	if (!ind_tbl)
 		return 0;
 
-	rc = ena_com_ind_tbl_convert_from_device(ena_dev);
-	if (unlikely(rc))
-		return rc;
-
 	for (i = 0; i < (1 << rss->tbl_log_size); i++)
 		ind_tbl[i] = rss->host_rss_ind_tbl[i];
 
@@ -2626,8 +2667,14 @@
 	if (unlikely(rc))
 		goto err_indr_tbl;
 
+	/* The following function might return unsupported in case the
+	 * device doesn't support setting the key / hash function. We can safely
+	 * ignore this error and have indirection table support only.
+	 */
 	rc = ena_com_hash_key_allocate(ena_dev);
-	if (unlikely(rc))
+	if (likely(!rc))
+		ena_com_hash_key_fill_default_key(ena_dev);
+	else if (rc != -EOPNOTSUPP)
 		goto err_hash_key;
 
 	rc = ena_com_hash_ctrl_init(ena_dev);
@@ -2678,8 +2725,7 @@
 
 	host_attr->debug_area_virt_addr =
 		dma_alloc_coherent(ena_dev->dmadev, debug_area_size,
-				   &host_attr->debug_area_dma_addr,
-				   GFP_KERNEL);
+				   &host_attr->debug_area_dma_addr, GFP_KERNEL);
 	if (unlikely(!host_attr->debug_area_virt_addr)) {
 		host_attr->debug_area_size = 0;
 		return -ENOMEM;
@@ -2736,7 +2782,7 @@
 				   &cmd.u.host_attr.debug_ba,
 				   host_attr->debug_area_dma_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 
@@ -2744,7 +2790,7 @@
 				   &cmd.u.host_attr.os_info_ba,
 				   host_attr->host_info_dma_addr);
 	if (unlikely(ret)) {
-		pr_err("memory address set failed\n");
+		pr_err("Memory address set failed\n");
 		return ret;
 	}
 
@@ -2863,7 +2909,7 @@
 		(llq_info->descs_num_before_header * sizeof(struct ena_eth_io_tx_desc));
 
 	if (unlikely(ena_dev->tx_max_header_size == 0)) {
-		pr_err("the size of the LLQ entry is smaller than needed\n");
+		pr_err("The size of the LLQ entry is smaller than needed\n");
 		return -EINVAL;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_com.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_com.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef ENA_COM
@@ -44,6 +17,7 @@
 #include <linux/spinlock.h>
 #include <linux/types.h>
 #include <linux/wait.h>
+#include <linux/netdevice.h>
 
 #include "ena_common_defs.h"
 #include "ena_admin_defs.h"
@@ -53,9 +27,9 @@
 #undef pr_fmt
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
-#define ENA_MAX_NUM_IO_QUEUES		128U
+#define ENA_MAX_NUM_IO_QUEUES 128U
 /* We need to queues for each IO (on for Tx and one for Rx) */
-#define ENA_TOTAL_NUM_QUEUES		(2 * (ENA_MAX_NUM_IO_QUEUES))
+#define ENA_TOTAL_NUM_QUEUES (2 * (ENA_MAX_NUM_IO_QUEUES))
 
 #define ENA_MAX_HANDLERS 256
 
@@ -72,13 +46,15 @@
 /*****************************************************************************/
 /* ENA adaptive interrupt moderation settings */
 
-#define ENA_INTR_INITIAL_TX_INTERVAL_USECS		196
-#define ENA_INTR_INITIAL_RX_INTERVAL_USECS		0
-#define ENA_DEFAULT_INTR_DELAY_RESOLUTION		1
+#define ENA_INTR_INITIAL_TX_INTERVAL_USECS 64
+#define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0
+#define ENA_DEFAULT_INTR_DELAY_RESOLUTION 1
+
+#define ENA_HASH_KEY_SIZE 40
 
-#define ENA_HW_HINTS_NO_TIMEOUT				0xFFFF
+#define ENA_HW_HINTS_NO_TIMEOUT	0xFFFF
 
-#define ENA_FEATURE_MAX_QUEUE_EXT_VER	1
+#define ENA_FEATURE_MAX_QUEUE_EXT_VER 1
 
 struct ena_llq_configurations {
 	enum ena_admin_llq_header_location llq_header_location;
@@ -124,6 +100,7 @@
 	u16 descs_num_before_header;
 	u16 descs_per_entry;
 	u16 max_entries_in_tx_burst;
+	bool disable_meta_caching;
 };
 
 struct ena_com_io_cq {
@@ -186,6 +163,8 @@
 	enum queue_direction direction;
 	enum ena_admin_placement_policy_type mem_queue_type;
 
+	bool disable_meta_caching;
+
 	u32 msix_vector;
 	struct ena_com_tx_meta cached_tx_meta;
 	struct ena_com_llq_info llq_info;
@@ -227,15 +206,16 @@
 };
 
 struct ena_com_stats_admin {
-	u32 aborted_cmd;
-	u32 submitted_cmd;
-	u32 completed_cmd;
-	u32 out_of_space;
-	u32 no_completion;
+	u64 aborted_cmd;
+	u64 submitted_cmd;
+	u64 completed_cmd;
+	u64 out_of_space;
+	u64 no_completion;
 };
 
 struct ena_com_admin_queue {
 	void *q_dmadev;
+	struct ena_com_dev *ena_dev;
 	spinlock_t q_lock; /* spinlock for the admin queue */
 
 	struct ena_comp_ctx *comp_ctx;
@@ -348,6 +328,8 @@
 	struct ena_intr_moder_entry *intr_moder_tbl;
 
 	struct ena_com_llq_info llq_info;
+
+	u32 ena_min_poll_delay_us;
 };
 
 struct ena_com_dev_get_features_ctx {
@@ -392,7 +374,7 @@
  */
 int ena_com_mmio_reg_read_request_init(struct ena_com_dev *ena_dev);
 
-/* ena_com_set_mmio_read_mode - Enable/disable the mmio reg read mechanism
+/* ena_com_set_mmio_read_mode - Enable/disable the indirect mmio reg read mechanism
  * @ena_dev: ENA communication layer struct
  * @readless_supported: readless mode (enable/disable)
  */
@@ -500,18 +482,6 @@
  */
 void ena_com_set_admin_polling_mode(struct ena_com_dev *ena_dev, bool polling);
 
-/* ena_com_set_admin_polling_mode - Get the admin completion queue polling mode
- * @ena_dev: ENA communication layer struct
- *
- * Get the admin completion mode.
- * If polling mode is on, ena_com_execute_admin_command will perform a
- * polling on the admin completion queue for the commands completion,
- * otherwise it will wait on wait event.
- *
- * @return state
- */
-bool ena_com_get_ena_admin_polling_mode(struct ena_com_dev *ena_dev);
-
 /* ena_com_set_admin_auto_polling_mode - Enable autoswitch to polling mode
  * @ena_dev: ENA communication layer struct
  * @polling: Enable/Disable polling mode
@@ -526,7 +496,7 @@
 /* ena_com_admin_q_comp_intr_handler - admin queue interrupt handler
  * @ena_dev: ENA communication layer struct
  *
- * This method go over the admin completion queue and wake up all the pending
+ * This method goes over the admin completion queue and wakes up all the pending
  * threads that wait on the commands wait event.
  *
  * @note: Should be called after MSI-X interrupt.
@@ -536,10 +506,10 @@
 /* ena_com_aenq_intr_handler - AENQ interrupt handler
  * @ena_dev: ENA communication layer struct
  *
- * This method go over the async event notification queue and call the proper
+ * This method goes over the async event notification queue and calls the proper
  * aenq handler.
  */
-void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data);
+void ena_com_aenq_intr_handler(struct ena_com_dev *ena_dev, void *data);
 
 /* ena_com_abort_admin_commands - Abort all the outstanding admin commands.
  * @ena_dev: ENA communication layer struct
@@ -553,14 +523,14 @@
 /* ena_com_wait_for_abort_completion - Wait for admin commands abort.
  * @ena_dev: ENA communication layer struct
  *
- * This method wait until all the outstanding admin commands will be completed.
+ * This method waits until all the outstanding admin commands are completed.
  */
 void ena_com_wait_for_abort_completion(struct ena_com_dev *ena_dev);
 
 /* ena_com_validate_version - Validate the device parameters
  * @ena_dev: ENA communication layer struct
  *
- * This method validate the device parameters are the same as the saved
+ * This method verifies the device parameters are the same as the saved
  * parameters in ena_dev.
  * This method is useful after device reset, to validate the device mac address
  * and the device offloads are the same as before the reset.
@@ -619,6 +589,15 @@
 int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev,
 				struct ena_admin_basic_stats *stats);
 
+/* ena_com_get_eni_stats - Get extended network interface statistics
+ * @ena_dev: ENA communication layer struct
+ * @stats: stats return value
+ *
+ * @return: 0 on Success and negative value otherwise.
+ */
+int ena_com_get_eni_stats(struct ena_com_dev *ena_dev,
+			  struct ena_admin_eni_stats *stats);
+
 /* ena_com_set_dev_mtu - Configure the device mtu.
  * @ena_dev: ENA communication layer struct
  * @mtu: mtu value
@@ -655,6 +634,14 @@
  */
 void ena_com_rss_destroy(struct ena_com_dev *ena_dev);
 
+/* ena_com_get_current_hash_function - Get RSS hash function
+ * @ena_dev: ENA communication layer struct
+ *
+ * Return the current hash function.
+ * @return: 0 or one of the ena_admin_hash_functions values.
+ */
+int ena_com_get_current_hash_function(struct ena_com_dev *ena_dev);
+
 /* ena_com_fill_hash_function - Fill RSS hash function
  * @ena_dev: ENA communication layer struct
  * @func: The hash function (Toeplitz or crc)
@@ -686,23 +673,32 @@
  */
 int ena_com_set_hash_function(struct ena_com_dev *ena_dev);
 
-/* ena_com_get_hash_function - Retrieve the hash function and the hash key
- * from the device.
+/* ena_com_get_hash_function - Retrieve the hash function from the device.
  * @ena_dev: ENA communication layer struct
  * @func: hash function
- * @key: hash key
  *
- * Retrieve the hash function and the hash key from the device.
+ * Retrieve the hash function from the device.
  *
- * @note: If the caller called ena_com_fill_hash_function but didn't flash
+ * @note: If the caller called ena_com_fill_hash_function but didn't flush
  * it to the device, the new configuration will be lost.
  *
  * @return: 0 on Success and negative value otherwise.
  */
 int ena_com_get_hash_function(struct ena_com_dev *ena_dev,
-			      enum ena_admin_hash_functions *func,
-			      u8 *key);
+			      enum ena_admin_hash_functions *func);
 
+/* ena_com_get_hash_key - Retrieve the hash key
+ * @ena_dev: ENA communication layer struct
+ * @key: hash key
+ *
+ * Retrieve the hash key.
+ *
+ * @note: If the caller called ena_com_fill_hash_key but didn't flush
+ * it to the device, the new configuration will be lost.
+ *
+ * @return: 0 on Success and negative value otherwise.
+ */
+int ena_com_get_hash_key(struct ena_com_dev *ena_dev, u8 *key);
 /* ena_com_fill_hash_ctrl - Fill RSS hash control
  * @ena_dev: ENA communication layer struct.
  * @proto: The protocol to configure.
@@ -737,7 +733,7 @@
  *
  * Retrieve the hash control from the device.
  *
- * @note, If the caller called ena_com_fill_hash_ctrl but didn't flash
+ * @note: If the caller called ena_com_fill_hash_ctrl but didn't flush
  * it to the device, the new configuration will be lost.
  *
  * @return: 0 on Success and negative value otherwise.
@@ -789,7 +785,7 @@
  *
  * Retrieve the RSS indirection table from the device.
  *
- * @note: If the caller called ena_com_indirect_table_fill_entry but didn't flash
+ * @note: If the caller called ena_com_indirect_table_fill_entry but didn't flush
  * it to the device, the new configuration will be lost.
  *
  * @return: 0 on Success and negative value otherwise.
@@ -815,14 +811,14 @@
 /* ena_com_delete_debug_area - Free the debug area resources.
  * @ena_dev: ENA communication layer struct
  *
- * Free the allocate debug area.
+ * Free the allocated debug area.
  */
 void ena_com_delete_debug_area(struct ena_com_dev *ena_dev);
 
 /* ena_com_delete_host_info - Free the host info resources.
  * @ena_dev: ENA communication layer struct
  *
- * Free the allocate host info.
+ * Free the allocated host info.
  */
 void ena_com_delete_host_info(struct ena_com_dev *ena_dev);
 
@@ -863,9 +859,9 @@
  * @cmd_completion: command completion return value.
  * @cmd_comp_size: command completion size.
 
- * Submit an admin command and then wait until the device will return a
+ * Submit an admin command and then wait until the device returns a
  * completion.
- * The completion will be copyed into cmd_comp.
+ * The completion will be copied into cmd_comp.
  *
  * @return - 0 on success, negative value on failure.
  */
@@ -928,7 +924,7 @@
 /* ena_com_config_dev_mode - Configure the placement policy of the device.
  * @ena_dev: ENA communication layer struct
  * @llq_features: LLQ feature descriptor, retrieve via
- *                ena_com_get_dev_attr_feat.
+ *		   ena_com_get_dev_attr_feat.
  * @ena_llq_config: The default driver LLQ parameters configurations
  */
 int ena_com_config_dev_mode(struct ena_com_dev *ena_dev,
@@ -954,7 +950,7 @@
  * @intr_reg: interrupt register to update.
  * @rx_delay_interval: Rx interval in usecs
  * @tx_delay_interval: Tx interval in usecs
- * @unmask: unask enable/disable
+ * @unmask: unmask enable/disable
  *
  * Prepare interrupt update register with the supplied parameters.
  */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_common_defs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_common_defs.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 - 2016 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 #ifndef _ENA_COMMON_H_
 #define _ENA_COMMON_H_
@@ -45,4 +18,4 @@
 	u16 reserved16;
 };
 
-#endif /*_ENA_COMMON_H_ */
+#endif /* _ENA_COMMON_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_eth_com.c
@@ -1,33 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #include "ena_eth_com.h"
@@ -45,8 +18,9 @@
 	cdesc = (struct ena_eth_io_rx_cdesc_base *)(io_cq->cdesc_addr.virt_addr
 			+ (head_masked * io_cq->cdesc_entry_size_in_bytes));
 
-	desc_phase = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >>
-			ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT;
+	desc_phase = (READ_ONCE(cdesc->status) &
+		      ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >>
+		     ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT;
 
 	if (desc_phase != expected_phase)
 		return NULL;
@@ -89,7 +63,7 @@
 		}
 
 		io_sq->entries_in_tx_burst_left--;
-		pr_debug("decreasing entries_in_tx_burst_left of queue %d to %d\n",
+		pr_debug("Decreasing entries_in_tx_burst_left of queue %d to %d\n",
 			 io_sq->qid, io_sq->entries_in_tx_burst_left);
 	}
 
@@ -128,12 +102,12 @@
 
 	if (unlikely((header_offset + header_len) >
 		     llq_info->desc_list_entry_size)) {
-		pr_err("trying to write header larger than llq entry can accommodate\n");
+		pr_err("Trying to write header larger than llq entry can accommodate\n");
 		return -EFAULT;
 	}
 
 	if (unlikely(!bounce_buffer)) {
-		pr_err("bounce buffer is NULL\n");
+		pr_err("Bounce buffer is NULL\n");
 		return -EFAULT;
 	}
 
@@ -151,7 +125,7 @@
 	bounce_buffer = pkt_ctrl->curr_bounce_buf;
 
 	if (unlikely(!bounce_buffer)) {
-		pr_err("bounce buffer is NULL\n");
+		pr_err("Bounce buffer is NULL\n");
 		return NULL;
 	}
 
@@ -262,8 +236,9 @@
 
 		ena_com_cq_inc_head(io_cq);
 		count++;
-		last = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >>
-			ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT;
+		last = (READ_ONCE(cdesc->status) &
+			ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >>
+		       ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT;
 	} while (!last);
 
 	if (last) {
@@ -275,7 +250,7 @@
 		io_cq->cur_rx_pkt_cdesc_count = 0;
 		io_cq->cur_rx_pkt_cdesc_start_idx = head_masked;
 
-		pr_debug("ena q_id: %d packets were completed. first desc idx %u descs# %d\n",
+		pr_debug("ENA q_id: %d packets were completed. first desc idx %u descs# %d\n",
 			 io_cq->qid, *first_cdesc_idx, count);
 	} else {
 		io_cq->cur_rx_pkt_cdesc_count += count;
@@ -285,13 +260,15 @@
 	return count;
 }
 
-static int ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
-							struct ena_com_tx_ctx *ena_tx_ctx)
+static int ena_com_create_meta(struct ena_com_io_sq *io_sq,
+			       struct ena_com_tx_meta *ena_meta)
 {
 	struct ena_eth_io_tx_meta_desc *meta_desc = NULL;
-	struct ena_com_tx_meta *ena_meta = &ena_tx_ctx->ena_meta;
 
 	meta_desc = get_sq_desc(io_sq);
+	if (unlikely(!meta_desc))
+		return -EFAULT;
+
 	memset(meta_desc, 0x0, sizeof(struct ena_eth_io_tx_meta_desc));
 
 	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_META_DESC_MASK;
@@ -299,7 +276,7 @@
 	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK;
 
 	/* bits 0-9 of the mss */
-	meta_desc->word2 |= (ena_meta->mss <<
+	meta_desc->word2 |= ((u32)ena_meta->mss <<
 		ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT) &
 		ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK;
 	/* bits 10-13 of the mss */
@@ -309,33 +286,57 @@
 
 	/* Extended meta desc */
 	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK;
-	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_META_STORE_MASK;
-	meta_desc->len_ctrl |= (io_sq->phase <<
+	meta_desc->len_ctrl |= ((u32)io_sq->phase <<
 		ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT) &
 		ENA_ETH_IO_TX_META_DESC_PHASE_MASK;
 
 	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_FIRST_MASK;
+	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_META_STORE_MASK;
+
 	meta_desc->word2 |= ena_meta->l3_hdr_len &
 		ENA_ETH_IO_TX_META_DESC_L3_HDR_LEN_MASK;
 	meta_desc->word2 |= (ena_meta->l3_hdr_offset <<
 		ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT) &
 		ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK;
 
-	meta_desc->word2 |= (ena_meta->l4_hdr_len <<
+	meta_desc->word2 |= ((u32)ena_meta->l4_hdr_len <<
 		ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT) &
 		ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK;
 
-	meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_META_STORE_MASK;
+	return ena_com_sq_update_tail(io_sq);
+}
 
-	/* Cached the meta desc */
-	memcpy(&io_sq->cached_tx_meta, ena_meta,
-	       sizeof(struct ena_com_tx_meta));
+static int ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *io_sq,
+						 struct ena_com_tx_ctx *ena_tx_ctx,
+						 bool *have_meta)
+{
+	struct ena_com_tx_meta *ena_meta = &ena_tx_ctx->ena_meta;
 
-	return ena_com_sq_update_tail(io_sq);
+	/* When disable meta caching is set, don't bother to save the meta and
+	 * compare it to the stored version, just create the meta
+	 */
+	if (io_sq->disable_meta_caching) {
+		if (unlikely(!ena_tx_ctx->meta_valid))
+			return -EINVAL;
+
+		*have_meta = true;
+		return ena_com_create_meta(io_sq, ena_meta);
+	}
+
+	if (ena_com_meta_desc_changed(io_sq, ena_tx_ctx)) {
+		*have_meta = true;
+		/* Cache the meta desc */
+		memcpy(&io_sq->cached_tx_meta, ena_meta,
+		       sizeof(struct ena_com_tx_meta));
+		return ena_com_create_meta(io_sq, ena_meta);
+	}
+
+	*have_meta = false;
+	return 0;
 }
 
 static void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx,
-					struct ena_eth_io_rx_cdesc_base *cdesc)
+				 struct ena_eth_io_rx_cdesc_base *cdesc)
 {
 	ena_rx_ctx->l3_proto = cdesc->status &
 		ENA_ETH_IO_RX_CDESC_BASE_L3_PROTO_IDX_MASK;
@@ -356,7 +357,7 @@
 		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >>
 		ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT;
 
-	pr_debug("ena_rx_ctx->l3_proto %d ena_rx_ctx->l4_proto %d\nena_rx_ctx->l3_csum_err %d ena_rx_ctx->l4_csum_err %d\nhash frag %d frag: %d cdesc_status: %x\n",
+	pr_debug("l3_proto %d l4_proto %d l3_csum_err %d l4_csum_err %d hash %d frag %d cdesc_status %x\n",
 		 ena_rx_ctx->l3_proto, ena_rx_ctx->l4_proto,
 		 ena_rx_ctx->l3_csum_err, ena_rx_ctx->l4_csum_err,
 		 ena_rx_ctx->hash, ena_rx_ctx->frag, cdesc->status);
@@ -389,7 +390,7 @@
 	}
 
 	if (unlikely(header_len > io_sq->tx_max_header_size)) {
-		pr_err("header size is too large %d max header: %d\n",
+		pr_err("Header size is too large %d max header: %d\n",
 		       header_len, io_sq->tx_max_header_size);
 		return -EINVAL;
 	}
@@ -402,12 +403,10 @@
 	if (unlikely(rc))
 		return rc;
 
-	have_meta = ena_tx_ctx->meta_valid && ena_com_meta_desc_changed(io_sq,
-			ena_tx_ctx);
-	if (have_meta) {
-		rc = ena_com_create_and_store_tx_meta_desc(io_sq, ena_tx_ctx);
-		if (unlikely(rc))
-			return rc;
+	rc = ena_com_create_and_store_tx_meta_desc(io_sq, ena_tx_ctx, &have_meta);
+	if (unlikely(rc)) {
+		pr_err("Failed to create and store tx meta desc\n");
+		return rc;
 	}
 
 	/* If the caller doesn't want to send packets */
@@ -426,16 +425,16 @@
 	if (!have_meta)
 		desc->len_ctrl |= ENA_ETH_IO_TX_DESC_FIRST_MASK;
 
-	desc->buff_addr_hi_hdr_sz |= (header_len <<
+	desc->buff_addr_hi_hdr_sz |= ((u32)header_len <<
 		ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT) &
 		ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK;
-	desc->len_ctrl |= (io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) &
+	desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) &
 		ENA_ETH_IO_TX_DESC_PHASE_MASK;
 
 	desc->len_ctrl |= ENA_ETH_IO_TX_DESC_COMP_REQ_MASK;
 
 	/* Bits 0-9 */
-	desc->meta_ctrl |= (ena_tx_ctx->req_id <<
+	desc->meta_ctrl |= ((u32)ena_tx_ctx->req_id <<
 		ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT) &
 		ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK;
 
@@ -481,7 +480,7 @@
 
 			memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc));
 
-			desc->len_ctrl |= (io_sq->phase <<
+			desc->len_ctrl |= ((u32)io_sq->phase <<
 				ENA_ETH_IO_TX_DESC_PHASE_SHIFT) &
 				ENA_ETH_IO_TX_DESC_PHASE_MASK;
 		}
@@ -517,9 +516,10 @@
 {
 	struct ena_com_rx_buf_info *ena_buf = &ena_rx_ctx->ena_bufs[0];
 	struct ena_eth_io_rx_cdesc_base *cdesc = NULL;
+	u16 q_depth = io_cq->q_depth;
 	u16 cdesc_idx = 0;
 	u16 nb_hw_desc;
-	u16 i;
+	u16 i = 0;
 
 	WARN(io_cq->direction != ENA_COM_IO_QUEUE_DIRECTION_RX, "wrong Q type");
 
@@ -529,7 +529,7 @@
 		return 0;
 	}
 
-	pr_debug("fetch rx packet: queue %d completed desc: %d\n", io_cq->qid,
+	pr_debug("Fetch rx packet: queue %d completed desc: %d\n", io_cq->qid,
 		 nb_hw_desc);
 
 	if (unlikely(nb_hw_desc > ena_rx_ctx->max_bufs)) {
@@ -538,13 +538,21 @@
 		return -ENOSPC;
 	}
 
-	for (i = 0; i < nb_hw_desc; i++) {
+	cdesc = ena_com_rx_cdesc_idx_to_ptr(io_cq, cdesc_idx);
+	ena_rx_ctx->pkt_offset = cdesc->offset;
+
+	do {
+		ena_buf[i].len = cdesc->length;
+		ena_buf[i].req_id = cdesc->req_id;
+		if (unlikely(ena_buf[i].req_id >= q_depth))
+			return -EIO;
+
+		if (++i >= nb_hw_desc)
+			break;
+
 		cdesc = ena_com_rx_cdesc_idx_to_ptr(io_cq, cdesc_idx + i);
 
-		ena_buf->len = cdesc->length;
-		ena_buf->req_id = cdesc->req_id;
-		ena_buf++;
-	}
+	} while (1);
 
 	/* Update SQ head ptr */
 	io_sq->next_to_comp += nb_hw_desc;
@@ -578,10 +586,10 @@
 
 	desc->length = ena_buf->len;
 
-	desc->ctrl = ENA_ETH_IO_RX_DESC_FIRST_MASK;
-	desc->ctrl |= ENA_ETH_IO_RX_DESC_LAST_MASK;
-	desc->ctrl |= io_sq->phase & ENA_ETH_IO_RX_DESC_PHASE_MASK;
-	desc->ctrl |= ENA_ETH_IO_RX_DESC_COMP_REQ_MASK;
+	desc->ctrl = ENA_ETH_IO_RX_DESC_FIRST_MASK |
+		     ENA_ETH_IO_RX_DESC_LAST_MASK |
+		     (io_sq->phase & ENA_ETH_IO_RX_DESC_PHASE_MASK) |
+		     ENA_ETH_IO_RX_DESC_COMP_REQ_MASK;
 
 	desc->req_id = req_id;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_eth_com.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef ENA_ETH_COM_H_
@@ -73,6 +46,7 @@
 	u32 hash;
 	u16 descs;
 	int max_bufs;
+	u8 pkt_offset;
 };
 
 int ena_com_prepare_tx(struct ena_com_io_sq *io_sq,
@@ -95,7 +69,7 @@
 	writel(intr_reg->intr_control, io_cq->unmask_reg);
 }
 
-static inline int ena_com_free_desc(struct ena_com_io_sq *io_sq)
+static inline int ena_com_free_q_entries(struct ena_com_io_sq *io_sq)
 {
 	u16 tail, next_to_comp, cnt;
 
@@ -113,7 +87,7 @@
 	int temp;
 
 	if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
-		return ena_com_free_desc(io_sq) >= required_buffers;
+		return ena_com_free_q_entries(io_sq) >= required_buffers;
 
 	/* This calculation doesn't need to be 100% accurate. So to reduce
 	 * the calculation overhead just Subtract 2 lines from the free descs
@@ -122,7 +96,7 @@
 	 */
 	temp = required_buffers / io_sq->llq_info.descs_per_entry + 2;
 
-	return ena_com_free_desc(io_sq) > temp;
+	return ena_com_free_q_entries(io_sq) > temp;
 }
 
 static inline bool ena_com_meta_desc_changed(struct ena_com_io_sq *io_sq,
@@ -156,7 +130,8 @@
 	llq_info = &io_sq->llq_info;
 	num_descs = ena_tx_ctx->num_bufs;
 
-	if (unlikely(ena_com_meta_desc_changed(io_sq, ena_tx_ctx)))
+	if (llq_info->disable_meta_caching ||
+	    unlikely(ena_com_meta_desc_changed(io_sq, ena_tx_ctx)))
 		++num_descs;
 
 	if (num_descs > llq_info->descs_num_before_header) {
@@ -165,7 +140,7 @@
 						   llq_info->descs_per_entry);
 	}
 
-	pr_debug("queue: %d num_descs: %d num_entries_needed: %d\n", io_sq->qid,
+	pr_debug("Queue: %d num_descs: %d num_entries_needed: %d\n", io_sq->qid,
 		 num_descs, num_entries_needed);
 
 	return num_entries_needed > io_sq->entries_in_tx_burst_left;
@@ -176,13 +151,13 @@
 	u16 max_entries_in_tx_burst = io_sq->llq_info.max_entries_in_tx_burst;
 	u16 tail = io_sq->tail;
 
-	pr_debug("write submission queue doorbell for queue: %d tail: %d\n",
+	pr_debug("Write submission queue doorbell for queue: %d tail: %d\n",
 		 io_sq->qid, tail);
 
 	writel(tail, io_sq->db_addr);
 
 	if (is_llq_max_tx_burst_exists(io_sq)) {
-		pr_debug("reset available entries in tx burst for queue %d to %d\n",
+		pr_debug("Reset available entries in tx burst for queue %d to %d\n",
 			 io_sq->qid, max_entries_in_tx_burst);
 		io_sq->entries_in_tx_burst_left = max_entries_in_tx_burst;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 - 2016 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 #ifndef _ENA_ETH_IO_H_
 #define _ENA_ETH_IO_H_
@@ -264,7 +237,9 @@
 
 	u16 sub_qid;
 
-	u16 reserved;
+	u8 offset;
+
+	u8 reserved;
 };
 
 /* 8-word format */
@@ -412,4 +387,4 @@
 #define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_SHIFT          31
 #define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK           BIT(31)
 
-#endif /*_ENA_ETH_IO_H_ */
+#endif /* _ENA_ETH_IO_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -1,33 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #include <linux/pci.h>
@@ -41,12 +14,17 @@
 
 #define ENA_STAT_ENA_COM_ENTRY(stat) { \
 	.name = #stat, \
-	.stat_offset = offsetof(struct ena_com_stats_admin, stat) \
+	.stat_offset = offsetof(struct ena_com_stats_admin, stat) / sizeof(u64) \
 }
 
 #define ENA_STAT_ENTRY(stat, stat_type) { \
 	.name = #stat, \
-	.stat_offset = offsetof(struct ena_stats_##stat_type, stat) \
+	.stat_offset = offsetof(struct ena_stats_##stat_type, stat) / sizeof(u64) \
+}
+
+#define ENA_STAT_HW_ENTRY(stat, stat_type) { \
+	.name = #stat, \
+	.stat_offset = offsetof(struct ena_admin_##stat_type, stat) / sizeof(u64) \
 }
 
 #define ENA_STAT_RX_ENTRY(stat) \
@@ -58,6 +36,9 @@
 #define ENA_STAT_GLOBAL_ENTRY(stat) \
 	ENA_STAT_ENTRY(stat, dev)
 
+#define ENA_STAT_ENI_ENTRY(stat) \
+	ENA_STAT_HW_ENTRY(stat, eni_stats)
+
 static const struct ena_stats ena_stats_global_strings[] = {
 	ENA_STAT_GLOBAL_ENTRY(tx_timeout),
 	ENA_STAT_GLOBAL_ENTRY(suspend),
@@ -68,6 +49,14 @@
 	ENA_STAT_GLOBAL_ENTRY(admin_q_pause),
 };
 
+static const struct ena_stats ena_stats_eni_strings[] = {
+	ENA_STAT_ENI_ENTRY(bw_in_allowance_exceeded),
+	ENA_STAT_ENI_ENTRY(bw_out_allowance_exceeded),
+	ENA_STAT_ENI_ENTRY(pps_allowance_exceeded),
+	ENA_STAT_ENI_ENTRY(conntrack_allowance_exceeded),
+	ENA_STAT_ENI_ENTRY(linklocal_allowance_exceeded),
+};
+
 static const struct ena_stats ena_stats_tx_strings[] = {
 	ENA_STAT_TX_ENTRY(cnt),
 	ENA_STAT_TX_ENTRY(bytes),
@@ -83,6 +72,7 @@
 	ENA_STAT_TX_ENTRY(bad_req_id),
 	ENA_STAT_TX_ENTRY(llq_buffer_copy),
 	ENA_STAT_TX_ENTRY(missed_tx),
+	ENA_STAT_TX_ENTRY(unmask_interrupt),
 };
 
 static const struct ena_stats ena_stats_rx_strings[] = {
@@ -99,6 +89,11 @@
 	ENA_STAT_RX_ENTRY(bad_req_id),
 	ENA_STAT_RX_ENTRY(empty_rx_ring),
 	ENA_STAT_RX_ENTRY(csum_unchecked),
+	ENA_STAT_RX_ENTRY(xdp_aborted),
+	ENA_STAT_RX_ENTRY(xdp_drop),
+	ENA_STAT_RX_ENTRY(xdp_pass),
+	ENA_STAT_RX_ENTRY(xdp_tx),
+	ENA_STAT_RX_ENTRY(xdp_invalid),
 };
 
 static const struct ena_stats ena_stats_ena_com_strings[] = {
@@ -109,10 +104,12 @@
 	ENA_STAT_ENA_COM_ENTRY(no_completion),
 };
 
-#define ENA_STATS_ARRAY_GLOBAL	ARRAY_SIZE(ena_stats_global_strings)
-#define ENA_STATS_ARRAY_TX	ARRAY_SIZE(ena_stats_tx_strings)
-#define ENA_STATS_ARRAY_RX	ARRAY_SIZE(ena_stats_rx_strings)
-#define ENA_STATS_ARRAY_ENA_COM	ARRAY_SIZE(ena_stats_ena_com_strings)
+#define ENA_STATS_ARRAY_GLOBAL		ARRAY_SIZE(ena_stats_global_strings)
+#define ENA_STATS_ARRAY_TX		ARRAY_SIZE(ena_stats_tx_strings)
+#define ENA_STATS_ARRAY_RX		ARRAY_SIZE(ena_stats_rx_strings)
+#define ENA_STATS_ARRAY_ENA_COM		ARRAY_SIZE(ena_stats_ena_com_strings)
+#define ENA_STATS_ARRAY_ENI(adapter)	\
+	(ARRAY_SIZE(ena_stats_eni_strings) * (adapter)->eni_stats_supported)
 
 static void ena_safe_update_stat(u64 *src, u64 *dst,
 				 struct u64_stats_sync *syncp)
@@ -133,29 +130,30 @@
 	u64 *ptr;
 	int i, j;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues + adapter->xdp_num_queues; i++) {
 		/* Tx stats */
 		ring = &adapter->tx_ring[i];
 
 		for (j = 0; j < ENA_STATS_ARRAY_TX; j++) {
 			ena_stats = &ena_stats_tx_strings[j];
 
-			ptr = (u64 *)((uintptr_t)&ring->tx_stats +
-				(uintptr_t)ena_stats->stat_offset);
+			ptr = (u64 *)&ring->tx_stats + ena_stats->stat_offset;
 
 			ena_safe_update_stat(ptr, (*data)++, &ring->syncp);
 		}
+		/* XDP TX queues don't have a RX queue counterpart */
+		if (!ENA_IS_XDP_INDEX(adapter, i)) {
+			/* Rx stats */
+			ring = &adapter->rx_ring[i];
 
-		/* Rx stats */
-		ring = &adapter->rx_ring[i];
-
-		for (j = 0; j < ENA_STATS_ARRAY_RX; j++) {
-			ena_stats = &ena_stats_rx_strings[j];
+			for (j = 0; j < ENA_STATS_ARRAY_RX; j++) {
+				ena_stats = &ena_stats_rx_strings[j];
 
-			ptr = (u64 *)((uintptr_t)&ring->rx_stats +
-				(uintptr_t)ena_stats->stat_offset);
+				ptr = (u64 *)&ring->rx_stats +
+					ena_stats->stat_offset;
 
-			ena_safe_update_stat(ptr, (*data)++, &ring->syncp);
+				ena_safe_update_stat(ptr, (*data)++, &ring->syncp);
+			}
 		}
 	}
 }
@@ -163,24 +161,23 @@
 static void ena_dev_admin_queue_stats(struct ena_adapter *adapter, u64 **data)
 {
 	const struct ena_stats *ena_stats;
-	u32 *ptr;
+	u64 *ptr;
 	int i;
 
 	for (i = 0; i < ENA_STATS_ARRAY_ENA_COM; i++) {
 		ena_stats = &ena_stats_ena_com_strings[i];
 
-		ptr = (u32 *)((uintptr_t)&adapter->ena_dev->admin_queue.stats +
-			(uintptr_t)ena_stats->stat_offset);
+		ptr = (u64 *)&adapter->ena_dev->admin_queue.stats +
+			ena_stats->stat_offset;
 
 		*(*data)++ = *ptr;
 	}
 }
 
-static void ena_get_ethtool_stats(struct net_device *netdev,
-				  struct ethtool_stats *stats,
-				  u64 *data)
+static void ena_get_stats(struct ena_adapter *adapter,
+			  u64 *data,
+			  bool eni_stats_needed)
 {
-	struct ena_adapter *adapter = netdev_priv(netdev);
 	const struct ena_stats *ena_stats;
 	u64 *ptr;
 	int i;
@@ -188,16 +185,48 @@
 	for (i = 0; i < ENA_STATS_ARRAY_GLOBAL; i++) {
 		ena_stats = &ena_stats_global_strings[i];
 
-		ptr = (u64 *)((uintptr_t)&adapter->dev_stats +
-			(uintptr_t)ena_stats->stat_offset);
+		ptr = (u64 *)&adapter->dev_stats + ena_stats->stat_offset;
 
 		ena_safe_update_stat(ptr, data++, &adapter->syncp);
 	}
 
+	if (eni_stats_needed) {
+		ena_update_hw_stats(adapter);
+		for (i = 0; i < ENA_STATS_ARRAY_ENI(adapter); i++) {
+			ena_stats = &ena_stats_eni_strings[i];
+
+			ptr = (u64 *)&adapter->eni_stats +
+				ena_stats->stat_offset;
+
+			ena_safe_update_stat(ptr, data++, &adapter->syncp);
+		}
+	}
+
 	ena_queue_stats(adapter, &data);
 	ena_dev_admin_queue_stats(adapter, &data);
 }
 
+static void ena_get_ethtool_stats(struct net_device *netdev,
+				  struct ethtool_stats *stats,
+				  u64 *data)
+{
+	struct ena_adapter *adapter = netdev_priv(netdev);
+
+	ena_get_stats(adapter, data, adapter->eni_stats_supported);
+}
+
+static int ena_get_sw_stats_count(struct ena_adapter *adapter)
+{
+	return adapter->num_io_queues * (ENA_STATS_ARRAY_TX + ENA_STATS_ARRAY_RX)
+		+ adapter->xdp_num_queues * ENA_STATS_ARRAY_TX
+		+ ENA_STATS_ARRAY_GLOBAL + ENA_STATS_ARRAY_ENA_COM;
+}
+
+static int ena_get_hw_stats_count(struct ena_adapter *adapter)
+{
+	return ENA_STATS_ARRAY_ENI(adapter);
+}
+
 int ena_get_sset_count(struct net_device *netdev, int sset)
 {
 	struct ena_adapter *adapter = netdev_priv(netdev);
@@ -205,31 +234,38 @@
 	if (sset != ETH_SS_STATS)
 		return -EOPNOTSUPP;
 
-	return  adapter->num_queues * (ENA_STATS_ARRAY_TX + ENA_STATS_ARRAY_RX)
-		+ ENA_STATS_ARRAY_GLOBAL + ENA_STATS_ARRAY_ENA_COM;
+	return ena_get_sw_stats_count(adapter) + ena_get_hw_stats_count(adapter);
 }
 
 static void ena_queue_strings(struct ena_adapter *adapter, u8 **data)
 {
 	const struct ena_stats *ena_stats;
+	bool is_xdp;
 	int i, j;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues + adapter->xdp_num_queues; i++) {
+		is_xdp = ENA_IS_XDP_INDEX(adapter, i);
 		/* Tx stats */
 		for (j = 0; j < ENA_STATS_ARRAY_TX; j++) {
 			ena_stats = &ena_stats_tx_strings[j];
 
 			snprintf(*data, ETH_GSTRING_LEN,
-				 "queue_%u_tx_%s", i, ena_stats->name);
-			 (*data) += ETH_GSTRING_LEN;
+				 "queue_%u_%s_%s", i,
+				 is_xdp ? "xdp_tx" : "tx", ena_stats->name);
+			(*data) += ETH_GSTRING_LEN;
 		}
-		/* Rx stats */
-		for (j = 0; j < ENA_STATS_ARRAY_RX; j++) {
-			ena_stats = &ena_stats_rx_strings[j];
 
-			snprintf(*data, ETH_GSTRING_LEN,
-				 "queue_%u_rx_%s", i, ena_stats->name);
-			(*data) += ETH_GSTRING_LEN;
+		if (!is_xdp) {
+			/* RX stats, in XDP there isn't a RX queue
+			 * counterpart
+			 */
+			for (j = 0; j < ENA_STATS_ARRAY_RX; j++) {
+				ena_stats = &ena_stats_rx_strings[j];
+
+				snprintf(*data, ETH_GSTRING_LEN,
+					 "queue_%u_rx_%s", i, ena_stats->name);
+				(*data) += ETH_GSTRING_LEN;
+			}
 		}
 	}
 }
@@ -248,26 +284,43 @@
 	}
 }
 
-static void ena_get_strings(struct net_device *netdev, u32 sset, u8 *data)
+static void ena_get_strings(struct ena_adapter *adapter,
+			    u8 *data,
+			    bool eni_stats_needed)
 {
-	struct ena_adapter *adapter = netdev_priv(netdev);
 	const struct ena_stats *ena_stats;
 	int i;
 
-	if (sset != ETH_SS_STATS)
-		return;
-
 	for (i = 0; i < ENA_STATS_ARRAY_GLOBAL; i++) {
 		ena_stats = &ena_stats_global_strings[i];
-
 		memcpy(data, ena_stats->name, ETH_GSTRING_LEN);
 		data += ETH_GSTRING_LEN;
 	}
 
+	if (eni_stats_needed) {
+		for (i = 0; i < ENA_STATS_ARRAY_ENI(adapter); i++) {
+			ena_stats = &ena_stats_eni_strings[i];
+			memcpy(data, ena_stats->name, ETH_GSTRING_LEN);
+			data += ETH_GSTRING_LEN;
+		}
+	}
+
 	ena_queue_strings(adapter, &data);
 	ena_com_dev_strings(&data);
 }
 
+static void ena_get_ethtool_strings(struct net_device *netdev,
+				    u32 sset,
+				    u8 *data)
+{
+	struct ena_adapter *adapter = netdev_priv(netdev);
+
+	if (sset != ETH_SS_STATS)
+		return;
+
+	ena_get_strings(adapter, data, adapter->eni_stats_supported);
+}
+
 static int ena_get_link_ksettings(struct net_device *netdev,
 				  struct ethtool_link_ksettings *link_ksettings)
 {
@@ -306,19 +359,16 @@
 	struct ena_adapter *adapter = netdev_priv(net_dev);
 	struct ena_com_dev *ena_dev = adapter->ena_dev;
 
-	if (!ena_com_interrupt_moderation_supported(ena_dev)) {
-		/* the devie doesn't support interrupt moderation */
+	if (!ena_com_interrupt_moderation_supported(ena_dev))
 		return -EOPNOTSUPP;
-	}
 
 	coalesce->tx_coalesce_usecs =
 		ena_com_get_nonadaptive_moderation_interval_tx(ena_dev) *
 			ena_dev->intr_delay_resolution;
 
-	if (!ena_com_get_adaptive_moderation_enabled(ena_dev))
-		coalesce->rx_coalesce_usecs =
-			ena_com_get_nonadaptive_moderation_interval_rx(ena_dev)
-			* ena_dev->intr_delay_resolution;
+	coalesce->rx_coalesce_usecs =
+		ena_com_get_nonadaptive_moderation_interval_rx(ena_dev)
+		* ena_dev->intr_delay_resolution;
 
 	coalesce->use_adaptive_rx_coalesce =
 		ena_com_get_adaptive_moderation_enabled(ena_dev);
@@ -326,25 +376,25 @@
 	return 0;
 }
 
-static void ena_update_tx_rings_intr_moderation(struct ena_adapter *adapter)
+static void ena_update_tx_rings_nonadaptive_intr_moderation(struct ena_adapter *adapter)
 {
 	unsigned int val;
 	int i;
 
 	val = ena_com_get_nonadaptive_moderation_interval_tx(adapter->ena_dev);
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < adapter->num_io_queues; i++)
 		adapter->tx_ring[i].smoothed_interval = val;
 }
 
-static void ena_update_rx_rings_intr_moderation(struct ena_adapter *adapter)
+static void ena_update_rx_rings_nonadaptive_intr_moderation(struct ena_adapter *adapter)
 {
 	unsigned int val;
 	int i;
 
 	val = ena_com_get_nonadaptive_moderation_interval_rx(adapter->ena_dev);
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < adapter->num_io_queues; i++)
 		adapter->rx_ring[i].smoothed_interval = val;
 }
 
@@ -355,35 +405,30 @@
 	struct ena_com_dev *ena_dev = adapter->ena_dev;
 	int rc;
 
-	if (!ena_com_interrupt_moderation_supported(ena_dev)) {
-		/* the devie doesn't support interrupt moderation */
+	if (!ena_com_interrupt_moderation_supported(ena_dev))
 		return -EOPNOTSUPP;
-	}
 
 	rc = ena_com_update_nonadaptive_moderation_interval_tx(ena_dev,
 							       coalesce->tx_coalesce_usecs);
 	if (rc)
 		return rc;
 
-	ena_update_tx_rings_intr_moderation(adapter);
-
-	if (coalesce->use_adaptive_rx_coalesce) {
-		if (!ena_com_get_adaptive_moderation_enabled(ena_dev))
-			ena_com_enable_adaptive_moderation(ena_dev);
-		return 0;
-	}
+	ena_update_tx_rings_nonadaptive_intr_moderation(adapter);
 
 	rc = ena_com_update_nonadaptive_moderation_interval_rx(ena_dev,
 							       coalesce->rx_coalesce_usecs);
 	if (rc)
 		return rc;
 
-	ena_update_rx_rings_intr_moderation(adapter);
+	ena_update_rx_rings_nonadaptive_intr_moderation(adapter);
 
-	if (!coalesce->use_adaptive_rx_coalesce) {
-		if (ena_com_get_adaptive_moderation_enabled(ena_dev))
-			ena_com_disable_adaptive_moderation(ena_dev);
-	}
+	if ((coalesce->use_adaptive_rx_coalesce) &&
+	    (!ena_com_get_adaptive_moderation_enabled(ena_dev)))
+		ena_com_enable_adaptive_moderation(ena_dev);
+
+	if ((!coalesce->use_adaptive_rx_coalesce) &&
+	    (ena_com_get_adaptive_moderation_enabled(ena_dev)))
+		ena_com_disable_adaptive_moderation(ena_dev);
 
 	return 0;
 }
@@ -408,7 +453,6 @@
 	struct ena_adapter *adapter = netdev_priv(dev);
 
 	strlcpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver));
-	strlcpy(info->version, DRV_MODULE_VERSION, sizeof(info->version));
 	strlcpy(info->bus_info, pci_name(adapter->pdev),
 		sizeof(info->bus_info));
 }
@@ -612,7 +656,7 @@
 
 	switch (info->cmd) {
 	case ETHTOOL_GRXRINGS:
-		info->data = adapter->num_queues;
+		info->data = adapter->num_io_queues;
 		rc = 0;
 		break;
 	case ETHTOOL_GRXFH:
@@ -640,6 +684,54 @@
 	return ENA_HASH_KEY_SIZE;
 }
 
+static int ena_indirection_table_set(struct ena_adapter *adapter,
+				     const u32 *indir)
+{
+	struct ena_com_dev *ena_dev = adapter->ena_dev;
+	int i, rc;
+
+	for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
+		rc = ena_com_indirect_table_fill_entry(ena_dev,
+						       i,
+						       ENA_IO_RXQ_IDX(indir[i]));
+		if (unlikely(rc)) {
+			netif_err(adapter, drv, adapter->netdev,
+				  "Cannot fill indirect table (index is too large)\n");
+			return rc;
+		}
+	}
+
+	rc = ena_com_indirect_table_set(ena_dev);
+	if (rc) {
+		netif_err(adapter, drv, adapter->netdev,
+			  "Cannot set indirect table\n");
+		return rc == -EPERM ? -EOPNOTSUPP : rc;
+	}
+	return rc;
+}
+
+static int ena_indirection_table_get(struct ena_adapter *adapter, u32 *indir)
+{
+	struct ena_com_dev *ena_dev = adapter->ena_dev;
+	int i, rc;
+
+	if (!indir)
+		return 0;
+
+	rc = ena_com_indirect_table_get(ena_dev, indir);
+	if (rc)
+		return rc;
+
+	/* Our internal representation of the indices is: even indices
+	 * for Tx and uneven indices for Rx. We need to convert the Rx
+	 * indices to be consecutive
+	 */
+	for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++)
+		indir[i] = ENA_IO_RXQ_IDX_TO_COMBINED_IDX(indir[i]);
+
+	return rc;
+}
+
 static int ena_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
 			u8 *hfunc)
 {
@@ -648,11 +740,22 @@
 	u8 func;
 	int rc;
 
-	rc = ena_com_indirect_table_get(adapter->ena_dev, indir);
+	rc = ena_indirection_table_get(adapter, indir);
 	if (rc)
 		return rc;
 
-	rc = ena_com_get_hash_function(adapter->ena_dev, &ena_func, key);
+	/* We call this function in order to check if the device
+	 * supports getting/setting the hash function.
+	 */
+	rc = ena_com_get_hash_function(adapter->ena_dev, &ena_func);
+	if (rc) {
+		if (rc == -EOPNOTSUPP)
+			rc = 0;
+
+		return rc;
+	}
+
+	rc = ena_com_get_hash_key(adapter->ena_dev, key);
 	if (rc)
 		return rc;
 
@@ -661,7 +764,7 @@
 		func = ETH_RSS_HASH_TOP;
 		break;
 	case ENA_ADMIN_CRC32:
-		func = ETH_RSS_HASH_XOR;
+		func = ETH_RSS_HASH_CRC32;
 		break;
 	default:
 		netif_err(adapter, drv, netdev,
@@ -672,7 +775,7 @@
 	if (hfunc)
 		*hfunc = func;
 
-	return rc;
+	return 0;
 }
 
 static int ena_set_rxfh(struct net_device *netdev, const u32 *indir,
@@ -680,34 +783,23 @@
 {
 	struct ena_adapter *adapter = netdev_priv(netdev);
 	struct ena_com_dev *ena_dev = adapter->ena_dev;
-	enum ena_admin_hash_functions func;
-	int rc, i;
+	enum ena_admin_hash_functions func = 0;
+	int rc;
 
 	if (indir) {
-		for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
-			rc = ena_com_indirect_table_fill_entry(ena_dev,
-							       i,
-							       ENA_IO_RXQ_IDX(indir[i]));
-			if (unlikely(rc)) {
-				netif_err(adapter, drv, netdev,
-					  "Cannot fill indirect table (index is too large)\n");
-				return rc;
-			}
-		}
-
-		rc = ena_com_indirect_table_set(ena_dev);
-		if (rc) {
-			netif_err(adapter, drv, netdev,
-				  "Cannot set indirect table\n");
-			return rc == -EPERM ? -EOPNOTSUPP : rc;
-		}
+		rc = ena_indirection_table_set(adapter, indir);
+		if (rc)
+			return rc;
 	}
 
 	switch (hfunc) {
+	case ETH_RSS_HASH_NO_CHANGE:
+		func = ena_com_get_current_hash_function(ena_dev);
+		break;
 	case ETH_RSS_HASH_TOP:
 		func = ENA_ADMIN_TOEPLITZ;
 		break;
-	case ETH_RSS_HASH_XOR:
+	case ETH_RSS_HASH_CRC32:
 		func = ENA_ADMIN_CRC32;
 		break;
 	default:
@@ -716,7 +808,7 @@
 		return -EOPNOTSUPP;
 	}
 
-	if (key) {
+	if (key || func) {
 		rc = ena_com_fill_hash_function(ena_dev, func, key,
 						ENA_HASH_KEY_SIZE,
 						0xFFFFFFFF);
@@ -734,14 +826,22 @@
 {
 	struct ena_adapter *adapter = netdev_priv(netdev);
 
-	channels->max_rx = adapter->num_queues;
-	channels->max_tx = adapter->num_queues;
-	channels->max_other = 0;
-	channels->max_combined = 0;
-	channels->rx_count = adapter->num_queues;
-	channels->tx_count = adapter->num_queues;
-	channels->other_count = 0;
-	channels->combined_count = 0;
+	channels->max_combined = adapter->max_num_io_queues;
+	channels->combined_count = adapter->num_io_queues;
+}
+
+static int ena_set_channels(struct net_device *netdev,
+			    struct ethtool_channels *channels)
+{
+	struct ena_adapter *adapter = netdev_priv(netdev);
+	u32 count = channels->combined_count;
+	/* The check for max value is already done in ethtool */
+	if (count < ENA_MIN_NUM_IO_QUEUES ||
+	    (ena_xdp_present(adapter) &&
+	    !ena_xdp_legal_queue_count(adapter, channels->combined_count)))
+		return -EINVAL;
+
+	return ena_update_queue_count(adapter, count);
 }
 
 static int ena_get_tunable(struct net_device *netdev,
@@ -798,7 +898,7 @@
 	.get_ringparam		= ena_get_ringparam,
 	.set_ringparam		= ena_set_ringparam,
 	.get_sset_count         = ena_get_sset_count,
-	.get_strings		= ena_get_strings,
+	.get_strings		= ena_get_ethtool_strings,
 	.get_ethtool_stats      = ena_get_ethtool_stats,
 	.get_rxnfc		= ena_get_rxnfc,
 	.set_rxnfc		= ena_set_rxnfc,
@@ -807,8 +907,10 @@
 	.get_rxfh		= ena_get_rxfh,
 	.set_rxfh		= ena_set_rxfh,
 	.get_channels		= ena_get_channels,
+	.set_channels		= ena_set_channels,
 	.get_tunable		= ena_get_tunable,
 	.set_tunable		= ena_set_tunable,
+	.get_ts_info            = ethtool_op_get_ts_info,
 };
 
 void ena_set_ethtool_ops(struct net_device *netdev)
@@ -824,7 +926,7 @@
 	int strings_num;
 	int i, rc;
 
-	strings_num = ena_get_sset_count(netdev, ETH_SS_STATS);
+	strings_num = ena_get_sw_stats_count(adapter);
 	if (strings_num <= 0) {
 		netif_err(adapter, drv, netdev, "Can't get stats num\n");
 		return;
@@ -835,7 +937,7 @@
 				   GFP_ATOMIC);
 	if (!strings_buf) {
 		netif_err(adapter, drv, netdev,
-			  "failed to alloc strings_buf\n");
+			  "Failed to allocate strings_buf\n");
 		return;
 	}
 
@@ -844,13 +946,13 @@
 				GFP_ATOMIC);
 	if (!data_buf) {
 		netif_err(adapter, drv, netdev,
-			  "failed to allocate data buf\n");
+			  "Failed to allocate data buf\n");
 		devm_kfree(&adapter->pdev->dev, strings_buf);
 		return;
 	}
 
-	ena_get_strings(netdev, ETH_SS_STATS, strings_buf);
-	ena_get_ethtool_stats(netdev, NULL, data_buf);
+	ena_get_strings(adapter, strings_buf, false);
+	ena_get_stats(adapter, data_buf, false);
 
 	/* If there is a buffer, dump stats, otherwise print them to dmesg */
 	if (buf)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -1,33 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -36,7 +9,6 @@
 #include <linux/cpu_rmap.h>
 #endif /* CONFIG_RFS_ACCEL */
 #include <linux/ethtool.h>
-#include <linux/if_vlan.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/numa.h>
@@ -47,14 +19,12 @@
 #include <net/ip.h>
 
 #include "ena_netdev.h"
+#include <linux/bpf_trace.h>
 #include "ena_pci_id_tbl.h"
 
-static char version[] = DEVICE_NAME " v" DRV_MODULE_VERSION "\n";
-
 MODULE_AUTHOR("Amazon.com, Inc. or its affiliates");
 MODULE_DESCRIPTION(DEVICE_NAME);
 MODULE_LICENSE("GPL");
-MODULE_VERSION(DRV_MODULE_VERSION);
 
 /* Time in jiffies before concluding the transmitter is hung. */
 #define TX_TIMEOUT  (5 * HZ)
@@ -78,6 +48,36 @@
 static void ena_destroy_device(struct ena_adapter *adapter, bool graceful);
 static int ena_restore_device(struct ena_adapter *adapter);
 
+static void ena_init_io_rings(struct ena_adapter *adapter,
+			      int first_index, int count);
+static void ena_init_napi_in_range(struct ena_adapter *adapter, int first_index,
+				   int count);
+static void ena_del_napi_in_range(struct ena_adapter *adapter, int first_index,
+				  int count);
+static int ena_setup_tx_resources(struct ena_adapter *adapter, int qid);
+static int ena_setup_tx_resources_in_range(struct ena_adapter *adapter,
+					   int first_index,
+					   int count);
+static int ena_create_io_tx_queue(struct ena_adapter *adapter, int qid);
+static void ena_free_tx_resources(struct ena_adapter *adapter, int qid);
+static int ena_clean_xdp_irq(struct ena_ring *xdp_ring, u32 budget);
+static void ena_destroy_all_tx_queues(struct ena_adapter *adapter);
+static void ena_free_all_io_tx_resources(struct ena_adapter *adapter);
+static void ena_napi_disable_in_range(struct ena_adapter *adapter,
+				      int first_index, int count);
+static void ena_napi_enable_in_range(struct ena_adapter *adapter,
+				     int first_index, int count);
+static int ena_up(struct ena_adapter *adapter);
+static void ena_down(struct ena_adapter *adapter);
+static void ena_unmask_interrupt(struct ena_ring *tx_ring,
+				 struct ena_ring *rx_ring);
+static void ena_update_ring_numa_node(struct ena_ring *tx_ring,
+				      struct ena_ring *rx_ring);
+static void ena_unmap_tx_buff(struct ena_ring *tx_ring,
+			      struct ena_tx_buffer *tx_info);
+static int ena_create_io_tx_queues_in_range(struct ena_adapter *adapter,
+					    int first_index, int count);
+
 static void ena_tx_timeout(struct net_device *dev)
 {
 	struct ena_adapter *adapter = netdev_priv(dev);
@@ -101,7 +101,7 @@
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < adapter->num_io_queues; i++)
 		adapter->rx_ring[i].mtu = mtu;
 }
 
@@ -112,7 +112,7 @@
 
 	ret = ena_com_set_dev_mtu(adapter->ena_dev, new_mtu);
 	if (!ret) {
-		netif_dbg(adapter, drv, dev, "set MTU to %d\n", new_mtu);
+		netif_dbg(adapter, drv, dev, "Set MTU to %d\n", new_mtu);
 		update_rx_ring_mtu(adapter, new_mtu);
 		dev->mtu = new_mtu;
 	} else {
@@ -123,16 +123,472 @@
 	return ret;
 }
 
+static int ena_xmit_common(struct net_device *dev,
+			   struct ena_ring *ring,
+			   struct ena_tx_buffer *tx_info,
+			   struct ena_com_tx_ctx *ena_tx_ctx,
+			   u16 next_to_use,
+			   u32 bytes)
+{
+	struct ena_adapter *adapter = netdev_priv(dev);
+	int rc, nb_hw_desc;
+
+	if (unlikely(ena_com_is_doorbell_needed(ring->ena_com_io_sq,
+						ena_tx_ctx))) {
+		netif_dbg(adapter, tx_queued, dev,
+			  "llq tx max burst size of queue %d achieved, writing doorbell to send burst\n",
+			  ring->qid);
+		ena_com_write_sq_doorbell(ring->ena_com_io_sq);
+	}
+
+	/* prepare the packet's descriptors to dma engine */
+	rc = ena_com_prepare_tx(ring->ena_com_io_sq, ena_tx_ctx,
+				&nb_hw_desc);
+
+	/* In case there isn't enough space in the queue for the packet,
+	 * we simply drop it. All other failure reasons of
+	 * ena_com_prepare_tx() are fatal and therefore require a device reset.
+	 */
+	if (unlikely(rc)) {
+		netif_err(adapter, tx_queued, dev,
+			  "Failed to prepare tx bufs\n");
+		u64_stats_update_begin(&ring->syncp);
+		ring->tx_stats.prepare_ctx_err++;
+		u64_stats_update_end(&ring->syncp);
+		if (rc != -ENOMEM) {
+			adapter->reset_reason =
+				ENA_REGS_RESET_DRIVER_INVALID_STATE;
+			set_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
+		}
+		return rc;
+	}
+
+	u64_stats_update_begin(&ring->syncp);
+	ring->tx_stats.cnt++;
+	ring->tx_stats.bytes += bytes;
+	u64_stats_update_end(&ring->syncp);
+
+	tx_info->tx_descs = nb_hw_desc;
+	tx_info->last_jiffies = jiffies;
+	tx_info->print_once = 0;
+
+	ring->next_to_use = ENA_TX_RING_IDX_NEXT(next_to_use,
+						 ring->ring_size);
+	return 0;
+}
+
+/* This is the XDP napi callback. XDP queues use a separate napi callback
+ * than Rx/Tx queues.
+ */
+static int ena_xdp_io_poll(struct napi_struct *napi, int budget)
+{
+	struct ena_napi *ena_napi = container_of(napi, struct ena_napi, napi);
+	u32 xdp_work_done, xdp_budget;
+	struct ena_ring *xdp_ring;
+	int napi_comp_call = 0;
+	int ret;
+
+	xdp_ring = ena_napi->xdp_ring;
+	xdp_ring->first_interrupt = ena_napi->first_interrupt;
+
+	xdp_budget = budget;
+
+	if (!test_bit(ENA_FLAG_DEV_UP, &xdp_ring->adapter->flags) ||
+	    test_bit(ENA_FLAG_TRIGGER_RESET, &xdp_ring->adapter->flags)) {
+		napi_complete_done(napi, 0);
+		return 0;
+	}
+
+	xdp_work_done = ena_clean_xdp_irq(xdp_ring, xdp_budget);
+
+	/* If the device is about to reset or down, avoid unmask
+	 * the interrupt and return 0 so NAPI won't reschedule
+	 */
+	if (unlikely(!test_bit(ENA_FLAG_DEV_UP, &xdp_ring->adapter->flags))) {
+		napi_complete_done(napi, 0);
+		ret = 0;
+	} else if (xdp_budget > xdp_work_done) {
+		napi_comp_call = 1;
+		if (napi_complete_done(napi, xdp_work_done))
+			ena_unmask_interrupt(xdp_ring, NULL);
+		ena_update_ring_numa_node(xdp_ring, NULL);
+		ret = xdp_work_done;
+	} else {
+		ret = xdp_budget;
+	}
+
+	u64_stats_update_begin(&xdp_ring->syncp);
+	xdp_ring->tx_stats.napi_comp += napi_comp_call;
+	xdp_ring->tx_stats.tx_poll++;
+	u64_stats_update_end(&xdp_ring->syncp);
+
+	return ret;
+}
+
+static int ena_xdp_tx_map_buff(struct ena_ring *xdp_ring,
+			       struct ena_tx_buffer *tx_info,
+			       struct xdp_buff *xdp,
+			       void **push_hdr,
+			       u32 *push_len)
+{
+	struct ena_adapter *adapter = xdp_ring->adapter;
+	struct ena_com_buf *ena_buf;
+	dma_addr_t dma = 0;
+	u32 size;
+
+	tx_info->xdpf = convert_to_xdp_frame(xdp);
+	size = tx_info->xdpf->len;
+	ena_buf = tx_info->bufs;
+
+	/* llq push buffer */
+	*push_len = min_t(u32, size, xdp_ring->tx_max_header_size);
+	*push_hdr = tx_info->xdpf->data;
+
+	if (size - *push_len > 0) {
+		dma = dma_map_single(xdp_ring->dev,
+				     *push_hdr + *push_len,
+				     size - *push_len,
+				     DMA_TO_DEVICE);
+		if (unlikely(dma_mapping_error(xdp_ring->dev, dma)))
+			goto error_report_dma_error;
+
+		tx_info->map_linear_data = 1;
+		tx_info->num_of_bufs = 1;
+	}
+
+	ena_buf->paddr = dma;
+	ena_buf->len = size;
+
+	return 0;
+
+error_report_dma_error:
+	u64_stats_update_begin(&xdp_ring->syncp);
+	xdp_ring->tx_stats.dma_mapping_err++;
+	u64_stats_update_end(&xdp_ring->syncp);
+	netif_warn(adapter, tx_queued, adapter->netdev, "Failed to map xdp buff\n");
+
+	xdp_return_frame_rx_napi(tx_info->xdpf);
+	tx_info->xdpf = NULL;
+	tx_info->num_of_bufs = 0;
+
+	return -EINVAL;
+}
+
+static int ena_xdp_xmit_buff(struct net_device *dev,
+			     struct xdp_buff *xdp,
+			     int qid,
+			     struct ena_rx_buffer *rx_info)
+{
+	struct ena_adapter *adapter = netdev_priv(dev);
+	struct ena_com_tx_ctx ena_tx_ctx = {};
+	struct ena_tx_buffer *tx_info;
+	struct ena_ring *xdp_ring;
+	u16 next_to_use, req_id;
+	int rc;
+	void *push_hdr;
+	u32 push_len;
+
+	xdp_ring = &adapter->tx_ring[qid];
+	next_to_use = xdp_ring->next_to_use;
+	req_id = xdp_ring->free_ids[next_to_use];
+	tx_info = &xdp_ring->tx_buffer_info[req_id];
+	tx_info->num_of_bufs = 0;
+	page_ref_inc(rx_info->page);
+	tx_info->xdp_rx_page = rx_info->page;
+
+	rc = ena_xdp_tx_map_buff(xdp_ring, tx_info, xdp, &push_hdr, &push_len);
+	if (unlikely(rc))
+		goto error_drop_packet;
+
+	ena_tx_ctx.ena_bufs = tx_info->bufs;
+	ena_tx_ctx.push_header = push_hdr;
+	ena_tx_ctx.num_bufs = tx_info->num_of_bufs;
+	ena_tx_ctx.req_id = req_id;
+	ena_tx_ctx.header_len = push_len;
+
+	rc = ena_xmit_common(dev,
+			     xdp_ring,
+			     tx_info,
+			     &ena_tx_ctx,
+			     next_to_use,
+			     xdp->data_end - xdp->data);
+	if (rc)
+		goto error_unmap_dma;
+	/* trigger the dma engine. ena_com_write_sq_doorbell()
+	 * has a mb
+	 */
+	ena_com_write_sq_doorbell(xdp_ring->ena_com_io_sq);
+	u64_stats_update_begin(&xdp_ring->syncp);
+	xdp_ring->tx_stats.doorbells++;
+	u64_stats_update_end(&xdp_ring->syncp);
+
+	return NETDEV_TX_OK;
+
+error_unmap_dma:
+	ena_unmap_tx_buff(xdp_ring, tx_info);
+	tx_info->xdpf = NULL;
+error_drop_packet:
+	__free_page(tx_info->xdp_rx_page);
+	return NETDEV_TX_OK;
+}
+
+static int ena_xdp_execute(struct ena_ring *rx_ring,
+			   struct xdp_buff *xdp,
+			   struct ena_rx_buffer *rx_info)
+{
+	struct bpf_prog *xdp_prog;
+	u32 verdict = XDP_PASS;
+	u64 *xdp_stat;
+
+	rcu_read_lock();
+	xdp_prog = READ_ONCE(rx_ring->xdp_bpf_prog);
+
+	if (!xdp_prog)
+		goto out;
+
+	verdict = bpf_prog_run_xdp(xdp_prog, xdp);
+
+	if (verdict == XDP_TX) {
+		ena_xdp_xmit_buff(rx_ring->netdev,
+				  xdp,
+				  rx_ring->qid + rx_ring->adapter->num_io_queues,
+				  rx_info);
+
+		xdp_stat = &rx_ring->rx_stats.xdp_tx;
+	} else if (unlikely(verdict == XDP_ABORTED)) {
+		trace_xdp_exception(rx_ring->netdev, xdp_prog, verdict);
+		xdp_stat = &rx_ring->rx_stats.xdp_aborted;
+	} else if (unlikely(verdict == XDP_DROP)) {
+		xdp_stat = &rx_ring->rx_stats.xdp_drop;
+	} else if (unlikely(verdict == XDP_PASS)) {
+		xdp_stat = &rx_ring->rx_stats.xdp_pass;
+	} else {
+		bpf_warn_invalid_xdp_action(verdict);
+		xdp_stat = &rx_ring->rx_stats.xdp_invalid;
+	}
+
+	u64_stats_update_begin(&rx_ring->syncp);
+	(*xdp_stat)++;
+	u64_stats_update_end(&rx_ring->syncp);
+out:
+	rcu_read_unlock();
+
+	return verdict;
+}
+
+static void ena_init_all_xdp_queues(struct ena_adapter *adapter)
+{
+	adapter->xdp_first_ring = adapter->num_io_queues;
+	adapter->xdp_num_queues = adapter->num_io_queues;
+
+	ena_init_io_rings(adapter,
+			  adapter->xdp_first_ring,
+			  adapter->xdp_num_queues);
+}
+
+static int ena_setup_and_create_all_xdp_queues(struct ena_adapter *adapter)
+{
+	int rc = 0;
+
+	rc = ena_setup_tx_resources_in_range(adapter, adapter->xdp_first_ring,
+					     adapter->xdp_num_queues);
+	if (rc)
+		goto setup_err;
+
+	rc = ena_create_io_tx_queues_in_range(adapter,
+					      adapter->xdp_first_ring,
+					      adapter->xdp_num_queues);
+	if (rc)
+		goto create_err;
+
+	return 0;
+
+create_err:
+	ena_free_all_io_tx_resources(adapter);
+setup_err:
+	return rc;
+}
+
+/* Provides a way for both kernel and bpf-prog to know
+ * more about the RX-queue a given XDP frame arrived on.
+ */
+static int ena_xdp_register_rxq_info(struct ena_ring *rx_ring)
+{
+	int rc;
+
+	rc = xdp_rxq_info_reg(&rx_ring->xdp_rxq, rx_ring->netdev, rx_ring->qid);
+
+	if (rc) {
+		netif_err(rx_ring->adapter, ifup, rx_ring->netdev,
+			  "Failed to register xdp rx queue info. RX queue num %d rc: %d\n",
+			  rx_ring->qid, rc);
+		goto err;
+	}
+
+	rc = xdp_rxq_info_reg_mem_model(&rx_ring->xdp_rxq, MEM_TYPE_PAGE_SHARED,
+					NULL);
+
+	if (rc) {
+		netif_err(rx_ring->adapter, ifup, rx_ring->netdev,
+			  "Failed to register xdp rx queue info memory model. RX queue num %d rc: %d\n",
+			  rx_ring->qid, rc);
+		xdp_rxq_info_unreg(&rx_ring->xdp_rxq);
+	}
+
+err:
+	return rc;
+}
+
+static void ena_xdp_unregister_rxq_info(struct ena_ring *rx_ring)
+{
+	xdp_rxq_info_unreg_mem_model(&rx_ring->xdp_rxq);
+	xdp_rxq_info_unreg(&rx_ring->xdp_rxq);
+}
+
+static void ena_xdp_exchange_program_rx_in_range(struct ena_adapter *adapter,
+						 struct bpf_prog *prog,
+						 int first, int count)
+{
+	struct ena_ring *rx_ring;
+	int i = 0;
+
+	for (i = first; i < count; i++) {
+		rx_ring = &adapter->rx_ring[i];
+		xchg(&rx_ring->xdp_bpf_prog, prog);
+		if (prog) {
+			ena_xdp_register_rxq_info(rx_ring);
+			rx_ring->rx_headroom = XDP_PACKET_HEADROOM;
+		} else {
+			ena_xdp_unregister_rxq_info(rx_ring);
+			rx_ring->rx_headroom = 0;
+		}
+	}
+}
+
+static void ena_xdp_exchange_program(struct ena_adapter *adapter,
+				     struct bpf_prog *prog)
+{
+	struct bpf_prog *old_bpf_prog = xchg(&adapter->xdp_bpf_prog, prog);
+
+	ena_xdp_exchange_program_rx_in_range(adapter,
+					     prog,
+					     0,
+					     adapter->num_io_queues);
+
+	if (old_bpf_prog)
+		bpf_prog_put(old_bpf_prog);
+}
+
+static int ena_destroy_and_free_all_xdp_queues(struct ena_adapter *adapter)
+{
+	bool was_up;
+	int rc;
+
+	was_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
+
+	if (was_up)
+		ena_down(adapter);
+
+	adapter->xdp_first_ring = 0;
+	adapter->xdp_num_queues = 0;
+	ena_xdp_exchange_program(adapter, NULL);
+	if (was_up) {
+		rc = ena_up(adapter);
+		if (rc)
+			return rc;
+	}
+	return 0;
+}
+
+static int ena_xdp_set(struct net_device *netdev, struct netdev_bpf *bpf)
+{
+	struct ena_adapter *adapter = netdev_priv(netdev);
+	struct bpf_prog *prog = bpf->prog;
+	struct bpf_prog *old_bpf_prog;
+	int rc, prev_mtu;
+	bool is_up;
+
+	is_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
+	rc = ena_xdp_allowed(adapter);
+	if (rc == ENA_XDP_ALLOWED) {
+		old_bpf_prog = adapter->xdp_bpf_prog;
+		if (prog) {
+			if (!is_up) {
+				ena_init_all_xdp_queues(adapter);
+			} else if (!old_bpf_prog) {
+				ena_down(adapter);
+				ena_init_all_xdp_queues(adapter);
+			}
+			ena_xdp_exchange_program(adapter, prog);
+
+			if (is_up && !old_bpf_prog) {
+				rc = ena_up(adapter);
+				if (rc)
+					return rc;
+			}
+		} else if (old_bpf_prog) {
+			rc = ena_destroy_and_free_all_xdp_queues(adapter);
+			if (rc)
+				return rc;
+		}
+
+		prev_mtu = netdev->max_mtu;
+		netdev->max_mtu = prog ? ENA_XDP_MAX_MTU : adapter->max_mtu;
+
+		if (!old_bpf_prog)
+			netif_info(adapter, drv, adapter->netdev,
+				   "XDP program is set, changing the max_mtu from %d to %d",
+				   prev_mtu, netdev->max_mtu);
+
+	} else if (rc == ENA_XDP_CURRENT_MTU_TOO_LARGE) {
+		netif_err(adapter, drv, adapter->netdev,
+			  "Failed to set xdp program, the current MTU (%d) is larger than the maximum allowed MTU (%lu) while xdp is on",
+			  netdev->mtu, ENA_XDP_MAX_MTU);
+		NL_SET_ERR_MSG_MOD(bpf->extack,
+				   "Failed to set xdp program, the current MTU is larger than the maximum allowed MTU. Check the dmesg for more info");
+		return -EINVAL;
+	} else if (rc == ENA_XDP_NO_ENOUGH_QUEUES) {
+		netif_err(adapter, drv, adapter->netdev,
+			  "Failed to set xdp program, the Rx/Tx channel count should be at most half of the maximum allowed channel count. The current queue count (%d), the maximal queue count (%d)\n",
+			  adapter->num_io_queues, adapter->max_num_io_queues);
+		NL_SET_ERR_MSG_MOD(bpf->extack,
+				   "Failed to set xdp program, there is no enough space for allocating XDP queues, Check the dmesg for more info");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+/* This is the main xdp callback, it's used by the kernel to set/unset the xdp
+ * program as well as to query the current xdp program id.
+ */
+static int ena_xdp(struct net_device *netdev, struct netdev_bpf *bpf)
+{
+	struct ena_adapter *adapter = netdev_priv(netdev);
+
+	switch (bpf->command) {
+	case XDP_SETUP_PROG:
+		return ena_xdp_set(netdev, bpf);
+	case XDP_QUERY_PROG:
+		bpf->prog_id = adapter->xdp_bpf_prog ?
+			adapter->xdp_bpf_prog->aux->id : 0;
+		break;
+	default:
+		return -EINVAL;
+	}
+	return 0;
+}
+
 static int ena_init_rx_cpu_rmap(struct ena_adapter *adapter)
 {
 #ifdef CONFIG_RFS_ACCEL
 	u32 i;
 	int rc;
 
-	adapter->netdev->rx_cpu_rmap = alloc_irq_cpu_rmap(adapter->num_queues);
+	adapter->netdev->rx_cpu_rmap = alloc_irq_cpu_rmap(adapter->num_io_queues);
 	if (!adapter->netdev->rx_cpu_rmap)
 		return -ENOMEM;
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		int irq_idx = ENA_IO_IRQ_IDX(i);
 
 		rc = irq_cpu_rmap_add(adapter->netdev->rx_cpu_rmap,
@@ -164,7 +620,8 @@
 	u64_stats_init(&ring->syncp);
 }
 
-static void ena_init_io_rings(struct ena_adapter *adapter)
+static void ena_init_io_rings(struct ena_adapter *adapter,
+			      int first_index, int count)
 {
 	struct ena_com_dev *ena_dev;
 	struct ena_ring *txr, *rxr;
@@ -172,13 +629,12 @@
 
 	ena_dev = adapter->ena_dev;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = first_index; i < first_index + count; i++) {
 		txr = &adapter->tx_ring[i];
 		rxr = &adapter->rx_ring[i];
 
-		/* TX/RX common ring state */
+		/* TX common ring state */
 		ena_init_io_rings_common(adapter, txr, i);
-		ena_init_io_rings_common(adapter, rxr, i);
 
 		/* TX specific ring state */
 		txr->ring_size = adapter->requested_tx_ring_size;
@@ -187,15 +643,22 @@
 		txr->sgl_size = adapter->max_tx_sgl_size;
 		txr->smoothed_interval =
 			ena_com_get_nonadaptive_moderation_interval_tx(ena_dev);
+		txr->disable_meta_caching = adapter->disable_meta_caching;
 
-		/* RX specific ring state */
-		rxr->ring_size = adapter->requested_rx_ring_size;
-		rxr->rx_copybreak = adapter->rx_copybreak;
-		rxr->sgl_size = adapter->max_rx_sgl_size;
-		rxr->smoothed_interval =
-			ena_com_get_nonadaptive_moderation_interval_rx(ena_dev);
-		rxr->empty_rx_queue = 0;
-		adapter->ena_napi[i].dim.mode = DIM_CQ_PERIOD_MODE_START_FROM_EQE;
+		/* Don't init RX queues for xdp queues */
+		if (!ENA_IS_XDP_INDEX(adapter, i)) {
+			/* RX common ring state */
+			ena_init_io_rings_common(adapter, rxr, i);
+
+			/* RX specific ring state */
+			rxr->ring_size = adapter->requested_rx_ring_size;
+			rxr->rx_copybreak = adapter->rx_copybreak;
+			rxr->sgl_size = adapter->max_rx_sgl_size;
+			rxr->smoothed_interval =
+				ena_com_get_nonadaptive_moderation_interval_rx(ena_dev);
+			rxr->empty_rx_queue = 0;
+			adapter->ena_napi[i].dim.mode = DIM_CQ_PERIOD_MODE_START_FROM_EQE;
+		}
 	}
 }
 
@@ -285,16 +748,13 @@
 	tx_ring->push_buf_intermediate_buf = NULL;
 }
 
-/* ena_setup_all_tx_resources - allocate I/O Tx queues resources for All queues
- * @adapter: private structure
- *
- * Return 0 on success, negative on failure
- */
-static int ena_setup_all_tx_resources(struct ena_adapter *adapter)
+static int ena_setup_tx_resources_in_range(struct ena_adapter *adapter,
+					   int first_index,
+					   int count)
 {
 	int i, rc = 0;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = first_index; i < first_index + count; i++) {
 		rc = ena_setup_tx_resources(adapter, i);
 		if (rc)
 			goto err_setup_tx;
@@ -308,40 +768,31 @@
 		  "Tx queue %d: allocation failed\n", i);
 
 	/* rewind the index freeing the rings as we go */
-	while (i--)
+	while (first_index < i--)
 		ena_free_tx_resources(adapter, i);
 	return rc;
 }
 
-/* ena_free_all_io_tx_resources - Free I/O Tx Resources for All Queues
- * @adapter: board private structure
- *
- * Free all transmit software resources
- */
-static void ena_free_all_io_tx_resources(struct ena_adapter *adapter)
+static void ena_free_all_io_tx_resources_in_range(struct ena_adapter *adapter,
+						  int first_index, int count)
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = first_index; i < first_index + count; i++)
 		ena_free_tx_resources(adapter, i);
 }
 
-static int validate_rx_req_id(struct ena_ring *rx_ring, u16 req_id)
+/* ena_free_all_io_tx_resources - Free I/O Tx Resources for All Queues
+ * @adapter: board private structure
+ *
+ * Free all transmit software resources
+ */
+static void ena_free_all_io_tx_resources(struct ena_adapter *adapter)
 {
-	if (likely(req_id < rx_ring->ring_size))
-		return 0;
-
-	netif_err(rx_ring->adapter, rx_err, rx_ring->netdev,
-		  "Invalid rx req_id: %hu\n", req_id);
-
-	u64_stats_update_begin(&rx_ring->syncp);
-	rx_ring->rx_stats.bad_req_id++;
-	u64_stats_update_end(&rx_ring->syncp);
-
-	/* Trigger device reset */
-	rx_ring->adapter->reset_reason = ENA_REGS_RESET_INV_RX_REQ_ID;
-	set_bit(ENA_FLAG_TRIGGER_RESET, &rx_ring->adapter->flags);
-	return -EFAULT;
+	ena_free_all_io_tx_resources_in_range(adapter,
+					      0,
+					      adapter->xdp_num_queues +
+					      adapter->num_io_queues);
 }
 
 /* ena_setup_rx_resources - allocate I/O Rx resources (Descriptors)
@@ -428,7 +879,7 @@
 {
 	int i, rc = 0;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		rc = ena_setup_rx_resources(adapter, i);
 		if (rc)
 			goto err_setup_rx;
@@ -456,17 +907,21 @@
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < adapter->num_io_queues; i++)
 		ena_free_rx_resources(adapter, i);
 }
 
 static int ena_alloc_rx_page(struct ena_ring *rx_ring,
 				    struct ena_rx_buffer *rx_info, gfp_t gfp)
 {
+	int headroom = rx_ring->rx_headroom;
 	struct ena_com_buf *ena_buf;
 	struct page *page;
 	dma_addr_t dma;
 
+	/* restore page offset value in case it has been changed by device */
+	rx_info->page_offset = headroom;
+
 	/* if previous allocated page is not used */
 	if (unlikely(rx_info->page))
 		return 0;
@@ -479,8 +934,11 @@
 		return -ENOMEM;
 	}
 
+	/* To enable NIC-side port-mirroring, AKA SPAN port,
+	 * we make the buffer readable from the nic as well
+	 */
 	dma = dma_map_page(rx_ring->dev, page, 0, ENA_PAGE_SIZE,
-			   DMA_FROM_DEVICE);
+			   DMA_BIDIRECTIONAL);
 	if (unlikely(dma_mapping_error(rx_ring->dev, dma))) {
 		u64_stats_update_begin(&rx_ring->syncp);
 		rx_ring->rx_stats.dma_mapping_err++;
@@ -490,13 +948,12 @@
 		return -EIO;
 	}
 	netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
-		  "alloc page %p, rx_info %p\n", page, rx_info);
+		  "Allocate page %p, rx_info %p\n", page, rx_info);
 
 	rx_info->page = page;
-	rx_info->page_offset = 0;
 	ena_buf = &rx_info->ena_buf;
-	ena_buf->paddr = dma;
-	ena_buf->len = ENA_PAGE_SIZE;
+	ena_buf->paddr = dma + headroom;
+	ena_buf->len = ENA_PAGE_SIZE - headroom;
 
 	return 0;
 }
@@ -513,8 +970,9 @@
 		return;
 	}
 
-	dma_unmap_page(rx_ring->dev, ena_buf->paddr, ENA_PAGE_SIZE,
-		       DMA_FROM_DEVICE);
+	dma_unmap_page(rx_ring->dev, ena_buf->paddr - rx_ring->rx_headroom,
+		       ENA_PAGE_SIZE,
+		       DMA_BIDIRECTIONAL);
 
 	__free_page(page);
 	rx_info->page = NULL;
@@ -532,18 +990,14 @@
 		struct ena_rx_buffer *rx_info;
 
 		req_id = rx_ring->free_ids[next_to_use];
-		rc = validate_rx_req_id(rx_ring, req_id);
-		if (unlikely(rc < 0))
-			break;
 
 		rx_info = &rx_ring->rx_buffer_info[req_id];
 
-
 		rc = ena_alloc_rx_page(rx_ring, rx_info,
 				       GFP_ATOMIC | __GFP_COMP);
 		if (unlikely(rc < 0)) {
 			netif_warn(rx_ring->adapter, rx_err, rx_ring->netdev,
-				   "failed to alloc buffer for rx queue %d\n",
+				   "Failed to allocate buffer for rx queue %d\n",
 				   rx_ring->qid);
 			break;
 		}
@@ -552,7 +1006,7 @@
 						req_id);
 		if (unlikely(rc)) {
 			netif_warn(rx_ring->adapter, rx_status, rx_ring->netdev,
-				   "failed to add buffer for rx queue %d\n",
+				   "Failed to add buffer for rx queue %d\n",
 				   rx_ring->qid);
 			break;
 		}
@@ -564,9 +1018,9 @@
 		u64_stats_update_begin(&rx_ring->syncp);
 		rx_ring->rx_stats.refil_partial++;
 		u64_stats_update_end(&rx_ring->syncp);
-		netdev_warn(rx_ring->netdev,
-			    "refilled rx qid %d with only %d buffers (from %d)\n",
-			    rx_ring->qid, i, num);
+		netif_warn(rx_ring->adapter, rx_err, rx_ring->netdev,
+			   "Refilled rx qid %d with only %d buffers (from %d)\n",
+			   rx_ring->qid, i, num);
 	}
 
 	/* ena_com_write_sq_doorbell issues a wmb() */
@@ -600,14 +1054,14 @@
 	struct ena_ring *rx_ring;
 	int i, rc, bufs_num;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		rx_ring = &adapter->rx_ring[i];
 		bufs_num = rx_ring->ring_size - 1;
 		rc = ena_refill_rx_bufs(rx_ring, bufs_num);
 
 		if (unlikely(rc != bufs_num))
 			netif_warn(rx_ring->adapter, rx_status, rx_ring->netdev,
-				   "refilling Queue %d failed. allocated %d buffers from: %d\n",
+				   "Refilling Queue %d failed. allocated %d buffers from: %d\n",
 				   i, rc, bufs_num);
 	}
 }
@@ -616,12 +1070,12 @@
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < adapter->num_io_queues; i++)
 		ena_free_rx_bufs(adapter, i);
 }
 
-static void ena_unmap_tx_skb(struct ena_ring *tx_ring,
-				    struct ena_tx_buffer *tx_info)
+static void ena_unmap_tx_buff(struct ena_ring *tx_ring,
+			      struct ena_tx_buffer *tx_info)
 {
 	struct ena_com_buf *ena_buf;
 	u32 cnt;
@@ -665,17 +1119,17 @@
 			continue;
 
 		if (print_once) {
-			netdev_notice(tx_ring->netdev,
-				      "free uncompleted tx skb qid %d idx 0x%x\n",
-				      tx_ring->qid, i);
+			netif_notice(tx_ring->adapter, ifdown, tx_ring->netdev,
+				     "Free uncompleted tx skb qid %d idx 0x%x\n",
+				     tx_ring->qid, i);
 			print_once = false;
 		} else {
-			netdev_dbg(tx_ring->netdev,
-				   "free uncompleted tx skb qid %d idx 0x%x\n",
-				   tx_ring->qid, i);
+			netif_dbg(tx_ring->adapter, ifdown, tx_ring->netdev,
+				  "Free uncompleted tx skb qid %d idx 0x%x\n",
+				  tx_ring->qid, i);
 		}
 
-		ena_unmap_tx_skb(tx_ring, tx_info);
+		ena_unmap_tx_buff(tx_ring, tx_info);
 
 		dev_kfree_skb_any(tx_info->skb);
 	}
@@ -688,7 +1142,7 @@
 	struct ena_ring *tx_ring;
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues + adapter->xdp_num_queues; i++) {
 		tx_ring = &adapter->tx_ring[i];
 		ena_free_tx_bufs(tx_ring);
 	}
@@ -699,7 +1153,7 @@
 	u16 ena_qid;
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues + adapter->xdp_num_queues; i++) {
 		ena_qid = ENA_IO_TXQ_IDX(i);
 		ena_com_destroy_io_queue(adapter->ena_dev, ena_qid);
 	}
@@ -710,7 +1164,7 @@
 	u16 ena_qid;
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		ena_qid = ENA_IO_RXQ_IDX(i);
 		cancel_work_sync(&adapter->ena_napi[i].dim.work);
 		ena_com_destroy_io_queue(adapter->ena_dev, ena_qid);
@@ -723,6 +1177,32 @@
 	ena_destroy_all_rx_queues(adapter);
 }
 
+static int handle_invalid_req_id(struct ena_ring *ring, u16 req_id,
+				 struct ena_tx_buffer *tx_info, bool is_xdp)
+{
+	if (tx_info)
+		netif_err(ring->adapter,
+			  tx_done,
+			  ring->netdev,
+			  "tx_info doesn't have valid %s",
+			   is_xdp ? "xdp frame" : "skb");
+	else
+		netif_err(ring->adapter,
+			  tx_done,
+			  ring->netdev,
+			  "Invalid req_id: %hu\n",
+			  req_id);
+
+	u64_stats_update_begin(&ring->syncp);
+	ring->tx_stats.bad_req_id++;
+	u64_stats_update_end(&ring->syncp);
+
+	/* Trigger device reset */
+	ring->adapter->reset_reason = ENA_REGS_RESET_INV_TX_REQ_ID;
+	set_bit(ENA_FLAG_TRIGGER_RESET, &ring->adapter->flags);
+	return -EFAULT;
+}
+
 static int validate_tx_req_id(struct ena_ring *tx_ring, u16 req_id)
 {
 	struct ena_tx_buffer *tx_info = NULL;
@@ -733,21 +1213,20 @@
 			return 0;
 	}
 
-	if (tx_info)
-		netif_err(tx_ring->adapter, tx_done, tx_ring->netdev,
-			  "tx_info doesn't have valid skb\n");
-	else
-		netif_err(tx_ring->adapter, tx_done, tx_ring->netdev,
-			  "Invalid req_id: %hu\n", req_id);
+	return handle_invalid_req_id(tx_ring, req_id, tx_info, false);
+}
 
-	u64_stats_update_begin(&tx_ring->syncp);
-	tx_ring->tx_stats.bad_req_id++;
-	u64_stats_update_end(&tx_ring->syncp);
+static int validate_xdp_req_id(struct ena_ring *xdp_ring, u16 req_id)
+{
+	struct ena_tx_buffer *tx_info = NULL;
 
-	/* Trigger device reset */
-	tx_ring->adapter->reset_reason = ENA_REGS_RESET_INV_TX_REQ_ID;
-	set_bit(ENA_FLAG_TRIGGER_RESET, &tx_ring->adapter->flags);
-	return -EFAULT;
+	if (likely(req_id < xdp_ring->ring_size)) {
+		tx_info = &xdp_ring->tx_buffer_info[req_id];
+		if (likely(tx_info->xdpf))
+			return 0;
+	}
+
+	return handle_invalid_req_id(xdp_ring, req_id, tx_info, true);
 }
 
 static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget)
@@ -786,7 +1265,7 @@
 		tx_info->skb = NULL;
 		tx_info->last_jiffies = 0;
 
-		ena_unmap_tx_skb(tx_ring, tx_info);
+		ena_unmap_tx_buff(tx_ring, tx_info);
 
 		netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev,
 			  "tx_poll: q %d skb %p completed\n", tx_ring->qid,
@@ -871,6 +1350,7 @@
 
 	len = ena_bufs[buf].len;
 	req_id = ena_bufs[buf].req_id;
+
 	rx_info = &rx_ring->rx_buffer_info[req_id];
 
 	if (unlikely(!rx_info->page)) {
@@ -885,7 +1365,8 @@
 
 	/* save virt address of first buffer */
 	va = page_address(rx_info->page) + rx_info->page_offset;
-	prefetch(va + NET_IP_ALIGN);
+
+	prefetch(va);
 
 	if (len <= rx_ring->rx_copybreak) {
 		skb = ena_alloc_skb(rx_ring, false);
@@ -893,7 +1374,7 @@
 			return NULL;
 
 		netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
-			  "rx allocated small packet. len %d. data_len %d\n",
+			  "RX allocated small packet. len %d. data_len %d\n",
 			  skb->len, skb->data_len);
 
 		/* sync this buffer for CPU use */
@@ -922,13 +1403,13 @@
 	do {
 		dma_unmap_page(rx_ring->dev,
 			       dma_unmap_addr(&rx_info->ena_buf, paddr),
-			       ENA_PAGE_SIZE, DMA_FROM_DEVICE);
+			       ENA_PAGE_SIZE, DMA_BIDIRECTIONAL);
 
 		skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_info->page,
 				rx_info->page_offset, len, ENA_PAGE_SIZE);
 
 		netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
-			  "rx skb updated. len %d. data_len %d\n",
+			  "RX skb updated. len %d. data_len %d\n",
 			  skb->len, skb->data_len);
 
 		rx_info->page = NULL;
@@ -943,6 +1424,7 @@
 		buf++;
 		len = ena_bufs[buf].len;
 		req_id = ena_bufs[buf].req_id;
+
 		rx_info = &rx_ring->rx_buffer_info[req_id];
 	} while (1);
 
@@ -1037,6 +1519,32 @@
 	}
 }
 
+static int ena_xdp_handle_buff(struct ena_ring *rx_ring, struct xdp_buff *xdp)
+{
+	struct ena_rx_buffer *rx_info;
+	int ret;
+
+	rx_info = &rx_ring->rx_buffer_info[rx_ring->ena_bufs[0].req_id];
+	xdp->data = page_address(rx_info->page) + rx_info->page_offset;
+	xdp_set_data_meta_invalid(xdp);
+	xdp->data_hard_start = page_address(rx_info->page);
+	xdp->data_end = xdp->data + rx_ring->ena_bufs[0].len;
+	/* If for some reason we received a bigger packet than
+	 * we expect, then we simply drop it
+	 */
+	if (unlikely(rx_ring->ena_bufs[0].len > ENA_XDP_MAX_MTU))
+		return XDP_DROP;
+
+	ret = ena_xdp_execute(rx_ring, xdp, rx_info);
+
+	/* The xdp program might expand the headers */
+	if (ret == XDP_PASS) {
+		rx_info->page_offset = xdp->data - xdp->data_hard_start;
+		rx_ring->ena_bufs[0].len = xdp->data_end - xdp->data;
+	}
+
+	return ret;
+}
 /* ena_clean_rx_irq - Cleanup RX irq
  * @rx_ring: RX ring to clean
  * @napi: napi handler
@@ -1048,26 +1556,32 @@
 			    u32 budget)
 {
 	u16 next_to_clean = rx_ring->next_to_clean;
-	u32 res_budget, work_done;
-
 	struct ena_com_rx_ctx ena_rx_ctx;
+	struct ena_rx_buffer *rx_info;
 	struct ena_adapter *adapter;
+	u32 res_budget, work_done;
+	int rx_copybreak_pkt = 0;
+	int refill_threshold;
 	struct sk_buff *skb;
 	int refill_required;
-	int refill_threshold;
-	int rc = 0;
+	struct xdp_buff xdp;
 	int total_len = 0;
-	int rx_copybreak_pkt = 0;
+	int xdp_verdict;
+	int rc = 0;
 	int i;
 
 	netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
 		  "%s qid %d\n", __func__, rx_ring->qid);
 	res_budget = budget;
+	xdp.rxq = &rx_ring->xdp_rxq;
 
 	do {
+		xdp_verdict = XDP_PASS;
+		skb = NULL;
 		ena_rx_ctx.ena_bufs = rx_ring->ena_bufs;
 		ena_rx_ctx.max_bufs = rx_ring->sgl_size;
 		ena_rx_ctx.descs = 0;
+		ena_rx_ctx.pkt_offset = 0;
 		rc = ena_com_rx_pkt(rx_ring->ena_com_io_cq,
 				    rx_ring->ena_com_io_sq,
 				    &ena_rx_ctx);
@@ -1077,17 +1591,34 @@
 		if (unlikely(ena_rx_ctx.descs == 0))
 			break;
 
+		/* First descriptor might have an offset set by the device */
+		rx_info = &rx_ring->rx_buffer_info[rx_ring->ena_bufs[0].req_id];
+		rx_info->page_offset += ena_rx_ctx.pkt_offset;
+
 		netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
 			  "rx_poll: q %d got packet from ena. descs #: %d l3 proto %d l4 proto %d hash: %x\n",
 			  rx_ring->qid, ena_rx_ctx.descs, ena_rx_ctx.l3_proto,
 			  ena_rx_ctx.l4_proto, ena_rx_ctx.hash);
 
+		if (ena_xdp_present_ring(rx_ring))
+			xdp_verdict = ena_xdp_handle_buff(rx_ring, &xdp);
+
 		/* allocate skb and fill it */
-		skb = ena_rx_skb(rx_ring, rx_ring->ena_bufs, ena_rx_ctx.descs,
-				 &next_to_clean);
+		if (xdp_verdict == XDP_PASS)
+			skb = ena_rx_skb(rx_ring,
+					 rx_ring->ena_bufs,
+					 ena_rx_ctx.descs,
+					 &next_to_clean);
 
-		/* exit if we failed to retrieve a buffer */
 		if (unlikely(!skb)) {
+			/* The page might not actually be freed here since the
+			 * page reference count is incremented in
+			 * ena_xdp_xmit_buff(), and it will be decreased only
+			 * when send completion was received from the device
+			 */
+			if (xdp_verdict == XDP_TX)
+				ena_free_rx_page(rx_ring,
+						 &rx_ring->rx_buffer_info[rx_ring->ena_bufs[0].req_id]);
 			for (i = 0; i < ena_rx_ctx.descs; i++) {
 				rx_ring->free_ids[next_to_clean] =
 					rx_ring->ena_bufs[i].req_id;
@@ -1095,6 +1626,10 @@
 					ENA_RX_RING_IDX_NEXT(next_to_clean,
 							     rx_ring->ring_size);
 			}
+			if (xdp_verdict != XDP_PASS) {
+				res_budget--;
+				continue;
+			}
 			break;
 		}
 
@@ -1126,7 +1661,7 @@
 
 	rx_ring->next_to_clean = next_to_clean;
 
-	refill_required = ena_com_free_desc(rx_ring->ena_com_io_sq);
+	refill_required = ena_com_free_q_entries(rx_ring->ena_com_io_sq);
 	refill_threshold =
 		min_t(int, rx_ring->ring_size / ENA_RX_REFILL_THRESH_DIVIDER,
 		      ENA_RX_REFILL_THRESH_PACKET);
@@ -1142,12 +1677,18 @@
 error:
 	adapter = netdev_priv(rx_ring->netdev);
 
-	u64_stats_update_begin(&rx_ring->syncp);
-	rx_ring->rx_stats.bad_desc_num++;
-	u64_stats_update_end(&rx_ring->syncp);
+	if (rc == -ENOSPC) {
+		u64_stats_update_begin(&rx_ring->syncp);
+		rx_ring->rx_stats.bad_desc_num++;
+		u64_stats_update_end(&rx_ring->syncp);
+		adapter->reset_reason = ENA_REGS_RESET_TOO_MANY_RX_DESCS;
+	} else {
+		u64_stats_update_begin(&rx_ring->syncp);
+		rx_ring->rx_stats.bad_req_id++;
+		u64_stats_update_end(&rx_ring->syncp);
+		adapter->reset_reason = ENA_REGS_RESET_INV_RX_REQ_ID;
+	}
 
-	/* Too many desc from the device. Trigger reset */
-	adapter->reset_reason = ENA_REGS_RESET_TOO_MANY_RX_DESCS;
 	set_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
 
 	return 0;
@@ -1188,9 +1729,14 @@
 					struct ena_ring *rx_ring)
 {
 	struct ena_eth_io_intr_reg intr_reg;
-	u32 rx_interval = ena_com_get_adaptive_moderation_enabled(rx_ring->ena_dev) ?
-		rx_ring->smoothed_interval :
-		ena_com_get_nonadaptive_moderation_interval_rx(rx_ring->ena_dev);
+	u32 rx_interval = 0;
+	/* Rx ring can be NULL when for XDP tx queues which don't have an
+	 * accompanying rx_ring pair.
+	 */
+	if (rx_ring)
+		rx_interval = ena_com_get_adaptive_moderation_enabled(rx_ring->ena_dev) ?
+			rx_ring->smoothed_interval :
+			ena_com_get_nonadaptive_moderation_interval_rx(rx_ring->ena_dev);
 
 	/* Update intr register: rx intr delay,
 	 * tx intr delay and interrupt unmask
@@ -1200,11 +1746,16 @@
 				tx_ring->smoothed_interval,
 				true);
 
+	u64_stats_update_begin(&tx_ring->syncp);
+	tx_ring->tx_stats.unmask_interrupt++;
+	u64_stats_update_end(&tx_ring->syncp);
+
 	/* It is a shared MSI-X.
 	 * Tx and Rx CQ have pointer to it.
 	 * So we use one of them to reach the intr reg
+	 * The Tx ring is used because the rx_ring is NULL for XDP queues
 	 */
-	ena_com_unmask_intr(rx_ring->ena_com_io_cq, &intr_reg);
+	ena_com_unmask_intr(tx_ring->ena_com_io_cq, &intr_reg);
 }
 
 static void ena_update_ring_numa_node(struct ena_ring *tx_ring,
@@ -1222,24 +1773,84 @@
 
 	if (numa_node != NUMA_NO_NODE) {
 		ena_com_update_numa_node(tx_ring->ena_com_io_cq, numa_node);
-		ena_com_update_numa_node(rx_ring->ena_com_io_cq, numa_node);
+		if (rx_ring)
+			ena_com_update_numa_node(rx_ring->ena_com_io_cq,
+						 numa_node);
 	}
 
 	tx_ring->cpu = cpu;
-	rx_ring->cpu = cpu;
+	if (rx_ring)
+		rx_ring->cpu = cpu;
 
 	return;
 out:
 	put_cpu();
 }
 
+static int ena_clean_xdp_irq(struct ena_ring *xdp_ring, u32 budget)
+{
+	u32 total_done = 0;
+	u16 next_to_clean;
+	u32 tx_bytes = 0;
+	int tx_pkts = 0;
+	u16 req_id;
+	int rc;
+
+	if (unlikely(!xdp_ring))
+		return 0;
+	next_to_clean = xdp_ring->next_to_clean;
+
+	while (tx_pkts < budget) {
+		struct ena_tx_buffer *tx_info;
+		struct xdp_frame *xdpf;
+
+		rc = ena_com_tx_comp_req_id_get(xdp_ring->ena_com_io_cq,
+						&req_id);
+		if (rc)
+			break;
+
+		rc = validate_xdp_req_id(xdp_ring, req_id);
+		if (rc)
+			break;
+
+		tx_info = &xdp_ring->tx_buffer_info[req_id];
+		xdpf = tx_info->xdpf;
+
+		tx_info->xdpf = NULL;
+		tx_info->last_jiffies = 0;
+		ena_unmap_tx_buff(xdp_ring, tx_info);
+
+		netif_dbg(xdp_ring->adapter, tx_done, xdp_ring->netdev,
+			  "tx_poll: q %d skb %p completed\n", xdp_ring->qid,
+			  xdpf);
+
+		tx_bytes += xdpf->len;
+		tx_pkts++;
+		total_done += tx_info->tx_descs;
+
+		__free_page(tx_info->xdp_rx_page);
+		xdp_ring->free_ids[next_to_clean] = req_id;
+		next_to_clean = ENA_TX_RING_IDX_NEXT(next_to_clean,
+						     xdp_ring->ring_size);
+	}
+
+	xdp_ring->next_to_clean = next_to_clean;
+	ena_com_comp_ack(xdp_ring->ena_com_io_sq, total_done);
+	ena_com_update_dev_comp_head(xdp_ring->ena_com_io_cq);
+
+	netif_dbg(xdp_ring->adapter, tx_done, xdp_ring->netdev,
+		  "tx_poll: q %d done. total pkts: %d\n",
+		  xdp_ring->qid, tx_pkts);
+
+	return tx_pkts;
+}
+
 static int ena_io_poll(struct napi_struct *napi, int budget)
 {
 	struct ena_napi *ena_napi = container_of(napi, struct ena_napi, napi);
 	struct ena_ring *tx_ring, *rx_ring;
-
-	u32 tx_work_done;
-	u32 rx_work_done;
+	int tx_work_done;
+	int rx_work_done = 0;
 	int tx_budget;
 	int napi_comp_call = 0;
 	int ret;
@@ -1247,6 +1858,9 @@
 	tx_ring = ena_napi->tx_ring;
 	rx_ring = ena_napi->rx_ring;
 
+	tx_ring->first_interrupt = ena_napi->first_interrupt;
+	rx_ring->first_interrupt = ena_napi->first_interrupt;
+
 	tx_budget = tx_ring->ring_size / ENA_TX_POLL_BUDGET_DIVIDER;
 
 	if (!test_bit(ENA_FLAG_DEV_UP, &tx_ring->adapter->flags) ||
@@ -1256,7 +1870,11 @@
 	}
 
 	tx_work_done = ena_clean_tx_irq(tx_ring, tx_budget);
-	rx_work_done = ena_clean_rx_irq(rx_ring, napi, budget);
+	/* On netpoll the budget is zero and the handler should only clean the
+	 * tx completions.
+	 */
+	if (likely(budget))
+		rx_work_done = ena_clean_rx_irq(rx_ring, napi, budget);
 
 	/* If the device is about to reset or down, avoid unmask
 	 * the interrupt and return 0 so NAPI won't reschedule
@@ -1272,7 +1890,10 @@
 		/* Update numa and unmask the interrupt only when schedule
 		 * from the interrupt context (vs from sk_busy_loop)
 		 */
-		if (napi_complete_done(napi, rx_work_done)) {
+		if (napi_complete_done(napi, rx_work_done) &&
+		    READ_ONCE(ena_napi->interrupts_masked)) {
+			smp_rmb(); /* make sure interrupts_masked is read */
+			WRITE_ONCE(ena_napi->interrupts_masked, false);
 			/* We apply adaptive moderation on Rx path only.
 			 * Tx uses static interrupt moderation.
 			 */
@@ -1318,8 +1939,10 @@
 {
 	struct ena_napi *ena_napi = data;
 
-	ena_napi->tx_ring->first_interrupt = true;
-	ena_napi->rx_ring->first_interrupt = true;
+	ena_napi->first_interrupt = true;
+
+	WRITE_ONCE(ena_napi->interrupts_masked, true);
+	smp_wmb(); /* write interrupts_masked before calling napi */
 
 	napi_schedule_irqoff(&ena_napi->napi);
 
@@ -1331,7 +1954,7 @@
  * the number of potential io queues is the minimum of what the device
  * supports and the number of vCPUs.
  */
-static int ena_enable_msix(struct ena_adapter *adapter, int num_queues)
+static int ena_enable_msix(struct ena_adapter *adapter)
 {
 	int msix_vecs, irq_cnt;
 
@@ -1342,9 +1965,9 @@
 	}
 
 	/* Reserved the max msix vectors we might need */
-	msix_vecs = ENA_MAX_MSIX_VEC(num_queues);
+	msix_vecs = ENA_MAX_MSIX_VEC(adapter->max_num_io_queues);
 	netif_dbg(adapter, probe, adapter->netdev,
-		  "trying to enable MSI-X, vectors %d\n", msix_vecs);
+		  "Trying to enable MSI-X, vectors %d\n", msix_vecs);
 
 	irq_cnt = pci_alloc_irq_vectors(adapter->pdev, ENA_MIN_MSIX_VEC,
 					msix_vecs, PCI_IRQ_MSIX);
@@ -1357,9 +1980,9 @@
 
 	if (irq_cnt != msix_vecs) {
 		netif_notice(adapter, probe, adapter->netdev,
-			     "enable only %d MSI-X (out of %d), reduce the number of queues\n",
+			     "Enable only %d MSI-X (out of %d), reduce the number of queues\n",
 			     irq_cnt, msix_vecs);
-		adapter->num_queues = irq_cnt - ENA_ADMIN_MSIX_VEC;
+		adapter->num_io_queues = irq_cnt - ENA_ADMIN_MSIX_VEC;
 	}
 
 	if (ena_init_rx_cpu_rmap(adapter))
@@ -1394,10 +2017,12 @@
 {
 	struct net_device *netdev;
 	int irq_idx, i, cpu;
+	int io_queue_count;
 
 	netdev = adapter->netdev;
+	io_queue_count = adapter->num_io_queues + adapter->xdp_num_queues;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < io_queue_count; i++) {
 		irq_idx = ENA_IO_IRQ_IDX(i);
 		cpu = i % num_online_cpus();
 
@@ -1425,12 +2050,12 @@
 			 irq->data);
 	if (rc) {
 		netif_err(adapter, probe, adapter->netdev,
-			  "failed to request admin irq\n");
+			  "Failed to request admin irq\n");
 		return rc;
 	}
 
 	netif_dbg(adapter, probe, adapter->netdev,
-		  "set affinity hint of mgmnt irq.to 0x%lx (irq vector: %d)\n",
+		  "Set affinity hint of mgmnt irq.to 0x%lx (irq vector: %d)\n",
 		  irq->affinity_hint_mask.bits[0], irq->vector);
 
 	irq_set_affinity_hint(irq->vector, &irq->affinity_hint_mask);
@@ -1440,6 +2065,7 @@
 
 static int ena_request_io_irq(struct ena_adapter *adapter)
 {
+	u32 io_queue_count = adapter->num_io_queues + adapter->xdp_num_queues;
 	unsigned long flags = 0;
 	struct ena_irq *irq;
 	int rc = 0, i, k;
@@ -1450,7 +2076,7 @@
 		return -EINVAL;
 	}
 
-	for (i = ENA_IO_IRQ_FIRST_IDX; i < adapter->msix_vecs; i++) {
+	for (i = ENA_IO_IRQ_FIRST_IDX; i < ENA_MAX_MSIX_VEC(io_queue_count); i++) {
 		irq = &adapter->irq_tbl[i];
 		rc = request_irq(irq->vector, irq->handler, flags, irq->name,
 				 irq->data);
@@ -1462,7 +2088,7 @@
 		}
 
 		netif_dbg(adapter, ifup, adapter->netdev,
-			  "set affinity hint of irq. index %d to 0x%lx (irq vector: %d)\n",
+			  "Set affinity hint of irq. index %d to 0x%lx (irq vector: %d)\n",
 			  i, irq->affinity_hint_mask.bits[0], irq->vector);
 
 		irq_set_affinity_hint(irq->vector, &irq->affinity_hint_mask);
@@ -1491,6 +2117,7 @@
 
 static void ena_free_io_irq(struct ena_adapter *adapter)
 {
+	u32 io_queue_count = adapter->num_io_queues + adapter->xdp_num_queues;
 	struct ena_irq *irq;
 	int i;
 
@@ -1501,7 +2128,7 @@
 	}
 #endif /* CONFIG_RFS_ACCEL */
 
-	for (i = ENA_IO_IRQ_FIRST_IDX; i < adapter->msix_vecs; i++) {
+	for (i = ENA_IO_IRQ_FIRST_IDX; i < ENA_MAX_MSIX_VEC(io_queue_count); i++) {
 		irq = &adapter->irq_tbl[i];
 		irq_set_affinity_hint(irq->vector, NULL);
 		free_irq(irq->vector, irq->data);
@@ -1516,54 +2143,70 @@
 
 static void ena_disable_io_intr_sync(struct ena_adapter *adapter)
 {
+	u32 io_queue_count = adapter->num_io_queues + adapter->xdp_num_queues;
 	int i;
 
 	if (!netif_running(adapter->netdev))
 		return;
 
-	for (i = ENA_IO_IRQ_FIRST_IDX; i < adapter->msix_vecs; i++)
+	for (i = ENA_IO_IRQ_FIRST_IDX; i < ENA_MAX_MSIX_VEC(io_queue_count); i++)
 		synchronize_irq(adapter->irq_tbl[i].vector);
 }
 
-static void ena_del_napi(struct ena_adapter *adapter)
+static void ena_del_napi_in_range(struct ena_adapter *adapter,
+				  int first_index,
+				  int count)
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = first_index; i < first_index + count; i++) {
 		netif_napi_del(&adapter->ena_napi[i].napi);
+
+		WARN_ON(!ENA_IS_XDP_INDEX(adapter, i) &&
+			adapter->ena_napi[i].xdp_ring);
+	}
 }
 
-static void ena_init_napi(struct ena_adapter *adapter)
+static void ena_init_napi_in_range(struct ena_adapter *adapter,
+				   int first_index, int count)
 {
-	struct ena_napi *napi;
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
-		napi = &adapter->ena_napi[i];
+	for (i = first_index; i < first_index + count; i++) {
+		struct ena_napi *napi = &adapter->ena_napi[i];
 
 		netif_napi_add(adapter->netdev,
-			       &adapter->ena_napi[i].napi,
-			       ena_io_poll,
+			       &napi->napi,
+			       ENA_IS_XDP_INDEX(adapter, i) ? ena_xdp_io_poll : ena_io_poll,
 			       ENA_NAPI_BUDGET);
-		napi->rx_ring = &adapter->rx_ring[i];
-		napi->tx_ring = &adapter->tx_ring[i];
+
+		if (!ENA_IS_XDP_INDEX(adapter, i)) {
+			napi->rx_ring = &adapter->rx_ring[i];
+			napi->tx_ring = &adapter->tx_ring[i];
+		} else {
+			napi->xdp_ring = &adapter->tx_ring[i];
+		}
 		napi->qid = i;
 	}
 }
 
-static void ena_napi_disable_all(struct ena_adapter *adapter)
+static void ena_napi_disable_in_range(struct ena_adapter *adapter,
+				      int first_index,
+				      int count)
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = first_index; i < first_index + count; i++)
 		napi_disable(&adapter->ena_napi[i].napi);
 }
 
-static void ena_napi_enable_all(struct ena_adapter *adapter)
+static void ena_napi_enable_in_range(struct ena_adapter *adapter,
+				     int first_index,
+				     int count)
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = first_index; i < first_index + count; i++)
 		napi_enable(&adapter->ena_napi[i].napi);
 }
 
@@ -1616,7 +2259,9 @@
 	/* enable transmits */
 	netif_tx_start_all_queues(adapter->netdev);
 
-	ena_napi_enable_all(adapter);
+	ena_napi_enable_in_range(adapter,
+				 0,
+				 adapter->xdp_num_queues + adapter->num_io_queues);
 
 	return 0;
 }
@@ -1668,12 +2313,13 @@
 	return rc;
 }
 
-static int ena_create_all_io_tx_queues(struct ena_adapter *adapter)
+static int ena_create_io_tx_queues_in_range(struct ena_adapter *adapter,
+					    int first_index, int count)
 {
 	struct ena_com_dev *ena_dev = adapter->ena_dev;
 	int rc, i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = first_index; i < first_index + count; i++) {
 		rc = ena_create_io_tx_queue(adapter, i);
 		if (rc)
 			goto create_err;
@@ -1682,7 +2328,7 @@
 	return 0;
 
 create_err:
-	while (i--)
+	while (i-- > first_index)
 		ena_com_destroy_io_queue(ena_dev, ENA_IO_TXQ_IDX(i));
 
 	return rc;
@@ -1727,13 +2373,15 @@
 		netif_err(adapter, ifup, adapter->netdev,
 			  "Failed to get RX queue handlers. RX queue num %d rc: %d\n",
 			  qid, rc);
-		ena_com_destroy_io_queue(ena_dev, ena_qid);
-		return rc;
+		goto err;
 	}
 
 	ena_com_update_numa_node(rx_ring->ena_com_io_cq, ctx.numa_node);
 
 	return rc;
+err:
+	ena_com_destroy_io_queue(ena_dev, ena_qid);
+	return rc;
 }
 
 static int ena_create_all_io_rx_queues(struct ena_adapter *adapter)
@@ -1741,7 +2389,7 @@
 	struct ena_com_dev *ena_dev = adapter->ena_dev;
 	int rc, i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		rc = ena_create_io_rx_queue(adapter, i);
 		if (rc)
 			goto create_err;
@@ -1760,11 +2408,12 @@
 }
 
 static void set_io_rings_size(struct ena_adapter *adapter,
-				     int new_tx_size, int new_rx_size)
+			      int new_tx_size,
+			      int new_rx_size)
 {
 	int i;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		adapter->tx_ring[i].ring_size = new_tx_size;
 		adapter->rx_ring[i].ring_size = new_rx_size;
 	}
@@ -1797,11 +2446,21 @@
 			  adapter->requested_rx_ring_size);
 
 	while (1) {
-		rc = ena_setup_all_tx_resources(adapter);
+		if (ena_xdp_present(adapter)) {
+			rc = ena_setup_and_create_all_xdp_queues(adapter);
+
+			if (rc)
+				goto err_setup_tx;
+		}
+		rc = ena_setup_tx_resources_in_range(adapter,
+						     0,
+						     adapter->num_io_queues);
 		if (rc)
 			goto err_setup_tx;
 
-		rc = ena_create_all_io_tx_queues(adapter);
+		rc = ena_create_io_tx_queues_in_range(adapter,
+						      0,
+						      adapter->num_io_queues);
 		if (rc)
 			goto err_create_tx_queues;
 
@@ -1867,10 +2526,11 @@
 
 static int ena_up(struct ena_adapter *adapter)
 {
-	int rc, i;
+	int io_queue_count, rc, i;
 
-	netdev_dbg(adapter->netdev, "%s\n", __func__);
+	netif_dbg(adapter, ifup, adapter->netdev, "%s\n", __func__);
 
+	io_queue_count = adapter->num_io_queues + adapter->xdp_num_queues;
 	ena_setup_io_intr(adapter);
 
 	/* napi poll functions should be initialized before running
@@ -1878,7 +2538,7 @@
 	 * interrupt, causing the ISR to fire immediately while the poll
 	 * function wasn't set yet, causing a null dereference
 	 */
-	ena_init_napi(adapter);
+	ena_init_napi_in_range(adapter, 0, io_queue_count);
 
 	rc = ena_request_io_irq(adapter);
 	if (rc)
@@ -1902,14 +2562,14 @@
 	set_bit(ENA_FLAG_DEV_UP, &adapter->flags);
 
 	/* Enable completion queues interrupt */
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < adapter->num_io_queues; i++)
 		ena_unmask_interrupt(&adapter->tx_ring[i],
 				     &adapter->rx_ring[i]);
 
 	/* schedule napi in case we had pending packets
 	 * from the last time we disable napi
 	 */
-	for (i = 0; i < adapter->num_queues; i++)
+	for (i = 0; i < io_queue_count; i++)
 		napi_schedule(&adapter->ena_napi[i].napi);
 
 	return rc;
@@ -1922,13 +2582,15 @@
 err_create_queues_with_backoff:
 	ena_free_io_irq(adapter);
 err_req_irq:
-	ena_del_napi(adapter);
+	ena_del_napi_in_range(adapter, 0, io_queue_count);
 
 	return rc;
 }
 
 static void ena_down(struct ena_adapter *adapter)
 {
+	int io_queue_count = adapter->num_io_queues + adapter->xdp_num_queues;
+
 	netif_info(adapter, ifdown, adapter->netdev, "%s\n", __func__);
 
 	clear_bit(ENA_FLAG_DEV_UP, &adapter->flags);
@@ -1941,7 +2603,7 @@
 	netif_tx_disable(adapter->netdev);
 
 	/* After this point the napi handler won't enable the tx queue */
-	ena_napi_disable_all(adapter);
+	ena_napi_disable_in_range(adapter, 0, io_queue_count);
 
 	/* After destroy the queue there won't be any new interrupts */
 
@@ -1950,7 +2612,8 @@
 
 		rc = ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason);
 		if (rc)
-			dev_err(&adapter->pdev->dev, "Device reset failed\n");
+			netif_err(adapter, ifdown, adapter->netdev,
+				  "Device reset failed\n");
 		/* stop submitting admin commands on a device that was reset */
 		ena_com_set_admin_running_state(adapter->ena_dev, false);
 	}
@@ -1959,7 +2622,7 @@
 
 	ena_disable_io_intr_sync(adapter);
 	ena_free_io_irq(adapter);
-	ena_del_napi(adapter);
+	ena_del_napi_in_range(adapter, 0, io_queue_count);
 
 	ena_free_all_tx_bufs(adapter);
 	ena_free_all_rx_bufs(adapter);
@@ -1984,13 +2647,13 @@
 	int rc;
 
 	/* Notify the stack of the actual queue counts. */
-	rc = netif_set_real_num_tx_queues(netdev, adapter->num_queues);
+	rc = netif_set_real_num_tx_queues(netdev, adapter->num_io_queues);
 	if (rc) {
 		netif_err(adapter, ifup, netdev, "Can't set num tx queues\n");
 		return rc;
 	}
 
-	rc = netif_set_real_num_rx_queues(netdev, adapter->num_queues);
+	rc = netif_set_real_num_rx_queues(netdev, adapter->num_io_queues);
 	if (rc) {
 		netif_err(adapter, ifup, netdev, "Can't set num rx queues\n");
 		return rc;
@@ -2043,17 +2706,59 @@
 			   u32 new_tx_size,
 			   u32 new_rx_size)
 {
-	bool dev_up;
+	bool dev_was_up;
 
-	dev_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
+	dev_was_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
 	ena_close(adapter->netdev);
 	adapter->requested_tx_ring_size = new_tx_size;
 	adapter->requested_rx_ring_size = new_rx_size;
-	ena_init_io_rings(adapter);
-	return dev_up ? ena_up(adapter) : 0;
+	ena_init_io_rings(adapter,
+			  0,
+			  adapter->xdp_num_queues +
+			  adapter->num_io_queues);
+	return dev_was_up ? ena_up(adapter) : 0;
 }
 
-static void ena_tx_csum(struct ena_com_tx_ctx *ena_tx_ctx, struct sk_buff *skb)
+int ena_update_queue_count(struct ena_adapter *adapter, u32 new_channel_count)
+{
+	struct ena_com_dev *ena_dev = adapter->ena_dev;
+	int prev_channel_count;
+	bool dev_was_up;
+
+	dev_was_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags);
+	ena_close(adapter->netdev);
+	prev_channel_count = adapter->num_io_queues;
+	adapter->num_io_queues = new_channel_count;
+	if (ena_xdp_present(adapter) &&
+	    ena_xdp_allowed(adapter) == ENA_XDP_ALLOWED) {
+		adapter->xdp_first_ring = new_channel_count;
+		adapter->xdp_num_queues = new_channel_count;
+		if (prev_channel_count > new_channel_count)
+			ena_xdp_exchange_program_rx_in_range(adapter,
+							     NULL,
+							     new_channel_count,
+							     prev_channel_count);
+		else
+			ena_xdp_exchange_program_rx_in_range(adapter,
+							     adapter->xdp_bpf_prog,
+							     prev_channel_count,
+							     new_channel_count);
+	}
+
+	/* We need to destroy the rss table so that the indirection
+	 * table will be reinitialized by ena_up()
+	 */
+	ena_com_rss_destroy(ena_dev);
+	ena_init_io_rings(adapter,
+			  0,
+			  adapter->xdp_num_queues +
+			  adapter->num_io_queues);
+	return dev_was_up ? ena_open(adapter->netdev) : 0;
+}
+
+static void ena_tx_csum(struct ena_com_tx_ctx *ena_tx_ctx,
+			struct sk_buff *skb,
+			bool disable_meta_caching)
 {
 	u32 mss = skb_shinfo(skb)->gso_size;
 	struct ena_com_tx_meta *ena_meta = &ena_tx_ctx->ena_meta;
@@ -2097,7 +2802,9 @@
 		ena_meta->l3_hdr_len = skb_network_header_len(skb);
 		ena_meta->l3_hdr_offset = skb_network_offset(skb);
 		ena_tx_ctx->meta_valid = 1;
-
+	} else if (disable_meta_caching) {
+		memset(ena_meta, 0, sizeof(*ena_meta));
+		ena_tx_ctx->meta_valid = 1;
 	} else {
 		ena_tx_ctx->meta_valid = 0;
 	}
@@ -2228,12 +2935,12 @@
 	u64_stats_update_begin(&tx_ring->syncp);
 	tx_ring->tx_stats.dma_mapping_err++;
 	u64_stats_update_end(&tx_ring->syncp);
-	netdev_warn(adapter->netdev, "failed to map skb\n");
+	netif_warn(adapter, tx_queued, adapter->netdev, "Failed to map skb\n");
 
 	tx_info->skb = NULL;
 
 	tx_info->num_of_bufs += i;
-	ena_unmap_tx_skb(tx_ring, tx_info);
+	ena_unmap_tx_buff(tx_ring, tx_info);
 
 	return -EINVAL;
 }
@@ -2248,7 +2955,7 @@
 	struct netdev_queue *txq;
 	void *push_hdr;
 	u16 next_to_use, req_id, header_len;
-	int qid, rc, nb_hw_desc;
+	int qid, rc;
 
 	netif_dbg(adapter, tx_queued, dev, "%s skb %p\n", __func__, skb);
 	/*  Determine which tx ring we will be placed on */
@@ -2281,52 +2988,19 @@
 	ena_tx_ctx.header_len = header_len;
 
 	/* set flags and meta data */
-	ena_tx_csum(&ena_tx_ctx, skb);
+	ena_tx_csum(&ena_tx_ctx, skb, tx_ring->disable_meta_caching);
 
-	if (unlikely(ena_com_is_doorbell_needed(tx_ring->ena_com_io_sq, &ena_tx_ctx))) {
-		netif_dbg(adapter, tx_queued, dev,
-			  "llq tx max burst size of queue %d achieved, writing doorbell to send burst\n",
-			  qid);
-		ena_com_write_sq_doorbell(tx_ring->ena_com_io_sq);
-	}
-
-	/* prepare the packet's descriptors to dma engine */
-	rc = ena_com_prepare_tx(tx_ring->ena_com_io_sq, &ena_tx_ctx,
-				&nb_hw_desc);
-
-	/* ena_com_prepare_tx() can't fail due to overflow of tx queue,
-	 * since the number of free descriptors in the queue is checked
-	 * after sending the previous packet. In case there isn't enough
-	 * space in the queue for the next packet, it is stopped
-	 * until there is again enough available space in the queue.
-	 * All other failure reasons of ena_com_prepare_tx() are fatal
-	 * and therefore require a device reset.
-	 */
-	if (unlikely(rc)) {
-		netif_err(adapter, tx_queued, dev,
-			  "failed to prepare tx bufs\n");
-		u64_stats_update_begin(&tx_ring->syncp);
-		tx_ring->tx_stats.prepare_ctx_err++;
-		u64_stats_update_end(&tx_ring->syncp);
-		adapter->reset_reason = ENA_REGS_RESET_DRIVER_INVALID_STATE;
-		set_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
+	rc = ena_xmit_common(dev,
+			     tx_ring,
+			     tx_info,
+			     &ena_tx_ctx,
+			     next_to_use,
+			     skb->len);
+	if (rc)
 		goto error_unmap_dma;
-	}
 
 	netdev_tx_sent_queue(txq, skb->len);
 
-	u64_stats_update_begin(&tx_ring->syncp);
-	tx_ring->tx_stats.cnt++;
-	tx_ring->tx_stats.bytes += skb->len;
-	u64_stats_update_end(&tx_ring->syncp);
-
-	tx_info->tx_descs = nb_hw_desc;
-	tx_info->last_jiffies = jiffies;
-	tx_info->print_once = 0;
-
-	tx_ring->next_to_use = ENA_TX_RING_IDX_NEXT(next_to_use,
-		tx_ring->ring_size);
-
 	/* stop the queue when no more space available, the packet can have up
 	 * to sgl_size + 2. one for the meta descriptor and one for header
 	 * (if the header is larger than tx_max_header_size).
@@ -2373,7 +3047,7 @@
 	return NETDEV_TX_OK;
 
 error_unmap_dma:
-	ena_unmap_tx_skb(tx_ring, tx_info);
+	ena_unmap_tx_buff(tx_ring, tx_info);
 	tx_info->skb = NULL;
 
 error_drop_packet:
@@ -2397,16 +3071,16 @@
 	return qid;
 }
 
-static void ena_config_host_info(struct ena_com_dev *ena_dev,
-				 struct pci_dev *pdev)
+static void ena_config_host_info(struct ena_com_dev *ena_dev, struct pci_dev *pdev)
 {
+	struct device *dev = &pdev->dev;
 	struct ena_admin_host_info *host_info;
 	int rc;
 
 	/* Allocate only the host info */
 	rc = ena_com_allocate_host_info(ena_dev);
 	if (rc) {
-		pr_err("Cannot allocate host info\n");
+		dev_err(dev, "Cannot allocate host info\n");
 		return;
 	}
 
@@ -2421,21 +3095,24 @@
 	strncpy(host_info->os_dist_str, utsname()->release,
 		sizeof(host_info->os_dist_str) - 1);
 	host_info->driver_version =
-		(DRV_MODULE_VER_MAJOR) |
-		(DRV_MODULE_VER_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |
-		(DRV_MODULE_VER_SUBMINOR << ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT) |
+		(DRV_MODULE_GEN_MAJOR) |
+		(DRV_MODULE_GEN_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |
+		(DRV_MODULE_GEN_SUBMINOR << ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT) |
 		("K"[0] << ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT);
 	host_info->num_cpus = num_online_cpus();
 
 	host_info->driver_supported_features =
-		ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_MASK;
+		ENA_ADMIN_HOST_INFO_RX_OFFSET_MASK |
+		ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_MASK |
+		ENA_ADMIN_HOST_INFO_RX_BUF_MIRRORING_MASK |
+		ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_MASK;
 
 	rc = ena_com_set_host_attributes(ena_dev);
 	if (rc) {
 		if (rc == -EOPNOTSUPP)
-			pr_warn("Cannot set host attributes\n");
+			dev_warn(dev, "Cannot set host attributes\n");
 		else
-			pr_err("Cannot set host attributes\n");
+			dev_err(dev, "Cannot set host attributes\n");
 
 		goto err;
 	}
@@ -2463,7 +3140,8 @@
 
 	rc = ena_com_allocate_debug_area(adapter->ena_dev, debug_area_size);
 	if (rc) {
-		pr_err("Cannot allocate debug area\n");
+		netif_err(adapter, drv, adapter->netdev,
+			  "Cannot allocate debug area\n");
 		return;
 	}
 
@@ -2483,6 +3161,19 @@
 	ena_com_delete_debug_area(adapter->ena_dev);
 }
 
+int ena_update_hw_stats(struct ena_adapter *adapter)
+{
+	int rc = 0;
+
+	rc = ena_com_get_eni_stats(adapter->ena_dev, &adapter->eni_stats);
+	if (rc) {
+		dev_info_once(&adapter->pdev->dev, "Failed to get ENI stats\n");
+		return rc;
+	}
+
+	return 0;
+}
+
 static void ena_get_stats64(struct net_device *netdev,
 			    struct rtnl_link_stats64 *stats)
 {
@@ -2490,12 +3181,13 @@
 	struct ena_ring *rx_ring, *tx_ring;
 	unsigned int start;
 	u64 rx_drops;
+	u64 tx_drops;
 	int i;
 
 	if (!test_bit(ENA_FLAG_DEV_UP, &adapter->flags))
 		return;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		u64 bytes, packets;
 
 		tx_ring = &adapter->tx_ring[i];
@@ -2524,9 +3216,11 @@
 	do {
 		start = u64_stats_fetch_begin_irq(&adapter->syncp);
 		rx_drops = adapter->dev_stats.rx_drops;
+		tx_drops = adapter->dev_stats.tx_drops;
 	} while (u64_stats_fetch_retry_irq(&adapter->syncp, start));
 
 	stats->rx_dropped = rx_drops;
+	stats->tx_dropped = tx_drops;
 
 	stats->multicast = 0;
 	stats->collisions = 0;
@@ -2552,6 +3246,7 @@
 	.ndo_change_mtu		= ena_change_mtu,
 	.ndo_set_mac_address	= NULL,
 	.ndo_validate_addr	= eth_validate_addr,
+	.ndo_bpf		= ena_xdp,
 };
 
 static int ena_device_validate_params(struct ena_adapter *adapter,
@@ -2577,10 +3272,71 @@
 	return 0;
 }
 
+static void set_default_llq_configurations(struct ena_llq_configurations *llq_config)
+{
+	llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER;
+	llq_config->llq_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY;
+	llq_config->llq_num_decs_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2;
+	llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B;
+	llq_config->llq_ring_entry_size_value = 128;
+}
+
+static int ena_set_queues_placement_policy(struct pci_dev *pdev,
+					   struct ena_com_dev *ena_dev,
+					   struct ena_admin_feature_llq_desc *llq,
+					   struct ena_llq_configurations *llq_default_configurations)
+{
+	int rc;
+	u32 llq_feature_mask;
+
+	llq_feature_mask = 1 << ENA_ADMIN_LLQ;
+	if (!(ena_dev->supported_features & llq_feature_mask)) {
+		dev_err(&pdev->dev,
+			"LLQ is not supported Fallback to host mode policy.\n");
+		ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+		return 0;
+	}
+
+	rc = ena_com_config_dev_mode(ena_dev, llq, llq_default_configurations);
+	if (unlikely(rc)) {
+		dev_err(&pdev->dev,
+			"Failed to configure the device mode.  Fallback to host mode policy.\n");
+		ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+	}
+
+	return 0;
+}
+
+static int ena_map_llq_mem_bar(struct pci_dev *pdev, struct ena_com_dev *ena_dev,
+			       int bars)
+{
+	bool has_mem_bar = !!(bars & BIT(ENA_MEM_BAR));
+
+	if (!has_mem_bar) {
+		if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) {
+			dev_err(&pdev->dev,
+				"ENA device does not expose LLQ bar. Fallback to host mode policy.\n");
+			ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
+		}
+
+		return 0;
+	}
+
+	ena_dev->mem_bar = devm_ioremap_wc(&pdev->dev,
+					   pci_resource_start(pdev, ENA_MEM_BAR),
+					   pci_resource_len(pdev, ENA_MEM_BAR));
+
+	if (!ena_dev->mem_bar)
+		return -EFAULT;
+
+	return 0;
+}
+
 static int ena_device_init(struct ena_com_dev *ena_dev, struct pci_dev *pdev,
 			   struct ena_com_dev_get_features_ctx *get_feat_ctx,
 			   bool *wd_state)
 {
+	struct ena_llq_configurations llq_config;
 	struct device *dev = &pdev->dev;
 	bool readless_supported;
 	u32 aenq_groups;
@@ -2589,7 +3345,7 @@
 
 	rc = ena_com_mmio_reg_read_request_init(ena_dev);
 	if (rc) {
-		dev_err(dev, "failed to init mmio read less\n");
+		dev_err(dev, "Failed to init mmio read less\n");
 		return rc;
 	}
 
@@ -2607,7 +3363,7 @@
 
 	rc = ena_com_validate_version(ena_dev);
 	if (rc) {
-		dev_err(dev, "device version is too low\n");
+		dev_err(dev, "Device version is too low\n");
 		goto err_mmio_read_less;
 	}
 
@@ -2618,16 +3374,9 @@
 		goto err_mmio_read_less;
 	}
 
-	rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(dma_width));
+	rc = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(dma_width));
 	if (rc) {
-		dev_err(dev, "pci_set_dma_mask failed 0x%x\n", rc);
-		goto err_mmio_read_less;
-	}
-
-	rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(dma_width));
-	if (rc) {
-		dev_err(dev, "err_pci_set_consistent_dma_mask failed 0x%x\n",
-			rc);
+		dev_err(dev, "dma_set_mask_and_coherent failed %d\n", rc);
 		goto err_mmio_read_less;
 	}
 
@@ -2671,6 +3420,15 @@
 
 	*wd_state = !!(aenq_groups & BIT(ENA_ADMIN_KEEP_ALIVE));
 
+	set_default_llq_configurations(&llq_config);
+
+	rc = ena_set_queues_placement_policy(pdev, ena_dev, &get_feat_ctx->llq,
+					     &llq_config);
+	if (rc) {
+		dev_err(dev, "ENA device init failed\n");
+		goto err_admin_init;
+	}
+
 	return 0;
 
 err_admin_init:
@@ -2682,14 +3440,13 @@
 	return rc;
 }
 
-static int ena_enable_msix_and_set_admin_interrupts(struct ena_adapter *adapter,
-						    int io_vectors)
+static int ena_enable_msix_and_set_admin_interrupts(struct ena_adapter *adapter)
 {
 	struct ena_com_dev *ena_dev = adapter->ena_dev;
 	struct device *dev = &adapter->pdev->dev;
 	int rc;
 
-	rc = ena_enable_msix(adapter, io_vectors);
+	rc = ena_enable_msix(adapter);
 	if (rc) {
 		dev_err(dev, "Can not reserve msix vectors\n");
 		return rc;
@@ -2754,6 +3511,7 @@
 
 	ena_com_mmio_reg_read_request_destroy(ena_dev);
 
+	/* return reset reason to default value */
 	adapter->reset_reason = ENA_REGS_RESET_NORMAL;
 
 	clear_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
@@ -2782,8 +3540,7 @@
 		goto err_device_destroy;
 	}
 
-	rc = ena_enable_msix_and_set_admin_interrupts(adapter,
-						      adapter->num_queues);
+	rc = ena_enable_msix_and_set_admin_interrupts(adapter);
 	if (rc) {
 		dev_err(&pdev->dev, "Enable MSI-X failed\n");
 		goto err_device_destroy;
@@ -2804,9 +3561,10 @@
 		netif_carrier_on(adapter->netdev);
 
 	mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ));
-	dev_err(&pdev->dev,
-		"Device reset completed successfully, Driver info: %s\n",
-		version);
+	adapter->last_keep_alive_jiffies = jiffies;
+	dev_err(&pdev->dev, "Device reset completed successfully\n");
+
+	dev_err(&pdev->dev, "Device reset completed successfully\n");
 
 	return rc;
 err_disable_msix:
@@ -2831,16 +3589,14 @@
 {
 	struct ena_adapter *adapter =
 		container_of(work, struct ena_adapter, reset_task);
-	struct pci_dev *pdev = adapter->pdev;
 
-	if (unlikely(!test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
-		dev_err(&pdev->dev,
-			"device reset schedule while reset bit is off\n");
-		return;
-	}
 	rtnl_lock();
-	ena_destroy_device(adapter, false);
-	ena_restore_device(adapter);
+
+	if (likely(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
+		ena_destroy_device(adapter, false);
+		ena_restore_device(adapter);
+	}
+
 	rtnl_unlock();
 }
 
@@ -2922,7 +3678,7 @@
 	}
 
 	u64_stats_update_begin(&tx_ring->syncp);
-	tx_ring->tx_stats.missed_tx = missed_tx;
+	tx_ring->tx_stats.missed_tx += missed_tx;
 	u64_stats_update_end(&tx_ring->syncp);
 
 	return rc;
@@ -2933,7 +3689,9 @@
 	struct ena_ring *tx_ring;
 	struct ena_ring *rx_ring;
 	int i, budget, rc;
+	int io_queue_count;
 
+	io_queue_count = adapter->xdp_num_queues + adapter->num_io_queues;
 	/* Make sure the driver doesn't turn the device in other process */
 	smp_rmb();
 
@@ -2948,7 +3706,7 @@
 
 	budget = ENA_MONITORED_TX_QUEUES;
 
-	for (i = adapter->last_monitored_tx_qid; i < adapter->num_queues; i++) {
+	for (i = adapter->last_monitored_tx_qid; i < io_queue_count; i++) {
 		tx_ring = &adapter->tx_ring[i];
 		rx_ring = &adapter->rx_ring[i];
 
@@ -2956,7 +3714,8 @@
 		if (unlikely(rc))
 			return;
 
-		rc = check_for_rx_interrupt_queue(adapter, rx_ring);
+		rc =  !ENA_IS_XDP_INDEX(adapter, i) ?
+			check_for_rx_interrupt_queue(adapter, rx_ring) : 0;
 		if (unlikely(rc))
 			return;
 
@@ -2965,7 +3724,7 @@
 			break;
 	}
 
-	adapter->last_monitored_tx_qid = i % adapter->num_queues;
+	adapter->last_monitored_tx_qid = i % io_queue_count;
 }
 
 /* trigger napi schedule after 2 consecutive detections */
@@ -2995,11 +3754,10 @@
 	if (test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))
 		return;
 
-	for (i = 0; i < adapter->num_queues; i++) {
+	for (i = 0; i < adapter->num_io_queues; i++) {
 		rx_ring = &adapter->rx_ring[i];
 
-		refill_required =
-			ena_com_free_desc(rx_ring->ena_com_io_sq);
+		refill_required = ena_com_free_q_entries(rx_ring->ena_com_io_sq);
 		if (unlikely(refill_required == (rx_ring->ring_size - 1))) {
 			rx_ring->empty_rx_queue++;
 
@@ -3009,7 +3767,7 @@
 				u64_stats_update_end(&rx_ring->syncp);
 
 				netif_err(adapter, drv, adapter->netdev,
-					  "trigger refill for ring %d\n", i);
+					  "Trigger refill for ring %d\n", i);
 
 				napi_schedule(rx_ring->napi);
 				rx_ring->empty_rx_queue = 0;
@@ -3031,8 +3789,8 @@
 	if (adapter->keep_alive_timeout == ENA_HW_HINTS_NO_TIMEOUT)
 		return;
 
-	keep_alive_expired = round_jiffies(adapter->last_keep_alive_jiffies +
-					   adapter->keep_alive_timeout);
+	keep_alive_expired = adapter->last_keep_alive_jiffies +
+			     adapter->keep_alive_timeout;
 	if (unlikely(time_is_before_jiffies(keep_alive_expired))) {
 		netif_err(adapter, drv, adapter->netdev,
 			  "Keep alive watchdog timeout.\n");
@@ -3134,19 +3892,19 @@
 	}
 
 	/* Reset the timer */
-	mod_timer(&adapter->timer_service, jiffies + HZ);
+	mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ));
 }
 
-static int ena_calc_io_queue_num(struct pci_dev *pdev,
-				 struct ena_com_dev *ena_dev,
-				 struct ena_com_dev_get_features_ctx *get_feat_ctx)
+static u32 ena_calc_max_io_queue_num(struct pci_dev *pdev,
+				     struct ena_com_dev *ena_dev,
+				     struct ena_com_dev_get_features_ctx *get_feat_ctx)
 {
-	int io_tx_sq_num, io_tx_cq_num, io_rx_num, io_queue_num;
+	u32 io_tx_sq_num, io_tx_cq_num, io_rx_num, max_num_io_queues;
 
 	if (ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
 		struct ena_admin_queue_ext_feature_fields *max_queue_ext =
 			&get_feat_ctx->max_queue_ext.max_queue_ext;
-		io_rx_num = min_t(int, max_queue_ext->max_rx_sq_num,
+		io_rx_num = min_t(u32, max_queue_ext->max_rx_sq_num,
 				  max_queue_ext->max_rx_cq_num);
 
 		io_tx_sq_num = max_queue_ext->max_tx_sq_num;
@@ -3156,73 +3914,25 @@
 			&get_feat_ctx->max_queues;
 		io_tx_sq_num = max_queues->max_sq_num;
 		io_tx_cq_num = max_queues->max_cq_num;
-		io_rx_num = min_t(int, io_tx_sq_num, io_tx_cq_num);
+		io_rx_num = min_t(u32, io_tx_sq_num, io_tx_cq_num);
 	}
 
 	/* In case of LLQ use the llq fields for the tx SQ/CQ */
 	if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
 		io_tx_sq_num = get_feat_ctx->llq.max_llq_num;
 
-	io_queue_num = min_t(int, num_online_cpus(), ENA_MAX_NUM_IO_QUEUES);
-	io_queue_num = min_t(int, io_queue_num, io_rx_num);
-	io_queue_num = min_t(int, io_queue_num, io_tx_sq_num);
-	io_queue_num = min_t(int, io_queue_num, io_tx_cq_num);
+	max_num_io_queues = min_t(u32, num_online_cpus(), ENA_MAX_NUM_IO_QUEUES);
+	max_num_io_queues = min_t(u32, max_num_io_queues, io_rx_num);
+	max_num_io_queues = min_t(u32, max_num_io_queues, io_tx_sq_num);
+	max_num_io_queues = min_t(u32, max_num_io_queues, io_tx_cq_num);
 	/* 1 IRQ for for mgmnt and 1 IRQs for each IO direction */
-	io_queue_num = min_t(int, io_queue_num, pci_msix_vec_count(pdev) - 1);
-	if (unlikely(!io_queue_num)) {
+	max_num_io_queues = min_t(u32, max_num_io_queues, pci_msix_vec_count(pdev) - 1);
+	if (unlikely(!max_num_io_queues)) {
 		dev_err(&pdev->dev, "The device doesn't have io queues\n");
 		return -EFAULT;
 	}
 
-	return io_queue_num;
-}
-
-static int ena_set_queues_placement_policy(struct pci_dev *pdev,
-					   struct ena_com_dev *ena_dev,
-					   struct ena_admin_feature_llq_desc *llq,
-					   struct ena_llq_configurations *llq_default_configurations)
-{
-	bool has_mem_bar;
-	int rc;
-	u32 llq_feature_mask;
-
-	llq_feature_mask = 1 << ENA_ADMIN_LLQ;
-	if (!(ena_dev->supported_features & llq_feature_mask)) {
-		dev_err(&pdev->dev,
-			"LLQ is not supported Fallback to host mode policy.\n");
-		ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
-		return 0;
-	}
-
-	has_mem_bar = pci_select_bars(pdev, IORESOURCE_MEM) & BIT(ENA_MEM_BAR);
-
-	rc = ena_com_config_dev_mode(ena_dev, llq, llq_default_configurations);
-	if (unlikely(rc)) {
-		dev_err(&pdev->dev,
-			"Failed to configure the device mode.  Fallback to host mode policy.\n");
-		ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
-		return 0;
-	}
-
-	/* Nothing to config, exit */
-	if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
-		return 0;
-
-	if (!has_mem_bar) {
-		dev_err(&pdev->dev,
-			"ENA device does not expose LLQ bar. Fallback to host mode policy.\n");
-		ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
-		return 0;
-	}
-
-	ena_dev->mem_bar = devm_ioremap_wc(&pdev->dev,
-					   pci_resource_start(pdev, ENA_MEM_BAR),
-					   pci_resource_len(pdev, ENA_MEM_BAR));
-
-	if (!ena_dev->mem_bar)
-		return -EFAULT;
-
-	return 0;
+	return max_num_io_queues;
 }
 
 static void ena_set_dev_offloads(struct ena_com_dev_get_features_ctx *feat,
@@ -3302,7 +4012,7 @@
 	}
 
 	for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
-		val = ethtool_rxfh_indir_default(i, adapter->num_queues);
+		val = ethtool_rxfh_indir_default(i, adapter->num_io_queues);
 		rc = ena_com_indirect_table_fill_entry(ena_dev, i,
 						       ENA_IO_RXQ_IDX(val));
 		if (unlikely(rc && (rc != -EOPNOTSUPP))) {
@@ -3311,7 +4021,7 @@
 		}
 	}
 
-	rc = ena_com_fill_hash_function(ena_dev, ENA_ADMIN_CRC32, NULL,
+	rc = ena_com_fill_hash_function(ena_dev, ENA_ADMIN_TOEPLITZ, NULL,
 					ENA_HASH_KEY_SIZE, 0xFFFFFFFF);
 	if (unlikely(rc && (rc != -EOPNOTSUPP))) {
 		dev_err(dev, "Cannot fill hash function\n");
@@ -3340,16 +4050,8 @@
 	pci_release_selected_regions(pdev, release_bars);
 }
 
-static void set_default_llq_configurations(struct ena_llq_configurations *llq_config)
-{
-	llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER;
-	llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B;
-	llq_config->llq_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY;
-	llq_config->llq_num_decs_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2;
-	llq_config->llq_ring_entry_size_value = 128;
-}
 
-static int ena_calc_queue_size(struct ena_calc_queue_size_ctx *ctx)
+static int ena_calc_io_queue_size(struct ena_calc_queue_size_ctx *ctx)
 {
 	struct ena_admin_feature_llq_desc *llq = &ctx->get_feat_ctx->llq;
 	struct ena_com_dev *ena_dev = ctx->ena_dev;
@@ -3358,7 +4060,7 @@
 	u32 max_tx_queue_size;
 	u32 max_rx_queue_size;
 
-	if (ctx->ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
+	if (ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
 		struct ena_admin_queue_ext_feature_fields *max_queue_ext =
 			&ctx->get_feat_ctx->max_queue_ext.max_queue_ext;
 		max_rx_queue_size = min_t(u32, max_queue_ext->max_rx_cq_depth,
@@ -3427,27 +4129,30 @@
  */
 static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
+	struct ena_calc_queue_size_ctx calc_queue_ctx = {};
 	struct ena_com_dev_get_features_ctx get_feat_ctx;
-	struct ena_calc_queue_size_ctx calc_queue_ctx = { 0 };
-	struct ena_llq_configurations llq_config;
 	struct ena_com_dev *ena_dev = NULL;
 	struct ena_adapter *adapter;
-	int io_queue_num, bars, rc;
 	struct net_device *netdev;
 	static int adapters_found;
-	char *queue_type_str;
+	u32 max_num_io_queues;
 	bool wd_state;
+	int bars, rc;
 
 	dev_dbg(&pdev->dev, "%s\n", __func__);
 
-	dev_info_once(&pdev->dev, "%s", version);
-
 	rc = pci_enable_device_mem(pdev);
 	if (rc) {
 		dev_err(&pdev->dev, "pci_enable_device_mem() failed!\n");
 		return rc;
 	}
 
+	rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(ENA_MAX_PHYS_ADDR_SIZE_BITS));
+	if (rc) {
+		dev_err(&pdev->dev, "dma_set_mask_and_coherent failed %d\n", rc);
+		goto err_disable_device;
+	}
+
 	pci_set_master(pdev);
 
 	ena_dev = vzalloc(sizeof(*ena_dev));
@@ -3468,56 +4173,48 @@
 					pci_resource_start(pdev, ENA_REG_BAR),
 					pci_resource_len(pdev, ENA_REG_BAR));
 	if (!ena_dev->reg_bar) {
-		dev_err(&pdev->dev, "failed to remap regs bar\n");
+		dev_err(&pdev->dev, "Failed to remap regs bar\n");
 		rc = -EFAULT;
 		goto err_free_region;
 	}
 
+	ena_dev->ena_min_poll_delay_us = ENA_ADMIN_POLL_DELAY_US;
+
 	ena_dev->dmadev = &pdev->dev;
 
 	rc = ena_device_init(ena_dev, pdev, &get_feat_ctx, &wd_state);
 	if (rc) {
-		dev_err(&pdev->dev, "ena device init failed\n");
+		dev_err(&pdev->dev, "ENA device init failed\n");
 		if (rc == -ETIME)
 			rc = -EPROBE_DEFER;
 		goto err_free_region;
 	}
 
-	set_default_llq_configurations(&llq_config);
-
-	rc = ena_set_queues_placement_policy(pdev, ena_dev, &get_feat_ctx.llq,
-					     &llq_config);
+	rc = ena_map_llq_mem_bar(pdev, ena_dev, bars);
 	if (rc) {
-		dev_err(&pdev->dev, "ena device init failed\n");
-		goto err_device_destroy;
+		dev_err(&pdev->dev, "ENA llq bar mapping failed\n");
+		goto err_free_ena_dev;
 	}
 
 	calc_queue_ctx.ena_dev = ena_dev;
 	calc_queue_ctx.get_feat_ctx = &get_feat_ctx;
 	calc_queue_ctx.pdev = pdev;
 
-	/* Initial Tx and RX interrupt delay. Assumes 1 usec granularity.
-	* Updated during device initialization with the real granularity
-	*/
+	/* Initial TX and RX interrupt delay. Assumes 1 usec granularity.
+	 * Updated during device initialization with the real granularity
+	 */
 	ena_dev->intr_moder_tx_interval = ENA_INTR_INITIAL_TX_INTERVAL_USECS;
 	ena_dev->intr_moder_rx_interval = ENA_INTR_INITIAL_RX_INTERVAL_USECS;
 	ena_dev->intr_delay_resolution = ENA_DEFAULT_INTR_DELAY_RESOLUTION;
-	io_queue_num = ena_calc_io_queue_num(pdev, ena_dev, &get_feat_ctx);
-	rc = ena_calc_queue_size(&calc_queue_ctx);
-	if (rc || io_queue_num <= 0) {
+	max_num_io_queues = ena_calc_max_io_queue_num(pdev, ena_dev, &get_feat_ctx);
+	rc = ena_calc_io_queue_size(&calc_queue_ctx);
+	if (rc || !max_num_io_queues) {
 		rc = -EFAULT;
 		goto err_device_destroy;
 	}
 
-	dev_info(&pdev->dev, "creating %d io queues. rx queue size: %d tx queue size. %d LLQ is %s\n",
-		 io_queue_num,
-		 calc_queue_ctx.rx_queue_size,
-		 calc_queue_ctx.tx_queue_size,
-		 (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) ?
-		 "ENABLED" : "DISABLED");
-
 	/* dev zeroed in init_etherdev */
-	netdev = alloc_etherdev_mq(sizeof(struct ena_adapter), io_queue_num);
+	netdev = alloc_etherdev_mq(sizeof(struct ena_adapter), max_num_io_queues);
 	if (!netdev) {
 		dev_err(&pdev->dev, "alloc_etherdev_mq failed\n");
 		rc = -ENOMEM;
@@ -3545,10 +4242,19 @@
 	adapter->max_tx_sgl_size = calc_queue_ctx.max_tx_sgl_size;
 	adapter->max_rx_sgl_size = calc_queue_ctx.max_rx_sgl_size;
 
-	adapter->num_queues = io_queue_num;
+	adapter->num_io_queues = max_num_io_queues;
+	adapter->max_num_io_queues = max_num_io_queues;
 	adapter->last_monitored_tx_qid = 0;
 
+	adapter->xdp_first_ring = 0;
+	adapter->xdp_num_queues = 0;
+
 	adapter->rx_copybreak = ENA_DEFAULT_RX_COPYBREAK;
+	if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV)
+		adapter->disable_meta_caching =
+			!!(get_feat_ctx.llq.accel_mode.u.get.supported_flags &
+			   BIT(ENA_ADMIN_DISABLE_META_CACHING));
+
 	adapter->wd_state = wd_state;
 
 	snprintf(adapter->name, ENA_NAME_MAX_LEN, "ena_%d", adapters_found);
@@ -3559,7 +4265,10 @@
 			"Failed to query interrupt moderation feature\n");
 		goto err_netdev_destroy;
 	}
-	ena_init_io_rings(adapter);
+	ena_init_io_rings(adapter,
+			  0,
+			  adapter->xdp_num_queues +
+			  adapter->num_io_queues);
 
 	netdev->netdev_ops = &ena_netdev_ops;
 	netdev->watchdog_timeo = TX_TIMEOUT;
@@ -3569,7 +4278,7 @@
 
 	u64_stats_init(&adapter->syncp);
 
-	rc = ena_enable_msix_and_set_admin_interrupts(adapter, io_queue_num);
+	rc = ena_enable_msix_and_set_admin_interrupts(adapter);
 	if (rc) {
 		dev_err(&pdev->dev,
 			"Failed to enable and set the admin interrupts\n");
@@ -3583,6 +4292,11 @@
 
 	ena_config_debug_area(adapter);
 
+	if (!ena_update_hw_stats(adapter))
+		adapter->eni_stats_supported = true;
+	else
+		adapter->eni_stats_supported = false;
+
 	memcpy(adapter->netdev->perm_addr, adapter->mac_addr, netdev->addr_len);
 
 	netif_carrier_off(netdev);
@@ -3605,15 +4319,10 @@
 	timer_setup(&adapter->timer_service, ena_timer_service, 0);
 	mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ));
 
-	if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)
-		queue_type_str = "Regular";
-	else
-		queue_type_str = "Low Latency";
-
 	dev_info(&pdev->dev,
-		 "%s found at mem %lx, mac addr %pM Queues %d, Placement policy: %s\n",
+		 "%s found at mem %lx, mac addr %pM\n",
 		 DEVICE_NAME, (long)pci_resource_start(pdev, 0),
-		 netdev->dev_addr, io_queue_num, queue_type_str);
+		 netdev->dev_addr);
 
 	set_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags);
 
@@ -3648,13 +4357,15 @@
 
 /*****************************************************************************/
 
-/* ena_remove - Device Removal Routine
+/* __ena_shutoff - Helper used in both PCI remove/shutdown routines
  * @pdev: PCI device information struct
+ * @shutdown: Is it a shutdown operation? If false, means it is a removal
  *
- * ena_remove is called by the PCI subsystem to alert the driver
- * that it should release a PCI device.
+ * __ena_shutoff is a helper routine that does the real work on shutdown and
+ * removal paths; the difference between those paths is with regards to whether
+ * dettach or unregister the netdevice.
  */
-static void ena_remove(struct pci_dev *pdev)
+static void __ena_shutoff(struct pci_dev *pdev, bool shutdown)
 {
 	struct ena_adapter *adapter = pci_get_drvdata(pdev);
 	struct ena_com_dev *ena_dev;
@@ -3669,17 +4380,25 @@
 		netdev->rx_cpu_rmap = NULL;
 	}
 #endif /* CONFIG_RFS_ACCEL */
-	del_timer_sync(&adapter->timer_service);
 
+	/* Make sure timer and reset routine won't be called after
+	 * freeing device resources.
+	 */
+	del_timer_sync(&adapter->timer_service);
 	cancel_work_sync(&adapter->reset_task);
 
-	rtnl_lock();
+	rtnl_lock(); /* lock released inside the below if-else block */
+	adapter->reset_reason = ENA_REGS_RESET_SHUTDOWN;
 	ena_destroy_device(adapter, true);
-	rtnl_unlock();
-
-	unregister_netdev(netdev);
-
-	free_netdev(netdev);
+	if (shutdown) {
+		netif_device_detach(netdev);
+		dev_close(netdev);
+		rtnl_unlock();
+	} else {
+		rtnl_unlock();
+		unregister_netdev(netdev);
+		free_netdev(netdev);
+	}
 
 	ena_com_rss_destroy(ena_dev);
 
@@ -3694,13 +4413,36 @@
 	vfree(ena_dev);
 }
 
-#ifdef CONFIG_PM
-/* ena_suspend - PM suspend callback
+/* ena_remove - Device Removal Routine
  * @pdev: PCI device information struct
- * @state:power state
+ *
+ * ena_remove is called by the PCI subsystem to alert the driver
+ * that it should release a PCI device.
  */
-static int ena_suspend(struct pci_dev *pdev,  pm_message_t state)
+
+static void ena_remove(struct pci_dev *pdev)
 {
+	__ena_shutoff(pdev, false);
+}
+
+/* ena_shutdown - Device Shutdown Routine
+ * @pdev: PCI device information struct
+ *
+ * ena_shutdown is called by the PCI subsystem to alert the driver that
+ * a shutdown/reboot (or kexec) is happening and device must be disabled.
+ */
+
+static void ena_shutdown(struct pci_dev *pdev)
+{
+	__ena_shutoff(pdev, true);
+}
+
+/* ena_suspend - PM suspend callback
+ * @dev_d: Device information struct
+ */
+static int __maybe_unused ena_suspend(struct device *dev_d)
+{
+	struct pci_dev *pdev = to_pci_dev(dev_d);
 	struct ena_adapter *adapter = pci_get_drvdata(pdev);
 
 	u64_stats_update_begin(&adapter->syncp);
@@ -3710,7 +4452,7 @@
 	rtnl_lock();
 	if (unlikely(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
 		dev_err(&pdev->dev,
-			"ignoring device reset request as the device is being suspended\n");
+			"Ignoring device reset request as the device is being suspended\n");
 		clear_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
 	}
 	ena_destroy_device(adapter, true);
@@ -3719,12 +4461,11 @@
 }
 
 /* ena_resume - PM resume callback
- * @pdev: PCI device information struct
- *
+ * @dev_d: Device information struct
  */
-static int ena_resume(struct pci_dev *pdev)
+static int __maybe_unused ena_resume(struct device *dev_d)
 {
-	struct ena_adapter *adapter = pci_get_drvdata(pdev);
+	struct ena_adapter *adapter = dev_get_drvdata(dev_d);
 	int rc;
 
 	u64_stats_update_begin(&adapter->syncp);
@@ -3736,24 +4477,21 @@
 	rtnl_unlock();
 	return rc;
 }
-#endif
+
+static SIMPLE_DEV_PM_OPS(ena_pm_ops, ena_suspend, ena_resume);
 
 static struct pci_driver ena_pci_driver = {
 	.name		= DRV_MODULE_NAME,
 	.id_table	= ena_pci_tbl,
 	.probe		= ena_probe,
 	.remove		= ena_remove,
-#ifdef CONFIG_PM
-	.suspend    = ena_suspend,
-	.resume     = ena_resume,
-#endif
+	.shutdown	= ena_shutdown,
+	.driver.pm	= &ena_pm_ops,
 	.sriov_configure = pci_sriov_configure_simple,
 };
 
 static int __init ena_init(void)
 {
-	pr_info("%s", version);
-
 	ena_wq = create_singlethread_workqueue(DRV_MODULE_NAME);
 	if (!ena_wq) {
 		pr_err("Failed to create workqueue\n");
@@ -3789,7 +4527,7 @@
 		ENA_ADMIN_AENQ_LINK_CHANGE_DESC_LINK_STATUS_MASK;
 
 	if (status) {
-		netdev_dbg(adapter->netdev, "%s\n", __func__);
+		netif_dbg(adapter, ifup, adapter->netdev, "%s\n", __func__);
 		set_bit(ENA_FLAG_LINK_UP, &adapter->flags);
 		if (!test_bit(ENA_FLAG_ONGOING_RESET, &adapter->flags))
 			netif_carrier_on(adapter->netdev);
@@ -3805,14 +4543,20 @@
 	struct ena_adapter *adapter = (struct ena_adapter *)adapter_data;
 	struct ena_admin_aenq_keep_alive_desc *desc;
 	u64 rx_drops;
+	u64 tx_drops;
 
 	desc = (struct ena_admin_aenq_keep_alive_desc *)aenq_e;
 	adapter->last_keep_alive_jiffies = jiffies;
 
 	rx_drops = ((u64)desc->rx_drops_high << 32) | desc->rx_drops_low;
+	tx_drops = ((u64)desc->tx_drops_high << 32) | desc->tx_drops_low;
 
 	u64_stats_update_begin(&adapter->syncp);
+	/* These stats are accumulated by the device, so the counters indicate
+	 * all drops since last reset.
+	 */
 	adapter->dev_stats.rx_drops = rx_drops;
+	adapter->dev_stats.tx_drops = tx_drops;
 	u64_stats_update_end(&adapter->syncp);
 }
 
@@ -3827,7 +4571,7 @@
 	     aenq_e->aenq_common_desc.group,
 	     ENA_ADMIN_NOTIFICATION);
 
-	switch (aenq_e->aenq_common_desc.syndrom) {
+	switch (aenq_e->aenq_common_desc.syndrome) {
 	case ENA_ADMIN_UPDATE_HINTS:
 		hints = (struct ena_admin_ena_hw_hints *)
 			(&aenq_e->inline_data_w4);
@@ -3836,7 +4580,7 @@
 	default:
 		netif_err(adapter, drv, adapter->netdev,
 			  "Invalid aenq notification link state %d\n",
-			  aenq_e->aenq_common_desc.syndrom);
+			  aenq_e->aenq_common_desc.syndrome);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_netdev.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef ENA_H
@@ -36,6 +9,7 @@
 #include <linux/bitops.h>
 #include <linux/dim.h>
 #include <linux/etherdevice.h>
+#include <linux/if_vlan.h>
 #include <linux/inetdevice.h>
 #include <linux/interrupt.h>
 #include <linux/netdevice.h>
@@ -44,17 +18,11 @@
 #include "ena_com.h"
 #include "ena_eth_com.h"
 
-#define DRV_MODULE_VER_MAJOR	2
-#define DRV_MODULE_VER_MINOR	1
-#define DRV_MODULE_VER_SUBMINOR 0
+#define DRV_MODULE_GEN_MAJOR	2
+#define DRV_MODULE_GEN_MINOR	1
+#define DRV_MODULE_GEN_SUBMINOR 0
 
 #define DRV_MODULE_NAME		"ena"
-#ifndef DRV_MODULE_VERSION
-#define DRV_MODULE_VERSION \
-	__stringify(DRV_MODULE_VER_MAJOR) "."	\
-	__stringify(DRV_MODULE_VER_MINOR) "."	\
-	__stringify(DRV_MODULE_VER_SUBMINOR) "K"
-#endif
 
 #define DEVICE_NAME	"Elastic Network Adapter (ENA)"
 
@@ -68,7 +36,7 @@
  * 16kB.
  */
 #if PAGE_SIZE > SZ_16K
-#define ENA_PAGE_SIZE SZ_16K
+#define ENA_PAGE_SIZE (_AC(SZ_16K, UL))
 #else
 #define ENA_PAGE_SIZE PAGE_SIZE
 #endif
@@ -82,6 +50,8 @@
 #define ENA_DEFAULT_RING_SIZE	(1024)
 #define ENA_MIN_RING_SIZE	(256)
 
+#define ENA_MIN_NUM_IO_QUEUES	(1)
+
 #define ENA_TX_WAKEUP_THRESH		(MAX_SKB_FRAGS + 2)
 #define ENA_DEFAULT_RX_COPYBREAK	(256 - NET_IP_ALIGN)
 
@@ -101,8 +71,6 @@
 #define ENA_RX_RSS_TABLE_LOG_SIZE  7
 #define ENA_RX_RSS_TABLE_SIZE	(1 << ENA_RX_RSS_TABLE_LOG_SIZE)
 
-#define ENA_HASH_KEY_SIZE	40
-
 /* The number of tx packet completions that will be handled each NAPI poll
  * cycle is ring_size / ENA_TX_POLL_BUDGET_DIVIDER.
  */
@@ -127,11 +95,15 @@
 
 #define ENA_IO_TXQ_IDX(q)	(2 * (q))
 #define ENA_IO_RXQ_IDX(q)	(2 * (q) + 1)
+#define ENA_IO_TXQ_IDX_TO_COMBINED_IDX(q)	((q) / 2)
+#define ENA_IO_RXQ_IDX_TO_COMBINED_IDX(q)	(((q) - 1) / 2)
 
 #define ENA_MGMNT_IRQ_IDX		0
 #define ENA_IO_IRQ_FIRST_IDX		1
 #define ENA_IO_IRQ_IDX(q)		(ENA_IO_IRQ_FIRST_IDX + (q))
 
+#define ENA_ADMIN_POLL_DELAY_US 100
+
 /* ENA device should send keep alive msg every 1 sec.
  * We wait for 6 sec just to be on the safe side.
  */
@@ -140,6 +112,18 @@
 
 #define ENA_MMIO_DISABLE_REG_READ	BIT(0)
 
+/* The max MTU size is configured to be the ethernet frame size without
+ * the overhead of the ethernet header, which can have a VLAN header, and
+ * a frame check sequence (FCS).
+ * The buffer size we share with the device is defined to be ENA_PAGE_SIZE
+ */
+
+#define ENA_XDP_MAX_MTU (ENA_PAGE_SIZE - ETH_HLEN - ETH_FCS_LEN - \
+				VLAN_HLEN - XDP_PACKET_HEADROOM)
+
+#define ENA_IS_XDP_INDEX(adapter, index) (((index) >= (adapter)->xdp_first_ring) && \
+	((index) < (adapter)->xdp_first_ring + (adapter)->xdp_num_queues))
+
 struct ena_irq {
 	irq_handler_t handler;
 	void *data;
@@ -153,6 +137,9 @@
 	struct napi_struct napi ____cacheline_aligned;
 	struct ena_ring *tx_ring;
 	struct ena_ring *rx_ring;
+	struct ena_ring *xdp_ring;
+	bool first_interrupt;
+	bool interrupts_masked;
 	u32 qid;
 	struct dim dim;
 };
@@ -161,10 +148,10 @@
 	struct ena_com_dev_get_features_ctx *get_feat_ctx;
 	struct ena_com_dev *ena_dev;
 	struct pci_dev *pdev;
-	u16 tx_queue_size;
-	u16 rx_queue_size;
-	u16 max_tx_queue_size;
-	u16 max_rx_queue_size;
+	u32 tx_queue_size;
+	u32 rx_queue_size;
+	u32 max_tx_queue_size;
+	u32 max_rx_queue_size;
 	u16 max_tx_sgl_size;
 	u16 max_rx_sgl_size;
 };
@@ -178,6 +165,17 @@
 	/* num of buffers used by this skb */
 	u32 num_of_bufs;
 
+	/* XDP buffer structure which is used for sending packets in
+	 * the xdp queues
+	 */
+	struct xdp_frame *xdpf;
+	/* The rx page for the rx buffer that was received in rx and
+	 * re transmitted on xdp tx queues as a result of XDP_TX action.
+	 * We need to free the page once we finished cleaning the buffer in
+	 * clean_xdp_irq()
+	 */
+	struct page *xdp_rx_page;
+
 	/* Indicate if bufs[0] map the linear data of the skb. */
 	u8 map_linear_data;
 
@@ -218,6 +216,7 @@
 	u64 bad_req_id;
 	u64 llq_buffer_copy;
 	u64 missed_tx;
+	u64 unmask_interrupt;
 };
 
 struct ena_stats_rx {
@@ -234,6 +233,11 @@
 	u64 bad_req_id;
 	u64 empty_rx_ring;
 	u64 csum_unchecked;
+	u64 xdp_aborted;
+	u64 xdp_drop;
+	u64 xdp_pass;
+	u64 xdp_tx;
+	u64 xdp_invalid;
 };
 
 struct ena_ring {
@@ -256,10 +260,13 @@
 	struct ena_adapter *adapter;
 	struct ena_com_io_cq *ena_com_io_cq;
 	struct ena_com_io_sq *ena_com_io_sq;
+	struct bpf_prog *xdp_bpf_prog;
+	struct xdp_rxq_info xdp_rxq;
 
 	u16 next_to_use;
 	u16 next_to_clean;
 	u16 rx_copybreak;
+	u16 rx_headroom;
 	u16 qid;
 	u16 mtu;
 	u16 sgl_size;
@@ -268,6 +275,7 @@
 	u8 tx_max_header_size;
 
 	bool first_interrupt;
+	bool disable_meta_caching;
 	u16 no_interrupt_event_cnt;
 
 	/* cpu for TPH */
@@ -300,6 +308,7 @@
 	u64 interface_down;
 	u64 admin_q_pause;
 	u64 rx_drops;
+	u64 tx_drops;
 };
 
 enum ena_flags_t {
@@ -324,7 +333,8 @@
 	u32 rx_copybreak;
 	u32 max_mtu;
 
-	int num_queues;
+	u32 num_io_queues;
+	u32 max_num_io_queues;
 
 	int msix_vecs;
 
@@ -367,15 +377,22 @@
 
 	bool wd_state;
 	bool dev_up_before_reset;
+	bool disable_meta_caching;
 	unsigned long last_keep_alive_jiffies;
 
 	struct u64_stats_sync syncp;
 	struct ena_stats_dev dev_stats;
+	struct ena_admin_eni_stats eni_stats;
+	bool eni_stats_supported;
 
 	/* last queue index that was checked for uncompleted tx packets */
 	u32 last_monitored_tx_qid;
 
 	enum ena_regs_reset_reason_types reset_reason;
+
+	struct bpf_prog *xdp_bpf_prog;
+	u32 xdp_first_ring;
+	u32 xdp_num_queues;
 };
 
 void ena_set_ethtool_ops(struct net_device *netdev);
@@ -384,10 +401,53 @@
 
 void ena_dump_stats_to_buf(struct ena_adapter *adapter, u8 *buf);
 
+int ena_update_hw_stats(struct ena_adapter *adapter);
+
 int ena_update_queue_sizes(struct ena_adapter *adapter,
 			   u32 new_tx_size,
 			   u32 new_rx_size);
 
+int ena_update_queue_count(struct ena_adapter *adapter, u32 new_channel_count);
+
 int ena_get_sset_count(struct net_device *netdev, int sset);
 
+enum ena_xdp_errors_t {
+	ENA_XDP_ALLOWED = 0,
+	ENA_XDP_CURRENT_MTU_TOO_LARGE,
+	ENA_XDP_NO_ENOUGH_QUEUES,
+};
+
+static inline bool ena_xdp_queues_present(struct ena_adapter *adapter)
+{
+	return adapter->xdp_first_ring != 0;
+}
+
+static inline bool ena_xdp_present(struct ena_adapter *adapter)
+{
+	return !!adapter->xdp_bpf_prog;
+}
+
+static inline bool ena_xdp_present_ring(struct ena_ring *ring)
+{
+	return !!ring->xdp_bpf_prog;
+}
+
+static inline int ena_xdp_legal_queue_count(struct ena_adapter *adapter,
+					    u32 queues)
+{
+	return 2 * queues <= adapter->max_num_io_queues;
+}
+
+static inline enum ena_xdp_errors_t ena_xdp_allowed(struct ena_adapter *adapter)
+{
+	enum ena_xdp_errors_t rc = ENA_XDP_ALLOWED;
+
+	if (adapter->netdev->mtu > ENA_XDP_MAX_MTU)
+		rc = ENA_XDP_CURRENT_MTU_TOO_LARGE;
+	else if (!ena_xdp_legal_queue_count(adapter, adapter->num_io_queues))
+		rc = ENA_XDP_NO_ENOUGH_QUEUES;
+
+	return rc;
+}
+
 #endif /* !(ENA_H) */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef ENA_PCI_ID_TBL_H_
@@ -53,10 +26,15 @@
 #define PCI_DEV_ID_ENA_LLQ_VF	0xec21
 #endif
 
+#ifndef PCI_DEV_ID_ENA_RESRV0
+#define PCI_DEV_ID_ENA_RESRV0	0x0051
+#endif
+
 #define ENA_PCI_ID_TABLE_ENTRY(devid) \
 	{PCI_DEVICE(PCI_VENDOR_ID_AMAZON, devid)},
 
 static const struct pci_device_id ena_pci_tbl[] = {
+	ENA_PCI_ID_TABLE_ENTRY(PCI_DEV_ID_ENA_RESRV0)
 	ENA_PCI_ID_TABLE_ENTRY(PCI_DEV_ID_ENA_PF)
 	ENA_PCI_ID_TABLE_ENTRY(PCI_DEV_ID_ENA_LLQ_PF)
 	ENA_PCI_ID_TABLE_ENTRY(PCI_DEV_ID_ENA_VF)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
@@ -1,33 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 /*
- * Copyright 2015 - 2016 Amazon.com, Inc. or its affiliates.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 #ifndef _ENA_REGS_H_
 #define _ENA_REGS_H_
@@ -154,4 +127,4 @@
 #define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_SHIFT          16
 #define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_MASK           0xffff0000
 
-#endif /*_ENA_REGS_H_ */
+#endif /* _ENA_REGS_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-common.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amd/xgbe/xgbe-common.h
@@ -1279,10 +1279,18 @@
 #define MDIO_PMA_10GBR_FECCTRL		0x00ab
 #endif
 
+#ifndef MDIO_PMA_RX_CTRL1
+#define MDIO_PMA_RX_CTRL1		0x8051
+#endif
+
 #ifndef MDIO_PCS_DIG_CTRL
 #define MDIO_PCS_DIG_CTRL		0x8000
 #endif
 
+#ifndef MDIO_PCS_DIGITAL_STAT
+#define MDIO_PCS_DIGITAL_STAT		0x8010
+#endif
+
 #ifndef MDIO_AN_XNP
 #define MDIO_AN_XNP			0x0016
 #endif
@@ -1358,6 +1366,8 @@
 #define XGBE_KR_TRAINING_ENABLE		BIT(1)
 
 #define XGBE_PCS_CL37_BP		BIT(12)
+#define XGBE_PCS_PSEQ_STATE_MASK	0x1c
+#define XGBE_PCS_PSEQ_STATE_POWER_GOOD	0x10
 
 #define XGBE_AN_CL37_INT_CMPLT		BIT(0)
 #define XGBE_AN_CL37_INT_MASK		0x01
@@ -1375,6 +1385,10 @@
 #define XGBE_PMA_CDR_TRACK_EN_OFF	0x00
 #define XGBE_PMA_CDR_TRACK_EN_ON	0x01
 
+#define XGBE_PMA_RX_RST_0_MASK		BIT(4)
+#define XGBE_PMA_RX_RST_0_RESET_ON	0x10
+#define XGBE_PMA_RX_RST_0_RESET_OFF	0x00
+
 /* Bit setting and getting macros
  *  The get macro will extract the current bit field value from within
  *  the variable
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
@@ -514,7 +514,7 @@
 				xgbe_disable_rx_tx_ints(pdata);
 
 				/* Turn on polling */
-				__napi_schedule_irqoff(&pdata->napi);
+				__napi_schedule(&pdata->napi);
 			}
 		} else {
 			/* Don't clear Rx/Tx status if doing per channel DMA
@@ -1443,6 +1443,7 @@
 		return;
 
 	netif_tx_stop_all_queues(netdev);
+	netif_carrier_off(pdata->netdev);
 
 	xgbe_stop_timers(pdata);
 	flush_workqueue(pdata->dev_workqueue);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
@@ -1345,7 +1345,7 @@
 							     &an_restart);
 	if (an_restart) {
 		xgbe_phy_config_aneg(pdata);
-		return;
+		goto adjust_link;
 	}
 
 	if (pdata->phy.link) {
@@ -1396,7 +1396,6 @@
 	pdata->phy_if.phy_impl.stop(pdata);
 
 	pdata->phy.link = 0;
-	netif_carrier_off(pdata->netdev);
 
 	xgbe_phy_adjust_link(pdata);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
@@ -921,6 +921,9 @@
 	if ((phy_id & 0xfffffff0) != 0x03625d10)
 		return false;
 
+	/* Reset PHY - wait for self-clearing reset bit to clear */
+	genphy_soft_reset(phy_data->phydev);
+
 	/* Disable RGMII mode */
 	phy_write(phy_data->phydev, 0x18, 0x7007);
 	reg = phy_read(phy_data->phydev, 0x18);
@@ -1948,6 +1951,27 @@
 	xgbe_phy_put_comm_ownership(pdata);
 }
 
+static void xgbe_phy_rx_reset(struct xgbe_prv_data *pdata)
+{
+	int reg;
+
+	reg = XMDIO_READ_BITS(pdata, MDIO_MMD_PCS, MDIO_PCS_DIGITAL_STAT,
+			      XGBE_PCS_PSEQ_STATE_MASK);
+	if (reg == XGBE_PCS_PSEQ_STATE_POWER_GOOD) {
+		/* Mailbox command timed out, reset of RX block is required.
+		 * This can be done by asseting the reset bit and wait for
+		 * its compeletion.
+		 */
+		XMDIO_WRITE_BITS(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_RX_CTRL1,
+				 XGBE_PMA_RX_RST_0_MASK, XGBE_PMA_RX_RST_0_RESET_ON);
+		ndelay(20);
+		XMDIO_WRITE_BITS(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_RX_CTRL1,
+				 XGBE_PMA_RX_RST_0_MASK, XGBE_PMA_RX_RST_0_RESET_OFF);
+		usleep_range(40, 50);
+		netif_err(pdata, link, pdata->netdev, "firmware mailbox reset performed\n");
+	}
+}
+
 static void xgbe_phy_perform_ratechange(struct xgbe_prv_data *pdata,
 					unsigned int cmd, unsigned int sub_cmd)
 {
@@ -1955,9 +1979,11 @@
 	unsigned int wait;
 
 	/* Log if a previous command did not complete */
-	if (XP_IOREAD_BITS(pdata, XP_DRIVER_INT_RO, STATUS))
+	if (XP_IOREAD_BITS(pdata, XP_DRIVER_INT_RO, STATUS)) {
 		netif_dbg(pdata, link, pdata->netdev,
 			  "firmware mailbox not ready for command\n");
+		xgbe_phy_rx_reset(pdata);
+	}
 
 	/* Construct the command */
 	XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, cmd);
@@ -1979,6 +2005,9 @@
 
 	netif_dbg(pdata, link, pdata->netdev,
 		  "firmware mailbox command did not complete\n");
+
+	/* Reset on error */
+	xgbe_phy_rx_reset(pdata);
 }
 
 static void xgbe_phy_rrc(struct xgbe_prv_data *pdata)
@@ -2575,6 +2604,14 @@
 	if (reg & MDIO_STAT1_LSTATUS)
 		return 1;
 
+	if (pdata->phy.autoneg == AUTONEG_ENABLE &&
+	    phy_data->port_mode == XGBE_PORT_MODE_BACKPLANE) {
+		if (!test_bit(XGBE_LINK_INIT, &pdata->dev_state)) {
+			netif_carrier_off(pdata->netdev);
+			*an_restart = 1;
+		}
+	}
+
 	/* No link, attempt a receiver reset cycle */
 	if (phy_data->rrc_count++ > XGBE_RRC_FREQUENCY) {
 		phy_data->rrc_count = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
@@ -2020,7 +2020,7 @@
 	int ret;
 
 	ndev = alloc_etherdev_mqs(sizeof(struct xgene_enet_pdata),
-				  XGENE_NUM_RX_RING, XGENE_NUM_TX_RING);
+				  XGENE_NUM_TX_RING, XGENE_NUM_RX_RING);
 	if (!ndev)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/apple/bmac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/apple/bmac.c
@@ -1182,7 +1182,7 @@
 	int i;
 	unsigned short data;
 
-	for (i = 0; i < 6; i++)
+	for (i = 0; i < 3; i++)
 		{
 			reset_and_select_srom(dev);
 			data = read_srom(dev, i + EnetAddressOffset/2, SROMAddressBits);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_filters.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/aq_filters.c
@@ -158,7 +158,7 @@
 	}
 
 	if ((aq_nic->ndev->features & NETIF_F_HW_VLAN_CTAG_FILTER) &&
-	    (!test_bit(be16_to_cpu(fsp->h_ext.vlan_tci),
+	    (!test_bit(be16_to_cpu(fsp->h_ext.vlan_tci) & VLAN_VID_MASK,
 		       aq_nic->active_vlans))) {
 		netdev_err(aq_nic->ndev,
 			   "ethtool: unknown vlan-id specified");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
@@ -230,7 +230,7 @@
 
 	struct aq_stats_s *(*hw_get_hw_stats)(struct aq_hw_s *self);
 
-	int (*hw_get_fw_version)(struct aq_hw_s *self, u32 *fw_version);
+	u32 (*hw_get_fw_version)(struct aq_hw_s *self);
 
 	int (*hw_set_offload)(struct aq_hw_s *self,
 			      struct aq_nic_cfg_s *aq_nic_cfg);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
@@ -467,8 +467,10 @@
 				     dx_buff->len,
 				     DMA_TO_DEVICE);
 
-	if (unlikely(dma_mapping_error(aq_nic_get_dev(self), dx_buff->pa)))
+	if (unlikely(dma_mapping_error(aq_nic_get_dev(self), dx_buff->pa))) {
+		ret = 0;
 		goto exit;
+	}
 
 	first = dx_buff;
 	dx_buff->len_pkt = skb->len;
@@ -598,10 +600,6 @@
 	if (likely(frags)) {
 		err = self->aq_hw_ops->hw_ring_tx_xmit(self->aq_hw,
 						       ring, frags);
-		if (err >= 0) {
-			++ring->stats.tx.packets;
-			ring->stats.tx.bytes += skb->len;
-		}
 	} else {
 		err = NETDEV_TX_BUSY;
 	}
@@ -692,6 +690,9 @@
 	u32 *regs_buff = p;
 	int err = 0;
 
+	if (unlikely(!self->aq_hw_ops->hw_get_regs))
+		return -EOPNOTSUPP;
+
 	regs->version = 1;
 
 	err = self->aq_hw_ops->hw_get_regs(self->aq_hw,
@@ -706,6 +707,9 @@
 
 int aq_nic_get_regs_count(struct aq_nic_s *self)
 {
+	if (unlikely(!self->aq_hw_ops->hw_get_regs))
+		return 0;
+
 	return self->aq_nic_cfg.aq_hw_caps->mac_regs_count;
 }
 
@@ -928,11 +932,7 @@
 
 u32 aq_nic_get_fw_version(struct aq_nic_s *self)
 {
-	u32 fw_version = 0U;
-
-	self->aq_hw_ops->hw_get_fw_version(self->aq_hw, &fw_version);
-
-	return fw_version;
+	return self->aq_hw_ops->hw_get_fw_version(self->aq_hw);
 }
 
 int aq_nic_stop(struct aq_nic_s *self)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
@@ -56,7 +56,7 @@
 	{ AQ_DEVICE_ID_D108,	AQ_HWREV_2,	&hw_atl_ops_b0, &hw_atl_b0_caps_aqc108, },
 	{ AQ_DEVICE_ID_D109,	AQ_HWREV_2,	&hw_atl_ops_b0, &hw_atl_b0_caps_aqc109, },
 
-	{ AQ_DEVICE_ID_AQC100,	AQ_HWREV_ANY,	&hw_atl_ops_b1, &hw_atl_b0_caps_aqc107, },
+	{ AQ_DEVICE_ID_AQC100,	AQ_HWREV_ANY,	&hw_atl_ops_b1, &hw_atl_b0_caps_aqc100, },
 	{ AQ_DEVICE_ID_AQC107,	AQ_HWREV_ANY,	&hw_atl_ops_b1, &hw_atl_b0_caps_aqc107, },
 	{ AQ_DEVICE_ID_AQC108,	AQ_HWREV_ANY,	&hw_atl_ops_b1, &hw_atl_b0_caps_aqc108, },
 	{ AQ_DEVICE_ID_AQC109,	AQ_HWREV_ANY,	&hw_atl_ops_b1, &hw_atl_b0_caps_aqc109, },
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
@@ -243,9 +243,12 @@
 			}
 		}
 
-		if (unlikely(buff->is_eop))
-			dev_kfree_skb_any(buff->skb);
+		if (unlikely(buff->is_eop)) {
+			++self->stats.rx.packets;
+			self->stats.tx.bytes += buff->skb->len;
 
+			dev_kfree_skb_any(buff->skb);
+		}
 		buff->pa = 0U;
 		buff->eop_index = 0xffffU;
 		self->sw_head = aq_ring_next_dx(self, self->sw_head);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
@@ -776,7 +776,7 @@
 	int err = 0;
 
 	if (count > (HW_ATL_A0_MAC_MAX - HW_ATL_A0_MAC_MIN)) {
-		err = EBADRQC;
+		err = -EBADRQC;
 		goto err_exit;
 	}
 	for (self->aq_nic_cfg->mc_list_count = 0U;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
@@ -1097,7 +1097,7 @@
 	return aq_hw_err_from_flags(self);
 }
 
-/**
+/*
  * @brief Set VLAN filter table
  * @details Configure VLAN filter table to accept (and assign the queue) traffic
  *  for the particular vlan ids.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
@@ -1597,7 +1597,7 @@
 	for (i = 0; i < 4; ++i)
 		aq_hw_write_reg(aq_hw,
 				HW_ATL_RPF_L3_SRCA_ADR(location + i),
-				ipv6_src[i]);
+				ipv6_src[3 - i]);
 }
 
 void hw_atl_rpfl3l4_ipv6_dest_addr_set(struct aq_hw_s *aq_hw, u8 location,
@@ -1608,7 +1608,7 @@
 	for (i = 0; i < 4; ++i)
 		aq_hw_write_reg(aq_hw,
 				HW_ATL_RPF_L3_DSTA_ADR(location + i),
-				ipv6_dest[i]);
+				ipv6_dest[3 - i]);
 }
 
 u32 hw_atl_sem_ram_get(struct aq_hw_s *self)
@@ -1616,6 +1616,16 @@
 	return hw_atl_reg_glb_cpu_sem_get(self, HW_ATL_FW_SM_RAM);
 }
 
+u32 hw_atl_sem_reset1_get(struct aq_hw_s *self)
+{
+	return hw_atl_reg_glb_cpu_sem_get(self, HW_ATL_FW_SM_RESET1);
+}
+
+u32 hw_atl_sem_reset2_get(struct aq_hw_s *self)
+{
+	return hw_atl_reg_glb_cpu_sem_get(self, HW_ATL_FW_SM_RESET2);
+}
+
 u32 hw_atl_scrpad_get(struct aq_hw_s *aq_hw, u32 scratch_scp)
 {
 	return aq_hw_read_reg(aq_hw,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
@@ -755,6 +755,9 @@
 /* get global microprocessor ram semaphore */
 u32 hw_atl_sem_ram_get(struct aq_hw_s *self);
 
+u32 hw_atl_sem_reset1_get(struct aq_hw_s *self);
+u32 hw_atl_sem_reset2_get(struct aq_hw_s *self);
+
 /* get global microprocessor scratch pad register */
 u32 hw_atl_scrpad_get(struct aq_hw_s *aq_hw, u32 scratch_scp);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
@@ -2564,7 +2564,7 @@
  */
 
  /* Register address for bitfield pif_rpf_l3_da0_i[31:0] */
-#define HW_ATL_RPF_L3_DSTA_ADR(location) (0x000053B0 + (location) * 0x4)
+#define HW_ATL_RPF_L3_DSTA_ADR(filter) (0x000053D0 + (filter) * 0x4)
 /* Bitmask for bitfield l3_da0[1F:0] */
 #define HW_ATL_RPF_L3_DSTA_MSK 0xFFFFFFFFu
 /* Inverted bitmask for bitfield l3_da0[1F:0] */
@@ -2576,6 +2576,10 @@
 /* Default value of bitfield l3_da0[1F:0] */
 #define HW_ATL_RPF_L3_DSTA_DEFAULT 0x0
 
+#define HW_ATL_MIF_RESET_TIMEOUT_ADR 0x00000348
+
 #define HW_ATL_FW_SM_RAM        0x2U
+#define HW_ATL_FW_SM_RESET1     0x3U
+#define HW_ATL_FW_SM_RESET2     0x4U
 
 #endif /* HW_ATL_LLH_INTERNAL_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c
@@ -22,6 +22,7 @@
 #define HW_ATL_MIF_ADDR         0x0208U
 #define HW_ATL_MIF_VAL          0x020CU
 
+#define HW_ATL_MPI_RPC_ADDR     0x0334U
 #define HW_ATL_RPC_CONTROL_ADR  0x0338U
 #define HW_ATL_RPC_STATE_ADR    0x033CU
 
@@ -44,19 +45,18 @@
 #define HW_ATL_FW_VER_1X 0x01050006U
 #define HW_ATL_FW_VER_2X 0x02000000U
 #define HW_ATL_FW_VER_3X 0x03000000U
+#define HW_ATL_FW_VER_4X 0x04000000U
 
 #define FORCE_FLASHLESS 0
 
-static int hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual);
-
 static int hw_atl_utils_mpi_set_state(struct aq_hw_s *self,
-				      enum hal_atl_utils_fw_state_e state);
-
+		enum hal_atl_utils_fw_state_e state);
 static u32 hw_atl_utils_get_mpi_mbox_tid(struct aq_hw_s *self);
 static u32 hw_atl_utils_mpi_get_state(struct aq_hw_s *self);
 static u32 hw_atl_utils_mif_cmd_get(struct aq_hw_s *self);
 static u32 hw_atl_utils_mif_addr_get(struct aq_hw_s *self);
 static u32 hw_atl_utils_rpc_state_get(struct aq_hw_s *self);
+static u32 aq_fw1x_rpc_get(struct aq_hw_s *self);
 
 int hw_atl_utils_initfw(struct aq_hw_s *self, const struct aq_fw_ops **fw_ops)
 {
@@ -67,22 +67,21 @@
 		return err;
 
 	hw_atl_utils_hw_chip_features_init(self,
-					   &self->chip_features);
+			&self->chip_features);
 
-	hw_atl_utils_get_fw_version(self, &self->fw_ver_actual);
+	self->fw_ver_actual = hw_atl_utils_get_fw_version(self);
 
-	if (hw_atl_utils_ver_match(HW_ATL_FW_VER_1X,
-				   self->fw_ver_actual) == 0) {
+	if (hw_atl_utils_ver_match(HW_ATL_FW_VER_1X, self->fw_ver_actual)) {
 		*fw_ops = &aq_fw_1x_ops;
-	} else if (hw_atl_utils_ver_match(HW_ATL_FW_VER_2X,
-					  self->fw_ver_actual) == 0) {
+	} else if (hw_atl_utils_ver_match(HW_ATL_FW_VER_2X, self->fw_ver_actual)) {
+		*fw_ops = &aq_fw_2x_ops;
+	} else if (hw_atl_utils_ver_match(HW_ATL_FW_VER_3X, self->fw_ver_actual)) {
 		*fw_ops = &aq_fw_2x_ops;
-	} else if (hw_atl_utils_ver_match(HW_ATL_FW_VER_3X,
-					  self->fw_ver_actual) == 0) {
+	} else if (hw_atl_utils_ver_match(HW_ATL_FW_VER_4X, self->fw_ver_actual)) {
 		*fw_ops = &aq_fw_2x_ops;
 	} else {
 		aq_pr_err("Bad FW version detected: %x\n",
-			  self->fw_ver_actual);
+				self->fw_ver_actual);
 		return -EOPNOTSUPP;
 	}
 	self->aq_fw_ops = *fw_ops;
@@ -121,7 +120,7 @@
 
 	for (k = 0; k < 1000; k++) {
 		u32 flb_status = aq_hw_read_reg(self,
-						HW_ATL_MPI_DAISY_CHAIN_STATUS);
+				HW_ATL_MPI_DAISY_CHAIN_STATUS);
 
 		flb_status = flb_status & 0x10;
 		if (flb_status)
@@ -144,8 +143,8 @@
 	hw_atl_rx_rx_reg_res_dis_set(self, 0U);
 	hw_atl_tx_tx_reg_res_dis_set(self, 0U);
 	aq_hw_write_reg_bit(self, HW_ATL_MAC_PHY_CONTROL,
-			    BIT(HW_ATL_MAC_PHY_MPI_RESET_BIT),
-			    HW_ATL_MAC_PHY_MPI_RESET_BIT, 0x0);
+			BIT(HW_ATL_MAC_PHY_MPI_RESET_BIT),
+			HW_ATL_MAC_PHY_MPI_RESET_BIT, 0x0);
 	gsr = aq_hw_read_reg(self, HW_ATL_GLB_SOFT_RES_ADR);
 	aq_hw_write_reg(self, HW_ATL_GLB_SOFT_RES_ADR, (gsr & 0xBFFF) | 0x8000);
 
@@ -186,8 +185,8 @@
 	hw_atl_rx_rx_reg_res_dis_set(self, 0U);
 	hw_atl_tx_tx_reg_res_dis_set(self, 0U);
 	aq_hw_write_reg_bit(self, HW_ATL_MAC_PHY_CONTROL,
-			    BIT(HW_ATL_MAC_PHY_MPI_RESET_BIT),
-			    HW_ATL_MAC_PHY_MPI_RESET_BIT, 0x0);
+			BIT(HW_ATL_MAC_PHY_MPI_RESET_BIT),
+			HW_ATL_MAC_PHY_MPI_RESET_BIT, 0x0);
 	gsr = aq_hw_read_reg(self, HW_ATL_GLB_SOFT_RES_ADR);
 	aq_hw_write_reg(self, HW_ATL_GLB_SOFT_RES_ADR,
 			(gsr & 0xFFFFBFFF) | 0x8000);
@@ -238,14 +237,15 @@
 int hw_atl_utils_soft_reset(struct aq_hw_s *self)
 {
 	int k;
+	int ver = hw_atl_utils_get_fw_version(self);
 	u32 boot_exit_code = 0;
 	u32 val;
 
 	for (k = 0; k < 1000; ++k) {
 		u32 flb_status = aq_hw_read_reg(self,
-						HW_ATL_MPI_DAISY_CHAIN_STATUS);
+				HW_ATL_MPI_DAISY_CHAIN_STATUS);
 		boot_exit_code = aq_hw_read_reg(self,
-						HW_ATL_MPI_BOOT_EXIT_CODE);
+				HW_ATL_MPI_BOOT_EXIT_CODE);
 		if (flb_status != 0x06000000 || boot_exit_code != 0)
 			break;
 	}
@@ -257,22 +257,41 @@
 
 	self->rbl_enabled = (boot_exit_code != 0);
 
-	/* FW 1.x may bootup in an invalid POWER state (WOL feature).
-	 * We should work around this by forcing its state back to DEINIT
-	 */
-	if (!hw_atl_utils_ver_match(HW_ATL_FW_VER_1X,
-				    aq_hw_read_reg(self,
-						   HW_ATL_MPI_FW_VERSION))) {
+	if (hw_atl_utils_ver_match(HW_ATL_FW_VER_1X, ver)) {
 		int err = 0;
 
+		/* FW 1.x may bootup in an invalid POWER state (WOL feature).
+		 * We should work around this by forcing its state back to DEINIT
+		 */
 		hw_atl_utils_mpi_set_state(self, MPI_DEINIT);
 		err = readx_poll_timeout_atomic(hw_atl_utils_mpi_get_state,
-						self, val,
-						(val & HW_ATL_MPI_STATE_MSK) ==
-						 MPI_DEINIT,
-						10, 10000U);
+				self, val,
+				(val & HW_ATL_MPI_STATE_MSK) ==
+				MPI_DEINIT,
+				10, 10000U);
 		if (err)
 			return err;
+	} else if (hw_atl_utils_ver_match(HW_ATL_FW_VER_4X, ver)) {
+		u64 sem_timeout = aq_hw_read_reg(self, HW_ATL_MIF_RESET_TIMEOUT_ADR);
+
+		/* Acquire 2 semaphores before issuing reset for FW 4.x */
+		if (sem_timeout > 3000)
+			sem_timeout = 3000;
+		sem_timeout = sem_timeout * 1000;
+
+		if (sem_timeout != 0) {
+			int err;
+
+			err = readx_poll_timeout_atomic(hw_atl_sem_reset1_get, self, val,
+							val == 1U, 1U, sem_timeout);
+			if (err)
+				aq_pr_err("reset sema1 timeout");
+
+			err = readx_poll_timeout_atomic(hw_atl_sem_reset2_get, self, val,
+							val == 1U, 1U, sem_timeout);
+			if (err)
+				aq_pr_err("reset sema2 timeout");
+		}
 	}
 
 	if (self->rbl_enabled)
@@ -282,14 +301,14 @@
 }
 
 int hw_atl_utils_fw_downld_dwords(struct aq_hw_s *self, u32 a,
-				  u32 *p, u32 cnt)
+		u32 *p, u32 cnt)
 {
 	int err = 0;
 	u32 val;
 
 	err = readx_poll_timeout_atomic(hw_atl_sem_ram_get,
-					self, val, val == 1U,
-					1U, 10000U);
+			self, val, val == 1U,
+			1U, 10000U);
 
 	if (err < 0) {
 		bool is_locked;
@@ -309,13 +328,13 @@
 
 		if (IS_CHIP_FEATURE(REVISION_B1))
 			err = readx_poll_timeout_atomic(hw_atl_utils_mif_addr_get,
-							self, val, val != a,
-							1U, 1000U);
+					self, val, val != a,
+					1U, 1000U);
 		else
 			err = readx_poll_timeout_atomic(hw_atl_utils_mif_cmd_get,
-							self, val,
-							!(val & 0x100),
-							1U, 1000U);
+					self, val,
+					!(val & 0x100),
+					1U, 1000U);
 
 		*(p++) = aq_hw_read_reg(self, HW_ATL_MIF_VAL);
 		a += 4;
@@ -328,14 +347,14 @@
 }
 
 static int hw_atl_utils_fw_upload_dwords(struct aq_hw_s *self, u32 a, u32 *p,
-					 u32 cnt)
+		u32 cnt)
 {
 	u32 val;
 	int err = 0;
 
 	err = readx_poll_timeout_atomic(hw_atl_sem_ram_get, self,
-					val, val == 1U,
-					10U, 100000U);
+			val, val == 1U,
+			10U, 100000U);
 	if (err < 0)
 		goto err_exit;
 
@@ -349,10 +368,10 @@
 			hw_atl_mcp_up_force_intr_set(self, 1);
 			/* 1000 times by 10us = 10ms */
 			err = readx_poll_timeout_atomic(hw_atl_scrpad12_get,
-							self, val,
-							(val & 0xF0000000) !=
-							0x80000000,
-							10U, 10000U);
+					self, val,
+					(val & 0xF0000000) !=
+					0x80000000,
+					10U, 10000U);
 		}
 	} else {
 		u32 offset = 0;
@@ -364,9 +383,9 @@
 			aq_hw_write_reg(self, 0x200, 0xC000);
 
 			err = readx_poll_timeout_atomic(hw_atl_utils_mif_cmd_get,
-							self, val,
-							(val & 0x100) == 0,
-							1000U, 10000U);
+					self, val,
+					(val & 0x100) == 0,
+					1000U, 10000U);
 		}
 	}
 
@@ -376,19 +395,21 @@
 	return err;
 }
 
-static int hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual)
+bool hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual)
 {
-	int err = 0;
 	const u32 dw_major_mask = 0xff000000U;
 	const u32 dw_minor_mask = 0x00ffffffU;
+	bool ver_match;
 
-	err = (dw_major_mask & (ver_expected ^ ver_actual)) ? -EOPNOTSUPP : 0;
-	if (err < 0)
+	ver_match = (dw_major_mask & (ver_expected ^ ver_actual)) ? false : true;
+	if (!ver_match)
 		goto err_exit;
-	err = ((dw_minor_mask & ver_expected) > (dw_minor_mask & ver_actual)) ?
-		-EOPNOTSUPP : 0;
+
+	ver_match = ((dw_minor_mask & ver_expected) > (dw_minor_mask & ver_actual)) ?
+		false : true;
+
 err_exit:
-	return err;
+	return ver_match;
 }
 
 static int hw_atl_utils_init_ucp(struct aq_hw_s *self,
@@ -413,6 +434,10 @@
 					self, self->mbox_addr,
 					self->mbox_addr != 0U,
 					1000U, 10000U);
+	err = readx_poll_timeout_atomic(aq_fw1x_rpc_get, self,
+					self->rpc_addr,
+					self->rpc_addr != 0U,
+					1000U, 100000U);
 
 	return err;
 }
@@ -469,6 +494,12 @@
 						self, fw.val,
 						sw.tid == fw.tid,
 						1000U, 100000U);
+		if (err < 0)
+			goto err_exit;
+
+		err = aq_hw_err_from_flags(self);
+		if (err < 0)
+			goto err_exit;
 
 		if (fw.len == 0xFFFFU) {
 			err = hw_atl_utils_fw_rpc_call(self, sw.len);
@@ -840,10 +871,9 @@
 	return 0;
 }
 
-int hw_atl_utils_get_fw_version(struct aq_hw_s *self, u32 *fw_version)
+u32 hw_atl_utils_get_fw_version(struct aq_hw_s *self)
 {
-	*fw_version = aq_hw_read_reg(self, 0x18U);
-	return 0;
+	return aq_hw_read_reg(self, HW_ATL_MPI_FW_VERSION);
 }
 
 static int aq_fw1x_set_wol(struct aq_hw_s *self, bool wol_enabled, u8 *mac)
@@ -950,6 +980,11 @@
 	return aq_hw_read_reg(self, HW_ATL_RPC_STATE_ADR);
 }
 
+static u32 aq_fw1x_rpc_get(struct aq_hw_s *self)
+{
+	return aq_hw_read_reg(self, HW_ATL_MPI_RPC_ADDR);
+}
+
 const struct aq_fw_ops aq_fw_1x_ops = {
 	.init = hw_atl_utils_mpi_create,
 	.deinit = hw_atl_fw1x_deinit,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h
@@ -466,7 +466,7 @@
 
 int hw_atl_utils_hw_deinit(struct aq_hw_s *self);
 
-int hw_atl_utils_get_fw_version(struct aq_hw_s *self, u32 *fw_version);
+u32 hw_atl_utils_get_fw_version(struct aq_hw_s *self);
 
 int hw_atl_utils_update_stats(struct aq_hw_s *self);
 
@@ -482,6 +482,8 @@
 int hw_atl_utils_fw_rpc_wait(struct aq_hw_s *self,
 			     struct hw_atl_utils_fw_rpc **rpc);
 
+bool hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual);
+
 extern const struct aq_fw_ops aq_fw_1x_ops;
 extern const struct aq_fw_ops aq_fw_2x_ops;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/arc/emac_mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/arc/emac_mdio.c
@@ -153,6 +153,7 @@
 	if (IS_ERR(data->reset_gpio)) {
 		error = PTR_ERR(data->reset_gpio);
 		dev_err(priv->dev, "Failed to request gpio: %d\n", error);
+		mdiobus_free(bus);
 		return error;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/atheros/ag71xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/atheros/ag71xx.c
@@ -222,8 +222,6 @@
 #define AG71XX_REG_RX_SM	0x01b0
 #define AG71XX_REG_TX_SM	0x01b4
 
-#define ETH_SWITCH_HEADER_LEN	2
-
 #define AG71XX_DEFAULT_MSG_ENABLE	\
 	(NETIF_MSG_DRV			\
 	| NETIF_MSG_PROBE		\
@@ -553,7 +551,8 @@
 	ag->mdio_reset = of_reset_control_get_exclusive(np, "mdio");
 	if (IS_ERR(ag->mdio_reset)) {
 		netif_err(ag, probe, ndev, "Failed to get reset mdio.\n");
-		return PTR_ERR(ag->mdio_reset);
+		err = PTR_ERR(ag->mdio_reset);
+		goto mdio_err_put_clk;
 	}
 
 	mii_bus->name = "ag71xx_mdio";
@@ -783,7 +782,7 @@
 
 static unsigned int ag71xx_max_frame_len(unsigned int mtu)
 {
-	return ETH_SWITCH_HEADER_LEN + ETH_HLEN + VLAN_HLEN + mtu + ETH_FCS_LEN;
+	return ETH_HLEN + VLAN_HLEN + mtu + ETH_FCS_LEN;
 }
 
 static void ag71xx_hw_set_macaddr(struct ag71xx *ag, unsigned char *mac)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/atheros/alx/ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/atheros/alx/ethtool.c
@@ -46,6 +46,8 @@
 #include "reg.h"
 #include "hw.h"
 
+extern const bool enable_wol;
+
 /* The order of these strings must match the order of the fields in
  * struct alx_hw_stats
  * See hw.h
@@ -310,11 +312,50 @@
 	}
 }
 
+static void alx_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
+{
+	struct alx_priv *alx = netdev_priv(netdev);
+	struct alx_hw *hw = &alx->hw;
+
+	if (!enable_wol)
+		return;
+
+	wol->supported = WAKE_MAGIC | WAKE_PHY;
+	wol->wolopts = 0;
+
+	if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC)
+		wol->wolopts |= WAKE_MAGIC;
+	if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY)
+		wol->wolopts |= WAKE_PHY;
+}
+
+static int alx_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
+{
+	struct alx_priv *alx = netdev_priv(netdev);
+	struct alx_hw *hw = &alx->hw;
+
+	if (!enable_wol || (wol->wolopts & ~(WAKE_MAGIC | WAKE_PHY)))
+		return -EOPNOTSUPP;
+
+	hw->sleep_ctrl = 0;
+
+	if (wol->wolopts & WAKE_MAGIC)
+		hw->sleep_ctrl |= ALX_SLEEP_WOL_MAGIC;
+	if (wol->wolopts & WAKE_PHY)
+		hw->sleep_ctrl |= ALX_SLEEP_WOL_PHY;
+
+	device_set_wakeup_enable(&alx->hw.pdev->dev, hw->sleep_ctrl);
+
+	return 0;
+}
+
 const struct ethtool_ops alx_ethtool_ops = {
 	.get_pauseparam	= alx_get_pauseparam,
 	.set_pauseparam	= alx_set_pauseparam,
 	.get_msglevel	= alx_get_msglevel,
 	.set_msglevel	= alx_set_msglevel,
+	.get_wol	= alx_get_wol,
+	.set_wol	= alx_set_wol,
 	.get_link	= ethtool_op_get_link,
 	.get_strings	= alx_get_strings,
 	.get_sset_count	= alx_get_sset_count,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/atheros/alx/hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/atheros/alx/hw.c
@@ -332,6 +332,16 @@
 	alx_write_mem32(hw, ALX_STAD1, val);
 }
 
+static void alx_enable_osc(struct alx_hw *hw)
+{
+	u32 val;
+
+	/* rising edge */
+	val = alx_read_mem32(hw, ALX_MISC);
+	alx_write_mem32(hw, ALX_MISC, val & ~ALX_MISC_INTNLOSC_OPEN);
+	alx_write_mem32(hw, ALX_MISC, val | ALX_MISC_INTNLOSC_OPEN);
+}
+
 static void alx_reset_osc(struct alx_hw *hw, u8 rev)
 {
 	u32 val, val2;
@@ -774,7 +784,6 @@
 	return err;
 }
 
-
 void alx_post_phy_link(struct alx_hw *hw)
 {
 	u16 phy_val, len, agc;
@@ -848,6 +857,65 @@
 	}
 }
 
+/* NOTE:
+ *    1. phy link must be established before calling this function
+ *    2. wol option (pattern,magic,link,etc.) is configed before call it.
+ */
+int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex)
+{
+	u32 master, mac, phy, val;
+	int err = 0;
+
+	master = alx_read_mem32(hw, ALX_MASTER);
+	master &= ~ALX_MASTER_PCLKSEL_SRDS;
+	mac = hw->rx_ctrl;
+	/* 10/100 half */
+	ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED,  ALX_MAC_CTRL_SPEED_10_100);
+	mac &= ~(ALX_MAC_CTRL_FULLD | ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_TX_EN);
+
+	phy = alx_read_mem32(hw, ALX_PHY_CTRL);
+	phy &= ~(ALX_PHY_CTRL_DSPRST_OUT | ALX_PHY_CTRL_CLS);
+	phy |= ALX_PHY_CTRL_RST_ANALOG | ALX_PHY_CTRL_HIB_PULSE |
+	       ALX_PHY_CTRL_HIB_EN;
+
+	/* without any activity  */
+	if (!(hw->sleep_ctrl & ALX_SLEEP_ACTIVE)) {
+		err = alx_write_phy_reg(hw, ALX_MII_IER, 0);
+		if (err)
+			return err;
+		phy |= ALX_PHY_CTRL_IDDQ | ALX_PHY_CTRL_POWER_DOWN;
+	} else {
+		if (hw->sleep_ctrl & (ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_CIFS))
+			mac |= ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_BRD_EN;
+		if (hw->sleep_ctrl & ALX_SLEEP_CIFS)
+			mac |= ALX_MAC_CTRL_TX_EN;
+		if (duplex == DUPLEX_FULL)
+			mac |= ALX_MAC_CTRL_FULLD;
+		if (speed == SPEED_1000)
+			ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED,
+				      ALX_MAC_CTRL_SPEED_1000);
+		phy |= ALX_PHY_CTRL_DSPRST_OUT;
+		err = alx_write_phy_ext(hw, ALX_MIIEXT_ANEG,
+					ALX_MIIEXT_S3DIG10,
+					ALX_MIIEXT_S3DIG10_SL);
+		if (err)
+			return err;
+	}
+
+	alx_enable_osc(hw);
+	hw->rx_ctrl = mac;
+	alx_write_mem32(hw, ALX_MASTER, master);
+	alx_write_mem32(hw, ALX_MAC_CTRL, mac);
+	alx_write_mem32(hw, ALX_PHY_CTRL, phy);
+
+	/* set val of PDLL D3PLLOFF */
+	val = alx_read_mem32(hw, ALX_PDLL_TRNS1);
+	val |= ALX_PDLL_TRNS1_D3PLLOFF_EN;
+	alx_write_mem32(hw, ALX_PDLL_TRNS1, val);
+
+	return 0;
+}
+
 bool alx_phy_configured(struct alx_hw *hw)
 {
 	u32 cfg, hw_cfg;
@@ -920,6 +988,26 @@
 	return alx_read_phy_reg(hw, ALX_MII_ISR, &isr);
 }
 
+int alx_config_wol(struct alx_hw *hw)
+{
+	u32 wol = 0;
+	int err = 0;
+
+	/* turn on magic packet event */
+	if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC)
+		wol |= ALX_WOL0_MAGIC_EN | ALX_WOL0_PME_MAGIC_EN;
+
+	/* turn on link up event */
+	if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY) {
+		wol |=  ALX_WOL0_LINK_EN | ALX_WOL0_PME_LINK;
+		/* only link up can wake up */
+		err = alx_write_phy_reg(hw, ALX_MII_IER, ALX_IER_LINK_UP);
+	}
+	alx_write_mem32(hw, ALX_WOL0, wol);
+
+	return err;
+}
+
 void alx_disable_rss(struct alx_hw *hw)
 {
 	u32 ctrl = alx_read_mem32(hw, ALX_RXQ0);
@@ -1044,6 +1132,70 @@
 	alx_post_write(hw);
 }
 
+int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex)
+{
+	int i, err;
+	u16 lpa;
+
+	err = alx_read_phy_link(hw);
+	if (err)
+		return err;
+
+	if (hw->link_speed == SPEED_UNKNOWN) {
+		*speed = SPEED_UNKNOWN;
+		*duplex = DUPLEX_UNKNOWN;
+		return 0;
+	}
+
+	err = alx_read_phy_reg(hw, MII_LPA, &lpa);
+	if (err)
+		return err;
+
+	if (!(lpa & LPA_LPACK)) {
+		*speed = hw->link_speed;
+		return 0;
+	}
+
+	if (lpa & LPA_10FULL) {
+		*speed = SPEED_10;
+		*duplex = DUPLEX_FULL;
+	} else if (lpa & LPA_10HALF) {
+		*speed = SPEED_10;
+		*duplex = DUPLEX_HALF;
+	} else if (lpa & LPA_100FULL) {
+		*speed = SPEED_100;
+		*duplex = DUPLEX_FULL;
+	} else {
+		*speed = SPEED_100;
+		*duplex = DUPLEX_HALF;
+	}
+
+	if (*speed == hw->link_speed && *duplex == hw->duplex)
+		return 0;
+	err = alx_write_phy_reg(hw, ALX_MII_IER, 0);
+	if (err)
+		return err;
+	err = alx_setup_speed_duplex(hw, alx_speed_to_ethadv(*speed, *duplex) |
+					ADVERTISED_Autoneg, ALX_FC_ANEG |
+					ALX_FC_RX | ALX_FC_TX);
+	if (err)
+		return err;
+
+	/* wait for linkup */
+	for (i = 0; i < ALX_MAX_SETUP_LNK_CYCLE; i++) {
+		msleep(100);
+
+		err = alx_read_phy_link(hw);
+		if (err < 0)
+			return err;
+		if (hw->link_speed != SPEED_UNKNOWN)
+			break;
+	}
+	if (i == ALX_MAX_SETUP_LNK_CYCLE)
+		return -ETIMEDOUT;
+
+	return 0;
+}
 
 bool alx_get_phy_info(struct alx_hw *hw)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/atheros/alx/hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/atheros/alx/hw.h
@@ -487,6 +487,8 @@
 	u8 flowctrl;
 	u32 adv_cfg;
 
+	u32 sleep_ctrl;
+
 	spinlock_t mdio_lock;
 	struct mdio_if_info mdio;
 	u16 phy_id[2];
@@ -549,12 +551,14 @@
 void alx_enable_aspm(struct alx_hw *hw, bool l0s_en, bool l1_en);
 int alx_setup_speed_duplex(struct alx_hw *hw, u32 ethadv, u8 flowctrl);
 void alx_post_phy_link(struct alx_hw *hw);
+int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex);
 int alx_read_phy_reg(struct alx_hw *hw, u16 reg, u16 *phy_data);
 int alx_write_phy_reg(struct alx_hw *hw, u16 reg, u16 phy_data);
 int alx_read_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 *pdata);
 int alx_write_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 data);
 int alx_read_phy_link(struct alx_hw *hw);
 int alx_clear_phy_intr(struct alx_hw *hw);
+int alx_config_wol(struct alx_hw *hw);
 void alx_cfg_mac_flowcontrol(struct alx_hw *hw, u8 fc);
 void alx_start_mac(struct alx_hw *hw);
 int alx_reset_mac(struct alx_hw *hw);
@@ -563,6 +567,7 @@
 void alx_configure_basic(struct alx_hw *hw);
 void alx_mask_msix(struct alx_hw *hw, int index, bool mask);
 void alx_disable_rss(struct alx_hw *hw);
+int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex);
 bool alx_get_phy_info(struct alx_hw *hw);
 void alx_update_hw_stats(struct alx_hw *hw);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/atheros/alx/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/atheros/alx/main.c
@@ -51,6 +51,11 @@
 
 static const char alx_drv_name[] = "alx";
 
+/* disable WoL by default */
+bool enable_wol;
+module_param(enable_wol, bool, 0644);
+MODULE_PARM_DESC(enable_wol, "Enable Wake on Lan feature");
+
 static void alx_free_txbuf(struct alx_tx_queue *txq, int entry)
 {
 	struct alx_buffer *txb = &txq->bufs[entry];
@@ -1069,6 +1074,7 @@
 	alx->dev->max_mtu = ALX_MAX_FRAME_LEN(ALX_MAX_FRAME_SIZE);
 	alx->tx_ringsz = 256;
 	alx->rx_ringsz = 512;
+	hw->sleep_ctrl = ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_WOL_PHY;
 	hw->imt = 200;
 	alx->int_mask = ALX_ISR_MISC;
 	hw->dma_chnl = hw->max_dma_chnl;
@@ -1249,8 +1255,12 @@
 
 static void __alx_stop(struct alx_priv *alx)
 {
-	alx_halt(alx);
 	alx_free_irq(alx);
+
+	cancel_work_sync(&alx->link_check_wk);
+	cancel_work_sync(&alx->reset_wk);
+
+	alx_halt(alx);
 	alx_free_rings(alx);
 	alx_free_napis(alx);
 }
@@ -1343,6 +1353,66 @@
 	return 0;
 }
 
+static int __alx_shutdown(struct pci_dev *pdev, bool *wol_en)
+{
+	struct alx_priv *alx = pci_get_drvdata(pdev);
+	struct net_device *netdev = alx->dev;
+	struct alx_hw *hw = &alx->hw;
+	int err, speed;
+	u8 duplex;
+
+	netif_device_detach(netdev);
+
+	if (netif_running(netdev))
+		__alx_stop(alx);
+
+#ifdef CONFIG_PM_SLEEP
+	err = pci_save_state(pdev);
+	if (err)
+		return err;
+#endif
+
+	err = alx_select_powersaving_speed(hw, &speed, &duplex);
+	if (err)
+		return err;
+	err = alx_clear_phy_intr(hw);
+	if (err)
+		return err;
+	err = alx_pre_suspend(hw, speed, duplex);
+	if (err)
+		return err;
+	err = alx_config_wol(hw);
+	if (err)
+		return err;
+
+	*wol_en = false;
+	if (hw->sleep_ctrl & ALX_SLEEP_ACTIVE) {
+		netif_info(alx, wol, netdev,
+			   "wol: ctrl=%X, speed=%X\n",
+			   hw->sleep_ctrl, speed);
+		device_set_wakeup_enable(&pdev->dev, true);
+		*wol_en = true;
+	}
+
+	pci_disable_device(pdev);
+
+	return 0;
+}
+
+static void alx_shutdown(struct pci_dev *pdev)
+{
+	int err;
+	bool wol_en;
+
+	err = __alx_shutdown(pdev, &wol_en);
+	if (!err) {
+		pci_wake_from_d3(pdev, wol_en);
+		pci_set_power_state(pdev, PCI_D3hot);
+	} else {
+		dev_err(&pdev->dev, "shutdown fail %d\n", err);
+	}
+}
+
 static void alx_link_check(struct work_struct *work)
 {
 	struct alx_priv *alx;
@@ -1836,6 +1906,8 @@
 		goto out_unmap;
 	}
 
+	device_set_wakeup_enable(&pdev->dev, hw->sleep_ctrl);
+
 	netdev_info(netdev,
 		    "Qualcomm Atheros AR816x/AR817x Ethernet [%pM]\n",
 		    netdev->dev_addr);
@@ -1858,9 +1930,6 @@
 	struct alx_priv *alx = pci_get_drvdata(pdev);
 	struct alx_hw *hw = &alx->hw;
 
-	cancel_work_sync(&alx->link_check_wk);
-	cancel_work_sync(&alx->reset_wk);
-
 	/* restore permanent mac address */
 	alx_set_macaddr(hw, hw->perm_addr);
 
@@ -1877,41 +1946,95 @@
 #ifdef CONFIG_PM_SLEEP
 static int alx_suspend(struct device *dev)
 {
-	struct alx_priv *alx = dev_get_drvdata(dev);
+	struct pci_dev *pdev = to_pci_dev(dev);
+	int err;
+	bool wol_en;
+
+	err = __alx_shutdown(pdev, &wol_en);
+	if (err) {
+		dev_err(&pdev->dev, "shutdown fail in suspend %d\n", err);
+		return err;
+	}
+
+	if (wol_en) {
+		pci_prepare_to_sleep(pdev);
+	} else {
+		pci_wake_from_d3(pdev, false);
+		pci_set_power_state(pdev, PCI_D3hot);
+	}
 
-	if (!netif_running(alx->dev))
-		return 0;
-	netif_device_detach(alx->dev);
-	__alx_stop(alx);
 	return 0;
 }
 
 static int alx_resume(struct device *dev)
 {
-	struct alx_priv *alx = dev_get_drvdata(dev);
+	struct pci_dev *pdev = to_pci_dev(dev);
+	struct alx_priv *alx = pci_get_drvdata(pdev);
+	struct net_device *netdev = alx->dev;
 	struct alx_hw *hw = &alx->hw;
 	int err;
 
+	pci_set_power_state(pdev, PCI_D0);
+	pci_restore_state(pdev);
+	pci_save_state(pdev);
+
+	pci_enable_wake(pdev, PCI_D3hot, 0);
+	pci_enable_wake(pdev, PCI_D3cold, 0);
+
+	hw->link_speed = SPEED_UNKNOWN;
+	alx->int_mask = ALX_ISR_MISC;
+
+	alx_reset_pcie(hw);
 	alx_reset_phy(hw);
 
-	if (!netif_running(alx->dev))
-		return 0;
-	netif_device_attach(alx->dev);
+	pci_set_power_state(pdev, PCI_D0);
+	pci_restore_state(pdev);
+	pci_save_state(pdev);
 
-	rtnl_lock();
-	err = __alx_open(alx, true);
-	rtnl_unlock();
+	pci_enable_wake(pdev, PCI_D3hot, 0);
+	pci_enable_wake(pdev, PCI_D3cold, 0);
+
+	hw->link_speed = SPEED_UNKNOWN;
+	alx->int_mask = ALX_ISR_MISC;
+
+	alx_reset_pcie(hw);
+	alx_reset_phy(hw);
+
+	err = alx_reset_mac(hw);
+	if (err) {
+		netif_err(alx, hw, alx->dev,
+			  "resume:reset_mac fail %d\n", err);
+		return -EIO;
+	}
+
+	err = alx_setup_speed_duplex(hw, hw->adv_cfg, hw->flowctrl);
+	if (err) {
+		netif_err(alx, hw, alx->dev,
+			  "resume:setup_speed_duplex fail %d\n", err);
+		return -EIO;
+	}
+
+	if (netif_running(netdev)) {
+		rtnl_lock();
+		err = __alx_open(alx, true);
+		rtnl_unlock();
+		if (err)
+			return err;
+	}
+
+	netif_device_attach(netdev);
 
 	return err;
 }
+#endif
 
+#ifdef CONFIG_PM_SLEEP
 static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume);
 #define ALX_PM_OPS      (&alx_pm_ops)
 #else
 #define ALX_PM_OPS      NULL
 #endif
 
-
 static pci_ers_result_t alx_pci_error_detected(struct pci_dev *pdev,
 					       pci_channel_state_t state)
 {
@@ -1954,6 +2077,8 @@
 	}
 
 	pci_set_master(pdev);
+	pci_enable_wake(pdev, PCI_D3hot, 0);
+	pci_enable_wake(pdev, PCI_D3cold, 0);
 
 	alx_reset_pcie(hw);
 	if (!alx_reset_mac(hw))
@@ -2008,6 +2133,7 @@
 	.id_table    = alx_pci_tbl,
 	.probe       = alx_probe,
 	.remove      = alx_remove,
+	.shutdown    = alx_shutdown,
 	.err_handler = &alx_err_handlers,
 	.driver.pm   = ALX_PM_OPS,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/b44.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/b44.c
@@ -1519,8 +1519,10 @@
 	int ethaddr_bytes = ETH_ALEN;
 
 	memset(ppattern + offset, 0xff, magicsync);
-	for (j = 0; j < magicsync; j++)
-		set_bit(len++, (unsigned long *) pmask);
+	for (j = 0; j < magicsync; j++) {
+		pmask[len >> 3] |= BIT(len & 7);
+		len++;
+	}
 
 	for (j = 0; j < B44_MAX_PATTERNS; j++) {
 		if ((B44_PATTERN_SIZE - len) >= ETH_ALEN)
@@ -1532,7 +1534,8 @@
 		for (k = 0; k< ethaddr_bytes; k++) {
 			ppattern[offset + magicsync +
 				(j * ETH_ALEN) + k] = macaddr[k];
-			set_bit(len++, (unsigned long *) pmask);
+			pmask[len >> 3] |= BIT(len & 7);
+			len++;
 		}
 	}
 	return len - 1;
@@ -2388,7 +2391,8 @@
 		goto err_out_free_dev;
 	}
 
-	if (dma_set_mask_and_coherent(sdev->dma_dev, DMA_BIT_MASK(30))) {
+	err = dma_set_mask_and_coherent(sdev->dma_dev, DMA_BIT_MASK(30));
+	if (err) {
 		dev_err(sdev->dev,
 			"Required 30BIT DMA mask unsupported by the system\n");
 		goto err_out_powerdown;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bcmsysport.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -666,7 +666,8 @@
 	dma_addr_t mapping;
 
 	/* Allocate a new SKB for a new packet */
-	skb = netdev_alloc_skb(priv->netdev, RX_BUF_LENGTH);
+	skb = __netdev_alloc_skb(priv->netdev, RX_BUF_LENGTH,
+				 GFP_ATOMIC | __GFP_NOWARN);
 	if (!skb) {
 		priv->mib.alloc_rx_buff_failed++;
 		netif_err(priv, rx_err, ndev, "SKB alloc failed\n");
@@ -2135,7 +2136,7 @@
 		return -ENOSPC;
 
 	index = find_first_zero_bit(priv->filters, RXCHK_BRCM_TAG_MAX);
-	if (index > RXCHK_BRCM_TAG_MAX)
+	if (index >= RXCHK_BRCM_TAG_MAX)
 		return -ENOSPC;
 
 	/* Location is the classification ID, and index is the position
@@ -2323,7 +2324,7 @@
 		ring->switch_queue = qp;
 		ring->switch_port = port;
 		ring->inspect = true;
-		priv->ring_map[q + port * num_tx_queues] = ring;
+		priv->ring_map[qp + port * num_tx_queues] = ring;
 		qp++;
 	}
 
@@ -2338,7 +2339,7 @@
 	struct net_device *slave_dev;
 	unsigned int num_tx_queues;
 	struct net_device *dev;
-	unsigned int q, port;
+	unsigned int q, qp, port;
 
 	priv = container_of(nb, struct bcm_sysport_priv, dsa_notifier);
 	if (priv->netdev != info->master)
@@ -2364,7 +2365,8 @@
 			continue;
 
 		ring->inspect = false;
-		priv->ring_map[q + port * num_tx_queues] = NULL;
+		qp = ring->switch_queue;
+		priv->ring_map[qp + port * num_tx_queues] = NULL;
 	}
 
 	return 0;
@@ -2451,8 +2453,10 @@
 	priv->tx_rings = devm_kcalloc(&pdev->dev, txq,
 				      sizeof(struct bcm_sysport_tx_ring),
 				      GFP_KERNEL);
-	if (!priv->tx_rings)
-		return -ENOMEM;
+	if (!priv->tx_rings) {
+		ret = -ENOMEM;
+		goto err_free_netdev;
+	}
 
 	priv->is_lite = params->is_lite;
 	priv->num_rx_desc_words = params->num_rx_desc_words;
@@ -2516,6 +2520,7 @@
 			 NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 	dev->hw_features |= dev->features;
 	dev->vlan_features |= dev->features;
+	dev->max_mtu = UMAC_MAX_MTU_SIZE;
 
 	/* Request the WOL interrupt and advertise suspend if available */
 	priv->wol_irq_disabled = 1;
@@ -2727,6 +2732,9 @@
 
 	umac_reset(priv);
 
+	/* Disable the UniMAC RX/TX */
+	umac_enable_set(priv, CMD_RX_EN | CMD_TX_EN, 0);
+
 	/* We may have been suspended and never received a WOL event that
 	 * would turn off MPD detection, take care of that now
 	 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
@@ -1109,7 +1109,7 @@
 		for (i = 0; i < E1H_FUNC_MAX / 2; i++) {
 			u32 func_config =
 				MF_CFG_RD(bp,
-					  func_mf_config[BP_PORT(bp) + 2 * i].
+					  func_mf_config[BP_PATH(bp) + 2 * i].
 					  config);
 			func_num +=
 				((func_config & FUNC_MF_CFG_FUNC_HIDE) ? 0 : 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -9976,10 +9976,18 @@
  */
 static void bnx2x_parity_recover(struct bnx2x *bp)
 {
-	bool global = false;
 	u32 error_recovered, error_unrecovered;
-	bool is_parity;
+	bool is_parity, global = false;
+#ifdef CONFIG_BNX2X_SRIOV
+	int vf_idx;
 
+	for (vf_idx = 0; vf_idx < bp->requested_nr_virtfn; vf_idx++) {
+		struct bnx2x_virtf *vf = BP_VF(bp, vf_idx);
+
+		if (vf)
+			vf->state = VF_LOST;
+	}
+#endif
 	DP(NETIF_MSG_HW, "Handling parity\n");
 	while (1) {
 		switch (bp->recovery_state) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
@@ -2397,15 +2397,21 @@
 	/* send the ramrod on all the queues of the PF */
 	for_each_eth_queue(bp, i) {
 		struct bnx2x_fastpath *fp = &bp->fp[i];
+		int tx_idx;
 
 		/* Set the appropriate Queue object */
 		q_params.q_obj = &bnx2x_sp_obj(bp, fp).q_obj;
 
-		/* Update the Queue state */
-		rc = bnx2x_queue_state_change(bp, &q_params);
-		if (rc) {
-			BNX2X_ERR("Failed to configure Tx switching\n");
-			return rc;
+		for (tx_idx = FIRST_TX_COS_INDEX;
+		     tx_idx < fp->max_cos; tx_idx++) {
+			q_params.params.update.cid_index = tx_idx;
+
+			/* Update the Queue state */
+			rc = bnx2x_queue_state_change(bp, &q_params);
+			if (rc) {
+				BNX2X_ERR("Failed to configure Tx switching\n");
+				return rc;
+			}
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h
@@ -139,6 +139,7 @@
 #define VF_ACQUIRED	1	/* VF acquired, but not initialized */
 #define VF_ENABLED	2	/* VF Enabled */
 #define VF_RESET	3	/* VF FLR'd, pending cleanup */
+#define VF_LOST		4	/* Recovery while VFs are loaded */
 
 	bool flr_clnup_stage;	/* true during flr cleanup */
 	bool malicious;		/* true if FW indicated so, until FLR */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
@@ -2107,6 +2107,18 @@
 {
 	int i;
 
+	if (vf->state == VF_LOST) {
+		/* Just ack the FW and return if VFs are lost
+		 * in case of parity error. VFs are supposed to be timedout
+		 * on waiting for PF response.
+		 */
+		DP(BNX2X_MSG_IOV,
+		   "VF 0x%x lost, not handling the request\n", vf->abs_vfid);
+
+		storm_memset_vf_mbx_ack(bp, vf->abs_vfid);
+		return;
+	}
+
 	/* check if tlv type is known */
 	if (bnx2x_tlv_supported(mbx->first_tlv.tl.type)) {
 		/* Lock the per vf op mutex and note the locker's identity.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -942,6 +942,7 @@
 	dma_addr -= bp->rx_dma_offset;
 	dma_unmap_page_attrs(&bp->pdev->dev, dma_addr, PAGE_SIZE, bp->rx_dir,
 			     DMA_ATTR_WEAK_ORDERING);
+	page_pool_release_page(rxr->page_pool, page);
 
 	if (unlikely(!payload))
 		payload = eth_get_headlen(bp->dev, data_ptr, len);
@@ -1142,6 +1143,9 @@
 
 static void bnxt_queue_fw_reset_work(struct bnxt *bp, unsigned long delay)
 {
+	if (!(test_bit(BNXT_STATE_IN_FW_RESET, &bp->state)))
+		return;
+
 	if (BNXT_PF(bp))
 		queue_delayed_work(bnxt_pf_wq, &bp->fw_reset_task, delay);
 	else
@@ -1156,14 +1160,6 @@
 		schedule_work(&bp->sp_task);
 }
 
-static void bnxt_cancel_sp_work(struct bnxt *bp)
-{
-	if (BNXT_PF(bp))
-		flush_workqueue(bnxt_pf_wq);
-	else
-		cancel_work_sync(&bp->sp_task);
-}
-
 static void bnxt_sched_reset(struct bnxt *bp, struct bnxt_rx_ring_info *rxr)
 {
 	if (!rxr->bnapi->in_reset) {
@@ -1767,8 +1763,12 @@
 
 		rc = -EIO;
 		if (rx_err & RX_CMPL_ERRORS_BUFFER_ERROR_MASK) {
-			netdev_warn(bp->dev, "RX buffer error %x\n", rx_err);
-			bnxt_sched_reset(bp, rxr);
+			bnapi->cp_ring.rx_buf_errors++;
+			if (!(bp->flags & BNXT_FLAG_CHIP_P5)) {
+				netdev_warn(bp->dev, "RX buffer error %x\n",
+					    rx_err);
+				bnxt_sched_reset(bp, rxr);
+			}
 		}
 		goto next_rx_no_len;
 	}
@@ -1991,6 +1991,9 @@
 	case ASYNC_EVENT_CMPL_EVENT_ID_RESET_NOTIFY: {
 		u32 data1 = le32_to_cpu(cmpl->event_data1);
 
+		if (!bp->fw_health)
+			goto async_event_process_exit;
+
 		bp->fw_reset_timestamp = jiffies;
 		bp->fw_reset_min_dsecs = cmpl->timestamp_lo;
 		if (!bp->fw_reset_min_dsecs)
@@ -3415,7 +3418,7 @@
  */
 void bnxt_set_ring_params(struct bnxt *bp)
 {
-	u32 ring_size, rx_size, rx_space;
+	u32 ring_size, rx_size, rx_space, max_rx_cmpl;
 	u32 agg_factor = 0, agg_ring_size = 0;
 
 	/* 8 for CRC and VLAN */
@@ -3471,7 +3474,15 @@
 	bp->tx_nr_pages = bnxt_calc_nr_ring_pages(ring_size, TX_DESC_CNT);
 	bp->tx_ring_mask = (bp->tx_nr_pages * TX_DESC_CNT) - 1;
 
-	ring_size = bp->rx_ring_size * (2 + agg_factor) + bp->tx_ring_size;
+	max_rx_cmpl = bp->rx_ring_size;
+	/* MAX TPA needs to be added because TPA_START completions are
+	 * immediately recycled, so the TPA completions are not bound by
+	 * the RX ring size.
+	 */
+	if (bp->flags & BNXT_FLAG_TPA)
+		max_rx_cmpl += bp->max_tpa;
+	/* RX and TPA completions are 32-byte, all others are 16-byte */
+	ring_size = max_rx_cmpl * 2 + agg_ring_size + bp->tx_ring_size;
 	bp->cp_ring_size = ring_size;
 
 	bp->cp_nr_pages = bnxt_calc_nr_ring_pages(ring_size, CP_DESC_CNT);
@@ -4183,7 +4194,8 @@
 	u32 bar_offset = BNXT_GRCPF_REG_CHIMP_COMM;
 	u16 dst = BNXT_HWRM_CHNL_CHIMP;
 
-	if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state))
+	if (BNXT_NO_FW_ACCESS(bp) &&
+	    le16_to_cpu(req->req_type) != HWRM_FUNC_RESET)
 		return -EBUSY;
 
 	if (msg_len > BNXT_HWRM_MAX_REQ_LEN) {
@@ -4434,8 +4446,9 @@
 			    FUNC_DRV_RGTR_REQ_ENABLES_VER);
 
 	req.os_type = cpu_to_le16(FUNC_DRV_RGTR_REQ_OS_TYPE_LINUX);
-	flags = FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE |
-		FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT;
+	flags = FUNC_DRV_RGTR_REQ_FLAGS_16BIT_VER_MODE;
+	if (bp->fw_cap & BNXT_FW_CAP_HOT_RESET)
+		flags |= FUNC_DRV_RGTR_REQ_FLAGS_HOT_RESET_SUPPORT;
 	if (bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY)
 		flags |= FUNC_DRV_RGTR_REQ_FLAGS_ERROR_RECOVERY_SUPPORT;
 	req.flags = cpu_to_le32(flags);
@@ -5517,7 +5530,7 @@
 	struct hwrm_ring_free_output *resp = bp->hwrm_cmd_resp_addr;
 	u16 error_code;
 
-	if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state))
+	if (BNXT_NO_FW_ACCESS(bp))
 		return 0;
 
 	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_RING_FREE, cmpl_ring_id, -1);
@@ -6170,7 +6183,7 @@
 		tmr = bnxt_usec_to_coal_tmr(bp, hw_coal->coal_ticks_irq);
 		val = clamp_t(u16, tmr, 1,
 			      coal_cap->cmpl_aggr_dma_tmr_during_int_max);
-		req->cmpl_aggr_dma_tmr_during_int = cpu_to_le16(tmr);
+		req->cmpl_aggr_dma_tmr_during_int = cpu_to_le16(val);
 		req->enables |=
 			cpu_to_le16(BNXT_COAL_CMPL_AGGR_TMR_DURING_INT_ENABLE);
 	}
@@ -6640,7 +6653,7 @@
 	int rc;
 
 	if (!mem_size)
-		return 0;
+		return -EINVAL;
 
 	ctx_pg->nr_pages = DIV_ROUND_UP(mem_size, BNXT_PAGE_SIZE);
 	if (ctx_pg->nr_pages > MAX_CTX_TOTAL_PAGES) {
@@ -6854,12 +6867,12 @@
 	}
 	ena |= FUNC_BACKING_STORE_CFG_REQ_DFLT_ENABLES;
 	rc = bnxt_hwrm_func_backing_store_cfg(bp, ena);
-	if (rc)
+	if (rc) {
 		netdev_err(bp->dev, "Failed configuring context mem, rc = %d.\n",
 			   rc);
-	else
-		ctx->flags |= BNXT_CTX_FLAG_INITED;
-
+		return rc;
+	}
+	ctx->flags |= BNXT_CTX_FLAG_INITED;
 	return 0;
 }
 
@@ -7092,14 +7105,6 @@
 	rc = _hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
 	if (rc)
 		goto err_recovery_out;
-	if (!fw_health) {
-		fw_health = kzalloc(sizeof(*fw_health), GFP_KERNEL);
-		bp->fw_health = fw_health;
-		if (!fw_health) {
-			rc = -ENOMEM;
-			goto err_recovery_out;
-		}
-	}
 	fw_health->flags = le32_to_cpu(resp->flags);
 	if ((fw_health->flags & ERROR_RECOVERY_QCFG_RESP_FLAGS_CO_CPU) &&
 	    !(bp->fw_cap & BNXT_FW_CAP_KONG_MB_CHNL)) {
@@ -7386,14 +7391,22 @@
 		pri2cos = &resp2->pri0_cos_queue_id;
 		for (i = 0; i < 8; i++) {
 			u8 queue_id = pri2cos[i];
+			u8 queue_idx;
 
+			/* Per port queue IDs start from 0, 10, 20, etc */
+			queue_idx = queue_id % 10;
+			if (queue_idx > BNXT_MAX_QUEUE) {
+				bp->pri2cos_valid = false;
+				goto qstats_done;
+			}
 			for (j = 0; j < bp->max_q; j++) {
 				if (bp->q_ids[j] == queue_id)
-					bp->pri2cos[i] = j;
+					bp->pri2cos_idx[i] = queue_idx;
 			}
 		}
 		bp->pri2cos_valid = 1;
 	}
+qstats_done:
 	mutex_unlock(&bp->hwrm_cmd_lock);
 	return rc;
 }
@@ -7432,7 +7445,7 @@
 
 	if (set_tpa)
 		tpa_flags = bp->flags & BNXT_FLAG_TPA;
-	else if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state))
+	else if (BNXT_NO_FW_ACCESS(bp))
 		return 0;
 	for (i = 0; i < bp->nr_vnics; i++) {
 		rc = bnxt_hwrm_vnic_set_tpa(bp, i, tpa_flags);
@@ -7873,7 +7886,7 @@
 	int tcs, i;
 
 	tcs = netdev_get_num_tc(dev);
-	if (tcs > 1) {
+	if (tcs) {
 		int i, off, count;
 
 		for (i = 0; i < tcs; i++) {
@@ -7912,10 +7925,18 @@
 	bp->irq_tbl[0].handler = bnxt_inta;
 }
 
+static int bnxt_init_int_mode(struct bnxt *bp);
+
 static int bnxt_setup_int_mode(struct bnxt *bp)
 {
 	int rc;
 
+	if (!bp->irq_tbl) {
+		rc = bnxt_init_int_mode(bp);
+		if (rc || !bp->irq_tbl)
+			return rc ?: -ENODEV;
+	}
+
 	if (bp->flags & BNXT_FLAG_USING_MSIX)
 		bnxt_setup_msix(bp);
 	else
@@ -8100,7 +8121,7 @@
 
 static int bnxt_init_int_mode(struct bnxt *bp)
 {
-	int rc = 0;
+	int rc = -ENODEV;
 
 	if (bp->flags & BNXT_FLAG_MSIX_CAP)
 		rc = bnxt_init_msix(bp);
@@ -8334,9 +8355,10 @@
 			txr->dev_state = BNXT_DEV_STATE_CLOSING;
 		}
 	}
+	/* Drop carrier first to prevent TX timeout */
+	netif_carrier_off(bp->dev);
 	/* Stop all TX queues */
 	netif_tx_disable(bp->dev);
-	netif_carrier_off(bp->dev);
 }
 
 void bnxt_tx_enable(struct bnxt *bp)
@@ -8362,6 +8384,11 @@
 		u16 fec;
 
 		netif_carrier_on(bp->dev);
+		speed = bnxt_fw_to_ethtool_speed(bp->link_info.link_speed);
+		if (speed == SPEED_UNKNOWN) {
+			netdev_info(bp->dev, "NIC Link is Up, speed unknown\n");
+			return;
+		}
 		if (bp->link_info.duplex == BNXT_LINK_DUPLEX_FULL)
 			duplex = "full";
 		else
@@ -8374,7 +8401,6 @@
 			flow_ctrl = "ON - receive";
 		else
 			flow_ctrl = "none";
-		speed = bnxt_fw_to_ethtool_speed(bp->link_info.link_speed);
 		netdev_info(bp->dev, "NIC Link is Up, %u Mbps %s duplex, Flow control: %s\n",
 			    speed, duplex, flow_ctrl);
 		if (bp->flags & BNXT_FLAG_EEE_CAP)
@@ -8730,7 +8756,8 @@
 {
 	struct hwrm_func_drv_if_change_output *resp = bp->hwrm_cmd_resp_addr;
 	struct hwrm_func_drv_if_change_input req = {0};
-	bool resc_reinit = false, fw_reset = false;
+	bool fw_reset = !bp->irq_tbl;
+	bool resc_reinit = false;
 	u32 flags = 0;
 	int rc;
 
@@ -8758,10 +8785,14 @@
 
 	if (test_bit(BNXT_STATE_IN_FW_RESET, &bp->state) && !fw_reset) {
 		netdev_err(bp->dev, "RESET_DONE not set during FW reset.\n");
+		set_bit(BNXT_STATE_ABORT_ERR, &bp->state);
 		return -ENODEV;
 	}
 	if (resc_reinit || fw_reset) {
 		if (fw_reset) {
+			bnxt_free_ctx_mem(bp);
+			kfree(bp->ctx);
+			bp->ctx = NULL;
 			rc = bnxt_fw_init_one(bp);
 			if (rc) {
 				set_bit(BNXT_STATE_ABORT_ERR, &bp->state);
@@ -8913,16 +8944,17 @@
 	struct hwrm_temp_monitor_query_input req = {0};
 	struct hwrm_temp_monitor_query_output *resp;
 	struct bnxt *bp = dev_get_drvdata(dev);
-	u32 temp = 0;
+	u32 len = 0;
+	int rc;
 
 	resp = bp->hwrm_cmd_resp_addr;
 	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_TEMP_MONITOR_QUERY, -1, -1);
 	mutex_lock(&bp->hwrm_cmd_lock);
-	if (!_hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT))
-		temp = resp->temp * 1000; /* display millidegree */
+	rc = _hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
+	if (!rc)
+		len = sprintf(buf, "%u\n", resp->temp * 1000); /* display millidegree */
 	mutex_unlock(&bp->hwrm_cmd_lock);
-
-	return sprintf(buf, "%u\n", temp);
+	return rc ?: len;
 }
 static SENSOR_DEVICE_ATTR(temp1_input, 0444, bnxt_show_temp, NULL, 0);
 
@@ -8942,7 +8974,16 @@
 
 static void bnxt_hwmon_open(struct bnxt *bp)
 {
+	struct hwrm_temp_monitor_query_input req = {0};
 	struct pci_dev *pdev = bp->pdev;
+	int rc;
+
+	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_TEMP_MONITOR_QUERY, -1, -1);
+	rc = hwrm_send_message_silent(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
+	if (rc == -EACCES || rc == -EOPNOTSUPP) {
+		bnxt_hwmon_close(bp);
+		return;
+	}
 
 	if (bp->hwmon_dev)
 		return;
@@ -9104,15 +9145,15 @@
 		}
 	}
 
-	bnxt_enable_napi(bp);
-	bnxt_debug_dev_init(bp);
-
 	rc = bnxt_init_nic(bp, irq_re_init);
 	if (rc) {
 		netdev_err(bp->dev, "bnxt_init_nic err: %x\n", rc);
-		goto open_err;
+		goto open_err_irq;
 	}
 
+	bnxt_enable_napi(bp);
+	bnxt_debug_dev_init(bp);
+
 	if (link_re_init) {
 		mutex_lock(&bp->link_lock);
 		rc = bnxt_update_phy_setting(bp);
@@ -9143,10 +9184,6 @@
 		bnxt_vf_reps_open(bp);
 	return 0;
 
-open_err:
-	bnxt_debug_dev_exit(bp);
-	bnxt_disable_napi(bp);
-
 open_err_irq:
 	bnxt_del_napi(bp);
 
@@ -9162,7 +9199,10 @@
 {
 	int rc = 0;
 
-	rc = __bnxt_open_nic(bp, irq_re_init, link_re_init);
+	if (test_bit(BNXT_STATE_ABORT_ERR, &bp->state))
+		rc = -EIO;
+	if (!rc)
+		rc = __bnxt_open_nic(bp, irq_re_init, link_re_init);
 	if (rc) {
 		netdev_err(bp->dev, "nic open fail (rc: %x)\n", rc);
 		dev_close(bp->dev);
@@ -9270,14 +9310,10 @@
 	bnxt_debug_dev_exit(bp);
 	bnxt_disable_napi(bp);
 	del_timer_sync(&bp->timer);
-	if (test_bit(BNXT_STATE_IN_FW_RESET, &bp->state) &&
-	    pci_is_enabled(bp->pdev))
-		pci_disable_device(bp->pdev);
-
 	bnxt_free_skbs(bp);
 
 	/* Save ring stats before shutdown */
-	if (bp->bnapi)
+	if (bp->bnapi && irq_re_init)
 		bnxt_get_ring_stats(bp, &bp->net_stats_prev);
 	if (irq_re_init) {
 		bnxt_free_irq(bp);
@@ -9747,6 +9783,7 @@
 					   netdev_features_t features)
 {
 	struct bnxt *bp = netdev_priv(dev);
+	netdev_features_t vlan_features;
 
 	if ((features & NETIF_F_NTUPLE) && !bnxt_rfs_capable(bp))
 		features &= ~NETIF_F_NTUPLE;
@@ -9763,12 +9800,14 @@
 	/* Both CTAG and STAG VLAN accelaration on the RX side have to be
 	 * turned on or off together.
 	 */
-	if ((features & (NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX)) !=
-	    (NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX)) {
+	vlan_features = features & (NETIF_F_HW_VLAN_CTAG_RX |
+				    NETIF_F_HW_VLAN_STAG_RX);
+	if (vlan_features != (NETIF_F_HW_VLAN_CTAG_RX |
+			      NETIF_F_HW_VLAN_STAG_RX)) {
 		if (dev->features & NETIF_F_HW_VLAN_CTAG_RX)
 			features &= ~(NETIF_F_HW_VLAN_CTAG_RX |
 				      NETIF_F_HW_VLAN_STAG_RX);
-		else
+		else if (vlan_features)
 			features |= NETIF_F_HW_VLAN_CTAG_RX |
 				    NETIF_F_HW_VLAN_STAG_RX;
 	}
@@ -9950,8 +9989,7 @@
 	struct bnxt_fw_health *fw_health = bp->fw_health;
 	u32 val;
 
-	if (!fw_health || !fw_health->enabled ||
-	    test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
+	if (!fw_health->enabled || test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
 		return;
 
 	if (fw_health->tmr_counter) {
@@ -9982,7 +10020,7 @@
 	struct bnxt *bp = from_timer(bp, t, timer);
 	struct net_device *dev = bp->dev;
 
-	if (!netif_running(dev))
+	if (!netif_running(dev) || !test_bit(BNXT_STATE_OPEN, &bp->state))
 		return;
 
 	if (atomic_read(&bp->intr_sem) != 0)
@@ -10050,8 +10088,15 @@
 {
 	__bnxt_close_nic(bp, true, false);
 	bnxt_ulp_irq_stop(bp);
+	/* When firmware is fatal state, disable PCI device to prevent
+	 * any potential bad DMAs before freeing kernel memory.
+	 */
+	if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state))
+		pci_disable_device(bp->pdev);
 	bnxt_clear_int_mode(bp);
 	bnxt_hwrm_func_drv_unrgtr(bp);
+	if (pci_is_enabled(bp->pdev))
+		pci_disable_device(bp->pdev);
 	bnxt_free_ctx_mem(bp);
 	kfree(bp->ctx);
 	bp->ctx = NULL;
@@ -10412,6 +10457,23 @@
 	bp->stats_coal_ticks = BNXT_DEF_STATS_COAL_TICKS;
 }
 
+static void bnxt_alloc_fw_health(struct bnxt *bp)
+{
+	if (bp->fw_health)
+		return;
+
+	if (!(bp->fw_cap & BNXT_FW_CAP_HOT_RESET) &&
+	    !(bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY))
+		return;
+
+	bp->fw_health = kzalloc(sizeof(*bp->fw_health), GFP_KERNEL);
+	if (!bp->fw_health) {
+		netdev_warn(bp->dev, "Failed to allocate fw_health\n");
+		bp->fw_cap &= ~BNXT_FW_CAP_HOT_RESET;
+		bp->fw_cap &= ~BNXT_FW_CAP_ERROR_RECOVERY;
+	}
+}
+
 static int bnxt_fw_init_one_p1(struct bnxt *bp)
 {
 	int rc;
@@ -10458,6 +10520,7 @@
 		netdev_warn(bp->dev, "hwrm query adv flow mgnt failure rc: %d\n",
 			    rc);
 
+	bnxt_alloc_fw_health(bp);
 	rc = bnxt_hwrm_error_recovery_qcfg(bp);
 	if (rc)
 		netdev_warn(bp->dev, "hwrm query error recovery failure rc: %d\n",
@@ -10543,6 +10606,12 @@
 	rc = bnxt_approve_mac(bp, bp->dev->dev_addr, false);
 	if (rc)
 		return rc;
+
+	/* In case fw capabilities have changed, destroy the unneeded
+	 * reporters and create newly capable ones.
+	 */
+	bnxt_dl_fw_reporters_destroy(bp, false);
+	bnxt_dl_fw_reporters_create(bp);
 	bnxt_fw_init_one_p3(bp);
 	return 0;
 }
@@ -10676,8 +10745,7 @@
 		bnxt_queue_fw_reset_work(bp, bp->fw_reset_min_dsecs * HZ / 10);
 		return;
 	case BNXT_FW_RESET_STATE_ENABLE_DEV:
-		if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state) &&
-		    bp->fw_health) {
+		if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state)) {
 			u32 val;
 
 			val = bnxt_fw_health_readl(bp,
@@ -10769,7 +10837,8 @@
 	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) != 0 &&
 	    dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)) != 0) {
 		dev_err(&pdev->dev, "System does not support DMA, aborting\n");
-		goto init_err_disable;
+		rc = -EIO;
+		goto init_err_release;
 	}
 
 	pci_set_master(pdev);
@@ -10862,13 +10931,13 @@
 	struct bnxt *bp = netdev_priv(dev);
 
 	if (netif_running(dev))
-		bnxt_close_nic(bp, false, false);
+		bnxt_close_nic(bp, true, false);
 
 	dev->mtu = new_mtu;
 	bnxt_set_ring_params(bp);
 
 	if (netif_running(dev))
-		return bnxt_open_nic(bp, false, false);
+		return bnxt_open_nic(bp, true, false);
 
 	return 0;
 }
@@ -10966,11 +11035,23 @@
 	struct flow_keys *keys1 = &f1->fkeys;
 	struct flow_keys *keys2 = &f2->fkeys;
 
-	if (keys1->addrs.v4addrs.src == keys2->addrs.v4addrs.src &&
-	    keys1->addrs.v4addrs.dst == keys2->addrs.v4addrs.dst &&
-	    keys1->ports.ports == keys2->ports.ports &&
-	    keys1->basic.ip_proto == keys2->basic.ip_proto &&
-	    keys1->basic.n_proto == keys2->basic.n_proto &&
+	if (keys1->basic.n_proto != keys2->basic.n_proto ||
+	    keys1->basic.ip_proto != keys2->basic.ip_proto)
+		return false;
+
+	if (keys1->basic.n_proto == htons(ETH_P_IP)) {
+		if (keys1->addrs.v4addrs.src != keys2->addrs.v4addrs.src ||
+		    keys1->addrs.v4addrs.dst != keys2->addrs.v4addrs.dst)
+			return false;
+	} else {
+		if (memcmp(&keys1->addrs.v6addrs.src, &keys2->addrs.v6addrs.src,
+			   sizeof(keys1->addrs.v6addrs.src)) ||
+		    memcmp(&keys1->addrs.v6addrs.dst, &keys2->addrs.v6addrs.dst,
+			   sizeof(keys1->addrs.v6addrs.dst)))
+			return false;
+	}
+
+	if (keys1->ports.ports == keys2->ports.ports &&
 	    keys1->control.flags == keys2->control.flags &&
 	    ether_addr_equal(f1->src_mac_addr, f2->src_mac_addr) &&
 	    ether_addr_equal(f1->dst_mac_addr, f2->dst_mac_addr))
@@ -11262,7 +11343,7 @@
 		return -EOPNOTSUPP;
 
 	/* The PF and it's VF-reps only support the switchdev framework */
-	if (!BNXT_PF(bp))
+	if (!BNXT_PF(bp) || !(bp->flags & BNXT_FLAG_DSN_VALID))
 		return -EOPNOTSUPP;
 
 	ppid->id_len = sizeof(bp->switch_id);
@@ -11318,17 +11399,21 @@
 	struct net_device *dev = pci_get_drvdata(pdev);
 	struct bnxt *bp = netdev_priv(dev);
 
-	if (BNXT_PF(bp)) {
+	if (BNXT_PF(bp))
 		bnxt_sriov_disable(bp);
-		bnxt_dl_unregister(bp);
-	}
 
 	pci_disable_pcie_error_reporting(pdev);
 	unregister_netdev(dev);
-	bnxt_shutdown_tc(bp);
-	bnxt_cancel_sp_work(bp);
+	clear_bit(BNXT_STATE_IN_FW_RESET, &bp->state);
+	/* Flush any pending tasks */
+	cancel_work_sync(&bp->sp_task);
+	cancel_delayed_work_sync(&bp->fw_reset_task);
 	bp->sp_event = 0;
 
+	bnxt_dl_fw_reporters_destroy(bp, true);
+	bnxt_dl_unregister(bp);
+	bnxt_shutdown_tc(bp);
+
 	bnxt_clear_int_mode(bp);
 	bnxt_hwrm_func_drv_unrgtr(bp);
 	bnxt_free_hwrm_resources(bp);
@@ -11337,6 +11422,8 @@
 	bnxt_dcb_free(bp);
 	kfree(bp->edev);
 	bp->edev = NULL;
+	kfree(bp->fw_health);
+	bp->fw_health = NULL;
 	bnxt_cleanup_pci(bp);
 	bnxt_free_ctx_mem(bp);
 	kfree(bp->ctx);
@@ -11552,6 +11639,10 @@
 		bp->rx_nr_rings++;
 		bp->cp_nr_rings++;
 	}
+	if (rc) {
+		bp->tx_nr_rings = 0;
+		bp->rx_nr_rings = 0;
+	}
 	return rc;
 }
 
@@ -11652,6 +11743,7 @@
 	put_unaligned_le32(dw, &dsn[0]);
 	pci_read_config_dword(pdev, pos + 4, &dw);
 	put_unaligned_le32(dw, &dsn[4]);
+	bp->flags |= BNXT_FLAG_DSN_VALID;
 	return 0;
 }
 
@@ -11668,6 +11760,14 @@
 	if (version_printed++ == 0)
 		pr_info("%s", version);
 
+	/* Clear any pending DMA transactions from crash kernel
+	 * while loading driver in capture kernel.
+	 */
+	if (is_kdump_kernel()) {
+		pci_clear_master(pdev);
+		pcie_flr(pdev);
+	}
+
 	max_irqs = bnxt_get_max_irq(pdev);
 	dev = alloc_etherdev_mq(sizeof(*bp), max_irqs);
 	if (!dev)
@@ -11763,9 +11863,7 @@
 
 	if (BNXT_PF(bp)) {
 		/* Read the adapter's DSN to use as the eswitch switch_id */
-		rc = bnxt_pcie_dsn_get(bp, bp->switch_id);
-		if (rc)
-			goto init_err_pci_clean;
+		bnxt_pcie_dsn_get(bp, bp->switch_id);
 	}
 
 	/* MTU range: 60 - FW defined max */
@@ -11806,39 +11904,45 @@
 				create_singlethread_workqueue("bnxt_pf_wq");
 			if (!bnxt_pf_wq) {
 				dev_err(&pdev->dev, "Unable to create workqueue.\n");
+				rc = -ENOMEM;
 				goto init_err_pci_clean;
 			}
 		}
 		bnxt_init_tc(bp);
 	}
 
+	bnxt_dl_register(bp);
+
 	rc = register_netdev(dev);
 	if (rc)
-		goto init_err_cleanup_tc;
+		goto init_err_cleanup;
 
 	if (BNXT_PF(bp))
-		bnxt_dl_register(bp);
+		devlink_port_type_eth_set(&bp->dl_port, bp->dev);
+	bnxt_dl_fw_reporters_create(bp);
 
 	netdev_info(dev, "%s found at mem %lx, node addr %pM\n",
 		    board_info[ent->driver_data].name,
 		    (long)pci_resource_start(pdev, 0), dev->dev_addr);
 	pcie_print_link_status(pdev);
 
+	pci_save_state(pdev);
 	return 0;
 
-init_err_cleanup_tc:
+init_err_cleanup:
+	bnxt_dl_unregister(bp);
 	bnxt_shutdown_tc(bp);
 	bnxt_clear_int_mode(bp);
 
 init_err_pci_clean:
 	bnxt_free_hwrm_short_cmd_req(bp);
 	bnxt_free_hwrm_resources(bp);
-	bnxt_free_ctx_mem(bp);
-	kfree(bp->ctx);
-	bp->ctx = NULL;
 	kfree(bp->fw_health);
 	bp->fw_health = NULL;
 	bnxt_cleanup_pci(bp);
+	bnxt_free_ctx_mem(bp);
+	kfree(bp->ctx);
+	bp->ctx = NULL;
 
 init_err_free:
 	free_netdev(dev);
@@ -11862,10 +11966,10 @@
 		dev_close(dev);
 
 	bnxt_ulp_shutdown(bp);
+	bnxt_clear_int_mode(bp);
+	pci_disable_device(pdev);
 
 	if (system_state == SYSTEM_POWER_OFF) {
-		bnxt_clear_int_mode(bp);
-		pci_disable_device(pdev);
 		pci_wake_from_d3(pdev, bp->wol);
 		pci_set_power_state(pdev, PCI_D3hot);
 	}
@@ -11954,6 +12058,9 @@
 		return PCI_ERS_RESULT_DISCONNECT;
 	}
 
+	if (state == pci_channel_io_frozen)
+		set_bit(BNXT_STATE_PCI_CHANNEL_IO_FROZEN, &bp->state);
+
 	if (netif_running(netdev))
 		bnxt_close(netdev);
 
@@ -11977,7 +12084,7 @@
 {
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct bnxt *bp = netdev_priv(netdev);
-	int err = 0;
+	int err = 0, off;
 	pci_ers_result_t result = PCI_ERS_RESULT_DISCONNECT;
 
 	netdev_info(bp->dev, "PCI Slot Reset\n");
@@ -11989,6 +12096,22 @@
 			"Cannot re-enable PCI device after reset.\n");
 	} else {
 		pci_set_master(pdev);
+		/* Upon fatal error, our device internal logic that latches to
+		 * BAR value is getting reset and will restore only upon
+		 * rewritting the BARs.
+		 *
+		 * As pci_restore_state() does not re-write the BARs if the
+		 * value is same as saved value earlier, driver needs to
+		 * write the BARs to 0 to force restore, in case of fatal error.
+		 */
+		if (test_and_clear_bit(BNXT_STATE_PCI_CHANNEL_IO_FROZEN,
+				       &bp->state)) {
+			for (off = PCI_BASE_ADDRESS_0;
+			     off <= PCI_BASE_ADDRESS_5; off += 4)
+				pci_write_config_dword(bp->pdev, off, 0);
+		}
+		pci_restore_state(pdev);
+		pci_save_state(pdev);
 
 		err = bnxt_hwrm_func_reset(bp);
 		if (!err && netif_running(netdev))
@@ -12000,12 +12123,15 @@
 		}
 	}
 
-	if (result != PCI_ERS_RESULT_RECOVERED && netif_running(netdev))
-		dev_close(netdev);
+	if (result != PCI_ERS_RESULT_RECOVERED) {
+		if (netif_running(netdev))
+			dev_close(netdev);
+		pci_disable_device(pdev);
+	}
 
 	rtnl_unlock();
 
-	return PCI_ERS_RESULT_RECOVERED;
+	return result;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt.h
@@ -927,6 +927,7 @@
 	dma_addr_t		hw_stats_map;
 	u32			hw_stats_ctx_id;
 	u64			rx_l4_csum_errors;
+	u64			rx_buf_errors;
 	u64			missed_irqs;
 
 	struct bnxt_ring_struct	cp_ring_struct;
@@ -1057,7 +1058,6 @@
 #define BNXT_VF_LINK_FORCED	0x4
 #define BNXT_VF_LINK_UP		0x8
 #define BNXT_VF_TRUST		0x10
-	u32	func_flags; /* func cfg flags */
 	u32	min_tx_rate;
 	u32	max_tx_rate;
 	void	*hwrm_cmd_req_addr;
@@ -1509,6 +1509,7 @@
 	#define BNXT_FLAG_NO_AGG_RINGS	0x20000
 	#define BNXT_FLAG_RX_PAGE_MODE	0x40000
 	#define BNXT_FLAG_MULTI_HOST	0x100000
+	#define BNXT_FLAG_DSN_VALID	0x200000
 	#define BNXT_FLAG_DOUBLE_DB	0x400000
 	#define BNXT_FLAG_CHIP_NITRO_A0	0x1000000
 	#define BNXT_FLAG_DIM		0x2000000
@@ -1626,6 +1627,11 @@
 #define BNXT_STATE_IN_FW_RESET	4
 #define BNXT_STATE_ABORT_ERR	5
 #define BNXT_STATE_FW_FATAL_COND	6
+#define BNXT_STATE_PCI_CHANNEL_IO_FROZEN	8
+
+#define BNXT_NO_FW_ACCESS(bp)					\
+	(test_bit(BNXT_STATE_FW_FATAL_COND, &(bp)->state) ||	\
+	 pci_channel_offline((bp)->pdev))
 
 	struct bnxt_irq	*irq_tbl;
 	int			total_irqs;
@@ -1657,6 +1663,7 @@
 	#define BNXT_FW_CAP_PCIE_STATS_SUPPORTED	0x00020000
 	#define BNXT_FW_CAP_EXT_STATS_SUPPORTED		0x00040000
 	#define BNXT_FW_CAP_ERR_RECOVER_RELOAD		0x00100000
+	#define BNXT_FW_CAP_HOT_RESET			0x00200000
 
 #define BNXT_NEW_RM(bp)		((bp)->fw_cap & BNXT_FW_CAP_NEW_RM)
 	u32			hwrm_spec_code;
@@ -1685,7 +1692,7 @@
 	u16			fw_rx_stats_ext_size;
 	u16			fw_tx_stats_ext_size;
 	u16			hw_ring_stats_size;
-	u8			pri2cos[8];
+	u8			pri2cos_idx[8];
 	u8			pri2cos_valid;
 
 	u16			hwrm_max_req_len;
@@ -1902,9 +1909,6 @@
 	case HWRM_CFA_ENCAP_RECORD_FREE:
 	case HWRM_CFA_DECAP_FILTER_ALLOC:
 	case HWRM_CFA_DECAP_FILTER_FREE:
-	case HWRM_CFA_NTUPLE_FILTER_ALLOC:
-	case HWRM_CFA_NTUPLE_FILTER_FREE:
-	case HWRM_CFA_NTUPLE_FILTER_CFG:
 	case HWRM_CFA_EM_FLOW_ALLOC:
 	case HWRM_CFA_EM_FLOW_FREE:
 	case HWRM_CFA_EM_FLOW_CFG:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
@@ -479,24 +479,26 @@
 {
 	struct bnxt *bp = netdev_priv(dev);
 	struct ieee_ets *my_ets = bp->ieee_ets;
+	int rc;
 
 	ets->ets_cap = bp->max_tc;
 
 	if (!my_ets) {
-		int rc;
-
 		if (bp->dcbx_cap & DCB_CAP_DCBX_HOST)
 			return 0;
 
 		my_ets = kzalloc(sizeof(*my_ets), GFP_KERNEL);
 		if (!my_ets)
-			return 0;
+			return -ENOMEM;
 		rc = bnxt_hwrm_queue_cos2bw_qcfg(bp, my_ets);
 		if (rc)
-			return 0;
+			goto error;
 		rc = bnxt_hwrm_queue_pri2cos_qcfg(bp, my_ets);
 		if (rc)
-			return 0;
+			goto error;
+
+		/* cache result */
+		bp->ieee_ets = my_ets;
 	}
 
 	ets->cbs = my_ets->cbs;
@@ -505,6 +507,9 @@
 	memcpy(ets->tc_tsa, my_ets->tc_tsa, sizeof(ets->tc_tsa));
 	memcpy(ets->prio_tc, my_ets->prio_tc, sizeof(ets->prio_tc));
 	return 0;
+error:
+	kfree(my_ets);
+	return rc;
 }
 
 static int bnxt_dcbnl_ieee_setets(struct net_device *dev, struct ieee_ets *ets)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
@@ -19,11 +19,10 @@
 				     struct devlink_fmsg *fmsg)
 {
 	struct bnxt *bp = devlink_health_reporter_priv(reporter);
-	struct bnxt_fw_health *health = bp->fw_health;
 	u32 val, health_status;
 	int rc;
 
-	if (!health || test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
+	if (test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
 		return 0;
 
 	val = bnxt_fw_health_readl(bp, BNXT_FW_HEALTH_REG);
@@ -103,21 +102,15 @@
 	.recover = bnxt_fw_fatal_recover,
 };
 
-static void bnxt_dl_fw_reporters_create(struct bnxt *bp)
+void bnxt_dl_fw_reporters_create(struct bnxt *bp)
 {
 	struct bnxt_fw_health *health = bp->fw_health;
 
-	if (!health)
+	if (!bp->dl || !health)
 		return;
 
-	health->fw_reporter =
-		devlink_health_reporter_create(bp->dl, &bnxt_dl_fw_reporter_ops,
-					       0, false, bp);
-	if (IS_ERR(health->fw_reporter)) {
-		netdev_warn(bp->dev, "Failed to create FW health reporter, rc = %ld\n",
-			    PTR_ERR(health->fw_reporter));
-		health->fw_reporter = NULL;
-	}
+	if (!(bp->fw_cap & BNXT_FW_CAP_HOT_RESET) || health->fw_reset_reporter)
+		goto err_recovery;
 
 	health->fw_reset_reporter =
 		devlink_health_reporter_create(bp->dl,
@@ -127,8 +120,30 @@
 		netdev_warn(bp->dev, "Failed to create FW fatal health reporter, rc = %ld\n",
 			    PTR_ERR(health->fw_reset_reporter));
 		health->fw_reset_reporter = NULL;
+		bp->fw_cap &= ~BNXT_FW_CAP_HOT_RESET;
+	}
+
+err_recovery:
+	if (!(bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY))
+		return;
+
+	if (!health->fw_reporter) {
+		health->fw_reporter =
+			devlink_health_reporter_create(bp->dl,
+						       &bnxt_dl_fw_reporter_ops,
+						       0, false, bp);
+		if (IS_ERR(health->fw_reporter)) {
+			netdev_warn(bp->dev, "Failed to create FW health reporter, rc = %ld\n",
+				    PTR_ERR(health->fw_reporter));
+			health->fw_reporter = NULL;
+			bp->fw_cap &= ~BNXT_FW_CAP_ERROR_RECOVERY;
+			return;
+		}
 	}
 
+	if (health->fw_fatal_reporter)
+		return;
+
 	health->fw_fatal_reporter =
 		devlink_health_reporter_create(bp->dl,
 					       &bnxt_dl_fw_fatal_reporter_ops,
@@ -137,24 +152,35 @@
 		netdev_warn(bp->dev, "Failed to create FW fatal health reporter, rc = %ld\n",
 			    PTR_ERR(health->fw_fatal_reporter));
 		health->fw_fatal_reporter = NULL;
+		bp->fw_cap &= ~BNXT_FW_CAP_ERROR_RECOVERY;
 	}
 }
 
-static void bnxt_dl_fw_reporters_destroy(struct bnxt *bp)
+void bnxt_dl_fw_reporters_destroy(struct bnxt *bp, bool all)
 {
 	struct bnxt_fw_health *health = bp->fw_health;
 
-	if (!health)
+	if (!bp->dl || !health)
 		return;
 
-	if (health->fw_reporter)
-		devlink_health_reporter_destroy(health->fw_reporter);
-
-	if (health->fw_reset_reporter)
+	if ((all || !(bp->fw_cap & BNXT_FW_CAP_HOT_RESET)) &&
+	    health->fw_reset_reporter) {
 		devlink_health_reporter_destroy(health->fw_reset_reporter);
+		health->fw_reset_reporter = NULL;
+	}
 
-	if (health->fw_fatal_reporter)
+	if ((bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY) && !all)
+		return;
+
+	if (health->fw_reporter) {
+		devlink_health_reporter_destroy(health->fw_reporter);
+		health->fw_reporter = NULL;
+	}
+
+	if (health->fw_fatal_reporter) {
 		devlink_health_reporter_destroy(health->fw_fatal_reporter);
+		health->fw_fatal_reporter = NULL;
+	}
 }
 
 void bnxt_devlink_health_report(struct bnxt *bp, unsigned long event)
@@ -162,9 +188,6 @@
 	struct bnxt_fw_health *fw_health = bp->fw_health;
 	struct bnxt_fw_reporter_ctx fw_reporter_ctx;
 
-	if (!fw_health)
-		return;
-
 	fw_reporter_ctx.sp_event = event;
 	switch (event) {
 	case BNXT_FW_RESET_NOTIFY_SP_EVENT:
@@ -203,6 +226,8 @@
 #endif /* CONFIG_BNXT_SRIOV */
 };
 
+static const struct devlink_ops bnxt_vf_dl_ops;
+
 enum bnxt_dl_param_id {
 	BNXT_DEVLINK_PARAM_ID_BASE = DEVLINK_PARAM_GENERIC_ID_MAX,
 	BNXT_DEVLINK_PARAM_ID_GRE_VER_CHECK,
@@ -311,10 +336,17 @@
 	} else {
 		rc = hwrm_send_message_silent(bp, msg, msg_len,
 					      HWRM_CMD_TIMEOUT);
-		if (!rc)
+		if (!rc) {
 			bnxt_copy_from_nvm_data(val, data,
 						nvm_param.nvm_num_bits,
 						nvm_param.dl_num_bytes);
+		} else {
+			struct hwrm_err_output *resp = bp->hwrm_cmd_resp_addr;
+
+			if (resp->cmd_err ==
+				NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST)
+				rc = -EOPNOTSUPP;
+		}
 	}
 	dma_free_coherent(&bp->pdev->dev, sizeof(*data), data, data_dma_addr);
 	if (rc == -EACCES)
@@ -409,7 +441,10 @@
 		return -ENOTSUPP;
 	}
 
-	dl = devlink_alloc(&bnxt_dl_ops, sizeof(struct bnxt_dl));
+	if (BNXT_PF(bp))
+		dl = devlink_alloc(&bnxt_dl_ops, sizeof(struct bnxt_dl));
+	else
+		dl = devlink_alloc(&bnxt_vf_dl_ops, sizeof(struct bnxt_dl));
 	if (!dl) {
 		netdev_warn(bp->dev, "devlink_alloc failed");
 		return -ENOMEM;
@@ -428,6 +463,9 @@
 		goto err_dl_free;
 	}
 
+	if (!BNXT_PF(bp))
+		return 0;
+
 	rc = devlink_params_register(dl, bnxt_dl_params,
 				     ARRAY_SIZE(bnxt_dl_params));
 	if (rc) {
@@ -444,7 +482,6 @@
 		netdev_err(bp->dev, "devlink_port_register failed");
 		goto err_dl_param_unreg;
 	}
-	devlink_port_type_eth_set(&bp->dl_port, bp->dev);
 
 	rc = devlink_port_params_register(&bp->dl_port, bnxt_dl_port_params,
 					  ARRAY_SIZE(bnxt_dl_port_params));
@@ -455,8 +492,6 @@
 
 	devlink_params_publish(dl);
 
-	bnxt_dl_fw_reporters_create(bp);
-
 	return 0;
 
 err_dl_port_unreg:
@@ -479,12 +514,14 @@
 	if (!dl)
 		return;
 
-	bnxt_dl_fw_reporters_destroy(bp);
-	devlink_port_params_unregister(&bp->dl_port, bnxt_dl_port_params,
-				       ARRAY_SIZE(bnxt_dl_port_params));
-	devlink_port_unregister(&bp->dl_port);
-	devlink_params_unregister(dl, bnxt_dl_params,
-				  ARRAY_SIZE(bnxt_dl_params));
+	if (BNXT_PF(bp)) {
+		devlink_port_params_unregister(&bp->dl_port,
+					       bnxt_dl_port_params,
+					       ARRAY_SIZE(bnxt_dl_port_params));
+		devlink_port_unregister(&bp->dl_port);
+		devlink_params_unregister(dl, bnxt_dl_params,
+					  ARRAY_SIZE(bnxt_dl_params));
+	}
 	devlink_unregister(dl);
 	devlink_free(dl);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h
@@ -39,7 +39,7 @@
 #define NVM_OFF_DIS_GRE_VER_CHECK	171
 #define NVM_OFF_ENABLE_SRIOV		401
 
-#define BNXT_MSIX_VEC_MAX	1280
+#define BNXT_MSIX_VEC_MAX	512
 #define BNXT_MSIX_VEC_MIN_MAX	128
 
 enum bnxt_nvm_dir_type {
@@ -57,6 +57,8 @@
 };
 
 void bnxt_devlink_health_report(struct bnxt *bp, unsigned long event);
+void bnxt_dl_fw_reporters_create(struct bnxt *bp);
+void bnxt_dl_fw_reporters_destroy(struct bnxt *bp, bool all);
 int bnxt_dl_register(struct bnxt *bp);
 void bnxt_dl_unregister(struct bnxt *bp);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -173,6 +173,7 @@
 
 static const char * const bnxt_ring_sw_stats_str[] = {
 	"rx_l4_csum_errors",
+	"rx_buf_errors",
 	"missed_irqs",
 };
 
@@ -552,6 +553,7 @@
 		for (k = 0; k < stat_fields; j++, k++)
 			buf[j] = le64_to_cpu(hw_stats[k]);
 		buf[j++] = cpr->rx_l4_csum_errors;
+		buf[j++] = cpr->rx_buf_errors;
 		buf[j++] = cpr->missed_irqs;
 
 		bnxt_sw_func_stats[RX_TOTAL_DISCARDS].counter +=
@@ -587,25 +589,25 @@
 		if (bp->pri2cos_valid) {
 			for (i = 0; i < 8; i++, j++) {
 				long n = bnxt_rx_bytes_pri_arr[i].base_off +
-					 bp->pri2cos[i];
+					 bp->pri2cos_idx[i];
 
 				buf[j] = le64_to_cpu(*(rx_port_stats_ext + n));
 			}
 			for (i = 0; i < 8; i++, j++) {
 				long n = bnxt_rx_pkts_pri_arr[i].base_off +
-					 bp->pri2cos[i];
+					 bp->pri2cos_idx[i];
 
 				buf[j] = le64_to_cpu(*(rx_port_stats_ext + n));
 			}
 			for (i = 0; i < 8; i++, j++) {
 				long n = bnxt_tx_bytes_pri_arr[i].base_off +
-					 bp->pri2cos[i];
+					 bp->pri2cos_idx[i];
 
 				buf[j] = le64_to_cpu(*(tx_port_stats_ext + n));
 			}
 			for (i = 0; i < 8; i++, j++) {
 				long n = bnxt_tx_pkts_pri_arr[i].base_off +
-					 bp->pri2cos[i];
+					 bp->pri2cos_idx[i];
 
 				buf[j] = le64_to_cpu(*(tx_port_stats_ext + n));
 			}
@@ -767,7 +769,7 @@
 	int max_tx_sch_inputs;
 
 	/* Get the most up-to-date max_tx_sch_inputs. */
-	if (BNXT_NEW_RM(bp))
+	if (netif_running(dev) && BNXT_NEW_RM(bp))
 		bnxt_hwrm_func_resc_qcaps(bp, false);
 	max_tx_sch_inputs = hw_resc->max_tx_sch_inputs;
 
@@ -1663,9 +1665,12 @@
 	if (!BNXT_SINGLE_PF(bp))
 		return -EOPNOTSUPP;
 
+	mutex_lock(&bp->link_lock);
 	if (epause->autoneg) {
-		if (!(link_info->autoneg & BNXT_AUTONEG_SPEED))
-			return -EINVAL;
+		if (!(link_info->autoneg & BNXT_AUTONEG_SPEED)) {
+			rc = -EINVAL;
+			goto pause_exit;
+		}
 
 		link_info->autoneg |= BNXT_AUTONEG_FLOW_CTRL;
 		if (bp->hwrm_spec_code >= 0x10201)
@@ -1688,6 +1693,9 @@
 
 	if (netif_running(dev))
 		rc = bnxt_hwrm_set_pause(bp);
+
+pause_exit:
+	mutex_unlock(&bp->link_lock);
 	return rc;
 }
 
@@ -2003,8 +2011,8 @@
 	struct hwrm_nvm_install_update_output *resp = bp->hwrm_cmd_resp_addr;
 	struct hwrm_nvm_install_update_input install = {0};
 	const struct firmware *fw;
-	int rc, hwrm_err = 0;
 	u32 item_len;
+	int rc = 0;
 	u16 index;
 
 	bnxt_hwrm_fw_set_time(bp);
@@ -2048,15 +2056,14 @@
 			memcpy(kmem, fw->data, fw->size);
 			modify.host_src_addr = cpu_to_le64(dma_handle);
 
-			hwrm_err = hwrm_send_message(bp, &modify,
-						     sizeof(modify),
-						     FLASH_PACKAGE_TIMEOUT);
+			rc = hwrm_send_message(bp, &modify, sizeof(modify),
+					       FLASH_PACKAGE_TIMEOUT);
 			dma_free_coherent(&bp->pdev->dev, fw->size, kmem,
 					  dma_handle);
 		}
 	}
 	release_firmware(fw);
-	if (rc || hwrm_err)
+	if (rc)
 		goto err_exit;
 
 	if ((install_type & 0xffff) == 0)
@@ -2065,20 +2072,19 @@
 	install.install_type = cpu_to_le32(install_type);
 
 	mutex_lock(&bp->hwrm_cmd_lock);
-	hwrm_err = _hwrm_send_message(bp, &install, sizeof(install),
-				      INSTALL_PACKAGE_TIMEOUT);
-	if (hwrm_err) {
+	rc = _hwrm_send_message(bp, &install, sizeof(install),
+				INSTALL_PACKAGE_TIMEOUT);
+	if (rc) {
 		u8 error_code = ((struct hwrm_err_output *)resp)->cmd_err;
 
 		if (resp->error_code && error_code ==
 		    NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR) {
 			install.flags |= cpu_to_le16(
 			       NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG);
-			hwrm_err = _hwrm_send_message(bp, &install,
-						      sizeof(install),
-						      INSTALL_PACKAGE_TIMEOUT);
+			rc = _hwrm_send_message(bp, &install, sizeof(install),
+						INSTALL_PACKAGE_TIMEOUT);
 		}
-		if (hwrm_err)
+		if (rc)
 			goto flash_pkg_exit;
 	}
 
@@ -2090,7 +2096,7 @@
 flash_pkg_exit:
 	mutex_unlock(&bp->hwrm_cmd_lock);
 err_exit:
-	if (hwrm_err == -EACCES)
+	if (rc == -EACCES)
 		bnxt_print_admin_err(bp);
 	return rc;
 }
@@ -2158,6 +2164,9 @@
 	if (rc != 0)
 		return rc;
 
+	if (!dir_entries || !entry_length)
+		return -EIO;
+
 	/* Insert 2 bytes of directory info (count and size of entries) */
 	if (len < 2)
 		return -EINVAL;
@@ -2391,8 +2400,7 @@
 	struct bnxt *bp = netdev_priv(dev);
 	struct ethtool_eee *eee = &bp->eee;
 	struct bnxt_link_info *link_info = &bp->link_info;
-	u32 advertising =
-		 _bnxt_fw_to_ethtool_adv_spds(link_info->advertising, 0);
+	u32 advertising;
 	int rc = 0;
 
 	if (!BNXT_SINGLE_PF(bp))
@@ -2401,19 +2409,23 @@
 	if (!(bp->flags & BNXT_FLAG_EEE_CAP))
 		return -EOPNOTSUPP;
 
+	mutex_lock(&bp->link_lock);
+	advertising = _bnxt_fw_to_ethtool_adv_spds(link_info->advertising, 0);
 	if (!edata->eee_enabled)
 		goto eee_ok;
 
 	if (!(link_info->autoneg & BNXT_AUTONEG_SPEED)) {
 		netdev_warn(dev, "EEE requires autoneg\n");
-		return -EINVAL;
+		rc = -EINVAL;
+		goto eee_exit;
 	}
 	if (edata->tx_lpi_enabled) {
 		if (bp->lpi_tmr_hi && (edata->tx_lpi_timer > bp->lpi_tmr_hi ||
 				       edata->tx_lpi_timer < bp->lpi_tmr_lo)) {
 			netdev_warn(dev, "Valid LPI timer range is %d and %d microsecs\n",
 				    bp->lpi_tmr_lo, bp->lpi_tmr_hi);
-			return -EINVAL;
+			rc = -EINVAL;
+			goto eee_exit;
 		} else if (!bp->lpi_tmr_hi) {
 			edata->tx_lpi_timer = eee->tx_lpi_timer;
 		}
@@ -2423,7 +2435,8 @@
 	} else if (edata->advertised & ~advertising) {
 		netdev_warn(dev, "EEE advertised %x must be a subset of autoneg advertised speeds %x\n",
 			    edata->advertised, advertising);
-		return -EINVAL;
+		rc = -EINVAL;
+		goto eee_exit;
 	}
 
 	eee->advertised = edata->advertised;
@@ -2435,6 +2448,8 @@
 	if (netif_running(dev))
 		rc = bnxt_hwrm_set_link_setting(bp, false, true);
 
+eee_exit:
+	mutex_unlock(&bp->link_lock);
 	return rc;
 }
 
@@ -2569,7 +2584,7 @@
 	/* Read A2 portion of the EEPROM */
 	if (length) {
 		start -= ETH_MODULE_SFF_8436_LEN;
-		rc = bnxt_read_sfp_module_eeprom_info(bp, I2C_DEV_ADDR_A2, 1,
+		rc = bnxt_read_sfp_module_eeprom_info(bp, I2C_DEV_ADDR_A2, 0,
 						      start, length, data);
 	}
 	return rc;
@@ -3062,8 +3077,15 @@
 			}
 		}
 
-		if (info->dest_buf)
-			memcpy(info->dest_buf + off, dma_buf, len);
+		if (info->dest_buf) {
+			if ((info->seg_start + off + len) <=
+			    BNXT_COREDUMP_BUF_LEN(info->buf_len)) {
+				memcpy(info->dest_buf + off, dma_buf, len);
+			} else {
+				rc = -ENOBUFS;
+				break;
+			}
+		}
 
 		if (cmn_req->req_type ==
 				cpu_to_le16(HWRM_DBG_COREDUMP_RETRIEVE))
@@ -3117,7 +3139,7 @@
 
 static int bnxt_hwrm_dbg_coredump_retrieve(struct bnxt *bp, u16 component_id,
 					   u16 segment_id, u32 *seg_len,
-					   void *buf, u32 offset)
+					   void *buf, u32 buf_len, u32 offset)
 {
 	struct hwrm_dbg_coredump_retrieve_input req = {0};
 	struct bnxt_hwrm_dbg_dma_info info = {NULL};
@@ -3132,8 +3154,11 @@
 				seq_no);
 	info.data_len_off = offsetof(struct hwrm_dbg_coredump_retrieve_output,
 				     data_len);
-	if (buf)
+	if (buf) {
 		info.dest_buf = buf + offset;
+		info.buf_len = buf_len;
+		info.seg_start = offset;
+	}
 
 	rc = bnxt_hwrm_dbg_dma_data(bp, &req, sizeof(req), &info);
 	if (!rc)
@@ -3223,14 +3248,17 @@
 static int bnxt_get_coredump(struct bnxt *bp, void *buf, u32 *dump_len)
 {
 	u32 ver_get_resp_len = sizeof(struct hwrm_ver_get_output);
+	u32 offset = 0, seg_hdr_len, seg_record_len, buf_len = 0;
 	struct coredump_segment_record *seg_record = NULL;
-	u32 offset = 0, seg_hdr_len, seg_record_len;
 	struct bnxt_coredump_segment_hdr seg_hdr;
 	struct bnxt_coredump coredump = {NULL};
 	time64_t start_time;
 	u16 start_utc;
 	int rc = 0, i;
 
+	if (buf)
+		buf_len = *dump_len;
+
 	start_time = ktime_get_real_seconds();
 	start_utc = sys_tz.tz_minuteswest * 60;
 	seg_hdr_len = sizeof(seg_hdr);
@@ -3263,6 +3291,12 @@
 		u32 duration = 0, seg_len = 0;
 		unsigned long start, end;
 
+		if (buf && ((offset + seg_hdr_len) >
+			    BNXT_COREDUMP_BUF_LEN(buf_len))) {
+			rc = -ENOBUFS;
+			goto err;
+		}
+
 		start = jiffies;
 
 		rc = bnxt_hwrm_dbg_coredump_initiate(bp, comp_id, seg_id);
@@ -3275,9 +3309,11 @@
 
 		/* Write segment data into the buffer */
 		rc = bnxt_hwrm_dbg_coredump_retrieve(bp, comp_id, seg_id,
-						     &seg_len, buf,
+						     &seg_len, buf, buf_len,
 						     offset + seg_hdr_len);
-		if (rc)
+		if (rc && rc == -ENOBUFS)
+			goto err;
+		else if (rc)
 			netdev_err(bp->dev,
 				   "Failed to retrieve coredump for seg = %d\n",
 				   seg_record->segment_id);
@@ -3307,7 +3343,8 @@
 					  rc);
 	kfree(coredump.data);
 	*dump_len += sizeof(struct bnxt_coredump_record);
-
+	if (rc == -ENOBUFS)
+		netdev_err(bp->dev, "Firmware returned large coredump buffer");
 	return rc;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h
@@ -31,6 +31,8 @@
 	u16		total_segs;
 };
 
+#define BNXT_COREDUMP_BUF_LEN(len) ((len) - sizeof(struct bnxt_coredump_record))
+
 struct bnxt_hwrm_dbg_dma_info {
 	void *dest_buf;
 	int dest_buf_size;
@@ -38,6 +40,8 @@
 	u16 seq_off;
 	u16 data_len_off;
 	u16 segs;
+	u32 seg_start;
+	u32 buf_len;
 };
 
 struct hwrm_dbg_cmn_input {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
@@ -85,11 +85,10 @@
 	if (old_setting == setting)
 		return 0;
 
-	func_flags = vf->func_flags;
 	if (setting)
-		func_flags |= FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE;
+		func_flags = FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_ENABLE;
 	else
-		func_flags |= FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE;
+		func_flags = FUNC_CFG_REQ_FLAGS_SRC_MAC_ADDR_CHECK_DISABLE;
 	/*TODO: if the driver supports VLAN filter on guest VLAN,
 	 * the spoof check should also include vlan anti-spoofing
 	 */
@@ -98,7 +97,6 @@
 	req.flags = cpu_to_le32(func_flags);
 	rc = hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
 	if (!rc) {
-		vf->func_flags = func_flags;
 		if (setting)
 			vf->flags |= BNXT_VF_SPOOFCHK;
 		else
@@ -230,7 +228,6 @@
 	memcpy(vf->mac_addr, mac, ETH_ALEN);
 	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_CFG, -1, -1);
 	req.fid = cpu_to_le16(vf->fw_fid);
-	req.flags = cpu_to_le32(vf->func_flags);
 	req.enables = cpu_to_le32(FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR);
 	memcpy(req.dflt_mac_addr, mac, ETH_ALEN);
 	return hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
@@ -268,7 +265,6 @@
 
 	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_CFG, -1, -1);
 	req.fid = cpu_to_le16(vf->fw_fid);
-	req.flags = cpu_to_le32(vf->func_flags);
 	req.dflt_vlan = cpu_to_le16(vlan_tag);
 	req.enables = cpu_to_le32(FUNC_CFG_REQ_ENABLES_DFLT_VLAN);
 	rc = hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
@@ -307,7 +303,6 @@
 		return 0;
 	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_CFG, -1, -1);
 	req.fid = cpu_to_le16(vf->fw_fid);
-	req.flags = cpu_to_le32(vf->func_flags);
 	req.enables = cpu_to_le32(FUNC_CFG_REQ_ENABLES_MAX_BW);
 	req.max_bw = cpu_to_le32(max_tx_rate);
 	req.enables |= cpu_to_le32(FUNC_CFG_REQ_ENABLES_MIN_BW);
@@ -403,6 +398,7 @@
 		}
 	}
 
+	bp->pf.active_vfs = 0;
 	kfree(bp->pf.vf);
 	bp->pf.vf = NULL;
 }
@@ -479,7 +475,6 @@
 	vf = &bp->pf.vf[vf_id];
 	bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_CFG, -1, -1);
 	req.fid = cpu_to_le16(vf->fw_fid);
-	req.flags = cpu_to_le32(vf->func_flags);
 
 	if (is_valid_ether_addr(vf->mac_addr)) {
 		req.enables |= cpu_to_le32(FUNC_CFG_REQ_ENABLES_DFLT_MAC_ADDR);
@@ -839,7 +834,6 @@
 
 	bnxt_free_vf_resources(bp);
 
-	bp->pf.active_vfs = 0;
 	/* Reclaim all resources for the PF. */
 	rtnl_lock();
 	bnxt_restore_pf_fw_resources(bp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
@@ -113,8 +113,10 @@
 {
 	struct net_device *dev = edev->net;
 	struct bnxt *bp = netdev_priv(dev);
+	struct bnxt_hw_resc *hw_resc;
 	int max_idx, max_cp_rings;
 	int avail_msix, idx;
+	int total_vecs;
 	int rc = 0;
 
 	ASSERT_RTNL();
@@ -142,7 +144,10 @@
 	}
 	edev->ulp_tbl[ulp_id].msix_base = idx;
 	edev->ulp_tbl[ulp_id].msix_requested = avail_msix;
-	if (bp->total_irqs < (idx + avail_msix)) {
+	hw_resc = &bp->hw_resc;
+	total_vecs = idx + avail_msix;
+	if (bp->total_irqs < total_vecs ||
+	    (BNXT_NEW_RM(bp) && hw_resc->resv_irqs < total_vecs)) {
 		if (netif_running(dev)) {
 			bnxt_close_nic(bp, true, false);
 			rc = bnxt_open_nic(bp, true, false);
@@ -156,7 +161,6 @@
 	}
 
 	if (BNXT_NEW_RM(bp)) {
-		struct bnxt_hw_resc *hw_resc = &bp->hw_resc;
 		int resv_msix;
 
 		resv_msix = hw_resc->resv_irqs - bp->cp_nr_rings;
@@ -212,8 +216,12 @@
 
 int bnxt_get_ulp_stat_ctxs(struct bnxt *bp)
 {
-	if (bnxt_ulp_registered(bp->edev, BNXT_ROCE_ULP))
-		return BNXT_MIN_ROCE_STAT_CTXS;
+	if (bnxt_ulp_registered(bp->edev, BNXT_ROCE_ULP)) {
+		struct bnxt_en_dev *edev = bp->edev;
+
+		if (edev->ulp_tbl[BNXT_ROCE_ULP].msix_requested)
+			return BNXT_MIN_ROCE_STAT_CTXS;
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
@@ -398,6 +398,9 @@
 	struct net_device *dev;
 	int rc, i;
 
+	if (!(bp->flags & BNXT_FLAG_DSN_VALID))
+		return -ENODEV;
+
 	bp->vf_reps = kcalloc(num_vfs, sizeof(vf_rep), GFP_KERNEL);
 	if (!bp->vf_reps)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -69,6 +69,9 @@
 #define GENET_RDMA_REG_OFF	(priv->hw_params->rdma_offset + \
 				TOTAL_DESC * DMA_DESC_SIZE)
 
+/* Forward declarations */
+static void bcmgenet_set_rx_mode(struct net_device *dev);
+
 static inline void bcmgenet_writel(u32 value, void __iomem *offset)
 {
 	/* MIPS chips strapped for BE will automagically configure the
@@ -995,6 +998,8 @@
 	if (netif_running(dev))
 		bcmgenet_update_mib_counters(priv);
 
+	dev->netdev_ops->ndo_get_stats(dev);
+
 	for (i = 0; i < BCMGENET_STATS_LEN; i++) {
 		const struct bcmgenet_stats *s;
 		char *p;
@@ -1586,11 +1591,6 @@
 		goto out;
 	}
 
-	if (skb_padto(skb, ETH_ZLEN)) {
-		ret = NETDEV_TX_OK;
-		goto out;
-	}
-
 	/* Retain how many bytes will be sent on the wire, without TSB inserted
 	 * by transmit checksum offload
 	 */
@@ -1639,6 +1639,9 @@
 		len_stat = (size << DMA_BUFLENGTH_SHIFT) |
 			   (priv->hw_params->qtag_mask << DMA_TX_QTAG_SHIFT);
 
+		/* Note: if we ever change from DMA_TX_APPEND_CRC below we
+		 * will need to restore software padding of "runt" packets
+		 */
 		if (!i) {
 			len_stat |= DMA_TX_APPEND_CRC | DMA_SOP;
 			if (skb->ip_summed == CHECKSUM_PARTIAL)
@@ -1695,7 +1698,8 @@
 	dma_addr_t mapping;
 
 	/* Allocate a new Rx skb */
-	skb = netdev_alloc_skb(priv->dev, priv->rx_buf_len + SKB_ALIGNMENT);
+	skb = __netdev_alloc_skb(priv->dev, priv->rx_buf_len + SKB_ALIGNMENT,
+				 GFP_ATOMIC | __GFP_NOWARN);
 	if (!skb) {
 		priv->mib.alloc_rx_buff_failed++;
 		netif_err(priv, rx_err, priv->dev,
@@ -2164,8 +2168,8 @@
 				  DMA_END_ADDR);
 
 	/* Initialize Tx NAPI */
-	netif_napi_add(priv->dev, &ring->napi, bcmgenet_tx_poll,
-		       NAPI_POLL_WEIGHT);
+	netif_tx_napi_add(priv->dev, &ring->napi, bcmgenet_tx_poll,
+			  NAPI_POLL_WEIGHT);
 }
 
 /* Initialize a RDMA ring */
@@ -2849,6 +2853,7 @@
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 
 	/* Start the network engine */
+	bcmgenet_set_rx_mode(dev);
 	bcmgenet_enable_rx_napi(priv);
 
 	umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, true);
@@ -3204,6 +3209,7 @@
 	dev->stats.rx_packets = rx_packets;
 	dev->stats.rx_errors = rx_errors;
 	dev->stats.rx_missed_errors = rx_errors;
+	dev->stats.rx_dropped = rx_dropped;
 	return &dev->stats;
 }
 
@@ -3578,8 +3584,10 @@
 	clk_disable_unprepare(priv->clk);
 
 	err = register_netdev(dev);
-	if (err)
+	if (err) {
+		bcmgenet_mii_exit(dev);
 		goto err;
+	}
 
 	return err;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/genet/bcmgenet.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/genet/bcmgenet.h
@@ -14,6 +14,7 @@
 #include <linux/if_vlan.h>
 #include <linux/phy.h>
 #include <linux/dim.h>
+#include <linux/ethtool.h>
 
 /* total number of Buffer Descriptors, same for Rx/Tx */
 #define TOTAL_DESC				256
@@ -674,6 +675,7 @@
 	/* WOL */
 	struct clk *clk_wol;
 	u32 wolopts;
+	u8 sopass[SOPASS_MAX];
 
 	struct bcmgenet_mib_counters mib;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c
@@ -41,18 +41,13 @@
 void bcmgenet_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
 {
 	struct bcmgenet_priv *priv = netdev_priv(dev);
-	u32 reg;
 
 	wol->supported = WAKE_MAGIC | WAKE_MAGICSECURE;
 	wol->wolopts = priv->wolopts;
 	memset(wol->sopass, 0, sizeof(wol->sopass));
 
-	if (wol->wolopts & WAKE_MAGICSECURE) {
-		reg = bcmgenet_umac_readl(priv, UMAC_MPD_PW_MS);
-		put_unaligned_be16(reg, &wol->sopass[0]);
-		reg = bcmgenet_umac_readl(priv, UMAC_MPD_PW_LS);
-		put_unaligned_be32(reg, &wol->sopass[2]);
-	}
+	if (wol->wolopts & WAKE_MAGICSECURE)
+		memcpy(wol->sopass, priv->sopass, sizeof(priv->sopass));
 }
 
 /* ethtool function - set WOL (Wake on LAN) settings.
@@ -62,7 +57,6 @@
 {
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 	struct device *kdev = &priv->pdev->dev;
-	u32 reg;
 
 	if (!device_can_wakeup(kdev))
 		return -ENOTSUPP;
@@ -70,17 +64,8 @@
 	if (wol->wolopts & ~(WAKE_MAGIC | WAKE_MAGICSECURE))
 		return -EINVAL;
 
-	reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
-	if (wol->wolopts & WAKE_MAGICSECURE) {
-		bcmgenet_umac_writel(priv, get_unaligned_be16(&wol->sopass[0]),
-				     UMAC_MPD_PW_MS);
-		bcmgenet_umac_writel(priv, get_unaligned_be32(&wol->sopass[2]),
-				     UMAC_MPD_PW_LS);
-		reg |= MPD_PW_EN;
-	} else {
-		reg &= ~MPD_PW_EN;
-	}
-	bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
+	if (wol->wolopts & WAKE_MAGICSECURE)
+		memcpy(priv->sopass, wol->sopass, sizeof(priv->sopass));
 
 	/* Flag the device and relevant IRQ as wakeup capable */
 	if (wol->wolopts) {
@@ -120,6 +105,14 @@
 	return retries;
 }
 
+static void bcmgenet_set_mpd_password(struct bcmgenet_priv *priv)
+{
+	bcmgenet_umac_writel(priv, get_unaligned_be16(&priv->sopass[0]),
+			     UMAC_MPD_PW_MS);
+	bcmgenet_umac_writel(priv, get_unaligned_be32(&priv->sopass[2]),
+			     UMAC_MPD_PW_LS);
+}
+
 int bcmgenet_wol_power_down_cfg(struct bcmgenet_priv *priv,
 				enum bcmgenet_power_mode mode)
 {
@@ -140,13 +133,17 @@
 
 	reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
 	reg |= MPD_EN;
+	if (priv->wolopts & WAKE_MAGICSECURE) {
+		bcmgenet_set_mpd_password(priv);
+		reg |= MPD_PW_EN;
+	}
 	bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
 
 	/* Do not leave UniMAC in MPD mode only */
 	retries = bcmgenet_poll_wol_status(priv);
 	if (retries < 0) {
 		reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
-		reg &= ~MPD_EN;
+		reg &= ~(MPD_EN | MPD_PW_EN);
 		bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
 		return retries;
 	}
@@ -185,7 +182,7 @@
 	reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
 	if (!(reg & MPD_EN))
 		return;	/* already powered up so skip the rest */
-	reg &= ~MPD_EN;
+	reg &= ~(MPD_EN | MPD_PW_EN);
 	bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
 
 	/* Disable CRC Forward */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/broadcom/tg3.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/broadcom/tg3.c
@@ -7227,8 +7227,8 @@
 
 static inline void tg3_reset_task_cancel(struct tg3 *tp)
 {
-	cancel_work_sync(&tp->reset_task);
-	tg3_flag_clear(tp, RESET_TASK_PENDING);
+	if (test_and_clear_bit(TG3_FLAG_RESET_TASK_PENDING, tp->tg3_flags))
+		cancel_work_sync(&tp->reset_task);
 	tg3_flag_clear(tp, TX_RECOVERY_PENDING);
 }
 
@@ -11219,18 +11219,27 @@
 
 	tg3_halt(tp, RESET_KIND_SHUTDOWN, 0);
 	err = tg3_init_hw(tp, true);
-	if (err)
+	if (err) {
+		tg3_full_unlock(tp);
+		tp->irq_sync = 0;
+		tg3_napi_enable(tp);
+		/* Clear this flag so that tg3_reset_task_cancel() will not
+		 * call cancel_work_sync() and wait forever.
+		 */
+		tg3_flag_clear(tp, RESET_TASK_PENDING);
+		dev_close(tp->dev);
 		goto out;
+	}
 
 	tg3_netif_start(tp);
 
-out:
 	tg3_full_unlock(tp);
 
 	if (!err)
 		tg3_phy_start(tp);
 
 	tg3_flag_clear(tp, RESET_TASK_PENDING);
+out:
 	rtnl_unlock();
 }
 
@@ -18176,8 +18185,8 @@
 
 	rtnl_lock();
 
-	/* We probably don't have netdev yet */
-	if (!netdev || !netif_running(netdev))
+	/* Could be second call or maybe we don't have netdev yet */
+	if (!netdev || tp->pcierr_recovery || !netif_running(netdev))
 		goto done;
 
 	/* We needn't recover from permanent error */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cadence/macb_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cadence/macb_main.c
@@ -73,7 +73,11 @@
 /* Max length of transmit frame must be a multiple of 8 bytes */
 #define MACB_TX_LEN_ALIGN	8
 #define MACB_MAX_TX_LEN		((unsigned int)((1 << MACB_TX_FRMLEN_SIZE) - 1) & ~((unsigned int)(MACB_TX_LEN_ALIGN - 1)))
-#define GEM_MAX_TX_LEN		((unsigned int)((1 << GEM_TX_FRMLEN_SIZE) - 1) & ~((unsigned int)(MACB_TX_LEN_ALIGN - 1)))
+/* Limit maximum TX length as per Cadence TSO errata. This is to avoid a
+ * false amba_error in TX path from the DMA assuming there is not enough
+ * space in the SRAM (16KB) even when there is.
+ */
+#define GEM_MAX_TX_LEN		(unsigned int)(0x3FC0)
 
 #define GEM_MTU_MIN_SIZE	ETH_MIN_MTU
 #define MACB_NETIF_LSO		NETIF_F_TSO
@@ -330,8 +334,10 @@
 	int status;
 
 	status = pm_runtime_get_sync(&bp->pdev->dev);
-	if (status < 0)
+	if (status < 0) {
+		pm_runtime_put_noidle(&bp->pdev->dev);
 		goto mdio_pm_exit;
+	}
 
 	status = macb_mdio_wait_for_idle(bp);
 	if (status < 0)
@@ -363,8 +369,10 @@
 	int status;
 
 	status = pm_runtime_get_sync(&bp->pdev->dev);
-	if (status < 0)
+	if (status < 0) {
+		pm_runtime_put_noidle(&bp->pdev->dev);
 		goto mdio_pm_exit;
+	}
 
 	status = macb_mdio_wait_for_idle(bp);
 	if (status < 0)
@@ -1664,16 +1672,14 @@
 
 	/* Validate LSO compatibility */
 
-	/* there is only one buffer */
-	if (!skb_is_nonlinear(skb))
+	/* there is only one buffer or protocol is not UDP */
+	if (!skb_is_nonlinear(skb) || (ip_hdr(skb)->protocol != IPPROTO_UDP))
 		return features;
 
 	/* length of header */
 	hdrlen = skb_transport_offset(skb);
-	if (ip_hdr(skb)->protocol == IPPROTO_TCP)
-		hdrlen += tcp_hdrlen(skb);
 
-	/* For LSO:
+	/* For UFO only:
 	 * When software supplies two or more payload buffers all payload buffers
 	 * apart from the last must be a multiple of 8 bytes in size.
 	 */
@@ -1712,7 +1718,8 @@
 
 static int macb_pad_and_fcs(struct sk_buff **skb, struct net_device *ndev)
 {
-	bool cloned = skb_cloned(*skb) || skb_header_cloned(*skb);
+	bool cloned = skb_cloned(*skb) || skb_header_cloned(*skb) ||
+		      skb_is_nonlinear(*skb);
 	int padlen = ETH_ZLEN - (*skb)->len;
 	int headroom = skb_headroom(*skb);
 	int tailroom = skb_tailroom(*skb);
@@ -3688,6 +3695,12 @@
 	u32 ctl;
 	int ret;
 
+	ret = pm_runtime_get_sync(&lp->pdev->dev);
+	if (ret < 0) {
+		pm_runtime_put_noidle(&lp->pdev->dev);
+		return ret;
+	}
+
 	/* Clear internal statistics */
 	ctl = macb_readl(lp, NCR);
 	macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT));
@@ -3696,7 +3709,7 @@
 
 	ret = at91ether_start(dev);
 	if (ret)
-		return ret;
+		goto pm_exit;
 
 	/* Enable MAC interrupts */
 	macb_writel(lp, IER, MACB_BIT(RCOMP)	|
@@ -3713,6 +3726,10 @@
 	netif_start_queue(dev);
 
 	return 0;
+
+pm_exit:
+	pm_runtime_put_sync(&lp->pdev->dev);
+	return ret;
 }
 
 /* Close the interface */
@@ -3748,7 +3765,7 @@
 			  q->rx_buffers, q->rx_buffers_dma);
 	q->rx_buffers = NULL;
 
-	return 0;
+	return pm_runtime_put(&lp->pdev->dev);
 }
 
 /* Transmit packet */
@@ -4027,7 +4044,7 @@
 	mgmt->rate = 0;
 	mgmt->hw.init = &init;
 
-	*tx_clk = clk_register(NULL, &mgmt->hw);
+	*tx_clk = devm_clk_register(&pdev->dev, &mgmt->hw);
 	if (IS_ERR(*tx_clk))
 		return PTR_ERR(*tx_clk);
 
@@ -4042,15 +4059,9 @@
 
 static int fu540_c000_init(struct platform_device *pdev)
 {
-	struct resource *res;
-
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-	if (!res)
-		return -ENODEV;
-
-	mgmt->reg = ioremap(res->start, resource_size(res));
-	if (!mgmt->reg)
-		return -ENOMEM;
+	mgmt->reg = devm_platform_ioremap_resource(pdev, 1);
+	if (IS_ERR(mgmt->reg))
+		return PTR_ERR(mgmt->reg);
 
 	return macb_init(pdev);
 }
@@ -4254,7 +4265,7 @@
 	bp->wol = 0;
 	if (of_get_property(np, "magic-packet", NULL))
 		bp->wol |= MACB_WOL_HAS_MAGIC_PACKET;
-	device_init_wakeup(&pdev->dev, bp->wol & MACB_WOL_HAS_MAGIC_PACKET);
+	device_set_wakeup_capable(&pdev->dev, bp->wol & MACB_WOL_HAS_MAGIC_PACKET);
 
 	spin_lock_init(&bp->lock);
 
@@ -4361,7 +4372,6 @@
 
 err_disable_clocks:
 	clk_disable_unprepare(tx_clk);
-	clk_unregister(tx_clk);
 	clk_disable_unprepare(hclk);
 	clk_disable_unprepare(pclk);
 	clk_disable_unprepare(rx_clk);
@@ -4392,11 +4402,11 @@
 		mdiobus_free(bp->mii_bus);
 
 		unregister_netdev(dev);
+		tasklet_kill(&bp->hresp_err_tasklet);
 		pm_runtime_disable(&pdev->dev);
 		pm_runtime_dont_use_autosuspend(&pdev->dev);
 		if (!pm_runtime_suspended(&pdev->dev)) {
 			clk_disable_unprepare(bp->tx_clk);
-			clk_unregister(bp->tx_clk);
 			clk_disable_unprepare(bp->hclk);
 			clk_disable_unprepare(bp->pclk);
 			clk_disable_unprepare(bp->rx_clk);
@@ -4448,7 +4458,8 @@
 	netif_carrier_off(netdev);
 	if (bp->ptp_info)
 		bp->ptp_info->ptp_remove(netdev);
-	pm_runtime_force_suspend(dev);
+	if (!device_may_wakeup(dev))
+		pm_runtime_force_suspend(dev);
 
 	return 0;
 }
@@ -4463,7 +4474,8 @@
 	if (!netif_running(netdev))
 		return 0;
 
-	pm_runtime_force_resume(dev);
+	if (!device_may_wakeup(dev))
+		pm_runtime_force_resume(dev);
 
 	if (bp->wol & MACB_WOL_ENABLED) {
 		macb_writel(bp, IDR, MACB_BIT(WOL));
@@ -4502,7 +4514,7 @@
 	struct net_device *netdev = dev_get_drvdata(dev);
 	struct macb *bp = netdev_priv(netdev);
 
-	if (!(device_may_wakeup(&bp->dev->dev))) {
+	if (!(device_may_wakeup(dev))) {
 		clk_disable_unprepare(bp->tx_clk);
 		clk_disable_unprepare(bp->hclk);
 		clk_disable_unprepare(bp->pclk);
@@ -4518,7 +4530,7 @@
 	struct net_device *netdev = dev_get_drvdata(dev);
 	struct macb *bp = netdev_priv(netdev);
 
-	if (!(device_may_wakeup(&bp->dev->dev))) {
+	if (!(device_may_wakeup(dev))) {
 		clk_prepare_enable(bp->pclk);
 		clk_prepare_enable(bp->hclk);
 		clk_prepare_enable(bp->tx_clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
@@ -1167,7 +1167,7 @@
 		oct->pf_num = ((fdl_bit >> CN23XX_PCIE_SRIOV_FDL_BIT_POS) &
 			       CN23XX_PCIE_SRIOV_FDL_MASK);
 	} else {
-		ret = EINVAL;
+		ret = -EINVAL;
 
 		/* Under some virtual environments, extended PCI regs are
 		 * inaccessible, in which case the above read will have failed.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
@@ -235,6 +235,11 @@
 
 		/* Put it in the ring.  */
 		p->rx_ring[p->rx_next_fill] = re.d64;
+		/* Make sure there is no reorder of filling the ring and ringing
+		 * the bell
+		 */
+		wmb();
+
 		dma_sync_single_for_device(p->dev, p->rx_ring_handle,
 					   ring_size_to_bytes(OCTEON_MGMT_RX_RING_SIZE),
 					   DMA_BIDIRECTIONAL);
@@ -1217,7 +1222,7 @@
 	 */
 	if (netdev->phydev) {
 		netif_carrier_off(netdev);
-		phy_start_aneg(netdev->phydev);
+		phy_start(netdev->phydev);
 	}
 
 	netif_wake_queue(netdev);
@@ -1245,8 +1250,10 @@
 	napi_disable(&p->napi);
 	netif_stop_queue(netdev);
 
-	if (netdev->phydev)
+	if (netdev->phydev) {
+		phy_stop(netdev->phydev);
 		phy_disconnect(netdev->phydev);
+	}
 
 	netif_carrier_off(netdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cavium/thunder/nicvf_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cavium/thunder/nicvf_main.c
@@ -2047,11 +2047,11 @@
 	/* Save message data locally to prevent them from
 	 * being overwritten by next ndo_set_rx_mode call().
 	 */
-	spin_lock(&nic->rx_mode_wq_lock);
+	spin_lock_bh(&nic->rx_mode_wq_lock);
 	mode = vf_work->mode;
 	mc = vf_work->mc;
 	vf_work->mc = NULL;
-	spin_unlock(&nic->rx_mode_wq_lock);
+	spin_unlock_bh(&nic->rx_mode_wq_lock);
 
 	__nicvf_set_rx_mode_task(mode, mc, nic);
 }
@@ -2185,6 +2185,9 @@
 		nic->max_queues *= 2;
 	nic->ptp_clock = ptp_clock;
 
+	/* Initialize mutex that serializes usage of VF's mailbox */
+	mutex_init(&nic->rx_mode_mtx);
+
 	/* MAP VF's configuration registers */
 	nic->reg_base = pcim_iomap(pdev, PCI_CFG_REG_BAR_NUM, 0);
 	if (!nic->reg_base) {
@@ -2261,7 +2264,6 @@
 
 	INIT_WORK(&nic->rx_mode_work.work, nicvf_set_rx_mode_task);
 	spin_lock_init(&nic->rx_mode_wq_lock);
-	mutex_init(&nic->rx_mode_mtx);
 
 	err = register_netdev(netdev);
 	if (err) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -410,10 +410,19 @@
 	lmac = &bgx->lmac[lmacid];
 
 	cfg = bgx_reg_read(bgx, lmacid, BGX_CMRX_CFG);
-	if (enable)
+	if (enable) {
 		cfg |= CMR_PKT_RX_EN | CMR_PKT_TX_EN;
-	else
+
+		/* enable TX FIFO Underflow interrupt */
+		bgx_reg_modify(bgx, lmacid, BGX_GMP_GMI_TXX_INT_ENA_W1S,
+			       GMI_TXX_INT_UNDFLW);
+	} else {
 		cfg &= ~(CMR_PKT_RX_EN | CMR_PKT_TX_EN);
+
+		/* Disable TX FIFO Underflow interrupt */
+		bgx_reg_modify(bgx, lmacid, BGX_GMP_GMI_TXX_INT_ENA_W1C,
+			       GMI_TXX_INT_UNDFLW);
+	}
 	bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cfg);
 
 	if (bgx->is_rgx)
@@ -1115,7 +1124,7 @@
 				       phy_interface_mode(lmac->lmac_type)))
 			return -ENODEV;
 
-		phy_start_aneg(lmac->phydev);
+		phy_start(lmac->phydev);
 		return 0;
 	}
 
@@ -1535,6 +1544,48 @@
 	return bgx_init_of_phy(bgx);
 }
 
+static irqreturn_t bgx_intr_handler(int irq, void *data)
+{
+	struct bgx *bgx = (struct bgx *)data;
+	u64 status, val;
+	int lmac;
+
+	for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
+		status = bgx_reg_read(bgx, lmac, BGX_GMP_GMI_TXX_INT);
+		if (status & GMI_TXX_INT_UNDFLW) {
+			pci_err(bgx->pdev, "BGX%d lmac%d UNDFLW\n",
+				bgx->bgx_id, lmac);
+			val = bgx_reg_read(bgx, lmac, BGX_CMRX_CFG);
+			val &= ~CMR_EN;
+			bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val);
+			val |= CMR_EN;
+			bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val);
+		}
+		/* clear interrupts */
+		bgx_reg_write(bgx, lmac, BGX_GMP_GMI_TXX_INT, status);
+	}
+
+	return IRQ_HANDLED;
+}
+
+static void bgx_register_intr(struct pci_dev *pdev)
+{
+	struct bgx *bgx = pci_get_drvdata(pdev);
+	int ret;
+
+	ret = pci_alloc_irq_vectors(pdev, BGX_LMAC_VEC_OFFSET,
+				    BGX_LMAC_VEC_OFFSET, PCI_IRQ_ALL_TYPES);
+	if (ret < 0) {
+		pci_err(pdev, "Req for #%d msix vectors failed\n",
+			BGX_LMAC_VEC_OFFSET);
+		return;
+	}
+	ret = pci_request_irq(pdev, GMPX_GMI_TX_INT, bgx_intr_handler, NULL,
+			      bgx, "BGX%d", bgx->bgx_id);
+	if (ret)
+		pci_free_irq(pdev, GMPX_GMI_TX_INT, bgx);
+}
+
 static int bgx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	int err;
@@ -1550,7 +1601,7 @@
 
 	pci_set_drvdata(pdev, bgx);
 
-	err = pci_enable_device(pdev);
+	err = pcim_enable_device(pdev);
 	if (err) {
 		dev_err(dev, "Failed to enable PCI device\n");
 		pci_set_drvdata(pdev, NULL);
@@ -1604,6 +1655,8 @@
 
 	bgx_init_hw(bgx);
 
+	bgx_register_intr(pdev);
+
 	/* Enable all LMACs */
 	for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
 		err = bgx_lmac_enable(bgx, lmac);
@@ -1620,6 +1673,7 @@
 
 err_enable:
 	bgx_vnic[bgx->bgx_id] = NULL;
+	pci_free_irq(pdev, GMPX_GMI_TX_INT, bgx);
 err_release_regions:
 	pci_release_regions(pdev);
 err_disable_device:
@@ -1637,6 +1691,8 @@
 	for (lmac = 0; lmac < bgx->lmac_count; lmac++)
 		bgx_lmac_disable(bgx, lmac);
 
+	pci_free_irq(pdev, GMPX_GMI_TX_INT, bgx);
+
 	bgx_vnic[bgx->bgx_id] = NULL;
 	pci_release_regions(pdev);
 	pci_disable_device(pdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
@@ -180,6 +180,15 @@
 #define BGX_GMP_GMI_TXX_BURST		0x38228
 #define BGX_GMP_GMI_TXX_MIN_PKT		0x38240
 #define BGX_GMP_GMI_TXX_SGMII_CTL	0x38300
+#define BGX_GMP_GMI_TXX_INT		0x38500
+#define BGX_GMP_GMI_TXX_INT_W1S		0x38508
+#define BGX_GMP_GMI_TXX_INT_ENA_W1C	0x38510
+#define BGX_GMP_GMI_TXX_INT_ENA_W1S	0x38518
+#define  GMI_TXX_INT_PTP_LOST			BIT_ULL(4)
+#define  GMI_TXX_INT_LATE_COL			BIT_ULL(3)
+#define  GMI_TXX_INT_XSDEF			BIT_ULL(2)
+#define  GMI_TXX_INT_XSCOL			BIT_ULL(1)
+#define  GMI_TXX_INT_UNDFLW			BIT_ULL(0)
 
 #define BGX_MSIX_VEC_0_29_ADDR		0x400000 /* +(0..29) << 4 */
 #define BGX_MSIX_VEC_0_29_CTL		0x400008
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
@@ -2448,6 +2448,8 @@
 
 		if (!is_offload(adapter))
 			return -EOPNOTSUPP;
+		if (!capable(CAP_NET_ADMIN))
+			return -EPERM;
 		if (!(adapter->flags & FULL_INIT_DONE))
 			return -EIO;	/* need the memory controllers */
 		if (copy_from_user(&t, useraddr, sizeof(t)))
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb3/sge.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb3/sge.c
@@ -3176,6 +3176,7 @@
 			  GFP_KERNEL | __GFP_COMP);
 	if (!avail) {
 		CH_ALERT(adapter, "free list queue 0 initialization failed\n");
+		ret = -ENOMEM;
 		goto err;
 	}
 	if (avail < q->fl[0].size)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
@@ -1054,9 +1054,9 @@
 	}
 }
 
-static unsigned long cudbg_mem_region_size(struct cudbg_init *pdbg_init,
-					   struct cudbg_error *cudbg_err,
-					   u8 mem_type)
+static int cudbg_mem_region_size(struct cudbg_init *pdbg_init,
+				 struct cudbg_error *cudbg_err,
+				 u8 mem_type, unsigned long *region_size)
 {
 	struct adapter *padap = pdbg_init->adap;
 	struct cudbg_meminfo mem_info;
@@ -1065,15 +1065,23 @@
 
 	memset(&mem_info, 0, sizeof(struct cudbg_meminfo));
 	rc = cudbg_fill_meminfo(padap, &mem_info);
-	if (rc)
+	if (rc) {
+		cudbg_err->sys_err = rc;
 		return rc;
+	}
 
 	cudbg_t4_fwcache(pdbg_init, cudbg_err);
 	rc = cudbg_meminfo_get_mem_index(padap, &mem_info, mem_type, &mc_idx);
-	if (rc)
+	if (rc) {
+		cudbg_err->sys_err = rc;
 		return rc;
+	}
 
-	return mem_info.avail[mc_idx].limit - mem_info.avail[mc_idx].base;
+	if (region_size)
+		*region_size = mem_info.avail[mc_idx].limit -
+			       mem_info.avail[mc_idx].base;
+
+	return 0;
 }
 
 static int cudbg_collect_mem_region(struct cudbg_init *pdbg_init,
@@ -1081,7 +1089,12 @@
 				    struct cudbg_error *cudbg_err,
 				    u8 mem_type)
 {
-	unsigned long size = cudbg_mem_region_size(pdbg_init, cudbg_err, mem_type);
+	unsigned long size = 0;
+	int rc;
+
+	rc = cudbg_mem_region_size(pdbg_init, cudbg_err, mem_type, &size);
+	if (rc)
+		return rc;
 
 	return cudbg_read_fw_mem(pdbg_init, dbg_buff, mem_type, size,
 				 cudbg_err);
@@ -1967,7 +1980,6 @@
 	u8 mem_type[CTXT_INGRESS + 1] = { 0 };
 	struct cudbg_buffer temp_buff = { 0 };
 	struct cudbg_ch_cntxt *buff;
-	u64 *dst_off, *src_off;
 	u8 *ctx_buf;
 	u8 i, k;
 	int rc;
@@ -2036,8 +2048,11 @@
 		}
 
 		for (j = 0; j < max_ctx_qid; j++) {
+			__be64 *dst_off;
+			u64 *src_off;
+
 			src_off = (u64 *)(ctx_buf + j * SGE_CTXT_SIZE);
-			dst_off = (u64 *)buff->data;
+			dst_off = (__be64 *)buff->data;
 
 			/* The data is stored in 64-bit cpu order.  Convert it
 			 * to big endian before parsing.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
@@ -503,6 +503,7 @@
 
 	enum cc_pause  requested_fc;     /* flow control user has requested */
 	enum cc_pause  fc;               /* actual link flow control */
+	enum cc_pause  advertised_fc;    /* actual advertised flow control */
 
 	enum cc_fec    requested_fec;	 /* Forward Error Correction: */
 	enum cc_fec    fec;		 /* requested and actual in use */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
@@ -70,8 +70,7 @@
 static void *seq_tab_next(struct seq_file *seq, void *v, loff_t *pos)
 {
 	v = seq_tab_get_idx(seq->private, *pos + 1);
-	if (v)
-		++*pos;
+	++(*pos);
 	return v;
 }
 
@@ -2996,6 +2995,9 @@
 	int tot_uld_entries = 0;
 	int i;
 
+	if (!is_uld(adap))
+		goto lld_only;
+
 	mutex_lock(&uld_mutex);
 	for (i = 0; i < CXGB4_TX_MAX; i++)
 		tot_uld_entries += sge_qinfo_uld_txq_entries(adap, i);
@@ -3006,6 +3008,7 @@
 	}
 	mutex_unlock(&uld_mutex);
 
+lld_only:
 	return DIV_ROUND_UP(adap->sge.ethqsets, 4) +
 	       tot_uld_entries +
 	       DIV_ROUND_UP(MAX_CTRL_QUEUES, 4) + 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
@@ -793,8 +793,8 @@
 	struct port_info *p = netdev_priv(dev);
 
 	epause->autoneg = (p->link_cfg.requested_fc & PAUSE_AUTONEG) != 0;
-	epause->rx_pause = (p->link_cfg.fc & PAUSE_RX) != 0;
-	epause->tx_pause = (p->link_cfg.fc & PAUSE_TX) != 0;
+	epause->rx_pause = (p->link_cfg.advertised_fc & PAUSE_RX) != 0;
+	epause->tx_pause = (p->link_cfg.advertised_fc & PAUSE_TX) != 0;
 }
 
 static int set_pauseparam(struct net_device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
@@ -145,13 +145,13 @@
 	int err;
 
 	/* do a set-tcb for smac-sel and CWR bit.. */
-	err = set_tcb_tflag(adap, f, f->tid, TF_CCTRL_CWR_S, 1, 1);
-	if (err)
-		goto smac_err;
-
 	err = set_tcb_field(adap, f, f->tid, TCB_SMAC_SEL_W,
 			    TCB_SMAC_SEL_V(TCB_SMAC_SEL_M),
 			    TCB_SMAC_SEL_V(f->smt->idx), 1);
+	if (err)
+		goto smac_err;
+
+	err = set_tcb_tflag(adap, f, f->tid, TF_CCTRL_CWR_S, 1, 1);
 	if (!err)
 		return 0;
 
@@ -165,6 +165,9 @@
 			   unsigned int tid, bool dip, bool sip, bool dp,
 			   bool sp)
 {
+	u8 *nat_lp = (u8 *)&f->fs.nat_lport;
+	u8 *nat_fp = (u8 *)&f->fs.nat_fport;
+
 	if (dip) {
 		if (f->fs.type) {
 			set_tcb_field(adap, f, tid, TCB_SND_UNA_RAW_W,
@@ -236,8 +239,9 @@
 	}
 
 	set_tcb_field(adap, f, tid, TCB_PDU_HDR_LEN_W, WORD_MASK,
-		      (dp ? f->fs.nat_lport : 0) |
-		      (sp ? f->fs.nat_fport << 16 : 0), 1);
+		      (dp ? (nat_lp[1] | nat_lp[0] << 8) : 0) |
+		      (sp ? (nat_fp[1] << 16 | nat_fp[0] << 24) : 0),
+		      1);
 }
 
 /* Validate filter spec against configuration done on the card. */
@@ -608,6 +612,7 @@
 		      FW_FILTER_WR_DIRSTEERHASH_V(f->fs.dirsteerhash) |
 		      FW_FILTER_WR_LPBK_V(f->fs.action == FILTER_SWITCH) |
 		      FW_FILTER_WR_DMAC_V(f->fs.newdmac) |
+		      FW_FILTER_WR_SMAC_V(f->fs.newsmac) |
 		      FW_FILTER_WR_INSVLAN_V(f->fs.newvlan == VLAN_INSERT ||
 					     f->fs.newvlan == VLAN_REWRITE) |
 		      FW_FILTER_WR_RMVLAN_V(f->fs.newvlan == VLAN_REMOVE ||
@@ -625,7 +630,8 @@
 		 FW_FILTER_WR_OVLAN_VLD_V(f->fs.val.ovlan_vld) |
 		 FW_FILTER_WR_IVLAN_VLDM_V(f->fs.mask.ivlan_vld) |
 		 FW_FILTER_WR_OVLAN_VLDM_V(f->fs.mask.ovlan_vld));
-	fwr->smac_sel = 0;
+	if (f->fs.newsmac)
+		fwr->smac_sel = f->smt->idx;
 	fwr->rx_chan_rx_rpl_iq =
 		htons(FW_FILTER_WR_RX_CHAN_V(0) |
 		      FW_FILTER_WR_RX_RPL_IQ_V(adapter->sge.fw_evtq.abs_id));
@@ -656,6 +662,9 @@
 	fwr->fpm = htons(f->fs.mask.fport);
 
 	if (adapter->params.filter2_wr_support) {
+		u8 *nat_lp = (u8 *)&f->fs.nat_lport;
+		u8 *nat_fp = (u8 *)&f->fs.nat_fport;
+
 		fwr->natmode_to_ulp_type =
 			FW_FILTER2_WR_ULP_TYPE_V(f->fs.nat_mode ?
 						 ULP_MODE_TCPDDP :
@@ -663,8 +672,8 @@
 			FW_FILTER2_WR_NATMODE_V(f->fs.nat_mode);
 		memcpy(fwr->newlip, f->fs.nat_lip, sizeof(fwr->newlip));
 		memcpy(fwr->newfip, f->fs.nat_fip, sizeof(fwr->newfip));
-		fwr->newlport = htons(f->fs.nat_lport);
-		fwr->newfport = htons(f->fs.nat_fport);
+		fwr->newlport = htons(nat_lp[1] | nat_lp[0] << 8);
+		fwr->newfport = htons(nat_fp[1] | nat_fp[0] << 8);
 	}
 
 	/* Mark the filter as "pending" and ship off the Filter Work Request.
@@ -832,16 +841,16 @@
 		struct in_addr *addr;
 
 		addr = (struct in_addr *)ipmask;
-		if (addr->s_addr == 0xffffffff)
+		if (addr->s_addr == htonl(0xffffffff))
 			return true;
 	} else if (family == AF_INET6) {
 		struct in6_addr *addr6;
 
 		addr6 = (struct in6_addr *)ipmask;
-		if (addr6->s6_addr32[0] == 0xffffffff &&
-		    addr6->s6_addr32[1] == 0xffffffff &&
-		    addr6->s6_addr32[2] == 0xffffffff &&
-		    addr6->s6_addr32[3] == 0xffffffff)
+		if (addr6->s6_addr32[0] == htonl(0xffffffff) &&
+		    addr6->s6_addr32[1] == htonl(0xffffffff) &&
+		    addr6->s6_addr32[2] == htonl(0xffffffff) &&
+		    addr6->s6_addr32[3] == htonl(0xffffffff))
 			return true;
 	}
 	return false;
@@ -1041,11 +1050,8 @@
 			    TX_QUEUE_V(f->fs.nat_mode) |
 			    T5_OPT_2_VALID_F |
 			    RX_CHANNEL_V(cxgb4_port_e2cchan(f->dev)) |
-			    CONG_CNTRL_V((f->fs.action == FILTER_DROP) |
-					 (f->fs.dirsteer << 1)) |
 			    PACE_V((f->fs.maskhash) |
-				   ((f->fs.dirsteerhash) << 1)) |
-			    CCTRL_ECN_V(f->fs.action == FILTER_SWITCH));
+				   ((f->fs.dirsteerhash) << 1)));
 }
 
 static void mk_act_open_req(struct filter_entry *f, struct sk_buff *skb,
@@ -1081,11 +1087,8 @@
 			    TX_QUEUE_V(f->fs.nat_mode) |
 			    T5_OPT_2_VALID_F |
 			    RX_CHANNEL_V(cxgb4_port_e2cchan(f->dev)) |
-			    CONG_CNTRL_V((f->fs.action == FILTER_DROP) |
-					 (f->fs.dirsteer << 1)) |
 			    PACE_V((f->fs.maskhash) |
-				   ((f->fs.dirsteerhash) << 1)) |
-			    CCTRL_ECN_V(f->fs.action == FILTER_SWITCH));
+				   ((f->fs.dirsteerhash) << 1)));
 }
 
 static int cxgb4_set_hash_filter(struct net_device *dev,
@@ -1610,13 +1613,16 @@
 static int configure_filter_tcb(struct adapter *adap, unsigned int tid,
 				struct filter_entry *f)
 {
-	if (f->fs.hitcnts)
+	if (f->fs.hitcnts) {
 		set_tcb_field(adap, f, tid, TCB_TIMESTAMP_W,
-			      TCB_TIMESTAMP_V(TCB_TIMESTAMP_M) |
+			      TCB_TIMESTAMP_V(TCB_TIMESTAMP_M),
+			      TCB_TIMESTAMP_V(0ULL),
+			      1);
+		set_tcb_field(adap, f, tid, TCB_RTT_TS_RECENT_AGE_W,
 			      TCB_RTT_TS_RECENT_AGE_V(TCB_RTT_TS_RECENT_AGE_M),
-			      TCB_TIMESTAMP_V(0ULL) |
 			      TCB_RTT_TS_RECENT_AGE_V(0ULL),
 			      1);
+	}
 
 	if (f->fs.newdmac)
 		set_tcb_tflag(adap, f, tid, TF_CCTRL_ECE_S, 1,
@@ -1738,6 +1744,20 @@
 			}
 			return;
 		}
+		switch (f->fs.action) {
+		case FILTER_PASS:
+			if (f->fs.dirsteer)
+				set_tcb_tflag(adap, f, tid,
+					      TF_DIRECT_STEER_S, 1, 1);
+			break;
+		case FILTER_DROP:
+			set_tcb_tflag(adap, f, tid, TF_DROP_S, 1, 1);
+			break;
+		case FILTER_SWITCH:
+			set_tcb_tflag(adap, f, tid, TF_LPBK_S, 1, 1);
+			break;
+		}
+
 		break;
 
 	default:
@@ -1798,22 +1818,11 @@
 			if (ctx)
 				ctx->result = 0;
 		} else if (ret == FW_FILTER_WR_FLT_ADDED) {
-			int err = 0;
-
-			if (f->fs.newsmac)
-				err = configure_filter_smac(adap, f);
-
-			if (!err) {
-				f->pending = 0;  /* async setup completed */
-				f->valid = 1;
-				if (ctx) {
-					ctx->result = 0;
-					ctx->tid = idx;
-				}
-			} else {
-				clear_filter(adap, f);
-				if (ctx)
-					ctx->result = err;
+			f->pending = 0;  /* async setup completed */
+			f->valid = 1;
+			if (ctx) {
+				ctx->result = 0;
+				ctx->tid = idx;
 			}
 		} else {
 			/* Something went wrong.  Issue a warning about the
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -2504,7 +2504,7 @@
 
 	/* Clear out filter specifications */
 	memset(&f->fs, 0, sizeof(struct ch_filter_specification));
-	f->fs.val.lport = cpu_to_be16(sport);
+	f->fs.val.lport = be16_to_cpu(sport);
 	f->fs.mask.lport  = ~0;
 	val = (u8 *)&sip;
 	if ((val[0] | val[1] | val[2] | val[3]) != 0) {
@@ -3032,7 +3032,6 @@
 		return ret;
 
 	memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
-	pi->xact_addr_filt = ret;
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c
@@ -229,7 +229,7 @@
 {
 	struct mps_entries_ref *mps_entry, *tmp;
 
-	if (!list_empty(&adap->mps_ref))
+	if (list_empty(&adap->mps_ref))
 		return;
 
 	spin_lock(&adap->mps_ref_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c
@@ -246,6 +246,9 @@
 			     FW_PTP_CMD_PORTID_V(0));
 	c.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(sizeof(c) / 16));
 	c.u.ts.sc = FW_PTP_SC_ADJ_FTIME;
+	c.u.ts.sign = (delta < 0) ? 1 : 0;
+	if (delta < 0)
+		delta = -delta;
 	c.u.ts.tm = cpu_to_be64(delta);
 
 	err = t4_wr_mbox(adapter, adapter->mbox, &c, sizeof(c), NULL);
@@ -308,32 +311,17 @@
  */
 static int cxgb4_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)
 {
-	struct adapter *adapter = (struct adapter *)container_of(ptp,
-				   struct adapter, ptp_clock_info);
-	struct fw_ptp_cmd c;
+	struct adapter *adapter = container_of(ptp, struct adapter,
+					       ptp_clock_info);
 	u64 ns;
-	int err;
 
-	memset(&c, 0, sizeof(c));
-	c.op_to_portid = cpu_to_be32(FW_CMD_OP_V(FW_PTP_CMD) |
-				     FW_CMD_REQUEST_F |
-				     FW_CMD_READ_F |
-				     FW_PTP_CMD_PORTID_V(0));
-	c.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(sizeof(c) / 16));
-	c.u.ts.sc = FW_PTP_SC_GET_TIME;
-
-	err = t4_wr_mbox(adapter, adapter->mbox, &c, sizeof(c), &c);
-	if (err < 0) {
-		dev_err(adapter->pdev_dev,
-			"PTP: %s error %d\n", __func__, -err);
-		return err;
-	}
+	ns = t4_read_reg(adapter, T5_PORT_REG(0, MAC_PORT_PTP_SUM_LO_A));
+	ns |= (u64)t4_read_reg(adapter,
+			       T5_PORT_REG(0, MAC_PORT_PTP_SUM_HI_A)) << 32;
 
 	/* convert to timespec*/
-	ns = be64_to_cpu(c.u.ts.tm);
 	*ts = ns_to_timespec64(ns);
-
-	return err;
+	return 0;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
@@ -58,12 +58,91 @@
 	PEDIT_FIELDS(IP6_, DST_63_32, 4, nat_lip, 4),
 	PEDIT_FIELDS(IP6_, DST_95_64, 4, nat_lip, 8),
 	PEDIT_FIELDS(IP6_, DST_127_96, 4, nat_lip, 12),
-	PEDIT_FIELDS(TCP_, SPORT, 2, nat_fport, 0),
-	PEDIT_FIELDS(TCP_, DPORT, 2, nat_lport, 0),
-	PEDIT_FIELDS(UDP_, SPORT, 2, nat_fport, 0),
-	PEDIT_FIELDS(UDP_, DPORT, 2, nat_lport, 0),
 };
 
+static const struct cxgb4_natmode_config cxgb4_natmode_config_array[] = {
+	/* Default supported NAT modes */
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_NONE,
+		.natmode = NAT_MODE_NONE,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_DIP,
+		.natmode = NAT_MODE_DIP,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_DPORT,
+		.natmode = NAT_MODE_DIP_DP,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_DPORT |
+			 CXGB4_ACTION_NATMODE_SIP,
+		.natmode = NAT_MODE_DIP_DP_SIP,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_DPORT |
+			 CXGB4_ACTION_NATMODE_SPORT,
+		.natmode = NAT_MODE_DIP_DP_SP,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_SIP | CXGB4_ACTION_NATMODE_SPORT,
+		.natmode = NAT_MODE_SIP_SP,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_SIP |
+			 CXGB4_ACTION_NATMODE_SPORT,
+		.natmode = NAT_MODE_DIP_SIP_SP,
+	},
+	{
+		.chip = CHELSIO_T5,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_SIP |
+			 CXGB4_ACTION_NATMODE_DPORT |
+			 CXGB4_ACTION_NATMODE_SPORT,
+		.natmode = NAT_MODE_ALL,
+	},
+	/* T6+ can ignore L4 ports when they're disabled. */
+	{
+		.chip = CHELSIO_T6,
+		.flags = CXGB4_ACTION_NATMODE_SIP,
+		.natmode = NAT_MODE_SIP_SP,
+	},
+	{
+		.chip = CHELSIO_T6,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_SPORT,
+		.natmode = NAT_MODE_DIP_DP_SP,
+	},
+	{
+		.chip = CHELSIO_T6,
+		.flags = CXGB4_ACTION_NATMODE_DIP | CXGB4_ACTION_NATMODE_SIP,
+		.natmode = NAT_MODE_ALL,
+	},
+};
+
+static void cxgb4_action_natmode_tweak(struct ch_filter_specification *fs,
+				       u8 natmode_flags)
+{
+	u8 i = 0;
+
+	/* Translate the enabled NAT 4-tuple fields to one of the
+	 * hardware supported NAT mode configurations. This ensures
+	 * that we pick a valid combination, where the disabled fields
+	 * do not get overwritten to 0.
+	 */
+	for (i = 0; i < ARRAY_SIZE(cxgb4_natmode_config_array); i++) {
+		if (cxgb4_natmode_config_array[i].flags == natmode_flags) {
+			fs->nat_mode = cxgb4_natmode_config_array[i].natmode;
+			return;
+		}
+	}
+}
+
 static struct ch_tc_flower_entry *allocate_flower_entry(void)
 {
 	struct ch_tc_flower_entry *new = kzalloc(sizeof(*new), GFP_KERNEL);
@@ -156,14 +235,14 @@
 		struct flow_match_ports match;
 
 		flow_rule_match_ports(rule, &match);
-		fs->val.lport = cpu_to_be16(match.key->dst);
-		fs->mask.lport = cpu_to_be16(match.mask->dst);
-		fs->val.fport = cpu_to_be16(match.key->src);
-		fs->mask.fport = cpu_to_be16(match.mask->src);
+		fs->val.lport = be16_to_cpu(match.key->dst);
+		fs->mask.lport = be16_to_cpu(match.mask->dst);
+		fs->val.fport = be16_to_cpu(match.key->src);
+		fs->mask.fport = be16_to_cpu(match.mask->src);
 
 		/* also initialize nat_lport/fport to same values */
-		fs->nat_lport = cpu_to_be16(match.key->dst);
-		fs->nat_fport = cpu_to_be16(match.key->src);
+		fs->nat_lport = fs->val.lport;
+		fs->nat_fport = fs->val.fport;
 	}
 
 	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) {
@@ -291,7 +370,8 @@
 }
 
 static void process_pedit_field(struct ch_filter_specification *fs, u32 val,
-				u32 mask, u32 offset, u8 htype)
+				u32 mask, u32 offset, u8 htype,
+				u8 *natmode_flags)
 {
 	switch (htype) {
 	case FLOW_ACT_MANGLE_HDR_TYPE_ETH:
@@ -316,74 +396,104 @@
 		switch (offset) {
 		case PEDIT_IP4_SRC:
 			offload_pedit(fs, val, mask, IP4_SRC);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_SIP;
 			break;
 		case PEDIT_IP4_DST:
 			offload_pedit(fs, val, mask, IP4_DST);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 		}
-		fs->nat_mode = NAT_MODE_ALL;
 		break;
 	case FLOW_ACT_MANGLE_HDR_TYPE_IP6:
 		switch (offset) {
 		case PEDIT_IP6_SRC_31_0:
 			offload_pedit(fs, val, mask, IP6_SRC_31_0);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_SIP;
 			break;
 		case PEDIT_IP6_SRC_63_32:
 			offload_pedit(fs, val, mask, IP6_SRC_63_32);
+			*natmode_flags |=  CXGB4_ACTION_NATMODE_SIP;
 			break;
 		case PEDIT_IP6_SRC_95_64:
 			offload_pedit(fs, val, mask, IP6_SRC_95_64);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_SIP;
 			break;
 		case PEDIT_IP6_SRC_127_96:
 			offload_pedit(fs, val, mask, IP6_SRC_127_96);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_SIP;
 			break;
 		case PEDIT_IP6_DST_31_0:
 			offload_pedit(fs, val, mask, IP6_DST_31_0);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 			break;
 		case PEDIT_IP6_DST_63_32:
 			offload_pedit(fs, val, mask, IP6_DST_63_32);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 			break;
 		case PEDIT_IP6_DST_95_64:
 			offload_pedit(fs, val, mask, IP6_DST_95_64);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 			break;
 		case PEDIT_IP6_DST_127_96:
 			offload_pedit(fs, val, mask, IP6_DST_127_96);
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 		}
-		fs->nat_mode = NAT_MODE_ALL;
 		break;
 	case FLOW_ACT_MANGLE_HDR_TYPE_TCP:
 		switch (offset) {
 		case PEDIT_TCP_SPORT_DPORT:
-			if (~mask & PEDIT_TCP_UDP_SPORT_MASK)
-				offload_pedit(fs, cpu_to_be32(val) >> 16,
-					      cpu_to_be32(mask) >> 16,
-					      TCP_SPORT);
-			else
-				offload_pedit(fs, cpu_to_be32(val),
-					      cpu_to_be32(mask), TCP_DPORT);
+			if (~mask & PEDIT_TCP_UDP_SPORT_MASK) {
+				fs->nat_fport = val;
+				*natmode_flags |= CXGB4_ACTION_NATMODE_SPORT;
+			} else {
+				fs->nat_lport = val >> 16;
+				*natmode_flags |= CXGB4_ACTION_NATMODE_DPORT;
+			}
 		}
-		fs->nat_mode = NAT_MODE_ALL;
 		break;
 	case FLOW_ACT_MANGLE_HDR_TYPE_UDP:
 		switch (offset) {
 		case PEDIT_UDP_SPORT_DPORT:
-			if (~mask & PEDIT_TCP_UDP_SPORT_MASK)
-				offload_pedit(fs, cpu_to_be32(val) >> 16,
-					      cpu_to_be32(mask) >> 16,
-					      UDP_SPORT);
-			else
-				offload_pedit(fs, cpu_to_be32(val),
-					      cpu_to_be32(mask), UDP_DPORT);
+			if (~mask & PEDIT_TCP_UDP_SPORT_MASK) {
+				fs->nat_fport = val;
+				*natmode_flags |= CXGB4_ACTION_NATMODE_SPORT;
+			} else {
+				fs->nat_lport = val >> 16;
+				*natmode_flags |= CXGB4_ACTION_NATMODE_DPORT;
+			}
 		}
-		fs->nat_mode = NAT_MODE_ALL;
+		break;
 	}
 }
 
+static int cxgb4_action_natmode_validate(struct net_device *dev,
+					 struct adapter *adap, u8 natmode_flags)
+{
+	u8 i = 0;
+
+	/* Extract the NAT mode to enable based on what 4-tuple fields
+	 * are enabled to be overwritten. This ensures that the
+	 * disabled fields don't get overwritten to 0.
+	 */
+	for (i = 0; i < ARRAY_SIZE(cxgb4_natmode_config_array); i++) {
+		const struct cxgb4_natmode_config *c;
+
+		c = &cxgb4_natmode_config_array[i];
+		if (CHELSIO_CHIP_VERSION(adap->params.chip) >= c->chip &&
+		    natmode_flags == c->flags)
+			return 0;
+	}
+	netdev_err(dev, "%s: Unsupported NAT mode 4-tuple combination\n",
+		   __func__);
+	return -EOPNOTSUPP;
+}
+
 static void cxgb4_process_flow_actions(struct net_device *in,
 				       struct flow_cls_offload *cls,
 				       struct ch_filter_specification *fs)
 {
 	struct flow_rule *rule = flow_cls_offload_flow_rule(cls);
 	struct flow_action_entry *act;
+	u8 natmode_flags = 0;
 	int i;
 
 	flow_action_for_each(i, act, &rule->action) {
@@ -434,13 +544,17 @@
 			val = act->mangle.val;
 			offset = act->mangle.offset;
 
-			process_pedit_field(fs, val, mask, offset, htype);
+			process_pedit_field(fs, val, mask, offset, htype,
+					    &natmode_flags);
 			}
 			break;
 		default:
 			break;
 		}
 	}
+	if (natmode_flags)
+		cxgb4_action_natmode_tweak(fs, natmode_flags);
+
 }
 
 static bool valid_l4_mask(u32 mask)
@@ -457,7 +571,8 @@
 }
 
 static bool valid_pedit_action(struct net_device *dev,
-			       const struct flow_action_entry *act)
+			       const struct flow_action_entry *act,
+			       u8 *natmode_flags)
 {
 	u32 mask, offset;
 	u8 htype;
@@ -482,7 +597,10 @@
 	case FLOW_ACT_MANGLE_HDR_TYPE_IP4:
 		switch (offset) {
 		case PEDIT_IP4_SRC:
+			*natmode_flags |= CXGB4_ACTION_NATMODE_SIP;
+			break;
 		case PEDIT_IP4_DST:
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 			break;
 		default:
 			netdev_err(dev, "%s: Unsupported pedit field\n",
@@ -496,10 +614,13 @@
 		case PEDIT_IP6_SRC_63_32:
 		case PEDIT_IP6_SRC_95_64:
 		case PEDIT_IP6_SRC_127_96:
+			*natmode_flags |= CXGB4_ACTION_NATMODE_SIP;
+			break;
 		case PEDIT_IP6_DST_31_0:
 		case PEDIT_IP6_DST_63_32:
 		case PEDIT_IP6_DST_95_64:
 		case PEDIT_IP6_DST_127_96:
+			*natmode_flags |= CXGB4_ACTION_NATMODE_DIP;
 			break;
 		default:
 			netdev_err(dev, "%s: Unsupported pedit field\n",
@@ -515,6 +636,10 @@
 					   __func__);
 				return false;
 			}
+			if (~mask & PEDIT_TCP_UDP_SPORT_MASK)
+				*natmode_flags |= CXGB4_ACTION_NATMODE_SPORT;
+			else
+				*natmode_flags |= CXGB4_ACTION_NATMODE_DPORT;
 			break;
 		default:
 			netdev_err(dev, "%s: Unsupported pedit field\n",
@@ -530,6 +655,10 @@
 					   __func__);
 				return false;
 			}
+			if (~mask & PEDIT_TCP_UDP_SPORT_MASK)
+				*natmode_flags |= CXGB4_ACTION_NATMODE_SPORT;
+			else
+				*natmode_flags |= CXGB4_ACTION_NATMODE_DPORT;
 			break;
 		default:
 			netdev_err(dev, "%s: Unsupported pedit field\n",
@@ -548,10 +677,12 @@
 				       struct flow_cls_offload *cls)
 {
 	struct flow_rule *rule = flow_cls_offload_flow_rule(cls);
+	struct adapter *adap = netdev2adap(dev);
 	struct flow_action_entry *act;
 	bool act_redir = false;
 	bool act_pedit = false;
 	bool act_vlan = false;
+	u8 natmode_flags = 0;
 	int i;
 
 	flow_action_for_each(i, act, &rule->action) {
@@ -561,7 +692,6 @@
 			/* Do nothing */
 			break;
 		case FLOW_ACTION_REDIRECT: {
-			struct adapter *adap = netdev2adap(dev);
 			struct net_device *n_dev, *target_dev;
 			unsigned int i;
 			bool found = false;
@@ -611,7 +741,8 @@
 			}
 			break;
 		case FLOW_ACTION_MANGLE: {
-			bool pedit_valid = valid_pedit_action(dev, act);
+			bool pedit_valid = valid_pedit_action(dev, act,
+							      &natmode_flags);
 
 			if (!pedit_valid)
 				return -EOPNOTSUPP;
@@ -630,6 +761,14 @@
 		return -EINVAL;
 	}
 
+	if (act_pedit) {
+		int ret;
+
+		ret = cxgb4_action_natmode_validate(dev, adap, natmode_flags);
+		if (ret)
+			return ret;
+	}
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.h
@@ -108,6 +108,21 @@
 #define PEDIT_TCP_SPORT_DPORT		0x0
 #define PEDIT_UDP_SPORT_DPORT		0x0
 
+enum cxgb4_action_natmode_flags {
+	CXGB4_ACTION_NATMODE_NONE = 0,
+	CXGB4_ACTION_NATMODE_DIP = (1 << 0),
+	CXGB4_ACTION_NATMODE_SIP = (1 << 1),
+	CXGB4_ACTION_NATMODE_DPORT = (1 << 2),
+	CXGB4_ACTION_NATMODE_SPORT = (1 << 3),
+};
+
+/* TC PEDIT action to NATMODE translation entry */
+struct cxgb4_natmode_config {
+	enum chip_type chip;
+	u8 flags;
+	u8 natmode;
+};
+
 int cxgb4_tc_flower_replace(struct net_device *dev,
 			    struct flow_cls_offload *cls);
 int cxgb4_tc_flower_destroy(struct net_device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
@@ -47,7 +47,7 @@
 			     bool next_header)
 {
 	unsigned int i, j;
-	u32 val, mask;
+	__be32 val, mask;
 	int off, err;
 	bool found;
 
@@ -216,7 +216,7 @@
 		const struct cxgb4_next_header *next;
 		bool found = false;
 		unsigned int i, j;
-		u32 val, mask;
+		__be32 val, mask;
 		int off;
 
 		if (t->table[link_uhtid - 1].link_handle) {
@@ -230,10 +230,10 @@
 
 		/* Try to find matches that allow jumps to next header. */
 		for (i = 0; next[i].jump; i++) {
-			if (next[i].offoff != cls->knode.sel->offoff ||
-			    next[i].shift != cls->knode.sel->offshift ||
-			    next[i].mask != cls->knode.sel->offmask ||
-			    next[i].offset != cls->knode.sel->off)
+			if (next[i].sel.offoff != cls->knode.sel->offoff ||
+			    next[i].sel.offshift != cls->knode.sel->offshift ||
+			    next[i].sel.offmask != cls->knode.sel->offmask ||
+			    next[i].sel.off != cls->knode.sel->off)
 				continue;
 
 			/* Found a possible candidate.  Find a key that
@@ -245,9 +245,9 @@
 				val = cls->knode.sel->keys[j].val;
 				mask = cls->knode.sel->keys[j].mask;
 
-				if (next[i].match_off == off &&
-				    next[i].match_val == val &&
-				    next[i].match_mask == mask) {
+				if (next[i].key.off == off &&
+				    next[i].key.val == val &&
+				    next[i].key.mask == mask) {
 					found = true;
 					break;
 				}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32_parse.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32_parse.h
@@ -38,12 +38,12 @@
 struct cxgb4_match_field {
 	int off; /* Offset from the beginning of the header to match */
 	/* Fill the value/mask pair in the spec if matched */
-	int (*val)(struct ch_filter_specification *f, u32 val, u32 mask);
+	int (*val)(struct ch_filter_specification *f, __be32 val, __be32 mask);
 };
 
 /* IPv4 match fields */
 static inline int cxgb4_fill_ipv4_tos(struct ch_filter_specification *f,
-				      u32 val, u32 mask)
+				      __be32 val, __be32 mask)
 {
 	f->val.tos  = (ntohl(val)  >> 16) & 0x000000FF;
 	f->mask.tos = (ntohl(mask) >> 16) & 0x000000FF;
@@ -52,7 +52,7 @@
 }
 
 static inline int cxgb4_fill_ipv4_frag(struct ch_filter_specification *f,
-				       u32 val, u32 mask)
+				       __be32 val, __be32 mask)
 {
 	u32 mask_val;
 	u8 frag_val;
@@ -74,7 +74,7 @@
 }
 
 static inline int cxgb4_fill_ipv4_proto(struct ch_filter_specification *f,
-					u32 val, u32 mask)
+					__be32 val, __be32 mask)
 {
 	f->val.proto  = (ntohl(val)  >> 16) & 0x000000FF;
 	f->mask.proto = (ntohl(mask) >> 16) & 0x000000FF;
@@ -83,7 +83,7 @@
 }
 
 static inline int cxgb4_fill_ipv4_src_ip(struct ch_filter_specification *f,
-					 u32 val, u32 mask)
+					 __be32 val, __be32 mask)
 {
 	memcpy(&f->val.fip[0],  &val,  sizeof(u32));
 	memcpy(&f->mask.fip[0], &mask, sizeof(u32));
@@ -92,7 +92,7 @@
 }
 
 static inline int cxgb4_fill_ipv4_dst_ip(struct ch_filter_specification *f,
-					 u32 val, u32 mask)
+					 __be32 val, __be32 mask)
 {
 	memcpy(&f->val.lip[0],  &val,  sizeof(u32));
 	memcpy(&f->mask.lip[0], &mask, sizeof(u32));
@@ -111,7 +111,7 @@
 
 /* IPv6 match fields */
 static inline int cxgb4_fill_ipv6_tos(struct ch_filter_specification *f,
-				      u32 val, u32 mask)
+				      __be32 val, __be32 mask)
 {
 	f->val.tos  = (ntohl(val)  >> 20) & 0x000000FF;
 	f->mask.tos = (ntohl(mask) >> 20) & 0x000000FF;
@@ -120,7 +120,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_proto(struct ch_filter_specification *f,
-					u32 val, u32 mask)
+					__be32 val, __be32 mask)
 {
 	f->val.proto  = (ntohl(val)  >> 8) & 0x000000FF;
 	f->mask.proto = (ntohl(mask) >> 8) & 0x000000FF;
@@ -129,7 +129,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_src_ip0(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.fip[0],  &val,  sizeof(u32));
 	memcpy(&f->mask.fip[0], &mask, sizeof(u32));
@@ -138,7 +138,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_src_ip1(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.fip[4],  &val,  sizeof(u32));
 	memcpy(&f->mask.fip[4], &mask, sizeof(u32));
@@ -147,7 +147,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_src_ip2(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.fip[8],  &val,  sizeof(u32));
 	memcpy(&f->mask.fip[8], &mask, sizeof(u32));
@@ -156,7 +156,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_src_ip3(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.fip[12],  &val,  sizeof(u32));
 	memcpy(&f->mask.fip[12], &mask, sizeof(u32));
@@ -165,7 +165,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_dst_ip0(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.lip[0],  &val,  sizeof(u32));
 	memcpy(&f->mask.lip[0], &mask, sizeof(u32));
@@ -174,7 +174,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_dst_ip1(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.lip[4],  &val,  sizeof(u32));
 	memcpy(&f->mask.lip[4], &mask, sizeof(u32));
@@ -183,7 +183,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_dst_ip2(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.lip[8],  &val,  sizeof(u32));
 	memcpy(&f->mask.lip[8], &mask, sizeof(u32));
@@ -192,7 +192,7 @@
 }
 
 static inline int cxgb4_fill_ipv6_dst_ip3(struct ch_filter_specification *f,
-					  u32 val, u32 mask)
+					  __be32 val, __be32 mask)
 {
 	memcpy(&f->val.lip[12],  &val,  sizeof(u32));
 	memcpy(&f->mask.lip[12], &mask, sizeof(u32));
@@ -216,7 +216,7 @@
 
 /* TCP/UDP match */
 static inline int cxgb4_fill_l4_ports(struct ch_filter_specification *f,
-				      u32 val, u32 mask)
+				      __be32 val, __be32 mask)
 {
 	f->val.fport  = ntohl(val)  >> 16;
 	f->mask.fport = ntohl(mask) >> 16;
@@ -237,19 +237,13 @@
 };
 
 struct cxgb4_next_header {
-	unsigned int offset; /* Offset to next header */
-	/* offset, shift, and mask added to offset above
+	/* Offset, shift, and mask added to beginning of the header
 	 * to get to next header.  Useful when using a header
 	 * field's value to jump to next header such as IHL field
 	 * in IPv4 header.
 	 */
-	unsigned int offoff;
-	u32 shift;
-	u32 mask;
-	/* match criteria to make this jump */
-	unsigned int match_off;
-	u32 match_val;
-	u32 match_mask;
+	struct tc_u32_sel sel;
+	struct tc_u32_key key;
 	/* location of jump to make */
 	const struct cxgb4_match_field *jump;
 };
@@ -258,26 +252,74 @@
  * IPv4 header.
  */
 static const struct cxgb4_next_header cxgb4_ipv4_jumps[] = {
-	{ .offset = 0, .offoff = 0, .shift = 6, .mask = 0xF,
-	  .match_off = 8, .match_val = 0x600, .match_mask = 0xFF00,
-	  .jump = cxgb4_tcp_fields },
-	{ .offset = 0, .offoff = 0, .shift = 6, .mask = 0xF,
-	  .match_off = 8, .match_val = 0x1100, .match_mask = 0xFF00,
-	  .jump = cxgb4_udp_fields },
-	{ .jump = NULL }
+	{
+		/* TCP Jump */
+		.sel = {
+			.off = 0,
+			.offoff = 0,
+			.offshift = 6,
+			.offmask = cpu_to_be16(0x0f00),
+		},
+		.key = {
+			.off = 8,
+			.val = cpu_to_be32(0x00060000),
+			.mask = cpu_to_be32(0x00ff0000),
+		},
+		.jump = cxgb4_tcp_fields,
+	},
+	{
+		/* UDP Jump */
+		.sel = {
+			.off = 0,
+			.offoff = 0,
+			.offshift = 6,
+			.offmask = cpu_to_be16(0x0f00),
+		},
+		.key = {
+			.off = 8,
+			.val = cpu_to_be32(0x00110000),
+			.mask = cpu_to_be32(0x00ff0000),
+		},
+		.jump = cxgb4_udp_fields,
+	},
+	{ .jump = NULL },
 };
 
 /* Accept a rule with a jump directly past the 40 Bytes of IPv6 fixed header
  * to get to transport layer header.
  */
 static const struct cxgb4_next_header cxgb4_ipv6_jumps[] = {
-	{ .offset = 0x28, .offoff = 0, .shift = 0, .mask = 0,
-	  .match_off = 4, .match_val = 0x60000, .match_mask = 0xFF0000,
-	  .jump = cxgb4_tcp_fields },
-	{ .offset = 0x28, .offoff = 0, .shift = 0, .mask = 0,
-	  .match_off = 4, .match_val = 0x110000, .match_mask = 0xFF0000,
-	  .jump = cxgb4_udp_fields },
-	{ .jump = NULL }
+	{
+		/* TCP Jump */
+		.sel = {
+			.off = 40,
+			.offoff = 0,
+			.offshift = 0,
+			.offmask = 0,
+		},
+		.key = {
+			.off = 4,
+			.val = cpu_to_be32(0x00000600),
+			.mask = cpu_to_be32(0x0000ff00),
+		},
+		.jump = cxgb4_tcp_fields,
+	},
+	{
+		/* UDP Jump */
+		.sel = {
+			.off = 40,
+			.offoff = 0,
+			.offshift = 0,
+			.offmask = 0,
+		},
+		.key = {
+			.off = 4,
+			.val = cpu_to_be32(0x00001100),
+			.mask = cpu_to_be32(0x0000ff00),
+		},
+		.jump = cxgb4_udp_fields,
+	},
+	{ .jump = NULL },
 };
 
 struct cxgb4_link {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c
@@ -62,6 +62,7 @@
 int cxgb4_thermal_init(struct adapter *adap)
 {
 	struct ch_thermal *ch_thermal = &adap->ch_thermal;
+	char ch_tz_name[THERMAL_NAME_LENGTH];
 	int num_trip = CXGB4_NUM_TRIPS;
 	u32 param, val;
 	int ret;
@@ -82,7 +83,8 @@
 		ch_thermal->trip_type = THERMAL_TRIP_CRITICAL;
 	}
 
-	ch_thermal->tzdev = thermal_zone_device_register("cxgb4", num_trip,
+	snprintf(ch_tz_name, sizeof(ch_tz_name), "cxgb4_%s", adap->name);
+	ch_thermal->tzdev = thermal_zone_device_register(ch_tz_name, num_trip,
 							 0, adap,
 							 &cxgb4_thermal_ops,
 							 NULL, 0, 0);
@@ -97,7 +99,9 @@
 
 int cxgb4_thermal_remove(struct adapter *adap)
 {
-	if (adap->ch_thermal.tzdev)
+	if (adap->ch_thermal.tzdev) {
 		thermal_zone_device_unregister(adap->ch_thermal.tzdev);
+		adap->ch_thermal.tzdev = NULL;
+	}
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h
@@ -44,6 +44,9 @@
 
 #define MAX_ULD_QSETS 16
 
+/* ulp_mem_io + ulptx_idata + payload + padding */
+#define MAX_IMM_ULPTX_WR_LEN (32 + 8 + 256 + 8)
+
 /* CPL message priority levels */
 enum {
 	CPL_PRIORITY_DATA     = 0,  /* data messages */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/l2t.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/l2t.c
@@ -507,40 +507,19 @@
 EXPORT_SYMBOL(cxgb4_select_ntuple);
 
 /*
- * Called when address resolution fails for an L2T entry to handle packets
- * on the arpq head.  If a packet specifies a failure handler it is invoked,
- * otherwise the packet is sent to the device.
- */
-static void handle_failed_resolution(struct adapter *adap, struct l2t_entry *e)
-{
-	struct sk_buff *skb;
-
-	while ((skb = __skb_dequeue(&e->arpq)) != NULL) {
-		const struct l2t_skb_cb *cb = L2T_SKB_CB(skb);
-
-		spin_unlock(&e->lock);
-		if (cb->arp_err_handler)
-			cb->arp_err_handler(cb->handle, skb);
-		else
-			t4_ofld_send(adap, skb);
-		spin_lock(&e->lock);
-	}
-}
-
-/*
  * Called when the host's neighbor layer makes a change to some entry that is
  * loaded into the HW L2 table.
  */
 void t4_l2t_update(struct adapter *adap, struct neighbour *neigh)
 {
-	struct l2t_entry *e;
-	struct sk_buff_head *arpq = NULL;
-	struct l2t_data *d = adap->l2t;
 	unsigned int addr_len = neigh->tbl->key_len;
 	u32 *addr = (u32 *) neigh->primary_key;
-	int ifidx = neigh->dev->ifindex;
-	int hash = addr_hash(d, addr, addr_len, ifidx);
+	int hash, ifidx = neigh->dev->ifindex;
+	struct sk_buff_head *arpq = NULL;
+	struct l2t_data *d = adap->l2t;
+	struct l2t_entry *e;
 
+	hash = addr_hash(d, addr, addr_len, ifidx);
 	read_lock_bh(&d->lock);
 	for (e = d->l2tab[hash].first; e; e = e->next)
 		if (!addreq(e, addr) && e->ifindex == ifidx) {
@@ -573,8 +552,25 @@
 			write_l2e(adap, e, 0);
 	}
 
-	if (arpq)
-		handle_failed_resolution(adap, e);
+	if (arpq) {
+		struct sk_buff *skb;
+
+		/* Called when address resolution fails for an L2T
+		 * entry to handle packets on the arpq head. If a
+		 * packet specifies a failure handler it is invoked,
+		 * otherwise the packet is sent to the device.
+		 */
+		while ((skb = __skb_dequeue(&e->arpq)) != NULL) {
+			const struct l2t_skb_cb *cb = L2T_SKB_CB(skb);
+
+			spin_unlock(&e->lock);
+			if (cb->arp_err_handler)
+				cb->arp_err_handler(cb->handle, skb);
+			else
+				t4_ofld_send(adap, skb);
+			spin_lock(&e->lock);
+		}
+	}
 	spin_unlock_bh(&e->lock);
 }
 
@@ -682,8 +678,7 @@
 static void *l2t_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 {
 	v = l2t_get_idx(seq, *pos);
-	if (v)
-		++*pos;
+	++(*pos);
 	return v;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/sge.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/sge.c
@@ -1324,8 +1324,9 @@
 int t4_sge_eth_txq_egress_update(struct adapter *adap, struct sge_eth_txq *eq,
 				 int maxreclaim)
 {
+	unsigned int reclaimed, hw_cidx;
 	struct sge_txq *q = &eq->q;
-	unsigned int reclaimed;
+	int hw_in_use;
 
 	if (!q->in_use || !__netif_tx_trylock(eq->txq))
 		return 0;
@@ -1333,12 +1334,17 @@
 	/* Reclaim pending completed TX Descriptors. */
 	reclaimed = reclaim_completed_tx(adap, &eq->q, maxreclaim, true);
 
+	hw_cidx = ntohs(READ_ONCE(q->stat->cidx));
+	hw_in_use = q->pidx - hw_cidx;
+	if (hw_in_use < 0)
+		hw_in_use += q->size;
+
 	/* If the TX Queue is currently stopped and there's now more than half
 	 * the queue available, restart it.  Otherwise bail out since the rest
 	 * of what we want do here is with the possibility of shipping any
 	 * currently buffered Coalesced TX Work Request.
 	 */
-	if (netif_tx_queue_stopped(eq->txq) && txq_avail(q) > (q->size / 2)) {
+	if (netif_tx_queue_stopped(eq->txq) && hw_in_use < (q->size / 2)) {
 		netif_tx_wake_queue(eq->txq);
 		eq->q.restarts++;
 	}
@@ -1469,16 +1475,7 @@
 		 * has opened up.
 		 */
 		eth_txq_stop(q);
-
-		/* If we're using the SGE Doorbell Queue Timer facility, we
-		 * don't need to ask the Firmware to send us Egress Queue CIDX
-		 * Updates: the Hardware will do this automatically.  And
-		 * since we send the Ingress Queue CIDX Updates to the
-		 * corresponding Ethernet Response Queue, we'll get them very
-		 * quickly.
-		 */
-		if (!q->dbqt)
-			wr_mid |= FW_WR_EQUEQ_F | FW_WR_EQUIQ_F;
+		wr_mid |= FW_WR_EQUEQ_F | FW_WR_EQUIQ_F;
 	}
 
 	wr = (void *)&q->q.desc[q->q.pidx];
@@ -1792,16 +1789,7 @@
 		 * has opened up.
 		 */
 		eth_txq_stop(txq);
-
-		/* If we're using the SGE Doorbell Queue Timer facility, we
-		 * don't need to ask the Firmware to send us Egress Queue CIDX
-		 * Updates: the Hardware will do this automatically.  And
-		 * since we send the Ingress Queue CIDX Updates to the
-		 * corresponding Ethernet Response Queue, we'll get them very
-		 * quickly.
-		 */
-		if (!txq->dbqt)
-			wr_mid |= FW_WR_EQUEQ_F | FW_WR_EQUIQ_F;
+		wr_mid |= FW_WR_EQUEQ_F | FW_WR_EQUIQ_F;
 	}
 
 	/* Start filling in our Work Request.  Note that we do _not_ handle
@@ -2170,17 +2158,22 @@
  *	@skb: the packet
  *
  *	Returns true if a packet can be sent as an offload WR with immediate
- *	data.  We currently use the same limit as for Ethernet packets.
+ *	data.
+ *	FW_OFLD_TX_DATA_WR limits the payload to 255 bytes due to 8-bit field.
+ *      However, FW_ULPTX_WR commands have a 256 byte immediate only
+ *      payload limit.
  */
 static inline int is_ofld_imm(const struct sk_buff *skb)
 {
 	struct work_request_hdr *req = (struct work_request_hdr *)skb->data;
 	unsigned long opcode = FW_WR_OP_G(ntohl(req->wr_hi));
 
-	if (opcode == FW_CRYPTO_LOOKASIDE_WR)
+	if (unlikely(opcode == FW_ULPTX_WR))
+		return skb->len <= MAX_IMM_ULPTX_WR_LEN;
+	else if (opcode == FW_CRYPTO_LOOKASIDE_WR)
 		return skb->len <= SGE_MAX_WR_LEN;
 	else
-		return skb->len <= MAX_IMM_TX_PKT_LEN;
+		return skb->len <= MAX_IMM_OFLD_TX_DATA_WR_LEN;
 }
 
 /**
@@ -2453,6 +2446,7 @@
 	txq_info = adap->sge.uld_txq_info[tx_uld_type];
 	if (unlikely(!txq_info)) {
 		WARN_ON(true);
+		kfree_skb(skb);
 		return NET_XMIT_DROP;
 	}
 
@@ -2828,7 +2822,7 @@
 
 	hwtstamps = skb_hwtstamps(skb);
 	memset(hwtstamps, 0, sizeof(*hwtstamps));
-	hwtstamps->hwtstamp = ns_to_ktime(be64_to_cpu(*((u64 *)data)));
+	hwtstamps->hwtstamp = ns_to_ktime(get_unaligned_be64(data));
 
 	return RX_PTP_PKT_SUC;
 }
@@ -2924,26 +2918,6 @@
 	}
 
 	txq = &s->ethtxq[pi->first_qset + rspq->idx];
-
-	/* We've got the Hardware Consumer Index Update in the Egress Update
-	 * message.  If we're using the SGE Doorbell Queue Timer mechanism,
-	 * these Egress Update messages will be our sole CIDX Updates we get
-	 * since we don't want to chew up PCIe bandwidth for both Ingress
-	 * Messages and Status Page writes.  However, The code which manages
-	 * reclaiming successfully DMA'ed TX Work Requests uses the CIDX value
-	 * stored in the Status Page at the end of the TX Queue.  It's easiest
-	 * to simply copy the CIDX Update value from the Egress Update message
-	 * to the Status Page.  Also note that no Endian issues need to be
-	 * considered here since both are Big Endian and we're just copying
-	 * bytes consistently ...
-	 */
-	if (txq->dbqt) {
-		struct cpl_sge_egr_update *egr;
-
-		egr = (struct cpl_sge_egr_update *)rsp;
-		WRITE_ONCE(txq->q.stat->cidx, egr->cidx);
-	}
-
 	t4_sge_eth_txq_egress_update(adapter, txq, -1);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
@@ -3499,7 +3499,7 @@
 	drv_fw = &fw_info->fw_hdr;
 
 	/* Read the header of the firmware on the card */
-	ret = -t4_read_flash(adap, FLASH_FW_START,
+	ret = t4_read_flash(adap, FLASH_FW_START,
 			    sizeof(*card_fw) / sizeof(uint32_t),
 			    (uint32_t *)card_fw, 1);
 	if (ret == 0) {
@@ -3528,8 +3528,8 @@
 		   should_install_fs_fw(adap, card_fw_usable,
 					be32_to_cpu(fs_fw->fw_ver),
 					be32_to_cpu(card_fw->fw_ver))) {
-		ret = -t4_fw_upgrade(adap, adap->mbox, fw_data,
-				     fw_size, 0);
+		ret = t4_fw_upgrade(adap, adap->mbox, fw_data,
+				    fw_size, 0);
 		if (ret != 0) {
 			dev_err(adap->pdev_dev,
 				"failed to install firmware: %d\n", ret);
@@ -3560,7 +3560,7 @@
 			FW_HDR_FW_VER_MICRO_G(c), FW_HDR_FW_VER_BUILD_G(c),
 			FW_HDR_FW_VER_MAJOR_G(k), FW_HDR_FW_VER_MINOR_G(k),
 			FW_HDR_FW_VER_MICRO_G(k), FW_HDR_FW_VER_BUILD_G(k));
-		ret = EINVAL;
+		ret = -EINVAL;
 		goto bye;
 	}
 
@@ -3748,7 +3748,7 @@
 		 FW_PARAMS_PARAM_Z_V(FW_PARAMS_PARAM_DEV_PHYFW_VERSION));
 	ret = t4_query_params(adap, adap->mbox, adap->pf, 0, 1,
 			      &param, &val);
-	if (ret < 0)
+	if (ret)
 		return ret;
 	*phy_fw_ver = val;
 	return 0;
@@ -4089,7 +4089,8 @@
 		if (cc_pause & PAUSE_TX)
 			fw_pause |= FW_PORT_CAP32_802_3_PAUSE;
 		else
-			fw_pause |= FW_PORT_CAP32_802_3_ASM_DIR;
+			fw_pause |= FW_PORT_CAP32_802_3_ASM_DIR |
+				    FW_PORT_CAP32_802_3_PAUSE;
 	} else if (cc_pause & PAUSE_TX) {
 		fw_pause |= FW_PORT_CAP32_802_3_ASM_DIR;
 	}
@@ -8563,17 +8564,17 @@
 void t4_handle_get_port_info(struct port_info *pi, const __be64 *rpl)
 {
 	const struct fw_port_cmd *cmd = (const void *)rpl;
-	int action = FW_PORT_CMD_ACTION_G(be32_to_cpu(cmd->action_to_len16));
-	struct adapter *adapter = pi->adapter;
+	fw_port_cap32_t pcaps, acaps, lpacaps, linkattr;
 	struct link_config *lc = &pi->link_cfg;
-	int link_ok, linkdnrc;
-	enum fw_port_type port_type;
+	struct adapter *adapter = pi->adapter;
+	unsigned int speed, fc, fec, adv_fc;
 	enum fw_port_module_type mod_type;
-	unsigned int speed, fc, fec;
-	fw_port_cap32_t pcaps, acaps, lpacaps, linkattr;
+	int action, link_ok, linkdnrc;
+	enum fw_port_type port_type;
 
 	/* Extract the various fields from the Port Information message.
 	 */
+	action = FW_PORT_CMD_ACTION_G(be32_to_cpu(cmd->action_to_len16));
 	switch (action) {
 	case FW_PORT_ACTION_GET_PORT_INFO: {
 		u32 lstatus = be32_to_cpu(cmd->u.info.lstatus_to_modtype);
@@ -8611,6 +8612,7 @@
 	}
 
 	fec = fwcap_to_cc_fec(acaps);
+	adv_fc = fwcap_to_cc_pause(acaps);
 	fc = fwcap_to_cc_pause(linkattr);
 	speed = fwcap_to_speed(linkattr);
 
@@ -8667,7 +8669,9 @@
 	}
 
 	if (link_ok != lc->link_ok || speed != lc->speed ||
-	    fc != lc->fc || fec != lc->fec) {	/* something changed */
+	    fc != lc->fc || adv_fc != lc->advertised_fc ||
+	    fec != lc->fec) {
+		/* something changed */
 		if (!link_ok && lc->link_ok) {
 			lc->link_down_rc = linkdnrc;
 			dev_warn_ratelimited(adapter->pdev_dev,
@@ -8677,6 +8681,7 @@
 		}
 		lc->link_ok = link_ok;
 		lc->speed = speed;
+		lc->advertised_fc = adv_fc;
 		lc->fc = fc;
 		lc->fec = fec;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
@@ -219,6 +219,7 @@
 	CH_PCI_ID_TABLE_FENTRY(0x6089), /* Custom T62100-KR */
 	CH_PCI_ID_TABLE_FENTRY(0x608a), /* Custom T62100-CR */
 	CH_PCI_ID_TABLE_FENTRY(0x608b), /* Custom T6225-CR */
+	CH_PCI_ID_TABLE_FENTRY(0x6092), /* Custom T62100-CR-LOM */
 CH_PCI_DEVICE_ID_TABLE_DEFINE_END;
 
 #endif /* __T4_PCI_ID_TBL_H__ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
@@ -1900,6 +1900,9 @@
 
 #define MAC_PORT_CFG2_A 0x818
 
+#define MAC_PORT_PTP_SUM_LO_A 0x990
+#define MAC_PORT_PTP_SUM_HI_A 0x994
+
 #define MPS_CMN_CTL_A	0x9000
 
 #define COUNTPAUSEMCRX_S    5
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h
@@ -50,6 +50,10 @@
 #define TCB_RQ_START_M		0x3ffffffULL
 #define TCB_RQ_START_V(x)	((x) << TCB_RQ_START_S)
 
+#define TF_DROP_S		22
+#define TF_DIRECT_STEER_S	23
+#define TF_LPBK_S		59
+
 #define TF_CCTRL_ECE_S		60
 #define TF_CCTRL_CWR_S		61
 #define TF_CCTRL_RFR_S		62
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
@@ -1690,8 +1690,8 @@
 	struct port_info *pi = netdev_priv(dev);
 
 	pauseparam->autoneg = (pi->link_cfg.requested_fc & PAUSE_AUTONEG) != 0;
-	pauseparam->rx_pause = (pi->link_cfg.fc & PAUSE_RX) != 0;
-	pauseparam->tx_pause = (pi->link_cfg.fc & PAUSE_TX) != 0;
+	pauseparam->rx_pause = (pi->link_cfg.advertised_fc & PAUSE_RX) != 0;
+	pauseparam->tx_pause = (pi->link_cfg.advertised_fc & PAUSE_TX) != 0;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4vf/t4vf_common.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4vf/t4vf_common.h
@@ -135,6 +135,7 @@
 
 	enum cc_pause	requested_fc;	/* flow control user has requested */
 	enum cc_pause	fc;		/* actual link flow control */
+	enum cc_pause   advertised_fc;  /* actual advertised flow control */
 
 	enum cc_fec	auto_fec;	/* Forward Error Correction: */
 	enum cc_fec	requested_fec;	/*   "automatic" (IEEE 802.3), */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c
@@ -1913,16 +1913,16 @@
 static void t4vf_handle_get_port_info(struct port_info *pi,
 				      const struct fw_port_cmd *cmd)
 {
-	int action = FW_PORT_CMD_ACTION_G(be32_to_cpu(cmd->action_to_len16));
-	struct adapter *adapter = pi->adapter;
+	fw_port_cap32_t pcaps, acaps, lpacaps, linkattr;
 	struct link_config *lc = &pi->link_cfg;
-	int link_ok, linkdnrc;
-	enum fw_port_type port_type;
+	struct adapter *adapter = pi->adapter;
+	unsigned int speed, fc, fec, adv_fc;
 	enum fw_port_module_type mod_type;
-	unsigned int speed, fc, fec;
-	fw_port_cap32_t pcaps, acaps, lpacaps, linkattr;
+	int action, link_ok, linkdnrc;
+	enum fw_port_type port_type;
 
 	/* Extract the various fields from the Port Information message. */
+	action = FW_PORT_CMD_ACTION_G(be32_to_cpu(cmd->action_to_len16));
 	switch (action) {
 	case FW_PORT_ACTION_GET_PORT_INFO: {
 		u32 lstatus = be32_to_cpu(cmd->u.info.lstatus_to_modtype);
@@ -1982,6 +1982,7 @@
 	}
 
 	fec = fwcap_to_cc_fec(acaps);
+	adv_fc = fwcap_to_cc_pause(acaps);
 	fc = fwcap_to_cc_pause(linkattr);
 	speed = fwcap_to_speed(linkattr);
 
@@ -2012,7 +2013,9 @@
 	}
 
 	if (link_ok != lc->link_ok || speed != lc->speed ||
-	    fc != lc->fc || fec != lc->fec) {	/* something changed */
+	    fc != lc->fc || adv_fc != lc->advertised_fc ||
+	    fec != lc->fec) {
+		/* something changed */
 		if (!link_ok && lc->link_ok) {
 			lc->link_down_rc = linkdnrc;
 			dev_warn_ratelimited(adapter->pdev_dev,
@@ -2022,6 +2025,7 @@
 		}
 		lc->link_ok = link_ok;
 		lc->speed = speed;
+		lc->advertised_fc = adv_fc;
 		lc->fc = fc;
 		lc->fec = fec;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cisco/enic/enic.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cisco/enic/enic.h
@@ -171,6 +171,7 @@
 	u16 num_vfs;
 #endif
 	spinlock_t enic_api_lock;
+	bool enic_api_busy;
 	struct enic_port_profile *pp;
 
 	/* work queue cache line section */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cisco/enic/enic_api.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cisco/enic/enic_api.c
@@ -34,6 +34,12 @@
 	struct vnic_dev *vdev = enic->vdev;
 
 	spin_lock(&enic->enic_api_lock);
+	while (enic->enic_api_busy) {
+		spin_unlock(&enic->enic_api_lock);
+		cpu_relax();
+		spin_lock(&enic->enic_api_lock);
+	}
+
 	spin_lock_bh(&enic->devcmd_lock);
 
 	vnic_dev_cmd_proxy_by_index_start(vdev, vf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cisco/enic/enic_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cisco/enic/enic_main.c
@@ -2013,10 +2013,10 @@
 		napi_disable(&enic->napi[i]);
 
 	netif_carrier_off(netdev);
-	netif_tx_disable(netdev);
 	if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX)
 		for (i = 0; i < enic->wq_count; i++)
 			napi_disable(&enic->napi[enic_cq_wq(enic, i)]);
+	netif_tx_disable(netdev);
 
 	if (!enic_is_dynamic(enic) && !enic_is_sriov_vf(enic))
 		enic_dev_del_station_addr(enic);
@@ -2142,8 +2142,6 @@
 	int done;
 	int err;
 
-	BUG_ON(in_interrupt());
-
 	err = start(vdev, arg);
 	if (err)
 		return err;
@@ -2331,6 +2329,13 @@
 		rss_hash_bits, rss_base_cpu, rss_enable);
 }
 
+static void enic_set_api_busy(struct enic *enic, bool busy)
+{
+	spin_lock(&enic->enic_api_lock);
+	enic->enic_api_busy = busy;
+	spin_unlock(&enic->enic_api_lock);
+}
+
 static void enic_reset(struct work_struct *work)
 {
 	struct enic *enic = container_of(work, struct enic, reset);
@@ -2340,7 +2345,9 @@
 
 	rtnl_lock();
 
-	spin_lock(&enic->enic_api_lock);
+	/* Stop any activity from infiniband */
+	enic_set_api_busy(enic, true);
+
 	enic_stop(enic->netdev);
 	enic_dev_soft_reset(enic);
 	enic_reset_addr_lists(enic);
@@ -2348,7 +2355,10 @@
 	enic_set_rss_nic_cfg(enic);
 	enic_dev_set_ig_vlan_rewrite_mode(enic);
 	enic_open(enic->netdev);
-	spin_unlock(&enic->enic_api_lock);
+
+	/* Allow infiniband to fiddle with the device again */
+	enic_set_api_busy(enic, false);
+
 	call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev);
 
 	rtnl_unlock();
@@ -2360,7 +2370,9 @@
 
 	rtnl_lock();
 
-	spin_lock(&enic->enic_api_lock);
+	/* Stop any activity from infiniband */
+	enic_set_api_busy(enic, true);
+
 	enic_dev_hang_notify(enic);
 	enic_stop(enic->netdev);
 	enic_dev_hang_reset(enic);
@@ -2369,7 +2381,10 @@
 	enic_set_rss_nic_cfg(enic);
 	enic_dev_set_ig_vlan_rewrite_mode(enic);
 	enic_open(enic->netdev);
-	spin_unlock(&enic->enic_api_lock);
+
+	/* Allow infiniband to fiddle with the device again */
+	enic_set_api_busy(enic, false);
+
 	call_netdevice_notifiers(NETDEV_REBOOT, enic->netdev);
 
 	rtnl_unlock();
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/cortina/gemini.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/cortina/gemini.c
@@ -576,6 +576,8 @@
 
 	if (port->txq_dma_base & ~DMA_Q_BASE_MASK) {
 		dev_warn(geth->dev, "TX queue base is not aligned\n");
+		dma_free_coherent(geth->dev, len * sizeof(*desc_ring),
+				  desc_ring, port->txq_dma_base);
 		kfree(skb_tab);
 		return -ENOMEM;
 	}
@@ -2386,7 +2388,7 @@
 
 	dev_info(dev, "probe %s ID %d\n", dev_name(dev), id);
 
-	netdev = alloc_etherdev_mq(sizeof(*port), TX_QUEUE_NUM);
+	netdev = devm_alloc_etherdev_mqs(dev, sizeof(*port), TX_QUEUE_NUM, TX_QUEUE_NUM);
 	if (!netdev) {
 		dev_err(dev, "Can't allocate ethernet device #%d\n", id);
 		return -ENOMEM;
@@ -2443,7 +2445,8 @@
 	port->reset = devm_reset_control_get_exclusive(dev, NULL);
 	if (IS_ERR(port->reset)) {
 		dev_err(dev, "no reset\n");
-		return PTR_ERR(port->reset);
+		ret = PTR_ERR(port->reset);
+		goto unprepare;
 	}
 	reset_control_reset(port->reset);
 	usleep_range(100, 500);
@@ -2499,23 +2502,24 @@
 					port_names[port->id],
 					port);
 	if (ret)
-		return ret;
+		goto unprepare;
 
 	ret = register_netdev(netdev);
-	if (!ret) {
+	if (ret)
+		goto unprepare;
+
+	netdev_info(netdev,
+		    "irq %d, DMA @ 0x%pap, GMAC @ 0x%pap\n",
+		    port->irq, &dmares->start,
+		    &gmacres->start);
+	ret = gmac_setup_phy(netdev);
+	if (ret)
 		netdev_info(netdev,
-			    "irq %d, DMA @ 0x%pap, GMAC @ 0x%pap\n",
-			    port->irq, &dmares->start,
-			    &gmacres->start);
-		ret = gmac_setup_phy(netdev);
-		if (ret)
-			netdev_info(netdev,
-				    "PHY init failed, deferring to ifup time\n");
-		return 0;
-	}
+			    "PHY init failed, deferring to ifup time\n");
+	return 0;
 
-	port->netdev = NULL;
-	free_netdev(netdev);
+unprepare:
+	clk_disable_unprepare(port->pclk);
 	return ret;
 }
 
@@ -2524,7 +2528,6 @@
 	struct gemini_ethernet_port *port = platform_get_drvdata(pdev);
 
 	gemini_port_remove(port);
-	free_netdev(port->netdev);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/davicom/dm9000.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/davicom/dm9000.c
@@ -134,6 +134,8 @@
 	u32		wake_state;
 
 	int		ip_summed;
+
+	struct regulator *power_supply;
 };
 
 /* debug code */
@@ -1405,6 +1407,8 @@
 	mac_addr = of_get_mac_address(np);
 	if (!IS_ERR(mac_addr))
 		ether_addr_copy(pdata->dev_addr, mac_addr);
+	else if (PTR_ERR(mac_addr) == -EPROBE_DEFER)
+		return ERR_CAST(mac_addr);
 
 	return pdata;
 }
@@ -1452,7 +1456,7 @@
 		if (ret) {
 			dev_err(dev, "failed to request reset gpio %d: %d\n",
 				reset_gpios, ret);
-			return -ENODEV;
+			goto out_regulator_disable;
 		}
 
 		/* According to manual PWRST# Low Period Min 1ms */
@@ -1464,8 +1468,10 @@
 
 	if (!pdata) {
 		pdata = dm9000_parse_dt(&pdev->dev);
-		if (IS_ERR(pdata))
-			return PTR_ERR(pdata);
+		if (IS_ERR(pdata)) {
+			ret = PTR_ERR(pdata);
+			goto out_regulator_disable;
+		}
 	}
 
 	/* Init network device */
@@ -1482,6 +1488,8 @@
 
 	db->dev = &pdev->dev;
 	db->ndev = ndev;
+	if (!IS_ERR(power))
+		db->power_supply = power;
 
 	spin_lock_init(&db->lock);
 	mutex_init(&db->addr_lock);
@@ -1706,6 +1714,10 @@
 	dm9000_release_board(pdev, db);
 	free_netdev(ndev);
 
+out_regulator_disable:
+	if (!IS_ERR(power))
+		regulator_disable(power);
+
 	return ret;
 }
 
@@ -1763,10 +1775,13 @@
 dm9000_drv_remove(struct platform_device *pdev)
 {
 	struct net_device *ndev = platform_get_drvdata(pdev);
+	struct board_info *dm = to_dm9000_board(ndev);
 
 	unregister_netdev(ndev);
-	dm9000_release_board(pdev, netdev_priv(ndev));
+	dm9000_release_board(pdev, dm);
 	free_netdev(ndev);		/* free device structure */
+	if (dm->power_supply)
+		regulator_disable(dm->power_supply);
 
 	dev_dbg(&pdev->dev, "released and freed device\n");
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/dec/tulip/de2104x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/dec/tulip/de2104x.c
@@ -91,7 +91,7 @@
 #define DSL			CONFIG_DE2104X_DSL
 #endif
 
-#define DE_RX_RING_SIZE		64
+#define DE_RX_RING_SIZE		128
 #define DE_TX_RING_SIZE		64
 #define DE_RING_BYTES		\
 		((sizeof(struct de_desc) * DE_RX_RING_SIZE) +	\
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/dec/tulip/dmfe.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/dec/tulip/dmfe.c
@@ -2214,15 +2214,16 @@
 	if (cr6set)
 		dmfe_cr6_user_set = cr6set;
 
- 	switch(mode) {
-   	case DMFE_10MHF:
+	switch (mode) {
+	case DMFE_10MHF:
 	case DMFE_100MHF:
 	case DMFE_10MFD:
 	case DMFE_100MFD:
 	case DMFE_1M_HPNA:
 		dmfe_media_mode = mode;
 		break;
-	default:dmfe_media_mode = DMFE_AUTO;
+	default:
+		dmfe_media_mode = DMFE_AUTO;
 		break;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/dec/tulip/uli526x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/dec/tulip/uli526x.c
@@ -1809,8 +1809,8 @@
 	if (cr6set)
 		uli526x_cr6_user_set = cr6set;
 
- 	switch (mode) {
-   	case ULI526X_10MHF:
+	switch (mode) {
+	case ULI526X_10MHF:
 	case ULI526X_100MHF:
 	case ULI526X_10MFD:
 	case ULI526X_100MFD:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ethoc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ethoc.c
@@ -1207,7 +1207,7 @@
 	ret = mdiobus_register(priv->mdio);
 	if (ret) {
 		dev_err(&netdev->dev, "failed to register MDIO bus\n");
-		goto free2;
+		goto free3;
 	}
 
 	ret = ethoc_mdio_probe(netdev);
@@ -1239,6 +1239,7 @@
 	netif_napi_del(&priv->napi);
 error:
 	mdiobus_unregister(priv->mdio);
+free3:
 	mdiobus_free(priv->mdio);
 free2:
 	clk_disable_unprepare(priv->clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/faraday/ftgmac100.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/faraday/ftgmac100.c
@@ -1807,6 +1807,11 @@
 		priv->rxdes0_edorr_mask = BIT(30);
 		priv->txdes0_edotr_mask = BIT(30);
 		priv->is_aspeed = true;
+		/* Disable ast2600 problematic HW arbitration */
+		if (of_device_is_compatible(np, "aspeed,ast2600-mac")) {
+			iowrite32(FTGMAC100_TM_DEFAULT,
+				  priv->base + FTGMAC100_OFFSET_TM);
+		}
 	} else {
 		priv->rxdes0_edorr_mask = BIT(15);
 		priv->txdes0_edotr_mask = BIT(15);
@@ -1886,6 +1891,8 @@
 	return 0;
 
 err_ncsi_dev:
+	if (priv->ndev)
+		ncsi_unregister_dev(priv->ndev);
 err_register_netdev:
 	ftgmac100_destroy_mdio(netdev);
 err_setup_mdio:
@@ -1906,6 +1913,8 @@
 	netdev = platform_get_drvdata(pdev);
 	priv = netdev_priv(netdev);
 
+	if (priv->ndev)
+		ncsi_unregister_dev(priv->ndev);
 	unregister_netdev(netdev);
 
 	clk_disable_unprepare(priv->clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/faraday/ftgmac100.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/faraday/ftgmac100.h
@@ -170,6 +170,14 @@
 #define FTGMAC100_MACCR_SW_RST		(1 << 31)
 
 /*
+ * test mode control register
+ */
+#define FTGMAC100_TM_RQ_TX_VALID_DIS (1 << 28)
+#define FTGMAC100_TM_RQ_RR_IDLE_PREV (1 << 27)
+#define FTGMAC100_TM_DEFAULT                                                   \
+	(FTGMAC100_TM_RQ_TX_VALID_DIS | FTGMAC100_TM_RQ_RR_IDLE_PREV)
+
+/*
  * PHY control register
  */
 #define FTGMAC100_PHYCR_MDC_CYCTHR_MASK	0x3f
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/Kconfig
@@ -77,6 +77,7 @@
 	depends on QUICC_ENGINE
 	select FSL_PQ_MDIO
 	select PHYLIB
+	select FIXED_PHY
 	---help---
 	  This driver supports the Gigabit Ethernet mode of the QUICC Engine,
 	  which is available on some Freescale SOCs.
@@ -90,6 +91,7 @@
 	depends on HAS_DMA
 	select FSL_PQ_MDIO
 	select PHYLIB
+	select FIXED_PHY
 	select CRC32
 	---help---
 	  This driver supports the Gigabit TSEC on the MPC83xx, MPC85xx,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/dpaa/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/dpaa/Kconfig
@@ -3,6 +3,7 @@
 	tristate "DPAA Ethernet"
 	depends on FSL_DPAA && FSL_FMAN
 	select PHYLIB
+	select FIXED_PHY
 	select FSL_FMAN_MAC
 	---help---
 	  Data Path Acceleration Architecture Ethernet driver,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -1600,13 +1600,15 @@
  * Skb freeing is not handled here.
  *
  * This function may be called on error paths in the Tx function, so guard
- * against cases when not all fd relevant fields were filled in.
+ * against cases when not all fd relevant fields were filled in. To avoid
+ * reading the invalid transmission timestamp for the error paths set ts to
+ * false.
  *
  * Return the skb backpointer, since for S/G frames the buffer containing it
  * gets freed here.
  */
 static struct sk_buff *dpaa_cleanup_tx_fd(const struct dpaa_priv *priv,
-					  const struct qm_fd *fd)
+					  const struct qm_fd *fd, bool ts)
 {
 	const enum dma_data_direction dma_dir = DMA_TO_DEVICE;
 	struct device *dev = priv->net_dev->dev.parent;
@@ -1620,18 +1622,6 @@
 	skbh = (struct sk_buff **)phys_to_virt(addr);
 	skb = *skbh;
 
-	if (priv->tx_tstamp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) {
-		memset(&shhwtstamps, 0, sizeof(shhwtstamps));
-
-		if (!fman_port_get_tstamp(priv->mac_dev->port[TX], (void *)skbh,
-					  &ns)) {
-			shhwtstamps.hwtstamp = ns_to_ktime(ns);
-			skb_tstamp_tx(skb, &shhwtstamps);
-		} else {
-			dev_warn(dev, "fman_port_get_tstamp failed!\n");
-		}
-	}
-
 	if (unlikely(qm_fd_get_format(fd) == qm_fd_sg)) {
 		nr_frags = skb_shinfo(skb)->nr_frags;
 		dma_unmap_single(dev, addr,
@@ -1654,14 +1644,29 @@
 			dma_unmap_page(dev, qm_sg_addr(&sgt[i]),
 				       qm_sg_entry_get_len(&sgt[i]), dma_dir);
 		}
-
-		/* Free the page frag that we allocated on Tx */
-		skb_free_frag(phys_to_virt(addr));
 	} else {
 		dma_unmap_single(dev, addr,
 				 skb_tail_pointer(skb) - (u8 *)skbh, dma_dir);
 	}
 
+	/* DMA unmapping is required before accessing the HW provided info */
+	if (ts && priv->tx_tstamp &&
+	    skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) {
+		memset(&shhwtstamps, 0, sizeof(shhwtstamps));
+
+		if (!fman_port_get_tstamp(priv->mac_dev->port[TX], (void *)skbh,
+					  &ns)) {
+			shhwtstamps.hwtstamp = ns_to_ktime(ns);
+			skb_tstamp_tx(skb, &shhwtstamps);
+		} else {
+			dev_warn(dev, "fman_port_get_tstamp failed!\n");
+		}
+	}
+
+	if (qm_fd_get_format(fd) == qm_fd_sg)
+		/* Free the page frag that we allocated on Tx */
+		skb_free_frag(phys_to_virt(addr));
+
 	return skb;
 }
 
@@ -2114,7 +2119,7 @@
 	if (likely(dpaa_xmit(priv, percpu_stats, queue_mapping, &fd) == 0))
 		return NETDEV_TX_OK;
 
-	dpaa_cleanup_tx_fd(priv, &fd);
+	dpaa_cleanup_tx_fd(priv, &fd, false);
 skb_to_fd_failed:
 enomem:
 	percpu_stats->tx_errors++;
@@ -2160,7 +2165,7 @@
 
 	percpu_priv->stats.tx_errors++;
 
-	skb = dpaa_cleanup_tx_fd(priv, fd);
+	skb = dpaa_cleanup_tx_fd(priv, fd, false);
 	dev_kfree_skb(skb);
 }
 
@@ -2200,7 +2205,7 @@
 
 	percpu_priv->tx_confirm++;
 
-	skb = dpaa_cleanup_tx_fd(priv, fd);
+	skb = dpaa_cleanup_tx_fd(priv, fd, true);
 
 	consume_skb(skb);
 }
@@ -2430,7 +2435,7 @@
 	percpu_priv->stats.tx_fifo_errors++;
 	count_ern(percpu_priv, msg);
 
-	skb = dpaa_cleanup_tx_fd(priv, fd);
+	skb = dpaa_cleanup_tx_fd(priv, fd, false);
 	dev_kfree_skb_any(skb);
 }
 
@@ -2478,6 +2483,9 @@
 	mac_dev->adjust_link(mac_dev);
 }
 
+/* The Aquantia PHYs are capable of performing rate adaptation */
+#define PHY_VEND_AQUANTIA	0x03a1b400
+
 static int dpaa_phy_init(struct net_device *net_dev)
 {
 	__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
@@ -2496,9 +2504,14 @@
 		return -ENODEV;
 	}
 
-	/* Remove any features not supported by the controller */
-	ethtool_convert_legacy_u32_to_link_mode(mask, mac_dev->if_support);
-	linkmode_and(phy_dev->supported, phy_dev->supported, mask);
+	/* Unless the PHY is capable of rate adaptation */
+	if (mac_dev->phy_if != PHY_INTERFACE_MODE_XGMII ||
+	    ((phy_dev->drv->phy_id & GENMASK(31, 10)) != PHY_VEND_AQUANTIA)) {
+		/* remove any features not supported by the controller */
+		ethtool_convert_legacy_u32_to_link_mode(mask,
+							mac_dev->if_support);
+		linkmode_and(phy_dev->supported, phy_dev->supported, mask);
+	}
 
 	phy_support_asym_pause(phy_dev);
 
@@ -2757,9 +2770,7 @@
 	headroom = (u16)(bl->priv_data_size + DPAA_PARSE_RESULTS_SIZE +
 		DPAA_TIME_STAMP_SIZE + DPAA_HASH_RESULTS_SIZE);
 
-	return DPAA_FD_DATA_ALIGNMENT ? ALIGN(headroom,
-					      DPAA_FD_DATA_ALIGNMENT) :
-					headroom;
+	return ALIGN(headroom, DPAA_FD_DATA_ALIGNMENT);
 }
 
 static int dpaa_eth_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -86,7 +86,7 @@
 	for (i = 1; i < DPAA2_ETH_MAX_SG_ENTRIES; i++) {
 		addr = dpaa2_sg_get_addr(&sgt[i]);
 		sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr);
-		dma_unmap_page(dev, addr, DPAA2_ETH_RX_BUF_SIZE,
+		dma_unmap_page(dev, addr, priv->rx_buf_size,
 			       DMA_BIDIRECTIONAL);
 
 		free_pages((unsigned long)sg_vaddr, 0);
@@ -144,7 +144,7 @@
 		/* Get the address and length from the S/G entry */
 		sg_addr = dpaa2_sg_get_addr(sge);
 		sg_vaddr = dpaa2_iova_to_virt(priv->iommu_domain, sg_addr);
-		dma_unmap_page(dev, sg_addr, DPAA2_ETH_RX_BUF_SIZE,
+		dma_unmap_page(dev, sg_addr, priv->rx_buf_size,
 			       DMA_BIDIRECTIONAL);
 
 		sg_length = dpaa2_sg_get_len(sge);
@@ -185,7 +185,7 @@
 				(page_address(page) - page_address(head_page));
 
 			skb_add_rx_frag(skb, i - 1, head_page, page_offset,
-					sg_length, DPAA2_ETH_RX_BUF_SIZE);
+					sg_length, priv->rx_buf_size);
 		}
 
 		if (dpaa2_sg_is_final(sge))
@@ -211,7 +211,7 @@
 
 	for (i = 0; i < count; i++) {
 		vaddr = dpaa2_iova_to_virt(priv->iommu_domain, buf_array[i]);
-		dma_unmap_page(dev, buf_array[i], DPAA2_ETH_RX_BUF_SIZE,
+		dma_unmap_page(dev, buf_array[i], priv->rx_buf_size,
 			       DMA_BIDIRECTIONAL);
 		free_pages((unsigned long)vaddr, 0);
 	}
@@ -331,7 +331,7 @@
 		break;
 	case XDP_REDIRECT:
 		dma_unmap_page(priv->net_dev->dev.parent, addr,
-			       DPAA2_ETH_RX_BUF_SIZE, DMA_BIDIRECTIONAL);
+			       priv->rx_buf_size, DMA_BIDIRECTIONAL);
 		ch->buf_count--;
 		xdp.data_hard_start = vaddr;
 		err = xdp_do_redirect(priv->net_dev, &xdp, xdp_prog);
@@ -370,7 +370,7 @@
 	trace_dpaa2_rx_fd(priv->net_dev, fd);
 
 	vaddr = dpaa2_iova_to_virt(priv->iommu_domain, addr);
-	dma_sync_single_for_cpu(dev, addr, DPAA2_ETH_RX_BUF_SIZE,
+	dma_sync_single_for_cpu(dev, addr, priv->rx_buf_size,
 				DMA_BIDIRECTIONAL);
 
 	fas = dpaa2_get_fas(vaddr, false);
@@ -389,13 +389,13 @@
 			return;
 		}
 
-		dma_unmap_page(dev, addr, DPAA2_ETH_RX_BUF_SIZE,
+		dma_unmap_page(dev, addr, priv->rx_buf_size,
 			       DMA_BIDIRECTIONAL);
 		skb = build_linear_skb(ch, fd, vaddr);
 	} else if (fd_format == dpaa2_fd_sg) {
 		WARN_ON(priv->xdp_prog);
 
-		dma_unmap_page(dev, addr, DPAA2_ETH_RX_BUF_SIZE,
+		dma_unmap_page(dev, addr, priv->rx_buf_size,
 			       DMA_BIDIRECTIONAL);
 		skb = build_frag_skb(priv, ch, buf_data);
 		free_pages((unsigned long)vaddr, 0);
@@ -963,7 +963,7 @@
 		if (!page)
 			goto err_alloc;
 
-		addr = dma_map_page(dev, page, 0, DPAA2_ETH_RX_BUF_SIZE,
+		addr = dma_map_page(dev, page, 0, priv->rx_buf_size,
 				    DMA_BIDIRECTIONAL);
 		if (unlikely(dma_mapping_error(dev, addr)))
 			goto err_map;
@@ -973,7 +973,7 @@
 		/* tracing point */
 		trace_dpaa2_eth_buf_seed(priv->net_dev,
 					 page, DPAA2_ETH_RX_BUF_RAW_SIZE,
-					 addr, DPAA2_ETH_RX_BUF_SIZE,
+					 addr, priv->rx_buf_size,
 					 bpid);
 	}
 
@@ -1680,7 +1680,7 @@
 	int mfl, linear_mfl;
 
 	mfl = DPAA2_ETH_L2_MAX_FRM(mtu);
-	linear_mfl = DPAA2_ETH_RX_BUF_SIZE - DPAA2_ETH_RX_HWA_SIZE -
+	linear_mfl = priv->rx_buf_size - DPAA2_ETH_RX_HWA_SIZE -
 		     dpaa2_eth_rx_head_room(priv) - XDP_PACKET_HEADROOM;
 
 	if (mfl > linear_mfl) {
@@ -1981,7 +1981,7 @@
 	int i;
 
 	if (type != TC_SETUP_QDISC_MQPRIO)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	mqprio->hw = TC_MQPRIO_HW_OFFLOAD_TCS;
 	num_queues = dpaa2_eth_queue_count(priv);
@@ -1993,7 +1993,7 @@
 	if (num_tc  > dpaa2_eth_tc_count(priv)) {
 		netdev_err(net_dev, "Max %d traffic classes supported\n",
 			   dpaa2_eth_tc_count(priv));
-		return -EINVAL;
+		return -EOPNOTSUPP;
 	}
 
 	if (!num_tc) {
@@ -2090,7 +2090,7 @@
 free:
 	fsl_mc_object_free(dpcon);
 
-	return NULL;
+	return ERR_PTR(err);
 }
 
 static void free_dpcon(struct dpaa2_eth_priv *priv,
@@ -2114,8 +2114,8 @@
 		return NULL;
 
 	channel->dpcon = setup_dpcon(priv);
-	if (IS_ERR_OR_NULL(channel->dpcon)) {
-		err = PTR_ERR_OR_ZERO(channel->dpcon);
+	if (IS_ERR(channel->dpcon)) {
+		err = PTR_ERR(channel->dpcon);
 		goto err_setup;
 	}
 
@@ -2432,6 +2432,11 @@
 	else
 		rx_buf_align = DPAA2_ETH_RX_BUF_ALIGN;
 
+	/* We need to ensure that the buffer size seen by WRIOP is a multiple
+	 * of 64 or 256 bytes depending on the WRIOP version.
+	 */
+	priv->rx_buf_size = ALIGN_DOWN(DPAA2_ETH_RX_BUF_SIZE, rx_buf_align);
+
 	/* tx buffer */
 	buf_layout.private_data_size = DPAA2_ETH_SWA_SIZE;
 	buf_layout.pass_timestamp = true;
@@ -2649,8 +2654,10 @@
 
 	priv->cls_rules = devm_kzalloc(dev, sizeof(struct dpaa2_eth_cls_rule) *
 				       dpaa2_eth_fs_count(priv), GFP_KERNEL);
-	if (!priv->cls_rules)
+	if (!priv->cls_rules) {
+		err = -ENOMEM;
 		goto close;
+	}
 
 	return 0;
 
@@ -3096,7 +3103,7 @@
 	pools_params.num_dpbp = 1;
 	pools_params.pools[0].dpbp_id = priv->dpbp_dev->obj_desc.id;
 	pools_params.pools[0].backup_pool = 0;
-	pools_params.pools[0].buffer_size = DPAA2_ETH_RX_BUF_SIZE;
+	pools_params.pools[0].buffer_size = priv->rx_buf_size;
 	err = dpni_set_pools(priv->mc_io, 0, priv->mc_token, &pools_params);
 	if (err) {
 		dev_err(dev, "dpni_set_pools() failed\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
@@ -373,6 +373,7 @@
 	u16 tx_data_offset;
 
 	struct fsl_mc_device *dpbp_dev;
+	u16 rx_buf_size;
 	u16 bpid;
 	struct iommu_domain *iommu_domain;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
@@ -216,7 +216,7 @@
 		if (err == -EINVAL)
 			/* Older firmware versions don't support all pages */
 			memset(&dpni_stats, 0, sizeof(dpni_stats));
-		else
+		else if (err)
 			netdev_warn(net_dev, "dpni_get_stats(%d) failed\n", j);
 
 		num_cnt = dpni_stats_page_size[j] / sizeof(u64);
@@ -590,7 +590,7 @@
 
 static int update_cls_rule(struct net_device *net_dev,
 			   struct ethtool_rx_flow_spec *new_fs,
-			   int location)
+			   unsigned int location)
 {
 	struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
 	struct dpaa2_eth_cls_rule *rule;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c
@@ -160,10 +160,10 @@
 	irq = mc_dev->irqs[0];
 	ptp_qoriq->irq = irq->msi_desc->irq;
 
-	err = devm_request_threaded_irq(dev, ptp_qoriq->irq, NULL,
-					dpaa2_ptp_irq_handler_thread,
-					IRQF_NO_SUSPEND | IRQF_ONESHOT,
-					dev_name(dev), ptp_qoriq);
+	err = request_threaded_irq(ptp_qoriq->irq, NULL,
+				   dpaa2_ptp_irq_handler_thread,
+				   IRQF_NO_SUSPEND | IRQF_ONESHOT,
+				   dev_name(dev), ptp_qoriq);
 	if (err < 0) {
 		dev_err(dev, "devm_request_threaded_irq(): %d\n", err);
 		goto err_free_mc_irq;
@@ -173,18 +173,20 @@
 				   DPRTC_IRQ_INDEX, 1);
 	if (err < 0) {
 		dev_err(dev, "dprtc_set_irq_enable(): %d\n", err);
-		goto err_free_mc_irq;
+		goto err_free_threaded_irq;
 	}
 
 	err = ptp_qoriq_init(ptp_qoriq, base, &dpaa2_ptp_caps);
 	if (err)
-		goto err_free_mc_irq;
+		goto err_free_threaded_irq;
 
 	dpaa2_phc_index = ptp_qoriq->phc_index;
 	dev_set_drvdata(dev, ptp_qoriq);
 
 	return 0;
 
+err_free_threaded_irq:
+	free_irq(ptp_qoriq->irq, ptp_qoriq);
 err_free_mc_irq:
 	fsl_mc_free_irqs(mc_dev);
 err_unmap:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/enetc/enetc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -254,7 +254,7 @@
 	/* disable interrupts */
 	enetc_wr_reg(v->rbier, 0);
 
-	for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings)
+	for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
 		enetc_wr_reg(v->tbier_base + ENETC_BDR_OFF(i), 0);
 
 	napi_schedule_irqoff(&v->napi);
@@ -290,7 +290,7 @@
 	/* enable interrupts */
 	enetc_wr_reg(v->rbier, ENETC_RBIER_RXTIE);
 
-	for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings)
+	for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
 		enetc_wr_reg(v->tbier_base + ENETC_BDR_OFF(i),
 			     ENETC_TBIER_TXTIE);
 
@@ -942,7 +942,7 @@
 		enetc_free_tx_ring(priv->tx_ring[i]);
 }
 
-static int enetc_alloc_cbdr(struct device *dev, struct enetc_cbdr *cbdr)
+int enetc_alloc_cbdr(struct device *dev, struct enetc_cbdr *cbdr)
 {
 	int size = cbdr->bd_count * sizeof(struct enetc_cbd);
 
@@ -963,7 +963,7 @@
 	return 0;
 }
 
-static void enetc_free_cbdr(struct device *dev, struct enetc_cbdr *cbdr)
+void enetc_free_cbdr(struct device *dev, struct enetc_cbdr *cbdr)
 {
 	int size = cbdr->bd_count * sizeof(struct enetc_cbd);
 
@@ -971,7 +971,7 @@
 	cbdr->bd_base = NULL;
 }
 
-static void enetc_setup_cbdr(struct enetc_hw *hw, struct enetc_cbdr *cbdr)
+void enetc_setup_cbdr(struct enetc_hw *hw, struct enetc_cbdr *cbdr)
 {
 	/* set CBDR cache attributes */
 	enetc_wr(hw, ENETC_SICAR2,
@@ -991,7 +991,7 @@
 	cbdr->cir = hw->reg + ENETC_SICBDRCIR;
 }
 
-static void enetc_clear_cbdr(struct enetc_hw *hw)
+void enetc_clear_cbdr(struct enetc_hw *hw)
 {
 	enetc_wr(hw, ENETC_SICBDRMR, 0);
 }
@@ -1016,13 +1016,12 @@
 	return 0;
 }
 
-static int enetc_configure_si(struct enetc_ndev_priv *priv)
+int enetc_configure_si(struct enetc_ndev_priv *priv)
 {
 	struct enetc_si *si = priv->si;
 	struct enetc_hw *hw = &si->hw;
 	int err;
 
-	enetc_setup_cbdr(hw, &si->cbd_ring);
 	/* set SI cache attributes */
 	enetc_wr(hw, ENETC_SICAR0,
 		 ENETC_SICAR_RD_COHERENT | ENETC_SICAR_WR_COHERENT);
@@ -1068,6 +1067,8 @@
 	if (err)
 		return err;
 
+	enetc_setup_cbdr(&si->hw, &si->cbd_ring);
+
 	priv->cls_rules = kcalloc(si->num_fs_entries, sizeof(*priv->cls_rules),
 				  GFP_KERNEL);
 	if (!priv->cls_rules) {
@@ -1075,14 +1076,8 @@
 		goto err_alloc_cls;
 	}
 
-	err = enetc_configure_si(priv);
-	if (err)
-		goto err_config_si;
-
 	return 0;
 
-err_config_si:
-	kfree(priv->cls_rules);
 err_alloc_cls:
 	enetc_clear_cbdr(&si->hw);
 	enetc_free_cbdr(priv->dev, &si->cbd_ring);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/enetc/enetc.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/enetc/enetc.h
@@ -221,6 +221,7 @@
 void enetc_init_si_rings_params(struct enetc_ndev_priv *priv);
 int enetc_alloc_si_resources(struct enetc_ndev_priv *priv);
 void enetc_free_si_resources(struct enetc_ndev_priv *priv);
+int enetc_configure_si(struct enetc_ndev_priv *priv);
 
 int enetc_open(struct net_device *ndev);
 int enetc_close(struct net_device *ndev);
@@ -236,6 +237,10 @@
 void enetc_set_ethtool_ops(struct net_device *ndev);
 
 /* control buffer descriptor ring (CBDR) */
+int enetc_alloc_cbdr(struct device *dev, struct enetc_cbdr *cbdr);
+void enetc_free_cbdr(struct device *dev, struct enetc_cbdr *cbdr);
+void enetc_setup_cbdr(struct enetc_hw *hw, struct enetc_cbdr *cbdr);
+void enetc_clear_cbdr(struct enetc_hw *hw);
 int enetc_set_mac_flt_entry(struct enetc_si *si, int index,
 			    char *mac_addr, int si_map);
 int enetc_clear_mac_flt_entry(struct enetc_si *si, int index);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
@@ -141,8 +141,8 @@
 	{ ENETC_PM0_R255,   "MAC rx 128-255 byte packets" },
 	{ ENETC_PM0_R511,   "MAC rx 256-511 byte packets" },
 	{ ENETC_PM0_R1023,  "MAC rx 512-1023 byte packets" },
-	{ ENETC_PM0_R1518,  "MAC rx 1024-1518 byte packets" },
-	{ ENETC_PM0_R1519X, "MAC rx 1519 to max-octet packets" },
+	{ ENETC_PM0_R1522,  "MAC rx 1024-1522 byte packets" },
+	{ ENETC_PM0_R1523X, "MAC rx 1523 to max-octet packets" },
 	{ ENETC_PM0_ROVR,   "MAC rx oversized packets" },
 	{ ENETC_PM0_RJBR,   "MAC rx jabber packets" },
 	{ ENETC_PM0_RFRG,   "MAC rx fragment packets" },
@@ -161,9 +161,13 @@
 	{ ENETC_PM0_TBCA,   "MAC tx broadcast frames" },
 	{ ENETC_PM0_TPKT,   "MAC tx packets" },
 	{ ENETC_PM0_TUND,   "MAC tx undersized packets" },
+	{ ENETC_PM0_T64,    "MAC tx 64 byte packets" },
 	{ ENETC_PM0_T127,   "MAC tx 65-127 byte packets" },
+	{ ENETC_PM0_T255,   "MAC tx 128-255 byte packets" },
+	{ ENETC_PM0_T511,   "MAC tx 256-511 byte packets" },
 	{ ENETC_PM0_T1023,  "MAC tx 512-1023 byte packets" },
-	{ ENETC_PM0_T1518,  "MAC tx 1024-1518 byte packets" },
+	{ ENETC_PM0_T1522,  "MAC tx 1024-1522 byte packets" },
+	{ ENETC_PM0_T1523X, "MAC tx 1523 to max-octet packets" },
 	{ ENETC_PM0_TCNP,   "MAC tx control packets" },
 	{ ENETC_PM0_TDFR,   "MAC tx deferred packets" },
 	{ ENETC_PM0_TMCOL,  "MAC tx multiple collisions" },
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/enetc/enetc_hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/enetc/enetc_hw.h
@@ -181,6 +181,8 @@
 #define ENETC_PTCCBSR0(n)	(0x1110 + (n) * 8) /* n = 0 to 7*/
 #define ENETC_PTCCBSR1(n)	(0x1114 + (n) * 8) /* n = 0 to 7*/
 #define ENETC_RSSHASH_KEY_SIZE	40
+#define ENETC_PRSSCAPR		0x1404
+#define ENETC_PRSSCAPR_GET_NUM_RSS(val)	(BIT((val) & 0xf) * 32)
 #define ENETC_PRSSK(n)		(0x1410 + (n) * 4) /* n = [0..9] */
 #define ENETC_PSIVLANFMR	0x1700
 #define ENETC_PSIVLANFMR_VS	BIT(0)
@@ -239,8 +241,8 @@
 #define ENETC_PM0_R255		0x8180
 #define ENETC_PM0_R511		0x8188
 #define ENETC_PM0_R1023		0x8190
-#define ENETC_PM0_R1518		0x8198
-#define ENETC_PM0_R1519X	0x81A0
+#define ENETC_PM0_R1522		0x8198
+#define ENETC_PM0_R1523X	0x81A0
 #define ENETC_PM0_ROVR		0x81A8
 #define ENETC_PM0_RJBR		0x81B0
 #define ENETC_PM0_RFRG		0x81B8
@@ -259,9 +261,13 @@
 #define ENETC_PM0_TBCA		0x8250
 #define ENETC_PM0_TPKT		0x8260
 #define ENETC_PM0_TUND		0x8268
+#define ENETC_PM0_T64		0x8270
 #define ENETC_PM0_T127		0x8278
+#define ENETC_PM0_T255		0x8280
+#define ENETC_PM0_T511		0x8288
 #define ENETC_PM0_T1023		0x8290
-#define ENETC_PM0_T1518		0x8298
+#define ENETC_PM0_T1522		0x8298
+#define ENETC_PM0_T1523X	0x82A0
 #define ENETC_PM0_TCNP		0x82C0
 #define ENETC_PM0_TDFR		0x82D0
 #define ENETC_PM0_TMCOL		0x82D8
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -809,6 +809,71 @@
 		of_node_put(priv->phy_node);
 }
 
+/* Initialize the entire shared memory for the flow steering entries
+ * of this port (PF + VFs)
+ */
+static int enetc_init_port_rfs_memory(struct enetc_si *si)
+{
+	struct enetc_cmd_rfse rfse = {0};
+	struct enetc_hw *hw = &si->hw;
+	int num_rfs, i, err = 0;
+	u32 val;
+
+	val = enetc_port_rd(hw, ENETC_PRFSCAPR);
+	num_rfs = ENETC_PRFSCAPR_GET_NUM_RFS(val);
+
+	for (i = 0; i < num_rfs; i++) {
+		err = enetc_set_fs_entry(si, &rfse, i);
+		if (err)
+			break;
+	}
+
+	return err;
+}
+
+static int enetc_init_port_rss_memory(struct enetc_si *si)
+{
+	struct enetc_hw *hw = &si->hw;
+	int num_rss, err;
+	int *rss_table;
+	u32 val;
+
+	val = enetc_port_rd(hw, ENETC_PRSSCAPR);
+	num_rss = ENETC_PRSSCAPR_GET_NUM_RSS(val);
+	if (!num_rss)
+		return 0;
+
+	rss_table = kcalloc(num_rss, sizeof(*rss_table), GFP_KERNEL);
+	if (!rss_table)
+		return -ENOMEM;
+
+	err = enetc_set_rss_table(si, rss_table, num_rss);
+
+	kfree(rss_table);
+
+	return err;
+}
+
+static void enetc_init_unused_port(struct enetc_si *si)
+{
+	struct device *dev = &si->pdev->dev;
+	struct enetc_hw *hw = &si->hw;
+	int err;
+
+	si->cbd_ring.bd_count = ENETC_CBDR_DEFAULT_SIZE;
+	err = enetc_alloc_cbdr(dev, &si->cbd_ring);
+	if (err)
+		return;
+
+	enetc_setup_cbdr(hw, &si->cbd_ring);
+
+	enetc_init_port_rfs_memory(si);
+	enetc_init_port_rss_memory(si);
+
+	enetc_clear_cbdr(hw);
+	enetc_free_cbdr(dev, &si->cbd_ring);
+}
+
 static int enetc_pf_probe(struct pci_dev *pdev,
 			  const struct pci_device_id *ent)
 {
@@ -818,11 +883,6 @@
 	struct enetc_pf *pf;
 	int err;
 
-	if (pdev->dev.of_node && !of_device_is_available(pdev->dev.of_node)) {
-		dev_info(&pdev->dev, "device is disabled, skipping\n");
-		return -ENODEV;
-	}
-
 	err = enetc_pci_probe(pdev, KBUILD_MODNAME, sizeof(*pf));
 	if (err) {
 		dev_err(&pdev->dev, "PCI probing failed\n");
@@ -836,6 +896,13 @@
 		goto err_map_pf_space;
 	}
 
+	if (pdev->dev.of_node && !of_device_is_available(pdev->dev.of_node)) {
+		enetc_init_unused_port(si);
+		dev_info(&pdev->dev, "device is disabled, skipping\n");
+		err = -ENODEV;
+		goto err_device_disabled;
+	}
+
 	pf = enetc_si_priv(si);
 	pf->si = si;
 	pf->total_vfs = pci_sriov_get_totalvfs(pdev);
@@ -863,6 +930,24 @@
 		goto err_alloc_si_res;
 	}
 
+	err = enetc_init_port_rfs_memory(si);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to initialize RFS memory\n");
+		goto err_init_port_rfs;
+	}
+
+	err = enetc_init_port_rss_memory(si);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to initialize RSS memory\n");
+		goto err_init_port_rss;
+	}
+
+	err = enetc_configure_si(priv);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to configure SI\n");
+		goto err_config_si;
+	}
+
 	err = enetc_alloc_msix(priv);
 	if (err) {
 		dev_err(&pdev->dev, "MSIX alloc failed\n");
@@ -885,14 +970,19 @@
 	return 0;
 
 err_reg_netdev:
+	enetc_mdio_remove(pf);
 	enetc_of_put_phy(priv);
 	enetc_free_msix(priv);
+err_config_si:
+err_init_port_rss:
+err_init_port_rfs:
 err_alloc_msix:
 	enetc_free_si_resources(priv);
 err_alloc_si_res:
 	si->ndev = NULL;
 	free_netdev(ndev);
 err_alloc_netdev:
+err_device_disabled:
 err_map_pf_space:
 	enetc_pci_remove(pdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/enetc/enetc_vf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/enetc/enetc_vf.c
@@ -189,6 +189,12 @@
 		goto err_alloc_si_res;
 	}
 
+	err = enetc_configure_si(priv);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to configure SI\n");
+		goto err_config_si;
+	}
+
 	err = enetc_alloc_msix(priv);
 	if (err) {
 		dev_err(&pdev->dev, "MSIX alloc failed\n");
@@ -208,6 +214,7 @@
 
 err_reg_netdev:
 	enetc_free_msix(priv);
+err_config_si:
 err_alloc_msix:
 	enetc_free_si_resources(priv);
 err_alloc_si_res:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fec.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fec.h
@@ -488,6 +488,12 @@
 	struct  sk_buff *rx_skbuff[RX_RING_SIZE];
 };
 
+struct fec_stop_mode_gpr {
+	struct regmap *gpr;
+	u8 reg;
+	u8 bit;
+};
+
 /* The FEC buffer descriptors track the ring buffers.  The rx_bd_base and
  * tx_bd_base always point to the base of the buffer descriptors.  The
  * cur_rx and cur_tx point to the currently available buffer.
@@ -562,6 +568,7 @@
 	int hwts_tx_en;
 	struct delayed_work time_keep;
 	struct regulator *reg_phy;
+	struct fec_stop_mode_gpr stop_gpr;
 
 	unsigned int tx_align;
 	unsigned int rx_align;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fec_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fec_main.c
@@ -62,6 +62,8 @@
 #include <linux/if_vlan.h>
 #include <linux/pinctrl/consumer.h>
 #include <linux/prefetch.h>
+#include <linux/mfd/syscon.h>
+#include <linux/regmap.h>
 #include <soc/imx/cpuidle.h>
 
 #include <asm/cacheflush.h>
@@ -84,6 +86,56 @@
 #define FEC_ENET_OPD_V	0xFFF0
 #define FEC_MDIO_PM_TIMEOUT  100 /* ms */
 
+struct fec_devinfo {
+	u32 quirks;
+	u8 stop_gpr_reg;
+	u8 stop_gpr_bit;
+};
+
+static const struct fec_devinfo fec_imx25_info = {
+	.quirks = FEC_QUIRK_USE_GASKET | FEC_QUIRK_MIB_CLEAR |
+		  FEC_QUIRK_HAS_FRREG,
+};
+
+static const struct fec_devinfo fec_imx27_info = {
+	.quirks = FEC_QUIRK_MIB_CLEAR | FEC_QUIRK_HAS_FRREG,
+};
+
+static const struct fec_devinfo fec_imx28_info = {
+	.quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME |
+		  FEC_QUIRK_SINGLE_MDIO | FEC_QUIRK_HAS_RACC |
+		  FEC_QUIRK_HAS_FRREG,
+};
+
+static const struct fec_devinfo fec_imx6q_info = {
+	.quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
+		  FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
+		  FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358 |
+		  FEC_QUIRK_HAS_RACC,
+	.stop_gpr_reg = 0x34,
+	.stop_gpr_bit = 27,
+};
+
+static const struct fec_devinfo fec_mvf600_info = {
+	.quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_RACC,
+};
+
+static const struct fec_devinfo fec_imx6x_info = {
+	.quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
+		  FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
+		  FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB |
+		  FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE |
+		  FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_COALESCE,
+};
+
+static const struct fec_devinfo fec_imx6ul_info = {
+	.quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
+		  FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
+		  FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR007885 |
+		  FEC_QUIRK_BUG_CAPTURE | FEC_QUIRK_HAS_RACC |
+		  FEC_QUIRK_HAS_COALESCE,
+};
+
 static struct platform_device_id fec_devtype[] = {
 	{
 		/* keep it for coldfire */
@@ -91,39 +143,25 @@
 		.driver_data = 0,
 	}, {
 		.name = "imx25-fec",
-		.driver_data = FEC_QUIRK_USE_GASKET | FEC_QUIRK_MIB_CLEAR |
-			       FEC_QUIRK_HAS_FRREG,
+		.driver_data = (kernel_ulong_t)&fec_imx25_info,
 	}, {
 		.name = "imx27-fec",
-		.driver_data = FEC_QUIRK_MIB_CLEAR | FEC_QUIRK_HAS_FRREG,
+		.driver_data = (kernel_ulong_t)&fec_imx27_info,
 	}, {
 		.name = "imx28-fec",
-		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME |
-				FEC_QUIRK_SINGLE_MDIO | FEC_QUIRK_HAS_RACC |
-				FEC_QUIRK_HAS_FRREG,
+		.driver_data = (kernel_ulong_t)&fec_imx28_info,
 	}, {
 		.name = "imx6q-fec",
-		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
-				FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
-				FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358 |
-				FEC_QUIRK_HAS_RACC,
+		.driver_data = (kernel_ulong_t)&fec_imx6q_info,
 	}, {
 		.name = "mvf600-fec",
-		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_RACC,
+		.driver_data = (kernel_ulong_t)&fec_mvf600_info,
 	}, {
 		.name = "imx6sx-fec",
-		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
-				FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
-				FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB |
-				FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE |
-				FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_COALESCE,
+		.driver_data = (kernel_ulong_t)&fec_imx6x_info,
 	}, {
 		.name = "imx6ul-fec",
-		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
-				FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
-				FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR007885 |
-				FEC_QUIRK_BUG_CAPTURE | FEC_QUIRK_HAS_RACC |
-				FEC_QUIRK_HAS_COALESCE,
+		.driver_data = (kernel_ulong_t)&fec_imx6ul_info,
 	}, {
 		/* sentinel */
 	}
@@ -1092,11 +1130,28 @@
 
 }
 
+static void fec_enet_stop_mode(struct fec_enet_private *fep, bool enabled)
+{
+	struct fec_platform_data *pdata = fep->pdev->dev.platform_data;
+	struct fec_stop_mode_gpr *stop_gpr = &fep->stop_gpr;
+
+	if (stop_gpr->gpr) {
+		if (enabled)
+			regmap_update_bits(stop_gpr->gpr, stop_gpr->reg,
+					   BIT(stop_gpr->bit),
+					   BIT(stop_gpr->bit));
+		else
+			regmap_update_bits(stop_gpr->gpr, stop_gpr->reg,
+					   BIT(stop_gpr->bit), 0);
+	} else if (pdata && pdata->sleep_mode_enable) {
+		pdata->sleep_mode_enable(enabled);
+	}
+}
+
 static void
 fec_stop(struct net_device *ndev)
 {
 	struct fec_enet_private *fep = netdev_priv(ndev);
-	struct fec_platform_data *pdata = fep->pdev->dev.platform_data;
 	u32 rmii_mode = readl(fep->hwp + FEC_R_CNTRL) & (1 << 8);
 	u32 val;
 
@@ -1125,9 +1180,7 @@
 		val = readl(fep->hwp + FEC_ECNTRL);
 		val |= (FEC_ECR_MAGICEN | FEC_ECR_SLEEP);
 		writel(val, fep->hwp + FEC_ECNTRL);
-
-		if (pdata && pdata->sleep_mode_enable)
-			pdata->sleep_mode_enable(true);
+		fec_enet_stop_mode(fep, true);
 	}
 	writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
 
@@ -1892,6 +1945,27 @@
 	return ret;
 }
 
+static void fec_enet_phy_reset_after_clk_enable(struct net_device *ndev)
+{
+	struct fec_enet_private *fep = netdev_priv(ndev);
+	struct phy_device *phy_dev = ndev->phydev;
+
+	if (phy_dev) {
+		phy_reset_after_clk_enable(phy_dev);
+	} else if (fep->phy_node) {
+		/*
+		 * If the PHY still is not bound to the MAC, but there is
+		 * OF PHY node and a matching PHY device instance already,
+		 * use the OF PHY node to obtain the PHY device instance,
+		 * and then use that PHY device instance when triggering
+		 * the PHY reset.
+		 */
+		phy_dev = of_phy_find_device(fep->phy_node);
+		phy_reset_after_clk_enable(phy_dev);
+		put_device(&phy_dev->mdio.dev);
+	}
+}
+
 static int fec_enet_clk_enable(struct net_device *ndev, bool enable)
 {
 	struct fec_enet_private *fep = netdev_priv(ndev);
@@ -1918,7 +1992,7 @@
 		if (ret)
 			goto failed_clk_ref;
 
-		phy_reset_after_clk_enable(ndev->phydev);
+		fec_enet_phy_reset_after_clk_enable(ndev);
 	} else {
 		clk_disable_unprepare(fep->clk_enet_out);
 		if (fep->clk_ptp) {
@@ -2199,8 +2273,14 @@
 {
 	struct fec_enet_private *fep = netdev_priv(ndev);
 	u32 __iomem *theregs = (u32 __iomem *)fep->hwp;
+	struct device *dev = &fep->pdev->dev;
 	u32 *buf = (u32 *)regbuf;
 	u32 i, off;
+	int ret;
+
+	ret = pm_runtime_get_sync(dev);
+	if (ret < 0)
+		return;
 
 	regs->version = fec_enet_register_version;
 
@@ -2216,6 +2296,9 @@
 		off >>= 2;
 		buf[off] = readl(&theregs[off]);
 	}
+
+	pm_runtime_mark_last_busy(dev);
+	pm_runtime_put_autosuspend(dev);
 }
 
 static int fec_enet_get_ts_info(struct net_device *ndev,
@@ -2520,15 +2603,15 @@
 		return -EINVAL;
 	}
 
-	cycle = fec_enet_us_to_itr_clock(ndev, fep->rx_time_itr);
+	cycle = fec_enet_us_to_itr_clock(ndev, ec->rx_coalesce_usecs);
 	if (cycle > 0xFFFF) {
 		dev_err(dev, "Rx coalesced usec exceed hardware limitation\n");
 		return -EINVAL;
 	}
 
-	cycle = fec_enet_us_to_itr_clock(ndev, fep->tx_time_itr);
+	cycle = fec_enet_us_to_itr_clock(ndev, ec->tx_coalesce_usecs);
 	if (cycle > 0xFFFF) {
-		dev_err(dev, "Rx coalesced usec exceed hardware limitation\n");
+		dev_err(dev, "Tx coalesced usec exceed hardware limitation\n");
 		return -EINVAL;
 	}
 
@@ -2920,16 +3003,16 @@
 	/* Init MAC prior to mii bus probe */
 	fec_restart(ndev);
 
-	/* Probe and connect to PHY when open the interface */
-	ret = fec_enet_mii_probe(ndev);
-	if (ret)
-		goto err_enet_mii_probe;
-
 	/* Call phy_reset_after_clk_enable() again if it failed during
 	 * phy_reset_after_clk_enable() before because the PHY wasn't probed.
 	 */
 	if (reset_again)
-		phy_reset_after_clk_enable(ndev->phydev);
+		fec_enet_phy_reset_after_clk_enable(ndev);
+
+	/* Probe and connect to PHY when open the interface */
+	ret = fec_enet_mii_probe(ndev);
+	if (ret)
+		goto err_enet_mii_probe;
 
 	if (fep->quirks & FEC_QUIRK_ERR006687)
 		imx6q_cpuidle_fec_irqs_used();
@@ -3389,6 +3472,37 @@
 	return irq_cnt;
 }
 
+static int fec_enet_init_stop_mode(struct fec_enet_private *fep,
+				   struct fec_devinfo *dev_info,
+				   struct device_node *np)
+{
+	struct device_node *gpr_np;
+	int ret = 0;
+
+	if (!dev_info)
+		return 0;
+
+	gpr_np = of_parse_phandle(np, "gpr", 0);
+	if (!gpr_np)
+		return 0;
+
+	fep->stop_gpr.gpr = syscon_node_to_regmap(gpr_np);
+	if (IS_ERR(fep->stop_gpr.gpr)) {
+		dev_err(&fep->pdev->dev, "could not find gpr regmap\n");
+		ret = PTR_ERR(fep->stop_gpr.gpr);
+		fep->stop_gpr.gpr = NULL;
+		goto out;
+	}
+
+	fep->stop_gpr.reg = dev_info->stop_gpr_reg;
+	fep->stop_gpr.bit = dev_info->stop_gpr_bit;
+
+out:
+	of_node_put(gpr_np);
+
+	return ret;
+}
+
 static int
 fec_probe(struct platform_device *pdev)
 {
@@ -3403,6 +3517,7 @@
 	int num_rx_qs;
 	char irq_name[8];
 	int irq_cnt;
+	struct fec_devinfo *dev_info;
 
 	fec_enet_get_queue_num(pdev, &num_tx_qs, &num_rx_qs);
 
@@ -3420,7 +3535,9 @@
 	of_id = of_match_device(fec_dt_ids, &pdev->dev);
 	if (of_id)
 		pdev->id_entry = of_id->data;
-	fep->quirks = pdev->id_entry->driver_data;
+	dev_info = (struct fec_devinfo *)pdev->id_entry->driver_data;
+	if (dev_info)
+		fep->quirks = dev_info->quirks;
 
 	fep->netdev = ndev;
 	fep->num_rx_queues = num_rx_qs;
@@ -3454,6 +3571,10 @@
 	if (of_get_property(np, "fsl,magic-packet", NULL))
 		fep->wol_flag |= FEC_WOL_HAS_MAGIC_PACKET;
 
+	ret = fec_enet_init_stop_mode(fep, dev_info, np);
+	if (ret)
+		goto failed_stop_mode;
+
 	phy_node = of_parse_phandle(np, "phy-handle", 0);
 	if (!phy_node && of_phy_is_fixed_link(np)) {
 		ret = of_phy_register_fixed_link(np);
@@ -3607,11 +3728,11 @@
 failed_irq:
 failed_init:
 	fec_ptp_stop(pdev);
-	if (fep->reg_phy)
-		regulator_disable(fep->reg_phy);
 failed_reset:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
+	if (fep->reg_phy)
+		regulator_disable(fep->reg_phy);
 failed_regulator:
 	clk_disable_unprepare(fep->clk_ahb);
 failed_clk_ahb:
@@ -3622,6 +3743,7 @@
 	if (of_phy_is_fixed_link(np))
 		of_phy_deregister_fixed_link(np);
 	of_node_put(phy_node);
+failed_stop_mode:
 failed_phy:
 	dev_id--;
 failed_ioremap:
@@ -3699,7 +3821,6 @@
 {
 	struct net_device *ndev = dev_get_drvdata(dev);
 	struct fec_enet_private *fep = netdev_priv(ndev);
-	struct fec_platform_data *pdata = fep->pdev->dev.platform_data;
 	int ret;
 	int val;
 
@@ -3717,8 +3838,8 @@
 			goto failed_clk;
 		}
 		if (fep->wol_flag & FEC_WOL_FLAG_ENABLE) {
-			if (pdata && pdata->sleep_mode_enable)
-				pdata->sleep_mode_enable(false);
+			fec_enet_stop_mode(fep, false);
+
 			val = readl(fep->hwp + FEC_ECNTRL);
 			val &= ~(FEC_ECR_MAGICEN | FEC_ECR_SLEEP);
 			writel(val, fep->hwp + FEC_ECNTRL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/Kconfig
@@ -8,3 +8,31 @@
 	help
 		Freescale Data-Path Acceleration Architecture Frame Manager
 		(FMan) support
+
+config DPAA_ERRATUM_A050385
+	bool
+	depends on ARM64 && FSL_DPAA
+	default y
+	help
+		DPAA FMan erratum A050385 software workaround implementation:
+		align buffers, data start, SG fragment length to avoid FMan DMA
+		splits.
+		FMAN DMA read or writes under heavy traffic load may cause FMAN
+		internal resource leak thus stopping further packet processing.
+		The FMAN internal queue can overflow when FMAN splits single
+		read or write transactions into multiple smaller transactions
+		such that more than 17 AXI transactions are in flight from FMAN
+		to interconnect. When the FMAN internal queue overflows, it can
+		stall further packet processing. The issue can occur with any
+		one of the following three conditions:
+		1. FMAN AXI transaction crosses 4K address boundary (Errata
+		A010022)
+		2. FMAN DMA address for an AXI transaction is not 16 byte
+		aligned, i.e. the last 4 bits of an address are non-zero
+		3. Scatter Gather (SG) frames have more than one SG buffer in
+		the SG list and any one of the buffers, except the last
+		buffer in the SG list has data size that is not a multiple
+		of 16 bytes, i.e., other than 16, 32, 48, 64, etc.
+		With any one of the above three conditions present, there is
+		likelihood of stalled FMAN packet processing, especially under
+		stress with multiple ports injecting line-rate traffic.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman.c
@@ -1,5 +1,6 @@
 /*
  * Copyright 2008-2015 Freescale Semiconductor Inc.
+ * Copyright 2020 NXP
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -566,6 +567,10 @@
 	u32 qmi_def_tnums_thresh;
 };
 
+#ifdef CONFIG_DPAA_ERRATUM_A050385
+static bool fman_has_err_a050385;
+#endif
+
 static irqreturn_t fman_exceptions(struct fman *fman,
 				   enum fman_exceptions exception)
 {
@@ -1391,8 +1396,7 @@
 {
 	struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs;
 	u16 fm_clk_freq = fman->state->fm_clk_freq;
-	u32 tmp, intgr, ts_freq;
-	u64 frac;
+	u32 tmp, intgr, ts_freq, frac;
 
 	ts_freq = (u32)(1 << fman->state->count1_micro_bit);
 	/* configure timestamp so that bit 8 will count 1 microsecond
@@ -2514,6 +2518,14 @@
 }
 EXPORT_SYMBOL(fman_bind);
 
+#ifdef CONFIG_DPAA_ERRATUM_A050385
+bool fman_has_errata_a050385(void)
+{
+	return fman_has_err_a050385;
+}
+EXPORT_SYMBOL(fman_has_errata_a050385);
+#endif
+
 static irqreturn_t fman_err_irq(int irq, void *handle)
 {
 	struct fman *fman = (struct fman *)handle;
@@ -2841,6 +2853,11 @@
 		goto fman_free;
 	}
 
+#ifdef CONFIG_DPAA_ERRATUM_A050385
+	fman_has_err_a050385 =
+		of_property_read_bool(fm_node, "fsl,erratum-a050385");
+#endif
+
 	return fman;
 
 fman_node_put:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman.h
@@ -1,5 +1,6 @@
 /*
  * Copyright 2008-2015 Freescale Semiconductor Inc.
+ * Copyright 2020 NXP
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -398,6 +399,10 @@
 
 int fman_get_rx_extra_headroom(void);
 
+#ifdef CONFIG_DPAA_ERRATUM_A050385
+bool fman_has_errata_a050385(void);
+#endif
+
 struct fman *fman_bind(struct device *dev);
 
 #endif /* __FM_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman_dtsec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman_dtsec.c
@@ -1205,7 +1205,7 @@
 		list_for_each(pos,
 			      &dtsec->multicast_addr_hash->lsts[bucket]) {
 			hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-			if (hash_entry->addr == addr) {
+			if (hash_entry && hash_entry->addr == addr) {
 				list_del_init(&hash_entry->node);
 				kfree(hash_entry);
 				break;
@@ -1218,7 +1218,7 @@
 		list_for_each(pos,
 			      &dtsec->unicast_addr_hash->lsts[bucket]) {
 			hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-			if (hash_entry->addr == addr) {
+			if (hash_entry && hash_entry->addr == addr) {
 				list_del_init(&hash_entry->node);
 				kfree(hash_entry);
 				break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman_mac.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman_mac.h
@@ -252,7 +252,7 @@
 	struct eth_hash_t *hash;
 
 	/* Allocate address hash table */
-	hash = kmalloc_array(size, sizeof(struct eth_hash_t *), GFP_KERNEL);
+	hash = kmalloc(sizeof(*hash), GFP_KERNEL);
 	if (!hash)
 		return NULL;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman_memac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman_memac.c
@@ -110,7 +110,7 @@
 /* Interface Mode Register (IF_MODE) */
 
 #define IF_MODE_MASK		0x00000003 /* 30-31 Mask on i/f mode bits */
-#define IF_MODE_XGMII		0x00000000 /* 30-31 XGMII (10G) interface */
+#define IF_MODE_10G		0x00000000 /* 30-31 10G interface */
 #define IF_MODE_GMII		0x00000002 /* 30-31 GMII (1G) interface */
 #define IF_MODE_RGMII		0x00000004
 #define IF_MODE_RGMII_AUTO	0x00008000
@@ -440,7 +440,7 @@
 	tmp = 0;
 	switch (phy_if) {
 	case PHY_INTERFACE_MODE_XGMII:
-		tmp |= IF_MODE_XGMII;
+		tmp |= IF_MODE_10G;
 		break;
 	default:
 		tmp |= IF_MODE_GMII;
@@ -856,7 +856,6 @@
 
 	tmp = ioread32be(&regs->command_config);
 	tmp &= ~CMD_CFG_PFC_MODE;
-	priority = 0;
 
 	iowrite32be(tmp, &regs->command_config);
 
@@ -986,7 +985,7 @@
 
 	list_for_each(pos, &memac->multicast_addr_hash->lsts[hash]) {
 		hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-		if (hash_entry->addr == addr) {
+		if (hash_entry && hash_entry->addr == addr) {
 			list_del_init(&hash_entry->node);
 			kfree(hash_entry);
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman_port.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman_port.c
@@ -1756,6 +1756,7 @@
 	struct fman_port *port;
 	struct fman *fman;
 	struct device_node *fm_node, *port_node;
+	struct platform_device *fm_pdev;
 	struct resource res;
 	struct resource *dev_res;
 	u32 val;
@@ -1780,8 +1781,14 @@
 		goto return_err;
 	}
 
-	fman = dev_get_drvdata(&of_find_device_by_node(fm_node)->dev);
+	fm_pdev = of_find_device_by_node(fm_node);
 	of_node_put(fm_node);
+	if (!fm_pdev) {
+		err = -EINVAL;
+		goto return_err;
+	}
+
+	fman = dev_get_drvdata(&fm_pdev->dev);
 	if (!fman) {
 		err = -EINVAL;
 		goto return_err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fman/fman_tgec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fman/fman_tgec.c
@@ -630,7 +630,7 @@
 
 	list_for_each(pos, &tgec->multicast_addr_hash->lsts[hash]) {
 		hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-		if (hash_entry->addr == addr) {
+		if (hash_entry && hash_entry->addr == addr) {
 			list_del_init(&hash_entry->node);
 			kfree(hash_entry);
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
@@ -223,3 +223,4 @@
 };
 
 module_platform_driver(fs_enet_bb_mdio_driver);
+MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
@@ -224,3 +224,4 @@
 };
 
 module_platform_driver(fs_enet_fec_mdio_driver);
+MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/gianfar.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/gianfar.c
@@ -751,8 +751,10 @@
 				continue;
 
 			err = gfar_parse_group(child, priv, model);
-			if (err)
+			if (err) {
+				of_node_put(child);
 				goto err_grp_init;
+			}
 		}
 	} else { /* SQ_SG_MODE */
 		err = gfar_parse_group(np, priv, model);
@@ -1824,20 +1826,12 @@
 		fcb_len = GMAC_FCB_LEN + GMAC_TXPAL_LEN;
 
 	/* make space for additional header when fcb is needed */
-	if (fcb_len && unlikely(skb_headroom(skb) < fcb_len)) {
-		struct sk_buff *skb_new;
-
-		skb_new = skb_realloc_headroom(skb, fcb_len);
-		if (!skb_new) {
+	if (fcb_len) {
+		if (unlikely(skb_cow_head(skb, fcb_len))) {
 			dev->stats.tx_errors++;
 			dev_kfree_skb_any(skb);
 			return NETDEV_TX_OK;
 		}
-
-		if (skb->sk)
-			skb_set_owner_w(skb_new, skb->sk);
-		dev_consume_skb_any(skb);
-		skb = skb_new;
 	}
 
 	/* total number of fragments in the SKB */
@@ -2204,13 +2198,17 @@
 	skb_dirtytx = tx_queue->skb_dirtytx;
 
 	while ((skb = tx_queue->tx_skbuff[skb_dirtytx])) {
+		bool do_tstamp;
+
+		do_tstamp = (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
+			    priv->hwts_tx_en;
 
 		frags = skb_shinfo(skb)->nr_frags;
 
 		/* When time stamping, one additional TxBD must be freed.
 		 * Also, we need to dma_unmap_single() the TxPAL.
 		 */
-		if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS))
+		if (unlikely(do_tstamp))
 			nr_txbds = frags + 2;
 		else
 			nr_txbds = frags + 1;
@@ -2224,7 +2222,7 @@
 		    (lstatus & BD_LENGTH_MASK))
 			break;
 
-		if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS)) {
+		if (unlikely(do_tstamp)) {
 			next = next_txbd(bdp, base, tx_ring_size);
 			buflen = be16_to_cpu(next->length) +
 				 GMAC_FCB_LEN + GMAC_TXPAL_LEN;
@@ -2234,7 +2232,7 @@
 		dma_unmap_single(priv->dev, be32_to_cpu(bdp->bufPtr),
 				 buflen, DMA_TO_DEVICE);
 
-		if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS)) {
+		if (unlikely(do_tstamp)) {
 			struct skb_shared_hwtstamps shhwtstamps;
 			u64 *ns = (u64 *)(((uintptr_t)skb->data + 0x10) &
 					  ~0x7UL);
@@ -3371,7 +3369,7 @@
 
 	if (dev->features & NETIF_F_IP_CSUM ||
 	    priv->device_flags & FSL_GIANFAR_DEV_HAS_TIMER)
-		dev->needed_headroom = GMAC_FCB_LEN;
+		dev->needed_headroom = GMAC_FCB_LEN + GMAC_TXPAL_LEN;
 
 	/* Initializing some of the rx/tx queue level parameters */
 	for (i = 0; i < priv->num_tx_queues; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/ucc_geth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/ucc_geth.c
@@ -42,6 +42,7 @@
 #include <soc/fsl/qe/ucc.h>
 #include <soc/fsl/qe/ucc_fast.h>
 #include <asm/machdep.h>
+#include <net/sch_generic.h>
 
 #include "ucc_geth.h"
 
@@ -1548,11 +1549,8 @@
 
 static void ugeth_quiesce(struct ucc_geth_private *ugeth)
 {
-	/* Prevent any further xmits, plus detach the device. */
-	netif_device_detach(ugeth->ndev);
-
-	/* Wait for any current xmits to finish. */
-	netif_tx_disable(ugeth->ndev);
+	/* Prevent any further xmits */
+	netif_tx_stop_all_queues(ugeth->ndev);
 
 	/* Disable the interrupt to avoid NAPI rescheduling. */
 	disable_irq(ugeth->ug_info->uf_info.irq);
@@ -1565,7 +1563,10 @@
 {
 	napi_enable(&ugeth->napi);
 	enable_irq(ugeth->ug_info->uf_info.irq);
-	netif_device_attach(ugeth->ndev);
+
+	/* allow to xmit again  */
+	netif_tx_wake_all_queues(ugeth->ndev);
+	__netdev_watchdog_up(ugeth->ndev);
 }
 
 /* Called every time the controller might need to be made
@@ -3889,6 +3890,7 @@
 	INIT_WORK(&ugeth->timeout_work, ucc_geth_timeout_work);
 	netif_napi_add(dev, &ugeth->napi, ucc_geth_poll, 64);
 	dev->mtu = 1500;
+	dev->max_mtu = 1518;
 
 	ugeth->msg_enable = netif_msg_init(debug.msg_enable, UGETH_MSG_DEFAULT);
 	ugeth->phy_interface = phy_interface;
@@ -3934,12 +3936,12 @@
 	struct device_node *np = ofdev->dev.of_node;
 
 	unregister_netdev(dev);
-	free_netdev(dev);
 	ucc_geth_memclean(ugeth);
 	if (of_phy_is_fixed_link(np))
 		of_phy_deregister_fixed_link(np);
 	of_node_put(ugeth->ug_info->tbi_node);
 	of_node_put(ugeth->ug_info->phy_node);
+	free_netdev(dev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/ucc_geth.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/ucc_geth.h
@@ -576,7 +576,14 @@
 	u32 vtagtable[0x8];	/* 8 4-byte VLAN tags */
 	u32 tqptr;		/* a base pointer to the Tx Queues Memory
 				   Region */
-	u8 res2[0x80 - 0x74];
+	u8 res2[0x78 - 0x74];
+	u64 snums_en;
+	u32 l2l3baseptr;	/* top byte consists of a few other bit fields */
+
+	u16 mtu[8];
+	u8 res3[0xa8 - 0x94];
+	u32 wrrtablebase;	/* top byte is reserved */
+	u8 res4[0xc0 - 0xac];
 } __packed;
 
 /* structure representing Extended Filtering Global Parameters in PRAM */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/freescale/xgmac_mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/freescale/xgmac_mdio.c
@@ -49,6 +49,7 @@
 struct mdio_fsl_priv {
 	struct	tgec_mdio_controller __iomem *mdio_base;
 	bool	is_little_endian;
+	bool	has_a011043;
 };
 
 static u32 xgmac_read32(void __iomem *regs,
@@ -226,7 +227,8 @@
 		return ret;
 
 	/* Return all Fs if nothing was there */
-	if (xgmac_read32(&regs->mdio_stat, endian) & MDIO_STAT_RD_ER) {
+	if ((xgmac_read32(&regs->mdio_stat, endian) & MDIO_STAT_RD_ER) &&
+	    !priv->has_a011043) {
 		dev_err(&bus->dev,
 			"Error while reading PHY%d reg at %d.%hhu\n",
 			phy_id, dev_addr, regnum);
@@ -274,6 +276,9 @@
 	priv->is_little_endian = of_property_read_bool(pdev->dev.of_node,
 						       "little-endian");
 
+	priv->has_a011043 = of_property_read_bool(pdev->dev.of_node,
+						  "fsl,erratum-a011043");
+
 	ret = of_mdiobus_register(bus, np);
 	if (ret) {
 		dev_err(&pdev->dev, "cannot register MDIO bus\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/google/gve/gve_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/google/gve/gve_main.c
@@ -544,7 +544,7 @@
 	}
 
 	qpl->id = id;
-	qpl->num_entries = pages;
+	qpl->num_entries = 0;
 	qpl->pages = kvzalloc(pages * sizeof(*qpl->pages), GFP_KERNEL);
 	/* caller handles clean up */
 	if (!qpl->pages)
@@ -562,6 +562,7 @@
 		/* caller handles clean up */
 		if (err)
 			return -ENOMEM;
+		qpl->num_entries++;
 	}
 	priv->num_registered_pages += pages;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/google/gve/gve_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/google/gve/gve_rx.c
@@ -418,8 +418,6 @@
 	rx->cnt = cnt;
 	rx->fill_cnt += work_done;
 
-	/* restock desc ring slots */
-	dma_wmb();	/* Ensure descs are visible before ringing doorbell */
 	gve_rx_write_doorbell(priv, rx);
 	return gve_rx_work_pending(rx);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/google/gve/gve_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/google/gve/gve_tx.c
@@ -487,10 +487,6 @@
 		 * may have added descriptors without ringing the doorbell.
 		 */
 
-		/* Ensure tx descs from a prior gve_tx are visible before
-		 * ringing doorbell.
-		 */
-		dma_wmb();
 		gve_tx_put_doorbell(priv, tx->q_resources, tx->req);
 		return NETDEV_TX_BUSY;
 	}
@@ -505,8 +501,6 @@
 	if (!netif_xmit_stopped(tx->netdev_txq) && netdev_xmit_more())
 		return NETDEV_TX_OK;
 
-	/* Ensure tx descs are visible before ringing doorbell */
-	dma_wmb();
 	gve_tx_put_doorbell(priv, tx->q_resources, tx->req);
 	return NETDEV_TX_OK;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hip04_eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hip04_eth.c
@@ -543,9 +543,9 @@
 	skb_tx_timestamp(skb);
 
 	hip04_set_xmit_desc(priv, phys);
-	priv->tx_head = TX_NEXT(tx_head);
 	count++;
 	netdev_sent_queue(ndev, skb->len);
+	priv->tx_head = TX_NEXT(tx_head);
 
 	stats->tx_bytes += skb->len;
 	stats->tx_packets++;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -565,7 +565,6 @@
 	skb = *out_skb = napi_alloc_skb(&ring_data->napi,
 					HNS_RX_HEAD_SIZE);
 	if (unlikely(!skb)) {
-		netdev_err(ndev, "alloc rx skb fail\n");
 		ring->stats.sw_err_cnt++;
 		return -ENOMEM;
 	}
@@ -1056,7 +1055,6 @@
 		container_of(napi, struct hns_nic_ring_data, napi);
 	struct hnae_ring *ring = ring_data->ring;
 
-try_again:
 	clean_complete += ring_data->poll_one(
 				ring_data, budget - clean_complete,
 				ring_data->ex_process);
@@ -1066,7 +1064,7 @@
 			napi_complete(napi);
 			ring->q->handle->dev->ops->toggle_ring_irq(ring, 0);
 		} else {
-			goto try_again;
+			return budget;
 		}
 	}
 
@@ -2298,8 +2296,10 @@
 			priv->enet_ver = AE_VERSION_1;
 		else if (acpi_dev_found(hns_enet_acpi_match[1].id))
 			priv->enet_ver = AE_VERSION_2;
-		else
-			return -ENXIO;
+		else {
+			ret = -ENXIO;
+			goto out_read_prop_fail;
+		}
 
 		/* try to find port-idx-in-ae first */
 		ret = acpi_node_get_property_reference(dev->fwnode,
@@ -2315,7 +2315,8 @@
 		priv->fwnode = args.fwnode;
 	} else {
 		dev_err(dev, "cannot read cfg data from OF or acpi\n");
-		return -ENXIO;
+		ret = -ENXIO;
+		goto out_read_prop_fail;
 	}
 
 	ret = device_property_read_u32(dev, "port-idx-in-ae", &port_id);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
@@ -415,6 +415,10 @@
 	/* for mutl buffer*/
 	new_skb = skb_copy(skb, GFP_ATOMIC);
 	dev_kfree_skb_any(skb);
+	if (!new_skb) {
+		netdev_err(ndev, "skb alloc failed\n");
+		return;
+	}
 	skb = new_skb;
 
 	check_ok = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/Makefile
@@ -3,6 +3,8 @@
 # Makefile for the HISILICON network device drivers.
 #
 
+ccflags-y += -I$(srctree)/$(src)
+
 obj-$(CONFIG_HNS3) += hns3pf/
 obj-$(CONFIG_HNS3) += hns3vf/
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h
@@ -45,8 +45,10 @@
 	HCLGE_MBX_GET_LINK_MODE,	/* (VF -> PF) get the link mode of pf */
 	HCLGE_MBX_PUSH_VLAN_INFO,	/* (PF -> VF) push port base vlan */
 	HCLGE_MBX_GET_MEDIA_TYPE,       /* (VF -> PF) get media type */
+	HCLGE_MBX_PUSH_PROMISC_INFO,	/* (PF -> VF) push vf promisc info */
+	HCLGE_MBX_VF_UNINIT,            /* (VF -> PF) vf is unintializing */
 
-	HCLGE_MBX_GET_VF_FLR_STATUS = 200, /* (M7 -> PF) get vf reset status */
+	HCLGE_MBX_GET_VF_FLR_STATUS = 200, /* (M7 -> PF) get vf flr status */
 	HCLGE_MBX_PUSH_LINK_STATUS,	/* (M7 -> PF) get port link status */
 	HCLGE_MBX_NCSI_ERROR,		/* (M7 -> PF) receive a NCSI error */
 };
@@ -71,7 +73,7 @@
 };
 
 #define HCLGE_MBX_MAX_MSG_SIZE	16
-#define HCLGE_MBX_MAX_RESP_DATA_SIZE	8
+#define HCLGE_MBX_MAX_RESP_DATA_SIZE	8U
 #define HCLGE_MBX_RING_MAP_BASIC_MSG_NUM	3
 #define HCLGE_MBX_RING_NODE_VARIABLE_NUM	3
 
@@ -123,7 +125,7 @@
 #define hclge_mbx_ring_ptr_move_crq(crq) \
 	(crq->next_to_use = (crq->next_to_use + 1) % crq->desc_num)
 #define hclge_mbx_tail_ptr_move_arq(arq) \
-	(arq.tail = (arq.tail + 1) % HCLGE_MBX_MAX_ARQ_MSG_SIZE)
+		(arq.tail = (arq.tail + 1) % HCLGE_MBX_MAX_ARQ_MSG_NUM)
 #define hclge_mbx_head_ptr_move_arq(arq) \
-		(arq.head = (arq.head + 1) % HCLGE_MBX_MAX_ARQ_MSG_SIZE)
+		(arq.head = (arq.head + 1) % HCLGE_MBX_MAX_ARQ_MSG_NUM)
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hnae3.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hnae3.c
@@ -146,7 +146,7 @@
 		return;
 
 	mutex_lock(&hnae3_common_lock);
-
+	/* one system should only have one client for every type */
 	list_for_each_entry(client_tmp, &hnae3_client_list, node) {
 		if (client_tmp->type == client->type) {
 			existed = true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hnae3.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hnae3.h
@@ -77,6 +77,7 @@
 	((ring)->p = ((ring)->p - 1 + (ring)->desc_num) % (ring)->desc_num)
 
 enum hns_desc_type {
+	DESC_TYPE_UNKNOWN,
 	DESC_TYPE_SKB,
 	DESC_TYPE_PAGE,
 };
@@ -130,7 +131,6 @@
 	HNAE3_MODULE_TYPE_CR		= 0x04,
 	HNAE3_MODULE_TYPE_KR		= 0x05,
 	HNAE3_MODULE_TYPE_TP		= 0x06,
-
 };
 
 enum hnae3_fec_mode {
@@ -165,11 +165,7 @@
 	HNAE3_IMP_RESET,
 	HNAE3_UNKNOWN_RESET,
 	HNAE3_NONE_RESET,
-};
-
-enum hnae3_flr_state {
-	HNAE3_FLR_DOWN,
-	HNAE3_FLR_DONE,
+	HNAE3_MAX_RESET,
 };
 
 enum hnae3_port_base_vlan_state {
@@ -366,6 +362,19 @@
  *   Enable/disable HW GRO
  * add_arfs_entry
  *   Check the 5-tuples of flow, and create flow director rule
+ * get_vf_config
+ *   Get the VF configuration setting by the host
+ * set_vf_link_state
+ *   Set VF link status
+ * set_vf_spoofchk
+ *   Enable/disable spoof check for specified vf
+ * set_vf_trust
+ *   Enable/disable trust for specified vf, if the vf being trusted, then
+ *   it can enable promisc mode
+ * set_vf_rate
+ *   Set the max tx rate of specified vf.
+ * set_vf_mac
+ *   Configure the default MAC for specified VF
  */
 struct hnae3_ae_ops {
 	int (*init_ae_dev)(struct hnae3_ae_dev *ae_dev);
@@ -531,6 +540,16 @@
 	int (*mac_connect_phy)(struct hnae3_handle *handle);
 	void (*mac_disconnect_phy)(struct hnae3_handle *handle);
 	void (*restore_vlan_table)(struct hnae3_handle *handle);
+	int (*get_vf_config)(struct hnae3_handle *handle, int vf,
+			     struct ifla_vf_info *ivf);
+	int (*set_vf_link_state)(struct hnae3_handle *handle, int vf,
+				 int link_state);
+	int (*set_vf_spoofchk)(struct hnae3_handle *handle, int vf,
+			       bool enable);
+	int (*set_vf_trust)(struct hnae3_handle *handle, int vf, bool enable);
+	int (*set_vf_rate)(struct hnae3_handle *handle, int vf,
+			   int min_tx_rate, int max_tx_rate, bool force);
+	int (*set_vf_mac)(struct hnae3_handle *handle, int vf, u8 *p);
 };
 
 struct hnae3_dcb_ops {
@@ -553,7 +572,7 @@
 	const struct pci_device_id *pdev_id_table;
 };
 
-#define HNAE3_INT_NAME_LEN        (IFNAMSIZ + 16)
+#define HNAE3_INT_NAME_LEN        32
 #define HNAE3_ITR_COUNTDOWN_START 100
 
 struct hnae3_tc_info {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
@@ -16,15 +16,14 @@
 			       const char *cmd_buf)
 {
 	struct hns3_nic_priv *priv = h->priv;
-	struct hns3_nic_ring_data *ring_data;
 	struct hns3_enet_ring *ring;
 	u32 base_add_l, base_add_h;
 	u32 queue_num, queue_max;
 	u32 value, i = 0;
 	int cnt;
 
-	if (!priv->ring_data) {
-		dev_err(&h->pdev->dev, "ring_data is NULL\n");
+	if (!priv->ring) {
+		dev_err(&h->pdev->dev, "priv->ring is NULL\n");
 		return -EFAULT;
 	}
 
@@ -44,7 +43,6 @@
 		return -EINVAL;
 	}
 
-	ring_data = priv->ring_data;
 	for (i = queue_num; i < queue_max; i++) {
 		/* Each cycle needs to determine whether the instance is reset,
 		 * to prevent reference to invalid memory. And need to ensure
@@ -54,73 +52,73 @@
 		    test_bit(HNS3_NIC_STATE_RESETTING, &priv->state))
 			return -EPERM;
 
-		ring = ring_data[(u32)(i + h->kinfo.num_tqps)].ring;
+		ring = &priv->ring[(u32)(i + h->kinfo.num_tqps)];
 		base_add_h = readl_relaxed(ring->tqp->io_base +
 					   HNS3_RING_RX_RING_BASEADDR_H_REG);
 		base_add_l = readl_relaxed(ring->tqp->io_base +
 					   HNS3_RING_RX_RING_BASEADDR_L_REG);
-		dev_info(&h->pdev->dev, "RX(%d) BASE ADD: 0x%08x%08x\n", i,
+		dev_info(&h->pdev->dev, "RX(%u) BASE ADD: 0x%08x%08x\n", i,
 			 base_add_h, base_add_l);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_RX_RING_BD_NUM_REG);
-		dev_info(&h->pdev->dev, "RX(%d) RING BD NUM: %u\n", i, value);
+		dev_info(&h->pdev->dev, "RX(%u) RING BD NUM: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_RX_RING_BD_LEN_REG);
-		dev_info(&h->pdev->dev, "RX(%d) RING BD LEN: %u\n", i, value);
+		dev_info(&h->pdev->dev, "RX(%u) RING BD LEN: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_RX_RING_TAIL_REG);
-		dev_info(&h->pdev->dev, "RX(%d) RING TAIL: %u\n", i, value);
+		dev_info(&h->pdev->dev, "RX(%u) RING TAIL: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_RX_RING_HEAD_REG);
-		dev_info(&h->pdev->dev, "RX(%d) RING HEAD: %u\n", i, value);
+		dev_info(&h->pdev->dev, "RX(%u) RING HEAD: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_RX_RING_FBDNUM_REG);
-		dev_info(&h->pdev->dev, "RX(%d) RING FBDNUM: %u\n", i, value);
+		dev_info(&h->pdev->dev, "RX(%u) RING FBDNUM: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_RX_RING_PKTNUM_RECORD_REG);
-		dev_info(&h->pdev->dev, "RX(%d) RING PKTNUM: %u\n", i, value);
+		dev_info(&h->pdev->dev, "RX(%u) RING PKTNUM: %u\n", i, value);
 
-		ring = ring_data[i].ring;
+		ring = &priv->ring[i];
 		base_add_h = readl_relaxed(ring->tqp->io_base +
 					   HNS3_RING_TX_RING_BASEADDR_H_REG);
 		base_add_l = readl_relaxed(ring->tqp->io_base +
 					   HNS3_RING_TX_RING_BASEADDR_L_REG);
-		dev_info(&h->pdev->dev, "TX(%d) BASE ADD: 0x%08x%08x\n", i,
+		dev_info(&h->pdev->dev, "TX(%u) BASE ADD: 0x%08x%08x\n", i,
 			 base_add_h, base_add_l);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_BD_NUM_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING BD NUM: %u\n", i, value);
+		dev_info(&h->pdev->dev, "TX(%u) RING BD NUM: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_TC_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING TC: %u\n", i, value);
+		dev_info(&h->pdev->dev, "TX(%u) RING TC: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_TAIL_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING TAIL: %u\n", i, value);
+		dev_info(&h->pdev->dev, "TX(%u) RING TAIL: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_HEAD_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING HEAD: %u\n", i, value);
+		dev_info(&h->pdev->dev, "TX(%u) RING HEAD: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_FBDNUM_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING FBDNUM: %u\n", i, value);
+		dev_info(&h->pdev->dev, "TX(%u) RING FBDNUM: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_OFFSET_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING OFFSET: %u\n", i, value);
+		dev_info(&h->pdev->dev, "TX(%u) RING OFFSET: %u\n", i, value);
 
 		value = readl_relaxed(ring->tqp->io_base +
 				      HNS3_RING_TX_RING_PKTNUM_RECORD_REG);
-		dev_info(&h->pdev->dev, "TX(%d) RING PKTNUM: %u\n\n", i,
+		dev_info(&h->pdev->dev, "TX(%u) RING PKTNUM: %u\n\n", i,
 			 value);
 	}
 
@@ -130,7 +128,6 @@
 static int hns3_dbg_queue_map(struct hnae3_handle *h)
 {
 	struct hns3_nic_priv *priv = h->priv;
-	struct hns3_nic_ring_data *ring_data;
 	int i;
 
 	if (!h->ae_algo->ops->get_global_queue_id)
@@ -143,15 +140,12 @@
 		u16 global_qid;
 
 		global_qid = h->ae_algo->ops->get_global_queue_id(h, i);
-		ring_data = &priv->ring_data[i];
-		if (!ring_data || !ring_data->ring ||
-		    !ring_data->ring->tqp_vector)
+		if (!priv->ring || !priv->ring[i].tqp_vector)
 			continue;
 
 		dev_info(&h->pdev->dev,
 			 "      %4d            %4d            %4d\n",
-			 i, global_qid,
-			 ring_data->ring->tqp_vector->vector_irq);
+			 i, global_qid, priv->ring[i].tqp_vector->vector_irq);
 	}
 
 	return 0;
@@ -160,7 +154,6 @@
 static int hns3_dbg_bd_info(struct hnae3_handle *h, const char *cmd_buf)
 {
 	struct hns3_nic_priv *priv = h->priv;
-	struct hns3_nic_ring_data *ring_data;
 	struct hns3_desc *rx_desc, *tx_desc;
 	struct device *dev = &h->pdev->dev;
 	struct hns3_enet_ring *ring;
@@ -183,8 +176,7 @@
 		return -EINVAL;
 	}
 
-	ring_data = priv->ring_data;
-	ring  = ring_data[q_num].ring;
+	ring = &priv->ring[q_num];
 	value = readl_relaxed(ring->tqp->io_base + HNS3_RING_TX_RING_TAIL_REG);
 	tx_index = (cnt == 1) ? value : tx_index;
 
@@ -198,39 +190,46 @@
 	addr = le64_to_cpu(tx_desc->addr);
 	dev_info(dev, "TX Queue Num: %u, BD Index: %u\n", q_num, tx_index);
 	dev_info(dev, "(TX)addr: %pad\n", &addr);
-	dev_info(dev, "(TX)vlan_tag: %u\n", tx_desc->tx.vlan_tag);
-	dev_info(dev, "(TX)send_size: %u\n", tx_desc->tx.send_size);
+	dev_info(dev, "(TX)vlan_tag: %u\n", le16_to_cpu(tx_desc->tx.vlan_tag));
+	dev_info(dev, "(TX)send_size: %u\n",
+		 le16_to_cpu(tx_desc->tx.send_size));
 	dev_info(dev, "(TX)vlan_tso: %u\n", tx_desc->tx.type_cs_vlan_tso);
 	dev_info(dev, "(TX)l2_len: %u\n", tx_desc->tx.l2_len);
 	dev_info(dev, "(TX)l3_len: %u\n", tx_desc->tx.l3_len);
 	dev_info(dev, "(TX)l4_len: %u\n", tx_desc->tx.l4_len);
-	dev_info(dev, "(TX)vlan_tag: %u\n", tx_desc->tx.outer_vlan_tag);
-	dev_info(dev, "(TX)tv: %u\n", tx_desc->tx.tv);
+	dev_info(dev, "(TX)vlan_tag: %u\n",
+		 le16_to_cpu(tx_desc->tx.outer_vlan_tag));
+	dev_info(dev, "(TX)tv: %u\n", le16_to_cpu(tx_desc->tx.tv));
 	dev_info(dev, "(TX)vlan_msec: %u\n", tx_desc->tx.ol_type_vlan_msec);
 	dev_info(dev, "(TX)ol2_len: %u\n", tx_desc->tx.ol2_len);
 	dev_info(dev, "(TX)ol3_len: %u\n", tx_desc->tx.ol3_len);
 	dev_info(dev, "(TX)ol4_len: %u\n", tx_desc->tx.ol4_len);
-	dev_info(dev, "(TX)paylen: %u\n", tx_desc->tx.paylen);
-	dev_info(dev, "(TX)vld_ra_ri: %u\n", tx_desc->tx.bdtp_fe_sc_vld_ra_ri);
-	dev_info(dev, "(TX)mss: %u\n", tx_desc->tx.mss);
+	dev_info(dev, "(TX)paylen: %u\n", le32_to_cpu(tx_desc->tx.paylen));
+	dev_info(dev, "(TX)vld_ra_ri: %u\n",
+		 le16_to_cpu(tx_desc->tx.bdtp_fe_sc_vld_ra_ri));
+	dev_info(dev, "(TX)mss: %u\n", le16_to_cpu(tx_desc->tx.mss));
 
-	ring  = ring_data[q_num + h->kinfo.num_tqps].ring;
+	ring = &priv->ring[q_num + h->kinfo.num_tqps];
 	value = readl_relaxed(ring->tqp->io_base + HNS3_RING_RX_RING_TAIL_REG);
 	rx_index = (cnt == 1) ? value : tx_index;
-	rx_desc	 = &ring->desc[rx_index];
+	rx_desc = &ring->desc[rx_index];
 
 	addr = le64_to_cpu(rx_desc->addr);
 	dev_info(dev, "RX Queue Num: %u, BD Index: %u\n", q_num, rx_index);
 	dev_info(dev, "(RX)addr: %pad\n", &addr);
-	dev_info(dev, "(RX)l234_info: %u\n", rx_desc->rx.l234_info);
-	dev_info(dev, "(RX)pkt_len: %u\n", rx_desc->rx.pkt_len);
-	dev_info(dev, "(RX)size: %u\n", rx_desc->rx.size);
-	dev_info(dev, "(RX)rss_hash: %u\n", rx_desc->rx.rss_hash);
-	dev_info(dev, "(RX)fd_id: %u\n", rx_desc->rx.fd_id);
-	dev_info(dev, "(RX)vlan_tag: %u\n", rx_desc->rx.vlan_tag);
-	dev_info(dev, "(RX)o_dm_vlan_id_fb: %u\n", rx_desc->rx.o_dm_vlan_id_fb);
-	dev_info(dev, "(RX)ot_vlan_tag: %u\n", rx_desc->rx.ot_vlan_tag);
-	dev_info(dev, "(RX)bd_base_info: %u\n", rx_desc->rx.bd_base_info);
+	dev_info(dev, "(RX)l234_info: %u\n",
+		 le32_to_cpu(rx_desc->rx.l234_info));
+	dev_info(dev, "(RX)pkt_len: %u\n", le16_to_cpu(rx_desc->rx.pkt_len));
+	dev_info(dev, "(RX)size: %u\n", le16_to_cpu(rx_desc->rx.size));
+	dev_info(dev, "(RX)rss_hash: %u\n", le32_to_cpu(rx_desc->rx.rss_hash));
+	dev_info(dev, "(RX)fd_id: %u\n", le16_to_cpu(rx_desc->rx.fd_id));
+	dev_info(dev, "(RX)vlan_tag: %u\n", le16_to_cpu(rx_desc->rx.vlan_tag));
+	dev_info(dev, "(RX)o_dm_vlan_id_fb: %u\n",
+		 le16_to_cpu(rx_desc->rx.o_dm_vlan_id_fb));
+	dev_info(dev, "(RX)ot_vlan_tag: %u\n",
+		 le16_to_cpu(rx_desc->rx.ot_vlan_tag));
+	dev_info(dev, "(RX)bd_base_info: %u\n",
+		 le32_to_cpu(rx_desc->rx.bd_base_info));
 
 	return 0;
 }
@@ -261,6 +260,8 @@
 	dev_info(&h->pdev->dev, "dump m7 info\n");
 	dev_info(&h->pdev->dev, "dump ncl_config <offset> <length>(in hex)\n");
 	dev_info(&h->pdev->dev, "dump mac tnl status\n");
+	dev_info(&h->pdev->dev, "dump loopback\n");
+	dev_info(&h->pdev->dev, "dump qs shaper [qs id]\n");
 
 	memset(printf_buf, 0, HNS3_DBG_BUF_LEN);
 	strncat(printf_buf, "dump reg [[bios common] [ssu <port_id>]",
@@ -298,8 +299,8 @@
 	if (!buf)
 		return -ENOMEM;
 
-	len = snprintf(buf, HNS3_DBG_READ_LEN, "%s\n",
-		       "Please echo help to cmd to get help information");
+	len = scnprintf(buf, HNS3_DBG_READ_LEN, "%s\n",
+			"Please echo help to cmd to get help information");
 	uncopy_bytes = copy_to_user(buffer, buf, len);
 
 	kfree(buf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -21,9 +21,16 @@
 #include <net/pkt_cls.h>
 #include <net/tcp.h>
 #include <net/vxlan.h>
+#include <net/geneve.h>
 
 #include "hnae3.h"
 #include "hns3_enet.h"
+/* All hns3 tracepoints are defined by the include below, which
+ * must be included exactly once across the whole kernel with
+ * CREATE_TRACE_POINTS defined
+ */
+#define CREATE_TRACE_POINTS
+#include "hns3_trace.h"
 
 #define hns3_set_field(origin, shift, val)	((origin) |= ((val) << (shift)))
 #define hns3_tx_bd_count(S)	DIV_ROUND_UP(S, HNS3_MAX_BD_SIZE)
@@ -54,6 +61,8 @@
 #define HNS3_INNER_VLAN_TAG	1
 #define HNS3_OUTER_VLAN_TAG	2
 
+#define HNS3_MIN_TX_LEN		33U
+
 /* hns3_pci_tbl - PCI Device ID Table
  *
  * Last entry must be all 0s
@@ -127,18 +136,21 @@
 			continue;
 
 		if (tqp_vectors->tx_group.ring && tqp_vectors->rx_group.ring) {
-			snprintf(tqp_vectors->name, HNAE3_INT_NAME_LEN - 1,
-				 "%s-%s-%d", priv->netdev->name, "TxRx",
-				 txrx_int_idx++);
+			snprintf(tqp_vectors->name, HNAE3_INT_NAME_LEN,
+				 "%s-%s-%s-%d", hns3_driver_name,
+				 pci_name(priv->ae_handle->pdev),
+				 "TxRx", txrx_int_idx++);
 			txrx_int_idx++;
 		} else if (tqp_vectors->rx_group.ring) {
-			snprintf(tqp_vectors->name, HNAE3_INT_NAME_LEN - 1,
-				 "%s-%s-%d", priv->netdev->name, "Rx",
-				 rx_int_idx++);
+			snprintf(tqp_vectors->name, HNAE3_INT_NAME_LEN,
+				 "%s-%s-%s-%d", hns3_driver_name,
+				 pci_name(priv->ae_handle->pdev),
+				 "Rx", rx_int_idx++);
 		} else if (tqp_vectors->tx_group.ring) {
-			snprintf(tqp_vectors->name, HNAE3_INT_NAME_LEN - 1,
-				 "%s-%s-%d", priv->netdev->name, "Tx",
-				 tx_int_idx++);
+			snprintf(tqp_vectors->name, HNAE3_INT_NAME_LEN,
+				 "%s-%s-%s-%d", hns3_driver_name,
+				 pci_name(priv->ae_handle->pdev),
+				 "Tx", tx_int_idx++);
 		} else {
 			/* Skip this unused q_vector */
 			continue;
@@ -155,6 +167,8 @@
 			return ret;
 		}
 
+		disable_irq(tqp_vectors->vector_irq);
+
 		irq_set_affinity_hint(tqp_vectors->vector_irq,
 				      &tqp_vectors->affinity_mask);
 
@@ -173,6 +187,7 @@
 static void hns3_vector_enable(struct hns3_enet_tqp_vector *tqp_vector)
 {
 	napi_enable(&tqp_vector->napi);
+	enable_irq(tqp_vector->vector_irq);
 
 	/* enable vector */
 	hns3_mask_vector_irq(tqp_vector, 1);
@@ -372,18 +387,6 @@
 	if (ret)
 		return ret;
 
-	/* the device can work without cpu rmap, only aRFS needs it */
-	ret = hns3_set_rx_cpu_rmap(netdev);
-	if (ret)
-		netdev_warn(netdev, "set rx cpu rmap fail, ret=%d!\n", ret);
-
-	/* get irq resource for all vectors */
-	ret = hns3_nic_init_irq(priv);
-	if (ret) {
-		netdev_err(netdev, "init irq failed! ret=%d\n", ret);
-		goto free_rmap;
-	}
-
 	clear_bit(HNS3_NIC_STATE_DOWN, &priv->state);
 
 	/* enable the vectors */
@@ -396,22 +399,15 @@
 
 	/* start the ae_dev */
 	ret = h->ae_algo->ops->start ? h->ae_algo->ops->start(h) : 0;
-	if (ret)
-		goto out_start_err;
-
-	return 0;
-
-out_start_err:
-	set_bit(HNS3_NIC_STATE_DOWN, &priv->state);
-	while (j--)
-		hns3_tqp_disable(h->kinfo.tqp[j]);
+	if (ret) {
+		set_bit(HNS3_NIC_STATE_DOWN, &priv->state);
+		while (j--)
+			hns3_tqp_disable(h->kinfo.tqp[j]);
 
-	for (j = i - 1; j >= 0; j--)
-		hns3_vector_disable(&priv->tqp_vector[j]);
+		for (j = i - 1; j >= 0; j--)
+			hns3_vector_disable(&priv->tqp_vector[j]);
+	}
 
-	hns3_nic_uninit_irq(priv);
-free_rmap:
-	hns3_free_rx_cpu_rmap(netdev);
 	return ret;
 }
 
@@ -483,7 +479,7 @@
 
 	for (i = 0; i < h->kinfo.num_tqps; i++) {
 		dev_queue = netdev_get_tx_queue(ndev,
-						priv->ring_data[i].queue_index);
+						priv->ring[i].queue_index);
 		netdev_tx_reset_queue(dev_queue);
 	}
 }
@@ -508,11 +504,6 @@
 	if (ops->stop)
 		ops->stop(priv->ae_handle);
 
-	hns3_free_rx_cpu_rmap(netdev);
-
-	/* free irq resources */
-	hns3_nic_uninit_irq(priv);
-
 	/* delay ring buffer clearing to hns3_reset_notify_uninit_enet
 	 * during reset process, because driver may not be able
 	 * to disable the ring through firmware when downing the netdev.
@@ -681,7 +672,7 @@
 		return 0;
 
 	ret = skb_cow_head(skb, 0);
-	if (unlikely(ret))
+	if (unlikely(ret < 0))
 		return ret;
 
 	l3.hdr = skb_network_header(skb);
@@ -734,6 +725,8 @@
 	/* get MSS for TSO */
 	*mss = skb_shinfo(skb)->gso_size;
 
+	trace_hns3_tso(skb);
+
 	return 0;
 }
 
@@ -793,7 +786,7 @@
  * and it is udp packet, which has a dest port as the IANA assigned.
  * the hardware is expected to do the checksum offload, but the
  * hardware will not do the checksum offload when udp dest port is
- * 4789.
+ * 4789 or 6081.
  */
 static bool hns3_tunnel_csum_bug(struct sk_buff *skb)
 {
@@ -802,7 +795,8 @@
 	l4.hdr = skb_transport_header(skb);
 
 	if (!(!skb->encapsulation &&
-	      l4.udp->dest == htons(IANA_VXLAN_UDP_PORT)))
+	      (l4.udp->dest == htons(IANA_VXLAN_UDP_PORT) ||
+	      l4.udp->dest == htons(GENEVE_UDP_PORT))))
 		return false;
 
 	skb_checksum_help(skb);
@@ -962,14 +956,6 @@
 	return 0;
 }
 
-static void hns3_set_txbd_baseinfo(u16 *bdtp_fe_sc_vld_ra_ri, int frag_end)
-{
-	/* Config bd buffer end */
-	if (!!frag_end)
-		hns3_set_field(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_FE_B, 1U);
-	hns3_set_field(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_VLD_B, 1U);
-}
-
 static int hns3_handle_vtags(struct hns3_enet_ring *tx_ring,
 			     struct sk_buff *skb)
 {
@@ -1062,7 +1048,7 @@
 		skb_reset_mac_len(skb);
 
 		ret = hns3_get_l4_protocol(skb, &ol4_proto, &il4_proto);
-		if (unlikely(ret)) {
+		if (unlikely(ret < 0)) {
 			u64_stats_update_begin(&ring->syncp);
 			ring->stats.tx_l4_proto_err++;
 			u64_stats_update_end(&ring->syncp);
@@ -1072,7 +1058,7 @@
 		ret = hns3_set_l2l3l4(skb, ol4_proto, il4_proto,
 				      &type_cs_vlan_tso,
 				      &ol_type_vlan_len_msec);
-		if (unlikely(ret)) {
+		if (unlikely(ret < 0)) {
 			u64_stats_update_begin(&ring->syncp);
 			ring->stats.tx_l2l3l4_err++;
 			u64_stats_update_end(&ring->syncp);
@@ -1081,7 +1067,7 @@
 
 		ret = hns3_set_tso(skb, &paylen, &mss,
 				   &type_cs_vlan_tso);
-		if (unlikely(ret)) {
+		if (unlikely(ret < 0)) {
 			u64_stats_update_begin(&ring->syncp);
 			ring->stats.tx_tso_err++;
 			u64_stats_update_end(&ring->syncp);
@@ -1102,9 +1088,10 @@
 }
 
 static int hns3_fill_desc(struct hns3_enet_ring *ring, void *priv,
-			  unsigned int size, int frag_end,
-			  enum hns_desc_type type)
+			  unsigned int size, enum hns_desc_type type)
 {
+#define HNS3_LIKELY_BD_NUM	1
+
 	struct hns3_desc_cb *desc_cb = &ring->desc_cb[ring->next_to_use];
 	struct hns3_desc *desc = &ring->desc[ring->next_to_use];
 	struct device *dev = ring_to_dev(ring);
@@ -1118,7 +1105,7 @@
 		int ret;
 
 		ret = hns3_fill_skb_desc(ring, skb, desc);
-		if (unlikely(ret))
+		if (unlikely(ret < 0))
 			return ret;
 
 		dma = dma_map_single(dev, skb->data, size, DMA_TO_DEVICE);
@@ -1137,19 +1124,17 @@
 	desc_cb->length = size;
 
 	if (likely(size <= HNS3_MAX_BD_SIZE)) {
-		u16 bdtp_fe_sc_vld_ra_ri = 0;
-
 		desc_cb->priv = priv;
 		desc_cb->dma = dma;
 		desc_cb->type = type;
 		desc->addr = cpu_to_le64(dma);
 		desc->tx.send_size = cpu_to_le16(size);
-		hns3_set_txbd_baseinfo(&bdtp_fe_sc_vld_ra_ri, frag_end);
 		desc->tx.bdtp_fe_sc_vld_ra_ri =
-			cpu_to_le16(bdtp_fe_sc_vld_ra_ri);
+			cpu_to_le16(BIT(HNS3_TXD_VLD_B));
 
+		trace_hns3_tx_desc(ring, ring->next_to_use);
 		ring_ptr_move_fw(ring, next_to_use);
-		return 0;
+		return HNS3_LIKELY_BD_NUM;
 	}
 
 	frag_buf_num = hns3_tx_bd_count(size);
@@ -1158,8 +1143,6 @@
 
 	/* When frag size is bigger than hardware limit, split this frag */
 	for (k = 0; k < frag_buf_num; k++) {
-		u16 bdtp_fe_sc_vld_ra_ri = 0;
-
 		/* The txbd's baseinfo of DESC_TYPE_PAGE & DESC_TYPE_SKB */
 		desc_cb->priv = priv;
 		desc_cb->dma = dma + HNS3_MAX_BD_SIZE * k;
@@ -1170,12 +1153,10 @@
 		desc->addr = cpu_to_le64(dma + HNS3_MAX_BD_SIZE * k);
 		desc->tx.send_size = cpu_to_le16((k == frag_buf_num - 1) ?
 				     (u16)sizeoflast : (u16)HNS3_MAX_BD_SIZE);
-		hns3_set_txbd_baseinfo(&bdtp_fe_sc_vld_ra_ri,
-				       frag_end && (k == frag_buf_num - 1) ?
-						1 : 0);
 		desc->tx.bdtp_fe_sc_vld_ra_ri =
-				cpu_to_le16(bdtp_fe_sc_vld_ra_ri);
+				cpu_to_le16(BIT(HNS3_TXD_VLD_B));
 
+		trace_hns3_tx_desc(ring, ring->next_to_use);
 		/* move ring pointer to next */
 		ring_ptr_move_fw(ring, next_to_use);
 
@@ -1183,23 +1164,78 @@
 		desc = &ring->desc[ring->next_to_use];
 	}
 
-	return 0;
+	return frag_buf_num;
 }
 
-static unsigned int hns3_nic_bd_num(struct sk_buff *skb)
+static unsigned int hns3_skb_bd_num(struct sk_buff *skb, unsigned int *bd_size,
+				    unsigned int bd_num)
 {
-	unsigned int bd_num;
+	unsigned int size;
 	int i;
 
-	/* if the total len is within the max bd limit */
-	if (likely(skb->len <= HNS3_MAX_BD_SIZE))
-		return skb_shinfo(skb)->nr_frags + 1;
+	size = skb_headlen(skb);
+	while (size > HNS3_MAX_BD_SIZE) {
+		bd_size[bd_num++] = HNS3_MAX_BD_SIZE;
+		size -= HNS3_MAX_BD_SIZE;
+
+		if (bd_num > HNS3_MAX_TSO_BD_NUM)
+			return bd_num;
+	}
 
-	bd_num = hns3_tx_bd_count(skb_headlen(skb));
+	if (size) {
+		bd_size[bd_num++] = size;
+		if (bd_num > HNS3_MAX_TSO_BD_NUM)
+			return bd_num;
+	}
 
 	for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
 		skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
-		bd_num += hns3_tx_bd_count(skb_frag_size(frag));
+		size = skb_frag_size(frag);
+		if (!size)
+			continue;
+
+		while (size > HNS3_MAX_BD_SIZE) {
+			bd_size[bd_num++] = HNS3_MAX_BD_SIZE;
+			size -= HNS3_MAX_BD_SIZE;
+
+			if (bd_num > HNS3_MAX_TSO_BD_NUM)
+				return bd_num;
+		}
+
+		bd_size[bd_num++] = size;
+		if (bd_num > HNS3_MAX_TSO_BD_NUM)
+			return bd_num;
+	}
+
+	return bd_num;
+}
+
+static unsigned int hns3_tx_bd_num(struct sk_buff *skb, unsigned int *bd_size)
+{
+	struct sk_buff *frag_skb;
+	unsigned int bd_num = 0;
+
+	/* If the total len is within the max bd limit */
+	if (likely(skb->len <= HNS3_MAX_BD_SIZE && !skb_has_frag_list(skb) &&
+		   skb_shinfo(skb)->nr_frags < HNS3_MAX_NON_TSO_BD_NUM))
+		return skb_shinfo(skb)->nr_frags + 1U;
+
+	/* The below case will always be linearized, return
+	 * HNS3_MAX_BD_NUM_TSO + 1U to make sure it is linearized.
+	 */
+	if (unlikely(skb->len > HNS3_MAX_TSO_SIZE ||
+		     (!skb_is_gso(skb) && skb->len > HNS3_MAX_NON_TSO_SIZE)))
+		return HNS3_MAX_TSO_BD_NUM + 1U;
+
+	bd_num = hns3_skb_bd_num(skb, bd_size, bd_num);
+
+	if (!skb_has_frag_list(skb) || bd_num > HNS3_MAX_TSO_BD_NUM)
+		return bd_num;
+
+	skb_walk_frags(skb, frag_skb) {
+		bd_num = hns3_skb_bd_num(frag_skb, bd_size, bd_num);
+		if (bd_num > HNS3_MAX_TSO_BD_NUM)
+			return bd_num;
 	}
 
 	return bd_num;
@@ -1218,26 +1254,26 @@
  * 7 frags to to be larger than gso header len + mss, and the remaining
  * continuous 7 frags to be larger than MSS except the last 7 frags.
  */
-static bool hns3_skb_need_linearized(struct sk_buff *skb)
+static bool hns3_skb_need_linearized(struct sk_buff *skb, unsigned int *bd_size,
+				     unsigned int bd_num)
 {
-	int bd_limit = HNS3_MAX_BD_NUM_NORMAL - 1;
 	unsigned int tot_len = 0;
 	int i;
 
-	for (i = 0; i < bd_limit; i++)
-		tot_len += skb_frag_size(&skb_shinfo(skb)->frags[i]);
+	for (i = 0; i < HNS3_MAX_NON_TSO_BD_NUM - 1U; i++)
+		tot_len += bd_size[i];
 
-	/* ensure headlen + the first 7 frags is greater than mss + header
-	 * and the first 7 frags is greater than mss.
-	 */
-	if (((tot_len + skb_headlen(skb)) < (skb_shinfo(skb)->gso_size +
-	    hns3_gso_hdr_len(skb))) || (tot_len < skb_shinfo(skb)->gso_size))
+	/* ensure the first 8 frags is greater than mss + header */
+	if (tot_len + bd_size[HNS3_MAX_NON_TSO_BD_NUM - 1U] <
+	    skb_shinfo(skb)->gso_size + hns3_gso_hdr_len(skb))
 		return true;
 
-	/* ensure the remaining continuous 7 buffer is greater than mss */
-	for (i = 0; i < (skb_shinfo(skb)->nr_frags - bd_limit - 1); i++) {
-		tot_len -= skb_frag_size(&skb_shinfo(skb)->frags[i]);
-		tot_len += skb_frag_size(&skb_shinfo(skb)->frags[i + bd_limit]);
+	/* ensure every continuous 7 buffer is greater than mss
+	 * except the last one.
+	 */
+	for (i = 0; i < bd_num - HNS3_MAX_NON_TSO_BD_NUM; i++) {
+		tot_len -= bd_size[i];
+		tot_len += bd_size[i + HNS3_MAX_NON_TSO_BD_NUM - 1U];
 
 		if (tot_len < skb_shinfo(skb)->gso_size)
 			return true;
@@ -1246,31 +1282,40 @@
 	return false;
 }
 
+void hns3_shinfo_pack(struct skb_shared_info *shinfo, __u32 *size)
+{
+	int i = 0;
+
+	for (i = 0; i < MAX_SKB_FRAGS; i++)
+		size[i] = skb_frag_size(&shinfo->frags[i]);
+}
+
 static int hns3_nic_maybe_stop_tx(struct hns3_enet_ring *ring,
-				  struct sk_buff **out_skb)
+				  struct net_device *netdev,
+				  struct sk_buff *skb)
 {
-	struct sk_buff *skb = *out_skb;
+	struct hns3_nic_priv *priv = netdev_priv(netdev);
+	unsigned int bd_size[HNS3_MAX_TSO_BD_NUM + 1U];
 	unsigned int bd_num;
 
-	bd_num = hns3_nic_bd_num(skb);
-	if (unlikely(bd_num > HNS3_MAX_BD_NUM_NORMAL)) {
-		struct sk_buff *new_skb;
-
-		if (skb_is_gso(skb) && bd_num <= HNS3_MAX_BD_NUM_TSO &&
-		    !hns3_skb_need_linearized(skb))
+	bd_num = hns3_tx_bd_num(skb, bd_size);
+	if (unlikely(bd_num > HNS3_MAX_NON_TSO_BD_NUM)) {
+		if (bd_num <= HNS3_MAX_TSO_BD_NUM && skb_is_gso(skb) &&
+		    !hns3_skb_need_linearized(skb, bd_size, bd_num)) {
+			trace_hns3_over_8bd(skb);
 			goto out;
+		}
 
-		/* manual split the send packet */
-		new_skb = skb_copy(skb, GFP_ATOMIC);
-		if (!new_skb)
+		if (__skb_linearize(skb))
 			return -ENOMEM;
-		dev_kfree_skb_any(skb);
-		*out_skb = new_skb;
 
-		bd_num = hns3_nic_bd_num(new_skb);
-		if ((skb_is_gso(new_skb) && bd_num > HNS3_MAX_BD_NUM_TSO) ||
-		    (!skb_is_gso(new_skb) && bd_num > HNS3_MAX_BD_NUM_NORMAL))
+		bd_num = hns3_tx_bd_count(skb->len);
+		if ((skb_is_gso(skb) && bd_num > HNS3_MAX_TSO_BD_NUM) ||
+		    (!skb_is_gso(skb) &&
+		     bd_num > HNS3_MAX_NON_TSO_BD_NUM)) {
+			trace_hns3_over_8bd(skb);
 			return -ENOMEM;
+		}
 
 		u64_stats_update_begin(&ring->syncp);
 		ring->stats.tx_copy++;
@@ -1278,10 +1323,23 @@
 	}
 
 out:
-	if (unlikely(ring_space(ring) < bd_num))
-		return -EBUSY;
+	if (likely(ring_space(ring) >= bd_num))
+		return bd_num;
 
-	return bd_num;
+	netif_stop_subqueue(netdev, ring->queue_index);
+	smp_mb(); /* Memory barrier before checking ring_space */
+
+	/* Start queue in case hns3_clean_tx_ring has just made room
+	 * available and has not seen the queue stopped state performed
+	 * by netif_stop_subqueue above.
+	 */
+	if (ring_space(ring) >= bd_num && netif_carrier_ok(netdev) &&
+	    !test_bit(HNS3_NIC_STATE_DOWN, &priv->state)) {
+		netif_start_subqueue(netdev, ring->queue_index);
+		return bd_num;
+	}
+
+	return -EBUSY;
 }
 
 static void hns3_clear_desc(struct hns3_enet_ring *ring, int next_to_use_orig)
@@ -1290,6 +1348,10 @@
 	unsigned int i;
 
 	for (i = 0; i < ring->desc_num; i++) {
+		struct hns3_desc *desc = &ring->desc[ring->next_to_use];
+
+		memset(desc, 0, sizeof(*desc));
+
 		/* check if this is where we started */
 		if (ring->next_to_use == next_to_use_orig)
 			break;
@@ -1297,6 +1359,9 @@
 		/* rollback one */
 		ring_ptr_move_bw(ring, next_to_use);
 
+		if (!ring->desc_cb[ring->next_to_use].dma)
+			continue;
+
 		/* unmap the descriptor dma address */
 		if (ring->desc_cb[ring->next_to_use].type == DESC_TYPE_SKB)
 			dma_unmap_single(dev,
@@ -1311,76 +1376,107 @@
 
 		ring->desc_cb[ring->next_to_use].length = 0;
 		ring->desc_cb[ring->next_to_use].dma = 0;
+		ring->desc_cb[ring->next_to_use].type = DESC_TYPE_UNKNOWN;
 	}
 }
 
+static int hns3_fill_skb_to_desc(struct hns3_enet_ring *ring,
+				 struct sk_buff *skb, enum hns_desc_type type)
+{
+	unsigned int size = skb_headlen(skb);
+	int i, ret, bd_num = 0;
+
+	if (size) {
+		ret = hns3_fill_desc(ring, skb, size, type);
+		if (unlikely(ret < 0))
+			return ret;
+
+		bd_num += ret;
+	}
+
+	for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
+		skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
+
+		size = skb_frag_size(frag);
+		if (!size)
+			continue;
+
+		ret = hns3_fill_desc(ring, frag, size, DESC_TYPE_PAGE);
+		if (unlikely(ret < 0))
+			return ret;
+
+		bd_num += ret;
+	}
+
+	return bd_num;
+}
+
 netdev_tx_t hns3_nic_net_xmit(struct sk_buff *skb, struct net_device *netdev)
 {
 	struct hns3_nic_priv *priv = netdev_priv(netdev);
-	struct hns3_nic_ring_data *ring_data =
-		&tx_ring_data(priv, skb->queue_mapping);
-	struct hns3_enet_ring *ring = ring_data->ring;
+	struct hns3_enet_ring *ring = &priv->ring[skb->queue_mapping];
 	struct netdev_queue *dev_queue;
-	skb_frag_t *frag;
-	int next_to_use_head;
-	int buf_num;
-	int seg_num;
-	int size;
+	int pre_ntu, next_to_use_head;
+	struct sk_buff *frag_skb;
+	int bd_num = 0;
 	int ret;
-	int i;
+
+	/* Hardware can only handle short frames above 32 bytes */
+	if (skb_put_padto(skb, HNS3_MIN_TX_LEN))
+		return NETDEV_TX_OK;
 
 	/* Prefetch the data used later */
 	prefetch(skb->data);
 
-	buf_num = hns3_nic_maybe_stop_tx(ring, &skb);
-	if (unlikely(buf_num <= 0)) {
-		if (buf_num == -EBUSY) {
+	ret = hns3_nic_maybe_stop_tx(ring, netdev, skb);
+	if (unlikely(ret <= 0)) {
+		if (ret == -EBUSY) {
 			u64_stats_update_begin(&ring->syncp);
 			ring->stats.tx_busy++;
 			u64_stats_update_end(&ring->syncp);
-			goto out_net_tx_busy;
-		} else if (buf_num == -ENOMEM) {
+			return NETDEV_TX_BUSY;
+		} else if (ret == -ENOMEM) {
 			u64_stats_update_begin(&ring->syncp);
 			ring->stats.sw_err_cnt++;
 			u64_stats_update_end(&ring->syncp);
 		}
 
-		hns3_rl_err(netdev, "xmit error: %d!\n", buf_num);
+		hns3_rl_err(netdev, "xmit error: %d!\n", ret);
 		goto out_err_tx_ok;
 	}
 
-	/* No. of segments (plus a header) */
-	seg_num = skb_shinfo(skb)->nr_frags + 1;
-	/* Fill the first part */
-	size = skb_headlen(skb);
-
 	next_to_use_head = ring->next_to_use;
 
-	ret = hns3_fill_desc(ring, skb, size, seg_num == 1 ? 1 : 0,
-			     DESC_TYPE_SKB);
-	if (unlikely(ret))
+	ret = hns3_fill_skb_to_desc(ring, skb, DESC_TYPE_SKB);
+	if (unlikely(ret < 0))
 		goto fill_err;
 
-	/* Fill the fragments */
-	for (i = 1; i < seg_num; i++) {
-		frag = &skb_shinfo(skb)->frags[i - 1];
-		size = skb_frag_size(frag);
+	bd_num += ret;
 
-		ret = hns3_fill_desc(ring, frag, size,
-				     seg_num - 1 == i ? 1 : 0,
-				     DESC_TYPE_PAGE);
+	if (!skb_has_frag_list(skb))
+		goto out;
 
-		if (unlikely(ret))
+	skb_walk_frags(skb, frag_skb) {
+		ret = hns3_fill_skb_to_desc(ring, frag_skb, DESC_TYPE_PAGE);
+		if (unlikely(ret < 0))
 			goto fill_err;
+
+		bd_num += ret;
 	}
+out:
+	pre_ntu = ring->next_to_use ? (ring->next_to_use - 1) :
+					(ring->desc_num - 1);
+	ring->desc[pre_ntu].tx.bdtp_fe_sc_vld_ra_ri |=
+				cpu_to_le16(BIT(HNS3_TXD_FE_B));
+	trace_hns3_tx_desc(ring, pre_ntu);
 
 	/* Complete translate all packets */
-	dev_queue = netdev_get_tx_queue(netdev, ring_data->queue_index);
+	dev_queue = netdev_get_tx_queue(netdev, ring->queue_index);
 	netdev_tx_sent_queue(dev_queue, skb->len);
 
 	wmb(); /* Commit all data before submit */
 
-	hnae3_queue_xmit(ring->tqp, buf_num);
+	hnae3_queue_xmit(ring->tqp, bd_num);
 
 	return NETDEV_TX_OK;
 
@@ -1390,12 +1486,6 @@
 out_err_tx_ok:
 	dev_kfree_skb_any(skb);
 	return NETDEV_TX_OK;
-
-out_net_tx_busy:
-	netif_stop_subqueue(netdev, ring_data->queue_index);
-	smp_mb(); /* Commit all data before submit */
-
-	return NETDEV_TX_BUSY;
 }
 
 static int hns3_nic_net_set_mac_address(struct net_device *netdev, void *p)
@@ -1413,6 +1503,16 @@
 		return 0;
 	}
 
+	/* For VF device, if there is a perm_addr, then the user will not
+	 * be allowed to change the address.
+	 */
+	if (!hns3_is_phys_func(h->pdev) &&
+	    !is_zero_ether_addr(netdev->perm_addr)) {
+		netdev_err(netdev, "has permanent MAC %pM, user MAC %pM not allow\n",
+			   netdev->perm_addr, mac_addr->sa_data);
+		return -EPERM;
+	}
+
 	ret = h->ae_algo->ops->set_mac_addr(h, mac_addr->sa_data, false);
 	if (ret) {
 		netdev_err(netdev, "set_mac_address fail, ret=%d!\n", ret);
@@ -1477,6 +1577,37 @@
 	return 0;
 }
 
+static netdev_features_t hns3_features_check(struct sk_buff *skb,
+					     struct net_device *dev,
+					     netdev_features_t features)
+{
+#define HNS3_MAX_HDR_LEN	480U
+#define HNS3_MAX_L4_HDR_LEN	60U
+
+	size_t len;
+
+	if (skb->ip_summed != CHECKSUM_PARTIAL)
+		return features;
+
+	if (skb->encapsulation)
+		len = skb_inner_transport_header(skb) - skb->data;
+	else
+		len = skb_transport_header(skb) - skb->data;
+
+	/* Assume L4 is 60 byte as TCP is the only protocol with a
+	 * a flexible value, and it's max len is 60 bytes.
+	 */
+	len += HNS3_MAX_L4_HDR_LEN;
+
+	/* Hardware only supports checksum on the skb with a max header
+	 * len of 480 bytes.
+	 */
+	if (len > HNS3_MAX_HDR_LEN)
+		features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK);
+
+	return features;
+}
+
 static void hns3_nic_get_stats64(struct net_device *netdev,
 				 struct rtnl_link_stats64 *stats)
 {
@@ -1505,7 +1636,7 @@
 
 	for (idx = 0; idx < queue_num; idx++) {
 		/* fetch the tx stats */
-		ring = priv->ring_data[idx].ring;
+		ring = &priv->ring[idx];
 		do {
 			start = u64_stats_fetch_begin_irq(&ring->syncp);
 			tx_bytes += ring->stats.tx_bytes;
@@ -1523,7 +1654,7 @@
 		} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
 
 		/* fetch the rx stats */
-		ring = priv->ring_data[idx + queue_num].ring;
+		ring = &priv->ring[idx + queue_num];
 		do {
 			start = u64_stats_fetch_begin_irq(&ring->syncp);
 			rx_bytes += ring->stats.rx_bytes;
@@ -1590,7 +1721,7 @@
 	netif_dbg(h, drv, netdev, "setup tc: num_tc=%u\n", tc);
 
 	return (kinfo->dcb_ops && kinfo->dcb_ops->setup_tc) ?
-		kinfo->dcb_ops->setup_tc(h, tc, prio_tc) : -EOPNOTSUPP;
+		kinfo->dcb_ops->setup_tc(h, tc ? tc : 1, prio_tc) : -EOPNOTSUPP;
 }
 
 static int hns3_nic_setup_tc(struct net_device *dev, enum tc_setup_type type,
@@ -1633,8 +1764,8 @@
 	int ret = -EIO;
 
 	netif_dbg(h, drv, netdev,
-		  "set vf vlan: vf=%d, vlan=%u, qos=%u, vlan_proto=%u\n",
-		  vf, vlan, qos, vlan_proto);
+		  "set vf vlan: vf=%d, vlan=%u, qos=%u, vlan_proto=0x%x\n",
+		  vf, vlan, qos, ntohs(vlan_proto));
 
 	if (h->ae_algo->ops->set_vf_vlan_filter)
 		ret = h->ae_algo->ops->set_vf_vlan_filter(h, vf, vlan,
@@ -1643,6 +1774,29 @@
 	return ret;
 }
 
+static int hns3_set_vf_spoofchk(struct net_device *netdev, int vf, bool enable)
+{
+	struct hnae3_handle *handle = hns3_get_handle(netdev);
+
+	if (hns3_nic_resetting(netdev))
+		return -EBUSY;
+
+	if (!handle->ae_algo->ops->set_vf_spoofchk)
+		return -EOPNOTSUPP;
+
+	return handle->ae_algo->ops->set_vf_spoofchk(handle, vf, enable);
+}
+
+static int hns3_set_vf_trust(struct net_device *netdev, int vf, bool enable)
+{
+	struct hnae3_handle *handle = hns3_get_handle(netdev);
+
+	if (!handle->ae_algo->ops->set_vf_trust)
+		return -EOPNOTSUPP;
+
+	return handle->ae_algo->ops->set_vf_trust(handle, vf, enable);
+}
+
 static int hns3_nic_change_mtu(struct net_device *netdev, int new_mtu)
 {
 	struct hnae3_handle *h = hns3_get_handle(netdev);
@@ -1671,7 +1825,7 @@
 {
 	struct hns3_nic_priv *priv = netdev_priv(ndev);
 	struct hnae3_handle *h = hns3_get_handle(ndev);
-	struct hns3_enet_ring *tx_ring = NULL;
+	struct hns3_enet_ring *tx_ring;
 	struct napi_struct *napi;
 	int timeout_queue = 0;
 	int hw_head, hw_tail;
@@ -1692,6 +1846,9 @@
 		    time_after(jiffies,
 			       (trans_start + ndev->watchdog_timeo))) {
 			timeout_queue = i;
+			netdev_info(ndev, "queue state: 0x%lx, delta msecs: %u\n",
+				    q->state,
+				    jiffies_to_msecs(jiffies - trans_start));
 			break;
 		}
 	}
@@ -1705,7 +1862,7 @@
 
 	priv->tx_timeout_count++;
 
-	tx_ring = priv->ring_data[timeout_queue].ring;
+	tx_ring = &priv->ring[timeout_queue];
 	napi = &tx_ring->tqp_vector->napi;
 
 	netdev_info(ndev,
@@ -1805,6 +1962,57 @@
 }
 #endif
 
+static int hns3_nic_get_vf_config(struct net_device *ndev, int vf,
+				  struct ifla_vf_info *ivf)
+{
+	struct hnae3_handle *h = hns3_get_handle(ndev);
+
+	if (!h->ae_algo->ops->get_vf_config)
+		return -EOPNOTSUPP;
+
+	return h->ae_algo->ops->get_vf_config(h, vf, ivf);
+}
+
+static int hns3_nic_set_vf_link_state(struct net_device *ndev, int vf,
+				      int link_state)
+{
+	struct hnae3_handle *h = hns3_get_handle(ndev);
+
+	if (!h->ae_algo->ops->set_vf_link_state)
+		return -EOPNOTSUPP;
+
+	return h->ae_algo->ops->set_vf_link_state(h, vf, link_state);
+}
+
+static int hns3_nic_set_vf_rate(struct net_device *ndev, int vf,
+				int min_tx_rate, int max_tx_rate)
+{
+	struct hnae3_handle *h = hns3_get_handle(ndev);
+
+	if (!h->ae_algo->ops->set_vf_rate)
+		return -EOPNOTSUPP;
+
+	return h->ae_algo->ops->set_vf_rate(h, vf, min_tx_rate, max_tx_rate,
+					    false);
+}
+
+static int hns3_nic_set_vf_mac(struct net_device *netdev, int vf_id, u8 *mac)
+{
+	struct hnae3_handle *h = hns3_get_handle(netdev);
+
+	if (!h->ae_algo->ops->set_vf_mac)
+		return -EOPNOTSUPP;
+
+	if (is_multicast_ether_addr(mac)) {
+		netdev_err(netdev,
+			   "Invalid MAC:%pM specified. Could not set MAC\n",
+			   mac);
+		return -EINVAL;
+	}
+
+	return h->ae_algo->ops->set_vf_mac(h, vf_id, mac);
+}
+
 static const struct net_device_ops hns3_nic_netdev_ops = {
 	.ndo_open		= hns3_nic_net_open,
 	.ndo_stop		= hns3_nic_net_stop,
@@ -1814,16 +2022,22 @@
 	.ndo_do_ioctl		= hns3_nic_do_ioctl,
 	.ndo_change_mtu		= hns3_nic_change_mtu,
 	.ndo_set_features	= hns3_nic_set_features,
+	.ndo_features_check	= hns3_features_check,
 	.ndo_get_stats64	= hns3_nic_get_stats64,
 	.ndo_setup_tc		= hns3_nic_setup_tc,
 	.ndo_set_rx_mode	= hns3_nic_set_rx_mode,
 	.ndo_vlan_rx_add_vid	= hns3_vlan_rx_add_vid,
 	.ndo_vlan_rx_kill_vid	= hns3_vlan_rx_kill_vid,
 	.ndo_set_vf_vlan	= hns3_ndo_set_vf_vlan,
+	.ndo_set_vf_spoofchk	= hns3_set_vf_spoofchk,
+	.ndo_set_vf_trust	= hns3_set_vf_trust,
 #ifdef CONFIG_RFS_ACCEL
 	.ndo_rx_flow_steer	= hns3_rx_flow_steer,
 #endif
-
+	.ndo_get_vf_config	= hns3_nic_get_vf_config,
+	.ndo_set_vf_link_state	= hns3_nic_set_vf_link_state,
+	.ndo_set_vf_rate	= hns3_nic_set_vf_rate,
+	.ndo_set_vf_mac		= hns3_nic_set_vf_mac,
 };
 
 bool hns3_is_phys_func(struct pci_dev *pdev)
@@ -1843,7 +2057,7 @@
 	case HNAE3_DEV_ID_100G_RDMA_DCB_PFC_VF:
 		return false;
 	default:
-		dev_warn(&pdev->dev, "un-recognized pci device-id %d",
+		dev_warn(&pdev->dev, "un-recognized pci device-id %u",
 			 dev_id);
 	}
 
@@ -2026,7 +2240,7 @@
 {
 	struct hnae3_ae_dev *ae_dev = pci_get_drvdata(pdev);
 
-	dev_info(&pdev->dev, "hns3 flr prepare\n");
+	dev_info(&pdev->dev, "FLR prepare\n");
 	if (ae_dev && ae_dev->ops && ae_dev->ops->flr_prepare)
 		ae_dev->ops->flr_prepare(ae_dev);
 }
@@ -2035,7 +2249,7 @@
 {
 	struct hnae3_ae_dev *ae_dev = pci_get_drvdata(pdev);
 
-	dev_info(&pdev->dev, "hns3 flr done\n");
+	dev_info(&pdev->dev, "FLR done\n");
 	if (ae_dev && ae_dev->ops && ae_dev->ops->flr_done)
 		ae_dev->ops->flr_done(ae_dev);
 }
@@ -2069,9 +2283,8 @@
 		NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
 		NETIF_F_GRO | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_GRE |
 		NETIF_F_GSO_GRE_CSUM | NETIF_F_GSO_UDP_TUNNEL |
-		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC;
-
-	netdev->hw_enc_features |= NETIF_F_TSO_MANGLEID;
+		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC |
+		NETIF_F_TSO_MANGLEID | NETIF_F_FRAGLIST;
 
 	netdev->gso_partial_features |= NETIF_F_GSO_GRE_CSUM;
 
@@ -2081,21 +2294,24 @@
 		NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
 		NETIF_F_GRO | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_GRE |
 		NETIF_F_GSO_GRE_CSUM | NETIF_F_GSO_UDP_TUNNEL |
-		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC;
+		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC |
+		NETIF_F_FRAGLIST;
 
 	netdev->vlan_features |=
 		NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM |
 		NETIF_F_SG | NETIF_F_GSO | NETIF_F_GRO |
 		NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_GRE |
 		NETIF_F_GSO_GRE_CSUM | NETIF_F_GSO_UDP_TUNNEL |
-		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC;
+		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC |
+		NETIF_F_FRAGLIST;
 
 	netdev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
 		NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX |
 		NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
 		NETIF_F_GRO | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_GRE |
 		NETIF_F_GSO_GRE_CSUM | NETIF_F_GSO_UDP_TUNNEL |
-		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC;
+		NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_SCTP_CRC |
+		NETIF_F_FRAGLIST;
 
 	if (pdev->revision >= 0x21) {
 		netdev->hw_features |= NETIF_F_GRO_HW;
@@ -2320,21 +2536,22 @@
 
 void hns3_clean_tx_ring(struct hns3_enet_ring *ring)
 {
-	struct net_device *netdev = ring->tqp->handle->kinfo.netdev;
+	struct net_device *netdev = ring_to_netdev(ring);
 	struct hns3_nic_priv *priv = netdev_priv(netdev);
 	struct netdev_queue *dev_queue;
 	int bytes, pkts;
 	int head;
 
 	head = readl_relaxed(ring->tqp->io_base + HNS3_RING_TX_RING_HEAD_REG);
-	rmb(); /* Make sure head is ready before touch any data */
 
 	if (is_ring_empty(ring) || head == ring->next_to_clean)
 		return; /* no data to poll */
 
+	rmb(); /* Make sure head is ready before touch any data */
+
 	if (unlikely(!is_valid_clean_head(ring, head))) {
-		netdev_err(netdev, "wrong head (%d, %d-%d)\n", head,
-			   ring->next_to_use, ring->next_to_clean);
+		hns3_rl_err(netdev, "wrong head (%d, %d-%d)\n", head,
+			    ring->next_to_use, ring->next_to_clean);
 
 		u64_stats_update_begin(&ring->syncp);
 		ring->stats.io_err_cnt++;
@@ -2357,8 +2574,8 @@
 	dev_queue = netdev_get_tx_queue(netdev, ring->tqp->tqp_index);
 	netdev_tx_completed_queue(dev_queue, pkts, bytes);
 
-	if (unlikely(pkts && netif_carrier_ok(netdev) &&
-		     (ring_space(ring) > HNS3_MAX_BD_PER_PKT))) {
+	if (unlikely(netif_carrier_ok(netdev) &&
+		     ring_space(ring) > HNS3_MAX_TSO_BD_NUM)) {
 		/* Make sure that anybody stopping the queue after this
 		 * sees the new next_to_clean.
 		 */
@@ -2401,7 +2618,7 @@
 				ring->stats.sw_err_cnt++;
 				u64_stats_update_end(&ring->syncp);
 
-				hns3_rl_err(ring->tqp_vector->napi.dev,
+				hns3_rl_err(ring_to_netdev(ring),
 					    "alloc rx buffer failed: %d\n",
 					    ret);
 				break;
@@ -2420,6 +2637,12 @@
 	writel_relaxed(i, ring->tqp->io_base + HNS3_RING_RX_RING_HEAD_REG);
 }
 
+static bool hns3_page_is_reusable(struct page *page)
+{
+	return page_to_nid(page) == numa_mem_id() &&
+		!page_is_pfmemalloc(page);
+}
+
 static void hns3_nic_reuse_page(struct sk_buff *skb, int i,
 				struct hns3_enet_ring *ring, int pull_len,
 				struct hns3_desc_cb *desc_cb)
@@ -2434,7 +2657,7 @@
 	/* Avoid re-using remote pages, or the stack is still using the page
 	 * when page_offset rollback to zero, flag default unreuse
 	 */
-	if (unlikely(page_to_nid(desc_cb->priv) != numa_mem_id()) ||
+	if (unlikely(!hns3_page_is_reusable(desc_cb->priv)) ||
 	    (!desc_cb->page_offset && page_count(desc_cb->priv) > 1))
 		return;
 
@@ -2504,13 +2727,16 @@
 	skb->csum_start = (unsigned char *)th - skb->head;
 	skb->csum_offset = offsetof(struct tcphdr, check);
 	skb->ip_summed = CHECKSUM_PARTIAL;
+
+	trace_hns3_gro(skb);
+
 	return 0;
 }
 
 static void hns3_rx_checksum(struct hns3_enet_ring *ring, struct sk_buff *skb,
 			     u32 l234info, u32 bd_base_info, u32 ol_info)
 {
-	struct net_device *netdev = ring->tqp->handle->kinfo.netdev;
+	struct net_device *netdev = ring_to_netdev(ring);
 	int l3_type, l4_type;
 	int ol4_type;
 
@@ -2624,9 +2850,8 @@
 static int hns3_alloc_skb(struct hns3_enet_ring *ring, unsigned int length,
 			  unsigned char *va)
 {
-#define HNS3_NEED_ADD_FRAG	1
 	struct hns3_desc_cb *desc_cb = &ring->desc_cb[ring->next_to_clean];
-	struct net_device *netdev = ring->tqp->handle->kinfo.netdev;
+	struct net_device *netdev = ring_to_netdev(ring);
 	struct sk_buff *skb;
 
 	ring->skb = napi_alloc_skb(&ring->tqp_vector->napi, HNS3_RX_HEAD_SIZE);
@@ -2641,6 +2866,7 @@
 		return -ENOMEM;
 	}
 
+	trace_hns3_rx_desc(ring);
 	prefetchw(skb->data);
 
 	ring->pending_buf = 1;
@@ -2650,7 +2876,7 @@
 		memcpy(__skb_put(skb, length), va, ALIGN(length, sizeof(long)));
 
 		/* We can reuse buffer as-is, just make sure it is local */
-		if (likely(page_to_nid(desc_cb->priv) == numa_mem_id()))
+		if (likely(hns3_page_is_reusable(desc_cb->priv)))
 			desc_cb->reuse_flag = 1;
 		else /* This page cannot be reused so discard it */
 			put_page(desc_cb->priv);
@@ -2668,33 +2894,19 @@
 			    desc_cb);
 	ring_ptr_move_fw(ring, next_to_clean);
 
-	return HNS3_NEED_ADD_FRAG;
+	return 0;
 }
 
-static int hns3_add_frag(struct hns3_enet_ring *ring, struct hns3_desc *desc,
-			 struct sk_buff **out_skb, bool pending)
+static int hns3_add_frag(struct hns3_enet_ring *ring)
 {
-	struct sk_buff *skb = *out_skb;
-	struct sk_buff *head_skb = *out_skb;
+	struct sk_buff *skb = ring->skb;
+	struct sk_buff *head_skb = skb;
 	struct sk_buff *new_skb;
 	struct hns3_desc_cb *desc_cb;
-	struct hns3_desc *pre_desc;
+	struct hns3_desc *desc;
 	u32 bd_base_info;
-	int pre_bd;
-
-	/* if there is pending bd, the SW param next_to_clean has moved
-	 * to next and the next is NULL
-	 */
-	if (pending) {
-		pre_bd = (ring->next_to_clean - 1 + ring->desc_num) %
-			 ring->desc_num;
-		pre_desc = &ring->desc[pre_bd];
-		bd_base_info = le32_to_cpu(pre_desc->rx.bd_base_info);
-	} else {
-		bd_base_info = le32_to_cpu(desc->rx.bd_base_info);
-	}
 
-	while (!(bd_base_info & BIT(HNS3_RXD_FE_B))) {
+	do {
 		desc = &ring->desc[ring->next_to_clean];
 		desc_cb = &ring->desc_cb[ring->next_to_clean];
 		bd_base_info = le32_to_cpu(desc->rx.bd_base_info);
@@ -2704,10 +2916,9 @@
 			return -ENXIO;
 
 		if (unlikely(ring->frag_num >= MAX_SKB_FRAGS)) {
-			new_skb = napi_alloc_skb(&ring->tqp_vector->napi,
-						 HNS3_RX_HEAD_SIZE);
+			new_skb = napi_alloc_skb(&ring->tqp_vector->napi, 0);
 			if (unlikely(!new_skb)) {
-				hns3_rl_err(ring->tqp_vector->napi.dev,
+				hns3_rl_err(ring_to_netdev(ring),
 					    "alloc rx fraglist skb fail\n");
 				return -ENXIO;
 			}
@@ -2730,9 +2941,10 @@
 		}
 
 		hns3_nic_reuse_page(skb, ring->frag_num++, ring, 0, desc_cb);
+		trace_hns3_rx_desc(ring);
 		ring_ptr_move_fw(ring, next_to_clean);
 		ring->pending_buf++;
-	}
+	} while (!(bd_base_info & BIT(HNS3_RXD_FE_B)));
 
 	return 0;
 }
@@ -2783,7 +2995,7 @@
 
 static int hns3_handle_bdinfo(struct hns3_enet_ring *ring, struct sk_buff *skb)
 {
-	struct net_device *netdev = ring->tqp->handle->kinfo.netdev;
+	struct net_device *netdev = ring_to_netdev(ring);
 	enum hns3_pkt_l2t_type l2_frame_type;
 	u32 bd_base_info, l234info, ol_info;
 	struct hns3_desc *desc;
@@ -2858,8 +3070,7 @@
 	return 0;
 }
 
-static int hns3_handle_rx_bd(struct hns3_enet_ring *ring,
-			     struct sk_buff **out_skb)
+static int hns3_handle_rx_bd(struct hns3_enet_ring *ring)
 {
 	struct sk_buff *skb = ring->skb;
 	struct hns3_desc_cb *desc_cb;
@@ -2897,32 +3108,27 @@
 
 	if (!skb) {
 		ret = hns3_alloc_skb(ring, length, ring->va);
-		*out_skb = skb = ring->skb;
+		skb = ring->skb;
 
 		if (ret < 0) /* alloc buffer fail */
 			return ret;
-		if (ret > 0) { /* need add frag */
-			ret = hns3_add_frag(ring, desc, &skb, false);
+		if (!(bd_base_info & BIT(HNS3_RXD_FE_B))) { /* need add frag */
+			ret = hns3_add_frag(ring);
 			if (ret)
 				return ret;
-
-			/* As the head data may be changed when GRO enable, copy
-			 * the head data in after other data rx completed
-			 */
-			memcpy(skb->data, ring->va,
-			       ALIGN(ring->pull_len, sizeof(long)));
 		}
 	} else {
-		ret = hns3_add_frag(ring, desc, &skb, true);
+		ret = hns3_add_frag(ring);
 		if (ret)
 			return ret;
+	}
 
-		/* As the head data may be changed when GRO enable, copy
-		 * the head data in after other data rx completed
-		 */
+	/* As the head data may be changed when GRO enable, copy
+	 * the head data in after other data rx completed
+	 */
+	if (skb->len > HNS3_RX_HEAD_SIZE)
 		memcpy(skb->data, ring->va,
 		       ALIGN(ring->pull_len, sizeof(long)));
-	}
 
 	ret = hns3_handle_bdinfo(ring, skb);
 	if (unlikely(ret)) {
@@ -2931,8 +3137,6 @@
 	}
 
 	skb_record_rx_queue(skb, ring->tqp->tqp_index);
-	*out_skb = skb;
-
 	return 0;
 }
 
@@ -2941,17 +3145,19 @@
 {
 #define RCB_NOF_ALLOC_RX_BUFF_ONCE 16
 	int unused_count = hns3_desc_unused(ring);
-	struct sk_buff *skb = ring->skb;
 	int recv_pkts = 0;
 	int recv_bds = 0;
 	int err, num;
 
 	num = readl_relaxed(ring->tqp->io_base + HNS3_RING_RX_RING_FBDNUM_REG);
-	rmb(); /* Make sure num taken effect before the other data is touched */
-
 	num -= unused_count;
 	unused_count -= ring->pending_buf;
 
+	if (num <= 0)
+		goto out;
+
+	rmb(); /* Make sure num taken effect before the other data is touched */
+
 	while (recv_pkts < budget && recv_bds < num) {
 		/* Reuse or realloc buffers */
 		if (unused_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
@@ -2961,27 +3167,19 @@
 		}
 
 		/* Poll one pkt */
-		err = hns3_handle_rx_bd(ring, &skb);
-		if (unlikely(!skb)) /* This fault cannot be repaired */
+		err = hns3_handle_rx_bd(ring);
+		/* Do not get FE for the packet or failed to alloc skb */
+		if (unlikely(!ring->skb || err == -ENXIO)) {
 			goto out;
-
-		if (err == -ENXIO) { /* Do not get FE for the packet */
-			goto out;
-		} else if (unlikely(err)) {  /* Do jump the err */
-			recv_bds += ring->pending_buf;
-			unused_count += ring->pending_buf;
-			ring->skb = NULL;
-			ring->pending_buf = 0;
-			continue;
+		} else if (likely(!err)) {
+			rx_fn(ring, ring->skb);
+			recv_pkts++;
 		}
 
-		rx_fn(ring, skb);
 		recv_bds += ring->pending_buf;
 		unused_count += ring->pending_buf;
 		ring->skb = NULL;
 		ring->pending_buf = 0;
-
-		recv_pkts++;
 	}
 
 out:
@@ -3324,13 +3522,13 @@
 		tqp_vector = &priv->tqp_vector[vector_i];
 
 		hns3_add_ring_to_group(&tqp_vector->tx_group,
-				       priv->ring_data[i].ring);
+				       &priv->ring[i]);
 
 		hns3_add_ring_to_group(&tqp_vector->rx_group,
-				       priv->ring_data[i + tqp_num].ring);
+				       &priv->ring[i + tqp_num]);
 
-		priv->ring_data[i].ring->tqp_vector = tqp_vector;
-		priv->ring_data[i + tqp_num].ring->tqp_vector = tqp_vector;
+		priv->ring[i].tqp_vector = tqp_vector;
+		priv->ring[i + tqp_num].tqp_vector = tqp_vector;
 		tqp_vector->num_tqps++;
 	}
 
@@ -3436,26 +3634,25 @@
 		if (!tqp_vector->rx_group.ring && !tqp_vector->tx_group.ring)
 			continue;
 
-		hns3_get_vector_ring_chain(tqp_vector, &vector_ring_chain);
+		/* Since the mapping can be overwritten, when fail to get the
+		 * chain between vector and ring, we should go on to deal with
+		 * the remaining options.
+		 */
+		if (hns3_get_vector_ring_chain(tqp_vector, &vector_ring_chain))
+			dev_warn(priv->dev, "failed to get ring chain\n");
 
 		h->ae_algo->ops->unmap_ring_from_vector(h,
 			tqp_vector->vector_irq, &vector_ring_chain);
 
 		hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain);
 
-		if (tqp_vector->irq_init_flag == HNS3_VECTOR_INITED) {
-			irq_set_affinity_hint(tqp_vector->vector_irq, NULL);
-			free_irq(tqp_vector->vector_irq, tqp_vector);
-			tqp_vector->irq_init_flag = HNS3_VECTOR_NOT_INITED;
-		}
-
 		hns3_clear_ring_group(&tqp_vector->rx_group);
 		hns3_clear_ring_group(&tqp_vector->tx_group);
 		netif_napi_del(&priv->tqp_vector[i].napi);
 	}
 }
 
-static int hns3_nic_dealloc_vector_data(struct hns3_nic_priv *priv)
+static void hns3_nic_dealloc_vector_data(struct hns3_nic_priv *priv)
 {
 	struct hnae3_handle *h = priv->ae_handle;
 	struct pci_dev *pdev = h->pdev;
@@ -3467,35 +3664,28 @@
 		tqp_vector = &priv->tqp_vector[i];
 		ret = h->ae_algo->ops->put_vector(h, tqp_vector->vector_irq);
 		if (ret)
-			return ret;
+			return;
 	}
 
 	devm_kfree(&pdev->dev, priv->tqp_vector);
-	return 0;
 }
 
-static int hns3_ring_get_cfg(struct hnae3_queue *q, struct hns3_nic_priv *priv,
-			     unsigned int ring_type)
+static void hns3_ring_get_cfg(struct hnae3_queue *q, struct hns3_nic_priv *priv,
+			      unsigned int ring_type)
 {
-	struct hns3_nic_ring_data *ring_data = priv->ring_data;
 	int queue_num = priv->ae_handle->kinfo.num_tqps;
-	struct pci_dev *pdev = priv->ae_handle->pdev;
 	struct hns3_enet_ring *ring;
 	int desc_num;
 
-	ring = devm_kzalloc(&pdev->dev, sizeof(*ring), GFP_KERNEL);
-	if (!ring)
-		return -ENOMEM;
-
 	if (ring_type == HNAE3_RING_TYPE_TX) {
+		ring = &priv->ring[q->tqp_index];
 		desc_num = priv->ae_handle->kinfo.num_tx_desc;
-		ring_data[q->tqp_index].ring = ring;
-		ring_data[q->tqp_index].queue_index = q->tqp_index;
+		ring->queue_index = q->tqp_index;
 		ring->io_base = (u8 __iomem *)q->io_base + HNS3_TX_REG_OFFSET;
 	} else {
+		ring = &priv->ring[q->tqp_index + queue_num];
 		desc_num = priv->ae_handle->kinfo.num_rx_desc;
-		ring_data[q->tqp_index + queue_num].ring = ring;
-		ring_data[q->tqp_index + queue_num].queue_index = q->tqp_index;
+		ring->queue_index = q->tqp_index;
 		ring->io_base = q->io_base;
 	}
 
@@ -3510,76 +3700,41 @@
 	ring->desc_num = desc_num;
 	ring->next_to_use = 0;
 	ring->next_to_clean = 0;
-
-	return 0;
 }
 
-static int hns3_queue_to_ring(struct hnae3_queue *tqp,
-			      struct hns3_nic_priv *priv)
+static void hns3_queue_to_ring(struct hnae3_queue *tqp,
+			       struct hns3_nic_priv *priv)
 {
-	int ret;
-
-	ret = hns3_ring_get_cfg(tqp, priv, HNAE3_RING_TYPE_TX);
-	if (ret)
-		return ret;
-
-	ret = hns3_ring_get_cfg(tqp, priv, HNAE3_RING_TYPE_RX);
-	if (ret) {
-		devm_kfree(priv->dev, priv->ring_data[tqp->tqp_index].ring);
-		return ret;
-	}
-
-	return 0;
+	hns3_ring_get_cfg(tqp, priv, HNAE3_RING_TYPE_TX);
+	hns3_ring_get_cfg(tqp, priv, HNAE3_RING_TYPE_RX);
 }
 
 static int hns3_get_ring_config(struct hns3_nic_priv *priv)
 {
 	struct hnae3_handle *h = priv->ae_handle;
 	struct pci_dev *pdev = h->pdev;
-	int i, ret;
+	int i;
 
-	priv->ring_data =  devm_kzalloc(&pdev->dev,
-					array3_size(h->kinfo.num_tqps,
-						    sizeof(*priv->ring_data),
-						    2),
-					GFP_KERNEL);
-	if (!priv->ring_data)
+	priv->ring = devm_kzalloc(&pdev->dev,
+				  array3_size(h->kinfo.num_tqps,
+					      sizeof(*priv->ring), 2),
+				  GFP_KERNEL);
+	if (!priv->ring)
 		return -ENOMEM;
 
-	for (i = 0; i < h->kinfo.num_tqps; i++) {
-		ret = hns3_queue_to_ring(h->kinfo.tqp[i], priv);
-		if (ret)
-			goto err;
-	}
+	for (i = 0; i < h->kinfo.num_tqps; i++)
+		hns3_queue_to_ring(h->kinfo.tqp[i], priv);
 
 	return 0;
-err:
-	while (i--) {
-		devm_kfree(priv->dev, priv->ring_data[i].ring);
-		devm_kfree(priv->dev,
-			   priv->ring_data[i + h->kinfo.num_tqps].ring);
-	}
-
-	devm_kfree(&pdev->dev, priv->ring_data);
-	priv->ring_data = NULL;
-	return ret;
 }
 
 static void hns3_put_ring_config(struct hns3_nic_priv *priv)
 {
-	struct hnae3_handle *h = priv->ae_handle;
-	int i;
-
-	if (!priv->ring_data)
+	if (!priv->ring)
 		return;
 
-	for (i = 0; i < h->kinfo.num_tqps; i++) {
-		devm_kfree(priv->dev, priv->ring_data[i].ring);
-		devm_kfree(priv->dev,
-			   priv->ring_data[i + h->kinfo.num_tqps].ring);
-	}
-	devm_kfree(priv->dev, priv->ring_data);
-	priv->ring_data = NULL;
+	devm_kfree(priv->dev, priv->ring);
+	priv->ring = NULL;
 }
 
 static int hns3_alloc_ring_memory(struct hns3_enet_ring *ring)
@@ -3696,7 +3851,7 @@
 		for (j = 0; j < tc_info->tqp_count; j++) {
 			struct hnae3_queue *q;
 
-			q = priv->ring_data[tc_info->tqp_offset + j].ring->tqp;
+			q = priv->ring[tc_info->tqp_offset + j].tqp;
 			hns3_write_dev(q, HNS3_RING_TX_RING_TC_REG,
 				       tc_info->tc);
 		}
@@ -3711,21 +3866,21 @@
 	int ret;
 
 	for (i = 0; i < ring_num; i++) {
-		ret = hns3_alloc_ring_memory(priv->ring_data[i].ring);
+		ret = hns3_alloc_ring_memory(&priv->ring[i]);
 		if (ret) {
 			dev_err(priv->dev,
 				"Alloc ring memory fail! ret=%d\n", ret);
 			goto out_when_alloc_ring_memory;
 		}
 
-		u64_stats_init(&priv->ring_data[i].ring->syncp);
+		u64_stats_init(&priv->ring[i].syncp);
 	}
 
 	return 0;
 
 out_when_alloc_ring_memory:
 	for (j = i - 1; j >= 0; j--)
-		hns3_fini_ring(priv->ring_data[j].ring);
+		hns3_fini_ring(&priv->ring[j]);
 
 	return -ENOMEM;
 }
@@ -3736,30 +3891,31 @@
 	int i;
 
 	for (i = 0; i < h->kinfo.num_tqps; i++) {
-		hns3_fini_ring(priv->ring_data[i].ring);
-		hns3_fini_ring(priv->ring_data[i + h->kinfo.num_tqps].ring);
+		hns3_fini_ring(&priv->ring[i]);
+		hns3_fini_ring(&priv->ring[i + h->kinfo.num_tqps]);
 	}
 	return 0;
 }
 
 /* Set mac addr if it is configured. or leave it to the AE driver */
-static int hns3_init_mac_addr(struct net_device *netdev, bool init)
+static int hns3_init_mac_addr(struct net_device *netdev)
 {
 	struct hns3_nic_priv *priv = netdev_priv(netdev);
 	struct hnae3_handle *h = priv->ae_handle;
 	u8 mac_addr_temp[ETH_ALEN];
 	int ret = 0;
 
-	if (h->ae_algo->ops->get_mac_addr && init) {
+	if (h->ae_algo->ops->get_mac_addr)
 		h->ae_algo->ops->get_mac_addr(h, mac_addr_temp);
-		ether_addr_copy(netdev->dev_addr, mac_addr_temp);
-	}
 
 	/* Check if the MAC address is valid, if not get a random one */
-	if (!is_valid_ether_addr(netdev->dev_addr)) {
+	if (!is_valid_ether_addr(mac_addr_temp)) {
 		eth_hw_addr_random(netdev);
 		dev_warn(priv->dev, "using random MAC address %pM\n",
 			 netdev->dev_addr);
+	} else {
+		ether_addr_copy(netdev->dev_addr, mac_addr_temp);
+		ether_addr_copy(netdev->perm_addr, mac_addr_temp);
 	}
 
 	if (h->ae_algo->ops->set_mac_addr)
@@ -3827,14 +3983,14 @@
 	struct hnae3_knic_private_info *kinfo = &priv->ae_handle->kinfo;
 
 	dev_info(priv->dev, "MAC address: %pM\n", priv->netdev->dev_addr);
-	dev_info(priv->dev, "Task queue pairs numbers: %d\n", kinfo->num_tqps);
-	dev_info(priv->dev, "RSS size: %d\n", kinfo->rss_size);
-	dev_info(priv->dev, "Allocated RSS size: %d\n", kinfo->req_rss_size);
-	dev_info(priv->dev, "RX buffer length: %d\n", kinfo->rx_buf_len);
-	dev_info(priv->dev, "Desc num per TX queue: %d\n", kinfo->num_tx_desc);
-	dev_info(priv->dev, "Desc num per RX queue: %d\n", kinfo->num_rx_desc);
-	dev_info(priv->dev, "Total number of enabled TCs: %d\n", kinfo->num_tc);
-	dev_info(priv->dev, "Max mtu size: %d\n", priv->netdev->max_mtu);
+	dev_info(priv->dev, "Task queue pairs numbers: %u\n", kinfo->num_tqps);
+	dev_info(priv->dev, "RSS size: %u\n", kinfo->rss_size);
+	dev_info(priv->dev, "Allocated RSS size: %u\n", kinfo->req_rss_size);
+	dev_info(priv->dev, "RX buffer length: %u\n", kinfo->rx_buf_len);
+	dev_info(priv->dev, "Desc num per TX queue: %u\n", kinfo->num_tx_desc);
+	dev_info(priv->dev, "Desc num per RX queue: %u\n", kinfo->num_rx_desc);
+	dev_info(priv->dev, "Total number of enabled TCs: %u\n", kinfo->num_tc);
+	dev_info(priv->dev, "Max mtu size: %u\n", priv->netdev->max_mtu);
 }
 
 static int hns3_client_init(struct hnae3_handle *handle)
@@ -3863,7 +4019,7 @@
 	handle->kinfo.netdev = netdev;
 	handle->priv = (void *)priv;
 
-	hns3_init_mac_addr(netdev, true);
+	hns3_init_mac_addr(netdev);
 
 	hns3_set_default_feature(netdev);
 
@@ -3897,7 +4053,7 @@
 	ret = hns3_init_all_ring(priv);
 	if (ret) {
 		ret = -ENOMEM;
-		goto out_init_ring_data;
+		goto out_init_ring;
 	}
 
 	ret = hns3_init_phy(netdev);
@@ -3910,6 +4066,18 @@
 		goto out_reg_netdev_fail;
 	}
 
+	/* the device can work without cpu rmap, only aRFS needs it */
+	ret = hns3_set_rx_cpu_rmap(netdev);
+	if (ret)
+		dev_warn(priv->dev, "set rx cpu rmap fail, ret=%d\n", ret);
+
+	ret = hns3_nic_init_irq(priv);
+	if (ret) {
+		dev_err(priv->dev, "init irq failed! ret=%d\n", ret);
+		hns3_free_rx_cpu_rmap(netdev);
+		goto out_init_irq_fail;
+	}
+
 	ret = hns3_client_start(handle);
 	if (ret) {
 		dev_err(priv->dev, "hns3_client_start fail! ret=%d\n", ret);
@@ -3931,17 +4099,20 @@
 	return ret;
 
 out_client_start:
+	hns3_free_rx_cpu_rmap(netdev);
+	hns3_nic_uninit_irq(priv);
+out_init_irq_fail:
 	unregister_netdev(netdev);
 out_reg_netdev_fail:
 	hns3_uninit_phy(netdev);
 out_init_phy:
 	hns3_uninit_all_ring(priv);
-out_init_ring_data:
+out_init_ring:
 	hns3_nic_uninit_vector_data(priv);
 out_init_vector_data:
 	hns3_nic_dealloc_vector_data(priv);
 out_alloc_vector_data:
-	priv->ring_data = NULL;
+	priv->ring = NULL;
 out_get_ring_cfg:
 	priv->ae_handle = NULL;
 	free_netdev(netdev);
@@ -3968,15 +4139,17 @@
 		goto out_netdev_free;
 	}
 
+	hns3_free_rx_cpu_rmap(netdev);
+
+	hns3_nic_uninit_irq(priv);
+
 	hns3_del_all_fd_rules(netdev, true);
 
 	hns3_clear_all_ring(handle, true);
 
 	hns3_nic_uninit_vector_data(priv);
 
-	ret = hns3_nic_dealloc_vector_data(priv);
-	if (ret)
-		netdev_err(netdev, "dealloc vector error\n");
+	hns3_nic_dealloc_vector_data(priv);
 
 	ret = hns3_uninit_all_ring(priv);
 	if (ret)
@@ -3984,9 +4157,8 @@
 
 	hns3_put_ring_config(priv);
 
-	hns3_dbg_uninit(handle);
-
 out_netdev_free:
+	hns3_dbg_uninit(handle);
 	free_netdev(netdev);
 }
 
@@ -3998,8 +4170,8 @@
 		return;
 
 	if (linkup) {
-		netif_carrier_on(netdev);
 		netif_tx_wake_all_queues(netdev);
+		netif_carrier_on(netdev);
 		if (netif_msg_link(handle))
 			netdev_info(netdev, "link up\n");
 	} else {
@@ -4102,7 +4274,7 @@
 				/* if alloc new buffer fail, exit directly
 				 * and reclear in up flow.
 				 */
-				netdev_warn(ring->tqp->handle->kinfo.netdev,
+				netdev_warn(ring_to_netdev(ring),
 					    "reserve buffer map failed, ret = %d\n",
 					    ret);
 				return ret;
@@ -4148,10 +4320,10 @@
 	for (i = 0; i < h->kinfo.num_tqps; i++) {
 		struct hns3_enet_ring *ring;
 
-		ring = priv->ring_data[i].ring;
+		ring = &priv->ring[i];
 		hns3_clear_tx_ring(ring);
 
-		ring = priv->ring_data[i + h->kinfo.num_tqps].ring;
+		ring = &priv->ring[i + h->kinfo.num_tqps];
 		/* Continue to clear other rings even if clearing some
 		 * rings failed.
 		 */
@@ -4175,16 +4347,16 @@
 		if (ret)
 			return ret;
 
-		hns3_init_ring_hw(priv->ring_data[i].ring);
+		hns3_init_ring_hw(&priv->ring[i]);
 
 		/* We need to clear tx ring here because self test will
 		 * use the ring and will not run down before up
 		 */
-		hns3_clear_tx_ring(priv->ring_data[i].ring);
-		priv->ring_data[i].ring->next_to_clean = 0;
-		priv->ring_data[i].ring->next_to_use = 0;
+		hns3_clear_tx_ring(&priv->ring[i]);
+		priv->ring[i].next_to_clean = 0;
+		priv->ring[i].next_to_use = 0;
 
-		rx_ring = priv->ring_data[i + h->kinfo.num_tqps].ring;
+		rx_ring = &priv->ring[i + h->kinfo.num_tqps];
 		hns3_init_ring_hw(rx_ring);
 		ret = hns3_clear_rx_ring(rx_ring);
 		if (ret)
@@ -4303,17 +4475,32 @@
 	if (ret)
 		goto err_uninit_vector;
 
+	/* the device can work without cpu rmap, only aRFS needs it */
+	ret = hns3_set_rx_cpu_rmap(netdev);
+	if (ret)
+		dev_warn(priv->dev, "set rx cpu rmap fail, ret=%d\n", ret);
+
+	ret = hns3_nic_init_irq(priv);
+	if (ret) {
+		dev_err(priv->dev, "init irq failed! ret=%d\n", ret);
+		hns3_free_rx_cpu_rmap(netdev);
+		goto err_init_irq_fail;
+	}
+
 	ret = hns3_client_start(handle);
 	if (ret) {
 		dev_err(priv->dev, "hns3_client_start fail! ret=%d\n", ret);
-		goto err_uninit_ring;
+		goto err_client_start_fail;
 	}
 
 	set_bit(HNS3_NIC_STATE_INITED, &priv->state);
 
 	return ret;
 
-err_uninit_ring:
+err_client_start_fail:
+	hns3_free_rx_cpu_rmap(netdev);
+	hns3_nic_uninit_irq(priv);
+err_init_irq_fail:
 	hns3_uninit_all_ring(priv);
 err_uninit_vector:
 	hns3_nic_uninit_vector_data(priv);
@@ -4331,7 +4518,7 @@
 	bool vlan_filter_enable;
 	int ret;
 
-	ret = hns3_init_mac_addr(netdev, false);
+	ret = hns3_init_mac_addr(netdev);
 	if (ret)
 		return ret;
 
@@ -4363,6 +4550,8 @@
 		return 0;
 	}
 
+	hns3_free_rx_cpu_rmap(netdev);
+	hns3_nic_uninit_irq(priv);
 	hns3_clear_all_ring(handle, true);
 	hns3_reset_tx_queue(priv->ae_handle);
 
@@ -4370,9 +4559,7 @@
 
 	hns3_store_coal(priv);
 
-	ret = hns3_nic_dealloc_vector_data(priv);
-	if (ret)
-		netdev_err(netdev, "dealloc vector error\n");
+	hns3_nic_dealloc_vector_data(priv);
 
 	ret = hns3_uninit_all_ring(priv);
 	if (ret)
@@ -4454,7 +4641,7 @@
 	if (new_tqp_num > hns3_get_max_available_channels(h) ||
 	    new_tqp_num < 1) {
 		dev_err(&netdev->dev,
-			"Change tqps fail, the tqp range is from 1 to %d",
+			"Change tqps fail, the tqp range is from 1 to %u",
 			hns3_get_max_available_channels(h));
 		return -EINVAL;
 	}
@@ -4538,7 +4725,7 @@
 	pr_info("%s: %s\n", hns3_driver_name, hns3_copyright);
 
 	client.type = HNAE3_CLIENT_KNIC;
-	snprintf(client.name, HNAE3_CLIENT_NAME_LENGTH - 1, "%s",
+	snprintf(client.name, HNAE3_CLIENT_NAME_LENGTH, "%s",
 		 hns3_driver_name);
 
 	client.ops = &client_ops;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
@@ -76,7 +76,7 @@
 #define HNS3_RING_NAME_LEN			16
 #define HNS3_BUFFER_SIZE_2048			2048
 #define HNS3_RING_MAX_PENDING			32760
-#define HNS3_RING_MIN_PENDING			24
+#define HNS3_RING_MIN_PENDING			72
 #define HNS3_RING_BD_MULTIPLE			8
 /* max frame size of mac */
 #define HNS3_MAC_MAX_FRAME			9728
@@ -186,7 +186,7 @@
 #define HNS3_TXD_MSS_S				0
 #define HNS3_TXD_MSS_M				(0x3fff << HNS3_TXD_MSS_S)
 
-#define HNS3_TX_LAST_SIZE_M                    0xffff
+#define HNS3_TX_LAST_SIZE_M			0xffff
 
 #define HNS3_VECTOR_TX_IRQ			BIT_ULL(0)
 #define HNS3_VECTOR_RX_IRQ			BIT_ULL(1)
@@ -195,9 +195,13 @@
 #define HNS3_VECTOR_INITED			1
 
 #define HNS3_MAX_BD_SIZE			65535
-#define HNS3_MAX_BD_NUM_NORMAL			8
-#define HNS3_MAX_BD_NUM_TSO			63
-#define HNS3_MAX_BD_PER_PKT			MAX_SKB_FRAGS
+#define HNS3_MAX_NON_TSO_BD_NUM			8U
+#define HNS3_MAX_TSO_BD_NUM			63U
+#define HNS3_MAX_TSO_SIZE \
+	(HNS3_MAX_BD_SIZE * HNS3_MAX_TSO_BD_NUM)
+
+#define HNS3_MAX_NON_TSO_SIZE \
+	(HNS3_MAX_BD_SIZE * HNS3_MAX_NON_TSO_BD_NUM)
 
 #define HNS3_VECTOR_GL0_OFFSET			0x100
 #define HNS3_VECTOR_GL1_OFFSET			0x200
@@ -309,7 +313,7 @@
 
 	u16 reuse_flag;
 
-       /* desc type, used by the ring user to mark the type of the priv data */
+	/* desc type, used by the ring user to mark the type of the priv data */
 	u16 type;
 };
 
@@ -405,6 +409,7 @@
 	struct hns3_enet_ring *next;
 	struct hns3_enet_tqp_vector *tqp_vector;
 	struct hnae3_queue *tqp;
+	int queue_index;
 	struct device *dev; /* will be used for DMA mapping of descriptors */
 
 	/* statistic */
@@ -430,18 +435,7 @@
 	int pending_buf;
 	struct sk_buff *skb;
 	struct sk_buff *tail_skb;
-};
-
-struct hns_queue;
-
-struct hns3_nic_ring_data {
-	struct hns3_enet_ring *ring;
-	struct napi_struct napi;
-	int queue_index;
-	int (*poll_one)(struct hns3_nic_ring_data *, int, void *);
-	void (*ex_process)(struct hns3_nic_ring_data *, struct sk_buff *);
-	void (*fini_process)(struct hns3_nic_ring_data *);
-};
+} ____cacheline_internodealigned_in_smp;
 
 enum hns3_flow_level_range {
 	HNS3_FLOW_LOW = 0,
@@ -518,7 +512,7 @@
 	 * the cb for nic to manage the ring buffer, the first half of the
 	 * array is for tx_ring and vice versa for the second half
 	 */
-	struct hns3_nic_ring_data *ring_data;
+	struct hns3_enet_ring *ring;
 	struct hns3_enet_tqp_vector *tqp_vector;
 	u16 vector_num;
 
@@ -613,11 +607,11 @@
 
 #define ring_to_dev(ring) ((ring)->dev)
 
+#define ring_to_netdev(ring)	((ring)->tqp_vector->napi.dev)
+
 #define ring_to_dma_dir(ring) (HNAE3_IS_TX_RING(ring) ? \
 	DMA_TO_DEVICE : DMA_FROM_DEVICE)
 
-#define tx_ring_data(priv, idx) ((priv)->ring_data[idx])
-
 #define hns3_buf_size(_ring) ((_ring)->buf_size)
 
 static inline unsigned int hns3_page_order(struct hns3_enet_ring *ring)
@@ -679,4 +673,5 @@
 void hns3_dbg_uninit(struct hnae3_handle *handle);
 void hns3_dbg_register_debugfs(const char *debugfs_dir_name);
 void hns3_dbg_unregister_debugfs(void);
+void hns3_shinfo_pack(struct skb_shared_info *shinfo, __u32 *size);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
@@ -174,18 +174,21 @@
 {
 	struct hns3_enet_tqp_vector *tqp_vector = ring->tqp_vector;
 	unsigned char *packet = skb->data;
+	u32 len = skb_headlen(skb);
 	u32 i;
 
-	for (i = 0; i < skb->len; i++)
+	len = min_t(u32, len, HNS3_NIC_LB_TEST_PACKET_SIZE);
+
+	for (i = 0; i < len; i++)
 		if (packet[i] != (unsigned char)(i & 0xff))
 			break;
 
 	/* The packet is correctly received */
-	if (i == skb->len)
+	if (i == HNS3_NIC_LB_TEST_PACKET_SIZE)
 		tqp_vector->rx_group.total_packets++;
 	else
 		print_hex_dump(KERN_ERR, "selftest:", DUMP_PREFIX_OFFSET, 16, 1,
-			       skb->data, skb->len, true);
+			       skb->data, len, true);
 
 	dev_kfree_skb_any(skb);
 }
@@ -198,7 +201,7 @@
 
 	kinfo = &h->kinfo;
 	for (i = kinfo->num_tqps; i < kinfo->num_tqps * 2; i++) {
-		struct hns3_enet_ring *ring = priv->ring_data[i].ring;
+		struct hns3_enet_ring *ring = &priv->ring[i];
 		struct hns3_enet_ring_group *rx_group;
 		u64 pre_rx_pkt;
 
@@ -221,7 +224,7 @@
 	u32 i;
 
 	for (i = start_ringid; i <= end_ringid; i++) {
-		struct hns3_enet_ring *ring = priv->ring_data[i].ring;
+		struct hns3_enet_ring *ring = &priv->ring[i];
 
 		hns3_clean_tx_ring(ring);
 	}
@@ -423,9 +426,8 @@
 			data[ETH_GSTRING_LEN - 1] = '\0';
 
 			/* first, prepend the prefix string */
-			n1 = snprintf(data, MAX_PREFIX_SIZE, "%s%d_",
-				      prefix, i);
-			n1 = min_t(uint, n1, MAX_PREFIX_SIZE - 1);
+			n1 = scnprintf(data, MAX_PREFIX_SIZE, "%s%d_",
+				       prefix, i);
 			size_left = (ETH_GSTRING_LEN - 1) - n1;
 
 			/* now, concatenate the stats string to it */
@@ -486,7 +488,7 @@
 
 	/* get stats for Tx */
 	for (i = 0; i < kinfo->num_tqps; i++) {
-		ring = nic_priv->ring_data[i].ring;
+		ring = &nic_priv->ring[i];
 		for (j = 0; j < HNS3_TXQ_STATS_COUNT; j++) {
 			stat = (u8 *)ring + hns3_txq_stats[j].stats_offset;
 			*data++ = *(u64 *)stat;
@@ -495,7 +497,7 @@
 
 	/* get stats for Rx */
 	for (i = 0; i < kinfo->num_tqps; i++) {
-		ring = nic_priv->ring_data[i + kinfo->num_tqps].ring;
+		ring = &nic_priv->ring[i + kinfo->num_tqps];
 		for (j = 0; j < HNS3_RXQ_STATS_COUNT; j++) {
 			stat = (u8 *)ring + hns3_rxq_stats[j].stats_offset;
 			*data++ = *(u64 *)stat;
@@ -598,8 +600,8 @@
 	param->tx_max_pending = HNS3_RING_MAX_PENDING;
 	param->rx_max_pending = HNS3_RING_MAX_PENDING;
 
-	param->tx_pending = priv->ring_data[0].ring->desc_num;
-	param->rx_pending = priv->ring_data[queue_num].ring->desc_num;
+	param->tx_pending = priv->ring[0].desc_num;
+	param->rx_pending = priv->ring[queue_num].desc_num;
 }
 
 static void hns3_get_pauseparam(struct net_device *netdev,
@@ -737,7 +739,7 @@
 	if (ops->get_media_type)
 		ops->get_media_type(handle, &media_type, &module_type);
 
-	if (cmd->base.duplex != DUPLEX_FULL &&
+	if (cmd->base.duplex == DUPLEX_HALF &&
 	    media_type != HNAE3_MEDIA_TYPE_COPPER) {
 		netdev_err(netdev,
 			   "only copper port supports half duplex!");
@@ -901,9 +903,8 @@
 	h->kinfo.num_rx_desc = rx_desc_num;
 
 	for (i = 0; i < h->kinfo.num_tqps; i++) {
-		priv->ring_data[i].ring->desc_num = tx_desc_num;
-		priv->ring_data[i + h->kinfo.num_tqps].ring->desc_num =
-			rx_desc_num;
+		priv->ring[i].desc_num = tx_desc_num;
+		priv->ring[i + h->kinfo.num_tqps].desc_num = rx_desc_num;
 	}
 }
 
@@ -919,7 +920,7 @@
 		return NULL;
 
 	for (i = 0; i < handle->kinfo.num_tqps * 2; i++) {
-		memcpy(&tmp_rings[i], priv->ring_data[i].ring,
+		memcpy(&tmp_rings[i], &priv->ring[i],
 		       sizeof(struct hns3_enet_ring));
 		tmp_rings[i].skb = NULL;
 	}
@@ -967,8 +968,8 @@
 	/* Hardware requires that its descriptors must be multiple of eight */
 	new_tx_desc_num = ALIGN(param->tx_pending, HNS3_RING_BD_MULTIPLE);
 	new_rx_desc_num = ALIGN(param->rx_pending, HNS3_RING_BD_MULTIPLE);
-	old_tx_desc_num = priv->ring_data[0].ring->desc_num;
-	old_rx_desc_num = priv->ring_data[queue_num].ring->desc_num;
+	old_tx_desc_num = priv->ring[0].desc_num;
+	old_rx_desc_num = priv->ring[queue_num].desc_num;
 	if (old_tx_desc_num == new_tx_desc_num &&
 	    old_rx_desc_num == new_rx_desc_num)
 		return 0;
@@ -981,7 +982,7 @@
 	}
 
 	netdev_info(ndev,
-		    "Changing Tx/Rx ring depth from %d/%d to %d/%d\n",
+		    "Changing Tx/Rx ring depth from %u/%u to %u/%u\n",
 		    old_tx_desc_num, old_rx_desc_num,
 		    new_tx_desc_num, new_rx_desc_num);
 
@@ -997,7 +998,7 @@
 		hns3_change_all_ring_bd_num(priv, old_tx_desc_num,
 					    old_rx_desc_num);
 		for (i = 0; i < h->kinfo.num_tqps * 2; i++)
-			memcpy(priv->ring_data[i].ring, &tmp_rings[i],
+			memcpy(&priv->ring[i], &tmp_rings[i],
 			       sizeof(struct hns3_enet_ring));
 	} else {
 		for (i = 0; i < h->kinfo.num_tqps * 2; i++)
@@ -1093,13 +1094,13 @@
 
 	if (queue >= queue_num) {
 		netdev_err(netdev,
-			   "Invalid queue value %d! Queue max id=%d\n",
+			   "Invalid queue value %u! Queue max id=%u\n",
 			   queue, queue_num - 1);
 		return -EINVAL;
 	}
 
-	tx_vector = priv->ring_data[queue].ring->tqp_vector;
-	rx_vector = priv->ring_data[queue_num + queue].ring->tqp_vector;
+	tx_vector = priv->ring[queue].tqp_vector;
+	rx_vector = priv->ring[queue_num + queue].tqp_vector;
 
 	cmd->use_adaptive_tx_coalesce =
 			tx_vector->tx_group.coal.gl_adapt_enable;
@@ -1143,14 +1144,14 @@
 	rx_gl = hns3_gl_round_down(cmd->rx_coalesce_usecs);
 	if (rx_gl != cmd->rx_coalesce_usecs) {
 		netdev_info(netdev,
-			    "rx_usecs(%d) rounded down to %d, because it must be multiple of 2.\n",
+			    "rx_usecs(%u) rounded down to %u, because it must be multiple of 2.\n",
 			    cmd->rx_coalesce_usecs, rx_gl);
 	}
 
 	tx_gl = hns3_gl_round_down(cmd->tx_coalesce_usecs);
 	if (tx_gl != cmd->tx_coalesce_usecs) {
 		netdev_info(netdev,
-			    "tx_usecs(%d) rounded down to %d, because it must be multiple of 2.\n",
+			    "tx_usecs(%u) rounded down to %u, because it must be multiple of 2.\n",
 			    cmd->tx_coalesce_usecs, tx_gl);
 	}
 
@@ -1178,7 +1179,7 @@
 	rl = hns3_rl_round_down(cmd->rx_coalesce_usecs_high);
 	if (rl != cmd->rx_coalesce_usecs_high) {
 		netdev_info(netdev,
-			    "usecs_high(%d) rounded down to %d, because it must be multiple of 4.\n",
+			    "usecs_high(%u) rounded down to %u, because it must be multiple of 4.\n",
 			    cmd->rx_coalesce_usecs_high, rl);
 	}
 
@@ -1207,7 +1208,7 @@
 	if (cmd->use_adaptive_tx_coalesce == 1 ||
 	    cmd->use_adaptive_rx_coalesce == 1) {
 		netdev_info(netdev,
-			    "adaptive-tx=%d and adaptive-rx=%d, tx_usecs or rx_usecs will changed dynamically.\n",
+			    "adaptive-tx=%u and adaptive-rx=%u, tx_usecs or rx_usecs will changed dynamically.\n",
 			    cmd->use_adaptive_tx_coalesce,
 			    cmd->use_adaptive_rx_coalesce);
 	}
@@ -1224,8 +1225,8 @@
 	struct hnae3_handle *h = priv->ae_handle;
 	int queue_num = h->kinfo.num_tqps;
 
-	tx_vector = priv->ring_data[queue].ring->tqp_vector;
-	rx_vector = priv->ring_data[queue_num + queue].ring->tqp_vector;
+	tx_vector = priv->ring[queue].tqp_vector;
+	rx_vector = priv->ring[queue_num + queue].tqp_vector;
 
 	tx_vector->tx_group.coal.gl_adapt_enable =
 				cmd->use_adaptive_tx_coalesce;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_trace.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3_trace.h
@@ -0,0 +1,139 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/* Copyright (c) 2018-2019 Hisilicon Limited. */
+
+/* This must be outside ifdef _HNS3_TRACE_H */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM hns3
+
+#if !defined(_HNS3_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
+#define _HNS3_TRACE_H_
+
+#include <linux/tracepoint.h>
+
+#define DESC_NR		(sizeof(struct hns3_desc) / sizeof(u32))
+
+DECLARE_EVENT_CLASS(hns3_skb_template,
+	TP_PROTO(struct sk_buff *skb),
+	TP_ARGS(skb),
+
+	TP_STRUCT__entry(
+		__field(unsigned int, headlen)
+		__field(unsigned int, len)
+		__field(__u8, nr_frags)
+		__field(__u8, ip_summed)
+		__field(unsigned int, hdr_len)
+		__field(unsigned short, gso_size)
+		__field(unsigned short, gso_segs)
+		__field(unsigned int, gso_type)
+		__field(bool, fraglist)
+		__array(__u32, size, MAX_SKB_FRAGS)
+	),
+
+	TP_fast_assign(
+		__entry->headlen = skb_headlen(skb);
+		__entry->len = skb->len;
+		__entry->nr_frags = skb_shinfo(skb)->nr_frags;
+		__entry->gso_size = skb_shinfo(skb)->gso_size;
+		__entry->gso_segs = skb_shinfo(skb)->gso_segs;
+		__entry->gso_type = skb_shinfo(skb)->gso_type;
+		__entry->hdr_len = skb->encapsulation ?
+		skb_inner_transport_offset(skb) + inner_tcp_hdrlen(skb) :
+		skb_transport_offset(skb) + tcp_hdrlen(skb);
+		__entry->ip_summed = skb->ip_summed;
+		__entry->fraglist = skb_has_frag_list(skb);
+		hns3_shinfo_pack(skb_shinfo(skb), __entry->size);
+	),
+
+	TP_printk(
+		"len: %u, %u, %u, cs: %u, gso: %u, %u, %x, frag(%d %u): %s",
+		__entry->headlen, __entry->len, __entry->hdr_len,
+		__entry->ip_summed, __entry->gso_size, __entry->gso_segs,
+		__entry->gso_type, __entry->fraglist, __entry->nr_frags,
+		__print_array(__entry->size, MAX_SKB_FRAGS, sizeof(__u32))
+	)
+);
+
+DEFINE_EVENT(hns3_skb_template, hns3_over_8bd,
+	TP_PROTO(struct sk_buff *skb),
+	TP_ARGS(skb));
+
+DEFINE_EVENT(hns3_skb_template, hns3_gro,
+	TP_PROTO(struct sk_buff *skb),
+	TP_ARGS(skb));
+
+DEFINE_EVENT(hns3_skb_template, hns3_tso,
+	TP_PROTO(struct sk_buff *skb),
+	TP_ARGS(skb));
+
+TRACE_EVENT(hns3_tx_desc,
+	TP_PROTO(struct hns3_enet_ring *ring, int cur_ntu),
+	TP_ARGS(ring, cur_ntu),
+
+	TP_STRUCT__entry(
+		__field(int, index)
+		__field(int, ntu)
+		__field(int, ntc)
+		__field(dma_addr_t, desc_dma)
+		__array(u32, desc, DESC_NR)
+		__string(devname, ring->tqp->handle->kinfo.netdev->name)
+	),
+
+	TP_fast_assign(
+		__entry->index = ring->tqp->tqp_index;
+		__entry->ntu = ring->next_to_use;
+		__entry->ntc = ring->next_to_clean;
+		__entry->desc_dma = ring->desc_dma_addr,
+		memcpy(__entry->desc, &ring->desc[cur_ntu],
+		       sizeof(struct hns3_desc));
+		__assign_str(devname, ring->tqp->handle->kinfo.netdev->name);
+	),
+
+	TP_printk(
+		"%s-%d-%d/%d desc(%pad): %s",
+		__get_str(devname), __entry->index, __entry->ntu,
+		__entry->ntc, &__entry->desc_dma,
+		__print_array(__entry->desc, DESC_NR, sizeof(u32))
+	)
+);
+
+TRACE_EVENT(hns3_rx_desc,
+	TP_PROTO(struct hns3_enet_ring *ring),
+	TP_ARGS(ring),
+
+	TP_STRUCT__entry(
+		__field(int, index)
+		__field(int, ntu)
+		__field(int, ntc)
+		__field(dma_addr_t, desc_dma)
+		__field(dma_addr_t, buf_dma)
+		__array(u32, desc, DESC_NR)
+		__string(devname, ring->tqp->handle->kinfo.netdev->name)
+	),
+
+	TP_fast_assign(
+		__entry->index = ring->tqp->tqp_index;
+		__entry->ntu = ring->next_to_use;
+		__entry->ntc = ring->next_to_clean;
+		__entry->desc_dma = ring->desc_dma_addr;
+		__entry->buf_dma = ring->desc_cb[ring->next_to_clean].dma;
+		memcpy(__entry->desc, &ring->desc[ring->next_to_clean],
+		       sizeof(struct hns3_desc));
+		__assign_str(devname, ring->tqp->handle->kinfo.netdev->name);
+	),
+
+	TP_printk(
+		"%s-%d-%d/%d desc(%pad) buf(%pad): %s",
+		__get_str(devname), __entry->index, __entry->ntu,
+		__entry->ntc, &__entry->desc_dma, &__entry->buf_dma,
+		__print_array(__entry->desc, DESC_NR, sizeof(u32))
+	)
+);
+
+#endif /* _HNS3_TRACE_H_ */
+
+/* This must be outside ifdef _HNS3_TRACE_H */
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH .
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_FILE hns3_trace
+#include <trace/define_trace.h>
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c
@@ -145,7 +145,7 @@
 	rmb(); /* Make sure head is ready before touch any data */
 
 	if (!is_valid_csq_clean_head(csq, head)) {
-		dev_warn(&hdev->pdev->dev, "wrong cmd head (%d, %d-%d)\n", head,
+		dev_warn(&hdev->pdev->dev, "wrong cmd head (%u, %d-%d)\n", head,
 			 csq->next_to_use, csq->next_to_clean);
 		dev_warn(&hdev->pdev->dev,
 			 "Disabling any further commands to IMP firmware\n");
@@ -314,11 +314,10 @@
 		} while (timeout < hw->cmq.tx_timeout);
 	}
 
-	if (!complete) {
+	if (!complete)
 		retval = -EBADE;
-	} else {
+	else
 		retval = hclge_cmd_check_retval(hw, desc, num, ntc);
-	}
 
 	/* Clean the command send queue */
 	handle = hclge_cmd_csq_clean(hw);
@@ -480,19 +479,6 @@
 	hclge_write_dev(hw, HCLGE_NIC_CRQ_TAIL_REG, 0);
 }
 
-static void hclge_destroy_queue(struct hclge_cmq_ring *ring)
-{
-	spin_lock(&ring->lock);
-	hclge_free_cmd_desc(ring);
-	spin_unlock(&ring->lock);
-}
-
-static void hclge_destroy_cmd_queue(struct hclge_hw *hw)
-{
-	hclge_destroy_queue(&hw->cmq.csq);
-	hclge_destroy_queue(&hw->cmq.crq);
-}
-
 void hclge_cmd_uninit(struct hclge_dev *hdev)
 {
 	spin_lock_bh(&hdev->hw.cmq.csq.lock);
@@ -502,5 +488,6 @@
 	spin_unlock(&hdev->hw.cmq.crq.lock);
 	spin_unlock_bh(&hdev->hw.cmq.csq.lock);
 
-	hclge_destroy_cmd_queue(&hdev->hw);
+	hclge_free_cmd_desc(&hdev->hw.cmq.csq);
+	hclge_free_cmd_desc(&hdev->hw.cmq.crq);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
@@ -5,8 +5,11 @@
 #define __HCLGE_CMD_H
 #include <linux/types.h>
 #include <linux/io.h>
+#include <linux/etherdevice.h>
+#include "hnae3.h"
 
 #define HCLGE_CMDQ_TX_TIMEOUT		30000
+#define HCLGE_DESC_DATA_LEN		6
 
 struct hclge_dev;
 struct hclge_desc {
@@ -18,7 +21,7 @@
 	__le16 flag;
 	__le16 retval;
 	__le16 rsv;
-	__le32 data[6];
+	__le32 data[HCLGE_DESC_DATA_LEN];
 };
 
 struct hclge_cmq_ring {
@@ -61,6 +64,7 @@
 struct hclge_misc_vector {
 	u8 __iomem *addr;
 	int vector_irq;
+	char name[HNAE3_INT_NAME_LEN];
 };
 
 struct hclge_cmq {
@@ -244,7 +248,7 @@
 	/* QCN commands */
 	HCLGE_OPC_QCN_MOD_CFG		= 0x1A01,
 	HCLGE_OPC_QCN_GRP_TMPLT_CFG	= 0x1A02,
-	HCLGE_OPC_QCN_SHAPPING_IR_CFG	= 0x1A03,
+	HCLGE_OPC_QCN_SHAPPING_CFG	= 0x1A03,
 	HCLGE_OPC_QCN_SHAPPING_BS_CFG	= 0x1A04,
 	HCLGE_OPC_QCN_QSET_LINK_CFG	= 0x1A05,
 	HCLGE_OPC_QCN_RP_STATUS_GET	= 0x1A06,
@@ -259,6 +263,7 @@
 
 	/* NCL config command */
 	HCLGE_OPC_QUERY_NCL_CONFIG	= 0x7011,
+
 	/* M7 stats command */
 	HCLGE_OPC_M7_STATS_BD		= 0x7012,
 	HCLGE_OPC_M7_STATS_INFO		= 0x7013,
@@ -428,8 +433,10 @@
 #define HCLGE_PF_MAC_NUM_MASK	0x3
 #define HCLGE_PF_STATE_MAIN	BIT(HCLGE_PF_STATE_MAIN_B)
 #define HCLGE_PF_STATE_DONE	BIT(HCLGE_PF_STATE_DONE_B)
+#define HCLGE_VF_RST_STATUS_CMD	4
+
 struct hclge_func_status_cmd {
-	__le32  vf_rst_state[4];
+	__le32  vf_rst_state[HCLGE_VF_RST_STATUS_CMD];
 	u8 pf_state;
 	u8 mac_id;
 	u8 rsv1;
@@ -485,10 +492,12 @@
 #define HCLGE_CFG_UMV_TBL_SPACE_S	16
 #define HCLGE_CFG_UMV_TBL_SPACE_M	GENMASK(31, 16)
 
+#define HCLGE_CFG_CMD_CNT		4
+
 struct hclge_cfg_param_cmd {
 	__le32 offset;
 	__le32 rsv;
-	__le32 param[4];
+	__le32 param[HCLGE_CFG_CMD_CNT];
 };
 
 #define HCLGE_MAC_MODE		0x0
@@ -712,8 +721,7 @@
 	u8      flags;
 	u8      resp_code;
 	__le16  vlan_tag;
-	__le32  mac_addr_hi32;
-	__le16  mac_addr_lo16;
+	u8      mac_addr[ETH_ALEN];
 	__le16  rsv1;
 	__le16  ethter_type;
 	__le16  egress_port;
@@ -758,20 +766,27 @@
 	u8 rsv2[19];
 };
 
+#define HCLGE_VLAN_ID_OFFSET_STEP	160
+#define HCLGE_VLAN_BYTE_SIZE		8
+#define	HCLGE_VLAN_OFFSET_BITMAP \
+	(HCLGE_VLAN_ID_OFFSET_STEP / HCLGE_VLAN_BYTE_SIZE)
+
 struct hclge_vlan_filter_pf_cfg_cmd {
 	u8 vlan_offset;
 	u8 vlan_cfg;
 	u8 rsv[2];
-	u8 vlan_offset_bitmap[20];
+	u8 vlan_offset_bitmap[HCLGE_VLAN_OFFSET_BITMAP];
 };
 
+#define HCLGE_MAX_VF_BYTES  16
+
 struct hclge_vlan_filter_vf_cfg_cmd {
 	__le16 vlan_id;
 	u8  resp_code;
 	u8  rsv;
 	u8  vlan_cfg;
 	u8  rsv1[3];
-	u8  vf_bitmap[16];
+	u8  vf_bitmap[HCLGE_MAX_VF_BYTES];
 };
 
 #define HCLGE_SWITCH_ANTI_SPOOF_B	0U
@@ -806,6 +821,7 @@
 #define HCLGE_CFG_NIC_ROCE_SEL_B	4
 #define HCLGE_ACCEPT_TAG2_B		5
 #define HCLGE_ACCEPT_UNTAG2_B		6
+#define HCLGE_VF_NUM_PER_BYTE		8
 
 struct hclge_vport_vtag_tx_cfg_cmd {
 	u8 vport_vlan_cfg;
@@ -813,7 +829,7 @@
 	u8 rsv1[2];
 	__le16 def_vlan_tag1;
 	__le16 def_vlan_tag2;
-	u8 vf_bitmap[8];
+	u8 vf_bitmap[HCLGE_VF_NUM_PER_BYTE];
 	u8 rsv2[8];
 };
 
@@ -825,7 +841,7 @@
 	u8 vport_vlan_cfg;
 	u8 vf_offset;
 	u8 rsv1[6];
-	u8 vf_bitmap[8];
+	u8 vf_bitmap[HCLGE_VF_NUM_PER_BYTE];
 	u8 rsv2[8];
 };
 
@@ -864,7 +880,7 @@
 	u8	flags;
 	u8	resp_code;
 	__le16  vlan_tag;
-	u8      mac_addr[6];
+	u8      mac_addr[ETH_ALEN];
 	__le16  index;
 	__le16	ethter_type;
 	__le16  egress_port;
@@ -1018,16 +1034,16 @@
 #define HCLGE_FD_AD_DROP_B		0
 #define HCLGE_FD_AD_DIRECT_QID_B	1
 #define HCLGE_FD_AD_QID_S		2
-#define HCLGE_FD_AD_QID_M		GENMASK(12, 2)
+#define HCLGE_FD_AD_QID_M		GENMASK(11, 2)
 #define HCLGE_FD_AD_USE_COUNTER_B	12
 #define HCLGE_FD_AD_COUNTER_NUM_S	13
 #define HCLGE_FD_AD_COUNTER_NUM_M	GENMASK(20, 13)
 #define HCLGE_FD_AD_NXT_STEP_B		20
 #define HCLGE_FD_AD_NXT_KEY_S		21
-#define HCLGE_FD_AD_NXT_KEY_M		GENMASK(26, 21)
+#define HCLGE_FD_AD_NXT_KEY_M		GENMASK(25, 21)
 #define HCLGE_FD_AD_WR_RULE_ID_B	0
 #define HCLGE_FD_AD_RULE_ID_S		1
-#define HCLGE_FD_AD_RULE_ID_M		GENMASK(13, 1)
+#define HCLGE_FD_AD_RULE_ID_M		GENMASK(12, 1)
 
 struct hclge_fd_ad_config_cmd {
 	u8 stage;
@@ -1090,9 +1106,6 @@
 				enum hclge_opcode_type opcode, bool is_read);
 void hclge_cmd_reuse_desc(struct hclge_desc *desc, bool is_read);
 
-int hclge_cmd_set_promisc_mode(struct hclge_dev *hdev,
-			       struct hclge_promisc_param *param);
-
 enum hclge_cmd_status hclge_cmd_mdio_write(struct hclge_hw *hw,
 					   struct hclge_desc *desc);
 enum hclge_cmd_status hclge_cmd_mdio_read(struct hclge_hw *hw,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
@@ -87,7 +87,7 @@
 	for (i = 0; i < HNAE3_MAX_USER_PRIO; i++) {
 		if (prio_tc[i] >= num_tc) {
 			dev_err(&hdev->pdev->dev,
-				"prio_tc[%u] checking failed, %u >= num_tc(%u)\n",
+				"prio_tc[%d] checking failed, %u >= num_tc(%u)\n",
 				i, prio_tc[i], num_tc);
 			return -EINVAL;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
@@ -73,8 +73,6 @@
 
 static int hclge_dbg_get_dfx_bd_num(struct hclge_dev *hdev, int offset)
 {
-#define HCLGE_GET_DFX_REG_TYPE_CNT	4
-
 	struct hclge_desc desc[HCLGE_GET_DFX_REG_TYPE_CNT];
 	int entries_per_desc;
 	int index;
@@ -89,7 +87,7 @@
 
 	entries_per_desc = ARRAY_SIZE(desc[0].data);
 	index = offset % entries_per_desc;
-	return (int)desc[offset / entries_per_desc].data[index];
+	return le32_to_cpu(desc[offset / entries_per_desc].data[index]);
 }
 
 static int hclge_dbg_cmd_send(struct hclge_dev *hdev,
@@ -145,15 +143,13 @@
 		return;
 	}
 
-	buf_len	 = sizeof(struct hclge_desc) * bd_num;
+	buf_len	= sizeof(struct hclge_desc) * bd_num;
 	desc_src = kzalloc(buf_len, GFP_KERNEL);
-	if (!desc_src) {
-		dev_err(&hdev->pdev->dev, "call kzalloc failed\n");
+	if (!desc_src)
 		return;
-	}
 
 	desc = desc_src;
-	ret  = hclge_dbg_cmd_send(hdev, desc, index, bd_num, reg_msg->cmd);
+	ret = hclge_dbg_cmd_send(hdev, desc, index, bd_num, reg_msg->cmd);
 	if (ret) {
 		kfree(desc_src);
 		return;
@@ -169,7 +165,7 @@
 		if (dfx_message->flag)
 			dev_info(&hdev->pdev->dev, "%s: 0x%x\n",
 				 dfx_message->message,
-				 desc->data[i % entries_per_desc]);
+				 le32_to_cpu(desc->data[i % entries_per_desc]));
 
 		dfx_message++;
 	}
@@ -181,6 +177,7 @@
 {
 	struct device *dev = &hdev->pdev->dev;
 	struct hclge_dbg_bitmap_cmd *bitmap;
+	enum hclge_opcode_type cmd;
 	int rq_id, pri_id, qset_id;
 	int port_id, nq_id, pg_id;
 	struct hclge_desc desc[2];
@@ -195,10 +192,10 @@
 		return;
 	}
 
-	ret = hclge_dbg_cmd_send(hdev, desc, qset_id, 1,
-				 HCLGE_OPC_QSET_DFX_STS);
+	cmd = HCLGE_OPC_QSET_DFX_STS;
+	ret = hclge_dbg_cmd_send(hdev, desc, qset_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
 	bitmap = (struct hclge_dbg_bitmap_cmd *)&desc[0].data[1];
 	dev_info(dev, "roce_qset_mask: 0x%x\n", bitmap->bit0);
@@ -206,75 +203,90 @@
 	dev_info(dev, "qs_shaping_pass: 0x%x\n", bitmap->bit2);
 	dev_info(dev, "qs_bp_sts: 0x%x\n", bitmap->bit3);
 
-	ret = hclge_dbg_cmd_send(hdev, desc, pri_id, 1, HCLGE_OPC_PRI_DFX_STS);
+	cmd = HCLGE_OPC_PRI_DFX_STS;
+	ret = hclge_dbg_cmd_send(hdev, desc, pri_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
 	bitmap = (struct hclge_dbg_bitmap_cmd *)&desc[0].data[1];
 	dev_info(dev, "pri_mask: 0x%x\n", bitmap->bit0);
 	dev_info(dev, "pri_cshaping_pass: 0x%x\n", bitmap->bit1);
 	dev_info(dev, "pri_pshaping_pass: 0x%x\n", bitmap->bit2);
 
-	ret = hclge_dbg_cmd_send(hdev, desc, pg_id, 1, HCLGE_OPC_PG_DFX_STS);
+	cmd = HCLGE_OPC_PG_DFX_STS;
+	ret = hclge_dbg_cmd_send(hdev, desc, pg_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
 	bitmap = (struct hclge_dbg_bitmap_cmd *)&desc[0].data[1];
 	dev_info(dev, "pg_mask: 0x%x\n", bitmap->bit0);
 	dev_info(dev, "pg_cshaping_pass: 0x%x\n", bitmap->bit1);
 	dev_info(dev, "pg_pshaping_pass: 0x%x\n", bitmap->bit2);
 
-	ret = hclge_dbg_cmd_send(hdev, desc, port_id, 1,
-				 HCLGE_OPC_PORT_DFX_STS);
+	cmd = HCLGE_OPC_PORT_DFX_STS;
+	ret = hclge_dbg_cmd_send(hdev, desc, port_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
 	bitmap = (struct hclge_dbg_bitmap_cmd *)&desc[0].data[1];
 	dev_info(dev, "port_mask: 0x%x\n", bitmap->bit0);
 	dev_info(dev, "port_shaping_pass: 0x%x\n", bitmap->bit1);
 
-	ret = hclge_dbg_cmd_send(hdev, desc, nq_id, 1, HCLGE_OPC_SCH_NQ_CNT);
+	cmd = HCLGE_OPC_SCH_NQ_CNT;
+	ret = hclge_dbg_cmd_send(hdev, desc, nq_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
-	dev_info(dev, "sch_nq_cnt: 0x%x\n", desc[0].data[1]);
+	dev_info(dev, "sch_nq_cnt: 0x%x\n", le32_to_cpu(desc[0].data[1]));
 
-	ret = hclge_dbg_cmd_send(hdev, desc, nq_id, 1, HCLGE_OPC_SCH_RQ_CNT);
+	cmd = HCLGE_OPC_SCH_RQ_CNT;
+	ret = hclge_dbg_cmd_send(hdev, desc, nq_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
-	dev_info(dev, "sch_rq_cnt: 0x%x\n", desc[0].data[1]);
+	dev_info(dev, "sch_rq_cnt: 0x%x\n", le32_to_cpu(desc[0].data[1]));
 
-	ret = hclge_dbg_cmd_send(hdev, desc, 0, 2, HCLGE_OPC_TM_INTERNAL_STS);
+	cmd = HCLGE_OPC_TM_INTERNAL_STS;
+	ret = hclge_dbg_cmd_send(hdev, desc, 0, 2, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
-	dev_info(dev, "pri_bp: 0x%x\n", desc[0].data[1]);
-	dev_info(dev, "fifo_dfx_info: 0x%x\n", desc[0].data[2]);
-	dev_info(dev, "sch_roce_fifo_afull_gap: 0x%x\n", desc[0].data[3]);
-	dev_info(dev, "tx_private_waterline: 0x%x\n", desc[0].data[4]);
-	dev_info(dev, "tm_bypass_en: 0x%x\n", desc[0].data[5]);
-	dev_info(dev, "SSU_TM_BYPASS_EN: 0x%x\n", desc[1].data[0]);
-	dev_info(dev, "SSU_RESERVE_CFG: 0x%x\n", desc[1].data[1]);
+	dev_info(dev, "pri_bp: 0x%x\n", le32_to_cpu(desc[0].data[1]));
+	dev_info(dev, "fifo_dfx_info: 0x%x\n", le32_to_cpu(desc[0].data[2]));
+	dev_info(dev, "sch_roce_fifo_afull_gap: 0x%x\n",
+		 le32_to_cpu(desc[0].data[3]));
+	dev_info(dev, "tx_private_waterline: 0x%x\n",
+		 le32_to_cpu(desc[0].data[4]));
+	dev_info(dev, "tm_bypass_en: 0x%x\n", le32_to_cpu(desc[0].data[5]));
+	dev_info(dev, "SSU_TM_BYPASS_EN: 0x%x\n", le32_to_cpu(desc[1].data[0]));
+	dev_info(dev, "SSU_RESERVE_CFG: 0x%x\n", le32_to_cpu(desc[1].data[1]));
 
-	ret = hclge_dbg_cmd_send(hdev, desc, port_id, 1,
-				 HCLGE_OPC_TM_INTERNAL_CNT);
+	cmd = HCLGE_OPC_TM_INTERNAL_CNT;
+	ret = hclge_dbg_cmd_send(hdev, desc, port_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
 
-	dev_info(dev, "SCH_NIC_NUM: 0x%x\n", desc[0].data[1]);
-	dev_info(dev, "SCH_ROCE_NUM: 0x%x\n", desc[0].data[2]);
+	dev_info(dev, "SCH_NIC_NUM: 0x%x\n", le32_to_cpu(desc[0].data[1]));
+	dev_info(dev, "SCH_ROCE_NUM: 0x%x\n", le32_to_cpu(desc[0].data[2]));
 
-	ret = hclge_dbg_cmd_send(hdev, desc, port_id, 1,
-				 HCLGE_OPC_TM_INTERNAL_STS_1);
+	cmd = HCLGE_OPC_TM_INTERNAL_STS_1;
+	ret = hclge_dbg_cmd_send(hdev, desc, port_id, 1, cmd);
 	if (ret)
-		return;
+		goto err_dcb_cmd_send;
+
+	dev_info(dev, "TC_MAP_SEL: 0x%x\n", le32_to_cpu(desc[0].data[1]));
+	dev_info(dev, "IGU_PFC_PRI_EN: 0x%x\n", le32_to_cpu(desc[0].data[2]));
+	dev_info(dev, "MAC_PFC_PRI_EN: 0x%x\n", le32_to_cpu(desc[0].data[3]));
+	dev_info(dev, "IGU_PRI_MAP_TC_CFG: 0x%x\n",
+		 le32_to_cpu(desc[0].data[4]));
+	dev_info(dev, "IGU_TX_PRI_MAP_TC_CFG: 0x%x\n",
+		 le32_to_cpu(desc[0].data[5]));
+	return;
 
-	dev_info(dev, "TC_MAP_SEL: 0x%x\n", desc[0].data[1]);
-	dev_info(dev, "IGU_PFC_PRI_EN: 0x%x\n", desc[0].data[2]);
-	dev_info(dev, "MAC_PFC_PRI_EN: 0x%x\n", desc[0].data[3]);
-	dev_info(dev, "IGU_PRI_MAP_TC_CFG: 0x%x\n", desc[0].data[4]);
-	dev_info(dev, "IGU_TX_PRI_MAP_TC_CFG: 0x%x\n", desc[0].data[5]);
+err_dcb_cmd_send:
+	dev_err(&hdev->pdev->dev,
+		"failed to dump dcb dfx, cmd = %#x, ret = %d\n",
+		cmd, ret);
 }
 
 static void hclge_dbg_dump_reg_cmd(struct hclge_dev *hdev, const char *cmd_buf)
@@ -308,8 +320,9 @@
 				  char *false_buf)
 {
 	if (flag)
-		dev_info(&hdev->pdev->dev, "%s(%d): %s\n", title_buf, index,
-			 true_buf);
+		dev_info(&hdev->pdev->dev, "%s(%d): %s weight: %u\n",
+			 title_buf, index, true_buf,
+			 hdev->tm_info.pg_info[0].tc_dwrr[index]);
 	else
 		dev_info(&hdev->pdev->dev, "%s(%d): %s\n", title_buf, index,
 			 false_buf);
@@ -337,7 +350,8 @@
 
 	ets_weight = (struct hclge_ets_tc_weight_cmd *)desc.data;
 
-	dev_info(&hdev->pdev->dev, "dump tc\n");
+	dev_info(&hdev->pdev->dev, "dump tc: %u tc enabled\n",
+		 hdev->tm_info.num_tc);
 	dev_info(&hdev->pdev->dev, "weight_offset: %u\n",
 		 ets_weight->weight_offset);
 
@@ -364,7 +378,7 @@
 	pg_shap_cfg_cmd = (struct hclge_pg_shapping_cmd *)desc.data;
 	dev_info(&hdev->pdev->dev, "PG_C pg_id: %u\n", pg_shap_cfg_cmd->pg_id);
 	dev_info(&hdev->pdev->dev, "PG_C pg_shapping: 0x%x\n",
-		 pg_shap_cfg_cmd->pg_shapping_para);
+		 le32_to_cpu(pg_shap_cfg_cmd->pg_shapping_para));
 
 	cmd = HCLGE_OPC_TM_PG_P_SHAPPING;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -375,7 +389,7 @@
 	pg_shap_cfg_cmd = (struct hclge_pg_shapping_cmd *)desc.data;
 	dev_info(&hdev->pdev->dev, "PG_P pg_id: %u\n", pg_shap_cfg_cmd->pg_id);
 	dev_info(&hdev->pdev->dev, "PG_P pg_shapping: 0x%x\n",
-		 pg_shap_cfg_cmd->pg_shapping_para);
+		 le32_to_cpu(pg_shap_cfg_cmd->pg_shapping_para));
 
 	cmd = HCLGE_OPC_TM_PORT_SHAPPING;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -385,7 +399,7 @@
 
 	port_shap_cfg_cmd = (struct hclge_port_shapping_cmd *)desc.data;
 	dev_info(&hdev->pdev->dev, "PORT port_shapping: 0x%x\n",
-		 port_shap_cfg_cmd->port_shapping_para);
+		 le32_to_cpu(port_shap_cfg_cmd->port_shapping_para));
 
 	cmd = HCLGE_OPC_TM_PG_SCH_MODE_CFG;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -393,7 +407,8 @@
 	if (ret)
 		goto err_tm_pg_cmd_send;
 
-	dev_info(&hdev->pdev->dev, "PG_SCH pg_id: %u\n", desc.data[0]);
+	dev_info(&hdev->pdev->dev, "PG_SCH pg_id: %u\n",
+		 le32_to_cpu(desc.data[0]));
 
 	cmd = HCLGE_OPC_TM_PRI_SCH_MODE_CFG;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -401,7 +416,8 @@
 	if (ret)
 		goto err_tm_pg_cmd_send;
 
-	dev_info(&hdev->pdev->dev, "PRI_SCH pri_id: %u\n", desc.data[0]);
+	dev_info(&hdev->pdev->dev, "PRI_SCH pri_id: %u\n",
+		 le32_to_cpu(desc.data[0]));
 
 	cmd = HCLGE_OPC_TM_QS_SCH_MODE_CFG;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -409,7 +425,8 @@
 	if (ret)
 		goto err_tm_pg_cmd_send;
 
-	dev_info(&hdev->pdev->dev, "QS_SCH qs_id: %u\n", desc.data[0]);
+	dev_info(&hdev->pdev->dev, "QS_SCH qs_id: %u\n",
+		 le32_to_cpu(desc.data[0]));
 
 	if (!hnae3_dev_dcb_supported(hdev)) {
 		dev_info(&hdev->pdev->dev,
@@ -429,7 +446,7 @@
 	dev_info(&hdev->pdev->dev, "BP_TO_QSET qs_group_id: 0x%x\n",
 		 bp_to_qs_map_cmd->qs_group_id);
 	dev_info(&hdev->pdev->dev, "BP_TO_QSET qs_bit_map: 0x%x\n",
-		 bp_to_qs_map_cmd->qs_bit_map);
+		 le32_to_cpu(bp_to_qs_map_cmd->qs_bit_map));
 	return;
 
 err_tm_pg_cmd_send:
@@ -471,7 +488,7 @@
 
 	qs_to_pri_map = (struct hclge_qs_to_pri_link_cmd *)desc.data;
 	dev_info(&hdev->pdev->dev, "QS_TO_PRI qs_id: %u\n",
-		 qs_to_pri_map->qs_id);
+		 le16_to_cpu(qs_to_pri_map->qs_id));
 	dev_info(&hdev->pdev->dev, "QS_TO_PRI priority: %u\n",
 		 qs_to_pri_map->priority);
 	dev_info(&hdev->pdev->dev, "QS_TO_PRI link_vld: %u\n",
@@ -484,9 +501,10 @@
 		goto err_tm_cmd_send;
 
 	nq_to_qs_map = (struct hclge_nq_to_qs_link_cmd *)desc.data;
-	dev_info(&hdev->pdev->dev, "NQ_TO_QS nq_id: %u\n", nq_to_qs_map->nq_id);
+	dev_info(&hdev->pdev->dev, "NQ_TO_QS nq_id: %u\n",
+		 le16_to_cpu(nq_to_qs_map->nq_id));
 	dev_info(&hdev->pdev->dev, "NQ_TO_QS qset_id: 0x%x\n",
-		 nq_to_qs_map->qset_id);
+		 le16_to_cpu(nq_to_qs_map->qset_id));
 
 	cmd = HCLGE_OPC_TM_PG_WEIGHT;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -505,7 +523,8 @@
 		goto err_tm_cmd_send;
 
 	qs_weight = (struct hclge_qs_weight_cmd *)desc.data;
-	dev_info(&hdev->pdev->dev, "QS qs_id: %u\n", qs_weight->qs_id);
+	dev_info(&hdev->pdev->dev, "QS qs_id: %u\n",
+		 le16_to_cpu(qs_weight->qs_id));
 	dev_info(&hdev->pdev->dev, "QS dwrr: %u\n", qs_weight->dwrr);
 
 	cmd = HCLGE_OPC_TM_PRI_WEIGHT;
@@ -527,7 +546,7 @@
 	shap_cfg_cmd = (struct hclge_pri_shapping_cmd *)desc.data;
 	dev_info(&hdev->pdev->dev, "PRI_C pri_id: %u\n", shap_cfg_cmd->pri_id);
 	dev_info(&hdev->pdev->dev, "PRI_C pri_shapping: 0x%x\n",
-		 shap_cfg_cmd->pri_shapping_para);
+		 le32_to_cpu(shap_cfg_cmd->pri_shapping_para));
 
 	cmd = HCLGE_OPC_TM_PRI_P_SHAPPING;
 	hclge_cmd_setup_basic_desc(&desc, cmd, true);
@@ -538,7 +557,7 @@
 	shap_cfg_cmd = (struct hclge_pri_shapping_cmd *)desc.data;
 	dev_info(&hdev->pdev->dev, "PRI_P pri_id: %u\n", shap_cfg_cmd->pri_id);
 	dev_info(&hdev->pdev->dev, "PRI_P pri_shapping: 0x%x\n",
-		 shap_cfg_cmd->pri_shapping_para);
+		 le32_to_cpu(shap_cfg_cmd->pri_shapping_para));
 
 	hclge_dbg_dump_tm_pg(hdev);
 
@@ -574,7 +593,7 @@
 	ret = hclge_cmd_send(&hdev->hw, &desc, 1);
 	if (ret)
 		goto err_tm_map_cmd_send;
-	qset_id = nq_to_qs_map->qset_id & 0x3FF;
+	qset_id = le16_to_cpu(nq_to_qs_map->qset_id) & 0x3FF;
 
 	cmd = HCLGE_OPC_TM_QS_TO_PRI_LINK;
 	map = (struct hclge_qs_to_pri_link_cmd *)desc.data;
@@ -614,7 +633,8 @@
 		if (ret)
 			goto err_tm_map_cmd_send;
 
-		qset_maping[group_id] = bp_to_qs_map_cmd->qs_bit_map;
+		qset_maping[group_id] =
+			le32_to_cpu(bp_to_qs_map_cmd->qs_bit_map);
 	}
 
 	dev_info(&hdev->pdev->dev, "index | tm bp qset maping:\n");
@@ -658,7 +678,7 @@
 	dev_info(&hdev->pdev->dev, "pause_trans_gap: 0x%x\n",
 		 pause_param->pause_trans_gap);
 	dev_info(&hdev->pdev->dev, "pause_trans_time: 0x%x\n",
-		 pause_param->pause_trans_time);
+		 le16_to_cpu(pause_param->pause_trans_time));
 }
 
 static void hclge_dbg_dump_qos_pri_map(struct hclge_dev *hdev)
@@ -712,7 +732,7 @@
 	tx_buf_cmd = (struct hclge_tx_buff_alloc_cmd *)desc[0].data;
 	for (i = 0; i < HCLGE_MAX_TC_NUM; i++)
 		dev_info(&hdev->pdev->dev, "tx_packet_buf_tc_%d: 0x%x\n", i,
-			 tx_buf_cmd->tx_pkt_buff[i]);
+			 le16_to_cpu(tx_buf_cmd->tx_pkt_buff[i]));
 
 	cmd = HCLGE_OPC_RX_PRIV_BUFF_ALLOC;
 	hclge_cmd_setup_basic_desc(desc, cmd, true);
@@ -724,10 +744,10 @@
 	rx_buf_cmd = (struct hclge_rx_priv_buff_cmd *)desc[0].data;
 	for (i = 0; i < HCLGE_MAX_TC_NUM; i++)
 		dev_info(&hdev->pdev->dev, "rx_packet_buf_tc_%d: 0x%x\n", i,
-			 rx_buf_cmd->buf_num[i]);
+			 le16_to_cpu(rx_buf_cmd->buf_num[i]));
 
 	dev_info(&hdev->pdev->dev, "rx_share_buf: 0x%x\n",
-		 rx_buf_cmd->shared_buf);
+		 le16_to_cpu(rx_buf_cmd->shared_buf));
 
 	cmd = HCLGE_OPC_RX_COM_WL_ALLOC;
 	hclge_cmd_setup_basic_desc(desc, cmd, true);
@@ -738,7 +758,8 @@
 	rx_com_wl = (struct hclge_rx_com_wl *)desc[0].data;
 	dev_info(&hdev->pdev->dev, "\n");
 	dev_info(&hdev->pdev->dev, "rx_com_wl: high: 0x%x, low: 0x%x\n",
-		 rx_com_wl->com_wl.high, rx_com_wl->com_wl.low);
+		 le16_to_cpu(rx_com_wl->com_wl.high),
+		 le16_to_cpu(rx_com_wl->com_wl.low));
 
 	cmd = HCLGE_OPC_RX_GBL_PKT_CNT;
 	hclge_cmd_setup_basic_desc(desc, cmd, true);
@@ -749,7 +770,8 @@
 	rx_packet_cnt = (struct hclge_rx_com_wl *)desc[0].data;
 	dev_info(&hdev->pdev->dev,
 		 "rx_global_packet_cnt: high: 0x%x, low: 0x%x\n",
-		 rx_packet_cnt->com_wl.high, rx_packet_cnt->com_wl.low);
+		 le16_to_cpu(rx_packet_cnt->com_wl.high),
+		 le16_to_cpu(rx_packet_cnt->com_wl.low));
 	dev_info(&hdev->pdev->dev, "\n");
 
 	if (!hnae3_dev_dcb_supported(hdev)) {
@@ -769,14 +791,16 @@
 	for (i = 0; i < HCLGE_TC_NUM_ONE_DESC; i++)
 		dev_info(&hdev->pdev->dev,
 			 "rx_priv_wl_tc_%d: high: 0x%x, low: 0x%x\n", i,
-			 rx_priv_wl->tc_wl[i].high, rx_priv_wl->tc_wl[i].low);
+			 le16_to_cpu(rx_priv_wl->tc_wl[i].high),
+			 le16_to_cpu(rx_priv_wl->tc_wl[i].low));
 
 	rx_priv_wl = (struct hclge_rx_priv_wl_buf *)desc[1].data;
 	for (i = 0; i < HCLGE_TC_NUM_ONE_DESC; i++)
 		dev_info(&hdev->pdev->dev,
 			 "rx_priv_wl_tc_%d: high: 0x%x, low: 0x%x\n",
 			 i + HCLGE_TC_NUM_ONE_DESC,
-			 rx_priv_wl->tc_wl[i].high, rx_priv_wl->tc_wl[i].low);
+			 le16_to_cpu(rx_priv_wl->tc_wl[i].high),
+			 le16_to_cpu(rx_priv_wl->tc_wl[i].low));
 
 	cmd = HCLGE_OPC_RX_COM_THRD_ALLOC;
 	hclge_cmd_setup_basic_desc(&desc[0], cmd, true);
@@ -791,16 +815,16 @@
 	for (i = 0; i < HCLGE_TC_NUM_ONE_DESC; i++)
 		dev_info(&hdev->pdev->dev,
 			 "rx_com_thrd_tc_%d: high: 0x%x, low: 0x%x\n", i,
-			 rx_com_thrd->com_thrd[i].high,
-			 rx_com_thrd->com_thrd[i].low);
+			 le16_to_cpu(rx_com_thrd->com_thrd[i].high),
+			 le16_to_cpu(rx_com_thrd->com_thrd[i].low));
 
 	rx_com_thrd = (struct hclge_rx_com_thrd *)desc[1].data;
 	for (i = 0; i < HCLGE_TC_NUM_ONE_DESC; i++)
 		dev_info(&hdev->pdev->dev,
 			 "rx_com_thrd_tc_%d: high: 0x%x, low: 0x%x\n",
 			 i + HCLGE_TC_NUM_ONE_DESC,
-			 rx_com_thrd->com_thrd[i].high,
-			 rx_com_thrd->com_thrd[i].low);
+			 le16_to_cpu(rx_com_thrd->com_thrd[i].high),
+			 le16_to_cpu(rx_com_thrd->com_thrd[i].low));
 	return;
 
 err_qos_cmd_send:
@@ -813,6 +837,7 @@
 	struct hclge_mac_ethertype_idx_rd_cmd *req0;
 	char printf_buf[HCLGE_DBG_BUF_LEN];
 	struct hclge_desc desc;
+	u32 msg_egress_port;
 	int ret, i;
 
 	dev_info(&hdev->pdev->dev, "mng tab:\n");
@@ -845,7 +870,8 @@
 		memset(printf_buf, 0, HCLGE_DBG_BUF_LEN);
 		snprintf(printf_buf, HCLGE_DBG_BUF_LEN,
 			 "%02u   |%02x:%02x:%02x:%02x:%02x:%02x|",
-			 req0->index, req0->mac_addr[0], req0->mac_addr[1],
+			 le16_to_cpu(req0->index),
+			 req0->mac_addr[0], req0->mac_addr[1],
 			 req0->mac_addr[2], req0->mac_addr[3],
 			 req0->mac_addr[4], req0->mac_addr[5]);
 
@@ -853,27 +879,28 @@
 			 HCLGE_DBG_BUF_LEN - strlen(printf_buf),
 			 "%x   |%04x |%x   |%04x|%x   |%02x   |%02x   |",
 			 !!(req0->flags & HCLGE_DBG_MNG_MAC_MASK_B),
-			 req0->ethter_type,
+			 le16_to_cpu(req0->ethter_type),
 			 !!(req0->flags & HCLGE_DBG_MNG_ETHER_MASK_B),
-			 req0->vlan_tag & HCLGE_DBG_MNG_VLAN_TAG,
+			 le16_to_cpu(req0->vlan_tag) & HCLGE_DBG_MNG_VLAN_TAG,
 			 !!(req0->flags & HCLGE_DBG_MNG_VLAN_MASK_B),
 			 req0->i_port_bitmap, req0->i_port_direction);
 
+		msg_egress_port = le16_to_cpu(req0->egress_port);
 		snprintf(printf_buf + strlen(printf_buf),
 			 HCLGE_DBG_BUF_LEN - strlen(printf_buf),
-			 "%d     |%d    |%02d   |%04d|%x\n",
-			 !!(req0->egress_port & HCLGE_DBG_MNG_E_TYPE_B),
-			 req0->egress_port & HCLGE_DBG_MNG_PF_ID,
-			 (req0->egress_port >> 3) & HCLGE_DBG_MNG_VF_ID,
-			 req0->egress_queue,
-			 !!(req0->egress_port & HCLGE_DBG_MNG_DROP_B));
+			 "%x     |%x    |%02x   |%04x|%x\n",
+			 !!(msg_egress_port & HCLGE_DBG_MNG_E_TYPE_B),
+			 msg_egress_port & HCLGE_DBG_MNG_PF_ID,
+			 (msg_egress_port >> 3) & HCLGE_DBG_MNG_VF_ID,
+			 le16_to_cpu(req0->egress_queue),
+			 !!(msg_egress_port & HCLGE_DBG_MNG_DROP_B));
 
 		dev_info(&hdev->pdev->dev, "%s", printf_buf);
 	}
 }
 
-static void hclge_dbg_fd_tcam_read(struct hclge_dev *hdev, u8 stage,
-				   bool sel_x, u32 loc)
+static int hclge_dbg_fd_tcam_read(struct hclge_dev *hdev, u8 stage,
+				  bool sel_x, u32 loc)
 {
 	struct hclge_fd_tcam_config_1_cmd *req1;
 	struct hclge_fd_tcam_config_2_cmd *req2;
@@ -898,7 +925,7 @@
 
 	ret = hclge_cmd_send(&hdev->hw, desc, 3);
 	if (ret)
-		return;
+		return ret;
 
 	dev_info(&hdev->pdev->dev, " read result tcam key %s(%u):\n",
 		 sel_x ? "x" : "y", loc);
@@ -917,19 +944,79 @@
 	req = (u32 *)req3->tcam_data;
 	for (i = 0; i < 5; i++)
 		dev_info(&hdev->pdev->dev, "%08x\n", *req++);
+
+	return ret;
+}
+
+static int hclge_dbg_get_rules_location(struct hclge_dev *hdev, u16 *rule_locs)
+{
+	struct hclge_fd_rule *rule;
+	struct hlist_node *node;
+	int cnt = 0;
+
+	spin_lock_bh(&hdev->fd_rule_lock);
+	hlist_for_each_entry_safe(rule, node, &hdev->fd_rule_list, rule_node) {
+		rule_locs[cnt] = rule->location;
+		cnt++;
+	}
+	spin_unlock_bh(&hdev->fd_rule_lock);
+
+	if (cnt != hdev->hclge_fd_rule_num)
+		return -EINVAL;
+
+	return cnt;
 }
 
 static void hclge_dbg_fd_tcam(struct hclge_dev *hdev)
 {
-	u32 i;
+	int i, ret, rule_cnt;
+	u16 *rule_locs;
+
+	if (!hnae3_dev_fd_supported(hdev)) {
+		dev_err(&hdev->pdev->dev,
+			"Only FD-supported dev supports dump fd tcam\n");
+		return;
+	}
+
+	if (!hdev->hclge_fd_rule_num ||
+	    !hdev->fd_cfg.rule_num[HCLGE_FD_STAGE_1])
+		return;
+
+	rule_locs = kcalloc(hdev->fd_cfg.rule_num[HCLGE_FD_STAGE_1],
+			    sizeof(u16), GFP_KERNEL);
+	if (!rule_locs)
+		return;
+
+	rule_cnt = hclge_dbg_get_rules_location(hdev, rule_locs);
+	if (rule_cnt <= 0) {
+		dev_err(&hdev->pdev->dev,
+			"failed to get rule number, ret = %d\n", rule_cnt);
+		kfree(rule_locs);
+		return;
+	}
+
+	for (i = 0; i < rule_cnt; i++) {
+		ret = hclge_dbg_fd_tcam_read(hdev, 0, true, rule_locs[i]);
+		if (ret) {
+			dev_err(&hdev->pdev->dev,
+				"failed to get fd tcam key x, ret = %d\n", ret);
+			kfree(rule_locs);
+			return;
+		}
 
-	for (i = 0; i < hdev->fd_cfg.rule_num[0]; i++) {
-		hclge_dbg_fd_tcam_read(hdev, 0, true, i);
-		hclge_dbg_fd_tcam_read(hdev, 0, false, i);
+		ret = hclge_dbg_fd_tcam_read(hdev, 0, false, rule_locs[i]);
+		if (ret) {
+			dev_err(&hdev->pdev->dev,
+				"failed to get fd tcam key y, ret = %d\n", ret);
+			kfree(rule_locs);
+			return;
+		}
 	}
+
+	kfree(rule_locs);
 }
 
-static void hclge_dbg_dump_rst_info(struct hclge_dev *hdev)
+void hclge_dbg_dump_rst_info(struct hclge_dev *hdev)
 {
 	dev_info(&hdev->pdev->dev, "PF reset count: %u\n",
 		 hdev->rst_stats.pf_rst_cnt);
@@ -945,8 +1032,6 @@
 		 hdev->rst_stats.hw_reset_done_cnt);
 	dev_info(&hdev->pdev->dev, "reset count: %u\n",
 		 hdev->rst_stats.reset_cnt);
-	dev_info(&hdev->pdev->dev, "reset count: %u\n",
-		 hdev->rst_stats.reset_cnt);
 	dev_info(&hdev->pdev->dev, "reset fail count: %u\n",
 		 hdev->rst_stats.reset_fail_cnt);
 	dev_info(&hdev->pdev->dev, "vector0 interrupt enable status: 0x%x\n",
@@ -961,6 +1046,15 @@
 		 hclge_read_dev(&hdev->hw, HCLGE_NIC_CSQ_DEPTH_REG));
 	dev_info(&hdev->pdev->dev, "function reset status: 0x%x\n",
 		 hclge_read_dev(&hdev->hw, HCLGE_FUN_RST_ING));
+	dev_info(&hdev->pdev->dev, "hdev state: 0x%lx\n", hdev->state);
+}
+
+static void hclge_dbg_dump_serv_info(struct hclge_dev *hdev)
+{
+	dev_info(&hdev->pdev->dev, "last_serv_processed: %lu\n",
+		 hdev->last_serv_processed);
+	dev_info(&hdev->pdev->dev, "last_serv_cnt: %lu\n",
+		 hdev->serv_processed_cnt);
 }
 
 static void hclge_dbg_get_m7_stats_info(struct hclge_dev *hdev)
@@ -986,11 +1080,8 @@
 
 	buf_len	 = sizeof(struct hclge_desc) * bd_num;
 	desc_src = kzalloc(buf_len, GFP_KERNEL);
-	if (!desc_src) {
-		dev_err(&hdev->pdev->dev,
-			"allocate desc for get_m7_stats failed\n");
+	if (!desc_src)
 		return;
-	}
 
 	desc_tmp = desc_src;
 	ret  = hclge_dbg_cmd_send(hdev, desc_tmp, 0, bd_num,
@@ -1053,7 +1144,7 @@
 				      const char *cmd_buf)
 {
 #define HCLGE_MAX_NCL_CONFIG_OFFSET	4096
-#define HCLGE_MAX_NCL_CONFIG_LENGTH	(20 + 24 * 4)
+#define HCLGE_NCL_CONFIG_LENGTH_IN_EACH_CMD	(20 + 24 * 4)
 
 	struct hclge_desc desc[HCLGE_CMD_NCL_CONFIG_BD_NUM];
 	int bd_num = HCLGE_CMD_NCL_CONFIG_BD_NUM;
@@ -1077,8 +1168,8 @@
 
 	while (length > 0) {
 		data0 = offset;
-		if (length >= HCLGE_MAX_NCL_CONFIG_LENGTH)
-			data0 |= HCLGE_MAX_NCL_CONFIG_LENGTH << 16;
+		if (length >= HCLGE_NCL_CONFIG_LENGTH_IN_EACH_CMD)
+			data0 |= HCLGE_NCL_CONFIG_LENGTH_IN_EACH_CMD << 16;
 		else
 			data0 |= length << 16;
 		ret = hclge_dbg_cmd_send(hdev, desc, data0, bd_num,
@@ -1090,6 +1181,57 @@
 	}
 }
 
+static void hclge_dbg_dump_loopback(struct hclge_dev *hdev,
+				    const char *cmd_buf)
+{
+	struct phy_device *phydev = hdev->hw.mac.phydev;
+	struct hclge_config_mac_mode_cmd *req_app;
+	struct hclge_serdes_lb_cmd *req_serdes;
+	struct hclge_desc desc;
+	u8 loopback_en;
+	int ret;
+
+	req_app = (struct hclge_config_mac_mode_cmd *)desc.data;
+	req_serdes = (struct hclge_serdes_lb_cmd *)desc.data;
+
+	dev_info(&hdev->pdev->dev, "mac id: %u\n", hdev->hw.mac.mac_id);
+
+	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_CONFIG_MAC_MODE, true);
+	ret = hclge_cmd_send(&hdev->hw, &desc, 1);
+	if (ret) {
+		dev_err(&hdev->pdev->dev,
+			"failed to dump app loopback status, ret = %d\n", ret);
+		return;
+	}
+
+	loopback_en = hnae3_get_bit(le32_to_cpu(req_app->txrx_pad_fcs_loop_en),
+				    HCLGE_MAC_APP_LP_B);
+	dev_info(&hdev->pdev->dev, "app loopback: %s\n",
+		 loopback_en ? "on" : "off");
+
+	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_SERDES_LOOPBACK, true);
+	ret = hclge_cmd_send(&hdev->hw, &desc, 1);
+	if (ret) {
+		dev_err(&hdev->pdev->dev,
+			"failed to dump serdes loopback status, ret = %d\n",
+			ret);
+		return;
+	}
+
+	loopback_en = req_serdes->enable & HCLGE_CMD_SERDES_SERIAL_INNER_LOOP_B;
+	dev_info(&hdev->pdev->dev, "serdes serial loopback: %s\n",
+		 loopback_en ? "on" : "off");
+
+	loopback_en = req_serdes->enable &
+			HCLGE_CMD_SERDES_PARALLEL_INNER_LOOP_B;
+	dev_info(&hdev->pdev->dev, "serdes parallel loopback: %s\n",
+		 loopback_en ? "on" : "off");
+
+	if (phydev)
+		dev_info(&hdev->pdev->dev, "phy loopback: %s\n",
+			 phydev->loopback_enabled ? "on" : "off");
+}
+
 /* hclge_dbg_dump_mac_tnl_status: print message about mac tnl interrupt
  * @hdev: pointer to struct hclge_dev
  */
@@ -1110,10 +1252,87 @@
 	}
 }
 
+static void hclge_dbg_dump_qs_shaper_single(struct hclge_dev *hdev, u16 qsid)
+{
+	struct hclge_qs_shapping_cmd *shap_cfg_cmd;
+	u8 ir_u, ir_b, ir_s, bs_b, bs_s;
+	struct hclge_desc desc;
+	u32 shapping_para;
+	int ret;
+
+	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_QCN_SHAPPING_CFG, true);
+
+	shap_cfg_cmd = (struct hclge_qs_shapping_cmd *)desc.data;
+	shap_cfg_cmd->qs_id = cpu_to_le16(qsid);
+
+	ret = hclge_cmd_send(&hdev->hw, &desc, 1);
+	if (ret) {
+		dev_err(&hdev->pdev->dev,
+			"qs%u failed to get tx_rate, ret=%d\n",
+			qsid, ret);
+		return;
+	}
+
+	shapping_para = le32_to_cpu(shap_cfg_cmd->qs_shapping_para);
+	ir_b = hclge_tm_get_field(shapping_para, IR_B);
+	ir_u = hclge_tm_get_field(shapping_para, IR_U);
+	ir_s = hclge_tm_get_field(shapping_para, IR_S);
+	bs_b = hclge_tm_get_field(shapping_para, BS_B);
+	bs_s = hclge_tm_get_field(shapping_para, BS_S);
+
+	dev_info(&hdev->pdev->dev,
+		 "qs%u ir_b:%u, ir_u:%u, ir_s:%u, bs_b:%u, bs_s:%u\n",
+		 qsid, ir_b, ir_u, ir_s, bs_b, bs_s);
+}
+
+static void hclge_dbg_dump_qs_shaper_all(struct hclge_dev *hdev)
+{
+	struct hnae3_knic_private_info *kinfo;
+	struct hclge_vport *vport;
+	int vport_id, i;
+
+	for (vport_id = 0; vport_id <= pci_num_vf(hdev->pdev); vport_id++) {
+		vport = &hdev->vport[vport_id];
+		kinfo = &vport->nic.kinfo;
+
+		dev_info(&hdev->pdev->dev, "qs cfg of vport%d:\n", vport_id);
+
+		for (i = 0; i < kinfo->num_tc; i++) {
+			u16 qsid = vport->qs_offset + i;
+
+			hclge_dbg_dump_qs_shaper_single(hdev, qsid);
+		}
+	}
+}
+
+static void hclge_dbg_dump_qs_shaper(struct hclge_dev *hdev,
+				     const char *cmd_buf)
+{
+#define HCLGE_MAX_QSET_NUM 1024
+
+	u16 qsid;
+	int ret;
+
+	ret = kstrtou16(cmd_buf, 0, &qsid);
+	if (ret) {
+		hclge_dbg_dump_qs_shaper_all(hdev);
+		return;
+	}
+
+	if (qsid >= HCLGE_MAX_QSET_NUM) {
+		dev_err(&hdev->pdev->dev, "qsid(%u) out of range[0-1023]\n",
+			qsid);
+		return;
+	}
+
+	hclge_dbg_dump_qs_shaper_single(hdev, qsid);
+}
+
 int hclge_dbg_run_cmd(struct hnae3_handle *handle, const char *cmd_buf)
 {
 #define DUMP_REG	"dump reg"
 #define DUMP_TM_MAP	"dump tm map"
+#define DUMP_LOOPBACK	"dump loopback"
 
 	struct hclge_vport *vport = hclge_get_vport(handle);
 	struct hclge_dev *hdev = vport->back;
@@ -1138,6 +1357,8 @@
 		hclge_dbg_dump_reg_cmd(hdev, &cmd_buf[sizeof(DUMP_REG)]);
 	} else if (strncmp(cmd_buf, "dump reset info", 15) == 0) {
 		hclge_dbg_dump_rst_info(hdev);
+	} else if (strncmp(cmd_buf, "dump serv info", 14) == 0) {
+		hclge_dbg_dump_serv_info(hdev);
 	} else if (strncmp(cmd_buf, "dump m7 info", 12) == 0) {
 		hclge_dbg_get_m7_stats_info(hdev);
 	} else if (strncmp(cmd_buf, "dump ncl_config", 15) == 0) {
@@ -1145,6 +1366,12 @@
 					  &cmd_buf[sizeof("dump ncl_config")]);
 	} else if (strncmp(cmd_buf, "dump mac tnl status", 19) == 0) {
 		hclge_dbg_dump_mac_tnl_status(hdev);
+	} else if (strncmp(cmd_buf, DUMP_LOOPBACK,
+		   strlen(DUMP_LOOPBACK)) == 0) {
+		hclge_dbg_dump_loopback(hdev, &cmd_buf[sizeof(DUMP_LOOPBACK)]);
+	} else if (strncmp(cmd_buf, "dump qs shaper", 14) == 0) {
+		hclge_dbg_dump_qs_shaper(hdev,
+					 &cmd_buf[sizeof("dump qs shaper")]);
 	} else {
 		dev_info(&hdev->pdev->dev, "unknown command\n");
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.h
@@ -35,8 +35,6 @@
 
 #define HCLGE_DBG_DFX_SSU_2_OFFSET 12
 
-#pragma pack(1)
-
 struct hclge_qos_pri_map_cmd {
 	u8 pri0_tc  : 4,
 	   pri1_tc  : 4;
@@ -85,8 +83,6 @@
 	struct hclge_dbg_reg_common_msg reg_msg;
 };
 
-#pragma pack()
-
 static struct hclge_dbg_dfx_message hclge_dbg_bios_common_reg[] = {
 	{false, "Reserved"},
 	{true,	"BP_CPU_STATE"},
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c
@@ -505,7 +505,7 @@
 
 static const struct hclge_hw_error hclge_ssu_port_based_err_int[] = {
 	{ .int_msk = BIT(0), .msg = "roc_pkt_without_key_port",
-	  .reset_level = HNAE3_GLOBAL_RESET },
+	  .reset_level = HNAE3_FUNC_RESET },
 	{ .int_msk = BIT(1), .msg = "tpu_pkt_without_key_port",
 	  .reset_level = HNAE3_GLOBAL_RESET },
 	{ .int_msk = BIT(2), .msg = "igu_pkt_without_key_port",
@@ -599,7 +599,7 @@
 
 static const struct hclge_hw_error hclge_ssu_port_based_pf_int[] = {
 	{ .int_msk = BIT(0), .msg = "roc_pkt_without_key_port",
-	  .reset_level = HNAE3_GLOBAL_RESET },
+	  .reset_level = HNAE3_FUNC_RESET },
 	{ .int_msk = BIT(9), .msg = "low_water_line_err_port",
 	  .reset_level = HNAE3_NONE_RESET },
 	{ .int_msk = BIT(10), .msg = "hi_water_line_err_port",
@@ -1667,9 +1667,6 @@
 		hclge_handle_rocee_ras_error(ae_dev);
 	}
 
-	if (test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state))
-		goto out;
-
 	if (ae_dev->hw_err_reset_req)
 		return PCI_ERS_RESULT_NEED_RESET;
 
@@ -1747,7 +1744,7 @@
 
 	if (vf_id) {
 		if (vf_id >= hdev->num_alloc_vport) {
-			dev_err(dev, "invalid vf id(%d)\n", vf_id);
+			dev_err(dev, "invalid vf id(%u)\n", vf_id);
 			return;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -55,6 +55,8 @@
 
 #define HCLGE_LINK_STATUS_MS	10
 
+#define HCLGE_VF_VPORT_START_NUM	1
+
 static int hclge_set_mac_mtu(struct hclge_dev *hdev, int new_mps);
 static int hclge_init_vlan_config(struct hclge_dev *hdev);
 static void hclge_sync_vlan_filter(struct hclge_dev *hdev);
@@ -70,6 +72,8 @@
 
 static struct hnae3_ae_algo ae_algo;
 
+static struct workqueue_struct *hclge_wq;
+
 static const struct pci_device_id ae_algo_pci_tbl[] = {
 	{PCI_VDEVICE(HUAWEI, HNAE3_DEV_ID_GE), 0},
 	{PCI_VDEVICE(HUAWEI, HNAE3_DEV_ID_25GE), 0},
@@ -323,8 +327,7 @@
 	{
 		.flags = HCLGE_MAC_MGR_MASK_VLAN_B,
 		.ethter_type = cpu_to_le16(ETH_P_LLDP),
-		.mac_addr_hi32 = cpu_to_le32(htonl(0x0180C200)),
-		.mac_addr_lo16 = cpu_to_le16(htons(0x000E)),
+		.mac_addr = {0x01, 0x80, 0xc2, 0x00, 0x00, 0x0e},
 		.i_port_bitmap = 0x1,
 	},
 };
@@ -415,7 +418,7 @@
 {
 #define HCLGE_MAC_CMD_NUM 21
 
-	u64 *data = (u64 *)(&hdev->hw_stats.mac_stats);
+	u64 *data = (u64 *)(&hdev->mac_stats);
 	struct hclge_desc desc[HCLGE_MAC_CMD_NUM];
 	__le64 *desc_data;
 	int i, k, n;
@@ -452,7 +455,7 @@
 
 static int hclge_mac_update_stats_complete(struct hclge_dev *hdev, u32 desc_num)
 {
-	u64 *data = (u64 *)(&hdev->hw_stats.mac_stats);
+	u64 *data = (u64 *)(&hdev->mac_stats);
 	struct hclge_desc *desc;
 	__le64 *desc_data;
 	u16 i, k, n;
@@ -746,7 +749,8 @@
 		handle->flags |= HNAE3_SUPPORT_SERDES_SERIAL_LOOPBACK;
 		handle->flags |= HNAE3_SUPPORT_SERDES_PARALLEL_LOOPBACK;
 
-		if (hdev->hw.mac.phydev) {
+		if (hdev->hw.mac.phydev && hdev->hw.mac.phydev->drv &&
+		    hdev->hw.mac.phydev->drv->set_loopback) {
 			count += 1;
 			handle->flags |= HNAE3_SUPPORT_PHY_LOOPBACK;
 		}
@@ -801,7 +805,7 @@
 	struct hclge_dev *hdev = vport->back;
 	u64 *p;
 
-	p = hclge_comm_get_stats(&hdev->hw_stats.mac_stats, g_mac_stats_string,
+	p = hclge_comm_get_stats(&hdev->mac_stats, g_mac_stats_string,
 				 ARRAY_SIZE(g_mac_stats_string), data);
 	p = hclge_tqps_get_stats(handle, p);
 }
@@ -814,13 +818,15 @@
 
 	hclge_update_stats(handle, NULL);
 
-	mac_stats->tx_pause_cnt = hdev->hw_stats.mac_stats.mac_tx_mac_pause_num;
-	mac_stats->rx_pause_cnt = hdev->hw_stats.mac_stats.mac_rx_mac_pause_num;
+	mac_stats->tx_pause_cnt = hdev->mac_stats.mac_tx_mac_pause_num;
+	mac_stats->rx_pause_cnt = hdev->mac_stats.mac_rx_mac_pause_num;
 }
 
 static int hclge_parse_func_status(struct hclge_dev *hdev,
 				   struct hclge_func_status_cmd *status)
 {
+#define HCLGE_MAC_ID_MASK	0xF
+
 	if (!(status->pf_state & HCLGE_PF_STATE_DONE))
 		return -EINVAL;
 
@@ -830,6 +836,7 @@
 	else
 		hdev->flag &= ~HCLGE_FLAG_MAIN;
 
+	hdev->hw.mac.mac_id = status->mac_id & HCLGE_MAC_ID_MASK;
 	return 0;
 }
 
@@ -1194,6 +1201,35 @@
 		hclge_parse_backplane_link_mode(hdev, speed_ability);
 }
 
+static u32 hclge_get_max_speed(u8 speed_ability)
+{
+	if (speed_ability & HCLGE_SUPPORT_100G_BIT)
+		return HCLGE_MAC_SPEED_100G;
+
+	if (speed_ability & HCLGE_SUPPORT_50G_BIT)
+		return HCLGE_MAC_SPEED_50G;
+
+	if (speed_ability & HCLGE_SUPPORT_40G_BIT)
+		return HCLGE_MAC_SPEED_40G;
+
+	if (speed_ability & HCLGE_SUPPORT_25G_BIT)
+		return HCLGE_MAC_SPEED_25G;
+
+	if (speed_ability & HCLGE_SUPPORT_10G_BIT)
+		return HCLGE_MAC_SPEED_10G;
+
+	if (speed_ability & HCLGE_SUPPORT_1G_BIT)
+		return HCLGE_MAC_SPEED_1G;
+
+	if (speed_ability & HCLGE_SUPPORT_100M_BIT)
+		return HCLGE_MAC_SPEED_100M;
+
+	if (speed_ability & HCLGE_SUPPORT_10M_BIT)
+		return HCLGE_MAC_SPEED_10M;
+
+	return HCLGE_MAC_SPEED_1G;
+}
+
 static void hclge_parse_cfg(struct hclge_cfg *cfg, struct hclge_desc *desc)
 {
 	struct hclge_cfg_param_cmd *req;
@@ -1364,9 +1400,11 @@
 
 	hclge_parse_link_mode(hdev, cfg.speed_ability);
 
+	hdev->hw.mac.max_speed = hclge_get_max_speed(cfg.speed_ability);
+
 	if ((hdev->tc_max > HNAE3_MAX_TC) ||
 	    (hdev->tc_max < 1)) {
-		dev_warn(&hdev->pdev->dev, "TC num = %d.\n",
+		dev_warn(&hdev->pdev->dev, "TC num = %u.\n",
 			 hdev->tc_max);
 		hdev->tc_max = 1;
 	}
@@ -1626,7 +1664,7 @@
 	num_vport = hdev->num_vmdq_vport + hdev->num_req_vfs + 1;
 
 	if (hdev->num_tqps < num_vport) {
-		dev_err(&hdev->pdev->dev, "tqps(%d) is less than vports(%d)",
+		dev_err(&hdev->pdev->dev, "tqps(%u) is less than vports(%d)",
 			hdev->num_tqps, num_vport);
 		return -EINVAL;
 	}
@@ -1649,6 +1687,7 @@
 	for (i = 0; i < num_vport; i++) {
 		vport->back = hdev;
 		vport->vport_id = i;
+		vport->vf_info.link_state = IFLA_VF_LINK_STATE_AUTO;
 		vport->mps = HCLGE_MAC_DEFAULT_FRAME;
 		vport->port_base_vlan_cfg.state = HNAE3_PORT_BASE_VLAN_DISABLE;
 		vport->rxvlan_cfg.rx_vlan_offload_en = true;
@@ -2312,7 +2351,7 @@
 	}
 	if (vectors < hdev->num_msi)
 		dev_warn(&hdev->pdev->dev,
-			 "requested %d MSI/MSI-X, but allocated %d MSI/MSI-X\n",
+			 "requested %u MSI/MSI-X, but allocated %d MSI/MSI-X\n",
 			 hdev->num_msi, vectors);
 
 	hdev->num_msi = vectors;
@@ -2417,10 +2456,12 @@
 
 int hclge_cfg_mac_speed_dup(struct hclge_dev *hdev, int speed, u8 duplex)
 {
+	struct hclge_mac *mac = &hdev->hw.mac;
 	int ret;
 
 	duplex = hclge_check_speed_dup(duplex, speed);
-	if (hdev->hw.mac.speed == speed && hdev->hw.mac.duplex == duplex)
+	if (!mac->support_autoneg && mac->speed == speed &&
+	    mac->duplex == duplex)
 		return 0;
 
 	ret = hclge_cfg_mac_speed_dup_hw(hdev, speed, duplex);
@@ -2632,31 +2673,27 @@
 
 static void hclge_mbx_task_schedule(struct hclge_dev *hdev)
 {
-	if (!test_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state) &&
+	if (!test_bit(HCLGE_STATE_REMOVING, &hdev->state) &&
 	    !test_and_set_bit(HCLGE_STATE_MBX_SERVICE_SCHED, &hdev->state))
-		queue_work_on(cpumask_first(&hdev->affinity_mask), system_wq,
-			      &hdev->mbx_service_task);
+		mod_delayed_work_on(cpumask_first(&hdev->affinity_mask),
+				    hclge_wq, &hdev->service_task, 0);
 }
 
 static void hclge_reset_task_schedule(struct hclge_dev *hdev)
 {
 	if (!test_bit(HCLGE_STATE_REMOVING, &hdev->state) &&
 	    !test_and_set_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state))
-		queue_work_on(cpumask_first(&hdev->affinity_mask), system_wq,
-			      &hdev->rst_service_task);
+		mod_delayed_work_on(cpumask_first(&hdev->affinity_mask),
+				    hclge_wq, &hdev->service_task, 0);
 }
 
 void hclge_task_schedule(struct hclge_dev *hdev, unsigned long delay_time)
 {
-	if (!test_bit(HCLGE_STATE_DOWN, &hdev->state) &&
-	    !test_bit(HCLGE_STATE_REMOVING, &hdev->state) &&
-	    !test_and_set_bit(HCLGE_STATE_SERVICE_SCHED, &hdev->state)) {
-		hdev->hw_stats.stats_timer++;
-		hdev->fd_arfs_expire_timer++;
+	if (!test_bit(HCLGE_STATE_REMOVING, &hdev->state) &&
+	    !test_bit(HCLGE_STATE_RST_FAIL, &hdev->state))
 		mod_delayed_work_on(cpumask_first(&hdev->affinity_mask),
-				    system_wq, &hdev->service_task,
+				    hclge_wq, &hdev->service_task,
 				    delay_time);
-	}
 }
 
 static int hclge_get_mac_link_status(struct hclge_dev *hdev)
@@ -2715,6 +2752,10 @@
 
 	if (!client)
 		return;
+
+	if (test_and_set_bit(HCLGE_STATE_LINK_UPDATING, &hdev->state))
+		return;
+
 	state = hclge_get_mac_phy_link(hdev);
 	if (state != hdev->hw.mac.link) {
 		for (i = 0; i < hdev->num_vmdq_vport + 1; i++) {
@@ -2728,6 +2769,8 @@
 		}
 		hdev->hw.mac.link = state;
 	}
+
+	clear_bit(HCLGE_STATE_LINK_UPDATING, &hdev->state);
 }
 
 static void hclge_update_port_capability(struct hclge_mac *mac)
@@ -2744,7 +2787,7 @@
 	else if (mac->media_type == HNAE3_MEDIA_TYPE_COPPER)
 		mac->module_type = HNAE3_MODULE_TYPE_TP;
 
-	if (mac->support_autoneg == true) {
+	if (mac->support_autoneg) {
 		linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, mac->supported);
 		linkmode_copy(mac->advertising, mac->supported);
 	} else {
@@ -2798,6 +2841,12 @@
 		return ret;
 	}
 
+	/* In some case, mac speed get from IMP may be 0, it shouldn't be
+	 * set to mac->speed.
+	 */
+	if (!le32_to_cpu(resp->speed))
+		return 0;
+
 	mac->speed = le32_to_cpu(resp->speed);
 	/* if resp->speed_ability is 0, it means it's an old version
 	 * firmware, do not update these params
@@ -2871,6 +2920,65 @@
 	return hdev->hw.mac.link;
 }
 
+static struct hclge_vport *hclge_get_vf_vport(struct hclge_dev *hdev, int vf)
+{
+	if (pci_num_vf(hdev->pdev) == 0) {
+		dev_err(&hdev->pdev->dev,
+			"SRIOV is disabled, can not get vport(%d) info.\n", vf);
+		return NULL;
+	}
+
+	if (vf < 0 || vf >= pci_num_vf(hdev->pdev)) {
+		dev_err(&hdev->pdev->dev,
+			"vf id(%d) is out of range(0 <= vfid < %d)\n",
+			vf, pci_num_vf(hdev->pdev));
+		return NULL;
+	}
+
+	/* VF start from 1 in vport */
+	vf += HCLGE_VF_VPORT_START_NUM;
+	return &hdev->vport[vf];
+}
+
+static int hclge_get_vf_config(struct hnae3_handle *handle, int vf,
+			       struct ifla_vf_info *ivf)
+{
+	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_dev *hdev = vport->back;
+
+	vport = hclge_get_vf_vport(hdev, vf);
+	if (!vport)
+		return -EINVAL;
+
+	ivf->vf = vf;
+	ivf->linkstate = vport->vf_info.link_state;
+	ivf->spoofchk = vport->vf_info.spoofchk;
+	ivf->trusted = vport->vf_info.trusted;
+	ivf->min_tx_rate = 0;
+	ivf->max_tx_rate = vport->vf_info.max_tx_rate;
+	ivf->vlan = vport->port_base_vlan_cfg.vlan_info.vlan_tag;
+	ivf->vlan_proto = htons(vport->port_base_vlan_cfg.vlan_info.vlan_proto);
+	ivf->qos = vport->port_base_vlan_cfg.vlan_info.qos;
+	ether_addr_copy(ivf->mac, vport->vf_info.mac);
+
+	return 0;
+}
+
+static int hclge_set_vf_link_state(struct hnae3_handle *handle, int vf,
+				   int link_state)
+{
+	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_dev *hdev = vport->back;
+
+	vport = hclge_get_vf_vport(hdev, vf);
+	if (!vport)
+		return -EINVAL;
+
+	vport->vf_info.link_state = link_state;
+
+	return 0;
+}
+
 static u32 hclge_check_event_cause(struct hclge_dev *hdev, u32 *clearval)
 {
 	u32 rst_src_reg, cmdq_src_reg, msix_src_reg;
@@ -2909,8 +3017,6 @@
 
 	/* check for vector0 msix event source */
 	if (msix_src_reg & HCLGE_VECTOR0_REG_MSIX_MASK) {
-		dev_info(&hdev->pdev->dev, "received event 0x%x\n",
-			 msix_src_reg);
 		*clearval = msix_src_reg;
 		return HCLGE_VECTOR0_EVENT_ERR;
 	}
@@ -3083,8 +3189,10 @@
 	hclge_get_misc_vector(hdev);
 
 	/* this would be explicitly freed in the end */
+	snprintf(hdev->misc_vector.name, HNAE3_INT_NAME_LEN, "%s-misc-%s",
+		 HCLGE_NAME, pci_name(hdev->pdev));
 	ret = request_irq(hdev->misc_vector.vector_irq, hclge_misc_irq_handle,
-			  0, "hclge_misc", hdev);
+			  0, hdev->misc_vector.name, hdev);
 	if (ret) {
 		hclge_free_vector(hdev, 0);
 		dev_err(&hdev->pdev->dev, "request misc irq(%d) fail\n",
@@ -3158,7 +3266,8 @@
 static int hclge_reset_wait(struct hclge_dev *hdev)
 {
 #define HCLGE_RESET_WATI_MS	100
-#define HCLGE_RESET_WAIT_CNT	200
+#define HCLGE_RESET_WAIT_CNT	350
+
 	u32 val, reg, reg_bit;
 	u32 cnt = 0;
 
@@ -3175,8 +3284,6 @@
 		reg = HCLGE_FUN_RST_ING;
 		reg_bit = HCLGE_FUN_RST_ING_B;
 		break;
-	case HNAE3_FLR_RESET:
-		break;
 	default:
 		dev_err(&hdev->pdev->dev,
 			"Wait for unsupported reset type: %d\n",
@@ -3184,20 +3291,6 @@
 		return -EINVAL;
 	}
 
-	if (hdev->reset_type == HNAE3_FLR_RESET) {
-		while (!test_bit(HNAE3_FLR_DONE, &hdev->flr_state) &&
-		       cnt++ < HCLGE_RESET_WAIT_CNT)
-			msleep(HCLGE_RESET_WATI_MS);
-
-		if (!test_bit(HNAE3_FLR_DONE, &hdev->flr_state)) {
-			dev_err(&hdev->pdev->dev,
-				"flr wait timeout: %d\n", cnt);
-			return -EBUSY;
-		}
-
-		return 0;
-	}
-
 	val = hclge_read_dev(&hdev->hw, reg);
 	while (hnae3_get_bit(val, reg_bit) && cnt < HCLGE_RESET_WAIT_CNT) {
 		msleep(HCLGE_RESET_WATI_MS);
@@ -3241,7 +3334,7 @@
 		ret = hclge_set_vf_rst(hdev, vport->vport_id, reset);
 		if (ret) {
 			dev_err(&hdev->pdev->dev,
-				"set vf(%d) rst failed %d!\n",
+				"set vf(%u) rst failed %d!\n",
 				vport->vport_id, ret);
 			return ret;
 		}
@@ -3256,14 +3349,26 @@
 		ret = hclge_inform_reset_assert_to_vf(vport);
 		if (ret)
 			dev_warn(&hdev->pdev->dev,
-				 "inform reset to vf(%d) failed %d!\n",
+				 "inform reset to vf(%u) failed %d!\n",
 				 vport->vport_id, ret);
 	}
 
 	return 0;
 }
 
-static int hclge_func_reset_sync_vf(struct hclge_dev *hdev)
+static void hclge_mailbox_service_task(struct hclge_dev *hdev)
+{
+	if (!test_and_clear_bit(HCLGE_STATE_MBX_SERVICE_SCHED, &hdev->state) ||
+	    test_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state) ||
+	    test_and_set_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state))
+		return;
+
+	hclge_mbx_handler(hdev);
+
+	clear_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state);
+}
+
+static void hclge_func_reset_sync_vf(struct hclge_dev *hdev)
 {
 	struct hclge_pf_rst_sync_cmd *req;
 	struct hclge_desc desc;
@@ -3274,26 +3379,28 @@
 	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_QUERY_VF_RST_RDY, true);
 
 	do {
+		/* vf need to down netdev by mbx during PF or FLR reset */
+		hclge_mailbox_service_task(hdev);
+
 		ret = hclge_cmd_send(&hdev->hw, &desc, 1);
 		/* for compatible with old firmware, wait
 		 * 100 ms for VF to stop IO
 		 */
 		if (ret == -EOPNOTSUPP) {
 			msleep(HCLGE_RESET_SYNC_TIME);
-			return 0;
+			return;
 		} else if (ret) {
-			dev_err(&hdev->pdev->dev, "sync with VF fail %d!\n",
-				ret);
-			return ret;
+			dev_warn(&hdev->pdev->dev, "sync with VF fail %d!\n",
+				 ret);
+			return;
 		} else if (req->all_vf_ready) {
-			return 0;
+			return;
 		}
 		msleep(HCLGE_PF_RESET_SYNC_TIME);
 		hclge_cmd_reuse_desc(&desc, true);
 	} while (cnt++ < HCLGE_PF_RESET_SYNC_CNT);
 
-	dev_err(&hdev->pdev->dev, "sync with VF timeout!\n");
-	return -ETIME;
+	dev_warn(&hdev->pdev->dev, "sync with VF timeout!\n");
 }
 
 void hclge_report_hw_error(struct hclge_dev *hdev,
@@ -3353,7 +3460,7 @@
 	u32 val;
 
 	if (hclge_get_hw_reset_stat(handle)) {
-		dev_info(&pdev->dev, "Hardware reset not finish\n");
+		dev_info(&pdev->dev, "hardware reset not finish\n");
 		dev_info(&pdev->dev, "func_rst_reg:0x%x, global_rst_reg:0x%x\n",
 			 hclge_read_dev(&hdev->hw, HCLGE_FUN_RST_ING),
 			 hclge_read_dev(&hdev->hw, HCLGE_GLOBAL_RESET_REG));
@@ -3362,26 +3469,20 @@
 
 	switch (hdev->reset_type) {
 	case HNAE3_GLOBAL_RESET:
+		dev_info(&pdev->dev, "global reset requested\n");
 		val = hclge_read_dev(&hdev->hw, HCLGE_GLOBAL_RESET_REG);
 		hnae3_set_bit(val, HCLGE_GLOBAL_RESET_BIT, 1);
 		hclge_write_dev(&hdev->hw, HCLGE_GLOBAL_RESET_REG, val);
-		dev_info(&pdev->dev, "Global Reset requested\n");
 		break;
 	case HNAE3_FUNC_RESET:
-		dev_info(&pdev->dev, "PF Reset requested\n");
+		dev_info(&pdev->dev, "PF reset requested\n");
 		/* schedule again to check later */
 		set_bit(HNAE3_FUNC_RESET, &hdev->reset_pending);
 		hclge_reset_task_schedule(hdev);
 		break;
-	case HNAE3_FLR_RESET:
-		dev_info(&pdev->dev, "FLR requested\n");
-		/* schedule again to check later */
-		set_bit(HNAE3_FLR_RESET, &hdev->reset_pending);
-		hclge_reset_task_schedule(hdev);
-		break;
 	default:
 		dev_warn(&pdev->dev,
-			 "Unsupported reset type: %d\n", hdev->reset_type);
+			 "unsupported reset type: %d\n", hdev->reset_type);
 		break;
 	}
 }
@@ -3394,10 +3495,15 @@
 
 	/* first, resolve any unknown reset type to the known type(s) */
 	if (test_bit(HNAE3_UNKNOWN_RESET, addr)) {
+		u32 msix_sts_reg = hclge_read_dev(&hdev->hw,
+					HCLGE_VECTOR0_PF_OTHER_INT_STS_REG);
 		/* we will intentionally ignore any errors from this function
 		 *  as we will end up in *some* reset request in any case
 		 */
-		hclge_handle_hw_msix_error(hdev, addr);
+		if (hclge_handle_hw_msix_error(hdev, addr))
+			dev_info(&hdev->pdev->dev, "received msix interrupt 0x%x\n",
+				 msix_sts_reg);
+
 		clear_bit(HNAE3_UNKNOWN_RESET, addr);
 		/* We defered the clearing of the error event which caused
 		 * interrupt since it was not posssible to do that in
@@ -3462,23 +3568,6 @@
 	hclge_enable_vector(&hdev->misc_vector, true);
 }
 
-static int hclge_reset_prepare_down(struct hclge_dev *hdev)
-{
-	int ret = 0;
-
-	switch (hdev->reset_type) {
-	case HNAE3_FUNC_RESET:
-		/* fall through */
-	case HNAE3_FLR_RESET:
-		ret = hclge_set_all_vf_rst(hdev, true);
-		break;
-	default:
-		break;
-	}
-
-	return ret;
-}
-
 static void hclge_reset_handshake(struct hclge_dev *hdev, bool enable)
 {
 	u32 reg_val;
@@ -3492,6 +3581,19 @@
 	hclge_write_dev(&hdev->hw, HCLGE_NIC_CSQ_DEPTH_REG, reg_val);
 }
 
+static int hclge_func_reset_notify_vf(struct hclge_dev *hdev)
+{
+	int ret;
+
+	ret = hclge_set_all_vf_rst(hdev, true);
+	if (ret)
+		return ret;
+
+	hclge_func_reset_sync_vf(hdev);
+
+	return 0;
+}
+
 static int hclge_reset_prepare_wait(struct hclge_dev *hdev)
 {
 	u32 reg_val;
@@ -3499,10 +3601,7 @@
 
 	switch (hdev->reset_type) {
 	case HNAE3_FUNC_RESET:
-		/* to confirm whether all running VF is ready
-		 * before request PF reset
-		 */
-		ret = hclge_func_reset_sync_vf(hdev);
+		ret = hclge_func_reset_notify_vf(hdev);
 		if (ret)
 			return ret;
 
@@ -3522,16 +3621,9 @@
 		hdev->rst_stats.pf_rst_cnt++;
 		break;
 	case HNAE3_FLR_RESET:
-		/* to confirm whether all running VF is ready
-		 * before request PF reset
-		 */
-		ret = hclge_func_reset_sync_vf(hdev);
+		ret = hclge_func_reset_notify_vf(hdev);
 		if (ret)
 			return ret;
-
-		set_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state);
-		set_bit(HNAE3_FLR_DOWN, &hdev->flr_state);
-		hdev->rst_stats.flr_rst_cnt++;
 		break;
 	case HNAE3_IMP_RESET:
 		hclge_handle_imp_error(hdev);
@@ -3569,7 +3661,7 @@
 		hdev->rst_stats.reset_fail_cnt++;
 		set_bit(hdev->reset_type, &hdev->reset_pending);
 		dev_info(&hdev->pdev->dev,
-			 "re-schedule reset task(%d)\n",
+			 "re-schedule reset task(%u)\n",
 			 hdev->rst_stats.reset_fail_cnt);
 		return true;
 	}
@@ -3580,6 +3672,11 @@
 	hclge_reset_handshake(hdev, true);
 
 	dev_err(&hdev->pdev->dev, "Reset fail!\n");
+
+	hclge_dbg_dump_rst_info(hdev);
+
+	set_bit(HCLGE_STATE_RST_FAIL, &hdev->state);
+
 	return false;
 }
 
@@ -3655,10 +3752,9 @@
 	return hclge_notify_client(hdev, HNAE3_RESTORE_CLIENT);
 }
 
-static void hclge_reset(struct hclge_dev *hdev)
+static int hclge_reset_prepare(struct hclge_dev *hdev)
 {
 	struct hnae3_ae_dev *ae_dev = pci_get_drvdata(hdev->pdev);
-	enum hnae3_reset_type reset_level;
 	int ret;
 
 	/* Initialize ae_dev reset status as well, in case enet layer wants to
@@ -3669,45 +3765,41 @@
 	/* perform reset of the stack & ae device for a client */
 	ret = hclge_notify_roce_client(hdev, HNAE3_DOWN_CLIENT);
 	if (ret)
-		goto err_reset;
-
-	ret = hclge_reset_prepare_down(hdev);
-	if (ret)
-		goto err_reset;
+		return ret;
 
 	rtnl_lock();
 	ret = hclge_notify_client(hdev, HNAE3_DOWN_CLIENT);
-	if (ret)
-		goto err_reset_lock;
-
 	rtnl_unlock();
-
-	ret = hclge_reset_prepare_wait(hdev);
 	if (ret)
-		goto err_reset;
+		return ret;
 
-	if (hclge_reset_wait(hdev))
-		goto err_reset;
+	return hclge_reset_prepare_wait(hdev);
+}
+
+static int hclge_reset_rebuild(struct hclge_dev *hdev)
+{
+	struct hnae3_ae_dev *ae_dev = pci_get_drvdata(hdev->pdev);
+	enum hnae3_reset_type reset_level;
+	int ret;
 
 	hdev->rst_stats.hw_reset_done_cnt++;
 
 	ret = hclge_notify_roce_client(hdev, HNAE3_UNINIT_CLIENT);
 	if (ret)
-		goto err_reset;
+		return ret;
 
 	rtnl_lock();
-
 	ret = hclge_reset_stack(hdev);
+	rtnl_unlock();
 	if (ret)
-		goto err_reset_lock;
+		return ret;
 
 	hclge_clear_reset_cause(hdev);
 
 	ret = hclge_reset_prepare_up(hdev);
 	if (ret)
-		goto err_reset_lock;
+		return ret;
 
-	rtnl_unlock();
 
 	ret = hclge_notify_roce_client(hdev, HNAE3_INIT_CLIENT);
 	/* ignore RoCE notify error if it fails HCLGE_RESET_MAX_FAIL_CNT - 1
@@ -3715,24 +3807,23 @@
 	 */
 	if (ret &&
 	    hdev->rst_stats.reset_fail_cnt < HCLGE_RESET_MAX_FAIL_CNT - 1)
-		goto err_reset;
+		return ret;
 
 	rtnl_lock();
-
 	ret = hclge_notify_client(hdev, HNAE3_UP_CLIENT);
-	if (ret)
-		goto err_reset_lock;
-
 	rtnl_unlock();
+	if (ret)
+		return ret;
 
 	ret = hclge_notify_roce_client(hdev, HNAE3_UP_CLIENT);
 	if (ret)
-		goto err_reset;
+		return ret;
 
 	hdev->last_reset_time = jiffies;
 	hdev->rst_stats.reset_fail_cnt = 0;
 	hdev->rst_stats.reset_done_cnt++;
 	ae_dev->reset_type = HNAE3_NONE_RESET;
+	clear_bit(HCLGE_STATE_RST_FAIL, &hdev->state);
 
 	/* if default_reset_request has a higher level reset request,
 	 * it should be handled as soon as possible. since some errors
@@ -3743,10 +3834,22 @@
 	if (reset_level != HNAE3_NONE_RESET)
 		set_bit(reset_level, &hdev->reset_request);
 
+	return 0;
+}
+
+static void hclge_reset(struct hclge_dev *hdev)
+{
+	if (hclge_reset_prepare(hdev))
+		goto err_reset;
+
+	if (hclge_reset_wait(hdev))
+		goto err_reset;
+
+	if (hclge_reset_rebuild(hdev))
+		goto err_reset;
+
 	return;
 
-err_reset_lock:
-	rtnl_unlock();
 err_reset:
 	if (hclge_reset_err_handle(hdev))
 		hclge_reset_task_schedule(hdev);
@@ -3779,12 +3882,13 @@
 				  HCLGE_RESET_INTERVAL))) {
 		mod_timer(&hdev->reset_timer, jiffies + HCLGE_RESET_INTERVAL);
 		return;
-	} else if (hdev->default_reset_request)
+	} else if (hdev->default_reset_request) {
 		hdev->reset_level =
 			hclge_get_reset_level(ae_dev,
 					      &hdev->default_reset_request);
-	else if (time_after(jiffies, (hdev->last_reset_time + 4 * 5 * HZ)))
+	} else if (time_after(jiffies, (hdev->last_reset_time + 4 * 5 * HZ))) {
 		hdev->reset_level = HNAE3_FUNC_RESET;
+	}
 
 	dev_info(&hdev->pdev->dev, "received reset event, reset type is %d\n",
 		 hdev->reset_level);
@@ -3846,34 +3950,18 @@
 	hdev->reset_type = HNAE3_NONE_RESET;
 }
 
-static void hclge_reset_service_task(struct work_struct *work)
+static void hclge_reset_service_task(struct hclge_dev *hdev)
 {
-	struct hclge_dev *hdev =
-		container_of(work, struct hclge_dev, rst_service_task);
-
-	if (test_and_set_bit(HCLGE_STATE_RST_HANDLING, &hdev->state))
+	if (!test_and_clear_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state))
 		return;
 
-	clear_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state);
+	down(&hdev->reset_sem);
+	set_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
 
 	hclge_reset_subtask(hdev);
 
 	clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
-}
-
-static void hclge_mailbox_service_task(struct work_struct *work)
-{
-	struct hclge_dev *hdev =
-		container_of(work, struct hclge_dev, mbx_service_task);
-
-	if (test_and_set_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state))
-		return;
-
-	clear_bit(HCLGE_STATE_MBX_SERVICE_SCHED, &hdev->state);
-
-	hclge_mbx_handler(hdev);
-
-	clear_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state);
+	up(&hdev->reset_sem);
 }
 
 static void hclge_update_vport_alive(struct hclge_dev *hdev)
@@ -3893,28 +3981,62 @@
 	}
 }
 
-static void hclge_service_task(struct work_struct *work)
+static void hclge_periodic_service_task(struct hclge_dev *hdev)
 {
-	struct hclge_dev *hdev =
-		container_of(work, struct hclge_dev, service_task.work);
+	unsigned long delta = round_jiffies_relative(HZ);
+
+	/* Always handle the link updating to make sure link state is
+	 * updated when it is triggered by mbx.
+	 */
+	hclge_update_link_status(hdev);
 
-	clear_bit(HCLGE_STATE_SERVICE_SCHED, &hdev->state);
+	if (time_is_after_jiffies(hdev->last_serv_processed + HZ)) {
+		delta = jiffies - hdev->last_serv_processed;
 
-	if (hdev->hw_stats.stats_timer >= HCLGE_STATS_TIMER_INTERVAL) {
-		hclge_update_stats_for_all(hdev);
-		hdev->hw_stats.stats_timer = 0;
+		if (delta < round_jiffies_relative(HZ)) {
+			delta = round_jiffies_relative(HZ) - delta;
+			goto out;
+		}
 	}
 
-	hclge_update_port_info(hdev);
-	hclge_update_link_status(hdev);
+	hdev->serv_processed_cnt++;
 	hclge_update_vport_alive(hdev);
+
+	if (test_bit(HCLGE_STATE_DOWN, &hdev->state)) {
+		hdev->last_serv_processed = jiffies;
+		goto out;
+	}
+
+	if (!(hdev->serv_processed_cnt % HCLGE_STATS_TIMER_INTERVAL))
+		hclge_update_stats_for_all(hdev);
+
+	hclge_update_port_info(hdev);
 	hclge_sync_vlan_filter(hdev);
-	if (hdev->fd_arfs_expire_timer >= HCLGE_FD_ARFS_EXPIRE_TIMER_INTERVAL) {
+
+	if (!(hdev->serv_processed_cnt % HCLGE_ARFS_EXPIRE_INTERVAL))
 		hclge_rfs_filter_expire(hdev);
-		hdev->fd_arfs_expire_timer = 0;
-	}
 
-	hclge_task_schedule(hdev, round_jiffies_relative(HZ));
+	hdev->last_serv_processed = jiffies;
+
+out:
+	hclge_task_schedule(hdev, delta);
+}
+
+static void hclge_service_task(struct work_struct *work)
+{
+	struct hclge_dev *hdev =
+		container_of(work, struct hclge_dev, service_task.work);
+
+	hclge_reset_service_task(hdev);
+	hclge_mailbox_service_task(hdev);
+	hclge_periodic_service_task(hdev);
+
+	/* Handle reset and mbx again in case periodical task delays the
+	 * handling by calling hclge_task_schedule() in
+	 * hclge_periodic_service_task().
+	 */
+	hclge_reset_service_task(hdev);
+	hclge_mailbox_service_task(hdev);
 }
 
 struct hclge_vport *hclge_get_vport(struct hnae3_handle *handle)
@@ -3985,7 +4107,7 @@
 	vector_id = hclge_get_vector_index(hdev, vector);
 	if (vector_id < 0) {
 		dev_err(&hdev->pdev->dev,
-			"Get vector index fail. vector_id =%d\n", vector_id);
+			"Get vector index fail. vector = %d\n", vector);
 		return vector_id;
 	}
 
@@ -4415,7 +4537,7 @@
 	 */
 	if (rss_size > HCLGE_RSS_TC_SIZE_7 || rss_size == 0) {
 		dev_err(&hdev->pdev->dev,
-			"Configure rss tc size failed, invalid TC_SIZE = %d\n",
+			"Configure rss tc size failed, invalid TC_SIZE = %u\n",
 			rss_size);
 		return -EINVAL;
 	}
@@ -4560,7 +4682,7 @@
 	vector_id = hclge_get_vector_index(hdev, vector);
 	if (vector_id < 0) {
 		dev_err(&hdev->pdev->dev,
-			"Get vector index fail. vector_id =%d\n", vector_id);
+			"failed to get vector index. vector=%d\n", vector);
 		return vector_id;
 	}
 
@@ -4593,8 +4715,8 @@
 	return ret;
 }
 
-int hclge_cmd_set_promisc_mode(struct hclge_dev *hdev,
-			       struct hclge_promisc_param *param)
+static int hclge_cmd_set_promisc_mode(struct hclge_dev *hdev,
+				      struct hclge_promisc_param *param)
 {
 	struct hclge_promisc_cfg_cmd *req;
 	struct hclge_desc desc;
@@ -4621,8 +4743,9 @@
 	return ret;
 }
 
-void hclge_promisc_param_init(struct hclge_promisc_param *param, bool en_uc,
-			      bool en_mc, bool en_bc, int vport_id)
+static void hclge_promisc_param_init(struct hclge_promisc_param *param,
+				     bool en_uc, bool en_mc, bool en_bc,
+				     int vport_id)
 {
 	if (!param)
 		return;
@@ -4637,12 +4760,21 @@
 	param->vf_id = vport_id;
 }
 
+int hclge_set_vport_promisc_mode(struct hclge_vport *vport, bool en_uc_pmc,
+				 bool en_mc_pmc, bool en_bc_pmc)
+{
+	struct hclge_dev *hdev = vport->back;
+	struct hclge_promisc_param param;
+
+	hclge_promisc_param_init(&param, en_uc_pmc, en_mc_pmc, en_bc_pmc,
+				 vport->vport_id);
+	return hclge_cmd_set_promisc_mode(hdev, &param);
+}
+
 static int hclge_set_promisc_mode(struct hnae3_handle *handle, bool en_uc_pmc,
 				  bool en_mc_pmc)
 {
 	struct hclge_vport *vport = hclge_get_vport(handle);
-	struct hclge_dev *hdev = vport->back;
-	struct hclge_promisc_param param;
 	bool en_bc_pmc = true;
 
 	/* For revision 0x20, if broadcast promisc enabled, vlan filter is
@@ -4652,9 +4784,8 @@
 	if (handle->pdev->revision == 0x20)
 		en_bc_pmc = handle->netdev_flags & HNAE3_BPE ? true : false;
 
-	hclge_promisc_param_init(&param, en_uc_pmc, en_mc_pmc, en_bc_pmc,
-				 vport->vport_id);
-	return hclge_cmd_set_promisc_mode(hdev, &param);
+	return hclge_set_vport_promisc_mode(vport, en_uc_pmc, en_mc_pmc,
+					    en_bc_pmc);
 }
 
 static int hclge_get_fd_mode(struct hclge_dev *hdev, u8 *fd_mode)
@@ -4756,7 +4887,7 @@
 		break;
 	default:
 		dev_err(&hdev->pdev->dev,
-			"Unsupported flow director mode %d\n",
+			"Unsupported flow director mode %u\n",
 			hdev->fd_cfg.fd_mode);
 		return -EOPNOTSUPP;
 	}
@@ -4905,9 +5036,9 @@
 	case BIT(INNER_SRC_MAC):
 		for (i = 0; i < ETH_ALEN; i++) {
 			calc_x(key_x[ETH_ALEN - 1 - i], rule->tuples.src_mac[i],
-			       rule->tuples.src_mac[i]);
+			       rule->tuples_mask.src_mac[i]);
 			calc_y(key_y[ETH_ALEN - 1 - i], rule->tuples.src_mac[i],
-			       rule->tuples.src_mac[i]);
+			       rule->tuples_mask.src_mac[i]);
 		}
 
 		return true;
@@ -5086,7 +5217,7 @@
 				   true);
 	if (ret) {
 		dev_err(&hdev->pdev->dev,
-			"fd key_y config fail, loc=%d, ret=%d\n",
+			"fd key_y config fail, loc=%u, ret=%d\n",
 			rule->queue_id, ret);
 		return ret;
 	}
@@ -5095,7 +5226,7 @@
 				   true);
 	if (ret)
 		dev_err(&hdev->pdev->dev,
-			"fd key_x config fail, loc=%d, ret=%d\n",
+			"fd key_x config fail, loc=%u, ret=%d\n",
 			rule->queue_id, ret);
 	return ret;
 }
@@ -5344,7 +5475,7 @@
 		}
 	} else if (!is_add) {
 		dev_err(&hdev->pdev->dev,
-			"delete fail, rule %d is inexistent\n",
+			"delete fail, rule %u is inexistent\n",
 			location);
 		return -EINVAL;
 	}
@@ -5584,7 +5715,7 @@
 
 		if (vf > hdev->num_req_vfs) {
 			dev_err(&hdev->pdev->dev,
-				"Error: vf id (%d) > max vf num (%d)\n",
+				"Error: vf id (%u) > max vf num (%u)\n",
 				vf, hdev->num_req_vfs);
 			return -EINVAL;
 		}
@@ -5594,7 +5725,7 @@
 
 		if (ring >= tqps) {
 			dev_err(&hdev->pdev->dev,
-				"Error: queue id (%d) > max tqp num (%d)\n",
+				"Error: queue id (%u) > max tqp num (%u)\n",
 				ring, tqps - 1);
 			return -EINVAL;
 		}
@@ -5625,9 +5756,9 @@
 	/* to avoid rule conflict, when user configure rule by ethtool,
 	 * we need to clear all arfs rules
 	 */
+	spin_lock_bh(&hdev->fd_rule_lock);
 	hclge_clear_arfs_rules(handle);
 
-	spin_lock_bh(&hdev->fd_rule_lock);
 	ret = hclge_fd_config_rule(hdev, rule);
 
 	spin_unlock_bh(&hdev->fd_rule_lock);
@@ -5653,7 +5784,7 @@
 
 	if (!hclge_fd_rule_exist(hdev, fs->location)) {
 		dev_err(&hdev->pdev->dev,
-			"Delete fail, rule %d is inexistent\n", fs->location);
+			"Delete fail, rule %u is inexistent\n", fs->location);
 		return -ENOENT;
 	}
 
@@ -5670,6 +5801,7 @@
 	return ret;
 }
 
+/* make sure being called after lock up with fd_rule_lock */
 static void hclge_del_all_fd_entries(struct hnae3_handle *handle,
 				     bool clear_list)
 {
@@ -5682,7 +5814,6 @@
 	if (!hnae3_dev_fd_supported(hdev))
 		return;
 
-	spin_lock_bh(&hdev->fd_rule_lock);
 	for_each_set_bit(location, hdev->fd_bmap,
 			 hdev->fd_cfg.rule_num[HCLGE_FD_STAGE_1])
 		hclge_fd_tcam_config(hdev, HCLGE_FD_STAGE_1, true, location,
@@ -5699,8 +5830,6 @@
 		bitmap_zero(hdev->fd_bmap,
 			    hdev->fd_cfg.rule_num[HCLGE_FD_STAGE_1]);
 	}
-
-	spin_unlock_bh(&hdev->fd_rule_lock);
 }
 
 static int hclge_restore_fd_entries(struct hnae3_handle *handle)
@@ -5730,7 +5859,7 @@
 
 		if (ret) {
 			dev_warn(&hdev->pdev->dev,
-				 "Restore rule %d failed, remove it\n",
+				 "Restore rule %u failed, remove it\n",
 				 rule->location);
 			clear_bit(rule->location, hdev->fd_bmap);
 			hlist_del(&rule->rule_node);
@@ -5938,8 +6067,7 @@
 		fs->h_ext.vlan_tci = cpu_to_be16(rule->tuples.vlan_tag1);
 		fs->m_ext.vlan_tci =
 				rule->unused_tuple & BIT(INNER_VLAN_TAG_FST) ?
-				cpu_to_be16(VLAN_VID_MASK) :
-				cpu_to_be16(rule->tuples_mask.vlan_tag1);
+				0 : cpu_to_be16(rule->tuples_mask.vlan_tag1);
 	}
 
 	if (fs->flow_type & FLOW_MAC_EXT) {
@@ -6003,6 +6131,9 @@
 static void hclge_fd_get_flow_tuples(const struct flow_keys *fkeys,
 				     struct hclge_fd_rule_tuples *tuples)
 {
+#define flow_ip6_src fkeys->addrs.v6addrs.src.in6_u.u6_addr32
+#define flow_ip6_dst fkeys->addrs.v6addrs.dst.in6_u.u6_addr32
+
 	tuples->ether_proto = be16_to_cpu(fkeys->basic.n_proto);
 	tuples->ip_proto = fkeys->basic.ip_proto;
 	tuples->dst_port = be16_to_cpu(fkeys->ports.dst);
@@ -6011,12 +6142,12 @@
 		tuples->src_ip[3] = be32_to_cpu(fkeys->addrs.v4addrs.src);
 		tuples->dst_ip[3] = be32_to_cpu(fkeys->addrs.v4addrs.dst);
 	} else {
-		memcpy(tuples->src_ip,
-		       fkeys->addrs.v6addrs.src.in6_u.u6_addr32,
-		       sizeof(tuples->src_ip));
-		memcpy(tuples->dst_ip,
-		       fkeys->addrs.v6addrs.dst.in6_u.u6_addr32,
-		       sizeof(tuples->dst_ip));
+		int i;
+
+		for (i = 0; i < IPV6_SIZE; i++) {
+			tuples->src_ip[i] = be32_to_cpu(flow_ip6_src[i]);
+			tuples->dst_ip[i] = be32_to_cpu(flow_ip6_dst[i]);
+		}
 	}
 }
 
@@ -6064,7 +6195,7 @@
 				      u16 flow_id, struct flow_keys *fkeys)
 {
 	struct hclge_vport *vport = hclge_get_vport(handle);
-	struct hclge_fd_rule_tuples new_tuples;
+	struct hclge_fd_rule_tuples new_tuples = {};
 	struct hclge_dev *hdev = vport->back;
 	struct hclge_fd_rule *rule;
 	u16 tmp_queue_id;
@@ -6074,20 +6205,18 @@
 	if (!hnae3_dev_fd_supported(hdev))
 		return -EOPNOTSUPP;
 
-	memset(&new_tuples, 0, sizeof(new_tuples));
-	hclge_fd_get_flow_tuples(fkeys, &new_tuples);
-
-	spin_lock_bh(&hdev->fd_rule_lock);
-
 	/* when there is already fd rule existed add by user,
 	 * arfs should not work
 	 */
+	spin_lock_bh(&hdev->fd_rule_lock);
 	if (hdev->fd_active_type == HCLGE_FD_EP_ACTIVE) {
 		spin_unlock_bh(&hdev->fd_rule_lock);
 
 		return -EOPNOTSUPP;
 	}
 
+	hclge_fd_get_flow_tuples(fkeys, &new_tuples);
+
 	/* check is there flow director filter existed for this flow,
 	 * if not, create a new filter for it;
 	 * if filter exist with different queue id, modify the filter;
@@ -6172,6 +6301,7 @@
 #endif
 }
 
+/* make sure being called after lock up with fd_rule_lock */
 static void hclge_clear_arfs_rules(struct hnae3_handle *handle)
 {
 #ifdef CONFIG_RFS_ACCEL
@@ -6216,10 +6346,14 @@
 
 	hdev->fd_en = enable;
 	clear = hdev->fd_active_type == HCLGE_FD_ARFS_ACTIVE;
-	if (!enable)
+
+	if (!enable) {
+		spin_lock_bh(&hdev->fd_rule_lock);
 		hclge_del_all_fd_entries(handle, clear);
-	else
+		spin_unlock_bh(&hdev->fd_rule_lock);
+	} else {
 		hclge_restore_fd_entries(handle);
+	}
 }
 
 static void hclge_cfg_mac_mode(struct hclge_dev *hdev, bool enable)
@@ -6631,6 +6765,19 @@
 	}
 }
 
+static void hclge_flush_link_update(struct hclge_dev *hdev)
+{
+#define HCLGE_FLUSH_LINK_TIMEOUT	100000
+
+	unsigned long last = hdev->serv_processed_cnt;
+	int i = 0;
+
+	while (test_bit(HCLGE_STATE_LINK_UPDATING, &hdev->state) &&
+	       i++ < HCLGE_FLUSH_LINK_TIMEOUT &&
+	       last == hdev->serv_processed_cnt)
+		usleep_range(1, 1);
+}
+
 static void hclge_set_timer_task(struct hnae3_handle *handle, bool enable)
 {
 	struct hclge_vport *vport = hclge_get_vport(handle);
@@ -6639,12 +6786,12 @@
 	if (enable) {
 		hclge_task_schedule(hdev, round_jiffies_relative(HZ));
 	} else {
-		/* Set the DOWN flag here to disable the service to be
-		 * scheduled again
-		 */
+		/* Set the DOWN flag here to disable link updating */
 		set_bit(HCLGE_STATE_DOWN, &hdev->state);
-		cancel_delayed_work_sync(&hdev->service_task);
-		clear_bit(HCLGE_STATE_SERVICE_SCHED, &hdev->state);
+
+		/* flush memory to make sure DOWN is seen by service task */
+		smp_mb__before_atomic();
+		hclge_flush_link_update(hdev);
 	}
 }
 
@@ -6673,8 +6820,9 @@
 	int i;
 
 	set_bit(HCLGE_STATE_DOWN, &hdev->state);
-
+	spin_lock_bh(&hdev->fd_rule_lock);
 	hclge_clear_arfs_rules(handle);
+	spin_unlock_bh(&hdev->fd_rule_lock);
 
 	/* If it is not PF reset, the firmware will disable the MAC,
 	 * so it only need to stop phy here.
@@ -6735,7 +6883,7 @@
 
 	if (cmdq_resp) {
 		dev_err(&hdev->pdev->dev,
-			"cmdq execute failed for get_mac_vlan_cmd_status,status=%d.\n",
+			"cmdq execute failed for get_mac_vlan_cmd_status,status=%u.\n",
 			cmdq_resp);
 		return -EIO;
 	}
@@ -6987,7 +7135,7 @@
 
 	if (allocated_size < hdev->wanted_umv_size)
 		dev_warn(&hdev->pdev->dev,
-			 "Alloc umv space failed, want %d, get %d\n",
+			 "Alloc umv space failed, want %u, get %u\n",
 			 hdev->wanted_umv_size, allocated_size);
 
 	mutex_init(&hdev->umv_mutex);
@@ -7155,7 +7303,7 @@
 
 	/* check if we just hit the duplicate */
 	if (!ret) {
-		dev_warn(&hdev->pdev->dev, "VF %d mac(%pM) exists\n",
+		dev_warn(&hdev->pdev->dev, "VF %u mac(%pM) exists\n",
 			 vport->vport_id, addr);
 		return 0;
 	}
@@ -7225,7 +7373,6 @@
 		return -EINVAL;
 	}
 	memset(&req, 0, sizeof(req));
-	hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT0_EN_B, 0);
 	hclge_prepare_mac_addr(&req, addr, true);
 	status = hclge_lookup_mac_vlan_tbl(vport, &req, desc, true);
 	if (status) {
@@ -7270,7 +7417,6 @@
 	}
 
 	memset(&req, 0, sizeof(req));
-	hnae3_set_bit(req.entry_type, HCLGE_MAC_VLAN_BIT0_EN_B, 0);
 	hclge_prepare_mac_addr(&req, addr, true);
 	status = hclge_lookup_mac_vlan_tbl(vport, &req, desc, true);
 	if (!status) {
@@ -7336,7 +7482,7 @@
 	mc_flag = is_write_tbl && mac_type == HCLGE_MAC_ADDR_MC;
 
 	list_for_each_entry_safe(mac_cfg, tmp, list, node) {
-		if (strncmp(mac_cfg->mac_addr, mac_addr, ETH_ALEN) == 0) {
+		if (ether_addr_equal(mac_cfg->mac_addr, mac_addr)) {
 			if (uc_flag && mac_cfg->hd_tbl_status)
 				hclge_rm_uc_addr_common(vport, mac_addr);
 
@@ -7380,7 +7526,6 @@
 	struct hclge_vport *vport;
 	int i;
 
-	mutex_lock(&hdev->vport_cfg_mutex);
 	for (i = 0; i < hdev->num_alloc_vport; i++) {
 		vport = &hdev->vport[i];
 		list_for_each_entry_safe(mac, tmp, &vport->uc_mac_list, node) {
@@ -7393,7 +7538,6 @@
 			kfree(mac);
 		}
 	}
-	mutex_unlock(&hdev->vport_cfg_mutex);
 }
 
 static int hclge_get_mac_ethertype_cmd_status(struct hclge_dev *hdev,
@@ -7408,7 +7552,7 @@
 
 	if (cmdq_resp) {
 		dev_err(&hdev->pdev->dev,
-			"cmdq execute failed for get_mac_ethertype_cmd_status, status=%d.\n",
+			"cmdq execute failed for get_mac_ethertype_cmd_status, status=%u.\n",
 			cmdq_resp);
 		return -EIO;
 	}
@@ -7430,7 +7574,7 @@
 		break;
 	default:
 		dev_err(&hdev->pdev->dev,
-			"add mac ethertype failed for undefined, code=%d.\n",
+			"add mac ethertype failed for undefined, code=%u.\n",
 			resp_code);
 		return_status = -EIO;
 	}
@@ -7438,6 +7582,73 @@
 	return return_status;
 }
 
+static bool hclge_check_vf_mac_exist(struct hclge_vport *vport, int vf_idx,
+				     u8 *mac_addr)
+{
+	struct hclge_mac_vlan_tbl_entry_cmd req;
+	struct hclge_dev *hdev = vport->back;
+	struct hclge_desc desc;
+	u16 egress_port = 0;
+	int i;
+
+	if (is_zero_ether_addr(mac_addr))
+		return false;
+
+	memset(&req, 0, sizeof(req));
+	hnae3_set_field(egress_port, HCLGE_MAC_EPORT_VFID_M,
+			HCLGE_MAC_EPORT_VFID_S, vport->vport_id);
+	req.egress_port = cpu_to_le16(egress_port);
+	hclge_prepare_mac_addr(&req, mac_addr, false);
+
+	if (hclge_lookup_mac_vlan_tbl(vport, &req, &desc, false) != -ENOENT)
+		return true;
+
+	vf_idx += HCLGE_VF_VPORT_START_NUM;
+	for (i = hdev->num_vmdq_vport + 1; i < hdev->num_alloc_vport; i++)
+		if (i != vf_idx &&
+		    ether_addr_equal(mac_addr, hdev->vport[i].vf_info.mac))
+			return true;
+
+	return false;
+}
+
+static int hclge_set_vf_mac(struct hnae3_handle *handle, int vf,
+			    u8 *mac_addr)
+{
+	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_dev *hdev = vport->back;
+
+	vport = hclge_get_vf_vport(hdev, vf);
+	if (!vport)
+		return -EINVAL;
+
+	if (ether_addr_equal(mac_addr, vport->vf_info.mac)) {
+		dev_info(&hdev->pdev->dev,
+			 "Specified MAC(=%pM) is same as before, no change committed!\n",
+			 mac_addr);
+		return 0;
+	}
+
+	if (hclge_check_vf_mac_exist(vport, vf, mac_addr)) {
+		dev_err(&hdev->pdev->dev, "Specified MAC(=%pM) exists!\n",
+			mac_addr);
+		return -EEXIST;
+	}
+
+	ether_addr_copy(vport->vf_info.mac, mac_addr);
+
+	if (test_bit(HCLGE_VPORT_STATE_ALIVE, &vport->state)) {
+		dev_info(&hdev->pdev->dev,
+			 "MAC of VF %d has been set to %pM, and it will be reinitialized!\n",
+			 vf, mac_addr);
+		return hclge_inform_reset_assert_to_vf(vport);
+	}
+
+	dev_info(&hdev->pdev->dev, "MAC of VF %d has been set to %pM\n",
+		 vf, mac_addr);
+	return 0;
+}
+
 static int hclge_add_mgr_tbl(struct hclge_dev *hdev,
 			     const struct hclge_mac_mgr_tbl_entry_cmd *req)
 {
@@ -7558,16 +7769,27 @@
 	struct hclge_desc desc;
 	int ret;
 
-	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_VLAN_FILTER_CTRL, false);
-
+	/* read current vlan filter parameter */
+	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_VLAN_FILTER_CTRL, true);
 	req = (struct hclge_vlan_filter_ctrl_cmd *)desc.data;
 	req->vlan_type = vlan_type;
-	req->vlan_fe = filter_en ? fe_type : 0;
 	req->vf_id = vf_id;
 
 	ret = hclge_cmd_send(&hdev->hw, &desc, 1);
+	if (ret) {
+		dev_err(&hdev->pdev->dev,
+			"failed to get vlan filter config, ret = %d.\n", ret);
+		return ret;
+	}
+
+	/* modify and write new config parameter */
+	hclge_cmd_reuse_desc(&desc, false);
+	req->vlan_fe = filter_en ?
+			(req->vlan_fe | fe_type) : (req->vlan_fe & ~fe_type);
+
+	ret = hclge_cmd_send(&hdev->hw, &desc, 1);
 	if (ret)
-		dev_err(&hdev->pdev->dev, "set vlan filter fail, ret =%d.\n",
+		dev_err(&hdev->pdev->dev, "failed to set vlan filter, ret = %d.\n",
 			ret);
 
 	return ret;
@@ -7610,7 +7832,7 @@
 				    bool is_kill, u16 vlan,
 				    __be16 proto)
 {
-#define HCLGE_MAX_VF_BYTES  16
+	struct hclge_vport *vport = &hdev->vport[vfid];
 	struct hclge_vlan_filter_vf_cfg_cmd *req0;
 	struct hclge_vlan_filter_vf_cfg_cmd *req1;
 	struct hclge_desc desc[2];
@@ -7619,10 +7841,18 @@
 	int ret;
 
 	/* if vf vlan table is full, firmware will close vf vlan filter, it
-	 * is unable and unnecessary to add new vlan id to vf vlan filter
+	 * is unable and unnecessary to add new vlan id to vf vlan filter.
+	 * If spoof check is enable, and vf vlan is full, it shouldn't add
+	 * new vlan, because tx packets with these vlan id will be dropped.
 	 */
-	if (test_bit(vfid, hdev->vf_vlan_full) && !is_kill)
+	if (test_bit(vfid, hdev->vf_vlan_full) && !is_kill) {
+		if (vport->vf_info.spoofchk && vlan) {
+			dev_err(&hdev->pdev->dev,
+				"Can't add vlan due to spoof check is on and vf vlan table is full\n");
+			return -EPERM;
+		}
 		return 0;
+	}
 
 	hclge_cmd_setup_basic_desc(&desc[0],
 				   HCLGE_OPC_VLAN_FILTER_VF_CFG, false);
@@ -7666,7 +7896,7 @@
 		}
 
 		dev_err(&hdev->pdev->dev,
-			"Add vf vlan filter fail, ret =%d.\n",
+			"Add vf vlan filter fail, ret =%u.\n",
 			req0->resp_code);
 	} else {
 #define HCLGE_VF_VLAN_DEL_NO_FOUND	1
@@ -7682,7 +7912,7 @@
 			return 0;
 
 		dev_err(&hdev->pdev->dev,
-			"Kill vf vlan filter fail, ret =%d.\n",
+			"Kill vf vlan filter fail, ret =%u.\n",
 			req0->resp_code);
 	}
 
@@ -7701,9 +7931,10 @@
 
 	hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_VLAN_FILTER_PF_CFG, false);
 
-	vlan_offset_160 = vlan_id / 160;
-	vlan_offset_byte = (vlan_id % 160) / 8;
-	vlan_offset_byte_val = 1 << (vlan_id % 8);
+	vlan_offset_160 = vlan_id / HCLGE_VLAN_ID_OFFSET_STEP;
+	vlan_offset_byte = (vlan_id % HCLGE_VLAN_ID_OFFSET_STEP) /
+			   HCLGE_VLAN_BYTE_SIZE;
+	vlan_offset_byte_val = 1 << (vlan_id % HCLGE_VLAN_BYTE_SIZE);
 
 	req = (struct hclge_vlan_filter_pf_cfg_cmd *)desc.data;
 	req->vlan_offset = vlan_offset_160;
@@ -7731,7 +7962,7 @@
 				       proto);
 	if (ret) {
 		dev_err(&hdev->pdev->dev,
-			"Set %d vport vlan filter config fail, ret =%d.\n",
+			"Set %u vport vlan filter config fail, ret =%d.\n",
 			vport_id, ret);
 		return ret;
 	}
@@ -7743,7 +7974,7 @@
 
 	if (!is_kill && test_and_set_bit(vport_id, hdev->vlan_table[vlan_id])) {
 		dev_err(&hdev->pdev->dev,
-			"Add port vlan failed, vport %d is already in vlan %d\n",
+			"Add port vlan failed, vport %u is already in vlan %u\n",
 			vport_id, vlan_id);
 		return -EINVAL;
 	}
@@ -7751,7 +7982,7 @@
 	if (is_kill &&
 	    !test_and_clear_bit(vport_id, hdev->vlan_table[vlan_id])) {
 		dev_err(&hdev->pdev->dev,
-			"Delete port vlan failed, vport %d is not in vlan %d\n",
+			"Delete port vlan failed, vport %u is not in vlan %u\n",
 			vport_id, vlan_id);
 		return -EINVAL;
 	}
@@ -8076,6 +8307,7 @@
 			kfree(vlan);
 		}
 	}
+	clear_bit(vport->vport_id, hdev->vf_vlan_full);
 }
 
 void hclge_uninit_vport_vlan_table(struct hclge_dev *hdev)
@@ -8084,7 +8316,6 @@
 	struct hclge_vport *vport;
 	int i;
 
-	mutex_lock(&hdev->vport_cfg_mutex);
 	for (i = 0; i < hdev->num_alloc_vport; i++) {
 		vport = &hdev->vport[i];
 		list_for_each_entry_safe(vlan, tmp, &vport->vlan_list, node) {
@@ -8092,7 +8323,6 @@
 			kfree(vlan);
 		}
 	}
-	mutex_unlock(&hdev->vport_cfg_mutex);
 }
 
 static void hclge_restore_vlan_table(struct hnae3_handle *handle)
@@ -8104,7 +8334,6 @@
 	u16 state, vlan_id;
 	int i;
 
-	mutex_lock(&hdev->vport_cfg_mutex);
 	for (i = 0; i < hdev->num_alloc_vport; i++) {
 		vport = &hdev->vport[i];
 		vlan_proto = vport->port_base_vlan_cfg.vlan_info.vlan_proto;
@@ -8119,16 +8348,17 @@
 		}
 
 		list_for_each_entry_safe(vlan, tmp, &vport->vlan_list, node) {
-			if (vlan->hd_tbl_status)
-				hclge_set_vlan_filter_hw(hdev,
-							 htons(ETH_P_8021Q),
-							 vport->vport_id,
-							 vlan->vlan_id,
-							 false);
+			int ret;
+
+			if (!vlan->hd_tbl_status)
+				continue;
+			ret = hclge_set_vlan_filter_hw(hdev, htons(ETH_P_8021Q),
+						       vport->vport_id,
+						       vlan->vlan_id, false);
+			if (ret)
+				break;
 		}
 	}
-
-	mutex_unlock(&hdev->vport_cfg_mutex);
 }
 
 int hclge_en_hw_strip_rxvtag(struct hnae3_handle *handle, bool enable)
@@ -8262,13 +8492,16 @@
 	if (hdev->pdev->revision == 0x20)
 		return -EOPNOTSUPP;
 
+	vport = hclge_get_vf_vport(hdev, vfid);
+	if (!vport)
+		return -EINVAL;
+
 	/* qos is a 3 bits value, so can not be bigger than 7 */
-	if (vfid >= hdev->num_alloc_vfs || vlan > VLAN_N_VID - 1 || qos > 7)
+	if (vlan > VLAN_N_VID - 1 || qos > 7)
 		return -EINVAL;
 	if (proto != htons(ETH_P_8021Q))
 		return -EPROTONOSUPPORT;
 
-	vport = &hdev->vport[vfid];
 	state = hclge_get_port_base_vlan_state(vport,
 					       vport->port_base_vlan_cfg.state,
 					       vlan);
@@ -8279,27 +8512,40 @@
 	vlan_info.qos = qos;
 	vlan_info.vlan_proto = ntohs(proto);
 
-	/* update port based VLAN for PF */
-	if (!vfid) {
-		hclge_notify_client(hdev, HNAE3_DOWN_CLIENT);
-		ret = hclge_update_port_base_vlan_cfg(vport, state, &vlan_info);
-		hclge_notify_client(hdev, HNAE3_UP_CLIENT);
-
-		return ret;
-	}
-
 	if (!test_bit(HCLGE_VPORT_STATE_ALIVE, &vport->state)) {
 		return hclge_update_port_base_vlan_cfg(vport, state,
 						       &vlan_info);
 	} else {
 		ret = hclge_push_vf_port_base_vlan_info(&hdev->vport[0],
-							(u8)vfid, state,
+							vport->vport_id, state,
 							vlan, qos,
 							ntohs(proto));
 		return ret;
 	}
 }
 
+static void hclge_clear_vf_vlan(struct hclge_dev *hdev)
+{
+	struct hclge_vlan_info *vlan_info;
+	struct hclge_vport *vport;
+	int ret;
+	int vf;
+
+	/* clear port base vlan for all vf */
+	for (vf = HCLGE_VF_VPORT_START_NUM; vf < hdev->num_alloc_vport; vf++) {
+		vport = &hdev->vport[vf];
+		vlan_info = &vport->port_base_vlan_cfg.vlan_info;
+
+		ret = hclge_set_vlan_filter_hw(hdev, htons(ETH_P_8021Q),
+					       vport->vport_id,
+					       vlan_info->vlan_tag, true);
+		if (ret)
+			dev_err(&hdev->pdev->dev,
+				"failed to clear vf vlan for vf%d, ret = %d\n",
+				vf - HCLGE_VF_VPORT_START_NUM, ret);
+	}
+}
+
 int hclge_set_vlan_filter(struct hnae3_handle *handle, __be16 proto,
 			  u16 vlan_id, bool is_kill)
 {
@@ -8404,6 +8650,7 @@
 	struct hclge_dev *hdev = vport->back;
 	int i, max_frm_size, ret;
 
+	/* HW supprt 2 layer vlan */
 	max_frm_size = new_mtu + ETH_HLEN + ETH_FCS_LEN + 2 * VLAN_HLEN;
 	if (max_frm_size < HCLGE_MAC_MIN_FRAME ||
 	    max_frm_size > HCLGE_MAC_MAX_FRAME)
@@ -8555,12 +8802,19 @@
 
 void hclge_reset_vf_queue(struct hclge_vport *vport, u16 queue_id)
 {
+	struct hnae3_handle *handle = &vport->nic;
 	struct hclge_dev *hdev = vport->back;
 	int reset_try_times = 0;
 	int reset_status;
 	u16 queue_gid;
 	int ret;
 
+	if (queue_id >= handle->kinfo.num_tqps) {
+		dev_warn(&hdev->pdev->dev, "Invalid vf queue id(%u)\n",
+			 queue_id);
+		return;
+	}
+
 	queue_gid = hclge_covert_handle_qid_global(&vport->nic, queue_id);
 
 	ret = hclge_send_reset_tqp_cmd(hdev, queue_gid, true);
@@ -8819,16 +9073,16 @@
 
 	dev_info(dev, "PF info begin:\n");
 
-	dev_info(dev, "Task queue pairs numbers: %d\n", hdev->num_tqps);
-	dev_info(dev, "Desc num per TX queue: %d\n", hdev->num_tx_desc);
-	dev_info(dev, "Desc num per RX queue: %d\n", hdev->num_rx_desc);
-	dev_info(dev, "Numbers of vports: %d\n", hdev->num_alloc_vport);
-	dev_info(dev, "Numbers of vmdp vports: %d\n", hdev->num_vmdq_vport);
-	dev_info(dev, "Numbers of VF for this PF: %d\n", hdev->num_req_vfs);
-	dev_info(dev, "HW tc map: %d\n", hdev->hw_tc_map);
-	dev_info(dev, "Total buffer size for TX/RX: %d\n", hdev->pkt_buf_size);
-	dev_info(dev, "TX buffer size for each TC: %d\n", hdev->tx_buf_size);
-	dev_info(dev, "DV buffer size for each TC: %d\n", hdev->dv_buf_size);
+	dev_info(dev, "Task queue pairs numbers: %u\n", hdev->num_tqps);
+	dev_info(dev, "Desc num per TX queue: %u\n", hdev->num_tx_desc);
+	dev_info(dev, "Desc num per RX queue: %u\n", hdev->num_rx_desc);
+	dev_info(dev, "Numbers of vports: %u\n", hdev->num_alloc_vport);
+	dev_info(dev, "Numbers of vmdp vports: %u\n", hdev->num_vmdq_vport);
+	dev_info(dev, "Numbers of VF for this PF: %u\n", hdev->num_req_vfs);
+	dev_info(dev, "HW tc map: 0x%x\n", hdev->hw_tc_map);
+	dev_info(dev, "Total buffer size for TX/RX: %u\n", hdev->pkt_buf_size);
+	dev_info(dev, "TX buffer size for each TC: %u\n", hdev->tx_buf_size);
+	dev_info(dev, "DV buffer size for each TC: %u\n", hdev->dv_buf_size);
 	dev_info(dev, "This is %s PF\n",
 		 hdev->flag & HCLGE_FLAG_MAIN ? "main" : "not main");
 	dev_info(dev, "DCB %s\n",
@@ -8844,10 +9098,9 @@
 {
 	struct hnae3_client *client = vport->nic.client;
 	struct hclge_dev *hdev = ae_dev->priv;
-	int rst_cnt;
+	int rst_cnt = hdev->rst_stats.reset_cnt;
 	int ret;
 
-	rst_cnt = hdev->rst_stats.reset_cnt;
 	ret = client->ops->init_instance(&vport->nic);
 	if (ret)
 		return ret;
@@ -8947,7 +9200,6 @@
 
 		switch (client->type) {
 		case HNAE3_CLIENT_KNIC:
-
 			hdev->nic_client = client;
 			vport->nic.client = client;
 			ret = hclge_init_nic_client_instance(ae_dev, vport);
@@ -9087,6 +9339,7 @@
 	set_bit(HCLGE_STATE_DOWN, &hdev->state);
 	clear_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state);
 	clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
+	clear_bit(HCLGE_STATE_RST_FAIL, &hdev->state);
 	clear_bit(HCLGE_STATE_MBX_SERVICE_SCHED, &hdev->state);
 	clear_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state);
 }
@@ -9100,38 +9353,57 @@
 		del_timer_sync(&hdev->reset_timer);
 	if (hdev->service_task.work.func)
 		cancel_delayed_work_sync(&hdev->service_task);
-	if (hdev->rst_service_task.func)
-		cancel_work_sync(&hdev->rst_service_task);
-	if (hdev->mbx_service_task.func)
-		cancel_work_sync(&hdev->mbx_service_task);
 }
 
 static void hclge_flr_prepare(struct hnae3_ae_dev *ae_dev)
 {
-#define HCLGE_FLR_WAIT_MS	100
-#define HCLGE_FLR_WAIT_CNT	50
-	struct hclge_dev *hdev = ae_dev->priv;
-	int cnt = 0;
+#define HCLGE_FLR_RETRY_WAIT_MS	500
+#define HCLGE_FLR_RETRY_CNT	5
 
-	clear_bit(HNAE3_FLR_DOWN, &hdev->flr_state);
-	clear_bit(HNAE3_FLR_DONE, &hdev->flr_state);
-	set_bit(HNAE3_FLR_RESET, &hdev->default_reset_request);
-	hclge_reset_event(hdev->pdev, NULL);
+	struct hclge_dev *hdev = ae_dev->priv;
+	int retry_cnt = 0;
+	int ret;
 
-	while (!test_bit(HNAE3_FLR_DOWN, &hdev->flr_state) &&
-	       cnt++ < HCLGE_FLR_WAIT_CNT)
-		msleep(HCLGE_FLR_WAIT_MS);
+retry:
+	down(&hdev->reset_sem);
+	set_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
+	hdev->reset_type = HNAE3_FLR_RESET;
+	ret = hclge_reset_prepare(hdev);
+	if (ret) {
+		dev_err(&hdev->pdev->dev, "fail to prepare FLR, ret=%d\n",
+			ret);
+		if (hdev->reset_pending ||
+		    retry_cnt++ < HCLGE_FLR_RETRY_CNT) {
+			dev_err(&hdev->pdev->dev,
+				"reset_pending:0x%lx, retry_cnt:%d\n",
+				hdev->reset_pending, retry_cnt);
+			clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
+			up(&hdev->reset_sem);
+			msleep(HCLGE_FLR_RETRY_WAIT_MS);
+			goto retry;
+		}
+	}
 
-	if (!test_bit(HNAE3_FLR_DOWN, &hdev->flr_state))
-		dev_err(&hdev->pdev->dev,
-			"flr wait down timeout: %d\n", cnt);
+	/* disable misc vector before FLR done */
+	hclge_enable_vector(&hdev->misc_vector, false);
+	set_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state);
+	hdev->rst_stats.flr_rst_cnt++;
 }
 
 static void hclge_flr_done(struct hnae3_ae_dev *ae_dev)
 {
 	struct hclge_dev *hdev = ae_dev->priv;
+	int ret;
+
+	hclge_enable_vector(&hdev->misc_vector, true);
+
+	ret = hclge_reset_rebuild(hdev);
+	if (ret)
+		dev_err(&hdev->pdev->dev, "fail to rebuild, ret=%d\n", ret);
 
-	set_bit(HNAE3_FLR_DONE, &hdev->flr_state);
+	hdev->reset_type = HNAE3_NONE_RESET;
+	clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
+	up(&hdev->reset_sem);
 }
 
 static void hclge_clear_resetting_state(struct hclge_dev *hdev)
@@ -9146,7 +9418,7 @@
 		ret = hclge_set_vf_rst(hdev, vport->vport_id, false);
 		if (ret)
 			dev_warn(&hdev->pdev->dev,
-				 "clear vf(%d) rst failed %d!\n",
+				 "clear vf(%u) rst failed %d!\n",
 				 vport->vport_id, ret);
 	}
 }
@@ -9168,11 +9440,13 @@
 	hdev->reset_type = HNAE3_NONE_RESET;
 	hdev->reset_level = HNAE3_FUNC_RESET;
 	ae_dev->priv = hdev;
+
+	/* HW supprt 2 layer vlan */
 	hdev->mps = ETH_FRAME_LEN + ETH_FCS_LEN + 2 * VLAN_HLEN;
 
 	mutex_init(&hdev->vport_lock);
-	mutex_init(&hdev->vport_cfg_mutex);
 	spin_lock_init(&hdev->fd_rule_lock);
+	sema_init(&hdev->reset_sem, 1);
 
 	ret = hclge_pci_init(hdev);
 	if (ret) {
@@ -9306,8 +9580,6 @@
 
 	timer_setup(&hdev->reset_timer, hclge_reset_timer, 0);
 	INIT_DELAYED_WORK(&hdev->service_task, hclge_service_task);
-	INIT_WORK(&hdev->rst_service_task, hclge_reset_service_task);
-	INIT_WORK(&hdev->mbx_service_task, hclge_mailbox_service_task);
 
 	/* Setup affinity after service timer setup because add_timer_on
 	 * is called in affinity notify.
@@ -9341,6 +9613,8 @@
 	dev_info(&hdev->pdev->dev, "%s driver initialization finished.\n",
 		 HCLGE_DRIVER_NAME);
 
+	hclge_task_schedule(hdev, round_jiffies_relative(HZ));
+
 	return 0;
 
 err_mdiobus_unreg:
@@ -9363,7 +9637,220 @@
 
 static void hclge_stats_clear(struct hclge_dev *hdev)
 {
-	memset(&hdev->hw_stats, 0, sizeof(hdev->hw_stats));
+	memset(&hdev->mac_stats, 0, sizeof(hdev->mac_stats));
+}
+
+static int hclge_set_mac_spoofchk(struct hclge_dev *hdev, int vf, bool enable)
+{
+	return hclge_config_switch_param(hdev, vf, enable,
+					 HCLGE_SWITCH_ANTI_SPOOF_MASK);
+}
+
+static int hclge_set_vlan_spoofchk(struct hclge_dev *hdev, int vf, bool enable)
+{
+	return hclge_set_vlan_filter_ctrl(hdev, HCLGE_FILTER_TYPE_VF,
+					  HCLGE_FILTER_FE_NIC_INGRESS_B,
+					  enable, vf);
+}
+
+static int hclge_set_vf_spoofchk_hw(struct hclge_dev *hdev, int vf, bool enable)
+{
+	int ret;
+
+	ret = hclge_set_mac_spoofchk(hdev, vf, enable);
+	if (ret) {
+		dev_err(&hdev->pdev->dev,
+			"Set vf %d mac spoof check %s failed, ret=%d\n",
+			vf, enable ? "on" : "off", ret);
+		return ret;
+	}
+
+	ret = hclge_set_vlan_spoofchk(hdev, vf, enable);
+	if (ret)
+		dev_err(&hdev->pdev->dev,
+			"Set vf %d vlan spoof check %s failed, ret=%d\n",
+			vf, enable ? "on" : "off", ret);
+
+	return ret;
+}
+
+static int hclge_set_vf_spoofchk(struct hnae3_handle *handle, int vf,
+				 bool enable)
+{
+	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_dev *hdev = vport->back;
+	u32 new_spoofchk = enable ? 1 : 0;
+	int ret;
+
+	if (hdev->pdev->revision == 0x20)
+		return -EOPNOTSUPP;
+
+	vport = hclge_get_vf_vport(hdev, vf);
+	if (!vport)
+		return -EINVAL;
+
+	if (vport->vf_info.spoofchk == new_spoofchk)
+		return 0;
+
+	if (enable && test_bit(vport->vport_id, hdev->vf_vlan_full))
+		dev_warn(&hdev->pdev->dev,
+			 "vf %d vlan table is full, enable spoof check may cause its packet send fail\n",
+			 vf);
+	else if (enable && hclge_is_umv_space_full(vport))
+		dev_warn(&hdev->pdev->dev,
+			 "vf %d mac table is full, enable spoof check may cause its packet send fail\n",
+			 vf);
+
+	ret = hclge_set_vf_spoofchk_hw(hdev, vport->vport_id, enable);
+	if (ret)
+		return ret;
+
+	vport->vf_info.spoofchk = new_spoofchk;
+	return 0;
+}
+
+static int hclge_reset_vport_spoofchk(struct hclge_dev *hdev)
+{
+	struct hclge_vport *vport = hdev->vport;
+	int ret;
+	int i;
+
+	if (hdev->pdev->revision == 0x20)
+		return 0;
+
+	/* resume the vf spoof check state after reset */
+	for (i = 0; i < hdev->num_alloc_vport; i++) {
+		ret = hclge_set_vf_spoofchk_hw(hdev, vport->vport_id,
+					       vport->vf_info.spoofchk);
+		if (ret)
+			return ret;
+
+		vport++;
+	}
+
+	return 0;
+}
+
+static int hclge_set_vf_trust(struct hnae3_handle *handle, int vf, bool enable)
+{
+	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_dev *hdev = vport->back;
+	u32 new_trusted = enable ? 1 : 0;
+	bool en_bc_pmc;
+	int ret;
+
+	vport = hclge_get_vf_vport(hdev, vf);
+	if (!vport)
+		return -EINVAL;
+
+	if (vport->vf_info.trusted == new_trusted)
+		return 0;
+
+	/* Disable promisc mode for VF if it is not trusted any more. */
+	if (!enable && vport->vf_info.promisc_enable) {
+		en_bc_pmc = hdev->pdev->revision != 0x20;
+		ret = hclge_set_vport_promisc_mode(vport, false, false,
+						   en_bc_pmc);
+		if (ret)
+			return ret;
+		vport->vf_info.promisc_enable = 0;
+		hclge_inform_vf_promisc_info(vport);
+	}
+
+	vport->vf_info.trusted = new_trusted;
+
+	return 0;
+}
+
+static void hclge_reset_vf_rate(struct hclge_dev *hdev)
+{
+	int ret;
+	int vf;
+
+	/* reset vf rate to default value */
+	for (vf = HCLGE_VF_VPORT_START_NUM; vf < hdev->num_alloc_vport; vf++) {
+		struct hclge_vport *vport = &hdev->vport[vf];
+
+		vport->vf_info.max_tx_rate = 0;
+		ret = hclge_tm_qs_shaper_cfg(vport, vport->vf_info.max_tx_rate);
+		if (ret)
+			dev_err(&hdev->pdev->dev,
+				"vf%d failed to reset to default, ret=%d\n",
+				vf - HCLGE_VF_VPORT_START_NUM, ret);
+	}
+}
+
+static int hclge_vf_rate_param_check(struct hclge_dev *hdev, int vf,
+				     int min_tx_rate, int max_tx_rate)
+{
+	if (min_tx_rate != 0 ||
+	    max_tx_rate < 0 || max_tx_rate > hdev->hw.mac.max_speed) {
+		dev_err(&hdev->pdev->dev,
+			"min_tx_rate:%d [0], max_tx_rate:%d [0, %u]\n",
+			min_tx_rate, max_tx_rate, hdev->hw.mac.max_speed);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int hclge_set_vf_rate(struct hnae3_handle *handle, int vf,
+			     int min_tx_rate, int max_tx_rate, bool force)
+{
+	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_dev *hdev = vport->back;
+	int ret;
+
+	ret = hclge_vf_rate_param_check(hdev, vf, min_tx_rate, max_tx_rate);
+	if (ret)
+		return ret;
+
+	vport = hclge_get_vf_vport(hdev, vf);
+	if (!vport)
+		return -EINVAL;
+
+	if (!force && max_tx_rate == vport->vf_info.max_tx_rate)
+		return 0;
+
+	ret = hclge_tm_qs_shaper_cfg(vport, max_tx_rate);
+	if (ret)
+		return ret;
+
+	vport->vf_info.max_tx_rate = max_tx_rate;
+
+	return 0;
+}
+
+static int hclge_resume_vf_rate(struct hclge_dev *hdev)
+{
+	struct hnae3_handle *handle = &hdev->vport->nic;
+	struct hclge_vport *vport;
+	int ret;
+	int vf;
+
+	/* resume the vf max_tx_rate after reset */
+	for (vf = 0; vf < pci_num_vf(hdev->pdev); vf++) {
+		vport = hclge_get_vf_vport(hdev, vf);
+		if (!vport)
+			return -EINVAL;
+
+		/* zero means max rate, after reset, firmware already set it to
+		 * max rate, so just continue.
+		 */
+		if (!vport->vf_info.max_tx_rate)
+			continue;
+
+		ret = hclge_set_vf_rate(handle, vf, 0,
+					vport->vf_info.max_tx_rate, true);
+		if (ret) {
+			dev_err(&hdev->pdev->dev,
+				"vf%d failed to resume tx_rate:%u, ret=%d\n",
+				vf, vport->vf_info.max_tx_rate, ret);
+			return ret;
+		}
+	}
+
+	return 0;
 }
 
 static void hclge_reset_vport_state(struct hclge_dev *hdev)
@@ -9437,12 +9924,22 @@
 		return ret;
 	}
 
+	ret = init_mgr_tbl(hdev);
+	if (ret) {
+		dev_err(&pdev->dev,
+			"failed to reinit manager table, ret = %d\n", ret);
+		return ret;
+	}
+
 	ret = hclge_init_fd_config(hdev);
 	if (ret) {
 		dev_err(&pdev->dev, "fd table init fail, ret=%d\n", ret);
 		return ret;
 	}
 
+	/* Log and clear the hw errors those already occurred */
+	hclge_handle_all_hns_hw_errors(ae_dev);
+
 	/* Re-enable the hw error interrupts because
 	 * the interrupts get disabled on global reset.
 	 */
@@ -9465,6 +9962,13 @@
 	}
 
 	hclge_reset_vport_state(hdev);
+	ret = hclge_reset_vport_spoofchk(hdev);
+	if (ret)
+		return ret;
+
+	ret = hclge_resume_vf_rate(hdev);
+	if (ret)
+		return ret;
 
 	dev_info(&pdev->dev, "Reset done, %s driver initialization finished.\n",
 		 HCLGE_DRIVER_NAME);
@@ -9477,6 +9981,8 @@
 	struct hclge_dev *hdev = ae_dev->priv;
 	struct hclge_mac *mac = &hdev->hw.mac;
 
+	hclge_reset_vf_rate(hdev);
+	hclge_clear_vf_vlan(hdev);
 	hclge_misc_affinity_teardown(hdev);
 	hclge_state_uninit(hdev);
 
@@ -9500,7 +10006,6 @@
 	mutex_destroy(&hdev->vport_lock);
 	hclge_uninit_vport_mac_table(hdev);
 	hclge_uninit_vport_vlan_table(hdev);
-	mutex_destroy(&hdev->vport_cfg_mutex);
 	ae_dev->priv = NULL;
 }
 
@@ -9541,8 +10046,8 @@
 	u16 tc_offset[HCLGE_MAX_TC_NUM] = {0};
 	struct hclge_dev *hdev = vport->back;
 	u16 tc_size[HCLGE_MAX_TC_NUM] = {0};
-	int cur_rss_size = kinfo->rss_size;
-	int cur_tqps = kinfo->num_tqps;
+	u16 cur_rss_size = kinfo->rss_size;
+	u16 cur_tqps = kinfo->num_tqps;
 	u16 tc_valid[HCLGE_MAX_TC_NUM];
 	u16 roundup_size;
 	u32 *rss_indir;
@@ -9596,7 +10101,7 @@
 out:
 	if (!ret)
 		dev_info(&hdev->pdev->dev,
-			 "Channels changed, rss_size from %d to %d, tqps from %d to %d",
+			 "Channels changed, rss_size from %u to %u, tqps from %u to %u",
 			 cur_rss_size, kinfo->rss_size,
 			 cur_tqps, kinfo->rss_size * kinfo->num_tc);
 
@@ -9762,10 +10267,8 @@
 				    int *bd_num_list,
 				    u32 type_num)
 {
-#define HCLGE_DFX_REG_BD_NUM	4
-
 	u32 entries_per_desc, desc_index, index, offset, i;
-	struct hclge_desc desc[HCLGE_DFX_REG_BD_NUM];
+	struct hclge_desc desc[HCLGE_GET_DFX_REG_TYPE_CNT];
 	int ret;
 
 	ret = hclge_query_bd_num_cmd_send(hdev, desc);
@@ -9834,8 +10337,9 @@
 static int hclge_get_dfx_reg_len(struct hclge_dev *hdev, int *len)
 {
 	u32 dfx_reg_type_num = ARRAY_SIZE(hclge_dfx_bd_offset_list);
-	int data_len_per_desc, data_len, bd_num, i;
+	int data_len_per_desc, bd_num, i;
 	int bd_num_list[BD_LIST_MAX_NUM];
+	u32 data_len;
 	int ret;
 
 	ret = hclge_get_dfx_reg_bd_num(hdev, bd_num_list, dfx_reg_type_num);
@@ -9878,10 +10382,8 @@
 
 	buf_len = sizeof(*desc_src) * bd_num_max;
 	desc_src = kzalloc(buf_len, GFP_KERNEL);
-	if (!desc_src) {
-		dev_err(&hdev->pdev->dev, "%s kzalloc failed\n", __func__);
+	if (!desc_src)
 		return -ENOMEM;
-	}
 
 	for (i = 0; i < dfx_reg_type_num; i++) {
 		bd_num = bd_num_list[i];
@@ -10199,6 +10701,12 @@
 	.mac_connect_phy = hclge_mac_connect_phy,
 	.mac_disconnect_phy = hclge_mac_disconnect_phy,
 	.restore_vlan_table = hclge_restore_vlan_table,
+	.get_vf_config = hclge_get_vf_config,
+	.set_vf_link_state = hclge_set_vf_link_state,
+	.set_vf_spoofchk = hclge_set_vf_spoofchk,
+	.set_vf_trust = hclge_set_vf_trust,
+	.set_vf_rate = hclge_set_vf_rate,
+	.set_vf_mac = hclge_set_vf_mac,
 };
 
 static struct hnae3_ae_algo ae_algo = {
@@ -10210,6 +10718,12 @@
 {
 	pr_info("%s is initializing\n", HCLGE_NAME);
 
+	hclge_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, HCLGE_NAME);
+	if (!hclge_wq) {
+		pr_err("%s: failed to create workqueue\n", HCLGE_NAME);
+		return -ENOMEM;
+	}
+
 	hnae3_register_ae_algo(&ae_algo);
 
 	return 0;
@@ -10218,6 +10732,7 @@
 static void hclge_exit(void)
 {
 	hnae3_unregister_ae_algo(&ae_algo);
+	destroy_workqueue(hclge_wq);
 }
 module_init(hclge_init);
 module_exit(hclge_exit);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
@@ -139,9 +139,10 @@
 #define HCLGE_PHY_MDIX_STATUS_B		6
 #define HCLGE_PHY_SPEED_DUP_RESOLVE_B	11
 
+#define HCLGE_GET_DFX_REG_TYPE_CNT	4
+
 /* Factor used to calculate offset and bitmap of VF num */
 #define HCLGE_VF_NUM_PER_CMD           64
-#define HCLGE_VF_NUM_PER_BYTE          8
 
 enum HLCGE_PORT_TYPE {
 	HOST_PORT,
@@ -209,13 +210,14 @@
 	HCLGE_STATE_NIC_REGISTERED,
 	HCLGE_STATE_ROCE_REGISTERED,
 	HCLGE_STATE_SERVICE_INITED,
-	HCLGE_STATE_SERVICE_SCHED,
 	HCLGE_STATE_RST_SERVICE_SCHED,
 	HCLGE_STATE_RST_HANDLING,
 	HCLGE_STATE_MBX_SERVICE_SCHED,
 	HCLGE_STATE_MBX_HANDLING,
 	HCLGE_STATE_STATISTICS_UPDATING,
 	HCLGE_STATE_CMD_DISABLE,
+	HCLGE_STATE_LINK_UPDATING,
+	HCLGE_STATE_RST_FAIL,
 	HCLGE_STATE_MAX
 };
 
@@ -226,8 +228,6 @@
 	HCLGE_VECTOR0_EVENT_OTHER,
 };
 
-#define HCLGE_MPF_ENBALE 1
-
 enum HCLGE_MAC_SPEED {
 	HCLGE_MAC_SPEED_UNKNOWN = 0,		/* unknown */
 	HCLGE_MAC_SPEED_10M	= 10,		/* 10 Mbps */
@@ -249,6 +249,7 @@
 #define QUERY_ACTIVE_SPEED	1
 
 struct hclge_mac {
+	u8 mac_id;
 	u8 phy_addr;
 	u8 flag;
 	u8 media_type;	/* port media type, e.g. fibre/copper/backplane */
@@ -258,6 +259,7 @@
 	u8 support_autoneg;
 	u8 speed_type;	/* 0: sfp speed, 1: active speed */
 	u32 speed;
+	u32 max_speed;
 	u32 speed_ability; /* speed ability supported by current media */
 	u32 module_type; /* sub media type, e.g. kr/cr/sr/lr */
 	u32 fec_mode; /* active fec mode */
@@ -456,11 +458,7 @@
 	u64 mac_rx_ctrl_pkt_num;
 };
 
-#define HCLGE_STATS_TIMER_INTERVAL	(60 * 5)
-struct hclge_hw_stats {
-	struct hclge_mac_stats      mac_stats;
-	u32 stats_timer;
-};
+#define HCLGE_STATS_TIMER_INTERVAL	300UL
 
 struct hclge_vlan_type_cfg {
 	u16 rx_ot_fst_vlan_type;
@@ -551,7 +549,7 @@
 
 /* assigned by firmware, the real filter number for each pf may be less */
 #define MAX_FD_FILTER_NUM	4096
-#define HCLGE_FD_ARFS_EXPIRE_TIMER_INTERVAL	5
+#define HCLGE_ARFS_EXPIRE_INTERVAL	5UL
 
 enum HCLGE_FD_ACTIVE_RULE_TYPE {
 	HCLGE_FD_RULE_NONE,
@@ -655,7 +653,6 @@
 	u32 hw_reset_done_cnt;	/* the number of HW reset has completed */
 	u32 pf_rst_cnt;		/* the number of PF reset */
 	u32 flr_rst_cnt;	/* the number of FLR */
-	u32 core_rst_cnt;	/* the number of CORE reset */
 	u32 global_rst_cnt;	/* the number of GLOBAL */
 	u32 imp_rst_cnt;	/* the number of IMP reset */
 	u32 reset_cnt;		/* the number of reset */
@@ -715,7 +712,7 @@
 	struct hnae3_ae_dev *ae_dev;
 	struct hclge_hw hw;
 	struct hclge_misc_vector misc_vector;
-	struct hclge_hw_stats hw_stats;
+	struct hclge_mac_stats mac_stats;
 	unsigned long state;
 	unsigned long flr_state;
 	unsigned long last_reset_time;
@@ -726,6 +723,7 @@
 	unsigned long reset_request;	/* reset has been requested */
 	unsigned long reset_pending;	/* client rst is pending to be served */
 	struct hclge_rst_stats rst_stats;
+	struct semaphore reset_sem;	/* protect reset process */
 	u32 fw_version;
 	u16 num_vmdq_vport;		/* Num vmdq vport this PF has set up */
 	u16 num_tqps;			/* Num task queue pairs of this PF */
@@ -777,8 +775,6 @@
 	unsigned long service_timer_previous;
 	struct timer_list reset_timer;
 	struct delayed_work service_task;
-	struct work_struct rst_service_task;
-	struct work_struct mbx_service_task;
 
 	bool cur_promisc;
 	int num_alloc_vfs;	/* Actual number of VFs allocated */
@@ -814,7 +810,8 @@
 	struct hlist_head fd_rule_list;
 	spinlock_t fd_rule_lock; /* protect fd_rule_list and fd_bmap */
 	u16 hclge_fd_rule_num;
-	u16 fd_arfs_expire_timer;
+	unsigned long serv_processed_cnt;
+	unsigned long last_serv_processed;
 	unsigned long fd_bmap[BITS_TO_LONGS(MAX_FD_FILTER_NUM)];
 	enum HCLGE_FD_ACTIVE_RULE_TYPE fd_active_type;
 	u8 fd_en;
@@ -828,8 +825,6 @@
 	u16 share_umv_size;
 	struct mutex umv_mutex; /* protect share_umv_size */
 
-	struct mutex vport_cfg_mutex;   /* Protect stored vf table */
-
 	DECLARE_KFIFO(mac_tnl_log, struct hclge_mac_tnl_stats,
 		      HCLGE_MAC_TNL_LOG_SIZE);
 
@@ -886,6 +881,15 @@
 	struct hclge_vlan_info vlan_info;
 };
 
+struct hclge_vf_info {
+	int link_state;
+	u8 mac[ETH_ALEN];
+	u32 spoofchk;
+	u32 max_tx_rate;
+	u32 trusted;
+	u16 promisc_enable;
+};
+
 struct hclge_vport {
 	u16 alloc_tqps;	/* Allocated Tx/Rx queues */
 
@@ -917,15 +921,15 @@
 	unsigned long state;
 	unsigned long last_active_jiffies;
 	u32 mps; /* Max packet size */
+	struct hclge_vf_info vf_info;
 
 	struct list_head uc_mac_list;   /* Store VF unicast table */
 	struct list_head mc_mac_list;   /* Store VF multicast table */
 	struct list_head vlan_list;     /* Store VF vlan table */
 };
 
-void hclge_promisc_param_init(struct hclge_promisc_param *param, bool en_uc,
-			      bool en_mc, bool en_bc, int vport_id);
-
+int hclge_set_vport_promisc_mode(struct hclge_vport *vport, bool en_uc_pmc,
+				 bool en_mc_pmc, bool en_bc_pmc);
 int hclge_add_uc_addr_common(struct hclge_vport *vport,
 			     const unsigned char *addr);
 int hclge_rm_uc_addr_common(struct hclge_vport *vport,
@@ -994,4 +998,6 @@
 				struct hclge_desc *desc);
 void hclge_report_hw_error(struct hclge_dev *hdev,
 			   enum hnae3_hw_error_type type);
+void hclge_inform_vf_promisc_info(struct hclge_vport *vport);
+void hclge_dbg_dump_rst_info(struct hclge_dev *hdev);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -26,7 +26,7 @@
 
 	if (resp_data_len > HCLGE_MBX_MAX_RESP_DATA_SIZE) {
 		dev_err(&hdev->pdev->dev,
-			"PF fail to gen resp to VF len %d exceeds max len %d\n",
+			"PF fail to gen resp to VF len %u exceeds max len %u\n",
 			resp_data_len,
 			HCLGE_MBX_MAX_RESP_DATA_SIZE);
 		/* If resp_data_len is too long, set the value to max length
@@ -86,10 +86,12 @@
 int hclge_inform_reset_assert_to_vf(struct hclge_vport *vport)
 {
 	struct hclge_dev *hdev = vport->back;
-	enum hnae3_reset_type reset_type;
+	u16 reset_type;
 	u8 msg_data[2];
 	u8 dest_vfid;
 
+	BUILD_BUG_ON(HNAE3_MAX_RESET > U16_MAX);
+
 	dest_vfid = (u8)vport->vport_id;
 
 	if (hdev->reset_type == HNAE3_FUNC_RESET)
@@ -205,12 +207,38 @@
 static int hclge_set_vf_promisc_mode(struct hclge_vport *vport,
 				     struct hclge_mbx_vf_to_pf_cmd *req)
 {
-	bool en_bc = req->msg[1] ? true : false;
-	struct hclge_promisc_param param;
+#define HCLGE_MBX_BC_INDEX	1
+#define HCLGE_MBX_UC_INDEX	2
+#define HCLGE_MBX_MC_INDEX	3
+
+	bool en_bc = req->msg[HCLGE_MBX_BC_INDEX] ? true : false;
+	bool en_uc = req->msg[HCLGE_MBX_UC_INDEX] ? true : false;
+	bool en_mc = req->msg[HCLGE_MBX_MC_INDEX] ? true : false;
+	int ret;
+
+	if (!vport->vf_info.trusted) {
+		en_uc = false;
+		en_mc = false;
+	}
+
+	ret = hclge_set_vport_promisc_mode(vport, en_uc, en_mc, en_bc);
+	if (req->mbx_need_resp)
+		hclge_gen_resp_to_vf(vport, req, ret, NULL, 0);
+
+	vport->vf_info.promisc_enable = (en_uc || en_mc) ? 1 : 0;
+
+	return ret;
+}
+
+void hclge_inform_vf_promisc_info(struct hclge_vport *vport)
+{
+	u8 dest_vfid = (u8)vport->vport_id;
+	u8 msg_data[2];
 
-	/* vf is not allowed to enable unicast/multicast broadcast */
-	hclge_promisc_param_init(&param, false, false, en_bc, vport->vport_id);
-	return hclge_cmd_set_promisc_mode(vport->back, &param);
+	memcpy(&msg_data[0], &vport->vf_info.promisc_enable, sizeof(u16));
+
+	hclge_send_mbx_msg(vport, msg_data, sizeof(msg_data),
+			   HCLGE_MBX_PUSH_PROMISC_INFO, dest_vfid);
 }
 
 static int hclge_set_vf_uc_mac_addr(struct hclge_vport *vport,
@@ -223,6 +251,20 @@
 	if (mbx_req->msg[1] == HCLGE_MBX_MAC_VLAN_UC_MODIFY) {
 		const u8 *old_addr = (const u8 *)(&mbx_req->msg[8]);
 
+		/* If VF MAC has been configured by the host then it
+		 * cannot be overridden by the MAC specified by the VM.
+		 */
+		if (!is_zero_ether_addr(vport->vf_info.mac) &&
+		    !ether_addr_equal(mac_addr, vport->vf_info.mac)) {
+			status = -EPERM;
+			goto out;
+		}
+
+		if (!is_valid_ether_addr(mac_addr)) {
+			status = -EINVAL;
+			goto out;
+		}
+
 		hclge_rm_uc_addr_common(vport, old_addr);
 		status = hclge_add_uc_addr_common(vport, mac_addr);
 		if (status) {
@@ -245,11 +287,12 @@
 						 false, HCLGE_MAC_ADDR_UC);
 	} else {
 		dev_err(&hdev->pdev->dev,
-			"failed to set unicast mac addr, unknown subcode %d\n",
+			"failed to set unicast mac addr, unknown subcode %u\n",
 			mbx_req->msg[1]);
 		return -EIO;
 	}
 
+out:
 	if (mbx_req->mbx_need_resp & HCLGE_MBX_NEED_RESP_BIT)
 		hclge_gen_resp_to_vf(vport, mbx_req, status, NULL, 0);
 
@@ -278,7 +321,7 @@
 						 false, HCLGE_MAC_ADDR_MC);
 	} else {
 		dev_err(&hdev->pdev->dev,
-			"failed to set mcast mac addr, unknown subcode %d\n",
+			"failed to set mcast mac addr, unknown subcode %u\n",
 			mbx_req->msg[1]);
 		return -EIO;
 	}
@@ -324,6 +367,9 @@
 		proto =  msg_cmd->proto;
 		status = hclge_set_vlan_filter(handle, cpu_to_be16(proto),
 					       vlan, is_kill);
+		if (mbx_req->mbx_need_resp)
+			return hclge_gen_resp_to_vf(vport, mbx_req, status,
+						    NULL, 0);
 	} else if (msg_cmd->subcode == HCLGE_MBX_VLAN_RX_OFF_CFG) {
 		struct hnae3_handle *handle = &vport->nic;
 		bool en = msg_cmd->is_kill ? true : false;
@@ -398,6 +444,13 @@
 				    HCLGE_TQPS_RSS_INFO_LEN);
 }
 
+static int hclge_get_vf_mac_addr(struct hclge_vport *vport,
+				 struct hclge_mbx_vf_to_pf_cmd *mbx_req)
+{
+	return hclge_gen_resp_to_vf(vport, mbx_req, 0, vport->vf_info.mac,
+				    ETH_ALEN);
+}
+
 static int hclge_get_vf_queue_depth(struct hclge_vport *vport,
 				    struct hclge_mbx_vf_to_pf_cmd *mbx_req,
 				    bool gen_resp)
@@ -428,6 +481,9 @@
 static int hclge_get_link_info(struct hclge_vport *vport,
 			       struct hclge_mbx_vf_to_pf_cmd *mbx_req)
 {
+#define HCLGE_VF_LINK_STATE_UP		1U
+#define HCLGE_VF_LINK_STATE_DOWN	0U
+
 	struct hclge_dev *hdev = vport->back;
 	u16 link_status;
 	u8 msg_data[8];
@@ -435,7 +491,19 @@
 	u16 duplex;
 
 	/* mac.link can only be 0 or 1 */
-	link_status = (u16)hdev->hw.mac.link;
+	switch (vport->vf_info.link_state) {
+	case IFLA_VF_LINK_STATE_ENABLE:
+		link_status = HCLGE_VF_LINK_STATE_UP;
+		break;
+	case IFLA_VF_LINK_STATE_DISABLE:
+		link_status = HCLGE_VF_LINK_STATE_DOWN;
+		break;
+	case IFLA_VF_LINK_STATE_AUTO:
+	default:
+		link_status = (u16)hdev->hw.mac.link;
+		break;
+	}
+
 	duplex = hdev->hw.mac.duplex;
 	memcpy(&msg_data[0], &link_status, sizeof(u16));
 	memcpy(&msg_data[2], &hdev->hw.mac.speed, sizeof(u32));
@@ -489,7 +557,7 @@
 	struct hclge_dev *hdev = vport->back;
 	int ret;
 
-	dev_warn(&hdev->pdev->dev, "PF received VF reset request from VF %d!",
+	dev_warn(&hdev->pdev->dev, "PF received VF reset request from VF %u!",
 		 vport->vport_id);
 
 	ret = hclge_func_reset_cmd(hdev, vport->vport_id);
@@ -524,7 +592,8 @@
 	qid_in_pf = hclge_covert_handle_qid_global(&vport->nic, queue_id);
 	memcpy(resp_data, &qid_in_pf, sizeof(qid_in_pf));
 
-	return hclge_gen_resp_to_vf(vport, mbx_req, 0, resp_data, 2);
+	return hclge_gen_resp_to_vf(vport, mbx_req, 0, resp_data,
+				    sizeof(resp_data));
 }
 
 static int hclge_get_rss_key(struct hclge_vport *vport,
@@ -568,7 +637,6 @@
 #define LINK_STATUS_OFFSET	1
 #define LINK_FAIL_CODE_OFFSET	2
 
-	clear_bit(HCLGE_STATE_SERVICE_SCHED, &hdev->state);
 	hclge_task_schedule(hdev, 0);
 
 	if (!req->msg[LINK_STATUS_OFFSET])
@@ -614,7 +682,7 @@
 		flag = le16_to_cpu(crq->desc[crq->next_to_use].flag);
 		if (unlikely(!hnae3_get_bit(flag, HCLGE_CMDQ_RX_OUTVLD_B))) {
 			dev_warn(&hdev->pdev->dev,
-				 "dropped invalid mailbox message, code = %d\n",
+				 "dropped invalid mailbox message, code = %u\n",
 				 req->msg[0]);
 
 			/* dropping/not processing this invalid message */
@@ -731,13 +799,12 @@
 			hclge_get_link_mode(vport, req);
 			break;
 		case HCLGE_MBX_GET_VF_FLR_STATUS:
-			mutex_lock(&hdev->vport_cfg_mutex);
+		case HCLGE_MBX_VF_UNINIT:
 			hclge_rm_vport_all_mac_table(vport, true,
 						     HCLGE_MAC_ADDR_UC);
 			hclge_rm_vport_all_mac_table(vport, true,
 						     HCLGE_MAC_ADDR_MC);
 			hclge_rm_vport_all_vlan_table(vport, true);
-			mutex_unlock(&hdev->vport_cfg_mutex);
 			break;
 		case HCLGE_MBX_GET_MEDIA_TYPE:
 			ret = hclge_get_vf_media_type(vport, req);
@@ -749,12 +816,19 @@
 		case HCLGE_MBX_PUSH_LINK_STATUS:
 			hclge_handle_link_change_event(hdev, req);
 			break;
+		case HCLGE_MBX_GET_MAC_ADDR:
+			ret = hclge_get_vf_mac_addr(vport, req);
+			if (ret)
+				dev_err(&hdev->pdev->dev,
+					"PF failed(%d) to get MAC for VF\n",
+					ret);
+			break;
 		case HCLGE_MBX_NCSI_ERROR:
 			hclge_handle_ncsi_error(hdev);
 			break;
 		default:
 			dev_err(&hdev->pdev->dev,
-				"un-supported mailbox message, code = %d\n",
+				"un-supported mailbox message, code = %u\n",
 				req->msg[0]);
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
@@ -134,7 +134,7 @@
 			 "no phy device is connected to mdio bus\n");
 		return 0;
 	} else if (hdev->hw.mac.phy_addr >= PHY_MAX_ADDR) {
-		dev_err(&hdev->pdev->dev, "phy_addr(%d) is too large.\n",
+		dev_err(&hdev->pdev->dev, "phy_addr(%u) is too large.\n",
 			hdev->hw.mac.phy_addr);
 		return -EINVAL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
@@ -46,7 +46,7 @@
 #define DIVISOR_CLK		(1000 * 8)
 #define DIVISOR_IR_B_126	(126 * DIVISOR_CLK)
 
-	const u16 tick_array[HCLGE_SHAPER_LVL_CNT] = {
+	static const u16 tick_array[HCLGE_SHAPER_LVL_CNT] = {
 		6 * 256,        /* Prioriy level */
 		6 * 32,         /* Prioriy group level */
 		6 * 8,          /* Port level */
@@ -511,6 +511,49 @@
 	return hclge_cmd_send(&hdev->hw, &desc, 1);
 }
 
+int hclge_tm_qs_shaper_cfg(struct hclge_vport *vport, int max_tx_rate)
+{
+	struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
+	struct hclge_qs_shapping_cmd *shap_cfg_cmd;
+	struct hclge_dev *hdev = vport->back;
+	struct hclge_desc desc;
+	u8 ir_b, ir_u, ir_s;
+	u32 shaper_para;
+	int ret, i;
+
+	if (!max_tx_rate)
+		max_tx_rate = HCLGE_ETHER_MAX_RATE;
+
+	ret = hclge_shaper_para_calc(max_tx_rate, HCLGE_SHAPER_LVL_QSET,
+				     &ir_b, &ir_u, &ir_s);
+	if (ret)
+		return ret;
+
+	shaper_para = hclge_tm_get_shapping_para(ir_b, ir_u, ir_s,
+						 HCLGE_SHAPER_BS_U_DEF,
+						 HCLGE_SHAPER_BS_S_DEF);
+
+	for (i = 0; i < kinfo->num_tc; i++) {
+		hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_QCN_SHAPPING_CFG,
+					   false);
+
+		shap_cfg_cmd = (struct hclge_qs_shapping_cmd *)desc.data;
+		shap_cfg_cmd->qs_id = cpu_to_le16(vport->qs_offset + i);
+		shap_cfg_cmd->qs_shapping_para = cpu_to_le32(shaper_para);
+
+		ret = hclge_cmd_send(&hdev->hw, &desc, 1);
+		if (ret) {
+			dev_err(&hdev->pdev->dev,
+				"vf%u, qs%u failed to set tx_rate:%d, ret=%d\n",
+				vport->vport_id, shap_cfg_cmd->qs_id,
+				max_tx_rate, ret);
+			return ret;
+		}
+	}
+
+	return 0;
+}
+
 static void hclge_tm_vport_tc_info_update(struct hclge_vport *vport)
 {
 	struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
@@ -523,7 +566,7 @@
 	 */
 	kinfo->num_tc = vport->vport_id ? 1 :
 			min_t(u16, vport->alloc_tqps, hdev->tm_info.num_tc);
-	vport->qs_offset = (vport->vport_id ? hdev->tm_info.num_tc : 0) +
+	vport->qs_offset = (vport->vport_id ? HNAE3_MAX_TC : 0) +
 				(vport->vport_id ? (vport->vport_id - 1) : 0);
 
 	max_rss_size = min_t(u16, hdev->rss_size_max,
@@ -532,7 +575,7 @@
 	/* Set to user value, no larger than max_rss_size. */
 	if (kinfo->req_rss_size != kinfo->rss_size && kinfo->req_rss_size &&
 	    kinfo->req_rss_size <= max_rss_size) {
-		dev_info(&hdev->pdev->dev, "rss changes from %d to %d\n",
+		dev_info(&hdev->pdev->dev, "rss changes from %u to %u\n",
 			 kinfo->rss_size, kinfo->req_rss_size);
 		kinfo->rss_size = kinfo->req_rss_size;
 	} else if (kinfo->rss_size > max_rss_size ||
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
@@ -96,6 +96,12 @@
 	__le32 pg_shapping_para;
 };
 
+struct hclge_qs_shapping_cmd {
+	__le16 qs_id;
+	u8 rsvd[2];
+	__le32 qs_shapping_para;
+};
+
 #define HCLGE_BP_GRP_NUM		32
 #define HCLGE_BP_SUB_GRP_ID_S		0
 #define HCLGE_BP_SUB_GRP_ID_M		GENMASK(4, 0)
@@ -154,4 +160,6 @@
 int hclge_pause_addr_cfg(struct hclge_dev *hdev, const u8 *mac_addr);
 int hclge_pfc_rx_stats_get(struct hclge_dev *hdev, u64 *stats);
 int hclge_pfc_tx_stats_get(struct hclge_dev *hdev, u64 *stats);
+int hclge_tm_qs_shaper_cfg(struct hclge_vport *vport, int max_tx_rate);
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c
@@ -50,7 +50,7 @@
 	rmb(); /* Make sure head is ready before touch any data */
 
 	if (!hclgevf_is_valid_csq_clean_head(csq, head)) {
-		dev_warn(&hdev->pdev->dev, "wrong cmd head (%d, %d-%d)\n", head,
+		dev_warn(&hdev->pdev->dev, "wrong cmd head (%u, %d-%d)\n", head,
 			 csq->next_to_use, csq->next_to_clean);
 		dev_warn(&hdev->pdev->dev,
 			 "Disabling any further commands to IMP firmware\n");
@@ -92,9 +92,9 @@
 	u32 reg_val;
 
 	if (ring->flag == HCLGEVF_TYPE_CSQ) {
-		reg_val = (u32)ring->desc_dma_addr;
+		reg_val = lower_32_bits(ring->desc_dma_addr);
 		hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_BASEADDR_L_REG, reg_val);
-		reg_val = (u32)((ring->desc_dma_addr >> 31) >> 1);
+		reg_val = upper_32_bits(ring->desc_dma_addr);
 		hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_BASEADDR_H_REG, reg_val);
 
 		reg_val = hclgevf_read_dev(hw, HCLGEVF_NIC_CSQ_DEPTH_REG);
@@ -105,9 +105,9 @@
 		hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_HEAD_REG, 0);
 		hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_TAIL_REG, 0);
 	} else {
-		reg_val = (u32)ring->desc_dma_addr;
+		reg_val = lower_32_bits(ring->desc_dma_addr);
 		hclgevf_write_dev(hw, HCLGEVF_NIC_CRQ_BASEADDR_L_REG, reg_val);
-		reg_val = (u32)((ring->desc_dma_addr >> 31) >> 1);
+		reg_val = upper_32_bits(ring->desc_dma_addr);
 		hclgevf_write_dev(hw, HCLGEVF_NIC_CRQ_BASEADDR_H_REG, reg_val);
 
 		reg_val = (ring->desc_num >> HCLGEVF_NIC_CMQ_DESC_NUM_S);
@@ -443,7 +443,7 @@
 {
 	spin_lock_bh(&hdev->hw.cmq.csq.lock);
 	spin_lock(&hdev->hw.cmq.crq.lock);
-	clear_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state);
+	set_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state);
 	hclgevf_cmd_uninit_regs(&hdev->hw);
 	spin_unlock(&hdev->hw.cmq.crq.lock);
 	spin_unlock_bh(&hdev->hw.cmq.csq.lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -16,6 +16,8 @@
 static int hclgevf_reset_hdev(struct hclgevf_dev *hdev);
 static struct hnae3_ae_algo ae_algovf;
 
+static struct workqueue_struct *hclgevf_wq;
+
 static const struct pci_device_id ae_algovf_pci_tbl[] = {
 	{PCI_VDEVICE(HUAWEI, HNAE3_DEV_ID_100G_VF), 0},
 	{PCI_VDEVICE(HUAWEI, HNAE3_DEV_ID_100G_RDMA_DCB_PFC_VF), 0},
@@ -440,6 +442,9 @@
 	struct hnae3_client *rclient;
 	struct hnae3_client *client;
 
+	if (test_and_set_bit(HCLGEVF_STATE_LINK_UPDATING, &hdev->state))
+		return;
+
 	client = handle->client;
 	rclient = hdev->roce_client;
 
@@ -452,6 +457,8 @@
 			rclient->ops->link_status_change(rhandle, !!link_state);
 		hdev->hw.mac.link = link_state;
 	}
+
+	clear_bit(HCLGEVF_STATE_LINK_UPDATING, &hdev->state);
 }
 
 static void hclgevf_update_link_mode(struct hclgevf_dev *hdev)
@@ -1113,6 +1120,7 @@
 }
 
 static int hclgevf_cmd_set_promisc_mode(struct hclgevf_dev *hdev,
+					bool en_uc_pmc, bool en_mc_pmc,
 					bool en_bc_pmc)
 {
 	struct hclge_mbx_vf_to_pf_cmd *req;
@@ -1120,10 +1128,11 @@
 	int ret;
 
 	req = (struct hclge_mbx_vf_to_pf_cmd *)desc.data;
-
 	hclgevf_cmd_setup_basic_desc(&desc, HCLGEVF_OPC_MBX_VF_TO_PF, false);
 	req->msg[0] = HCLGE_MBX_SET_PROMISC_MODE;
 	req->msg[1] = en_bc_pmc ? 1 : 0;
+	req->msg[2] = en_uc_pmc ? 1 : 0;
+	req->msg[3] = en_mc_pmc ? 1 : 0;
 
 	ret = hclgevf_cmd_send(&hdev->hw, &desc, 1);
 	if (ret)
@@ -1133,9 +1142,17 @@
 	return ret;
 }
 
-static int hclgevf_set_promisc_mode(struct hclgevf_dev *hdev, bool en_bc_pmc)
+static int hclgevf_set_promisc_mode(struct hnae3_handle *handle, bool en_uc_pmc,
+				    bool en_mc_pmc)
 {
-	return hclgevf_cmd_set_promisc_mode(hdev, en_bc_pmc);
+	struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
+	struct pci_dev *pdev = hdev->pdev;
+	bool en_bc_pmc;
+
+	en_bc_pmc = pdev->revision != 0x20;
+
+	return hclgevf_cmd_set_promisc_mode(hdev, en_uc_pmc, en_mc_pmc,
+					    en_bc_pmc);
 }
 
 static int hclgevf_tqp_enable(struct hclgevf_dev *hdev, unsigned int tqp_id,
@@ -1174,11 +1191,37 @@
 	}
 }
 
+static int hclgevf_get_host_mac_addr(struct hclgevf_dev *hdev, u8 *p)
+{
+	u8 host_mac[ETH_ALEN];
+	int status;
+
+	status = hclgevf_send_mbx_msg(hdev, HCLGE_MBX_GET_MAC_ADDR, 0, NULL, 0,
+				      true, host_mac, ETH_ALEN);
+	if (status) {
+		dev_err(&hdev->pdev->dev,
+			"fail to get VF MAC from host %d", status);
+		return status;
+	}
+
+	ether_addr_copy(p, host_mac);
+
+	return 0;
+}
+
 static void hclgevf_get_mac_addr(struct hnae3_handle *handle, u8 *p)
 {
 	struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
+	u8 host_mac_addr[ETH_ALEN];
 
-	ether_addr_copy(p, hdev->hw.mac.mac_addr);
+	if (hclgevf_get_host_mac_addr(hdev, host_mac_addr))
+		return;
+
+	hdev->has_pf_mac = !is_zero_ether_addr(host_mac_addr);
+	if (hdev->has_pf_mac)
+		ether_addr_copy(p, host_mac_addr);
+	else
+		ether_addr_copy(p, hdev->hw.mac.mac_addr);
 }
 
 static int hclgevf_set_mac_addr(struct hnae3_handle *handle, void *p,
@@ -1273,14 +1316,13 @@
 	msg_data[0] = is_kill;
 	memcpy(&msg_data[1], &vlan_id, sizeof(vlan_id));
 	memcpy(&msg_data[3], &proto, sizeof(proto));
-	ret = hclgevf_send_mbx_msg(hdev, HCLGE_MBX_SET_VLAN,
-				   HCLGE_MBX_VLAN_FILTER, msg_data,
-				   HCLGEVF_VLAN_MBX_MSG_LEN, false, NULL, 0);
-
 	/* when remove hw vlan filter failed, record the vlan id,
 	 * and try to remove it from hw later, to be consistence
 	 * with stack.
 	 */
+	ret = hclgevf_send_mbx_msg(hdev, HCLGE_MBX_SET_VLAN,
+				   HCLGE_MBX_VLAN_FILTER, msg_data,
+				   HCLGEVF_VLAN_MBX_MSG_LEN, true, NULL, 0);
 	if (is_kill && ret)
 		set_bit(vlan_id, hdev->vlan_del_fail_bmap);
 
@@ -1368,32 +1410,6 @@
 	return ret;
 }
 
-static void hclgevf_flr_done(struct hnae3_ae_dev *ae_dev)
-{
-	struct hclgevf_dev *hdev = ae_dev->priv;
-
-	set_bit(HNAE3_FLR_DONE, &hdev->flr_state);
-}
-
-static int hclgevf_flr_poll_timeout(struct hclgevf_dev *hdev,
-				    unsigned long delay_us,
-				    unsigned long wait_cnt)
-{
-	unsigned long cnt = 0;
-
-	while (!test_bit(HNAE3_FLR_DONE, &hdev->flr_state) &&
-	       cnt++ < wait_cnt)
-		usleep_range(delay_us, delay_us * 2);
-
-	if (!test_bit(HNAE3_FLR_DONE, &hdev->flr_state)) {
-		dev_err(&hdev->pdev->dev,
-			"flr wait timeout\n");
-		return -ETIMEDOUT;
-	}
-
-	return 0;
-}
-
 static int hclgevf_reset_wait(struct hclgevf_dev *hdev)
 {
 #define HCLGEVF_RESET_WAIT_US	20000
@@ -1404,11 +1420,7 @@
 	u32 val;
 	int ret;
 
-	if (hdev->reset_type == HNAE3_FLR_RESET)
-		return hclgevf_flr_poll_timeout(hdev,
-						HCLGEVF_RESET_WAIT_US,
-						HCLGEVF_RESET_WAIT_CNT);
-	else if (hdev->reset_type == HNAE3_VF_RESET)
+	if (hdev->reset_type == HNAE3_VF_RESET)
 		ret = readl_poll_timeout(hdev->hw.io_base +
 					 HCLGEVF_VF_RST_ING, val,
 					 !(val & HCLGEVF_VF_RST_ING_BIT),
@@ -1480,7 +1492,8 @@
 	/* clear handshake status with IMP */
 	hclgevf_reset_handshake(hdev, false);
 
-	return 0;
+	/* bring up the nic to enable TX/RX again */
+	return hclgevf_notify_client(hdev, HNAE3_UP_CLIENT);
 }
 
 static int hclgevf_reset_prepare_wait(struct hclgevf_dev *hdev)
@@ -1489,18 +1502,10 @@
 
 	int ret = 0;
 
-	switch (hdev->reset_type) {
-	case HNAE3_VF_FUNC_RESET:
+	if (hdev->reset_type == HNAE3_VF_FUNC_RESET) {
 		ret = hclgevf_send_mbx_msg(hdev, HCLGE_MBX_RESET, 0, NULL,
 					   0, true, NULL, sizeof(u8));
 		hdev->rst_stats.vf_func_rst_cnt++;
-		break;
-	case HNAE3_FLR_RESET:
-		set_bit(HNAE3_FLR_DOWN, &hdev->flr_state);
-		hdev->rst_stats.flr_rst_cnt++;
-		break;
-	default:
-		break;
 	}
 
 	set_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state);
@@ -1513,12 +1518,39 @@
 	return ret;
 }
 
+static void hclgevf_dump_rst_info(struct hclgevf_dev *hdev)
+{
+	dev_info(&hdev->pdev->dev, "VF function reset count: %u\n",
+		 hdev->rst_stats.vf_func_rst_cnt);
+	dev_info(&hdev->pdev->dev, "FLR reset count: %u\n",
+		 hdev->rst_stats.flr_rst_cnt);
+	dev_info(&hdev->pdev->dev, "VF reset count: %u\n",
+		 hdev->rst_stats.vf_rst_cnt);
+	dev_info(&hdev->pdev->dev, "reset done count: %u\n",
+		 hdev->rst_stats.rst_done_cnt);
+	dev_info(&hdev->pdev->dev, "HW reset done count: %u\n",
+		 hdev->rst_stats.hw_rst_done_cnt);
+	dev_info(&hdev->pdev->dev, "reset count: %u\n",
+		 hdev->rst_stats.rst_cnt);
+	dev_info(&hdev->pdev->dev, "reset fail count: %u\n",
+		 hdev->rst_stats.rst_fail_cnt);
+	dev_info(&hdev->pdev->dev, "vector0 interrupt enable status: 0x%x\n",
+		 hclgevf_read_dev(&hdev->hw, HCLGEVF_MISC_VECTOR_REG_BASE));
+	dev_info(&hdev->pdev->dev, "vector0 interrupt status: 0x%x\n",
+		 hclgevf_read_dev(&hdev->hw, HCLGEVF_VECTOR0_CMDQ_STAT_REG));
+	dev_info(&hdev->pdev->dev, "handshake status: 0x%x\n",
+		 hclgevf_read_dev(&hdev->hw, HCLGEVF_CMDQ_TX_DEPTH_REG));
+	dev_info(&hdev->pdev->dev, "function reset status: 0x%x\n",
+		 hclgevf_read_dev(&hdev->hw, HCLGEVF_RST_ING));
+	dev_info(&hdev->pdev->dev, "hdev state: 0x%lx\n", hdev->state);
+}
+
 static void hclgevf_reset_err_handle(struct hclgevf_dev *hdev)
 {
 	/* recover handshake status with IMP when reset fail */
 	hclgevf_reset_handshake(hdev, true);
 	hdev->rst_stats.rst_fail_cnt++;
-	dev_err(&hdev->pdev->dev, "failed to reset VF(%d)\n",
+	dev_err(&hdev->pdev->dev, "failed to reset VF(%u)\n",
 		hdev->rst_stats.rst_fail_cnt);
 
 	if (hdev->rst_stats.rst_fail_cnt < HCLGEVF_RESET_MAX_FAIL_CNT)
@@ -1527,10 +1559,13 @@
 	if (hclgevf_is_reset_pending(hdev)) {
 		set_bit(HCLGEVF_RESET_PENDING, &hdev->reset_state);
 		hclgevf_reset_task_schedule(hdev);
+	} else {
+		set_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state);
+		hclgevf_dump_rst_info(hdev);
 	}
 }
 
-static int hclgevf_reset(struct hclgevf_dev *hdev)
+static int hclgevf_reset_prepare(struct hclgevf_dev *hdev)
 {
 	struct hnae3_ae_dev *ae_dev = pci_get_drvdata(hdev->pdev);
 	int ret;
@@ -1540,61 +1575,64 @@
 	 */
 	ae_dev->reset_type = hdev->reset_type;
 	hdev->rst_stats.rst_cnt++;
-	rtnl_lock();
 
+	rtnl_lock();
 	/* bring down the nic to stop any ongoing TX/RX */
 	ret = hclgevf_notify_client(hdev, HNAE3_DOWN_CLIENT);
-	if (ret)
-		goto err_reset_lock;
-
 	rtnl_unlock();
-
-	ret = hclgevf_reset_prepare_wait(hdev);
 	if (ret)
-		goto err_reset;
+		return ret;
 
-	/* check if VF could successfully fetch the hardware reset completion
-	 * status from the hardware
-	 */
-	ret = hclgevf_reset_wait(hdev);
-	if (ret) {
-		/* can't do much in this situation, will disable VF */
-		dev_err(&hdev->pdev->dev,
-			"VF failed(=%d) to fetch H/W reset completion status\n",
-			ret);
-		goto err_reset;
-	}
+	return hclgevf_reset_prepare_wait(hdev);
+}
+
+static int hclgevf_reset_rebuild(struct hclgevf_dev *hdev)
+{
+	struct hnae3_ae_dev *ae_dev = pci_get_drvdata(hdev->pdev);
+	int ret;
 
 	hdev->rst_stats.hw_rst_done_cnt++;
 
 	rtnl_lock();
-
 	/* now, re-initialize the nic client and ae device */
 	ret = hclgevf_reset_stack(hdev);
+	rtnl_unlock();
 	if (ret) {
 		dev_err(&hdev->pdev->dev, "failed to reset VF stack\n");
-		goto err_reset_lock;
+		return ret;
 	}
 
-	/* bring up the nic to enable TX/RX again */
-	ret = hclgevf_notify_client(hdev, HNAE3_UP_CLIENT);
-	if (ret)
-		goto err_reset_lock;
-
-	rtnl_unlock();
-
 	hdev->last_reset_time = jiffies;
 	ae_dev->reset_type = HNAE3_NONE_RESET;
 	hdev->rst_stats.rst_done_cnt++;
 	hdev->rst_stats.rst_fail_cnt = 0;
+	clear_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state);
+
+	return 0;
+}
+
+static void hclgevf_reset(struct hclgevf_dev *hdev)
+{
+	if (hclgevf_reset_prepare(hdev))
+		goto err_reset;
+
+	/* check if VF could successfully fetch the hardware reset completion
+	 * status from the hardware
+	 */
+	if (hclgevf_reset_wait(hdev)) {
+		/* can't do much in this situation, will disable VF */
+		dev_err(&hdev->pdev->dev,
+			"failed to fetch H/W reset completion status\n");
+		goto err_reset;
+	}
+
+	if (hclgevf_reset_rebuild(hdev))
+		goto err_reset;
+
+	return;
 
-	return ret;
-err_reset_lock:
-	rtnl_unlock();
 err_reset:
 	hclgevf_reset_err_handle(hdev);
-
-	return ret;
 }
 
 static enum hnae3_reset_type hclgevf_get_reset_level(struct hclgevf_dev *hdev,
@@ -1657,25 +1695,60 @@
 	set_bit(rst_type, &hdev->default_reset_request);
 }
 
+static void hclgevf_enable_vector(struct hclgevf_misc_vector *vector, bool en)
+{
+	writel(en ? 1 : 0, vector->addr);
+}
+
 static void hclgevf_flr_prepare(struct hnae3_ae_dev *ae_dev)
 {
-#define HCLGEVF_FLR_WAIT_MS	100
-#define HCLGEVF_FLR_WAIT_CNT	50
+#define HCLGEVF_FLR_RETRY_WAIT_MS	500
+#define HCLGEVF_FLR_RETRY_CNT		5
+
 	struct hclgevf_dev *hdev = ae_dev->priv;
-	int cnt = 0;
+	int retry_cnt = 0;
+	int ret;
 
-	clear_bit(HNAE3_FLR_DOWN, &hdev->flr_state);
-	clear_bit(HNAE3_FLR_DONE, &hdev->flr_state);
-	set_bit(HNAE3_FLR_RESET, &hdev->default_reset_request);
-	hclgevf_reset_event(hdev->pdev, NULL);
+retry:
+	down(&hdev->reset_sem);
+	set_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state);
+	hdev->reset_type = HNAE3_FLR_RESET;
+	ret = hclgevf_reset_prepare(hdev);
+	if (ret) {
+		dev_err(&hdev->pdev->dev, "fail to prepare FLR, ret=%d\n",
+			ret);
+		if (hdev->reset_pending ||
+		    retry_cnt++ < HCLGEVF_FLR_RETRY_CNT) {
+			dev_err(&hdev->pdev->dev,
+				"reset_pending:0x%lx, retry_cnt:%d\n",
+				hdev->reset_pending, retry_cnt);
+			clear_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state);
+			up(&hdev->reset_sem);
+			msleep(HCLGEVF_FLR_RETRY_WAIT_MS);
+			goto retry;
+		}
+	}
 
-	while (!test_bit(HNAE3_FLR_DOWN, &hdev->flr_state) &&
-	       cnt++ < HCLGEVF_FLR_WAIT_CNT)
-		msleep(HCLGEVF_FLR_WAIT_MS);
+	/* disable misc vector before FLR done */
+	hclgevf_enable_vector(&hdev->misc_vector, false);
+	hdev->rst_stats.flr_rst_cnt++;
+}
 
-	if (!test_bit(HNAE3_FLR_DOWN, &hdev->flr_state))
-		dev_err(&hdev->pdev->dev,
-			"flr wait down timeout: %d\n", cnt);
+static void hclgevf_flr_done(struct hnae3_ae_dev *ae_dev)
+{
+	struct hclgevf_dev *hdev = ae_dev->priv;
+	int ret;
+
+	hclgevf_enable_vector(&hdev->misc_vector, true);
+
+	ret = hclgevf_reset_rebuild(hdev);
+	if (ret)
+		dev_warn(&hdev->pdev->dev, "fail to rebuild, ret=%d\n",
+			 ret);
+
+	hdev->reset_type = HNAE3_NONE_RESET;
+	clear_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state);
+	up(&hdev->reset_sem);
 }
 
 static u32 hclgevf_get_fw_version(struct hnae3_handle *handle)
@@ -1702,60 +1775,37 @@
 
 void hclgevf_reset_task_schedule(struct hclgevf_dev *hdev)
 {
-	if (!test_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state) &&
-	    !test_bit(HCLGEVF_STATE_REMOVING, &hdev->state)) {
-		set_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state);
-		schedule_work(&hdev->rst_service_task);
-	}
+	if (!test_bit(HCLGEVF_STATE_REMOVING, &hdev->state) &&
+	    !test_and_set_bit(HCLGEVF_STATE_RST_SERVICE_SCHED,
+			      &hdev->state))
+		mod_delayed_work(hclgevf_wq, &hdev->service_task, 0);
 }
 
 void hclgevf_mbx_task_schedule(struct hclgevf_dev *hdev)
 {
-	if (!test_bit(HCLGEVF_STATE_MBX_SERVICE_SCHED, &hdev->state) &&
-	    !test_bit(HCLGEVF_STATE_MBX_HANDLING, &hdev->state)) {
-		set_bit(HCLGEVF_STATE_MBX_SERVICE_SCHED, &hdev->state);
-		schedule_work(&hdev->mbx_service_task);
-	}
+	if (!test_bit(HCLGEVF_STATE_REMOVING, &hdev->state) &&
+	    !test_and_set_bit(HCLGEVF_STATE_MBX_SERVICE_SCHED,
+			      &hdev->state))
+		mod_delayed_work(hclgevf_wq, &hdev->service_task, 0);
 }
 
-static void hclgevf_task_schedule(struct hclgevf_dev *hdev)
+static void hclgevf_task_schedule(struct hclgevf_dev *hdev,
+				  unsigned long delay)
 {
-	if (!test_bit(HCLGEVF_STATE_DOWN, &hdev->state)  &&
-	    !test_and_set_bit(HCLGEVF_STATE_SERVICE_SCHED, &hdev->state))
-		schedule_work(&hdev->service_task);
+	if (!test_bit(HCLGEVF_STATE_REMOVING, &hdev->state) &&
+	    !test_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state))
+		mod_delayed_work(hclgevf_wq, &hdev->service_task, delay);
 }
 
-static void hclgevf_deferred_task_schedule(struct hclgevf_dev *hdev)
+static void hclgevf_reset_service_task(struct hclgevf_dev *hdev)
 {
-	/* if we have any pending mailbox event then schedule the mbx task */
-	if (hdev->mbx_event_pending)
-		hclgevf_mbx_task_schedule(hdev);
+#define	HCLGEVF_MAX_RESET_ATTEMPTS_CNT	3
 
-	if (test_bit(HCLGEVF_RESET_PENDING, &hdev->reset_state))
-		hclgevf_reset_task_schedule(hdev);
-}
-
-static void hclgevf_service_timer(struct timer_list *t)
-{
-	struct hclgevf_dev *hdev = from_timer(hdev, t, service_timer);
-
-	mod_timer(&hdev->service_timer, jiffies +
-		  HCLGEVF_GENERAL_TASK_INTERVAL * HZ);
-
-	hdev->stats_timer++;
-	hclgevf_task_schedule(hdev);
-}
-
-static void hclgevf_reset_service_task(struct work_struct *work)
-{
-	struct hclgevf_dev *hdev =
-		container_of(work, struct hclgevf_dev, rst_service_task);
-	int ret;
-
-	if (test_and_set_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state))
+	if (!test_and_clear_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state))
 		return;
 
-	clear_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state);
+	down(&hdev->reset_sem);
+	set_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state);
 
 	if (test_and_clear_bit(HCLGEVF_RESET_PENDING,
 			       &hdev->reset_state)) {
@@ -1769,12 +1819,8 @@
 		hdev->last_reset_time = jiffies;
 		while ((hdev->reset_type =
 			hclgevf_get_reset_level(hdev, &hdev->reset_pending))
-		       != HNAE3_NONE_RESET) {
-			ret = hclgevf_reset(hdev);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"VF stack reset failed %d.\n", ret);
-		}
+		       != HNAE3_NONE_RESET)
+			hclgevf_reset(hdev);
 	} else if (test_and_clear_bit(HCLGEVF_RESET_REQUESTED,
 				      &hdev->reset_state)) {
 		/* we could be here when either of below happens:
@@ -1800,7 +1846,7 @@
 		 * We cannot do much for 2. but to check first we can try reset
 		 * our PCIe + stack and see if it alleviates the problem.
 		 */
-		if (hdev->reset_attempts > 3) {
+		if (hdev->reset_attempts > HCLGEVF_MAX_RESET_ATTEMPTS_CNT) {
 			/* prepare for full reset of stack + pcie interface */
 			set_bit(HNAE3_VF_FULL_RESET, &hdev->reset_pending);
 
@@ -1815,42 +1861,29 @@
 		hclgevf_reset_task_schedule(hdev);
 	}
 
+	hdev->reset_type = HNAE3_NONE_RESET;
 	clear_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state);
+	up(&hdev->reset_sem);
 }
 
-static void hclgevf_mailbox_service_task(struct work_struct *work)
+static void hclgevf_mailbox_service_task(struct hclgevf_dev *hdev)
 {
-	struct hclgevf_dev *hdev;
-
-	hdev = container_of(work, struct hclgevf_dev, mbx_service_task);
+	if (!test_and_clear_bit(HCLGEVF_STATE_MBX_SERVICE_SCHED, &hdev->state))
+		return;
 
 	if (test_and_set_bit(HCLGEVF_STATE_MBX_HANDLING, &hdev->state))
 		return;
 
-	clear_bit(HCLGEVF_STATE_MBX_SERVICE_SCHED, &hdev->state);
-
 	hclgevf_mbx_async_handler(hdev);
 
 	clear_bit(HCLGEVF_STATE_MBX_HANDLING, &hdev->state);
 }
 
-static void hclgevf_keep_alive_timer(struct timer_list *t)
+static void hclgevf_keep_alive(struct hclgevf_dev *hdev)
 {
-	struct hclgevf_dev *hdev = from_timer(hdev, t, keep_alive_timer);
-
-	schedule_work(&hdev->keep_alive_task);
-	mod_timer(&hdev->keep_alive_timer, jiffies +
-		  HCLGEVF_KEEP_ALIVE_TASK_INTERVAL * HZ);
-}
-
-static void hclgevf_keep_alive_task(struct work_struct *work)
-{
-	struct hclgevf_dev *hdev;
 	u8 respmsg;
 	int ret;
 
-	hdev = container_of(work, struct hclgevf_dev, keep_alive_task);
-
 	if (test_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state))
 		return;
 
@@ -1861,19 +1894,32 @@
 			"VF sends keep alive cmd failed(=%d)\n", ret);
 }
 
-static void hclgevf_service_task(struct work_struct *work)
+static void hclgevf_periodic_service_task(struct hclgevf_dev *hdev)
 {
-	struct hnae3_handle *handle;
-	struct hclgevf_dev *hdev;
+	unsigned long delta = round_jiffies_relative(HZ);
+	struct hnae3_handle *handle = &hdev->nic;
 
-	hdev = container_of(work, struct hclgevf_dev, service_task);
-	handle = &hdev->nic;
+	if (time_is_after_jiffies(hdev->last_serv_processed + HZ)) {
+		delta = jiffies - hdev->last_serv_processed;
 
-	if (hdev->stats_timer >= HCLGEVF_STATS_TIMER_INTERVAL) {
-		hclgevf_tqps_update_stats(handle);
-		hdev->stats_timer = 0;
+		if (delta < round_jiffies_relative(HZ)) {
+			delta = round_jiffies_relative(HZ) - delta;
+			goto out;
+		}
+	}
+
+	hdev->serv_processed_cnt++;
+	if (!(hdev->serv_processed_cnt % HCLGEVF_KEEP_ALIVE_TASK_INTERVAL))
+		hclgevf_keep_alive(hdev);
+
+	if (test_bit(HCLGEVF_STATE_DOWN, &hdev->state)) {
+		hdev->last_serv_processed = jiffies;
+		goto out;
 	}
 
+	if (!(hdev->serv_processed_cnt % HCLGEVF_STATS_TIMER_INTERVAL))
+		hclgevf_tqps_update_stats(handle);
+
 	/* request the link status from the PF. PF would be able to tell VF
 	 * about such updates in future so we might remove this later
 	 */
@@ -1883,9 +1929,27 @@
 
 	hclgevf_sync_vlan_filter(hdev);
 
-	hclgevf_deferred_task_schedule(hdev);
+	hdev->last_serv_processed = jiffies;
+
+out:
+	hclgevf_task_schedule(hdev, delta);
+}
+
+static void hclgevf_service_task(struct work_struct *work)
+{
+	struct hclgevf_dev *hdev = container_of(work, struct hclgevf_dev,
+						service_task.work);
 
-	clear_bit(HCLGEVF_STATE_SERVICE_SCHED, &hdev->state);
+	hclgevf_reset_service_task(hdev);
+	hclgevf_mailbox_service_task(hdev);
+	hclgevf_periodic_service_task(hdev);
+
+	/* Handle reset and mbx again in case periodical task delays the
+	 * handling by calling hclgevf_task_schedule() in
+	 * hclgevf_periodic_service_task()
+	 */
+	hclgevf_reset_service_task(hdev);
+	hclgevf_mailbox_service_task(hdev);
 }
 
 static void hclgevf_clear_event_cause(struct hclgevf_dev *hdev, u32 regclr)
@@ -1938,16 +2002,14 @@
 		return HCLGEVF_VECTOR0_EVENT_MBX;
 	}
 
-	dev_dbg(&hdev->pdev->dev, "vector 0 interrupt from unknown source\n");
+	/* print other vector0 event source */
+	dev_info(&hdev->pdev->dev,
+		 "vector 0 interrupt from unknown source, cmdq_src = %#x\n",
+		 cmdq_stat_reg);
 
 	return HCLGEVF_VECTOR0_EVENT_OTHER;
 }
 
-static void hclgevf_enable_vector(struct hclgevf_misc_vector *vector, bool en)
-{
-	writel(en ? 1 : 0, vector->addr);
-}
-
 static irqreturn_t hclgevf_misc_irq_handle(int irq, void *data)
 {
 	enum hclgevf_evt_cause event_cause;
@@ -2103,7 +2165,6 @@
 		ret = hclgevf_set_rss_input_tuple(hdev, rss_cfg);
 		if (ret)
 			return ret;
-
 	}
 
 	/* Initialize RSS indirect table */
@@ -2123,16 +2184,31 @@
 				       false);
 }
 
+static void hclgevf_flush_link_update(struct hclgevf_dev *hdev)
+{
+#define HCLGEVF_FLUSH_LINK_TIMEOUT	100000
+
+	unsigned long last = hdev->serv_processed_cnt;
+	int i = 0;
+
+	while (test_bit(HCLGEVF_STATE_LINK_UPDATING, &hdev->state) &&
+	       i++ < HCLGEVF_FLUSH_LINK_TIMEOUT &&
+	       last == hdev->serv_processed_cnt)
+		usleep_range(1, 1);
+}
+
 static void hclgevf_set_timer_task(struct hnae3_handle *handle, bool enable)
 {
 	struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
 
 	if (enable) {
-		mod_timer(&hdev->service_timer, jiffies + HZ);
+		hclgevf_task_schedule(hdev, 0);
 	} else {
-		del_timer_sync(&hdev->service_timer);
-		cancel_work_sync(&hdev->service_task);
-		clear_bit(HCLGEVF_STATE_SERVICE_SCHED, &hdev->state);
+		set_bit(HCLGEVF_STATE_DOWN, &hdev->state);
+
+		/* flush memory to make sure DOWN is seen by service task */
+		smp_mb__before_atomic();
+		hclgevf_flush_link_update(hdev);
 	}
 }
 
@@ -2179,16 +2255,12 @@
 
 static int hclgevf_client_start(struct hnae3_handle *handle)
 {
-	struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
 	int ret;
 
 	ret = hclgevf_set_alive(handle, true);
 	if (ret)
 		return ret;
 
-	mod_timer(&hdev->keep_alive_timer, jiffies +
-		  HCLGEVF_KEEP_ALIVE_TASK_INTERVAL * HZ);
-
 	return 0;
 }
 
@@ -2201,27 +2273,18 @@
 	if (ret)
 		dev_warn(&hdev->pdev->dev,
 			 "%s failed %d\n", __func__, ret);
-
-	del_timer_sync(&hdev->keep_alive_timer);
-	cancel_work_sync(&hdev->keep_alive_task);
 }
 
 static void hclgevf_state_init(struct hclgevf_dev *hdev)
 {
-	/* setup tasks for the MBX */
-	INIT_WORK(&hdev->mbx_service_task, hclgevf_mailbox_service_task);
 	clear_bit(HCLGEVF_STATE_MBX_SERVICE_SCHED, &hdev->state);
 	clear_bit(HCLGEVF_STATE_MBX_HANDLING, &hdev->state);
+	clear_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state);
 
-	/* setup tasks for service timer */
-	timer_setup(&hdev->service_timer, hclgevf_service_timer, 0);
-
-	INIT_WORK(&hdev->service_task, hclgevf_service_task);
-	clear_bit(HCLGEVF_STATE_SERVICE_SCHED, &hdev->state);
-
-	INIT_WORK(&hdev->rst_service_task, hclgevf_reset_service_task);
+	INIT_DELAYED_WORK(&hdev->service_task, hclgevf_service_task);
 
 	mutex_init(&hdev->mbx_resp.mbx_mutex);
+	sema_init(&hdev->reset_sem, 1);
 
 	/* bring the device down */
 	set_bit(HCLGEVF_STATE_DOWN, &hdev->state);
@@ -2232,18 +2295,8 @@
 	set_bit(HCLGEVF_STATE_DOWN, &hdev->state);
 	set_bit(HCLGEVF_STATE_REMOVING, &hdev->state);
 
-	if (hdev->keep_alive_timer.function)
-		del_timer_sync(&hdev->keep_alive_timer);
-	if (hdev->keep_alive_task.func)
-		cancel_work_sync(&hdev->keep_alive_task);
-	if (hdev->service_timer.function)
-		del_timer_sync(&hdev->service_timer);
-	if (hdev->service_task.func)
-		cancel_work_sync(&hdev->service_task);
-	if (hdev->mbx_service_task.func)
-		cancel_work_sync(&hdev->mbx_service_task);
-	if (hdev->rst_service_task.func)
-		cancel_work_sync(&hdev->rst_service_task);
+	if (hdev->service_task.work.func)
+		cancel_delayed_work_sync(&hdev->service_task);
 
 	mutex_destroy(&hdev->mbx_resp.mbx_mutex);
 }
@@ -2272,7 +2325,7 @@
 	}
 	if (vectors < hdev->num_msi)
 		dev_warn(&hdev->pdev->dev,
-			 "requested %d MSI/MSI-X, but allocated %d MSI/MSI-X\n",
+			 "requested %u MSI/MSI-X, but allocated %d MSI/MSI-X\n",
 			 hdev->num_msi, vectors);
 
 	hdev->num_msi = vectors;
@@ -2317,8 +2370,10 @@
 
 	hclgevf_get_misc_vector(hdev);
 
+	snprintf(hdev->misc_vector.name, HNAE3_INT_NAME_LEN, "%s-misc-%s",
+		 HCLGEVF_NAME, pci_name(hdev->pdev));
 	ret = request_irq(hdev->misc_vector.vector_irq, hclgevf_misc_irq_handle,
-			  0, "hclgevf_cmd", hdev);
+			  0, hdev->misc_vector.name, hdev);
 	if (ret) {
 		dev_err(&hdev->pdev->dev, "VF failed to request misc irq(%d)\n",
 			hdev->misc_vector.vector_irq);
@@ -2348,12 +2403,12 @@
 
 	dev_info(dev, "VF info begin:\n");
 
-	dev_info(dev, "Task queue pairs numbers: %d\n", hdev->num_tqps);
-	dev_info(dev, "Desc num per TX queue: %d\n", hdev->num_tx_desc);
-	dev_info(dev, "Desc num per RX queue: %d\n", hdev->num_rx_desc);
-	dev_info(dev, "Numbers of vports: %d\n", hdev->num_alloc_vport);
-	dev_info(dev, "HW tc map: %d\n", hdev->hw_tc_map);
-	dev_info(dev, "PF media type of this VF: %d\n",
+	dev_info(dev, "Task queue pairs numbers: %u\n", hdev->num_tqps);
+	dev_info(dev, "Desc num per TX queue: %u\n", hdev->num_tx_desc);
+	dev_info(dev, "Desc num per RX queue: %u\n", hdev->num_rx_desc);
+	dev_info(dev, "Numbers of vports: %u\n", hdev->num_alloc_vport);
+	dev_info(dev, "HW tc map: 0x%x\n", hdev->hw_tc_map);
+	dev_info(dev, "PF media type of this VF: %u\n",
 		 hdev->hw.mac.media_type);
 
 	dev_info(dev, "VF info end.\n");
@@ -2648,12 +2703,6 @@
 		return ret;
 	}
 
-	if (pdev->revision >= 0x21) {
-		ret = hclgevf_set_promisc_mode(hdev, true);
-		if (ret)
-			return ret;
-	}
-
 	dev_info(&hdev->pdev->dev, "Reset done\n");
 
 	return 0;
@@ -2696,6 +2745,7 @@
 
 	hclgevf_state_init(hdev);
 	hdev->reset_level = HNAE3_VF_FUNC_RESET;
+	hdev->reset_type = HNAE3_NONE_RESET;
 
 	ret = hclgevf_misc_irq_init(hdev);
 	if (ret) {
@@ -2728,17 +2778,6 @@
 	if (ret)
 		goto err_config;
 
-	/* vf is not allowed to enable unicast/multicast promisc mode.
-	 * For revision 0x20, default to disable broadcast promisc mode,
-	 * firmware makes sure broadcast packets can be accepted.
-	 * For revision 0x21, default to enable broadcast promisc mode.
-	 */
-	if (pdev->revision >= 0x21) {
-		ret = hclgevf_set_promisc_mode(hdev, true);
-		if (ret)
-			goto err_config;
-	}
-
 	/* Initialize RSS for this VF */
 	ret = hclgevf_rss_init_hw(hdev);
 	if (ret) {
@@ -2758,6 +2797,8 @@
 	dev_info(&hdev->pdev->dev, "finished initializing %s driver\n",
 		 HCLGEVF_DRIVER_NAME);
 
+	hclgevf_task_schedule(hdev, round_jiffies_relative(HZ));
+
 	return 0;
 
 err_config:
@@ -2777,19 +2818,21 @@
 {
 	hclgevf_state_uninit(hdev);
 
+	hclgevf_send_mbx_msg(hdev, HCLGE_MBX_VF_UNINIT, 0, NULL, 0,
+			     false, NULL, 0);
+
 	if (test_bit(HCLGEVF_STATE_IRQ_INITED, &hdev->state)) {
 		hclgevf_misc_irq_uninit(hdev);
 		hclgevf_uninit_msi(hdev);
 	}
 
-	hclgevf_pci_uninit(hdev);
 	hclgevf_cmd_uninit(hdev);
+	hclgevf_pci_uninit(hdev);
 }
 
 static int hclgevf_init_ae_dev(struct hnae3_ae_dev *ae_dev)
 {
 	struct pci_dev *pdev = ae_dev->pdev;
-	struct hclgevf_dev *hdev;
 	int ret;
 
 	ret = hclgevf_alloc_hdev(ae_dev);
@@ -2804,10 +2847,6 @@
 		return ret;
 	}
 
-	hdev = ae_dev->priv;
-	timer_setup(&hdev->keep_alive_timer, hclgevf_keep_alive_timer, 0);
-	INIT_WORK(&hdev->keep_alive_task, hclgevf_keep_alive_task);
-
 	return 0;
 }
 
@@ -3152,6 +3191,7 @@
 	.get_global_queue_id = hclgevf_get_qid_global,
 	.set_timer_task = hclgevf_set_timer_task,
 	.get_link_mode = hclgevf_get_link_mode,
+	.set_promisc_mode = hclgevf_set_promisc_mode,
 };
 
 static struct hnae3_ae_algo ae_algovf = {
@@ -3163,6 +3203,12 @@
 {
 	pr_info("%s is initializing\n", HCLGEVF_NAME);
 
+	hclgevf_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, HCLGEVF_NAME);
+	if (!hclgevf_wq) {
+		pr_err("%s: failed to create workqueue\n", HCLGEVF_NAME);
+		return -ENOMEM;
+	}
+
 	hnae3_register_ae_algo(&ae_algovf);
 
 	return 0;
@@ -3171,6 +3217,7 @@
 static void hclgevf_exit(void)
 {
 	hnae3_unregister_ae_algo(&ae_algovf);
+	destroy_workqueue(hclgevf_wq);
 }
 module_init(hclgevf_init);
 module_exit(hclgevf_exit);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
@@ -142,16 +142,15 @@
 	HCLGEVF_STATE_REMOVING,
 	HCLGEVF_STATE_NIC_REGISTERED,
 	/* task states */
-	HCLGEVF_STATE_SERVICE_SCHED,
 	HCLGEVF_STATE_RST_SERVICE_SCHED,
 	HCLGEVF_STATE_RST_HANDLING,
 	HCLGEVF_STATE_MBX_SERVICE_SCHED,
 	HCLGEVF_STATE_MBX_HANDLING,
 	HCLGEVF_STATE_CMD_DISABLE,
+	HCLGEVF_STATE_LINK_UPDATING,
+	HCLGEVF_STATE_RST_FAIL,
 };
 
-#define HCLGEVF_MPF_ENBALE 1
-
 struct hclgevf_mac {
 	u8 media_type;
 	u8 module_type;
@@ -222,6 +221,7 @@
 struct hclgevf_misc_vector {
 	u8 __iomem *addr;
 	int vector_irq;
+	char name[HNAE3_INT_NAME_LEN];
 };
 
 struct hclgevf_rst_stats {
@@ -253,6 +253,7 @@
 	unsigned long reset_state;	/* requested, pending */
 	struct hclgevf_rst_stats rst_stats;
 	u32 reset_attempts;
+	struct semaphore reset_sem;	/* protect reset process */
 
 	u32 fw_version;
 	u16 num_tqps;		/* num task queue pairs of this PF */
@@ -266,6 +267,7 @@
 	u16 num_tx_desc;	/* desc num of per tx queue */
 	u16 num_rx_desc;	/* desc num of per rx queue */
 	u8 hw_tc_map;
+	u8 has_pf_mac;
 
 	u16 num_msi;
 	u16 num_msi_left;
@@ -284,12 +286,7 @@
 	struct hclgevf_mbx_resp_status mbx_resp; /* mailbox response */
 	struct hclgevf_mbx_arq_ring arq; /* mailbox async rx queue */
 
-	struct timer_list service_timer;
-	struct timer_list keep_alive_timer;
-	struct work_struct service_task;
-	struct work_struct keep_alive_task;
-	struct work_struct rst_service_task;
-	struct work_struct mbx_service_task;
+	struct delayed_work service_task;
 
 	struct hclgevf_tqp *htqp;
 
@@ -299,7 +296,8 @@
 	struct hnae3_client *nic_client;
 	struct hnae3_client *roce_client;
 	u32 flag;
-	u32 stats_timer;
+	unsigned long serv_processed_cnt;
+	unsigned long last_serv_processed;
 };
 
 static inline bool hclgevf_is_reset_pending(struct hclgevf_dev *hdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
@@ -33,7 +33,7 @@
 
 	if (resp_len > HCLGE_MBX_MAX_RESP_DATA_SIZE) {
 		dev_err(&hdev->pdev->dev,
-			"VF mbx response len(=%d) exceeds maximum(=%d)\n",
+			"VF mbx response len(=%u) exceeds maximum(=%u)\n",
 			resp_len,
 			HCLGE_MBX_MAX_RESP_DATA_SIZE);
 		return -EINVAL;
@@ -49,7 +49,7 @@
 
 	if (i >= HCLGEVF_MAX_TRY_TIMES) {
 		dev_err(&hdev->pdev->dev,
-			"VF could not get mbx(%d,%d) resp(=%d) from PF in %d tries\n",
+			"VF could not get mbx(%u,%u) resp(=%d) from PF in %d tries\n",
 			code0, code1, hdev->mbx_resp.received_resp, i);
 		return -EIO;
 	}
@@ -68,10 +68,10 @@
 
 	if (!(r_code0 == code0 && r_code1 == code1 && !mbx_resp->resp_status)) {
 		dev_err(&hdev->pdev->dev,
-			"VF could not match resp code(code0=%d,code1=%d), %d\n",
+			"VF could not match resp code(code0=%u,code1=%u), %d\n",
 			code0, code1, mbx_resp->resp_status);
 		dev_err(&hdev->pdev->dev,
-			"VF could not match resp r_code(r_code0=%d,r_code1=%d)\n",
+			"VF could not match resp r_code(r_code0=%u,r_code1=%u)\n",
 			r_code0, r_code1);
 		return -EIO;
 	}
@@ -168,7 +168,7 @@
 		flag = le16_to_cpu(crq->desc[crq->next_to_use].flag);
 		if (unlikely(!hnae3_get_bit(flag, HCLGEVF_CMDQ_RX_OUTVLD_B))) {
 			dev_warn(&hdev->pdev->dev,
-				 "dropped invalid mailbox message, code = %d\n",
+				 "dropped invalid mailbox message, code = %u\n",
 				 req->msg[0]);
 
 			/* dropping/not processing this invalid message */
@@ -187,7 +187,7 @@
 		case HCLGE_MBX_PF_VF_RESP:
 			if (resp->received_resp)
 				dev_warn(&hdev->pdev->dev,
-					 "VF mbx resp flag not clear(%d)\n",
+					 "VF mbx resp flag not clear(%u)\n",
 					 req->msg[1]);
 			resp->received_resp = true;
 
@@ -205,6 +205,7 @@
 		case HCLGE_MBX_ASSERTING_RESET:
 		case HCLGE_MBX_LINK_STAT_MODE:
 		case HCLGE_MBX_PUSH_VLAN_INFO:
+		case HCLGE_MBX_PUSH_PROMISC_INFO:
 			/* set this mbx event as pending. This is required as we
 			 * might loose interrupt event when mbx task is busy
 			 * handling. This shall be cleared when mbx task just
@@ -218,7 +219,7 @@
 			if (atomic_read(&hdev->arq.count) >=
 			    HCLGE_MBX_MAX_ARQ_MSG_NUM) {
 				dev_warn(&hdev->pdev->dev,
-					 "Async Q full, dropping msg(%d)\n",
+					 "Async Q full, dropping msg(%u)\n",
 					 req->msg[1]);
 				break;
 			}
@@ -235,7 +236,7 @@
 			break;
 		default:
 			dev_err(&hdev->pdev->dev,
-				"VF received unsupported(%d) mbx msg from PF\n",
+				"VF received unsupported(%u) mbx msg from PF\n",
 				req->msg[0]);
 			break;
 		}
@@ -248,6 +249,14 @@
 			  crq->next_to_use);
 }
 
+static void hclgevf_parse_promisc_info(struct hclgevf_dev *hdev,
+				       u16 promisc_info)
+{
+	if (!promisc_info)
+		dev_info(&hdev->pdev->dev,
+			 "Promisc mode is closed by host for being untrusted.\n");
+}
+
 void hclgevf_mbx_async_handler(struct hclgevf_dev *hdev)
 {
 	enum hnae3_reset_type reset_type;
@@ -313,9 +322,12 @@
 			hclgevf_update_port_base_vlan_info(hdev, state,
 							   (u8 *)vlan_info, 8);
 			break;
+		case HCLGE_MBX_PUSH_PROMISC_INFO:
+			hclgevf_parse_promisc_info(hdev, msg_q[1]);
+			break;
 		default:
 			dev_err(&hdev->pdev->dev,
-				"fetched unsupported(%d) message from arq\n",
+				"fetched unsupported(%u) message from arq\n",
 				msg_q[0]);
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c
@@ -389,7 +389,8 @@
 
 	spin_unlock_bh(&cmdq->cmdq_lock);
 
-	if (!wait_for_completion_timeout(&done, CMDQ_TIMEOUT)) {
+	if (!wait_for_completion_timeout(&done,
+					 msecs_to_jiffies(CMDQ_TIMEOUT))) {
 		spin_lock_bh(&cmdq->cmdq_lock);
 
 		if (cmdq->errcode[curr_prod_idx] == &errcode)
@@ -623,6 +624,8 @@
 	if (!CMDQ_WQE_COMPLETED(be32_to_cpu(ctrl->ctrl_info)))
 		return -EBUSY;
 
+	dma_rmb();
+
 	errcode = CMDQ_WQE_ERRCODE_GET(be32_to_cpu(status->status_info), VAL);
 
 	cmdq_sync_cmd_handler(cmdq, ci, errcode);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
@@ -297,6 +297,7 @@
 	}
 
 	hw_ioctxt.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
+	hw_ioctxt.ppf_idx = HINIC_HWIF_PPF_IDX(hwif);
 
 	hw_ioctxt.set_cmdq_depth = HW_IOCTXT_SET_CMDQ_DEPTH_DEFAULT;
 	hw_ioctxt.cmdq_depth = 0;
@@ -359,50 +360,6 @@
 	return -EFAULT;
 }
 
-static int wait_for_io_stopped(struct hinic_hwdev *hwdev)
-{
-	struct hinic_cmd_io_status cmd_io_status;
-	struct hinic_hwif *hwif = hwdev->hwif;
-	struct pci_dev *pdev = hwif->pdev;
-	struct hinic_pfhwdev *pfhwdev;
-	unsigned long end;
-	u16 out_size;
-	int err;
-
-	if (!HINIC_IS_PF(hwif) && !HINIC_IS_PPF(hwif)) {
-		dev_err(&pdev->dev, "Unsupported PCI Function type\n");
-		return -EINVAL;
-	}
-
-	pfhwdev = container_of(hwdev, struct hinic_pfhwdev, hwdev);
-
-	cmd_io_status.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
-
-	end = jiffies + msecs_to_jiffies(IO_STATUS_TIMEOUT);
-	do {
-		err = hinic_msg_to_mgmt(&pfhwdev->pf_to_mgmt, HINIC_MOD_COMM,
-					HINIC_COMM_CMD_IO_STATUS_GET,
-					&cmd_io_status, sizeof(cmd_io_status),
-					&cmd_io_status, &out_size,
-					HINIC_MGMT_MSG_SYNC);
-		if ((err) || (out_size != sizeof(cmd_io_status))) {
-			dev_err(&pdev->dev, "Failed to get IO status, ret = %d\n",
-				err);
-			return err;
-		}
-
-		if (cmd_io_status.status == IO_STOPPED) {
-			dev_info(&pdev->dev, "IO stopped\n");
-			return 0;
-		}
-
-		msleep(20);
-	} while (time_before(jiffies, end));
-
-	dev_err(&pdev->dev, "Wait for IO stopped - Timeout\n");
-	return -ETIMEDOUT;
-}
-
 /**
  * clear_io_resource - set the IO resources as not active in the NIC
  * @hwdev: the NIC HW device
@@ -422,11 +379,8 @@
 		return -EINVAL;
 	}
 
-	err = wait_for_io_stopped(hwdev);
-	if (err) {
-		dev_err(&pdev->dev, "IO has not stopped yet\n");
-		return err;
-	}
+	/* sleep 100ms to wait for firmware stopping I/O */
+	msleep(100);
 
 	cmd_clear_io_res.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
@@ -151,8 +151,8 @@
 
 	u8      lro_en;
 	u8      rsvd3;
+	u8      ppf_idx;
 	u8      rsvd4;
-	u8      rsvd5;
 
 	u16     rq_depth;
 	u16     rx_buf_sz_idx;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c
@@ -188,7 +188,7 @@
  * eq_update_ci - update the HW cons idx of event queue
  * @eq: the event queue to update the cons idx for
  **/
-static void eq_update_ci(struct hinic_eq *eq)
+static void eq_update_ci(struct hinic_eq *eq, u32 arm_state)
 {
 	u32 val, addr = EQ_CONS_IDX_REG_ADDR(eq);
 
@@ -202,7 +202,7 @@
 
 	val |= HINIC_EQ_CI_SET(eq->cons_idx, IDX)    |
 	       HINIC_EQ_CI_SET(eq->wrapped, WRAPPED) |
-	       HINIC_EQ_CI_SET(EQ_ARMED, INT_ARMED);
+	       HINIC_EQ_CI_SET(arm_state, INT_ARMED);
 
 	val |= HINIC_EQ_CI_SET(eq_cons_idx_checksum_set(val), XOR_CHKSUM);
 
@@ -235,6 +235,8 @@
 		if (HINIC_EQ_ELEM_DESC_GET(aeqe_desc, WRAPPED) == eq->wrapped)
 			break;
 
+		dma_rmb();
+
 		event = HINIC_EQ_ELEM_DESC_GET(aeqe_desc, TYPE);
 		if (event >= HINIC_MAX_AEQ_EVENTS) {
 			dev_err(&pdev->dev, "Unknown AEQ Event %d\n", event);
@@ -347,7 +349,7 @@
 	else if (eq->type == HINIC_CEQ)
 		ceq_irq_handler(eq);
 
-	eq_update_ci(eq);
+	eq_update_ci(eq, EQ_ARMED);
 }
 
 /**
@@ -702,7 +704,7 @@
 	}
 
 	set_eq_ctrls(eq);
-	eq_update_ci(eq);
+	eq_update_ci(eq, EQ_ARMED);
 
 	err = alloc_eq_pages(eq);
 	if (err) {
@@ -752,18 +754,28 @@
  **/
 static void remove_eq(struct hinic_eq *eq)
 {
-	struct msix_entry *entry = &eq->msix_entry;
-
-	free_irq(entry->vector, eq);
+	hinic_set_msix_state(eq->hwif, eq->msix_entry.entry,
+			     HINIC_MSIX_DISABLE);
+	free_irq(eq->msix_entry.vector, eq);
 
 	if (eq->type == HINIC_AEQ) {
 		struct hinic_eq_work *aeq_work = &eq->aeq_work;
 
 		cancel_work_sync(&aeq_work->work);
+		/* clear aeq_len to avoid hw access host memory */
+		hinic_hwif_write_reg(eq->hwif,
+				     HINIC_CSR_AEQ_CTRL_1_ADDR(eq->q_id), 0);
 	} else if (eq->type == HINIC_CEQ) {
 		tasklet_kill(&eq->ceq_tasklet);
+		/* clear ceq_len to avoid hw access host memory */
+		hinic_hwif_write_reg(eq->hwif,
+				     HINIC_CSR_CEQ_CTRL_1_ADDR(eq->q_id), 0);
 	}
 
+	/* update cons_idx to avoid invalid interrupt */
+	eq->cons_idx = hinic_hwif_read_reg(eq->hwif, EQ_PROD_IDX_REG_ADDR(eq));
+	eq_update_ci(eq, EQ_NOT_ARMED);
+
 	free_eq_pages(eq);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_if.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_if.h
@@ -137,6 +137,7 @@
 #define HINIC_HWIF_FUNC_IDX(hwif)       ((hwif)->attr.func_idx)
 #define HINIC_HWIF_PCI_INTF(hwif)       ((hwif)->attr.pci_intf_idx)
 #define HINIC_HWIF_PF_IDX(hwif)         ((hwif)->attr.pf_idx)
+#define HINIC_HWIF_PPF_IDX(hwif)        ((hwif)->attr.ppf_idx)
 
 #define HINIC_FUNC_TYPE(hwif)           ((hwif)->attr.func_type)
 #define HINIC_IS_PF(hwif)               (HINIC_FUNC_TYPE(hwif) == HINIC_PF)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
@@ -43,7 +43,9 @@
 
 #define MSG_NOT_RESP                    0xFFFF
 
-#define MGMT_MSG_TIMEOUT                1000
+#define MGMT_MSG_TIMEOUT                5000
+
+#define SET_FUNC_PORT_MGMT_TIMEOUT	25000
 
 #define mgmt_to_pfhwdev(pf_mgmt)        \
 		container_of(pf_mgmt, struct hinic_pfhwdev, pf_to_mgmt)
@@ -238,12 +240,13 @@
 			    u8 *buf_in, u16 in_size,
 			    u8 *buf_out, u16 *out_size,
 			    enum mgmt_direction_type direction,
-			    u16 resp_msg_id)
+			    u16 resp_msg_id, u32 timeout)
 {
 	struct hinic_hwif *hwif = pf_to_mgmt->hwif;
 	struct pci_dev *pdev = hwif->pdev;
 	struct hinic_recv_msg *recv_msg;
 	struct completion *recv_done;
+	unsigned long timeo;
 	u16 msg_id;
 	int err;
 
@@ -267,7 +270,9 @@
 		goto unlock_sync_msg;
 	}
 
-	if (!wait_for_completion_timeout(recv_done, MGMT_MSG_TIMEOUT)) {
+	timeo = msecs_to_jiffies(timeout ? timeout : MGMT_MSG_TIMEOUT);
+
+	if (!wait_for_completion_timeout(recv_done, timeo)) {
 		dev_err(&pdev->dev, "MGMT timeout, MSG id = %d\n", msg_id);
 		err = -ETIMEDOUT;
 		goto unlock_sync_msg;
@@ -341,6 +346,7 @@
 {
 	struct hinic_hwif *hwif = pf_to_mgmt->hwif;
 	struct pci_dev *pdev = hwif->pdev;
+	u32 timeout = 0;
 
 	if (sync != HINIC_MGMT_MSG_SYNC) {
 		dev_err(&pdev->dev, "Invalid MGMT msg type\n");
@@ -352,9 +358,12 @@
 		return -EINVAL;
 	}
 
+	if (cmd == HINIC_PORT_CMD_SET_FUNC_STATE)
+		timeout = SET_FUNC_PORT_MGMT_TIMEOUT;
+
 	return msg_to_mgmt_sync(pf_to_mgmt, mod, cmd, buf_in, in_size,
 				buf_out, out_size, MGMT_DIRECT_SEND,
-				MSG_NOT_RESP);
+				MSG_NOT_RESP, timeout);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h
@@ -94,6 +94,7 @@
 
 	struct hinic_wq         *wq;
 
+	struct cpumask		affinity_mask;
 	u32                     irq;
 	u16                     msix_entry;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_main.c
@@ -356,7 +356,8 @@
 	if (!num_cpus)
 		num_cpus = num_online_cpus();
 
-	nic_dev->num_qps = min_t(u16, nic_dev->max_qps, num_cpus);
+	nic_dev->num_qps = hinic_hwdev_num_qps(hwdev);
+	nic_dev->num_qps = min_t(u16, nic_dev->num_qps, num_cpus);
 
 	nic_dev->rss_limit = nic_dev->num_qps;
 	nic_dev->num_rss = nic_dev->num_qps;
@@ -482,7 +483,6 @@
 {
 	struct hinic_dev *nic_dev = netdev_priv(netdev);
 	unsigned int flags;
-	int err;
 
 	down(&nic_dev->mgmt_lock);
 
@@ -496,20 +496,9 @@
 
 	up(&nic_dev->mgmt_lock);
 
-	err = hinic_port_set_func_state(nic_dev, HINIC_FUNC_PORT_DISABLE);
-	if (err) {
-		netif_err(nic_dev, drv, netdev,
-			  "Failed to set func port state\n");
-		nic_dev->flags |= (flags & HINIC_INTF_UP);
-		return err;
-	}
+	hinic_port_set_state(nic_dev, HINIC_PORT_DISABLE);
 
-	err = hinic_port_set_state(nic_dev, HINIC_PORT_DISABLE);
-	if (err) {
-		netif_err(nic_dev, drv, netdev, "Failed to set port state\n");
-		nic_dev->flags |= (flags & HINIC_INTF_UP);
-		return err;
-	}
+	hinic_port_set_func_state(nic_dev, HINIC_FUNC_PORT_DISABLE);
 
 	if (nic_dev->flags & HINIC_RSS_ENABLE) {
 		hinic_rss_deinit(nic_dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_rx.c
@@ -350,6 +350,9 @@
 		if (!rq_wqe)
 			break;
 
+		/* make sure we read rx_done before packet length */
+		dma_rmb();
+
 		cqe = rq->cqe[ci];
 		status =  be32_to_cpu(cqe->status);
 		hinic_rq_get_sge(rxq->rq, rq_wqe, ci, &sge);
@@ -475,7 +478,6 @@
 	struct hinic_hwdev *hwdev = nic_dev->hwdev;
 	struct hinic_rq *rq = rxq->rq;
 	struct hinic_qp *qp;
-	struct cpumask mask;
 	int err;
 
 	rx_add_napi(rxq);
@@ -492,8 +494,8 @@
 	}
 
 	qp = container_of(rq, struct hinic_qp, rq);
-	cpumask_set_cpu(qp->q_id % num_online_cpus(), &mask);
-	return irq_set_affinity_hint(rq->irq, &mask);
+	cpumask_set_cpu(qp->q_id % num_online_cpus(), &rq->affinity_mask);
+	return irq_set_affinity_hint(rq->irq, &rq->affinity_mask);
 }
 
 static void rx_free_irq(struct hinic_rxq *rxq)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/huawei/hinic/hinic_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/huawei/hinic/hinic_tx.c
@@ -45,7 +45,7 @@
 
 #define HW_CONS_IDX(sq)                 be16_to_cpu(*(u16 *)((sq)->hw_ci_addr))
 
-#define MIN_SKB_LEN                     17
+#define MIN_SKB_LEN			32
 
 #define	MAX_PAYLOAD_OFFSET	        221
 #define TRANSPORT_OFFSET(l4_hdr, skb)	((u32)((l4_hdr) - (skb)->data))
@@ -622,6 +622,8 @@
 	do {
 		hw_ci = HW_CONS_IDX(sq) & wq->mask;
 
+		dma_rmb();
+
 		/* Reading a WQEBB to get real WQE size and consumer index. */
 		sq_wqe = hinic_sq_read_wqebb(sq, &skb, &wqe_size, &sw_ci);
 		if ((!sq_wqe) ||
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ibm/ibmveth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ibm/ibmveth.c
@@ -1317,6 +1317,7 @@
 			int offset = ibmveth_rxq_frame_offset(adapter);
 			int csum_good = ibmveth_rxq_csum_good(adapter);
 			int lrg_pkt = ibmveth_rxq_large_packet(adapter);
+			__sum16 iph_check = 0;
 
 			skb = ibmveth_rxq_get_buffer(adapter);
 
@@ -1353,16 +1354,26 @@
 			skb_put(skb, length);
 			skb->protocol = eth_type_trans(skb, netdev);
 
-			if (csum_good) {
-				skb->ip_summed = CHECKSUM_UNNECESSARY;
-				ibmveth_rx_csum_helper(skb, adapter);
+			/* PHYP without PLSO support places a -1 in the ip
+			 * checksum for large send frames.
+			 */
+			if (skb->protocol == cpu_to_be16(ETH_P_IP)) {
+				struct iphdr *iph = (struct iphdr *)skb->data;
+
+				iph_check = iph->check;
 			}
 
-			if (length > netdev->mtu + ETH_HLEN) {
+			if ((length > netdev->mtu + ETH_HLEN) ||
+			    lrg_pkt || iph_check == 0xffff) {
 				ibmveth_rx_mss_helper(skb, mss, lrg_pkt);
 				adapter->rx_large_packets++;
 			}
 
+			if (csum_good) {
+				skb->ip_summed = CHECKSUM_UNNECESSARY;
+				ibmveth_rx_csum_helper(skb, adapter);
+			}
+
 			napi_gro_receive(napi, skb);	/* send it up */
 
 			netdev->stats.rx_packets++;
@@ -1682,7 +1693,7 @@
 	}
 
 	netdev->min_mtu = IBMVETH_MIN_MTU;
-	netdev->max_mtu = ETH_MAX_MTU;
+	netdev->max_mtu = ETH_MAX_MTU - IBMVETH_BUFF_OH;
 
 	memcpy(netdev->dev_addr, mac_addr_p, ETH_ALEN);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ibm/ibmvnic.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ibm/ibmvnic.c
@@ -176,7 +176,7 @@
 	ltb->map_id = adapter->map_id;
 	adapter->map_id++;
 
-	init_completion(&adapter->fw_done);
+	reinit_completion(&adapter->fw_done);
 	rc = send_request_map(adapter, ltb->addr,
 			      ltb->size, ltb->map_id);
 	if (rc) {
@@ -202,8 +202,13 @@
 	if (!ltb->buff)
 		return;
 
+	/* VIOS automatically unmaps the long term buffer at remote
+	 * end for the following resets:
+	 * FAILOVER, MOBILITY, TIMEOUT.
+	 */
 	if (adapter->reset_reason != VNIC_RESET_FAILOVER &&
-	    adapter->reset_reason != VNIC_RESET_MOBILITY)
+	    adapter->reset_reason != VNIC_RESET_MOBILITY &&
+	    adapter->reset_reason != VNIC_RESET_TIMEOUT)
 		send_request_unmap(adapter, ltb->map_id);
 	dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr);
 }
@@ -215,7 +220,7 @@
 
 	memset(ltb->buff, 0, ltb->size);
 
-	init_completion(&adapter->fw_done);
+	reinit_completion(&adapter->fw_done);
 	rc = send_request_map(adapter, ltb->addr, ltb->size, ltb->map_id);
 	if (rc)
 		return rc;
@@ -416,6 +421,9 @@
 	int i, j, rc;
 	u64 *size_array;
 
+	if (!adapter->rx_pool)
+		return -1;
+
 	size_array = (u64 *)((u8 *)(adapter->login_rsp_buf) +
 		be32_to_cpu(adapter->login_rsp_buf->off_rxadd_buff_size));
 
@@ -586,6 +594,9 @@
 	int tx_scrqs;
 	int i, rc;
 
+	if (!adapter->tx_pool)
+		return -1;
+
 	tx_scrqs = be32_to_cpu(adapter->login_rsp_buf->num_txsubm_subcrqs);
 	for (i = 0; i < tx_scrqs; i++) {
 		rc = reset_one_tx_pool(adapter, &adapter->tso_pool[i]);
@@ -779,12 +790,13 @@
 	struct ibmvnic_adapter *adapter = netdev_priv(netdev);
 	unsigned long timeout = msecs_to_jiffies(30000);
 	int retry_count = 0;
+	int retries = 10;
 	bool retry;
 	int rc;
 
 	do {
 		retry = false;
-		if (retry_count > IBMVNIC_MAX_QUEUES) {
+		if (retry_count > retries) {
 			netdev_warn(netdev, "Login attempts exceeded\n");
 			return -1;
 		}
@@ -799,11 +811,23 @@
 
 		if (!wait_for_completion_timeout(&adapter->init_done,
 						 timeout)) {
-			netdev_warn(netdev, "Login timed out\n");
-			return -1;
+			netdev_warn(netdev, "Login timed out, retrying...\n");
+			retry = true;
+			adapter->init_done_rc = 0;
+			retry_count++;
+			continue;
 		}
 
-		if (adapter->init_done_rc == PARTIALSUCCESS) {
+		if (adapter->init_done_rc == ABORTED) {
+			netdev_warn(netdev, "Login aborted, retrying...\n");
+			retry = true;
+			adapter->init_done_rc = 0;
+			retry_count++;
+			/* FW or device may be busy, so
+			 * wait a bit before retrying login
+			 */
+			msleep(500);
+		} else if (adapter->init_done_rc == PARTIALSUCCESS) {
 			retry_count++;
 			release_sub_crqs(adapter, 1);
 
@@ -943,7 +967,7 @@
 	if (adapter->vpd->buff)
 		len = adapter->vpd->len;
 
-	init_completion(&adapter->fw_done);
+	reinit_completion(&adapter->fw_done);
 	crq.get_vpd_size.first = IBMVNIC_CRQ_CMD;
 	crq.get_vpd_size.cmd = GET_VPD_SIZE;
 	rc = ibmvnic_send_crq(adapter, &crq);
@@ -1090,18 +1114,27 @@
 	if (adapter->state != VNIC_CLOSED) {
 		rc = ibmvnic_login(netdev);
 		if (rc)
-			return rc;
+			goto out;
 
 		rc = init_resources(adapter);
 		if (rc) {
 			netdev_err(netdev, "failed to initialize resources\n");
 			release_resources(adapter);
-			return rc;
+			goto out;
 		}
 	}
 
 	rc = __ibmvnic_open(netdev);
 
+out:
+	/*
+	 * If open fails due to a pending failover, set device state and
+	 * return. Device operation will be handled by reset routine.
+	 */
+	if (rc && adapter->failover_pending) {
+		adapter->state = VNIC_OPEN;
+		rc = 0;
+	}
 	return rc;
 }
 
@@ -1226,10 +1259,8 @@
 
 	adapter->state = VNIC_CLOSING;
 	rc = set_link_state(adapter, IBMVNIC_LOGICAL_LNK_DN);
-	if (rc)
-		return rc;
 	adapter->state = VNIC_CLOSED;
-	return 0;
+	return rc;
 }
 
 static int ibmvnic_close(struct net_device *netdev)
@@ -1492,6 +1523,9 @@
 		skb_copy_from_linear_data(skb, dst, skb->len);
 	}
 
+	/* post changes to long_term_buff *dst before VIOS accessing it */
+	dma_wmb();
+
 	tx_pool->consumer_index =
 	    (tx_pool->consumer_index + 1) % tx_pool->num_buffers;
 
@@ -1689,7 +1723,7 @@
 	crq.change_mac_addr.cmd = CHANGE_MAC_ADDR;
 	ether_addr_copy(&crq.change_mac_addr.mac_addr[0], dev_addr);
 
-	init_completion(&adapter->fw_done);
+	reinit_completion(&adapter->fw_done);
 	rc = ibmvnic_send_crq(adapter, &crq);
 	if (rc) {
 		rc = -EIO;
@@ -1716,6 +1750,9 @@
 	int rc;
 
 	rc = 0;
+	if (!is_valid_ether_addr(addr->sa_data))
+		return -EADDRNOTAVAIL;
+
 	ether_addr_copy(adapter->mac_addr, addr->sa_data);
 	if (adapter->state != VNIC_PROBED)
 		rc = __ibmvnic_set_mac(netdev, addr->sa_data);
@@ -1819,6 +1856,13 @@
 		   rwi->reset_reason);
 
 	rtnl_lock();
+	/*
+	 * Now that we have the rtnl lock, clear any pending failover.
+	 * This will ensure ibmvnic_open() has either completed or will
+	 * block until failover is complete.
+	 */
+	if (rwi->reset_reason == VNIC_RESET_FAILOVER)
+		adapter->failover_pending = false;
 
 	netif_carrier_off(netdev);
 	adapter->reset_reason = rwi->reset_reason;
@@ -1865,13 +1909,18 @@
 			release_sub_crqs(adapter, 1);
 		} else {
 			rc = ibmvnic_reset_crq(adapter);
-			if (!rc)
+			if (rc == H_CLOSED || rc == H_SUCCESS) {
 				rc = vio_enable_interrupts(adapter->vdev);
+				if (rc)
+					netdev_err(adapter->netdev,
+						   "Reset failed to enable interrupts. rc=%d\n",
+						   rc);
+			}
 		}
 
 		if (rc) {
 			netdev_err(adapter->netdev,
-				   "Couldn't initialize crq. rc=%d\n", rc);
+				   "Reset couldn't initialize crq. rc=%d\n", rc);
 			goto out;
 		}
 
@@ -1900,7 +1949,10 @@
 		    adapter->req_rx_add_entries_per_subcrq !=
 		    old_num_rx_slots ||
 		    adapter->req_tx_entries_per_subcrq !=
-		    old_num_tx_slots) {
+		    old_num_tx_slots ||
+		    !adapter->rx_pool ||
+		    !adapter->tso_pool ||
+		    !adapter->tx_pool) {
 			release_rx_pools(adapter);
 			release_tx_pools(adapter);
 			release_napi(adapter);
@@ -1912,12 +1964,18 @@
 
 		} else {
 			rc = reset_tx_pools(adapter);
-			if (rc)
+			if (rc) {
+				netdev_dbg(adapter->netdev, "reset tx pools failed (%d)\n",
+						rc);
 				goto out;
+			}
 
 			rc = reset_rx_pools(adapter);
-			if (rc)
+			if (rc) {
+				netdev_dbg(adapter->netdev, "reset rx pools failed (%d)\n",
+						rc);
 				goto out;
+			}
 		}
 		ibmvnic_disable_irqs(adapter);
 	}
@@ -1941,8 +1999,11 @@
 	for (i = 0; i < adapter->req_rx_queues; i++)
 		napi_schedule(&adapter->napi[i]);
 
-	if (adapter->reset_reason != VNIC_RESET_FAILOVER)
+	if (adapter->reset_reason == VNIC_RESET_FAILOVER ||
+	    adapter->reset_reason == VNIC_RESET_MOBILITY) {
 		call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev);
+		call_netdevice_notifiers(NETDEV_RESEND_IGMP, netdev);
+	}
 
 	rc = 0;
 
@@ -2012,6 +2073,9 @@
 	if (rc)
 		return IBMVNIC_OPEN_FAILED;
 
+	call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev);
+	call_netdevice_notifiers(NETDEV_RESEND_IGMP, netdev);
+
 	return 0;
 }
 
@@ -2075,6 +2139,13 @@
 			/* CHANGE_PARAM requestor holds rtnl_lock */
 			rc = do_change_param_reset(adapter, rwi, reset_state);
 		} else if (adapter->force_reset_recovery) {
+			/*
+			 * Since we are doing a hard reset now, clear the
+			 * failover_pending flag so we don't ignore any
+			 * future MOBILITY or other resets.
+			 */
+			adapter->failover_pending = false;
+
 			/* Transport event occurred during previous reset */
 			if (adapter->wait_for_reset) {
 				/* Previous was CHANGE_PARAM; caller locked */
@@ -2138,9 +2209,15 @@
 	unsigned long flags;
 	int ret;
 
+	/*
+	 * If failover is pending don't schedule any other reset.
+	 * Instead let the failover complete. If there is already a
+	 * a failover reset scheduled, we will detect and drop the
+	 * duplicate reset when walking the ->rwi_list below.
+	 */
 	if (adapter->state == VNIC_REMOVING ||
 	    adapter->state == VNIC_REMOVED ||
-	    adapter->failover_pending) {
+	    (adapter->failover_pending && reason != VNIC_RESET_FAILOVER)) {
 		ret = EBUSY;
 		netdev_dbg(netdev, "Adapter removing or pending failover, skipping reset\n");
 		goto err;
@@ -2193,6 +2270,12 @@
 {
 	struct ibmvnic_adapter *adapter = netdev_priv(dev);
 
+	if (test_bit(0, &adapter->resetting)) {
+		netdev_err(adapter->netdev,
+			   "Adapter is resetting, skip timeout reset\n");
+		return;
+	}
+
 	ibmvnic_reset(adapter, VNIC_RESET_TIMEOUT);
 }
 
@@ -2234,6 +2317,12 @@
 
 		if (!pending_scrq(adapter, adapter->rx_scrq[scrq_num]))
 			break;
+		/* The queue entry at the current index is peeked at above
+		 * to determine that there is a valid descriptor awaiting
+		 * processing. We want to be sure that the current slot
+		 * holds a valid descriptor before reading its contents.
+		 */
+		dma_rmb();
 		next = ibmvnic_next_scrq(adapter, adapter->rx_scrq[scrq_num]);
 		rx_buff =
 		    (struct ibmvnic_rx_buff *)be64_to_cpu(next->
@@ -2258,6 +2347,8 @@
 		offset = be16_to_cpu(next->rx_comp.off_frame_data);
 		flags = next->rx_comp.flags;
 		skb = rx_buff->skb;
+		/* load long_term_buff before copying to skb */
+		dma_rmb();
 		skb_copy_to_linear_data(skb, rx_buff->data + offset,
 					length);
 
@@ -2316,7 +2407,7 @@
 	adapter->fallback.rx_entries = adapter->req_rx_add_entries_per_subcrq;
 	adapter->fallback.tx_entries = adapter->req_tx_entries_per_subcrq;
 
-	init_completion(&adapter->reset_done);
+	reinit_completion(&adapter->reset_done);
 	adapter->wait_for_reset = true;
 	rc = ibmvnic_reset(adapter, VNIC_RESET_CHANGE_PARAM);
 	if (rc)
@@ -2332,7 +2423,7 @@
 		adapter->desired.rx_entries = adapter->fallback.rx_entries;
 		adapter->desired.tx_entries = adapter->fallback.tx_entries;
 
-		init_completion(&adapter->reset_done);
+		reinit_completion(&adapter->reset_done);
 		adapter->wait_for_reset = true;
 		rc = ibmvnic_reset(adapter, VNIC_RESET_CHANGE_PARAM);
 		if (rc)
@@ -2603,7 +2694,7 @@
 	    cpu_to_be32(sizeof(struct ibmvnic_statistics));
 
 	/* Wait for data to be written */
-	init_completion(&adapter->stats_done);
+	reinit_completion(&adapter->stats_done);
 	rc = ibmvnic_send_crq(adapter, &crq);
 	if (rc)
 		return;
@@ -2694,6 +2785,9 @@
 {
 	int i, rc;
 
+	if (!adapter->tx_scrq || !adapter->rx_scrq)
+		return -EINVAL;
+
 	for (i = 0; i < adapter->req_tx_queues; i++) {
 		netdev_dbg(adapter->netdev, "Re-setting tx_scrq[%d]\n", i);
 		rc = reset_one_sub_crq_queue(adapter, adapter->tx_scrq[i]);
@@ -2912,13 +3006,18 @@
 		unsigned int pool = scrq->pool_index;
 		int num_entries = 0;
 
+		/* The queue entry at the current index is peeked at above
+		 * to determine that there is a valid descriptor awaiting
+		 * processing. We want to be sure that the current slot
+		 * holds a valid descriptor before reading its contents.
+		 */
+		dma_rmb();
+
 		next = ibmvnic_next_scrq(adapter, scrq);
 		for (i = 0; i < next->tx_comp.num_comps; i++) {
-			if (next->tx_comp.rcs[i]) {
+			if (next->tx_comp.rcs[i])
 				dev_err(dev, "tx error %x\n",
 					next->tx_comp.rcs[i]);
-				continue;
-			}
 			index = be32_to_cpu(next->tx_comp.correlators[i]);
 			if (index & IBMVNIC_TSO_POOL_MASK) {
 				tx_pool = &adapter->tso_pool[pool];
@@ -3067,7 +3166,7 @@
 req_tx_irq_failed:
 	for (j = 0; j < i; j++) {
 		free_irq(adapter->tx_scrq[j]->irq, adapter->tx_scrq[j]);
-		irq_dispose_mapping(adapter->rx_scrq[j]->irq);
+		irq_dispose_mapping(adapter->tx_scrq[j]->irq);
 	}
 	release_sub_crqs(adapter, 1);
 	return rc;
@@ -3312,6 +3411,11 @@
 	}
 	spin_unlock_irqrestore(&scrq->lock, flags);
 
+	/* Ensure that the entire buffer descriptor has been
+	 * loaded before reading its contents
+	 */
+	dma_rmb();
+
 	return entry;
 }
 
@@ -4040,8 +4144,13 @@
 		dev_err(dev, "Error %ld in CHANGE_MAC_ADDR_RSP\n", rc);
 		goto out;
 	}
+	/* crq->change_mac_addr.mac_addr is the requested one
+	 * crq->change_mac_addr_rsp.mac_addr is the returned valid one.
+	 */
 	ether_addr_copy(netdev->dev_addr,
 			&crq->change_mac_addr_rsp.mac_addr[0]);
+	ether_addr_copy(adapter->mac_addr,
+			&crq->change_mac_addr_rsp.mac_addr[0]);
 out:
 	complete(&adapter->fw_done);
 	return rc;
@@ -4408,7 +4517,7 @@
 	memset(&crq, 0, sizeof(crq));
 	crq.query_phys_parms.first = IBMVNIC_CRQ_CMD;
 	crq.query_phys_parms.cmd = QUERY_PHYS_PARMS;
-	init_completion(&adapter->fw_done);
+	reinit_completion(&adapter->fw_done);
 	rc = ibmvnic_send_crq(adapter, &crq);
 	if (rc)
 		return rc;
@@ -4438,7 +4547,7 @@
 	case IBMVNIC_1GBPS:
 		adapter->speed = SPEED_1000;
 		break;
-	case IBMVNIC_10GBP:
+	case IBMVNIC_10GBPS:
 		adapter->speed = SPEED_10000;
 		break;
 	case IBMVNIC_25GBPS:
@@ -4453,6 +4562,9 @@
 	case IBMVNIC_100GBPS:
 		adapter->speed = SPEED_100000;
 		break;
+	case IBMVNIC_200GBPS:
+		adapter->speed = SPEED_200000;
+		break;
 	default:
 		if (netif_carrier_ok(netdev))
 			netdev_warn(netdev, "Unknown speed 0x%08x\n", rspeed);
@@ -4486,12 +4598,26 @@
 		case IBMVNIC_CRQ_INIT:
 			dev_info(dev, "Partner initialized\n");
 			adapter->from_passive_init = true;
-			adapter->failover_pending = false;
 			if (!completion_done(&adapter->init_done)) {
 				complete(&adapter->init_done);
 				adapter->init_done_rc = -EIO;
 			}
-			ibmvnic_reset(adapter, VNIC_RESET_FAILOVER);
+			rc = ibmvnic_reset(adapter, VNIC_RESET_FAILOVER);
+			if (rc && rc != -EBUSY) {
+				/* We were unable to schedule the failover
+				 * reset either because the adapter was still
+				 * probing (eg: during kexec) or we could not
+				 * allocate memory. Clear the failover_pending
+				 * flag since no one else will. We ignore
+				 * EBUSY because it means either FAILOVER reset
+				 * is already scheduled or the adapter is
+				 * being removed.
+				 */
+				netdev_err(netdev,
+					   "Error %ld scheduling failover reset\n",
+					   rc);
+				adapter->failover_pending = false;
+			}
 			break;
 		case IBMVNIC_CRQ_INIT_COMPLETE:
 			dev_info(dev, "Partner initialization complete\n");
@@ -4535,12 +4661,10 @@
 			dev_err(dev, "Error %ld in VERSION_EXCHG_RSP\n", rc);
 			break;
 		}
-		dev_info(dev, "Partner protocol version is %d\n",
-			 crq->version_exchange_rsp.version);
-		if (be16_to_cpu(crq->version_exchange_rsp.version) <
-		    ibmvnic_version)
-			ibmvnic_version =
+		ibmvnic_version =
 			    be16_to_cpu(crq->version_exchange_rsp.version);
+		dev_info(dev, "Partner protocol version is %d\n",
+			 ibmvnic_version);
 		send_cap_queries(adapter);
 		break;
 	case QUERY_CAPABILITY_RSP:
@@ -4650,6 +4774,12 @@
 	while (!done) {
 		/* Pull all the valid messages off the CRQ */
 		while ((crq = ibmvnic_next_crq(adapter)) != NULL) {
+			/* This barrier makes sure ibmvnic_next_crq()'s
+			 * crq->generic.first & IBMVNIC_CRQ_CMD_RSP is loaded
+			 * before ibmvnic_handle_crq()'s
+			 * switch(gen_crq->first) and switch(gen_crq->cmd).
+			 */
+			dma_rmb();
 			ibmvnic_handle_crq(crq, adapter);
 			crq->generic.first = 0;
 		}
@@ -4696,6 +4826,9 @@
 	} while (rc == H_BUSY || H_IS_LONG_BUSY(rc));
 
 	/* Clean out the queue */
+	if (!crq->msgs)
+		return -EINVAL;
+
 	memset(crq->msgs, 0, PAGE_SIZE);
 	crq->cur = 0;
 	crq->active = false;
@@ -4960,6 +5093,9 @@
 	INIT_LIST_HEAD(&adapter->rwi_list);
 	spin_lock_init(&adapter->rwi_lock);
 	init_completion(&adapter->init_done);
+	init_completion(&adapter->fw_done);
+	init_completion(&adapter->reset_done);
+	init_completion(&adapter->stats_done);
 	clear_bit(0, &adapter->resetting);
 
 	do {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ibm/ibmvnic.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ibm/ibmvnic.h
@@ -373,7 +373,7 @@
 #define IBMVNIC_10MBPS		0x40000000
 #define IBMVNIC_100MBPS		0x20000000
 #define IBMVNIC_1GBPS		0x10000000
-#define IBMVNIC_10GBP		0x08000000
+#define IBMVNIC_10GBPS		0x08000000
 #define IBMVNIC_40GBPS		0x04000000
 #define IBMVNIC_100GBPS		0x02000000
 #define IBMVNIC_25GBPS		0x01000000
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -542,8 +542,13 @@
 	WARN_ON(in_interrupt());
 	while (test_and_set_bit(__E1000_RESETTING, &adapter->flags))
 		msleep(1);
-	e1000_down(adapter);
-	e1000_up(adapter);
+
+	/* only run the task if not already down */
+	if (!test_bit(__E1000_DOWN, &adapter->flags)) {
+		e1000_down(adapter);
+		e1000_up(adapter);
+	}
+
 	clear_bit(__E1000_RESETTING, &adapter->flags);
 }
 
@@ -1433,10 +1438,15 @@
 	struct e1000_hw *hw = &adapter->hw;
 	int count = E1000_CHECK_RESET_COUNT;
 
-	while (test_bit(__E1000_RESETTING, &adapter->flags) && count--)
+	while (test_and_set_bit(__E1000_RESETTING, &adapter->flags) && count--)
 		usleep_range(10000, 20000);
 
-	WARN_ON(test_bit(__E1000_RESETTING, &adapter->flags));
+	WARN_ON(count < 0);
+
+	/* signal that we're down so that the reset task will no longer run */
+	set_bit(__E1000_DOWN, &adapter->flags);
+	clear_bit(__E1000_RESETTING, &adapter->flags);
+
 	e1000_down(adapter);
 	e1000_power_down_phy(adapter);
 	e1000_free_irq(adapter);
@@ -3140,8 +3150,9 @@
 		hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb);
 		if (skb->data_len && hdr_len == len) {
 			switch (hw->mac_type) {
+			case e1000_82544: {
 				unsigned int pull_size;
-			case e1000_82544:
+
 				/* Make sure we have room to chop off 4 bytes,
 				 * and that the end alignment will work out to
 				 * this hardware's requirements
@@ -3162,6 +3173,7 @@
 				}
 				len = skb_headlen(skb);
 				break;
+			}
 			default:
 				/* do nothing */
 				break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000e/e1000.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -185,13 +185,12 @@
 
 /* board specific private data structure */
 struct e1000_adapter {
+	struct timer_list watchdog_timer;
 	struct timer_list phy_info_timer;
 	struct timer_list blink_timer;
 
 	struct work_struct reset_task;
-	struct delayed_work watchdog_task;
-
-	struct workqueue_struct *e1000_workqueue;
+	struct work_struct watchdog_task;
 
 	const struct e1000_info *ei;
 
@@ -577,7 +576,6 @@
 
 #define er32(reg)	__er32(hw, E1000_##reg)
 
-s32 __ew32_prepare(struct e1000_hw *hw);
 void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val);
 
 #define ew32(reg, val)	__ew32(hw, E1000_##reg, (val))
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000e/hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000e/hw.h
@@ -86,6 +86,12 @@
 #define E1000_DEV_ID_PCH_ICP_I219_V8		0x15E0
 #define E1000_DEV_ID_PCH_ICP_I219_LM9		0x15E1
 #define E1000_DEV_ID_PCH_ICP_I219_V9		0x15E2
+#define E1000_DEV_ID_PCH_CMP_I219_LM10		0x0D4E
+#define E1000_DEV_ID_PCH_CMP_I219_V10		0x0D4F
+#define E1000_DEV_ID_PCH_CMP_I219_LM11		0x0D4C
+#define E1000_DEV_ID_PCH_CMP_I219_V11		0x0D4D
+#define E1000_DEV_ID_PCH_CMP_I219_LM12		0x0D53
+#define E1000_DEV_ID_PCH_CMP_I219_V12		0x0D55
 
 #define E1000_REVISION_4	4
 
@@ -662,6 +668,7 @@
 	bool kmrn_lock_loss_workaround_enabled;
 	struct e1000_shadow_ram shadow_ram[E1000_ICH8_SHADOW_RAM_WORDS];
 	bool nvm_k1_enabled;
+	bool disable_k1_off;
 	bool eee_disable;
 	u16 eee_lp_ability;
 	enum e1000_ulp_state ulp_state;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -1237,9 +1237,9 @@
 			ew32(H2ME, mac_reg);
 		}
 
-		/* Poll up to 300msec for ME to clear ULP_CFG_DONE. */
+		/* Poll up to 2.5sec for ME to clear ULP_CFG_DONE. */
 		while (er32(FWSM) & E1000_FWSM_ULP_CFG_DONE) {
-			if (i++ == 30) {
+			if (i++ == 250) {
 				ret_val = -E1000_ERR_PHY;
 				goto out;
 			}
@@ -1538,6 +1538,9 @@
 				fextnvm6 &= ~E1000_FEXTNVM6_K1_OFF_ENABLE;
 		}
 
+		if (hw->dev_spec.ich8lan.disable_k1_off == true)
+			fextnvm6 &= ~E1000_FEXTNVM6_K1_OFF_ENABLE;
+
 		ew32(FEXTNVM6, fextnvm6);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000e/netdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -119,14 +119,12 @@
  * has bit 24 set while ME is accessing MAC CSR registers, wait if it is set
  * and try again a number of times.
  **/
-s32 __ew32_prepare(struct e1000_hw *hw)
+static void __ew32_prepare(struct e1000_hw *hw)
 {
 	s32 i = E1000_ICH_FWSM_PCIM2PCI_COUNT;
 
 	while ((er32(FWSM) & E1000_ICH_FWSM_PCIM2PCI) && --i)
 		udelay(50);
-
-	return i;
 }
 
 void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val)
@@ -607,11 +605,11 @@
 {
 	struct e1000_adapter *adapter = rx_ring->adapter;
 	struct e1000_hw *hw = &adapter->hw;
-	s32 ret_val = __ew32_prepare(hw);
 
+	__ew32_prepare(hw);
 	writel(i, rx_ring->tail);
 
-	if (unlikely(!ret_val && (i != readl(rx_ring->tail)))) {
+	if (unlikely(i != readl(rx_ring->tail))) {
 		u32 rctl = er32(RCTL);
 
 		ew32(RCTL, rctl & ~E1000_RCTL_EN);
@@ -624,11 +622,11 @@
 {
 	struct e1000_adapter *adapter = tx_ring->adapter;
 	struct e1000_hw *hw = &adapter->hw;
-	s32 ret_val = __ew32_prepare(hw);
 
+	__ew32_prepare(hw);
 	writel(i, tx_ring->tail);
 
-	if (unlikely(!ret_val && (i != readl(tx_ring->tail)))) {
+	if (unlikely(i != readl(tx_ring->tail))) {
 		u32 tctl = er32(TCTL);
 
 		ew32(TCTL, tctl & ~E1000_TCTL_EN);
@@ -1780,8 +1778,7 @@
 		}
 		/* guard against interrupt when we're going down */
 		if (!test_bit(__E1000_DOWN, &adapter->state))
-			mod_delayed_work(adapter->e1000_workqueue,
-					 &adapter->watchdog_task, HZ);
+			mod_timer(&adapter->watchdog_timer, jiffies + 1);
 	}
 
 	/* Reset on uncorrectable ECC error */
@@ -1861,8 +1858,7 @@
 		}
 		/* guard against interrupt when we're going down */
 		if (!test_bit(__E1000_DOWN, &adapter->state))
-			mod_delayed_work(adapter->e1000_workqueue,
-					 &adapter->watchdog_task, HZ);
+			mod_timer(&adapter->watchdog_timer, jiffies + 1);
 	}
 
 	/* Reset on uncorrectable ECC error */
@@ -1907,8 +1903,7 @@
 		hw->mac.get_link_status = true;
 		/* guard against interrupt when we're going down */
 		if (!test_bit(__E1000_DOWN, &adapter->state))
-			mod_delayed_work(adapter->e1000_workqueue,
-					 &adapter->watchdog_task, HZ);
+			mod_timer(&adapter->watchdog_timer, jiffies + 1);
 	}
 
 	if (!test_bit(__E1000_DOWN, &adapter->state))
@@ -4281,6 +4276,7 @@
 
 	napi_synchronize(&adapter->napi);
 
+	del_timer_sync(&adapter->watchdog_timer);
 	del_timer_sync(&adapter->phy_info_timer);
 
 	spin_lock(&adapter->stats64_lock);
@@ -4715,12 +4711,12 @@
 
 	pm_runtime_get_sync(&pdev->dev);
 
-	if (!test_bit(__E1000_DOWN, &adapter->state)) {
+	if (netif_device_present(netdev)) {
 		e1000e_down(adapter, true);
 		e1000_free_irq(adapter);
 
 		/* Link status message must follow this format */
-		pr_info("%s NIC Link is Down\n", adapter->netdev->name);
+		pr_info("%s NIC Link is Down\n", netdev->name);
 	}
 
 	napi_disable(&adapter->napi);
@@ -5152,11 +5148,25 @@
 	}
 }
 
+/**
+ * e1000_watchdog - Timer Call-back
+ * @data: pointer to adapter cast into an unsigned long
+ **/
+static void e1000_watchdog(struct timer_list *t)
+{
+	struct e1000_adapter *adapter = from_timer(adapter, t, watchdog_timer);
+
+	/* Do the rest outside of interrupt context */
+	schedule_work(&adapter->watchdog_task);
+
+	/* TODO: make this use queue_delayed_work() */
+}
+
 static void e1000_watchdog_task(struct work_struct *work)
 {
 	struct e1000_adapter *adapter = container_of(work,
 						     struct e1000_adapter,
-						     watchdog_task.work);
+						     watchdog_task);
 	struct net_device *netdev = adapter->netdev;
 	struct e1000_mac_info *mac = &adapter->hw.mac;
 	struct e1000_phy_info *phy = &adapter->hw.phy;
@@ -5277,6 +5287,10 @@
 					/* oops */
 					break;
 				}
+				if (hw->mac.type == e1000_pch_spt) {
+					netdev->features &= ~NETIF_F_TSO;
+					netdev->features &= ~NETIF_F_TSO6;
+				}
 			}
 
 			/* enable transmits in the hardware, need to do this
@@ -5404,9 +5418,8 @@
 
 	/* Reset the timer */
 	if (!test_bit(__E1000_DOWN, &adapter->state))
-		queue_delayed_work(adapter->e1000_workqueue,
-				   &adapter->watchdog_task,
-				   round_jiffies(2 * HZ));
+		mod_timer(&adapter->watchdog_timer,
+			  round_jiffies(jiffies + 2 * HZ));
 }
 
 #define E1000_TX_FLAGS_CSUM		0x00000001
@@ -6294,14 +6307,186 @@
 	pm_runtime_put_sync(netdev->dev.parent);
 }
 
+/* S0ix implementation */
+static void e1000e_s0ix_entry_flow(struct e1000_adapter *adapter)
+{
+	struct e1000_hw *hw = &adapter->hw;
+	u32 mac_data;
+	u16 phy_data;
+
+	/* Disable the periodic inband message,
+	 * don't request PCIe clock in K1 page770_17[10:9] = 10b
+	 */
+	e1e_rphy(hw, HV_PM_CTRL, &phy_data);
+	phy_data &= ~HV_PM_CTRL_K1_CLK_REQ;
+	phy_data |= BIT(10);
+	e1e_wphy(hw, HV_PM_CTRL, phy_data);
+
+	/* Make sure we don't exit K1 every time a new packet arrives
+	 * 772_29[5] = 1 CS_Mode_Stay_In_K1
+	 */
+	e1e_rphy(hw, I217_CGFREG, &phy_data);
+	phy_data |= BIT(5);
+	e1e_wphy(hw, I217_CGFREG, phy_data);
+
+	/* Change the MAC/PHY interface to SMBus
+	 * Force the SMBus in PHY page769_23[0] = 1
+	 * Force the SMBus in MAC CTRL_EXT[11] = 1
+	 */
+	e1e_rphy(hw, CV_SMB_CTRL, &phy_data);
+	phy_data |= CV_SMB_CTRL_FORCE_SMBUS;
+	e1e_wphy(hw, CV_SMB_CTRL, phy_data);
+	mac_data = er32(CTRL_EXT);
+	mac_data |= E1000_CTRL_EXT_FORCE_SMBUS;
+	ew32(CTRL_EXT, mac_data);
+
+	/* DFT control: PHY bit: page769_20[0] = 1
+	 * Gate PPW via EXTCNF_CTRL - set 0x0F00[7] = 1
+	 */
+	e1e_rphy(hw, I82579_DFT_CTRL, &phy_data);
+	phy_data |= BIT(0);
+	e1e_wphy(hw, I82579_DFT_CTRL, phy_data);
+
+	mac_data = er32(EXTCNF_CTRL);
+	mac_data |= E1000_EXTCNF_CTRL_GATE_PHY_CFG;
+	ew32(EXTCNF_CTRL, mac_data);
+
+	/* Check MAC Tx/Rx packet buffer pointers.
+	 * Reset MAC Tx/Rx packet buffer pointers to suppress any
+	 * pending traffic indication that would prevent power gating.
+	 */
+	mac_data = er32(TDFH);
+	if (mac_data)
+		ew32(TDFH, 0);
+	mac_data = er32(TDFT);
+	if (mac_data)
+		ew32(TDFT, 0);
+	mac_data = er32(TDFHS);
+	if (mac_data)
+		ew32(TDFHS, 0);
+	mac_data = er32(TDFTS);
+	if (mac_data)
+		ew32(TDFTS, 0);
+	mac_data = er32(TDFPC);
+	if (mac_data)
+		ew32(TDFPC, 0);
+	mac_data = er32(RDFH);
+	if (mac_data)
+		ew32(RDFH, 0);
+	mac_data = er32(RDFT);
+	if (mac_data)
+		ew32(RDFT, 0);
+	mac_data = er32(RDFHS);
+	if (mac_data)
+		ew32(RDFHS, 0);
+	mac_data = er32(RDFTS);
+	if (mac_data)
+		ew32(RDFTS, 0);
+	mac_data = er32(RDFPC);
+	if (mac_data)
+		ew32(RDFPC, 0);
+
+	/* Enable the Dynamic Power Gating in the MAC */
+	mac_data = er32(FEXTNVM7);
+	mac_data |= BIT(22);
+	ew32(FEXTNVM7, mac_data);
+
+	/* Disable the time synchronization clock */
+	mac_data = er32(FEXTNVM7);
+	mac_data |= BIT(31);
+	mac_data &= ~BIT(0);
+	ew32(FEXTNVM7, mac_data);
+
+	/* Dynamic Power Gating Enable */
+	mac_data = er32(CTRL_EXT);
+	mac_data |= BIT(3);
+	ew32(CTRL_EXT, mac_data);
+
+	/* Enable the Dynamic Clock Gating in the DMA and MAC */
+	mac_data = er32(CTRL_EXT);
+	mac_data |= E1000_CTRL_EXT_DMA_DYN_CLK_EN;
+	ew32(CTRL_EXT, mac_data);
+
+	/* No MAC DPG gating SLP_S0 in modern standby
+	 * Switch the logic of the lanphypc to use PMC counter
+	 */
+	mac_data = er32(FEXTNVM5);
+	mac_data |= BIT(7);
+	ew32(FEXTNVM5, mac_data);
+}
+
+static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter)
+{
+	struct e1000_hw *hw = &adapter->hw;
+	u32 mac_data;
+	u16 phy_data;
+
+	/* Disable the Dynamic Power Gating in the MAC */
+	mac_data = er32(FEXTNVM7);
+	mac_data &= 0xFFBFFFFF;
+	ew32(FEXTNVM7, mac_data);
+
+	/* Enable the time synchronization clock */
+	mac_data = er32(FEXTNVM7);
+	mac_data |= BIT(0);
+	ew32(FEXTNVM7, mac_data);
+
+	/* Disable Dynamic Power Gating */
+	mac_data = er32(CTRL_EXT);
+	mac_data &= 0xFFFFFFF7;
+	ew32(CTRL_EXT, mac_data);
+
+	/* Disable the Dynamic Clock Gating in the DMA and MAC */
+	mac_data = er32(CTRL_EXT);
+	mac_data &= 0xFFF7FFFF;
+	ew32(CTRL_EXT, mac_data);
+
+	/* Revert the lanphypc logic to use the internal Gbe counter
+	 * and not the PMC counter
+	 */
+	mac_data = er32(FEXTNVM5);
+	mac_data &= 0xFFFFFF7F;
+	ew32(FEXTNVM5, mac_data);
+
+	/* Enable the periodic inband message,
+	 * Request PCIe clock in K1 page770_17[10:9] =01b
+	 */
+	e1e_rphy(hw, HV_PM_CTRL, &phy_data);
+	phy_data &= 0xFBFF;
+	phy_data |= HV_PM_CTRL_K1_CLK_REQ;
+	e1e_wphy(hw, HV_PM_CTRL, phy_data);
+
+	/* Return back configuration
+	 * 772_29[5] = 0 CS_Mode_Stay_In_K1
+	 */
+	e1e_rphy(hw, I217_CGFREG, &phy_data);
+	phy_data &= 0xFFDF;
+	e1e_wphy(hw, I217_CGFREG, phy_data);
+
+	/* Change the MAC/PHY interface to Kumeran
+	 * Unforce the SMBus in PHY page769_23[0] = 0
+	 * Unforce the SMBus in MAC CTRL_EXT[11] = 0
+	 */
+	e1e_rphy(hw, CV_SMB_CTRL, &phy_data);
+	phy_data &= ~CV_SMB_CTRL_FORCE_SMBUS;
+	e1e_wphy(hw, CV_SMB_CTRL, phy_data);
+	mac_data = er32(CTRL_EXT);
+	mac_data &= ~E1000_CTRL_EXT_FORCE_SMBUS;
+	ew32(CTRL_EXT, mac_data);
+}
+
 static int e1000e_pm_freeze(struct device *dev)
 {
 	struct net_device *netdev = dev_get_drvdata(dev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
+	bool present;
+
+	rtnl_lock();
 
+	present = netif_device_present(netdev);
 	netif_device_detach(netdev);
 
-	if (netif_running(netdev)) {
+	if (present && netif_running(netdev)) {
 		int count = E1000_CHECK_RESET_COUNT;
 
 		while (test_bit(__E1000_RESETTING, &adapter->state) && count--)
@@ -6313,6 +6498,8 @@
 		e1000e_down(adapter, false);
 		e1000_free_irq(adapter);
 	}
+	rtnl_unlock();
+
 	e1000e_reset_interrupt_capability(adapter);
 
 	/* Allow time for pending master requests to run */
@@ -6326,11 +6513,17 @@
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
-	u32 ctrl, ctrl_ext, rctl, status;
-	/* Runtime suspend should only enable wakeup for link changes */
-	u32 wufc = runtime ? E1000_WUFC_LNKC : adapter->wol;
+	u32 ctrl, ctrl_ext, rctl, status, wufc;
 	int retval = 0;
 
+	/* Runtime suspend should only enable wakeup for link changes */
+	if (runtime)
+		wufc = E1000_WUFC_LNKC;
+	else if (device_may_wakeup(&pdev->dev))
+		wufc = adapter->wol;
+	else
+		wufc = 0;
+
 	status = er32(STATUS);
 	if (status & E1000_STATUS_LU)
 		wufc &= ~E1000_WUFC_LNKC;
@@ -6387,7 +6580,7 @@
 	if (adapter->hw.phy.type == e1000_phy_igp_3) {
 		e1000e_igp3_phy_powerdown_workaround_ich8lan(&adapter->hw);
 	} else if (hw->mac.type >= e1000_pch_lpt) {
-		if (!(wufc & (E1000_WUFC_EX | E1000_WUFC_MC | E1000_WUFC_BC)))
+		if (wufc && !(wufc & (E1000_WUFC_EX | E1000_WUFC_MC | E1000_WUFC_BC)))
 			/* ULP does not support wake from unicast, multicast
 			 * or broadcast.
 			 */
@@ -6560,6 +6753,30 @@
 	__e1000e_disable_aspm(pdev, state, 1);
 }
 
+static int e1000e_pm_thaw(struct device *dev)
+{
+	struct net_device *netdev = dev_get_drvdata(dev);
+	struct e1000_adapter *adapter = netdev_priv(netdev);
+	int rc = 0;
+
+	e1000e_set_interrupt_capability(adapter);
+
+	rtnl_lock();
+	if (netif_running(netdev)) {
+		rc = e1000_request_irq(adapter);
+		if (rc)
+			goto err_irq;
+
+		e1000e_up(adapter);
+	}
+
+	netif_device_attach(netdev);
+err_irq:
+	rtnl_unlock();
+
+	return rc;
+}
+
 #ifdef CONFIG_PM
 static int __e1000_resume(struct pci_dev *pdev)
 {
@@ -6627,29 +6844,12 @@
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int e1000e_pm_thaw(struct device *dev)
-{
-	struct net_device *netdev = dev_get_drvdata(dev);
-	struct e1000_adapter *adapter = netdev_priv(netdev);
-
-	e1000e_set_interrupt_capability(adapter);
-	if (netif_running(netdev)) {
-		u32 err = e1000_request_irq(adapter);
-
-		if (err)
-			return err;
-
-		e1000e_up(adapter);
-	}
-
-	netif_device_attach(netdev);
-
-	return 0;
-}
-
 static int e1000e_pm_suspend(struct device *dev)
 {
+	struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev));
+	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct pci_dev *pdev = to_pci_dev(dev);
+	struct e1000_hw *hw = &adapter->hw;
 	int rc;
 
 	e1000e_flush_lpic(pdev);
@@ -6660,14 +6860,25 @@
 	if (rc)
 		e1000e_pm_thaw(dev);
 
+	/* Introduce S0ix implementation */
+	if (hw->mac.type >= e1000_pch_cnp)
+		e1000e_s0ix_entry_flow(adapter);
+
 	return rc;
 }
 
 static int e1000e_pm_resume(struct device *dev)
 {
+	struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev));
+	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct pci_dev *pdev = to_pci_dev(dev);
+	struct e1000_hw *hw = &adapter->hw;
 	int rc;
 
+	/* Introduce S0ix implementation */
+	if (hw->mac.type >= e1000_pch_cnp)
+		e1000e_s0ix_exit_flow(adapter);
+
 	rc = __e1000_resume(pdev);
 	if (rc)
 		return rc;
@@ -6818,16 +7029,11 @@
 static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev,
 						pci_channel_state_t state)
 {
-	struct net_device *netdev = pci_get_drvdata(pdev);
-	struct e1000_adapter *adapter = netdev_priv(netdev);
-
-	netif_device_detach(netdev);
+	e1000e_pm_freeze(&pdev->dev);
 
 	if (state == pci_channel_io_perm_failure)
 		return PCI_ERS_RESULT_DISCONNECT;
 
-	if (netif_running(netdev))
-		e1000e_down(adapter, true);
 	pci_disable_device(pdev);
 
 	/* Request a slot slot reset. */
@@ -6893,10 +7099,7 @@
 
 	e1000_init_manageability_pt(adapter);
 
-	if (netif_running(netdev))
-		e1000e_up(adapter);
-
-	netif_device_attach(netdev);
+	e1000e_pm_thaw(&pdev->dev);
 
 	/* If the controller has AMT, do not set DRV_LOAD until the interface
 	 * is up.  For all other cases, let the f/w know that the h/w is now
@@ -7259,21 +7462,11 @@
 		goto err_eeprom;
 	}
 
-	adapter->e1000_workqueue = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0,
-						   e1000e_driver_name);
-
-	if (!adapter->e1000_workqueue) {
-		err = -ENOMEM;
-		goto err_workqueue;
-	}
-
-	INIT_DELAYED_WORK(&adapter->watchdog_task, e1000_watchdog_task);
-	queue_delayed_work(adapter->e1000_workqueue, &adapter->watchdog_task,
-			   0);
-
+	timer_setup(&adapter->watchdog_timer, e1000_watchdog, 0);
 	timer_setup(&adapter->phy_info_timer, e1000_update_phy_info, 0);
 
 	INIT_WORK(&adapter->reset_task, e1000_reset_task);
+	INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task);
 	INIT_WORK(&adapter->downshift_task, e1000e_downshift_workaround);
 	INIT_WORK(&adapter->update_phy_task, e1000e_update_phy_task);
 	INIT_WORK(&adapter->print_hang_task, e1000_print_hw_hang);
@@ -7367,9 +7560,6 @@
 	return 0;
 
 err_register:
-	flush_workqueue(adapter->e1000_workqueue);
-	destroy_workqueue(adapter->e1000_workqueue);
-err_workqueue:
 	if (!(adapter->flags & FLAG_HAS_AMT))
 		e1000e_release_hw_control(adapter);
 err_eeprom:
@@ -7407,26 +7597,22 @@
 {
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
-	bool down = test_bit(__E1000_DOWN, &adapter->state);
 
 	e1000e_ptp_remove(adapter);
 
 	/* The timers may be rescheduled, so explicitly disable them
 	 * from being rescheduled.
 	 */
-	if (!down)
-		set_bit(__E1000_DOWN, &adapter->state);
+	set_bit(__E1000_DOWN, &adapter->state);
+	del_timer_sync(&adapter->watchdog_timer);
 	del_timer_sync(&adapter->phy_info_timer);
 
 	cancel_work_sync(&adapter->reset_task);
+	cancel_work_sync(&adapter->watchdog_task);
 	cancel_work_sync(&adapter->downshift_task);
 	cancel_work_sync(&adapter->update_phy_task);
 	cancel_work_sync(&adapter->print_hang_task);
 
-	cancel_delayed_work(&adapter->watchdog_task);
-	flush_workqueue(adapter->e1000_workqueue);
-	destroy_workqueue(adapter->e1000_workqueue);
-
 	if (adapter->flags & FLAG_HAS_HW_TIMESTAMP) {
 		cancel_work_sync(&adapter->tx_hwtstamp_work);
 		if (adapter->tx_hwtstamp_skb) {
@@ -7435,9 +7621,6 @@
 		}
 	}
 
-	/* Don't lie to e1000_close() down the road. */
-	if (!down)
-		clear_bit(__E1000_DOWN, &adapter->state);
 	unregister_netdev(netdev);
 
 	if (pci_dev_run_wake(pdev))
@@ -7567,6 +7750,12 @@
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_V8), board_pch_cnp },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_LM9), board_pch_cnp },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_V9), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM10), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V10), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM11), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V11), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM12), board_pch_spt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V12), board_pch_spt },
 
 	{ 0, 0, 0, 0, 0, 0, 0 }	/* terminate list */
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000e/phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000e/phy.c
@@ -203,7 +203,7 @@
 	 * Increasing the time out as testing showed failures with
 	 * the lower time out
 	 */
-	for (i = 0; i < (E1000_GEN_POLL_TIMEOUT * 3); i++) {
+	for (i = 0; i < (E1000_GEN_POLL_TIMEOUT * 10); i++) {
 		udelay(50);
 		mdic = er32(MDIC);
 		if (mdic & E1000_MDIC_READY)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/e1000e/regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/e1000e/regs.h
@@ -18,6 +18,7 @@
 #define E1000_FEXTNVM	0x00028	/* Future Extended NVM - RW */
 #define E1000_FEXTNVM3	0x0003C	/* Future Extended NVM 3 - RW */
 #define E1000_FEXTNVM4	0x00024	/* Future Extended NVM 4 - RW */
+#define E1000_FEXTNVM5	0x00014	/* Future Extended NVM 5 - RW */
 #define E1000_FEXTNVM6	0x00010	/* Future Extended NVM 6 - RW */
 #define E1000_FEXTNVM7	0x000E4	/* Future Extended NVM 7 - RW */
 #define E1000_FEXTNVM9	0x5BB4	/* Future Extended NVM 9 - RW */
@@ -234,4 +235,7 @@
 #define E1000_RXMTRL	0x0B634	/* Time sync Rx EtherType and Msg Type - RW */
 #define E1000_RXUDP	0x0B638	/* Time Sync Rx UDP Port - RW */
 
+/* PHY registers */
+#define I82579_DFT_CTRL	PHY_REG(769, 20)
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e.h
@@ -129,6 +129,7 @@
 	__I40E_RESET_INTR_RECEIVED,
 	__I40E_REINIT_REQUESTED,
 	__I40E_PF_RESET_REQUESTED,
+	__I40E_PF_RESET_AND_REBUILD_REQUESTED,
 	__I40E_CORE_RESET_REQUESTED,
 	__I40E_GLOBAL_RESET_REQUESTED,
 	__I40E_EMP_RESET_INTR_RECEIVED,
@@ -150,11 +151,14 @@
 	__I40E_CLIENT_RESET,
 	__I40E_VIRTCHNL_OP_PENDING,
 	__I40E_RECOVERY_MODE,
+	__I40E_VF_RESETS_DISABLED,	/* disable resets during i40e_remove */
 	/* This must be last as it determines the size of the BITMAP */
 	__I40E_STATE_SIZE__,
 };
 
 #define I40E_PF_RESET_FLAG	BIT_ULL(__I40E_PF_RESET_REQUESTED)
+#define I40E_PF_RESET_AND_REBUILD_FLAG	\
+	BIT_ULL(__I40E_PF_RESET_AND_REBUILD_REQUESTED)
 
 /* VSI state flags */
 enum i40e_vsi_state_t {
@@ -1151,7 +1155,7 @@
 
 static inline bool i40e_enabled_xdp_vsi(struct i40e_vsi *vsi)
 {
-	return !!vsi->xdp_prog;
+	return !!READ_ONCE(vsi->xdp_prog);
 }
 
 int i40e_create_queue_channel(struct i40e_vsi *vsi, struct i40e_channel *ch);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
@@ -1211,7 +1211,7 @@
 #define I40E_AQC_SET_VSI_PROMISC_BROADCAST	0x04
 #define I40E_AQC_SET_VSI_DEFAULT		0x08
 #define I40E_AQC_SET_VSI_PROMISC_VLAN		0x10
-#define I40E_AQC_SET_VSI_PROMISC_TX		0x8000
+#define I40E_AQC_SET_VSI_PROMISC_RX_ONLY	0x8000
 	__le16	seid;
 #define I40E_AQC_VSI_PROM_CMD_SEID_MASK		0x3FF
 	__le16	vlan_tag;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -29,6 +29,7 @@
 		case I40E_DEV_ID_QSFP_C:
 		case I40E_DEV_ID_10G_BASE_T:
 		case I40E_DEV_ID_10G_BASE_T4:
+		case I40E_DEV_ID_10G_BASE_T_BC:
 		case I40E_DEV_ID_10G_B:
 		case I40E_DEV_ID_10G_SFP:
 		case I40E_DEV_ID_20G_KR2:
@@ -1441,9 +1442,9 @@
 	u32 gpio_val = 0;
 	u32 port;
 
-	if (!hw->func_caps.led[idx])
+	if (!I40E_IS_X710TL_DEVICE(hw->device_id) &&
+	    !hw->func_caps.led[idx])
 		return 0;
-
 	gpio_val = rd32(hw, I40E_GLGEN_GPIO_CTL(idx));
 	port = (gpio_val & I40E_GLGEN_GPIO_CTL_PRT_NUM_MASK) >>
 		I40E_GLGEN_GPIO_CTL_PRT_NUM_SHIFT;
@@ -1462,8 +1463,15 @@
 #define I40E_FILTER_ACTIVITY 0xE
 #define I40E_LINK_ACTIVITY 0xC
 #define I40E_MAC_ACTIVITY 0xD
+#define I40E_FW_LED BIT(4)
+#define I40E_LED_MODE_VALID (I40E_GLGEN_GPIO_CTL_LED_MODE_MASK >> \
+			     I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT)
+
 #define I40E_LED0 22
 
+#define I40E_PIN_FUNC_SDP 0x0
+#define I40E_PIN_FUNC_LED 0x1
+
 /**
  * i40e_led_get - return current on/off mode
  * @hw: pointer to the hw struct
@@ -1508,8 +1516,10 @@
 {
 	int i;
 
-	if (mode & 0xfffffff0)
+	if (mode & ~I40E_LED_MODE_VALID) {
 		hw_dbg(hw, "invalid mode passed in %X\n", mode);
+		return;
+	}
 
 	/* as per the documentation GPIO 22-29 are the LED
 	 * GPIO pins named LED0..LED7
@@ -1519,6 +1529,20 @@
 
 		if (!gpio_val)
 			continue;
+
+		if (I40E_IS_X710TL_DEVICE(hw->device_id)) {
+			u32 pin_func = 0;
+
+			if (mode & I40E_FW_LED)
+				pin_func = I40E_PIN_FUNC_SDP;
+			else
+				pin_func = I40E_PIN_FUNC_LED;
+
+			gpio_val &= ~I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK;
+			gpio_val |= ((pin_func <<
+				     I40E_GLGEN_GPIO_CTL_PIN_FUNC_SHIFT) &
+				     I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK);
+		}
 		gpio_val &= ~I40E_GLGEN_GPIO_CTL_LED_MODE_MASK;
 		/* this & is a bit of paranoia, but serves as a range check */
 		gpio_val |= ((mode << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) &
@@ -1950,6 +1974,21 @@
 }
 
 /**
+ * i40e_is_aq_api_ver_ge
+ * @aq: pointer to AdminQ info containing HW API version to compare
+ * @maj: API major value
+ * @min: API minor value
+ *
+ * Assert whether current HW API version is greater/equal than provided.
+ **/
+static bool i40e_is_aq_api_ver_ge(struct i40e_adminq_info *aq, u16 maj,
+				  u16 min)
+{
+	return (aq->api_maj_ver > maj ||
+		(aq->api_maj_ver == maj && aq->api_min_ver >= min));
+}
+
+/**
  * i40e_aq_add_vsi
  * @hw: pointer to the hw struct
  * @vsi_ctx: pointer to a vsi context struct
@@ -2074,18 +2113,16 @@
 
 	if (set) {
 		flags |= I40E_AQC_SET_VSI_PROMISC_UNICAST;
-		if (rx_only_promisc &&
-		    (((hw->aq.api_maj_ver == 1) && (hw->aq.api_min_ver >= 5)) ||
-		     (hw->aq.api_maj_ver > 1)))
-			flags |= I40E_AQC_SET_VSI_PROMISC_TX;
+		if (rx_only_promisc && i40e_is_aq_api_ver_ge(&hw->aq, 1, 5))
+			flags |= I40E_AQC_SET_VSI_PROMISC_RX_ONLY;
 	}
 
 	cmd->promiscuous_flags = cpu_to_le16(flags);
 
 	cmd->valid_flags = cpu_to_le16(I40E_AQC_SET_VSI_PROMISC_UNICAST);
-	if (((hw->aq.api_maj_ver >= 1) && (hw->aq.api_min_ver >= 5)) ||
-	    (hw->aq.api_maj_ver > 1))
-		cmd->valid_flags |= cpu_to_le16(I40E_AQC_SET_VSI_PROMISC_TX);
+	if (i40e_is_aq_api_ver_ge(&hw->aq, 1, 5))
+		cmd->valid_flags |=
+			cpu_to_le16(I40E_AQC_SET_VSI_PROMISC_RX_ONLY);
 
 	cmd->seid = cpu_to_le16(seid);
 	status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
@@ -2182,11 +2219,17 @@
 	i40e_fill_default_direct_cmd_desc(&desc,
 					  i40e_aqc_opc_set_vsi_promiscuous_modes);
 
-	if (enable)
+	if (enable) {
 		flags |= I40E_AQC_SET_VSI_PROMISC_UNICAST;
+		if (i40e_is_aq_api_ver_ge(&hw->aq, 1, 5))
+			flags |= I40E_AQC_SET_VSI_PROMISC_RX_ONLY;
+	}
 
 	cmd->promiscuous_flags = cpu_to_le16(flags);
 	cmd->valid_flags = cpu_to_le16(I40E_AQC_SET_VSI_PROMISC_UNICAST);
+	if (i40e_is_aq_api_ver_ge(&hw->aq, 1, 5))
+		cmd->valid_flags |=
+			cpu_to_le16(I40E_AQC_SET_VSI_PROMISC_RX_ONLY);
 	cmd->seid = cpu_to_le16(seid);
 	cmd->vlan_tag = cpu_to_le16(vid | I40E_AQC_SET_VSI_VLAN_VALID);
 
@@ -2571,9 +2614,16 @@
 		if (status)
 			return status;
 
-		hw->phy.link_info.req_fec_info =
-			abilities.fec_cfg_curr_mod_ext_info &
-			(I40E_AQ_REQUEST_FEC_KR | I40E_AQ_REQUEST_FEC_RS);
+		if (abilities.fec_cfg_curr_mod_ext_info &
+		    I40E_AQ_ENABLE_FEC_AUTO)
+			hw->phy.link_info.req_fec_info =
+				(I40E_AQ_REQUEST_FEC_KR |
+				 I40E_AQ_REQUEST_FEC_RS);
+		else
+			hw->phy.link_info.req_fec_info =
+				abilities.fec_cfg_curr_mod_ext_info &
+				(I40E_AQ_REQUEST_FEC_KR |
+				 I40E_AQ_REQUEST_FEC_RS);
 
 		memcpy(hw->phy.link_info.module_type, &abilities.module_type,
 		       sizeof(hw->phy.link_info.module_type));
@@ -4885,6 +4935,7 @@
 		break;
 	case I40E_DEV_ID_10G_BASE_T:
 	case I40E_DEV_ID_10G_BASE_T4:
+	case I40E_DEV_ID_10G_BASE_T_BC:
 	case I40E_DEV_ID_10G_BASE_T_X722:
 	case I40E_DEV_ID_25G_B:
 	case I40E_DEV_ID_25G_SFP28:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_devids.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_devids.h
@@ -23,6 +23,8 @@
 #define I40E_DEV_ID_10G_BASE_T_BC	0x15FF
 #define I40E_DEV_ID_10G_B		0x104F
 #define I40E_DEV_ID_10G_SFP		0x104E
+#define I40E_IS_X710TL_DEVICE(d) \
+	((d) == I40E_DEV_ID_10G_BASE_T_BC)
 #define I40E_DEV_ID_KX_X722		0x37CE
 #define I40E_DEV_ID_QSFP_X722		0x37CF
 #define I40E_DEV_ID_SFP_X722		0x37D0
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -722,7 +722,14 @@
 	ethtool_link_ksettings_add_link_mode(ks, supported, FEC_RS);
 	ethtool_link_ksettings_add_link_mode(ks, supported, FEC_BASER);
 
-	if (I40E_AQ_SET_FEC_REQUEST_RS & req_fec_info) {
+	if ((I40E_AQ_SET_FEC_REQUEST_RS & req_fec_info) &&
+	    (I40E_AQ_SET_FEC_REQUEST_KR & req_fec_info)) {
+		ethtool_link_ksettings_add_link_mode(ks, advertising,
+						     FEC_NONE);
+		ethtool_link_ksettings_add_link_mode(ks, advertising,
+						     FEC_BASER);
+		ethtool_link_ksettings_add_link_mode(ks, advertising, FEC_RS);
+	} else if (I40E_AQ_SET_FEC_REQUEST_RS & req_fec_info) {
 		ethtool_link_ksettings_add_link_mode(ks, advertising, FEC_RS);
 	} else if (I40E_AQ_SET_FEC_REQUEST_KR & req_fec_info) {
 		ethtool_link_ksettings_add_link_mode(ks, advertising,
@@ -730,12 +737,6 @@
 	} else {
 		ethtool_link_ksettings_add_link_mode(ks, advertising,
 						     FEC_NONE);
-		if (I40E_AQ_SET_FEC_AUTO & req_fec_info) {
-			ethtool_link_ksettings_add_link_mode(ks, advertising,
-							     FEC_RS);
-			ethtool_link_ksettings_add_link_mode(ks, advertising,
-							     FEC_BASER);
-		}
 	}
 }
 
@@ -1437,6 +1438,7 @@
 	struct i40e_hw *hw = &pf->hw;
 	i40e_status status = 0;
 	int err = 0;
+	u8 fec_cfg;
 
 	/* Get the current phy config */
 	memset(&abilities, 0, sizeof(abilities));
@@ -1448,18 +1450,16 @@
 	}
 
 	fecparam->fec = 0;
-	if (abilities.fec_cfg_curr_mod_ext_info & I40E_AQ_SET_FEC_AUTO)
+	fec_cfg = abilities.fec_cfg_curr_mod_ext_info;
+	if (fec_cfg & I40E_AQ_SET_FEC_AUTO)
 		fecparam->fec |= ETHTOOL_FEC_AUTO;
-	if ((abilities.fec_cfg_curr_mod_ext_info &
-	     I40E_AQ_SET_FEC_REQUEST_RS) ||
-	    (abilities.fec_cfg_curr_mod_ext_info &
-	     I40E_AQ_SET_FEC_ABILITY_RS))
+	else if (fec_cfg & (I40E_AQ_SET_FEC_REQUEST_RS |
+		 I40E_AQ_SET_FEC_ABILITY_RS))
 		fecparam->fec |= ETHTOOL_FEC_RS;
-	if ((abilities.fec_cfg_curr_mod_ext_info &
-	     I40E_AQ_SET_FEC_REQUEST_KR) ||
-	    (abilities.fec_cfg_curr_mod_ext_info & I40E_AQ_SET_FEC_ABILITY_KR))
+	else if (fec_cfg & (I40E_AQ_SET_FEC_REQUEST_KR |
+		 I40E_AQ_SET_FEC_ABILITY_KR))
 		fecparam->fec |= ETHTOOL_FEC_BASER;
-	if (abilities.fec_cfg_curr_mod_ext_info == 0)
+	if (fec_cfg == 0)
 		fecparam->fec |= ETHTOOL_FEC_OFF;
 
 	if (hw->phy.link_info.fec_info & I40E_AQ_CONFIG_FEC_KR_ENA)
@@ -4874,7 +4874,7 @@
 	enum i40e_admin_queue_err adq_err;
 	struct i40e_vsi *vsi = np->vsi;
 	struct i40e_pf *pf = vsi->back;
-	bool is_reset_needed;
+	u32 reset_needed = 0;
 	i40e_status status;
 	u32 i, j;
 
@@ -4919,9 +4919,11 @@
 flags_complete:
 	changed_flags = orig_flags ^ new_flags;
 
-	is_reset_needed = !!(changed_flags & (I40E_FLAG_VEB_STATS_ENABLED |
-		I40E_FLAG_LEGACY_RX | I40E_FLAG_SOURCE_PRUNING_DISABLED |
-		I40E_FLAG_DISABLE_FW_LLDP));
+	if (changed_flags & I40E_FLAG_DISABLE_FW_LLDP)
+		reset_needed = I40E_PF_RESET_AND_REBUILD_FLAG;
+	if (changed_flags & (I40E_FLAG_VEB_STATS_ENABLED |
+	    I40E_FLAG_LEGACY_RX | I40E_FLAG_SOURCE_PRUNING_DISABLED))
+		reset_needed = BIT(__I40E_PF_RESET_REQUESTED);
 
 	/* Before we finalize any flag changes, we need to perform some
 	 * checks to ensure that the changes are supported and safe.
@@ -5038,7 +5040,7 @@
 				case I40E_AQ_RC_EEXIST:
 					dev_warn(&pf->pdev->dev,
 						 "FW LLDP agent is already running\n");
-					is_reset_needed = false;
+					reset_needed = 0;
 					break;
 				case I40E_AQ_RC_EPERM:
 					dev_warn(&pf->pdev->dev,
@@ -5067,8 +5069,8 @@
 	/* Issue reset to cause things to take effect, as additional bits
 	 * are added we will need to create a mask of bits requiring reset
 	 */
-	if (is_reset_needed)
-		i40e_do_reset(pf, BIT(__I40E_PF_RESET_REQUESTED), true);
+	if (reset_needed)
+		i40e_do_reset(pf, reset_needed, true);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -44,6 +44,8 @@
 static void i40e_determine_queue_usage(struct i40e_pf *pf);
 static int i40e_setup_pf_filter_control(struct i40e_pf *pf);
 static void i40e_prep_for_reset(struct i40e_pf *pf, bool lock_acquired);
+static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit,
+				   bool lock_acquired);
 static int i40e_reset(struct i40e_pf *pf);
 static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired);
 static int i40e_setup_misc_vector_for_recovery_mode(struct i40e_pf *pf);
@@ -458,11 +460,15 @@
 		i40e_get_netdev_stats_struct_tx(ring, stats);
 
 		if (i40e_enabled_xdp_vsi(vsi)) {
-			ring++;
+			ring = READ_ONCE(vsi->xdp_rings[i]);
+			if (!ring)
+				continue;
 			i40e_get_netdev_stats_struct_tx(ring, stats);
 		}
 
-		ring++;
+		ring = READ_ONCE(vsi->rx_rings[i]);
+		if (!ring)
+			continue;
 		do {
 			start   = u64_stats_fetch_begin_irq(&ring->syncp);
 			packets = ring->stats.packets;
@@ -806,6 +812,8 @@
 	for (q = 0; q < vsi->num_queue_pairs; q++) {
 		/* locate Tx ring */
 		p = READ_ONCE(vsi->tx_rings[q]);
+		if (!p)
+			continue;
 
 		do {
 			start = u64_stats_fetch_begin_irq(&p->syncp);
@@ -819,8 +827,11 @@
 		tx_linearize += p->tx_stats.tx_linearize;
 		tx_force_wb += p->tx_stats.tx_force_wb;
 
-		/* Rx queue is part of the same block as Tx queue */
-		p = &p[1];
+		/* locate Rx ring */
+		p = READ_ONCE(vsi->rx_rings[q]);
+		if (!p)
+			continue;
+
 		do {
 			start = u64_stats_fetch_begin_irq(&p->syncp);
 			packets = p->stats.packets;
@@ -2592,7 +2603,7 @@
 		return;
 	if (!test_and_clear_bit(__I40E_MACVLAN_SYNC_PENDING, pf->state))
 		return;
-	if (test_and_set_bit(__I40E_VF_DISABLE, pf->state)) {
+	if (test_bit(__I40E_VF_DISABLE, pf->state)) {
 		set_bit(__I40E_MACVLAN_SYNC_PENDING, pf->state);
 		return;
 	}
@@ -2610,7 +2621,6 @@
 			}
 		}
 	}
-	clear_bit(__I40E_VF_DISABLE, pf->state);
 }
 
 /**
@@ -3534,14 +3544,14 @@
 		q_vector->rx.target_itr =
 			ITR_TO_REG(vsi->rx_rings[i]->itr_setting);
 		wr32(hw, I40E_PFINT_ITRN(I40E_RX_ITR, vector - 1),
-		     q_vector->rx.target_itr);
+		     q_vector->rx.target_itr >> 1);
 		q_vector->rx.current_itr = q_vector->rx.target_itr;
 
 		q_vector->tx.next_update = jiffies + 1;
 		q_vector->tx.target_itr =
 			ITR_TO_REG(vsi->tx_rings[i]->itr_setting);
 		wr32(hw, I40E_PFINT_ITRN(I40E_TX_ITR, vector - 1),
-		     q_vector->tx.target_itr);
+		     q_vector->tx.target_itr >> 1);
 		q_vector->tx.current_itr = q_vector->tx.target_itr;
 
 		wr32(hw, I40E_PFINT_RATEN(vector - 1),
@@ -3646,11 +3656,11 @@
 	/* set the ITR configuration */
 	q_vector->rx.next_update = jiffies + 1;
 	q_vector->rx.target_itr = ITR_TO_REG(vsi->rx_rings[0]->itr_setting);
-	wr32(hw, I40E_PFINT_ITR0(I40E_RX_ITR), q_vector->rx.target_itr);
+	wr32(hw, I40E_PFINT_ITR0(I40E_RX_ITR), q_vector->rx.target_itr >> 1);
 	q_vector->rx.current_itr = q_vector->rx.target_itr;
 	q_vector->tx.next_update = jiffies + 1;
 	q_vector->tx.target_itr = ITR_TO_REG(vsi->tx_rings[0]->itr_setting);
-	wr32(hw, I40E_PFINT_ITR0(I40E_TX_ITR), q_vector->tx.target_itr);
+	wr32(hw, I40E_PFINT_ITR0(I40E_TX_ITR), q_vector->tx.target_itr >> 1);
 	q_vector->tx.current_itr = q_vector->tx.target_itr;
 
 	i40e_enable_misc_int_causes(pf);
@@ -3979,8 +3989,16 @@
 	}
 
 	if (icr0 & I40E_PFINT_ICR0_VFLR_MASK) {
-		ena_mask &= ~I40E_PFINT_ICR0_ENA_VFLR_MASK;
-		set_bit(__I40E_VFLR_EVENT_PENDING, pf->state);
+		/* disable any further VFLR event notifications */
+		if (test_bit(__I40E_VF_RESETS_DISABLED, pf->state)) {
+			u32 reg = rd32(hw, I40E_PFINT_ICR0_ENA);
+
+			reg &= ~I40E_PFINT_ICR0_VFLR_MASK;
+			wr32(hw, I40E_PFINT_ICR0_ENA, reg);
+		} else {
+			ena_mask &= ~I40E_PFINT_ICR0_ENA_VFLR_MASK;
+			set_bit(__I40E_VFLR_EVENT_PENDING, pf->state);
+		}
 	}
 
 	if (icr0 & I40E_PFINT_ICR0_GRST_MASK) {
@@ -6804,8 +6822,8 @@
 	for (i = 0; i < vsi->num_queue_pairs; i++) {
 		i40e_clean_tx_ring(vsi->tx_rings[i]);
 		if (i40e_enabled_xdp_vsi(vsi)) {
-			/* Make sure that in-progress ndo_xdp_xmit
-			 * calls are completed.
+			/* Make sure that in-progress ndo_xdp_xmit and
+			 * ndo_xsk_wakeup calls are completed.
 			 */
 			synchronize_rcu();
 			i40e_clean_tx_ring(vsi->xdp_rings[i]);
@@ -7168,6 +7186,7 @@
 		ch->num_queue_pairs = qcnt;
 		if (!i40e_setup_channel(pf, vsi, ch)) {
 			ret = -EINVAL;
+			kfree(ch);
 			goto err_free;
 		}
 		ch->parent_vsi = vsi;
@@ -7592,6 +7611,8 @@
 	if (filter->flags >= ARRAY_SIZE(flag_table))
 		return I40E_ERR_CONFIG;
 
+	memset(&cld_filter, 0, sizeof(cld_filter));
+
 	/* copy element needed to add cloud filter from filter */
 	i40e_set_cld_element(filter, &cld_filter);
 
@@ -7655,10 +7676,13 @@
 		return -EOPNOTSUPP;
 
 	/* adding filter using src_port/src_ip is not supported at this stage */
-	if (filter->src_port || filter->src_ipv4 ||
+	if (filter->src_port ||
+	    (filter->src_ipv4 && filter->n_proto != ETH_P_IPV6) ||
 	    !ipv6_addr_any(&filter->ip.v6.src_ip6))
 		return -EOPNOTSUPP;
 
+	memset(&cld_filter, 0, sizeof(cld_filter));
+
 	/* copy element needed to add cloud filter from filter */
 	i40e_set_cld_element(filter, &cld_filter.element);
 
@@ -7682,7 +7706,7 @@
 			cpu_to_le16(I40E_AQC_ADD_CLOUD_FILTER_MAC_VLAN_PORT);
 		}
 
-	} else if (filter->dst_ipv4 ||
+	} else if ((filter->dst_ipv4 && filter->n_proto != ETH_P_IPV6) ||
 		   !ipv6_addr_any(&filter->ip.v6.dst_ip6)) {
 		cld_filter.element.flags =
 				cpu_to_le16(I40E_AQC_ADD_CLOUD_FILTER_IP_PORT);
@@ -8461,6 +8485,13 @@
 		dev_dbg(&pf->pdev->dev, "PFR requested\n");
 		i40e_handle_reset_warning(pf, lock_acquired);
 
+	} else if (reset_flags & I40E_PF_RESET_AND_REBUILD_FLAG) {
+		/* Request a PF Reset
+		 *
+		 * Resets PF and reinitializes PFs VSI.
+		 */
+		i40e_prep_for_reset(pf, lock_acquired);
+		i40e_reset_and_rebuild(pf, true, lock_acquired);
 		dev_info(&pf->pdev->dev,
 			 pf->flags & I40E_FLAG_DISABLE_FW_LLDP ?
 			 "FW LLDP is disabled\n" :
@@ -9927,7 +9958,6 @@
 	int old_recovery_mode_bit = test_bit(__I40E_RECOVERY_MODE, pf->state);
 	struct i40e_vsi *vsi = pf->vsi[pf->lan_vsi];
 	struct i40e_hw *hw = &pf->hw;
-	u8 set_fc_aq_fail = 0;
 	i40e_status ret;
 	u32 val;
 	int v;
@@ -10053,13 +10083,6 @@
 			 i40e_stat_str(&pf->hw, ret),
 			 i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
 
-	/* make sure our flow control settings are restored */
-	ret = i40e_set_fc(&pf->hw, &set_fc_aq_fail, true);
-	if (ret)
-		dev_dbg(&pf->pdev->dev, "setting flow control: ret = %s last_status = %s\n",
-			i40e_stat_str(&pf->hw, ret),
-			i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
-
 	/* Rebuild the VSIs and VEBs that existed before reset.
 	 * They are still in our local switch element arrays, so only
 	 * need to rebuild the switch model in the HW.
@@ -10815,10 +10838,10 @@
 	if (vsi->tx_rings && vsi->tx_rings[0]) {
 		for (i = 0; i < vsi->alloc_queue_pairs; i++) {
 			kfree_rcu(vsi->tx_rings[i], rcu);
-			vsi->tx_rings[i] = NULL;
-			vsi->rx_rings[i] = NULL;
+			WRITE_ONCE(vsi->tx_rings[i], NULL);
+			WRITE_ONCE(vsi->rx_rings[i], NULL);
 			if (vsi->xdp_rings)
-				vsi->xdp_rings[i] = NULL;
+				WRITE_ONCE(vsi->xdp_rings[i], NULL);
 		}
 	}
 }
@@ -10852,7 +10875,7 @@
 		if (vsi->back->hw_features & I40E_HW_WB_ON_ITR_CAPABLE)
 			ring->flags = I40E_TXR_FLAGS_WB_ON_ITR;
 		ring->itr_setting = pf->tx_itr_default;
-		vsi->tx_rings[i] = ring++;
+		WRITE_ONCE(vsi->tx_rings[i], ring++);
 
 		if (!i40e_enabled_xdp_vsi(vsi))
 			goto setup_rx;
@@ -10870,7 +10893,7 @@
 			ring->flags = I40E_TXR_FLAGS_WB_ON_ITR;
 		set_ring_xdp(ring);
 		ring->itr_setting = pf->tx_itr_default;
-		vsi->xdp_rings[i] = ring++;
+		WRITE_ONCE(vsi->xdp_rings[i], ring++);
 
 setup_rx:
 		ring->queue_index = i;
@@ -10883,7 +10906,7 @@
 		ring->size = 0;
 		ring->dcb_tc = 0;
 		ring->itr_setting = pf->rx_itr_default;
-		vsi->rx_rings[i] = ring;
+		WRITE_ONCE(vsi->rx_rings[i], ring);
 	}
 
 	return 0;
@@ -11396,7 +11419,7 @@
 
 	/* associate no queues to the misc vector */
 	wr32(hw, I40E_PFINT_LNKLST0, I40E_QUEUE_END_OF_LIST);
-	wr32(hw, I40E_PFINT_ITR0(I40E_RX_ITR), I40E_ITR_8K);
+	wr32(hw, I40E_PFINT_ITR0(I40E_RX_ITR), I40E_ITR_8K >> 1);
 
 	i40e_flush(hw);
 
@@ -11742,6 +11765,8 @@
 	struct i40e_aqc_configure_partition_bw_data bw_data;
 	i40e_status status;
 
+	memset(&bw_data, 0, sizeof(bw_data));
+
 	/* Set the valid bit for this PF */
 	bw_data.pf_valid_bits = cpu_to_le16(BIT(pf->hw.pf_id));
 	bw_data.max_bw[pf->hw.pf_id] = pf->max_bw & I40E_ALT_BW_VALUE_MASK;
@@ -12526,8 +12551,12 @@
 
 	old_prog = xchg(&vsi->xdp_prog, prog);
 
-	if (need_reset)
+	if (need_reset) {
+		if (!prog)
+			/* Wait until ndo_xsk_wakeup completes. */
+			synchronize_rcu();
 		i40e_reset_and_rebuild(pf, true, true);
+	}
 
 	for (i = 0; i < vsi->num_queue_pairs; i++)
 		WRITE_ONCE(vsi->rx_rings[i]->xdp_prog, vsi->xdp_prog);
@@ -14736,7 +14765,6 @@
 	int err;
 	u32 val;
 	u32 i;
-	u8 set_fc_aq_fail;
 
 	err = pci_enable_device_mem(pdev);
 	if (err)
@@ -15058,24 +15086,6 @@
 	}
 	INIT_LIST_HEAD(&pf->vsi[pf->lan_vsi]->ch_list);
 
-	/* Make sure flow control is set according to current settings */
-	err = i40e_set_fc(hw, &set_fc_aq_fail, true);
-	if (set_fc_aq_fail & I40E_SET_FC_AQ_FAIL_GET)
-		dev_dbg(&pf->pdev->dev,
-			"Set fc with err %s aq_err %s on get_phy_cap\n",
-			i40e_stat_str(hw, err),
-			i40e_aq_str(hw, hw->aq.asq_last_status));
-	if (set_fc_aq_fail & I40E_SET_FC_AQ_FAIL_SET)
-		dev_dbg(&pf->pdev->dev,
-			"Set fc with err %s aq_err %s on set_phy_config\n",
-			i40e_stat_str(hw, err),
-			i40e_aq_str(hw, hw->aq.asq_last_status));
-	if (set_fc_aq_fail & I40E_SET_FC_AQ_FAIL_UPDATE)
-		dev_dbg(&pf->pdev->dev,
-			"Set fc with err %s aq_err %s on get_link_info\n",
-			i40e_stat_str(hw, err),
-			i40e_aq_str(hw, hw->aq.asq_last_status));
-
 	/* if FDIR VSI was set up, start it now */
 	for (i = 0; i < pf->num_alloc_vsi; i++) {
 		if (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR) {
@@ -15132,6 +15142,8 @@
 		if (err) {
 			dev_info(&pdev->dev,
 				 "setup of misc vector failed: %d\n", err);
+			i40e_cloud_filter_exit(pf);
+			i40e_fdir_teardown(pf);
 			goto err_vsis;
 		}
 	}
@@ -15328,6 +15340,14 @@
 	i40e_write_rx_ctl(hw, I40E_PFQF_HENA(0), 0);
 	i40e_write_rx_ctl(hw, I40E_PFQF_HENA(1), 0);
 
+	while (test_bit(__I40E_RESET_RECOVERY_PENDING, pf->state))
+		usleep_range(1000, 2000);
+
+	if (pf->flags & I40E_FLAG_SRIOV_ENABLED) {
+		set_bit(__I40E_VF_RESETS_DISABLED, pf->state);
+		i40e_free_vfs(pf);
+		pf->flags &= ~I40E_FLAG_SRIOV_ENABLED;
+	}
 	/* no more scheduling of any task */
 	set_bit(__I40E_SUSPENDED, pf->state);
 	set_bit(__I40E_DOWN, pf->state);
@@ -15354,11 +15374,6 @@
 	 */
 	i40e_notify_client_of_netdev_close(pf->vsi[pf->lan_vsi], false);
 
-	if (pf->flags & I40E_FLAG_SRIOV_ENABLED) {
-		i40e_free_vfs(pf);
-		pf->flags &= ~I40E_FLAG_SRIOV_ENABLED;
-	}
-
 	i40e_fdir_teardown(pf);
 
 	/* If there is a switch structure or any orphans, remove them.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -1195,6 +1195,11 @@
 	rc->total_packets = 0;
 }
 
+static struct i40e_rx_buffer *i40e_rx_bi(struct i40e_ring *rx_ring, u32 idx)
+{
+	return &rx_ring->rx_bi[idx];
+}
+
 /**
  * i40e_reuse_rx_page - page flip buffer and store it back on the ring
  * @rx_ring: rx descriptor ring to store buffers on
@@ -1208,7 +1213,7 @@
 	struct i40e_rx_buffer *new_buff;
 	u16 nta = rx_ring->next_to_alloc;
 
-	new_buff = &rx_ring->rx_bi[nta];
+	new_buff = i40e_rx_bi(rx_ring, nta);
 
 	/* update, and store next to alloc */
 	nta++;
@@ -1272,7 +1277,7 @@
 	ntc = rx_ring->next_to_clean;
 
 	/* fetch, update, and store next to clean */
-	rx_buffer = &rx_ring->rx_bi[ntc++];
+	rx_buffer = i40e_rx_bi(rx_ring, ntc++);
 	ntc = (ntc < rx_ring->count) ? ntc : 0;
 	rx_ring->next_to_clean = ntc;
 
@@ -1361,7 +1366,7 @@
 
 	/* Free all the Rx ring sk_buffs */
 	for (i = 0; i < rx_ring->count; i++) {
-		struct i40e_rx_buffer *rx_bi = &rx_ring->rx_bi[i];
+		struct i40e_rx_buffer *rx_bi = i40e_rx_bi(rx_ring, i);
 
 		if (!rx_bi->page)
 			continue;
@@ -1576,7 +1581,7 @@
 		return false;
 
 	rx_desc = I40E_RX_DESC(rx_ring, ntu);
-	bi = &rx_ring->rx_bi[ntu];
+	bi = i40e_rx_bi(rx_ring, ntu);
 
 	do {
 		if (!i40e_alloc_mapped_page(rx_ring, bi))
@@ -1598,7 +1603,7 @@
 		ntu++;
 		if (unlikely(ntu == rx_ring->count)) {
 			rx_desc = I40E_RX_DESC(rx_ring, 0);
-			bi = rx_ring->rx_bi;
+			bi = i40e_rx_bi(rx_ring, 0);
 			ntu = 0;
 		}
 
@@ -1864,6 +1869,7 @@
  * the adapter for another receive
  *
  * @rx_buffer: buffer containing the page
+ * @rx_buffer_pgcnt: buffer page refcount pre xdp_do_redirect() call
  *
  * If page is reusable, rx_buffer->page_offset is adjusted to point to
  * an unused region in the page.
@@ -1886,7 +1892,8 @@
  *
  * In either case, if the page is reusable its refcount is increased.
  **/
-static bool i40e_can_reuse_rx_page(struct i40e_rx_buffer *rx_buffer)
+static bool i40e_can_reuse_rx_page(struct i40e_rx_buffer *rx_buffer,
+				   int rx_buffer_pgcnt)
 {
 	unsigned int pagecnt_bias = rx_buffer->pagecnt_bias;
 	struct page *page = rx_buffer->page;
@@ -1897,7 +1904,7 @@
 
 #if (PAGE_SIZE < 8192)
 	/* if we are only owner of page we can reuse it */
-	if (unlikely((page_count(page) - pagecnt_bias) > 1))
+	if (unlikely((rx_buffer_pgcnt - pagecnt_bias) > 1))
 		return false;
 #else
 #define I40E_LAST_OFFSET \
@@ -1956,17 +1963,25 @@
  * i40e_get_rx_buffer - Fetch Rx buffer and synchronize data for use
  * @rx_ring: rx descriptor ring to transact packets on
  * @size: size of buffer to add to skb
+ * @rx_buffer_pgcnt: buffer page refcount
  *
  * This function will pull an Rx buffer from the ring and synchronize it
  * for use by the CPU.
  */
 static struct i40e_rx_buffer *i40e_get_rx_buffer(struct i40e_ring *rx_ring,
-						 const unsigned int size)
+						 const unsigned int size,
+						 int *rx_buffer_pgcnt)
 {
 	struct i40e_rx_buffer *rx_buffer;
 
-	rx_buffer = &rx_ring->rx_bi[rx_ring->next_to_clean];
-	prefetchw(rx_buffer->page);
+	rx_buffer = i40e_rx_bi(rx_ring, rx_ring->next_to_clean);
+	*rx_buffer_pgcnt =
+#if (PAGE_SIZE < 8192)
+		page_count(rx_buffer->page);
+#else
+		0;
+#endif
+	prefetch_page_address(rx_buffer->page);
 
 	/* we are reusing so sync this buffer for CPU use */
 	dma_sync_single_range_for_cpu(rx_ring->dev,
@@ -2120,14 +2135,16 @@
  * i40e_put_rx_buffer - Clean up used buffer and either recycle or free
  * @rx_ring: rx descriptor ring to transact packets on
  * @rx_buffer: rx buffer to pull data from
+ * @rx_buffer_pgcnt: rx buffer page refcount pre xdp_do_redirect() call
  *
  * This function will clean up the contents of the rx_buffer.  It will
  * either recycle the buffer or unmap it and free the associated resources.
  */
 static void i40e_put_rx_buffer(struct i40e_ring *rx_ring,
-			       struct i40e_rx_buffer *rx_buffer)
+			       struct i40e_rx_buffer *rx_buffer,
+			       int rx_buffer_pgcnt)
 {
-	if (i40e_can_reuse_rx_page(rx_buffer)) {
+	if (i40e_can_reuse_rx_page(rx_buffer, rx_buffer_pgcnt)) {
 		/* hand second half of page back to the ring */
 		i40e_reuse_rx_page(rx_ring, rx_buffer);
 	} else {
@@ -2340,6 +2357,7 @@
 	while (likely(total_rx_packets < (unsigned int)budget)) {
 		struct i40e_rx_buffer *rx_buffer;
 		union i40e_rx_desc *rx_desc;
+		int rx_buffer_pgcnt;
 		unsigned int size;
 		u64 qword;
 
@@ -2379,7 +2397,7 @@
 			break;
 
 		i40e_trace(clean_rx_irq, rx_ring, rx_desc, skb);
-		rx_buffer = i40e_get_rx_buffer(rx_ring, size);
+		rx_buffer = i40e_get_rx_buffer(rx_ring, size, &rx_buffer_pgcnt);
 
 		/* retrieve a buffer from the ring */
 		if (!skb) {
@@ -2419,7 +2437,7 @@
 			break;
 		}
 
-		i40e_put_rx_buffer(rx_ring, rx_buffer);
+		i40e_put_rx_buffer(rx_ring, rx_buffer, rx_buffer_pgcnt);
 		cleaned_count++;
 
 		if (i40e_is_non_eop(rx_ring, rx_desc, skb))
@@ -3075,13 +3093,16 @@
 
 			l4_proto = ip.v4->protocol;
 		} else if (*tx_flags & I40E_TX_FLAGS_IPV6) {
+			int ret;
+
 			tunnel |= I40E_TX_CTX_EXT_IP_IPV6;
 
 			exthdr = ip.hdr + sizeof(*ip.v6);
 			l4_proto = ip.v6->nexthdr;
-			if (l4.hdr != exthdr)
-				ipv6_skip_exthdr(skb, exthdr - skb->data,
-						 &l4_proto, &frag_off);
+			ret = ipv6_skip_exthdr(skb, exthdr - skb->data,
+					       &l4_proto, &frag_off);
+			if (ret < 0)
+				return -1;
 		}
 
 		/* define outer transport */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -55,12 +55,7 @@
 
 	pfe.event = VIRTCHNL_EVENT_LINK_CHANGE;
 	pfe.severity = PF_EVENT_SEVERITY_INFO;
-
-	/* Always report link is down if the VF queues aren't enabled */
-	if (!vf->queues_enabled) {
-		pfe.event_data.link_event.link_status = false;
-		pfe.event_data.link_event.link_speed = 0;
-	} else if (vf->link_forced) {
+	if (vf->link_forced) {
 		pfe.event_data.link_event.link_status = vf->link_up;
 		pfe.event_data.link_event.link_speed =
 			(vf->link_up ? VIRTCHNL_LINK_SPEED_40GB : 0);
@@ -70,7 +65,6 @@
 		pfe.event_data.link_event.link_speed =
 			i40e_virtchnl_link_speed(ls->link_speed);
 	}
-
 	i40e_aq_send_msg_to_vf(hw, abs_vf_id, VIRTCHNL_OP_EVENT,
 			       0, (u8 *)&pfe, sizeof(pfe), NULL);
 }
@@ -1127,6 +1121,7 @@
 	struct i40e_pf *pf = vf->pf;
 	struct i40e_hw *hw = &pf->hw;
 	struct i40e_mac_filter *f;
+	struct hlist_node *h;
 	i40e_status aq_ret = 0;
 	struct i40e_vsi *vsi;
 	int bkt;
@@ -1166,7 +1161,8 @@
 		}
 		return aq_ret;
 	} else if (i40e_getnum_vf_vsi_vlan_filters(vsi)) {
-		hash_for_each(vsi->mac_filter_hash, bkt, f, hlist) {
+		spin_lock_bh(&vsi->mac_filter_hash_lock);
+		hash_for_each_safe(vsi->mac_filter_hash, bkt, h, f, hlist) {
 			if (f->vlan < 0 || f->vlan > I40E_MAX_VLANID)
 				continue;
 			aq_ret = i40e_aq_set_vsi_mc_promisc_on_vlan(hw,
@@ -1199,6 +1195,7 @@
 					i40e_aq_str(&pf->hw, aq_err));
 			}
 		}
+		spin_unlock_bh(&vsi->mac_filter_hash_lock);
 		return aq_ret;
 	}
 	aq_ret = i40e_aq_set_vsi_multicast_promiscuous(hw, vsi->seid, allmulti,
@@ -1335,7 +1332,8 @@
  * @vf: pointer to the VF structure
  * @flr: VFLR was issued or not
  *
- * Returns true if the VF is reset, false otherwise.
+ * Returns true if the VF is in reset, resets successfully, or resets
+ * are disabled and false otherwise.
  **/
 bool i40e_reset_vf(struct i40e_vf *vf, bool flr)
 {
@@ -1345,11 +1343,14 @@
 	u32 reg;
 	int i;
 
+	if (test_bit(__I40E_VF_RESETS_DISABLED, pf->state))
+		return true;
+
 	/* If the VFs have been disabled, this means something else is
 	 * resetting the VF, so we shouldn't continue.
 	 */
 	if (test_and_set_bit(__I40E_VF_DISABLE, pf->state))
-		return false;
+		return true;
 
 	i40e_trigger_vf_reset(vf, flr);
 
@@ -1513,6 +1514,15 @@
 
 	i40e_notify_client_of_vf_enable(pf, 0);
 
+	/* Disable IOV before freeing resources. This lets any VF drivers
+	 * running in the host get themselves cleaned up before we yank
+	 * the carpet out from underneath their feet.
+	 */
+	if (!pci_vfs_assigned(pf->pdev))
+		pci_disable_sriov(pf->pdev);
+	else
+		dev_warn(&pf->pdev->dev, "VFs are assigned - not disabling SR-IOV\n");
+
 	/* Amortize wait time by stopping all VFs at the same time */
 	for (i = 0; i < pf->num_alloc_vfs; i++) {
 		if (test_bit(I40E_VF_STATE_INIT, &pf->vf[i].vf_states))
@@ -1528,15 +1538,6 @@
 		i40e_vsi_wait_queues_disabled(pf->vsi[pf->vf[i].lan_vsi_idx]);
 	}
 
-	/* Disable IOV before freeing resources. This lets any VF drivers
-	 * running in the host get themselves cleaned up before we yank
-	 * the carpet out from underneath their feet.
-	 */
-	if (!pci_vfs_assigned(pf->pdev))
-		pci_disable_sriov(pf->pdev);
-	else
-		dev_warn(&pf->pdev->dev, "VFs are assigned - not disabling SR-IOV\n");
-
 	/* free up VF resources */
 	tmp = pf->num_alloc_vfs;
 	pf->num_alloc_vfs = 0;
@@ -1700,7 +1701,7 @@
 	if (num_vfs) {
 		if (!(pf->flags & I40E_FLAG_VEB_MODE_ENABLED)) {
 			pf->flags |= I40E_FLAG_VEB_MODE_ENABLED;
-			i40e_do_reset_safe(pf, I40E_PF_RESET_FLAG);
+			i40e_do_reset_safe(pf, I40E_PF_RESET_AND_REBUILD_FLAG);
 		}
 		ret = i40e_pci_sriov_enable(pdev, num_vfs);
 		goto sriov_configure_out;
@@ -1709,7 +1710,7 @@
 	if (!pci_vfs_assigned(pf->pdev)) {
 		i40e_free_vfs(pf);
 		pf->flags &= ~I40E_FLAG_VEB_MODE_ENABLED;
-		i40e_do_reset_safe(pf, I40E_PF_RESET_FLAG);
+		i40e_do_reset_safe(pf, I40E_PF_RESET_AND_REBUILD_FLAG);
 	} else {
 		dev_warn(&pdev->dev, "Unable to free VFs because some are assigned to VMs.\n");
 		ret = -EINVAL;
@@ -2323,6 +2324,22 @@
 }
 
 /**
+ * i40e_vc_validate_vqs_bitmaps - validate Rx/Tx queue bitmaps from VIRTHCHNL
+ * @vqs: virtchnl_queue_select structure containing bitmaps to validate
+ *
+ * Returns true if validation was successful, else false.
+ */
+static bool i40e_vc_validate_vqs_bitmaps(struct virtchnl_queue_select *vqs)
+{
+	if ((!vqs->rx_queues && !vqs->tx_queues) ||
+	    vqs->rx_queues >= BIT(I40E_MAX_VF_QUEUES) ||
+	    vqs->tx_queues >= BIT(I40E_MAX_VF_QUEUES))
+		return false;
+
+	return true;
+}
+
+/**
  * i40e_vc_enable_queues_msg
  * @vf: pointer to the VF info
  * @msg: pointer to the msg buffer
@@ -2347,7 +2364,7 @@
 		goto error_param;
 	}
 
-	if ((0 == vqs->rx_queues) && (0 == vqs->tx_queues)) {
+	if (!i40e_vc_validate_vqs_bitmaps(vqs)) {
 		aq_ret = I40E_ERR_PARAM;
 		goto error_param;
 	}
@@ -2373,8 +2390,6 @@
 		}
 	}
 
-	vf->queues_enabled = true;
-
 error_param:
 	/* send the response to the VF */
 	return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_QUEUES,
@@ -2396,9 +2411,6 @@
 	struct i40e_pf *pf = vf->pf;
 	i40e_status aq_ret = 0;
 
-	/* Immediately mark queues as disabled */
-	vf->queues_enabled = false;
-
 	if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
 		aq_ret = I40E_ERR_PARAM;
 		goto error_param;
@@ -2409,9 +2421,7 @@
 		goto error_param;
 	}
 
-	if ((vqs->rx_queues == 0 && vqs->tx_queues == 0) ||
-	    vqs->rx_queues > I40E_MAX_VF_QUEUES ||
-	    vqs->tx_queues > I40E_MAX_VF_QUEUES) {
+	if (!i40e_vc_validate_vqs_bitmaps(vqs)) {
 		aq_ret = I40E_ERR_PARAM;
 		goto error_param;
 	}
@@ -3962,20 +3972,16 @@
 		goto error_param;
 
 	vf = &pf->vf[vf_id];
-	vsi = pf->vsi[vf->lan_vsi_idx];
 
 	/* When the VF is resetting wait until it is done.
 	 * It can take up to 200 milliseconds,
 	 * but wait for up to 300 milliseconds to be safe.
-	 * If the VF is indeed in reset, the vsi pointer has
-	 * to show on the newly loaded vsi under pf->vsi[id].
+	 * Acquire the VSI pointer only after the VF has been
+	 * properly initialized.
 	 */
 	for (i = 0; i < 15; i++) {
-		if (test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
-			if (i > 0)
-				vsi = pf->vsi[vf->lan_vsi_idx];
+		if (test_bit(I40E_VF_STATE_INIT, &vf->vf_states))
 			break;
-		}
 		msleep(20);
 	}
 	if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) {
@@ -3984,6 +3990,7 @@
 		ret = -EAGAIN;
 		goto error_param;
 	}
+	vsi = pf->vsi[vf->lan_vsi_idx];
 
 	if (is_multicast_ether_addr(mac)) {
 		dev_err(&pf->pdev->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
@@ -99,7 +99,6 @@
 	unsigned int tx_rate;	/* Tx bandwidth limit in Mbps */
 	bool link_forced;
 	bool link_up;		/* only valid if VF link is forced */
-	bool queues_enabled;	/* true if the VF queues are enabled */
 	bool spoofchk;
 	u16 num_mac;
 	u16 num_vlan;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/i40e/i40e_xsk.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/i40e/i40e_xsk.c
@@ -9,6 +9,11 @@
 #include "i40e_txrx_common.h"
 #include "i40e_xsk.h"
 
+static struct i40e_rx_buffer *i40e_rx_bi(struct i40e_ring *rx_ring, u32 idx)
+{
+	return &rx_ring->rx_bi[idx];
+}
+
 /**
  * i40e_xsk_umem_dma_map - DMA maps all UMEM memory for the netdev
  * @vsi: Current VSI
@@ -321,7 +326,7 @@
 	bool ok = true;
 
 	rx_desc = I40E_RX_DESC(rx_ring, ntu);
-	bi = &rx_ring->rx_bi[ntu];
+	bi = i40e_rx_bi(rx_ring, ntu);
 	do {
 		if (!alloc(rx_ring, bi)) {
 			ok = false;
@@ -340,7 +345,7 @@
 
 		if (unlikely(ntu == rx_ring->count)) {
 			rx_desc = I40E_RX_DESC(rx_ring, 0);
-			bi = rx_ring->rx_bi;
+			bi = i40e_rx_bi(rx_ring, 0);
 			ntu = 0;
 		}
 
@@ -402,7 +407,7 @@
 {
 	struct i40e_rx_buffer *bi;
 
-	bi = &rx_ring->rx_bi[rx_ring->next_to_clean];
+	bi = i40e_rx_bi(rx_ring, rx_ring->next_to_clean);
 
 	/* we are reusing so sync this buffer for CPU use */
 	dma_sync_single_range_for_cpu(rx_ring->dev,
@@ -424,7 +429,8 @@
 static void i40e_reuse_rx_buffer_zc(struct i40e_ring *rx_ring,
 				    struct i40e_rx_buffer *old_bi)
 {
-	struct i40e_rx_buffer *new_bi = &rx_ring->rx_bi[rx_ring->next_to_alloc];
+	struct i40e_rx_buffer *new_bi = i40e_rx_bi(rx_ring,
+						   rx_ring->next_to_alloc);
 	u16 nta = rx_ring->next_to_alloc;
 
 	/* update, and store next to alloc */
@@ -456,7 +462,7 @@
 	mask = rx_ring->xsk_umem->chunk_mask;
 
 	nta = rx_ring->next_to_alloc;
-	bi = &rx_ring->rx_bi[nta];
+	bi = i40e_rx_bi(rx_ring, nta);
 
 	nta++;
 	rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0;
@@ -787,8 +793,12 @@
 {
 	struct i40e_netdev_priv *np = netdev_priv(dev);
 	struct i40e_vsi *vsi = np->vsi;
+	struct i40e_pf *pf = vsi->back;
 	struct i40e_ring *ring;
 
+	if (test_bit(__I40E_CONFIG_BUSY, pf->state))
+		return -EAGAIN;
+
 	if (test_bit(__I40E_VSI_DOWN, vsi->state))
 		return -ENETDOWN;
 
@@ -820,7 +830,7 @@
 	u16 i;
 
 	for (i = 0; i < rx_ring->count; i++) {
-		struct i40e_rx_buffer *rx_bi = &rx_ring->rx_bi[i];
+		struct i40e_rx_buffer *rx_bi = i40e_rx_bi(rx_ring, i);
 
 		if (!rx_bi->addr)
 			continue;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/iavf/iavf.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/iavf/iavf.h
@@ -87,6 +87,10 @@
 #define IAVF_HLUT_ARRAY_SIZE ((IAVF_VFQF_HLUT_MAX_INDEX + 1) * 4)
 #define IAVF_MBPS_DIVISOR	125000 /* divisor to convert to Mbps */
 
+#define IAVF_VIRTCHNL_VF_RESOURCE_SIZE (sizeof(struct virtchnl_vf_resource) + \
+					(IAVF_MAX_VF_VSI * \
+					 sizeof(struct virtchnl_vsi_resource)))
+
 /* MAX_MSIX_Q_VECTORS of these are allocated,
  * but we only use one per queue-specific vector.
  */
@@ -306,6 +310,14 @@
 	bool netdev_registered;
 	bool link_up;
 	enum virtchnl_link_speed link_speed;
+	/* This is only populated if the VIRTCHNL_VF_CAP_ADV_LINK_SPEED is set
+	 * in vf_res->vf_cap_flags. Use ADV_LINK_SUPPORT macro to determine if
+	 * this field is valid. This field should be used going forward and the
+	 * enum virtchnl_link_speed above should be considered the legacy way of
+	 * storing/communicating link speeds.
+	 */
+	u32 link_speed_mbps;
+
 	enum virtchnl_ops current_op;
 #define CLIENT_ALLOWED(_a) ((_a)->vf_res ? \
 			    (_a)->vf_res->vf_cap_flags & \
@@ -322,6 +334,8 @@
 			VIRTCHNL_VF_OFFLOAD_RSS_PF)))
 #define VLAN_ALLOWED(_a) ((_a)->vf_res->vf_cap_flags & \
 			  VIRTCHNL_VF_OFFLOAD_VLAN)
+#define ADV_LINK_SUPPORT(_a) ((_a)->vf_res->vf_cap_flags & \
+			      VIRTCHNL_VF_CAP_ADV_LINK_SPEED)
 	struct virtchnl_vf_resource *vf_res; /* incl. all VSIs */
 	struct virtchnl_vsi_resource *vsi_res; /* our LAN VSI */
 	struct virtchnl_version_info pf_version;
@@ -415,4 +429,6 @@
 void iavf_disable_channels(struct iavf_adapter *adapter);
 void iavf_add_cloud_filter(struct iavf_adapter *adapter);
 void iavf_del_cloud_filter(struct iavf_adapter *adapter);
+struct iavf_mac_filter *iavf_add_filter(struct iavf_adapter *adapter,
+					const u8 *macaddr);
 #endif /* _IAVF_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
@@ -278,7 +278,18 @@
 	ethtool_link_ksettings_zero_link_mode(cmd, supported);
 	cmd->base.autoneg = AUTONEG_DISABLE;
 	cmd->base.port = PORT_NONE;
-	/* Set speed and duplex */
+	cmd->base.duplex = DUPLEX_FULL;
+
+	if (ADV_LINK_SUPPORT(adapter)) {
+		if (adapter->link_speed_mbps &&
+		    adapter->link_speed_mbps < U32_MAX)
+			cmd->base.speed = adapter->link_speed_mbps;
+		else
+			cmd->base.speed = SPEED_UNKNOWN;
+
+		return 0;
+	}
+
 	switch (adapter->link_speed) {
 	case IAVF_LINK_SPEED_40GB:
 		cmd->base.speed = SPEED_40000;
@@ -306,7 +317,6 @@
 	default:
 		break;
 	}
-	cmd->base.duplex = DUPLEX_FULL;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -743,9 +743,8 @@
  *
  * Returns ptr to the filter object or NULL when no memory available.
  **/
-static struct
-iavf_mac_filter *iavf_add_filter(struct iavf_adapter *adapter,
-				 const u8 *macaddr)
+struct iavf_mac_filter *iavf_add_filter(struct iavf_adapter *adapter,
+					const u8 *macaddr)
 {
 	struct iavf_mac_filter *f;
 
@@ -1757,17 +1756,17 @@
 	struct net_device *netdev = adapter->netdev;
 	struct pci_dev *pdev = adapter->pdev;
 	struct iavf_hw *hw = &adapter->hw;
-	int err = 0, bufsz;
+	int err;
 
 	WARN_ON(adapter->state != __IAVF_INIT_GET_RESOURCES);
 	/* aq msg sent, awaiting reply */
 	if (!adapter->vf_res) {
-		bufsz = sizeof(struct virtchnl_vf_resource) +
-			(IAVF_MAX_VF_VSI *
-			sizeof(struct virtchnl_vsi_resource));
-		adapter->vf_res = kzalloc(bufsz, GFP_KERNEL);
-		if (!adapter->vf_res)
+		adapter->vf_res = kzalloc(IAVF_VIRTCHNL_VF_RESOURCE_SIZE,
+					  GFP_KERNEL);
+		if (!adapter->vf_res) {
+			err = -ENOMEM;
 			goto err;
+		}
 	}
 	err = iavf_get_vf_config(adapter);
 	if (err == IAVF_ERR_ADMIN_QUEUE_NO_WORK) {
@@ -1845,11 +1844,9 @@
 	netif_tx_stop_all_queues(netdev);
 	if (CLIENT_ALLOWED(adapter)) {
 		err = iavf_lan_add_device(adapter);
-		if (err) {
-			rtnl_unlock();
+		if (err)
 			dev_info(&pdev->dev, "Failed to add VF to client API service list: %d\n",
 				 err);
-		}
 	}
 	dev_info(&pdev->dev, "MAC address: %pM\n", adapter->hw.mac.addr);
 	if (netdev->features & NETIF_F_GRO)
@@ -1864,8 +1861,10 @@
 
 	adapter->rss_key = kzalloc(adapter->rss_key_size, GFP_KERNEL);
 	adapter->rss_lut = kzalloc(adapter->rss_lut_size, GFP_KERNEL);
-	if (!adapter->rss_key || !adapter->rss_lut)
+	if (!adapter->rss_key || !adapter->rss_lut) {
+		err = -ENOMEM;
 		goto err_mem;
+	}
 	if (RSS_AQ(adapter))
 		adapter->aq_required |= IAVF_FLAG_AQ_CONFIGURE_RSS;
 	else
@@ -1947,7 +1946,10 @@
 				iavf_send_api_ver(adapter);
 			}
 		} else {
-			if (!iavf_process_aq_command(adapter) &&
+			/* An error will be returned if no commands were
+			 * processed; use this opportunity to update stats
+			 */
+			if (iavf_process_aq_command(adapter) &&
 			    adapter->state == __IAVF_RUNNING)
 				iavf_request_stats(adapter);
 		}
@@ -2037,7 +2039,7 @@
 	iavf_reset_interrupt_capability(adapter);
 	iavf_free_queues(adapter);
 	iavf_free_q_vectors(adapter);
-	kfree(adapter->vf_res);
+	memset(adapter->vf_res, 0, IAVF_VIRTCHNL_VF_RESOURCE_SIZE);
 	iavf_shutdown_adminq(&adapter->hw);
 	adapter->netdev->flags &= ~IFF_UP;
 	clear_bit(__IAVF_IN_CRITICAL_TASK, &adapter->crit_section);
@@ -2065,9 +2067,9 @@
 	struct virtchnl_vf_resource *vfres = adapter->vf_res;
 	struct net_device *netdev = adapter->netdev;
 	struct iavf_hw *hw = &adapter->hw;
+	struct iavf_mac_filter *f, *ftmp;
 	struct iavf_vlan_filter *vlf;
 	struct iavf_cloud_filter *cf;
-	struct iavf_mac_filter *f;
 	u32 reg_val;
 	int i = 0, err;
 	bool running;
@@ -2181,6 +2183,16 @@
 
 	spin_lock_bh(&adapter->mac_vlan_list_lock);
 
+	/* Delete filter for the current MAC address, it could have
+	 * been changed by the PF via administratively set MAC.
+	 * Will be re-added via VIRTCHNL_OP_GET_VF_RESOURCES.
+	 */
+	list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) {
+		if (ether_addr_equal(f->macaddr, adapter->hw.mac.addr)) {
+			list_del(&f->list);
+			kfree(f);
+		}
+	}
 	/* re-add all MAC filters */
 	list_for_each_entry(f, &adapter->mac_filter_list, list) {
 		f->add = true;
@@ -2478,6 +2490,16 @@
 {
 	int speed = 0, ret = 0;
 
+	if (ADV_LINK_SUPPORT(adapter)) {
+		if (adapter->link_speed_mbps < U32_MAX) {
+			speed = adapter->link_speed_mbps;
+			goto validate_bw;
+		} else {
+			dev_err(&adapter->pdev->dev, "Unknown link speed\n");
+			return -EINVAL;
+		}
+	}
+
 	switch (adapter->link_speed) {
 	case IAVF_LINK_SPEED_40GB:
 		speed = 40000;
@@ -2501,6 +2523,7 @@
 		break;
 	}
 
+validate_bw:
 	if (max_tx_rate > speed) {
 		dev_err(&adapter->pdev->dev,
 			"Invalid tx rate specified\n");
@@ -3052,9 +3075,6 @@
 static int iavf_setup_tc_cls_flower(struct iavf_adapter *adapter,
 				    struct flow_cls_offload *cls_flower)
 {
-	if (cls_flower->common.chain_index)
-		return -EOPNOTSUPP;
-
 	switch (cls_flower->command) {
 	case FLOW_CLS_REPLACE:
 		return iavf_configure_clsflower(adapter, cls_flower);
@@ -3078,6 +3098,11 @@
 static int iavf_setup_tc_block_cb(enum tc_setup_type type, void *type_data,
 				  void *cb_priv)
 {
+	struct iavf_adapter *adapter = cb_priv;
+
+	if (!tc_cls_can_offload_and_chain0(adapter->netdev, type_data))
+		return -EOPNOTSUPP;
+
 	switch (type) {
 	case TC_SETUP_CLSFLOWER:
 		return iavf_setup_tc_cls_flower(cb_priv, type_data);
@@ -3746,7 +3771,6 @@
 	return err;
 }
 
-#ifdef CONFIG_PM
 /**
  * iavf_suspend - Power management suspend routine
  * @pdev: PCI device information struct
@@ -3754,11 +3778,10 @@
  *
  * Called when the system (VM) is entering sleep/suspend.
  **/
-static int iavf_suspend(struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused iavf_suspend(struct device *dev_d)
 {
-	struct net_device *netdev = pci_get_drvdata(pdev);
+	struct net_device *netdev = dev_get_drvdata(dev_d);
 	struct iavf_adapter *adapter = netdev_priv(netdev);
-	int retval = 0;
 
 	netif_device_detach(netdev);
 
@@ -3776,12 +3799,6 @@
 
 	clear_bit(__IAVF_IN_CRITICAL_TASK, &adapter->crit_section);
 
-	retval = pci_save_state(pdev);
-	if (retval)
-		return retval;
-
-	pci_disable_device(pdev);
-
 	return 0;
 }
 
@@ -3791,24 +3808,13 @@
  *
  * Called when the system (VM) is resumed from sleep/suspend.
  **/
-static int iavf_resume(struct pci_dev *pdev)
+static int __maybe_unused iavf_resume(struct device *dev_d)
 {
-	struct iavf_adapter *adapter = pci_get_drvdata(pdev);
-	struct net_device *netdev = adapter->netdev;
+	struct pci_dev *pdev = to_pci_dev(dev_d);
+	struct net_device *netdev = pci_get_drvdata(pdev);
+	struct iavf_adapter *adapter = netdev_priv(netdev);
 	u32 err;
 
-	pci_set_power_state(pdev, PCI_D0);
-	pci_restore_state(pdev);
-	/* pci_restore_state clears dev->state_saved so call
-	 * pci_save_state to restore it.
-	 */
-	pci_save_state(pdev);
-
-	err = pci_enable_device_mem(pdev);
-	if (err) {
-		dev_err(&pdev->dev, "Cannot enable PCI device from suspend.\n");
-		return err;
-	}
 	pci_set_master(pdev);
 
 	rtnl_lock();
@@ -3832,7 +3838,6 @@
 	return err;
 }
 
-#endif /* CONFIG_PM */
 /**
  * iavf_remove - Device Removal Routine
  * @pdev: PCI device information struct
@@ -3934,16 +3939,15 @@
 	pci_disable_device(pdev);
 }
 
+static SIMPLE_DEV_PM_OPS(iavf_pm_ops, iavf_suspend, iavf_resume);
+
 static struct pci_driver iavf_driver = {
-	.name     = iavf_driver_name,
-	.id_table = iavf_pci_tbl,
-	.probe    = iavf_probe,
-	.remove   = iavf_remove,
-#ifdef CONFIG_PM
-	.suspend  = iavf_suspend,
-	.resume   = iavf_resume,
-#endif
-	.shutdown = iavf_shutdown,
+	.name      = iavf_driver_name,
+	.id_table  = iavf_pci_tbl,
+	.probe     = iavf_probe,
+	.remove    = iavf_remove,
+	.driver.pm = &iavf_pm_ops,
+	.shutdown  = iavf_shutdown,
 };
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
@@ -139,7 +139,8 @@
 	       VIRTCHNL_VF_OFFLOAD_ENCAP |
 	       VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM |
 	       VIRTCHNL_VF_OFFLOAD_REQ_QUEUES |
-	       VIRTCHNL_VF_OFFLOAD_ADQ;
+	       VIRTCHNL_VF_OFFLOAD_ADQ |
+	       VIRTCHNL_VF_CAP_ADV_LINK_SPEED;
 
 	adapter->current_op = VIRTCHNL_OP_GET_VF_RESOURCES;
 	adapter->aq_required &= ~IAVF_FLAG_AQ_GET_CONFIG;
@@ -918,6 +919,8 @@
 	iavf_send_pf_msg(adapter, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING, NULL, 0);
 }
 
+#define IAVF_MAX_SPEED_STRLEN	13
+
 /**
  * iavf_print_link_message - print link up or down
  * @adapter: adapter structure
@@ -927,37 +930,99 @@
 static void iavf_print_link_message(struct iavf_adapter *adapter)
 {
 	struct net_device *netdev = adapter->netdev;
-	char *speed = "Unknown ";
+	int link_speed_mbps;
+	char *speed;
 
 	if (!adapter->link_up) {
 		netdev_info(netdev, "NIC Link is Down\n");
 		return;
 	}
 
+	speed = kcalloc(1, IAVF_MAX_SPEED_STRLEN, GFP_KERNEL);
+	if (!speed)
+		return;
+
+	if (ADV_LINK_SUPPORT(adapter)) {
+		link_speed_mbps = adapter->link_speed_mbps;
+		goto print_link_msg;
+	}
+
 	switch (adapter->link_speed) {
 	case IAVF_LINK_SPEED_40GB:
-		speed = "40 G";
+		link_speed_mbps = SPEED_40000;
 		break;
 	case IAVF_LINK_SPEED_25GB:
-		speed = "25 G";
+		link_speed_mbps = SPEED_25000;
 		break;
 	case IAVF_LINK_SPEED_20GB:
-		speed = "20 G";
+		link_speed_mbps = SPEED_20000;
 		break;
 	case IAVF_LINK_SPEED_10GB:
-		speed = "10 G";
+		link_speed_mbps = SPEED_10000;
 		break;
 	case IAVF_LINK_SPEED_1GB:
-		speed = "1000 M";
+		link_speed_mbps = SPEED_1000;
 		break;
 	case IAVF_LINK_SPEED_100MB:
-		speed = "100 M";
+		link_speed_mbps = SPEED_100;
 		break;
 	default:
+		link_speed_mbps = SPEED_UNKNOWN;
 		break;
 	}
 
-	netdev_info(netdev, "NIC Link is Up %sbps Full Duplex\n", speed);
+print_link_msg:
+	if (link_speed_mbps > SPEED_1000) {
+		if (link_speed_mbps == SPEED_2500)
+			snprintf(speed, IAVF_MAX_SPEED_STRLEN, "2.5 Gbps");
+		else
+			/* convert to Gbps inline */
+			snprintf(speed, IAVF_MAX_SPEED_STRLEN, "%d %s",
+				 link_speed_mbps / 1000, "Gbps");
+	} else if (link_speed_mbps == SPEED_UNKNOWN) {
+		snprintf(speed, IAVF_MAX_SPEED_STRLEN, "%s", "Unknown Mbps");
+	} else {
+		snprintf(speed, IAVF_MAX_SPEED_STRLEN, "%u %s",
+			 link_speed_mbps, "Mbps");
+	}
+
+	netdev_info(netdev, "NIC Link is Up Speed is %s Full Duplex\n", speed);
+	kfree(speed);
+}
+
+/**
+ * iavf_get_vpe_link_status
+ * @adapter: adapter structure
+ * @vpe: virtchnl_pf_event structure
+ *
+ * Helper function for determining the link status
+ **/
+static bool
+iavf_get_vpe_link_status(struct iavf_adapter *adapter,
+			 struct virtchnl_pf_event *vpe)
+{
+	if (ADV_LINK_SUPPORT(adapter))
+		return vpe->event_data.link_event_adv.link_status;
+	else
+		return vpe->event_data.link_event.link_status;
+}
+
+/**
+ * iavf_set_adapter_link_speed_from_vpe
+ * @adapter: adapter structure for which we are setting the link speed
+ * @vpe: virtchnl_pf_event structure that contains the link speed we are setting
+ *
+ * Helper function for setting iavf_adapter link speed
+ **/
+static void
+iavf_set_adapter_link_speed_from_vpe(struct iavf_adapter *adapter,
+				     struct virtchnl_pf_event *vpe)
+{
+	if (ADV_LINK_SUPPORT(adapter))
+		adapter->link_speed_mbps =
+			vpe->event_data.link_event_adv.link_speed;
+	else
+		adapter->link_speed = vpe->event_data.link_event.link_speed;
 }
 
 /**
@@ -1187,12 +1252,11 @@
 	if (v_opcode == VIRTCHNL_OP_EVENT) {
 		struct virtchnl_pf_event *vpe =
 			(struct virtchnl_pf_event *)msg;
-		bool link_up = vpe->event_data.link_event.link_status;
+		bool link_up = iavf_get_vpe_link_status(adapter, vpe);
 
 		switch (vpe->event) {
 		case VIRTCHNL_EVENT_LINK_CHANGE:
-			adapter->link_speed =
-				vpe->event_data.link_event.link_speed;
+			iavf_set_adapter_link_speed_from_vpe(adapter, vpe);
 
 			/* we've already got the right link status, bail */
 			if (adapter->link_up == link_up)
@@ -1359,6 +1423,9 @@
 			ether_addr_copy(netdev->perm_addr,
 					adapter->hw.mac.addr);
 		}
+		spin_lock_bh(&adapter->mac_vlan_list_lock);
+		iavf_add_filter(adapter, adapter->hw.mac.addr);
+		spin_unlock_bh(&adapter->mac_vlan_list_lock);
 		iavf_process_config(adapter);
 		}
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_common.c
@@ -436,6 +436,7 @@
 static enum ice_status ice_init_fltr_mgmt_struct(struct ice_hw *hw)
 {
 	struct ice_switch_info *sw;
+	enum ice_status status;
 
 	hw->switch_info = devm_kzalloc(ice_hw_to_dev(hw),
 				       sizeof(*hw->switch_info), GFP_KERNEL);
@@ -446,7 +447,12 @@
 
 	INIT_LIST_HEAD(&sw->vsi_list_map_head);
 
-	return ice_init_def_sw_recp(hw);
+	status = ice_init_def_sw_recp(hw);
+	if (status) {
+		devm_kfree(ice_hw_to_dev(hw), hw->switch_info);
+		return status;
+	}
+	return 0;
 }
 
 /**
@@ -934,7 +940,7 @@
  */
 enum ice_status ice_check_reset(struct ice_hw *hw)
 {
-	u32 cnt, reg = 0, grst_delay;
+	u32 cnt, reg = 0, grst_delay, uld_mask;
 
 	/* Poll for Device Active state in case a recent CORER, GLOBR,
 	 * or EMPR has occurred. The grst delay value is in 100ms units.
@@ -956,13 +962,20 @@
 		return ICE_ERR_RESET_FAILED;
 	}
 
-#define ICE_RESET_DONE_MASK	(GLNVM_ULD_CORER_DONE_M | \
-				 GLNVM_ULD_GLOBR_DONE_M)
+#define ICE_RESET_DONE_MASK	(GLNVM_ULD_PCIER_DONE_M |\
+				 GLNVM_ULD_PCIER_DONE_1_M |\
+				 GLNVM_ULD_CORER_DONE_M |\
+				 GLNVM_ULD_GLOBR_DONE_M |\
+				 GLNVM_ULD_POR_DONE_M |\
+				 GLNVM_ULD_POR_DONE_1_M |\
+				 GLNVM_ULD_PCIER_DONE_2_M)
+
+	uld_mask = ICE_RESET_DONE_MASK;
 
 	/* Device is Active; check Global Reset processes are done */
 	for (cnt = 0; cnt < ICE_PF_RESET_WAIT_COUNT; cnt++) {
-		reg = rd32(hw, GLNVM_ULD) & ICE_RESET_DONE_MASK;
-		if (reg == ICE_RESET_DONE_MASK) {
+		reg = rd32(hw, GLNVM_ULD) & uld_mask;
+		if (reg == uld_mask) {
 			ice_debug(hw, ICE_DBG_INIT,
 				  "Global reset processes done. %d\n", cnt);
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_controlq.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_controlq.c
@@ -199,7 +199,9 @@
 		cq->rq.r.rq_bi[i].pa = 0;
 		cq->rq.r.rq_bi[i].size = 0;
 	}
+	cq->rq.r.rq_bi = NULL;
 	devm_kfree(ice_hw_to_dev(hw), cq->rq.dma_head);
+	cq->rq.dma_head = NULL;
 
 	return ICE_ERR_NO_MEMORY;
 }
@@ -245,7 +247,9 @@
 		cq->sq.r.sq_bi[i].pa = 0;
 		cq->sq.r.sq_bi[i].size = 0;
 	}
+	cq->sq.r.sq_bi = NULL;
 	devm_kfree(ice_hw_to_dev(hw), cq->sq.dma_head);
+	cq->sq.dma_head = NULL;
 
 	return ICE_ERR_NO_MEMORY;
 }
@@ -304,6 +308,28 @@
 	return 0;
 }
 
+#define ICE_FREE_CQ_BUFS(hw, qi, ring)					\
+do {									\
+	int i;								\
+	/* free descriptors */						\
+	if ((qi)->ring.r.ring##_bi)					\
+		for (i = 0; i < (qi)->num_##ring##_entries; i++)	\
+			if ((qi)->ring.r.ring##_bi[i].pa) {		\
+				dmam_free_coherent(ice_hw_to_dev(hw),	\
+					(qi)->ring.r.ring##_bi[i].size,	\
+					(qi)->ring.r.ring##_bi[i].va,	\
+					(qi)->ring.r.ring##_bi[i].pa);	\
+					(qi)->ring.r.ring##_bi[i].va = NULL;\
+					(qi)->ring.r.ring##_bi[i].pa = 0;\
+					(qi)->ring.r.ring##_bi[i].size = 0;\
+		}							\
+	/* free the buffer info list */					\
+	if ((qi)->ring.cmd_buf)						\
+		devm_kfree(ice_hw_to_dev(hw), (qi)->ring.cmd_buf);	\
+	/* free DMA head */						\
+	devm_kfree(ice_hw_to_dev(hw), (qi)->ring.dma_head);		\
+} while (0)
+
 /**
  * ice_init_sq - main initialization routine for Control ATQ
  * @hw: pointer to the hardware structure
@@ -357,6 +383,7 @@
 	goto init_ctrlq_exit;
 
 init_ctrlq_free_rings:
+	ICE_FREE_CQ_BUFS(hw, cq, sq);
 	ice_free_cq_ring(hw, &cq->sq);
 
 init_ctrlq_exit:
@@ -416,33 +443,13 @@
 	goto init_ctrlq_exit;
 
 init_ctrlq_free_rings:
+	ICE_FREE_CQ_BUFS(hw, cq, rq);
 	ice_free_cq_ring(hw, &cq->rq);
 
 init_ctrlq_exit:
 	return ret_code;
 }
 
-#define ICE_FREE_CQ_BUFS(hw, qi, ring)					\
-do {									\
-	int i;								\
-	/* free descriptors */						\
-	for (i = 0; i < (qi)->num_##ring##_entries; i++)		\
-		if ((qi)->ring.r.ring##_bi[i].pa) {			\
-			dmam_free_coherent(ice_hw_to_dev(hw),		\
-					   (qi)->ring.r.ring##_bi[i].size,\
-					   (qi)->ring.r.ring##_bi[i].va,\
-					   (qi)->ring.r.ring##_bi[i].pa);\
-			(qi)->ring.r.ring##_bi[i].va = NULL;		\
-			(qi)->ring.r.ring##_bi[i].pa = 0;		\
-			(qi)->ring.r.ring##_bi[i].size = 0;		\
-		}							\
-	/* free the buffer info list */					\
-	if ((qi)->ring.cmd_buf)						\
-		devm_kfree(ice_hw_to_dev(hw), (qi)->ring.cmd_buf);	\
-	/* free DMA head */						\
-	devm_kfree(ice_hw_to_dev(hw), (qi)->ring.dma_head);		\
-} while (0)
-
 /**
  * ice_shutdown_sq - shutdown the Control ATQ
  * @hw: pointer to the hardware structure
@@ -948,7 +955,7 @@
 		if (ice_sq_done(hw, cq))
 			break;
 
-		mdelay(1);
+		udelay(ICE_CTL_Q_SQ_CMD_USEC);
 		total_delay++;
 	} while (total_delay < cq->sq_cmd_timeout);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_controlq.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_controlq.h
@@ -31,8 +31,9 @@
 	ICE_CTL_Q_MAILBOX,
 };
 
-/* Control Queue default settings */
-#define ICE_CTL_Q_SQ_CMD_TIMEOUT	250  /* msecs */
+/* Control Queue timeout settings - max delay 250ms */
+#define ICE_CTL_Q_SQ_CMD_TIMEOUT	2500  /* Count 2500 times */
+#define ICE_CTL_Q_SQ_CMD_USEC		100   /* Check every 100usec */
 
 struct ice_ctl_q_ring {
 	void *dma_head;			/* Virtual address to DMA head */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_ethtool.c
@@ -2635,14 +2635,14 @@
 	netdev_info(netdev, "Changing Tx descriptor count from %d to %d\n",
 		    vsi->tx_rings[0]->count, new_tx_cnt);
 
-	tx_rings = devm_kcalloc(&pf->pdev->dev, vsi->alloc_txq,
+	tx_rings = devm_kcalloc(&pf->pdev->dev, vsi->num_txq,
 				sizeof(*tx_rings), GFP_KERNEL);
 	if (!tx_rings) {
 		err = -ENOMEM;
 		goto done;
 	}
 
-	for (i = 0; i < vsi->alloc_txq; i++) {
+	ice_for_each_txq(vsi, i) {
 		/* clone ring and setup updated count */
 		tx_rings[i] = *vsi->tx_rings[i];
 		tx_rings[i].count = new_tx_cnt;
@@ -2667,14 +2667,14 @@
 	netdev_info(netdev, "Changing Rx descriptor count from %d to %d\n",
 		    vsi->rx_rings[0]->count, new_rx_cnt);
 
-	rx_rings = devm_kcalloc(&pf->pdev->dev, vsi->alloc_rxq,
+	rx_rings = devm_kcalloc(&pf->pdev->dev, vsi->num_rxq,
 				sizeof(*rx_rings), GFP_KERNEL);
 	if (!rx_rings) {
 		err = -ENOMEM;
 		goto done;
 	}
 
-	for (i = 0; i < vsi->alloc_rxq; i++) {
+	ice_for_each_rxq(vsi, i) {
 		/* clone ring and setup updated count */
 		rx_rings[i] = *vsi->rx_rings[i];
 		rx_rings[i].count = new_rx_cnt;
@@ -2712,7 +2712,7 @@
 		ice_down(vsi);
 
 		if (tx_rings) {
-			for (i = 0; i < vsi->alloc_txq; i++) {
+			ice_for_each_txq(vsi, i) {
 				ice_free_tx_ring(vsi->tx_rings[i]);
 				*vsi->tx_rings[i] = tx_rings[i];
 			}
@@ -2720,7 +2720,7 @@
 		}
 
 		if (rx_rings) {
-			for (i = 0; i < vsi->alloc_rxq; i++) {
+			ice_for_each_rxq(vsi, i) {
 				ice_free_rx_ring(vsi->rx_rings[i]);
 				/* copy the real tail offset */
 				rx_rings[i].tail = vsi->rx_rings[i]->tail;
@@ -2744,7 +2744,7 @@
 free_tx:
 	/* error cleanup if the Rx allocations failed after getting Tx */
 	if (tx_rings) {
-		for (i = 0; i < vsi->alloc_txq; i++)
+		ice_for_each_txq(vsi, i)
 			ice_free_tx_ring(&tx_rings[i]);
 		devm_kfree(&pf->pdev->dev, tx_rings);
 	}
@@ -2916,13 +2916,6 @@
 	else
 		return -EINVAL;
 
-	/* Tell the OS link is going down, the link will go back up when fw
-	 * says it is ready asynchronously
-	 */
-	ice_print_link_msg(vsi, false);
-	netif_carrier_off(netdev);
-	netif_tx_stop_all_queues(netdev);
-
 	/* Set the FC mode and only restart AN if link is up */
 	status = ice_set_fc(pi, &aq_failures, link_up);
 
@@ -3368,10 +3361,17 @@
 	struct ice_vsi *vsi = np->vsi;
 
 	if (q_num < 0) {
-		int i;
+		int v_idx;
+
+		ice_for_each_q_vector(vsi, v_idx) {
+			/* In some cases if DCB is configured the num_[rx|tx]q
+			 * can be less than vsi->num_q_vectors. This check
+			 * accounts for that so we don't report a false failure
+			 */
+			if (v_idx >= vsi->num_rxq && v_idx >= vsi->num_txq)
+				goto set_complete;
 
-		ice_for_each_q_vector(vsi, i) {
-			if (ice_set_q_coalesce(vsi, ec, i))
+			if (ice_set_q_coalesce(vsi, ec, v_idx))
 				return -EINVAL;
 		}
 		goto set_complete;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_flex_pipe.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_flex_pipe.c
@@ -1535,10 +1535,12 @@
 		es->ref_count = devm_kcalloc(ice_hw_to_dev(hw), es->count,
 					     sizeof(*es->ref_count),
 					     GFP_KERNEL);
+		if (!es->ref_count)
+			goto err;
 
 		es->written = devm_kcalloc(ice_hw_to_dev(hw), es->count,
 					   sizeof(*es->written), GFP_KERNEL);
-		if (!es->ref_count)
+		if (!es->written)
 			goto err;
 	}
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_hw_autogen.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_hw_autogen.h
@@ -273,8 +273,14 @@
 #define GLNVM_GENS_SR_SIZE_S			5
 #define GLNVM_GENS_SR_SIZE_M			ICE_M(0x7, 5)
 #define GLNVM_ULD				0x000B6008
+#define GLNVM_ULD_PCIER_DONE_M			BIT(0)
+#define GLNVM_ULD_PCIER_DONE_1_M		BIT(1)
 #define GLNVM_ULD_CORER_DONE_M			BIT(3)
 #define GLNVM_ULD_GLOBR_DONE_M			BIT(4)
+#define GLNVM_ULD_POR_DONE_M			BIT(5)
+#define GLNVM_ULD_POR_DONE_1_M			BIT(8)
+#define GLNVM_ULD_PCIER_DONE_2_M		BIT(9)
+#define GLNVM_ULD_PE_DONE_M			BIT(10)
 #define GLPCI_CNF2				0x000BE004
 #define GLPCI_CNF2_CACHELINE_SIZE_M		BIT(1)
 #define PF_FUNC_RID				0x0009E880
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_main.c
@@ -2900,7 +2900,7 @@
 	if (err) {
 		dev_err(dev, "ice_init_interrupt_scheme failed: %d\n", err);
 		err = -EIO;
-		goto err_init_interrupt_unroll;
+		goto err_init_vsi_unroll;
 	}
 
 	/* Driver is mostly up */
@@ -2986,6 +2986,7 @@
 	ice_free_irq_msix_misc(pf);
 err_init_interrupt_unroll:
 	ice_clear_interrupt_scheme(pf);
+err_init_vsi_unroll:
 	devm_kfree(dev, pf->vsi);
 err_init_pf_unroll:
 	ice_deinit_pf(pf);
@@ -3970,8 +3971,13 @@
 	}
 
 	ice_for_each_txq(vsi, i) {
-		vsi->tx_rings[i]->netdev = vsi->netdev;
-		err = ice_setup_tx_ring(vsi->tx_rings[i]);
+		struct ice_ring *ring = vsi->tx_rings[i];
+
+		if (!ring)
+			return -EINVAL;
+
+		ring->netdev = vsi->netdev;
+		err = ice_setup_tx_ring(ring);
 		if (err)
 			break;
 	}
@@ -3996,8 +4002,13 @@
 	}
 
 	ice_for_each_rxq(vsi, i) {
-		vsi->rx_rings[i]->netdev = vsi->netdev;
-		err = ice_setup_rx_ring(vsi->rx_rings[i]);
+		struct ice_ring *ring = vsi->rx_rings[i];
+
+		if (!ring)
+			return -EINVAL;
+
+		ring->netdev = vsi->netdev;
+		err = ice_setup_rx_ring(ring);
 		if (err)
 			break;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
@@ -317,8 +317,9 @@
 	pf->num_alloc_vfs = 0;
 	for (i = 0; i < tmp; i++) {
 		if (test_bit(ICE_VF_STATE_INIT, pf->vf[i].vf_states)) {
-			/* disable VF qp mappings */
+			/* disable VF qp mappings and set VF disable state */
 			ice_dis_vf_mappings(&pf->vf[i]);
+			set_bit(ICE_VF_STATE_DIS, pf->vf[i].vf_states);
 			ice_free_vf_res(&pf->vf[i]);
 		}
 	}
@@ -1287,9 +1288,12 @@
 	if (!vf || vf->vf_id >= vf->pf->num_alloc_vfs)
 		return;
 
-	/* verify if the VF is in either init or active before proceeding */
-	if (!test_bit(ICE_VF_STATE_INIT, vf->vf_states) &&
-	    !test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states))
+	/* Bail out if VF is in disabled state, neither initialized, nor active
+	 * state - otherwise proceed with notifications
+	 */
+	if ((!test_bit(ICE_VF_STATE_INIT, vf->vf_states) &&
+	     !test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) ||
+	    test_bit(ICE_VF_STATE_DIS, vf->vf_states))
 		return;
 
 	pfe.event = VIRTCHNL_EVENT_RESET_IMPENDING;
@@ -1869,8 +1873,8 @@
 	enum virtchnl_status_code v_ret = VIRTCHNL_STATUS_SUCCESS;
 	struct virtchnl_queue_select *vqs =
 		(struct virtchnl_queue_select *)msg;
+	struct ice_eth_stats stats = { 0 };
 	struct ice_pf *pf = vf->pf;
-	struct ice_eth_stats stats;
 	struct ice_vsi *vsi;
 
 	if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) {
@@ -1889,7 +1893,6 @@
 		goto error_param;
 	}
 
-	memset(&stats, 0, sizeof(struct ice_eth_stats));
 	ice_update_eth_stats(vsi);
 
 	stats = vsi->eth_stats;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igb/e1000_82575.c
@@ -530,7 +530,7 @@
 		dev_spec->module_plugged = true;
 		if (eth_flags->e1000_base_lx || eth_flags->e1000_base_sx) {
 			hw->phy.media_type = e1000_media_type_internal_serdes;
-		} else if (eth_flags->e100_base_fx) {
+		} else if (eth_flags->e100_base_fx || eth_flags->e100_base_lx) {
 			dev_spec->sgmii_active = true;
 			hw->phy.media_type = e1000_media_type_internal_serdes;
 		} else if (eth_flags->e1000_base_t) {
@@ -657,14 +657,10 @@
 			break;
 		}
 
-		/* do not change link mode for 100BaseFX */
-		if (dev_spec->eth_flags.e100_base_fx)
-			break;
-
 		/* change current link mode setting */
 		ctrl_ext &= ~E1000_CTRL_EXT_LINK_MODE_MASK;
 
-		if (hw->phy.media_type == e1000_media_type_copper)
+		if (dev_spec->sgmii_active)
 			ctrl_ext |= E1000_CTRL_EXT_LINK_MODE_SGMII;
 		else
 			ctrl_ext |= E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -143,7 +143,8 @@
 	u32 speed;
 	u32 supported, advertising;
 
-	status = rd32(E1000_STATUS);
+	status = pm_runtime_suspended(&adapter->pdev->dev) ?
+		 0 : rd32(E1000_STATUS);
 	if (hw->phy.media_type == e1000_media_type_copper) {
 
 		supported = (SUPPORTED_10baseT_Half |
@@ -181,7 +182,7 @@
 				advertising &= ~ADVERTISED_1000baseKX_Full;
 			}
 		}
-		if (eth_flags->e100_base_fx) {
+		if (eth_flags->e100_base_fx || eth_flags->e100_base_lx) {
 			supported |= SUPPORTED_100baseT_Full;
 			advertising |= ADVERTISED_100baseT_Full;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igb/igb_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igb/igb_main.c
@@ -6194,9 +6194,18 @@
 	struct igb_adapter *adapter;
 	adapter = container_of(work, struct igb_adapter, reset_task);
 
+	rtnl_lock();
+	/* If we're already down or resetting, just bail */
+	if (test_bit(__IGB_DOWN, &adapter->state) ||
+	    test_bit(__IGB_RESETTING, &adapter->state)) {
+		rtnl_unlock();
+		return;
+	}
+
 	igb_dump(adapter);
 	netdev_err(adapter->netdev, "Reset adapter\n");
 	igb_reinit_locked(adapter);
+	rtnl_unlock();
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_defines.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -360,6 +360,7 @@
 /* PHY Status Register */
 #define MII_SR_LINK_STATUS	0x0004 /* Link Status 1 = link */
 #define MII_SR_AUTONEG_COMPLETE	0x0020 /* Auto Neg Complete */
+#define IGC_PHY_RST_COMP	0x0100 /* Internal PHY reset completion */
 
 /* PHY 1000 MII Register/Bit Definitions */
 /* PHY Registers defined by IEEE */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1670,12 +1670,18 @@
 	cmd->base.phy_address = hw->phy.addr;
 
 	/* advertising link modes */
-	ethtool_link_ksettings_add_link_mode(cmd, advertising, 10baseT_Half);
-	ethtool_link_ksettings_add_link_mode(cmd, advertising, 10baseT_Full);
-	ethtool_link_ksettings_add_link_mode(cmd, advertising, 100baseT_Half);
-	ethtool_link_ksettings_add_link_mode(cmd, advertising, 100baseT_Full);
-	ethtool_link_ksettings_add_link_mode(cmd, advertising, 1000baseT_Full);
-	ethtool_link_ksettings_add_link_mode(cmd, advertising, 2500baseT_Full);
+	if (hw->phy.autoneg_advertised & ADVERTISE_10_HALF)
+		ethtool_link_ksettings_add_link_mode(cmd, advertising, 10baseT_Half);
+	if (hw->phy.autoneg_advertised & ADVERTISE_10_FULL)
+		ethtool_link_ksettings_add_link_mode(cmd, advertising, 10baseT_Full);
+	if (hw->phy.autoneg_advertised & ADVERTISE_100_HALF)
+		ethtool_link_ksettings_add_link_mode(cmd, advertising, 100baseT_Half);
+	if (hw->phy.autoneg_advertised & ADVERTISE_100_FULL)
+		ethtool_link_ksettings_add_link_mode(cmd, advertising, 100baseT_Full);
+	if (hw->phy.autoneg_advertised & ADVERTISE_1000_FULL)
+		ethtool_link_ksettings_add_link_mode(cmd, advertising, 1000baseT_Full);
+	if (hw->phy.autoneg_advertised & ADVERTISE_2500_FULL)
+		ethtool_link_ksettings_add_link_mode(cmd, advertising, 2500baseT_Full);
 
 	/* set autoneg settings */
 	if (hw->mac.autoneg == 1) {
@@ -1703,7 +1709,8 @@
 						     Asym_Pause);
 	}
 
-	status = rd32(IGC_STATUS);
+	status = pm_runtime_suspended(&adapter->pdev->dev) ?
+		 0 : rd32(IGC_STATUS);
 
 	if (status & IGC_STATUS_LU) {
 		if (status & IGC_STATUS_SPEED_1000) {
@@ -1786,6 +1793,12 @@
 
 	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 (cmd->base.autoneg == AUTONEG_ENABLE) {
 		hw->mac.autoneg = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_i225.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_i225.c
@@ -219,9 +219,9 @@
 			      u16 *data)
 {
 	struct igc_nvm_info *nvm = &hw->nvm;
+	s32 ret_val = -IGC_ERR_NVM;
 	u32 attempts = 100000;
 	u32 i, k, eewr = 0;
-	s32 ret_val = 0;
 
 	/* A check for invalid values:  offset too large, too many words,
 	 * too many words for the offset, and not enough words.
@@ -229,7 +229,6 @@
 	if (offset >= nvm->word_size || (words > (nvm->word_size - offset)) ||
 	    words == 0) {
 		hw_dbg("nvm parameter(s) out of bounds\n");
-		ret_val = -IGC_ERR_NVM;
 		goto out;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_mac.c
@@ -647,7 +647,7 @@
 	}
 
 out:
-	return 0;
+	return ret_val;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2222,21 +2222,23 @@
 }
 
 /**
- * igc_get_stats - Get System Network Statistics
+ * igc_get_stats64 - Get System Network Statistics
  * @netdev: network interface device structure
+ * @stats: rtnl_link_stats64 pointer
  *
  * Returns the address of the device statistics structure.
  * The statistics are updated here and also from the timer callback.
  */
-static struct net_device_stats *igc_get_stats(struct net_device *netdev)
+static void igc_get_stats64(struct net_device *netdev,
+			    struct rtnl_link_stats64 *stats)
 {
 	struct igc_adapter *adapter = netdev_priv(netdev);
 
+	spin_lock(&adapter->stats64_lock);
 	if (!test_bit(__IGC_RESETTING, &adapter->state))
 		igc_update_stats(adapter);
-
-	/* only return the current stats */
-	return &netdev->stats;
+	memcpy(stats, &adapter->stats64, sizeof(*stats));
+	spin_unlock(&adapter->stats64_lock);
 }
 
 static netdev_features_t igc_fix_features(struct net_device *netdev,
@@ -3984,7 +3986,7 @@
 	.ndo_start_xmit		= igc_xmit_frame,
 	.ndo_set_mac_address	= igc_set_mac,
 	.ndo_change_mtu		= igc_change_mtu,
-	.ndo_get_stats		= igc_get_stats,
+	.ndo_get_stats64	= igc_get_stats64,
 	.ndo_fix_features	= igc_fix_features,
 	.ndo_set_features	= igc_set_features,
 	.ndo_features_check	= igc_features_check,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_phy.c
@@ -173,6 +173,7 @@
 s32 igc_phy_hw_reset(struct igc_hw *hw)
 {
 	struct igc_phy_info *phy = &hw->phy;
+	u32 phpm = 0, timeout = 10000;
 	s32  ret_val;
 	u32 ctrl;
 
@@ -186,6 +187,8 @@
 	if (ret_val)
 		goto out;
 
+	phpm = rd32(IGC_I225_PHPM);
+
 	ctrl = rd32(IGC_CTRL);
 	wr32(IGC_CTRL, ctrl | IGC_CTRL_PHY_RST);
 	wrfl();
@@ -195,7 +198,18 @@
 	wr32(IGC_CTRL, ctrl);
 	wrfl();
 
-	usleep_range(1500, 2000);
+	/* SW should guarantee 100us for the completion of the PHY reset */
+	usleep_range(100, 150);
+	do {
+		phpm = rd32(IGC_I225_PHPM);
+		timeout--;
+		udelay(1);
+	} while (!(phpm & IGC_PHY_RST_COMP) && timeout);
+
+	if (!timeout)
+		hw_dbg("Timeout is expired after a phy reset\n");
+
+	usleep_range(100, 150);
 
 	phy->ops.release(hw);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/igc/igc_regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -12,6 +12,7 @@
 #define IGC_MDIC		0x00020  /* MDI Control - RW */
 #define IGC_MDICNFG		0x00E04  /* MDC/MDIO Configuration - RW */
 #define IGC_CONNSW		0x00034  /* Copper/Fiber switch control - RW */
+#define IGC_I225_PHPM		0x00E14  /* I225 PHY Power Management */
 
 /* Internal Packet Buffer Size Registers */
 #define IGC_RXPBS		0x02404  /* Rx Packet Buffer Size - RW */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -2243,7 +2243,7 @@
 	}
 
 	/* Configure pause time (2 TCs per register) */
-	reg = hw->fc.pause_time * 0x00010001;
+	reg = hw->fc.pause_time * 0x00010001U;
 	for (i = 0; i < (MAX_TRAFFIC_CLASS / 2); i++)
 		IXGBE_WRITE_REG(hw, IXGBE_FCTTV(i), reg);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
@@ -192,7 +192,7 @@
 	}
 
 	/* alloc the udl from per cpu ddp pool */
-	ddp->udl = dma_pool_alloc(ddp_pool->pool, GFP_KERNEL, &ddp->udp);
+	ddp->udl = dma_pool_alloc(ddp_pool->pool, GFP_ATOMIC, &ddp->udp);
 	if (!ddp->udl) {
 		e_err(drv, "failed allocated ddp context\n");
 		goto out_noddp_unmap;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
@@ -575,6 +575,11 @@
 		return -EINVAL;
 	}
 
+	if (xs->props.mode != XFRM_MODE_TRANSPORT) {
+		netdev_err(dev, "Unsupported mode for ipsec offload\n");
+		return -EINVAL;
+	}
+
 	if (ixgbe_ipsec_check_mgmt_ip(xs)) {
 		netdev_err(dev, "IPsec IP addr clash with mgmt filters\n");
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
@@ -923,7 +923,7 @@
 		ring->queue_index = txr_idx;
 
 		/* assign ring to adapter */
-		adapter->tx_ring[txr_idx] = ring;
+		WRITE_ONCE(adapter->tx_ring[txr_idx], ring);
 
 		/* update count and index */
 		txr_count--;
@@ -950,7 +950,7 @@
 		set_ring_xdp(ring);
 
 		/* assign ring to adapter */
-		adapter->xdp_ring[xdp_idx] = ring;
+		WRITE_ONCE(adapter->xdp_ring[xdp_idx], ring);
 
 		/* update count and index */
 		xdp_count--;
@@ -993,7 +993,7 @@
 		ring->queue_index = rxr_idx;
 
 		/* assign ring to adapter */
-		adapter->rx_ring[rxr_idx] = ring;
+		WRITE_ONCE(adapter->rx_ring[rxr_idx], ring);
 
 		/* update count and index */
 		rxr_count--;
@@ -1022,13 +1022,13 @@
 
 	ixgbe_for_each_ring(ring, q_vector->tx) {
 		if (ring_is_xdp(ring))
-			adapter->xdp_ring[ring->queue_index] = NULL;
+			WRITE_ONCE(adapter->xdp_ring[ring->queue_index], NULL);
 		else
-			adapter->tx_ring[ring->queue_index] = NULL;
+			WRITE_ONCE(adapter->tx_ring[ring->queue_index], NULL);
 	}
 
 	ixgbe_for_each_ring(ring, q_vector->rx)
-		adapter->rx_ring[ring->queue_index] = NULL;
+		WRITE_ONCE(adapter->rx_ring[ring->queue_index], NULL);
 
 	adapter->q_vector[v_idx] = NULL;
 	napi_hash_del(&q_vector->napi);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -1947,7 +1947,8 @@
 	return (page_to_nid(page) != numa_mem_id()) || page_is_pfmemalloc(page);
 }
 
-static bool ixgbe_can_reuse_rx_page(struct ixgbe_rx_buffer *rx_buffer)
+static bool ixgbe_can_reuse_rx_page(struct ixgbe_rx_buffer *rx_buffer,
+				    int rx_buffer_pgcnt)
 {
 	unsigned int pagecnt_bias = rx_buffer->pagecnt_bias;
 	struct page *page = rx_buffer->page;
@@ -1958,7 +1959,7 @@
 
 #if (PAGE_SIZE < 8192)
 	/* if we are only owner of page we can reuse it */
-	if (unlikely((page_ref_count(page) - pagecnt_bias) > 1))
+	if (unlikely((rx_buffer_pgcnt - pagecnt_bias) > 1))
 		return false;
 #else
 	/* The last offset is a bit aggressive in that we assume the
@@ -2023,11 +2024,18 @@
 static struct ixgbe_rx_buffer *ixgbe_get_rx_buffer(struct ixgbe_ring *rx_ring,
 						   union ixgbe_adv_rx_desc *rx_desc,
 						   struct sk_buff **skb,
-						   const unsigned int size)
+						   const unsigned int size,
+						   int *rx_buffer_pgcnt)
 {
 	struct ixgbe_rx_buffer *rx_buffer;
 
 	rx_buffer = &rx_ring->rx_buffer_info[rx_ring->next_to_clean];
+	*rx_buffer_pgcnt =
+#if (PAGE_SIZE < 8192)
+		page_count(rx_buffer->page);
+#else
+		0;
+#endif
 	prefetchw(rx_buffer->page);
 	*skb = rx_buffer->skb;
 
@@ -2057,9 +2065,10 @@
 
 static void ixgbe_put_rx_buffer(struct ixgbe_ring *rx_ring,
 				struct ixgbe_rx_buffer *rx_buffer,
-				struct sk_buff *skb)
+				struct sk_buff *skb,
+				int rx_buffer_pgcnt)
 {
-	if (ixgbe_can_reuse_rx_page(rx_buffer)) {
+	if (ixgbe_can_reuse_rx_page(rx_buffer, rx_buffer_pgcnt)) {
 		/* hand second half of page back to the ring */
 		ixgbe_reuse_rx_page(rx_ring, rx_buffer);
 	} else {
@@ -2254,7 +2263,8 @@
 	rx_buffer->page_offset ^= truesize;
 #else
 	unsigned int truesize = ring_uses_build_skb(rx_ring) ?
-				SKB_DATA_ALIGN(IXGBE_SKB_PAD + size) :
+				SKB_DATA_ALIGN(IXGBE_SKB_PAD + size) +
+				SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) :
 				SKB_DATA_ALIGN(size);
 
 	rx_buffer->page_offset += truesize;
@@ -2294,6 +2304,7 @@
 		union ixgbe_adv_rx_desc *rx_desc;
 		struct ixgbe_rx_buffer *rx_buffer;
 		struct sk_buff *skb;
+		int rx_buffer_pgcnt;
 		unsigned int size;
 
 		/* return some buffers to hardware, one at a time is too slow */
@@ -2313,7 +2324,7 @@
 		 */
 		dma_rmb();
 
-		rx_buffer = ixgbe_get_rx_buffer(rx_ring, rx_desc, &skb, size);
+		rx_buffer = ixgbe_get_rx_buffer(rx_ring, rx_desc, &skb, size, &rx_buffer_pgcnt);
 
 		/* retrieve a buffer from the ring */
 		if (!skb) {
@@ -2355,7 +2366,7 @@
 			break;
 		}
 
-		ixgbe_put_rx_buffer(rx_ring, rx_buffer, skb);
+		ixgbe_put_rx_buffer(rx_ring, rx_buffer, skb, rx_buffer_pgcnt);
 		cleaned_count++;
 
 		/* place incomplete frames back on ring for completion */
@@ -5239,7 +5250,7 @@
 	struct ixgbe_hw *hw = &adapter->hw;
 	struct hlist_node *node2;
 	struct ixgbe_fdir_filter *filter;
-	u64 action;
+	u8 queue;
 
 	spin_lock(&adapter->fdir_perfect_lock);
 
@@ -5248,17 +5259,34 @@
 
 	hlist_for_each_entry_safe(filter, node2,
 				  &adapter->fdir_filter_list, fdir_node) {
-		action = filter->action;
-		if (action != IXGBE_FDIR_DROP_QUEUE && action != 0)
-			action =
-			(action >> ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF) - 1;
+		if (filter->action == IXGBE_FDIR_DROP_QUEUE) {
+			queue = IXGBE_FDIR_DROP_QUEUE;
+		} else {
+			u32 ring = ethtool_get_flow_spec_ring(filter->action);
+			u8 vf = ethtool_get_flow_spec_ring_vf(filter->action);
+
+			if (!vf && (ring >= adapter->num_rx_queues)) {
+				e_err(drv, "FDIR restore failed without VF, ring: %u\n",
+				      ring);
+				continue;
+			} else if (vf &&
+				   ((vf > adapter->num_vfs) ||
+				     ring >= adapter->num_rx_queues_per_pool)) {
+				e_err(drv, "FDIR restore failed with VF, vf: %hhu, ring: %u\n",
+				      vf, ring);
+				continue;
+			}
+
+			/* Map the ring onto the absolute queue index */
+			if (!vf)
+				queue = adapter->rx_ring[ring]->reg_idx;
+			else
+				queue = ((vf - 1) *
+					adapter->num_rx_queues_per_pool) + ring;
+		}
 
 		ixgbe_fdir_write_perfect_filter_82599(hw,
-				&filter->filter,
-				filter->sw_idx,
-				(action == IXGBE_FDIR_DROP_QUEUE) ?
-				IXGBE_FDIR_DROP_QUEUE :
-				adapter->rx_ring[action]->reg_idx);
+				&filter->filter, filter->sw_idx, queue);
 	}
 
 	spin_unlock(&adapter->fdir_perfect_lock);
@@ -7046,7 +7074,10 @@
 	}
 
 	for (i = 0; i < adapter->num_rx_queues; i++) {
-		struct ixgbe_ring *rx_ring = adapter->rx_ring[i];
+		struct ixgbe_ring *rx_ring = READ_ONCE(adapter->rx_ring[i]);
+
+		if (!rx_ring)
+			continue;
 		non_eop_descs += rx_ring->rx_stats.non_eop_descs;
 		alloc_rx_page += rx_ring->rx_stats.alloc_rx_page;
 		alloc_rx_page_failed += rx_ring->rx_stats.alloc_rx_page_failed;
@@ -7067,15 +7098,20 @@
 	packets = 0;
 	/* gather some stats to the adapter struct that are per queue */
 	for (i = 0; i < adapter->num_tx_queues; i++) {
-		struct ixgbe_ring *tx_ring = adapter->tx_ring[i];
+		struct ixgbe_ring *tx_ring = READ_ONCE(adapter->tx_ring[i]);
+
+		if (!tx_ring)
+			continue;
 		restart_queue += tx_ring->tx_stats.restart_queue;
 		tx_busy += tx_ring->tx_stats.tx_busy;
 		bytes += tx_ring->stats.bytes;
 		packets += tx_ring->stats.packets;
 	}
 	for (i = 0; i < adapter->num_xdp_queues; i++) {
-		struct ixgbe_ring *xdp_ring = adapter->xdp_ring[i];
+		struct ixgbe_ring *xdp_ring = READ_ONCE(adapter->xdp_ring[i]);
 
+		if (!xdp_ring)
+			continue;
 		restart_queue += xdp_ring->tx_stats.restart_queue;
 		tx_busy += xdp_ring->tx_stats.tx_busy;
 		bytes += xdp_ring->stats.bytes;
@@ -8639,7 +8675,8 @@
 
 	if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
 	    adapter->ptp_clock) {
-		if (!test_and_set_bit_lock(__IXGBE_PTP_TX_IN_PROGRESS,
+		if (adapter->tstamp_config.tx_type == HWTSTAMP_TX_ON &&
+		    !test_and_set_bit_lock(__IXGBE_PTP_TX_IN_PROGRESS,
 					   &adapter->state)) {
 			skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
 			tx_flags |= IXGBE_TX_FLAGS_TSTAMP;
@@ -10247,7 +10284,12 @@
 
 	/* If transitioning XDP modes reconfigure rings */
 	if (need_reset) {
-		int err = ixgbe_setup_tc(dev, adapter->hw_tcs);
+		int err;
+
+		if (!prog)
+			/* Wait until ndo_xsk_wakeup completes. */
+			synchronize_rcu();
+		err = ixgbe_setup_tc(dev, adapter->hw_tcs);
 
 		if (err) {
 			rcu_assign_pointer(adapter->xdp_prog, old_prog);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
@@ -709,10 +709,14 @@
 	if (qid >= adapter->num_xdp_queues)
 		return -ENXIO;
 
-	if (!adapter->xdp_ring[qid]->xsk_umem)
+	ring = adapter->xdp_ring[qid];
+
+	if (test_bit(__IXGBE_TX_DISABLED, &ring->state))
+		return -ENETDOWN;
+
+	if (!ring->xsk_umem)
 		return -ENXIO;
 
-	ring = adapter->xdp_ring[qid];
 	if (!napi_if_scheduled_mark_missed(&ring->q_vector->napi)) {
 		u64 eics = BIT_ULL(ring->q_vector->v_idx);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbevf/ipsec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbevf/ipsec.c
@@ -272,6 +272,11 @@
 		return -EINVAL;
 	}
 
+	if (xs->props.mode != XFRM_MODE_TRANSPORT) {
+		netdev_err(dev, "Unsupported mode for ipsec offload\n");
+		return -EINVAL;
+	}
+
 	if (xs->xso.flags & XFRM_OFFLOAD_INBOUND) {
 		struct rx_sa rsa;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -2081,11 +2081,6 @@
 	struct ixgbe_hw *hw = &adapter->hw;
 	int count = 0;
 
-	if ((netdev_uc_count(netdev)) > 10) {
-		pr_err("Too many unicast filters - No Space\n");
-		return -ENOSPC;
-	}
-
 	if (!netdev_uc_empty(netdev)) {
 		struct netdev_hw_addr *ha;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/korina.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/korina.c
@@ -219,7 +219,7 @@
 			dev_kfree_skb_any(skb);
 			spin_unlock_irqrestore(&lp->lock, flags);
 
-			return NETDEV_TX_BUSY;
+			return NETDEV_TX_OK;
 		}
 	}
 
@@ -1113,7 +1113,7 @@
 	return rc;
 
 probe_err_register:
-	kfree(lp->td_ring);
+	kfree((struct dma_desc *)KSEG0ADDR(lp->td_ring));
 probe_err_td_ring:
 	iounmap(lp->tx_dma_regs);
 probe_err_dma_tx:
@@ -1133,6 +1133,7 @@
 	iounmap(lp->eth_regs);
 	iounmap(lp->rx_dma_regs);
 	iounmap(lp->tx_dma_regs);
+	kfree((struct dma_desc *)KSEG0ADDR(lp->td_ring));
 
 	unregister_netdev(bif->dev);
 	free_netdev(bif->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/lantiq_xrx200.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/lantiq_xrx200.c
@@ -230,8 +230,8 @@
 	}
 
 	if (rx < budget) {
-		napi_complete(&ch->napi);
-		ltq_dma_enable_irq(&ch->dma);
+		if (napi_complete_done(&ch->napi, rx))
+			ltq_dma_enable_irq(&ch->dma);
 	}
 
 	return rx;
@@ -245,6 +245,7 @@
 	int pkts = 0;
 	int bytes = 0;
 
+	netif_tx_lock(net_dev);
 	while (pkts < budget) {
 		struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->tx_free];
 
@@ -268,9 +269,13 @@
 	net_dev->stats.tx_bytes += bytes;
 	netdev_completed_queue(ch->priv->net_dev, pkts, bytes);
 
+	netif_tx_unlock(net_dev);
+	if (netif_queue_stopped(net_dev))
+		netif_wake_queue(net_dev);
+
 	if (pkts < budget) {
-		napi_complete(&ch->napi);
-		ltq_dma_enable_irq(&ch->dma);
+		if (napi_complete_done(&ch->napi, pkts))
+			ltq_dma_enable_irq(&ch->dma);
 	}
 
 	return pkts;
@@ -341,10 +346,12 @@
 {
 	struct xrx200_chan *ch = ptr;
 
-	ltq_dma_disable_irq(&ch->dma);
-	ltq_dma_ack_irq(&ch->dma);
+	if (napi_schedule_prep(&ch->napi)) {
+		__napi_schedule(&ch->napi);
+		ltq_dma_disable_irq(&ch->dma);
+	}
 
-	napi_schedule(&ch->napi);
+	ltq_dma_ack_irq(&ch->dma);
 
 	return IRQ_HANDLED;
 }
@@ -498,7 +505,7 @@
 
 	/* setup NAPI */
 	netif_napi_add(net_dev, &priv->chan_rx.napi, xrx200_poll_rx, 32);
-	netif_napi_add(net_dev, &priv->chan_tx.napi, xrx200_tx_housekeeping, 32);
+	netif_tx_napi_add(net_dev, &priv->chan_tx.napi, xrx200_tx_housekeeping, 32);
 
 	platform_set_drvdata(pdev, priv);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/mvneta.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/mvneta.c
@@ -104,9 +104,11 @@
 #define      MVNETA_TX_IN_PRGRS                  BIT(1)
 #define      MVNETA_TX_FIFO_EMPTY                BIT(8)
 #define MVNETA_RX_MIN_FRAME_SIZE                 0x247c
+/* Only exists on Armada XP and Armada 370 */
 #define MVNETA_SERDES_CFG			 0x24A0
 #define      MVNETA_SGMII_SERDES_PROTO		 0x0cc7
 #define      MVNETA_QSGMII_SERDES_PROTO		 0x0667
+#define      MVNETA_HSGMII_SERDES_PROTO		 0x1107
 #define MVNETA_TYPE_PRIO                         0x24bc
 #define      MVNETA_FORCE_UNI                    BIT(21)
 #define MVNETA_TXQ_CMD_1                         0x24e4
@@ -388,6 +390,8 @@
 	struct	u64_stats_sync syncp;
 	u64	rx_packets;
 	u64	rx_bytes;
+	u64	rx_dropped;
+	u64	rx_errors;
 	u64	tx_packets;
 	u64	tx_bytes;
 };
@@ -706,6 +710,8 @@
 		struct mvneta_pcpu_stats *cpu_stats;
 		u64 rx_packets;
 		u64 rx_bytes;
+		u64 rx_dropped;
+		u64 rx_errors;
 		u64 tx_packets;
 		u64 tx_bytes;
 
@@ -714,19 +720,20 @@
 			start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
 			rx_packets = cpu_stats->rx_packets;
 			rx_bytes   = cpu_stats->rx_bytes;
+			rx_dropped = cpu_stats->rx_dropped;
+			rx_errors  = cpu_stats->rx_errors;
 			tx_packets = cpu_stats->tx_packets;
 			tx_bytes   = cpu_stats->tx_bytes;
 		} while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
 
 		stats->rx_packets += rx_packets;
 		stats->rx_bytes   += rx_bytes;
+		stats->rx_dropped += rx_dropped;
+		stats->rx_errors  += rx_errors;
 		stats->tx_packets += tx_packets;
 		stats->tx_bytes   += tx_bytes;
 	}
 
-	stats->rx_errors	= dev->stats.rx_errors;
-	stats->rx_dropped	= dev->stats.rx_dropped;
-
 	stats->tx_dropped	= dev->stats.tx_dropped;
 }
 
@@ -1703,8 +1710,14 @@
 static void mvneta_rx_error(struct mvneta_port *pp,
 			    struct mvneta_rx_desc *rx_desc)
 {
+	struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats);
 	u32 status = rx_desc->status;
 
+	/* update per-cpu counter */
+	u64_stats_update_begin(&stats->syncp);
+	stats->rx_errors++;
+	u64_stats_update_end(&stats->syncp);
+
 	switch (status & MVNETA_RXD_ERR_CODE_MASK) {
 	case MVNETA_RXD_ERR_CRC:
 		netdev_err(pp->dev, "bad rx status %08x (crc error), size=%d\n",
@@ -1965,7 +1978,6 @@
 			/* Check errors only for FIRST descriptor */
 			if (rx_status & MVNETA_RXD_ERR_SUMMARY) {
 				mvneta_rx_error(pp, rx_desc);
-				dev->stats.rx_errors++;
 				/* leave the descriptor untouched */
 				continue;
 			}
@@ -1976,11 +1988,17 @@
 			skb_size = max(rx_copybreak, rx_header_size);
 			rxq->skb = netdev_alloc_skb_ip_align(dev, skb_size);
 			if (unlikely(!rxq->skb)) {
+				struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats);
+
 				netdev_err(dev,
 					   "Can't allocate skb on queue %d\n",
 					   rxq->id);
-				dev->stats.rx_dropped++;
+
 				rxq->skb_alloc_err++;
+
+				u64_stats_update_begin(&stats->syncp);
+				stats->rx_dropped++;
+				u64_stats_update_end(&stats->syncp);
 				continue;
 			}
 			copy_size = min(skb_size, rx_bytes);
@@ -2137,7 +2155,6 @@
 			mvneta_bm_pool_put_bp(pp->bm_priv, bm_pool,
 					      rx_desc->buf_phys_addr);
 err_drop_frame:
-			dev->stats.rx_errors++;
 			mvneta_rx_error(pp, rx_desc);
 			/* leave the descriptor untouched */
 			continue;
@@ -2789,11 +2806,10 @@
 	/* For the case where the last mvneta_poll did not process all
 	 * RX packets
 	 */
-	rx_queue = fls(((cause_rx_tx >> 8) & 0xff));
-
 	cause_rx_tx |= pp->neta_armada3700 ? pp->cause_rx_tx :
 		port->cause_rx_tx;
 
+	rx_queue = fls(((cause_rx_tx >> 8) & 0xff));
 	if (rx_queue) {
 		rx_queue = rx_queue - 1;
 		if (pp->bm_priv)
@@ -3011,7 +3027,9 @@
 	}
 
 	/* Setup XPS mapping */
-	if (txq_number > 1)
+	if (pp->neta_armada3700)
+		cpu = 0;
+	else if (txq_number > 1)
 		cpu = txq->id % num_present_cpus();
 	else
 		cpu = pp->rxq_def % num_present_cpus();
@@ -3150,26 +3168,60 @@
 	return 0;
 }
 
-static int mvneta_comphy_init(struct mvneta_port *pp)
+static int mvneta_comphy_init(struct mvneta_port *pp, phy_interface_t interface)
 {
 	int ret;
 
-	if (!pp->comphy)
-		return 0;
-
-	ret = phy_set_mode_ext(pp->comphy, PHY_MODE_ETHERNET,
-			       pp->phy_interface);
+	ret = phy_set_mode_ext(pp->comphy, PHY_MODE_ETHERNET, interface);
 	if (ret)
 		return ret;
 
 	return phy_power_on(pp->comphy);
 }
 
+static int mvneta_config_interface(struct mvneta_port *pp,
+				   phy_interface_t interface)
+{
+	int ret = 0;
+
+	if (pp->comphy) {
+		if (interface == PHY_INTERFACE_MODE_SGMII ||
+		    interface == PHY_INTERFACE_MODE_1000BASEX ||
+		    interface == PHY_INTERFACE_MODE_2500BASEX) {
+			ret = mvneta_comphy_init(pp, interface);
+		}
+	} else {
+		switch (interface) {
+		case PHY_INTERFACE_MODE_QSGMII:
+			mvreg_write(pp, MVNETA_SERDES_CFG,
+				    MVNETA_QSGMII_SERDES_PROTO);
+			break;
+
+		case PHY_INTERFACE_MODE_SGMII:
+		case PHY_INTERFACE_MODE_1000BASEX:
+			mvreg_write(pp, MVNETA_SERDES_CFG,
+				    MVNETA_SGMII_SERDES_PROTO);
+			break;
+
+		case PHY_INTERFACE_MODE_2500BASEX:
+			mvreg_write(pp, MVNETA_SERDES_CFG,
+				    MVNETA_HSGMII_SERDES_PROTO);
+			break;
+		default:
+			break;
+		}
+	}
+
+	pp->phy_interface = interface;
+
+	return ret;
+}
+
 static void mvneta_start_dev(struct mvneta_port *pp)
 {
 	int cpu;
 
-	WARN_ON(mvneta_comphy_init(pp));
+	WARN_ON(mvneta_config_interface(pp, pp->phy_interface));
 
 	mvneta_max_rx_size_set(pp, pp->pkt_size);
 	mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
@@ -3544,17 +3596,13 @@
 	/* When at 2.5G, the link partner can send frames with shortened
 	 * preambles.
 	 */
-	if (state->speed == SPEED_2500)
+	if (state->interface == PHY_INTERFACE_MODE_2500BASEX)
 		new_ctrl4 |= MVNETA_GMAC4_SHORT_PREAMBLE_ENABLE;
 
-	if (pp->comphy && pp->phy_interface != state->interface &&
-	    (state->interface == PHY_INTERFACE_MODE_SGMII ||
-	     state->interface == PHY_INTERFACE_MODE_1000BASEX ||
-	     state->interface == PHY_INTERFACE_MODE_2500BASEX)) {
-		pp->phy_interface = state->interface;
-
-		WARN_ON(phy_power_off(pp->comphy));
-		WARN_ON(mvneta_comphy_init(pp));
+	if (pp->phy_interface != state->interface) {
+		if (pp->comphy)
+			WARN_ON(phy_power_off(pp->comphy));
+		WARN_ON(mvneta_config_interface(pp, state->interface));
 	}
 
 	if (new_ctrl0 != gmac_ctrl0)
@@ -3718,6 +3766,11 @@
 						  node_online);
 	struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
 
+	/* Armada 3700's per-cpu interrupt for mvneta is broken, all interrupts
+	 * are routed to CPU 0, so we don't need all the cpu-hotplug support
+	 */
+	if (pp->neta_armada3700)
+		return 0;
 
 	spin_lock(&pp->lock);
 	/*
@@ -4455,12 +4508,10 @@
 	/* MAC Cause register should be cleared */
 	mvreg_write(pp, MVNETA_UNIT_INTR_CAUSE, 0);
 
-	if (phy_mode == PHY_INTERFACE_MODE_QSGMII)
-		mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_QSGMII_SERDES_PROTO);
-	else if (phy_mode == PHY_INTERFACE_MODE_SGMII ||
-		 phy_interface_mode_is_8023z(phy_mode))
-		mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO);
-	else if (!phy_interface_mode_is_rgmii(phy_mode))
+	if (phy_mode != PHY_INTERFACE_MODE_QSGMII &&
+	    phy_mode != PHY_INTERFACE_MODE_SGMII &&
+	    !phy_interface_mode_is_8023z(phy_mode) &&
+	    !phy_interface_mode_is_rgmii(phy_mode))
 		return -EINVAL;
 
 	return 0;
@@ -4647,7 +4698,7 @@
 	if (err < 0)
 		goto err_netdev;
 
-	err = mvneta_port_power_up(pp, phy_mode);
+	err = mvneta_port_power_up(pp, pp->phy_interface);
 	if (err < 0) {
 		dev_err(&pdev->dev, "can't power up port\n");
 		goto err_netdev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
@@ -1070,7 +1070,7 @@
 		    (port->first_rxq >> MVPP2_CLS_OVERSIZE_RXQ_LOW_BITS));
 
 	val = mvpp2_read(port->priv, MVPP2_CLS_SWFWD_PCTRL_REG);
-	val |= MVPP2_CLS_SWFWD_PCTRL_MASK(port->id);
+	val &= ~MVPP2_CLS_SWFWD_PCTRL_MASK(port->id);
 	mvpp2_write(port->priv, MVPP2_CLS_SWFWD_PCTRL_REG, val);
 }
 
@@ -1422,6 +1422,9 @@
 	struct mvpp2_ethtool_fs *efs;
 	int ret;
 
+	if (info->fs.location >= MVPP2_N_RFS_ENTRIES_PER_FLOW)
+		return -EINVAL;
+
 	efs = port->rfs_rules[info->fs.location];
 	if (!efs)
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -1129,7 +1129,7 @@
 
 	regmap_read(priv->sysctrl_base, GENCONF_CTRL0, &val);
 	if (port->gop_id == 2)
-		val |= GENCONF_CTRL0_PORT0_RGMII | GENCONF_CTRL0_PORT1_RGMII;
+		val |= GENCONF_CTRL0_PORT0_RGMII;
 	else if (port->gop_id == 3)
 		val |= GENCONF_CTRL0_PORT1_RGMII_MII;
 	regmap_write(priv->sysctrl_base, GENCONF_CTRL0, val);
@@ -1541,7 +1541,7 @@
 	for (q = 0; q < port->ntxqs; q++)
 		for (i = 0; i < ARRAY_SIZE(mvpp2_ethtool_txq_regs); i++)
 			*pstats++ += mvpp2_read_index(port->priv,
-						      MVPP22_CTRS_TX_CTR(port->id, i),
+						      MVPP22_CTRS_TX_CTR(port->id, q),
 						      mvpp2_ethtool_txq_regs[i].offset);
 
 	/* Rxqs are numbered from 0 from the user standpoint, but not from the
@@ -1550,7 +1550,7 @@
 	for (q = 0; q < port->nrxqs; q++)
 		for (i = 0; i < ARRAY_SIZE(mvpp2_ethtool_rxq_regs); i++)
 			*pstats++ += mvpp2_read_index(port->priv,
-						      port->first_rxq + i,
+						      port->first_rxq + q,
 						      mvpp2_ethtool_rxq_regs[i].offset);
 }
 
@@ -2161,17 +2161,18 @@
 static void mvpp2_tx_pkts_coal_set(struct mvpp2_port *port,
 				   struct mvpp2_tx_queue *txq)
 {
-	unsigned int thread = mvpp2_cpu_to_thread(port->priv, get_cpu());
+	unsigned int thread;
 	u32 val;
 
 	if (txq->done_pkts_coal > MVPP2_TXQ_THRESH_MASK)
 		txq->done_pkts_coal = MVPP2_TXQ_THRESH_MASK;
 
 	val = (txq->done_pkts_coal << MVPP2_TXQ_THRESH_OFFSET);
-	mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_NUM_REG, txq->id);
-	mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_THRESH_REG, val);
-
-	put_cpu();
+	/* PKT-coalescing registers are per-queue + per-thread */
+	for (thread = 0; thread < MVPP2_MAX_THREADS; thread++) {
+		mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_NUM_REG, txq->id);
+		mvpp2_thread_write(port->priv, thread, MVPP2_TXQ_THRESH_REG, val);
+	}
 }
 
 static u32 mvpp2_usec_to_cycles(u32 usec, unsigned long clk_hz)
@@ -3674,7 +3675,7 @@
 		valid = true;
 	}
 
-	if (priv->hw_version == MVPP22 && port->link_irq && !port->phylink) {
+	if (priv->hw_version == MVPP22 && port->link_irq) {
 		err = request_irq(port->link_irq, mvpp2_link_status_isr, 0,
 				  dev->name, port);
 		if (err) {
@@ -3696,6 +3697,7 @@
 	if (!valid) {
 		netdev_err(port->dev,
 			   "invalid configuration: no dt or link IRQ");
+		err = -ENOENT;
 		goto err_free_irq;
 	}
 
@@ -4319,6 +4321,8 @@
 
 	if (!mvpp22_rss_is_supported())
 		return -EOPNOTSUPP;
+	if (rss_context >= MVPP22_N_RSS_TABLES)
+		return -EINVAL;
 
 	if (hfunc)
 		*hfunc = ETH_RSS_HASH_CRC32;
@@ -4541,7 +4545,7 @@
 	struct mvpp2 *priv = port->priv;
 	struct mvpp2_txq_pcpu *txq_pcpu;
 	unsigned int thread;
-	int queue, err;
+	int queue, err, val;
 
 	/* Checks for hardware constraints */
 	if (port->first_rxq + port->nrxqs >
@@ -4555,6 +4559,18 @@
 	mvpp2_egress_disable(port);
 	mvpp2_port_disable(port);
 
+	if (mvpp2_is_xlg(port->phy_interface)) {
+		val = readl(port->base + MVPP22_XLG_CTRL0_REG);
+		val &= ~MVPP22_XLG_CTRL0_FORCE_LINK_PASS;
+		val |= MVPP22_XLG_CTRL0_FORCE_LINK_DOWN;
+		writel(val, port->base + MVPP22_XLG_CTRL0_REG);
+	} else {
+		val = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG);
+		val &= ~MVPP2_GMAC_FORCE_LINK_PASS;
+		val |= MVPP2_GMAC_FORCE_LINK_DOWN;
+		writel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG);
+	}
+
 	port->tx_time_coal = MVPP2_TXDONE_COAL_USEC;
 
 	port->txqs = devm_kcalloc(dev, port->ntxqs, sizeof(*port->txqs),
@@ -4742,12 +4758,16 @@
 	eth_hw_addr_random(dev);
 }
 
+static struct mvpp2_port *mvpp2_phylink_to_port(struct phylink_config *config)
+{
+	return container_of(config, struct mvpp2_port, phylink_config);
+}
+
 static void mvpp2_phylink_validate(struct phylink_config *config,
 				   unsigned long *supported,
 				   struct phylink_link_state *state)
 {
-	struct mvpp2_port *port = container_of(config, struct mvpp2_port,
-					       phylink_config);
+	struct mvpp2_port *port = mvpp2_phylink_to_port(config);
 	__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
 
 	/* Invalid combinations */
@@ -4770,8 +4790,6 @@
 
 	phylink_set(mask, Autoneg);
 	phylink_set_port_modes(mask);
-	phylink_set(mask, Pause);
-	phylink_set(mask, Asym_Pause);
 
 	switch (state->interface) {
 	case PHY_INTERFACE_MODE_10GKR:
@@ -4874,8 +4892,7 @@
 static int mvpp2_phylink_mac_link_state(struct phylink_config *config,
 					struct phylink_link_state *state)
 {
-	struct mvpp2_port *port = container_of(config, struct mvpp2_port,
-					       phylink_config);
+	struct mvpp2_port *port = mvpp2_phylink_to_port(config);
 
 	if (port->priv->hw_version == MVPP22 && port->gop_id == 0) {
 		u32 mode = readl(port->base + MVPP22_XLG_CTRL3_REG);
@@ -4893,8 +4910,7 @@
 
 static void mvpp2_mac_an_restart(struct phylink_config *config)
 {
-	struct mvpp2_port *port = container_of(config, struct mvpp2_port,
-					       phylink_config);
+	struct mvpp2_port *port = mvpp2_phylink_to_port(config);
 	u32 val = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG);
 
 	writel(val | MVPP2_GMAC_IN_BAND_RESTART_AN,
@@ -5082,13 +5098,12 @@
 static void mvpp2_mac_config(struct phylink_config *config, unsigned int mode,
 			     const struct phylink_link_state *state)
 {
-	struct net_device *dev = to_net_dev(config->dev);
-	struct mvpp2_port *port = netdev_priv(dev);
+	struct mvpp2_port *port = mvpp2_phylink_to_port(config);
 	bool change_interface = port->phy_interface != state->interface;
 
 	/* Check for invalid configuration */
 	if (mvpp2_is_xlg(state->interface) && port->gop_id != 0) {
-		netdev_err(dev, "Invalid mode on %s\n", dev->name);
+		netdev_err(port->dev, "Invalid mode on %s\n", port->dev->name);
 		return;
 	}
 
@@ -5125,8 +5140,7 @@
 static void mvpp2_mac_link_up(struct phylink_config *config, unsigned int mode,
 			      phy_interface_t interface, struct phy_device *phy)
 {
-	struct net_device *dev = to_net_dev(config->dev);
-	struct mvpp2_port *port = netdev_priv(dev);
+	struct mvpp2_port *port = mvpp2_phylink_to_port(config);
 	u32 val;
 
 	if (!phylink_autoneg_inband(mode)) {
@@ -5147,14 +5161,13 @@
 
 	mvpp2_egress_enable(port);
 	mvpp2_ingress_enable(port);
-	netif_tx_wake_all_queues(dev);
+	netif_tx_wake_all_queues(port->dev);
 }
 
 static void mvpp2_mac_link_down(struct phylink_config *config,
 				unsigned int mode, phy_interface_t interface)
 {
-	struct net_device *dev = to_net_dev(config->dev);
-	struct mvpp2_port *port = netdev_priv(dev);
+	struct mvpp2_port *port = mvpp2_phylink_to_port(config);
 	u32 val;
 
 	if (!phylink_autoneg_inband(mode)) {
@@ -5171,7 +5184,7 @@
 		}
 	}
 
-	netif_tx_stop_all_queues(dev);
+	netif_tx_stop_all_queues(port->dev);
 	mvpp2_egress_disable(port);
 	mvpp2_ingress_disable(port);
 
@@ -5923,8 +5936,8 @@
 {
 	struct mvpp2 *priv = platform_get_drvdata(pdev);
 	struct fwnode_handle *fwnode = pdev->dev.fwnode;
+	int i = 0, poolnum = MVPP2_BM_POOLS_NUM;
 	struct fwnode_handle *port_fwnode;
-	int i = 0;
 
 	mvpp2_dbgfs_cleanup(priv);
 
@@ -5938,7 +5951,10 @@
 
 	destroy_workqueue(priv->stats_queue);
 
-	for (i = 0; i < MVPP2_BM_POOLS_NUM; i++) {
+	if (priv->percpu_pools)
+		poolnum = mvpp2_get_nrxqs(priv) * 2;
+
+	for (i = 0; i < poolnum; i++) {
 		struct mvpp2_bm_pool *bm_pool = &priv->bm_pools[i];
 
 		mvpp2_bm_pool_destroy(&pdev->dev, priv, bm_pool);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c
@@ -29,16 +29,16 @@
 	/* Clear entry invalidation bit */
 	pe->tcam[MVPP2_PRS_TCAM_INV_WORD] &= ~MVPP2_PRS_TCAM_INV_MASK;
 
-	/* Write tcam index - indirect access */
-	mvpp2_write(priv, MVPP2_PRS_TCAM_IDX_REG, pe->index);
-	for (i = 0; i < MVPP2_PRS_TCAM_WORDS; i++)
-		mvpp2_write(priv, MVPP2_PRS_TCAM_DATA_REG(i), pe->tcam[i]);
-
 	/* Write sram index - indirect access */
 	mvpp2_write(priv, MVPP2_PRS_SRAM_IDX_REG, pe->index);
 	for (i = 0; i < MVPP2_PRS_SRAM_WORDS; i++)
 		mvpp2_write(priv, MVPP2_PRS_SRAM_DATA_REG(i), pe->sram[i]);
 
+	/* Write tcam index - indirect access */
+	mvpp2_write(priv, MVPP2_PRS_TCAM_IDX_REG, pe->index);
+	for (i = 0; i < MVPP2_PRS_TCAM_WORDS; i++)
+		mvpp2_write(priv, MVPP2_PRS_TCAM_DATA_REG(i), pe->tcam[i]);
+
 	return 0;
 }
 
@@ -405,6 +405,38 @@
 	return -EINVAL;
 }
 
+/* Drop flow control pause frames */
+static void mvpp2_prs_drop_fc(struct mvpp2 *priv)
+{
+	unsigned char da[ETH_ALEN] = { 0x01, 0x80, 0xC2, 0x00, 0x00, 0x01 };
+	struct mvpp2_prs_entry pe;
+	unsigned int len;
+
+	memset(&pe, 0, sizeof(pe));
+
+	/* For all ports - drop flow control frames */
+	pe.index = MVPP2_PE_FC_DROP;
+	mvpp2_prs_tcam_lu_set(&pe, MVPP2_PRS_LU_MAC);
+
+	/* Set match on DA */
+	len = ETH_ALEN;
+	while (len--)
+		mvpp2_prs_tcam_data_byte_set(&pe, len, da[len], 0xff);
+
+	mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_DROP_MASK,
+				 MVPP2_PRS_RI_DROP_MASK);
+
+	mvpp2_prs_sram_bits_set(&pe, MVPP2_PRS_SRAM_LU_GEN_BIT, 1);
+	mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_FLOWS);
+
+	/* Mask all ports */
+	mvpp2_prs_tcam_port_map_set(&pe, MVPP2_PRS_PORT_MASK);
+
+	/* Update shadow table and hw entry */
+	mvpp2_prs_shadow_set(priv, pe.index, MVPP2_PRS_LU_MAC);
+	mvpp2_prs_hw_write(priv, &pe);
+}
+
 /* Enable/disable dropping all mac da's */
 static void mvpp2_prs_mac_drop_all_set(struct mvpp2 *priv, int port, bool add)
 {
@@ -1162,6 +1194,7 @@
 	mvpp2_prs_hw_write(priv, &pe);
 
 	/* Create dummy entries for drop all and promiscuous modes */
+	mvpp2_prs_drop_fc(priv);
 	mvpp2_prs_mac_drop_all_set(priv, 0, false);
 	mvpp2_prs_mac_promisc_set(priv, 0, MVPP2_PRS_L2_UNI_CAST, false);
 	mvpp2_prs_mac_promisc_set(priv, 0, MVPP2_PRS_L2_MULTI_CAST, false);
@@ -1647,8 +1680,9 @@
 	mvpp2_prs_sram_next_lu_set(&pe, MVPP2_PRS_LU_IP6);
 	mvpp2_prs_sram_ri_update(&pe, MVPP2_PRS_RI_L3_IP6,
 				 MVPP2_PRS_RI_L3_PROTO_MASK);
-	/* Skip eth_type + 4 bytes of IPv6 header */
-	mvpp2_prs_sram_shift_set(&pe, MVPP2_ETH_TYPE_LEN + 4,
+	/* Jump to DIP of IPV6 header */
+	mvpp2_prs_sram_shift_set(&pe, MVPP2_ETH_TYPE_LEN + 8 +
+				 MVPP2_MAX_L3_ADDR_SIZE,
 				 MVPP2_PRS_SRAM_OP_SEL_SHIFT_ADD);
 	/* Set L3 offset */
 	mvpp2_prs_sram_offset_set(&pe, MVPP2_PRS_SRAM_UDF_TYPE_L3,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h
@@ -129,7 +129,7 @@
 #define MVPP2_PE_VID_EDSA_FLTR_DEFAULT	(MVPP2_PRS_TCAM_SRAM_SIZE - 7)
 #define MVPP2_PE_VLAN_DBL		(MVPP2_PRS_TCAM_SRAM_SIZE - 6)
 #define MVPP2_PE_VLAN_NONE		(MVPP2_PRS_TCAM_SRAM_SIZE - 5)
-/* reserved */
+#define MVPP2_PE_FC_DROP		(MVPP2_PRS_TCAM_SRAM_SIZE - 4)
 #define MVPP2_PE_MAC_MC_PROMISCUOUS	(MVPP2_PRS_TCAM_SRAM_SIZE - 3)
 #define MVPP2_PE_MAC_UC_PROMISCUOUS	(MVPP2_PRS_TCAM_SRAM_SIZE - 2)
 #define MVPP2_PE_MAC_NON_PROMISCUOUS	(MVPP2_PRS_TCAM_SRAM_SIZE - 1)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
@@ -725,8 +725,10 @@
 		if (!lmac)
 			return -ENOMEM;
 		lmac->name = kcalloc(1, sizeof("cgx_fwi_xxx_yyy"), GFP_KERNEL);
-		if (!lmac->name)
-			return -ENOMEM;
+		if (!lmac->name) {
+			err = -ENOMEM;
+			goto err_lmac_free;
+		}
 		sprintf(lmac->name, "cgx_fwi_%d_%d", cgx->cgx_id, i);
 		lmac->lmac_id = i;
 		lmac->cgx = cgx;
@@ -737,7 +739,7 @@
 						 CGX_LMAC_FWI + i * 9),
 				   cgx_fwi_event_handler, 0, lmac->name, lmac);
 		if (err)
-			return err;
+			goto err_irq;
 
 		/* Enable interrupt */
 		cgx_write(cgx, lmac->lmac_id, CGXX_CMRX_INT_ENA_W1S,
@@ -748,6 +750,12 @@
 	}
 
 	return cgx_lmac_verify_fwi_version(cgx);
+
+err_irq:
+	kfree(lmac->name);
+err_lmac_free:
+	kfree(lmac);
+	return err;
 }
 
 static int cgx_lmac_exit(struct cgx *cgx)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/octeontx2/af/common.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/octeontx2/af/common.h
@@ -43,7 +43,7 @@
 	void            *base;
 	dma_addr_t	iova;
 	int		alloc_sz;
-	u8		entry_sz;
+	u16		entry_sz;
 	u8		align;
 	u32		qsize;
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/marvell/sky2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/marvell/sky2.c
@@ -203,7 +203,7 @@
 
 static inline u16 gm_phy_read(struct sky2_hw *hw, unsigned port, u16 reg)
 {
-	u16 v;
+	u16 v = 0;
 	__gm_phy_read(hw, port, reg, &v);
 	return v;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -65,6 +65,17 @@
 	return __raw_readl(eth->base + reg);
 }
 
+u32 mtk_m32(struct mtk_eth *eth, u32 mask, u32 set, unsigned reg)
+{
+	u32 val;
+
+	val = mtk_r32(eth, reg);
+	val &= ~mask;
+	val |= set;
+	mtk_w32(eth, val, reg);
+	return reg;
+}
+
 static int mtk_mdio_busy_wait(struct mtk_eth *eth)
 {
 	unsigned long t_start = jiffies;
@@ -160,11 +171,21 @@
 	return 0;
 }
 
-static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth, int speed)
+static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth,
+				   phy_interface_t interface, int speed)
 {
 	u32 val;
 	int ret;
 
+	if (interface == PHY_INTERFACE_MODE_TRGMII) {
+		mtk_w32(eth, TRGMII_MODE, INTF_MODE);
+		val = 500000000;
+		ret = clk_set_rate(eth->clks[MTK_CLK_TRGPLL], val);
+		if (ret)
+			dev_err(eth->dev, "Failed to set trgmii pll: %d\n", ret);
+		return;
+	}
+
 	val = (speed == SPEED_1000) ?
 		INTF_MODE_RGMII_1000 : INTF_MODE_RGMII_10_100;
 	mtk_w32(eth, val, INTF_MODE);
@@ -193,7 +214,7 @@
 	struct mtk_mac *mac = container_of(config, struct mtk_mac,
 					   phylink_config);
 	struct mtk_eth *eth = mac->hw;
-	u32 mcr_cur, mcr_new, sid;
+	u32 mcr_cur, mcr_new, sid, i;
 	int val, ge_mode, err;
 
 	/* MT76x8 has no hardware settings between for the MAC */
@@ -251,10 +272,20 @@
 							      state->interface))
 					goto err_phy;
 			} else {
-				if (state->interface !=
-				    PHY_INTERFACE_MODE_TRGMII)
-					mtk_gmac0_rgmii_adjust(mac->hw,
-							       state->speed);
+				mtk_gmac0_rgmii_adjust(mac->hw,
+						       state->interface,
+						       state->speed);
+
+				/* mt7623_pad_clk_setup */
+				for (i = 0 ; i < NUM_TRGMII_CTRL; i++)
+					mtk_w32(mac->hw,
+						TD_DM_DRVP(8) | TD_DM_DRVN(8),
+						TRGMII_TD_ODT(i));
+
+				/* Assert/release MT7623 RXC reset */
+				mtk_m32(mac->hw, 0, RXC_RST | RXC_DQSISEL,
+					TRGMII_RCK_CTRL);
+				mtk_m32(mac->hw, RXC_RST, 0, TRGMII_RCK_CTRL);
 			}
 		}
 
@@ -2847,6 +2878,8 @@
 	eth->netdev[id]->irq = eth->irq[0];
 	eth->netdev[id]->dev.of_node = np;
 
+	eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
+
 	return 0;
 
 free_netdev:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -350,10 +350,13 @@
 #define DQSI0(x)		((x << 0) & GENMASK(6, 0))
 #define DQSI1(x)		((x << 8) & GENMASK(14, 8))
 #define RXCTL_DMWTLAT(x)	((x << 16) & GENMASK(18, 16))
+#define RXC_RST			BIT(31)
 #define RXC_DQSISEL		BIT(30)
 #define RCK_CTRL_RGMII_1000	(RXC_DQSISEL | RXCTL_DMWTLAT(2) | DQSI1(16))
 #define RCK_CTRL_RGMII_10_100	RXCTL_DMWTLAT(2)
 
+#define NUM_TRGMII_CTRL		5
+
 /* TRGMII RXC control register */
 #define TRGMII_TCK_CTRL		0x10340
 #define TXCTL_DMWTLAT(x)	((x << 16) & GENMASK(18, 16))
@@ -361,6 +364,11 @@
 #define TCK_CTRL_RGMII_1000	TXCTL_DMWTLAT(2)
 #define TCK_CTRL_RGMII_10_100	(TXC_INV | TXCTL_DMWTLAT(2))
 
+/* TRGMII TX Drive Strength */
+#define TRGMII_TD_ODT(i)	(0x10354 + 8 * (i))
+#define  TD_DM_DRVP(x)		((x) & 0xf)
+#define  TD_DM_DRVN(x)		(((x) & 0xf) << 4)
+
 /* TRGMII Interface mode register */
 #define INTF_MODE		0x10390
 #define TRGMII_INTF_DIS		BIT(0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -47,7 +47,7 @@
 #define EN_ETHTOOL_SHORT_MASK cpu_to_be16(0xffff)
 #define EN_ETHTOOL_WORD_MASK  cpu_to_be32(0xffffffff)
 
-static int mlx4_en_moderation_update(struct mlx4_en_priv *priv)
+int mlx4_en_moderation_update(struct mlx4_en_priv *priv)
 {
 	int i, t;
 	int err = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -1383,8 +1383,10 @@
 	}
 
 	priv->port_stats.tx_timeout++;
-	en_dbg(DRV, priv, "Scheduling watchdog\n");
-	queue_work(mdev->workqueue, &priv->watchdog_task);
+	if (!test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state)) {
+		en_dbg(DRV, priv, "Scheduling port restart\n");
+		queue_work(mdev->workqueue, &priv->restart_task);
+	}
 }
 
 
@@ -1738,6 +1740,7 @@
 				mlx4_en_deactivate_cq(priv, cq);
 				goto tx_err;
 			}
+			clear_bit(MLX4_EN_TX_RING_STATE_RECOVERING, &tx_ring->state);
 			if (t != TX_XDP) {
 				tx_ring->tx_queue = netdev_get_tx_queue(dev, i);
 				tx_ring->recycle_ring = NULL;
@@ -1834,6 +1837,7 @@
 		local_bh_enable();
 	}
 
+	clear_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state);
 	netif_tx_start_all_queues(dev);
 	netif_device_attach(dev);
 
@@ -2004,7 +2008,7 @@
 static void mlx4_en_restart(struct work_struct *work)
 {
 	struct mlx4_en_priv *priv = container_of(work, struct mlx4_en_priv,
-						 watchdog_task);
+						 restart_task);
 	struct mlx4_en_dev *mdev = priv->mdev;
 	struct net_device *dev = priv->dev;
 
@@ -2386,7 +2390,7 @@
 	if (netif_running(dev)) {
 		mutex_lock(&mdev->state_lock);
 		if (!mdev->device_up) {
-			/* NIC is probably restarting - let watchdog task reset
+			/* NIC is probably restarting - let restart task reset
 			 * the port */
 			en_dbg(DRV, priv, "Change MTU called with card down!?\n");
 		} else {
@@ -2395,7 +2399,9 @@
 			if (err) {
 				en_err(priv, "Failed restarting port:%d\n",
 					 priv->port);
-				queue_work(mdev->workqueue, &priv->watchdog_task);
+				if (!test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING,
+						      &priv->state))
+					queue_work(mdev->workqueue, &priv->restart_task);
 			}
 		}
 		mutex_unlock(&mdev->state_lock);
@@ -2865,7 +2871,8 @@
 		if (err) {
 			en_err(priv, "Failed starting port %d for XDP change\n",
 			       priv->port);
-			queue_work(mdev->workqueue, &priv->watchdog_task);
+			if (!test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state))
+				queue_work(mdev->workqueue, &priv->restart_task);
 		}
 	}
 
@@ -3263,7 +3270,7 @@
 	priv->counter_index = MLX4_SINK_COUNTER_INDEX(mdev->dev);
 	spin_lock_init(&priv->stats_lock);
 	INIT_WORK(&priv->rx_mode_task, mlx4_en_do_set_rx_mode);
-	INIT_WORK(&priv->watchdog_task, mlx4_en_restart);
+	INIT_WORK(&priv->restart_task, mlx4_en_restart);
 	INIT_WORK(&priv->linkstate_task, mlx4_en_linkstate);
 	INIT_DELAYED_WORK(&priv->stats_task, mlx4_en_do_get_stats);
 	INIT_DELAYED_WORK(&priv->service_task, mlx4_en_service_task);
@@ -3650,6 +3657,8 @@
 			en_err(priv, "Failed starting port\n");
 	}
 
+	if (!err)
+		err = mlx4_en_moderation_update(priv);
 out:
 	mutex_unlock(&mdev->state_lock);
 	kfree(tmp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -942,6 +942,9 @@
 	bool clean_complete = true;
 	int done;
 
+	if (!budget)
+		return 0;
+
 	if (priv->tx_ring_num[TX_XDP]) {
 		xdp_tx_cq = priv->tx_cq[TX_XDP][cq->ring];
 		if (xdp_tx_cq->xdp_busy) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/en_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/en_tx.c
@@ -43,6 +43,7 @@
 #include <linux/ip.h>
 #include <linux/ipv6.h>
 #include <linux/moduleparam.h>
+#include <linux/indirect_call_wrapper.h>
 
 #include "mlx4_en.h"
 
@@ -261,6 +262,10 @@
 	}
 }
 
+INDIRECT_CALLABLE_DECLARE(u32 mlx4_en_free_tx_desc(struct mlx4_en_priv *priv,
+						   struct mlx4_en_tx_ring *ring,
+						   int index, u64 timestamp,
+						   int napi_mode));
 
 u32 mlx4_en_free_tx_desc(struct mlx4_en_priv *priv,
 			 struct mlx4_en_tx_ring *ring,
@@ -329,6 +334,11 @@
 	return tx_info->nr_txbb;
 }
 
+INDIRECT_CALLABLE_DECLARE(u32 mlx4_en_recycle_tx_desc(struct mlx4_en_priv *priv,
+						      struct mlx4_en_tx_ring *ring,
+						      int index, u64 timestamp,
+						      int napi_mode));
+
 u32 mlx4_en_recycle_tx_desc(struct mlx4_en_priv *priv,
 			    struct mlx4_en_tx_ring *ring,
 			    int index, u64 timestamp,
@@ -340,7 +350,7 @@
 		.dma = tx_info->map0_dma,
 	};
 
-	if (!mlx4_en_rx_recycle(ring->recycle_ring, &frame)) {
+	if (!napi_mode || !mlx4_en_rx_recycle(ring->recycle_ring, &frame)) {
 		dma_unmap_page(priv->ddev, tx_info->map0_dma,
 			       PAGE_SIZE, priv->dma_dir);
 		put_page(tx_info->page);
@@ -382,6 +392,35 @@
 	return cnt;
 }
 
+static void mlx4_en_handle_err_cqe(struct mlx4_en_priv *priv, struct mlx4_err_cqe *err_cqe,
+				   u16 cqe_index, struct mlx4_en_tx_ring *ring)
+{
+	struct mlx4_en_dev *mdev = priv->mdev;
+	struct mlx4_en_tx_info *tx_info;
+	struct mlx4_en_tx_desc *tx_desc;
+	u16 wqe_index;
+	int desc_size;
+
+	en_err(priv, "CQE error - cqn 0x%x, ci 0x%x, vendor syndrome: 0x%x syndrome: 0x%x\n",
+	       ring->sp_cqn, cqe_index, err_cqe->vendor_err_syndrome, err_cqe->syndrome);
+	print_hex_dump(KERN_WARNING, "", DUMP_PREFIX_OFFSET, 16, 1, err_cqe, sizeof(*err_cqe),
+		       false);
+
+	wqe_index = be16_to_cpu(err_cqe->wqe_index) & ring->size_mask;
+	tx_info = &ring->tx_info[wqe_index];
+	desc_size = tx_info->nr_txbb << LOG_TXBB_SIZE;
+	en_err(priv, "Related WQE - qpn 0x%x, wqe index 0x%x, wqe size 0x%x\n", ring->qpn,
+	       wqe_index, desc_size);
+	tx_desc = ring->buf + (wqe_index << LOG_TXBB_SIZE);
+	print_hex_dump(KERN_WARNING, "", DUMP_PREFIX_OFFSET, 16, 1, tx_desc, desc_size, false);
+
+	if (test_and_set_bit(MLX4_EN_STATE_FLAG_RESTARTING, &priv->state))
+		return;
+
+	en_err(priv, "Scheduling port restart\n");
+	queue_work(mdev->workqueue, &priv->restart_task);
+}
+
 bool mlx4_en_process_tx_cq(struct net_device *dev,
 			   struct mlx4_en_cq *cq, int napi_budget)
 {
@@ -428,13 +467,10 @@
 		dma_rmb();
 
 		if (unlikely((cqe->owner_sr_opcode & MLX4_CQE_OPCODE_MASK) ==
-			     MLX4_CQE_OPCODE_ERROR)) {
-			struct mlx4_err_cqe *cqe_err = (struct mlx4_err_cqe *)cqe;
-
-			en_err(priv, "CQE error - vendor syndrome: 0x%x syndrome: 0x%x\n",
-			       cqe_err->vendor_err_syndrome,
-			       cqe_err->syndrome);
-		}
+			     MLX4_CQE_OPCODE_ERROR))
+			if (!test_and_set_bit(MLX4_EN_TX_RING_STATE_RECOVERING, &ring->state))
+				mlx4_en_handle_err_cqe(priv, (struct mlx4_err_cqe *)cqe, index,
+						       ring);
 
 		/* Skip over last polled CQE */
 		new_index = be16_to_cpu(cqe->wqe_index) & size_mask;
@@ -449,7 +485,9 @@
 				timestamp = mlx4_en_get_cqe_ts(cqe);
 
 			/* free next descriptor */
-			last_nr_txbb = ring->free_tx_desc(
+			last_nr_txbb = INDIRECT_CALL_2(ring->free_tx_desc,
+						       mlx4_en_free_tx_desc,
+						       mlx4_en_recycle_tx_desc,
 					priv, ring, ring_index,
 					timestamp, napi_budget);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -1864,8 +1864,8 @@
 #define	 INIT_HCA_LOG_RD_OFFSET		 (INIT_HCA_QPC_OFFSET + 0x77)
 #define INIT_HCA_MCAST_OFFSET		 0x0c0
 #define	 INIT_HCA_MC_BASE_OFFSET	 (INIT_HCA_MCAST_OFFSET + 0x00)
-#define	 INIT_HCA_LOG_MC_ENTRY_SZ_OFFSET (INIT_HCA_MCAST_OFFSET + 0x12)
-#define	 INIT_HCA_LOG_MC_HASH_SZ_OFFSET	 (INIT_HCA_MCAST_OFFSET + 0x16)
+#define	 INIT_HCA_LOG_MC_ENTRY_SZ_OFFSET (INIT_HCA_MCAST_OFFSET + 0x13)
+#define	 INIT_HCA_LOG_MC_HASH_SZ_OFFSET	 (INIT_HCA_MCAST_OFFSET + 0x17)
 #define  INIT_HCA_UC_STEERING_OFFSET	 (INIT_HCA_MCAST_OFFSET + 0x18)
 #define	 INIT_HCA_LOG_MC_TABLE_SZ_OFFSET (INIT_HCA_MCAST_OFFSET + 0x1b)
 #define  INIT_HCA_DEVICE_MANAGED_FLOW_STEERING_EN	0x6
@@ -1873,7 +1873,7 @@
 #define  INIT_HCA_DRIVER_VERSION_SZ       0x40
 #define  INIT_HCA_FS_PARAM_OFFSET         0x1d0
 #define  INIT_HCA_FS_BASE_OFFSET          (INIT_HCA_FS_PARAM_OFFSET + 0x00)
-#define  INIT_HCA_FS_LOG_ENTRY_SZ_OFFSET  (INIT_HCA_FS_PARAM_OFFSET + 0x12)
+#define  INIT_HCA_FS_LOG_ENTRY_SZ_OFFSET  (INIT_HCA_FS_PARAM_OFFSET + 0x13)
 #define  INIT_HCA_FS_A0_OFFSET		  (INIT_HCA_FS_PARAM_OFFSET + 0x18)
 #define  INIT_HCA_FS_LOG_TABLE_SZ_OFFSET  (INIT_HCA_FS_PARAM_OFFSET + 0x1b)
 #define  INIT_HCA_FS_ETH_BITS_OFFSET      (INIT_HCA_FS_PARAM_OFFSET + 0x21)
@@ -2734,7 +2734,7 @@
 		if (err) {
 			mlx4_err(dev, "Failed to retrieve required operation: %d\n",
 				 err);
-			return;
+			goto out;
 		}
 		MLX4_GET(modifier, outbox, GET_OP_REQ_MODIFIER_OFFSET);
 		MLX4_GET(token, outbox, GET_OP_REQ_TOKEN_OFFSET);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/fw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/fw.h
@@ -182,8 +182,8 @@
 	u64 cmpt_base;
 	u64 mtt_base;
 	u64 global_caps;
-	u16 log_mc_entry_sz;
-	u16 log_mc_hash_sz;
+	u8 log_mc_entry_sz;
+	u8 log_mc_hash_sz;
 	u16 hca_core_clock; /* Internal Clock Frequency (in MHz) */
 	u8  log_num_qps;
 	u8  log_num_srqs;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -2550,6 +2550,7 @@
 
 		if (!err || err == -ENOSPC) {
 			priv->def_counter[port] = idx;
+			err = 0;
 		} else if (err == -ENOENT) {
 			err = 0;
 			continue;
@@ -2600,7 +2601,8 @@
 				   MLX4_CMD_TIME_CLASS_A, MLX4_CMD_WRAPPED);
 		if (!err)
 			*idx = get_param_l(&out_param);
-
+		if (WARN_ON(err == -ENOSPC))
+			err = -EINVAL;
 		return err;
 	}
 	return __mlx4_counter_alloc(dev, idx);
@@ -4352,12 +4354,14 @@
 static void mlx4_shutdown(struct pci_dev *pdev)
 {
 	struct mlx4_dev_persistent *persist = pci_get_drvdata(pdev);
+	struct mlx4_dev *dev = persist->dev;
 
 	mlx4_info(persist->dev, "mlx4_shutdown was called\n");
 	mutex_lock(&persist->interface_state_mutex);
 	if (persist->interface_state & MLX4_INTERFACE_STATE_UP)
 		mlx4_unload_one(pdev);
 	mutex_unlock(&persist->interface_state_mutex);
+	mlx4_pci_disable_device(dev);
 }
 
 static const struct pci_error_handlers mlx4_err_handler = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
@@ -271,6 +271,10 @@
 	} buf[MLX4_EN_CACHE_SIZE];
 };
 
+enum {
+	MLX4_EN_TX_RING_STATE_RECOVERING,
+};
+
 struct mlx4_en_priv;
 
 struct mlx4_en_tx_ring {
@@ -317,6 +321,7 @@
 	 * Only queue_stopped might be used if BQL is not properly working.
 	 */
 	unsigned long		queue_stopped;
+	unsigned long		state;
 	struct mlx4_hwq_resources sp_wqres;
 	struct mlx4_qp		sp_qp;
 	struct mlx4_qp_context	sp_context;
@@ -530,6 +535,10 @@
 	struct mutex mutex; /* for mutual access to stats bitmap */
 };
 
+enum {
+	MLX4_EN_STATE_FLAG_RESTARTING,
+};
+
 struct mlx4_en_priv {
 	struct mlx4_en_dev *mdev;
 	struct mlx4_en_port_profile *prof;
@@ -595,7 +604,7 @@
 	struct mlx4_en_cq *rx_cq[MAX_RX_RINGS];
 	struct mlx4_qp drop_qp;
 	struct work_struct rx_mode_task;
-	struct work_struct watchdog_task;
+	struct work_struct restart_task;
 	struct work_struct linkstate_task;
 	struct delayed_work stats_task;
 	struct delayed_work service_task;
@@ -643,6 +652,7 @@
 	u32 pflags;
 	u8 rss_key[MLX4_EN_RSS_KEY_SIZE];
 	u8 rss_hash_fn;
+	unsigned long state;
 };
 
 enum mlx4_en_wol {
@@ -787,6 +797,7 @@
 #define DEV_FEATURE_CHANGED(dev, new_features, feature) \
 	((dev->features & feature) ^ (new_features & feature))
 
+int mlx4_en_moderation_update(struct mlx4_en_priv *priv);
 int mlx4_en_reset_config(struct net_device *dev,
 			 struct hwtstamp_config ts_config,
 			 netdev_features_t new_features);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/mr.c
@@ -114,7 +114,7 @@
 		goto err_out;
 
 	for (i = 0; i <= buddy->max_order; ++i) {
-		s = BITS_TO_LONGS(1 << (buddy->max_order - i));
+		s = BITS_TO_LONGS(1UL << (buddy->max_order - i));
 		buddy->bits[i] = kvmalloc_array(s, sizeof(long), GFP_KERNEL | __GFP_ZERO);
 		if (!buddy->bits[i])
 			goto err_out_free;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
@@ -4986,6 +4986,7 @@
 
 	if (!fs_rule->mirr_mbox) {
 		mlx4_err(dev, "rule mirroring mailbox is null\n");
+		mlx4_free_cmd_mailbox(dev, mailbox);
 		return -EINVAL;
 	}
 	memcpy(mailbox->buf, fs_rule->mirr_mbox, fs_rule->mirr_mbox_size);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h
@@ -45,7 +45,7 @@
 
 static inline bool mlx5_accel_is_ktls_device(struct mlx5_core_dev *mdev)
 {
-	if (!MLX5_CAP_GEN(mdev, tls))
+	if (!MLX5_CAP_GEN(mdev, tls_tx))
 		return false;
 
 	if (!MLX5_CAP_GEN(mdev, log_max_dek))
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -69,12 +69,10 @@
 	MLX5_CMD_DELIVERY_STAT_CMD_DESCR_ERR		= 0x10,
 };
 
-static struct mlx5_cmd_work_ent *alloc_cmd(struct mlx5_cmd *cmd,
-					   struct mlx5_cmd_msg *in,
-					   struct mlx5_cmd_msg *out,
-					   void *uout, int uout_size,
-					   mlx5_cmd_cbk_t cbk,
-					   void *context, int page_queue)
+static struct mlx5_cmd_work_ent *
+cmd_alloc_ent(struct mlx5_cmd *cmd, struct mlx5_cmd_msg *in,
+	      struct mlx5_cmd_msg *out, void *uout, int uout_size,
+	      mlx5_cmd_cbk_t cbk, void *context, int page_queue)
 {
 	gfp_t alloc_flags = cbk ? GFP_ATOMIC : GFP_KERNEL;
 	struct mlx5_cmd_work_ent *ent;
@@ -83,6 +81,7 @@
 	if (!ent)
 		return ERR_PTR(-ENOMEM);
 
+	ent->idx	= -EINVAL;
 	ent->in		= in;
 	ent->out	= out;
 	ent->uout	= uout;
@@ -91,10 +90,16 @@
 	ent->context	= context;
 	ent->cmd	= cmd;
 	ent->page_queue = page_queue;
+	refcount_set(&ent->refcnt, 1);
 
 	return ent;
 }
 
+static void cmd_free_ent(struct mlx5_cmd_work_ent *ent)
+{
+	kfree(ent);
+}
+
 static u8 alloc_token(struct mlx5_cmd *cmd)
 {
 	u8 token;
@@ -109,7 +114,7 @@
 	return token;
 }
 
-static int alloc_ent(struct mlx5_cmd *cmd)
+static int cmd_alloc_index(struct mlx5_cmd *cmd)
 {
 	unsigned long flags;
 	int ret;
@@ -123,7 +128,7 @@
 	return ret < cmd->max_reg_cmds ? ret : -ENOMEM;
 }
 
-static void free_ent(struct mlx5_cmd *cmd, int idx)
+static void cmd_free_index(struct mlx5_cmd *cmd, int idx)
 {
 	unsigned long flags;
 
@@ -132,6 +137,22 @@
 	spin_unlock_irqrestore(&cmd->alloc_lock, flags);
 }
 
+static void cmd_ent_get(struct mlx5_cmd_work_ent *ent)
+{
+	refcount_inc(&ent->refcnt);
+}
+
+static void cmd_ent_put(struct mlx5_cmd_work_ent *ent)
+{
+	if (!refcount_dec_and_test(&ent->refcnt))
+		return;
+
+	if (ent->idx >= 0)
+		cmd_free_index(ent->cmd, ent->idx);
+
+	cmd_free_ent(ent);
+}
+
 static struct mlx5_cmd_layout *get_inst(struct mlx5_cmd *cmd, int idx)
 {
 	return cmd->cmd_buf + (idx << cmd->log_stride);
@@ -219,11 +240,6 @@
 	ent->ret = -ETIMEDOUT;
 }
 
-static void free_cmd(struct mlx5_cmd_work_ent *ent)
-{
-	kfree(ent);
-}
-
 static int verify_signature(struct mlx5_cmd_work_ent *ent)
 {
 	struct mlx5_cmd_mailbox *next = ent->out->next;
@@ -837,17 +853,55 @@
 	struct mlx5_core_dev *dev = container_of(ent->cmd, struct mlx5_core_dev,
 						 cmd);
 
+	mlx5_cmd_eq_recover(dev);
+
+	/* Maybe got handled by eq recover ? */
+	if (!test_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state)) {
+		mlx5_core_warn(dev, "cmd[%d]: %s(0x%x) Async, recovered after timeout\n", ent->idx,
+			       mlx5_command_str(msg_to_opcode(ent->in)), msg_to_opcode(ent->in));
+		goto out; /* phew, already handled */
+	}
+
 	ent->ret = -ETIMEDOUT;
-	mlx5_core_warn(dev, "%s(0x%x) timeout. Will cause a leak of a command resource\n",
-		       mlx5_command_str(msg_to_opcode(ent->in)),
-		       msg_to_opcode(ent->in));
+	mlx5_core_warn(dev, "cmd[%d]: %s(0x%x) Async, timeout. Will cause a leak of a command resource\n",
+		       ent->idx, mlx5_command_str(msg_to_opcode(ent->in)), msg_to_opcode(ent->in));
 	mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
+
+out:
+	cmd_ent_put(ent); /* for the cmd_ent_get() took on schedule delayed work */
 }
 
 static void free_msg(struct mlx5_core_dev *dev, struct mlx5_cmd_msg *msg);
 static void mlx5_free_cmd_msg(struct mlx5_core_dev *dev,
 			      struct mlx5_cmd_msg *msg);
 
+static bool opcode_allowed(struct mlx5_cmd *cmd, u16 opcode)
+{
+	if (cmd->allowed_opcode == CMD_ALLOWED_OPCODE_ALL)
+		return true;
+
+	return cmd->allowed_opcode == opcode;
+}
+
+static int cmd_alloc_index_retry(struct mlx5_cmd *cmd)
+{
+	unsigned long alloc_end = jiffies + msecs_to_jiffies(1000);
+	int idx;
+
+retry:
+	idx = cmd_alloc_index(cmd);
+	if (idx < 0 && time_before(jiffies, alloc_end)) {
+		/* Index allocation can fail on heavy load of commands. This is a temporary
+		 * situation as the current command already holds the semaphore, meaning that
+		 * another command completion is being handled and it is expected to release
+		 * the entry index soon.
+		 */
+		cpu_relax();
+		goto retry;
+	}
+	return idx;
+}
+
 static void cmd_work_handler(struct work_struct *work)
 {
 	struct mlx5_cmd_work_ent *ent = container_of(work, struct mlx5_cmd_work_ent, work);
@@ -861,17 +915,18 @@
 	int alloc_ret;
 	int cmd_mode;
 
+	complete(&ent->handling);
 	sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
 	down(sem);
 	if (!ent->page_queue) {
-		alloc_ret = alloc_ent(cmd);
+		alloc_ret = cmd_alloc_index_retry(cmd);
 		if (alloc_ret < 0) {
 			mlx5_core_err(dev, "failed to allocate command entry\n");
 			if (ent->callback) {
 				ent->callback(-EAGAIN, ent->context);
 				mlx5_free_cmd_msg(dev, ent->out);
 				free_msg(dev, ent->in);
-				free_cmd(ent);
+				cmd_ent_put(ent);
 			} else {
 				ent->ret = -EAGAIN;
 				complete(&ent->done);
@@ -888,7 +943,6 @@
 	}
 
 	cmd->ent_arr[ent->idx] = ent;
-	set_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state);
 	lay = get_inst(cmd, ent->idx);
 	ent->lay = lay;
 	memset(lay, 0, sizeof(*lay));
@@ -908,12 +962,14 @@
 	ent->ts1 = ktime_get_ns();
 	cmd_mode = cmd->mode;
 
-	if (ent->callback)
-		schedule_delayed_work(&ent->cb_timeout_work, cb_timeout);
+	if (ent->callback && schedule_delayed_work(&ent->cb_timeout_work, cb_timeout))
+		cmd_ent_get(ent);
+	set_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state);
 
 	/* Skip sending command to fw if internal error */
 	if (pci_channel_offline(dev->pdev) ||
-	    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
+	    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR ||
+	    !opcode_allowed(&dev->cmd, ent->op)) {
 		u8 status = 0;
 		u32 drv_synd;
 
@@ -925,6 +981,7 @@
 		return;
 	}
 
+	cmd_ent_get(ent); /* for the _real_ FW event on completion */
 	/* ring doorbell after the descriptor is valid */
 	mlx5_core_dbg(dev, "writing 0x%x to command doorbell\n", 1 << ent->idx);
 	wmb();
@@ -968,25 +1025,62 @@
 	}
 }
 
+enum {
+	MLX5_CMD_TIMEOUT_RECOVER_MSEC   = 5 * 1000,
+};
+
+static void wait_func_handle_exec_timeout(struct mlx5_core_dev *dev,
+					  struct mlx5_cmd_work_ent *ent)
+{
+	unsigned long timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_RECOVER_MSEC);
+
+	mlx5_cmd_eq_recover(dev);
+
+	/* Re-wait on the ent->done after executing the recovery flow. If the
+	 * recovery flow (or any other recovery flow running simultaneously)
+	 * has recovered an EQE, it should cause the entry to be completed by
+	 * the command interface.
+	 */
+	if (wait_for_completion_timeout(&ent->done, timeout)) {
+		mlx5_core_warn(dev, "cmd[%d]: %s(0x%x) recovered after timeout\n", ent->idx,
+			       mlx5_command_str(msg_to_opcode(ent->in)), msg_to_opcode(ent->in));
+		return;
+	}
+
+	mlx5_core_warn(dev, "cmd[%d]: %s(0x%x) No done completion\n", ent->idx,
+		       mlx5_command_str(msg_to_opcode(ent->in)), msg_to_opcode(ent->in));
+
+	ent->ret = -ETIMEDOUT;
+	mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
+}
+
 static int wait_func(struct mlx5_core_dev *dev, struct mlx5_cmd_work_ent *ent)
 {
 	unsigned long timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC);
 	struct mlx5_cmd *cmd = &dev->cmd;
 	int err;
 
-	if (cmd->mode == CMD_MODE_POLLING || ent->polling) {
-		wait_for_completion(&ent->done);
-	} else if (!wait_for_completion_timeout(&ent->done, timeout)) {
-		ent->ret = -ETIMEDOUT;
-		mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
+	if (!wait_for_completion_timeout(&ent->handling, timeout) &&
+	    cancel_work_sync(&ent->work)) {
+		ent->ret = -ECANCELED;
+		goto out_err;
 	}
+	if (cmd->mode == CMD_MODE_POLLING || ent->polling)
+		wait_for_completion(&ent->done);
+	else if (!wait_for_completion_timeout(&ent->done, timeout))
+		wait_func_handle_exec_timeout(dev, ent);
 
+out_err:
 	err = ent->ret;
 
 	if (err == -ETIMEDOUT) {
 		mlx5_core_warn(dev, "%s(0x%x) timeout. Will cause a leak of a command resource\n",
 			       mlx5_command_str(msg_to_opcode(ent->in)),
 			       msg_to_opcode(ent->in));
+	} else if (err == -ECANCELED) {
+		mlx5_core_warn(dev, "%s(0x%x) canceled on out of queue timeout.\n",
+			       mlx5_command_str(msg_to_opcode(ent->in)),
+			       msg_to_opcode(ent->in));
 	}
 	mlx5_core_dbg(dev, "err %d, delivery status %s(%d)\n",
 		      err, deliv_status_to_str(ent->status), ent->status);
@@ -1014,14 +1108,20 @@
 	if (callback && page_queue)
 		return -EINVAL;
 
-	ent = alloc_cmd(cmd, in, out, uout, uout_size, callback, context,
-			page_queue);
+	ent = cmd_alloc_ent(cmd, in, out, uout, uout_size,
+			    callback, context, page_queue);
 	if (IS_ERR(ent))
 		return PTR_ERR(ent);
 
+	/* put for this ent is when consumed, depending on the use case
+	 * 1) (!callback) blocking flow: by caller after wait_func completes
+	 * 2) (callback) flow: by mlx5_cmd_comp_handler() when ent is handled
+	 */
+
 	ent->token = token;
 	ent->polling = force_polling;
 
+	init_completion(&ent->handling);
 	if (!callback)
 		init_completion(&ent->done);
 
@@ -1036,11 +1136,11 @@
 	}
 
 	if (callback)
-		goto out;
+		goto out; /* mlx5_cmd_comp_handler() will put(ent) */
 
 	err = wait_func(dev, ent);
-	if (err == -ETIMEDOUT)
-		goto out;
+	if (err == -ETIMEDOUT || err == -ECANCELED)
+		goto out_free;
 
 	ds = ent->ts2 - ent->ts1;
 	op = MLX5_GET(mbox_in, in->first.data, opcode);
@@ -1057,7 +1157,7 @@
 	*status = ent->status;
 
 out_free:
-	free_cmd(ent);
+	cmd_ent_put(ent);
 out:
 	return err;
 }
@@ -1387,6 +1487,22 @@
 	mlx5_cmdif_debugfs_init(dev);
 }
 
+void mlx5_cmd_allowed_opcode(struct mlx5_core_dev *dev, u16 opcode)
+{
+	struct mlx5_cmd *cmd = &dev->cmd;
+	int i;
+
+	for (i = 0; i < cmd->max_reg_cmds; i++)
+		down(&cmd->sem);
+	down(&cmd->pages_sem);
+
+	cmd->allowed_opcode = opcode;
+
+	up(&cmd->pages_sem);
+	for (i = 0; i < cmd->max_reg_cmds; i++)
+		up(&cmd->sem);
+}
+
 static void mlx5_cmd_change_mod(struct mlx5_core_dev *dev, int mode)
 {
 	struct mlx5_cmd *cmd = &dev->cmd;
@@ -1472,14 +1588,19 @@
 				if (!forced) {
 					mlx5_core_err(dev, "Command completion arrived after timeout (entry idx = %d).\n",
 						      ent->idx);
-					free_ent(cmd, ent->idx);
-					free_cmd(ent);
+					cmd_ent_put(ent);
 				}
 				continue;
 			}
 
-			if (ent->callback)
-				cancel_delayed_work(&ent->cb_timeout_work);
+			if (ent->callback && cancel_delayed_work(&ent->cb_timeout_work))
+				cmd_ent_put(ent); /* timeout work was canceled */
+
+			if (!forced || /* Real FW completion */
+			    pci_channel_offline(dev->pdev) || /* FW is inaccessible */
+			    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
+				cmd_ent_put(ent);
+
 			if (ent->page_queue)
 				sem = &cmd->pages_sem;
 			else
@@ -1501,10 +1622,6 @@
 					      ent->ret, deliv_status_to_str(ent->status), ent->status);
 			}
 
-			/* only real completion will free the entry slot */
-			if (!forced)
-				free_ent(cmd, ent->idx);
-
 			if (ent->callback) {
 				ds = ent->ts2 - ent->ts1;
 				if (ent->op < ARRAY_SIZE(cmd->stats)) {
@@ -1532,10 +1649,13 @@
 				free_msg(dev, ent->in);
 
 				err = err ? err : ent->status;
-				if (!forced)
-					free_cmd(ent);
+				/* final consumer is done, release ent */
+				cmd_ent_put(ent);
 				callback(err, context);
 			} else {
+				/* release wait_func() so mlx5_cmd_invoke()
+				 * can make the final ent_put()
+				 */
 				complete(&ent->done);
 			}
 			up(sem);
@@ -1545,8 +1665,11 @@
 
 void mlx5_cmd_trigger_completions(struct mlx5_core_dev *dev)
 {
+	struct mlx5_cmd *cmd = &dev->cmd;
+	unsigned long bitmask;
 	unsigned long flags;
 	u64 vector;
+	int i;
 
 	/* wait for pending handlers to complete */
 	mlx5_eq_synchronize_cmd_irq(dev);
@@ -1555,11 +1678,20 @@
 	if (!vector)
 		goto no_trig;
 
+	bitmask = vector;
+	/* we must increment the allocated entries refcount before triggering the completions
+	 * to guarantee pending commands will not get freed in the meanwhile.
+	 * For that reason, it also has to be done inside the alloc_lock.
+	 */
+	for_each_set_bit(i, &bitmask, (1 << cmd->log_sz))
+		cmd_ent_get(cmd->ent_arr[i]);
 	vector |= MLX5_TRIGGERED_CMD_COMP;
 	spin_unlock_irqrestore(&dev->cmd.alloc_lock, flags);
 
 	mlx5_core_dbg(dev, "vector 0x%llx\n", vector);
 	mlx5_cmd_comp_handler(dev, vector, true);
+	for_each_set_bit(i, &bitmask, (1 << cmd->log_sz))
+		cmd_ent_put(cmd->ent_arr[i]);
 	return;
 
 no_trig:
@@ -1663,12 +1795,13 @@
 	int err;
 	u8 status = 0;
 	u32 drv_synd;
+	u16 opcode;
 	u8 token;
 
+	opcode = MLX5_GET(mbox_in, in, opcode);
 	if (pci_channel_offline(dev->pdev) ||
-	    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
-		u16 opcode = MLX5_GET(mbox_in, in, opcode);
-
+	    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR ||
+	    !opcode_allowed(&dev->cmd, opcode)) {
 		err = mlx5_internal_err_ret_value(dev, opcode, &drv_synd, &status);
 		MLX5_SET(mbox_out, out, status, status);
 		MLX5_SET(mbox_out, out, syndrome, drv_synd);
@@ -1970,6 +2103,7 @@
 	mlx5_core_dbg(dev, "descriptor at dma 0x%llx\n", (unsigned long long)(cmd->dma));
 
 	cmd->mode = CMD_MODE_POLLING;
+	cmd->allowed_opcode = CMD_ALLOWED_OPCODE_ALL;
 
 	create_msg_cache(dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
@@ -23,7 +23,10 @@
 	if (err)
 		return err;
 
-	return mlx5_firmware_flash(dev, fw, extack);
+	err = mlx5_firmware_flash(dev, fw, extack);
+	release_firmware(fw);
+
+	return err;
 }
 
 static u8 mlx5_fw_ver_major(u32 version)
@@ -85,6 +88,22 @@
 	return 0;
 }
 
+static int mlx5_devlink_reload_down(struct devlink *devlink,
+				    struct netlink_ext_ack *extack)
+{
+	struct mlx5_core_dev *dev = devlink_priv(devlink);
+
+	return mlx5_unload_one(dev, false);
+}
+
+static int mlx5_devlink_reload_up(struct devlink *devlink,
+				  struct netlink_ext_ack *extack)
+{
+	struct mlx5_core_dev *dev = devlink_priv(devlink);
+
+	return mlx5_load_one(dev, false);
+}
+
 static const struct devlink_ops mlx5_devlink_ops = {
 #ifdef CONFIG_MLX5_ESWITCH
 	.eswitch_mode_set = mlx5_devlink_eswitch_mode_set,
@@ -96,6 +115,8 @@
 #endif
 	.flash_update = mlx5_devlink_flash_update,
 	.info_get = mlx5_devlink_info_get,
+	.reload_down = mlx5_devlink_reload_down,
+	.reload_up = mlx5_devlink_reload_up,
 };
 
 struct devlink *mlx5_devlink_alloc(void)
@@ -177,12 +198,29 @@
 	MLX5_DEVLINK_PARAM_FLOW_STEERING_MODE,
 };
 
+static int mlx5_devlink_enable_roce_validate(struct devlink *devlink, u32 id,
+					     union devlink_param_value val,
+					     struct netlink_ext_ack *extack)
+{
+	struct mlx5_core_dev *dev = devlink_priv(devlink);
+	bool new_state = val.vbool;
+
+	if (new_state && !MLX5_CAP_GEN(dev, roce)) {
+		NL_SET_ERR_MSG_MOD(extack, "Device doesn't support RoCE");
+		return -EOPNOTSUPP;
+	}
+
+	return 0;
+}
+
 static const struct devlink_param mlx5_devlink_params[] = {
 	DEVLINK_PARAM_DRIVER(MLX5_DEVLINK_PARAM_FLOW_STEERING_MODE,
 			     "flow_steering_mode", DEVLINK_PARAM_TYPE_STRING,
 			     BIT(DEVLINK_PARAM_CMODE_RUNTIME),
 			     mlx5_devlink_fs_mode_get, mlx5_devlink_fs_mode_set,
 			     mlx5_devlink_fs_mode_validate),
+	DEVLINK_PARAM_GENERIC(ENABLE_ROCE, BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
+			      NULL, NULL, mlx5_devlink_enable_roce_validate),
 };
 
 static void mlx5_devlink_set_params_init_values(struct devlink *devlink)
@@ -197,6 +235,11 @@
 	devlink_param_driverinit_value_set(devlink,
 					   MLX5_DEVLINK_PARAM_FLOW_STEERING_MODE,
 					   value);
+
+	value.vbool = MLX5_CAP_GEN(dev, roce);
+	devlink_param_driverinit_value_set(devlink,
+					   DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE,
+					   value);
 }
 
 int mlx5_devlink_register(struct devlink *devlink, struct device *dev)
@@ -213,6 +256,7 @@
 		goto params_reg_err;
 	mlx5_devlink_set_params_init_values(devlink);
 	devlink_params_publish(devlink);
+	devlink_reload_enable(devlink);
 	return 0;
 
 params_reg_err:
@@ -222,6 +266,7 @@
 
 void mlx5_devlink_unregister(struct devlink *devlink)
 {
+	devlink_reload_disable(devlink);
 	devlink_params_unregister(devlink, mlx5_devlink_params,
 				  ARRAY_SIZE(mlx5_devlink_params));
 	devlink_unregister(devlink);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
@@ -935,7 +935,7 @@
 		return NULL;
 	}
 
-	tracer = kzalloc(sizeof(*tracer), GFP_KERNEL);
+	tracer = kvzalloc(sizeof(*tracer), GFP_KERNEL);
 	if (!tracer)
 		return ERR_PTR(-ENOMEM);
 
@@ -982,7 +982,7 @@
 	tracer->dev = NULL;
 	destroy_workqueue(tracer->work_queue);
 free_tracer:
-	kfree(tracer);
+	kvfree(tracer);
 	return ERR_PTR(err);
 }
 
@@ -1061,7 +1061,7 @@
 	mlx5_fw_tracer_destroy_log_buf(tracer);
 	flush_workqueue(tracer->work_queue);
 	destroy_workqueue(tracer->work_queue);
-	kfree(tracer);
+	kvfree(tracer);
 }
 
 static int fw_tracer_event(struct notifier_block *nb, unsigned long action, void *data)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -92,7 +92,12 @@
 #define MLX5_MPWRQ_PAGES_PER_WQE		BIT(MLX5_MPWRQ_WQE_PAGE_ORDER)
 
 #define MLX5_MTT_OCTW(npages) (ALIGN(npages, 8) / 2)
-#define MLX5E_REQUIRED_WQE_MTTS		(ALIGN(MLX5_MPWRQ_PAGES_PER_WQE, 8))
+/* Add another page to MLX5E_REQUIRED_WQE_MTTS as a buffer between
+ * WQEs, This page will absorb write overflow by the hardware, when
+ * receiving packets larger than MTU. These oversize packets are
+ * dropped by the driver at a later stage.
+ */
+#define MLX5E_REQUIRED_WQE_MTTS		(ALIGN(MLX5_MPWRQ_PAGES_PER_WQE + 1, 8))
 #define MLX5E_LOG_ALIGNED_MPWQE_PPW	(ilog2(MLX5E_REQUIRED_WQE_MTTS))
 #define MLX5E_REQUIRED_MTTS(wqes)	(wqes * MLX5E_REQUIRED_WQE_MTTS)
 #define MLX5E_MAX_RQ_NUM_MTTS	\
@@ -367,10 +372,12 @@
 	MLX5E_SQ_STATE_AM,
 	MLX5E_SQ_STATE_TLS,
 	MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE,
+	MLX5E_SQ_STATE_PENDING_XSK_TX,
 };
 
 struct mlx5e_sq_wqe_info {
 	u8  opcode;
+	u8 num_wqebbs;
 
 	/* Auxiliary data for different opcodes. */
 	union {
@@ -692,6 +699,7 @@
 	u32                    rqn;
 	struct mlx5_core_dev  *mdev;
 	struct mlx5_core_mkey  umr_mkey;
+	struct mlx5e_dma_info  wqe_overflow;
 
 	/* XDP read-mostly */
 	struct xdp_rxq_info    xdp_rxq;
@@ -760,7 +768,7 @@
 	MLX5E_STATE_OPENED,
 	MLX5E_STATE_DESTROYING,
 	MLX5E_STATE_XDP_TX_ENABLED,
-	MLX5E_STATE_XDP_OPEN,
+	MLX5E_STATE_XDP_ACTIVE,
 };
 
 struct mlx5e_rqt {
@@ -816,7 +824,7 @@
 struct mlx5e_priv {
 	/* priv data path fields - start */
 	struct mlx5e_txqsq *txq2sq[MLX5E_MAX_NUM_CHANNELS * MLX5E_MAX_NUM_TC];
-	int channel_tc2txq[MLX5E_MAX_NUM_CHANNELS][MLX5E_MAX_NUM_TC];
+	int channel_tc2realtxq[MLX5E_MAX_NUM_CHANNELS][MLX5E_MAX_NUM_TC];
 #ifdef CONFIG_MLX5_CORE_EN_DCB
 	struct mlx5e_dcbx_dp       dcbx_dp;
 #endif
@@ -947,7 +955,7 @@
 void mlx5e_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe);
 void mlx5e_handle_rx_cqe_mpwrq(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe);
 bool mlx5e_post_rx_wqes(struct mlx5e_rq *rq);
-void mlx5e_poll_ico_cq(struct mlx5e_cq *cq);
+int mlx5e_poll_ico_cq(struct mlx5e_cq *cq);
 bool mlx5e_post_rx_mpwqes(struct mlx5e_rq *rq);
 void mlx5e_dealloc_rx_wqe(struct mlx5e_rq *rq, u16 ix);
 void mlx5e_dealloc_rx_mpwqe(struct mlx5e_rq *rq, u16 ix);
@@ -1034,14 +1042,15 @@
 			struct mlx5e_channels *chs);
 void mlx5e_close_channels(struct mlx5e_channels *chs);
 
-/* Function pointer to be used to modify WH settings while
+/* Function pointer to be used to modify HW or kernel settings while
  * switching channels
  */
-typedef int (*mlx5e_fp_hw_modify)(struct mlx5e_priv *priv);
+typedef int (*mlx5e_fp_preactivate)(struct mlx5e_priv *priv);
 int mlx5e_safe_reopen_channels(struct mlx5e_priv *priv);
 int mlx5e_safe_switch_channels(struct mlx5e_priv *priv,
 			       struct mlx5e_channels *new_chs,
-			       mlx5e_fp_hw_modify hw_modify);
+			       mlx5e_fp_preactivate preactivate);
+int mlx5e_num_channels_changed(struct mlx5e_priv *priv);
 void mlx5e_activate_priv_channels(struct mlx5e_priv *priv);
 void mlx5e_deactivate_priv_channels(struct mlx5e_priv *priv);
 
@@ -1058,6 +1067,7 @@
 void mlx5e_activate_rq(struct mlx5e_rq *rq);
 void mlx5e_deactivate_rq(struct mlx5e_rq *rq);
 void mlx5e_free_rx_descs(struct mlx5e_rq *rq);
+void mlx5e_free_rx_in_progress_descs(struct mlx5e_rq *rq);
 void mlx5e_activate_icosq(struct mlx5e_icosq *icosq);
 void mlx5e_deactivate_icosq(struct mlx5e_icosq *icosq);
 
@@ -1099,7 +1109,7 @@
 int mlx5e_create_indirect_rqt(struct mlx5e_priv *priv);
 
 int mlx5e_create_indirect_tirs(struct mlx5e_priv *priv, bool inner_ttc);
-void mlx5e_destroy_indirect_tirs(struct mlx5e_priv *priv, bool inner_ttc);
+void mlx5e_destroy_indirect_tirs(struct mlx5e_priv *priv);
 
 int mlx5e_create_direct_rqts(struct mlx5e_priv *priv, struct mlx5e_tir *tirs);
 void mlx5e_destroy_direct_rqts(struct mlx5e_priv *priv, struct mlx5e_tir *tirs);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/fs.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/fs.h
@@ -122,6 +122,22 @@
 #endif
 };
 
+#define MLX5E_TTC_NUM_GROUPS	3
+#define MLX5E_TTC_GROUP1_SIZE	(BIT(3) + MLX5E_NUM_TUNNEL_TT)
+#define MLX5E_TTC_GROUP2_SIZE	 BIT(1)
+#define MLX5E_TTC_GROUP3_SIZE	 BIT(0)
+#define MLX5E_TTC_TABLE_SIZE	(MLX5E_TTC_GROUP1_SIZE +\
+				 MLX5E_TTC_GROUP2_SIZE +\
+				 MLX5E_TTC_GROUP3_SIZE)
+
+#define MLX5E_INNER_TTC_NUM_GROUPS	3
+#define MLX5E_INNER_TTC_GROUP1_SIZE	BIT(3)
+#define MLX5E_INNER_TTC_GROUP2_SIZE	BIT(1)
+#define MLX5E_INNER_TTC_GROUP3_SIZE	BIT(0)
+#define MLX5E_INNER_TTC_TABLE_SIZE	(MLX5E_INNER_TTC_GROUP1_SIZE +\
+					 MLX5E_INNER_TTC_GROUP2_SIZE +\
+					 MLX5E_INNER_TTC_GROUP3_SIZE)
+
 #ifdef CONFIG_MLX5_EN_RXNFC
 
 struct mlx5e_ethtool_table {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/health.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/health.c
@@ -197,9 +197,10 @@
 			struct devlink_health_reporter *reporter, char *err_str,
 			struct mlx5e_err_ctx *err_ctx)
 {
-	if (!reporter) {
-		netdev_err(priv->netdev, err_str);
-		return err_ctx->recover(&err_ctx->ctx);
-	}
+	netdev_err(priv->netdev, err_str);
+
+	if (!reporter)
+		return err_ctx->recover(err_ctx->ctx);
+
 	return devlink_health_report(reporter, err_str, err_ctx);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/health.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/health.h
@@ -10,8 +10,7 @@
 
 static inline bool cqe_syndrome_needs_recover(u8 syndrome)
 {
-	return syndrome == MLX5_CQE_SYNDROME_LOCAL_LENGTH_ERR ||
-	       syndrome == MLX5_CQE_SYNDROME_LOCAL_QP_OP_ERR ||
+	return syndrome == MLX5_CQE_SYNDROME_LOCAL_QP_OP_ERR ||
 	       syndrome == MLX5_CQE_SYNDROME_LOCAL_PROT_ERR ||
 	       syndrome == MLX5_CQE_SYNDROME_WR_FLUSH_ERR;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/port.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/port.c
@@ -73,15 +73,31 @@
 	[MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2]	= 50000,
 	[MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR]	= 50000,
 	[MLX5E_CAUI_4_100GBASE_CR4_KR4]		= 100000,
+	[MLX5E_100GAUI_2_100GBASE_CR2_KR2]	= 100000,
 	[MLX5E_200GAUI_4_200GBASE_CR4_KR4]	= 200000,
 	[MLX5E_400GAUI_8]			= 400000,
 };
 
+bool mlx5e_ptys_ext_supported(struct mlx5_core_dev *mdev)
+{
+	struct mlx5e_port_eth_proto eproto;
+	int err;
+
+	if (MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet))
+		return true;
+
+	err = mlx5_port_query_eth_proto(mdev, 1, true, &eproto);
+	if (err)
+		return false;
+
+	return !!eproto.cap;
+}
+
 static void mlx5e_port_get_speed_arr(struct mlx5_core_dev *mdev,
 				     const u32 **arr, u32 *size,
 				     bool force_legacy)
 {
-	bool ext = force_legacy ? false : MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	bool ext = force_legacy ? false : mlx5e_ptys_ext_supported(mdev);
 
 	*size = ext ? ARRAY_SIZE(mlx5e_ext_link_speed) :
 		      ARRAY_SIZE(mlx5e_link_speed);
@@ -176,7 +192,7 @@
 	bool ext;
 	int err;
 
-	ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	ext = mlx5e_ptys_ext_supported(mdev);
 	err = mlx5_port_query_eth_proto(mdev, 1, ext, &eproto);
 	if (err)
 		goto out;
@@ -204,7 +220,7 @@
 	int err;
 	int i;
 
-	ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	ext = mlx5e_ptys_ext_supported(mdev);
 	err = mlx5_port_query_eth_proto(mdev, 1, ext, &eproto);
 	if (err)
 		return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/port.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/port.h
@@ -54,7 +54,7 @@
 int mlx5e_port_max_linkspeed(struct mlx5_core_dev *mdev, u32 *speed);
 u32 mlx5e_port_speed2linkmodes(struct mlx5_core_dev *mdev, u32 speed,
 			       bool force_legacy);
-
+bool mlx5e_ptys_ext_supported(struct mlx5_core_dev *mdev);
 int mlx5e_port_query_pbmc(struct mlx5_core_dev *mdev, void *out);
 int mlx5e_port_set_pbmc(struct mlx5_core_dev *mdev, void *in);
 int mlx5e_port_query_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c
@@ -155,8 +155,11 @@
 		}
 
 		if (port_buffer->buffer[i].size <
-		    (xoff + max_mtu + (1 << MLX5E_BUFFER_CELL_SHIFT)))
+		    (xoff + max_mtu + (1 << MLX5E_BUFFER_CELL_SHIFT))) {
+			pr_err("buffer_size[%d]=%d is not enough for lossless buffer\n",
+			       i, port_buffer->buffer[i].size);
 			return -ENOMEM;
+		}
 
 		port_buffer->buffer[i].xoff = port_buffer->buffer[i].size - xoff;
 		port_buffer->buffer[i].xon  =
@@ -232,6 +235,26 @@
 	return 0;
 }
 
+static int fill_pfc_en(struct mlx5_core_dev *mdev, u8 *pfc_en)
+{
+	u32 g_rx_pause, g_tx_pause;
+	int err;
+
+	err = mlx5_query_port_pause(mdev, &g_rx_pause, &g_tx_pause);
+	if (err)
+		return err;
+
+	/* If global pause enabled, set all active buffers to lossless.
+	 * Otherwise, check PFC setting.
+	 */
+	if (g_rx_pause || g_tx_pause)
+		*pfc_en = 0xff;
+	else
+		err = mlx5_query_port_pfc(mdev, pfc_en, NULL);
+
+	return err;
+}
+
 #define MINIMUM_MAX_MTU 9216
 int mlx5e_port_manual_buffer_config(struct mlx5e_priv *priv,
 				    u32 change, unsigned int mtu,
@@ -277,7 +300,7 @@
 
 	if (change & MLX5E_PORT_BUFFER_PRIO2BUFFER) {
 		update_prio2buffer = true;
-		err = mlx5_query_port_pfc(priv->mdev, &curr_pfc_en, NULL);
+		err = fill_pfc_en(priv->mdev, &curr_pfc_en);
 		if (err)
 			return err;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
@@ -90,7 +90,7 @@
 		goto out;
 
 	mlx5e_reset_icosq_cc_pc(icosq);
-	mlx5e_free_rx_descs(rq);
+	mlx5e_free_rx_in_progress_descs(rq);
 	clear_bit(MLX5E_SQ_STATE_RECOVERING, &icosq->state);
 	mlx5e_activate_icosq(icosq);
 	mlx5e_activate_rq(rq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
@@ -144,10 +144,10 @@
 #if IS_ENABLED(CONFIG_INET) && IS_ENABLED(CONFIG_IPV6)
 	int ret;
 
-	ret = ipv6_stub->ipv6_dst_lookup(dev_net(mirred_dev), NULL, &dst,
-					 fl6);
-	if (ret < 0)
-		return ret;
+	dst = ipv6_stub->ipv6_dst_lookup_flow(dev_net(mirred_dev), NULL, fl6,
+					      NULL);
+	if (IS_ERR(dst))
+		return PTR_ERR(dst);
 
 	if (!(*out_ttl))
 		*out_ttl = ip6_dst_hoplimit(dst);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h
@@ -27,6 +27,11 @@
 
 #define INL_HDR_START_SZ (sizeof(((struct mlx5_wqe_eth_seg *)NULL)->inline_hdr.start))
 
+static inline bool mlx5e_skb_is_multicast(struct sk_buff *skb)
+{
+	return skb->pkt_type == PACKET_MULTICAST || skb->pkt_type == PACKET_BROADCAST;
+}
+
 static inline bool
 mlx5e_wqc_has_room_for(struct mlx5_wq_cyc *wq, u16 cc, u16 pc, u16 n)
 {
@@ -179,6 +184,16 @@
 	}
 }
 
+static inline void mlx5e_rqwq_reset(struct mlx5e_rq *rq)
+{
+	if (rq->wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
+		mlx5_wq_ll_reset(&rq->mpwqe.wq);
+		rq->mpwqe.actual_wq_head = 0;
+	} else {
+		mlx5_wq_cyc_reset(&rq->wqe.wq);
+	}
+}
+
 /* SW parser related functions */
 
 struct mlx5e_swp_spec {
@@ -189,6 +204,15 @@
 	u8 tun_l4_proto;
 };
 
+static inline void mlx5e_eseg_swp_offsets_add_vlan(struct mlx5_wqe_eth_seg *eseg)
+{
+	/* SWP offsets are in 2-bytes words */
+	eseg->swp_outer_l3_offset += VLAN_HLEN / 2;
+	eseg->swp_outer_l4_offset += VLAN_HLEN / 2;
+	eseg->swp_inner_l3_offset += VLAN_HLEN / 2;
+	eseg->swp_inner_l4_offset += VLAN_HLEN / 2;
+}
+
 static inline void
 mlx5e_set_eseg_swp(struct sk_buff *skb, struct mlx5_wqe_eth_seg *eseg,
 		   struct mlx5e_swp_spec *swp_spec)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h
@@ -75,12 +75,18 @@
 static inline void mlx5e_xdp_tx_enable(struct mlx5e_priv *priv)
 {
 	set_bit(MLX5E_STATE_XDP_TX_ENABLED, &priv->state);
+
+	if (priv->channels.params.xdp_prog)
+		set_bit(MLX5E_STATE_XDP_ACTIVE, &priv->state);
 }
 
 static inline void mlx5e_xdp_tx_disable(struct mlx5e_priv *priv)
 {
+	if (priv->channels.params.xdp_prog)
+		clear_bit(MLX5E_STATE_XDP_ACTIVE, &priv->state);
+
 	clear_bit(MLX5E_STATE_XDP_TX_ENABLED, &priv->state);
-	/* let other device's napi(s) see our new state */
+	/* Let other device's napi(s) and XSK wakeups see our new state. */
 	synchronize_rcu();
 }
 
@@ -89,19 +95,9 @@
 	return test_bit(MLX5E_STATE_XDP_TX_ENABLED, &priv->state);
 }
 
-static inline void mlx5e_xdp_set_open(struct mlx5e_priv *priv)
-{
-	set_bit(MLX5E_STATE_XDP_OPEN, &priv->state);
-}
-
-static inline void mlx5e_xdp_set_closed(struct mlx5e_priv *priv)
-{
-	clear_bit(MLX5E_STATE_XDP_OPEN, &priv->state);
-}
-
-static inline bool mlx5e_xdp_is_open(struct mlx5e_priv *priv)
+static inline bool mlx5e_xdp_is_active(struct mlx5e_priv *priv)
 {
-	return test_bit(MLX5E_STATE_XDP_OPEN, &priv->state);
+	return test_bit(MLX5E_STATE_XDP_ACTIVE, &priv->state);
 }
 
 static inline void mlx5e_xmit_xdp_doorbell(struct mlx5e_xdpsq *sq)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
@@ -144,6 +144,7 @@
 {
 	clear_bit(MLX5E_CHANNEL_STATE_XSK, c->state);
 	napi_synchronize(&c->napi);
+	synchronize_rcu(); /* Sync with the XSK wakeup. */
 
 	mlx5e_close_rq(&c->xskrq);
 	mlx5e_close_cq(&c->xskrq.cq);
@@ -151,6 +152,10 @@
 	mlx5e_close_cq(&c->xskicosq.cq);
 	mlx5e_close_xdpsq(&c->xsksq);
 	mlx5e_close_cq(&c->xsksq.cq);
+
+	memset(&c->xskrq, 0, sizeof(c->xskrq));
+	memset(&c->xsksq, 0, sizeof(c->xsksq));
+	memset(&c->xskicosq, 0, sizeof(c->xskicosq));
 }
 
 void mlx5e_activate_xsk(struct mlx5e_channel *c)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c
@@ -14,7 +14,7 @@
 	struct mlx5e_channel *c;
 	u16 ix;
 
-	if (unlikely(!mlx5e_xdp_is_open(priv)))
+	if (unlikely(!mlx5e_xdp_is_active(priv)))
 		return -ENETDOWN;
 
 	if (unlikely(!mlx5e_qid_get_ch_if_in_group(params, qid, MLX5E_RQ_GROUP_XSK, &ix)))
@@ -33,6 +33,9 @@
 		if (unlikely(!test_bit(MLX5E_SQ_STATE_ENABLED, &c->xskicosq.state)))
 			return 0;
 
+		if (test_and_set_bit(MLX5E_SQ_STATE_PENDING_XSK_TX, &c->xskicosq.state))
+			return 0;
+
 		spin_lock(&c->xskicosq_lock);
 		mlx5e_trigger_irq(&c->xskicosq);
 		spin_unlock(&c->xskicosq_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h
@@ -48,7 +48,7 @@
 }
 
 static inline void
-mlx5e_tx_tunnel_accel(struct sk_buff *skb, struct mlx5_wqe_eth_seg *eseg)
+mlx5e_tx_tunnel_accel(struct sk_buff *skb, struct mlx5_wqe_eth_seg *eseg, u16 ihs)
 {
 	struct mlx5e_swp_spec swp_spec = {};
 	unsigned int offset = 0;
@@ -82,6 +82,8 @@
 	}
 
 	mlx5e_set_eseg_swp(skb, eseg, &swp_spec);
+	if (skb_vlan_tag_present(skb) && ihs)
+		mlx5e_eseg_swp_offsets_add_vlan(eseg);
 }
 
 #else
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
@@ -69,8 +69,8 @@
 	struct mlx5e_ktls_offload_context_tx *tx_priv =
 		mlx5e_get_ktls_tx_priv_ctx(tls_ctx);
 
-	mlx5_ktls_destroy_key(priv->mdev, tx_priv->key_id);
 	mlx5e_destroy_tis(priv->mdev, tx_priv->tisn);
+	mlx5_ktls_destroy_key(priv->mdev, tx_priv->key_id);
 	kvfree(tx_priv);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h
@@ -38,8 +38,8 @@
 
 enum {
 	MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_START     = 0,
-	MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_SEARCHING = 1,
-	MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_TRACKING  = 2,
+	MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_TRACKING  = 1,
+	MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_SEARCHING = 2,
 };
 
 struct mlx5e_ktls_offload_context_tx {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
@@ -180,7 +180,7 @@
 
 struct tx_sync_info {
 	u64 rcd_sn;
-	s32 sync_len;
+	u32 sync_len;
 	int nr_frags;
 	skb_frag_t frags[MAX_SKB_FRAGS];
 };
@@ -193,13 +193,14 @@
 
 static enum mlx5e_ktls_sync_retval
 tx_sync_info_get(struct mlx5e_ktls_offload_context_tx *priv_tx,
-		 u32 tcp_seq, struct tx_sync_info *info)
+		 u32 tcp_seq, int datalen, struct tx_sync_info *info)
 {
 	struct tls_offload_context_tx *tx_ctx = priv_tx->tx_ctx;
 	enum mlx5e_ktls_sync_retval ret = MLX5E_KTLS_SYNC_DONE;
 	struct tls_record_info *record;
 	int remaining, i = 0;
 	unsigned long flags;
+	bool ends_before;
 
 	spin_lock_irqsave(&tx_ctx->lock, flags);
 	record = tls_get_record(tx_ctx, tcp_seq, &info->rcd_sn);
@@ -209,9 +210,21 @@
 		goto out;
 	}
 
-	if (unlikely(tcp_seq < tls_record_start_seq(record))) {
-		ret = tls_record_is_start_marker(record) ?
-			MLX5E_KTLS_SYNC_SKIP_NO_DATA : MLX5E_KTLS_SYNC_FAIL;
+	/* There are the following cases:
+	 * 1. packet ends before start marker: bypass offload.
+	 * 2. packet starts before start marker and ends after it: drop,
+	 *    not supported, breaks contract with kernel.
+	 * 3. packet ends before tls record info starts: drop,
+	 *    this packet was already acknowledged and its record info
+	 *    was released.
+	 */
+	ends_before = before(tcp_seq + datalen - 1, tls_record_start_seq(record));
+
+	if (unlikely(tls_record_is_start_marker(record))) {
+		ret = ends_before ? MLX5E_KTLS_SYNC_SKIP_NO_DATA : MLX5E_KTLS_SYNC_FAIL;
+		goto out;
+	} else if (ends_before) {
+		ret = MLX5E_KTLS_SYNC_FAIL;
 		goto out;
 	}
 
@@ -337,7 +350,7 @@
 	u8 num_wqebbs;
 	int i = 0;
 
-	ret = tx_sync_info_get(priv_tx, seq, &info);
+	ret = tx_sync_info_get(priv_tx, seq, datalen, &info);
 	if (unlikely(ret != MLX5E_KTLS_SYNC_DONE)) {
 		if (ret == MLX5E_KTLS_SYNC_SKIP_NO_DATA) {
 			stats->tls_skip_no_sync_data++;
@@ -351,14 +364,6 @@
 		goto err_out;
 	}
 
-	if (unlikely(info.sync_len < 0)) {
-		if (likely(datalen <= -info.sync_len))
-			return MLX5E_KTLS_SYNC_DONE;
-
-		stats->tls_drop_bypass_req++;
-		goto err_out;
-	}
-
 	stats->tls_ooo++;
 
 	tx_post_resync_params(sq, priv_tx, info.rcd_sn);
@@ -378,8 +383,6 @@
 	if (unlikely(contig_wqebbs_room < num_wqebbs))
 		mlx5e_fill_sq_frag_edge(sq, wq, pi, contig_wqebbs_room);
 
-	tx_post_resync_params(sq, priv_tx, info.rcd_sn);
-
 	for (; i < info.nr_frags; i++) {
 		unsigned int orig_fsz, frag_offset = 0, n = 0;
 		skb_frag_t *f = &info.frags[i];
@@ -455,12 +458,18 @@
 		enum mlx5e_ktls_sync_retval ret =
 			mlx5e_ktls_tx_handle_ooo(priv_tx, sq, datalen, seq);
 
-		if (likely(ret == MLX5E_KTLS_SYNC_DONE))
+		switch (ret) {
+		case MLX5E_KTLS_SYNC_DONE:
 			*wqe = mlx5e_sq_fetch_wqe(sq, sizeof(**wqe), pi);
-		else if (ret == MLX5E_KTLS_SYNC_FAIL)
+			break;
+		case MLX5E_KTLS_SYNC_SKIP_NO_DATA:
+			if (likely(!skb->decrypted))
+				goto out;
+			WARN_ON_ONCE(1);
+			/* fall-through */
+		default: /* MLX5E_KTLS_SYNC_FAIL */
 			goto err_out;
-		else /* ret == MLX5E_KTLS_SYNC_SKIP_NO_DATA */
-			goto out;
+		}
 	}
 
 	priv_tx->expected_seq = seq + datalen;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c
@@ -269,7 +269,7 @@
 	int datalen;
 	u32 skb_seq;
 
-	if (MLX5_CAP_GEN(sq->channel->mdev, tls)) {
+	if (MLX5_CAP_GEN(sq->channel->mdev, tls_tx)) {
 		skb = mlx5e_ktls_handle_tx_skb(netdev, sq, skb, wqe, pi);
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_stats.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_stats.c
@@ -35,7 +35,6 @@
 #include <net/sock.h>
 
 #include "en.h"
-#include "accel/tls.h"
 #include "fpga/sdk.h"
 #include "en_accel/tls.h"
 
@@ -51,9 +50,14 @@
 
 #define NUM_TLS_SW_COUNTERS ARRAY_SIZE(mlx5e_tls_sw_stats_desc)
 
+static bool is_tls_atomic_stats(struct mlx5e_priv *priv)
+{
+	return priv->tls && !mlx5_accel_is_ktls_device(priv->mdev);
+}
+
 int mlx5e_tls_get_count(struct mlx5e_priv *priv)
 {
-	if (!priv->tls)
+	if (!is_tls_atomic_stats(priv))
 		return 0;
 
 	return NUM_TLS_SW_COUNTERS;
@@ -63,7 +67,7 @@
 {
 	unsigned int i, idx = 0;
 
-	if (!priv->tls)
+	if (!is_tls_atomic_stats(priv))
 		return 0;
 
 	for (i = 0; i < NUM_TLS_SW_COUNTERS; i++)
@@ -77,7 +81,7 @@
 {
 	int i, idx = 0;
 
-	if (!priv->tls)
+	if (!is_tls_atomic_stats(priv))
 		return 0;
 
 	for (i = 0; i < NUM_TLS_SW_COUNTERS; i++)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -200,7 +200,7 @@
 					struct ptys2ethtool_config **arr,
 					u32 *size)
 {
-	bool ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	bool ext = mlx5e_ptys_ext_supported(mdev);
 
 	*arr = ext ? ptys2ext_ethtool_table : ptys2legacy_ethtool_table;
 	*size = ext ? ARRAY_SIZE(ptys2ext_ethtool_table) :
@@ -445,9 +445,7 @@
 
 	if (!test_bit(MLX5E_STATE_OPENED, &priv->state)) {
 		*cur_params = new_channels.params;
-		if (!netif_is_rxfh_configured(priv->netdev))
-			mlx5e_build_default_indir_rqt(priv->rss_params.indirection_rqt,
-						      MLX5E_INDIR_RQT_SIZE, count);
+		mlx5e_num_channels_changed(priv);
 		goto out;
 	}
 
@@ -455,12 +453,8 @@
 	if (arfs_enabled)
 		mlx5e_arfs_disable(priv);
 
-	if (!netif_is_rxfh_configured(priv->netdev))
-		mlx5e_build_default_indir_rqt(priv->rss_params.indirection_rqt,
-					      MLX5E_INDIR_RQT_SIZE, count);
-
 	/* Switch to new channels, set new parameters and close old ones */
-	err = mlx5e_safe_switch_channels(priv, &new_channels, NULL);
+	err = mlx5e_safe_switch_channels(priv, &new_channels, mlx5e_num_channels_changed);
 
 	if (arfs_enabled) {
 		int err2 = mlx5e_arfs_enable(priv);
@@ -877,7 +871,7 @@
 			       struct ethtool_link_ksettings *link_ksettings)
 {
 	unsigned long *lp_advertising = link_ksettings->link_modes.lp_advertising;
-	bool ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	bool ext = mlx5e_ptys_ext_supported(mdev);
 
 	ptys2ethtool_adver_link(lp_advertising, eth_proto_lp, ext);
 }
@@ -906,7 +900,7 @@
 			   __func__, err);
 		goto err_query_regs;
 	}
-	ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	ext = !!MLX5_GET_ETH_PROTO(ptys_reg, out, true, eth_proto_capability);
 	eth_proto_cap    = MLX5_GET_ETH_PROTO(ptys_reg, out, ext,
 					      eth_proto_capability);
 	eth_proto_admin  = MLX5_GET_ETH_PROTO(ptys_reg, out, ext,
@@ -982,6 +976,22 @@
 	return mlx5e_ethtool_get_link_ksettings(priv, link_ksettings);
 }
 
+static int mlx5e_speed_validate(struct net_device *netdev, bool ext,
+				const unsigned long link_modes, u8 autoneg)
+{
+	/* Extended link-mode has no speed limitations. */
+	if (ext)
+		return 0;
+
+	if ((link_modes & MLX5E_PROT_MASK(MLX5E_56GBASE_R4)) &&
+	    autoneg != AUTONEG_ENABLE) {
+		netdev_err(netdev, "%s: 56G link speed requires autoneg enabled\n",
+			   __func__);
+		return -EINVAL;
+	}
+	return 0;
+}
+
 static u32 mlx5e_ethtool2ptys_adver_link(const unsigned long *link_modes)
 {
 	u32 i, ptys_modes = 0;
@@ -1027,18 +1037,11 @@
 	return bitmap_intersects(modes, adver, __ETHTOOL_LINK_MODE_MASK_NBITS);
 }
 
-static bool ext_speed_requested(u32 speed)
-{
-#define MLX5E_MAX_PTYS_LEGACY_SPEED 100000
-	return !!(speed > MLX5E_MAX_PTYS_LEGACY_SPEED);
-}
-
-static bool ext_requested(u8 autoneg, const unsigned long *adver, u32 speed)
+static bool ext_requested(u8 autoneg, const unsigned long *adver, bool ext_supported)
 {
 	bool ext_link_mode = ext_link_mode_requested(adver);
-	bool ext_speed = ext_speed_requested(speed);
 
-	return  autoneg == AUTONEG_ENABLE ? ext_link_mode : ext_speed;
+	return  autoneg == AUTONEG_ENABLE ? ext_link_mode : ext_supported;
 }
 
 int mlx5e_ethtool_set_link_ksettings(struct mlx5e_priv *priv,
@@ -1065,8 +1068,8 @@
 	autoneg = link_ksettings->base.autoneg;
 	speed = link_ksettings->base.speed;
 
-	ext = ext_requested(autoneg, adver, speed),
-	ext_supported = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet);
+	ext_supported = mlx5e_ptys_ext_supported(mdev);
+	ext = ext_requested(autoneg, adver, ext_supported);
 	if (!ext_supported && ext)
 		return -EOPNOTSUPP;
 
@@ -1081,13 +1084,9 @@
 	link_modes = autoneg == AUTONEG_ENABLE ? ethtool2ptys_adver_func(adver) :
 		mlx5e_port_speed2linkmodes(mdev, speed, !ext);
 
-	if ((link_modes & MLX5E_PROT_MASK(MLX5E_56GBASE_R4)) &&
-	    autoneg != AUTONEG_ENABLE) {
-		netdev_err(priv->netdev, "%s: 56G link speed requires autoneg enabled\n",
-			   __func__);
-		err = -EINVAL;
+	err = mlx5e_speed_validate(priv->netdev, ext, link_modes, autoneg);
+	if (err)
 		goto out;
-	}
 
 	link_modes = link_modes & eproto.cap;
 	if (!link_modes) {
@@ -1561,6 +1560,10 @@
 	int mode;
 	int err;
 
+	if (bitmap_weight((unsigned long *)&fecparam->fec,
+			  ETHTOOL_FEC_BASER_BIT + 1) > 1)
+		return -EOPNOTSUPP;
+
 	for (mode = 0; mode < ARRAY_SIZE(pplm_fec_2_ethtool); mode++) {
 		if (!(pplm_fec_2_ethtool[mode] & fecparam->fec))
 			continue;
@@ -1643,7 +1646,7 @@
 		break;
 	case MLX5_MODULE_ID_SFP:
 		modinfo->type       = ETH_MODULE_SFF_8472;
-		modinfo->eeprom_len = MLX5_EEPROM_PAGE_LENGTH;
+		modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN;
 		break;
 	default:
 		netdev_err(priv->netdev, "%s: cable type not recognized:0x%x\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
@@ -217,6 +217,9 @@
 		break;
 	}
 
+	if (WARN_ONCE(*rule_p, "VLAN rule already exists type %d", rule_type))
+		return 0;
+
 	*rule_p = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1);
 
 	if (IS_ERR(*rule_p)) {
@@ -397,8 +400,7 @@
 	for_each_set_bit(i, priv->fs.vlan.active_svlans, VLAN_N_VID)
 		mlx5e_add_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_STAG_VID, i);
 
-	if (priv->fs.vlan.cvlan_filter_disabled &&
-	    !(priv->netdev->flags & IFF_PROMISC))
+	if (priv->fs.vlan.cvlan_filter_disabled)
 		mlx5e_add_any_vid_rules(priv);
 }
 
@@ -415,8 +417,12 @@
 	for_each_set_bit(i, priv->fs.vlan.active_svlans, VLAN_N_VID)
 		mlx5e_del_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_STAG_VID, i);
 
-	if (priv->fs.vlan.cvlan_filter_disabled &&
-	    !(priv->netdev->flags & IFF_PROMISC))
+	WARN_ON_ONCE(!(test_bit(MLX5E_STATE_DESTROYING, &priv->state)));
+
+	/* must be called after DESTROY bit is set and
+	 * set_rx_mode is called and flushed
+	 */
+	if (priv->fs.vlan.cvlan_filter_disabled)
 		mlx5e_del_any_vid_rules(priv);
 }
 
@@ -904,22 +910,6 @@
 	return err;
 }
 
-#define MLX5E_TTC_NUM_GROUPS	3
-#define MLX5E_TTC_GROUP1_SIZE	(BIT(3) + MLX5E_NUM_TUNNEL_TT)
-#define MLX5E_TTC_GROUP2_SIZE	 BIT(1)
-#define MLX5E_TTC_GROUP3_SIZE	 BIT(0)
-#define MLX5E_TTC_TABLE_SIZE	(MLX5E_TTC_GROUP1_SIZE +\
-				 MLX5E_TTC_GROUP2_SIZE +\
-				 MLX5E_TTC_GROUP3_SIZE)
-
-#define MLX5E_INNER_TTC_NUM_GROUPS	3
-#define MLX5E_INNER_TTC_GROUP1_SIZE	BIT(3)
-#define MLX5E_INNER_TTC_GROUP2_SIZE	BIT(1)
-#define MLX5E_INNER_TTC_GROUP3_SIZE	BIT(0)
-#define MLX5E_INNER_TTC_TABLE_SIZE	(MLX5E_INNER_TTC_GROUP1_SIZE +\
-					 MLX5E_INNER_TTC_GROUP2_SIZE +\
-					 MLX5E_INNER_TTC_GROUP3_SIZE)
-
 static int mlx5e_create_ttc_table_groups(struct mlx5e_ttc_table *ttc,
 					 bool use_ipv)
 {
@@ -937,6 +927,7 @@
 	in = kvzalloc(inlen, GFP_KERNEL);
 	if (!in) {
 		kfree(ft->g);
+		ft->g = NULL;
 		return -ENOMEM;
 	}
 
@@ -1077,6 +1068,7 @@
 	in = kvzalloc(inlen, GFP_KERNEL);
 	if (!in) {
 		kfree(ft->g);
+		ft->g = NULL;
 		return -ENOMEM;
 	}
 
@@ -1356,6 +1348,7 @@
 	ft->g[ft->num_groups] = NULL;
 	mlx5e_destroy_groups(ft);
 	kvfree(in);
+	kfree(ft->g);
 
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -266,12 +266,17 @@
 
 static int mlx5e_create_umr_mkey(struct mlx5_core_dev *mdev,
 				 u64 npages, u8 page_shift,
-				 struct mlx5_core_mkey *umr_mkey)
+				 struct mlx5_core_mkey *umr_mkey,
+				 dma_addr_t filler_addr)
 {
-	int inlen = MLX5_ST_SZ_BYTES(create_mkey_in);
+	struct mlx5_mtt *mtt;
+	int inlen;
 	void *mkc;
 	u32 *in;
 	int err;
+	int i;
+
+	inlen = MLX5_ST_SZ_BYTES(create_mkey_in) + sizeof(*mtt) * npages;
 
 	in = kvzalloc(inlen, GFP_KERNEL);
 	if (!in)
@@ -291,6 +296,18 @@
 	MLX5_SET(mkc, mkc, translations_octword_size,
 		 MLX5_MTT_OCTW(npages));
 	MLX5_SET(mkc, mkc, log_page_size, page_shift);
+	MLX5_SET(create_mkey_in, in, translations_octword_actual_size,
+		 MLX5_MTT_OCTW(npages));
+
+	/* Initialize the mkey with all MTTs pointing to a default
+	 * page (filler_addr). When the channels are activated, UMR
+	 * WQEs will redirect the RX WQEs to the actual memory from
+	 * the RQ's pool, while the gaps (wqe_overflow) remain mapped
+	 * to the default page.
+	 */
+	mtt = MLX5_ADDR_OF(create_mkey_in, in, klm_pas_mtt);
+	for (i = 0 ; i < npages ; i++)
+		mtt[i].ptag = cpu_to_be64(filler_addr);
 
 	err = mlx5_core_create_mkey(mdev, umr_mkey, in, inlen);
 
@@ -302,7 +319,8 @@
 {
 	u64 num_mtts = MLX5E_REQUIRED_MTTS(mlx5_wq_ll_get_size(&rq->mpwqe.wq));
 
-	return mlx5e_create_umr_mkey(mdev, num_mtts, PAGE_SHIFT, &rq->umr_mkey);
+	return mlx5e_create_umr_mkey(mdev, num_mtts, PAGE_SHIFT, &rq->umr_mkey,
+				     rq->wqe_overflow.addr);
 }
 
 static inline u64 mlx5e_get_mpwqe_offset(struct mlx5e_rq *rq, u16 wqe_ix)
@@ -370,6 +388,28 @@
 	mlx5e_reporter_rq_cqe_err(rq);
 }
 
+static int mlx5e_alloc_mpwqe_rq_drop_page(struct mlx5e_rq *rq)
+{
+	rq->wqe_overflow.page = alloc_page(GFP_KERNEL);
+	if (!rq->wqe_overflow.page)
+		return -ENOMEM;
+
+	rq->wqe_overflow.addr = dma_map_page(rq->pdev, rq->wqe_overflow.page, 0,
+					     PAGE_SIZE, rq->buff.map_dir);
+	if (dma_mapping_error(rq->pdev, rq->wqe_overflow.addr)) {
+		__free_page(rq->wqe_overflow.page);
+		return -ENOMEM;
+	}
+	return 0;
+}
+
+static void mlx5e_free_mpwqe_rq_drop_page(struct mlx5e_rq *rq)
+{
+	 dma_unmap_page(rq->pdev, rq->wqe_overflow.addr, PAGE_SIZE,
+			rq->buff.map_dir);
+	 __free_page(rq->wqe_overflow.page);
+}
+
 static int mlx5e_alloc_rq(struct mlx5e_channel *c,
 			  struct mlx5e_params *params,
 			  struct mlx5e_xsk_param *xsk,
@@ -432,7 +472,11 @@
 		err = mlx5_wq_ll_create(mdev, &rqp->wq, rqc_wq, &rq->mpwqe.wq,
 					&rq->wq_ctrl);
 		if (err)
-			return err;
+			goto err_rq_wq_destroy;
+
+		err = mlx5e_alloc_mpwqe_rq_drop_page(rq);
+		if (err)
+			goto err_rq_wq_destroy;
 
 		rq->mpwqe.wq.db = &rq->mpwqe.wq.db[MLX5_RCV_DBR];
 
@@ -474,7 +518,7 @@
 
 		err = mlx5e_create_rq_umr_mkey(mdev, rq);
 		if (err)
-			goto err_rq_wq_destroy;
+			goto err_rq_drop_page;
 		rq->mkey_be = cpu_to_be32(rq->umr_mkey.key);
 
 		err = mlx5e_rq_alloc_mpwqe_info(rq, c);
@@ -485,7 +529,7 @@
 		err = mlx5_wq_cyc_create(mdev, &rqp->wq, rqc_wq, &rq->wqe.wq,
 					 &rq->wq_ctrl);
 		if (err)
-			return err;
+			goto err_rq_wq_destroy;
 
 		rq->wqe.wq.db = &rq->wqe.wq.db[MLX5_RCV_DBR];
 
@@ -622,6 +666,8 @@
 	case MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ:
 		kvfree(rq->mpwqe.info);
 		mlx5_core_destroy_mkey(mdev, &rq->umr_mkey);
+err_rq_drop_page:
+		mlx5e_free_mpwqe_rq_drop_page(rq);
 		break;
 	default: /* MLX5_WQ_TYPE_CYCLIC */
 		kvfree(rq->wqe.frags);
@@ -649,6 +695,7 @@
 	case MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ:
 		kvfree(rq->mpwqe.info);
 		mlx5_core_destroy_mkey(rq->mdev, &rq->umr_mkey);
+		mlx5e_free_mpwqe_rq_drop_page(rq);
 		break;
 	default: /* MLX5_WQ_TYPE_CYCLIC */
 		kvfree(rq->wqe.frags);
@@ -723,6 +770,9 @@
 	if (!in)
 		return -ENOMEM;
 
+	if (curr_state == MLX5_RQC_STATE_RST && next_state == MLX5_RQC_STATE_RDY)
+		mlx5e_rqwq_reset(rq);
+
 	rqc = MLX5_ADDR_OF(modify_rq_in, in, ctx);
 
 	MLX5_SET(modify_rq_in, in, rq_state, curr_state);
@@ -821,6 +871,29 @@
 	return -ETIMEDOUT;
 }
 
+void mlx5e_free_rx_in_progress_descs(struct mlx5e_rq *rq)
+{
+	struct mlx5_wq_ll *wq;
+	u16 head;
+	int i;
+
+	if (rq->wq_type != MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ)
+		return;
+
+	wq = &rq->mpwqe.wq;
+	head = wq->head;
+
+	/* Outstanding UMR WQEs (in progress) start at wq->head */
+	for (i = 0; i < rq->mpwqe.umr_in_progress; i++) {
+		rq->dealloc_wqe(rq, head);
+		head = mlx5_wq_ll_get_wqe_next_ix(wq, head);
+	}
+
+	rq->mpwqe.actual_wq_head = wq->head;
+	rq->mpwqe.umr_in_progress = 0;
+	rq->mpwqe.umr_completed = 0;
+}
+
 void mlx5e_free_rx_descs(struct mlx5e_rq *rq)
 {
 	__be16 wqe_ix_be;
@@ -828,14 +901,8 @@
 
 	if (rq->wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
 		struct mlx5_wq_ll *wq = &rq->mpwqe.wq;
-		u16 head = wq->head;
-		int i;
 
-		/* Outstanding UMR WQEs (in progress) start at wq->head */
-		for (i = 0; i < rq->mpwqe.umr_in_progress; i++) {
-			rq->dealloc_wqe(rq, head);
-			head = mlx5_wq_ll_get_wqe_next_ix(wq, head);
-		}
+		mlx5e_free_rx_in_progress_descs(rq);
 
 		while (!mlx5_wq_ll_is_empty(wq)) {
 			struct mlx5e_rx_wqe_ll *wqe;
@@ -1693,11 +1760,10 @@
 			  struct mlx5e_params *params,
 			  struct mlx5e_channel_param *cparam)
 {
-	struct mlx5e_priv *priv = c->priv;
 	int err, tc;
 
 	for (tc = 0; tc < params->num_tc; tc++) {
-		int txq_ix = c->ix + tc * priv->max_nch;
+		int txq_ix = c->ix + tc * params->num_channels;
 
 		err = mlx5e_open_txqsq(c, c->priv->tisn[c->lag_port][tc], txq_ix,
 				       params, &cparam->sq, &c->sq[tc], tc);
@@ -2739,7 +2805,8 @@
 		mlx5_core_modify_tir(mdev, priv->indir_tir[tt].tirn, in, inlen);
 	}
 
-	if (!mlx5e_tunnel_inner_ft_supported(priv->mdev))
+	/* Verify inner tirs resources allocated */
+	if (!priv->inner_indir_tir[0].tirn)
 		return;
 
 	for (tt = 0; tt < MLX5E_NUM_INDIR_TIRS; tt++) {
@@ -2878,41 +2945,52 @@
 		netdev_set_tc_queue(netdev, tc, nch, 0);
 }
 
-static void mlx5e_build_tc2txq_maps(struct mlx5e_priv *priv)
+static void mlx5e_update_netdev_queues(struct mlx5e_priv *priv)
 {
-	int i, tc;
+	int num_txqs = priv->channels.num * priv->channels.params.num_tc;
+	int num_rxqs = priv->channels.num * priv->profile->rq_groups;
+	struct net_device *netdev = priv->netdev;
 
-	for (i = 0; i < priv->max_nch; i++)
-		for (tc = 0; tc < priv->profile->max_tc; tc++)
-			priv->channel_tc2txq[i][tc] = i + tc * priv->max_nch;
+	mlx5e_netdev_set_tcs(netdev);
+	netif_set_real_num_tx_queues(netdev, num_txqs);
+	netif_set_real_num_rx_queues(netdev, num_rxqs);
 }
 
-static void mlx5e_build_tx2sq_maps(struct mlx5e_priv *priv)
+int mlx5e_num_channels_changed(struct mlx5e_priv *priv)
 {
-	struct mlx5e_channel *c;
-	struct mlx5e_txqsq *sq;
-	int i, tc;
+	u16 count = priv->channels.params.num_channels;
+
+	if (!netif_is_rxfh_configured(priv->netdev))
+		mlx5e_build_default_indir_rqt(priv->rss_params.indirection_rqt,
+					      MLX5E_INDIR_RQT_SIZE, count);
+
+	return 0;
+}
+
+static void mlx5e_build_txq_maps(struct mlx5e_priv *priv)
+{
+	int i, ch;
+
+	ch = priv->channels.num;
+
+	for (i = 0; i < ch; i++) {
+		int tc;
+
+		for (tc = 0; tc < priv->channels.params.num_tc; tc++) {
+			struct mlx5e_channel *c = priv->channels.c[i];
+			struct mlx5e_txqsq *sq = &c->sq[tc];
 
-	for (i = 0; i < priv->channels.num; i++) {
-		c = priv->channels.c[i];
-		for (tc = 0; tc < c->num_tc; tc++) {
-			sq = &c->sq[tc];
 			priv->txq2sq[sq->txq_ix] = sq;
+			priv->channel_tc2realtxq[i][tc] = i + tc * ch;
 		}
 	}
 }
 
 void mlx5e_activate_priv_channels(struct mlx5e_priv *priv)
 {
-	int num_txqs = priv->channels.num * priv->channels.params.num_tc;
-	int num_rxqs = priv->channels.num * priv->profile->rq_groups;
-	struct net_device *netdev = priv->netdev;
-
-	mlx5e_netdev_set_tcs(netdev);
-	netif_set_real_num_tx_queues(netdev, num_txqs);
-	netif_set_real_num_rx_queues(netdev, num_rxqs);
+	mlx5e_update_netdev_queues(priv);
 
-	mlx5e_build_tx2sq_maps(priv);
+	mlx5e_build_txq_maps(priv);
 	mlx5e_activate_channels(&priv->channels);
 	mlx5e_xdp_tx_enable(priv);
 	netif_tx_start_all_queues(priv->netdev);
@@ -2946,7 +3024,7 @@
 
 static void mlx5e_switch_priv_channels(struct mlx5e_priv *priv,
 				       struct mlx5e_channels *new_chs,
-				       mlx5e_fp_hw_modify hw_modify)
+				       mlx5e_fp_preactivate preactivate)
 {
 	struct net_device *netdev = priv->netdev;
 	int new_num_txqs;
@@ -2965,9 +3043,11 @@
 
 	priv->channels = *new_chs;
 
-	/* New channels are ready to roll, modify HW settings if needed */
-	if (hw_modify)
-		hw_modify(priv);
+	/* New channels are ready to roll, call the preactivate hook if needed
+	 * to modify HW settings or update kernel parameters.
+	 */
+	if (preactivate)
+		preactivate(priv);
 
 	priv->profile->update_rx(priv);
 	mlx5e_activate_priv_channels(priv);
@@ -2979,7 +3059,7 @@
 
 int mlx5e_safe_switch_channels(struct mlx5e_priv *priv,
 			       struct mlx5e_channels *new_chs,
-			       mlx5e_fp_hw_modify hw_modify)
+			       mlx5e_fp_preactivate preactivate)
 {
 	int err;
 
@@ -2987,7 +3067,7 @@
 	if (err)
 		return err;
 
-	mlx5e_switch_priv_channels(priv, new_chs, hw_modify);
+	mlx5e_switch_priv_channels(priv, new_chs, preactivate);
 	return 0;
 }
 
@@ -3005,15 +3085,32 @@
 	priv->tstamp.rx_filter = HWTSTAMP_FILTER_NONE;
 }
 
+static void mlx5e_modify_admin_state(struct mlx5_core_dev *mdev,
+				     enum mlx5_port_status state)
+{
+	struct mlx5_eswitch *esw = mdev->priv.eswitch;
+	int vport_admin_state;
+
+	mlx5_set_port_admin_status(mdev, state);
+
+	if (!MLX5_ESWITCH_MANAGER(mdev) || mlx5_eswitch_mode(esw) == MLX5_ESWITCH_OFFLOADS ||
+	    !MLX5_CAP_GEN(mdev, uplink_follow))
+		return;
+
+	if (state == MLX5_PORT_UP)
+		vport_admin_state = MLX5_VPORT_ADMIN_STATE_AUTO;
+	else
+		vport_admin_state = MLX5_VPORT_ADMIN_STATE_DOWN;
+
+	mlx5_eswitch_set_vport_state(esw, MLX5_VPORT_UPLINK, vport_admin_state);
+}
+
 int mlx5e_open_locked(struct net_device *netdev)
 {
 	struct mlx5e_priv *priv = netdev_priv(netdev);
-	bool is_xdp = priv->channels.params.xdp_prog;
 	int err;
 
 	set_bit(MLX5E_STATE_OPENED, &priv->state);
-	if (is_xdp)
-		mlx5e_xdp_set_open(priv);
 
 	err = mlx5e_open_channels(priv, &priv->channels);
 	if (err)
@@ -3028,8 +3125,6 @@
 	return 0;
 
 err_clear_state_opened_flag:
-	if (is_xdp)
-		mlx5e_xdp_set_closed(priv);
 	clear_bit(MLX5E_STATE_OPENED, &priv->state);
 	return err;
 }
@@ -3042,7 +3137,7 @@
 	mutex_lock(&priv->state_lock);
 	err = mlx5e_open_locked(netdev);
 	if (!err)
-		mlx5_set_port_admin_status(priv->mdev, MLX5_PORT_UP);
+		mlx5e_modify_admin_state(priv->mdev, MLX5_PORT_UP);
 	mutex_unlock(&priv->state_lock);
 
 	if (mlx5_vxlan_allowed(priv->mdev->vxlan))
@@ -3061,8 +3156,6 @@
 	if (!test_bit(MLX5E_STATE_OPENED, &priv->state))
 		return 0;
 
-	if (priv->channels.params.xdp_prog)
-		mlx5e_xdp_set_closed(priv);
 	clear_bit(MLX5E_STATE_OPENED, &priv->state);
 
 	netif_carrier_off(priv->netdev);
@@ -3081,7 +3174,7 @@
 		return -ENODEV;
 
 	mutex_lock(&priv->state_lock);
-	mlx5_set_port_admin_status(priv->mdev, MLX5_PORT_DOWN);
+	mlx5e_modify_admin_state(priv->mdev, MLX5_PORT_DOWN);
 	err = mlx5e_close_locked(netdev);
 	mutex_unlock(&priv->state_lock);
 
@@ -3380,14 +3473,15 @@
 	return err;
 }
 
-void mlx5e_destroy_indirect_tirs(struct mlx5e_priv *priv, bool inner_ttc)
+void mlx5e_destroy_indirect_tirs(struct mlx5e_priv *priv)
 {
 	int i;
 
 	for (i = 0; i < MLX5E_NUM_INDIR_TIRS; i++)
 		mlx5e_destroy_tir(priv->mdev, &priv->indir_tir[i]);
 
-	if (!inner_ttc || !mlx5e_tunnel_inner_ft_supported(priv->mdev))
+	/* Verify inner tirs resources allocated */
+	if (!priv->inner_indir_tir[0].tirn)
 		return;
 
 	for (i = 0; i < MLX5E_NUM_INDIR_TIRS; i++)
@@ -3536,6 +3630,7 @@
 
 		s->rx_packets   += rq_stats->packets + xskrq_stats->packets;
 		s->rx_bytes     += rq_stats->bytes + xskrq_stats->bytes;
+		s->multicast    += rq_stats->mcast_packets + xskrq_stats->mcast_packets;
 
 		for (j = 0; j < priv->max_opened_tc; j++) {
 			struct mlx5e_sq_stats *sq_stats = &channel_stats->sq[j];
@@ -3551,10 +3646,14 @@
 mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 {
 	struct mlx5e_priv *priv = netdev_priv(dev);
-	struct mlx5e_vport_stats *vstats = &priv->stats.vport;
 	struct mlx5e_pport_stats *pstats = &priv->stats.pport;
 
-	if (!mlx5e_monitor_counter_supported(priv)) {
+	/* In switchdev mode, monitor counters doesn't monitor
+	 * rx/tx stats of 802_3. The update stats mechanism
+	 * should keep the 802_3 layout counters updated
+	 */
+	if (!mlx5e_monitor_counter_supported(priv) ||
+	    mlx5e_is_uplink_rep(priv)) {
 		/* update HW stats in background for next time */
 		mlx5e_queue_update_stats(priv);
 	}
@@ -3581,12 +3680,6 @@
 	stats->rx_errors = stats->rx_length_errors + stats->rx_crc_errors +
 			   stats->rx_frame_errors;
 	stats->tx_errors = stats->tx_aborted_errors + stats->tx_carrier_errors;
-
-	/* vport multicast also counts packets that are dropped due to steering
-	 * or rx out of buffer
-	 */
-	stats->multicast =
-		VPORT_COUNTER_GET(vstats, received_eth_multicast.packets);
 }
 
 static void mlx5e_set_rx_mode(struct net_device *dev)
@@ -4230,6 +4323,21 @@
 	mlx5e_vxlan_queue_work(priv, be16_to_cpu(ti->port), 0);
 }
 
+static bool mlx5e_gre_tunnel_inner_proto_offload_supported(struct mlx5_core_dev *mdev,
+							   struct sk_buff *skb)
+{
+	switch (skb->inner_protocol) {
+	case htons(ETH_P_IP):
+	case htons(ETH_P_IPV6):
+	case htons(ETH_P_TEB):
+		return true;
+	case htons(ETH_P_MPLS_UC):
+	case htons(ETH_P_MPLS_MC):
+		return MLX5_CAP_ETH(mdev, tunnel_stateless_mpls_over_gre);
+	}
+	return false;
+}
+
 static netdev_features_t mlx5e_tunnel_features_check(struct mlx5e_priv *priv,
 						     struct sk_buff *skb,
 						     netdev_features_t features)
@@ -4252,7 +4360,9 @@
 
 	switch (proto) {
 	case IPPROTO_GRE:
-		return features;
+		if (mlx5e_gre_tunnel_inner_proto_offload_supported(priv->mdev, skb))
+			return features;
+		break;
 	case IPPROTO_IPIP:
 	case IPPROTO_IPV6:
 		if (mlx5e_tunnel_proto_supported(priv->mdev, IPPROTO_IPIP))
@@ -4379,16 +4489,6 @@
 	return 0;
 }
 
-static int mlx5e_xdp_update_state(struct mlx5e_priv *priv)
-{
-	if (priv->channels.params.xdp_prog)
-		mlx5e_xdp_set_open(priv);
-	else
-		mlx5e_xdp_set_closed(priv);
-
-	return 0;
-}
-
 static int mlx5e_xdp_set(struct net_device *netdev, struct bpf_prog *prog)
 {
 	struct mlx5e_priv *priv = netdev_priv(netdev);
@@ -4428,7 +4528,7 @@
 		mlx5e_set_rq_type(priv->mdev, &new_channels.params);
 		old_prog = priv->channels.params.xdp_prog;
 
-		err = mlx5e_safe_switch_channels(priv, &new_channels, mlx5e_xdp_update_state);
+		err = mlx5e_safe_switch_channels(priv, &new_channels, NULL);
 		if (err)
 			goto unlock;
 	} else {
@@ -5028,7 +5128,6 @@
 	if (err)
 		mlx5_core_err(mdev, "TLS initialization failed, %d\n", err);
 	mlx5e_build_nic_netdev(netdev);
-	mlx5e_build_tc2txq_maps(priv);
 	mlx5e_health_create_reporters(priv);
 
 	return 0;
@@ -5100,7 +5199,7 @@
 err_destroy_direct_tirs:
 	mlx5e_destroy_direct_tirs(priv, priv->direct_tir);
 err_destroy_indirect_tirs:
-	mlx5e_destroy_indirect_tirs(priv, true);
+	mlx5e_destroy_indirect_tirs(priv);
 err_destroy_direct_rqts:
 	mlx5e_destroy_direct_rqts(priv, priv->direct_tir);
 err_destroy_indirect_rqts:
@@ -5119,7 +5218,7 @@
 	mlx5e_destroy_direct_tirs(priv, priv->xsk_tir);
 	mlx5e_destroy_direct_rqts(priv, priv->xsk_tir);
 	mlx5e_destroy_direct_tirs(priv, priv->direct_tir);
-	mlx5e_destroy_indirect_tirs(priv, true);
+	mlx5e_destroy_indirect_tirs(priv);
 	mlx5e_destroy_direct_rqts(priv, priv->direct_tir);
 	mlx5e_destroy_rqt(priv, &priv->indir_rqt);
 	mlx5e_close_drop_rq(&priv->drop_rq);
@@ -5151,7 +5250,7 @@
 
 	/* Marking the link as currently not needed by the Driver */
 	if (!netif_running(netdev))
-		mlx5_set_port_admin_status(mdev, MLX5_PORT_DOWN);
+		mlx5e_modify_admin_state(mdev, MLX5_PORT_DOWN);
 
 	mlx5e_set_netdev_mtu_boundaries(priv);
 	mlx5e_set_dev_port_mtu(priv);
@@ -5312,9 +5411,10 @@
 	max_nch = mlx5e_get_max_num_channels(priv->mdev);
 	if (priv->channels.params.num_channels > max_nch) {
 		mlx5_core_warn(priv->mdev, "MLX5E: Reducing number of channels to %d\n", max_nch);
+		/* Reducing the number of channels - RXFH has to be reset. */
+		priv->netdev->priv_flags &= ~IFF_RXFH_CONFIGURED;
 		priv->channels.params.num_channels = max_nch;
-		mlx5e_build_default_indir_rqt(priv->rss_params.indirection_rqt,
-					      MLX5E_INDIR_RQT_SIZE, max_nch);
+		mlx5e_num_channels_changed(priv);
 	}
 
 	err = profile->init_tx(priv);
@@ -5334,6 +5434,8 @@
 	profile->cleanup_tx(priv);
 
 out:
+	set_bit(MLX5E_STATE_DESTROYING, &priv->state);
+	cancel_work_sync(&priv->update_stats_work);
 	return err;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -1597,7 +1597,7 @@
 err_destroy_direct_tirs:
 	mlx5e_destroy_direct_tirs(priv, priv->direct_tir);
 err_destroy_indirect_tirs:
-	mlx5e_destroy_indirect_tirs(priv, false);
+	mlx5e_destroy_indirect_tirs(priv);
 err_destroy_direct_rqts:
 	mlx5e_destroy_direct_rqts(priv, priv->direct_tir);
 err_destroy_indirect_rqts:
@@ -1614,7 +1614,7 @@
 	mlx5_del_flow_rules(rpriv->vport_rx_rule);
 	mlx5e_destroy_ttc_table(priv, &priv->fs.ttc);
 	mlx5e_destroy_direct_tirs(priv, priv->direct_tir);
-	mlx5e_destroy_indirect_tirs(priv, false);
+	mlx5e_destroy_indirect_tirs(priv);
 	mlx5e_destroy_direct_rqts(priv, priv->direct_tir);
 	mlx5e_destroy_rqt(priv, &priv->indir_rqt);
 	mlx5e_close_drop_rq(&priv->drop_rq);
@@ -1736,6 +1736,8 @@
 	INIT_WORK(&rpriv->uplink_priv.reoffload_flows_work,
 		  mlx5e_tc_reoffload_flows_work);
 
+	mlx5_modify_vport_admin_state(mdev, MLX5_VPORT_STATE_OP_MOD_UPLINK,
+				      0, 0, MLX5_VPORT_ADMIN_STATE_AUTO);
 	mlx5_lag_add(mdev, netdev);
 	priv->events_nb.notifier_call = uplink_rep_async_event;
 	mlx5_notifier_register(mdev, &priv->events_nb);
@@ -1814,29 +1816,30 @@
 	struct mlx5_eswitch_rep *rep = rpriv->rep;
 	struct netdev_phys_item_id ppid = {};
 	unsigned int dl_port_index = 0;
+	u16 pfnum;
 
 	if (!is_devlink_port_supported(dev, rpriv))
 		return 0;
 
 	mlx5e_rep_get_port_parent_id(rpriv->netdev, &ppid);
+	pfnum = PCI_FUNC(dev->pdev->devfn);
 
 	if (rep->vport == MLX5_VPORT_UPLINK) {
 		devlink_port_attrs_set(&rpriv->dl_port,
 				       DEVLINK_PORT_FLAVOUR_PHYSICAL,
-				       PCI_FUNC(dev->pdev->devfn), false, 0,
+				       pfnum, false, 0,
 				       &ppid.id[0], ppid.id_len);
 		dl_port_index = vport_to_devlink_port_index(dev, rep->vport);
 	} else if (rep->vport == MLX5_VPORT_PF) {
 		devlink_port_attrs_pci_pf_set(&rpriv->dl_port,
 					      &ppid.id[0], ppid.id_len,
-					      dev->pdev->devfn);
+					      pfnum);
 		dl_port_index = rep->vport;
 	} else if (mlx5_eswitch_is_vf_vport(dev->priv.eswitch,
 					    rpriv->rep->vport)) {
 		devlink_port_attrs_pci_vf_set(&rpriv->dl_port,
 					      &ppid.id[0], ppid.id_len,
-					      dev->pdev->devfn,
-					      rep->vport - 1);
+					      pfnum, rep->vport - 1);
 		dl_port_index = vport_to_devlink_port_index(dev, rep->vport);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -49,6 +49,7 @@
 #include "en/xdp.h"
 #include "en/xsk/rx.h"
 #include "en/health.h"
+#include "en/txrx.h"
 
 static inline bool mlx5e_rx_hw_stamp(struct hwtstamp_config *config)
 {
@@ -477,6 +478,7 @@
 	/* fill sq frag edge with nops to avoid wqe wrapping two pages */
 	for (; wi < edge_wi; wi++) {
 		wi->opcode = MLX5_OPCODE_NOP;
+		wi->num_wqebbs = 1;
 		mlx5e_post_nop(wq, sq->sqn, &sq->pc);
 	}
 }
@@ -525,6 +527,7 @@
 	umr_wqe->uctrl.xlt_offset = cpu_to_be16(xlt_offset);
 
 	sq->db.ico_wqe[pi].opcode = MLX5_OPCODE_UMR;
+	sq->db.ico_wqe[pi].num_wqebbs = MLX5E_UMR_WQEBBS;
 	sq->db.ico_wqe[pi].umr.rq = rq;
 	sq->pc += MLX5E_UMR_WQEBBS;
 
@@ -585,7 +588,7 @@
 	return !!err;
 }
 
-void mlx5e_poll_ico_cq(struct mlx5e_cq *cq)
+int mlx5e_poll_ico_cq(struct mlx5e_cq *cq)
 {
 	struct mlx5e_icosq *sq = container_of(cq, struct mlx5e_icosq, cq);
 	struct mlx5_cqe64 *cqe;
@@ -593,11 +596,11 @@
 	int i;
 
 	if (unlikely(!test_bit(MLX5E_SQ_STATE_ENABLED, &sq->state)))
-		return;
+		return 0;
 
 	cqe = mlx5_cqwq_get_cqe(&cq->wq);
 	if (likely(!cqe))
-		return;
+		return 0;
 
 	/* sq->cc must be updated only after mlx5_cqwq_update_db_record(),
 	 * otherwise a cq overrun may occur
@@ -628,17 +631,14 @@
 
 			ci = mlx5_wq_cyc_ctr2ix(&sq->wq, sqcc);
 			wi = &sq->db.ico_wqe[ci];
+			sqcc += wi->num_wqebbs;
 
-			if (likely(wi->opcode == MLX5_OPCODE_UMR)) {
-				sqcc += MLX5E_UMR_WQEBBS;
+			if (likely(wi->opcode == MLX5_OPCODE_UMR))
 				wi->umr.rq->mpwqe.umr_completed++;
-			} else if (likely(wi->opcode == MLX5_OPCODE_NOP)) {
-				sqcc++;
-			} else {
+			else if (unlikely(wi->opcode != MLX5_OPCODE_NOP))
 				netdev_WARN_ONCE(cq->channel->netdev,
 						 "Bad OPCODE in ICOSQ WQE info: 0x%x\n",
 						 wi->opcode);
-			}
 
 		} while (!last_wqe);
 
@@ -647,6 +647,8 @@
 	sq->cc = sqcc;
 
 	mlx5_cqwq_update_db_record(&cq->wq);
+
+	return i;
 }
 
 bool mlx5e_post_rx_mpwqes(struct mlx5e_rq *rq)
@@ -1021,6 +1023,9 @@
 		mlx5e_enable_ecn(rq, skb);
 
 	skb->protocol = eth_type_trans(skb, netdev);
+
+	if (unlikely(mlx5e_skb_is_multicast(skb)))
+		stats->mcast_packets++;
 }
 
 static inline void mlx5e_complete_rx_cqe(struct mlx5e_rq *rq,
@@ -1427,6 +1432,7 @@
 
 #ifdef CONFIG_MLX5_CORE_IPOIB
 
+#define MLX5_IB_GRH_SGID_OFFSET 8
 #define MLX5_IB_GRH_DGID_OFFSET 24
 #define MLX5_GID_SIZE           16
 
@@ -1440,6 +1446,7 @@
 	struct net_device *netdev;
 	struct mlx5e_priv *priv;
 	char *pseudo_header;
+	u32 flags_rqpn;
 	u32 qpn;
 	u8 *dgid;
 	u8 g;
@@ -1461,7 +1468,8 @@
 	tstamp = &priv->tstamp;
 	stats = &priv->channel_stats[rq->ix].rq;
 
-	g = (be32_to_cpu(cqe->flags_rqpn) >> 28) & 3;
+	flags_rqpn = be32_to_cpu(cqe->flags_rqpn);
+	g = (flags_rqpn >> 28) & 3;
 	dgid = skb->data + MLX5_IB_GRH_DGID_OFFSET;
 	if ((!g) || dgid[0] != 0xff)
 		skb->pkt_type = PACKET_HOST;
@@ -1470,9 +1478,15 @@
 	else
 		skb->pkt_type = PACKET_MULTICAST;
 
-	/* TODO: IB/ipoib: Allow mcast packets from other VFs
-	 * 68996a6e760e5c74654723eeb57bf65628ae87f4
+	/* Drop packets that this interface sent, ie multicast packets
+	 * that the HCA has replicated.
 	 */
+	if (g && (qpn == (flags_rqpn & 0xffffff)) &&
+	    (memcmp(netdev->dev_addr + 4, skb->data + MLX5_IB_GRH_SGID_OFFSET,
+		    MLX5_GID_SIZE) == 0)) {
+		skb->dev = NULL;
+		return;
+	}
 
 	skb_pull(skb, MLX5_IB_GRH_BYTES);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
@@ -297,6 +297,9 @@
 			s->tx_tls_drop_bypass_req   += sq_stats->tls_drop_bypass_req;
 #endif
 			s->tx_cqes		+= sq_stats->cqes;
+
+			/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92657 */
+			barrier();
 		}
 	}
 }
@@ -1601,7 +1604,7 @@
 			for (j = 0; j < NUM_SQ_STATS; j++)
 				sprintf(data + (idx++) * ETH_GSTRING_LEN,
 					sq_stats_desc[j].format,
-					priv->channel_tc2txq[i][tc]);
+					i + tc * max_nch);
 
 	for (i = 0; i < max_nch; i++) {
 		for (j = 0; j < NUM_XSKSQ_STATS * is_xsk; j++)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_stats.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_stats.h
@@ -68,6 +68,7 @@
 	u64 tx_nop;
 	u64 rx_lro_packets;
 	u64 rx_lro_bytes;
+	u64 rx_mcast_packets;
 	u64 rx_ecn_mark;
 	u64 rx_removed_vlan_packets;
 	u64 rx_csum_unnecessary;
@@ -235,6 +236,7 @@
 	u64 csum_none;
 	u64 lro_packets;
 	u64 lro_bytes;
+	u64 mcast_packets;
 	u64 ecn_mark;
 	u64 removed_vlan_packets;
 	u64 xdp_drop;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -57,6 +57,7 @@
 #include "lib/devcom.h"
 #include "lib/geneve.h"
 #include "diag/en_tc_tracepoint.h"
+#include <asm/div64.h>
 
 struct mlx5_nic_flow_attr {
 	u32 action;
@@ -586,7 +587,7 @@
 	for (tt = 0; tt < MLX5E_NUM_INDIR_TIRS; tt++)
 		ttc_params->indir_tirn[tt] = hp->indir_tirn[tt];
 
-	ft_attr->max_fte = MLX5E_NUM_TT;
+	ft_attr->max_fte = MLX5E_TTC_TABLE_SIZE;
 	ft_attr->level = MLX5E_TC_TTC_FT_LEVEL;
 	ft_attr->prio = MLX5E_TC_PRIO;
 }
@@ -1615,8 +1616,11 @@
 
 	flow_flag_clear(flow, DUP);
 
-	mlx5e_tc_del_fdb_flow(flow->peer_flow->priv, flow->peer_flow);
-	kvfree(flow->peer_flow);
+	if (refcount_dec_and_test(&flow->peer_flow->refcnt)) {
+		mlx5e_tc_del_fdb_flow(flow->peer_flow->priv, flow->peer_flow);
+		kfree(flow->peer_flow);
+	}
+
 	flow->peer_flow = NULL;
 }
 
@@ -1834,8 +1838,8 @@
 	      BIT(FLOW_DISSECTOR_KEY_ENC_IP) |
 	      BIT(FLOW_DISSECTOR_KEY_ENC_OPTS))) {
 		NL_SET_ERR_MSG_MOD(extack, "Unsupported key");
-		netdev_warn(priv->netdev, "Unsupported key used: 0x%x\n",
-			    dissector->used_keys);
+		netdev_dbg(priv->netdev, "Unsupported key used: 0x%x\n",
+			   dissector->used_keys);
 		return -EOPNOTSUPP;
 	}
 
@@ -2421,10 +2425,11 @@
 		field_bsize = f->size * BITS_PER_BYTE;
 
 		if (field_bsize == 32) {
-			mask_be32 = *(__be32 *)&mask;
+			mask_be32 = (__be32)mask;
 			mask = (__force unsigned long)cpu_to_le32(be32_to_cpu(mask_be32));
 		} else if (field_bsize == 16) {
-			mask_be16 = *(__be16 *)&mask;
+			mask_be32 = (__be32)mask;
+			mask_be16 = *(__be16 *)&mask_be32;
 			mask = (__force unsigned long)cpu_to_le16(be16_to_cpu(mask_be16));
 		}
 
@@ -3178,12 +3183,13 @@
 			       struct mlx5_esw_flow_attr *attr,
 			       u32 *action)
 {
-	int nest_level = attr->parse_attr->filter_dev->lower_level;
 	struct flow_action_entry vlan_act = {
 		.id = FLOW_ACTION_VLAN_POP,
 	};
-	int err = 0;
+	int nest_level, err = 0;
 
+	nest_level = attr->parse_attr->filter_dev->lower_level -
+						priv->netdev->lower_level;
 	while (nest_level--) {
 		err = parse_tc_vlan_action(priv, &vlan_act, attr, action);
 		if (err)
@@ -3443,6 +3449,12 @@
 		attr->action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
 	}
 
+	if (!(attr->action &
+	      (MLX5_FLOW_CONTEXT_ACTION_FWD_DEST | MLX5_FLOW_CONTEXT_ACTION_DROP))) {
+		NL_SET_ERR_MSG(extack, "Rule must have at least one forward/drop action");
+		return -EOPNOTSUPP;
+	}
+
 	if (attr->split_count > 0 && !mlx5_esw_has_fwd_fdb(priv->mdev)) {
 		NL_SET_ERR_MSG_MOD(extack,
 				   "current firmware doesn't support split rule for port mirroring");
@@ -3933,15 +3945,22 @@
 	return err;
 }
 
-static int apply_police_params(struct mlx5e_priv *priv, u32 rate,
+static int apply_police_params(struct mlx5e_priv *priv, u64 rate,
 			       struct netlink_ext_ack *extack)
 {
 	struct mlx5e_rep_priv *rpriv = priv->ppriv;
 	struct mlx5_eswitch *esw;
+	u32 rate_mbps = 0;
 	u16 vport_num;
-	u32 rate_mbps;
 	int err;
 
+	vport_num = rpriv->rep->vport;
+	if (vport_num >= MLX5_VPORT_ECPF) {
+		NL_SET_ERR_MSG_MOD(extack,
+				   "Ingress rate limit is supported only for Eswitch ports connected to VFs");
+		return -EOPNOTSUPP;
+	}
+
 	esw = priv->mdev->priv.eswitch;
 	/* rate is given in bytes/sec.
 	 * First convert to bits/sec and then round to the nearest mbit/secs.
@@ -3949,8 +3968,10 @@
 	 * Moreover, if rate is non zero we choose to configure to a minimum of
 	 * 1 mbit/sec.
 	 */
-	rate_mbps = rate ? max_t(u32, (rate * 8 + 500000) / 1000000, 1) : 0;
-	vport_num = rpriv->rep->vport;
+	if (rate) {
+		rate = (rate * BITS_PER_BYTE) + 500000;
+		rate_mbps = max_t(u32, do_div(rate, 1000000), 1);
+	}
 
 	err = mlx5_esw_modify_vport_rate(esw, vport_num, rate_mbps);
 	if (err)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
@@ -93,7 +93,7 @@
 	if (txq_ix >= num_channels)
 		txq_ix = priv->txq2sq[txq_ix]->ch_ix;
 
-	return priv->channel_tc2txq[txq_ix][up];
+	return priv->channel_tc2realtxq[txq_ix][up];
 }
 
 static inline int mlx5e_skb_l2_header_offset(struct sk_buff *skb)
@@ -341,8 +341,8 @@
 	dseg =  wqe->data;
 
 #if IS_ENABLED(CONFIG_GENEVE)
-	if (skb->encapsulation)
-		mlx5e_tx_tunnel_accel(skb, eseg);
+	if (skb->encapsulation && skb->ip_summed == CHECKSUM_PARTIAL)
+		mlx5e_tx_tunnel_accel(skb, eseg, ihs);
 #endif
 	mlx5e_txwqe_build_eseg_csum(sq, skb, eseg);
 
@@ -537,10 +537,9 @@
 void mlx5e_free_txqsq_descs(struct mlx5e_txqsq *sq)
 {
 	struct mlx5e_tx_wqe_info *wi;
+	u32 dma_fifo_cc, nbytes = 0;
+	u16 ci, sqcc, npkts = 0;
 	struct sk_buff *skb;
-	u32 dma_fifo_cc;
-	u16 sqcc;
-	u16 ci;
 	int i;
 
 	sqcc = sq->cc;
@@ -565,11 +564,15 @@
 		}
 
 		dev_kfree_skb_any(skb);
+		npkts++;
+		nbytes += wi->num_bytes;
 		sqcc += wi->num_wqebbs;
 	}
 
 	sq->dma_fifo_cc = dma_fifo_cc;
 	sq->cc = sqcc;
+
+	netdev_tx_completed_queue(sq->txq, npkts, nbytes);
 }
 
 #ifdef CONFIG_MLX5_CORE_IPOIB
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c
@@ -78,6 +78,7 @@
 	u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc);
 
 	sq->db.ico_wqe[pi].opcode = MLX5_OPCODE_NOP;
+	sq->db.ico_wqe[pi].num_wqebbs = 1;
 	nopwqe = mlx5e_post_nop(wq, sq->sqn, &sq->pc);
 	mlx5e_notify_hw(wq, sq->pc, sq->uar_map, &nopwqe->ctrl);
 }
@@ -144,7 +145,11 @@
 
 	busy |= rq->post_wqes(rq);
 	if (xsk_open) {
-		mlx5e_poll_ico_cq(&c->xskicosq.cq);
+		if (mlx5e_poll_ico_cq(&c->xskicosq.cq))
+			/* Don't clear the flag if nothing was polled to prevent
+			 * queueing more WQEs and overflowing XSKICOSQ.
+			 */
+			clear_bit(MLX5E_SQ_STATE_PENDING_XSK_TX, &c->xskicosq.state);
 		busy |= mlx5e_poll_xdpsq_cq(&xsksq->cq);
 		busy_xsk |= mlx5e_napi_xsk_post(xsksq, xskrq);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/eq.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/eq.c
@@ -190,6 +190,29 @@
 	return count_eqe;
 }
 
+static void mlx5_eq_async_int_lock(struct mlx5_eq_async *eq, unsigned long *flags)
+	__acquires(&eq->lock)
+{
+	if (in_irq())
+		spin_lock(&eq->lock);
+	else
+		spin_lock_irqsave(&eq->lock, *flags);
+}
+
+static void mlx5_eq_async_int_unlock(struct mlx5_eq_async *eq, unsigned long *flags)
+	__releases(&eq->lock)
+{
+	if (in_irq())
+		spin_unlock(&eq->lock);
+	else
+		spin_unlock_irqrestore(&eq->lock, *flags);
+}
+
+enum async_eq_nb_action {
+	ASYNC_EQ_IRQ_HANDLER = 0,
+	ASYNC_EQ_RECOVER = 1,
+};
+
 static int mlx5_eq_async_int(struct notifier_block *nb,
 			     unsigned long action, void *data)
 {
@@ -199,11 +222,14 @@
 	struct mlx5_eq_table *eqt;
 	struct mlx5_core_dev *dev;
 	struct mlx5_eqe *eqe;
+	unsigned long flags;
 	int num_eqes = 0;
 
 	dev = eq->dev;
 	eqt = dev->priv.eq_table;
 
+	mlx5_eq_async_int_lock(eq_async, &flags);
+
 	eqe = next_eqe_sw(eq);
 	if (!eqe)
 		goto out;
@@ -224,8 +250,19 @@
 
 out:
 	eq_update_ci(eq, 1);
+	mlx5_eq_async_int_unlock(eq_async, &flags);
 
-	return 0;
+	return unlikely(action == ASYNC_EQ_RECOVER) ? num_eqes : 0;
+}
+
+void mlx5_cmd_eq_recover(struct mlx5_core_dev *dev)
+{
+	struct mlx5_eq_async *eq = &dev->priv.eq_table->cmd_eq;
+	int eqes;
+
+	eqes = mlx5_eq_async_int(&eq->irq_nb, ASYNC_EQ_RECOVER, NULL);
+	if (eqes)
+		mlx5_core_warn(dev, "Recovered %d EQEs on cmd_eq\n", eqes);
 }
 
 static void init_eq_buf(struct mlx5_eq *eq)
@@ -563,6 +600,40 @@
 		gather_user_async_events(dev, mask);
 }
 
+static int
+setup_async_eq(struct mlx5_core_dev *dev, struct mlx5_eq_async *eq,
+	       struct mlx5_eq_param *param, const char *name)
+{
+	int err;
+
+	eq->irq_nb.notifier_call = mlx5_eq_async_int;
+	spin_lock_init(&eq->lock);
+
+	err = create_async_eq(dev, &eq->core, param);
+	if (err) {
+		mlx5_core_warn(dev, "failed to create %s EQ %d\n", name, err);
+		return err;
+	}
+	err = mlx5_eq_enable(dev, &eq->core, &eq->irq_nb);
+	if (err) {
+		mlx5_core_warn(dev, "failed to enable %s EQ %d\n", name, err);
+		destroy_async_eq(dev, &eq->core);
+	}
+	return err;
+}
+
+static void cleanup_async_eq(struct mlx5_core_dev *dev,
+			     struct mlx5_eq_async *eq, const char *name)
+{
+	int err;
+
+	mlx5_eq_disable(dev, &eq->core, &eq->irq_nb);
+	err = destroy_async_eq(dev, &eq->core);
+	if (err)
+		mlx5_core_err(dev, "failed to destroy %s eq, err(%d)\n",
+			      name, err);
+}
+
 static int create_async_eqs(struct mlx5_core_dev *dev)
 {
 	struct mlx5_eq_table *table = dev->priv.eq_table;
@@ -572,77 +643,48 @@
 	MLX5_NB_INIT(&table->cq_err_nb, cq_err_event_notifier, CQ_ERROR);
 	mlx5_eq_notifier_register(dev, &table->cq_err_nb);
 
-	table->cmd_eq.irq_nb.notifier_call = mlx5_eq_async_int;
 	param = (struct mlx5_eq_param) {
 		.irq_index = 0,
 		.nent = MLX5_NUM_CMD_EQE,
+		.mask[0] = 1ull << MLX5_EVENT_TYPE_CMD,
 	};
-
-	param.mask[0] = 1ull << MLX5_EVENT_TYPE_CMD;
-	err = create_async_eq(dev, &table->cmd_eq.core, &param);
-	if (err) {
-		mlx5_core_warn(dev, "failed to create cmd EQ %d\n", err);
-		goto err0;
-	}
-	err = mlx5_eq_enable(dev, &table->cmd_eq.core, &table->cmd_eq.irq_nb);
-	if (err) {
-		mlx5_core_warn(dev, "failed to enable cmd EQ %d\n", err);
+	mlx5_cmd_allowed_opcode(dev, MLX5_CMD_OP_CREATE_EQ);
+	err = setup_async_eq(dev, &table->cmd_eq, &param, "cmd");
+	if (err)
 		goto err1;
-	}
+
 	mlx5_cmd_use_events(dev);
+	mlx5_cmd_allowed_opcode(dev, CMD_ALLOWED_OPCODE_ALL);
 
-	table->async_eq.irq_nb.notifier_call = mlx5_eq_async_int;
 	param = (struct mlx5_eq_param) {
 		.irq_index = 0,
 		.nent = MLX5_NUM_ASYNC_EQE,
 	};
 
 	gather_async_events_mask(dev, param.mask);
-	err = create_async_eq(dev, &table->async_eq.core, &param);
-	if (err) {
-		mlx5_core_warn(dev, "failed to create async EQ %d\n", err);
+	err = setup_async_eq(dev, &table->async_eq, &param, "async");
+	if (err)
 		goto err2;
-	}
-	err = mlx5_eq_enable(dev, &table->async_eq.core,
-			     &table->async_eq.irq_nb);
-	if (err) {
-		mlx5_core_warn(dev, "failed to enable async EQ %d\n", err);
-		goto err3;
-	}
 
-	table->pages_eq.irq_nb.notifier_call = mlx5_eq_async_int;
 	param = (struct mlx5_eq_param) {
 		.irq_index = 0,
 		.nent = /* TODO: sriov max_vf + */ 1,
+		.mask[0] = 1ull << MLX5_EVENT_TYPE_PAGE_REQUEST,
 	};
 
-	param.mask[0] = 1ull << MLX5_EVENT_TYPE_PAGE_REQUEST;
-	err = create_async_eq(dev, &table->pages_eq.core, &param);
-	if (err) {
-		mlx5_core_warn(dev, "failed to create pages EQ %d\n", err);
-		goto err4;
-	}
-	err = mlx5_eq_enable(dev, &table->pages_eq.core,
-			     &table->pages_eq.irq_nb);
-	if (err) {
-		mlx5_core_warn(dev, "failed to enable pages EQ %d\n", err);
-		goto err5;
-	}
+	err = setup_async_eq(dev, &table->pages_eq, &param, "pages");
+	if (err)
+		goto err3;
 
-	return err;
+	return 0;
 
-err5:
-	destroy_async_eq(dev, &table->pages_eq.core);
-err4:
-	mlx5_eq_disable(dev, &table->async_eq.core, &table->async_eq.irq_nb);
 err3:
-	destroy_async_eq(dev, &table->async_eq.core);
+	cleanup_async_eq(dev, &table->async_eq, "async");
 err2:
 	mlx5_cmd_use_polling(dev);
-	mlx5_eq_disable(dev, &table->cmd_eq.core, &table->cmd_eq.irq_nb);
+	cleanup_async_eq(dev, &table->cmd_eq, "cmd");
 err1:
-	destroy_async_eq(dev, &table->cmd_eq.core);
-err0:
+	mlx5_cmd_allowed_opcode(dev, CMD_ALLOWED_OPCODE_ALL);
 	mlx5_eq_notifier_unregister(dev, &table->cq_err_nb);
 	return err;
 }
@@ -650,28 +692,13 @@
 static void destroy_async_eqs(struct mlx5_core_dev *dev)
 {
 	struct mlx5_eq_table *table = dev->priv.eq_table;
-	int err;
-
-	mlx5_eq_disable(dev, &table->pages_eq.core, &table->pages_eq.irq_nb);
-	err = destroy_async_eq(dev, &table->pages_eq.core);
-	if (err)
-		mlx5_core_err(dev, "failed to destroy pages eq, err(%d)\n",
-			      err);
-
-	mlx5_eq_disable(dev, &table->async_eq.core, &table->async_eq.irq_nb);
-	err = destroy_async_eq(dev, &table->async_eq.core);
-	if (err)
-		mlx5_core_err(dev, "failed to destroy async eq, err(%d)\n",
-			      err);
 
+	cleanup_async_eq(dev, &table->pages_eq, "pages");
+	cleanup_async_eq(dev, &table->async_eq, "async");
+	mlx5_cmd_allowed_opcode(dev, MLX5_CMD_OP_DESTROY_EQ);
 	mlx5_cmd_use_polling(dev);
-
-	mlx5_eq_disable(dev, &table->cmd_eq.core, &table->cmd_eq.irq_nb);
-	err = destroy_async_eq(dev, &table->cmd_eq.core);
-	if (err)
-		mlx5_core_err(dev, "failed to destroy command eq, err(%d)\n",
-			      err);
-
+	cleanup_async_eq(dev, &table->cmd_eq, "cmd");
+	mlx5_cmd_allowed_opcode(dev, CMD_ALLOWED_OPCODE_ALL);
 	mlx5_eq_notifier_unregister(dev, &table->cq_err_nb);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -1592,6 +1592,10 @@
 	struct mlx5_vport *vport;
 
 	vport = mlx5_eswitch_get_vport(esw, vport_num);
+
+	if (!vport->qos.enabled)
+		return -EOPNOTSUPP;
+
 	MLX5_SET(scheduling_context, ctx, max_average_bw, rate_mbps);
 
 	return mlx5_modify_scheduling_element_cmd(esw->dev,
@@ -1919,7 +1923,7 @@
 		mlx5_reload_interface(esw->dev, MLX5_INTERFACE_PROTOCOL_IB);
 		mlx5_reload_interface(esw->dev, MLX5_INTERFACE_PROTOCOL_ETH);
 	}
-
+	esw_destroy_tsar(esw);
 	return err;
 }
 
@@ -2094,6 +2098,8 @@
 				 u16 vport, int link_state)
 {
 	struct mlx5_vport *evport = mlx5_eswitch_get_vport(esw, vport);
+	int opmod = MLX5_VPORT_STATE_OP_MOD_ESW_VPORT;
+	int other_vport = 1;
 	int err = 0;
 
 	if (!ESW_ALLOWED(esw))
@@ -2101,15 +2107,17 @@
 	if (IS_ERR(evport))
 		return PTR_ERR(evport);
 
+	if (vport == MLX5_VPORT_UPLINK) {
+		opmod = MLX5_VPORT_STATE_OP_MOD_UPLINK;
+		other_vport = 0;
+		vport = 0;
+	}
 	mutex_lock(&esw->state_lock);
 
-	err = mlx5_modify_vport_admin_state(esw->dev,
-					    MLX5_VPORT_STATE_OP_MOD_ESW_VPORT,
-					    vport, 1, link_state);
+	err = mlx5_modify_vport_admin_state(esw->dev, opmod, vport, other_vport, link_state);
 	if (err) {
-		mlx5_core_warn(esw->dev,
-			       "Failed to set vport %d link state, err = %d",
-			       vport, err);
+		mlx5_core_warn(esw->dev, "Failed to set vport %d link state, opmod = %d, err = %d",
+			       vport, opmod, err);
 		goto unlock;
 	}
 
@@ -2151,8 +2159,6 @@
 	struct mlx5_vport *evport = mlx5_eswitch_get_vport(esw, vport);
 	int err = 0;
 
-	if (!ESW_ALLOWED(esw))
-		return -EPERM;
 	if (IS_ERR(evport))
 		return PTR_ERR(evport);
 	if (vlan > 4095 || qos > 7)
@@ -2180,6 +2186,9 @@
 	u8 set_flags = 0;
 	int err;
 
+	if (!ESW_ALLOWED(esw))
+		return -EPERM;
+
 	if (vlan || qos)
 		set_flags = SET_VLAN_STRIP | SET_VLAN_INSERT;
 
@@ -2319,25 +2328,17 @@
 
 int mlx5_eswitch_get_vepa(struct mlx5_eswitch *esw, u8 *setting)
 {
-	int err = 0;
-
 	if (!esw)
 		return -EOPNOTSUPP;
 
 	if (!ESW_ALLOWED(esw))
 		return -EPERM;
 
-	mutex_lock(&esw->state_lock);
-	if (esw->mode != MLX5_ESWITCH_LEGACY) {
-		err = -EOPNOTSUPP;
-		goto out;
-	}
+	if (esw->mode != MLX5_ESWITCH_LEGACY)
+		return -EOPNOTSUPP;
 
 	*setting = esw->fdb_table.legacy.vepa_uplink_rule ? 1 : 0;
-
-out:
-	mutex_unlock(&esw->state_lock);
-	return err;
+	return 0;
 }
 
 int mlx5_eswitch_set_vport_trust(struct mlx5_eswitch *esw,
@@ -2372,12 +2373,15 @@
 		max_guarantee = evport->info.min_rate;
 	}
 
-	return max_t(u32, max_guarantee / fw_max_bw_share, 1);
+	if (max_guarantee)
+		return max_t(u32, max_guarantee / fw_max_bw_share, 1);
+	return 0;
 }
 
-static int normalize_vports_min_rate(struct mlx5_eswitch *esw, u32 divider)
+static int normalize_vports_min_rate(struct mlx5_eswitch *esw)
 {
 	u32 fw_max_bw_share = MLX5_CAP_QOS(esw->dev, max_tsar_bw_share);
+	u32 divider = calculate_vports_min_rate_divider(esw);
 	struct mlx5_vport *evport;
 	u32 vport_max_rate;
 	u32 vport_min_rate;
@@ -2390,9 +2394,9 @@
 			continue;
 		vport_min_rate = evport->info.min_rate;
 		vport_max_rate = evport->info.max_rate;
-		bw_share = MLX5_MIN_BW_SHARE;
+		bw_share = 0;
 
-		if (vport_min_rate)
+		if (divider)
 			bw_share = MLX5_RATE_TO_BW_SHARE(vport_min_rate,
 							 divider,
 							 fw_max_bw_share);
@@ -2417,7 +2421,6 @@
 	struct mlx5_vport *evport = mlx5_eswitch_get_vport(esw, vport);
 	u32 fw_max_bw_share;
 	u32 previous_min_rate;
-	u32 divider;
 	bool min_rate_supported;
 	bool max_rate_supported;
 	int err = 0;
@@ -2442,8 +2445,7 @@
 
 	previous_min_rate = evport->info.min_rate;
 	evport->info.min_rate = min_rate;
-	divider = calculate_vports_min_rate_divider(esw);
-	err = normalize_vports_min_rate(esw, divider);
+	err = normalize_vports_min_rate(esw);
 	if (err) {
 		evport->info.min_rate = previous_min_rate;
 		goto unlock;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
@@ -606,6 +606,8 @@
 static inline void mlx5_eswitch_disable(struct mlx5_eswitch *esw) {}
 static inline bool mlx5_esw_lag_prereq(struct mlx5_core_dev *dev0, struct mlx5_core_dev *dev1) { return true; }
 static inline bool mlx5_eswitch_is_funcs_handler(struct mlx5_core_dev *dev) { return false; }
+static inline
+int mlx5_eswitch_set_vport_state(struct mlx5_eswitch *esw, u16 vport, int link_state) { return 0; }
 static inline const u32 *mlx5_esw_query_functions(struct mlx5_core_dev *dev)
 {
 	return ERR_PTR(-EOPNOTSUPP);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -858,7 +858,7 @@
  */
 #define ESW_SIZE (16 * 1024 * 1024)
 const unsigned int ESW_POOLS[4] = { 4 * 1024 * 1024, 1 * 1024 * 1024,
-				    64 * 1024, 4 * 1024 };
+				    64 * 1024, 128 };
 
 static int
 get_sz_from_pool(struct mlx5_eswitch *esw)
@@ -1143,35 +1143,37 @@
 	}
 	esw->fdb_table.offloads.send_to_vport_grp = g;
 
-	/* create peer esw miss group */
-	memset(flow_group_in, 0, inlen);
-
-	esw_set_flow_group_source_port(esw, flow_group_in);
+	if (MLX5_CAP_ESW(esw->dev, merged_eswitch)) {
+		/* create peer esw miss group */
+		memset(flow_group_in, 0, inlen);
+
+		esw_set_flow_group_source_port(esw, flow_group_in);
+
+		if (!mlx5_eswitch_vport_match_metadata_enabled(esw)) {
+			match_criteria = MLX5_ADDR_OF(create_flow_group_in,
+						      flow_group_in,
+						      match_criteria);
 
-	if (!mlx5_eswitch_vport_match_metadata_enabled(esw)) {
-		match_criteria = MLX5_ADDR_OF(create_flow_group_in,
-					      flow_group_in,
-					      match_criteria);
-
-		MLX5_SET_TO_ONES(fte_match_param, match_criteria,
-				 misc_parameters.source_eswitch_owner_vhca_id);
-
-		MLX5_SET(create_flow_group_in, flow_group_in,
-			 source_eswitch_owner_vhca_id_valid, 1);
-	}
+			MLX5_SET_TO_ONES(fte_match_param, match_criteria,
+					 misc_parameters.source_eswitch_owner_vhca_id);
 
-	MLX5_SET(create_flow_group_in, flow_group_in, start_flow_index, ix);
-	MLX5_SET(create_flow_group_in, flow_group_in, end_flow_index,
-		 ix + esw->total_vports - 1);
-	ix += esw->total_vports;
+			MLX5_SET(create_flow_group_in, flow_group_in,
+				 source_eswitch_owner_vhca_id_valid, 1);
+		}
 
-	g = mlx5_create_flow_group(fdb, flow_group_in);
-	if (IS_ERR(g)) {
-		err = PTR_ERR(g);
-		esw_warn(dev, "Failed to create peer miss flow group err(%d)\n", err);
-		goto peer_miss_err;
+		MLX5_SET(create_flow_group_in, flow_group_in, start_flow_index, ix);
+		MLX5_SET(create_flow_group_in, flow_group_in, end_flow_index,
+			 ix + esw->total_vports - 1);
+		ix += esw->total_vports;
+
+		g = mlx5_create_flow_group(fdb, flow_group_in);
+		if (IS_ERR(g)) {
+			err = PTR_ERR(g);
+			esw_warn(dev, "Failed to create peer miss flow group err(%d)\n", err);
+			goto peer_miss_err;
+		}
+		esw->fdb_table.offloads.peer_miss_grp = g;
 	}
-	esw->fdb_table.offloads.peer_miss_grp = g;
 
 	/* create miss group */
 	memset(flow_group_in, 0, inlen);
@@ -1206,7 +1208,8 @@
 miss_rule_err:
 	mlx5_destroy_flow_group(esw->fdb_table.offloads.miss_grp);
 miss_err:
-	mlx5_destroy_flow_group(esw->fdb_table.offloads.peer_miss_grp);
+	if (MLX5_CAP_ESW(esw->dev, merged_eswitch))
+		mlx5_destroy_flow_group(esw->fdb_table.offloads.peer_miss_grp);
 peer_miss_err:
 	mlx5_destroy_flow_group(esw->fdb_table.offloads.send_to_vport_grp);
 send_vport_err:
@@ -1229,7 +1232,8 @@
 	mlx5_del_flow_rules(esw->fdb_table.offloads.miss_rule_multi);
 	mlx5_del_flow_rules(esw->fdb_table.offloads.miss_rule_uni);
 	mlx5_destroy_flow_group(esw->fdb_table.offloads.send_to_vport_grp);
-	mlx5_destroy_flow_group(esw->fdb_table.offloads.peer_miss_grp);
+	if (MLX5_CAP_ESW(esw->dev, merged_eswitch))
+		mlx5_destroy_flow_group(esw->fdb_table.offloads.peer_miss_grp);
 	mlx5_destroy_flow_group(esw->fdb_table.offloads.miss_grp);
 
 	mlx5_destroy_flow_table(esw->fdb_table.offloads.slow_fdb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/events.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/events.c
@@ -346,8 +346,10 @@
 	events->dev = dev;
 	dev->priv.events = events;
 	events->wq = create_singlethread_workqueue("mlx5_events");
-	if (!events->wq)
+	if (!events->wq) {
+		kfree(events);
 		return -ENOMEM;
+	}
 	INIT_WORK(&events->pcie_core_work, mlx5_pcie_event);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
@@ -850,6 +850,7 @@
 	mutex_lock(&fpga_xfrm->lock);
 	if (!--fpga_xfrm->num_rules) {
 		mlx5_fpga_ipsec_release_sa_ctx(fpga_xfrm->sa_ctx);
+		kfree(fpga_xfrm->sa_ctx);
 		fpga_xfrm->sa_ctx = NULL;
 	}
 	mutex_unlock(&fpga_xfrm->lock);
@@ -1478,7 +1479,7 @@
 	if (!memcmp(&xfrm->attrs, attrs, sizeof(xfrm->attrs)))
 		return 0;
 
-	if (!mlx5_fpga_esp_validate_xfrm_attrs(mdev, attrs)) {
+	if (mlx5_fpga_esp_validate_xfrm_attrs(mdev, attrs)) {
 		mlx5_core_warn(mdev, "Tried to create an esp with unsupported attrs\n");
 		return -EOPNOTSUPP;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
@@ -496,6 +496,13 @@
 		goto out;
 	}
 
+	if (rule->dest_attr.type == MLX5_FLOW_DESTINATION_TYPE_PORT &&
+	    --fte->dests_size) {
+		fte->modify_mask |= BIT(MLX5_SET_FTE_MODIFY_ENABLE_MASK_ACTION);
+		fte->action.action &= ~MLX5_FLOW_CONTEXT_ACTION_ALLOW;
+		goto out;
+	}
+
 	if ((fte->action.action & MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) &&
 	    --fte->dests_size) {
 		fte->modify_mask |=
@@ -629,7 +636,7 @@
 	fte->action = *flow_act;
 	fte->flow_context = spec->flow_context;
 
-	tree_init_node(&fte->node, NULL, del_sw_fte);
+	tree_init_node(&fte->node, del_hw_fte, del_sw_fte);
 
 	return fte;
 }
@@ -809,18 +816,15 @@
 {
 	struct mlx5_flow_root_namespace *root = find_root(&prio->node);
 	struct mlx5_flow_table *iter;
-	int i = 0;
 	int err;
 
 	fs_for_each_ft(iter, prio) {
-		i++;
 		err = root->cmds->modify_flow_table(root, iter, ft);
 		if (err) {
-			mlx5_core_warn(dev, "Failed to modify flow table %d\n",
-				       iter->id);
+			mlx5_core_err(dev,
+				      "Failed to modify flow table id %d, type %d, err %d\n",
+				      iter->id, iter->type, err);
 			/* The driver is out of sync with the FW */
-			if (i > 1)
-				WARN_ON(true);
 			return err;
 		}
 	}
@@ -1064,6 +1068,7 @@
 destroy_ft:
 	root->cmds->destroy_flow_table(root, ft);
 free_ft:
+	rhltable_destroy(&ft->fgs_hash);
 	kfree(ft);
 unlock_root:
 	mutex_unlock(&root->chain_lock);
@@ -1555,16 +1560,16 @@
 	struct match_list first;
 };
 
-static void free_match_list(struct match_list_head *head)
+static void free_match_list(struct match_list_head *head, bool ft_locked)
 {
 	if (!list_empty(&head->list)) {
 		struct match_list *iter, *match_tmp;
 
 		list_del(&head->first.list);
-		tree_put_node(&head->first.g->node, false);
+		tree_put_node(&head->first.g->node, ft_locked);
 		list_for_each_entry_safe(iter, match_tmp, &head->list,
 					 list) {
-			tree_put_node(&iter->g->node, false);
+			tree_put_node(&iter->g->node, ft_locked);
 			list_del(&iter->list);
 			kfree(iter);
 		}
@@ -1573,7 +1578,8 @@
 
 static int build_match_list(struct match_list_head *match_head,
 			    struct mlx5_flow_table *ft,
-			    const struct mlx5_flow_spec *spec)
+			    const struct mlx5_flow_spec *spec,
+			    bool ft_locked)
 {
 	struct rhlist_head *tmp, *list;
 	struct mlx5_flow_group *g;
@@ -1598,7 +1604,7 @@
 
 		curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC);
 		if (!curr_match) {
-			free_match_list(match_head);
+			free_match_list(match_head, ft_locked);
 			err = -ENOMEM;
 			goto out;
 		}
@@ -1691,6 +1697,7 @@
 		if (!fte_tmp)
 			continue;
 		rule = add_rule_fg(g, spec, flow_act, dest, dest_num, fte_tmp);
+		/* No error check needed here, because insert_fte() is not called */
 		up_write_ref_node(&fte_tmp->node, false);
 		tree_put_node(&fte_tmp->node, false);
 		kmem_cache_free(steering->ftes_cache, fte);
@@ -1739,7 +1746,8 @@
 		up_write_ref_node(&g->node, false);
 		rule = add_rule_fg(g, spec, flow_act, dest, dest_num, fte);
 		up_write_ref_node(&fte->node, false);
-		tree_put_node(&fte->node, false);
+		if (IS_ERR(rule))
+			tree_put_node(&fte->node, false);
 		return rule;
 	}
 	rule = ERR_PTR(-ENOENT);
@@ -1778,7 +1786,7 @@
 	version = atomic_read(&ft->node.version);
 
 	/* Collect all fgs which has a matching match_criteria */
-	err = build_match_list(&match_head, ft, spec);
+	err = build_match_list(&match_head, ft, spec, take_write);
 	if (err) {
 		if (take_write)
 			up_write_ref_node(&ft->node, false);
@@ -1792,7 +1800,7 @@
 
 	rule = try_add_to_existing_fg(ft, &match_head.list, spec, flow_act, dest,
 				      dest_num, version);
-	free_match_list(&match_head);
+	free_match_list(&match_head, take_write);
 	if (!IS_ERR(rule) ||
 	    (PTR_ERR(rule) != -ENOENT && PTR_ERR(rule) != -EAGAIN)) {
 		if (take_write)
@@ -1839,7 +1847,8 @@
 	up_write_ref_node(&g->node, false);
 	rule = add_rule_fg(g, spec, flow_act, dest, dest_num, fte);
 	up_write_ref_node(&fte->node, false);
-	tree_put_node(&fte->node, false);
+	if (IS_ERR(rule))
+		tree_put_node(&fte->node, false);
 	tree_put_node(&g->node, false);
 	return rule;
 
@@ -1927,12 +1936,15 @@
 	down_write_ref_node(&fte->node, false);
 	for (i = handle->num_rules - 1; i >= 0; i--)
 		tree_remove_node(&handle->rule[i]->node, true);
-	if (fte->modify_mask && fte->dests_size) {
-		modify_fte(fte);
+	if (fte->dests_size) {
+		if (fte->modify_mask)
+			modify_fte(fte);
 		up_write_ref_node(&fte->node, false);
-	} else {
+	} else if (list_empty(&fte->node.children)) {
 		del_hw_fte(&fte->node);
-		up_write(&fte->node.lock);
+		/* Avoid double call to del_hw_fte */
+		fte->node.del_hw_func = NULL;
+		up_write_ref_node(&fte->node, false);
 		tree_put_node(&fte->node, false);
 	}
 	kfree(handle);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/fw.c
@@ -239,7 +239,7 @@
 			return err;
 	}
 
-	if (MLX5_CAP_GEN(dev, tls)) {
+	if (MLX5_CAP_GEN(dev, tls_tx)) {
 		err = mlx5_core_get_caps(dev, MLX5_CAP_TLS);
 		if (err)
 			return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/health.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/health.c
@@ -193,15 +193,23 @@
 
 void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force)
 {
+	bool err_detected = false;
+
+	/* Mark the device as fatal in order to abort FW commands */
+	if ((check_fatal_sensors(dev) || force) &&
+	    dev->state == MLX5_DEVICE_STATE_UP) {
+		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
+		err_detected = true;
+	}
 	mutex_lock(&dev->intf_state_mutex);
-	if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
-		goto unlock;
+	if (!err_detected && dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
+		goto unlock;/* a previous error is still being handled */
 	if (dev->state == MLX5_DEVICE_STATE_UNINITIALIZED) {
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		goto unlock;
 	}
 
-	if (check_fatal_sensors(dev) || force) {
+	if (check_fatal_sensors(dev) || force) { /* protected state setting */
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		mlx5_cmd_flush(dev);
 	}
@@ -243,7 +251,7 @@
 		if (mlx5_get_nic_state(dev) == MLX5_NIC_IFC_DISABLED)
 			break;
 
-		cond_resched();
+		msleep(20);
 	} while (!time_after(jiffies, end));
 
 	if (mlx5_get_nic_state(dev) != MLX5_NIC_IFC_DISABLED) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
@@ -396,7 +396,7 @@
 err_destroy_direct_tirs:
 	mlx5e_destroy_direct_tirs(priv, priv->direct_tir);
 err_destroy_indirect_tirs:
-	mlx5e_destroy_indirect_tirs(priv, true);
+	mlx5e_destroy_indirect_tirs(priv);
 err_destroy_direct_rqts:
 	mlx5e_destroy_direct_rqts(priv, priv->direct_tir);
 err_destroy_indirect_rqts:
@@ -412,7 +412,7 @@
 {
 	mlx5i_destroy_flow_steering(priv);
 	mlx5e_destroy_direct_tirs(priv, priv->direct_tir);
-	mlx5e_destroy_indirect_tirs(priv, true);
+	mlx5e_destroy_indirect_tirs(priv);
 	mlx5e_destroy_direct_rqts(priv, priv->direct_tir);
 	mlx5e_destroy_rqt(priv, &priv->indir_rqt);
 	mlx5e_close_drop_rq(&priv->drop_rq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
@@ -388,10 +388,31 @@
 	return 0;
 }
 
+enum {
+	MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_IN = BIT(0),
+	MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_OUT = BIT(1),
+};
+
 static int mlx5_ptp_verify(struct ptp_clock_info *ptp, unsigned int pin,
 			   enum ptp_pin_function func, unsigned int chan)
 {
-	return (func == PTP_PF_PHYSYNC) ? -EOPNOTSUPP : 0;
+	struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock,
+						ptp_info);
+
+	switch (func) {
+	case PTP_PF_NONE:
+		return 0;
+	case PTP_PF_EXTTS:
+		return !(clock->pps_info.pin_caps[pin] &
+			 MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_IN);
+	case PTP_PF_PEROUT:
+		return !(clock->pps_info.pin_caps[pin] &
+			 MLX5_MTPPS_REG_CAP_PIN_X_MODE_SUPPORT_PPS_OUT);
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	return -EOPNOTSUPP;
 }
 
 static const struct ptp_clock_info mlx5_ptp_clock_info = {
@@ -477,8 +498,9 @@
 	switch (clock->ptp_info.pin_config[pin].func) {
 	case PTP_PF_EXTTS:
 		ptp_event.index = pin;
-		ptp_event.timestamp = timecounter_cyc2time(&clock->tc,
-					be64_to_cpu(eqe->data.pps.time_stamp));
+		ptp_event.timestamp =
+			mlx5_timecounter_cyc2time(clock,
+						  be64_to_cpu(eqe->data.pps.time_stamp));
 		if (clock->pps_info.enabled) {
 			ptp_event.type = PTP_CLOCK_PPSUSR;
 			ptp_event.pps_times.ts_real =
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h
@@ -38,6 +38,7 @@
 struct mlx5_eq_async {
 	struct mlx5_eq          core;
 	struct notifier_block   irq_nb;
+	spinlock_t              lock; /* To avoid irq EQ handle races with resiliency flows */
 };
 
 struct mlx5_eq_comp {
@@ -82,6 +83,7 @@
 struct cpumask *mlx5_eq_comp_cpumask(struct mlx5_core_dev *dev, int ix);
 
 u32 mlx5_eq_poll_irq_disabled(struct mlx5_eq_comp *eq);
+void mlx5_cmd_eq_recover(struct mlx5_core_dev *dev);
 void mlx5_eq_synchronize_async_irq(struct mlx5_core_dev *dev);
 void mlx5_eq_synchronize_cmd_irq(struct mlx5_core_dev *dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -50,6 +50,7 @@
 #ifdef CONFIG_RFS_ACCEL
 #include <linux/cpu_rmap.h>
 #endif
+#include <linux/version.h>
 #include <net/devlink.h>
 #include "mlx5_core.h"
 #include "lib/eq.h"
@@ -227,7 +228,10 @@
 	strncat(string, ",", remaining_size);
 
 	remaining_size = max_t(int, 0, driver_ver_sz - strlen(string));
-	strncat(string, DRIVER_VERSION, remaining_size);
+
+	snprintf(string + strlen(string), remaining_size, "%u.%u.%u",
+		 (u8)((LINUX_VERSION_CODE >> 16) & 0xff), (u8)((LINUX_VERSION_CODE >> 8) & 0xff),
+		 (u16)(LINUX_VERSION_CODE & 0xffff));
 
 	/*Send the command*/
 	MLX5_SET(set_driver_version_in, in, opcode,
@@ -794,6 +798,11 @@
 
 static void mlx5_pci_close(struct mlx5_core_dev *dev)
 {
+	/* health work might still be active, and it needs pci bar in
+	 * order to know the NIC state. Therefore, drain the health WQ
+	 * before removing the pci bars
+	 */
+	mlx5_drain_health_wq(dev);
 	iounmap(dev->iseg);
 	pci_clear_master(dev->pdev);
 	release_bar(dev->pdev);
@@ -1168,7 +1177,7 @@
 	mlx5_put_uars_page(dev, dev->priv.uar);
 }
 
-static int mlx5_load_one(struct mlx5_core_dev *dev, bool boot)
+int mlx5_load_one(struct mlx5_core_dev *dev, bool boot)
 {
 	int err = 0;
 
@@ -1183,7 +1192,7 @@
 
 	err = mlx5_function_setup(dev, boot);
 	if (err)
-		goto out;
+		goto err_function;
 
 	if (boot) {
 		err = mlx5_init_once(dev);
@@ -1197,6 +1206,12 @@
 	if (err)
 		goto err_load;
 
+	if (boot) {
+		err = mlx5_devlink_register(priv_to_devlink(dev), dev->device);
+		if (err)
+			goto err_devlink_reg;
+	}
+
 	if (mlx5_device_registered(dev)) {
 		mlx5_attach_device(dev);
 	} else {
@@ -1214,22 +1229,24 @@
 	return err;
 
 err_reg_dev:
+	if (boot)
+		mlx5_devlink_unregister(priv_to_devlink(dev));
+err_devlink_reg:
 	mlx5_unload(dev);
 err_load:
 	if (boot)
 		mlx5_cleanup_once(dev);
 function_teardown:
 	mlx5_function_teardown(dev, boot);
+err_function:
 	dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 	mutex_unlock(&dev->intf_state_mutex);
 
 	return err;
 }
 
-static int mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup)
+int mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup)
 {
-	int err = 0;
-
 	if (cleanup) {
 		mlx5_unregister_device(dev);
 		mlx5_drain_health_wq(dev);
@@ -1257,7 +1274,7 @@
 	mlx5_function_teardown(dev, cleanup);
 out:
 	mutex_unlock(&dev->intf_state_mutex);
-	return err;
+	return 0;
 }
 
 static int mlx5_mdev_init(struct mlx5_core_dev *dev, int profile_idx)
@@ -1353,10 +1370,6 @@
 
 	request_module_nowait(MLX5_IB_MOD);
 
-	err = mlx5_devlink_register(devlink, &pdev->dev);
-	if (err)
-		goto clean_load;
-
 	err = mlx5_crdump_enable(dev);
 	if (err)
 		dev_err(&pdev->dev, "mlx5_crdump_enable failed with error code %d\n", err);
@@ -1364,9 +1377,6 @@
 	pci_save_state(pdev);
 	return 0;
 
-clean_load:
-	mlx5_unload_one(dev, true);
-
 err_load_one:
 	mlx5_pci_close(dev);
 pci_init_err:
@@ -1551,6 +1561,22 @@
 	mlx5_pci_disable_device(dev);
 }
 
+static int mlx5_suspend(struct pci_dev *pdev, pm_message_t state)
+{
+	struct mlx5_core_dev *dev = pci_get_drvdata(pdev);
+
+	mlx5_unload_one(dev, false);
+
+	return 0;
+}
+
+static int mlx5_resume(struct pci_dev *pdev)
+{
+	struct mlx5_core_dev *dev = pci_get_drvdata(pdev);
+
+	return mlx5_load_one(dev, false);
+}
+
 static const struct pci_device_id mlx5_core_pci_table[] = {
 	{ PCI_VDEVICE(MELLANOX, PCI_DEVICE_ID_MELLANOX_CONNECTIB) },
 	{ PCI_VDEVICE(MELLANOX, 0x1012), MLX5_PCI_DEV_IS_VF},	/* Connect-IB VF */
@@ -1567,6 +1593,7 @@
 	{ PCI_VDEVICE(MELLANOX, 0x101d) },			/* ConnectX-6 Dx */
 	{ PCI_VDEVICE(MELLANOX, 0x101e), MLX5_PCI_DEV_IS_VF},	/* ConnectX Family mlx5Gen Virtual Function */
 	{ PCI_VDEVICE(MELLANOX, 0x101f) },			/* ConnectX-6 LX */
+	{ PCI_VDEVICE(MELLANOX, 0x1021) },			/* ConnectX-7 */
 	{ PCI_VDEVICE(MELLANOX, 0xa2d2) },			/* BlueField integrated ConnectX-5 network controller */
 	{ PCI_VDEVICE(MELLANOX, 0xa2d3), MLX5_PCI_DEV_IS_VF},	/* BlueField integrated ConnectX-5 network controller VF */
 	{ PCI_VDEVICE(MELLANOX, 0xa2d6) },			/* BlueField-2 integrated ConnectX-6 Dx network controller */
@@ -1593,6 +1620,8 @@
 	.id_table       = mlx5_core_pci_table,
 	.probe          = init_one,
 	.remove         = remove_one,
+	.suspend        = mlx5_suspend,
+	.resume         = mlx5_resume,
 	.shutdown	= shutdown,
 	.err_handler	= &mlx5_err_handler,
 	.sriov_configure   = mlx5_core_sriov_configure,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
@@ -243,4 +243,7 @@
 
 u8 mlx5_get_nic_state(struct mlx5_core_dev *dev);
 void mlx5_set_nic_state(struct mlx5_core_dev *dev, u8 state);
+
+int mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup);
+int mlx5_load_one(struct mlx5_core_dev *dev, bool boot);
 #endif /* __MLX5_CORE_H__ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
@@ -339,6 +339,24 @@
 	return err;
 }
 
+static u32 fwp_fill_manage_pages_out(struct fw_page *fwp, u32 *out, u32 index,
+				     u32 npages)
+{
+	u32 pages_set = 0;
+	unsigned int n;
+
+	for_each_clear_bit(n, &fwp->bitmask, MLX5_NUM_4K_IN_PAGE) {
+		MLX5_ARRAY_SET64(manage_pages_out, out, pas, index + pages_set,
+				 fwp->addr + (n * MLX5_ADAPTER_PAGE_SIZE));
+		pages_set++;
+
+		if (!--npages)
+			break;
+	}
+
+	return pages_set;
+}
+
 static int reclaim_pages_cmd(struct mlx5_core_dev *dev,
 			     u32 *in, int in_size, u32 *out, int out_size)
 {
@@ -362,8 +380,7 @@
 		if (fwp->func_id != func_id)
 			continue;
 
-		MLX5_ARRAY_SET64(manage_pages_out, out, pas, i, fwp->addr);
-		i++;
+		i += fwp_fill_manage_pages_out(fwp, out, i, npages - i);
 	}
 
 	MLX5_SET(manage_pages_out, out, output_num_entries, i);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
@@ -115,7 +115,7 @@
 	return 0;
 
 err_request_irq:
-	for (; i >= 0; i--) {
+	while (i--) {
 		struct mlx5_irq *irq = mlx5_irq_get(dev, i);
 		int irqn = pci_irq_vector(dev->pdev, i);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/port.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/port.c
@@ -293,7 +293,40 @@
 	return 0;
 }
 
-static int mlx5_eeprom_page(int offset)
+static int mlx5_query_module_id(struct mlx5_core_dev *dev, int module_num,
+				u8 *module_id)
+{
+	u32 in[MLX5_ST_SZ_DW(mcia_reg)] = {};
+	u32 out[MLX5_ST_SZ_DW(mcia_reg)];
+	int err, status;
+	u8 *ptr;
+
+	MLX5_SET(mcia_reg, in, i2c_device_address, MLX5_I2C_ADDR_LOW);
+	MLX5_SET(mcia_reg, in, module, module_num);
+	MLX5_SET(mcia_reg, in, device_address, 0);
+	MLX5_SET(mcia_reg, in, page_number, 0);
+	MLX5_SET(mcia_reg, in, size, 1);
+	MLX5_SET(mcia_reg, in, l, 0);
+
+	err = mlx5_core_access_reg(dev, in, sizeof(in), out,
+				   sizeof(out), MLX5_REG_MCIA, 0, 0);
+	if (err)
+		return err;
+
+	status = MLX5_GET(mcia_reg, out, status);
+	if (status) {
+		mlx5_core_err(dev, "query_mcia_reg failed: status: 0x%x\n",
+			      status);
+		return -EIO;
+	}
+	ptr = MLX5_ADDR_OF(mcia_reg, out, dword_0);
+
+	*module_id = ptr[0];
+
+	return 0;
+}
+
+static int mlx5_qsfp_eeprom_page(u16 offset)
 {
 	if (offset < MLX5_EEPROM_PAGE_LENGTH)
 		/* Addresses between 0-255 - page 00 */
@@ -307,7 +340,7 @@
 		    MLX5_EEPROM_HIGH_PAGE_LENGTH);
 }
 
-static int mlx5_eeprom_high_page_offset(int page_num)
+static int mlx5_qsfp_eeprom_high_page_offset(int page_num)
 {
 	if (!page_num) /* Page 0 always start from low page */
 		return 0;
@@ -316,35 +349,62 @@
 	return page_num * MLX5_EEPROM_HIGH_PAGE_LENGTH;
 }
 
+static void mlx5_qsfp_eeprom_params_set(u16 *i2c_addr, int *page_num, u16 *offset)
+{
+	*i2c_addr = MLX5_I2C_ADDR_LOW;
+	*page_num = mlx5_qsfp_eeprom_page(*offset);
+	*offset -=  mlx5_qsfp_eeprom_high_page_offset(*page_num);
+}
+
+static void mlx5_sfp_eeprom_params_set(u16 *i2c_addr, int *page_num, u16 *offset)
+{
+	*i2c_addr = MLX5_I2C_ADDR_LOW;
+	*page_num = 0;
+
+	if (*offset < MLX5_EEPROM_PAGE_LENGTH)
+		return;
+
+	*i2c_addr = MLX5_I2C_ADDR_HIGH;
+	*offset -= MLX5_EEPROM_PAGE_LENGTH;
+}
+
 int mlx5_query_module_eeprom(struct mlx5_core_dev *dev,
 			     u16 offset, u16 size, u8 *data)
 {
-	int module_num, page_num, status, err;
+	int module_num, status, err, page_num = 0;
+	u32 in[MLX5_ST_SZ_DW(mcia_reg)] = {};
 	u32 out[MLX5_ST_SZ_DW(mcia_reg)];
-	u32 in[MLX5_ST_SZ_DW(mcia_reg)];
-	u16 i2c_addr;
-	void *ptr = MLX5_ADDR_OF(mcia_reg, out, dword_0);
+	u16 i2c_addr = 0;
+	u8 module_id;
+	void *ptr;
 
 	err = mlx5_query_module_num(dev, &module_num);
 	if (err)
 		return err;
 
-	memset(in, 0, sizeof(in));
-	size = min_t(int, size, MLX5_EEPROM_MAX_BYTES);
-
-	/* Get the page number related to the given offset */
-	page_num = mlx5_eeprom_page(offset);
+	err = mlx5_query_module_id(dev, module_num, &module_id);
+	if (err)
+		return err;
 
-	/* Set the right offset according to the page number,
-	 * For page_num > 0, relative offset is always >= 128 (high page).
-	 */
-	offset -= mlx5_eeprom_high_page_offset(page_num);
+	switch (module_id) {
+	case MLX5_MODULE_ID_SFP:
+		mlx5_sfp_eeprom_params_set(&i2c_addr, &page_num, &offset);
+		break;
+	case MLX5_MODULE_ID_QSFP:
+	case MLX5_MODULE_ID_QSFP_PLUS:
+	case MLX5_MODULE_ID_QSFP28:
+		mlx5_qsfp_eeprom_params_set(&i2c_addr, &page_num, &offset);
+		break;
+	default:
+		mlx5_core_err(dev, "Module ID not recognized: 0x%x\n", module_id);
+		return -EINVAL;
+	}
 
 	if (offset + size > MLX5_EEPROM_PAGE_LENGTH)
 		/* Cross pages read, read until offset 256 in low page */
 		size -= offset + size - MLX5_EEPROM_PAGE_LENGTH;
 
-	i2c_addr = MLX5_I2C_ADDR_LOW;
+	size = min_t(int, size, MLX5_EEPROM_MAX_BYTES);
 
 	MLX5_SET(mcia_reg, in, l, 0);
 	MLX5_SET(mcia_reg, in, module, module_num);
@@ -365,6 +425,7 @@
 		return -EIO;
 	}
 
+	ptr = MLX5_ADDR_OF(mcia_reg, out, dword_0);
 	memcpy(data, ptr, size);
 
 	return size;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
@@ -116,7 +116,7 @@
 static void mlx5_rdma_del_roce_addr(struct mlx5_core_dev *dev)
 {
 	mlx5_core_roce_gid_set(dev, 0, 0, 0,
-			       NULL, NULL, false, 0, 0);
+			       NULL, NULL, false, 0, 1);
 }
 
 static void mlx5_rdma_make_default_gid(struct mlx5_core_dev *dev, union ib_gid *gid)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
@@ -930,7 +930,6 @@
 
 	action->rewrite.data = (void *)ops;
 	action->rewrite.num_of_actions = i;
-	action->rewrite.chunk->byte_size = i * sizeof(*ops);
 
 	ret = mlx5dr_send_postsend_action(dmn, action);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c
@@ -92,6 +92,7 @@
 	caps->eswitch_manager	= MLX5_CAP_GEN(mdev, eswitch_manager);
 	caps->gvmi		= MLX5_CAP_GEN(mdev, vhca_id);
 	caps->flex_protocols	= MLX5_CAP_GEN(mdev, flex_parser_protocols);
+	caps->sw_format_ver	= MLX5_CAP_GEN(mdev, steering_format_version);
 
 	if (mlx5dr_matcher_supp_flex_parser_icmp_v4(caps)) {
 		caps->flex_parser_id_icmp_dw0 = MLX5_CAP_GEN(mdev, flex_parser_id_icmp_dw0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
@@ -223,6 +223,11 @@
 	if (ret)
 		return ret;
 
+	if (dmn->info.caps.sw_format_ver != MLX5_STEERING_FORMAT_CONNECTX_5) {
+		mlx5dr_err(dmn, "SW steering is not supported on this device\n");
+		return -EOPNOTSUPP;
+	}
+
 	ret = dr_domain_query_fdb_caps(mdev, dmn);
 	if (ret)
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c
@@ -209,7 +209,7 @@
 	/* We need to copy the refcount since this ste
 	 * may have been traversed several times
 	 */
-	refcount_set(&new_ste->refcount, refcount_read(&cur_ste->refcount));
+	new_ste->refcount = cur_ste->refcount;
 
 	/* Link old STEs rule_mem list to the new ste */
 	mlx5dr_rule_update_rule_member(cur_ste, new_ste);
@@ -638,6 +638,9 @@
 	if (!rule_mem)
 		return -ENOMEM;
 
+	INIT_LIST_HEAD(&rule_mem->list);
+	INIT_LIST_HEAD(&rule_mem->use_ste_list);
+
 	rule_mem->ste = ste;
 	list_add_tail(&rule_mem->list, &nic_rule->rule_members_list);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
 /* Copyright (c) 2019 Mellanox Technologies. */
 
+#include <linux/smp.h>
 #include "dr_types.h"
 
 #define QUEUE_SIZE 128
@@ -180,7 +181,7 @@
 							 in, pas));
 
 	err = mlx5_core_create_qp(mdev, &dr_qp->mqp, in, inlen);
-	kfree(in);
+	kvfree(in);
 
 	if (err) {
 		mlx5_core_warn(mdev, " Can't create QP\n");
@@ -557,7 +558,8 @@
 	int ret;
 
 	send_info.write.addr = (uintptr_t)action->rewrite.data;
-	send_info.write.length = action->rewrite.chunk->byte_size;
+	send_info.write.length = action->rewrite.num_of_actions *
+				 DR_MODIFY_ACTION_SIZE;
 	send_info.write.lkey = 0;
 	send_info.remote_addr = action->rewrite.chunk->mr_addr;
 	send_info.rkey = action->rewrite.chunk->rkey;
@@ -687,6 +689,12 @@
 	pr_info("CQ event %u on CQ #%u\n", event, mcq->cqn);
 }
 
+static void dr_cq_complete(struct mlx5_core_cq *mcq,
+			   struct mlx5_eqe *eqe)
+{
+	pr_err("CQ completion CQ: #%u\n", mcq->cqn);
+}
+
 static struct mlx5dr_cq *dr_create_cq(struct mlx5_core_dev *mdev,
 				      struct mlx5_uars_page *uar,
 				      size_t ncqe)
@@ -729,7 +737,7 @@
 	if (!in)
 		goto err_cqwq;
 
-	vector = smp_processor_id() % mlx5_comp_vectors_count(mdev);
+	vector = raw_smp_processor_id() % mlx5_comp_vectors_count(mdev);
 	err = mlx5_vector2eqn(mdev, vector, &eqn, &irqn);
 	if (err) {
 		kvfree(in);
@@ -748,6 +756,7 @@
 	mlx5_fill_page_frag_array(&cq->wq_ctrl.buf, pas);
 
 	cq->mcq.event = dr_cq_event;
+	cq->mcq.comp  = dr_cq_complete;
 
 	err = mlx5_core_create_cq(mdev, &cq->mcq, in, inlen, out, sizeof(out));
 	kvfree(in);
@@ -759,7 +768,12 @@
 	cq->mcq.set_ci_db = cq->wq_ctrl.db.db;
 	cq->mcq.arm_db = cq->wq_ctrl.db.db + 1;
 	*cq->mcq.set_ci_db = 0;
-	*cq->mcq.arm_db = 0;
+
+	/* set no-zero value, in order to avoid the HW to run db-recovery on
+	 * CQ that used in polling mode.
+	 */
+	*cq->mcq.arm_db = cpu_to_be32(2 << 28);
+
 	cq->mcq.vector = 0;
 	cq->mcq.irqn = irqn;
 	cq->mcq.uar = uar;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.c
@@ -340,7 +340,7 @@
 	if (dst->next_htbl)
 		dst->next_htbl->pointing_ste = dst;
 
-	refcount_set(&dst->refcount, refcount_read(&src->refcount));
+	dst->refcount = src->refcount;
 
 	INIT_LIST_HEAD(&dst->rule_list);
 	list_splice_tail_init(&src->rule_list, &dst->rule_list);
@@ -557,7 +557,7 @@
 
 bool mlx5dr_ste_not_used_ste(struct mlx5dr_ste *ste)
 {
-	return !refcount_read(&ste->refcount);
+	return !ste->refcount;
 }
 
 /* Init one ste as a pattern for ste data array */
@@ -681,14 +681,14 @@
 	htbl->ste_arr = chunk->ste_arr;
 	htbl->hw_ste_arr = chunk->hw_ste_arr;
 	htbl->miss_list = chunk->miss_list;
-	refcount_set(&htbl->refcount, 0);
+	htbl->refcount = 0;
 
 	for (i = 0; i < chunk->num_of_entries; i++) {
 		struct mlx5dr_ste *ste = &htbl->ste_arr[i];
 
 		ste->hw_ste = htbl->hw_ste_arr + i * DR_STE_SIZE_REDUCED;
 		ste->htbl = htbl;
-		refcount_set(&ste->refcount, 0);
+		ste->refcount = 0;
 		INIT_LIST_HEAD(&ste->miss_list_node);
 		INIT_LIST_HEAD(&htbl->miss_list[i]);
 		INIT_LIST_HEAD(&ste->rule_list);
@@ -705,7 +705,7 @@
 
 int mlx5dr_ste_htbl_free(struct mlx5dr_ste_htbl *htbl)
 {
-	if (refcount_read(&htbl->refcount))
+	if (htbl->refcount)
 		return -EBUSY;
 
 	mlx5dr_icm_free_chunk(htbl->chunk);
@@ -2257,7 +2257,9 @@
 	struct mlx5dr_cmd_vport_cap *vport_cap;
 	struct mlx5dr_domain *dmn = sb->dmn;
 	struct mlx5dr_cmd_caps *caps;
+	u8 *bit_mask = sb->bit_mask;
 	u8 *tag = hw_ste->tag;
+	bool source_gvmi_set;
 
 	DR_STE_SET_TAG(src_gvmi_qp, tag, source_qp, misc, source_sqn);
 
@@ -2278,7 +2280,8 @@
 	if (!vport_cap)
 		return -EINVAL;
 
-	if (vport_cap->vport_gvmi)
+	source_gvmi_set = MLX5_GET(ste_src_gvmi_qp, bit_mask, source_gvmi);
+	if (vport_cap->vport_gvmi && source_gvmi_set)
 		MLX5_SET(ste_src_gvmi_qp, tag, source_gvmi, vport_cap->vport_gvmi);
 
 	misc->source_eswitch_owner_vhca_id = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h
@@ -117,7 +117,7 @@
 struct mlx5dr_ste {
 	u8 *hw_ste;
 	/* refcount: indicates the num of rules that using this ste */
-	refcount_t refcount;
+	u32 refcount;
 
 	/* attached to the miss_list head at each htbl entry */
 	struct list_head miss_list_node;
@@ -149,7 +149,7 @@
 struct mlx5dr_ste_htbl {
 	u8 lu_type;
 	u16 byte_mask;
-	refcount_t refcount;
+	u32 refcount;
 	struct mlx5dr_icm_chunk *chunk;
 	struct mlx5dr_ste *ste_arr;
 	u8 *hw_ste_arr;
@@ -200,13 +200,14 @@
 
 static inline void mlx5dr_htbl_put(struct mlx5dr_ste_htbl *htbl)
 {
-	if (refcount_dec_and_test(&htbl->refcount))
+	htbl->refcount--;
+	if (!htbl->refcount)
 		mlx5dr_ste_htbl_free(htbl);
 }
 
 static inline void mlx5dr_htbl_get(struct mlx5dr_ste_htbl *htbl)
 {
-	refcount_inc(&htbl->refcount);
+	htbl->refcount++;
 }
 
 /* STE utils */
@@ -248,14 +249,15 @@
 				  struct mlx5dr_matcher *matcher,
 				  struct mlx5dr_matcher_rx_tx *nic_matcher)
 {
-	if (refcount_dec_and_test(&ste->refcount))
+	ste->refcount--;
+	if (!ste->refcount)
 		mlx5dr_ste_free(ste, matcher, nic_matcher);
 }
 
 /* initial as 0, increased only when ste appears in a new rule */
 static inline void mlx5dr_ste_get(struct mlx5dr_ste *ste)
 {
-	refcount_inc(&ste->refcount);
+	ste->refcount++;
 }
 
 void mlx5dr_ste_set_hit_addr_by_next_htbl(u8 *hw_ste,
@@ -611,6 +613,7 @@
 	u8 max_ft_level;
 	u16 roce_min_src_udp;
 	u8 num_esw_ports;
+	u8 sw_format_ver;
 	bool eswitch_manager;
 	bool rx_sw_owner;
 	bool tx_sw_owner;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
@@ -247,29 +247,9 @@
 
 	/* The order of the actions are must to be keep, only the following
 	 * order is supported by SW steering:
-	 * TX: push vlan -> modify header -> encap
+	 * TX: modify header -> push vlan -> encap
 	 * RX: decap -> pop vlan -> modify header
 	 */
-	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH) {
-		tmp_action = create_action_push_vlan(domain, &fte->action.vlan[0]);
-		if (!tmp_action) {
-			err = -ENOMEM;
-			goto free_actions;
-		}
-		fs_dr_actions[fs_dr_num_actions++] = tmp_action;
-		actions[num_actions++] = tmp_action;
-	}
-
-	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH_2) {
-		tmp_action = create_action_push_vlan(domain, &fte->action.vlan[1]);
-		if (!tmp_action) {
-			err = -ENOMEM;
-			goto free_actions;
-		}
-		fs_dr_actions[fs_dr_num_actions++] = tmp_action;
-		actions[num_actions++] = tmp_action;
-	}
-
 	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_DECAP) {
 		enum mlx5dr_action_reformat_type decap_type =
 			DR_ACTION_REFORMAT_TYP_TNL_L2_TO_L2;
@@ -322,6 +302,26 @@
 		actions[num_actions++] =
 			fte->action.modify_hdr->action.dr_action;
 
+	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH) {
+		tmp_action = create_action_push_vlan(domain, &fte->action.vlan[0]);
+		if (!tmp_action) {
+			err = -ENOMEM;
+			goto free_actions;
+		}
+		fs_dr_actions[fs_dr_num_actions++] = tmp_action;
+		actions[num_actions++] = tmp_action;
+	}
+
+	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH_2) {
+		tmp_action = create_action_push_vlan(domain, &fte->action.vlan[1]);
+		if (!tmp_action) {
+			err = -ENOMEM;
+			goto free_actions;
+		}
+		fs_dr_actions[fs_dr_num_actions++] = tmp_action;
+		actions[num_actions++] = tmp_action;
+	}
+
 	if (delay_encap_set)
 		actions[num_actions++] =
 			fte->action.pkt_reformat->action.dr_action;
@@ -352,26 +352,16 @@
 	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) {
 		list_for_each_entry(dst, &fte->node.children, node.list) {
 			enum mlx5_flow_destination_type type = dst->dest_attr.type;
-			u32 id;
 
 			if (num_actions == MLX5_FLOW_CONTEXT_ACTION_MAX) {
 				err = -ENOSPC;
 				goto free_actions;
 			}
 
-			switch (type) {
-			case MLX5_FLOW_DESTINATION_TYPE_COUNTER:
-				id = dst->dest_attr.counter_id;
+			if (type == MLX5_FLOW_DESTINATION_TYPE_COUNTER)
+				continue;
 
-				tmp_action =
-					mlx5dr_action_create_flow_counter(id);
-				if (!tmp_action) {
-					err = -ENOMEM;
-					goto free_actions;
-				}
-				fs_dr_actions[fs_dr_num_actions++] = tmp_action;
-				actions[num_actions++] = tmp_action;
-				break;
+			switch (type) {
 			case MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE:
 				tmp_action = create_ft_action(dev, dst);
 				if (!tmp_action) {
@@ -397,6 +387,32 @@
 		}
 	}
 
+	if (fte->action.action & MLX5_FLOW_CONTEXT_ACTION_COUNT) {
+		list_for_each_entry(dst, &fte->node.children, node.list) {
+			u32 id;
+
+			if (dst->dest_attr.type !=
+			    MLX5_FLOW_DESTINATION_TYPE_COUNTER)
+				continue;
+
+			if (num_actions == MLX5_FLOW_CONTEXT_ACTION_MAX) {
+				err = -ENOSPC;
+				goto free_actions;
+			}
+
+			id = dst->dest_attr.counter_id;
+			tmp_action =
+				mlx5dr_action_create_flow_counter(id);
+			if (!tmp_action) {
+				err = -ENOMEM;
+				goto free_actions;
+			}
+
+			fs_dr_actions[fs_dr_num_actions++] = tmp_action;
+			actions[num_actions++] = tmp_action;
+		}
+	}
+
 	params.match_sz = match_sz;
 	params.match_buf = (u64 *)fte->val;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/wq.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/wq.c
@@ -96,6 +96,13 @@
 	return err;
 }
 
+void mlx5_wq_cyc_reset(struct mlx5_wq_cyc *wq)
+{
+	wq->wqe_ctr = 0;
+	wq->cur_sz = 0;
+	mlx5_wq_cyc_update_db_record(wq);
+}
+
 int mlx5_wq_qp_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param,
 		      void *qpc, struct mlx5_wq_qp *wq,
 		      struct mlx5_wq_ctrl *wq_ctrl)
@@ -194,6 +201,19 @@
 	return err;
 }
 
+static void mlx5_wq_ll_init_list(struct mlx5_wq_ll *wq)
+{
+	struct mlx5_wqe_srq_next_seg *next_seg;
+	int i;
+
+	for (i = 0; i < wq->fbc.sz_m1; i++) {
+		next_seg = mlx5_wq_ll_get_wqe(wq, i);
+		next_seg->next_wqe_index = cpu_to_be16(i + 1);
+	}
+	next_seg = mlx5_wq_ll_get_wqe(wq, i);
+	wq->tail_next = &next_seg->next_wqe_index;
+}
+
 int mlx5_wq_ll_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param,
 		      void *wqc, struct mlx5_wq_ll *wq,
 		      struct mlx5_wq_ctrl *wq_ctrl)
@@ -201,9 +221,7 @@
 	u8 log_wq_stride = MLX5_GET(wq, wqc, log_wq_stride);
 	u8 log_wq_sz     = MLX5_GET(wq, wqc, log_wq_sz);
 	struct mlx5_frag_buf_ctrl *fbc = &wq->fbc;
-	struct mlx5_wqe_srq_next_seg *next_seg;
 	int err;
-	int i;
 
 	err = mlx5_db_alloc_node(mdev, &wq_ctrl->db, param->db_numa_node);
 	if (err) {
@@ -222,13 +240,7 @@
 
 	mlx5_init_fbc(wq_ctrl->buf.frags, log_wq_stride, log_wq_sz, fbc);
 
-	for (i = 0; i < fbc->sz_m1; i++) {
-		next_seg = mlx5_wq_ll_get_wqe(wq, i);
-		next_seg->next_wqe_index = cpu_to_be16(i + 1);
-	}
-	next_seg = mlx5_wq_ll_get_wqe(wq, i);
-	wq->tail_next = &next_seg->next_wqe_index;
-
+	mlx5_wq_ll_init_list(wq);
 	wq_ctrl->mdev = mdev;
 
 	return 0;
@@ -239,6 +251,15 @@
 	return err;
 }
 
+void mlx5_wq_ll_reset(struct mlx5_wq_ll *wq)
+{
+	wq->head = 0;
+	wq->wqe_ctr = 0;
+	wq->cur_sz = 0;
+	mlx5_wq_ll_init_list(wq);
+	mlx5_wq_ll_update_db_record(wq);
+}
+
 void mlx5_wq_destroy(struct mlx5_wq_ctrl *wq_ctrl)
 {
 	mlx5_frag_buf_free(wq_ctrl->mdev, &wq_ctrl->buf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlx5/core/wq.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlx5/core/wq.h
@@ -80,10 +80,12 @@
 		       void *wqc, struct mlx5_wq_cyc *wq,
 		       struct mlx5_wq_ctrl *wq_ctrl);
 u32 mlx5_wq_cyc_get_size(struct mlx5_wq_cyc *wq);
+void mlx5_wq_cyc_reset(struct mlx5_wq_cyc *wq);
 
 int mlx5_wq_qp_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param,
 		      void *qpc, struct mlx5_wq_qp *wq,
 		      struct mlx5_wq_ctrl *wq_ctrl);
+void mlx5_wq_ll_reset(struct mlx5_wq_ll *wq);
 
 int mlx5_cqwq_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param,
 		     void *cqc, struct mlx5_cqwq *wq,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c
@@ -6,6 +6,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/netlink.h>
+#include <linux/vmalloc.h>
 #include <linux/xz.h>
 #include "mlxfw_mfa2.h"
 #include "mlxfw_mfa2_file.h"
@@ -548,7 +549,7 @@
 	comp_size = be32_to_cpu(comp->size);
 	comp_buf_size = comp_size + mlxfw_mfa2_comp_magic_len;
 
-	comp_data = kmalloc(sizeof(*comp_data) + comp_buf_size, GFP_KERNEL);
+	comp_data = vzalloc(sizeof(*comp_data) + comp_buf_size);
 	if (!comp_data)
 		return ERR_PTR(-ENOMEM);
 	comp_data->comp.data_size = comp_size;
@@ -570,7 +571,7 @@
 	comp_data->comp.data = comp_data->buff + mlxfw_mfa2_comp_magic_len;
 	return &comp_data->comp;
 err_out:
-	kfree(comp_data);
+	vfree(comp_data);
 	return ERR_PTR(err);
 }
 
@@ -579,7 +580,7 @@
 	const struct mlxfw_mfa2_comp_data *comp_data;
 
 	comp_data = container_of(comp, struct mlxfw_mfa2_comp_data, comp);
-	kfree(comp_data);
+	vfree(comp_data);
 }
 
 void mlxfw_mfa2_file_fini(struct mlxfw_mfa2_file *mfa2_file)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/core.c
@@ -444,7 +444,8 @@
 	if (trans->core->fw_flash_in_progress)
 		timeout = msecs_to_jiffies(MLXSW_EMAD_TIMEOUT_DURING_FW_FLASH_MS);
 
-	queue_delayed_work(trans->core->emad_wq, &trans->timeout_dw, timeout);
+	queue_delayed_work(trans->core->emad_wq, &trans->timeout_dw,
+			   timeout << trans->retries);
 }
 
 static int mlxsw_emad_transmit(struct mlxsw_core *mlxsw_core,
@@ -493,6 +494,9 @@
 		err = mlxsw_emad_transmit(trans->core, trans);
 		if (err == 0)
 			return;
+
+		if (!atomic_dec_and_test(&trans->active))
+			return;
 	} else {
 		err = -EIO;
 	}
@@ -592,7 +596,7 @@
 	err = mlxsw_core_trap_register(mlxsw_core, &mlxsw_emad_rx_listener,
 				       mlxsw_core);
 	if (err)
-		return err;
+		goto err_trap_register;
 
 	err = mlxsw_core->driver->basic_trap_groups_set(mlxsw_core);
 	if (err)
@@ -604,6 +608,7 @@
 err_emad_trap_set:
 	mlxsw_core_trap_unregister(mlxsw_core, &mlxsw_emad_rx_listener,
 				   mlxsw_core);
+err_trap_register:
 	destroy_workqueue(mlxsw_core->emad_wq);
 	return err;
 }
@@ -1280,6 +1285,8 @@
 	if (!reload)
 		devlink_resources_unregister(devlink, NULL);
 	mlxsw_core->bus->fini(mlxsw_core->bus_priv);
+	if (!reload)
+		devlink_free(devlink);
 
 	return;
 
@@ -1576,7 +1583,7 @@
 	err = mlxsw_emad_reg_access(mlxsw_core, reg, payload, type, trans,
 				    bulk_list, cb, cb_priv, tid);
 	if (err) {
-		kfree(trans);
+		kfree_rcu(trans, rcu);
 		return err;
 	}
 	return 0;
@@ -1801,11 +1808,13 @@
 			break;
 		}
 	}
-	rcu_read_unlock();
-	if (!found)
+	if (!found) {
+		rcu_read_unlock();
 		goto drop;
+	}
 
 	rxl->func(skb, local_port, rxl_item->priv);
+	rcu_read_unlock();
 	return;
 
 drop:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
@@ -316,7 +316,7 @@
 
 	block = kzalloc(sizeof(*block), GFP_KERNEL);
 	if (!block)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 	INIT_LIST_HEAD(&block->resource_list);
 	block->afa = mlxsw_afa;
 
@@ -344,7 +344,7 @@
 	mlxsw_afa_set_destroy(block->first_set);
 err_first_set_create:
 	kfree(block);
-	return NULL;
+	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL(mlxsw_afa_block_create);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
@@ -19,7 +19,7 @@
 #define MLXSW_THERMAL_ASIC_TEMP_NORM	75000	/* 75C */
 #define MLXSW_THERMAL_ASIC_TEMP_HIGH	85000	/* 85C */
 #define MLXSW_THERMAL_ASIC_TEMP_HOT	105000	/* 105C */
-#define MLXSW_THERMAL_ASIC_TEMP_CRIT	110000	/* 110C */
+#define MLXSW_THERMAL_ASIC_TEMP_CRIT	140000	/* 140C */
 #define MLXSW_THERMAL_HYSTERESIS_TEMP	5000	/* 5C */
 #define MLXSW_THERMAL_MODULE_TEMP_SHIFT	(MLXSW_THERMAL_HYSTERESIS_TEMP * 2)
 #define MLXSW_THERMAL_ZONE_MAX_NAME	16
@@ -177,6 +177,12 @@
 	if (err)
 		return err;
 
+	if (crit_temp > emerg_temp) {
+		dev_warn(dev, "%s : Critical threshold %d is above emergency threshold %d\n",
+			 tz->tzdev->type, crit_temp, emerg_temp);
+		return 0;
+	}
+
 	/* According to the system thermal requirements, the thermal zones are
 	 * defined with four trip points. The critical and emergency
 	 * temperature thresholds, provided by QSFP module are set as "active"
@@ -191,11 +197,8 @@
 		tz->trips[MLXSW_THERMAL_TEMP_TRIP_NORM].temp = crit_temp;
 	tz->trips[MLXSW_THERMAL_TEMP_TRIP_HIGH].temp = crit_temp;
 	tz->trips[MLXSW_THERMAL_TEMP_TRIP_HOT].temp = emerg_temp;
-	if (emerg_temp > crit_temp)
-		tz->trips[MLXSW_THERMAL_TEMP_TRIP_CRIT].temp = emerg_temp +
+	tz->trips[MLXSW_THERMAL_TEMP_TRIP_CRIT].temp = emerg_temp +
 					MLXSW_THERMAL_MODULE_TEMP_SHIFT;
-	else
-		tz->trips[MLXSW_THERMAL_TEMP_TRIP_CRIT].temp = emerg_temp;
 
 	return 0;
 }
@@ -390,8 +393,7 @@
 static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
 				   int trip, enum thermal_trend *trend)
 {
-	struct mlxsw_thermal_module *tz = tzdev->devdata;
-	struct mlxsw_thermal *thermal = tz->parent;
+	struct mlxsw_thermal *thermal = tzdev->devdata;
 
 	if (trip < 0 || trip >= MLXSW_THERMAL_NUM_TRIPS)
 		return -EINVAL;
@@ -592,6 +594,22 @@
 	return 0;
 }
 
+static int mlxsw_thermal_module_trend_get(struct thermal_zone_device *tzdev,
+					  int trip, enum thermal_trend *trend)
+{
+	struct mlxsw_thermal_module *tz = tzdev->devdata;
+	struct mlxsw_thermal *thermal = tz->parent;
+
+	if (trip < 0 || trip >= MLXSW_THERMAL_NUM_TRIPS)
+		return -EINVAL;
+
+	if (tzdev == thermal->tz_highest_dev)
+		return 1;
+
+	*trend = THERMAL_TREND_STABLE;
+	return 0;
+}
+
 static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
 	.bind		= mlxsw_thermal_module_bind,
 	.unbind		= mlxsw_thermal_module_unbind,
@@ -603,7 +621,7 @@
 	.set_trip_temp	= mlxsw_thermal_module_trip_temp_set,
 	.get_trip_hyst	= mlxsw_thermal_module_trip_hyst_get,
 	.set_trip_hyst	= mlxsw_thermal_module_trip_hyst_set,
-	.get_trend	= mlxsw_thermal_trend_get,
+	.get_trend	= mlxsw_thermal_module_trend_get,
 };
 
 static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
@@ -642,7 +660,7 @@
 	.set_trip_temp	= mlxsw_thermal_module_trip_temp_set,
 	.get_trip_hyst	= mlxsw_thermal_module_trip_hyst_get,
 	.set_trip_hyst	= mlxsw_thermal_module_trip_hyst_set,
-	.get_trend	= mlxsw_thermal_trend_get,
+	.get_trend	= mlxsw_thermal_module_trend_get,
 };
 
 static int mlxsw_thermal_get_max_state(struct thermal_cooling_device *cdev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/minimal.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/minimal.c
@@ -204,8 +204,8 @@
 
 err_register_netdev:
 	mlxsw_m->ports[local_port] = NULL;
-	free_netdev(dev);
 err_dev_addr_get:
+	free_netdev(dev);
 err_alloc_etherdev:
 	mlxsw_core_port_fini(mlxsw_m->core, local_port);
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/pci.c
@@ -1318,36 +1318,64 @@
 			    mbox->mapaddr);
 }
 
-static int mlxsw_pci_sw_reset(struct mlxsw_pci *mlxsw_pci,
-			      const struct pci_device_id *id)
+static int mlxsw_pci_sys_ready_wait(struct mlxsw_pci *mlxsw_pci,
+				    const struct pci_device_id *id,
+				    u32 *p_sys_status)
 {
 	unsigned long end;
-	char mrsr_pl[MLXSW_REG_MRSR_LEN];
-	int err;
+	u32 val;
 
-	mlxsw_reg_mrsr_pack(mrsr_pl);
-	err = mlxsw_reg_write(mlxsw_pci->core, MLXSW_REG(mrsr), mrsr_pl);
-	if (err)
-		return err;
 	if (id->device == PCI_DEVICE_ID_MELLANOX_SWITCHX2) {
 		msleep(MLXSW_PCI_SW_RESET_TIMEOUT_MSECS);
 		return 0;
 	}
 
-	/* We must wait for the HW to become responsive once again. */
+	/* We must wait for the HW to become responsive. */
 	msleep(MLXSW_PCI_SW_RESET_WAIT_MSECS);
 
 	end = jiffies + msecs_to_jiffies(MLXSW_PCI_SW_RESET_TIMEOUT_MSECS);
 	do {
-		u32 val = mlxsw_pci_read32(mlxsw_pci, FW_READY);
-
+		val = mlxsw_pci_read32(mlxsw_pci, FW_READY);
 		if ((val & MLXSW_PCI_FW_READY_MASK) == MLXSW_PCI_FW_READY_MAGIC)
 			return 0;
 		cond_resched();
 	} while (time_before(jiffies, end));
+
+	*p_sys_status = val & MLXSW_PCI_FW_READY_MASK;
+
 	return -EBUSY;
 }
 
+static int mlxsw_pci_sw_reset(struct mlxsw_pci *mlxsw_pci,
+			      const struct pci_device_id *id)
+{
+	struct pci_dev *pdev = mlxsw_pci->pdev;
+	char mrsr_pl[MLXSW_REG_MRSR_LEN];
+	u32 sys_status;
+	int err;
+
+	err = mlxsw_pci_sys_ready_wait(mlxsw_pci, id, &sys_status);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to reach system ready status before reset. Status is 0x%x\n",
+			sys_status);
+		return err;
+	}
+
+	mlxsw_reg_mrsr_pack(mrsr_pl);
+	err = mlxsw_reg_write(mlxsw_pci->core, MLXSW_REG(mrsr), mrsr_pl);
+	if (err)
+		return err;
+
+	err = mlxsw_pci_sys_ready_wait(mlxsw_pci, id, &sys_status);
+	if (err) {
+		dev_err(&pdev->dev, "Failed to reach system ready status after reset. Status is 0x%x\n",
+			sys_status);
+		return err;
+	}
+
+	return 0;
+}
+
 static int mlxsw_pci_alloc_irq_vectors(struct mlxsw_pci *mlxsw_pci)
 {
 	int err;
@@ -1373,23 +1401,12 @@
 	u16 num_pages;
 	int err;
 
-	mutex_init(&mlxsw_pci->cmd.lock);
-	init_waitqueue_head(&mlxsw_pci->cmd.wait);
-
 	mlxsw_pci->core = mlxsw_core;
 
 	mbox = mlxsw_cmd_mbox_alloc();
 	if (!mbox)
 		return -ENOMEM;
 
-	err = mlxsw_pci_mbox_alloc(mlxsw_pci, &mlxsw_pci->cmd.in_mbox);
-	if (err)
-		goto mbox_put;
-
-	err = mlxsw_pci_mbox_alloc(mlxsw_pci, &mlxsw_pci->cmd.out_mbox);
-	if (err)
-		goto err_out_mbox_alloc;
-
 	err = mlxsw_pci_sw_reset(mlxsw_pci, mlxsw_pci->id);
 	if (err)
 		goto err_sw_reset;
@@ -1496,9 +1513,6 @@
 	mlxsw_pci_free_irq_vectors(mlxsw_pci);
 err_alloc_irq:
 err_sw_reset:
-	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.out_mbox);
-err_out_mbox_alloc:
-	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.in_mbox);
 mbox_put:
 	mlxsw_cmd_mbox_free(mbox);
 	return err;
@@ -1512,8 +1526,6 @@
 	mlxsw_pci_aqs_fini(mlxsw_pci);
 	mlxsw_pci_fw_area_fini(mlxsw_pci);
 	mlxsw_pci_free_irq_vectors(mlxsw_pci);
-	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.out_mbox);
-	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.in_mbox);
 }
 
 static struct mlxsw_pci_queue *
@@ -1727,6 +1739,37 @@
 	.features		= MLXSW_BUS_F_TXRX | MLXSW_BUS_F_RESET,
 };
 
+static int mlxsw_pci_cmd_init(struct mlxsw_pci *mlxsw_pci)
+{
+	int err;
+
+	mutex_init(&mlxsw_pci->cmd.lock);
+	init_waitqueue_head(&mlxsw_pci->cmd.wait);
+
+	err = mlxsw_pci_mbox_alloc(mlxsw_pci, &mlxsw_pci->cmd.in_mbox);
+	if (err)
+		goto err_in_mbox_alloc;
+
+	err = mlxsw_pci_mbox_alloc(mlxsw_pci, &mlxsw_pci->cmd.out_mbox);
+	if (err)
+		goto err_out_mbox_alloc;
+
+	return 0;
+
+err_out_mbox_alloc:
+	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.in_mbox);
+err_in_mbox_alloc:
+	mutex_destroy(&mlxsw_pci->cmd.lock);
+	return err;
+}
+
+static void mlxsw_pci_cmd_fini(struct mlxsw_pci *mlxsw_pci)
+{
+	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.out_mbox);
+	mlxsw_pci_mbox_free(mlxsw_pci, &mlxsw_pci->cmd.in_mbox);
+	mutex_destroy(&mlxsw_pci->cmd.lock);
+}
+
 static int mlxsw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
 	const char *driver_name = pdev->driver->name;
@@ -1782,6 +1825,10 @@
 	mlxsw_pci->pdev = pdev;
 	pci_set_drvdata(pdev, mlxsw_pci);
 
+	err = mlxsw_pci_cmd_init(mlxsw_pci);
+	if (err)
+		goto err_pci_cmd_init;
+
 	mlxsw_pci->bus_info.device_kind = driver_name;
 	mlxsw_pci->bus_info.device_name = pci_name(mlxsw_pci->pdev);
 	mlxsw_pci->bus_info.dev = &pdev->dev;
@@ -1799,6 +1846,8 @@
 	return 0;
 
 err_bus_device_register:
+	mlxsw_pci_cmd_fini(mlxsw_pci);
+err_pci_cmd_init:
 	iounmap(mlxsw_pci->hw_addr);
 err_ioremap:
 err_pci_resource_len_check:
@@ -1816,6 +1865,7 @@
 	struct mlxsw_pci *mlxsw_pci = pci_get_drvdata(pdev);
 
 	mlxsw_core_bus_device_unregister(mlxsw_pci->core, false);
+	mlxsw_pci_cmd_fini(mlxsw_pci);
 	iounmap(mlxsw_pci->hw_addr);
 	pci_release_regions(mlxsw_pci->pdev);
 	pci_disable_device(mlxsw_pci->pdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/reg.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/reg.h
@@ -5421,6 +5421,7 @@
 	MLXSW_REG_HTGT_TRAP_GROUP_SP_LBERROR,
 	MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP0,
 	MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP1,
+	MLXSW_REG_HTGT_TRAP_GROUP_SP_VRRP,
 
 	__MLXSW_REG_HTGT_TRAP_GROUP_MAX,
 	MLXSW_REG_HTGT_TRAP_GROUP_MAX = __MLXSW_REG_HTGT_TRAP_GROUP_MAX - 1
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -812,23 +812,17 @@
 	u64 len;
 	int err;
 
+	if (skb_cow_head(skb, MLXSW_TXHDR_LEN)) {
+		this_cpu_inc(mlxsw_sp_port->pcpu_stats->tx_dropped);
+		dev_kfree_skb_any(skb);
+		return NETDEV_TX_OK;
+	}
+
 	memset(skb->cb, 0, sizeof(struct mlxsw_skb_cb));
 
 	if (mlxsw_core_skb_transmit_busy(mlxsw_sp->core, &tx_info))
 		return NETDEV_TX_BUSY;
 
-	if (unlikely(skb_headroom(skb) < MLXSW_TXHDR_LEN)) {
-		struct sk_buff *skb_orig = skb;
-
-		skb = skb_realloc_headroom(skb, MLXSW_TXHDR_LEN);
-		if (!skb) {
-			this_cpu_inc(mlxsw_sp_port->pcpu_stats->tx_dropped);
-			dev_kfree_skb_any(skb_orig);
-			return NETDEV_TX_OK;
-		}
-		dev_consume_skb_any(skb_orig);
-	}
-
 	if (eth_skb_pad(skb)) {
 		this_cpu_inc(mlxsw_sp_port->pcpu_stats->tx_dropped);
 		return NETDEV_TX_OK;
@@ -1167,6 +1161,9 @@
 			     periodic_hw_stats.update_dw.work);
 
 	if (!netif_carrier_ok(mlxsw_sp_port->dev))
+		/* Note: mlxsw_sp_port_down_wipe_counters() clears the cache as
+		 * necessary when port goes down.
+		 */
 		goto out;
 
 	mlxsw_sp_port_get_hw_stats(mlxsw_sp_port->dev,
@@ -3935,6 +3932,7 @@
 	mlxsw_sp_cpu_port_remove(mlxsw_sp);
 	kfree(mlxsw_sp->port_to_module);
 	kfree(mlxsw_sp->ports);
+	mlxsw_sp->ports = NULL;
 }
 
 static int mlxsw_sp_ports_create(struct mlxsw_sp *mlxsw_sp)
@@ -3989,6 +3987,7 @@
 	kfree(mlxsw_sp->port_to_module);
 err_port_to_module_alloc:
 	kfree(mlxsw_sp->ports);
+	mlxsw_sp->ports = NULL;
 	return err;
 }
 
@@ -4043,6 +4042,14 @@
 	}
 }
 
+static struct mlxsw_sp_port *
+mlxsw_sp_port_get_by_local_port(struct mlxsw_sp *mlxsw_sp, u8 local_port)
+{
+	if (mlxsw_sp->ports && mlxsw_sp->ports[local_port])
+		return mlxsw_sp->ports[local_port];
+	return NULL;
+}
+
 static int mlxsw_sp_port_split(struct mlxsw_core *mlxsw_core, u8 local_port,
 			       unsigned int count,
 			       struct netlink_ext_ack *extack)
@@ -4061,7 +4068,7 @@
 	local_ports_in_1x = MLXSW_CORE_RES_GET(mlxsw_core, LOCAL_PORTS_IN_1X);
 	local_ports_in_2x = MLXSW_CORE_RES_GET(mlxsw_core, LOCAL_PORTS_IN_2X);
 
-	mlxsw_sp_port = mlxsw_sp->ports[local_port];
+	mlxsw_sp_port = mlxsw_sp_port_get_by_local_port(mlxsw_sp, local_port);
 	if (!mlxsw_sp_port) {
 		dev_err(mlxsw_sp->bus_info->dev, "Port number \"%d\" does not exist\n",
 			local_port);
@@ -4139,7 +4146,7 @@
 	local_ports_in_1x = MLXSW_CORE_RES_GET(mlxsw_core, LOCAL_PORTS_IN_1X);
 	local_ports_in_2x = MLXSW_CORE_RES_GET(mlxsw_core, LOCAL_PORTS_IN_2X);
 
-	mlxsw_sp_port = mlxsw_sp->ports[local_port];
+	mlxsw_sp_port = mlxsw_sp_port_get_by_local_port(mlxsw_sp, local_port);
 	if (!mlxsw_sp_port) {
 		dev_err(mlxsw_sp->bus_info->dev, "Port number \"%d\" does not exist\n",
 			local_port);
@@ -4176,6 +4183,15 @@
 	return 0;
 }
 
+static void
+mlxsw_sp_port_down_wipe_counters(struct mlxsw_sp_port *mlxsw_sp_port)
+{
+	int i;
+
+	for (i = 0; i < TC_MAX_QUEUE; i++)
+		mlxsw_sp_port->periodic_hw_stats.xstats.backlog[i] = 0;
+}
+
 static void mlxsw_sp_pude_event_func(const struct mlxsw_reg_info *reg,
 				     char *pude_pl, void *priv)
 {
@@ -4197,6 +4213,7 @@
 	} else {
 		netdev_info(mlxsw_sp_port->dev, "link down\n");
 		netif_carrier_off(mlxsw_sp_port->dev);
+		mlxsw_sp_port_down_wipe_counters(mlxsw_sp_port);
 	}
 }
 
@@ -4398,8 +4415,8 @@
 	MLXSW_SP_RXL_MARK(ROUTER_ALERT_IPV6, TRAP_TO_CPU, ROUTER_EXP, false),
 	MLXSW_SP_RXL_MARK(IPIP_DECAP_ERROR, TRAP_TO_CPU, ROUTER_EXP, false),
 	MLXSW_SP_RXL_MARK(DECAP_ECN0, TRAP_TO_CPU, ROUTER_EXP, false),
-	MLXSW_SP_RXL_MARK(IPV4_VRRP, TRAP_TO_CPU, ROUTER_EXP, false),
-	MLXSW_SP_RXL_MARK(IPV6_VRRP, TRAP_TO_CPU, ROUTER_EXP, false),
+	MLXSW_SP_RXL_MARK(IPV4_VRRP, TRAP_TO_CPU, VRRP, false),
+	MLXSW_SP_RXL_MARK(IPV6_VRRP, TRAP_TO_CPU, VRRP, false),
 	/* PKT Sample trap */
 	MLXSW_RXL(mlxsw_sp_rx_listener_sample_func, PKT_SAMPLE, MIRROR_TO_CPU,
 		  false, SP_IP2ME, DISCARD),
@@ -4483,6 +4500,10 @@
 			rate = 19 * 1024;
 			burst_size = 12;
 			break;
+		case MLXSW_REG_HTGT_TRAP_GROUP_SP_VRRP:
+			rate = 360;
+			burst_size = 7;
+			break;
 		default:
 			continue;
 		}
@@ -4522,6 +4543,7 @@
 		case MLXSW_REG_HTGT_TRAP_GROUP_SP_OSPF:
 		case MLXSW_REG_HTGT_TRAP_GROUP_SP_PIM:
 		case MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP0:
+		case MLXSW_REG_HTGT_TRAP_GROUP_SP_VRRP:
 			priority = 5;
 			tc = 5;
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c
@@ -88,8 +88,8 @@
 	 * to be written using PEFA register to all indexes for all regions.
 	 */
 	afa_block = mlxsw_afa_block_create(mlxsw_sp->afa);
-	if (!afa_block) {
-		err = -ENOMEM;
+	if (IS_ERR(afa_block)) {
+		err = PTR_ERR(afa_block);
 		goto err_afa_block;
 	}
 	err = mlxsw_afa_block_continue(afa_block);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c
@@ -8,6 +8,7 @@
 #include <linux/string.h>
 #include <linux/rhashtable.h>
 #include <linux/netdevice.h>
+#include <linux/mutex.h>
 #include <net/net_namespace.h>
 #include <net/tc_act/tc_vlan.h>
 
@@ -25,6 +26,7 @@
 	struct mlxsw_sp_fid *dummy_fid;
 	struct rhashtable ruleset_ht;
 	struct list_head rules;
+	struct mutex rules_lock; /* Protects rules list */
 	struct {
 		struct delayed_work dw;
 		unsigned long interval;	/* ms */
@@ -442,7 +444,7 @@
 
 	rulei = kzalloc(sizeof(*rulei), GFP_KERNEL);
 	if (!rulei)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	if (afa_block) {
 		rulei->act_block = afa_block;
@@ -701,7 +703,9 @@
 			goto err_ruleset_block_bind;
 	}
 
+	mutex_lock(&mlxsw_sp->acl->rules_lock);
 	list_add_tail(&rule->list, &mlxsw_sp->acl->rules);
+	mutex_unlock(&mlxsw_sp->acl->rules_lock);
 	block->rule_count++;
 	block->egress_blocker_rule_count += rule->rulei->egress_bind_blocker;
 	return 0;
@@ -723,7 +727,9 @@
 
 	block->egress_blocker_rule_count -= rule->rulei->egress_bind_blocker;
 	ruleset->ht_key.block->rule_count--;
+	mutex_lock(&mlxsw_sp->acl->rules_lock);
 	list_del(&rule->list);
+	mutex_unlock(&mlxsw_sp->acl->rules_lock);
 	if (!ruleset->ht_key.chain_index &&
 	    mlxsw_sp_acl_ruleset_is_singular(ruleset))
 		mlxsw_sp_acl_ruleset_block_unbind(mlxsw_sp, ruleset,
@@ -783,19 +789,18 @@
 	struct mlxsw_sp_acl_rule *rule;
 	int err;
 
-	/* Protect internal structures from changes */
-	rtnl_lock();
+	mutex_lock(&acl->rules_lock);
 	list_for_each_entry(rule, &acl->rules, list) {
 		err = mlxsw_sp_acl_rule_activity_update(acl->mlxsw_sp,
 							rule);
 		if (err)
 			goto err_rule_update;
 	}
-	rtnl_unlock();
+	mutex_unlock(&acl->rules_lock);
 	return 0;
 
 err_rule_update:
-	rtnl_unlock();
+	mutex_unlock(&acl->rules_lock);
 	return err;
 }
 
@@ -880,6 +885,7 @@
 	acl->dummy_fid = fid;
 
 	INIT_LIST_HEAD(&acl->rules);
+	mutex_init(&acl->rules_lock);
 	err = mlxsw_sp_acl_tcam_init(mlxsw_sp, &acl->tcam);
 	if (err)
 		goto err_acl_ops_init;
@@ -892,6 +898,7 @@
 	return 0;
 
 err_acl_ops_init:
+	mutex_destroy(&acl->rules_lock);
 	mlxsw_sp_fid_put(fid);
 err_fid_get:
 	rhashtable_destroy(&acl->ruleset_ht);
@@ -908,6 +915,7 @@
 
 	cancel_delayed_work_sync(&mlxsw_sp->acl->rule_activity_update.dw);
 	mlxsw_sp_acl_tcam_fini(mlxsw_sp, &acl->tcam);
+	mutex_destroy(&acl->rules_lock);
 	WARN_ON(!list_empty(&acl->rules));
 	mlxsw_sp_fid_put(acl->dummy_fid);
 	rhashtable_destroy(&acl->ruleset_ht);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
@@ -290,13 +290,14 @@
 	int err;
 
 	group->tcam = tcam;
-	mutex_init(&group->lock);
 	INIT_LIST_HEAD(&group->region_list);
 
 	err = mlxsw_sp_acl_tcam_group_id_get(tcam, &group->id);
 	if (err)
 		return err;
 
+	mutex_init(&group->lock);
+
 	return 0;
 }
 
@@ -986,8 +987,9 @@
 				unsigned int priority,
 				struct mlxsw_afk_element_usage *elusage)
 {
+	struct mlxsw_sp_acl_tcam_vchunk *vchunk, *vchunk2;
 	struct mlxsw_sp_acl_tcam_vregion *vregion;
-	struct mlxsw_sp_acl_tcam_vchunk *vchunk;
+	struct list_head *pos;
 	int err;
 
 	if (priority == MLXSW_SP_ACL_TCAM_CATCHALL_PRIO)
@@ -1025,7 +1027,14 @@
 	}
 
 	mlxsw_sp_acl_tcam_rehash_ctx_vregion_changed(vregion);
-	list_add_tail(&vchunk->list, &vregion->vchunk_list);
+
+	/* Position the vchunk inside the list according to priority */
+	list_for_each(pos, &vregion->vchunk_list) {
+		vchunk2 = list_entry(pos, typeof(*vchunk2), list);
+		if (vchunk2->priority > priority)
+			break;
+	}
+	list_add_tail(&vchunk->list, pos);
 	mutex_unlock(&vregion->lock);
 
 	return vchunk;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c
@@ -215,7 +215,7 @@
 start_again:
 	err = devlink_dpipe_entry_ctx_prepare(dump_ctx);
 	if (err)
-		return err;
+		goto err_ctx_prepare;
 	j = 0;
 	for (; i < rif_count; i++) {
 		struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i);
@@ -247,6 +247,7 @@
 	return 0;
 err_entry_append:
 err_entry_get:
+err_ctx_prepare:
 	rtnl_unlock();
 	devlink_dpipe_entry_clear(&entry);
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c
@@ -123,9 +123,12 @@
 			u8 prio = act->vlan.prio;
 			u16 vid = act->vlan.vid;
 
-			return mlxsw_sp_acl_rulei_act_vlan(mlxsw_sp, rulei,
-							   act->id, vid,
-							   proto, prio, extack);
+			err = mlxsw_sp_acl_rulei_act_vlan(mlxsw_sp, rulei,
+							  act->id, vid,
+							  proto, prio, extack);
+			if (err)
+				return err;
+			break;
 			}
 		default:
 			NL_SET_ERR_MSG_MOD(extack, "Unsupported action");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
@@ -637,12 +637,12 @@
 	return 0;
 
 err_erif_unresolve:
-	list_for_each_entry_from_reverse(erve, &mr_vif->route_evif_list,
-					 vif_node)
+	list_for_each_entry_continue_reverse(erve, &mr_vif->route_evif_list,
+					     vif_node)
 		mlxsw_sp_mr_route_evif_unresolve(mr_table, erve);
 err_irif_unresolve:
-	list_for_each_entry_from_reverse(irve, &mr_vif->route_ivif_list,
-					 vif_node)
+	list_for_each_entry_continue_reverse(irve, &mr_vif->route_ivif_list,
+					     vif_node)
 		mlxsw_sp_mr_route_ivif_unresolve(mr_table, irve);
 	mr_vif->rif = NULL;
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c
@@ -199,8 +199,8 @@
 	int err;
 
 	afa_block = mlxsw_afa_block_create(mlxsw_sp->afa);
-	if (!afa_block)
-		return ERR_PTR(-ENOMEM);
+	if (IS_ERR(afa_block))
+		return afa_block;
 
 	err = mlxsw_afa_block_append_allocated_counter(afa_block,
 						       counter_index);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
@@ -195,6 +195,20 @@
 	return -EOPNOTSUPP;
 }
 
+static u64
+mlxsw_sp_xstats_backlog(struct mlxsw_sp_port_xstats *xstats, int tclass_num)
+{
+	return xstats->backlog[tclass_num] +
+	       xstats->backlog[tclass_num + 8];
+}
+
+static u64
+mlxsw_sp_xstats_tail_drop(struct mlxsw_sp_port_xstats *xstats, int tclass_num)
+{
+	return xstats->tail_drop[tclass_num] +
+	       xstats->tail_drop[tclass_num + 8];
+}
+
 static void
 mlxsw_sp_qdisc_bstats_per_priority_get(struct mlxsw_sp_port_xstats *xstats,
 				       u8 prio_bitmap, u64 *tx_packets,
@@ -269,7 +283,7 @@
 					       &stats_base->tx_bytes);
 	red_base->prob_mark = xstats->ecn;
 	red_base->prob_drop = xstats->wred_drop[tclass_num];
-	red_base->pdrop = xstats->tail_drop[tclass_num];
+	red_base->pdrop = mlxsw_sp_xstats_tail_drop(xstats, tclass_num);
 
 	stats_base->overlimits = red_base->prob_drop + red_base->prob_mark;
 	stats_base->drops = red_base->prob_drop + red_base->pdrop;
@@ -369,7 +383,8 @@
 
 	early_drops = xstats->wred_drop[tclass_num] - xstats_base->prob_drop;
 	marks = xstats->ecn - xstats_base->prob_mark;
-	pdrops = xstats->tail_drop[tclass_num] - xstats_base->pdrop;
+	pdrops = mlxsw_sp_xstats_tail_drop(xstats, tclass_num) -
+		 xstats_base->pdrop;
 
 	res->pdrop += pdrops;
 	res->prob_drop += early_drops;
@@ -402,9 +417,10 @@
 
 	overlimits = xstats->wred_drop[tclass_num] + xstats->ecn -
 		     stats_base->overlimits;
-	drops = xstats->wred_drop[tclass_num] + xstats->tail_drop[tclass_num] -
+	drops = xstats->wred_drop[tclass_num] +
+		mlxsw_sp_xstats_tail_drop(xstats, tclass_num) -
 		stats_base->drops;
-	backlog = xstats->backlog[tclass_num];
+	backlog = mlxsw_sp_xstats_backlog(xstats, tclass_num);
 
 	_bstats_update(stats_ptr->bstats, tx_bytes, tx_packets);
 	stats_ptr->qstats->overlimits += overlimits;
@@ -575,9 +591,9 @@
 	tx_packets = stats->tx_packets - stats_base->tx_packets;
 
 	for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
-		drops += xstats->tail_drop[i];
+		drops += mlxsw_sp_xstats_tail_drop(xstats, i);
 		drops += xstats->wred_drop[i];
-		backlog += xstats->backlog[i];
+		backlog += mlxsw_sp_xstats_backlog(xstats, i);
 	}
 	drops = drops - stats_base->drops;
 
@@ -613,7 +629,7 @@
 
 	stats_base->drops = 0;
 	for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
-		stats_base->drops += xstats->tail_drop[i];
+		stats_base->drops += mlxsw_sp_xstats_tail_drop(xstats, i);
 		stats_base->drops += xstats->wred_drop[i];
 	}
 
@@ -650,6 +666,13 @@
 	    mlxsw_sp_port->tclass_qdiscs[tclass_num].handle == p->child_handle)
 		return 0;
 
+	if (!p->child_handle) {
+		/* This is an invisible FIFO replacing the original Qdisc.
+		 * Ignore it--the original Qdisc's destroy will follow.
+		 */
+		return 0;
+	}
+
 	/* See if the grafted qdisc is already offloaded on any tclass. If so,
 	 * unoffload it.
 	 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -5637,8 +5637,13 @@
 	if (mlxsw_sp_fib6_rt_should_ignore(rt))
 		return;
 
+	/* Multipath routes are first added to the FIB trie and only then
+	 * notified. If we vetoed the addition, we will get a delete
+	 * notification for a route we do not have. Therefore, do not warn if
+	 * route was not found.
+	 */
 	fib6_entry = mlxsw_sp_fib6_entry_lookup(mlxsw_sp, rt);
-	if (WARN_ON(!fib6_entry))
+	if (!fib6_entry)
 		return;
 
 	/* If not all the nexthops are deleted, then only reduce the nexthop
@@ -6282,7 +6287,7 @@
 	}
 
 	fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC);
-	if (WARN_ON(!fib_work))
+	if (!fib_work)
 		return NOTIFY_BAD;
 
 	fib_work->mlxsw_sp = router->mlxsw_sp;
@@ -6980,6 +6985,9 @@
 
 	for (i = 0; i < MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS); i++) {
 		rif = mlxsw_sp->router->rifs[i];
+		if (rif && rif->ops &&
+		    rif->ops->type == MLXSW_SP_RIF_TYPE_IPIP_LB)
+			continue;
 		if (rif && rif->dev && rif->dev != dev &&
 		    !ether_addr_equal_masked(rif->dev->dev_addr, dev_addr,
 					     mlxsw_sp->mac_mask)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mellanox/mlxsw/switchx2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mellanox/mlxsw/switchx2.c
@@ -299,22 +299,17 @@
 	u64 len;
 	int err;
 
+	if (skb_cow_head(skb, MLXSW_TXHDR_LEN)) {
+		this_cpu_inc(mlxsw_sx_port->pcpu_stats->tx_dropped);
+		dev_kfree_skb_any(skb);
+		return NETDEV_TX_OK;
+	}
+
 	memset(skb->cb, 0, sizeof(struct mlxsw_skb_cb));
 
 	if (mlxsw_core_skb_transmit_busy(mlxsw_sx->core, &tx_info))
 		return NETDEV_TX_BUSY;
 
-	if (unlikely(skb_headroom(skb) < MLXSW_TXHDR_LEN)) {
-		struct sk_buff *skb_orig = skb;
-
-		skb = skb_realloc_headroom(skb, MLXSW_TXHDR_LEN);
-		if (!skb) {
-			this_cpu_inc(mlxsw_sx_port->pcpu_stats->tx_dropped);
-			dev_kfree_skb_any(skb_orig);
-			return NETDEV_TX_OK;
-		}
-		dev_consume_skb_any(skb_orig);
-	}
 	mlxsw_sx_txhdr_construct(skb, &tx_info);
 	/* TX header is consumed by HW on the way so we shouldn't count its
 	 * bytes as being sent.
@@ -1263,6 +1258,7 @@
 		if (mlxsw_sx_port_created(mlxsw_sx, i))
 			mlxsw_sx_port_remove(mlxsw_sx, i);
 	kfree(mlxsw_sx->ports);
+	mlxsw_sx->ports = NULL;
 }
 
 static int mlxsw_sx_ports_create(struct mlxsw_sx *mlxsw_sx)
@@ -1297,6 +1293,7 @@
 		if (mlxsw_sx_port_created(mlxsw_sx, i))
 			mlxsw_sx_port_remove(mlxsw_sx, i);
 	kfree(mlxsw_sx->ports);
+	mlxsw_sx->ports = NULL;
 	return err;
 }
 
@@ -1380,6 +1377,12 @@
 	u8 module, width;
 	int err;
 
+	if (!mlxsw_sx->ports || !mlxsw_sx->ports[local_port]) {
+		dev_err(mlxsw_sx->bus_info->dev, "Port number \"%d\" does not exist\n",
+			local_port);
+		return -EINVAL;
+	}
+
 	if (new_type == DEVLINK_PORT_TYPE_AUTO)
 		return -EOPNOTSUPP;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/micrel/ks8851_mll.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/micrel/ks8851_mll.c
@@ -157,21 +157,47 @@
  */
 
 /**
- * ks_rdreg8 - read 8 bit register from device
+ * ks_check_endian - Check whether endianness of the bus is correct
  * @ks	  : The chip information
- * @offset: The register address
  *
- * Read a 8bit register from the chip, returning the result
+ * The KS8851-16MLL EESK pin allows selecting the endianness of the 16bit
+ * bus. To maintain optimum performance, the bus endianness should be set
+ * such that it matches the endianness of the CPU.
  */
-static u8 ks_rdreg8(struct ks_net *ks, int offset)
+
+static int ks_check_endian(struct ks_net *ks)
 {
-	u16 data;
-	u8 shift_bit = offset & 0x03;
-	u8 shift_data = (offset & 1) << 3;
-	ks->cmd_reg_cache = (u16) offset | (u16)(BE0 << shift_bit);
-	iowrite16(ks->cmd_reg_cache, ks->hw_addr_cmd);
-	data  = ioread16(ks->hw_addr);
-	return (u8)(data >> shift_data);
+	u16 cider;
+
+	/*
+	 * Read CIDER register first, however read it the "wrong" way around.
+	 * If the endian strap on the KS8851-16MLL in incorrect and the chip
+	 * is operating in different endianness than the CPU, then the meaning
+	 * of BE[3:0] byte-enable bits is also swapped such that:
+	 *    BE[3,2,1,0] becomes BE[1,0,3,2]
+	 *
+	 * Luckily for us, the byte-enable bits are the top four MSbits of
+	 * the address register and the CIDER register is at offset 0xc0.
+	 * Hence, by reading address 0xc0c0, which is not impacted by endian
+	 * swapping, we assert either BE[3:2] or BE[1:0] while reading the
+	 * CIDER register.
+	 *
+	 * If the bus configuration is correct, reading 0xc0c0 asserts
+	 * BE[3:2] and this read returns 0x0000, because to read register
+	 * with bottom two LSbits of address set to 0, BE[1:0] must be
+	 * asserted.
+	 *
+	 * If the bus configuration is NOT correct, reading 0xc0c0 asserts
+	 * BE[1:0] and this read returns non-zero 0x8872 value.
+	 */
+	iowrite16(BE3 | BE2 | KS_CIDER, ks->hw_addr_cmd);
+	cider = ioread16(ks->hw_addr);
+	if (!cider)
+		return 0;
+
+	netdev_err(ks->netdev, "incorrect EESK endian strap setting\n");
+
+	return -EINVAL;
 }
 
 /**
@@ -190,22 +216,6 @@
 }
 
 /**
- * ks_wrreg8 - write 8bit register value to chip
- * @ks: The chip information
- * @offset: The register address
- * @value: The value to write
- *
- */
-static void ks_wrreg8(struct ks_net *ks, int offset, u8 value)
-{
-	u8  shift_bit = (offset & 0x03);
-	u16 value_write = (u16)(value << ((offset & 1) << 3));
-	ks->cmd_reg_cache = (u16)offset | (BE0 << shift_bit);
-	iowrite16(ks->cmd_reg_cache, ks->hw_addr_cmd);
-	iowrite16(value_write, ks->hw_addr);
-}
-
-/**
  * ks_wrreg16 - write 16bit register value to chip
  * @ks: The chip information
  * @offset: The register address
@@ -324,8 +334,7 @@
 	u16 reg_data = 0;
 
 	/* Regardless of bus width, 8 bit read should always work.*/
-	reg_data = ks_rdreg8(ks, KS_CCR) & 0x00FF;
-	reg_data |= ks_rdreg8(ks, KS_CCR+1) << 8;
+	reg_data = ks_rdreg16(ks, KS_CCR);
 
 	/* addr/data bus are multiplexed */
 	ks->sharedbus = (reg_data & CCR_SHARED) == CCR_SHARED;
@@ -429,7 +438,7 @@
 
 	/* 1. set sudo DMA mode */
 	ks_wrreg16(ks, KS_RXFDPR, RXFDPR_RXFPAI);
-	ks_wrreg8(ks, KS_RXQCR, (ks->rc_rxqcr | RXQCR_SDA) & 0xff);
+	ks_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA);
 
 	/* 2. read prepend data */
 	/**
@@ -446,7 +455,7 @@
 	ks_inblk(ks, buf, ALIGN(len, 4));
 
 	/* 4. reset sudo DMA Mode */
-	ks_wrreg8(ks, KS_RXQCR, ks->rc_rxqcr);
+	ks_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr);
 }
 
 /**
@@ -548,14 +557,17 @@
 {
 	struct net_device *netdev = pw;
 	struct ks_net *ks = netdev_priv(netdev);
+	unsigned long flags;
 	u16 status;
 
+	spin_lock_irqsave(&ks->statelock, flags);
 	/*this should be the first in IRQ handler */
 	ks_save_cmd_reg(ks);
 
 	status = ks_rdreg16(ks, KS_ISR);
 	if (unlikely(!status)) {
 		ks_restore_cmd_reg(ks);
+		spin_unlock_irqrestore(&ks->statelock, flags);
 		return IRQ_NONE;
 	}
 
@@ -581,6 +593,7 @@
 		ks->netdev->stats.rx_over_errors++;
 	/* this should be the last in IRQ handler*/
 	ks_restore_cmd_reg(ks);
+	spin_unlock_irqrestore(&ks->statelock, flags);
 	return IRQ_HANDLED;
 }
 
@@ -650,6 +663,7 @@
 
 	/* shutdown RX/TX QMU */
 	ks_disable_qmu(ks);
+	ks_disable_int(ks);
 
 	/* set powermode to soft power down to save power */
 	ks_set_powermode(ks, PMECR_PM_SOFTDOWN);
@@ -679,13 +693,13 @@
 	ks->txh.txw[1] = cpu_to_le16(len);
 
 	/* 1. set sudo-DMA mode */
-	ks_wrreg8(ks, KS_RXQCR, (ks->rc_rxqcr | RXQCR_SDA) & 0xff);
+	ks_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA);
 	/* 2. write status/lenth info */
 	ks_outblk(ks, ks->txh.txw, 4);
 	/* 3. write pkt data */
 	ks_outblk(ks, (u16 *)pdata, ALIGN(len, 4));
 	/* 4. reset sudo-DMA mode */
-	ks_wrreg8(ks, KS_RXQCR, ks->rc_rxqcr);
+	ks_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr);
 	/* 5. Enqueue Tx(move the pkt from TX buffer into TXQ) */
 	ks_wrreg16(ks, KS_TXQCR, TXQCR_METFE);
 	/* 6. wait until TXQCR_METFE is auto-cleared */
@@ -706,10 +720,9 @@
 {
 	netdev_tx_t retv = NETDEV_TX_OK;
 	struct ks_net *ks = netdev_priv(netdev);
+	unsigned long flags;
 
-	disable_irq(netdev->irq);
-	ks_disable_int(ks);
-	spin_lock(&ks->statelock);
+	spin_lock_irqsave(&ks->statelock, flags);
 
 	/* Extra space are required:
 	*  4 byte for alignment, 4 for status/length, 4 for CRC
@@ -723,9 +736,7 @@
 		dev_kfree_skb(skb);
 	} else
 		retv = NETDEV_TX_BUSY;
-	spin_unlock(&ks->statelock);
-	ks_enable_int(ks);
-	enable_irq(netdev->irq);
+	spin_unlock_irqrestore(&ks->statelock, flags);
 	return retv;
 }
 
@@ -1251,6 +1262,10 @@
 		goto err_free;
 	}
 
+	err = ks_check_endian(ks);
+	if (err)
+		goto err_free;
+
 	netdev->irq = platform_get_irq(pdev, 0);
 
 	if ((int)netdev->irq < 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/microchip/encx24j600.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/microchip/encx24j600.c
@@ -1070,7 +1070,7 @@
 	if (unlikely(ret)) {
 		netif_err(priv, probe, ndev, "Error %d initializing card encx24j600 card\n",
 			  ret);
-		goto out_free;
+		goto out_stop;
 	}
 
 	eidled = encx24j600_read_reg(priv, EIDLED);
@@ -1088,6 +1088,8 @@
 
 out_unregister:
 	unregister_netdev(priv->ndev);
+out_stop:
+	kthread_stop(priv->kworker_task);
 out_free:
 	free_netdev(ndev);
 
@@ -1100,6 +1102,7 @@
 	struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
 
 	unregister_netdev(priv->ndev);
+	kthread_stop(priv->kworker_task);
 
 	free_netdev(priv->ndev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/microchip/lan743x_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/microchip/lan743x_ethtool.c
@@ -780,7 +780,9 @@
 
 	wol->supported = 0;
 	wol->wolopts = 0;
-	phy_ethtool_get_wol(netdev->phydev, wol);
+
+	if (netdev->phydev)
+		phy_ethtool_get_wol(netdev->phydev, wol);
 
 	wol->supported |= WAKE_BCAST | WAKE_UCAST | WAKE_MCAST |
 		WAKE_MAGIC | WAKE_PHY | WAKE_ARP;
@@ -809,9 +811,8 @@
 
 	device_set_wakeup_enable(&adapter->pdev->dev, (bool)wol->wolopts);
 
-	phy_ethtool_set_wol(netdev->phydev, wol);
-
-	return 0;
+	return netdev->phydev ? phy_ethtool_set_wol(netdev->phydev, wol)
+			: -ENETDOWN;
 }
 #endif /* CONFIG_PM */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/microchip/lan743x_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/microchip/lan743x_main.c
@@ -145,7 +145,8 @@
 
 	int_sts = lan743x_csr_read(adapter, INT_STS);
 	if (int_sts & INT_BIT_SW_GP_) {
-		lan743x_csr_write(adapter, INT_STS, INT_BIT_SW_GP_);
+		/* disable the interrupt to prevent repeated re-triggering */
+		lan743x_csr_write(adapter, INT_EN_CLR, INT_BIT_SW_GP_);
 		intr->software_isr_flag = 1;
 	}
 }
@@ -672,14 +673,12 @@
 static int lan743x_dp_write(struct lan743x_adapter *adapter,
 			    u32 select, u32 addr, u32 length, u32 *buf)
 {
-	int ret = -EIO;
 	u32 dp_sel;
 	int i;
 
-	mutex_lock(&adapter->dp_lock);
 	if (lan743x_csr_wait_for_bit(adapter, DP_SEL, DP_SEL_DPRDY_,
 				     1, 40, 100, 100))
-		goto unlock;
+		return -EIO;
 	dp_sel = lan743x_csr_read(adapter, DP_SEL);
 	dp_sel &= ~DP_SEL_MASK_;
 	dp_sel |= select;
@@ -691,13 +690,10 @@
 		lan743x_csr_write(adapter, DP_CMD, DP_CMD_WRITE_);
 		if (lan743x_csr_wait_for_bit(adapter, DP_SEL, DP_SEL_DPRDY_,
 					     1, 40, 100, 100))
-			goto unlock;
+			return -EIO;
 	}
-	ret = 0;
 
-unlock:
-	mutex_unlock(&adapter->dp_lock);
-	return ret;
+	return 0;
 }
 
 static u32 lan743x_mac_mii_access(u16 id, u16 index, int read)
@@ -1247,13 +1243,13 @@
 		goto clear_active;
 
 	if (!(buffer_info->flags & TX_BUFFER_INFO_FLAG_TIMESTAMP_REQUESTED)) {
-		dev_kfree_skb(buffer_info->skb);
+		dev_kfree_skb_any(buffer_info->skb);
 		goto clear_skb;
 	}
 
 	if (cleanup) {
 		lan743x_ptp_unrequest_tx_timestamp(tx->adapter);
-		dev_kfree_skb(buffer_info->skb);
+		dev_kfree_skb_any(buffer_info->skb);
 	} else {
 		ignore_sync = (buffer_info->flags &
 			       TX_BUFFER_INFO_FLAG_IGNORE_SYNC) != 0;
@@ -1563,7 +1559,7 @@
 	if (required_number_of_descriptors >
 		lan743x_tx_get_avail_desc(tx)) {
 		if (required_number_of_descriptors > (tx->ring_size - 1)) {
-			dev_kfree_skb(skb);
+			dev_kfree_skb_irq(skb);
 		} else {
 			/* save to overflow buffer */
 			tx->overflow_skb = skb;
@@ -1596,7 +1592,7 @@
 				   start_frame_length,
 				   do_timestamp,
 				   skb->ip_summed == CHECKSUM_PARTIAL)) {
-		dev_kfree_skb(skb);
+		dev_kfree_skb_irq(skb);
 		goto unlock;
 	}
 
@@ -1615,7 +1611,7 @@
 			 * frame assembler clean up was performed inside
 			 *	lan743x_tx_frame_add_fragment
 			 */
-			dev_kfree_skb(skb);
+			dev_kfree_skb_irq(skb);
 			goto unlock;
 		}
 	}
@@ -1903,6 +1899,14 @@
 				  length, GFP_ATOMIC | GFP_DMA);
 }
 
+static void lan743x_rx_update_tail(struct lan743x_rx *rx, int index)
+{
+	/* update the tail once per 8 descriptors */
+	if ((index & 7) == 7)
+		lan743x_csr_write(rx->adapter, RX_TAIL(rx->channel_number),
+				  index);
+}
+
 static int lan743x_rx_init_ring_element(struct lan743x_rx *rx, int index,
 					struct sk_buff *skb)
 {
@@ -1933,6 +1937,7 @@
 	descriptor->data0 = (RX_DESC_DATA0_OWN_ |
 			    (length & RX_DESC_DATA0_BUF_LENGTH_MASK_));
 	skb_reserve(buffer_info->skb, RX_HEAD_PADDING);
+	lan743x_rx_update_tail(rx, index);
 
 	return 0;
 }
@@ -1951,6 +1956,7 @@
 	descriptor->data0 = (RX_DESC_DATA0_OWN_ |
 			    ((buffer_info->buffer_length) &
 			    RX_DESC_DATA0_BUF_LENGTH_MASK_));
+	lan743x_rx_update_tail(rx, index);
 }
 
 static void lan743x_rx_release_ring_element(struct lan743x_rx *rx, int index)
@@ -2162,6 +2168,7 @@
 {
 	struct lan743x_rx *rx = container_of(napi, struct lan743x_rx, napi);
 	struct lan743x_adapter *adapter = rx->adapter;
+	int result = RX_PROCESS_RESULT_NOTHING_TO_DO;
 	u32 rx_tail_flags = 0;
 	int count;
 
@@ -2170,27 +2177,19 @@
 		lan743x_csr_write(adapter, DMAC_INT_STS,
 				  DMAC_INT_BIT_RXFRM_(rx->channel_number));
 	}
-	count = 0;
-	while (count < weight) {
-		int rx_process_result = lan743x_rx_process_packet(rx);
-
-		if (rx_process_result == RX_PROCESS_RESULT_PACKET_RECEIVED) {
-			count++;
-		} else if (rx_process_result ==
-			RX_PROCESS_RESULT_NOTHING_TO_DO) {
+	for (count = 0; count < weight; count++) {
+		result = lan743x_rx_process_packet(rx);
+		if (result == RX_PROCESS_RESULT_NOTHING_TO_DO)
 			break;
-		} else if (rx_process_result ==
-			RX_PROCESS_RESULT_PACKET_DROPPED) {
-			continue;
-		}
 	}
 	rx->frame_count += count;
-	if (count == weight)
-		goto done;
+	if (count == weight || result == RX_PROCESS_RESULT_PACKET_RECEIVED)
+		return weight;
 
 	if (!napi_complete_done(napi, count))
-		goto done;
+		return count;
 
+	/* re-arm interrupts, must write to rx tail on some chip variants */
 	if (rx->vector_flags & LAN743X_VECTOR_FLAG_VECTOR_ENABLE_AUTO_SET)
 		rx_tail_flags |= RX_TAIL_SET_TOP_INT_VEC_EN_;
 	if (rx->vector_flags & LAN743X_VECTOR_FLAG_SOURCE_ENABLE_AUTO_SET) {
@@ -2200,10 +2199,10 @@
 				  INT_BIT_DMA_RX_(rx->channel_number));
 	}
 
-	/* update RX_TAIL */
-	lan743x_csr_write(adapter, RX_TAIL(rx->channel_number),
-			  rx_tail_flags | rx->last_tail);
-done:
+	if (rx_tail_flags)
+		lan743x_csr_write(adapter, RX_TAIL(rx->channel_number),
+				  rx_tail_flags | rx->last_tail);
+
 	return count;
 }
 
@@ -2348,7 +2347,7 @@
 
 	netif_napi_add(adapter->netdev,
 		       &rx->napi, lan743x_rx_napi_poll,
-		       rx->ring_size - 1);
+		       NAPI_POLL_WEIGHT);
 
 	lan743x_csr_write(adapter, DMAC_CMD,
 			  DMAC_CMD_RX_SWR_(rx->channel_number));
@@ -2674,7 +2673,6 @@
 
 	adapter->intr.irq = adapter->pdev->irq;
 	lan743x_csr_write(adapter, INT_EN_CLR, 0xFFFFFFFF);
-	mutex_init(&adapter->dp_lock);
 
 	ret = lan743x_gpio_init(adapter);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/microchip/lan743x_main.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/microchip/lan743x_main.h
@@ -706,9 +706,6 @@
 	struct lan743x_csr      csr;
 	struct lan743x_intr     intr;
 
-	/* lock, used to prevent concurrent access to data port */
-	struct mutex		dp_lock;
-
 	struct lan743x_gpio	gpio;
 	struct lan743x_ptp	ptp;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/moxa/moxart_ether.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/moxa/moxart_ether.c
@@ -564,7 +564,7 @@
 	struct net_device *ndev = platform_get_drvdata(pdev);
 
 	unregister_netdev(ndev);
-	free_irq(ndev->irq, ndev);
+	devm_free_irq(&pdev->dev, ndev->irq, ndev);
 	moxart_mac_free_memory(ndev);
 	free_netdev(ndev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mscc/ocelot.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mscc/ocelot.c
@@ -1716,10 +1716,8 @@
 	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
 	int ret = 0;
 
-	if (!ocelot_netdevice_dev_check(dev))
-		return 0;
-
 	if (event == NETDEV_PRECHANGEUPPER &&
+	    ocelot_netdevice_dev_check(dev) &&
 	    netif_is_lag_master(info->upper_dev)) {
 		struct netdev_lag_upper_info *lag_upper_info = info->upper_info;
 		struct netlink_ext_ack *extack;
@@ -1979,14 +1977,18 @@
 
 static int ocelot_init_timestamp(struct ocelot *ocelot)
 {
+	struct ptp_clock *ptp_clock;
+
 	ocelot->ptp_info = ocelot_ptp_clock_info;
-	ocelot->ptp_clock = ptp_clock_register(&ocelot->ptp_info, ocelot->dev);
-	if (IS_ERR(ocelot->ptp_clock))
-		return PTR_ERR(ocelot->ptp_clock);
+	ptp_clock = ptp_clock_register(&ocelot->ptp_info, ocelot->dev);
+	if (IS_ERR(ptp_clock))
+		return PTR_ERR(ptp_clock);
 	/* Check if PHC support is missing at the configuration level */
-	if (!ocelot->ptp_clock)
+	if (!ptp_clock)
 		return 0;
 
+	ocelot->ptp_clock = ptp_clock;
+
 	ocelot_write(ocelot, SYS_PTP_CFG_PTP_STAMP_WID(30), SYS_PTP_CFG);
 	ocelot_write(ocelot, 0xffffffff, ANA_TABLES_PTP_ID_LOW);
 	ocelot_write(ocelot, 0xffffffff, ANA_TABLES_PTP_ID_HIGH);
@@ -2213,6 +2215,8 @@
 	destroy_workqueue(ocelot->stats_queue);
 	mutex_destroy(&ocelot->stats_lock);
 	ocelot_ace_deinit();
+	if (ocelot->ptp_clock)
+		ptp_clock_unregister(ocelot->ptp_clock);
 
 	for (i = 0; i < ocelot->num_phys_ports; i++) {
 		port = ocelot->ports[i];
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/mscc/ocelot_board.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/mscc/ocelot_board.c
@@ -112,6 +112,14 @@
 		if (err != 4)
 			break;
 
+		/* At this point the IFH was read correctly, so it is safe to
+		 * presume that there is no error. The err needs to be reset
+		 * otherwise a frame could come in CPU queue between the while
+		 * condition and the check for error later on. And in that case
+		 * the new frame is just removed and not processed.
+		 */
+		err = 0;
+
 		ocelot_parse_ifh(ifh, &info);
 
 		dev = ocelot->ports[info.port]->dev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/natsemi/jazzsonic.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/natsemi/jazzsonic.c
@@ -235,11 +235,13 @@
 
 	err = register_netdev(dev);
 	if (err)
-		goto out1;
+		goto undo_probe1;
 
 	return 0;
 
-out1:
+undo_probe1:
+	dma_free_coherent(lp->device, SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
+			  lp->descriptors, lp->descriptors_laddr);
 	release_mem_region(dev->base_addr, SONIC_MEM_SIZE);
 out:
 	free_netdev(dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/natsemi/macsonic.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/natsemi/macsonic.c
@@ -540,10 +540,14 @@
 
 	err = register_netdev(dev);
 	if (err)
-		goto out;
+		goto undo_probe;
 
 	return 0;
 
+undo_probe:
+	dma_free_coherent(lp->device,
+			  SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
+			  lp->descriptors, lp->descriptors_laddr);
 out:
 	free_netdev(dev);
 
@@ -618,12 +622,16 @@
 
 	err = register_netdev(ndev);
 	if (err)
-		goto out;
+		goto undo_probe;
 
 	nubus_set_drvdata(board, ndev);
 
 	return 0;
 
+undo_probe:
+	dma_free_coherent(lp->device,
+			  SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
+			  lp->descriptors, lp->descriptors_laddr);
 out:
 	free_netdev(ndev);
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/natsemi/sonic.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/natsemi/sonic.c
@@ -64,6 +64,8 @@
 
 	netif_dbg(lp, ifup, dev, "%s: initializing sonic driver\n", __func__);
 
+	spin_lock_init(&lp->lock);
+
 	for (i = 0; i < SONIC_NUM_RRS; i++) {
 		struct sk_buff *skb = netdev_alloc_skb(dev, SONIC_RBSIZE + 2);
 		if (skb == NULL) {
@@ -114,6 +116,24 @@
 	return 0;
 }
 
+/* Wait for the SONIC to become idle. */
+static void sonic_quiesce(struct net_device *dev, u16 mask)
+{
+	struct sonic_local * __maybe_unused lp = netdev_priv(dev);
+	int i;
+	u16 bits;
+
+	for (i = 0; i < 1000; ++i) {
+		bits = SONIC_READ(SONIC_CMD) & mask;
+		if (!bits)
+			return;
+		if (irqs_disabled() || in_interrupt())
+			udelay(20);
+		else
+			usleep_range(100, 200);
+	}
+	WARN_ONCE(1, "command deadline expired! 0x%04x\n", bits);
+}
 
 /*
  * Close the SONIC device
@@ -130,6 +150,9 @@
 	/*
 	 * stop the SONIC, disable interrupts
 	 */
+	SONIC_WRITE(SONIC_CMD, SONIC_CR_RXDIS);
+	sonic_quiesce(dev, SONIC_CR_ALL);
+
 	SONIC_WRITE(SONIC_IMR, 0);
 	SONIC_WRITE(SONIC_ISR, 0x7fff);
 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
@@ -169,6 +192,9 @@
 	 * put the Sonic into software-reset mode and
 	 * disable all interrupts before releasing DMA buffers
 	 */
+	SONIC_WRITE(SONIC_CMD, SONIC_CR_RXDIS);
+	sonic_quiesce(dev, SONIC_CR_ALL);
+
 	SONIC_WRITE(SONIC_IMR, 0);
 	SONIC_WRITE(SONIC_ISR, 0x7fff);
 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
@@ -206,8 +232,6 @@
  *   wake the tx queue
  * Concurrently with all of this, the SONIC is potentially writing to
  * the status flags of the TDs.
- * Until some mutual exclusion is added, this code will not work with SMP. However,
- * MIPS Jazz machines and m68k Macs were all uni-processor machines.
  */
 
 static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)
@@ -215,7 +239,8 @@
 	struct sonic_local *lp = netdev_priv(dev);
 	dma_addr_t laddr;
 	int length;
-	int entry = lp->next_tx;
+	int entry;
+	unsigned long flags;
 
 	netif_dbg(lp, tx_queued, dev, "%s: skb=%p\n", __func__, skb);
 
@@ -237,6 +262,10 @@
 		return NETDEV_TX_OK;
 	}
 
+	spin_lock_irqsave(&lp->lock, flags);
+
+	entry = lp->next_tx;
+
 	sonic_tda_put(dev, entry, SONIC_TD_STATUS, 0);       /* clear status */
 	sonic_tda_put(dev, entry, SONIC_TD_FRAG_COUNT, 1);   /* single fragment */
 	sonic_tda_put(dev, entry, SONIC_TD_PKTSIZE, length); /* length of packet */
@@ -246,10 +275,6 @@
 	sonic_tda_put(dev, entry, SONIC_TD_LINK,
 		sonic_tda_get(dev, entry, SONIC_TD_LINK) | SONIC_EOL);
 
-	/*
-	 * Must set tx_skb[entry] only after clearing status, and
-	 * before clearing EOL and before stopping queue
-	 */
 	wmb();
 	lp->tx_len[entry] = length;
 	lp->tx_laddr[entry] = laddr;
@@ -272,6 +297,8 @@
 
 	SONIC_WRITE(SONIC_CMD, SONIC_CR_TXP);
 
+	spin_unlock_irqrestore(&lp->lock, flags);
+
 	return NETDEV_TX_OK;
 }
 
@@ -284,15 +311,28 @@
 	struct net_device *dev = dev_id;
 	struct sonic_local *lp = netdev_priv(dev);
 	int status;
+	unsigned long flags;
+
+	/* The lock has two purposes. Firstly, it synchronizes sonic_interrupt()
+	 * with sonic_send_packet() so that the two functions can share state.
+	 * Secondly, it makes sonic_interrupt() re-entrant, as that is required
+	 * by macsonic which must use two IRQs with different priority levels.
+	 */
+	spin_lock_irqsave(&lp->lock, flags);
+
+	status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT;
+	if (!status) {
+		spin_unlock_irqrestore(&lp->lock, flags);
 
-	if (!(status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT))
 		return IRQ_NONE;
+	}
 
 	do {
+		SONIC_WRITE(SONIC_ISR, status); /* clear the interrupt(s) */
+
 		if (status & SONIC_INT_PKTRX) {
 			netif_dbg(lp, intr, dev, "%s: packet rx\n", __func__);
 			sonic_rx(dev);	/* got packet(s) */
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_PKTRX); /* clear the interrupt */
 		}
 
 		if (status & SONIC_INT_TXDN) {
@@ -300,11 +340,12 @@
 			int td_status;
 			int freed_some = 0;
 
-			/* At this point, cur_tx is the index of a TD that is one of:
-			 *   unallocated/freed                          (status set   & tx_skb[entry] clear)
-			 *   allocated and sent                         (status set   & tx_skb[entry] set  )
-			 *   allocated and not yet sent                 (status clear & tx_skb[entry] set  )
-			 *   still being allocated by sonic_send_packet (status clear & tx_skb[entry] clear)
+			/* The state of a Transmit Descriptor may be inferred
+			 * from { tx_skb[entry], td_status } as follows.
+			 * { clear, clear } => the TD has never been used
+			 * { set,   clear } => the TD was handed to SONIC
+			 * { set,   set   } => the TD was handed back
+			 * { clear, set   } => the TD is available for re-use
 			 */
 
 			netif_dbg(lp, intr, dev, "%s: tx done\n", __func__);
@@ -313,18 +354,19 @@
 				if ((td_status = sonic_tda_get(dev, entry, SONIC_TD_STATUS)) == 0)
 					break;
 
-				if (td_status & 0x0001) {
+				if (td_status & SONIC_TCR_PTX) {
 					lp->stats.tx_packets++;
 					lp->stats.tx_bytes += sonic_tda_get(dev, entry, SONIC_TD_PKTSIZE);
 				} else {
-					lp->stats.tx_errors++;
-					if (td_status & 0x0642)
+					if (td_status & (SONIC_TCR_EXD |
+					    SONIC_TCR_EXC | SONIC_TCR_BCM))
 						lp->stats.tx_aborted_errors++;
-					if (td_status & 0x0180)
+					if (td_status &
+					    (SONIC_TCR_NCRS | SONIC_TCR_CRLS))
 						lp->stats.tx_carrier_errors++;
-					if (td_status & 0x0020)
+					if (td_status & SONIC_TCR_OWC)
 						lp->stats.tx_window_errors++;
-					if (td_status & 0x0004)
+					if (td_status & SONIC_TCR_FU)
 						lp->stats.tx_fifo_errors++;
 				}
 
@@ -346,7 +388,6 @@
 			if (freed_some || lp->tx_skb[entry] == NULL)
 				netif_wake_queue(dev);  /* The ring is no longer full */
 			lp->cur_tx = entry;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_TXDN); /* clear the interrupt */
 		}
 
 		/*
@@ -355,42 +396,37 @@
 		if (status & SONIC_INT_RFO) {
 			netif_dbg(lp, rx_err, dev, "%s: rx fifo overrun\n",
 				  __func__);
-			lp->stats.rx_fifo_errors++;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_RFO); /* clear the interrupt */
 		}
 		if (status & SONIC_INT_RDE) {
 			netif_dbg(lp, rx_err, dev, "%s: rx descriptors exhausted\n",
 				  __func__);
-			lp->stats.rx_dropped++;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_RDE); /* clear the interrupt */
 		}
 		if (status & SONIC_INT_RBAE) {
 			netif_dbg(lp, rx_err, dev, "%s: rx buffer area exceeded\n",
 				  __func__);
-			lp->stats.rx_dropped++;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_RBAE); /* clear the interrupt */
 		}
 
 		/* counter overruns; all counters are 16bit wide */
-		if (status & SONIC_INT_FAE) {
+		if (status & SONIC_INT_FAE)
 			lp->stats.rx_frame_errors += 65536;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_FAE); /* clear the interrupt */
-		}
-		if (status & SONIC_INT_CRC) {
+		if (status & SONIC_INT_CRC)
 			lp->stats.rx_crc_errors += 65536;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_CRC); /* clear the interrupt */
-		}
-		if (status & SONIC_INT_MP) {
+		if (status & SONIC_INT_MP)
 			lp->stats.rx_missed_errors += 65536;
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_MP); /* clear the interrupt */
-		}
 
 		/* transmit error */
 		if (status & SONIC_INT_TXER) {
-			if (SONIC_READ(SONIC_TCR) & SONIC_TCR_FU)
-				netif_dbg(lp, tx_err, dev, "%s: tx fifo underrun\n",
-					  __func__);
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_TXER); /* clear the interrupt */
+			u16 tcr = SONIC_READ(SONIC_TCR);
+
+			netif_dbg(lp, tx_err, dev, "%s: TXER intr, TCR %04x\n",
+				  __func__, tcr);
+
+			if (tcr & (SONIC_TCR_EXD | SONIC_TCR_EXC |
+				   SONIC_TCR_FU | SONIC_TCR_BCM)) {
+				/* Aborted transmission. Try again. */
+				netif_stop_queue(dev);
+				SONIC_WRITE(SONIC_CMD, SONIC_CR_TXP);
+			}
 		}
 
 		/* bus retry */
@@ -400,107 +436,164 @@
 			/* ... to help debug DMA problems causing endless interrupts. */
 			/* Bounce the eth interface to turn on the interrupt again. */
 			SONIC_WRITE(SONIC_IMR, 0);
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_BR); /* clear the interrupt */
 		}
 
-		/* load CAM done */
-		if (status & SONIC_INT_LCD)
-			SONIC_WRITE(SONIC_ISR, SONIC_INT_LCD); /* clear the interrupt */
-	} while((status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT));
+		status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT;
+	} while (status);
+
+	spin_unlock_irqrestore(&lp->lock, flags);
+
 	return IRQ_HANDLED;
 }
 
+/* Return the array index corresponding to a given Receive Buffer pointer. */
+static int index_from_addr(struct sonic_local *lp, dma_addr_t addr,
+			   unsigned int last)
+{
+	unsigned int i = last;
+
+	do {
+		i = (i + 1) & SONIC_RRS_MASK;
+		if (addr == lp->rx_laddr[i])
+			return i;
+	} while (i != last);
+
+	return -ENOENT;
+}
+
+/* Allocate and map a new skb to be used as a receive buffer. */
+static bool sonic_alloc_rb(struct net_device *dev, struct sonic_local *lp,
+			   struct sk_buff **new_skb, dma_addr_t *new_addr)
+{
+	*new_skb = netdev_alloc_skb(dev, SONIC_RBSIZE + 2);
+	if (!*new_skb)
+		return false;
+
+	if (SONIC_BUS_SCALE(lp->dma_bitmode) == 2)
+		skb_reserve(*new_skb, 2);
+
+	*new_addr = dma_map_single(lp->device, skb_put(*new_skb, SONIC_RBSIZE),
+				   SONIC_RBSIZE, DMA_FROM_DEVICE);
+	if (!*new_addr) {
+		dev_kfree_skb(*new_skb);
+		*new_skb = NULL;
+		return false;
+	}
+
+	return true;
+}
+
+/* Place a new receive resource in the Receive Resource Area and update RWP. */
+static void sonic_update_rra(struct net_device *dev, struct sonic_local *lp,
+			     dma_addr_t old_addr, dma_addr_t new_addr)
+{
+	unsigned int entry = sonic_rr_entry(dev, SONIC_READ(SONIC_RWP));
+	unsigned int end = sonic_rr_entry(dev, SONIC_READ(SONIC_RRP));
+	u32 buf;
+
+	/* The resources in the range [RRP, RWP) belong to the SONIC. This loop
+	 * scans the other resources in the RRA, those in the range [RWP, RRP).
+	 */
+	do {
+		buf = (sonic_rra_get(dev, entry, SONIC_RR_BUFADR_H) << 16) |
+		      sonic_rra_get(dev, entry, SONIC_RR_BUFADR_L);
+
+		if (buf == old_addr)
+			break;
+
+		entry = (entry + 1) & SONIC_RRS_MASK;
+	} while (entry != end);
+
+	WARN_ONCE(buf != old_addr, "failed to find resource!\n");
+
+	sonic_rra_put(dev, entry, SONIC_RR_BUFADR_H, new_addr >> 16);
+	sonic_rra_put(dev, entry, SONIC_RR_BUFADR_L, new_addr & 0xffff);
+
+	entry = (entry + 1) & SONIC_RRS_MASK;
+
+	SONIC_WRITE(SONIC_RWP, sonic_rr_addr(dev, entry));
+}
+
 /*
  * We have a good packet(s), pass it/them up the network stack.
  */
 static void sonic_rx(struct net_device *dev)
 {
 	struct sonic_local *lp = netdev_priv(dev);
-	int status;
 	int entry = lp->cur_rx;
+	int prev_entry = lp->eol_rx;
+	bool rbe = false;
 
 	while (sonic_rda_get(dev, entry, SONIC_RD_IN_USE) == 0) {
-		struct sk_buff *used_skb;
-		struct sk_buff *new_skb;
-		dma_addr_t new_laddr;
-		u16 bufadr_l;
-		u16 bufadr_h;
-		int pkt_len;
-
-		status = sonic_rda_get(dev, entry, SONIC_RD_STATUS);
-		if (status & SONIC_RCR_PRX) {
-			/* Malloc up new buffer. */
-			new_skb = netdev_alloc_skb(dev, SONIC_RBSIZE + 2);
-			if (new_skb == NULL) {
-				lp->stats.rx_dropped++;
+		u16 status = sonic_rda_get(dev, entry, SONIC_RD_STATUS);
+
+		/* If the RD has LPKT set, the chip has finished with the RB */
+		if ((status & SONIC_RCR_PRX) && (status & SONIC_RCR_LPKT)) {
+			struct sk_buff *new_skb;
+			dma_addr_t new_laddr;
+			u32 addr = (sonic_rda_get(dev, entry,
+						  SONIC_RD_PKTPTR_H) << 16) |
+				   sonic_rda_get(dev, entry, SONIC_RD_PKTPTR_L);
+			int i = index_from_addr(lp, addr, entry);
+
+			if (i < 0) {
+				WARN_ONCE(1, "failed to find buffer!\n");
 				break;
 			}
-			/* provide 16 byte IP header alignment unless DMA requires otherwise */
-			if(SONIC_BUS_SCALE(lp->dma_bitmode) == 2)
-				skb_reserve(new_skb, 2);
-
-			new_laddr = dma_map_single(lp->device, skb_put(new_skb, SONIC_RBSIZE),
-		                               SONIC_RBSIZE, DMA_FROM_DEVICE);
-			if (!new_laddr) {
-				dev_kfree_skb(new_skb);
-				printk(KERN_ERR "%s: Failed to map rx buffer, dropping packet.\n", dev->name);
+
+			if (sonic_alloc_rb(dev, lp, &new_skb, &new_laddr)) {
+				struct sk_buff *used_skb = lp->rx_skb[i];
+				int pkt_len;
+
+				/* Pass the used buffer up the stack */
+				dma_unmap_single(lp->device, addr, SONIC_RBSIZE,
+						 DMA_FROM_DEVICE);
+
+				pkt_len = sonic_rda_get(dev, entry,
+							SONIC_RD_PKTLEN);
+				skb_trim(used_skb, pkt_len);
+				used_skb->protocol = eth_type_trans(used_skb,
+								    dev);
+				netif_rx(used_skb);
+				lp->stats.rx_packets++;
+				lp->stats.rx_bytes += pkt_len;
+
+				lp->rx_skb[i] = new_skb;
+				lp->rx_laddr[i] = new_laddr;
+			} else {
+				/* Failed to obtain a new buffer so re-use it */
+				new_laddr = addr;
 				lp->stats.rx_dropped++;
-				break;
 			}
-
-			/* now we have a new skb to replace it, pass the used one up the stack */
-			dma_unmap_single(lp->device, lp->rx_laddr[entry], SONIC_RBSIZE, DMA_FROM_DEVICE);
-			used_skb = lp->rx_skb[entry];
-			pkt_len = sonic_rda_get(dev, entry, SONIC_RD_PKTLEN);
-			skb_trim(used_skb, pkt_len);
-			used_skb->protocol = eth_type_trans(used_skb, dev);
-			netif_rx(used_skb);
-			lp->stats.rx_packets++;
-			lp->stats.rx_bytes += pkt_len;
-
-			/* and insert the new skb */
-			lp->rx_laddr[entry] = new_laddr;
-			lp->rx_skb[entry] = new_skb;
-
-			bufadr_l = (unsigned long)new_laddr & 0xffff;
-			bufadr_h = (unsigned long)new_laddr >> 16;
-			sonic_rra_put(dev, entry, SONIC_RR_BUFADR_L, bufadr_l);
-			sonic_rra_put(dev, entry, SONIC_RR_BUFADR_H, bufadr_h);
-		} else {
-			/* This should only happen, if we enable accepting broken packets. */
-			lp->stats.rx_errors++;
-			if (status & SONIC_RCR_FAER)
-				lp->stats.rx_frame_errors++;
-			if (status & SONIC_RCR_CRCR)
-				lp->stats.rx_crc_errors++;
-		}
-		if (status & SONIC_RCR_LPKT) {
-			/*
-			 * this was the last packet out of the current receive buffer
-			 * give the buffer back to the SONIC
+			/* If RBE is already asserted when RWP advances then
+			 * it's safe to clear RBE after processing this packet.
 			 */
-			lp->cur_rwp += SIZEOF_SONIC_RR * SONIC_BUS_SCALE(lp->dma_bitmode);
-			if (lp->cur_rwp >= lp->rra_end) lp->cur_rwp = lp->rra_laddr & 0xffff;
-			SONIC_WRITE(SONIC_RWP, lp->cur_rwp);
-			if (SONIC_READ(SONIC_ISR) & SONIC_INT_RBE) {
-				netif_dbg(lp, rx_err, dev, "%s: rx buffer exhausted\n",
-					  __func__);
-				SONIC_WRITE(SONIC_ISR, SONIC_INT_RBE); /* clear the flag */
-			}
-		} else
-			printk(KERN_ERR "%s: rx desc without RCR_LPKT. Shouldn't happen !?\n",
-			     dev->name);
+			rbe = rbe || SONIC_READ(SONIC_ISR) & SONIC_INT_RBE;
+			sonic_update_rra(dev, lp, addr, new_laddr);
+		}
 		/*
 		 * give back the descriptor
 		 */
-		sonic_rda_put(dev, entry, SONIC_RD_LINK,
-			sonic_rda_get(dev, entry, SONIC_RD_LINK) | SONIC_EOL);
+		sonic_rda_put(dev, entry, SONIC_RD_STATUS, 0);
 		sonic_rda_put(dev, entry, SONIC_RD_IN_USE, 1);
-		sonic_rda_put(dev, lp->eol_rx, SONIC_RD_LINK,
-			sonic_rda_get(dev, lp->eol_rx, SONIC_RD_LINK) & ~SONIC_EOL);
-		lp->eol_rx = entry;
-		lp->cur_rx = entry = (entry + 1) & SONIC_RDS_MASK;
+
+		prev_entry = entry;
+		entry = (entry + 1) & SONIC_RDS_MASK;
+	}
+
+	lp->cur_rx = entry;
+
+	if (prev_entry != lp->eol_rx) {
+		/* Advance the EOL flag to put descriptors back into service */
+		sonic_rda_put(dev, prev_entry, SONIC_RD_LINK, SONIC_EOL |
+			      sonic_rda_get(dev, prev_entry, SONIC_RD_LINK));
+		sonic_rda_put(dev, lp->eol_rx, SONIC_RD_LINK, ~SONIC_EOL &
+			      sonic_rda_get(dev, lp->eol_rx, SONIC_RD_LINK));
+		lp->eol_rx = prev_entry;
 	}
+
+	if (rbe)
+		SONIC_WRITE(SONIC_ISR, SONIC_INT_RBE);
 	/*
 	 * If any worth-while packets have been received, netif_rx()
 	 * has done a mark_bh(NET_BH) for us and will work on them
@@ -550,6 +643,8 @@
 		    (netdev_mc_count(dev) > 15)) {
 			rcr |= SONIC_RCR_AMC;
 		} else {
+			unsigned long flags;
+
 			netif_dbg(lp, ifup, dev, "%s: mc_count %d\n", __func__,
 				  netdev_mc_count(dev));
 			sonic_set_cam_enable(dev, 1);  /* always enable our own address */
@@ -563,9 +658,14 @@
 				i++;
 			}
 			SONIC_WRITE(SONIC_CDC, 16);
-			/* issue Load CAM command */
 			SONIC_WRITE(SONIC_CDP, lp->cda_laddr & 0xffff);
+
+			/* LCAM and TXP commands can't be used simultaneously */
+			spin_lock_irqsave(&lp->lock, flags);
+			sonic_quiesce(dev, SONIC_CR_TXP);
 			SONIC_WRITE(SONIC_CMD, SONIC_CR_LCAM);
+			sonic_quiesce(dev, SONIC_CR_LCAM);
+			spin_unlock_irqrestore(&lp->lock, flags);
 		}
 	}
 
@@ -580,7 +680,6 @@
  */
 static int sonic_init(struct net_device *dev)
 {
-	unsigned int cmd;
 	struct sonic_local *lp = netdev_priv(dev);
 	int i;
 
@@ -592,12 +691,16 @@
 	SONIC_WRITE(SONIC_ISR, 0x7fff);
 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RST);
 
+	/* While in reset mode, clear CAM Enable register */
+	SONIC_WRITE(SONIC_CE, 0);
+
 	/*
 	 * clear software reset flag, disable receiver, clear and
 	 * enable interrupts, then completely initialize the SONIC
 	 */
 	SONIC_WRITE(SONIC_CMD, 0);
-	SONIC_WRITE(SONIC_CMD, SONIC_CR_RXDIS);
+	SONIC_WRITE(SONIC_CMD, SONIC_CR_RXDIS | SONIC_CR_STP);
+	sonic_quiesce(dev, SONIC_CR_ALL);
 
 	/*
 	 * initialize the receive resource area
@@ -615,15 +718,10 @@
 	}
 
 	/* initialize all RRA registers */
-	lp->rra_end = (lp->rra_laddr + SONIC_NUM_RRS * SIZEOF_SONIC_RR *
-					SONIC_BUS_SCALE(lp->dma_bitmode)) & 0xffff;
-	lp->cur_rwp = (lp->rra_laddr + (SONIC_NUM_RRS - 1) * SIZEOF_SONIC_RR *
-					SONIC_BUS_SCALE(lp->dma_bitmode)) & 0xffff;
-
-	SONIC_WRITE(SONIC_RSA, lp->rra_laddr & 0xffff);
-	SONIC_WRITE(SONIC_REA, lp->rra_end);
-	SONIC_WRITE(SONIC_RRP, lp->rra_laddr & 0xffff);
-	SONIC_WRITE(SONIC_RWP, lp->cur_rwp);
+	SONIC_WRITE(SONIC_RSA, sonic_rr_addr(dev, 0));
+	SONIC_WRITE(SONIC_REA, sonic_rr_addr(dev, SONIC_NUM_RRS));
+	SONIC_WRITE(SONIC_RRP, sonic_rr_addr(dev, 0));
+	SONIC_WRITE(SONIC_RWP, sonic_rr_addr(dev, SONIC_NUM_RRS - 1));
 	SONIC_WRITE(SONIC_URRA, lp->rra_laddr >> 16);
 	SONIC_WRITE(SONIC_EOBC, (SONIC_RBSIZE >> 1) - (lp->dma_bitmode ? 2 : 1));
 
@@ -631,14 +729,7 @@
 	netif_dbg(lp, ifup, dev, "%s: issuing RRRA command\n", __func__);
 
 	SONIC_WRITE(SONIC_CMD, SONIC_CR_RRRA);
-	i = 0;
-	while (i++ < 100) {
-		if (SONIC_READ(SONIC_CMD) & SONIC_CR_RRRA)
-			break;
-	}
-
-	netif_dbg(lp, ifup, dev, "%s: status=%x, i=%d\n", __func__,
-		  SONIC_READ(SONIC_CMD), i);
+	sonic_quiesce(dev, SONIC_CR_RRRA);
 
 	/*
 	 * Initialize the receive descriptors so that they
@@ -713,28 +804,17 @@
 	 * load the CAM
 	 */
 	SONIC_WRITE(SONIC_CMD, SONIC_CR_LCAM);
-
-	i = 0;
-	while (i++ < 100) {
-		if (SONIC_READ(SONIC_ISR) & SONIC_INT_LCD)
-			break;
-	}
-	netif_dbg(lp, ifup, dev, "%s: CMD=%x, ISR=%x, i=%d\n", __func__,
-		  SONIC_READ(SONIC_CMD), SONIC_READ(SONIC_ISR), i);
+	sonic_quiesce(dev, SONIC_CR_LCAM);
 
 	/*
 	 * enable receiver, disable loopback
 	 * and enable all interrupts
 	 */
-	SONIC_WRITE(SONIC_CMD, SONIC_CR_RXEN | SONIC_CR_STP);
 	SONIC_WRITE(SONIC_RCR, SONIC_RCR_DEFAULT);
 	SONIC_WRITE(SONIC_TCR, SONIC_TCR_DEFAULT);
 	SONIC_WRITE(SONIC_ISR, 0x7fff);
 	SONIC_WRITE(SONIC_IMR, SONIC_IMR_DEFAULT);
-
-	cmd = SONIC_READ(SONIC_CMD);
-	if ((cmd & SONIC_CR_RXEN) == 0 || (cmd & SONIC_CR_STP) == 0)
-		printk(KERN_ERR "sonic_init: failed, status=%x\n", cmd);
+	SONIC_WRITE(SONIC_CMD, SONIC_CR_RXEN);
 
 	netif_dbg(lp, ifup, dev, "%s: new status=%x\n", __func__,
 		  SONIC_READ(SONIC_CMD));
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/natsemi/sonic.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/natsemi/sonic.h
@@ -110,6 +110,9 @@
 #define SONIC_CR_TXP            0x0002
 #define SONIC_CR_HTX            0x0001
 
+#define SONIC_CR_ALL (SONIC_CR_LCAM | SONIC_CR_RRRA | \
+		      SONIC_CR_RXEN | SONIC_CR_TXP)
+
 /*
  * SONIC data configuration bits
  */
@@ -175,6 +178,7 @@
 #define SONIC_TCR_NCRS          0x0100
 #define SONIC_TCR_CRLS          0x0080
 #define SONIC_TCR_EXC           0x0040
+#define SONIC_TCR_OWC           0x0020
 #define SONIC_TCR_PMB           0x0008
 #define SONIC_TCR_FU            0x0004
 #define SONIC_TCR_BCM           0x0002
@@ -274,8 +278,9 @@
 #define SONIC_NUM_RDS   SONIC_NUM_RRS /* number of receive descriptors */
 #define SONIC_NUM_TDS   16            /* number of transmit descriptors */
 
-#define SONIC_RDS_MASK  (SONIC_NUM_RDS-1)
-#define SONIC_TDS_MASK  (SONIC_NUM_TDS-1)
+#define SONIC_RRS_MASK  (SONIC_NUM_RRS - 1)
+#define SONIC_RDS_MASK  (SONIC_NUM_RDS - 1)
+#define SONIC_TDS_MASK  (SONIC_NUM_TDS - 1)
 
 #define SONIC_RBSIZE	1520          /* size of one resource buffer */
 
@@ -312,8 +317,6 @@
 	u32 rda_laddr;              /* logical DMA address of RDA */
 	dma_addr_t rx_laddr[SONIC_NUM_RRS]; /* logical DMA addresses of rx skbuffs */
 	dma_addr_t tx_laddr[SONIC_NUM_TDS]; /* logical DMA addresses of tx skbuffs */
-	unsigned int rra_end;
-	unsigned int cur_rwp;
 	unsigned int cur_rx;
 	unsigned int cur_tx;           /* first unacked transmit packet */
 	unsigned int eol_rx;
@@ -322,6 +325,7 @@
 	int msg_enable;
 	struct device *device;         /* generic device */
 	struct net_device_stats stats;
+	spinlock_t lock;
 };
 
 #define TX_TIMEOUT (3 * HZ)
@@ -344,30 +348,30 @@
    as far as we can tell. */
 /* OpenBSD calls this "SWO".  I'd like to think that sonic_buf_put()
    is a much better name. */
-static inline void sonic_buf_put(void* base, int bitmode,
+static inline void sonic_buf_put(u16 *base, int bitmode,
 				 int offset, __u16 val)
 {
 	if (bitmode)
 #ifdef __BIG_ENDIAN
-		((__u16 *) base + (offset*2))[1] = val;
+		__raw_writew(val, base + (offset * 2) + 1);
 #else
-		((__u16 *) base + (offset*2))[0] = val;
+		__raw_writew(val, base + (offset * 2) + 0);
 #endif
 	else
-	 	((__u16 *) base)[offset] = val;
+		__raw_writew(val, base + (offset * 1) + 0);
 }
 
-static inline __u16 sonic_buf_get(void* base, int bitmode,
+static inline __u16 sonic_buf_get(u16 *base, int bitmode,
 				  int offset)
 {
 	if (bitmode)
 #ifdef __BIG_ENDIAN
-		return ((volatile __u16 *) base + (offset*2))[1];
+		return __raw_readw(base + (offset * 2) + 1);
 #else
-		return ((volatile __u16 *) base + (offset*2))[0];
+		return __raw_readw(base + (offset * 2) + 0);
 #endif
 	else
-		return ((volatile __u16 *) base)[offset];
+		return __raw_readw(base + (offset * 1) + 0);
 }
 
 /* Inlines that you should actually use for reading/writing DMA buffers */
@@ -447,6 +451,22 @@
 			     (entry * SIZEOF_SONIC_RR) + offset);
 }
 
+static inline u16 sonic_rr_addr(struct net_device *dev, int entry)
+{
+	struct sonic_local *lp = netdev_priv(dev);
+
+	return lp->rra_laddr +
+	       entry * SIZEOF_SONIC_RR * SONIC_BUS_SCALE(lp->dma_bitmode);
+}
+
+static inline u16 sonic_rr_entry(struct net_device *dev, u16 addr)
+{
+	struct sonic_local *lp = netdev_priv(dev);
+
+	return (addr - (u16)lp->rra_laddr) / (SIZEOF_SONIC_RR *
+					      SONIC_BUS_SCALE(lp->dma_bitmode));
+}
+
 static const char version[] =
     "sonic.c:v0.92 20.9.98 tsbogend@alpha.franken.de\n";
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/natsemi/xtsonic.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/natsemi/xtsonic.c
@@ -265,11 +265,14 @@
 	sonic_msg_init(dev);
 
 	if ((err = register_netdev(dev)))
-		goto out1;
+		goto undo_probe1;
 
 	return 0;
 
-out1:
+undo_probe1:
+	dma_free_coherent(lp->device,
+			  SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
+			  lp->descriptors, lp->descriptors_laddr);
 	release_region(dev->base_addr, SONIC_MEM_SIZE);
 out:
 	free_netdev(dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/neterion/vxge/vxge-config.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/neterion/vxge/vxge-config.h
@@ -2045,7 +2045,7 @@
 	if ((level >= VXGE_ERR && VXGE_COMPONENT_LL & VXGE_DEBUG_ERR_MASK) ||  \
 	    (level >= VXGE_TRACE && VXGE_COMPONENT_LL & VXGE_DEBUG_TRACE_MASK))\
 		if ((mask & VXGE_DEBUG_MASK) == mask)			       \
-			printk(fmt "\n", __VA_ARGS__);			       \
+			printk(fmt "\n", ##__VA_ARGS__);		       \
 } while (0)
 #else
 #define vxge_debug_ll(level, mask, fmt, ...)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/neterion/vxge/vxge-main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/neterion/vxge/vxge-main.c
@@ -4197,6 +4197,9 @@
 	return ret;
 }
 
+#define VXGE_PXE_FIRMWARE "vxge/X3fw-pxe.ncf"
+#define VXGE_FIRMWARE "vxge/X3fw.ncf"
+
 static int vxge_probe_fw_update(struct vxgedev *vdev)
 {
 	u32 maj, min, bld;
@@ -4239,9 +4242,9 @@
 			}
 	}
 	if (gpxe)
-		fw_name = "vxge/X3fw-pxe.ncf";
+		fw_name = VXGE_PXE_FIRMWARE;
 	else
-		fw_name = "vxge/X3fw.ncf";
+		fw_name = VXGE_FIRMWARE;
 
 	ret = vxge_fw_upgrade(vdev, fw_name, 0);
 	/* -EINVAL and -ENOENT are not fatal errors for flashing firmware on
@@ -4846,3 +4849,5 @@
 }
 module_init(vxge_starter);
 module_exit(vxge_closer);
+MODULE_FIRMWARE(VXGE_PXE_FIRMWARE);
+MODULE_FIRMWARE(VXGE_FIRMWARE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/neterion/vxge/vxge-main.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/neterion/vxge/vxge-main.h
@@ -452,49 +452,49 @@
 
 #if (VXGE_DEBUG_LL_CONFIG & VXGE_DEBUG_MASK)
 #define vxge_debug_ll_config(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_LL_CONFIG, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_LL_CONFIG, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_ll_config(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_INIT & VXGE_DEBUG_MASK)
 #define vxge_debug_init(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_INIT, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_INIT, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_init(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_TX & VXGE_DEBUG_MASK)
 #define vxge_debug_tx(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_TX, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_TX, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_tx(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_RX & VXGE_DEBUG_MASK)
 #define vxge_debug_rx(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_RX, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_RX, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_rx(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_MEM & VXGE_DEBUG_MASK)
 #define vxge_debug_mem(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_MEM, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_MEM, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_mem(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_ENTRYEXIT & VXGE_DEBUG_MASK)
 #define vxge_debug_entryexit(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_ENTRYEXIT, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_ENTRYEXIT, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_entryexit(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_INTR & VXGE_DEBUG_MASK)
 #define vxge_debug_intr(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_INTR, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_INTR, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_intr(level, fmt, ...)
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/netronome/nfp/abm/cls.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/netronome/nfp/abm/cls.c
@@ -176,10 +176,8 @@
 	u8 mask, val;
 	int err;
 
-	if (!nfp_abm_u32_check_knode(alink->abm, knode, proto, extack)) {
-		err = -EOPNOTSUPP;
+	if (!nfp_abm_u32_check_knode(alink->abm, knode, proto, extack))
 		goto err_delete;
-	}
 
 	tos_off = proto == htons(ETH_P_IP) ? 16 : 20;
 
@@ -200,18 +198,14 @@
 		if ((iter->val & cmask) == (val & cmask) &&
 		    iter->band != knode->res->classid) {
 			NL_SET_ERR_MSG_MOD(extack, "conflict with already offloaded filter");
-			err = -EOPNOTSUPP;
 			goto err_delete;
 		}
 	}
 
 	if (!match) {
 		match = kzalloc(sizeof(*match), GFP_KERNEL);
-		if (!match) {
-			err = -ENOMEM;
-			goto err_delete;
-		}
-
+		if (!match)
+			return -ENOMEM;
 		list_add(&match->list, &alink->dscp_map);
 	}
 	match->handle = knode->handle;
@@ -227,7 +221,7 @@
 
 err_delete:
 	nfp_abm_u32_knode_delete(alink, knode);
-	return err;
+	return -EOPNOTSUPP;
 }
 
 static int nfp_abm_setup_tc_block_cb(enum tc_setup_type type,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/netronome/nfp/abm/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/netronome/nfp/abm/main.c
@@ -283,6 +283,7 @@
 	if (!nfp_nsp_has_hwinfo_lookup(nsp)) {
 		nfp_warn(pf->cpp, "NSP doesn't support PF MAC generation\n");
 		eth_hw_addr_random(nn->dp.netdev);
+		nfp_nsp_close(nsp);
 		return;
 	}
 
@@ -332,8 +333,10 @@
 		goto err_free_alink;
 
 	alink->prio_map = kzalloc(abm->prio_map_len, GFP_KERNEL);
-	if (!alink->prio_map)
+	if (!alink->prio_map) {
+		err = -ENOMEM;
 		goto err_free_alink;
+	}
 
 	/* This is a multi-host app, make sure MAC/PHY is up, but don't
 	 * make the MAC/PHY state follow the state of any of the ports.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/netronome/nfp/flower/metadata.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/netronome/nfp/flower/metadata.c
@@ -65,17 +65,17 @@
 	freed_stats_id = priv->stats_ring_size;
 	/* Check for unallocated entries first. */
 	if (priv->stats_ids.init_unalloc > 0) {
-		if (priv->active_mem_unit == priv->total_mem_units) {
-			priv->stats_ids.init_unalloc--;
-			priv->active_mem_unit = 0;
-		}
-
 		*stats_context_id =
 			FIELD_PREP(NFP_FL_STAT_ID_STAT,
 				   priv->stats_ids.init_unalloc - 1) |
 			FIELD_PREP(NFP_FL_STAT_ID_MU_NUM,
 				   priv->active_mem_unit);
-		priv->active_mem_unit++;
+
+		if (++priv->active_mem_unit == priv->total_mem_units) {
+			priv->stats_ids.init_unalloc--;
+			priv->active_mem_unit = 0;
+		}
+
 		return 0;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/netronome/nfp/flower/offload.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/netronome/nfp/flower/offload.c
@@ -1368,7 +1368,8 @@
 		ctx_id = be32_to_cpu(sub_flow->meta.host_ctx_id);
 		priv->stats[ctx_id].pkts += pkts;
 		priv->stats[ctx_id].bytes += bytes;
-		max_t(u64, priv->stats[ctx_id].used, used);
+		priv->stats[ctx_id].used = max_t(u64, used,
+						 priv->stats[ctx_id].used);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
@@ -731,8 +731,8 @@
 	struct nfp_eth_table_port *eth_port;
 	struct nfp_port *port;
 
-	param->active_fec = ETHTOOL_FEC_NONE_BIT;
-	param->fec = ETHTOOL_FEC_NONE_BIT;
+	param->active_fec = ETHTOOL_FEC_NONE;
+	param->fec = ETHTOOL_FEC_NONE;
 
 	port = nfp_port_from_netdev(netdev);
 	eth_port = nfp_port_get_eth_port(port);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ni/nixge.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ni/nixge.c
@@ -1318,19 +1318,21 @@
 	netif_napi_add(ndev, &priv->napi, nixge_poll, NAPI_POLL_WEIGHT);
 	err = nixge_of_get_resources(pdev);
 	if (err)
-		return err;
+		goto free_netdev;
 	__nixge_hw_set_mac_address(ndev);
 
 	priv->tx_irq = platform_get_irq_byname(pdev, "tx");
 	if (priv->tx_irq < 0) {
 		netdev_err(ndev, "could not find 'tx' irq");
-		return priv->tx_irq;
+		err = priv->tx_irq;
+		goto free_netdev;
 	}
 
 	priv->rx_irq = platform_get_irq_byname(pdev, "rx");
 	if (priv->rx_irq < 0) {
 		netdev_err(ndev, "could not find 'rx' irq");
-		return priv->rx_irq;
+		err = priv->rx_irq;
+		goto free_netdev;
 	}
 
 	priv->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/nxp/lpc_eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/nxp/lpc_eth.c
@@ -815,7 +815,8 @@
 	if (mdiobus_register(pldat->mii_bus))
 		goto err_out_unregister_bus;
 
-	if (lpc_mii_probe(pldat->ndev) != 0)
+	err = lpc_mii_probe(pldat->ndev);
+	if (err)
 		goto err_out_unregister_bus;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/pasemi/pasemi_mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/pasemi/pasemi_mac.c
@@ -1078,16 +1078,20 @@
 
 	mac->tx = pasemi_mac_setup_tx_resources(dev);
 
-	if (!mac->tx)
+	if (!mac->tx) {
+		ret = -ENOMEM;
 		goto out_tx_ring;
+	}
 
 	/* We might already have allocated rings in case mtu was changed
 	 * before interface was brought up.
 	 */
 	if (dev->mtu > 1500 && !mac->num_cs) {
 		pasemi_mac_setup_csrings(mac);
-		if (!mac->num_cs)
+		if (!mac->num_cs) {
+			ret = -ENOMEM;
 			goto out_tx_ring;
+		}
 	}
 
 	/* Zero out rmon counters */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
@@ -102,15 +102,18 @@
 			   void *p)
 {
 	struct ionic_lif *lif = netdev_priv(netdev);
+	unsigned int offset;
 	unsigned int size;
 
 	regs->version = IONIC_DEV_CMD_REG_VERSION;
 
+	offset = 0;
 	size = IONIC_DEV_INFO_REG_COUNT * sizeof(u32);
-	memcpy_fromio(p, lif->ionic->idev.dev_info_regs->words, size);
+	memcpy_fromio(p + offset, lif->ionic->idev.dev_info_regs->words, size);
 
+	offset += size;
 	size = IONIC_DEV_CMD_REG_COUNT * sizeof(u32);
-	memcpy_fromio(p, lif->ionic->idev.dev_cmd_regs->words, size);
+	memcpy_fromio(p + offset, lif->ionic->idev.dev_cmd_regs->words, size);
 }
 
 static int ionic_get_link_ksettings(struct net_device *netdev,
@@ -122,6 +125,11 @@
 
 	ethtool_link_ksettings_zero_link_mode(ks, supported);
 
+	if (!idev->port_info) {
+		netdev_err(netdev, "port_info not initialized\n");
+		return -EOPNOTSUPP;
+	}
+
 	/* The port_info data is found in a DMA space that the NIC keeps
 	 * up-to-date, so there's no need to request the data from the
 	 * NIC, we already have it in our memory space.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/pensando/ionic/ionic_if.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/pensando/ionic/ionic_if.h
@@ -862,7 +862,7 @@
 #define IONIC_RXQ_COMP_CSUM_F_VLAN	0x40
 #define IONIC_RXQ_COMP_CSUM_F_CALC	0x80
 	u8     pkt_type_color;
-#define IONIC_RXQ_COMP_PKT_TYPE_MASK	0x0f
+#define IONIC_RXQ_COMP_PKT_TYPE_MASK	0x7f
 };
 
 enum ionic_pkt_type {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/pensando/ionic/ionic_lif.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/pensando/ionic/ionic_lif.c
@@ -666,7 +666,7 @@
 	eid = le64_to_cpu(comp->event.eid);
 
 	/* Have we run out of new completions to process? */
-	if (eid <= lif->last_eid)
+	if ((s64)(eid - lif->last_eid) <= 0)
 		return false;
 
 	lif->last_eid = eid;
@@ -809,8 +809,7 @@
 	if (f)
 		return 0;
 
-	netdev_dbg(lif->netdev, "rx_filter add ADDR %pM (id %d)\n", addr,
-		   ctx.comp.rx_filter_add.filter_id);
+	netdev_dbg(lif->netdev, "rx_filter add ADDR %pM\n", addr);
 
 	memcpy(ctx.cmd.rx_filter_add.mac.addr, addr, ETH_ALEN);
 	err = ionic_adminq_post_wait(lif, &ctx);
@@ -839,6 +838,9 @@
 		return -ENOENT;
 	}
 
+	netdev_dbg(lif->netdev, "rx_filter del ADDR %pM (id %d)\n",
+		   addr, f->filter_id);
+
 	ctx.cmd.rx_filter_del.filter_id = cpu_to_le32(f->filter_id);
 	ionic_rx_filter_free(lif, f);
 	spin_unlock_bh(&lif->rx_filters.lock);
@@ -847,9 +849,6 @@
 	if (err)
 		return err;
 
-	netdev_dbg(lif->netdev, "rx_filter del ADDR %pM (id %d)\n", addr,
-		   ctx.cmd.rx_filter_del.filter_id);
-
 	return 0;
 }
 
@@ -1187,6 +1186,7 @@
 
 	netdev->hw_features |= netdev->hw_enc_features;
 	netdev->features |= netdev->hw_features;
+	netdev->vlan_features |= netdev->features & ~NETIF_F_VLAN_FEATURES;
 
 	netdev->priv_flags |= IFF_UNICAST_FLT;
 
@@ -1290,13 +1290,11 @@
 	};
 	int err;
 
+	netdev_dbg(netdev, "rx_filter add VLAN %d\n", vid);
 	err = ionic_adminq_post_wait(lif, &ctx);
 	if (err)
 		return err;
 
-	netdev_dbg(netdev, "rx_filter add VLAN %d (id %d)\n", vid,
-		   ctx.comp.rx_filter_add.filter_id);
-
 	return ionic_rx_filter_save(lif, 0, IONIC_RXQ_INDEX_ANY, 0, &ctx);
 }
 
@@ -1321,8 +1319,8 @@
 		return -ENOENT;
 	}
 
-	netdev_dbg(netdev, "rx_filter del VLAN %d (id %d)\n", vid,
-		   le32_to_cpu(ctx.cmd.rx_filter_del.filter_id));
+	netdev_dbg(netdev, "rx_filter del VLAN %d (id %d)\n",
+		   vid, f->filter_id);
 
 	ctx.cmd.rx_filter_del.filter_id = cpu_to_le32(f->filter_id);
 	ionic_rx_filter_free(lif, f);
@@ -1364,12 +1362,9 @@
 
 static int ionic_lif_rss_init(struct ionic_lif *lif)
 {
-	u8 rss_key[IONIC_RSS_HASH_KEY_SIZE];
 	unsigned int tbl_sz;
 	unsigned int i;
 
-	netdev_rss_key_fill(rss_key, IONIC_RSS_HASH_KEY_SIZE);
-
 	lif->rss_types = IONIC_RSS_TYPE_IPV4     |
 			 IONIC_RSS_TYPE_IPV4_TCP |
 			 IONIC_RSS_TYPE_IPV4_UDP |
@@ -1382,12 +1377,18 @@
 	for (i = 0; i < tbl_sz; i++)
 		lif->rss_ind_tbl[i] = ethtool_rxfh_indir_default(i, lif->nxqs);
 
-	return ionic_lif_rss_config(lif, lif->rss_types, rss_key, NULL);
+	return ionic_lif_rss_config(lif, lif->rss_types, NULL, NULL);
 }
 
-static int ionic_lif_rss_deinit(struct ionic_lif *lif)
+static void ionic_lif_rss_deinit(struct ionic_lif *lif)
 {
-	return ionic_lif_rss_config(lif, 0x0, NULL, NULL);
+	int tbl_sz;
+
+	tbl_sz = le16_to_cpu(lif->ionic->ident.lif.eth.rss_ind_tbl_sz);
+	memset(lif->rss_ind_tbl, 0, tbl_sz);
+	memset(lif->rss_hash_key, 0, IONIC_RSS_HASH_KEY_SIZE);
+
+	ionic_lif_rss_config(lif, 0x0, NULL, NULL);
 }
 
 static void ionic_txrx_disable(struct ionic_lif *lif)
@@ -1710,6 +1711,7 @@
 		dev_err(dev, "Failed to allocate rss indirection table, aborting\n");
 		goto err_out_free_qcqs;
 	}
+	netdev_rss_key_fill(lif->rss_hash_key, IONIC_RSS_HASH_KEY_SIZE);
 
 	list_add_tail(&lif->list, &ionic->lifs);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/pensando/ionic/ionic_rx_filter.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/pensando/ionic/ionic_rx_filter.c
@@ -36,10 +36,12 @@
 
 	spin_lock_init(&lif->rx_filters.lock);
 
+	spin_lock_bh(&lif->rx_filters.lock);
 	for (i = 0; i < IONIC_RX_FILTER_HLISTS; i++) {
 		INIT_HLIST_HEAD(&lif->rx_filters.by_hash[i]);
 		INIT_HLIST_HEAD(&lif->rx_filters.by_id[i]);
 	}
+	spin_unlock_bh(&lif->rx_filters.lock);
 
 	return 0;
 }
@@ -51,11 +53,13 @@
 	struct hlist_node *tmp;
 	unsigned int i;
 
+	spin_lock_bh(&lif->rx_filters.lock);
 	for (i = 0; i < IONIC_RX_FILTER_HLISTS; i++) {
 		head = &lif->rx_filters.by_id[i];
 		hlist_for_each_entry_safe(f, tmp, head, by_id)
 			ionic_rx_filter_free(lif, f);
 	}
+	spin_unlock_bh(&lif->rx_filters.lock);
 }
 
 int ionic_rx_filter_save(struct ionic_lif *lif, u32 flow_id, u16 rxq_index,
@@ -91,6 +95,7 @@
 	f->filter_id = le32_to_cpu(ctx->comp.rx_filter_add.filter_id);
 	f->rxq_index = rxq_index;
 	memcpy(&f->cmd, ac, sizeof(f->cmd));
+	netdev_dbg(lif->netdev, "rx_filter add filter_id %d\n", f->filter_id);
 
 	INIT_HLIST_NODE(&f->by_hash);
 	INIT_HLIST_NODE(&f->by_id);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
@@ -257,7 +257,7 @@
 	unsigned int len;
 	unsigned int i;
 
-	len = netdev->mtu + ETH_HLEN;
+	len = netdev->mtu + ETH_HLEN + VLAN_HLEN;
 
 	for (i = ionic_q_space_avail(q); i; i--) {
 		skb = ionic_rx_skb_alloc(q, len, &dma_addr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/Kconfig
@@ -78,6 +78,7 @@
 	depends on PCI
 	select ZLIB_INFLATE
 	select CRC8
+	select CRC32
 	select NET_DEVLINK
 	---help---
 	  This enables the support for ...
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
@@ -564,11 +564,6 @@
 	.ndo_set_features = netxen_set_features,
 };
 
-static inline bool netxen_function_zero(struct pci_dev *pdev)
-{
-	return (PCI_FUNC(pdev->devfn) == 0) ? true : false;
-}
-
 static inline void netxen_set_interrupt_mode(struct netxen_adapter *adapter,
 					     u32 mode)
 {
@@ -664,7 +659,7 @@
 	netxen_initialize_interrupt_registers(adapter);
 	netxen_set_msix_bit(pdev, 0);
 
-	if (netxen_function_zero(pdev)) {
+	if (adapter->portnum == 0) {
 		if (!netxen_setup_msi_interrupts(adapter, num_msix))
 			netxen_set_interrupt_mode(adapter, NETXEN_MSI_MODE);
 		else
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_cxt.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_cxt.c
@@ -396,7 +396,7 @@
 		vf_tids += segs[NUM_TASK_PF_SEGMENTS].count;
 	}
 
-	iids->vf_cids += vf_cids * p_mngr->vf_count;
+	iids->vf_cids = vf_cids;
 	iids->tids += vf_tids * p_mngr->vf_count;
 
 	DP_VERBOSE(p_hwfn, QED_MSG_ILT,
@@ -2073,8 +2073,8 @@
 	num_srqs = min_t(u32, QED_RDMA_MAX_SRQS, p_params->num_srqs);
 
 	if (p_hwfn->mcp_info->func_info.protocol == QED_PCI_ETH_RDMA) {
-		DP_NOTICE(p_hwfn,
-			  "Current day drivers don't support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only\n");
+		DP_VERBOSE(p_hwfn, QED_MSG_SP,
+			   "Current day drivers don't support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only\n");
 		p_hwfn->hw_info.personality = QED_PCI_ETH_ROCE;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_debug.c
@@ -8197,6 +8197,10 @@
 		DP_ERR(cdev, "qed_dbg_mcp_trace failed. rc = %d\n", rc);
 	}
 
+	/* Re-populate nvm attribute info */
+	qed_mcp_nvm_info_free(p_hwfn);
+	qed_mcp_nvm_info_populate(p_hwfn);
+
 	/* nvm cfg1 */
 	rc = qed_dbg_nvm_image(cdev,
 			       (u8 *)buffer + offset + REGDUMP_HEADER_SIZE,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -1368,6 +1368,8 @@
 
 void qed_resc_free(struct qed_dev *cdev)
 {
+	struct qed_rdma_info *rdma_info;
+	struct qed_hwfn *p_hwfn;
 	int i;
 
 	if (IS_VF(cdev)) {
@@ -1385,7 +1387,8 @@
 	qed_llh_free(cdev);
 
 	for_each_hwfn(cdev, i) {
-		struct qed_hwfn *p_hwfn = &cdev->hwfns[i];
+		p_hwfn = cdev->hwfns + i;
+		rdma_info = p_hwfn->p_rdma_info;
 
 		qed_cxt_mngr_free(p_hwfn);
 		qed_qm_info_free(p_hwfn);
@@ -1404,8 +1407,10 @@
 			qed_ooo_free(p_hwfn);
 		}
 
-		if (QED_IS_RDMA_PERSONALITY(p_hwfn))
+		if (QED_IS_RDMA_PERSONALITY(p_hwfn) && rdma_info) {
+			qed_spq_unregister_async_cb(p_hwfn, rdma_info->proto);
 			qed_rdma_info_free(p_hwfn);
+		}
 
 		qed_iov_free(p_hwfn);
 		qed_l2_free(p_hwfn);
@@ -3087,7 +3092,7 @@
 		}
 
 		/* Log and clear previous pglue_b errors if such exist */
-		qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_main_ptt);
+		qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_main_ptt, true);
 
 		/* Enable the PF's internal FID_enable in the PXP */
 		rc = qed_pglueb_set_pfid_enable(p_hwfn, p_hwfn->p_main_ptt,
@@ -4137,7 +4142,8 @@
 			cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) |
 					BIT(QED_MF_LLH_PROTO_CLSS) |
 					BIT(QED_MF_LL2_NON_UNICAST) |
-					BIT(QED_MF_INTER_PF_SWITCH);
+					BIT(QED_MF_INTER_PF_SWITCH) |
+					BIT(QED_MF_DISABLE_ARFS);
 			break;
 		case NVM_CFG1_GLOB_MF_MODE_DEFAULT:
 			cdev->mf_bits = BIT(QED_MF_LLH_MAC_CLSS) |
@@ -4150,6 +4156,14 @@
 
 		DP_INFO(p_hwfn, "Multi function mode is 0x%lx\n",
 			cdev->mf_bits);
+
+		/* In CMT the PF is unknown when the GFS block processes the
+		 * packet. Therefore cannot use searcher as it has a per PF
+		 * database, and thus ARFS must be disabled.
+		 *
+		 */
+		if (QED_IS_CMT(cdev))
+			cdev->mf_bits |= BIT(QED_MF_DISABLE_ARFS);
 	}
 
 	DP_INFO(p_hwfn, "Multi function mode is 0x%lx\n",
@@ -4418,12 +4432,6 @@
 	return 0;
 }
 
-static void qed_nvm_info_free(struct qed_hwfn *p_hwfn)
-{
-	kfree(p_hwfn->nvm_info.image_att);
-	p_hwfn->nvm_info.image_att = NULL;
-}
-
 static int qed_hw_prepare_single(struct qed_hwfn *p_hwfn,
 				 void __iomem *p_regview,
 				 void __iomem *p_doorbells,
@@ -4508,7 +4516,7 @@
 	return rc;
 err3:
 	if (IS_LEAD_HWFN(p_hwfn))
-		qed_nvm_info_free(p_hwfn);
+		qed_mcp_nvm_info_free(p_hwfn);
 err2:
 	if (IS_LEAD_HWFN(p_hwfn))
 		qed_iov_free_hw_info(p_hwfn->cdev);
@@ -4569,7 +4577,7 @@
 		if (rc) {
 			if (IS_PF(cdev)) {
 				qed_init_free(p_hwfn);
-				qed_nvm_info_free(p_hwfn);
+				qed_mcp_nvm_info_free(p_hwfn);
 				qed_mcp_free(p_hwfn);
 				qed_hw_hwfn_free(p_hwfn);
 			}
@@ -4603,7 +4611,7 @@
 
 	qed_iov_free_hw_info(cdev);
 
-	qed_nvm_info_free(p_hwfn);
+	qed_mcp_nvm_info_free(p_hwfn);
 }
 
 static void qed_chain_free_next_ptr(struct qed_dev *cdev,
@@ -4648,26 +4656,20 @@
 
 static void qed_chain_free_pbl(struct qed_dev *cdev, struct qed_chain *p_chain)
 {
-	void **pp_virt_addr_tbl = p_chain->pbl.pp_virt_addr_tbl;
+	struct addr_tbl_entry *pp_addr_tbl = p_chain->pbl.pp_addr_tbl;
 	u32 page_cnt = p_chain->page_cnt, i, pbl_size;
-	u8 *p_pbl_virt = p_chain->pbl_sp.p_virt_table;
 
-	if (!pp_virt_addr_tbl)
+	if (!pp_addr_tbl)
 		return;
 
-	if (!p_pbl_virt)
-		goto out;
-
 	for (i = 0; i < page_cnt; i++) {
-		if (!pp_virt_addr_tbl[i])
+		if (!pp_addr_tbl[i].virt_addr || !pp_addr_tbl[i].dma_map)
 			break;
 
 		dma_free_coherent(&cdev->pdev->dev,
 				  QED_CHAIN_PAGE_SIZE,
-				  pp_virt_addr_tbl[i],
-				  *(dma_addr_t *)p_pbl_virt);
-
-		p_pbl_virt += QED_CHAIN_PBL_ENTRY_SIZE;
+				  pp_addr_tbl[i].virt_addr,
+				  pp_addr_tbl[i].dma_map);
 	}
 
 	pbl_size = page_cnt * QED_CHAIN_PBL_ENTRY_SIZE;
@@ -4677,9 +4679,9 @@
 				  pbl_size,
 				  p_chain->pbl_sp.p_virt_table,
 				  p_chain->pbl_sp.p_phys_table);
-out:
-	vfree(p_chain->pbl.pp_virt_addr_tbl);
-	p_chain->pbl.pp_virt_addr_tbl = NULL;
+
+	vfree(p_chain->pbl.pp_addr_tbl);
+	p_chain->pbl.pp_addr_tbl = NULL;
 }
 
 void qed_chain_free(struct qed_dev *cdev, struct qed_chain *p_chain)
@@ -4780,19 +4782,19 @@
 {
 	u32 page_cnt = p_chain->page_cnt, size, i;
 	dma_addr_t p_phys = 0, p_pbl_phys = 0;
-	void **pp_virt_addr_tbl = NULL;
+	struct addr_tbl_entry *pp_addr_tbl;
 	u8 *p_pbl_virt = NULL;
 	void *p_virt = NULL;
 
-	size = page_cnt * sizeof(*pp_virt_addr_tbl);
-	pp_virt_addr_tbl = vzalloc(size);
-	if (!pp_virt_addr_tbl)
+	size = page_cnt * sizeof(*pp_addr_tbl);
+	pp_addr_tbl =  vzalloc(size);
+	if (!pp_addr_tbl)
 		return -ENOMEM;
 
 	/* The allocation of the PBL table is done with its full size, since it
 	 * is expected to be successive.
 	 * qed_chain_init_pbl_mem() is called even in a case of an allocation
-	 * failure, since pp_virt_addr_tbl was previously allocated, and it
+	 * failure, since tbl was previously allocated, and it
 	 * should be saved to allow its freeing during the error flow.
 	 */
 	size = page_cnt * QED_CHAIN_PBL_ENTRY_SIZE;
@@ -4806,8 +4808,7 @@
 		p_chain->b_external_pbl = true;
 	}
 
-	qed_chain_init_pbl_mem(p_chain, p_pbl_virt, p_pbl_phys,
-			       pp_virt_addr_tbl);
+	qed_chain_init_pbl_mem(p_chain, p_pbl_virt, p_pbl_phys, pp_addr_tbl);
 	if (!p_pbl_virt)
 		return -ENOMEM;
 
@@ -4826,7 +4827,8 @@
 		/* Fill the PBL table with the physical address of the page */
 		*(dma_addr_t *)p_pbl_virt = p_phys;
 		/* Keep the virtual address of the page */
-		p_chain->pbl.pp_virt_addr_tbl[i] = p_virt;
+		p_chain->pbl.pp_addr_tbl[i].virt_addr = p_virt;
+		p_chain->pbl.pp_addr_tbl[i].dma_map = p_phys;
 
 		p_pbl_virt += QED_CHAIN_PBL_ENTRY_SIZE;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_int.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_int.c
@@ -256,9 +256,10 @@
 #define PGLUE_ATTENTION_ZLR_VALID		(1 << 25)
 #define PGLUE_ATTENTION_ILT_VALID		(1 << 23)
 
-int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
-				struct qed_ptt *p_ptt)
+int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
+				bool hw_init)
 {
+	char msg[256];
 	u32 tmp;
 
 	tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_TX_ERR_WR_DETAILS2);
@@ -272,22 +273,23 @@
 		details = qed_rd(p_hwfn, p_ptt,
 				 PGLUE_B_REG_TX_ERR_WR_DETAILS);
 
-		DP_NOTICE(p_hwfn,
-			  "Illegal write by chip to [%08x:%08x] blocked.\n"
-			  "Details: %08x [PFID %02x, VFID %02x, VF_VALID %02x]\n"
-			  "Details2 %08x [Was_error %02x BME deassert %02x FID_enable deassert %02x]\n",
-			  addr_hi, addr_lo, details,
-			  (u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_PFID),
-			  (u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_VFID),
-			  GET_FIELD(details,
-				    PGLUE_ATTENTION_DETAILS_VF_VALID) ? 1 : 0,
-			  tmp,
-			  GET_FIELD(tmp,
-				    PGLUE_ATTENTION_DETAILS2_WAS_ERR) ? 1 : 0,
-			  GET_FIELD(tmp,
-				    PGLUE_ATTENTION_DETAILS2_BME) ? 1 : 0,
-			  GET_FIELD(tmp,
-				    PGLUE_ATTENTION_DETAILS2_FID_EN) ? 1 : 0);
+		snprintf(msg, sizeof(msg),
+			 "Illegal write by chip to [%08x:%08x] blocked.\n"
+			 "Details: %08x [PFID %02x, VFID %02x, VF_VALID %02x]\n"
+			 "Details2 %08x [Was_error %02x BME deassert %02x FID_enable deassert %02x]",
+			 addr_hi, addr_lo, details,
+			 (u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_PFID),
+			 (u8)GET_FIELD(details, PGLUE_ATTENTION_DETAILS_VFID),
+			 !!GET_FIELD(details, PGLUE_ATTENTION_DETAILS_VF_VALID),
+			 tmp,
+			 !!GET_FIELD(tmp, PGLUE_ATTENTION_DETAILS2_WAS_ERR),
+			 !!GET_FIELD(tmp, PGLUE_ATTENTION_DETAILS2_BME),
+			 !!GET_FIELD(tmp, PGLUE_ATTENTION_DETAILS2_FID_EN));
+
+		if (hw_init)
+			DP_VERBOSE(p_hwfn, NETIF_MSG_INTR, "%s\n", msg);
+		else
+			DP_NOTICE(p_hwfn, "%s\n", msg);
 	}
 
 	tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_TX_ERR_RD_DETAILS2);
@@ -320,8 +322,14 @@
 	}
 
 	tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_TX_ERR_WR_DETAILS_ICPL);
-	if (tmp & PGLUE_ATTENTION_ICPL_VALID)
-		DP_NOTICE(p_hwfn, "ICPL error - %08x\n", tmp);
+	if (tmp & PGLUE_ATTENTION_ICPL_VALID) {
+		snprintf(msg, sizeof(msg), "ICPL error - %08x", tmp);
+
+		if (hw_init)
+			DP_VERBOSE(p_hwfn, NETIF_MSG_INTR, "%s\n", msg);
+		else
+			DP_NOTICE(p_hwfn, "%s\n", msg);
+	}
 
 	tmp = qed_rd(p_hwfn, p_ptt, PGLUE_B_REG_MASTER_ZLR_ERR_DETAILS);
 	if (tmp & PGLUE_ATTENTION_ZLR_VALID) {
@@ -360,7 +368,7 @@
 
 static int qed_pglueb_rbc_attn_cb(struct qed_hwfn *p_hwfn)
 {
-	return qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_dpc_ptt);
+	return qed_pglueb_rbc_attn_handler(p_hwfn, p_hwfn->p_dpc_ptt, false);
 }
 
 #define QED_DORQ_ATTENTION_REASON_MASK  (0xfffff)
@@ -1172,7 +1180,8 @@
 			index, attn_bits, attn_acks, asserted_bits,
 			deasserted_bits, p_sb_attn_sw->known_attn);
 	} else if (asserted_bits == 0x100) {
-		DP_INFO(p_hwfn, "MFW indication via attention\n");
+		DP_VERBOSE(p_hwfn, NETIF_MSG_INTR,
+			   "MFW indication via attention\n");
 	} else {
 		DP_VERBOSE(p_hwfn, NETIF_MSG_INTR,
 			   "MFW indication [deassertion]\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_int.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_int.h
@@ -431,7 +431,7 @@
 
 #define QED_MAPPING_MEMORY_SIZE(dev)	(NUM_OF_SBS(dev))
 
-int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn,
-				struct qed_ptt *p_ptt);
+int qed_pglueb_rbc_attn_handler(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
+				bool hw_init);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
@@ -2742,14 +2742,18 @@
 	iwarp_info->partial_fpdus = kcalloc((u16)p_hwfn->p_rdma_info->num_qps,
 					    sizeof(*iwarp_info->partial_fpdus),
 					    GFP_KERNEL);
-	if (!iwarp_info->partial_fpdus)
+	if (!iwarp_info->partial_fpdus) {
+		rc = -ENOMEM;
 		goto err;
+	}
 
 	iwarp_info->max_num_partial_fpdus = (u16)p_hwfn->p_rdma_info->num_qps;
 
 	iwarp_info->mpa_intermediate_buf = kzalloc(buff_size, GFP_KERNEL);
-	if (!iwarp_info->mpa_intermediate_buf)
+	if (!iwarp_info->mpa_intermediate_buf) {
+		rc = -ENOMEM;
 		goto err;
+	}
 
 	/* The mpa_bufs array serves for pending RX packets received on the
 	 * mpa ll2 that don't have place on the tx ring and require later
@@ -2759,8 +2763,10 @@
 	iwarp_info->mpa_bufs = kcalloc(data.input.rx_num_desc,
 				       sizeof(*iwarp_info->mpa_bufs),
 				       GFP_KERNEL);
-	if (!iwarp_info->mpa_bufs)
+	if (!iwarp_info->mpa_bufs) {
+		rc = -ENOMEM;
 		goto err;
+	}
 
 	INIT_LIST_HEAD(&iwarp_info->mpa_buf_pending_list);
 	INIT_LIST_HEAD(&iwarp_info->mpa_buf_list);
@@ -2832,8 +2838,6 @@
 	if (rc)
 		return rc;
 
-	qed_spq_unregister_async_cb(p_hwfn, PROTOCOLID_IWARP);
-
 	return qed_iwarp_ll2_stop(p_hwfn);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_l2.c
@@ -2001,6 +2001,9 @@
 			     struct qed_ptt *p_ptt,
 			     struct qed_arfs_config_params *p_cfg_params)
 {
+	if (test_bit(QED_MF_DISABLE_ARFS, &p_hwfn->cdev->mf_bits))
+		return;
+
 	if (p_cfg_params->mode != QED_FILTER_CONFIG_MODE_DISABLE) {
 		qed_gft_config(p_hwfn, p_ptt, p_hwfn->rel_pf_id,
 			       p_cfg_params->tcp,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -280,6 +280,8 @@
 		dev_info->fw_eng = FW_ENGINEERING_VERSION;
 		dev_info->b_inter_pf_switch = test_bit(QED_MF_INTER_PF_SWITCH,
 						       &cdev->mf_bits);
+		if (!test_bit(QED_MF_DISABLE_ARFS, &cdev->mf_bits))
+			dev_info->b_arfs_capable = true;
 		dev_info->tx_switching = true;
 
 		if (hw_info->b_wol_support == QED_WOL_SUPPORT_PME)
@@ -1087,9 +1089,6 @@
 #define QED_PERIODIC_DB_REC_INTERVAL_MS		100
 #define QED_PERIODIC_DB_REC_INTERVAL \
 	msecs_to_jiffies(QED_PERIODIC_DB_REC_INTERVAL_MS)
-#define QED_PERIODIC_DB_REC_WAIT_COUNT		10
-#define QED_PERIODIC_DB_REC_WAIT_INTERVAL \
-	(QED_PERIODIC_DB_REC_INTERVAL_MS / QED_PERIODIC_DB_REC_WAIT_COUNT)
 
 static int qed_slowpath_delayed_work(struct qed_hwfn *hwfn,
 				     enum qed_slowpath_wq_flag wq_flag,
@@ -1123,7 +1122,7 @@
 
 static void qed_slowpath_wq_stop(struct qed_dev *cdev)
 {
-	int i, sleep_count = QED_PERIODIC_DB_REC_WAIT_COUNT;
+	int i;
 
 	if (IS_VF(cdev))
 		return;
@@ -1135,13 +1134,7 @@
 		/* Stop queuing new delayed works */
 		cdev->hwfns[i].slowpath_wq_active = false;
 
-		/* Wait until the last periodic doorbell recovery is executed */
-		while (test_bit(QED_SLOWPATH_PERIODIC_DB_REC,
-				&cdev->hwfns[i].slowpath_task_flags) &&
-		       sleep_count--)
-			msleep(QED_PERIODIC_DB_REC_WAIT_INTERVAL);
-
-		flush_workqueue(cdev->hwfns[i].slowpath_wq);
+		cancel_delayed_work(&cdev->hwfns[i].slowpath_task);
 		destroy_workqueue(cdev->hwfns[i].slowpath_wq);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -3149,6 +3149,13 @@
 	return rc;
 }
 
+void qed_mcp_nvm_info_free(struct qed_hwfn *p_hwfn)
+{
+	kfree(p_hwfn->nvm_info.image_att);
+	p_hwfn->nvm_info.image_att = NULL;
+	p_hwfn->nvm_info.valid = false;
+}
+
 int
 qed_mcp_get_nvm_image_att(struct qed_hwfn *p_hwfn,
 			  enum qed_nvm_images image_id,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_mcp.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_mcp.h
@@ -1193,6 +1193,13 @@
 int qed_mcp_nvm_info_populate(struct qed_hwfn *p_hwfn);
 
 /**
+ * @brief Delete nvm info shadow in the given hardware function
+ *
+ * @param p_hwfn
+ */
+void qed_mcp_nvm_info_free(struct qed_hwfn *p_hwfn);
+
+/**
  * @brief Get the engine affinity configuration.
  *
  * @param p_hwfn
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_ptp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_ptp.c
@@ -44,8 +44,8 @@
 /* Add/subtract the Adjustment_Value when making a Drift adjustment */
 #define QED_DRIFT_CNTR_DIRECTION_SHIFT		31
 #define QED_TIMESTAMP_MASK			BIT(16)
-/* Param mask for Hardware to detect/timestamp the unicast PTP packets */
-#define QED_PTP_UCAST_PARAM_MASK		0xF
+/* Param mask for Hardware to detect/timestamp the L2/L4 unicast PTP packets */
+#define QED_PTP_UCAST_PARAM_MASK              0x70F
 
 static enum qed_resc_lock qed_ptcdev_to_resc(struct qed_hwfn *p_hwfn)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_roce.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_roce.c
@@ -113,7 +113,6 @@
 			break;
 		}
 	}
-	qed_spq_unregister_async_cb(p_hwfn, PROTOCOLID_ROCE);
 }
 
 static void qed_rdma_copy_gids(struct qed_rdma_qp *qp, __le32 *src_gid,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_sriov.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_sriov.c
@@ -96,6 +96,7 @@
 		p_ramrod->personality = PERSONALITY_ETH;
 		break;
 	case QED_PCI_ETH_ROCE:
+	case QED_PCI_ETH_IWARP:
 		p_ramrod->personality = PERSONALITY_RDMA_AND_ETH;
 		break;
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qed/qed_vf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qed/qed_vf.c
@@ -81,12 +81,17 @@
 	mutex_unlock(&(p_hwfn->vf_iov_info->mutex));
 }
 
+#define QED_VF_CHANNEL_USLEEP_ITERATIONS	90
+#define QED_VF_CHANNEL_USLEEP_DELAY		100
+#define QED_VF_CHANNEL_MSLEEP_ITERATIONS	10
+#define QED_VF_CHANNEL_MSLEEP_DELAY		25
+
 static int qed_send_msg2pf(struct qed_hwfn *p_hwfn, u8 *done, u32 resp_size)
 {
 	union vfpf_tlvs *p_req = p_hwfn->vf_iov_info->vf2pf_request;
 	struct ustorm_trigger_vf_zone trigger;
 	struct ustorm_vf_zone *zone_data;
-	int rc = 0, time = 100;
+	int iter, rc = 0;
 
 	zone_data = (struct ustorm_vf_zone *)PXP_VF_BAR0_START_USDM_ZONE_B;
 
@@ -126,11 +131,19 @@
 	REG_WR(p_hwfn, (uintptr_t)&zone_data->trigger, *((u32 *)&trigger));
 
 	/* When PF would be done with the response, it would write back to the
-	 * `done' address. Poll until then.
+	 * `done' address from a coherent DMA zone. Poll until then.
 	 */
-	while ((!*done) && time) {
-		msleep(25);
-		time--;
+
+	iter = QED_VF_CHANNEL_USLEEP_ITERATIONS;
+	while (!*done && iter--) {
+		udelay(QED_VF_CHANNEL_USLEEP_DELAY);
+		dma_rmb();
+	}
+
+	iter = QED_VF_CHANNEL_MSLEEP_ITERATIONS;
+	while (!*done && iter--) {
+		msleep(QED_VF_CHANNEL_MSLEEP_DELAY);
+		dma_rmb();
 	}
 
 	if (!*done) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede.h
@@ -163,6 +163,8 @@
 	struct list_head entry;
 	struct list_head rdma_event_list;
 	struct workqueue_struct *rdma_wq;
+	struct kref refcnt;
+	struct completion event_comp;
 	bool exp_recovery;
 };
 
@@ -572,12 +574,14 @@
 #define RX_RING_SIZE		((u16)BIT(RX_RING_SIZE_POW))
 #define NUM_RX_BDS_MAX		(RX_RING_SIZE - 1)
 #define NUM_RX_BDS_MIN		128
+#define NUM_RX_BDS_KDUMP_MIN	63
 #define NUM_RX_BDS_DEF		((u16)BIT(10) - 1)
 
 #define TX_RING_SIZE_POW	13
 #define TX_RING_SIZE		((u16)BIT(TX_RING_SIZE_POW))
 #define NUM_TX_BDS_MAX		(TX_RING_SIZE - 1)
 #define NUM_TX_BDS_MIN		128
+#define NUM_TX_BDS_KDUMP_MIN	63
 #define NUM_TX_BDS_DEF		NUM_TX_BDS_MAX
 
 #define QEDE_MIN_PKT_LEN		64
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede_filter.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede_filter.c
@@ -336,6 +336,9 @@
 {
 	int i;
 
+	if (!edev->dev_info.common.b_arfs_capable)
+		return -EINVAL;
+
 	edev->arfs = vzalloc(sizeof(*edev->arfs));
 	if (!edev->arfs)
 		return -ENOMEM;
@@ -1230,7 +1233,7 @@
 	netif_addr_lock_bh(ndev);
 
 	mc_count = netdev_mc_count(ndev);
-	if (mc_count < 64) {
+	if (mc_count <= 64) {
 		netdev_for_each_mc_addr(ha, ndev) {
 			ether_addr_copy(temp, ha->addr);
 			temp += ETH_ALEN;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede_fp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede_fp.c
@@ -1737,6 +1737,11 @@
 			      ntohs(udp_hdr(skb)->dest) != gnv_port))
 				return features & ~(NETIF_F_CSUM_MASK |
 						    NETIF_F_GSO_MASK);
+		} else if (l4_proto == IPPROTO_IPIP) {
+			/* IPIP tunnels are unknown to the device or at least unsupported natively,
+			 * offloads for them can't be done trivially, so disable them for such skb.
+			 */
+			return features & ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -29,6 +29,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
+#include <linux/crash_dump.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/version.h>
@@ -707,8 +708,14 @@
 	edev->dp_module = dp_module;
 	edev->dp_level = dp_level;
 	edev->ops = qed_ops;
-	edev->q_num_rx_buffers = NUM_RX_BDS_DEF;
-	edev->q_num_tx_buffers = NUM_TX_BDS_DEF;
+
+	if (is_kdump_kernel()) {
+		edev->q_num_rx_buffers = NUM_RX_BDS_KDUMP_MIN;
+		edev->q_num_tx_buffers = NUM_TX_BDS_KDUMP_MIN;
+	} else {
+		edev->q_num_rx_buffers = NUM_RX_BDS_DEF;
+		edev->q_num_tx_buffers = NUM_TX_BDS_DEF;
+	}
 
 	DP_INFO(edev, "Allocated netdev with %d tx queues and %d rx queues\n",
 		info->num_queues, info->num_queues);
@@ -763,7 +770,7 @@
 		      NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
 		      NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_HW_TC;
 
-	if (!IS_VF(edev) && edev->dev_info.common.num_hwfns == 1)
+	if (edev->dev_info.common.b_arfs_capable)
 		hw_features |= NETIF_F_NTUPLE;
 
 	if (edev->dev_info.common.vxlan_enable ||
@@ -1151,7 +1158,7 @@
 
 	/* PTP not supported on VFs */
 	if (!is_vf)
-		qede_ptp_enable(edev, (mode == QEDE_PROBE_NORMAL));
+		qede_ptp_enable(edev);
 
 	edev->ops->register_ops(cdev, &qede_ll_ops, edev);
 
@@ -1240,6 +1247,7 @@
 	if (system_state == SYSTEM_POWER_OFF)
 		return;
 	qed_ops->common->remove(cdev);
+	edev->cdev = NULL;
 
 	/* Since this can happen out-of-sync with other flows,
 	 * don't release the netdevice until after slowpath stop
@@ -1406,6 +1414,7 @@
 		rxq->rx_buf_seg_size = roundup_pow_of_two(size);
 	} else {
 		rxq->rx_buf_seg_size = PAGE_SIZE;
+		edev->ndev->features &= ~NETIF_F_GRO_HW;
 	}
 
 	/* Allocate the parallel driver ring for Rx buffers */
@@ -1450,6 +1459,7 @@
 		}
 	}
 
+	edev->gro_disable = !(edev->ndev->features & NETIF_F_GRO_HW);
 	if (!edev->gro_disable)
 		qede_set_tpa_param(rxq);
 err:
@@ -1702,8 +1712,6 @@
 		snprintf(fp->name, sizeof(fp->name), "%s-fp-%d",
 			 edev->ndev->name, queue_id);
 	}
-
-	edev->gro_disable = !(edev->ndev->features & NETIF_F_GRO_HW);
 }
 
 static int qede_set_real_num_queues(struct qede_dev *edev)
@@ -2203,7 +2211,7 @@
 	qede_vlan_mark_nonconfigured(edev);
 	edev->ops->fastpath_stop(edev->cdev);
 
-	if (!IS_VF(edev) && edev->dev_info.common.num_hwfns == 1) {
+	if (edev->dev_info.common.b_arfs_capable) {
 		qede_poll_for_freeing_arfs_filters(edev);
 		qede_free_arfs(edev);
 	}
@@ -2270,10 +2278,9 @@
 	if (rc)
 		goto err2;
 
-	if (!IS_VF(edev) && edev->dev_info.common.num_hwfns == 1) {
-		rc = qede_alloc_arfs(edev);
-		if (rc)
-			DP_NOTICE(edev, "aRFS memory allocation failed\n");
+	if (qede_alloc_arfs(edev)) {
+		edev->ndev->features &= ~NETIF_F_NTUPLE;
+		edev->dev_info.common.b_arfs_capable = false;
 	}
 
 	qede_napi_add_enable(edev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede_ptp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede_ptp.c
@@ -411,6 +411,7 @@
 	if (ptp->tx_skb) {
 		dev_kfree_skb_any(ptp->tx_skb);
 		ptp->tx_skb = NULL;
+		clear_bit_unlock(QEDE_FLAGS_PTP_TX_IN_PRORGESS, &edev->flags);
 	}
 
 	/* Disable PTP in HW */
@@ -422,7 +423,7 @@
 	edev->ptp = NULL;
 }
 
-static int qede_ptp_init(struct qede_dev *edev, bool init_tc)
+static int qede_ptp_init(struct qede_dev *edev)
 {
 	struct qede_ptp *ptp;
 	int rc;
@@ -443,25 +444,19 @@
 	/* Init work queue for Tx timestamping */
 	INIT_WORK(&ptp->work, qede_ptp_task);
 
-	/* Init cyclecounter and timecounter. This is done only in the first
-	 * load. If done in every load, PTP application will fail when doing
-	 * unload / load (e.g. MTU change) while it is running.
-	 */
-	if (init_tc) {
-		memset(&ptp->cc, 0, sizeof(ptp->cc));
-		ptp->cc.read = qede_ptp_read_cc;
-		ptp->cc.mask = CYCLECOUNTER_MASK(64);
-		ptp->cc.shift = 0;
-		ptp->cc.mult = 1;
+	/* Init cyclecounter and timecounter */
+	memset(&ptp->cc, 0, sizeof(ptp->cc));
+	ptp->cc.read = qede_ptp_read_cc;
+	ptp->cc.mask = CYCLECOUNTER_MASK(64);
+	ptp->cc.shift = 0;
+	ptp->cc.mult = 1;
 
-		timecounter_init(&ptp->tc, &ptp->cc,
-				 ktime_to_ns(ktime_get_real()));
-	}
+	timecounter_init(&ptp->tc, &ptp->cc, ktime_to_ns(ktime_get_real()));
 
-	return rc;
+	return 0;
 }
 
-int qede_ptp_enable(struct qede_dev *edev, bool init_tc)
+int qede_ptp_enable(struct qede_dev *edev)
 {
 	struct qede_ptp *ptp;
 	int rc;
@@ -482,7 +477,7 @@
 
 	edev->ptp = ptp;
 
-	rc = qede_ptp_init(edev, init_tc);
+	rc = qede_ptp_init(edev);
 	if (rc)
 		goto err1;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede_ptp.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede_ptp.h
@@ -41,7 +41,7 @@
 void qede_ptp_tx_ts(struct qede_dev *edev, struct sk_buff *skb);
 int qede_ptp_hw_ts(struct qede_dev *edev, struct ifreq *req);
 void qede_ptp_disable(struct qede_dev *edev);
-int qede_ptp_enable(struct qede_dev *edev, bool init_tc);
+int qede_ptp_enable(struct qede_dev *edev);
 int qede_ptp_get_ts_info(struct qede_dev *edev, struct ethtool_ts_info *ts);
 
 static inline void qede_ptp_record_rx_ts(struct qede_dev *edev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qede/qede_rdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qede/qede_rdma.c
@@ -59,6 +59,9 @@
 static int qede_rdma_create_wq(struct qede_dev *edev)
 {
 	INIT_LIST_HEAD(&edev->rdma_info.rdma_event_list);
+	kref_init(&edev->rdma_info.refcnt);
+	init_completion(&edev->rdma_info.event_comp);
+
 	edev->rdma_info.rdma_wq = create_singlethread_workqueue("rdma_wq");
 	if (!edev->rdma_info.rdma_wq) {
 		DP_NOTICE(edev, "qedr: Could not create workqueue\n");
@@ -83,10 +86,26 @@
 	}
 }
 
+static void qede_rdma_complete_event(struct kref *ref)
+{
+	struct qede_rdma_dev *rdma_dev =
+		container_of(ref, struct qede_rdma_dev, refcnt);
+
+	/* no more events will be added after this */
+	complete(&rdma_dev->event_comp);
+}
+
 static void qede_rdma_destroy_wq(struct qede_dev *edev)
 {
+	/* Avoid race with add_event flow, make sure it finishes before
+	 * we start accessing the list and cleaning up the work
+	 */
+	kref_put(&edev->rdma_info.refcnt, qede_rdma_complete_event);
+	wait_for_completion(&edev->rdma_info.event_comp);
+
 	qede_rdma_cleanup_event(edev);
 	destroy_workqueue(edev->rdma_info.rdma_wq);
+	edev->rdma_info.rdma_wq = NULL;
 }
 
 int qede_rdma_dev_add(struct qede_dev *edev, bool recovery)
@@ -307,18 +326,27 @@
 	if (edev->rdma_info.exp_recovery)
 		return;
 
-	if (!edev->rdma_info.qedr_dev)
+	if (!edev->rdma_info.qedr_dev || !edev->rdma_info.rdma_wq)
 		return;
 
+	/* We don't want the cleanup flow to start while we're allocating and
+	 * scheduling the work
+	 */
+	if (!kref_get_unless_zero(&edev->rdma_info.refcnt))
+		return; /* already being destroyed */
+
 	event_node = qede_rdma_get_free_event_node(edev);
 	if (!event_node)
-		return;
+		goto out;
 
 	event_node->event = event;
 	event_node->ptr = edev;
 
 	INIT_WORK(&event_node->work, qede_rdma_handle_event);
 	queue_work(edev->rdma_info.rdma_wq, &event_node->work);
+
+out:
+	kref_put(&edev->rdma_info.refcnt, qede_rdma_complete_event);
 }
 
 void qede_rdma_dev_event_open(struct qede_dev *edev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qla3xxx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qla3xxx.c
@@ -2756,6 +2756,9 @@
 	int err;
 
 	for (i = 0; i < qdev->num_large_buffers; i++) {
+		lrg_buf_cb = &qdev->lrg_buf[i];
+		memset(lrg_buf_cb, 0, sizeof(struct ql_rcv_buf_cb));
+
 		skb = netdev_alloc_skb(qdev->ndev,
 				       qdev->lrg_buffer_len);
 		if (unlikely(!skb)) {
@@ -2766,11 +2769,7 @@
 			ql_free_large_buffers(qdev);
 			return -ENOMEM;
 		} else {
-
-			lrg_buf_cb = &qdev->lrg_buf[i];
-			memset(lrg_buf_cb, 0, sizeof(struct ql_rcv_buf_cb));
 			lrg_buf_cb->index = i;
-			lrg_buf_cb->skb = skb;
 			/*
 			 * We save some space to copy the ethhdr from first
 			 * buffer
@@ -2792,6 +2791,7 @@
 				return -ENOMEM;
 			}
 
+			lrg_buf_cb->skb = skb;
 			dma_unmap_addr_set(lrg_buf_cb, mapaddr, map);
 			dma_unmap_len_set(lrg_buf_cb, maplen,
 					  qdev->lrg_buffer_len -
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -3651,7 +3651,7 @@
 	ahw->diag_cnt = 0;
 	ret = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INTRPT_TEST);
 	if (ret)
-		goto fail_diag_irq;
+		goto fail_mbx_args;
 
 	if (adapter->flags & QLCNIC_MSIX_ENABLED)
 		intrpt_id = ahw->intr_tbl[0].id;
@@ -3681,6 +3681,8 @@
 
 done:
 	qlcnic_free_mbx_args(&cmd);
+
+fail_mbx_args:
 	qlcnic_83xx_diag_free_res(netdev, drv_sds_rings);
 
 fail_diag_irq:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
@@ -1720,7 +1720,7 @@
 
 	ahw->reset.seq_error = 0;
 	ahw->reset.buff = kzalloc(QLC_83XX_RESTART_TEMPLATE_SIZE, GFP_KERNEL);
-	if (p_dev->ahw->reset.buff == NULL)
+	if (ahw->reset.buff == NULL)
 		return -ENOMEM;
 
 	p_buff = p_dev->ahw->reset.buff;
@@ -2043,6 +2043,7 @@
 			break;
 		}
 		entry += p_hdr->size;
+		cond_resched();
 	}
 	p_dev->ahw->reset.seq_index = index;
 }
@@ -2250,7 +2251,8 @@
 
 	/* Boot either flash image or firmware image from host file system */
 	if (qlcnic_load_fw_file == 1) {
-		if (qlcnic_83xx_load_fw_image_from_host(adapter))
+		err = qlcnic_83xx_load_fw_image_from_host(adapter);
+		if (err)
 			return err;
 	} else {
 		QLC_SHARED_REG_WR32(adapter, QLCNIC_FW_IMG_VALID,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -2509,6 +2509,7 @@
 		qlcnic_sriov_vf_register_map(ahw);
 		break;
 	default:
+		err = -EINVAL;
 		goto err_out_free_hw_res;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
@@ -703,6 +703,7 @@
 		addr += 16;
 		reg_read -= 16;
 		ret += 16;
+		cond_resched();
 	}
 out:
 	mutex_unlock(&adapter->ahw->mem_lock);
@@ -1383,6 +1384,7 @@
 		buf_offset += entry->hdr.cap_size;
 		entry_offset += entry->hdr.offset;
 		buffer = fw_dump->data + buf_offset;
+		cond_resched();
 	}
 
 	fw_dump->clr = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qualcomm/emac/emac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qualcomm/emac/emac.c
@@ -485,13 +485,24 @@
 
 	ret = clk_prepare_enable(adpt->clk[EMAC_CLK_CFG_AHB]);
 	if (ret)
-		return ret;
+		goto disable_clk_axi;
 
 	ret = clk_set_rate(adpt->clk[EMAC_CLK_HIGH_SPEED], 19200000);
 	if (ret)
-		return ret;
+		goto disable_clk_cfg_ahb;
 
-	return clk_prepare_enable(adpt->clk[EMAC_CLK_HIGH_SPEED]);
+	ret = clk_prepare_enable(adpt->clk[EMAC_CLK_HIGH_SPEED]);
+	if (ret)
+		goto disable_clk_cfg_ahb;
+
+	return 0;
+
+disable_clk_cfg_ahb:
+	clk_disable_unprepare(adpt->clk[EMAC_CLK_CFG_AHB]);
+disable_clk_axi:
+	clk_disable_unprepare(adpt->clk[EMAC_CLK_AXI]);
+
+	return ret;
 }
 
 /* Enable clocks; needs emac_clks_phase1_init to be called before */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
@@ -13,25 +13,6 @@
 #include "rmnet_vnd.h"
 #include "rmnet_private.h"
 
-/* Locking scheme -
- * The shared resource which needs to be protected is realdev->rx_handler_data.
- * For the writer path, this is using rtnl_lock(). The writer paths are
- * rmnet_newlink(), rmnet_dellink() and rmnet_force_unassociate_device(). These
- * paths are already called with rtnl_lock() acquired in. There is also an
- * ASSERT_RTNL() to ensure that we are calling with rtnl acquired. For
- * dereference here, we will need to use rtnl_dereference(). Dev list writing
- * needs to happen with rtnl_lock() acquired for netdev_master_upper_dev_link().
- * For the reader path, the real_dev->rx_handler_data is called in the TX / RX
- * path. We only need rcu_read_lock() for these scenarios. In these cases,
- * the rcu_read_lock() is held in __dev_queue_xmit() and
- * netif_receive_skb_internal(), so readers need to use rcu_dereference_rtnl()
- * to get the relevant information. For dev list reading, we again acquire
- * rcu_read_lock() in rmnet_dellink() for netdev_master_upper_dev_get_rcu().
- * We also use unregister_netdevice_many() to free all rmnet devices in
- * rmnet_force_unassociate_device() so we dont lose the rtnl_lock() and free in
- * same context.
- */
-
 /* Local Definitions and Declarations */
 
 static const struct nla_policy rmnet_policy[IFLA_RMNET_MAX + 1] = {
@@ -51,9 +32,10 @@
 	return rtnl_dereference(real_dev->rx_handler_data);
 }
 
-static int rmnet_unregister_real_device(struct net_device *real_dev,
-					struct rmnet_port *port)
+static int rmnet_unregister_real_device(struct net_device *real_dev)
 {
+	struct rmnet_port *port = rmnet_get_port_rtnl(real_dev);
+
 	if (port->nr_rmnet_devs)
 		return -EINVAL;
 
@@ -61,22 +43,27 @@
 
 	kfree(port);
 
-	/* release reference on real_dev */
-	dev_put(real_dev);
-
 	netdev_dbg(real_dev, "Removed from rmnet\n");
 	return 0;
 }
 
-static int rmnet_register_real_device(struct net_device *real_dev)
+static int rmnet_register_real_device(struct net_device *real_dev,
+				      struct netlink_ext_ack *extack)
 {
 	struct rmnet_port *port;
 	int rc, entry;
 
 	ASSERT_RTNL();
 
-	if (rmnet_is_real_dev_registered(real_dev))
+	if (rmnet_is_real_dev_registered(real_dev)) {
+		port = rmnet_get_port_rtnl(real_dev);
+		if (port->rmnet_mode != RMNET_EPMODE_VND) {
+			NL_SET_ERR_MSG_MOD(extack, "bridge device already exists");
+			return -EINVAL;
+		}
+
 		return 0;
+	}
 
 	port = kzalloc(sizeof(*port), GFP_ATOMIC);
 	if (!port)
@@ -89,9 +76,6 @@
 		return -EBUSY;
 	}
 
-	/* hold on to real dev for MAP data */
-	dev_hold(real_dev);
-
 	for (entry = 0; entry < RMNET_MAX_LOGICAL_EP; entry++)
 		INIT_HLIST_HEAD(&port->muxed_ep[entry]);
 
@@ -99,28 +83,33 @@
 	return 0;
 }
 
-static void rmnet_unregister_bridge(struct net_device *dev,
-				    struct rmnet_port *port)
+static void rmnet_unregister_bridge(struct rmnet_port *port)
 {
-	struct rmnet_port *bridge_port;
-	struct net_device *bridge_dev;
+	struct net_device *bridge_dev, *real_dev, *rmnet_dev;
+	struct rmnet_port *real_port;
 
 	if (port->rmnet_mode != RMNET_EPMODE_BRIDGE)
 		return;
 
-	/* bridge slave handling */
+	rmnet_dev = port->rmnet_dev;
 	if (!port->nr_rmnet_devs) {
-		bridge_dev = port->bridge_ep;
-
-		bridge_port = rmnet_get_port_rtnl(bridge_dev);
-		bridge_port->bridge_ep = NULL;
-		bridge_port->rmnet_mode = RMNET_EPMODE_VND;
+		/* bridge device */
+		real_dev = port->bridge_ep;
+		bridge_dev = port->dev;
+
+		real_port = rmnet_get_port_rtnl(real_dev);
+		real_port->bridge_ep = NULL;
+		real_port->rmnet_mode = RMNET_EPMODE_VND;
 	} else {
+		/* real device */
 		bridge_dev = port->bridge_ep;
 
-		bridge_port = rmnet_get_port_rtnl(bridge_dev);
-		rmnet_unregister_real_device(bridge_dev, bridge_port);
+		port->bridge_ep = NULL;
+		port->rmnet_mode = RMNET_EPMODE_VND;
 	}
+
+	netdev_upper_dev_unlink(bridge_dev, rmnet_dev);
+	rmnet_unregister_real_device(bridge_dev);
 }
 
 static int rmnet_newlink(struct net *src_net, struct net_device *dev,
@@ -135,6 +124,11 @@
 	int err = 0;
 	u16 mux_id;
 
+	if (!tb[IFLA_LINK]) {
+		NL_SET_ERR_MSG_MOD(extack, "link not specified");
+		return -EINVAL;
+	}
+
 	real_dev = __dev_get_by_index(src_net, nla_get_u32(tb[IFLA_LINK]));
 	if (!real_dev || !dev)
 		return -ENODEV;
@@ -148,7 +142,7 @@
 
 	mux_id = nla_get_u16(data[IFLA_RMNET_MUX_ID]);
 
-	err = rmnet_register_real_device(real_dev);
+	err = rmnet_register_real_device(real_dev, extack);
 	if (err)
 		goto err0;
 
@@ -157,7 +151,12 @@
 	if (err)
 		goto err1;
 
+	err = netdev_upper_dev_link(real_dev, dev, extack);
+	if (err < 0)
+		goto err2;
+
 	port->rmnet_mode = mode;
+	port->rmnet_dev = dev;
 
 	hlist_add_head_rcu(&ep->hlnode, &port->muxed_ep[mux_id]);
 
@@ -173,8 +172,11 @@
 
 	return 0;
 
+err2:
+	unregister_netdevice(dev);
+	rmnet_vnd_dellink(mux_id, port, ep);
 err1:
-	rmnet_unregister_real_device(real_dev, port);
+	rmnet_unregister_real_device(real_dev);
 err0:
 	kfree(ep);
 	return err;
@@ -183,77 +185,74 @@
 static void rmnet_dellink(struct net_device *dev, struct list_head *head)
 {
 	struct rmnet_priv *priv = netdev_priv(dev);
-	struct net_device *real_dev;
+	struct net_device *real_dev, *bridge_dev;
+	struct rmnet_port *real_port, *bridge_port;
 	struct rmnet_endpoint *ep;
-	struct rmnet_port *port;
-	u8 mux_id;
+	u8 mux_id = priv->mux_id;
 
 	real_dev = priv->real_dev;
 
-	if (!real_dev || !rmnet_is_real_dev_registered(real_dev))
+	if (!rmnet_is_real_dev_registered(real_dev))
 		return;
 
-	port = rmnet_get_port_rtnl(real_dev);
-
-	mux_id = rmnet_vnd_get_mux(dev);
+	real_port = rmnet_get_port_rtnl(real_dev);
+	bridge_dev = real_port->bridge_ep;
+	if (bridge_dev) {
+		bridge_port = rmnet_get_port_rtnl(bridge_dev);
+		rmnet_unregister_bridge(bridge_port);
+	}
 
-	ep = rmnet_get_endpoint(port, mux_id);
+	ep = rmnet_get_endpoint(real_port, mux_id);
 	if (ep) {
 		hlist_del_init_rcu(&ep->hlnode);
-		rmnet_unregister_bridge(dev, port);
-		rmnet_vnd_dellink(mux_id, port, ep);
+		rmnet_vnd_dellink(mux_id, real_port, ep);
 		kfree(ep);
 	}
-	rmnet_unregister_real_device(real_dev, port);
 
+	netdev_upper_dev_unlink(real_dev, dev);
+	rmnet_unregister_real_device(real_dev);
 	unregister_netdevice_queue(dev, head);
 }
 
-static void rmnet_force_unassociate_device(struct net_device *dev)
+static void rmnet_force_unassociate_device(struct net_device *real_dev)
 {
-	struct net_device *real_dev = dev;
 	struct hlist_node *tmp_ep;
 	struct rmnet_endpoint *ep;
 	struct rmnet_port *port;
 	unsigned long bkt_ep;
 	LIST_HEAD(list);
 
-	if (!rmnet_is_real_dev_registered(real_dev))
-		return;
-
-	ASSERT_RTNL();
-
-	port = rmnet_get_port_rtnl(dev);
-
-	rcu_read_lock();
-	rmnet_unregister_bridge(dev, port);
-
-	hash_for_each_safe(port->muxed_ep, bkt_ep, tmp_ep, ep, hlnode) {
-		unregister_netdevice_queue(ep->egress_dev, &list);
-		rmnet_vnd_dellink(ep->mux_id, port, ep);
+	port = rmnet_get_port_rtnl(real_dev);
 
-		hlist_del_init_rcu(&ep->hlnode);
-		kfree(ep);
+	if (port->nr_rmnet_devs) {
+		/* real device */
+		rmnet_unregister_bridge(port);
+		hash_for_each_safe(port->muxed_ep, bkt_ep, tmp_ep, ep, hlnode) {
+			unregister_netdevice_queue(ep->egress_dev, &list);
+			netdev_upper_dev_unlink(real_dev, ep->egress_dev);
+			rmnet_vnd_dellink(ep->mux_id, port, ep);
+			hlist_del_init_rcu(&ep->hlnode);
+			kfree(ep);
+		}
+		rmnet_unregister_real_device(real_dev);
+		unregister_netdevice_many(&list);
+	} else {
+		rmnet_unregister_bridge(port);
 	}
-
-	rcu_read_unlock();
-	unregister_netdevice_many(&list);
-
-	rmnet_unregister_real_device(real_dev, port);
 }
 
 static int rmnet_config_notify_cb(struct notifier_block *nb,
 				  unsigned long event, void *data)
 {
-	struct net_device *dev = netdev_notifier_info_to_dev(data);
+	struct net_device *real_dev = netdev_notifier_info_to_dev(data);
 
-	if (!dev)
+	if (!rmnet_is_real_dev_registered(real_dev))
 		return NOTIFY_DONE;
 
 	switch (event) {
 	case NETDEV_UNREGISTER:
-		netdev_dbg(dev, "Kernel unregister\n");
-		rmnet_force_unassociate_device(dev);
+		netdev_dbg(real_dev, "Kernel unregister\n");
+		rmnet_force_unassociate_device(real_dev);
 		break;
 
 	default:
@@ -288,32 +287,41 @@
 {
 	struct rmnet_priv *priv = netdev_priv(dev);
 	struct net_device *real_dev;
-	struct rmnet_endpoint *ep;
 	struct rmnet_port *port;
 	u16 mux_id;
 
 	if (!dev)
 		return -ENODEV;
 
-	real_dev = __dev_get_by_index(dev_net(dev),
-				      nla_get_u32(tb[IFLA_LINK]));
-
-	if (!real_dev || !rmnet_is_real_dev_registered(real_dev))
+	real_dev = priv->real_dev;
+	if (!rmnet_is_real_dev_registered(real_dev))
 		return -ENODEV;
 
 	port = rmnet_get_port_rtnl(real_dev);
 
 	if (data[IFLA_RMNET_MUX_ID]) {
 		mux_id = nla_get_u16(data[IFLA_RMNET_MUX_ID]);
-		ep = rmnet_get_endpoint(port, priv->mux_id);
-		if (!ep)
-			return -ENODEV;
 
-		hlist_del_init_rcu(&ep->hlnode);
-		hlist_add_head_rcu(&ep->hlnode, &port->muxed_ep[mux_id]);
+		if (mux_id != priv->mux_id) {
+			struct rmnet_endpoint *ep;
 
-		ep->mux_id = mux_id;
-		priv->mux_id = mux_id;
+			ep = rmnet_get_endpoint(port, priv->mux_id);
+			if (!ep)
+				return -ENODEV;
+
+			if (rmnet_get_endpoint(port, mux_id)) {
+				NL_SET_ERR_MSG_MOD(extack,
+						   "MUX ID already exists");
+				return -EINVAL;
+			}
+
+			hlist_del_init_rcu(&ep->hlnode);
+			hlist_add_head_rcu(&ep->hlnode,
+					   &port->muxed_ep[mux_id]);
+
+			ep->mux_id = mux_id;
+			priv->mux_id = mux_id;
+		}
 	}
 
 	if (data[IFLA_RMNET_FLAGS]) {
@@ -379,11 +387,10 @@
 	.fill_info	= rmnet_fill_info,
 };
 
-/* Needs either rcu_read_lock() or rtnl lock */
-struct rmnet_port *rmnet_get_port(struct net_device *real_dev)
+struct rmnet_port *rmnet_get_port_rcu(struct net_device *real_dev)
 {
 	if (rmnet_is_real_dev_registered(real_dev))
-		return rcu_dereference_rtnl(real_dev->rx_handler_data);
+		return rcu_dereference_bh(real_dev->rx_handler_data);
 	else
 		return NULL;
 }
@@ -409,7 +416,7 @@
 	struct rmnet_port *port, *slave_port;
 	int err;
 
-	port = rmnet_get_port(real_dev);
+	port = rmnet_get_port_rtnl(real_dev);
 
 	/* If there is more than one rmnet dev attached, its probably being
 	 * used for muxing. Skip the briding in that case
@@ -420,13 +427,21 @@
 	if (rmnet_is_real_dev_registered(slave_dev))
 		return -EBUSY;
 
-	err = rmnet_register_real_device(slave_dev);
+	err = rmnet_register_real_device(slave_dev, extack);
 	if (err)
 		return -EBUSY;
 
-	slave_port = rmnet_get_port(slave_dev);
+	err = netdev_master_upper_dev_link(slave_dev, rmnet_dev, NULL, NULL,
+					   extack);
+	if (err) {
+		rmnet_unregister_real_device(slave_dev);
+		return err;
+	}
+
+	slave_port = rmnet_get_port_rtnl(slave_dev);
 	slave_port->rmnet_mode = RMNET_EPMODE_BRIDGE;
 	slave_port->bridge_ep = real_dev;
+	slave_port->rmnet_dev = rmnet_dev;
 
 	port->rmnet_mode = RMNET_EPMODE_BRIDGE;
 	port->bridge_ep = slave_dev;
@@ -438,16 +453,9 @@
 int rmnet_del_bridge(struct net_device *rmnet_dev,
 		     struct net_device *slave_dev)
 {
-	struct rmnet_priv *priv = netdev_priv(rmnet_dev);
-	struct net_device *real_dev = priv->real_dev;
-	struct rmnet_port *port, *slave_port;
+	struct rmnet_port *port = rmnet_get_port_rtnl(slave_dev);
 
-	port = rmnet_get_port(real_dev);
-	port->rmnet_mode = RMNET_EPMODE_VND;
-	port->bridge_ep = NULL;
-
-	slave_port = rmnet_get_port(slave_dev);
-	rmnet_unregister_real_device(slave_dev, slave_port);
+	rmnet_unregister_bridge(port);
 
 	netdev_dbg(slave_dev, "removed from rmnet as slave\n");
 	return 0;
@@ -473,8 +481,8 @@
 
 static void __exit rmnet_exit(void)
 {
-	unregister_netdevice_notifier(&rmnet_dev_notifier);
 	rtnl_link_unregister(&rmnet_link_ops);
+	unregister_netdevice_notifier(&rmnet_dev_notifier);
 }
 
 module_init(rmnet_init)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h
@@ -28,6 +28,7 @@
 	u8 rmnet_mode;
 	struct hlist_head muxed_ep[RMNET_MAX_LOGICAL_EP];
 	struct net_device *bridge_ep;
+	struct net_device *rmnet_dev;
 };
 
 extern struct rtnl_link_ops rmnet_link_ops;
@@ -65,7 +66,7 @@
 	struct rmnet_priv_stats stats;
 };
 
-struct rmnet_port *rmnet_get_port(struct net_device *real_dev);
+struct rmnet_port *rmnet_get_port_rcu(struct net_device *real_dev);
 struct rmnet_endpoint *rmnet_get_endpoint(struct rmnet_port *port, u8 mux_id);
 int rmnet_add_bridge(struct net_device *rmnet_dev,
 		     struct net_device *slave_dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c
@@ -159,6 +159,9 @@
 static void
 rmnet_bridge_handler(struct sk_buff *skb, struct net_device *bridge_dev)
 {
+	if (skb_mac_header_was_set(skb))
+		skb_push(skb, skb->mac_len);
+
 	if (bridge_dev) {
 		skb->dev = bridge_dev;
 		dev_queue_xmit(skb);
@@ -184,7 +187,12 @@
 		return RX_HANDLER_PASS;
 
 	dev = skb->dev;
-	port = rmnet_get_port(dev);
+	port = rmnet_get_port_rcu(dev);
+	if (unlikely(!port)) {
+		atomic_long_inc(&skb->dev->rx_nohandler);
+		kfree_skb(skb);
+		goto done;
+	}
 
 	switch (port->rmnet_mode) {
 	case RMNET_EPMODE_VND:
@@ -217,7 +225,7 @@
 	skb->dev = priv->real_dev;
 	mux_id = priv->mux_id;
 
-	port = rmnet_get_port(skb->dev);
+	port = rmnet_get_port_rcu(skb->dev);
 	if (!port)
 		goto drop;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c
@@ -266,14 +266,6 @@
 	return 0;
 }
 
-u8 rmnet_vnd_get_mux(struct net_device *rmnet_dev)
-{
-	struct rmnet_priv *priv;
-
-	priv = netdev_priv(rmnet_dev);
-	return priv->mux_id;
-}
-
 int rmnet_vnd_do_flow_control(struct net_device *rmnet_dev, int enable)
 {
 	netdev_dbg(rmnet_dev, "Setting VND TX queue state to %d\n", enable);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.h
@@ -16,6 +16,5 @@
 		      struct rmnet_endpoint *ep);
 void rmnet_vnd_rx_fixup(struct sk_buff *skb, struct net_device *dev);
 void rmnet_vnd_tx_fixup(struct sk_buff *skb, struct net_device *dev);
-u8 rmnet_vnd_get_mux(struct net_device *rmnet_dev);
 void rmnet_vnd_setup(struct net_device *dev);
 #endif /* _RMNET_VND_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/realtek/r8169_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/realtek/r8169_main.c
@@ -52,6 +52,7 @@
 #define FIRMWARE_8168G_3	"rtl_nic/rtl8168g-3.fw"
 #define FIRMWARE_8168H_1	"rtl_nic/rtl8168h-1.fw"
 #define FIRMWARE_8168H_2	"rtl_nic/rtl8168h-2.fw"
+#define FIRMWARE_8168FP_3	"rtl_nic/rtl8168fp-3.fw"
 #define FIRMWARE_8107E_1	"rtl_nic/rtl8107e-1.fw"
 #define FIRMWARE_8107E_2	"rtl_nic/rtl8107e-2.fw"
 #define FIRMWARE_8125A_3	"rtl_nic/rtl8125a-3.fw"
@@ -135,6 +136,7 @@
 	RTL_GIGA_MAC_VER_49,
 	RTL_GIGA_MAC_VER_50,
 	RTL_GIGA_MAC_VER_51,
+	RTL_GIGA_MAC_VER_52,
 	RTL_GIGA_MAC_VER_60,
 	RTL_GIGA_MAC_VER_61,
 	RTL_GIGA_MAC_NONE
@@ -202,6 +204,7 @@
 	[RTL_GIGA_MAC_VER_49] = {"RTL8168ep/8111ep"			},
 	[RTL_GIGA_MAC_VER_50] = {"RTL8168ep/8111ep"			},
 	[RTL_GIGA_MAC_VER_51] = {"RTL8168ep/8111ep"			},
+	[RTL_GIGA_MAC_VER_52] = {"RTL8168fp/RTL8117",  FIRMWARE_8168FP_3},
 	[RTL_GIGA_MAC_VER_60] = {"RTL8125"				},
 	[RTL_GIGA_MAC_VER_61] = {"RTL8125",		FIRMWARE_8125A_3},
 };
@@ -680,6 +683,7 @@
 	struct rtl8169_counters *counters;
 	struct rtl8169_tc_offsets tc_offset;
 	u32 saved_wolopts;
+	int eee_adv;
 
 	const char *fw_name;
 	struct rtl_fw *rtl_fw;
@@ -712,6 +716,7 @@
 MODULE_FIRMWARE(FIRMWARE_8168G_3);
 MODULE_FIRMWARE(FIRMWARE_8168H_1);
 MODULE_FIRMWARE(FIRMWARE_8168H_2);
+MODULE_FIRMWARE(FIRMWARE_8168FP_3);
 MODULE_FIRMWARE(FIRMWARE_8107E_1);
 MODULE_FIRMWARE(FIRMWARE_8107E_2);
 MODULE_FIRMWARE(FIRMWARE_8125A_3);
@@ -756,7 +761,7 @@
 {
 	return tp->mac_version >= RTL_GIGA_MAC_VER_34 &&
 	       tp->mac_version != RTL_GIGA_MAC_VER_39 &&
-	       tp->mac_version <= RTL_GIGA_MAC_VER_51;
+	       tp->mac_version <= RTL_GIGA_MAC_VER_52;
 }
 
 static bool rtl_supports_eee(struct rtl8169_private *tp)
@@ -1092,6 +1097,17 @@
 	rtl_writephy(tp, reg_addr, (val & ~m) | p);
 }
 
+static void r8168g_phy_param(struct phy_device *phydev, u16 parm,
+			     u16 mask, u16 val)
+{
+	int oldpage = phy_select_page(phydev, 0x0a43);
+
+	__phy_write(phydev, 0x13, parm);
+	__phy_modify(phydev, 0x14, mask, val);
+
+	phy_restore_page(phydev, oldpage, 0);
+}
+
 DECLARE_RTL_COND(rtl_ephyar_cond)
 {
 	return RTL_R32(tp, EPHYAR) & EPHYAR_FLAG;
@@ -1115,6 +1131,13 @@
 		RTL_R32(tp, EPHYAR) & EPHYAR_DATA_MASK : ~0;
 }
 
+static void r8168fp_adjust_ocp_cmd(struct rtl8169_private *tp, u32 *cmd, int type)
+{
+	/* based on RTL8168FP_OOBMAC_BASE in vendor driver */
+	if (tp->mac_version == RTL_GIGA_MAC_VER_52 && type == ERIAR_OOB)
+		*cmd |= 0x7f0 << 18;
+}
+
 DECLARE_RTL_COND(rtl_eriar_cond)
 {
 	return RTL_R32(tp, ERIAR) & ERIAR_FLAG;
@@ -1123,9 +1146,12 @@
 static void _rtl_eri_write(struct rtl8169_private *tp, int addr, u32 mask,
 			   u32 val, int type)
 {
+	u32 cmd = ERIAR_WRITE_CMD | type | mask | addr;
+
 	BUG_ON((addr & 3) || (mask == 0));
 	RTL_W32(tp, ERIDR, val);
-	RTL_W32(tp, ERIAR, ERIAR_WRITE_CMD | type | mask | addr);
+	r8168fp_adjust_ocp_cmd(tp, &cmd, type);
+	RTL_W32(tp, ERIAR, cmd);
 
 	rtl_udelay_loop_wait_low(tp, &rtl_eriar_cond, 100, 100);
 }
@@ -1138,7 +1164,10 @@
 
 static u32 _rtl_eri_read(struct rtl8169_private *tp, int addr, int type)
 {
-	RTL_W32(tp, ERIAR, ERIAR_READ_CMD | type | ERIAR_MASK_1111 | addr);
+	u32 cmd = ERIAR_READ_CMD | type | ERIAR_MASK_1111 | addr;
+
+	r8168fp_adjust_ocp_cmd(tp, &cmd, type);
+	RTL_W32(tp, ERIAR, cmd);
 
 	return rtl_udelay_loop_wait_high(tp, &rtl_eriar_cond, 100, 100) ?
 		RTL_R32(tp, ERIDR) : ~0;
@@ -1262,9 +1291,7 @@
 	case RTL_GIGA_MAC_VER_31:
 		rtl8168dp_driver_start(tp);
 		break;
-	case RTL_GIGA_MAC_VER_49:
-	case RTL_GIGA_MAC_VER_50:
-	case RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_49 ... RTL_GIGA_MAC_VER_52:
 		rtl8168ep_driver_start(tp);
 		break;
 	default:
@@ -1296,9 +1323,7 @@
 	case RTL_GIGA_MAC_VER_31:
 		rtl8168dp_driver_stop(tp);
 		break;
-	case RTL_GIGA_MAC_VER_49:
-	case RTL_GIGA_MAC_VER_50:
-	case RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_49 ... RTL_GIGA_MAC_VER_52:
 		rtl8168ep_driver_stop(tp);
 		break;
 	default:
@@ -1326,9 +1351,7 @@
 	case RTL_GIGA_MAC_VER_28:
 	case RTL_GIGA_MAC_VER_31:
 		return r8168dp_check_dash(tp);
-	case RTL_GIGA_MAC_VER_49:
-	case RTL_GIGA_MAC_VER_50:
-	case RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_49 ... RTL_GIGA_MAC_VER_52:
 		return r8168ep_check_dash(tp);
 	default:
 		return false;
@@ -1503,7 +1526,7 @@
 		break;
 	case RTL_GIGA_MAC_VER_34:
 	case RTL_GIGA_MAC_VER_37:
-	case RTL_GIGA_MAC_VER_39 ... RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_39 ... RTL_GIGA_MAC_VER_52:
 		options = RTL_R8(tp, Config2) & ~PME_SIGNAL;
 		if (wolopts)
 			options |= PME_SIGNAL;
@@ -1516,6 +1539,7 @@
 	rtl_lock_config_regs(tp);
 
 	device_set_wakeup_enable(tp_to_dev(tp), wolopts);
+	tp->dev->wol_enabled = wolopts ? 1 : 0;
 }
 
 static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
@@ -2074,6 +2098,10 @@
 	}
 
 	ret = phy_ethtool_set_eee(tp->phydev, data);
+
+	if (!ret)
+		tp->eee_adv = phy_read_mmd(dev->phydev, MDIO_MMD_AN,
+					   MDIO_AN_EEE_ADV);
 out:
 	pm_runtime_put_noidle(d);
 	return ret;
@@ -2104,10 +2132,16 @@
 static void rtl_enable_eee(struct rtl8169_private *tp)
 {
 	struct phy_device *phydev = tp->phydev;
-	int supported = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE);
+	int adv;
+
+	/* respect EEE advertisement the user may have set */
+	if (tp->eee_adv >= 0)
+		adv = tp->eee_adv;
+	else
+		adv = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE);
 
-	if (supported > 0)
-		phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, supported);
+	if (adv >= 0)
+		phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, adv);
 }
 
 static void rtl8169_get_mac_version(struct rtl8169_private *tp)
@@ -2132,6 +2166,9 @@
 		{ 0x7cf, 0x608,	RTL_GIGA_MAC_VER_60 },
 		{ 0x7c8, 0x608,	RTL_GIGA_MAC_VER_61 },
 
+		/* RTL8117 */
+		{ 0x7cf, 0x54a,	RTL_GIGA_MAC_VER_52 },
+
 		/* 8168EP family. */
 		{ 0x7cf, 0x502,	RTL_GIGA_MAC_VER_51 },
 		{ 0x7cf, 0x501,	RTL_GIGA_MAC_VER_50 },
@@ -2190,6 +2227,8 @@
 		{ 0x7cf, 0x348,	RTL_GIGA_MAC_VER_07 },
 		{ 0x7cf, 0x248,	RTL_GIGA_MAC_VER_07 },
 		{ 0x7cf, 0x340,	RTL_GIGA_MAC_VER_13 },
+		/* RTL8401, reportedly works if treated as RTL8101e */
+		{ 0x7cf, 0x240,	RTL_GIGA_MAC_VER_13 },
 		{ 0x7cf, 0x343,	RTL_GIGA_MAC_VER_10 },
 		{ 0x7cf, 0x342,	RTL_GIGA_MAC_VER_16 },
 		{ 0x7c8, 0x348,	RTL_GIGA_MAC_VER_09 },
@@ -2256,8 +2295,11 @@
 static void rtl_apply_firmware(struct rtl8169_private *tp)
 {
 	/* TODO: release firmware if rtl_fw_write_firmware signals failure. */
-	if (tp->rtl_fw)
+	if (tp->rtl_fw) {
 		rtl_fw_write_firmware(tp, tp->rtl_fw);
+		/* At least one firmware doesn't reset tp->ocp_base. */
+		tp->ocp_base = OCP_STD_PHY_BASE;
+	}
 }
 
 static void rtl_apply_firmware_cond(struct rtl8169_private *tp, u8 reg, u16 val)
@@ -3228,12 +3270,8 @@
 
 	phy_modify_paged(phydev, 0x0bcc, 0x14, BIT(8), 0);
 	phy_modify_paged(phydev, 0x0a44, 0x11, 0, BIT(7) | BIT(6));
-	phy_write(phydev, 0x1f, 0x0a43);
-	phy_write(phydev, 0x13, 0x8084);
-	phy_clear_bits(phydev, 0x14, BIT(14) | BIT(13));
-	phy_set_bits(phydev, 0x10, BIT(12) | BIT(1) | BIT(0));
-
-	phy_write(phydev, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x8084, 0x6000, 0x0000);
+	phy_modify_paged(phydev, 0x0a43, 0x10, 0x0000, 0x1003);
 }
 
 static void rtl8168g_1_hw_phy_config(struct rtl8169_private *tp)
@@ -3263,9 +3301,7 @@
 	phy_modify_paged(tp->phydev, 0x0a4b, 0x11, 0, BIT(2));
 
 	/* Enable UC LPF tune function */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x8012);
-	rtl_w0w1_phy(tp, 0x14, 0x8000, 0x0000);
+	r8168g_phy_param(tp->phydev, 0x8012, 0x0000, 0x8000);
 
 	phy_modify_paged(tp->phydev, 0x0c42, 0x11, BIT(13), BIT(14));
 
@@ -3295,73 +3331,48 @@
 
 static void rtl8168h_1_hw_phy_config(struct rtl8169_private *tp)
 {
+	struct phy_device *phydev = tp->phydev;
 	u16 dout_tapbin;
 	u32 data;
 
 	rtl_apply_firmware(tp);
 
 	/* CHN EST parameters adjust - giga master */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x809b);
-	rtl_w0w1_phy(tp, 0x14, 0x8000, 0xf800);
-	rtl_writephy(tp, 0x13, 0x80a2);
-	rtl_w0w1_phy(tp, 0x14, 0x8000, 0xff00);
-	rtl_writephy(tp, 0x13, 0x80a4);
-	rtl_w0w1_phy(tp, 0x14, 0x8500, 0xff00);
-	rtl_writephy(tp, 0x13, 0x809c);
-	rtl_w0w1_phy(tp, 0x14, 0xbd00, 0xff00);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x809b, 0xf800, 0x8000);
+	r8168g_phy_param(phydev, 0x80a2, 0xff00, 0x8000);
+	r8168g_phy_param(phydev, 0x80a4, 0xff00, 0x8500);
+	r8168g_phy_param(phydev, 0x809c, 0xff00, 0xbd00);
 
 	/* CHN EST parameters adjust - giga slave */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x80ad);
-	rtl_w0w1_phy(tp, 0x14, 0x7000, 0xf800);
-	rtl_writephy(tp, 0x13, 0x80b4);
-	rtl_w0w1_phy(tp, 0x14, 0x5000, 0xff00);
-	rtl_writephy(tp, 0x13, 0x80ac);
-	rtl_w0w1_phy(tp, 0x14, 0x4000, 0xff00);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x80ad, 0xf800, 0x7000);
+	r8168g_phy_param(phydev, 0x80b4, 0xff00, 0x5000);
+	r8168g_phy_param(phydev, 0x80ac, 0xff00, 0x4000);
 
 	/* CHN EST parameters adjust - fnet */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x808e);
-	rtl_w0w1_phy(tp, 0x14, 0x1200, 0xff00);
-	rtl_writephy(tp, 0x13, 0x8090);
-	rtl_w0w1_phy(tp, 0x14, 0xe500, 0xff00);
-	rtl_writephy(tp, 0x13, 0x8092);
-	rtl_w0w1_phy(tp, 0x14, 0x9f00, 0xff00);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x808e, 0xff00, 0x1200);
+	r8168g_phy_param(phydev, 0x8090, 0xff00, 0xe500);
+	r8168g_phy_param(phydev, 0x8092, 0xff00, 0x9f00);
 
 	/* enable R-tune & PGA-retune function */
 	dout_tapbin = 0;
-	rtl_writephy(tp, 0x1f, 0x0a46);
-	data = rtl_readphy(tp, 0x13);
+	data = phy_read_paged(phydev, 0x0a46, 0x13);
 	data &= 3;
 	data <<= 2;
 	dout_tapbin |= data;
-	data = rtl_readphy(tp, 0x12);
+	data = phy_read_paged(phydev, 0x0a46, 0x12);
 	data &= 0xc000;
 	data >>= 14;
 	dout_tapbin |= data;
 	dout_tapbin = ~(dout_tapbin^0x08);
 	dout_tapbin <<= 12;
 	dout_tapbin &= 0xf000;
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x827a);
-	rtl_w0w1_phy(tp, 0x14, dout_tapbin, 0xf000);
-	rtl_writephy(tp, 0x13, 0x827b);
-	rtl_w0w1_phy(tp, 0x14, dout_tapbin, 0xf000);
-	rtl_writephy(tp, 0x13, 0x827c);
-	rtl_w0w1_phy(tp, 0x14, dout_tapbin, 0xf000);
-	rtl_writephy(tp, 0x13, 0x827d);
-	rtl_w0w1_phy(tp, 0x14, dout_tapbin, 0xf000);
-
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x0811);
-	rtl_w0w1_phy(tp, 0x14, 0x0800, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0a42);
-	rtl_w0w1_phy(tp, 0x16, 0x0002, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+
+	r8168g_phy_param(phydev, 0x827a, 0xf000, dout_tapbin);
+	r8168g_phy_param(phydev, 0x827b, 0xf000, dout_tapbin);
+	r8168g_phy_param(phydev, 0x827c, 0xf000, dout_tapbin);
+	r8168g_phy_param(phydev, 0x827d, 0xf000, dout_tapbin);
+	r8168g_phy_param(phydev, 0x0811, 0x0000, 0x0800);
+	phy_modify_paged(phydev, 0x0a42, 0x16, 0x0000, 0x0002);
 
 	/* enable GPHY 10M */
 	phy_modify_paged(tp->phydev, 0x0a44, 0x11, 0, BIT(11));
@@ -3369,22 +3380,13 @@
 	/* SAR ADC performance */
 	phy_modify_paged(tp->phydev, 0x0bca, 0x17, BIT(12) | BIT(13), BIT(14));
 
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x803f);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x13, 0x8047);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x13, 0x804f);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x13, 0x8057);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x13, 0x805f);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x13, 0x8067);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x13, 0x806f);
-	rtl_w0w1_phy(tp, 0x14, 0x0000, 0x3000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x803f, 0x3000, 0x0000);
+	r8168g_phy_param(phydev, 0x8047, 0x3000, 0x0000);
+	r8168g_phy_param(phydev, 0x804f, 0x3000, 0x0000);
+	r8168g_phy_param(phydev, 0x8057, 0x3000, 0x0000);
+	r8168g_phy_param(phydev, 0x805f, 0x3000, 0x0000);
+	r8168g_phy_param(phydev, 0x8067, 0x3000, 0x0000);
+	r8168g_phy_param(phydev, 0x806f, 0x3000, 0x0000);
 
 	/* disable phy pfm mode */
 	phy_modify_paged(tp->phydev, 0x0a44, 0x11, BIT(7), 0);
@@ -3397,24 +3399,18 @@
 static void rtl8168h_2_hw_phy_config(struct rtl8169_private *tp)
 {
 	u16 ioffset_p3, ioffset_p2, ioffset_p1, ioffset_p0;
+	struct phy_device *phydev = tp->phydev;
 	u16 rlen;
 	u32 data;
 
 	rtl_apply_firmware(tp);
 
 	/* CHIN EST parameter update */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x808a);
-	rtl_w0w1_phy(tp, 0x14, 0x000a, 0x003f);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x808a, 0x003f, 0x000a);
 
 	/* enable R-tune & PGA-retune function */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x0811);
-	rtl_w0w1_phy(tp, 0x14, 0x0800, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0a42);
-	rtl_w0w1_phy(tp, 0x16, 0x0002, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x0811, 0x0000, 0x0800);
+	phy_modify_paged(phydev, 0x0a42, 0x16, 0x0000, 0x0002);
 
 	/* enable GPHY 10M */
 	phy_modify_paged(tp->phydev, 0x0a44, 0x11, 0, BIT(11));
@@ -3434,26 +3430,20 @@
 	data = (ioffset_p3<<12)|(ioffset_p2<<8)|(ioffset_p1<<4)|(ioffset_p0);
 
 	if ((ioffset_p3 != 0x0f) || (ioffset_p2 != 0x0f) ||
-	    (ioffset_p1 != 0x0f) || (ioffset_p0 != 0x0f)) {
-		rtl_writephy(tp, 0x1f, 0x0bcf);
-		rtl_writephy(tp, 0x16, data);
-		rtl_writephy(tp, 0x1f, 0x0000);
-	}
+	    (ioffset_p1 != 0x0f) || (ioffset_p0 != 0x0f))
+		phy_write_paged(phydev, 0x0bcf, 0x16, data);
 
 	/* Modify rlen (TX LPF corner frequency) level */
-	rtl_writephy(tp, 0x1f, 0x0bcd);
-	data = rtl_readphy(tp, 0x16);
+	data = phy_read_paged(phydev, 0x0bcd, 0x16);
 	data &= 0x000f;
 	rlen = 0;
 	if (data > 3)
 		rlen = data - 3;
 	data = rlen | (rlen<<4) | (rlen<<8) | (rlen<<12);
-	rtl_writephy(tp, 0x17, data);
-	rtl_writephy(tp, 0x1f, 0x0bcd);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	phy_write_paged(phydev, 0x0bcd, 0x17, data);
 
 	/* disable phy pfm mode */
-	phy_modify_paged(tp->phydev, 0x0a44, 0x11, BIT(7), 0);
+	phy_modify_paged(phydev, 0x0a44, 0x11, BIT(7), 0);
 
 	rtl8168g_disable_aldps(tp);
 	rtl8168g_config_eee_phy(tp);
@@ -3462,22 +3452,21 @@
 
 static void rtl8168ep_1_hw_phy_config(struct rtl8169_private *tp)
 {
+	struct phy_device *phydev = tp->phydev;
+
 	/* Enable PHY auto speed down */
-	phy_modify_paged(tp->phydev, 0x0a44, 0x11, 0, BIT(3) | BIT(2));
+	phy_modify_paged(phydev, 0x0a44, 0x11, 0, BIT(3) | BIT(2));
 
 	rtl8168g_phy_adjust_10m_aldps(tp);
 
 	/* Enable EEE auto-fallback function */
-	phy_modify_paged(tp->phydev, 0x0a4b, 0x11, 0, BIT(2));
+	phy_modify_paged(phydev, 0x0a4b, 0x11, 0, BIT(2));
 
 	/* Enable UC LPF tune function */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x8012);
-	rtl_w0w1_phy(tp, 0x14, 0x8000, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x8012, 0x0000, 0x8000);
 
 	/* set rg_sel_sdm_rate */
-	phy_modify_paged(tp->phydev, 0x0c42, 0x11, BIT(13), BIT(14));
+	phy_modify_paged(phydev, 0x0c42, 0x11, BIT(13), BIT(14));
 
 	rtl8168g_disable_aldps(tp);
 	rtl8168g_config_eee_phy(tp);
@@ -3486,63 +3475,38 @@
 
 static void rtl8168ep_2_hw_phy_config(struct rtl8169_private *tp)
 {
+	struct phy_device *phydev = tp->phydev;
+
 	rtl8168g_phy_adjust_10m_aldps(tp);
 
 	/* Enable UC LPF tune function */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x8012);
-	rtl_w0w1_phy(tp, 0x14, 0x8000, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x8012, 0x0000, 0x8000);
 
 	/* Set rg_sel_sdm_rate */
 	phy_modify_paged(tp->phydev, 0x0c42, 0x11, BIT(13), BIT(14));
 
 	/* Channel estimation parameters */
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x80f3);
-	rtl_w0w1_phy(tp, 0x14, 0x8b00, ~0x8bff);
-	rtl_writephy(tp, 0x13, 0x80f0);
-	rtl_w0w1_phy(tp, 0x14, 0x3a00, ~0x3aff);
-	rtl_writephy(tp, 0x13, 0x80ef);
-	rtl_w0w1_phy(tp, 0x14, 0x0500, ~0x05ff);
-	rtl_writephy(tp, 0x13, 0x80f6);
-	rtl_w0w1_phy(tp, 0x14, 0x6e00, ~0x6eff);
-	rtl_writephy(tp, 0x13, 0x80ec);
-	rtl_w0w1_phy(tp, 0x14, 0x6800, ~0x68ff);
-	rtl_writephy(tp, 0x13, 0x80ed);
-	rtl_w0w1_phy(tp, 0x14, 0x7c00, ~0x7cff);
-	rtl_writephy(tp, 0x13, 0x80f2);
-	rtl_w0w1_phy(tp, 0x14, 0xf400, ~0xf4ff);
-	rtl_writephy(tp, 0x13, 0x80f4);
-	rtl_w0w1_phy(tp, 0x14, 0x8500, ~0x85ff);
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x8110);
-	rtl_w0w1_phy(tp, 0x14, 0xa800, ~0xa8ff);
-	rtl_writephy(tp, 0x13, 0x810f);
-	rtl_w0w1_phy(tp, 0x14, 0x1d00, ~0x1dff);
-	rtl_writephy(tp, 0x13, 0x8111);
-	rtl_w0w1_phy(tp, 0x14, 0xf500, ~0xf5ff);
-	rtl_writephy(tp, 0x13, 0x8113);
-	rtl_w0w1_phy(tp, 0x14, 0x6100, ~0x61ff);
-	rtl_writephy(tp, 0x13, 0x8115);
-	rtl_w0w1_phy(tp, 0x14, 0x9200, ~0x92ff);
-	rtl_writephy(tp, 0x13, 0x810e);
-	rtl_w0w1_phy(tp, 0x14, 0x0400, ~0x04ff);
-	rtl_writephy(tp, 0x13, 0x810c);
-	rtl_w0w1_phy(tp, 0x14, 0x7c00, ~0x7cff);
-	rtl_writephy(tp, 0x13, 0x810b);
-	rtl_w0w1_phy(tp, 0x14, 0x5a00, ~0x5aff);
-	rtl_writephy(tp, 0x1f, 0x0a43);
-	rtl_writephy(tp, 0x13, 0x80d1);
-	rtl_w0w1_phy(tp, 0x14, 0xff00, ~0xffff);
-	rtl_writephy(tp, 0x13, 0x80cd);
-	rtl_w0w1_phy(tp, 0x14, 0x9e00, ~0x9eff);
-	rtl_writephy(tp, 0x13, 0x80d3);
-	rtl_w0w1_phy(tp, 0x14, 0x0e00, ~0x0eff);
-	rtl_writephy(tp, 0x13, 0x80d5);
-	rtl_w0w1_phy(tp, 0x14, 0xca00, ~0xcaff);
-	rtl_writephy(tp, 0x13, 0x80d7);
-	rtl_w0w1_phy(tp, 0x14, 0x8400, ~0x84ff);
+	r8168g_phy_param(phydev, 0x80f3, 0xff00, 0x8b00);
+	r8168g_phy_param(phydev, 0x80f0, 0xff00, 0x3a00);
+	r8168g_phy_param(phydev, 0x80ef, 0xff00, 0x0500);
+	r8168g_phy_param(phydev, 0x80f6, 0xff00, 0x6e00);
+	r8168g_phy_param(phydev, 0x80ec, 0xff00, 0x6800);
+	r8168g_phy_param(phydev, 0x80ed, 0xff00, 0x7c00);
+	r8168g_phy_param(phydev, 0x80f2, 0xff00, 0xf400);
+	r8168g_phy_param(phydev, 0x80f4, 0xff00, 0x8500);
+	r8168g_phy_param(phydev, 0x8110, 0xff00, 0xa800);
+	r8168g_phy_param(phydev, 0x810f, 0xff00, 0x1d00);
+	r8168g_phy_param(phydev, 0x8111, 0xff00, 0xf500);
+	r8168g_phy_param(phydev, 0x8113, 0xff00, 0x6100);
+	r8168g_phy_param(phydev, 0x8115, 0xff00, 0x9200);
+	r8168g_phy_param(phydev, 0x810e, 0xff00, 0x0400);
+	r8168g_phy_param(phydev, 0x810c, 0xff00, 0x7c00);
+	r8168g_phy_param(phydev, 0x810b, 0xff00, 0x5a00);
+	r8168g_phy_param(phydev, 0x80d1, 0xff00, 0xff00);
+	r8168g_phy_param(phydev, 0x80cd, 0xff00, 0x9e00);
+	r8168g_phy_param(phydev, 0x80d3, 0xff00, 0x0e00);
+	r8168g_phy_param(phydev, 0x80d5, 0xff00, 0xca00);
+	r8168g_phy_param(phydev, 0x80d7, 0xff00, 0x8400);
 
 	/* Force PWM-mode */
 	rtl_writephy(tp, 0x1f, 0x0bcd);
@@ -3561,6 +3525,46 @@
 	rtl_enable_eee(tp);
 }
 
+static void rtl8117_hw_phy_config(struct rtl8169_private *tp)
+{
+	struct phy_device *phydev = tp->phydev;
+
+	/* CHN EST parameters adjust - fnet */
+	r8168g_phy_param(phydev, 0x808e, 0xff00, 0x4800);
+	r8168g_phy_param(phydev, 0x8090, 0xff00, 0xcc00);
+	r8168g_phy_param(phydev, 0x8092, 0xff00, 0xb000);
+
+	r8168g_phy_param(phydev, 0x8088, 0xff00, 0x6000);
+	r8168g_phy_param(phydev, 0x808b, 0x3f00, 0x0b00);
+	r8168g_phy_param(phydev, 0x808d, 0x1f00, 0x0600);
+	r8168g_phy_param(phydev, 0x808c, 0xff00, 0xb000);
+	r8168g_phy_param(phydev, 0x80a0, 0xff00, 0x2800);
+	r8168g_phy_param(phydev, 0x80a2, 0xff00, 0x5000);
+	r8168g_phy_param(phydev, 0x809b, 0xf800, 0xb000);
+	r8168g_phy_param(phydev, 0x809a, 0xff00, 0x4b00);
+	r8168g_phy_param(phydev, 0x809d, 0x3f00, 0x0800);
+	r8168g_phy_param(phydev, 0x80a1, 0xff00, 0x7000);
+	r8168g_phy_param(phydev, 0x809f, 0x1f00, 0x0300);
+	r8168g_phy_param(phydev, 0x809e, 0xff00, 0x8800);
+	r8168g_phy_param(phydev, 0x80b2, 0xff00, 0x2200);
+	r8168g_phy_param(phydev, 0x80ad, 0xf800, 0x9800);
+	r8168g_phy_param(phydev, 0x80af, 0x3f00, 0x0800);
+	r8168g_phy_param(phydev, 0x80b3, 0xff00, 0x6f00);
+	r8168g_phy_param(phydev, 0x80b1, 0x1f00, 0x0300);
+	r8168g_phy_param(phydev, 0x80b0, 0xff00, 0x9300);
+
+	r8168g_phy_param(phydev, 0x8011, 0x0000, 0x0800);
+
+	/* enable GPHY 10M */
+	phy_modify_paged(tp->phydev, 0x0a44, 0x11, 0, BIT(11));
+
+	r8168g_phy_param(phydev, 0x8016, 0x0000, 0x0400);
+
+	rtl8168g_disable_aldps(tp);
+	rtl8168h_config_eee_phy(tp);
+	rtl_enable_eee(tp);
+}
+
 static void rtl8102e_hw_phy_config(struct rtl8169_private *tp)
 {
 	static const struct phy_reg phy_reg_init[] = {
@@ -3657,38 +3661,22 @@
 	phy_modify_paged(phydev, 0xad1, 0x15, 0x0000, 0x03ff);
 	phy_modify_paged(phydev, 0xad1, 0x16, 0x0000, 0x03ff);
 
-	phy_write(phydev, 0x1f, 0x0a43);
-	phy_write(phydev, 0x13, 0x80ea);
-	phy_modify(phydev, 0x14, 0xff00, 0xc400);
-	phy_write(phydev, 0x13, 0x80eb);
-	phy_modify(phydev, 0x14, 0x0700, 0x0300);
-	phy_write(phydev, 0x13, 0x80f8);
-	phy_modify(phydev, 0x14, 0xff00, 0x1c00);
-	phy_write(phydev, 0x13, 0x80f1);
-	phy_modify(phydev, 0x14, 0xff00, 0x3000);
-	phy_write(phydev, 0x13, 0x80fe);
-	phy_modify(phydev, 0x14, 0xff00, 0xa500);
-	phy_write(phydev, 0x13, 0x8102);
-	phy_modify(phydev, 0x14, 0xff00, 0x5000);
-	phy_write(phydev, 0x13, 0x8105);
-	phy_modify(phydev, 0x14, 0xff00, 0x3300);
-	phy_write(phydev, 0x13, 0x8100);
-	phy_modify(phydev, 0x14, 0xff00, 0x7000);
-	phy_write(phydev, 0x13, 0x8104);
-	phy_modify(phydev, 0x14, 0xff00, 0xf000);
-	phy_write(phydev, 0x13, 0x8106);
-	phy_modify(phydev, 0x14, 0xff00, 0x6500);
-	phy_write(phydev, 0x13, 0x80dc);
-	phy_modify(phydev, 0x14, 0xff00, 0xed00);
-	phy_write(phydev, 0x13, 0x80df);
-	phy_set_bits(phydev, 0x14, BIT(8));
-	phy_write(phydev, 0x13, 0x80e1);
-	phy_clear_bits(phydev, 0x14, BIT(8));
-	phy_write(phydev, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x80ea, 0xff00, 0xc400);
+	r8168g_phy_param(phydev, 0x80eb, 0x0700, 0x0300);
+	r8168g_phy_param(phydev, 0x80f8, 0xff00, 0x1c00);
+	r8168g_phy_param(phydev, 0x80f1, 0xff00, 0x3000);
+	r8168g_phy_param(phydev, 0x80fe, 0xff00, 0xa500);
+	r8168g_phy_param(phydev, 0x8102, 0xff00, 0x5000);
+	r8168g_phy_param(phydev, 0x8105, 0xff00, 0x3300);
+	r8168g_phy_param(phydev, 0x8100, 0xff00, 0x7000);
+	r8168g_phy_param(phydev, 0x8104, 0xff00, 0xf000);
+	r8168g_phy_param(phydev, 0x8106, 0xff00, 0x6500);
+	r8168g_phy_param(phydev, 0x80dc, 0xff00, 0xed00);
+	r8168g_phy_param(phydev, 0x80df, 0x0000, 0x0100);
+	r8168g_phy_param(phydev, 0x80e1, 0x0100, 0x0000);
 
 	phy_modify_paged(phydev, 0xbf0, 0x13, 0x003f, 0x0038);
-	phy_write_paged(phydev, 0xa43, 0x13, 0x819f);
-	phy_write_paged(phydev, 0xa43, 0x14, 0xd0b6);
+	r8168g_phy_param(phydev, 0x819f, 0xffff, 0xd0b6);
 
 	phy_write_paged(phydev, 0xbc3, 0x12, 0x5555);
 	phy_modify_paged(phydev, 0xbf0, 0x15, 0x0e00, 0x0a00);
@@ -3743,22 +3731,16 @@
 	phy_write(phydev, 0x14, 0x0002);
 	for (i = 0; i < 25; i++)
 		phy_write(phydev, 0x14, 0x0000);
-
-	phy_write(phydev, 0x13, 0x8257);
-	phy_write(phydev, 0x14, 0x020F);
-
-	phy_write(phydev, 0x13, 0x80EA);
-	phy_write(phydev, 0x14, 0x7843);
 	phy_write(phydev, 0x1f, 0x0000);
 
+	r8168g_phy_param(phydev, 0x8257, 0xffff, 0x020F);
+	r8168g_phy_param(phydev, 0x80ea, 0xffff, 0x7843);
+
 	rtl_apply_firmware(tp);
 
 	phy_modify_paged(phydev, 0xd06, 0x14, 0x0000, 0x2000);
 
-	phy_write(phydev, 0x1f, 0x0a43);
-	phy_write(phydev, 0x13, 0x81a2);
-	phy_set_bits(phydev, 0x14, BIT(8));
-	phy_write(phydev, 0x1f, 0x0000);
+	r8168g_phy_param(phydev, 0x81a2, 0x0000, 0x0100);
 
 	phy_modify_paged(phydev, 0xb54, 0x16, 0xff00, 0xdb00);
 	phy_modify_paged(phydev, 0xa45, 0x12, 0x0001, 0x0000);
@@ -3826,6 +3808,7 @@
 		[RTL_GIGA_MAC_VER_49] = rtl8168ep_1_hw_phy_config,
 		[RTL_GIGA_MAC_VER_50] = rtl8168ep_2_hw_phy_config,
 		[RTL_GIGA_MAC_VER_51] = rtl8168ep_2_hw_phy_config,
+		[RTL_GIGA_MAC_VER_52] = rtl8117_hw_phy_config,
 		[RTL_GIGA_MAC_VER_60] = rtl8125_1_hw_phy_config,
 		[RTL_GIGA_MAC_VER_61] = rtl8125_2_hw_phy_config,
 	};
@@ -3919,7 +3902,7 @@
 	case RTL_GIGA_MAC_VER_32:
 	case RTL_GIGA_MAC_VER_33:
 	case RTL_GIGA_MAC_VER_34:
-	case RTL_GIGA_MAC_VER_37 ... RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_37 ... RTL_GIGA_MAC_VER_61:
 		RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) |
 			AcceptBroadcast | AcceptMulticast | AcceptMyPhys);
 		break;
@@ -3944,7 +3927,9 @@
 	}
 
 	switch (tp->mac_version) {
-	case RTL_GIGA_MAC_VER_25 ... RTL_GIGA_MAC_VER_33:
+	case RTL_GIGA_MAC_VER_25 ... RTL_GIGA_MAC_VER_26:
+	case RTL_GIGA_MAC_VER_29 ... RTL_GIGA_MAC_VER_30:
+	case RTL_GIGA_MAC_VER_32 ... RTL_GIGA_MAC_VER_33:
 	case RTL_GIGA_MAC_VER_37:
 	case RTL_GIGA_MAC_VER_39:
 	case RTL_GIGA_MAC_VER_43:
@@ -3955,6 +3940,7 @@
 	case RTL_GIGA_MAC_VER_48:
 	case RTL_GIGA_MAC_VER_50:
 	case RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_52:
 	case RTL_GIGA_MAC_VER_60:
 	case RTL_GIGA_MAC_VER_61:
 		RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) & ~0x80);
@@ -3973,7 +3959,9 @@
 static void rtl_pll_power_up(struct rtl8169_private *tp)
 {
 	switch (tp->mac_version) {
-	case RTL_GIGA_MAC_VER_25 ... RTL_GIGA_MAC_VER_33:
+	case RTL_GIGA_MAC_VER_25 ... RTL_GIGA_MAC_VER_26:
+	case RTL_GIGA_MAC_VER_29 ... RTL_GIGA_MAC_VER_30:
+	case RTL_GIGA_MAC_VER_32 ... RTL_GIGA_MAC_VER_33:
 	case RTL_GIGA_MAC_VER_37:
 	case RTL_GIGA_MAC_VER_39:
 	case RTL_GIGA_MAC_VER_43:
@@ -3986,6 +3974,7 @@
 	case RTL_GIGA_MAC_VER_48:
 	case RTL_GIGA_MAC_VER_50:
 	case RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_52:
 	case RTL_GIGA_MAC_VER_60:
 	case RTL_GIGA_MAC_VER_61:
 		RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) | 0xc0);
@@ -4017,7 +4006,7 @@
 	case RTL_GIGA_MAC_VER_38:
 		RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST);
 		break;
-	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_52:
 		RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST | RX_EARLY_OFF);
 		break;
 	case RTL_GIGA_MAC_VER_60 ... RTL_GIGA_MAC_VER_61:
@@ -4061,7 +4050,7 @@
 
 static void r8168e_hw_jumbo_enable(struct rtl8169_private *tp)
 {
-	RTL_W8(tp, MaxTxPacketSize, 0x3f);
+	RTL_W8(tp, MaxTxPacketSize, 0x24);
 	RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0);
 	RTL_W8(tp, Config4, RTL_R8(tp, Config4) | 0x01);
 	rtl_tx_performance_tweak(tp, PCI_EXP_DEVCTL_READRQ_512B);
@@ -4069,7 +4058,7 @@
 
 static void r8168e_hw_jumbo_disable(struct rtl8169_private *tp)
 {
-	RTL_W8(tp, MaxTxPacketSize, 0x0c);
+	RTL_W8(tp, MaxTxPacketSize, 0x3f);
 	RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0);
 	RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~0x01);
 	rtl_tx_performance_tweak(tp, PCI_EXP_DEVCTL_READRQ_4096B);
@@ -4118,7 +4107,7 @@
 	case RTL_GIGA_MAC_VER_27 ... RTL_GIGA_MAC_VER_28:
 		r8168dp_hw_jumbo_enable(tp);
 		break;
-	case RTL_GIGA_MAC_VER_31 ... RTL_GIGA_MAC_VER_34:
+	case RTL_GIGA_MAC_VER_31 ... RTL_GIGA_MAC_VER_33:
 		r8168e_hw_jumbo_enable(tp);
 		break;
 	default:
@@ -4144,7 +4133,7 @@
 	case RTL_GIGA_MAC_VER_27 ... RTL_GIGA_MAC_VER_28:
 		r8168dp_hw_jumbo_disable(tp);
 		break;
-	case RTL_GIGA_MAC_VER_31 ... RTL_GIGA_MAC_VER_34:
+	case RTL_GIGA_MAC_VER_31 ... RTL_GIGA_MAC_VER_33:
 		r8168e_hw_jumbo_disable(tp);
 		break;
 	default:
@@ -4229,7 +4218,7 @@
 		rtl_udelay_loop_wait_low(tp, &rtl_npq_cond, 20, 42*42);
 		break;
 	case RTL_GIGA_MAC_VER_34 ... RTL_GIGA_MAC_VER_38:
-	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_52:
 		RTL_W8(tp, ChipCmd, RTL_R8(tp, ChipCmd) | StopReq);
 		rtl_udelay_loop_wait_high(tp, &rtl_txcfg_empty_cond, 100, 666);
 		break;
@@ -4687,7 +4676,7 @@
 		{ 0x08, 0x0001,	0x0002 },
 		{ 0x09, 0x0000,	0x0080 },
 		{ 0x19, 0x0000,	0x0224 },
-		{ 0x00, 0x0000,	0x0004 },
+		{ 0x00, 0x0000,	0x0008 },
 		{ 0x0c, 0x3df0,	0x0200 },
 	};
 
@@ -4704,7 +4693,7 @@
 		{ 0x06, 0x00c0,	0x0020 },
 		{ 0x0f, 0xffff,	0x5200 },
 		{ 0x19, 0x0000,	0x0224 },
-		{ 0x00, 0x0000,	0x0004 },
+		{ 0x00, 0x0000,	0x0008 },
 		{ 0x0c, 0x3df0,	0x0200 },
 	};
 
@@ -5106,6 +5095,71 @@
 	rtl_hw_aspm_clkreq_enable(tp, true);
 }
 
+static void rtl_hw_start_8117(struct rtl8169_private *tp)
+{
+	static const struct ephy_info e_info_8117[] = {
+		{ 0x19, 0x0040,	0x1100 },
+		{ 0x59, 0x0040,	0x1100 },
+	};
+	int rg_saw_cnt;
+
+	rtl8168ep_stop_cmac(tp);
+
+	/* disable aspm and clock request before access ephy */
+	rtl_hw_aspm_clkreq_enable(tp, false);
+	rtl_ephy_init(tp, e_info_8117);
+
+	rtl_set_fifo_size(tp, 0x08, 0x10, 0x02, 0x06);
+	rtl8168g_set_pause_thresholds(tp, 0x2f, 0x5f);
+
+	rtl_set_def_aspm_entry_latency(tp);
+
+	rtl_reset_packet_filter(tp);
+
+	rtl_eri_set_bits(tp, 0xd4, ERIAR_MASK_1111, 0x1f90);
+
+	rtl_eri_write(tp, 0x5f0, ERIAR_MASK_0011, 0x4f87);
+
+	RTL_W32(tp, MISC, RTL_R32(tp, MISC) & ~RXDV_GATED_EN);
+
+	rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000);
+	rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000);
+
+	rtl8168_config_eee_mac(tp);
+
+	RTL_W8(tp, DLLPR, RTL_R8(tp, DLLPR) & ~PFM_EN);
+	RTL_W8(tp, MISC_1, RTL_R8(tp, MISC_1) & ~PFM_D3COLD_EN);
+
+	RTL_W8(tp, DLLPR, RTL_R8(tp, DLLPR) & ~TX_10M_PS_EN);
+
+	rtl_eri_clear_bits(tp, 0x1b0, ERIAR_MASK_0011, BIT(12));
+
+	rtl_pcie_state_l2l3_disable(tp);
+
+	rg_saw_cnt = phy_read_paged(tp->phydev, 0x0c42, 0x13) & 0x3fff;
+	if (rg_saw_cnt > 0) {
+		u16 sw_cnt_1ms_ini;
+
+		sw_cnt_1ms_ini = (16000000 / rg_saw_cnt) & 0x0fff;
+		r8168_mac_ocp_modify(tp, 0xd412, 0x0fff, sw_cnt_1ms_ini);
+	}
+
+	r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0070);
+	r8168_mac_ocp_write(tp, 0xea80, 0x0003);
+	r8168_mac_ocp_modify(tp, 0xe052, 0x0000, 0x0009);
+	r8168_mac_ocp_modify(tp, 0xd420, 0x0fff, 0x047f);
+
+	r8168_mac_ocp_write(tp, 0xe63e, 0x0001);
+	r8168_mac_ocp_write(tp, 0xe63e, 0x0000);
+	r8168_mac_ocp_write(tp, 0xc094, 0x0000);
+	r8168_mac_ocp_write(tp, 0xc09e, 0x0000);
+
+	/* firmware is for MAC only */
+	rtl_apply_firmware(tp);
+
+	rtl_hw_aspm_clkreq_enable(tp, true);
+}
+
 static void rtl_hw_start_8102e_1(struct rtl8169_private *tp)
 {
 	static const struct ephy_info e_info_8102e_1[] = {
@@ -5399,6 +5453,7 @@
 		[RTL_GIGA_MAC_VER_49] = rtl_hw_start_8168ep_1,
 		[RTL_GIGA_MAC_VER_50] = rtl_hw_start_8168ep_2,
 		[RTL_GIGA_MAC_VER_51] = rtl_hw_start_8168ep_3,
+		[RTL_GIGA_MAC_VER_52] = rtl_hw_start_8117,
 		[RTL_GIGA_MAC_VER_60] = rtl_hw_start_8125_1,
 		[RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125_2,
 	};
@@ -5500,6 +5555,10 @@
 	dev->mtu = new_mtu;
 	netdev_update_features(dev);
 
+	/* Reportedly at least Asus X453MA truncates packets otherwise */
+	if (tp->mac_version == RTL_GIGA_MAC_VER_37)
+		rtl_init_rxcfg(tp);
+
 	return 0;
 }
 
@@ -5828,7 +5887,8 @@
 		opts[1] |= transport_offset << TCPHO_SHIFT;
 	} else {
 		if (unlikely(rtl_test_hw_pad_bug(tp, skb)))
-			return !eth_skb_pad(skb);
+			/* eth_skb_pad would free the skb on error */
+			return !__skb_put_padto(skb, ETH_ZLEN, false);
 	}
 
 	return true;
@@ -6242,12 +6302,11 @@
 	if (unlikely(status & RxFIFOOver &&
 	    tp->mac_version == RTL_GIGA_MAC_VER_11)) {
 		netif_stop_queue(tp->dev);
-		/* XXX - Hack alert. See rtl_task(). */
-		set_bit(RTL_FLAG_TASK_RESET_PENDING, tp->wk.flags);
+		rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
 	}
 
 	rtl_irq_disable(tp);
-	napi_schedule_irqoff(&tp->napi);
+	napi_schedule(&tp->napi);
 out:
 	rtl_ack_events(tp, status);
 
@@ -6399,9 +6458,9 @@
 
 	cancel_work_sync(&tp->wk.work);
 
-	phy_disconnect(tp->phydev);
+	free_irq(pci_irq_vector(pdev, 0), tp);
 
-	pci_free_irq(pdev, 0, tp);
+	phy_disconnect(tp->phydev);
 
 	dma_free_coherent(&pdev->dev, R8169_RX_RING_BYTES, tp->RxDescArray,
 			  tp->RxPhyAddr);
@@ -6452,8 +6511,8 @@
 
 	rtl_request_firmware(tp);
 
-	retval = pci_request_irq(pdev, 0, rtl8169_interrupt, NULL, tp,
-				 dev->name);
+	retval = request_irq(pci_irq_vector(pdev, 0), rtl8169_interrupt,
+			     IRQF_SHARED, dev->name, tp);
 	if (retval < 0)
 		goto err_release_fw_2;
 
@@ -6486,7 +6545,7 @@
 	return retval;
 
 err_free_irq:
-	pci_free_irq(pdev, 0, tp);
+	free_irq(pci_irq_vector(pdev, 0), tp);
 err_release_fw_2:
 	rtl_release_firmware(tp);
 	rtl8169_rx_clear(tp);
@@ -6800,7 +6859,7 @@
 		RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable);
 		rtl_lock_config_regs(tp);
 		/* fall through */
-	case RTL_GIGA_MAC_VER_07 ... RTL_GIGA_MAC_VER_24:
+	case RTL_GIGA_MAC_VER_07 ... RTL_GIGA_MAC_VER_17:
 		flags = PCI_IRQ_LEGACY;
 		break;
 	default:
@@ -6891,6 +6950,13 @@
 	if (!tp->phydev) {
 		mdiobus_unregister(new_bus);
 		return -ENODEV;
+	} else if (!tp->phydev->drv) {
+		/* Most chip versions fail with the genphy driver.
+		 * Therefore ensure that the dedicated PHY driver is loaded.
+		 */
+		dev_err(&pdev->dev, "realtek.ko not loaded, maybe it needs to be added to initramfs?\n");
+		mdiobus_unregister(new_bus);
+		return -EUNATCH;
 	}
 
 	/* PHY will be woken up in rtl_open() */
@@ -6953,7 +7019,7 @@
 static void rtl_hw_initialize(struct rtl8169_private *tp)
 {
 	switch (tp->mac_version) {
-	case RTL_GIGA_MAC_VER_49 ... RTL_GIGA_MAC_VER_51:
+	case RTL_GIGA_MAC_VER_49 ... RTL_GIGA_MAC_VER_52:
 		rtl8168ep_stop_cmac(tp);
 		/* fall through */
 	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
@@ -7063,6 +7129,7 @@
 	tp->pci_dev = pdev;
 	tp->msg_enable = netif_msg_init(debug.msg_enable, R8169_MSG_DEFAULT);
 	tp->supports_gmii = ent->driver_data == RTL_CFG_NO_GBIT ? 0 : 1;
+	tp->eee_adv = -1;
 
 	/* Get the *optional* external "ether_clk" used on some boards */
 	rc = rtl_get_ether_clk(tp);
@@ -7072,8 +7139,7 @@
 	/* Disable ASPM completely as that cause random device stop working
 	 * problems as well as full system hangs for some PCIe devices users.
 	 */
-	rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S |
-					  PCIE_LINK_STATE_L1);
+	rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_1);
 	tp->aspm_manageable = !rc;
 
 	/* enable device (incl. PCI PM wakeup and hotplug setup) */
@@ -7147,12 +7213,10 @@
 
 	netif_napi_add(dev, &tp->napi, rtl8169_poll, NAPI_POLL_WEIGHT);
 
-	dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
-		NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_TX |
-		NETIF_F_HW_VLAN_CTAG_RX;
-	dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
-		NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_TX |
-		NETIF_F_HW_VLAN_CTAG_RX;
+	dev->features |= NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
+			 NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
+	dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
+			   NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
 	dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
 		NETIF_F_HIGHDMA;
 	dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
@@ -7170,25 +7234,25 @@
 		dev->hw_features &= ~NETIF_F_HW_VLAN_CTAG_RX;
 
 	if (rtl_chip_supports_csum_v2(tp)) {
-		dev->hw_features |= NETIF_F_IPV6_CSUM | NETIF_F_TSO6;
-		dev->features |= NETIF_F_IPV6_CSUM | NETIF_F_TSO6;
+		dev->hw_features |= NETIF_F_IPV6_CSUM;
+		dev->features |= NETIF_F_IPV6_CSUM;
+	}
+
+	/* There has been a number of reports that using SG/TSO results in
+	 * tx timeouts. However for a lot of people SG/TSO works fine.
+	 * Therefore disable both features by default, but allow users to
+	 * enable them. Use at own risk!
+	 */
+	if (rtl_chip_supports_csum_v2(tp)) {
+		dev->hw_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6;
 		dev->gso_max_size = RTL_GSO_MAX_SIZE_V2;
 		dev->gso_max_segs = RTL_GSO_MAX_SEGS_V2;
 	} else {
+		dev->hw_features |= NETIF_F_SG | NETIF_F_TSO;
 		dev->gso_max_size = RTL_GSO_MAX_SIZE_V1;
 		dev->gso_max_segs = RTL_GSO_MAX_SEGS_V1;
 	}
 
-	/* RTL8168e-vl and one RTL8168c variant are known to have a
-	 * HW issue with TSO.
-	 */
-	if (tp->mac_version == RTL_GIGA_MAC_VER_34 ||
-	    tp->mac_version == RTL_GIGA_MAC_VER_22) {
-		dev->vlan_features &= ~(NETIF_F_ALL_TSO | NETIF_F_SG);
-		dev->hw_features &= ~(NETIF_F_ALL_TSO | NETIF_F_SG);
-		dev->features &= ~(NETIF_F_ALL_TSO | NETIF_F_SG);
-	}
-
 	dev->hw_features |= NETIF_F_RXALL;
 	dev->hw_features |= NETIF_F_RXFCS;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/renesas/ravb_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/renesas/ravb_main.c
@@ -1444,6 +1444,7 @@
 	struct ravb_private *priv = container_of(work, struct ravb_private,
 						 work);
 	struct net_device *ndev = priv->ndev;
+	int error;
 
 	netif_tx_stop_all_queues(ndev);
 
@@ -1452,15 +1453,36 @@
 		ravb_ptp_stop(ndev);
 
 	/* Wait for DMA stopping */
-	ravb_stop_dma(ndev);
+	if (ravb_stop_dma(ndev)) {
+		/* If ravb_stop_dma() fails, the hardware is still operating
+		 * for TX and/or RX. So, this should not call the following
+		 * functions because ravb_dmac_init() is possible to fail too.
+		 * Also, this should not retry ravb_stop_dma() again and again
+		 * here because it's possible to wait forever. So, this just
+		 * re-enables the TX and RX and skip the following
+		 * re-initialization procedure.
+		 */
+		ravb_rcv_snd_enable(ndev);
+		goto out;
+	}
 
 	ravb_ring_free(ndev, RAVB_BE);
 	ravb_ring_free(ndev, RAVB_NC);
 
 	/* Device init */
-	ravb_dmac_init(ndev);
+	error = ravb_dmac_init(ndev);
+	if (error) {
+		/* If ravb_dmac_init() fails, descriptors are freed. So, this
+		 * should return here to avoid re-enabling the TX and RX in
+		 * ravb_emac_init().
+		 */
+		netdev_err(ndev, "%s: ravb_dmac_init() failed, error %d\n",
+			   __func__, error);
+		return;
+	}
 	ravb_emac_init(ndev);
 
+out:
 	/* Initialise PTP Clock driver */
 	if (priv->chip_id == RCAR_GEN2)
 		ravb_ptp_init(ndev, priv->pdev);
@@ -1719,12 +1741,16 @@
 	config.flags = 0;
 	config.tx_type = priv->tstamp_tx_ctrl ? HWTSTAMP_TX_ON :
 						HWTSTAMP_TX_OFF;
-	if (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE_V2_L2_EVENT)
+	switch (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE) {
+	case RAVB_RXTSTAMP_TYPE_V2_L2_EVENT:
 		config.rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
-	else if (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE_ALL)
+		break;
+	case RAVB_RXTSTAMP_TYPE_ALL:
 		config.rx_filter = HWTSTAMP_FILTER_ALL;
-	else
+		break;
+	default:
 		config.rx_filter = HWTSTAMP_FILTER_NONE;
+	}
 
 	return copy_to_user(req->ifr_data, &config, sizeof(config)) ?
 		-EFAULT : 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/renesas/sh_eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/renesas/sh_eth.c
@@ -610,6 +610,8 @@
 			  EESR_TDE,
 	.fdr_value	= 0x0000070f,
 
+	.trscer_err_mask = DESC_I_RINT8 | DESC_I_RINT5,
+
 	.no_psr		= 1,
 	.apr		= 1,
 	.mpr		= 1,
@@ -828,6 +830,8 @@
 
 	.fdr_value	= 0x0000070f,
 
+	.trscer_err_mask = DESC_I_RINT8 | DESC_I_RINT5,
+
 	.apr		= 1,
 	.mpr		= 1,
 	.tpauser	= 1,
@@ -1131,6 +1135,9 @@
 			  EESIPR_CEEFIP | EESIPR_CELFIP |
 			  EESIPR_RRFIP | EESIPR_RTLFIP | EESIPR_RTSFIP |
 			  EESIPR_PREIP | EESIPR_CERFIP,
+
+	.trscer_err_mask = DESC_I_RINT8,
+
 	.tsu		= 1,
 	.dual_port	= 1,
 };
@@ -2204,24 +2211,28 @@
 	if (cd->tsu) {
 		add_tsu_reg(ARSTR);
 		add_tsu_reg(TSU_CTRST);
-		add_tsu_reg(TSU_FWEN0);
-		add_tsu_reg(TSU_FWEN1);
-		add_tsu_reg(TSU_FCM);
-		add_tsu_reg(TSU_BSYSL0);
-		add_tsu_reg(TSU_BSYSL1);
-		add_tsu_reg(TSU_PRISL0);
-		add_tsu_reg(TSU_PRISL1);
-		add_tsu_reg(TSU_FWSL0);
-		add_tsu_reg(TSU_FWSL1);
+		if (cd->dual_port) {
+			add_tsu_reg(TSU_FWEN0);
+			add_tsu_reg(TSU_FWEN1);
+			add_tsu_reg(TSU_FCM);
+			add_tsu_reg(TSU_BSYSL0);
+			add_tsu_reg(TSU_BSYSL1);
+			add_tsu_reg(TSU_PRISL0);
+			add_tsu_reg(TSU_PRISL1);
+			add_tsu_reg(TSU_FWSL0);
+			add_tsu_reg(TSU_FWSL1);
+		}
 		add_tsu_reg(TSU_FWSLC);
-		add_tsu_reg(TSU_QTAGM0);
-		add_tsu_reg(TSU_QTAGM1);
-		add_tsu_reg(TSU_FWSR);
-		add_tsu_reg(TSU_FWINMK);
-		add_tsu_reg(TSU_ADQT0);
-		add_tsu_reg(TSU_ADQT1);
-		add_tsu_reg(TSU_VTAG0);
-		add_tsu_reg(TSU_VTAG1);
+		if (cd->dual_port) {
+			add_tsu_reg(TSU_QTAGM0);
+			add_tsu_reg(TSU_QTAGM1);
+			add_tsu_reg(TSU_FWSR);
+			add_tsu_reg(TSU_FWINMK);
+			add_tsu_reg(TSU_ADQT0);
+			add_tsu_reg(TSU_ADQT1);
+			add_tsu_reg(TSU_VTAG0);
+			add_tsu_reg(TSU_VTAG1);
+		}
 		add_tsu_reg(TSU_ADSBSY);
 		add_tsu_reg(TSU_TEN);
 		add_tsu_reg(TSU_POST1);
@@ -2636,10 +2647,10 @@
 	/* Free all the skbuffs in the Rx queue and the DMA buffer. */
 	sh_eth_ring_free(ndev);
 
-	pm_runtime_put_sync(&mdp->pdev->dev);
-
 	mdp->is_opened = 0;
 
+	pm_runtime_put(&mdp->pdev->dev);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/rocker/rocker_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/rocker/rocker_main.c
@@ -647,10 +647,10 @@
 err_dma_event_ring_bufs_alloc:
 	rocker_dma_ring_destroy(rocker, &rocker->event_ring);
 err_dma_event_ring_create:
+	rocker_dma_cmd_ring_waits_free(rocker);
+err_dma_cmd_ring_waits_alloc:
 	rocker_dma_ring_bufs_free(rocker, &rocker->cmd_ring,
 				  PCI_DMA_BIDIRECTIONAL);
-err_dma_cmd_ring_waits_alloc:
-	rocker_dma_cmd_ring_waits_free(rocker);
 err_dma_cmd_ring_bufs_alloc:
 	rocker_dma_ring_destroy(rocker, &rocker->cmd_ring);
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
@@ -2279,7 +2279,7 @@
 	if (!str || !*str)
 		return -EINVAL;
 	while ((opt = strsep(&str, ",")) != NULL) {
-		if (!strncmp(opt, "eee_timer:", 6)) {
+		if (!strncmp(opt, "eee_timer:", 10)) {
 			if (kstrtoint(opt + 10, 0, &eee_timer))
 				goto err;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/sfc/efx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/sfc/efx.c
@@ -519,6 +519,7 @@
 		if (tx_queue->channel)
 			tx_queue->channel = channel;
 		tx_queue->buffer = NULL;
+		tx_queue->cb_page = NULL;
 		memset(&tx_queue->txd, 0, sizeof(tx_queue->txd));
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/sfc/ptp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/sfc/ptp.c
@@ -560,13 +560,45 @@
 				    u32 nic_major, u32 nic_minor,
 				    s32 correction)
 {
+	u32 sync_timestamp;
 	ktime_t kt = { 0 };
+	s16 delta;
 
 	if (!(nic_major & 0x80000000)) {
 		WARN_ON_ONCE(nic_major >> 16);
-		/* Use the top bits from the latest sync event. */
-		nic_major &= 0xffff;
-		nic_major |= (last_sync_timestamp_major(efx) & 0xffff0000);
+
+		/* Medford provides 48 bits of timestamp, so we must get the top
+		 * 16 bits from the timesync event state.
+		 *
+		 * We only have the lower 16 bits of the time now, but we do
+		 * have a full resolution timestamp at some point in past. As
+		 * long as the difference between the (real) now and the sync
+		 * is less than 2^15, then we can reconstruct the difference
+		 * between those two numbers using only the lower 16 bits of
+		 * each.
+		 *
+		 * Put another way
+		 *
+		 * a - b = ((a mod k) - b) mod k
+		 *
+		 * when -k/2 < (a-b) < k/2. In our case k is 2^16. We know
+		 * (a mod k) and b, so can calculate the delta, a - b.
+		 *
+		 */
+		sync_timestamp = last_sync_timestamp_major(efx);
+
+		/* Because delta is s16 this does an implicit mask down to
+		 * 16 bits which is what we need, assuming
+		 * MEDFORD_TX_SECS_EVENT_BITS is 16. delta is signed so that
+		 * we can deal with the (unlikely) case of sync timestamps
+		 * arriving from the future.
+		 */
+		delta = nic_major - sync_timestamp;
+
+		/* Recover the fully specified time now, by applying the offset
+		 * to the (fully specified) sync time.
+		 */
+		nic_major = sync_timestamp + delta;
 
 		kt = ptp->nic_to_kernel_time(nic_major, nic_minor,
 					     correction);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/smsc/smc911x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/smsc/smc911x.c
@@ -936,7 +936,7 @@
 	if (lp->ctl_rspeed != 100)
 		my_ad_caps &= ~(ADVERTISE_100BASE4|ADVERTISE_100FULL|ADVERTISE_100HALF);
 
-	 if (!lp->ctl_rfduplx)
+	if (!lp->ctl_rfduplx)
 		my_ad_caps &= ~(ADVERTISE_100FULL|ADVERTISE_10FULL);
 
 	/* Update our Auto-Neg Advertisement Register */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/smsc/smc91x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/smsc/smc91x.c
@@ -2274,7 +2274,7 @@
 		ret = try_toggle_control_gpio(&pdev->dev, &lp->power_gpio,
 					      "power", 0, 0, 100);
 		if (ret)
-			return ret;
+			goto out_free_netdev;
 
 		/*
 		 * Optional reset GPIO configured? Minimum 100 ns reset needed
@@ -2283,7 +2283,7 @@
 		ret = try_toggle_control_gpio(&pdev->dev, &lp->reset_gpio,
 					      "reset", 0, 0, 100);
 		if (ret)
-			return ret;
+			goto out_free_netdev;
 
 		/*
 		 * Need to wait for optional EEPROM to load, max 750 us according
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/smsc/smsc911x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/smsc/smsc911x.c
@@ -2502,20 +2502,20 @@
 
 	retval = smsc911x_init(dev);
 	if (retval < 0)
-		goto out_disable_resources;
+		goto out_init_fail;
 
 	netif_carrier_off(dev);
 
 	retval = smsc911x_mii_init(pdev, dev);
 	if (retval) {
 		SMSC_WARN(pdata, probe, "Error %i initialising mii", retval);
-		goto out_disable_resources;
+		goto out_init_fail;
 	}
 
 	retval = register_netdev(dev);
 	if (retval) {
 		SMSC_WARN(pdata, probe, "Error %i registering device", retval);
-		goto out_disable_resources;
+		goto out_init_fail;
 	} else {
 		SMSC_TRACE(pdata, probe,
 			   "Network interface: \"%s\"", dev->name);
@@ -2556,9 +2556,10 @@
 
 	return 0;
 
-out_disable_resources:
+out_init_fail:
 	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
+out_disable_resources:
 	(void)smsc911x_disable_resources(pdev);
 out_enable_resources_fail:
 	smsc911x_free_resources(pdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/socionext/netsec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/socionext/netsec.c
@@ -847,8 +847,8 @@
 		enum dma_data_direction dma_dir =
 			page_pool_get_dma_dir(rx_ring->page_pool);
 
-		dma_handle = page_pool_get_dma_addr(page) +
-			NETSEC_RXBUF_HEADROOM;
+		dma_handle = page_pool_get_dma_addr(page) + xdpf->headroom +
+			sizeof(*xdpf);
 		dma_sync_single_for_device(priv->dev, dma_handle, xdpf->len,
 					   dma_dir);
 		tx_desc.buf_type = TYPE_NETSEC_XDP_TX;
@@ -928,7 +928,6 @@
 	struct netsec_rx_pkt_info rx_info;
 	enum dma_data_direction dma_dir;
 	struct bpf_prog *xdp_prog;
-	struct sk_buff *skb = NULL;
 	u16 xdp_xmit = 0;
 	u32 xdp_act = 0;
 	int done = 0;
@@ -942,7 +941,8 @@
 		struct netsec_de *de = dring->vaddr + (DESC_SZ * idx);
 		struct netsec_desc *desc = &dring->desc[idx];
 		struct page *page = virt_to_page(desc->addr);
-		u32 xdp_result = XDP_PASS;
+		u32 xdp_result = NETSEC_XDP_PASS;
+		struct sk_buff *skb = NULL;
 		u16 pkt_len, desc_len;
 		dma_addr_t dma_handle;
 		struct xdp_buff xdp;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/socionext/sni_ave.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/socionext/sni_ave.c
@@ -424,16 +424,22 @@
 		phy_ethtool_get_wol(ndev->phydev, wol);
 }
 
-static int ave_ethtool_set_wol(struct net_device *ndev,
-			       struct ethtool_wolinfo *wol)
+static int __ave_ethtool_set_wol(struct net_device *ndev,
+				 struct ethtool_wolinfo *wol)
 {
-	int ret;
-
 	if (!ndev->phydev ||
 	    (wol->wolopts & (WAKE_ARP | WAKE_MAGICSECURE)))
 		return -EOPNOTSUPP;
 
-	ret = phy_ethtool_set_wol(ndev->phydev, wol);
+	return phy_ethtool_set_wol(ndev->phydev, wol);
+}
+
+static int ave_ethtool_set_wol(struct net_device *ndev,
+			       struct ethtool_wolinfo *wol)
+{
+	int ret;
+
+	ret = __ave_ethtool_set_wol(ndev, wol);
 	if (!ret)
 		device_set_wakeup_enable(&ndev->dev, !!wol->wolopts);
 
@@ -1185,7 +1191,7 @@
 	ret = regmap_update_bits(priv->regmap, SG_ETPINMODE,
 				 priv->pinmode_mask, priv->pinmode_val);
 	if (ret)
-		return ret;
+		goto out_reset_assert;
 
 	ave_global_reset(ndev);
 
@@ -1216,7 +1222,7 @@
 
 	/* set wol initial state disabled */
 	wol.wolopts = 0;
-	ave_ethtool_set_wol(ndev, &wol);
+	__ave_ethtool_set_wol(ndev, &wol);
 
 	if (!phy_interface_is_rgmii(phydev))
 		phy_set_max_speed(phydev, SPEED_100);
@@ -1768,7 +1774,7 @@
 
 	ave_ethtool_get_wol(ndev, &wol);
 	wol.wolopts = priv->wolopts;
-	ave_ethtool_set_wol(ndev, &wol);
+	__ave_ethtool_set_wol(ndev, &wol);
 
 	if (ndev->phydev) {
 		ret = phy_resume(ndev->phydev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/common.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/common.h
@@ -364,9 +364,8 @@
 	unsigned int arpoffsel;
 };
 
-/* GMAC TX FIFO is 8K, Rx FIFO is 16K */
-#define BUF_SIZE_16KiB 16384
-/* RX Buffer size must be < 8191 and multiple of 4/8/16 bytes */
+/* RX Buffer size must be multiple of 4/8/16 bytes */
+#define BUF_SIZE_16KiB 16368
 #define BUF_SIZE_8KiB 8188
 #define BUF_SIZE_4KiB 4096
 #define BUF_SIZE_2KiB 2048
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
@@ -318,6 +318,19 @@
 	/* Enable PTP clock */
 	regmap_read(gmac->nss_common, NSS_COMMON_CLK_GATE, &val);
 	val |= NSS_COMMON_CLK_GATE_PTP_EN(gmac->id);
+	switch (gmac->phy_mode) {
+	case PHY_INTERFACE_MODE_RGMII:
+		val |= NSS_COMMON_CLK_GATE_RGMII_RX_EN(gmac->id) |
+			NSS_COMMON_CLK_GATE_RGMII_TX_EN(gmac->id);
+		break;
+	case PHY_INTERFACE_MODE_SGMII:
+		val |= NSS_COMMON_CLK_GATE_GMII_RX_EN(gmac->id) |
+				NSS_COMMON_CLK_GATE_GMII_TX_EN(gmac->id);
+		break;
+	default:
+		/* We don't get here; the switch above will have errored out */
+		unreachable();
+	}
 	regmap_write(gmac->nss_common, NSS_COMMON_CLK_GATE, val);
 
 	if (gmac->phy_mode == PHY_INTERFACE_MODE_SGMII) {
@@ -337,6 +350,7 @@
 	plat_dat->has_gmac = true;
 	plat_dat->bsp_priv = gmac;
 	plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
+	plat_dat->multicast_filter_bins = 0;
 
 	err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
 	if (err)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c
@@ -29,7 +29,6 @@
 #define PRG_ETH0_EXT_RMII_MODE		4
 
 /* mux to choose between fclk_div2 (bit unset) and mpll2 (bit set) */
-#define PRG_ETH0_CLK_M250_SEL_SHIFT	4
 #define PRG_ETH0_CLK_M250_SEL_MASK	GENMASK(4, 4)
 
 #define PRG_ETH0_TXDLY_SHIFT		5
@@ -112,6 +111,15 @@
 	struct device *dev = dwmac->dev;
 	const char *parent_name, *mux_parent_names[MUX_CLK_NUM_PARENTS];
 	struct meson8b_dwmac_clk_configs *clk_configs;
+	static const struct clk_div_table div_table[] = {
+		{ .div = 2, .val = 2, },
+		{ .div = 3, .val = 3, },
+		{ .div = 4, .val = 4, },
+		{ .div = 5, .val = 5, },
+		{ .div = 6, .val = 6, },
+		{ .div = 7, .val = 7, },
+		{ /* end of array */ }
+	};
 
 	clk_configs = devm_kzalloc(dev, sizeof(*clk_configs), GFP_KERNEL);
 	if (!clk_configs)
@@ -134,8 +142,9 @@
 	}
 
 	clk_configs->m250_mux.reg = dwmac->regs + PRG_ETH0;
-	clk_configs->m250_mux.shift = PRG_ETH0_CLK_M250_SEL_SHIFT;
-	clk_configs->m250_mux.mask = PRG_ETH0_CLK_M250_SEL_MASK;
+	clk_configs->m250_mux.shift = __ffs(PRG_ETH0_CLK_M250_SEL_MASK);
+	clk_configs->m250_mux.mask = PRG_ETH0_CLK_M250_SEL_MASK >>
+				     clk_configs->m250_mux.shift;
 	clk = meson8b_dwmac_register_clk(dwmac, "m250_sel", mux_parent_names,
 					 MUX_CLK_NUM_PARENTS, &clk_mux_ops,
 					 &clk_configs->m250_mux.hw);
@@ -146,9 +155,9 @@
 	clk_configs->m250_div.reg = dwmac->regs + PRG_ETH0;
 	clk_configs->m250_div.shift = PRG_ETH0_CLK_M250_DIV_SHIFT;
 	clk_configs->m250_div.width = PRG_ETH0_CLK_M250_DIV_WIDTH;
-	clk_configs->m250_div.flags = CLK_DIVIDER_ONE_BASED |
-				CLK_DIVIDER_ALLOW_ZERO |
-				CLK_DIVIDER_ROUND_CLOSEST;
+	clk_configs->m250_div.table = div_table;
+	clk_configs->m250_div.flags = CLK_DIVIDER_ALLOW_ZERO |
+				      CLK_DIVIDER_ROUND_CLOSEST;
 	clk = meson8b_dwmac_register_clk(dwmac, "m250_div", &parent_name, 1,
 					 &clk_divider_ops,
 					 &clk_configs->m250_div.hw);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
@@ -75,6 +75,11 @@
 	unsigned int value;
 };
 
+struct ethqos_emac_driver_data {
+	const struct ethqos_emac_por *por;
+	unsigned int num_por;
+};
+
 struct qcom_ethqos {
 	struct platform_device *pdev;
 	void __iomem *rgmii_base;
@@ -171,6 +176,11 @@
 	{ .offset = RGMII_IO_MACRO_CONFIG2,	.value = 0x00002060 },
 };
 
+static const struct ethqos_emac_driver_data emac_v2_3_0_data = {
+	.por = emac_v2_3_0_por,
+	.num_por = ARRAY_SIZE(emac_v2_3_0_por),
+};
+
 static int ethqos_dll_configure(struct qcom_ethqos *ethqos)
 {
 	unsigned int val;
@@ -413,6 +423,7 @@
 			dll_lock = rgmii_readl(ethqos, SDC4_STATUS);
 			if (dll_lock & SDC4_STATUS_DLL_LOCK)
 				break;
+			retry--;
 		} while (retry > 0);
 		if (!retry)
 			dev_err(&ethqos->pdev->dev,
@@ -441,6 +452,7 @@
 	struct device_node *np = pdev->dev.of_node;
 	struct plat_stmmacenet_data *plat_dat;
 	struct stmmac_resources stmmac_res;
+	const struct ethqos_emac_driver_data *data;
 	struct qcom_ethqos *ethqos;
 	struct resource *res;
 	int ret;
@@ -470,7 +482,9 @@
 		goto err_mem;
 	}
 
-	ethqos->por = of_device_get_match_data(&pdev->dev);
+	data = of_device_get_match_data(&pdev->dev);
+	ethqos->por = data->por;
+	ethqos->num_por = data->num_por;
 
 	ethqos->rgmii_clk = devm_clk_get(&pdev->dev, "rgmii");
 	if (IS_ERR(ethqos->rgmii_clk)) {
@@ -525,7 +539,7 @@
 }
 
 static const struct of_device_id qcom_ethqos_match[] = {
-	{ .compatible = "qcom,qcs404-ethqos", .data = &emac_v2_3_0_por},
+	{ .compatible = "qcom,qcs404-ethqos", .data = &emac_v2_3_0_data},
 	{ }
 };
 MODULE_DEVICE_TABLE(of, qcom_ethqos_match);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -1411,7 +1411,7 @@
 
 	ret = rk_gmac_clk_init(plat_dat);
 	if (ret)
-		return ret;
+		goto err_remove_config_dt;
 
 	ret = rk_gmac_powerup(plat_dat->bsp_priv);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
@@ -241,6 +241,8 @@
 	switch (phymode) {
 	case PHY_INTERFACE_MODE_RGMII:
 	case PHY_INTERFACE_MODE_RGMII_ID:
+	case PHY_INTERFACE_MODE_RGMII_RXID:
+	case PHY_INTERFACE_MODE_RGMII_TXID:
 		*val = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII;
 		break;
 	case PHY_INTERFACE_MODE_MII:
@@ -289,16 +291,19 @@
 	    phymode == PHY_INTERFACE_MODE_MII ||
 	    phymode == PHY_INTERFACE_MODE_GMII ||
 	    phymode == PHY_INTERFACE_MODE_SGMII) {
-		ctrl |= SYSMGR_EMACGRP_CTRL_PTP_REF_CLK_MASK << (reg_shift / 2);
 		regmap_read(sys_mgr_base_addr, SYSMGR_FPGAGRP_MODULE_REG,
 			    &module);
 		module |= (SYSMGR_FPGAGRP_MODULE_EMAC << (reg_shift / 2));
 		regmap_write(sys_mgr_base_addr, SYSMGR_FPGAGRP_MODULE_REG,
 			     module);
-	} else {
-		ctrl &= ~(SYSMGR_EMACGRP_CTRL_PTP_REF_CLK_MASK << (reg_shift / 2));
 	}
 
+	if (dwmac->f2h_ptp_ref_clk)
+		ctrl |= SYSMGR_EMACGRP_CTRL_PTP_REF_CLK_MASK << (reg_shift / 2);
+	else
+		ctrl &= ~(SYSMGR_EMACGRP_CTRL_PTP_REF_CLK_MASK <<
+			  (reg_shift / 2));
+
 	regmap_write(sys_mgr_base_addr, reg_offset, ctrl);
 
 	/* Deassert reset for the phy configuration to be sampled by
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
@@ -64,6 +64,7 @@
  * @variant:	reference to the current board variant
  * @regmap:	regmap for using the syscon
  * @internal_phy_powered: Does the internal PHY is enabled
+ * @use_internal_phy: Is the internal PHY selected for use
  * @mux_handle:	Internal pointer used by mdio-mux lib
  */
 struct sunxi_priv_data {
@@ -74,6 +75,7 @@
 	const struct emac_variant *variant;
 	struct regmap_field *regmap_field;
 	bool internal_phy_powered;
+	bool use_internal_phy;
 	void *mux_handle;
 };
 
@@ -523,8 +525,11 @@
 	.dma_interrupt = sun8i_dwmac_dma_interrupt,
 };
 
+static int sun8i_dwmac_power_internal_phy(struct stmmac_priv *priv);
+
 static int sun8i_dwmac_init(struct platform_device *pdev, void *priv)
 {
+	struct net_device *ndev = platform_get_drvdata(pdev);
 	struct sunxi_priv_data *gmac = priv;
 	int ret;
 
@@ -538,13 +543,25 @@
 
 	ret = clk_prepare_enable(gmac->tx_clk);
 	if (ret) {
-		if (gmac->regulator)
-			regulator_disable(gmac->regulator);
 		dev_err(&pdev->dev, "Could not enable AHB clock\n");
-		return ret;
+		goto err_disable_regulator;
+	}
+
+	if (gmac->use_internal_phy) {
+		ret = sun8i_dwmac_power_internal_phy(netdev_priv(ndev));
+		if (ret)
+			goto err_disable_clk;
 	}
 
 	return 0;
+
+err_disable_clk:
+	clk_disable_unprepare(gmac->tx_clk);
+err_disable_regulator:
+	if (gmac->regulator)
+		regulator_disable(gmac->regulator);
+
+	return ret;
 }
 
 static void sun8i_dwmac_core_init(struct mac_device_info *hw,
@@ -815,7 +832,6 @@
 	struct sunxi_priv_data *gmac = priv->plat->bsp_priv;
 	u32 reg, val;
 	int ret = 0;
-	bool need_power_ephy = false;
 
 	if (current_child ^ desired_child) {
 		regmap_field_read(gmac->regmap_field, &reg);
@@ -823,13 +839,12 @@
 		case DWMAC_SUN8I_MDIO_MUX_INTERNAL_ID:
 			dev_info(priv->device, "Switch mux to internal PHY");
 			val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SELECT;
-
-			need_power_ephy = true;
+			gmac->use_internal_phy = true;
 			break;
 		case DWMAC_SUN8I_MDIO_MUX_EXTERNAL_ID:
 			dev_info(priv->device, "Switch mux to external PHY");
 			val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SHUTDOWN;
-			need_power_ephy = false;
+			gmac->use_internal_phy = false;
 			break;
 		default:
 			dev_err(priv->device, "Invalid child ID %x\n",
@@ -837,7 +852,7 @@
 			return -EINVAL;
 		}
 		regmap_field_write(gmac->regmap_field, val);
-		if (need_power_ephy) {
+		if (gmac->use_internal_phy) {
 			ret = sun8i_dwmac_power_internal_phy(priv);
 			if (ret)
 				return ret;
@@ -957,6 +972,9 @@
 		/* default */
 		break;
 	case PHY_INTERFACE_MODE_RGMII:
+	case PHY_INTERFACE_MODE_RGMII_ID:
+	case PHY_INTERFACE_MODE_RGMII_RXID:
+	case PHY_INTERFACE_MODE_RGMII_TXID:
 		reg |= SYSCON_EPIT | SYSCON_ETCS_INT_GMII;
 		break;
 	case PHY_INTERFACE_MODE_RMII:
@@ -985,17 +1003,12 @@
 	struct sunxi_priv_data *gmac = priv;
 
 	if (gmac->variant->soc_has_internal_phy) {
-		/* sun8i_dwmac_exit could be called with mdiomux uninit */
-		if (gmac->mux_handle)
-			mdio_mux_uninit(gmac->mux_handle);
 		if (gmac->internal_phy_powered)
 			sun8i_dwmac_unpower_internal_phy(gmac);
 	}
 
 	sun8i_dwmac_unset_syscon(gmac);
 
-	reset_control_put(gmac->rst_ephy);
-
 	clk_disable_unprepare(gmac->tx_clk);
 
 	if (gmac->regulator)
@@ -1224,12 +1237,32 @@
 
 	return ret;
 dwmac_mux:
+	reset_control_put(gmac->rst_ephy);
+	clk_put(gmac->ephy_clk);
 	sun8i_dwmac_unset_syscon(gmac);
 dwmac_exit:
 	stmmac_pltfr_remove(pdev);
 return ret;
 }
 
+static int sun8i_dwmac_remove(struct platform_device *pdev)
+{
+	struct net_device *ndev = platform_get_drvdata(pdev);
+	struct stmmac_priv *priv = netdev_priv(ndev);
+	struct sunxi_priv_data *gmac = priv->plat->bsp_priv;
+
+	if (gmac->variant->soc_has_internal_phy) {
+		mdio_mux_uninit(gmac->mux_handle);
+		sun8i_dwmac_unpower_internal_phy(gmac);
+		reset_control_put(gmac->rst_ephy);
+		clk_put(gmac->ephy_clk);
+	}
+
+	stmmac_pltfr_remove(pdev);
+
+	return 0;
+}
+
 static const struct of_device_id sun8i_dwmac_match[] = {
 	{ .compatible = "allwinner,sun8i-h3-emac",
 		.data = &emac_variant_h3 },
@@ -1249,7 +1282,7 @@
 
 static struct platform_driver sun8i_dwmac_driver = {
 	.probe  = sun8i_dwmac_probe,
-	.remove = stmmac_pltfr_remove,
+	.remove = sun8i_dwmac_remove,
 	.driver = {
 		.name           = "dwmac-sun8i",
 		.pm		= &stmmac_pltfr_pm_ops,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
@@ -44,7 +44,7 @@
 	 * rate, which then uses the auto-reparenting feature of the
 	 * clock driver, and enabling/disabling the clock.
 	 */
-	if (gmac->interface == PHY_INTERFACE_MODE_RGMII) {
+	if (phy_interface_mode_is_rgmii(gmac->interface)) {
 		clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE);
 		clk_prepare_enable(gmac->tx_clk);
 		gmac->clk_enabled = 1;
@@ -146,6 +146,8 @@
 	plat_dat->init = sun7i_gmac_init;
 	plat_dat->exit = sun7i_gmac_exit;
 	plat_dat->fix_mac_speed = sun7i_fix_speed;
+	plat_dat->tx_fifo_size = 4096;
+	plat_dat->rx_fifo_size = 16384;
 
 	ret = sun7i_gmac_init(pdev, plat_dat->bsp_priv);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
@@ -24,6 +24,7 @@
 static void dwmac1000_core_init(struct mac_device_info *hw,
 				struct net_device *dev)
 {
+	struct stmmac_priv *priv = netdev_priv(dev);
 	void __iomem *ioaddr = hw->pcsr;
 	u32 value = readl(ioaddr + GMAC_CONTROL);
 	int mtu = dev->mtu;
@@ -35,7 +36,7 @@
 	 * Broadcom tags can look like invalid LLC/SNAP packets and cause the
 	 * hardware to truncate packets on reception.
 	 */
-	if (netdev_uses_dsa(dev))
+	if (netdev_uses_dsa(dev) || !priv->plat->enh_desc)
 		value &= ~GMAC_CONTROL_ACS;
 
 	if (mtu > 1500)
@@ -165,6 +166,9 @@
 		value = GMAC_FRAME_FILTER_PR | GMAC_FRAME_FILTER_PCF;
 	} else if (dev->flags & IFF_ALLMULTI) {
 		value = GMAC_FRAME_FILTER_PM;	/* pass all multi */
+	} else if (!netdev_mc_empty(dev) && (mcbitslog2 == 0)) {
+		/* Fall back to all multicast if we've no filter */
+		value = GMAC_FRAME_FILTER_PM;
 	} else if (!netdev_mc_empty(dev)) {
 		struct netdev_hw_addr *ha;
 
@@ -208,7 +212,7 @@
 			reg++;
 		}
 
-		while (reg <= perfect_addr_number) {
+		while (reg < perfect_addr_number) {
 			writel(0, ioaddr + GMAC_ADDR_HIGH(reg));
 			writel(0, ioaddr + GMAC_ADDR_LOW(reg));
 			reg++;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
@@ -116,6 +116,23 @@
 	       ioaddr + DMA_CHAN_INTR_ENA(chan));
 }
 
+static void dwmac410_dma_init_channel(void __iomem *ioaddr,
+				      struct stmmac_dma_cfg *dma_cfg, u32 chan)
+{
+	u32 value;
+
+	/* common channel control register config */
+	value = readl(ioaddr + DMA_CHAN_CONTROL(chan));
+	if (dma_cfg->pblx8)
+		value = value | DMA_BUS_MODE_PBL;
+
+	writel(value, ioaddr + DMA_CHAN_CONTROL(chan));
+
+	/* Mask interrupts by writing to CSR7 */
+	writel(DMA_CHAN_INTR_DEFAULT_MASK_4_10,
+	       ioaddr + DMA_CHAN_INTR_ENA(chan));
+}
+
 static void dwmac4_dma_init(void __iomem *ioaddr,
 			    struct stmmac_dma_cfg *dma_cfg, int atds)
 {
@@ -462,7 +479,7 @@
 const struct stmmac_dma_ops dwmac410_dma_ops = {
 	.reset = dwmac4_dma_reset,
 	.init = dwmac4_dma_init,
-	.init_chan = dwmac4_dma_init_channel,
+	.init_chan = dwmac410_dma_init_channel,
 	.init_rx_chan = dwmac4_dma_init_rx_chan,
 	.init_tx_chan = dwmac4_dma_init_tx_chan,
 	.axi = dwmac4_dma_axi,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
@@ -60,10 +60,6 @@
 
 	value &= ~DMA_CONTROL_ST;
 	writel(value, ioaddr + DMA_CHAN_TX_CONTROL(chan));
-
-	value = readl(ioaddr + GMAC_CONFIG);
-	value &= ~GMAC_CONFIG_TE;
-	writel(value, ioaddr + GMAC_CONFIG);
 }
 
 void dwmac4_dma_start_rx(void __iomem *ioaddr, u32 chan)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
@@ -343,6 +343,8 @@
 #define XGMAC_DMA_CH_RX_CONTROL(x)	(0x00003108 + (0x80 * (x)))
 #define XGMAC_RxPBL			GENMASK(21, 16)
 #define XGMAC_RxPBL_SHIFT		16
+#define XGMAC_RBSZ			GENMASK(14, 1)
+#define XGMAC_RBSZ_SHIFT		1
 #define XGMAC_RXST			BIT(0)
 #define XGMAC_DMA_CH_TxDESC_HADDR(x)	(0x00003110 + (0x80 * (x)))
 #define XGMAC_DMA_CH_TxDESC_LADDR(x)	(0x00003114 + (0x80 * (x)))
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
@@ -489,7 +489,8 @@
 	u32 value;
 
 	value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
-	value |= bfsize << 1;
+	value &= ~XGMAC_RBSZ;
+	value |= bfsize << XGMAC_RBSZ_SHIFT;
 	writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
@@ -662,23 +662,16 @@
 	struct stmmac_priv *priv = netdev_priv(dev);
 	int ret;
 
-	if (!edata->eee_enabled) {
+	if (!priv->dma_cap.eee)
+		return -EOPNOTSUPP;
+
+	if (!edata->eee_enabled)
 		stmmac_disable_eee_mode(priv);
-	} else {
-		/* We are asking for enabling the EEE but it is safe
-		 * to verify all by invoking the eee_init function.
-		 * In case of failure it will return an error.
-		 */
-		edata->eee_enabled = stmmac_eee_init(priv);
-		if (!edata->eee_enabled)
-			return -EOPNOTSUPP;
-	}
 
 	ret = phylink_ethtool_set_eee(priv->phylink, edata);
 	if (ret)
 		return ret;
 
-	priv->eee_enabled = edata->eee_enabled;
 	priv->tx_lpi_timer = edata->tx_lpi_timer;
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c
@@ -26,12 +26,16 @@
 	unsigned long data;
 	u32 reg_value;
 
-	/* For GMAC3.x, 4.x versions, convert the ptp_clock to nano second
-	 *	formula = (1/ptp_clock) * 1000000000
-	 * where ptp_clock is 50MHz if fine method is used to update system
+	/* For GMAC3.x, 4.x versions, in "fine adjustement mode" set sub-second
+	 * increment to twice the number of nanoseconds of a clock cycle.
+	 * The calculation of the default_addend value by the caller will set it
+	 * to mid-range = 2^31 when the remainder of this division is zero,
+	 * which will make the accumulator overflow once every 2 ptp_clock
+	 * cycles, adding twice the number of nanoseconds of a clock cycle :
+	 * 2000000000ULL / ptp_clock.
 	 */
 	if (value & PTP_TCR_TSCFUPDT)
-		data = (1000000000ULL / 50000000);
+		data = (2000000000ULL / ptp_clock);
 	else
 		data = (1000000000ULL / ptp_clock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -45,7 +45,7 @@
 #include "dwxgmac2.h"
 #include "hwif.h"
 
-#define	STMMAC_ALIGN(x)		__ALIGN_KERNEL(x, SMP_CACHE_BYTES)
+#define	STMMAC_ALIGN(x)		ALIGN(ALIGN(x, SMP_CACHE_BYTES), 16)
 #define	TSO_MAX_BUFF_SIZE	(SZ_16K - 1)
 
 /* Module parameters */
@@ -105,6 +105,7 @@
 static irqreturn_t stmmac_interrupt(int irq, void *dev_id);
 
 #ifdef CONFIG_DEBUG_FS
+static const struct net_device_ops stmmac_netdev_ops;
 static void stmmac_init_fs(struct net_device *dev);
 static void stmmac_exit_fs(struct net_device *dev);
 #endif
@@ -174,32 +175,6 @@
 	}
 }
 
-/**
- * stmmac_stop_all_queues - Stop all queues
- * @priv: driver private structure
- */
-static void stmmac_stop_all_queues(struct stmmac_priv *priv)
-{
-	u32 tx_queues_cnt = priv->plat->tx_queues_to_use;
-	u32 queue;
-
-	for (queue = 0; queue < tx_queues_cnt; queue++)
-		netif_tx_stop_queue(netdev_get_tx_queue(priv->dev, queue));
-}
-
-/**
- * stmmac_start_all_queues - Start all queues
- * @priv: driver private structure
- */
-static void stmmac_start_all_queues(struct stmmac_priv *priv)
-{
-	u32 tx_queues_cnt = priv->plat->tx_queues_to_use;
-	u32 queue;
-
-	for (queue = 0; queue < tx_queues_cnt; queue++)
-		netif_tx_start_queue(netdev_get_tx_queue(priv->dev, queue));
-}
-
 static void stmmac_service_event_schedule(struct stmmac_priv *priv)
 {
 	if (!test_bit(STMMAC_DOWN, &priv->state) &&
@@ -629,7 +604,8 @@
 			config.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
 			ptp_v2 = PTP_TCR_TSVER2ENA;
 			snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
-			ts_event_en = PTP_TCR_TSEVNTENA;
+			if (priv->synopsys_id != DWMAC_CORE_5_10)
+				ts_event_en = PTP_TCR_TSEVNTENA;
 			ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
 			ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
 			ptp_over_ethernet = PTP_TCR_TSIPENA;
@@ -1108,7 +1084,9 @@
 {
 	int ret = bufsize;
 
-	if (mtu >= BUF_SIZE_4KiB)
+	if (mtu >= BUF_SIZE_8KiB)
+		ret = BUF_SIZE_16KiB;
+	else if (mtu >= BUF_SIZE_4KiB)
 		ret = BUF_SIZE_8KiB;
 	else if (mtu >= BUF_SIZE_2KiB)
 		ret = BUF_SIZE_4KiB;
@@ -1292,19 +1270,9 @@
 	struct stmmac_priv *priv = netdev_priv(dev);
 	u32 rx_count = priv->plat->rx_queues_to_use;
 	int ret = -ENOMEM;
-	int bfsize = 0;
 	int queue;
 	int i;
 
-	bfsize = stmmac_set_16kib_bfsize(priv, dev->mtu);
-	if (bfsize < 0)
-		bfsize = 0;
-
-	if (bfsize < BUF_SIZE_16KiB)
-		bfsize = stmmac_set_bfsize(dev->mtu, priv->dma_buf_sz);
-
-	priv->dma_buf_sz = bfsize;
-
 	/* RX INITIALIZATION */
 	netif_dbg(priv, probe, priv->dev,
 		  "SKB addresses:\nskb\t\tskb data\tdma data\n");
@@ -1346,8 +1314,6 @@
 		}
 	}
 
-	buf_sz = bfsize;
-
 	return 0;
 
 err_init_rx_buffers:
@@ -1476,6 +1442,19 @@
 }
 
 /**
+ * stmmac_free_tx_skbufs - free TX skb buffers
+ * @priv: private structure
+ */
+static void stmmac_free_tx_skbufs(struct stmmac_priv *priv)
+{
+	u32 tx_queue_cnt = priv->plat->tx_queues_to_use;
+	u32 queue;
+
+	for (queue = 0; queue < tx_queue_cnt; queue++)
+		dma_free_tx_skbufs(priv, queue);
+}
+
+/**
  * free_dma_rx_desc_resources - free RX dma desc resources
  * @priv: private structure
  */
@@ -1502,10 +1481,8 @@
 					  rx_q->dma_erx, rx_q->dma_rx_phy);
 
 		kfree(rx_q->buf_pool);
-		if (rx_q->page_pool) {
-			page_pool_request_shutdown(rx_q->page_pool);
+		if (rx_q->page_pool)
 			page_pool_destroy(rx_q->page_pool);
-		}
 	}
 }
 
@@ -2656,6 +2633,7 @@
 static int stmmac_open(struct net_device *dev)
 {
 	struct stmmac_priv *priv = netdev_priv(dev);
+	int bfsize = 0;
 	u32 chan;
 	int ret;
 
@@ -2675,7 +2653,16 @@
 	memset(&priv->xstats, 0, sizeof(struct stmmac_extra_stats));
 	priv->xstats.threshold = tc;
 
-	priv->dma_buf_sz = STMMAC_ALIGN(buf_sz);
+	bfsize = stmmac_set_16kib_bfsize(priv, dev->mtu);
+	if (bfsize < 0)
+		bfsize = 0;
+
+	if (bfsize < BUF_SIZE_16KiB)
+		bfsize = stmmac_set_bfsize(dev->mtu, priv->dma_buf_sz);
+
+	priv->dma_buf_sz = bfsize;
+	buf_sz = bfsize;
+
 	priv->rx_copybreak = STMMAC_RX_COPYBREAK;
 
 	ret = alloc_dma_desc_resources(priv);
@@ -2737,7 +2724,7 @@
 	}
 
 	stmmac_enable_all_queues(priv);
-	stmmac_start_all_queues(priv);
+	netif_tx_start_all_queues(priv->dev);
 
 	return 0;
 
@@ -2771,15 +2758,10 @@
 	struct stmmac_priv *priv = netdev_priv(dev);
 	u32 chan;
 
-	if (priv->eee_enabled)
-		del_timer_sync(&priv->eee_ctrl_timer);
-
 	/* Stop and disconnect the PHY */
 	phylink_stop(priv->phylink);
 	phylink_disconnect_phy(priv->phylink);
 
-	stmmac_stop_all_queues(priv);
-
 	stmmac_disable_all_queues(priv);
 
 	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
@@ -2792,6 +2774,11 @@
 	if (priv->lpi_irq > 0)
 		free_irq(priv->lpi_irq, dev);
 
+	if (priv->eee_enabled) {
+		priv->tx_path_in_lpi_mode = false;
+		del_timer_sync(&priv->eee_ctrl_timer);
+	}
+
 	/* Stop TX/RX DMA and clear the descriptors */
 	stmmac_stop_all_dma(priv);
 
@@ -3105,6 +3092,7 @@
 
 	tx_q->tx_tail_addr = tx_q->dma_tx_phy + (tx_q->cur_tx * sizeof(*desc));
 	stmmac_set_tx_tail_ptr(priv, priv->ioaddr, tx_q->tx_tail_addr, queue);
+	stmmac_tx_timer_arm(priv, queue);
 
 	return NETDEV_TX_OK;
 
@@ -3332,6 +3320,7 @@
 
 	tx_q->tx_tail_addr = tx_q->dma_tx_phy + (tx_q->cur_tx * sizeof(*desc));
 	stmmac_set_tx_tail_ptr(priv, priv->ioaddr, tx_q->tx_tail_addr, queue);
+	stmmac_tx_timer_arm(priv, queue);
 
 	return NETDEV_TX_OK;
 
@@ -3749,13 +3738,26 @@
 static int stmmac_change_mtu(struct net_device *dev, int new_mtu)
 {
 	struct stmmac_priv *priv = netdev_priv(dev);
+	int txfifosz = priv->plat->tx_fifo_size;
+	const int mtu = new_mtu;
+
+	if (txfifosz == 0)
+		txfifosz = priv->dma_cap.tx_fifo_size;
+
+	txfifosz /= priv->plat->tx_queues_to_use;
 
 	if (netif_running(dev)) {
 		netdev_err(priv->dev, "must be stopped to change its MTU\n");
 		return -EBUSY;
 	}
 
-	dev->mtu = new_mtu;
+	new_mtu = STMMAC_ALIGN(new_mtu);
+
+	/* If condition true, FIFO is too small or MTU too large */
+	if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
+		return -EINVAL;
+
+	dev->mtu = mtu;
 
 	netdev_update_features(dev);
 
@@ -3819,7 +3821,7 @@
 /**
  *  stmmac_interrupt - main ISR
  *  @irq: interrupt number.
- *  @dev_id: to pass the net device pointer.
+ *  @dev_id: to pass the net device pointer (must be valid).
  *  Description: this is the main driver interrupt service routine.
  *  It can call:
  *  o DMA service routine (to manage incoming frame reception and transmission
@@ -3843,11 +3845,6 @@
 	if (priv->irq_wake)
 		pm_wakeup_event(priv->device, 0);
 
-	if (unlikely(!dev)) {
-		netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
-		return IRQ_NONE;
-	}
-
 	/* Check if adapter is up */
 	if (test_bit(STMMAC_DOWN, &priv->state))
 		return IRQ_HANDLED;
@@ -4163,10 +4160,40 @@
 }
 DEFINE_SHOW_ATTRIBUTE(stmmac_dma_cap);
 
+/* Use network device events to rename debugfs file entries.
+ */
+static int stmmac_device_event(struct notifier_block *unused,
+			       unsigned long event, void *ptr)
+{
+	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+	struct stmmac_priv *priv = netdev_priv(dev);
+
+	if (dev->netdev_ops != &stmmac_netdev_ops)
+		goto done;
+
+	switch (event) {
+	case NETDEV_CHANGENAME:
+		if (priv->dbgfs_dir)
+			priv->dbgfs_dir = debugfs_rename(stmmac_fs_dir,
+							 priv->dbgfs_dir,
+							 stmmac_fs_dir,
+							 dev->name);
+		break;
+	}
+done:
+	return NOTIFY_DONE;
+}
+
+static struct notifier_block stmmac_notifier = {
+	.notifier_call = stmmac_device_event,
+};
+
 static void stmmac_init_fs(struct net_device *dev)
 {
 	struct stmmac_priv *priv = netdev_priv(dev);
 
+	rtnl_lock();
+
 	/* Create per netdev entries */
 	priv->dbgfs_dir = debugfs_create_dir(dev->name, stmmac_fs_dir);
 
@@ -4177,6 +4204,8 @@
 	/* Entry to report the DMA HW features */
 	debugfs_create_file("dma_cap", 0444, priv->dbgfs_dir, dev,
 			    &stmmac_dma_cap_fops);
+
+	rtnl_unlock();
 }
 
 static void stmmac_exit_fs(struct net_device *dev)
@@ -4684,14 +4713,14 @@
 
 	netdev_info(priv->dev, "%s: removing driver", __func__);
 
-#ifdef CONFIG_DEBUG_FS
-	stmmac_exit_fs(ndev);
-#endif
 	stmmac_stop_all_dma(priv);
 
 	stmmac_mac_set(priv, priv->ioaddr, false);
 	netif_carrier_off(ndev);
 	unregister_netdev(ndev);
+#ifdef CONFIG_DEBUG_FS
+	stmmac_exit_fs(ndev);
+#endif
 	phylink_destroy(priv->phylink);
 	if (priv->plat->stmmac_rst)
 		reset_control_assert(priv->plat->stmmac_rst);
@@ -4719,6 +4748,7 @@
 {
 	struct net_device *ndev = dev_get_drvdata(dev);
 	struct stmmac_priv *priv = netdev_priv(ndev);
+	u32 chan;
 
 	if (!ndev || !netif_running(ndev))
 		return 0;
@@ -4728,10 +4758,17 @@
 	mutex_lock(&priv->lock);
 
 	netif_device_detach(ndev);
-	stmmac_stop_all_queues(priv);
 
 	stmmac_disable_all_queues(priv);
 
+	for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
+		del_timer_sync(&priv->tx_queue[chan].txtimer);
+
+	if (priv->eee_enabled) {
+		priv->tx_path_in_lpi_mode = false;
+		del_timer_sync(&priv->eee_ctrl_timer);
+	}
+
 	/* Stop TX/RX DMA */
 	stmmac_stop_all_dma(priv);
 
@@ -4784,6 +4821,8 @@
 		tx_q->cur_tx = 0;
 		tx_q->dirty_tx = 0;
 		tx_q->mss = 0;
+
+		netdev_tx_reset_queue(netdev_get_tx_queue(priv->dev, queue));
 	}
 }
 
@@ -4830,6 +4869,7 @@
 
 	stmmac_reset_queues_param(priv);
 
+	stmmac_free_tx_skbufs(priv);
 	stmmac_clear_descriptors(priv);
 
 	stmmac_hw_setup(ndev, false);
@@ -4838,8 +4878,6 @@
 
 	stmmac_enable_all_queues(priv);
 
-	stmmac_start_all_queues(priv);
-
 	mutex_unlock(&priv->lock);
 
 	if (!device_may_wakeup(priv->device)) {
@@ -4907,6 +4945,7 @@
 	/* Create debugfs main directory if it doesn't exist yet */
 	if (!stmmac_fs_dir)
 		stmmac_fs_dir = debugfs_create_dir(STMMAC_RESOURCE_NAME, NULL);
+	register_netdevice_notifier(&stmmac_notifier);
 #endif
 
 	return 0;
@@ -4915,6 +4954,7 @@
 static void __exit stmmac_exit(void)
 {
 #ifdef CONFIG_DEBUG_FS
+	unregister_netdevice_notifier(&stmmac_notifier);
 	debugfs_remove_recursive(stmmac_fs_dir);
 #endif
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -320,7 +320,7 @@
 static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
 			 struct device_node *np, struct device *dev)
 {
-	bool mdio = true;
+	bool mdio = !of_phy_is_fixed_link(np);
 	static const struct of_device_id need_mdio_ids[] = {
 		{ .compatible = "snps,dwc-qos-ethernet-4.10" },
 		{},
@@ -663,16 +663,22 @@
 	 * In case the wake up interrupt is not passed from the platform
 	 * so the driver will continue to use the mac irq (ndev->irq)
 	 */
-	stmmac_res->wol_irq = platform_get_irq_byname(pdev, "eth_wake_irq");
+	stmmac_res->wol_irq =
+		platform_get_irq_byname_optional(pdev, "eth_wake_irq");
 	if (stmmac_res->wol_irq < 0) {
 		if (stmmac_res->wol_irq == -EPROBE_DEFER)
 			return -EPROBE_DEFER;
+		dev_info(&pdev->dev, "IRQ eth_wake_irq not found\n");
 		stmmac_res->wol_irq = stmmac_res->irq;
 	}
 
-	stmmac_res->lpi_irq = platform_get_irq_byname(pdev, "eth_lpi");
-	if (stmmac_res->lpi_irq == -EPROBE_DEFER)
-		return -EPROBE_DEFER;
+	stmmac_res->lpi_irq =
+		platform_get_irq_byname_optional(pdev, "eth_lpi");
+	if (stmmac_res->lpi_irq < 0) {
+		if (stmmac_res->lpi_irq == -EPROBE_DEFER)
+			return -EPROBE_DEFER;
+		dev_info(&pdev->dev, "IRQ eth_lpi not found\n");
+	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	stmmac_res->addr = devm_ioremap_resource(&pdev->dev, res);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
@@ -80,7 +80,7 @@
 	if (attr->max_size && (attr->max_size > size))
 		size = attr->max_size;
 
-	skb = netdev_alloc_skb_ip_align(priv->dev, size);
+	skb = netdev_alloc_skb(priv->dev, size);
 	if (!skb)
 		return NULL;
 
@@ -244,6 +244,8 @@
 					 struct net_device *orig_ndev)
 {
 	struct stmmac_test_priv *tpriv = pt->af_packet_priv;
+	unsigned char *src = tpriv->packet->src;
+	unsigned char *dst = tpriv->packet->dst;
 	struct stmmachdr *shdr;
 	struct ethhdr *ehdr;
 	struct udphdr *uhdr;
@@ -260,15 +262,15 @@
 		goto out;
 
 	ehdr = (struct ethhdr *)skb_mac_header(skb);
-	if (tpriv->packet->dst) {
-		if (!ether_addr_equal(ehdr->h_dest, tpriv->packet->dst))
+	if (dst) {
+		if (!ether_addr_equal_unaligned(ehdr->h_dest, dst))
 			goto out;
 	}
 	if (tpriv->packet->sarc) {
-		if (!ether_addr_equal(ehdr->h_source, ehdr->h_dest))
+		if (!ether_addr_equal_unaligned(ehdr->h_source, ehdr->h_dest))
 			goto out;
-	} else if (tpriv->packet->src) {
-		if (!ether_addr_equal(ehdr->h_source, tpriv->packet->src))
+	} else if (src) {
+		if (!ether_addr_equal_unaligned(ehdr->h_source, src))
 			goto out;
 	}
 
@@ -624,6 +626,8 @@
 		return -EOPNOTSUPP;
 	if (netdev_uc_count(priv->dev) >= priv->hw->unicast_filter_entries)
 		return -EOPNOTSUPP;
+	if (netdev_mc_count(priv->dev) >= priv->hw->multicast_filter_bins)
+		return -EOPNOTSUPP;
 
 	while (--tries) {
 		/* We only need to check the mc_addr for collisions */
@@ -666,6 +670,8 @@
 
 	if (stmmac_filter_check(priv))
 		return -EOPNOTSUPP;
+	if (netdev_uc_count(priv->dev) >= priv->hw->unicast_filter_entries)
+		return -EOPNOTSUPP;
 	if (netdev_mc_count(priv->dev) >= priv->hw->multicast_filter_bins)
 		return -EOPNOTSUPP;
 
@@ -710,7 +716,7 @@
 	struct ethhdr *ehdr;
 
 	ehdr = (struct ethhdr *)skb_mac_header(skb);
-	if (!ether_addr_equal(ehdr->h_source, orig_ndev->dev_addr))
+	if (!ether_addr_equal_unaligned(ehdr->h_source, orig_ndev->dev_addr))
 		goto out;
 	if (ehdr->h_proto != htons(ETH_P_PAUSE))
 		goto out;
@@ -847,12 +853,16 @@
 	if (tpriv->vlan_id) {
 		if (skb->vlan_proto != htons(proto))
 			goto out;
-		if (skb->vlan_tci != tpriv->vlan_id)
+		if (skb->vlan_tci != tpriv->vlan_id) {
+			/* Means filter did not work. */
+			tpriv->ok = false;
+			complete(&tpriv->comp);
 			goto out;
+		}
 	}
 
 	ehdr = (struct ethhdr *)skb_mac_header(skb);
-	if (!ether_addr_equal(ehdr->h_dest, tpriv->packet->dst))
+	if (!ether_addr_equal_unaligned(ehdr->h_dest, tpriv->packet->dst))
 		goto out;
 
 	ihdr = ip_hdr(skb);
@@ -1287,16 +1297,19 @@
 	struct stmmac_packet_attrs attr = { };
 	struct flow_dissector *dissector;
 	struct flow_cls_offload *cls;
+	int ret, old_enable = 0;
 	struct flow_rule *rule;
-	int ret;
 
 	if (!tc_can_offload(priv->dev))
 		return -EOPNOTSUPP;
 	if (!priv->dma_cap.l3l4fnum)
 		return -EOPNOTSUPP;
-	if (priv->rss.enable)
+	if (priv->rss.enable) {
+		old_enable = priv->rss.enable;
+		priv->rss.enable = false;
 		stmmac_rss_configure(priv, priv->hw, NULL,
 				     priv->plat->rx_queues_to_use);
+	}
 
 	dissector = kzalloc(sizeof(*dissector), GFP_KERNEL);
 	if (!dissector) {
@@ -1363,7 +1376,8 @@
 cleanup_dissector:
 	kfree(dissector);
 cleanup_rss:
-	if (priv->rss.enable) {
+	if (old_enable) {
+		priv->rss.enable = old_enable;
 		stmmac_rss_configure(priv, priv->hw, &priv->rss,
 				     priv->plat->rx_queues_to_use);
 	}
@@ -1408,16 +1422,19 @@
 	struct stmmac_packet_attrs attr = { };
 	struct flow_dissector *dissector;
 	struct flow_cls_offload *cls;
+	int ret, old_enable = 0;
 	struct flow_rule *rule;
-	int ret;
 
 	if (!tc_can_offload(priv->dev))
 		return -EOPNOTSUPP;
 	if (!priv->dma_cap.l3l4fnum)
 		return -EOPNOTSUPP;
-	if (priv->rss.enable)
+	if (priv->rss.enable) {
+		old_enable = priv->rss.enable;
+		priv->rss.enable = false;
 		stmmac_rss_configure(priv, priv->hw, NULL,
 				     priv->plat->rx_queues_to_use);
+	}
 
 	dissector = kzalloc(sizeof(*dissector), GFP_KERNEL);
 	if (!dissector) {
@@ -1489,7 +1506,8 @@
 cleanup_dissector:
 	kfree(dissector);
 cleanup_rss:
-	if (priv->rss.enable) {
+	if (old_enable) {
+		priv->rss.enable = old_enable;
 		stmmac_rss_configure(priv, priv->hw, &priv->rss,
 				     priv->plat->rx_queues_to_use);
 	}
@@ -1542,7 +1560,7 @@
 	struct arphdr *ahdr;
 
 	ehdr = (struct ethhdr *)skb_mac_header(skb);
-	if (!ether_addr_equal(ehdr->h_dest, tpriv->packet->src))
+	if (!ether_addr_equal_unaligned(ehdr->h_dest, tpriv->packet->src))
 		goto out;
 
 	ahdr = arp_hdr(skb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
@@ -332,7 +332,12 @@
 
 		priv->plat->tx_queues_cfg[queue].mode_to_use = MTL_QUEUE_AVB;
 	} else if (!qopt->enable) {
-		return stmmac_dma_qmode(priv, priv->ioaddr, queue, MTL_QUEUE_DCB);
+		ret = stmmac_dma_qmode(priv, priv->ioaddr, queue,
+				       MTL_QUEUE_DCB);
+		if (ret)
+			return ret;
+
+		priv->plat->tx_queues_cfg[queue].mode_to_use = MTL_QUEUE_DCB;
 	}
 
 	/* Port Transmit Rate and Speed Divider */
@@ -579,6 +584,10 @@
 {
 	int ret = 0;
 
+	/* When RSS is enabled, the filtering will be bypassed */
+	if (priv->rss.enable)
+		return -EBUSY;
+
 	switch (cls->command) {
 	case FLOW_CLS_REPLACE:
 		ret = tc_add_flow(priv, cls);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/sun/cassini.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/sun/cassini.c
@@ -4971,7 +4971,7 @@
 					  cas_cacheline_size)) {
 			dev_err(&pdev->dev, "Could not set PCI cache "
 			       "line size\n");
-			goto err_write_cacheline;
+			goto err_out_free_res;
 		}
 	}
 #endif
@@ -5144,7 +5144,6 @@
 err_out_free_res:
 	pci_release_regions(pdev);
 
-err_write_cacheline:
 	/* Try to restore it in case the error occurred after we
 	 * set it.
 	 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/sun/sunvnet_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/sun/sunvnet_common.c
@@ -1353,27 +1353,12 @@
 		if (vio_version_after_eq(&port->vio, 1, 3))
 			localmtu -= VLAN_HLEN;
 
-		if (skb->protocol == htons(ETH_P_IP)) {
-			struct flowi4 fl4;
-			struct rtable *rt = NULL;
-
-			memset(&fl4, 0, sizeof(fl4));
-			fl4.flowi4_oif = dev->ifindex;
-			fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos);
-			fl4.daddr = ip_hdr(skb)->daddr;
-			fl4.saddr = ip_hdr(skb)->saddr;
-
-			rt = ip_route_output_key(dev_net(dev), &fl4);
-			if (!IS_ERR(rt)) {
-				skb_dst_set(skb, &rt->dst);
-				icmp_send(skb, ICMP_DEST_UNREACH,
-					  ICMP_FRAG_NEEDED,
-					  htonl(localmtu));
-			}
-		}
+		if (skb->protocol == htons(ETH_P_IP))
+			icmp_ndo_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
+				      htonl(localmtu));
 #if IS_ENABLED(CONFIG_IPV6)
 		else if (skb->protocol == htons(ETH_P_IPV6))
-			icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, localmtu);
+			icmpv6_ndo_send(skb, ICMPV6_PKT_TOOBIG, 0, localmtu);
 #endif
 		goto out_dropped;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ti/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ti/Kconfig
@@ -22,6 +22,7 @@
 	depends on ARM && ( ARCH_DAVINCI || ARCH_OMAP3 ) || COMPILE_TEST
 	select TI_DAVINCI_MDIO
 	select PHYLIB
+	select GENERIC_ALLOCATOR
 	---help---
 	  This driver supports TI's DaVinci Ethernet .
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ti/cpsw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ti/cpsw.c
@@ -890,8 +890,8 @@
 {
 	struct cpsw_common *cpsw = dev_id;
 
-	cpdma_ctlr_eoi(cpsw->dma, CPDMA_EOI_RX);
 	writel(0, &cpsw->wr_regs->rx_en);
+	cpdma_ctlr_eoi(cpsw->dma, CPDMA_EOI_RX);
 
 	if (cpsw->quirk_irq) {
 		disable_irq_nosync(cpsw->irqs_table[0]);
@@ -2209,7 +2209,7 @@
 				  HOST_PORT_NUM, ALE_VLAN, vid);
 	ret |= cpsw_ale_del_mcast(cpsw->ale, priv->ndev->broadcast,
 				  0, ALE_VLAN, vid);
-	ret |= cpsw_ale_flush_multicast(cpsw->ale, 0, vid);
+	ret |= cpsw_ale_flush_multicast(cpsw->ale, ALE_PORT_HOST, vid);
 err:
 	pm_runtime_put(cpsw->dev);
 	return ret;
@@ -2876,6 +2876,7 @@
 				       CPSW_MAX_QUEUES, CPSW_MAX_QUEUES);
 	if (!ndev) {
 		dev_err(dev, "error allocating net_device\n");
+		ret = -ENOMEM;
 		goto clean_cpts;
 	}
 
@@ -2999,11 +3000,15 @@
 	struct cpsw_common *cpsw = dev_get_drvdata(dev);
 	int i;
 
+	rtnl_lock();
+
 	for (i = 0; i < cpsw->data.slaves; i++)
 		if (cpsw->slaves[i].ndev)
 			if (netif_running(cpsw->slaves[i].ndev))
 				cpsw_ndo_stop(cpsw->slaves[i].ndev);
 
+	rtnl_unlock();
+
 	/* Select sleep pin state */
 	pinctrl_pm_select_sleep_state(dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ti/cpsw_ale.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ti/cpsw_ale.c
@@ -779,6 +779,7 @@
 void cpsw_ale_stop(struct cpsw_ale *ale)
 {
 	del_timer_sync(&ale->timer);
+	cpsw_ale_control_set(ale, 0, ALE_CLEAR, 1);
 	cpsw_ale_control_set(ale, 0, ALE_ENABLE, 0);
 }
 
@@ -862,6 +863,7 @@
 					ALE_UNKNOWNVLAN_FORCE_UNTAG_EGRESS;
 	}
 
+	cpsw_ale_control_set(ale, 0, ALE_CLEAR, 1);
 	return ale;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ti/cpts.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ti/cpts.c
@@ -485,6 +485,7 @@
 
 	ptp_clock_unregister(cpts->clock);
 	cpts->clock = NULL;
+	cpts->phc_index = -1;
 
 	cpts_write32(cpts, 0, int_enable);
 	cpts_write32(cpts, 0, control);
@@ -667,6 +668,7 @@
 	cpts->cc.read = cpts_systim_read;
 	cpts->cc.mask = CLOCKSOURCE_MASK(32);
 	cpts->info = cpts_info;
+	cpts->phc_index = -1;
 
 	cpts_calc_mult_shift(cpts);
 	/* save cc.mult original value as it can be modified
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ti/davinci_cpdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ti/davinci_cpdma.c
@@ -1018,7 +1018,6 @@
 	struct cpdma_chan		*chan = si->chan;
 	struct cpdma_ctlr		*ctlr = chan->ctlr;
 	int				len = si->len;
-	int				swlen = len;
 	struct cpdma_desc __iomem	*desc;
 	dma_addr_t			buffer;
 	u32				mode;
@@ -1046,7 +1045,6 @@
 	if (si->data_dma) {
 		buffer = si->data_dma;
 		dma_sync_single_for_device(ctlr->dev, buffer, len, chan->dir);
-		swlen |= CPDMA_DMA_EXT_MAP;
 	} else {
 		buffer = dma_map_single(ctlr->dev, si->data_virt, len, chan->dir);
 		ret = dma_mapping_error(ctlr->dev, buffer);
@@ -1065,7 +1063,8 @@
 	writel_relaxed(mode | len, &desc->hw_mode);
 	writel_relaxed((uintptr_t)si->token, &desc->sw_token);
 	writel_relaxed(buffer, &desc->sw_buffer);
-	writel_relaxed(swlen, &desc->sw_len);
+	writel_relaxed(si->data_dma ? len | CPDMA_DMA_EXT_MAP : len,
+		       &desc->sw_len);
 	desc_read(desc, sw_len);
 
 	__cpdma_chan_submit(chan, desc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/ti/davinci_mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/ti/davinci_mdio.c
@@ -397,6 +397,8 @@
 	data->dev = dev;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -EINVAL;
 	data->regs = devm_ioremap(dev, res->start, resource_size(res));
 	if (!data->regs)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/toshiba/spider_net.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/toshiba/spider_net.c
@@ -283,8 +283,8 @@
 		descr = descr->next;
 	} while (descr != chain->ring);
 
-	dma_free_coherent(&card->pdev->dev, chain->num_desc,
-	    chain->hwring, chain->dma_addr);
+	dma_free_coherent(&card->pdev->dev, chain->num_desc * sizeof(struct spider_net_hw_descr),
+			  chain->hwring, chain->dma_addr);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/toshiba/tc35815.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/toshiba/tc35815.c
@@ -644,7 +644,7 @@
 		linkmode_set_bit(ETHTOOL_LINK_MODE_10baseT_Half_BIT, mask);
 		linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Half_BIT, mask);
 	}
-	linkmode_and(phydev->supported, phydev->supported, mask);
+	linkmode_andnot(phydev->supported, phydev->supported, mask);
 	linkmode_copy(phydev->advertising, phydev->supported);
 
 	lp->link = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/xilinx/ll_temac.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/xilinx/ll_temac.h
@@ -375,10 +375,14 @@
 	int tx_bd_next;
 	int tx_bd_tail;
 	int rx_bd_ci;
+	int rx_bd_tail;
 
 	/* DMA channel control setup */
 	u32 tx_chnl_ctrl;
 	u32 rx_chnl_ctrl;
+	u8 coalesce_count_rx;
+
+	struct delayed_work restart_work;
 };
 
 /* Wrappers for temac_ior()/temac_iow() function pointers above */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/xilinx/ll_temac_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/xilinx/ll_temac_main.c
@@ -51,6 +51,7 @@
 #include <linux/ip.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
+#include <linux/workqueue.h>
 #include <linux/dma-mapping.h>
 #include <linux/processor.h>
 #include <linux/platform_data/xilinx-ll-temac.h>
@@ -102,7 +103,7 @@
  */
 #define HARD_ACS_RDY_POLL_NS (20 * NSEC_PER_MSEC)
 
-/**
+/*
  * temac_indirect_busywait - Wait for current indirect register access
  * to complete.
  */
@@ -117,7 +118,7 @@
 		return 0;
 }
 
-/**
+/*
  * temac_indirect_in32 - Indirect register read access.  This function
  * must be called without lp->indirect_lock being held.
  */
@@ -132,7 +133,7 @@
 	return val;
 }
 
-/**
+/*
  * temac_indirect_in32_locked - Indirect register read access.  This
  * function must be called with lp->indirect_lock being held.  Use
  * this together with spin_lock_irqsave/spin_lock_irqrestore to avoid
@@ -160,7 +161,7 @@
 	return temac_ior(lp, XTE_LSW0_OFFSET);
 }
 
-/**
+/*
  * temac_indirect_out32 - Indirect register write access.  This function
  * must be called without lp->indirect_lock being held.
  */
@@ -173,7 +174,7 @@
 	spin_unlock_irqrestore(lp->indirect_lock, flags);
 }
 
-/**
+/*
  * temac_indirect_out32_locked - Indirect register write access.  This
  * function must be called with lp->indirect_lock being held.  Use
  * this together with spin_lock_irqsave/spin_lock_irqrestore to avoid
@@ -198,7 +199,7 @@
 	WARN_ON(temac_indirect_busywait(lp));
 }
 
-/**
+/*
  * temac_dma_in32_* - Memory mapped DMA read, these function expects a
  * register input that is based on DCR word addresses which are then
  * converted to memory mapped byte addresses.  To be assigned to
@@ -214,7 +215,7 @@
 	return ioread32(lp->sdma_regs + (reg << 2));
 }
 
-/**
+/*
  * temac_dma_out32_* - Memory mapped DMA read, these function expects
  * a register input that is based on DCR word addresses which are then
  * converted to memory mapped byte addresses.  To be assigned to
@@ -236,7 +237,7 @@
  */
 #ifdef CONFIG_PPC_DCR
 
-/**
+/*
  * temac_dma_dcr_in32 - DCR based DMA read
  */
 static u32 temac_dma_dcr_in(struct temac_local *lp, int reg)
@@ -244,7 +245,7 @@
 	return dcr_read(lp->sdma_dcrs, reg);
 }
 
-/**
+/*
  * temac_dma_dcr_out32 - DCR based DMA write
  */
 static void temac_dma_dcr_out(struct temac_local *lp, int reg, u32 value)
@@ -252,7 +253,7 @@
 	dcr_write(lp->sdma_dcrs, reg, value);
 }
 
-/**
+/*
  * temac_dcr_setup - If the DMA is DCR based, then setup the address and
  * I/O  functions
  */
@@ -289,7 +290,7 @@
 
 #endif
 
-/**
+/*
  * temac_dma_bd_release - Release buffer descriptor rings
  */
 static void temac_dma_bd_release(struct net_device *ndev)
@@ -319,7 +320,7 @@
 				lp->tx_bd_v, lp->tx_bd_p);
 }
 
-/**
+/*
  * temac_dma_bd_init - Setup buffer descriptor rings
  */
 static int temac_dma_bd_init(struct net_device *ndev)
@@ -367,6 +368,8 @@
 		skb_dma_addr = dma_map_single(ndev->dev.parent, skb->data,
 					      XTE_MAX_JUMBO_FRAME_SIZE,
 					      DMA_FROM_DEVICE);
+		if (dma_mapping_error(ndev->dev.parent, skb_dma_addr))
+			goto out;
 		lp->rx_bd_v[i].phys = cpu_to_be32(skb_dma_addr);
 		lp->rx_bd_v[i].len = cpu_to_be32(XTE_MAX_JUMBO_FRAME_SIZE);
 		lp->rx_bd_v[i].app0 = cpu_to_be32(STS_CTRL_APP0_IRQONEND);
@@ -387,12 +390,13 @@
 	lp->tx_bd_next = 0;
 	lp->tx_bd_tail = 0;
 	lp->rx_bd_ci = 0;
+	lp->rx_bd_tail = RX_BD_NUM - 1;
 
 	/* Enable RX DMA transfers */
 	wmb();
 	lp->dma_out(lp, RX_CURDESC_PTR,  lp->rx_bd_p);
 	lp->dma_out(lp, RX_TAILDESC_PTR,
-		       lp->rx_bd_p + (sizeof(*lp->rx_bd_v) * (RX_BD_NUM - 1)));
+		       lp->rx_bd_p + (sizeof(*lp->rx_bd_v) * lp->rx_bd_tail));
 
 	/* Prepare for TX DMA transfer */
 	lp->dma_out(lp, TX_CURDESC_PTR, lp->tx_bd_p);
@@ -585,7 +589,7 @@
 	{}
 };
 
-/**
+/*
  * temac_setoptions
  */
 static u32 temac_setoptions(struct net_device *ndev, u32 options)
@@ -788,6 +792,9 @@
 		stat = be32_to_cpu(cur_p->app0);
 	}
 
+	/* Matches barrier in temac_start_xmit */
+	smp_mb();
+
 	netif_wake_queue(ndev);
 }
 
@@ -830,9 +837,19 @@
 	cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
 
 	if (temac_check_tx_bd_space(lp, num_frag + 1)) {
-		if (!netif_queue_stopped(ndev))
-			netif_stop_queue(ndev);
-		return NETDEV_TX_BUSY;
+		if (netif_queue_stopped(ndev))
+			return NETDEV_TX_BUSY;
+
+		netif_stop_queue(ndev);
+
+		/* Matches barrier in temac_start_xmit_done */
+		smp_mb();
+
+		/* Space might have just been freed - check again */
+		if (temac_check_tx_bd_space(lp, num_frag))
+			return NETDEV_TX_BUSY;
+
+		netif_wake_queue(ndev);
 	}
 
 	cur_p->app0 = 0;
@@ -850,12 +867,16 @@
 	skb_dma_addr = dma_map_single(ndev->dev.parent, skb->data,
 				      skb_headlen(skb), DMA_TO_DEVICE);
 	cur_p->len = cpu_to_be32(skb_headlen(skb));
+	if (WARN_ON_ONCE(dma_mapping_error(ndev->dev.parent, skb_dma_addr))) {
+		dev_kfree_skb_any(skb);
+		ndev->stats.tx_dropped++;
+		return NETDEV_TX_OK;
+	}
 	cur_p->phys = cpu_to_be32(skb_dma_addr);
 	ptr_to_txbd((void *)skb, cur_p);
 
 	for (ii = 0; ii < num_frag; ii++) {
-		lp->tx_bd_tail++;
-		if (lp->tx_bd_tail >= TX_BD_NUM)
+		if (++lp->tx_bd_tail >= TX_BD_NUM)
 			lp->tx_bd_tail = 0;
 
 		cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
@@ -863,6 +884,27 @@
 					      skb_frag_address(frag),
 					      skb_frag_size(frag),
 					      DMA_TO_DEVICE);
+		if (dma_mapping_error(ndev->dev.parent, skb_dma_addr)) {
+			if (--lp->tx_bd_tail < 0)
+				lp->tx_bd_tail = TX_BD_NUM - 1;
+			cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
+			while (--ii >= 0) {
+				--frag;
+				dma_unmap_single(ndev->dev.parent,
+						 be32_to_cpu(cur_p->phys),
+						 skb_frag_size(frag),
+						 DMA_TO_DEVICE);
+				if (--lp->tx_bd_tail < 0)
+					lp->tx_bd_tail = TX_BD_NUM - 1;
+				cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
+			}
+			dma_unmap_single(ndev->dev.parent,
+					 be32_to_cpu(cur_p->phys),
+					 skb_headlen(skb), DMA_TO_DEVICE);
+			dev_kfree_skb_any(skb);
+			ndev->stats.tx_dropped++;
+			return NETDEV_TX_OK;
+		}
 		cur_p->phys = cpu_to_be32(skb_dma_addr);
 		cur_p->len = cpu_to_be32(skb_frag_size(frag));
 		cur_p->app0 = 0;
@@ -884,31 +926,56 @@
 	return NETDEV_TX_OK;
 }
 
+static int ll_temac_recv_buffers_available(struct temac_local *lp)
+{
+	int available;
+
+	if (!lp->rx_skb[lp->rx_bd_ci])
+		return 0;
+	available = 1 + lp->rx_bd_tail - lp->rx_bd_ci;
+	if (available <= 0)
+		available += RX_BD_NUM;
+	return available;
+}
 
 static void ll_temac_recv(struct net_device *ndev)
 {
 	struct temac_local *lp = netdev_priv(ndev);
-	struct sk_buff *skb, *new_skb;
-	unsigned int bdstat;
-	struct cdmac_bd *cur_p;
-	dma_addr_t tail_p, skb_dma_addr;
-	int length;
 	unsigned long flags;
+	int rx_bd;
+	bool update_tail = false;
 
 	spin_lock_irqsave(&lp->rx_lock, flags);
 
-	tail_p = lp->rx_bd_p + sizeof(*lp->rx_bd_v) * lp->rx_bd_ci;
-	cur_p = &lp->rx_bd_v[lp->rx_bd_ci];
-
-	bdstat = be32_to_cpu(cur_p->app0);
-	while ((bdstat & STS_CTRL_APP0_CMPLT)) {
+	/* Process all received buffers, passing them on network
+	 * stack.  After this, the buffer descriptors will be in an
+	 * un-allocated stage, where no skb is allocated for it, and
+	 * they are therefore not available for TEMAC/DMA.
+	 */
+	do {
+		struct cdmac_bd *bd = &lp->rx_bd_v[lp->rx_bd_ci];
+		struct sk_buff *skb = lp->rx_skb[lp->rx_bd_ci];
+		unsigned int bdstat = be32_to_cpu(bd->app0);
+		int length;
+
+		/* While this should not normally happen, we can end
+		 * here when GFP_ATOMIC allocations fail, and we
+		 * therefore have un-allocated buffers.
+		 */
+		if (!skb)
+			break;
 
-		skb = lp->rx_skb[lp->rx_bd_ci];
-		length = be32_to_cpu(cur_p->app4) & 0x3FFF;
+		/* Loop over all completed buffer descriptors */
+		if (!(bdstat & STS_CTRL_APP0_CMPLT))
+			break;
 
-		dma_unmap_single(ndev->dev.parent, be32_to_cpu(cur_p->phys),
+		dma_unmap_single(ndev->dev.parent, be32_to_cpu(bd->phys),
 				 XTE_MAX_JUMBO_FRAME_SIZE, DMA_FROM_DEVICE);
+		/* The buffer is not valid for DMA anymore */
+		bd->phys = 0;
+		bd->len = 0;
 
+		length = be32_to_cpu(bd->app4) & 0x3FFF;
 		skb_put(skb, length);
 		skb->protocol = eth_type_trans(skb, ndev);
 		skb_checksum_none_assert(skb);
@@ -923,43 +990,102 @@
 			 * (back) for proper IP checksum byte order
 			 * (be16).
 			 */
-			skb->csum = htons(be32_to_cpu(cur_p->app3) & 0xFFFF);
+			skb->csum = htons(be32_to_cpu(bd->app3) & 0xFFFF);
 			skb->ip_summed = CHECKSUM_COMPLETE;
 		}
 
 		if (!skb_defer_rx_timestamp(skb))
 			netif_rx(skb);
+		/* The skb buffer is now owned by network stack above */
+		lp->rx_skb[lp->rx_bd_ci] = NULL;
 
 		ndev->stats.rx_packets++;
 		ndev->stats.rx_bytes += length;
 
-		new_skb = netdev_alloc_skb_ip_align(ndev,
-						XTE_MAX_JUMBO_FRAME_SIZE);
-		if (!new_skb) {
-			spin_unlock_irqrestore(&lp->rx_lock, flags);
-			return;
+		rx_bd = lp->rx_bd_ci;
+		if (++lp->rx_bd_ci >= RX_BD_NUM)
+			lp->rx_bd_ci = 0;
+	} while (rx_bd != lp->rx_bd_tail);
+
+	/* DMA operations will halt when the last buffer descriptor is
+	 * processed (ie. the one pointed to by RX_TAILDESC_PTR).
+	 * When that happens, no more interrupt events will be
+	 * generated.  No IRQ_COAL or IRQ_DLY, and not even an
+	 * IRQ_ERR.  To avoid stalling, we schedule a delayed work
+	 * when there is a potential risk of that happening.  The work
+	 * will call this function, and thus re-schedule itself until
+	 * enough buffers are available again.
+	 */
+	if (ll_temac_recv_buffers_available(lp) < lp->coalesce_count_rx)
+		schedule_delayed_work(&lp->restart_work, HZ / 1000);
+
+	/* Allocate new buffers for those buffer descriptors that were
+	 * passed to network stack.  Note that GFP_ATOMIC allocations
+	 * can fail (e.g. when a larger burst of GFP_ATOMIC
+	 * allocations occurs), so while we try to allocate all
+	 * buffers in the same interrupt where they were processed, we
+	 * continue with what we could get in case of allocation
+	 * failure.  Allocation of remaining buffers will be retried
+	 * in following calls.
+	 */
+	while (1) {
+		struct sk_buff *skb;
+		struct cdmac_bd *bd;
+		dma_addr_t skb_dma_addr;
+
+		rx_bd = lp->rx_bd_tail + 1;
+		if (rx_bd >= RX_BD_NUM)
+			rx_bd = 0;
+		bd = &lp->rx_bd_v[rx_bd];
+
+		if (bd->phys)
+			break;	/* All skb's allocated */
+
+		skb = netdev_alloc_skb_ip_align(ndev, XTE_MAX_JUMBO_FRAME_SIZE);
+		if (!skb) {
+			dev_warn(&ndev->dev, "skb alloc failed\n");
+			break;
 		}
 
-		cur_p->app0 = cpu_to_be32(STS_CTRL_APP0_IRQONEND);
-		skb_dma_addr = dma_map_single(ndev->dev.parent, new_skb->data,
+		skb_dma_addr = dma_map_single(ndev->dev.parent, skb->data,
 					      XTE_MAX_JUMBO_FRAME_SIZE,
 					      DMA_FROM_DEVICE);
-		cur_p->phys = cpu_to_be32(skb_dma_addr);
-		cur_p->len = cpu_to_be32(XTE_MAX_JUMBO_FRAME_SIZE);
-		lp->rx_skb[lp->rx_bd_ci] = new_skb;
+		if (WARN_ON_ONCE(dma_mapping_error(ndev->dev.parent,
+						   skb_dma_addr))) {
+			dev_kfree_skb_any(skb);
+			break;
+		}
 
-		lp->rx_bd_ci++;
-		if (lp->rx_bd_ci >= RX_BD_NUM)
-			lp->rx_bd_ci = 0;
+		bd->phys = cpu_to_be32(skb_dma_addr);
+		bd->len = cpu_to_be32(XTE_MAX_JUMBO_FRAME_SIZE);
+		bd->app0 = cpu_to_be32(STS_CTRL_APP0_IRQONEND);
+		lp->rx_skb[rx_bd] = skb;
+
+		lp->rx_bd_tail = rx_bd;
+		update_tail = true;
+	}
 
-		cur_p = &lp->rx_bd_v[lp->rx_bd_ci];
-		bdstat = be32_to_cpu(cur_p->app0);
+	/* Move tail pointer when buffers have been allocated */
+	if (update_tail) {
+		lp->dma_out(lp, RX_TAILDESC_PTR,
+			lp->rx_bd_p + sizeof(*lp->rx_bd_v) * lp->rx_bd_tail);
 	}
-	lp->dma_out(lp, RX_TAILDESC_PTR, tail_p);
 
 	spin_unlock_irqrestore(&lp->rx_lock, flags);
 }
 
+/* Function scheduled to ensure a restart in case of DMA halt
+ * condition caused by running out of buffer descriptors.
+ */
+static void ll_temac_restart_work_func(struct work_struct *work)
+{
+	struct temac_local *lp = container_of(work, struct temac_local,
+					      restart_work.work);
+	struct net_device *ndev = lp->ndev;
+
+	ll_temac_recv(ndev);
+}
+
 static irqreturn_t ll_temac_tx_irq(int irq, void *_ndev)
 {
 	struct net_device *ndev = _ndev;
@@ -1052,6 +1178,8 @@
 
 	dev_dbg(&ndev->dev, "temac_close()\n");
 
+	cancel_delayed_work_sync(&lp->restart_work);
+
 	free_irq(lp->tx_irq, ndev);
 	free_irq(lp->rx_irq, ndev);
 
@@ -1184,6 +1312,7 @@
 	lp->dev = &pdev->dev;
 	lp->options = XTE_OPTION_DEFAULTS;
 	spin_lock_init(&lp->rx_lock);
+	INIT_DELAYED_WORK(&lp->restart_work, ll_temac_restart_work_func);
 
 	/* Setup mutex for synchronization of indirect register access */
 	if (pdata) {
@@ -1290,14 +1419,13 @@
 		 */
 		lp->tx_chnl_ctrl = 0x10220000;
 		lp->rx_chnl_ctrl = 0xff070000;
+		lp->coalesce_count_rx = 0x07;
 
 		/* Finished with the DMA node; drop the reference */
 		of_node_put(dma_np);
 	} else if (pdata) {
 		/* 2nd memory resource specifies DMA registers */
-		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-		lp->sdma_regs = devm_ioremap_nocache(&pdev->dev, res->start,
-						     resource_size(res));
+		lp->sdma_regs = devm_platform_ioremap_resource(pdev, 1);
 		if (IS_ERR(lp->sdma_regs)) {
 			dev_err(&pdev->dev,
 				"could not map DMA registers\n");
@@ -1321,11 +1449,14 @@
 				(pdata->tx_irq_count << 16);
 		else
 			lp->tx_chnl_ctrl = 0x10220000;
-		if (pdata->rx_irq_timeout || pdata->rx_irq_count)
+		if (pdata->rx_irq_timeout || pdata->rx_irq_count) {
 			lp->rx_chnl_ctrl = (pdata->rx_irq_timeout << 24) |
 				(pdata->rx_irq_count << 16);
-		else
+			lp->coalesce_count_rx = pdata->rx_irq_count;
+		} else {
 			lp->rx_chnl_ctrl = 0xff070000;
+			lp->coalesce_count_rx = 0x07;
+		}
 	}
 
 	/* Error handle returned DMA RX and TX interrupts */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/xilinx/xilinx_axienet.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/xilinx/xilinx_axienet.h
@@ -435,7 +435,7 @@
 	void __iomem *regs;
 	void __iomem *dma_regs;
 
-	struct tasklet_struct dma_err_tasklet;
+	struct work_struct dma_err_task;
 
 	int tx_irq;
 	int rx_irq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -437,9 +437,10 @@
 	lp->options |= options;
 }
 
-static void __axienet_device_reset(struct axienet_local *lp)
+static int __axienet_device_reset(struct axienet_local *lp)
 {
 	u32 timeout;
+
 	/* Reset Axi DMA. This would reset Axi Ethernet core as well. The reset
 	 * process of Axi DMA takes a while to complete as all pending
 	 * commands/transfers will be flushed or completed during this
@@ -455,9 +456,11 @@
 		if (--timeout == 0) {
 			netdev_err(lp->ndev, "%s: DMA reset timeout!\n",
 				   __func__);
-			break;
+			return -ETIMEDOUT;
 		}
 	}
+
+	return 0;
 }
 
 /**
@@ -470,13 +473,17 @@
  * areconnected to Axi Ethernet reset lines, this in turn resets the Axi
  * Ethernet core. No separate hardware reset is done for the Axi Ethernet
  * core.
+ * Returns 0 on success or a negative error number otherwise.
  */
-static void axienet_device_reset(struct net_device *ndev)
+static int axienet_device_reset(struct net_device *ndev)
 {
 	u32 axienet_status;
 	struct axienet_local *lp = netdev_priv(ndev);
+	int ret;
 
-	__axienet_device_reset(lp);
+	ret = __axienet_device_reset(lp);
+	if (ret)
+		return ret;
 
 	lp->max_frm_size = XAE_MAX_VLAN_FRAME_SIZE;
 	lp->options |= XAE_OPTION_VLAN;
@@ -491,9 +498,11 @@
 			lp->options |= XAE_OPTION_JUMBO;
 	}
 
-	if (axienet_dma_bd_init(ndev)) {
+	ret = axienet_dma_bd_init(ndev);
+	if (ret) {
 		netdev_err(ndev, "%s: descriptor allocation failed\n",
 			   __func__);
+		return ret;
 	}
 
 	axienet_status = axienet_ior(lp, XAE_RCW1_OFFSET);
@@ -518,6 +527,8 @@
 	axienet_setoptions(ndev, lp->options);
 
 	netif_trans_update(ndev);
+
+	return 0;
 }
 
 /**
@@ -806,7 +817,7 @@
 		/* Write to the Rx channel control register */
 		axienet_dma_out32(lp, XAXIDMA_RX_CR_OFFSET, cr);
 
-		tasklet_schedule(&lp->dma_err_tasklet);
+		schedule_work(&lp->dma_err_task);
 		axienet_dma_out32(lp, XAXIDMA_TX_SR_OFFSET, status);
 	}
 out:
@@ -855,7 +866,7 @@
 		/* write to the Rx channel control register */
 		axienet_dma_out32(lp, XAXIDMA_RX_CR_OFFSET, cr);
 
-		tasklet_schedule(&lp->dma_err_tasklet);
+		schedule_work(&lp->dma_err_task);
 		axienet_dma_out32(lp, XAXIDMA_RX_SR_OFFSET, status);
 	}
 out:
@@ -891,7 +902,7 @@
 	return IRQ_HANDLED;
 }
 
-static void axienet_dma_err_handler(unsigned long data);
+static void axienet_dma_err_handler(struct work_struct *work);
 
 /**
  * axienet_open - Driver open routine.
@@ -921,8 +932,9 @@
 	 */
 	mutex_lock(&lp->mii_bus->mdio_lock);
 	axienet_mdio_disable(lp);
-	axienet_device_reset(ndev);
-	ret = axienet_mdio_enable(lp);
+	ret = axienet_device_reset(ndev);
+	if (ret == 0)
+		ret = axienet_mdio_enable(lp);
 	mutex_unlock(&lp->mii_bus->mdio_lock);
 	if (ret < 0)
 		return ret;
@@ -935,9 +947,8 @@
 
 	phylink_start(lp->phylink);
 
-	/* Enable tasklets for Axi DMA error handling */
-	tasklet_init(&lp->dma_err_tasklet, axienet_dma_err_handler,
-		     (unsigned long) lp);
+	/* Enable worker thread for Axi DMA error handling */
+	INIT_WORK(&lp->dma_err_task, axienet_dma_err_handler);
 
 	/* Enable interrupts for Axi DMA Tx */
 	ret = request_irq(lp->tx_irq, axienet_tx_irq, IRQF_SHARED,
@@ -966,7 +977,7 @@
 err_tx_irq:
 	phylink_stop(lp->phylink);
 	phylink_disconnect_phy(lp->phylink);
-	tasklet_kill(&lp->dma_err_tasklet);
+	cancel_work_sync(&lp->dma_err_task);
 	dev_err(lp->dev, "request_irq() failed\n");
 	return ret;
 }
@@ -1025,7 +1036,7 @@
 	axienet_mdio_enable(lp);
 	mutex_unlock(&lp->mii_bus->mdio_lock);
 
-	tasklet_kill(&lp->dma_err_tasklet);
+	cancel_work_sync(&lp->dma_err_task);
 
 	if (lp->eth_irq > 0)
 		free_irq(lp->eth_irq, ndev);
@@ -1505,17 +1516,18 @@
 };
 
 /**
- * axienet_dma_err_handler - Tasklet handler for Axi DMA Error
- * @data:	Data passed
+ * axienet_dma_err_handler - Work queue task for Axi DMA Error
+ * @work:	pointer to work_struct
  *
  * Resets the Axi DMA and Axi Ethernet devices, and reconfigures the
  * Tx/Rx BDs.
  */
-static void axienet_dma_err_handler(unsigned long data)
+static void axienet_dma_err_handler(struct work_struct *work)
 {
 	u32 axienet_status;
 	u32 cr, i;
-	struct axienet_local *lp = (struct axienet_local *) data;
+	struct axienet_local *lp = container_of(work, struct axienet_local,
+						dma_err_task);
 	struct net_device *ndev = lp->ndev;
 	struct axidma_bd *cur_p;
 
@@ -1677,6 +1689,18 @@
 	lp->options = XAE_OPTION_DEFAULTS;
 	lp->rx_bd_num = RX_BD_NUM_DEFAULT;
 	lp->tx_bd_num = TX_BD_NUM_DEFAULT;
+
+	lp->clk = devm_clk_get_optional(&pdev->dev, NULL);
+	if (IS_ERR(lp->clk)) {
+		ret = PTR_ERR(lp->clk);
+		goto free_netdev;
+	}
+	ret = clk_prepare_enable(lp->clk);
+	if (ret) {
+		dev_err(&pdev->dev, "Unable to enable clock: %d\n", ret);
+		goto free_netdev;
+	}
+
 	/* Map device registers */
 	ethres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	lp->regs = devm_ioremap_resource(&pdev->dev, ethres);
@@ -1790,10 +1814,6 @@
 		/* Check for these resources directly on the Ethernet node. */
 		struct resource *res = platform_get_resource(pdev,
 							     IORESOURCE_MEM, 1);
-		if (!res) {
-			dev_err(&pdev->dev, "unable to get DMA memory resource\n");
-			goto free_netdev;
-		}
 		lp->dma_regs = devm_ioremap_resource(&pdev->dev, res);
 		lp->rx_irq = platform_get_irq(pdev, 1);
 		lp->tx_irq = platform_get_irq(pdev, 0);
@@ -1828,20 +1848,6 @@
 
 	lp->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
 	if (lp->phy_node) {
-		lp->clk = devm_clk_get(&pdev->dev, NULL);
-		if (IS_ERR(lp->clk)) {
-			dev_warn(&pdev->dev, "Failed to get clock: %ld\n",
-				 PTR_ERR(lp->clk));
-			lp->clk = NULL;
-		} else {
-			ret = clk_prepare_enable(lp->clk);
-			if (ret) {
-				dev_err(&pdev->dev, "Unable to enable clock: %d\n",
-					ret);
-				goto free_netdev;
-			}
-		}
-
 		ret = axienet_mdio_setup(lp);
 		if (ret)
 			dev_warn(&pdev->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ethernet/xscale/ixp4xx_eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ethernet/xscale/ixp4xx_eth.c
@@ -517,25 +517,14 @@
 	return ret;
 }
 
-static int ixp4xx_mdio_register(void)
+static int ixp4xx_mdio_register(struct eth_regs __iomem *regs)
 {
 	int err;
 
 	if (!(mdio_bus = mdiobus_alloc()))
 		return -ENOMEM;
 
-	if (cpu_is_ixp43x()) {
-		/* IXP43x lacks NPE-B and uses NPE-C for MII PHY access */
-		if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEC_ETH))
-			return -ENODEV;
-		mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT;
-	} else {
-		/* All MII PHY accesses use NPE-B Ethernet registers */
-		if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEB_ETH0))
-			return -ENODEV;
-		mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT;
-	}
-
+	mdio_regs = regs;
 	__raw_writel(DEFAULT_CORE_CNTRL, &mdio_regs->core_control);
 	spin_lock_init(&mdio_lock);
 	mdio_bus->name = "IXP4xx MII Bus";
@@ -1374,7 +1363,7 @@
 	.ndo_validate_addr = eth_validate_addr,
 };
 
-static int eth_init_one(struct platform_device *pdev)
+static int ixp4xx_eth_probe(struct platform_device *pdev)
 {
 	struct port *port;
 	struct net_device *dev;
@@ -1384,7 +1373,7 @@
 	char phy_id[MII_BUS_ID_SIZE + 3];
 	int err;
 
-	if (!(dev = alloc_etherdev(sizeof(struct port))))
+	if (!(dev = devm_alloc_etherdev(&pdev->dev, sizeof(struct port))))
 		return -ENOMEM;
 
 	SET_NETDEV_DEV(dev, &pdev->dev);
@@ -1394,20 +1383,51 @@
 
 	switch (port->id) {
 	case IXP4XX_ETH_NPEA:
+		/* If the MDIO bus is not up yet, defer probe */
+		if (!mdio_bus)
+			return -EPROBE_DEFER;
 		port->regs = (struct eth_regs __iomem *)IXP4XX_EthA_BASE_VIRT;
 		regs_phys  = IXP4XX_EthA_BASE_PHYS;
 		break;
 	case IXP4XX_ETH_NPEB:
+		/*
+		 * On all except IXP43x, NPE-B is used for the MDIO bus.
+		 * If there is no NPE-B in the feature set, bail out, else
+		 * register the MDIO bus.
+		 */
+		if (!cpu_is_ixp43x()) {
+			if (!(ixp4xx_read_feature_bits() &
+			      IXP4XX_FEATURE_NPEB_ETH0))
+				return -ENODEV;
+			/* Else register the MDIO bus on NPE-B */
+			if ((err = ixp4xx_mdio_register(IXP4XX_EthC_BASE_VIRT)))
+				return err;
+		}
+		if (!mdio_bus)
+			return -EPROBE_DEFER;
 		port->regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT;
 		regs_phys  = IXP4XX_EthB_BASE_PHYS;
 		break;
 	case IXP4XX_ETH_NPEC:
+		/*
+		 * IXP43x lacks NPE-B and uses NPE-C for the MDIO bus access,
+		 * of there is no NPE-C, no bus, nothing works, so bail out.
+		 */
+		if (cpu_is_ixp43x()) {
+			if (!(ixp4xx_read_feature_bits() &
+			      IXP4XX_FEATURE_NPEC_ETH))
+				return -ENODEV;
+			/* Else register the MDIO bus on NPE-C */
+			if ((err = ixp4xx_mdio_register(IXP4XX_EthC_BASE_VIRT)))
+				return err;
+		}
+		if (!mdio_bus)
+			return -EPROBE_DEFER;
 		port->regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT;
 		regs_phys  = IXP4XX_EthC_BASE_PHYS;
 		break;
 	default:
-		err = -ENODEV;
-		goto err_free;
+		return -ENODEV;
 	}
 
 	dev->netdev_ops = &ixp4xx_netdev_ops;
@@ -1416,10 +1436,8 @@
 
 	netif_napi_add(dev, &port->napi, eth_poll, NAPI_WEIGHT);
 
-	if (!(port->npe = npe_request(NPE_ID(port->id)))) {
-		err = -EIO;
-		goto err_free;
-	}
+	if (!(port->npe = npe_request(NPE_ID(port->id))))
+		return -EIO;
 
 	port->mem_res = request_mem_region(regs_phys, REGS_SIZE, dev->name);
 	if (!port->mem_res) {
@@ -1465,12 +1483,10 @@
 	release_resource(port->mem_res);
 err_npe_rel:
 	npe_release(port->npe);
-err_free:
-	free_netdev(dev);
 	return err;
 }
 
-static int eth_remove_one(struct platform_device *pdev)
+static int ixp4xx_eth_remove(struct platform_device *pdev)
 {
 	struct net_device *dev = platform_get_drvdata(pdev);
 	struct phy_device *phydev = dev->phydev;
@@ -1478,45 +1494,21 @@
 
 	unregister_netdev(dev);
 	phy_disconnect(phydev);
+	ixp4xx_mdio_remove();
 	npe_port_tab[NPE_ID(port->id)] = NULL;
 	npe_release(port->npe);
 	release_resource(port->mem_res);
-	free_netdev(dev);
 	return 0;
 }
 
 static struct platform_driver ixp4xx_eth_driver = {
 	.driver.name	= DRV_NAME,
-	.probe		= eth_init_one,
-	.remove		= eth_remove_one,
+	.probe		= ixp4xx_eth_probe,
+	.remove		= ixp4xx_eth_remove,
 };
-
-static int __init eth_init_module(void)
-{
-	int err;
-
-	/*
-	 * FIXME: we bail out on device tree boot but this really needs
-	 * to be fixed in a nicer way: this registers the MDIO bus before
-	 * even matching the driver infrastructure, we should only probe
-	 * detected hardware.
-	 */
-	if (of_have_populated_dt())
-		return -ENODEV;
-	if ((err = ixp4xx_mdio_register()))
-		return err;
-	return platform_driver_register(&ixp4xx_eth_driver);
-}
-
-static void __exit eth_cleanup_module(void)
-{
-	platform_driver_unregister(&ixp4xx_eth_driver);
-	ixp4xx_mdio_remove();
-}
+module_platform_driver(ixp4xx_eth_driver);
 
 MODULE_AUTHOR("Krzysztof Halasa");
 MODULE_DESCRIPTION("Intel IXP4xx Ethernet driver");
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS("platform:ixp4xx_eth");
-module_init(eth_init_module);
-module_exit(eth_cleanup_module);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/fjes/fjes_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/fjes/fjes_main.c
@@ -166,6 +166,9 @@
 	/* create platform_device */
 	plat_dev = platform_device_register_simple(DRV_NAME, 0, fjes_resource,
 						   ARRAY_SIZE(fjes_resource));
+	if (IS_ERR(plat_dev))
+		return PTR_ERR(plat_dev);
+
 	device->driver_data = plat_dev;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/geneve.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/geneve.c
@@ -221,8 +221,7 @@
 	if (ip_tunnel_collect_metadata() || gs->collect_md) {
 		__be16 flags;
 
-		flags = TUNNEL_KEY | TUNNEL_GENEVE_OPT |
-			(gnvh->oam ? TUNNEL_OAM : 0) |
+		flags = TUNNEL_KEY | (gnvh->oam ? TUNNEL_OAM : 0) |
 			(gnvh->critical ? TUNNEL_CRIT_OPT : 0);
 
 		tun_dst = udp_tun_rx_dst(skb, geneve_get_sk_family(gs), flags,
@@ -773,7 +772,8 @@
 				       struct net_device *dev,
 				       struct geneve_sock *gs4,
 				       struct flowi4 *fl4,
-				       const struct ip_tunnel_info *info)
+				       const struct ip_tunnel_info *info,
+				       __be16 dport, __be16 sport)
 {
 	bool use_cache = ip_tunnel_dst_cache_usable(skb, info);
 	struct geneve_dev *geneve = netdev_priv(dev);
@@ -789,6 +789,8 @@
 	fl4->flowi4_proto = IPPROTO_UDP;
 	fl4->daddr = info->key.u.ipv4.dst;
 	fl4->saddr = info->key.u.ipv4.src;
+	fl4->fl4_dport = dport;
+	fl4->fl4_sport = sport;
 
 	tos = info->key.tos;
 	if ((tos == 1) && !geneve->collect_md) {
@@ -823,7 +825,8 @@
 					   struct net_device *dev,
 					   struct geneve_sock *gs6,
 					   struct flowi6 *fl6,
-					   const struct ip_tunnel_info *info)
+					   const struct ip_tunnel_info *info,
+					   __be16 dport, __be16 sport)
 {
 	bool use_cache = ip_tunnel_dst_cache_usable(skb, info);
 	struct geneve_dev *geneve = netdev_priv(dev);
@@ -839,6 +842,9 @@
 	fl6->flowi6_proto = IPPROTO_UDP;
 	fl6->daddr = info->key.u.ipv6.dst;
 	fl6->saddr = info->key.u.ipv6.src;
+	fl6->fl6_dport = dport;
+	fl6->fl6_sport = sport;
+
 	prio = info->key.tos;
 	if ((prio == 1) && !geneve->collect_md) {
 		prio = ip_tunnel_get_dsfield(ip_hdr(skb), skb);
@@ -853,7 +859,9 @@
 		if (dst)
 			return dst;
 	}
-	if (ipv6_stub->ipv6_dst_lookup(geneve->net, gs6->sock->sk, &dst, fl6)) {
+	dst = ipv6_stub->ipv6_dst_lookup_flow(geneve->net, gs6->sock->sk, fl6,
+					      NULL);
+	if (IS_ERR(dst)) {
 		netdev_dbg(dev, "no route to %pI6\n", &fl6->daddr);
 		return ERR_PTR(-ENETUNREACH);
 	}
@@ -883,14 +891,15 @@
 	__be16 sport;
 	int err;
 
-	rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info);
+	sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
+	rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info,
+			      geneve->info.key.tp_dst, sport);
 	if (IS_ERR(rt))
 		return PTR_ERR(rt);
 
 	skb_tunnel_check_pmtu(skb, &rt->dst,
 			      GENEVE_IPV4_HLEN + info->options_len);
 
-	sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
 	if (geneve->collect_md) {
 		tos = ip_tunnel_ecn_encap(key->tos, ip_hdr(skb), skb);
 		ttl = key->ttl;
@@ -945,13 +954,14 @@
 	__be16 sport;
 	int err;
 
-	dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info);
+	sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
+	dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info,
+				geneve->info.key.tp_dst, sport);
 	if (IS_ERR(dst))
 		return PTR_ERR(dst);
 
 	skb_tunnel_check_pmtu(skb, dst, GENEVE_IPV6_HLEN + info->options_len);
 
-	sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
 	if (geneve->collect_md) {
 		prio = ip_tunnel_ecn_encap(key->tos, ip_hdr(skb), skb);
 		ttl = key->ttl;
@@ -985,9 +995,10 @@
 	if (geneve->collect_md) {
 		info = skb_tunnel_info(skb);
 		if (unlikely(!info || !(info->mode & IP_TUNNEL_INFO_TX))) {
-			err = -EINVAL;
 			netdev_dbg(dev, "no tunnel metadata\n");
-			goto tx_error;
+			dev_kfree_skb(skb);
+			dev->stats.tx_dropped++;
+			return NETDEV_TX_OK;
 		}
 	} else {
 		info = &geneve->info;
@@ -1004,7 +1015,7 @@
 
 	if (likely(!err))
 		return NETDEV_TX_OK;
-tx_error:
+
 	dev_kfree_skb(skb);
 
 	if (err == -ELOOP)
@@ -1031,13 +1042,18 @@
 {
 	struct ip_tunnel_info *info = skb_tunnel_info(skb);
 	struct geneve_dev *geneve = netdev_priv(dev);
+	__be16 sport;
 
 	if (ip_tunnel_info_af(info) == AF_INET) {
 		struct rtable *rt;
 		struct flowi4 fl4;
+
 		struct geneve_sock *gs4 = rcu_dereference(geneve->sock4);
+		sport = udp_flow_src_port(geneve->net, skb,
+					  1, USHRT_MAX, true);
 
-		rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info);
+		rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info,
+				      geneve->info.key.tp_dst, sport);
 		if (IS_ERR(rt))
 			return PTR_ERR(rt);
 
@@ -1047,9 +1063,13 @@
 	} else if (ip_tunnel_info_af(info) == AF_INET6) {
 		struct dst_entry *dst;
 		struct flowi6 fl6;
+
 		struct geneve_sock *gs6 = rcu_dereference(geneve->sock6);
+		sport = udp_flow_src_port(geneve->net, skb,
+					  1, USHRT_MAX, true);
 
-		dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info);
+		dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info,
+					geneve->info.key.tp_dst, sport);
 		if (IS_ERR(dst))
 			return PTR_ERR(dst);
 
@@ -1060,8 +1080,7 @@
 		return -EINVAL;
 	}
 
-	info->key.tp_src = udp_flow_src_port(geneve->net, skb,
-					     1, USHRT_MAX, true);
+	info->key.tp_src = sport;
 	info->key.tp_dst = geneve->info.key.tp_dst;
 	return 0;
 }
@@ -1205,7 +1224,7 @@
 		enum ifla_geneve_df df = nla_get_u8(data[IFLA_GENEVE_DF]);
 
 		if (df < 0 || df > GENEVE_DF_MAX) {
-			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_GENEVE_DF],
+			NL_SET_ERR_MSG_ATTR(extack, data[IFLA_GENEVE_DF],
 					    "Invalid DF attribute");
 			return -EINVAL;
 		}
@@ -1612,11 +1631,11 @@
 			     struct netlink_ext_ack *extack)
 {
 	struct geneve_dev *geneve = netdev_priv(dev);
+	enum ifla_geneve_df df = geneve->df;
 	struct geneve_sock *gs4, *gs6;
 	struct ip_tunnel_info info;
 	bool metadata;
 	bool use_udp6_rx_checksums;
-	enum ifla_geneve_df df;
 	bool ttl_inherit;
 	int err;
 
@@ -1646,6 +1665,7 @@
 	geneve->collect_md = metadata;
 	geneve->use_udp6_rx_checksums = use_udp6_rx_checksums;
 	geneve->ttl_inherit = ttl_inherit;
+	geneve->df = df;
 	geneve_unquiesce(geneve, gs4, gs6);
 
 	return 0;
@@ -1843,8 +1863,6 @@
 		if (!net_eq(dev_net(geneve->dev), net))
 			unregister_netdevice_queue(geneve->dev, head);
 	}
-
-	WARN_ON_ONCE(!list_empty(&gn->sock_list));
 }
 
 static void __net_exit geneve_exit_batch_net(struct list_head *net_list)
@@ -1859,6 +1877,12 @@
 	/* unregister the devices gathered above */
 	unregister_netdevice_many(&list);
 	rtnl_unlock();
+
+	list_for_each_entry(net, net_list, exit_list) {
+		const struct geneve_net *gn = net_generic(net, geneve_net_id);
+
+		WARN_ON_ONCE(!list_empty(&gn->sock_list));
+	}
 }
 
 static struct pernet_operations geneve_net_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/gtp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/gtp.c
@@ -38,7 +38,6 @@
 	struct hlist_node	hlist_addr;
 
 	union {
-		u64		tid;
 		struct {
 			u64	tid;
 			u16	flow;
@@ -541,14 +540,13 @@
 		mtu = dst_mtu(&rt->dst);
 	}
 
-	rt->dst.ops->update_pmtu(&rt->dst, NULL, skb, mtu);
+	rt->dst.ops->update_pmtu(&rt->dst, NULL, skb, mtu, false);
 
 	if (!skb_is_gso(skb) && (iph->frag_off & htons(IP_DF)) &&
 	    mtu < ntohs(iph->tot_len)) {
 		netdev_dbg(dev, "packet too big, fragmentation needed\n");
-		memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
-		icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
-			  htonl(mtu));
+		icmp_ndo_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
+			      htonl(mtu));
 		goto err_rt;
 	}
 
@@ -641,9 +639,16 @@
 }
 
 static int gtp_hashtable_new(struct gtp_dev *gtp, int hsize);
-static void gtp_hashtable_free(struct gtp_dev *gtp);
 static int gtp_encap_enable(struct gtp_dev *gtp, struct nlattr *data[]);
 
+static void gtp_destructor(struct net_device *dev)
+{
+	struct gtp_dev *gtp = netdev_priv(dev);
+
+	kfree(gtp->addr_hash);
+	kfree(gtp->tid_hash);
+}
+
 static int gtp_newlink(struct net *src_net, struct net_device *dev,
 		       struct nlattr *tb[], struct nlattr *data[],
 		       struct netlink_ext_ack *extack)
@@ -657,44 +662,54 @@
 
 	gtp = netdev_priv(dev);
 
-	err = gtp_encap_enable(gtp, data);
-	if (err < 0)
-		return err;
-
-	if (!data[IFLA_GTP_PDP_HASHSIZE])
+	if (!data[IFLA_GTP_PDP_HASHSIZE]) {
 		hashsize = 1024;
-	else
+	} else {
 		hashsize = nla_get_u32(data[IFLA_GTP_PDP_HASHSIZE]);
+		if (!hashsize)
+			hashsize = 1024;
+	}
 
 	err = gtp_hashtable_new(gtp, hashsize);
 	if (err < 0)
-		goto out_encap;
+		return err;
+
+	err = gtp_encap_enable(gtp, data);
+	if (err < 0)
+		goto out_hashtable;
 
 	err = register_netdevice(dev);
 	if (err < 0) {
 		netdev_dbg(dev, "failed to register new netdev %d\n", err);
-		goto out_hashtable;
+		goto out_encap;
 	}
 
 	gn = net_generic(dev_net(dev), gtp_net_id);
 	list_add_rcu(&gtp->list, &gn->gtp_dev_list);
+	dev->priv_destructor = gtp_destructor;
 
 	netdev_dbg(dev, "registered new GTP interface\n");
 
 	return 0;
 
-out_hashtable:
-	gtp_hashtable_free(gtp);
 out_encap:
 	gtp_encap_disable(gtp);
+out_hashtable:
+	kfree(gtp->addr_hash);
+	kfree(gtp->tid_hash);
 	return err;
 }
 
 static void gtp_dellink(struct net_device *dev, struct list_head *head)
 {
 	struct gtp_dev *gtp = netdev_priv(dev);
+	struct pdp_ctx *pctx;
+	int i;
+
+	for (i = 0; i < gtp->hash_size; i++)
+		hlist_for_each_entry_rcu(pctx, &gtp->tid_hash[i], hlist_tid)
+			pdp_context_delete(pctx);
 
-	gtp_hashtable_free(gtp);
 	list_del_rcu(&gtp->list);
 	unregister_netdevice_queue(dev, head);
 }
@@ -751,12 +766,12 @@
 	int i;
 
 	gtp->addr_hash = kmalloc_array(hsize, sizeof(struct hlist_head),
-				       GFP_KERNEL);
+				       GFP_KERNEL | __GFP_NOWARN);
 	if (gtp->addr_hash == NULL)
 		return -ENOMEM;
 
 	gtp->tid_hash = kmalloc_array(hsize, sizeof(struct hlist_head),
-				      GFP_KERNEL);
+				      GFP_KERNEL | __GFP_NOWARN);
 	if (gtp->tid_hash == NULL)
 		goto err1;
 
@@ -772,20 +787,6 @@
 	return -ENOMEM;
 }
 
-static void gtp_hashtable_free(struct gtp_dev *gtp)
-{
-	struct pdp_ctx *pctx;
-	int i;
-
-	for (i = 0; i < gtp->hash_size; i++)
-		hlist_for_each_entry_rcu(pctx, &gtp->tid_hash[i], hlist_tid)
-			pdp_context_delete(pctx);
-
-	synchronize_rcu();
-	kfree(gtp->addr_hash);
-	kfree(gtp->tid_hash);
-}
-
 static struct sock *gtp_encap_enable_socket(int fd, int type,
 					    struct gtp_dev *gtp)
 {
@@ -802,19 +803,21 @@
 		return NULL;
 	}
 
-	if (sock->sk->sk_protocol != IPPROTO_UDP) {
+	sk = sock->sk;
+	if (sk->sk_protocol != IPPROTO_UDP ||
+	    sk->sk_type != SOCK_DGRAM ||
+	    (sk->sk_family != AF_INET && sk->sk_family != AF_INET6)) {
 		pr_debug("socket fd=%d not UDP\n", fd);
 		sk = ERR_PTR(-EINVAL);
 		goto out_sock;
 	}
 
-	lock_sock(sock->sk);
-	if (sock->sk->sk_user_data) {
+	lock_sock(sk);
+	if (sk->sk_user_data) {
 		sk = ERR_PTR(-EBUSY);
-		goto out_sock;
+		goto out_rel_sock;
 	}
 
-	sk = sock->sk;
 	sock_hold(sk);
 
 	tuncfg.sk_user_data = gtp;
@@ -824,8 +827,9 @@
 
 	setup_udp_tunnel_sock(sock_net(sock->sk), sock, &tuncfg);
 
-out_sock:
+out_rel_sock:
 	release_sock(sock->sk);
+out_sock:
 	sockfd_put(sock);
 	return sk;
 }
@@ -926,24 +930,31 @@
 	}
 }
 
-static int ipv4_pdp_add(struct gtp_dev *gtp, struct sock *sk,
-			struct genl_info *info)
+static int gtp_pdp_add(struct gtp_dev *gtp, struct sock *sk,
+		       struct genl_info *info)
 {
+	struct pdp_ctx *pctx, *pctx_tid = NULL;
 	struct net_device *dev = gtp->dev;
 	u32 hash_ms, hash_tid = 0;
-	struct pdp_ctx *pctx;
+	unsigned int version;
 	bool found = false;
 	__be32 ms_addr;
 
 	ms_addr = nla_get_be32(info->attrs[GTPA_MS_ADDRESS]);
 	hash_ms = ipv4_hashfn(ms_addr) % gtp->hash_size;
+	version = nla_get_u32(info->attrs[GTPA_VERSION]);
 
-	hlist_for_each_entry_rcu(pctx, &gtp->addr_hash[hash_ms], hlist_addr) {
-		if (pctx->ms_addr_ip4.s_addr == ms_addr) {
-			found = true;
-			break;
-		}
-	}
+	pctx = ipv4_pdp_find(gtp, ms_addr);
+	if (pctx)
+		found = true;
+	if (version == GTP_V0)
+		pctx_tid = gtp0_pdp_find(gtp,
+					 nla_get_u64(info->attrs[GTPA_TID]));
+	else if (version == GTP_V1)
+		pctx_tid = gtp1_pdp_find(gtp,
+					 nla_get_u32(info->attrs[GTPA_I_TEI]));
+	if (pctx_tid)
+		found = true;
 
 	if (found) {
 		if (info->nlhdr->nlmsg_flags & NLM_F_EXCL)
@@ -951,6 +962,11 @@
 		if (info->nlhdr->nlmsg_flags & NLM_F_REPLACE)
 			return -EOPNOTSUPP;
 
+		if (pctx && pctx_tid)
+			return -EEXIST;
+		if (!pctx)
+			pctx = pctx_tid;
+
 		ipv4_pdp_fill(pctx, info);
 
 		if (pctx->gtp_version == GTP_V0)
@@ -1074,7 +1090,7 @@
 		goto out_unlock;
 	}
 
-	err = ipv4_pdp_add(gtp, sk, info);
+	err = gtp_pdp_add(gtp, sk, info);
 
 out_unlock:
 	rcu_read_unlock();
@@ -1155,16 +1171,17 @@
 static struct genl_family gtp_genl_family;
 
 static int gtp_genl_fill_info(struct sk_buff *skb, u32 snd_portid, u32 snd_seq,
-			      u32 type, struct pdp_ctx *pctx)
+			      int flags, u32 type, struct pdp_ctx *pctx)
 {
 	void *genlh;
 
-	genlh = genlmsg_put(skb, snd_portid, snd_seq, &gtp_genl_family, 0,
+	genlh = genlmsg_put(skb, snd_portid, snd_seq, &gtp_genl_family, flags,
 			    type);
 	if (genlh == NULL)
 		goto nlmsg_failure;
 
 	if (nla_put_u32(skb, GTPA_VERSION, pctx->gtp_version) ||
+	    nla_put_u32(skb, GTPA_LINK, pctx->dev->ifindex) ||
 	    nla_put_be32(skb, GTPA_PEER_ADDRESS, pctx->peer_addr_ip4.s_addr) ||
 	    nla_put_be32(skb, GTPA_MS_ADDRESS, pctx->ms_addr_ip4.s_addr))
 		goto nla_put_failure;
@@ -1213,8 +1230,8 @@
 		goto err_unlock;
 	}
 
-	err = gtp_genl_fill_info(skb2, NETLINK_CB(skb).portid,
-				 info->snd_seq, info->nlhdr->nlmsg_type, pctx);
+	err = gtp_genl_fill_info(skb2, NETLINK_CB(skb).portid, info->snd_seq,
+				 0, info->nlhdr->nlmsg_type, pctx);
 	if (err < 0)
 		goto err_unlock_free;
 
@@ -1232,43 +1249,47 @@
 				struct netlink_callback *cb)
 {
 	struct gtp_dev *last_gtp = (struct gtp_dev *)cb->args[2], *gtp;
+	int i, j, bucket = cb->args[0], skip = cb->args[1];
 	struct net *net = sock_net(skb->sk);
-	struct gtp_net *gn = net_generic(net, gtp_net_id);
-	unsigned long tid = cb->args[1];
-	int i, k = cb->args[0], ret;
 	struct pdp_ctx *pctx;
+	struct gtp_net *gn;
+
+	gn = net_generic(net, gtp_net_id);
 
 	if (cb->args[4])
 		return 0;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(gtp, &gn->gtp_dev_list, list) {
 		if (last_gtp && last_gtp != gtp)
 			continue;
 		else
 			last_gtp = NULL;
 
-		for (i = k; i < gtp->hash_size; i++) {
-			hlist_for_each_entry_rcu(pctx, &gtp->tid_hash[i], hlist_tid) {
-				if (tid && tid != pctx->u.tid)
-					continue;
-				else
-					tid = 0;
-
-				ret = gtp_genl_fill_info(skb,
-							 NETLINK_CB(cb->skb).portid,
-							 cb->nlh->nlmsg_seq,
-							 cb->nlh->nlmsg_type, pctx);
-				if (ret < 0) {
+		for (i = bucket; i < gtp->hash_size; i++) {
+			j = 0;
+			hlist_for_each_entry_rcu(pctx, &gtp->tid_hash[i],
+						 hlist_tid) {
+				if (j >= skip &&
+				    gtp_genl_fill_info(skb,
+					    NETLINK_CB(cb->skb).portid,
+					    cb->nlh->nlmsg_seq,
+					    NLM_F_MULTI,
+					    cb->nlh->nlmsg_type, pctx)) {
 					cb->args[0] = i;
-					cb->args[1] = pctx->u.tid;
+					cb->args[1] = j;
 					cb->args[2] = (unsigned long)gtp;
 					goto out;
 				}
+				j++;
 			}
+			skip = 0;
 		}
+		bucket = 0;
 	}
 	cb->args[4] = 1;
 out:
+	rcu_read_unlock();
 	return skb->len;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hamradio/6pack.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hamradio/6pack.c
@@ -654,10 +654,10 @@
 {
 	struct sixpack *sp;
 
-	write_lock_bh(&disc_data_lock);
+	write_lock_irq(&disc_data_lock);
 	sp = tty->disc_data;
 	tty->disc_data = NULL;
-	write_unlock_bh(&disc_data_lock);
+	write_unlock_irq(&disc_data_lock);
 	if (!sp)
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hamradio/bpqether.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hamradio/bpqether.c
@@ -127,7 +127,8 @@
 {
 	struct bpqdev *bpq;
 
-	list_for_each_entry_rcu(bpq, &bpq_devices, bpq_list) {
+	list_for_each_entry_rcu(bpq, &bpq_devices, bpq_list,
+				lockdep_rtnl_is_held()) {
 		if (bpq->ethdev == dev)
 			return bpq->axdev;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hamradio/mkiss.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hamradio/mkiss.c
@@ -773,10 +773,10 @@
 {
 	struct mkiss *ax;
 
-	write_lock_bh(&disc_data_lock);
+	write_lock_irq(&disc_data_lock);
 	ax = tty->disc_data;
 	tty->disc_data = NULL;
-	write_unlock_bh(&disc_data_lock);
+	write_unlock_irq(&disc_data_lock);
 
 	if (!ax)
 		return;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hamradio/yam.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hamradio/yam.c
@@ -1133,6 +1133,7 @@
 		err = register_netdev(dev);
 		if (err) {
 			printk(KERN_WARNING "yam: cannot register net device %s\n", dev->name);
+			free_netdev(dev);
 			goto error;
 		}
 		yam_devs[i] = dev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hippi/rrunner.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hippi/rrunner.c
@@ -1242,7 +1242,7 @@
 		rrpriv->info = NULL;
 	}
 	if (rrpriv->rx_ctrl) {
-		pci_free_consistent(pdev, sizeof(struct ring_ctrl),
+		pci_free_consistent(pdev, 256 * sizeof(struct ring_ctrl),
 				    rrpriv->rx_ctrl, rrpriv->rx_ctrl_dma);
 		rrpriv->rx_ctrl = NULL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hyperv/hyperv_net.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/hyperv/hyperv_net.h
@@ -169,7 +169,6 @@
 
 	u8 hw_mac_adr[ETH_ALEN];
 	u8 rss_key[NETVSC_HASH_KEYLEN];
-	u16 rx_table[ITAB_NUM];
 };
 
 
@@ -938,6 +937,8 @@
 
 	u32 tx_table[VRSS_SEND_TAB_SIZE];
 
+	u16 rx_table[ITAB_NUM];
+
 	/* Ethtool settings */
 	u8 duplex;
 	u32 speed;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hyperv/netvsc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hyperv/netvsc.c
@@ -99,7 +99,7 @@
 
 	init_waitqueue_head(&net_device->wait_drain);
 	net_device->destroy = false;
-	net_device->tx_disable = false;
+	net_device->tx_disable = true;
 
 	net_device->max_pkt = RNDIS_MAX_PKT_DEFAULT;
 	net_device->pkt_align = RNDIS_PKT_ALIGN_DEFAULT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hyperv/netvsc_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hyperv/netvsc_drv.c
@@ -285,9 +285,9 @@
 		else if (flow.basic.n_proto == htons(ETH_P_IPV6))
 			hash = jhash2((u32 *)&flow.addrs.v6addrs, 8, hashrnd);
 		else
-			hash = 0;
+			return 0;
 
-		skb_set_hash(skb, hash, PKT_HASH_TYPE_L3);
+		__skb_set_sw_hash(skb, hash, false);
 	}
 
 	return hash;
@@ -366,7 +366,7 @@
 	}
 	rcu_read_unlock();
 
-	while (unlikely(txq >= ndev->real_num_tx_queues))
+	while (txq >= ndev->real_num_tx_queues)
 		txq -= ndev->real_num_tx_queues;
 
 	return txq;
@@ -501,7 +501,7 @@
 	int rc;
 
 	skb->dev = vf_netdev;
-	skb->queue_mapping = qdisc_skb_cb(skb)->slave_dev_queue_mapping;
+	skb_record_rx_queue(skb, qdisc_skb_cb(skb)->slave_dev_queue_mapping);
 
 	rc = dev_queue_xmit(skb);
 	if (likely(rc == NET_XMIT_SUCCESS || rc == NET_XMIT_CN)) {
@@ -531,12 +531,13 @@
 	u32 hash;
 	struct hv_page_buffer pb[MAX_PAGE_BUFFER_COUNT];
 
-	/* if VF is present and up then redirect packets
-	 * already called with rcu_read_lock_bh
+	/* If VF is present and up then redirect packets to it.
+	 * Skip the VF if it is marked down or has no carrier.
+	 * If netpoll is in uses, then VF can not be used either.
 	 */
 	vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev);
 	if (vf_netdev && netif_running(vf_netdev) &&
-	    !netpoll_tx_running(net))
+	    netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net))
 		return netvsc_vf_xmit(net, vf_netdev, skb);
 
 	/* We will atmost need two pages to describe the rndis
@@ -795,8 +796,7 @@
 	    skb->protocol == htons(ETH_P_IP))
 		netvsc_comp_ipcsum(skb);
 
-	/* Do L4 checksum offload if enabled and present.
-	 */
+	/* Do L4 checksum offload if enabled and present. */
 	if (csum_info && (net->features & NETIF_F_RXCSUM)) {
 		if (csum_info->receive.tcp_checksum_succeeded ||
 		    csum_info->receive.udp_checksum_succeeded)
@@ -974,6 +974,7 @@
 	}
 
 	/* In any case device is now ready */
+	nvdev->tx_disable = false;
 	netif_device_attach(ndev);
 
 	/* Note: enable and attach happen when sub-channels setup */
@@ -1659,7 +1660,7 @@
 	rndis_dev = ndev->extension;
 	if (indir) {
 		for (i = 0; i < ITAB_NUM; i++)
-			indir[i] = rndis_dev->rx_table[i];
+			indir[i] = ndc->rx_table[i];
 	}
 
 	if (key)
@@ -1689,7 +1690,7 @@
 				return -EINVAL;
 
 		for (i = 0; i < ITAB_NUM; i++)
-			rndis_dev->rx_table[i] = indir[i];
+			ndc->rx_table[i] = indir[i];
 	}
 
 	if (!key) {
@@ -2351,6 +2352,8 @@
 	else
 		net->max_mtu = ETH_DATA_LEN;
 
+	nvdev->tx_disable = false;
+
 	ret = register_netdevice(net);
 	if (ret != 0) {
 		pr_err("Unable to register netdev.\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/hyperv/rndis_filter.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/hyperv/rndis_filter.c
@@ -767,6 +767,7 @@
 				   const u8 *rss_key, u16 flag)
 {
 	struct net_device *ndev = rdev->ndev;
+	struct net_device_context *ndc = netdev_priv(ndev);
 	struct rndis_request *request;
 	struct rndis_set_request *set;
 	struct rndis_set_complete *set_complete;
@@ -806,7 +807,7 @@
 	/* Set indirection table entries */
 	itab = (u32 *)(rssp + 1);
 	for (i = 0; i < ITAB_NUM; i++)
-		itab[i] = rdev->rx_table[i];
+		itab[i] = ndc->rx_table[i];
 
 	/* Set hask key values */
 	keyp = (u8 *)((unsigned long)rssp + rssp->hashkey_offset);
@@ -1165,6 +1166,9 @@
 	wait_event(nvdev->subchan_open,
 		   atomic_read(&nvdev->open_chn) == nvdev->num_chn);
 
+	for (i = 0; i < VRSS_SEND_TAB_SIZE; i++)
+		ndev_ctx->tx_table[i] = i % nvdev->num_chn;
+
 	/* ignore failures from setting rss parameters, still have channels */
 	if (dev_info)
 		rndis_filter_set_rss_param(rdev, dev_info->rss_key);
@@ -1174,9 +1178,6 @@
 	netif_set_real_num_tx_queues(ndev, nvdev->num_chn);
 	netif_set_real_num_rx_queues(ndev, nvdev->num_chn);
 
-	for (i = 0; i < VRSS_SEND_TAB_SIZE; i++)
-		ndev_ctx->tx_table[i] = i % nvdev->num_chn;
-
 	return 0;
 }
 
@@ -1305,6 +1306,7 @@
 				      struct netvsc_device_info *device_info)
 {
 	struct net_device *net = hv_get_drvdata(dev);
+	struct net_device_context *ndc = netdev_priv(net);
 	struct netvsc_device *net_device;
 	struct rndis_device *rndis_device;
 	struct ndis_recv_scale_cap rsscap;
@@ -1391,9 +1393,11 @@
 	/* We will use the given number of channels if available. */
 	net_device->num_chn = min(net_device->max_chn, device_info->num_chn);
 
-	for (i = 0; i < ITAB_NUM; i++)
-		rndis_device->rx_table[i] = ethtool_rxfh_indir_default(
+	if (!netif_is_rxfh_configured(net)) {
+		for (i = 0; i < ITAB_NUM; i++)
+			ndc->rx_table[i] = ethtool_rxfh_indir_default(
 						i, net_device->num_chn);
+	}
 
 	atomic_set(&net_device->open_chn, 1);
 	vmbus_set_sc_create_callback(dev->channel, netvsc_sc_open);
@@ -1432,8 +1436,6 @@
 	/* Halt and release the rndis device */
 	rndis_filter_halt_device(net_dev, rndis_dev);
 
-	net_dev->extension = NULL;
-
 	netvsc_device_remove(dev);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ieee802154/adf7242.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ieee802154/adf7242.c
@@ -882,7 +882,9 @@
 	int ret;
 	u8 lqi, len_u8, *data;
 
-	adf7242_read_reg(lp, 0, &len_u8);
+	ret = adf7242_read_reg(lp, 0, &len_u8);
+	if (ret)
+		return ret;
 
 	len = len_u8;
 
@@ -1262,7 +1264,7 @@
 					     WQ_MEM_RECLAIM);
 	if (unlikely(!lp->wqueue)) {
 		ret = -ENOMEM;
-		goto err_hw_init;
+		goto err_alloc_wq;
 	}
 
 	ret = adf7242_hw_init(lp);
@@ -1294,6 +1296,8 @@
 	return ret;
 
 err_hw_init:
+	destroy_workqueue(lp->wqueue);
+err_alloc_wq:
 	mutex_destroy(&lp->bmux);
 	ieee802154_free_hw(lp->hw);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ieee802154/ca8210.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ieee802154/ca8210.c
@@ -2924,6 +2924,7 @@
 	);
 	if (!priv->irq_workqueue) {
 		dev_crit(&priv->spi->dev, "alloc of irq_workqueue failed!\n");
+		destroy_workqueue(priv->mlme_workqueue);
 		return -ENOMEM;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ifb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ifb.c
@@ -75,7 +75,7 @@
 	}
 
 	while ((skb = __skb_dequeue(&txp->tq)) != NULL) {
-		skb->tc_redirected = 0;
+		skb->redirected = 0;
 		skb->tc_skip_classify = 1;
 
 		u64_stats_update_begin(&txp->tsync);
@@ -96,7 +96,7 @@
 		rcu_read_unlock();
 		skb->skb_iif = txp->dev->ifindex;
 
-		if (!skb->tc_from_ingress) {
+		if (!skb->from_ingress) {
 			dev_queue_xmit(skb);
 		} else {
 			skb_pull_rcsum(skb, skb->mac_len);
@@ -243,7 +243,7 @@
 	txp->rx_bytes += skb->len;
 	u64_stats_update_end(&txp->rsync);
 
-	if (!skb->tc_redirected || !skb->skb_iif) {
+	if (!skb->redirected || !skb->skb_iif) {
 		dev_kfree_skb(skb);
 		dev->stats.rx_dropped++;
 		return NETDEV_TX_OK;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ipvlan/ipvlan_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ipvlan/ipvlan_core.c
@@ -293,6 +293,7 @@
 		}
 		if (dev)
 			dev_put(dev);
+		cond_resched();
 	}
 }
 
@@ -498,19 +499,21 @@
 	struct ethhdr *ethh = eth_hdr(skb);
 	int ret = NET_XMIT_DROP;
 
-	/* In this mode we dont care about multicast and broadcast traffic */
-	if (is_multicast_ether_addr(ethh->h_dest)) {
-		pr_debug_ratelimited("Dropped {multi|broad}cast of type=[%x]\n",
-				     ntohs(skb->protocol));
-		kfree_skb(skb);
-		goto out;
-	}
-
 	/* The ipvlan is a pseudo-L2 device, so the packets that we receive
 	 * will have L2; which need to discarded and processed further
 	 * in the net-ns of the main-device.
 	 */
 	if (skb_mac_header_was_set(skb)) {
+		/* In this mode we dont care about
+		 * multicast and broadcast traffic */
+		if (is_multicast_ether_addr(ethh->h_dest)) {
+			pr_debug_ratelimited(
+				"Dropped {multi|broad}cast of type=[%x]\n",
+				ntohs(skb->protocol));
+			kfree_skb(skb);
+			goto out;
+		}
+
 		skb_pull(skb, sizeof(*ethh));
 		skb->mac_header = (typeof(skb->mac_header))~0U;
 		skb_reset_network_header(skb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ipvlan/ipvlan_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ipvlan/ipvlan_main.c
@@ -106,12 +106,21 @@
 	kfree(port);
 }
 
+#define IPVLAN_ALWAYS_ON_OFLOADS \
+	(NETIF_F_SG | NETIF_F_HW_CSUM | \
+	 NETIF_F_GSO_ROBUST | NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL)
+
+#define IPVLAN_ALWAYS_ON \
+	(IPVLAN_ALWAYS_ON_OFLOADS | NETIF_F_LLTX | NETIF_F_VLAN_CHALLENGED)
+
 #define IPVLAN_FEATURES \
-	(NETIF_F_SG | NETIF_F_CSUM_MASK | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
+	(NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
 	 NETIF_F_GSO | NETIF_F_TSO | NETIF_F_GSO_ROBUST | \
 	 NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_GRO | NETIF_F_RXCSUM | \
 	 NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_HW_VLAN_STAG_FILTER)
 
+	/* NETIF_F_GSO_ENCAP_ALL NETIF_F_GSO_SOFTWARE Newly added */
+
 #define IPVLAN_STATE_MASK \
 	((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT))
 
@@ -125,7 +134,9 @@
 	dev->state = (dev->state & ~IPVLAN_STATE_MASK) |
 		     (phy_dev->state & IPVLAN_STATE_MASK);
 	dev->features = phy_dev->features & IPVLAN_FEATURES;
-	dev->features |= NETIF_F_LLTX | NETIF_F_VLAN_CHALLENGED;
+	dev->features |= IPVLAN_ALWAYS_ON;
+	dev->vlan_features = phy_dev->vlan_features & IPVLAN_FEATURES;
+	dev->vlan_features |= IPVLAN_ALWAYS_ON_OFLOADS;
 	dev->hw_enc_features |= dev->features;
 	dev->gso_max_size = phy_dev->gso_max_size;
 	dev->gso_max_segs = phy_dev->gso_max_segs;
@@ -164,7 +175,6 @@
 static int ipvlan_open(struct net_device *dev)
 {
 	struct ipvl_dev *ipvlan = netdev_priv(dev);
-	struct net_device *phy_dev = ipvlan->phy_dev;
 	struct ipvl_addr *addr;
 
 	if (ipvlan->port->mode == IPVLAN_MODE_L3 ||
@@ -178,7 +188,7 @@
 		ipvlan_ht_addr_add(ipvlan, addr);
 	rcu_read_unlock();
 
-	return dev_uc_add(phy_dev, phy_dev->dev_addr);
+	return 0;
 }
 
 static int ipvlan_stop(struct net_device *dev)
@@ -190,8 +200,6 @@
 	dev_uc_unsync(phy_dev, dev);
 	dev_mc_unsync(phy_dev, dev);
 
-	dev_uc_del(phy_dev, phy_dev->dev_addr);
-
 	rcu_read_lock();
 	list_for_each_entry_rcu(addr, &ipvlan->addrs, anode)
 		ipvlan_ht_addr_del(addr);
@@ -228,7 +236,14 @@
 {
 	struct ipvl_dev *ipvlan = netdev_priv(dev);
 
-	return features & (ipvlan->sfeatures | ~IPVLAN_FEATURES);
+	features |= NETIF_F_ALL_FOR_ALL;
+	features &= (ipvlan->sfeatures | ~IPVLAN_FEATURES);
+	features = netdev_increment_features(ipvlan->phy_dev->features,
+					     features, features);
+	features |= IPVLAN_ALWAYS_ON;
+	features &= (IPVLAN_FEATURES | IPVLAN_ALWAYS_ON);
+
+	return features;
 }
 
 static void ipvlan_change_rx_flags(struct net_device *dev, int change)
@@ -735,10 +750,9 @@
 
 	case NETDEV_FEAT_CHANGE:
 		list_for_each_entry(ipvlan, &port->ipvlans, pnode) {
-			ipvlan->dev->features = dev->features & IPVLAN_FEATURES;
 			ipvlan->dev->gso_max_size = dev->gso_max_size;
 			ipvlan->dev->gso_max_segs = dev->gso_max_segs;
-			netdev_features_change(ipvlan->dev);
+			netdev_update_features(ipvlan->dev);
 		}
 		break;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/macsec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/macsec.c
@@ -16,6 +16,7 @@
 #include <net/genetlink.h>
 #include <net/sock.h>
 #include <net/gro_cells.h>
+#include <linux/if_arp.h>
 
 #include <uapi/linux/if_macsec.h>
 
@@ -1079,6 +1080,7 @@
 	struct macsec_rx_sa *rx_sa;
 	struct macsec_rxh_data *rxd;
 	struct macsec_dev *macsec;
+	unsigned int len;
 	sci_t sci;
 	u32 pn;
 	bool cbit;
@@ -1235,9 +1237,10 @@
 	macsec_rxsc_put(rx_sc);
 
 	skb_orphan(skb);
+	len = skb->len;
 	ret = gro_cells_receive(&macsec->gro_cells, skb);
 	if (ret == NET_RX_SUCCESS)
-		count_rx(dev, skb->len);
+		count_rx(dev, len);
 	else
 		macsec->secy.netdev->stats.rx_dropped++;
 
@@ -1308,7 +1311,8 @@
 	struct crypto_aead *tfm;
 	int ret;
 
-	tfm = crypto_alloc_aead("gcm(aes)", 0, 0);
+	/* Pick a sync gcm(aes) cipher to ensure order is preserved. */
+	tfm = crypto_alloc_aead("gcm(aes)", 0, CRYPTO_ALG_ASYNC);
 
 	if (IS_ERR(tfm))
 		return tfm;
@@ -2882,6 +2886,11 @@
 	dev_uc_sync(real_dev, dev);
 }
 
+static sci_t dev_to_sci(struct net_device *dev, __be16 port)
+{
+	return make_sci(dev->dev_addr, port);
+}
+
 static int macsec_set_mac_address(struct net_device *dev, void *p)
 {
 	struct macsec_dev *macsec = macsec_priv(dev);
@@ -2903,6 +2912,7 @@
 
 out:
 	ether_addr_copy(dev->dev_addr, addr->sa_data);
+	macsec->secy.sci = dev_to_sci(dev, MACSEC_PORT_ES);
 	return 0;
 }
 
@@ -2977,6 +2987,7 @@
 
 static const struct nla_policy macsec_rtnl_policy[IFLA_MACSEC_MAX + 1] = {
 	[IFLA_MACSEC_SCI] = { .type = NLA_U64 },
+	[IFLA_MACSEC_PORT] = { .type = NLA_U16 },
 	[IFLA_MACSEC_ICV_LEN] = { .type = NLA_U8 },
 	[IFLA_MACSEC_CIPHER_SUITE] = { .type = NLA_U64 },
 	[IFLA_MACSEC_WINDOW] = { .type = NLA_U32 },
@@ -3176,11 +3187,6 @@
 	return false;
 }
 
-static sci_t dev_to_sci(struct net_device *dev, __be16 port)
-{
-	return make_sci(dev->dev_addr, port);
-}
-
 static int macsec_add_dev(struct net_device *dev, sci_t sci, u8 icv_len)
 {
 	struct macsec_dev *macsec = macsec_priv(dev);
@@ -3223,17 +3229,19 @@
 			  struct netlink_ext_ack *extack)
 {
 	struct macsec_dev *macsec = macsec_priv(dev);
+	rx_handler_func_t *rx_handler;
+	u8 icv_len = DEFAULT_ICV_LEN;
 	struct net_device *real_dev;
-	int err;
+	int err, mtu;
 	sci_t sci;
-	u8 icv_len = DEFAULT_ICV_LEN;
-	rx_handler_func_t *rx_handler;
 
 	if (!tb[IFLA_LINK])
 		return -EINVAL;
 	real_dev = __dev_get_by_index(net, nla_get_u32(tb[IFLA_LINK]));
 	if (!real_dev)
 		return -ENODEV;
+	if (real_dev->type != ARPHRD_ETHER)
+		return -EINVAL;
 
 	dev->priv_flags |= IFF_MACSEC;
 
@@ -3241,7 +3249,11 @@
 
 	if (data && data[IFLA_MACSEC_ICV_LEN])
 		icv_len = nla_get_u8(data[IFLA_MACSEC_ICV_LEN]);
-	dev->mtu = real_dev->mtu - icv_len - macsec_extra_len(true);
+	mtu = real_dev->mtu - icv_len - macsec_extra_len(true);
+	if (mtu < 0)
+		dev->mtu = 0;
+	else
+		dev->mtu = mtu;
 
 	rx_handler = rtnl_dereference(real_dev->rx_handler);
 	if (rx_handler && rx_handler != macsec_handle_frame)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/macvlan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/macvlan.c
@@ -334,6 +334,8 @@
 		if (src)
 			dev_put(src->dev);
 		consume_skb(skb);
+
+		cond_resched();
 	}
 }
 
@@ -359,10 +361,11 @@
 	}
 	spin_unlock(&port->bc_queue.lock);
 
+	schedule_work(&port->bc_work);
+
 	if (err)
 		goto free_nskb;
 
-	schedule_work(&port->bc_work);
 	return;
 
 free_nskb:
@@ -444,6 +447,10 @@
 	int ret;
 	rx_handler_result_t handle_res;
 
+	/* Packets from dev_loopback_xmit() do not have L2 header, bail out */
+	if (unlikely(skb->pkt_type == PACKET_LOOPBACK))
+		return RX_HANDLER_PASS;
+
 	port = macvlan_port_get_rcu(skb->dev);
 	if (is_multicast_ether_addr(eth->h_dest)) {
 		unsigned int hash;
@@ -512,10 +519,11 @@
 	const struct macvlan_dev *dest;
 
 	if (vlan->mode == MACVLAN_MODE_BRIDGE) {
-		const struct ethhdr *eth = (void *)skb->data;
+		const struct ethhdr *eth = skb_eth_hdr(skb);
 
 		/* send to other bridge ports directly */
 		if (is_multicast_ether_addr(eth->h_dest)) {
+			skb_reset_mac_header(skb);
 			macvlan_broadcast(skb, port, dev, MACVLAN_MODE_BRIDGE);
 			goto xmit_world;
 		}
@@ -1251,6 +1259,9 @@
 static int macvlan_validate(struct nlattr *tb[], struct nlattr *data[],
 			    struct netlink_ext_ack *extack)
 {
+	struct nlattr *nla, *head;
+	int rem, len;
+
 	if (tb[IFLA_ADDRESS]) {
 		if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN)
 			return -EINVAL;
@@ -1298,6 +1309,20 @@
 			return -EADDRNOTAVAIL;
 	}
 
+	if (data[IFLA_MACVLAN_MACADDR_DATA]) {
+		head = nla_data(data[IFLA_MACVLAN_MACADDR_DATA]);
+		len = nla_len(data[IFLA_MACVLAN_MACADDR_DATA]);
+
+		nla_for_each_attr(nla, head, len, rem) {
+			if (nla_type(nla) != IFLA_MACVLAN_MACADDR ||
+			    nla_len(nla) != ETH_ALEN)
+				return -EINVAL;
+
+			if (!is_valid_ether_addr(nla_data(nla)))
+				return -EADDRNOTAVAIL;
+		}
+	}
+
 	if (data[IFLA_MACVLAN_MACADDR_COUNT])
 		return -EINVAL;
 
@@ -1354,10 +1379,6 @@
 		len = nla_len(data[IFLA_MACVLAN_MACADDR_DATA]);
 
 		nla_for_each_attr(nla, head, len, rem) {
-			if (nla_type(nla) != IFLA_MACVLAN_MACADDR ||
-			    nla_len(nla) != ETH_ALEN)
-				continue;
-
 			addr = nla_data(nla);
 			ret = macvlan_hash_add_source(vlan, addr);
 			if (ret)
@@ -1700,7 +1721,7 @@
 						struct macvlan_dev,
 						list);
 
-		if (macvlan_sync_address(vlan->dev, dev->dev_addr))
+		if (vlan && macvlan_sync_address(vlan->dev, dev->dev_addr))
 			return NOTIFY_BAD;
 
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/net_failover.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/net_failover.c
@@ -61,7 +61,8 @@
 	return 0;
 
 err_standby_open:
-	dev_close(primary_dev);
+	if (primary_dev)
+		dev_close(primary_dev);
 err_primary_open:
 	netif_tx_disable(dev);
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/netdevsim/dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/netdevsim/dev.c
@@ -73,7 +73,7 @@
 
 static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
 {
-	char dev_ddir_name[16];
+	char dev_ddir_name[sizeof(DRV_NAME) + 10];
 
 	sprintf(dev_ddir_name, DRV_NAME "%u", nsim_dev->nsim_bus_dev->dev.id);
 	nsim_dev->ddir = debugfs_create_dir(dev_ddir_name, nsim_dev_ddir);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/netdevsim/netdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/netdevsim/netdev.c
@@ -292,6 +292,7 @@
 
 	ns = netdev_priv(dev);
 	ns->netdev = dev;
+	u64_stats_init(&ns->syncp);
 	ns->nsim_dev = nsim_dev;
 	ns->nsim_dev_port = nsim_dev_port;
 	ns->nsim_bus_dev = nsim_dev->nsim_bus_dev;
@@ -301,7 +302,7 @@
 	rtnl_lock();
 	err = nsim_bpf_init(ns);
 	if (err)
-		goto err_free_netdev;
+		goto err_rtnl_unlock;
 
 	nsim_ipsec_init(ns);
 
@@ -315,8 +316,8 @@
 err_ipsec_teardown:
 	nsim_ipsec_teardown(ns);
 	nsim_bpf_uninit(ns);
+err_rtnl_unlock:
 	rtnl_unlock();
-err_free_netdev:
 	free_netdev(dev);
 	return ERR_PTR(err);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/Kconfig
@@ -193,6 +193,7 @@
 	depends on 64BIT
 	depends on PCI
 	select MDIO_CAVIUM
+	select MDIO_DEVRES
 	help
 	  This driver supports the MDIO interfaces found on Cavium
 	  ThunderX SoCs when the MDIO bus device appears as a PCI
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/aquantia_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/aquantia_main.c
@@ -627,6 +627,8 @@
 	.config_intr	= aqr_config_intr,
 	.ack_interrupt	= aqr_ack_interrupt,
 	.read_status	= aqr_read_status,
+	.suspend	= aqr107_suspend,
+	.resume		= aqr107_resume,
 },
 {
 	PHY_ID_MATCH_MODEL(PHY_ID_AQR106),
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/bcm63xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/bcm63xx.c
@@ -73,6 +73,7 @@
 	/* same phy as above, with just a different OUI */
 	.phy_id		= 0x002bdc00,
 	.phy_id_mask	= 0xfffffc00,
+	.name		= "Broadcom BCM63XX (2)",
 	/* PHY_BASIC_FEATURES */
 	.flags		= PHY_IS_INTERNAL,
 	.config_init	= bcm63xx_config_init,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/broadcom.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/broadcom.c
@@ -26,18 +26,13 @@
 MODULE_AUTHOR("Maciej W. Rozycki");
 MODULE_LICENSE("GPL");
 
+static int bcm54xx_config_clock_delay(struct phy_device *phydev);
+
 static int bcm54210e_config_init(struct phy_device *phydev)
 {
 	int val;
 
-	val = bcm54xx_auxctl_read(phydev, MII_BCM54XX_AUXCTL_SHDWSEL_MISC);
-	val &= ~MII_BCM54XX_AUXCTL_SHDWSEL_MISC_RGMII_SKEW_EN;
-	val |= MII_BCM54XX_AUXCTL_MISC_WREN;
-	bcm54xx_auxctl_write(phydev, MII_BCM54XX_AUXCTL_SHDWSEL_MISC, val);
-
-	val = bcm_phy_read_shadow(phydev, BCM54810_SHD_CLK_CTL);
-	val &= ~BCM54810_SHD_CLK_CTL_GTXCLK_EN;
-	bcm_phy_write_shadow(phydev, BCM54810_SHD_CLK_CTL, val);
+	bcm54xx_config_clock_delay(phydev);
 
 	if (phydev->dev_flags & PHY_BRCM_EN_MASTER_MODE) {
 		val = phy_read(phydev, MII_CTRL1000);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/dp83640.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/dp83640.c
@@ -1119,7 +1119,7 @@
 		goto out;
 	}
 	dp83640_clock_init(clock, bus);
-	list_add_tail(&phyter_clocks, &clock->list);
+	list_add_tail(&clock->list, &phyter_clocks);
 out:
 	mutex_unlock(&phyter_clocks_lock);
 
@@ -1348,6 +1348,7 @@
 		dp83640->hwts_rx_en = 1;
 		dp83640->layer = PTP_CLASS_L4;
 		dp83640->version = PTP_CLASS_V1;
+		cfg.rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
 		break;
 	case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
 	case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
@@ -1355,6 +1356,7 @@
 		dp83640->hwts_rx_en = 1;
 		dp83640->layer = PTP_CLASS_L4;
 		dp83640->version = PTP_CLASS_V2;
+		cfg.rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_EVENT;
 		break;
 	case HWTSTAMP_FILTER_PTP_V2_L2_EVENT:
 	case HWTSTAMP_FILTER_PTP_V2_L2_SYNC:
@@ -1362,6 +1364,7 @@
 		dp83640->hwts_rx_en = 1;
 		dp83640->layer = PTP_CLASS_L2;
 		dp83640->version = PTP_CLASS_V2;
+		cfg.rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
 		break;
 	case HWTSTAMP_FILTER_PTP_V2_EVENT:
 	case HWTSTAMP_FILTER_PTP_V2_SYNC:
@@ -1369,6 +1372,7 @@
 		dp83640->hwts_rx_en = 1;
 		dp83640->layer = PTP_CLASS_L4 | PTP_CLASS_L2;
 		dp83640->version = PTP_CLASS_V2;
+		cfg.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
 		break;
 	default:
 		return -ERANGE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/dp83867.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/dp83867.c
@@ -25,7 +25,8 @@
 #define DP83867_CFG3		0x1e
 
 /* Extended Registers */
-#define DP83867_CFG4            0x0031
+#define DP83867_FLD_THR_CFG	0x002e
+#define DP83867_CFG4		0x0031
 #define DP83867_CFG4_SGMII_ANEG_MASK (BIT(5) | BIT(6))
 #define DP83867_CFG4_SGMII_ANEG_TIMER_11MS   (3 << 5)
 #define DP83867_CFG4_SGMII_ANEG_TIMER_800US  (2 << 5)
@@ -74,12 +75,14 @@
 #define DP83867_STRAP_STS2_CLK_SKEW_RX_MASK	GENMASK(2, 0)
 #define DP83867_STRAP_STS2_CLK_SKEW_RX_SHIFT	0
 #define DP83867_STRAP_STS2_CLK_SKEW_NONE	BIT(2)
+#define DP83867_STRAP_STS2_STRAP_FLD		BIT(10)
 
 /* PHY CTRL bits */
 #define DP83867_PHYCR_FIFO_DEPTH_SHIFT		14
 #define DP83867_PHYCR_FIFO_DEPTH_MAX		0x03
 #define DP83867_PHYCR_FIFO_DEPTH_MASK		GENMASK(15, 14)
 #define DP83867_PHYCR_RESERVED_MASK		BIT(11)
+#define DP83867_PHYCR_FORCE_LINK_GOOD		BIT(10)
 
 /* RGMIIDCTL bits */
 #define DP83867_RGMII_TX_CLK_DELAY_MAX		0xf
@@ -95,9 +98,16 @@
 #define DP83867_IO_MUX_CFG_CLK_O_SEL_MASK	(0x1f << 8)
 #define DP83867_IO_MUX_CFG_CLK_O_SEL_SHIFT	8
 
+/* CFG3 bits */
+#define DP83867_CFG3_INT_OE			BIT(7)
+#define DP83867_CFG3_ROBUST_AUTO_MDIX		BIT(9)
+
 /* CFG4 bits */
 #define DP83867_CFG4_PORT_MIRROR_EN              BIT(0)
 
+/* FLD_THR_CFG */
+#define DP83867_FLD_THR_CFG_ENERGY_LOST_THR_MASK	0x7
+
 enum {
 	DP83867_PORT_MIRROING_KEEP,
 	DP83867_PORT_MIRROING_EN,
@@ -313,6 +323,20 @@
 		phy_clear_bits_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4,
 				   BIT(7));
 
+	bs = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_STRAP_STS2);
+	if (bs & DP83867_STRAP_STS2_STRAP_FLD) {
+		/* When using strap to enable FLD, the ENERGY_LOST_FLD_THR will
+		 * be set to 0x2. This may causes the PHY link to be unstable -
+		 * the default value 0x1 need to be restored.
+		 */
+		ret = phy_modify_mmd(phydev, DP83867_DEVADDR,
+				     DP83867_FLD_THR_CFG,
+				     DP83867_FLD_THR_CFG_ENERGY_LOST_THR_MASK,
+				     0x1);
+		if (ret)
+			return ret;
+	}
+
 	if (phy_interface_is_rgmii(phydev)) {
 		val = phy_read(phydev, MII_DP83867_PHYCTRL);
 		if (val < 0)
@@ -410,12 +434,13 @@
 		phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_SGMIICTL, val);
 	}
 
+	val = phy_read(phydev, DP83867_CFG3);
 	/* Enable Interrupt output INT_OE in CFG3 register */
-	if (phy_interrupt_is_valid(phydev)) {
-		val = phy_read(phydev, DP83867_CFG3);
-		val |= BIT(7);
-		phy_write(phydev, DP83867_CFG3, val);
-	}
+	if (phy_interrupt_is_valid(phydev))
+		val |= DP83867_CFG3_INT_OE;
+
+	val |= DP83867_CFG3_ROBUST_AUTO_MDIX;
+	phy_write(phydev, DP83867_CFG3, val);
 
 	if (dp83867->port_mirroring != DP83867_PORT_MIRROING_KEEP)
 		dp83867_config_port_mirroring(phydev);
@@ -449,7 +474,12 @@
 
 	usleep_range(10, 20);
 
-	return 0;
+	/* After reset FORCE_LINK_GOOD bit is set. Although the
+	 * default value should be unset. Disable FORCE_LINK_GOOD
+	 * for the phy to work properly.
+	 */
+	return phy_modify(phydev, MII_DP83867_PHYCTRL,
+			 DP83867_PHYCR_FORCE_LINK_GOOD, 0);
 }
 
 static struct phy_driver dp83867_driver[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/fixed_phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/fixed_phy.c
@@ -212,16 +212,13 @@
 	 */
 	gpiod = gpiod_get_from_of_node(fixed_link_node, "link-gpios", 0,
 				       GPIOD_IN, "mdio");
-	of_node_put(fixed_link_node);
-	if (IS_ERR(gpiod)) {
-		if (PTR_ERR(gpiod) == -EPROBE_DEFER)
-			return gpiod;
-
+	if (IS_ERR(gpiod) && PTR_ERR(gpiod) != -EPROBE_DEFER) {
 		if (PTR_ERR(gpiod) != -ENOENT)
 			pr_err("error getting GPIO for fixed link %pOF, proceed without\n",
 			       fixed_link_node);
 		gpiod = NULL;
 	}
+	of_node_put(fixed_link_node);
 
 	return gpiod;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/marvell.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/marvell.c
@@ -358,7 +358,7 @@
 	return marvell_config_aneg(phydev);
 }
 
-#ifdef CONFIG_OF_MDIO
+#if IS_ENABLED(CONFIG_OF_MDIO)
 /* Set and/or override some configuration registers based on the
  * marvell,reg-init property stored in the of_node for the phydev.
  *
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/mdio-bcm-iproc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/mdio-bcm-iproc.c
@@ -178,6 +178,23 @@
 	return 0;
 }
 
+#ifdef CONFIG_PM_SLEEP
+int iproc_mdio_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct iproc_mdio_priv *priv = platform_get_drvdata(pdev);
+
+	/* restore the mii clock configuration */
+	iproc_mdio_config_clk(priv->base);
+
+	return 0;
+}
+
+static const struct dev_pm_ops iproc_mdio_pm_ops = {
+	.resume = iproc_mdio_resume
+};
+#endif /* CONFIG_PM_SLEEP */
+
 static const struct of_device_id iproc_mdio_of_match[] = {
 	{ .compatible = "brcm,iproc-mdio", },
 	{ /* sentinel */ },
@@ -188,6 +205,9 @@
 	.driver = {
 		.name = "iproc-mdio",
 		.of_match_table = iproc_mdio_of_match,
+#ifdef CONFIG_PM_SLEEP
+		.pm = &iproc_mdio_pm_ops,
+#endif
 	},
 	.probe = iproc_mdio_probe,
 	.remove = iproc_mdio_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/mdio-bcm-unimac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/mdio-bcm-unimac.c
@@ -242,11 +242,9 @@
 		return -ENOMEM;
 	}
 
-	priv->clk = devm_clk_get(&pdev->dev, NULL);
-	if (PTR_ERR(priv->clk) == -EPROBE_DEFER)
+	priv->clk = devm_clk_get_optional(&pdev->dev, NULL);
+	if (IS_ERR(priv->clk))
 		return PTR_ERR(priv->clk);
-	else
-		priv->clk = NULL;
 
 	ret = clk_prepare_enable(priv->clk);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/mdio-mux-bcm-iproc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/mdio-mux-bcm-iproc.c
@@ -288,8 +288,13 @@
 static int mdio_mux_iproc_resume(struct device *dev)
 {
 	struct iproc_mdiomux_desc *md = dev_get_drvdata(dev);
+	int rc;
 
-	clk_prepare_enable(md->core_clk);
+	rc = clk_prepare_enable(md->core_clk);
+	if (rc) {
+		dev_err(md->dev, "failed to enable core clk\n");
+		return rc;
+	}
 	mdio_mux_iproc_config(md);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/mdio_bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/mdio_bus.c
@@ -62,8 +62,8 @@
 	struct reset_control *reset = NULL;
 
 	if (mdiodev->dev.of_node)
-		reset = devm_reset_control_get_exclusive(&mdiodev->dev,
-							 "phy");
+		reset = of_reset_control_get_exclusive(mdiodev->dev.of_node,
+						       "phy");
 	if (IS_ERR(reset)) {
 		if (PTR_ERR(reset) == -ENOENT || PTR_ERR(reset) == -ENOTSUPP)
 			reset = NULL;
@@ -107,6 +107,8 @@
 	if (mdiodev->bus->mdio_map[mdiodev->addr] != mdiodev)
 		return -EINVAL;
 
+	reset_control_put(mdiodev->reset_ctrl);
+
 	mdiodev->bus->mdio_map[mdiodev->addr] = NULL;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/micrel.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/micrel.c
@@ -25,6 +25,7 @@
 #include <linux/micrel_phy.h>
 #include <linux/of.h>
 #include <linux/clk.h>
+#include <linux/delay.h>
 
 /* Operation Mode Strap Override */
 #define MII_KSZPHY_OMSO				0x16
@@ -902,6 +903,12 @@
 
 	genphy_resume(phydev);
 
+	/* After switching from power-down to normal mode, an internal global
+	 * reset is automatically generated. Wait a minimum of 1 ms before
+	 * read/write access to the PHY registers.
+	 */
+	usleep_range(1000, 2000);
+
 	ret = kszphy_config_reset(phydev);
 	if (ret)
 		return ret;
@@ -1147,7 +1154,7 @@
 	.driver_data	= &ksz9021_type,
 	.probe		= kszphy_probe,
 	.config_init	= ksz9131_config_init,
-	.read_status	= ksz9031_read_status,
+	.read_status	= genphy_read_status,
 	.ack_interrupt	= kszphy_ack_interrupt,
 	.config_intr	= kszphy_config_intr,
 	.get_sset_count = kszphy_get_sset_count,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/microchip_t1.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/microchip_t1.c
@@ -3,9 +3,21 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/delay.h>
 #include <linux/mii.h>
 #include <linux/phy.h>
 
+/* External Register Control Register */
+#define LAN87XX_EXT_REG_CTL                     (0x14)
+#define LAN87XX_EXT_REG_CTL_RD_CTL              (0x1000)
+#define LAN87XX_EXT_REG_CTL_WR_CTL              (0x0800)
+
+/* External Register Read Data Register */
+#define LAN87XX_EXT_REG_RD_DATA                 (0x15)
+
+/* External Register Write Data Register */
+#define LAN87XX_EXT_REG_WR_DATA                 (0x16)
+
 /* Interrupt Source Register */
 #define LAN87XX_INTERRUPT_SOURCE                (0x18)
 
@@ -14,9 +26,160 @@
 #define LAN87XX_MASK_LINK_UP                    (0x0004)
 #define LAN87XX_MASK_LINK_DOWN                  (0x0002)
 
+/* phyaccess nested types */
+#define	PHYACC_ATTR_MODE_READ		0
+#define	PHYACC_ATTR_MODE_WRITE		1
+#define	PHYACC_ATTR_MODE_MODIFY		2
+
+#define	PHYACC_ATTR_BANK_SMI		0
+#define	PHYACC_ATTR_BANK_MISC		1
+#define	PHYACC_ATTR_BANK_PCS		2
+#define	PHYACC_ATTR_BANK_AFE		3
+#define	PHYACC_ATTR_BANK_MAX		7
+
 #define DRIVER_AUTHOR	"Nisar Sayed <nisar.sayed@microchip.com>"
 #define DRIVER_DESC	"Microchip LAN87XX T1 PHY driver"
 
+struct access_ereg_val {
+	u8  mode;
+	u8  bank;
+	u8  offset;
+	u16 val;
+	u16 mask;
+};
+
+static int access_ereg(struct phy_device *phydev, u8 mode, u8 bank,
+		       u8 offset, u16 val)
+{
+	u16 ereg = 0;
+	int rc = 0;
+
+	if (mode > PHYACC_ATTR_MODE_WRITE || bank > PHYACC_ATTR_BANK_MAX)
+		return -EINVAL;
+
+	if (bank == PHYACC_ATTR_BANK_SMI) {
+		if (mode == PHYACC_ATTR_MODE_WRITE)
+			rc = phy_write(phydev, offset, val);
+		else
+			rc = phy_read(phydev, offset);
+		return rc;
+	}
+
+	if (mode == PHYACC_ATTR_MODE_WRITE) {
+		ereg = LAN87XX_EXT_REG_CTL_WR_CTL;
+		rc = phy_write(phydev, LAN87XX_EXT_REG_WR_DATA, val);
+		if (rc < 0)
+			return rc;
+	} else {
+		ereg = LAN87XX_EXT_REG_CTL_RD_CTL;
+	}
+
+	ereg |= (bank << 8) | offset;
+
+	rc = phy_write(phydev, LAN87XX_EXT_REG_CTL, ereg);
+	if (rc < 0)
+		return rc;
+
+	if (mode == PHYACC_ATTR_MODE_READ)
+		rc = phy_read(phydev, LAN87XX_EXT_REG_RD_DATA);
+
+	return rc;
+}
+
+static int access_ereg_modify_changed(struct phy_device *phydev,
+				      u8 bank, u8 offset, u16 val, u16 mask)
+{
+	int new = 0, rc = 0;
+
+	if (bank > PHYACC_ATTR_BANK_MAX)
+		return -EINVAL;
+
+	rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ, bank, offset, val);
+	if (rc < 0)
+		return rc;
+
+	new = val | (rc & (mask ^ 0xFFFF));
+	rc = access_ereg(phydev, PHYACC_ATTR_MODE_WRITE, bank, offset, new);
+
+	return rc;
+}
+
+static int lan87xx_phy_init(struct phy_device *phydev)
+{
+	static const struct access_ereg_val init[] = {
+		/* TX Amplitude = 5 */
+		{PHYACC_ATTR_MODE_MODIFY, PHYACC_ATTR_BANK_AFE, 0x0B,
+		 0x000A, 0x001E},
+		/* Clear SMI interrupts */
+		{PHYACC_ATTR_MODE_READ, PHYACC_ATTR_BANK_SMI, 0x18,
+		 0, 0},
+		/* Clear MISC interrupts */
+		{PHYACC_ATTR_MODE_READ, PHYACC_ATTR_BANK_MISC, 0x08,
+		 0, 0},
+		/* Turn on TC10 Ring Oscillator (ROSC) */
+		{PHYACC_ATTR_MODE_MODIFY, PHYACC_ATTR_BANK_MISC, 0x20,
+		 0x0020, 0x0020},
+		/* WUR Detect Length to 1.2uS, LPC Detect Length to 1.09uS */
+		{PHYACC_ATTR_MODE_WRITE, PHYACC_ATTR_BANK_PCS, 0x20,
+		 0x283C, 0},
+		/* Wake_In Debounce Length to 39uS, Wake_Out Length to 79uS */
+		{PHYACC_ATTR_MODE_WRITE, PHYACC_ATTR_BANK_MISC, 0x21,
+		 0x274F, 0},
+		/* Enable Auto Wake Forward to Wake_Out, ROSC on, Sleep,
+		 * and Wake_In to wake PHY
+		 */
+		{PHYACC_ATTR_MODE_WRITE, PHYACC_ATTR_BANK_MISC, 0x20,
+		 0x80A7, 0},
+		/* Enable WUP Auto Fwd, Enable Wake on MDI, Wakeup Debouncer
+		 * to 128 uS
+		 */
+		{PHYACC_ATTR_MODE_WRITE, PHYACC_ATTR_BANK_MISC, 0x24,
+		 0xF110, 0},
+		/* Enable HW Init */
+		{PHYACC_ATTR_MODE_MODIFY, PHYACC_ATTR_BANK_SMI, 0x1A,
+		 0x0100, 0x0100},
+	};
+	int rc, i;
+
+	/* Start manual initialization procedures in Managed Mode */
+	rc = access_ereg_modify_changed(phydev, PHYACC_ATTR_BANK_SMI,
+					0x1a, 0x0000, 0x0100);
+	if (rc < 0)
+		return rc;
+
+	/* Soft Reset the SMI block */
+	rc = access_ereg_modify_changed(phydev, PHYACC_ATTR_BANK_SMI,
+					0x00, 0x8000, 0x8000);
+	if (rc < 0)
+		return rc;
+
+	/* Check to see if the self-clearing bit is cleared */
+	usleep_range(1000, 2000);
+	rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ,
+			 PHYACC_ATTR_BANK_SMI, 0x00, 0);
+	if (rc < 0)
+		return rc;
+	if ((rc & 0x8000) != 0)
+		return -ETIMEDOUT;
+
+	/* PHY Initialization */
+	for (i = 0; i < ARRAY_SIZE(init); i++) {
+		if (init[i].mode == PHYACC_ATTR_MODE_MODIFY) {
+			rc = access_ereg_modify_changed(phydev, init[i].bank,
+							init[i].offset,
+							init[i].val,
+							init[i].mask);
+		} else {
+			rc = access_ereg(phydev, init[i].mode, init[i].bank,
+					 init[i].offset, init[i].val);
+		}
+		if (rc < 0)
+			return rc;
+	}
+
+	return 0;
+}
+
 static int lan87xx_phy_config_intr(struct phy_device *phydev)
 {
 	int rc, val = 0;
@@ -40,6 +203,13 @@
 	return rc < 0 ? rc : 0;
 }
 
+static int lan87xx_config_init(struct phy_device *phydev)
+{
+	int rc = lan87xx_phy_init(phydev);
+
+	return rc < 0 ? rc : 0;
+}
+
 static struct phy_driver microchip_t1_phy_driver[] = {
 	{
 		.phy_id         = 0x0007c150,
@@ -48,6 +218,7 @@
 
 		.features       = PHY_BASIC_T1_FEATURES,
 
+		.config_init	= lan87xx_config_init,
 		.config_aneg    = genphy_config_aneg,
 
 		.ack_interrupt  = lan87xx_phy_ack_interrupt,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/mscc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/mscc.c
@@ -302,11 +302,11 @@
 				BIT(VSC8531_FORCE_LED_OFF) | \
 				BIT(VSC8531_FORCE_LED_ON))
 
-#define MSCC_VSC8584_REVB_INT8051_FW		"mscc_vsc8584_revb_int8051_fb48.bin"
+#define MSCC_VSC8584_REVB_INT8051_FW		"microchip/mscc_vsc8584_revb_int8051_fb48.bin"
 #define MSCC_VSC8584_REVB_INT8051_FW_START_ADDR	0xe800
 #define MSCC_VSC8584_REVB_INT8051_FW_CRC	0xfb48
 
-#define MSCC_VSC8574_REVB_INT8051_FW		"mscc_vsc8574_revb_int8051_29e8.bin"
+#define MSCC_VSC8574_REVB_INT8051_FW		"microchip/mscc_vsc8574_revb_int8051_29e8.bin"
 #define MSCC_VSC8574_REVB_INT8051_FW_START_ADDR	0x4000
 #define MSCC_VSC8574_REVB_INT8051_FW_CRC	0x29e8
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/phy.c
@@ -345,15 +345,16 @@
 
 	phydev->autoneg = autoneg;
 
-	phydev->speed = speed;
+	if (autoneg == AUTONEG_DISABLE) {
+		phydev->speed = speed;
+		phydev->duplex = duplex;
+	}
 
 	linkmode_copy(phydev->advertising, advertising);
 
 	linkmode_mod_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
 			 phydev->advertising, autoneg == AUTONEG_ENABLE);
 
-	phydev->duplex = duplex;
-
 	phydev->mdix_ctrl = cmd->base.eth_tp_mdix_ctrl;
 
 	/* Restart the PHY */
@@ -761,7 +762,8 @@
 		phy_trigger_machine(phydev);
 	}
 
-	if (phy_clear_interrupt(phydev))
+	/* did_interrupt() may have cleared the interrupt already */
+	if (!phydev->drv->did_interrupt && phy_clear_interrupt(phydev))
 		goto phy_err;
 	return IRQ_HANDLED;
 
@@ -833,7 +835,7 @@
  */
 void phy_stop(struct phy_device *phydev)
 {
-	if (!phy_is_started(phydev)) {
+	if (!phy_is_started(phydev) && phydev->state != PHY_DOWN) {
 		WARN(1, "called from state %s\n",
 		     phy_state_to_str(phydev->state));
 		return;
@@ -1159,9 +1161,11 @@
 		/* Restart autonegotiation so the new modes get sent to the
 		 * link partner.
 		 */
-		ret = phy_restart_aneg(phydev);
-		if (ret < 0)
-			return ret;
+		if (phydev->autoneg == AUTONEG_ENABLE) {
+			ret = phy_restart_aneg(phydev);
+			if (ret < 0)
+				return ret;
+		}
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/phy_device.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/phy_device.c
@@ -246,7 +246,7 @@
 	 * MDIO bus driver and clock gated at this point.
 	 */
 	if (!netdev)
-		return !phydev->suspended;
+		goto out;
 
 	if (netdev->wol_enabled)
 		return false;
@@ -266,7 +266,8 @@
 	if (device_may_wakeup(&netdev->dev))
 		return false;
 
-	return true;
+out:
+	return !phydev->suspended;
 }
 
 static int mdio_bus_phy_suspend(struct device *dev)
@@ -284,6 +285,8 @@
 	if (!mdio_bus_phy_may_suspend(phydev))
 		return 0;
 
+	phydev->suspended_by_mdio_bus = 1;
+
 	return phy_suspend(phydev);
 }
 
@@ -292,9 +295,11 @@
 	struct phy_device *phydev = to_phy_device(dev);
 	int ret;
 
-	if (!mdio_bus_phy_may_suspend(phydev))
+	if (!phydev->suspended_by_mdio_bus)
 		goto no_resume;
 
+	phydev->suspended_by_mdio_bus = 0;
+
 	ret = phy_resume(phydev);
 	if (ret < 0)
 		return ret;
@@ -488,7 +493,7 @@
 
 	if (phydev->is_c45) {
 		for (i = 1; i < num_ids; i++) {
-			if (!(phydev->c45_ids.devices_in_package & (1 << i)))
+			if (phydev->c45_ids.device_ids[i] == 0xffffffff)
 				continue;
 
 			if ((phydrv->phy_id & phydrv->phy_id_mask) ==
@@ -552,7 +557,7 @@
 	.pm = MDIO_BUS_PHY_PM_OPS,
 };
 
-static int phy_request_driver_module(struct phy_device *dev, int phy_id)
+static int phy_request_driver_module(struct phy_device *dev, u32 phy_id)
 {
 	int ret;
 
@@ -564,15 +569,15 @@
 	 * then modprobe isn't available.
 	 */
 	if (IS_ENABLED(CONFIG_MODULES) && ret < 0 && ret != -ENOENT) {
-		phydev_err(dev, "error %d loading PHY driver module for ID 0x%08x\n",
-			   ret, phy_id);
+		phydev_err(dev, "error %d loading PHY driver module for ID 0x%08lx\n",
+			   ret, (unsigned long)phy_id);
 		return ret;
 	}
 
 	return 0;
 }
 
-struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
+struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
 				     bool is_c45,
 				     struct phy_c45_device_ids *c45_ids)
 {
@@ -596,8 +601,8 @@
 	mdiodev->device_free = phy_mdio_device_free;
 	mdiodev->device_remove = phy_mdio_device_remove;
 
-	dev->speed = 0;
-	dev->duplex = -1;
+	dev->speed = SPEED_UNKNOWN;
+	dev->duplex = DUPLEX_UNKNOWN;
 	dev->pause = 0;
 	dev->asym_pause = 0;
 	dev->link = 0;
@@ -610,7 +615,9 @@
 	if (c45_ids)
 		dev->c45_ids = *c45_ids;
 	dev->irq = bus->irq[addr];
+
 	dev_set_name(&mdiodev->dev, PHY_ID_FMT, bus->id, addr);
+	device_initialize(&mdiodev->dev);
 
 	dev->state = PHY_DOWN;
 
@@ -632,7 +639,7 @@
 		int i;
 
 		for (i = 1; i < num_ids; i++) {
-			if (!(c45_ids->devices_in_package & (1 << i)))
+			if (c45_ids->device_ids[i] == 0xffffffff)
 				continue;
 
 			ret = phy_request_driver_module(dev,
@@ -644,10 +651,8 @@
 		ret = phy_request_driver_module(dev, phy_id);
 	}
 
-	if (!ret) {
-		device_initialize(&mdiodev->dev);
-	} else {
-		kfree(dev);
+	if (ret) {
+		put_device(&mdiodev->dev);
 		dev = ERR_PTR(ret);
 	}
 
@@ -792,8 +797,10 @@
 
 	/* Grab the bits from PHYIR2, and put them in the lower half */
 	phy_reg = mdiobus_read(bus, addr, MII_PHYSID2);
-	if (phy_reg < 0)
-		return -EIO;
+	if (phy_reg < 0) {
+		/* returning -ENODEV doesn't stop bus scanning */
+		return (phy_reg == -EIO || phy_reg == -ENODEV) ? -ENODEV : -EIO;
+	}
 
 	*phy_id |= phy_reg;
 
@@ -812,10 +819,13 @@
  */
 struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45)
 {
-	struct phy_c45_device_ids c45_ids = {0};
+	struct phy_c45_device_ids c45_ids;
 	u32 phy_id = 0;
 	int r;
 
+	c45_ids.devices_in_package = 0;
+	memset(c45_ids.device_ids, 0xff, sizeof(c45_ids.device_ids));
+
 	r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
 	if (r)
 		return ERR_PTR(r);
@@ -1411,7 +1421,8 @@
 
 	phy_led_triggers_unregister(phydev);
 
-	module_put(phydev->mdio.dev.driver->owner);
+	if (phydev->mdio.dev.driver)
+		module_put(phydev->mdio.dev.driver->owner);
 
 	/* If the device had no specific driver before (i.e. - it
 	 * was using the generic driver), we unbind the device
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/phylink.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/phylink.c
@@ -444,8 +444,7 @@
 
 	pl->cur_interface = link_state.interface;
 	pl->ops->mac_link_up(pl->config, pl->link_an_mode,
-			     pl->phy_state.interface,
-			     pl->phydev);
+			     pl->cur_interface, pl->phydev);
 
 	if (ndev)
 		netif_carrier_on(ndev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/realtek.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/realtek.c
@@ -171,7 +171,9 @@
 
 static int rtl8211f_config_init(struct phy_device *phydev)
 {
+	struct device *dev = &phydev->mdio.dev;
 	u16 val;
+	int ret;
 
 	/* enable TX-delay for rgmii-{id,txid}, and disable it for rgmii and
 	 * rgmii-rxid. The RX-delay can be enabled by the external RXDLY pin.
@@ -189,7 +191,22 @@
 		return 0;
 	}
 
-	return phy_modify_paged(phydev, 0xd08, 0x11, RTL8211F_TX_DELAY, val);
+	ret = phy_modify_paged_changed(phydev, 0xd08, 0x11, RTL8211F_TX_DELAY,
+				       val);
+	if (ret < 0) {
+		dev_err(dev, "Failed to update the TX delay register\n");
+		return ret;
+	} else if (ret) {
+		dev_dbg(dev,
+			"%s 2ns TX delay (and changing the value from pin-strapping RXD1 or the bootloader)\n",
+			val ? "Enabling" : "Disabling");
+	} else {
+		dev_dbg(dev,
+			"2ns TX delay was already %s (by pin-strapping RXD1 or bootloader configuration)\n",
+			val ? "enabled" : "disabled");
+	}
+
+	return 0;
 }
 
 static int rtl8211e_config_init(struct phy_device *phydev)
@@ -438,6 +455,15 @@
 		.suspend	= genphy_suspend,
 		.resume		= genphy_resume,
 		.read_page	= rtl821x_read_page,
+		.write_page	= rtl821x_write_page,
+	}, {
+		PHY_ID_MATCH_MODEL(0x001cc880),
+		.name		= "RTL8208 Fast Ethernet",
+		.read_mmd	= genphy_read_mmd_unsupported,
+		.write_mmd	= genphy_write_mmd_unsupported,
+		.suspend	= genphy_suspend,
+		.resume		= genphy_resume,
+		.read_page	= rtl821x_read_page,
 		.write_page	= rtl821x_write_page,
 	}, {
 		PHY_ID_MATCH_EXACT(0x001cc910),
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/sfp-bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/sfp-bus.c
@@ -9,6 +9,12 @@
 
 #include "sfp.h"
 
+struct sfp_quirk {
+	const char *vendor;
+	const char *part;
+	void (*modes)(const struct sfp_eeprom_id *id, unsigned long *modes);
+};
+
 /**
  * struct sfp_bus - internal representation of a sfp bus
  */
@@ -21,6 +27,7 @@
 	const struct sfp_socket_ops *socket_ops;
 	struct device *sfp_dev;
 	struct sfp *sfp;
+	const struct sfp_quirk *sfp_quirk;
 
 	const struct sfp_upstream_ops *upstream_ops;
 	void *upstream;
@@ -30,6 +37,71 @@
 	bool started;
 };
 
+static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
+				unsigned long *modes)
+{
+	phylink_set(modes, 2500baseX_Full);
+}
+
+static const struct sfp_quirk sfp_quirks[] = {
+	{
+		// Alcatel Lucent G-010S-P can operate at 2500base-X, but
+		// incorrectly report 2500MBd NRZ in their EEPROM
+		.vendor = "ALCATELLUCENT",
+		.part = "G010SP",
+		.modes = sfp_quirk_2500basex,
+	}, {
+		// Alcatel Lucent G-010S-A can operate at 2500base-X, but
+		// report 3.2GBd NRZ in their EEPROM
+		.vendor = "ALCATELLUCENT",
+		.part = "3FE46541AA",
+		.modes = sfp_quirk_2500basex,
+	}, {
+		// Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
+		// NRZ in their EEPROM
+		.vendor = "HUAWEI",
+		.part = "MA5671A",
+		.modes = sfp_quirk_2500basex,
+	},
+};
+
+static size_t sfp_strlen(const char *str, size_t maxlen)
+{
+	size_t size, i;
+
+	/* Trailing characters should be filled with space chars */
+	for (i = 0, size = 0; i < maxlen; i++)
+		if (str[i] != ' ')
+			size = i + 1;
+
+	return size;
+}
+
+static bool sfp_match(const char *qs, const char *str, size_t len)
+{
+	if (!qs)
+		return true;
+	if (strlen(qs) != len)
+		return false;
+	return !strncmp(qs, str, len);
+}
+
+static const struct sfp_quirk *sfp_lookup_quirk(const struct sfp_eeprom_id *id)
+{
+	const struct sfp_quirk *q;
+	unsigned int i;
+	size_t vs, ps;
+
+	vs = sfp_strlen(id->base.vendor_name, ARRAY_SIZE(id->base.vendor_name));
+	ps = sfp_strlen(id->base.vendor_pn, ARRAY_SIZE(id->base.vendor_pn));
+
+	for (i = 0, q = sfp_quirks; i < ARRAY_SIZE(sfp_quirks); i++, q++)
+		if (sfp_match(q->vendor, id->base.vendor_name, vs) &&
+		    sfp_match(q->part, id->base.vendor_pn, ps))
+			return q;
+
+	return NULL;
+}
 /**
  * sfp_parse_port() - Parse the EEPROM base ID, setting the port type
  * @bus: a pointer to the &struct sfp_bus structure for the sfp module
@@ -233,6 +305,9 @@
 			phylink_set(modes, 1000baseX_Full);
 	}
 
+	if (bus->sfp_quirk)
+		bus->sfp_quirk->modes(id, modes);
+
 	bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
 	phylink_set(support, Autoneg);
@@ -553,6 +628,8 @@
 	const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus);
 	int ret = 0;
 
+	bus->sfp_quirk = sfp_lookup_quirk(id);
+
 	if (ops && ops->module_insert)
 		ret = ops->module_insert(bus->upstream, id);
 
@@ -566,6 +643,8 @@
 
 	if (ops && ops->module_remove)
 		ops->module_remove(bus->upstream);
+
+	bus->sfp_quirk = NULL;
 }
 EXPORT_SYMBOL_GPL(sfp_module_remove);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/phy/sfp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/phy/sfp.c
@@ -1970,7 +1970,8 @@
 			continue;
 
 		sfp->gpio_irq[i] = gpiod_to_irq(sfp->gpio[i]);
-		if (!sfp->gpio_irq[i]) {
+		if (sfp->gpio_irq[i] < 0) {
+			sfp->gpio_irq[i] = 0;
 			poll = true;
 			continue;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ppp/ppp_async.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ppp/ppp_async.c
@@ -874,15 +874,15 @@
 				skb = dev_alloc_skb(ap->mru + PPP_HDRLEN + 2);
 				if (!skb)
 					goto nomem;
- 				ap->rpkt = skb;
- 			}
- 			if (skb->len == 0) {
- 				/* Try to get the payload 4-byte aligned.
- 				 * This should match the
- 				 * PPP_ALLSTATIONS/PPP_UI/compressed tests in
- 				 * process_input_packet, but we do not have
- 				 * enough chars here to test buf[1] and buf[2].
- 				 */
+				ap->rpkt = skb;
+			}
+			if (skb->len == 0) {
+				/* Try to get the payload 4-byte aligned.
+				 * This should match the
+				 * PPP_ALLSTATIONS/PPP_UI/compressed tests in
+				 * process_input_packet, but we do not have
+				 * enough chars here to test buf[1] and buf[2].
+				 */
 				if (buf[0] != PPP_ALLSTATIONS)
 					skb_reserve(skb, 2 + (buf[0] & 1));
 			}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/ppp/pppoe.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/ppp/pppoe.c
@@ -492,6 +492,9 @@
 	if (!skb)
 		goto out;
 
+	if (skb->pkt_type != PACKET_HOST)
+		goto abort;
+
 	if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
 		goto abort;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/slip/slhc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/slip/slhc.c
@@ -232,7 +232,7 @@
 	struct cstate *cs = lcs->next;
 	unsigned long deltaS, deltaA;
 	short changes = 0;
-	int hlen;
+	int nlen, hlen;
 	unsigned char new_seq[16];
 	unsigned char *cp = new_seq;
 	struct iphdr *ip;
@@ -248,6 +248,8 @@
 		return isize;
 
 	ip = (struct iphdr *) icp;
+	if (ip->version != 4 || ip->ihl < 5)
+		return isize;
 
 	/* Bail if this packet isn't TCP, or is an IP fragment */
 	if (ip->protocol != IPPROTO_TCP || (ntohs(ip->frag_off) & 0x3fff)) {
@@ -258,10 +260,14 @@
 			comp->sls_o_tcp++;
 		return isize;
 	}
-	/* Extract TCP header */
+	nlen = ip->ihl * 4;
+	if (isize < nlen + sizeof(*th))
+		return isize;
 
-	th = (struct tcphdr *)(((unsigned char *)ip) + ip->ihl*4);
-	hlen = ip->ihl*4 + th->doff*4;
+	th = (struct tcphdr *)(icp + nlen);
+	if (th->doff < sizeof(struct tcphdr) / 4)
+		return isize;
+	hlen = nlen + th->doff * 4;
 
 	/*  Bail if the TCP packet isn't `compressible' (i.e., ACK isn't set or
 	 *  some other control bit is set). Also uncompressible if
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/slip/slip.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/slip/slip.c
@@ -452,9 +452,16 @@
  */
 static void slip_write_wakeup(struct tty_struct *tty)
 {
-	struct slip *sl = tty->disc_data;
+	struct slip *sl;
+
+	rcu_read_lock();
+	sl = rcu_dereference(tty->disc_data);
+	if (!sl)
+		goto out;
 
 	schedule_work(&sl->tx_work);
+out:
+	rcu_read_unlock();
 }
 
 static void sl_tx_timeout(struct net_device *dev)
@@ -855,7 +862,11 @@
 	sl->tty = NULL;
 	tty->disc_data = NULL;
 	clear_bit(SLF_INUSE, &sl->flags);
+	sl_free_netdev(sl->dev);
+	/* do not call free_netdev before rtnl_unlock */
+	rtnl_unlock();
 	free_netdev(sl->dev);
+	return err;
 
 err_exit:
 	rtnl_unlock();
@@ -881,10 +892,11 @@
 		return;
 
 	spin_lock_bh(&sl->lock);
-	tty->disc_data = NULL;
+	rcu_assign_pointer(tty->disc_data, NULL);
 	sl->tty = NULL;
 	spin_unlock_bh(&sl->lock);
 
+	synchronize_rcu();
 	flush_work(&sl->tx_work);
 
 	/* VSV = very important to remove timers */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/tap.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/tap.c
@@ -1095,10 +1095,9 @@
 			return -ENOLINK;
 		}
 		ret = 0;
-		u = tap->dev->type;
+		dev_get_mac_address(&sa, dev_net(tap->dev), tap->dev->name);
 		if (copy_to_user(&ifr->ifr_name, tap->dev->name, IFNAMSIZ) ||
-		    copy_to_user(&ifr->ifr_hwaddr.sa_data, tap->dev->dev_addr, ETH_ALEN) ||
-		    put_user(u, &ifr->ifr_hwaddr.sa_family))
+		    copy_to_user(&ifr->ifr_hwaddr, &sa, sizeof(sa)))
 			ret = -EFAULT;
 		tap_put_tap_dev(tap);
 		rtnl_unlock();
@@ -1113,7 +1112,7 @@
 			rtnl_unlock();
 			return -ENOLINK;
 		}
-		ret = dev_set_mac_address(tap->dev, &sa, NULL);
+		ret = dev_set_mac_address_user(tap->dev, &sa, NULL);
 		tap_put_tap_dev(tap);
 		rtnl_unlock();
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/team/team.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/team/team.c
@@ -287,7 +287,7 @@
 	for (i--; i >= 0; i--)
 		__team_option_inst_del_option(team, dst_opts[i]);
 
-	i = option_count - 1;
+	i = option_count;
 alloc_rollback:
 	for (i--; i >= 0; i--)
 		kfree(dst_opts[i]);
@@ -468,6 +468,9 @@
 	struct team_mode_item *mitem;
 	const struct team_mode *mode = NULL;
 
+	if (!try_module_get(THIS_MODULE))
+		return NULL;
+
 	spin_lock(&mode_list_lock);
 	mitem = __find_mode(kind);
 	if (!mitem) {
@@ -483,6 +486,7 @@
 	}
 
 	spin_unlock(&mode_list_lock);
+	module_put(THIS_MODULE);
 	return mode;
 }
 
@@ -987,7 +991,8 @@
 	unsigned int dst_release_flag = IFF_XMIT_DST_RELEASE |
 					IFF_XMIT_DST_RELEASE_PERM;
 
-	list_for_each_entry(port, &team->port_list, list) {
+	rcu_read_lock();
+	list_for_each_entry_rcu(port, &team->port_list, list) {
 		vlan_features = netdev_increment_features(vlan_features,
 					port->dev->vlan_features,
 					TEAM_VLAN_FEATURES);
@@ -1001,6 +1006,7 @@
 		if (port->dev->hard_header_len > max_hard_header_len)
 			max_hard_header_len = port->dev->hard_header_len;
 	}
+	rcu_read_unlock();
 
 	team->dev->vlan_features = vlan_features;
 	team->dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL |
@@ -1016,9 +1022,7 @@
 
 static void team_compute_features(struct team *team)
 {
-	mutex_lock(&team->lock);
 	__team_compute_features(team);
-	mutex_unlock(&team->lock);
 	netdev_change_features(team->dev);
 }
 
@@ -2074,7 +2078,8 @@
 	cmd->base.duplex = DUPLEX_UNKNOWN;
 	cmd->base.port = PORT_OTHER;
 
-	list_for_each_entry(port, &team->port_list, list) {
+	rcu_read_lock();
+	list_for_each_entry_rcu(port, &team->port_list, list) {
 		if (team_port_txable(port)) {
 			if (port->state.speed != SPEED_UNKNOWN)
 				speed += port->state.speed;
@@ -2083,6 +2088,8 @@
 				cmd->base.duplex = port->state.duplex;
 		}
 	}
+	rcu_read_unlock();
+
 	cmd->base.speed = speed ? : SPEED_UNKNOWN;
 
 	return 0;
@@ -2104,6 +2111,7 @@
 	dev->header_ops	= port_dev->header_ops;
 	dev->type = port_dev->type;
 	dev->hard_header_len = port_dev->hard_header_len;
+	dev->needed_headroom = port_dev->needed_headroom;
 	dev->addr_len = port_dev->addr_len;
 	dev->mtu = port_dev->mtu;
 	memcpy(dev->broadcast, port_dev->broadcast, port_dev->addr_len);
@@ -2237,6 +2245,8 @@
 	[TEAM_ATTR_OPTION_CHANGED]		= { .type = NLA_FLAG },
 	[TEAM_ATTR_OPTION_TYPE]			= { .type = NLA_U8 },
 	[TEAM_ATTR_OPTION_DATA]			= { .type = NLA_BINARY },
+	[TEAM_ATTR_OPTION_PORT_IFINDEX]		= { .type = NLA_U32 },
+	[TEAM_ATTR_OPTION_ARRAY_INDEX]		= { .type = NLA_U32 },
 };
 
 static int team_nl_cmd_noop(struct sk_buff *skb, struct genl_info *info)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/tun.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/tun.c
@@ -313,8 +313,8 @@
 	tfile->napi_enabled = napi_en;
 	tfile->napi_frags_enabled = napi_en && napi_frags;
 	if (napi_en) {
-		netif_napi_add(tun->dev, &tfile->napi, tun_napi_poll,
-			       NAPI_POLL_WEIGHT);
+		netif_tx_napi_add(tun->dev, &tfile->napi, tun_napi_poll,
+				  NAPI_POLL_WEIGHT);
 		napi_enable(&tfile->napi);
 	}
 }
@@ -1469,7 +1469,7 @@
 	int i;
 
 	if (it->nr_segs > MAX_SKB_FRAGS + 1)
-		return ERR_PTR(-ENOMEM);
+		return ERR_PTR(-EMSGSIZE);
 
 	local_bh_disable();
 	skb = napi_get_frags(&tfile->napi);
@@ -1715,8 +1715,12 @@
 			alloc_frag->offset += buflen;
 		}
 		err = tun_xdp_act(tun, xdp_prog, &xdp, act);
-		if (err < 0)
-			goto err_xdp;
+		if (err < 0) {
+			if (act == XDP_REDIRECT || act == XDP_TX)
+				put_page(alloc_frag->page);
+			goto out;
+		}
+
 		if (err == XDP_REDIRECT)
 			xdp_do_flush_map();
 		if (err != XDP_PASS)
@@ -1730,8 +1734,6 @@
 
 	return __tun_build_skb(tfile, alloc_frag, buf, buflen, len, pad);
 
-err_xdp:
-	put_page(alloc_frag->page);
 out:
 	rcu_read_unlock();
 	local_bh_enable();
@@ -1906,8 +1908,11 @@
 		skb->dev = tun->dev;
 		break;
 	case IFF_TAP:
-		if (!frags)
-			skb->protocol = eth_type_trans(skb, tun->dev);
+		if (frags && !pskb_may_pull(skb, ETH_HLEN)) {
+			err = -ENOMEM;
+			goto drop;
+		}
+		skb->protocol = eth_type_trans(skb, tun->dev);
 		break;
 	}
 
@@ -1923,6 +1928,7 @@
 
 	skb_reset_network_header(skb);
 	skb_probe_transport_header(skb);
+	skb_record_rx_queue(skb, tfile->queue_index);
 
 	if (skb_xdp) {
 		struct bpf_prog *xdp_prog;
@@ -1936,6 +1942,10 @@
 			if (ret != XDP_PASS) {
 				rcu_read_unlock();
 				local_bh_enable();
+				if (frags) {
+					tfile->napi.skb = NULL;
+					mutex_unlock(&tfile->napi_mutex);
+				}
 				return total_len;
 			}
 		}
@@ -1959,9 +1969,12 @@
 	}
 
 	if (frags) {
+		u32 headlen;
+
 		/* Exercise flow dissector code path. */
-		u32 headlen = eth_get_headlen(tun->dev, skb->data,
-					      skb_headlen(skb));
+		skb_push(skb, ETH_HLEN);
+		headlen = eth_get_headlen(tun->dev, skb->data,
+					  skb_headlen(skb));
 
 		if (unlikely(headlen > skb_headlen(skb))) {
 			this_cpu_inc(tun->pcpu_stats->rx_dropped);
@@ -2015,12 +2028,15 @@
 	struct tun_file *tfile = file->private_data;
 	struct tun_struct *tun = tun_get(tfile);
 	ssize_t result;
+	int noblock = 0;
 
 	if (!tun)
 		return -EBADFD;
 
-	result = tun_get_user(tun, tfile, NULL, from,
-			      file->f_flags & O_NONBLOCK, false);
+	if ((file->f_flags & O_NONBLOCK) || (iocb->ki_flags & IOCB_NOWAIT))
+		noblock = 1;
+
+	result = tun_get_user(tun, tfile, NULL, from, noblock, false);
 
 	tun_put(tun);
 	return result;
@@ -2241,10 +2257,15 @@
 	struct tun_file *tfile = file->private_data;
 	struct tun_struct *tun = tun_get(tfile);
 	ssize_t len = iov_iter_count(to), ret;
+	int noblock = 0;
 
 	if (!tun)
 		return -EBADFD;
-	ret = tun_do_read(tun, tfile, to, file->f_flags & O_NONBLOCK, NULL);
+
+	if ((file->f_flags & O_NONBLOCK) || (iocb->ki_flags & IOCB_NOWAIT))
+		noblock = 1;
+
+	ret = tun_do_read(tun, tfile, to, noblock, NULL);
 	ret = min_t(ssize_t, ret, len);
 	if (ret > 0)
 		iocb->ki_pos = ret;
@@ -2486,6 +2507,7 @@
 	skb->protocol = eth_type_trans(skb, tun->dev);
 	skb_reset_network_header(skb);
 	skb_probe_transport_header(skb);
+	skb_record_rx_queue(skb, tfile->queue_index);
 
 	if (skb_xdp) {
 		err = do_xdp_generic(xdp_prog, skb);
@@ -2497,7 +2519,6 @@
 	    !tfile->detached)
 		rxhash = __skb_get_hash_symmetric(skb);
 
-	skb_record_rx_queue(skb, tfile->queue_index);
 	netif_receive_skb(skb);
 
 	/* No need for get_cpu_ptr() here since this function is
@@ -3203,7 +3224,7 @@
 	case SIOCGIFHWADDR:
 		/* Get hw address */
 		memcpy(ifr.ifr_hwaddr.sa_data, tun->dev->dev_addr, ETH_ALEN);
-		ifr.ifr_hwaddr.sa_family = tun->dev->type;
+		dev_get_mac_address(&ifr.ifr_hwaddr, net, tun->dev->name);
 		if (copy_to_user(argp, &ifr, ifreq_len))
 			ret = -EFAULT;
 		break;
@@ -3213,7 +3234,7 @@
 		tun_debug(KERN_DEBUG, tun, "set hw address: %pM\n",
 			  ifr.ifr_hwaddr.sa_data);
 
-		ret = dev_set_mac_address(tun->dev, &ifr.ifr_hwaddr, NULL);
+		ret = dev_set_mac_address_user(tun->dev, &ifr.ifr_hwaddr, NULL);
 		break;
 
 	case TUNGETSNDBUF:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/asix_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/asix_common.c
@@ -296,7 +296,7 @@
 
 	netdev_dbg(dev->net, "asix_get_phy_addr()\n");
 
-	if (ret < 0) {
+	if (ret < 2) {
 		netdev_err(dev->net, "Error reading PHYID register: %02x\n", ret);
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/ax88172a.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/ax88172a.c
@@ -198,6 +198,7 @@
 	ret = asix_read_cmd(dev, AX_CMD_READ_NODE_ID, 0, 0, ETH_ALEN, buf, 0);
 	if (ret < ETH_ALEN) {
 		netdev_err(dev->net, "Failed to read MAC address: %d\n", ret);
+		ret = -EIO;
 		goto free;
 	}
 	memcpy(dev->net->dev_addr, buf, ETH_ALEN);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/ax88179_178a.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/ax88179_178a.c
@@ -1387,10 +1387,10 @@
 		}
 
 		if (pkt_cnt == 0) {
-			/* Skip IP alignment psudo header */
-			skb_pull(skb, 2);
 			skb->len = pkt_len;
-			skb_set_tail_pointer(skb, pkt_len);
+			/* Skip IP alignment pseudo header */
+			skb_pull(skb, 2);
+			skb_set_tail_pointer(skb, skb->len);
 			skb->truesize = pkt_len + sizeof(struct sk_buff);
 			ax88179_rx_checksum(skb, pkt_hdr);
 			return 1;
@@ -1399,8 +1399,9 @@
 		ax_skb = skb_clone(skb, GFP_ATOMIC);
 		if (ax_skb) {
 			ax_skb->len = pkt_len;
-			ax_skb->data = skb->data + 2;
-			skb_set_tail_pointer(ax_skb, pkt_len);
+			/* Skip IP alignment pseudo header */
+			skb_pull(ax_skb, 2);
+			skb_set_tail_pointer(ax_skb, ax_skb->len);
 			ax_skb->truesize = pkt_len + sizeof(struct sk_buff);
 			ax88179_rx_checksum(ax_skb, pkt_hdr);
 			usbnet_skb_return(dev, ax_skb);
@@ -1718,6 +1719,7 @@
 	.status = ax88179_status,
 	.link_reset = ax88179_link_reset,
 	.reset	= ax88179_reset,
+	.stop	= ax88179_stop,
 	.flags	= FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/cdc_ether.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/cdc_ether.c
@@ -766,6 +766,13 @@
 	.driver_info = 0,
 },
 
+/* ThinkPad Thunderbolt 3 Dock Gen 2 (based on Realtek RTL8153) */
+{
+	USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3082, USB_CLASS_COMM,
+			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+	.driver_info = 0,
+},
+
 /* Lenovo Thinkpad USB 3.0 Ethernet Adapters (based on Realtek RTL8153) */
 {
 	USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x7205, USB_CLASS_COMM,
@@ -787,6 +794,13 @@
 	.driver_info = 0,
 },
 
+/* Lenovo Powered USB-C Travel Hub (4X90S92381, based on Realtek RTL8153) */
+{
+	USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x721e, USB_CLASS_COMM,
+			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+	.driver_info = 0,
+},
+
 /* ThinkPad USB-C Dock Gen 2 (based on Realtek RTL8153) */
 {
 	USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0xa387, USB_CLASS_COMM,
@@ -808,14 +822,21 @@
 	.driver_info = 0,
 },
 
-/* Microsoft Surface 3 dock (based on Realtek RTL8153) */
+/* Microsoft Surface Ethernet Adapter (based on Realtek RTL8153) */
 {
 	USB_DEVICE_AND_INTERFACE_INFO(MICROSOFT_VENDOR_ID, 0x07c6, USB_CLASS_COMM,
 			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
 	.driver_info = 0,
 },
 
-	/* TP-LINK UE300 USB 3.0 Ethernet Adapters (based on Realtek RTL8153) */
+/* Microsoft Surface Ethernet Adapter (based on Realtek RTL8153B) */
+{
+	USB_DEVICE_AND_INTERFACE_INFO(MICROSOFT_VENDOR_ID, 0x0927, USB_CLASS_COMM,
+			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+	.driver_info = 0,
+},
+
+/* TP-LINK UE300 USB 3.0 Ethernet Adapters (based on Realtek RTL8153) */
 {
 	USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, 0x0601, USB_CLASS_COMM,
 			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/cdc_ncm.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/cdc_ncm.c
@@ -1126,7 +1126,10 @@
 	 * accordingly. Otherwise, we should check here.
 	 */
 	if (ctx->drvflags & CDC_NCM_FLAG_NDP_TO_END)
-		delayed_ndp_size = ALIGN(ctx->max_ndp_size, ctx->tx_ndp_modulus);
+		delayed_ndp_size = ctx->max_ndp_size +
+			max_t(u32,
+			      ctx->tx_ndp_modulus,
+			      ctx->tx_modulus + ctx->tx_remainder) - 1;
 	else
 		delayed_ndp_size = 0;
 
@@ -1307,7 +1310,8 @@
 	if (!(dev->driver_info->flags & FLAG_SEND_ZLP) &&
 	    skb_out->len > ctx->min_tx_pkt) {
 		padding_count = ctx->tx_curr_size - skb_out->len;
-		skb_put_zero(skb_out, padding_count);
+		if (!WARN_ON(padding_count > ctx->tx_curr_size))
+			skb_put_zero(skb_out, padding_count);
 	} else if (skb_out->len < ctx->tx_curr_size &&
 		   (skb_out->len % dev->maxpacket) == 0) {
 		skb_put_u8(skb_out, 0);	/* force short packet */
@@ -1625,9 +1629,6 @@
 		 * USB_CDC_NOTIFY_NETWORK_CONNECTION notification shall be
 		 * sent by device after USB_CDC_NOTIFY_SPEED_CHANGE.
 		 */
-		netif_info(dev, link, dev->net,
-			   "network connection: %sconnected\n",
-			   !!event->wValue ? "" : "dis");
 		usbnet_link_change(dev, !!event->wValue, 0);
 		break;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/dm9601.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/dm9601.c
@@ -625,6 +625,10 @@
 	 USB_DEVICE(0x0a46, 0x1269),	/* DM9621A USB to Fast Ethernet Adapter */
 	 .driver_info = (unsigned long)&dm9601_info,
 	},
+	{
+	 USB_DEVICE(0x0586, 0x3427),	/* ZyXEL Keenetic Plus DSL xDSL modem */
+	 .driver_info = (unsigned long)&dm9601_info,
+	},
 	{},			// END
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/hso.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/hso.c
@@ -1389,8 +1389,9 @@
 	unsigned long flags;
 
 	if (old)
-		hso_dbg(0x16, "Termios called with: cflags new[%d] - old[%d]\n",
-			tty->termios.c_cflag, old->c_cflag);
+		hso_dbg(0x16, "Termios called with: cflags new[%u] - old[%u]\n",
+			(unsigned int)tty->termios.c_cflag,
+			(unsigned int)old->c_cflag);
 
 	/* the actual setup */
 	spin_lock_irqsave(&serial->serial_lock, flags);
@@ -2259,12 +2260,14 @@
 
 	minor = get_free_serial_index();
 	if (minor < 0)
-		goto exit;
+		goto exit2;
 
 	/* register our minor number */
 	serial->parent->dev = tty_port_register_device_attr(&serial->port,
 			tty_drv, minor, &serial->parent->interface->dev,
 			serial->parent, hso_serial_dev_groups);
+	if (IS_ERR(serial->parent->dev))
+		goto exit2;
 
 	/* fill in specific data for later use */
 	serial->minor = minor;
@@ -2309,6 +2312,7 @@
 	return 0;
 exit:
 	hso_serial_tty_unregister(serial);
+exit2:
 	hso_serial_common_free(serial);
 	return -1;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/ipheth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/ipheth.c
@@ -59,7 +59,7 @@
 #define IPHETH_USBINTF_SUBCLASS 253
 #define IPHETH_USBINTF_PROTO    1
 
-#define IPHETH_BUF_SIZE         1516
+#define IPHETH_BUF_SIZE         1514
 #define IPHETH_IP_ALIGN		2	/* padding at front of URB */
 #define IPHETH_TX_TIMEOUT       (5 * HZ)
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/lan78xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/lan78xx.c
@@ -20,6 +20,7 @@
 #include <linux/mdio.h>
 #include <linux/phy.h>
 #include <net/ip6_checksum.h>
+#include <net/vxlan.h>
 #include <linux/interrupt.h>
 #include <linux/irqdomain.h>
 #include <linux/irq.h>
@@ -376,10 +377,6 @@
 	struct tasklet_struct	bh;
 	struct delayed_work	wq;
 
-	struct usb_host_endpoint *ep_blkin;
-	struct usb_host_endpoint *ep_blkout;
-	struct usb_host_endpoint *ep_intr;
-
 	int			msg_enable;
 
 	struct urb		*urb_intr;
@@ -511,7 +508,7 @@
 		}
 	} else {
 		netdev_warn(dev->net,
-			    "Failed to read stat ret = 0x%x", ret);
+			    "Failed to read stat ret = %d", ret);
 	}
 
 	kfree(stats);
@@ -1808,6 +1805,7 @@
 	dev->mdiobus->read = lan78xx_mdiobus_read;
 	dev->mdiobus->write = lan78xx_mdiobus_write;
 	dev->mdiobus->name = "lan78xx-mdiobus";
+	dev->mdiobus->parent = &dev->udev->dev;
 
 	snprintf(dev->mdiobus->id, MII_BUS_ID_SIZE, "usb-%03d:%03d",
 		 dev->udev->bus->busnum, dev->udev->devnum);
@@ -2723,11 +2721,6 @@
 	return 0;
 }
 
-static int lan78xx_linearize(struct sk_buff *skb)
-{
-	return skb_linearize(skb);
-}
-
 static struct sk_buff *lan78xx_tx_prep(struct lan78xx_net *dev,
 				       struct sk_buff *skb, gfp_t flags)
 {
@@ -2739,8 +2732,10 @@
 		return NULL;
 	}
 
-	if (lan78xx_linearize(skb) < 0)
+	if (skb_linearize(skb)) {
+		dev_kfree_skb_any(skb);
 		return NULL;
+	}
 
 	tx_cmd_a = (u32)(skb->len & TX_CMD_A_LEN_MASK_) | TX_CMD_A_FCS_;
 
@@ -2869,78 +2864,12 @@
 	return NETDEV_TX_OK;
 }
 
-static int
-lan78xx_get_endpoints(struct lan78xx_net *dev, struct usb_interface *intf)
-{
-	int tmp;
-	struct usb_host_interface *alt = NULL;
-	struct usb_host_endpoint *in = NULL, *out = NULL;
-	struct usb_host_endpoint *status = NULL;
-
-	for (tmp = 0; tmp < intf->num_altsetting; tmp++) {
-		unsigned ep;
-
-		in = NULL;
-		out = NULL;
-		status = NULL;
-		alt = intf->altsetting + tmp;
-
-		for (ep = 0; ep < alt->desc.bNumEndpoints; ep++) {
-			struct usb_host_endpoint *e;
-			int intr = 0;
-
-			e = alt->endpoint + ep;
-			switch (e->desc.bmAttributes) {
-			case USB_ENDPOINT_XFER_INT:
-				if (!usb_endpoint_dir_in(&e->desc))
-					continue;
-				intr = 1;
-				/* FALLTHROUGH */
-			case USB_ENDPOINT_XFER_BULK:
-				break;
-			default:
-				continue;
-			}
-			if (usb_endpoint_dir_in(&e->desc)) {
-				if (!intr && !in)
-					in = e;
-				else if (intr && !status)
-					status = e;
-			} else {
-				if (!out)
-					out = e;
-			}
-		}
-		if (in && out)
-			break;
-	}
-	if (!alt || !in || !out)
-		return -EINVAL;
-
-	dev->pipe_in = usb_rcvbulkpipe(dev->udev,
-				       in->desc.bEndpointAddress &
-				       USB_ENDPOINT_NUMBER_MASK);
-	dev->pipe_out = usb_sndbulkpipe(dev->udev,
-					out->desc.bEndpointAddress &
-					USB_ENDPOINT_NUMBER_MASK);
-	dev->ep_intr = status;
-
-	return 0;
-}
-
 static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf)
 {
 	struct lan78xx_priv *pdata = NULL;
 	int ret;
 	int i;
 
-	ret = lan78xx_get_endpoints(dev, intf);
-	if (ret) {
-		netdev_warn(dev->net, "lan78xx_get_endpoints failed: %d\n",
-			    ret);
-		return ret;
-	}
-
 	dev->data[0] = (unsigned long)kzalloc(sizeof(*pdata), GFP_KERNEL);
 
 	pdata = (struct lan78xx_priv *)(dev->data[0]);
@@ -3670,6 +3599,19 @@
 	tasklet_schedule(&dev->bh);
 }
 
+static netdev_features_t lan78xx_features_check(struct sk_buff *skb,
+						struct net_device *netdev,
+						netdev_features_t features)
+{
+	if (skb->len + TX_OVERHEAD > MAX_SINGLE_PACKET_SIZE)
+		features &= ~NETIF_F_GSO_MASK;
+
+	features = vlan_features_check(skb, features);
+	features = vxlan_features_check(skb, features);
+
+	return features;
+}
+
 static const struct net_device_ops lan78xx_netdev_ops = {
 	.ndo_open		= lan78xx_open,
 	.ndo_stop		= lan78xx_stop,
@@ -3683,6 +3625,7 @@
 	.ndo_set_features	= lan78xx_set_features,
 	.ndo_vlan_rx_add_vid	= lan78xx_vlan_rx_add_vid,
 	.ndo_vlan_rx_kill_vid	= lan78xx_vlan_rx_kill_vid,
+	.ndo_features_check	= lan78xx_features_check,
 };
 
 static void lan78xx_stat_monitor(struct timer_list *t)
@@ -3695,6 +3638,7 @@
 static int lan78xx_probe(struct usb_interface *intf,
 			 const struct usb_device_id *id)
 {
+	struct usb_host_endpoint *ep_blkin, *ep_blkout, *ep_intr;
 	struct lan78xx_net *dev;
 	struct net_device *netdev;
 	struct usb_device *udev;
@@ -3743,6 +3687,34 @@
 
 	mutex_init(&dev->stats.access_lock);
 
+	if (intf->cur_altsetting->desc.bNumEndpoints < 3) {
+		ret = -ENODEV;
+		goto out2;
+	}
+
+	dev->pipe_in = usb_rcvbulkpipe(udev, BULK_IN_PIPE);
+	ep_blkin = usb_pipe_endpoint(udev, dev->pipe_in);
+	if (!ep_blkin || !usb_endpoint_is_bulk_in(&ep_blkin->desc)) {
+		ret = -ENODEV;
+		goto out2;
+	}
+
+	dev->pipe_out = usb_sndbulkpipe(udev, BULK_OUT_PIPE);
+	ep_blkout = usb_pipe_endpoint(udev, dev->pipe_out);
+	if (!ep_blkout || !usb_endpoint_is_bulk_out(&ep_blkout->desc)) {
+		ret = -ENODEV;
+		goto out2;
+	}
+
+	ep_intr = &intf->cur_altsetting->endpoint[2];
+	if (!usb_endpoint_is_int_in(&ep_intr->desc)) {
+		ret = -ENODEV;
+		goto out2;
+	}
+
+	dev->pipe_intr = usb_rcvintpipe(dev->udev,
+					usb_endpoint_num(&ep_intr->desc));
+
 	ret = lan78xx_bind(dev, intf);
 	if (ret < 0)
 		goto out2;
@@ -3752,19 +3724,9 @@
 
 	/* MTU range: 68 - 9000 */
 	netdev->max_mtu = MAX_SINGLE_PACKET_SIZE;
+	netif_set_gso_max_size(netdev, MAX_SINGLE_PACKET_SIZE - MAX_HEADER);
 
-	dev->ep_blkin = (intf->cur_altsetting)->endpoint + 0;
-	dev->ep_blkout = (intf->cur_altsetting)->endpoint + 1;
-	dev->ep_intr = (intf->cur_altsetting)->endpoint + 2;
-
-	dev->pipe_in = usb_rcvbulkpipe(udev, BULK_IN_PIPE);
-	dev->pipe_out = usb_sndbulkpipe(udev, BULK_OUT_PIPE);
-
-	dev->pipe_intr = usb_rcvintpipe(dev->udev,
-					dev->ep_intr->desc.bEndpointAddress &
-					USB_ENDPOINT_NUMBER_MASK);
-	period = dev->ep_intr->desc.bInterval;
-
+	period = ep_intr->desc.bInterval;
 	maxp = usb_maxpacket(dev->udev, dev->pipe_intr, 0);
 	buf = kmalloc(maxp, GFP_KERNEL);
 	if (buf) {
@@ -3777,6 +3739,7 @@
 			usb_fill_int_urb(dev->urb_intr, dev->udev,
 					 dev->pipe_intr, buf, maxp,
 					 intr_complete, dev, period);
+			dev->urb_intr->transfer_flags |= URB_FREE_BUFFER;
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/qmi_wwan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/qmi_wwan.c
@@ -61,7 +61,6 @@
 
 enum qmi_wwan_quirks {
 	QMI_WWAN_QUIRK_DTR = 1 << 0,	/* needs "set DTR" request */
-	QMI_WWAN_QUIRK_QUECTEL_DYNCFG = 1 << 1,	/* check num. endpoints */
 };
 
 struct qmimux_hdr {
@@ -338,6 +337,9 @@
 		netdev_dbg(net, "mode: raw IP\n");
 	} else if (!net->header_ops) { /* don't bother if already set */
 		ether_setup(net);
+		/* Restoring min/max mtu values set originally by usbnet */
+		net->min_mtu = 0;
+		net->max_mtu = ETH_MAX_MTU;
 		clear_bit(EVENT_NO_IP_ALIGN, &dev->flags);
 		netdev_dbg(net, "mode: Ethernet\n");
 	}
@@ -439,13 +441,6 @@
 		goto err;
 	}
 
-	/* we don't want to modify a running netdev */
-	if (netif_running(dev->net)) {
-		netdev_err(dev->net, "Cannot change a running device\n");
-		ret = -EBUSY;
-		goto err;
-	}
-
 	ret = qmimux_register_device(dev->net, mux_id);
 	if (!ret) {
 		info->flags |= QMI_WWAN_FLAG_MUX;
@@ -475,13 +470,6 @@
 	if (!rtnl_trylock())
 		return restart_syscall();
 
-	/* we don't want to modify a running netdev */
-	if (netif_running(dev->net)) {
-		netdev_err(dev->net, "Cannot change a running device\n");
-		ret = -EBUSY;
-		goto err;
-	}
-
 	del_dev = qmimux_find_dev(dev, mux_id);
 	if (!del_dev) {
 		netdev_err(dev->net, "mux_id not present\n");
@@ -916,16 +904,6 @@
 	.data           = QMI_WWAN_QUIRK_DTR,
 };
 
-static const struct driver_info	qmi_wwan_info_quirk_quectel_dyncfg = {
-	.description	= "WWAN/QMI device",
-	.flags		= FLAG_WWAN | FLAG_SEND_ZLP,
-	.bind		= qmi_wwan_bind,
-	.unbind		= qmi_wwan_unbind,
-	.manage_power	= qmi_wwan_manage_power,
-	.rx_fixup       = qmi_wwan_rx_fixup,
-	.data           = QMI_WWAN_QUIRK_DTR | QMI_WWAN_QUIRK_QUECTEL_DYNCFG,
-};
-
 #define HUAWEI_VENDOR_ID	0x12D1
 
 /* map QMI/wwan function by a fixed interface number */
@@ -946,14 +924,18 @@
 #define QMI_GOBI_DEVICE(vend, prod) \
 	QMI_FIXED_INTF(vend, prod, 0)
 
-/* Quectel does not use fixed interface numbers on at least some of their
- * devices. We need to check the number of endpoints to ensure that we bind to
- * the correct interface.
+/* Many devices have QMI and DIAG functions which are distinguishable
+ * from other vendor specific functions by class, subclass and
+ * protocol all being 0xff. The DIAG function has exactly 2 endpoints
+ * and is silently rejected when probed.
+ *
+ * This makes it possible to match dynamically numbered QMI functions
+ * as seen on e.g. many Quectel modems.
  */
-#define QMI_QUIRK_QUECTEL_DYNCFG(vend, prod) \
+#define QMI_MATCH_FF_FF_FF(vend, prod) \
 	USB_DEVICE_AND_INTERFACE_INFO(vend, prod, USB_CLASS_VENDOR_SPEC, \
 				      USB_SUBCLASS_VENDOR_SPEC, 0xff), \
-	.driver_info = (unsigned long)&qmi_wwan_info_quirk_quectel_dyncfg
+	.driver_info = (unsigned long)&qmi_wwan_info_quirk_dtr
 
 static const struct usb_device_id products[] = {
 	/* 1. CDC ECM like devices match on the control interface */
@@ -1059,9 +1041,11 @@
 		USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
 		.driver_info = (unsigned long)&qmi_wwan_info,
 	},
-	{QMI_QUIRK_QUECTEL_DYNCFG(0x2c7c, 0x0125)},	/* Quectel EC25, EC20 R2.0  Mini PCIe */
-	{QMI_QUIRK_QUECTEL_DYNCFG(0x2c7c, 0x0306)},	/* Quectel EP06/EG06/EM06 */
-	{QMI_QUIRK_QUECTEL_DYNCFG(0x2c7c, 0x0512)},	/* Quectel EG12/EM12 */
+	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)},	/* Quectel EC25, EC20 R2.0  Mini PCIe */
+	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)},	/* Quectel EP06/EG06/EM06 */
+	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)},	/* Quectel EG12/EM12 */
+	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)},	/* Quectel EM160R-GL */
+	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)},	/* Quectel RM500Q-GL */
 
 	/* 3. Combined interface devices matching on interface number */
 	{QMI_FIXED_INTF(0x0408, 0xea42, 4)},	/* Yota / Megafon M100-1 */
@@ -1095,7 +1079,7 @@
 	{QMI_FIXED_INTF(0x05c6, 0x9011, 4)},
 	{QMI_FIXED_INTF(0x05c6, 0x9021, 1)},
 	{QMI_FIXED_INTF(0x05c6, 0x9022, 2)},
-	{QMI_FIXED_INTF(0x05c6, 0x9025, 4)},	/* Alcatel-sbell ASB TL131 TDD LTE  (China Mobile) */
+	{QMI_QUIRK_SET_DTR(0x05c6, 0x9025, 4)},	/* Alcatel-sbell ASB TL131 TDD LTE (China Mobile) */
 	{QMI_FIXED_INTF(0x05c6, 0x9026, 3)},
 	{QMI_FIXED_INTF(0x05c6, 0x902e, 5)},
 	{QMI_FIXED_INTF(0x05c6, 0x9031, 5)},
@@ -1213,6 +1197,7 @@
 	{QMI_FIXED_INTF(0x1435, 0xd182, 5)},	/* Wistron NeWeb D18 */
 	{QMI_FIXED_INTF(0x1435, 0xd191, 4)},	/* Wistron NeWeb D19Q1 */
 	{QMI_QUIRK_SET_DTR(0x1508, 0x1001, 4)},	/* Fibocom NL668 series */
+	{QMI_FIXED_INTF(0x1690, 0x7588, 4)},    /* ASKEY WWHC050 */
 	{QMI_FIXED_INTF(0x16d8, 0x6003, 0)},	/* CMOTech 6003 */
 	{QMI_FIXED_INTF(0x16d8, 0x6007, 0)},	/* CMOTech CHE-628S */
 	{QMI_FIXED_INTF(0x16d8, 0x6008, 0)},	/* CMOTech CMU-301 */
@@ -1281,6 +1266,7 @@
 	{QMI_FIXED_INTF(0x19d2, 0x1255, 4)},
 	{QMI_FIXED_INTF(0x19d2, 0x1256, 4)},
 	{QMI_FIXED_INTF(0x19d2, 0x1270, 5)},	/* ZTE MF667 */
+	{QMI_FIXED_INTF(0x19d2, 0x1275, 3)},	/* ZTE P685M */
 	{QMI_FIXED_INTF(0x19d2, 0x1401, 2)},
 	{QMI_FIXED_INTF(0x19d2, 0x1402, 2)},	/* ZTE MF60 */
 	{QMI_FIXED_INTF(0x19d2, 0x1424, 2)},
@@ -1326,12 +1312,14 @@
 	{QMI_FIXED_INTF(0x1bbb, 0x0203, 2)},	/* Alcatel L800MA */
 	{QMI_FIXED_INTF(0x2357, 0x0201, 4)},	/* TP-LINK HSUPA Modem MA180 */
 	{QMI_FIXED_INTF(0x2357, 0x9000, 4)},	/* TP-LINK MA260 */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1031, 3)}, /* Telit LE910C1-EUX */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1040, 2)},	/* Telit LE922A */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1050, 2)},	/* Telit FN980 */
 	{QMI_FIXED_INTF(0x1bc7, 0x1100, 3)},	/* Telit ME910 */
 	{QMI_FIXED_INTF(0x1bc7, 0x1101, 3)},	/* Telit ME910 dual modem */
 	{QMI_FIXED_INTF(0x1bc7, 0x1200, 5)},	/* Telit LE920 */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1201, 2)},	/* Telit LE920, LE920A4 */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1230, 2)},	/* Telit LE910Cx */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1260, 2)},	/* Telit LE910Cx */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1261, 2)},	/* Telit LE910Cx */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1900, 1)},	/* Telit LN940 series */
@@ -1346,12 +1334,14 @@
 	{QMI_FIXED_INTF(0x0b3c, 0xc00a, 6)},	/* Olivetti Olicard 160 */
 	{QMI_FIXED_INTF(0x0b3c, 0xc00b, 4)},	/* Olivetti Olicard 500 */
 	{QMI_FIXED_INTF(0x1e2d, 0x0060, 4)},	/* Cinterion PLxx */
+	{QMI_QUIRK_SET_DTR(0x1e2d, 0x006f, 8)}, /* Cinterion PLS83/PLS63 */
 	{QMI_FIXED_INTF(0x1e2d, 0x0053, 4)},	/* Cinterion PHxx,PXxx */
 	{QMI_FIXED_INTF(0x1e2d, 0x0063, 10)},	/* Cinterion ALASxx (1 RmNet) */
 	{QMI_FIXED_INTF(0x1e2d, 0x0082, 4)},	/* Cinterion PHxx,PXxx (2 RmNet) */
 	{QMI_FIXED_INTF(0x1e2d, 0x0082, 5)},	/* Cinterion PHxx,PXxx (2 RmNet) */
 	{QMI_FIXED_INTF(0x1e2d, 0x0083, 4)},	/* Cinterion PHxx,PXxx (1 RmNet + USB Audio)*/
 	{QMI_QUIRK_SET_DTR(0x1e2d, 0x00b0, 4)},	/* Cinterion CLS8 */
+	{QMI_FIXED_INTF(0x1e2d, 0x00b7, 0)},	/* Cinterion MV31 RmNet */
 	{QMI_FIXED_INTF(0x413c, 0x81a2, 8)},	/* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */
 	{QMI_FIXED_INTF(0x413c, 0x81a3, 8)},	/* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */
 	{QMI_FIXED_INTF(0x413c, 0x81a4, 8)},	/* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */
@@ -1361,7 +1351,9 @@
 	{QMI_FIXED_INTF(0x413c, 0x81b3, 8)},	/* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card (rev3) */
 	{QMI_FIXED_INTF(0x413c, 0x81b6, 8)},	/* Dell Wireless 5811e */
 	{QMI_FIXED_INTF(0x413c, 0x81b6, 10)},	/* Dell Wireless 5811e */
+	{QMI_FIXED_INTF(0x413c, 0x81cc, 8)},	/* Dell Wireless 5816e */
 	{QMI_FIXED_INTF(0x413c, 0x81d7, 0)},	/* Dell Wireless 5821e */
+	{QMI_FIXED_INTF(0x413c, 0x81d7, 1)},	/* Dell Wireless 5821e preproduction config */
 	{QMI_FIXED_INTF(0x413c, 0x81e0, 0)},	/* Dell Wireless 5821e with eSIM support*/
 	{QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)},	/* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
 	{QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)},	/* HP lt4120 Snapdragon X5 LTE */
@@ -1369,10 +1361,12 @@
 	{QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)},	/* SIMCom 7100E, 7230E, 7600E ++ */
 	{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)},	/* Quectel EC21 Mini PCIe */
 	{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)},	/* Quectel EG91 */
+	{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)},	/* Quectel EG95 */
 	{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)},	/* Quectel BG96 */
 	{QMI_QUIRK_SET_DTR(0x2cb7, 0x0104, 4)},	/* Fibocom NL678 series */
 	{QMI_FIXED_INTF(0x0489, 0xe0b4, 0)},	/* Foxconn T77W968 LTE */
 	{QMI_FIXED_INTF(0x0489, 0xe0b5, 0)},	/* Foxconn T77W968 LTE with eSIM support*/
+	{QMI_FIXED_INTF(0x2692, 0x9025, 4)},    /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
 
 	/* 4. Gobi 1000 devices */
 	{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
@@ -1453,7 +1447,6 @@
 {
 	struct usb_device_id *id = (struct usb_device_id *)prod;
 	struct usb_interface_descriptor *desc = &intf->cur_altsetting->desc;
-	const struct driver_info *info;
 
 	/* Workaround to enable dynamic IDs.  This disables usbnet
 	 * blacklisting functionality.  Which, if required, can be
@@ -1489,12 +1482,8 @@
 	 * different. Ignore the current interface if the number of endpoints
 	 * equals the number for the diag interface (two).
 	 */
-	info = (void *)id->driver_info;
-
-	if (info->data & QMI_WWAN_QUIRK_QUECTEL_DYNCFG) {
-		if (desc->bNumEndpoints == 2)
-			return -ENODEV;
-	}
+	if (desc->bNumEndpoints == 2)
+		return -ENODEV;
 
 	return usbnet_probe(intf, id);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/r8152.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/r8152.c
@@ -29,7 +29,7 @@
 #define NETNEXT_VERSION		"10"
 
 /* Information for net */
-#define NET_VERSION		"10"
+#define NET_VERSION		"11"
 
 #define DRIVER_VERSION		"v1." NETNEXT_VERSION "." NET_VERSION
 #define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>"
@@ -63,6 +63,7 @@
 #define PLA_LED_FEATURE		0xdd92
 #define PLA_PHYAR		0xde00
 #define PLA_BOOT_CTRL		0xe004
+#define PLA_LWAKE_CTRL_REG	0xe007
 #define PLA_GPHY_INTR_IMR	0xe022
 #define PLA_EEE_CR		0xe040
 #define PLA_EEEP_CR		0xe080
@@ -90,6 +91,7 @@
 #define PLA_TALLYCNT		0xe890
 #define PLA_SFF_STS_7		0xe8de
 #define PLA_PHYSTATUS		0xe908
+#define PLA_CONFIG6		0xe90a /* CONFIG6 */
 #define PLA_BP_BA		0xfc26
 #define PLA_BP_0		0xfc28
 #define PLA_BP_1		0xfc2a
@@ -102,6 +104,7 @@
 #define PLA_BP_EN		0xfc38
 
 #define USB_USB2PHY		0xb41e
+#define USB_SSPHYLINK1		0xb426
 #define USB_SSPHYLINK2		0xb428
 #define USB_U2P3_CTRL		0xb460
 #define USB_CSR_DUMMY1		0xb464
@@ -286,6 +289,9 @@
 #define LINK_ON_WAKE_EN		0x0010
 #define LINK_OFF_WAKE_EN	0x0008
 
+/* PLA_CONFIG6 */
+#define LANWAKE_CLR_EN		BIT(0)
+
 /* PLA_CONFIG5 */
 #define BWF_EN			0x0040
 #define MWF_EN			0x0020
@@ -298,6 +304,7 @@
 /* PLA_PHY_PWR */
 #define TX_10M_IDLE_EN		0x0080
 #define PFM_PWM_SWITCH		0x0040
+#define TEST_IO_OFF		BIT(4)
 
 /* PLA_MAC_PWR_CTRL */
 #define D3_CLK_GATED_EN		0x00004000
@@ -310,6 +317,7 @@
 #define MAC_CLK_SPDWN_EN	BIT(15)
 
 /* PLA_MAC_PWR_CTRL3 */
+#define PLA_MCU_SPDWN_EN	BIT(14)
 #define PKT_AVAIL_SPDWN_EN	0x0100
 #define SUSPEND_SPDWN_EN	0x0004
 #define U1U2_SPDWN_EN		0x0002
@@ -340,6 +348,9 @@
 /* PLA_BOOT_CTRL */
 #define AUTOLOAD_DONE		0x0002
 
+/* PLA_LWAKE_CTRL_REG */
+#define LANWAKE_PIN		BIT(7)
+
 /* PLA_SUSPEND_FLAG */
 #define LINK_CHG_EVENT		BIT(0)
 
@@ -353,6 +364,9 @@
 #define USB2PHY_SUSPEND		0x0001
 #define USB2PHY_L1		0x0002
 
+/* USB_SSPHYLINK1 */
+#define DELAY_PHY_PWR_CHG	BIT(1)
+
 /* USB_SSPHYLINK2 */
 #define pwd_dn_scale_mask	0x3ffe
 #define pwd_dn_scale(x)		((x) << 1)
@@ -622,6 +636,7 @@
 	SCHEDULE_TASKLET,
 	GREEN_ETHERNET,
 	DELL_TB_RX_AGG_BUG,
+	LENOVO_MACPASSTHRU,
 };
 
 /* Define these values to match your device */
@@ -1222,38 +1237,52 @@
 	int ret = -EINVAL;
 	u32 ocp_data;
 	unsigned char buf[6];
-
-	/* test for -AD variant of RTL8153 */
-	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0);
-	if ((ocp_data & AD_MASK) == 0x1000) {
-		/* test for MAC address pass-through bit */
-		ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, EFUSE);
-		if ((ocp_data & PASS_THRU_MASK) != 1) {
-			netif_dbg(tp, probe, tp->netdev,
-				  "No efuse for RTL8153-AD MAC pass through\n");
-			return -ENODEV;
-		}
+	char *mac_obj_name;
+	acpi_object_type mac_obj_type;
+	int mac_strlen;
+
+	if (test_bit(LENOVO_MACPASSTHRU, &tp->flags)) {
+		mac_obj_name = "\\MACA";
+		mac_obj_type = ACPI_TYPE_STRING;
+		mac_strlen = 0x16;
 	} else {
-		/* test for RTL8153-BND and RTL8153-BD */
-		ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_MISC_1);
-		if ((ocp_data & BND_MASK) == 0 && (ocp_data & BD_MASK) == 0) {
-			netif_dbg(tp, probe, tp->netdev,
-				  "Invalid variant for MAC pass through\n");
-			return -ENODEV;
+		/* test for -AD variant of RTL8153 */
+		ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0);
+		if ((ocp_data & AD_MASK) == 0x1000) {
+			/* test for MAC address pass-through bit */
+			ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, EFUSE);
+			if ((ocp_data & PASS_THRU_MASK) != 1) {
+				netif_dbg(tp, probe, tp->netdev,
+						"No efuse for RTL8153-AD MAC pass through\n");
+				return -ENODEV;
+			}
+		} else {
+			/* test for RTL8153-BND and RTL8153-BD */
+			ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_MISC_1);
+			if ((ocp_data & BND_MASK) == 0 && (ocp_data & BD_MASK) == 0) {
+				netif_dbg(tp, probe, tp->netdev,
+						"Invalid variant for MAC pass through\n");
+				return -ENODEV;
+			}
 		}
+
+		mac_obj_name = "\\_SB.AMAC";
+		mac_obj_type = ACPI_TYPE_BUFFER;
+		mac_strlen = 0x17;
 	}
 
 	/* returns _AUXMAC_#AABBCCDDEEFF# */
-	status = acpi_evaluate_object(NULL, "\\_SB.AMAC", NULL, &buffer);
+	status = acpi_evaluate_object(NULL, mac_obj_name, NULL, &buffer);
 	obj = (union acpi_object *)buffer.pointer;
 	if (!ACPI_SUCCESS(status))
 		return -ENODEV;
-	if (obj->type != ACPI_TYPE_BUFFER || obj->string.length != 0x17) {
+	if (obj->type != mac_obj_type || obj->string.length != mac_strlen) {
 		netif_warn(tp, probe, tp->netdev,
 			   "Invalid buffer for pass-thru MAC addr: (%d, %d)\n",
 			   obj->type, obj->string.length);
 		goto amacout;
 	}
+
 	if (strncmp(obj->string.pointer, "_AUXMAC_#", 9) != 0 ||
 	    strncmp(obj->string.pointer + 0x15, "#", 1) != 0) {
 		netif_warn(tp, probe, tp->netdev,
@@ -2992,6 +3021,8 @@
 		}
 
 		msleep(20);
+		if (test_bit(RTL8152_UNPLUG, &tp->flags))
+			break;
 	}
 
 	return data;
@@ -3175,7 +3206,6 @@
 		r8153b_ups_en(tp, false);
 		r8153_queue_wake(tp, false);
 		rtl_runtime_suspend_enable(tp, false);
-		r8153_u2p3en(tp, true);
 		r8153b_u1u2en(tp, true);
 	}
 }
@@ -3703,7 +3733,6 @@
 
 	r8153_aldps_en(tp, true);
 	r8152b_enable_fc(tp);
-	r8153_u2p3en(tp, true);
 
 	set_bit(PHY_RESET, &tp->flags);
 }
@@ -4004,6 +4033,8 @@
 
 static void rtl8153_up(struct r8152 *tp)
 {
+	u32 ocp_data;
+
 	if (test_bit(RTL8152_UNPLUG, &tp->flags))
 		return;
 
@@ -4011,6 +4042,19 @@
 	r8153_u2p3en(tp, false);
 	r8153_aldps_en(tp, false);
 	r8153_first_init(tp);
+
+	ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_CONFIG6);
+	ocp_data |= LANWAKE_CLR_EN;
+	ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CONFIG6, ocp_data);
+
+	ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_LWAKE_CTRL_REG);
+	ocp_data &= ~LANWAKE_PIN;
+	ocp_write_byte(tp, MCU_TYPE_PLA, PLA_LWAKE_CTRL_REG, ocp_data);
+
+	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_SSPHYLINK1);
+	ocp_data &= ~DELAY_PHY_PWR_CHG;
+	ocp_write_word(tp, MCU_TYPE_USB, USB_SSPHYLINK1, ocp_data);
+
 	r8153_aldps_en(tp, true);
 
 	switch (tp->version) {
@@ -4029,11 +4073,17 @@
 
 static void rtl8153_down(struct r8152 *tp)
 {
+	u32 ocp_data;
+
 	if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
 		rtl_drop_queued_tx(tp);
 		return;
 	}
 
+	ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_CONFIG6);
+	ocp_data &= ~LANWAKE_CLR_EN;
+	ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CONFIG6, ocp_data);
+
 	r8153_u1u2en(tp, false);
 	r8153_u2p3en(tp, false);
 	r8153_power_cut_en(tp, false);
@@ -4044,6 +4094,8 @@
 
 static void rtl8153b_up(struct r8152 *tp)
 {
+	u32 ocp_data;
+
 	if (test_bit(RTL8152_UNPLUG, &tp->flags))
 		return;
 
@@ -4054,18 +4106,27 @@
 	r8153_first_init(tp);
 	ocp_write_dword(tp, MCU_TYPE_USB, USB_RX_BUF_TH, RX_THR_B);
 
+	ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3);
+	ocp_data &= ~PLA_MCU_SPDWN_EN;
+	ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data);
+
 	r8153_aldps_en(tp, true);
-	r8153_u2p3en(tp, true);
 	r8153b_u1u2en(tp, true);
 }
 
 static void rtl8153b_down(struct r8152 *tp)
 {
+	u32 ocp_data;
+
 	if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
 		rtl_drop_queued_tx(tp);
 		return;
 	}
 
+	ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3);
+	ocp_data |= PLA_MCU_SPDWN_EN;
+	ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data);
+
 	r8153b_u1u2en(tp, false);
 	r8153_u2p3en(tp, false);
 	r8153b_power_cut_en(tp, false);
@@ -4375,7 +4436,10 @@
 		if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) &
 		    AUTOLOAD_DONE)
 			break;
+
 		msleep(20);
+		if (test_bit(RTL8152_UNPLUG, &tp->flags))
+			break;
 	}
 
 	data = r8153_phy_status(tp, 0);
@@ -4454,6 +4518,14 @@
 	r8153_mac_clk_spd(tp, false);
 	usb_enable_lpm(tp->udev);
 
+	ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_CONFIG6);
+	ocp_data |= LANWAKE_CLR_EN;
+	ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CONFIG6, ocp_data);
+
+	ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_LWAKE_CTRL_REG);
+	ocp_data &= ~LANWAKE_PIN;
+	ocp_write_byte(tp, MCU_TYPE_PLA, PLA_LWAKE_CTRL_REG, ocp_data);
+
 	/* rx aggregation */
 	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
 	ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
@@ -4493,7 +4565,10 @@
 		if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) &
 		    AUTOLOAD_DONE)
 			break;
+
 		msleep(20);
+		if (test_bit(RTL8152_UNPLUG, &tp->flags))
+			break;
 	}
 
 	data = r8153_phy_status(tp, 0);
@@ -4526,6 +4601,19 @@
 	ocp_data |= MAC_CLK_SPDWN_EN;
 	ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL2, ocp_data);
 
+	ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3);
+	ocp_data &= ~PLA_MCU_SPDWN_EN;
+	ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data);
+
+	if (tp->version == RTL_VER_09) {
+		/* Disable Test IO for 32QFN */
+		if (ocp_read_byte(tp, MCU_TYPE_PLA, 0xdc00) & BIT(5)) {
+			ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR);
+			ocp_data |= TEST_IO_OFF;
+			ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data);
+		}
+	}
+
 	set_bit(GREEN_ETHERNET, &tp->flags);
 
 	/* rx aggregation */
@@ -5587,6 +5675,9 @@
 		return -ENODEV;
 	}
 
+	if (intf->cur_altsetting->desc.bNumEndpoints < 3)
+		return -ENODEV;
+
 	usb_reset_device(udev);
 	netdev = alloc_etherdev(sizeof(struct r8152));
 	if (!netdev) {
@@ -5644,6 +5735,10 @@
 		netdev->hw_features &= ~NETIF_F_RXCSUM;
 	}
 
+	if (le16_to_cpu(udev->descriptor.idVendor) == VENDOR_ID_LENOVO &&
+	    le16_to_cpu(udev->descriptor.idProduct) == 0x3082)
+		set_bit(LENOVO_MACPASSTHRU, &tp->flags);
+
 	if (le16_to_cpu(udev->descriptor.bcdDevice) == 0x3011 && udev->serial &&
 	    (!strcmp(udev->serial, "000001000000") || !strcmp(udev->serial, "000002000000"))) {
 		dev_info(&udev->dev, "Dell TB16 Dock, disable RX aggregation");
@@ -5687,6 +5782,11 @@
 
 	intf->needs_remote_wakeup = 1;
 
+	if (!rtl_can_wakeup(tp))
+		__rtl_set_wol(tp, 0);
+	else
+		tp->saved_wolopts = __rtl_get_wol(tp);
+
 	tp->rtl_ops.init(tp);
 	queue_delayed_work(system_long_wq, &tp->hw_phy_work, 0);
 	set_ethernet_addr(tp);
@@ -5700,10 +5800,6 @@
 		goto out1;
 	}
 
-	if (!rtl_can_wakeup(tp))
-		__rtl_set_wol(tp, 0);
-
-	tp->saved_wolopts = __rtl_get_wol(tp);
 	if (tp->saved_wolopts)
 		device_set_wakeup_enable(&udev->dev, true);
 	else
@@ -5760,13 +5856,16 @@
 	{REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)},
+	{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x0927)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x304f)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3062)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3069)},
+	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3082)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x7205)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x720c)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x7214)},
+	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x721e)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0xa387)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)},
 	{REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA,  0x09ff)},
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/rndis_host.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/rndis_host.c
@@ -201,7 +201,7 @@
 			dev_dbg(&info->control->dev,
 				"rndis response error, code %d\n", retval);
 		}
-		msleep(20);
+		msleep(40);
 	}
 	dev_dbg(&info->control->dev, "rndis response timeout\n");
 	return -ETIMEDOUT;
@@ -387,7 +387,7 @@
 	reply_len = sizeof *phym;
 	retval = rndis_query(dev, intf, u.buf,
 			     RNDIS_OID_GEN_PHYSICAL_MEDIUM,
-			     0, (void **) &phym, &reply_len);
+			     reply_len, (void **)&phym, &reply_len);
 	if (retval != 0 || !phym) {
 		/* OID is optional so don't fail here. */
 		phym_unspec = cpu_to_le32(RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/rtl8150.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/rtl8150.c
@@ -274,12 +274,20 @@
 		return 1;
 }
 
-static inline void set_ethernet_addr(rtl8150_t * dev)
+static void set_ethernet_addr(rtl8150_t *dev)
 {
-	u8 node_id[6];
+	u8 node_id[ETH_ALEN];
+	int ret;
 
-	get_registers(dev, IDR, sizeof(node_id), node_id);
-	memcpy(dev->netdev->dev_addr, node_id, sizeof(node_id));
+	ret = get_registers(dev, IDR, sizeof(node_id), node_id);
+
+	if (ret == sizeof(node_id)) {
+		ether_addr_copy(dev->netdev->dev_addr, node_id);
+	} else {
+		eth_hw_addr_random(dev->netdev);
+		netdev_notice(dev->netdev, "Assigned a random MAC address: %pM\n",
+			      dev->netdev->dev_addr);
+	}
 }
 
 static int rtl8150_set_mac_address(struct net_device *netdev, void *p)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/usb/smsc95xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/usb/smsc95xx.c
@@ -1287,11 +1287,14 @@
 
 	/* Init all registers */
 	ret = smsc95xx_reset(dev);
+	if (ret)
+		goto free_pdata;
 
 	/* detect device revision as different features may be available */
 	ret = smsc95xx_read_reg(dev, ID_REV, &val);
 	if (ret < 0)
-		return ret;
+		goto free_pdata;
+
 	val >>= 16;
 	pdata->chip_id = val;
 	pdata->mdix_ctrl = get_mdix_status(dev->net);
@@ -1317,6 +1320,10 @@
 	schedule_delayed_work(&pdata->carrier_check, CARRIER_CHECK_DELAY);
 
 	return 0;
+
+free_pdata:
+	kfree(pdata);
+	return ret;
 }
 
 static void smsc95xx_unbind(struct usbnet *dev, struct usb_interface *intf)
@@ -1324,7 +1331,7 @@
 	struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
 
 	if (pdata) {
-		cancel_delayed_work(&pdata->carrier_check);
+		cancel_delayed_work_sync(&pdata->carrier_check);
 		netif_dbg(dev, ifdown, dev->net, "free pdata\n");
 		kfree(pdata);
 		pdata = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/veth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/veth.c
@@ -510,13 +510,15 @@
 					struct veth_xdp_tx_bq *bq)
 {
 	void *hard_start = frame->data - frame->headroom;
-	void *head = hard_start - sizeof(struct xdp_frame);
 	int len = frame->len, delta = 0;
 	struct xdp_frame orig_frame;
 	struct bpf_prog *xdp_prog;
 	unsigned int headroom;
 	struct sk_buff *skb;
 
+	/* bpf_xdp_adjust_head() assures BPF cannot access xdp_frame area */
+	hard_start -= sizeof(struct xdp_frame);
+
 	rcu_read_lock();
 	xdp_prog = rcu_dereference(rq->xdp_prog);
 	if (likely(xdp_prog)) {
@@ -538,7 +540,6 @@
 			break;
 		case XDP_TX:
 			orig_frame = *frame;
-			xdp.data_hard_start = head;
 			xdp.rxq->mem = frame->mem;
 			if (unlikely(veth_xdp_tx(rq->dev, &xdp, bq) < 0)) {
 				trace_xdp_exception(rq->dev, xdp_prog, act);
@@ -550,7 +551,6 @@
 			goto xdp_xmit;
 		case XDP_REDIRECT:
 			orig_frame = *frame;
-			xdp.data_hard_start = head;
 			xdp.rxq->mem = frame->mem;
 			if (xdp_do_redirect(rq->dev, &xdp, xdp_prog)) {
 				frame = &orig_frame;
@@ -572,7 +572,7 @@
 	rcu_read_unlock();
 
 	headroom = sizeof(struct xdp_frame) + frame->headroom - delta;
-	skb = veth_build_skb(head, headroom, len, 0);
+	skb = veth_build_skb(hard_start, headroom, len, 0);
 	if (!skb) {
 		xdp_return_frame(frame);
 		goto err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/virtio_net.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/virtio_net.c
@@ -63,6 +63,11 @@
 	VIRTIO_NET_F_GUEST_CSUM
 };
 
+#define GUEST_OFFLOAD_LRO_MASK ((1ULL << VIRTIO_NET_F_GUEST_TSO4) | \
+				(1ULL << VIRTIO_NET_F_GUEST_TSO6) | \
+				(1ULL << VIRTIO_NET_F_GUEST_ECN)  | \
+				(1ULL << VIRTIO_NET_F_GUEST_UFO))
+
 struct virtnet_stat_desc {
 	char desc[ETH_GSTRING_LEN];
 	size_t offset;
@@ -1231,9 +1236,11 @@
 			break;
 	} while (rq->vq->num_free);
 	if (virtqueue_kick_prepare(rq->vq) && virtqueue_notify(rq->vq)) {
-		u64_stats_update_begin(&rq->stats.syncp);
+		unsigned long flags;
+
+		flags = u64_stats_update_begin_irqsave(&rq->stats.syncp);
 		rq->stats.kicks++;
-		u64_stats_update_end(&rq->stats.syncp);
+		u64_stats_update_end_irqrestore(&rq->stats.syncp, flags);
 	}
 
 	return !oom;
@@ -2065,14 +2072,16 @@
 
 	get_online_cpus();
 	err = _virtnet_set_queues(vi, queue_pairs);
-	if (!err) {
-		netif_set_real_num_tx_queues(dev, queue_pairs);
-		netif_set_real_num_rx_queues(dev, queue_pairs);
-
-		virtnet_set_affinity(vi);
+	if (err) {
+		put_online_cpus();
+		goto err;
 	}
+	virtnet_set_affinity(vi);
 	put_online_cpus();
 
+	netif_set_real_num_tx_queues(dev, queue_pairs);
+	netif_set_real_num_rx_queues(dev, queue_pairs);
+ err:
 	return err;
 }
 
@@ -2570,7 +2579,8 @@
 		if (features & NETIF_F_LRO)
 			offloads = vi->guest_offloads_capable;
 		else
-			offloads = 0;
+			offloads = vi->guest_offloads_capable &
+				   ~GUEST_OFFLOAD_LRO_MASK;
 
 		err = virtnet_set_guest_offloads(vi, offloads);
 		if (err)
@@ -3106,6 +3116,7 @@
 			dev_err(&vdev->dev,
 				"device MTU appears to have changed it is now %d < %d",
 				mtu, dev->min_mtu);
+			err = -EINVAL;
 			goto free;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/vmxnet3/vmxnet3_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -861,7 +861,8 @@
 
 			switch (protocol) {
 			case IPPROTO_TCP:
-				ctx->l4_hdr_size = tcp_hdrlen(skb);
+				ctx->l4_hdr_size = skb->encapsulation ? inner_tcp_hdrlen(skb) :
+						   tcp_hdrlen(skb);
 				break;
 			case IPPROTO_UDP:
 				ctx->l4_hdr_size = sizeof(struct udphdr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/vmxnet3/vmxnet3_ethtool.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/vmxnet3/vmxnet3_ethtool.c
@@ -702,6 +702,8 @@
 		*hfunc = ETH_RSS_HASH_TOP;
 	if (!p)
 		return 0;
+	if (n > UPT1_RSS_MAX_IND_TABLE_SIZE)
+		return 0;
 	while (n--)
 		p[n] = rssConf->indTable[n];
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/vrf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/vrf.c
@@ -188,8 +188,8 @@
 	fl6.flowi6_proto = iph->nexthdr;
 	fl6.flowi6_flags = FLOWI_FLAG_SKIP_NH_OIF;
 
-	dst = ip6_route_output(net, NULL, &fl6);
-	if (dst == dst_null)
+	dst = ip6_dst_lookup_flow(net, NULL, &fl6, NULL);
+	if (IS_ERR(dst) || dst == dst_null)
 		goto err;
 
 	skb_dst_drop(skb);
@@ -332,8 +332,7 @@
 	return ret;
 }
 
-static int vrf_finish_direct(struct net *net, struct sock *sk,
-			     struct sk_buff *skb)
+static void vrf_finish_direct(struct sk_buff *skb)
 {
 	struct net_device *vrf_dev = skb->dev;
 
@@ -352,7 +351,8 @@
 		skb_pull(skb, ETH_HLEN);
 	}
 
-	return 1;
+	/* reset skb device */
+	nf_reset_ct(skb);
 }
 
 #if IS_ENABLED(CONFIG_IPV6)
@@ -431,15 +431,41 @@
 	return skb;
 }
 
+static int vrf_output6_direct_finish(struct net *net, struct sock *sk,
+				     struct sk_buff *skb)
+{
+	vrf_finish_direct(skb);
+
+	return vrf_ip6_local_out(net, sk, skb);
+}
+
 static int vrf_output6_direct(struct net *net, struct sock *sk,
 			      struct sk_buff *skb)
 {
+	int err = 1;
+
 	skb->protocol = htons(ETH_P_IPV6);
 
-	return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING,
-			    net, sk, skb, NULL, skb->dev,
-			    vrf_finish_direct,
-			    !(IPCB(skb)->flags & IPSKB_REROUTED));
+	if (!(IPCB(skb)->flags & IPSKB_REROUTED))
+		err = nf_hook(NFPROTO_IPV6, NF_INET_POST_ROUTING, net, sk, skb,
+			      NULL, skb->dev, vrf_output6_direct_finish);
+
+	if (likely(err == 1))
+		vrf_finish_direct(skb);
+
+	return err;
+}
+
+static int vrf_ip6_out_direct_finish(struct net *net, struct sock *sk,
+				     struct sk_buff *skb)
+{
+	int err;
+
+	err = vrf_output6_direct(net, sk, skb);
+	if (likely(err == 1))
+		err = vrf_ip6_local_out(net, sk, skb);
+
+	return err;
 }
 
 static struct sk_buff *vrf_ip6_out_direct(struct net_device *vrf_dev,
@@ -452,18 +478,15 @@
 	skb->dev = vrf_dev;
 
 	err = nf_hook(NFPROTO_IPV6, NF_INET_LOCAL_OUT, net, sk,
-		      skb, NULL, vrf_dev, vrf_output6_direct);
+		      skb, NULL, vrf_dev, vrf_ip6_out_direct_finish);
 
 	if (likely(err == 1))
 		err = vrf_output6_direct(net, sk, skb);
 
-	/* reset skb device */
 	if (likely(err == 1))
-		nf_reset_ct(skb);
-	else
-		skb = NULL;
+		return skb;
 
-	return skb;
+	return NULL;
 }
 
 static struct sk_buff *vrf_ip6_out(struct net_device *vrf_dev,
@@ -474,7 +497,8 @@
 	if (rt6_need_strict(&ipv6_hdr(skb)->daddr))
 		return skb;
 
-	if (qdisc_tx_is_default(vrf_dev))
+	if (qdisc_tx_is_default(vrf_dev) ||
+	    IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED)
 		return vrf_ip6_out_direct(vrf_dev, sk, skb);
 
 	return vrf_ip6_out_redirect(vrf_dev, skb);
@@ -642,15 +666,41 @@
 	return skb;
 }
 
+static int vrf_output_direct_finish(struct net *net, struct sock *sk,
+				    struct sk_buff *skb)
+{
+	vrf_finish_direct(skb);
+
+	return vrf_ip_local_out(net, sk, skb);
+}
+
 static int vrf_output_direct(struct net *net, struct sock *sk,
 			     struct sk_buff *skb)
 {
+	int err = 1;
+
 	skb->protocol = htons(ETH_P_IP);
 
-	return NF_HOOK_COND(NFPROTO_IPV4, NF_INET_POST_ROUTING,
-			    net, sk, skb, NULL, skb->dev,
-			    vrf_finish_direct,
-			    !(IPCB(skb)->flags & IPSKB_REROUTED));
+	if (!(IPCB(skb)->flags & IPSKB_REROUTED))
+		err = nf_hook(NFPROTO_IPV4, NF_INET_POST_ROUTING, net, sk, skb,
+			      NULL, skb->dev, vrf_output_direct_finish);
+
+	if (likely(err == 1))
+		vrf_finish_direct(skb);
+
+	return err;
+}
+
+static int vrf_ip_out_direct_finish(struct net *net, struct sock *sk,
+				    struct sk_buff *skb)
+{
+	int err;
+
+	err = vrf_output_direct(net, sk, skb);
+	if (likely(err == 1))
+		err = vrf_ip_local_out(net, sk, skb);
+
+	return err;
 }
 
 static struct sk_buff *vrf_ip_out_direct(struct net_device *vrf_dev,
@@ -663,18 +713,15 @@
 	skb->dev = vrf_dev;
 
 	err = nf_hook(NFPROTO_IPV4, NF_INET_LOCAL_OUT, net, sk,
-		      skb, NULL, vrf_dev, vrf_output_direct);
+		      skb, NULL, vrf_dev, vrf_ip_out_direct_finish);
 
 	if (likely(err == 1))
 		err = vrf_output_direct(net, sk, skb);
 
-	/* reset skb device */
 	if (likely(err == 1))
-		nf_reset_ct(skb);
-	else
-		skb = NULL;
+		return skb;
 
-	return skb;
+	return NULL;
 }
 
 static struct sk_buff *vrf_ip_out(struct net_device *vrf_dev,
@@ -686,7 +733,8 @@
 	    ipv4_is_lbcast(ip_hdr(skb)->daddr))
 		return skb;
 
-	if (qdisc_tx_is_default(vrf_dev))
+	if (qdisc_tx_is_default(vrf_dev) ||
+	    IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED)
 		return vrf_ip_out_direct(vrf_dev, sk, skb);
 
 	return vrf_ip_out_redirect(vrf_dev, skb);
@@ -990,11 +1038,17 @@
 	int orig_iif = skb->skb_iif;
 	bool need_strict = rt6_need_strict(&ipv6_hdr(skb)->daddr);
 	bool is_ndisc = ipv6_ndisc_frame(skb);
+	bool is_ll_src;
 
 	/* loopback, multicast & non-ND link-local traffic; do not push through
-	 * packet taps again. Reset pkt_type for upper layers to process skb
+	 * packet taps again. Reset pkt_type for upper layers to process skb.
+	 * for packets with lladdr src, however, skip so that the dst can be
+	 * determine at input using original ifindex in the case that daddr
+	 * needs strict
 	 */
-	if (skb->pkt_type == PACKET_LOOPBACK || (need_strict && !is_ndisc)) {
+	is_ll_src = ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL;
+	if (skb->pkt_type == PACKET_LOOPBACK ||
+	    (need_strict && !is_ndisc && !is_ll_src)) {
 		skb->dev = vrf_dev;
 		skb->skb_iif = vrf_dev->ifindex;
 		IP6CB(skb)->flags |= IP6SKB_L3SLAVE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/vxlan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/vxlan.c
@@ -13,6 +13,7 @@
 #include <linux/slab.h>
 #include <linux/udp.h>
 #include <linux/igmp.h>
+#include <linux/inetdevice.h>
 #include <linux/if_ether.h>
 #include <linux/ethtool.h>
 #include <net/arp.h>
@@ -91,6 +92,167 @@
 	       ip_tunnel_collect_metadata();
 }
 
+static struct ip_fan_map *vxlan_fan_find_map(struct vxlan_dev *vxlan, __be32 daddr)
+{
+	struct ip_fan_map *fan_map;
+
+	rcu_read_lock();
+	list_for_each_entry_rcu(fan_map, &vxlan->fan.fan_maps, list) {
+		if (fan_map->overlay ==
+		    (daddr & inet_make_mask(fan_map->overlay_prefix))) {
+			rcu_read_unlock();
+			return fan_map;
+		}
+	}
+	rcu_read_unlock();
+
+	return NULL;
+}
+
+static void vxlan_fan_flush_map(struct vxlan_dev *vxlan)
+{
+	struct ip_fan_map *fan_map;
+
+	list_for_each_entry_rcu(fan_map, &vxlan->fan.fan_maps, list) {
+		list_del_rcu(&fan_map->list);
+		kfree_rcu(fan_map, rcu);
+	}
+}
+
+static int vxlan_fan_del_map(struct vxlan_dev *vxlan, __be32 overlay)
+{
+	struct ip_fan_map *fan_map;
+
+	fan_map = vxlan_fan_find_map(vxlan, overlay);
+	if (!fan_map)
+		return -ENOENT;
+
+	list_del_rcu(&fan_map->list);
+	kfree_rcu(fan_map, rcu);
+
+	return 0;
+}
+
+static int vxlan_fan_add_map(struct vxlan_dev *vxlan, struct ifla_fan_map *map)
+{
+	__be32 overlay_mask, underlay_mask;
+	struct ip_fan_map *fan_map;
+
+	overlay_mask = inet_make_mask(map->overlay_prefix);
+	underlay_mask = inet_make_mask(map->underlay_prefix);
+
+	netdev_dbg(vxlan->dev, "vfam: map: o %x/%d u %x/%d om %x um %x\n",
+		   map->overlay, map->overlay_prefix,
+		   map->underlay, map->underlay_prefix,
+		   overlay_mask, underlay_mask);
+
+	if ((map->overlay & ~overlay_mask) || (map->underlay & ~underlay_mask))
+		return -EINVAL;
+
+	if (!(map->overlay & overlay_mask) && (map->underlay & underlay_mask))
+		return -EINVAL;
+
+	/* Special case: overlay 0 and underlay 0: flush all mappings */
+	if (!map->overlay && !map->underlay) {
+		vxlan_fan_flush_map(vxlan);
+		return 0;
+	}
+	
+	/* Special case: overlay set and underlay 0: clear map for overlay */
+	if (!map->underlay)
+		return vxlan_fan_del_map(vxlan, map->overlay);
+
+	if (vxlan_fan_find_map(vxlan, map->overlay))
+		return -EEXIST;
+
+	fan_map = kmalloc(sizeof(*fan_map), GFP_KERNEL);
+	fan_map->underlay = map->underlay;
+	fan_map->overlay = map->overlay;
+	fan_map->underlay_prefix = map->underlay_prefix;
+	fan_map->overlay_mask = ntohl(overlay_mask);
+	fan_map->overlay_prefix = map->overlay_prefix;
+
+	list_add_tail_rcu(&fan_map->list, &vxlan->fan.fan_maps);
+
+	return 0;
+}
+	
+static int vxlan_parse_fan_map(struct nlattr *data[], struct vxlan_dev *vxlan)
+{
+	struct ifla_fan_map *map;
+	struct nlattr *attr;
+	int rem, rv;
+
+	nla_for_each_nested(attr, data[IFLA_IPTUN_FAN_MAP], rem) {
+		map = nla_data(attr);
+		rv = vxlan_fan_add_map(vxlan, map);
+		if (rv)
+			return rv;
+	}
+
+	return 0;
+}
+
+static int vxlan_fan_build_rdst(struct vxlan_dev *vxlan, struct sk_buff *skb,
+				      struct vxlan_rdst *fan_rdst)
+{
+	struct ip_fan_map *f_map;
+	union vxlan_addr *va;
+	u32 daddr, underlay;
+	struct arphdr *arp;
+	void *arp_ptr;
+	struct ethhdr *eth;
+	struct iphdr *iph;
+
+	eth = eth_hdr(skb);
+	switch (eth->h_proto) {
+	case htons(ETH_P_IP):
+		iph = ip_hdr(skb);
+		if (!iph)
+			return -EINVAL;
+		daddr = iph->daddr;
+		break;
+	case htons(ETH_P_ARP):
+		arp = arp_hdr(skb);
+		if (!arp)
+			return -EINVAL;
+		arp_ptr = arp + 1;
+		netdev_dbg(vxlan->dev,
+			   "vfbr: arp sha %pM sip %pI4 tha %pM tip %pI4\n",
+			   arp_ptr, arp_ptr + skb->dev->addr_len,
+			   arp_ptr + skb->dev->addr_len + 4,
+			   arp_ptr + (skb->dev->addr_len * 2) + 4);
+		arp_ptr += (skb->dev->addr_len * 2) + 4;
+		memcpy(&daddr, arp_ptr, 4);
+		break;
+	default:
+		netdev_dbg(vxlan->dev, "vfbr: unknown eth p %x\n", eth->h_proto);
+		return -EINVAL;
+	}
+
+	f_map = vxlan_fan_find_map(vxlan, daddr);
+	if (!f_map)
+		return -EINVAL;
+
+	daddr = ntohl(daddr);
+	underlay = ntohl(f_map->underlay);
+	if (!underlay)
+		return -EINVAL;
+
+	memset(fan_rdst, 0, sizeof(*fan_rdst));
+	va = &fan_rdst->remote_ip;
+	va->sa.sa_family = AF_INET;
+	fan_rdst->remote_vni = vxlan->default_dst.remote_vni;
+	va->sin.sin_addr.s_addr = htonl(underlay |
+					((daddr & ~f_map->overlay_mask) >>
+					 (32 - f_map->overlay_prefix -
+					  (32 - f_map->underlay_prefix))));
+	netdev_dbg(vxlan->dev, "vfbr: daddr %x ul %x dst %x\n",
+		   daddr, underlay, va->sin.sin_addr.s_addr);
+
+	return 0;
+}
+
 #if IS_ENABLED(CONFIG_IPV6)
 static inline
 bool vxlan_addr_equal(const union vxlan_addr *a, const union vxlan_addr *b)
@@ -1225,6 +1387,7 @@
 	for (h = 0; h < FDB_HASH_SIZE; ++h) {
 		struct vxlan_fdb *f;
 
+		rcu_read_lock();
 		hlist_for_each_entry_rcu(f, &vxlan->fdb_head[h], hlist) {
 			struct vxlan_rdst *rd;
 
@@ -1237,12 +1400,15 @@
 						     cb->nlh->nlmsg_seq,
 						     RTM_NEWNEIGH,
 						     NLM_F_MULTI, rd);
-				if (err < 0)
+				if (err < 0) {
+					rcu_read_unlock();
 					goto out;
+				}
 skip:
 				*idx += 1;
 			}
 		}
+		rcu_read_unlock();
 	}
 out:
 	return err;
@@ -1924,6 +2090,10 @@
 	ns_olen = request->len - skb_network_offset(request) -
 		sizeof(struct ipv6hdr) - sizeof(*ns);
 	for (i = 0; i < ns_olen-1; i += (ns->opt[i+1]<<3)) {
+		if (!ns->opt[i + 1]) {
+			kfree_skb(reply);
+			return NULL;
+		}
 		if (ns->opt[i] == ND_OPT_SOURCE_LL_ADDR) {
 			daddr = ns->opt + i + sizeof(struct nd_opt_hdr);
 			break;
@@ -2276,7 +2446,6 @@
 	bool use_cache = ip_tunnel_dst_cache_usable(skb, info);
 	struct dst_entry *ndst;
 	struct flowi6 fl6;
-	int err;
 
 	if (!sock6)
 		return ERR_PTR(-EIO);
@@ -2299,10 +2468,9 @@
 	fl6.fl6_dport = dport;
 	fl6.fl6_sport = sport;
 
-	err = ipv6_stub->ipv6_dst_lookup(vxlan->net,
-					 sock6->sock->sk,
-					 &ndst, &fl6);
-	if (unlikely(err < 0)) {
+	ndst = ipv6_stub->ipv6_dst_lookup_flow(vxlan->net, sock6->sock->sk,
+					       &fl6, NULL);
+	if (unlikely(IS_ERR(ndst))) {
 		netdev_dbg(dev, "no route to %pI6\n", daddr);
 		return ERR_PTR(-ENETUNREACH);
 	}
@@ -2519,6 +2687,13 @@
 			goto tx_error;
 		}
 
+		if (fan_has_map(&vxlan->fan) && rt->rt_flags & RTCF_LOCAL) {
+			netdev_dbg(dev, "discard fan to localhost %pI4\n",
+				   &dst->sin.sin_addr.s_addr);
+			ip_rt_put(rt);
+			goto tx_free;
+		}
+
 		if (!info) {
 			/* Bypass encapsulation if the destination is local */
 			err = encap_bypass_if_local(skb, dev, vxlan, dst,
@@ -2615,6 +2790,7 @@
 		dev->stats.tx_carrier_errors++;
 	dst_release(ndst);
 	dev->stats.tx_errors++;
+tx_free:
 	kfree_skb(skb);
 }
 
@@ -2669,6 +2845,20 @@
 #endif
 	}
 
+	if (fan_has_map(&vxlan->fan)) {
+		struct vxlan_rdst fan_rdst;
+
+		netdev_dbg(vxlan->dev, "vxlan_xmit p %x d %pM\n",
+			   eth->h_proto, eth->h_dest);
+		if (vxlan_fan_build_rdst(vxlan, skb, &fan_rdst)) {
+			dev->stats.tx_dropped++;
+			kfree_skb(skb);
+			return NETDEV_TX_OK;
+		}
+		vxlan_xmit_one(skb, dev, vni, &fan_rdst, 0);
+		return NETDEV_TX_OK;
+	}
+
 	eth = eth_hdr(skb);
 	f = vxlan_find_mac(vxlan, eth->h_dest, vni);
 	did_rsc = false;
@@ -2781,10 +2971,19 @@
 /* Setup stats when device is created */
 static int vxlan_init(struct net_device *dev)
 {
+	struct vxlan_dev *vxlan = netdev_priv(dev);
+	int err;
+
 	dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
 	if (!dev->tstats)
 		return -ENOMEM;
 
+	err = gro_cells_init(&vxlan->gro_cells, dev);
+	if (err) {
+		free_percpu(dev->tstats);
+		return err;
+	}
+
 	return 0;
 }
 
@@ -2852,8 +3051,10 @@
 			if (!do_all && (f->state & (NUD_PERMANENT | NUD_NOARP)))
 				continue;
 			/* the all_zeros_mac entry is deleted at vxlan_uninit */
-			if (!is_zero_ether_addr(f->eth_addr))
-				vxlan_fdb_destroy(vxlan, f, true, true);
+			if (is_zero_ether_addr(f->eth_addr) &&
+			    f->vni == vxlan->cfg.vni)
+				continue;
+			vxlan_fdb_destroy(vxlan, f, true, true);
 		}
 		spin_unlock_bh(&vxlan->hash_lock[h]);
 	}
@@ -3045,12 +3246,12 @@
 
 	vxlan->dev = dev;
 
-	gro_cells_init(&vxlan->gro_cells, dev);
-
 	for (h = 0; h < FDB_HASH_SIZE; ++h) {
 		spin_lock_init(&vxlan->hash_lock[h]);
 		INIT_HLIST_HEAD(&vxlan->fdb_head[h]);
 	}
+
+	INIT_LIST_HEAD(&vxlan->fan.fan_maps);
 }
 
 static void vxlan_ether_setup(struct net_device *dev)
@@ -3139,7 +3340,7 @@
 		u32 id = nla_get_u32(data[IFLA_VXLAN_ID]);
 
 		if (id >= VXLAN_N_VID) {
-			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_ID],
+			NL_SET_ERR_MSG_ATTR(extack, data[IFLA_VXLAN_ID],
 					    "VXLAN ID must be lower than 16777216");
 			return -ERANGE;
 		}
@@ -3150,7 +3351,7 @@
 			= nla_data(data[IFLA_VXLAN_PORT_RANGE]);
 
 		if (ntohs(p->high) < ntohs(p->low)) {
-			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_PORT_RANGE],
+			NL_SET_ERR_MSG_ATTR(extack, data[IFLA_VXLAN_PORT_RANGE],
 					    "Invalid source port range");
 			return -EINVAL;
 		}
@@ -3160,7 +3361,7 @@
 		enum ifla_vxlan_df df = nla_get_u8(data[IFLA_VXLAN_DF]);
 
 		if (df < 0 || df > VXLAN_DF_MAX) {
-			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_DF],
+			NL_SET_ERR_MSG_ATTR(extack, data[IFLA_VXLAN_DF],
 					    "Invalid DF attribute");
 			return -EINVAL;
 		}
@@ -3523,6 +3724,9 @@
 		dev->gso_max_segs = lowerdev->gso_max_segs;
 
 		needed_headroom = lowerdev->hard_header_len;
+		needed_headroom += lowerdev->needed_headroom;
+
+		dev->needed_tailroom = lowerdev->needed_tailroom;
 
 		max_mtu = lowerdev->mtu - (use_ipv6 ? VXLAN6_HEADROOM :
 					   VXLAN_HEADROOM);
@@ -3602,8 +3806,10 @@
 
 	if (dst->remote_ifindex) {
 		remote_dev = __dev_get_by_index(net, dst->remote_ifindex);
-		if (!remote_dev)
+		if (!remote_dev) {
+			err = -ENODEV;
 			goto errout;
+		}
 
 		err = netdev_upper_dev_link(remote_dev, dev, extack);
 		if (err)
@@ -3722,6 +3928,12 @@
 		conf->remote_ip.sa.sa_family = AF_INET6;
 	}
 
+	if (data[IFLA_VXLAN_FAN_MAP]) {
+		err = vxlan_parse_fan_map(data, vxlan);
+		if (err)
+			return err;
+	}
+
 	if (data[IFLA_VXLAN_LOCAL]) {
 		if (changelink && (conf->saddr.sa.sa_family != AF_INET)) {
 			NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL], "New local address family does not match old");
@@ -4058,6 +4270,7 @@
 		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_UDP_ZERO_CSUM6_RX */
 		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_REMCSUM_TX */
 		nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_REMCSUM_RX */
+		nla_total_size(sizeof(struct ip_fan_map) * 256) +
 		0;
 }
 
@@ -4104,6 +4317,26 @@
 		}
 	}
 
+	if (fan_has_map(&vxlan->fan)) {
+		struct nlattr *fan_nest;
+		struct ip_fan_map *fan_map;
+
+		fan_nest = nla_nest_start(skb, IFLA_VXLAN_FAN_MAP);
+		if (!fan_nest)
+			goto nla_put_failure;
+		list_for_each_entry_rcu(fan_map, &vxlan->fan.fan_maps, list) {
+			struct ifla_fan_map map;
+
+			map.underlay = fan_map->underlay;
+			map.underlay_prefix = fan_map->underlay_prefix;
+			map.overlay = fan_map->overlay;
+			map.overlay_prefix = fan_map->overlay_prefix;
+			if (nla_put(skb, IFLA_FAN_MAPPING, sizeof(map), &map))
+				goto nla_put_failure;
+		}
+		nla_nest_end(skb, fan_nest);
+	}
+
 	if (nla_put_u8(skb, IFLA_VXLAN_TTL, vxlan->cfg.ttl) ||
 	    nla_put_u8(skb, IFLA_VXLAN_TTL_INHERIT,
 		       !!(vxlan->cfg.flags & VXLAN_F_TTL_INHERIT)) ||
@@ -4399,12 +4632,27 @@
 	return 0;
 }
 
+#ifdef CONFIG_SYSCTL
+static struct ctl_table_header *vxlan_fan_header;
+static unsigned int vxlan_fan_version = 4;
+
+static struct ctl_table vxlan_fan_sysctls[] = {
+	{
+		.procname	= "vxlan",
+		.data		= &vxlan_fan_version,
+		.maxlen		= sizeof(vxlan_fan_version),
+		.mode		= 0444,
+		.proc_handler	= proc_dointvec,
+	},
+	{},
+};
+#endif /* CONFIG_SYSCTL */
+
 static void vxlan_destroy_tunnels(struct net *net, struct list_head *head)
 {
 	struct vxlan_net *vn = net_generic(net, vxlan_net_id);
 	struct vxlan_dev *vxlan, *next;
 	struct net_device *dev, *aux;
-	unsigned int h;
 
 	for_each_netdev_safe(net, dev, aux)
 		if (dev->rtnl_link_ops == &vxlan_link_ops)
@@ -4418,14 +4666,13 @@
 			unregister_netdevice_queue(vxlan->dev, head);
 	}
 
-	for (h = 0; h < PORT_HASH_SIZE; ++h)
-		WARN_ON_ONCE(!hlist_empty(&vn->sock_list[h]));
 }
 
 static void __net_exit vxlan_exit_batch_net(struct list_head *net_list)
 {
 	struct net *net;
 	LIST_HEAD(list);
+	unsigned int h;
 
 	rtnl_lock();
 	list_for_each_entry(net, net_list, exit_list)
@@ -4433,6 +4680,13 @@
 
 	unregister_netdevice_many(&list);
 	rtnl_unlock();
+
+	list_for_each_entry(net, net_list, exit_list) {
+		struct vxlan_net *vn = net_generic(net, vxlan_net_id);
+
+		for (h = 0; h < PORT_HASH_SIZE; ++h)
+			WARN_ON_ONCE(!hlist_empty(&vn->sock_list[h]));
+	}
 }
 
 static struct pernet_operations vxlan_net_ops = {
@@ -4464,7 +4718,20 @@
 	if (rc)
 		goto out4;
 
+#ifdef CONFIG_SYSCTL
+	vxlan_fan_header = register_net_sysctl(&init_net, "net/fan",
+					      vxlan_fan_sysctls);
+	if (!vxlan_fan_header) {
+		rc = -ENOMEM;
+		goto sysctl_failed;
+	}
+#endif /* CONFIG_SYSCTL */
+
 	return 0;
+#ifdef CONFIG_SYSCTL
+sysctl_failed:
+	rtnl_link_unregister(&vxlan_link_ops);
+#endif /* CONFIG_SYSCTL */
 out4:
 	unregister_switchdev_notifier(&vxlan_switchdev_notifier_block);
 out3:
@@ -4478,6 +4745,9 @@
 
 static void __exit vxlan_cleanup_module(void)
 {
+#ifdef CONFIG_SYSCTL
+	unregister_net_sysctl_table(vxlan_fan_header);
+#endif /* CONFIG_SYSCTL */
 	rtnl_link_unregister(&vxlan_link_ops);
 	unregister_switchdev_notifier(&vxlan_switchdev_notifier_block);
 	unregister_netdevice_notifier(&vxlan_notifier_block);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/Kconfig
@@ -200,7 +200,7 @@
 	depends on WANXL && !PREVENT_FIRMWARE_BUILD
 	help
 	  Allows you to rebuild firmware run by the QUICC processor.
-	  It requires as68k, ld68k and hexdump programs.
+	  It requires m68k toolchains and hexdump programs.
 
 	  You should never need this option, say N.
 
@@ -282,6 +282,7 @@
 	tristate "Slic Maxim ds26522 card support"
 	depends on SPI
 	depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
+	select BITREVERSE
 	help
 	  This module initializes and configures the slic maxim card
 	  in T1 or E1 mode.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/Makefile
@@ -40,17 +40,17 @@
 
 ifeq ($(CONFIG_WANXL_BUILD_FIRMWARE),y)
 ifeq ($(ARCH),m68k)
-  AS68K = $(AS)
-  LD68K = $(LD)
+  M68KCC = $(CC)
+  M68KLD = $(LD)
 else
-  AS68K = as68k
-  LD68K = ld68k
+  M68KCC = $(CROSS_COMPILE_M68K)gcc
+  M68KLD = $(CROSS_COMPILE_M68K)ld
 endif
 
 quiet_cmd_build_wanxlfw = BLD FW  $@
       cmd_build_wanxlfw = \
-	$(CPP) -D__ASSEMBLY__ -Wp,-MD,$(depfile) -I$(srctree)/include/uapi $< | $(AS68K) -m68360 -o $(obj)/wanxlfw.o; \
-	$(LD68K) --oformat binary -Ttext 0x1000 $(obj)/wanxlfw.o -o $(obj)/wanxlfw.bin; \
+	$(M68KCC) -D__ASSEMBLY__ -Wp,-MD,$(depfile) -I$(srctree)/include/uapi -c -o $(obj)/wanxlfw.o $<; \
+	$(M68KLD) --oformat binary -Ttext 0x1000 $(obj)/wanxlfw.o -o $(obj)/wanxlfw.bin; \
 	hexdump -ve '"\n" 16/1 "0x%02X,"' $(obj)/wanxlfw.bin | sed 's/0x  ,//g;1s/^/static const u8 firmware[]={/;$$s/,$$/\n};\n/' >$(obj)/wanxlfw.inc; \
 	rm -f $(obj)/wanxlfw.bin $(obj)/wanxlfw.o
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/cosa.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/cosa.c
@@ -889,6 +889,7 @@
 			chan->tx_status = 1;
 			spin_unlock_irqrestore(&cosa->lock, flags);
 			up(&chan->wsem);
+			kfree(kbuf);
 			return -ERESTARTSYS;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/fsl_ucc_hdlc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/fsl_ucc_hdlc.c
@@ -73,7 +73,7 @@
 	},
 };
 
-static struct ucc_tdm_info utdm_info[MAX_HDLC_NUM];
+static struct ucc_tdm_info utdm_info[UCC_MAX_NUM];
 
 static int uhdlc_init(struct ucc_hdlc_private *priv)
 {
@@ -245,6 +245,11 @@
 		ret = -ENOMEM;
 		goto free_riptr;
 	}
+	if (riptr != (u16)riptr || tiptr != (u16)tiptr) {
+		dev_err(priv->dev, "MURAM allocation out of addressable range\n");
+		ret = -ENOMEM;
+		goto free_tiptr;
+	}
 
 	/* Set RIPTR, TIPTR */
 	iowrite16be(riptr, &priv->ucc_pram->riptr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/hdlc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/hdlc.c
@@ -46,7 +46,15 @@
 static int hdlc_rcv(struct sk_buff *skb, struct net_device *dev,
 		    struct packet_type *p, struct net_device *orig_dev)
 {
-	struct hdlc_device *hdlc = dev_to_hdlc(dev);
+	struct hdlc_device *hdlc;
+
+	/* First make sure "dev" is an HDLC device */
+	if (!(dev->priv_flags & IFF_WAN_HDLC)) {
+		kfree_skb(skb);
+		return NET_RX_SUCCESS;
+	}
+
+	hdlc = dev_to_hdlc(dev);
 
 	if (!net_eq(dev_net(dev), &init_net)) {
 		kfree_skb(skb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/hdlc_cisco.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/hdlc_cisco.c
@@ -118,6 +118,7 @@
 	skb_put(skb, sizeof(struct cisco_packet));
 	skb->priority = TC_PRIO_CONTROL;
 	skb->dev = dev;
+	skb->protocol = htons(ETH_P_HDLC);
 	skb_reset_network_header(skb);
 
 	dev_queue_xmit(skb);
@@ -370,6 +371,7 @@
 		memcpy(&state(hdlc)->settings, &new_settings, size);
 		spin_lock_init(&state(hdlc)->lock);
 		dev->header_ops = &cisco_header_ops;
+		dev->hard_header_len = sizeof(struct hdlc_header);
 		dev->type = ARPHRD_CISCO;
 		call_netdevice_notifiers(NETDEV_POST_TYPE_CHANGE, dev);
 		netif_dormant_on(dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/hdlc_fr.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/hdlc_fr.c
@@ -273,63 +273,69 @@
 
 static int fr_hard_header(struct sk_buff **skb_p, u16 dlci)
 {
-	u16 head_len;
 	struct sk_buff *skb = *skb_p;
 
-	switch (skb->protocol) {
-	case cpu_to_be16(NLPID_CCITT_ANSI_LMI):
-		head_len = 4;
-		skb_push(skb, head_len);
-		skb->data[3] = NLPID_CCITT_ANSI_LMI;
-		break;
-
-	case cpu_to_be16(NLPID_CISCO_LMI):
-		head_len = 4;
-		skb_push(skb, head_len);
-		skb->data[3] = NLPID_CISCO_LMI;
-		break;
-
-	case cpu_to_be16(ETH_P_IP):
-		head_len = 4;
-		skb_push(skb, head_len);
-		skb->data[3] = NLPID_IP;
-		break;
-
-	case cpu_to_be16(ETH_P_IPV6):
-		head_len = 4;
-		skb_push(skb, head_len);
-		skb->data[3] = NLPID_IPV6;
-		break;
-
-	case cpu_to_be16(ETH_P_802_3):
-		head_len = 10;
-		if (skb_headroom(skb) < head_len) {
-			struct sk_buff *skb2 = skb_realloc_headroom(skb,
-								    head_len);
+	if (!skb->dev) { /* Control packets */
+		switch (dlci) {
+		case LMI_CCITT_ANSI_DLCI:
+			skb_push(skb, 4);
+			skb->data[3] = NLPID_CCITT_ANSI_LMI;
+			break;
+
+		case LMI_CISCO_DLCI:
+			skb_push(skb, 4);
+			skb->data[3] = NLPID_CISCO_LMI;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+
+	} else if (skb->dev->type == ARPHRD_DLCI) {
+		switch (skb->protocol) {
+		case htons(ETH_P_IP):
+			skb_push(skb, 4);
+			skb->data[3] = NLPID_IP;
+			break;
+
+		case htons(ETH_P_IPV6):
+			skb_push(skb, 4);
+			skb->data[3] = NLPID_IPV6;
+			break;
+
+		default:
+			skb_push(skb, 10);
+			skb->data[3] = FR_PAD;
+			skb->data[4] = NLPID_SNAP;
+			/* OUI 00-00-00 indicates an Ethertype follows */
+			skb->data[5] = 0x00;
+			skb->data[6] = 0x00;
+			skb->data[7] = 0x00;
+			/* This should be an Ethertype: */
+			*(__be16 *)(skb->data + 8) = skb->protocol;
+		}
+
+	} else if (skb->dev->type == ARPHRD_ETHER) {
+		if (skb_headroom(skb) < 10) {
+			struct sk_buff *skb2 = skb_realloc_headroom(skb, 10);
 			if (!skb2)
 				return -ENOBUFS;
 			dev_kfree_skb(skb);
 			skb = *skb_p = skb2;
 		}
-		skb_push(skb, head_len);
+		skb_push(skb, 10);
 		skb->data[3] = FR_PAD;
 		skb->data[4] = NLPID_SNAP;
-		skb->data[5] = FR_PAD;
+		/* OUI 00-80-C2 stands for the 802.1 organization */
+		skb->data[5] = 0x00;
 		skb->data[6] = 0x80;
 		skb->data[7] = 0xC2;
+		/* PID 00-07 stands for Ethernet frames without FCS */
 		skb->data[8] = 0x00;
-		skb->data[9] = 0x07; /* bridged Ethernet frame w/out FCS */
-		break;
+		skb->data[9] = 0x07;
 
-	default:
-		head_len = 10;
-		skb_push(skb, head_len);
-		skb->data[3] = FR_PAD;
-		skb->data[4] = NLPID_SNAP;
-		skb->data[5] = FR_PAD;
-		skb->data[6] = FR_PAD;
-		skb->data[7] = FR_PAD;
-		*(__be16*)(skb->data + 8) = skb->protocol;
+	} else {
+		return -EINVAL;
 	}
 
 	dlci_to_q922(skb->data, dlci);
@@ -425,14 +431,16 @@
 				skb_put(skb, pad);
 				memset(skb->data + len, 0, pad);
 			}
-			skb->protocol = cpu_to_be16(ETH_P_802_3);
 		}
+		skb->dev = dev;
 		if (!fr_hard_header(&skb, pvc->dlci)) {
 			dev->stats.tx_bytes += skb->len;
 			dev->stats.tx_packets++;
 			if (pvc->state.fecn) /* TX Congestion counter */
 				dev->stats.tx_compressed++;
 			skb->dev = pvc->frad;
+			skb->protocol = htons(ETH_P_HDLC);
+			skb_reset_network_header(skb);
 			dev_queue_xmit(skb);
 			return NETDEV_TX_OK;
 		}
@@ -492,10 +500,8 @@
 	memset(skb->data, 0, len);
 	skb_reserve(skb, 4);
 	if (lmi == LMI_CISCO) {
-		skb->protocol = cpu_to_be16(NLPID_CISCO_LMI);
 		fr_hard_header(&skb, LMI_CISCO_DLCI);
 	} else {
-		skb->protocol = cpu_to_be16(NLPID_CCITT_ANSI_LMI);
 		fr_hard_header(&skb, LMI_CCITT_ANSI_DLCI);
 	}
 	data = skb_tail_pointer(skb);
@@ -555,6 +561,7 @@
 	skb_put(skb, i);
 	skb->priority = TC_PRIO_CONTROL;
 	skb->dev = dev;
+	skb->protocol = htons(ETH_P_HDLC);
 	skb_reset_network_header(skb);
 
 	dev_queue_xmit(skb);
@@ -1041,7 +1048,7 @@
 {
 	dev->type = ARPHRD_DLCI;
 	dev->flags = IFF_POINTOPOINT;
-	dev->hard_header_len = 10;
+	dev->hard_header_len = 0;
 	dev->addr_len = 2;
 	netif_keep_dst(dev);
 }
@@ -1093,6 +1100,7 @@
 	dev->mtu = HDLC_MAX_MTU;
 	dev->min_mtu = 68;
 	dev->max_mtu = HDLC_MAX_MTU;
+	dev->needed_headroom = 10;
 	dev->priv_flags |= IFF_NO_QUEUE;
 	dev->ml_priv = pvc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/hdlc_ppp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/hdlc_ppp.c
@@ -251,6 +251,7 @@
 
 	skb->priority = TC_PRIO_CONTROL;
 	skb->dev = dev;
+	skb->protocol = htons(ETH_P_HDLC);
 	skb_reset_network_header(skb);
 	skb_queue_tail(&tx_queue, skb);
 }
@@ -383,11 +384,8 @@
 	}
 
 	for (opt = data; len; len -= opt[1], opt += opt[1]) {
-		if (len < 2 || len < opt[1]) {
-			dev->stats.rx_errors++;
-			kfree(out);
-			return; /* bad packet, drop silently */
-		}
+		if (len < 2 || opt[1] < 2 || len < opt[1])
+			goto err_out;
 
 		if (pid == PID_LCP)
 			switch (opt[0]) {
@@ -395,6 +393,8 @@
 				continue; /* MRU always OK and > 1500 bytes? */
 
 			case LCP_OPTION_ACCM: /* async control character map */
+				if (opt[1] < sizeof(valid_accm))
+					goto err_out;
 				if (!memcmp(opt, valid_accm,
 					    sizeof(valid_accm)))
 					continue;
@@ -406,6 +406,8 @@
 				}
 				break;
 			case LCP_OPTION_MAGIC:
+				if (len < 6)
+					goto err_out;
 				if (opt[1] != 6 || (!opt[2] && !opt[3] &&
 						    !opt[4] && !opt[5]))
 					break; /* reject invalid magic number */
@@ -424,6 +426,11 @@
 		ppp_cp_event(dev, pid, RCR_GOOD, CP_CONF_ACK, id, req_len, data);
 
 	kfree(out);
+	return;
+
+err_out:
+	dev->stats.rx_errors++;
+	kfree(out);
 }
 
 static int ppp_rx(struct sk_buff *skb)
@@ -562,6 +569,13 @@
 	unsigned long flags;
 
 	spin_lock_irqsave(&ppp->lock, flags);
+	/* mod_timer could be called after we entered this function but
+	 * before we got the lock.
+	 */
+	if (timer_pending(&proto->timer)) {
+		spin_unlock_irqrestore(&ppp->lock, flags);
+		return;
+	}
 	switch (proto->state) {
 	case STOPPING:
 	case REQ_SENT:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/hdlc_raw_eth.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/hdlc_raw_eth.c
@@ -99,6 +99,7 @@
 		old_qlen = dev->tx_queue_len;
 		ether_setup(dev);
 		dev->tx_queue_len = old_qlen;
+		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
 		eth_hw_addr_random(dev);
 		call_netdevice_notifiers(NETDEV_POST_TYPE_CHANGE, dev);
 		netif_dormant_off(dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/hdlc_x25.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/hdlc_x25.c
@@ -62,10 +62,13 @@
 {
 	unsigned char *ptr;
 
-	skb_push(skb, 1);
-
-	if (skb_cow(skb, 1))
+	if (skb_cow(skb, 1)) {
+		kfree_skb(skb);
 		return NET_RX_DROP;
+	}
+
+	skb_push(skb, 1);
+	skb_reset_network_header(skb);
 
 	ptr  = skb->data;
 	*ptr = X25_IFACE_DATA;
@@ -79,6 +82,13 @@
 static void x25_data_transmit(struct net_device *dev, struct sk_buff *skb)
 {
 	hdlc_device *hdlc = dev_to_hdlc(dev);
+
+	skb_reset_network_header(skb);
+	skb->protocol = hdlc_type_trans(skb, dev);
+
+	if (dev_nit_active(dev))
+		dev_queue_xmit_nit(skb, dev);
+
 	hdlc->xmit(skb, dev); /* Ignore return value :-( */
 }
 
@@ -93,6 +103,7 @@
 	switch (skb->data[0]) {
 	case X25_IFACE_DATA:	/* Data to be transmitted */
 		skb_pull(skb, 1);
+		skb_reset_network_header(skb);
 		if ((result = lapb_data_request(dev, skb)) != LAPB_OK)
 			dev_kfree_skb(skb);
 		return NETDEV_TX_OK;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/ixp4xx_hss.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/ixp4xx_hss.c
@@ -258,7 +258,7 @@
 	struct hss_plat_info *plat;
 	buffer_t *rx_buff_tab[RX_DESCS], *tx_buff_tab[TX_DESCS];
 	struct desc *desc_tab;	/* coherent */
-	u32 desc_tab_phys;
+	dma_addr_t desc_tab_phys;
 	unsigned int id;
 	unsigned int clock_type, clock_rate, loopback;
 	unsigned int initialized, carrier;
@@ -858,7 +858,7 @@
 		dev->stats.tx_dropped++;
 		return NETDEV_TX_OK;
 	}
-	memcpy_swab32(mem, (u32 *)((int)skb->data & ~3), bytes / 4);
+	memcpy_swab32(mem, (u32 *)((uintptr_t)skb->data & ~3), bytes / 4);
 	dev_kfree_skb(skb);
 #endif
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/lapbether.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/lapbether.c
@@ -128,10 +128,12 @@
 {
 	unsigned char *ptr;
 
-	skb_push(skb, 1);
-
-	if (skb_cow(skb, 1))
+	if (skb_cow(skb, 1)) {
+		kfree_skb(skb);
 		return NET_RX_DROP;
+	}
+
+	skb_push(skb, 1);
 
 	ptr  = skb->data;
 	*ptr = X25_IFACE_DATA;
@@ -155,6 +157,12 @@
 	if (!netif_running(dev))
 		goto drop;
 
+	/* There should be a pseudo header of 1 byte added by upper layers.
+	 * Check to make sure it is there before reading it.
+	 */
+	if (skb->len < 1)
+		goto drop;
+
 	switch (skb->data[0]) {
 	case X25_IFACE_DATA:
 		break;
@@ -190,8 +198,6 @@
 	struct net_device *dev;
 	int size = skb->len;
 
-	skb->protocol = htons(ETH_P_X25);
-
 	ptr = skb_push(skb, 2);
 
 	*ptr++ = size % 256;
@@ -202,6 +208,10 @@
 
 	skb->dev = dev = lapbeth->ethdev;
 
+	skb->protocol = htons(ETH_P_DEC);
+
+	skb_reset_network_header(skb);
+
 	dev_hard_header(skb, dev, ETH_P_DEC, bcast_addr, NULL, 0);
 
 	dev_queue_xmit(skb);
@@ -273,7 +283,6 @@
 		return -ENODEV;
 	}
 
-	netif_start_queue(dev);
 	return 0;
 }
 
@@ -281,8 +290,6 @@
 {
 	int err;
 
-	netif_stop_queue(dev);
-
 	if ((err = lapb_unregister(dev)) != LAPB_OK)
 		pr_err("lapb_unregister error: %d\n", err);
 
@@ -303,7 +310,7 @@
 	dev->netdev_ops	     = &lapbeth_netdev_ops;
 	dev->needs_free_netdev = true;
 	dev->type            = ARPHRD_X25;
-	dev->hard_header_len = 3;
+	dev->hard_header_len = 0;
 	dev->mtu             = 1000;
 	dev->addr_len        = 0;
 }
@@ -324,6 +331,16 @@
 	if (!ndev)
 		goto out;
 
+	/* When transmitting data:
+	 * first this driver removes a pseudo header of 1 byte,
+	 * then the lapb module prepends an LAPB header of at most 3 bytes,
+	 * then this driver prepends a length field of 2 bytes,
+	 * then the underlying Ethernet device prepends its own header.
+	 */
+	ndev->needed_headroom = -1 + 3 + 2 + dev->hard_header_len
+					   + dev->needed_headroom;
+	ndev->needed_tailroom = dev->needed_tailroom;
+
 	lapbeth = netdev_priv(ndev);
 	lapbeth->axdev = ndev;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/sdla.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/sdla.c
@@ -708,7 +708,7 @@
 
 					spin_lock_irqsave(&sdla_lock, flags);
 					SDLA_WINDOW(dev, addr);
-					pbuf = (void *)(((int) dev->mem_start) + (addr & SDLA_ADDR_MASK));
+					pbuf = (void *)(dev->mem_start + (addr & SDLA_ADDR_MASK));
 					__sdla_write(dev, pbuf->buf_addr, skb->data, skb->len);
 					SDLA_WINDOW(dev, addr);
 					pbuf->opp_flag = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wan/x25_asy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wan/x25_asy.c
@@ -183,7 +183,7 @@
 	netif_wake_queue(sl->dev);
 }
 
-/* Send one completely decapsulated IP datagram to the IP layer. */
+/* Send an LAPB frame to the LAPB module to process. */
 
 static void x25_asy_bump(struct x25_asy *sl)
 {
@@ -195,13 +195,12 @@
 	count = sl->rcount;
 	dev->stats.rx_bytes += count;
 
-	skb = dev_alloc_skb(count+1);
+	skb = dev_alloc_skb(count);
 	if (skb == NULL) {
 		netdev_warn(sl->dev, "memory squeeze, dropping packet\n");
 		dev->stats.rx_dropped++;
 		return;
 	}
-	skb_push(skb, 1);	/* LAPB internal control */
 	skb_put_data(skb, sl->rbuff, count);
 	skb->protocol = x25_type_trans(skb, sl->dev);
 	err = lapb_data_received(skb->dev, skb);
@@ -209,7 +208,6 @@
 		kfree_skb(skb);
 		printk(KERN_DEBUG "x25_asy: data received err - %d\n", err);
 	} else {
-		netif_rx(skb);
 		dev->stats.rx_packets++;
 	}
 }
@@ -356,12 +354,21 @@
  */
 
 /*
- *	Called when I frame data arrives. We did the work above - throw it
- *	at the net layer.
+ *	Called when I frame data arrive. We add a pseudo header for upper
+ *	layers and pass it to upper layers.
  */
 
 static int x25_asy_data_indication(struct net_device *dev, struct sk_buff *skb)
 {
+	if (skb_cow(skb, 1)) {
+		kfree_skb(skb);
+		return NET_RX_DROP;
+	}
+	skb_push(skb, 1);
+	skb->data[0] = X25_IFACE_DATA;
+
+	skb->protocol = x25_type_trans(skb, dev);
+
 	return netif_rx(skb);
 }
 
@@ -657,7 +664,7 @@
 	switch (s) {
 	case X25_END:
 		if (!test_and_clear_bit(SLF_ERROR, &sl->flags) &&
-		    sl->rcount > 2)
+		    sl->rcount >= 2)
 			x25_asy_bump(sl);
 		clear_bit(SLF_ESCAPE, &sl->flags);
 		sl->rcount = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wimax/i2400m/usb-fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wimax/i2400m/usb-fw.c
@@ -354,6 +354,7 @@
 		usb_autopm_put_interface(i2400mu->usb_iface);
 	d_fnend(8, dev, "(i2400m %p ack %p size %zu) = %ld\n",
 		i2400m, ack, ack_size, (long) result);
+	usb_put_urb(&notif_urb);
 	return result;
 
 error_exceeded:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ar5523/ar5523.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ar5523/ar5523.c
@@ -255,7 +255,8 @@
 
 	if (flags & AR5523_CMD_FLAG_MAGIC)
 		hdr->magic = cpu_to_be32(1 << 24);
-	memcpy(hdr + 1, idata, ilen);
+	if (ilen)
+		memcpy(hdr + 1, idata, ilen);
 
 	cmd->odata = odata;
 	cmd->olen = olen;
@@ -1769,6 +1770,8 @@
 	AR5523_DEVICE_UX(0x0846, 0x4300),	/* Netgear / WG111U */
 	AR5523_DEVICE_UG(0x0846, 0x4250),	/* Netgear / WG111T */
 	AR5523_DEVICE_UG(0x0846, 0x5f00),	/* Netgear / WPN111 */
+	AR5523_DEVICE_UG(0x083a, 0x4506),	/* SMC / EZ Connect
+						   SMCWUSBT-G2 */
 	AR5523_DEVICE_UG(0x157e, 0x3006),	/* Umedia / AR5523_1 */
 	AR5523_DEVICE_UX(0x157e, 0x3205),	/* Umedia / AR5523_2 */
 	AR5523_DEVICE_UG(0x157e, 0x3006),	/* Umedia / TEW444UBEU */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/ce.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/ce.c
@@ -1555,7 +1555,7 @@
 		ret = ath10k_ce_alloc_shadow_base(ar, src_ring, nentries);
 		if (ret) {
 			dma_free_coherent(ar->dev,
-					  (nentries * sizeof(struct ce_desc_64) +
+					  (nentries * sizeof(struct ce_desc) +
 					   CE_DESC_RING_ALIGN),
 					  src_ring->base_addr_owner_space_unaligned,
 					  base_addr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/core.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/core.h
@@ -969,6 +969,11 @@
 	u32 low_5ghz_chan;
 	u32 high_5ghz_chan;
 	bool ani_enabled;
+	u32 sys_cap_info;
+
+	/* protected by data_lock */
+	bool hw_rfkill_on;
+
 	/* protected by conf_mutex */
 	u8 ps_state_enable;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/coredump.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/coredump.c
@@ -1208,9 +1208,11 @@
 		dump_tlv = (struct ath10k_tlv_dump_data *)(buf + sofar);
 		dump_tlv->type = cpu_to_le32(ATH10K_FW_CRASH_DUMP_RAM_DATA);
 		dump_tlv->tlv_len = cpu_to_le32(crash_data->ramdump_buf_len);
-		memcpy(dump_tlv->tlv_data, crash_data->ramdump_buf,
-		       crash_data->ramdump_buf_len);
-		sofar += sizeof(*dump_tlv) + crash_data->ramdump_buf_len;
+		if (crash_data->ramdump_buf_len) {
+			memcpy(dump_tlv->tlv_data, crash_data->ramdump_buf,
+			       crash_data->ramdump_buf_len);
+			sofar += sizeof(*dump_tlv) + crash_data->ramdump_buf_len;
+		}
 	}
 
 	mutex_unlock(&ar->dump_mutex);
@@ -1257,6 +1259,9 @@
 	if (test_bit(ATH10K_FW_CRASH_DUMP_RAM_DATA, &ath10k_coredump_mask)) {
 		crash_data->ramdump_buf_len = ath10k_coredump_get_ramdump_size(ar);
 
+		if (!crash_data->ramdump_buf_len)
+			return 0;
+
 		crash_data->ramdump_buf = vzalloc(crash_data->ramdump_buf_len);
 		if (!crash_data->ramdump_buf)
 			return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/debug.c
@@ -1516,7 +1516,7 @@
 	*len += scnprintf(buf + *len, buf_len - *len,
 			  "No.  Preamble Rate_code ");
 
-	for (i = 0; i < WMI_TPC_TX_N_CHAIN; i++)
+	for (i = 0; i < tpc_stats->num_tx_chain; i++)
 		*len += scnprintf(buf + *len, buf_len - *len,
 				  "tpc_value%d ", i);
 
@@ -2532,6 +2532,7 @@
 	ath10k_debug_fw_stats_reset(ar);
 
 	kfree(ar->debug.tpc_stats);
+	kfree(ar->debug.tpc_stats_final);
 }
 
 int ath10k_debug_register(struct ath10k *ar)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/htt.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/htt.h
@@ -2033,6 +2033,7 @@
 	int (*htt_h2t_aggr_cfg_msg)(struct ath10k_htt *htt,
 				    u8 max_subfrms_ampdu,
 				    u8 max_subfrms_amsdu);
+	void (*htt_flush_tx)(struct ath10k_htt *htt);
 };
 
 static inline int ath10k_htt_send_rx_ring_cfg(struct ath10k_htt *htt)
@@ -2072,6 +2073,12 @@
 	return htt->tx_ops->htt_tx(htt, txmode, msdu);
 }
 
+static inline void ath10k_htt_flush_tx(struct ath10k_htt *htt)
+{
+	if (htt->tx_ops->htt_flush_tx)
+		htt->tx_ops->htt_flush_tx(htt);
+}
+
 static inline int ath10k_htt_alloc_txbuff(struct ath10k_htt *htt)
 {
 	if (!htt->tx_ops->htt_alloc_txbuff)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -142,6 +142,14 @@
 	BUILD_BUG_ON(HTT_RX_RING_FILL_LEVEL >= HTT_RX_RING_SIZE / 2);
 
 	idx = __le32_to_cpu(*htt->rx_ring.alloc_idx.vaddr);
+
+	if (idx < 0 || idx >= htt->rx_ring.size) {
+		ath10k_err(htt->ar, "rx ring index is not valid, firmware malfunctioning?\n");
+		idx &= htt->rx_ring.size_mask;
+		ret = -ENOMEM;
+		goto fail;
+	}
+
 	while (num > 0) {
 		skb = dev_alloc_skb(HTT_RX_BUF_SIZE + HTT_RX_DESC_ALIGN);
 		if (!skb) {
@@ -941,6 +949,7 @@
 	u8 preamble = 0;
 	u8 group_id;
 	u32 info1, info2, info3;
+	u32 stbc, nsts_su;
 
 	info1 = __le32_to_cpu(rxd->ppdu_start.info1);
 	info2 = __le32_to_cpu(rxd->ppdu_start.info2);
@@ -985,11 +994,16 @@
 		 */
 		bw = info2 & 3;
 		sgi = info3 & 1;
+		stbc = (info2 >> 3) & 1;
 		group_id = (info2 >> 4) & 0x3F;
 
 		if (GROUP_ID_IS_SU_MIMO(group_id)) {
 			mcs = (info3 >> 4) & 0x0F;
-			nss = ((info2 >> 10) & 0x07) + 1;
+			nsts_su = ((info2 >> 10) & 0x07);
+			if (stbc)
+				nss = (nsts_su >> 2) + 1;
+			else
+				nss = (nsts_su + 1);
 		} else {
 			/* Hardware doesn't decode VHT-SIG-B into Rx descriptor
 			 * so it's impossible to decode MCS. Also since
@@ -2726,7 +2740,7 @@
 		spin_lock_bh(&ar->data_lock);
 
 		peer = ath10k_peer_find_by_id(ar, peer_id);
-		if (!peer) {
+		if (!peer || !peer->sta) {
 			spin_unlock_bh(&ar->data_lock);
 			rcu_read_unlock();
 			continue;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/htt_tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/htt_tx.c
@@ -529,9 +529,14 @@
 	htt->tx_mem_allocated = false;
 }
 
-void ath10k_htt_tx_stop(struct ath10k_htt *htt)
+static void ath10k_htt_flush_tx_queue(struct ath10k_htt *htt)
 {
 	idr_for_each(&htt->pending_tx, ath10k_htt_tx_clean_up_pending, htt->ar);
+}
+
+void ath10k_htt_tx_stop(struct ath10k_htt *htt)
+{
+	ath10k_htt_flush_tx_queue(htt);
 	idr_destroy(&htt->pending_tx);
 }
 
@@ -1535,7 +1540,9 @@
 err_unmap_msdu:
 	dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
 err_free_msdu_id:
+	spin_lock_bh(&htt->tx_lock);
 	ath10k_htt_tx_free_msdu_id(htt, msdu_id);
+	spin_unlock_bh(&htt->tx_lock);
 err:
 	return res;
 }
@@ -1742,7 +1749,9 @@
 err_unmap_msdu:
 	dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
 err_free_msdu_id:
+	spin_lock_bh(&htt->tx_lock);
 	ath10k_htt_tx_free_msdu_id(htt, msdu_id);
+	spin_unlock_bh(&htt->tx_lock);
 err:
 	return res;
 }
@@ -1774,6 +1783,7 @@
 	.htt_send_frag_desc_bank_cfg = ath10k_htt_send_frag_desc_bank_cfg_32,
 	.htt_tx = ath10k_htt_tx_hl,
 	.htt_h2t_aggr_cfg_msg = ath10k_htt_h2t_aggr_cfg_msg_32,
+	.htt_flush_tx = ath10k_htt_flush_tx_queue,
 };
 
 void ath10k_htt_set_tx_ops(struct ath10k_htt *htt)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/hw.c
@@ -155,6 +155,9 @@
 	.num_target_ce_config_wlan	= 7,
 	.ce_desc_meta_data_mask		= 0xFFFC,
 	.ce_desc_meta_data_lsb		= 2,
+	.rfkill_pin			= 16,
+	.rfkill_cfg			= 0,
+	.rfkill_on_level		= 1,
 };
 
 const struct ath10k_hw_values qca99x0_values = {
@@ -1145,6 +1148,7 @@
 const struct ath10k_hw_ops qca99x0_ops = {
 	.rx_desc_get_l3_pad_bytes = ath10k_qca99x0_rx_desc_get_l3_pad_bytes,
 	.rx_desc_get_msdu_limit_error = ath10k_qca99x0_rx_desc_msdu_limit_error,
+	.is_rssi_enable = ath10k_htt_tx_rssi_enable,
 };
 
 const struct ath10k_hw_ops qca6174_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/hw.h
@@ -379,6 +379,9 @@
 	u8 num_target_ce_config_wlan;
 	u16 ce_desc_meta_data_mask;
 	u8 ce_desc_meta_data_lsb;
+	u32 rfkill_pin;
+	u32 rfkill_cfg;
+	bool rfkill_on_level;
 };
 
 extern const struct ath10k_hw_values qca988x_values;
@@ -810,7 +813,7 @@
 
 #define TARGET_10_4_TX_DBG_LOG_SIZE		1024
 #define TARGET_10_4_NUM_WDS_ENTRIES		32
-#define TARGET_10_4_DMA_BURST_SIZE		0
+#define TARGET_10_4_DMA_BURST_SIZE		1
 #define TARGET_10_4_MAC_AGGR_DELIM		0
 #define TARGET_10_4_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK 1
 #define TARGET_10_4_VOW_CONFIG			0
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/mac.c
@@ -12,6 +12,7 @@
 #include <linux/etherdevice.h>
 #include <linux/acpi.h>
 #include <linux/of.h>
+#include <linux/bitfield.h>
 
 #include "hif.h"
 #include "core.h"
@@ -3624,23 +3625,16 @@
 static int ath10k_mac_tx_wmi_mgmt(struct ath10k *ar, struct sk_buff *skb)
 {
 	struct sk_buff_head *q = &ar->wmi_mgmt_tx_queue;
-	int ret = 0;
-
-	spin_lock_bh(&ar->data_lock);
 
-	if (skb_queue_len(q) == ATH10K_MAX_NUM_MGMT_PENDING) {
+	if (skb_queue_len_lockless(q) >= ATH10K_MAX_NUM_MGMT_PENDING) {
 		ath10k_warn(ar, "wmi mgmt tx queue is full\n");
-		ret = -ENOSPC;
-		goto unlock;
+		return -ENOSPC;
 	}
 
-	__skb_queue_tail(q, skb);
+	skb_queue_tail(q, skb);
 	ieee80211_queue_work(ar->hw, &ar->wmi_mgmt_tx_work);
 
-unlock:
-	spin_unlock_bh(&ar->data_lock);
-
-	return ret;
+	return 0;
 }
 
 static enum ath10k_mac_tx_path
@@ -3708,7 +3702,7 @@
 			 struct ieee80211_vif *vif,
 			 enum ath10k_hw_txrx_mode txmode,
 			 enum ath10k_mac_tx_path txpath,
-			 struct sk_buff *skb)
+			 struct sk_buff *skb, bool noque_offchan)
 {
 	struct ieee80211_hw *hw = ar->hw;
 	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
@@ -3738,10 +3732,10 @@
 		}
 	}
 
-	if (info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) {
+	if (!noque_offchan && info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) {
 		if (!ath10k_mac_tx_frm_has_freq(ar)) {
-			ath10k_dbg(ar, ATH10K_DBG_MAC, "queued offchannel skb %pK\n",
-				   skb);
+			ath10k_dbg(ar, ATH10K_DBG_MAC, "mac queued offchannel skb %pK len %d\n",
+				   skb, skb->len);
 
 			skb_queue_tail(&ar->offchan_tx_queue, skb);
 			ieee80211_queue_work(hw, &ar->offchan_tx_work);
@@ -3803,8 +3797,8 @@
 
 		mutex_lock(&ar->conf_mutex);
 
-		ath10k_dbg(ar, ATH10K_DBG_MAC, "mac offchannel skb %pK\n",
-			   skb);
+		ath10k_dbg(ar, ATH10K_DBG_MAC, "mac offchannel skb %pK len %d\n",
+			   skb, skb->len);
 
 		hdr = (struct ieee80211_hdr *)skb->data;
 		peer_addr = ieee80211_get_DA(hdr);
@@ -3850,7 +3844,7 @@
 		txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb);
 		txpath = ath10k_mac_tx_h_get_txpath(ar, skb, txmode);
 
-		ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb);
+		ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, true);
 		if (ret) {
 			ath10k_warn(ar, "failed to transmit offchannel frame: %d\n",
 				    ret);
@@ -3860,8 +3854,8 @@
 		time_left =
 		wait_for_completion_timeout(&ar->offchan_tx_completed, 3 * HZ);
 		if (time_left == 0)
-			ath10k_warn(ar, "timed out waiting for offchannel skb %pK\n",
-				    skb);
+			ath10k_warn(ar, "timed out waiting for offchannel skb %pK, len: %d\n",
+				    skb, skb->len);
 
 		if (!peer && tmp_peer_created) {
 			ret = ath10k_peer_delete(ar, vdev_id, peer_addr);
@@ -3903,12 +3897,17 @@
 			     ar->running_fw->fw_file.fw_features)) {
 			paddr = dma_map_single(ar->dev, skb->data,
 					       skb->len, DMA_TO_DEVICE);
-			if (!paddr)
+			if (dma_mapping_error(ar->dev, paddr)) {
+				ieee80211_free_txskb(ar->hw, skb);
 				continue;
+			}
 			ret = ath10k_wmi_mgmt_tx_send(ar, skb, paddr);
 			if (ret) {
 				ath10k_warn(ar, "failed to transmit management frame by ref via WMI: %d\n",
 					    ret);
+				/* remove this msdu from idr tracking */
+				ath10k_wmi_cleanup_mgmt_tx_send(ar, skb);
+
 				dma_unmap_single(ar->dev, paddr, skb->len,
 						 DMA_TO_DEVICE);
 				ieee80211_free_txskb(ar->hw, skb);
@@ -4097,7 +4096,7 @@
 		spin_unlock_bh(&ar->htt.tx_lock);
 	}
 
-	ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb);
+	ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, false);
 	if (unlikely(ret)) {
 		ath10k_warn(ar, "failed to push frame: %d\n", ret);
 
@@ -4378,7 +4377,7 @@
 		spin_unlock_bh(&ar->htt.tx_lock);
 	}
 
-	ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb);
+	ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, false);
 	if (ret) {
 		ath10k_warn(ar, "failed to transmit frame: %d\n", ret);
 		if (is_htt) {
@@ -4754,6 +4753,63 @@
 	return 0;
 }
 
+static int ath10k_mac_rfkill_config(struct ath10k *ar)
+{
+	u32 param;
+	int ret;
+
+	if (ar->hw_values->rfkill_pin == 0) {
+		ath10k_warn(ar, "ath10k does not support hardware rfkill with this device\n");
+		return -EOPNOTSUPP;
+	}
+
+	ath10k_dbg(ar, ATH10K_DBG_MAC,
+		   "mac rfkill_pin %d rfkill_cfg %d rfkill_on_level %d",
+		   ar->hw_values->rfkill_pin, ar->hw_values->rfkill_cfg,
+		   ar->hw_values->rfkill_on_level);
+
+	param = FIELD_PREP(WMI_TLV_RFKILL_CFG_RADIO_LEVEL,
+			   ar->hw_values->rfkill_on_level) |
+		FIELD_PREP(WMI_TLV_RFKILL_CFG_GPIO_PIN_NUM,
+			   ar->hw_values->rfkill_pin) |
+		FIELD_PREP(WMI_TLV_RFKILL_CFG_PIN_AS_GPIO,
+			   ar->hw_values->rfkill_cfg);
+
+	ret = ath10k_wmi_pdev_set_param(ar,
+					ar->wmi.pdev_param->rfkill_config,
+					param);
+	if (ret) {
+		ath10k_warn(ar,
+			    "failed to set rfkill config 0x%x: %d\n",
+			    param, ret);
+		return ret;
+	}
+	return 0;
+}
+
+int ath10k_mac_rfkill_enable_radio(struct ath10k *ar, bool enable)
+{
+	enum wmi_tlv_rfkill_enable_radio param;
+	int ret;
+
+	if (enable)
+		param = WMI_TLV_RFKILL_ENABLE_RADIO_ON;
+	else
+		param = WMI_TLV_RFKILL_ENABLE_RADIO_OFF;
+
+	ath10k_dbg(ar, ATH10K_DBG_MAC, "mac rfkill enable %d", param);
+
+	ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->rfkill_enable,
+					param);
+	if (ret) {
+		ath10k_warn(ar, "failed to set rfkill enable param %d: %d\n",
+			    param, ret);
+		return ret;
+	}
+
+	return 0;
+}
+
 static int ath10k_start(struct ieee80211_hw *hw)
 {
 	struct ath10k *ar = hw->priv;
@@ -4788,6 +4844,16 @@
 		goto err;
 	}
 
+	spin_lock_bh(&ar->data_lock);
+
+	if (ar->hw_rfkill_on) {
+		ar->hw_rfkill_on = false;
+		spin_unlock_bh(&ar->data_lock);
+		goto err;
+	}
+
+	spin_unlock_bh(&ar->data_lock);
+
 	ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_NORMAL);
 	if (ret) {
 		ath10k_err(ar, "Could not init hif: %d\n", ret);
@@ -4801,6 +4867,14 @@
 		goto err_power_down;
 	}
 
+	if (ar->sys_cap_info & WMI_TLV_SYS_CAP_INFO_RFKILL) {
+		ret = ath10k_mac_rfkill_config(ar);
+		if (ret && ret != -EOPNOTSUPP) {
+			ath10k_warn(ar, "failed to configure rfkill: %d", ret);
+			goto err_core_stop;
+		}
+	}
+
 	param = ar->wmi.pdev_param->pmf_qos;
 	ret = ath10k_wmi_pdev_set_param(ar, param, 1);
 	if (ret) {
@@ -4960,7 +5034,8 @@
 
 	mutex_lock(&ar->conf_mutex);
 	if (ar->state != ATH10K_STATE_OFF) {
-		ath10k_halt(ar);
+		if (!ar->hw_rfkill_on)
+			ath10k_halt(ar);
 		ar->state = ATH10K_STATE_OFF;
 	}
 	mutex_unlock(&ar->conf_mutex);
@@ -7080,6 +7155,7 @@
 					ath10k_wmi_peer_flush(ar, arvif->vdev_id,
 							      arvif->bssid, bitmap);
 			}
+			ath10k_htt_flush_tx(&ar->htt);
 		}
 		return;
 	}
@@ -7125,7 +7201,7 @@
 				  struct ieee80211_channel *channel)
 {
 	int ret;
-	enum wmi_bss_survey_req_type type = WMI_BSS_SURVEY_REQ_TYPE_READ_CLEAR;
+	enum wmi_bss_survey_req_type type = WMI_BSS_SURVEY_REQ_TYPE_READ;
 
 	lockdep_assert_held(&ar->conf_mutex);
 
@@ -8809,7 +8885,6 @@
 	ar->hw->wiphy->max_scan_ie_len = WLAN_SCAN_PARAMS_MAX_IE_LEN;
 
 	if (test_bit(WMI_SERVICE_NLO, ar->wmi.svc_map)) {
-		ar->hw->wiphy->max_sched_scan_reqs = 1;
 		ar->hw->wiphy->max_sched_scan_ssids = WMI_PNO_MAX_SUPP_NETWORKS;
 		ar->hw->wiphy->max_match_sets = WMI_PNO_MAX_SUPP_NETWORKS;
 		ar->hw->wiphy->max_sched_scan_ie_len = WMI_PNO_MAX_IE_LENGTH;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/mac.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/mac.h
@@ -72,6 +72,7 @@
 					    u8 tid);
 int ath10k_mac_ext_resource_config(struct ath10k *ar, u32 val);
 void ath10k_mac_wait_tx_complete(struct ath10k *ar);
+int ath10k_mac_rfkill_enable_radio(struct ath10k *ar, bool enable);
 
 static inline void ath10k_tx_h_seq_no(struct ieee80211_vif *vif,
 				      struct sk_buff *skb)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/pci.c
@@ -1604,11 +1604,22 @@
 {
 	struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
 	u32 i;
+	int ret;
+
+	mutex_lock(&ar->conf_mutex);
+	if (ar->state != ATH10K_STATE_ON) {
+		ath10k_warn(ar, "Skipping pci_dump_memory_reg invalid state\n");
+		ret = -EIO;
+		goto done;
+	}
 
 	for (i = 0; i < region->len; i += 4)
 		*(u32 *)(buf + i) = ioread32(ar_pci->mem + region->start + i);
 
-	return region->len;
+	ret = region->len;
+done:
+	mutex_unlock(&ar->conf_mutex);
+	return ret;
 }
 
 /* if an error happened returns < 0, otherwise the length */
@@ -1704,7 +1715,11 @@
 			count = ath10k_pci_dump_memory_sram(ar, current_region, buf);
 			break;
 		case ATH10K_MEM_REGION_TYPE_IOREG:
-			count = ath10k_pci_dump_memory_reg(ar, current_region, buf);
+			ret = ath10k_pci_dump_memory_reg(ar, current_region, buf);
+			if (ret < 0)
+				break;
+
+			count = ret;
 			break;
 		default:
 			ret = ath10k_pci_dump_memory_generic(ar, current_region, buf);
@@ -2059,6 +2074,7 @@
 	ath10k_pci_irq_sync(ar);
 	napi_synchronize(&ar->napi);
 	napi_disable(&ar->napi);
+	cancel_work_sync(&ar_pci->dump_work);
 
 	/* Most likely the device has HTT Rx ring configured. The only way to
 	 * prevent the device from accessing (and possible corrupting) host
@@ -3490,7 +3506,7 @@
 	struct ath10k_pci *ar_pci;
 	enum ath10k_hw_rev hw_rev;
 	struct ath10k_bus_params bus_params = {};
-	bool pci_ps;
+	bool pci_ps, is_qca988x = false;
 	int (*pci_soft_reset)(struct ath10k *ar);
 	int (*pci_hard_reset)(struct ath10k *ar);
 	u32 (*targ_cpu_to_ce_addr)(struct ath10k *ar, u32 addr);
@@ -3500,6 +3516,7 @@
 	case QCA988X_2_0_DEVICE_ID:
 		hw_rev = ATH10K_HW_QCA988X;
 		pci_ps = false;
+		is_qca988x = true;
 		pci_soft_reset = ath10k_pci_warm_reset;
 		pci_hard_reset = ath10k_pci_qca988x_chip_reset;
 		targ_cpu_to_ce_addr = ath10k_pci_qca988x_targ_cpu_to_ce_addr;
@@ -3619,25 +3636,34 @@
 		goto err_deinit_irq;
 	}
 
+	bus_params.dev_type = ATH10K_DEV_TYPE_LL;
+	bus_params.link_can_suspend = true;
+	/* Read CHIP_ID before reset to catch QCA9880-AR1A v1 devices that
+	 * fall off the bus during chip_reset. These chips have the same pci
+	 * device id as the QCA9880 BR4A or 2R4E. So that's why the check.
+	 */
+	if (is_qca988x) {
+		bus_params.chip_id =
+			ath10k_pci_soc_read32(ar, SOC_CHIP_ID_ADDRESS);
+		if (bus_params.chip_id != 0xffffffff) {
+			if (!ath10k_pci_chip_is_supported(pdev->device,
+							  bus_params.chip_id))
+				goto err_unsupported;
+		}
+	}
+
 	ret = ath10k_pci_chip_reset(ar);
 	if (ret) {
 		ath10k_err(ar, "failed to reset chip: %d\n", ret);
 		goto err_free_irq;
 	}
 
-	bus_params.dev_type = ATH10K_DEV_TYPE_LL;
-	bus_params.link_can_suspend = true;
 	bus_params.chip_id = ath10k_pci_soc_read32(ar, SOC_CHIP_ID_ADDRESS);
-	if (bus_params.chip_id == 0xffffffff) {
-		ath10k_err(ar, "failed to get chip id\n");
-		goto err_free_irq;
-	}
+	if (bus_params.chip_id == 0xffffffff)
+		goto err_unsupported;
 
-	if (!ath10k_pci_chip_is_supported(pdev->device, bus_params.chip_id)) {
-		ath10k_err(ar, "device %04x with chip_id %08x isn't supported\n",
-			   pdev->device, bus_params.chip_id);
+	if (!ath10k_pci_chip_is_supported(pdev->device, bus_params.chip_id))
 		goto err_free_irq;
-	}
 
 	ret = ath10k_core_register(ar, &bus_params);
 	if (ret) {
@@ -3647,6 +3673,10 @@
 
 	return 0;
 
+err_unsupported:
+	ath10k_err(ar, "device %04x with chip_id %08x isn't supported\n",
+		   pdev->device, bus_params.chip_id);
+
 err_free_irq:
 	ath10k_pci_free_irq(ar);
 	ath10k_pci_rx_retry_sync(ar);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/qmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/qmi.c
@@ -581,22 +581,29 @@
 {
 	struct wlfw_host_cap_resp_msg_v01 resp = {};
 	struct wlfw_host_cap_req_msg_v01 req = {};
+	struct qmi_elem_info *req_ei;
 	struct ath10k *ar = qmi->ar;
+	struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar);
 	struct qmi_txn txn;
 	int ret;
 
 	req.daemon_support_valid = 1;
 	req.daemon_support = 0;
 
-	ret = qmi_txn_init(&qmi->qmi_hdl, &txn,
-			   wlfw_host_cap_resp_msg_v01_ei, &resp);
+	ret = qmi_txn_init(&qmi->qmi_hdl, &txn, wlfw_host_cap_resp_msg_v01_ei,
+			   &resp);
 	if (ret < 0)
 		goto out;
 
+	if (test_bit(ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK, &ar_snoc->flags))
+		req_ei = wlfw_host_cap_8bit_req_msg_v01_ei;
+	else
+		req_ei = wlfw_host_cap_req_msg_v01_ei;
+
 	ret = qmi_send_request(&qmi->qmi_hdl, NULL, &txn,
 			       QMI_WLFW_HOST_CAP_REQ_V01,
 			       WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN,
-			       wlfw_host_cap_req_msg_v01_ei, &req);
+			       req_ei, &req);
 	if (ret < 0) {
 		qmi_txn_cancel(&txn);
 		ath10k_err(ar, "failed to send host capability request: %d\n", ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.c
@@ -1988,6 +1988,28 @@
 	{}
 };
 
+struct qmi_elem_info wlfw_host_cap_8bit_req_msg_v01_ei[] = {
+	{
+		.data_type      = QMI_OPT_FLAG,
+		.elem_len       = 1,
+		.elem_size      = sizeof(u8),
+		.array_type     = NO_ARRAY,
+		.tlv_type       = 0x10,
+		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+					   daemon_support_valid),
+	},
+	{
+		.data_type      = QMI_UNSIGNED_1_BYTE,
+		.elem_len       = 1,
+		.elem_size      = sizeof(u8),
+		.array_type     = NO_ARRAY,
+		.tlv_type       = 0x10,
+		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+					   daemon_support),
+	},
+	{}
+};
+
 struct qmi_elem_info wlfw_host_cap_resp_msg_v01_ei[] = {
 	{
 		.data_type      = QMI_STRUCT,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.h
@@ -575,6 +575,7 @@
 
 #define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 189
 extern struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[];
+extern struct qmi_elem_info wlfw_host_cap_8bit_req_msg_v01_ei[];
 
 struct wlfw_host_cap_resp_msg_v01 {
 	struct qmi_response_type_v01 resp;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/sdio.c
@@ -550,6 +550,10 @@
 				    le16_to_cpu(htc_hdr->len),
 				    ATH10K_HTC_MBOX_MAX_PAYLOAD_LENGTH);
 			ret = -ENOMEM;
+
+			queue_work(ar->workqueue, &ar->restart_work);
+			ath10k_warn(ar, "exceeds length, start recovery\n");
+
 			goto err;
 		}
 
@@ -1582,23 +1586,33 @@
 				     size_t buf_len)
 {
 	int ret;
+	void *mem;
+
+	mem = kzalloc(buf_len, GFP_KERNEL);
+	if (!mem)
+		return -ENOMEM;
 
 	/* set window register to start read cycle */
 	ret = ath10k_sdio_write32(ar, MBOX_WINDOW_READ_ADDR_ADDRESS, address);
 	if (ret) {
 		ath10k_warn(ar, "failed to set mbox window read address: %d", ret);
-		return ret;
+		goto out;
 	}
 
 	/* read the data */
-	ret = ath10k_sdio_read(ar, MBOX_WINDOW_DATA_ADDRESS, buf, buf_len);
+	ret = ath10k_sdio_read(ar, MBOX_WINDOW_DATA_ADDRESS, mem, buf_len);
 	if (ret) {
 		ath10k_warn(ar, "failed to read from mbox window data address: %d\n",
 			    ret);
-		return ret;
+		goto out;
 	}
 
-	return 0;
+	memcpy(buf, mem, buf_len);
+
+out:
+	kfree(mem);
+
+	return ret;
 }
 
 static int ath10k_sdio_hif_diag_read32(struct ath10k *ar, u32 address,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/snoc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/snoc.c
@@ -1039,12 +1039,13 @@
 	ret = ath10k_snoc_init_pipes(ar);
 	if (ret) {
 		ath10k_err(ar, "failed to initialize CE: %d\n", ret);
-		goto err_wlan_enable;
+		goto err_free_rri;
 	}
 
 	return 0;
 
-err_wlan_enable:
+err_free_rri:
+	ath10k_ce_free_rri(ar);
 	ath10k_snoc_wlan_disable(ar);
 
 	return ret;
@@ -1261,6 +1262,15 @@
 	return ret;
 }
 
+static void ath10k_snoc_quirks_init(struct ath10k *ar)
+{
+	struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar);
+	struct device *dev = &ar_snoc->dev->dev;
+
+	if (of_property_read_bool(dev->of_node, "qcom,snoc-host-cap-8bit-quirk"))
+		set_bit(ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK, &ar_snoc->flags);
+}
+
 int ath10k_snoc_fw_indication(struct ath10k *ar, u64 type)
 {
 	struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar);
@@ -1678,6 +1688,8 @@
 	ar->ce_priv = &ar_snoc->ce;
 	msa_size = drv_data->msa_size;
 
+	ath10k_snoc_quirks_init(ar);
+
 	ret = ath10k_snoc_resource_init(ar);
 	if (ret) {
 		ath10k_warn(ar, "failed to initialize resource: %d\n", ret);
@@ -1718,13 +1730,16 @@
 	ret = ath10k_qmi_init(ar, msa_size);
 	if (ret) {
 		ath10k_warn(ar, "failed to register wlfw qmi client: %d\n", ret);
-		goto err_core_destroy;
+		goto err_power_off;
 	}
 
 	ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc probe\n");
 
 	return 0;
 
+err_power_off:
+	ath10k_hw_power_off(ar);
+
 err_free_irq:
 	ath10k_snoc_free_irq(ar);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/snoc.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/snoc.h
@@ -63,6 +63,7 @@
 	ATH10K_SNOC_FLAG_REGISTERED,
 	ATH10K_SNOC_FLAG_UNREGISTERING,
 	ATH10K_SNOC_FLAG_RECOVERY,
+	ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK,
 };
 
 struct ath10k_snoc {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/txrx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/txrx.c
@@ -84,9 +84,11 @@
 		wake_up(&htt->empty_tx_wq);
 	spin_unlock_bh(&htt->tx_lock);
 
+	rcu_read_lock();
 	if (txq && txq->sta && skb_cb->airtime_est)
 		ieee80211_sta_register_airtime(txq->sta, txq->tid,
 					       skb_cb->airtime_est, 0);
+	rcu_read_unlock();
 
 	if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL)
 		dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
@@ -95,6 +97,8 @@
 
 	info = IEEE80211_SKB_CB(msdu);
 	memset(&info->status, 0, sizeof(info->status));
+	info->status.rates[0].idx = -1;
+
 	trace_ath10k_txrx_tx_unref(ar, tx_done->msdu_id);
 
 	if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/usb.c
@@ -38,6 +38,10 @@
 	struct ath10k_urb_context *urb_context = NULL;
 	unsigned long flags;
 
+	/* bail if this pipe is not initialized */
+	if (!pipe->ar_usb)
+		return NULL;
+
 	spin_lock_irqsave(&pipe->ar_usb->cs_lock, flags);
 	if (!list_empty(&pipe->urb_list_head)) {
 		urb_context = list_first_entry(&pipe->urb_list_head,
@@ -55,6 +59,10 @@
 {
 	unsigned long flags;
 
+	/* bail if this pipe is not initialized */
+	if (!pipe->ar_usb)
+		return;
+
 	spin_lock_irqsave(&pipe->ar_usb->cs_lock, flags);
 
 	pipe->urb_cnt++;
@@ -435,6 +443,7 @@
 			ath10k_dbg(ar, ATH10K_DBG_USB_BULK,
 				   "usb bulk transmit failed: %d\n", ret);
 			usb_unanchor_urb(urb);
+			usb_free_urb(urb);
 			ret = -EINVAL;
 			goto err_free_urb_to_pipe;
 		}
@@ -1000,6 +1009,8 @@
 
 	ar_usb = ath10k_usb_priv(ar);
 	ret = ath10k_usb_create(ar, interface);
+	if (ret)
+		goto err;
 	ar_usb->ar = ar;
 
 	ar->dev_id = product_id;
@@ -1012,7 +1023,7 @@
 	ret = ath10k_core_register(ar, &bus_params);
 	if (ret) {
 		ath10k_warn(ar, "failed to register driver core: %d\n", ret);
-		goto err;
+		goto err_usb_destroy;
 	}
 
 	/* TODO: remove this once USB support is fully implemented */
@@ -1020,6 +1031,9 @@
 
 	return 0;
 
+err_usb_destroy:
+	ath10k_usb_destroy(ar);
+
 err:
 	ath10k_core_destroy(ar);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/wmi-ops.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/wmi-ops.h
@@ -133,6 +133,7 @@
 	struct sk_buff *(*gen_mgmt_tx_send)(struct ath10k *ar,
 					    struct sk_buff *skb,
 					    dma_addr_t paddr);
+	int (*cleanup_mgmt_tx_send)(struct ath10k *ar, struct sk_buff *msdu);
 	struct sk_buff *(*gen_dbglog_cfg)(struct ath10k *ar, u64 module_enable,
 					  u32 log_level);
 	struct sk_buff *(*gen_pktlog_enable)(struct ath10k *ar, u32 filter);
@@ -442,6 +443,15 @@
 }
 
 static inline int
+ath10k_wmi_cleanup_mgmt_tx_send(struct ath10k *ar, struct sk_buff *msdu)
+{
+	if (!ar->wmi.ops->cleanup_mgmt_tx_send)
+		return -EOPNOTSUPP;
+
+	return ar->wmi.ops->cleanup_mgmt_tx_send(ar, msdu);
+}
+
+static inline int
 ath10k_wmi_mgmt_tx_send(struct ath10k *ar, struct sk_buff *msdu,
 			dma_addr_t paddr)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -409,6 +409,49 @@
 	return 0;
 }
 
+static void ath10k_wmi_tlv_event_rfkill_state_change(struct ath10k *ar,
+						     struct sk_buff *skb)
+{
+	const struct wmi_tlv_rfkill_state_change_ev *ev;
+	const void **tb;
+	bool radio;
+	int ret;
+
+	tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC);
+	if (IS_ERR(tb)) {
+		ret = PTR_ERR(tb);
+		ath10k_warn(ar,
+			    "failed to parse rfkill state change event: %d\n",
+			    ret);
+		return;
+	}
+
+	ev = tb[WMI_TLV_TAG_STRUCT_RFKILL_EVENT];
+	if (!ev) {
+		kfree(tb);
+		return;
+	}
+
+	ath10k_dbg(ar, ATH10K_DBG_MAC,
+		   "wmi tlv rfkill state change gpio %d type %d radio_state %d\n",
+		   __le32_to_cpu(ev->gpio_pin_num),
+		   __le32_to_cpu(ev->int_type),
+		   __le32_to_cpu(ev->radio_state));
+
+	radio = (__le32_to_cpu(ev->radio_state) == WMI_TLV_RFKILL_RADIO_STATE_ON);
+
+	spin_lock_bh(&ar->data_lock);
+
+	if (!radio)
+		ar->hw_rfkill_on = true;
+
+	spin_unlock_bh(&ar->data_lock);
+
+	/* notify cfg80211 radio state change */
+	ath10k_mac_rfkill_enable_radio(ar, radio);
+	wiphy_rfkill_set_hw_state(ar->hw->wiphy, !radio);
+}
+
 static int ath10k_wmi_tlv_event_temperature(struct ath10k *ar,
 					    struct sk_buff *skb)
 {
@@ -629,6 +672,9 @@
 	case WMI_TLV_TX_PAUSE_EVENTID:
 		ath10k_wmi_tlv_event_tx_pause(ar, skb);
 		break;
+	case WMI_TLV_RFKILL_STATE_CHANGE_EVENTID:
+		ath10k_wmi_tlv_event_rfkill_state_change(ar, skb);
+		break;
 	case WMI_TLV_PDEV_TEMPERATURE_EVENTID:
 		ath10k_wmi_tlv_event_temperature(ar, skb);
 		break;
@@ -1212,6 +1258,7 @@
 	arg->num_mem_reqs = ev->num_mem_reqs;
 	arg->service_map = svc_bmap;
 	arg->service_map_len = ath10k_wmi_tlv_len(svc_bmap);
+	arg->sys_cap_info = ev->sys_cap_info;
 
 	ret = ath10k_wmi_tlv_iter(ar, mem_reqs, ath10k_wmi_tlv_len(mem_reqs),
 				  ath10k_wmi_tlv_parse_mem_reqs, arg);
@@ -1260,13 +1307,15 @@
 
 	switch (tag) {
 	case WMI_TLV_TAG_STRUCT_SERVICE_AVAILABLE_EVENT:
+		arg->service_map_ext_valid = true;
 		arg->service_map_ext_len = *(__le32 *)ptr;
 		arg->service_map_ext = ptr + sizeof(__le32);
 		return 0;
 	default:
 		break;
 	}
-	return -EPROTO;
+
+	return 0;
 }
 
 static int ath10k_wmi_tlv_op_pull_svc_avail(struct ath10k *ar,
@@ -2838,6 +2887,18 @@
 }
 
 static int
+ath10k_wmi_tlv_op_cleanup_mgmt_tx_send(struct ath10k *ar,
+				       struct sk_buff *msdu)
+{
+	struct ath10k_skb_cb *cb = ATH10K_SKB_CB(msdu);
+	struct ath10k_wmi *wmi = &ar->wmi;
+
+	idr_remove(&wmi->mgmt_pending_tx, cb->msdu_id);
+
+	return 0;
+}
+
+static int
 ath10k_wmi_mgmt_tx_alloc_msdu_id(struct ath10k *ar, struct sk_buff *skb,
 				 dma_addr_t paddr)
 {
@@ -2911,6 +2972,8 @@
 	if (desc_id < 0)
 		goto err_free_skb;
 
+	cb->msdu_id = desc_id;
+
 	ptr = (void *)skb->data;
 	tlv = ptr;
 	tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_MGMT_TX_CMD);
@@ -3650,6 +3713,7 @@
 	struct wmi_tlv *tlv;
 	struct sk_buff *skb;
 	__le32 *channel_list;
+	u16 tlv_len;
 	size_t len;
 	void *ptr;
 	u32 i;
@@ -3707,10 +3771,12 @@
 	/* nlo_configured_parameters(nlo_list) */
 	cmd->no_of_ssids = __cpu_to_le32(min_t(u8, pno->uc_networks_count,
 					       WMI_NLO_MAX_SSIDS));
+	tlv_len = __le32_to_cpu(cmd->no_of_ssids) *
+		sizeof(struct nlo_configured_parameters);
 
 	tlv = ptr;
 	tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
-	tlv->len = __cpu_to_le16(len);
+	tlv->len = __cpu_to_le16(tlv_len);
 
 	ptr += sizeof(*tlv);
 	nlo_list = ptr;
@@ -4204,6 +4270,8 @@
 	.wapi_mbssid_offset = WMI_PDEV_PARAM_UNSUPPORTED,
 	.arp_srcaddr = WMI_PDEV_PARAM_UNSUPPORTED,
 	.arp_dstaddr = WMI_PDEV_PARAM_UNSUPPORTED,
+	.rfkill_config = WMI_TLV_PDEV_PARAM_HW_RFKILL_CONFIG,
+	.rfkill_enable = WMI_TLV_PDEV_PARAM_RFKILL_ENABLE,
 };
 
 static struct wmi_vdev_param_map wmi_tlv_vdev_param_map = {
@@ -4336,6 +4404,7 @@
 	.gen_force_fw_hang = ath10k_wmi_tlv_op_gen_force_fw_hang,
 	/* .gen_mgmt_tx = not implemented; HTT is used */
 	.gen_mgmt_tx_send = ath10k_wmi_tlv_op_gen_mgmt_tx_send,
+	.cleanup_mgmt_tx_send = ath10k_wmi_tlv_op_cleanup_mgmt_tx_send,
 	.gen_dbglog_cfg = ath10k_wmi_tlv_op_gen_dbglog_cfg,
 	.gen_pktlog_enable = ath10k_wmi_tlv_op_gen_pktlog_enable,
 	.gen_pktlog_disable = ath10k_wmi_tlv_op_gen_pktlog_disable,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/wmi-tlv.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/wmi-tlv.h
@@ -7,6 +7,8 @@
 #ifndef _WMI_TLV_H
 #define _WMI_TLV_H
 
+#include <linux/bitops.h>
+
 #define WMI_TLV_CMD(grp_id) (((grp_id) << 12) | 0x1)
 #define WMI_TLV_EV(grp_id) (((grp_id) << 12) | 0x1)
 #define WMI_TLV_CMD_UNSUPPORTED 0
@@ -2235,6 +2237,31 @@
 	__le32 vdev_id;
 } __packed;
 
+enum wmi_tlv_sys_cap_info_flags {
+	WMI_TLV_SYS_CAP_INFO_RXTX_LED	= BIT(0),
+	WMI_TLV_SYS_CAP_INFO_RFKILL	= BIT(1),
+};
+
+#define WMI_TLV_RFKILL_CFG_GPIO_PIN_NUM		GENMASK(5, 0)
+#define WMI_TLV_RFKILL_CFG_RADIO_LEVEL		BIT(6)
+#define WMI_TLV_RFKILL_CFG_PIN_AS_GPIO		GENMASK(10, 7)
+
+enum wmi_tlv_rfkill_enable_radio {
+	WMI_TLV_RFKILL_ENABLE_RADIO_ON	= 0,
+	WMI_TLV_RFKILL_ENABLE_RADIO_OFF	= 1,
+};
+
+enum wmi_tlv_rfkill_radio_state {
+	WMI_TLV_RFKILL_RADIO_STATE_OFF	= 1,
+	WMI_TLV_RFKILL_RADIO_STATE_ON	= 2,
+};
+
+struct wmi_tlv_rfkill_state_change_ev {
+	__le32 gpio_pin_num;
+	__le32 int_type;
+	__le32 radio_state;
+};
+
 void ath10k_wmi_tlv_attach(struct ath10k *ar);
 
 enum wmi_nlo_auth_algorithm {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/wmi.c
@@ -4668,16 +4668,13 @@
 	}
 
 	pream_idx = 0;
-	for (i = 0; i < __le32_to_cpu(ev->rate_max); i++) {
+	for (i = 0; i < tpc_stats->rate_max; i++) {
 		memset(tpc_value, 0, sizeof(tpc_value));
 		memset(buff, 0, sizeof(buff));
 		if (i == pream_table[pream_idx])
 			pream_idx++;
 
-		for (j = 0; j < WMI_TPC_TX_N_CHAIN; j++) {
-			if (j >= __le32_to_cpu(ev->num_tx_chain))
-				break;
-
+		for (j = 0; j < tpc_stats->num_tx_chain; j++) {
 			tpc[j] = ath10k_tpc_config_get_rate(ar, ev, i, j + 1,
 							    rate_code[i],
 							    type);
@@ -4790,7 +4787,7 @@
 
 void ath10k_wmi_event_pdev_tpc_config(struct ath10k *ar, struct sk_buff *skb)
 {
-	u32 num_tx_chain;
+	u32 num_tx_chain, rate_max;
 	u8 rate_code[WMI_TPC_RATE_MAX];
 	u16 pream_table[WMI_TPC_PREAM_TABLE_MAX];
 	struct wmi_pdev_tpc_config_event *ev;
@@ -4806,6 +4803,13 @@
 		return;
 	}
 
+	rate_max = __le32_to_cpu(ev->rate_max);
+	if (rate_max > WMI_TPC_RATE_MAX) {
+		ath10k_warn(ar, "number of rate is %d greater than TPC configured rate %d\n",
+			    rate_max, WMI_TPC_RATE_MAX);
+		rate_max = WMI_TPC_RATE_MAX;
+	}
+
 	tpc_stats = kzalloc(sizeof(*tpc_stats), GFP_ATOMIC);
 	if (!tpc_stats)
 		return;
@@ -4822,8 +4826,8 @@
 		__le32_to_cpu(ev->twice_antenna_reduction);
 	tpc_stats->power_limit = __le32_to_cpu(ev->power_limit);
 	tpc_stats->twice_max_rd_power = __le32_to_cpu(ev->twice_max_rd_power);
-	tpc_stats->num_tx_chain = __le32_to_cpu(ev->num_tx_chain);
-	tpc_stats->rate_max = __le32_to_cpu(ev->rate_max);
+	tpc_stats->num_tx_chain = num_tx_chain;
+	tpc_stats->rate_max = rate_max;
 
 	ath10k_tpc_config_disp_tables(ar, ev, tpc_stats,
 				      rate_code, pream_table,
@@ -5018,16 +5022,13 @@
 	}
 
 	pream_idx = 0;
-	for (i = 0; i < __le32_to_cpu(ev->rate_max); i++) {
+	for (i = 0; i < tpc_stats->rate_max; i++) {
 		memset(tpc_value, 0, sizeof(tpc_value));
 		memset(buff, 0, sizeof(buff));
 		if (i == pream_table[pream_idx])
 			pream_idx++;
 
-		for (j = 0; j < WMI_TPC_TX_N_CHAIN; j++) {
-			if (j >= __le32_to_cpu(ev->num_tx_chain))
-				break;
-
+		for (j = 0; j < tpc_stats->num_tx_chain; j++) {
 			tpc[j] = ath10k_wmi_tpc_final_get_rate(ar, ev, i, j + 1,
 							       rate_code[i],
 							       type, pream_idx);
@@ -5043,7 +5044,7 @@
 
 void ath10k_wmi_event_tpc_final_table(struct ath10k *ar, struct sk_buff *skb)
 {
-	u32 num_tx_chain;
+	u32 num_tx_chain, rate_max;
 	u8 rate_code[WMI_TPC_FINAL_RATE_MAX];
 	u16 pream_table[WMI_TPC_PREAM_TABLE_MAX];
 	struct wmi_pdev_tpc_final_table_event *ev;
@@ -5051,12 +5052,24 @@
 
 	ev = (struct wmi_pdev_tpc_final_table_event *)skb->data;
 
+	num_tx_chain = __le32_to_cpu(ev->num_tx_chain);
+	if (num_tx_chain > WMI_TPC_TX_N_CHAIN) {
+		ath10k_warn(ar, "number of tx chain is %d greater than TPC final configured tx chain %d\n",
+			    num_tx_chain, WMI_TPC_TX_N_CHAIN);
+		return;
+	}
+
+	rate_max = __le32_to_cpu(ev->rate_max);
+	if (rate_max > WMI_TPC_FINAL_RATE_MAX) {
+		ath10k_warn(ar, "number of rate is %d greater than TPC final configured rate %d\n",
+			    rate_max, WMI_TPC_FINAL_RATE_MAX);
+		rate_max = WMI_TPC_FINAL_RATE_MAX;
+	}
+
 	tpc_stats = kzalloc(sizeof(*tpc_stats), GFP_ATOMIC);
 	if (!tpc_stats)
 		return;
 
-	num_tx_chain = __le32_to_cpu(ev->num_tx_chain);
-
 	ath10k_wmi_tpc_config_get_rate_code(rate_code, pream_table,
 					    num_tx_chain);
 
@@ -5069,8 +5082,8 @@
 		__le32_to_cpu(ev->twice_antenna_reduction);
 	tpc_stats->power_limit = __le32_to_cpu(ev->power_limit);
 	tpc_stats->twice_max_rd_power = __le32_to_cpu(ev->twice_max_rd_power);
-	tpc_stats->num_tx_chain = __le32_to_cpu(ev->num_tx_chain);
-	tpc_stats->rate_max = __le32_to_cpu(ev->rate_max);
+	tpc_stats->num_tx_chain = num_tx_chain;
+	tpc_stats->rate_max = rate_max;
 
 	ath10k_wmi_tpc_stats_final_disp_tables(ar, ev, tpc_stats,
 					       rate_code, pream_table,
@@ -5393,6 +5406,12 @@
 	arg->service_map = ev->wmi_service_bitmap;
 	arg->service_map_len = sizeof(ev->wmi_service_bitmap);
 
+	/* Deliberately skipping ev->sys_cap_info as WMI and WMI-TLV have
+	 * different values. We would need a translation to handle that,
+	 * but as we don't currently need anything from sys_cap_info from
+	 * WMI interface (only from WMI-TLV) safest it to skip it.
+	 */
+
 	n = min_t(size_t, __le32_to_cpu(arg->num_mem_reqs),
 		  ARRAY_SIZE(arg->mem_reqs));
 	for (i = 0; i < n; i++)
@@ -5443,9 +5462,12 @@
 	ar->hw_eeprom_rd = __le32_to_cpu(arg.eeprom_rd);
 	ar->low_5ghz_chan = __le32_to_cpu(arg.low_5ghz_chan);
 	ar->high_5ghz_chan = __le32_to_cpu(arg.high_5ghz_chan);
+	ar->sys_cap_info = __le32_to_cpu(arg.sys_cap_info);
 
 	ath10k_dbg_dump(ar, ATH10K_DBG_WMI, NULL, "wmi svc: ",
 			arg.service_map, arg.service_map_len);
+	ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi sys_cap_info 0x%x\n",
+		   ar->sys_cap_info);
 
 	if (ar->num_rf_chains > ar->max_spatial_stream) {
 		ath10k_warn(ar, "hardware advertises support for more spatial streams than it should (%d > %d)\n",
@@ -5646,8 +5668,13 @@
 			    ret);
 	}
 
-	ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map,
-			       __le32_to_cpu(arg.service_map_ext_len));
+	/*
+	 * Initialization of "arg.service_map_ext_valid" to ZERO is necessary
+	 * for the below logic to work.
+	 */
+	if (arg.service_map_ext_valid)
+		ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map,
+				       __le32_to_cpu(arg.service_map_ext_len));
 }
 
 static int ath10k_wmi_event_temperature(struct ath10k *ar, struct sk_buff *skb)
@@ -9422,7 +9449,7 @@
 
 	msdu = pkt_addr->vaddr;
 	dma_unmap_single(ar->dev, pkt_addr->paddr,
-			 msdu->len, DMA_FROM_DEVICE);
+			 msdu->len, DMA_TO_DEVICE);
 	ieee80211_free_txskb(ar->hw, msdu);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath10k/wmi.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath10k/wmi.h
@@ -3786,6 +3786,8 @@
 	u32 arp_srcaddr;
 	u32 arp_dstaddr;
 	u32 enable_btcoex;
+	u32 rfkill_config;
+	u32 rfkill_enable;
 };
 
 #define WMI_PDEV_PARAM_UNSUPPORTED 0
@@ -6851,12 +6853,14 @@
 	__le32 num_mem_reqs;
 	__le32 low_5ghz_chan;
 	__le32 high_5ghz_chan;
+	__le32 sys_cap_info;
 	const __le32 *service_map;
 	size_t service_map_len;
 	const struct wlan_host_mem_req *mem_reqs[WMI_MAX_MEM_REQS];
 };
 
 struct wmi_svc_avail_ev_arg {
+	bool service_map_ext_valid;
 	__le32 service_map_ext_len;
 	const __le32 *service_map_ext;
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath6kl/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath6kl/main.c
@@ -430,6 +430,9 @@
 
 	ath6kl_dbg(ATH6KL_DBG_TRC, "new station %pM aid=%d\n", mac_addr, aid);
 
+	if (aid < 1 || aid > AP_MAX_NUM_STA)
+		return;
+
 	if (assoc_req_len > sizeof(struct ieee80211_hdr_3addr)) {
 		struct ieee80211_mgmt *mgmt =
 			(struct ieee80211_mgmt *) assoc_info;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath6kl/wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath6kl/wmi.c
@@ -2645,6 +2645,11 @@
 		return -EINVAL;
 	}
 
+	if (tsid >= 16) {
+		ath6kl_err("invalid tsid: %d\n", tsid);
+		return -EINVAL;
+	}
+
 	skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
 	if (!skb)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
@@ -4183,7 +4183,7 @@
 
 static void ar9003_hw_thermo_cal_apply(struct ath_hw *ah)
 {
-	u32 data, ko, kg;
+	u32 data = 0, ko, kg;
 
 	if (!AR_SREV_9462_20_OR_LATER(ah))
 		return;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/ath9k.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -177,7 +177,8 @@
 	s8 txq;
 	u8 keyix;
 	u8 rtscts_rate;
-	u8 retries : 7;
+	u8 retries : 6;
+	u8 dyn_smps : 1;
 	u8 baw_tracked : 1;
 	u8 tx_power;
 	enum ath9k_key_type keytype:2;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c
@@ -84,7 +84,7 @@
 			val = swahb32(val);
 		}
 
-		__raw_writel(val, mem + reg);
+		iowrite32(val, mem + reg);
 		usleep_range(100, 120);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/debug.c
@@ -1223,8 +1223,11 @@
 
 	ah->nf_override = val;
 
-	if (ah->curchan)
+	if (ah->curchan) {
+		ath9k_ps_wakeup(sc);
 		ath9k_hw_loadnf(ah, ah->curchan);
+		ath9k_ps_restore(sc);
+	}
 
 	return count;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -449,10 +449,19 @@
 	spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 
 	/* The pending URBs have to be canceled. */
+	spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	list_for_each_entry_safe(tx_buf, tx_buf_tmp,
 				 &hif_dev->tx.tx_pending, list) {
+		usb_get_urb(tx_buf->urb);
+		spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 		usb_kill_urb(tx_buf->urb);
+		list_del(&tx_buf->list);
+		usb_free_urb(tx_buf->urb);
+		kfree(tx_buf->buf);
+		kfree(tx_buf);
+		spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	}
+	spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 
 	usb_kill_anchored_urbs(&hif_dev->mgmt_submitted);
 }
@@ -612,6 +621,11 @@
 			hif_dev->remain_skb = nskb;
 			spin_unlock(&hif_dev->rx_lock);
 		} else {
+			if (pool_index == MAX_PKT_NUM_IN_TRANSFER) {
+				dev_err(&hif_dev->udev->dev,
+					"ath9k_htc: over RX MAX_PKT_NUM\n");
+				goto err;
+			}
 			nskb = __dev_alloc_skb(pkt_len + 32, GFP_ATOMIC);
 			if (!nskb) {
 				dev_err(&hif_dev->udev->dev,
@@ -638,9 +652,9 @@
 
 static void ath9k_hif_usb_rx_cb(struct urb *urb)
 {
-	struct sk_buff *skb = (struct sk_buff *) urb->context;
-	struct hif_device_usb *hif_dev =
-		usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0));
+	struct rx_buf *rx_buf = (struct rx_buf *)urb->context;
+	struct hif_device_usb *hif_dev = rx_buf->hif_dev;
+	struct sk_buff *skb = rx_buf->skb;
 	int ret;
 
 	if (!skb)
@@ -680,14 +694,15 @@
 	return;
 free:
 	kfree_skb(skb);
+	kfree(rx_buf);
 }
 
 static void ath9k_hif_usb_reg_in_cb(struct urb *urb)
 {
-	struct sk_buff *skb = (struct sk_buff *) urb->context;
+	struct rx_buf *rx_buf = (struct rx_buf *)urb->context;
+	struct hif_device_usb *hif_dev = rx_buf->hif_dev;
+	struct sk_buff *skb = rx_buf->skb;
 	struct sk_buff *nskb;
-	struct hif_device_usb *hif_dev =
-		usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0));
 	int ret;
 
 	if (!skb)
@@ -727,11 +742,13 @@
 			return;
 		}
 
+		rx_buf->skb = nskb;
+
 		usb_fill_int_urb(urb, hif_dev->udev,
 				 usb_rcvintpipe(hif_dev->udev,
 						 USB_REG_IN_PIPE),
 				 nskb->data, MAX_REG_IN_BUF_SIZE,
-				 ath9k_hif_usb_reg_in_cb, nskb, 1);
+				 ath9k_hif_usb_reg_in_cb, rx_buf, 1);
 	}
 
 resubmit:
@@ -745,6 +762,7 @@
 	return;
 free:
 	kfree_skb(skb);
+	kfree(rx_buf);
 	urb->context = NULL;
 }
 
@@ -753,27 +771,37 @@
 	struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL;
 	unsigned long flags;
 
+	spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	list_for_each_entry_safe(tx_buf, tx_buf_tmp,
 				 &hif_dev->tx.tx_buf, list) {
+		usb_get_urb(tx_buf->urb);
+		spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 		usb_kill_urb(tx_buf->urb);
 		list_del(&tx_buf->list);
 		usb_free_urb(tx_buf->urb);
 		kfree(tx_buf->buf);
 		kfree(tx_buf);
+		spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	}
+	spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 
 	spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	hif_dev->tx.flags |= HIF_USB_TX_FLUSH;
 	spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 
+	spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	list_for_each_entry_safe(tx_buf, tx_buf_tmp,
 				 &hif_dev->tx.tx_pending, list) {
+		usb_get_urb(tx_buf->urb);
+		spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 		usb_kill_urb(tx_buf->urb);
 		list_del(&tx_buf->list);
 		usb_free_urb(tx_buf->urb);
 		kfree(tx_buf->buf);
 		kfree(tx_buf);
+		spin_lock_irqsave(&hif_dev->tx.tx_lock, flags);
 	}
+	spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 
 	usb_kill_anchored_urbs(&hif_dev->mgmt_submitted);
 }
@@ -790,7 +818,7 @@
 	init_usb_anchor(&hif_dev->mgmt_submitted);
 
 	for (i = 0; i < MAX_TX_URB_NUM; i++) {
-		tx_buf = kzalloc(sizeof(struct tx_buf), GFP_KERNEL);
+		tx_buf = kzalloc(sizeof(*tx_buf), GFP_KERNEL);
 		if (!tx_buf)
 			goto err;
 
@@ -827,8 +855,9 @@
 
 static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev)
 {
-	struct urb *urb = NULL;
+	struct rx_buf *rx_buf = NULL;
 	struct sk_buff *skb = NULL;
+	struct urb *urb = NULL;
 	int i, ret;
 
 	init_usb_anchor(&hif_dev->rx_submitted);
@@ -836,6 +865,12 @@
 
 	for (i = 0; i < MAX_RX_URB_NUM; i++) {
 
+		rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL);
+		if (!rx_buf) {
+			ret = -ENOMEM;
+			goto err_rxb;
+		}
+
 		/* Allocate URB */
 		urb = usb_alloc_urb(0, GFP_KERNEL);
 		if (urb == NULL) {
@@ -850,11 +885,14 @@
 			goto err_skb;
 		}
 
+		rx_buf->hif_dev = hif_dev;
+		rx_buf->skb = skb;
+
 		usb_fill_bulk_urb(urb, hif_dev->udev,
 				  usb_rcvbulkpipe(hif_dev->udev,
 						  USB_WLAN_RX_PIPE),
 				  skb->data, MAX_RX_BUF_SIZE,
-				  ath9k_hif_usb_rx_cb, skb);
+				  ath9k_hif_usb_rx_cb, rx_buf);
 
 		/* Anchor URB */
 		usb_anchor_urb(urb, &hif_dev->rx_submitted);
@@ -880,6 +918,8 @@
 err_skb:
 	usb_free_urb(urb);
 err_urb:
+	kfree(rx_buf);
+err_rxb:
 	ath9k_hif_usb_dealloc_rx_urbs(hif_dev);
 	return ret;
 }
@@ -891,14 +931,21 @@
 
 static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev)
 {
-	struct urb *urb = NULL;
+	struct rx_buf *rx_buf = NULL;
 	struct sk_buff *skb = NULL;
+	struct urb *urb = NULL;
 	int i, ret;
 
 	init_usb_anchor(&hif_dev->reg_in_submitted);
 
 	for (i = 0; i < MAX_REG_IN_URB_NUM; i++) {
 
+		rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL);
+		if (!rx_buf) {
+			ret = -ENOMEM;
+			goto err_rxb;
+		}
+
 		/* Allocate URB */
 		urb = usb_alloc_urb(0, GFP_KERNEL);
 		if (urb == NULL) {
@@ -913,11 +960,14 @@
 			goto err_skb;
 		}
 
+		rx_buf->hif_dev = hif_dev;
+		rx_buf->skb = skb;
+
 		usb_fill_int_urb(urb, hif_dev->udev,
 				  usb_rcvintpipe(hif_dev->udev,
 						  USB_REG_IN_PIPE),
 				  skb->data, MAX_REG_IN_BUF_SIZE,
-				  ath9k_hif_usb_reg_in_cb, skb, 1);
+				  ath9k_hif_usb_reg_in_cb, rx_buf, 1);
 
 		/* Anchor URB */
 		usb_anchor_urb(urb, &hif_dev->reg_in_submitted);
@@ -943,6 +993,8 @@
 err_skb:
 	usb_free_urb(urb);
 err_urb:
+	kfree(rx_buf);
+err_rxb:
 	ath9k_hif_usb_dealloc_reg_in_urbs(hif_dev);
 	return ret;
 }
@@ -973,7 +1025,7 @@
 	return -ENOMEM;
 }
 
-static void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev)
+void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev)
 {
 	usb_kill_anchored_urbs(&hif_dev->regout_submitted);
 	ath9k_hif_usb_dealloc_reg_in_urbs(hif_dev);
@@ -1216,7 +1268,7 @@
 static int send_eject_command(struct usb_interface *interface)
 {
 	struct usb_device *udev = interface_to_usbdev(interface);
-	struct usb_host_interface *iface_desc = &interface->altsetting[0];
+	struct usb_host_interface *iface_desc = interface->cur_altsetting;
 	struct usb_endpoint_descriptor *endpoint;
 	unsigned char *cmd;
 	u8 bulk_out_ep;
@@ -1341,8 +1393,9 @@
 
 	if (hif_dev->flags & HIF_USB_READY) {
 		ath9k_htc_hw_deinit(hif_dev->htc_handle, unplugged);
-		ath9k_htc_hw_free(hif_dev->htc_handle);
 		ath9k_hif_usb_dev_deinit(hif_dev);
+		ath9k_destoy_wmi(hif_dev->htc_handle->drv_priv);
+		ath9k_htc_hw_free(hif_dev->htc_handle);
 	}
 
 	usb_set_intfdata(interface, NULL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/hif_usb.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/hif_usb.h
@@ -86,6 +86,11 @@
 	struct list_head list;
 };
 
+struct rx_buf {
+	struct sk_buff *skb;
+	struct hif_device_usb *hif_dev;
+};
+
 #define HIF_USB_TX_STOP  BIT(0)
 #define HIF_USB_TX_FLUSH BIT(1)
 
@@ -133,5 +138,6 @@
 
 int ath9k_hif_usb_init(void);
 void ath9k_hif_usb_exit(void);
+void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev);
 
 #endif /* HTC_USB_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -931,8 +931,9 @@
 int ath9k_htc_probe_device(struct htc_target *htc_handle, struct device *dev,
 			   u16 devid, char *product, u32 drv_info)
 {
-	struct ieee80211_hw *hw;
+	struct hif_device_usb *hif_dev;
 	struct ath9k_htc_priv *priv;
+	struct ieee80211_hw *hw;
 	int ret;
 
 	hw = ieee80211_alloc_hw(sizeof(struct ath9k_htc_priv), &ath9k_htc_ops);
@@ -967,7 +968,10 @@
 	return 0;
 
 err_init:
-	ath9k_deinit_wmi(priv);
+	ath9k_stop_wmi(priv);
+	hif_dev = (struct hif_device_usb *)htc_handle->hif_dev;
+	ath9k_hif_usb_dealloc_urbs(hif_dev);
+	ath9k_destoy_wmi(priv);
 err_free:
 	ieee80211_free_hw(hw);
 	return ret;
@@ -982,7 +986,7 @@
 			htc_handle->drv_priv->ah->ah_flags |= AH_UNPLUGGED;
 
 		ath9k_deinit_device(htc_handle->drv_priv);
-		ath9k_deinit_wmi(htc_handle->drv_priv);
+		ath9k_stop_wmi(htc_handle->drv_priv);
 		ieee80211_free_hw(htc_handle->drv_priv->hw);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -1674,7 +1674,7 @@
 	case IEEE80211_AMPDU_TX_START:
 		ret = ath9k_htc_tx_aggr_oper(priv, vif, sta, action, tid);
 		if (!ret)
-			ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+			ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
@@ -973,6 +973,8 @@
 	struct ath_htc_rx_status *rxstatus;
 	struct ath_rx_status rx_stats;
 	bool decrypt_error = false;
+	u16 rs_datalen;
+	bool is_phyerr;
 
 	if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
 		ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",
@@ -982,11 +984,24 @@
 
 	rxstatus = (struct ath_htc_rx_status *)skb->data;
 
-	if (be16_to_cpu(rxstatus->rs_datalen) -
-	    (skb->len - HTC_RX_FRAME_HEADER_SIZE) != 0) {
+	rs_datalen = be16_to_cpu(rxstatus->rs_datalen);
+	if (unlikely(rs_datalen -
+	    (skb->len - HTC_RX_FRAME_HEADER_SIZE) != 0)) {
 		ath_err(common,
 			"Corrupted RX data len, dropping (dlen: %d, skblen: %d)\n",
-			rxstatus->rs_datalen, skb->len);
+			rs_datalen, skb->len);
+		goto rx_next;
+	}
+
+	is_phyerr = rxstatus->rs_status & ATH9K_RXERR_PHY;
+	/*
+	 * Discard zero-length packets and packets smaller than an ACK
+	 * which are not PHY_ERROR (short radar pulses have a length of 3)
+	 */
+	if (unlikely(!rs_datalen || (rs_datalen < 10 && !is_phyerr))) {
+		ath_dbg(common, ANY,
+			"Short RX data len, dropping (dlen: %d)\n",
+			rs_datalen);
 		goto rx_next;
 	}
 
@@ -1011,7 +1026,7 @@
 	 * Process PHY errors and return so that the packet
 	 * can be dropped.
 	 */
-	if (rx_stats.rs_status & ATH9K_RXERR_PHY) {
+	if (unlikely(is_phyerr)) {
 		/* TODO: Not using DFS processing now. */
 		if (ath_cmn_process_fft(&priv->spec_priv, hdr,
 				    &rx_stats, rx_status->mactime)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/htc_hst.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/htc_hst.c
@@ -113,6 +113,9 @@
 
 	if (svc_rspmsg->status == HTC_SERVICE_SUCCESS) {
 		epid = svc_rspmsg->endpoint_id;
+		if (epid < 0 || epid >= ENDPOINT_MAX)
+			return;
+
 		service_id = be16_to_cpu(svc_rspmsg->service_id);
 		max_msglen = be16_to_cpu(svc_rspmsg->max_msg_len);
 		endpoint = &target->endpoint[epid];
@@ -170,7 +173,6 @@
 	time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
 	if (!time_left) {
 		dev_err(target->dev, "HTC credit config timeout\n");
-		kfree_skb(skb);
 		return -ETIMEDOUT;
 	}
 
@@ -206,7 +208,6 @@
 	time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
 	if (!time_left) {
 		dev_err(target->dev, "HTC start timeout\n");
-		kfree_skb(skb);
 		return -ETIMEDOUT;
 	}
 
@@ -279,7 +280,6 @@
 	if (!time_left) {
 		dev_err(target->dev, "Service connection timeout for: %d\n",
 			service_connreq->service_id);
-		kfree_skb(skb);
 		return -ETIMEDOUT;
 	}
 
@@ -339,6 +339,8 @@
 
 	if (skb) {
 		htc_hdr = (struct htc_frame_hdr *) skb->data;
+		if (htc_hdr->endpoint_id >= ARRAY_SIZE(htc_handle->endpoint))
+			goto ret;
 		endpoint = &htc_handle->endpoint[htc_hdr->endpoint_id];
 		skb_pull(skb, sizeof(struct htc_frame_hdr));
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/main.c
@@ -1457,6 +1457,9 @@
 		ath_chanctx_set_channel(sc, ctx, &hw->conf.chandef);
 	}
 
+	if (changed & IEEE80211_CONF_CHANGE_POWER)
+		ath9k_set_txpower(sc, NULL);
+
 	mutex_unlock(&sc->mutex);
 	ath9k_ps_restore(sc);
 
@@ -1921,7 +1924,7 @@
 		ath9k_ps_wakeup(sc);
 		ret = ath_tx_aggr_start(sc, sta, tid, ssn);
 		if (!ret)
-			ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+			ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		ath9k_ps_restore(sc);
 		break;
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/wmi.c
@@ -112,14 +112,17 @@
 	return wmi;
 }
 
-void ath9k_deinit_wmi(struct ath9k_htc_priv *priv)
+void ath9k_stop_wmi(struct ath9k_htc_priv *priv)
 {
 	struct wmi *wmi = priv->wmi;
 
 	mutex_lock(&wmi->op_mutex);
 	wmi->stopped = true;
 	mutex_unlock(&wmi->op_mutex);
+}
 
+void ath9k_destoy_wmi(struct ath9k_htc_priv *priv)
+{
 	kfree(priv->wmi);
 }
 
@@ -336,7 +339,6 @@
 		ath_dbg(common, WMI, "Timeout waiting for WMI command: %s\n",
 			wmi_cmd_to_name(cmd_id));
 		mutex_unlock(&wmi->op_mutex);
-		kfree_skb(skb);
 		return -ETIMEDOUT;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/wmi.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/wmi.h
@@ -179,7 +179,6 @@
 };
 
 struct wmi *ath9k_init_wmi(struct ath9k_htc_priv *priv);
-void ath9k_deinit_wmi(struct ath9k_htc_priv *priv);
 int ath9k_wmi_connect(struct htc_target *htc, struct wmi *wmi,
 		      enum htc_endpoint_id *wmi_ctrl_epid);
 int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id,
@@ -189,6 +188,8 @@
 void ath9k_wmi_event_tasklet(unsigned long data);
 void ath9k_fatal_work(struct work_struct *work);
 void ath9k_wmi_event_drain(struct ath9k_htc_priv *priv);
+void ath9k_stop_wmi(struct ath9k_htc_priv *priv);
+void ath9k_destoy_wmi(struct ath9k_htc_priv *priv);
 
 #define WMI_CMD(_wmi_cmd)						\
 	do {								\
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/ath9k/xmit.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1271,6 +1271,11 @@
 				 is_40, is_sgi, is_sp);
 			if (rix < 8 && (tx_info->flags & IEEE80211_TX_CTL_STBC))
 				info->rates[i].RateFlags |= ATH9K_RATESERIES_STBC;
+			if (rix >= 8 && fi->dyn_smps) {
+				info->rates[i].RateFlags |=
+					ATH9K_RATESERIES_RTS_CTS;
+				info->flags |= ATH9K_TXDESC_CTSENA;
+			}
 
 			info->txpower[i] = ath_get_rate_txpower(sc, bf, rix,
 								is_40, false);
@@ -2111,6 +2116,7 @@
 		fi->keyix = an->ps_key;
 	else
 		fi->keyix = ATH9K_TXKEYIX_INVALID;
+	fi->dyn_smps = sta && sta->smps_mode == IEEE80211_SMPS_DYNAMIC;
 	fi->keytype = keytype;
 	fi->framelen = framelen;
 	fi->tx_power = txpower;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/carl9170/fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/carl9170/fw.c
@@ -338,9 +338,7 @@
 		ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC);
 
 		if (SUPP(CARL9170FW_WLANTX_CAB)) {
-			if_comb_types |=
-				BIT(NL80211_IFTYPE_AP) |
-				BIT(NL80211_IFTYPE_P2P_GO);
+			if_comb_types |= BIT(NL80211_IFTYPE_AP);
 
 #ifdef CONFIG_MAC80211_MESH
 			if_comb_types |=
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/carl9170/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/carl9170/main.c
@@ -582,11 +582,10 @@
 	ar->disable_offload |= ((vif->type != NL80211_IFTYPE_STATION) &&
 	    (vif->type != NL80211_IFTYPE_AP));
 
-	/* While the driver supports HW offload in a single
-	 * P2P client configuration, it doesn't support HW
-	 * offload in the favourit, concurrent P2P GO+CLIENT
-	 * configuration. Hence, HW offload will always be
-	 * disabled for P2P.
+	/* The driver used to have P2P GO+CLIENT support,
+	 * but since this was dropped and we don't know if
+	 * there are any gremlins lurking in the shadows,
+	 * so best we keep HW offload disabled for P2P.
 	 */
 	ar->disable_offload |= vif->p2p;
 
@@ -639,18 +638,6 @@
 			if (vif->type == NL80211_IFTYPE_STATION)
 				break;
 
-			/* P2P GO [master] use-case
-			 * Because the P2P GO station is selected dynamically
-			 * by all participating peers of a WIFI Direct network,
-			 * the driver has be able to change the main interface
-			 * operating mode on the fly.
-			 */
-			if (main_vif->p2p && vif->p2p &&
-			    vif->type == NL80211_IFTYPE_AP) {
-				old_main = main_vif;
-				break;
-			}
-
 			err = -EBUSY;
 			rcu_read_unlock();
 
@@ -1449,8 +1436,7 @@
 		rcu_assign_pointer(sta_info->agg[tid], tid_info);
 		spin_unlock_bh(&ar->tx_ampdu_list_lock);
 
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-		break;
+		return IEEE80211_AMPDU_TX_START_IMMEDIATE;
 
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/wcn36xx/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/wcn36xx/Kconfig
@@ -17,3 +17,12 @@
 	  Enabled debugfs support
 
 	  If unsure, say Y to make it easier to debug problems.
+
+config WCN36XX_SNAPDRAGON_HACKS
+	bool "Dragonboard 410c WCN36XX MAC address generation hacks"
+	default n
+	depends on WCN36XX
+	---help---
+	  Upon probe, WCN36XX will try to read its MAC address from
+	  a file located at /lib/firmware/wlan/macaddr0. If the file
+	  is not present, it will randomly generate a new MAC address.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/wcn36xx/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/wcn36xx/main.c
@@ -163,7 +163,7 @@
 		.ampdu_density = IEEE80211_HT_MPDU_DENSITY_16,
 		.mcs = {
 			.rx_mask = { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
-			.rx_highest = cpu_to_le16(72),
+			.rx_highest = cpu_to_le16(150),
 			.tx_params = IEEE80211_HT_MCS_TX_DEFINED,
 		}
 	}
@@ -1084,6 +1084,7 @@
 	enum ieee80211_ampdu_mlme_action action = params->action;
 	u16 tid = params->tid;
 	u16 *ssn = &params->ssn;
+	int ret = 0;
 
 	wcn36xx_dbg(WCN36XX_DBG_MAC, "mac ampdu action action %d tid %d\n",
 		    action, tid);
@@ -1106,7 +1107,7 @@
 		sta_priv->ampdu_state[tid] = WCN36XX_AMPDU_START;
 		spin_unlock_bh(&sta_priv->ampdu_lock);
 
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_OPERATIONAL:
 		spin_lock_bh(&sta_priv->ampdu_lock);
@@ -1131,7 +1132,7 @@
 
 	mutex_unlock(&wcn->conf_mutex);
 
-	return 0;
+	return ret;
 }
 
 static const struct ieee80211_ops wcn36xx_ops = {
@@ -1302,6 +1303,14 @@
 	void *wcnss;
 	int ret;
 	const u8 *addr;
+#ifdef	CONFIG_WCN36XX_SNAPDRAGON_HACKS
+	int status;
+	const struct firmware *addr_file = NULL;
+	u8 tmp[18], _addr[ETH_ALEN];
+	static const u8 qcom_oui[3] = {0x00, 0x0A, 0xF5};
+	static const char *files = {"wlan/macaddr0"};
+#endif
+
 
 	wcn36xx_dbg(WCN36XX_DBG_MAC, "platform probe\n");
 
@@ -1341,15 +1350,43 @@
 	if (addr && ret != ETH_ALEN) {
 		wcn36xx_err("invalid local-mac-address\n");
 		ret = -EINVAL;
-		goto out_wq;
-	} else if (addr) {
+		goto out_destroy_ept;
+	}
+#ifdef	CONFIG_WCN36XX_SNAPDRAGON_HACKS
+	else if (addr == NULL) {
+		addr = _addr;
+		status = request_firmware(&addr_file, files, &pdev->dev);
+
+		if (status < 0) {
+			/* Assign a random mac with Qualcomm oui */
+			dev_err(&pdev->dev, "Failed (%d) to read macaddress"
+			"file %s, using a random address instead", status, files);
+			memcpy(addr, qcom_oui, 3);
+			get_random_bytes(addr + 3, 3);
+		} else {
+			memset(tmp, 0, sizeof(tmp));
+			memcpy(tmp, addr_file->data, sizeof(tmp) - 1);
+			sscanf(tmp, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",
+			&addr[0],
+			&addr[1],
+			&addr[2],
+			&addr[3],
+			&addr[4],
+			&addr[5]);
+
+			release_firmware(addr_file);
+		}
+	}
+#endif
+
+	if (addr) {
 		wcn36xx_info("mac address: %pM\n", addr);
 		SET_IEEE80211_PERM_ADDR(wcn->hw, addr);
 	}
 
 	ret = wcn36xx_platform_get_resources(wcn, pdev);
 	if (ret)
-		goto out_wq;
+		goto out_destroy_ept;
 
 	wcn36xx_init_ieee80211(wcn);
 	ret = ieee80211_register_hw(wcn->hw);
@@ -1361,6 +1398,8 @@
 out_unmap:
 	iounmap(wcn->ccu_base);
 	iounmap(wcn->dxe_base);
+out_destroy_ept:
+	rpmsg_destroy_ept(wcn->smd_channel);
 out_wq:
 	ieee80211_free_hw(hw);
 out_err:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/wil6210/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/wil6210/Kconfig
@@ -2,6 +2,7 @@
 config WIL6210
 	tristate "Wilocity 60g WiFi card wil6210 support"
 	select WANT_DEV_COREDUMP
+	select CRC32
 	depends on CFG80211
 	depends on PCI
 	default n
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/wil6210/txrx_edma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/wil6210/txrx_edma.c
@@ -880,6 +880,7 @@
 	u8 data_offset;
 	struct wil_rx_status_extended *s;
 	u16 sring_idx = sring - wil->srings;
+	int invalid_buff_id_retry;
 
 	BUILD_BUG_ON(sizeof(struct wil_rx_status_extended) > sizeof(skb->cb));
 
@@ -893,9 +894,9 @@
 	/* Extract the buffer ID from the status message */
 	buff_id = le16_to_cpu(wil_rx_status_get_buff_id(msg));
 
+	invalid_buff_id_retry = 0;
 	while (!buff_id) {
 		struct wil_rx_status_extended *s;
-		int invalid_buff_id_retry = 0;
 
 		wil_dbg_txrx(wil,
 			     "buff_id is not updated yet by HW, (swhead 0x%x)\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ath/wil6210/wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ath/wil6210/wmi.c
@@ -2505,7 +2505,8 @@
 	cmd->mgmt_frm_type = type;
 	/* BUG: FW API define ieLen as u8. Will fix FW */
 	cmd->ie_len = cpu_to_le16(ie_len);
-	memcpy(cmd->ie_info, ie, ie_len);
+	if (ie_len)
+		memcpy(cmd->ie_info, ie, ie_len);
 	rc = wmi_send(wil, WMI_SET_APPIE_CMDID, vif->mid, cmd, len);
 	kfree(cmd);
 out:
@@ -2541,7 +2542,8 @@
 	}
 
 	cmd->ie_len = cpu_to_le16(ie_len);
-	memcpy(cmd->ie_info, ie, ie_len);
+	if (ie_len)
+		memcpy(cmd->ie_info, ie, ie_len);
 	rc = wmi_send(wil, WMI_UPDATE_FT_IES_CMDID, vif->mid, cmd, len);
 	kfree(cmd);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/b43/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/b43/main.c
@@ -5569,7 +5569,7 @@
 	/* fill hw info */
 	ieee80211_hw_set(hw, RX_INCLUDES_FCS);
 	ieee80211_hw_set(hw, SIGNAL_DBM);
-
+	ieee80211_hw_set(hw, MFP_CAPABLE);
 	hw->wiphy->interface_modes =
 		BIT(NL80211_IFTYPE_AP) |
 		BIT(NL80211_IFTYPE_MESH_POINT) |
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/b43/phy_n.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/b43/phy_n.c
@@ -5308,7 +5308,7 @@
 
 	for (i = 0; i < 4; i++) {
 		if (dev->phy.rev >= 3)
-			table[i] = coef[i];
+			coef[i] = table[i];
 		else
 			coef[i] = 0;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/b43legacy/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/b43legacy/main.c
@@ -1275,8 +1275,9 @@
 }
 
 /* Interrupt handler bottom-half */
-static void b43legacy_interrupt_tasklet(struct b43legacy_wldev *dev)
+static void b43legacy_interrupt_tasklet(unsigned long data)
 {
+	struct b43legacy_wldev *dev = (struct b43legacy_wldev *)data;
 	u32 reason;
 	u32 dma_reason[ARRAY_SIZE(dev->dma_reason)];
 	u32 merged_dma_reason = 0;
@@ -3741,7 +3742,7 @@
 	b43legacy_set_status(wldev, B43legacy_STAT_UNINIT);
 	wldev->bad_frames_preempt = modparam_bad_frames_preempt;
 	tasklet_init(&wldev->isr_tasklet,
-		     (void (*)(unsigned long))b43legacy_interrupt_tasklet,
+		     b43legacy_interrupt_tasklet,
 		     (unsigned long)wldev);
 	if (modparam_pio)
 		wldev->__using_pio = true;
@@ -3800,6 +3801,7 @@
 	/* fill hw info */
 	ieee80211_hw_set(hw, RX_INCLUDES_FCS);
 	ieee80211_hw_set(hw, SIGNAL_DBM);
+	ieee80211_hw_set(hw, MFP_CAPABLE); /* Allow WPA3 in software */
 
 	hw->wiphy->interface_modes =
 		BIT(NL80211_IFTYPE_AP) |
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/b43legacy/xmit.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/b43legacy/xmit.c
@@ -558,6 +558,7 @@
 	default:
 		b43legacywarn(dev->wl, "Unexpected value for chanstat (0x%X)\n",
 		       chanstat);
+		goto drop;
 	}
 
 	memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -82,6 +82,8 @@
 
 #define BRCMF_ND_INFO_TIMEOUT		msecs_to_jiffies(2000)
 
+#define BRCMF_PS_MAX_TIMEOUT_MS		2000
+
 #define BRCMF_ASSOC_PARAMS_FIXED_SIZE \
 	(sizeof(struct brcmf_assoc_params_le) - sizeof(u16))
 
@@ -2789,6 +2791,12 @@
 		else
 			bphy_err(drvr, "error (%d)\n", err);
 	}
+
+	err = brcmf_fil_iovar_int_set(ifp, "pm2_sleep_ret",
+				min_t(u32, timeout, BRCMF_PS_MAX_TIMEOUT_MS));
+	if (err)
+		bphy_err(drvr, "Unable to set pm timeout, (%d)\n", err);
+
 done:
 	brcmf_dbg(TRACE, "Exit\n");
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -483,7 +483,7 @@
 	ret = brcmf_proto_hdrpull(drvr, true, skb, ifp);
 
 	if (ret || !(*ifp) || !(*ifp)->ndev) {
-		if (ret != -ENODATA && *ifp)
+		if (ret != -ENODATA && *ifp && (*ifp)->ndev)
 			(*ifp)->ndev->stats.rx_errors++;
 		brcmu_pkt_buf_free_skb(skb);
 		return -ENODATA;
@@ -1350,6 +1350,11 @@
 	brcmf_fweh_detach(drvr);
 	brcmf_proto_detach(drvr);
 
+	if (drvr->mon_if) {
+		brcmf_net_detach(drvr->mon_if->ndev, false);
+		drvr->mon_if = NULL;
+	}
+
 	/* make sure primary interface removed last */
 	for (i = BRCMF_MAX_IFS - 1; i > -1; i--) {
 		if (drvr->iflist[i])
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c
@@ -40,6 +40,18 @@
 	BRCM_CC_43340_CHIP_ID, 2, "pov-tab-p1006w-data"
 };
 
+static const struct brcmf_dmi_data predia_basic_data = {
+	BRCM_CC_43341_CHIP_ID, 2, "predia-basic"
+};
+
+/* Note the Voyo winpad A15 tablet uses the same Ampak AP6330 module, with the
+ * exact same nvram file as the Prowise-PT301 tablet. Since the nvram for the
+ * Prowise-PT301 is already in linux-firmware we just point to that here.
+ */
+static const struct brcmf_dmi_data voyo_winpad_a15_data = {
+	BRCM_CC_4330_CHIP_ID, 4, "Prowise-PT301"
+};
+
 static const struct dmi_system_id dmi_platform_data[] = {
 	{
 		/* ACEPC T8 Cherry Trail Z8350 mini PC */
@@ -111,6 +123,26 @@
 		},
 		.driver_data = (void *)&pov_tab_p1006w_data,
 	},
+	{
+		/* Predia Basic tablet (+ with keyboard dock) */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "CherryTrail"),
+			/* Mx.WT107.KUBNGEA02 with the version-nr dropped */
+			DMI_MATCH(DMI_BIOS_VERSION, "Mx.WT107.KUBNGEA"),
+		},
+		.driver_data = (void *)&predia_basic_data,
+	},
+	{
+		/* Voyo winpad A15 tablet */
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+			DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
+			/* Above strings are too generic, also match on BIOS date */
+			DMI_MATCH(DMI_BIOS_DATE, "11/20/2014"),
+		},
+		.driver_data = (void *)&voyo_winpad_a15_data,
+	},
 	{}
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
@@ -283,13 +283,14 @@
 	if (!err)
 		ifp->drvr->feat_flags |= BIT(BRCMF_FEAT_SCAN_RANDOM_MAC);
 
+	brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_FWSUP, "sup_wpa");
+
 	if (drvr->settings->feature_disable) {
 		brcmf_dbg(INFO, "Features: 0x%02x, disable: 0x%02x\n",
 			  ifp->drvr->feat_flags,
 			  drvr->settings->feature_disable);
 		ifp->drvr->feat_flags &= ~drvr->settings->feature_disable;
 	}
-	brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_FWSUP, "sup_wpa");
 
 	brcmf_feat_firmware_overrides(drvr);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
@@ -304,10 +304,12 @@
 {
 	struct brcmf_fweh_info *fweh = &drvr->fweh;
 
-	/* cancel the worker */
-	cancel_work_sync(&fweh->event_work);
-	WARN_ON(!list_empty(&fweh->event_q));
-	memset(fweh->evt_handler, 0, sizeof(fweh->evt_handler));
+	/* cancel the worker if initialized */
+	if (fweh->event_work.func) {
+		cancel_work_sync(&fweh->event_work);
+		WARN_ON(!list_empty(&fweh->event_q));
+		memset(fweh->evt_handler, 0, sizeof(fweh->evt_handler));
+	}
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
@@ -19,7 +19,7 @@
 #define BRCMF_ARP_OL_PEER_AUTO_REPLY	0x00000008
 
 #define	BRCMF_BSS_INFO_VERSION	109 /* curr ver of brcmf_bss_info_le struct */
-#define BRCMF_BSS_RSSI_ON_CHANNEL	0x0002
+#define BRCMF_BSS_RSSI_ON_CHANNEL	0x0004
 
 #define BRCMF_STA_BRCM			0x00000001	/* Running a Broadcom driver */
 #define BRCMF_STA_WME			0x00000002	/* WMM association */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
@@ -643,6 +643,7 @@
 static void brcmf_fws_psq_flush(struct brcmf_fws_info *fws, struct pktq *q,
 				int ifidx)
 {
+	struct brcmf_fws_hanger_item *hi;
 	bool (*matchfn)(struct sk_buff *, void *) = NULL;
 	struct sk_buff *skb;
 	int prec;
@@ -654,6 +655,9 @@
 		skb = brcmu_pktq_pdeq_match(q, prec, matchfn, &ifidx);
 		while (skb) {
 			hslot = brcmf_skb_htod_tag_get_field(skb, HSLOT);
+			hi = &fws->hanger.items[hslot];
+			WARN_ON(skb != hi->pkt);
+			hi->state = BRCMF_FWS_HANGER_ITEM_STATE_FREE;
 			brcmf_fws_hanger_poppkt(&fws->hanger, hslot, &skb,
 						true);
 			brcmu_pkt_buf_free_skb(skb);
@@ -2145,8 +2149,7 @@
 		brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_DELAYED, fifo, skb);
 		brcmf_fws_schedule_deq(fws);
 	} else {
-		bphy_err(drvr, "drop skb: no hanger slot\n");
-		brcmf_txfinalize(ifp, skb, false);
+		bphy_err(drvr, "no hanger slot available\n");
 		rc = -ENOMEM;
 	}
 	brcmf_fws_unlock(fws);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
@@ -1619,6 +1619,8 @@
 					  BRCMF_TX_IOCTL_MAX_MSG_SIZE,
 					  msgbuf->ioctbuf,
 					  msgbuf->ioctbuf_handle);
+		if (msgbuf->txflow_wq)
+			destroy_workqueue(msgbuf->txflow_wq);
 		kfree(msgbuf);
 	}
 	return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
@@ -2092,7 +2092,8 @@
 	/* firmware requires unique mac address for p2pdev interface */
 	if (addr && ether_addr_equal(addr, pri_ifp->mac_addr)) {
 		bphy_err(drvr, "discovery vif must be different from primary interface\n");
-		return ERR_PTR(-EINVAL);
+		err = -EINVAL;
+		goto fail;
 	}
 
 	brcmf_p2p_generate_bss_mac(p2p, addr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
@@ -1427,6 +1427,8 @@
 	struct brcmf_fw_request *fwreq;
 	int err;
 
+	brcmf_pcie_intr_disable(devinfo);
+
 	brcmf_pcie_bus_console_read(devinfo, true);
 
 	brcmf_detach(dev);
@@ -1934,16 +1936,18 @@
 	fwreq = brcmf_pcie_prepare_fw_request(devinfo);
 	if (!fwreq) {
 		ret = -ENOMEM;
-		goto fail_bus;
+		goto fail_brcmf;
 	}
 
 	ret = brcmf_fw_get_firmwares(bus->dev, fwreq, brcmf_pcie_setup);
 	if (ret < 0) {
 		kfree(fwreq);
-		goto fail_bus;
+		goto fail_brcmf;
 	}
 	return 0;
 
+fail_brcmf:
+	brcmf_free(&devinfo->pdev->dev);
 fail_bus:
 	kfree(bus->msgbuf);
 	kfree(bus);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -1934,7 +1934,10 @@
 			if (brcmf_sdio_hdparse(bus, bus->rxhdr, &rd_new,
 					       BRCMF_SDIO_FT_NORMAL)) {
 				rd->len = 0;
+				brcmf_sdio_rxfail(bus, true, true);
+				sdio_release_host(bus->sdiodev->func1);
 				brcmu_pkt_buf_free_skb(pkt);
+				continue;
 			}
 			bus->sdcnt.rx_readahead_cnt++;
 			if (rd->len != roundup(rd_new.len, 16)) {
@@ -3682,7 +3685,11 @@
 			if (bus->idlecount > bus->idletime) {
 				brcmf_dbg(SDIO, "idle\n");
 				sdio_claim_host(bus->sdiodev->func1);
-				brcmf_sdio_wd_timer(bus, false);
+#ifdef DEBUG
+				if (!BRCMF_FWCON_ON() ||
+				    bus->console_interval == 0)
+#endif
+					brcmf_sdio_wd_timer(bus, false);
 				bus->idlecount = 0;
 				brcmf_sdio_bus_sleep(bus, true, false);
 				sdio_release_host(bus->sdiodev->func1);
@@ -4225,6 +4232,12 @@
 	}
 
 	if (err == 0) {
+		/* Assign bus interface call back */
+		sdiod->bus_if->dev = sdiod->dev;
+		sdiod->bus_if->ops = &brcmf_sdio_bus_ops;
+		sdiod->bus_if->chip = bus->ci->chip;
+		sdiod->bus_if->chiprev = bus->ci->chiprev;
+
 		/* Allow full data communication using DPC from now on. */
 		brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA);
 
@@ -4241,12 +4254,6 @@
 
 	sdio_release_host(sdiod->func1);
 
-	/* Assign bus interface call back */
-	sdiod->bus_if->dev = sdiod->dev;
-	sdiod->bus_if->ops = &brcmf_sdio_bus_ops;
-	sdiod->bus_if->chip = bus->ci->chip;
-	sdiod->bus_if->chiprev = bus->ci->chiprev;
-
 	err = brcmf_alloc(sdiod->dev, sdiod->settings);
 	if (err) {
 		brcmf_err("brcmf_alloc failed\n");
@@ -4426,6 +4433,7 @@
 		brcmf_sdiod_intr_unregister(bus->sdiodev);
 
 		brcmf_detach(bus->sdiodev->dev);
+		brcmf_free(bus->sdiodev->dev);
 
 		cancel_work_sync(&bus->datawork);
 		if (bus->brcmf_wq)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
@@ -430,6 +430,7 @@
 			usb_free_urb(req->urb);
 		list_del(q->next);
 	}
+	kfree(reqs);
 	return NULL;
 
 }
@@ -1348,7 +1349,7 @@
 		goto fail;
 	}
 
-	desc = &intf->altsetting[0].desc;
+	desc = &intf->cur_altsetting->desc;
 	if ((desc->bInterfaceClass != USB_CLASS_VENDOR_SPEC) ||
 	    (desc->bInterfaceSubClass != 2) ||
 	    (desc->bInterfaceProtocol != 0xff)) {
@@ -1361,7 +1362,7 @@
 
 	num_of_eps = desc->bNumEndpoints;
 	for (ep = 0; ep < num_of_eps; ep++) {
-		endpoint = &intf->altsetting[0].endpoint[ep].desc;
+		endpoint = &intf->cur_altsetting->endpoint[ep].desc;
 		endpoint_num = usb_endpoint_num(endpoint);
 		if (!usb_endpoint_xfer_bulk(endpoint))
 			continue;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
@@ -850,8 +850,7 @@
 				     "START: tid %d is not agg\'able\n", tid);
 			return -EINVAL;
 		}
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-		break;
+		return IEEE80211_AMPDU_TX_START_IMMEDIATE;
 
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
@@ -5065,8 +5065,10 @@
 	pi->pi_fptr.radioloftget = wlc_lcnphy_get_radio_loft;
 	pi->pi_fptr.detach = wlc_phy_detach_lcnphy;
 
-	if (!wlc_phy_txpwr_srom_read_lcnphy(pi))
+	if (!wlc_phy_txpwr_srom_read_lcnphy(pi)) {
+		kfree(pi->u.pi_lcnphy);
 		return false;
+	}
 
 	if (LCNREV_IS(pi->pubpi.phy_rev, 1)) {
 		if (pi_lcn->lcnphy_tempsense_option == 3) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/cisco/airo.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/cisco/airo.c
@@ -1925,6 +1925,10 @@
 		airo_print_err(dev->name, "%s: skb == NULL!",__func__);
 		return NETDEV_TX_OK;
 	}
+	if (skb_padto(skb, ETH_ZLEN)) {
+		dev->stats.tx_dropped++;
+		return NETDEV_TX_OK;
+	}
 	npacks = skb_queue_len (&ai->txq);
 
 	if (npacks >= MAXTXQ - 1) {
@@ -2127,6 +2131,10 @@
 		airo_print_err(dev->name, "%s: skb == NULL!", __func__);
 		return NETDEV_TX_OK;
 	}
+	if (skb_padto(skb, ETH_ZLEN)) {
+		dev->stats.tx_dropped++;
+		return NETDEV_TX_OK;
+	}
 
 	/* Find a vacant FID */
 	for( i = 0; i < MAX_FIDS / 2 && (fids[i] & 0xffff0000); i++ );
@@ -2201,6 +2209,10 @@
 		airo_print_err(dev->name, "%s: skb == NULL!", __func__);
 		return NETDEV_TX_OK;
 	}
+	if (skb_padto(skb, ETH_ZLEN)) {
+		dev->stats.tx_dropped++;
+		return NETDEV_TX_OK;
+	}
 
 	/* Find a vacant FID */
 	for( i = MAX_FIDS / 2; i < MAX_FIDS && (fids[i] & 0xffff0000); i++ );
@@ -7790,16 +7802,8 @@
 	case AIROGVLIST:    ridcode = RID_APLIST;       break;
 	case AIROGDRVNAM:   ridcode = RID_DRVNAME;      break;
 	case AIROGEHTENC:   ridcode = RID_ETHERENCAP;   break;
-	case AIROGWEPKTMP:  ridcode = RID_WEP_TEMP;
-		/* Only super-user can read WEP keys */
-		if (!capable(CAP_NET_ADMIN))
-			return -EPERM;
-		break;
-	case AIROGWEPKNV:   ridcode = RID_WEP_PERM;
-		/* Only super-user can read WEP keys */
-		if (!capable(CAP_NET_ADMIN))
-			return -EPERM;
-		break;
+	case AIROGWEPKTMP:  ridcode = RID_WEP_TEMP;	break;
+	case AIROGWEPKNV:   ridcode = RID_WEP_PERM;	break;
 	case AIROGSTAT:     ridcode = RID_STATUS;       break;
 	case AIROGSTATSD32: ridcode = RID_STATSDELTA;   break;
 	case AIROGSTATSC32: ridcode = RID_STATS;        break;
@@ -7813,7 +7817,13 @@
 		return -EINVAL;
 	}
 
-	if ((iobuf = kmalloc(RIDSIZE, GFP_KERNEL)) == NULL)
+	if (ridcode == RID_WEP_TEMP || ridcode == RID_WEP_PERM) {
+		/* Only super-user can read WEP keys */
+		if (!capable(CAP_NET_ADMIN))
+			return -EPERM;
+	}
+
+	if ((iobuf = kzalloc(RIDSIZE, GFP_KERNEL)) == NULL)
 		return -ENOMEM;
 
 	PC4500_readrid(ai,ridcode,iobuf,RIDSIZE, 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/ipw2x00/ipw2100.c
@@ -3206,8 +3206,9 @@
 	}
 }
 
-static void ipw2100_irq_tasklet(struct ipw2100_priv *priv)
+static void ipw2100_irq_tasklet(unsigned long data)
 {
+	struct ipw2100_priv *priv = (struct ipw2100_priv *)data;
 	struct net_device *dev = priv->net_dev;
 	unsigned long flags;
 	u32 inta, tmp;
@@ -6007,7 +6008,7 @@
 	spin_unlock_irqrestore(&priv->low_lock, flags);
 }
 
-static void ipw2100_irq_tasklet(struct ipw2100_priv *priv);
+static void ipw2100_irq_tasklet(unsigned long data);
 
 static const struct net_device_ops ipw2100_netdev_ops = {
 	.ndo_open		= ipw2100_open,
@@ -6137,7 +6138,7 @@
 	INIT_DELAYED_WORK(&priv->rf_kill, ipw2100_rf_kill);
 	INIT_DELAYED_WORK(&priv->scan_event, ipw2100_scan_event);
 
-	tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
+	tasklet_init(&priv->irq_tasklet,
 		     ipw2100_irq_tasklet, (unsigned long)priv);
 
 	/* NOTE:  We do not start the deferred work for status checks yet */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/ipw2x00/ipw2200.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/ipw2x00/ipw2200.c
@@ -1945,8 +1945,9 @@
 	wireless_send_event(priv->net_dev, SIOCGIWAP, &wrqu, NULL);
 }
 
-static void ipw_irq_tasklet(struct ipw_priv *priv)
+static void ipw_irq_tasklet(unsigned long data)
 {
+	struct ipw_priv *priv = (struct ipw_priv *)data;
 	u32 inta, inta_mask, handled = 0;
 	unsigned long flags;
 	int rc = 0;
@@ -10680,7 +10681,7 @@
 	INIT_WORK(&priv->qos_activate, ipw_bg_qos_activate);
 #endif				/* CONFIG_IPW2200_QOS */
 
-	tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))
+	tasklet_init(&priv->irq_tasklet,
 		     ipw_irq_tasklet, (unsigned long)priv);
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlegacy/3945-mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlegacy/3945-mac.c
@@ -1376,8 +1376,9 @@
 }
 
 static void
-il3945_irq_tasklet(struct il_priv *il)
+il3945_irq_tasklet(unsigned long data)
 {
+	struct il_priv *il = (struct il_priv *)data;
 	u32 inta, handled = 0;
 	u32 inta_fh;
 	unsigned long flags;
@@ -3403,7 +3404,7 @@
 	timer_setup(&il->watchdog, il_bg_watchdog, 0);
 
 	tasklet_init(&il->irq_tasklet,
-		     (void (*)(unsigned long))il3945_irq_tasklet,
+		     il3945_irq_tasklet,
 		     (unsigned long)il);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlegacy/3945-rs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlegacy/3945-rs.c
@@ -374,7 +374,7 @@
 }
 
 static void *
-il3945_rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
+il3945_rs_alloc(struct ieee80211_hw *hw)
 {
 	return hw->priv;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlegacy/4965-mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlegacy/4965-mac.c
@@ -2265,7 +2265,7 @@
 	if (tid_data->tfds_in_queue == 0) {
 		D_HT("HW queue is empty\n");
 		tid_data->agg.state = IL_AGG_ON;
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 	} else {
 		D_HT("HW queue is NOT empty: %d packets in HW queue\n",
 		     tid_data->tfds_in_queue);
@@ -4344,8 +4344,9 @@
 }
 
 static void
-il4965_irq_tasklet(struct il_priv *il)
+il4965_irq_tasklet(unsigned long data)
 {
+	struct il_priv *il = (struct il_priv *)data;
 	u32 inta, handled = 0;
 	u32 inta_fh;
 	unsigned long flags;
@@ -6238,7 +6239,7 @@
 	timer_setup(&il->watchdog, il_bg_watchdog, 0);
 
 	tasklet_init(&il->irq_tasklet,
-		     (void (*)(unsigned long))il4965_irq_tasklet,
+		     il4965_irq_tasklet,
 		     (unsigned long)il);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlegacy/4965-rs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlegacy/4965-rs.c
@@ -2474,7 +2474,7 @@
 }
 
 static void *
-il4965_rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
+il4965_rs_alloc(struct ieee80211_hw *hw)
 {
 	return hw->priv;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlegacy/common.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlegacy/common.c
@@ -699,7 +699,7 @@
 	u32 gp = _il_rd(il, CSR_EEPROM_GP);
 	int sz;
 	int ret;
-	u16 addr;
+	int addr;
 
 	/* allocate eeprom */
 	sz = il->cfg->eeprom_size;
@@ -4286,8 +4286,8 @@
 	 *    power savings, even without L1.
 	 */
 	if (il->cfg->set_l0s) {
-		pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, &lctl);
-		if (lctl & PCI_EXP_LNKCTL_ASPM_L1) {
+		ret = pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, &lctl);
+		if (!ret && (lctl & PCI_EXP_LNKCTL_ASPM_L1)) {
 			/* L1-ASPM enabled; disable(!) L0S  */
 			il_set_bit(il, CSR_GIO_REG,
 				   CSR_GIO_REG_VAL_L0S_ENABLED);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
@@ -137,7 +137,7 @@
 	.pcie_l1_allowed = true,
 };
 
-static const struct iwl_base_params iwl_22560_base_params = {
+static const struct iwl_base_params iwl_ax210_base_params = {
 	.eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
 	.num_of_queues = 512,
 	.max_tfd_queue_size = 65536,
@@ -195,40 +195,26 @@
 	.trans.csr = &iwl_csr_v1,					\
 	.gp2_reg_addr = 0xa02c68
 
-#define IWL_DEVICE_22560						\
-	IWL_DEVICE_22000_COMMON,					\
-	.trans.device_family = IWL_DEVICE_FAMILY_22560,			\
-	.trans.base_params = &iwl_22560_base_params,			\
-	.trans.csr = &iwl_csr_v2
-
 #define IWL_DEVICE_AX210						\
 	IWL_DEVICE_22000_COMMON,					\
 	.trans.umac_prph_offset = 0x300000,				\
 	.trans.device_family = IWL_DEVICE_FAMILY_AX210,			\
-	.trans.base_params = &iwl_22560_base_params,			\
+	.trans.base_params = &iwl_ax210_base_params,			\
 	.trans.csr = &iwl_csr_v1,					\
 	.min_txq_size = 128,						\
 	.gp2_reg_addr = 0xd02c68,					\
 	.min_256_ba_txq_size = 512
 
-const struct iwl_cfg iwl22000_2ac_cfg_hr = {
-	.name = "Intel(R) Dual Band Wireless AC 22000",
-	.fw_name_pre = IWL_22000_HR_FW_PRE,
-	IWL_DEVICE_22500,
-};
-
-const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb = {
-	.name = "Intel(R) Dual Band Wireless AC 22000",
-	.fw_name_pre = IWL_22000_HR_CDB_FW_PRE,
-	IWL_DEVICE_22500,
-	.cdb = true,
-};
-
-const struct iwl_cfg iwl22000_2ac_cfg_jf = {
-	.name = "Intel(R) Dual Band Wireless AC 22000",
-	.fw_name_pre = IWL_22000_JF_FW_PRE,
-	IWL_DEVICE_22500,
-};
+/*
+ * If the device doesn't support HE, no need to have that many buffers.
+ * 22000 devices can split multiple frames into a single RB, so fewer are
+ * needed; AX210 cannot (but use smaller RBs by default) - these sizes
+ * were picked according to 8 MSDUs inside 256 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_22000_HE		2048
+#define IWL_NUM_RBDS_AX210_HE		4096
 
 const struct iwl_cfg iwl_ax101_cfg_qu_hr = {
 	.name = "Intel(R) Wi-Fi 6 AX101",
@@ -241,6 +227,7 @@
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.tx_with_siso_diversity = true,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax201_cfg_qu_hr = {
@@ -253,6 +240,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax101_cfg_qu_c0_hr_b0 = {
@@ -265,6 +253,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax201_cfg_qu_c0_hr_b0 = {
@@ -277,6 +266,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax101_cfg_quz_hr = {
@@ -289,42 +279,46 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax201_cfg_quz_hr = {
-		.name = "Intel(R) Wi-Fi 6 AX201 160MHz",
-		.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
-		IWL_DEVICE_22500,
-		/*
+	.name = "Intel(R) Wi-Fi 6 AX201 160MHz",
+	.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
+	IWL_DEVICE_22500,
+	/*
          * This device doesn't support receiving BlockAck with a large bitmap
          * so we need to restrict the size of transmitted aggregation to the
          * HT size; mac80211 would otherwise pick the HE max (256) by default.
          */
-		.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax1650s_cfg_quz_hr = {
-		.name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
-		.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
-		IWL_DEVICE_22500,
-		/*
+	.name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
+	.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
+	IWL_DEVICE_22500,
+	/*
          * This device doesn't support receiving BlockAck with a large bitmap
          * so we need to restrict the size of transmitted aggregation to the
          * HT size; mac80211 would otherwise pick the HE max (256) by default.
          */
-		.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax1650i_cfg_quz_hr = {
-		.name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
-		.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
-		IWL_DEVICE_22500,
-		/*
+	.name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
+	.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
+	IWL_DEVICE_22500,
+	/*
          * This device doesn't support receiving BlockAck with a large bitmap
          * so we need to restrict the size of transmitted aggregation to the
          * HT size; mac80211 would otherwise pick the HE max (256) by default.
          */
-		.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl_ax200_cfg_cc = {
@@ -338,6 +332,7 @@
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.trans.bisr_workaround = 1,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg killer1650x_2ax_cfg = {
@@ -351,6 +346,7 @@
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.trans.bisr_workaround = 1,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg killer1650w_2ax_cfg = {
@@ -364,6 +360,7 @@
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.trans.bisr_workaround = 1,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 /*
@@ -375,48 +372,56 @@
 	.name = "Intel(R) Wireless-AC 9461",
 	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9462_2ac_cfg_qu_b0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9462",
 	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_cfg_qu_b0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9560",
 	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9560 160MHz",
 	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9461_2ac_cfg_qu_c0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9461",
 	.fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9462_2ac_cfg_qu_c0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9462",
 	.fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_cfg_qu_c0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9560",
 	.fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_160_cfg_qu_c0_jf_b0 = {
 	.name = "Intel(R) Wireless-AC 9560 160MHz",
 	.fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = {
@@ -429,6 +434,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_cfg_quz_a0_jf_b0_soc = {
@@ -443,6 +449,7 @@
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.integrated = true,
 	.soc_latency = 5000,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc = {
@@ -457,6 +464,7 @@
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.integrated = true,
 	.soc_latency = 5000,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9461_2ac_cfg_quz_a0_jf_b0_soc = {
@@ -471,6 +479,7 @@
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.integrated = true,
 	.soc_latency = 5000,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9462_2ac_cfg_quz_a0_jf_b0_soc = {
@@ -485,6 +494,7 @@
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.integrated = true,
 	.soc_latency = 5000,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc = {
@@ -499,6 +509,7 @@
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.integrated = true,
 	.soc_latency = 5000,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc = {
@@ -513,18 +524,21 @@
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
 	.integrated = true,
 	.soc_latency = 5000,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = {
 	.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
 	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg killer1550s_2ac_cfg_qu_b0_jf_b0 = {
 	.name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
 	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
 	IWL_DEVICE_22500,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0 = {
@@ -537,6 +551,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0 = {
@@ -549,6 +564,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg killer1650s_2ax_cfg_qu_c0_hr_b0 = {
@@ -561,6 +577,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0 = {
@@ -573,6 +590,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl22000_2ax_cfg_jf = {
@@ -585,6 +603,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0 = {
@@ -597,6 +616,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0 = {
@@ -609,6 +629,7 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0 = {
@@ -621,18 +642,21 @@
 	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
 	 */
 	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
+	.num_rbds = IWL_NUM_RBDS_22000_HE,
 };
 
 const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0 = {
 	.name = "Intel(R) Wireless-AC 9560 160MHz",
 	.fw_name_pre = IWL_22000_SO_A_JF_B_FW_PRE,
 	IWL_DEVICE_AX210,
+	.num_rbds = IWL_NUM_RBDS_NON_HE,
 };
 
 const struct iwl_cfg iwlax210_2ax_cfg_so_hr_a0 = {
 	.name = "Intel(R) Wi-Fi 7 AX210 160MHz",
 	.fw_name_pre = IWL_22000_SO_A_HR_B_FW_PRE,
 	IWL_DEVICE_AX210,
+	.num_rbds = IWL_NUM_RBDS_AX210_HE,
 };
 
 const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = {
@@ -640,6 +664,7 @@
 	.fw_name_pre = IWL_22000_SO_A_GF_A_FW_PRE,
 	.uhb_supported = true,
 	IWL_DEVICE_AX210,
+	.num_rbds = IWL_NUM_RBDS_AX210_HE,
 };
 
 const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = {
@@ -647,12 +672,14 @@
 	.fw_name_pre = IWL_22000_TY_A_GF_A_FW_PRE,
 	.uhb_supported = true,
 	IWL_DEVICE_AX210,
+	.num_rbds = IWL_NUM_RBDS_AX210_HE,
 };
 
 const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = {
 	.name = "Intel(R) Wi-Fi 7 AX411 160MHz",
 	.fw_name_pre = IWL_22000_SO_A_GF4_A_FW_PRE,
 	IWL_DEVICE_AX210,
+	.num_rbds = IWL_NUM_RBDS_AX210_HE,
 };
 
 MODULE_FIRMWARE(IWL_22000_HR_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/cfg/9000.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/cfg/9000.c
@@ -137,6 +137,7 @@
 	.thermal_params = &iwl9000_tt_params,				\
 	.apmg_not_supported = true,					\
 	.trans.mq_rx_supported = true,					\
+	.num_rbds = 512,						\
 	.vht_mu_mimo_supported = true,					\
 	.mac_addr_from_csr = true,					\
 	.trans.rf_id = true,						\
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/dvm/led.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/dvm/led.c
@@ -171,6 +171,9 @@
 
 	priv->led.name = kasprintf(GFP_KERNEL, "%s-led",
 				   wiphy_name(priv->hw->wiphy));
+	if (!priv->led.name)
+		return;
+
 	priv->led.brightness_set = iwl_led_brightness_set;
 	priv->led.blink_set = iwl_led_blink_set;
 	priv->led.max_brightness = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/dvm/rs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/dvm/rs.c
@@ -3019,7 +3019,7 @@
 			cpu_to_le16(priv->lib->bt_params->agg_time_limit);
 }
 
-static void *rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
+static void *rs_alloc(struct ieee80211_hw *hw)
 {
 	return hw->priv;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/dvm/tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/dvm/tx.c
@@ -267,7 +267,7 @@
 	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
 	struct iwl_station_priv *sta_priv = NULL;
 	struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS];
-	struct iwl_device_cmd *dev_cmd;
+	struct iwl_device_tx_cmd *dev_cmd;
 	struct iwl_tx_cmd *tx_cmd;
 	__le16 fc;
 	u8 hdr_len;
@@ -348,7 +348,6 @@
 	if (unlikely(!dev_cmd))
 		goto drop_unlock_priv;
 
-	memset(dev_cmd, 0, sizeof(*dev_cmd));
 	dev_cmd->hdr.cmd = REPLY_TX;
 	tx_cmd = (struct iwl_tx_cmd *) dev_cmd->payload;
 
@@ -621,7 +620,7 @@
 		IWL_DEBUG_TX_QUEUES(priv, "Can proceed: ssn = next_recl = %d\n",
 				    tid_data->agg.ssn);
 		tid_data->agg.state = IWL_AGG_STARTING;
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 	} else {
 		IWL_DEBUG_TX_QUEUES(priv, "Can't proceed: ssn %d, "
 				    "next_reclaimed = %d\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h
@@ -7,7 +7,7 @@
  *
  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 Intel Corporation
+ * Copyright(c) 2018 - 2019 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -29,7 +29,7 @@
  *
  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 Intel Corporation
+ * Copyright(c) 2018 - 2019 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -323,7 +323,7 @@
 } __packed; /* TX_CMD_API_S_VER_7 */
 
 /**
- * struct iwl_tx_cmd_gen3 - TX command struct to FW for 22560 devices
+ * struct iwl_tx_cmd_gen3 - TX command struct to FW for AX210+ devices
  * ( TX_CMD = 0x1c )
  * @len: in bytes of the payload, see below for details
  * @flags: combination of &enum iwl_tx_cmd_flags
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/fw/api/txq.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/fw/api/txq.h
@@ -8,7 +8,7 @@
  * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2019 Intel Corporation
+ * Copyright(c) 2019 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -31,7 +31,7 @@
  * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2019 Intel Corporation
+ * Copyright(c) 2019 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,7 @@
 	IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,
 	IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9,
 	IWL_MVM_DQA_MIN_DATA_QUEUE = 10,
-	IWL_MVM_DQA_MAX_DATA_QUEUE = 31,
+	IWL_MVM_DQA_MAX_DATA_QUEUE = 30,
 };
 
 enum iwl_mvm_tx_fifo {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
@@ -8,7 +8,7 @@
  * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2015 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -31,7 +31,7 @@
  * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2015 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -1373,11 +1373,7 @@
 		goto out;
 	}
 
-	/*
-	 * region register have absolute value so apply rxf offset after
-	 * reading the registers
-	 */
-	offs += rxf_data.offset;
+	offs = rxf_data.offset;
 
 	/* Lock fence */
 	iwl_write_prph_no_grab(fwrt->trans, RXF_SET_FENCE_MODE + offs, 0x1);
@@ -2315,10 +2311,7 @@
 		goto out;
 	}
 
-	if (iwl_fw_dbg_stop_restart_recording(fwrt, &params, true)) {
-		IWL_ERR(fwrt, "Failed to stop DBGC recording, aborting dump\n");
-		goto out;
-	}
+	iwl_fw_dbg_stop_restart_recording(fwrt, &params, true);
 
 	IWL_DEBUG_FW_INFO(fwrt, "WRT: Data collection start\n");
 	if (iwl_trans_dbg_ini_valid(fwrt->trans))
@@ -2484,19 +2477,14 @@
 	return 0;
 }
 
-int iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
-				      struct iwl_fw_dbg_params *params,
-				      bool stop)
+void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
+				       struct iwl_fw_dbg_params *params,
+				       bool stop)
 {
 	int ret = 0;
 
-	/* if the FW crashed or not debug monitor cfg was given, there is
-	 * no point in changing the recording state
-	 */
-	if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status) ||
-	    (!fwrt->trans->dbg.dest_tlv &&
-	     fwrt->trans->dbg.ini_dest == IWL_FW_INI_LOCATION_INVALID))
-		return 0;
+	if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status))
+		return;
 
 	if (fw_has_capa(&fwrt->fw->ucode_capa,
 			IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP))
@@ -2513,7 +2501,5 @@
 			iwl_fw_set_dbg_rec_on(fwrt);
 	}
 #endif
-
-	return ret;
 }
 IWL_EXPORT_SYMBOL(iwl_fw_dbg_stop_restart_recording);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/fw/dbg.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/fw/dbg.h
@@ -263,9 +263,9 @@
 	_iwl_fw_dbg_trigger_simple_stop((fwrt), (wdev),		\
 					iwl_fw_dbg_get_trigger((fwrt)->fw,\
 							       (trig)))
-int iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
-				      struct iwl_fw_dbg_params *params,
-				      bool stop);
+void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
+				       struct iwl_fw_dbg_params *params,
+				       bool stop);
 
 #ifdef CONFIG_IWLWIFI_DEBUGFS
 static inline void iwl_fw_set_dbg_rec_on(struct iwl_fw_runtime *fwrt)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-config.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-config.h
@@ -88,7 +88,6 @@
 	IWL_DEVICE_FAMILY_8000,
 	IWL_DEVICE_FAMILY_9000,
 	IWL_DEVICE_FAMILY_22000,
-	IWL_DEVICE_FAMILY_22560,
 	IWL_DEVICE_FAMILY_AX210,
 };
 
@@ -411,6 +410,8 @@
  * @uhb_supported: ultra high band channels supported
  * @min_256_ba_txq_size: minimum number of slots required in a TX queue which
  *	supports 256 BA aggregation
+ * @num_rbds: number of receive buffer descriptors to use
+ *	(only used for multi-queue capable devices)
  *
  * We enable the driver to be backward compatible wrt. hardware features.
  * API differences in uCode shouldn't be handled here but through TLVs
@@ -466,6 +467,7 @@
 	u8 max_vht_ampdu_exponent;
 	u8 ucode_api_max;
 	u8 ucode_api_min;
+	u16 num_rbds;
 	u32 min_umac_error_event_table;
 	u32 extra_phy_cfg_flags;
 	u32 d3_debug_data_base_addr;
@@ -578,9 +580,6 @@
 extern const struct iwl_cfg iwl9560_2ac_160_cfg_shared_clk;
 extern const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk;
 extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk;
-extern const struct iwl_cfg iwl22000_2ac_cfg_hr;
-extern const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb;
-extern const struct iwl_cfg iwl22000_2ac_cfg_jf;
 extern const struct iwl_cfg iwl_ax101_cfg_qu_hr;
 extern const struct iwl_cfg iwl_ax101_cfg_qu_c0_hr_b0;
 extern const struct iwl_cfg iwl_ax101_cfg_quz_hr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-context-info.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-context-info.h
@@ -6,7 +6,7 @@
  * GPL LICENSE SUMMARY
  *
  * Copyright(c) 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 Intel Corporation
+ * Copyright(c) 2018 - 2019 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -20,7 +20,7 @@
  * BSD LICENSE
  *
  * Copyright(c) 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 Intel Corporation
+ * Copyright(c) 2018 - 2019 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -64,12 +64,12 @@
  *	the init done for driver command that configures several system modes
  * @IWL_CTXT_INFO_EARLY_DEBUG: enable early debug
  * @IWL_CTXT_INFO_ENABLE_CDMP: enable core dump
- * @IWL_CTXT_INFO_RB_CB_SIZE_POS: position of the RBD Cyclic Buffer Size
+ * @IWL_CTXT_INFO_RB_CB_SIZE: mask of the RBD Cyclic Buffer Size
  *	exponent, the actual size is 2**value, valid sizes are 8-2048.
  *	The value is four bits long. Maximum valid exponent is 12
  * @IWL_CTXT_INFO_TFD_FORMAT_LONG: use long TFD Format (the
  *	default is short format - not supported by the driver)
- * @IWL_CTXT_INFO_RB_SIZE_POS: RB size position
+ * @IWL_CTXT_INFO_RB_SIZE: RB size mask
  *	(values are IWL_CTXT_INFO_RB_SIZE_*K)
  * @IWL_CTXT_INFO_RB_SIZE_1K: Value for 1K RB size
  * @IWL_CTXT_INFO_RB_SIZE_2K: Value for 2K RB size
@@ -83,12 +83,12 @@
  * @IWL_CTXT_INFO_RB_SIZE_32K: Value for 32K RB size
  */
 enum iwl_context_info_flags {
-	IWL_CTXT_INFO_AUTO_FUNC_INIT	= BIT(0),
-	IWL_CTXT_INFO_EARLY_DEBUG	= BIT(1),
-	IWL_CTXT_INFO_ENABLE_CDMP	= BIT(2),
-	IWL_CTXT_INFO_RB_CB_SIZE_POS	= 4,
-	IWL_CTXT_INFO_TFD_FORMAT_LONG	= BIT(8),
-	IWL_CTXT_INFO_RB_SIZE_POS	= 9,
+	IWL_CTXT_INFO_AUTO_FUNC_INIT	= 0x0001,
+	IWL_CTXT_INFO_EARLY_DEBUG	= 0x0002,
+	IWL_CTXT_INFO_ENABLE_CDMP	= 0x0004,
+	IWL_CTXT_INFO_RB_CB_SIZE	= 0x00f0,
+	IWL_CTXT_INFO_TFD_FORMAT_LONG	= 0x0100,
+	IWL_CTXT_INFO_RB_SIZE		= 0x1e00,
 	IWL_CTXT_INFO_RB_SIZE_1K	= 0x1,
 	IWL_CTXT_INFO_RB_SIZE_2K	= 0x2,
 	IWL_CTXT_INFO_RB_SIZE_4K	= 0x4,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
@@ -147,6 +147,16 @@
 #define CSR_MAC_SHADOW_REG_CTL2		(CSR_BASE + 0x0AC)
 #define CSR_MAC_SHADOW_REG_CTL2_RX_WAKE	0xFFFF
 
+/* LTR control (since IWL_DEVICE_FAMILY_22000) */
+#define CSR_LTR_LONG_VAL_AD			(CSR_BASE + 0x0D4)
+#define CSR_LTR_LONG_VAL_AD_NO_SNOOP_REQ	0x80000000
+#define CSR_LTR_LONG_VAL_AD_NO_SNOOP_SCALE	0x1c000000
+#define CSR_LTR_LONG_VAL_AD_NO_SNOOP_VAL	0x03ff0000
+#define CSR_LTR_LONG_VAL_AD_SNOOP_REQ		0x00008000
+#define CSR_LTR_LONG_VAL_AD_SNOOP_SCALE		0x00001c00
+#define CSR_LTR_LONG_VAL_AD_SNOOP_VAL		0x000003ff
+#define CSR_LTR_LONG_VAL_AD_SCALE_USEC		2
+
 /* GIO Chicken Bits (PCI Express bus link power management) */
 #define CSR_GIO_CHICKEN_BITS    (CSR_BASE+0x100)
 
@@ -603,9 +613,7 @@
 enum msix_hw_int_causes {
 	MSIX_HW_INT_CAUSES_REG_ALIVE		= BIT(0),
 	MSIX_HW_INT_CAUSES_REG_WAKEUP		= BIT(1),
-	MSIX_HW_INT_CAUSES_REG_IPC		= BIT(1),
 	MSIX_HW_INT_CAUSES_REG_IML              = BIT(2),
-	MSIX_HW_INT_CAUSES_REG_SW_ERR_V2	= BIT(5),
 	MSIX_HW_INT_CAUSES_REG_CT_KILL		= BIT(6),
 	MSIX_HW_INT_CAUSES_REG_RF_KILL		= BIT(7),
 	MSIX_HW_INT_CAUSES_REG_PERIODIC		= BIT(8),
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -1804,7 +1804,7 @@
 	"disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX");
 module_param_named(amsdu_size, iwlwifi_mod_params.amsdu_size, int, 0444);
 MODULE_PARM_DESC(amsdu_size,
-		 "amsdu size 0: 12K for multi Rx queue devices, 2K for 22560 devices, "
+		 "amsdu size 0: 12K for multi Rx queue devices, 2K for AX210 devices, "
 		 "4K for other devices 1:4K 2:8K 3:12K 4: 2K (default 0)");
 module_param_named(fw_restart, iwlwifi_mod_params.fw_restart, bool, 0444);
 MODULE_PARM_DESC(fw_restart, "restart firmware in case of error (default true)");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-fh.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-fh.h
@@ -611,10 +611,7 @@
  */
 #define FH_TX_CHICKEN_BITS_SCD_AUTO_RETRY_EN	(0x00000002)
 
-#define MQ_RX_TABLE_SIZE	512
-#define MQ_RX_TABLE_MASK	(MQ_RX_TABLE_SIZE - 1)
-#define MQ_RX_NUM_RBDS		(MQ_RX_TABLE_SIZE - 1)
-#define RX_POOL_SIZE		(MQ_RX_NUM_RBDS +	\
+#define RX_POOL_SIZE(rbds)	((rbds) - 1 +	\
 				 IWL_MAX_RX_HW_QUEUES *	\
 				 (RX_CLAIM_REQ_ALLOC - RX_POST_REQ_ALLOC))
 /* cb size is the exponent */
@@ -768,7 +765,7 @@
 
 /**
  * struct iwl_gen3_bc_tbl scheduler byte count table gen3
- * For 22560 and on:
+ * For AX210 and on:
  * @tfd_offset: 0-12 - tx command byte count
  *		12-13 - number of 64 byte chunks
  *		14-16 - reserved
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
@@ -225,6 +225,34 @@
 	NVM_CHANNEL_DC_HIGH		= BIT(12),
 };
 
+/**
+ * enum iwl_reg_capa_flags - global flags applied for the whole regulatory
+ * domain.
+ * @REG_CAPA_BF_CCD_LOW_BAND: Beam-forming or Cyclic Delay Diversity in the
+ *	2.4Ghz band is allowed.
+ * @REG_CAPA_BF_CCD_HIGH_BAND: Beam-forming or Cyclic Delay Diversity in the
+ *	5Ghz band is allowed.
+ * @REG_CAPA_160MHZ_ALLOWED: 11ac channel with a width of 160Mhz is allowed
+ *	for this regulatory domain (valid only in 5Ghz).
+ * @REG_CAPA_80MHZ_ALLOWED: 11ac channel with a width of 80Mhz is allowed
+ *	for this regulatory domain (valid only in 5Ghz).
+ * @REG_CAPA_MCS_8_ALLOWED: 11ac with MCS 8 is allowed.
+ * @REG_CAPA_MCS_9_ALLOWED: 11ac with MCS 9 is allowed.
+ * @REG_CAPA_40MHZ_FORBIDDEN: 11n channel with a width of 40Mhz is forbidden
+ *	for this regulatory domain (valid only in 5Ghz).
+ * @REG_CAPA_DC_HIGH_ENABLED: DC HIGH allowed.
+ */
+enum iwl_reg_capa_flags {
+	REG_CAPA_BF_CCD_LOW_BAND	= BIT(0),
+	REG_CAPA_BF_CCD_HIGH_BAND	= BIT(1),
+	REG_CAPA_160MHZ_ALLOWED		= BIT(2),
+	REG_CAPA_80MHZ_ALLOWED		= BIT(3),
+	REG_CAPA_MCS_8_ALLOWED		= BIT(4),
+	REG_CAPA_MCS_9_ALLOWED		= BIT(5),
+	REG_CAPA_40MHZ_FORBIDDEN	= BIT(7),
+	REG_CAPA_DC_HIGH_ENABLED	= BIT(9),
+};
+
 static inline void iwl_nvm_print_channel_flags(struct device *dev, u32 level,
 					       int chan, u32 flags)
 {
@@ -497,8 +525,7 @@
 					IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
 					IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
 				.mac_cap_info[2] =
-					IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP |
-					IEEE80211_HE_MAC_CAP2_ACK_EN,
+					IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
@@ -582,8 +609,7 @@
 					IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
 					IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
 				.mac_cap_info[2] =
-					IEEE80211_HE_MAC_CAP2_BSR |
-					IEEE80211_HE_MAC_CAP2_ACK_EN,
+					IEEE80211_HE_MAC_CAP2_BSR,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
@@ -1031,6 +1057,7 @@
 
 static u32 iwl_nvm_get_regdom_bw_flags(const u16 *nvm_chan,
 				       int ch_idx, u16 nvm_flags,
+				       u16 cap_flags,
 				       const struct iwl_cfg *cfg)
 {
 	u32 flags = NL80211_RRF_NO_HT40;
@@ -1069,13 +1096,27 @@
 	    (flags & NL80211_RRF_NO_IR))
 		flags |= NL80211_RRF_GO_CONCURRENT;
 
+	/*
+	 * cap_flags is per regulatory domain so apply it for every channel
+	 */
+	if (ch_idx >= NUM_2GHZ_CHANNELS) {
+		if (cap_flags & REG_CAPA_40MHZ_FORBIDDEN)
+			flags |= NL80211_RRF_NO_HT40;
+
+		if (!(cap_flags & REG_CAPA_80MHZ_ALLOWED))
+			flags |= NL80211_RRF_NO_80MHZ;
+
+		if (!(cap_flags & REG_CAPA_160MHZ_ALLOWED))
+			flags |= NL80211_RRF_NO_160MHZ;
+	}
+
 	return flags;
 }
 
 struct ieee80211_regdomain *
 iwl_parse_nvm_mcc_info(struct device *dev, const struct iwl_cfg *cfg,
 		       int num_of_ch, __le32 *channels, u16 fw_mcc,
-		       u16 geo_info)
+		       u16 geo_info, u16 cap)
 {
 	int ch_idx;
 	u16 ch_flags;
@@ -1133,7 +1174,8 @@
 		}
 
 		reg_rule_flags = iwl_nvm_get_regdom_bw_flags(nvm_chan, ch_idx,
-							     ch_flags, cfg);
+							     ch_flags, cap,
+							     cfg);
 
 		/* we can't continue the same rule */
 		if (ch_idx == 0 || prev_reg_rule_flags != reg_rule_flags ||
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h
@@ -7,7 +7,7 @@
  *
  * Copyright(c) 2008 - 2015 Intel Corporation. All rights reserved.
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018        Intel Corporation
+ * Copyright(c) 2018 - 2019 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -29,7 +29,7 @@
  *
  * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018        Intel Corporation
+ * Copyright(c) 2018 - 2019 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -103,7 +103,7 @@
 struct ieee80211_regdomain *
 iwl_parse_nvm_mcc_info(struct device *dev, const struct iwl_cfg *cfg,
 		       int num_of_ch, __le32 *channels, u16 fw_mcc,
-		       u16 geo_info);
+		       u16 geo_info, u16 cap);
 
 /**
  * struct iwl_nvm_section - describes an NVM section in memory.
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
@@ -66,7 +66,9 @@
 
 struct iwl_trans *iwl_trans_alloc(unsigned int priv_size,
 				  struct device *dev,
-				  const struct iwl_trans_ops *ops)
+				  const struct iwl_trans_ops *ops,
+				  unsigned int cmd_pool_size,
+				  unsigned int cmd_pool_align)
 {
 	struct iwl_trans *trans;
 #ifdef CONFIG_LOCKDEP
@@ -90,10 +92,8 @@
 		 "iwl_cmd_pool:%s", dev_name(trans->dev));
 	trans->dev_cmd_pool =
 		kmem_cache_create(trans->dev_cmd_pool_name,
-				  sizeof(struct iwl_device_cmd),
-				  sizeof(void *),
-				  SLAB_HWCACHE_ALIGN,
-				  NULL);
+				  cmd_pool_size, cmd_pool_align,
+				  SLAB_HWCACHE_ALIGN, NULL);
 	if (!trans->dev_cmd_pool)
 		return NULL;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
@@ -193,6 +193,18 @@
 	};
 } __packed;
 
+/**
+ * struct iwl_device_tx_cmd - buffer for TX command
+ * @hdr: the header
+ * @payload: the payload placeholder
+ *
+ * The actual structure is sized dynamically according to need.
+ */
+struct iwl_device_tx_cmd {
+	struct iwl_cmd_header hdr;
+	u8 payload[];
+} __packed;
+
 #define TFD_MAX_PAYLOAD_SIZE (sizeof(struct iwl_device_cmd))
 
 /*
@@ -302,6 +314,7 @@
 #define IWL_MGMT_TID		15
 #define IWL_FRAME_LIMIT	64
 #define IWL_MAX_RX_HW_QUEUES	16
+#define IWL_9000_MAX_RX_HW_QUEUES	6
 
 /**
  * enum iwl_wowlan_status - WoWLAN image/device status
@@ -544,7 +557,7 @@
 	int (*send_cmd)(struct iwl_trans *trans, struct iwl_host_cmd *cmd);
 
 	int (*tx)(struct iwl_trans *trans, struct sk_buff *skb,
-		  struct iwl_device_cmd *dev_cmd, int queue);
+		  struct iwl_device_tx_cmd *dev_cmd, int queue);
 	void (*reclaim)(struct iwl_trans *trans, int queue, int ssn,
 			struct sk_buff_head *skbs);
 
@@ -921,22 +934,22 @@
 	return trans->ops->dump_data(trans, dump_mask);
 }
 
-static inline struct iwl_device_cmd *
+static inline struct iwl_device_tx_cmd *
 iwl_trans_alloc_tx_cmd(struct iwl_trans *trans)
 {
-	return kmem_cache_alloc(trans->dev_cmd_pool, GFP_ATOMIC);
+	return kmem_cache_zalloc(trans->dev_cmd_pool, GFP_ATOMIC);
 }
 
 int iwl_trans_send_cmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd);
 
 static inline void iwl_trans_free_tx_cmd(struct iwl_trans *trans,
-					 struct iwl_device_cmd *dev_cmd)
+					 struct iwl_device_tx_cmd *dev_cmd)
 {
 	kmem_cache_free(trans->dev_cmd_pool, dev_cmd);
 }
 
 static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
-			       struct iwl_device_cmd *dev_cmd, int queue)
+			       struct iwl_device_tx_cmd *dev_cmd, int queue)
 {
 	if (unlikely(test_bit(STATUS_FW_ERROR, &trans->status)))
 		return -EIO;
@@ -1239,7 +1252,9 @@
  *****************************************************/
 struct iwl_trans *iwl_trans_alloc(unsigned int priv_size,
 				  struct device *dev,
-				  const struct iwl_trans_ops *ops);
+				  const struct iwl_trans_ops *ops,
+				  unsigned int cmd_pool_size,
+				  unsigned int cmd_pool_align);
 void iwl_trans_free(struct iwl_trans *trans);
 
 /*****************************************************
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/constants.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/constants.h
@@ -154,5 +154,6 @@
 #define IWL_MVM_D3_DEBUG			false
 #define IWL_MVM_USE_TWT				false
 #define IWL_MVM_AMPDU_CONSEC_DROPS_DELBA	10
+#define IWL_MVM_USE_NSSN_SYNC			0
 
 #endif /* __MVM_CONSTANTS_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c
@@ -514,7 +514,10 @@
 	const size_t bufsz = sizeof(buf);
 	int pos = 0;
 
+	mutex_lock(&mvm->mutex);
 	iwl_mvm_get_sync_time(mvm, &curr_gp2, &curr_os);
+	mutex_unlock(&mvm->mutex);
+
 	do_div(curr_os, NSEC_PER_USEC);
 	diff = curr_os - curr_gp2;
 	pos += scnprintf(buf + pos, bufsz - pos, "diff=%lld\n", diff);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
@@ -5,10 +5,9 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -28,10 +27,9 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -478,6 +476,11 @@
 	if (kstrtou16(buf, 0, &amsdu_len))
 		return -EINVAL;
 
+	/* only change from debug set <-> debug unset */
+	if ((amsdu_len && mvmsta->orig_amsdu_len) ||
+	    (!!amsdu_len && mvmsta->orig_amsdu_len))
+		return -EBUSY;
+
 	if (amsdu_len) {
 		mvmsta->orig_amsdu_len = sta->max_amsdu_len;
 		sta->max_amsdu_len = amsdu_len;
@@ -1174,7 +1177,7 @@
 	int bin_len = count / 2;
 	int ret = -EINVAL;
 	size_t mpdu_cmd_hdr_size = (mvm->trans->trans_cfg->device_family >=
-				    IWL_DEVICE_FAMILY_22560) ?
+				    IWL_DEVICE_FAMILY_AX210) ?
 		sizeof(struct iwl_rx_mpdu_desc) :
 		IWL_RX_DESC_SIZE_V1;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
@@ -8,6 +8,7 @@
  * Copyright(c) 2015 - 2017 Intel Deutschland GmbH
  * Copyright (C) 2018 Intel Corporation
  * Copyright (C) 2019 Intel Corporation
+ * Copyright (C) 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,6 +31,7 @@
  * Copyright(c) 2015 - 2017 Intel Deutschland GmbH
  * Copyright (C) 2018 Intel Corporation
  * Copyright (C) 2019 Intel Corporation
+ * Copyright (C) 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -389,6 +391,8 @@
 	if (req != mvm->ftm_initiator.req)
 		return;
 
+	iwl_mvm_ftm_reset(mvm);
+
 	if (iwl_mvm_send_cmd_pdu(mvm, iwl_cmd_id(TOF_RANGE_ABORT_CMD,
 						 LOCATION_GROUP, 0),
 				 0, sizeof(cmd), &cmd))
@@ -502,7 +506,6 @@
 	lockdep_assert_held(&mvm->mutex);
 
 	if (!mvm->ftm_initiator.req) {
-		IWL_ERR(mvm, "Got FTM response but have no request?\n");
 		return;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -134,7 +134,14 @@
 		.dataflags[0] = IWL_HCMD_DFL_NOCOPY,
 	};
 
-	/* Do not configure default queue, it is configured via context info */
+	/*
+	 * The default queue is configured via context info, so if we
+	 * have a single queue, there's nothing to do here.
+	 */
+	if (mvm->trans->num_rx_queues == 1)
+		return 0;
+
+	/* skip the default queue */
 	num_queues = mvm->trans->num_rx_queues - 1;
 
 	size = struct_size(cmd, data, num_queues);
@@ -514,6 +521,18 @@
 	struct iwl_phy_cfg_cmd phy_cfg_cmd;
 	enum iwl_ucode_type ucode_type = mvm->fwrt.cur_fw_img;
 
+	if (iwl_mvm_has_unified_ucode(mvm) &&
+	    !mvm->trans->cfg->tx_with_siso_diversity) {
+		return 0;
+	} else if (mvm->trans->cfg->tx_with_siso_diversity) {
+		/*
+		 * TODO: currently we don't set the antenna but letting the NIC
+		 * to decide which antenna to use. This should come from BIOS.
+		 */
+		phy_cfg_cmd.phy_cfg =
+			cpu_to_le32(FW_PHY_CFG_CHAIN_SAD_ENABLED);
+	}
+
 	/* Set parameters */
 	phy_cfg_cmd.phy_cfg = cpu_to_le32(iwl_mvm_get_phy_config(mvm));
 
@@ -1169,7 +1188,7 @@
 
 static int iwl_mvm_ppag_init(struct iwl_mvm *mvm)
 {
-	return -ENOENT;
+	return 0;
 }
 #endif /* CONFIG_ACPI */
 
@@ -1344,12 +1363,12 @@
 		ret = iwl_send_phy_db_data(mvm->phy_db);
 		if (ret)
 			goto error;
-
-		ret = iwl_send_phy_cfg_cmd(mvm);
-		if (ret)
-			goto error;
 	}
 
+	ret = iwl_send_phy_cfg_cmd(mvm);
+	if (ret)
+		goto error;
+
 	ret = iwl_mvm_send_bt_init_conf(mvm);
 	if (ret)
 		goto error;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/led.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/led.c
@@ -129,6 +129,9 @@
 
 	mvm->led.name = kasprintf(GFP_KERNEL, "%s-led",
 				   wiphy_name(mvm->hw->wiphy));
+	if (!mvm->led.name)
+		return -ENOMEM;
+
 	mvm->led.brightness_set = iwl_led_brightness_set;
 	mvm->led.max_brightness = 1;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -5,10 +5,9 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -28,10 +27,9 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -256,7 +254,8 @@
 				      __le32_to_cpu(resp->n_channels),
 				      resp->channels,
 				      __le16_to_cpu(resp->mcc),
-				      __le16_to_cpu(resp->geo_info));
+				      __le16_to_cpu(resp->geo_info),
+				      __le16_to_cpu(resp->cap));
 	/* Store the return source id */
 	src_id = resp->source_id;
 	kfree(resp);
@@ -742,6 +741,20 @@
 	return ret;
 }
 
+static void iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
+			   struct ieee80211_sta *sta)
+{
+	if (likely(sta)) {
+		if (likely(iwl_mvm_tx_skb_sta(mvm, skb, sta) == 0))
+			return;
+	} else {
+		if (likely(iwl_mvm_tx_skb_non_sta(mvm, skb) == 0))
+			return;
+	}
+
+	ieee80211_free_txskb(mvm->hw, skb);
+}
+
 static void iwl_mvm_mac_tx(struct ieee80211_hw *hw,
 			   struct ieee80211_tx_control *control,
 			   struct sk_buff *skb)
@@ -785,14 +798,7 @@
 		}
 	}
 
-	if (sta) {
-		if (iwl_mvm_tx_skb(mvm, skb, sta))
-			goto drop;
-		return;
-	}
-
-	if (iwl_mvm_tx_skb_non_sta(mvm, skb))
-		goto drop;
+	iwl_mvm_tx_skb(mvm, skb, sta);
 	return;
  drop:
 	ieee80211_free_txskb(hw, skb);
@@ -842,10 +848,7 @@
 				break;
 			}
 
-			if (!txq->sta)
-				iwl_mvm_tx_skb_non_sta(mvm, skb);
-			else
-				iwl_mvm_tx_skb(mvm, skb, txq->sta);
+			iwl_mvm_tx_skb(mvm, skb, txq->sta);
 		}
 	} while (atomic_dec_return(&mvmtxq->tx_request));
 	rcu_read_unlock();
@@ -1190,14 +1193,13 @@
 	 */
 	flush_work(&mvm->roc_done_wk);
 
+	iwl_mvm_rm_aux_sta(mvm);
+
 	iwl_mvm_stop_device(mvm);
 
 	iwl_mvm_async_handlers_purge(mvm);
 	/* async_handlers_list is empty and will stay empty: HW is stopped */
 
-	/* the fw is stopped, the aux sta is dead: clean up driver state */
-	iwl_mvm_del_aux_sta(mvm);
-
 	/*
 	 * Clear IN_HW_RESTART and HW_RESTART_REQUESTED flag when stopping the
 	 * hw (as restart_complete() won't be called in this case) and mac80211
@@ -2020,7 +2022,7 @@
 	rcu_read_lock();
 
 	sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_ctxt_cmd.sta_id]);
-	if (IS_ERR(sta)) {
+	if (IS_ERR_OR_NULL(sta)) {
 		rcu_read_unlock();
 		WARN(1, "Can't find STA to configure HE\n");
 		return;
@@ -3020,7 +3022,7 @@
 
 	/* this would be a mac80211 bug ... but don't crash */
 	if (WARN_ON_ONCE(!mvmvif->phy_ctxt))
-		return -EINVAL;
+		return test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED, &mvm->status) ? 0 : -EINVAL;
 
 	/*
 	 * If we are in a STA removal flow and in DQA mode:
@@ -3067,6 +3069,9 @@
 			goto out_unlock;
 		}
 
+		if (vif->type == NL80211_IFTYPE_STATION)
+			vif->bss_conf.he_support = sta->he_cap.has_he;
+
 		if (sta->tdls &&
 		    (vif->p2p ||
 		     iwl_mvm_tdls_sta_count(mvm, NULL) ==
@@ -3648,9 +3653,12 @@
 	tail->apply_time_max_delay = cpu_to_le32(delay);
 
 	IWL_DEBUG_TE(mvm,
-		     "ROC: Requesting to remain on channel %u for %ums (requested = %ums, max_delay = %ums, dtim_interval = %ums)\n",
-		     channel->hw_value, req_dur, duration, delay,
-		     dtim_interval);
+		     "ROC: Requesting to remain on channel %u for %ums\n",
+		     channel->hw_value, req_dur);
+	IWL_DEBUG_TE(mvm,
+		     "\t(requested = %ums, max_delay = %ums, dtim_interval = %ums)\n",
+		     duration, delay, dtim_interval);
+
 	/* Set the node address */
 	memcpy(tail->node_addr, vif->addr, ETH_ALEN);
 
@@ -4161,6 +4169,9 @@
 	iwl_mvm_binding_remove_vif(mvm, vif);
 
 out:
+	if (fw_has_capa(&mvm->fw->ucode_capa, IWL_UCODE_TLV_CAPA_CHANNEL_SWITCH_CMD) &&
+	    switching_chanctx)
+		return;
 	mvmvif->phy_ctxt = NULL;
 	iwl_mvm_power_update_mac(mvm);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
@@ -1508,8 +1508,8 @@
 int __must_check iwl_mvm_send_cmd_pdu_status(struct iwl_mvm *mvm, u32 id,
 					     u16 len, const void *data,
 					     u32 *status);
-int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
-		   struct ieee80211_sta *sta);
+int iwl_mvm_tx_skb_sta(struct iwl_mvm *mvm, struct sk_buff *skb,
+		       struct ieee80211_sta *sta);
 int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb);
 void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
 			struct iwl_tx_cmd *tx_cmd,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
@@ -281,7 +281,7 @@
 	int regulatory_type;
 
 	/* Checking for required sections */
-	if (mvm->trans->cfg->nvm_type != IWL_NVM_EXT) {
+	if (mvm->trans->cfg->nvm_type == IWL_NVM) {
 		if (!mvm->nvm_sections[NVM_SECTION_TYPE_SW].data ||
 		    !mvm->nvm_sections[mvm->cfg->nvm_hw_section_num].data) {
 			IWL_ERR(mvm, "Can't parse empty OTP/NVM sections\n");
@@ -309,7 +309,8 @@
 		}
 
 		/* PHY_SKU section is mandatory in B0 */
-		if (!mvm->nvm_sections[NVM_SECTION_TYPE_PHY_SKU].data) {
+		if (mvm->trans->cfg->nvm_type == IWL_NVM_EXT &&
+		    !mvm->nvm_sections[NVM_SECTION_TYPE_PHY_SKU].data) {
 			IWL_ERR(mvm,
 				"Can't parse phy_sku in B0, empty sections\n");
 			return NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
@@ -316,6 +316,12 @@
 		       iwl_mvm_mu_mimo_grp_notif, RX_HANDLER_SYNC),
 	RX_HANDLER_GRP(DATA_PATH_GROUP, STA_PM_NOTIF,
 		       iwl_mvm_sta_pm_notif, RX_HANDLER_SYNC),
+	RX_HANDLER_GRP(MAC_CONF_GROUP, PROBE_RESPONSE_DATA_NOTIF,
+		       iwl_mvm_probe_resp_data_notif,
+		       RX_HANDLER_ASYNC_LOCKED),
+	RX_HANDLER_GRP(MAC_CONF_GROUP, CHANNEL_SWITCH_NOA_NOTIF,
+		       iwl_mvm_channel_switch_noa_notif,
+		       RX_HANDLER_SYNC),
 };
 #undef RX_HANDLER
 #undef RX_HANDLER_GRP
@@ -667,7 +673,7 @@
 		op_mode->ops = &iwl_mvm_ops_mq;
 		trans->rx_mpdu_cmd_hdr_size =
 			(trans->trans_cfg->device_family >=
-			 IWL_DEVICE_FAMILY_22560) ?
+			 IWL_DEVICE_FAMILY_AX210) ?
 			sizeof(struct iwl_rx_mpdu_desc) :
 			IWL_RX_DESC_SIZE_V1;
 	} else {
@@ -730,7 +736,7 @@
 	trans_cfg.no_reclaim_cmds = no_reclaim_cmds;
 	trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds);
 
-	if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
+	if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 		rb_size_default = IWL_AMSDU_2K;
 	else
 		rb_size_default = IWL_AMSDU_4K;
@@ -756,7 +762,7 @@
 
 	trans->wide_cmd_header = true;
 	trans_cfg.bc_table_dword =
-		mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_22560;
+		mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_AX210;
 
 	trans_cfg.command_groups = iwl_mvm_groups;
 	trans_cfg.command_groups_size = ARRAY_SIZE(iwl_mvm_groups);
@@ -832,6 +838,10 @@
 	if (!mvm->scan_cmd)
 		goto out_free;
 
+	/* invalidate ids to prevent accidental removal of sta_id 0 */
+	mvm->aux_sta.sta_id = IWL_MVM_INVALID_STA;
+	mvm->snif_sta.sta_id = IWL_MVM_INVALID_STA;
+
 	/* Set EBS as successful as long as not stated otherwise by the FW. */
 	mvm->last_ebs_successful = true;
 
@@ -1232,6 +1242,7 @@
 	reprobe = container_of(wk, struct iwl_mvm_reprobe, work);
 	if (device_reprobe(reprobe->dev))
 		dev_err(reprobe->dev, "reprobe failed!\n");
+	put_device(reprobe->dev);
 	kfree(reprobe);
 	module_put(THIS_MODULE);
 }
@@ -1282,7 +1293,7 @@
 			module_put(THIS_MODULE);
 			return;
 		}
-		reprobe->dev = mvm->trans->dev;
+		reprobe->dev = get_device(mvm->trans->dev);
 		INIT_WORK(&reprobe->work, iwl_mvm_reprobe_wk);
 		schedule_work(&reprobe->work);
 	} else if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
@@ -6,7 +6,7 @@
  * GPL LICENSE SUMMARY
  *
  * Copyright(c) 2017        Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -27,7 +27,7 @@
  * BSD LICENSE
  *
  * Copyright(c) 2017        Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -147,7 +147,11 @@
 	     (vht_ena && (vht_cap->cap & IEEE80211_VHT_CAP_RXLDPC))))
 		flags |= IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK;
 
-	/* consider our LDPC support in case of HE */
+	/* consider LDPC support in case of HE */
+	if (he_cap->has_he && (he_cap->he_cap_elem.phy_cap_info[1] &
+	    IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD))
+		flags |= IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK;
+
 	if (sband->iftype_data && sband->iftype_data->he_cap.has_he &&
 	    !(sband->iftype_data->he_cap.he_cap_elem.phy_cap_info[1] &
 	     IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD))
@@ -191,11 +195,13 @@
 {
 	u16 supp;
 	int i, highest_mcs;
+	u8 nss = sta->rx_nss;
 
-	for (i = 0; i < sta->rx_nss; i++) {
-		if (i == IWL_TLC_NSS_MAX)
-			break;
+	/* the station support only a single receive chain */
+	if (sta->smps_mode == IEEE80211_SMPS_STATIC)
+		nss = 1;
 
+	for (i = 0; i < nss && i < IWL_TLC_NSS_MAX; i++) {
 		highest_mcs = rs_fw_vht_highest_rx_mcs_index(vht_cap, i + 1);
 		if (!highest_mcs)
 			continue;
@@ -241,8 +247,13 @@
 	u16 tx_mcs_160 =
 		le16_to_cpu(sband->iftype_data->he_cap.he_mcs_nss_supp.tx_mcs_160);
 	int i;
+	u8 nss = sta->rx_nss;
+
+	/* the station support only a single receive chain */
+	if (sta->smps_mode == IEEE80211_SMPS_STATIC)
+		nss = 1;
 
-	for (i = 0; i < sta->rx_nss && i < IWL_TLC_NSS_MAX; i++) {
+	for (i = 0; i < nss && i < IWL_TLC_NSS_MAX; i++) {
 		u16 _mcs_160 = (mcs_160 >> (2 * i)) & 0x3;
 		u16 _mcs_80 = (mcs_80 >> (2 * i)) & 0x3;
 		u16 _tx_mcs_160 = (tx_mcs_160 >> (2 * i)) & 0x3;
@@ -303,8 +314,14 @@
 		cmd->mode = IWL_TLC_MNG_MODE_HT;
 		cmd->ht_rates[IWL_TLC_NSS_1][IWL_TLC_HT_BW_NONE_160] =
 			cpu_to_le16(ht_cap->mcs.rx_mask[0]);
-		cmd->ht_rates[IWL_TLC_NSS_2][IWL_TLC_HT_BW_NONE_160] =
-			cpu_to_le16(ht_cap->mcs.rx_mask[1]);
+
+		/* the station support only a single receive chain */
+		if (sta->smps_mode == IEEE80211_SMPS_STATIC)
+			cmd->ht_rates[IWL_TLC_NSS_2][IWL_TLC_HT_BW_NONE_160] =
+				0;
+		else
+			cmd->ht_rates[IWL_TLC_NSS_2][IWL_TLC_HT_BW_NONE_160] =
+				cpu_to_le16(ht_cap->mcs.rx_mask[1]);
 	}
 }
 
@@ -350,8 +367,15 @@
 		u16 size = le32_to_cpu(notif->amsdu_size);
 		int i;
 
-		if (WARN_ON(sta->max_amsdu_len < size))
+		if (sta->max_amsdu_len < size) {
+			/*
+			 * In debug sta->max_amsdu_len < size
+			 * so also check with orig_amsdu_len which holds the
+			 * original data before debugfs changed the value
+			 */
+			WARN_ON(mvmsta->orig_amsdu_len < size);
 			goto out;
+		}
 
 		mvmsta->amsdu_enabled = le32_to_cpu(notif->amsdu_enabled);
 		mvmsta->max_amsdu_len = size;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
@@ -3663,7 +3663,7 @@
 			cpu_to_le16(iwl_mvm_coex_agg_time_limit(mvm, sta));
 }
 
-static void *rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
+static void *rs_alloc(struct ieee80211_hw *hw)
 {
 	return hw->priv;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/rx.c
@@ -8,7 +8,7 @@
  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -31,7 +31,7 @@
  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -60,6 +60,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
+#include <asm/unaligned.h>
 #include <linux/etherdevice.h>
 #include <linux/skbuff.h>
 #include "iwl-trans.h"
@@ -357,7 +358,7 @@
 	rx_res = (struct iwl_rx_mpdu_res_start *)pkt->data;
 	hdr = (struct ieee80211_hdr *)(pkt->data + sizeof(*rx_res));
 	len = le16_to_cpu(rx_res->byte_count);
-	rx_pkt_status = le32_to_cpup((__le32 *)
+	rx_pkt_status = get_unaligned_le32((__le32 *)
 		(pkt->data + sizeof(*rx_res) + len));
 
 	/* Dont use dev_alloc_skb(), we'll have enough headroom once
@@ -565,6 +566,7 @@
 
 struct iwl_mvm_stat_data {
 	struct iwl_mvm *mvm;
+	__le32 flags;
 	__le32 mac_id;
 	u8 beacon_filter_average_energy;
 	void *general;
@@ -605,6 +607,13 @@
 			-general->beacon_average_energy[vif_id];
 	}
 
+	/* make sure that beacon statistics don't go backwards with TCM
+	 * request to clear statistics
+	 */
+	if (le32_to_cpu(data->flags) & IWL_STATISTICS_REPLY_FLG_CLEAR)
+		mvmvif->beacon_stats.accu_num_beacons +=
+			mvmvif->beacon_stats.num_beacons;
+
 	if (mvmvif->id != id)
 		return;
 
@@ -762,6 +771,7 @@
 
 		flags = stats->flag;
 	}
+	data.flags = flags;
 
 	iwl_mvm_rx_stats_check_trigger(mvm, pkt);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -514,14 +514,17 @@
 
 static void iwl_mvm_sync_nssn(struct iwl_mvm *mvm, u8 baid, u16 nssn)
 {
-	struct iwl_mvm_rss_sync_notif notif = {
-		.metadata.type = IWL_MVM_RXQ_NSSN_SYNC,
-		.metadata.sync = 0,
-		.nssn_sync.baid = baid,
-		.nssn_sync.nssn = nssn,
-	};
+	if (IWL_MVM_USE_NSSN_SYNC) {
+		struct iwl_mvm_rss_sync_notif notif = {
+			.metadata.type = IWL_MVM_RXQ_NSSN_SYNC,
+			.metadata.sync = 0,
+			.nssn_sync.baid = baid,
+			.nssn_sync.nssn = nssn,
+		};
 
-	iwl_mvm_sync_rx_queues_internal(mvm, (void *)&notif, sizeof(notif));
+		iwl_mvm_sync_rx_queues_internal(mvm, (void *)&notif,
+						sizeof(notif));
+	}
 }
 
 #define RX_REORDER_BUF_TIMEOUT_MQ (HZ / 10)
@@ -1565,7 +1568,7 @@
 	if (unlikely(test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)))
 		return;
 
-	if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
+	if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
 		rate_n_flags = le32_to_cpu(desc->v3.rate_n_flags);
 		channel = desc->v3.channel;
 		gp2_on_air_rise = le32_to_cpu(desc->v3.gp2_on_air_rise);
@@ -1667,7 +1670,7 @@
 		u64 tsf_on_air_rise;
 
 		if (mvm->trans->trans_cfg->device_family >=
-		    IWL_DEVICE_FAMILY_22560)
+		    IWL_DEVICE_FAMILY_AX210)
 			tsf_on_air_rise = le64_to_cpu(desc->v3.tsf_on_air_rise);
 		else
 			tsf_on_air_rise = le64_to_cpu(desc->v1.tsf_on_air_rise);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -1220,7 +1220,7 @@
 		cmd_size = sizeof(struct iwl_scan_config_v2);
 	else
 		cmd_size = sizeof(struct iwl_scan_config_v1);
-	cmd_size += num_channels;
+	cmd_size += mvm->fw->ucode_capa.n_scan_channels;
 
 	cfg = kzalloc(cmd_size, GFP_KERNEL);
 	if (!cfg)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -722,6 +722,11 @@
 
 	lockdep_assert_held(&mvm->mutex);
 
+	if (WARN(maxq >= mvm->trans->trans_cfg->base_params->num_of_queues,
+		 "max queue %d >= num_of_queues (%d)", maxq,
+		 mvm->trans->trans_cfg->base_params->num_of_queues))
+		maxq = mvm->trans->trans_cfg->base_params->num_of_queues - 1;
+
 	/* This should not be hit with new TX path */
 	if (WARN_ON(iwl_mvm_has_new_tx_api(mvm)))
 		return -ENOSPC;
@@ -1164,9 +1169,9 @@
 						   inactive_tid_bitmap,
 						   &unshare_queues,
 						   &changetid_queues);
-		if (ret >= 0 && free_queue < 0) {
+		if (ret && free_queue < 0) {
 			queue_owner = sta;
-			free_queue = ret;
+			free_queue = i;
 		}
 		/* only unlock sta lock - we still need the queue info lock */
 		spin_unlock_bh(&mvmsta->lock);
@@ -1179,17 +1184,15 @@
 	for_each_set_bit(i, &changetid_queues, IWL_MAX_HW_QUEUES)
 		iwl_mvm_change_queue_tid(mvm, i);
 
+	rcu_read_unlock();
+
 	if (free_queue >= 0 && alloc_for_sta != IWL_MVM_INVALID_STA) {
 		ret = iwl_mvm_free_inactive_queue(mvm, free_queue, queue_owner,
 						  alloc_for_sta);
-		if (ret) {
-			rcu_read_unlock();
+		if (ret)
 			return ret;
-		}
 	}
 
-	rcu_read_unlock();
-
 	return free_queue;
 }
 
@@ -2067,6 +2070,9 @@
 
 	lockdep_assert_held(&mvm->mutex);
 
+	if (WARN_ON_ONCE(mvm->snif_sta.sta_id == IWL_MVM_INVALID_STA))
+		return -EINVAL;
+
 	iwl_mvm_disable_txq(mvm, NULL, mvm->snif_queue, IWL_MAX_TID_COUNT, 0);
 	ret = iwl_mvm_rm_sta_common(mvm, mvm->snif_sta.sta_id);
 	if (ret)
@@ -2075,16 +2081,27 @@
 	return ret;
 }
 
-void iwl_mvm_dealloc_snif_sta(struct iwl_mvm *mvm)
+int iwl_mvm_rm_aux_sta(struct iwl_mvm *mvm)
 {
-	iwl_mvm_dealloc_int_sta(mvm, &mvm->snif_sta);
-}
+	int ret;
 
-void iwl_mvm_del_aux_sta(struct iwl_mvm *mvm)
-{
 	lockdep_assert_held(&mvm->mutex);
 
+	if (WARN_ON_ONCE(mvm->aux_sta.sta_id == IWL_MVM_INVALID_STA))
+		return -EINVAL;
+
+	iwl_mvm_disable_txq(mvm, NULL, mvm->aux_queue, IWL_MAX_TID_COUNT, 0);
+	ret = iwl_mvm_rm_sta_common(mvm, mvm->aux_sta.sta_id);
+	if (ret)
+		IWL_WARN(mvm, "Failed sending remove station\n");
 	iwl_mvm_dealloc_int_sta(mvm, &mvm->aux_sta);
+
+	return ret;
+}
+
+void iwl_mvm_dealloc_snif_sta(struct iwl_mvm *mvm)
+{
+	iwl_mvm_dealloc_int_sta(mvm, &mvm->snif_sta);
 }
 
 /*
@@ -2844,13 +2861,12 @@
 
 	if (normalized_ssn == tid_data->next_reclaimed) {
 		tid_data->state = IWL_AGG_STARTING;
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 	} else {
 		tid_data->state = IWL_EMPTYING_HW_QUEUE_ADDBA;
+		ret = 0;
 	}
 
-	ret = 0;
-
 out:
 	spin_unlock_bh(&mvmsta->lock);
 
@@ -3321,6 +3337,10 @@
 	igtk_cmd.sta_id = cpu_to_le32(sta_id);
 
 	if (remove_key) {
+		/* This is a valid situation for IGTK */
+		if (sta_id == IWL_MVM_INVALID_STA)
+			return 0;
+
 		igtk_cmd.ctrl_flags |= cpu_to_le32(STA_KEY_NOT_VALID);
 	} else {
 		struct ieee80211_key_seq seq;
@@ -3575,9 +3595,9 @@
 	IWL_DEBUG_WEP(mvm, "mvm remove dynamic key: idx=%d sta=%d\n",
 		      keyconf->keyidx, sta_id);
 
-	if (mvm_sta && (keyconf->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
-			keyconf->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
-			keyconf->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256))
+	if (keyconf->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
+	    keyconf->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
+	    keyconf->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256)
 		return iwl_mvm_send_sta_igtk(mvm, keyconf, sta_id, true);
 
 	if (!__test_and_clear_bit(keyconf->hw_key_idx, mvm->fw_key_table)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
@@ -8,7 +8,7 @@
  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
  * Copyright(c) 2015 - 2016 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -31,7 +31,7 @@
  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
  * Copyright(c) 2015 - 2016 Intel Deutschland GmbH
- * Copyright(c) 2018 - 2019 Intel Corporation
+ * Copyright(c) 2018 - 2020 Intel Corporation
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -541,7 +541,7 @@
 		       int tid, u8 queue, bool start);
 
 int iwl_mvm_add_aux_sta(struct iwl_mvm *mvm);
-void iwl_mvm_del_aux_sta(struct iwl_mvm *mvm);
+int iwl_mvm_rm_aux_sta(struct iwl_mvm *mvm);
 
 int iwl_mvm_alloc_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
 int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
@@ -731,7 +731,8 @@
 static void iwl_mvm_thermal_zone_register(struct iwl_mvm *mvm)
 {
 	int i;
-	char name[] = "iwlwifi";
+	char name[16];
+	static atomic_t counter = ATOMIC_INIT(0);
 
 	if (!iwl_mvm_is_tt_in_fw(mvm)) {
 		mvm->tz_device.tzone = NULL;
@@ -741,6 +742,7 @@
 
 	BUILD_BUG_ON(ARRAY_SIZE(name) >= THERMAL_NAME_LENGTH);
 
+	sprintf(name, "iwlwifi_%u", atomic_inc_return(&counter) & 0xFF);
 	mvm->tz_device.tzone = thermal_zone_device_register(name,
 							IWL_MAX_DTS_TRIPS,
 							IWL_WRITABLE_TRIPS_MSK,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
@@ -487,13 +487,13 @@
 /*
  * Allocates and sets the Tx cmd the driver data pointers in the skb
  */
-static struct iwl_device_cmd *
+static struct iwl_device_tx_cmd *
 iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb,
 		      struct ieee80211_tx_info *info, int hdrlen,
 		      struct ieee80211_sta *sta, u8 sta_id)
 {
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
-	struct iwl_device_cmd *dev_cmd;
+	struct iwl_device_tx_cmd *dev_cmd;
 	struct iwl_tx_cmd *tx_cmd;
 
 	dev_cmd = iwl_trans_alloc_tx_cmd(mvm->trans);
@@ -501,11 +501,6 @@
 	if (unlikely(!dev_cmd))
 		return NULL;
 
-	/* Make sure we zero enough of dev_cmd */
-	BUILD_BUG_ON(sizeof(struct iwl_tx_cmd_gen2) > sizeof(*tx_cmd));
-	BUILD_BUG_ON(sizeof(struct iwl_tx_cmd_gen3) > sizeof(*tx_cmd));
-
-	memset(dev_cmd, 0, sizeof(dev_cmd->hdr) + sizeof(*tx_cmd));
 	dev_cmd->hdr.cmd = TX_CMD;
 
 	if (iwl_mvm_has_new_tx_api(mvm)) {
@@ -547,7 +542,7 @@
 		}
 
 		if (mvm->trans->trans_cfg->device_family >=
-		    IWL_DEVICE_FAMILY_22560) {
+		    IWL_DEVICE_FAMILY_AX210) {
 			struct iwl_tx_cmd_gen3 *cmd = (void *)dev_cmd->payload;
 
 			cmd->offload_assist |= cpu_to_le32(offload_assist);
@@ -594,7 +589,7 @@
 }
 
 static void iwl_mvm_skb_prepare_status(struct sk_buff *skb,
-				       struct iwl_device_cmd *cmd)
+				       struct iwl_device_tx_cmd *cmd)
 {
 	struct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
 
@@ -713,7 +708,7 @@
 {
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	struct ieee80211_tx_info info;
-	struct iwl_device_cmd *dev_cmd;
+	struct iwl_device_tx_cmd *dev_cmd;
 	u8 sta_id;
 	int hdrlen = ieee80211_hdrlen(hdr->frame_control);
 	__le16 fc = hdr->frame_control;
@@ -935,7 +930,12 @@
 	    !(mvmsta->amsdu_enabled & BIT(tid)))
 		return iwl_mvm_tx_tso_segment(skb, 1, netdev_flags, mpdus_skb);
 
-	max_amsdu_len = iwl_mvm_max_amsdu_size(mvm, sta, tid);
+	/*
+	 * Take the min of ieee80211 station and mvm station
+	 */
+	max_amsdu_len =
+		min_t(unsigned int, sta->max_amsdu_len,
+		      iwl_mvm_max_amsdu_size(mvm, sta, tid));
 
 	/*
 	 * Limit A-MSDU in A-MPDU to 4095 bytes when VHT is not
@@ -1070,7 +1070,7 @@
 {
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	struct iwl_mvm_sta *mvmsta;
-	struct iwl_device_cmd *dev_cmd;
+	struct iwl_device_tx_cmd *dev_cmd;
 	__le16 fc;
 	u16 seq_number = 0;
 	u8 tid = IWL_MAX_TID_COUNT;
@@ -1146,7 +1146,7 @@
 	if (WARN_ONCE(txq_id == IWL_MVM_INVALID_QUEUE, "Invalid TXQ id")) {
 		iwl_trans_free_tx_cmd(mvm->trans, dev_cmd);
 		spin_unlock(&mvmsta->lock);
-		return 0;
+		return -1;
 	}
 
 	if (!iwl_mvm_has_new_tx_api(mvm)) {
@@ -1198,8 +1198,8 @@
 	return -1;
 }
 
-int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
-		   struct ieee80211_sta *sta)
+int iwl_mvm_tx_skb_sta(struct iwl_mvm *mvm, struct sk_buff *skb,
+		       struct ieee80211_sta *sta)
 {
 	struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
 	struct ieee80211_tx_info info;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
@@ -155,7 +155,7 @@
 	ctxt_info_gen3->mtr_size =
 		cpu_to_le16(TFD_QUEUE_CB_SIZE(cmdq_size));
 	ctxt_info_gen3->mcr_size =
-		cpu_to_le16(RX_QUEUE_CB_SIZE(MQ_RX_TABLE_SIZE));
+		cpu_to_le16(RX_QUEUE_CB_SIZE(trans->cfg->num_rbds));
 
 	trans_pcie->ctxt_info_gen3 = ctxt_info_gen3;
 	trans_pcie->prph_info = prph_info;
@@ -164,8 +164,10 @@
 	/* Allocate IML */
 	iml_img = dma_alloc_coherent(trans->dev, trans->iml_len,
 				     &trans_pcie->iml_dma_addr, GFP_KERNEL);
-	if (!iml_img)
-		return -ENOMEM;
+	if (!iml_img) {
+		ret = -ENOMEM;
+		goto err_free_ctxt_info;
+	}
 
 	memcpy(iml_img, trans->iml, trans->iml_len);
 
@@ -180,6 +182,26 @@
 
 	iwl_set_bit(trans, CSR_CTXT_INFO_BOOT_CTRL,
 		    CSR_AUTO_FUNC_BOOT_ENA);
+
+	if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_AX210) {
+		/*
+		 * The firmware initializes this again later (to a smaller
+		 * value), but for the boot process initialize the LTR to
+		 * ~250 usec.
+		 */
+		u32 val = CSR_LTR_LONG_VAL_AD_NO_SNOOP_REQ |
+			  u32_encode_bits(CSR_LTR_LONG_VAL_AD_SCALE_USEC,
+					  CSR_LTR_LONG_VAL_AD_NO_SNOOP_SCALE) |
+			  u32_encode_bits(250,
+					  CSR_LTR_LONG_VAL_AD_NO_SNOOP_VAL) |
+			  CSR_LTR_LONG_VAL_AD_SNOOP_REQ |
+			  u32_encode_bits(CSR_LTR_LONG_VAL_AD_SCALE_USEC,
+					  CSR_LTR_LONG_VAL_AD_SNOOP_SCALE) |
+			  u32_encode_bits(250, CSR_LTR_LONG_VAL_AD_SNOOP_VAL);
+
+		iwl_write32(trans, CSR_LTR_LONG_VAL_AD, val);
+	}
+
 	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 		iwl_write_umac_prph(trans, UREG_CPU_INIT_RUN, 1);
 	else
@@ -187,6 +209,11 @@
 
 	return 0;
 
+err_free_ctxt_info:
+	dma_free_coherent(trans->dev, sizeof(*trans_pcie->ctxt_info_gen3),
+			  trans_pcie->ctxt_info_gen3,
+			  trans_pcie->ctxt_info_dma_addr);
+	trans_pcie->ctxt_info_gen3 = NULL;
 err_free_prph_info:
 	dma_free_coherent(trans->dev,
 			  sizeof(*prph_info),
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
@@ -193,11 +193,12 @@
 		rb_size = IWL_CTXT_INFO_RB_SIZE_4K;
 	}
 
-	BUILD_BUG_ON(RX_QUEUE_CB_SIZE(MQ_RX_TABLE_SIZE) > 0xF);
-	control_flags = IWL_CTXT_INFO_TFD_FORMAT_LONG |
-			(RX_QUEUE_CB_SIZE(MQ_RX_TABLE_SIZE) <<
-			 IWL_CTXT_INFO_RB_CB_SIZE_POS) |
-			(rb_size << IWL_CTXT_INFO_RB_SIZE_POS);
+	WARN_ON(RX_QUEUE_CB_SIZE(trans->cfg->num_rbds) > 12);
+	control_flags = IWL_CTXT_INFO_TFD_FORMAT_LONG;
+	control_flags |=
+		u32_encode_bits(RX_QUEUE_CB_SIZE(trans->cfg->num_rbds),
+				IWL_CTXT_INFO_RB_CB_SIZE);
+	control_flags |= u32_encode_bits(rb_size, IWL_CTXT_INFO_RB_SIZE);
 	ctxt_info->control.control_flags = cpu_to_le32(control_flags);
 
 	/* initialize RX default queue */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -910,7 +910,6 @@
 	{IWL_PCI_DEVICE(0x2720, 0x0074, iwl_ax201_cfg_qu_hr)},
 	{IWL_PCI_DEVICE(0x2720, 0x0078, iwl_ax201_cfg_qu_hr)},
 	{IWL_PCI_DEVICE(0x2720, 0x007C, iwl_ax201_cfg_qu_hr)},
-	{IWL_PCI_DEVICE(0x2720, 0x0090, iwl22000_2ac_cfg_hr_cdb)},
 	{IWL_PCI_DEVICE(0x2720, 0x0244, iwl_ax101_cfg_qu_hr)},
 	{IWL_PCI_DEVICE(0x2720, 0x0310, iwl_ax201_cfg_qu_hr)},
 	{IWL_PCI_DEVICE(0x2720, 0x0A10, iwl_ax201_cfg_qu_hr)},
@@ -968,6 +967,7 @@
 
 	{IWL_PCI_DEVICE(0x2725, 0x0090, iwlax211_2ax_cfg_so_gf_a0)},
 	{IWL_PCI_DEVICE(0x2725, 0x0020, iwlax210_2ax_cfg_ty_gf_a0)},
+	{IWL_PCI_DEVICE(0x2725, 0x0024, iwlax210_2ax_cfg_ty_gf_a0)},
 	{IWL_PCI_DEVICE(0x2725, 0x0310, iwlax210_2ax_cfg_ty_gf_a0)},
 	{IWL_PCI_DEVICE(0x2725, 0x0510, iwlax210_2ax_cfg_ty_gf_a0)},
 	{IWL_PCI_DEVICE(0x2725, 0x0A10, iwlax210_2ax_cfg_ty_gf_a0)},
@@ -992,18 +992,32 @@
 
 static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
-	const struct iwl_cfg *cfg = (struct iwl_cfg *)(ent->driver_data);
+	const struct iwl_cfg_trans_params *trans =
+		(struct iwl_cfg_trans_params *)(ent->driver_data);
 	const struct iwl_cfg *cfg_7265d __maybe_unused = NULL;
 	struct iwl_trans *iwl_trans;
+	struct iwl_trans_pcie *trans_pcie;
 	unsigned long flags;
 	int ret;
+	/*
+	 * This is needed for backwards compatibility with the old
+	 * tables, so we don't need to change all the config structs
+	 * at the same time.  The cfg is used to compare with the old
+	 * full cfg structs.
+	 */
+	const struct iwl_cfg *cfg = (struct iwl_cfg *)(ent->driver_data);
+
+	/* make sure trans is the first element in iwl_cfg */
+	BUILD_BUG_ON(offsetof(struct iwl_cfg, trans));
 
-	iwl_trans = iwl_trans_pcie_alloc(pdev, ent, &cfg->trans);
+	iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans);
 	if (IS_ERR(iwl_trans))
 		return PTR_ERR(iwl_trans);
 
+	trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans);
+
 	/* the trans_cfg should never change, so set it now */
-	iwl_trans->trans_cfg = &cfg->trans;
+	iwl_trans->trans_cfg = trans;
 
 	if (WARN_ONCE(!iwl_trans->trans_cfg->csr,
 		      "CSR addresses aren't configured\n")) {
@@ -1027,22 +1041,22 @@
 		cfg_7265d = &iwl7265d_n_cfg;
 	if (cfg_7265d &&
 	    (iwl_trans->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_7265D)
-		cfg = cfg_7265d;
+		iwl_trans->cfg = cfg_7265d;
 
 	iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID);
 
 	if (cfg == &iwlax210_2ax_cfg_so_hr_a0) {
 		if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_TY) {
-			cfg = &iwlax210_2ax_cfg_ty_gf_a0;
+			iwl_trans->cfg = &iwlax210_2ax_cfg_ty_gf_a0;
 		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_JF)) {
-			cfg = &iwlax210_2ax_cfg_so_jf_a0;
+			iwl_trans->cfg = &iwlax210_2ax_cfg_so_jf_a0;
 		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF)) {
-			cfg = &iwlax211_2ax_cfg_so_gf_a0;
+			iwl_trans->cfg = &iwlax211_2ax_cfg_so_gf_a0;
 		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF4)) {
-			cfg = &iwlax411_2ax_cfg_so_gf4_a0;
+			iwl_trans->cfg = &iwlax411_2ax_cfg_so_gf4_a0;
 		}
 	} else if (cfg == &iwl_ax101_cfg_qu_hr) {
 		if ((CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
@@ -1050,13 +1064,17 @@
 		     iwl_trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) ||
 		    (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 		     CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR1))) {
-			cfg = &iwl22000_2ax_cfg_qnj_hr_b0;
+			iwl_trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0;
+		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
+		    CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
+		    iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) {
+			iwl_trans->cfg = &iwl_ax101_cfg_quz_hr;
 		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR)) {
-			cfg = &iwl_ax101_cfg_qu_hr;
+			iwl_trans->cfg = &iwl_ax101_cfg_qu_hr;
 		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_JF)) {
-			cfg = &iwl22000_2ax_cfg_jf;
+			iwl_trans->cfg = &iwl22000_2ax_cfg_jf;
 		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
 			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HRCDB)) {
 			IWL_ERR(iwl_trans, "RF ID HRCDB is not supported\n");
@@ -1073,19 +1091,11 @@
 
 		hw_status = iwl_read_prph(iwl_trans, UMAG_GEN_HW_STATUS);
 		if (CSR_HW_RF_STEP(iwl_trans->hw_rf_id) == SILICON_B_STEP)
-			/*
-			 * b step fw is the same for physical card and fpga
-			 */
-			cfg = &iwl22000_2ax_cfg_qnj_hr_b0;
+			iwl_trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0;
 		else if ((hw_status & UMAG_GEN_HW_IS_FPGA) &&
-			 CSR_HW_RF_STEP(iwl_trans->hw_rf_id) == SILICON_A_STEP) {
-			cfg = &iwl22000_2ax_cfg_qnj_hr_a0_f0;
-		} else {
-			/*
-			 * a step no FPGA
-			 */
-			cfg = &iwl22000_2ac_cfg_hr;
-		}
+			 CSR_HW_RF_STEP(iwl_trans->hw_rf_id) ==
+			 SILICON_A_STEP)
+			iwl_trans->cfg = &iwl22000_2ax_cfg_qnj_hr_a0_f0;
 	}
 
 	/*
@@ -1096,38 +1106,60 @@
 	 */
 	if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QU_C0) {
 		if (cfg == &iwl_ax101_cfg_qu_hr)
-			cfg = &iwl_ax101_cfg_qu_c0_hr_b0;
+			iwl_trans->cfg = &iwl_ax101_cfg_qu_c0_hr_b0;
 		else if (cfg == &iwl_ax201_cfg_qu_hr)
-			cfg = &iwl_ax201_cfg_qu_c0_hr_b0;
+			iwl_trans->cfg = &iwl_ax201_cfg_qu_c0_hr_b0;
 		else if (cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0)
-			cfg = &iwl9461_2ac_cfg_qu_c0_jf_b0;
+			iwl_trans->cfg = &iwl9461_2ac_cfg_qu_c0_jf_b0;
 		else if (cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0)
-			cfg = &iwl9462_2ac_cfg_qu_c0_jf_b0;
+			iwl_trans->cfg = &iwl9462_2ac_cfg_qu_c0_jf_b0;
 		else if (cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0)
-			cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0;
+			iwl_trans->cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0;
 		else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
-			cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0;
+			iwl_trans->cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0;
+		else if (cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
+			iwl_trans->cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0;
+		else if (cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
+			iwl_trans->cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0;
 	}
 
 	/* same thing for QuZ... */
 	if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) {
-		if (iwl_trans->cfg == &iwl_ax101_cfg_qu_hr)
+		if (cfg == &iwl_ax101_cfg_qu_hr)
 			iwl_trans->cfg = &iwl_ax101_cfg_quz_hr;
-		else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
+		else if (cfg == &iwl_ax201_cfg_qu_hr)
 			iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
-		else if (iwl_trans->cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0)
+		else if (cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0)
 			iwl_trans->cfg = &iwl9461_2ac_cfg_quz_a0_jf_b0_soc;
-		else if (iwl_trans->cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0)
+		else if (cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0)
 			iwl_trans->cfg = &iwl9462_2ac_cfg_quz_a0_jf_b0_soc;
-		else if (iwl_trans->cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0)
+		else if (cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0)
 			iwl_trans->cfg = &iwl9560_2ac_cfg_quz_a0_jf_b0_soc;
-		else if (iwl_trans->cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
+		else if (cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
 			iwl_trans->cfg = &iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc;
+		else if (cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
+			iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr;
+		else if (cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
+			iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr;
 	}
 
 #endif
-	/* now set the real cfg we decided to use */
-	iwl_trans->cfg = cfg;
+	/*
+	 * If we didn't set the cfg yet, assume the trans is actually
+	 * a full cfg from the old tables.
+	 */
+	if (!iwl_trans->cfg)
+		iwl_trans->cfg = cfg;
+
+	if (iwl_trans->trans_cfg->mq_rx_supported) {
+		if (WARN_ON(!iwl_trans->cfg->num_rbds)) {
+			ret = -EINVAL;
+			goto out_free_trans;
+		}
+		trans_pcie->num_rx_bufs = iwl_trans->cfg->num_rbds;
+	} else {
+		trans_pcie->num_rx_bufs = RX_QUEUE_SIZE;
+	}
 
 	if (iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_8000 &&
 	    iwl_trans_grab_nic_access(iwl_trans, &flags)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/internal.h
@@ -166,7 +166,7 @@
  * @id: queue index
  * @bd: driver's pointer to buffer of receive buffer descriptors (rbd).
  *	Address size is 32 bit in pre-9000 devices and 64 bit in 9000 devices.
- *	In 22560 devices it is a pointer to a list of iwl_rx_transfer_desc's
+ *	In AX210 devices it is a pointer to a list of iwl_rx_transfer_desc's
  * @bd_dma: bus address of buffer of receive buffer descriptors (rbd)
  * @ubd: driver's pointer to buffer of used receive buffer descriptors (rbd)
  * @ubd_dma: physical address of buffer of used receive buffer descriptors (rbd)
@@ -264,7 +264,7 @@
 static inline __le16 iwl_get_closed_rb_stts(struct iwl_trans *trans,
 					    struct iwl_rxq *rxq)
 {
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
 		__le16 *rb_stts = rxq->rb_stts;
 
 		return READ_ONCE(*rb_stts);
@@ -305,7 +305,7 @@
 #define IWL_FIRST_TB_SIZE_ALIGN ALIGN(IWL_FIRST_TB_SIZE, 64)
 
 struct iwl_pcie_txq_entry {
-	struct iwl_device_cmd *cmd;
+	void *cmd;
 	struct sk_buff *skb;
 	/* buffer to free after command completes */
 	const void *free_buf;
@@ -513,8 +513,8 @@
  */
 struct iwl_trans_pcie {
 	struct iwl_rxq *rxq;
-	struct iwl_rx_mem_buffer rx_pool[RX_POOL_SIZE];
-	struct iwl_rx_mem_buffer *global_table[RX_POOL_SIZE];
+	struct iwl_rx_mem_buffer *rx_pool;
+	struct iwl_rx_mem_buffer **global_table;
 	struct iwl_rb_allocator rba;
 	union {
 		struct iwl_context_info *ctxt_info;
@@ -573,6 +573,7 @@
 	u8 no_reclaim_cmds[MAX_NO_RECLAIM_CMDS];
 	u8 max_tbs;
 	u16 tfd_size;
+	u16 num_rx_bufs;
 
 	enum iwl_amsdu_size rx_buf_size;
 	bool bc_table_dword;
@@ -690,7 +691,7 @@
 void iwl_trans_pcie_log_scd_error(struct iwl_trans *trans,
 				  struct iwl_txq *txq);
 int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
-		      struct iwl_device_cmd *dev_cmd, int txq_id);
+		      struct iwl_device_tx_cmd *dev_cmd, int txq_id);
 void iwl_pcie_txq_check_wrptrs(struct iwl_trans *trans);
 int iwl_trans_pcie_send_hcmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd);
 void iwl_pcie_cmdq_reclaim(struct iwl_trans *trans, int txq_id, int idx);
@@ -1111,7 +1112,7 @@
 				 unsigned int timeout);
 void iwl_trans_pcie_dyn_txq_free(struct iwl_trans *trans, int queue);
 int iwl_trans_pcie_gen2_tx(struct iwl_trans *trans, struct sk_buff *skb,
-			   struct iwl_device_cmd *dev_cmd, int txq_id);
+			   struct iwl_device_tx_cmd *dev_cmd, int txq_id);
 int iwl_trans_pcie_gen2_send_hcmd(struct iwl_trans *trans,
 				  struct iwl_host_cmd *cmd);
 void iwl_trans_pcie_gen2_stop_device(struct iwl_trans *trans);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -200,8 +200,8 @@
  */
 int iwl_pcie_rx_stop(struct iwl_trans *trans)
 {
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
-		/* TODO: remove this for 22560 once fw does it */
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
+		/* TODO: remove this once fw does it */
 		iwl_write_umac_prph(trans, RFH_RXF_DMA_CFG_GEN3, 0);
 		return iwl_poll_umac_prph_bit(trans, RFH_GEN_STATUS_GEN3,
 					      RXF_DMA_IDLE, RXF_DMA_IDLE, 1000);
@@ -247,11 +247,7 @@
 	}
 
 	rxq->write_actual = round_down(rxq->write, 8);
-	if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_22560)
-		iwl_write32(trans, HBUS_TARG_WRPTR,
-			    (rxq->write_actual |
-			     ((FIRST_RX_QUEUE + rxq->id) << 16)));
-	else if (trans->trans_cfg->mq_rx_supported)
+	if (trans->trans_cfg->mq_rx_supported)
 		iwl_write32(trans, RFH_Q_FRBDCB_WIDX_TRG(rxq->id),
 			    rxq->write_actual);
 	else
@@ -279,7 +275,7 @@
 				struct iwl_rxq *rxq,
 				struct iwl_rx_mem_buffer *rxb)
 {
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
 		struct iwl_rx_transfer_desc *bd = rxq->bd;
 
 		BUILD_BUG_ON(sizeof(*bd) != 2 * sizeof(u64));
@@ -326,7 +322,7 @@
 		WARN_ON(rxb->page_dma & DMA_BIT_MASK(12));
 		/* Point to Rx buffer via next RBD in circular buffer */
 		iwl_pcie_restock_bd(trans, rxq, rxb);
-		rxq->write = (rxq->write + 1) & MQ_RX_TABLE_MASK;
+		rxq->write = (rxq->write + 1) & (rxq->queue_size - 1);
 		rxq->free_count--;
 	}
 	spin_unlock(&rxq->lock);
@@ -514,7 +510,7 @@
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 	int i;
 
-	for (i = 0; i < RX_POOL_SIZE; i++) {
+	for (i = 0; i < RX_POOL_SIZE(trans_pcie->num_rx_bufs); i++) {
 		if (!trans_pcie->rx_pool[i].page)
 			continue;
 		dma_unmap_page(trans->dev, trans_pcie->rx_pool[i].page_dma,
@@ -691,7 +687,7 @@
 {
 	struct device *dev = trans->dev;
 	bool use_rx_td = (trans->trans_cfg->device_family >=
-			  IWL_DEVICE_FAMILY_22560);
+			  IWL_DEVICE_FAMILY_AX210);
 	int free_size = iwl_pcie_free_bd_size(trans, use_rx_td);
 
 	if (rxq->bd)
@@ -712,7 +708,7 @@
 	rxq->used_bd_dma = 0;
 	rxq->used_bd = NULL;
 
-	if (trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_22560)
+	if (trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_AX210)
 		return;
 
 	if (rxq->tr_tail)
@@ -736,13 +732,13 @@
 	int i;
 	int free_size;
 	bool use_rx_td = (trans->trans_cfg->device_family >=
-			  IWL_DEVICE_FAMILY_22560);
+			  IWL_DEVICE_FAMILY_AX210);
 	size_t rb_stts_size = use_rx_td ? sizeof(__le16) :
 			      sizeof(struct iwl_rb_status);
 
 	spin_lock_init(&rxq->lock);
 	if (trans->trans_cfg->mq_rx_supported)
-		rxq->queue_size = MQ_RX_TABLE_SIZE;
+		rxq->queue_size = trans->cfg->num_rbds;
 	else
 		rxq->queue_size = RX_QUEUE_SIZE;
 
@@ -784,11 +780,6 @@
 					  &rxq->cr_tail_dma, GFP_KERNEL);
 	if (!rxq->cr_tail)
 		goto err;
-	/*
-	 * W/A 22560 device step Z0 must be non zero bug
-	 * TODO: remove this when stop supporting Z0
-	 */
-	*rxq->cr_tail = cpu_to_le16(500);
 
 	return 0;
 
@@ -808,7 +799,7 @@
 	struct iwl_rb_allocator *rba = &trans_pcie->rba;
 	int i, ret;
 	size_t rb_stts_size = trans->trans_cfg->device_family >=
-			      IWL_DEVICE_FAMILY_22560 ?
+				IWL_DEVICE_FAMILY_AX210 ?
 			      sizeof(__le16) : sizeof(struct iwl_rb_status);
 
 	if (WARN_ON(trans_pcie->rxq))
@@ -816,8 +807,18 @@
 
 	trans_pcie->rxq = kcalloc(trans->num_rx_queues, sizeof(struct iwl_rxq),
 				  GFP_KERNEL);
-	if (!trans_pcie->rxq)
-		return -ENOMEM;
+	trans_pcie->rx_pool = kcalloc(RX_POOL_SIZE(trans_pcie->num_rx_bufs),
+				      sizeof(trans_pcie->rx_pool[0]),
+				      GFP_KERNEL);
+	trans_pcie->global_table =
+		kcalloc(RX_POOL_SIZE(trans_pcie->num_rx_bufs),
+			sizeof(trans_pcie->global_table[0]),
+			GFP_KERNEL);
+	if (!trans_pcie->rxq || !trans_pcie->rx_pool ||
+	    !trans_pcie->global_table) {
+		ret = -ENOMEM;
+		goto err;
+	}
 
 	spin_lock_init(&rba->lock);
 
@@ -854,6 +855,8 @@
 		trans_pcie->base_rb_stts = NULL;
 		trans_pcie->base_rb_stts_dma = 0;
 	}
+	kfree(trans_pcie->rx_pool);
+	kfree(trans_pcie->global_table);
 	kfree(trans_pcie->rxq);
 
 	return ret;
@@ -1074,8 +1077,9 @@
 		rxq->read = 0;
 		rxq->write = 0;
 		rxq->write_actual = 0;
-		memset(rxq->rb_stts, 0, (trans->trans_cfg->device_family >=
-					 IWL_DEVICE_FAMILY_22560) ?
+		memset(rxq->rb_stts, 0,
+		       (trans->trans_cfg->device_family >=
+			IWL_DEVICE_FAMILY_AX210) ?
 		       sizeof(__le16) : sizeof(struct iwl_rb_status));
 
 		iwl_pcie_rx_init_rxb_lists(rxq);
@@ -1089,12 +1093,11 @@
 
 	/* move the pool to the default queue and allocator ownerships */
 	queue_size = trans->trans_cfg->mq_rx_supported ?
-		     MQ_RX_NUM_RBDS : RX_QUEUE_SIZE;
+			trans_pcie->num_rx_bufs - 1 : RX_QUEUE_SIZE;
 	allocator_pool_size = trans->num_rx_queues *
 		(RX_CLAIM_REQ_ALLOC - RX_POST_REQ_ALLOC);
 	num_alloc = queue_size + allocator_pool_size;
-	BUILD_BUG_ON(ARRAY_SIZE(trans_pcie->global_table) !=
-		     ARRAY_SIZE(trans_pcie->rx_pool));
+
 	for (i = 0; i < num_alloc; i++) {
 		struct iwl_rx_mem_buffer *rxb = &trans_pcie->rx_pool[i];
 
@@ -1152,7 +1155,7 @@
 	struct iwl_rb_allocator *rba = &trans_pcie->rba;
 	int i;
 	size_t rb_stts_size = trans->trans_cfg->device_family >=
-			      IWL_DEVICE_FAMILY_22560 ?
+				IWL_DEVICE_FAMILY_AX210 ?
 			      sizeof(__le16) : sizeof(struct iwl_rb_status);
 
 	/*
@@ -1185,6 +1188,8 @@
 		if (rxq->napi.poll)
 			netif_napi_del(&rxq->napi);
 	}
+	kfree(trans_pcie->rx_pool);
+	kfree(trans_pcie->global_table);
 	kfree(trans_pcie->rxq);
 }
 
@@ -1347,7 +1352,7 @@
 		}
 
 		page_stolen |= rxcb._page_stolen;
-		if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
+		if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 			break;
 		offset += ALIGN(len, FH_RSCSR_FRAME_ALIGN);
 	}
@@ -1398,13 +1403,12 @@
 		return rxb;
 	}
 
-	/* used_bd is a 32/16 bit but only 12 are used to retrieve the vid */
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
-		vid = le16_to_cpu(rxq->cd[i].rbid) & 0x0FFF;
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
+		vid = le16_to_cpu(rxq->cd[i].rbid);
 	else
-		vid = le32_to_cpu(rxq->bd_32[i]) & 0x0FFF;
+		vid = le32_to_cpu(rxq->bd_32[i]) & 0x0FFF; /* 12-bit VID */
 
-	if (!vid || vid > ARRAY_SIZE(trans_pcie->global_table))
+	if (!vid || vid > RX_POOL_SIZE(trans_pcie->num_rx_bufs))
 		goto out_err;
 
 	rxb = trans_pcie->global_table[vid - 1];
@@ -1429,6 +1433,7 @@
 static void iwl_pcie_rx_handle(struct iwl_trans *trans, int queue)
 {
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
+	struct napi_struct *napi;
 	struct iwl_rxq *rxq;
 	u32 r, i, count = 0;
 	bool emergency = false;
@@ -1515,7 +1520,7 @@
 	/* Backtrack one entry */
 	rxq->read = i;
 	/* update cr tail with the rxq read pointer */
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 		*rxq->cr_tail = cpu_to_le16(r);
 	spin_unlock(&rxq->lock);
 
@@ -1534,8 +1539,16 @@
 	if (unlikely(emergency && count))
 		iwl_pcie_rxq_alloc_rbs(trans, GFP_ATOMIC, rxq);
 
-	if (rxq->napi.poll)
-		napi_gro_flush(&rxq->napi, false);
+	napi = &rxq->napi;
+	if (napi->poll) {
+		napi_gro_flush(napi, false);
+
+		if (napi->rx_count) {
+			netif_receive_skb_list(&napi->rx_list);
+			INIT_LIST_HEAD(&napi->rx_list);
+			napi->rx_count = 0;
+		}
+	}
 
 	iwl_pcie_rxq_restock(trans, rxq);
 }
@@ -2152,8 +2165,7 @@
 
 	/* Error detected by uCode */
 	if ((inta_fh & MSIX_FH_INT_CAUSES_FH_ERR) ||
-	    (inta_hw & MSIX_HW_INT_CAUSES_REG_SW_ERR) ||
-	    (inta_hw & MSIX_HW_INT_CAUSES_REG_SW_ERR_V2)) {
+	    (inta_hw & MSIX_HW_INT_CAUSES_REG_SW_ERR)) {
 		IWL_ERR(trans,
 			"Microcode SW error detected. Restarting 0x%X.\n",
 			inta_fh);
@@ -2185,17 +2197,7 @@
 		}
 	}
 
-	if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_22560 &&
-	    inta_hw & MSIX_HW_INT_CAUSES_REG_IPC) {
-		/* Reflect IML transfer status */
-		int res = iwl_read32(trans, CSR_IML_RESP_ADDR);
-
-		IWL_DEBUG_ISR(trans, "IML transfer status: %d\n", res);
-		if (res == IWL_IMAGE_RESP_FAIL) {
-			isr_stats->sw++;
-			iwl_pcie_irq_handle_error(trans);
-		}
-	} else if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP) {
+	if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP) {
 		u32 sleep_notif =
 			le32_to_cpu(trans_pcie->prph_info->sleep_notif);
 		if (sleep_notif == IWL_D3_SLEEP_STATUS_SUSPEND ||
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c
@@ -57,24 +57,6 @@
 #include "internal.h"
 #include "fw/dbg.h"
 
-static int iwl_pcie_gen2_force_power_gating(struct iwl_trans *trans)
-{
-	iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG,
-			  HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE);
-	udelay(20);
-	iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG,
-			  HPM_HIPM_GEN_CFG_CR_PG_EN |
-			  HPM_HIPM_GEN_CFG_CR_SLP_EN);
-	udelay(20);
-	iwl_clear_bits_prph(trans, HPM_HIPM_GEN_CFG,
-			    HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE);
-
-	iwl_trans_sw_reset(trans);
-	iwl_clear_bit(trans, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
-
-	return 0;
-}
-
 /*
  * Start up NIC's basic functionality after it has been reset
  * (e.g. after platform boot, or shutdown via iwl_pcie_apm_stop())
@@ -110,13 +92,6 @@
 
 	iwl_pcie_apm_config(trans);
 
-	if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_22000 &&
-	    trans->cfg->integrated) {
-		ret = iwl_pcie_gen2_force_power_gating(trans);
-		if (ret)
-			return ret;
-	}
-
 	ret = iwl_finish_nic_init(trans, trans->trans_cfg);
 	if (ret)
 		return ret;
@@ -193,7 +168,7 @@
 	}
 
 	iwl_pcie_ctxt_info_free_paging(trans);
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 		iwl_pcie_ctxt_info_gen3_free(trans);
 	else
 		iwl_pcie_ctxt_info_free(trans);
@@ -365,7 +340,7 @@
 		goto out;
 	}
 
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 		ret = iwl_pcie_ctxt_info_gen3_init(trans, fw);
 	else
 		ret = iwl_pcie_ctxt_info_init(trans, fw);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
@@ -79,6 +79,7 @@
 #include "iwl-agn-hw.h"
 #include "fw/error-dump.h"
 #include "fw/dbg.h"
+#include "fw/api/tx.h"
 #include "internal.h"
 #include "iwl-fh.h"
 
@@ -1112,30 +1113,12 @@
 	{MSIX_HW_INT_CAUSES_REG_HAP,		CSR_MSIX_HW_INT_MASK_AD, 0x2E},
 };
 
-static struct iwl_causes_list causes_list_v2[] = {
-	{MSIX_FH_INT_CAUSES_D2S_CH0_NUM,	CSR_MSIX_FH_INT_MASK_AD, 0},
-	{MSIX_FH_INT_CAUSES_D2S_CH1_NUM,	CSR_MSIX_FH_INT_MASK_AD, 0x1},
-	{MSIX_FH_INT_CAUSES_S2D,		CSR_MSIX_FH_INT_MASK_AD, 0x3},
-	{MSIX_FH_INT_CAUSES_FH_ERR,		CSR_MSIX_FH_INT_MASK_AD, 0x5},
-	{MSIX_HW_INT_CAUSES_REG_ALIVE,		CSR_MSIX_HW_INT_MASK_AD, 0x10},
-	{MSIX_HW_INT_CAUSES_REG_IPC,		CSR_MSIX_HW_INT_MASK_AD, 0x11},
-	{MSIX_HW_INT_CAUSES_REG_SW_ERR_V2,	CSR_MSIX_HW_INT_MASK_AD, 0x15},
-	{MSIX_HW_INT_CAUSES_REG_CT_KILL,	CSR_MSIX_HW_INT_MASK_AD, 0x16},
-	{MSIX_HW_INT_CAUSES_REG_RF_KILL,	CSR_MSIX_HW_INT_MASK_AD, 0x17},
-	{MSIX_HW_INT_CAUSES_REG_PERIODIC,	CSR_MSIX_HW_INT_MASK_AD, 0x18},
-	{MSIX_HW_INT_CAUSES_REG_SCD,		CSR_MSIX_HW_INT_MASK_AD, 0x2A},
-	{MSIX_HW_INT_CAUSES_REG_FH_TX,		CSR_MSIX_HW_INT_MASK_AD, 0x2B},
-	{MSIX_HW_INT_CAUSES_REG_HW_ERR,		CSR_MSIX_HW_INT_MASK_AD, 0x2D},
-	{MSIX_HW_INT_CAUSES_REG_HAP,		CSR_MSIX_HW_INT_MASK_AD, 0x2E},
-};
-
 static void iwl_pcie_map_non_rx_causes(struct iwl_trans *trans)
 {
 	struct iwl_trans_pcie *trans_pcie =  IWL_TRANS_GET_PCIE_TRANS(trans);
 	int val = trans_pcie->def_irq | MSIX_NON_AUTO_CLEAR_CAUSE;
-	int i, arr_size =
-		(trans->trans_cfg->device_family != IWL_DEVICE_FAMILY_22560) ?
-		ARRAY_SIZE(causes_list) : ARRAY_SIZE(causes_list_v2);
+	int i, arr_size = ARRAY_SIZE(causes_list);
+	struct iwl_causes_list *causes = causes_list;
 
 	/*
 	 * Access all non RX causes and map them to the default irq.
@@ -1143,11 +1126,6 @@
 	 * the first interrupt vector will serve non-RX and FBQ causes.
 	 */
 	for (i = 0; i < arr_size; i++) {
-		struct iwl_causes_list *causes =
-			(trans->trans_cfg->device_family !=
-			 IWL_DEVICE_FAMILY_22560) ?
-			causes_list : causes_list_v2;
-
 		iwl_write8(trans, CSR_MSIX_IVAR(causes[i].addr), val);
 		iwl_clear_bit(trans, causes[i].mask_reg,
 			      causes[i].cause_num);
@@ -1634,11 +1612,15 @@
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 	int max_irqs, num_irqs, i, ret;
 	u16 pci_cmd;
+	u32 max_rx_queues = IWL_MAX_RX_HW_QUEUES;
 
 	if (!cfg_trans->mq_rx_supported)
 		goto enable_msi;
 
-	max_irqs = min_t(u32, num_online_cpus() + 2, IWL_MAX_RX_HW_QUEUES);
+	if (cfg_trans->device_family <= IWL_DEVICE_FAMILY_9000)
+		max_rx_queues = IWL_9000_MAX_RX_HW_QUEUES;
+
+	max_irqs = min_t(u32, num_online_cpus() + 2, max_rx_queues);
 	for (i = 0; i < max_irqs; i++)
 		trans_pcie->msix_entries[i].entry = i;
 
@@ -1783,6 +1765,29 @@
 	return 0;
 }
 
+static int iwl_pcie_gen2_force_power_gating(struct iwl_trans *trans)
+{
+	int ret;
+
+	ret = iwl_finish_nic_init(trans, trans->trans_cfg);
+	if (ret < 0)
+		return ret;
+
+	iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG,
+			  HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE);
+	udelay(20);
+	iwl_set_bits_prph(trans, HPM_HIPM_GEN_CFG,
+			  HPM_HIPM_GEN_CFG_CR_PG_EN |
+			  HPM_HIPM_GEN_CFG_CR_SLP_EN);
+	udelay(20);
+	iwl_clear_bits_prph(trans, HPM_HIPM_GEN_CFG,
+			    HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE);
+
+	iwl_trans_pcie_sw_reset(trans);
+
+	return 0;
+}
+
 static int _iwl_trans_pcie_start_hw(struct iwl_trans *trans)
 {
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
@@ -1802,6 +1807,13 @@
 
 	iwl_trans_pcie_sw_reset(trans);
 
+	if (trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_22000 &&
+	    trans->cfg->integrated) {
+		err = iwl_pcie_gen2_force_power_gating(trans);
+		if (err)
+			return err;
+	}
+
 	err = iwl_pcie_apm_init(trans);
 	if (err)
 		return err;
@@ -1871,7 +1883,7 @@
 
 static u32 iwl_trans_pcie_prph_msk(struct iwl_trans *trans)
 {
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560)
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
 		return 0x00FFFFFF;
 	else
 		return 0x000FFFFF;
@@ -2147,18 +2159,38 @@
 				   void *buf, int dwords)
 {
 	unsigned long flags;
-	int offs, ret = 0;
+	int offs = 0;
 	u32 *vals = buf;
 
-	if (iwl_trans_grab_nic_access(trans, &flags)) {
-		iwl_write32(trans, HBUS_TARG_MEM_RADDR, addr);
-		for (offs = 0; offs < dwords; offs++)
-			vals[offs] = iwl_read32(trans, HBUS_TARG_MEM_RDAT);
-		iwl_trans_release_nic_access(trans, &flags);
-	} else {
-		ret = -EBUSY;
+	while (offs < dwords) {
+		/* limit the time we spin here under lock to 1/2s */
+		unsigned long end = jiffies + HZ / 2;
+		bool resched = false;
+
+		if (iwl_trans_grab_nic_access(trans, &flags)) {
+			iwl_write32(trans, HBUS_TARG_MEM_RADDR,
+				    addr + 4 * offs);
+
+			while (offs < dwords) {
+				vals[offs] = iwl_read32(trans,
+							HBUS_TARG_MEM_RDAT);
+				offs++;
+
+				if (time_after(jiffies, end)) {
+					resched = true;
+					break;
+				}
+			}
+			iwl_trans_release_nic_access(trans, &flags);
+
+			if (resched)
+				cond_resched();
+		} else {
+			return -EBUSY;
+		}
 	}
-	return ret;
+
+	return 0;
 }
 
 static int iwl_trans_pcie_write_mem(struct iwl_trans *trans, u32 addr,
@@ -3432,19 +3464,34 @@
 {
 	struct iwl_trans_pcie *trans_pcie;
 	struct iwl_trans *trans;
-	int ret, addr_size;
+	int ret, addr_size, txcmd_size, txcmd_align;
+	const struct iwl_trans_ops *ops = &trans_ops_pcie_gen2;
+
+	if (!cfg_trans->gen2) {
+		ops = &trans_ops_pcie;
+		txcmd_size = sizeof(struct iwl_tx_cmd);
+		txcmd_align = sizeof(void *);
+	} else if (cfg_trans->device_family < IWL_DEVICE_FAMILY_AX210) {
+		txcmd_size = sizeof(struct iwl_tx_cmd_gen2);
+		txcmd_align = 64;
+	} else {
+		txcmd_size = sizeof(struct iwl_tx_cmd_gen3);
+		txcmd_align = 128;
+	}
+
+	txcmd_size += sizeof(struct iwl_cmd_header);
+	txcmd_size += 36; /* biggest possible 802.11 header */
+
+	/* Ensure device TX cmd cannot reach/cross a page boundary in gen2 */
+	if (WARN_ON(cfg_trans->gen2 && txcmd_size >= txcmd_align))
+		return ERR_PTR(-EINVAL);
 
 	ret = pcim_enable_device(pdev);
 	if (ret)
 		return ERR_PTR(ret);
 
-	if (cfg_trans->gen2)
-		trans = iwl_trans_alloc(sizeof(struct iwl_trans_pcie),
-					&pdev->dev, &trans_ops_pcie_gen2);
-	else
-		trans = iwl_trans_alloc(sizeof(struct iwl_trans_pcie),
-					&pdev->dev, &trans_ops_pcie);
-
+	trans = iwl_trans_alloc(sizeof(struct iwl_trans_pcie), &pdev->dev, ops,
+				txcmd_size, txcmd_align);
 	if (!trans)
 		return ERR_PTR(-ENOMEM);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c
@@ -113,14 +113,14 @@
 	 */
 	num_fetch_chunks = DIV_ROUND_UP(filled_tfd_size, 64) - 1;
 
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
-		/* Starting from 22560, the HW expects bytes */
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
+		/* Starting from AX210, the HW expects bytes */
 		WARN_ON(trans_pcie->bc_table_dword);
 		WARN_ON(len > 0x3FFF);
 		bc_ent = cpu_to_le16(len | (num_fetch_chunks << 14));
 		scd_bc_tbl_gen3->tfd_offset[idx] = bc_ent;
 	} else {
-		/* Until 22560, the HW expects DW */
+		/* Before AX210, the HW expects DW */
 		WARN_ON(!trans_pcie->bc_table_dword);
 		len = DIV_ROUND_UP(len, 4);
 		WARN_ON(len > 0xFFF);
@@ -243,7 +243,8 @@
 static int iwl_pcie_gen2_build_amsdu(struct iwl_trans *trans,
 				     struct sk_buff *skb,
 				     struct iwl_tfh_tfd *tfd, int start_len,
-				     u8 hdr_len, struct iwl_device_cmd *dev_cmd)
+				     u8 hdr_len,
+				     struct iwl_device_tx_cmd *dev_cmd)
 {
 #ifdef CONFIG_INET
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
@@ -371,7 +372,7 @@
 static struct
 iwl_tfh_tfd *iwl_pcie_gen2_build_tx_amsdu(struct iwl_trans *trans,
 					  struct iwl_txq *txq,
-					  struct iwl_device_cmd *dev_cmd,
+					  struct iwl_device_tx_cmd *dev_cmd,
 					  struct sk_buff *skb,
 					  struct iwl_cmd_meta *out_meta,
 					  int hdr_len,
@@ -403,6 +404,10 @@
 	tb_phys = dma_map_single(trans->dev, tb1_addr, len, DMA_TO_DEVICE);
 	if (unlikely(dma_mapping_error(trans->dev, tb_phys)))
 		goto out_err;
+	/*
+	 * No need for _with_wa(), we ensure (via alignment) that the data
+	 * here can never cross or end at a page boundary.
+	 */
 	iwl_pcie_gen2_set_tb(trans, tfd, tb_phys, len);
 
 	if (iwl_pcie_gen2_build_amsdu(trans, skb, tfd,
@@ -456,7 +461,7 @@
 static struct
 iwl_tfh_tfd *iwl_pcie_gen2_build_tx(struct iwl_trans *trans,
 				    struct iwl_txq *txq,
-				    struct iwl_device_cmd *dev_cmd,
+				    struct iwl_device_tx_cmd *dev_cmd,
 				    struct sk_buff *skb,
 				    struct iwl_cmd_meta *out_meta,
 				    int hdr_len,
@@ -468,6 +473,7 @@
 	dma_addr_t tb_phys;
 	int len, tb1_len, tb2_len;
 	void *tb1_addr;
+	struct sk_buff *frag;
 
 	tb_phys = iwl_pcie_get_first_tb_dma(txq, idx);
 
@@ -495,6 +501,10 @@
 	tb_phys = dma_map_single(trans->dev, tb1_addr, tb1_len, DMA_TO_DEVICE);
 	if (unlikely(dma_mapping_error(trans->dev, tb_phys)))
 		goto out_err;
+	/*
+	 * No need for _with_wa(), we ensure (via alignment) that the data
+	 * here can never cross or end at a page boundary.
+	 */
 	iwl_pcie_gen2_set_tb(trans, tfd, tb_phys, tb1_len);
 	trace_iwlwifi_dev_tx(trans->dev, skb, tfd, sizeof(*tfd), &dev_cmd->hdr,
 			     IWL_FIRST_TB_SIZE + tb1_len, hdr_len);
@@ -516,6 +526,19 @@
 	if (iwl_pcie_gen2_tx_add_frags(trans, skb, tfd, out_meta))
 		goto out_err;
 
+	skb_walk_frags(skb, frag) {
+		tb_phys = dma_map_single(trans->dev, frag->data,
+					 skb_headlen(frag), DMA_TO_DEVICE);
+		if (unlikely(dma_mapping_error(trans->dev, tb_phys)))
+			goto out_err;
+		iwl_pcie_gen2_set_tb(trans, tfd, tb_phys, skb_headlen(frag));
+		trace_iwlwifi_dev_tx_tb(trans->dev, skb,
+					frag->data,
+					skb_headlen(frag));
+		if (iwl_pcie_gen2_tx_add_frags(trans, frag, tfd, out_meta))
+			goto out_err;
+	}
+
 	return tfd;
 
 out_err:
@@ -526,7 +549,7 @@
 static
 struct iwl_tfh_tfd *iwl_pcie_gen2_build_tfd(struct iwl_trans *trans,
 					    struct iwl_txq *txq,
-					    struct iwl_device_cmd *dev_cmd,
+					    struct iwl_device_tx_cmd *dev_cmd,
 					    struct sk_buff *skb,
 					    struct iwl_cmd_meta *out_meta)
 {
@@ -541,7 +564,7 @@
 
 	memset(tfd, 0, sizeof(*tfd));
 
-	if (trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_22560)
+	if (trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_AX210)
 		len = sizeof(struct iwl_tx_cmd_gen2);
 	else
 		len = sizeof(struct iwl_tx_cmd_gen3);
@@ -566,7 +589,7 @@
 }
 
 int iwl_trans_pcie_gen2_tx(struct iwl_trans *trans, struct sk_buff *skb,
-			   struct iwl_device_cmd *dev_cmd, int txq_id)
+			   struct iwl_device_tx_cmd *dev_cmd, int txq_id)
 {
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 	struct iwl_cmd_meta *out_meta;
@@ -591,7 +614,7 @@
 
 		/* don't put the packet on the ring, if there is no room */
 		if (unlikely(iwl_queue_space(trans, txq) < 3)) {
-			struct iwl_device_cmd **dev_cmd_ptr;
+			struct iwl_device_tx_cmd **dev_cmd_ptr;
 
 			dev_cmd_ptr = (void *)((u8 *)skb->cb +
 					       trans_pcie->dev_cmd_offs);
@@ -623,7 +646,7 @@
 		return -1;
 	}
 
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
 		struct iwl_tx_cmd_gen3 *tx_cmd_gen3 =
 			(void *)dev_cmd->payload;
 
@@ -1124,7 +1147,7 @@
 		return -ENOMEM;
 	ret = iwl_pcie_alloc_dma_ptr(trans, &txq->bc_tbl,
 				     (trans->trans_cfg->device_family >=
-				      IWL_DEVICE_FAMILY_22560) ?
+				      IWL_DEVICE_FAMILY_AX210) ?
 				     sizeof(struct iwl_gen3_bc_tbl) :
 				     sizeof(struct iwlagn_scd_bc_tbl));
 	if (ret) {
@@ -1260,6 +1283,9 @@
 
 	iwl_pcie_gen2_txq_unmap(trans, queue);
 
+	iwl_pcie_gen2_txq_free_memory(trans, trans_pcie->txq[queue]);
+	trans_pcie->txq[queue] = NULL;
+
 	IWL_DEBUG_TX_QUEUES(trans, "Deactivate queue %d\n", queue);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
@@ -213,8 +213,8 @@
 	u8 sec_ctl = 0;
 	u16 len = byte_cnt + IWL_TX_CRC_SIZE + IWL_TX_DELIMITER_SIZE;
 	__le16 bc_ent;
-	struct iwl_tx_cmd *tx_cmd =
-		(void *)txq->entries[txq->write_ptr].cmd->payload;
+	struct iwl_device_tx_cmd *dev_cmd = txq->entries[txq->write_ptr].cmd;
+	struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload;
 	u8 sta_id = tx_cmd->sta_id;
 
 	scd_bc_tbl = trans_pcie->scd_bc_tbls.addr;
@@ -257,8 +257,8 @@
 	int read_ptr = txq->read_ptr;
 	u8 sta_id = 0;
 	__le16 bc_ent;
-	struct iwl_tx_cmd *tx_cmd =
-		(void *)txq->entries[read_ptr].cmd->payload;
+	struct iwl_device_tx_cmd *dev_cmd = txq->entries[read_ptr].cmd;
+	struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload;
 
 	WARN_ON(read_ptr >= TFD_QUEUE_SIZE_MAX);
 
@@ -657,6 +657,11 @@
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 	struct iwl_txq *txq = trans_pcie->txq[txq_id];
 
+	if (!txq) {
+		IWL_ERR(trans, "Trying to free a queue that wasn't allocated?\n");
+		return;
+	}
+
 	spin_lock_bh(&txq->lock);
 	while (txq->write_ptr != txq->read_ptr) {
 		IWL_DEBUG_TX_REPLY(trans, "Q %d Free %d\n",
@@ -949,7 +954,7 @@
 	u16 bc_tbls_size = trans->trans_cfg->base_params->num_of_queues;
 
 	bc_tbls_size *= (trans->trans_cfg->device_family >=
-			 IWL_DEVICE_FAMILY_22560) ?
+			 IWL_DEVICE_FAMILY_AX210) ?
 		sizeof(struct iwl_gen3_bc_tbl) :
 		sizeof(struct iwlagn_scd_bc_tbl);
 
@@ -1196,7 +1201,7 @@
 
 		while (!skb_queue_empty(&overflow_skbs)) {
 			struct sk_buff *skb = __skb_dequeue(&overflow_skbs);
-			struct iwl_device_cmd *dev_cmd_ptr;
+			struct iwl_device_tx_cmd *dev_cmd_ptr;
 
 			dev_cmd_ptr = *(void **)((u8 *)skb->cb +
 						 trans_pcie->dev_cmd_offs);
@@ -2099,7 +2104,8 @@
 static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb,
 				   struct iwl_txq *txq, u8 hdr_len,
 				   struct iwl_cmd_meta *out_meta,
-				   struct iwl_device_cmd *dev_cmd, u16 tb1_len)
+				   struct iwl_device_tx_cmd *dev_cmd,
+				   u16 tb1_len)
 {
 	struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload;
 	struct iwl_trans_pcie *trans_pcie = txq->trans_pcie;
@@ -2281,7 +2287,8 @@
 static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb,
 				   struct iwl_txq *txq, u8 hdr_len,
 				   struct iwl_cmd_meta *out_meta,
-				   struct iwl_device_cmd *dev_cmd, u16 tb1_len)
+				   struct iwl_device_tx_cmd *dev_cmd,
+				   u16 tb1_len)
 {
 	/* No A-MSDU without CONFIG_INET */
 	WARN_ON(1);
@@ -2291,7 +2298,7 @@
 #endif /* CONFIG_INET */
 
 int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
-		      struct iwl_device_cmd *dev_cmd, int txq_id)
+		      struct iwl_device_tx_cmd *dev_cmd, int txq_id)
 {
 	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 	struct ieee80211_hdr *hdr;
@@ -2348,7 +2355,7 @@
 
 		/* don't put the packet on the ring, if there is no room */
 		if (unlikely(iwl_queue_space(trans, txq) < 3)) {
-			struct iwl_device_cmd **dev_cmd_ptr;
+			struct iwl_device_tx_cmd **dev_cmd_ptr;
 
 			dev_cmd_ptr = (void *)((u8 *)skb->cb +
 					       trans_pcie->dev_cmd_offs);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intersil/hostap/hostap_ap.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intersil/hostap/hostap_ap.c
@@ -2508,7 +2508,7 @@
 		sta->supported_rates[0] = 2;
 	if (sta->tx_supp_rates & WLAN_RATE_2M)
 		sta->supported_rates[1] = 4;
- 	if (sta->tx_supp_rates & WLAN_RATE_5M5)
+	if (sta->tx_supp_rates & WLAN_RATE_5M5)
 		sta->supported_rates[2] = 11;
 	if (sta->tx_supp_rates & WLAN_RATE_11M)
 		sta->supported_rates[3] = 22;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intersil/orinoco/orinoco_usb.c
@@ -1234,13 +1234,6 @@
 	if (skb->len < ETH_HLEN)
 		goto drop;
 
-	ctx = ezusb_alloc_ctx(upriv, EZUSB_RID_TX, 0);
-	if (!ctx)
-		goto busy;
-
-	memset(ctx->buf, 0, BULK_BUF_SIZE);
-	buf = ctx->buf->data;
-
 	tx_control = 0;
 
 	err = orinoco_process_xmit_skb(skb, dev, priv, &tx_control,
@@ -1248,6 +1241,13 @@
 	if (err)
 		goto drop;
 
+	ctx = ezusb_alloc_ctx(upriv, EZUSB_RID_TX, 0);
+	if (!ctx)
+		goto drop;
+
+	memset(ctx->buf, 0, BULK_BUF_SIZE);
+	buf = ctx->buf->data;
+
 	{
 		__le16 *tx_cntl = (__le16 *)buf;
 		*tx_cntl = cpu_to_le16(tx_control);
@@ -1361,7 +1361,8 @@
 	int retval;
 
 	BUG_ON(in_interrupt());
-	BUG_ON(!upriv);
+	if (!upriv)
+		return -EINVAL;
 
 	upriv->reply_count = 0;
 	/* Write the MAGIC number on the simulated registers to keep
@@ -1608,9 +1609,9 @@
 	/* set up the endpoint information */
 	/* check out the endpoints */
 
-	iface_desc = &interface->altsetting[0].desc;
+	iface_desc = &interface->cur_altsetting->desc;
 	for (i = 0; i < iface_desc->bNumEndpoints; ++i) {
-		ep = &interface->altsetting[0].endpoint[i].desc;
+		ep = &interface->cur_altsetting->endpoint[i].desc;
 
 		if (usb_endpoint_is_bulk_in(ep)) {
 			/* we found a bulk in endpoint */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intersil/p54/p54pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intersil/p54/p54pci.c
@@ -329,10 +329,12 @@
 	struct p54p_desc *desc;
 	dma_addr_t mapping;
 	u32 idx, i;
+	__le32 device_addr;
 
 	spin_lock_irqsave(&priv->lock, flags);
 	idx = le32_to_cpu(ring_control->host_idx[1]);
 	i = idx % ARRAY_SIZE(ring_control->tx_data);
+	device_addr = ((struct p54_hdr *)skb->data)->req_id;
 
 	mapping = pci_map_single(priv->pdev, skb->data, skb->len,
 				 PCI_DMA_TODEVICE);
@@ -346,7 +348,7 @@
 
 	desc = &ring_control->tx_data[i];
 	desc->host_addr = cpu_to_le32(mapping);
-	desc->device_addr = ((struct p54_hdr *)skb->data)->req_id;
+	desc->device_addr = device_addr;
 	desc->len = cpu_to_le16(skb->len);
 	desc->flags = 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/intersil/p54/p54usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/intersil/p54/p54usb.c
@@ -61,6 +61,7 @@
 	{USB_DEVICE(0x0db0, 0x6826)},	/* MSI UB54G (MS-6826) */
 	{USB_DEVICE(0x107b, 0x55f2)},	/* Gateway WGU-210 (Gemtek) */
 	{USB_DEVICE(0x124a, 0x4023)},	/* Shuttle PN15, Airvast WM168g, IOGear GWU513 */
+	{USB_DEVICE(0x124a, 0x4026)},	/* AirVasT USB wireless device */
 	{USB_DEVICE(0x1435, 0x0210)},	/* Inventel UR054G */
 	{USB_DEVICE(0x15a9, 0x0002)},	/* Gemtek WUBI-100GW 802.11g */
 	{USB_DEVICE(0x1630, 0x0005)},	/* 2Wire 802.11g USB (v1) / Z-Com */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mac80211_hwsim.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mac80211_hwsim.c
@@ -1979,8 +1979,7 @@
 
 	switch (action) {
 	case IEEE80211_AMPDU_TX_START:
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-		break;
+		return IEEE80211_AMPDU_TX_START_IMMEDIATE;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT:
@@ -3575,9 +3574,9 @@
 	}
 
 	if (info->attrs[HWSIM_ATTR_RADIO_NAME]) {
-		hwname = kasprintf(GFP_KERNEL, "%.*s",
-				   nla_len(info->attrs[HWSIM_ATTR_RADIO_NAME]),
-				   (char *)nla_data(info->attrs[HWSIM_ATTR_RADIO_NAME]));
+		hwname = kstrndup((char *)nla_data(info->attrs[HWSIM_ATTR_RADIO_NAME]),
+				  nla_len(info->attrs[HWSIM_ATTR_RADIO_NAME]),
+				  GFP_KERNEL);
 		if (!hwname)
 			return -ENOMEM;
 		param.hwname = hwname;
@@ -3597,9 +3596,9 @@
 	if (info->attrs[HWSIM_ATTR_RADIO_ID]) {
 		idx = nla_get_u32(info->attrs[HWSIM_ATTR_RADIO_ID]);
 	} else if (info->attrs[HWSIM_ATTR_RADIO_NAME]) {
-		hwname = kasprintf(GFP_KERNEL, "%.*s",
-				   nla_len(info->attrs[HWSIM_ATTR_RADIO_NAME]),
-				   (char *)nla_data(info->attrs[HWSIM_ATTR_RADIO_NAME]));
+		hwname = kstrndup((char *)nla_data(info->attrs[HWSIM_ATTR_RADIO_NAME]),
+				  nla_len(info->attrs[HWSIM_ATTR_RADIO_NAME]),
+				  GFP_KERNEL);
 		if (!hwname)
 			return -ENOMEM;
 	} else
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/libertas/cfg.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/libertas/cfg.c
@@ -273,6 +273,10 @@
 	int hw, ap, ap_max = ie[1];
 	u8 hw_rate;
 
+	if (ap_max > MAX_RATES) {
+		lbs_deb_assoc("invalid rates\n");
+		return tlv;
+	}
 	/* Advance past IE header */
 	ie += 2;
 
@@ -1777,6 +1781,12 @@
 	} else {
 		int hw, i;
 		u8 rates_max = rates_eid[1];
+		if (rates_max > MAX_RATES) {
+			lbs_deb_join("invalid rates");
+			rcu_read_unlock();
+			ret = -EINVAL;
+			goto out;
+		}
 		u8 *rates = cmd.bss.rates;
 		for (hw = 0; hw < ARRAY_SIZE(lbs_rates); hw++) {
 			u8 hw_rate = lbs_rates[hw].bitrate / 5;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/libertas/if_sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/libertas/if_sdio.c
@@ -1179,6 +1179,10 @@
 
 	spin_lock_init(&card->lock);
 	card->workqueue = alloc_workqueue("libertas_sdio", WQ_MEM_RECLAIM, 0);
+	if (unlikely(!card->workqueue)) {
+		ret = -ENOMEM;
+		goto err_queue;
+	}
 	INIT_WORK(&card->packet_worker, if_sdio_host_to_card_worker);
 	init_waitqueue_head(&card->pwron_waitq);
 
@@ -1230,6 +1234,7 @@
 	lbs_remove_card(priv);
 free:
 	destroy_workqueue(card->workqueue);
+err_queue:
 	while (card->packets) {
 		packet = card->packets;
 		card->packets = card->packets->next;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/libertas_tf/if_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/libertas_tf/if_usb.c
@@ -247,10 +247,10 @@
 
 	lbtf_deb_enter(LBTF_DEB_MAIN);
 
-	if_usb_reset_device(priv);
-
-	if (priv)
+	if (priv) {
+		if_usb_reset_device(priv);
 		lbtf_remove_card(priv);
+	}
 
 	/* Unlink and free urb */
 	if_usb_free(cardp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -1496,7 +1496,8 @@
 			      int idx, u8 *mac, struct station_info *sinfo)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
-	static struct mwifiex_sta_node *node;
+	struct mwifiex_sta_node *node;
+	int i;
 
 	if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) &&
 	    priv->media_connected && idx == 0) {
@@ -1506,13 +1507,10 @@
 		mwifiex_send_cmd(priv, HOST_CMD_APCMD_STA_LIST,
 				 HostCmd_ACT_GEN_GET, 0, NULL, true);
 
-		if (node && (&node->list == &priv->sta_list)) {
-			node = NULL;
-			return -ENOENT;
-		}
-
-		node = list_prepare_entry(node, &priv->sta_list, list);
-		list_for_each_entry_continue(node, &priv->sta_list, list) {
+		i = 0;
+		list_for_each_entry(node, &priv->sta_list, list) {
+			if (i++ != idx)
+				continue;
 			ether_addr_copy(mac, node->mac_addr);
 			return mwifiex_dump_station_info(priv, node, sinfo);
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/fw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -217,6 +217,7 @@
 #define TLV_TYPE_CHANNEL_STATS      (PROPRIETARY_TLV_BASE_ID + 198)
 #define TLV_BTCOEX_WL_AGGR_WINSIZE  (PROPRIETARY_TLV_BASE_ID + 202)
 #define TLV_BTCOEX_WL_SCANTIME      (PROPRIETARY_TLV_BASE_ID + 203)
+#define TLV_TYPE_LED_CONTROL        (PROPRIETARY_TLV_BASE_ID + 205)
 #define TLV_TYPE_BSS_MODE           (PROPRIETARY_TLV_BASE_ID + 206)
 #define TLV_TYPE_RANDOM_MAC         (PROPRIETARY_TLV_BASE_ID + 236)
 #define TLV_TYPE_CHAN_ATTR_CFG      (PROPRIETARY_TLV_BASE_ID + 237)
@@ -363,6 +364,7 @@
 #define HostCmd_CMD_802_11_AD_HOC_JOIN                0x002c
 #define HostCmd_CMD_802_11_AD_HOC_STOP                0x0040
 #define HostCmd_CMD_802_11_MAC_ADDRESS                0x004D
+#define HostCmd_CMD_802_11_LED_CONTROL                0X004E
 #define HostCmd_CMD_802_11D_DOMAIN_INFO               0x005b
 #define HostCmd_CMD_802_11_KEY_MATERIAL               0x005e
 #define HostCmd_CMD_802_11_BG_SCAN_CONFIG             0x006b
@@ -953,7 +955,7 @@
 struct mwifiex_aes_param {
 	u8 pn[WPA_PN_SIZE];
 	__le16 key_len;
-	u8 key[WLAN_KEY_LEN_CCMP];
+	u8 key[WLAN_KEY_LEN_CCMP_256];
 } __packed;
 
 struct mwifiex_wapi_param {
@@ -1193,6 +1195,16 @@
 	u8 oper_mode;
 } __packed;
 
+struct mwifiex_led_param {
+	__le16 mode;
+	__le16 on;
+} __packed;
+
+struct mwifiex_ie_types_led_param {
+	struct mwifiex_ie_types_header header;
+	struct mwifiex_led_param led_cfg;
+} __packed;
+
 struct host_cmd_ds_802_11_ad_hoc_start {
 	u8 ssid[IEEE80211_MAX_SSID_LEN];
 	u8 bss_mode;
@@ -1316,6 +1328,11 @@
 	} params;
 } __packed;
 
+struct host_cmd_ds_802_11_led_control {
+	__le16 action;
+	__le16 num_led;
+} __packed;
+
 enum SNMP_MIB_INDEX {
 	OP_RATE_SET_I = 1,
 	DTIM_PERIOD_I = 3,
@@ -2370,6 +2387,7 @@
 		struct host_cmd_sdio_sp_rx_aggr_cfg sdio_rx_aggr_cfg;
 		struct host_cmd_ds_multi_chan_policy mc_policy;
 		struct host_cmd_ds_robust_coex coex;
+		struct host_cmd_ds_802_11_led_control led_cfg;
 		struct host_cmd_ds_wakeup_reason hs_wakeup_reason;
 		struct host_cmd_ds_gtk_rekey_params rekey;
 		struct host_cmd_ds_chan_region_cfg reg_cfg;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/join.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/join.c
@@ -877,6 +877,8 @@
 
 	memset(adhoc_start->ssid, 0, IEEE80211_MAX_SSID_LEN);
 
+	if (req_ssid->ssid_len > IEEE80211_MAX_SSID_LEN)
+		req_ssid->ssid_len = IEEE80211_MAX_SSID_LEN;
 	memcpy(adhoc_start->ssid, req_ssid->ssid, req_ssid->ssid_len);
 
 	mwifiex_dbg(adapter, INFO, "info: ADHOC_S_CMD: SSID = %s\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/main.c
@@ -631,6 +631,7 @@
 
 	mwifiex_drv_get_driver_version(adapter, fmt, sizeof(fmt) - 1);
 	mwifiex_dbg(adapter, MSG, "driver_version = %s\n", fmt);
+	adapter->is_up = true;
 	goto done;
 
 err_add_intf:
@@ -727,8 +728,10 @@
 static int
 mwifiex_open(struct net_device *dev)
 {
-	netif_carrier_off(dev);
+	struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 
+	netif_carrier_off(dev);
+	mwifiex_set_led(priv->adapter, MWIFIEX_LED_ON);
 	return 0;
 }
 
@@ -759,6 +762,7 @@
 		cfg80211_sched_scan_stopped(priv->wdev.wiphy, 0);
 	}
 
+	mwifiex_set_led(priv->adapter, MWIFIEX_LED_OFF);
 	return 0;
 }
 
@@ -1468,7 +1472,10 @@
 	priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
 	mwifiex_deauthenticate(priv, NULL);
 
+	mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN);
+
 	mwifiex_uninit_sw(adapter);
+	adapter->is_up = false;
 
 	if (adapter->if_ops.down_dev)
 		adapter->if_ops.down_dev(adapter);
@@ -1730,7 +1737,8 @@
 	if (!adapter)
 		return 0;
 
-	mwifiex_uninit_sw(adapter);
+	if (adapter->is_up)
+		mwifiex_uninit_sw(adapter);
 
 	if (adapter->irq_wakeup >= 0)
 		device_init_wakeup(adapter->dev, false);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/main.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/main.h
@@ -132,6 +132,10 @@
 
 #define PKT_TYPE_MGMT	0xE5
 
+#define MWIFIEX_LED_ON		1
+#define MWIFIEX_LED_OFF		0
+#define MWIFIEX_LED_MAX		3
+
 /*
  * Do not check for data_received for USB, as data_received
  * is handled in mwifiex_usb_recv for USB
@@ -700,6 +704,7 @@
 	struct mwifiex_user_scan_chan hidden_chan[MWIFIEX_USER_SCAN_CHAN_MAX];
 	u8 assoc_resp_ht_param;
 	bool ht_param_present;
+	bool is_edge_gateway;
 };
 
 
@@ -1017,6 +1022,7 @@
 
 	/* For synchronizing FW initialization with device lifecycle. */
 	struct completion *fw_done;
+	bool is_up;
 
 	bool ext_scan;
 	u8 fw_api_ver;
@@ -1294,19 +1300,6 @@
 	return pos;
 }
 
-/* This function return interface number with the same bss_type.
- */
-static inline u8
-mwifiex_get_intf_num(struct mwifiex_adapter *adapter, u8 bss_type)
-{
-	u8 i, num = 0;
-
-	for (i = 0; i < adapter->priv_num; i++)
-		if (adapter->priv[i] && adapter->priv[i]->bss_type == bss_type)
-			num++;
-	return num;
-}
-
 /*
  * This function returns the correct private structure pointer based
  * upon the BSS type and BSS number.
@@ -1506,6 +1499,7 @@
 				struct cmd_ctrl_node *cmd_queued);
 int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
 		      struct cfg80211_ssid *req_ssid);
+int mwifiex_set_led(struct mwifiex_adapter *adapter, int on);
 int mwifiex_cancel_hs(struct mwifiex_private *priv, int cmd_type);
 int mwifiex_enable_hs(struct mwifiex_adapter *adapter);
 int mwifiex_disable_auto_ds(struct mwifiex_private *priv);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/pcie.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/pcie.c
@@ -229,6 +229,8 @@
 					const struct pci_device_id *ent)
 {
 	struct pcie_service_card *card;
+	struct mwifiex_private *priv;
+	struct pci_dev *pdev_host;
 	int ret;
 
 	pr_debug("info: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
@@ -267,6 +269,14 @@
 		return -1;
 	}
 
+	priv = mwifiex_get_priv(card->adapter, MWIFIEX_BSS_ROLE_STA);
+	pdev_host = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0720, NULL);
+	if (!pdev_host)
+		pdev_host = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0733, NULL);
+	if (pdev_host) {
+		priv->is_edge_gateway = true;
+		pci_dev_put(pdev_host);
+	}
 	return 0;
 }
 
@@ -377,6 +387,8 @@
 	clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
 	clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
 	mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__);
+
+	card->pci_reset_ongoing = true;
 }
 
 /*
@@ -405,6 +417,8 @@
 		dev_err(&pdev->dev, "reinit failed: %d\n", ret);
 	else
 		mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__);
+
+	card->pci_reset_ongoing = false;
 }
 
 static const struct pci_error_handlers mwifiex_pcie_err_handler = {
@@ -687,8 +701,11 @@
 		skb_put(skb, MAX_EVENT_SIZE);
 
 		if (mwifiex_map_pci_memory(adapter, skb, MAX_EVENT_SIZE,
-					   PCI_DMA_FROMDEVICE))
+					   PCI_DMA_FROMDEVICE)) {
+			kfree_skb(skb);
+			kfree(card->evtbd_ring_vbase);
 			return -1;
+		}
 
 		buf_pa = MWIFIEX_SKB_DMA_ADDR(skb);
 
@@ -1029,8 +1046,10 @@
 	}
 	skb_put(skb, MWIFIEX_UPLD_SIZE);
 	if (mwifiex_map_pci_memory(adapter, skb, MWIFIEX_UPLD_SIZE,
-				   PCI_DMA_FROMDEVICE))
+				   PCI_DMA_FROMDEVICE)) {
+		kfree_skb(skb);
 		return -1;
+	}
 
 	card->cmdrsp_buf = skb;
 
@@ -2990,7 +3009,19 @@
 	int ret;
 	u32 fw_status;
 
-	cancel_work_sync(&card->work);
+	/* Perform the cancel_work_sync() only when we're not resetting
+	 * the card. It's because that function never returns if we're
+	 * in reset path. If we're here when resetting the card, it means
+	 * that we failed to reset the card (reset failure path).
+	 */
+	if (!card->pci_reset_ongoing) {
+		mwifiex_dbg(adapter, MSG, "performing cancel_work_sync()...\n");
+		cancel_work_sync(&card->work);
+		mwifiex_dbg(adapter, MSG, "cancel_work_sync() done\n");
+	} else {
+		mwifiex_dbg(adapter, MSG,
+			    "skipped cancel_work_sync() because we're in card reset failure path\n");
+	}
 
 	ret = mwifiex_read_reg(adapter, reg->fw_status, &fw_status);
 	if (fw_status == FIRMWARE_READY_PCIE) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/pcie.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/pcie.h
@@ -391,6 +391,8 @@
 	struct mwifiex_msix_context share_irq_ctx;
 	struct work_struct work;
 	unsigned long work_flags;
+
+	bool pci_reset_ongoing;
 };
 
 static inline int
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/scan.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/scan.c
@@ -1891,7 +1891,7 @@
 					    chan, CFG80211_BSS_FTYPE_UNKNOWN,
 					    bssid, timestamp,
 					    cap_info_bitmap, beacon_period,
-					    ie_buf, ie_len, rssi, GFP_KERNEL);
+					    ie_buf, ie_len, rssi, GFP_ATOMIC);
 			if (bss) {
 				bss_priv = (struct mwifiex_bss_priv *)bss->priv;
 				bss_priv->band = band;
@@ -2886,6 +2886,13 @@
 			vs_param_set->header.len =
 				cpu_to_le16((((u16) priv->vs_ie[id].ie[1])
 				& 0x00FF) + 2);
+			if (le16_to_cpu(vs_param_set->header.len) >
+				MWIFIEX_MAX_VSIE_LEN) {
+				mwifiex_dbg(priv->adapter, ERROR,
+					    "Invalid param length!\n");
+				break;
+			}
+
 			memcpy(vs_param_set->ie, priv->vs_ie[id].ie,
 			       le16_to_cpu(vs_param_set->header.len));
 			*buffer += le16_to_cpu(vs_param_set->header.len) +
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/sdio.c
@@ -444,6 +444,9 @@
 		return 0;
 	}
 
+	if (!adapter->is_up)
+		return -EBUSY;
+
 	mwifiex_enable_wake(adapter);
 
 	/* Enable the Host Sleep */
@@ -1993,6 +1996,8 @@
 		kfree(card->mpa_rx.buf);
 		card->mpa_tx.buf_size = 0;
 		card->mpa_rx.buf_size = 0;
+		card->mpa_tx.buf = NULL;
+		card->mpa_rx.buf = NULL;
 	}
 
 	return ret;
@@ -2220,22 +2225,30 @@
 	struct sdio_func *func = card->func;
 	int ret;
 
+	/* Prepare the adapter for the reset. */
 	mwifiex_shutdown_sw(adapter);
+	clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
+	clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
 
-	/* power cycle the adapter */
+	/* Run a HW reset of the SDIO interface. */
 	sdio_claim_host(func);
-	mmc_hw_reset(func->card->host);
+	ret = mmc_hw_reset(func->card->host);
 	sdio_release_host(func);
 
-	/* Previous save_adapter won't be valid after this. We will cancel
-	 * pending work requests.
-	 */
-	clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
-	clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
-
-	ret = mwifiex_reinit_sw(adapter);
-	if (ret)
-		dev_err(&func->dev, "reinit failed: %d\n", ret);
+	switch (ret) {
+	case 1:
+		dev_dbg(&func->dev, "SDIO HW reset asynchronous\n");
+		complete_all(adapter->fw_done);
+		break;
+	case 0:
+		ret = mwifiex_reinit_sw(adapter);
+		if (ret)
+			dev_err(&func->dev, "reinit failed: %d\n", ret);
+		break;
+	default:
+		dev_err(&func->dev, "SDIO HW reset failed: %d\n", ret);
+		break;
+	}
 }
 
 /* This function read/write firmware */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/sdio.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/sdio.h
@@ -36,9 +36,9 @@
 #define SD8897_DEFAULT_FW_NAME "mrvl/sd8897_uapsta.bin"
 #define SD8887_DEFAULT_FW_NAME "mrvl/sd8887_uapsta.bin"
 #define SD8801_DEFAULT_FW_NAME "mrvl/sd8801_uapsta.bin"
-#define SD8977_DEFAULT_FW_NAME "mrvl/sd8977_uapsta.bin"
+#define SD8977_DEFAULT_FW_NAME "mrvl/sdsd8977_combo_v2.bin"
 #define SD8987_DEFAULT_FW_NAME "mrvl/sd8987_uapsta.bin"
-#define SD8997_DEFAULT_FW_NAME "mrvl/sd8997_uapsta.bin"
+#define SD8997_DEFAULT_FW_NAME "mrvl/sdsd8997_combo_v4.bin"
 
 #define BLOCK_MODE	1
 #define BYTE_MODE	0
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -424,6 +424,31 @@
 	return 0;
 }
 
+static int mwifiex_cmd_802_11_led_cfg(struct mwifiex_private *priv,
+				      struct host_cmd_ds_command *cmd,
+				      u16 cmd_action,
+				      struct mwifiex_led_param *ledcfg_param)
+{
+	struct host_cmd_ds_802_11_led_control *led_cfg = &cmd->params.led_cfg;
+	struct mwifiex_ie_types_led_param *led_tlv;
+	u8 *pos;
+
+	cmd->command = cpu_to_le16(HostCmd_CMD_802_11_LED_CONTROL);
+	cmd->size = cpu_to_le16(S_DS_GEN);
+	le16_add_cpu(&cmd->size, sizeof(struct host_cmd_ds_802_11_led_control));
+
+	led_cfg->action = cpu_to_le16(cmd_action);
+	led_cfg->num_led = cpu_to_le16(MWIFIEX_LED_MAX);
+
+	pos = (u8 *)led_cfg + sizeof(struct host_cmd_ds_802_11_led_control);
+	led_tlv = (void *)pos;
+	led_tlv->header.type = cpu_to_le16(TLV_TYPE_LED_CONTROL);
+	led_tlv->header.len = cpu_to_le16(sizeof(struct mwifiex_led_param));
+	memcpy(&led_tlv->led_cfg, ledcfg_param, sizeof(struct mwifiex_led_param));
+	le16_add_cpu(&cmd->size, sizeof(struct mwifiex_ie_types_led_param));
+	return 0;
+}
+
 /*
  * This function prepares command to set/get MAC address.
  *
@@ -1999,6 +2024,10 @@
 		ret = mwifiex_cmd_802_11_hs_cfg(priv, cmd_ptr, cmd_action,
 				(struct mwifiex_hs_config_param *) data_buf);
 		break;
+	case HostCmd_CMD_802_11_LED_CONTROL:
+		ret = mwifiex_cmd_802_11_led_cfg(priv, cmd_ptr, cmd_action,
+						 data_buf);
+		break;
 	case HostCmd_CMD_802_11_SCAN:
 		ret = mwifiex_cmd_802_11_scan(cmd_ptr, data_buf);
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
@@ -580,6 +580,11 @@
 {
 	struct host_cmd_ds_802_11_key_material *key =
 						&resp->params.key_material;
+	int len;
+
+	len = le16_to_cpu(key->key_param_set.key_len);
+	if (len > sizeof(key->key_param_set.key))
+		return -EINVAL;
 
 	if (le16_to_cpu(key->action) == HostCmd_ACT_GEN_SET) {
 		if ((le16_to_cpu(key->key_param_set.key_info) & KEY_MCAST)) {
@@ -593,9 +598,8 @@
 
 	memset(priv->aes_key.key_param_set.key, 0,
 	       sizeof(key->key_param_set.key));
-	priv->aes_key.key_param_set.key_len = key->key_param_set.key_len;
-	memcpy(priv->aes_key.key_param_set.key, key->key_param_set.key,
-	       le16_to_cpu(priv->aes_key.key_param_set.key_len));
+	priv->aes_key.key_param_set.key_len = cpu_to_le16(len);
+	memcpy(priv->aes_key.key_param_set.key, key->key_param_set.key, len);
 
 	return 0;
 }
@@ -610,9 +614,14 @@
 					      struct host_cmd_ds_command *resp)
 {
 	struct host_cmd_ds_802_11_key_material_v2 *key_v2;
-	__le16 len;
+	int len;
 
 	key_v2 = &resp->params.key_material_v2;
+
+	len = le16_to_cpu(key_v2->key_param_set.key_params.aes.key_len);
+	if (len > sizeof(key_v2->key_param_set.key_params.aes.key))
+		return -EINVAL;
+
 	if (le16_to_cpu(key_v2->action) == HostCmd_ACT_GEN_SET) {
 		if ((le16_to_cpu(key_v2->key_param_set.key_info) & KEY_MCAST)) {
 			mwifiex_dbg(priv->adapter, INFO, "info: key: GTK is set\n");
@@ -626,12 +635,11 @@
 		return 0;
 
 	memset(priv->aes_key_v2.key_param_set.key_params.aes.key, 0,
-	       WLAN_KEY_LEN_CCMP);
+	       sizeof(key_v2->key_param_set.key_params.aes.key));
 	priv->aes_key_v2.key_param_set.key_params.aes.key_len =
-				key_v2->key_param_set.key_params.aes.key_len;
-	len = priv->aes_key_v2.key_param_set.key_params.aes.key_len;
+				cpu_to_le16(len);
 	memcpy(priv->aes_key_v2.key_param_set.key_params.aes.key,
-	       key_v2->key_param_set.key_params.aes.key, le16_to_cpu(len));
+	       key_v2->key_param_set.key_params.aes.key, len);
 
 	return 0;
 }
@@ -1400,6 +1408,8 @@
 	case HostCmd_CMD_ROBUST_COEX:
 		ret = mwifiex_ret_robust_coex(priv, resp, data_buf);
 		break;
+	case HostCmd_CMD_802_11_LED_CONTROL:
+		break;
 	case HostCmd_CMD_GTK_REKEY_OFFLOAD_CFG:
 		break;
 	case HostCmd_CMD_CHAN_REGION_CFG:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
@@ -229,6 +229,14 @@
 			    "11D: skip setting domain info in FW\n");
 		return 0;
 	}
+
+	if (country_ie_len >
+	    (IEEE80211_COUNTRY_STRING_LEN + MWIFIEX_MAX_TRIPLET_802_11D)) {
+		rcu_read_unlock();
+		mwifiex_dbg(priv->adapter, ERROR,
+			    "11D: country_ie_len overflow!, deauth AP\n");
+		return -EINVAL;
+	}
 	memcpy(priv->adapter->country_code, &country_ie[2], 2);
 
 	domain_info->country_code[0] = country_ie[2];
@@ -272,8 +280,9 @@
 	priv->scan_block = false;
 
 	if (bss) {
-		if (adapter->region_code == 0x00)
-			mwifiex_process_country_ie(priv, bss);
+		if (adapter->region_code == 0x00 &&
+		    mwifiex_process_country_ie(priv, bss))
+			return -EINVAL;
 
 		/* Allocate and fill new bss descriptor */
 		bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor),
@@ -560,6 +569,24 @@
 }
 EXPORT_SYMBOL_GPL(mwifiex_enable_hs);
 
+int mwifiex_set_led(struct mwifiex_adapter *adapter, int on)
+{
+	struct mwifiex_private *priv;
+	struct mwifiex_led_param ledcfg;
+
+	priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA);
+	if (!priv->is_edge_gateway)
+		return -ENODEV;
+
+	memset(&ledcfg, 0, sizeof(struct mwifiex_led_param));
+	ledcfg.on = cpu_to_le16(on);
+
+	return mwifiex_send_cmd(priv,
+				HostCmd_CMD_802_11_LED_CONTROL,
+				HostCmd_ACT_GEN_SET, 0,
+				&ledcfg, true);
+}
+
 /*
  * IOCTL request handler to get BSS information.
  *
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/tdls.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/tdls.c
@@ -894,7 +894,7 @@
 	u8 *peer, *pos, *end;
 	u8 i, action, basic;
 	u16 cap = 0;
-	int ie_len = 0;
+	int ies_len = 0;
 
 	if (len < (sizeof(struct ethhdr) + 3))
 		return;
@@ -916,7 +916,7 @@
 		pos = buf + sizeof(struct ethhdr) + 4;
 		/* payload 1+ category 1 + action 1 + dialog 1 */
 		cap = get_unaligned_le16(pos);
-		ie_len = len - sizeof(struct ethhdr) - TDLS_REQ_FIX_LEN;
+		ies_len = len - sizeof(struct ethhdr) - TDLS_REQ_FIX_LEN;
 		pos += 2;
 		break;
 
@@ -926,7 +926,7 @@
 		/* payload 1+ category 1 + action 1 + dialog 1 + status code 2*/
 		pos = buf + sizeof(struct ethhdr) + 6;
 		cap = get_unaligned_le16(pos);
-		ie_len = len - sizeof(struct ethhdr) - TDLS_RESP_FIX_LEN;
+		ies_len = len - sizeof(struct ethhdr) - TDLS_RESP_FIX_LEN;
 		pos += 2;
 		break;
 
@@ -934,7 +934,7 @@
 		if (len < (sizeof(struct ethhdr) + TDLS_CONFIRM_FIX_LEN))
 			return;
 		pos = buf + sizeof(struct ethhdr) + TDLS_CONFIRM_FIX_LEN;
-		ie_len = len - sizeof(struct ethhdr) - TDLS_CONFIRM_FIX_LEN;
+		ies_len = len - sizeof(struct ethhdr) - TDLS_CONFIRM_FIX_LEN;
 		break;
 	default:
 		mwifiex_dbg(priv->adapter, ERROR, "Unknown TDLS frame type.\n");
@@ -947,65 +947,104 @@
 
 	sta_ptr->tdls_cap.capab = cpu_to_le16(cap);
 
-	for (end = pos + ie_len; pos + 1 < end; pos += 2 + pos[1]) {
-		if (pos + 2 + pos[1] > end)
+	for (end = pos + ies_len; pos + 1 < end; pos += 2 + pos[1]) {
+		u8 ie_len = pos[1];
+
+		if (pos + 2 + ie_len > end)
 			break;
 
 		switch (*pos) {
 		case WLAN_EID_SUPP_RATES:
-			sta_ptr->tdls_cap.rates_len = pos[1];
-			for (i = 0; i < pos[1]; i++)
+			if (ie_len > sizeof(sta_ptr->tdls_cap.rates))
+				return;
+			sta_ptr->tdls_cap.rates_len = ie_len;
+			for (i = 0; i < ie_len; i++)
 				sta_ptr->tdls_cap.rates[i] = pos[i + 2];
 			break;
 
 		case WLAN_EID_EXT_SUPP_RATES:
+			if (ie_len > sizeof(sta_ptr->tdls_cap.rates))
+				return;
 			basic = sta_ptr->tdls_cap.rates_len;
-			for (i = 0; i < pos[1]; i++)
+			if (ie_len > sizeof(sta_ptr->tdls_cap.rates) - basic)
+				return;
+			for (i = 0; i < ie_len; i++)
 				sta_ptr->tdls_cap.rates[basic + i] = pos[i + 2];
-			sta_ptr->tdls_cap.rates_len += pos[1];
+			sta_ptr->tdls_cap.rates_len += ie_len;
 			break;
 		case WLAN_EID_HT_CAPABILITY:
-			memcpy((u8 *)&sta_ptr->tdls_cap.ht_capb, pos,
+			if (ie_len != sizeof(struct ieee80211_ht_cap))
+				return;
+			/* copy the ie's value into ht_capb*/
+			memcpy((u8 *)&sta_ptr->tdls_cap.ht_capb, pos + 2,
 			       sizeof(struct ieee80211_ht_cap));
 			sta_ptr->is_11n_enabled = 1;
 			break;
 		case WLAN_EID_HT_OPERATION:
-			memcpy(&sta_ptr->tdls_cap.ht_oper, pos,
+			if (ie_len != sizeof(struct ieee80211_ht_operation))
+				return;
+			/* copy the ie's value into ht_oper*/
+			memcpy(&sta_ptr->tdls_cap.ht_oper, pos + 2,
 			       sizeof(struct ieee80211_ht_operation));
 			break;
 		case WLAN_EID_BSS_COEX_2040:
+			if (ie_len != sizeof(pos[2]))
+				return;
 			sta_ptr->tdls_cap.coex_2040 = pos[2];
 			break;
 		case WLAN_EID_EXT_CAPABILITY:
+			if (ie_len < sizeof(struct ieee_types_header))
+				return;
+			if (ie_len > 8)
+				return;
 			memcpy((u8 *)&sta_ptr->tdls_cap.extcap, pos,
 			       sizeof(struct ieee_types_header) +
-			       min_t(u8, pos[1], 8));
+			       min_t(u8, ie_len, 8));
 			break;
 		case WLAN_EID_RSN:
+			if (ie_len < sizeof(struct ieee_types_header))
+				return;
+			if (ie_len > IEEE_MAX_IE_SIZE -
+			    sizeof(struct ieee_types_header))
+				return;
 			memcpy((u8 *)&sta_ptr->tdls_cap.rsn_ie, pos,
 			       sizeof(struct ieee_types_header) +
-			       min_t(u8, pos[1], IEEE_MAX_IE_SIZE -
+			       min_t(u8, ie_len, IEEE_MAX_IE_SIZE -
 				     sizeof(struct ieee_types_header)));
 			break;
 		case WLAN_EID_QOS_CAPA:
+			if (ie_len != sizeof(pos[2]))
+				return;
 			sta_ptr->tdls_cap.qos_info = pos[2];
 			break;
 		case WLAN_EID_VHT_OPERATION:
-			if (priv->adapter->is_hw_11ac_capable)
-				memcpy(&sta_ptr->tdls_cap.vhtoper, pos,
+			if (priv->adapter->is_hw_11ac_capable) {
+				if (ie_len !=
+				    sizeof(struct ieee80211_vht_operation))
+					return;
+				/* copy the ie's value into vhtoper*/
+				memcpy(&sta_ptr->tdls_cap.vhtoper, pos + 2,
 				       sizeof(struct ieee80211_vht_operation));
+			}
 			break;
 		case WLAN_EID_VHT_CAPABILITY:
 			if (priv->adapter->is_hw_11ac_capable) {
-				memcpy((u8 *)&sta_ptr->tdls_cap.vhtcap, pos,
+				if (ie_len != sizeof(struct ieee80211_vht_cap))
+					return;
+				/* copy the ie's value into vhtcap*/
+				memcpy((u8 *)&sta_ptr->tdls_cap.vhtcap, pos + 2,
 				       sizeof(struct ieee80211_vht_cap));
 				sta_ptr->is_11ac_enabled = 1;
 			}
 			break;
 		case WLAN_EID_AID:
-			if (priv->adapter->is_hw_11ac_capable)
+			if (priv->adapter->is_hw_11ac_capable) {
+				if (ie_len != sizeof(u16))
+					return;
 				sta_ptr->tdls_cap.aid =
 					get_unaligned_le16((pos + 2));
+			}
+			break;
 		default:
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/usb.c
@@ -1353,7 +1353,8 @@
 				skb_dequeue(&port->tx_aggr.aggr_list)))
 				mwifiex_write_data_complete(adapter, skb_tmp,
 							    0, -1);
-		del_timer_sync(&port->tx_aggr.timer_cnxt.hold_timer);
+		if (port->tx_aggr.timer_cnxt.hold_timer.function)
+			del_timer_sync(&port->tx_aggr.timer_cnxt.hold_timer);
 		port->tx_aggr.timer_cnxt.is_hold_timer_set = false;
 		port->tx_aggr.timer_cnxt.hold_tmo_msecs = 0;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwifiex/wmm.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwifiex/wmm.c
@@ -970,6 +970,10 @@
 				    "WMM Parameter Set Count: %d\n",
 				    wmm_param_ie->qos_info_bitmap & mask);
 
+			if (wmm_param_ie->vend_hdr.len + 2 >
+				sizeof(struct ieee_types_wmm_parameter))
+				break;
+
 			memcpy((u8 *) &priv->curr_bss_params.bss_descriptor.
 			       wmm_ie, wmm_param_ie,
 			       wmm_param_ie->vend_hdr.len + 2);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/marvell/mwl8k.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/marvell/mwl8k.c
@@ -5520,7 +5520,7 @@
 			rc = -EBUSY;
 			break;
 		}
-		ieee80211_start_tx_ba_cb_irqsafe(vif, addr, tid);
+		rc = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/agg-rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/agg-rx.c
@@ -143,8 +143,8 @@
 	struct ieee80211_sta *sta;
 	struct mt76_rx_tid *tid;
 	bool sn_less;
-	u16 seqno, head, size;
-	u8 ackp, idx;
+	u16 seqno, head, size, idx;
+	u8 ackp;
 
 	__skb_queue_tail(frames, skb);
 
@@ -230,7 +230,7 @@
 }
 
 int mt76_rx_aggr_start(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tidno,
-		       u16 ssn, u8 size)
+		       u16 ssn, u16 size)
 {
 	struct mt76_rx_tid *tid;
 
@@ -254,7 +254,7 @@
 
 static void mt76_rx_aggr_shutdown(struct mt76_dev *dev, struct mt76_rx_tid *tid)
 {
-	u8 size = tid->size;
+	u16 size = tid->size;
 	int i;
 
 	cancel_delayed_work(&tid->reorder_work);
@@ -268,6 +268,7 @@
 		if (!skb)
 			continue;
 
+		tid->reorder_buf[i] = NULL;
 		tid->nframes--;
 		dev_kfree_skb(skb);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/dma.c
@@ -261,10 +261,13 @@
 	struct mt76_queue_buf buf;
 	dma_addr_t addr;
 
+	if (q->queued + 1 >= q->ndesc - 1)
+		goto error;
+
 	addr = dma_map_single(dev->dev, skb->data, skb->len,
 			      DMA_TO_DEVICE);
 	if (unlikely(dma_mapping_error(dev->dev, addr)))
-		return -ENOMEM;
+		goto error;
 
 	buf.addr = addr;
 	buf.len = skb->len;
@@ -275,6 +278,10 @@
 	spin_unlock_bh(&q->lock);
 
 	return 0;
+
+error:
+	dev_kfree_skb(skb);
+	return -ENOMEM;
 }
 
 static int
@@ -445,19 +452,27 @@
 mt76_add_fragment(struct mt76_dev *dev, struct mt76_queue *q, void *data,
 		  int len, bool more)
 {
-	struct page *page = virt_to_head_page(data);
-	int offset = data - page_address(page);
 	struct sk_buff *skb = q->rx_head;
+	struct skb_shared_info *shinfo = skb_shinfo(skb);
+	int nr_frags = shinfo->nr_frags;
 
-	offset += q->buf_offset;
-	skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset, len,
-			q->buf_size);
+	if (nr_frags < ARRAY_SIZE(shinfo->frags)) {
+		struct page *page = virt_to_head_page(data);
+		int offset = data - page_address(page) + q->buf_offset;
+
+		skb_add_rx_frag(skb, nr_frags, page, offset, len, q->buf_size);
+	} else {
+		skb_free_frag(data);
+	}
 
 	if (more)
 		return;
 
 	q->rx_head = NULL;
-	dev->drv->rx_skb(dev, q - dev->q_rx, skb);
+	if (nr_frags < ARRAY_SIZE(shinfo->frags))
+		dev->drv->rx_skb(dev, q - dev->q_rx, skb);
+	else
+		dev_kfree_skb(skb);
 }
 
 static int
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mac80211.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mac80211.c
@@ -105,7 +105,15 @@
 		dev->led_al = of_property_read_bool(np, "led-active-low");
 	}
 
-	return devm_led_classdev_register(dev->dev, &dev->led_cdev);
+	return led_classdev_register(dev->dev, &dev->led_cdev);
+}
+
+static void mt76_led_cleanup(struct mt76_dev *dev)
+{
+	if (!dev->led_cdev.brightness_set && !dev->led_cdev.blink_set)
+		return;
+
+	led_classdev_unregister(&dev->led_cdev);
 }
 
 static void mt76_init_stream_cap(struct mt76_dev *dev,
@@ -360,6 +368,8 @@
 {
 	struct ieee80211_hw *hw = dev->hw;
 
+	if (IS_ENABLED(CONFIG_MT76_LEDS))
+		mt76_led_cleanup(dev);
 	mt76_tx_status_check(dev, NULL, true);
 	ieee80211_unregister_hw(hw);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt76.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -240,8 +240,8 @@
 	struct delayed_work reorder_work;
 
 	u16 head;
-	u8 size;
-	u8 nframes;
+	u16 size;
+	u16 nframes;
 
 	u8 started:1, stopped:1, timer_pending:1;
 
@@ -367,8 +367,8 @@
 
 enum mt76u_out_ep {
 	MT_EP_OUT_INBAND_CMD,
-	MT_EP_OUT_AC_BK,
 	MT_EP_OUT_AC_BE,
+	MT_EP_OUT_AC_BK,
 	MT_EP_OUT_AC_VI,
 	MT_EP_OUT_AC_VO,
 	MT_EP_OUT_HCCA,
@@ -723,7 +723,7 @@
 void mt76_set_stream_caps(struct mt76_dev *dev, bool vht);
 
 int mt76_rx_aggr_start(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tid,
-		       u16 ssn, u8 size);
+		       u16 ssn, u16 size);
 void mt76_rx_aggr_stop(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tid);
 
 void mt76_wcid_key_setup(struct mt76_dev *dev, struct mt76_wcid *wcid,
@@ -799,7 +799,8 @@
 mt76u_bulk_msg(struct mt76_dev *dev, void *data, int len, int *actual_len,
 	       int timeout)
 {
-	struct usb_device *udev = to_usb_device(dev->dev);
+	struct usb_interface *uintf = to_usb_interface(dev->dev);
+	struct usb_device *udev = interface_to_usbdev(uintf);
 	struct mt76_usb *usb = &dev->usb;
 	unsigned int pipe;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
@@ -1032,8 +1032,10 @@
 		if (idx && (cur_rate->idx != info->status.rates[i].idx ||
 			    cur_rate->flags != info->status.rates[i].flags)) {
 			i++;
-			if (i == ARRAY_SIZE(info->status.rates))
+			if (i == ARRAY_SIZE(info->status.rates)) {
+				i--;
 				break;
+			}
 
 			info->status.rates[i] = *cur_rate;
 			info->status.rates[i].count = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt7603/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt7603/main.c
@@ -555,12 +555,14 @@
 	u16 ssn = params->ssn;
 	u8 ba_size = params->buf_size;
 	struct mt76_txq *mtxq;
+	int ret = 0;
 
 	if (!txq)
 		return -EINVAL;
 
 	mtxq = (struct mt76_txq *)txq->drv_priv;
 
+	mutex_lock(&dev->mt76.mutex);
 	switch (action) {
 	case IEEE80211_AMPDU_RX_START:
 		mt76_rx_aggr_start(&dev->mt76, &msta->wcid, tid, ssn,
@@ -582,7 +584,7 @@
 		break;
 	case IEEE80211_AMPDU_TX_START:
 		mtxq->agg_ssn = IEEE80211_SN_TO_SEQ(ssn);
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 		mtxq->aggr = false;
@@ -590,8 +592,9 @@
 		ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
 		break;
 	}
+	mutex_unlock(&dev->mt76.mutex);
 
-	return 0;
+	return ret;
 }
 
 static void
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
@@ -914,8 +914,10 @@
 		if (idx && (cur_rate->idx != info->status.rates[i].idx ||
 			    cur_rate->flags != info->status.rates[i].flags)) {
 			i++;
-			if (i == ARRAY_SIZE(info->status.rates))
+			if (i == ARRAY_SIZE(info->status.rates)) {
+				i--;
 				break;
+			}
 
 			info->status.rates[i] = *cur_rate;
 			info->status.rates[i].count = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt7615/main.c
@@ -449,12 +449,14 @@
 	u16 tid = params->tid;
 	u16 ssn = params->ssn;
 	struct mt76_txq *mtxq;
+	int ret = 0;
 
 	if (!txq)
 		return -EINVAL;
 
 	mtxq = (struct mt76_txq *)txq->drv_priv;
 
+	mutex_lock(&dev->mt76.mutex);
 	switch (action) {
 	case IEEE80211_AMPDU_RX_START:
 		mt76_rx_aggr_start(&dev->mt76, &msta->wcid, tid, ssn,
@@ -477,7 +479,7 @@
 		break;
 	case IEEE80211_AMPDU_TX_START:
 		mtxq->agg_ssn = IEEE80211_SN_TO_SEQ(ssn);
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 		mtxq->aggr = false;
@@ -485,8 +487,9 @@
 		ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
 		break;
 	}
+	mutex_unlock(&dev->mt76.mutex);
 
-	return 0;
+	return ret;
 }
 
 const struct ieee80211_ops mt7615_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
@@ -119,8 +119,10 @@
 	struct mt7615_mcu_rxd *rxd = (struct mt7615_mcu_rxd *)skb->data;
 	int ret = 0;
 
-	if (seq != rxd->seq)
-		return -EAGAIN;
+	if (seq != rxd->seq) {
+		ret = -EAGAIN;
+		goto out;
+	}
 
 	switch (cmd) {
 	case -MCU_CMD_PATCH_SEM_CONTROL:
@@ -134,6 +136,7 @@
 	default:
 		break;
 	}
+out:
 	dev_kfree_skb(skb);
 
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
@@ -226,7 +226,7 @@
 	u32 mac_rev;
 	int ret;
 
-	mdev = mt76_alloc_device(&usb_dev->dev, sizeof(*dev), &mt76x0u_ops,
+	mdev = mt76_alloc_device(&usb_intf->dev, sizeof(*dev), &mt76x0u_ops,
 				 &drv_ops);
 	if (!mdev)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt76x02.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt76x02.h
@@ -212,6 +212,7 @@
 static inline bool is_mt76x2(struct mt76x02_dev *dev)
 {
 	return mt76_chip(&dev->mt76) == 0x7612 ||
+	       mt76_chip(&dev->mt76) == 0x7632 ||
 	       mt76_chip(&dev->mt76) == 0x7662 ||
 	       mt76_chip(&dev->mt76) == 0x7602;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -365,12 +365,14 @@
 	u16 tid = params->tid;
 	u16 ssn = params->ssn;
 	struct mt76_txq *mtxq;
+	int ret = 0;
 
 	if (!txq)
 		return -EINVAL;
 
 	mtxq = (struct mt76_txq *)txq->drv_priv;
 
+	mutex_lock(&dev->mt76.mutex);
 	switch (action) {
 	case IEEE80211_AMPDU_RX_START:
 		mt76_rx_aggr_start(&dev->mt76, &msta->wcid, tid,
@@ -393,15 +395,16 @@
 		break;
 	case IEEE80211_AMPDU_TX_START:
 		mtxq->agg_ssn = IEEE80211_SN_TO_SEQ(ssn);
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 		mtxq->aggr = false;
 		ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
 		break;
 	}
+	mutex_unlock(&dev->mt76.mutex);
 
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(mt76x02_ampdu_action);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/mt76x2/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/mt76x2/usb.c
@@ -18,6 +18,7 @@
 	{ USB_DEVICE(0x7392, 0xb711) },	/* Edimax EW 7722 UAC */
 	{ USB_DEVICE(0x0846, 0x9053) },	/* Netgear A6210 */
 	{ USB_DEVICE(0x045e, 0x02e6) },	/* XBox One Wireless Adapter */
+	{ USB_DEVICE(0x045e, 0x02fe) },	/* XBox One Wireless Adapter */
 	{ },
 };
 
@@ -39,7 +40,7 @@
 	struct mt76_dev *mdev;
 	int err;
 
-	mdev = mt76_alloc_device(&udev->dev, sizeof(*dev), &mt76x2u_ops,
+	mdev = mt76_alloc_device(&intf->dev, sizeof(*dev), &mt76x2u_ops,
 				 &drv_ops);
 	if (!mdev)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt76/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt76/usb.c
@@ -20,7 +20,8 @@
 				  u8 req_type, u16 val, u16 offset,
 				  void *buf, size_t len)
 {
-	struct usb_device *udev = to_usb_device(dev->dev);
+	struct usb_interface *uintf = to_usb_interface(dev->dev);
+	struct usb_device *udev = interface_to_usbdev(uintf);
 	unsigned int pipe;
 	int i, ret;
 
@@ -235,7 +236,8 @@
 
 static bool mt76u_check_sg(struct mt76_dev *dev)
 {
-	struct usb_device *udev = to_usb_device(dev->dev);
+	struct usb_interface *uintf = to_usb_interface(dev->dev);
+	struct usb_device *udev = interface_to_usbdev(uintf);
 
 	return (!disable_usb_sg && udev->bus->sg_tablesize > 0 &&
 		(udev->bus->no_sg_constraint ||
@@ -370,7 +372,8 @@
 		    struct urb *urb, usb_complete_t complete_fn,
 		    void *context)
 {
-	struct usb_device *udev = to_usb_device(dev->dev);
+	struct usb_interface *uintf = to_usb_interface(dev->dev);
+	struct usb_device *udev = interface_to_usbdev(uintf);
 	unsigned int pipe;
 
 	if (dir == USB_DIR_IN)
@@ -952,6 +955,7 @@
 		.rd_rp = mt76u_rd_rp,
 		.type = MT76_BUS_USB,
 	};
+	struct usb_device *udev = interface_to_usbdev(intf);
 	struct mt76_usb *usb = &dev->usb;
 
 	tasklet_init(&usb->rx_tasklet, mt76u_rx_tasklet, (unsigned long)dev);
@@ -965,6 +969,8 @@
 	dev->bus = &mt76u_ops;
 	dev->queue_ops = &usb_queue_ops;
 
+	dev_set_drvdata(&udev->dev, dev);
+
 	usb->sg_en = mt76u_check_sg(dev);
 
 	return mt76u_set_endpoints(intf, usb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt7601u/dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt7601u/dma.c
@@ -152,8 +152,7 @@
 
 	if (new_p) {
 		/* we have one extra ref from the allocator */
-		__free_pages(e->p, MT_RX_ORDER);
-
+		put_page(e->p);
 		e->p = new_p;
 	}
 }
@@ -310,7 +309,6 @@
 	}
 
 	e = &q->e[q->end];
-	e->skb = skb;
 	usb_fill_bulk_urb(e->urb, usb_dev, snd_pipe, skb->data, skb->len,
 			  mt7601u_complete_tx, q);
 	ret = usb_submit_urb(e->urb, GFP_ATOMIC);
@@ -328,6 +326,7 @@
 
 	q->end = (q->end + 1) % q->entries;
 	q->used++;
+	e->skb = skb;
 
 	if (q->used >= q->entries)
 		ieee80211_stop_queue(dev->hw, skb_get_queue_mapping(skb));
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt7601u/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt7601u/main.c
@@ -372,8 +372,7 @@
 		break;
 	case IEEE80211_AMPDU_TX_START:
 		msta->agg_ssn[tid] = ssn << 4;
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-		break;
+		return IEEE80211_AMPDU_TX_START_IMMEDIATE;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 		ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/mediatek/mt7601u/phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/mediatek/mt7601u/phy.c
@@ -213,7 +213,7 @@
 
 	do {
 		val = mt7601u_bbp_rr(dev, MT_BBP_REG_VERSION);
-		if (val && ~val)
+		if (val && val != 0xff)
 			break;
 	} while (--i);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/quantenna/qtnfmac/commands.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/quantenna/qtnfmac/commands.c
@@ -83,6 +83,7 @@
 	struct qlink_cmd *cmd;
 	struct qlink_resp *resp = NULL;
 	struct sk_buff *resp_skb = NULL;
+	int resp_res = 0;
 	u16 cmd_id;
 	u8 mac_id;
 	u8 vif_id;
@@ -113,6 +114,7 @@
 	}
 
 	resp = (struct qlink_resp *)resp_skb->data;
+	resp_res = le16_to_cpu(resp->result);
 	ret = qtnf_cmd_check_reply_header(resp, cmd_id, mac_id, vif_id,
 					  const_resp_size);
 	if (ret)
@@ -128,8 +130,8 @@
 	else
 		consume_skb(resp_skb);
 
-	if (!ret && resp)
-		return qtnf_cmd_resp_result_decode(le16_to_cpu(resp->result));
+	if (!ret)
+		return qtnf_cmd_resp_result_decode(resp_res);
 
 	pr_warn("VIF%u.%u: cmd 0x%.4X failed: %d\n",
 		mac_id, vif_id, cmd_id, ret);
@@ -832,6 +834,7 @@
 	default:
 		pr_warn("VIF%u.%u: unsupported iftype %d\n", vif->mac->macid,
 			vif->vifid, vif->wdev.iftype);
+		dev_kfree_skb(cmd_skb);
 		ret = -EINVAL;
 		goto out;
 	}
@@ -1994,6 +1997,7 @@
 		break;
 	default:
 		pr_err("unsupported iftype %d\n", vif->wdev.iftype);
+		dev_kfree_skb(cmd_skb);
 		ret = -EINVAL;
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -171,8 +171,9 @@
 		return -EPROTO;
 	}
 
-	pr_debug("VIF%u.%u: BSSID:%pM status:%u\n",
-		 vif->mac->macid, vif->vifid, join_info->bssid, status);
+	pr_debug("VIF%u.%u: BSSID:%pM chan:%u status:%u\n",
+		 vif->mac->macid, vif->vifid, join_info->bssid,
+		 le16_to_cpu(join_info->chan.chan.center_freq), status);
 
 	if (status != WLAN_STATUS_SUCCESS)
 		goto done;
@@ -181,7 +182,7 @@
 	if (!cfg80211_chandef_valid(&chandef)) {
 		pr_warn("MAC%u.%u: bad channel freq=%u cf1=%u cf2=%u bw=%u\n",
 			vif->mac->macid, vif->vifid,
-			chandef.chan->center_freq,
+			chandef.chan ? chandef.chan->center_freq : 0,
 			chandef.center_freq1,
 			chandef.center_freq2,
 			chandef.width);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c
@@ -130,6 +130,8 @@
 
 int qtnf_pcie_fw_boot_done(struct qtnf_bus *bus)
 {
+	struct qtnf_pcie_bus_priv *priv = get_bus_priv(bus);
+	char card_id[64];
 	int ret;
 
 	bus->fw_state = QTNF_FW_STATE_BOOT_DONE;
@@ -137,7 +139,9 @@
 	if (ret) {
 		pr_err("failed to attach core\n");
 	} else {
-		qtnf_debugfs_init(bus, DRV_NAME);
+		snprintf(card_id, sizeof(card_id), "%s:%s",
+			 DRV_NAME, pci_name(priv->pdev));
+		qtnf_debugfs_init(bus, card_id);
 		qtnf_debugfs_add_entry(bus, "mps", qtnf_dbg_mps_show);
 		qtnf_debugfs_add_entry(bus, "msi_enabled", qtnf_dbg_msi_show);
 		qtnf_debugfs_add_entry(bus, "shm_stats", qtnf_dbg_shm_stats);
@@ -295,19 +299,19 @@
 	sysctl_bar = qtnf_map_bar(pdev, QTN_SYSCTL_BAR);
 	if (IS_ERR(sysctl_bar)) {
 		pr_err("failed to map BAR%u\n", QTN_SYSCTL_BAR);
-		return ret;
+		return PTR_ERR(sysctl_bar);
 	}
 
 	dmareg_bar = qtnf_map_bar(pdev, QTN_DMA_BAR);
 	if (IS_ERR(dmareg_bar)) {
 		pr_err("failed to map BAR%u\n", QTN_DMA_BAR);
-		return ret;
+		return PTR_ERR(dmareg_bar);
 	}
 
 	epmem_bar = qtnf_map_bar(pdev, QTN_SHMEM_BAR);
 	if (IS_ERR(epmem_bar)) {
 		pr_err("failed to map BAR%u\n", QTN_SHMEM_BAR);
-		return ret;
+		return PTR_ERR(epmem_bar);
 	}
 
 	chipid = qtnf_chip_id_get(sysctl_bar);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5839,8 +5839,7 @@
 		rt2800_register_write(rt2x00dev, TX_TXBF_CFG_0, 0x8000fc21);
 		rt2800_register_write(rt2x00dev, TX_TXBF_CFG_3, 0x00009c40);
 	} else if (rt2x00_rt(rt2x00dev, RT5390) ||
-		   rt2x00_rt(rt2x00dev, RT5392) ||
-		   rt2x00_rt(rt2x00dev, RT6352)) {
+		   rt2x00_rt(rt2x00dev, RT5392)) {
 		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
 		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
 		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
@@ -5854,8 +5853,6 @@
 		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000401);
 		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0000);
 		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
-		rt2800_register_write(rt2x00dev, MIMO_PS_CFG, 0x00000002);
-		rt2800_register_write(rt2x00dev, TX_PIN_CFG, 0x00150F0F);
 		rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000);
 		rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0);
 		rt2800_register_write(rt2x00dev, TX1_BB_GAIN_ATTEN, 0x0);
@@ -10476,7 +10473,7 @@
 	 * when the hw reorders frames due to aggregation.
 	 */
 	if (sta_priv->wcid > WCID_END)
-		return 1;
+		return -ENOSPC;
 
 	switch (action) {
 	case IEEE80211_AMPDU_RX_START:
@@ -10489,7 +10486,7 @@
 		 */
 		break;
 	case IEEE80211_AMPDU_TX_START:
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+		ret = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
@@ -1187,6 +1187,79 @@
 
 struct rtl8xxxu_fileops;
 
+/*mlme related.*/
+enum wireless_mode {
+	WIRELESS_MODE_UNKNOWN = 0,
+	/* Sub-Element */
+	WIRELESS_MODE_B = BIT(0),
+	WIRELESS_MODE_G = BIT(1),
+	WIRELESS_MODE_A = BIT(2),
+	WIRELESS_MODE_N_24G = BIT(3),
+	WIRELESS_MODE_N_5G = BIT(4),
+	WIRELESS_AUTO = BIT(5),
+	WIRELESS_MODE_AC = BIT(6),
+	WIRELESS_MODE_MAX = 0x7F,
+};
+
+/* from rtlwifi/wifi.h */
+enum ratr_table_mode_new {
+	RATEID_IDX_BGN_40M_2SS = 0,
+	RATEID_IDX_BGN_40M_1SS = 1,
+	RATEID_IDX_BGN_20M_2SS_BN = 2,
+	RATEID_IDX_BGN_20M_1SS_BN = 3,
+	RATEID_IDX_GN_N2SS = 4,
+	RATEID_IDX_GN_N1SS = 5,
+	RATEID_IDX_BG = 6,
+	RATEID_IDX_G = 7,
+	RATEID_IDX_B = 8,
+	RATEID_IDX_VHT_2SS = 9,
+	RATEID_IDX_VHT_1SS = 10,
+	RATEID_IDX_MIX1 = 11,
+	RATEID_IDX_MIX2 = 12,
+	RATEID_IDX_VHT_3SS = 13,
+	RATEID_IDX_BGN_3SS = 14,
+};
+
+#define BT_INFO_8723B_1ANT_B_FTP		BIT(7)
+#define BT_INFO_8723B_1ANT_B_A2DP		BIT(6)
+#define BT_INFO_8723B_1ANT_B_HID		BIT(5)
+#define BT_INFO_8723B_1ANT_B_SCO_BUSY		BIT(4)
+#define BT_INFO_8723B_1ANT_B_ACL_BUSY		BIT(3)
+#define BT_INFO_8723B_1ANT_B_INQ_PAGE		BIT(2)
+#define BT_INFO_8723B_1ANT_B_SCO_ESCO		BIT(1)
+#define BT_INFO_8723B_1ANT_B_CONNECTION	BIT(0)
+
+enum _BT_8723B_1ANT_STATUS {
+	BT_8723B_1ANT_STATUS_NON_CONNECTED_IDLE      = 0x0,
+	BT_8723B_1ANT_STATUS_CONNECTED_IDLE          = 0x1,
+	BT_8723B_1ANT_STATUS_INQ_PAGE                = 0x2,
+	BT_8723B_1ANT_STATUS_ACL_BUSY                = 0x3,
+	BT_8723B_1ANT_STATUS_SCO_BUSY                = 0x4,
+	BT_8723B_1ANT_STATUS_ACL_SCO_BUSY            = 0x5,
+	BT_8723B_1ANT_STATUS_MAX
+};
+
+struct rtl8xxxu_btcoex {
+	u8      bt_status;
+	bool	bt_busy;
+	bool	has_sco;
+	bool	has_a2dp;
+	bool    has_hid;
+	bool    has_pan;
+	bool	hid_only;
+	bool	a2dp_only;
+	bool    c2h_bt_inquiry;
+};
+
+#define RTL8XXXU_RATR_STA_INIT 0
+#define RTL8XXXU_RATR_STA_HIGH 1
+#define RTL8XXXU_RATR_STA_MID  2
+#define RTL8XXXU_RATR_STA_LOW  3
+
+#define RTL8XXXU_NOISE_FLOOR_MIN	-100
+#define RTL8XXXU_SNR_THRESH_HIGH	50
+#define RTL8XXXU_SNR_THRESH_LOW	20
+
 struct rtl8xxxu_priv {
 	struct ieee80211_hw *hw;
 	struct usb_device *udev;
@@ -1291,6 +1364,17 @@
 	u8 pi_enabled:1;
 	u8 no_pape:1;
 	u8 int_buf[USB_INTR_CONTENT_LENGTH];
+	u8 rssi_level;
+	/*
+	 * Only one virtual interface permitted because only STA mode
+	 * is supported and no iface_combinations are provided.
+	 */
+	struct ieee80211_vif *vif;
+	struct delayed_work ra_watchdog;
+	struct work_struct c2hcmd_work;
+	struct sk_buff_head c2hcmd_queue;
+	spinlock_t c2hcmd_lock;
+	struct rtl8xxxu_btcoex bt_coex;
 };
 
 struct rtl8xxxu_rx_urb {
@@ -1326,7 +1410,7 @@
 	void (*set_tx_power) (struct rtl8xxxu_priv *priv, int channel,
 			      bool ht40);
 	void (*update_rate_mask) (struct rtl8xxxu_priv *priv,
-				  u32 ramask, int sgi);
+				  u32 ramask, u8 rateid, int sgi);
 	void (*report_connect) (struct rtl8xxxu_priv *priv,
 				u8 macid, bool connect);
 	void (*fill_txdesc) (struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
@@ -1341,6 +1425,7 @@
 	u8 has_s0s1:1;
 	u8 has_tx_report:1;
 	u8 gen2_thermal_meter:1;
+	u8 needs_full_init:1;
 	u32 adda_1t_init;
 	u32 adda_1t_path_on;
 	u32 adda_2t_path_on_a;
@@ -1411,9 +1496,9 @@
 void rtl8xxxu_gen1_usb_quirks(struct rtl8xxxu_priv *priv);
 void rtl8xxxu_gen2_usb_quirks(struct rtl8xxxu_priv *priv);
 void rtl8xxxu_update_rate_mask(struct rtl8xxxu_priv *priv,
-			       u32 ramask, int sgi);
+			       u32 ramask, u8 rateid, int sgi);
 void rtl8xxxu_gen2_update_rate_mask(struct rtl8xxxu_priv *priv,
-				    u32 ramask, int sgi);
+				    u32 ramask, u8 rateid, int sgi);
 void rtl8xxxu_gen1_report_connect(struct rtl8xxxu_priv *priv,
 				  u8 macid, bool connect);
 void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv,
@@ -1437,6 +1522,8 @@
 			     struct rtl8xxxu_txdesc32 *tx_desc32, bool sgi,
 			     bool short_preamble, bool ampdu_enable,
 			     u32 rts_rate);
+void rtl8723bu_set_ps_tdma(struct rtl8xxxu_priv *priv,
+			   u8 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5);
 
 extern struct rtl8xxxu_fileops rtl8192cu_fops;
 extern struct rtl8xxxu_fileops rtl8192eu_fops;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
@@ -1580,9 +1580,7 @@
 	/*
 	 * Software control, antenna at WiFi side
 	 */
-#ifdef NEED_PS_TDMA
 	rtl8723bu_set_ps_tdma(priv, 0x08, 0x00, 0x00, 0x00, 0x00);
-#endif
 
 	rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x55555555);
 	rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0x55555555);
@@ -1670,6 +1668,7 @@
 	.has_s0s1 = 1,
 	.has_tx_report = 1,
 	.gen2_thermal_meter = 1,
+	.needs_full_init = 1,
 	.adda_1t_init = 0x01c00014,
 	.adda_1t_path_on = 0x01c00014,
 	.adda_2t_path_on_a = 0x01c00014,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -3820,9 +3820,8 @@
 	rtl8xxxu_write8(priv, REG_RSV_CTRL, 0x0e);
 }
 
-#ifdef NEED_PS_TDMA
-static void rtl8723bu_set_ps_tdma(struct rtl8xxxu_priv *priv,
-				  u8 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5)
+void rtl8723bu_set_ps_tdma(struct rtl8xxxu_priv *priv,
+			   u8 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5)
 {
 	struct h2c_cmd h2c;
 
@@ -3835,7 +3834,6 @@
 	h2c.b_type_dma.data5 = arg5;
 	rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.b_type_dma));
 }
-#endif
 
 void rtl8xxxu_gen2_disable_rf(struct rtl8xxxu_priv *priv)
 {
@@ -3902,6 +3900,9 @@
 	else
 		macpower = true;
 
+	if (fops->needs_full_init)
+		macpower = false;
+
 	ret = fops->power_on(priv);
 	if (ret < 0) {
 		dev_warn(dev, "%s: Failed power on\n", __func__);
@@ -4304,7 +4305,8 @@
 	rtl8xxxu_write8(priv, REG_BEACON_CTRL, val8);
 }
 
-void rtl8xxxu_update_rate_mask(struct rtl8xxxu_priv *priv, u32 ramask, int sgi)
+void rtl8xxxu_update_rate_mask(struct rtl8xxxu_priv *priv,
+			       u32 ramask, u8 rateid, int sgi)
 {
 	struct h2c_cmd h2c;
 
@@ -4324,7 +4326,7 @@
 }
 
 void rtl8xxxu_gen2_update_rate_mask(struct rtl8xxxu_priv *priv,
-				    u32 ramask, int sgi)
+				    u32 ramask, u8 rateid, int sgi)
 {
 	struct h2c_cmd h2c;
 	u8 bw = 0;
@@ -4338,7 +4340,7 @@
 	h2c.b_macid_cfg.ramask3 = (ramask >> 24) & 0xff;
 
 	h2c.ramask.arg = 0x80;
-	h2c.b_macid_cfg.data1 = 0;
+	h2c.b_macid_cfg.data1 = rateid;
 	if (sgi)
 		h2c.b_macid_cfg.data1 |= BIT(7);
 
@@ -4478,6 +4480,35 @@
 	rtl8xxxu_write8(priv, REG_INIRTS_RATE_SEL, rate_idx);
 }
 
+static u16
+rtl8xxxu_wireless_mode(struct ieee80211_hw *hw, struct ieee80211_sta *sta)
+{
+	u16 network_type = WIRELESS_MODE_UNKNOWN;
+
+	if (hw->conf.chandef.chan->band == NL80211_BAND_5GHZ) {
+		if (sta->vht_cap.vht_supported)
+			network_type = WIRELESS_MODE_AC;
+		else if (sta->ht_cap.ht_supported)
+			network_type = WIRELESS_MODE_N_5G;
+
+		network_type |= WIRELESS_MODE_A;
+	} else {
+		if (sta->vht_cap.vht_supported)
+			network_type = WIRELESS_MODE_AC;
+		else if (sta->ht_cap.ht_supported)
+			network_type = WIRELESS_MODE_N_24G;
+
+		if (sta->supp_rates[0] <= 0xf)
+			network_type |= WIRELESS_MODE_B;
+		else if (sta->supp_rates[0] & 0xf)
+			network_type |= (WIRELESS_MODE_B | WIRELESS_MODE_G);
+		else
+			network_type |= WIRELESS_MODE_G;
+	}
+
+	return network_type;
+}
+
 static void
 rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 			  struct ieee80211_bss_conf *bss_conf, u32 changed)
@@ -4520,7 +4551,10 @@
 				sgi = 1;
 			rcu_read_unlock();
 
-			priv->fops->update_rate_mask(priv, ramask, sgi);
+			priv->vif = vif;
+			priv->rssi_level = RTL8XXXU_RATR_STA_INIT;
+
+			priv->fops->update_rate_mask(priv, ramask, 0, sgi);
 
 			rtl8xxxu_write8(priv, REG_BCN_MAX_ERR, 0xff);
 
@@ -5148,12 +5182,259 @@
 	}
 }
 
+/*
+ * The RTL8723BU/RTL8192EU vendor driver use coexistence table type
+ * 0-7 to represent writing different combinations of register values
+ * to REG_BT_COEX_TABLEs. It's for different kinds of coexistence use
+ * cases which Realtek doesn't provide detail for these settings. Keep
+ * this aligned with vendor driver for easier maintenance.
+ */
+void rtl8723bu_set_coex_with_type(struct rtl8xxxu_priv *priv, u8 type)
+{
+	switch (type) {
+	case 0:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x55555555);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0x55555555);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	case 1:
+	case 3:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x55555555);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0x5a5a5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	case 2:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x5a5a5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0x5a5a5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	case 4:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x5a5a5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0xaaaa5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	case 5:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x5a5a5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0xaa5a5a5a);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	case 6:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0x55555555);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0xaaaaaaaa);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	case 7:
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE1, 0xaaaaaaaa);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE2, 0xaaaaaaaa);
+		rtl8xxxu_write32(priv, REG_BT_COEX_TABLE3, 0x00ffffff);
+		rtl8xxxu_write8(priv, REG_BT_COEX_TABLE4, 0x03);
+		break;
+	default:
+		break;
+	}
+}
+
+void rtl8723bu_update_bt_link_info(struct rtl8xxxu_priv *priv, u8 bt_info)
+{
+	struct rtl8xxxu_btcoex *btcoex = &priv->bt_coex;
+
+	if (bt_info & BT_INFO_8723B_1ANT_B_INQ_PAGE)
+		btcoex->c2h_bt_inquiry = true;
+	else
+		btcoex->c2h_bt_inquiry = false;
+
+	if (!(bt_info & BT_INFO_8723B_1ANT_B_CONNECTION)) {
+		btcoex->bt_status = BT_8723B_1ANT_STATUS_NON_CONNECTED_IDLE;
+		btcoex->has_sco = false;
+		btcoex->has_hid = false;
+		btcoex->has_pan = false;
+		btcoex->has_a2dp = false;
+	} else {
+		if ((bt_info & 0x1f) == BT_INFO_8723B_1ANT_B_CONNECTION)
+			btcoex->bt_status = BT_8723B_1ANT_STATUS_CONNECTED_IDLE;
+		else if ((bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) ||
+			 (bt_info & BT_INFO_8723B_1ANT_B_SCO_BUSY))
+			btcoex->bt_status = BT_8723B_1ANT_STATUS_SCO_BUSY;
+		else if (bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY)
+			btcoex->bt_status = BT_8723B_1ANT_STATUS_ACL_BUSY;
+		else
+			btcoex->bt_status = BT_8723B_1ANT_STATUS_MAX;
+
+		if (bt_info & BT_INFO_8723B_1ANT_B_FTP)
+			btcoex->has_pan = true;
+		else
+			btcoex->has_pan = false;
+
+		if (bt_info & BT_INFO_8723B_1ANT_B_A2DP)
+			btcoex->has_a2dp = true;
+		else
+			btcoex->has_a2dp = false;
+
+		if (bt_info & BT_INFO_8723B_1ANT_B_HID)
+			btcoex->has_hid = true;
+		else
+			btcoex->has_hid = false;
+
+		if (bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO)
+			btcoex->has_sco = true;
+		else
+			btcoex->has_sco = false;
+	}
+
+	if (!btcoex->has_a2dp && !btcoex->has_sco &&
+	    !btcoex->has_pan && btcoex->has_hid)
+		btcoex->hid_only = true;
+	else
+		btcoex->hid_only = false;
+
+	if (!btcoex->has_sco && !btcoex->has_pan &&
+	    !btcoex->has_hid && btcoex->has_a2dp)
+		btcoex->has_a2dp = true;
+	else
+		btcoex->has_a2dp = false;
+
+	if (btcoex->bt_status == BT_8723B_1ANT_STATUS_SCO_BUSY ||
+	    btcoex->bt_status == BT_8723B_1ANT_STATUS_ACL_BUSY)
+		btcoex->bt_busy = true;
+	else
+		btcoex->bt_busy = false;
+}
+
+void rtl8723bu_handle_bt_inquiry(struct rtl8xxxu_priv *priv)
+{
+	struct ieee80211_vif *vif;
+	struct rtl8xxxu_btcoex *btcoex;
+	bool wifi_connected;
+
+	vif = priv->vif;
+	btcoex = &priv->bt_coex;
+	wifi_connected = (vif && vif->bss_conf.assoc);
+
+	if (!wifi_connected) {
+		rtl8723bu_set_ps_tdma(priv, 0x8, 0x0, 0x0, 0x0, 0x0);
+		rtl8723bu_set_coex_with_type(priv, 0);
+	} else if (btcoex->has_sco || btcoex->has_hid || btcoex->has_a2dp) {
+		rtl8723bu_set_ps_tdma(priv, 0x61, 0x35, 0x3, 0x11, 0x11);
+		rtl8723bu_set_coex_with_type(priv, 4);
+	} else if (btcoex->has_pan) {
+		rtl8723bu_set_ps_tdma(priv, 0x61, 0x3f, 0x3, 0x11, 0x11);
+		rtl8723bu_set_coex_with_type(priv, 4);
+	} else {
+		rtl8723bu_set_ps_tdma(priv, 0x8, 0x0, 0x0, 0x0, 0x0);
+		rtl8723bu_set_coex_with_type(priv, 7);
+	}
+}
+
+void rtl8723bu_handle_bt_info(struct rtl8xxxu_priv *priv)
+{
+	struct ieee80211_vif *vif;
+	struct rtl8xxxu_btcoex *btcoex;
+	bool wifi_connected;
+
+	vif = priv->vif;
+	btcoex = &priv->bt_coex;
+	wifi_connected = (vif && vif->bss_conf.assoc);
+
+	if (wifi_connected) {
+		u32 val32 = 0;
+		u32 high_prio_tx = 0, high_prio_rx = 0;
+
+		val32 = rtl8xxxu_read32(priv, 0x770);
+		high_prio_tx = val32 & 0x0000ffff;
+		high_prio_rx = (val32  & 0xffff0000) >> 16;
+
+		if (btcoex->bt_busy) {
+			if (btcoex->hid_only) {
+				rtl8723bu_set_ps_tdma(priv, 0x61, 0x20,
+						      0x3, 0x11, 0x11);
+				rtl8723bu_set_coex_with_type(priv, 5);
+			} else if (btcoex->a2dp_only) {
+				rtl8723bu_set_ps_tdma(priv, 0x61, 0x35,
+						      0x3, 0x11, 0x11);
+				rtl8723bu_set_coex_with_type(priv, 4);
+			} else if ((btcoex->has_a2dp && btcoex->has_pan) ||
+				   (btcoex->has_hid && btcoex->has_a2dp &&
+				    btcoex->has_pan)) {
+				rtl8723bu_set_ps_tdma(priv, 0x51, 0x21,
+						      0x3, 0x10, 0x10);
+				rtl8723bu_set_coex_with_type(priv, 4);
+			} else if (btcoex->has_hid && btcoex->has_a2dp) {
+				rtl8723bu_set_ps_tdma(priv, 0x51, 0x21,
+						      0x3, 0x10, 0x10);
+				rtl8723bu_set_coex_with_type(priv, 3);
+			} else {
+				rtl8723bu_set_ps_tdma(priv, 0x61, 0x35,
+						      0x3, 0x11, 0x11);
+				rtl8723bu_set_coex_with_type(priv, 4);
+			}
+		} else {
+			rtl8723bu_set_ps_tdma(priv, 0x8, 0x0, 0x0, 0x0, 0x0);
+			if (high_prio_tx + high_prio_rx <= 60)
+				rtl8723bu_set_coex_with_type(priv, 2);
+			else
+				rtl8723bu_set_coex_with_type(priv, 7);
+		}
+	} else {
+		rtl8723bu_set_ps_tdma(priv, 0x8, 0x0, 0x0, 0x0, 0x0);
+		rtl8723bu_set_coex_with_type(priv, 0);
+	}
+}
+
+static void rtl8xxxu_c2hcmd_callback(struct work_struct *work)
+{
+	struct rtl8xxxu_priv *priv;
+	struct rtl8723bu_c2h *c2h;
+	struct sk_buff *skb = NULL;
+	unsigned long flags;
+	u8 bt_info = 0;
+	struct rtl8xxxu_btcoex *btcoex;
+
+	priv = container_of(work, struct rtl8xxxu_priv, c2hcmd_work);
+	btcoex = &priv->bt_coex;
+
+	if (priv->rf_paths > 1)
+		goto out;
+
+	while (!skb_queue_empty(&priv->c2hcmd_queue)) {
+		spin_lock_irqsave(&priv->c2hcmd_lock, flags);
+		skb = __skb_dequeue(&priv->c2hcmd_queue);
+		spin_unlock_irqrestore(&priv->c2hcmd_lock, flags);
+
+		c2h = (struct rtl8723bu_c2h *)skb->data;
+
+		switch (c2h->id) {
+		case C2H_8723B_BT_INFO:
+			bt_info = c2h->bt_info.bt_info;
+
+			rtl8723bu_update_bt_link_info(priv, bt_info);
+			if (btcoex->c2h_bt_inquiry) {
+				rtl8723bu_handle_bt_inquiry(priv);
+				break;
+			}
+			rtl8723bu_handle_bt_info(priv);
+			break;
+		default:
+			break;
+		}
+	}
+
+out:
+	dev_kfree_skb(skb);
+}
+
 static void rtl8723bu_handle_c2h(struct rtl8xxxu_priv *priv,
 				 struct sk_buff *skb)
 {
 	struct rtl8723bu_c2h *c2h = (struct rtl8723bu_c2h *)skb->data;
 	struct device *dev = &priv->udev->dev;
 	int len;
+	unsigned long flags;
 
 	len = skb->len - 2;
 
@@ -5191,6 +5472,12 @@
 			       16, 1, c2h->raw.payload, len, false);
 		break;
 	}
+
+	spin_lock_irqsave(&priv->c2hcmd_lock, flags);
+	__skb_queue_tail(&priv->c2hcmd_queue, skb);
+	spin_unlock_irqrestore(&priv->c2hcmd_lock, flags);
+
+	schedule_work(&priv->c2hcmd_work);
 }
 
 int rtl8xxxu_parse_rxdesc16(struct rtl8xxxu_priv *priv, struct sk_buff *skb)
@@ -5315,7 +5602,6 @@
 		struct device *dev = &priv->udev->dev;
 		dev_dbg(dev, "%s: C2H packet\n", __func__);
 		rtl8723bu_handle_c2h(priv, skb);
-		dev_kfree_skb(skb);
 		return RX_TYPE_C2H;
 	}
 
@@ -5452,6 +5738,7 @@
 	rtl8xxxu_write32(priv, REG_USB_HIMR, val32);
 
 error:
+	usb_free_urb(urb);
 	return ret;
 }
 
@@ -5464,6 +5751,10 @@
 
 	switch (vif->type) {
 	case NL80211_IFTYPE_STATION:
+		if (!priv->vif)
+			priv->vif = vif;
+		else
+			return -EOPNOTSUPP;
 		rtl8xxxu_stop_tx_beacon(priv);
 
 		val8 = rtl8xxxu_read8(priv, REG_BEACON_CTRL);
@@ -5487,6 +5778,9 @@
 	struct rtl8xxxu_priv *priv = hw->priv;
 
 	dev_dbg(&priv->udev->dev, "%s\n", __func__);
+
+	if (priv->vif)
+		priv->vif = NULL;
 }
 
 static int rtl8xxxu_config(struct ieee80211_hw *hw, u32 changed)
@@ -5772,11 +6066,184 @@
 	return 0;
 }
 
+static u8 rtl8xxxu_signal_to_snr(int signal)
+{
+	if (signal < RTL8XXXU_NOISE_FLOOR_MIN)
+		signal = RTL8XXXU_NOISE_FLOOR_MIN;
+	else if (signal > 0)
+		signal = 0;
+	return (u8)(signal - RTL8XXXU_NOISE_FLOOR_MIN);
+}
+
+static void rtl8xxxu_refresh_rate_mask(struct rtl8xxxu_priv *priv,
+				       int signal, struct ieee80211_sta *sta)
+{
+	struct ieee80211_hw *hw = priv->hw;
+	u16 wireless_mode;
+	u8 rssi_level, ratr_idx;
+	u8 txbw_40mhz;
+	u8 snr, snr_thresh_high, snr_thresh_low;
+	u8 go_up_gap = 5;
+
+	rssi_level = priv->rssi_level;
+	snr = rtl8xxxu_signal_to_snr(signal);
+	snr_thresh_high = RTL8XXXU_SNR_THRESH_HIGH;
+	snr_thresh_low = RTL8XXXU_SNR_THRESH_LOW;
+	txbw_40mhz = (hw->conf.chandef.width == NL80211_CHAN_WIDTH_40) ? 1 : 0;
+
+	switch (rssi_level) {
+	case RTL8XXXU_RATR_STA_MID:
+		snr_thresh_high += go_up_gap;
+		break;
+	case RTL8XXXU_RATR_STA_LOW:
+		snr_thresh_high += go_up_gap;
+		snr_thresh_low += go_up_gap;
+		break;
+	default:
+		break;
+	}
+
+	if (snr > snr_thresh_high)
+		rssi_level = RTL8XXXU_RATR_STA_HIGH;
+	else if (snr > snr_thresh_low)
+		rssi_level = RTL8XXXU_RATR_STA_MID;
+	else
+		rssi_level = RTL8XXXU_RATR_STA_LOW;
+
+	if (rssi_level != priv->rssi_level) {
+		int sgi = 0;
+		u32 rate_bitmap = 0;
+
+		rcu_read_lock();
+		rate_bitmap = (sta->supp_rates[0] & 0xfff) |
+				(sta->ht_cap.mcs.rx_mask[0] << 12) |
+				(sta->ht_cap.mcs.rx_mask[1] << 20);
+		if (sta->ht_cap.cap &
+		    (IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20))
+			sgi = 1;
+		rcu_read_unlock();
+
+		wireless_mode = rtl8xxxu_wireless_mode(hw, sta);
+		switch (wireless_mode) {
+		case WIRELESS_MODE_B:
+			ratr_idx = RATEID_IDX_B;
+			if (rate_bitmap & 0x0000000c)
+				rate_bitmap &= 0x0000000d;
+			else
+				rate_bitmap &= 0x0000000f;
+			break;
+		case WIRELESS_MODE_A:
+		case WIRELESS_MODE_G:
+			ratr_idx = RATEID_IDX_G;
+			if (rssi_level == RTL8XXXU_RATR_STA_HIGH)
+				rate_bitmap &= 0x00000f00;
+			else
+				rate_bitmap &= 0x00000ff0;
+			break;
+		case (WIRELESS_MODE_B | WIRELESS_MODE_G):
+			ratr_idx = RATEID_IDX_BG;
+			if (rssi_level == RTL8XXXU_RATR_STA_HIGH)
+				rate_bitmap &= 0x00000f00;
+			else if (rssi_level == RTL8XXXU_RATR_STA_MID)
+				rate_bitmap &= 0x00000ff0;
+			else
+				rate_bitmap &= 0x00000ff5;
+			break;
+		case WIRELESS_MODE_N_24G:
+		case WIRELESS_MODE_N_5G:
+		case (WIRELESS_MODE_G | WIRELESS_MODE_N_24G):
+		case (WIRELESS_MODE_A | WIRELESS_MODE_N_5G):
+			if (priv->tx_paths == 2 && priv->rx_paths == 2)
+				ratr_idx = RATEID_IDX_GN_N2SS;
+			else
+				ratr_idx = RATEID_IDX_GN_N1SS;
+			break;
+		case (WIRELESS_MODE_B | WIRELESS_MODE_G | WIRELESS_MODE_N_24G):
+		case (WIRELESS_MODE_B | WIRELESS_MODE_N_24G):
+			if (txbw_40mhz) {
+				if (priv->tx_paths == 2 && priv->rx_paths == 2)
+					ratr_idx = RATEID_IDX_BGN_40M_2SS;
+				else
+					ratr_idx = RATEID_IDX_BGN_40M_1SS;
+			} else {
+				if (priv->tx_paths == 2 && priv->rx_paths == 2)
+					ratr_idx = RATEID_IDX_BGN_20M_2SS_BN;
+				else
+					ratr_idx = RATEID_IDX_BGN_20M_1SS_BN;
+			}
+
+			if (priv->tx_paths == 2 && priv->rx_paths == 2) {
+				if (rssi_level == RTL8XXXU_RATR_STA_HIGH) {
+					rate_bitmap &= 0x0f8f0000;
+				} else if (rssi_level == RTL8XXXU_RATR_STA_MID) {
+					rate_bitmap &= 0x0f8ff000;
+				} else {
+					if (txbw_40mhz)
+						rate_bitmap &= 0x0f8ff015;
+					else
+						rate_bitmap &= 0x0f8ff005;
+				}
+			} else {
+				if (rssi_level == RTL8XXXU_RATR_STA_HIGH) {
+					rate_bitmap &= 0x000f0000;
+				} else if (rssi_level == RTL8XXXU_RATR_STA_MID) {
+					rate_bitmap &= 0x000ff000;
+				} else {
+					if (txbw_40mhz)
+						rate_bitmap &= 0x000ff015;
+					else
+						rate_bitmap &= 0x000ff005;
+				}
+			}
+			break;
+		default:
+			ratr_idx = RATEID_IDX_BGN_40M_2SS;
+			rate_bitmap &= 0x0fffffff;
+			break;
+		}
+
+		priv->rssi_level = rssi_level;
+		priv->fops->update_rate_mask(priv, rate_bitmap, ratr_idx, sgi);
+	}
+}
+
+static void rtl8xxxu_watchdog_callback(struct work_struct *work)
+{
+	struct ieee80211_vif *vif;
+	struct rtl8xxxu_priv *priv;
+
+	priv = container_of(work, struct rtl8xxxu_priv, ra_watchdog.work);
+	vif = priv->vif;
+
+	if (vif && vif->type == NL80211_IFTYPE_STATION) {
+		int signal;
+		struct ieee80211_sta *sta;
+
+		rcu_read_lock();
+		sta = ieee80211_find_sta(vif, vif->bss_conf.bssid);
+		if (!sta) {
+			struct device *dev = &priv->udev->dev;
+
+			dev_dbg(dev, "%s: no sta found\n", __func__);
+			rcu_read_unlock();
+			goto out;
+		}
+		rcu_read_unlock();
+
+		signal = ieee80211_ave_rssi(vif);
+		rtl8xxxu_refresh_rate_mask(priv, signal, sta);
+	}
+
+out:
+	schedule_delayed_work(&priv->ra_watchdog, 2 * HZ);
+}
+
 static int rtl8xxxu_start(struct ieee80211_hw *hw)
 {
 	struct rtl8xxxu_priv *priv = hw->priv;
 	struct rtl8xxxu_rx_urb *rx_urb;
 	struct rtl8xxxu_tx_urb *tx_urb;
+	struct sk_buff *skb;
 	unsigned long flags;
 	int ret, i;
 
@@ -5827,7 +6294,16 @@
 		rx_urb->hw = hw;
 
 		ret = rtl8xxxu_submit_rx_urb(priv, rx_urb);
+		if (ret) {
+			if (ret != -ENOMEM) {
+				skb = (struct sk_buff *)rx_urb->urb.context;
+				dev_kfree_skb(skb);
+			}
+			rtl8xxxu_queue_rx_urb(priv, rx_urb);
+		}
 	}
+
+	schedule_delayed_work(&priv->ra_watchdog, 2 * HZ);
 exit:
 	/*
 	 * Accept all data and mgmt frames
@@ -5879,6 +6355,8 @@
 	if (priv->usb_interrupts)
 		rtl8xxxu_write32(priv, REG_USB_HIMR, 0);
 
+	cancel_delayed_work_sync(&priv->ra_watchdog);
+
 	rtl8xxxu_free_rx_resources(priv);
 	rtl8xxxu_free_tx_resources(priv);
 }
@@ -5911,7 +6389,7 @@
 	u8 dir, xtype, num;
 	int ret = 0;
 
-	host_interface = &interface->altsetting[0];
+	host_interface = interface->cur_altsetting;
 	interface_desc = &host_interface->desc;
 	endpoints = interface_desc->bNumEndpoints;
 
@@ -6051,6 +6529,10 @@
 	INIT_LIST_HEAD(&priv->rx_urb_pending_list);
 	spin_lock_init(&priv->rx_urb_lock);
 	INIT_WORK(&priv->rx_urb_wq, rtl8xxxu_rx_urb_work);
+	INIT_DELAYED_WORK(&priv->ra_watchdog, rtl8xxxu_watchdog_callback);
+	spin_lock_init(&priv->c2hcmd_lock);
+	INIT_WORK(&priv->c2hcmd_work, rtl8xxxu_c2hcmd_callback);
+	skb_queue_head_init(&priv->c2hcmd_queue);
 
 	usb_set_intfdata(interface, hw);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/base.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -1776,8 +1776,7 @@
 
 	tid_data->agg.agg_state = RTL_AGG_START;
 
-	ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-	return 0;
+	return IEEE80211_AMPDU_TX_START_IMMEDIATE;
 }
 
 int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/pci.c
@@ -1061,13 +1061,15 @@
 	return ret;
 }
 
-static void _rtl_pci_irq_tasklet(struct ieee80211_hw *hw)
+static void _rtl_pci_irq_tasklet(unsigned long data)
 {
+	struct ieee80211_hw *hw = (struct ieee80211_hw *)data;
 	_rtl_pci_tx_chk_waitq(hw);
 }
 
-static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw)
+static void _rtl_pci_prepare_bcn_tasklet(unsigned long data)
 {
+	struct ieee80211_hw *hw = (struct ieee80211_hw *)data;
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
 	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
@@ -1193,10 +1195,10 @@
 
 	/*task */
 	tasklet_init(&rtlpriv->works.irq_tasklet,
-		     (void (*)(unsigned long))_rtl_pci_irq_tasklet,
+		     _rtl_pci_irq_tasklet,
 		     (unsigned long)hw);
 	tasklet_init(&rtlpriv->works.irq_prepare_bcn_tasklet,
-		     (void (*)(unsigned long))_rtl_pci_prepare_bcn_tasklet,
+		     _rtl_pci_prepare_bcn_tasklet,
 		     (unsigned long)hw);
 	INIT_WORK(&rtlpriv->works.lps_change_work,
 		  rtl_lps_change_work_callback);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rc.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rc.c
@@ -261,7 +261,7 @@
 {
 }
 
-static void *rtl_rate_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
+static void *rtl_rate_alloc(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	return rtlpriv;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/regd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/regd.c
@@ -386,7 +386,7 @@
 	struct wiphy *wiphy = hw->wiphy;
 	struct country_code_to_enum_rd *country = NULL;
 
-	if (wiphy == NULL || &rtlpriv->regd == NULL)
+	if (!wiphy)
 		return -EINVAL;
 
 	/* init country_code from efuse channel plan */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h
@@ -561,6 +561,7 @@
 	 rxmcs == DESC92C_RATE11M)
 
 struct phy_status_rpt {
+	u8	padding[2];
 	u8	ch_corr[2];
 	u8	cck_sig_qual_ofdm_pwdb_all;
 	u8	cck_agc_rpt_ofdm_cfosho_a;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
@@ -1540,6 +1540,8 @@
    * This is maybe necessary:
    * rtlpriv->cfg->ops->fill_tx_cmddesc(hw, buffer, 1, 1, skb);
    */
+	dev_kfree_skb(skb);
+
 	return true;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
@@ -1176,6 +1176,7 @@
 
 	rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF);
 	rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF);
+	rtlpci->irq_enabled = true;
 }
 
 void rtl92de_disable_interrupt(struct ieee80211_hw *hw)
@@ -1185,7 +1186,7 @@
 
 	rtl_write_dword(rtlpriv, REG_HIMR, IMR8190_DISABLED);
 	rtl_write_dword(rtlpriv, REG_HIMRE, IMR8190_DISABLED);
-	synchronize_irq(rtlpci->pdev->irq);
+	rtlpci->irq_enabled = false;
 }
 
 static void _rtl92de_poweroff_adapter(struct ieee80211_hw *hw)
@@ -1351,7 +1352,7 @@
 
 	bcn_interval = mac->beacon_interval;
 	atim_window = 2;
-	/*rtl92de_disable_interrupt(hw);  */
+	rtl92de_disable_interrupt(hw);
 	rtl_write_word(rtlpriv, REG_ATIMWND, atim_window);
 	rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
 	rtl_write_word(rtlpriv, REG_BCNTCFG, 0x660f);
@@ -1371,9 +1372,9 @@
 
 	RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
 		 "beacon_interval:%d\n", bcn_interval);
-	/* rtl92de_disable_interrupt(hw); */
+	rtl92de_disable_interrupt(hw);
 	rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
-	/* rtl92de_enable_interrupt(hw); */
+	rtl92de_enable_interrupt(hw);
 }
 
 void rtl92de_update_interrupt_mask(struct ieee80211_hw *hw,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c
@@ -216,6 +216,7 @@
 	.led_control = rtl92de_led_control,
 	.set_desc = rtl92de_set_desc,
 	.get_desc = rtl92de_get_desc,
+	.is_tx_desc_closed = rtl92de_is_tx_desc_closed,
 	.tx_polling = rtl92de_tx_polling,
 	.enable_hw_sec = rtl92de_enable_hw_security_config,
 	.set_key = rtl92de_set_key,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
@@ -804,13 +804,15 @@
 			break;
 		}
 	} else {
-		struct rx_desc_92c *pdesc = (struct rx_desc_92c *)p_desc;
 		switch (desc_name) {
 		case HW_DESC_OWN:
-			ret = GET_RX_DESC_OWN(pdesc);
+			ret = GET_RX_DESC_OWN(p_desc);
 			break;
 		case HW_DESC_RXPKT_LEN:
-			ret = GET_RX_DESC_PKT_LEN(pdesc);
+			ret = GET_RX_DESC_PKT_LEN(p_desc);
+			break;
+		case HW_DESC_RXBUFF_ADDR:
+			ret = GET_RX_DESC_BUFF_ADDR(p_desc);
 			break;
 		default:
 			WARN_ONCE(true, "rtl8192de: ERR rxdesc :%d not processed\n",
@@ -821,6 +823,23 @@
 	return ret;
 }
 
+bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw,
+			       u8 hw_queue, u16 index)
+{
+	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
+	struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
+	u8 *entry = (u8 *)(&ring->desc[ring->idx]);
+	u8 own = (u8)rtl92de_get_desc(hw, entry, true, HW_DESC_OWN);
+
+	/* a beacon packet will only use the first
+	 * descriptor by defaut, and the own bit may not
+	 * be cleared by the hardware
+	 */
+	if (own)
+		return false;
+	return true;
+}
+
 void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h
@@ -715,6 +715,8 @@
 		      u8 desc_name, u8 *val);
 u64 rtl92de_get_desc(struct ieee80211_hw *hw,
 		     u8 *p_desc, bool istx, u8 desc_name);
+bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw,
+			       u8 hw_queue, u16 index);
 void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
 void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
 			     bool b_firstseg, bool b_lastseg,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtlwifi/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtlwifi/usb.c
@@ -718,8 +718,11 @@
 
 		usb_anchor_urb(urb, &rtlusb->rx_submitted);
 		err = usb_submit_urb(urb, GFP_KERNEL);
-		if (err)
+		if (err) {
+			usb_unanchor_urb(urb);
+			usb_free_urb(urb);
 			goto err_out;
+		}
 		usb_free_urb(urb);
 	}
 	return 0;
@@ -881,10 +884,8 @@
 
 	WARN_ON(NULL == skb);
 	_urb = usb_alloc_urb(0, GFP_ATOMIC);
-	if (!_urb) {
-		kfree_skb(skb);
+	if (!_urb)
 		return NULL;
-	}
 	_rtl_install_trx_info(rtlusb, skb, ep_num);
 	usb_fill_bulk_urb(_urb, rtlusb->udev, usb_sndbulkpipe(rtlusb->udev,
 			  ep_num), skb->data, skb->len, _rtl_tx_complete, skb);
@@ -898,7 +899,6 @@
 	struct rtl_usb *rtlusb = rtl_usbdev(rtl_usbpriv(hw));
 	u32 ep_num;
 	struct urb *_urb = NULL;
-	struct sk_buff *_skb = NULL;
 
 	WARN_ON(NULL == rtlusb->usb_tx_aggregate_hdl);
 	if (unlikely(IS_USB_STOP(rtlusb))) {
@@ -907,8 +907,7 @@
 		return;
 	}
 	ep_num = rtlusb->ep_map.ep_mapping[qnum];
-	_skb = skb;
-	_urb = _rtl_usb_tx_urb_setup(hw, _skb, ep_num);
+	_urb = _rtl_usb_tx_urb_setup(hw, skb, ep_num);
 	if (unlikely(!_urb)) {
 		pr_err("Can't allocate urb. Drop skb!\n");
 		kfree_skb(skb);
@@ -1021,8 +1020,10 @@
 	rtlpriv->hw = hw;
 	rtlpriv->usb_data = kcalloc(RTL_USB_MAX_RX_COUNT, sizeof(u32),
 				    GFP_KERNEL);
-	if (!rtlpriv->usb_data)
+	if (!rtlpriv->usb_data) {
+		ieee80211_free_hw(hw);
 		return -ENOMEM;
+	}
 
 	/* this spin lock must be initialized early */
 	spin_lock_init(&rtlpriv->locks.usb_lock);
@@ -1083,6 +1084,7 @@
 	_rtl_usb_io_handler_release(hw);
 	usb_put_dev(udev);
 	complete(&rtlpriv->firmware_loading_complete);
+	kfree(rtlpriv->usb_data);
 	return -ENODEV;
 }
 EXPORT_SYMBOL(rtl_usb_probe);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/Kconfig
@@ -36,6 +36,16 @@
 
 	  802.11ac PCIe wireless network adapter
 
+config RTW88_8723DE
+	bool "Realtek 8723DE PCI wireless network adapter"
+	depends on PCI
+	select RTW88_CORE
+	select RTW88_PCI
+	help
+	  Select this option will enable support for 8723DE chipset
+
+	  802.11n PCIe wireless network adapter
+
 config RTW88_DEBUG
 	bool "Realtek rtw88 debug support"
 	depends on RTW88_CORE
@@ -52,4 +62,14 @@
 
 	  If unsure, say Y to simplify debug problems
 
+config RTW88_REGD_USER_REG_HINTS
+	bool "Realtek rtw88 user regulatory hints"
+	depends on RTW88_CORE
+	default n
+	help
+	  Enable regulatoy user hints
+
+	  If unsure, say N. This should only be allowed on distributions
+	  that need this to correct the regulatory.
+
 endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/Makefile
@@ -14,10 +14,14 @@
 	   fw.o \
 	   ps.o \
 	   sec.o \
+	   bf.o \
+	   wow.o \
+	   sar.o \
 	   regd.o
 
 rtw88-$(CONFIG_RTW88_8822BE)	+= rtw8822b.o rtw8822b_table.o
 rtw88-$(CONFIG_RTW88_8822CE)	+= rtw8822c.o rtw8822c_table.o
+rtw88-$(CONFIG_RTW88_8723DE)	+= rtw8723d.o rtw8723d_table.o
 
 obj-$(CONFIG_RTW88_PCI)		+= rtwpci.o
 rtwpci-objs			:= pci.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/bf.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/bf.c
@@ -0,0 +1,397 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019  Realtek Corporation.
+ */
+
+#include "main.h"
+#include "reg.h"
+#include "bf.h"
+#include "debug.h"
+
+void rtw_bf_disassoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
+		     struct ieee80211_bss_conf *bss_conf)
+{
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+	struct rtw_bfee *bfee = &rtwvif->bfee;
+	struct rtw_bf_info *bfinfo = &rtwdev->bf_info;
+
+	if (bfee->role == RTW_BFEE_NONE)
+		return;
+
+	if (bfee->role == RTW_BFEE_MU)
+		bfinfo->bfer_mu_cnt--;
+	else if (bfee->role == RTW_BFEE_SU)
+		bfinfo->bfer_su_cnt--;
+
+	rtw_chip_config_bfee(rtwdev, rtwvif, bfee, false);
+
+	bfee->role = RTW_BFEE_NONE;
+}
+
+void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
+		  struct ieee80211_bss_conf *bss_conf)
+{
+	struct ieee80211_hw *hw = rtwdev->hw;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+	struct rtw_bfee *bfee = &rtwvif->bfee;
+	struct rtw_bf_info *bfinfo = &rtwdev->bf_info;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct ieee80211_sta *sta;
+	struct ieee80211_sta_vht_cap *vht_cap;
+	struct ieee80211_sta_vht_cap *ic_vht_cap;
+	const u8 *bssid = bss_conf->bssid;
+	u32 sound_dim;
+	u8 i;
+
+	if (!(chip->band & RTW_BAND_5G))
+		return;
+
+	rcu_read_lock();
+
+	sta = ieee80211_find_sta(vif, bssid);
+	if (!sta) {
+		rtw_warn(rtwdev, "failed to find station entry for bss %pM\n",
+			 bssid);
+		goto out_unlock;
+	}
+
+	ic_vht_cap = &hw->wiphy->bands[NL80211_BAND_5GHZ]->vht_cap;
+	vht_cap = &sta->vht_cap;
+
+	if ((ic_vht_cap->cap & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE) &&
+	    (vht_cap->cap & IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)) {
+		if (bfinfo->bfer_mu_cnt >= chip->bfer_mu_max_num) {
+			rtw_dbg(rtwdev, RTW_DBG_BF, "mu bfer number over limit\n");
+			goto out_unlock;
+		}
+
+		ether_addr_copy(bfee->mac_addr, bssid);
+		bfee->role = RTW_BFEE_MU;
+		bfee->p_aid = (bssid[5] << 1) | (bssid[4] >> 7);
+		bfee->aid = bss_conf->aid;
+		bfinfo->bfer_mu_cnt++;
+
+		rtw_chip_config_bfee(rtwdev, rtwvif, bfee, true);
+	} else if ((ic_vht_cap->cap & IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE) &&
+		   (vht_cap->cap & IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE)) {
+		if (bfinfo->bfer_su_cnt >= chip->bfer_su_max_num) {
+			rtw_dbg(rtwdev, RTW_DBG_BF, "su bfer number over limit\n");
+			goto out_unlock;
+		}
+
+		sound_dim = vht_cap->cap &
+			    IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK;
+		sound_dim >>= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT;
+
+		ether_addr_copy(bfee->mac_addr, bssid);
+		bfee->role = RTW_BFEE_SU;
+		bfee->sound_dim = (u8)sound_dim;
+		bfee->g_id = 0;
+		bfee->p_aid = (bssid[5] << 1) | (bssid[4] >> 7);
+		bfinfo->bfer_su_cnt++;
+		for (i = 0; i < chip->bfer_su_max_num; i++) {
+			if (!test_bit(i, bfinfo->bfer_su_reg_maping)) {
+				set_bit(i, bfinfo->bfer_su_reg_maping);
+				bfee->su_reg_index = i;
+				break;
+			}
+		}
+
+		rtw_chip_config_bfee(rtwdev, rtwvif, bfee, true);
+	}
+
+out_unlock:
+	rcu_read_unlock();
+}
+
+void rtw_bf_init_bfer_entry_mu(struct rtw_dev *rtwdev,
+			       struct mu_bfer_init_para *param)
+{
+	u16 mu_bf_ctl = 0;
+	u8 *addr = param->bfer_address;
+	int i;
+
+	for (i = 0; i < ETH_ALEN; i++)
+		rtw_write8(rtwdev, REG_ASSOCIATED_BFMER0_INFO + i, addr[i]);
+	rtw_write16(rtwdev, REG_ASSOCIATED_BFMER0_INFO + 6, param->paid);
+	rtw_write16(rtwdev, REG_TX_CSI_RPT_PARAM_BW20, param->csi_para);
+
+	mu_bf_ctl = rtw_read16(rtwdev, REG_WMAC_MU_BF_CTL) & 0xC000;
+	mu_bf_ctl |= param->my_aid | (param->csi_length_sel << 12);
+	rtw_write16(rtwdev, REG_WMAC_MU_BF_CTL, mu_bf_ctl);
+}
+
+void rtw_bf_cfg_sounding(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			 enum rtw_trx_desc_rate rate)
+{
+	u32 psf_ctl = 0;
+	u8 csi_rsc = 0x1;
+
+	psf_ctl = rtw_read32(rtwdev, REG_BBPSF_CTRL) |
+		  BIT_WMAC_USE_NDPARATE |
+		  (csi_rsc << 13);
+
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL, RTW_SND_CTRL_SOUNDING);
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL + 3, 0x26);
+	rtw_write8_clr(rtwdev, REG_RXFLTMAP1, BIT_RXFLTMAP1_BF_REPORT_POLL);
+	rtw_write8_clr(rtwdev, REG_RXFLTMAP4, BIT_RXFLTMAP4_BF_REPORT_POLL);
+
+	if (vif->net_type == RTW_NET_AP_MODE)
+		rtw_write32(rtwdev, REG_BBPSF_CTRL, psf_ctl | BIT(12));
+	else
+		rtw_write32(rtwdev, REG_BBPSF_CTRL, psf_ctl & ~BIT(12));
+}
+
+void rtw_bf_cfg_mu_bfee(struct rtw_dev *rtwdev, struct cfg_mumimo_para *param)
+{
+	u8 mu_tbl_sel;
+	u8 mu_valid;
+
+	mu_valid = rtw_read8(rtwdev, REG_MU_TX_CTL) &
+		   ~BIT_MASK_R_MU_TABLE_VALID;
+
+	rtw_write8(rtwdev, REG_MU_TX_CTL,
+		   (mu_valid | BIT(0) | BIT(1)) & ~(BIT(7)));
+
+	mu_tbl_sel = rtw_read8(rtwdev, REG_MU_TX_CTL + 1) & 0xF8;
+
+	rtw_write8(rtwdev, REG_MU_TX_CTL + 1, mu_tbl_sel);
+	rtw_write32(rtwdev, REG_MU_STA_GID_VLD, param->given_gid_tab[0]);
+	rtw_write32(rtwdev, REG_MU_STA_USER_POS_INFO, param->given_user_pos[0]);
+	rtw_write32(rtwdev, REG_MU_STA_USER_POS_INFO + 4,
+		    param->given_user_pos[1]);
+
+	rtw_write8(rtwdev, REG_MU_TX_CTL + 1, mu_tbl_sel | 1);
+	rtw_write32(rtwdev, REG_MU_STA_GID_VLD, param->given_gid_tab[1]);
+	rtw_write32(rtwdev, REG_MU_STA_USER_POS_INFO, param->given_user_pos[2]);
+	rtw_write32(rtwdev, REG_MU_STA_USER_POS_INFO + 4,
+		    param->given_user_pos[3]);
+}
+
+void rtw_bf_del_bfer_entry_mu(struct rtw_dev *rtwdev)
+{
+	rtw_write32(rtwdev, REG_ASSOCIATED_BFMER0_INFO, 0);
+	rtw_write32(rtwdev, REG_ASSOCIATED_BFMER0_INFO + 4, 0);
+	rtw_write16(rtwdev, REG_WMAC_MU_BF_CTL, 0);
+	rtw_write8(rtwdev, REG_MU_TX_CTL, 0);
+}
+
+void rtw_bf_del_sounding(struct rtw_dev *rtwdev)
+{
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL, 0);
+}
+
+void rtw_bf_enable_bfee_su(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			   struct rtw_bfee *bfee)
+{
+	u8 nc_index = 1;
+	u8 nr_index = bfee->sound_dim;
+	u8 grouping = 0, codebookinfo = 1, coefficientsize = 3;
+	u32 addr_bfer_info, addr_csi_rpt, csi_param;
+	u8 i;
+
+	rtw_dbg(rtwdev, RTW_DBG_BF, "config as an su bfee\n");
+
+	switch (bfee->su_reg_index) {
+	case 1:
+		addr_bfer_info = REG_ASSOCIATED_BFMER1_INFO;
+		addr_csi_rpt = REG_TX_CSI_RPT_PARAM_BW20 + 2;
+		break;
+	case 0:
+	default:
+		addr_bfer_info = REG_ASSOCIATED_BFMER0_INFO;
+		addr_csi_rpt = REG_TX_CSI_RPT_PARAM_BW20;
+		break;
+	}
+
+	/* Sounding protocol control */
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL, RTW_SND_CTRL_SOUNDING);
+
+	/* MAC address/Partial AID of Beamformer */
+	for (i = 0; i < ETH_ALEN; i++)
+		rtw_write8(rtwdev, addr_bfer_info + i, bfee->mac_addr[i]);
+
+	csi_param = (u16)((coefficientsize << 10) |
+			  (codebookinfo << 8) |
+			  (grouping << 6) |
+			  (nr_index << 3) |
+			  nc_index);
+	rtw_write16(rtwdev, addr_csi_rpt, csi_param);
+
+	/* ndp rx standby timer */
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL + 3, RTW_NDP_RX_STANDBY_TIME);
+}
+
+/* nc index: 1 2T2R 0 1T1R
+ * nr index: 1 use Nsts 0 use reg setting
+ * codebookinfo: 1 802.11ac 3 802.11n
+ */
+void rtw_bf_enable_bfee_mu(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			   struct rtw_bfee *bfee)
+{
+	struct rtw_bf_info *bf_info = &rtwdev->bf_info;
+	struct mu_bfer_init_para param;
+	u8 nc_index = 1, nr_index = 1;
+	u8 grouping = 0, codebookinfo = 1, coefficientsize = 0;
+	u32 csi_param;
+
+	rtw_dbg(rtwdev, RTW_DBG_BF, "config as an mu bfee\n");
+
+	csi_param = (u16)((coefficientsize << 10) |
+			  (codebookinfo << 8) |
+			  (grouping << 6) |
+			  (nr_index << 3) |
+			  nc_index);
+
+	rtw_dbg(rtwdev, RTW_DBG_BF, "nc=%d nr=%d group=%d codebookinfo=%d coefficientsize=%d\n",
+		nc_index, nr_index, grouping, codebookinfo,
+		coefficientsize);
+
+	param.paid = bfee->p_aid;
+	param.csi_para = csi_param;
+	param.my_aid = bfee->aid & 0xfff;
+	param.csi_length_sel = HAL_CSI_SEG_4K;
+	ether_addr_copy(param.bfer_address, bfee->mac_addr);
+
+	rtw_bf_init_bfer_entry_mu(rtwdev, &param);
+
+	bf_info->cur_csi_rpt_rate = DESC_RATE6M;
+	rtw_bf_cfg_sounding(rtwdev, vif, DESC_RATE6M);
+
+	/* accept action_no_ack */
+	rtw_write16_set(rtwdev, REG_RXFLTMAP0, BIT_RXFLTMAP0_ACTIONNOACK);
+
+	/* accept NDPA and BF report poll */
+	rtw_write16_set(rtwdev, REG_RXFLTMAP1, BIT_RXFLTMAP1_BF);
+}
+
+void rtw_bf_remove_bfee_su(struct rtw_dev *rtwdev,
+			   struct rtw_bfee *bfee)
+{
+	struct rtw_bf_info *bfinfo = &rtwdev->bf_info;
+
+	rtw_dbg(rtwdev, RTW_DBG_BF, "remove as a su bfee\n");
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL, RTW_SND_CTRL_REMOVE);
+
+	switch (bfee->su_reg_index) {
+	case 0:
+		rtw_write32(rtwdev, REG_ASSOCIATED_BFMER0_INFO, 0);
+		rtw_write16(rtwdev, REG_ASSOCIATED_BFMER0_INFO + 4, 0);
+		rtw_write16(rtwdev, REG_TX_CSI_RPT_PARAM_BW20, 0);
+		break;
+	case 1:
+		rtw_write32(rtwdev, REG_ASSOCIATED_BFMER1_INFO, 0);
+		rtw_write16(rtwdev, REG_ASSOCIATED_BFMER1_INFO + 4, 0);
+		rtw_write16(rtwdev, REG_TX_CSI_RPT_PARAM_BW20 + 2, 0);
+		break;
+	}
+
+	clear_bit(bfee->su_reg_index, bfinfo->bfer_su_reg_maping);
+	bfee->su_reg_index = 0xFF;
+}
+
+void rtw_bf_remove_bfee_mu(struct rtw_dev *rtwdev,
+			   struct rtw_bfee *bfee)
+{
+	struct rtw_bf_info *bfinfo = &rtwdev->bf_info;
+
+	rtw_write8(rtwdev, REG_SND_PTCL_CTRL, RTW_SND_CTRL_REMOVE);
+
+	rtw_bf_del_bfer_entry_mu(rtwdev);
+
+	if (bfinfo->bfer_su_cnt == 0 && bfinfo->bfer_mu_cnt == 0)
+		rtw_bf_del_sounding(rtwdev);
+}
+
+void rtw_bf_set_gid_table(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
+			  struct ieee80211_bss_conf *conf)
+{
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+	struct rtw_bfee *bfee = &rtwvif->bfee;
+	struct cfg_mumimo_para param;
+
+	if (bfee->role != RTW_BFEE_MU) {
+		rtw_dbg(rtwdev, RTW_DBG_BF, "this vif is not mu bfee\n");
+		return;
+	}
+
+	param.grouping_bitmap = 0;
+	param.mu_tx_en = 0;
+	memset(param.sounding_sts, 0, 6);
+	memcpy(param.given_gid_tab, conf->mu_group.membership, 8);
+	memcpy(param.given_user_pos, conf->mu_group.position, 16);
+	rtw_dbg(rtwdev, RTW_DBG_BF, "STA0: gid_valid=0x%x, user_position_l=0x%x, user_position_h=0x%x\n",
+		param.given_gid_tab[0], param.given_user_pos[0],
+		param.given_user_pos[1]);
+
+	rtw_dbg(rtwdev, RTW_DBG_BF, "STA1: gid_valid=0x%x, user_position_l=0x%x, user_position_h=0x%x\n",
+		param.given_gid_tab[1], param.given_user_pos[2],
+		param.given_user_pos[3]);
+
+	rtw_bf_cfg_mu_bfee(rtwdev, &param);
+}
+
+void rtw_bf_phy_init(struct rtw_dev *rtwdev)
+{
+	u8 tmp8;
+	u32 tmp32;
+	u8 retry_limit = 0xA;
+	u8 ndpa_rate = 0x10;
+	u8 ack_policy = 3;
+
+	tmp32 = rtw_read32(rtwdev, REG_MU_TX_CTL);
+	/* Enable P1 aggr new packet according to P0 transfer time */
+	tmp32 |= BIT_MU_P1_WAIT_STATE_EN;
+	/* MU Retry Limit */
+	tmp32 &= ~BIT_MASK_R_MU_RL;
+	tmp32 |= (retry_limit << BIT_SHIFT_R_MU_RL) & BIT_MASK_R_MU_RL;
+	/* Disable Tx MU-MIMO until sounding done */
+	tmp32 &= ~BIT_EN_MU_MIMO;
+	/* Clear validity of MU STAs */
+	tmp32 &= ~BIT_MASK_R_MU_TABLE_VALID;
+	rtw_write32(rtwdev, REG_MU_TX_CTL, tmp32);
+
+	/* MU-MIMO Option as default value */
+	tmp8 = ack_policy << BIT_SHIFT_WMAC_TXMU_ACKPOLICY;
+	tmp8 |= BIT_WMAC_TXMU_ACKPOLICY_EN;
+	rtw_write8(rtwdev, REG_WMAC_MU_BF_OPTION, tmp8);
+
+	/* MU-MIMO Control as default value */
+	rtw_write16(rtwdev, REG_WMAC_MU_BF_CTL, 0);
+	/* Set MU NDPA rate & BW source */
+	rtw_write32_set(rtwdev, REG_TXBF_CTRL, BIT_USE_NDPA_PARAMETER);
+	/* Set NDPA Rate */
+	rtw_write8(rtwdev, REG_NDPA_OPT_CTRL, ndpa_rate);
+
+	rtw_write32_mask(rtwdev, REG_BBPSF_CTRL, BIT_MASK_CSI_RATE,
+			 DESC_RATE6M);
+}
+
+void rtw_bf_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
+			 u8 fixrate_en, u8 *new_rate)
+{
+	u32 csi_cfg;
+	u16 cur_rrsr;
+
+	csi_cfg = rtw_read32(rtwdev, REG_BBPSF_CTRL) & ~BIT_MASK_CSI_RATE;
+	cur_rrsr = rtw_read16(rtwdev, REG_RRSR);
+
+	if (rssi >= 40) {
+		if (cur_rate != DESC_RATE54M) {
+			cur_rrsr |= BIT(DESC_RATE54M);
+			csi_cfg |= (DESC_RATE54M & BIT_MASK_CSI_RATE_VAL) <<
+				   BIT_SHIFT_CSI_RATE;
+			rtw_write16(rtwdev, REG_RRSR, cur_rrsr);
+			rtw_write32(rtwdev, REG_BBPSF_CTRL, csi_cfg);
+		}
+		*new_rate = DESC_RATE54M;
+	} else {
+		if (cur_rate != DESC_RATE24M) {
+			cur_rrsr &= ~BIT(DESC_RATE54M);
+			csi_cfg |= (DESC_RATE54M & BIT_MASK_CSI_RATE_VAL) <<
+				   BIT_SHIFT_CSI_RATE;
+			rtw_write16(rtwdev, REG_RRSR, cur_rrsr);
+			rtw_write32(rtwdev, REG_BBPSF_CTRL, csi_cfg);
+		}
+		*new_rate = DESC_RATE24M;
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/bf.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/bf.h
@@ -0,0 +1,114 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright(c) 2018-2019  Realtek Corporation.
+ */
+
+#ifndef __RTW_BF_H_
+#define __RTW_BF_H_
+
+#define REG_TXBF_CTRL		0x042C
+#define REG_RRSR		0x0440
+#define REG_NDPA_OPT_CTRL	0x045F
+
+#define REG_ASSOCIATED_BFMER0_INFO	0x06E4
+#define REG_ASSOCIATED_BFMER1_INFO	0x06EC
+#define REG_TX_CSI_RPT_PARAM_BW20	0x06F4
+#define REG_SND_PTCL_CTRL		0x0718
+#define REG_MU_TX_CTL			0x14C0
+#define REG_MU_STA_GID_VLD		0x14C4
+#define REG_MU_STA_USER_POS_INFO	0x14C8
+#define REG_CSI_RRSR			0x1678
+#define REG_WMAC_MU_BF_OPTION		0x167C
+#define REG_WMAC_MU_BF_CTL		0x1680
+
+#define BIT_WMAC_USE_NDPARATE			BIT(30)
+#define BIT_WMAC_TXMU_ACKPOLICY_EN		BIT(6)
+#define BIT_USE_NDPA_PARAMETER			BIT(30)
+#define BIT_MU_P1_WAIT_STATE_EN			BIT(16)
+#define BIT_EN_MU_MIMO				BIT(7)
+
+#define R_MU_RL				0xf
+#define BIT_SHIFT_R_MU_RL		12
+#define BIT_SHIFT_WMAC_TXMU_ACKPOLICY	4
+#define BIT_SHIFT_CSI_RATE		24
+
+#define BIT_MASK_R_MU_RL (R_MU_RL << BIT_SHIFT_R_MU_RL)
+#define BIT_MASK_R_MU_TABLE_VALID	0x3f
+#define BIT_MASK_CSI_RATE_VAL		0x3F
+#define BIT_MASK_CSI_RATE (BIT_MASK_CSI_RATE_VAL << BIT_SHIFT_CSI_RATE)
+
+#define BIT_RXFLTMAP0_ACTIONNOACK	BIT(14)
+#define BIT_RXFLTMAP1_BF		(BIT(4) | BIT(5))
+#define BIT_RXFLTMAP1_BF_REPORT_POLL	BIT(4)
+#define BIT_RXFLTMAP4_BF_REPORT_POLL	BIT(4)
+
+#define RTW_NDP_RX_STANDBY_TIME	0x70
+#define RTW_SND_CTRL_REMOVE	0xD8
+#define RTW_SND_CTRL_SOUNDING	0xDB
+
+enum csi_seg_len {
+	HAL_CSI_SEG_4K = 0,
+	HAL_CSI_SEG_8K = 1,
+	HAL_CSI_SEG_11K = 2,
+};
+
+struct cfg_mumimo_para {
+	u8 sounding_sts[6];
+	u16 grouping_bitmap;
+	u8 mu_tx_en;
+	u32 given_gid_tab[2];
+	u32 given_user_pos[4];
+};
+
+struct mu_bfer_init_para {
+	u16 paid;
+	u16 csi_para;
+	u16 my_aid;
+	enum csi_seg_len csi_length_sel;
+	u8 bfer_address[ETH_ALEN];
+};
+
+void rtw_bf_disassoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
+		     struct ieee80211_bss_conf *bss_conf);
+void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
+		  struct ieee80211_bss_conf *bss_conf);
+void rtw_bf_init_bfer_entry_mu(struct rtw_dev *rtwdev,
+			       struct mu_bfer_init_para *param);
+void rtw_bf_cfg_sounding(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			 enum rtw_trx_desc_rate rate);
+void rtw_bf_cfg_mu_bfee(struct rtw_dev *rtwdev, struct cfg_mumimo_para *param);
+void rtw_bf_del_bfer_entry_mu(struct rtw_dev *rtwdev);
+void rtw_bf_del_sounding(struct rtw_dev *rtwdev);
+void rtw_bf_enable_bfee_su(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			   struct rtw_bfee *bfee);
+void rtw_bf_enable_bfee_mu(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			   struct rtw_bfee *bfee);
+void rtw_bf_remove_bfee_su(struct rtw_dev *rtwdev, struct rtw_bfee *bfee);
+void rtw_bf_remove_bfee_mu(struct rtw_dev *rtwdev, struct rtw_bfee *bfee);
+void rtw_bf_set_gid_table(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
+			  struct ieee80211_bss_conf *conf);
+void rtw_bf_phy_init(struct rtw_dev *rtwdev);
+void rtw_bf_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
+			 u8 fixrate_en, u8 *new_rate);
+static inline void rtw_chip_config_bfee(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+					struct rtw_bfee *bfee, bool enable)
+{
+	if (rtwdev->chip->ops->config_bfee)
+		rtwdev->chip->ops->config_bfee(rtwdev, vif, bfee, enable);
+}
+
+static inline void rtw_chip_set_gid_table(struct rtw_dev *rtwdev,
+					  struct ieee80211_vif *vif,
+					  struct ieee80211_bss_conf *conf)
+{
+	if (rtwdev->chip->ops->set_gid_table)
+		rtwdev->chip->ops->set_gid_table(rtwdev, vif, conf);
+}
+
+static inline void rtw_chip_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
+					 u8 fixrate_en, u8 *new_rate)
+{
+	if (rtwdev->chip->ops->cfg_csi_rate)
+		rtwdev->chip->ops->cfg_csi_rate(rtwdev, rssi, cur_rate,
+						fixrate_en, new_rate);
+}
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/coex.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/coex.c
@@ -383,9 +383,9 @@
 	u8 rssi_step;
 	u8 rssi;
 
-	scan = rtw_flag_check(rtwdev, RTW_FLAG_SCANNING);
+	scan = test_bit(RTW_FLAG_SCANNING, rtwdev->flags);
 	coex_stat->wl_connected = !!rtwdev->sta_cnt;
-	coex_stat->wl_gl_busy = rtw_flag_check(rtwdev, RTW_FLAG_BUSY_TRAFFIC);
+	coex_stat->wl_gl_busy = test_bit(RTW_FLAG_BUSY_TRAFFIC, rtwdev->flags);
 
 	if (stats->tx_throughput > stats->rx_throughput)
 		coex_stat->wl_tput_dir = COEX_WL_TPUT_TX;
@@ -748,10 +748,18 @@
 
 static void rtw_coex_coex_ctrl_owner(struct rtw_dev *rtwdev, bool wifi_control)
 {
-	if (wifi_control)
+	struct rtw_chip_info *chip = rtwdev->chip;
+	const struct rtw_hw_reg *btg_reg = chip->btg_reg;
+
+	if (wifi_control) {
 		rtw_write32_set(rtwdev, REG_SYS_SDIO_CTRL, BIT_LTE_MUX_CTRL_PATH);
-	else
+		if (btg_reg)
+			rtw_write8_set(rtwdev, btg_reg->addr, btg_reg->mask);
+	} else {
 		rtw_write32_clr(rtwdev, REG_SYS_SDIO_CTRL, BIT_LTE_MUX_CTRL_PATH);
+		if (btg_reg)
+			rtw_write8_clr(rtwdev, btg_reg->addr, btg_reg->mask);
+	}
 }
 
 static void rtw_coex_set_gnt_bt(struct rtw_dev *rtwdev, u8 state)
@@ -810,8 +818,6 @@
 static void rtw_coex_power_save_state(struct rtw_dev *rtwdev, u8 ps_type,
 				      u8 lps_val, u8 rpwm_val)
 {
-	struct rtw_lps_conf *lps_conf = &rtwdev->lps_conf;
-	struct rtw_vif *rtwvif;
 	struct rtw_coex *coex = &rtwdev->coex;
 	struct rtw_coex_stat *coex_stat = &coex->stat;
 	u8 lps_mode = 0x0;
@@ -823,18 +829,14 @@
 		/* recover to original 32k low power setting */
 		coex_stat->wl_force_lps_ctrl = false;
 
-		rtwvif = lps_conf->rtwvif;
-		if (rtwvif && rtw_in_lps(rtwdev))
-			rtw_leave_lps(rtwdev, rtwvif);
+		rtw_leave_lps(rtwdev);
 		break;
 	case COEX_PS_LPS_OFF:
 		coex_stat->wl_force_lps_ctrl = true;
 		if (lps_mode)
 			rtw_fw_coex_tdma_type(rtwdev, 0x8, 0, 0, 0, 0);
 
-		rtwvif = lps_conf->rtwvif;
-		if (rtwvif && rtw_in_lps(rtwdev))
-			rtw_leave_lps(rtwdev, rtwvif);
+		rtw_leave_lps(rtwdev);
 		break;
 	default:
 		break;
@@ -1308,6 +1310,7 @@
 	struct rtw_chip_info *chip = rtwdev->chip;
 	bool wl_hi_pri = false;
 	u8 table_case, tdma_case;
+	u32 slot_type = 0;
 
 	if (coex_stat->wl_linkscan_proc || coex_stat->wl_hi_pri_task1 ||
 	    coex_stat->wl_hi_pri_task2)
@@ -1318,14 +1321,16 @@
 		if (wl_hi_pri) {
 			table_case = 15;
 			if (coex_stat->bt_a2dp_exist &&
-			    !coex_stat->bt_pan_exist)
+			    !coex_stat->bt_pan_exist) {
+				slot_type = TDMA_4SLOT;
 				tdma_case = 11;
-			else if (coex_stat->wl_hi_pri_task1)
+			} else if (coex_stat->wl_hi_pri_task1) {
 				tdma_case = 6;
-			else if (!coex_stat->bt_page)
+			} else if (!coex_stat->bt_page) {
 				tdma_case = 8;
-			else
+			} else {
 				tdma_case = 9;
+			}
 		} else if (coex_stat->wl_connected) {
 			table_case = 10;
 			tdma_case = 10;
@@ -1346,12 +1351,15 @@
 				tdma_case = 108;
 			else
 				tdma_case = 109;
+		} else if (coex_stat->wl_gl_busy) {
+			table_case = 114;
+			tdma_case = 121;
 		} else if (coex_stat->wl_connected) {
-			table_case = 101;
-			tdma_case = 110;
-		} else {
 			table_case = 100;
 			tdma_case = 100;
+		} else {
+			table_case = 101;
+			tdma_case = 100;
 		}
 	}
 
@@ -1361,7 +1369,7 @@
 	rtw_coex_set_ant_path(rtwdev, false, COEX_SET_ANT_2G);
 	rtw_coex_set_rf_para(rtwdev, chip->wl_rf_para_rx[0]);
 	rtw_coex_table(rtwdev, table_case);
-	rtw_coex_tdma(rtwdev, false, tdma_case);
+	rtw_coex_tdma(rtwdev, false, tdma_case | slot_type);
 }
 
 static void rtw_coex_action_bt_hfp(struct rtw_dev *rtwdev)
@@ -1475,13 +1483,13 @@
 
 	if (efuse->share_ant) {
 		/* Shared-Ant */
+		slot_type = TDMA_4SLOT;
+
 		if (coex_stat->wl_gl_busy && coex_stat->wl_noisy_level == 0)
 			table_case = 10;
 		else
 			table_case = 9;
 
-		slot_type = TDMA_4SLOT;
-
 		if (coex_stat->wl_gl_busy)
 			tdma_case = 13;
 		else
@@ -1585,13 +1593,14 @@
 
 	if (efuse->share_ant) {
 		/* Shared-Ant */
+		slot_type = TDMA_4SLOT;
+
 		if (coex_stat->bt_ble_exist)
 			table_case = 26;
 		else
 			table_case = 9;
 
 		if (coex_stat->wl_gl_busy) {
-			slot_type = TDMA_4SLOT;
 			tdma_case = 13;
 		} else {
 			tdma_case = 14;
@@ -1794,10 +1803,12 @@
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	struct rtw_chip_info *chip = rtwdev->chip;
 	u8 table_case, tdma_case;
+	u32 slot_type = 0;
 
 	if (efuse->share_ant) {
 		/* Shared-Ant */
 		if (coex_stat->bt_a2dp_exist) {
+			slot_type = TDMA_4SLOT;
 			table_case = 9;
 			tdma_case = 11;
 		} else {
@@ -1818,7 +1829,7 @@
 	rtw_coex_set_ant_path(rtwdev, true, COEX_SET_ANT_2G);
 	rtw_coex_set_rf_para(rtwdev, chip->wl_rf_para_rx[0]);
 	rtw_coex_table(rtwdev, table_case);
-	rtw_coex_tdma(rtwdev, false, tdma_case);
+	rtw_coex_tdma(rtwdev, false, tdma_case | slot_type);
 }
 
 static void rtw_coex_action_wl_not_connected(struct rtw_dev *rtwdev)
@@ -1904,6 +1915,9 @@
 
 	lockdep_assert_held(&rtwdev->mutex);
 
+	if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags))
+		return;
+
 	coex_dm->reason = reason;
 
 	/* update wifi_link_info_ext variable */
@@ -1917,7 +1931,8 @@
 	if (coex_stat->wl_under_ips)
 		return;
 
-	if (coex->freeze && !coex_stat->bt_setup_link)
+	if (coex->freeze && coex_dm->reason == COEX_RSN_BTINFO &&
+	    !coex_stat->bt_setup_link)
 		return;
 
 	coex_stat->cnt_wl[COEX_CNT_WL_COEXRUN]++;
@@ -2500,3 +2515,495 @@
 	rtw_coex_run_coex(rtwdev, COEX_RSN_WLSTATUS);
 	mutex_unlock(&rtwdev->mutex);
 }
+
+#ifdef CONFIG_RTW88_DEBUGFS
+#define INFO_SIZE	80
+
+#define case_BTINFO(src) \
+	case COEX_BTINFO_SRC_##src: return #src
+
+static const char *rtw_coex_get_bt_info_src_string(u8 bt_info_src)
+{
+	switch (bt_info_src) {
+	case_BTINFO(WL_FW);
+	case_BTINFO(BT_RSP);
+	case_BTINFO(BT_ACT);
+	default:
+		return "Unknown";
+	}
+}
+
+#define case_RSN(src) \
+	case COEX_RSN_##src: return #src
+
+static const char *rtw_coex_get_reason_string(u8 reason)
+{
+	switch (reason) {
+	case_RSN(2GSCANSTART);
+	case_RSN(5GSCANSTART);
+	case_RSN(SCANFINISH);
+	case_RSN(2GSWITCHBAND);
+	case_RSN(5GSWITCHBAND);
+	case_RSN(2GCONSTART);
+	case_RSN(5GCONSTART);
+	case_RSN(2GCONFINISH);
+	case_RSN(5GCONFINISH);
+	case_RSN(2GMEDIA);
+	case_RSN(5GMEDIA);
+	case_RSN(MEDIADISCON);
+	case_RSN(BTINFO);
+	case_RSN(LPS);
+	case_RSN(WLSTATUS);
+	default:
+		return "Unknown";
+	}
+}
+
+static int rtw_coex_addr_info(struct rtw_dev *rtwdev,
+			      const struct rtw_reg_domain *reg,
+			      char addr_info[], int n)
+{
+	const char *rf_prefix = "";
+	const char *sep = n == 0 ? "" : "/ ";
+	int ffs, fls;
+	int max_fls;
+
+	if (INFO_SIZE - n <= 0)
+		return 0;
+
+	switch (reg->domain) {
+	case RTW_REG_DOMAIN_MAC32:
+		max_fls = 31;
+		break;
+	case RTW_REG_DOMAIN_MAC16:
+		max_fls = 15;
+		break;
+	case RTW_REG_DOMAIN_MAC8:
+		max_fls = 7;
+		break;
+	case RTW_REG_DOMAIN_RF_A:
+	case RTW_REG_DOMAIN_RF_B:
+		rf_prefix = "RF_";
+		max_fls = 19;
+		break;
+	default:
+		return 0;
+	}
+
+	ffs = __ffs(reg->mask);
+	fls = __fls(reg->mask);
+
+	if (ffs == 0 && fls == max_fls)
+		return scnprintf(addr_info + n, INFO_SIZE - n, "%s%s%x",
+				 sep, rf_prefix, reg->addr);
+	else if (ffs == fls)
+		return scnprintf(addr_info + n, INFO_SIZE - n, "%s%s%x[%d]",
+				 sep, rf_prefix, reg->addr, ffs);
+	else
+		return scnprintf(addr_info + n, INFO_SIZE - n, "%s%s%x[%d:%d]",
+				 sep, rf_prefix, reg->addr, fls, ffs);
+}
+
+static int rtw_coex_val_info(struct rtw_dev *rtwdev,
+			     const struct rtw_reg_domain *reg,
+			     char val_info[], int n)
+{
+	const char *sep = n == 0 ? "" : "/ ";
+	u8 rf_path;
+
+	if (INFO_SIZE - n <= 0)
+		return 0;
+
+	switch (reg->domain) {
+	case RTW_REG_DOMAIN_MAC32:
+		return scnprintf(val_info + n, INFO_SIZE - n, "%s0x%x", sep,
+				 rtw_read32_mask(rtwdev, reg->addr, reg->mask));
+	case RTW_REG_DOMAIN_MAC16:
+		return scnprintf(val_info + n, INFO_SIZE - n, "%s0x%x", sep,
+				 rtw_read16_mask(rtwdev, reg->addr, reg->mask));
+	case RTW_REG_DOMAIN_MAC8:
+		return scnprintf(val_info + n, INFO_SIZE - n, "%s0x%x", sep,
+				 rtw_read8_mask(rtwdev, reg->addr, reg->mask));
+	case RTW_REG_DOMAIN_RF_A:
+		rf_path = RF_PATH_A;
+		break;
+	case RTW_REG_DOMAIN_RF_B:
+		rf_path = RF_PATH_B;
+		break;
+	default:
+		return 0;
+	}
+
+	/* only RF go through here */
+	return scnprintf(val_info + n, INFO_SIZE - n, "%s0x%x", sep,
+			 rtw_read_rf(rtwdev, rf_path, reg->addr, reg->mask));
+}
+
+static void rtw_coex_set_coexinfo_hw(struct rtw_dev *rtwdev, struct seq_file *m)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	const struct rtw_reg_domain *reg;
+	char addr_info[INFO_SIZE];
+	int n_addr = 0;
+	char val_info[INFO_SIZE];
+	int n_val = 0;
+	int i;
+
+	for (i = 0; i < chip->coex_info_hw_regs_num; i++) {
+		reg = &chip->coex_info_hw_regs[i];
+
+		n_addr += rtw_coex_addr_info(rtwdev, reg, addr_info, n_addr);
+		n_val += rtw_coex_val_info(rtwdev, reg, val_info, n_val);
+
+		if (reg->domain == RTW_REG_DOMAIN_NL) {
+			seq_printf(m, "%-40s = %s\n", addr_info, val_info);
+			n_addr = 0;
+			n_val = 0;
+		}
+	}
+
+	if (n_addr != 0 && n_val != 0)
+		seq_printf(m, "%-40s = %s\n", addr_info, val_info);
+}
+
+static bool rtw_coex_get_bt_reg(struct rtw_dev *rtwdev,
+				u8 type, u16 addr, u16 *val)
+{
+	struct rtw_coex_info_req req = {0};
+	struct sk_buff *skb;
+	__le16 le_addr;
+	u8 *payload;
+
+	le_addr = cpu_to_le16(addr);
+	req.op_code = BT_MP_INFO_OP_READ_REG;
+	req.para1 = type;
+	req.para2 = le16_get_bits(le_addr, GENMASK(7, 0));
+	req.para3 = le16_get_bits(le_addr, GENMASK(15, 8));
+	skb = rtw_coex_info_request(rtwdev, &req);
+	if (!skb) {
+		*val = 0xeaea;
+		return false;
+	}
+
+	payload = get_payload_from_coex_resp(skb);
+	*val = GET_COEX_RESP_BT_REG_VAL(payload);
+
+	return true;
+}
+
+static bool rtw_coex_get_bt_patch_version(struct rtw_dev *rtwdev,
+					  u32 *patch_version)
+{
+	struct rtw_coex_info_req req = {0};
+	struct sk_buff *skb;
+	u8 *payload;
+	bool ret = false;
+
+	req.op_code = BT_MP_INFO_OP_PATCH_VER;
+	skb = rtw_coex_info_request(rtwdev, &req);
+	if (!skb)
+		goto out;
+
+	payload = get_payload_from_coex_resp(skb);
+	*patch_version = GET_COEX_RESP_BT_PATCH_VER(payload);
+	ret = true;
+
+out:
+	return ret;
+}
+
+static bool rtw_coex_get_bt_supported_version(struct rtw_dev *rtwdev,
+					      u32 *supported_version)
+{
+	struct rtw_coex_info_req req = {0};
+	struct sk_buff *skb;
+	u8 *payload;
+	bool ret = false;
+
+	req.op_code = BT_MP_INFO_OP_SUPP_VER;
+	skb = rtw_coex_info_request(rtwdev, &req);
+	if (!skb)
+		goto out;
+
+	payload = get_payload_from_coex_resp(skb);
+	*supported_version = GET_COEX_RESP_BT_SUPP_VER(payload);
+	ret = true;
+
+out:
+	return ret;
+}
+
+static bool rtw_coex_get_bt_supported_feature(struct rtw_dev *rtwdev,
+					      u32 *supported_feature)
+{
+	struct rtw_coex_info_req req = {0};
+	struct sk_buff *skb;
+	u8 *payload;
+	bool ret = false;
+
+	req.op_code = BT_MP_INFO_OP_SUPP_FEAT;
+	skb = rtw_coex_info_request(rtwdev, &req);
+	if (!skb)
+		goto out;
+
+	payload = get_payload_from_coex_resp(skb);
+	*supported_feature = GET_COEX_RESP_BT_SUPP_FEAT(payload);
+	ret = true;
+
+out:
+	return ret;
+}
+
+struct rtw_coex_sta_stat_iter_data {
+	struct rtw_vif *rtwvif;
+	struct seq_file *file;
+};
+
+static void rtw_coex_sta_stat_iter(void *data, struct ieee80211_sta *sta)
+{
+	struct rtw_coex_sta_stat_iter_data *sta_iter_data = data;
+	struct rtw_vif *rtwvif = sta_iter_data->rtwvif;
+	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+	struct seq_file *m = sta_iter_data->file;
+	struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif);
+	u8 rssi;
+
+	if (si->vif != vif)
+		return;
+
+	rssi = ewma_rssi_read(&si->avg_rssi);
+	seq_printf(m, "\tPeer %3d\n", si->mac_id);
+	seq_printf(m, "\t\t%-24s = %d\n", "RSSI", rssi);
+	seq_printf(m, "\t\t%-24s = %d\n", "BW mode", si->bw_mode);
+}
+
+struct rtw_coex_vif_stat_iter_data {
+	struct rtw_dev *rtwdev;
+	struct seq_file *file;
+};
+
+static void rtw_coex_vif_stat_iter(void *data, u8 *mac,
+				   struct ieee80211_vif *vif)
+{
+	struct rtw_coex_vif_stat_iter_data *vif_iter_data = data;
+	struct rtw_coex_sta_stat_iter_data sta_iter_data;
+	struct rtw_dev *rtwdev = vif_iter_data->rtwdev;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+	struct seq_file *m = vif_iter_data->file;
+	struct ieee80211_bss_conf *bss_conf = &vif->bss_conf;
+
+	seq_printf(m, "Iface on Port (%d)\n", rtwvif->port);
+	seq_printf(m, "\t%-32s = %d\n",
+		   "Beacon interval", bss_conf->beacon_int);
+	seq_printf(m, "\t%-32s = %d\n",
+		   "Network Type", rtwvif->net_type);
+
+	sta_iter_data.rtwvif = rtwvif;
+	sta_iter_data.file = m;
+	rtw_iterate_stas_atomic(rtwdev, rtw_coex_sta_stat_iter,
+				&sta_iter_data);
+}
+
+void rtw_coex_display_coex_info(struct rtw_dev *rtwdev, struct seq_file *m)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	struct rtw_coex *coex = &rtwdev->coex;
+	struct rtw_coex_stat *coex_stat = &coex->stat;
+	struct rtw_coex_dm *coex_dm = &coex->dm;
+	struct rtw_hal *hal = &rtwdev->hal;
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct rtw_fw_state *fw = &rtwdev->fw;
+	struct rtw_coex_vif_stat_iter_data vif_iter_data;
+	u8 reason = coex_dm->reason;
+	u8 sys_lte;
+	u16 score_board_WB, score_board_BW;
+	u32 wl_reg_6c0, wl_reg_6c4, wl_reg_6c8, wl_reg_778, wl_reg_6cc;
+	u32 lte_coex, bt_coex;
+	u32 bt_hi_pri, bt_lo_pri;
+	int i;
+
+	score_board_BW = rtw_coex_read_scbd(rtwdev);
+	score_board_WB = coex_stat->score_board;
+	wl_reg_6c0 = rtw_read32(rtwdev, 0x6c0);
+	wl_reg_6c4 = rtw_read32(rtwdev, 0x6c4);
+	wl_reg_6c8 = rtw_read32(rtwdev, 0x6c8);
+	wl_reg_6cc = rtw_read32(rtwdev, 0x6cc);
+	wl_reg_778 = rtw_read32(rtwdev, 0x778);
+	bt_hi_pri = rtw_read32(rtwdev, 0x770);
+	bt_lo_pri = rtw_read32(rtwdev, 0x774);
+	rtw_write8(rtwdev, 0x76e, 0xc);
+	sys_lte = rtw_read8(rtwdev, 0x73);
+	lte_coex = rtw_coex_read_indirect_reg(rtwdev, 0x38);
+	bt_coex = rtw_coex_read_indirect_reg(rtwdev, 0x54);
+
+	if (!coex_stat->bt_disabled && !coex_stat->bt_mailbox_reply) {
+		rtw_coex_get_bt_supported_version(rtwdev,
+				&coex_stat->bt_supported_version);
+		rtw_coex_get_bt_patch_version(rtwdev, &coex_stat->patch_ver);
+		rtw_coex_get_bt_supported_feature(rtwdev,
+				&coex_stat->bt_supported_feature);
+		rtw_coex_get_bt_reg(rtwdev, 3, 0xae, &coex_stat->bt_reg_vendor_ae);
+		rtw_coex_get_bt_reg(rtwdev, 3, 0xac, &coex_stat->bt_reg_vendor_ac);
+
+		if (coex_stat->patch_ver != 0)
+			coex_stat->bt_mailbox_reply = true;
+	}
+
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "\t\tBT Coexist info %x\n", chip->id);
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "%-40s = %s/ %d\n",
+		   "Mech/ RFE",
+		   efuse->share_ant ? "Shared" : "Non-Shared",
+		   efuse->rfe_option);
+	seq_printf(m, "%-40s = %08x/ 0x%02x/ 0x%08x %s\n",
+		   "Coex Ver/ BT Dez/ BT Rpt",
+		   chip->coex_para_ver, chip->bt_desired_ver,
+		   coex_stat->bt_supported_version,
+		   coex_stat->bt_disabled ? "(BT disabled)" :
+		   coex_stat->bt_supported_version >= chip->bt_desired_ver ?
+		   "(Match)" : "(Mismatch)");
+	seq_printf(m, "%-40s = %s/ %u/ %d\n",
+		   "Role/ RoleSwCnt/ IgnWL/ Feature",
+		   coex_stat->bt_slave ? "Slave" : "Master",
+		   coex_stat->cnt_bt[COEX_CNT_BT_ROLESWITCH],
+		   coex_dm->ignore_wl_act);
+	seq_printf(m, "%-40s = %u.%u/ 0x%x/ %c\n",
+		   "WL FW/ BT FW/ KT",
+		   fw->version, fw->sub_version,
+		   coex_stat->patch_ver, coex_stat->kt_ver + 65);
+	seq_printf(m, "%-40s = %u/ %u/ %u/ ch-(%u)\n",
+		   "AFH Map",
+		   coex_dm->wl_ch_info[0], coex_dm->wl_ch_info[1],
+		   coex_dm->wl_ch_info[2], hal->current_channel);
+
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "\t\tBT Status\n");
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "%-40s = %s/ %ddBm/ %u/ %u\n",
+		   "BT status/ rssi/ retry/ pop",
+		   coex_dm->bt_status == COEX_BTSTATUS_NCON_IDLE ? "non-conn" :
+		   coex_dm->bt_status == COEX_BTSTATUS_CON_IDLE ? "conn-idle" : "busy",
+		   coex_stat->bt_rssi - 100,
+		   coex_stat->cnt_bt[COEX_CNT_BT_RETRY],
+		   coex_stat->cnt_bt[COEX_CNT_BT_POPEVENT]);
+	seq_printf(m, "%-40s = %s%s%s%s%s (multi-link %d)\n",
+		   "Profiles",
+		   coex_stat->bt_a2dp_exist ? (coex_stat->bt_a2dp_sink ?
+					       "A2DP sink," : "A2DP,") : "",
+		   coex_stat->bt_hfp_exist ? "HFP," : "",
+		   coex_stat->bt_hid_exist ?
+		   (coex_stat->bt_ble_exist ? "HID(RCU)," :
+		    coex_stat->bt_hid_slot >= 2 ? "HID(4/18)" :
+		    "HID(2/18),") : "",
+		   coex_stat->bt_pan_exist ? coex_stat->bt_opp_exist ?
+		   "OPP," : "PAN," : "",
+		   coex_stat->bt_ble_voice ? "Voice," : "",
+		   coex_stat->bt_multi_link);
+	seq_printf(m, "%-40s = %u/ %u/ %u/ 0x%08x\n",
+		   "Reinit/ Relink/ IgnWl/ Feature",
+		   coex_stat->cnt_bt[COEX_CNT_BT_REINIT],
+		   coex_stat->cnt_bt[COEX_CNT_BT_SETUPLINK],
+		   coex_stat->cnt_bt[COEX_CNT_BT_IGNWLANACT],
+		   coex_stat->bt_supported_feature);
+	seq_printf(m, "%-40s = %u/ %u/ %u/ %u\n",
+		   "Page/ Inq/ iqk/ iqk fail",
+		   coex_stat->cnt_bt[COEX_CNT_BT_PAGE],
+		   coex_stat->cnt_bt[COEX_CNT_BT_INQ],
+		   coex_stat->cnt_bt[COEX_CNT_BT_IQK],
+		   coex_stat->cnt_bt[COEX_CNT_BT_IQKFAIL]);
+	seq_printf(m, "%-40s = 0x%04x/ 0x%04x/ 0x%04x/ 0x%04x\n",
+		   "0xae/ 0xac/ score board (W->B)/ (B->W)",
+		   coex_stat->bt_reg_vendor_ae,
+		   coex_stat->bt_reg_vendor_ac,
+		   score_board_WB, score_board_BW);
+	seq_printf(m, "%-40s = %u/%u, %u/%u\n",
+		   "Hi-Pri TX/RX, Lo-Pri TX/RX",
+		   bt_hi_pri & 0xffff, bt_hi_pri >> 16,
+		   bt_lo_pri & 0xffff, bt_lo_pri >> 16);
+	for (i = 0; i < COEX_BTINFO_SRC_BT_IQK; i++)
+		seq_printf(m, "%-40s = %7ph\n",
+			   rtw_coex_get_bt_info_src_string(i),
+			   coex_stat->bt_info_c2h[i]);
+
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "\t\tWiFi Status\n");
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "%-40s = %d\n",
+		   "Scanning", test_bit(RTW_FLAG_SCANNING, rtwdev->flags));
+	seq_printf(m, "%-40s = %u/ TX %d Mbps/ RX %d Mbps\n",
+		   "G_busy/ TX/ RX",
+		   coex_stat->wl_gl_busy,
+		   rtwdev->stats.tx_throughput, rtwdev->stats.rx_throughput);
+	seq_printf(m, "%-40s = %u/ %u/ %u\n",
+		   "IPS/ Low Power/ PS mode",
+		   test_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags),
+		   test_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags),
+		   rtwdev->lps_conf.mode);
+
+	vif_iter_data.rtwdev = rtwdev;
+	vif_iter_data.file = m;
+	rtw_iterate_vifs_atomic(rtwdev, rtw_coex_vif_stat_iter, &vif_iter_data);
+
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "\t\tMechanism\n");
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "%-40s = %5ph (case-%d)\n",
+		   "TDMA",
+		   coex_dm->ps_tdma_para, coex_dm->cur_ps_tdma);
+	seq_printf(m, "%-40s = %d\n",
+		   "Timer base", coex_stat->tdma_timer_base);
+	seq_printf(m, "%-40s = %d/ 0x%08x/ 0x%08x/ 0x%08x\n",
+		   "Table/ 0x6c0/ 0x6c4/ 0x6c8",
+		   coex_dm->cur_table, wl_reg_6c0, wl_reg_6c4, wl_reg_6c8);
+	seq_printf(m, "%-40s = 0x%08x/ 0x%08x/ reason (%s)\n",
+		   "0x778/ 0x6cc/ Reason",
+		   wl_reg_778, wl_reg_6cc, rtw_coex_get_reason_string(reason));
+	seq_printf(m, "%-40s = %u/ %u/ %u/ %u/ %u\n",
+		   "Null All/ Retry/ Ack/ BT Empty/ BT Late",
+		   coex_stat->wl_fw_dbg_info[1], coex_stat->wl_fw_dbg_info[2],
+		   coex_stat->wl_fw_dbg_info[3], coex_stat->wl_fw_dbg_info[4],
+		   coex_stat->wl_fw_dbg_info[5]);
+	seq_printf(m, "%-40s = %u/ %u/ %s/ %u\n",
+		   "Cnt TDMA Toggle/ Lk 5ms/ Lk 5ms on/ FW",
+		   coex_stat->wl_fw_dbg_info[6],
+		   coex_stat->wl_fw_dbg_info[7],
+		   coex_stat->wl_slot_extend ? "Yes" : "No",
+		   coex_stat->cnt_wl[COEX_CNT_WL_FW_NOTIFY]);
+
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "\t\tHW setting\n");
+	seq_printf(m, "**********************************************\n");
+	seq_printf(m, "%-40s = %s/ %s\n",
+		   "LTE Coex/ Path Owner",
+		   lte_coex & BIT(7) ? "ON" : "OFF",
+		   sys_lte & BIT(2) ? "WL" : "BT");
+	seq_printf(m, "%-40s = RF:%s_BB:%s/ RF:%s_BB:%s/ %s\n",
+		   "GNT_WL_CTRL/ GNT_BT_CTRL/ Dbg",
+		   lte_coex & BIT(12) ? "SW" : "HW",
+		   lte_coex & BIT(8) ? "SW" : "HW",
+		   lte_coex & BIT(14) ? "SW" : "HW",
+		   lte_coex & BIT(10) ? "SW" : "HW",
+		   sys_lte & BIT(3) ? "On" : "Off");
+	seq_printf(m, "%-40s = %lu/ %lu\n",
+		   "GNT_WL/ GNT_BT",
+		   (bt_coex & BIT(2)) >> 2, (bt_coex & BIT(3)) >> 3);
+	seq_printf(m, "%-40s = %u/ %u/ %u/ %u\n",
+		   "CRC OK CCK/ OFDM/ HT/ VHT",
+		   dm_info->cck_ok_cnt, dm_info->ofdm_ok_cnt,
+		   dm_info->ht_ok_cnt, dm_info->vht_ok_cnt);
+	seq_printf(m, "%-40s = %u/ %u/ %u/ %u\n",
+		   "CRC ERR CCK/ OFDM/ HT/ VHT",
+		   dm_info->cck_err_cnt, dm_info->ofdm_err_cnt,
+		   dm_info->ht_err_cnt, dm_info->vht_err_cnt);
+	seq_printf(m, "%-40s = %s/ %s/ %s/ %u\n",
+		   "HiPr/ Locking/ Locked/ Noisy",
+		   coex_stat->wl_hi_pri_task1 ? "Y" : "N",
+		   coex_stat->wl_cck_lock ? "Y" : "N",
+		   coex_stat->wl_cck_lock_ever ? "Y" : "N",
+		   coex_stat->wl_noisy_level);
+
+	rtw_coex_set_coexinfo_hw(rtwdev, m);
+}
+#endif /* CONFIG_RTW88_DEBUGFS */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/coex.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/coex.h
@@ -46,6 +46,14 @@
 	   (__rssi__ == COEX_RSSI_STATE_LOW || \
 	    __rssi__ == COEX_RSSI_STATE_STAY_LOW ? true : false); })
 
+#define GET_COEX_RESP_BT_SUPP_VER(payload)				\
+	le64_get_bits(*((__le64 *)(payload)), GENMASK_ULL(39, 32))
+#define GET_COEX_RESP_BT_SUPP_FEAT(payload)				\
+	le64_get_bits(*((__le64 *)(payload)), GENMASK_ULL(39, 24))
+#define GET_COEX_RESP_BT_PATCH_VER(payload)				\
+	le64_get_bits(*((__le64 *)(payload)), GENMASK_ULL(55, 24))
+#define GET_COEX_RESP_BT_REG_VAL(payload)				\
+	le64_get_bits(*((__le64 *)(payload)), GENMASK_ULL(39, 24))
 #define GET_COEX_RESP_BT_SCAN_TYPE(payload)				\
 	le64_get_bits(*((__le64 *)(payload)), GENMASK(31, 24))
 
@@ -367,4 +375,6 @@
 void rtw_coex_switchband_notify(struct rtw_dev *rtwdev, u8 type);
 void rtw_coex_wl_status_change_notify(struct rtw_dev *rtwdev);
 
+void rtw_coex_display_coex_info(struct rtw_dev *rtwdev, struct seq_file *m);
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/debug.c
@@ -5,10 +5,12 @@
 #include <linux/debugfs.h>
 #include <linux/seq_file.h>
 #include "main.h"
+#include "coex.h"
 #include "sec.h"
 #include "fw.h"
 #include "debug.h"
 #include "phy.h"
+#include "sar.h"
 
 #ifdef CONFIG_RTW88_DEBUGFS
 
@@ -146,6 +148,8 @@
 {
 	int tmp_len;
 
+	memset(tmp, 0, size);
+
 	if (count < num)
 		return -EFAULT;
 
@@ -498,20 +502,40 @@
 	seq_printf(m, " VHT%uSMCS%u", n_ss, mcs_n);
 }
 
+static void rtw_print_rate(struct seq_file *m, u8 rate)
+{
+	switch (rate) {
+	case DESC_RATE1M...DESC_RATE11M:
+		rtw_print_cck_rate_txt(m, rate);
+		break;
+	case DESC_RATE6M...DESC_RATE54M:
+		rtw_print_ofdm_rate_txt(m, rate);
+		break;
+	case DESC_RATEMCS0...DESC_RATEMCS15:
+		rtw_print_ht_rate_txt(m, rate);
+		break;
+	case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT2SS_MCS9:
+		rtw_print_vht_rate_txt(m, rate);
+		break;
+	default:
+		seq_printf(m, " Unknown rate=0x%x\n", rate);
+		break;
+	}
+}
+
 static int rtw_debugfs_get_tx_pwr_tbl(struct seq_file *m, void *v)
 {
 	struct rtw_debugfs_priv *debugfs_priv = m->private;
 	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
 	struct rtw_hal *hal = &rtwdev->hal;
-	void (*print_rate)(struct seq_file *, u8) = NULL;
 	u8 path, rate;
 	struct rtw_power_params pwr_param = {0};
 	u8 bw = hal->current_band_width;
 	u8 ch = hal->current_channel;
 	u8 regd = rtwdev->regd.txpwr_regd;
 
-	seq_printf(m, "%-4s %-10s %-3s%6s %-4s %4s (%-4s %-4s)\n",
-		   "path", "rate", "pwr", "", "base", "", "byr", "lmt");
+	seq_printf(m, "%-4s %-10s %-3s%6s %-4s %4s (%-4s %-4s %-4s %-4s)\n",
+		   "path", "rate", "pwr", "", "base", "", "byr", "lmt", "sar", "rem");
 
 	mutex_lock(&hal->tx_power_mutex);
 	for (path = RF_PATH_A; path <= RF_PATH_B; path++) {
@@ -528,37 +552,20 @@
 			    rate < DESC_RATEVHT1SS_MCS0)
 				continue;
 
-			switch (rate) {
-			case DESC_RATE1M...DESC_RATE11M:
-				print_rate = rtw_print_cck_rate_txt;
-				break;
-			case DESC_RATE6M...DESC_RATE54M:
-				print_rate = rtw_print_ofdm_rate_txt;
-				break;
-			case DESC_RATEMCS0...DESC_RATEMCS15:
-				print_rate = rtw_print_ht_rate_txt;
-				break;
-			case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT2SS_MCS9:
-				print_rate = rtw_print_vht_rate_txt;
-				break;
-			default:
-				print_rate = NULL;
-				break;
-			}
-
 			rtw_get_tx_power_params(rtwdev, path, rate, bw,
 						ch, regd, &pwr_param);
 
 			seq_printf(m, "%4c ", path + 'A');
-			if (print_rate)
-				print_rate(m, rate);
-			seq_printf(m, " %3u(0x%02x) %4u %4d (%4d %4d)\n",
+			rtw_print_rate(m, rate);
+			seq_printf(m, " %3u(0x%02x) %4u %4d (%4d %4d %4d %4d)\n",
 				   hal->tx_pwr_tbl[path][rate],
 				   hal->tx_pwr_tbl[path][rate],
 				   pwr_param.pwr_base,
-				   min_t(s8, pwr_param.pwr_offset,
-					 pwr_param.pwr_limit),
-				   pwr_param.pwr_offset, pwr_param.pwr_limit);
+				   min3(pwr_param.pwr_offset,
+					pwr_param.pwr_limit,
+					pwr_param.pwr_sar),
+				   pwr_param.pwr_offset, pwr_param.pwr_limit,
+				   pwr_param.pwr_sar, pwr_param.pwr_remnant);
 		}
 	}
 
@@ -567,6 +574,208 @@
 	return 0;
 }
 
+static int rtw_debugfs_get_phy_info(struct seq_file *m, void *v)
+{
+	struct rtw_debugfs_priv *debugfs_priv = m->private;
+	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	struct rtw_traffic_stats *stats = &rtwdev->stats;
+	struct rtw_pkt_count *last_cnt = &dm_info->last_pkt_count;
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct ewma_evm *ewma_evm = dm_info->ewma_evm;
+	struct ewma_snr *ewma_snr = dm_info->ewma_snr;
+	u8 ss, rate_id;
+
+	seq_puts(m, "==========[Common Info]========\n");
+	seq_printf(m, "Is link = %c\n", rtw_is_assoc(rtwdev) ? 'Y' : 'N');
+	seq_printf(m, "Current CH(fc) = %u\n", rtwdev->hal.current_channel);
+	seq_printf(m, "Current BW = %u\n", rtwdev->hal.current_band_width);
+	seq_printf(m, "Current IGI = 0x%x\n", dm_info->igi_history[0]);
+	seq_printf(m, "TP {Tx, Rx} = {%u, %u}Mbps\n\n",
+		   stats->tx_throughput, stats->rx_throughput);
+
+	seq_puts(m, "==========[Tx Phy Info]========\n");
+	seq_puts(m, "[Tx Rate] = ");
+	rtw_print_rate(m, dm_info->tx_rate);
+	seq_printf(m, "(0x%x)\n\n", dm_info->tx_rate);
+
+	seq_puts(m, "==========[Rx Phy Info]========\n");
+	seq_printf(m, "[Rx Beacon Count] = %u\n", last_cnt->num_bcn_pkt);
+	seq_puts(m, "[Rx Rate] = ");
+	rtw_print_rate(m, dm_info->curr_rx_rate);
+	seq_printf(m, "(0x%x)\n", dm_info->curr_rx_rate);
+
+	seq_puts(m, "[Rx Rate Count]:\n");
+	seq_printf(m, " * CCK = {%u, %u, %u, %u}\n",
+		   last_cnt->num_qry_pkt[DESC_RATE1M],
+		   last_cnt->num_qry_pkt[DESC_RATE2M],
+		   last_cnt->num_qry_pkt[DESC_RATE5_5M],
+		   last_cnt->num_qry_pkt[DESC_RATE11M]);
+
+	seq_printf(m, " * OFDM = {%u, %u, %u, %u, %u, %u, %u, %u}\n",
+		   last_cnt->num_qry_pkt[DESC_RATE6M],
+		   last_cnt->num_qry_pkt[DESC_RATE9M],
+		   last_cnt->num_qry_pkt[DESC_RATE12M],
+		   last_cnt->num_qry_pkt[DESC_RATE18M],
+		   last_cnt->num_qry_pkt[DESC_RATE24M],
+		   last_cnt->num_qry_pkt[DESC_RATE36M],
+		   last_cnt->num_qry_pkt[DESC_RATE48M],
+		   last_cnt->num_qry_pkt[DESC_RATE54M]);
+
+	for (ss = 0; ss < efuse->hw_cap.nss; ss++) {
+		rate_id = DESC_RATEMCS0 + ss * 8;
+		seq_printf(m, " * HT_MCS[%u:%u] = {%u, %u, %u, %u, %u, %u, %u, %u}\n",
+			   ss * 8, ss * 8 + 7,
+			   last_cnt->num_qry_pkt[rate_id],
+			   last_cnt->num_qry_pkt[rate_id + 1],
+			   last_cnt->num_qry_pkt[rate_id + 2],
+			   last_cnt->num_qry_pkt[rate_id + 3],
+			   last_cnt->num_qry_pkt[rate_id + 4],
+			   last_cnt->num_qry_pkt[rate_id + 5],
+			   last_cnt->num_qry_pkt[rate_id + 6],
+			   last_cnt->num_qry_pkt[rate_id + 7]);
+	}
+
+	for (ss = 0; ss < efuse->hw_cap.nss; ss++) {
+		rate_id = DESC_RATEVHT1SS_MCS0 + ss * 10;
+		seq_printf(m, " * VHT_MCS-%uss MCS[0:9] = {%u, %u, %u, %u, %u, %u, %u, %u, %u, %u}\n",
+			   ss + 1,
+			   last_cnt->num_qry_pkt[rate_id],
+			   last_cnt->num_qry_pkt[rate_id + 1],
+			   last_cnt->num_qry_pkt[rate_id + 2],
+			   last_cnt->num_qry_pkt[rate_id + 3],
+			   last_cnt->num_qry_pkt[rate_id + 4],
+			   last_cnt->num_qry_pkt[rate_id + 5],
+			   last_cnt->num_qry_pkt[rate_id + 6],
+			   last_cnt->num_qry_pkt[rate_id + 7],
+			   last_cnt->num_qry_pkt[rate_id + 8],
+			   last_cnt->num_qry_pkt[rate_id + 9]);
+	}
+
+	seq_printf(m, "[RSSI(dBm)] = {%d, %d}\n",
+		   dm_info->rssi[RF_PATH_A] - 100,
+		   dm_info->rssi[RF_PATH_B] - 100);
+	seq_printf(m, "[Rx EVM(dB)] = {-%d, -%d}\n",
+		   dm_info->rx_evm_dbm[RF_PATH_A],
+		   dm_info->rx_evm_dbm[RF_PATH_B]);
+	seq_printf(m, "[Rx SNR] = {%d, %d}\n",
+		   dm_info->rx_snr[RF_PATH_A],
+		   dm_info->rx_snr[RF_PATH_B]);
+	seq_printf(m, "[CFO_tail(KHz)] = {%d, %d}\n",
+		   dm_info->cfo_tail[RF_PATH_A],
+		   dm_info->cfo_tail[RF_PATH_B]);
+
+	if (dm_info->curr_rx_rate >= DESC_RATE11M) {
+		seq_puts(m, "[Rx Average Status]:\n");
+		seq_printf(m, " * OFDM, EVM: {-%d}, SNR: {%d}\n",
+			   (u8)ewma_evm_read(&ewma_evm[RTW_EVM_OFDM]),
+			   (u8)ewma_snr_read(&ewma_snr[RTW_SNR_OFDM_A]));
+		seq_printf(m, " * 1SS, EVM: {-%d}, SNR: {%d}\n",
+			   (u8)ewma_evm_read(&ewma_evm[RTW_EVM_1SS]),
+			   (u8)ewma_snr_read(&ewma_snr[RTW_SNR_1SS_A]));
+		seq_printf(m, " * 2SS, EVM: {-%d, -%d}, SNR: {%d, %d}\n",
+			   (u8)ewma_evm_read(&ewma_evm[RTW_EVM_2SS_A]),
+			   (u8)ewma_evm_read(&ewma_evm[RTW_EVM_2SS_B]),
+			   (u8)ewma_snr_read(&ewma_snr[RTW_SNR_2SS_A]),
+			   (u8)ewma_snr_read(&ewma_snr[RTW_SNR_2SS_B]));
+	}
+
+	seq_puts(m, "[Rx Counter]:\n");
+	seq_printf(m, " * CCA (CCK, OFDM, Total) = (%u, %u, %u)\n",
+		   dm_info->cck_cca_cnt,
+		   dm_info->ofdm_cca_cnt,
+		   dm_info->total_cca_cnt);
+	seq_printf(m, " * False Alarm (CCK, OFDM, Total) = (%u, %u, %u)\n",
+		   dm_info->cck_fa_cnt,
+		   dm_info->ofdm_fa_cnt,
+		   dm_info->total_fa_cnt);
+	seq_printf(m, " * CCK cnt (ok, err) = (%u, %u)\n",
+		   dm_info->cck_ok_cnt, dm_info->cck_err_cnt);
+	seq_printf(m, " * OFDM cnt (ok, err) = (%u, %u)\n",
+		   dm_info->ofdm_ok_cnt, dm_info->ofdm_err_cnt);
+	seq_printf(m, " * HT cnt (ok, err) = (%u, %u)\n",
+		   dm_info->ht_ok_cnt, dm_info->ht_err_cnt);
+	seq_printf(m, " * VHT cnt (ok, err) = (%u, %u)\n",
+		   dm_info->vht_ok_cnt, dm_info->vht_err_cnt);
+
+	return 0;
+}
+
+static int rtw_debugfs_get_coex_info(struct seq_file *m, void *v)
+{
+	struct rtw_debugfs_priv *debugfs_priv = m->private;
+	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
+
+	rtw_coex_display_coex_info(rtwdev, m);
+
+	return 0;
+}
+
+static ssize_t rtw_debugfs_set_coex_enable(struct file *filp,
+					   const char __user *buffer,
+					   size_t count, loff_t *loff)
+{
+	struct seq_file *seqpriv = (struct seq_file *)filp->private_data;
+	struct rtw_debugfs_priv *debugfs_priv = seqpriv->private;
+	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
+	struct rtw_coex *coex = &rtwdev->coex;
+	char tmp[32 + 1];
+	bool enable;
+	int ret;
+
+	rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 1);
+
+	ret = kstrtobool(tmp, &enable);
+	if (ret) {
+		rtw_warn(rtwdev, "invalid arguments\n");
+		return ret;
+	}
+
+	mutex_lock(&rtwdev->mutex);
+	coex->stop_dm = enable == 0;
+	mutex_unlock(&rtwdev->mutex);
+
+	return count;
+}
+
+static int rtw_debugfs_get_coex_enable(struct seq_file *m, void *v)
+{
+	struct rtw_debugfs_priv *debugfs_priv = m->private;
+	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
+	struct rtw_coex *coex = &rtwdev->coex;
+
+	seq_printf(m, "coex mechanism %s\n",
+		   coex->stop_dm ? "disabled" : "enabled");
+
+	return 0;
+}
+
+static ssize_t rtw_debugfs_set_edcca_enable(struct file *filp,
+					    const char __user *buffer,
+					    size_t count, loff_t *loff)
+{
+	struct rtw_debugfs_priv *debugfs_priv = filp->private_data;
+	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
+	char tmp[32 + 1];
+
+	rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 1);
+
+	kstrtobool(tmp, &rtw_edcca_enabled);
+	rtw_phy_adaptivity_set_mode(rtwdev);
+
+	return count;
+}
+
+static int rtw_debugfs_get_sar(struct seq_file *m, void *v)
+{
+	struct rtw_debugfs_priv *debugfs_priv = m->private;
+	struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
+
+	rtw_sar_dump_via_debugfs(rtwdev, m);
+
+	return 0;
+}
+
 #define rtw_debug_impl_mac(page, addr)				\
 static struct rtw_debugfs_priv rtw_debug_priv_mac_ ##page = {	\
 	.cb_read = rtw_debug_get_mac_page,			\
@@ -653,6 +862,27 @@
 	.cb_read = rtw_debugfs_get_rsvd_page,
 };
 
+static struct rtw_debugfs_priv rtw_debug_priv_phy_info = {
+	.cb_read = rtw_debugfs_get_phy_info,
+};
+
+static struct rtw_debugfs_priv rtw_debug_priv_coex_enable = {
+	.cb_write = rtw_debugfs_set_coex_enable,
+	.cb_read = rtw_debugfs_get_coex_enable,
+};
+
+static struct rtw_debugfs_priv rtw_debug_priv_coex_info = {
+	.cb_read = rtw_debugfs_get_coex_info,
+};
+
+static struct rtw_debugfs_priv rtw_debug_priv_edcca_enable = {
+	.cb_write = rtw_debugfs_set_edcca_enable,
+};
+
+static struct rtw_debugfs_priv rtw_debug_priv_sar = {
+	.cb_read = rtw_debugfs_get_sar,
+};
+
 #define rtw_debugfs_add_core(name, mode, fopname, parent)		\
 	do {								\
 		rtw_debug_priv_ ##name.rtwdev = rtwdev;			\
@@ -682,6 +912,10 @@
 	rtw_debugfs_add_rw(rf_read);
 	rtw_debugfs_add_rw(dump_cam);
 	rtw_debugfs_add_rw(rsvd_page);
+	rtw_debugfs_add_r(phy_info);
+	rtw_debugfs_add_r(coex_info);
+	rtw_debugfs_add_rw(coex_enable);
+	rtw_debugfs_add_r(sar);
 	rtw_debugfs_add_r(mac_0);
 	rtw_debugfs_add_r(mac_1);
 	rtw_debugfs_add_r(mac_2);
@@ -722,6 +956,7 @@
 	}
 	rtw_debugfs_add_r(rf_dump);
 	rtw_debugfs_add_r(tx_pwr_tbl);
+	rtw_debugfs_add_w(edcca_enable);
 }
 
 #endif /* CONFIG_RTW88_DEBUGFS */
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/debug.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/debug.h
@@ -16,6 +16,9 @@
 	RTW_DBG_RFK		= 0x00000080,
 	RTW_DBG_REGD		= 0x00000100,
 	RTW_DBG_DEBUGFS		= 0x00000200,
+	RTW_DBG_PS		= 0x00000400,
+	RTW_DBG_BF		= 0x00000800,
+	RTW_DBG_WOW		= 0x00001000,
 
 	RTW_DBG_ALL		= 0xffffffff
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/efuse.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/efuse.c
@@ -90,6 +90,8 @@
 	u32 addr;
 	u32 cnt;
 
+	rtw_chip_efuse_grant_on(rtwdev);
+
 	switch_efuse_bank(rtwdev);
 
 	/* disable 2.5V LDO */
@@ -113,6 +115,8 @@
 		*(map + addr) = (u8)(efuse_ctl & BIT_MASK_EF_DATA);
 	}
 
+	rtw_chip_efuse_grant_off(rtwdev);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/fw.c
@@ -7,7 +7,10 @@
 #include "fw.h"
 #include "tx.h"
 #include "reg.h"
+#include "sec.h"
 #include "debug.h"
+#include "util.h"
+#include "wow.h"
 
 static void rtw_fw_c2h_cmd_handle_ext(struct rtw_dev *rtwdev,
 				      struct sk_buff *skb)
@@ -20,13 +23,107 @@
 
 	switch (sub_cmd_id) {
 	case C2H_CCX_RPT:
-		rtw_tx_report_handle(rtwdev, skb);
+		rtw_tx_report_handle(rtwdev, skb, C2H_CCX_RPT);
 		break;
 	default:
 		break;
 	}
 }
 
+static u16 get_max_amsdu_len(u32 bit_rate)
+{
+	/* lower than ofdm, do not aggregate */
+	if (bit_rate < 550)
+		return 1;
+
+	/* lower than 20M 2ss mcs8, make it small */
+	if (bit_rate < 1800)
+		return 1200;
+
+	/* lower than 40M 2ss mcs9, make it medium */
+	if (bit_rate < 4000)
+		return 2600;
+
+	/* not yet 80M 2ss mcs8/9, make it twice regular packet size */
+	if (bit_rate < 7000)
+		return 3500;
+
+	/* unlimited */
+	return 0;
+}
+
+struct rtw_fw_iter_ra_data {
+	struct rtw_dev *rtwdev;
+	u8 *payload;
+};
+
+static void rtw_fw_ra_report_iter(void *data, struct ieee80211_sta *sta)
+{
+	struct rtw_fw_iter_ra_data *ra_data = data;
+	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+	u8 mac_id, rate, sgi, bw;
+	u8 mcs, nss;
+	u32 bit_rate;
+
+	mac_id = GET_RA_REPORT_MACID(ra_data->payload);
+	if (si->mac_id != mac_id)
+		return;
+
+	si->ra_report.txrate.flags = 0;
+
+	rate = GET_RA_REPORT_RATE(ra_data->payload);
+	sgi = GET_RA_REPORT_SGI(ra_data->payload);
+	bw = GET_RA_REPORT_BW(ra_data->payload);
+
+	if (rate < DESC_RATEMCS0) {
+		si->ra_report.txrate.legacy = rtw_desc_to_bitrate(rate);
+		goto legacy;
+	}
+
+	rtw_desc_to_mcsrate(rate, &mcs, &nss);
+	if (rate >= DESC_RATEVHT1SS_MCS0)
+		si->ra_report.txrate.flags |= RATE_INFO_FLAGS_VHT_MCS;
+	else if (rate >= DESC_RATEMCS0)
+		si->ra_report.txrate.flags |= RATE_INFO_FLAGS_MCS;
+
+	if (rate >= DESC_RATEMCS0) {
+		si->ra_report.txrate.mcs = mcs;
+		si->ra_report.txrate.nss = nss;
+	}
+
+	if (sgi)
+		si->ra_report.txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
+
+	if (bw == RTW_CHANNEL_WIDTH_80)
+		si->ra_report.txrate.bw = RATE_INFO_BW_80;
+	else if (bw == RTW_CHANNEL_WIDTH_40)
+		si->ra_report.txrate.bw = RATE_INFO_BW_40;
+	else
+		si->ra_report.txrate.bw = RATE_INFO_BW_20;
+
+legacy:
+	bit_rate = cfg80211_calculate_bitrate(&si->ra_report.txrate);
+
+	si->ra_report.desc_rate = rate;
+	si->ra_report.bit_rate = bit_rate;
+
+	sta->max_rc_amsdu_len = get_max_amsdu_len(bit_rate);
+}
+
+static void rtw_fw_ra_report_handle(struct rtw_dev *rtwdev, u8 *payload,
+				    u8 length)
+{
+	struct rtw_fw_iter_ra_data ra_data;
+
+	if (WARN(length < 7, "invalid ra report c2h length\n"))
+		return;
+
+	rtwdev->dm_info.tx_rate = GET_RA_REPORT_RATE(payload);
+	ra_data.rtwdev = rtwdev;
+	ra_data.payload = payload;
+	rtw_iterate_stas_atomic(rtwdev, rtw_fw_ra_report_iter, &ra_data);
+}
+
 void rtw_fw_c2h_cmd_handle(struct rtw_dev *rtwdev, struct sk_buff *skb)
 {
 	struct rtw_c2h_cmd *c2h;
@@ -39,7 +136,13 @@
 
 	mutex_lock(&rtwdev->mutex);
 
+	if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags))
+		goto unlock;
+
 	switch (c2h->id) {
+	case C2H_CCX_TX_RPT:
+		rtw_tx_report_handle(rtwdev, skb, C2H_CCX_TX_RPT);
+		break;
 	case C2H_BT_INFO:
 		rtw_coex_bt_info_notify(rtwdev, c2h->payload, len);
 		break;
@@ -49,10 +152,15 @@
 	case C2H_HALMAC:
 		rtw_fw_c2h_cmd_handle_ext(rtwdev, skb);
 		break;
+	case C2H_RA_RPT:
+		rtw_fw_ra_report_handle(rtwdev, c2h->payload, len);
+		break;
 	default:
+		rtw_dbg(rtwdev, RTW_DBG_FW, "C2H 0x%x isn't handled\n", c2h->id);
 		break;
 	}
 
+unlock:
 	mutex_unlock(&rtwdev->mutex);
 }
 
@@ -166,6 +274,9 @@
 	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
 	u16 total_size = H2C_PKT_HDR_SIZE + 4;
 
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return;
+
 	rtw_h2c_pkt_set_header(h2c_pkt, H2C_PKT_GENERAL_INFO);
 
 	SET_PKT_H2C_TOTAL_LEN(h2c_pkt, total_size);
@@ -186,6 +297,9 @@
 	u16 total_size = H2C_PKT_HDR_SIZE + 8;
 	u8 fw_rf_type = 0;
 
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return;
+
 	if (hal->rf_type == RF_1T1R)
 		fw_rf_type = FW_RF_1T1R;
 	else if (hal->rf_type == RF_2T2R)
@@ -216,6 +330,17 @@
 	rtw_fw_send_h2c_packet(rtwdev, h2c_pkt);
 }
 
+void rtw_fw_set_default_port(struct rtw_dev *rtwdev, u8 port)
+{
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_DEFAULT_PORT);
+
+	SET_DEFAULT_PORT_PORTID(h2c_pkt, port);
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
 void rtw_fw_query_bt_info(struct rtw_dev *rtwdev)
 {
 	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
@@ -340,7 +465,7 @@
 	SET_RA_INFO_INIT_RA_LVL(h2c_pkt, si->init_ra_lv);
 	SET_RA_INFO_SGI_EN(h2c_pkt, si->sgi_enable);
 	SET_RA_INFO_BW_MODE(h2c_pkt, si->bw_mode);
-	SET_RA_INFO_LDPC(h2c_pkt, si->ldpc_en);
+	SET_RA_INFO_LDPC(h2c_pkt, !!si->ldpc_en);
 	SET_RA_INFO_NO_UPDATE(h2c_pkt, no_update);
 	SET_RA_INFO_VHT_EN(h2c_pkt, si->vht_enable);
 	SET_RA_INFO_DIS_PT(h2c_pkt, disable_pt);
@@ -371,6 +496,8 @@
 	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
 	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
 
+	rtw_fw_set_default_port(rtwdev, conf->port_id);
+
 	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_SET_PWR_MODE);
 
 	SET_PWR_MODE_SET_MODE(h2c_pkt, conf->mode);
@@ -383,13 +510,103 @@
 	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
 }
 
+void rtw_fw_set_keep_alive_cmd(struct rtw_dev *rtwdev, bool enable)
+{
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+	struct rtw_fw_wow_keep_alive_para mode = {
+		.adopt = true,
+		.pkt_type = KEEP_ALIVE_NULL_PKT,
+		.period = 5,
+	};
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_KEEP_ALIVE);
+	SET_KEEP_ALIVE_ENABLE(h2c_pkt, enable);
+	SET_KEEP_ALIVE_ADOPT(h2c_pkt, mode.adopt);
+	SET_KEEP_ALIVE_PKT_TYPE(h2c_pkt, mode.pkt_type);
+	SET_KEEP_ALIVE_CHECK_PERIOD(h2c_pkt, mode.period);
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
+void rtw_fw_set_disconnect_decision_cmd(struct rtw_dev *rtwdev, bool enable)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+	struct rtw_fw_wow_disconnect_para mode = {
+		.adopt = true,
+		.period = 30,
+		.retry_count = 5,
+	};
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_DISCONNECT_DECISION);
+
+	if (test_bit(RTW_WOW_FLAG_EN_DISCONNECT, rtw_wow->flags)) {
+		SET_DISCONNECT_DECISION_ENABLE(h2c_pkt, enable);
+		SET_DISCONNECT_DECISION_ADOPT(h2c_pkt, mode.adopt);
+		SET_DISCONNECT_DECISION_CHECK_PERIOD(h2c_pkt, mode.period);
+		SET_DISCONNECT_DECISION_TRY_PKT_NUM(h2c_pkt, mode.retry_count);
+	}
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
+void rtw_fw_set_wowlan_ctrl_cmd(struct rtw_dev *rtwdev, bool enable)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_WOWLAN);
+
+	SET_WOWLAN_FUNC_ENABLE(h2c_pkt, enable);
+	if (rtw_wow_mgd_linked(rtwdev)) {
+		if (test_bit(RTW_WOW_FLAG_EN_MAGIC_PKT, rtw_wow->flags))
+			SET_WOWLAN_MAGIC_PKT_ENABLE(h2c_pkt, enable);
+		if (test_bit(RTW_WOW_FLAG_EN_DISCONNECT, rtw_wow->flags))
+			SET_WOWLAN_DEAUTH_WAKEUP_ENABLE(h2c_pkt, enable);
+		if (test_bit(RTW_WOW_FLAG_EN_REKEY_PKT, rtw_wow->flags))
+			SET_WOWLAN_REKEY_WAKEUP_ENABLE(h2c_pkt, enable);
+		if (rtw_wow->pattern_cnt)
+			SET_WOWLAN_PATTERN_MATCH_ENABLE(h2c_pkt, enable);
+	}
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
+void rtw_fw_set_aoac_global_info_cmd(struct rtw_dev *rtwdev,
+				     u8 pairwise_key_enc,
+				     u8 group_key_enc)
+{
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_AOAC_GLOBAL_INFO);
+
+	SET_AOAC_GLOBAL_INFO_PAIRWISE_ENC_ALG(h2c_pkt, pairwise_key_enc);
+	SET_AOAC_GLOBAL_INFO_GROUP_ENC_ALG(h2c_pkt, group_key_enc);
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
+void rtw_fw_set_remote_wake_ctrl_cmd(struct rtw_dev *rtwdev, bool enable)
+{
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_REMOTE_WAKE_CTRL);
+
+	SET_REMOTE_WAKECTRL_ENABLE(h2c_pkt, enable);
+
+	if (rtw_wow_no_link(rtwdev))
+		SET_REMOTE_WAKE_CTRL_NLO_OFFLOAD_EN(h2c_pkt, enable);
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
 static u8 rtw_get_rsvd_page_location(struct rtw_dev *rtwdev,
 				     enum rtw_rsvd_packet_type type)
 {
 	struct rtw_rsvd_page *rsvd_pkt;
 	u8 location = 0;
 
-	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, list) {
+	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, build_list) {
 		if (type == rsvd_pkt->type)
 			location = rsvd_pkt->page;
 	}
@@ -397,6 +614,79 @@
 	return location;
 }
 
+void rtw_fw_set_nlo_info(struct rtw_dev *rtwdev, bool enable)
+{
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+	u8 loc_nlo;
+
+	loc_nlo = rtw_get_rsvd_page_location(rtwdev, RSVD_NLO_INFO);
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_NLO_INFO);
+
+	SET_NLO_FUN_EN(h2c_pkt, enable);
+	if (enable) {
+		if (rtw_fw_lps_deep_mode)
+			SET_NLO_PS_32K(h2c_pkt, enable);
+		SET_NLO_IGNORE_SECURITY(h2c_pkt, enable);
+		SET_NLO_LOC_NLO_INFO(h2c_pkt, loc_nlo);
+	}
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
+void rtw_fw_set_pg_info(struct rtw_dev *rtwdev)
+{
+	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+	u8 loc_pg, loc_dpk;
+
+	loc_pg = rtw_get_rsvd_page_location(rtwdev, RSVD_LPS_PG_INFO);
+	loc_dpk = rtw_get_rsvd_page_location(rtwdev, RSVD_LPS_PG_DPK);
+
+	SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_LPS_PG_INFO);
+
+	LPS_PG_INFO_LOC(h2c_pkt, loc_pg);
+	LPS_PG_DPK_LOC(h2c_pkt, loc_dpk);
+	LPS_PG_SEC_CAM_EN(h2c_pkt, conf->sec_cam_backup);
+	LPS_PG_PATTERN_CAM_EN(h2c_pkt, conf->pattern_cam_backup);
+
+	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+}
+
+u8 rtw_get_rsvd_page_probe_req_location(struct rtw_dev *rtwdev,
+					struct cfg80211_ssid *ssid)
+{
+	struct rtw_rsvd_page *rsvd_pkt;
+	u8 location = 0;
+
+	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, build_list) {
+		if (rsvd_pkt->type != RSVD_PROBE_REQ)
+			continue;
+		if ((!ssid && !rsvd_pkt->ssid) ||
+		    rtw_ssid_equal(rsvd_pkt->ssid, ssid))
+			location = rsvd_pkt->page;
+	}
+
+	return location;
+}
+
+u16 rtw_get_rsvd_page_probe_req_size(struct rtw_dev *rtwdev,
+				     struct cfg80211_ssid *ssid)
+{
+	struct rtw_rsvd_page *rsvd_pkt;
+	u16 size = 0;
+
+	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, build_list) {
+		if (rsvd_pkt->type != RSVD_PROBE_REQ)
+			continue;
+		if ((!ssid && !rsvd_pkt->ssid) ||
+		    rtw_ssid_equal(rsvd_pkt->ssid, ssid))
+			size = rsvd_pkt->skb->len;
+	}
+
+	return size;
+}
+
 void rtw_send_rsvd_page_h2c(struct rtw_dev *rtwdev)
 {
 	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
@@ -423,34 +713,175 @@
 	rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
 }
 
-static struct sk_buff *
-rtw_beacon_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+static struct sk_buff *rtw_nlo_info_get(struct ieee80211_hw *hw)
 {
-	struct sk_buff *skb_new;
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_pno_request *pno_req = &rtwdev->wow.pno_req;
+	struct rtw_nlo_info_hdr *nlo_hdr;
+	struct cfg80211_ssid *ssid;
+	struct sk_buff *skb;
+	u8 *pos, loc;
+	u32 size;
+	int i;
 
-	if (vif->type != NL80211_IFTYPE_AP &&
-	    vif->type != NL80211_IFTYPE_ADHOC &&
-	    !ieee80211_vif_is_mesh(vif)) {
-		skb_new = alloc_skb(1, GFP_KERNEL);
-		if (!skb_new)
+	if (!pno_req->inited || !pno_req->match_set_cnt)
+		return NULL;
+
+	size = sizeof(struct rtw_nlo_info_hdr) + pno_req->match_set_cnt *
+		      IEEE80211_MAX_SSID_LEN + chip->tx_pkt_desc_sz;
+
+	skb = alloc_skb(size, GFP_KERNEL);
+	if (!skb)
+		return NULL;
+
+	skb_reserve(skb, chip->tx_pkt_desc_sz);
+
+	nlo_hdr = skb_put_zero(skb, sizeof(struct rtw_nlo_info_hdr));
+
+	nlo_hdr->nlo_count = pno_req->match_set_cnt;
+	nlo_hdr->hidden_ap_count = pno_req->match_set_cnt;
+
+	/* pattern check for firmware */
+	memset(nlo_hdr->pattern_check, 0xA5, FW_NLO_INFO_CHECK_SIZE);
+
+	for (i = 0; i < pno_req->match_set_cnt; i++)
+		nlo_hdr->ssid_len[i] = pno_req->match_sets[i].ssid.ssid_len;
+
+	for (i = 0; i < pno_req->match_set_cnt; i++) {
+		ssid = &pno_req->match_sets[i].ssid;
+		loc  = rtw_get_rsvd_page_probe_req_location(rtwdev, ssid);
+		if (!loc) {
+			rtw_err(rtwdev, "failed to get probe req rsvd loc\n");
+			kfree(skb);
 			return NULL;
-		skb_put(skb_new, 1);
-	} else {
-		skb_new = ieee80211_beacon_get(hw, vif);
+		}
+		nlo_hdr->location[i] = loc;
 	}
 
-	return skb_new;
+	for (i = 0; i < pno_req->match_set_cnt; i++) {
+		pos = skb_put_zero(skb, IEEE80211_MAX_SSID_LEN);
+		memcpy(pos, pno_req->match_sets[i].ssid.ssid,
+		       pno_req->match_sets[i].ssid.ssid_len);
+	}
+
+	return skb;
+}
+
+static struct sk_buff *rtw_cs_channel_info_get(struct ieee80211_hw *hw)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_pno_request *pno_req = &rtwdev->wow.pno_req;
+	struct ieee80211_channel *channels = pno_req->channels;
+	struct sk_buff *skb;
+	int count =  pno_req->channel_cnt;
+	u8 *pos;
+	int i = 0;
+
+	skb = alloc_skb(4 * count + chip->tx_pkt_desc_sz, GFP_KERNEL);
+	if (!skb)
+		return NULL;
+
+	skb_reserve(skb, chip->tx_pkt_desc_sz);
+
+	for (i = 0; i < count; i++) {
+		pos = skb_put_zero(skb, 4);
+
+		CHSW_INFO_SET_CH(pos, channels[i].hw_value);
+
+		if (channels[i].flags & IEEE80211_CHAN_RADAR)
+			CHSW_INFO_SET_ACTION_ID(pos, 0);
+		else
+			CHSW_INFO_SET_ACTION_ID(pos, 1);
+		CHSW_INFO_SET_TIMEOUT(pos, 1);
+		CHSW_INFO_SET_PRI_CH_IDX(pos, 1);
+		CHSW_INFO_SET_BW(pos, 0);
+	}
+
+	return skb;
+}
+
+static struct sk_buff *rtw_lps_pg_dpk_get(struct ieee80211_hw *hw)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
+	struct rtw_lps_pg_dpk_hdr *dpk_hdr;
+	struct sk_buff *skb;
+	u32 size;
+
+	size = chip->tx_pkt_desc_sz + sizeof(*dpk_hdr);
+	skb = alloc_skb(size, GFP_KERNEL);
+	if (!skb)
+		return NULL;
+
+	skb_reserve(skb, chip->tx_pkt_desc_sz);
+	dpk_hdr = skb_put_zero(skb, sizeof(*dpk_hdr));
+	dpk_hdr->dpk_ch = dpk_info->dpk_ch;
+	dpk_hdr->dpk_path_ok = dpk_info->dpk_path_ok[0];
+	memcpy(dpk_hdr->dpk_txagc, dpk_info->dpk_txagc, 2);
+	memcpy(dpk_hdr->dpk_gs, dpk_info->dpk_gs, 4);
+	memcpy(dpk_hdr->coef, dpk_info->coef, 160);
+
+	return skb;
+}
+
+static struct sk_buff *rtw_lps_pg_info_get(struct ieee80211_hw *hw)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
+	struct rtw_lps_pg_info_hdr *pg_info_hdr;
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct sk_buff *skb;
+	u32 size;
+
+	size = chip->tx_pkt_desc_sz + sizeof(*pg_info_hdr);
+	skb = alloc_skb(size, GFP_KERNEL);
+	if (!skb)
+		return NULL;
+
+	skb_reserve(skb, chip->tx_pkt_desc_sz);
+	pg_info_hdr = skb_put_zero(skb, sizeof(*pg_info_hdr));
+	pg_info_hdr->tx_bu_page_count = rtwdev->fifo.rsvd_drv_pg_num;
+	pg_info_hdr->macid = find_first_bit(rtwdev->mac_id_map, RTW_MAX_MAC_ID_NUM);
+	pg_info_hdr->sec_cam_count =
+		rtw_sec_cam_pg_backup(rtwdev, pg_info_hdr->sec_cam);
+	pg_info_hdr->pattern_count = rtw_wow->pattern_cnt;
+
+	conf->sec_cam_backup = pg_info_hdr->sec_cam_count != 0;
+	conf->pattern_cam_backup = rtw_wow->pattern_cnt != 0;
+
+	return skb;
 }
 
 static struct sk_buff *rtw_get_rsvd_page_skb(struct ieee80211_hw *hw,
-					     struct ieee80211_vif *vif,
-					     enum rtw_rsvd_packet_type type)
+					     struct rtw_rsvd_page *rsvd_pkt)
 {
+	struct ieee80211_vif *vif;
+	struct rtw_vif *rtwvif;
 	struct sk_buff *skb_new;
+	struct cfg80211_ssid *ssid;
+
+	if (rsvd_pkt->type == RSVD_DUMMY) {
+		skb_new = alloc_skb(1, GFP_KERNEL);
+		if (!skb_new)
+			return NULL;
+
+		skb_put(skb_new, 1);
+		return skb_new;
+	}
 
-	switch (type) {
+	rtwvif = rsvd_pkt->rtwvif;
+	if (!rtwvif)
+		return NULL;
+
+	vif = rtwvif_to_vif(rtwvif);
+
+	switch (rsvd_pkt->type) {
 	case RSVD_BEACON:
-		skb_new = rtw_beacon_get(hw, vif);
+		skb_new = ieee80211_beacon_get(hw, vif);
 		break;
 	case RSVD_PS_POLL:
 		skb_new = ieee80211_pspoll_get(hw, vif);
@@ -464,6 +895,27 @@
 	case RSVD_QOS_NULL:
 		skb_new = ieee80211_nullfunc_get(hw, vif, true);
 		break;
+	case RSVD_LPS_PG_DPK:
+		skb_new = rtw_lps_pg_dpk_get(hw);
+		break;
+	case RSVD_LPS_PG_INFO:
+		skb_new = rtw_lps_pg_info_get(hw);
+		break;
+	case RSVD_PROBE_REQ:
+		ssid = (struct cfg80211_ssid *)rsvd_pkt->ssid;
+		if (ssid)
+			skb_new = ieee80211_probereq_get(hw, vif->addr,
+							 ssid->ssid,
+							 ssid->ssid_len, 0);
+		else
+			skb_new = ieee80211_probereq_get(hw, vif->addr, NULL, 0, 0);
+		break;
+	case RSVD_NLO_INFO:
+		skb_new = rtw_nlo_info_get(hw);
+		break;
+	case RSVD_CH_INFO:
+		skb_new = rtw_cs_channel_info_get(hw);
+		break;
 	default:
 		return NULL;
 	}
@@ -474,14 +926,14 @@
 	return skb_new;
 }
 
-static void rtw_fill_rsvd_page_desc(struct rtw_dev *rtwdev, struct sk_buff *skb)
+static void rtw_fill_rsvd_page_desc(struct rtw_dev *rtwdev, struct sk_buff *skb,
+				    enum rtw_rsvd_packet_type type)
 {
-	struct rtw_tx_pkt_info pkt_info;
+	struct rtw_tx_pkt_info pkt_info = {0};
 	struct rtw_chip_info *chip = rtwdev->chip;
 	u8 *pkt_desc;
 
-	memset(&pkt_info, 0, sizeof(pkt_info));
-	rtw_rsvd_page_pkt_info_update(rtwdev, &pkt_info, skb);
+	rtw_tx_rsvd_page_pkt_info_update(rtwdev, &pkt_info, skb, type);
 	pkt_desc = skb_push(skb, chip->tx_pkt_desc_sz);
 	memset(pkt_desc, 0, chip->tx_pkt_desc_sz);
 	rtw_tx_fill_tx_desc(&pkt_info, skb);
@@ -498,9 +950,6 @@
 {
 	struct sk_buff *skb = rsvd_pkt->skb;
 
-	if (rsvd_pkt->add_txdesc)
-		rtw_fill_rsvd_page_desc(rtwdev, skb);
-
 	if (page >= 1)
 		memcpy(buf + page_margin + page_size * (page - 1),
 		       skb->data, skb->len);
@@ -508,47 +957,152 @@
 		memcpy(buf, skb->data, skb->len);
 }
 
-void rtw_add_rsvd_page(struct rtw_dev *rtwdev, enum rtw_rsvd_packet_type type,
-		       bool txdesc)
+static struct rtw_rsvd_page *rtw_alloc_rsvd_page(struct rtw_dev *rtwdev,
+						 enum rtw_rsvd_packet_type type,
+						 bool txdesc)
 {
-	struct rtw_rsvd_page *rsvd_pkt;
+	struct rtw_rsvd_page *rsvd_pkt = NULL;
+
+	rsvd_pkt = kzalloc(sizeof(*rsvd_pkt), GFP_KERNEL);
+
+	if (!rsvd_pkt)
+		return NULL;
 
+	INIT_LIST_HEAD(&rsvd_pkt->vif_list);
+	INIT_LIST_HEAD(&rsvd_pkt->build_list);
+	rsvd_pkt->type = type;
+	rsvd_pkt->add_txdesc = txdesc;
+
+	return rsvd_pkt;
+}
+
+static void rtw_insert_rsvd_page(struct rtw_dev *rtwdev,
+				 struct rtw_vif *rtwvif,
+				 struct rtw_rsvd_page *rsvd_pkt)
+{
 	lockdep_assert_held(&rtwdev->mutex);
 
-	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, list) {
-		if (rsvd_pkt->type == type)
-			return;
+	list_add_tail(&rsvd_pkt->vif_list, &rtwvif->rsvd_page_list);
+}
+
+static void rtw_add_rsvd_page(struct rtw_dev *rtwdev,
+			      struct rtw_vif *rtwvif,
+			      enum rtw_rsvd_packet_type type,
+			      bool txdesc)
+{
+	struct rtw_rsvd_page *rsvd_pkt;
+
+	rsvd_pkt = rtw_alloc_rsvd_page(rtwdev, type, txdesc);
+	if (!rsvd_pkt) {
+		rtw_err(rtwdev, "failed to alloc rsvd page %d\n", type);
+		return;
 	}
 
-	rsvd_pkt = kmalloc(sizeof(*rsvd_pkt), GFP_KERNEL);
-	if (!rsvd_pkt)
+	rsvd_pkt->rtwvif = rtwvif;
+	rtw_insert_rsvd_page(rtwdev, rtwvif, rsvd_pkt);
+}
+
+static void rtw_add_rsvd_page_probe_req(struct rtw_dev *rtwdev,
+					struct rtw_vif *rtwvif,
+					struct cfg80211_ssid *ssid)
+{
+	struct rtw_rsvd_page *rsvd_pkt;
+
+	rsvd_pkt = rtw_alloc_rsvd_page(rtwdev, RSVD_PROBE_REQ, true);
+	if (!rsvd_pkt) {
+		rtw_err(rtwdev, "failed to alloc probe req rsvd page\n");
 		return;
+	}
 
-	rsvd_pkt->type = type;
-	rsvd_pkt->add_txdesc = txdesc;
-	list_add_tail(&rsvd_pkt->list, &rtwdev->rsvd_page_list);
+	rsvd_pkt->rtwvif = rtwvif;
+	rsvd_pkt->ssid = ssid;
+	rtw_insert_rsvd_page(rtwdev, rtwvif, rsvd_pkt);
 }
 
-void rtw_reset_rsvd_page(struct rtw_dev *rtwdev)
+void rtw_remove_rsvd_page(struct rtw_dev *rtwdev,
+			  struct rtw_vif *rtwvif)
 {
 	struct rtw_rsvd_page *rsvd_pkt, *tmp;
 
 	lockdep_assert_held(&rtwdev->mutex);
 
-	list_for_each_entry_safe(rsvd_pkt, tmp, &rtwdev->rsvd_page_list, list) {
-		if (rsvd_pkt->type == RSVD_BEACON)
-			continue;
-		list_del(&rsvd_pkt->list);
+	/* remove all of the rsvd pages for vif */
+	list_for_each_entry_safe(rsvd_pkt, tmp, &rtwvif->rsvd_page_list,
+				 vif_list) {
+		list_del(&rsvd_pkt->vif_list);
+		if (!list_empty(&rsvd_pkt->build_list))
+			list_del(&rsvd_pkt->build_list);
 		kfree(rsvd_pkt);
 	}
 }
 
+void rtw_add_rsvd_page_bcn(struct rtw_dev *rtwdev,
+			   struct rtw_vif *rtwvif)
+{
+	struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif);
+
+	if (vif->type != NL80211_IFTYPE_AP &&
+	    vif->type != NL80211_IFTYPE_ADHOC &&
+	    vif->type != NL80211_IFTYPE_MESH_POINT) {
+		rtw_warn(rtwdev, "Cannot add beacon rsvd page for %d\n",
+			 vif->type);
+		return;
+	}
+
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_BEACON, false);
+}
+
+void rtw_add_rsvd_page_pno(struct rtw_dev *rtwdev,
+			   struct rtw_vif *rtwvif)
+{
+	struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif);
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct rtw_pno_request *rtw_pno_req = &rtw_wow->pno_req;
+	struct cfg80211_ssid *ssid;
+	int i;
+
+	if (vif->type != NL80211_IFTYPE_STATION) {
+		rtw_warn(rtwdev, "Cannot add PNO rsvd page for %d\n",
+			 vif->type);
+		return;
+	}
+
+	for (i = 0 ; i < rtw_pno_req->match_set_cnt; i++) {
+		ssid = &rtw_pno_req->match_sets[i].ssid;
+		rtw_add_rsvd_page_probe_req(rtwdev, rtwvif, ssid);
+	}
+
+	rtw_add_rsvd_page_probe_req(rtwdev, rtwvif, NULL);
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_NLO_INFO, false);
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_CH_INFO, true);
+}
+
+void rtw_add_rsvd_page_sta(struct rtw_dev *rtwdev,
+			   struct rtw_vif *rtwvif)
+{
+	struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif);
+
+	if (vif->type != NL80211_IFTYPE_STATION) {
+		rtw_warn(rtwdev, "Cannot add sta rsvd page for %d\n",
+			 vif->type);
+		return;
+	}
+
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_PS_POLL, true);
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_QOS_NULL, true);
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_NULL, true);
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_LPS_PG_DPK, true);
+	rtw_add_rsvd_page(rtwdev, rtwvif, RSVD_LPS_PG_INFO, true);
+}
+
 int rtw_fw_write_data_rsvd_page(struct rtw_dev *rtwdev, u16 pg_addr,
 				u8 *buf, u32 size)
 {
 	u8 bckp[2];
 	u8 val;
 	u16 rsvd_pg_head;
+	u32 bcn_valid_addr;
+	u32 bcn_valid_mask;
 	int ret;
 
 	lockdep_assert_held(&rtwdev->mutex);
@@ -556,8 +1110,13 @@
 	if (!size)
 		return -EINVAL;
 
-	pg_addr &= BIT_MASK_BCN_HEAD_1_V1;
-	rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2, pg_addr | BIT_BCN_VALID_V1);
+	if (rtw_chip_wcpu_11n(rtwdev)) {
+		rtw_write32_set(rtwdev, REG_DWBCN0_CTRL, BIT_BCN_VALID);
+	} else {
+		pg_addr &= BIT_MASK_BCN_HEAD_1_V1;
+		pg_addr |= BIT_BCN_VALID_V1;
+		rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2, pg_addr);
+	}
 
 	val = rtw_read8(rtwdev, REG_CR + 1);
 	bckp[0] = val;
@@ -575,7 +1134,15 @@
 		goto restore;
 	}
 
-	if (!check_hw_ready(rtwdev, REG_FIFOPAGE_CTRL_2, BIT_BCN_VALID_V1, 1)) {
+	if (rtw_chip_wcpu_11n(rtwdev)) {
+		bcn_valid_addr = REG_DWBCN0_CTRL;
+		bcn_valid_mask = BIT_BCN_VALID;
+	} else {
+		bcn_valid_addr = REG_FIFOPAGE_CTRL_2;
+		bcn_valid_mask = BIT_BCN_VALID_V1;
+	}
+
+	if (!check_hw_ready(rtwdev, bcn_valid_addr, bcn_valid_mask, 1)) {
 		rtw_err(rtwdev, "error beacon valid\n");
 		ret = -EBUSY;
 	}
@@ -606,8 +1173,72 @@
 	return rtw_fw_write_data_rsvd_page(rtwdev, pg_addr, buf, size);
 }
 
-static u8 *rtw_build_rsvd_page(struct rtw_dev *rtwdev,
-			       struct ieee80211_vif *vif, u32 *size)
+static void __rtw_build_rsvd_page_reset(struct rtw_dev *rtwdev)
+{
+	struct rtw_rsvd_page *rsvd_pkt, *tmp;
+
+	list_for_each_entry_safe(rsvd_pkt, tmp, &rtwdev->rsvd_page_list,
+				 build_list) {
+		list_del_init(&rsvd_pkt->build_list);
+
+		/* Don't free except for the dummy rsvd page,
+		 * others will be freed when removing vif
+		 */
+		if (rsvd_pkt->type == RSVD_DUMMY)
+			kfree(rsvd_pkt);
+	}
+}
+
+static void rtw_build_rsvd_page_iter(void *data, u8 *mac,
+				     struct ieee80211_vif *vif)
+{
+	struct rtw_dev *rtwdev = data;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+	struct rtw_rsvd_page *rsvd_pkt;
+
+	list_for_each_entry(rsvd_pkt, &rtwvif->rsvd_page_list, vif_list) {
+		if (rsvd_pkt->type == RSVD_BEACON)
+			list_add(&rsvd_pkt->build_list,
+				 &rtwdev->rsvd_page_list);
+		else
+			list_add_tail(&rsvd_pkt->build_list,
+				      &rtwdev->rsvd_page_list);
+	}
+}
+
+static int  __rtw_build_rsvd_page_from_vifs(struct rtw_dev *rtwdev)
+{
+	struct rtw_rsvd_page *rsvd_pkt;
+
+	__rtw_build_rsvd_page_reset(rtwdev);
+
+	/* gather rsvd page from vifs */
+	rtw_iterate_vifs_atomic(rtwdev, rtw_build_rsvd_page_iter, rtwdev);
+
+	rsvd_pkt = list_first_entry_or_null(&rtwdev->rsvd_page_list,
+					    struct rtw_rsvd_page, build_list);
+	if (!rsvd_pkt) {
+		WARN(1, "Should not have an empty reserved page\n");
+		return -EINVAL;
+	}
+
+	/* the first rsvd should be beacon, otherwise add a dummy one */
+	if (rsvd_pkt->type != RSVD_BEACON) {
+		struct rtw_rsvd_page *dummy_pkt;
+
+		dummy_pkt = rtw_alloc_rsvd_page(rtwdev, RSVD_DUMMY, false);
+		if (!dummy_pkt) {
+			rtw_err(rtwdev, "failed to alloc dummy rsvd page\n");
+			return -ENOMEM;
+		}
+
+		list_add(&dummy_pkt->build_list, &rtwdev->rsvd_page_list);
+	}
+
+	return 0;
+}
+
+static u8 *rtw_build_rsvd_page(struct rtw_dev *rtwdev, u32 *size)
 {
 	struct ieee80211_hw *hw = rtwdev->hw;
 	struct rtw_chip_info *chip = rtwdev->chip;
@@ -617,24 +1248,54 @@
 	u8 total_page = 0;
 	u8 page_size, page_margin, tx_desc_sz;
 	u8 *buf;
+	int ret;
 
 	page_size = chip->page_size;
 	tx_desc_sz = chip->tx_pkt_desc_sz;
 	page_margin = page_size - tx_desc_sz;
 
-	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, list) {
-		iter = rtw_get_rsvd_page_skb(hw, vif, rsvd_pkt->type);
+	ret = __rtw_build_rsvd_page_from_vifs(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev,
+			"failed to build rsvd page from vifs, ret %d\n", ret);
+		return NULL;
+	}
+
+	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, build_list) {
+		iter = rtw_get_rsvd_page_skb(hw, rsvd_pkt);
 		if (!iter) {
-			rtw_err(rtwdev, "fail to build rsvd packet\n");
+			rtw_err(rtwdev, "failed to build rsvd packet\n");
 			goto release_skb;
 		}
+
+		/* Fill the tx_desc for the rsvd pkt that requires one.
+		 * And iter->len will be added with size of tx_desc_sz.
+		 */
+		if (rsvd_pkt->add_txdesc)
+			rtw_fill_rsvd_page_desc(rtwdev, iter, rsvd_pkt->type);
+
 		rsvd_pkt->skb = iter;
 		rsvd_pkt->page = total_page;
-		if (rsvd_pkt->add_txdesc)
+
+		/* Reserved page is downloaded via TX path, and TX path will
+		 * generate a tx_desc at the header to describe length of
+		 * the buffer. If we are not counting page numbers with the
+		 * size of tx_desc added at the first rsvd_pkt (usually a
+		 * beacon, firmware default refer to the first page as the
+		 * content of beacon), we could generate a buffer which size
+		 * is smaller than the actual size of the whole rsvd_page
+		 */
+		if (total_page == 0) {
+			if (rsvd_pkt->type != RSVD_BEACON &&
+			    rsvd_pkt->type != RSVD_DUMMY) {
+				rtw_err(rtwdev, "first page should be a beacon\n");
+				goto release_skb;
+			}
 			total_page += rtw_len_to_page(iter->len + tx_desc_sz,
 						      page_size);
-		else
+		} else {
 			total_page += rtw_len_to_page(iter->len, page_size);
+		}
 	}
 
 	if (total_page > rtwdev->fifo.rsvd_drv_pg_num) {
@@ -647,35 +1308,62 @@
 	if (!buf)
 		goto release_skb;
 
-	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, list) {
+	/* Copy the content of each rsvd_pkt to the buf, and they should
+	 * be aligned to the pages.
+	 *
+	 * Note that the first rsvd_pkt is a beacon no matter what vif->type.
+	 * And that rsvd_pkt does not require tx_desc because when it goes
+	 * through TX path, the TX path will generate one for it.
+	 */
+	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, build_list) {
 		rtw_rsvd_page_list_to_buf(rtwdev, page_size, page_margin,
 					  page, buf, rsvd_pkt);
-		page += rtw_len_to_page(rsvd_pkt->skb->len, page_size);
-	}
-	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, list)
+		if (page == 0)
+			page += rtw_len_to_page(rsvd_pkt->skb->len +
+						tx_desc_sz, page_size);
+		else
+			page += rtw_len_to_page(rsvd_pkt->skb->len, page_size);
+
 		kfree_skb(rsvd_pkt->skb);
+		rsvd_pkt->skb = NULL;
+	}
 
 	return buf;
 
 release_skb:
-	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, list)
+	list_for_each_entry(rsvd_pkt, &rtwdev->rsvd_page_list, build_list) {
 		kfree_skb(rsvd_pkt->skb);
+		rsvd_pkt->skb = NULL;
+	}
 
 	return NULL;
 }
 
-static int
-rtw_download_beacon(struct rtw_dev *rtwdev, struct ieee80211_vif *vif)
+static int rtw_download_beacon(struct rtw_dev *rtwdev)
 {
 	struct ieee80211_hw *hw = rtwdev->hw;
+	struct rtw_rsvd_page *rsvd_pkt;
 	struct sk_buff *skb;
 	int ret = 0;
 
-	skb = rtw_beacon_get(hw, vif);
+	rsvd_pkt = list_first_entry_or_null(&rtwdev->rsvd_page_list,
+					    struct rtw_rsvd_page, build_list);
+	if (!rsvd_pkt) {
+		rtw_err(rtwdev, "failed to get rsvd page from build list\n");
+		return -ENOENT;
+	}
+
+	if (rsvd_pkt->type != RSVD_BEACON &&
+	    rsvd_pkt->type != RSVD_DUMMY) {
+		rtw_err(rtwdev, "invalid rsvd page type %d, should be beacon or dummy\n",
+			rsvd_pkt->type);
+		return -EINVAL;
+	}
+
+	skb = rtw_get_rsvd_page_skb(hw, rsvd_pkt);
 	if (!skb) {
 		rtw_err(rtwdev, "failed to get beacon skb\n");
-		ret = -ENOMEM;
-		goto out;
+		return -ENOMEM;
 	}
 
 	ret = rtw_download_drv_rsvd_page(rtwdev, skb->data, skb->len);
@@ -684,17 +1372,16 @@
 
 	dev_kfree_skb(skb);
 
-out:
 	return ret;
 }
 
-int rtw_fw_download_rsvd_page(struct rtw_dev *rtwdev, struct ieee80211_vif *vif)
+int rtw_fw_download_rsvd_page(struct rtw_dev *rtwdev)
 {
 	u8 *buf;
 	u32 size;
 	int ret;
 
-	buf = rtw_build_rsvd_page(rtwdev, vif, &size);
+	buf = rtw_build_rsvd_page(rtwdev, &size);
 	if (!buf) {
 		rtw_err(rtwdev, "failed to build rsvd page pkt\n");
 		return -ENOMEM;
@@ -706,7 +1393,12 @@
 		goto free;
 	}
 
-	ret = rtw_download_beacon(rtwdev, vif);
+	/* The last thing is to download the *ONLY* beacon again, because
+	 * the previous tx_desc is to describe the total rsvd page. Download
+	 * the beacon again to replace the TX desc header, and we will get
+	 * a correct tx_desc for the beacon in the rsvd page.
+	 */
+	ret = rtw_download_beacon(rtwdev);
 	if (ret) {
 		rtw_err(rtwdev, "failed to download beacon\n");
 		goto free;
@@ -764,3 +1456,81 @@
 	rtw_write8(rtwdev, REG_RCR + 2, rcr);
 	return 0;
 }
+
+static void __rtw_fw_update_pkt(struct rtw_dev *rtwdev, u8 pkt_id, u16 size,
+				u8 location)
+{
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+	u16 total_size = H2C_PKT_HDR_SIZE + H2C_PKT_UPDATE_PKT_LEN;
+
+	rtw_h2c_pkt_set_header(h2c_pkt, H2C_PKT_UPDATE_PKT);
+
+	SET_PKT_H2C_TOTAL_LEN(h2c_pkt, total_size);
+	UPDATE_PKT_SET_PKT_ID(h2c_pkt, pkt_id);
+	UPDATE_PKT_SET_LOCATION(h2c_pkt, location);
+
+	/* include txdesc size */
+	UPDATE_PKT_SET_SIZE(h2c_pkt, size);
+
+	rtw_fw_send_h2c_packet(rtwdev, h2c_pkt);
+}
+
+void rtw_fw_update_pkt_probe_req(struct rtw_dev *rtwdev,
+				 struct cfg80211_ssid *ssid)
+{
+	u8 loc;
+	u32 size;
+
+	loc = rtw_get_rsvd_page_probe_req_location(rtwdev, ssid);
+	if (!loc) {
+		rtw_err(rtwdev, "failed to get probe_req rsvd loc\n");
+		return;
+	}
+
+	size = rtw_get_rsvd_page_probe_req_size(rtwdev, ssid);
+	if (!size) {
+		rtw_err(rtwdev, "failed to get probe_req rsvd size\n");
+		return;
+	}
+
+	__rtw_fw_update_pkt(rtwdev, RTW_PACKET_PROBE_REQ, size, loc);
+}
+
+void rtw_fw_channel_switch(struct rtw_dev *rtwdev, bool enable)
+{
+	struct rtw_pno_request *rtw_pno_req = &rtwdev->wow.pno_req;
+	u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+	u16 total_size = H2C_PKT_HDR_SIZE + H2C_PKT_CH_SWITCH_LEN;
+	u8 loc_ch_info;
+	const struct rtw_ch_switch_option cs_option = {
+		.dest_ch_en = 1,
+		.dest_ch = 1,
+		.periodic_option = 2,
+		.normal_period = 5,
+		.normal_period_sel = 0,
+		.normal_cycle = 10,
+		.slow_period = 1,
+		.slow_period_sel = 1,
+	};
+
+	rtw_h2c_pkt_set_header(h2c_pkt, H2C_PKT_CH_SWITCH);
+	SET_PKT_H2C_TOTAL_LEN(h2c_pkt, total_size);
+
+	CH_SWITCH_SET_START(h2c_pkt, enable);
+	CH_SWITCH_SET_DEST_CH_EN(h2c_pkt, cs_option.dest_ch_en);
+	CH_SWITCH_SET_DEST_CH(h2c_pkt, cs_option.dest_ch);
+	CH_SWITCH_SET_NORMAL_PERIOD(h2c_pkt, cs_option.normal_period);
+	CH_SWITCH_SET_NORMAL_PERIOD_SEL(h2c_pkt, cs_option.normal_period_sel);
+	CH_SWITCH_SET_SLOW_PERIOD(h2c_pkt, cs_option.slow_period);
+	CH_SWITCH_SET_SLOW_PERIOD_SEL(h2c_pkt, cs_option.slow_period_sel);
+	CH_SWITCH_SET_NORMAL_CYCLE(h2c_pkt, cs_option.normal_cycle);
+	CH_SWITCH_SET_PERIODIC_OPT(h2c_pkt, cs_option.periodic_option);
+
+	CH_SWITCH_SET_CH_NUM(h2c_pkt, rtw_pno_req->channel_cnt);
+	CH_SWITCH_SET_INFO_SIZE(h2c_pkt, rtw_pno_req->channel_cnt * 4);
+
+	loc_ch_info = rtw_get_rsvd_page_location(rtwdev, RSVD_CH_INFO);
+	CH_SWITCH_SET_INFO_LOC(h2c_pkt, loc_ch_info);
+
+	rtw_fw_send_h2c_packet(rtwdev, h2c_pkt);
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/fw.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/fw.h
@@ -11,31 +11,25 @@
 /* FW bin information */
 #define FW_HDR_SIZE			64
 #define FW_HDR_CHKSUM_SIZE		8
-#define FW_HDR_VERSION			4
-#define FW_HDR_SUBVERSION		6
-#define FW_HDR_SUBINDEX			7
-#define FW_HDR_MONTH			16
-#define FW_HDR_DATE			17
-#define FW_HDR_HOUR			18
-#define FW_HDR_MIN			19
-#define FW_HDR_YEAR			20
-#define FW_HDR_MEM_USAGE		24
-#define FW_HDR_H2C_FMT_VER		28
-#define FW_HDR_DMEM_ADDR		32
-#define FW_HDR_DMEM_SIZE		36
-#define FW_HDR_IMEM_SIZE		48
-#define FW_HDR_EMEM_SIZE		52
-#define FW_HDR_EMEM_ADDR		56
-#define FW_HDR_IMEM_ADDR		60
+
+#define FW_NLO_INFO_CHECK_SIZE		4
 
 #define FIFO_PAGE_SIZE_SHIFT		12
 #define FIFO_PAGE_SIZE			4096
 #define RSVD_PAGE_START_ADDR		0x780
 #define FIFO_DUMP_ADDR			0x8000
 
+#define DLFW_PAGE_SIZE_SHIFT_LEGACY	12
+#define DLFW_PAGE_SIZE_LEGACY		0x1000
+#define DLFW_BLK_SIZE_SHIFT_LEGACY	2
+#define DLFW_BLK_SIZE_LEGACY		4
+#define FW_START_ADDR_LEGACY		0x1000
+
 enum rtw_c2h_cmd_id {
+	C2H_CCX_TX_RPT = 0x03,
 	C2H_BT_INFO = 0x09,
 	C2H_BT_MP_INFO = 0x0b,
+	C2H_RA_RPT = 0x0c,
 	C2H_HW_FEATURE_REPORT = 0x19,
 	C2H_WLAN_INFO = 0x27,
 	C2H_HW_FEATURE_DUMP = 0xfd,
@@ -54,10 +48,16 @@
 
 enum rtw_rsvd_packet_type {
 	RSVD_BEACON,
+	RSVD_DUMMY,
 	RSVD_PS_POLL,
 	RSVD_PROBE_RESP,
 	RSVD_NULL,
 	RSVD_QOS_NULL,
+	RSVD_LPS_PG_DPK,
+	RSVD_LPS_PG_INFO,
+	RSVD_PROBE_REQ,
+	RSVD_NLO_INFO,
+	RSVD_CH_INFO,
 };
 
 enum rtw_fw_rf_type {
@@ -86,17 +86,148 @@
 	u8 segment_iqk;
 };
 
+struct rtw_lps_pg_dpk_hdr {
+	u16 dpk_path_ok;
+	u8 dpk_txagc[2];
+	u16 dpk_gs[2];
+	u32 coef[2][20];
+	u8 dpk_ch;
+} __packed;
+
+struct rtw_lps_pg_info_hdr {
+	u8 macid;
+	u8 mbssid;
+	u8 pattern_count;
+	u8 mu_tab_group_id;
+	u8 sec_cam_count;
+	u8 tx_bu_page_count;
+	u16 rsvd;
+	u8 sec_cam[MAX_PG_CAM_BACKUP_NUM];
+} __packed;
+
 struct rtw_rsvd_page {
-	struct list_head list;
+	/* associated with each vif */
+	struct list_head vif_list;
+	struct rtw_vif *rtwvif;
+
+	/* associated when build rsvd page */
+	struct list_head build_list;
+
 	struct sk_buff *skb;
 	enum rtw_rsvd_packet_type type;
 	u8 page;
 	bool add_txdesc;
+	struct cfg80211_ssid *ssid;
+};
+
+enum rtw_keep_alive_pkt_type {
+	KEEP_ALIVE_NULL_PKT = 0,
+	KEEP_ALIVE_ARP_RSP = 1,
+};
+
+struct rtw_nlo_info_hdr {
+	u8 nlo_count;
+	u8 hidden_ap_count;
+	u8 rsvd1[2];
+	u8 pattern_check[FW_NLO_INFO_CHECK_SIZE];
+	u8 rsvd2[8];
+	u8 ssid_len[16];
+	u8 chiper[16];
+	u8 rsvd3[16];
+	u8 location[8];
+} __packed;
+
+enum rtw_packet_type {
+	RTW_PACKET_PROBE_REQ = 0x00,
+
+	RTW_PACKET_UNDEFINE = 0x7FFFFFFF,
 };
 
+struct rtw_fw_wow_keep_alive_para {
+	bool adopt;
+	u8 pkt_type;
+	u8 period;		/* unit: sec */
+};
+
+struct rtw_fw_wow_disconnect_para {
+	bool adopt;
+	u8 period;		/* unit: sec */
+	u8 retry_count;
+};
+
+struct rtw_ch_switch_option {
+	u8 periodic_option;
+	u32 tsf_high;
+	u32 tsf_low;
+	u8 dest_ch_en;
+	u8 absolute_time_en;
+	u8 dest_ch;
+	u8 normal_period;
+	u8 normal_period_sel;
+	u8 normal_cycle;
+	u8 slow_period;
+	u8 slow_period_sel;
+	u8 nlo_en;
+};
+
+struct rtw_fw_hdr {
+	__le16 signature;
+	u8 category;
+	u8 function;
+	__le16 version;		/* 0x04 */
+	u8 subversion;
+	u8 subindex;
+	__le32 rsvd;		/* 0x08 */
+	__le32 rsvd2;		/* 0x0C */
+	u8 month;		/* 0x10 */
+	u8 day;
+	u8 hour;
+	u8 min;
+	__le16 year;		/* 0x14 */
+	__le16 rsvd3;
+	u8 mem_usage;		/* 0x18 */
+	u8 rsvd4[3];
+	__le16 h2c_fmt_ver;	/* 0x1C */
+	__le16 rsvd5;
+	__le32 dmem_addr;	/* 0x20 */
+	__le32 dmem_size;
+	__le32 rsvd6;
+	__le32 rsvd7;
+	__le32 imem_size;	/* 0x30 */
+	__le32 emem_size;
+	__le32 emem_addr;
+	__le32 imem_addr;
+} __packed;
+
+struct rtw_fw_hdr_legacy {
+	__le16 signature;
+	u8 category;
+	u8 function;
+	__le16 version;	/* 0x04 */
+	u8 subversion1;
+	u8 subversion2;
+	u8 month;	/* 0x08 */
+	u8 day;
+	u8 hour;
+	u8 minute;
+	__le16 size;
+	__le16 rsvd2;
+	__le32 idx;	/* 0x10 */
+	__le32 rsvd3;
+	__le32 rsvd4;	/* 0x18 */
+	__le32 rsvd5;
+} __packed;
+
 /* C2H */
-#define GET_CCX_REPORT_SEQNUM(c2h_payload)	(c2h_payload[8] & 0xfc)
-#define GET_CCX_REPORT_STATUS(c2h_payload)	(c2h_payload[9] & 0xc0)
+#define GET_CCX_REPORT_SEQNUM_V0(c2h_payload)	(c2h_payload[6] & 0xfc)
+#define GET_CCX_REPORT_STATUS_V0(c2h_payload)	(c2h_payload[0] & 0xc0)
+#define GET_CCX_REPORT_SEQNUM_V1(c2h_payload)	(c2h_payload[8] & 0xfc)
+#define GET_CCX_REPORT_STATUS_V1(c2h_payload)	(c2h_payload[9] & 0xc0)
+
+#define GET_RA_REPORT_RATE(c2h_payload)		(c2h_payload[0] & 0x7f)
+#define GET_RA_REPORT_SGI(c2h_payload)		((c2h_payload[0] & 0x80) >> 7)
+#define GET_RA_REPORT_BW(c2h_payload)		(c2h_payload[6])
+#define GET_RA_REPORT_MACID(c2h_payload)	(c2h_payload[1])
 
 /* PKT H2C */
 #define H2C_PKT_CMD_ID 0xFF
@@ -106,6 +237,12 @@
 #define H2C_PKT_PHYDM_INFO 0x11
 #define H2C_PKT_IQK 0x0E
 
+#define H2C_PKT_CH_SWITCH 0x02
+#define H2C_PKT_UPDATE_PKT 0x0C
+
+#define H2C_PKT_CH_SWITCH_LEN 0x20
+#define H2C_PKT_UPDATE_PKT_LEN 0x4
+
 #define SET_PKT_H2C_CATEGORY(h2c_pkt, value)                                   \
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(6, 0))
 #define SET_PKT_H2C_CMD_ID(h2c_pkt, value)                                     \
@@ -142,10 +279,63 @@
 #define IQK_SET_SEGMENT_IQK(h2c_pkt, value)                                    \
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, BIT(1))
 
+#define CHSW_INFO_SET_CH(pkt, value)					       \
+	le32p_replace_bits((__le32 *)(pkt) + 0x00, value, GENMASK(7, 0))
+#define CHSW_INFO_SET_PRI_CH_IDX(pkt, value)				       \
+	le32p_replace_bits((__le32 *)(pkt) + 0x00, value, GENMASK(11, 8))
+#define CHSW_INFO_SET_BW(pkt, value)					       \
+	le32p_replace_bits((__le32 *)(pkt) + 0x00, value, GENMASK(15, 12))
+#define CHSW_INFO_SET_TIMEOUT(pkt, value)				       \
+	le32p_replace_bits((__le32 *)(pkt) + 0x00, value, GENMASK(23, 16))
+#define CHSW_INFO_SET_ACTION_ID(pkt, value)				       \
+	le32p_replace_bits((__le32 *)(pkt) + 0x00, value, GENMASK(30, 24))
+
+#define UPDATE_PKT_SET_SIZE(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(15, 0))
+#define UPDATE_PKT_SET_PKT_ID(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(23, 16))
+#define UPDATE_PKT_SET_LOCATION(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(31, 24))
+
+#define CH_SWITCH_SET_START(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, BIT(0))
+#define CH_SWITCH_SET_DEST_CH_EN(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, BIT(1))
+#define CH_SWITCH_SET_ABSOLUTE_TIME(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, BIT(2))
+#define CH_SWITCH_SET_PERIODIC_OPT(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(4, 3))
+#define CH_SWITCH_SET_INFO_LOC(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(15, 8))
+#define CH_SWITCH_SET_CH_NUM(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(23, 16))
+#define CH_SWITCH_SET_PRI_CH_IDX(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x02, value, GENMASK(27, 24))
+#define CH_SWITCH_SET_DEST_CH(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x03, value, GENMASK(7, 0))
+#define CH_SWITCH_SET_NORMAL_PERIOD(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x03, value, GENMASK(13, 8))
+#define CH_SWITCH_SET_NORMAL_PERIOD_SEL(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x03, value, GENMASK(15, 14))
+#define CH_SWITCH_SET_SLOW_PERIOD(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x03, value, GENMASK(21, 16))
+#define CH_SWITCH_SET_SLOW_PERIOD_SEL(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x03, value, GENMASK(23, 22))
+#define CH_SWITCH_SET_NORMAL_CYCLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x03, value, GENMASK(31, 24))
+#define CH_SWITCH_SET_TSF_HIGH(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x04, value, GENMASK(31, 0))
+#define CH_SWITCH_SET_TSF_LOW(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x05, value, GENMASK(31, 0))
+#define CH_SWITCH_SET_INFO_SIZE(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x06, value, GENMASK(15, 0))
+
 /* Command H2C */
 #define H2C_CMD_RSVD_PAGE		0x0
 #define H2C_CMD_MEDIA_STATUS_RPT	0x01
 #define H2C_CMD_SET_PWR_MODE		0x20
+#define H2C_CMD_LPS_PG_INFO		0x2b
+#define H2C_CMD_DEFAULT_PORT		0x2c
 #define H2C_CMD_RA_INFO			0x40
 #define H2C_CMD_RSSI_MONITOR		0x42
 
@@ -157,6 +347,13 @@
 #define H2C_CMD_QUERY_BT_MP_INFO	0x67
 #define H2C_CMD_BT_WIFI_CONTROL		0x69
 
+#define H2C_CMD_KEEP_ALIVE		0x03
+#define H2C_CMD_DISCONNECT_DECISION	0x04
+#define H2C_CMD_WOWLAN			0x80
+#define H2C_CMD_REMOTE_WAKE_CTRL	0x81
+#define H2C_CMD_AOAC_GLOBAL_INFO	0x82
+#define H2C_CMD_NLO_INFO		0x8C
+
 #define SET_H2C_CMD_ID_CLASS(h2c_pkt, value)				       \
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(7, 0))
 
@@ -177,6 +374,14 @@
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x01, value, GENMASK(7, 5))
 #define SET_PWR_MODE_SET_PWR_STATE(h2c_pkt, value)                             \
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x01, value, GENMASK(15, 8))
+#define LPS_PG_INFO_LOC(h2c_pkt, value)                                        \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(23, 16))
+#define LPS_PG_DPK_LOC(h2c_pkt, value)                                         \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(31, 24))
+#define LPS_PG_SEC_CAM_EN(h2c_pkt, value)                                      \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(8))
+#define LPS_PG_PATTERN_CAM_EN(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(10))
 #define SET_RSSI_INFO_MACID(h2c_pkt, value)                                    \
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(15, 8))
 #define SET_RSSI_INFO_RSSI(h2c_pkt, value)                                     \
@@ -253,6 +458,58 @@
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x01, value, GENMASK(15, 8))
 #define SET_BT_WIFI_CONTROL_DATA5(h2c_pkt, value)                              \
 	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x01, value, GENMASK(23, 16))
+#define SET_DEFAULT_PORT_PORTID(h2c_pkt, value)                                \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(15, 8))
+
+#define SET_KEEP_ALIVE_ENABLE(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(8))
+#define SET_KEEP_ALIVE_ADOPT(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(9))
+#define SET_KEEP_ALIVE_PKT_TYPE(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(10))
+#define SET_KEEP_ALIVE_CHECK_PERIOD(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(23, 16))
+
+#define SET_DISCONNECT_DECISION_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(8))
+#define SET_DISCONNECT_DECISION_ADOPT(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(9))
+#define SET_DISCONNECT_DECISION_CHECK_PERIOD(h2c_pkt, value)		       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(23, 16))
+#define SET_DISCONNECT_DECISION_TRY_PKT_NUM(h2c_pkt, value)		       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(31, 24))
+
+#define SET_WOWLAN_FUNC_ENABLE(h2c_pkt, value)				       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(8))
+#define SET_WOWLAN_PATTERN_MATCH_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(9))
+#define SET_WOWLAN_MAGIC_PKT_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(10))
+#define SET_WOWLAN_UNICAST_PKT_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(11))
+#define SET_WOWLAN_REKEY_WAKEUP_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(14))
+#define SET_WOWLAN_DEAUTH_WAKEUP_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(15))
+
+#define SET_REMOTE_WAKECTRL_ENABLE(h2c_pkt, value)			       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(8))
+#define SET_REMOTE_WAKE_CTRL_NLO_OFFLOAD_EN(h2c_pkt, value)		       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(12))
+
+#define SET_AOAC_GLOBAL_INFO_PAIRWISE_ENC_ALG(h2c_pkt, value)		       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(15, 8))
+#define SET_AOAC_GLOBAL_INFO_GROUP_ENC_ALG(h2c_pkt, value)		       \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(23, 16))
+
+#define SET_NLO_FUN_EN(h2c_pkt, value)                                         \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(8))
+#define SET_NLO_PS_32K(h2c_pkt, value)                                         \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(9))
+#define SET_NLO_IGNORE_SECURITY(h2c_pkt, value)                                \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, BIT(10))
+#define SET_NLO_LOC_NLO_INFO(h2c_pkt, value)                                   \
+	le32p_replace_bits((__le32 *)(h2c_pkt) + 0x00, value, GENMASK(23, 16))
 
 static inline struct rtw_c2h_cmd *get_c2h_from_skb(struct sk_buff *skb)
 {
@@ -269,7 +526,9 @@
 void rtw_fw_send_phydm_info(struct rtw_dev *rtwdev);
 
 void rtw_fw_do_iqk(struct rtw_dev *rtwdev, struct rtw_iqk_para *para);
+void rtw_fw_set_default_port(struct rtw_dev *rtwdev, u8 port);
 void rtw_fw_set_pwr_mode(struct rtw_dev *rtwdev);
+void rtw_fw_set_pg_info(struct rtw_dev *rtwdev);
 void rtw_fw_query_bt_info(struct rtw_dev *rtwdev);
 void rtw_fw_wl_ch_info(struct rtw_dev *rtwdev, u8 link, u8 ch, u8 bw);
 void rtw_fw_query_bt_mp_info(struct rtw_dev *rtwdev,
@@ -282,14 +541,30 @@
 void rtw_fw_send_rssi_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si);
 void rtw_fw_send_ra_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si);
 void rtw_fw_media_status_report(struct rtw_dev *rtwdev, u8 mac_id, bool conn);
-void rtw_add_rsvd_page(struct rtw_dev *rtwdev, enum rtw_rsvd_packet_type type,
-		       bool txdesc);
 int rtw_fw_write_data_rsvd_page(struct rtw_dev *rtwdev, u16 pg_addr,
 				u8 *buf, u32 size);
-void rtw_reset_rsvd_page(struct rtw_dev *rtwdev);
-int rtw_fw_download_rsvd_page(struct rtw_dev *rtwdev,
-			      struct ieee80211_vif *vif);
+void rtw_remove_rsvd_page(struct rtw_dev *rtwdev,
+			  struct rtw_vif *rtwvif);
+void rtw_add_rsvd_page_bcn(struct rtw_dev *rtwdev,
+			   struct rtw_vif *rtwvif);
+void rtw_add_rsvd_page_pno(struct rtw_dev *rtwdev,
+			   struct rtw_vif *rtwvif);
+void rtw_add_rsvd_page_sta(struct rtw_dev *rtwdev,
+			   struct rtw_vif *rtwvif);
+int rtw_fw_download_rsvd_page(struct rtw_dev *rtwdev);
 void rtw_send_rsvd_page_h2c(struct rtw_dev *rtwdev);
 int rtw_dump_drv_rsvd_page(struct rtw_dev *rtwdev,
 			   u32 offset, u32 size, u32 *buf);
+void rtw_fw_set_remote_wake_ctrl_cmd(struct rtw_dev *rtwdev, bool enable);
+void rtw_fw_set_wowlan_ctrl_cmd(struct rtw_dev *rtwdev, bool enable);
+void rtw_fw_set_keep_alive_cmd(struct rtw_dev *rtwdev, bool enable);
+void rtw_fw_set_disconnect_decision_cmd(struct rtw_dev *rtwdev, bool enable);
+void rtw_fw_set_aoac_global_info_cmd(struct rtw_dev *rtwdev,
+				     u8 pairwise_key_enc,
+				     u8 group_key_enc);
+
+void rtw_fw_set_nlo_info(struct rtw_dev *rtwdev, bool enable);
+void rtw_fw_update_pkt_probe_req(struct rtw_dev *rtwdev,
+				 struct cfg80211_ssid *ssid);
+void rtw_fw_channel_switch(struct rtw_dev *rtwdev, bool enable);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/hci.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/hci.h
@@ -13,6 +13,9 @@
 	int (*setup)(struct rtw_dev *rtwdev);
 	int (*start)(struct rtw_dev *rtwdev);
 	void (*stop)(struct rtw_dev *rtwdev);
+	void (*deep_ps)(struct rtw_dev *rtwdev, bool enter);
+	void (*link_ps)(struct rtw_dev *rtwdev, bool enter);
+	void (*interface_cfg)(struct rtw_dev *rtwdev);
 
 	int (*write_data_rsvd_page)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
 	int (*write_data_h2c)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
@@ -47,6 +50,21 @@
 	rtwdev->hci.ops->stop(rtwdev);
 }
 
+static inline void rtw_hci_deep_ps(struct rtw_dev *rtwdev, bool enter)
+{
+	rtwdev->hci.ops->deep_ps(rtwdev, enter);
+}
+
+static inline void rtw_hci_link_ps(struct rtw_dev *rtwdev, bool enter)
+{
+	rtwdev->hci.ops->link_ps(rtwdev, enter);
+}
+
+static inline void rtw_hci_interface_cfg(struct rtw_dev *rtwdev)
+{
+	rtwdev->hci.ops->interface_cfg(rtwdev);
+}
+
 static inline int
 rtw_hci_write_data_rsvd_page(struct rtw_dev *rtwdev, u8 *buf, u32 size)
 {
@@ -173,6 +191,32 @@
 	ret = (orig & mask) >> shift;
 
 	return ret;
+}
+
+static inline u16
+rtw_read16_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask)
+{
+	u32 shift = __ffs(mask);
+	u32 orig;
+	u32 ret;
+
+	orig = rtw_read16(rtwdev, addr);
+	ret = (orig & mask) >> shift;
+
+	return ret;
+}
+
+static inline u8
+rtw_read8_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask)
+{
+	u32 shift = __ffs(mask);
+	u32 orig;
+	u32 ret;
+
+	orig = rtw_read8(rtwdev, addr);
+	ret = (orig & mask) >> shift;
+
+	return ret;
 }
 
 static inline void
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/mac.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/mac.c
@@ -16,10 +16,12 @@
 	u8 value8;
 
 	txsc20 = primary_ch_idx;
-	if (txsc20 == 1 || txsc20 == 3)
-		txsc40 = 9;
-	else
-		txsc40 = 10;
+	if (bw == RTW_CHANNEL_WIDTH_80) {
+		if (txsc20 == RTW_SC_20_UPPER || txsc20 == RTW_SC_20_UPMOST)
+			txsc40 = RTW_SC_40_UPPER;
+		else
+			txsc40 = RTW_SC_40_LOWER;
+	}
 	rtw_write8(rtwdev, REG_DATA_SC,
 		   BIT_TXSC_20M(txsc20) | BIT_TXSC_40M(txsc40));
 
@@ -38,6 +40,9 @@
 	}
 	rtw_write32(rtwdev, REG_WMAC_TRXPTCL_CTL, value32);
 
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return;
+
 	value32 = rtw_read32(rtwdev, REG_AFE_CTRL1) & ~(BIT_MAC_CLK_SEL);
 	value32 |= (MAC_CLK_HW_DEF_80M << BIT_SHIFT_MAC_CLK_SEL);
 	rtw_write32(rtwdev, REG_AFE_CTRL1, value32);
@@ -47,7 +52,7 @@
 
 	value8 = rtw_read8(rtwdev, REG_CCK_CHECK);
 	value8 = value8 & ~BIT_CHECK_CCK_EN;
-	if (channel > 35)
+	if (IS_CH_5G_BAND(channel))
 		value8 |= BIT_CHECK_CCK_EN;
 	rtw_write8(rtwdev, REG_CCK_CHECK, value8);
 }
@@ -59,6 +64,14 @@
 
 	rtw_write8(rtwdev, REG_RSV_CTRL, 0);
 
+	if (rtw_chip_wcpu_11n(rtwdev)) {
+		if (rtw_read32(rtwdev, REG_SYS_CFG1) & BIT_LDO)
+			rtw_write8(rtwdev, REG_LDO_SWR_CTRL, LDO_SEL);
+		else
+			rtw_write8(rtwdev, REG_LDO_SWR_CTRL, SPS_SEL);
+		return 0;
+	}
+
 	switch (rtw_hci_type(rtwdev)) {
 	case RTW_HCI_TYPE_PCIE:
 		rtw_write32_set(rtwdev, REG_HCI_OPT_CTRL, BIT_BT_DIG_CLK_EN);
@@ -98,42 +111,55 @@
 	return 0;
 }
 
+static bool do_pwr_poll_cmd(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 target)
+{
+	u32 cnt;
+
+	target &= mask;
+
+	for (cnt = 0; cnt < RTW_PWR_POLLING_CNT; cnt++) {
+		if ((rtw_read8(rtwdev, addr) & mask) == target)
+			return true;
+
+		udelay(50);
+	}
+
+	return false;
+}
+
 static int rtw_pwr_cmd_polling(struct rtw_dev *rtwdev,
 			       struct rtw_pwr_seq_cmd *cmd)
 {
 	u8 value;
-	u8 flag = 0;
 	u32 offset;
-	u32 cnt = RTW_PWR_POLLING_CNT;
 
 	if (cmd->base == RTW_PWR_ADDR_SDIO)
 		offset = cmd->offset | SDIO_LOCAL_OFFSET;
 	else
 		offset = cmd->offset;
 
-	do {
-		cnt--;
-		value = rtw_read8(rtwdev, offset);
-		value &= cmd->mask;
-		if (value == (cmd->value & cmd->mask))
-			return 0;
-		if (cnt == 0) {
-			if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE &&
-			    flag == 0) {
-				value = rtw_read8(rtwdev, REG_SYS_PW_CTRL);
-				value |= BIT(3);
-				rtw_write8(rtwdev, REG_SYS_PW_CTRL, value);
-				value &= ~BIT(3);
-				rtw_write8(rtwdev, REG_SYS_PW_CTRL, value);
-				cnt = RTW_PWR_POLLING_CNT;
-				flag = 1;
-			} else {
-				return -EBUSY;
-			}
-		} else {
-			udelay(50);
-		}
-	} while (1);
+	if (do_pwr_poll_cmd(rtwdev, offset, cmd->mask, cmd->value))
+		return 0;
+
+	if (rtw_hci_type(rtwdev) != RTW_HCI_TYPE_PCIE)
+		goto err;
+
+	/* if PCIE, toggle BIT_PFM_WOWL and try again */
+	value = rtw_read8(rtwdev, REG_SYS_PW_CTRL);
+	if (rtwdev->chip->id == RTW_CHIP_TYPE_8723D)
+		rtw_write8(rtwdev, REG_SYS_PW_CTRL, value & ~BIT_PFM_WOWL);
+	rtw_write8(rtwdev, REG_SYS_PW_CTRL, value | BIT_PFM_WOWL);
+	rtw_write8(rtwdev, REG_SYS_PW_CTRL, value & ~BIT_PFM_WOWL);
+	if (rtwdev->chip->id == RTW_CHIP_TYPE_8723D)
+		rtw_write8(rtwdev, REG_SYS_PW_CTRL, value | BIT_PFM_WOWL);
+
+	if (do_pwr_poll_cmd(rtwdev, offset, cmd->mask, cmd->value))
+		return 0;
+
+err:
+	rtw_err(rtwdev, "failed to poll offset=0x%x mask=0x%x value=0x%x\n",
+		offset, cmd->mask, cmd->value);
+	return -EBUSY;
 }
 
 static int rtw_sub_pwr_seq_parser(struct rtw_dev *rtwdev, u8 intf_mask,
@@ -225,12 +251,14 @@
 	u8 rpwm;
 	bool cur_pwr;
 
-	rpwm = rtw_read8(rtwdev, rtwdev->hci.rpwm_addr);
+	if (rtw_chip_wcpu_11ac(rtwdev)) {
+		rpwm = rtw_read8(rtwdev, rtwdev->hci.rpwm_addr);
 
-	/* Check FW still exist or not */
-	if (rtw_read16(rtwdev, REG_MCUFW_CTRL) == 0xC078) {
-		rpwm = (rpwm ^ BIT_RPWM_TOGGLE) & BIT_RPWM_TOGGLE;
-		rtw_write8(rtwdev, rtwdev->hci.rpwm_addr, rpwm);
+		/* Check FW still exist or not */
+		if (rtw_read16(rtwdev, REG_MCUFW_CTRL) == 0xC078) {
+			rpwm = (rpwm ^ BIT_RPWM_TOGGLE) & BIT_RPWM_TOGGLE;
+			rtw_write8(rtwdev, rtwdev->hci.rpwm_addr, rpwm);
+		}
 	}
 
 	if (rtw_read8(rtwdev, REG_CR) == 0xea)
@@ -241,7 +269,7 @@
 	else
 		cur_pwr = true;
 
-	if (pwr_on && cur_pwr)
+	if (pwr_on == cur_pwr)
 		return -EALREADY;
 
 	pwr_seq = pwr_on ? chip->pwr_on_seq : chip->pwr_off_seq;
@@ -251,7 +279,7 @@
 	return 0;
 }
 
-static int rtw_mac_init_system_cfg(struct rtw_dev *rtwdev)
+static int __rtw_mac_init_system_cfg(struct rtw_dev *rtwdev)
 {
 	u8 sys_func_en = rtwdev->chip->sys_func_en;
 	u8 value8;
@@ -261,7 +289,7 @@
 	value |= BIT_WL_PLATFORM_RST | BIT_DDMA_EN;
 	rtw_write32(rtwdev, REG_CPU_DMEM_CON, value);
 
-	rtw_write8(rtwdev, REG_SYS_FUNC_EN + 1, sys_func_en);
+	rtw_write8_set(rtwdev, REG_SYS_FUNC_EN + 1, sys_func_en);
 	value8 = (rtw_read8(rtwdev, REG_CR_EXT + 3) & 0xF0) | 0x0C;
 	rtw_write8(rtwdev, REG_CR_EXT + 3, value8);
 
@@ -276,6 +304,29 @@
 	return 0;
 }
 
+static int __rtw_mac_init_system_cfg_legacy(struct rtw_dev *rtwdev)
+{
+	rtw_write8(rtwdev, REG_CR, 0xff);
+	mdelay(2);
+	rtw_write8(rtwdev, REG_HWSEQ_CTRL, 0x7f);
+	mdelay(2);
+
+	rtw_write8_set(rtwdev, REG_SYS_CLKR, BIT_WAKEPAD_EN);
+	rtw_write16_clr(rtwdev, REG_GPIO_MUXCFG, BIT_EN_SIC);
+
+	rtw_write16(rtwdev, REG_CR, 0x2ff);
+
+	return 0;
+}
+
+static int rtw_mac_init_system_cfg(struct rtw_dev *rtwdev)
+{
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return __rtw_mac_init_system_cfg_legacy(rtwdev);
+
+	return __rtw_mac_init_system_cfg(rtwdev);
+}
+
 int rtw_mac_power_on(struct rtw_dev *rtwdev)
 {
 	int ret = 0;
@@ -312,15 +363,16 @@
 
 static bool check_firmware_size(const u8 *data, u32 size)
 {
+	const struct rtw_fw_hdr *fw_hdr = (const struct rtw_fw_hdr *)data;
 	u32 dmem_size;
 	u32 imem_size;
 	u32 emem_size;
 	u32 real_size;
 
-	dmem_size = le32_to_cpu(*((__le32 *)(data + FW_HDR_DMEM_SIZE)));
-	imem_size = le32_to_cpu(*((__le32 *)(data + FW_HDR_IMEM_SIZE)));
-	emem_size = ((*(data + FW_HDR_MEM_USAGE)) & BIT(4)) ?
-		    le32_to_cpu(*((__le32 *)(data + FW_HDR_EMEM_SIZE))) : 0;
+	dmem_size = le32_to_cpu(fw_hdr->dmem_size);
+	imem_size = le32_to_cpu(fw_hdr->imem_size);
+	emem_size = (fw_hdr->mem_usage & BIT(4)) ?
+		    le32_to_cpu(fw_hdr->emem_size) : 0;
 
 	dmem_size += FW_HDR_CHKSUM_SIZE;
 	imem_size += FW_HDR_CHKSUM_SIZE;
@@ -566,27 +618,10 @@
 	return 0;
 }
 
-static void update_firmware_info(struct rtw_dev *rtwdev,
-				 struct rtw_fw_state *fw)
-{
-	const u8 *data = fw->firmware->data;
-
-	fw->h2c_version =
-		le16_to_cpu(*((__le16 *)(data + FW_HDR_H2C_FMT_VER)));
-	fw->version =
-		le16_to_cpu(*((__le16 *)(data + FW_HDR_VERSION)));
-	fw->sub_version = *(data + FW_HDR_SUBVERSION);
-	fw->sub_index = *(data + FW_HDR_SUBINDEX);
-
-	rtw_dbg(rtwdev, RTW_DBG_FW, "fw h2c version: %x\n", fw->h2c_version);
-	rtw_dbg(rtwdev, RTW_DBG_FW, "fw version:     %x\n", fw->version);
-	rtw_dbg(rtwdev, RTW_DBG_FW, "fw sub version: %x\n", fw->sub_version);
-	rtw_dbg(rtwdev, RTW_DBG_FW, "fw sub index:   %x\n", fw->sub_index);
-}
-
 static int
 start_download_firmware(struct rtw_dev *rtwdev, const u8 *data, u32 size)
 {
+	const struct rtw_fw_hdr *fw_hdr = (const struct rtw_fw_hdr *)data;
 	const u8 *cur_fw;
 	u16 val;
 	u32 imem_size;
@@ -595,10 +630,10 @@
 	u32 addr;
 	int ret;
 
-	dmem_size = le32_to_cpu(*((__le32 *)(data + FW_HDR_DMEM_SIZE)));
-	imem_size = le32_to_cpu(*((__le32 *)(data + FW_HDR_IMEM_SIZE)));
-	emem_size = ((*(data + FW_HDR_MEM_USAGE)) & BIT(4)) ?
-		    le32_to_cpu(*((__le32 *)(data + FW_HDR_EMEM_SIZE))) : 0;
+	dmem_size = le32_to_cpu(fw_hdr->dmem_size);
+	imem_size = le32_to_cpu(fw_hdr->imem_size);
+	emem_size = (fw_hdr->mem_usage & BIT(4)) ?
+		    le32_to_cpu(fw_hdr->emem_size) : 0;
 	dmem_size += FW_HDR_CHKSUM_SIZE;
 	imem_size += FW_HDR_CHKSUM_SIZE;
 	emem_size += emem_size ? FW_HDR_CHKSUM_SIZE : 0;
@@ -608,14 +643,14 @@
 	rtw_write16(rtwdev, REG_MCUFW_CTRL, val);
 
 	cur_fw = data + FW_HDR_SIZE;
-	addr = le32_to_cpu(*((__le32 *)(data + FW_HDR_DMEM_ADDR)));
+	addr = le32_to_cpu(fw_hdr->dmem_addr);
 	addr &= ~BIT(31);
 	ret = download_firmware_to_mem(rtwdev, cur_fw, 0, addr, dmem_size);
 	if (ret)
 		return ret;
 
 	cur_fw = data + FW_HDR_SIZE + dmem_size;
-	addr = le32_to_cpu(*((__le32 *)(data + FW_HDR_IMEM_ADDR)));
+	addr = le32_to_cpu(fw_hdr->imem_addr);
 	addr &= ~BIT(31);
 	ret = download_firmware_to_mem(rtwdev, cur_fw, 0, addr, imem_size);
 	if (ret)
@@ -623,7 +658,7 @@
 
 	if (emem_size) {
 		cur_fw = data + FW_HDR_SIZE + dmem_size + imem_size;
-		addr = le32_to_cpu(*((__le32 *)(data + FW_HDR_EMEM_ADDR)));
+		addr = le32_to_cpu(fw_hdr->emem_addr);
 		addr &= ~BIT(31);
 		ret = download_firmware_to_mem(rtwdev, cur_fw, 0, addr,
 					       emem_size);
@@ -663,7 +698,7 @@
 	rtw_write16(rtwdev, REG_MCUFW_CTRL, fw_ctrl);
 }
 
-int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw)
+int __rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw)
 {
 	struct rtw_backup_info bckp[DLFW_RESTORE_REG_NUM];
 	const u8 *data = fw->firmware->data;
@@ -699,15 +734,13 @@
 	if (ret)
 		goto dlfw_fail;
 
-	update_firmware_info(rtwdev, fw);
-
 	/* reset desc and index */
 	rtw_hci_setup(rtwdev);
 
 	rtwdev->h2c.last_box_num = 0;
 	rtwdev->h2c.seq = 0;
 
-	rtw_flag_set(rtwdev, RTW_FLAG_FW_RUNNING);
+	set_bit(RTW_FLAG_FW_RUNNING, rtwdev->flags);
 
 	return 0;
 
@@ -719,6 +752,230 @@
 	return ret;
 }
 
+static void en_download_firmware_legacy(struct rtw_dev *rtwdev, bool en)
+{
+	int try;
+
+	if (en) {
+		wlan_cpu_enable(rtwdev, false);
+		wlan_cpu_enable(rtwdev, true);
+
+		rtw_write8_set(rtwdev, REG_MCUFW_CTRL, BIT_MCUFWDL_EN);
+
+		for (try = 0; try < 10; try++) {
+			if (rtw_read8(rtwdev, REG_MCUFW_CTRL) & BIT_MCUFWDL_EN)
+				goto fwdl_ready;
+			rtw_write8_set(rtwdev, REG_MCUFW_CTRL, BIT_MCUFWDL_EN);
+			msleep(20);
+		}
+		rtw_err(rtwdev, "failed to check fw download ready\n");
+fwdl_ready:
+		rtw_write32_clr(rtwdev, REG_MCUFW_CTRL, BIT_ROM_DLEN);
+	} else {
+		rtw_write8_clr(rtwdev, REG_MCUFW_CTRL, BIT_MCUFWDL_EN);
+	}
+}
+
+static void
+write_firmware_page(struct rtw_dev *rtwdev, u32 page, const u8 *data, u32 size)
+{
+	u32 val32;
+	u32 block_nr;
+	u32 remain_size;
+	u32 write_addr = FW_START_ADDR_LEGACY;
+	const __le32 *ptr = (const __le32 *)data;
+	u32 block;
+	__le32 remain_data = 0;
+
+	block_nr = size >> DLFW_BLK_SIZE_SHIFT_LEGACY;
+	remain_size = size & (DLFW_BLK_SIZE_LEGACY - 1);
+
+	val32 = rtw_read32(rtwdev, REG_MCUFW_CTRL);
+	val32 &= ~BIT_ROM_PGE;
+	val32 |= (page << BIT_SHIFT_ROM_PGE) & BIT_ROM_PGE;
+	rtw_write32(rtwdev, REG_MCUFW_CTRL, val32);
+
+	for (block = 0; block < block_nr; block++) {
+		rtw_write32(rtwdev, write_addr, le32_to_cpu(*ptr));
+
+		write_addr += DLFW_BLK_SIZE_LEGACY;
+		ptr++;
+	}
+
+	if (remain_size) {
+		memcpy(&remain_data, ptr, remain_size);
+		rtw_write32(rtwdev, write_addr, le32_to_cpu(remain_data));
+	}
+}
+
+static int
+download_firmware_legacy(struct rtw_dev *rtwdev, const u8 *data, u32 size)
+{
+	u32 page;
+	u32 total_page;
+	u32 last_page_size;
+
+	data += sizeof(struct rtw_fw_hdr_legacy);
+	size -= sizeof(struct rtw_fw_hdr_legacy);
+
+	total_page = size >> DLFW_PAGE_SIZE_SHIFT_LEGACY;
+	last_page_size = size & (DLFW_PAGE_SIZE_LEGACY - 1);
+
+	rtw_write8_set(rtwdev, REG_MCUFW_CTRL, BIT_FWDL_CHK_RPT);
+
+	for (page = 0; page < total_page; page++) {
+		write_firmware_page(rtwdev, page, data, DLFW_PAGE_SIZE_LEGACY);
+		data += DLFW_PAGE_SIZE_LEGACY;
+	}
+	if (last_page_size)
+		write_firmware_page(rtwdev, page, data, last_page_size);
+
+	if (!check_hw_ready(rtwdev, REG_MCUFW_CTRL, BIT_FWDL_CHK_RPT, 1)) {
+		rtw_err(rtwdev, "failed to check download fimrware report\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int download_firmware_validate_legacy(struct rtw_dev *rtwdev)
+{
+	u32 val32;
+	int try;
+
+	val32 = rtw_read32(rtwdev, REG_MCUFW_CTRL);
+	val32 |= BIT_MCUFWDL_RDY;
+	val32 &= ~BIT_WINTINI_RDY;
+	rtw_write32(rtwdev, REG_MCUFW_CTRL, val32);
+
+	wlan_cpu_enable(rtwdev, false);
+	wlan_cpu_enable(rtwdev, true);
+
+	for (try = 0; try < 10; try++) {
+		val32 = rtw_read32(rtwdev, REG_MCUFW_CTRL);
+		if ((val32 & FW_READY_LEGACY) == FW_READY_LEGACY)
+			return 0;
+		msleep(20);
+	}
+
+	rtw_err(rtwdev, "failed to validate fimrware\n");
+	return -EINVAL;
+}
+
+int __rtw_download_firmware_legacy(struct rtw_dev *rtwdev, struct rtw_fw_state *fw)
+{
+	int ret = 0;
+
+	en_download_firmware_legacy(rtwdev, true);
+	ret = download_firmware_legacy(rtwdev, fw->firmware->data, fw->firmware->size);
+	en_download_firmware_legacy(rtwdev, false);
+	if (ret)
+		goto out;
+
+	ret = download_firmware_validate_legacy(rtwdev);
+	if (ret)
+		goto out;
+
+	/* reset desc and index */
+	rtw_hci_setup(rtwdev);
+
+	rtwdev->h2c.last_box_num = 0;
+	rtwdev->h2c.seq = 0;
+
+	set_bit(RTW_FLAG_FW_RUNNING, rtwdev->flags);
+
+out:
+	return ret;
+}
+
+int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw)
+{
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return __rtw_download_firmware_legacy(rtwdev, fw);
+
+	return __rtw_download_firmware(rtwdev, fw);
+}
+
+static u32 get_priority_queues(struct rtw_dev *rtwdev, u32 queues)
+{
+	struct rtw_rqpn *rqpn = rtwdev->fifo.rqpn;
+	u32 prio_queues = 0;
+
+	if (queues & BIT(IEEE80211_AC_VO))
+		prio_queues |= BIT(rqpn->dma_map_vo);
+	if (queues & BIT(IEEE80211_AC_VI))
+		prio_queues |= BIT(rqpn->dma_map_vi);
+	if (queues & BIT(IEEE80211_AC_BE))
+		prio_queues |= BIT(rqpn->dma_map_be);
+	if (queues & BIT(IEEE80211_AC_BK))
+		prio_queues |= BIT(rqpn->dma_map_bk);
+
+	return prio_queues;
+}
+
+static void __rtw_mac_flush_prio_queue(struct rtw_dev *rtwdev,
+				       u32 prio_queue, bool drop)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_prioq_addr *addr;
+	bool wsize;
+	u16 avail_page, rsvd_page;
+	int i;
+
+	if (prio_queue >= RTW_DMA_MAPPING_MAX)
+		return;
+
+	addr = &chip->prioq_addrs->prio[prio_queue];
+	wsize = chip->prioq_addrs->wsize;
+
+	/* check if all of the reserved pages are available for 100 msecs */
+	for (i = 0; i < 5; i++) {
+		rsvd_page = wsize ? rtw_read16(rtwdev, addr->rsvd) :
+				     rtw_read8(rtwdev, addr->rsvd);
+		avail_page = wsize ? rtw_read16(rtwdev, addr->avail) :
+				      rtw_read8(rtwdev, addr->avail);
+		if (rsvd_page == avail_page)
+			return;
+
+		msleep(20);
+	}
+
+	/* priority queue is still not empty, throw a warning,
+	 *
+	 * Note that if we want to flush the tx queue when having a lot of
+	 * traffic (ex, 100Mbps up), some of the packets could be dropped.
+	 * And it requires like ~2secs to flush the full priority queue.
+	 */
+	if (!drop)
+		rtw_warn(rtwdev, "timed out to flush queue %d\n", prio_queue);
+}
+
+static void rtw_mac_flush_prio_queues(struct rtw_dev *rtwdev,
+				      u32 prio_queues, bool drop)
+{
+	u32 q;
+
+	for (q = 0; q < RTW_DMA_MAPPING_MAX; q++)
+		if (prio_queues & BIT(q))
+			__rtw_mac_flush_prio_queue(rtwdev, q, drop);
+}
+
+void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop)
+{
+	u32 prio_queues = 0;
+
+	/* If all of the hardware queues are requested to flush,
+	 * or the priority queues are not mapped yet,
+	 * flush all of the priority queues
+	 */
+	if (queues == BIT(rtwdev->hw->queues) - 1 || !rtwdev->fifo.rqpn)
+		prio_queues = BIT(RTW_DMA_MAPPING_MAX) - 1;
+	else
+		prio_queues = get_priority_queues(rtwdev, queues);
+
+	rtw_mac_flush_prio_queues(rtwdev, prio_queues, drop);
+}
+
 static int txdma_queue_mapping(struct rtw_dev *rtwdev)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
@@ -743,6 +1000,7 @@
 		return -EINVAL;
 	}
 
+	rtwdev->fifo.rqpn = rqpn;
 	txdma_pq_map |= BIT_TXDMA_HIQ_MAP(rqpn->dma_map_hi);
 	txdma_pq_map |= BIT_TXDMA_MGQ_MAP(rqpn->dma_map_mg);
 	txdma_pq_map |= BIT_TXDMA_BKQ_MAP(rqpn->dma_map_bk);
@@ -753,7 +1011,8 @@
 
 	rtw_write8(rtwdev, REG_CR, 0);
 	rtw_write8(rtwdev, REG_CR, MAC_TRX_ENABLE);
-	rtw_write32(rtwdev, REG_H2CQ_CSR, BIT_H2CQ_FULL);
+	if (rtw_chip_wcpu_11ac(rtwdev))
+		rtw_write32(rtwdev, REG_H2CQ_CSR, BIT_H2CQ_FULL);
 
 	return 0;
 }
@@ -768,13 +1027,16 @@
 	/* config rsvd page num */
 	fifo->rsvd_drv_pg_num = 8;
 	fifo->txff_pg_num = chip->txff_size >> 7;
-	fifo->rsvd_pg_num = fifo->rsvd_drv_pg_num +
-			   RSVD_PG_H2C_EXTRAINFO_NUM +
-			   RSVD_PG_H2C_STATICINFO_NUM +
-			   RSVD_PG_H2CQ_NUM +
-			   RSVD_PG_CPU_INSTRUCTION_NUM +
-			   RSVD_PG_FW_TXBUF_NUM +
-			   csi_buf_pg_num;
+	if (rtw_chip_wcpu_11n(rtwdev))
+		fifo->rsvd_pg_num = fifo->rsvd_drv_pg_num;
+	else
+		fifo->rsvd_pg_num = fifo->rsvd_drv_pg_num +
+				   RSVD_PG_H2C_EXTRAINFO_NUM +
+				   RSVD_PG_H2C_STATICINFO_NUM +
+				   RSVD_PG_H2CQ_NUM +
+				   RSVD_PG_CPU_INSTRUCTION_NUM +
+				   RSVD_PG_FW_TXBUF_NUM +
+				   csi_buf_pg_num;
 
 	if (fifo->rsvd_pg_num > fifo->txff_pg_num)
 		return -ENOMEM;
@@ -783,18 +1045,20 @@
 	fifo->rsvd_boundary = fifo->txff_pg_num - fifo->rsvd_pg_num;
 
 	cur_pg_addr = fifo->txff_pg_num;
-	cur_pg_addr -= csi_buf_pg_num;
-	fifo->rsvd_csibuf_addr = cur_pg_addr;
-	cur_pg_addr -= RSVD_PG_FW_TXBUF_NUM;
-	fifo->rsvd_fw_txbuf_addr = cur_pg_addr;
-	cur_pg_addr -= RSVD_PG_CPU_INSTRUCTION_NUM;
-	fifo->rsvd_cpu_instr_addr = cur_pg_addr;
-	cur_pg_addr -= RSVD_PG_H2CQ_NUM;
-	fifo->rsvd_h2cq_addr = cur_pg_addr;
-	cur_pg_addr -= RSVD_PG_H2C_STATICINFO_NUM;
-	fifo->rsvd_h2c_sta_info_addr = cur_pg_addr;
-	cur_pg_addr -= RSVD_PG_H2C_EXTRAINFO_NUM;
-	fifo->rsvd_h2c_info_addr = cur_pg_addr;
+	if (rtw_chip_wcpu_11ac(rtwdev)) {
+		cur_pg_addr -= csi_buf_pg_num;
+		fifo->rsvd_csibuf_addr = cur_pg_addr;
+		cur_pg_addr -= RSVD_PG_FW_TXBUF_NUM;
+		fifo->rsvd_fw_txbuf_addr = cur_pg_addr;
+		cur_pg_addr -= RSVD_PG_CPU_INSTRUCTION_NUM;
+		fifo->rsvd_cpu_instr_addr = cur_pg_addr;
+		cur_pg_addr -= RSVD_PG_H2CQ_NUM;
+		fifo->rsvd_h2cq_addr = cur_pg_addr;
+		cur_pg_addr -= RSVD_PG_H2C_STATICINFO_NUM;
+		fifo->rsvd_h2c_sta_info_addr = cur_pg_addr;
+		cur_pg_addr -= RSVD_PG_H2C_EXTRAINFO_NUM;
+		fifo->rsvd_h2c_info_addr = cur_pg_addr;
+	}
 	cur_pg_addr -= fifo->rsvd_drv_pg_num;
 	fifo->rsvd_drv_addr = cur_pg_addr;
 
@@ -806,6 +1070,63 @@
 	return 0;
 }
 
+static int __priority_queue_cfg(struct rtw_dev *rtwdev,
+				struct rtw_page_table *pg_tbl, u16 pubq_num)
+{
+	struct rtw_fifo_conf *fifo = &rtwdev->fifo;
+	struct rtw_chip_info *chip = rtwdev->chip;
+
+	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_1, pg_tbl->hq_num);
+	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_2, pg_tbl->lq_num);
+	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_3, pg_tbl->nq_num);
+	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_4, pg_tbl->exq_num);
+	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_5, pubq_num);
+	rtw_write32_set(rtwdev, REG_RQPN_CTRL_2, BIT_LD_RQPN);
+
+	rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2, fifo->rsvd_boundary);
+	rtw_write8_set(rtwdev, REG_FWHW_TXQ_CTRL + 2, BIT_EN_WR_FREE_TAIL >> 16);
+
+	rtw_write16(rtwdev, REG_BCNQ_BDNY_V1, fifo->rsvd_boundary);
+	rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2 + 2, fifo->rsvd_boundary);
+	rtw_write16(rtwdev, REG_BCNQ1_BDNY_V1, fifo->rsvd_boundary);
+	rtw_write32(rtwdev, REG_RXFF_BNDY, chip->rxff_size - C2H_PKT_BUF - 1);
+	rtw_write8_set(rtwdev, REG_AUTO_LLT_V1, BIT_AUTO_INIT_LLT_V1);
+
+	if (!check_hw_ready(rtwdev, REG_AUTO_LLT_V1, BIT_AUTO_INIT_LLT_V1, 0))
+		return -EBUSY;
+
+	rtw_write8(rtwdev, REG_CR + 3, 0);
+
+	return 0;
+}
+
+static int __priority_queue_cfg_legacy(struct rtw_dev *rtwdev,
+				       struct rtw_page_table *pg_tbl, u16 pubq_num)
+{
+	struct rtw_fifo_conf *fifo = &rtwdev->fifo;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	u32 val32;
+
+	val32 = BIT_RQPN_NE(pg_tbl->nq_num, pg_tbl->exq_num);
+	rtw_write32(rtwdev, REG_RQPN_NPQ, val32);
+	val32 = BIT_RQPN_HLP(pg_tbl->hq_num, pg_tbl->lq_num, pubq_num);
+	rtw_write32(rtwdev, REG_RQPN, val32);
+
+	rtw_write8(rtwdev, REG_TRXFF_BNDY, fifo->rsvd_boundary);
+	rtw_write16(rtwdev, REG_TRXFF_BNDY + 2, chip->rxff_size - REPORT_BUF - 1);
+	rtw_write8(rtwdev, REG_DWBCN0_CTRL + 1, fifo->rsvd_boundary);
+	rtw_write8(rtwdev, REG_BCNQ_BDNY, fifo->rsvd_boundary);
+	rtw_write8(rtwdev, REG_MGQ_BDNY, fifo->rsvd_boundary);
+	rtw_write8(rtwdev, REG_WMAC_LBK_BF_HD, fifo->rsvd_boundary);
+
+	rtw_write32_set(rtwdev, REG_AUTO_LLT, BIT_AUTO_INIT_LLT);
+
+	if (!check_hw_ready(rtwdev, REG_AUTO_LLT, BIT_AUTO_INIT_LLT, 0))
+		return -EBUSY;
+
+	return 0;
+}
+
 static int priority_queue_cfg(struct rtw_dev *rtwdev)
 {
 	struct rtw_fifo_conf *fifo = &rtwdev->fifo;
@@ -838,28 +1159,10 @@
 
 	pubq_num = fifo->acq_pg_num - pg_tbl->hq_num - pg_tbl->lq_num -
 		   pg_tbl->nq_num - pg_tbl->exq_num - pg_tbl->gapq_num;
-	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_1, pg_tbl->hq_num);
-	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_2, pg_tbl->lq_num);
-	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_3, pg_tbl->nq_num);
-	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_4, pg_tbl->exq_num);
-	rtw_write16(rtwdev, REG_FIFOPAGE_INFO_5, pubq_num);
-	rtw_write32_set(rtwdev, REG_RQPN_CTRL_2, BIT_LD_RQPN);
-
-	rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2, fifo->rsvd_boundary);
-	rtw_write8_set(rtwdev, REG_FWHW_TXQ_CTRL + 2, BIT_EN_WR_FREE_TAIL >> 16);
-
-	rtw_write16(rtwdev, REG_BCNQ_BDNY_V1, fifo->rsvd_boundary);
-	rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2 + 2, fifo->rsvd_boundary);
-	rtw_write16(rtwdev, REG_BCNQ1_BDNY_V1, fifo->rsvd_boundary);
-	rtw_write32(rtwdev, REG_RXFF_BNDY, chip->rxff_size - C2H_PKT_BUF - 1);
-	rtw_write8_set(rtwdev, REG_AUTO_LLT_V1, BIT_AUTO_INIT_LLT_V1);
-
-	if (!check_hw_ready(rtwdev, REG_AUTO_LLT_V1, BIT_AUTO_INIT_LLT_V1, 0))
-		return -EBUSY;
-
-	rtw_write8(rtwdev, REG_CR + 3, 0);
-
-	return 0;
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return __priority_queue_cfg_legacy(rtwdev, pg_tbl, pubq_num);
+	else
+		return __priority_queue_cfg(rtwdev, pg_tbl, pubq_num);
 }
 
 static int init_h2c(struct rtw_dev *rtwdev)
@@ -872,6 +1175,9 @@
 	u32 h2cq_free;
 	u32 wp, rp;
 
+	if (rtw_chip_wcpu_11n(rtwdev))
+		return 0;
+
 	h2cq_addr = fifo->rsvd_h2cq_addr << TX_PAGE_SIZE_SHIFT;
 	h2cq_size = RSVD_PG_H2CQ_NUM << TX_PAGE_SIZE_SHIFT;
 
@@ -936,11 +1242,13 @@
 	u8 value8;
 
 	rtw_write8(rtwdev, REG_RX_DRVINFO_SZ, PHY_STATUS_SIZE);
-	value8 = rtw_read8(rtwdev, REG_TRXFF_BNDY + 1);
-	value8 &= 0xF0;
-	/* For rxdesc len = 0 issue */
-	value8 |= 0xF;
-	rtw_write8(rtwdev, REG_TRXFF_BNDY + 1, value8);
+	if (rtw_chip_wcpu_11ac(rtwdev)) {
+		value8 = rtw_read8(rtwdev, REG_TRXFF_BNDY + 1);
+		value8 &= 0xF0;
+		/* For rxdesc len = 0 issue */
+		value8 |= 0xF;
+		rtw_write8(rtwdev, REG_TRXFF_BNDY + 1, value8);
+	}
 	rtw_write32_set(rtwdev, REG_RCR, BIT_APP_PHYSTS);
 	rtw_write32_clr(rtwdev, REG_WMAC_OPTION_FUNCTION + 4, BIT(8) | BIT(9));
 
@@ -964,5 +1272,7 @@
 	if (ret)
 		return ret;
 
+	rtw_hci_interface_cfg(rtwdev);
+
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/mac.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/mac.h
@@ -10,6 +10,7 @@
 #define SDIO_LOCAL_OFFSET	0x10250000
 #define DDMA_POLLING_COUNT	1000
 #define C2H_PKT_BUF		256
+#define REPORT_BUF		128
 #define PHY_STATUS_SIZE		4
 #define ILLEGAL_KEY_GROUP	0xFAAAAA00
 
@@ -31,5 +32,11 @@
 void rtw_mac_power_off(struct rtw_dev *rtwdev);
 int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw);
 int rtw_mac_init(struct rtw_dev *rtwdev);
+void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop);
+
+static inline void rtw_mac_flush_all_queues(struct rtw_dev *rtwdev, bool drop)
+{
+	rtw_mac_flush_queues(rtwdev, BIT(rtwdev->hw->queues) - 1, drop);
+}
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/mac80211.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/mac80211.c
@@ -10,26 +10,39 @@
 #include "coex.h"
 #include "ps.h"
 #include "reg.h"
+#include "bf.h"
 #include "debug.h"
+#include "wow.h"
 
 static void rtw_ops_tx(struct ieee80211_hw *hw,
 		       struct ieee80211_tx_control *control,
 		       struct sk_buff *skb)
 {
 	struct rtw_dev *rtwdev = hw->priv;
-	struct rtw_tx_pkt_info pkt_info = {0};
 
-	if (!rtw_flag_check(rtwdev, RTW_FLAG_RUNNING))
-		goto out;
+	if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags)) {
+		ieee80211_free_txskb(hw, skb);
+		return;
+	}
 
-	rtw_tx_pkt_info_update(rtwdev, &pkt_info, control, skb);
-	if (rtw_hci_tx(rtwdev, &pkt_info, skb))
-		goto out;
+	rtw_tx(rtwdev, control, skb);
+}
 
-	return;
+static void rtw_ops_wake_tx_queue(struct ieee80211_hw *hw,
+				  struct ieee80211_txq *txq)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_txq *rtwtxq = (struct rtw_txq *)txq->drv_priv;
 
-out:
-	ieee80211_free_txskb(hw, skb);
+	if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags))
+		return;
+
+	spin_lock_bh(&rtwdev->txq_lock);
+	if (list_empty(&rtwtxq->list))
+		list_add_tail(&rtwtxq->list, &rtwdev->txqs);
+	spin_unlock_bh(&rtwdev->txq_lock);
+
+	tasklet_schedule(&rtwdev->tx_tasklet);
 }
 
 static int rtw_ops_start(struct ieee80211_hw *hw)
@@ -60,21 +73,33 @@
 
 	mutex_lock(&rtwdev->mutex);
 
-	if (changed & IEEE80211_CONF_CHANGE_IDLE) {
-		if (hw->conf.flags & IEEE80211_CONF_IDLE) {
-			rtw_enter_ips(rtwdev);
+	rtw_leave_lps_deep(rtwdev);
+
+	if ((changed & IEEE80211_CONF_CHANGE_IDLE) &&
+	    !(hw->conf.flags & IEEE80211_CONF_IDLE)) {
+		ret = rtw_leave_ips(rtwdev);
+		if (ret) {
+			rtw_err(rtwdev, "failed to leave idle state\n");
+			goto out;
+		}
+	}
+
+	if (changed & IEEE80211_CONF_CHANGE_PS) {
+		if (hw->conf.flags & IEEE80211_CONF_PS) {
+			rtwdev->ps_enabled = true;
 		} else {
-			ret = rtw_leave_ips(rtwdev);
-			if (ret) {
-				rtw_err(rtwdev, "failed to leave idle state\n");
-				goto out;
-			}
+			rtwdev->ps_enabled = false;
+			rtw_leave_lps(rtwdev);
 		}
 	}
 
 	if (changed & IEEE80211_CONF_CHANGE_CHANNEL)
 		rtw_set_channel(rtwdev);
 
+	if ((changed & IEEE80211_CONF_CHANGE_IDLE) &&
+	    (hw->conf.flags & IEEE80211_CONF_IDLE))
+		rtw_enter_ips(rtwdev);
+
 out:
 	mutex_unlock(&rtwdev->mutex);
 	return ret;
@@ -129,31 +154,40 @@
 	u8 bcn_ctrl = 0;
 
 	rtwvif->port = port;
-	rtwvif->vif = vif;
 	rtwvif->stats.tx_unicast = 0;
 	rtwvif->stats.rx_unicast = 0;
 	rtwvif->stats.tx_cnt = 0;
 	rtwvif->stats.rx_cnt = 0;
-	rtwvif->in_lps = false;
+	memset(&rtwvif->bfee, 0, sizeof(struct rtw_bfee));
 	rtwvif->conf = &rtw_vif_port[port];
+	rtw_txq_init(rtwdev, vif->txq);
+	INIT_LIST_HEAD(&rtwvif->rsvd_page_list);
 
 	mutex_lock(&rtwdev->mutex);
 
+	rtw_leave_lps_deep(rtwdev);
+
 	switch (vif->type) {
 	case NL80211_IFTYPE_AP:
 	case NL80211_IFTYPE_MESH_POINT:
+		rtw_add_rsvd_page_bcn(rtwdev, rtwvif);
 		net_type = RTW_NET_AP_MODE;
 		bcn_ctrl = BIT_EN_BCN_FUNCTION | BIT_DIS_TSF_UDT;
 		break;
 	case NL80211_IFTYPE_ADHOC:
+		rtw_add_rsvd_page_bcn(rtwdev, rtwvif);
 		net_type = RTW_NET_AD_HOC;
 		bcn_ctrl = BIT_EN_BCN_FUNCTION | BIT_DIS_TSF_UDT;
 		break;
 	case NL80211_IFTYPE_STATION:
-	default:
+		rtw_add_rsvd_page_sta(rtwdev, rtwvif);
 		net_type = RTW_NET_NO_LINK;
 		bcn_ctrl = BIT_EN_BCN_FUNCTION;
 		break;
+	default:
+		WARN_ON(1);
+		mutex_unlock(&rtwdev->mutex);
+		return -EINVAL;
 	}
 
 	ether_addr_copy(rtwvif->mac_addr, vif->addr);
@@ -181,6 +215,11 @@
 
 	mutex_lock(&rtwdev->mutex);
 
+	rtw_leave_lps_deep(rtwdev);
+
+	rtw_txq_cleanup(rtwdev, vif->txq);
+	rtw_remove_rsvd_page(rtwdev, rtwvif);
+
 	eth_zero_addr(rtwvif->mac_addr);
 	config |= PORT_SET_MAC_ADDR;
 	rtwvif->net_type = RTW_NET_NO_LINK;
@@ -204,6 +243,8 @@
 
 	mutex_lock(&rtwdev->mutex);
 
+	rtw_leave_lps_deep(rtwdev);
+
 	if (changed_flags & FIF_ALLMULTI) {
 		if (*new_flags & FIF_ALLMULTI)
 			rtwdev->hal.rcr |= BIT_AM | BIT_AB;
@@ -238,6 +279,54 @@
 	mutex_unlock(&rtwdev->mutex);
 }
 
+/* Only have one group of EDCA parameters now */
+static const u32 ac_to_edca_param[IEEE80211_NUM_ACS] = {
+	[IEEE80211_AC_VO] = REG_EDCA_VO_PARAM,
+	[IEEE80211_AC_VI] = REG_EDCA_VI_PARAM,
+	[IEEE80211_AC_BE] = REG_EDCA_BE_PARAM,
+	[IEEE80211_AC_BK] = REG_EDCA_BK_PARAM,
+};
+
+static u8 rtw_aifsn_to_aifs(struct rtw_dev *rtwdev,
+			    struct rtw_vif *rtwvif, u8 aifsn)
+{
+	struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif);
+	u8 slot_time;
+	u8 sifs;
+
+	slot_time = vif->bss_conf.use_short_slot ? 9 : 20;
+	sifs = rtwdev->hal.current_band_type == RTW_BAND_5G ? 16 : 10;
+
+	return aifsn * slot_time + sifs;
+}
+
+static void __rtw_conf_tx(struct rtw_dev *rtwdev,
+			  struct rtw_vif *rtwvif, u16 ac)
+{
+	struct ieee80211_tx_queue_params *params = &rtwvif->tx_params[ac];
+	u32 edca_param = ac_to_edca_param[ac];
+	u8 ecw_max, ecw_min;
+	u8 aifs;
+
+	/* 2^ecw - 1 = cw; ecw = log2(cw + 1) */
+	ecw_max = ilog2(params->cw_max + 1);
+	ecw_min = ilog2(params->cw_min + 1);
+	aifs = rtw_aifsn_to_aifs(rtwdev, rtwvif, params->aifs);
+	rtw_write32_mask(rtwdev, edca_param, BIT_MASK_TXOP_LMT, params->txop);
+	rtw_write32_mask(rtwdev, edca_param, BIT_MASK_CWMAX, ecw_max);
+	rtw_write32_mask(rtwdev, edca_param, BIT_MASK_CWMIN, ecw_min);
+	rtw_write32_mask(rtwdev, edca_param, BIT_MASK_AIFS, aifs);
+}
+
+static void rtw_conf_tx(struct rtw_dev *rtwdev,
+			struct rtw_vif *rtwvif)
+{
+	u16 ac;
+
+	for (ac = 0; ac < IEEE80211_NUM_ACS; ac++)
+		__rtw_conf_tx(rtwdev, rtwvif, ac);
+}
+
 static void rtw_ops_bss_info_changed(struct ieee80211_hw *hw,
 				     struct ieee80211_vif *vif,
 				     struct ieee80211_bss_conf *conf,
@@ -249,26 +338,26 @@
 
 	mutex_lock(&rtwdev->mutex);
 
+	rtw_leave_lps_deep(rtwdev);
+
 	if (changed & BSS_CHANGED_ASSOC) {
-		struct rtw_chip_info *chip = rtwdev->chip;
 		enum rtw_net_type net_type;
 
 		if (conf->assoc) {
 			rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_FINISH);
 			net_type = RTW_NET_MGD_LINKED;
-			chip->ops->phy_calibration(rtwdev);
 
 			rtwvif->aid = conf->aid;
-			rtw_add_rsvd_page(rtwdev, RSVD_PS_POLL, true);
-			rtw_add_rsvd_page(rtwdev, RSVD_QOS_NULL, true);
-			rtw_add_rsvd_page(rtwdev, RSVD_NULL, true);
-			rtw_fw_download_rsvd_page(rtwdev, vif);
+			rtw_fw_download_rsvd_page(rtwdev);
 			rtw_send_rsvd_page_h2c(rtwdev);
 			rtw_coex_media_status_notify(rtwdev, conf->assoc);
+			if (rtw_bf_support)
+				rtw_bf_assoc(rtwdev, vif, conf);
 		} else {
+			rtw_leave_lps(rtwdev);
 			net_type = RTW_NET_NO_LINK;
 			rtwvif->aid = 0;
-			rtw_reset_rsvd_page(rtwdev);
+			rtw_bf_disassoc(rtwdev, vif, conf);
 		}
 
 		rtwvif->net_type = net_type;
@@ -282,13 +371,38 @@
 	}
 
 	if (changed & BSS_CHANGED_BEACON)
-		rtw_fw_download_rsvd_page(rtwdev, vif);
+		rtw_fw_download_rsvd_page(rtwdev);
+
+	if (changed & BSS_CHANGED_MU_GROUPS)
+		rtw_chip_set_gid_table(rtwdev, vif, conf);
+
+	if (changed & BSS_CHANGED_ERP_SLOT)
+		rtw_conf_tx(rtwdev, rtwvif);
 
 	rtw_vif_port_config(rtwdev, rtwvif, config);
 
 	mutex_unlock(&rtwdev->mutex);
 }
 
+static int rtw_ops_conf_tx(struct ieee80211_hw *hw,
+			   struct ieee80211_vif *vif, u16 ac,
+			   const struct ieee80211_tx_queue_params *params)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+
+	mutex_lock(&rtwdev->mutex);
+
+	rtw_leave_lps_deep(rtwdev);
+
+	rtwvif->tx_params[ac] = *params;
+	__rtw_conf_tx(rtwdev, rtwvif, ac);
+
+	mutex_unlock(&rtwdev->mutex);
+
+	return 0;
+}
+
 static u8 rtw_acquire_macid(struct rtw_dev *rtwdev)
 {
 	unsigned long mac_id;
@@ -311,6 +425,7 @@
 {
 	struct rtw_dev *rtwdev = hw->priv;
 	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+	int i;
 	int ret = 0;
 
 	mutex_lock(&rtwdev->mutex);
@@ -325,6 +440,8 @@
 	si->vif = vif;
 	si->init_ra_lv = 1;
 	ewma_rssi_init(&si->avg_rssi);
+	for (i = 0; i < ARRAY_SIZE(sta->txq); i++)
+		rtw_txq_init(rtwdev, sta->txq[i]);
 
 	rtw_update_sta_info(rtwdev, si);
 	rtw_fw_media_status_report(rtwdev, si->mac_id, true);
@@ -345,12 +462,18 @@
 {
 	struct rtw_dev *rtwdev = hw->priv;
 	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+	int i;
 
 	mutex_lock(&rtwdev->mutex);
 
 	rtw_release_macid(rtwdev, si->mac_id);
 	rtw_fw_media_status_report(rtwdev, si->mac_id, false);
 
+	for (i = 0; i < ARRAY_SIZE(sta->txq); i++)
+		rtw_txq_cleanup(rtwdev, sta->txq[i]);
+
+	kfree(si->mask);
+
 	rtwdev->sta_cnt--;
 
 	rtw_info(rtwdev, "sta %pM with macid %d left\n",
@@ -389,6 +512,9 @@
 	case WLAN_CIPHER_SUITE_BIP_CMAC_256:
 	case WLAN_CIPHER_SUITE_BIP_GMAC_128:
 	case WLAN_CIPHER_SUITE_BIP_GMAC_256:
+	case WLAN_CIPHER_SUITE_CCMP_256:
+	case WLAN_CIPHER_SUITE_GCMP:
+	case WLAN_CIPHER_SUITE_GCMP_256:
 		/* suppress error messages */
 		return -EOPNOTSUPP;
 	default:
@@ -397,6 +523,8 @@
 
 	mutex_lock(&rtwdev->mutex);
 
+	rtw_leave_lps_deep(rtwdev);
+
 	if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
 		hw_key_idx = rtw_sec_get_free_cam(sec);
 	} else {
@@ -418,10 +546,15 @@
 				  hw_key_type, hw_key_idx);
 		break;
 	case DISABLE_KEY:
+		rtw_mac_flush_all_queues(rtwdev, false);
 		rtw_sec_clear_cam(rtwdev, sec, key->hw_key_idx);
 		break;
 	}
 
+	/* download new cam settings for PG to backup */
+	if (rtw_fw_lps_deep_mode == LPS_DEEP_MODE_PG)
+		rtw_fw_download_rsvd_page(rtwdev);
+
 out:
 	mutex_unlock(&rtwdev->mutex);
 
@@ -434,17 +567,21 @@
 {
 	struct ieee80211_sta *sta = params->sta;
 	u16 tid = params->tid;
+	struct ieee80211_txq *txq = sta->txq[tid];
+	struct rtw_txq *rtwtxq = (struct rtw_txq *)txq->drv_priv;
 
 	switch (params->action) {
 	case IEEE80211_AMPDU_TX_START:
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-		break;
+		return IEEE80211_AMPDU_TX_START_IMMEDIATE;
 	case IEEE80211_AMPDU_TX_STOP_CONT:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH:
 	case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT:
+		clear_bit(RTW_TXQ_AMPDU, &rtwtxq->flags);
 		ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
 		break;
 	case IEEE80211_AMPDU_TX_OPERATIONAL:
+		set_bit(RTW_TXQ_AMPDU, &rtwtxq->flags);
+		break;
 	case IEEE80211_AMPDU_RX_START:
 	case IEEE80211_AMPDU_RX_STOP:
 		break;
@@ -456,6 +593,20 @@
 	return 0;
 }
 
+static bool rtw_ops_can_aggregate_in_amsdu(struct ieee80211_hw *hw,
+					   struct sk_buff *head,
+					   struct sk_buff *skb)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	struct rtw_hal *hal = &rtwdev->hal;
+
+	/* we don't want to enable TX AMSDU on 2.4G */
+	if (hal->current_band_type == RTW_BAND_2G)
+		return false;
+
+	return true;
+}
+
 static void rtw_ops_sw_scan_start(struct ieee80211_hw *hw,
 				  struct ieee80211_vif *vif,
 				  const u8 *mac_addr)
@@ -464,18 +615,18 @@
 	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
 	u32 config = 0;
 
-	rtw_leave_lps(rtwdev, rtwvif);
-
 	mutex_lock(&rtwdev->mutex);
 
+	rtw_leave_lps(rtwdev);
+
 	ether_addr_copy(rtwvif->mac_addr, mac_addr);
 	config |= PORT_SET_MAC_ADDR;
 	rtw_vif_port_config(rtwdev, rtwvif, config);
 
 	rtw_coex_scan_notify(rtwdev, COEX_SCAN_START);
 
-	rtw_flag_set(rtwdev, RTW_FLAG_DIG_DISABLE);
-	rtw_flag_set(rtwdev, RTW_FLAG_SCANNING);
+	set_bit(RTW_FLAG_DIG_DISABLE, rtwdev->flags);
+	set_bit(RTW_FLAG_SCANNING, rtwdev->flags);
 
 	mutex_unlock(&rtwdev->mutex);
 }
@@ -489,8 +640,8 @@
 
 	mutex_lock(&rtwdev->mutex);
 
-	rtw_flag_clear(rtwdev, RTW_FLAG_SCANNING);
-	rtw_flag_clear(rtwdev, RTW_FLAG_DIG_DISABLE);
+	clear_bit(RTW_FLAG_SCANNING, rtwdev->flags);
+	clear_bit(RTW_FLAG_DIG_DISABLE, rtwdev->flags);
 
 	ether_addr_copy(rtwvif->mac_addr, vif->addr);
 	config |= PORT_SET_MAC_ADDR;
@@ -508,12 +659,138 @@
 	struct rtw_dev *rtwdev = hw->priv;
 
 	mutex_lock(&rtwdev->mutex);
+	rtw_leave_lps_deep(rtwdev);
 	rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_START);
+	rtw_chip_prepare_tx(rtwdev);
 	mutex_unlock(&rtwdev->mutex);
 }
 
+static int rtw_ops_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+
+	mutex_lock(&rtwdev->mutex);
+	rtwdev->rts_threshold = value;
+	mutex_unlock(&rtwdev->mutex);
+
+	return 0;
+}
+
+static void rtw_ops_sta_statistics(struct ieee80211_hw *hw,
+				   struct ieee80211_vif *vif,
+				   struct ieee80211_sta *sta,
+				   struct station_info *sinfo)
+{
+	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+
+	sinfo->txrate = si->ra_report.txrate;
+	sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
+}
+
+static void rtw_ops_flush(struct ieee80211_hw *hw,
+			  struct ieee80211_vif *vif,
+			  u32 queues, bool drop)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+
+	mutex_lock(&rtwdev->mutex);
+	rtw_leave_lps_deep(rtwdev);
+
+	rtw_mac_flush_queues(rtwdev, queues, drop);
+	mutex_unlock(&rtwdev->mutex);
+}
+
+struct rtw_iter_bitrate_mask_data {
+	struct rtw_dev *rtwdev;
+	struct ieee80211_vif *vif;
+	const struct cfg80211_bitrate_mask *mask;
+};
+
+static void rtw_ra_mask_info_update_iter(void *data, struct ieee80211_sta *sta)
+{
+	struct rtw_iter_bitrate_mask_data *br_data = data;
+	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+
+	if (si->vif != br_data->vif)
+		return;
+
+	/* free previous mask setting */
+	kfree(si->mask);
+	si->mask = kmemdup(br_data->mask, sizeof(struct cfg80211_bitrate_mask),
+			   GFP_ATOMIC);
+	if (!si->mask) {
+		si->use_cfg_mask = false;
+		return;
+	}
+
+	si->use_cfg_mask = true;
+	rtw_update_sta_info(br_data->rtwdev, si);
+}
+
+static void rtw_ra_mask_info_update(struct rtw_dev *rtwdev,
+				    struct ieee80211_vif *vif,
+				    const struct cfg80211_bitrate_mask *mask)
+{
+	struct rtw_iter_bitrate_mask_data br_data;
+
+	br_data.rtwdev = rtwdev;
+	br_data.vif = vif;
+	br_data.mask = mask;
+	rtw_iterate_stas_atomic(rtwdev, rtw_ra_mask_info_update_iter, &br_data);
+}
+
+static int rtw_ops_set_bitrate_mask(struct ieee80211_hw *hw,
+				    struct ieee80211_vif *vif,
+				    const struct cfg80211_bitrate_mask *mask)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+
+	rtw_ra_mask_info_update(rtwdev, vif, mask);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM
+static int rtw_ops_suspend(struct ieee80211_hw *hw,
+			   struct cfg80211_wowlan *wowlan)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	int ret;
+
+	mutex_lock(&rtwdev->mutex);
+	ret = rtw_wow_suspend(rtwdev, wowlan);
+	if (ret)
+		rtw_err(rtwdev, "failed to suspend for wow %d\n", ret);
+	mutex_unlock(&rtwdev->mutex);
+
+	return ret ? 1 : 0;
+}
+
+static int rtw_ops_resume(struct ieee80211_hw *hw)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+	int ret;
+
+	mutex_lock(&rtwdev->mutex);
+	ret = rtw_wow_resume(rtwdev);
+	if (ret)
+		rtw_err(rtwdev, "failed to resume for wow %d\n", ret);
+	mutex_unlock(&rtwdev->mutex);
+
+	return ret ? 1 : 0;
+}
+
+static void rtw_ops_set_wakeup(struct ieee80211_hw *hw, bool enabled)
+{
+	struct rtw_dev *rtwdev = hw->priv;
+
+	device_set_wakeup_enable(rtwdev->dev, enabled);
+}
+#endif
+
 const struct ieee80211_ops rtw_ops = {
 	.tx			= rtw_ops_tx,
+	.wake_tx_queue		= rtw_ops_wake_tx_queue,
 	.start			= rtw_ops_start,
 	.stop			= rtw_ops_stop,
 	.config			= rtw_ops_config,
@@ -521,12 +798,23 @@
 	.remove_interface	= rtw_ops_remove_interface,
 	.configure_filter	= rtw_ops_configure_filter,
 	.bss_info_changed	= rtw_ops_bss_info_changed,
+	.conf_tx		= rtw_ops_conf_tx,
 	.sta_add		= rtw_ops_sta_add,
 	.sta_remove		= rtw_ops_sta_remove,
 	.set_key		= rtw_ops_set_key,
 	.ampdu_action		= rtw_ops_ampdu_action,
+	.can_aggregate_in_amsdu	= rtw_ops_can_aggregate_in_amsdu,
 	.sw_scan_start		= rtw_ops_sw_scan_start,
 	.sw_scan_complete	= rtw_ops_sw_scan_complete,
 	.mgd_prepare_tx		= rtw_ops_mgd_prepare_tx,
+	.set_rts_threshold	= rtw_ops_set_rts_threshold,
+	.sta_statistics		= rtw_ops_sta_statistics,
+	.flush			= rtw_ops_flush,
+	.set_bitrate_mask	= rtw_ops_set_bitrate_mask,
+#ifdef CONFIG_PM
+	.suspend		= rtw_ops_suspend,
+	.resume			= rtw_ops_resume,
+	.set_wakeup		= rtw_ops_set_wakeup,
+#endif
 };
 EXPORT_SYMBOL(rtw_ops);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/main.c
@@ -12,16 +12,24 @@
 #include "phy.h"
 #include "reg.h"
 #include "efuse.h"
+#include "tx.h"
 #include "debug.h"
+#include "bf.h"
+#include "sar.h"
 
-static bool rtw_fw_support_lps;
+unsigned int rtw_fw_lps_deep_mode;
+EXPORT_SYMBOL(rtw_fw_lps_deep_mode);
+bool rtw_bf_support = true;
 unsigned int rtw_debug_mask;
 EXPORT_SYMBOL(rtw_debug_mask);
+bool rtw_edcca_enabled = true;
 
-module_param_named(support_lps, rtw_fw_support_lps, bool, 0644);
+module_param_named(lps_deep_mode, rtw_fw_lps_deep_mode, uint, 0644);
+module_param_named(support_bf, rtw_bf_support, bool, 0644);
 module_param_named(debug_mask, rtw_debug_mask, uint, 0644);
 
-MODULE_PARM_DESC(support_lps, "Set Y to enable Leisure Power Save support, to turn radio off between beacons");
+MODULE_PARM_DESC(lps_deep_mode, "Deeper PS mode. If 0, deep PS is disabled");
+MODULE_PARM_DESC(support_bf, "Set Y to enable beamformee support");
 MODULE_PARM_DESC(debug_mask, "Debugging mask");
 
 static struct ieee80211_channel rtw_channeltable_2g[] = {
@@ -84,6 +92,18 @@
 	{.bitrate = 540, .hw_value = 0x0b,},
 };
 
+u16 rtw_desc_to_bitrate(u8 desc_rate)
+{
+	struct ieee80211_rate rate;
+
+	if (WARN(desc_rate >= ARRAY_SIZE(rtw_ratetable), "invalid desc rate\n"))
+		return 0;
+
+	rate = rtw_ratetable[desc_rate];
+
+	return rate.bitrate;
+}
+
 static struct ieee80211_supported_band rtw_band_2ghz = {
 	.band = NL80211_BAND_2GHZ,
 
@@ -112,29 +132,39 @@
 };
 
 struct rtw_watch_dog_iter_data {
+	struct rtw_dev *rtwdev;
 	struct rtw_vif *rtwvif;
-	bool active;
-	u8 assoc_cnt;
 };
 
+static void rtw_dynamic_csi_rate(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif)
+{
+	struct rtw_bf_info *bf_info = &rtwdev->bf_info;
+	u8 fix_rate_enable = 0;
+	u8 new_csi_rate_idx;
+
+	if (rtwvif->bfee.role != RTW_BFEE_SU &&
+	    rtwvif->bfee.role != RTW_BFEE_MU)
+		return;
+
+	rtw_chip_cfg_csi_rate(rtwdev, rtwdev->dm_info.min_rssi,
+			      bf_info->cur_csi_rpt_rate,
+			      fix_rate_enable, &new_csi_rate_idx);
+
+	if (new_csi_rate_idx != bf_info->cur_csi_rpt_rate)
+		bf_info->cur_csi_rpt_rate = new_csi_rate_idx;
+}
+
 static void rtw_vif_watch_dog_iter(void *data, u8 *mac,
 				   struct ieee80211_vif *vif)
 {
 	struct rtw_watch_dog_iter_data *iter_data = data;
 	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
 
-	if (vif->type == NL80211_IFTYPE_STATION) {
-		if (vif->bss_conf.assoc) {
-			iter_data->assoc_cnt++;
+	if (vif->type == NL80211_IFTYPE_STATION)
+		if (vif->bss_conf.assoc)
 			iter_data->rtwvif = rtwvif;
-		}
-		if (rtwvif->stats.tx_cnt > RTW_LPS_THRESHOLD ||
-		    rtwvif->stats.rx_cnt > RTW_LPS_THRESHOLD)
-			iter_data->active = true;
-	} else {
-		/* only STATION mode can enter lps */
-		iter_data->active = true;
-	}
+
+	rtw_dynamic_csi_rate(iter_data->rtwdev, rtwvif);
 
 	rtwvif->stats.tx_unicast = 0;
 	rtwvif->stats.rx_unicast = 0;
@@ -149,46 +179,74 @@
 {
 	struct rtw_dev *rtwdev = container_of(work, struct rtw_dev,
 					      watch_dog_work.work);
+	struct rtw_traffic_stats *stats = &rtwdev->stats;
 	struct rtw_watch_dog_iter_data data = {};
-	bool busy_traffic = rtw_flag_check(rtwdev, RTW_FLAG_BUSY_TRAFFIC);
+	bool busy_traffic = test_bit(RTW_FLAG_BUSY_TRAFFIC, rtwdev->flags);
+	bool ps_active;
 
-	if (!rtw_flag_check(rtwdev, RTW_FLAG_RUNNING))
-		return;
+	mutex_lock(&rtwdev->mutex);
+
+	if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags))
+		goto unlock;
 
 	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->watch_dog_work,
 				     RTW_WATCH_DOG_DELAY_TIME);
 
 	if (rtwdev->stats.tx_cnt > 100 || rtwdev->stats.rx_cnt > 100)
-		rtw_flag_set(rtwdev, RTW_FLAG_BUSY_TRAFFIC);
+		set_bit(RTW_FLAG_BUSY_TRAFFIC, rtwdev->flags);
 	else
-		rtw_flag_clear(rtwdev, RTW_FLAG_BUSY_TRAFFIC);
+		clear_bit(RTW_FLAG_BUSY_TRAFFIC, rtwdev->flags);
 
-	if (busy_traffic != rtw_flag_check(rtwdev, RTW_FLAG_BUSY_TRAFFIC))
+	if (busy_traffic != test_bit(RTW_FLAG_BUSY_TRAFFIC, rtwdev->flags))
 		rtw_coex_wl_status_change_notify(rtwdev);
 
+	if (stats->tx_cnt > RTW_LPS_THRESHOLD ||
+	    stats->rx_cnt > RTW_LPS_THRESHOLD)
+		ps_active = true;
+	else
+		ps_active = false;
+
+	ewma_tp_add(&stats->tx_ewma_tp,
+		    (u32)(stats->tx_unicast >> RTW_TP_SHIFT));
+	ewma_tp_add(&stats->rx_ewma_tp,
+		    (u32)(stats->rx_unicast >> RTW_TP_SHIFT));
+	stats->tx_throughput = ewma_tp_read(&stats->tx_ewma_tp);
+	stats->rx_throughput = ewma_tp_read(&stats->rx_ewma_tp);
+
 	/* reset tx/rx statictics */
-	rtwdev->stats.tx_unicast = 0;
-	rtwdev->stats.rx_unicast = 0;
-	rtwdev->stats.tx_cnt = 0;
-	rtwdev->stats.rx_cnt = 0;
+	stats->tx_unicast = 0;
+	stats->rx_unicast = 0;
+	stats->tx_cnt = 0;
+	stats->rx_cnt = 0;
+
+	if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
+		goto unlock;
+
+	/* make sure BB/RF is working for dynamic mech */
+	rtw_leave_lps(rtwdev);
+
+	rtw_phy_dynamic_mechanism(rtwdev);
 
+	data.rtwdev = rtwdev;
 	/* use atomic version to avoid taking local->iflist_mtx mutex */
 	rtw_iterate_vifs_atomic(rtwdev, rtw_vif_watch_dog_iter, &data);
 
 	/* fw supports only one station associated to enter lps, if there are
 	 * more than two stations associated to the AP, then we can not enter
 	 * lps, because fw does not handle the overlapped beacon interval
+	 *
+	 * mac80211 should iterate vifs and determine if driver can enter
+	 * ps by passing IEEE80211_CONF_PS to us, all we need to do is to
+	 * get that vif and check if device is having traffic more than the
+	 * threshold.
 	 */
-	if (rtw_fw_support_lps &&
-	    data.rtwvif && !data.active && data.assoc_cnt == 1)
-		rtw_enter_lps(rtwdev, data.rtwvif);
-
-	if (rtw_flag_check(rtwdev, RTW_FLAG_SCANNING))
-		return;
-
-	rtw_phy_dynamic_mechanism(rtwdev);
+	if (rtwdev->ps_enabled && data.rtwvif && !ps_active)
+		rtw_enter_lps(rtwdev, data.rtwvif->port);
 
 	rtwdev->watch_dog_cnt++;
+
+unlock:
+	mutex_unlock(&rtwdev->mutex);
 }
 
 static void rtw_c2h_work(struct work_struct *work)
@@ -203,6 +261,40 @@
 	}
 }
 
+struct rtw_txq_ba_iter_data {
+};
+
+static void rtw_txq_ba_iter(void *data, struct ieee80211_sta *sta)
+{
+	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+	int ret;
+	u8 tid;
+
+	tid = find_first_bit(si->tid_ba, IEEE80211_NUM_TIDS);
+	while (tid != IEEE80211_NUM_TIDS) {
+		clear_bit(tid, si->tid_ba);
+		ret = ieee80211_start_tx_ba_session(sta, tid, 0);
+		if (ret == -EINVAL) {
+			struct ieee80211_txq *txq;
+			struct rtw_txq *rtwtxq;
+
+			txq = sta->txq[tid];
+			rtwtxq = (struct rtw_txq *)txq->drv_priv;
+			set_bit(RTW_TXQ_BLOCK_BA, &rtwtxq->flags);
+		}
+
+		tid = find_first_bit(si->tid_ba, IEEE80211_NUM_TIDS);
+	}
+}
+
+static void rtw_txq_ba_work(struct work_struct *work)
+{
+	struct rtw_dev *rtwdev = container_of(work, struct rtw_dev, ba_work);
+	struct rtw_txq_ba_iter_data data;
+
+	rtw_iterate_stas_atomic(rtwdev, rtw_txq_ba_iter, &data);
+}
+
 void rtw_get_channel_params(struct cfg80211_chan_def *chandef,
 			    struct rtw_channel_params *chan_params)
 {
@@ -226,15 +318,15 @@
 	case NL80211_CHAN_WIDTH_20_NOHT:
 	case NL80211_CHAN_WIDTH_20:
 		bandwidth = RTW_CHANNEL_WIDTH_20;
-		primary_chan_idx = 0;
+		primary_chan_idx = RTW_SC_DONT_CARE;
 		break;
 	case NL80211_CHAN_WIDTH_40:
 		bandwidth = RTW_CHANNEL_WIDTH_40;
 		if (primary_freq > center_freq) {
-			primary_chan_idx = 1;
+			primary_chan_idx = RTW_SC_20_UPPER;
 			center_chan -= 2;
 		} else {
-			primary_chan_idx = 2;
+			primary_chan_idx = RTW_SC_20_LOWER;
 			center_chan += 2;
 		}
 		break;
@@ -242,10 +334,10 @@
 		bandwidth = RTW_CHANNEL_WIDTH_80;
 		if (primary_freq > center_freq) {
 			if (primary_freq - center_freq == 10) {
-				primary_chan_idx = 1;
+				primary_chan_idx = RTW_SC_20_UPPER;
 				center_chan -= 2;
 			} else {
-				primary_chan_idx = 3;
+				primary_chan_idx = RTW_SC_20_UPMOST;
 				center_chan -= 6;
 			}
 			/* assign the center channel used
@@ -254,10 +346,10 @@
 			cch_by_bw[RTW_CHANNEL_WIDTH_40] = center_chan + 4;
 		} else {
 			if (center_freq - primary_freq == 10) {
-				primary_chan_idx = 2;
+				primary_chan_idx = RTW_SC_20_LOWER;
 				center_chan += 2;
 			} else {
-				primary_chan_idx = 4;
+				primary_chan_idx = RTW_SC_20_LOWEST;
 				center_chan += 6;
 			}
 			/* assign the center channel used
@@ -311,13 +403,29 @@
 	if (hal->current_band_type == RTW_BAND_5G) {
 		rtw_coex_switchband_notify(rtwdev, COEX_SWITCH_TO_5G);
 	} else {
-		if (rtw_flag_check(rtwdev, RTW_FLAG_SCANNING))
+		if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
 			rtw_coex_switchband_notify(rtwdev, COEX_SWITCH_TO_24G);
 		else
 			rtw_coex_switchband_notify(rtwdev, COEX_SWITCH_TO_24G_NOFORSCAN);
 	}
 
 	rtw_phy_set_tx_power_level(rtwdev, center_chan);
+
+	/* If set channel isn't for scanning, we'll do RF calibration once in
+	 * this channel while mgd_prepare_tx.
+	 */
+	if (!test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
+		rtwdev->need_rfk = true;
+}
+
+void rtw_chip_prepare_tx(struct rtw_dev *rtwdev)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+
+	if (rtwdev->need_rfk) {
+		rtwdev->need_rfk = false;
+		chip->ops->phy_calibration(rtwdev);
+	}
 }
 
 static void rtw_vif_write_addr(struct rtw_dev *rtwdev, u32 start, u8 *addr)
@@ -382,6 +490,7 @@
 static void rtw_hw_config_rf_ant_num(struct rtw_dev *rtwdev, u8 hw_ant_num)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
+	struct rtw_chip_info *chip = rtwdev->chip;
 
 	if (hw_ant_num == EFUSE_HW_CAP_IGNORE ||
 	    hw_ant_num >= hal->rf_path_num)
@@ -391,6 +500,8 @@
 	case 1:
 		hal->rf_type = RF_1T1R;
 		hal->rf_path_num = 1;
+		if (!chip->fix_rf_phy_num)
+			hal->rf_phy_num = hal->rf_path_num;
 		hal->antenna_tx = BB_PATH_A;
 		hal->antenna_rx = BB_PATH_A;
 		break;
@@ -529,12 +640,71 @@
 #define RA_MASK_OFDM_IN_HT_2G	0x00010
 #define RA_MASK_OFDM_IN_HT_5G	0x00030
 
+static u64 rtw_update_rate_mask(struct rtw_dev *rtwdev,
+				struct rtw_sta_info *si,
+				u64 ra_mask, bool is_vht_enable,
+				u8 wireless_set)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	const struct cfg80211_bitrate_mask *mask = si->mask;
+	u64 cfg_mask = GENMASK_ULL(63, 0);
+	u8 rssi_level, band;
+
+	if (wireless_set != WIRELESS_CCK) {
+		rssi_level = si->rssi_level;
+		if (rssi_level == 0)
+			ra_mask &= 0xffffffffffffffffULL;
+		else if (rssi_level == 1)
+			ra_mask &= 0xfffffffffffffff0ULL;
+		else if (rssi_level == 2)
+			ra_mask &= 0xffffffffffffefe0ULL;
+		else if (rssi_level == 3)
+			ra_mask &= 0xffffffffffffcfc0ULL;
+		else if (rssi_level == 4)
+			ra_mask &= 0xffffffffffff8f80ULL;
+		else if (rssi_level >= 5)
+			ra_mask &= 0xffffffffffff0f00ULL;
+	}
+
+	if (!si->use_cfg_mask)
+		return ra_mask;
+
+	band = hal->current_band_type;
+	if (band == RTW_BAND_2G) {
+		band = NL80211_BAND_2GHZ;
+		cfg_mask = mask->control[band].legacy;
+	} else if (band == RTW_BAND_5G) {
+		band = NL80211_BAND_5GHZ;
+		cfg_mask = u64_encode_bits(mask->control[band].legacy,
+					   RA_MASK_OFDM_RATES);
+	}
+
+	if (!is_vht_enable) {
+		if (ra_mask & RA_MASK_HT_RATES_1SS)
+			cfg_mask |= u64_encode_bits(mask->control[band].ht_mcs[0],
+						    RA_MASK_HT_RATES_1SS);
+		if (ra_mask & RA_MASK_HT_RATES_2SS)
+			cfg_mask |= u64_encode_bits(mask->control[band].ht_mcs[1],
+						    RA_MASK_HT_RATES_2SS);
+	} else {
+		if (ra_mask & RA_MASK_VHT_RATES_1SS)
+			cfg_mask |= u64_encode_bits(mask->control[band].vht_mcs[0],
+						    RA_MASK_VHT_RATES_1SS);
+		if (ra_mask & RA_MASK_VHT_RATES_2SS)
+			cfg_mask |= u64_encode_bits(mask->control[band].vht_mcs[1],
+						    RA_MASK_VHT_RATES_2SS);
+	}
+
+	ra_mask &= cfg_mask;
+
+	return ra_mask;
+}
+
 void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si)
 {
 	struct ieee80211_sta *sta = si->sta;
 	struct rtw_efuse *efuse = &rtwdev->efuse;
 	struct rtw_hal *hal = &rtwdev->hal;
-	u8 rssi_level;
 	u8 wireless_set;
 	u8 bw_mode;
 	u8 rate_id;
@@ -553,20 +723,18 @@
 			stbc_en = VHT_STBC_EN;
 		if (sta->vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC)
 			ldpc_en = VHT_LDPC_EN;
-		if (sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80)
-			is_support_sgi = true;
 	} else if (sta->ht_cap.ht_supported) {
-		ra_mask |= (sta->ht_cap.mcs.rx_mask[NL80211_BAND_5GHZ] << 20) |
-			   (sta->ht_cap.mcs.rx_mask[NL80211_BAND_2GHZ] << 12);
+		ra_mask |= (sta->ht_cap.mcs.rx_mask[1] << 20) |
+			   (sta->ht_cap.mcs.rx_mask[0] << 12);
 		if (sta->ht_cap.cap & IEEE80211_HT_CAP_RX_STBC)
 			stbc_en = HT_STBC_EN;
 		if (sta->ht_cap.cap & IEEE80211_HT_CAP_LDPC_CODING)
 			ldpc_en = HT_LDPC_EN;
-		if (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20 ||
-		    sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40)
-			is_support_sgi = true;
 	}
 
+	if (efuse->hw_cap.nss == 1)
+		ra_mask &= RA_MASK_VHT_RATES_1SS | RA_MASK_HT_RATES_1SS;
+
 	if (hal->current_band_type == RTW_BAND_5G) {
 		ra_mask |= (u64)sta->supp_rates[NL80211_BAND_5GHZ] << 4;
 		if (sta->vht_cap.vht_supported) {
@@ -600,20 +768,21 @@
 		wireless_set = 0;
 	}
 
-	if (efuse->hw_cap.nss == 1) {
-		ra_mask &= RA_MASK_VHT_RATES_1SS;
-		ra_mask &= RA_MASK_HT_RATES_1SS;
-	}
-
 	switch (sta->bandwidth) {
 	case IEEE80211_STA_RX_BW_80:
 		bw_mode = RTW_CHANNEL_WIDTH_80;
+		is_support_sgi = sta->vht_cap.vht_supported &&
+				 (sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80);
 		break;
 	case IEEE80211_STA_RX_BW_40:
 		bw_mode = RTW_CHANNEL_WIDTH_40;
+		is_support_sgi = sta->ht_cap.ht_supported &&
+				 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40);
 		break;
 	default:
 		bw_mode = RTW_CHANNEL_WIDTH_20;
+		is_support_sgi = sta->ht_cap.ht_supported &&
+				 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20);
 		break;
 	}
 
@@ -627,21 +796,8 @@
 
 	rate_id = get_rate_id(wireless_set, bw_mode, tx_num);
 
-	if (wireless_set != WIRELESS_CCK) {
-		rssi_level = si->rssi_level;
-		if (rssi_level == 0)
-			ra_mask &= 0xffffffffffffffffULL;
-		else if (rssi_level == 1)
-			ra_mask &= 0xfffffffffffffff0ULL;
-		else if (rssi_level == 2)
-			ra_mask &= 0xffffffffffffefe0ULL;
-		else if (rssi_level == 3)
-			ra_mask &= 0xffffffffffffcfc0ULL;
-		else if (rssi_level == 4)
-			ra_mask &= 0xffffffffffff8f80ULL;
-		else if (rssi_level >= 5)
-			ra_mask &= 0xffffffffffff0f00ULL;
-	}
+	ra_mask = rtw_update_rate_mask(rtwdev, si, ra_mask, is_vht_enable,
+				       wireless_set);
 
 	si->bw_mode = bw_mode;
 	si->stbc_en = stbc_en;
@@ -656,6 +812,26 @@
 	rtw_fw_send_ra_info(rtwdev, si);
 }
 
+static int rtw_wait_firmware_completion(struct rtw_dev *rtwdev)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_fw_state *fw;
+
+	fw = &rtwdev->fw;
+	wait_for_completion(&fw->completion);
+	if (!fw->firmware)
+		return -EINVAL;
+
+	if (chip->wow_fw_name) {
+		fw = &rtwdev->wow_fw;
+		wait_for_completion(&fw->completion);
+		if (!fw->firmware)
+			return -EINVAL;
+	}
+
+	return 0;
+}
+
 static int rtw_power_on(struct rtw_dev *rtwdev)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
@@ -676,11 +852,10 @@
 		goto err;
 	}
 
-	wait_for_completion(&fw->completion);
-	if (!fw->firmware) {
-		ret = -EINVAL;
-		rtw_err(rtwdev, "failed to load firmware\n");
-		goto err;
+	ret = rtw_wait_firmware_completion(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to wait firmware completion\n");
+		goto err_off;
 	}
 
 	ret = rtw_download_firmware(rtwdev, fw);
@@ -736,15 +911,17 @@
 
 	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->watch_dog_work,
 				     RTW_WATCH_DOG_DELAY_TIME);
+	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->sar.work,
+				     RTW_SAR_DELAY_TIME);
 
-	rtw_flag_set(rtwdev, RTW_FLAG_RUNNING);
+	set_bit(RTW_FLAG_RUNNING, rtwdev->flags);
 
 	return 0;
 }
 
 static void rtw_power_off(struct rtw_dev *rtwdev)
 {
-	rtwdev->hci.ops->stop(rtwdev);
+	rtw_hci_stop(rtwdev);
 	rtw_mac_power_off(rtwdev);
 }
 
@@ -752,14 +929,20 @@
 {
 	struct rtw_coex *coex = &rtwdev->coex;
 
-	rtw_flag_clear(rtwdev, RTW_FLAG_RUNNING);
-	rtw_flag_clear(rtwdev, RTW_FLAG_FW_RUNNING);
+	clear_bit(RTW_FLAG_RUNNING, rtwdev->flags);
+	clear_bit(RTW_FLAG_FW_RUNNING, rtwdev->flags);
+
+	mutex_unlock(&rtwdev->mutex);
 
+	cancel_work_sync(&rtwdev->c2h_work);
 	cancel_delayed_work_sync(&rtwdev->watch_dog_work);
+	cancel_delayed_work_sync(&rtwdev->sar.work);
 	cancel_delayed_work_sync(&coex->bt_relink_work);
 	cancel_delayed_work_sync(&coex->bt_reenable_work);
 	cancel_delayed_work_sync(&coex->defreeze_work);
 
+	mutex_lock(&rtwdev->mutex);
+
 	rtw_power_off(rtwdev);
 }
 
@@ -772,7 +955,7 @@
 	ht_cap->cap = 0;
 	ht_cap->cap |= IEEE80211_HT_CAP_SGI_20 |
 			IEEE80211_HT_CAP_MAX_AMSDU |
-			IEEE80211_HT_CAP_LDPC_CODING |
+			(rtw_chip_wcpu_11ac(rtwdev) ? IEEE80211_HT_CAP_LDPC_CODING : 0) |
 			(1 << IEEE80211_HT_CAP_RX_STBC_SHIFT);
 	if (efuse->hw_cap.bw & BIT(RTW_CHANNEL_WIDTH_40))
 		ht_cap->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
@@ -814,6 +997,12 @@
 		       IEEE80211_VHT_CAP_HTC_VHT |
 		       IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK |
 		       0;
+
+	vht_cap->cap |= IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE |
+			IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE;
+	vht_cap->cap |= (rtwdev->hal.bfee_sts_cap <<
+			IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT);
+
 	mcs_map = IEEE80211_VHT_MCS_SUPPORT_0_9 << 0 |
 		  IEEE80211_VHT_MCS_NOT_SUPPORTED << 4 |
 		  IEEE80211_VHT_MCS_NOT_SUPPORTED << 6 |
@@ -875,29 +1064,87 @@
 	kfree(hw->wiphy->bands[NL80211_BAND_5GHZ]);
 }
 
+static void __update_firmware_info(struct rtw_dev *rtwdev,
+				   struct rtw_fw_state *fw)
+{
+	const struct rtw_fw_hdr *fw_hdr =
+				(const struct rtw_fw_hdr *)fw->firmware->data;
+
+	fw->h2c_version = le16_to_cpu(fw_hdr->h2c_fmt_ver);
+	fw->version = le16_to_cpu(fw_hdr->version);
+	fw->sub_version = fw_hdr->subversion;
+	fw->sub_index = fw_hdr->subindex;
+}
+
+static void __update_firmware_info_legacy(struct rtw_dev *rtwdev,
+					  struct rtw_fw_state *fw)
+{
+	struct rtw_fw_hdr_legacy *legacy =
+				(struct rtw_fw_hdr_legacy *)fw->firmware->data;
+
+	fw->h2c_version = 0;
+	fw->version = le16_to_cpu(legacy->version);
+	fw->sub_version = legacy->subversion1;
+	fw->sub_index = legacy->subversion2;
+}
+
+static void update_firmware_info(struct rtw_dev *rtwdev,
+				 struct rtw_fw_state *fw)
+{
+	if (rtw_chip_wcpu_11n(rtwdev))
+		__update_firmware_info_legacy(rtwdev, fw);
+	else
+		__update_firmware_info(rtwdev, fw);
+}
+
 static void rtw_load_firmware_cb(const struct firmware *firmware, void *context)
 {
-	struct rtw_dev *rtwdev = context;
-	struct rtw_fw_state *fw = &rtwdev->fw;
+	struct rtw_fw_state *fw = context;
+	struct rtw_dev *rtwdev = fw->rtwdev;
 
-	if (!firmware)
+	if (!firmware || !firmware->data) {
 		rtw_err(rtwdev, "failed to request firmware\n");
+		complete_all(&fw->completion);
+		return;
+	}
 
 	fw->firmware = firmware;
+	update_firmware_info(rtwdev, fw);
 	complete_all(&fw->completion);
+
+	rtw_info(rtwdev, "Firmware version %u.%u.%u, H2C version %u\n",
+		 fw->version, fw->sub_version, fw->sub_index, fw->h2c_version);
 }
 
-static int rtw_load_firmware(struct rtw_dev *rtwdev, const char *fw_name)
+static int rtw_load_firmware(struct rtw_dev *rtwdev, enum rtw_fw_type type)
 {
-	struct rtw_fw_state *fw = &rtwdev->fw;
+	const char *fw_name;
+	struct rtw_fw_state *fw;
 	int ret;
 
+	switch (type) {
+	case RTW_WOWLAN_FW:
+		fw = &rtwdev->wow_fw;
+		fw_name = rtwdev->chip->wow_fw_name;
+		break;
+
+	case RTW_NORMAL_FW:
+		fw = &rtwdev->fw;
+		fw_name = rtwdev->chip->fw_name;
+		break;
+
+	default:
+		rtw_warn(rtwdev, "unsupported firmware type\n");
+		return -ENOENT;
+	}
+
+	fw->rtwdev = rtwdev;
 	init_completion(&fw->completion);
 
 	ret = request_firmware_nowait(THIS_MODULE, true, fw_name, rtwdev->dev,
-				      GFP_KERNEL, rtwdev, rtw_load_firmware_cb);
+				      GFP_KERNEL, fw, rtw_load_firmware_cb);
 	if (ret) {
-		rtw_err(rtwdev, "async firmware request failed\n");
+		rtw_err(rtwdev, "failed to async firmware request\n");
 		return ret;
 	}
 
@@ -914,6 +1161,7 @@
 	switch (rtw_hci_type(rtwdev)) {
 	case RTW_HCI_TYPE_PCIE:
 		rtwdev->hci.rpwm_addr = 0x03d9;
+		rtwdev->hci.cpwm_addr = 0x03da;
 		break;
 	default:
 		rtw_err(rtwdev, "unsupported hci type\n");
@@ -935,6 +1183,8 @@
 		hal->antenna_tx = BB_PATH_A;
 		hal->antenna_rx = BB_PATH_A;
 	}
+	hal->rf_phy_num = chip->fix_rf_phy_num ? chip->fix_rf_phy_num :
+			  hal->rf_path_num;
 
 	if (hal->fab_version == 2)
 		hal->fab_version = 1;
@@ -948,6 +1198,8 @@
 	/* default use ack */
 	rtwdev->hal.rcr |= BIT_VHT_DACK;
 
+	hal->bfee_sts_cap = 3;
+
 	return ret;
 }
 
@@ -1020,7 +1272,8 @@
 
 	rtw_hw_config_rf_ant_num(rtwdev, efuse->hw_cap.ant_num);
 
-	if (efuse->hw_cap.nss == EFUSE_HW_CAP_IGNORE)
+	if (efuse->hw_cap.nss == EFUSE_HW_CAP_IGNORE ||
+	    efuse->hw_cap.nss > rtwdev->hal.rf_path_num)
 		efuse->hw_cap.nss = rtwdev->hal.rf_path_num;
 
 	rtw_dbg(rtwdev, RTW_DBG_EFUSE,
@@ -1047,19 +1300,19 @@
 	/* power on mac to read efuse */
 	ret = rtw_chip_efuse_enable(rtwdev);
 	if (ret)
-		goto out;
+		goto out_unlock;
 
 	ret = rtw_parse_efuse_map(rtwdev);
 	if (ret)
-		goto out;
+		goto out_disable;
 
 	ret = rtw_dump_hw_feature(rtwdev);
 	if (ret)
-		goto out;
+		goto out_disable;
 
 	ret = rtw_check_supported_rfe(rtwdev);
 	if (ret)
-		goto out;
+		goto out_disable;
 
 	if (efuse->crystal_cap == 0xff)
 		efuse->crystal_cap = 0;
@@ -1086,9 +1339,10 @@
 	efuse->ext_pa_5g = efuse->pa_type_5g & BIT(0) ? 1 : 0;
 	efuse->ext_lna_2g = efuse->lna_type_5g & BIT(3) ? 1 : 0;
 
+out_disable:
 	rtw_chip_efuse_disable(rtwdev);
 
-out:
+out_unlock:
 	mutex_unlock(&rtwdev->mutex);
 	return ret;
 }
@@ -1108,6 +1362,7 @@
 	rtw_load_table(rtwdev, rfe_def->txpwr_lmt_tbl);
 	rtw_phy_tx_power_by_rate_config(hal);
 	rtw_phy_tx_power_limit_config(hal);
+	rtw_sar_load_table(rtwdev);
 
 	return 0;
 }
@@ -1141,29 +1396,49 @@
 }
 EXPORT_SYMBOL(rtw_chip_info_setup);
 
+static void rtw_stats_init(struct rtw_dev *rtwdev)
+{
+	struct rtw_traffic_stats *stats = &rtwdev->stats;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	int i;
+
+	ewma_tp_init(&stats->tx_ewma_tp);
+	ewma_tp_init(&stats->rx_ewma_tp);
+
+	for (i = 0; i < RTW_EVM_NUM; i++)
+		ewma_evm_init(&dm_info->ewma_evm[i]);
+	for (i = 0; i < RTW_SNR_NUM; i++)
+		ewma_snr_init(&dm_info->ewma_snr[i]);
+}
+
 int rtw_core_init(struct rtw_dev *rtwdev)
 {
+	struct rtw_chip_info *chip = rtwdev->chip;
 	struct rtw_coex *coex = &rtwdev->coex;
 	int ret;
 
 	INIT_LIST_HEAD(&rtwdev->rsvd_page_list);
+	INIT_LIST_HEAD(&rtwdev->txqs);
 
 	timer_setup(&rtwdev->tx_report.purge_timer,
 		    rtw_tx_report_purge_timer, 0);
+	tasklet_init(&rtwdev->tx_tasklet, rtw_tx_tasklet,
+		     (unsigned long)rtwdev);
 
 	INIT_DELAYED_WORK(&rtwdev->watch_dog_work, rtw_watch_dog_work);
-	INIT_DELAYED_WORK(&rtwdev->lps_work, rtw_lps_work);
+	INIT_DELAYED_WORK(&rtwdev->sar.work, rtw_sar_work);
 	INIT_DELAYED_WORK(&coex->bt_relink_work, rtw_coex_bt_relink_work);
 	INIT_DELAYED_WORK(&coex->bt_reenable_work, rtw_coex_bt_reenable_work);
 	INIT_DELAYED_WORK(&coex->defreeze_work, rtw_coex_defreeze_work);
 	INIT_WORK(&rtwdev->c2h_work, rtw_c2h_work);
+	INIT_WORK(&rtwdev->ba_work, rtw_txq_ba_work);
 	skb_queue_head_init(&rtwdev->c2h_queue);
 	skb_queue_head_init(&rtwdev->coex.queue);
 	skb_queue_head_init(&rtwdev->tx_report.queue);
 
-	spin_lock_init(&rtwdev->dm_lock);
 	spin_lock_init(&rtwdev->rf_lock);
 	spin_lock_init(&rtwdev->h2c.lock);
+	spin_lock_init(&rtwdev->txq_lock);
 	spin_lock_init(&rtwdev->tx_report.q_lock);
 
 	mutex_init(&rtwdev->mutex);
@@ -1175,22 +1450,31 @@
 	rtwdev->sec.total_cam_num = 32;
 	rtwdev->hal.current_channel = 1;
 	set_bit(RTW_BC_MC_MACID, rtwdev->mac_id_map);
+	if (!(BIT(rtw_fw_lps_deep_mode) & chip->lps_deep_mode_supported))
+		rtwdev->lps_conf.deep_mode = LPS_DEEP_MODE_NONE;
+	else
+		rtwdev->lps_conf.deep_mode = rtw_fw_lps_deep_mode;
 
-	mutex_lock(&rtwdev->mutex);
-	rtw_add_rsvd_page(rtwdev, RSVD_BEACON, false);
-	mutex_unlock(&rtwdev->mutex);
+	rtw_stats_init(rtwdev);
 
 	/* default rx filter setting */
 	rtwdev->hal.rcr = BIT_APP_FCS | BIT_APP_MIC | BIT_APP_ICV |
 			  BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
 			  BIT_AB | BIT_AM | BIT_APM;
 
-	ret = rtw_load_firmware(rtwdev, rtwdev->chip->fw_name);
+	ret = rtw_load_firmware(rtwdev, RTW_NORMAL_FW);
 	if (ret) {
 		rtw_warn(rtwdev, "no firmware loaded\n");
 		return ret;
 	}
 
+	if (chip->wow_fw_name) {
+		ret = rtw_load_firmware(rtwdev, RTW_WOWLAN_FW);
+		if (ret) {
+			rtw_warn(rtwdev, "no wow firmware loaded\n");
+			return ret;
+		}
+	}
 	return 0;
 }
 EXPORT_SYMBOL(rtw_core_init);
@@ -1198,21 +1482,29 @@
 void rtw_core_deinit(struct rtw_dev *rtwdev)
 {
 	struct rtw_fw_state *fw = &rtwdev->fw;
+	struct rtw_fw_state *wow_fw = &rtwdev->wow_fw;
 	struct rtw_rsvd_page *rsvd_pkt, *tmp;
 	unsigned long flags;
 
 	if (fw->firmware)
 		release_firmware(fw->firmware);
 
+	if (wow_fw->firmware)
+		release_firmware(wow_fw->firmware);
+
+	tasklet_kill(&rtwdev->tx_tasklet);
 	spin_lock_irqsave(&rtwdev->tx_report.q_lock, flags);
 	skb_queue_purge(&rtwdev->tx_report.queue);
 	spin_unlock_irqrestore(&rtwdev->tx_report.q_lock, flags);
 
-	list_for_each_entry_safe(rsvd_pkt, tmp, &rtwdev->rsvd_page_list, list) {
-		list_del(&rsvd_pkt->list);
+	list_for_each_entry_safe(rsvd_pkt, tmp, &rtwdev->rsvd_page_list,
+				 build_list) {
+		list_del(&rsvd_pkt->build_list);
 		kfree(rsvd_pkt);
 	}
 
+	rtw_sar_release_table(rtwdev);
+
 	mutex_destroy(&rtwdev->mutex);
 	mutex_destroy(&rtwdev->coex.mutex);
 	mutex_destroy(&rtwdev->hal.tx_power_mutex);
@@ -1229,6 +1521,7 @@
 
 	hw->extra_tx_headroom = max_tx_headroom;
 	hw->queues = IEEE80211_NUM_ACS;
+	hw->txq_data_size = sizeof(struct rtw_txq);
 	hw->sta_data_size = sizeof(struct rtw_sta_info);
 	hw->vif_data_size = sizeof(struct rtw_vif);
 
@@ -1241,6 +1534,8 @@
 	ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
 	ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
 	ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
+	ieee80211_hw_set(hw, HAS_RATE_CONTROL);
+	ieee80211_hw_set(hw, TX_AMSDU);
 
 	hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
 				     BIT(NL80211_IFTYPE_AP) |
@@ -1252,6 +1547,12 @@
 
 	hw->wiphy->features |= NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR;
 
+	wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);
+
+#ifdef CONFIG_PM
+	hw->wiphy->wowlan = rtwdev->chip->wowlan_stub;
+	hw->wiphy->max_sched_scan_ssids = rtwdev->chip->max_sched_scan_ssids;
+#endif
 	rtw_set_supported_band(hw, rtwdev->chip);
 	SET_IEEE80211_PERM_ADDR(hw, rtwdev->efuse.addr);
 
@@ -1263,11 +1564,16 @@
 		return ret;
 	}
 
-	if (regulatory_hint(hw->wiphy, rtwdev->regd.alpha2))
-		rtw_err(rtwdev, "regulatory_hint fail\n");
+	if (!rtwdev->efuse.country_worldwide) {
+		if (regulatory_hint(hw->wiphy, rtwdev->efuse.country_code))
+			rtw_err(rtwdev, "regulatory_hint fail\n");
+	}
 
 	rtw_debugfs_init(rtwdev);
 
+	rtwdev->bf_info.bfer_mu_cnt = 0;
+	rtwdev->bf_info.bfer_su_cnt = 0;
+
 	return 0;
 }
 EXPORT_SYMBOL(rtw_register_hw);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/main.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/main.h
@@ -11,11 +11,17 @@
 #include <linux/average.h>
 #include <linux/bitops.h>
 #include <linux/bitfield.h>
+#include <linux/interrupt.h>
 
 #include "util.h"
 
 #define RTW_MAX_MAC_ID_NUM		32
 #define RTW_MAX_SEC_CAM_NUM		32
+#define MAX_PG_CAM_BACKUP_NUM		8
+
+#define RTW_MAX_PATTERN_NUM		12
+#define RTW_MAX_PATTERN_MASK_SIZE	16
+#define RTW_MAX_PATTERN_SIZE		128
 
 #define RTW_WATCH_DOG_DELAY_TIME	round_jiffies_relative(HZ * 2)
 
@@ -27,15 +33,25 @@
 #define RTW_RF_PATH_MAX			4
 #define HW_FEATURE_LEN			13
 
+#define RTW_TP_SHIFT			18 /* bytes/2s --> Mbps */
+
+extern bool rtw_bf_support;
+extern unsigned int rtw_fw_lps_deep_mode;
 extern unsigned int rtw_debug_mask;
+extern bool rtw_edcca_enabled;
 extern const struct ieee80211_ops rtw_ops;
 extern struct rtw_chip_info rtw8822b_hw_spec;
 extern struct rtw_chip_info rtw8822c_hw_spec;
+extern struct rtw_chip_info rtw8723d_hw_spec;
 
 #define RTW_MAX_CHANNEL_NUM_2G 14
 #define RTW_MAX_CHANNEL_NUM_5G 49
 
 struct rtw_dev;
+struct rtw_sar_rwrd;
+union rtw_sar_rwsi;
+union rtw_sar_rwgs;
+struct rtw_sar_read;
 
 enum rtw_hci_type {
 	RTW_HCI_TYPE_PCIE,
@@ -50,10 +66,24 @@
 	enum rtw_hci_type type;
 
 	u32 rpwm_addr;
+	u32 cpwm_addr;
 
 	u8 bulkout_num;
 };
 
+#define IS_CH_5G_BAND_1(channel) ((channel) >= 36 && (channel <= 48))
+#define IS_CH_5G_BAND_2(channel) ((channel) >= 52 && (channel <= 64))
+#define IS_CH_5G_BAND_3(channel) ((channel) >= 100 && (channel <= 144))
+#define IS_CH_5G_BAND_4(channel) ((channel) >= 149 && (channel <= 177))
+
+#define IS_CH_5G_BAND_MID(channel) \
+	(IS_CH_5G_BAND_2(channel) || IS_CH_5G_BAND_3(channel))
+
+#define IS_CH_2G_BAND(channel) ((channel) <= 14)
+#define IS_CH_5G_BAND(channel) \
+	(IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel) || \
+	 IS_CH_5G_BAND_3(channel) || IS_CH_5G_BAND_4(channel))
+
 enum rtw_supported_band {
 	RTW_BAND_2G = 1 << 0,
 	RTW_BAND_5G = 1 << 1,
@@ -75,6 +105,16 @@
 	RTW_CHANNEL_WIDTH_10	= 6,
 };
 
+enum rtw_sc_offset {
+	RTW_SC_DONT_CARE	= 0,
+	RTW_SC_20_UPPER		= 1,
+	RTW_SC_20_LOWER		= 2,
+	RTW_SC_20_UPMOST	= 3,
+	RTW_SC_20_LOWEST	= 4,
+	RTW_SC_40_UPPER		= 9,
+	RTW_SC_40_LOWER		= 10,
+};
+
 enum rtw_net_type {
 	RTW_NET_NO_LINK		= 0,
 	RTW_NET_AD_HOC		= 1,
@@ -149,6 +189,7 @@
 enum rtw_chip_type {
 	RTW_CHIP_TYPE_8822B,
 	RTW_CHIP_TYPE_8822C,
+	RTW_CHIP_TYPE_8723D,
 };
 
 enum rtw_tx_queue_type {
@@ -173,6 +214,11 @@
 	RTK_MAX_RX_QUEUE_NUM
 };
 
+enum rtw_fw_type {
+	RTW_NORMAL_FW = 0x0,
+	RTW_WOWLAN_FW = 0x1,
+};
+
 enum rtw_rate_index {
 	RTW_RATEID_BGN_40M_2SS	= 0,
 	RTW_RATEID_BGN_40M_1SS	= 1,
@@ -303,18 +349,67 @@
 	RTW_REGD_MAX
 };
 
+enum rtw_txq_flags {
+	RTW_TXQ_AMPDU,
+	RTW_TXQ_BLOCK_BA,
+};
+
 enum rtw_flags {
 	RTW_FLAG_RUNNING,
 	RTW_FLAG_FW_RUNNING,
 	RTW_FLAG_SCANNING,
 	RTW_FLAG_INACTIVE_PS,
 	RTW_FLAG_LEISURE_PS,
+	RTW_FLAG_LEISURE_PS_DEEP,
 	RTW_FLAG_DIG_DISABLE,
 	RTW_FLAG_BUSY_TRAFFIC,
+	RTW_FLAG_WOWLAN,
 
 	NUM_OF_RTW_FLAGS,
 };
 
+enum rtw_evm {
+	RTW_EVM_OFDM = 0,
+	RTW_EVM_1SS,
+	RTW_EVM_2SS_A,
+	RTW_EVM_2SS_B,
+	/* keep it last */
+	RTW_EVM_NUM
+};
+
+enum rtw_snr {
+	RTW_SNR_OFDM_A = 0,
+	RTW_SNR_OFDM_B,
+	RTW_SNR_OFDM_C,
+	RTW_SNR_OFDM_D,
+	RTW_SNR_1SS_A,
+	RTW_SNR_1SS_B,
+	RTW_SNR_1SS_C,
+	RTW_SNR_1SS_D,
+	RTW_SNR_2SS_A,
+	RTW_SNR_2SS_B,
+	RTW_SNR_2SS_C,
+	RTW_SNR_2SS_D,
+	/* keep it last */
+	RTW_SNR_NUM
+};
+
+enum rtw_wow_flags {
+	RTW_WOW_FLAG_EN_MAGIC_PKT,
+	RTW_WOW_FLAG_EN_REKEY_PKT,
+	RTW_WOW_FLAG_EN_DISCONNECT,
+
+	/* keep it last */
+	RTW_WOW_FLAG_MAX,
+};
+
+enum rtw_sar_sources {
+	RTW_SAR_SOURCE_NONE,
+	RTW_SAR_SOURCE_VNDCMD,
+	RTW_SAR_SOURCE_ACPI_STATIC,
+	RTW_SAR_SOURCE_ACPI_DYNAMIC,
+};
+
 /* the power index is represented by differences, which cck-1s & ht40-1s are
  * the base values, so for 1s's differences, there are only ht20 & ofdm
  */
@@ -434,6 +529,36 @@
 	u32 mask;
 };
 
+struct rtw_reg_domain {
+	u32 addr;
+	u32 mask;
+#define RTW_REG_DOMAIN_MAC32	0
+#define RTW_REG_DOMAIN_MAC16	1
+#define RTW_REG_DOMAIN_MAC8	2
+#define RTW_REG_DOMAIN_RF_A	3
+#define RTW_REG_DOMAIN_RF_B	4
+#define RTW_REG_DOMAIN_NL	0xFF
+	u8 domain;
+};
+
+struct rtw_hw_reg_offset {
+	struct rtw_hw_reg hw_reg;
+	u8 offset;
+};
+
+struct rtw_rf_sipi_addr {
+	u32 hssi_1;
+	u32 hssi_2;
+	u32 lssi_read;
+	u32 lssi_read_pi;
+};
+
+struct rtw_ltecoex_addr {
+	u32 ctrl;
+	u32 wdata;
+	u32 rdata;
+};
+
 struct rtw_backup_info {
 	u8 len;
 	u32 reg;
@@ -480,6 +605,13 @@
 	bool fs;
 	bool short_gi;
 	bool report;
+	bool rts;
+	bool nav_use_hdr;
+	bool dis_qselseq;
+	bool en_hwseq;
+	u8 hw_ssn_sel;
+	bool en_hw_exseq;
+	bool bt_null;
 };
 
 struct rtw_rx_pkt_stat {
@@ -502,10 +634,16 @@
 	s8 rx_power[RTW_RF_PATH_MAX];
 	u8 rssi;
 	u8 rxsc;
+	s8 rx_snr[RTW_RF_PATH_MAX];
+	u8 rx_evm[RTW_RF_PATH_MAX];
+	s8 cfo_tail[RTW_RF_PATH_MAX];
+
 	struct rtw_sta_info *si;
 	struct ieee80211_vif *vif;
 };
 
+DECLARE_EWMA(tp, 10, 2);
+
 struct rtw_traffic_stats {
 	/* units in bytes */
 	u64 tx_unicast;
@@ -518,6 +656,8 @@
 	/* units in Mbps */
 	u32 tx_throughput;
 	u32 rx_throughput;
+	struct ewma_tp tx_ewma_tp;
+	struct ewma_tp rx_ewma_tp;
 };
 
 enum rtw_lps_mode {
@@ -526,6 +666,12 @@
 	RTW_MODE_WMM_PS	= 2,
 };
 
+enum rtw_lps_deep_mode {
+	LPS_DEEP_MODE_NONE	= 0,
+	LPS_DEEP_MODE_LCLK	= 1,
+	LPS_DEEP_MODE_PG	= 2,
+};
+
 enum rtw_pwr_state {
 	RTW_RF_OFF	= 0x0,
 	RTW_RF_ON	= 0x4,
@@ -533,14 +679,15 @@
 };
 
 struct rtw_lps_conf {
-	/* the interface to enter lps */
-	struct rtw_vif *rtwvif;
 	enum rtw_lps_mode mode;
+	enum rtw_lps_deep_mode deep_mode;
 	enum rtw_pwr_state state;
 	u8 awake_interval;
 	u8 rlbm;
 	u8 smart_ps;
 	u8 port_id;
+	bool sec_cam_backup;
+	bool pattern_cam_backup;
 };
 
 enum rtw_hw_key_type {
@@ -576,6 +723,19 @@
 	struct timer_list purge_timer;
 };
 
+struct rtw_ra_report {
+	struct rate_info txrate;
+	u32 bit_rate;
+	u8 desc_rate;
+};
+
+struct rtw_txq {
+	struct list_head list;
+
+	unsigned long flags;
+	unsigned long last_push;
+};
+
 #define RTW_BC_MC_MACID 1
 DECLARE_EWMA(rssi, 10, 16);
 
@@ -598,20 +758,57 @@
 	bool updated;
 	u8 init_ra_lv;
 	u64 ra_mask;
+
+	DECLARE_BITMAP(tid_ba, IEEE80211_NUM_TIDS);
+
+	struct rtw_ra_report ra_report;
+
+	bool use_cfg_mask;
+	struct cfg80211_bitrate_mask *mask;
+};
+
+enum rtw_bfee_role {
+	RTW_BFEE_NONE,
+	RTW_BFEE_SU,
+	RTW_BFEE_MU
+};
+
+struct rtw_bfee {
+	enum rtw_bfee_role role;
+
+	u16 p_aid;
+	u8 g_id;
+	u8 mac_addr[ETH_ALEN];
+	u8 sound_dim;
+
+	/* SU-MIMO */
+	u8 su_reg_index;
+
+	/* MU-MIMO */
+	u16 aid;
+};
+
+struct rtw_bf_info {
+	u8 bfer_mu_cnt;
+	u8 bfer_su_cnt;
+	DECLARE_BITMAP(bfer_su_reg_maping, 2);
+	u8 cur_csi_rpt_rate;
 };
 
 struct rtw_vif {
-	struct ieee80211_vif *vif;
 	enum rtw_net_type net_type;
 	u16 aid;
 	u8 mac_addr[ETH_ALEN];
 	u8 bssid[ETH_ALEN];
 	u8 port;
 	u8 bcn_ctrl;
+	struct list_head rsvd_page_list;
+	struct ieee80211_tx_queue_params tx_params[IEEE80211_NUM_ACS];
 	const struct rtw_vif_port *conf;
 
 	struct rtw_traffic_stats stats;
-	bool in_lps;
+
+	struct rtw_bfee bfee;
 };
 
 struct rtw_regulatory {
@@ -622,6 +819,7 @@
 
 struct rtw_chip_ops {
 	int (*mac_init)(struct rtw_dev *rtwdev);
+	void (*shutdown)(struct rtw_dev *rtwdev);
 	int (*read_efuse)(struct rtw_dev *rtwdev, u8 *map);
 	void (*phy_set_param)(struct rtw_dev *rtwdev);
 	void (*set_channel)(struct rtw_dev *rtwdev, u8 channel,
@@ -639,10 +837,21 @@
 	void (*set_antenna)(struct rtw_dev *rtwdev, u8 antenna_tx,
 			    u8 antenna_rx);
 	void (*cfg_ldo25)(struct rtw_dev *rtwdev, bool enable);
+	void (*efuse_grant)(struct rtw_dev *rtwdev, bool enable);
 	void (*false_alarm_statistics)(struct rtw_dev *rtwdev);
 	void (*phy_calibration)(struct rtw_dev *rtwdev);
 	void (*dpk_track)(struct rtw_dev *rtwdev);
 	void (*cck_pd_set)(struct rtw_dev *rtwdev, u8 level);
+	void (*pwr_track)(struct rtw_dev *rtwdev);
+	void (*config_bfee)(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+			    struct rtw_bfee *bfee, bool enable);
+	void (*set_gid_table)(struct rtw_dev *rtwdev,
+			      struct ieee80211_vif *vif,
+			      struct ieee80211_bss_conf *conf);
+	void (*cfg_csi_rate)(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate,
+			     u8 fixrate_en, u8 *new_rate);
+	void (*adaptivity_init)(struct rtw_dev *rtwdev);
+	void (*adaptivity)(struct rtw_dev *rtwdev);
 
 	/* for coex */
 	void (*coex_set_init)(struct rtw_dev *rtwdev);
@@ -674,6 +883,7 @@
 #define RTW_PWR_INTF_PCI_MSK	BIT(2)
 #define RTW_PWR_INTF_ALL_MSK	(BIT(0) | BIT(1) | BIT(2) | BIT(3))
 
+#define RTW_PWR_CUT_TEST_MSK	BIT(0)
 #define RTW_PWR_CUT_A_MSK	BIT(1)
 #define RTW_PWR_CUT_B_MSK	BIT(2)
 #define RTW_PWR_CUT_C_MSK	BIT(3)
@@ -747,6 +957,7 @@
 	RTW_DMA_MAPPING_NORMAL	= 2,
 	RTW_DMA_MAPPING_HIGH	= 3,
 
+	RTW_DMA_MAPPING_MAX,
 	RTW_DMA_MAPPING_UNDEF,
 };
 
@@ -759,6 +970,16 @@
 	enum rtw_dma_mapping dma_map_hi;
 };
 
+struct rtw_prioq_addr {
+	u32 rsvd;
+	u32 avail;
+};
+
+struct rtw_prioq_addrs {
+	struct rtw_prioq_addr prio[RTW_DMA_MAPPING_MAX];
+	bool wsize;
+};
+
 struct rtw_page_table {
 	u16 hq_num;
 	u16 nq_num;
@@ -775,6 +996,33 @@
 	u16 platform;
 };
 
+struct rtw_wow_pattern {
+	u16 crc;
+	u8 type;
+	u8 valid;
+	u8 mask[RTW_MAX_PATTERN_MASK_SIZE];
+};
+
+struct rtw_pno_request {
+	bool inited;
+	u32 match_set_cnt;
+	struct cfg80211_match_set *match_sets;
+	u8 channel_cnt;
+	struct ieee80211_channel *channels;
+	struct cfg80211_sched_scan_plan scan_plan;
+};
+
+struct rtw_wow_param {
+	struct ieee80211_vif *wow_vif;
+	DECLARE_BITMAP(flags, RTW_WOW_FLAG_MAX);
+	u8 txpause;
+	u8 pattern_cnt;
+	struct rtw_wow_pattern patterns[RTW_MAX_PATTERN_NUM];
+
+	bool ips_enabled;
+	struct rtw_pno_request pno_req;
+};
+
 struct rtw_intf_phy_para_table {
 	struct rtw_intf_phy_para *usb2_para;
 	struct rtw_intf_phy_para *usb3_para;
@@ -818,12 +1066,48 @@
 	.txpwr_lmt_tbl = &rtw ## chip ## _txpwr_lmt_type ## pwrlmt ## _tbl, \
 	}
 
+#define RTW_PWR_TRK_5G_1		0
+#define RTW_PWR_TRK_5G_2		1
+#define RTW_PWR_TRK_5G_3		2
+#define RTW_PWR_TRK_5G_NUM		3
+
+#define RTW_PWR_TRK_TBL_SZ		30
+
+/* This table stores the values of TX power that will be adjusted by power
+ * tracking.
+ *
+ * For 5G bands, there are 3 different settings.
+ * For 2G there are cck rate and ofdm rate with different settings.
+ */
+struct rtw_pwr_track_tbl {
+	const u8 *pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM];
+	const u8 *pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM];
+	const u8 *pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM];
+	const u8 *pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM];
+	const u8 *pwrtrk_2gb_n;
+	const u8 *pwrtrk_2gb_p;
+	const u8 *pwrtrk_2ga_n;
+	const u8 *pwrtrk_2ga_p;
+	const u8 *pwrtrk_2g_cckb_n;
+	const u8 *pwrtrk_2g_cckb_p;
+	const u8 *pwrtrk_2g_ccka_n;
+	const u8 *pwrtrk_2g_ccka_p;
+	const s8 *pwrtrk_xtal_n;
+	const s8 *pwrtrk_xtal_p;
+};
+
+enum rtw_wlan_cpu {
+	RTW_WCPU_11AC,
+	RTW_WCPU_11N,
+};
+
 /* hardware configuration for each IC */
 struct rtw_chip_info {
 	struct rtw_chip_ops *ops;
 	u8 id;
 
 	const char *fw_name;
+	enum rtw_wlan_cpu wlan_cpu;
 	u8 tx_pkt_desc_sz;
 	u8 tx_buf_desc_sz;
 	u8 rx_pkt_desc_sz;
@@ -844,18 +1128,24 @@
 
 	bool ht_supported;
 	bool vht_supported;
+	u8 lps_deep_mode_supported;
 
 	/* init values */
 	u8 sys_func_en;
 	struct rtw_pwr_seq_cmd **pwr_on_seq;
 	struct rtw_pwr_seq_cmd **pwr_off_seq;
 	struct rtw_rqpn *rqpn_table;
+	struct rtw_prioq_addrs *prioq_addrs;
 	struct rtw_page_table *page_table;
 	struct rtw_intf_phy_para_table *intf_table;
 
 	struct rtw_hw_reg *dig;
+	struct rtw_hw_reg *dig_cck;
 	u32 rf_base_addr[2];
 	u32 rf_sipi_addr[2];
+	struct rtw_rf_sipi_addr *rf_sipi_read_addr;
+	u8 fix_rf_phy_num;
+	struct rtw_ltecoex_addr *ltecoex_addr;
 
 	const struct rtw_table *mac_tbl;
 	const struct rtw_table *agc_tbl;
@@ -868,6 +1158,19 @@
 
 	bool en_dis_dpd;
 	u16 dpd_ratemask;
+	u8 iqk_threshold;
+	const struct rtw_pwr_track_tbl *pwr_track_tbl;
+
+	u8 bfer_su_max_num;
+	u8 bfer_mu_max_num;
+
+	struct rtw_hw_reg_offset *edcca_th;
+	s8 l2h_th_ini_cs;
+	s8 l2h_th_ini_ad;
+
+	const char *wow_fw_name;
+	const struct wiphy_wowlan_support *wowlan_stub;
+	const u8 max_sched_scan_ssids;
 
 	/* coex paras */
 	u32 coex_para_ver;
@@ -886,6 +1189,7 @@
 	u8 bt_afh_span_bw40;
 	u8 afh_5g_num;
 	u8 wl_rf_para_num;
+	u8 coex_info_hw_regs_num;
 	const u8 *bt_rssi_step;
 	const u8 *wl_rssi_step;
 	const struct coex_table_para *table_nsant;
@@ -895,6 +1199,8 @@
 	const struct coex_rf_para *wl_rf_para_tx;
 	const struct coex_rf_para *wl_rf_para_rx;
 	const struct coex_5g_afh_map *afh_5g;
+	const struct rtw_hw_reg *btg_reg;
+	const struct rtw_reg_domain *coex_info_hw_regs;
 };
 
 enum rtw_coex_bt_state_cnt {
@@ -941,6 +1247,7 @@
 struct rtw_coex_dm {
 	bool cur_ps_tdma_on;
 	bool cur_wl_rx_low_gain_en;
+	bool ignore_wl_act;
 
 	u8 reason;
 	u8 bt_rssi_state[4];
@@ -1021,6 +1328,9 @@
 
 	u32 bt_supported_version;
 	u32 bt_supported_feature;
+	u32 patch_ver;
+	u16 bt_reg_vendor_ae;
+	u16 bt_reg_vendor_ac;
 	s8 bt_rssi;
 	u8 kt_ver;
 	u8 gnt_workaround_state;
@@ -1121,10 +1431,50 @@
 #define DACK_MSBK_BACKUP_NUM	0xf
 #define DACK_DCK_BACKUP_NUM	0x2
 
+struct rtw_swing_table {
+	const u8 *p[RTW_RF_PATH_MAX];
+	const u8 *n[RTW_RF_PATH_MAX];
+};
+
+struct rtw_pkt_count {
+	u16 num_bcn_pkt;
+	u16 num_qry_pkt[DESC_RATE_MAX];
+};
+
+DECLARE_EWMA(evm, 10, 4);
+DECLARE_EWMA(snr, 10, 4);
+
+#define EDCCA_TH_L2H_IDX 0
+#define EDCCA_TH_H2L_IDX 1
+#define EDCCA_TH_L2H_LB 48
+#define EDCCA_ADC_BACKOFF 12
+#define EDCCA_IGI_BASE 50
+#define EDCCA_IGI_L2H_DIFF 8
+#define EDCCA_L2H_H2L_DIFF 7
+#define EDCCA_L2H_H2L_DIFF_NORMAL 8
+
+enum rtw_edcca_mode {
+	RTW_EDCCA_NORMAL	= 0,
+	RTW_EDCCA_ADAPTIVITY	= 1,
+};
+
+struct rtw_iqk_info {
+	bool done;
+	struct {
+		u32 s1_x;
+		u32 s1_y;
+		u32 s0_x;
+		u32 s0_y;
+	} result;
+};
+
 struct rtw_dm_info {
 	u32 cck_fa_cnt;
 	u32 ofdm_fa_cnt;
 	u32 total_fa_cnt;
+	u32 cck_cca_cnt;
+	u32 ofdm_cca_cnt;
+	u32 total_cca_cnt;
 
 	u32 cck_ok_cnt;
 	u32 cck_err_cnt;
@@ -1147,6 +1497,17 @@
 	u8 cck_gi_u_bnd;
 	u8 cck_gi_l_bnd;
 
+	u8 tx_rate;
+	u8 thermal_avg[RTW_RF_PATH_MAX];
+	u8 thermal_meter_k;
+	s8 delta_power_index[RTW_RF_PATH_MAX];
+	u8 default_ofdm_index;
+	bool pwr_trk_triggered;
+	bool pwr_trk_init_trigger;
+	struct ewma_thermal avg_thermal[RTW_RF_PATH_MAX];
+	s8 txagc_remnant_cck;
+	s8 txagc_remnant_ofdm;
+
 	/* backup dack results for each path and I/Q */
 	u32 dack_adck[RTW_RF_PATH_MAX];
 	u16 dack_msbk[RTW_RF_PATH_MAX][2][DACK_MSBK_BACKUP_NUM];
@@ -1157,6 +1518,22 @@
 	/* [bandwidth 0:20M/1:40M][number of path] */
 	u8 cck_pd_lv[2][RTW_RF_PATH_MAX];
 	u32 cck_fa_avg;
+
+	/* save the last rx phy status for debug */
+	s8 rx_snr[RTW_RF_PATH_MAX];
+	u8 rx_evm_dbm[RTW_RF_PATH_MAX];
+	s16 cfo_tail[RTW_RF_PATH_MAX];
+	u8 rssi[RTW_RF_PATH_MAX];
+	u8 curr_rx_rate;
+	struct rtw_pkt_count cur_pkt_count;
+	struct rtw_pkt_count last_pkt_count;
+	struct ewma_evm ewma_evm[RTW_EVM_NUM];
+	struct ewma_snr ewma_snr[RTW_SNR_NUM];
+
+	s8 l2h_th_ini;
+	enum rtw_edcca_mode edcca_mode;
+
+	struct rtw_iqk_info iqk;
 };
 
 struct rtw_efuse {
@@ -1168,13 +1545,17 @@
 	u8 addr[ETH_ALEN];
 	u8 channel_plan;
 	u8 country_code[2];
+	bool country_worldwide;
 	u8 rf_board_option;
 	u8 rfe_option;
-	u8 thermal_meter;
+	u8 power_track_type;
+	u8 thermal_meter[RTW_RF_PATH_MAX];
+	u8 thermal_meter_k;
 	u8 crystal_cap;
 	u8 ant_div_cfg;
 	u8 ant_div_type;
 	u8 regd;
+	u8 afe;
 
 	u8 lna_type_2g;
 	u8 lna_type_5g;
@@ -1252,11 +1633,12 @@
 	u16 rsvd_cpu_instr_addr;
 	u16 rsvd_fw_txbuf_addr;
 	u16 rsvd_csibuf_addr;
-	enum rtw_dma_mapping pq_map[RTW_PQ_MAP_NUM];
+	struct rtw_rqpn *rqpn;
 };
 
 struct rtw_fw_state {
 	const struct firmware *firmware;
+	struct rtw_dev *rtwdev;
 	struct completion completion;
 	u16 version;
 	u8 sub_version;
@@ -1264,6 +1646,15 @@
 	u16 h2c_version;
 };
 
+struct rtw_sar {
+	enum rtw_sar_sources source;
+	struct rtw_sar_rwrd *rwrd;
+	union rtw_sar_rwsi *rwsi;
+	union rtw_sar_rwgs *rwgs;
+	const struct rtw_sar_read *read;
+	struct delayed_work work;
+};
+
 struct rtw_hal {
 	u32 rcr;
 
@@ -1287,8 +1678,10 @@
 	u8 sec_ch_offset;
 	u8 rf_type;
 	u8 rf_path_num;
+	u8 rf_phy_num;
 	u8 antenna_tx;
 	u8 antenna_rx;
+	u8 bfee_sts_cap;
 
 	/* protect tx power section */
 	struct mutex tx_power_mutex;
@@ -1308,6 +1701,10 @@
 			  [RTW_CHANNEL_WIDTH_MAX]
 			  [RTW_RATE_SECTION_MAX]
 			  [RTW_MAX_CHANNEL_NUM_5G];
+	s8 tx_pwr_sar_2g[RTW_REGD_MAX][RTW_RF_PATH_MAX][RTW_RATE_SECTION_MAX]
+			[RTW_MAX_CHANNEL_NUM_2G];
+	s8 tx_pwr_sar_5g[RTW_REGD_MAX][RTW_RF_PATH_MAX][RTW_RATE_SECTION_MAX]
+			[RTW_MAX_CHANNEL_NUM_5G];
 	s8 tx_pwr_tbl[RTW_RF_PATH_MAX]
 		     [DESC_RATE_MAX];
 };
@@ -1326,6 +1723,7 @@
 	struct rtw_sec_desc sec;
 	struct rtw_traffic_stats stats;
 	struct rtw_regulatory regd;
+	struct rtw_bf_info bf_info;
 
 	struct rtw_dm_info dm_info;
 	struct rtw_coex coex;
@@ -1333,9 +1731,6 @@
 	/* ensures exclusive access from mac80211 callbacks */
 	struct mutex mutex;
 
-	/* lock for dm to use */
-	spinlock_t dm_lock;
-
 	/* read/write rf register */
 	spinlock_t rf_lock;
 
@@ -1349,6 +1744,12 @@
 	struct sk_buff_head c2h_queue;
 	struct work_struct c2h_work;
 
+	/* used to protect txqs list */
+	spinlock_t txq_lock;
+	struct list_head txqs;
+	struct tasklet_struct tx_tasklet;
+	struct work_struct ba_work;
+
 	struct rtw_tx_report tx_report;
 
 	struct {
@@ -1361,41 +1762,82 @@
 
 	/* lps power state & handler work */
 	struct rtw_lps_conf lps_conf;
-	struct delayed_work lps_work;
+	bool ps_enabled;
 
 	struct dentry *debugfs;
 
 	u8 sta_cnt;
+	u32 rts_threshold;
 
 	DECLARE_BITMAP(mac_id_map, RTW_MAX_MAC_ID_NUM);
 	DECLARE_BITMAP(flags, NUM_OF_RTW_FLAGS);
 
 	u8 mp_mode;
 
+	struct rtw_fw_state wow_fw;
+	struct rtw_wow_param wow;
+
+	struct rtw_sar sar;
+
+	bool need_rfk;
+
 	/* hci related data, must be last */
 	u8 priv[0] __aligned(sizeof(void *));
 };
 
 #include "hci.h"
 
-static inline bool rtw_flag_check(struct rtw_dev *rtwdev, enum rtw_flags flag)
+static inline bool rtw_is_assoc(struct rtw_dev *rtwdev)
 {
-	return test_bit(flag, rtwdev->flags);
+	return !!rtwdev->sta_cnt;
 }
 
-static inline void rtw_flag_clear(struct rtw_dev *rtwdev, enum rtw_flags flag)
+static inline struct ieee80211_txq *rtwtxq_to_txq(struct rtw_txq *rtwtxq)
 {
-	clear_bit(flag, rtwdev->flags);
+	void *p = rtwtxq;
+
+	return container_of(p, struct ieee80211_txq, drv_priv);
 }
 
-static inline void rtw_flag_set(struct rtw_dev *rtwdev, enum rtw_flags flag)
+static inline struct ieee80211_vif *rtwvif_to_vif(struct rtw_vif *rtwvif)
 {
-	set_bit(flag, rtwdev->flags);
+	void *p = rtwvif;
+
+	return container_of(p, struct ieee80211_vif, drv_priv);
 }
 
-static inline bool rtw_is_assoc(struct rtw_dev *rtwdev)
+static inline bool rtw_ssid_equal(struct cfg80211_ssid *a,
+				  struct cfg80211_ssid *b)
 {
-	return !!rtwdev->sta_cnt;
+	if (!a || !b || a->ssid_len != b->ssid_len)
+		return false;
+
+	if (memcmp(a->ssid, b->ssid, a->ssid_len))
+		return false;
+
+	return true;
+}
+
+static inline void rtw_chip_efuse_grant_on(struct rtw_dev *rtwdev)
+{
+	if (rtwdev->chip->ops->efuse_grant)
+		rtwdev->chip->ops->efuse_grant(rtwdev, true);
+}
+
+static inline void rtw_chip_efuse_grant_off(struct rtw_dev *rtwdev)
+{
+	if (rtwdev->chip->ops->efuse_grant)
+		rtwdev->chip->ops->efuse_grant(rtwdev, false);
+}
+
+static inline bool rtw_chip_wcpu_11n(struct rtw_dev *rtwdev)
+{
+	return rtwdev->chip->wlan_cpu == RTW_WCPU_11N;
+}
+
+static inline bool rtw_chip_wcpu_11ac(struct rtw_dev *rtwdev)
+{
+	return rtwdev->chip->wlan_cpu == RTW_WCPU_11AC;
 }
 
 void rtw_get_channel_params(struct cfg80211_chan_def *chandef,
@@ -1405,7 +1847,9 @@
 bool ltecoex_reg_write(struct rtw_dev *rtwdev, u16 offset, u32 value);
 void rtw_restore_reg(struct rtw_dev *rtwdev,
 		     struct rtw_backup_info *bckp, u32 num);
+void rtw_desc_to_mcsrate(u16 rate, u8 *mcs, u8 *nss);
 void rtw_set_channel(struct rtw_dev *rtwdev);
+void rtw_chip_prepare_tx(struct rtw_dev *rtwdev);
 void rtw_vif_port_config(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif,
 			 u32 config);
 void rtw_tx_report_purge_timer(struct timer_list *t);
@@ -1417,5 +1861,6 @@
 void rtw_core_deinit(struct rtw_dev *rtwdev);
 int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw);
 void rtw_unregister_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw);
+u16 rtw_desc_to_bitrate(u8 desc_rate);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/pci.c
@@ -6,9 +6,11 @@
 #include <linux/pci.h>
 #include "main.h"
 #include "pci.h"
+#include "reg.h"
 #include "tx.h"
 #include "rx.h"
 #include "fw.h"
+#include "ps.h"
 #include "debug.h"
 
 static bool rtw_disable_msi;
@@ -380,6 +382,7 @@
 	rtwpci->irq_mask[3] = IMR_H2CDOK |
 			      0;
 	spin_lock_init(&rtwpci->irq_lock);
+	spin_lock_init(&rtwpci->hwirq_lock);
 	ret = rtw_pci_init_trx_ring(rtwdev);
 
 	return ret;
@@ -398,12 +401,14 @@
 	dma = rtwpci->tx_rings[RTW_TX_QUEUE_BCN].r.dma;
 	rtw_write32(rtwdev, RTK_PCI_TXBD_DESA_BCNQ, dma);
 
-	len = rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.len;
-	dma = rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.dma;
-	rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.rp = 0;
-	rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.wp = 0;
-	rtw_write16(rtwdev, RTK_PCI_TXBD_NUM_H2CQ, len);
-	rtw_write32(rtwdev, RTK_PCI_TXBD_DESA_H2CQ, dma);
+	if (!rtw_chip_wcpu_11n(rtwdev)) {
+		len = rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.len;
+		dma = rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.dma;
+		rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.rp = 0;
+		rtwpci->tx_rings[RTW_TX_QUEUE_H2C].r.wp = 0;
+		rtw_write16(rtwdev, RTK_PCI_TXBD_NUM_H2CQ, len);
+		rtw_write32(rtwdev, RTK_PCI_TXBD_DESA_H2CQ, dma);
+	}
 
 	len = rtwpci->tx_rings[RTW_TX_QUEUE_BK].r.len;
 	dma = rtwpci->tx_rings[RTW_TX_QUEUE_BK].r.dma;
@@ -457,9 +462,10 @@
 	/* reset read/write point */
 	rtw_write32(rtwdev, RTK_PCI_TXBD_RWPTR_CLR, 0xffffffff);
 
-	/* rest H2C Queue index */
-	rtw_write32_set(rtwdev, RTK_PCI_TXBD_H2CQ_CSR, BIT_CLR_H2CQ_HOST_IDX);
-	rtw_write32_set(rtwdev, RTK_PCI_TXBD_H2CQ_CSR, BIT_CLR_H2CQ_HW_IDX);
+	/* reset H2C Queue index in a single write */
+	if (rtw_chip_wcpu_11ac(rtwdev))
+		rtw_write32_set(rtwdev, RTK_PCI_TXBD_H2CQ_CSR,
+				BIT_CLR_H2CQ_HOST_IDX | BIT_CLR_H2CQ_HW_IDX);
 }
 
 static void rtw_pci_reset_trx_ring(struct rtw_dev *rtwdev)
@@ -470,26 +476,39 @@
 static void rtw_pci_enable_interrupt(struct rtw_dev *rtwdev,
 				     struct rtw_pci *rtwpci)
 {
+	unsigned long flags;
+
+	spin_lock_irqsave(&rtwpci->hwirq_lock, flags);
+
 	rtw_write32(rtwdev, RTK_PCI_HIMR0, rtwpci->irq_mask[0]);
 	rtw_write32(rtwdev, RTK_PCI_HIMR1, rtwpci->irq_mask[1]);
-	rtw_write32(rtwdev, RTK_PCI_HIMR3, rtwpci->irq_mask[3]);
+	if (rtw_chip_wcpu_11ac(rtwdev))
+		rtw_write32(rtwdev, RTK_PCI_HIMR3, rtwpci->irq_mask[3]);
+
 	rtwpci->irq_enabled = true;
+
+	spin_unlock_irqrestore(&rtwpci->hwirq_lock, flags);
 }
 
 static void rtw_pci_disable_interrupt(struct rtw_dev *rtwdev,
 				      struct rtw_pci *rtwpci)
 {
+	unsigned long flags;
+
+	spin_lock_irqsave(&rtwpci->hwirq_lock, flags);
+
+	if (!rtwpci->irq_enabled)
+		goto out;
+
 	rtw_write32(rtwdev, RTK_PCI_HIMR0, 0);
 	rtw_write32(rtwdev, RTK_PCI_HIMR1, 0);
-	rtw_write32(rtwdev, RTK_PCI_HIMR3, 0);
-	rtwpci->irq_enabled = false;
-}
+	if (rtw_chip_wcpu_11ac(rtwdev))
+		rtw_write32(rtwdev, RTK_PCI_HIMR3, 0);
 
-static int rtw_pci_setup(struct rtw_dev *rtwdev)
-{
-	rtw_pci_reset_trx_ring(rtwdev);
+	rtwpci->irq_enabled = false;
 
-	return 0;
+out:
+	spin_unlock_irqrestore(&rtwpci->hwirq_lock, flags);
 }
 
 static void rtw_pci_dma_reset(struct rtw_dev *rtwdev, struct rtw_pci *rtwpci)
@@ -500,11 +519,22 @@
 	rtwpci->rx_tag = 0;
 }
 
+static int rtw_pci_setup(struct rtw_dev *rtwdev)
+{
+	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
+
+	rtw_pci_reset_trx_ring(rtwdev);
+	rtw_pci_dma_reset(rtwdev, rtwpci);
+
+	return 0;
+}
+
 static void rtw_pci_dma_release(struct rtw_dev *rtwdev, struct rtw_pci *rtwpci)
 {
 	struct rtw_pci_tx_ring *tx_ring;
 	u8 queue;
 
+	rtw_pci_reset_trx_ring(rtwdev);
 	for (queue = 0; queue < RTK_MAX_TX_QUEUE_NUM; queue++) {
 		tx_ring = &rtwpci->tx_rings[queue];
 		rtw_pci_free_tx_ring_skbs(rtwdev, tx_ring);
@@ -514,13 +544,10 @@
 static int rtw_pci_start(struct rtw_dev *rtwdev)
 {
 	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
-	unsigned long flags;
-
-	rtw_pci_dma_reset(rtwdev, rtwpci);
 
-	spin_lock_irqsave(&rtwpci->irq_lock, flags);
+	spin_lock_bh(&rtwpci->irq_lock);
 	rtw_pci_enable_interrupt(rtwdev, rtwpci);
-	spin_unlock_irqrestore(&rtwpci->irq_lock, flags);
+	spin_unlock_bh(&rtwpci->irq_lock);
 
 	return 0;
 }
@@ -528,12 +555,73 @@
 static void rtw_pci_stop(struct rtw_dev *rtwdev)
 {
 	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
-	unsigned long flags;
 
-	spin_lock_irqsave(&rtwpci->irq_lock, flags);
+	spin_lock_bh(&rtwpci->irq_lock);
 	rtw_pci_disable_interrupt(rtwdev, rtwpci);
 	rtw_pci_dma_release(rtwdev, rtwpci);
-	spin_unlock_irqrestore(&rtwpci->irq_lock, flags);
+	spin_unlock_bh(&rtwpci->irq_lock);
+}
+
+static void rtw_pci_deep_ps_enter(struct rtw_dev *rtwdev)
+{
+	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
+	struct rtw_pci_tx_ring *tx_ring;
+	bool tx_empty = true;
+	u8 queue;
+
+	lockdep_assert_held(&rtwpci->irq_lock);
+
+	/* Deep PS state is not allowed to TX-DMA */
+	for (queue = 0; queue < RTK_MAX_TX_QUEUE_NUM; queue++) {
+		/* BCN queue is rsvd page, does not have DMA interrupt
+		 * H2C queue is managed by firmware
+		 */
+		if (queue == RTW_TX_QUEUE_BCN ||
+		    queue == RTW_TX_QUEUE_H2C)
+			continue;
+
+		tx_ring = &rtwpci->tx_rings[queue];
+
+		/* check if there is any skb DMAing */
+		if (skb_queue_len(&tx_ring->queue)) {
+			tx_empty = false;
+			break;
+		}
+	}
+
+	if (!tx_empty) {
+		rtw_dbg(rtwdev, RTW_DBG_PS,
+			"TX path not empty, cannot enter deep power save state\n");
+		return;
+	}
+
+	set_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags);
+	rtw_power_mode_change(rtwdev, true);
+}
+
+static void rtw_pci_deep_ps_leave(struct rtw_dev *rtwdev)
+{
+	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
+
+	lockdep_assert_held(&rtwpci->irq_lock);
+
+	if (test_and_clear_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags))
+		rtw_power_mode_change(rtwdev, false);
+}
+
+static void rtw_pci_deep_ps(struct rtw_dev *rtwdev, bool enter)
+{
+	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
+
+	spin_lock_bh(&rtwpci->irq_lock);
+
+	if (enter && !test_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags))
+		rtw_pci_deep_ps_enter(rtwdev);
+
+	if (!enter && test_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags))
+		rtw_pci_deep_ps_leave(rtwdev);
+
+	spin_unlock_bh(&rtwpci->irq_lock);
 }
 
 static u8 ac_to_hwq[] = {
@@ -651,6 +739,10 @@
 	tx_data = rtw_pci_get_tx_data(skb);
 	tx_data->dma = dma;
 	tx_data->sn = pkt_info->sn;
+
+	spin_lock_bh(&rtwpci->irq_lock);
+
+	rtw_pci_deep_ps_leave(rtwdev);
 	skb_queue_tail(&ring->queue, skb);
 
 	/* kick off tx queue */
@@ -666,6 +758,7 @@
 		reg_bcn_work |= BIT_PCI_BCNQ_FLAG;
 		rtw_write8(rtwdev, RTK_PCI_TXBD_BCN_WORK, reg_bcn_work);
 	}
+	spin_unlock_bh(&rtwpci->irq_lock);
 
 	return 0;
 }
@@ -674,43 +767,24 @@
 					u32 size)
 {
 	struct sk_buff *skb;
-	struct rtw_tx_pkt_info pkt_info;
-	u32 tx_pkt_desc_sz;
-	u32 length;
-
-	tx_pkt_desc_sz = rtwdev->chip->tx_pkt_desc_sz;
-	length = size + tx_pkt_desc_sz;
-	skb = dev_alloc_skb(length);
+	struct rtw_tx_pkt_info pkt_info = {0};
+
+	skb = rtw_tx_write_data_rsvd_page_get(rtwdev, &pkt_info, buf, size);
 	if (!skb)
 		return -ENOMEM;
 
-	skb_reserve(skb, tx_pkt_desc_sz);
-	memcpy((u8 *)skb_put(skb, size), buf, size);
-	memset(&pkt_info, 0, sizeof(pkt_info));
-	pkt_info.tx_pkt_size = size;
-	pkt_info.offset = tx_pkt_desc_sz;
-
 	return rtw_pci_xmit(rtwdev, &pkt_info, skb, RTW_TX_QUEUE_BCN);
 }
 
 static int rtw_pci_write_data_h2c(struct rtw_dev *rtwdev, u8 *buf, u32 size)
 {
 	struct sk_buff *skb;
-	struct rtw_tx_pkt_info pkt_info;
-	u32 tx_pkt_desc_sz;
-	u32 length;
-
-	tx_pkt_desc_sz = rtwdev->chip->tx_pkt_desc_sz;
-	length = size + tx_pkt_desc_sz;
-	skb = dev_alloc_skb(length);
+	struct rtw_tx_pkt_info pkt_info = {0};
+
+	skb = rtw_tx_write_data_h2c_get(rtwdev, &pkt_info, buf, size);
 	if (!skb)
 		return -ENOMEM;
 
-	skb_reserve(skb, tx_pkt_desc_sz);
-	memcpy((u8 *)skb_put(skb, size), buf, size);
-	memset(&pkt_info, 0, sizeof(pkt_info));
-	pkt_info.tx_pkt_size = size;
-
 	return rtw_pci_xmit(rtwdev, &pkt_info, skb, RTW_TX_QUEUE_H2C);
 }
 
@@ -762,6 +836,11 @@
 
 	while (count--) {
 		skb = skb_dequeue(&ring->queue);
+		if (!skb) {
+			rtw_err(rtwdev, "failed to dequeue %d skb TX queue %d, BD=0x%08x, rp %d -> %d\n",
+				count, hw_queue, bd_idx, ring->r.rp, cur_rp);
+			break;
+		}
 		tx_data = rtw_pci_get_tx_data(skb);
 		pci_unmap_single(rtwpci->pdev, tx_data->dma, skb->len,
 				 PCI_DMA_TODEVICE);
@@ -883,15 +962,25 @@
 static void rtw_pci_irq_recognized(struct rtw_dev *rtwdev,
 				   struct rtw_pci *rtwpci, u32 *irq_status)
 {
+	unsigned long flags;
+
+	spin_lock_irqsave(&rtwpci->hwirq_lock, flags);
+
 	irq_status[0] = rtw_read32(rtwdev, RTK_PCI_HISR0);
 	irq_status[1] = rtw_read32(rtwdev, RTK_PCI_HISR1);
-	irq_status[3] = rtw_read32(rtwdev, RTK_PCI_HISR3);
+	if (rtw_chip_wcpu_11ac(rtwdev))
+		irq_status[3] = rtw_read32(rtwdev, RTK_PCI_HISR3);
+	else
+		irq_status[3] = 0;
 	irq_status[0] &= rtwpci->irq_mask[0];
 	irq_status[1] &= rtwpci->irq_mask[1];
 	irq_status[3] &= rtwpci->irq_mask[3];
 	rtw_write32(rtwdev, RTK_PCI_HISR0, irq_status[0]);
 	rtw_write32(rtwdev, RTK_PCI_HISR1, irq_status[1]);
-	rtw_write32(rtwdev, RTK_PCI_HISR3, irq_status[3]);
+	if (rtw_chip_wcpu_11ac(rtwdev))
+		rtw_write32(rtwdev, RTK_PCI_HISR3, irq_status[3]);
+
+	spin_unlock_irqrestore(&rtwpci->hwirq_lock, flags);
 }
 
 static irqreturn_t rtw_pci_interrupt_handler(int irq, void *dev)
@@ -899,10 +988,6 @@
 	struct rtw_dev *rtwdev = dev;
 	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
 
-	spin_lock(&rtwpci->irq_lock);
-	if (!rtwpci->irq_enabled)
-		goto out;
-
 	/* disable RTW PCI interrupt to avoid more interrupts before the end of
 	 * thread function
 	 *
@@ -912,8 +997,6 @@
 	 * a new HISR flag is set.
 	 */
 	rtw_pci_disable_interrupt(rtwdev, rtwpci);
-out:
-	spin_unlock(&rtwpci->irq_lock);
 
 	return IRQ_WAKE_THREAD;
 }
@@ -922,10 +1005,9 @@
 {
 	struct rtw_dev *rtwdev = dev;
 	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
-	unsigned long flags;
 	u32 irq_status[4];
 
-	spin_lock_irqsave(&rtwpci->irq_lock, flags);
+	spin_lock_bh(&rtwpci->irq_lock);
 	rtw_pci_irq_recognized(rtwdev, rtwpci, irq_status);
 
 	if (irq_status[0] & IMR_MGNTDOK)
@@ -947,7 +1029,7 @@
 
 	/* all of the jobs for this interrupt have been done */
 	rtw_pci_enable_interrupt(rtwdev, rtwpci);
-	spin_unlock_irqrestore(&rtwpci->irq_lock, flags);
+	spin_unlock_bh(&rtwpci->irq_lock);
 
 	return IRQ_HANDLED;
 }
@@ -969,6 +1051,7 @@
 	len = pci_resource_len(pdev, bar_id);
 	rtwpci->mmap = pci_iomap(pdev, bar_id, len);
 	if (!rtwpci->mmap) {
+		pci_release_regions(pdev);
 		rtw_err(rtwdev, "failed to map pci memory\n");
 		return -ENOMEM;
 	}
@@ -990,23 +1073,49 @@
 static void rtw_dbi_write8(struct rtw_dev *rtwdev, u16 addr, u8 data)
 {
 	u16 write_addr;
-	u16 remainder = addr & 0x3;
+	u16 remainder = addr & ~(BITS_DBI_WREN | BITS_DBI_ADDR_MASK);
 	u8 flag;
-	u8 cnt = 20;
+	u8 cnt;
 
-	write_addr = ((addr & 0x0ffc) | (BIT(0) << (remainder + 12)));
+	write_addr = addr & BITS_DBI_ADDR_MASK;
+	write_addr |= u16_encode_bits(BIT(remainder), BITS_DBI_WREN);
 	rtw_write8(rtwdev, REG_DBI_WDATA_V1 + remainder, data);
 	rtw_write16(rtwdev, REG_DBI_FLAG_V1, write_addr);
-	rtw_write8(rtwdev, REG_DBI_FLAG_V1 + 2, 0x01);
+	rtw_write8(rtwdev, REG_DBI_FLAG_V1 + 2, BIT_DBI_WFLAG >> 16);
+
+	for (cnt = 0; cnt < RTW_PCI_WR_RETRY_CNT; cnt++) {
+		flag = rtw_read8(rtwdev, REG_DBI_FLAG_V1 + 2);
+		if (flag == 0)
+			return;
 
-	flag = rtw_read8(rtwdev, REG_DBI_FLAG_V1 + 2);
-	while (flag && (cnt != 0)) {
 		udelay(10);
+	}
+
+	WARN(flag, "failed to write to DBI register, addr=0x%04x\n", addr);
+}
+
+static int rtw_dbi_read8(struct rtw_dev *rtwdev, u16 addr, u8 *value)
+{
+	u16 read_addr = addr & BITS_DBI_ADDR_MASK;
+	u8 flag;
+	u8 cnt;
+
+	rtw_write16(rtwdev, REG_DBI_FLAG_V1, read_addr);
+	rtw_write8(rtwdev, REG_DBI_FLAG_V1 + 2, BIT_DBI_RFLAG >> 16);
+
+	for (cnt = 0; cnt < RTW_PCI_WR_RETRY_CNT; cnt++) {
 		flag = rtw_read8(rtwdev, REG_DBI_FLAG_V1 + 2);
-		cnt--;
+		if (flag == 0) {
+			read_addr = REG_DBI_RDATA_V1 + (addr & 3);
+			*value = rtw_read8(rtwdev, read_addr);
+			return 0;
+		}
+
+		udelay(10);
 	}
 
-	WARN(flag, "DBI write fail\n");
+	WARN(1, "failed to read DBI register, addr=0x%04x\n", addr);
+	return -EIO;
 }
 
 static void rtw_mdio_write(struct rtw_dev *rtwdev, u8 addr, u16 data, bool g1)
@@ -1017,23 +1126,135 @@
 
 	rtw_write16(rtwdev, REG_MDIO_V1, data);
 
-	page = addr < 0x20 ? 0 : 1;
-	page += g1 ? 0 : 2;
-	rtw_write8(rtwdev, REG_PCIE_MIX_CFG, addr & 0x1f);
+	page = addr < RTW_PCI_MDIO_PG_SZ ? 0 : 1;
+	page += g1 ? RTW_PCI_MDIO_PG_OFFS_G1 : RTW_PCI_MDIO_PG_OFFS_G2;
+	rtw_write8(rtwdev, REG_PCIE_MIX_CFG, addr & BITS_MDIO_ADDR_MASK);
 	rtw_write8(rtwdev, REG_PCIE_MIX_CFG + 3, page);
-
 	rtw_write32_mask(rtwdev, REG_PCIE_MIX_CFG, BIT_MDIO_WFLAG_V1, 1);
-	wflag = rtw_read32_mask(rtwdev, REG_PCIE_MIX_CFG, BIT_MDIO_WFLAG_V1);
 
-	cnt = 20;
-	while (wflag && (cnt != 0)) {
-		udelay(10);
+	for (cnt = 0; cnt < RTW_PCI_WR_RETRY_CNT; cnt++) {
 		wflag = rtw_read32_mask(rtwdev, REG_PCIE_MIX_CFG,
 					BIT_MDIO_WFLAG_V1);
-		cnt--;
+		if (wflag == 0)
+			return;
+
+		udelay(10);
+	}
+
+	WARN(wflag, "failed to write to MDIO register, addr=0x%02x\n", addr);
+}
+
+static void rtw_pci_clkreq_set(struct rtw_dev *rtwdev, bool enable)
+{
+	u8 value;
+	int ret;
+
+	ret = rtw_dbi_read8(rtwdev, RTK_PCIE_LINK_CFG, &value);
+	if (ret) {
+		rtw_err(rtwdev, "failed to read CLKREQ_L1, ret=%d", ret);
+		return;
+	}
+
+	if (enable)
+		value |= BIT_CLKREQ_SW_EN;
+	else
+		value &= ~BIT_CLKREQ_SW_EN;
+
+	rtw_dbi_write8(rtwdev, RTK_PCIE_LINK_CFG, value);
+}
+
+static void rtw_pci_aspm_set(struct rtw_dev *rtwdev, bool enable)
+{
+	u8 value;
+	int ret;
+
+	ret = rtw_dbi_read8(rtwdev, RTK_PCIE_LINK_CFG, &value);
+	if (ret) {
+		rtw_err(rtwdev, "failed to read ASPM, ret=%d", ret);
+		return;
+	}
+
+	if (enable)
+		value |= BIT_L1_SW_EN;
+	else
+		value &= ~BIT_L1_SW_EN;
+
+	rtw_dbi_write8(rtwdev, RTK_PCIE_LINK_CFG, value);
+}
+
+static void rtw_pci_link_ps(struct rtw_dev *rtwdev, bool enter)
+{
+	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
+
+	/* Like CLKREQ, ASPM is also implemented by two HW modules, and can
+	 * only be enabled when host supports it.
+	 *
+	 * And ASPM mechanism should be enabled when driver/firmware enters
+	 * power save mode, without having heavy traffic. Because we've
+	 * experienced some inter-operability issues that the link tends
+	 * to enter L1 state on the fly even when driver is having high
+	 * throughput. This is probably because the ASPM behavior slightly
+	 * varies from different SOC.
+	 */
+	if (rtwpci->link_ctrl & PCI_EXP_LNKCTL_ASPM_L1)
+		rtw_pci_aspm_set(rtwdev, enter);
+}
+
+static void rtw_pci_link_cfg(struct rtw_dev *rtwdev)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv;
+	struct pci_dev *pdev = rtwpci->pdev;
+	u16 link_ctrl;
+	int ret;
+
+	/* RTL8822CE has enabled REFCLK auto calibration, it does not need
+	 * to add clock delay to cover the REFCLK timing gap.
+	 */
+	if (chip->id == RTW_CHIP_TYPE_8822C)
+		rtw_dbi_write8(rtwdev, RTK_PCIE_CLKDLY_CTRL, 0);
+
+	/* Though there is standard PCIE configuration space to set the
+	 * link control register, but by Realtek's design, driver should
+	 * check if host supports CLKREQ/ASPM to enable the HW module.
+	 *
+	 * These functions are implemented by two HW modules associated,
+	 * one is responsible to access PCIE configuration space to
+	 * follow the host settings, and another is in charge of doing
+	 * CLKREQ/ASPM mechanisms, it is default disabled. Because sometimes
+	 * the host does not support it, and due to some reasons or wrong
+	 * settings (ex. CLKREQ# not Bi-Direction), it could lead to device
+	 * loss if HW misbehaves on the link.
+	 *
+	 * Hence it's designed that driver should first check the PCIE
+	 * configuration space is sync'ed and enabled, then driver can turn
+	 * on the other module that is actually working on the mechanism.
+	 */
+	ret = pcie_capability_read_word(pdev, PCI_EXP_LNKCTL, &link_ctrl);
+	if (ret) {
+		rtw_err(rtwdev, "failed to read PCI cap, ret=%d\n", ret);
+		return;
 	}
 
-	WARN(wflag, "MDIO write fail\n");
+	if (link_ctrl & PCI_EXP_LNKCTL_CLKREQ_EN)
+		rtw_pci_clkreq_set(rtwdev, true);
+
+	rtwpci->link_ctrl = link_ctrl;
+}
+
+static void rtw_pci_interface_cfg(struct rtw_dev *rtwdev)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+
+	switch (chip->id) {
+	case RTW_CHIP_TYPE_8822C:
+		if (rtwdev->hal.cut_version >= RTW_CHIP_VER_CUT_D)
+			rtw_write32_mask(rtwdev, REG_HCI_MIX_CFG,
+					 BIT_PCIE_EMAC_PDN_AUX_TO_FAST_CLK, 1);
+		break;
+	default:
+		break;
+	}
 }
 
 static void rtw_pci_phy_cfg(struct rtw_dev *rtwdev)
@@ -1074,8 +1295,27 @@
 		else
 			rtw_dbi_write8(rtwdev, offset, value);
 	}
+
+	rtw_pci_link_cfg(rtwdev);
 }
 
+#ifdef CONFIG_PM
+static int rtw_pci_suspend(struct device *dev)
+{
+	return 0;
+}
+
+static int rtw_pci_resume(struct device *dev)
+{
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(rtw_pm_ops, rtw_pci_suspend, rtw_pci_resume);
+#define RTW_PM_OPS (&rtw_pm_ops)
+#else
+#define RTW_PM_OPS NULL
+#endif
+
 static int rtw_pci_claim(struct rtw_dev *rtwdev, struct pci_dev *pdev)
 {
 	int ret;
@@ -1120,8 +1360,6 @@
 		goto err_io_unmap;
 	}
 
-	rtw_pci_phy_cfg(rtwdev);
-
 	return 0;
 
 err_io_unmap:
@@ -1142,6 +1380,9 @@
 	.setup = rtw_pci_setup,
 	.start = rtw_pci_start,
 	.stop = rtw_pci_stop,
+	.deep_ps = rtw_pci_deep_ps,
+	.link_ps = rtw_pci_link_ps,
+	.interface_cfg = rtw_pci_interface_cfg,
 
 	.read8 = rtw_pci_read8,
 	.read16 = rtw_pci_read16,
@@ -1233,6 +1474,8 @@
 		goto err_destroy_pci;
 	}
 
+	rtw_pci_phy_cfg(rtwdev);
+
 	ret = rtw_register_hw(rtwdev, hw);
 	if (ret) {
 		rtw_err(rtwdev, "failed to register hw\n");
@@ -1283,12 +1526,32 @@
 	ieee80211_free_hw(hw);
 }
 
+static void rtw_pci_shutdown(struct pci_dev *pdev)
+{
+	struct ieee80211_hw *hw = pci_get_drvdata(pdev);
+	struct rtw_dev *rtwdev;
+	struct rtw_chip_info *chip;
+
+	if (!hw)
+		return;
+
+	rtwdev = hw->priv;
+	chip = rtwdev->chip;
+
+	if (chip->ops->shutdown)
+		chip->ops->shutdown(rtwdev);
+}
+
 static const struct pci_device_id rtw_pci_id_table[] = {
 #ifdef CONFIG_RTW88_8822BE
 	{ RTK_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0xB822, rtw8822b_hw_spec) },
 #endif
 #ifdef CONFIG_RTW88_8822CE
 	{ RTK_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0xC822, rtw8822c_hw_spec) },
+	{ RTK_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0xC82F, rtw8822c_hw_spec) },
+#endif
+#ifdef CONFIG_RTW88_8723DE
+	{ RTK_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0xD723, rtw8723d_hw_spec) },
 #endif
 	{},
 };
@@ -1299,6 +1562,8 @@
 	.id_table = rtw_pci_id_table,
 	.probe = rtw_pci_probe,
 	.remove = rtw_pci_remove,
+	.driver.pm = RTW_PM_OPS,
+	.shutdown = rtw_pci_shutdown,
 };
 module_pci_driver(rtw_pci_driver);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/pci.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/pci.h
@@ -13,17 +13,33 @@
 #define RTK_BEQ_TX_DESC_NUM	256
 
 #define RTK_MAX_RX_DESC_NUM	512
-/* 8K + rx desc size */
-#define RTK_PCI_RX_BUF_SIZE	(8192 + 24)
+/* 11K + rx desc size */
+#define RTK_PCI_RX_BUF_SIZE	(11454 + 24)
 
 #define RTK_PCI_CTRL		0x300
 #define BIT_RST_TRXDMA_INTF	BIT(20)
 #define BIT_RX_TAG_EN		BIT(15)
 #define REG_DBI_WDATA_V1	0x03E8
+#define REG_DBI_RDATA_V1	0x03EC
 #define REG_DBI_FLAG_V1		0x03F0
+#define BIT_DBI_RFLAG		BIT(17)
+#define BIT_DBI_WFLAG		BIT(16)
+#define BITS_DBI_WREN		GENMASK(15, 12)
+#define BITS_DBI_ADDR_MASK	GENMASK(11, 2)
+
 #define REG_MDIO_V1		0x03F4
 #define REG_PCIE_MIX_CFG	0x03F8
+#define BITS_MDIO_ADDR_MASK	GENMASK(4, 0)
 #define BIT_MDIO_WFLAG_V1	BIT(5)
+#define RTW_PCI_MDIO_PG_SZ	BIT(5)
+#define RTW_PCI_MDIO_PG_OFFS_G1	0
+#define RTW_PCI_MDIO_PG_OFFS_G2	2
+#define RTW_PCI_WR_RETRY_CNT	20
+
+#define RTK_PCIE_LINK_CFG	0x0719
+#define BIT_CLKREQ_SW_EN	BIT(4)
+#define BIT_L1_SW_EN		BIT(3)
+#define RTK_PCIE_CLKDLY_CTRL	0x0725
 
 #define BIT_PCI_BCNQ_FLAG	BIT(4)
 #define RTK_PCI_TXBD_DESA_BCNQ	0x308
@@ -182,7 +198,9 @@
 struct rtw_pci {
 	struct pci_dev *pdev;
 
-	/* used for pci interrupt */
+	/* Used for PCI interrupt. */
+	spinlock_t hwirq_lock;
+	/* Used for PCI TX queueing. */
 	spinlock_t irq_lock;
 	u32 irq_mask[4];
 	bool irq_enabled;
@@ -190,11 +208,12 @@
 	u16 rx_tag;
 	struct rtw_pci_tx_ring tx_rings[RTK_MAX_TX_QUEUE_NUM];
 	struct rtw_pci_rx_ring rx_rings[RTK_MAX_RX_QUEUE_NUM];
+	u16 link_ctrl;
 
 	void __iomem *mmap;
 };
 
-static u32 max_num_of_tx_queue(u8 queue)
+static inline u32 max_num_of_tx_queue(u8 queue)
 {
 	u32 max_num;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/phy.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/phy.c
@@ -20,15 +20,6 @@
 	struct phy_cfg_pair cfg;
 };
 
-struct phy_pg_cfg_pair {
-	u32 band;
-	u32 rf_path;
-	u32 tx_num;
-	u32 addr;
-	u32 bitmask;
-	u32 data;
-};
-
 static const u32 db_invert_table[12][8] = {
 	{10,		13,		16,		20,
 	 25,		32,		40,		50},
@@ -118,12 +109,63 @@
 
 	for (i = 0; i <= RTW_CHANNEL_WIDTH_40; i++) {
 		for (j = 0; j < RTW_RF_PATH_MAX; j++)
-			dm_info->cck_pd_lv[i][j] = 0;
+			dm_info->cck_pd_lv[i][j] = CCK_PD_LV0;
 	}
 
 	dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
 }
 
+void rtw_phy_set_edcca_th(struct rtw_dev *rtwdev, u8 l2h, u8 h2l)
+{
+	struct rtw_hw_reg_offset *edcca_th = rtwdev->chip->edcca_th;
+
+	rtw_write32_mask(rtwdev,
+			 edcca_th[EDCCA_TH_L2H_IDX].hw_reg.addr,
+			 edcca_th[EDCCA_TH_L2H_IDX].hw_reg.mask,
+			 l2h + edcca_th[EDCCA_TH_L2H_IDX].offset);
+	rtw_write32_mask(rtwdev,
+			 edcca_th[EDCCA_TH_H2L_IDX].hw_reg.addr,
+			 edcca_th[EDCCA_TH_H2L_IDX].hw_reg.mask,
+			 h2l + edcca_th[EDCCA_TH_H2L_IDX].offset);
+}
+
+void rtw_phy_adaptivity_set_mode(struct rtw_dev *rtwdev)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	/* turn off in debugfs for debug usage */
+	if (!rtw_edcca_enabled) {
+		dm_info->edcca_mode = RTW_EDCCA_NORMAL;
+		rtw_dbg(rtwdev, RTW_DBG_PHY, "disable edcca\n");
+		return;
+	}
+
+	switch (rtwdev->regd.txpwr_regd) {
+	case RTW_REGD_WW:
+	case RTW_REGD_ETSI:
+		dm_info->edcca_mode = RTW_EDCCA_ADAPTIVITY;
+		dm_info->l2h_th_ini = chip->l2h_th_ini_ad;
+		break;
+	case RTW_REGD_MKK:
+		dm_info->edcca_mode = RTW_EDCCA_ADAPTIVITY;
+		dm_info->l2h_th_ini = chip->l2h_th_ini_cs;
+		break;
+	default:
+		dm_info->edcca_mode = RTW_EDCCA_NORMAL;
+		break;
+	}
+}
+
+static void rtw_phy_adaptivity_init(struct rtw_dev *rtwdev)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+
+	rtw_phy_adaptivity_set_mode(rtwdev);
+	if (chip->ops->adaptivity_init)
+		chip->ops->adaptivity_init(rtwdev);
+}
+
 void rtw_phy_init(struct rtw_dev *rtwdev)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
@@ -143,15 +185,21 @@
 	mask = chip->dig[0].mask;
 	dm_info->igi_history[0] = rtw_read32_mask(rtwdev, addr, mask);
 	rtw_phy_cck_pd_init(rtwdev);
+	rtw_phy_adaptivity_init(rtwdev);
+	dm_info->iqk.done = false;
 }
 
 void rtw_phy_dig_write(struct rtw_dev *rtwdev, u8 igi)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
 	struct rtw_hal *hal = &rtwdev->hal;
+	struct rtw_hw_reg *dig_cck = &chip->dig_cck[0];
 	u32 addr, mask;
 	u8 path;
 
+	if (dig_cck)
+		rtw_write32_mask(rtwdev, dig_cck->addr, dig_cck->mask, igi >> 1);
+
 	for (path = 0; path < hal->rf_path_num; path++) {
 		addr = chip->dig[path].addr;
 		mask = chip->dig[path].mask;
@@ -222,10 +270,19 @@
 	dm_info->min_rssi = data.min_rssi;
 }
 
+static void rtw_phy_stat_rate_cnt(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	dm_info->last_pkt_count = dm_info->cur_pkt_count;
+	memset(&dm_info->cur_pkt_count, 0, sizeof(dm_info->cur_pkt_count));
+}
+
 static void rtw_phy_statistics(struct rtw_dev *rtwdev)
 {
 	rtw_phy_stat_rssi(rtwdev);
 	rtw_phy_stat_false_alarm(rtwdev);
+	rtw_phy_stat_rate_cnt(rtwdev);
 }
 
 #define DIG_PERF_FA_TH_LOW			250
@@ -394,7 +451,7 @@
 	u8 step[3];
 	bool linked;
 
-	if (rtw_flag_check(rtwdev, RTW_FLAG_DIG_DISABLE))
+	if (test_bit(RTW_FLAG_DIG_DISABLE, rtwdev->flags))
 		return;
 
 	if (rtw_phy_dig_check_damping(dm_info))
@@ -461,7 +518,6 @@
 		chip->ops->dpk_track(rtwdev);
 }
 
-#define CCK_PD_LV_MAX		5
 #define CCK_PD_FA_LV1_MIN	1000
 #define CCK_PD_FA_LV0_MAX	500
 
@@ -471,10 +527,10 @@
 	u32 cck_fa_avg = dm_info->cck_fa_avg;
 
 	if (cck_fa_avg > CCK_PD_FA_LV1_MIN)
-		return 1;
+		return CCK_PD_LV1;
 
 	if (cck_fa_avg < CCK_PD_FA_LV0_MAX)
-		return 0;
+		return CCK_PD_LV0;
 
 	return CCK_PD_LV_MAX;
 }
@@ -494,15 +550,15 @@
 	u32 cck_fa_avg = dm_info->cck_fa_avg;
 
 	if (igi > CCK_PD_IGI_LV4_VAL && rssi > CCK_PD_RSSI_LV4_VAL)
-		return 4;
+		return CCK_PD_LV4;
 	if (igi > CCK_PD_IGI_LV3_VAL && rssi > CCK_PD_RSSI_LV3_VAL)
-		return 3;
+		return CCK_PD_LV3;
 	if (igi > CCK_PD_IGI_LV2_VAL || rssi > CCK_PD_RSSI_LV2_VAL)
-		return 2;
+		return CCK_PD_LV2;
 	if (cck_fa_avg > CCK_PD_FA_LV1_MIN)
-		return 1;
+		return CCK_PD_LV1;
 	if (cck_fa_avg < CCK_PD_FA_LV0_MAX)
-		return 0;
+		return CCK_PD_LV0;
 
 	return CCK_PD_LV_MAX;
 }
@@ -539,6 +595,17 @@
 		chip->ops->cck_pd_set(rtwdev, level);
 }
 
+static void rtw_phy_pwr_track(struct rtw_dev *rtwdev)
+{
+	rtwdev->chip->ops->pwr_track(rtwdev);
+}
+
+static void rtw_phy_adaptivity(struct rtw_dev *rtwdev)
+{
+	if (rtwdev->chip->ops->adaptivity)
+		rtwdev->chip->ops->adaptivity(rtwdev);
+}
+
 void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev)
 {
 	/* for further calculation */
@@ -547,6 +614,8 @@
 	rtw_phy_cck_pd(rtwdev);
 	rtw_phy_ra_info_update(rtwdev);
 	rtw_phy_dpk_track(rtwdev);
+	rtw_phy_pwr_track(rtwdev);
+	rtw_phy_adaptivity(rtwdev);
 }
 
 #define FRAC_BITS 3
@@ -674,7 +743,7 @@
 	const u32 *base_addr = chip->rf_base_addr;
 	u32 val, direct_addr;
 
-	if (rf_path >= hal->rf_path_num) {
+	if (rf_path >= hal->rf_phy_num) {
 		rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path);
 		return INV_RF_DATA;
 	}
@@ -688,6 +757,54 @@
 	return val;
 }
 
+u32 rtw_phy_read_rf_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path,
+			 u32 addr, u32 mask)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_rf_sipi_addr *rf_sipi_addr;
+	struct rtw_rf_sipi_addr *rf_sipi_addr_a;
+	u32 val32;
+	u32 en_pi;
+	u32 r_addr;
+	u32 shift;
+
+	if (rf_path >= hal->rf_phy_num) {
+		rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path);
+		return INV_RF_DATA;
+	}
+
+	if (!chip->rf_sipi_read_addr) {
+		rtw_err(rtwdev, "rf_sipi_read_addr isn't defined\n");
+		return INV_RF_DATA;
+	}
+
+	rf_sipi_addr = &chip->rf_sipi_read_addr[rf_path];
+	rf_sipi_addr_a = &chip->rf_sipi_read_addr[RF_PATH_A];
+
+	addr &= 0xff;
+
+	val32 = rtw_read32(rtwdev, rf_sipi_addr->hssi_2);
+	val32 = (val32 & ~LSSI_READ_ADDR_MASK) | (addr << 23);
+	rtw_write32(rtwdev, rf_sipi_addr->hssi_2, val32);
+
+	/* toggle read edge of path A */
+	val32 = rtw_read32(rtwdev, rf_sipi_addr_a->hssi_2);
+	rtw_write32(rtwdev, rf_sipi_addr_a->hssi_2, val32 & ~LSSI_READ_EDGE_MASK);
+	rtw_write32(rtwdev, rf_sipi_addr_a->hssi_2, val32 | LSSI_READ_EDGE_MASK);
+
+	udelay(120);
+
+	en_pi = rtw_read32_mask(rtwdev, rf_sipi_addr->hssi_1, BIT(8));
+	r_addr = en_pi ? rf_sipi_addr->lssi_read_pi : rf_sipi_addr->lssi_read;
+
+	val32 = rtw_read32_mask(rtwdev, r_addr, LSSI_READ_DATA_MASK);
+
+	shift = __ffs(mask);
+
+	return (val32 & mask) >> shift;
+}
+
 bool rtw_phy_write_rf_reg_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path,
 			       u32 addr, u32 mask, u32 data)
 {
@@ -698,7 +815,7 @@
 	u32 old_data = 0;
 	u32 shift;
 
-	if (rf_path >= hal->rf_path_num) {
+	if (rf_path >= hal->rf_phy_num) {
 		rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path);
 		return false;
 	}
@@ -707,7 +824,7 @@
 	mask &= RFREG_MASK;
 
 	if (mask != RFREG_MASK) {
-		old_data = rtw_phy_read_rf(rtwdev, rf_path, addr, RFREG_MASK);
+		old_data = chip->ops->read_rf(rtwdev, rf_path, addr, RFREG_MASK);
 
 		if (old_data == INV_RF_DATA) {
 			rtw_err(rtwdev, "Write fail, rf is disabled\n");
@@ -735,7 +852,7 @@
 	const u32 *base_addr = chip->rf_base_addr;
 	u32 direct_addr;
 
-	if (rf_path >= hal->rf_path_num) {
+	if (rf_path >= hal->rf_phy_num) {
 		rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path);
 		return false;
 	}
@@ -744,20 +861,10 @@
 	direct_addr = base_addr[rf_path] + (addr << 2);
 	mask &= RFREG_MASK;
 
-	if (addr == RF_CFGCH) {
-		rtw_write32_mask(rtwdev, REG_RSV_CTRL, BITS_RFC_DIRECT, DISABLE_PI);
-		rtw_write32_mask(rtwdev, REG_WLRF1, BITS_RFC_DIRECT, DISABLE_PI);
-	}
-
 	rtw_write32_mask(rtwdev, direct_addr, mask, data);
 
 	udelay(1);
 
-	if (addr == RF_CFGCH) {
-		rtw_write32_mask(rtwdev, REG_RSV_CTRL, BITS_RFC_DIRECT, ENABLE_PI);
-		rtw_write32_mask(rtwdev, REG_WLRF1, BITS_RFC_DIRECT, ENABLE_PI);
-	}
-
 	return true;
 }
 
@@ -1211,10 +1318,8 @@
 
 void rtw_parse_tbl_bb_pg(struct rtw_dev *rtwdev, const struct rtw_table *tbl)
 {
-	const struct phy_pg_cfg_pair *p = tbl->data;
-	const struct phy_pg_cfg_pair *end = p + tbl->size / 6;
-
-	BUILD_BUG_ON(sizeof(struct phy_pg_cfg_pair) != sizeof(u32) * 6);
+	const struct rtw_phy_pg_cfg_pair *p = tbl->data;
+	const struct rtw_phy_pg_cfg_pair *end = p + tbl->size;
 
 	for (; p < end; p++) {
 		if (p->addr == 0xfe || p->addr == 0xffe) {
@@ -1292,6 +1397,94 @@
 	}
 }
 
+static void
+rtw_phy_set_tx_power_sar_by_chidx(struct rtw_dev *rtwdev, u8 regd, u8 rfpath,
+				  u8 band, u8 rs, u8 ch_idx, s8 sar)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	s8 base;
+	s8 ww_sar;
+	s8 s;
+
+	if (band == PHY_BAND_2G) {
+		base = hal->tx_pwr_by_rate_base_2g[rfpath][rs];
+		s = sar - base;
+		hal->tx_pwr_sar_2g[regd][rfpath][rs][ch_idx] = s;
+		if (regd == RTW_REGD_WW)
+			return;
+		ww_sar = hal->tx_pwr_sar_2g[RTW_REGD_WW][rfpath][rs][ch_idx];
+		ww_sar = min(ww_sar, s);
+		hal->tx_pwr_sar_2g[RTW_REGD_WW][rfpath][rs][ch_idx] = ww_sar;
+	} else {
+		base = hal->tx_pwr_by_rate_base_5g[rfpath][rs];
+		s = sar - base;
+		hal->tx_pwr_sar_5g[regd][rfpath][rs][ch_idx] = s;
+		if (regd == RTW_REGD_WW)
+			return;
+		ww_sar = hal->tx_pwr_sar_5g[RTW_REGD_WW][rfpath][rs][ch_idx];
+		ww_sar = min(ww_sar, s);
+		hal->tx_pwr_sar_5g[RTW_REGD_WW][rfpath][rs][ch_idx] = ww_sar;
+	}
+}
+
+static void
+rtw_phy_set_tx_power_sar_by_range(struct rtw_dev *rtwdev, u8 regd, u8 rfpath,
+				  u8 band, u8 chidx_start, u8 chidx_end, u8 sar_q3)
+{
+	u8 rs;
+	u8 ch_idx;
+	s8 sar;
+
+	if (regd >= RTW_REGD_MAX || rfpath >= RTW_RF_PATH_MAX)
+		return;
+
+	sar = sar_q3 >> (3 - (int)rtwdev->chip->txgi_factor);
+
+	for (ch_idx = chidx_start; ch_idx <= chidx_end; ch_idx++)
+		for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
+			rtw_phy_set_tx_power_sar_by_chidx(rtwdev, regd, rfpath,
+							  band, rs, ch_idx, sar);
+}
+
+void rtw_phy_set_tx_power_sar(struct rtw_dev *rtwdev, u8 regd, u8 rfpath,
+			      u8 ch_start, u8 ch_end, u8 sar_q3)
+{
+	u8 band_start, band_end;
+	int chidx_start, chidx_end;
+
+	band_start = ch_start <= 14 ? PHY_BAND_2G : PHY_BAND_5G;
+	band_end = ch_end <= 14 ? PHY_BAND_2G : PHY_BAND_5G;
+
+	if (band_start == band_end) {
+		chidx_start = rtw_channel_to_idx(band_start, ch_start);
+		chidx_end = rtw_channel_to_idx(band_start, ch_end);
+		if (chidx_start < 0 || chidx_end < 0)
+			goto err;
+		rtw_phy_set_tx_power_sar_by_range(rtwdev, regd, rfpath, band_start,
+						  chidx_start, chidx_end, sar_q3);
+		return;
+	}
+
+	chidx_start = rtw_channel_to_idx(PHY_BAND_2G, ch_start);
+	if (chidx_start < 0)
+		goto err;
+	rtw_phy_set_tx_power_sar_by_range(rtwdev, regd, rfpath, PHY_BAND_2G,
+					  chidx_start, RTW_MAX_CHANNEL_NUM_2G - 1,
+					  sar_q3);
+
+	chidx_end = rtw_channel_to_idx(PHY_BAND_5G, ch_end);
+	if (chidx_end < 0)
+		goto err;
+	rtw_phy_set_tx_power_sar_by_range(rtwdev, regd, rfpath, PHY_BAND_5G,
+					  0, chidx_end, sar_q3);
+
+	return;
+
+err:
+	rtw_warn(rtwdev, "SAR: invalid channel (start/end)=(%d/%d)\n",
+		 ch_start, ch_end);
+}
+
 /* cross-reference 5G power limits if values are not assigned */
 static void
 rtw_xref_5g_txpwr_lmt(struct rtw_dev *rtwdev, u8 regd,
@@ -1431,7 +1624,7 @@
 
 	rtw_load_table(rtwdev, chip->rfk_init_tbl);
 
-	dpk_info->is_dpk_pwr_on = 1;
+	dpk_info->is_dpk_pwr_on = true;
 }
 
 void rtw_phy_load_tables(struct rtw_dev *rtwdev)
@@ -1673,9 +1866,10 @@
 	return tx_power;
 }
 
-static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
-				     enum rtw_bandwidth bw, u8 rf_path,
-				     u8 rate, u8 channel, u8 regd)
+static void rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
+				       enum rtw_bandwidth bw, u8 rf_path,
+				       u8 rate, u8 channel, u8 regd,
+				       struct rtw_power_params *pwr_param)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
 	u8 *cch_by_bw = hal->cch_by_bw;
@@ -1684,9 +1878,10 @@
 	int ch_idx;
 	u8 cur_bw, cur_ch;
 	s8 cur_lmt;
+	s8 sar, sar_ww;
 
 	if (regd > RTW_REGD_WW)
-		return power_limit;
+		goto err;
 
 	if (rate >= DESC_RATE1M && rate <= DESC_RATE11M)
 		rs = RTW_RATE_SECTION_CCK;
@@ -1726,44 +1921,71 @@
 		power_limit = min_t(s8, cur_lmt, power_limit);
 	}
 
-	return power_limit;
+	ch_idx = rtw_channel_to_idx(band, channel);
+	if (ch_idx < 0)
+		goto err;
+
+	if (band == PHY_BAND_2G) {
+		sar = hal->tx_pwr_sar_2g[regd][rf_path][rs][ch_idx];
+		sar_ww = hal->tx_pwr_sar_2g[RTW_REGD_WW][rf_path][rs][ch_idx];
+	} else {
+		sar = hal->tx_pwr_sar_5g[regd][rf_path][rs][ch_idx];
+		sar_ww = hal->tx_pwr_sar_5g[RTW_REGD_WW][rf_path][rs][ch_idx];
+	}
+	if (sar >= rtwdev->chip->max_power_index)
+		sar = sar_ww;
+
+	pwr_param->pwr_sar = sar;
+	pwr_param->pwr_limit = power_limit;
+	return;
 
 err:
 	WARN(1, "invalid arguments, band=%d, bw=%d, path=%d, rate=%d, ch=%d\n",
 	     band, bw, rf_path, rate, channel);
-	return (s8)rtwdev->chip->max_power_index;
+	pwr_param->pwr_sar = (s8)rtwdev->chip->max_power_index;
+	pwr_param->pwr_limit = (s8)rtwdev->chip->max_power_index;
 }
 
-void rtw_get_tx_power_params(struct rtw_dev *rtwdev, u8 path, u8 rate, u8 bw,
-			     u8 ch, u8 regd, struct rtw_power_params *pwr_param)
+static void rtw_phy_get_tx_power_base(struct rtw_dev *rtwdev, u8 band,
+				      enum rtw_bandwidth bw, u8 path, u8 rate,
+				      u8 ch, struct rtw_power_params *pwr_param)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
 	struct rtw_txpwr_idx *pwr_idx;
-	u8 group, band;
-	u8 *base = &pwr_param->pwr_base;
-	s8 *offset = &pwr_param->pwr_offset;
-	s8 *limit = &pwr_param->pwr_limit;
+	u8 group;
+	u8 base;
+	s8 offset;
 
 	pwr_idx = &rtwdev->efuse.txpwr_idx_table[path];
 	group = rtw_get_channel_group(ch);
 
 	/* base power index for 2.4G/5G */
-	if (ch <= 14) {
-		band = PHY_BAND_2G;
-		*base = rtw_phy_get_2g_tx_power_index(rtwdev,
-						      &pwr_idx->pwr_idx_2g,
-						      bw, rate, group);
-		*offset = hal->tx_pwr_by_rate_offset_2g[path][rate];
+	if (band == PHY_BAND_2G) {
+		base = rtw_phy_get_2g_tx_power_index(rtwdev,
+						     &pwr_idx->pwr_idx_2g,
+						     bw, rate, group);
+		offset = hal->tx_pwr_by_rate_offset_2g[path][rate];
 	} else {
-		band = PHY_BAND_5G;
-		*base = rtw_phy_get_5g_tx_power_index(rtwdev,
-						      &pwr_idx->pwr_idx_5g,
-						      bw, rate, group);
-		*offset = hal->tx_pwr_by_rate_offset_5g[path][rate];
+		base = rtw_phy_get_5g_tx_power_index(rtwdev,
+						     &pwr_idx->pwr_idx_5g,
+						     bw, rate, group);
+		offset = hal->tx_pwr_by_rate_offset_5g[path][rate];
 	}
 
-	*limit = rtw_phy_get_tx_power_limit(rtwdev, band, bw, path,
-					    rate, ch, regd);
+	pwr_param->pwr_base = base;
+	pwr_param->pwr_offset = offset;
+	pwr_param->pwr_remnant = (rate <= DESC_RATE11M ? dm_info->txagc_remnant_cck :
+				  dm_info->txagc_remnant_ofdm);
+}
+
+void rtw_get_tx_power_params(struct rtw_dev *rtwdev, u8 path, u8 rate, u8 bw,
+			     u8 ch, u8 regd, struct rtw_power_params *pwr_param)
+{
+	u8 band = IS_CH_2G_BAND(ch) ? PHY_BAND_2G : PHY_BAND_5G;
+
+	rtw_phy_get_tx_power_base(rtwdev, band, bw, path, rate, ch, pwr_param);
+	rtw_phy_get_tx_power_limit(rtwdev, band, bw, path, rate, ch, regd, pwr_param);
 }
 
 u8
@@ -1778,12 +2000,13 @@
 				channel, regd, &pwr_param);
 
 	tx_power = pwr_param.pwr_base;
-	offset = min_t(s8, pwr_param.pwr_offset, pwr_param.pwr_limit);
+	offset = min3(pwr_param.pwr_offset, pwr_param.pwr_limit,
+		      pwr_param.pwr_sar);
 
 	if (rtwdev->chip->en_dis_dpd)
 		offset += rtw_phy_get_dis_dpd_by_rate_diff(rtwdev, rate);
 
-	tx_power += offset;
+	tx_power += offset + pwr_param.pwr_remnant;
 
 	if (tx_power > rtwdev->chip->max_power_index)
 		tx_power = rtwdev->chip->max_power_index;
@@ -1967,4 +2190,130 @@
 			for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
 				rtw_phy_init_tx_power_limit(rtwdev, regd, bw,
 							    rs);
+
+	/* init tx power sar */
+	memset(hal->tx_pwr_sar_2g, rtwdev->chip->max_power_index,
+	       sizeof(hal->tx_pwr_sar_2g));
+	memset(hal->tx_pwr_sar_5g, rtwdev->chip->max_power_index,
+	       sizeof(hal->tx_pwr_sar_5g));
+}
+
+void rtw_phy_config_swing_table(struct rtw_dev *rtwdev,
+				struct rtw_swing_table *swing_table)
+{
+	const struct rtw_pwr_track_tbl *tbl = rtwdev->chip->pwr_track_tbl;
+	u8 channel = rtwdev->hal.current_channel;
+
+	if (IS_CH_2G_BAND(channel)) {
+		if (rtwdev->dm_info.tx_rate <= DESC_RATE11M) {
+			swing_table->p[RF_PATH_A] = tbl->pwrtrk_2g_ccka_p;
+			swing_table->n[RF_PATH_A] = tbl->pwrtrk_2g_ccka_n;
+			swing_table->p[RF_PATH_B] = tbl->pwrtrk_2g_cckb_p;
+			swing_table->n[RF_PATH_B] = tbl->pwrtrk_2g_cckb_n;
+		} else {
+			swing_table->p[RF_PATH_A] = tbl->pwrtrk_2ga_p;
+			swing_table->n[RF_PATH_A] = tbl->pwrtrk_2ga_n;
+			swing_table->p[RF_PATH_B] = tbl->pwrtrk_2gb_p;
+			swing_table->n[RF_PATH_B] = tbl->pwrtrk_2gb_n;
+		}
+	} else if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) {
+		swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_1];
+		swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_1];
+		swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_1];
+		swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_1];
+	} else if (IS_CH_5G_BAND_3(channel)) {
+		swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_2];
+		swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_2];
+		swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_2];
+		swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_2];
+	} else if (IS_CH_5G_BAND_4(channel)) {
+		swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_3];
+		swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_3];
+		swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_3];
+		swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_3];
+	} else {
+		swing_table->p[RF_PATH_A] = tbl->pwrtrk_2ga_p;
+		swing_table->n[RF_PATH_A] = tbl->pwrtrk_2ga_n;
+		swing_table->p[RF_PATH_B] = tbl->pwrtrk_2gb_p;
+		swing_table->n[RF_PATH_B] = tbl->pwrtrk_2gb_n;
+	}
+}
+
+void rtw_phy_pwrtrack_avg(struct rtw_dev *rtwdev, u8 thermal, u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	ewma_thermal_add(&dm_info->avg_thermal[path], thermal);
+	dm_info->thermal_avg[path] =
+		ewma_thermal_read(&dm_info->avg_thermal[path]);
+}
+
+bool rtw_phy_pwrtrack_thermal_changed(struct rtw_dev *rtwdev, u8 thermal,
+				      u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 avg = ewma_thermal_read(&dm_info->avg_thermal[path]);
+
+	if (avg == thermal)
+		return false;
+
+	return true;
+}
+
+u8 rtw_phy_pwrtrack_get_delta(struct rtw_dev *rtwdev, u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 therm_avg, therm_efuse, therm_delta;
+
+	therm_avg = dm_info->thermal_avg[path];
+	therm_efuse = rtwdev->efuse.thermal_meter[path];
+	therm_delta = abs(therm_avg - therm_efuse);
+
+	return min_t(u8, therm_delta, RTW_PWR_TRK_TBL_SZ - 1);
+}
+
+s8 rtw_phy_pwrtrack_get_pwridx(struct rtw_dev *rtwdev,
+			       struct rtw_swing_table *swing_table,
+			       u8 tbl_path, u8 therm_path, u8 delta)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	const u8 *delta_swing_table_idx_pos;
+	const u8 *delta_swing_table_idx_neg;
+
+	if (delta >= RTW_PWR_TRK_TBL_SZ) {
+		rtw_warn(rtwdev, "power track table overflow\n");
+		return 0;
+	}
+
+	if (!swing_table) {
+		rtw_warn(rtwdev, "swing table not configured\n");
+		return 0;
+	}
+
+	delta_swing_table_idx_pos = swing_table->p[tbl_path];
+	delta_swing_table_idx_neg = swing_table->n[tbl_path];
+
+	if (!delta_swing_table_idx_pos || !delta_swing_table_idx_neg) {
+		rtw_warn(rtwdev, "invalid swing table index\n");
+		return 0;
+	}
+
+	if (dm_info->thermal_avg[therm_path] >
+	    rtwdev->efuse.thermal_meter[therm_path])
+		return delta_swing_table_idx_pos[delta];
+	else
+		return -delta_swing_table_idx_neg[delta];
+}
+
+bool rtw_phy_pwrtrack_need_iqk(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 delta_iqk;
+
+	delta_iqk = abs(dm_info->thermal_avg[0] - dm_info->thermal_meter_k);
+	if (delta_iqk >= rtwdev->chip->iqk_threshold) {
+		dm_info->thermal_meter_k = dm_info->thermal_avg[0];
+		return true;
+	}
+	return false;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/phy.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/phy.h
@@ -21,6 +21,8 @@
 u8 rtw_phy_rf_power_2_rssi(s8 *rf_power, u8 path_num);
 u32 rtw_phy_read_rf(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path,
 		    u32 addr, u32 mask);
+u32 rtw_phy_read_rf_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path,
+			 u32 addr, u32 mask);
 bool rtw_phy_write_rf_reg_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path,
 			       u32 addr, u32 mask, u32 data);
 bool rtw_phy_write_rf_reg(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path,
@@ -41,9 +43,23 @@
 		    u32 addr, u32 data);
 void rtw_phy_init_tx_power(struct rtw_dev *rtwdev);
 void rtw_phy_load_tables(struct rtw_dev *rtwdev);
+u8 rtw_phy_get_tx_power_index(struct rtw_dev *rtwdev, u8 rf_path, u8 rate,
+			      enum rtw_bandwidth bw, u8 channel, u8 regd);
 void rtw_phy_set_tx_power_level(struct rtw_dev *rtwdev, u8 channel);
 void rtw_phy_tx_power_by_rate_config(struct rtw_hal *hal);
 void rtw_phy_tx_power_limit_config(struct rtw_hal *hal);
+void rtw_phy_pwrtrack_avg(struct rtw_dev *rtwdev, u8 thermal, u8 path);
+bool rtw_phy_pwrtrack_thermal_changed(struct rtw_dev *rtwdev, u8 thermal,
+				      u8 path);
+u8 rtw_phy_pwrtrack_get_delta(struct rtw_dev *rtwdev, u8 path);
+s8 rtw_phy_pwrtrack_get_pwridx(struct rtw_dev *rtwdev,
+			       struct rtw_swing_table *swing_table,
+			       u8 tbl_path, u8 therm_path, u8 delta);
+bool rtw_phy_pwrtrack_need_iqk(struct rtw_dev *rtwdev);
+void rtw_phy_config_swing_table(struct rtw_dev *rtwdev,
+				struct rtw_swing_table *swing_table);
+void rtw_phy_set_edcca_th(struct rtw_dev *rtwdev, u8 l2h, u8 h2l);
+void rtw_phy_adaptivity_set_mode(struct rtw_dev *rtwdev);
 
 struct rtw_txpwr_lmt_cfg_pair {
 	u8 regd;
@@ -54,6 +70,15 @@
 	s8 txpwr_lmt;
 };
 
+struct rtw_phy_pg_cfg_pair {
+	u32 band;
+	u32 rf_path;
+	u32 tx_num;
+	u32 addr;
+	u32 bitmask;
+	u32 data;
+};
+
 #define RTW_DECL_TABLE_PHY_COND_CORE(name, cfg, path)	\
 const struct rtw_table name ## _tbl = {			\
 	.data = name,					\
@@ -118,12 +143,25 @@
 	u8 pwr_base;
 	s8 pwr_offset;
 	s8 pwr_limit;
+	s8 pwr_sar;
+	s8 pwr_remnant;
 };
 
 void
 rtw_get_tx_power_params(struct rtw_dev *rtwdev, u8 path,
 			u8 rate, u8 bw, u8 ch, u8 regd,
 			struct rtw_power_params *pwr_param);
+void rtw_phy_set_tx_power_sar(struct rtw_dev *rtwdev, u8 regd, u8 rfpath,
+			      u8 ch_start, u8 ch_end, u8 sar_q3);
+
+enum rtw_phy_cck_pd_lv {
+	CCK_PD_LV0,
+	CCK_PD_LV1,
+	CCK_PD_LV2,
+	CCK_PD_LV3,
+	CCK_PD_LV4,
+	CCK_PD_LV_MAX,
+};
 
 #define	MASKBYTE0		0xff
 #define	MASKBYTE1		0xff00
@@ -148,4 +186,8 @@
 
 #define CCK_FA_AVG_RESET 0xffffffff
 
+#define LSSI_READ_ADDR_MASK	0x7f800000
+#define LSSI_READ_EDGE_MASK	0x80000000
+#define LSSI_READ_DATA_MASK	0xfffff
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/ps.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/ps.c
@@ -3,6 +3,7 @@
  */
 
 #include "main.h"
+#include "reg.h"
 #include "fw.h"
 #include "ps.h"
 #include "mac.h"
@@ -18,18 +19,19 @@
 		rtw_err(rtwdev, "leave idle state failed\n");
 
 	rtw_set_channel(rtwdev);
-	rtw_flag_clear(rtwdev, RTW_FLAG_INACTIVE_PS);
+	clear_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags);
 
 	return ret;
 }
 
 int rtw_enter_ips(struct rtw_dev *rtwdev)
 {
-	rtw_flag_set(rtwdev, RTW_FLAG_INACTIVE_PS);
+	set_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags);
 
 	rtw_coex_ips_notify(rtwdev, COEX_IPS_ENTER);
 
 	rtw_core_stop(rtwdev);
+	rtw_hci_link_ps(rtwdev, true);
 
 	return 0;
 }
@@ -48,6 +50,8 @@
 {
 	int ret;
 
+	rtw_hci_link_ps(rtwdev, false);
+
 	ret = rtw_ips_pwr_up(rtwdev);
 	if (ret) {
 		rtw_err(rtwdev, "failed to leave ips state\n");
@@ -61,6 +65,85 @@
 	return 0;
 }
 
+void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter)
+{
+	u8 request, confirm, polling;
+	u8 polling_cnt;
+	u8 retry_cnt = 0;
+
+	for (retry_cnt = 0; retry_cnt < 3; retry_cnt++) {
+		request = rtw_read8(rtwdev, rtwdev->hci.rpwm_addr);
+		confirm = rtw_read8(rtwdev, rtwdev->hci.cpwm_addr);
+
+		/* toggle to request power mode, others remain 0 */
+		request ^= request | BIT_RPWM_TOGGLE;
+		if (!enter) {
+			request |= POWER_MODE_ACK;
+		} else {
+			request |= POWER_MODE_LCLK;
+			if (rtw_fw_lps_deep_mode == LPS_DEEP_MODE_PG)
+				request |= POWER_MODE_PG;
+		}
+
+		rtw_write8(rtwdev, rtwdev->hci.rpwm_addr, request);
+
+		if (enter)
+			return;
+
+		/* check confirm power mode has left power save state */
+		for (polling_cnt = 0; polling_cnt < 50; polling_cnt++) {
+			polling = rtw_read8(rtwdev, rtwdev->hci.cpwm_addr);
+			if ((polling ^ confirm) & BIT_RPWM_TOGGLE)
+				return;
+			udelay(100);
+		}
+
+		/* in case of fw/hw missed the request, retry */
+		rtw_warn(rtwdev, "failed to leave deep PS, retry=%d\n",
+			 retry_cnt);
+	}
+
+	/* Hit here means that driver failed to change hardware power mode to
+	 * active state after retry 3 times. If the power state is locked at
+	 * Deep sleep, most of the hardware circuits is not working, even
+	 * register read/write. It should be treated as fatal error and
+	 * requires an entire analysis about the firmware/hardware
+	 */
+	WARN(1, "Hardware power state locked\n");
+}
+EXPORT_SYMBOL(rtw_power_mode_change);
+
+static void __rtw_leave_lps_deep(struct rtw_dev *rtwdev)
+{
+	rtw_hci_deep_ps(rtwdev, false);
+}
+
+static void rtw_fw_leave_lps_state_check(struct rtw_dev *rtwdev)
+{
+	int i;
+
+	/* Driver needs to wait for firmware to leave LPS state
+	 * successfully. Firmware will send null packet to inform AP,
+	 * and see if AP sends an ACK back, then firmware will restore
+	 * the REG_TCR register.
+	 *
+	 * If driver does not wait for firmware, null packet with
+	 * PS bit could be sent due to incorrect REG_TCR setting.
+	 *
+	 * In our test, 100ms should be enough for firmware to finish
+	 * the flow. If REG_TCR Register is still incorrect after 100ms,
+	 * just modify it directly, and throw a warn message.
+	 */
+	for (i = 0 ; i < LEAVE_LPS_TRY_CNT; i++) {
+		if (rtw_read32_mask(rtwdev, REG_TCR, BIT_PWRMGT_HWDATA_EN) == 0)
+			return;
+		msleep(20);
+	}
+
+	rtw_write32_mask(rtwdev, REG_TCR, BIT_PWRMGT_HWDATA_EN, 0);
+	rtw_warn(rtwdev, "firmware failed to restore hardware setting\n");
+}
+
 static void rtw_leave_lps_core(struct rtw_dev *rtwdev)
 {
 	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
@@ -70,12 +153,32 @@
 	conf->rlbm = 0;
 	conf->smart_ps = 0;
 
+	rtw_hci_link_ps(rtwdev, false);
 	rtw_fw_set_pwr_mode(rtwdev);
-	rtw_flag_clear(rtwdev, RTW_FLAG_LEISURE_PS);
+	rtw_fw_leave_lps_state_check(rtwdev);
+
+	clear_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags);
 
 	rtw_coex_lps_notify(rtwdev, COEX_LPS_DISABLE);
 }
 
+static void __rtw_enter_lps_deep(struct rtw_dev *rtwdev)
+{
+	if (rtwdev->lps_conf.deep_mode == LPS_DEEP_MODE_NONE)
+		return;
+
+	if (!test_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags)) {
+		rtw_dbg(rtwdev, RTW_DBG_PS,
+			"Should enter LPS before entering deep PS\n");
+		return;
+	}
+
+	if (rtw_fw_lps_deep_mode == LPS_DEEP_MODE_PG)
+		rtw_fw_set_pg_info(rtwdev);
+
+	rtw_hci_deep_ps(rtwdev, true);
+}
+
 static void rtw_enter_lps_core(struct rtw_dev *rtwdev)
 {
 	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
@@ -88,88 +191,64 @@
 	rtw_coex_lps_notify(rtwdev, COEX_LPS_ENABLE);
 
 	rtw_fw_set_pwr_mode(rtwdev);
-	rtw_flag_set(rtwdev, RTW_FLAG_LEISURE_PS);
-}
+	rtw_hci_link_ps(rtwdev, true);
 
-void rtw_lps_work(struct work_struct *work)
-{
-	struct rtw_dev *rtwdev = container_of(work, struct rtw_dev,
-					      lps_work.work);
-	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
-	struct rtw_vif *rtwvif = conf->rtwvif;
-
-	if (WARN_ON(!rtwvif))
-		return;
-
-	if (conf->mode == RTW_MODE_LPS)
-		rtw_enter_lps_core(rtwdev);
-	else
-		rtw_leave_lps_core(rtwdev);
+	set_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags);
 }
 
-void rtw_enter_lps_irqsafe(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif)
+static void __rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id)
 {
 	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
 
-	if (rtwvif->in_lps)
+	if (test_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags))
 		return;
 
 	conf->mode = RTW_MODE_LPS;
-	conf->rtwvif = rtwvif;
-	rtwvif->in_lps = true;
+	conf->port_id = port_id;
 
-	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->lps_work, 0);
+	rtw_enter_lps_core(rtwdev);
 }
 
-void rtw_leave_lps_irqsafe(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif)
+static void __rtw_leave_lps(struct rtw_dev *rtwdev)
 {
 	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
 
-	if (!rtwvif->in_lps)
+	if (test_and_clear_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags)) {
+		rtw_dbg(rtwdev, RTW_DBG_PS,
+			"Should leave deep PS before leaving LPS\n");
+		__rtw_leave_lps_deep(rtwdev);
+	}
+
+	if (!test_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags))
 		return;
 
 	conf->mode = RTW_MODE_ACTIVE;
-	conf->rtwvif = rtwvif;
-	rtwvif->in_lps = false;
-
-	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->lps_work, 0);
-}
 
-bool rtw_in_lps(struct rtw_dev *rtwdev)
-{
-	return rtw_flag_check(rtwdev, RTW_FLAG_LEISURE_PS);
+	rtw_leave_lps_core(rtwdev);
 }
 
-void rtw_enter_lps(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif)
+void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id)
 {
-	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
-
-	if (WARN_ON(!rtwvif))
-		return;
+	lockdep_assert_held(&rtwdev->mutex);
 
-	if (rtwvif->in_lps)
+	if (rtwdev->coex.stat.wl_force_lps_ctrl)
 		return;
 
-	conf->mode = RTW_MODE_LPS;
-	conf->rtwvif = rtwvif;
-	rtwvif->in_lps = true;
-
-	rtw_enter_lps_core(rtwdev);
+	__rtw_enter_lps(rtwdev, port_id);
+	__rtw_enter_lps_deep(rtwdev);
 }
 
-void rtw_leave_lps(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif)
+void rtw_leave_lps(struct rtw_dev *rtwdev)
 {
-	struct rtw_lps_conf *conf = &rtwdev->lps_conf;
-
-	if (WARN_ON(!rtwvif))
-		return;
+	lockdep_assert_held(&rtwdev->mutex);
 
-	if (!rtwvif->in_lps)
-		return;
+	__rtw_leave_lps_deep(rtwdev);
+	__rtw_leave_lps(rtwdev);
+}
 
-	conf->mode = RTW_MODE_ACTIVE;
-	conf->rtwvif = rtwvif;
-	rtwvif->in_lps = false;
+void rtw_leave_lps_deep(struct rtw_dev *rtwdev)
+{
+	lockdep_assert_held(&rtwdev->mutex);
 
-	rtw_leave_lps_core(rtwdev);
+	__rtw_leave_lps_deep(rtwdev);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/ps.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/ps.h
@@ -5,16 +5,20 @@
 #ifndef __RTW_PS_H_
 #define __RTW_PS_H_
 
-#define RTW_LPS_THRESHOLD	2
+#define RTW_LPS_THRESHOLD	50
+
+#define POWER_MODE_ACK		BIT(6)
+#define POWER_MODE_PG		BIT(4)
+#define POWER_MODE_LCLK		BIT(0)
+
+#define LEAVE_LPS_TRY_CNT	5
 
 int rtw_enter_ips(struct rtw_dev *rtwdev);
 int rtw_leave_ips(struct rtw_dev *rtwdev);
 
-void rtw_lps_work(struct work_struct *work);
-void rtw_enter_lps_irqsafe(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif);
-void rtw_leave_lps_irqsafe(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif);
-void rtw_enter_lps(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif);
-void rtw_leave_lps(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif);
-bool rtw_in_lps(struct rtw_dev *rtwdev);
+void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter);
+void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id);
+void rtw_leave_lps(struct rtw_dev *rtwdev);
+void rtw_leave_lps_deep(struct rtw_dev *rtwdev);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/reg.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/reg.h
@@ -6,13 +6,23 @@
 #define __RTW_REG_DEF_H__
 
 #define REG_SYS_FUNC_EN		0x0002
+#define BIT_FEN_EN_25_1		BIT(13)
+#define BIT_FEN_ELDR		BIT(12)
 #define BIT_FEN_CPUEN		BIT(2)
 #define BIT_FEN_BB_GLB_RST	BIT(1)
 #define BIT_FEN_BB_RSTB		BIT(0)
+#define BIT_R_DIS_PRST		BIT(6)
+#define BIT_WLOCK_1C_B6		BIT(5)
 #define REG_SYS_PW_CTRL		0x0004
+#define BIT_PFM_WOWL		BIT(3)
 #define REG_SYS_CLK_CTRL	0x0008
 #define BIT_CPU_CLK_EN		BIT(14)
 
+#define REG_SYS_CLKR		0x0008
+#define BIT_ANA8M		BIT(1)
+#define BIT_WAKEPAD_EN		BIT(3)
+#define BIT_LOADER_CLK_EN	BIT(5)
+
 #define REG_RSV_CTRL		0x001C
 #define DISABLE_PI		0x3
 #define ENABLE_PI		0x2
@@ -31,12 +41,23 @@
 #define BIT_MASK_EF_ADDR	0x3ff
 #define BIT_MASK_EF_DATA	0xff
 #define BITS_EF_ADDR		(BIT_MASK_EF_ADDR << BIT_SHIFT_EF_ADDR)
+#define BITS_PLL		0xf0
+
+#define REG_AFE_CTRL3		0x2c
+#define BIT_MASK_XTAL		0x00FFF000
+#define BIT_XTAL_GMP_BIT4	BIT(28)
 
 #define REG_LDO_EFUSE_CTRL	0x0034
 #define BIT_MASK_EFUSE_BANK_SEL	(BIT(8) | BIT(9))
 
+#define BIT_LDO25_VOLTAGE_V25	0x03
+#define BIT_MASK_LDO25_VOLTAGE	GENMASK(6, 4)
+#define BIT_SHIFT_LDO25_VOLTAGE	4
+#define BIT_LDO25_EN		BIT(7)
+
 #define REG_GPIO_MUXCFG		0x0040
 #define BIT_FSPI_EN		BIT(19)
+#define BIT_EN_SIC		BIT(12)
 #define BIT_BT_AOD_GPIO3	BIT(9)
 #define BIT_BT_PTA_EN		BIT(5)
 #define BIT_WLRFE_4_5_EN	BIT(2)
@@ -46,7 +67,9 @@
 #define BIT_PAPE_SEL_EN		BIT(25)
 #define BIT_DPDT_WL_SEL		BIT(24)
 #define BIT_DPDT_SEL_EN		BIT(23)
+#define REG_LEDCFG2		0x004E
 #define REG_PAD_CTRL1		0x0064
+#define BIT_BT_BTG_SEL		BIT(31)
 #define BIT_PAPE_WLBT_SEL	BIT(29)
 #define BIT_LNAON_WLBT_SEL	BIT(28)
 #define BIT_BTGP_JTAG_EN	BIT(24)
@@ -60,31 +83,56 @@
 #define BIT_DBG_GNT_WL_BT	BIT(27)
 #define BIT_LTE_MUX_CTRL_PATH	BIT(26)
 #define REG_HCI_OPT_CTRL	0x0074
+#define BIT_USB_SUS_DIS		BIT(8)
+
+#define REG_AFE_CTRL_4		0x0078
+#define BIT_CK320M_AFE_EN	BIT(4)
+#define BIT_EN_SYN		BIT(15)
+
+#define REG_LDO_SWR_CTRL	0x007C
+#define LDO_SEL			0xC3
+#define SPS_SEL			0x83
+#define BIT_XTA1		BIT(29)
+#define BIT_XTA0		BIT(28)
 
 #define REG_MCUFW_CTRL		0x0080
 #define BIT_ANA_PORT_EN		BIT(22)
 #define BIT_MAC_PORT_EN		BIT(21)
 #define BIT_BOOT_FSPI_EN	BIT(20)
+#define BIT_ROM_DLEN		BIT(19)
+#define BIT_ROM_PGE		GENMASK(18, 16)	/* legacy only */
+#define BIT_SHIFT_ROM_PGE	16
 #define BIT_FW_INIT_RDY		BIT(15)
 #define BIT_FW_DW_RDY		BIT(14)
 #define BIT_RPWM_TOGGLE		BIT(7)
+#define BIT_RAM_DL_SEL		BIT(7)	/* legacy only */
 #define BIT_DMEM_CHKSUM_OK	BIT(6)
+#define BIT_WINTINI_RDY		BIT(6)	/* legacy only */
 #define BIT_DMEM_DW_OK		BIT(5)
 #define BIT_IMEM_CHKSUM_OK	BIT(4)
 #define BIT_IMEM_DW_OK		BIT(3)
 #define BIT_IMEM_BOOT_LOAD_CHECKSUM_OK BIT(2)
+#define BIT_FWDL_CHK_RPT	BIT(2)	/* legacy only */
+#define BIT_MCUFWDL_RDY		BIT(1)	/* legacy only */
 #define BIT_MCUFWDL_EN		BIT(0)
 #define BIT_CHECK_SUM_OK	(BIT(4) | BIT(6))
 #define FW_READY		(BIT_FW_INIT_RDY | BIT_FW_DW_RDY |             \
 				 BIT_IMEM_DW_OK | BIT_DMEM_DW_OK |             \
 				 BIT_CHECK_SUM_OK)
+#define FW_READY_LEGACY		(BIT_MCUFWDL_RDY | BIT_FWDL_CHK_RPT |	       \
+				 BIT_WINTINI_RDY | BIT_RAM_DL_SEL)
 #define FW_READY_MASK		0xffff
 
+#define REG_EFUSE_ACCESS	0x00CF
+#define EFUSE_ACCESS_ON		0x69
+#define EFUSE_ACCESS_OFF	0x00
+
 #define REG_WLRF1		0x00EC
 #define REG_WIFI_BT_INFO	0x00AA
 #define BIT_BT_INT_EN		BIT(15)
 #define REG_SYS_CFG1		0x00F0
 #define	BIT_RTL_ID		BIT(23)
+#define BIT_LDO			BIT(24)
 #define BIT_RF_TYPE_ID		BIT(27)
 #define BIT_SHIFT_VENDOR_ID	16
 #define BIT_MASK_VENDOR_ID	0xf
@@ -160,8 +208,13 @@
 #define REG_CR			0x0100
 #define REG_TRXFF_BNDY		0x0114
 #define REG_RXFF_BNDY		0x011C
+#define REG_FE1IMR		0x0120
+#define BIT_FS_RXDONE		BIT(16)
 #define REG_PKTBUF_DBG_CTRL	0x0140
 #define REG_C2HEVT		0x01A0
+#define REG_MCUTST_1		0x01C0
+#define REG_MCUTST_II		0x01C4
+#define REG_WOWLAN_WAKE_REASON	0x01C7
 #define REG_HMETFR		0x01CC
 #define REG_HMEBOX0		0x01D0
 #define REG_HMEBOX1		0x01D4
@@ -172,14 +225,42 @@
 #define REG_HMEBOX2_EX		0x01F8
 #define REG_HMEBOX3_EX		0x01FC
 
+#define REG_RQPN		0x0200
+#define BIT_MASK_HPQ		0xff
+#define BIT_SHIFT_HPQ		0
+#define BIT_RQPN_HPQ(x)		(((x) & BIT_MASK_HPQ) << BIT_SHIFT_HPQ)
+#define BIT_MASK_LPQ		0xff
+#define BIT_SHIFT_LPQ		8
+#define BIT_RQPN_LPQ(x)		(((x) & BIT_MASK_LPQ) << BIT_SHIFT_LPQ)
+#define BIT_MASK_PUBQ		0xff
+#define BIT_SHIFT_PUBQ		16
+#define BIT_RQPN_PUBQ(x)	(((x) & BIT_MASK_PUBQ) << BIT_SHIFT_PUBQ)
+#define BIT_RQPN_HLP(h, l, p)	(BIT_LD_RQPN | BIT_RQPN_HPQ(h) |	       \
+				 BIT_RQPN_LPQ(l) | BIT_RQPN_PUBQ(p))
+
 #define REG_FIFOPAGE_CTRL_2	0x0204
 #define BIT_BCN_VALID_V1	BIT(15)
 #define BIT_MASK_BCN_HEAD_1_V1	0xfff
 #define REG_AUTO_LLT_V1		0x0208
 #define BIT_AUTO_INIT_LLT_V1	BIT(0)
+#define REG_DWBCN0_CTRL		0x0208
+#define BIT_BCN_VALID		BIT(16)
 #define REG_TXDMA_OFFSET_CHK	0x020C
+#define BIT_DROP_DATA_EN	BIT(9)
 #define REG_TXDMA_STATUS	0x0210
 #define BTI_PAGE_OVF		BIT(2)
+
+#define REG_RQPN_NPQ		0x0214
+#define BIT_MASK_NPQ		0xff
+#define BIT_SHIFT_NPQ		0
+#define BIT_MASK_EPQ		0xff
+#define BIT_SHIFT_EPQ		16
+#define BIT_RQPN_NPQ(x)		(((x) & BIT_MASK_NPQ) << BIT_SHIFT_NPQ)
+#define BIT_RQPN_EPQ(x)		(((x) & BIT_MASK_EPQ) << BIT_SHIFT_EPQ)
+#define BIT_RQPN_NE(n, e)	(BIT_RQPN_NPQ(n) | BIT_RQPN_EPQ(e))
+
+#define REG_AUTO_LLT		0x0224
+#define BIT_AUTO_INIT_LLT	BIT(16)
 #define REG_RQPN_CTRL_1		0x0228
 #define REG_RQPN_CTRL_2		0x022C
 #define BIT_LD_RQPN		BIT(31)
@@ -192,13 +273,26 @@
 #define REG_H2C_TAIL		0x0248
 #define REG_H2C_READ_ADDR	0x024C
 #define REG_H2C_INFO		0x0254
+#define REG_RXPKT_NUM		0x0284
+#define BIT_RXDMA_REQ		BIT(19)
+#define BIT_RW_RELEASE		BIT(18)
+#define BIT_RXDMA_IDLE		BIT(17)
+#define REG_RXPKTNUM		0x02B0
 
 #define REG_INT_MIG		0x0304
+#define REG_HCI_MIX_CFG		0x03FC
+#define BIT_PCIE_EMAC_PDN_AUX_TO_FAST_CLK BIT(26)
 
+#define REG_BCNQ_INFO		0x0418
+#define BIT_MGQ_CPU_EMPTY	BIT(24)
 #define REG_FWHW_TXQ_CTRL	0x0420
 #define BIT_EN_BCNQ_DL		BIT(22)
 #define BIT_EN_WR_FREE_TAIL	BIT(20)
+#define REG_HWSEQ_CTRL		0x0423
+
 #define REG_BCNQ_BDNY_V1	0x0424
+#define REG_BCNQ_BDNY		0x0424
+#define REG_MGQ_BDNY		0x0425
 #define REG_LIFETIME_EN		0x0426
 #define BIT_BA_PARSER_EN	BIT(5)
 #define REG_SPEC_SIFS		0x0428
@@ -214,6 +308,8 @@
 #define BIT_CHECK_CCK_EN	BIT(7)
 #define REG_AMPDU_MAX_TIME_V1	0x0455
 #define REG_BCNQ1_BDNY_V1	0x0456
+#define REG_AMPDU_MAX_TIME	0x0456
+#define REG_WMAC_LBK_BF_HD	0x045D
 #define REG_TX_HANG_CTRL	0x045E
 #define BIT_EN_GNT_BT_AWAKE	BIT(3)
 #define BIT_EN_EOF_V1		BIT(2)
@@ -228,7 +324,10 @@
 #define REG_QUEUE_CTRL		0x04C6
 #define BIT_PTA_WL_TX_EN	BIT(4)
 #define BIT_PTA_EDCCA_EN	BIT(5)
+#define REG_SINGLE_AMPDU_CTRL	0x04C7
+#define BIT_EN_SINGLE_APMDU	BIT(7)
 #define REG_PROT_MODE_CTRL	0x04C8
+#define REG_MAX_AGGR_NUM	0x04CA
 #define REG_BAR_MODE_CTRL	0x04CC
 #define REG_PRECNT_CTRL		0x04E5
 #define BIT_BTCCA_CTRL		(BIT(0) | BIT(1))
@@ -239,38 +338,51 @@
 #define REG_EDCA_VI_PARAM	0x0504
 #define REG_EDCA_BE_PARAM	0x0508
 #define REG_EDCA_BK_PARAM	0x050C
+#define BIT_MASK_TXOP_LMT	GENMASK(26, 16)
+#define BIT_MASK_CWMAX		GENMASK(15, 12)
+#define BIT_MASK_CWMIN		GENMASK(11, 8)
+#define BIT_MASK_AIFS		GENMASK(7, 0)
 #define REG_PIFS		0x0512
 #define REG_SIFS		0x0514
 #define BIT_SHIFT_SIFS_OFDM_CTX	8
 #define BIT_SHIFT_SIFS_CCK_TRX	16
 #define BIT_SHIFT_SIFS_OFDM_TRX	24
+#define REG_AGGR_BREAK_TIME	0x051A
 #define REG_SLOT		0x051B
 #define REG_TX_PTCL_CTRL	0x0520
+#define BIT_DIS_EDCCA		BIT(15)
 #define BIT_SIFS_BK_EN		BIT(12)
 #define REG_TXPAUSE		0x0522
 #define REG_RD_CTRL		0x0524
+#define BIT_EDCCA_MSK_CNTDOWN_EN BIT(11)
 #define BIT_DIS_TXOP_CFE	BIT(10)
 #define BIT_DIS_LSIG_CFE	BIT(9)
 #define BIT_DIS_STBC_CFE	BIT(8)
 #define REG_TBTT_PROHIBIT	0x0540
 #define BIT_SHIFT_TBTT_HOLD_TIME_AP 8
 #define REG_RD_NAV_NXT		0x0544
+#define REG_NAV_PROT_LEN	0x0546
 #define REG_BCN_CTRL		0x0550
 #define BIT_DIS_TSF_UDT		BIT(4)
 #define BIT_EN_BCN_FUNCTION	BIT(3)
+#define BIT_EN_TXBCN_RPT	BIT(2)
 #define REG_BCN_CTRL_CLINT0	0x0551
 #define REG_DRVERLYINT		0x0558
 #define REG_BCNDMATIM		0x0559
+#define REG_ATIMWND		0x055A
 #define REG_USTIME_TSF		0x055C
 #define REG_BCN_MAX_ERR		0x055D
 #define REG_RXTSF_OFFSET_CCK	0x055E
 #define REG_MISC_CTRL		0x0577
 #define BIT_EN_FREE_CNT		BIT(3)
 #define BIT_DIS_SECOND_CCA	(BIT(0) | BIT(1))
+#define REG_HIQ_NO_LMT_EN	0x5A7
+#define BIT_HIQ_NO_LMT_EN_ROOT	BIT(0)
 #define REG_TIMER0_SRC_SEL	0x05B4
 #define BIT_TSFT_SEL_TIMER0	(BIT(4) | BIT(5) | BIT(6))
 
 #define REG_TCR			0x0604
+#define BIT_PWRMGT_HWDATA_EN	BIT(7)
 #define REG_RCR			0x0608
 #define BIT_APP_FCS		BIT(31)
 #define BIT_APP_MIC		BIT(30)
@@ -291,6 +403,7 @@
 #define BIT_HTC_LOC_CTRL	BIT(14)
 #define BIT_RPFM_CAM_ENABLE	BIT(12)
 #define BIT_TA_BCN		BIT(11)
+#define BIT_RCR_ADF		BIT(11)
 #define BIT_DISDECMYPKT		BIT(10)
 #define BIT_AICV		BIT(9)
 #define BIT_ACRC32		BIT(8)
@@ -305,8 +418,10 @@
 #define REG_RX_PKT_LIMIT	0x060C
 #define REG_RX_DRVINFO_SZ	0x060F
 #define BIT_APP_PHYSTS		BIT(28)
+#define REG_MAR			0x0620
 #define REG_USTIME_EDCA		0x0638
 #define REG_ACKTO_CCK		0x0639
+#define REG_MAC_SPEC_SIFS	0x063A
 #define REG_RESP_SIFS_CCK	0x063C
 #define REG_RESP_SIFS_OFDM	0x063E
 #define REG_ACKTO		0x0640
@@ -317,9 +432,24 @@
 #define BIT_RFMOD_80M		BIT(8)
 #define BIT_RFMOD_40M		BIT(7)
 #define REG_WMAC_TRXPTCL_CTL_H	0x066C
+#define REG_WKFMCAM_CMD		0x0698
+#define BIT_WKFCAM_POLLING_V1	BIT(31)
+#define BIT_WKFCAM_CLR_V1	BIT(30)
+#define BIT_WKFCAM_WE		BIT(16)
+#define BIT_SHIFT_WKFCAM_ADDR_V2	8
+#define BIT_MASK_WKFCAM_ADDR_V2		0xff
+#define BIT_WKFCAM_ADDR_V2(x)						       \
+	(((x) & BIT_MASK_WKFCAM_ADDR_V2) << BIT_SHIFT_WKFCAM_ADDR_V2)
+#define REG_WKFMCAM_RWD         0x069C
+#define BIT_WKFMCAM_VALID	BIT(31)
+#define BIT_WKFMCAM_BC		BIT(26)
+#define BIT_WKFMCAM_MC		BIT(25)
+#define BIT_WKFMCAM_UC		BIT(24)
+
 #define REG_RXFLTMAP0		0x06A0
 #define REG_RXFLTMAP1		0x06A2
 #define REG_RXFLTMAP2		0x06A4
+#define REG_RXFLTMAP4		0x068A
 #define REG_BT_COEX_TABLE0	0x06C0
 #define REG_BT_COEX_TABLE1	0x06C4
 #define REG_BT_COEX_BRK_TABLE	0x06C8
@@ -334,12 +464,19 @@
 #define BIT_LTE_COEX_EN		BIT(7)
 #define REG_BT_STAT_CTRL	0x0778
 #define REG_BT_TDMA_TIME	0x0790
+#define REG_LTR_IDLE_LATENCY	0x0798
+#define REG_LTR_ACTIVE_LATENCY	0x079C
+#define REG_LTR_CTRL_BASIC	0x07A4
 #define REG_WMAC_OPTION_FUNCTION 0x07D0
 #define REG_WMAC_OPTION_FUNCTION_1 0x07D4
 
+#define REG_FPGA0_RFMOD		0x0800
+#define BIT_CCKEN		BIT(24)
+#define BIT_OFDMEN		BIT(25)
 #define REG_RX_GAIN_EN		0x081c
 
 #define REG_RFE_CTRL_E		0x0974
+#define REG_2ND_CCA_CTRL	0x0976
 
 #define REG_DIS_DPD		0x0a70
 #define DIS_DPD_MASK		GENMASK(9, 0)
@@ -478,7 +615,10 @@
 
 #define REG_IGN_GNTBT4	0x4160
 
+#define RF_MODE		0x00
 #define RF_MODOPT	0x01
+#define RF_WLINT	0x01
+#define RF_WLSEL	0x02
 #define RF_DTXLOK	0x08
 #define RF_CFGCH	0x18
 #define RF_RCK		0x1d
@@ -486,9 +626,15 @@
 #define RF_LUTWD1	0x3e
 #define RF_LUTWD0	0x3f
 #define RF_T_METER	0x42
+#define RF_BSPAD	0x54
+#define RF_GAINTX	0x56
+#define RF_TXATANK	0x64
+#define RF_TRXIQ	0x66
+#define RF_RXIQGEN	0x8d
 #define RF_XTALX2	0xb8
 #define RF_MALSEL	0xbe
 #define RF_RCKD		0xde
+#define RF_TXADBG	0xde
 #define RF_LUTDBG	0xdf
 #define RF_LUTWE2	0xee
 #define RF_LUTWE	0xef
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/regd.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/regd.c
@@ -7,6 +7,18 @@
 #include "debug.h"
 #include "phy.h"
 
+static const struct ieee80211_regdomain rtw88_world_regdom = {
+	.n_reg_rules = 5,
+	.alpha2 =  "99",
+	.reg_rules = {
+		REG_RULE(2412 - 10, 2462 + 10, 40, 0, 20, 0),
+		REG_RULE(2467 - 10, 2484 + 10, 40, 0, 20, NL80211_RRF_NO_IR),
+		REG_RULE(5180 - 10, 5240 + 10, 80, 0, 20, NL80211_RRF_NO_IR),
+		REG_RULE(5260 - 10, 5700 + 10, 80, 0, 20,
+			 NL80211_RRF_NO_IR | NL80211_RRF_DFS),
+		REG_RULE(5745 - 10, 5825 + 10, 80, 0, 20, NL80211_RRF_NO_IR),
+	}
+};
 #define COUNTRY_CHPLAN_ENT(_alpha2, _chplan, _txpwr_regd) \
 	{.alpha2 = (_alpha2), \
 	 .chplan = (_chplan), \
@@ -339,12 +351,31 @@
 	return rtw_defined_chplan;
 }
 
+static bool rtw_regd_is_ww(struct rtw_regulatory *reg)
+{
+	if (reg->txpwr_regd == RTW_REGD_WW)
+		return true;
+	return false;
+}
+
 static int rtw_regd_notifier_apply(struct rtw_dev *rtwdev,
 				   struct wiphy *wiphy,
 				   struct regulatory_request *request)
 {
-	if (request->initiator == NL80211_REGDOM_SET_BY_USER)
+	if (request->initiator == NL80211_REGDOM_SET_BY_DRIVER)
+		return -EINVAL;
+	if (request->initiator == NL80211_REGDOM_SET_BY_USER &&
+	    !IS_ENABLED(CONFIG_RTW88_REGD_USER_REG_HINTS))
+		return -EINVAL;
+	if (request->initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE &&
+	    !rtw_regd_is_ww(&rtwdev->regd))
+		return -EINVAL;
+	if (request->initiator == NL80211_REGDOM_SET_BY_CORE &&
+	    !rtwdev->efuse.country_worldwide) {
+		rtwdev->regd =
+			rtw_regd_find_reg_by_name(rtwdev->efuse.country_code);
 		return 0;
+	}
 	rtwdev->regd = rtw_regd_find_reg_by_name(request->alpha2);
 	rtw_regd_apply_world_flags(wiphy, request->initiator);
 
@@ -352,15 +383,22 @@
 }
 
 static int
-rtw_regd_init_wiphy(struct rtw_regulatory *reg, struct wiphy *wiphy,
+rtw_regd_init_wiphy(struct rtw_dev *rtwdev, struct wiphy *wiphy,
 		    void (*reg_notifier)(struct wiphy *wiphy,
 					 struct regulatory_request *request))
 {
+	struct rtw_regulatory *reg = &rtwdev->regd;
+
 	wiphy->reg_notifier = reg_notifier;
 
-	wiphy->regulatory_flags &= ~REGULATORY_CUSTOM_REG;
-	wiphy->regulatory_flags &= ~REGULATORY_STRICT_REG;
-	wiphy->regulatory_flags &= ~REGULATORY_DISABLE_BEACON_HINTS;
+	if (rtw_regd_is_ww(reg)) {
+		rtwdev->efuse.country_worldwide = true;
+		wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG;
+		wiphy_apply_custom_regulatory(wiphy, &rtw88_world_regdom);
+	} else {
+		rtwdev->efuse.country_worldwide = false;
+	}
+	wiphy->regulatory_flags |= REGULATORY_STRICT_REG;
 
 	rtw_regd_apply_hw_cap_flags(wiphy);
 
@@ -377,7 +415,7 @@
 		return -EINVAL;
 
 	rtwdev->regd = rtw_regd_find_reg_by_name(rtwdev->efuse.country_code);
-	rtw_regd_init_wiphy(&rtwdev->regd, wiphy, reg_notifier);
+	rtw_regd_init_wiphy(rtwdev, wiphy, reg_notifier);
 
 	return 0;
 }
@@ -388,11 +426,14 @@
 	struct rtw_dev *rtwdev = hw->priv;
 	struct rtw_hal *hal = &rtwdev->hal;
 
-	rtw_regd_notifier_apply(rtwdev, wiphy, request);
-	rtw_dbg(rtwdev, RTW_DBG_REGD,
-		"get alpha2 %c%c from initiator %d, mapping to chplan 0x%x, txregd %d\n",
-		request->alpha2[0], request->alpha2[1], request->initiator,
-		rtwdev->regd.chplan, rtwdev->regd.txpwr_regd);
+	if (!rtw_regd_notifier_apply(rtwdev, wiphy, request)) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"get alpha2 %c%c from initiator %d, mapping to chplan 0x%x, txregd %d\n",
+			request->alpha2[0], request->alpha2[1],
+			request->initiator, rtwdev->regd.chplan,
+			rtwdev->regd.txpwr_regd);
+		rtw_phy_adaptivity_set_mode(rtwdev);
+	}
 
 	rtw_phy_set_tx_power_level(rtwdev, hal->current_channel);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8723d.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8723d.c
@@ -0,0 +1,2793 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#include "main.h"
+#include "coex.h"
+#include "fw.h"
+#include "tx.h"
+#include "rx.h"
+#include "phy.h"
+#include "rtw8723d.h"
+#include "rtw8723d_table.h"
+#include "mac.h"
+#include "reg.h"
+#include "debug.h"
+
+static const struct rtw_hw_reg rtw8723d_txagc[] = {
+	[DESC_RATE1M]	= { .addr = 0xe08, .mask = 0x0000ff00 },
+	[DESC_RATE2M]	= { .addr = 0x86c, .mask = 0x0000ff00 },
+	[DESC_RATE5_5M]	= { .addr = 0x86c, .mask = 0x00ff0000 },
+	[DESC_RATE11M]	= { .addr = 0x86c, .mask = 0xff000000 },
+	[DESC_RATE6M]	= { .addr = 0xe00, .mask = 0x000000ff },
+	[DESC_RATE9M]	= { .addr = 0xe00, .mask = 0x0000ff00 },
+	[DESC_RATE12M]	= { .addr = 0xe00, .mask = 0x00ff0000 },
+	[DESC_RATE18M]	= { .addr = 0xe00, .mask = 0xff000000 },
+	[DESC_RATE24M]	= { .addr = 0xe04, .mask = 0x000000ff },
+	[DESC_RATE36M]	= { .addr = 0xe04, .mask = 0x0000ff00 },
+	[DESC_RATE48M]	= { .addr = 0xe04, .mask = 0x00ff0000 },
+	[DESC_RATE54M]	= { .addr = 0xe04, .mask = 0xff000000 },
+	[DESC_RATEMCS0]	= { .addr = 0xe10, .mask = 0x000000ff },
+	[DESC_RATEMCS1]	= { .addr = 0xe10, .mask = 0x0000ff00 },
+	[DESC_RATEMCS2]	= { .addr = 0xe10, .mask = 0x00ff0000 },
+	[DESC_RATEMCS3]	= { .addr = 0xe10, .mask = 0xff000000 },
+	[DESC_RATEMCS4]	= { .addr = 0xe14, .mask = 0x000000ff },
+	[DESC_RATEMCS5]	= { .addr = 0xe14, .mask = 0x0000ff00 },
+	[DESC_RATEMCS6]	= { .addr = 0xe14, .mask = 0x00ff0000 },
+	[DESC_RATEMCS7]	= { .addr = 0xe14, .mask = 0xff000000 },
+};
+
+#define WLAN_TXQ_RPT_EN		0x1F
+#define WLAN_SLOT_TIME		0x09
+#define WLAN_RL_VAL		0x3030
+#define WLAN_BAR_VAL		0x0201ffff
+#define BIT_MASK_TBTT_HOLD	0x00000fff
+#define BIT_SHIFT_TBTT_HOLD	8
+#define BIT_MASK_TBTT_SETUP	0x000000ff
+#define BIT_SHIFT_TBTT_SETUP	0
+#define BIT_MASK_TBTT_MASK	((BIT_MASK_TBTT_HOLD << BIT_SHIFT_TBTT_HOLD) | \
+				 (BIT_MASK_TBTT_SETUP << BIT_SHIFT_TBTT_SETUP))
+#define TBTT_TIME(s, h)((((s) & BIT_MASK_TBTT_SETUP) << BIT_SHIFT_TBTT_SETUP) |\
+			(((h) & BIT_MASK_TBTT_HOLD) << BIT_SHIFT_TBTT_HOLD))
+#define WLAN_TBTT_TIME_NORMAL	TBTT_TIME(0x04, 0x80)
+#define WLAN_TBTT_TIME_STOP_BCN	TBTT_TIME(0x04, 0x64)
+#define WLAN_PIFS_VAL		0
+#define WLAN_AGG_BRK_TIME	0x16
+#define WLAN_NAV_PROT_LEN	0x0040
+#define WLAN_SPEC_SIFS		0x100a
+#define WLAN_RX_PKT_LIMIT	0x17
+#define WLAN_MAX_AGG_NR		0x0A
+#define WLAN_AMPDU_MAX_TIME	0x1C
+#define WLAN_ANT_SEL		0x82
+#define WLAN_LTR_IDLE_LAT	0x90039003
+#define WLAN_LTR_ACT_LAT	0x883c883c
+#define WLAN_LTR_CTRL1		0xCB004010
+#define WLAN_LTR_CTRL2		0x01233425
+
+static void rtw8723d_lck(struct rtw_dev *rtwdev)
+{
+#define BIT_LCK		BIT(15)
+	u8 val_ctx;
+	u32 lc_cal, cnt;
+
+	val_ctx = rtw_read8(rtwdev, REG_CTX);
+	if ((val_ctx & BIT_MASK_CTX_TYPE) != 0)
+		rtw_write8(rtwdev, REG_CTX, val_ctx & ~BIT_MASK_CTX_TYPE);
+	else
+		rtw_write8(rtwdev, REG_TXPAUSE, 0xFF);
+	lc_cal = rtw_read_rf(rtwdev, RF_PATH_A, RF_CFGCH, RFREG_MASK);
+
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_CFGCH, RFREG_MASK, lc_cal | BIT_LCK);
+	for (cnt = 0; cnt < 100; cnt++) {
+		if (rtw_read_rf(rtwdev, RF_PATH_A, RF_CFGCH, BIT_LCK) != 0x1)
+			break;
+		mdelay(10);
+	}
+
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_CFGCH, RFREG_MASK, lc_cal);
+	if ((val_ctx & BIT_MASK_CTX_TYPE) != 0)
+		rtw_write8(rtwdev, REG_CTX, val_ctx);
+	else
+		rtw_write8(rtwdev, REG_TXPAUSE, 0x00);
+}
+
+#define RTW_DEF_OFDM_SWING_INDEX	28
+#define RTW_OFDM_SWING_TABLE_SIZE	43
+#define OFDM_SWING_A(swing)	((swing) & 0x000003FF)
+#define OFDM_SWING_B(swing)	(((swing) & 0x0000FC00) >> 10)
+#define OFDM_SWING_C(swing)	(((swing) & 0x003F0000) >> 16)
+#define OFDM_SWING_D(swing)	(((swing) & 0xFFC00000) >> 22)
+static const u32 rtw8723d_ofdm_swing_table[] = {
+	0x0b40002d, 0x0c000030, 0x0cc00033, 0x0d800036, 0x0e400039, 0x0f00003c,
+	0x10000040, 0x11000044, 0x12000048, 0x1300004c, 0x14400051, 0x15800056,
+	0x16c0005b, 0x18000060, 0x19800066, 0x1b00006c, 0x1c800072, 0x1e400079,
+	0x20000080, 0x22000088, 0x24000090, 0x26000098, 0x288000a2, 0x2ac000ab,
+	0x2d4000b5, 0x300000c0, 0x32c000cb, 0x35c000d7, 0x390000e4, 0x3c8000f2,
+	0x40000100, 0x43c0010f, 0x47c0011f, 0x4c000130, 0x50800142, 0x55400155,
+	0x5a400169, 0x5fc0017f, 0x65400195, 0x6b8001ae, 0x71c001c7, 0x788001e2,
+	0x7f8001fe,
+};
+
+#define RTW_DEF_CCK_SWING_INDEX	28
+#define RTW_CCK_TABLE_SIZE	41
+static const u32 rtw8723d_cck_swing_table[] = {
+	0x0CD, 0x0D9, 0x0E6, 0x0F3, 0x102, 0x111, 0x121, 0x132, 0x144, 0x158,
+	0x16C, 0x182, 0x198, 0x1B1, 0x1CA, 0x1E5, 0x202, 0x221, 0x241, 0x263,
+	0x287, 0x2AE, 0x2D6, 0x301, 0x32F, 0x35F, 0x392, 0x3C9, 0x402, 0x43F,
+	0x47F, 0x4C3, 0x50C, 0x558, 0x5A9, 0x5FF, 0x65A, 0x6BA, 0x720, 0x78C,
+	0x7FF,
+};
+
+static_assert(ARRAY_SIZE(rtw8723d_ofdm_swing_table) == RTW_OFDM_SWING_TABLE_SIZE);
+static_assert(ARRAY_SIZE(rtw8723d_cck_swing_table) == RTW_CCK_TABLE_SIZE);
+
+static void rtw8723d_pwrtrack_init(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 path;
+
+	dm_info->default_ofdm_index = RTW_DEF_OFDM_SWING_INDEX;
+
+	for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++) {
+		ewma_thermal_init(&dm_info->avg_thermal[path]);
+		dm_info->delta_power_index[path] = 0;
+	}
+	dm_info->pwr_trk_triggered = false;
+	dm_info->pwr_trk_init_trigger = true;
+	dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
+	dm_info->txagc_remnant_cck = 0;
+	dm_info->txagc_remnant_ofdm = 0;
+}
+
+static void rtw8723d_phy_set_param(struct rtw_dev *rtwdev)
+{
+	u8 xtal_cap;
+	u32 val32;
+
+	/* power on BB/RF domain */
+	rtw_write16_set(rtwdev, REG_SYS_FUNC_EN,
+			BIT_FEN_EN_25_1 | BIT_FEN_BB_GLB_RST | BIT_FEN_BB_RSTB);
+	rtw_write8_set(rtwdev, REG_RF_CTRL,
+		       BIT_RF_EN | BIT_RF_RSTB | BIT_RF_SDM_RSTB);
+	rtw_write8(rtwdev, REG_AFE_CTRL1 + 1, 0x80);
+
+	rtw_phy_load_tables(rtwdev);
+
+	/* post init after header files config */
+	rtw_write32_clr(rtwdev, REG_RCR, BIT_RCR_ADF);
+	rtw_write8_set(rtwdev, REG_HIQ_NO_LMT_EN, BIT_HIQ_NO_LMT_EN_ROOT);
+	rtw_write16_set(rtwdev, REG_AFE_CTRL_4, BIT_CK320M_AFE_EN | BIT_EN_SYN);
+
+	xtal_cap = rtwdev->efuse.crystal_cap & 0x3F;
+	rtw_write32_mask(rtwdev, REG_AFE_CTRL3, BIT_MASK_XTAL,
+			 xtal_cap | (xtal_cap << 6));
+	rtw_write32_set(rtwdev, REG_FPGA0_RFMOD, BIT_CCKEN | BIT_OFDMEN);
+	if ((rtwdev->efuse.afe >> 4) == 14) {
+		rtw_write32_set(rtwdev, REG_AFE_CTRL3, BIT_XTAL_GMP_BIT4);
+		rtw_write32_clr(rtwdev, REG_AFE_CTRL1, BITS_PLL);
+		rtw_write32_set(rtwdev, REG_LDO_SWR_CTRL, BIT_XTA1);
+		rtw_write32_clr(rtwdev, REG_LDO_SWR_CTRL, BIT_XTA0);
+	}
+
+	rtw_write8(rtwdev, REG_SLOT, WLAN_SLOT_TIME);
+	rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 1, WLAN_TXQ_RPT_EN);
+	rtw_write16(rtwdev, REG_RETRY_LIMIT, WLAN_RL_VAL);
+	rtw_write32(rtwdev, REG_BAR_MODE_CTRL, WLAN_BAR_VAL);
+	rtw_write8(rtwdev, REG_ATIMWND, 0x2);
+	rtw_write8(rtwdev, REG_BCN_CTRL,
+		   BIT_DIS_TSF_UDT | BIT_EN_BCN_FUNCTION | BIT_EN_TXBCN_RPT);
+	val32 = rtw_read32(rtwdev, REG_TBTT_PROHIBIT);
+	val32 &= ~BIT_MASK_TBTT_MASK;
+	val32 |= WLAN_TBTT_TIME_STOP_BCN;
+	rtw_write8(rtwdev, REG_TBTT_PROHIBIT, val32);
+	rtw_write8(rtwdev, REG_PIFS, WLAN_PIFS_VAL);
+	rtw_write8(rtwdev, REG_AGGR_BREAK_TIME, WLAN_AGG_BRK_TIME);
+	rtw_write16(rtwdev, REG_NAV_PROT_LEN, WLAN_NAV_PROT_LEN);
+	rtw_write16(rtwdev, REG_MAC_SPEC_SIFS, WLAN_SPEC_SIFS);
+	rtw_write16(rtwdev, REG_SIFS, WLAN_SPEC_SIFS);
+	rtw_write16(rtwdev, REG_SIFS + 2, WLAN_SPEC_SIFS);
+	rtw_write8(rtwdev, REG_SINGLE_AMPDU_CTRL, BIT_EN_SINGLE_APMDU);
+	rtw_write8(rtwdev, REG_RX_PKT_LIMIT, WLAN_RX_PKT_LIMIT);
+	rtw_write8(rtwdev, REG_MAX_AGGR_NUM, WLAN_MAX_AGG_NR);
+	rtw_write8(rtwdev, REG_AMPDU_MAX_TIME, WLAN_AMPDU_MAX_TIME);
+	rtw_write8(rtwdev, REG_LEDCFG2, WLAN_ANT_SEL);
+
+	rtw_write32(rtwdev, REG_LTR_IDLE_LATENCY, WLAN_LTR_IDLE_LAT);
+	rtw_write32(rtwdev, REG_LTR_ACTIVE_LATENCY, WLAN_LTR_ACT_LAT);
+	rtw_write32(rtwdev, REG_LTR_CTRL_BASIC, WLAN_LTR_CTRL1);
+	rtw_write32(rtwdev, REG_LTR_CTRL_BASIC + 4, WLAN_LTR_CTRL2);
+
+	rtw_phy_init(rtwdev);
+
+	rtw_write16_set(rtwdev, REG_TXDMA_OFFSET_CHK, BIT_DROP_DATA_EN);
+
+	rtw8723d_lck(rtwdev);
+
+	rtw_write32_mask(rtwdev, REG_OFDM0_XAAGC1, MASKBYTE0, 0x50);
+	rtw_write32_mask(rtwdev, REG_OFDM0_XAAGC1, MASKBYTE0, 0x20);
+
+	rtw8723d_pwrtrack_init(rtwdev);
+}
+
+static void rtw8723de_efuse_parsing(struct rtw_efuse *efuse,
+				    struct rtw8723d_efuse *map)
+{
+	ether_addr_copy(efuse->addr, map->e.mac_addr);
+}
+
+static int rtw8723d_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+{
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct rtw8723d_efuse *map;
+	int i;
+
+	map = (struct rtw8723d_efuse *)log_map;
+
+	efuse->rfe_option = 0;
+	efuse->rf_board_option = map->rf_board_option;
+	efuse->crystal_cap = map->xtal_k;
+	efuse->pa_type_2g = map->pa_type;
+	efuse->lna_type_2g = map->lna_type_2g[0];
+	efuse->channel_plan = map->channel_plan;
+	efuse->country_code[0] = map->country_code[0];
+	efuse->country_code[1] = map->country_code[1];
+	efuse->bt_setting = map->rf_bt_setting;
+	efuse->regd = map->rf_board_option & 0x7;
+	efuse->thermal_meter[0] = map->thermal_meter;
+	efuse->thermal_meter_k = map->thermal_meter;
+	efuse->afe = map->afe;
+
+	for (i = 0; i < 4; i++)
+		efuse->txpwr_idx_table[i] = map->txpwr_idx_table[i];
+
+	switch (rtw_hci_type(rtwdev)) {
+	case RTW_HCI_TYPE_PCIE:
+		rtw8723de_efuse_parsing(efuse, map);
+		break;
+	default:
+		/* unsupported now */
+		return -ENOTSUPP;
+	}
+
+	return 0;
+}
+
+static void query_phy_status_page0(struct rtw_dev *rtwdev, u8 *phy_status,
+				   struct rtw_rx_pkt_stat *pkt_stat)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s8 min_rx_power = -120;
+	u8 pwdb = GET_PHY_STAT_P0_PWDB(phy_status);
+
+	pkt_stat->rx_power[RF_PATH_A] = pwdb - 97;
+	pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1);
+	pkt_stat->bw = RTW_CHANNEL_WIDTH_20;
+	pkt_stat->signal_power = max(pkt_stat->rx_power[RF_PATH_A],
+				     min_rx_power);
+	dm_info->rssi[RF_PATH_A] = pkt_stat->rssi;
+}
+
+static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status,
+				   struct rtw_rx_pkt_stat *pkt_stat)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 rxsc, bw;
+	s8 min_rx_power = -120;
+	s8 rx_evm;
+
+	if (pkt_stat->rate > DESC_RATE11M && pkt_stat->rate < DESC_RATEMCS0)
+		rxsc = GET_PHY_STAT_P1_L_RXSC(phy_status);
+	else
+		rxsc = GET_PHY_STAT_P1_HT_RXSC(phy_status);
+
+	if (GET_PHY_STAT_P1_RF_MODE(phy_status) == 0)
+		bw = RTW_CHANNEL_WIDTH_20;
+	else if ((rxsc == 1) || (rxsc == 2))
+		bw = RTW_CHANNEL_WIDTH_20;
+	else
+		bw = RTW_CHANNEL_WIDTH_40;
+
+	pkt_stat->rx_power[RF_PATH_A] = GET_PHY_STAT_P1_PWDB_A(phy_status) - 110;
+	pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1);
+	pkt_stat->bw = bw;
+	pkt_stat->signal_power = max(pkt_stat->rx_power[RF_PATH_A],
+				     min_rx_power);
+	pkt_stat->rx_evm[RF_PATH_A] = GET_PHY_STAT_P1_RXEVM_A(phy_status);
+	pkt_stat->rx_snr[RF_PATH_A] = GET_PHY_STAT_P1_RXSNR_A(phy_status);
+	pkt_stat->cfo_tail[RF_PATH_A] = GET_PHY_STAT_P1_CFO_TAIL_A(phy_status);
+
+	dm_info->curr_rx_rate = pkt_stat->rate;
+	dm_info->rssi[RF_PATH_A] = pkt_stat->rssi;
+	dm_info->rx_snr[RF_PATH_A] = pkt_stat->rx_snr[RF_PATH_A] >> 1;
+	dm_info->cfo_tail[RF_PATH_A] = (pkt_stat->cfo_tail[RF_PATH_A] * 5) >> 1;
+
+	rx_evm = clamp_t(s8, -pkt_stat->rx_evm[RF_PATH_A] >> 1, 0, 64);
+	rx_evm &= 0x3F;	/* 64->0: second path of 1SS rate is 64 */
+	dm_info->rx_evm_dbm[RF_PATH_A] = rx_evm;
+}
+
+static void query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status,
+			     struct rtw_rx_pkt_stat *pkt_stat)
+{
+	u8 page;
+
+	page = *phy_status & 0xf;
+
+	switch (page) {
+	case 0:
+		query_phy_status_page0(rtwdev, phy_status, pkt_stat);
+		break;
+	case 1:
+		query_phy_status_page1(rtwdev, phy_status, pkt_stat);
+		break;
+	default:
+		rtw_warn(rtwdev, "unused phy status page (%d)\n", page);
+		return;
+	}
+}
+
+static void rtw8723d_query_rx_desc(struct rtw_dev *rtwdev, u8 *rx_desc,
+				   struct rtw_rx_pkt_stat *pkt_stat,
+				   struct ieee80211_rx_status *rx_status)
+{
+	struct ieee80211_hdr *hdr;
+	u32 desc_sz = rtwdev->chip->rx_pkt_desc_sz;
+	u8 *phy_status = NULL;
+
+	memset(pkt_stat, 0, sizeof(*pkt_stat));
+
+	pkt_stat->phy_status = GET_RX_DESC_PHYST(rx_desc);
+	pkt_stat->icv_err = GET_RX_DESC_ICV_ERR(rx_desc);
+	pkt_stat->crc_err = GET_RX_DESC_CRC32(rx_desc);
+	pkt_stat->decrypted = !GET_RX_DESC_SWDEC(rx_desc) &&
+			      GET_RX_DESC_ENC_TYPE(rx_desc) != RX_DESC_ENC_NONE;
+	pkt_stat->is_c2h = GET_RX_DESC_C2H(rx_desc);
+	pkt_stat->pkt_len = GET_RX_DESC_PKT_LEN(rx_desc);
+	pkt_stat->drv_info_sz = GET_RX_DESC_DRV_INFO_SIZE(rx_desc);
+	pkt_stat->shift = GET_RX_DESC_SHIFT(rx_desc);
+	pkt_stat->rate = GET_RX_DESC_RX_RATE(rx_desc);
+	pkt_stat->cam_id = GET_RX_DESC_MACID(rx_desc);
+	pkt_stat->ppdu_cnt = 0;
+	pkt_stat->tsf_low = GET_RX_DESC_TSFL(rx_desc);
+
+	/* drv_info_sz is in unit of 8-bytes */
+	pkt_stat->drv_info_sz *= 8;
+
+	/* c2h cmd pkt's rx/phy status is not interested */
+	if (pkt_stat->is_c2h)
+		return;
+
+	hdr = (struct ieee80211_hdr *)(rx_desc + desc_sz + pkt_stat->shift +
+				       pkt_stat->drv_info_sz);
+	if (pkt_stat->phy_status) {
+		phy_status = rx_desc + desc_sz + pkt_stat->shift;
+		query_phy_status(rtwdev, phy_status, pkt_stat);
+	}
+
+	rtw_rx_fill_rx_status(rtwdev, pkt_stat, hdr, rx_status, phy_status);
+}
+
+static
+bool rtw8723d_check_spur_ov_thres(struct rtw_dev *rtwdev, u8 channel, u32 thres)
+{
+#define DIS_3WIRE	0xccf000c0
+#define EN_3WIRE	0xccc000c0
+#define START_PSD	0x400000
+#define FREQ_CH13	0xFCCD
+#define FREQ_CH14	0xFF9A
+
+	u32 freq;
+	bool ret = false;
+
+	if (channel == 13)
+		freq = FREQ_CH13;
+	else if (channel == 14)
+		freq = FREQ_CH14;
+	else
+		return false;
+
+	rtw_write32(rtwdev, REG_ANALOG_P4, DIS_3WIRE);
+	rtw_write32(rtwdev, REG_PSDFN, freq);
+	rtw_write32(rtwdev, REG_PSDFN, START_PSD | freq);
+
+	msleep(30);
+	if (rtw_read32(rtwdev, REG_PSDRPT) >= thres)
+		ret = true;
+
+	rtw_write32(rtwdev, REG_PSDFN, freq);
+	rtw_write32(rtwdev, REG_ANALOG_P4, EN_3WIRE);
+
+	return ret;
+}
+
+static void rtw8723d_cfg_notch(struct rtw_dev *rtwdev, u8 channel, bool notch)
+{
+#define BIT_MASK_RXDSP	(BIT(28) | BIT(27) | BIT(26) | BIT(25) | BIT(24))
+#define BIT_EN_RXDSP	BIT(9)
+#define BIT_EN_CFOTRK	BIT(28)
+
+	if (!notch)
+		goto no_notch;
+
+	switch (channel) {
+	case 13:
+		rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_MASK_RXDSP, 0xB);
+		rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_EN_RXDSP, 0x1);
+		rtw_write32(rtwdev, REG_OFDM1_CSI1, 0x04000000);
+		rtw_write32(rtwdev, REG_OFDM1_CSI2, 0x00000000);
+		rtw_write32(rtwdev, REG_OFDM1_CSI3, 0x00000000);
+		rtw_write32(rtwdev, REG_OFDM1_CSI4, 0x00000000);
+		rtw_write32_mask(rtwdev, REG_OFDM1_CFOTRK, BIT_EN_CFOTRK, 0x1);
+		break;
+	case 14:
+		rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_MASK_RXDSP, 0x5);
+		rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_EN_RXDSP, 0x1);
+		rtw_write32(rtwdev, REG_OFDM1_CSI1, 0x00000000);
+		rtw_write32(rtwdev, REG_OFDM1_CSI2, 0x00000000);
+		rtw_write32(rtwdev, REG_OFDM1_CSI3, 0x00000000);
+		rtw_write32(rtwdev, REG_OFDM1_CSI4, 0x00080000);
+		rtw_write32_mask(rtwdev, REG_OFDM1_CFOTRK, BIT_EN_CFOTRK, 0x1);
+		break;
+	default:
+		rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_EN_RXDSP, 0x0);
+		rtw_write32_mask(rtwdev, REG_OFDM1_CFOTRK, BIT_EN_CFOTRK, 0x0);
+		break;
+	}
+
+	return;
+
+no_notch:
+	rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_MASK_RXDSP, 0x1f);
+	rtw_write32_mask(rtwdev, REG_OFDM0_RXDSP, BIT_EN_RXDSP, 0x0);
+	rtw_write32(rtwdev, REG_OFDM1_CSI1, 0x00000000);
+	rtw_write32(rtwdev, REG_OFDM1_CSI2, 0x00000000);
+	rtw_write32(rtwdev, REG_OFDM1_CSI3, 0x00000000);
+	rtw_write32(rtwdev, REG_OFDM1_CSI4, 0x00000000);
+	rtw_write32_mask(rtwdev, REG_OFDM1_CFOTRK, BIT_EN_CFOTRK, 0x0);
+}
+
+static void rtw8723d_spur_cal(struct rtw_dev *rtwdev, u8 channel)
+{
+#define SPUR_THRES	0x16
+	bool notch = false;
+
+	if (channel < 13)
+		goto do_notch;
+
+	notch = rtw8723d_check_spur_ov_thres(rtwdev, channel, SPUR_THRES);
+
+do_notch:
+	rtw8723d_cfg_notch(rtwdev, channel, notch);
+}
+
+static void rtw8723d_set_channel_rf(struct rtw_dev *rtwdev, u8 channel, u8 bw)
+{
+#define RFCFGCH_CHANNEL_MASK	GENMASK(7, 0)
+#define RFCFGCH_BW_MASK		(BIT(11) | BIT(10))
+#define RFCFGCH_BW_20M		(BIT(11) | BIT(10))
+#define RFCFGCH_BW_40M		(BIT(10))
+
+	u32 rf_cfgch[2];
+
+	rf_cfgch[0] = rtw_read_rf(rtwdev, RF_PATH_A, RF_CFGCH, RFREG_MASK);
+	rf_cfgch[1] = rtw_read_rf(rtwdev, RF_PATH_B, RF_CFGCH, RFREG_MASK);
+
+	rf_cfgch[0] &= ~RFCFGCH_CHANNEL_MASK;
+	rf_cfgch[1] &= ~RFCFGCH_CHANNEL_MASK;
+	rf_cfgch[0] |= (channel & RFCFGCH_CHANNEL_MASK);
+	rf_cfgch[1] |= (channel & RFCFGCH_CHANNEL_MASK);
+
+	rf_cfgch[0] &= ~RFCFGCH_BW_MASK;
+	switch (bw) {
+	case RTW_CHANNEL_WIDTH_20:
+		rf_cfgch[0] |= RFCFGCH_BW_20M;
+		break;
+	case RTW_CHANNEL_WIDTH_40:
+		rf_cfgch[0] |= RFCFGCH_BW_40M;
+		break;
+	default:
+		break;
+	}
+
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_CFGCH, RFREG_MASK, rf_cfgch[0]);
+	rtw_write_rf(rtwdev, RF_PATH_B, RF_CFGCH, RFREG_MASK, rf_cfgch[1]);
+
+	rtw8723d_spur_cal(rtwdev, channel);
+}
+
+#define CCK_DFIR_NR	3
+static const struct rtw_backup_info cck_dfir_cfg[][CCK_DFIR_NR] = {
+	[0] = {
+		{ .len = 4, .reg = 0xA24, .val = 0x64B80C1C },
+		{ .len = 4, .reg = 0xA28, .val = 0x00008810 },
+		{ .len = 4, .reg = 0xAAC, .val = 0x01235667 },
+	},
+	[1] = {
+		{ .len = 4, .reg = 0xA24, .val = 0x0000B81C },
+		{ .len = 4, .reg = 0xA28, .val = 0x00000000 },
+		{ .len = 4, .reg = 0xAAC, .val = 0x00003667 },
+	},
+};
+
+static void rtw8723d_set_channel_bb(struct rtw_dev *rtwdev, u8 channel, u8 bw,
+				    u8 primary_ch_idx)
+{
+#define BIT_CCK_SIDE_BAND	BIT(4)
+#define BIT_MASK_RFMOD		BIT(0)
+#define BIT_RXBB_DFIR_EN	BIT(19)
+#define BIT_MASK_RXBB_DFIR	(BIT(27) | BIT(26) | BIT(25) | BIT(24))
+
+	const struct rtw_backup_info *cck_dfir =
+			channel <= 13 ? cck_dfir_cfg[0] : cck_dfir_cfg[1];
+	int i;
+
+	for (i = 0; i < CCK_DFIR_NR; i++, cck_dfir++)
+		rtw_write32(rtwdev, cck_dfir->reg, cck_dfir->val);
+
+	switch (bw) {
+	case RTW_CHANNEL_WIDTH_20:
+		rtw_write32_mask(rtwdev, REG_FPGA0_RFMOD, BIT_MASK_RFMOD, 0x0);
+		rtw_write32_mask(rtwdev, REG_FPGA1_RFMOD, BIT_MASK_RFMOD, 0x0);
+		rtw_write32_mask(rtwdev, REG_BBRX_DFIR, BIT_RXBB_DFIR_EN, 1);
+		rtw_write32_mask(rtwdev, REG_BBRX_DFIR, BIT_MASK_RXBB_DFIR, 0xa);
+		break;
+	case RTW_CHANNEL_WIDTH_40:
+		rtw_write32_mask(rtwdev, REG_FPGA0_RFMOD, BIT_MASK_RFMOD, 0x1);
+		rtw_write32_mask(rtwdev, REG_FPGA1_RFMOD, BIT_MASK_RFMOD, 0x1);
+		rtw_write32_mask(rtwdev, REG_BBRX_DFIR, BIT_RXBB_DFIR_EN, 0);
+		rtw_write32_mask(rtwdev, REG_CCK0_SYS, BIT_CCK_SIDE_BAND,
+				 (primary_ch_idx == RTW_SC_20_UPPER ? 1 : 0));
+		break;
+	default:
+		break;
+	}
+}
+
+static void rtw8723d_set_channel(struct rtw_dev *rtwdev, u8 channel, u8 bw,
+				 u8 primary_chan_idx)
+{
+	rtw8723d_set_channel_rf(rtwdev, channel, bw);
+	rtw_set_channel_mac(rtwdev, channel, bw, primary_chan_idx);
+	rtw8723d_set_channel_bb(rtwdev, channel, bw, primary_chan_idx);
+}
+
+#define BIT_CFENDFORM		BIT(9)
+#define BIT_WMAC_TCR_ERR0	BIT(12)
+#define BIT_WMAC_TCR_ERR1	BIT(13)
+#define BIT_TCR_CFG		(BIT_CFENDFORM | BIT_WMAC_TCR_ERR0 |	       \
+				 BIT_WMAC_TCR_ERR1)
+#define WLAN_RX_FILTER0		0xFFFF
+#define WLAN_RX_FILTER1		0x400
+#define WLAN_RX_FILTER2		0xFFFF
+#define WLAN_RCR_CFG		0x700060CE
+
+static int rtw8723d_mac_init(struct rtw_dev *rtwdev)
+{
+	rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 1, WLAN_TXQ_RPT_EN);
+	rtw_write32(rtwdev, REG_TCR, BIT_TCR_CFG);
+
+	rtw_write16(rtwdev, REG_RXFLTMAP0, WLAN_RX_FILTER0);
+	rtw_write16(rtwdev, REG_RXFLTMAP1, WLAN_RX_FILTER1);
+	rtw_write16(rtwdev, REG_RXFLTMAP2, WLAN_RX_FILTER2);
+	rtw_write32(rtwdev, REG_RCR, WLAN_RCR_CFG);
+
+	rtw_write32(rtwdev, REG_INT_MIG, 0);
+	rtw_write32(rtwdev, REG_MCUTST_1, 0x0);
+
+	rtw_write8(rtwdev, REG_MISC_CTRL, BIT_DIS_SECOND_CCA);
+	rtw_write8(rtwdev, REG_2ND_CCA_CTRL, 0);
+
+	return 0;
+}
+
+static void rtw8723d_shutdown(struct rtw_dev *rtwdev)
+{
+	rtw_write16_set(rtwdev, REG_HCI_OPT_CTRL, BIT_USB_SUS_DIS);
+}
+
+static void rtw8723d_cfg_ldo25(struct rtw_dev *rtwdev, bool enable)
+{
+	u8 ldo_pwr;
+
+	ldo_pwr = rtw_read8(rtwdev, REG_LDO_EFUSE_CTRL + 3);
+	if (enable) {
+		ldo_pwr &= ~BIT_MASK_LDO25_VOLTAGE;
+		ldo_pwr = (BIT_LDO25_VOLTAGE_V25 << 4) | BIT_LDO25_EN;
+	} else {
+		ldo_pwr &= ~BIT_LDO25_EN;
+	}
+	rtw_write8(rtwdev, REG_LDO_EFUSE_CTRL + 3, ldo_pwr);
+}
+
+static void
+rtw8723d_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	const struct rtw_hw_reg *txagc;
+	u8 rate, pwr_index;
+	int j;
+
+	for (j = 0; j < rtw_rate_size[rs]; j++) {
+		rate = rtw_rate_section[rs][j];
+		pwr_index = hal->tx_pwr_tbl[path][rate];
+
+		if (rate >= ARRAY_SIZE(rtw8723d_txagc)) {
+			rtw_warn(rtwdev, "rate 0x%x isn't supported\n", rate);
+			continue;
+		}
+		txagc = &rtw8723d_txagc[rate];
+		if (!txagc->addr) {
+			rtw_warn(rtwdev, "rate 0x%x isn't defined\n", rate);
+			continue;
+		}
+
+		rtw_write32_mask(rtwdev, txagc->addr, txagc->mask, pwr_index);
+	}
+}
+
+static void rtw8723d_set_tx_power_index(struct rtw_dev *rtwdev)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	int rs, path;
+
+	for (path = 0; path < hal->rf_path_num; path++) {
+		for (rs = 0; rs <= RTW_RATE_SECTION_HT_1S; rs++)
+			rtw8723d_set_tx_power_index_by_rate(rtwdev, path, rs);
+	}
+}
+
+static void rtw8723d_efuse_grant(struct rtw_dev *rtwdev, bool on)
+{
+	if (on) {
+		rtw_write8(rtwdev, REG_EFUSE_ACCESS, EFUSE_ACCESS_ON);
+
+		rtw_write16_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_ELDR);
+		rtw_write16_set(rtwdev, REG_SYS_CLKR, BIT_LOADER_CLK_EN | BIT_ANA8M);
+	} else {
+		rtw_write8(rtwdev, REG_EFUSE_ACCESS, EFUSE_ACCESS_OFF);
+	}
+}
+
+static void rtw8723d_false_alarm_statistics(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u32 cck_fa_cnt;
+	u32 ofdm_fa_cnt;
+	u32 crc32_cnt;
+	u32 val32;
+
+	/* hold counter */
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_HOLDC_11N, BIT_MASK_OFDM_FA_KEEP, 1);
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_RSTD_11N, BIT_MASK_OFDM_FA_KEEP1, 1);
+	rtw_write32_mask(rtwdev, REG_CCK_FA_RST_11N, BIT_MASK_CCK_CNT_KEEP, 1);
+	rtw_write32_mask(rtwdev, REG_CCK_FA_RST_11N, BIT_MASK_CCK_FA_KEEP, 1);
+
+	cck_fa_cnt = rtw_read32_mask(rtwdev, REG_CCK_FA_LSB_11N, MASKBYTE0);
+	cck_fa_cnt += rtw_read32_mask(rtwdev, REG_CCK_FA_MSB_11N, MASKBYTE3) << 8;
+
+	val32 = rtw_read32(rtwdev, REG_OFDM_FA_TYPE1_11N);
+	ofdm_fa_cnt = u32_get_bits(val32, BIT_MASK_OFDM_FF_CNT);
+	ofdm_fa_cnt += u32_get_bits(val32, BIT_MASK_OFDM_SF_CNT);
+	val32 = rtw_read32(rtwdev, REG_OFDM_FA_TYPE2_11N);
+	dm_info->ofdm_cca_cnt = u32_get_bits(val32, BIT_MASK_OFDM_CCA_CNT);
+	ofdm_fa_cnt += u32_get_bits(val32, BIT_MASK_OFDM_PF_CNT);
+	val32 = rtw_read32(rtwdev, REG_OFDM_FA_TYPE3_11N);
+	ofdm_fa_cnt += u32_get_bits(val32, BIT_MASK_OFDM_RI_CNT);
+	ofdm_fa_cnt += u32_get_bits(val32, BIT_MASK_OFDM_CRC_CNT);
+	val32 = rtw_read32(rtwdev, REG_OFDM_FA_TYPE4_11N);
+	ofdm_fa_cnt += u32_get_bits(val32, BIT_MASK_OFDM_MNS_CNT);
+
+	dm_info->cck_fa_cnt = cck_fa_cnt;
+	dm_info->ofdm_fa_cnt = ofdm_fa_cnt;
+	dm_info->total_fa_cnt = cck_fa_cnt + ofdm_fa_cnt;
+
+	dm_info->cck_err_cnt = rtw_read32(rtwdev, REG_IGI_C_11N);
+	dm_info->cck_ok_cnt = rtw_read32(rtwdev, REG_IGI_D_11N);
+	crc32_cnt = rtw_read32(rtwdev, REG_OFDM_CRC32_CNT_11N);
+	dm_info->ofdm_err_cnt = u32_get_bits(crc32_cnt, BIT_MASK_OFDM_LCRC_ERR);
+	dm_info->ofdm_ok_cnt = u32_get_bits(crc32_cnt, BIT_MASK_OFDM_LCRC_OK);
+	crc32_cnt = rtw_read32(rtwdev, REG_HT_CRC32_CNT_11N);
+	dm_info->ht_err_cnt = u32_get_bits(crc32_cnt, BIT_MASK_HT_CRC_ERR);
+	dm_info->ht_ok_cnt = u32_get_bits(crc32_cnt, BIT_MASK_HT_CRC_OK);
+	dm_info->vht_err_cnt = 0;
+	dm_info->vht_ok_cnt = 0;
+
+	val32 = rtw_read32(rtwdev, REG_CCK_CCA_CNT_11N);
+	dm_info->cck_cca_cnt = (u32_get_bits(val32, BIT_MASK_CCK_FA_MSB) << 8) |
+			       u32_get_bits(val32, BIT_MASK_CCK_FA_LSB);
+	dm_info->total_cca_cnt = dm_info->cck_cca_cnt + dm_info->ofdm_cca_cnt;
+
+	/* reset counter */
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_RSTC_11N, BIT_MASK_OFDM_FA_RST, 1);
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_RSTC_11N, BIT_MASK_OFDM_FA_RST, 0);
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_RSTD_11N, BIT_MASK_OFDM_FA_RST1, 1);
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_RSTD_11N, BIT_MASK_OFDM_FA_RST1, 0);
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_HOLDC_11N, BIT_MASK_OFDM_FA_KEEP, 0);
+	rtw_write32_mask(rtwdev, REG_OFDM_FA_RSTD_11N, BIT_MASK_OFDM_FA_KEEP1, 0);
+	rtw_write32_mask(rtwdev, REG_CCK_FA_RST_11N, BIT_MASK_CCK_CNT_KPEN, 0);
+	rtw_write32_mask(rtwdev, REG_CCK_FA_RST_11N, BIT_MASK_CCK_CNT_KPEN, 2);
+	rtw_write32_mask(rtwdev, REG_CCK_FA_RST_11N, BIT_MASK_CCK_FA_KPEN, 0);
+	rtw_write32_mask(rtwdev, REG_CCK_FA_RST_11N, BIT_MASK_CCK_FA_KPEN, 2);
+	rtw_write32_mask(rtwdev, REG_PAGE_F_RST_11N, BIT_MASK_F_RST_ALL, 1);
+	rtw_write32_mask(rtwdev, REG_PAGE_F_RST_11N, BIT_MASK_F_RST_ALL, 0);
+}
+
+#define MAX_TOLERANCE	5
+#define IQK_TX_X_ERR	0x142
+#define IQK_TX_Y_ERR	0x42
+#define IQK_RX_X_UPPER	0x11a
+#define IQK_RX_X_LOWER	0xe6
+#define IQK_RX_Y_LMT	0x1a
+
+static const u32 iqk_adda_regs[] = {
+	0x85c, 0xe6c, 0xe70, 0xe74, 0xe78, 0xe7c, 0xe80, 0xe84, 0xe88, 0xe8c,
+	0xed0, 0xed4, 0xed8, 0xedc, 0xee0, 0xeec
+};
+
+static const u32 iqk_mac8_regs[] = {0x522, 0x550, 0x551};
+static const u32 iqk_mac32_regs[] = {0x40};
+
+static const u32 iqk_bb_regs[] = {
+	0xc04, 0xc08, 0x874, 0xb68, 0xb6c, 0x870, 0x860, 0x864, 0xa04
+};
+
+#define IQK_ADDA_REG_NUM	ARRAY_SIZE(iqk_adda_regs)
+#define IQK_MAC8_REG_NUM	ARRAY_SIZE(iqk_mac8_regs)
+#define IQK_MAC32_REG_NUM	ARRAY_SIZE(iqk_mac32_regs)
+#define IQK_BB_REG_NUM		ARRAY_SIZE(iqk_bb_regs)
+
+struct iqk_backup_regs {
+	u32 adda[IQK_ADDA_REG_NUM];
+	u8 mac8[IQK_MAC8_REG_NUM];
+	u32 mac32[IQK_MAC32_REG_NUM];
+	u32 bb[IQK_BB_REG_NUM];
+
+	u32 lte_path;
+	u32 lte_gnt;
+
+	u8 btg_sel;
+	u32 bb_sel_btg;
+
+	u8 igia;
+	u8 igib;
+};
+
+static void rtw8723d_iqk_backup_regs(struct rtw_dev *rtwdev,
+				     struct iqk_backup_regs *backup)
+{
+	int i;
+
+	for (i = 0; i < IQK_ADDA_REG_NUM; i++)
+		backup->adda[i] = rtw_read32(rtwdev, iqk_adda_regs[i]);
+
+	for (i = 0; i < IQK_MAC8_REG_NUM; i++)
+		backup->mac8[i] = rtw_read8(rtwdev, iqk_mac8_regs[i]);
+	for (i = 0; i < IQK_MAC32_REG_NUM; i++)
+		backup->mac32[i] = rtw_read32(rtwdev, iqk_mac32_regs[i]);
+
+	for (i = 0; i < IQK_BB_REG_NUM; i++)
+		backup->bb[i] = rtw_read32(rtwdev, iqk_bb_regs[i]);
+
+	backup->igia = (u8)rtw_read32_mask(rtwdev, REG_OFDM0_XAAGC1, MASKBYTE0);
+	backup->igib = (u8)rtw_read32_mask(rtwdev, REG_OFDM0_XBAGC1, MASKBYTE0);
+
+	backup->bb_sel_btg = rtw_read32(rtwdev, REG_BB_SEL_BTG);
+}
+
+static void rtw8723d_iqk_restore_regs(struct rtw_dev *rtwdev,
+				      const struct iqk_backup_regs *backup)
+{
+	int i;
+
+	for (i = 0; i < IQK_ADDA_REG_NUM; i++)
+		rtw_write32(rtwdev, iqk_adda_regs[i], backup->adda[i]);
+
+	for (i = 0; i < IQK_MAC8_REG_NUM; i++)
+		rtw_write8(rtwdev, iqk_mac8_regs[i], backup->mac8[i]);
+	for (i = 0; i < IQK_MAC32_REG_NUM; i++)
+		rtw_write32(rtwdev, iqk_mac32_regs[i], backup->mac32[i]);
+
+	for (i = 0; i < IQK_BB_REG_NUM; i++)
+		rtw_write32(rtwdev, iqk_bb_regs[i], backup->bb[i]);
+
+	rtw_write32_mask(rtwdev, REG_OFDM0_XAAGC1, MASKBYTE0, 0x50);
+	rtw_write32_mask(rtwdev, REG_OFDM0_XAAGC1, MASKBYTE0, backup->igia);
+
+	rtw_write32_mask(rtwdev, REG_OFDM0_XBAGC1, MASKBYTE0, 0x50);
+	rtw_write32_mask(rtwdev, REG_OFDM0_XBAGC1, MASKBYTE0, backup->igib);
+
+	rtw_write32(rtwdev, REG_TXIQK_TONE_A_11N, 0x01008c00);
+	rtw_write32(rtwdev, REG_RXIQK_TONE_A_11N, 0x01008c00);
+}
+
+static void rtw8723d_iqk_backup_path_ctrl(struct rtw_dev *rtwdev,
+					  struct iqk_backup_regs *backup)
+{
+	backup->btg_sel = rtw_read8(rtwdev, REG_BTG_SEL);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] original 0x67 = 0x%x\n",
+		backup->btg_sel);
+}
+
+static void rtw8723d_iqk_config_path_ctrl(struct rtw_dev *rtwdev)
+{
+	rtw_write32_mask(rtwdev, REG_PAD_CTRL1, BIT_BT_BTG_SEL, 0x1);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] set 0x67 = 0x%x\n",
+		rtw_read32_mask(rtwdev, REG_PAD_CTRL1, MASKBYTE3));
+}
+
+static void rtw8723d_iqk_restore_path_ctrl(struct rtw_dev *rtwdev,
+					   const struct iqk_backup_regs *backup)
+{
+	rtw_write8(rtwdev, REG_BTG_SEL, backup->btg_sel);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] restore 0x67 = 0x%x\n",
+		rtw_read32_mask(rtwdev, REG_PAD_CTRL1, MASKBYTE3));
+}
+
+static void rtw8723d_iqk_backup_lte_path_gnt(struct rtw_dev *rtwdev,
+					     struct iqk_backup_regs *backup)
+{
+	backup->lte_path = rtw_read32(rtwdev, REG_LTECOEX_PATH_CONTROL);
+	rtw_write32(rtwdev, REG_LTECOEX_CTRL, 0x800f0038);
+	mdelay(1);
+	backup->lte_gnt = rtw_read32(rtwdev, REG_LTECOEX_READ_DATA);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] OriginalGNT = 0x%x\n",
+		backup->lte_gnt);
+}
+
+static void rtw8723d_iqk_config_lte_path_gnt(struct rtw_dev *rtwdev)
+{
+	rtw_write32(rtwdev, REG_LTECOEX_WRITE_DATA, 0x0000ff00);
+	rtw_write32(rtwdev, REG_LTECOEX_CTRL, 0xc0020038);
+	rtw_write32_mask(rtwdev, REG_LTECOEX_PATH_CONTROL, BIT_LTE_MUX_CTRL_PATH, 0x1);
+}
+
+static void rtw8723d_iqk_restore_lte_path_gnt(struct rtw_dev *rtwdev,
+					      const struct iqk_backup_regs *bak)
+{
+	rtw_write32(rtwdev, REG_LTECOEX_WRITE_DATA, bak->lte_gnt);
+	rtw_write32(rtwdev, REG_LTECOEX_CTRL, 0xc00f0038);
+	rtw_write32(rtwdev, REG_LTECOEX_PATH_CONTROL, bak->lte_path);
+}
+
+struct rtw_8723d_iqk_cfg {
+	const char *name;
+	u32 val_bb_sel_btg;
+	u32 reg_lutwe;
+	u32 val_txiqk_pi;
+	u32 reg_padlut;
+	u32 reg_gaintx;
+	u32 reg_bspad;
+	u32 val_wlint;
+	u32 val_wlsel;
+	u32 val_iqkpts;
+};
+
+static const struct rtw_8723d_iqk_cfg iqk_tx_cfg[PATH_NR] = {
+	[PATH_S1] = {
+		.name = "S1",
+		.val_bb_sel_btg = 0x99000000,
+		.reg_lutwe = RF_LUTWE,
+		.val_txiqk_pi = 0x8214019f,
+		.reg_padlut = RF_LUTDBG,
+		.reg_gaintx = RF_GAINTX,
+		.reg_bspad = RF_BSPAD,
+		.val_wlint = 0xe0d,
+		.val_wlsel = 0x60d,
+		.val_iqkpts = 0xfa000000,
+	},
+	[PATH_S0] = {
+		.name = "S0",
+		.val_bb_sel_btg = 0x99000280,
+		.reg_lutwe = RF_LUTWE2,
+		.val_txiqk_pi = 0x8214018a,
+		.reg_padlut = RF_TXADBG,
+		.reg_gaintx = RF_TRXIQ,
+		.reg_bspad = RF_TXATANK,
+		.val_wlint = 0xe6d,
+		.val_wlsel = 0x66d,
+		.val_iqkpts = 0xf9000000,
+	},
+};
+
+enum {
+	IQK_TX_OK = BIT(0),
+	IQK_RX_OK = BIT(1),
+};
+
+static u8 rtw8723d_iqk_check_tx_failed(struct rtw_dev *rtwdev,
+				       const struct rtw_8723d_iqk_cfg *iqk_cfg)
+{
+	s32 tx_x, tx_y;
+	u32 tx_fail;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0xeac = 0x%x\n",
+		rtw_read32(rtwdev, REG_IQK_RES_RY));
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0xe94 = 0x%x, 0xe9c = 0x%x\n",
+		rtw_read32(rtwdev, REG_IQK_RES_TX),
+		rtw_read32(rtwdev, REG_IQK_RES_TY));
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK] 0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
+		rtw_read32(rtwdev, 0xe90),
+		rtw_read32(rtwdev, 0xe98));
+
+	tx_fail = rtw_read32_mask(rtwdev, REG_IQK_RES_RY, BIT_IQK_TX_FAIL);
+	tx_x = rtw_read32_mask(rtwdev, REG_IQK_RES_TX, BIT_MASK_RES_TX);
+	tx_y = rtw_read32_mask(rtwdev, REG_IQK_RES_TY, BIT_MASK_RES_TY);
+
+	if (!tx_fail && tx_x != IQK_TX_X_ERR && tx_y != IQK_TX_Y_ERR)
+		return IQK_TX_OK;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] %s TXIQK is failed\n",
+		iqk_cfg->name);
+
+	return 0;
+}
+
+static u8 rtw8723d_iqk_check_rx_failed(struct rtw_dev *rtwdev,
+				       const struct rtw_8723d_iqk_cfg *iqk_cfg)
+{
+	s32 rx_x, rx_y;
+	u32 rx_fail;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0xea4 = 0x%x, 0xeac = 0x%x\n",
+		rtw_read32(rtwdev, REG_IQK_RES_RX),
+		rtw_read32(rtwdev, REG_IQK_RES_RY));
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK] 0xea0(before IQK)= 0x%x, 0xea8(afer IQK) = 0x%x\n",
+		rtw_read32(rtwdev, 0xea0),
+		rtw_read32(rtwdev, 0xea8));
+
+	rx_fail = rtw_read32_mask(rtwdev, REG_IQK_RES_RY, BIT_IQK_RX_FAIL);
+	rx_x = rtw_read32_mask(rtwdev, REG_IQK_RES_RX, BIT_MASK_RES_RX);
+	rx_y = rtw_read32_mask(rtwdev, REG_IQK_RES_RY, BIT_MASK_RES_RY);
+	rx_y = abs(iqkxy_to_s32(rx_y));
+
+	if (!rx_fail && rx_x < IQK_RX_X_UPPER && rx_x > IQK_RX_X_LOWER &&
+	    rx_y < IQK_RX_Y_LMT)
+		return IQK_RX_OK;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] %s RXIQK STEP2 is failed\n",
+		iqk_cfg->name);
+
+	return 0;
+}
+
+static void rtw8723d_iqk_one_shot(struct rtw_dev *rtwdev, bool tx,
+				  const struct rtw_8723d_iqk_cfg *iqk_cfg)
+{
+	u32 pts = (tx ? iqk_cfg->val_iqkpts : 0xf9000000);
+
+	/* enter IQK mode */
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, EN_IQK);
+	rtw8723d_iqk_config_lte_path_gnt(rtwdev);
+
+	rtw_write32(rtwdev, REG_LTECOEX_CTRL, 0x800f0054);
+	mdelay(1);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] GNT_BT @%s %sIQK1 = 0x%x\n",
+		iqk_cfg->name, tx ? "TX" : "RX",
+		rtw_read32(rtwdev, REG_LTECOEX_READ_DATA));
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0x948 @%s %sIQK1 = 0x%x\n",
+		iqk_cfg->name, tx ? "TX" : "RX",
+		rtw_read32(rtwdev, REG_BB_SEL_BTG));
+
+	/* One shot, LOK & IQK */
+	rtw_write32(rtwdev, REG_IQK_AGC_PTS_11N, pts);
+	rtw_write32(rtwdev, REG_IQK_AGC_PTS_11N, 0xf8000000);
+
+	if (!check_hw_ready(rtwdev, REG_IQK_RES_RY, BIT_IQK_DONE, 1))
+		rtw_warn(rtwdev, "%s %s IQK isn't done\n", iqk_cfg->name,
+			 tx ? "TX" : "RX");
+}
+
+static void rtw8723d_iqk_txrx_path_post(struct rtw_dev *rtwdev,
+					const struct rtw_8723d_iqk_cfg *iqk_cfg,
+					const struct iqk_backup_regs *backup)
+{
+	rtw8723d_iqk_restore_lte_path_gnt(rtwdev, backup);
+	rtw_write32(rtwdev, REG_BB_SEL_BTG, backup->bb_sel_btg);
+
+	/* leave IQK mode */
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, RST_IQK);
+	mdelay(1);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_padlut, 0x800, 0x0);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_WLINT, BIT(0), 0x0);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_WLSEL, BIT(0), 0x0);
+}
+
+static u8 rtw8723d_iqk_tx_path(struct rtw_dev *rtwdev,
+			       const struct rtw_8723d_iqk_cfg *iqk_cfg,
+			       const struct iqk_backup_regs *backup)
+{
+	u8 result = 0x00;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path %s TXIQK!!\n", iqk_cfg->name);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0x67 @%s TXIQK = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read32_mask(rtwdev, REG_PAD_CTRL1, MASKBYTE3));
+
+	rtw_write32(rtwdev, REG_BB_SEL_BTG, iqk_cfg->val_bb_sel_btg);
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, RST_IQK);
+	mdelay(1);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, RFREG_MASK, 0x80000);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWA, RFREG_MASK, 0x00004);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD1, RFREG_MASK, 0x0005d);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD0, RFREG_MASK, 0xBFFE0);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, RFREG_MASK, 0x00000);
+
+	/* IQK setting */
+	rtw_write32(rtwdev, REG_TXIQK_TONE_A_11N, 0x08008c0c);
+	rtw_write32(rtwdev, REG_RXIQK_TONE_A_11N, 0x38008c1c);
+	rtw_write32(rtwdev, REG_TXIQK_PI_A_11N, iqk_cfg->val_txiqk_pi);
+	rtw_write32(rtwdev, REG_RXIQK_PI_A_11N, 0x28160200);
+	rtw_write32(rtwdev, REG_TXIQK_11N, 0x01007c00);
+	rtw_write32(rtwdev, REG_RXIQK_11N, 0x01004800);
+
+	/* LOK setting */
+	rtw_write32(rtwdev, REG_IQK_AGC_RSP_11N, 0x00462911);
+
+	/* PA, PAD setting */
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_padlut, 0x800, 0x1);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_gaintx, 0x600, 0x0);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_gaintx, 0x1E0, 0x3);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_RXIQGEN, 0x1F, 0xf);
+
+	/* LOK setting for 8723D */
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, 0x10, 0x1);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_bspad, 0x1, 0x1);
+
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_WLINT, RFREG_MASK, iqk_cfg->val_wlint);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_WLSEL, RFREG_MASK, iqk_cfg->val_wlsel);
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] RF0x1 @%s TXIQK = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read_rf(rtwdev, RF_PATH_A, RF_WLINT, RFREG_MASK));
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] RF0x2 @%s TXIQK = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read_rf(rtwdev, RF_PATH_A, RF_WLSEL, RFREG_MASK));
+
+	rtw8723d_iqk_one_shot(rtwdev, true, iqk_cfg);
+	result |= rtw8723d_iqk_check_tx_failed(rtwdev, iqk_cfg);
+
+	rtw8723d_iqk_txrx_path_post(rtwdev, iqk_cfg, backup);
+
+	return result;
+}
+
+static u8 rtw8723d_iqk_rx_path(struct rtw_dev *rtwdev,
+			       const struct rtw_8723d_iqk_cfg *iqk_cfg,
+			       const struct iqk_backup_regs *backup)
+{
+	u32 tx_x, tx_y;
+	u8 result = 0x00;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path %s RXIQK Step1!!\n",
+		iqk_cfg->name);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0x67 @%s RXIQK1 = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read32_mask(rtwdev, REG_PAD_CTRL1, MASKBYTE3));
+	rtw_write32(rtwdev, REG_BB_SEL_BTG, iqk_cfg->val_bb_sel_btg);
+
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, RST_IQK);
+
+	/* IQK setting */
+	rtw_write32(rtwdev, REG_TXIQK_11N, 0x01007c00);
+	rtw_write32(rtwdev, REG_RXIQK_11N, 0x01004800);
+
+	/* path IQK setting */
+	rtw_write32(rtwdev, REG_TXIQK_TONE_A_11N, 0x18008c1c);
+	rtw_write32(rtwdev, REG_RXIQK_TONE_A_11N, 0x38008c1c);
+	rtw_write32(rtwdev, REG_TX_IQK_TONE_B, 0x38008c1c);
+	rtw_write32(rtwdev, REG_RX_IQK_TONE_B, 0x38008c1c);
+	rtw_write32(rtwdev, REG_TXIQK_PI_A_11N, 0x82160000);
+	rtw_write32(rtwdev, REG_RXIQK_PI_A_11N, 0x28160000);
+
+	/* LOK setting */
+	rtw_write32(rtwdev, REG_IQK_AGC_RSP_11N, 0x0046a911);
+
+	/* RXIQK mode */
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, RFREG_MASK, 0x80000);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWA, RFREG_MASK, 0x00006);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD1, RFREG_MASK, 0x0005f);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD0, RFREG_MASK, 0xa7ffb);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, RFREG_MASK, 0x00000);
+
+	/* PA/PAD=0 */
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_padlut, 0x800, 0x1);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_gaintx, 0x600, 0x0);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_WLINT, RFREG_MASK, iqk_cfg->val_wlint);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_WLSEL, RFREG_MASK, iqk_cfg->val_wlsel);
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] RF0x1@ path %s RXIQK1 = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read_rf(rtwdev, RF_PATH_A, RF_WLINT, RFREG_MASK));
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] RF0x2@ path %s RXIQK1 = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read_rf(rtwdev, RF_PATH_A, RF_WLSEL, RFREG_MASK));
+
+	rtw8723d_iqk_one_shot(rtwdev, false, iqk_cfg);
+	result |= rtw8723d_iqk_check_tx_failed(rtwdev, iqk_cfg);
+
+	if (!result)
+		goto restore;
+
+	tx_x = rtw_read32_mask(rtwdev, REG_IQK_RES_TX, BIT_MASK_RES_TX);
+	tx_y = rtw_read32_mask(rtwdev, REG_IQK_RES_TY, BIT_MASK_RES_TY);
+
+	rtw_write32(rtwdev, REG_TXIQK_11N, BIT_SET_TXIQK_11N(tx_x, tx_y));
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0xe40 = 0x%x u4tmp = 0x%x\n",
+		rtw_read32(rtwdev, REG_TXIQK_11N),
+		BIT_SET_TXIQK_11N(tx_x, tx_y));
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path %s RXIQK STEP2!!\n",
+		iqk_cfg->name);
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] 0x67 @%s RXIQK2 = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read32_mask(rtwdev, REG_PAD_CTRL1, MASKBYTE3));
+
+	rtw_write32(rtwdev, REG_RXIQK_11N, 0x01004800);
+	rtw_write32(rtwdev, REG_TXIQK_TONE_A_11N, 0x38008c1c);
+	rtw_write32(rtwdev, REG_RXIQK_TONE_A_11N, 0x18008c1c);
+	rtw_write32(rtwdev, REG_TX_IQK_TONE_B, 0x38008c1c);
+	rtw_write32(rtwdev, REG_RX_IQK_TONE_B, 0x38008c1c);
+	rtw_write32(rtwdev, REG_TXIQK_PI_A_11N, 0x82170000);
+	rtw_write32(rtwdev, REG_RXIQK_PI_A_11N, 0x28171400);
+
+	/* LOK setting */
+	rtw_write32(rtwdev, REG_IQK_AGC_RSP_11N, 0x0046a8d1);
+
+	/* RXIQK mode */
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, RST_IQK);
+	mdelay(1);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, 0x80000, 0x1);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWA, RFREG_MASK, 0x00007);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD1, RFREG_MASK, 0x0005f);
+	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD0, RFREG_MASK, 0xb3fdb);
+	rtw_write_rf(rtwdev, RF_PATH_A, iqk_cfg->reg_lutwe, RFREG_MASK, 0x00000);
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] RF0x1 @%s RXIQK2 = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read_rf(rtwdev, RF_PATH_A, RF_WLINT, RFREG_MASK));
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] RF0x2 @%s RXIQK2 = 0x%x\n",
+		iqk_cfg->name,
+		rtw_read_rf(rtwdev, RF_PATH_A, RF_WLSEL, RFREG_MASK));
+
+	rtw8723d_iqk_one_shot(rtwdev, false, iqk_cfg);
+	result |= rtw8723d_iqk_check_rx_failed(rtwdev, iqk_cfg);
+
+restore:
+	rtw8723d_iqk_txrx_path_post(rtwdev, iqk_cfg, backup);
+
+	return result;
+}
+
+static
+void rtw8723d_iqk_fill_s1_matrix(struct rtw_dev *rtwdev, const s32 result[])
+{
+	s32 oldval_1;
+	s32 x, y;
+	s32 tx1_a, tx1_a_ext;
+	s32 tx1_c, tx1_c_ext;
+
+	if (result[IQK_S1_TX_X] == 0)
+		return;
+
+	oldval_1 = rtw_read32_mask(rtwdev, REG_OFDM_0_XA_TX_IQ_IMBALANCE,
+				   BIT_MASK_TXIQ_ELM_D);
+
+	x = iqkxy_to_s32(result[IQK_S1_TX_X]);
+	tx1_a = iqk_mult(x, oldval_1, &tx1_a_ext);
+	rtw_write32_mask(rtwdev, REG_OFDM_0_XA_TX_IQ_IMBALANCE,
+			 BIT_MASK_TXIQ_ELM_A, tx1_a);
+	rtw_write32_mask(rtwdev, REG_OFDM_0_ECCA_THRESHOLD,
+			 BIT_MASK_OFDM0_EXT_A, tx1_a_ext);
+
+	y = iqkxy_to_s32(result[IQK_S1_TX_Y]);
+	tx1_c = iqk_mult(y, oldval_1, &tx1_c_ext);
+	rtw_write32_mask(rtwdev, REG_TXIQK_MATRIXA_LSB2_11N, MASKH4BITS,
+			 BIT_SET_TXIQ_ELM_C1(tx1_c));
+	rtw_write32_mask(rtwdev, REG_OFDM_0_XA_TX_IQ_IMBALANCE,
+			 BIT_MASK_TXIQ_ELM_C, BIT_SET_TXIQ_ELM_C2(tx1_c));
+	rtw_write32_mask(rtwdev, REG_OFDM_0_ECCA_THRESHOLD,
+			 BIT_MASK_OFDM0_EXT_C, tx1_c_ext);
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK] X = 0x%x, TX1_A = 0x%x, oldval_1 0x%x\n",
+		x, tx1_a, oldval_1);
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK] Y = 0x%x, TX1_C = 0x%x\n", y, tx1_c);
+
+	if (result[IQK_S1_RX_X] == 0)
+		return;
+
+	rtw_write32_mask(rtwdev, REG_A_RXIQI, BIT_MASK_RXIQ_S1_X,
+			 result[IQK_S1_RX_X]);
+	rtw_write32_mask(rtwdev, REG_A_RXIQI, BIT_MASK_RXIQ_S1_Y1,
+			 BIT_SET_RXIQ_S1_Y1(result[IQK_S1_RX_Y]));
+	rtw_write32_mask(rtwdev, REG_RXIQK_MATRIX_LSB_11N, BIT_MASK_RXIQ_S1_Y2,
+			 BIT_SET_RXIQ_S1_Y2(result[IQK_S1_RX_Y]));
+}
+
+static
+void rtw8723d_iqk_fill_s0_matrix(struct rtw_dev *rtwdev, const s32 result[])
+{
+	s32 oldval_0;
+	s32 x, y;
+	s32 tx0_a, tx0_a_ext;
+	s32 tx0_c, tx0_c_ext;
+
+	if (result[IQK_S0_TX_X] == 0)
+		return;
+
+	oldval_0 = rtw_read32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_D_S0);
+
+	x = iqkxy_to_s32(result[IQK_S0_TX_X]);
+	tx0_a = iqk_mult(x, oldval_0, &tx0_a_ext);
+
+	rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_A_S0, tx0_a);
+	rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_A_EXT_S0, tx0_a_ext);
+
+	y = iqkxy_to_s32(result[IQK_S0_TX_Y]);
+	tx0_c = iqk_mult(y, oldval_0, &tx0_c_ext);
+
+	rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_C_S0, tx0_c);
+	rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_C_EXT_S0, tx0_c_ext);
+
+	if (result[IQK_S0_RX_X] == 0)
+		return;
+
+	rtw_write32_mask(rtwdev, REG_RXIQ_AB_S0, BIT_MASK_RXIQ_X_S0,
+			 result[IQK_S0_RX_X]);
+	rtw_write32_mask(rtwdev, REG_RXIQ_AB_S0, BIT_MASK_RXIQ_Y_S0,
+			 result[IQK_S0_RX_Y]);
+}
+
+static void rtw8723d_iqk_path_adda_on(struct rtw_dev *rtwdev)
+{
+	int i;
+
+	for (i = 0; i < IQK_ADDA_REG_NUM; i++)
+		rtw_write32(rtwdev, iqk_adda_regs[i], 0x03c00016);
+}
+
+static void rtw8723d_iqk_config_mac(struct rtw_dev *rtwdev)
+{
+	rtw_write8(rtwdev, REG_TXPAUSE, 0xff);
+}
+
+static
+void rtw8723d_iqk_rf_standby(struct rtw_dev *rtwdev, enum rtw_rf_path path)
+{
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path-%s standby mode!\n",
+		path == RF_PATH_A ? "S1" : "S0");
+
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, RST_IQK);
+	mdelay(1);
+	rtw_write_rf(rtwdev, path, RF_MODE, RFREG_MASK, 0x10000);
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, EN_IQK);
+}
+
+static
+bool rtw8723d_iqk_similarity_cmp(struct rtw_dev *rtwdev, s32 result[][IQK_NR],
+				 u8 c1, u8 c2)
+{
+	u32 i, j, diff;
+	u32 bitmap = 0;
+	u8 candidate[PATH_NR] = {IQK_ROUND_INVALID, IQK_ROUND_INVALID};
+	bool ret = true;
+
+	s32 tmp1, tmp2;
+
+	for (i = 0; i < IQK_NR; i++) {
+		tmp1 = iqkxy_to_s32(result[c1][i]);
+		tmp2 = iqkxy_to_s32(result[c2][i]);
+
+		diff = abs(tmp1 - tmp2);
+
+		if (diff <= MAX_TOLERANCE)
+			continue;
+
+		if ((i == IQK_S1_RX_X || i == IQK_S0_RX_X) && !bitmap) {
+			if (result[c1][i] + result[c1][i + 1] == 0)
+				candidate[i / IQK_SX_NR] = c2;
+			else if (result[c2][i] + result[c2][i + 1] == 0)
+				candidate[i / IQK_SX_NR] = c1;
+			else
+				bitmap |= BIT(i);
+		} else {
+			bitmap |= BIT(i);
+		}
+	}
+
+	if (bitmap != 0)
+		goto check_sim;
+
+	for (i = 0; i < PATH_NR; i++) {
+		if (candidate[i] == IQK_ROUND_INVALID)
+			continue;
+
+		for (j = i * IQK_SX_NR; j < i * IQK_SX_NR + 2; j++)
+			result[IQK_ROUND_HYBRID][j] = result[candidate[i]][j];
+		ret = false;
+	}
+
+	return ret;
+
+check_sim:
+	for (i = 0; i < IQK_NR; i++) {
+		j = i & ~1;	/* 2 bits are a pair for IQ[X, Y] */
+		if (bitmap & GENMASK(j + 1, j))
+			continue;
+
+		result[IQK_ROUND_HYBRID][i] = result[c1][i];
+	}
+
+	return false;
+}
+
+static
+void rtw8723d_iqk_precfg_path(struct rtw_dev *rtwdev, enum rtw8723d_path path)
+{
+	if (path == PATH_S0) {
+		rtw8723d_iqk_rf_standby(rtwdev, RF_PATH_A);
+		rtw8723d_iqk_path_adda_on(rtwdev);
+	}
+
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, EN_IQK);
+	rtw_write32(rtwdev, REG_TXIQK_11N, 0x01007c00);
+	rtw_write32(rtwdev, REG_RXIQK_11N, 0x01004800);
+
+	if (path == PATH_S1) {
+		rtw8723d_iqk_rf_standby(rtwdev, RF_PATH_B);
+		rtw8723d_iqk_path_adda_on(rtwdev);
+	}
+}
+
+#define PATH_IQK_RETRY	2
+
+static
+void rtw8723d_iqk_one_round(struct rtw_dev *rtwdev, s32 result[][IQK_NR], u8 t,
+			    const struct iqk_backup_regs *backup)
+{
+	u32 i;
+	u8 s1_ok, s0_ok;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK] IQ Calibration for 1T1R_S0/S1 for %d times\n", t);
+
+	rtw8723d_iqk_path_adda_on(rtwdev);
+	rtw8723d_iqk_config_mac(rtwdev);
+	rtw_write32_mask(rtwdev, REG_CCK_ANT_SEL_11N, 0x0f000000, 0xf);
+	rtw_write32(rtwdev, REG_BB_RX_PATH_11N, 0x03a05611);
+	rtw_write32(rtwdev, REG_TRMUX_11N, 0x000800e4);
+	rtw_write32(rtwdev, REG_BB_PWR_SAV1_11N, 0x25204200);
+	rtw8723d_iqk_precfg_path(rtwdev, PATH_S1);
+
+	for (i = 0; i < PATH_IQK_RETRY; i++) {
+		s1_ok = rtw8723d_iqk_tx_path(rtwdev, &iqk_tx_cfg[PATH_S1], backup);
+		if (s1_ok == IQK_TX_OK) {
+			rtw_dbg(rtwdev, RTW_DBG_RFK,
+				"[IQK] path S1 Tx IQK Success!!\n");
+			result[t][IQK_S1_TX_X] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_TX, BIT_MASK_RES_TX);
+			result[t][IQK_S1_TX_Y] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_TY, BIT_MASK_RES_TY);
+			break;
+		}
+
+		rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path S1 Tx IQK Fail!!\n");
+		result[t][IQK_S1_TX_X] = 0x100;
+		result[t][IQK_S1_TX_Y] = 0x0;
+	}
+
+	for (i = 0; i < PATH_IQK_RETRY; i++) {
+		s1_ok = rtw8723d_iqk_rx_path(rtwdev, &iqk_tx_cfg[PATH_S1], backup);
+		if (s1_ok == (IQK_TX_OK | IQK_RX_OK)) {
+			rtw_dbg(rtwdev, RTW_DBG_RFK,
+				"[IQK] path S1 Rx IQK Success!!\n");
+			result[t][IQK_S1_RX_X] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_RX, BIT_MASK_RES_RX);
+			result[t][IQK_S1_RX_Y] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_RY, BIT_MASK_RES_RY);
+			break;
+		}
+
+		rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path S1 Rx IQK Fail!!\n");
+		result[t][IQK_S1_RX_X] = 0x100;
+		result[t][IQK_S1_RX_Y] = 0x0;
+	}
+
+	if (s1_ok == 0x0)
+		rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path S1 IQK is failed!!\n");
+
+	rtw8723d_iqk_precfg_path(rtwdev, PATH_S0);
+
+	for (i = 0; i < PATH_IQK_RETRY; i++) {
+		s0_ok = rtw8723d_iqk_tx_path(rtwdev, &iqk_tx_cfg[PATH_S0], backup);
+		if (s0_ok == IQK_TX_OK) {
+			rtw_dbg(rtwdev, RTW_DBG_RFK,
+				"[IQK] path S0 Tx IQK Success!!\n");
+			result[t][IQK_S0_TX_X] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_TX, BIT_MASK_RES_TX);
+			result[t][IQK_S0_TX_Y] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_TY, BIT_MASK_RES_TY);
+			break;
+		}
+
+		rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path S0 Tx IQK Fail!!\n");
+		result[t][IQK_S0_TX_X] = 0x100;
+		result[t][IQK_S0_TX_Y] = 0x0;
+	}
+
+	for (i = 0; i < PATH_IQK_RETRY; i++) {
+		s0_ok = rtw8723d_iqk_rx_path(rtwdev, &iqk_tx_cfg[PATH_S0], backup);
+		if (s0_ok == (IQK_TX_OK | IQK_RX_OK)) {
+			rtw_dbg(rtwdev, RTW_DBG_RFK,
+				"[IQK] path S0 Rx IQK Success!!\n");
+
+			result[t][IQK_S0_RX_X] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_RX, BIT_MASK_RES_RX);
+			result[t][IQK_S0_RX_Y] =
+			  rtw_read32_mask(rtwdev, REG_IQK_RES_RY, BIT_MASK_RES_RY);
+			break;
+		}
+
+		rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path S0 Rx IQK Fail!!\n");
+		result[t][IQK_S0_RX_X] = 0x100;
+		result[t][IQK_S0_RX_Y] = 0x0;
+	}
+
+	if (s0_ok == 0x0)
+		rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] path S0 IQK is failed!!\n");
+
+	rtw_write32_mask(rtwdev, REG_FPGA0_IQK_11N, BIT_MASK_IQK_MOD, RST_IQK);
+	mdelay(1);
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK] back to BB mode, load original value!\n");
+}
+
+static void rtw8723d_phy_calibration(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s32 result[IQK_ROUND_SIZE][IQK_NR];
+	struct iqk_backup_regs backup;
+	u8 i, j;
+	u8 final_candidate = IQK_ROUND_INVALID;
+	bool good;
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] Start!!!\n");
+
+	memset(result, 0, sizeof(result));
+
+	rtw8723d_iqk_backup_path_ctrl(rtwdev, &backup);
+	rtw8723d_iqk_backup_lte_path_gnt(rtwdev, &backup);
+	rtw8723d_iqk_backup_regs(rtwdev, &backup);
+
+	for (i = IQK_ROUND_0; i <= IQK_ROUND_2; i++) {
+		rtw8723d_iqk_config_path_ctrl(rtwdev);
+		rtw8723d_iqk_config_lte_path_gnt(rtwdev);
+
+		rtw8723d_iqk_one_round(rtwdev, result, i, &backup);
+
+		if (i > IQK_ROUND_0)
+			rtw8723d_iqk_restore_regs(rtwdev, &backup);
+		rtw8723d_iqk_restore_lte_path_gnt(rtwdev, &backup);
+		rtw8723d_iqk_restore_path_ctrl(rtwdev, &backup);
+
+		for (j = IQK_ROUND_0; j < i; j++) {
+			good = rtw8723d_iqk_similarity_cmp(rtwdev, result, j, i);
+
+			if (good) {
+				final_candidate = j;
+				rtw_dbg(rtwdev, RTW_DBG_RFK,
+					"[IQK] cmp %d:%d final_candidate is %x\n",
+					j, i, final_candidate);
+				goto iqk_done;
+			}
+		}
+	}
+
+	if (final_candidate == IQK_ROUND_INVALID) {
+		s32 reg_tmp = 0;
+
+		for (i = 0; i < IQK_NR; i++)
+			reg_tmp += result[IQK_ROUND_HYBRID][i];
+
+		if (reg_tmp != 0) {
+			final_candidate = IQK_ROUND_HYBRID;
+		} else {
+			WARN(1, "IQK is failed\n");
+			goto out;
+		}
+	}
+
+iqk_done:
+	rtw8723d_iqk_fill_s1_matrix(rtwdev, result[final_candidate]);
+	rtw8723d_iqk_fill_s0_matrix(rtwdev, result[final_candidate]);
+
+	dm_info->iqk.result.s1_x = result[final_candidate][IQK_S1_TX_X];
+	dm_info->iqk.result.s1_y = result[final_candidate][IQK_S1_TX_Y];
+	dm_info->iqk.result.s0_x = result[final_candidate][IQK_S0_TX_X];
+	dm_info->iqk.result.s0_y = result[final_candidate][IQK_S0_TX_Y];
+	dm_info->iqk.done = true;
+
+out:
+	rtw_write32(rtwdev, REG_BB_SEL_BTG, backup.bb_sel_btg);
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] final_candidate is %x\n",
+		final_candidate);
+
+	for (i = IQK_ROUND_0; i < IQK_ROUND_SIZE; i++)
+		rtw_dbg(rtwdev, RTW_DBG_RFK,
+			"[IQK] Result %u: rege94_s1=%x rege9c_s1=%x regea4_s1=%x regeac_s1=%x rege94_s0=%x rege9c_s0=%x regea4_s0=%x regeac_s0=%x %s\n",
+			i,
+			result[i][0], result[i][1], result[i][2], result[i][3],
+			result[i][4], result[i][5], result[i][6], result[i][7],
+			final_candidate == i ? "(final candidate)" : "");
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK]0xc80 = 0x%x 0xc94 = 0x%x 0xc14 = 0x%x 0xca0 = 0x%x\n",
+		rtw_read32(rtwdev, REG_OFDM_0_XA_TX_IQ_IMBALANCE),
+		rtw_read32(rtwdev, REG_TXIQK_MATRIXA_LSB2_11N),
+		rtw_read32(rtwdev, REG_A_RXIQI),
+		rtw_read32(rtwdev, REG_RXIQK_MATRIX_LSB_11N));
+	rtw_dbg(rtwdev, RTW_DBG_RFK,
+		"[IQK]0xcd0 = 0x%x 0xcd4 = 0x%x 0xcd8 = 0x%x\n",
+		rtw_read32(rtwdev, REG_TXIQ_AB_S0),
+		rtw_read32(rtwdev, REG_TXIQ_CD_S0),
+		rtw_read32(rtwdev, REG_RXIQ_AB_S0));
+
+	rtw_dbg(rtwdev, RTW_DBG_RFK, "[IQK] finished\n");
+}
+
+/* for coex */
+static void rtw8723d_coex_cfg_init(struct rtw_dev *rtwdev)
+{
+	/* enable TBTT nterrupt */
+	rtw_write8_set(rtwdev, REG_BCN_CTRL, BIT_EN_BCN_FUNCTION);
+
+	/* BT report packet sample rate	 */
+	/* 0x790[5:0]=0x5 */
+	rtw_write8_set(rtwdev, REG_BT_TDMA_TIME, 0x05);
+
+	/* enable BT counter statistics */
+	rtw_write8(rtwdev, REG_BT_STAT_CTRL, 0x1);
+
+	/* enable PTA (3-wire function form BT side) */
+	rtw_write32_set(rtwdev, REG_GPIO_MUXCFG, BIT_BT_PTA_EN);
+	rtw_write32_set(rtwdev, REG_GPIO_MUXCFG, BIT_BT_AOD_GPIO3);
+
+	/* enable PTA (tx/rx signal form WiFi side) */
+	rtw_write8_set(rtwdev, REG_QUEUE_CTRL, BIT_PTA_WL_TX_EN);
+}
+
+static void rtw8723d_coex_cfg_gnt_fix(struct rtw_dev *rtwdev)
+{
+}
+
+static void rtw8723d_coex_cfg_gnt_debug(struct rtw_dev *rtwdev)
+{
+	rtw_write8_mask(rtwdev, REG_LEDCFG2, BIT(6), 0);
+	rtw_write8_mask(rtwdev, REG_PAD_CTRL1 + 3, BIT(0), 0);
+	rtw_write8_mask(rtwdev, REG_GPIO_INTM + 2, BIT(4), 0);
+	rtw_write8_mask(rtwdev, REG_GPIO_MUXCFG + 2, BIT(1), 0);
+	rtw_write8_mask(rtwdev, REG_PAD_CTRL1 + 3, BIT(1), 0);
+	rtw_write8_mask(rtwdev, REG_PAD_CTRL1 + 2, BIT(7), 0);
+	rtw_write8_mask(rtwdev, REG_SYS_CLKR + 1, BIT(1), 0);
+	rtw_write8_mask(rtwdev, REG_SYS_SDIO_CTRL + 3, BIT(3), 0);
+}
+
+static void rtw8723d_coex_cfg_rfe_type(struct rtw_dev *rtwdev)
+{
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct rtw_coex *coex = &rtwdev->coex;
+	struct rtw_coex_rfe *coex_rfe = &coex->rfe;
+	bool aux = efuse->bt_setting & BIT(6);
+
+	coex_rfe->rfe_module_type = rtwdev->efuse.rfe_option;
+	coex_rfe->ant_switch_polarity = 0;
+	coex_rfe->ant_switch_exist = false;
+	coex_rfe->ant_switch_with_bt = false;
+	coex_rfe->ant_switch_diversity = false;
+	coex_rfe->wlg_at_btg = true;
+
+	/* decide antenna at main or aux */
+	if (efuse->share_ant) {
+		if (aux)
+			rtw_write16(rtwdev, REG_BB_SEL_BTG, 0x80);
+		else
+			rtw_write16(rtwdev, REG_BB_SEL_BTG, 0x200);
+	} else {
+		if (aux)
+			rtw_write16(rtwdev, REG_BB_SEL_BTG, 0x280);
+		else
+			rtw_write16(rtwdev, REG_BB_SEL_BTG, 0x0);
+	}
+
+	/* disable LTE coex in wifi side */
+	rtw_coex_write_indirect_reg(rtwdev, LTE_COEX_CTRL, BIT_LTE_COEX_EN, 0x0);
+	rtw_coex_write_indirect_reg(rtwdev, LTE_WL_TRX_CTRL, MASKLWORD, 0xffff);
+	rtw_coex_write_indirect_reg(rtwdev, LTE_BT_TRX_CTRL, MASKLWORD, 0xffff);
+}
+
+static void rtw8723d_coex_cfg_wl_tx_power(struct rtw_dev *rtwdev, u8 wl_pwr)
+{
+	struct rtw_coex *coex = &rtwdev->coex;
+	struct rtw_coex_dm *coex_dm = &coex->dm;
+	static const u8	wl_tx_power[] = {0xb2, 0x90};
+	u8 pwr;
+
+	if (wl_pwr == coex_dm->cur_wl_pwr_lvl)
+		return;
+
+	coex_dm->cur_wl_pwr_lvl = wl_pwr;
+
+	if (coex_dm->cur_wl_pwr_lvl >= ARRAY_SIZE(wl_tx_power))
+		coex_dm->cur_wl_pwr_lvl = ARRAY_SIZE(wl_tx_power) - 1;
+
+	pwr = wl_tx_power[coex_dm->cur_wl_pwr_lvl];
+
+	rtw_write8(rtwdev, REG_ANA_PARAM1 + 3, pwr);
+}
+
+static void rtw8723d_coex_cfg_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
+{
+	struct rtw_coex *coex = &rtwdev->coex;
+	struct rtw_coex_dm *coex_dm = &coex->dm;
+	/* WL Rx Low gain on */
+	static const u32 wl_rx_low_gain_on[] = {
+		0xec120101, 0xeb130101, 0xce140101, 0xcd150101, 0xcc160101,
+		0xcb170101, 0xca180101, 0x8d190101, 0x8c1a0101, 0x8b1b0101,
+		0x4f1c0101, 0x4e1d0101, 0x4d1e0101, 0x4c1f0101, 0x0e200101,
+		0x0d210101, 0x0c220101, 0x0b230101, 0xcf240001, 0xce250001,
+		0xcd260001, 0xcc270001, 0x8f280001
+	};
+	/* WL Rx Low gain off */
+	static const u32 wl_rx_low_gain_off[] = {
+		0xec120101, 0xeb130101, 0xea140101, 0xe9150101, 0xe8160101,
+		0xe7170101, 0xe6180101, 0xe5190101, 0xe41a0101, 0xe31b0101,
+		0xe21c0101, 0xe11d0101, 0xe01e0101, 0x861f0101, 0x85200101,
+		0x84210101, 0x83220101, 0x82230101, 0x81240101, 0x80250101,
+		0x44260101, 0x43270101, 0x42280101
+	};
+	u8 i;
+
+	if (low_gain == coex_dm->cur_wl_rx_low_gain_en)
+		return;
+
+	coex_dm->cur_wl_rx_low_gain_en = low_gain;
+
+	if (coex_dm->cur_wl_rx_low_gain_en) {
+		for (i = 0; i < ARRAY_SIZE(wl_rx_low_gain_on); i++)
+			rtw_write32(rtwdev, REG_AGCRSSI, wl_rx_low_gain_on[i]);
+	} else {
+		for (i = 0; i < ARRAY_SIZE(wl_rx_low_gain_off); i++)
+			rtw_write32(rtwdev, REG_AGCRSSI, wl_rx_low_gain_off[i]);
+	}
+}
+
+static u8 rtw8723d_pwrtrack_get_limit_ofdm(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 tx_rate = dm_info->tx_rate;
+	u8 limit_ofdm = 30;
+
+	switch (tx_rate) {
+	case DESC_RATE1M...DESC_RATE5_5M:
+	case DESC_RATE11M:
+		break;
+	case DESC_RATE6M...DESC_RATE48M:
+		limit_ofdm = 36;
+		break;
+	case DESC_RATE54M:
+		limit_ofdm = 34;
+		break;
+	case DESC_RATEMCS0...DESC_RATEMCS2:
+		limit_ofdm = 38;
+		break;
+	case DESC_RATEMCS3...DESC_RATEMCS4:
+		limit_ofdm = 36;
+		break;
+	case DESC_RATEMCS5...DESC_RATEMCS7:
+		limit_ofdm = 34;
+		break;
+	default:
+		rtw_warn(rtwdev, "pwrtrack unhandled tx_rate 0x%x\n", tx_rate);
+		break;
+	}
+
+	return limit_ofdm;
+}
+
+static void rtw8723d_set_iqk_matrix_by_result(struct rtw_dev *rtwdev,
+					      u32 ofdm_swing, u8 rf_path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s32 ele_A, ele_D, ele_C;
+	s32 ele_A_ext, ele_C_ext, ele_D_ext;
+	s32 iqk_result_x;
+	s32 iqk_result_y;
+	s32 value32;
+
+	switch (rf_path) {
+	default:
+	case RF_PATH_A:
+		iqk_result_x = dm_info->iqk.result.s1_x;
+		iqk_result_y = dm_info->iqk.result.s1_y;
+		break;
+	case RF_PATH_B:
+		iqk_result_x = dm_info->iqk.result.s0_x;
+		iqk_result_y = dm_info->iqk.result.s0_y;
+		break;
+	}
+
+	/* new element D */
+	ele_D = OFDM_SWING_D(ofdm_swing);
+	iqk_mult(iqk_result_x, ele_D, &ele_D_ext);
+	/* new element A */
+	iqk_result_x = iqkxy_to_s32(iqk_result_x);
+	ele_A = iqk_mult(iqk_result_x, ele_D, &ele_A_ext);
+	/* new element C */
+	iqk_result_y = iqkxy_to_s32(iqk_result_y);
+	ele_C = iqk_mult(iqk_result_y, ele_D, &ele_C_ext);
+
+	switch (rf_path) {
+	case RF_PATH_A:
+	default:
+		/* write new elements A, C, D, and element B is always 0 */
+		value32 = BIT_SET_TXIQ_ELM_ACD(ele_A, ele_C, ele_D);
+		rtw_write32(rtwdev, REG_OFDM_0_XA_TX_IQ_IMBALANCE, value32);
+		value32 = BIT_SET_TXIQ_ELM_C1(ele_C);
+		rtw_write32_mask(rtwdev, REG_TXIQK_MATRIXA_LSB2_11N, MASKH4BITS,
+				 value32);
+		value32 = rtw_read32(rtwdev, REG_OFDM_0_ECCA_THRESHOLD);
+		value32 &= ~BIT_MASK_OFDM0_EXTS;
+		value32 |= BIT_SET_OFDM0_EXTS(ele_A_ext, ele_C_ext, ele_D_ext);
+		rtw_write32(rtwdev, REG_OFDM_0_ECCA_THRESHOLD, value32);
+		break;
+
+	case RF_PATH_B:
+		/* write new elements A, C, D, and element B is always 0 */
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_D_S0, ele_D);
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_C_S0, ele_C);
+		rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_A_S0, ele_A);
+
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_D_EXT_S0,
+				 ele_D_ext);
+		rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_A_EXT_S0,
+				 ele_A_ext);
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_C_EXT_S0,
+				 ele_C_ext);
+		break;
+	}
+}
+
+static void rtw8723d_set_iqk_matrix(struct rtw_dev *rtwdev, s8 ofdm_index,
+				    u8 rf_path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s32 value32;
+	u32 ofdm_swing;
+
+	if (ofdm_index >= RTW_OFDM_SWING_TABLE_SIZE)
+		ofdm_index = RTW_OFDM_SWING_TABLE_SIZE - 1;
+	else if (ofdm_index < 0)
+		ofdm_index = 0;
+
+	ofdm_swing = rtw8723d_ofdm_swing_table[ofdm_index];
+
+	if (dm_info->iqk.done) {
+		rtw8723d_set_iqk_matrix_by_result(rtwdev, ofdm_swing, rf_path);
+		return;
+	}
+
+	switch (rf_path) {
+	case RF_PATH_A:
+	default:
+		rtw_write32(rtwdev, REG_OFDM_0_XA_TX_IQ_IMBALANCE, ofdm_swing);
+		rtw_write32_mask(rtwdev, REG_TXIQK_MATRIXA_LSB2_11N, MASKH4BITS,
+				 0x00);
+		value32 = rtw_read32(rtwdev, REG_OFDM_0_ECCA_THRESHOLD);
+		value32 &= ~BIT_MASK_OFDM0_EXTS;
+		rtw_write32(rtwdev, REG_OFDM_0_ECCA_THRESHOLD, value32);
+		break;
+
+	case RF_PATH_B:
+		/* image S1:c80 to S0:Cd0 and Cd4 */
+		rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_A_S0,
+				 OFDM_SWING_A(ofdm_swing));
+		rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_B_S0,
+				 OFDM_SWING_B(ofdm_swing));
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_C_S0,
+				 OFDM_SWING_C(ofdm_swing));
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_D_S0,
+				 OFDM_SWING_D(ofdm_swing));
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_D_EXT_S0, 0x0);
+		rtw_write32_mask(rtwdev, REG_TXIQ_CD_S0, BIT_MASK_TXIQ_C_EXT_S0, 0x0);
+		rtw_write32_mask(rtwdev, REG_TXIQ_AB_S0, BIT_MASK_TXIQ_A_EXT_S0, 0x0);
+		break;
+	}
+}
+
+static void rtw8723d_pwrtrack_set_ofdm_pwr(struct rtw_dev *rtwdev, s8 swing_idx,
+					   s8 txagc_idx)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	dm_info->txagc_remnant_ofdm = txagc_idx;
+
+	rtw8723d_set_iqk_matrix(rtwdev, swing_idx, RF_PATH_A);
+	rtw8723d_set_iqk_matrix(rtwdev, swing_idx, RF_PATH_B);
+}
+
+static void rtw8723d_pwrtrack_set_cck_pwr(struct rtw_dev *rtwdev, s8 swing_idx,
+					  s8 txagc_idx)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	dm_info->txagc_remnant_cck = txagc_idx;
+
+	rtw_write32_mask(rtwdev, 0xab4, 0x000007FF,
+			 rtw8723d_cck_swing_table[swing_idx]);
+}
+
+static void rtw8723d_pwrtrack_set(struct rtw_dev *rtwdev, u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	struct rtw_hal *hal = &rtwdev->hal;
+	u8 limit_ofdm;
+	u8 limit_cck = 40;
+	s8 final_ofdm_swing_index;
+	s8 final_cck_swing_index;
+
+	limit_ofdm = rtw8723d_pwrtrack_get_limit_ofdm(rtwdev);
+
+	final_ofdm_swing_index = RTW_DEF_OFDM_SWING_INDEX +
+				 dm_info->delta_power_index[path];
+	final_cck_swing_index = RTW_DEF_CCK_SWING_INDEX +
+				dm_info->delta_power_index[path];
+
+	if (final_ofdm_swing_index > limit_ofdm)
+		rtw8723d_pwrtrack_set_ofdm_pwr(rtwdev, limit_ofdm,
+					       final_ofdm_swing_index - limit_ofdm);
+	else if (final_ofdm_swing_index < 0)
+		rtw8723d_pwrtrack_set_ofdm_pwr(rtwdev, 0,
+					       final_ofdm_swing_index);
+	else
+		rtw8723d_pwrtrack_set_ofdm_pwr(rtwdev, final_ofdm_swing_index, 0);
+
+	if (final_cck_swing_index > limit_cck)
+		rtw8723d_pwrtrack_set_cck_pwr(rtwdev, limit_cck,
+					      final_cck_swing_index - limit_cck);
+	else if (final_cck_swing_index < 0)
+		rtw8723d_pwrtrack_set_cck_pwr(rtwdev, 0,
+					      final_cck_swing_index);
+	else
+		rtw8723d_pwrtrack_set_cck_pwr(rtwdev, final_cck_swing_index, 0);
+
+	rtw_phy_set_tx_power_level(rtwdev, hal->current_channel);
+}
+
+static void rtw8723d_pwrtrack_set_xtal(struct rtw_dev *rtwdev, u8 therm_path,
+				       u8 delta)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	const struct rtw_pwr_track_tbl *tbl = rtwdev->chip->pwr_track_tbl;
+	const s8 *pwrtrk_xtal;
+	s8 xtal_cap;
+
+	if (dm_info->thermal_avg[therm_path] >
+	    rtwdev->efuse.thermal_meter[therm_path])
+		pwrtrk_xtal = tbl->pwrtrk_xtal_p;
+	else
+		pwrtrk_xtal = tbl->pwrtrk_xtal_n;
+
+	xtal_cap = rtwdev->efuse.crystal_cap & 0x3F;
+	xtal_cap = clamp_t(s8, xtal_cap + pwrtrk_xtal[delta], 0, 0x3F);
+	rtw_write32_mask(rtwdev, REG_AFE_CTRL3, BIT_MASK_XTAL,
+			 xtal_cap | (xtal_cap << 6));
+}
+
+static void rtw8723d_phy_pwrtrack(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	struct rtw_swing_table swing_table;
+	u8 thermal_value, delta, path;
+	bool do_iqk = false;
+
+	rtw_phy_config_swing_table(rtwdev, &swing_table);
+
+	if (rtwdev->efuse.thermal_meter[0] == 0xff)
+		return;
+
+	thermal_value = rtw_read_rf(rtwdev, RF_PATH_A, RF_T_METER, 0xfc00);
+
+	rtw_phy_pwrtrack_avg(rtwdev, thermal_value, RF_PATH_A);
+
+	do_iqk = rtw_phy_pwrtrack_need_iqk(rtwdev);
+
+	if (do_iqk)
+		rtw8723d_lck(rtwdev);
+
+	if (dm_info->pwr_trk_init_trigger)
+		dm_info->pwr_trk_init_trigger = false;
+	else if (!rtw_phy_pwrtrack_thermal_changed(rtwdev, thermal_value,
+						   RF_PATH_A))
+		goto iqk;
+
+	delta = rtw_phy_pwrtrack_get_delta(rtwdev, RF_PATH_A);
+
+	delta = min_t(u8, delta, RTW_PWR_TRK_TBL_SZ - 1);
+
+	for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
+		s8 delta_cur, delta_last;
+
+		delta_last = dm_info->delta_power_index[path];
+		delta_cur = rtw_phy_pwrtrack_get_pwridx(rtwdev, &swing_table,
+							path, RF_PATH_A, delta);
+		if (delta_last == delta_cur)
+			continue;
+
+		dm_info->delta_power_index[path] = delta_cur;
+		rtw8723d_pwrtrack_set(rtwdev, path);
+	}
+
+	rtw8723d_pwrtrack_set_xtal(rtwdev, RF_PATH_A, delta);
+
+iqk:
+	if (do_iqk)
+		rtw8723d_phy_calibration(rtwdev);
+}
+
+void rtw8723d_pwr_track(struct rtw_dev *rtwdev)
+{
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	if (efuse->power_track_type != 0)
+		return;
+
+	if (!dm_info->pwr_trk_triggered) {
+		rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER,
+			     GENMASK(17, 16), 0x03);
+		dm_info->pwr_trk_triggered = true;
+		return;
+	}
+
+	rtw8723d_phy_pwrtrack(rtwdev);
+	dm_info->pwr_trk_triggered = false;
+}
+
+static struct rtw_chip_ops rtw8723d_ops = {
+	.phy_set_param		= rtw8723d_phy_set_param,
+	.read_efuse		= rtw8723d_read_efuse,
+	.query_rx_desc		= rtw8723d_query_rx_desc,
+	.set_channel		= rtw8723d_set_channel,
+	.mac_init		= rtw8723d_mac_init,
+	.shutdown		= rtw8723d_shutdown,
+	.read_rf		= rtw_phy_read_rf_sipi,
+	.write_rf		= rtw_phy_write_rf_reg_sipi,
+	.set_tx_power_index	= rtw8723d_set_tx_power_index,
+	.set_antenna		= NULL,
+	.cfg_ldo25		= rtw8723d_cfg_ldo25,
+	.efuse_grant		= rtw8723d_efuse_grant,
+	.false_alarm_statistics	= rtw8723d_false_alarm_statistics,
+	.phy_calibration	= rtw8723d_phy_calibration,
+	.pwr_track		= rtw8723d_pwr_track,
+	.config_bfee		= NULL,
+	.set_gid_table		= NULL,
+	.cfg_csi_rate		= NULL,
+	.adaptivity_init	= NULL,
+	.adaptivity		= NULL,
+
+	.coex_set_init		= rtw8723d_coex_cfg_init,
+	.coex_set_ant_switch	= NULL,
+	.coex_set_gnt_fix	= rtw8723d_coex_cfg_gnt_fix,
+	.coex_set_gnt_debug	= rtw8723d_coex_cfg_gnt_debug,
+	.coex_set_rfe_type	= rtw8723d_coex_cfg_rfe_type,
+	.coex_set_wl_tx_power	= rtw8723d_coex_cfg_wl_tx_power,
+	.coex_set_wl_rx_gain	= rtw8723d_coex_cfg_wl_rx_gain,
+};
+
+/* Shared-Antenna Coex Table */
+static const struct coex_table_para table_sant_8723d[] = {
+	{0xffffffff, 0xffffffff}, /* case-0 */
+	{0x55555555, 0x55555555},
+	{0x65555555, 0x65555555},
+	{0xaaaaaaaa, 0xaaaaaaaa},
+	{0x5a5a5a5a, 0x5a5a5a5a},
+	{0xfafafafa, 0xfafafafa}, /* case-5 */
+	{0xa5555555, 0xaaaa5aaa},
+	{0x6a5a5a5a, 0x5a5a5a5a},
+	{0x6a5a5a5a, 0x6a5a5a5a},
+	{0x65555555, 0x5a5a5a5a},
+	{0x65555555, 0x6a5a5a5a}, /* case-10 */
+	{0x65555555, 0xfafafafa},
+	{0x65555555, 0x6a5a5aaa},
+	{0x65555555, 0x5aaa5aaa},
+	{0x65555555, 0xaaaa5aaa},
+	{0x65555555, 0xaaaaaaaa}, /* case-15 */
+	{0xffff55ff, 0xfafafafa},
+	{0xffff55ff, 0x6afa5afa},
+	{0xaaffffaa, 0xfafafafa},
+	{0xaa5555aa, 0x5a5a5a5a},
+	{0xaa5555aa, 0x6a5a5a5a}, /* case-20 */
+	{0xaa5555aa, 0xaaaaaaaa},
+	{0xffffffff, 0x5a5a5a5a},
+	{0xffffffff, 0x6a5a5a5a},
+	{0xffffffff, 0x55555555},
+	{0xffffffff, 0x6a5a5aaa}, /* case-25 */
+	{0x55555555, 0x5a5a5a5a},
+	{0x55555555, 0xaaaaaaaa},
+	{0x55555555, 0x6a6a6a6a},
+	{0x656a656a, 0x656a656a}
+};
+
+/* Non-Shared-Antenna Coex Table */
+static const struct coex_table_para table_nsant_8723d[] = {
+	{0xffffffff, 0xffffffff}, /* case-100 */
+	{0x55555555, 0x55555555},
+	{0x65555555, 0x65555555},
+	{0xaaaaaaaa, 0xaaaaaaaa},
+	{0x5a5a5a5a, 0x5a5a5a5a},
+	{0xfafafafa, 0xfafafafa}, /* case-105 */
+	{0x5afa5afa, 0x5afa5afa},
+	{0x55555555, 0xfafafafa},
+	{0x65555555, 0xfafafafa},
+	{0x65555555, 0x5a5a5a5a},
+	{0x65555555, 0x6a5a5a5a}, /* case-110 */
+	{0x65555555, 0xaaaaaaaa},
+	{0xffff55ff, 0xfafafafa},
+	{0xffff55ff, 0x5afa5afa},
+	{0xffff55ff, 0xaaaaaaaa},
+	{0xaaffffaa, 0xfafafafa}, /* case-115 */
+	{0xaaffffaa, 0x5afa5afa},
+	{0xaaffffaa, 0xaaaaaaaa},
+	{0xffffffff, 0xfafafafa},
+	{0xffffffff, 0x5afa5afa},
+	{0xffffffff, 0xaaaaaaaa},/* case-120 */
+	{0x55ff55ff, 0x5afa5afa},
+	{0x55ff55ff, 0xaaaaaaaa},
+	{0x55ff55ff, 0x55ff55ff}
+};
+
+/* Shared-Antenna TDMA */
+static const struct coex_tdma_para tdma_sant_8723d[] = {
+	{ {0x08, 0x00, 0x00, 0x00, 0x00} }, /* case-0 */
+	{ {0x61, 0x45, 0x03, 0x11, 0x11} }, /* case-1 */
+	{ {0x61, 0x3a, 0x03, 0x11, 0x11} },
+	{ {0x61, 0x20, 0x03, 0x11, 0x11} },
+	{ {0x61, 0x30, 0x03, 0x11, 0x11} },
+	{ {0x61, 0x10, 0x03, 0x11, 0x11} }, /* case-5 */
+	{ {0x61, 0x48, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x3a, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x30, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x20, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x10, 0x03, 0x11, 0x10} }, /* case-10 */
+	{ {0x61, 0x10, 0x03, 0x11, 0x14} },
+	{ {0x61, 0x08, 0x03, 0x10, 0x14} },
+	{ {0x51, 0x10, 0x03, 0x10, 0x54} },
+	{ {0x51, 0x10, 0x03, 0x10, 0x55} },
+	{ {0x51, 0x10, 0x07, 0x10, 0x54} }, /* case-15 */
+	{ {0x51, 0x45, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x3a, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x30, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x20, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x15, 0x03, 0x10, 0x50} }, /* case-20 */
+	{ {0x51, 0x4a, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x0c, 0x03, 0x10, 0x54} },
+	{ {0x55, 0x08, 0x03, 0x10, 0x54} },
+	{ {0x65, 0x10, 0x03, 0x11, 0x11} },
+	{ {0x51, 0x10, 0x03, 0x10, 0x51} },
+	{ {0x61, 0x15, 0x03, 0x11, 0x10} }
+};
+
+/* Non-Shared-Antenna TDMA */
+static const struct coex_tdma_para tdma_nsant_8723d[] = {
+	{ {0x00, 0x00, 0x00, 0x40, 0x01} }, /* case-100 */
+	{ {0x61, 0x45, 0x03, 0x11, 0x11} }, /* case-101 */
+	{ {0x61, 0x3a, 0x03, 0x11, 0x11} },
+	{ {0x61, 0x30, 0x03, 0x11, 0x11} },
+	{ {0x61, 0x20, 0x03, 0x11, 0x11} },
+	{ {0x61, 0x10, 0x03, 0x11, 0x11} }, /* case-105 */
+	{ {0x61, 0x45, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x3a, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x30, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x20, 0x03, 0x11, 0x10} },
+	{ {0x61, 0x10, 0x03, 0x11, 0x10} }, /* case-110 */
+	{ {0x61, 0x08, 0x03, 0x11, 0x14} },
+	{ {0x61, 0x08, 0x03, 0x10, 0x14} },
+	{ {0x51, 0x08, 0x03, 0x10, 0x54} },
+	{ {0x51, 0x08, 0x03, 0x10, 0x55} },
+	{ {0x51, 0x08, 0x07, 0x10, 0x54} }, /* case-115 */
+	{ {0x51, 0x45, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x3a, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x30, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x20, 0x03, 0x10, 0x50} },
+	{ {0x51, 0x10, 0x03, 0x10, 0x50} }, /* case-120 */
+	{ {0x51, 0x08, 0x03, 0x10, 0x50} },
+};
+
+/* rssi in percentage % (dbm = % - 100) */
+static const u8 wl_rssi_step_8723d[] = {60, 50, 44, 30};
+static const u8 bt_rssi_step_8723d[] = {30, 30, 30, 30};
+static const struct coex_5g_afh_map afh_5g_8723d[] = { {0, 0, 0} };
+
+static const struct rtw_hw_reg btg_reg_8723d = {
+	.addr = REG_BTG_SEL, .mask = BIT_MASK_BTG_WL,
+};
+
+/* wl_tx_dec_power, bt_tx_dec_power, wl_rx_gain, bt_rx_lna_constrain */
+static const struct coex_rf_para rf_para_tx_8723d[] = {
+	{0, 0, false, 7},  /* for normal */
+	{0, 10, false, 7}, /* for WL-CPT */
+	{1, 0, true, 4},
+	{1, 2, true, 4},
+	{1, 10, true, 4},
+	{1, 15, true, 4}
+};
+
+static const struct coex_rf_para rf_para_rx_8723d[] = {
+	{0, 0, false, 7},  /* for normal */
+	{0, 10, false, 7}, /* for WL-CPT */
+	{1, 0, true, 5},
+	{1, 2, true, 5},
+	{1, 10, true, 5},
+	{1, 15, true, 5}
+};
+
+static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8723d[] = {
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(3) | BIT(7), 0},
+	{0x0086,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_SDIO,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0x0086,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_SDIO,
+	 RTW_PWR_CMD_POLLING, BIT(1), BIT(1)},
+	{0x004A,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), 0},
+	{0x0023,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(4), 0},
+	{0x0301,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_PCI_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8723d[] = {
+	{0x0020,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x0001,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_DELAY, 1, RTW_PWR_DELAY_MS},
+	{0x0000,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(5), 0},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, (BIT(4) | BIT(3) | BIT(2)), 0},
+	{0x0075,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_PCI_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x0006,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, BIT(1), BIT(1)},
+	{0x0075,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_PCI_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0x0006,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, (BIT(1) | BIT(0)), 0},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(7), 0},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, (BIT(4) | BIT(3)), 0},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, BIT(0), 0},
+	{0x0010,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
+	{0x0049,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
+	{0x0063,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
+	{0x0062,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), 0},
+	{0x0058,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x005A,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
+	{0x0068,
+	 RTW_PWR_CUT_TEST_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(3), BIT(3)},
+	{0x0069,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
+	{0x001f,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x00},
+	{0x0077,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x00},
+	{0x001f,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x07},
+	{0x0077,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x07},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd *card_enable_flow_8723d[] = {
+	trans_carddis_to_cardemu_8723d,
+	trans_cardemu_to_act_8723d,
+	NULL
+};
+
+static struct rtw_pwr_seq_cmd trans_act_to_lps_8723d[] = {
+	{0x0301,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_PCI_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0xFF},
+	{0x0522,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0xFF},
+	{0x05F8,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, 0xFF, 0},
+	{0x05F9,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, 0xFF, 0},
+	{0x05FA,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, 0xFF, 0},
+	{0x05FB,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, 0xFF, 0},
+	{0x0002,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0x0002,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_DELAY, 0, RTW_PWR_DELAY_US},
+	{0x0002,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), 0},
+	{0x0100,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x03},
+	{0x0101,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), 0},
+	{0x0093,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x00},
+	{0x0553,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd trans_act_to_pre_carddis_8723d[] = {
+	{0x0003,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(2), 0},
+	{0x0080,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8723d[] = {
+	{0x0002,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0x0049,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), 0},
+	{0x0006,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_POLLING, BIT(1), 0},
+	{0x0010,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(6), 0},
+	{0x0000,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
+	{0x0020,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8723d[] = {
+	{0x0007,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x20},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_PCI_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(2), BIT(2)},
+	{0x0005,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_PCI_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)},
+	{0x004A,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_USB_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 1},
+	{0x0023,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(4), BIT(4)},
+	{0x0086,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_SDIO,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x0086,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_SDIO_MSK,
+	 RTW_PWR_ADDR_SDIO,
+	 RTW_PWR_CMD_POLLING, BIT(1), 0},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd trans_act_to_post_carddis_8723d[] = {
+	{0x001D,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), 0},
+	{0x001D,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
+	{0x001C,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, 0xFF, 0x0E},
+	{0xFFFF,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 0,
+	 RTW_PWR_CMD_END, 0, 0},
+};
+
+static struct rtw_pwr_seq_cmd *card_disable_flow_8723d[] = {
+	trans_act_to_lps_8723d,
+	trans_act_to_pre_carddis_8723d,
+	trans_act_to_cardemu_8723d,
+	trans_cardemu_to_carddis_8723d,
+	trans_act_to_post_carddis_8723d,
+	NULL
+};
+
+static struct rtw_page_table page_table_8723d[] = {
+	{12, 2, 2, 0, 1},
+	{12, 2, 2, 0, 1},
+	{12, 2, 2, 0, 1},
+	{12, 2, 2, 0, 1},
+	{12, 2, 2, 0, 1},
+};
+
+static struct rtw_rqpn rqpn_table_8723d[] = {
+	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
+	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
+	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
+	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
+	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
+	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
+	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
+	 RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_HIGH,
+	 RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
+	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
+	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
+	 RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
+	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
+	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
+	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
+};
+
+static struct rtw_prioq_addrs prioq_addrs_8723d = {
+	.prio[RTW_DMA_MAPPING_EXTRA] = {
+		.rsvd = REG_RQPN_NPQ + 2, .avail = REG_RQPN_NPQ + 3,
+	},
+	.prio[RTW_DMA_MAPPING_LOW] = {
+		.rsvd = REG_RQPN + 1, .avail = REG_FIFOPAGE_CTRL_2 + 1,
+	},
+	.prio[RTW_DMA_MAPPING_NORMAL] = {
+		.rsvd = REG_RQPN_NPQ, .avail = REG_RQPN_NPQ + 1,
+	},
+	.prio[RTW_DMA_MAPPING_HIGH] = {
+		.rsvd = REG_RQPN, .avail = REG_FIFOPAGE_CTRL_2,
+	},
+	.wsize = false,
+};
+
+static struct rtw_intf_phy_para pcie_gen1_param_8723d[] = {
+	{0x0008, 0x4a22,
+	 RTW_IP_SEL_PHY,
+	 RTW_INTF_PHY_CUT_ALL,
+	 RTW_INTF_PHY_PLATFORM_ALL},
+	{0x0009, 0x1000,
+	 RTW_IP_SEL_PHY,
+	 ~(RTW_INTF_PHY_CUT_A | RTW_INTF_PHY_CUT_B),
+	 RTW_INTF_PHY_PLATFORM_ALL},
+	{0xFFFF, 0x0000,
+	 RTW_IP_SEL_PHY,
+	 RTW_INTF_PHY_CUT_ALL,
+	 RTW_INTF_PHY_PLATFORM_ALL},
+};
+
+static struct rtw_intf_phy_para_table phy_para_table_8723d = {
+	.gen1_para	= pcie_gen1_param_8723d,
+	.n_gen1_para	= ARRAY_SIZE(pcie_gen1_param_8723d),
+};
+
+static struct rtw_hw_reg rtw8723d_dig[] = {
+	[0] = { .addr = 0xc50, .mask = 0x7f },
+	[1] = { .addr = 0xc50, .mask = 0x7f },
+};
+
+static struct rtw_hw_reg rtw8723d_dig_cck[] = {
+	[0] = { .addr = 0xa0c, .mask = 0x3f00 },
+};
+
+static struct rtw_rf_sipi_addr rtw8723d_rf_sipi_addr[] = {
+	[RF_PATH_A] = { .hssi_1 = 0x820, .lssi_read    = 0x8a0,
+			.hssi_2 = 0x824, .lssi_read_pi = 0x8b8},
+	[RF_PATH_B] = { .hssi_1 = 0x828, .lssi_read    = 0x8a4,
+			.hssi_2 = 0x82c, .lssi_read_pi = 0x8bc},
+};
+
+static struct rtw_ltecoex_addr rtw8723d_ltecoex_addr = {
+	.ctrl = REG_LTECOEX_CTRL,
+	.wdata = REG_LTECOEX_WRITE_DATA,
+	.rdata = REG_LTECOEX_READ_DATA,
+};
+
+static const struct rtw_rfe_def rtw8723d_rfe_defs[] = {
+	[0] = { .phy_pg_tbl	= &rtw8723d_bb_pg_tbl,
+		.txpwr_lmt_tbl	= &rtw8723d_txpwr_lmt_tbl,},
+};
+
+static const u8 rtw8723d_pwrtrk_2gb_n[] = {
+	0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5,
+	6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10
+};
+
+static const u8 rtw8723d_pwrtrk_2gb_p[] = {
+	0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7,
+	7, 8, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10
+};
+
+static const u8 rtw8723d_pwrtrk_2ga_n[] = {
+	0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5,
+	6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10
+};
+
+static const u8 rtw8723d_pwrtrk_2ga_p[] = {
+	0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7,
+	7, 8, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10
+};
+
+static const u8 rtw8723d_pwrtrk_2g_cck_b_n[] = {
+	0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
+	6, 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11
+};
+
+static const u8 rtw8723d_pwrtrk_2g_cck_b_p[] = {
+	0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7,
+	7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11
+};
+
+static const u8 rtw8723d_pwrtrk_2g_cck_a_n[] = {
+	0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
+	6, 7, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11
+};
+
+static const u8 rtw8723d_pwrtrk_2g_cck_a_p[] = {
+	0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7,
+	7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11
+};
+
+static const s8 rtw8723d_pwrtrk_xtal_n[] = {
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static const s8 rtw8723d_pwrtrk_xtal_p[] = {
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	0, -10, -12, -14, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16
+};
+
+static const struct rtw_pwr_track_tbl rtw8723d_rtw_pwr_track_tbl = {
+	.pwrtrk_2gb_n = rtw8723d_pwrtrk_2gb_n,
+	.pwrtrk_2gb_p = rtw8723d_pwrtrk_2gb_p,
+	.pwrtrk_2ga_n = rtw8723d_pwrtrk_2ga_n,
+	.pwrtrk_2ga_p = rtw8723d_pwrtrk_2ga_p,
+	.pwrtrk_2g_cckb_n = rtw8723d_pwrtrk_2g_cck_b_n,
+	.pwrtrk_2g_cckb_p = rtw8723d_pwrtrk_2g_cck_b_p,
+	.pwrtrk_2g_ccka_n = rtw8723d_pwrtrk_2g_cck_a_n,
+	.pwrtrk_2g_ccka_p = rtw8723d_pwrtrk_2g_cck_a_p,
+	.pwrtrk_xtal_p = rtw8723d_pwrtrk_xtal_p,
+	.pwrtrk_xtal_n = rtw8723d_pwrtrk_xtal_n,
+};
+
+static const struct rtw_reg_domain coex_info_hw_regs_8723d[] = {
+	{0x948, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x67, BIT(7), RTW_REG_DOMAIN_MAC8},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x964, BIT(1), RTW_REG_DOMAIN_MAC8},
+	{0x864, BIT(0), RTW_REG_DOMAIN_MAC8},
+	{0xab7, BIT(5), RTW_REG_DOMAIN_MAC8},
+	{0xa01, BIT(7), RTW_REG_DOMAIN_MAC8},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x430, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x434, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x42a, MASKLWORD, RTW_REG_DOMAIN_MAC16},
+	{0x426, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0x45e, BIT(3), RTW_REG_DOMAIN_MAC8},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x4c6, BIT(4), RTW_REG_DOMAIN_MAC8},
+	{0x40, BIT(5), RTW_REG_DOMAIN_MAC8},
+	{0x550, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x522, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0x953, BIT(1), RTW_REG_DOMAIN_MAC8},
+};
+
+struct rtw_chip_info rtw8723d_hw_spec = {
+	.ops = &rtw8723d_ops,
+	.id = RTW_CHIP_TYPE_8723D,
+	.fw_name = "rtw88/rtw8723d_fw.bin",
+	.wlan_cpu = RTW_WCPU_11N,
+	.tx_pkt_desc_sz = 40,
+	.tx_buf_desc_sz = 16,
+	.rx_pkt_desc_sz = 24,
+	.rx_buf_desc_sz = 8,
+	.phy_efuse_size = 512,
+	.log_efuse_size = 512,
+	.ptct_efuse_size = 96 + 1,
+	.txff_size = 32768,
+	.rxff_size = 16384,
+	.txgi_factor = 1,
+	.is_pwr_by_rate_dec = true,
+	.max_power_index = 0x3f,
+	.csi_buf_pg_num = 0,
+	.band = RTW_BAND_2G,
+	.page_size = 128,
+	.dig_min = 0x20,
+	.ht_supported = true,
+	.vht_supported = false,
+	.lps_deep_mode_supported = 0,
+	.sys_func_en = 0xFD,
+	.pwr_on_seq = card_enable_flow_8723d,
+	.pwr_off_seq = card_disable_flow_8723d,
+	.page_table = page_table_8723d,
+	.rqpn_table = rqpn_table_8723d,
+	.prioq_addrs = &prioq_addrs_8723d,
+	.intf_table = &phy_para_table_8723d,
+	.dig = rtw8723d_dig,
+	.dig_cck = rtw8723d_dig_cck,
+	.rf_sipi_addr = {0x840, 0x844},
+	.rf_sipi_read_addr = rtw8723d_rf_sipi_addr,
+	.fix_rf_phy_num = 2,
+	.ltecoex_addr = &rtw8723d_ltecoex_addr,
+	.mac_tbl = &rtw8723d_mac_tbl,
+	.agc_tbl = &rtw8723d_agc_tbl,
+	.bb_tbl = &rtw8723d_bb_tbl,
+	.rf_tbl = {&rtw8723d_rf_a_tbl},
+	.rfe_defs = rtw8723d_rfe_defs,
+	.rfe_defs_size = ARRAY_SIZE(rtw8723d_rfe_defs),
+	.pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl,
+	.iqk_threshold = 8,
+
+	.coex_para_ver = 0x1905302f,
+	.bt_desired_ver = 0x2f,
+	.scbd_support = true,
+	.new_scbd10_def = true,
+	.pstdma_type = COEX_PSTDMA_FORCE_LPSOFF,
+	.bt_rssi_type = COEX_BTRSSI_RATIO,
+	.ant_isolation = 15,
+	.rssi_tolerance = 2,
+	.wl_rssi_step = wl_rssi_step_8723d,
+	.bt_rssi_step = bt_rssi_step_8723d,
+	.table_sant_num = ARRAY_SIZE(table_sant_8723d),
+	.table_sant = table_sant_8723d,
+	.table_nsant_num = ARRAY_SIZE(table_nsant_8723d),
+	.table_nsant = table_nsant_8723d,
+	.tdma_sant_num = ARRAY_SIZE(tdma_sant_8723d),
+	.tdma_sant = tdma_sant_8723d,
+	.tdma_nsant_num = ARRAY_SIZE(tdma_nsant_8723d),
+	.tdma_nsant = tdma_nsant_8723d,
+	.wl_rf_para_num = ARRAY_SIZE(rf_para_tx_8723d),
+	.wl_rf_para_tx = rf_para_tx_8723d,
+	.wl_rf_para_rx = rf_para_rx_8723d,
+	.bt_afh_span_bw20 = 0x20,
+	.bt_afh_span_bw40 = 0x30,
+	.afh_5g_num = ARRAY_SIZE(afh_5g_8723d),
+	.afh_5g = afh_5g_8723d,
+	.btg_reg = &btg_reg_8723d,
+
+	.coex_info_hw_regs_num = ARRAY_SIZE(coex_info_hw_regs_8723d),
+	.coex_info_hw_regs = coex_info_hw_regs_8723d,
+};
+EXPORT_SYMBOL(rtw8723d_hw_spec);
+
+MODULE_FIRMWARE("rtw88/rtw8723d_fw.bin");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8723d.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8723d.h
@@ -0,0 +1,246 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#ifndef __RTW8723D_H__
+#define __RTW8723D_H__
+
+enum rtw8723d_path {
+	PATH_S1,
+	PATH_S0,
+	PATH_NR,
+};
+
+enum rtw8723d_iqk_round {
+	IQK_ROUND_0,
+	IQK_ROUND_1,
+	IQK_ROUND_2,
+	IQK_ROUND_HYBRID,
+	IQK_ROUND_SIZE,
+	IQK_ROUND_INVALID = 0xff,
+};
+
+enum rtw8723d_iqk_result {
+	IQK_S1_TX_X,
+	IQK_S1_TX_Y,
+	IQK_S1_RX_X,
+	IQK_S1_RX_Y,
+	IQK_S0_TX_X,
+	IQK_S0_TX_Y,
+	IQK_S0_RX_X,
+	IQK_S0_RX_Y,
+	IQK_NR,
+	IQK_SX_NR = IQK_NR / PATH_NR,
+};
+
+struct rtw8723de_efuse {
+	u8 mac_addr[ETH_ALEN];		/* 0xd0 */
+	u8 vender_id[2];
+	u8 device_id[2];
+	u8 sub_vender_id[2];
+	u8 sub_device_id[2];
+};
+
+struct rtw8723d_efuse {
+	__le16 rtl_id;
+	u8 rsvd[2];
+	u8 afe;
+	u8 rsvd1[11];
+
+	/* power index for four RF paths */
+	struct rtw_txpwr_idx txpwr_idx_table[4];
+
+	u8 channel_plan;		/* 0xb8 */
+	u8 xtal_k;
+	u8 thermal_meter;
+	u8 iqk_lck;
+	u8 pa_type;			/* 0xbc */
+	u8 lna_type_2g[2];		/* 0xbd */
+	u8 lna_type_5g[2];
+	u8 rf_board_option;
+	u8 rf_feature_option;
+	u8 rf_bt_setting;
+	u8 eeprom_version;
+	u8 eeprom_customer_id;
+	u8 tx_bb_swing_setting_2g;
+	u8 res_c7;
+	u8 tx_pwr_calibrate_rate;
+	u8 rf_antenna_option;		/* 0xc9 */
+	u8 rfe_option;
+	u8 country_code[2];
+	u8 res[3];
+	struct rtw8723de_efuse e;
+};
+
+/* phy status page0 */
+#define GET_PHY_STAT_P0_PWDB(phy_stat)                                         \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x00), GENMASK(15, 8))
+
+/* phy status page1 */
+#define GET_PHY_STAT_P1_PWDB_A(phy_stat)                                       \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x00), GENMASK(15, 8))
+#define GET_PHY_STAT_P1_PWDB_B(phy_stat)                                       \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x00), GENMASK(23, 16))
+#define GET_PHY_STAT_P1_RF_MODE(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x03), GENMASK(29, 28))
+#define GET_PHY_STAT_P1_L_RXSC(phy_stat)                                       \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x01), GENMASK(11, 8))
+#define GET_PHY_STAT_P1_HT_RXSC(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x01), GENMASK(15, 12))
+#define GET_PHY_STAT_P1_RXEVM_A(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x04), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_CFO_TAIL_A(phy_stat)                                   \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x05), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_RXSNR_A(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x06), GENMASK(7, 0))
+
+static inline s32 iqkxy_to_s32(s32 val)
+{
+	/* val is Q10.8 */
+	return sign_extend32(val, 9);
+}
+
+static inline s32 iqk_mult(s32 x, s32 y, s32 *ext)
+{
+	/* x, y and return value are Q10.8 */
+	s32 t;
+
+	t = x * y;
+	if (ext)
+		*ext = (t >> 7) & 0x1;	/* Q.16 --> Q.9; get LSB of Q.9 */
+
+	return (t >> 8);	/* Q.16 --> Q.8 */
+}
+
+#define REG_GPIO_INTM		0x0048
+#define REG_BTG_SEL		0x0067
+#define BIT_MASK_BTG_WL		BIT(7)
+#define REG_LTECOEX_PATH_CONTROL	0x0070
+#define REG_LTECOEX_CTRL	0x07c0
+#define REG_LTECOEX_WRITE_DATA	0x07c4
+#define REG_LTECOEX_READ_DATA	0x07c8
+#define REG_PSDFN		0x0808
+#define REG_BB_PWR_SAV1_11N	0x0874
+#define REG_ANA_PARAM1		0x0880
+#define REG_ANALOG_P4		0x088c
+#define REG_PSDRPT		0x08b4
+#define REG_FPGA1_RFMOD		0x0900
+#define REG_BB_SEL_BTG		0x0948
+#define REG_BBRX_DFIR		0x0954
+#define REG_CCK0_SYS		0x0a00
+#define REG_CCK_ANT_SEL_11N	0x0a04
+#define REG_CCK_FA_RST_11N	0x0a2c
+#define BIT_MASK_CCK_CNT_KEEP	BIT(12)
+#define BIT_MASK_CCK_CNT_EN	BIT(13)
+#define BIT_MASK_CCK_CNT_KPEN	(BIT_MASK_CCK_CNT_KEEP | BIT_MASK_CCK_CNT_EN)
+#define BIT_MASK_CCK_FA_KEEP	BIT(14)
+#define BIT_MASK_CCK_FA_EN	BIT(15)
+#define BIT_MASK_CCK_FA_KPEN	(BIT_MASK_CCK_FA_KEEP | BIT_MASK_CCK_FA_EN)
+#define REG_CCK_FA_LSB_11N	0x0a5c
+#define REG_CCK_FA_MSB_11N	0x0a58
+#define REG_CCK_CCA_CNT_11N	0x0a60
+#define BIT_MASK_CCK_FA_MSB	GENMASK(7, 0)
+#define BIT_MASK_CCK_FA_LSB	GENMASK(15, 8)
+#define REG_OFDM_FA_HOLDC_11N	0x0c00
+#define BIT_MASK_OFDM_FA_KEEP	BIT(31)
+#define REG_BB_RX_PATH_11N	0x0c04
+#define REG_TRMUX_11N		0x0c08
+#define REG_OFDM_FA_RSTC_11N	0x0c0c
+#define BIT_MASK_OFDM_FA_RST	BIT(31)
+#define REG_A_RXIQI		0x0c14
+#define BIT_MASK_RXIQ_S1_X	0x000003FF
+#define BIT_MASK_RXIQ_S1_Y1	0x0000FC00
+#define BIT_SET_RXIQ_S1_Y1(y)	((y) & 0x3F)
+#define REG_OFDM0_RXDSP		0x0c40
+#define REG_OFDM_0_ECCA_THRESHOLD	0x0c4c
+#define BIT_MASK_OFDM0_EXT_A	BIT(31)
+#define BIT_MASK_OFDM0_EXT_C	BIT(29)
+#define BIT_MASK_OFDM0_EXTS	(BIT(31) | BIT(29) | BIT(28))
+#define BIT_SET_OFDM0_EXTS(a, c, d) (((a) << 31) | ((c) << 29) | ((d) << 28))
+#define REG_OFDM0_XAAGC1	0x0c50
+#define REG_OFDM0_XBAGC1	0x0c58
+#define REG_AGCRSSI		0x0c78
+#define REG_OFDM_0_XA_TX_IQ_IMBALANCE	0x0c80
+#define BIT_MASK_TXIQ_ELM_A	0x03ff
+#define BIT_SET_TXIQ_ELM_ACD(a, c, d) (((d) << 22) | (((c) & 0x3F) << 16) |    \
+				       ((a) & 0x03ff))
+#define BIT_MASK_TXIQ_ELM_C	GENMASK(21, 16)
+#define BIT_SET_TXIQ_ELM_C2(c)	((c) & 0x3F)
+#define BIT_MASK_TXIQ_ELM_D	GENMASK(31, 22)
+#define REG_TXIQK_MATRIXA_LSB2_11N	0x0c94
+#define BIT_SET_TXIQ_ELM_C1(c)	(((c) & 0x000003C0) >> 6)
+#define REG_RXIQK_MATRIX_LSB_11N	0x0ca0
+#define BIT_MASK_RXIQ_S1_Y2	0xF0000000
+#define BIT_SET_RXIQ_S1_Y2(y)	(((y) >> 6) & 0xF)
+#define REG_TXIQ_AB_S0		0x0cd0
+#define BIT_MASK_TXIQ_A_S0	0x000007FE
+#define BIT_MASK_TXIQ_A_EXT_S0	BIT(0)
+#define BIT_MASK_TXIQ_B_S0	0x0007E000
+#define REG_TXIQ_CD_S0		0x0cd4
+#define BIT_MASK_TXIQ_C_S0	0x000007FE
+#define BIT_MASK_TXIQ_C_EXT_S0	BIT(0)
+#define BIT_MASK_TXIQ_D_S0	GENMASK(22, 13)
+#define BIT_MASK_TXIQ_D_EXT_S0	BIT(12)
+#define REG_RXIQ_AB_S0		0x0cd8
+#define BIT_MASK_RXIQ_X_S0	0x000003FF
+#define BIT_MASK_RXIQ_Y_S0	0x003FF000
+#define REG_OFDM_FA_TYPE1_11N	0x0cf0
+#define BIT_MASK_OFDM_FF_CNT	GENMASK(15, 0)
+#define BIT_MASK_OFDM_SF_CNT	GENMASK(31, 16)
+#define REG_OFDM_FA_RSTD_11N	0x0d00
+#define BIT_MASK_OFDM_FA_RST1	BIT(27)
+#define BIT_MASK_OFDM_FA_KEEP1	BIT(31)
+#define REG_CTX			0x0d03
+#define BIT_MASK_CTX_TYPE	GENMASK(6, 4)
+#define REG_OFDM1_CFOTRK	0x0d2c
+#define REG_OFDM1_CSI1		0x0d40
+#define REG_OFDM1_CSI2		0x0d44
+#define REG_OFDM1_CSI3		0x0d48
+#define REG_OFDM1_CSI4		0x0d4c
+#define REG_OFDM_FA_TYPE2_11N	0x0da0
+#define BIT_MASK_OFDM_CCA_CNT	GENMASK(15, 0)
+#define BIT_MASK_OFDM_PF_CNT	GENMASK(31, 16)
+#define REG_OFDM_FA_TYPE3_11N	0x0da4
+#define BIT_MASK_OFDM_RI_CNT	GENMASK(15, 0)
+#define BIT_MASK_OFDM_CRC_CNT	GENMASK(31, 16)
+#define REG_OFDM_FA_TYPE4_11N	0x0da8
+#define BIT_MASK_OFDM_MNS_CNT	GENMASK(15, 0)
+#define REG_FPGA0_IQK_11N	0x0e28
+#define BIT_MASK_IQK_MOD	0xffffff00
+#define EN_IQK			0x808000
+#define RST_IQK			0x000000
+#define REG_TXIQK_TONE_A_11N	0x0e30
+#define REG_RXIQK_TONE_A_11N	0x0e34
+#define REG_TXIQK_PI_A_11N	0x0e38
+#define REG_RXIQK_PI_A_11N	0x0e3c
+#define REG_TXIQK_11N		0x0e40
+#define BIT_SET_TXIQK_11N(x, y)	(0x80007C00 | ((x) << 16) | (y))
+#define REG_RXIQK_11N		0x0e44
+#define REG_IQK_AGC_PTS_11N	0x0e48
+#define REG_IQK_AGC_RSP_11N	0x0e4c
+#define REG_TX_IQK_TONE_B	0x0e50
+#define REG_RX_IQK_TONE_B	0x0e54
+#define REG_IQK_RES_TX		0x0e94
+#define BIT_MASK_RES_TX		GENMASK(25, 16)
+#define REG_IQK_RES_TY		0x0e9c
+#define BIT_MASK_RES_TY		GENMASK(25, 16)
+#define REG_IQK_RES_RX		0x0ea4
+#define BIT_MASK_RES_RX		GENMASK(25, 16)
+#define REG_IQK_RES_RY		0x0eac
+#define BIT_IQK_TX_FAIL		BIT(28)
+#define BIT_IQK_RX_FAIL		BIT(27)
+#define BIT_IQK_DONE		BIT(26)
+#define BIT_MASK_RES_RY		GENMASK(25, 16)
+#define REG_PAGE_F_RST_11N		0x0f14
+#define BIT_MASK_F_RST_ALL		BIT(16)
+#define REG_IGI_C_11N			0x0f84
+#define REG_IGI_D_11N			0x0f88
+#define REG_HT_CRC32_CNT_11N		0x0f90
+#define BIT_MASK_HT_CRC_OK		GENMASK(15, 0)
+#define BIT_MASK_HT_CRC_ERR		GENMASK(31, 16)
+#define REG_OFDM_CRC32_CNT_11N		0x0f94
+#define BIT_MASK_OFDM_LCRC_OK		GENMASK(15, 0)
+#define BIT_MASK_OFDM_LCRC_ERR		GENMASK(31, 16)
+#define REG_HT_CRC32_CNT_11N_AGG	0x0fb8
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8723d_table.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8723d_table.c
@@ -0,0 +1,1196 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#include "main.h"
+#include "phy.h"
+#include "rtw8723d_table.h"
+
+static const u32 rtw8723d_mac[] = {
+	0x020, 0x00000013,
+	0x02F, 0x00000010,
+	0x077, 0x00000007,
+	0x421, 0x0000000F,
+	0x428, 0x0000000A,
+	0x429, 0x00000010,
+	0x430, 0x00000000,
+	0x431, 0x00000000,
+	0x432, 0x00000000,
+	0x433, 0x00000001,
+	0x434, 0x00000002,
+	0x435, 0x00000003,
+	0x436, 0x00000005,
+	0x437, 0x00000007,
+	0x438, 0x00000000,
+	0x439, 0x00000000,
+	0x43A, 0x00000000,
+	0x43B, 0x00000001,
+	0x43C, 0x00000002,
+	0x43D, 0x00000003,
+	0x43E, 0x00000005,
+	0x43F, 0x00000007,
+	0x440, 0x0000005D,
+	0x441, 0x00000001,
+	0x442, 0x00000000,
+	0x444, 0x00000010,
+	0x445, 0x00000000,
+	0x446, 0x00000000,
+	0x447, 0x00000000,
+	0x448, 0x00000000,
+	0x449, 0x000000F0,
+	0x44A, 0x0000000F,
+	0x44B, 0x0000003E,
+	0x44C, 0x00000010,
+	0x44D, 0x00000000,
+	0x44E, 0x00000000,
+	0x44F, 0x00000000,
+	0x450, 0x00000000,
+	0x451, 0x000000F0,
+	0x452, 0x0000000F,
+	0x453, 0x00000000,
+	0x456, 0x0000005E,
+	0x460, 0x00000066,
+	0x461, 0x00000066,
+	0x4C8, 0x000000FF,
+	0x4C9, 0x00000008,
+	0x4CC, 0x000000FF,
+	0x4CD, 0x000000FF,
+	0x4CE, 0x00000001,
+	0x500, 0x00000026,
+	0x501, 0x000000A2,
+	0x502, 0x0000002F,
+	0x503, 0x00000000,
+	0x504, 0x00000028,
+	0x505, 0x000000A3,
+	0x506, 0x0000005E,
+	0x507, 0x00000000,
+	0x508, 0x0000002B,
+	0x509, 0x000000A4,
+	0x50A, 0x0000005E,
+	0x50B, 0x00000000,
+	0x50C, 0x0000004F,
+	0x50D, 0x000000A4,
+	0x50E, 0x00000000,
+	0x50F, 0x00000000,
+	0x512, 0x0000001C,
+	0x514, 0x0000000A,
+	0x516, 0x0000000A,
+	0x525, 0x0000004F,
+	0x550, 0x00000010,
+	0x551, 0x00000010,
+	0x559, 0x00000002,
+	0x55C, 0x00000028,
+	0x55D, 0x000000FF,
+	0x605, 0x00000030,
+	0x608, 0x0000000E,
+	0x609, 0x0000002A,
+	0x620, 0x000000FF,
+	0x621, 0x000000FF,
+	0x622, 0x000000FF,
+	0x623, 0x000000FF,
+	0x624, 0x000000FF,
+	0x625, 0x000000FF,
+	0x626, 0x000000FF,
+	0x627, 0x000000FF,
+	0x638, 0x00000028,
+	0x63C, 0x0000000A,
+	0x63D, 0x0000000A,
+	0x63E, 0x0000000C,
+	0x63F, 0x0000000C,
+	0x640, 0x00000040,
+	0x642, 0x00000040,
+	0x643, 0x00000000,
+	0x652, 0x000000C8,
+	0x66A, 0x000000B0,
+	0x66E, 0x00000005,
+	0x700, 0x00000021,
+	0x701, 0x00000043,
+	0x702, 0x00000065,
+	0x703, 0x00000087,
+	0x708, 0x00000021,
+	0x709, 0x00000043,
+	0x70A, 0x00000065,
+	0x70B, 0x00000087,
+	0x765, 0x00000018,
+	0x76E, 0x00000004,
+	0x7C0, 0x00000038,
+	0x7C2, 0x0000000F,
+	0x7C3, 0x000000C0,
+	0x073, 0x00000004,
+	0x7C4, 0x00000077,
+	0x07C, 0x00000003,
+	0x016, 0x000000B3,
+};
+
+RTW_DECL_TABLE_PHY_COND(rtw8723d_mac, rtw_phy_cfg_mac);
+
+static const u32 rtw8723d_agc[] = {
+	0xC78, 0xFE000101,
+	0xC78, 0xFD010101,
+	0xC78, 0xFC020101,
+	0xC78, 0xFB030101,
+	0xC78, 0xFA040101,
+	0xC78, 0xF9050101,
+	0xC78, 0xF8060101,
+	0xC78, 0xF7070101,
+	0xC78, 0xF6080101,
+	0xC78, 0xF5090101,
+	0xC78, 0xF40A0101,
+	0xC78, 0xF30B0101,
+	0xC78, 0xF20C0101,
+	0xC78, 0xF10D0101,
+	0xC78, 0xF00E0101,
+	0xC78, 0xEF0F0101,
+	0xC78, 0xEE100101,
+	0xC78, 0xED110101,
+	0xC78, 0xEC120101,
+	0xC78, 0xEB130101,
+	0xC78, 0xEA140101,
+	0xC78, 0xE9150101,
+	0xC78, 0xE8160101,
+	0xC78, 0xE7170101,
+	0xC78, 0xE6180101,
+	0xC78, 0xE5190101,
+	0xC78, 0xE41A0101,
+	0xC78, 0xE31B0101,
+	0xC78, 0xE21C0101,
+	0xC78, 0xE11D0101,
+	0xC78, 0xE01E0101,
+	0xC78, 0x861F0101,
+	0xC78, 0x85200101,
+	0xC78, 0x84210101,
+	0xC78, 0x83220101,
+	0xC78, 0x82230101,
+	0xC78, 0x81240101,
+	0xC78, 0x80250101,
+	0xC78, 0x44260101,
+	0xC78, 0x43270101,
+	0xC78, 0x42280101,
+	0xC78, 0x41290101,
+	0xC78, 0x402A0101,
+	0xC78, 0x022B0101,
+	0xC78, 0x012C0101,
+	0xC78, 0x002D0101,
+	0xC78, 0xC52E0001,
+	0xC78, 0xC42F0001,
+	0xC78, 0xC3300001,
+	0xC78, 0xC2310001,
+	0xC78, 0xC1320001,
+	0xC78, 0xC0330001,
+	0xC78, 0x04340001,
+	0xC78, 0x03350001,
+	0xC78, 0x02360001,
+	0xC78, 0x01370001,
+	0xC78, 0x00380001,
+	0xC78, 0x00390001,
+	0xC78, 0x003A0001,
+	0xC78, 0x003B0001,
+	0xC78, 0x003C0001,
+	0xC78, 0x003D0001,
+	0xC78, 0x003E0001,
+	0xC78, 0x003F0001,
+	0xC78, 0x6F002001,
+	0xC78, 0x6F012001,
+	0xC78, 0x6F022001,
+	0xC78, 0x6F032001,
+	0xC78, 0x6F042001,
+	0xC78, 0x6F052001,
+	0xC78, 0x6F062001,
+	0xC78, 0x6F072001,
+	0xC78, 0x6F082001,
+	0xC78, 0x6F092001,
+	0xC78, 0x6F0A2001,
+	0xC78, 0x6F0B2001,
+	0xC78, 0x6F0C2001,
+	0xC78, 0x6F0D2001,
+	0xC78, 0x6F0E2001,
+	0xC78, 0x6F0F2001,
+	0xC78, 0x6F102001,
+	0xC78, 0x6F112001,
+	0xC78, 0x6F122001,
+	0xC78, 0x6F132001,
+	0xC78, 0x6F142001,
+	0xC78, 0x6F152001,
+	0xC78, 0x6F162001,
+	0xC78, 0x6F172001,
+	0xC78, 0x6F182001,
+	0xC78, 0x6F192001,
+	0xC78, 0x6F1A2001,
+	0xC78, 0x6F1B2001,
+	0xC78, 0x6F1C2001,
+	0xC78, 0x6F1D2001,
+	0xC78, 0x6F1E2001,
+	0xC78, 0x6F1F2001,
+	0xC78, 0x6F202001,
+	0xC78, 0x6F212001,
+	0xC78, 0x6F222001,
+	0xC78, 0x6F232001,
+	0xC78, 0x6E242001,
+	0xC78, 0x6D252001,
+	0xC78, 0x6C262001,
+	0xC78, 0x6B272001,
+	0xC78, 0x6A282001,
+	0xC78, 0x69292001,
+	0xC78, 0x4B2A2001,
+	0xC78, 0x4A2B2001,
+	0xC78, 0x492C2001,
+	0xC78, 0x482D2001,
+	0xC78, 0x472E2001,
+	0xC78, 0x462F2001,
+	0xC78, 0x45302001,
+	0xC78, 0x44312001,
+	0xC78, 0x43322001,
+	0xC78, 0x42332001,
+	0xC78, 0x41342001,
+	0xC78, 0x40352001,
+	0xC78, 0x02362001,
+	0xC78, 0x01372001,
+	0xC78, 0x00382001,
+	0xC78, 0x00392001,
+	0xC78, 0x003A2001,
+	0xC78, 0x003B2001,
+	0xC78, 0x003C2001,
+	0xC78, 0x003D2001,
+	0xC78, 0x003E2001,
+	0xC78, 0x003F2001,
+	0xC78, 0x7F003101,
+	0xC78, 0x7F013101,
+	0xC78, 0x7F023101,
+	0xC78, 0x7F033101,
+	0xC78, 0x7F043101,
+	0xC78, 0x7F053101,
+	0xC78, 0x7F063101,
+	0xC78, 0x7F073101,
+	0xC78, 0x7E083101,
+	0xC78, 0x7D093101,
+	0xC78, 0x7C0A3101,
+	0xC78, 0x7B0B3101,
+	0xC78, 0x7A0C3101,
+	0xC78, 0x790D3101,
+	0xC78, 0x780E3101,
+	0xC78, 0x770F3101,
+	0xC78, 0x76103101,
+	0xC78, 0x75113101,
+	0xC78, 0x74123101,
+	0xC78, 0x73133101,
+	0xC78, 0x72143101,
+	0xC78, 0x71153101,
+	0xC78, 0x70163101,
+	0xC78, 0x6F173101,
+	0xC78, 0x6E183101,
+	0xC78, 0x6D193101,
+	0xC78, 0x6C1A3101,
+	0xC78, 0x6B1B3101,
+	0xC78, 0x6A1C3101,
+	0xC78, 0x691D3101,
+	0xC78, 0x681E3101,
+	0xC78, 0x4B1F3101,
+	0xC78, 0x4A203101,
+	0xC78, 0x49213101,
+	0xC78, 0x48223101,
+	0xC78, 0x47233101,
+	0xC78, 0x46243101,
+	0xC78, 0x45253101,
+	0xC78, 0x44263101,
+	0xC78, 0x43273101,
+	0xC78, 0x42283101,
+	0xC78, 0x41293101,
+	0xC78, 0x402A3101,
+	0xC78, 0x022B3101,
+	0xC78, 0x012C3101,
+	0xC78, 0x002D3101,
+	0xC78, 0x002E3101,
+	0xC78, 0x002F3101,
+	0xC78, 0x00303101,
+	0xC78, 0x00313101,
+	0xC78, 0x00323101,
+	0xC78, 0x00333101,
+	0xC78, 0x00343101,
+	0xC78, 0x00353101,
+	0xC78, 0x00363101,
+	0xC78, 0x00373101,
+	0xC78, 0x00383101,
+	0xC78, 0x00393101,
+	0xC78, 0x003A3101,
+	0xC78, 0x003B3101,
+	0xC78, 0x003C3101,
+	0xC78, 0x003D3101,
+	0xC78, 0x003E3101,
+	0xC78, 0x003F3101,
+	0xC78, 0xFE403101,
+	0xC78, 0xFD413101,
+	0xC78, 0xFC423101,
+	0xC78, 0xFB433101,
+	0xC78, 0xFA443101,
+	0xC78, 0xF9453101,
+	0xC78, 0xF8463101,
+	0xC78, 0xF7473101,
+	0xC78, 0xF6483101,
+	0xC78, 0xF5493101,
+	0xC78, 0xF44A3101,
+	0xC78, 0xF34B3101,
+	0xC78, 0xF24C3101,
+	0xC78, 0xF14D3101,
+	0xC78, 0xF04E3101,
+	0xC78, 0xEF4F3101,
+	0xC78, 0xEE503101,
+	0xC78, 0xED513101,
+	0xC78, 0xEC523101,
+	0xC78, 0xEB533101,
+	0xC78, 0xEA543101,
+	0xC78, 0xE9553101,
+	0xC78, 0xE8563101,
+	0xC78, 0xE7573101,
+	0xC78, 0xE6583101,
+	0xC78, 0xE5593101,
+	0xC78, 0xE45A3101,
+	0xC78, 0xE35B3101,
+	0xC78, 0xE25C3101,
+	0xC78, 0xE15D3101,
+	0xC78, 0xE05E3101,
+	0xC78, 0x865F3101,
+	0xC78, 0x85603101,
+	0xC78, 0x84613101,
+	0xC78, 0x83623101,
+	0xC78, 0x82633101,
+	0xC78, 0x81643101,
+	0xC78, 0x80653101,
+	0xC78, 0x80663101,
+	0xC78, 0x80673101,
+	0xC78, 0x80683101,
+	0xC78, 0x80693101,
+	0xC78, 0x806A3101,
+	0xC78, 0x806B3101,
+	0xC78, 0x806C3101,
+	0xC78, 0x806D3101,
+	0xC78, 0x806E3101,
+	0xC78, 0x806F3101,
+	0xC78, 0x80703101,
+	0xC78, 0x80713101,
+	0xC78, 0x80723101,
+	0xC78, 0x80733101,
+	0xC78, 0x80743101,
+	0xC78, 0x80753101,
+	0xC78, 0x80763101,
+	0xC78, 0x80773101,
+	0xC78, 0x80783101,
+	0xC78, 0x80793101,
+	0xC78, 0x807A3101,
+	0xC78, 0x807B3101,
+	0xC78, 0x807C3101,
+	0xC78, 0x807D3101,
+	0xC78, 0x807E3101,
+	0xC78, 0x807F3101,
+	0xC78, 0xEF402001,
+	0xC78, 0xEF412001,
+	0xC78, 0xEF422001,
+	0xC78, 0xEF432001,
+	0xC78, 0xEF442001,
+	0xC78, 0xEF452001,
+	0xC78, 0xEF462001,
+	0xC78, 0xEF472001,
+	0xC78, 0xEF482001,
+	0xC78, 0xEF492001,
+	0xC78, 0xEF4A2001,
+	0xC78, 0xEF4B2001,
+	0xC78, 0xEF4C2001,
+	0xC78, 0xEF4D2001,
+	0xC78, 0xEF4E2001,
+	0xC78, 0xEF4F2001,
+	0xC78, 0xEF502001,
+	0xC78, 0xEF512001,
+	0xC78, 0xEF522001,
+	0xC78, 0xEF532001,
+	0xC78, 0xEF542001,
+	0xC78, 0xEF552001,
+	0xC78, 0xEF562001,
+	0xC78, 0xEF572001,
+	0xC78, 0xEF582001,
+	0xC78, 0xEF592001,
+	0xC78, 0xEF5A2001,
+	0xC78, 0xEF5B2001,
+	0xC78, 0xEF5C2001,
+	0xC78, 0xEF5D2001,
+	0xC78, 0xEF5E2001,
+	0xC78, 0xEF5F2001,
+	0xC78, 0xEF602001,
+	0xC78, 0xEE612001,
+	0xC78, 0xED622001,
+	0xC78, 0xEC632001,
+	0xC78, 0xEB642001,
+	0xC78, 0xEA652001,
+	0xC78, 0xE9662001,
+	0xC78, 0xE8672001,
+	0xC78, 0xCB682001,
+	0xC78, 0xCA692001,
+	0xC78, 0xC96A2001,
+	0xC78, 0xC86B2001,
+	0xC78, 0xC76C2001,
+	0xC78, 0xC66D2001,
+	0xC78, 0xC56E2001,
+	0xC78, 0xC46F2001,
+	0xC78, 0xC3702001,
+	0xC78, 0xC2712001,
+	0xC78, 0xC1722001,
+	0xC78, 0xC0732001,
+	0xC78, 0x82742001,
+	0xC78, 0x81752001,
+	0xC78, 0x80762001,
+	0xC78, 0x80772001,
+	0xC78, 0x80782001,
+	0xC78, 0x80792001,
+	0xC78, 0x807A2001,
+	0xC78, 0x807B2001,
+	0xC78, 0x807C2001,
+	0xC78, 0x807D2001,
+	0xC78, 0x807E2001,
+	0xC78, 0x807F2001,
+	0xC78, 0xFA001101,
+	0xC78, 0xF9011101,
+	0xC78, 0xF8021101,
+	0xC78, 0xF7031101,
+	0xC78, 0xF6041101,
+	0xC78, 0xF5051101,
+	0xC78, 0xF4061101,
+	0xC78, 0xD7071101,
+	0xC78, 0xD6081101,
+	0xC78, 0xD5091101,
+	0xC78, 0xD40A1101,
+	0xC78, 0x970B1101,
+	0xC78, 0x960C1101,
+	0xC78, 0x950D1101,
+	0xC78, 0x940E1101,
+	0xC78, 0x930F1101,
+	0xC78, 0x92101101,
+	0xC78, 0x91111101,
+	0xC78, 0x90121101,
+	0xC78, 0x8F131101,
+	0xC78, 0x8E141101,
+	0xC78, 0x8D151101,
+	0xC78, 0x8C161101,
+	0xC78, 0x8B171101,
+	0xC78, 0x8A181101,
+	0xC78, 0x89191101,
+	0xC78, 0x881A1101,
+	0xC78, 0x871B1101,
+	0xC78, 0x861C1101,
+	0xC78, 0x851D1101,
+	0xC78, 0x841E1101,
+	0xC78, 0x831F1101,
+	0xC78, 0x82201101,
+	0xC78, 0x81211101,
+	0xC78, 0x80221101,
+	0xC78, 0x43231101,
+	0xC78, 0x42241101,
+	0xC78, 0x41251101,
+	0xC78, 0x04261101,
+	0xC78, 0x03271101,
+	0xC78, 0x02281101,
+	0xC78, 0x01291101,
+	0xC78, 0x002A1101,
+	0xC78, 0xC42B1001,
+	0xC78, 0xC32C1001,
+	0xC78, 0xC22D1001,
+	0xC78, 0xC12E1001,
+	0xC78, 0xC02F1001,
+	0xC78, 0x85301001,
+	0xC78, 0x84311001,
+	0xC78, 0x83321001,
+	0xC78, 0x82331001,
+	0xC78, 0x81341001,
+	0xC78, 0x80351001,
+	0xC78, 0x05361001,
+	0xC78, 0x04371001,
+	0xC78, 0x03381001,
+	0xC78, 0x02391001,
+	0xC78, 0x013A1001,
+	0xC78, 0x003B1001,
+	0xC78, 0x003C1001,
+	0xC78, 0x003D1001,
+	0xC78, 0x003E1001,
+	0xC78, 0x003F1001,
+	0xC50, 0x69553422,
+	0xC50, 0x69553420,
+};
+
+RTW_DECL_TABLE_PHY_COND(rtw8723d_agc, rtw_phy_cfg_agc);
+
+static const u32 rtw8723d_bb[] = {
+	0x800, 0x80046C00,
+	0x804, 0x00000003,
+	0x808, 0x0000FC00,
+	0x80C, 0x0000000A,
+	0x810, 0x10001331,
+	0x814, 0x020C3D10,
+	0x818, 0x00200385,
+	0x81C, 0x00000000,
+	0x820, 0x01000100,
+	0x824, 0x00390204,
+	0x828, 0x00000000,
+	0x82C, 0x00000000,
+	0x830, 0x00000000,
+	0x834, 0x00000000,
+	0x838, 0x00000000,
+	0x83C, 0x00000000,
+	0x840, 0x00010000,
+	0x844, 0x00000000,
+	0x848, 0x00000000,
+	0x84C, 0x00000000,
+	0x850, 0x00000000,
+	0x854, 0x00000000,
+	0x858, 0x569A11A9,
+	0x85C, 0x01000014,
+	0x860, 0x66F60110,
+	0x864, 0x461F0641,
+	0x868, 0x00000000,
+	0x86C, 0x27272700,
+	0x870, 0x07000460,
+	0x874, 0x25004000,
+	0x878, 0x00000808,
+	0x87C, 0x004F0201,
+	0x880, 0xB2002E12,
+	0x884, 0x00000007,
+	0x888, 0x00000000,
+	0x88C, 0xCCC000C0,
+	0x890, 0x00000800,
+	0x894, 0xFFFFFFFE,
+	0x898, 0x40302010,
+	0x89C, 0x00706050,
+	0x900, 0x00000000,
+	0x904, 0x00000023,
+	0x908, 0x00000000,
+	0x90C, 0x81121111,
+	0x910, 0x00000402,
+	0x914, 0x00000300,
+	0x920, 0x18C6318C,
+	0x924, 0x0000018C,
+	0x948, 0x99000000,
+	0x94C, 0x00000010,
+	0x950, 0x00003800,
+	0x954, 0x5A380000,
+	0x958, 0x4BC6D87A,
+	0x95C, 0x04EB9B79,
+	0x96C, 0x00000003,
+	0x970, 0x00000000,
+	0x974, 0x00000000,
+	0x978, 0x00000000,
+	0x97C, 0x13000000,
+	0x980, 0x00000000,
+	0xA00, 0x00D046C8,
+	0xA04, 0x80FF800C,
+	0xA08, 0x8C838300,
+	0xA0C, 0x2E20100F,
+	0xA10, 0x9500BB78,
+	0xA14, 0x1114D028,
+	0xA18, 0x00881117,
+	0xA1C, 0x89140F00,
+	0xA20, 0xE82C0001,
+	0xA24, 0x64B80C1C,
+	0xA28, 0x00008810,
+	0xA2C, 0x00D30000,
+	0xA70, 0x101FBF00,
+	0xA74, 0x00000007,
+	0xA78, 0x00008900,
+	0xA7C, 0x225B0606,
+	0xA80, 0x2180FA74,
+	0xA84, 0x00200000,
+	0xA88, 0x040C0000,
+	0xA8C, 0x12345678,
+	0xA90, 0xABCDEF00,
+	0xA94, 0x001B1B89,
+	0xA98, 0x00000000,
+	0xA9C, 0x00020000,
+	0xAA0, 0x00000000,
+	0xAA4, 0x0000000C,
+	0xAA8, 0xCA100008,
+	0xAAC, 0x01235667,
+	0xAB0, 0x00000000,
+	0xAB4, 0x20201402,
+	0xB2C, 0x00000000,
+	0xC00, 0x48071D40,
+	0xC04, 0x03A05611,
+	0xC08, 0x000000E4,
+	0xC0C, 0x6C6C6C6C,
+	0xC10, 0x28800000,
+	0xC14, 0x40000100,
+	0xC18, 0x08800000,
+	0xC1C, 0x40000100,
+	0xC20, 0x00000000,
+	0xC24, 0x00000000,
+	0xC28, 0x00000000,
+	0xC2C, 0x00000000,
+	0xC30, 0x69E9AC48,
+	0xC34, 0x31000040,
+	0xC38, 0x21688080,
+	0xC3C, 0x000016D4,
+	0xC40, 0x1F78403F,
+	0xC44, 0x00010036,
+	0xC48, 0xEC020107,
+	0xC4C, 0x007F037F,
+	0xC50, 0x69553420,
+	0xC54, 0x43BC0094,
+	0xC58, 0x00015969,
+	0xC5C, 0x00310492,
+	0xC60, 0x00280A00,
+	0xC64, 0x7112848B,
+	0xC68, 0x47C074FF,
+	0xC6C, 0x00000036,
+	0xC70, 0x2C7F000D,
+	0xC74, 0x020600DB,
+	0xC78, 0x0000001F,
+	0xC7C, 0x00B91612,
+	0xC80, 0x390000E4,
+	0xC84, 0x21F60000,
+	0xC88, 0x40000100,
+	0xC8C, 0x20200000,
+	0xC90, 0x00091521,
+	0xC94, 0x00000000,
+	0xC98, 0x00121820,
+	0xC9C, 0x00007F7F,
+	0xCA0, 0x00012000,
+	0xCA4, 0x800000A0,
+	0xCA8, 0x84E6C606,
+	0xCAC, 0x00000060,
+	0xCB0, 0x00000000,
+	0xCB4, 0x00000000,
+	0xCB8, 0x00000000,
+	0xCBC, 0x28000000,
+	0xCC0, 0x0010A3D0,
+	0xCC4, 0x00000F7D,
+	0xCC8, 0x000442D6,
+	0xCCC, 0x00000000,
+	0xCD0, 0x000001C8,
+	0xCD4, 0x001C8000,
+	0xCD8, 0x00000100,
+	0xCDC, 0x40100000,
+	0xCE0, 0x00222220,
+	0xCE4, 0x20000000,
+	0xCE8, 0x37644302,
+	0xCEC, 0x2F97D40C,
+	0xD00, 0x00030740,
+	0xD04, 0x40020401,
+	0xD08, 0x0000907F,
+	0xD0C, 0x20010201,
+	0xD10, 0xA0633333,
+	0xD14, 0x3333BC53,
+	0xD18, 0x7A8F5B6F,
+	0xD2C, 0xCC979975,
+	0xD30, 0x00000000,
+	0xD34, 0x40608000,
+	0xD38, 0x88000000,
+	0xD3C, 0xC0127343,
+	0xD40, 0x00000000,
+	0xD44, 0x00000000,
+	0xD48, 0x00000000,
+	0xD4C, 0x00000000,
+	0xD50, 0x00000038,
+	0xD54, 0x00000000,
+	0xD58, 0x00000282,
+	0xD5C, 0x30032064,
+	0xD60, 0x4653DE68,
+	0xD64, 0x04518A3C,
+	0xD68, 0x00002101,
+	0xE00, 0x2D2D2D2D,
+	0xE04, 0x2D2D2D2D,
+	0xE08, 0x0390272D,
+	0xE10, 0x2D2D2D2D,
+	0xE14, 0x2D2D2D2D,
+	0xE18, 0x2D2D2D2D,
+	0xE1C, 0x2D2D2D2D,
+	0xE28, 0x00000000,
+	0xE30, 0x1000DC1F,
+	0xE34, 0x10008C1F,
+	0xE38, 0x02140102,
+	0xE3C, 0x681604C2,
+	0xE40, 0x01007C00,
+	0xE44, 0x01004800,
+	0xE48, 0xFB000000,
+	0xE4C, 0x000028D1,
+	0xE50, 0x1000DC1F,
+	0xE54, 0x10008C1F,
+	0xE58, 0x02140102,
+	0xE5C, 0x28160D05,
+	0xE60, 0x00000008,
+	0xE68, 0x001B25A4,
+	0xE6C, 0x01C00014,
+	0xE70, 0x01C00016,
+	0xE74, 0x02000014,
+	0xE78, 0x02000014,
+	0xE7C, 0x02000014,
+	0xE80, 0x02000014,
+	0xE84, 0x01C00014,
+	0xE88, 0x02000014,
+	0xE8C, 0x01C00014,
+	0xED0, 0x01C00014,
+	0xED4, 0x01C00014,
+	0xED8, 0x01C00014,
+	0xEDC, 0x00000014,
+	0xEE0, 0x00000014,
+	0xEE8, 0x21555448,
+	0xEEC, 0x03C00014,
+	0xF14, 0x00000003,
+	0xF00, 0x00100300,
+	0xF08, 0x0000800B,
+	0xF0C, 0x0000F007,
+	0xF10, 0x0000A487,
+	0xF1C, 0x80000064,
+	0xF38, 0x00030155,
+	0xF3C, 0x0000003A,
+	0xF4C, 0x13000000,
+	0xF50, 0x00000000,
+	0xF18, 0x00000000,
+};
+
+RTW_DECL_TABLE_PHY_COND(rtw8723d_bb, rtw_phy_cfg_bb);
+
+static const struct rtw_phy_pg_cfg_pair rtw8723d_bb_pg[] = {
+	{ 0, 0, 0, 0x00000e08, 0x0000ff00, 0x00003200, },
+	{ 0, 0, 0, 0x0000086c, 0xffffff00, 0x32323200, },
+	{ 0, 0, 0, 0x00000e00, 0xffffffff, 0x32343434, },
+	{ 0, 0, 0, 0x00000e04, 0xffffffff, 0x28303032, },
+	{ 0, 0, 0, 0x00000e10, 0xffffffff, 0x30323234, },
+	{ 0, 0, 0, 0x00000e14, 0xffffffff, 0x26282830, },
+};
+
+RTW_DECL_TABLE_BB_PG(rtw8723d_bb_pg);
+
+static const u32 rtw8723d_rf_a[] = {
+		0x050, 0x0001C000,
+		0x049, 0x0004AA00,
+		0x000, 0x00010000,
+		0x0B1, 0x00054573,
+		0x0B4, 0x000508AB,
+		0x0B7, 0x00014787,
+		0x0B8, 0x000064CB,
+		0x01B, 0x00073A40,
+		0x051, 0x00038CAF,
+		0x052, 0x000FCCA3,
+		0x053, 0x00090F38,
+		0x054, 0x00011083,
+		0x057, 0x000D0000,
+		0x08D, 0x00000A1A,
+		0x082, 0x00082AAC,
+		0x08E, 0x00076940,
+		0x08F, 0x00088400,
+		0x061, 0x00038CAF,
+		0x062, 0x000FCCA3,
+		0x063, 0x00090F38,
+		0x064, 0x00011083,
+		0x067, 0x000D0000,
+		0x092, 0x00082AAC,
+		0x0EF, 0x00000400,
+		0x030, 0x000008CA,
+		0x030, 0x000018CA,
+		0x030, 0x000028CA,
+		0x030, 0x000038CA,
+		0x0EF, 0x00000000,
+		0x0EE, 0x00000400,
+		0x030, 0x000008CA,
+		0x030, 0x000018CA,
+		0x030, 0x000028CA,
+		0x030, 0x000038CA,
+		0x0EE, 0x00000000,
+		0x0EF, 0x00000100,
+		0x033, 0x00000000,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000001,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000002,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000003,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000004,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000005,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000006,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000007,
+		0x03F, 0x0000CCA3,
+		0x0EF, 0x00000000,
+		0x0EE, 0x00000100,
+		0x033, 0x00000000,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000001,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000002,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000003,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000004,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000005,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000006,
+		0x03F, 0x0000CCA3,
+		0x033, 0x00000007,
+		0x03F, 0x0000CCA3,
+		0x0EE, 0x00000000,
+		0x0EF, 0x00000800,
+		0x030, 0x0000002D,
+		0x030, 0x0000122C,
+		0x030, 0x0000222F,
+		0x030, 0x0000326C,
+		0x030, 0x0000466B,
+		0x030, 0x0000566E,
+		0x030, 0x000066EB,
+		0x030, 0x000077EC,
+		0x030, 0x000087EF,
+		0x030, 0x000097F2,
+		0x030, 0x0000A7F5,
+		0x0EF, 0x00000000,
+		0x0EE, 0x00000800,
+		0x030, 0x00000001,
+		0x030, 0x00001011,
+		0x030, 0x00002011,
+		0x030, 0x00003013,
+		0x030, 0x00004033,
+		0x030, 0x00005033,
+		0x030, 0x00006037,
+		0x030, 0x0000703F,
+		0x030, 0x0000803F,
+		0x030, 0x0000903F,
+		0x030, 0x0000A03F,
+		0x0EE, 0x00000000,
+		0x082, 0x00083B8C,
+		0x0ED, 0x00000008,
+		0x030, 0x000030F6,
+		0x030, 0x00002004,
+		0x030, 0x000010F6,
+		0x030, 0x000000F6,
+		0x0ED, 0x00000000,
+		0x092, 0x00083B8C,
+		0x0EC, 0x00000008,
+		0x030, 0x000030F6,
+		0x030, 0x00002004,
+		0x030, 0x000010F6,
+		0x030, 0x000000F6,
+		0x0EC, 0x00000000,
+		0x0EF, 0x00010000,
+		0x030, 0x0001C11C,
+		0x030, 0x000181F4,
+		0x030, 0x00014108,
+		0x030, 0x000101E4,
+		0x030, 0x0000C11C,
+		0x030, 0x000081F4,
+		0x030, 0x00004108,
+		0x030, 0x000001E4,
+		0x0EF, 0x00000000,
+		0x0EE, 0x00010000,
+		0x030, 0x0001C11C,
+		0x030, 0x000181F4,
+		0x030, 0x00014108,
+		0x030, 0x000101E4,
+		0x030, 0x0000C11C,
+		0x030, 0x000081F4,
+		0x030, 0x00004108,
+		0x030, 0x000001E4,
+		0x0EE, 0x00000000,
+		0x0EF, 0x00080000,
+		0x033, 0x00000007,
+		0x03E, 0x0000005F,
+		0x03F, 0x000B3FDB,
+		0x033, 0x00000004,
+		0x03E, 0x0000005D,
+		0x03F, 0x000BFFE0,
+		0x033, 0x00000005,
+		0x03E, 0x0000005D,
+		0x03F, 0x000FBFCE,
+		0x033, 0x00000006,
+		0x03E, 0x0000005F,
+		0x03F, 0x000A7FFB,
+		0x0EF, 0x00000000,
+		0x0EE, 0x00000002,
+		0x030, 0x00000001,
+		0x030, 0x00002001,
+		0x030, 0x00004001,
+		0x030, 0x00007001,
+		0x030, 0x00006001,
+		0x030, 0x00020001,
+		0x030, 0x00022001,
+		0x030, 0x00024001,
+		0x030, 0x00027001,
+		0x030, 0x00026001,
+		0x030, 0x00034001,
+		0x030, 0x00037001,
+		0x030, 0x00036001,
+		0x030, 0x00008000,
+		0x030, 0x0000A000,
+		0x030, 0x0000C000,
+	0x83000100,	0x00000000,	0x40000000,	0x00000000,
+		0x030, 0x0000E024,
+	0xA0000000,	0x00000000,
+		0x030, 0x0000E000,
+	0xB0000000,	0x00000000,
+		0x030, 0x0001C000,
+		0x030, 0x0001E000,
+		0x0EE, 0x00000000,
+		0x0EE, 0x00020000,
+		0x0EF, 0x00020000,
+		0x030, 0x00000F75,
+		0x030, 0x00002F55,
+		0x030, 0x00003F75,
+		0x0EE, 0x00000000,
+		0x0EF, 0x00000000,
+		0x018, 0x00008401,
+		0xFFE, 0x00000000,
+};
+
+RTW_DECL_TABLE_RF_RADIO(rtw8723d_rf_a, A);
+
+static const struct rtw_txpwr_lmt_cfg_pair rtw8723d_txpwr_lmt[] = {
+	{0, 0, 0, 0, 1, 30, },
+	{2, 0, 0, 0, 1, 30, },
+	{1, 0, 0, 0, 1, 30, },
+	{0, 0, 0, 0, 2, 30, },
+	{2, 0, 0, 0, 2, 30, },
+	{1, 0, 0, 0, 2, 30, },
+	{0, 0, 0, 0, 3, 30, },
+	{2, 0, 0, 0, 3, 30, },
+	{1, 0, 0, 0, 3, 30, },
+	{0, 0, 0, 0, 4, 30, },
+	{2, 0, 0, 0, 4, 30, },
+	{1, 0, 0, 0, 4, 30, },
+	{0, 0, 0, 0, 5, 30, },
+	{2, 0, 0, 0, 5, 30, },
+	{1, 0, 0, 0, 5, 30, },
+	{0, 0, 0, 0, 6, 30, },
+	{2, 0, 0, 0, 6, 30, },
+	{1, 0, 0, 0, 6, 30, },
+	{0, 0, 0, 0, 7, 30, },
+	{2, 0, 0, 0, 7, 30, },
+	{1, 0, 0, 0, 7, 30, },
+	{0, 0, 0, 0, 8, 30, },
+	{2, 0, 0, 0, 8, 30, },
+	{1, 0, 0, 0, 8, 30, },
+	{0, 0, 0, 0, 9, 30, },
+	{2, 0, 0, 0, 9, 30, },
+	{1, 0, 0, 0, 9, 30, },
+	{0, 0, 0, 0, 10, 30, },
+	{2, 0, 0, 0, 10, 30, },
+	{1, 0, 0, 0, 10, 30, },
+	{0, 0, 0, 0, 11, 30, },
+	{2, 0, 0, 0, 11, 30, },
+	{1, 0, 0, 0, 11, 30, },
+	{0, 0, 0, 0, 12, 30, },
+	{2, 0, 0, 0, 12, 30, },
+	{1, 0, 0, 0, 12, 30, },
+	{0, 0, 0, 0, 13, 17, },
+	{2, 0, 0, 0, 13, 30, },
+	{1, 0, 0, 0, 13, 30, },
+	{0, 0, 0, 0, 14, 63, },
+	{2, 0, 0, 0, 14, 63, },
+	{1, 0, 0, 0, 14, 30, },
+	{0, 0, 0, 1, 1, 26, },
+	{2, 0, 0, 1, 1, 31, },
+	{1, 0, 0, 1, 1, 31, },
+	{0, 0, 0, 1, 2, 28, },
+	{2, 0, 0, 1, 2, 31, },
+	{1, 0, 0, 1, 2, 31, },
+	{0, 0, 0, 1, 3, 30, },
+	{2, 0, 0, 1, 3, 31, },
+	{1, 0, 0, 1, 3, 31, },
+	{0, 0, 0, 1, 4, 30, },
+	{2, 0, 0, 1, 4, 31, },
+	{1, 0, 0, 1, 4, 31, },
+	{0, 0, 0, 1, 5, 30, },
+	{2, 0, 0, 1, 5, 31, },
+	{1, 0, 0, 1, 5, 31, },
+	{0, 0, 0, 1, 6, 30, },
+	{2, 0, 0, 1, 6, 31, },
+	{1, 0, 0, 1, 6, 31, },
+	{0, 0, 0, 1, 7, 30, },
+	{2, 0, 0, 1, 7, 31, },
+	{1, 0, 0, 1, 7, 31, },
+	{0, 0, 0, 1, 8, 30, },
+	{2, 0, 0, 1, 8, 31, },
+	{1, 0, 0, 1, 8, 31, },
+	{0, 0, 0, 1, 9, 30, },
+	{2, 0, 0, 1, 9, 31, },
+	{1, 0, 0, 1, 9, 31, },
+	{0, 0, 0, 1, 10, 28, },
+	{2, 0, 0, 1, 10, 31, },
+	{1, 0, 0, 1, 10, 31, },
+	{0, 0, 0, 1, 11, 26, },
+	{2, 0, 0, 1, 11, 31, },
+	{1, 0, 0, 1, 11, 31, },
+	{0, 0, 0, 1, 12, 24, },
+	{2, 0, 0, 1, 12, 31, },
+	{1, 0, 0, 1, 12, 31, },
+	{0, 0, 0, 1, 13, 14, },
+	{2, 0, 0, 1, 13, 31, },
+	{1, 0, 0, 1, 13, 31, },
+	{0, 0, 0, 1, 14, 63, },
+	{2, 0, 0, 1, 14, 63, },
+	{1, 0, 0, 1, 14, 63, },
+	{0, 0, 0, 2, 1, 24, },
+	{2, 0, 0, 2, 1, 31, },
+	{1, 0, 0, 2, 1, 31, },
+	{0, 0, 0, 2, 2, 26, },
+	{2, 0, 0, 2, 2, 31, },
+	{1, 0, 0, 2, 2, 31, },
+	{0, 0, 0, 2, 3, 30, },
+	{2, 0, 0, 2, 3, 31, },
+	{1, 0, 0, 2, 3, 31, },
+	{0, 0, 0, 2, 4, 30, },
+	{2, 0, 0, 2, 4, 31, },
+	{1, 0, 0, 2, 4, 31, },
+	{0, 0, 0, 2, 5, 30, },
+	{2, 0, 0, 2, 5, 31, },
+	{1, 0, 0, 2, 5, 31, },
+	{0, 0, 0, 2, 6, 30, },
+	{2, 0, 0, 2, 6, 31, },
+	{1, 0, 0, 2, 6, 31, },
+	{0, 0, 0, 2, 7, 30, },
+	{2, 0, 0, 2, 7, 31, },
+	{1, 0, 0, 2, 7, 31, },
+	{0, 0, 0, 2, 8, 30, },
+	{2, 0, 0, 2, 8, 31, },
+	{1, 0, 0, 2, 8, 31, },
+	{0, 0, 0, 2, 9, 30, },
+	{2, 0, 0, 2, 9, 31, },
+	{1, 0, 0, 2, 9, 31, },
+	{0, 0, 0, 2, 10, 26, },
+	{2, 0, 0, 2, 10, 31, },
+	{1, 0, 0, 2, 10, 31, },
+	{0, 0, 0, 2, 11, 24, },
+	{2, 0, 0, 2, 11, 31, },
+	{1, 0, 0, 2, 11, 31, },
+	{0, 0, 0, 2, 12, 23, },
+	{2, 0, 0, 2, 12, 31, },
+	{1, 0, 0, 2, 12, 31, },
+	{0, 0, 0, 2, 13, 13, },
+	{2, 0, 0, 2, 13, 31, },
+	{1, 0, 0, 2, 13, 31, },
+	{0, 0, 0, 2, 14, 63, },
+	{2, 0, 0, 2, 14, 63, },
+	{1, 0, 0, 2, 14, 63, },
+	{0, 0, 0, 3, 1, 28, },
+	{2, 0, 0, 3, 1, 30, },
+	{1, 0, 0, 3, 1, 30, },
+	{0, 0, 0, 3, 2, 28, },
+	{2, 0, 0, 3, 2, 30, },
+	{1, 0, 0, 3, 2, 30, },
+	{0, 0, 0, 3, 3, 30, },
+	{2, 0, 0, 3, 3, 30, },
+	{1, 0, 0, 3, 3, 30, },
+	{0, 0, 0, 3, 4, 30, },
+	{2, 0, 0, 3, 4, 30, },
+	{1, 0, 0, 3, 4, 30, },
+	{0, 0, 0, 3, 5, 30, },
+	{2, 0, 0, 3, 5, 30, },
+	{1, 0, 0, 3, 5, 30, },
+	{0, 0, 0, 3, 6, 30, },
+	{2, 0, 0, 3, 6, 30, },
+	{1, 0, 0, 3, 6, 30, },
+	{0, 0, 0, 3, 7, 30, },
+	{2, 0, 0, 3, 7, 30, },
+	{1, 0, 0, 3, 7, 30, },
+	{0, 0, 0, 3, 8, 30, },
+	{2, 0, 0, 3, 8, 30, },
+	{1, 0, 0, 3, 8, 30, },
+	{0, 0, 0, 3, 9, 28, },
+	{2, 0, 0, 3, 9, 30, },
+	{1, 0, 0, 3, 9, 30, },
+	{0, 0, 0, 3, 10, 28, },
+	{2, 0, 0, 3, 10, 30, },
+	{1, 0, 0, 3, 10, 30, },
+	{0, 0, 0, 3, 11, 28, },
+	{2, 0, 0, 3, 11, 30, },
+	{1, 0, 0, 3, 11, 30, },
+	{0, 0, 0, 3, 12, 63, },
+	{2, 0, 0, 3, 12, 30, },
+	{1, 0, 0, 3, 12, 30, },
+	{0, 0, 0, 3, 13, 63, },
+	{2, 0, 0, 3, 13, 30, },
+	{1, 0, 0, 3, 13, 30, },
+	{0, 0, 0, 3, 14, 63, },
+	{2, 0, 0, 3, 14, 63, },
+	{1, 0, 0, 3, 14, 63, },
+	{0, 0, 1, 2, 1, 63, },
+	{2, 0, 1, 2, 1, 63, },
+	{1, 0, 1, 2, 1, 63, },
+	{0, 0, 1, 2, 2, 63, },
+	{2, 0, 1, 2, 2, 63, },
+	{1, 0, 1, 2, 2, 63, },
+	{0, 0, 1, 2, 3, 24, },
+	{2, 0, 1, 2, 3, 30, },
+	{1, 0, 1, 2, 3, 30, },
+	{0, 0, 1, 2, 4, 24, },
+	{2, 0, 1, 2, 4, 30, },
+	{1, 0, 1, 2, 4, 30, },
+	{0, 0, 1, 2, 5, 24, },
+	{2, 0, 1, 2, 5, 30, },
+	{1, 0, 1, 2, 5, 30, },
+	{0, 0, 1, 2, 6, 24, },
+	{2, 0, 1, 2, 6, 30, },
+	{1, 0, 1, 2, 6, 30, },
+	{0, 0, 1, 2, 7, 24, },
+	{2, 0, 1, 2, 7, 30, },
+	{1, 0, 1, 2, 7, 30, },
+	{0, 0, 1, 2, 8, 24, },
+	{2, 0, 1, 2, 8, 30, },
+	{1, 0, 1, 2, 8, 30, },
+	{0, 0, 1, 2, 9, 24, },
+	{2, 0, 1, 2, 9, 30, },
+	{1, 0, 1, 2, 9, 30, },
+	{0, 0, 1, 2, 10, 22, },
+	{2, 0, 1, 2, 10, 30, },
+	{1, 0, 1, 2, 10, 30, },
+	{0, 0, 1, 2, 11, 20, },
+	{2, 0, 1, 2, 11, 30, },
+	{1, 0, 1, 2, 11, 30, },
+	{0, 0, 1, 2, 12, 63, },
+	{2, 0, 1, 2, 12, 30, },
+	{1, 0, 1, 2, 12, 30, },
+	{0, 0, 1, 2, 13, 63, },
+	{2, 0, 1, 2, 13, 30, },
+	{1, 0, 1, 2, 13, 30, },
+	{0, 0, 1, 2, 14, 63, },
+	{2, 0, 1, 2, 14, 63, },
+	{1, 0, 1, 2, 14, 63, },
+	{0, 0, 1, 3, 1, 63, },
+	{2, 0, 1, 3, 1, 63, },
+	{1, 0, 1, 3, 1, 63, },
+	{0, 0, 1, 3, 2, 63, },
+	{2, 0, 1, 3, 2, 63, },
+	{1, 0, 1, 3, 2, 63, },
+	{0, 0, 1, 3, 3, 26, },
+	{2, 0, 1, 3, 3, 26, },
+	{1, 0, 1, 3, 3, 26, },
+	{0, 0, 1, 3, 4, 26, },
+	{2, 0, 1, 3, 4, 26, },
+	{1, 0, 1, 3, 4, 26, },
+	{0, 0, 1, 3, 5, 26, },
+	{2, 0, 1, 3, 5, 26, },
+	{1, 0, 1, 3, 5, 26, },
+	{0, 0, 1, 3, 6, 26, },
+	{2, 0, 1, 3, 6, 26, },
+	{1, 0, 1, 3, 6, 26, },
+	{0, 0, 1, 3, 7, 26, },
+	{2, 0, 1, 3, 7, 26, },
+	{1, 0, 1, 3, 7, 26, },
+	{0, 0, 1, 3, 8, 26, },
+	{2, 0, 1, 3, 8, 26, },
+	{1, 0, 1, 3, 8, 26, },
+	{0, 0, 1, 3, 9, 26, },
+	{2, 0, 1, 3, 9, 26, },
+	{1, 0, 1, 3, 9, 26, },
+	{0, 0, 1, 3, 10, 26, },
+	{2, 0, 1, 3, 10, 26, },
+	{1, 0, 1, 3, 10, 26, },
+	{0, 0, 1, 3, 11, 26, },
+	{2, 0, 1, 3, 11, 26, },
+	{1, 0, 1, 3, 11, 26, },
+	{0, 0, 1, 3, 12, 63, },
+	{2, 0, 1, 3, 12, 26, },
+	{1, 0, 1, 3, 12, 26, },
+	{0, 0, 1, 3, 13, 63, },
+	{2, 0, 1, 3, 13, 26, },
+	{1, 0, 1, 3, 13, 26, },
+	{0, 0, 1, 3, 14, 63, },
+	{2, 0, 1, 3, 14, 63, },
+	{1, 0, 1, 3, 14, 63, },
+};
+
+RTW_DECL_TABLE_TXPWR_LMT(rtw8723d_txpwr_lmt);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8723d_table.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8723d_table.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#ifndef __RTW8723D_TABLE_H__
+#define __RTW8723D_TABLE_H__
+
+extern const struct rtw_table rtw8723d_mac_tbl;
+extern const struct rtw_table rtw8723d_agc_tbl;
+extern const struct rtw_table rtw8723d_bb_tbl;
+extern const struct rtw_table rtw8723d_bb_pg_tbl;
+extern const struct rtw_table rtw8723d_rf_a_tbl;
+extern const struct rtw_table rtw8723d_txpwr_lmt_tbl;
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -13,6 +13,7 @@
 #include "mac.h"
 #include "reg.h"
 #include "debug.h"
+#include "bf.h"
 
 static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
 				     u8 rx_path, bool is_tx2_path);
@@ -43,6 +44,8 @@
 	efuse->country_code[1] = map->country_code[1];
 	efuse->bt_setting = map->rf_bt_setting;
 	efuse->regd = map->rf_board_option & 0x7;
+	efuse->thermal_meter[RF_PATH_A] = map->thermal_meter;
+	efuse->thermal_meter_k = map->thermal_meter;
 
 	for (i = 0; i < 4; i++)
 		efuse->txpwr_idx_table[i] = map->txpwr_idx_table[i];
@@ -75,6 +78,56 @@
 	rtw_write32_mask(rtwdev, 0x974, (BIT(11) | BIT(10)), 0x3);
 }
 
+#define RTW_TXSCALE_SIZE 37
+static const u32 rtw8822b_txscale_tbl[RTW_TXSCALE_SIZE] = {
+	0x081, 0x088, 0x090, 0x099, 0x0a2, 0x0ac, 0x0b6, 0x0c0, 0x0cc, 0x0d8,
+	0x0e5, 0x0f2, 0x101, 0x110, 0x120, 0x131, 0x143, 0x156, 0x16a, 0x180,
+	0x197, 0x1af, 0x1c8, 0x1e3, 0x200, 0x21e, 0x23e, 0x261, 0x285, 0x2ab,
+	0x2d3, 0x2fe, 0x32b, 0x35c, 0x38e, 0x3c4, 0x3fe
+};
+
+static const u8 rtw8822b_get_swing_index(struct rtw_dev *rtwdev)
+{
+	u8 i = 0;
+	u32 swing, table_value;
+
+	swing = rtw_read32_mask(rtwdev, 0xc1c, 0xffe00000);
+	for (i = 0; i < RTW_TXSCALE_SIZE; i++) {
+		table_value = rtw8822b_txscale_tbl[i];
+		if (swing == table_value)
+			break;
+	}
+
+	return i;
+}
+
+static void rtw8822b_pwrtrack_init(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 swing_idx = rtw8822b_get_swing_index(rtwdev);
+	u8 path;
+
+	if (swing_idx >= RTW_TXSCALE_SIZE)
+		dm_info->default_ofdm_index = 24;
+	else
+		dm_info->default_ofdm_index = swing_idx;
+
+	for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++) {
+		ewma_thermal_init(&dm_info->avg_thermal[path]);
+		dm_info->delta_power_index[path] = 0;
+	}
+	dm_info->pwr_trk_triggered = false;
+	dm_info->pwr_trk_init_trigger = true;
+	dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
+}
+
+static void rtw8822b_phy_bf_init(struct rtw_dev *rtwdev)
+{
+	rtw_bf_phy_init(rtwdev);
+	/* Grouping bitmap parameters */
+	rtw_write32(rtwdev, 0x1C94, 0xAFFFAFFF);
+}
+
 static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
@@ -106,6 +159,9 @@
 	rtw_phy_init(rtwdev);
 
 	rtw8822b_phy_rfe_init(rtwdev);
+	rtw8822b_pwrtrack_init(rtwdev);
+
+	rtw8822b_phy_bf_init(rtwdev);
 }
 
 #define WLAN_SLOT_TIME		0x09
@@ -211,9 +267,8 @@
 static void rtw8822b_set_channel_rfe_efem(struct rtw_dev *rtwdev, u8 channel)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
-	bool is_channel_2g = (channel <= 14) ? true : false;
 
-	if (is_channel_2g) {
+	if (IS_CH_2G_BAND(channel)) {
 		rtw_write32s_mask(rtwdev, REG_RFESEL0, 0xffffff, 0x705770);
 		rtw_write32s_mask(rtwdev, REG_RFESEL8, MASKBYTE1, 0x57);
 		rtw_write32s_mask(rtwdev, REG_RFECTL, BIT(4), 0);
@@ -241,9 +296,8 @@
 static void rtw8822b_set_channel_rfe_ifem(struct rtw_dev *rtwdev, u8 channel)
 {
 	struct rtw_hal *hal = &rtwdev->hal;
-	bool is_channel_2g = (channel <= 14) ? true : false;
 
-	if (is_channel_2g) {
+	if (IS_CH_2G_BAND(channel)) {
 		/* signal source */
 		rtw_write32s_mask(rtwdev, REG_RFESEL0, 0xffffff, 0x745774);
 		rtw_write32s_mask(rtwdev, REG_RFESEL8, MASKBYTE1, 0x57);
@@ -255,7 +309,7 @@
 
 	rtw_write32s_mask(rtwdev, REG_RFEINV, BIT(11) | BIT(10) | 0x3f, 0x0);
 
-	if (is_channel_2g) {
+	if (IS_CH_2G_BAND(channel)) {
 		if (hal->antenna_rx == BB_PATH_AB ||
 		    hal->antenna_tx == BB_PATH_AB) {
 			/* 2TX or 2RX */
@@ -337,6 +391,7 @@
 
 static const struct rtw8822b_rfe_info rtw8822b_rfe_info[] = {
 	[2] = I2GE5G_CCUT(efem),
+	[3] = IFEM_EXT_CCUT(ifem),
 	[5] = IFEM_EXT_CCUT(ifem),
 };
 
@@ -350,7 +405,7 @@
 	u32 reg82c, reg830, reg838;
 	bool is_efem_cca = false, is_ifem_cca = false, is_rfe_type = false;
 
-	if (channel <= 14) {
+	if (IS_CH_2G_BAND(channel)) {
 		cca_ccut = rfe_info->cca_ccut_2g;
 
 		if (hal->antenna_rx == BB_PATH_A ||
@@ -381,7 +436,7 @@
 		is_efem_cca = true;
 		break;
 	case RTW_RFE_IFEM2G_EFEM5G:
-		if (channel <= 14)
+		if (IS_CH_2G_BAND(channel))
 			is_ifem_cca = true;
 		else
 			is_efem_cca = true;
@@ -405,9 +460,7 @@
 	if (is_efem_cca && !(hal->cut_version == RTW_CHIP_VER_CUT_B))
 		rtw_write32_mask(rtwdev, REG_L1WT, MASKDWORD, 0x9194b2b9);
 
-	if (bw == RTW_CHANNEL_WIDTH_20 &&
-	    ((channel >= 52 && channel <= 64) ||
-	     (channel >= 100 && channel <= 144)))
+	if (bw == RTW_CHANNEL_WIDTH_20 && IS_CH_5G_BAND_MID(channel))
 		rtw_write32_mask(rtwdev, REG_CCA2ND, 0xf0, 0x4);
 }
 
@@ -442,7 +495,7 @@
 	rf_reg18 &= ~(RF18_BAND_MASK | RF18_CHANNEL_MASK | RF18_RFSI_MASK |
 		      RF18_BW_MASK);
 
-	rf_reg18 |= (channel <= 14 ? RF18_BAND_2G : RF18_BAND_5G);
+	rf_reg18 |= (IS_CH_2G_BAND(channel) ? RF18_BAND_2G : RF18_BAND_5G);
 	rf_reg18 |= (channel & RF18_CHANNEL_MASK);
 	if (channel > 144)
 		rf_reg18 |= RF18_RFSI_GT_CH144;
@@ -464,13 +517,13 @@
 		break;
 	}
 
-	if (channel <= 14)
+	if (IS_CH_2G_BAND(channel))
 		rf_reg_be = 0x0;
-	else if (channel >= 36 && channel <= 64)
+	else if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel))
 		rf_reg_be = low_band[(channel - 36) >> 1];
-	else if (channel >= 100 && channel <= 144)
+	else if (IS_CH_5G_BAND_3(channel))
 		rf_reg_be = middle_band[(channel - 100) >> 1];
-	else if (channel >= 149 && channel <= 177)
+	else if (IS_CH_5G_BAND_4(channel))
 		rf_reg_be = high_band[(channel - 149) >> 1];
 	else
 		goto err;
@@ -539,7 +592,7 @@
 	u8 rfe_option = efuse->rfe_option;
 	u32 val32;
 
-	if (channel <= 14) {
+	if (IS_CH_2G_BAND(channel)) {
 		rtw_write32_mask(rtwdev, REG_RXPSEL, BIT(28), 0x1);
 		rtw_write32_mask(rtwdev, REG_CCK_CHECK, BIT(7), 0x0);
 		rtw_write32_mask(rtwdev, REG_ENTXCCK, BIT(18), 0x0);
@@ -556,22 +609,22 @@
 		}
 
 		rtw_write32_mask(rtwdev, REG_RFEINV, 0x300, 0x2);
-	} else if (channel > 35) {
+	} else if (IS_CH_5G_BAND(channel)) {
 		rtw_write32_mask(rtwdev, REG_ENTXCCK, BIT(18), 0x1);
 		rtw_write32_mask(rtwdev, REG_CCK_CHECK, BIT(7), 0x1);
 		rtw_write32_mask(rtwdev, REG_RXPSEL, BIT(28), 0x0);
 		rtw_write32_mask(rtwdev, REG_RXCCAMSK, 0x0000FC00, 34);
 
-		if (channel >= 36 && channel <= 64)
+		if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel))
 			rtw_write32_mask(rtwdev, REG_ACGG2TBL, 0x1f, 0x1);
-		else if (channel >= 100 && channel <= 144)
+		else if (IS_CH_5G_BAND_3(channel))
 			rtw_write32_mask(rtwdev, REG_ACGG2TBL, 0x1f, 0x2);
-		else if (channel >= 149)
+		else if (IS_CH_5G_BAND_4(channel))
 			rtw_write32_mask(rtwdev, REG_ACGG2TBL, 0x1f, 0x3);
 
-		if (channel >= 36 && channel <= 48)
+		if (IS_CH_5G_BAND_1(channel))
 			rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, 0x494);
-		else if (channel >= 52 && channel <= 64)
+		else if (IS_CH_5G_BAND_2(channel))
 			rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, 0x453);
 		else if (channel >= 100 && channel <= 116)
 			rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, 0x452);
@@ -592,7 +645,7 @@
 		rtw_write32_mask(rtwdev, REG_ADC160, BIT(30), 0x1);
 		break;
 	case RTW_CHANNEL_WIDTH_40:
-		if (primary_ch_idx == 1)
+		if (primary_ch_idx == RTW_SC_20_UPPER)
 			rtw_write32_set(rtwdev, REG_RXSB, BIT(4));
 		else
 			rtw_write32_clr(rtwdev, REG_RXSB, BIT(4));
@@ -612,7 +665,7 @@
 
 		rtw_write32_mask(rtwdev, REG_ADC160, BIT(30), 0x1);
 
-		if (rfe_option == 2) {
+		if (rfe_option == 2 || rfe_option == 3) {
 			rtw_write32_mask(rtwdev, REG_L1PKWT, 0x0000f000, 0x6);
 			rtw_write32_mask(rtwdev, REG_ADC40, BIT(10), 0x1);
 		}
@@ -763,6 +816,7 @@
 static void query_phy_status_page0(struct rtw_dev *rtwdev, u8 *phy_status,
 				   struct rtw_rx_pkt_stat *pkt_stat)
 {
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
 	s8 min_rx_power = -120;
 	u8 pwdb = GET_PHY_STAT_P0_PWDB(phy_status);
 
@@ -772,13 +826,19 @@
 	pkt_stat->bw = RTW_CHANNEL_WIDTH_20;
 	pkt_stat->signal_power = max(pkt_stat->rx_power[RF_PATH_A],
 				     min_rx_power);
+	dm_info->rssi[RF_PATH_A] = pkt_stat->rssi;
 }
 
 static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status,
 				   struct rtw_rx_pkt_stat *pkt_stat)
 {
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
 	u8 rxsc, bw;
 	s8 min_rx_power = -120;
+	s8 rx_evm;
+	u8 evm_dbm = 0;
+	u8 rssi;
+	int path;
 
 	if (pkt_stat->rate > DESC_RATE11M && pkt_stat->rate < DESC_RATEMCS0)
 		rxsc = GET_PHY_STAT_P1_L_RXSC(phy_status);
@@ -801,6 +861,34 @@
 	pkt_stat->signal_power = max3(pkt_stat->rx_power[RF_PATH_A],
 				      pkt_stat->rx_power[RF_PATH_B],
 				      min_rx_power);
+
+	dm_info->curr_rx_rate = pkt_stat->rate;
+
+	pkt_stat->rx_evm[RF_PATH_A] = GET_PHY_STAT_P1_RXEVM_A(phy_status);
+	pkt_stat->rx_evm[RF_PATH_B] = GET_PHY_STAT_P1_RXEVM_B(phy_status);
+
+	pkt_stat->rx_snr[RF_PATH_A] = GET_PHY_STAT_P1_RXSNR_A(phy_status);
+	pkt_stat->rx_snr[RF_PATH_B] = GET_PHY_STAT_P1_RXSNR_B(phy_status);
+
+	pkt_stat->cfo_tail[RF_PATH_A] = GET_PHY_STAT_P1_CFO_TAIL_A(phy_status);
+	pkt_stat->cfo_tail[RF_PATH_B] = GET_PHY_STAT_P1_CFO_TAIL_B(phy_status);
+
+	for (path = 0; path <= rtwdev->hal.rf_path_num; path++) {
+		rssi = rtw_phy_rf_power_2_rssi(&pkt_stat->rx_power[path], 1);
+		dm_info->rssi[path] = rssi;
+		dm_info->rx_snr[path] = pkt_stat->rx_snr[path] >> 1;
+		dm_info->cfo_tail[path] = (pkt_stat->cfo_tail[path] * 5) >> 1;
+
+		rx_evm = pkt_stat->rx_evm[path];
+
+		if (rx_evm < 0) {
+			if (rx_evm == S8_MIN)
+				evm_dbm = 0;
+			else
+				evm_dbm = ((u8)-rx_evm >> 1);
+		}
+		dm_info->rx_evm_dbm[path] = evm_dbm;
+	}
 }
 
 static void query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status,
@@ -836,7 +924,8 @@
 	pkt_stat->phy_status = GET_RX_DESC_PHYST(rx_desc);
 	pkt_stat->icv_err = GET_RX_DESC_ICV_ERR(rx_desc);
 	pkt_stat->crc_err = GET_RX_DESC_CRC32(rx_desc);
-	pkt_stat->decrypted = !GET_RX_DESC_SWDEC(rx_desc);
+	pkt_stat->decrypted = !GET_RX_DESC_SWDEC(rx_desc) &&
+			      GET_RX_DESC_ENC_TYPE(rx_desc) != RX_DESC_ENC_NONE;
 	pkt_stat->is_c2h = GET_RX_DESC_C2H(rx_desc);
 	pkt_stat->pkt_len = GET_RX_DESC_PKT_LEN(rx_desc);
 	pkt_stat->drv_info_sz = GET_RX_DESC_DRV_INFO_SIZE(rx_desc);
@@ -935,7 +1024,7 @@
 	u8 ldo_pwr;
 
 	ldo_pwr = rtw_read8(rtwdev, REG_LDO_EFUSE_CTRL + 3);
-	ldo_pwr = enable ? ldo_pwr | BIT(7) : ldo_pwr & ~BIT(7);
+	ldo_pwr = enable ? ldo_pwr | BIT_LDO25_EN : ldo_pwr & ~BIT_LDO25_EN;
 	rtw_write8(rtwdev, REG_LDO_EFUSE_CTRL + 3, ldo_pwr);
 }
 
@@ -946,6 +1035,7 @@
 	u32 cck_fa_cnt;
 	u32 ofdm_fa_cnt;
 	u32 crc32_cnt;
+	u32 cca32_cnt;
 
 	cck_enable = rtw_read32(rtwdev, 0x808) & BIT(28);
 	cck_fa_cnt = rtw_read16(rtwdev, 0xa5c);
@@ -969,6 +1059,15 @@
 	dm_info->vht_ok_cnt = crc32_cnt & 0xffff;
 	dm_info->vht_err_cnt = (crc32_cnt & 0xffff0000) >> 16;
 
+	cca32_cnt = rtw_read32(rtwdev, 0xf08);
+	dm_info->ofdm_cca_cnt = ((cca32_cnt & 0xffff0000) >> 16);
+	dm_info->total_cca_cnt = dm_info->ofdm_cca_cnt;
+	if (cck_enable) {
+		cca32_cnt = rtw_read32(rtwdev, 0xfcc);
+		dm_info->cck_cca_cnt = cca32_cnt & 0xffff;
+		dm_info->total_cca_cnt += dm_info->cck_cca_cnt;
+	}
+
 	rtw_write32_set(rtwdev, 0x9a4, BIT(17));
 	rtw_write32_clr(rtwdev, 0x9a4, BIT(17));
 	rtw_write32_clr(rtwdev, 0xa2c, BIT(15));
@@ -1255,6 +1354,226 @@
 	}
 }
 
+static void rtw8822b_txagc_swing_offset(struct rtw_dev *rtwdev, u8 path,
+					u8 tx_pwr_idx_offset,
+					s8 *txagc_idx, u8 *swing_idx)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s8 delta_pwr_idx = dm_info->delta_power_index[path];
+	u8 swing_upper_bound = dm_info->default_ofdm_index + 10;
+	u8 swing_lower_bound = 0;
+	u8 max_tx_pwr_idx_offset = 0xf;
+	s8 agc_index = 0;
+	u8 swing_index = dm_info->default_ofdm_index;
+
+	tx_pwr_idx_offset = min_t(u8, tx_pwr_idx_offset, max_tx_pwr_idx_offset);
+
+	if (delta_pwr_idx >= 0) {
+		if (delta_pwr_idx <= tx_pwr_idx_offset) {
+			agc_index = delta_pwr_idx;
+			swing_index = dm_info->default_ofdm_index;
+		} else if (delta_pwr_idx > tx_pwr_idx_offset) {
+			agc_index = tx_pwr_idx_offset;
+			swing_index = dm_info->default_ofdm_index +
+					delta_pwr_idx - tx_pwr_idx_offset;
+			swing_index = min_t(u8, swing_index, swing_upper_bound);
+		}
+	} else {
+		if (dm_info->default_ofdm_index > abs(delta_pwr_idx))
+			swing_index =
+				dm_info->default_ofdm_index + delta_pwr_idx;
+		else
+			swing_index = swing_lower_bound;
+		swing_index = max_t(u8, swing_index, swing_lower_bound);
+
+		agc_index = 0;
+	}
+
+	if (swing_index >= RTW_TXSCALE_SIZE) {
+		rtw_warn(rtwdev, "swing index overflow\n");
+		swing_index = RTW_TXSCALE_SIZE - 1;
+	}
+	*txagc_idx = agc_index;
+	*swing_idx = swing_index;
+}
+
+static void rtw8822b_pwrtrack_set_pwr(struct rtw_dev *rtwdev, u8 path,
+				      u8 pwr_idx_offset)
+{
+	s8 txagc_idx;
+	u8 swing_idx;
+	u32 reg1, reg2;
+
+	if (path == RF_PATH_A) {
+		reg1 = 0xc94;
+		reg2 = 0xc1c;
+	} else if (path == RF_PATH_B) {
+		reg1 = 0xe94;
+		reg2 = 0xe1c;
+	} else {
+		return;
+	}
+
+	rtw8822b_txagc_swing_offset(rtwdev, path, pwr_idx_offset,
+				    &txagc_idx, &swing_idx);
+	rtw_write32_mask(rtwdev, reg1, GENMASK(29, 25), txagc_idx);
+	rtw_write32_mask(rtwdev, reg2, GENMASK(31, 21),
+			 rtw8822b_txscale_tbl[swing_idx]);
+}
+
+static void rtw8822b_pwrtrack_set(struct rtw_dev *rtwdev, u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 pwr_idx_offset, tx_pwr_idx;
+	u8 channel = rtwdev->hal.current_channel;
+	u8 band_width = rtwdev->hal.current_band_width;
+	u8 regd = rtwdev->regd.txpwr_regd;
+	u8 tx_rate = dm_info->tx_rate;
+	u8 max_pwr_idx = rtwdev->chip->max_power_index;
+
+	tx_pwr_idx = rtw_phy_get_tx_power_index(rtwdev, path, tx_rate,
+						band_width, channel, regd);
+
+	tx_pwr_idx = min_t(u8, tx_pwr_idx, max_pwr_idx);
+
+	pwr_idx_offset = max_pwr_idx - tx_pwr_idx;
+
+	rtw8822b_pwrtrack_set_pwr(rtwdev, path, pwr_idx_offset);
+}
+
+static void rtw8822b_phy_pwrtrack_path(struct rtw_dev *rtwdev,
+				       struct rtw_swing_table *swing_table,
+				       u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 power_idx_cur, power_idx_last;
+	u8 delta;
+
+	/* 8822B only has one thermal meter at PATH A */
+	delta = rtw_phy_pwrtrack_get_delta(rtwdev, RF_PATH_A);
+
+	power_idx_last = dm_info->delta_power_index[path];
+	power_idx_cur = rtw_phy_pwrtrack_get_pwridx(rtwdev, swing_table,
+						    path, RF_PATH_A, delta);
+
+	/* if delta of power indexes are the same, just skip */
+	if (power_idx_cur == power_idx_last)
+		return;
+
+	dm_info->delta_power_index[path] = power_idx_cur;
+	rtw8822b_pwrtrack_set(rtwdev, path);
+}
+
+static void rtw8822b_phy_pwrtrack(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	struct rtw_swing_table swing_table;
+	u8 thermal_value, path;
+
+	rtw_phy_config_swing_table(rtwdev, &swing_table);
+
+	if (rtwdev->efuse.thermal_meter[RF_PATH_A] == 0xff)
+		return;
+
+	thermal_value = rtw_read_rf(rtwdev, RF_PATH_A, RF_T_METER, 0xfc00);
+
+	rtw_phy_pwrtrack_avg(rtwdev, thermal_value, RF_PATH_A);
+
+	if (dm_info->pwr_trk_init_trigger)
+		dm_info->pwr_trk_init_trigger = false;
+	else if (!rtw_phy_pwrtrack_thermal_changed(rtwdev, thermal_value,
+						   RF_PATH_A))
+		goto iqk;
+
+	for (path = 0; path < rtwdev->hal.rf_path_num; path++)
+		rtw8822b_phy_pwrtrack_path(rtwdev, &swing_table, path);
+
+iqk:
+	if (rtw_phy_pwrtrack_need_iqk(rtwdev))
+		rtw8822b_do_iqk(rtwdev);
+}
+
+static void rtw8822b_pwr_track(struct rtw_dev *rtwdev)
+{
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	if (efuse->power_track_type != 0)
+		return;
+
+	if (!dm_info->pwr_trk_triggered) {
+		rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER,
+			     GENMASK(17, 16), 0x03);
+		dm_info->pwr_trk_triggered = true;
+		return;
+	}
+
+	rtw8822b_phy_pwrtrack(rtwdev);
+	dm_info->pwr_trk_triggered = false;
+}
+
+static void rtw8822b_bf_config_bfee_su(struct rtw_dev *rtwdev,
+				       struct rtw_vif *vif,
+				       struct rtw_bfee *bfee, bool enable)
+{
+	if (enable)
+		rtw_bf_enable_bfee_su(rtwdev, vif, bfee);
+	else
+		rtw_bf_remove_bfee_su(rtwdev, bfee);
+}
+
+static void rtw8822b_bf_config_bfee_mu(struct rtw_dev *rtwdev,
+				       struct rtw_vif *vif,
+				       struct rtw_bfee *bfee, bool enable)
+{
+	if (enable)
+		rtw_bf_enable_bfee_mu(rtwdev, vif, bfee);
+	else
+		rtw_bf_remove_bfee_mu(rtwdev, bfee);
+}
+
+static void rtw8822b_bf_config_bfee(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+				    struct rtw_bfee *bfee, bool enable)
+{
+	if (bfee->role == RTW_BFEE_SU)
+		rtw8822b_bf_config_bfee_su(rtwdev, vif, bfee, enable);
+	else if (bfee->role == RTW_BFEE_MU)
+		rtw8822b_bf_config_bfee_mu(rtwdev, vif, bfee, enable);
+	else
+		rtw_warn(rtwdev, "wrong bfee role\n");
+}
+
+static void rtw8822b_adaptivity_init(struct rtw_dev *rtwdev)
+{
+	rtw_phy_set_edcca_th(rtwdev, 0x7f, 0x7f);
+	/* mac edcca state setting */
+	rtw_write32_mask(rtwdev, REG_TX_PTCL_CTRL, BIT_DIS_EDCCA, 0);
+	rtw_write32_mask(rtwdev, REG_RD_CTRL, BIT_EDCCA_MSK_CNTDOWN_EN, 1);
+
+	rtw_write32_mask(rtwdev, REG_EDCCA_SOURCE, BIT_SOURCE_OPTION, 1);
+	rtw_write32_mask(rtwdev, REG_EDCCA_POW_MA, BIT_MA_LEVEL, 0);
+	/* edcca decistion opt */
+	rtw_write32_mask(rtwdev, REG_EDCCA_DECISION, BIT_EDCCA_OPTION, 1);
+}
+
+static void rtw8822b_adaptivity(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s8 l2h, h2l;
+	u8 igi;
+
+	igi = dm_info->igi_history[0];
+	if (dm_info->edcca_mode == RTW_EDCCA_NORMAL) {
+		l2h = max_t(s8, igi + EDCCA_IGI_L2H_DIFF, EDCCA_TH_L2H_LB);
+		h2l = l2h - EDCCA_L2H_H2L_DIFF_NORMAL;
+	} else {
+		l2h = min_t(s8, igi, dm_info->l2h_th_ini);
+		h2l = l2h - EDCCA_L2H_H2L_DIFF;
+	}
+
+	rtw_phy_set_edcca_th(rtwdev, l2h, h2l);
+}
+
 static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] = {
 	{0x0086,
 	 RTW_PWR_CUT_ALL_MSK,
@@ -1754,6 +2073,7 @@
 
 static const struct rtw_rfe_def rtw8822b_rfe_defs[] = {
 	[2] = RTW_DEF_RFE(8822b, 2, 2),
+	[3] = RTW_DEF_RFE(8822b, 3, 0),
 	[5] = RTW_DEF_RFE(8822b, 5, 5),
 };
 
@@ -1762,6 +2082,12 @@
 	[1] = { .addr = 0xe50, .mask = 0x7f },
 };
 
+static struct rtw_ltecoex_addr rtw8822b_ltecoex_addr = {
+	.ctrl = LTECOEX_ACCESS_CTRL,
+	.wdata = LTECOEX_WRITE_DATA,
+	.rdata = LTECOEX_READ_DATA,
+};
+
 static struct rtw_page_table page_table_8822b[] = {
 	{64, 64, 64, 64, 1},
 	{64, 64, 64, 64, 1},
@@ -1788,6 +2114,22 @@
 	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
 };
 
+static struct rtw_prioq_addrs prioq_addrs_8822b = {
+	.prio[RTW_DMA_MAPPING_EXTRA] = {
+		.rsvd = REG_FIFOPAGE_INFO_4, .avail = REG_FIFOPAGE_INFO_4 + 2,
+	},
+	.prio[RTW_DMA_MAPPING_LOW] = {
+		.rsvd = REG_FIFOPAGE_INFO_2, .avail = REG_FIFOPAGE_INFO_2 + 2,
+	},
+	.prio[RTW_DMA_MAPPING_NORMAL] = {
+		.rsvd = REG_FIFOPAGE_INFO_3, .avail = REG_FIFOPAGE_INFO_3 + 2,
+	},
+	.prio[RTW_DMA_MAPPING_HIGH] = {
+		.rsvd = REG_FIFOPAGE_INFO_1, .avail = REG_FIFOPAGE_INFO_1 + 2,
+	},
+	.wsize = true,
+};
+
 static struct rtw_chip_ops rtw8822b_ops = {
 	.phy_set_param		= rtw8822b_phy_set_param,
 	.read_efuse		= rtw8822b_read_efuse,
@@ -1801,6 +2143,12 @@
 	.cfg_ldo25		= rtw8822b_cfg_ldo25,
 	.false_alarm_statistics	= rtw8822b_false_alarm_statistics,
 	.phy_calibration	= rtw8822b_phy_calibration,
+	.pwr_track		= rtw8822b_pwr_track,
+	.config_bfee		= rtw8822b_bf_config_bfee,
+	.set_gid_table		= rtw_bf_set_gid_table,
+	.cfg_csi_rate		= rtw_bf_cfg_csi_rate,
+	.adaptivity_init	= rtw8822b_adaptivity_init,
+	.adaptivity		= rtw8822b_adaptivity,
 
 	.coex_set_init		= rtw8822b_coex_cfg_init,
 	.coex_set_ant_switch	= rtw8822b_coex_cfg_ant_switch,
@@ -1955,10 +2303,166 @@
 
 static_assert(ARRAY_SIZE(rf_para_tx_8822b) == ARRAY_SIZE(rf_para_rx_8822b));
 
+static const u8
+rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  8,  9, 10, 11, 11, 12, 13, 14, 14,
+	 15, 16, 17, 17, 18, 19, 20, 20, 21, 22 },
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  8,  9, 10, 11, 11, 12, 13, 14, 14,
+	 15, 16, 17, 17, 18, 19, 20, 20, 21, 22 },
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  8,  9, 10, 11, 11, 12, 13, 14, 14,
+	 15, 16, 17, 17, 18, 19, 20, 20, 21, 22 },
+};
+
+static const u8
+rtw8822b_pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  9,  9, 10, 11, 12, 13, 14, 14, 15,
+	 16, 17, 18, 19, 19, 20, 21, 22, 22, 23 },
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  9,  9, 10, 11, 12, 13, 14, 14, 15,
+	 16, 17, 18, 19, 19, 20, 21, 22, 22, 23 },
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  9,  9, 10, 11, 12, 13, 14, 14, 15,
+	 16, 17, 18, 19, 19, 20, 21, 22, 22, 23 },
+};
+
+static const u8
+rtw8822b_pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  8,  9, 10, 11, 11, 12, 13, 14, 14,
+	 15, 16, 17, 17, 18, 19, 20, 20, 21, 22 },
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  8,  9, 10, 11, 11, 12, 13, 14, 14,
+	 15, 16, 17, 17, 18, 19, 20, 20, 21, 22 },
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  8,  9, 10, 11, 11, 12, 13, 14, 14,
+	 15, 16, 17, 17, 18, 19, 20, 20, 21, 22 },
+};
+
+static const u8
+rtw8822b_pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  9,  9, 10, 11, 12, 13, 14, 14, 15,
+	 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  9,  9, 10, 11, 12, 13, 14, 14, 15,
+	 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
+	{ 0,  1,  2,  2,  3,  4,  5,  5,  6,  7,
+	  8,  9,  9, 10, 11, 12, 13, 14, 14, 15,
+	 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
+};
+
+static const u8 rtw8822b_pwrtrk_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
+	0,  1,  1,  1,  2,  2,  3,  3,  3,  4,
+	4,  5,  5,  5,  6,  6,  7,  7,  7,  8,
+	8,  9,  9,  9, 10, 10, 11, 11, 11, 12
+};
+
+static const u8 rtw8822b_pwrtrk_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
+	0,  0,  1,  1,  2,  2,  3,  3,  4,  4,
+	5,  5,  6,  6,  6,  7,  7,  8,  8,  9,
+	9, 10, 10, 11, 11, 12, 12, 12, 13, 13
+};
+
+static const u8 rtw8822b_pwrtrk_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
+	0,  1,  1,  1,  2,  2,  3,  3,  3,  4,
+	4,  5,  5,  5,  6,  6,  7,  7,  7,  8,
+	8,  9,  9,  9, 10, 10, 11, 11, 11, 12
+};
+
+static const u8 rtw8822b_pwrtrk_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
+	0,  1,  1,  2,  2,  3,  3,  4,  4,  5,
+	5,  6,  6,  7,  7,  8,  8,  9,  9, 10,
+	10, 11, 11, 12, 12, 13, 13, 14, 14, 15
+};
+
+static const u8 rtw8822b_pwrtrk_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
+	0,  1,  1,  1,  2,  2,  3,  3,  3,  4,
+	4,  5,  5,  5,  6,  6,  7,  7,  7,  8,
+	8,  9,  9,  9, 10, 10, 11, 11, 11, 12
+};
+
+static const u8 rtw8822b_pwrtrk_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
+	0,  0,  1,  1,  2,  2,  3,  3,  4,  4,
+	5,  5,  6,  6,  6,  7,  7,  8,  8,  9,
+	9, 10, 10, 11, 11, 12, 12, 12, 13, 13
+};
+
+static const u8 rtw8822b_pwrtrk_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
+	0,  1,  1,  1,  2,  2,  3,  3,  3,  4,
+	4,  5,  5,  5,  6,  6,  7,  7,  7,  8,
+	8,  9,  9,  9, 10, 10, 11, 11, 11, 12
+};
+
+static const u8 rtw8822b_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  1,  2,  2,  3,  3,  4,  4,  5,
+	 5,  6,  6,  7,  7,  8,  8,  9,  9, 10,
+	10, 11, 11, 12, 12, 13, 13, 14, 14, 15
+};
+
+static const struct rtw_pwr_track_tbl rtw8822b_rtw_pwr_track_tbl = {
+	.pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_3],
+	.pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8822b_pwrtrk_5gb_p[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8822b_pwrtrk_5gb_p[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8822b_pwrtrk_5gb_p[RTW_PWR_TRK_5G_3],
+	.pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8822b_pwrtrk_5ga_n[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8822b_pwrtrk_5ga_n[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8822b_pwrtrk_5ga_n[RTW_PWR_TRK_5G_3],
+	.pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8822b_pwrtrk_5ga_p[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8822b_pwrtrk_5ga_p[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8822b_pwrtrk_5ga_p[RTW_PWR_TRK_5G_3],
+	.pwrtrk_2gb_n = rtw8822b_pwrtrk_2gb_n,
+	.pwrtrk_2gb_p = rtw8822b_pwrtrk_2gb_p,
+	.pwrtrk_2ga_n = rtw8822b_pwrtrk_2ga_n,
+	.pwrtrk_2ga_p = rtw8822b_pwrtrk_2ga_p,
+	.pwrtrk_2g_cckb_n = rtw8822b_pwrtrk_2g_cck_b_n,
+	.pwrtrk_2g_cckb_p = rtw8822b_pwrtrk_2g_cck_b_p,
+	.pwrtrk_2g_ccka_n = rtw8822b_pwrtrk_2g_cck_a_n,
+	.pwrtrk_2g_ccka_p = rtw8822b_pwrtrk_2g_cck_a_p,
+};
+
+static const struct rtw_reg_domain coex_info_hw_regs_8822b[] = {
+	{0xcb0, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0xcb4, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0xcba, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0xcbd, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0xc58, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0xcbd, BIT(0), RTW_REG_DOMAIN_MAC8},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x430, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x434, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x42a, MASKLWORD, RTW_REG_DOMAIN_MAC16},
+	{0x426, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0x45e, BIT(3), RTW_REG_DOMAIN_MAC8},
+	{0x454, MASKLWORD, RTW_REG_DOMAIN_MAC16},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x4c, BIT(24) | BIT(23), RTW_REG_DOMAIN_MAC32},
+	{0x64, BIT(0), RTW_REG_DOMAIN_MAC8},
+	{0x4c6, BIT(4), RTW_REG_DOMAIN_MAC8},
+	{0x40, BIT(5), RTW_REG_DOMAIN_MAC8},
+	{0x1, RFREG_MASK, RTW_REG_DOMAIN_RF_B},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x550, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x522, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0x953, BIT(1), RTW_REG_DOMAIN_MAC8},
+	{0xc50,  MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+};
+
+static struct rtw_hw_reg_offset rtw8822b_edcca_th[] = {
+	[EDCCA_TH_L2H_IDX] = {{.addr = 0x8a4, .mask = MASKBYTE0}, .offset = 0},
+	[EDCCA_TH_H2L_IDX] = {{.addr = 0x8a4, .mask = MASKBYTE1}, .offset = 0},
+};
+
 struct rtw_chip_info rtw8822b_hw_spec = {
 	.ops = &rtw8822b_ops,
 	.id = RTW_CHIP_TYPE_8822B,
 	.fw_name = "rtw88/rtw8822b_fw.bin",
+	.wlan_cpu = RTW_WCPU_11AC,
 	.tx_pkt_desc_sz = 48,
 	.tx_buf_desc_sz = 16,
 	.rx_pkt_desc_sz = 24,
@@ -1977,21 +2481,32 @@
 	.dig_min = 0x1c,
 	.ht_supported = true,
 	.vht_supported = true,
+	.lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
 	.sys_func_en = 0xDC,
 	.pwr_on_seq = card_enable_flow_8822b,
 	.pwr_off_seq = card_disable_flow_8822b,
 	.page_table = page_table_8822b,
 	.rqpn_table = rqpn_table_8822b,
+	.prioq_addrs = &prioq_addrs_8822b,
 	.intf_table = &phy_para_table_8822b,
 	.dig = rtw8822b_dig,
+	.dig_cck = NULL,
 	.rf_base_addr = {0x2800, 0x2c00},
 	.rf_sipi_addr = {0xc90, 0xe90},
+	.ltecoex_addr = &rtw8822b_ltecoex_addr,
 	.mac_tbl = &rtw8822b_mac_tbl,
 	.agc_tbl = &rtw8822b_agc_tbl,
 	.bb_tbl = &rtw8822b_bb_tbl,
 	.rf_tbl = {&rtw8822b_rf_a_tbl, &rtw8822b_rf_b_tbl},
 	.rfe_defs = rtw8822b_rfe_defs,
 	.rfe_defs_size = ARRAY_SIZE(rtw8822b_rfe_defs),
+	.pwr_track_tbl = &rtw8822b_rtw_pwr_track_tbl,
+	.iqk_threshold = 8,
+	.bfer_su_max_num = 2,
+	.bfer_mu_max_num = 1,
+	.edcca_th = rtw8822b_edcca_th,
+	.l2h_th_ini_cs = 10 + EDCCA_IGI_BASE,
+	.l2h_th_ini_ad = -14 + EDCCA_IGI_BASE,
 
 	.coex_para_ver = 0x19062706,
 	.bt_desired_ver = 0x6,
@@ -2018,6 +2533,9 @@
 	.bt_afh_span_bw40 = 0x36,
 	.afh_5g_num = ARRAY_SIZE(afh_5g_8822b),
 	.afh_5g = afh_5g_8822b,
+
+	.coex_info_hw_regs_num = ARRAY_SIZE(coex_info_hw_regs_8822b),
+	.coex_info_hw_regs = coex_info_hw_regs_8822b,
 };
 EXPORT_SYMBOL(rtw8822b_hw_spec);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822b.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822b.h
@@ -127,6 +127,18 @@
 	le32_get_bits(*((__le32 *)(phy_stat) + 0x01), GENMASK(11, 8))
 #define GET_PHY_STAT_P1_HT_RXSC(phy_stat)                                      \
 	le32_get_bits(*((__le32 *)(phy_stat) + 0x01), GENMASK(15, 12))
+#define GET_PHY_STAT_P1_RXEVM_A(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x04), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_RXEVM_B(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x04), GENMASK(15, 8))
+#define GET_PHY_STAT_P1_CFO_TAIL_A(phy_stat)                                 \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x05), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_CFO_TAIL_B(phy_stat)                                 \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x05), GENMASK(15, 8))
+#define GET_PHY_STAT_P1_RXSNR_A(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x06), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_RXSNR_B(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x06), GENMASK(15, 8))
 
 #define REG_HTSTFWT	0x800
 #define REG_RXPSEL	0x808
@@ -140,11 +152,17 @@
 #define REG_L1PKWT	0x840
 #define REG_MRC		0x850
 #define REG_CLKTRK	0x860
+#define REG_EDCCA_POW_MA	0x8a0
+#define BIT_MA_LEVEL	GENMASK(1, 0)
 #define REG_ADCCLK	0x8ac
 #define REG_ADC160	0x8c4
 #define REG_ADC40	0x8c8
+#define REG_EDCCA_DECISION	0x8dc
+#define BIT_EDCCA_OPTION	BIT(5)
 #define REG_CDDTXP	0x93c
 #define REG_TXPSEL1	0x940
+#define REG_EDCCA_SOURCE	0x944
+#define BIT_SOURCE_OPTION	GENMASK(29, 28)
 #define REG_ACBB0	0x948
 #define REG_ACBBRXFIR	0x94c
 #define REG_ACGG2TBL	0x958
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822b_table.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822b_table.c
@@ -11643,104 +11643,155 @@
 
 RTW_DECL_TABLE_PHY_COND(rtw8822b_bb, rtw_phy_cfg_bb);
 
-static const u32 rtw8822b_bb_pg_type2[] = {
-	0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638,
-	0, 0, 0, 0x00000c24, 0xffffffff, 0x36384042,
-	0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234,
-	0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363840,
-	0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032,
-	0, 0, 1, 0x00000c34, 0xffffffff, 0x34363840,
-	0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032,
-	0, 0, 0, 0x00000c3c, 0xffffffff, 0x34363840,
-	0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032,
-	0, 0, 0, 0x00000c44, 0xffffffff, 0x38402224,
-	0, 0, 1, 0x00000c48, 0xffffffff, 0x30323436,
-	0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628,
-	0, 1, 0, 0x00000e20, 0xffffffff, 0x32343638,
-	0, 1, 0, 0x00000e24, 0xffffffff, 0x36384042,
-	0, 1, 0, 0x00000e28, 0xffffffff, 0x28303234,
-	0, 1, 0, 0x00000e2c, 0xffffffff, 0x34363840,
-	0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032,
-	0, 1, 1, 0x00000e34, 0xffffffff, 0x34363840,
-	0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032,
-	0, 1, 0, 0x00000e3c, 0xffffffff, 0x34363840,
-	0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032,
-	0, 1, 0, 0x00000e44, 0xffffffff, 0x38402224,
-	0, 1, 1, 0x00000e48, 0xffffffff, 0x30323436,
-	0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628,
-	1, 0, 0, 0x00000c24, 0xffffffff, 0x40424446,
-	1, 0, 0, 0x00000c28, 0xffffffff, 0x32343638,
-	1, 0, 0, 0x00000c2c, 0xffffffff, 0x38404244,
-	1, 0, 0, 0x00000c30, 0xffffffff, 0x30323436,
-	1, 0, 1, 0x00000c34, 0xffffffff, 0x38404244,
-	1, 0, 1, 0x00000c38, 0xffffffff, 0x30323436,
-	1, 0, 0, 0x00000c3c, 0xffffffff, 0x38404244,
-	1, 0, 0, 0x00000c40, 0xffffffff, 0x30323436,
-	1, 0, 0, 0x00000c44, 0xffffffff, 0x42442628,
-	1, 0, 1, 0x00000c48, 0xffffffff, 0x34363840,
-	1, 0, 1, 0x00000c4c, 0xffffffff, 0x26283032,
-	1, 1, 0, 0x00000e24, 0xffffffff, 0x40424446,
-	1, 1, 0, 0x00000e28, 0xffffffff, 0x32343638,
-	1, 1, 0, 0x00000e2c, 0xffffffff, 0x38404244,
-	1, 1, 0, 0x00000e30, 0xffffffff, 0x30323436,
-	1, 1, 1, 0x00000e34, 0xffffffff, 0x38404244,
-	1, 1, 1, 0x00000e38, 0xffffffff, 0x30323436,
-	1, 1, 0, 0x00000e3c, 0xffffffff, 0x38404244,
-	1, 1, 0, 0x00000e40, 0xffffffff, 0x30323436,
-	1, 1, 0, 0x00000e44, 0xffffffff, 0x42442628,
-	1, 1, 1, 0x00000e48, 0xffffffff, 0x34363840,
-	1, 1, 1, 0x00000e4c, 0xffffffff, 0x26283032
+static const struct rtw_phy_pg_cfg_pair rtw8822b_bb_pg_type2[] = {
+	{ 0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638, },
+	{ 0, 0, 0, 0x00000c24, 0xffffffff, 0x36384042, },
+	{ 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234, },
+	{ 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363840, },
+	{ 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
+	{ 0, 0, 1, 0x00000c34, 0xffffffff, 0x34363840, },
+	{ 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
+	{ 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34363840, },
+	{ 0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
+	{ 0, 0, 0, 0x00000c44, 0xffffffff, 0x38402224, },
+	{ 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323436, },
+	{ 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
+	{ 0, 1, 0, 0x00000e20, 0xffffffff, 0x32343638, },
+	{ 0, 1, 0, 0x00000e24, 0xffffffff, 0x36384042, },
+	{ 0, 1, 0, 0x00000e28, 0xffffffff, 0x28303234, },
+	{ 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34363840, },
+	{ 0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
+	{ 0, 1, 1, 0x00000e34, 0xffffffff, 0x34363840, },
+	{ 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
+	{ 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34363840, },
+	{ 0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
+	{ 0, 1, 0, 0x00000e44, 0xffffffff, 0x38402224, },
+	{ 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323436, },
+	{ 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
+	{ 1, 0, 0, 0x00000c24, 0xffffffff, 0x40424446, },
+	{ 1, 0, 0, 0x00000c28, 0xffffffff, 0x32343638, },
+	{ 1, 0, 0, 0x00000c2c, 0xffffffff, 0x38404244, },
+	{ 1, 0, 0, 0x00000c30, 0xffffffff, 0x30323436, },
+	{ 1, 0, 1, 0x00000c34, 0xffffffff, 0x38404244, },
+	{ 1, 0, 1, 0x00000c38, 0xffffffff, 0x30323436, },
+	{ 1, 0, 0, 0x00000c3c, 0xffffffff, 0x38404244, },
+	{ 1, 0, 0, 0x00000c40, 0xffffffff, 0x30323436, },
+	{ 1, 0, 0, 0x00000c44, 0xffffffff, 0x42442628, },
+	{ 1, 0, 1, 0x00000c48, 0xffffffff, 0x34363840, },
+	{ 1, 0, 1, 0x00000c4c, 0xffffffff, 0x26283032, },
+	{ 1, 1, 0, 0x00000e24, 0xffffffff, 0x40424446, },
+	{ 1, 1, 0, 0x00000e28, 0xffffffff, 0x32343638, },
+	{ 1, 1, 0, 0x00000e2c, 0xffffffff, 0x38404244, },
+	{ 1, 1, 0, 0x00000e30, 0xffffffff, 0x30323436, },
+	{ 1, 1, 1, 0x00000e34, 0xffffffff, 0x38404244, },
+	{ 1, 1, 1, 0x00000e38, 0xffffffff, 0x30323436, },
+	{ 1, 1, 0, 0x00000e3c, 0xffffffff, 0x38404244, },
+	{ 1, 1, 0, 0x00000e40, 0xffffffff, 0x30323436, },
+	{ 1, 1, 0, 0x00000e44, 0xffffffff, 0x42442628, },
+	{ 1, 1, 1, 0x00000e48, 0xffffffff, 0x34363840, },
+	{ 1, 1, 1, 0x00000e4c, 0xffffffff, 0x26283032, },
 };
 
 RTW_DECL_TABLE_BB_PG(rtw8822b_bb_pg_type2);
 
-static const u32 rtw8822b_bb_pg_type5[] = {
-	0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638,
-	0, 0, 0, 0x00000c24, 0xffffffff, 0x36384042,
-	0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234,
-	0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363840,
-	0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032,
-	0, 0, 1, 0x00000c34, 0xffffffff, 0x34363840,
-	0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032,
-	0, 0, 0, 0x00000c3c, 0xffffffff, 0x34363840,
-	0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032,
-	0, 0, 0, 0x00000c44, 0xffffffff, 0x38402224,
-	0, 0, 1, 0x00000c48, 0xffffffff, 0x30323436,
-	0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628,
-	0, 1, 0, 0x00000e20, 0xffffffff, 0x32343638,
-	0, 1, 0, 0x00000e24, 0xffffffff, 0x36384042,
-	0, 1, 0, 0x00000e28, 0xffffffff, 0x28303234,
-	0, 1, 0, 0x00000e2c, 0xffffffff, 0x34363840,
-	0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032,
-	0, 1, 1, 0x00000e34, 0xffffffff, 0x34363840,
-	0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032,
-	0, 1, 0, 0x00000e3c, 0xffffffff, 0x34363840,
-	0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032,
-	0, 1, 0, 0x00000e44, 0xffffffff, 0x38402224,
-	0, 1, 1, 0x00000e48, 0xffffffff, 0x30323436,
-	0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628,
-	1, 0, 0, 0x00000c24, 0xffffffff, 0x34363840,
-	1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032,
-	1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343638,
-	1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830,
-	1, 0, 1, 0x00000c34, 0xffffffff, 0x32343638,
-	1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830,
-	1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343638,
-	1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830,
-	1, 0, 0, 0x00000c44, 0xffffffff, 0x36382022,
-	1, 0, 1, 0x00000c48, 0xffffffff, 0x28303234,
-	1, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426,
-	1, 1, 0, 0x00000e24, 0xffffffff, 0x34363840,
-	1, 1, 0, 0x00000e28, 0xffffffff, 0x26283032,
-	1, 1, 0, 0x00000e2c, 0xffffffff, 0x32343638,
-	1, 1, 0, 0x00000e30, 0xffffffff, 0x24262830,
-	1, 1, 1, 0x00000e34, 0xffffffff, 0x32343638,
-	1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830,
-	1, 1, 0, 0x00000e3c, 0xffffffff, 0x32343638,
-	1, 1, 0, 0x00000e40, 0xffffffff, 0x24262830,
-	1, 1, 0, 0x00000e44, 0xffffffff, 0x36382022,
-	1, 1, 1, 0x00000e48, 0xffffffff, 0x28303234,
-	1, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426
+static const struct rtw_phy_pg_cfg_pair rtw8822b_bb_pg_type3[] = {
+	{ 0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638, },
+	{ 0, 0, 0, 0x00000c24, 0xffffffff, 0x36384042, },
+	{ 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234, },
+	{ 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363840, },
+	{ 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
+	{ 0, 0, 1, 0x00000c34, 0xffffffff, 0x34363840, },
+	{ 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
+	{ 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34363840, },
+	{ 0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
+	{ 0, 0, 0, 0x00000c44, 0xffffffff, 0x38402224, },
+	{ 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323436, },
+	{ 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
+	{ 0, 1, 0, 0x00000e20, 0xffffffff, 0x32343638, },
+	{ 0, 1, 0, 0x00000e24, 0xffffffff, 0x36384042, },
+	{ 0, 1, 0, 0x00000e28, 0xffffffff, 0x28303234, },
+	{ 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34363840, },
+	{ 0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
+	{ 0, 1, 1, 0x00000e34, 0xffffffff, 0x34363840, },
+	{ 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
+	{ 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34363840, },
+	{ 0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
+	{ 0, 1, 0, 0x00000e44, 0xffffffff, 0x38402224, },
+	{ 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323436, },
+	{ 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
+	{ 1, 0, 0, 0x00000c24, 0xffffffff, 0x34363840, },
+	{ 1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032, },
+	{ 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343638, },
+	{ 1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830, },
+	{ 1, 0, 1, 0x00000c34, 0xffffffff, 0x32343638, },
+	{ 1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, },
+	{ 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343638, },
+	{ 1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, },
+	{ 1, 0, 0, 0x00000c44, 0xffffffff, 0x36382022, },
+	{ 1, 0, 1, 0x00000c48, 0xffffffff, 0x28303234, },
+	{ 1, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426, },
+	{ 1, 1, 0, 0x00000e24, 0xffffffff, 0x34363840, },
+	{ 1, 1, 0, 0x00000e28, 0xffffffff, 0x26283032, },
+	{ 1, 1, 0, 0x00000e2c, 0xffffffff, 0x32343638, },
+	{ 1, 1, 0, 0x00000e30, 0xffffffff, 0x24262830, },
+	{ 1, 1, 1, 0x00000e34, 0xffffffff, 0x32343638, },
+	{ 1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, },
+	{ 1, 1, 0, 0x00000e3c, 0xffffffff, 0x32343638, },
+	{ 1, 1, 0, 0x00000e40, 0xffffffff, 0x24262830, },
+	{ 1, 1, 0, 0x00000e44, 0xffffffff, 0x36382022, },
+	{ 1, 1, 1, 0x00000e48, 0xffffffff, 0x28303234, },
+	{ 1, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426, },
+};
+
+RTW_DECL_TABLE_BB_PG(rtw8822b_bb_pg_type3);
+
+static const struct rtw_phy_pg_cfg_pair rtw8822b_bb_pg_type5[] = {
+	{ 0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638, },
+	{ 0, 0, 0, 0x00000c24, 0xffffffff, 0x36384042, },
+	{ 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234, },
+	{ 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363840, },
+	{ 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
+	{ 0, 0, 1, 0x00000c34, 0xffffffff, 0x34363840, },
+	{ 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
+	{ 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34363840, },
+	{ 0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
+	{ 0, 0, 0, 0x00000c44, 0xffffffff, 0x38402224, },
+	{ 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323436, },
+	{ 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
+	{ 0, 1, 0, 0x00000e20, 0xffffffff, 0x32343638, },
+	{ 0, 1, 0, 0x00000e24, 0xffffffff, 0x36384042, },
+	{ 0, 1, 0, 0x00000e28, 0xffffffff, 0x28303234, },
+	{ 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34363840, },
+	{ 0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
+	{ 0, 1, 1, 0x00000e34, 0xffffffff, 0x34363840, },
+	{ 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
+	{ 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34363840, },
+	{ 0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
+	{ 0, 1, 0, 0x00000e44, 0xffffffff, 0x38402224, },
+	{ 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323436, },
+	{ 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
+	{ 1, 0, 0, 0x00000c24, 0xffffffff, 0x34363840, },
+	{ 1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032, },
+	{ 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343638, },
+	{ 1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830, },
+	{ 1, 0, 1, 0x00000c34, 0xffffffff, 0x32343638, },
+	{ 1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, },
+	{ 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343638, },
+	{ 1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, },
+	{ 1, 0, 0, 0x00000c44, 0xffffffff, 0x36382022, },
+	{ 1, 0, 1, 0x00000c48, 0xffffffff, 0x28303234, },
+	{ 1, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426, },
+	{ 1, 1, 0, 0x00000e24, 0xffffffff, 0x34363840, },
+	{ 1, 1, 0, 0x00000e28, 0xffffffff, 0x26283032, },
+	{ 1, 1, 0, 0x00000e2c, 0xffffffff, 0x32343638, },
+	{ 1, 1, 0, 0x00000e30, 0xffffffff, 0x24262830, },
+	{ 1, 1, 1, 0x00000e34, 0xffffffff, 0x32343638, },
+	{ 1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, },
+	{ 1, 1, 0, 0x00000e3c, 0xffffffff, 0x32343638, },
+	{ 1, 1, 0, 0x00000e40, 0xffffffff, 0x24262830, },
+	{ 1, 1, 0, 0x00000e44, 0xffffffff, 0x36382022, },
+	{ 1, 1, 1, 0x00000e48, 0xffffffff, 0x28303234, },
+	{ 1, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426, },
 };
 
 RTW_DECL_TABLE_BB_PG(rtw8822b_bb_pg_type5);
@@ -20382,6 +20433,596 @@
 
 RTW_DECL_TABLE_RF_RADIO(rtw8822b_rf_b, B);
 
+static const struct rtw_txpwr_lmt_cfg_pair rtw8822b_txpwr_lmt_type0[] = {
+	{ 0, 0, 0, 0, 1, 32, },
+	{ 2, 0, 0, 0, 1, 28, },
+	{ 1, 0, 0, 0, 1, 30, },
+	{ 0, 0, 0, 0, 2, 32, },
+	{ 2, 0, 0, 0, 2, 28, },
+	{ 1, 0, 0, 0, 2, 30, },
+	{ 0, 0, 0, 0, 3, 32, },
+	{ 2, 0, 0, 0, 3, 28, },
+	{ 1, 0, 0, 0, 3, 30, },
+	{ 0, 0, 0, 0, 4, 32, },
+	{ 2, 0, 0, 0, 4, 28, },
+	{ 1, 0, 0, 0, 4, 30, },
+	{ 0, 0, 0, 0, 5, 32, },
+	{ 2, 0, 0, 0, 5, 28, },
+	{ 1, 0, 0, 0, 5, 30, },
+	{ 0, 0, 0, 0, 6, 32, },
+	{ 2, 0, 0, 0, 6, 28, },
+	{ 1, 0, 0, 0, 6, 30, },
+	{ 0, 0, 0, 0, 7, 32, },
+	{ 2, 0, 0, 0, 7, 28, },
+	{ 1, 0, 0, 0, 7, 30, },
+	{ 0, 0, 0, 0, 8, 32, },
+	{ 2, 0, 0, 0, 8, 28, },
+	{ 1, 0, 0, 0, 8, 30, },
+	{ 0, 0, 0, 0, 9, 32, },
+	{ 2, 0, 0, 0, 9, 28, },
+	{ 1, 0, 0, 0, 9, 30, },
+	{ 0, 0, 0, 0, 10, 32, },
+	{ 2, 0, 0, 0, 10, 28, },
+	{ 1, 0, 0, 0, 10, 30, },
+	{ 0, 0, 0, 0, 11, 32, },
+	{ 2, 0, 0, 0, 11, 28, },
+	{ 1, 0, 0, 0, 11, 30, },
+	{ 0, 0, 0, 0, 12, 26, },
+	{ 2, 0, 0, 0, 12, 28, },
+	{ 1, 0, 0, 0, 12, 30, },
+	{ 0, 0, 0, 0, 13, 20, },
+	{ 2, 0, 0, 0, 13, 28, },
+	{ 1, 0, 0, 0, 13, 28, },
+	{ 0, 0, 0, 0, 14, 63, },
+	{ 2, 0, 0, 0, 14, 63, },
+	{ 1, 0, 0, 0, 14, 32, },
+	{ 0, 0, 0, 1, 1, 26, },
+	{ 2, 0, 0, 1, 1, 30, },
+	{ 1, 0, 0, 1, 1, 34, },
+	{ 0, 0, 0, 1, 2, 30, },
+	{ 2, 0, 0, 1, 2, 30, },
+	{ 1, 0, 0, 1, 2, 34, },
+	{ 0, 0, 0, 1, 3, 32, },
+	{ 2, 0, 0, 1, 3, 30, },
+	{ 1, 0, 0, 1, 3, 34, },
+	{ 0, 0, 0, 1, 4, 34, },
+	{ 2, 0, 0, 1, 4, 30, },
+	{ 1, 0, 0, 1, 4, 34, },
+	{ 0, 0, 0, 1, 5, 34, },
+	{ 2, 0, 0, 1, 5, 30, },
+	{ 1, 0, 0, 1, 5, 34, },
+	{ 0, 0, 0, 1, 6, 34, },
+	{ 2, 0, 0, 1, 6, 30, },
+	{ 1, 0, 0, 1, 6, 34, },
+	{ 0, 0, 0, 1, 7, 34, },
+	{ 2, 0, 0, 1, 7, 30, },
+	{ 1, 0, 0, 1, 7, 34, },
+	{ 0, 0, 0, 1, 8, 34, },
+	{ 2, 0, 0, 1, 8, 30, },
+	{ 1, 0, 0, 1, 8, 34, },
+	{ 0, 0, 0, 1, 9, 32, },
+	{ 2, 0, 0, 1, 9, 30, },
+	{ 1, 0, 0, 1, 9, 34, },
+	{ 0, 0, 0, 1, 10, 30, },
+	{ 2, 0, 0, 1, 10, 30, },
+	{ 1, 0, 0, 1, 10, 34, },
+	{ 0, 0, 0, 1, 11, 28, },
+	{ 2, 0, 0, 1, 11, 30, },
+	{ 1, 0, 0, 1, 11, 34, },
+	{ 0, 0, 0, 1, 12, 22, },
+	{ 2, 0, 0, 1, 12, 30, },
+	{ 1, 0, 0, 1, 12, 34, },
+	{ 0, 0, 0, 1, 13, 14, },
+	{ 2, 0, 0, 1, 13, 30, },
+	{ 1, 0, 0, 1, 13, 34, },
+	{ 0, 0, 0, 1, 14, 63, },
+	{ 2, 0, 0, 1, 14, 63, },
+	{ 1, 0, 0, 1, 14, 63, },
+	{ 0, 0, 0, 2, 1, 26, },
+	{ 2, 0, 0, 2, 1, 30, },
+	{ 1, 0, 0, 2, 1, 34, },
+	{ 0, 0, 0, 2, 2, 30, },
+	{ 2, 0, 0, 2, 2, 30, },
+	{ 1, 0, 0, 2, 2, 34, },
+	{ 0, 0, 0, 2, 3, 32, },
+	{ 2, 0, 0, 2, 3, 30, },
+	{ 1, 0, 0, 2, 3, 34, },
+	{ 0, 0, 0, 2, 4, 34, },
+	{ 2, 0, 0, 2, 4, 30, },
+	{ 1, 0, 0, 2, 4, 34, },
+	{ 0, 0, 0, 2, 5, 34, },
+	{ 2, 0, 0, 2, 5, 30, },
+	{ 1, 0, 0, 2, 5, 34, },
+	{ 0, 0, 0, 2, 6, 34, },
+	{ 2, 0, 0, 2, 6, 30, },
+	{ 1, 0, 0, 2, 6, 34, },
+	{ 0, 0, 0, 2, 7, 34, },
+	{ 2, 0, 0, 2, 7, 30, },
+	{ 1, 0, 0, 2, 7, 34, },
+	{ 0, 0, 0, 2, 8, 34, },
+	{ 2, 0, 0, 2, 8, 30, },
+	{ 1, 0, 0, 2, 8, 34, },
+	{ 0, 0, 0, 2, 9, 32, },
+	{ 2, 0, 0, 2, 9, 30, },
+	{ 1, 0, 0, 2, 9, 34, },
+	{ 0, 0, 0, 2, 10, 30, },
+	{ 2, 0, 0, 2, 10, 30, },
+	{ 1, 0, 0, 2, 10, 34, },
+	{ 0, 0, 0, 2, 11, 26, },
+	{ 2, 0, 0, 2, 11, 30, },
+	{ 1, 0, 0, 2, 11, 34, },
+	{ 0, 0, 0, 2, 12, 20, },
+	{ 2, 0, 0, 2, 12, 30, },
+	{ 1, 0, 0, 2, 12, 34, },
+	{ 0, 0, 0, 2, 13, 14, },
+	{ 2, 0, 0, 2, 13, 30, },
+	{ 1, 0, 0, 2, 13, 34, },
+	{ 0, 0, 0, 2, 14, 63, },
+	{ 2, 0, 0, 2, 14, 63, },
+	{ 1, 0, 0, 2, 14, 63, },
+	{ 0, 0, 0, 3, 1, 26, },
+	{ 2, 0, 0, 3, 1, 18, },
+	{ 1, 0, 0, 3, 1, 30, },
+	{ 0, 0, 0, 3, 2, 28, },
+	{ 2, 0, 0, 3, 2, 18, },
+	{ 1, 0, 0, 3, 2, 30, },
+	{ 0, 0, 0, 3, 3, 30, },
+	{ 2, 0, 0, 3, 3, 18, },
+	{ 1, 0, 0, 3, 3, 30, },
+	{ 0, 0, 0, 3, 4, 30, },
+	{ 2, 0, 0, 3, 4, 18, },
+	{ 1, 0, 0, 3, 4, 30, },
+	{ 0, 0, 0, 3, 5, 32, },
+	{ 2, 0, 0, 3, 5, 18, },
+	{ 1, 0, 0, 3, 5, 30, },
+	{ 0, 0, 0, 3, 6, 32, },
+	{ 2, 0, 0, 3, 6, 18, },
+	{ 1, 0, 0, 3, 6, 30, },
+	{ 0, 0, 0, 3, 7, 32, },
+	{ 2, 0, 0, 3, 7, 18, },
+	{ 1, 0, 0, 3, 7, 30, },
+	{ 0, 0, 0, 3, 8, 30, },
+	{ 2, 0, 0, 3, 8, 18, },
+	{ 1, 0, 0, 3, 8, 30, },
+	{ 0, 0, 0, 3, 9, 30, },
+	{ 2, 0, 0, 3, 9, 18, },
+	{ 1, 0, 0, 3, 9, 30, },
+	{ 0, 0, 0, 3, 10, 28, },
+	{ 2, 0, 0, 3, 10, 18, },
+	{ 1, 0, 0, 3, 10, 30, },
+	{ 0, 0, 0, 3, 11, 26, },
+	{ 2, 0, 0, 3, 11, 18, },
+	{ 1, 0, 0, 3, 11, 30, },
+	{ 0, 0, 0, 3, 12, 20, },
+	{ 2, 0, 0, 3, 12, 18, },
+	{ 1, 0, 0, 3, 12, 30, },
+	{ 0, 0, 0, 3, 13, 14, },
+	{ 2, 0, 0, 3, 13, 18, },
+	{ 1, 0, 0, 3, 13, 30, },
+	{ 0, 0, 0, 3, 14, 63, },
+	{ 2, 0, 0, 3, 14, 63, },
+	{ 1, 0, 0, 3, 14, 63, },
+	{ 0, 0, 1, 2, 1, 63, },
+	{ 2, 0, 1, 2, 1, 63, },
+	{ 1, 0, 1, 2, 1, 63, },
+	{ 0, 0, 1, 2, 2, 63, },
+	{ 2, 0, 1, 2, 2, 63, },
+	{ 1, 0, 1, 2, 2, 63, },
+	{ 0, 0, 1, 2, 3, 26, },
+	{ 2, 0, 1, 2, 3, 30, },
+	{ 1, 0, 1, 2, 3, 34, },
+	{ 0, 0, 1, 2, 4, 26, },
+	{ 2, 0, 1, 2, 4, 30, },
+	{ 1, 0, 1, 2, 4, 34, },
+	{ 0, 0, 1, 2, 5, 30, },
+	{ 2, 0, 1, 2, 5, 30, },
+	{ 1, 0, 1, 2, 5, 34, },
+	{ 0, 0, 1, 2, 6, 32, },
+	{ 2, 0, 1, 2, 6, 30, },
+	{ 1, 0, 1, 2, 6, 34, },
+	{ 0, 0, 1, 2, 7, 30, },
+	{ 2, 0, 1, 2, 7, 30, },
+	{ 1, 0, 1, 2, 7, 34, },
+	{ 0, 0, 1, 2, 8, 26, },
+	{ 2, 0, 1, 2, 8, 30, },
+	{ 1, 0, 1, 2, 8, 34, },
+	{ 0, 0, 1, 2, 9, 26, },
+	{ 2, 0, 1, 2, 9, 30, },
+	{ 1, 0, 1, 2, 9, 34, },
+	{ 0, 0, 1, 2, 10, 20, },
+	{ 2, 0, 1, 2, 10, 30, },
+	{ 1, 0, 1, 2, 10, 34, },
+	{ 0, 0, 1, 2, 11, 14, },
+	{ 2, 0, 1, 2, 11, 30, },
+	{ 1, 0, 1, 2, 11, 34, },
+	{ 0, 0, 1, 2, 12, 63, },
+	{ 2, 0, 1, 2, 12, 63, },
+	{ 1, 0, 1, 2, 12, 63, },
+	{ 0, 0, 1, 2, 13, 63, },
+	{ 2, 0, 1, 2, 13, 63, },
+	{ 1, 0, 1, 2, 13, 63, },
+	{ 0, 0, 1, 2, 14, 63, },
+	{ 2, 0, 1, 2, 14, 63, },
+	{ 1, 0, 1, 2, 14, 63, },
+	{ 0, 0, 1, 3, 1, 63, },
+	{ 2, 0, 1, 3, 1, 63, },
+	{ 1, 0, 1, 3, 1, 63, },
+	{ 0, 0, 1, 3, 2, 63, },
+	{ 2, 0, 1, 3, 2, 63, },
+	{ 1, 0, 1, 3, 2, 63, },
+	{ 0, 0, 1, 3, 3, 24, },
+	{ 2, 0, 1, 3, 3, 18, },
+	{ 1, 0, 1, 3, 3, 30, },
+	{ 0, 0, 1, 3, 4, 24, },
+	{ 2, 0, 1, 3, 4, 18, },
+	{ 1, 0, 1, 3, 4, 30, },
+	{ 0, 0, 1, 3, 5, 26, },
+	{ 2, 0, 1, 3, 5, 18, },
+	{ 1, 0, 1, 3, 5, 30, },
+	{ 0, 0, 1, 3, 6, 28, },
+	{ 2, 0, 1, 3, 6, 18, },
+	{ 1, 0, 1, 3, 6, 30, },
+	{ 0, 0, 1, 3, 7, 26, },
+	{ 2, 0, 1, 3, 7, 18, },
+	{ 1, 0, 1, 3, 7, 30, },
+	{ 0, 0, 1, 3, 8, 26, },
+	{ 2, 0, 1, 3, 8, 18, },
+	{ 1, 0, 1, 3, 8, 30, },
+	{ 0, 0, 1, 3, 9, 26, },
+	{ 2, 0, 1, 3, 9, 18, },
+	{ 1, 0, 1, 3, 9, 30, },
+	{ 0, 0, 1, 3, 10, 20, },
+	{ 2, 0, 1, 3, 10, 18, },
+	{ 1, 0, 1, 3, 10, 30, },
+	{ 0, 0, 1, 3, 11, 14, },
+	{ 2, 0, 1, 3, 11, 18, },
+	{ 1, 0, 1, 3, 11, 30, },
+	{ 0, 0, 1, 3, 12, 63, },
+	{ 2, 0, 1, 3, 12, 63, },
+	{ 1, 0, 1, 3, 12, 63, },
+	{ 0, 0, 1, 3, 13, 63, },
+	{ 2, 0, 1, 3, 13, 63, },
+	{ 1, 0, 1, 3, 13, 63, },
+	{ 0, 0, 1, 3, 14, 63, },
+	{ 2, 0, 1, 3, 14, 63, },
+	{ 1, 0, 1, 3, 14, 63, },
+	{ 0, 1, 0, 1, 36, 30, },
+	{ 2, 1, 0, 1, 36, 32, },
+	{ 1, 1, 0, 1, 36, 30, },
+	{ 0, 1, 0, 1, 40, 32, },
+	{ 2, 1, 0, 1, 40, 32, },
+	{ 1, 1, 0, 1, 40, 30, },
+	{ 0, 1, 0, 1, 44, 32, },
+	{ 2, 1, 0, 1, 44, 32, },
+	{ 1, 1, 0, 1, 44, 30, },
+	{ 0, 1, 0, 1, 48, 32, },
+	{ 2, 1, 0, 1, 48, 32, },
+	{ 1, 1, 0, 1, 48, 30, },
+	{ 0, 1, 0, 1, 52, 32, },
+	{ 2, 1, 0, 1, 52, 32, },
+	{ 1, 1, 0, 1, 52, 28, },
+	{ 0, 1, 0, 1, 56, 32, },
+	{ 2, 1, 0, 1, 56, 32, },
+	{ 1, 1, 0, 1, 56, 28, },
+	{ 0, 1, 0, 1, 60, 32, },
+	{ 2, 1, 0, 1, 60, 32, },
+	{ 1, 1, 0, 1, 60, 28, },
+	{ 0, 1, 0, 1, 64, 28, },
+	{ 2, 1, 0, 1, 64, 32, },
+	{ 1, 1, 0, 1, 64, 28, },
+	{ 0, 1, 0, 1, 100, 26, },
+	{ 2, 1, 0, 1, 100, 32, },
+	{ 1, 1, 0, 1, 100, 32, },
+	{ 0, 1, 0, 1, 104, 32, },
+	{ 2, 1, 0, 1, 104, 32, },
+	{ 1, 1, 0, 1, 104, 32, },
+	{ 0, 1, 0, 1, 108, 32, },
+	{ 2, 1, 0, 1, 108, 32, },
+	{ 1, 1, 0, 1, 108, 32, },
+	{ 0, 1, 0, 1, 112, 32, },
+	{ 2, 1, 0, 1, 112, 32, },
+	{ 1, 1, 0, 1, 112, 32, },
+	{ 0, 1, 0, 1, 116, 32, },
+	{ 2, 1, 0, 1, 116, 32, },
+	{ 1, 1, 0, 1, 116, 32, },
+	{ 0, 1, 0, 1, 120, 32, },
+	{ 2, 1, 0, 1, 120, 32, },
+	{ 1, 1, 0, 1, 120, 32, },
+	{ 0, 1, 0, 1, 124, 32, },
+	{ 2, 1, 0, 1, 124, 32, },
+	{ 1, 1, 0, 1, 124, 32, },
+	{ 0, 1, 0, 1, 128, 32, },
+	{ 2, 1, 0, 1, 128, 32, },
+	{ 1, 1, 0, 1, 128, 32, },
+	{ 0, 1, 0, 1, 132, 32, },
+	{ 2, 1, 0, 1, 132, 32, },
+	{ 1, 1, 0, 1, 132, 32, },
+	{ 0, 1, 0, 1, 136, 32, },
+	{ 2, 1, 0, 1, 136, 32, },
+	{ 1, 1, 0, 1, 136, 32, },
+	{ 0, 1, 0, 1, 140, 28, },
+	{ 2, 1, 0, 1, 140, 32, },
+	{ 1, 1, 0, 1, 140, 32, },
+	{ 0, 1, 0, 1, 144, 28, },
+	{ 2, 1, 0, 1, 144, 32, },
+	{ 1, 1, 0, 1, 144, 63, },
+	{ 0, 1, 0, 1, 149, 32, },
+	{ 2, 1, 0, 1, 149, 63, },
+	{ 1, 1, 0, 1, 149, 63, },
+	{ 0, 1, 0, 1, 153, 32, },
+	{ 2, 1, 0, 1, 153, 63, },
+	{ 1, 1, 0, 1, 153, 63, },
+	{ 0, 1, 0, 1, 157, 32, },
+	{ 2, 1, 0, 1, 157, 63, },
+	{ 1, 1, 0, 1, 157, 63, },
+	{ 0, 1, 0, 1, 161, 32, },
+	{ 2, 1, 0, 1, 161, 63, },
+	{ 1, 1, 0, 1, 161, 63, },
+	{ 0, 1, 0, 1, 165, 32, },
+	{ 2, 1, 0, 1, 165, 63, },
+	{ 1, 1, 0, 1, 165, 63, },
+	{ 0, 1, 0, 2, 36, 30, },
+	{ 2, 1, 0, 2, 36, 32, },
+	{ 1, 1, 0, 2, 36, 28, },
+	{ 0, 1, 0, 2, 40, 32, },
+	{ 2, 1, 0, 2, 40, 32, },
+	{ 1, 1, 0, 2, 40, 28, },
+	{ 0, 1, 0, 2, 44, 32, },
+	{ 2, 1, 0, 2, 44, 32, },
+	{ 1, 1, 0, 2, 44, 28, },
+	{ 0, 1, 0, 2, 48, 32, },
+	{ 2, 1, 0, 2, 48, 32, },
+	{ 1, 1, 0, 2, 48, 28, },
+	{ 0, 1, 0, 2, 52, 32, },
+	{ 2, 1, 0, 2, 52, 32, },
+	{ 1, 1, 0, 2, 52, 28, },
+	{ 0, 1, 0, 2, 56, 32, },
+	{ 2, 1, 0, 2, 56, 32, },
+	{ 1, 1, 0, 2, 56, 28, },
+	{ 0, 1, 0, 2, 60, 32, },
+	{ 2, 1, 0, 2, 60, 32, },
+	{ 1, 1, 0, 2, 60, 28, },
+	{ 0, 1, 0, 2, 64, 28, },
+	{ 2, 1, 0, 2, 64, 32, },
+	{ 1, 1, 0, 2, 64, 28, },
+	{ 0, 1, 0, 2, 100, 26, },
+	{ 2, 1, 0, 2, 100, 32, },
+	{ 1, 1, 0, 2, 100, 32, },
+	{ 0, 1, 0, 2, 104, 32, },
+	{ 2, 1, 0, 2, 104, 32, },
+	{ 1, 1, 0, 2, 104, 32, },
+	{ 0, 1, 0, 2, 108, 32, },
+	{ 2, 1, 0, 2, 108, 32, },
+	{ 1, 1, 0, 2, 108, 32, },
+	{ 0, 1, 0, 2, 112, 32, },
+	{ 2, 1, 0, 2, 112, 32, },
+	{ 1, 1, 0, 2, 112, 32, },
+	{ 0, 1, 0, 2, 116, 32, },
+	{ 2, 1, 0, 2, 116, 32, },
+	{ 1, 1, 0, 2, 116, 32, },
+	{ 0, 1, 0, 2, 120, 32, },
+	{ 2, 1, 0, 2, 120, 32, },
+	{ 1, 1, 0, 2, 120, 32, },
+	{ 0, 1, 0, 2, 124, 32, },
+	{ 2, 1, 0, 2, 124, 32, },
+	{ 1, 1, 0, 2, 124, 32, },
+	{ 0, 1, 0, 2, 128, 32, },
+	{ 2, 1, 0, 2, 128, 32, },
+	{ 1, 1, 0, 2, 128, 32, },
+	{ 0, 1, 0, 2, 132, 32, },
+	{ 2, 1, 0, 2, 132, 32, },
+	{ 1, 1, 0, 2, 132, 32, },
+	{ 0, 1, 0, 2, 136, 32, },
+	{ 2, 1, 0, 2, 136, 32, },
+	{ 1, 1, 0, 2, 136, 32, },
+	{ 0, 1, 0, 2, 140, 26, },
+	{ 2, 1, 0, 2, 140, 32, },
+	{ 1, 1, 0, 2, 140, 32, },
+	{ 0, 1, 0, 2, 144, 26, },
+	{ 2, 1, 0, 2, 144, 63, },
+	{ 1, 1, 0, 2, 144, 63, },
+	{ 0, 1, 0, 2, 149, 32, },
+	{ 2, 1, 0, 2, 149, 63, },
+	{ 1, 1, 0, 2, 149, 63, },
+	{ 0, 1, 0, 2, 153, 32, },
+	{ 2, 1, 0, 2, 153, 63, },
+	{ 1, 1, 0, 2, 153, 63, },
+	{ 0, 1, 0, 2, 157, 32, },
+	{ 2, 1, 0, 2, 157, 63, },
+	{ 1, 1, 0, 2, 157, 63, },
+	{ 0, 1, 0, 2, 161, 32, },
+	{ 2, 1, 0, 2, 161, 63, },
+	{ 1, 1, 0, 2, 161, 63, },
+	{ 0, 1, 0, 2, 165, 32, },
+	{ 2, 1, 0, 2, 165, 63, },
+	{ 1, 1, 0, 2, 165, 63, },
+	{ 0, 1, 0, 3, 36, 28, },
+	{ 2, 1, 0, 3, 36, 20, },
+	{ 1, 1, 0, 3, 36, 22, },
+	{ 0, 1, 0, 3, 40, 30, },
+	{ 2, 1, 0, 3, 40, 20, },
+	{ 1, 1, 0, 3, 40, 22, },
+	{ 0, 1, 0, 3, 44, 30, },
+	{ 2, 1, 0, 3, 44, 20, },
+	{ 1, 1, 0, 3, 44, 22, },
+	{ 0, 1, 0, 3, 48, 30, },
+	{ 2, 1, 0, 3, 48, 20, },
+	{ 1, 1, 0, 3, 48, 22, },
+	{ 0, 1, 0, 3, 52, 30, },
+	{ 2, 1, 0, 3, 52, 20, },
+	{ 1, 1, 0, 3, 52, 22, },
+	{ 0, 1, 0, 3, 56, 30, },
+	{ 2, 1, 0, 3, 56, 20, },
+	{ 1, 1, 0, 3, 56, 22, },
+	{ 0, 1, 0, 3, 60, 30, },
+	{ 2, 1, 0, 3, 60, 20, },
+	{ 1, 1, 0, 3, 60, 22, },
+	{ 0, 1, 0, 3, 64, 28, },
+	{ 2, 1, 0, 3, 64, 20, },
+	{ 1, 1, 0, 3, 64, 22, },
+	{ 0, 1, 0, 3, 100, 26, },
+	{ 2, 1, 0, 3, 100, 20, },
+	{ 1, 1, 0, 3, 100, 30, },
+	{ 0, 1, 0, 3, 104, 30, },
+	{ 2, 1, 0, 3, 104, 20, },
+	{ 1, 1, 0, 3, 104, 30, },
+	{ 0, 1, 0, 3, 108, 32, },
+	{ 2, 1, 0, 3, 108, 20, },
+	{ 1, 1, 0, 3, 108, 30, },
+	{ 0, 1, 0, 3, 112, 32, },
+	{ 2, 1, 0, 3, 112, 20, },
+	{ 1, 1, 0, 3, 112, 30, },
+	{ 0, 1, 0, 3, 116, 32, },
+	{ 2, 1, 0, 3, 116, 20, },
+	{ 1, 1, 0, 3, 116, 30, },
+	{ 0, 1, 0, 3, 120, 32, },
+	{ 2, 1, 0, 3, 120, 20, },
+	{ 1, 1, 0, 3, 120, 30, },
+	{ 0, 1, 0, 3, 124, 32, },
+	{ 2, 1, 0, 3, 124, 20, },
+	{ 1, 1, 0, 3, 124, 30, },
+	{ 0, 1, 0, 3, 128, 32, },
+	{ 2, 1, 0, 3, 128, 20, },
+	{ 1, 1, 0, 3, 128, 30, },
+	{ 0, 1, 0, 3, 132, 32, },
+	{ 2, 1, 0, 3, 132, 20, },
+	{ 1, 1, 0, 3, 132, 30, },
+	{ 0, 1, 0, 3, 136, 30, },
+	{ 2, 1, 0, 3, 136, 20, },
+	{ 1, 1, 0, 3, 136, 30, },
+	{ 0, 1, 0, 3, 140, 26, },
+	{ 2, 1, 0, 3, 140, 20, },
+	{ 1, 1, 0, 3, 140, 30, },
+	{ 0, 1, 0, 3, 144, 26, },
+	{ 2, 1, 0, 3, 144, 63, },
+	{ 1, 1, 0, 3, 144, 63, },
+	{ 0, 1, 0, 3, 149, 32, },
+	{ 2, 1, 0, 3, 149, 63, },
+	{ 1, 1, 0, 3, 149, 63, },
+	{ 0, 1, 0, 3, 153, 32, },
+	{ 2, 1, 0, 3, 153, 63, },
+	{ 1, 1, 0, 3, 153, 63, },
+	{ 0, 1, 0, 3, 157, 32, },
+	{ 2, 1, 0, 3, 157, 63, },
+	{ 1, 1, 0, 3, 157, 63, },
+	{ 0, 1, 0, 3, 161, 32, },
+	{ 2, 1, 0, 3, 161, 63, },
+	{ 1, 1, 0, 3, 161, 63, },
+	{ 0, 1, 0, 3, 165, 32, },
+	{ 2, 1, 0, 3, 165, 63, },
+	{ 1, 1, 0, 3, 165, 63, },
+	{ 0, 1, 1, 2, 38, 22, },
+	{ 2, 1, 1, 2, 38, 30, },
+	{ 1, 1, 1, 2, 38, 30, },
+	{ 0, 1, 1, 2, 46, 30, },
+	{ 2, 1, 1, 2, 46, 30, },
+	{ 1, 1, 1, 2, 46, 30, },
+	{ 0, 1, 1, 2, 54, 30, },
+	{ 2, 1, 1, 2, 54, 30, },
+	{ 1, 1, 1, 2, 54, 30, },
+	{ 0, 1, 1, 2, 62, 24, },
+	{ 2, 1, 1, 2, 62, 30, },
+	{ 1, 1, 1, 2, 62, 30, },
+	{ 0, 1, 1, 2, 102, 24, },
+	{ 2, 1, 1, 2, 102, 30, },
+	{ 1, 1, 1, 2, 102, 30, },
+	{ 0, 1, 1, 2, 110, 30, },
+	{ 2, 1, 1, 2, 110, 30, },
+	{ 1, 1, 1, 2, 110, 30, },
+	{ 0, 1, 1, 2, 118, 30, },
+	{ 2, 1, 1, 2, 118, 30, },
+	{ 1, 1, 1, 2, 118, 30, },
+	{ 0, 1, 1, 2, 126, 30, },
+	{ 2, 1, 1, 2, 126, 30, },
+	{ 1, 1, 1, 2, 126, 30, },
+	{ 0, 1, 1, 2, 134, 30, },
+	{ 2, 1, 1, 2, 134, 30, },
+	{ 1, 1, 1, 2, 134, 30, },
+	{ 0, 1, 1, 2, 142, 30, },
+	{ 2, 1, 1, 2, 142, 63, },
+	{ 1, 1, 1, 2, 142, 63, },
+	{ 0, 1, 1, 2, 151, 30, },
+	{ 2, 1, 1, 2, 151, 63, },
+	{ 1, 1, 1, 2, 151, 63, },
+	{ 0, 1, 1, 2, 159, 30, },
+	{ 2, 1, 1, 2, 159, 63, },
+	{ 1, 1, 1, 2, 159, 63, },
+	{ 0, 1, 1, 3, 38, 20, },
+	{ 2, 1, 1, 3, 38, 20, },
+	{ 1, 1, 1, 3, 38, 22, },
+	{ 0, 1, 1, 3, 46, 30, },
+	{ 2, 1, 1, 3, 46, 20, },
+	{ 1, 1, 1, 3, 46, 22, },
+	{ 0, 1, 1, 3, 54, 30, },
+	{ 2, 1, 1, 3, 54, 20, },
+	{ 1, 1, 1, 3, 54, 22, },
+	{ 0, 1, 1, 3, 62, 22, },
+	{ 2, 1, 1, 3, 62, 20, },
+	{ 1, 1, 1, 3, 62, 22, },
+	{ 0, 1, 1, 3, 102, 22, },
+	{ 2, 1, 1, 3, 102, 20, },
+	{ 1, 1, 1, 3, 102, 30, },
+	{ 0, 1, 1, 3, 110, 30, },
+	{ 2, 1, 1, 3, 110, 20, },
+	{ 1, 1, 1, 3, 110, 30, },
+	{ 0, 1, 1, 3, 118, 30, },
+	{ 2, 1, 1, 3, 118, 20, },
+	{ 1, 1, 1, 3, 118, 30, },
+	{ 0, 1, 1, 3, 126, 30, },
+	{ 2, 1, 1, 3, 126, 20, },
+	{ 1, 1, 1, 3, 126, 30, },
+	{ 0, 1, 1, 3, 134, 30, },
+	{ 2, 1, 1, 3, 134, 20, },
+	{ 1, 1, 1, 3, 134, 30, },
+	{ 0, 1, 1, 3, 142, 30, },
+	{ 2, 1, 1, 3, 142, 63, },
+	{ 1, 1, 1, 3, 142, 63, },
+	{ 0, 1, 1, 3, 151, 30, },
+	{ 2, 1, 1, 3, 151, 63, },
+	{ 1, 1, 1, 3, 151, 63, },
+	{ 0, 1, 1, 3, 159, 30, },
+	{ 2, 1, 1, 3, 159, 63, },
+	{ 1, 1, 1, 3, 159, 63, },
+	{ 0, 1, 2, 4, 42, 20, },
+	{ 2, 1, 2, 4, 42, 30, },
+	{ 1, 1, 2, 4, 42, 28, },
+	{ 0, 1, 2, 4, 58, 20, },
+	{ 2, 1, 2, 4, 58, 30, },
+	{ 1, 1, 2, 4, 58, 28, },
+	{ 0, 1, 2, 4, 106, 20, },
+	{ 2, 1, 2, 4, 106, 30, },
+	{ 1, 1, 2, 4, 106, 30, },
+	{ 0, 1, 2, 4, 122, 30, },
+	{ 2, 1, 2, 4, 122, 30, },
+	{ 1, 1, 2, 4, 122, 30, },
+	{ 0, 1, 2, 4, 138, 30, },
+	{ 2, 1, 2, 4, 138, 63, },
+	{ 1, 1, 2, 4, 138, 63, },
+	{ 0, 1, 2, 4, 155, 30, },
+	{ 2, 1, 2, 4, 155, 63, },
+	{ 1, 1, 2, 4, 155, 63, },
+	{ 0, 1, 2, 5, 42, 18, },
+	{ 2, 1, 2, 5, 42, 20, },
+	{ 1, 1, 2, 5, 42, 22, },
+	{ 0, 1, 2, 5, 58, 18, },
+	{ 2, 1, 2, 5, 58, 20, },
+	{ 1, 1, 2, 5, 58, 22, },
+	{ 0, 1, 2, 5, 106, 20, },
+	{ 2, 1, 2, 5, 106, 20, },
+	{ 1, 1, 2, 5, 106, 30, },
+	{ 0, 1, 2, 5, 122, 30, },
+	{ 2, 1, 2, 5, 122, 20, },
+	{ 1, 1, 2, 5, 122, 30, },
+	{ 0, 1, 2, 5, 138, 30, },
+	{ 2, 1, 2, 5, 138, 63, },
+	{ 1, 1, 2, 5, 138, 63, },
+	{ 0, 1, 2, 5, 155, 30, },
+	{ 2, 1, 2, 5, 155, 63, },
+	{ 1, 1, 2, 5, 155, 63, },
+};
+
+RTW_DECL_TABLE_TXPWR_LMT(rtw8822b_txpwr_lmt_type0);
+
 static const struct rtw_txpwr_lmt_cfg_pair rtw8822b_txpwr_lmt_type2[] = {
 	{ 0, 0, 0, 0, 1, 32, },
 	{ 2, 0, 0, 0, 1, 28, },
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822b_table.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822b_table.h
@@ -9,9 +9,11 @@
 extern const struct rtw_table rtw8822b_agc_tbl;
 extern const struct rtw_table rtw8822b_bb_tbl;
 extern const struct rtw_table rtw8822b_bb_pg_type2_tbl;
+extern const struct rtw_table rtw8822b_bb_pg_type3_tbl;
 extern const struct rtw_table rtw8822b_bb_pg_type5_tbl;
 extern const struct rtw_table rtw8822b_rf_a_tbl;
 extern const struct rtw_table rtw8822b_rf_b_tbl;
+extern const struct rtw_table rtw8822b_txpwr_lmt_type0_tbl;
 extern const struct rtw_table rtw8822b_txpwr_lmt_type2_tbl;
 extern const struct rtw_table rtw8822b_txpwr_lmt_type5_tbl;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -14,6 +14,7 @@
 #include "reg.h"
 #include "debug.h"
 #include "util.h"
+#include "bf.h"
 
 static void rtw8822c_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
 				     u8 rx_path, bool is_tx2_path);
@@ -40,6 +41,11 @@
 	efuse->country_code[1] = map->country_code[1];
 	efuse->bt_setting = map->rf_bt_setting;
 	efuse->regd = map->rf_board_option & 0x7;
+	efuse->thermal_meter[RF_PATH_A] = map->path_a_thermal;
+	efuse->thermal_meter[RF_PATH_B] = map->path_b_thermal;
+	efuse->thermal_meter_k =
+			(map->path_a_thermal + map->path_b_thermal) >> 1;
+	efuse->power_track_type = (map->tx_pwr_calibrate_rate >> 4) & 0xf;
 
 	for (i = 0; i < 4; i++)
 		efuse->txpwr_idx_table[i] = map->txpwr_idx_table[i];
@@ -1000,6 +1006,21 @@
 	rtw8822c_rf_x2_check(rtwdev);
 }
 
+static void rtw8822c_pwrtrack_init(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 path;
+
+	for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++) {
+		dm_info->delta_power_index[path] = 0;
+		ewma_thermal_init(&dm_info->avg_thermal[path]);
+		dm_info->thermal_avg[path] = 0xff;
+	}
+
+	dm_info->pwr_trk_triggered = false;
+	dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
+}
+
 static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
 {
 	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
@@ -1047,6 +1068,9 @@
 	dm_info->cck_gi_l_bnd = ((cck_gi_l_bnd_msb << 4) | (cck_gi_l_bnd_lsb));
 
 	rtw8822c_rf_init(rtwdev);
+	rtw8822c_pwrtrack_init(rtwdev);
+
+	rtw_bf_phy_init(rtwdev);
 }
 
 #define WLAN_TXQ_RPT_EN		0x1F
@@ -1088,8 +1112,8 @@
 #define WLAN_AMPDU_MAX_TIME		0x70
 #define WLAN_RTS_LEN_TH			0xFF
 #define WLAN_RTS_TX_TIME_TH		0x08
-#define WLAN_MAX_AGG_PKT_LIMIT		0x20
-#define WLAN_RTS_MAX_AGG_PKT_LIMIT	0x20
+#define WLAN_MAX_AGG_PKT_LIMIT		0x3f
+#define WLAN_RTS_MAX_AGG_PKT_LIMIT	0x3f
 #define WLAN_PRE_TXCNT_TIME_TH		0x1E0
 #define FAST_EDCA_VO_TH		0x06
 #define FAST_EDCA_VI_TH		0x06
@@ -1112,6 +1136,7 @@
 #define WLAN_RTS_RATE_FB_RATE4_H	0x400003E0
 #define WLAN_RTS_RATE_FB_RATE5		0x0600F015
 #define WLAN_RTS_RATE_FB_RATE5_H	0x000000E0
+#define WLAN_MULTI_ADDR			0xFFFFFFFF
 
 #define WLAN_TX_FUNC_CFG1		0x30
 #define WLAN_TX_FUNC_CFG2		0x30
@@ -1221,6 +1246,8 @@
 	rtw_write8(rtwdev, REG_BCN_MAX_ERR, WLAN_BCN_MAX_ERR);
 
 	/* WMAC configuration */
+	rtw_write32(rtwdev, REG_MAR, WLAN_MULTI_ADDR);
+	rtw_write32(rtwdev, REG_MAR + 4, WLAN_MULTI_ADDR);
 	rtw_write8(rtwdev, REG_BBPSF_CTRL + 2, WLAN_RESP_TXRATE);
 	rtw_write8(rtwdev, REG_ACKTO, WLAN_ACK_TO);
 	rtw_write8(rtwdev, REG_ACKTO_CCK, WLAN_ACK_TO_CCK);
@@ -1262,6 +1289,17 @@
 	return 0;
 }
 
+static void rtw8822c_rstb_3wire(struct rtw_dev *rtwdev, bool enable)
+{
+	if (enable) {
+		rtw_write32_mask(rtwdev, REG_RSTB, BIT_RSTB_3WIRE, 0x1);
+		rtw_write32_mask(rtwdev, REG_ANAPAR_A, BIT_ANAPAR_UPDATE, 0x1);
+		rtw_write32_mask(rtwdev, REG_ANAPAR_B, BIT_ANAPAR_UPDATE, 0x1);
+	} else {
+		rtw_write32_mask(rtwdev, REG_RSTB, BIT_RSTB_3WIRE, 0x0);
+	}
+}
+
 static void rtw8822c_set_channel_rf(struct rtw_dev *rtwdev, u8 channel, u8 bw)
 {
 #define RF18_BAND_MASK		(BIT(16) | BIT(9) | BIT(8))
@@ -1284,11 +1322,11 @@
 	rf_reg18 &= ~(RF18_BAND_MASK | RF18_CHANNEL_MASK | RF18_RFSI_MASK |
 		      RF18_BW_MASK);
 
-	rf_reg18 |= (channel <= 14 ? RF18_BAND_2G : RF18_BAND_5G);
+	rf_reg18 |= (IS_CH_2G_BAND(channel) ? RF18_BAND_2G : RF18_BAND_5G);
 	rf_reg18 |= (channel & RF18_CHANNEL_MASK);
-	if (channel > 144)
+	if (IS_CH_5G_BAND_4(channel))
 		rf_reg18 |= RF18_RFSI_GT_CH140;
-	else if (channel >= 80)
+	else if (IS_CH_5G_BAND_3(channel))
 		rf_reg18 |= RF18_RFSI_GE_CH80;
 
 	switch (bw) {
@@ -1310,6 +1348,8 @@
 		break;
 	}
 
+	rtw8822c_rstb_3wire(rtwdev, false);
+
 	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE2, 0x04, 0x01);
 	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWA, 0x1f, 0x12);
 	rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWD0, 0xfffff, rf_rxbb);
@@ -1322,6 +1362,8 @@
 
 	rtw_write_rf(rtwdev, RF_PATH_A, RF_CFGCH, RFREG_MASK, rf_reg18);
 	rtw_write_rf(rtwdev, RF_PATH_B, RF_CFGCH, RFREG_MASK, rf_reg18);
+
+	rtw8822c_rstb_3wire(rtwdev, true);
 }
 
 static void rtw8822c_toggle_igi(struct rtw_dev *rtwdev)
@@ -1338,7 +1380,7 @@
 static void rtw8822c_set_channel_bb(struct rtw_dev *rtwdev, u8 channel, u8 bw,
 				    u8 primary_ch_idx)
 {
-	if (channel <= 14) {
+	if (IS_CH_2G_BAND(channel)) {
 		rtw_write32_clr(rtwdev, REG_BGCTRL, BITS_RX_IQ_WEIGHT);
 		rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x8);
 		rtw_write32_set(rtwdev, REG_TXF4, BIT(20));
@@ -1403,7 +1445,7 @@
 			rtw_write32_mask(rtwdev, REG_TXDFIR0, 0x70, 0x3);
 		else
 			rtw_write32_mask(rtwdev, REG_TXDFIR0, 0x70, 0x1);
-	} else if (channel > 35) {
+	} else if (IS_CH_5G_BAND(channel)) {
 		rtw_write32_set(rtwdev, REG_CCKTXONLY, BIT_BB_CCK_CHECK_EN);
 		rtw_write32_set(rtwdev, REG_CCK_CHECK, BIT_CHECK_CCK_EN);
 		rtw_write32_set(rtwdev, REG_BGCTRL, BITS_RX_IQ_WEIGHT);
@@ -1411,17 +1453,17 @@
 		rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x0);
 		rtw_write32_mask(rtwdev, REG_CCAMSK, 0x3F000000, 0x22);
 		rtw_write32_mask(rtwdev, REG_TXDFIR0, 0x70, 0x3);
-		if (channel >= 36 && channel <= 64) {
+		if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) {
 			rtw_write32_mask(rtwdev, REG_RXAGCCTL0, BITS_RXAGC_OFDM,
 					 0x1);
 			rtw_write32_mask(rtwdev, REG_RXAGCCTL, BITS_RXAGC_OFDM,
 					 0x1);
-		} else if (channel >= 100 && channel <= 144) {
+		} else if (IS_CH_5G_BAND_3(channel)) {
 			rtw_write32_mask(rtwdev, REG_RXAGCCTL0, BITS_RXAGC_OFDM,
 					 0x2);
 			rtw_write32_mask(rtwdev, REG_RXAGCCTL, BITS_RXAGC_OFDM,
 					 0x2);
-		} else if (channel >= 149) {
+		} else if (IS_CH_5G_BAND_4(channel)) {
 			rtw_write32_mask(rtwdev, REG_RXAGCCTL0, BITS_RXAGC_OFDM,
 					 0x3);
 			rtw_write32_mask(rtwdev, REG_RXAGCCTL, BITS_RXAGC_OFDM,
@@ -1455,7 +1497,7 @@
 		break;
 	case RTW_CHANNEL_WIDTH_40:
 		rtw_write32_mask(rtwdev, REG_CCKSB, BIT(4),
-				 (primary_ch_idx == 1 ? 1 : 0));
+				 (primary_ch_idx == RTW_SC_20_UPPER ? 1 : 0));
 		rtw_write32_mask(rtwdev, REG_TXBWCTL, 0xf, 0x5);
 		rtw_write32_mask(rtwdev, REG_TXBWCTL, 0xc0, 0x0);
 		rtw_write32_mask(rtwdev, REG_TXBWCTL, 0xff00,
@@ -1616,6 +1658,8 @@
 	u8 gain_a, gain_b;
 	s8 rx_power[RTW_RF_PATH_MAX];
 	s8 min_rx_power = -120;
+	u8 rssi;
+	int path;
 
 	rx_power[RF_PATH_A] = GET_PHY_STAT_P0_PWDB_A(phy_status);
 	rx_power[RF_PATH_B] = GET_PHY_STAT_P0_PWDB_B(phy_status);
@@ -1638,6 +1682,11 @@
 	pkt_stat->rx_power[RF_PATH_A] = rx_power[RF_PATH_A];
 	pkt_stat->rx_power[RF_PATH_B] = rx_power[RF_PATH_B];
 
+	for (path = 0; path <= rtwdev->hal.rf_path_num; path++) {
+		rssi = rtw_phy_rf_power_2_rssi(&pkt_stat->rx_power[path], 1);
+		dm_info->rssi[path] = rssi;
+	}
+
 	pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1);
 	pkt_stat->bw = RTW_CHANNEL_WIDTH_20;
 	pkt_stat->signal_power = max(pkt_stat->rx_power[RF_PATH_A],
@@ -1647,8 +1696,13 @@
 static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status,
 				   struct rtw_rx_pkt_stat *pkt_stat)
 {
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
 	u8 rxsc, bw;
 	s8 min_rx_power = -120;
+	s8 rx_evm;
+	u8 evm_dbm = 0;
+	u8 rssi;
+	int path;
 
 	if (pkt_stat->rate > DESC_RATE11M && pkt_stat->rate < DESC_RATEMCS0)
 		rxsc = GET_PHY_STAT_P1_L_RXSC(phy_status);
@@ -1669,6 +1723,34 @@
 	pkt_stat->signal_power = max3(pkt_stat->rx_power[RF_PATH_A],
 				      pkt_stat->rx_power[RF_PATH_B],
 				      min_rx_power);
+
+	dm_info->curr_rx_rate = pkt_stat->rate;
+
+	pkt_stat->rx_evm[RF_PATH_A] = GET_PHY_STAT_P1_RXEVM_A(phy_status);
+	pkt_stat->rx_evm[RF_PATH_B] = GET_PHY_STAT_P1_RXEVM_B(phy_status);
+
+	pkt_stat->rx_snr[RF_PATH_A] = GET_PHY_STAT_P1_RXSNR_A(phy_status);
+	pkt_stat->rx_snr[RF_PATH_B] = GET_PHY_STAT_P1_RXSNR_B(phy_status);
+
+	pkt_stat->cfo_tail[RF_PATH_A] = GET_PHY_STAT_P1_CFO_TAIL_A(phy_status);
+	pkt_stat->cfo_tail[RF_PATH_B] = GET_PHY_STAT_P1_CFO_TAIL_B(phy_status);
+
+	for (path = 0; path <= rtwdev->hal.rf_path_num; path++) {
+		rssi = rtw_phy_rf_power_2_rssi(&pkt_stat->rx_power[path], 1);
+		dm_info->rssi[path] = rssi;
+		dm_info->rx_snr[path] = pkt_stat->rx_snr[path] >> 1;
+		dm_info->cfo_tail[path] = (pkt_stat->cfo_tail[path] * 5) >> 1;
+
+		rx_evm = pkt_stat->rx_evm[path];
+
+		if (rx_evm < 0) {
+			if (rx_evm == S8_MIN)
+				evm_dbm = 0;
+			else
+				evm_dbm = ((u8)-rx_evm >> 1);
+		}
+		dm_info->rx_evm_dbm[path] = evm_dbm;
+	}
 }
 
 static void query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status,
@@ -1704,7 +1786,8 @@
 	pkt_stat->phy_status = GET_RX_DESC_PHYST(rx_desc);
 	pkt_stat->icv_err = GET_RX_DESC_ICV_ERR(rx_desc);
 	pkt_stat->crc_err = GET_RX_DESC_CRC32(rx_desc);
-	pkt_stat->decrypted = !GET_RX_DESC_SWDEC(rx_desc);
+	pkt_stat->decrypted = !GET_RX_DESC_SWDEC(rx_desc) &&
+			      GET_RX_DESC_ENC_TYPE(rx_desc) != RX_DESC_ENC_NONE;
 	pkt_stat->is_c2h = GET_RX_DESC_C2H(rx_desc);
 	pkt_stat->pkt_len = GET_RX_DESC_PKT_LEN(rx_desc);
 	pkt_stat->drv_info_sz = GET_RX_DESC_DRV_INFO_SIZE(rx_desc);
@@ -1822,6 +1905,7 @@
 	u32 cck_enable;
 	u32 cck_fa_cnt;
 	u32 crc32_cnt;
+	u32 cca32_cnt;
 	u32 ofdm_fa_cnt;
 	u32 ofdm_fa_cnt1, ofdm_fa_cnt2, ofdm_fa_cnt3, ofdm_fa_cnt4, ofdm_fa_cnt5;
 	u16 parity_fail, rate_illegal, crc8_fail, mcs_fail, sb_search_fail,
@@ -1866,6 +1950,13 @@
 	dm_info->vht_ok_cnt = crc32_cnt & 0xffff;
 	dm_info->vht_err_cnt = (crc32_cnt & 0xffff0000) >> 16;
 
+	cca32_cnt = rtw_read32(rtwdev, 0x2c08);
+	dm_info->ofdm_cca_cnt = ((cca32_cnt & 0xffff0000) >> 16);
+	dm_info->cck_cca_cnt = cca32_cnt & 0xffff;
+	dm_info->total_cca_cnt = dm_info->ofdm_cca_cnt;
+	if (cck_enable)
+		dm_info->total_cca_cnt += dm_info->cck_cca_cnt;
+
 	rtw_write32_mask(rtwdev, REG_CCANRX, BIT_CCK_FA_RST, 0);
 	rtw_write32_mask(rtwdev, REG_CCANRX, BIT_CCK_FA_RST, 2);
 	rtw_write32_mask(rtwdev, REG_CCANRX, BIT_OFDM_FA_RST, 0);
@@ -2053,6 +2144,57 @@
 	}
 }
 
+static void rtw8822c_bf_enable_bfee_su(struct rtw_dev *rtwdev,
+				       struct rtw_vif *vif,
+				       struct rtw_bfee *bfee)
+{
+	u8 csi_rsc = 0;
+	u32 tmp6dc;
+
+	rtw_bf_enable_bfee_su(rtwdev, vif, bfee);
+
+	tmp6dc = rtw_read32(rtwdev, REG_BBPSF_CTRL) |
+			    BIT_WMAC_USE_NDPARATE |
+			    (csi_rsc << 13);
+	if (vif->net_type == RTW_NET_AP_MODE)
+		rtw_write32(rtwdev, REG_BBPSF_CTRL, tmp6dc | BIT(12));
+	else
+		rtw_write32(rtwdev, REG_BBPSF_CTRL, tmp6dc & ~BIT(12));
+
+	rtw_write32(rtwdev, REG_CSI_RRSR, 0x550);
+}
+
+static void rtw8822c_bf_config_bfee_su(struct rtw_dev *rtwdev,
+				       struct rtw_vif *vif,
+				       struct rtw_bfee *bfee, bool enable)
+{
+	if (enable)
+		rtw8822c_bf_enable_bfee_su(rtwdev, vif, bfee);
+	else
+		rtw_bf_remove_bfee_su(rtwdev, bfee);
+}
+
+static void rtw8822c_bf_config_bfee_mu(struct rtw_dev *rtwdev,
+				       struct rtw_vif *vif,
+				       struct rtw_bfee *bfee, bool enable)
+{
+	if (enable)
+		rtw_bf_enable_bfee_mu(rtwdev, vif, bfee);
+	else
+		rtw_bf_remove_bfee_mu(rtwdev, bfee);
+}
+
+static void rtw8822c_bf_config_bfee(struct rtw_dev *rtwdev, struct rtw_vif *vif,
+				    struct rtw_bfee *bfee, bool enable)
+{
+	if (bfee->role == RTW_BFEE_SU)
+		rtw8822c_bf_config_bfee_su(rtwdev, vif, bfee, enable);
+	else if (bfee->role == RTW_BFEE_MU)
+		rtw8822c_bf_config_bfee_mu(rtwdev, vif, bfee, enable);
+	else
+		rtw_warn(rtwdev, "wrong bfee role\n");
+}
+
 struct dpk_cfg_pair {
 	u32 addr;
 	u32 bitmask;
@@ -2603,9 +2745,9 @@
 {
 	if (coef_i == 0x1000 || coef_i == 0x0fff ||
 	    coef_q == 0x1000 || coef_q == 0x0fff)
-		return 1;
-	else
-		return 0;
+		return true;
+
+	return false;
 }
 
 static u32 rtw8822c_dpk_coef_transfer(struct rtw_dev *rtwdev)
@@ -2843,7 +2985,7 @@
 	dpk_info->dpk_gs[path] = tmp_gs;
 }
 
-void rtw8822c_dpk_cal_coef1(struct rtw_dev *rtwdev)
+static void rtw8822c_dpk_cal_coef1(struct rtw_dev *rtwdev)
 {
 	struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
 	u32 offset[DPK_RF_PATH_NUM] = {0, 0x58};
@@ -3084,7 +3226,7 @@
 	rtw8822c_do_dpk(rtwdev);
 }
 
-void rtw8822c_dpk_track(struct rtw_dev *rtwdev)
+static void rtw8822c_dpk_track(struct rtw_dev *rtwdev)
 {
 	struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
 	u8 path;
@@ -3168,8 +3310,8 @@
 static void rtw8822c_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
 {
 	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-	s8 pd_lvl[4] = {2, 4, 6, 8};
-	s8 cs_lvl[4] = {2, 2, 2, 4};
+	s8 pd_lvl[CCK_PD_LV_MAX] = {0, 2, 4, 6, 8};
+	s8 cs_lvl[CCK_PD_LV_MAX] = {0, 2, 2, 2, 4};
 	u8 cur_lvl;
 	u8 nrx, bw;
 
@@ -3191,6 +3333,118 @@
 	dm_info->cck_pd_lv[bw][nrx] = new_lvl;
 }
 
+#define PWR_TRACK_MASK 0x7f
+static void rtw8822c_pwrtrack_set(struct rtw_dev *rtwdev, u8 rf_path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	switch (rf_path) {
+	case RF_PATH_A:
+		rtw_write32_mask(rtwdev, 0x18a0, PWR_TRACK_MASK,
+				 dm_info->delta_power_index[rf_path]);
+		break;
+	case RF_PATH_B:
+		rtw_write32_mask(rtwdev, 0x41a0, PWR_TRACK_MASK,
+				 dm_info->delta_power_index[rf_path]);
+		break;
+	default:
+		break;
+	}
+}
+
+static void rtw8822c_pwr_track_path(struct rtw_dev *rtwdev,
+				    struct rtw_swing_table *swing_table,
+				    u8 path)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	u8 thermal_value, delta;
+
+	if (rtwdev->efuse.thermal_meter[path] == 0xff)
+		return;
+
+	thermal_value = rtw_read_rf(rtwdev, path, RF_T_METER, 0x7e);
+
+	rtw_phy_pwrtrack_avg(rtwdev, thermal_value, path);
+
+	delta = rtw_phy_pwrtrack_get_delta(rtwdev, path);
+
+	dm_info->delta_power_index[path] =
+		rtw_phy_pwrtrack_get_pwridx(rtwdev, swing_table, path, path,
+					    delta);
+
+	rtw8822c_pwrtrack_set(rtwdev, path);
+}
+
+static void __rtw8822c_pwr_track(struct rtw_dev *rtwdev)
+{
+	struct rtw_swing_table swing_table;
+	u8 i;
+
+	rtw_phy_config_swing_table(rtwdev, &swing_table);
+
+	for (i = 0; i < rtwdev->hal.rf_path_num; i++)
+		rtw8822c_pwr_track_path(rtwdev, &swing_table, i);
+
+	if (rtw_phy_pwrtrack_need_iqk(rtwdev))
+		rtw8822c_do_iqk(rtwdev);
+}
+
+static void rtw8822c_pwr_track(struct rtw_dev *rtwdev)
+{
+	struct rtw_efuse *efuse = &rtwdev->efuse;
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+
+	if (efuse->power_track_type != 0)
+		return;
+
+	if (!dm_info->pwr_trk_triggered) {
+		rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER, BIT(19), 0x01);
+		rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER, BIT(19), 0x00);
+		rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER, BIT(19), 0x01);
+
+		rtw_write_rf(rtwdev, RF_PATH_B, RF_T_METER, BIT(19), 0x01);
+		rtw_write_rf(rtwdev, RF_PATH_B, RF_T_METER, BIT(19), 0x00);
+		rtw_write_rf(rtwdev, RF_PATH_B, RF_T_METER, BIT(19), 0x01);
+
+		dm_info->pwr_trk_triggered = true;
+		return;
+	}
+
+	__rtw8822c_pwr_track(rtwdev);
+	dm_info->pwr_trk_triggered = false;
+}
+
+static void rtw8822c_adaptivity_init(struct rtw_dev *rtwdev)
+{
+	rtw_phy_set_edcca_th(rtwdev, 0x7f, 0x7f);
+	/* mac edcca state setting */
+	rtw_write32_mask(rtwdev, REG_TX_PTCL_CTRL, BIT_DIS_EDCCA, 0);
+	rtw_write32_mask(rtwdev, REG_RD_CTRL, BIT_EDCCA_MSK_CNTDOWN_EN, 1);
+	/* edcca decistion opt */
+	rtw_write32_mask(rtwdev, REG_EDCCA_DECISION, BIT_EDCCA_OPTION, 0);
+}
+
+static void rtw8822c_adaptivity(struct rtw_dev *rtwdev)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	s8 l2h, h2l;
+	u8 igi;
+
+	igi = dm_info->igi_history[0];
+	if (dm_info->edcca_mode == RTW_EDCCA_NORMAL) {
+		l2h = max_t(s8, igi + EDCCA_IGI_L2H_DIFF, EDCCA_TH_L2H_LB);
+		h2l = l2h - EDCCA_L2H_H2L_DIFF_NORMAL;
+	} else {
+		if (igi < dm_info->l2h_th_ini - EDCCA_ADC_BACKOFF)
+			l2h = igi + EDCCA_ADC_BACKOFF;
+		else
+			l2h = dm_info->l2h_th_ini;
+		h2l = l2h - EDCCA_L2H_H2L_DIFF;
+	}
+
+	rtw_phy_set_edcca_th(rtwdev, l2h, h2l);
+}
+
 static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] = {
 	{0x0086,
 	 RTW_PWR_CUT_ALL_MSK,
@@ -3279,12 +3533,12 @@
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_ALL_MSK,
 	 RTW_PWR_ADDR_MAC,
-	 RTW_PWR_CMD_WRITE, BIT(7), 0},
-	{0x0005,
+	 RTW_PWR_CMD_WRITE, (BIT(4) | BIT(3)), 0},
+	{0x1018,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_ALL_MSK,
 	 RTW_PWR_ADDR_MAC,
-	 RTW_PWR_CMD_WRITE, (BIT(4) | BIT(3)), 0},
+	 RTW_PWR_CMD_WRITE, BIT(2), BIT(2)},
 	{0x0005,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_ALL_MSK,
@@ -3336,6 +3590,11 @@
 	 RTW_PWR_INTF_ALL_MSK,
 	 RTW_PWR_ADDR_MAC,
 	 RTW_PWR_CMD_WRITE, BIT(2), BIT(2)},
+	{0x1064,
+	 RTW_PWR_CUT_ALL_MSK,
+	 RTW_PWR_INTF_ALL_MSK,
+	 RTW_PWR_ADDR_MAC,
+	 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
 	{0xFFFF,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_ALL_MSK,
@@ -3531,6 +3790,12 @@
 	[1] = { .addr = 0x1d70, .mask = 0x7f00 },
 };
 
+static struct rtw_ltecoex_addr rtw8822c_ltecoex_addr = {
+	.ctrl = LTECOEX_ACCESS_CTRL,
+	.wdata = LTECOEX_WRITE_DATA,
+	.rdata = LTECOEX_READ_DATA,
+};
+
 static struct rtw_page_table page_table_8822c[] = {
 	{64, 64, 64, 64, 1},
 	{64, 64, 64, 64, 1},
@@ -3557,6 +3822,22 @@
 	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
 };
 
+static struct rtw_prioq_addrs prioq_addrs_8822c = {
+	.prio[RTW_DMA_MAPPING_EXTRA] = {
+		.rsvd = REG_FIFOPAGE_INFO_4, .avail = REG_FIFOPAGE_INFO_4 + 2,
+	},
+	.prio[RTW_DMA_MAPPING_LOW] = {
+		.rsvd = REG_FIFOPAGE_INFO_2, .avail = REG_FIFOPAGE_INFO_2 + 2,
+	},
+	.prio[RTW_DMA_MAPPING_NORMAL] = {
+		.rsvd = REG_FIFOPAGE_INFO_3, .avail = REG_FIFOPAGE_INFO_3 + 2,
+	},
+	.prio[RTW_DMA_MAPPING_HIGH] = {
+		.rsvd = REG_FIFOPAGE_INFO_1, .avail = REG_FIFOPAGE_INFO_1 + 2,
+	},
+	.wsize = true,
+};
+
 static struct rtw_chip_ops rtw8822c_ops = {
 	.phy_set_param		= rtw8822c_phy_set_param,
 	.read_efuse		= rtw8822c_read_efuse,
@@ -3571,6 +3852,12 @@
 	.dpk_track		= rtw8822c_dpk_track,
 	.phy_calibration	= rtw8822c_phy_calibration,
 	.cck_pd_set		= rtw8822c_phy_cck_pd_set,
+	.pwr_track		= rtw8822c_pwr_track,
+	.config_bfee		= rtw8822c_bf_config_bfee,
+	.set_gid_table		= rtw_bf_set_gid_table,
+	.cfg_csi_rate		= rtw_bf_cfg_csi_rate,
+	.adaptivity_init	= rtw8822c_adaptivity_init,
+	.adaptivity		= rtw8822c_adaptivity,
 
 	.coex_set_init		= rtw8822c_coex_cfg_init,
 	.coex_set_ant_switch	= NULL,
@@ -3725,10 +4012,180 @@
 
 static_assert(ARRAY_SIZE(rf_para_tx_8822c) == ARRAY_SIZE(rf_para_rx_8822c));
 
+static const u8
+rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  3,  5,  6,  7,  8,  9, 10,
+	 11, 12, 13, 14, 15, 16, 18, 19, 20, 21,
+	 22, 23, 24, 25, 26, 27, 28, 29, 30, 32 },
+	{ 0,  1,  2,  3,  5,  6,  7,  8,  9, 10,
+	 11, 12, 13, 14, 15, 16, 18, 19, 20, 21,
+	 22, 23, 24, 25, 26, 27, 28, 29, 30, 32 },
+	{ 0,  1,  2,  3,  5,  6,  7,  8,  9, 10,
+	 11, 12, 13, 14, 15, 16, 18, 19, 20, 21,
+	 22, 23, 24, 25, 26, 27, 28, 29, 30, 32 },
+};
+
+static const u8
+rtw8822c_pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	 10, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+	 19, 20, 21, 22, 22, 23, 24, 25, 26, 27 },
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	 10, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+	 19, 20, 21, 22, 22, 23, 24, 25, 26, 27 },
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	 10, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+	 19, 20, 21, 22, 22, 23, 24, 25, 26, 27 },
+};
+
+static const u8
+rtw8822c_pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  4,  5,  6,  7,  8,  9, 10,
+	 11, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+	 23, 24, 25, 26, 27, 28, 29, 30, 31, 33 },
+	{ 0,  1,  2,  4,  5,  6,  7,  8,  9, 10,
+	 11, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+	 23, 24, 25, 26, 27, 28, 29, 30, 31, 33 },
+	{ 0,  1,  2,  4,  5,  6,  7,  8,  9, 10,
+	 11, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+	 23, 24, 25, 26, 27, 28, 29, 30, 31, 33 },
+};
+
+static const u8
+rtw8822c_pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	 10, 11, 12, 13, 14, 15, 16, 17, 18, 20,
+	 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	 10, 11, 12, 13, 14, 15, 16, 17, 18, 20,
+	 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+	{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	 10, 11, 12, 13, 14, 15, 16, 17, 18, 20,
+	 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+};
+
+static const u8 rtw8822c_pwrtrk_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  4,  4,  5,  6,  7,  8,
+	 9,  9, 10, 11, 12, 13, 14, 15, 15, 16,
+	17, 18, 19, 20, 20, 21, 22, 23, 24, 25
+};
+
+static const u8 rtw8822c_pwrtrk_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	10, 11, 12, 13, 14, 14, 15, 16, 17, 18,
+	19, 20, 21, 22, 23, 24, 25, 26, 27, 28
+};
+
+static const u8 rtw8822c_pwrtrk_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  2,  3,  4,  4,  5,  6,  6,
+	 7,  8,  8,  9,  9, 10, 11, 11, 12, 13,
+	13, 14, 15, 15, 16, 17, 17, 18, 19, 19
+};
+
+static const u8 rtw8822c_pwrtrk_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	10, 11, 11, 12, 13, 14, 15, 16, 17, 18,
+	19, 20, 21, 22, 23, 24, 25, 25, 26, 27
+};
+
+static const u8 rtw8822c_pwrtrk_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  4,  5,  5,  6,  7,  8,
+	 9, 10, 11, 11, 12, 13, 14, 15, 16, 17,
+	17, 18, 19, 20, 21, 22, 23, 23, 24, 25
+};
+
+static const u8 rtw8822c_pwrtrk_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+	10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+	20, 21, 22, 23, 24, 25, 26, 27, 28, 29
+};
+
+static const u8 rtw8822c_pwrtrk_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  3,  4,  5,  6,  6,  7,
+	 8,  9,  9, 10, 11, 12, 12, 13, 14, 15,
+	15, 16, 17, 18, 18, 19, 20, 21, 21, 22
+};
+
+static const u8 rtw8822c_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
+	 0,  1,  2,  3,  4,  5,  5,  6,  7,  8,
+	 9, 10, 11, 11, 12, 13, 14, 15, 16, 17,
+	18, 18, 19, 20, 21, 22, 23, 24, 24, 25
+};
+
+static const struct rtw_pwr_track_tbl rtw8822c_rtw_pwr_track_tbl = {
+	.pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_3],
+	.pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8822c_pwrtrk_5gb_p[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8822c_pwrtrk_5gb_p[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8822c_pwrtrk_5gb_p[RTW_PWR_TRK_5G_3],
+	.pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8822c_pwrtrk_5ga_n[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8822c_pwrtrk_5ga_n[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8822c_pwrtrk_5ga_n[RTW_PWR_TRK_5G_3],
+	.pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8822c_pwrtrk_5ga_p[RTW_PWR_TRK_5G_1],
+	.pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8822c_pwrtrk_5ga_p[RTW_PWR_TRK_5G_2],
+	.pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8822c_pwrtrk_5ga_p[RTW_PWR_TRK_5G_3],
+	.pwrtrk_2gb_n = rtw8822c_pwrtrk_2gb_n,
+	.pwrtrk_2gb_p = rtw8822c_pwrtrk_2gb_p,
+	.pwrtrk_2ga_n = rtw8822c_pwrtrk_2ga_n,
+	.pwrtrk_2ga_p = rtw8822c_pwrtrk_2ga_p,
+	.pwrtrk_2g_cckb_n = rtw8822c_pwrtrk_2g_cck_b_n,
+	.pwrtrk_2g_cckb_p = rtw8822c_pwrtrk_2g_cck_b_p,
+	.pwrtrk_2g_ccka_n = rtw8822c_pwrtrk_2g_cck_a_n,
+	.pwrtrk_2g_ccka_p = rtw8822c_pwrtrk_2g_cck_a_p,
+};
+
+static struct rtw_hw_reg_offset rtw8822c_edcca_th[] = {
+	[EDCCA_TH_L2H_IDX] = {
+		{.addr = 0x84c, .mask = MASKBYTE2}, .offset = 0x80
+	},
+	[EDCCA_TH_H2L_IDX] = {
+		{.addr = 0x84c, .mask = MASKBYTE3}, .offset = 0x80
+	},
+};
+
+#ifdef CONFIG_PM
+static const struct wiphy_wowlan_support rtw_wowlan_stub_8822c = {
+	.flags = WIPHY_WOWLAN_MAGIC_PKT | WIPHY_WOWLAN_GTK_REKEY_FAILURE |
+		 WIPHY_WOWLAN_DISCONNECT | WIPHY_WOWLAN_SUPPORTS_GTK_REKEY |
+		 WIPHY_WOWLAN_NET_DETECT,
+	.n_patterns = RTW_MAX_PATTERN_NUM,
+	.pattern_max_len = RTW_MAX_PATTERN_SIZE,
+	.pattern_min_len = 1,
+	.max_nd_match_sets = 4,
+};
+#endif
+
+static const struct rtw_reg_domain coex_info_hw_regs_8822c[] = {
+	{0x1860, BIT(3), RTW_REG_DOMAIN_MAC8},
+	{0x4160, BIT(3), RTW_REG_DOMAIN_MAC8},
+	{0x1c32, BIT(6), RTW_REG_DOMAIN_MAC8},
+	{0x1c38, BIT(28), RTW_REG_DOMAIN_MAC32},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x430, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x434, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x42a, MASKLWORD, RTW_REG_DOMAIN_MAC16},
+	{0x426, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0x45e, BIT(3), RTW_REG_DOMAIN_MAC8},
+	{0x454, MASKLWORD, RTW_REG_DOMAIN_MAC16},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x4c, BIT(24) | BIT(23), RTW_REG_DOMAIN_MAC32},
+	{0x64, BIT(0), RTW_REG_DOMAIN_MAC8},
+	{0x4c6, BIT(4), RTW_REG_DOMAIN_MAC8},
+	{0x40, BIT(5), RTW_REG_DOMAIN_MAC8},
+	{0x1, RFREG_MASK, RTW_REG_DOMAIN_RF_B},
+	{0, 0, RTW_REG_DOMAIN_NL},
+	{0x550, MASKDWORD, RTW_REG_DOMAIN_MAC32},
+	{0x522, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+	{0x953, BIT(1), RTW_REG_DOMAIN_MAC8},
+	{0xc50, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
+};
+
 struct rtw_chip_info rtw8822c_hw_spec = {
 	.ops = &rtw8822c_ops,
 	.id = RTW_CHIP_TYPE_8822C,
 	.fw_name = "rtw88/rtw8822c_fw.bin",
+	.wlan_cpu = RTW_WCPU_11AC,
 	.tx_pkt_desc_sz = 48,
 	.tx_buf_desc_sz = 16,
 	.rx_pkt_desc_sz = 24,
@@ -3747,15 +4204,19 @@
 	.dig_min = 0x20,
 	.ht_supported = true,
 	.vht_supported = true,
+	.lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK) | BIT(LPS_DEEP_MODE_PG),
 	.sys_func_en = 0xD8,
 	.pwr_on_seq = card_enable_flow_8822c,
 	.pwr_off_seq = card_disable_flow_8822c,
 	.page_table = page_table_8822c,
 	.rqpn_table = rqpn_table_8822c,
+	.prioq_addrs = &prioq_addrs_8822c,
 	.intf_table = &phy_para_table_8822c,
 	.dig = rtw8822c_dig,
+	.dig_cck = NULL,
 	.rf_base_addr = {0x3c00, 0x4c00},
 	.rf_sipi_addr = {0x1808, 0x4108},
+	.ltecoex_addr = &rtw8822c_ltecoex_addr,
 	.mac_tbl = &rtw8822c_mac_tbl,
 	.agc_tbl = &rtw8822c_agc_tbl,
 	.bb_tbl = &rtw8822c_bb_tbl,
@@ -3765,7 +4226,19 @@
 	.rfe_defs_size = ARRAY_SIZE(rtw8822c_rfe_defs),
 	.en_dis_dpd = true,
 	.dpd_ratemask = DIS_DPD_RATEALL,
-
+	.pwr_track_tbl = &rtw8822c_rtw_pwr_track_tbl,
+	.iqk_threshold = 8,
+	.bfer_su_max_num = 2,
+	.bfer_mu_max_num = 1,
+	.edcca_th = rtw8822c_edcca_th,
+	.l2h_th_ini_cs = 60,
+	.l2h_th_ini_ad = 45,
+
+#ifdef CONFIG_PM
+	.wow_fw_name = "rtw88/rtw8822c_wow_fw.bin",
+	.wowlan_stub = &rtw_wowlan_stub_8822c,
+	.max_sched_scan_ssids = 4,
+#endif
 	.coex_para_ver = 0x19062706,
 	.bt_desired_ver = 0x6,
 	.scbd_support = true,
@@ -3791,7 +4264,11 @@
 	.bt_afh_span_bw40 = 0x36,
 	.afh_5g_num = ARRAY_SIZE(afh_5g_8822c),
 	.afh_5g = afh_5g_8822c,
+
+	.coex_info_hw_regs_num = ARRAY_SIZE(coex_info_hw_regs_8822c),
+	.coex_info_hw_regs = coex_info_hw_regs_8822c,
 };
 EXPORT_SYMBOL(rtw8822c_hw_spec);
 
 MODULE_FIRMWARE("rtw88/rtw8822c_fw.bin");
+MODULE_FIRMWARE("rtw88/rtw8822c_wow_fw.bin");
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822c.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822c.h
@@ -149,6 +149,18 @@
 	le32_get_bits(*((__le32 *)(phy_stat) + 0x01), GENMASK(11, 8))
 #define GET_PHY_STAT_P1_HT_RXSC(phy_stat)                                      \
 	le32_get_bits(*((__le32 *)(phy_stat) + 0x01), GENMASK(15, 12))
+#define GET_PHY_STAT_P1_RXEVM_A(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x04), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_RXEVM_B(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x04), GENMASK(15, 8))
+#define GET_PHY_STAT_P1_CFO_TAIL_A(phy_stat)                                 \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x05), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_CFO_TAIL_B(phy_stat)                                 \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x05), GENMASK(15, 8))
+#define GET_PHY_STAT_P1_RXSNR_A(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x06), GENMASK(7, 0))
+#define GET_PHY_STAT_P1_RXSNR_B(phy_stat)                                      \
+	le32_get_bits(*((__le32 *)(phy_stat) + 0x06), GENMASK(15, 8))
 
 #define REG_ANAPARLDO_POW_MAC	0x0029
 #define BIT_LDOE25_PON		BIT(0)
@@ -159,6 +171,8 @@
 #define REG_DFIRBW	0x810
 #define REG_ANTMAP0	0x820
 #define REG_ANTMAP	0x824
+#define REG_EDCCA_DECISION	0x844
+#define BIT_EDCCA_OPTION	GENMASK(30, 29)
 #define REG_DYMPRITH	0x86c
 #define REG_DYMENTH0	0x870
 #define REG_DYMENTH	0x874
@@ -178,6 +192,8 @@
 #define BIT_3WIRE_TX_EN		BIT(0)
 #define BIT_3WIRE_RX_EN		BIT(1)
 #define BIT_3WIRE_PI_ON		BIT(28)
+#define REG_ANAPAR_A	0x1830
+#define BIT_ANAPAR_UPDATE	BIT(29)
 #define REG_RXAGCCTL0	0x18ac
 #define BITS_RXAGC_CCK		GENMASK(15, 12)
 #define BITS_RXAGC_OFDM		GENMASK(8, 4)
@@ -211,6 +227,8 @@
 #define BIT_CCK_BLK_EN		BIT(1)
 #define BIT_CCK_OFDM_BLK_EN	(BIT(0) | BIT(1))
 #define REG_CCAMSK	0x1c80
+#define REG_RSTB	0x1c90
+#define BIT_RSTB_3WIRE		BIT(8)
 #define REG_RX_BREAK	0x1d2c
 #define BIT_COM_RX_GCK_EN	BIT(31)
 #define REG_RXFNCTL	0x1d30
@@ -231,6 +249,7 @@
 #define REG_OFDM_TXCNT	0x2de0
 #define REG_ORITXCODE2	0x4100
 #define REG_3WIRE2	0x410c
+#define REG_ANAPAR_B	0x4130
 #define REG_RXAGCCTL	0x41ac
 #define REG_DCKB_I_0	0x41bc
 #define REG_DCKB_I_1	0x41c0
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rtw8822c_table.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rtw8822c_table.c
@@ -1762,53 +1762,53 @@
 
 RTW_DECL_TABLE_PHY_COND(rtw8822c_bb, rtw_phy_cfg_bb);
 
-static const u32 rtw8822c_bb_pg_type0[] = {
-	0, 0, 0, 0x00000c20, 0xffffffff, 0x484c5054,
-	0, 0, 0, 0x00000c24, 0xffffffff, 0x54585c60,
-	0, 0, 0, 0x00000c28, 0xffffffff, 0x44484c50,
-	0, 0, 0, 0x00000c2c, 0xffffffff, 0x5054585c,
-	0, 0, 0, 0x00000c30, 0xffffffff, 0x4044484c,
-	0, 0, 1, 0x00000c34, 0xffffffff, 0x5054585c,
-	0, 0, 1, 0x00000c38, 0xffffffff, 0x4044484c,
-	0, 0, 0, 0x00000c3c, 0xffffffff, 0x5054585c,
-	0, 0, 0, 0x00000c40, 0xffffffff, 0x4044484c,
-	0, 0, 0, 0x00000c44, 0xffffffff, 0x585c383c,
-	0, 0, 1, 0x00000c48, 0xffffffff, 0x484c5054,
-	0, 0, 1, 0x00000c4c, 0xffffffff, 0x383c4044,
-	0, 1, 0, 0x00000e20, 0xffffffff, 0x484c5054,
-	0, 1, 0, 0x00000e24, 0xffffffff, 0x54585c60,
-	0, 1, 0, 0x00000e28, 0xffffffff, 0x44484c50,
-	0, 1, 0, 0x00000e2c, 0xffffffff, 0x5054585c,
-	0, 1, 0, 0x00000e30, 0xffffffff, 0x4044484c,
-	0, 1, 1, 0x00000e34, 0xffffffff, 0x5054585c,
-	0, 1, 1, 0x00000e38, 0xffffffff, 0x4044484c,
-	0, 1, 0, 0x00000e3c, 0xffffffff, 0x5054585c,
-	0, 1, 0, 0x00000e40, 0xffffffff, 0x4044484c,
-	0, 1, 0, 0x00000e44, 0xffffffff, 0x585c383c,
-	0, 1, 1, 0x00000e48, 0xffffffff, 0x484c5054,
-	0, 1, 1, 0x00000e4c, 0xffffffff, 0x383c4044,
-	1, 0, 0, 0x00000c24, 0xffffffff, 0x54585c60,
-	1, 0, 0, 0x00000c28, 0xffffffff, 0x44484c50,
-	1, 0, 0, 0x00000c2c, 0xffffffff, 0x5054585c,
-	1, 0, 0, 0x00000c30, 0xffffffff, 0x4044484c,
-	1, 0, 1, 0x00000c34, 0xffffffff, 0x5054585c,
-	1, 0, 1, 0x00000c38, 0xffffffff, 0x4044484c,
-	1, 0, 0, 0x00000c3c, 0xffffffff, 0x5054585c,
-	1, 0, 0, 0x00000c40, 0xffffffff, 0x4044484c,
-	1, 0, 0, 0x00000c44, 0xffffffff, 0x585c383c,
-	1, 0, 1, 0x00000c48, 0xffffffff, 0x484c5054,
-	1, 0, 1, 0x00000c4c, 0xffffffff, 0x383c4044,
-	1, 1, 0, 0x00000e24, 0xffffffff, 0x54585c60,
-	1, 1, 0, 0x00000e28, 0xffffffff, 0x44484c50,
-	1, 1, 0, 0x00000e2c, 0xffffffff, 0x5054585c,
-	1, 1, 0, 0x00000e30, 0xffffffff, 0x4044484c,
-	1, 1, 1, 0x00000e34, 0xffffffff, 0x5054585c,
-	1, 1, 1, 0x00000e38, 0xffffffff, 0x4044484c,
-	1, 1, 0, 0x00000e3c, 0xffffffff, 0x5054585c,
-	1, 1, 0, 0x00000e40, 0xffffffff, 0x4044484c,
-	1, 1, 0, 0x00000e44, 0xffffffff, 0x585c383c,
-	1, 1, 1, 0x00000e48, 0xffffffff, 0x484c5054,
-	1, 1, 1, 0x00000e4c, 0xffffffff, 0x383c4044
+static const struct rtw_phy_pg_cfg_pair rtw8822c_bb_pg_type0[] = {
+	{ 0, 0, 0, 0x00000c20, 0xffffffff, 0x484c5054, },
+	{ 0, 0, 0, 0x00000c24, 0xffffffff, 0x54585c60, },
+	{ 0, 0, 0, 0x00000c28, 0xffffffff, 0x44484c50, },
+	{ 0, 0, 0, 0x00000c2c, 0xffffffff, 0x5054585c, },
+	{ 0, 0, 0, 0x00000c30, 0xffffffff, 0x4044484c, },
+	{ 0, 0, 1, 0x00000c34, 0xffffffff, 0x5054585c, },
+	{ 0, 0, 1, 0x00000c38, 0xffffffff, 0x4044484c, },
+	{ 0, 0, 0, 0x00000c3c, 0xffffffff, 0x5054585c, },
+	{ 0, 0, 0, 0x00000c40, 0xffffffff, 0x4044484c, },
+	{ 0, 0, 0, 0x00000c44, 0xffffffff, 0x585c383c, },
+	{ 0, 0, 1, 0x00000c48, 0xffffffff, 0x484c5054, },
+	{ 0, 0, 1, 0x00000c4c, 0xffffffff, 0x383c4044, },
+	{ 0, 1, 0, 0x00000e20, 0xffffffff, 0x484c5054, },
+	{ 0, 1, 0, 0x00000e24, 0xffffffff, 0x54585c60, },
+	{ 0, 1, 0, 0x00000e28, 0xffffffff, 0x44484c50, },
+	{ 0, 1, 0, 0x00000e2c, 0xffffffff, 0x5054585c, },
+	{ 0, 1, 0, 0x00000e30, 0xffffffff, 0x4044484c, },
+	{ 0, 1, 1, 0x00000e34, 0xffffffff, 0x5054585c, },
+	{ 0, 1, 1, 0x00000e38, 0xffffffff, 0x4044484c, },
+	{ 0, 1, 0, 0x00000e3c, 0xffffffff, 0x5054585c, },
+	{ 0, 1, 0, 0x00000e40, 0xffffffff, 0x4044484c, },
+	{ 0, 1, 0, 0x00000e44, 0xffffffff, 0x585c383c, },
+	{ 0, 1, 1, 0x00000e48, 0xffffffff, 0x484c5054, },
+	{ 0, 1, 1, 0x00000e4c, 0xffffffff, 0x383c4044, },
+	{ 1, 0, 0, 0x00000c24, 0xffffffff, 0x54585c60, },
+	{ 1, 0, 0, 0x00000c28, 0xffffffff, 0x44484c50, },
+	{ 1, 0, 0, 0x00000c2c, 0xffffffff, 0x5054585c, },
+	{ 1, 0, 0, 0x00000c30, 0xffffffff, 0x4044484c, },
+	{ 1, 0, 1, 0x00000c34, 0xffffffff, 0x5054585c, },
+	{ 1, 0, 1, 0x00000c38, 0xffffffff, 0x4044484c, },
+	{ 1, 0, 0, 0x00000c3c, 0xffffffff, 0x5054585c, },
+	{ 1, 0, 0, 0x00000c40, 0xffffffff, 0x4044484c, },
+	{ 1, 0, 0, 0x00000c44, 0xffffffff, 0x585c383c, },
+	{ 1, 0, 1, 0x00000c48, 0xffffffff, 0x484c5054, },
+	{ 1, 0, 1, 0x00000c4c, 0xffffffff, 0x383c4044, },
+	{ 1, 1, 0, 0x00000e24, 0xffffffff, 0x54585c60, },
+	{ 1, 1, 0, 0x00000e28, 0xffffffff, 0x44484c50, },
+	{ 1, 1, 0, 0x00000e2c, 0xffffffff, 0x5054585c, },
+	{ 1, 1, 0, 0x00000e30, 0xffffffff, 0x4044484c, },
+	{ 1, 1, 1, 0x00000e34, 0xffffffff, 0x5054585c, },
+	{ 1, 1, 1, 0x00000e38, 0xffffffff, 0x4044484c, },
+	{ 1, 1, 0, 0x00000e3c, 0xffffffff, 0x5054585c, },
+	{ 1, 1, 0, 0x00000e40, 0xffffffff, 0x4044484c, },
+	{ 1, 1, 0, 0x00000e44, 0xffffffff, 0x585c383c, },
+	{ 1, 1, 1, 0x00000e48, 0xffffffff, 0x484c5054, },
+	{ 1, 1, 1, 0x00000e4c, 0xffffffff, 0x383c4044, },
 };
 
 RTW_DECL_TABLE_BB_PG(rtw8822c_bb_pg_type0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rx.c
@@ -5,6 +5,7 @@
 #include "main.h"
 #include "rx.h"
 #include "ps.h"
+#include "debug.h"
 
 void rtw_rx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
 		  struct sk_buff *skb)
@@ -25,8 +26,6 @@
 			rtwvif = (struct rtw_vif *)vif->drv_priv;
 			rtwvif->stats.rx_unicast += skb->len;
 			rtwvif->stats.rx_cnt++;
-			if (rtwvif->stats.rx_cnt > RTW_LPS_THRESHOLD)
-				rtw_leave_lps_irqsafe(rtwdev, rtwvif);
 		}
 	}
 }
@@ -39,6 +38,60 @@
 	u8 *bssid;
 };
 
+static void rtw_rx_phy_stat(struct rtw_dev *rtwdev,
+			    struct rtw_rx_pkt_stat *pkt_stat,
+			    struct ieee80211_hdr *hdr)
+{
+	struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+	struct rtw_pkt_count *cur_pkt_cnt = &dm_info->cur_pkt_count;
+	u8 rate_ss, rate_ss_evm, evm_id;
+	u8 i, idx;
+
+	dm_info->curr_rx_rate = pkt_stat->rate;
+
+	if (ieee80211_is_beacon(hdr->frame_control))
+		cur_pkt_cnt->num_bcn_pkt++;
+
+	switch (pkt_stat->rate) {
+	case DESC_RATE1M...DESC_RATE11M:
+		goto pkt_num;
+	case DESC_RATE6M...DESC_RATE54M:
+		rate_ss = 0;
+		rate_ss_evm = 1;
+		evm_id = RTW_EVM_OFDM;
+		break;
+	case DESC_RATEMCS0...DESC_RATEMCS7:
+	case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT1SS_MCS9:
+		rate_ss = 1;
+		rate_ss_evm = 1;
+		evm_id = RTW_EVM_1SS;
+		break;
+	case DESC_RATEMCS8...DESC_RATEMCS15:
+	case DESC_RATEVHT2SS_MCS0...DESC_RATEVHT2SS_MCS9:
+		rate_ss = 2;
+		rate_ss_evm = 2;
+		evm_id = RTW_EVM_2SS_A;
+		break;
+	default:
+		rtw_warn(rtwdev, "unknown pkt rate = %d\n", pkt_stat->rate);
+		return;
+	}
+
+	for (i = 0; i < rate_ss_evm; i++) {
+		idx = evm_id + i;
+		ewma_evm_add(&dm_info->ewma_evm[idx],
+			     dm_info->rx_evm_dbm[i]);
+	}
+
+	for (i = 0; i < rtwdev->hal.rf_path_num; i++) {
+		idx = RTW_SNR_OFDM_A + 4 * rate_ss + i;
+		ewma_snr_add(&dm_info->ewma_snr[idx],
+			     dm_info->rx_snr[i]);
+	}
+pkt_num:
+	cur_pkt_cnt->num_qry_pkt[pkt_stat->rate]++;
+}
+
 static void rtw_rx_addr_match_iter(void *data, u8 *mac,
 				   struct ieee80211_vif *vif)
 {
@@ -50,14 +103,16 @@
 	struct rtw_rx_pkt_stat *pkt_stat = iter_data->pkt_stat;
 	u8 *bssid = iter_data->bssid;
 
-	if (ether_addr_equal(vif->bss_conf.bssid, bssid) &&
-	    (ether_addr_equal(vif->addr, hdr->addr1) ||
-	     ieee80211_is_beacon(hdr->frame_control)))
-		sta = ieee80211_find_sta_by_ifaddr(rtwdev->hw, hdr->addr2,
-						   vif->addr);
-	else
+	if (!ether_addr_equal(vif->bss_conf.bssid, bssid))
 		return;
 
+	if (!(ether_addr_equal(vif->addr, hdr->addr1) ||
+	      ieee80211_is_beacon(hdr->frame_control)))
+		return;
+
+	rtw_rx_phy_stat(rtwdev, pkt_stat, hdr);
+	sta = ieee80211_find_sta_by_ifaddr(rtwdev->hw, hdr->addr2,
+					   vif->addr);
 	if (!sta)
 		return;
 
@@ -105,35 +160,17 @@
 	else if (pkt_stat->rate >= DESC_RATEMCS0)
 		rx_status->encoding = RX_ENC_HT;
 
-	if (pkt_stat->rate >= DESC_RATEVHT1SS_MCS0 &&
-	    pkt_stat->rate <= DESC_RATEVHT1SS_MCS9) {
-		rx_status->nss = 1;
-		rx_status->rate_idx = pkt_stat->rate - DESC_RATEVHT1SS_MCS0;
-	} else if (pkt_stat->rate >= DESC_RATEVHT2SS_MCS0 &&
-		   pkt_stat->rate <= DESC_RATEVHT2SS_MCS9) {
-		rx_status->nss = 2;
-		rx_status->rate_idx = pkt_stat->rate - DESC_RATEVHT2SS_MCS0;
-	} else if (pkt_stat->rate >= DESC_RATEVHT3SS_MCS0 &&
-		   pkt_stat->rate <= DESC_RATEVHT3SS_MCS9) {
-		rx_status->nss = 3;
-		rx_status->rate_idx = pkt_stat->rate - DESC_RATEVHT3SS_MCS0;
-	} else if (pkt_stat->rate >= DESC_RATEVHT4SS_MCS0 &&
-		   pkt_stat->rate <= DESC_RATEVHT4SS_MCS9) {
-		rx_status->nss = 4;
-		rx_status->rate_idx = pkt_stat->rate - DESC_RATEVHT4SS_MCS0;
-	} else if (pkt_stat->rate >= DESC_RATEMCS0 &&
-		   pkt_stat->rate <= DESC_RATEMCS15) {
-		rx_status->rate_idx = pkt_stat->rate - DESC_RATEMCS0;
-	} else if (rx_status->band == NL80211_BAND_5GHZ &&
-		   pkt_stat->rate >= DESC_RATE6M &&
-		   pkt_stat->rate <= DESC_RATE54M) {
+	if (rx_status->band == NL80211_BAND_5GHZ &&
+	    pkt_stat->rate >= DESC_RATE6M &&
+	    pkt_stat->rate <= DESC_RATE54M) {
 		rx_status->rate_idx = pkt_stat->rate - DESC_RATE6M;
 	} else if (rx_status->band == NL80211_BAND_2GHZ &&
 		   pkt_stat->rate >= DESC_RATE1M &&
 		   pkt_stat->rate <= DESC_RATE54M) {
 		rx_status->rate_idx = pkt_stat->rate - DESC_RATE1M;
-	} else {
-		rx_status->rate_idx = 0;
+	} else if (pkt_stat->rate >= DESC_RATEMCS0) {
+		rtw_desc_to_mcsrate(pkt_stat->rate, &rx_status->rate_idx,
+				    &rx_status->nss);
 	}
 
 	rx_status->flag |= RX_FLAG_MACTIME_START;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/rx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/rx.h
@@ -5,6 +5,15 @@
 #ifndef __RTW_RX_H_
 #define __RTW_RX_H_
 
+enum rtw_rx_desc_enc {
+	RX_DESC_ENC_NONE	= 0,
+	RX_DESC_ENC_WEP40	= 1,
+	RX_DESC_ENC_TKIP_WO_MIC	= 2,
+	RX_DESC_ENC_TKIP_MIC	= 3,
+	RX_DESC_ENC_AES		= 4,
+	RX_DESC_ENC_WEP104	= 5,
+};
+
 #define GET_RX_DESC_PHYST(rxdesc)                                              \
 	le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(26))
 #define GET_RX_DESC_ICV_ERR(rxdesc)                                            \
@@ -21,6 +30,8 @@
 	le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(19, 16))
 #define GET_RX_DESC_SHIFT(rxdesc)                                              \
 	le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(25, 24))
+#define GET_RX_DESC_ENC_TYPE(rxdesc)                                           \
+	le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(22, 20))
 #define GET_RX_DESC_RX_RATE(rxdesc)                                            \
 	le32_get_bits(*((__le32 *)(rxdesc) + 0x03), GENMASK(6, 0))
 #define GET_RX_DESC_MACID(rxdesc)                                              \
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/sar.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/sar.c
@@ -0,0 +1,778 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#include <linux/acpi.h>
+#include "main.h"
+#include "debug.h"
+#include "phy.h"
+#include "sar.h"
+
+#define RTW_SAR_WRDS_CHAIN_NR	2
+
+enum rtw_sar_limit_index {
+	RTW_SAR_LMT_CH1_14,
+	RTW_SAR_LMT_CH36_64,
+	RTW_SAR_LMT_UND1,
+	RTW_SAR_LMT_CH100_144,
+	RTW_SAR_LMT_CH149_165,
+
+	RTW_SAR_LMT_TOTAL_NR,
+};
+
+struct rtw_sar_limits {
+	s8 limit[RTW_SAR_LMT_TOTAL_NR];
+};
+
+struct rtw_sar_wrds {
+	struct rtw_sar_limits chain[RTW_SAR_WRDS_CHAIN_NR];
+};
+
+#define ACPI_WRDS_METHOD	"WRDS"
+#define ACPI_WRDS_SIZE		sizeof(struct rtw_sar_wrds)
+#define ACPI_WRDS_TOTAL_SIZE	(sizeof(struct rtw_sar_wrds) + 2)
+#define ACPI_WIFI_DOMAIN	0x07
+
+#ifdef CONFIG_ACPI
+static union acpi_object *rtw_sar_get_acpiobj(struct rtw_dev *rtwdev,
+					      const char *method)
+{
+	struct device *dev = rtwdev->dev;
+	acpi_handle root_handle;
+	acpi_handle handle;
+	acpi_status status;
+	struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER, NULL};
+
+	/* Check device handler */
+	root_handle = ACPI_HANDLE(dev);
+	if (!root_handle) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: Could not retireve root port ACPI handle\n");
+		return NULL;
+	}
+
+	/* Get method's handler */
+	status = acpi_get_handle(root_handle, (acpi_string)method, &handle);
+	if (ACPI_FAILURE(status)) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD, "SAR: %s method not found (0x%x)\n",
+			method, status);
+		return NULL;
+	}
+
+	/* Call specific method with no argument */
+	status = acpi_evaluate_object(handle, NULL, NULL, &buf);
+	if (ACPI_FAILURE(status)) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: %s invocation failed (0x%x)\n", method, status);
+		return NULL;
+	}
+
+	return buf.pointer;
+}
+
+static union acpi_object *rtw_sar_get_wifi_pkt(struct rtw_dev *rtwdev,
+					       union acpi_object *obj,
+					       u32 element_count)
+{
+	union acpi_object *wifi_pkg;
+	u32 i;
+
+	if (obj->type != ACPI_TYPE_PACKAGE ||
+	    obj->package.count < 2 ||
+	    obj->package.elements[0].type != ACPI_TYPE_INTEGER ||
+	    obj->package.elements[0].integer.value != 0) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: Unsupported wifi package structure\n");
+		return NULL;
+	}
+
+	/* loop through all the packages to find the one for WiFi */
+	for (i = 1; i < obj->package.count; i++) {
+		union acpi_object *domain;
+
+		wifi_pkg = &obj->package.elements[i];
+
+		/* Skip anything that is not a package with the right amount of
+		 * elements (i.e. domain_type, enabled/disabled plus the sar
+		 * table size.)
+		 */
+		if (wifi_pkg->type != ACPI_TYPE_PACKAGE ||
+		    wifi_pkg->package.count != element_count)
+			continue;
+
+		domain = &wifi_pkg->package.elements[0];
+		if (domain->type == ACPI_TYPE_INTEGER &&
+		    domain->integer.value == ACPI_WIFI_DOMAIN)
+			return wifi_pkg;
+	}
+
+	return NULL;
+}
+
+static void *rtw_sar_get_wrds_table(struct rtw_dev *rtwdev)
+{
+	union acpi_object *wrds, *wrds_pkg;
+	int i, idx = 2;
+	u8 *wrds_raw = NULL;
+
+	wrds = rtw_sar_get_acpiobj(rtwdev, ACPI_WRDS_METHOD);
+	if (!wrds)
+		return NULL;
+
+	wrds_pkg = rtw_sar_get_wifi_pkt(rtwdev, wrds, ACPI_WRDS_TOTAL_SIZE);
+	if (!wrds_pkg)
+		goto out;
+
+	/* WiFiSarEnable 0: ignore BIOS config; 1: use BIOS config */
+	if (wrds_pkg->package.elements[1].type != ACPI_TYPE_INTEGER ||
+	    wrds_pkg->package.elements[1].integer.value == 0)
+		goto out;
+
+	wrds_raw = kmalloc(ACPI_WRDS_SIZE, GFP_KERNEL);
+	if (!wrds_raw)
+		goto out;
+
+	/* read elements[2~11] */
+	for (i = 0; i < ACPI_WRDS_SIZE; i++) {
+		union acpi_object *entry;
+
+		entry = &wrds_pkg->package.elements[idx++];
+		if (entry->type != ACPI_TYPE_INTEGER ||
+		    entry->integer.value > U8_MAX) {
+			kfree(wrds_raw);
+			wrds_raw = NULL;
+			goto out;
+		}
+
+		wrds_raw[i] = entry->integer.value;
+	}
+out:
+	kfree(wrds);
+
+	return wrds_raw;
+}
+
+static void rtw_sar_apply_wrds(struct rtw_dev *rtwdev,
+			       const struct rtw_sar_wrds *wrds)
+{
+	int path;
+
+	for (path = 0; path < RTW_SAR_WRDS_CHAIN_NR; path++) {
+		rtw_phy_set_tx_power_sar(rtwdev, RTW_REGD_WW, path, 1, 14,
+					 wrds->chain[path].limit[RTW_SAR_LMT_CH1_14]);
+		rtw_phy_set_tx_power_sar(rtwdev, RTW_REGD_WW, path, 36, 64,
+					 wrds->chain[path].limit[RTW_SAR_LMT_CH36_64]);
+		rtw_phy_set_tx_power_sar(rtwdev, RTW_REGD_WW, path, 100, 144,
+					 wrds->chain[path].limit[RTW_SAR_LMT_CH100_144]);
+		rtw_phy_set_tx_power_sar(rtwdev, RTW_REGD_WW, path, 149, 165,
+					 wrds->chain[path].limit[RTW_SAR_LMT_CH149_165]);
+	}
+
+	rtwdev->sar.source = RTW_SAR_SOURCE_ACPI_STATIC;
+}
+
+static int rtw_sar_load_static_tables(struct rtw_dev *rtwdev)
+{
+	struct rtw_sar_wrds *wrds;
+
+	wrds = rtw_sar_get_wrds_table(rtwdev);
+	if (!wrds)
+		return -ENOENT;
+
+	rtw_dbg(rtwdev, RTW_DBG_REGD,
+		"SAR: Apply WRDS to TX power\n");
+
+	rtw_sar_apply_wrds(rtwdev, wrds);
+	kfree(wrds);
+
+	return 0;
+}
+
+#define ACPI_RWRD_METHOD	"RWRD"
+#define ACPI_RWSI_METHOD	"RWSI"
+#define ACPI_RWGS_METHOD	"RWGS"
+
+#define RTW_SAR_RWRD_ID_HP	0x5048
+#define RTW_SAR_RWRD_ID_RT	0x5452
+
+#define RTW_SAR_RWRD_CHAIN_NR	4
+
+struct rtw_sar_rwrd {
+	u16 id;
+	u8 en;
+	u8 count;
+	struct {
+		struct rtw_sar_limits chain[RTW_SAR_RWRD_CHAIN_NR];
+	} mode[0];
+} __packed;
+
+struct rtw_sar_rwsi_hp {
+	u8 index[RTW_SAR_RWRD_CHAIN_NR];
+} __packed;
+
+struct rtw_sar_rwsi_rt {
+	u8 index;
+} __packed;
+
+union rtw_sar_rwsi {
+	struct rtw_sar_rwsi_hp hp;
+	struct rtw_sar_rwsi_rt rt;
+};
+
+enum rtw_sar_rwgs_band {
+	RTW_SAR_RWGS_2G,
+	RTW_SAR_RWGS_5G,
+	RTW_SAR_RWGS_BAND_NR,
+};
+
+enum rtw_sar_rwgs_geo_hp {
+	RTW_SAR_RWGS_HP_FCC_IC,
+	RTW_SAR_RWGS_HP_ETSI_MKK,
+	RTW_SAR_RWGS_HP_WW_KCC,
+
+	RTW_SAR_RWGS_HP_NR,
+};
+
+struct rtw_sar_rwgs_hp {
+	struct {
+		struct {
+			s8 max;		/* Q1 + 10 */
+			s8 delta[4];	/* Q1 */
+		} band[RTW_SAR_RWGS_BAND_NR];
+	} geo[RTW_SAR_RWGS_HP_NR];
+} __packed;
+
+enum rtw_sar_rwgs_geo_rt {
+	RTW_SAR_RWGS_RT_FCC,
+	RTW_SAR_RWGS_RT_CE,
+	RTW_SAR_RWGS_RT_MKK,
+	RTW_SAR_RWGS_RT_IC,
+	RTW_SAR_RWGS_RT_KCC,
+	RTW_SAR_RWGS_RT_WW,
+
+	RTW_SAR_RWGS_RT_NR,
+};
+
+struct rtw_sar_rwgs_rt {
+	struct {
+		struct {
+			u8 max;		/* Q3 */
+			s8 delta;	/* Q1 */
+		} band[RTW_SAR_RWGS_BAND_NR];
+	} geo[RTW_SAR_RWGS_RT_NR];
+} __packed;
+
+union rtw_sar_rwgs {
+	struct rtw_sar_rwgs_hp hp;
+	struct rtw_sar_rwgs_rt rt;
+};
+
+struct rtw_sar_geo_map {
+	int idx;	/* index of rwgs.geo[] */
+	int rd;		/* RTW_REGD_xxx */
+};
+
+static const struct rtw_sar_geo_map geo_map_hp[] = {
+	{RTW_SAR_RWGS_HP_FCC_IC,   RTW_REGD_FCC},
+	{RTW_SAR_RWGS_HP_FCC_IC,   RTW_REGD_IC},
+	{RTW_SAR_RWGS_HP_ETSI_MKK, RTW_REGD_ETSI},
+	{RTW_SAR_RWGS_HP_ETSI_MKK, RTW_REGD_MKK},
+	{RTW_SAR_RWGS_HP_WW_KCC,   RTW_REGD_KCC},
+	{RTW_SAR_RWGS_HP_WW_KCC,   RTW_REGD_WW},
+};
+
+static const struct rtw_sar_geo_map geo_map_rt[] = {
+	{RTW_SAR_RWGS_RT_FCC, RTW_REGD_FCC},
+	{RTW_SAR_RWGS_RT_CE,  RTW_REGD_ETSI},
+	{RTW_SAR_RWGS_RT_MKK, RTW_REGD_MKK},
+	{RTW_SAR_RWGS_RT_IC,  RTW_REGD_IC},
+	{RTW_SAR_RWGS_RT_KCC, RTW_REGD_KCC},
+	{RTW_SAR_RWGS_RT_WW,  RTW_REGD_WW},
+};
+
+struct rtw_sar_read {
+	int (*rwsi_mode)(struct rtw_dev *rtwdev, int path);
+	int (*rwrd_base_q3)(struct rtw_dev *rtwdev, int mode, int path, int chidx);
+	int (*rwgs_delta_q3)(struct rtw_dev *rtwdev, int gi, int path, int band);
+	int (*rwgs_max_q3)(struct rtw_dev *rtwdev, int gi, int band);
+	const struct rtw_sar_geo_map *gm, *gm_end;
+	int rwsi_sz;
+	int rwgs_sz;
+	int rwgs_geos;
+};
+
+static int rwsi_mode_hp(struct rtw_dev *rtwdev, int path)
+{
+	return rtwdev->sar.rwsi->hp.index[path] - 1;
+}
+
+static int rwrd_base_q3_hp(struct rtw_dev *rtwdev, int mode, int path, int chidx)
+{
+	int sar;
+
+	sar = rtwdev->sar.rwrd->mode[mode].chain[path].limit[chidx];
+
+	return (10 << 3) + (sar << 2);
+}
+
+static int rwgs_delta_q3_hp(struct rtw_dev *rtwdev, int gi, int path, int band)
+{
+	return rtwdev->sar.rwgs->hp.geo[gi].band[band].delta[path] << 2;
+}
+
+static int rwgs_max_q3_hp(struct rtw_dev *rtwdev, int gi, int band)
+{
+	return (10 << 3) + (rtwdev->sar.rwgs->hp.geo[gi].band[band].max << 2);
+}
+
+static const struct rtw_sar_read sar_read_hp = {
+	.rwsi_mode = rwsi_mode_hp,
+	.rwrd_base_q3 = rwrd_base_q3_hp,
+	.rwgs_delta_q3 = rwgs_delta_q3_hp,
+	.rwgs_max_q3 = rwgs_max_q3_hp,
+	.gm = geo_map_hp,
+	.gm_end = geo_map_hp + ARRAY_SIZE(geo_map_hp),
+	.rwsi_sz = sizeof(struct rtw_sar_rwsi_hp),
+	.rwgs_sz = sizeof(struct rtw_sar_rwgs_hp),
+	.rwgs_geos = RTW_SAR_RWGS_HP_NR,
+};
+
+static int rwsi_mode_rt(struct rtw_dev *rtwdev, int path)
+{
+	return rtwdev->sar.rwsi->rt.index - 1;
+}
+
+static int rwrd_base_q3_rt(struct rtw_dev *rtwdev, int mode, int path, int chidx)
+{
+	return rtwdev->sar.rwrd->mode[mode].chain[path].limit[chidx] << 3;
+}
+
+static int rwgs_delta_q3_rt(struct rtw_dev *rtwdev, int gi, int path, int band)
+{
+	return rtwdev->sar.rwgs->rt.geo[gi].band[band].delta << 2;
+}
+
+static int rwgs_max_q3_rt(struct rtw_dev *rtwdev, int gi, int band)
+{
+	return rtwdev->sar.rwgs->rt.geo[gi].band[band].max;
+}
+
+static const struct rtw_sar_read sar_read_rt = {
+	.rwsi_mode = rwsi_mode_rt,
+	.rwrd_base_q3 = rwrd_base_q3_rt,
+	.rwgs_delta_q3 = rwgs_delta_q3_rt,
+	.rwgs_max_q3 = rwgs_max_q3_rt,
+	.gm = geo_map_rt,
+	.gm_end = geo_map_rt + ARRAY_SIZE(geo_map_rt),
+	.rwsi_sz = sizeof(struct rtw_sar_rwsi_rt),
+	.rwgs_sz = sizeof(struct rtw_sar_rwgs_rt),
+	.rwgs_geos = RTW_SAR_RWGS_RT_NR,
+};
+
+static u8 *rtw_sar_get_raw_package(struct rtw_dev *rtwdev,
+				   union acpi_object *obj, int *len)
+{
+	u8 *raw;
+	u32 i;
+
+	if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count <= 0) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: Unsupported obj to dump\n");
+		return NULL;
+	}
+
+	raw = kmalloc(obj->package.count, GFP_KERNEL);
+	if (!raw)
+		return NULL;
+
+	for (i = 0; i < obj->package.count; i++) {
+		union acpi_object *element;
+
+		element = &obj->package.elements[i];
+
+		if (element->type != ACPI_TYPE_INTEGER) {
+			rtw_dbg(rtwdev, RTW_DBG_REGD,
+				"SAR: Unexpected element type\n");
+			kfree(raw);
+			return NULL;
+		}
+
+		raw[i] = (u8)element->integer.value;
+	}
+
+	*len = obj->package.count;
+
+	return raw;
+}
+
+static void *rtw_sar_get_raw_table(struct rtw_dev *rtwdev, const char *method,
+				   int *len)
+{
+	union acpi_object *obj;
+	u8 *raw;
+
+	obj = rtw_sar_get_acpiobj(rtwdev, method);
+	if (!obj)
+		return NULL;
+
+	raw = rtw_sar_get_raw_package(rtwdev, obj, len);
+	kfree(obj);
+
+	return raw;
+}
+
+static bool is_valid_rwrd(struct rtw_dev *rtwdev, const struct rtw_sar_rwrd *rwrd,
+			  int len)
+{
+	if (len < sizeof(*rwrd)) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: RWRD: len %d is too short\n", len);
+		return false;
+	}
+
+	switch (rwrd->id) {
+	case RTW_SAR_RWRD_ID_HP:
+		rtwdev->sar.read = &sar_read_hp;
+		break;
+	case RTW_SAR_RWRD_ID_RT:
+		rtwdev->sar.read = &sar_read_rt;
+		break;
+	default:
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: RWRD: ID %04x isn't supported\n", rwrd->id);
+		return false;
+	}
+
+	if (sizeof(*rwrd) + rwrd->count * sizeof(rwrd->mode[0]) != len) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD,
+			"SAR: RWRD: len(%d) doesn't match count(%d)\n",
+			len, rwrd->count);
+		return false;
+	}
+
+	return true;
+}
+
+static bool is_valid_rwsi_idx(struct rtw_dev *rtwdev, const struct rtw_sar_rwrd *rwrd,
+			      const u8 index[], int len)
+{
+	/* index range is one based. i.e. 1 <= index[] <= rwrd->count */
+	int i;
+
+	for (i = 0; i < len; i++)
+		if (index[i] < 1 || index[i] > rwrd->count) {
+			rtw_dbg(rtwdev, RTW_DBG_REGD,
+				"SAR: RWSI: index is out of range\n");
+			return false;
+		}
+
+	return true;
+}
+
+static bool is_valid_rwsi(struct rtw_dev *rtwdev, const struct rtw_sar_rwrd *rwrd,
+			  const union rtw_sar_rwsi *rwsi, int len)
+{
+	const struct rtw_sar_read *r = rtwdev->sar.read;
+
+	if (r->rwsi_sz != len)
+		goto err;
+
+	if (rwrd->id == RTW_SAR_RWRD_ID_HP &&
+	    is_valid_rwsi_idx(rtwdev, rwrd, rwsi->hp.index, RTW_SAR_RWRD_CHAIN_NR))
+		return true;
+
+	if (rwrd->id == RTW_SAR_RWRD_ID_RT &&
+	    is_valid_rwsi_idx(rtwdev, rwrd, &rwsi->rt.index, 1)) {
+		return true;
+	}
+
+err:
+	rtw_dbg(rtwdev, RTW_DBG_REGD,
+		"SAR: RWSI: len doesn't match struct size\n");
+
+	return false;
+}
+
+static bool is_valid_rwgs(struct rtw_dev *rtwdev, const struct rtw_sar_rwrd *rwrd,
+			  const union rtw_sar_rwgs *rwgs, int len)
+{
+	const struct rtw_sar_read *r = rtwdev->sar.read;
+
+	if (r->rwgs_sz == len)
+		return true;
+
+	rtw_dbg(rtwdev, RTW_DBG_REGD,
+		"SAR: RWGS: len doesn't match struct size\n");
+
+	return false;
+}
+
+#ifdef CONFIG_RTW88_DEBUGFS
+void rtw_sar_dump_via_debugfs(struct rtw_dev *rtwdev, struct seq_file *m)
+{
+#define q3_int(q3)	((q3) >> 3)
+#define q3_fra(q3)	(((q3) & 0x7) * 125)
+
+	const struct rtw_sar_rwrd *rwrd = rtwdev->sar.rwrd;
+	const union rtw_sar_rwsi *rwsi = rtwdev->sar.rwsi;
+	const union rtw_sar_rwgs *rwgs = rtwdev->sar.rwgs;
+	const struct rtw_sar_read *r = rtwdev->sar.read;
+	int q3;
+	int mode;
+	int path;
+	int chidx;
+	int gi;
+	int band;
+
+	if (!rwrd || !rwsi || !rwgs || !r) {
+		seq_puts(m, "(No SAR data)\n");
+		return;
+	}
+
+	seq_printf(m, "Customer ID: 0x%04x\n", rwrd->id);
+	seq_printf(m, "WiFiEnable: 0x%x\n", rwrd->en);
+	seq_printf(m, "Total SAR Table Count: %d\n", rwrd->count);
+	seq_printf(m, "Current SAR Table Index: (%*ph)\n", r->rwsi_sz, rwsi);
+	seq_puts(m, "\n");
+
+	seq_printf(m, "Dump RWRD SAR RAW DATA. (Total Count: %ld)\n",
+		   rwrd->count * sizeof(rwrd->mode[0]));
+	for (mode = 0; mode < rwrd->count; mode++)
+		seq_printf(m, "%02x: %20ph\n", mode + 1, &rwrd->mode[mode]);
+	seq_puts(m, "\n");
+
+	seq_puts(m, "Show SAR PowerLimit:\n");
+	for (path = 0; path < 2; path++) {
+		mode = r->rwsi_mode(rtwdev, path);
+		q3 = r->rwrd_base_q3(rtwdev, mode, path, RTW_SAR_LMT_CH1_14);
+		seq_printf(m, "2.4G Antenna %d: [%d.%d] dBm\n", path,
+			   q3_int(q3), q3_fra(q3));
+	}
+	seq_puts(m, "\n");
+
+	for (path = 0; path < 2; path++) {
+		mode = r->rwsi_mode(rtwdev, path);
+		seq_printf(m, "5G Antenna %d: [", path);
+		for (chidx = RTW_SAR_LMT_CH36_64; chidx <= RTW_SAR_LMT_CH149_165;
+		     chidx++) {
+			q3 = r->rwrd_base_q3(rtwdev, mode, path, chidx);
+			seq_printf(m, "%d.%d, ", q3_int(q3), q3_fra(q3));
+		}
+		seq_puts(m, "] dBm\n");
+	}
+	seq_puts(m, "\n");
+
+	seq_printf(m, "Dump Geo-SAR Table RAW DATA. (Total Count: %d)\n",
+		   r->rwgs_sz);
+	for (gi = 0; gi < r->rwgs_geos; gi++) {
+		seq_printf(m, "geo-%d: %*ph\n", gi, r->rwgs_sz / r->rwgs_geos,
+			   (u8 *)rwgs + gi * (r->rwgs_sz / r->rwgs_geos));
+	}
+	seq_puts(m, "\n");
+
+	gi = 1;	/* take index 1 as an example */
+	seq_puts(m, "Show Geo-SAR PowerLimit:\n");
+	seq_printf(m, "2G Geo Table Index: %d\n", gi);
+	seq_printf(m, "5G Geo Table Index: %d\n", gi);
+	for (band = RTW_SAR_RWGS_2G; band < RTW_SAR_RWGS_BAND_NR; band++) {
+		seq_puts(m, "\n");
+		seq_printf(m, "%dGHz:\n", band == 0 ? 2 : 5);
+		q3 = r->rwgs_max_q3(rtwdev, gi, band);
+		seq_printf(m, "Max Power: [%d.%d] dBm\n", q3_int(q3),
+			   q3_fra(q3));
+		for (path = 0; path < 2; path++) {
+			q3 = r->rwgs_delta_q3(rtwdev, gi, path, band);
+			seq_printf(m, "Ant-%d delta value: [%d.%d] dB\n", path,
+				   q3_int(q3), q3_fra(q3));
+		}
+	}
+}
+#endif
+
+static void rtw_sar_apply_dynamic_tables(struct rtw_dev *rtwdev)
+{
+	struct rtw_hal *hal = &rtwdev->hal;
+	const struct rtw_sar_read *r = rtwdev->sar.read;
+	const struct rtw_sar_geo_map *gm = r->gm;
+	const struct rtw_sar_geo_map *gm_end = r->gm_end;
+	int path_num = min_t(int, RTW_SAR_RWRD_CHAIN_NR, hal->rf_path_num);
+	int path, mode;
+	int sar, delta, max;
+
+	for (; gm < gm_end; gm++) {
+		for (path = 0; path < path_num; path++) {
+			mode = r->rwsi_mode(rtwdev, path);
+
+			/* 2.4G part */
+			delta = r->rwgs_delta_q3(rtwdev, gm->idx, path, RTW_SAR_RWGS_2G);
+			max = r->rwgs_max_q3(rtwdev, gm->idx, RTW_SAR_RWGS_2G);
+
+			sar = r->rwrd_base_q3(rtwdev, mode, path, RTW_SAR_LMT_CH1_14);
+			sar = min(sar + delta, max);
+			rtw_phy_set_tx_power_sar(rtwdev, gm->rd, path, 1, 14, sar);
+
+			/* 5G part */
+			delta = r->rwgs_delta_q3(rtwdev, gm->idx, path, RTW_SAR_RWGS_5G);
+			max = r->rwgs_max_q3(rtwdev, gm->idx, RTW_SAR_RWGS_5G);
+
+			sar = r->rwrd_base_q3(rtwdev, mode, path, RTW_SAR_LMT_CH36_64);
+			sar = min(sar + delta, max);
+			rtw_phy_set_tx_power_sar(rtwdev, gm->rd, path, 36, 64, sar);
+
+			sar = r->rwrd_base_q3(rtwdev, mode, path, RTW_SAR_LMT_CH100_144);
+			sar = min(sar + delta, max);
+			rtw_phy_set_tx_power_sar(rtwdev, gm->rd, path, 100, 144, sar);
+
+			sar = r->rwrd_base_q3(rtwdev, mode, path, RTW_SAR_LMT_CH149_165);
+			sar = min(sar + delta, max);
+			rtw_phy_set_tx_power_sar(rtwdev, gm->rd, path, 149, 165, sar);
+		}
+	}
+
+	rtwdev->sar.source = RTW_SAR_SOURCE_ACPI_DYNAMIC;
+}
+
+static bool rtw_sar_is_rwsi_changed(struct rtw_dev *rtwdev)
+{
+	union rtw_sar_rwsi *rwsi, *old;
+	bool valid;
+	int len;
+
+	if (rtwdev->sar.source != RTW_SAR_SOURCE_ACPI_DYNAMIC)
+		return false;
+
+	if (!rtwdev->sar.rwrd || !rtwdev->sar.rwsi || !rtwdev->sar.rwgs)
+		return false;
+
+	rwsi = rtw_sar_get_raw_table(rtwdev, ACPI_RWSI_METHOD, &len);
+	if (!rwsi)
+		return false;
+	valid = is_valid_rwsi(rtwdev, rtwdev->sar.rwrd, rwsi, len);
+	if (!valid) {
+		kfree(rwsi);
+		return false;
+	}
+
+	if (memcmp(rwsi, rtwdev->sar.rwsi, len) == 0) {
+		kfree(rwsi);
+		return true;
+	}
+
+	old = rtwdev->sar.rwsi;
+	rtwdev->sar.rwsi = rwsi;
+	kfree(old);
+
+	rtw_dbg(rtwdev, RTW_DBG_REGD, "SAR: RWSI is changed\n");
+
+	rtw_sar_apply_dynamic_tables(rtwdev);
+
+	rtw_phy_set_tx_power_level(rtwdev, rtwdev->hal.current_channel);
+
+	return true;
+}
+
+static int rtw_sar_load_dynamic_tables(struct rtw_dev *rtwdev)
+{
+	struct rtw_sar_rwrd *rwrd;
+	union rtw_sar_rwsi *rwsi;
+	union rtw_sar_rwgs *rwgs;
+	int len;
+	bool valid;
+
+	rwrd = rtw_sar_get_raw_table(rtwdev, ACPI_RWRD_METHOD, &len);
+	if (!rwrd)
+		goto out;
+	valid = is_valid_rwrd(rtwdev, rwrd, len);
+	if (!valid)
+		goto out_rwrd;
+	if (!rwrd->en) {
+		rtw_dbg(rtwdev, RTW_DBG_REGD, "SAR: RWRD isn't enabled\n");
+		goto out_rwrd;
+	}
+
+	rwsi = rtw_sar_get_raw_table(rtwdev, ACPI_RWSI_METHOD, &len);
+	if (!rwsi)
+		goto out_rwrd;
+	valid = is_valid_rwsi(rtwdev, rwrd, rwsi, len);
+	if (!valid)
+		goto out_rwsi;
+
+	rwgs = rtw_sar_get_raw_table(rtwdev, ACPI_RWGS_METHOD, &len);
+	if (!rwgs)
+		goto out_rwsi;
+	valid = is_valid_rwgs(rtwdev, rwrd, rwgs, len);
+	if (!valid)
+		goto out_rwgs;
+
+	rtwdev->sar.rwrd = rwrd;
+	rtwdev->sar.rwsi = rwsi;
+	rtwdev->sar.rwgs = rwgs;
+
+	rtw_sar_apply_dynamic_tables(rtwdev);
+
+	rtw_dbg(rtwdev, RTW_DBG_REGD, "SAR: RWRD/RWSI/RWGS is adopted\n");
+
+	return 0;
+
+out_rwgs:
+	kfree(rwgs);
+out_rwsi:
+	kfree(rwsi);
+out_rwrd:
+	kfree(rwrd);
+out:
+	return -ENOENT;
+}
+#else
+static int rtw_sar_load_static_tables(struct rtw_dev *rtwdev)
+{
+	return -ENOENT;
+}
+
+static bool rtw_sar_is_rwsi_changed(struct rtw_dev *rtwdev)
+{
+	return false;
+}
+
+static int rtw_sar_load_dynamic_tables(struct rtw_dev *rtwdev)
+{
+	return -ENOENT;
+}
+
+#ifdef CONFIG_RTW88_DEBUGFS
+void rtw_sar_dump_via_debugfs(struct rtw_dev *rtwdev, struct seq_file *m)
+{
+	seq_puts(m, "(No SAR data)\n");
+}
+#endif
+#endif /* CONFIG_ACPI */
+
+void rtw_sar_load_table(struct rtw_dev *rtwdev)
+{
+	int ret;
+
+	ret = rtw_sar_load_dynamic_tables(rtwdev);
+	if (!ret)
+		return;	/* if dynamic SAR table is loaded, ignore static SAR table */
+
+	rtw_sar_load_static_tables(rtwdev);
+}
+
+void rtw_sar_release_table(struct rtw_dev *rtwdev)
+{
+	kfree(rtwdev->sar.rwrd);
+	kfree(rtwdev->sar.rwsi);
+	kfree(rtwdev->sar.rwgs);
+}
+
+void rtw_sar_work(struct work_struct *work)
+{
+	struct rtw_dev *rtwdev = container_of(work, struct rtw_dev,
+					      sar.work.work);
+
+	if (!rtw_sar_is_rwsi_changed(rtwdev))
+		return;
+
+	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->sar.work,
+				     RTW_SAR_DELAY_TIME);
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/sar.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/sar.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#ifndef __RTW_SAR_H_
+#define __RTW_SAR_H_
+
+void rtw_sar_load_table(struct rtw_dev *rtwdev);
+void rtw_sar_release_table(struct rtw_dev *rtwdev);
+void rtw_sar_work(struct work_struct *work);
+void rtw_sar_dump_via_debugfs(struct rtw_dev *rtwdev, struct seq_file *m);
+
+#define RTW_SAR_DELAY_TIME	(10 * HZ)
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/sec.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/sec.c
@@ -44,7 +44,7 @@
 
 	write_cmd = RTW_SEC_CMD_WRITE_ENABLE | RTW_SEC_CMD_POLLING;
 	addr = hw_key_idx << RTW_SEC_CAM_ENTRY_SHIFT;
-	for (i = 5; i >= 0; i--) {
+	for (i = 7; i >= 0; i--) {
 		switch (i) {
 		case 0:
 			content = ((key->keyidx & 0x3))		|
@@ -60,6 +60,10 @@
 				  (cam->addr[4]		<< 16)	|
 				  (cam->addr[5]		<< 24);
 			break;
+		case 6:
+		case 7:
+			content = 0;
+			break;
 		default:
 			j = (i - 2) << 2;
 			content = (key->key[j])			|
@@ -96,6 +100,27 @@
 	rtw_write32(rtwdev, RTW_SEC_CMD_REG, command);
 }
 
+u8 rtw_sec_cam_pg_backup(struct rtw_dev *rtwdev, u8 *used_cam)
+{
+	struct rtw_sec_desc *sec = &rtwdev->sec;
+	u8 offset = 0;
+	u8 count, n;
+
+	if (!used_cam)
+		return 0;
+
+	for (count = 0; count < MAX_PG_CAM_BACKUP_NUM; count++) {
+		n = find_next_bit(sec->cam_map, RTW_MAX_SEC_CAM_NUM, offset);
+		if (n == RTW_MAX_SEC_CAM_NUM)
+			break;
+
+		used_cam[count] = n;
+		offset = n + 1;
+	}
+
+	return count;
+}
+
 void rtw_sec_enable_sec_engine(struct rtw_dev *rtwdev)
 {
 	struct rtw_sec_desc *sec = &rtwdev->sec;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/sec.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/sec.h
@@ -34,6 +34,7 @@
 void rtw_sec_clear_cam(struct rtw_dev *rtwdev,
 		       struct rtw_sec_desc *sec,
 		       u8 hw_key_idx);
+u8 rtw_sec_cam_pg_backup(struct rtw_dev *rtwdev, u8 *used_cam);
 void rtw_sec_enable_sec_engine(struct rtw_dev *rtwdev);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/tx.c
@@ -6,6 +6,7 @@
 #include "tx.h"
 #include "fw.h"
 #include "ps.h"
+#include "debug.h"
 
 static
 void rtw_tx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
@@ -27,8 +28,6 @@
 			rtwvif = (struct rtw_vif *)vif->drv_priv;
 			rtwvif->stats.tx_unicast += skb->len;
 			rtwvif->stats.tx_cnt++;
-			if (rtwvif->stats.tx_cnt > RTW_LPS_THRESHOLD)
-				rtw_leave_lps_irqsafe(rtwdev, rtwvif);
 		}
 	}
 }
@@ -58,6 +57,13 @@
 	SET_TX_DESC_DATA_SHORT(txdesc, pkt_info->short_gi);
 	SET_TX_DESC_SPE_RPT(txdesc, pkt_info->report);
 	SET_TX_DESC_SW_DEFINE(txdesc, pkt_info->sn);
+	SET_TX_DESC_USE_RTS(txdesc, pkt_info->rts);
+	SET_TX_DESC_NAVUSEHDR(txdesc, pkt_info->nav_use_hdr);
+	SET_TX_DESC_DISQSELSEQ(txdesc, pkt_info->dis_qselseq);
+	SET_TX_DESC_EN_HWSEQ(txdesc, pkt_info->en_hwseq);
+	SET_TX_DESC_EN_HWEXSEQ(txdesc, pkt_info->en_hw_exseq);
+	SET_TX_DESC_HW_SSN_SEL(txdesc, pkt_info->hw_ssn_sel);
+	SET_TX_DESC_BT_NULL(txdesc, pkt_info->bt_null);
 }
 EXPORT_SYMBOL(rtw_tx_fill_tx_desc);
 
@@ -153,7 +159,7 @@
 	if (skb_queue_len(&tx_report->queue) == 0)
 		return;
 
-	WARN(1, "purge skb(s) not reported by firmware\n");
+	rtw_dbg(rtwdev, RTW_DBG_TX, "purge skb(s) not reported by firmware\n");
 
 	spin_lock_irqsave(&tx_report->q_lock, flags);
 	skb_queue_purge(&tx_report->queue);
@@ -193,7 +199,7 @@
 	ieee80211_tx_status_irqsafe(rtwdev->hw, skb);
 }
 
-void rtw_tx_report_handle(struct rtw_dev *rtwdev, struct sk_buff *skb)
+void rtw_tx_report_handle(struct rtw_dev *rtwdev, struct sk_buff *skb, int src)
 {
 	struct rtw_tx_report *tx_report = &rtwdev->tx_report;
 	struct rtw_c2h_cmd *c2h;
@@ -204,8 +210,13 @@
 
 	c2h = get_c2h_from_skb(skb);
 
-	sn = GET_CCX_REPORT_SEQNUM(c2h->payload);
-	st = GET_CCX_REPORT_STATUS(c2h->payload);
+	if (src == C2H_CCX_TX_RPT) {
+		sn = GET_CCX_REPORT_SEQNUM_V0(c2h->payload);
+		st = GET_CCX_REPORT_STATUS_V0(c2h->payload);
+	} else {
+		sn = GET_CCX_REPORT_SEQNUM_V1(c2h->payload);
+		st = GET_CCX_REPORT_STATUS_V1(c2h->payload);
+	}
 
 	spin_lock_irqsave(&tx_report->q_lock, flags);
 	skb_queue_walk_safe(&tx_report->queue, cur, tmp) {
@@ -219,16 +230,62 @@
 	spin_unlock_irqrestore(&tx_report->q_lock, flags);
 }
 
-static void rtw_tx_mgmt_pkt_info_update(struct rtw_dev *rtwdev,
+static void rtw_tx_pkt_info_update_rate(struct rtw_dev *rtwdev,
 					struct rtw_tx_pkt_info *pkt_info,
-					struct ieee80211_tx_control *control,
 					struct sk_buff *skb)
 {
+	if (rtwdev->hal.current_band_type == RTW_BAND_2G) {
+		pkt_info->rate_id = RTW_RATEID_B_20M;
+		pkt_info->rate = DESC_RATE1M;
+	} else {
+		pkt_info->rate_id = RTW_RATEID_G;
+		pkt_info->rate = DESC_RATE6M;
+	}
+
 	pkt_info->use_rate = true;
-	pkt_info->rate_id = 6;
 	pkt_info->dis_rate_fallback = true;
 }
 
+static void rtw_tx_pkt_info_update_sec(struct rtw_dev *rtwdev,
+				       struct rtw_tx_pkt_info *pkt_info,
+				       struct sk_buff *skb)
+{
+	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+	u8 sec_type = 0;
+
+	if (info && info->control.hw_key) {
+		struct ieee80211_key_conf *key = info->control.hw_key;
+
+		switch (key->cipher) {
+		case WLAN_CIPHER_SUITE_WEP40:
+		case WLAN_CIPHER_SUITE_WEP104:
+		case WLAN_CIPHER_SUITE_TKIP:
+			sec_type = 0x01;
+			break;
+		case WLAN_CIPHER_SUITE_CCMP:
+			sec_type = 0x03;
+			break;
+		default:
+			break;
+		}
+	}
+
+	pkt_info->sec_type = sec_type;
+}
+
+static void rtw_tx_mgmt_pkt_info_update(struct rtw_dev *rtwdev,
+					struct rtw_tx_pkt_info *pkt_info,
+					struct ieee80211_tx_control *control,
+					struct sk_buff *skb)
+{
+	rtw_tx_pkt_info_update_rate(rtwdev, pkt_info, skb);
+	pkt_info->dis_qselseq = true;
+	pkt_info->en_hwseq = true;
+	pkt_info->hw_ssn_sel = 0;
+	pkt_info->en_hw_exseq = false;
+	/* TODO: need to change hw port and hw ssn sel for multiple vifs */
+}
+
 static void rtw_tx_data_pkt_info_update(struct rtw_dev *rtwdev,
 					struct rtw_tx_pkt_info *pkt_info,
 					struct ieee80211_tx_control *control,
@@ -260,6 +317,9 @@
 		ampdu_density = get_tx_ampdu_density(sta);
 	}
 
+	if (info->control.use_rts)
+		pkt_info->rts = true;
+
 	if (sta->vht_cap.vht_supported)
 		rate = get_highest_vht_tx_rate(rtwdev, sta);
 	else if (sta->ht_cap.ht_supported)
@@ -299,7 +359,6 @@
 	struct rtw_sta_info *si;
 	struct ieee80211_vif *vif = NULL;
 	__le16 fc = hdr->frame_control;
-	u8 sec_type = 0;
 	bool bmc;
 
 	if (control->sta) {
@@ -312,23 +371,6 @@
 	else if (ieee80211_is_data(fc))
 		rtw_tx_data_pkt_info_update(rtwdev, pkt_info, control, skb);
 
-	if (info->control.hw_key) {
-		struct ieee80211_key_conf *key = info->control.hw_key;
-
-		switch (key->cipher) {
-		case WLAN_CIPHER_SUITE_WEP40:
-		case WLAN_CIPHER_SUITE_WEP104:
-		case WLAN_CIPHER_SUITE_TKIP:
-			sec_type = 0x01;
-			break;
-		case WLAN_CIPHER_SUITE_CCMP:
-			sec_type = 0x03;
-			break;
-		default:
-			break;
-		}
-	}
-
 	bmc = is_broadcast_ether_addr(hdr->addr1) ||
 	      is_multicast_ether_addr(hdr->addr1);
 
@@ -336,7 +378,7 @@
 		rtw_tx_report_enable(rtwdev, pkt_info);
 
 	pkt_info->bmc = bmc;
-	pkt_info->sec_type = sec_type;
+	rtw_tx_pkt_info_update_sec(rtwdev, pkt_info, skb);
 	pkt_info->tx_pkt_size = skb->len;
 	pkt_info->offset = chip->tx_pkt_desc_sz;
 	pkt_info->qsel = skb->priority;
@@ -346,22 +388,222 @@
 	rtw_tx_stats(rtwdev, vif, skb);
 }
 
-void rtw_rsvd_page_pkt_info_update(struct rtw_dev *rtwdev,
-				   struct rtw_tx_pkt_info *pkt_info,
-				   struct sk_buff *skb)
+void rtw_tx_rsvd_page_pkt_info_update(struct rtw_dev *rtwdev,
+				      struct rtw_tx_pkt_info *pkt_info,
+				      struct sk_buff *skb,
+				      enum rtw_rsvd_packet_type type)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	bool bmc;
 
+	/* A beacon or dummy reserved page packet indicates that it is the first
+	 * reserved page, and the qsel of it will be set in each hci.
+	 */
+	if (type != RSVD_BEACON && type != RSVD_DUMMY)
+		pkt_info->qsel = TX_DESC_QSEL_MGMT;
+
+	rtw_tx_pkt_info_update_rate(rtwdev, pkt_info, skb);
+
 	bmc = is_broadcast_ether_addr(hdr->addr1) ||
 	      is_multicast_ether_addr(hdr->addr1);
-	pkt_info->use_rate = true;
-	pkt_info->rate_id = 6;
-	pkt_info->dis_rate_fallback = true;
 	pkt_info->bmc = bmc;
 	pkt_info->tx_pkt_size = skb->len;
 	pkt_info->offset = chip->tx_pkt_desc_sz;
-	pkt_info->qsel = TX_DESC_QSEL_MGMT;
 	pkt_info->ls = true;
+	if (type == RSVD_PS_POLL) {
+		pkt_info->nav_use_hdr = true;
+	} else {
+		pkt_info->dis_qselseq = true;
+		pkt_info->en_hwseq = true;
+		pkt_info->hw_ssn_sel = 0;
+		pkt_info->en_hw_exseq = false;
+	}
+	if (type == RSVD_QOS_NULL)
+		pkt_info->bt_null = true;
+
+	rtw_tx_pkt_info_update_sec(rtwdev, pkt_info, skb);
+
+	/* TODO: need to change hw port and hw ssn sel for multiple vifs */
+}
+
+struct sk_buff *
+rtw_tx_write_data_rsvd_page_get(struct rtw_dev *rtwdev,
+				struct rtw_tx_pkt_info *pkt_info,
+				u8 *buf, u32 size)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct sk_buff *skb;
+	u32 tx_pkt_desc_sz;
+	u32 length;
+
+	tx_pkt_desc_sz = chip->tx_pkt_desc_sz;
+	length = size + tx_pkt_desc_sz;
+	skb = dev_alloc_skb(length);
+	if (!skb) {
+		rtw_err(rtwdev, "failed to alloc write data rsvd page skb\n");
+		return NULL;
+	}
+
+	skb_reserve(skb, tx_pkt_desc_sz);
+	skb_put_data(skb, buf, size);
+	rtw_tx_rsvd_page_pkt_info_update(rtwdev, pkt_info, skb, RSVD_BEACON);
+
+	return skb;
+}
+EXPORT_SYMBOL(rtw_tx_write_data_rsvd_page_get);
+
+struct sk_buff *
+rtw_tx_write_data_h2c_get(struct rtw_dev *rtwdev,
+			  struct rtw_tx_pkt_info *pkt_info,
+			  u8 *buf, u32 size)
+{
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct sk_buff *skb;
+	u32 tx_pkt_desc_sz;
+	u32 length;
+
+	tx_pkt_desc_sz = chip->tx_pkt_desc_sz;
+	length = size + tx_pkt_desc_sz;
+	skb = dev_alloc_skb(length);
+	if (!skb) {
+		rtw_err(rtwdev, "failed to alloc write data h2c skb\n");
+		return NULL;
+	}
+
+	skb_reserve(skb, tx_pkt_desc_sz);
+	skb_put_data(skb, buf, size);
+	pkt_info->tx_pkt_size = size;
+
+	return skb;
+}
+EXPORT_SYMBOL(rtw_tx_write_data_h2c_get);
+
+void rtw_tx(struct rtw_dev *rtwdev,
+	    struct ieee80211_tx_control *control,
+	    struct sk_buff *skb)
+{
+	struct rtw_tx_pkt_info pkt_info = {0};
+
+	rtw_tx_pkt_info_update(rtwdev, &pkt_info, control, skb);
+	if (rtw_hci_tx(rtwdev, &pkt_info, skb))
+		goto out;
+
+	return;
+
+out:
+	ieee80211_free_txskb(rtwdev->hw, skb);
+}
+
+static void rtw_txq_check_agg(struct rtw_dev *rtwdev,
+			      struct rtw_txq *rtwtxq,
+			      struct sk_buff *skb)
+{
+	struct ieee80211_txq *txq = rtwtxq_to_txq(rtwtxq);
+	struct ieee80211_tx_info *info;
+	struct rtw_sta_info *si;
+
+	if (test_bit(RTW_TXQ_AMPDU, &rtwtxq->flags)) {
+		info = IEEE80211_SKB_CB(skb);
+		info->flags |= IEEE80211_TX_CTL_AMPDU;
+		return;
+	}
+
+	if (skb_get_queue_mapping(skb) == IEEE80211_AC_VO)
+		return;
+
+	if (test_bit(RTW_TXQ_BLOCK_BA, &rtwtxq->flags))
+		return;
+
+	if (unlikely(skb->protocol == cpu_to_be16(ETH_P_PAE)))
+		return;
+
+	if (!txq->sta)
+		return;
+
+	si = (struct rtw_sta_info *)txq->sta->drv_priv;
+	set_bit(txq->tid, si->tid_ba);
+
+	ieee80211_queue_work(rtwdev->hw, &rtwdev->ba_work);
+}
+
+static bool rtw_txq_dequeue(struct rtw_dev *rtwdev,
+			    struct rtw_txq *rtwtxq)
+{
+	struct ieee80211_txq *txq = rtwtxq_to_txq(rtwtxq);
+	struct ieee80211_tx_control control;
+	struct sk_buff *skb;
+
+	skb = ieee80211_tx_dequeue(rtwdev->hw, txq);
+	if (!skb)
+		return false;
+
+	rtw_txq_check_agg(rtwdev, rtwtxq, skb);
+
+	control.sta = txq->sta;
+	rtw_tx(rtwdev, &control, skb);
+	rtwtxq->last_push = jiffies;
+
+	return true;
+}
+
+static void rtw_txq_push(struct rtw_dev *rtwdev,
+			 struct rtw_txq *rtwtxq,
+			 unsigned long frames)
+{
+	int i;
+
+	rcu_read_lock();
+
+	for (i = 0; i < frames; i++)
+		if (!rtw_txq_dequeue(rtwdev, rtwtxq))
+			break;
+
+	rcu_read_unlock();
+}
+
+void rtw_tx_tasklet(unsigned long data)
+{
+	struct rtw_dev *rtwdev = (void *)data;
+	struct rtw_txq *rtwtxq, *tmp;
+
+	spin_lock_bh(&rtwdev->txq_lock);
+
+	list_for_each_entry_safe(rtwtxq, tmp, &rtwdev->txqs, list) {
+		struct ieee80211_txq *txq = rtwtxq_to_txq(rtwtxq);
+		unsigned long frame_cnt;
+		unsigned long byte_cnt;
+
+		ieee80211_txq_get_depth(txq, &frame_cnt, &byte_cnt);
+		rtw_txq_push(rtwdev, rtwtxq, frame_cnt);
+
+		list_del_init(&rtwtxq->list);
+	}
+
+	spin_unlock_bh(&rtwdev->txq_lock);
+}
+
+void rtw_txq_init(struct rtw_dev *rtwdev, struct ieee80211_txq *txq)
+{
+	struct rtw_txq *rtwtxq;
+
+	if (!txq)
+		return;
+
+	rtwtxq = (struct rtw_txq *)txq->drv_priv;
+	INIT_LIST_HEAD(&rtwtxq->list);
+}
+
+void rtw_txq_cleanup(struct rtw_dev *rtwdev, struct ieee80211_txq *txq)
+{
+	struct rtw_txq *rtwtxq;
+
+	if (!txq)
+		return;
+
+	rtwtxq = (struct rtw_txq *)txq->drv_priv;
+	spin_lock_bh(&rtwdev->txq_lock);
+	if (!list_empty(&rtwtxq->list))
+		list_del_init(&rtwtxq->list);
+	spin_unlock_bh(&rtwdev->txq_lock);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/tx.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/tx.h
@@ -35,6 +35,8 @@
 	le32p_replace_bits((__le32 *)(txdesc) + 0x09, value, GENMASK(23, 12))
 #define SET_TX_DESC_MAX_AGG_NUM(txdesc, value)                                 \
 	le32p_replace_bits((__le32 *)(txdesc) + 0x03, value, GENMASK(21, 17))
+#define SET_TX_DESC_USE_RTS(tx_desc, value)                                    \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x03, value, BIT(12))
 #define SET_TX_DESC_AMPDU_DENSITY(txdesc, value)                               \
 	le32p_replace_bits((__le32 *)(txdesc) + 0x02, value, GENMASK(22, 20))
 #define SET_TX_DESC_DATA_STBC(txdesc, value)                                   \
@@ -51,6 +53,18 @@
 	le32p_replace_bits((__le32 *)(txdesc) + 0x02, value, BIT(19))
 #define SET_TX_DESC_SW_DEFINE(tx_desc, value)                                  \
 	le32p_replace_bits((__le32 *)(txdesc) + 0x06, value, GENMASK(11, 0))
+#define SET_TX_DESC_NAVUSEHDR(txdesc, value)				       \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x03, value, BIT(15))
+#define SET_TX_DESC_DISQSELSEQ(txdesc, value)				       \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x00, value, BIT(31))
+#define SET_TX_DESC_EN_HWSEQ(txdesc, value)				       \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x08, value, BIT(15))
+#define SET_TX_DESC_EN_HWEXSEQ(txdesc, value)				       \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x08, value, BIT(14))
+#define SET_TX_DESC_HW_SSN_SEL(txdesc, value)				       \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x03, value, GENMASK(7, 6))
+#define SET_TX_DESC_BT_NULL(txdesc, value)				       \
+	le32p_replace_bits((__le32 *)(txdesc) + 0x02, value, BIT(23))
 
 enum rtw_tx_desc_queue_select {
 	TX_DESC_QSEL_TID0	= 0,
@@ -75,15 +89,32 @@
 	TX_DESC_QSEL_H2C	= 19,
 };
 
+enum rtw_rsvd_packet_type;
+
+void rtw_tx(struct rtw_dev *rtwdev,
+	    struct ieee80211_tx_control *control,
+	    struct sk_buff *skb);
+void rtw_txq_init(struct rtw_dev *rtwdev, struct ieee80211_txq *txq);
+void rtw_txq_cleanup(struct rtw_dev *rtwdev, struct ieee80211_txq *txq);
+void rtw_tx_tasklet(unsigned long data);
 void rtw_tx_pkt_info_update(struct rtw_dev *rtwdev,
 			    struct rtw_tx_pkt_info *pkt_info,
 			    struct ieee80211_tx_control *control,
 			    struct sk_buff *skb);
 void rtw_tx_fill_tx_desc(struct rtw_tx_pkt_info *pkt_info, struct sk_buff *skb);
 void rtw_tx_report_enqueue(struct rtw_dev *rtwdev, struct sk_buff *skb, u8 sn);
-void rtw_tx_report_handle(struct rtw_dev *rtwdev, struct sk_buff *skb);
-void rtw_rsvd_page_pkt_info_update(struct rtw_dev *rtwdev,
-				   struct rtw_tx_pkt_info *pkt_info,
-				   struct sk_buff *skb);
+void rtw_tx_report_handle(struct rtw_dev *rtwdev, struct sk_buff *skb, int src);
+void rtw_tx_rsvd_page_pkt_info_update(struct rtw_dev *rtwdev,
+				      struct rtw_tx_pkt_info *pkt_info,
+				      struct sk_buff *skb,
+				      enum rtw_rsvd_packet_type type);
+struct sk_buff *
+rtw_tx_write_data_rsvd_page_get(struct rtw_dev *rtwdev,
+				struct rtw_tx_pkt_info *pkt_info,
+				u8 *buf, u32 size);
+struct sk_buff *
+rtw_tx_write_data_h2c_get(struct rtw_dev *rtwdev,
+			  struct rtw_tx_pkt_info *pkt_info,
+			  u8 *buf, u32 size);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/util.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/util.c
@@ -22,22 +22,28 @@
 
 bool ltecoex_read_reg(struct rtw_dev *rtwdev, u16 offset, u32 *val)
 {
-	if (!check_hw_ready(rtwdev, LTECOEX_ACCESS_CTRL, LTECOEX_READY, 1))
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_ltecoex_addr *ltecoex = chip->ltecoex_addr;
+
+	if (!check_hw_ready(rtwdev, ltecoex->ctrl, LTECOEX_READY, 1))
 		return false;
 
-	rtw_write32(rtwdev, LTECOEX_ACCESS_CTRL, 0x800F0000 | offset);
-	*val = rtw_read32(rtwdev, LTECOEX_READ_DATA);
+	rtw_write32(rtwdev, ltecoex->ctrl, 0x800F0000 | offset);
+	*val = rtw_read32(rtwdev, ltecoex->rdata);
 
 	return true;
 }
 
 bool ltecoex_reg_write(struct rtw_dev *rtwdev, u16 offset, u32 value)
 {
-	if (!check_hw_ready(rtwdev, LTECOEX_ACCESS_CTRL, LTECOEX_READY, 1))
+	struct rtw_chip_info *chip = rtwdev->chip;
+	struct rtw_ltecoex_addr *ltecoex = chip->ltecoex_addr;
+
+	if (!check_hw_ready(rtwdev, ltecoex->ctrl, LTECOEX_READY, 1))
 		return false;
 
-	rtw_write32(rtwdev, LTECOEX_WRITE_DATA, value);
-	rtw_write32(rtwdev, LTECOEX_ACCESS_CTRL, 0xC00F0000 | offset);
+	rtw_write32(rtwdev, ltecoex->wdata, value);
+	rtw_write32(rtwdev, ltecoex->ctrl, 0xC00F0000 | offset);
 
 	return true;
 }
@@ -70,3 +76,30 @@
 		}
 	}
 }
+
+void rtw_desc_to_mcsrate(u16 rate, u8 *mcs, u8 *nss)
+{
+	if (rate <= DESC_RATE54M)
+		return;
+
+	if (rate >= DESC_RATEVHT1SS_MCS0 &&
+	    rate <= DESC_RATEVHT1SS_MCS9) {
+		*nss = 1;
+		*mcs = rate - DESC_RATEVHT1SS_MCS0;
+	} else if (rate >= DESC_RATEVHT2SS_MCS0 &&
+		   rate <= DESC_RATEVHT2SS_MCS9) {
+		*nss = 2;
+		*mcs = rate - DESC_RATEVHT2SS_MCS0;
+	} else if (rate >= DESC_RATEVHT3SS_MCS0 &&
+		   rate <= DESC_RATEVHT3SS_MCS9) {
+		*nss = 3;
+		*mcs = rate - DESC_RATEVHT3SS_MCS0;
+	} else if (rate >= DESC_RATEVHT4SS_MCS0 &&
+		   rate <= DESC_RATEVHT4SS_MCS9) {
+		*nss = 4;
+		*mcs = rate - DESC_RATEVHT4SS_MCS0;
+	} else if (rate >= DESC_RATEMCS0 &&
+		   rate <= DESC_RATEMCS15) {
+		*mcs = rate - DESC_RATEMCS0;
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/util.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/util.h
@@ -15,6 +15,8 @@
 			IEEE80211_IFACE_ITER_NORMAL, iterator, data)
 #define rtw_iterate_stas_atomic(rtwdev, iterator, data)                        \
 	ieee80211_iterate_stations_atomic(rtwdev->hw, iterator, data)
+#define rtw_iterate_keys(rtwdev, vif, iterator, data)			       \
+	ieee80211_iter_keys(rtwdev->hw, vif, iterator, data)
 
 static inline u8 *get_hdr_bssid(struct ieee80211_hdr *hdr)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/wow.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/wow.c
@@ -0,0 +1,882 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#include "main.h"
+#include "fw.h"
+#include "wow.h"
+#include "reg.h"
+#include "debug.h"
+#include "mac.h"
+#include "ps.h"
+
+static void rtw_wow_show_wakeup_reason(struct rtw_dev *rtwdev)
+{
+	u8 reason;
+
+	reason = rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON);
+
+	if (reason == RTW_WOW_RSN_RX_DEAUTH)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: Rx deauth\n");
+	else if (reason == RTW_WOW_RSN_DISCONNECT)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: AP is off\n");
+	else if (reason == RTW_WOW_RSN_RX_MAGIC_PKT)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: Rx magic packet\n");
+	else if (reason == RTW_WOW_RSN_RX_GTK_REKEY)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: Rx gtk rekey\n");
+	else if (reason == RTW_WOW_RSN_RX_PTK_REKEY)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: Rx ptk rekey\n");
+	else if (reason == RTW_WOW_RSN_RX_PATTERN_MATCH)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: Rx pattern match packet\n");
+	else if (reason == RTW_WOW_RSN_RX_NLO)
+		rtw_dbg(rtwdev, RTW_DBG_WOW, "Rx NLO\n");
+	else
+		rtw_warn(rtwdev, "Unknown wakeup reason %x\n", reason);
+}
+
+static void rtw_wow_pattern_write_cam(struct rtw_dev *rtwdev, u8 addr,
+				      u32 wdata)
+{
+	rtw_write32(rtwdev, REG_WKFMCAM_RWD, wdata);
+	rtw_write32(rtwdev, REG_WKFMCAM_CMD, BIT_WKFCAM_POLLING_V1 |
+		    BIT_WKFCAM_WE | BIT_WKFCAM_ADDR_V2(addr));
+
+	if (!check_hw_ready(rtwdev, REG_WKFMCAM_CMD, BIT_WKFCAM_POLLING_V1, 0))
+		rtw_err(rtwdev, "failed to write pattern cam\n");
+}
+
+static void rtw_wow_pattern_write_cam_ent(struct rtw_dev *rtwdev, u8 id,
+					  struct rtw_wow_pattern *rtw_pattern)
+{
+	int i;
+	u8 addr;
+	u32 wdata;
+
+	for (i = 0; i < RTW_MAX_PATTERN_MASK_SIZE / 4; i++) {
+		addr = (id << 3) + i;
+		wdata = rtw_pattern->mask[i * 4];
+		wdata |= rtw_pattern->mask[i * 4 + 1] << 8;
+		wdata |= rtw_pattern->mask[i * 4 + 2] << 16;
+		wdata |= rtw_pattern->mask[i * 4 + 3] << 24;
+		rtw_wow_pattern_write_cam(rtwdev, addr, wdata);
+	}
+
+	wdata = rtw_pattern->crc;
+	addr = (id << 3) + RTW_MAX_PATTERN_MASK_SIZE / 4;
+
+	switch (rtw_pattern->type) {
+	case RTW_PATTERN_BROADCAST:
+		wdata |= BIT_WKFMCAM_BC | BIT_WKFMCAM_VALID;
+		break;
+	case RTW_PATTERN_MULTICAST:
+		wdata |= BIT_WKFMCAM_MC | BIT_WKFMCAM_VALID;
+		break;
+	case RTW_PATTERN_UNICAST:
+		wdata |= BIT_WKFMCAM_UC | BIT_WKFMCAM_VALID;
+		break;
+	default:
+		break;
+	}
+	rtw_wow_pattern_write_cam(rtwdev, addr, wdata);
+}
+
+/* RTK internal CRC16 for Pattern Cam */
+static u16 __rtw_cal_crc16(u8 data, u16 crc)
+{
+	u8 shift_in, data_bit;
+	u8 crc_bit4, crc_bit11, crc_bit15;
+	u16 crc_result;
+	int index;
+
+	for (index = 0; index < 8; index++) {
+		crc_bit15 = ((crc & BIT(15)) ? 1 : 0);
+		data_bit = (data & (BIT(0) << index) ? 1 : 0);
+		shift_in = crc_bit15 ^ data_bit;
+
+		crc_result = crc << 1;
+
+		if (shift_in == 0)
+			crc_result &= (~BIT(0));
+		else
+			crc_result |= BIT(0);
+
+		crc_bit11 = ((crc & BIT(11)) ? 1 : 0) ^ shift_in;
+
+		if (crc_bit11 == 0)
+			crc_result &= (~BIT(12));
+		else
+			crc_result |= BIT(12);
+
+		crc_bit4 = ((crc & BIT(4)) ? 1 : 0) ^ shift_in;
+
+		if (crc_bit4 == 0)
+			crc_result &= (~BIT(5));
+		else
+			crc_result |= BIT(5);
+
+		crc = crc_result;
+	}
+	return crc;
+}
+
+static u16 rtw_calc_crc(u8 *pdata, int length)
+{
+	u16 crc = 0xffff;
+	int i;
+
+	for (i = 0; i < length; i++)
+		crc = __rtw_cal_crc16(pdata[i], crc);
+
+	/* get 1' complement */
+	return ~crc;
+}
+
+static void rtw_wow_pattern_generate(struct rtw_dev *rtwdev,
+				     struct rtw_vif *rtwvif,
+				     const struct cfg80211_pkt_pattern *pkt_pattern,
+				     struct rtw_wow_pattern *rtw_pattern)
+{
+	const u8 *mask;
+	const u8 *pattern;
+	u8 mask_hw[RTW_MAX_PATTERN_MASK_SIZE] = {0};
+	u8 content[RTW_MAX_PATTERN_SIZE] = {0};
+	u8 mac_addr[ETH_ALEN] = {0};
+	u8 mask_len;
+	u16 count;
+	int len;
+	int i;
+
+	pattern = pkt_pattern->pattern;
+	len = pkt_pattern->pattern_len;
+	mask = pkt_pattern->mask;
+
+	ether_addr_copy(mac_addr, rtwvif->mac_addr);
+	memset(rtw_pattern, 0, sizeof(*rtw_pattern));
+
+	mask_len = DIV_ROUND_UP(len, 8);
+
+	if (is_broadcast_ether_addr(pattern))
+		rtw_pattern->type = RTW_PATTERN_BROADCAST;
+	else if (is_multicast_ether_addr(pattern))
+		rtw_pattern->type = RTW_PATTERN_MULTICAST;
+	else if (ether_addr_equal(pattern, mac_addr))
+		rtw_pattern->type = RTW_PATTERN_UNICAST;
+	else
+		rtw_pattern->type = RTW_PATTERN_INVALID;
+
+	/* translate mask from os to mask for hw
+	 * pattern from OS uses 'ethenet frame', like this:
+	 * |    6   |    6   |   2  |     20    |  Variable  |  4  |
+	 * |--------+--------+------+-----------+------------+-----|
+	 * |    802.3 Mac Header    | IP Header | TCP Packet | FCS |
+	 * |   DA   |   SA   | Type |
+	 *
+	 * BUT, packet catched by our HW is in '802.11 frame', begin from LLC
+	 * |     24 or 30      |    6   |   2  |     20    |  Variable  |  4  |
+	 * |-------------------+--------+------+-----------+------------+-----|
+	 * | 802.11 MAC Header |       LLC     | IP Header | TCP Packet | FCS |
+	 *		       | Others | Tpye |
+	 *
+	 * Therefore, we need translate mask_from_OS to mask_to_hw.
+	 * We should left-shift mask by 6 bits, then set the new bit[0~5] = 0,
+	 * because new mask[0~5] means 'SA', but our HW packet begins from LLC,
+	 * bit[0~5] corresponds to first 6 Bytes in LLC, they just don't match.
+	 */
+
+	/* Shift 6 bits */
+	for (i = 0; i < mask_len - 1; i++) {
+		mask_hw[i] = u8_get_bits(mask[i], GENMASK(7, 6));
+		mask_hw[i] |= u8_get_bits(mask[i + 1], GENMASK(5, 0)) << 2;
+	}
+	mask_hw[i] = u8_get_bits(mask[i], GENMASK(7, 6));
+
+	/* Set bit 0-5 to zero */
+	mask_hw[0] &= (~GENMASK(5, 0));
+
+	memcpy(rtw_pattern->mask, mask_hw, RTW_MAX_PATTERN_MASK_SIZE);
+
+	/* To get the wake up pattern from the mask.
+	 * We do not count first 12 bits which means
+	 * DA[6] and SA[6] in the pattern to match HW design.
+	 */
+	count = 0;
+	for (i = 12; i < len; i++) {
+		if ((mask[i / 8] >> (i % 8)) & 0x01) {
+			content[count] = pattern[i];
+			count++;
+		}
+	}
+
+	rtw_pattern->crc = rtw_calc_crc(content, count);
+}
+
+static void rtw_wow_pattern_clear_cam(struct rtw_dev *rtwdev)
+{
+	bool ret;
+
+	rtw_write32(rtwdev, REG_WKFMCAM_CMD, BIT_WKFCAM_POLLING_V1 |
+		    BIT_WKFCAM_CLR_V1);
+
+	ret = check_hw_ready(rtwdev, REG_WKFMCAM_CMD, BIT_WKFCAM_POLLING_V1, 0);
+	if (!ret)
+		rtw_err(rtwdev, "failed to clean pattern cam\n");
+}
+
+static void rtw_wow_pattern_write(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct rtw_wow_pattern *rtw_pattern = rtw_wow->patterns;
+	int i = 0;
+
+	for (i = 0; i < rtw_wow->pattern_cnt; i++)
+		rtw_wow_pattern_write_cam_ent(rtwdev, i, rtw_pattern + i);
+}
+
+static void rtw_wow_pattern_clear(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+
+	rtw_wow_pattern_clear_cam(rtwdev);
+
+	rtw_wow->pattern_cnt = 0;
+	memset(rtw_wow->patterns, 0, sizeof(rtw_wow->patterns));
+}
+
+static void rtw_wow_bb_stop(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+
+	/* wait 100ms for firmware to finish TX */
+	msleep(100);
+
+	if (!rtw_read32_mask(rtwdev, REG_BCNQ_INFO, BIT_MGQ_CPU_EMPTY))
+		rtw_warn(rtwdev, "Wrong status of MGQ_CPU empty!\n");
+
+	rtw_wow->txpause = rtw_read8(rtwdev, REG_TXPAUSE);
+	rtw_write8(rtwdev, REG_TXPAUSE, 0xff);
+	rtw_write8_clr(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_BB_RSTB);
+}
+
+static void rtw_wow_bb_start(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+
+	rtw_write8_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_BB_RSTB);
+	rtw_write8(rtwdev, REG_TXPAUSE, rtw_wow->txpause);
+}
+
+static void rtw_wow_rx_dma_stop(struct rtw_dev *rtwdev)
+{
+	/* wait 100ms for HW to finish rx dma */
+	msleep(100);
+
+	rtw_write32_set(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE);
+
+	if (!check_hw_ready(rtwdev, REG_RXPKT_NUM, BIT_RXDMA_IDLE, 1))
+		rtw_err(rtwdev, "failed to stop rx dma\n");
+}
+
+static void rtw_wow_rx_dma_start(struct rtw_dev *rtwdev)
+{
+	rtw_write32_clr(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE);
+}
+
+static int rtw_wow_check_fw_status(struct rtw_dev *rtwdev, bool wow_enable)
+{
+	/* wait 100ms for wow firmware to finish work */
+	msleep(100);
+
+	if (wow_enable) {
+		if (rtw_read8(rtwdev, REG_WOWLAN_WAKE_REASON))
+			goto wow_fail;
+	} else {
+		if (rtw_read32_mask(rtwdev, REG_FE1IMR, BIT_FS_RXDONE) ||
+		    rtw_read32_mask(rtwdev, REG_RXPKT_NUM, BIT_RW_RELEASE))
+			goto wow_fail;
+	}
+
+	return 0;
+
+wow_fail:
+	rtw_err(rtwdev, "failed to check wow status %s\n",
+		wow_enable ? "enabled" : "disabled");
+	return -EBUSY;
+}
+
+static void rtw_wow_fw_security_type_iter(struct ieee80211_hw *hw,
+					  struct ieee80211_vif *vif,
+					  struct ieee80211_sta *sta,
+					  struct ieee80211_key_conf *key,
+					  void *data)
+{
+	struct rtw_fw_key_type_iter_data *iter_data = data;
+	struct rtw_dev *rtwdev = hw->priv;
+	u8 hw_key_type;
+
+	if (vif != rtwdev->wow.wow_vif)
+		return;
+
+	switch (key->cipher) {
+	case WLAN_CIPHER_SUITE_WEP40:
+		hw_key_type = RTW_CAM_WEP40;
+		break;
+	case WLAN_CIPHER_SUITE_WEP104:
+		hw_key_type = RTW_CAM_WEP104;
+		break;
+	case WLAN_CIPHER_SUITE_TKIP:
+		hw_key_type = RTW_CAM_TKIP;
+		key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
+		break;
+	case WLAN_CIPHER_SUITE_CCMP:
+		hw_key_type = RTW_CAM_AES;
+		key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX;
+		break;
+	default:
+		rtw_err(rtwdev, "Unsupported key type for wowlan mode\n");
+		hw_key_type = 0;
+		break;
+	}
+
+	if (sta)
+		iter_data->pairwise_key_type = hw_key_type;
+	else
+		iter_data->group_key_type = hw_key_type;
+}
+
+static void rtw_wow_fw_security_type(struct rtw_dev *rtwdev)
+{
+	struct rtw_fw_key_type_iter_data data = {};
+	struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif;
+
+	data.rtwdev = rtwdev;
+	rtw_iterate_keys(rtwdev, wow_vif,
+			 rtw_wow_fw_security_type_iter, &data);
+	rtw_fw_set_aoac_global_info_cmd(rtwdev, data.pairwise_key_type,
+					data.group_key_type);
+}
+
+static int rtw_wow_fw_start(struct rtw_dev *rtwdev)
+{
+	struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv;
+
+	if (rtw_wow_mgd_linked(rtwdev)) {
+		rtw_send_rsvd_page_h2c(rtwdev);
+		rtw_wow_pattern_write(rtwdev);
+		rtw_wow_fw_security_type(rtwdev);
+		rtw_fw_set_disconnect_decision_cmd(rtwdev, true);
+		rtw_fw_set_keep_alive_cmd(rtwdev, true);
+	} else if (rtw_wow_no_link(rtwdev)) {
+		rtw_fw_set_nlo_info(rtwdev, true);
+		rtw_fw_update_pkt_probe_req(rtwdev, NULL);
+		rtw_fw_channel_switch(rtwdev, true);
+	}
+
+	rtw_fw_set_default_port(rtwdev, rtwvif->port);
+	rtw_fw_set_wowlan_ctrl_cmd(rtwdev, true);
+	rtw_fw_set_remote_wake_ctrl_cmd(rtwdev, true);
+
+	return rtw_wow_check_fw_status(rtwdev, true);
+}
+
+static int rtw_wow_fw_stop(struct rtw_dev *rtwdev)
+{
+	if (rtw_wow_mgd_linked(rtwdev)) {
+		rtw_fw_set_disconnect_decision_cmd(rtwdev, false);
+		rtw_fw_set_keep_alive_cmd(rtwdev, false);
+		rtw_wow_pattern_clear(rtwdev);
+	} else if (rtw_wow_no_link(rtwdev)) {
+		rtw_fw_channel_switch(rtwdev, false);
+		rtw_fw_set_nlo_info(rtwdev, false);
+	}
+
+	rtw_fw_set_wowlan_ctrl_cmd(rtwdev, false);
+	rtw_fw_set_remote_wake_ctrl_cmd(rtwdev, false);
+
+	return rtw_wow_check_fw_status(rtwdev, false);
+}
+
+static void rtw_wow_avoid_reset_mac(struct rtw_dev *rtwdev)
+{
+	/* When resuming from wowlan mode, some hosts issue signal
+	 * (PCIE: PREST, USB: SE0RST) to device, and lead to reset
+	 * mac core. If it happens, the connection to AP will be lost.
+	 * Setting REG_RSV_CTRL Register can avoid this process.
+	 */
+	switch (rtw_hci_type(rtwdev)) {
+	case RTW_HCI_TYPE_PCIE:
+	case RTW_HCI_TYPE_USB:
+		rtw_write8(rtwdev, REG_RSV_CTRL, BIT_WLOCK_1C_B6);
+		rtw_write8(rtwdev, REG_RSV_CTRL,
+			   BIT_WLOCK_1C_B6 | BIT_R_DIS_PRST);
+		break;
+	default:
+		rtw_warn(rtwdev, "Unsupported hci type to disable reset MAC\n");
+		break;
+	}
+}
+
+static void rtw_wow_fw_media_status_iter(void *data, struct ieee80211_sta *sta)
+{
+	struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
+	struct rtw_fw_media_status_iter_data *iter_data = data;
+	struct rtw_dev *rtwdev = iter_data->rtwdev;
+
+	rtw_fw_media_status_report(rtwdev, si->mac_id, iter_data->connect);
+}
+
+static void rtw_wow_fw_media_status(struct rtw_dev *rtwdev, bool connect)
+{
+	struct rtw_fw_media_status_iter_data data;
+
+	data.rtwdev = rtwdev;
+	data.connect = connect;
+
+	rtw_iterate_stas_atomic(rtwdev, rtw_wow_fw_media_status_iter, &data);
+}
+
+static void rtw_wow_config_pno_rsvd_page(struct rtw_dev *rtwdev,
+					 struct rtw_vif *rtwvif)
+{
+	rtw_add_rsvd_page_pno(rtwdev, rtwvif);
+}
+
+static void rtw_wow_config_linked_rsvd_page(struct rtw_dev *rtwdev,
+					   struct rtw_vif *rtwvif)
+{
+	rtw_add_rsvd_page_sta(rtwdev, rtwvif);
+}
+
+static void rtw_wow_config_rsvd_page(struct rtw_dev *rtwdev,
+				     struct rtw_vif *rtwvif)
+{
+	rtw_remove_rsvd_page(rtwdev, rtwvif);
+
+	if (rtw_wow_mgd_linked(rtwdev)) {
+		rtw_wow_config_linked_rsvd_page(rtwdev, rtwvif);
+	} else if (test_bit(RTW_FLAG_WOWLAN, rtwdev->flags) &&
+		   rtw_wow_no_link(rtwdev)) {
+		rtw_wow_config_pno_rsvd_page(rtwdev, rtwvif);
+	}
+}
+
+static int rtw_wow_dl_fw_rsvd_page(struct rtw_dev *rtwdev)
+{
+	struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv;
+
+	rtw_wow_config_rsvd_page(rtwdev, rtwvif);
+
+	return rtw_fw_download_rsvd_page(rtwdev);
+}
+
+static int rtw_wow_swap_fw(struct rtw_dev *rtwdev, enum rtw_fw_type type)
+{
+	struct rtw_fw_state *fw;
+	int ret;
+
+	switch (type) {
+	case RTW_WOWLAN_FW:
+		fw = &rtwdev->wow_fw;
+		break;
+
+	case RTW_NORMAL_FW:
+		fw = &rtwdev->fw;
+		break;
+
+	default:
+		rtw_warn(rtwdev, "unsupported firmware type to swap\n");
+		return -ENOENT;
+	}
+
+	ret = rtw_download_firmware(rtwdev, fw);
+	if (ret)
+		goto out;
+
+	rtw_fw_send_general_info(rtwdev);
+	rtw_fw_send_phydm_info(rtwdev);
+	rtw_wow_fw_media_status(rtwdev, true);
+
+out:
+	return ret;
+}
+
+static void rtw_wow_check_pno(struct rtw_dev *rtwdev,
+			      struct cfg80211_sched_scan_request *nd_config)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct rtw_pno_request *pno_req = &rtw_wow->pno_req;
+	struct ieee80211_channel *channel;
+	int i, size;
+
+	if (!nd_config->n_match_sets || !nd_config->n_channels)
+		goto err;
+
+	pno_req->match_set_cnt = nd_config->n_match_sets;
+	size = sizeof(*pno_req->match_sets) * pno_req->match_set_cnt;
+	pno_req->match_sets = kmemdup(nd_config->match_sets, size, GFP_KERNEL);
+	if (!pno_req->match_sets)
+		goto err;
+
+	pno_req->channel_cnt = nd_config->n_channels;
+	size = sizeof(*nd_config->channels[0]) * nd_config->n_channels;
+	pno_req->channels = kmalloc(size, GFP_KERNEL);
+	if (!pno_req->channels)
+		goto channel_err;
+
+	for (i = 0 ; i < pno_req->channel_cnt; i++) {
+		channel = pno_req->channels + i;
+		memcpy(channel, nd_config->channels[i], sizeof(*channel));
+	}
+
+	pno_req->scan_plan = *nd_config->scan_plans;
+	pno_req->inited = true;
+
+	rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: net-detect is enabled\n");
+
+	return;
+
+channel_err:
+	kfree(pno_req->match_sets);
+
+err:
+	rtw_dbg(rtwdev, RTW_DBG_WOW, "WOW: net-detect is disabled\n");
+}
+
+static int rtw_wow_leave_linked_ps(struct rtw_dev *rtwdev)
+{
+	if (!test_bit(RTW_FLAG_WOWLAN, rtwdev->flags))
+		cancel_delayed_work_sync(&rtwdev->watch_dog_work);
+
+	rtw_leave_lps(rtwdev);
+
+	return 0;
+}
+
+static int rtw_wow_leave_no_link_ps(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	int ret = 0;
+
+	if (test_bit(RTW_FLAG_WOWLAN, rtwdev->flags)) {
+		if (rtw_fw_lps_deep_mode)
+			rtw_leave_lps_deep(rtwdev);
+	} else {
+		if (test_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags)) {
+			rtw_wow->ips_enabled = true;
+			ret = rtw_leave_ips(rtwdev);
+			if (ret)
+				return ret;
+		}
+	}
+
+	return 0;
+}
+
+static int rtw_wow_leave_ps(struct rtw_dev *rtwdev)
+{
+	int ret = 0;
+
+	if (rtw_wow_mgd_linked(rtwdev))
+		ret = rtw_wow_leave_linked_ps(rtwdev);
+	else if (rtw_wow_no_link(rtwdev))
+		ret = rtw_wow_leave_no_link_ps(rtwdev);
+
+	return ret;
+}
+
+static int rtw_wow_restore_ps(struct rtw_dev *rtwdev)
+{
+	int ret = 0;
+
+	if (rtw_wow_no_link(rtwdev) && rtwdev->wow.ips_enabled)
+		ret = rtw_enter_ips(rtwdev);
+
+	return ret;
+}
+
+static int rtw_wow_enter_linked_ps(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct ieee80211_vif *wow_vif = rtw_wow->wow_vif;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv;
+
+	rtw_enter_lps(rtwdev, rtwvif->port);
+
+	return 0;
+}
+
+static int rtw_wow_enter_no_link_ps(struct rtw_dev *rtwdev)
+{
+	/* firmware enters deep ps by itself if supported */
+	set_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags);
+
+	return 0;
+}
+
+static int rtw_wow_enter_ps(struct rtw_dev *rtwdev)
+{
+	int ret = 0;
+
+	if (rtw_wow_mgd_linked(rtwdev))
+		ret = rtw_wow_enter_linked_ps(rtwdev);
+	else if (rtw_wow_no_link(rtwdev) && rtw_fw_lps_deep_mode)
+		ret = rtw_wow_enter_no_link_ps(rtwdev);
+
+	return ret;
+}
+
+static void rtw_wow_stop_trx(struct rtw_dev *rtwdev)
+{
+	rtw_wow_bb_stop(rtwdev);
+	rtw_wow_rx_dma_stop(rtwdev);
+}
+
+static int rtw_wow_start(struct rtw_dev *rtwdev)
+{
+	int ret;
+
+	ret = rtw_wow_fw_start(rtwdev);
+	if (ret)
+		goto out;
+
+	rtw_hci_stop(rtwdev);
+	rtw_wow_bb_start(rtwdev);
+	rtw_wow_avoid_reset_mac(rtwdev);
+
+out:
+	return ret;
+}
+
+static int rtw_wow_enable(struct rtw_dev *rtwdev)
+{
+	int ret = 0;
+
+	rtw_wow_stop_trx(rtwdev);
+
+	ret = rtw_wow_swap_fw(rtwdev, RTW_WOWLAN_FW);
+	if (ret) {
+		rtw_err(rtwdev, "failed to swap wow fw\n");
+		goto error;
+	}
+
+	set_bit(RTW_FLAG_WOWLAN, rtwdev->flags);
+
+	ret = rtw_wow_dl_fw_rsvd_page(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to download wowlan rsvd page\n");
+		goto error;
+	}
+
+	ret = rtw_wow_start(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to start wow\n");
+		goto error;
+	}
+
+	return ret;
+
+error:
+	clear_bit(RTW_FLAG_WOWLAN, rtwdev->flags);
+	return ret;
+}
+
+static int rtw_wow_stop(struct rtw_dev *rtwdev)
+{
+	int ret;
+
+	/* some HCI related registers will be reset after resume,
+	 * need to set them again.
+	 */
+	ret = rtw_hci_setup(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to setup hci\n");
+		return ret;
+	}
+
+	ret = rtw_hci_start(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to start hci\n");
+		return ret;
+	}
+
+	ret = rtw_wow_fw_stop(rtwdev);
+	if (ret)
+		rtw_err(rtwdev, "failed to stop wowlan fw\n");
+
+	rtw_wow_bb_stop(rtwdev);
+
+	return ret;
+}
+
+static void rtw_wow_resume_trx(struct rtw_dev *rtwdev)
+{
+	rtw_wow_rx_dma_start(rtwdev);
+	rtw_wow_bb_start(rtwdev);
+	ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->watch_dog_work,
+				     RTW_WATCH_DOG_DELAY_TIME);
+}
+
+static int rtw_wow_disable(struct rtw_dev *rtwdev)
+{
+	int ret;
+
+	clear_bit(RTW_FLAG_WOWLAN, rtwdev->flags);
+
+	ret = rtw_wow_stop(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to stop wow\n");
+		goto out;
+	}
+
+	ret = rtw_wow_swap_fw(rtwdev, RTW_NORMAL_FW);
+	if (ret) {
+		rtw_err(rtwdev, "failed to swap normal fw\n");
+		goto out;
+	}
+
+	ret = rtw_wow_dl_fw_rsvd_page(rtwdev);
+	if (ret)
+		rtw_err(rtwdev, "failed to download normal rsvd page\n");
+
+out:
+	rtw_wow_resume_trx(rtwdev);
+	return ret;
+}
+
+static void rtw_wow_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif)
+{
+	struct rtw_dev *rtwdev = data;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+
+	/* Current wowlan function support setting of only one STATION vif.
+	 * So when one suitable vif is found, stop the iteration.
+	 */
+	if (rtw_wow->wow_vif || vif->type != NL80211_IFTYPE_STATION)
+		return;
+
+	switch (rtwvif->net_type) {
+	case RTW_NET_MGD_LINKED:
+		rtw_wow->wow_vif = vif;
+		break;
+	case RTW_NET_NO_LINK:
+		if (rtw_wow->pno_req.inited)
+			rtwdev->wow.wow_vif = vif;
+		break;
+	default:
+		break;
+	}
+}
+
+static int rtw_wow_set_wakeups(struct rtw_dev *rtwdev,
+			       struct cfg80211_wowlan *wowlan)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct rtw_wow_pattern *rtw_patterns = rtw_wow->patterns;
+	struct rtw_vif *rtwvif;
+	int i;
+
+	if (wowlan->disconnect)
+		set_bit(RTW_WOW_FLAG_EN_DISCONNECT, rtw_wow->flags);
+	if (wowlan->magic_pkt)
+		set_bit(RTW_WOW_FLAG_EN_MAGIC_PKT, rtw_wow->flags);
+	if (wowlan->gtk_rekey_failure)
+		set_bit(RTW_WOW_FLAG_EN_REKEY_PKT, rtw_wow->flags);
+
+	if (wowlan->nd_config)
+		rtw_wow_check_pno(rtwdev, wowlan->nd_config);
+
+	rtw_iterate_vifs_atomic(rtwdev, rtw_wow_vif_iter, rtwdev);
+	if (!rtw_wow->wow_vif)
+		return -EPERM;
+
+	rtwvif = (struct rtw_vif *)rtw_wow->wow_vif->drv_priv;
+	if (wowlan->n_patterns && wowlan->patterns) {
+		rtw_wow->pattern_cnt = wowlan->n_patterns;
+		for (i = 0; i < wowlan->n_patterns; i++)
+			rtw_wow_pattern_generate(rtwdev, rtwvif,
+						 wowlan->patterns + i,
+						 rtw_patterns + i);
+	}
+
+	return 0;
+}
+
+static void rtw_wow_clear_wakeups(struct rtw_dev *rtwdev)
+{
+	struct rtw_wow_param *rtw_wow = &rtwdev->wow;
+	struct rtw_pno_request *pno_req = &rtw_wow->pno_req;
+
+	if (pno_req->inited) {
+		kfree(pno_req->channels);
+		kfree(pno_req->match_sets);
+	}
+
+	memset(rtw_wow, 0, sizeof(rtwdev->wow));
+}
+
+int rtw_wow_suspend(struct rtw_dev *rtwdev, struct cfg80211_wowlan *wowlan)
+{
+	int ret = 0;
+
+	ret = rtw_wow_set_wakeups(rtwdev, wowlan);
+	if (ret) {
+		rtw_err(rtwdev, "failed to set wakeup event\n");
+		goto out;
+	}
+
+	ret = rtw_wow_leave_ps(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to leave ps from normal mode\n");
+		goto out;
+	}
+
+	ret = rtw_wow_enable(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to enable wow\n");
+		rtw_wow_restore_ps(rtwdev);
+		goto out;
+	}
+
+	ret = rtw_wow_enter_ps(rtwdev);
+	if (ret)
+		rtw_err(rtwdev, "failed to enter ps for wow\n");
+
+out:
+	return ret;
+}
+
+int rtw_wow_resume(struct rtw_dev *rtwdev)
+{
+	int ret;
+
+	/* If wowlan mode is not enabled, do nothing */
+	if (!test_bit(RTW_FLAG_WOWLAN, rtwdev->flags)) {
+		rtw_err(rtwdev, "wow is not enabled\n");
+		ret = -EPERM;
+		goto out;
+	}
+
+	ret = rtw_wow_leave_ps(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to leave ps from wowlan mode\n");
+		goto out;
+	}
+
+	rtw_wow_show_wakeup_reason(rtwdev);
+
+	ret = rtw_wow_disable(rtwdev);
+	if (ret) {
+		rtw_err(rtwdev, "failed to disable wow\n");
+		goto out;
+	}
+
+	ret = rtw_wow_restore_ps(rtwdev);
+	if (ret)
+		rtw_err(rtwdev, "failed to restore ps to normal mode\n");
+
+out:
+	rtw_wow_clear_wakeups(rtwdev);
+	return ret;
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/realtek/rtw88/wow.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/realtek/rtw88/wow.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright(c) 2018-2019  Realtek Corporation
+ */
+
+#ifndef __RTW_WOW_H__
+#define __RTW_WOW_H__
+
+#define PNO_CHECK_BYTE 4
+
+enum rtw_wow_pattern_type {
+	RTW_PATTERN_BROADCAST = 0,
+	RTW_PATTERN_MULTICAST,
+	RTW_PATTERN_UNICAST,
+	RTW_PATTERN_VALID,
+	RTW_PATTERN_INVALID,
+};
+
+enum rtw_wake_reason {
+	RTW_WOW_RSN_RX_PTK_REKEY = 0x1,
+	RTW_WOW_RSN_RX_GTK_REKEY = 0x2,
+	RTW_WOW_RSN_RX_DEAUTH = 0x8,
+	RTW_WOW_RSN_DISCONNECT = 0x10,
+	RTW_WOW_RSN_RX_MAGIC_PKT = 0x21,
+	RTW_WOW_RSN_RX_PATTERN_MATCH = 0x23,
+	RTW_WOW_RSN_RX_NLO = 0x55,
+};
+
+struct rtw_fw_media_status_iter_data {
+	struct rtw_dev *rtwdev;
+	u8 connect;
+};
+
+struct rtw_fw_key_type_iter_data {
+	struct rtw_dev *rtwdev;
+	u8 group_key_type;
+	u8 pairwise_key_type;
+};
+
+static inline bool rtw_wow_mgd_linked(struct rtw_dev *rtwdev)
+{
+	struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv;
+
+	return (rtwvif->net_type == RTW_NET_MGD_LINKED);
+}
+
+static inline bool rtw_wow_no_link(struct rtw_dev *rtwdev)
+{
+	struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif;
+	struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv;
+
+	return (rtwvif->net_type == RTW_NET_NO_LINK);
+}
+
+int rtw_wow_suspend(struct rtw_dev *rtwdev, struct cfg80211_wowlan *wowlan);
+int rtw_wow_resume(struct rtw_dev *rtwdev);
+
+#endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_91x_hal.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_91x_hal.c
@@ -248,7 +248,8 @@
 			rsi_set_len_qno(&data_desc->len_qno,
 					(skb->len - FRAME_DESC_SZ),
 					RSI_WIFI_MGMT_Q);
-		if ((skb->len - header_size) == EAPOL4_PACKET_LEN) {
+		if (((skb->len - header_size) == EAPOL4_PACKET_LEN) ||
+		    ((skb->len - header_size) == EAPOL4_PACKET_LEN - 2)) {
 			data_desc->misc_flags |=
 				RSI_DESC_REQUIRE_CFM_TO_HOST;
 			xtend_desc->confirm_frame_type = EAPOL4_CONFIRM;
@@ -622,6 +623,7 @@
 	bl_start_cmd_timer(adapter, timeout);
 	status = bl_write_cmd(adapter, cmd, exp_resp, &regout_val);
 	if (status < 0) {
+		bl_stop_cmd_timer(adapter);
 		rsi_dbg(ERR_ZONE,
 			"%s: Command %s (%0x) writing failed..\n",
 			__func__, str, cmd);
@@ -737,10 +739,9 @@
 	}
 
 	status = bl_cmd(adapter, cmd_req, cmd_resp, str);
-	if (status) {
-		bl_stop_cmd_timer(adapter);
+	if (status)
 		return status;
-	}
+
 	return 0;
 }
 
@@ -828,10 +829,9 @@
 
 	status = bl_cmd(adapter, EOF_REACHED, FW_LOADING_SUCCESSFUL,
 			"EOF_REACHED");
-	if (status) {
-		bl_stop_cmd_timer(adapter);
+	if (status)
 		return status;
-	}
+
 	rsi_dbg(INFO_ZONE, "FW loading is done and FW is running..\n");
 	return 0;
 }
@@ -849,6 +849,7 @@
 						  &regout_val,
 						  RSI_COMMON_REG_SIZE);
 		if (status < 0) {
+			bl_stop_cmd_timer(adapter);
 			rsi_dbg(ERR_ZONE,
 				"%s: REGOUT read failed\n", __func__);
 			return status;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_91x_mac80211.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_91x_mac80211.c
@@ -1140,8 +1140,7 @@
 		else if ((vif->type == NL80211_IFTYPE_AP) ||
 			 (vif->type == NL80211_IFTYPE_P2P_GO))
 			rsta->seq_start[tid] = seq_no;
-		ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-		status = 0;
+		status = IEEE80211_AMPDU_TX_START_IMMEDIATE;
 		break;
 
 	case IEEE80211_AMPDU_TX_STOP_CONT:
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_91x_mgmt.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_91x_mgmt.c
@@ -1756,6 +1756,7 @@
 		skb_pull(skb, (64 - dword_align_bytes));
 	if (rsi_prepare_beacon(common, skb)) {
 		rsi_dbg(ERR_ZONE, "Failed to prepare beacon\n");
+		dev_kfree_skb(skb);
 		return -EINVAL;
 	}
 	skb_queue_tail(&common->tx_queue[MGMT_BEACON_Q], skb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_91x_sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_91x_sdio.c
@@ -153,9 +153,7 @@
 	if (adapter->priv->fsm_state == FSM_FW_NOT_LOADED)
 		return;
 
-	dev->sdio_irq_task = current;
-	rsi_interrupt_handler(adapter);
-	dev->sdio_irq_task = NULL;
+	rsi_set_event(&dev->rx_thread.event);
 }
 
 /**
@@ -1059,8 +1057,6 @@
 		rsi_dbg(ERR_ZONE, "%s: Unable to init rx thrd\n", __func__);
 		goto fail_kill_thread;
 	}
-	skb_queue_head_init(&sdev->rx_q.head);
-	sdev->rx_q.num_rx_pkts = 0;
 
 	sdio_claim_host(pfunction);
 	if (sdio_claim_irq(pfunction, rsi_handle_interrupt)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_91x_sdio_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_91x_sdio_ops.c
@@ -60,39 +60,20 @@
 	return status;
 }
 
+static void rsi_rx_handler(struct rsi_hw *adapter);
+
 void rsi_sdio_rx_thread(struct rsi_common *common)
 {
 	struct rsi_hw *adapter = common->priv;
 	struct rsi_91x_sdiodev *sdev = adapter->rsi_dev;
-	struct sk_buff *skb;
-	int status;
 
 	do {
 		rsi_wait_event(&sdev->rx_thread.event, EVENT_WAIT_FOREVER);
 		rsi_reset_event(&sdev->rx_thread.event);
+		rsi_rx_handler(adapter);
+	} while (!atomic_read(&sdev->rx_thread.thread_done));
 
-		while (true) {
-			if (atomic_read(&sdev->rx_thread.thread_done))
-				goto out;
-
-			skb = skb_dequeue(&sdev->rx_q.head);
-			if (!skb)
-				break;
-			if (sdev->rx_q.num_rx_pkts > 0)
-				sdev->rx_q.num_rx_pkts--;
-			status = rsi_read_pkt(common, skb->data, skb->len);
-			if (status) {
-				rsi_dbg(ERR_ZONE, "Failed to read the packet\n");
-				dev_kfree_skb(skb);
-				break;
-			}
-			dev_kfree_skb(skb);
-		}
-	} while (1);
-
-out:
 	rsi_dbg(INFO_ZONE, "%s: Terminated SDIO RX thread\n", __func__);
-	skb_queue_purge(&sdev->rx_q.head);
 	atomic_inc(&sdev->rx_thread.thread_done);
 	complete_and_exit(&sdev->rx_thread.completion, 0);
 }
@@ -113,10 +94,6 @@
 	u32 rcv_pkt_len = 0;
 	int status = 0;
 	u8 value = 0;
-	struct sk_buff *skb;
-
-	if (dev->rx_q.num_rx_pkts >= RSI_MAX_RX_PKTS)
-		return 0;
 
 	num_blks = ((adapter->interrupt_status & 1) |
 			((adapter->interrupt_status >> RECV_NUM_BLOCKS) << 1));
@@ -144,22 +121,19 @@
 
 	rcv_pkt_len = (num_blks * 256);
 
-	skb = dev_alloc_skb(rcv_pkt_len);
-	if (!skb)
-		return -ENOMEM;
-
-	status = rsi_sdio_host_intf_read_pkt(adapter, skb->data, rcv_pkt_len);
+	status = rsi_sdio_host_intf_read_pkt(adapter, dev->pktbuffer,
+					     rcv_pkt_len);
 	if (status) {
 		rsi_dbg(ERR_ZONE, "%s: Failed to read packet from card\n",
 			__func__);
-		dev_kfree_skb(skb);
 		return status;
 	}
-	skb_put(skb, rcv_pkt_len);
-	skb_queue_tail(&dev->rx_q.head, skb);
-	dev->rx_q.num_rx_pkts++;
 
-	rsi_set_event(&dev->rx_thread.event);
+	status = rsi_read_pkt(common, dev->pktbuffer, rcv_pkt_len);
+	if (status) {
+		rsi_dbg(ERR_ZONE, "Failed to read the packet\n");
+		return status;
+	}
 
 	return 0;
 }
@@ -251,12 +225,12 @@
 }
 
 /**
- * rsi_interrupt_handler() - This function read and process SDIO interrupts.
+ * rsi_rx_handler() - Read and process SDIO interrupts.
  * @adapter: Pointer to the adapter structure.
  *
  * Return: None.
  */
-void rsi_interrupt_handler(struct rsi_hw *adapter)
+static void rsi_rx_handler(struct rsi_hw *adapter)
 {
 	struct rsi_common *common = adapter->priv;
 	struct rsi_91x_sdiodev *dev =
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_91x_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_91x_usb.c
@@ -16,6 +16,7 @@
  */
 
 #include <linux/module.h>
+#include <linux/types.h>
 #include <net/rsi_91x.h>
 #include "rsi_usb.h"
 #include "rsi_hal.h"
@@ -29,7 +30,7 @@
 		 "9[Wi-Fi STA + BT LE], 13[Wi-Fi STA + BT classic + BT LE]\n"
 		 "6[AP + BT classic], 14[AP + BT classic + BT LE]");
 
-static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num);
+static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num, gfp_t flags);
 
 /**
  * rsi_usb_card_write() - This function writes to the USB Card.
@@ -117,7 +118,7 @@
 	__le16 buffer_size;
 	int ii, bin_found = 0, bout_found = 0;
 
-	iface_desc = &(interface->altsetting[0]);
+	iface_desc = interface->cur_altsetting;
 
 	for (ii = 0; ii < iface_desc->desc.bNumEndpoints; ++ii) {
 		endpoint = &(iface_desc->endpoint[ii].desc);
@@ -285,20 +286,29 @@
 	status = 0;
 
 out:
-	if (rsi_rx_urb_submit(dev->priv, rx_cb->ep_num))
+	if (rsi_rx_urb_submit(dev->priv, rx_cb->ep_num, GFP_ATOMIC))
 		rsi_dbg(ERR_ZONE, "%s: Failed in urb submission", __func__);
 
 	if (status)
 		dev_kfree_skb(rx_cb->rx_skb);
 }
 
+static void rsi_rx_urb_kill(struct rsi_hw *adapter, u8 ep_num)
+{
+	struct rsi_91x_usbdev *dev = (struct rsi_91x_usbdev *)adapter->rsi_dev;
+	struct rx_usb_ctrl_block *rx_cb = &dev->rx_cb[ep_num - 1];
+	struct urb *urb = rx_cb->rx_urb;
+
+	usb_kill_urb(urb);
+}
+
 /**
  * rsi_rx_urb_submit() - This function submits the given URB to the USB stack.
  * @adapter: Pointer to the adapter structure.
  *
  * Return: 0 on success, a negative error code on failure.
  */
-static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num)
+static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num, gfp_t mem_flags)
 {
 	struct rsi_91x_usbdev *dev = (struct rsi_91x_usbdev *)adapter->rsi_dev;
 	struct rx_usb_ctrl_block *rx_cb = &dev->rx_cb[ep_num - 1];
@@ -328,9 +338,11 @@
 			  rsi_rx_done_handler,
 			  rx_cb);
 
-	status = usb_submit_urb(urb, GFP_KERNEL);
-	if (status)
+	status = usb_submit_urb(urb, mem_flags);
+	if (status) {
 		rsi_dbg(ERR_ZONE, "%s: Failed in urb submission\n", __func__);
+		dev_kfree_skb(skb);
+	}
 
 	return status;
 }
@@ -721,24 +733,24 @@
 		if (ret < 0)
 			goto fail;
 	} else {
-		if ((rsi_usb_master_reg_write(adapter,
-					      NWP_WWD_INTERRUPT_TIMER,
-					      NWP_WWD_INT_TIMER_CLKS,
-					      RSI_9116_REG_SIZE)) < 0) {
+		ret = rsi_usb_master_reg_write(adapter,
+					       NWP_WWD_INTERRUPT_TIMER,
+					       NWP_WWD_INT_TIMER_CLKS,
+					       RSI_9116_REG_SIZE);
+		if (ret < 0)
 			goto fail;
-		}
-		if ((rsi_usb_master_reg_write(adapter,
-					      NWP_WWD_SYSTEM_RESET_TIMER,
-					      NWP_WWD_SYS_RESET_TIMER_CLKS,
-					      RSI_9116_REG_SIZE)) < 0) {
+		ret = rsi_usb_master_reg_write(adapter,
+					       NWP_WWD_SYSTEM_RESET_TIMER,
+					       NWP_WWD_SYS_RESET_TIMER_CLKS,
+					       RSI_9116_REG_SIZE);
+		if (ret < 0)
 			goto fail;
-		}
-		if ((rsi_usb_master_reg_write(adapter,
-					      NWP_WWD_MODE_AND_RSTART,
-					      NWP_WWD_TIMER_DISABLE,
-					      RSI_9116_REG_SIZE)) < 0) {
+		ret = rsi_usb_master_reg_write(adapter,
+					       NWP_WWD_MODE_AND_RSTART,
+					       NWP_WWD_TIMER_DISABLE,
+					       RSI_9116_REG_SIZE);
+		if (ret < 0)
 			goto fail;
-		}
 	}
 
 	rsi_dbg(INFO_ZONE, "Reset card done\n");
@@ -816,17 +828,20 @@
 		rsi_dbg(INIT_ZONE, "%s: Device Init Done\n", __func__);
 	}
 
-	status = rsi_rx_urb_submit(adapter, WLAN_EP);
+	status = rsi_rx_urb_submit(adapter, WLAN_EP, GFP_KERNEL);
 	if (status)
 		goto err1;
 
 	if (adapter->priv->coex_mode > 1) {
-		status = rsi_rx_urb_submit(adapter, BT_EP);
+		status = rsi_rx_urb_submit(adapter, BT_EP, GFP_KERNEL);
 		if (status)
-			goto err1;
+			goto err_kill_wlan_urb;
 	}
 
 	return 0;
+
+err_kill_wlan_urb:
+	rsi_rx_urb_kill(adapter, WLAN_EP);
 err1:
 	rsi_deinit_usb_interface(adapter);
 err:
@@ -857,6 +872,10 @@
 		adapter->priv->bt_adapter = NULL;
 	}
 
+	if (adapter->priv->coex_mode > 1)
+		rsi_rx_urb_kill(adapter, BT_EP);
+	rsi_rx_urb_kill(adapter, WLAN_EP);
+
 	rsi_reset_card(adapter);
 	rsi_deinit_usb_interface(adapter);
 	rsi_91x_deinit(adapter);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/rsi/rsi_sdio.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/rsi/rsi_sdio.h
@@ -111,11 +111,6 @@
 	u32 buf_available_counter;
 };
 
-struct rsi_sdio_rx_q {
-	u8 num_rx_pkts;
-	struct sk_buff_head head;
-};
-
 struct rsi_91x_sdiodev {
 	struct sdio_func *pfunction;
 	struct task_struct *sdio_irq_task;
@@ -128,11 +123,10 @@
 	u16 tx_blk_size;
 	u8 write_fail;
 	bool buff_status_updated;
-	struct rsi_sdio_rx_q rx_q;
 	struct rsi_thread rx_thread;
+	u8 pktbuffer[8192] __aligned(4);
 };
 
-void rsi_interrupt_handler(struct rsi_hw *adapter);
 int rsi_init_sdio_slave_regs(struct rsi_hw *adapter);
 int rsi_sdio_read_register(struct rsi_hw *adapter, u32 addr, u8 *data);
 int rsi_sdio_host_intf_read_pkt(struct rsi_hw *adapter, u8 *pkt, u32 length);
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/st/cw1200/fwio.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/st/cw1200/fwio.c
@@ -320,12 +320,12 @@
 		goto out;
 	}
 
-	priv->hw_type = cw1200_get_hw_type(val32, &major_revision);
-	if (priv->hw_type < 0) {
+	ret = cw1200_get_hw_type(val32, &major_revision);
+	if (ret < 0) {
 		pr_err("Can't deduce hardware type.\n");
-		ret = -ENOTSUPP;
 		goto out;
 	}
+	priv->hw_type = ret;
 
 	/* Set DPLL Reg value, and read back to confirm writes work */
 	ret = cw1200_reg_write_32(priv, ST90TDS_TSET_GEN_R_W_REG_ID,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/st/cw1200/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/st/cw1200/main.c
@@ -381,6 +381,7 @@
 				    CW1200_LINK_ID_MAX,
 				    cw1200_skb_dtor,
 				    priv)) {
+		destroy_workqueue(priv->workqueue);
 		ieee80211_free_hw(hw);
 		return NULL;
 	}
@@ -392,6 +393,7 @@
 			for (; i > 0; i--)
 				cw1200_queue_deinit(&priv->tx_queue[i - 1]);
 			cw1200_queue_stats_deinit(&priv->tx_queue_stats);
+			destroy_workqueue(priv->workqueue);
 			ieee80211_free_hw(hw);
 			return NULL;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ti/wl1251/event.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ti/wl1251/event.c
@@ -70,7 +70,7 @@
 		break;
 	}
 
-	return 0;
+	return ret;
 }
 
 static void wl1251_event_mbox_dump(struct event_mailbox *mbox)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ti/wl12xx/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ti/wl12xx/main.c
@@ -635,7 +635,6 @@
 		wl->quirks |= WLCORE_QUIRK_LEGACY_NVS |
 			      WLCORE_QUIRK_DUAL_PROBE_TMPL |
 			      WLCORE_QUIRK_TKIP_HEADER_SPACE |
-			      WLCORE_QUIRK_START_STA_FAILS |
 			      WLCORE_QUIRK_AP_ZERO_SESSION_ID;
 		wl->sr_fw_name = WL127X_FW_NAME_SINGLE;
 		wl->mr_fw_name = WL127X_FW_NAME_MULTI;
@@ -659,7 +658,6 @@
 		wl->quirks |= WLCORE_QUIRK_LEGACY_NVS |
 			      WLCORE_QUIRK_DUAL_PROBE_TMPL |
 			      WLCORE_QUIRK_TKIP_HEADER_SPACE |
-			      WLCORE_QUIRK_START_STA_FAILS |
 			      WLCORE_QUIRK_AP_ZERO_SESSION_ID;
 		wl->plt_fw_name = WL127X_PLT_FW_NAME;
 		wl->sr_fw_name = WL127X_FW_NAME_SINGLE;
@@ -688,7 +686,6 @@
 		wl->quirks |= WLCORE_QUIRK_TX_BLOCKSIZE_ALIGN |
 			      WLCORE_QUIRK_DUAL_PROBE_TMPL |
 			      WLCORE_QUIRK_TKIP_HEADER_SPACE |
-			      WLCORE_QUIRK_START_STA_FAILS |
 			      WLCORE_QUIRK_AP_ZERO_SESSION_ID;
 
 		wlcore_set_min_fw_ver(wl, WL128X_CHIP_VER,
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ti/wlcore/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ti/wlcore/main.c
@@ -2862,21 +2862,8 @@
 
 	if (is_ibss)
 		ret = wl12xx_cmd_role_start_ibss(wl, wlvif);
-	else {
-		if (wl->quirks & WLCORE_QUIRK_START_STA_FAILS) {
-			/*
-			 * TODO: this is an ugly workaround for wl12xx fw
-			 * bug - we are not able to tx/rx after the first
-			 * start_sta, so make dummy start+stop calls,
-			 * and then call start_sta again.
-			 * this should be fixed in the fw.
-			 */
-			wl12xx_cmd_role_start_sta(wl, wlvif);
-			wl12xx_cmd_role_stop_sta(wl, wlvif);
-		}
-
+	else
 		ret = wl12xx_cmd_role_start_sta(wl, wlvif);
-	}
 
 	return ret;
 }
@@ -3658,8 +3645,10 @@
 		goto out;
 
 	ret = pm_runtime_get_sync(wl->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(wl->dev);
 		goto out;
+	}
 
 	ret = wlcore_cmd_regdomain_config_locked(wl);
 	if (ret < 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ti/wlcore/tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ti/wlcore/tx.c
@@ -863,6 +863,7 @@
 
 	ret = wlcore_tx_work_locked(wl);
 	if (ret < 0) {
+		pm_runtime_put_noidle(wl->dev);
 		wl12xx_queue_recovery_work(wl);
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/ti/wlcore/wlcore.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/ti/wlcore/wlcore.h
@@ -547,9 +547,6 @@
 /* Each RX/TX transaction requires an end-of-transaction transfer */
 #define WLCORE_QUIRK_END_OF_TRANSACTION		BIT(0)
 
-/* the first start_role(sta) sometimes doesn't work on wl12xx */
-#define WLCORE_QUIRK_START_STA_FAILS		BIT(1)
-
 /* wl127x and SPI don't support SDIO block size alignment */
 #define WLCORE_QUIRK_TX_BLOCKSIZE_ALIGN		BIT(2)
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/virt_wifi.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/virt_wifi.c
@@ -450,7 +450,6 @@
 	 */
 	kfree(dev->ieee80211_ptr);
 	dev->ieee80211_ptr = NULL;
-	free_netdev(dev);
 }
 
 /* No lock interaction. */
@@ -458,7 +457,7 @@
 {
 	ether_setup(dev);
 	dev->netdev_ops = &virt_wifi_ops;
-	dev->priv_destructor = virt_wifi_net_device_destructor;
+	dev->needs_free_netdev  = true;
 }
 
 /* Called in a RCU read critical section from netif_receive_skb */
@@ -544,6 +543,7 @@
 		goto unregister_netdev;
 	}
 
+	dev->priv_destructor = virt_wifi_net_device_destructor;
 	priv->being_deleted = false;
 	priv->is_connected = false;
 	priv->is_up = false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
@@ -1263,7 +1263,7 @@
 static int eject_installer(struct usb_interface *intf)
 {
 	struct usb_device *udev = interface_to_usbdev(intf);
-	struct usb_host_interface *iface_desc = &intf->altsetting[0];
+	struct usb_host_interface *iface_desc = intf->cur_altsetting;
 	struct usb_endpoint_descriptor *endpoint;
 	unsigned char *cmd;
 	u8 bulk_out_ep;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/xen-netback/common.h
+++ linux-gkeop-5.4-5.4.0/drivers/net/xen-netback/common.h
@@ -140,6 +140,20 @@
 	char name[QUEUE_NAME_SIZE]; /* DEVNAME-qN */
 	struct xenvif *vif; /* Parent VIF */
 
+	/*
+	 * TX/RX common EOI handling.
+	 * When feature-split-event-channels = 0, interrupt handler sets
+	 * NETBK_COMMON_EOI, otherwise NETBK_RX_EOI and NETBK_TX_EOI are set
+	 * by the RX and TX interrupt handlers.
+	 * RX and TX handler threads will issue an EOI when either
+	 * NETBK_COMMON_EOI or their specific bits (NETBK_RX_EOI or
+	 * NETBK_TX_EOI) are set and they will reset those bits.
+	 */
+	atomic_t eoi_pending;
+#define NETBK_RX_EOI		0x01
+#define NETBK_TX_EOI		0x02
+#define NETBK_COMMON_EOI	0x04
+
 	/* Use NAPI for guest TX */
 	struct napi_struct napi;
 	/* When feature-split-event-channels = 0, tx_irq = rx_irq. */
@@ -375,6 +389,7 @@
 
 irqreturn_t xenvif_ctrl_irq_fn(int irq, void *data);
 
+bool xenvif_have_rx_work(struct xenvif_queue *queue, bool test_kthread);
 void xenvif_rx_action(struct xenvif_queue *queue);
 void xenvif_rx_queue_tail(struct xenvif_queue *queue, struct sk_buff *skb);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/xen-netback/interface.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/xen-netback/interface.c
@@ -77,12 +77,28 @@
 		!vif->disabled;
 }
 
+static bool xenvif_handle_tx_interrupt(struct xenvif_queue *queue)
+{
+	bool rc;
+
+	rc = RING_HAS_UNCONSUMED_REQUESTS(&queue->tx);
+	if (rc)
+		napi_schedule(&queue->napi);
+	return rc;
+}
+
 static irqreturn_t xenvif_tx_interrupt(int irq, void *dev_id)
 {
 	struct xenvif_queue *queue = dev_id;
+	int old;
 
-	if (RING_HAS_UNCONSUMED_REQUESTS(&queue->tx))
-		napi_schedule(&queue->napi);
+	old = atomic_fetch_or(NETBK_TX_EOI, &queue->eoi_pending);
+	WARN(old & NETBK_TX_EOI, "Interrupt while EOI pending\n");
+
+	if (!xenvif_handle_tx_interrupt(queue)) {
+		atomic_andnot(NETBK_TX_EOI, &queue->eoi_pending);
+		xen_irq_lateeoi(irq, XEN_EOI_FLAG_SPURIOUS);
+	}
 
 	return IRQ_HANDLED;
 }
@@ -116,19 +132,48 @@
 	return work_done;
 }
 
+static bool xenvif_handle_rx_interrupt(struct xenvif_queue *queue)
+{
+	bool rc;
+
+	rc = xenvif_have_rx_work(queue, false);
+	if (rc)
+		xenvif_kick_thread(queue);
+	return rc;
+}
+
 static irqreturn_t xenvif_rx_interrupt(int irq, void *dev_id)
 {
 	struct xenvif_queue *queue = dev_id;
+	int old;
 
-	xenvif_kick_thread(queue);
+	old = atomic_fetch_or(NETBK_RX_EOI, &queue->eoi_pending);
+	WARN(old & NETBK_RX_EOI, "Interrupt while EOI pending\n");
+
+	if (!xenvif_handle_rx_interrupt(queue)) {
+		atomic_andnot(NETBK_RX_EOI, &queue->eoi_pending);
+		xen_irq_lateeoi(irq, XEN_EOI_FLAG_SPURIOUS);
+	}
 
 	return IRQ_HANDLED;
 }
 
 irqreturn_t xenvif_interrupt(int irq, void *dev_id)
 {
-	xenvif_tx_interrupt(irq, dev_id);
-	xenvif_rx_interrupt(irq, dev_id);
+	struct xenvif_queue *queue = dev_id;
+	int old;
+	bool has_rx, has_tx;
+
+	old = atomic_fetch_or(NETBK_COMMON_EOI, &queue->eoi_pending);
+	WARN(old, "Interrupt while EOI pending\n");
+
+	has_tx = xenvif_handle_tx_interrupt(queue);
+	has_rx = xenvif_handle_rx_interrupt(queue);
+
+	if (!has_rx && !has_tx) {
+		atomic_andnot(NETBK_COMMON_EOI, &queue->eoi_pending);
+		xen_irq_lateeoi(irq, XEN_EOI_FLAG_SPURIOUS);
+	}
 
 	return IRQ_HANDLED;
 }
@@ -595,7 +640,7 @@
 	shared = (struct xen_netif_ctrl_sring *)addr;
 	BACK_RING_INIT(&vif->ctrl, shared, XEN_PAGE_SIZE);
 
-	err = bind_interdomain_evtchn_to_irq(vif->domid, evtchn);
+	err = bind_interdomain_evtchn_to_irq_lateeoi(vif->domid, evtchn);
 	if (err < 0)
 		goto err_unmap;
 
@@ -653,7 +698,7 @@
 
 	if (tx_evtchn == rx_evtchn) {
 		/* feature-split-event-channels == 0 */
-		err = bind_interdomain_evtchn_to_irqhandler(
+		err = bind_interdomain_evtchn_to_irqhandler_lateeoi(
 			queue->vif->domid, tx_evtchn, xenvif_interrupt, 0,
 			queue->name, queue);
 		if (err < 0)
@@ -664,7 +709,7 @@
 		/* feature-split-event-channels == 1 */
 		snprintf(queue->tx_irq_name, sizeof(queue->tx_irq_name),
 			 "%s-tx", queue->name);
-		err = bind_interdomain_evtchn_to_irqhandler(
+		err = bind_interdomain_evtchn_to_irqhandler_lateeoi(
 			queue->vif->domid, tx_evtchn, xenvif_tx_interrupt, 0,
 			queue->tx_irq_name, queue);
 		if (err < 0)
@@ -674,7 +719,7 @@
 
 		snprintf(queue->rx_irq_name, sizeof(queue->rx_irq_name),
 			 "%s-rx", queue->name);
-		err = bind_interdomain_evtchn_to_irqhandler(
+		err = bind_interdomain_evtchn_to_irqhandler_lateeoi(
 			queue->vif->domid, rx_evtchn, xenvif_rx_interrupt, 0,
 			queue->rx_irq_name, queue);
 		if (err < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/xen-netback/netback.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/xen-netback/netback.c
@@ -162,6 +162,10 @@
 
 	if (more_to_do)
 		napi_schedule(&queue->napi);
+	else if (atomic_fetch_andnot(NETBK_TX_EOI | NETBK_COMMON_EOI,
+				     &queue->eoi_pending) &
+		 (NETBK_TX_EOI | NETBK_COMMON_EOI))
+		xen_irq_lateeoi(queue->tx_irq, 0);
 }
 
 static void tx_add_credit(struct xenvif_queue *queue)
@@ -1336,7 +1340,15 @@
 				      NULL,
 				      queue->pages_to_map,
 				      nr_mops);
-		BUG_ON(ret);
+		if (ret) {
+			unsigned int i;
+
+			netdev_err(queue->vif->dev, "Map fail: nr %u ret %d\n",
+				   nr_mops, ret);
+			for (i = 0; i < nr_mops; ++i)
+				WARN_ON_ONCE(queue->tx_map_ops[i].status ==
+				             GNTST_okay);
+		}
 	}
 
 	work_done = xenvif_tx_submit(queue);
@@ -1622,9 +1634,14 @@
 irqreturn_t xenvif_ctrl_irq_fn(int irq, void *data)
 {
 	struct xenvif *vif = data;
+	unsigned int eoi_flag = XEN_EOI_FLAG_SPURIOUS;
 
-	while (xenvif_ctrl_work_todo(vif))
+	while (xenvif_ctrl_work_todo(vif)) {
 		xenvif_ctrl_action(vif);
+		eoi_flag = 0;
+	}
+
+	xen_irq_lateeoi(irq, eoi_flag);
 
 	return IRQ_HANDLED;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/xen-netback/rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/xen-netback/rx.c
@@ -38,10 +38,15 @@
 	RING_IDX prod, cons;
 	struct sk_buff *skb;
 	int needed;
+	unsigned long flags;
+
+	spin_lock_irqsave(&queue->rx_queue.lock, flags);
 
 	skb = skb_peek(&queue->rx_queue);
-	if (!skb)
+	if (!skb) {
+		spin_unlock_irqrestore(&queue->rx_queue.lock, flags);
 		return false;
+	}
 
 	needed = DIV_ROUND_UP(skb->len, XEN_PAGE_SIZE);
 	if (skb_is_gso(skb))
@@ -49,6 +54,8 @@
 	if (skb->sw_hash)
 		needed++;
 
+	spin_unlock_irqrestore(&queue->rx_queue.lock, flags);
+
 	do {
 		prod = queue->rx.sring->req_prod;
 		cons = queue->rx.req_cons;
@@ -490,13 +497,13 @@
 	return queue->stalled && prod - cons >= 1;
 }
 
-static bool xenvif_have_rx_work(struct xenvif_queue *queue)
+bool xenvif_have_rx_work(struct xenvif_queue *queue, bool test_kthread)
 {
 	return xenvif_rx_ring_slots_available(queue) ||
 		(queue->vif->stall_timeout &&
 		 (xenvif_rx_queue_stalled(queue) ||
 		  xenvif_rx_queue_ready(queue))) ||
-		kthread_should_stop() ||
+		(test_kthread && kthread_should_stop()) ||
 		queue->vif->disabled;
 }
 
@@ -527,15 +534,20 @@
 {
 	DEFINE_WAIT(wait);
 
-	if (xenvif_have_rx_work(queue))
+	if (xenvif_have_rx_work(queue, true))
 		return;
 
 	for (;;) {
 		long ret;
 
 		prepare_to_wait(&queue->wq, &wait, TASK_INTERRUPTIBLE);
-		if (xenvif_have_rx_work(queue))
+		if (xenvif_have_rx_work(queue, true))
 			break;
+		if (atomic_fetch_andnot(NETBK_RX_EOI | NETBK_COMMON_EOI,
+					&queue->eoi_pending) &
+		    (NETBK_RX_EOI | NETBK_COMMON_EOI))
+			xen_irq_lateeoi(queue->rx_irq, 0);
+
 		ret = schedule_timeout(xenvif_rx_queue_timeout(queue));
 		if (!ret)
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/xen-netback/xenbus.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/xen-netback/xenbus.c
@@ -713,12 +713,14 @@
 		return -ENOMEM;
 	snprintf(node, maxlen, "%s/rate", dev->nodename);
 	vif->credit_watch.node = node;
+	vif->credit_watch.will_handle = NULL;
 	vif->credit_watch.callback = xen_net_rate_changed;
 	err = register_xenbus_watch(&vif->credit_watch);
 	if (err) {
 		pr_err("Failed to set watcher %s\n", vif->credit_watch.node);
 		kfree(node);
 		vif->credit_watch.node = NULL;
+		vif->credit_watch.will_handle = NULL;
 		vif->credit_watch.callback = NULL;
 	}
 	return err;
@@ -765,6 +767,7 @@
 	snprintf(node, maxlen, "%s/request-multicast-control",
 		 dev->otherend);
 	vif->mcast_ctrl_watch.node = node;
+	vif->mcast_ctrl_watch.will_handle = NULL;
 	vif->mcast_ctrl_watch.callback = xen_mcast_ctrl_changed;
 	err = register_xenbus_watch(&vif->mcast_ctrl_watch);
 	if (err) {
@@ -772,6 +775,7 @@
 		       vif->mcast_ctrl_watch.node);
 		kfree(node);
 		vif->mcast_ctrl_watch.node = NULL;
+		vif->mcast_ctrl_watch.will_handle = NULL;
 		vif->mcast_ctrl_watch.callback = NULL;
 	}
 	return err;
@@ -975,7 +979,7 @@
 	xenvif_carrier_on(be->vif);
 
 	unregister_hotplug_status_watch(be);
-	err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch,
+	err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, NULL,
 				   hotplug_status_changed,
 				   "%s/%s", dev->nodename, "hotplug-status");
 	if (!err)
--- linux-gkeop-5.4-5.4.0.orig/drivers/net/xen-netfront.c
+++ linux-gkeop-5.4-5.4.0/drivers/net/xen-netfront.c
@@ -63,6 +63,8 @@
 MODULE_PARM_DESC(max_queues,
 		 "Maximum number of queues per virtual interface");
 
+#define XENNET_TIMEOUT  (5 * HZ)
+
 static const struct ethtool_ops xennet_ethtool_ops;
 
 struct netfront_cb {
@@ -1334,12 +1336,15 @@
 
 	netif_carrier_off(netdev);
 
-	xenbus_switch_state(dev, XenbusStateInitialising);
-	wait_event(module_wq,
-		   xenbus_read_driver_state(dev->otherend) !=
-		   XenbusStateClosed &&
-		   xenbus_read_driver_state(dev->otherend) !=
-		   XenbusStateUnknown);
+	do {
+		xenbus_switch_state(dev, XenbusStateInitialising);
+		err = wait_event_timeout(module_wq,
+				 xenbus_read_driver_state(dev->otherend) !=
+				 XenbusStateClosed &&
+				 xenbus_read_driver_state(dev->otherend) !=
+				 XenbusStateUnknown, XENNET_TIMEOUT);
+	} while (!err);
+
 	return netdev;
 
  exit:
@@ -2139,28 +2144,43 @@
 };
 #endif /* CONFIG_SYSFS */
 
-static int xennet_remove(struct xenbus_device *dev)
+static void xennet_bus_close(struct xenbus_device *dev)
 {
-	struct netfront_info *info = dev_get_drvdata(&dev->dev);
-
-	dev_dbg(&dev->dev, "%s\n", dev->nodename);
+	int ret;
 
-	if (xenbus_read_driver_state(dev->otherend) != XenbusStateClosed) {
+	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
+		return;
+	do {
 		xenbus_switch_state(dev, XenbusStateClosing);
-		wait_event(module_wq,
-			   xenbus_read_driver_state(dev->otherend) ==
-			   XenbusStateClosing ||
-			   xenbus_read_driver_state(dev->otherend) ==
-			   XenbusStateUnknown);
+		ret = wait_event_timeout(module_wq,
+				   xenbus_read_driver_state(dev->otherend) ==
+				   XenbusStateClosing ||
+				   xenbus_read_driver_state(dev->otherend) ==
+				   XenbusStateClosed ||
+				   xenbus_read_driver_state(dev->otherend) ==
+				   XenbusStateUnknown,
+				   XENNET_TIMEOUT);
+	} while (!ret);
 
+	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
+		return;
+
+	do {
 		xenbus_switch_state(dev, XenbusStateClosed);
-		wait_event(module_wq,
-			   xenbus_read_driver_state(dev->otherend) ==
-			   XenbusStateClosed ||
-			   xenbus_read_driver_state(dev->otherend) ==
-			   XenbusStateUnknown);
-	}
+		ret = wait_event_timeout(module_wq,
+				   xenbus_read_driver_state(dev->otherend) ==
+				   XenbusStateClosed ||
+				   xenbus_read_driver_state(dev->otherend) ==
+				   XenbusStateUnknown,
+				   XENNET_TIMEOUT);
+	} while (!ret);
+}
+
+static int xennet_remove(struct xenbus_device *dev)
+{
+	struct netfront_info *info = dev_get_drvdata(&dev->dev);
 
+	xennet_bus_close(dev);
 	xennet_disconnect_backend(info);
 
 	if (info->netdev->reg_state == NETREG_REGISTERED)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/fdp/fdp.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/fdp/fdp.c
@@ -184,7 +184,7 @@
 	const struct firmware *fw;
 	struct sk_buff *skb;
 	unsigned long len;
-	u8 max_size, payload_size;
+	int max_size, payload_size;
 	int rc = 0;
 
 	if ((type == NCI_PATCH_TYPE_OTP && !info->otp_patch) ||
@@ -207,8 +207,7 @@
 
 	while (len) {
 
-		payload_size = min_t(unsigned long, (unsigned long) max_size,
-				     len);
+		payload_size = min_t(unsigned long, max_size, len);
 
 		skb = nci_skb_alloc(ndev, (NCI_CTRL_HDR_SIZE + payload_size),
 				    GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/nxp-nci/i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/nxp-nci/i2c.c
@@ -278,7 +278,7 @@
 
 	r = devm_acpi_dev_add_driver_gpios(dev, acpi_nxp_nci_gpios);
 	if (r)
-		return r;
+		dev_dbg(dev, "Unable to add GPIO mapping table\n");
 
 	phy->gpiod_en = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
 	if (IS_ERR(phy->gpiod_en)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/pn533/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/pn533/usb.c
@@ -391,7 +391,7 @@
 		       cmd, sizeof(cmd), false);
 
 	rc = usb_bulk_msg(phy->udev, phy->out_urb->pipe, buffer, sizeof(cmd),
-			  &transferred, 0);
+			  &transferred, 5000);
 	kfree(buffer);
 	if (rc || (transferred != sizeof(cmd))) {
 		nfc_err(&phy->udev->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/pn544/i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/pn544/i2c.c
@@ -225,6 +225,7 @@
 
 out:
 	gpiod_set_value_cansleep(phy->gpiod_en, !phy->en_polarity);
+	usleep_range(10000, 15000);
 }
 
 static void pn544_hci_i2c_enable_mode(struct pn544_i2c_phy *phy, int run_mode)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/pn544/pn544.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/pn544/pn544.c
@@ -693,7 +693,7 @@
 		    target->nfcid1_len != 10)
 			return -EOPNOTSUPP;
 
-		 return nfc_hci_send_cmd(hdev, NFC_HCI_RF_READER_A_GATE,
+		return nfc_hci_send_cmd(hdev, NFC_HCI_RF_READER_A_GATE,
 				     PN544_RF_READER_CMD_ACTIVATE_NEXT,
 				     target->nfcid1, target->nfcid1_len, NULL);
 	} else if (target->supported_protocols & (NFC_PROTO_JEWEL_MASK |
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/port100.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/port100.c
@@ -565,7 +565,7 @@
 {
 	struct port100_frame *frame = _frame;
 
-	frame->datalen = cpu_to_le16(le16_to_cpu(frame->datalen) + len);
+	le16_add_cpu(&frame->datalen, len);
 }
 
 static bool port100_rx_frame_is_valid(void *_frame)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/s3fwrn5/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/s3fwrn5/core.c
@@ -198,6 +198,7 @@
 	case S3FWRN5_MODE_FW:
 		return s3fwrn5_fw_recv_frame(ndev, skb);
 	default:
+		kfree_skb(skb);
 		return -ENODEV;
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/s3fwrn5/firmware.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/s3fwrn5/firmware.c
@@ -293,8 +293,10 @@
 	if (ret < 0)
 		return ret;
 
-	if (fw->fw->size < S3FWRN5_FW_IMAGE_HEADER_SIZE)
+	if (fw->fw->size < S3FWRN5_FW_IMAGE_HEADER_SIZE) {
+		release_firmware(fw->fw);
 		return -EINVAL;
+	}
 
 	memcpy(fw->date, fw->fw->data + 0x00, 12);
 	fw->date[12] = '\0';
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/s3fwrn5/i2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/s3fwrn5/i2c.c
@@ -26,8 +26,8 @@
 	struct i2c_client *i2c_dev;
 	struct nci_dev *ndev;
 
-	unsigned int gpio_en;
-	unsigned int gpio_fw_wake;
+	int gpio_en;
+	int gpio_fw_wake;
 
 	struct mutex mutex;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/st21nfca/dep.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/st21nfca/dep.c
@@ -173,8 +173,10 @@
 		memcpy(atr_res->gbi, atr_req->gbi, gb_len);
 		r = nfc_set_remote_general_bytes(hdev->ndev, atr_res->gbi,
 						  gb_len);
-		if (r < 0)
+		if (r < 0) {
+			kfree_skb(skb);
 			return r;
+		}
 	}
 
 	info->dep_info.curr_nfc_dep_pni = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/nfc/st95hf/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/nfc/st95hf/core.c
@@ -966,7 +966,7 @@
 	rc = down_killable(&stcontext->exchange_lock);
 	if (rc) {
 		WARN(1, "Semaphore is not found up in st95hf_in_send_cmd\n");
-		return rc;
+		goto free_skb_resp;
 	}
 
 	rc = st95hf_spi_send(&stcontext->spicontext, skb->data,
--- linux-gkeop-5.4-5.4.0.orig/drivers/ntb/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/ntb/core.c
@@ -214,10 +214,8 @@
 	case NTB_TOPO_B2B_DSD:
 		return NTB_PORT_SEC_DSD;
 	default:
-		break;
+		return 0;
 	}
-
-	return -EINVAL;
 }
 EXPORT_SYMBOL(ntb_default_port_number);
 
@@ -240,10 +238,8 @@
 	case NTB_TOPO_B2B_DSD:
 		return NTB_PORT_PRI_USD;
 	default:
-		break;
+		return 0;
 	}
-
-	return -EINVAL;
 }
 EXPORT_SYMBOL(ntb_default_peer_port_number);
 
@@ -315,4 +311,3 @@
 	bus_unregister(&ntb_bus);
 }
 module_exit(ntb_driver_exit);
-
--- linux-gkeop-5.4-5.4.0.orig/drivers/ntb/hw/amd/ntb_hw_amd.c
+++ linux-gkeop-5.4-5.4.0/drivers/ntb/hw/amd/ntb_hw_amd.c
@@ -1036,6 +1036,7 @@
 
 err_dma_mask:
 	pci_clear_master(pdev);
+	pci_release_regions(pdev);
 err_pci_regions:
 	pci_disable_device(pdev);
 err_pci_enable:
--- linux-gkeop-5.4-5.4.0.orig/drivers/ntb/test/ntb_perf.c
+++ linux-gkeop-5.4-5.4.0/drivers/ntb/test/ntb_perf.c
@@ -158,6 +158,8 @@
 	/* NTB connection setup service */
 	struct work_struct	service;
 	unsigned long		sts;
+
+	struct completion init_comp;
 };
 #define to_peer_service(__work) \
 	container_of(__work, struct perf_peer, service)
@@ -546,6 +548,7 @@
 
 	/* Initialization is finally done */
 	set_bit(PERF_STS_DONE, &peer->sts);
+	complete_all(&peer->init_comp);
 
 	return 0;
 }
@@ -556,7 +559,7 @@
 		return;
 
 	(void)ntb_mw_clear_trans(peer->perf->ntb, peer->pidx, peer->gidx);
-	dma_free_coherent(&peer->perf->ntb->dev, peer->inbuf_size,
+	dma_free_coherent(&peer->perf->ntb->pdev->dev, peer->inbuf_size,
 			  peer->inbuf, peer->inbuf_xlat);
 	peer->inbuf = NULL;
 }
@@ -585,8 +588,9 @@
 
 	perf_free_inbuf(peer);
 
-	peer->inbuf = dma_alloc_coherent(&perf->ntb->dev, peer->inbuf_size,
-					 &peer->inbuf_xlat, GFP_KERNEL);
+	peer->inbuf = dma_alloc_coherent(&perf->ntb->pdev->dev,
+					 peer->inbuf_size, &peer->inbuf_xlat,
+					 GFP_KERNEL);
 	if (!peer->inbuf) {
 		dev_err(&perf->ntb->dev, "Failed to alloc inbuf of %pa\n",
 			&peer->inbuf_size);
@@ -636,6 +640,7 @@
 		perf_setup_outbuf(peer);
 
 	if (test_and_clear_bit(PERF_CMD_CLEAR, &peer->sts)) {
+		init_completion(&peer->init_comp);
 		clear_bit(PERF_STS_DONE, &peer->sts);
 		if (test_bit(0, &peer->perf->busy_flag) &&
 		    peer == peer->perf->test_peer) {
@@ -652,7 +657,7 @@
 {
 	u64 mask;
 
-	if (ntb_peer_mw_count(perf->ntb) < perf->pcnt + 1) {
+	if (ntb_peer_mw_count(perf->ntb) < perf->pcnt) {
 		dev_err(&perf->ntb->dev, "Not enough memory windows\n");
 		return -EINVAL;
 	}
@@ -1051,8 +1056,9 @@
 	struct perf_thread *pthr;
 	int tidx, ret;
 
-	if (!test_bit(PERF_STS_DONE, &peer->sts))
-		return -ENOLINK;
+	ret = wait_for_completion_interruptible(&peer->init_comp);
+	if (ret < 0)
+		return ret;
 
 	if (test_and_set_bit_lock(0, &perf->busy_flag))
 		return -EBUSY;
@@ -1418,10 +1424,21 @@
 			peer->gidx = pidx;
 		}
 		INIT_WORK(&peer->service, perf_service_work);
+		init_completion(&peer->init_comp);
 	}
 	if (perf->gidx == -1)
 		perf->gidx = pidx;
 
+	/*
+	 * Hardware with only two ports may not have unique port
+	 * numbers. In this case, the gidxs should all be zero.
+	 */
+	if (perf->pcnt == 1 &&  ntb_port_number(perf->ntb) == 0 &&
+	    ntb_peer_port_number(perf->ntb, 0) == 0) {
+		perf->gidx = 0;
+		perf->peers[0].gidx = 0;
+	}
+
 	for (pidx = 0; pidx < perf->pcnt; pidx++) {
 		ret = perf_setup_peer_mw(&perf->peers[pidx]);
 		if (ret)
@@ -1517,4 +1534,3 @@
 	destroy_workqueue(perf_wq);
 }
 module_exit(perf_exit);
-
--- linux-gkeop-5.4-5.4.0.orig/drivers/ntb/test/ntb_pingpong.c
+++ linux-gkeop-5.4-5.4.0/drivers/ntb/test/ntb_pingpong.c
@@ -121,15 +121,14 @@
 	link = ntb_link_is_up(pp->ntb, NULL, NULL);
 
 	/* Find next available peer */
-	if (link & pp->nmask) {
+	if (link & pp->nmask)
 		pidx = __ffs64(link & pp->nmask);
-		out_db = BIT_ULL(pidx + 1);
-	} else if (link & pp->pmask) {
+	else if (link & pp->pmask)
 		pidx = __ffs64(link & pp->pmask);
-		out_db = BIT_ULL(pidx);
-	} else {
+	else
 		return -ENODEV;
-	}
+
+	out_db = BIT_ULL(ntb_peer_port_number(pp->ntb, pidx));
 
 	spin_lock(&pp->lock);
 	pp->out_pidx = pidx;
@@ -303,7 +302,7 @@
 			break;
 	}
 
-	pp->in_db = BIT_ULL(pidx);
+	pp->in_db = BIT_ULL(lport);
 	pp->pmask = GENMASK_ULL(pidx, 0) >> 1;
 	pp->nmask = GENMASK_ULL(pcnt - 1, pidx);
 
@@ -435,4 +434,3 @@
 	debugfs_remove_recursive(pp_dbgfs_topdir);
 }
 module_exit(pp_exit);
-
--- linux-gkeop-5.4-5.4.0.orig/drivers/ntb/test/ntb_tool.c
+++ linux-gkeop-5.4-5.4.0/drivers/ntb/test/ntb_tool.c
@@ -504,7 +504,7 @@
 	buf[1] = '\n';
 	buf[2] = '\0';
 
-	return simple_read_from_buffer(ubuf, size, offp, buf, 3);
+	return simple_read_from_buffer(ubuf, size, offp, buf, 2);
 }
 
 static TOOL_FOPS_RDWR(tool_peer_link_fops,
@@ -590,7 +590,7 @@
 	inmw->size = min_t(resource_size_t, req_size, size);
 	inmw->size = round_up(inmw->size, addr_align);
 	inmw->size = round_up(inmw->size, size_align);
-	inmw->mm_base = dma_alloc_coherent(&tc->ntb->dev, inmw->size,
+	inmw->mm_base = dma_alloc_coherent(&tc->ntb->pdev->dev, inmw->size,
 					   &inmw->dma_base, GFP_KERNEL);
 	if (!inmw->mm_base)
 		return -ENOMEM;
@@ -612,7 +612,7 @@
 	return 0;
 
 err_free_dma:
-	dma_free_coherent(&tc->ntb->dev, inmw->size, inmw->mm_base,
+	dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, inmw->mm_base,
 			  inmw->dma_base);
 	inmw->mm_base = NULL;
 	inmw->dma_base = 0;
@@ -629,7 +629,7 @@
 
 	if (inmw->mm_base != NULL) {
 		ntb_mw_clear_trans(tc->ntb, pidx, widx);
-		dma_free_coherent(&tc->ntb->dev, inmw->size,
+		dma_free_coherent(&tc->ntb->pdev->dev, inmw->size,
 				  inmw->mm_base, inmw->dma_base);
 	}
 
@@ -1690,4 +1690,3 @@
 	debugfs_remove_recursive(tool_dbgfs_topdir);
 }
 module_exit(tool_exit);
-
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvdimm/btt.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvdimm/btt.c
@@ -1261,11 +1261,11 @@
 
 		ret = btt_data_read(arena, page, off, postmap, cur_len);
 		if (ret) {
-			int rc;
-
 			/* Media error - set the e_flag */
-			rc = btt_map_write(arena, premap, postmap, 0, 1,
-				NVDIMM_IO_ATOMIC);
+			if (btt_map_write(arena, premap, postmap, 0, 1, NVDIMM_IO_ATOMIC))
+				dev_warn_ratelimited(to_dev(arena),
+					"Error persistently tracking bad blocks at %#x\n",
+					premap);
 			goto out_rtt;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvdimm/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvdimm/bus.c
@@ -1010,8 +1010,10 @@
 			return -EFAULT;
 	}
 
-	if (!desc || (desc->out_num + desc->in_num == 0) ||
-			!test_bit(cmd, &cmd_mask))
+	if (!desc ||
+	    (desc->out_num + desc->in_num == 0) ||
+	    cmd > ND_CMD_CALL ||
+	    !test_bit(cmd, &cmd_mask))
 		return -ENOTTY;
 
 	/* fail write commands (when read-only) */
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvdimm/dimm_devs.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvdimm/dimm_devs.c
@@ -344,16 +344,16 @@
 }
 static DEVICE_ATTR_RO(state);
 
-static ssize_t available_slots_show(struct device *dev,
-		struct device_attribute *attr, char *buf)
+static ssize_t __available_slots_show(struct nvdimm_drvdata *ndd, char *buf)
 {
-	struct nvdimm_drvdata *ndd = dev_get_drvdata(dev);
+	struct device *dev;
 	ssize_t rc;
 	u32 nfree;
 
 	if (!ndd)
 		return -ENXIO;
 
+	dev = ndd->dev;
 	nvdimm_bus_lock(dev);
 	nfree = nd_label_nfree(ndd);
 	if (nfree - 1 > nfree) {
@@ -365,6 +365,18 @@
 	nvdimm_bus_unlock(dev);
 	return rc;
 }
+
+static ssize_t available_slots_show(struct device *dev,
+				    struct device_attribute *attr, char *buf)
+{
+	ssize_t rc;
+
+	nd_device_lock(dev);
+	rc = __available_slots_show(dev_get_drvdata(dev), buf);
+	nd_device_unlock(dev);
+
+	return rc;
+}
 static DEVICE_ATTR_RO(available_slots);
 
 __weak ssize_t security_show(struct device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvdimm/label.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvdimm/label.c
@@ -980,6 +980,15 @@
 		}
 	}
 
+	/* release slots associated with any invalidated UUIDs */
+	mutex_lock(&nd_mapping->lock);
+	list_for_each_entry_safe(label_ent, e, &nd_mapping->labels, list)
+		if (test_and_clear_bit(ND_LABEL_REAP, &label_ent->flags)) {
+			reap_victim(nd_mapping, label_ent);
+			list_move(&label_ent->list, &list);
+		}
+	mutex_unlock(&nd_mapping->lock);
+
 	/*
 	 * Find the resource associated with the first label in the set
 	 * per the v1.2 namespace specification.
@@ -999,8 +1008,10 @@
 		if (is_old_resource(res, old_res_list, old_num_resources))
 			continue; /* carry-over */
 		slot = nd_label_alloc_slot(ndd);
-		if (slot == UINT_MAX)
+		if (slot == UINT_MAX) {
+			rc = -ENXIO;
 			goto abort;
+		}
 		dev_dbg(ndd->dev, "allocated: %d\n", slot);
 
 		nd_label = to_label(ndd, slot);
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvdimm/security.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvdimm/security.c
@@ -450,14 +450,19 @@
 	else
 		dev_dbg(&nvdimm->dev, "overwrite completed\n");
 
-	if (nvdimm->sec.overwrite_state)
-		sysfs_notify_dirent(nvdimm->sec.overwrite_state);
+	/*
+	 * Mark the overwrite work done and update dimm security flags,
+	 * then send a sysfs event notification to wake up userspace
+	 * poll threads to picked up the changed state.
+	 */
 	nvdimm->sec.overwrite_tmo = 0;
 	clear_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags);
 	clear_bit(NDD_WORK_PENDING, &nvdimm->flags);
-	put_device(&nvdimm->dev);
 	nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
-	nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER);
+	nvdimm->sec.ext_flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER);
+	if (nvdimm->sec.overwrite_state)
+		sysfs_notify_dirent(nvdimm->sec.overwrite_state);
+	put_device(&nvdimm->dev);
 }
 
 void nvdimm_security_overwrite_query(struct work_struct *work)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/Kconfig
@@ -64,6 +64,7 @@
 	depends on INET
 	depends on BLK_DEV_NVME
 	select NVME_FABRICS
+	select CRYPTO
 	select CRYPTO_CRC32C
 	help
 	  This provides support for the NVMe over Fabrics protocol using
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/core.c
@@ -6,6 +6,7 @@
 
 #include <linux/blkdev.h>
 #include <linux/blk-mq.h>
+#include <linux/compat.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/hdreg.h>
@@ -66,8 +67,8 @@
  * nvme_reset_wq - hosts nvme reset works
  * nvme_delete_wq - hosts nvme delete works
  *
- * nvme_wq will host works such are scan, aen handling, fw activation,
- * keep-alive error recovery, periodic reconnects etc. nvme_reset_wq
+ * nvme_wq will host works such as scan, aen handling, fw activation,
+ * keep-alive, periodic reconnects etc. nvme_reset_wq
  * runs reset works which also flush works hosted on nvme_wq for
  * serialization purposes. nvme_delete_wq host controller deletion
  * works which flush reset works for serialization.
@@ -287,11 +288,8 @@
 		nvme_req(req)->ctrl->comp_seen = true;
 
 	if (unlikely(status != BLK_STS_OK && nvme_req_needs_retry(req))) {
-		if ((req->cmd_flags & REQ_NVME_MPATH) &&
-		    blk_path_error(status)) {
-			nvme_failover_req(req);
+		if ((req->cmd_flags & REQ_NVME_MPATH) && nvme_failover_req(req))
 			return;
-		}
 
 		if (!blk_queue_dying(req->q)) {
 			nvme_retry_req(req);
@@ -313,12 +311,32 @@
 	if (blk_mq_request_completed(req))
 		return true;
 
-	nvme_req(req)->status = NVME_SC_HOST_PATH_ERROR;
+	nvme_req(req)->status = NVME_SC_HOST_ABORTED_CMD;
 	blk_mq_complete_request(req);
 	return true;
 }
 EXPORT_SYMBOL_GPL(nvme_cancel_request);
 
+void nvme_cancel_tagset(struct nvme_ctrl *ctrl)
+{
+	if (ctrl->tagset) {
+		blk_mq_tagset_busy_iter(ctrl->tagset,
+				nvme_cancel_request, ctrl);
+		blk_mq_tagset_wait_completed_request(ctrl->tagset);
+	}
+}
+EXPORT_SYMBOL_GPL(nvme_cancel_tagset);
+
+void nvme_cancel_admin_tagset(struct nvme_ctrl *ctrl)
+{
+	if (ctrl->admin_tagset) {
+		blk_mq_tagset_busy_iter(ctrl->admin_tagset,
+				nvme_cancel_request, ctrl);
+		blk_mq_tagset_wait_completed_request(ctrl->admin_tagset);
+	}
+}
+EXPORT_SYMBOL_GPL(nvme_cancel_admin_tagset);
+
 bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
 		enum nvme_ctrl_state new_state)
 {
@@ -437,7 +455,6 @@
 
 	nvme_mpath_remove_disk(head);
 	ida_simple_remove(&head->subsys->ns_ida, head->instance);
-	list_del_init(&head->entry);
 	cleanup_srcu_struct(&head->srcu);
 	nvme_put_subsystem(head->subsys);
 	kfree(head);
@@ -611,8 +628,14 @@
 	struct nvme_dsm_range *range;
 	struct bio *bio;
 
-	range = kmalloc_array(segments, sizeof(*range),
-				GFP_ATOMIC | __GFP_NOWARN);
+	/*
+	 * Some devices do not consider the DSM 'Number of Ranges' field when
+	 * determining how much data to DMA. Always allocate memory for maximum
+	 * number of segments to prevent device reading beyond end of buffer.
+	 */
+	static const size_t alloc_size = sizeof(*range) * NVME_DSM_MAX_RANGES;
+
+	range = kzalloc(alloc_size, GFP_ATOMIC | __GFP_NOWARN);
 	if (!range) {
 		/*
 		 * If we fail allocation our range, fallback to the controller
@@ -626,7 +649,7 @@
 	}
 
 	__rq_for_each_bio(bio, req) {
-		u64 slba = nvme_block_nr(ns, bio->bi_iter.bi_sector);
+		u64 slba = nvme_sect_to_lba(ns, bio->bi_iter.bi_sector);
 		u32 nlb = bio->bi_iter.bi_size >> ns->lba_shift;
 
 		if (n < segments) {
@@ -652,7 +675,7 @@
 
 	req->special_vec.bv_page = virt_to_page(range);
 	req->special_vec.bv_offset = offset_in_page(range);
-	req->special_vec.bv_len = sizeof(*range) * segments;
+	req->special_vec.bv_len = alloc_size;
 	req->rq_flags |= RQF_SPECIAL_PAYLOAD;
 
 	return BLK_STS_OK;
@@ -667,7 +690,7 @@
 	cmnd->write_zeroes.opcode = nvme_cmd_write_zeroes;
 	cmnd->write_zeroes.nsid = cpu_to_le32(ns->head->ns_id);
 	cmnd->write_zeroes.slba =
-		cpu_to_le64(nvme_block_nr(ns, blk_rq_pos(req)));
+		cpu_to_le64(nvme_sect_to_lba(ns, blk_rq_pos(req)));
 	cmnd->write_zeroes.length =
 		cpu_to_le16((blk_rq_bytes(req) >> ns->lba_shift) - 1);
 	cmnd->write_zeroes.control = 0;
@@ -691,7 +714,7 @@
 
 	cmnd->rw.opcode = (rq_data_dir(req) ? nvme_cmd_write : nvme_cmd_read);
 	cmnd->rw.nsid = cpu_to_le32(ns->head->ns_id);
-	cmnd->rw.slba = cpu_to_le64(nvme_block_nr(ns, blk_rq_pos(req)));
+	cmnd->rw.slba = cpu_to_le64(nvme_sect_to_lba(ns, blk_rq_pos(req)));
 	cmnd->rw.length = cpu_to_le16((blk_rq_bytes(req) >> ns->lba_shift) - 1);
 
 	if (req_op(req) == REQ_OP_WRITE && ctrl->nr_streams)
@@ -966,7 +989,7 @@
 		startka = true;
 	spin_unlock_irqrestore(&ctrl->lock, flags);
 	if (startka)
-		schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
+		queue_delayed_work(nvme_wq, &ctrl->ka_work, ctrl->kato * HZ);
 }
 
 static int nvme_keep_alive(struct nvme_ctrl *ctrl)
@@ -996,7 +1019,7 @@
 		dev_dbg(ctrl->device,
 			"reschedule traffic based keep-alive timer\n");
 		ctrl->comp_seen = false;
-		schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
+		queue_delayed_work(nvme_wq, &ctrl->ka_work, ctrl->kato * HZ);
 		return;
 	}
 
@@ -1013,7 +1036,7 @@
 	if (unlikely(ctrl->kato == 0))
 		return;
 
-	schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
+	queue_delayed_work(nvme_wq, &ctrl->ka_work, ctrl->kato * HZ);
 }
 
 void nvme_stop_keep_alive(struct nvme_ctrl *ctrl)
@@ -1025,6 +1048,19 @@
 }
 EXPORT_SYMBOL_GPL(nvme_stop_keep_alive);
 
+/*
+ * In NVMe 1.0 the CNS field was just a binary controller or namespace
+ * flag, thus sending any new CNS opcodes has a big chance of not working.
+ * Qemu unfortunately had that bug after reporting a 1.1 version compliance
+ * (but not for any later version).
+ */
+static bool nvme_ctrl_limited_cns(struct nvme_ctrl *ctrl)
+{
+	if (ctrl->quirks & NVME_QUIRK_IDENTIFY_CNS)
+		return ctrl->vs < NVME_VS(1, 2, 0);
+	return ctrl->vs < NVME_VS(1, 1, 0);
+}
+
 static int nvme_identify_ctrl(struct nvme_ctrl *dev, struct nvme_id_ctrl **id)
 {
 	struct nvme_command c = { };
@@ -1054,6 +1090,9 @@
 	int pos;
 	int len;
 
+	if (ctrl->quirks & NVME_QUIRK_NO_NS_DESC_LIST)
+		return 0;
+
 	c.identify.opcode = nvme_admin_identify;
 	c.identify.nsid = cpu_to_le32(nsid);
 	c.identify.cns = NVME_ID_CNS_NS_DESC_LIST;
@@ -1064,8 +1103,11 @@
 
 	status = nvme_submit_sync_cmd(ctrl->admin_q, &c, data,
 				      NVME_IDENTIFY_DATA_SIZE);
-	if (status)
+	if (status) {
+		dev_warn(ctrl->device,
+			"Identify Descriptors failed (%d)\n", status);
 		goto free_data;
+	}
 
 	for (pos = 0; pos < NVME_IDENTIFY_DATA_SIZE; pos += len) {
 		struct nvme_ns_id_desc *cur = data + pos;
@@ -1155,8 +1197,8 @@
 static int nvme_features(struct nvme_ctrl *dev, u8 op, unsigned int fid,
 		unsigned int dword11, void *buffer, size_t buflen, u32 *result)
 {
+	union nvme_result res = { 0 };
 	struct nvme_command c;
-	union nvme_result res;
 	int ret;
 
 	memset(&c, 0, sizeof(c));
@@ -1238,6 +1280,18 @@
 	queue_work(nvme_wq, &ctrl->async_event_work);
 }
 
+/*
+ * Convert integer values from ioctl structures to user pointers, silently
+ * ignoring the upper bits in the compat case to match behaviour of 32-bit
+ * kernels.
+ */
+static void __user *nvme_to_user_ptr(uintptr_t ptrval)
+{
+	if (in_compat_syscall())
+		ptrval = (compat_uptr_t)ptrval;
+	return (void __user *)ptrval;
+}
+
 static int nvme_submit_io(struct nvme_ns *ns, struct nvme_user_io __user *uio)
 {
 	struct nvme_user_io io;
@@ -1260,8 +1314,21 @@
 	}
 
 	length = (io.nblocks + 1) << ns->lba_shift;
-	meta_len = (io.nblocks + 1) * ns->ms;
-	metadata = (void __user *)(uintptr_t)io.metadata;
+
+	if ((io.control & NVME_RW_PRINFO_PRACT) &&
+	    ns->ms == sizeof(struct t10_pi_tuple)) {
+		/*
+		 * Protection information is stripped/inserted by the
+		 * controller.
+		 */
+		if (nvme_to_user_ptr(io.metadata))
+			return -EINVAL;
+		meta_len = 0;
+		metadata = NULL;
+	} else {
+		meta_len = (io.nblocks + 1) * ns->ms;
+		metadata = nvme_to_user_ptr(io.metadata);
+	}
 
 	if (ns->ext) {
 		length += meta_len;
@@ -1284,7 +1351,7 @@
 	c.rw.appmask = cpu_to_le16(io.appmask);
 
 	return nvme_submit_user_cmd(ns->queue, &c,
-			(void __user *)(uintptr_t)io.addr, length,
+			nvme_to_user_ptr(io.addr), length,
 			metadata, meta_len, lower_32_bits(io.slba), NULL, 0);
 }
 
@@ -1404,9 +1471,9 @@
 
 	effects = nvme_passthru_start(ctrl, ns, cmd.opcode);
 	status = nvme_submit_user_cmd(ns ? ns->queue : ctrl->admin_q, &c,
-			(void __user *)(uintptr_t)cmd.addr, cmd.data_len,
-			(void __user *)(uintptr_t)cmd.metadata,
-			cmd.metadata_len, 0, &result, timeout);
+			nvme_to_user_ptr(cmd.addr), cmd.data_len,
+			nvme_to_user_ptr(cmd.metadata), cmd.metadata_len,
+			0, &result, timeout);
 	nvme_passthru_end(ctrl, effects);
 
 	if (status >= 0) {
@@ -1451,8 +1518,8 @@
 
 	effects = nvme_passthru_start(ctrl, ns, cmd.opcode);
 	status = nvme_submit_user_cmd(ns ? ns->queue : ctrl->admin_q, &c,
-			(void __user *)(uintptr_t)cmd.addr, cmd.data_len,
-			(void __user *)(uintptr_t)cmd.metadata, cmd.metadata_len,
+			nvme_to_user_ptr(cmd.addr), cmd.data_len,
+			nvme_to_user_ptr(cmd.metadata), cmd.metadata_len,
 			0, &cmd.result, timeout);
 	nvme_passthru_end(ctrl, effects);
 
@@ -1645,12 +1712,6 @@
 }
 #endif /* CONFIG_BLK_DEV_INTEGRITY */
 
-static void nvme_set_chunk_size(struct nvme_ns *ns)
-{
-	u32 chunk_size = (((u32)ns->noiob) << (ns->lba_shift - 9));
-	blk_queue_chunk_sectors(ns->queue, rounddown_pow_of_two(chunk_size));
-}
-
 static void nvme_config_discard(struct gendisk *disk, struct nvme_ns *ns)
 {
 	struct nvme_ctrl *ctrl = ns->ctrl;
@@ -1684,8 +1745,7 @@
 
 static void nvme_config_write_zeroes(struct gendisk *disk, struct nvme_ns *ns)
 {
-	u32 max_sectors;
-	unsigned short bs = 1 << ns->lba_shift;
+	u64 max_blocks;
 
 	if (!(ns->ctrl->oncs & NVME_CTRL_ONCS_WRITE_ZEROES) ||
 	    (ns->ctrl->quirks & NVME_QUIRK_DISABLE_WRITE_ZEROES))
@@ -1701,34 +1761,26 @@
 	 * nvme_init_identify() if available.
 	 */
 	if (ns->ctrl->max_hw_sectors == UINT_MAX)
-		max_sectors = ((u32)(USHRT_MAX + 1) * bs) >> 9;
+		max_blocks = (u64)USHRT_MAX + 1;
 	else
-		max_sectors = ((u32)(ns->ctrl->max_hw_sectors + 1) * bs) >> 9;
+		max_blocks = ns->ctrl->max_hw_sectors + 1;
 
-	blk_queue_max_write_zeroes_sectors(disk->queue, max_sectors);
+	blk_queue_max_write_zeroes_sectors(disk->queue,
+					   nvme_lba_to_sect(ns, max_blocks));
 }
 
 static int nvme_report_ns_ids(struct nvme_ctrl *ctrl, unsigned int nsid,
 		struct nvme_id_ns *id, struct nvme_ns_ids *ids)
 {
-	int ret = 0;
-
 	memset(ids, 0, sizeof(*ids));
 
 	if (ctrl->vs >= NVME_VS(1, 1, 0))
 		memcpy(ids->eui64, id->eui64, sizeof(id->eui64));
 	if (ctrl->vs >= NVME_VS(1, 2, 0))
 		memcpy(ids->nguid, id->nguid, sizeof(id->nguid));
-	if (ctrl->vs >= NVME_VS(1, 3, 0)) {
-		 /* Don't treat error as fatal we potentially
-		  * already have a NGUID or EUI-64
-		  */
-		ret = nvme_identify_ns_descs(ctrl, nsid, ids);
-		if (ret)
-			dev_warn(ctrl->device,
-				 "Identify Descriptors failed (%d)\n", ret);
-	}
-	return ret;
+	if (ctrl->vs >= NVME_VS(1, 3, 0))
+		return nvme_identify_ns_descs(ctrl, nsid, ids);
+	return 0;
 }
 
 static bool nvme_ns_ids_valid(struct nvme_ns_ids *ids)
@@ -1748,7 +1800,7 @@
 static void nvme_update_disk_info(struct gendisk *disk,
 		struct nvme_ns *ns, struct nvme_id_ns *id)
 {
-	sector_t capacity = le64_to_cpu(id->nsze) << (ns->lba_shift - 9);
+	sector_t capacity = nvme_lba_to_sect(ns, le64_to_cpu(id->nsze));
 	unsigned short bs = 1 << ns->lba_shift;
 	u32 atomic_bs, phys_bs, io_opt;
 
@@ -1814,6 +1866,7 @@
 static void __nvme_revalidate_disk(struct gendisk *disk, struct nvme_id_ns *id)
 {
 	struct nvme_ns *ns = disk->private_data;
+	u32 iob;
 
 	/*
 	 * If identify namespace failed, use default 512 byte block size so
@@ -1822,7 +1875,13 @@
 	ns->lba_shift = id->lbaf[id->flbas & NVME_NS_FLBAS_LBA_MASK].ds;
 	if (ns->lba_shift == 0)
 		ns->lba_shift = 9;
-	ns->noiob = le16_to_cpu(id->noiob);
+
+	if ((ns->ctrl->quirks & NVME_QUIRK_STRIPE_SIZE) &&
+	    is_power_of_2(ns->ctrl->max_hw_sectors))
+		iob = ns->ctrl->max_hw_sectors;
+	else
+		iob = nvme_lba_to_sect(ns, le16_to_cpu(id->noiob));
+
 	ns->ms = le16_to_cpu(id->lbaf[id->flbas & NVME_NS_FLBAS_LBA_MASK].ms);
 	ns->ext = ns->ms && (id->flbas & NVME_NS_FLBAS_META_EXT);
 	/* the PI implementation requires metadata equal t10 pi tuple size */
@@ -1831,14 +1890,14 @@
 	else
 		ns->pi_type = 0;
 
-	if (ns->noiob)
-		nvme_set_chunk_size(ns);
+	if (iob)
+		blk_queue_chunk_sectors(ns->queue, rounddown_pow_of_two(iob));
 	nvme_update_disk_info(disk, ns, id);
 #ifdef CONFIG_NVME_MULTIPATH
 	if (ns->head->disk) {
 		nvme_update_disk_info(ns->head->disk, ns, id);
 		blk_queue_stack_limits(ns->head->disk->queue, ns->queue);
-		revalidate_disk(ns->head->disk);
+		nvme_mpath_update_disk_size(ns->head->disk);
 	}
 #endif
 }
@@ -2183,9 +2242,6 @@
 		blk_queue_max_hw_sectors(q, ctrl->max_hw_sectors);
 		blk_queue_max_segments(q, min_t(u32, max_segments, USHRT_MAX));
 	}
-	if ((ctrl->quirks & NVME_QUIRK_STRIPE_SIZE) &&
-	    is_power_of_2(ctrl->max_hw_sectors))
-		blk_queue_chunk_sectors(q, ctrl->max_hw_sectors);
 	blk_queue_virt_boundary(q, ctrl->page_size - 1);
 	if (ctrl->vwc & NVME_CTRL_VWC_PRESENT)
 		vwc = true;
@@ -2404,16 +2460,6 @@
 		.vid = 0x14a4,
 		.fr = "22301111",
 		.quirks = NVME_QUIRK_SIMPLE_SUSPEND,
-	},
-	{
-		/*
-		 * This Kingston E8FK11.T firmware version has no interrupt
-		 * after resume with actions related to suspend to idle
-		 * https://bugzilla.kernel.org/show_bug.cgi?id=204887
-		 */
-		.vid = 0x2646,
-		.fr = "E8FK11.T",
-		.quirks = NVME_QUIRK_SIMPLE_SUSPEND,
 	}
 };
 
@@ -2917,10 +2963,26 @@
 		return -EWOULDBLOCK;
 	}
 
+	nvme_get_ctrl(ctrl);
+	if (!try_module_get(ctrl->ops->module)) {
+		nvme_put_ctrl(ctrl);
+		return -EINVAL;
+	}
+
 	file->private_data = ctrl;
 	return 0;
 }
 
+static int nvme_dev_release(struct inode *inode, struct file *file)
+{
+	struct nvme_ctrl *ctrl =
+		container_of(inode->i_cdev, struct nvme_ctrl, cdev);
+
+	module_put(ctrl->ops->module);
+	nvme_put_ctrl(ctrl);
+	return 0;
+}
+
 static int nvme_dev_user_cmd(struct nvme_ctrl *ctrl, void __user *argp)
 {
 	struct nvme_ns *ns;
@@ -2983,6 +3045,7 @@
 static const struct file_operations nvme_dev_fops = {
 	.owner		= THIS_MODULE,
 	.open		= nvme_dev_open,
+	.release	= nvme_dev_release,
 	.unlocked_ioctl	= nvme_dev_ioctl,
 	.compat_ioctl	= nvme_dev_ioctl,
 };
@@ -3181,6 +3244,10 @@
 {
 	struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
 
+	/* Can't delete non-created controllers */
+	if (!ctrl->created)
+		return -EBUSY;
+
 	if (device_remove_file_self(dev, attr))
 		nvme_delete_ctrl_sync(ctrl);
 	return count;
@@ -3306,7 +3373,6 @@
 
 	list_for_each_entry(h, &subsys->nsheads, entry) {
 		if (nvme_ns_ids_valid(&new->ids) &&
-		    !list_empty(&h->list) &&
 		    nvme_ns_ids_equal(&new->ids, &h->ids))
 			return -EINVAL;
 	}
@@ -3401,6 +3467,7 @@
 				"IDs don't match for shared namespace %d\n",
 					nsid);
 			ret = -EINVAL;
+			nvme_put_ns_head(head);
 			goto out_unlock;
 		}
 	}
@@ -3555,10 +3622,14 @@
 
 	return 0;
  out_put_disk:
+	/* prevent double queue cleanup */
+	ns->disk->queue = NULL;
 	put_disk(ns->disk);
  out_unlink_ns:
 	mutex_lock(&ctrl->subsys->lock);
 	list_del_rcu(&ns->siblings);
+	if (list_empty(&ns->head->list))
+		list_del_init(&ns->head->entry);
 	mutex_unlock(&ctrl->subsys->lock);
 	nvme_put_ns_head(ns->head);
  out_free_id:
@@ -3581,7 +3652,10 @@
 
 	mutex_lock(&ns->ctrl->subsys->lock);
 	list_del_rcu(&ns->siblings);
+	if (list_empty(&ns->head->list))
+		list_del_init(&ns->head->entry);
 	mutex_unlock(&ns->ctrl->subsys->lock);
+
 	synchronize_rcu(); /* guarantee not available in head->list */
 	nvme_mpath_clear_current_path(ns);
 	synchronize_srcu(&ns->head->srcu); /* wait for concurrent submissions */
@@ -3729,8 +3803,7 @@
 
 	mutex_lock(&ctrl->scan_lock);
 	nn = le32_to_cpu(id->nn);
-	if (ctrl->vs >= NVME_VS(1, 1, 0) &&
-	    !(ctrl->quirks & NVME_QUIRK_IDENTIFY_CNS)) {
+	if (!nvme_ctrl_limited_cns(ctrl)) {
 		if (!nvme_scan_ns_list(ctrl, nn))
 			goto out_free_id;
 	}
@@ -3855,7 +3928,7 @@
 	if (!log)
 		return;
 
-	if (nvme_get_log(ctrl, NVME_NSID_ALL, 0, NVME_LOG_FW_SLOT, log,
+	if (nvme_get_log(ctrl, NVME_NSID_ALL, NVME_LOG_FW_SLOT, 0, log,
 			sizeof(*log), 0))
 		dev_warn(ctrl->device, "Get FW SLOT INFO log error\n");
 	kfree(log);
@@ -3975,6 +4048,7 @@
 		nvme_queue_scan(ctrl);
 		nvme_start_queues(ctrl);
 	}
+	ctrl->created = true;
 }
 EXPORT_SYMBOL_GPL(nvme_start_ctrl);
 
@@ -3992,7 +4066,7 @@
 		container_of(dev, struct nvme_ctrl, ctrl_device);
 	struct nvme_subsystem *subsys = ctrl->subsys;
 
-	if (subsys && ctrl->instance != subsys->instance)
+	if (!subsys || ctrl->instance != subsys->instance)
 		ida_simple_remove(&nvme_instance_ida, ctrl->instance);
 
 	kfree(ctrl->effects);
@@ -4065,6 +4139,7 @@
 	if (ret)
 		goto out_release_instance;
 
+	nvme_get_ctrl(ctrl);
 	cdev_init(&ctrl->cdev, &nvme_dev_fops);
 	ctrl->cdev.owner = ops->module;
 	ret = cdev_device_add(&ctrl->cdev, ctrl->device);
@@ -4083,6 +4158,7 @@
 
 	return 0;
 out_free_name:
+	nvme_put_ctrl(ctrl);
 	kfree_const(ctrl->device->kobj.name);
 out_release_instance:
 	ida_simple_remove(&nvme_instance_ida, ctrl->instance);
@@ -4128,7 +4204,7 @@
 }
 EXPORT_SYMBOL_GPL(nvme_unfreeze);
 
-void nvme_wait_freeze_timeout(struct nvme_ctrl *ctrl, long timeout)
+int nvme_wait_freeze_timeout(struct nvme_ctrl *ctrl, long timeout)
 {
 	struct nvme_ns *ns;
 
@@ -4139,6 +4215,7 @@
 			break;
 	}
 	up_read(&ctrl->namespaces_rwsem);
+	return timeout;
 }
 EXPORT_SYMBOL_GPL(nvme_wait_freeze_timeout);
 
@@ -4186,8 +4263,7 @@
 }
 EXPORT_SYMBOL_GPL(nvme_start_queues);
 
-
-void nvme_sync_queues(struct nvme_ctrl *ctrl)
+void nvme_sync_io_queues(struct nvme_ctrl *ctrl)
 {
 	struct nvme_ns *ns;
 
@@ -4195,7 +4271,12 @@
 	list_for_each_entry(ns, &ctrl->namespaces, list)
 		blk_sync_queue(ns->queue);
 	up_read(&ctrl->namespaces_rwsem);
+}
+EXPORT_SYMBOL_GPL(nvme_sync_io_queues);
 
+void nvme_sync_queues(struct nvme_ctrl *ctrl)
+{
+	nvme_sync_io_queues(ctrl);
 	if (ctrl->admin_q)
 		blk_sync_queue(ctrl->admin_q);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/fabrics.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/fabrics.c
@@ -565,10 +565,14 @@
 	struct nvme_request *req = nvme_req(rq);
 
 	/*
-	 * If we are in some state of setup or teardown only allow
-	 * internally generated commands.
+	 * currently we have a problem sending passthru commands
+	 * on the admin_q if the controller is not LIVE because we can't
+	 * make sure that they are going out after the admin connect,
+	 * controller enable and/or other commands in the initialization
+	 * sequence. until the controller will be LIVE, fail with
+	 * BLK_STS_RESOURCE so that they will be rescheduled.
 	 */
-	if (!blk_rq_is_passthrough(rq) || (req->flags & NVME_REQ_USERCMD))
+	if (rq->q == ctrl->admin_q && (req->flags & NVME_REQ_USERCMD))
 		return false;
 
 	/*
@@ -576,9 +580,8 @@
 	 * which is require to set the queue live in the appropinquate states.
 	 */
 	switch (ctrl->state) {
-	case NVME_CTRL_NEW:
 	case NVME_CTRL_CONNECTING:
-		if (nvme_is_fabrics(req->cmd) &&
+		if (blk_rq_is_passthrough(rq) && nvme_is_fabrics(req->cmd) &&
 		    req->cmd->fabrics.fctype == nvme_fabrics_type_connect)
 			return true;
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/fc.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/fc.c
@@ -1224,7 +1224,7 @@
 	lsreq->rqstlen = sizeof(*assoc_rqst);
 	lsreq->rspaddr = assoc_acc;
 	lsreq->rsplen = sizeof(*assoc_acc);
-	lsreq->timeout = NVME_FC_CONNECT_TIMEOUT_SEC;
+	lsreq->timeout = NVME_FC_LS_TIMEOUT_SEC;
 
 	ret = nvme_fc_send_ls_req(ctrl->rport, lsop);
 	if (ret)
@@ -1264,7 +1264,7 @@
 	if (fcret) {
 		ret = -EBADF;
 		dev_err(ctrl->dev,
-			"q %d connect failed: %s\n",
+			"q %d Create Association LS failed: %s\n",
 			queue->qnum, validation_errors[fcret]);
 	} else {
 		ctrl->association_id =
@@ -1332,7 +1332,7 @@
 	lsreq->rqstlen = sizeof(*conn_rqst);
 	lsreq->rspaddr = conn_acc;
 	lsreq->rsplen = sizeof(*conn_acc);
-	lsreq->timeout = NVME_FC_CONNECT_TIMEOUT_SEC;
+	lsreq->timeout = NVME_FC_LS_TIMEOUT_SEC;
 
 	ret = nvme_fc_send_ls_req(ctrl->rport, lsop);
 	if (ret)
@@ -1363,7 +1363,7 @@
 	if (fcret) {
 		ret = -EBADF;
 		dev_err(ctrl->dev,
-			"q %d connect failed: %s\n",
+			"q %d Create I/O Connection LS failed: %s\n",
 			queue->qnum, validation_errors[fcret]);
 	} else {
 		queue->connection_id =
@@ -1376,7 +1376,7 @@
 out_no_memory:
 	if (ret)
 		dev_err(ctrl->dev,
-			"queue %d connect command failed (%d).\n",
+			"queue %d connect I/O queue failed (%d).\n",
 			queue->qnum, ret);
 	return ret;
 }
@@ -1413,8 +1413,8 @@
 static void
 nvme_fc_xmt_disconnect_assoc(struct nvme_fc_ctrl *ctrl)
 {
-	struct fcnvme_ls_disconnect_rqst *discon_rqst;
-	struct fcnvme_ls_disconnect_acc *discon_acc;
+	struct fcnvme_ls_disconnect_assoc_rqst *discon_rqst;
+	struct fcnvme_ls_disconnect_assoc_acc *discon_acc;
 	struct nvmefc_ls_req_op *lsop;
 	struct nvmefc_ls_req *lsreq;
 	int ret;
@@ -1430,11 +1430,11 @@
 	lsreq = &lsop->ls_req;
 
 	lsreq->private = (void *)&lsop[1];
-	discon_rqst = (struct fcnvme_ls_disconnect_rqst *)
+	discon_rqst = (struct fcnvme_ls_disconnect_assoc_rqst *)
 			(lsreq->private + ctrl->lport->ops->lsrqst_priv_sz);
-	discon_acc = (struct fcnvme_ls_disconnect_acc *)&discon_rqst[1];
+	discon_acc = (struct fcnvme_ls_disconnect_assoc_acc *)&discon_rqst[1];
 
-	discon_rqst->w0.ls_cmd = FCNVME_LS_DISCONNECT;
+	discon_rqst->w0.ls_cmd = FCNVME_LS_DISCONNECT_ASSOC;
 	discon_rqst->desc_list_len = cpu_to_be32(
 				sizeof(struct fcnvme_lsdesc_assoc_id) +
 				sizeof(struct fcnvme_lsdesc_disconn_cmd));
@@ -1451,22 +1451,17 @@
 	discon_rqst->discon_cmd.desc_len =
 			fcnvme_lsdesc_len(
 				sizeof(struct fcnvme_lsdesc_disconn_cmd));
-	discon_rqst->discon_cmd.scope = FCNVME_DISCONN_ASSOCIATION;
-	discon_rqst->discon_cmd.id = cpu_to_be64(ctrl->association_id);
 
 	lsreq->rqstaddr = discon_rqst;
 	lsreq->rqstlen = sizeof(*discon_rqst);
 	lsreq->rspaddr = discon_acc;
 	lsreq->rsplen = sizeof(*discon_acc);
-	lsreq->timeout = NVME_FC_CONNECT_TIMEOUT_SEC;
+	lsreq->timeout = NVME_FC_LS_TIMEOUT_SEC;
 
 	ret = nvme_fc_send_ls_req_async(ctrl->rport, lsop,
 				nvme_fc_disconnect_assoc_done);
 	if (ret)
 		kfree(lsop);
-
-	/* only meaningful part to terminating the association */
-	ctrl->association_id = 0;
 }
 
 
@@ -1662,7 +1657,7 @@
 					(freq->rcv_rsplen / 4) ||
 			     be32_to_cpu(op->rsp_iu.xfrd_len) !=
 					freq->transferred_length ||
-			     op->rsp_iu.status_code ||
+			     op->rsp_iu.ersp_result ||
 			     sqe->common.command_id != cqe->command_id)) {
 			status = cpu_to_le16(NVME_SC_HOST_PATH_ERROR << 1);
 			dev_info(ctrl->ctrl.device,
@@ -1672,7 +1667,7 @@
 				ctrl->cnum, be16_to_cpu(op->rsp_iu.iu_len),
 				be32_to_cpu(op->rsp_iu.xfrd_len),
 				freq->transferred_length,
-				op->rsp_iu.status_code,
+				op->rsp_iu.ersp_result,
 				sqe->common.command_id,
 				cqe->command_id);
 			goto done;
@@ -1731,16 +1726,21 @@
 	op->rq = rq;
 	op->rqno = rqno;
 
-	cmdiu->scsi_id = NVME_CMD_SCSI_ID;
+	cmdiu->format_id = NVME_CMD_FORMAT_ID;
 	cmdiu->fc_id = NVME_CMD_FC_ID;
 	cmdiu->iu_len = cpu_to_be16(sizeof(*cmdiu) / sizeof(u32));
+	if (queue->qnum)
+		cmdiu->rsv_cat = fccmnd_set_cat_css(0,
+					(NVME_CC_CSS_NVM >> NVME_CC_CSS_SHIFT));
+	else
+		cmdiu->rsv_cat = fccmnd_set_cat_admin(0);
 
 	op->fcp_req.cmddma = fc_dma_map_single(ctrl->lport->dev,
 				&op->cmd_iu, sizeof(op->cmd_iu), DMA_TO_DEVICE);
 	if (fc_dma_mapping_error(ctrl->lport->dev, op->fcp_req.cmddma)) {
 		dev_err(ctrl->dev,
 			"FCP Op failed - cmdiu dma mapping failed.\n");
-		ret = EFAULT;
+		ret = -EFAULT;
 		goto out_on_error;
 	}
 
@@ -1750,7 +1750,7 @@
 	if (fc_dma_mapping_error(ctrl->lport->dev, op->fcp_req.rspdma)) {
 		dev_err(ctrl->dev,
 			"FCP Op failed - rspiu dma mapping failed.\n");
-		ret = EFAULT;
+		ret = -EFAULT;
 	}
 
 	atomic_set(&op->state, FCPOP_STATE_IDLE);
@@ -1820,6 +1820,7 @@
 	struct nvme_fc_fcp_op *aen_op;
 	int i;
 
+	cancel_work_sync(&ctrl->ctrl.async_event_work);
 	aen_op = ctrl->aen_ops;
 	for (i = 0; i < NVME_NR_AEN_COMMANDS; i++, aen_op++) {
 		if (!aen_op->fcp_req.private)
@@ -2695,7 +2696,7 @@
 		/* warn if maxcmd is lower than queue_size */
 		dev_warn(ctrl->ctrl.device,
 			"queue_size %zu > ctrl maxcmd %u, reducing "
-			"to queue_size\n",
+			"to maxcmd\n",
 			opts->queue_size, ctrl->ctrl.maxcmd);
 		opts->queue_size = ctrl->ctrl.maxcmd;
 	}
@@ -2703,7 +2704,8 @@
 	if (opts->queue_size > ctrl->ctrl.sqsize + 1) {
 		/* warn if sqsize is lower than queue_size */
 		dev_warn(ctrl->ctrl.device,
-			"queue_size %zu > ctrl sqsize %u, clamping down\n",
+			"queue_size %zu > ctrl sqsize %u, reducing "
+			"to sqsize\n",
 			opts->queue_size, ctrl->ctrl.sqsize + 1);
 		opts->queue_size = ctrl->ctrl.sqsize + 1;
 	}
@@ -2739,6 +2741,7 @@
 out_disconnect_admin_queue:
 	/* send a Disconnect(association) LS to fc-nvme target */
 	nvme_fc_xmt_disconnect_assoc(ctrl);
+	ctrl->association_id = 0;
 out_delete_hw_queue:
 	__nvme_fc_delete_hw_queue(ctrl, &ctrl->queues[0], 0);
 out_free_queue:
@@ -2830,6 +2833,8 @@
 	if (ctrl->association_id)
 		nvme_fc_xmt_disconnect_assoc(ctrl);
 
+	ctrl->association_id = 0;
+
 	if (ctrl->ctrl.tagset) {
 		nvme_fc_delete_hw_io_queues(ctrl);
 		nvme_fc_free_io_queues(ctrl);
@@ -2907,10 +2912,22 @@
 static void
 __nvme_fc_terminate_io(struct nvme_fc_ctrl *ctrl)
 {
-	nvme_stop_keep_alive(&ctrl->ctrl);
+	/*
+	 * if state is connecting - the error occurred as part of a
+	 * reconnect attempt. The create_association error paths will
+	 * clean up any outstanding io.
+	 *
+	 * if it's a different state - ensure all pending io is
+	 * terminated. Given this can delay while waiting for the
+	 * aborted io to return, we recheck adapter state below
+	 * before changing state.
+	 */
+	if (ctrl->ctrl.state != NVME_CTRL_CONNECTING) {
+		nvme_stop_keep_alive(&ctrl->ctrl);
 
-	/* will block will waiting for io to terminate */
-	nvme_fc_delete_association(ctrl);
+		/* will block will waiting for io to terminate */
+		nvme_fc_delete_association(ctrl);
+	}
 
 	if (ctrl->ctrl.state != NVME_CTRL_CONNECTING &&
 	    !nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_CONNECTING))
@@ -3158,10 +3175,7 @@
 		goto fail_ctrl;
 	}
 
-	nvme_get_ctrl(&ctrl->ctrl);
-
 	if (!queue_delayed_work(nvme_wq, &ctrl->connect_work, 0)) {
-		nvme_put_ctrl(&ctrl->ctrl);
 		dev_err(ctrl->ctrl.device,
 			"NVME-FC{%d}: failed to schedule initial connect\n",
 			ctrl->cnum);
@@ -3186,6 +3200,7 @@
 
 	/* initiate nvme ctrl ref counting teardown */
 	nvme_uninit_ctrl(&ctrl->ctrl);
+	nvme_put_ctrl(&ctrl->ctrl);
 
 	/* Remove core ctrl ref. */
 	nvme_put_ctrl(&ctrl->ctrl);
@@ -3308,12 +3323,14 @@
 	spin_lock_irqsave(&nvme_fc_lock, flags);
 	list_for_each_entry(lport, &nvme_fc_lport_list, port_list) {
 		if (lport->localport.node_name != laddr.nn ||
-		    lport->localport.port_name != laddr.pn)
+		    lport->localport.port_name != laddr.pn ||
+		    lport->localport.port_state != FC_OBJSTATE_ONLINE)
 			continue;
 
 		list_for_each_entry(rport, &lport->endp_list, endp_list) {
 			if (rport->remoteport.node_name != raddr.nn ||
-			    rport->remoteport.port_name != raddr.pn)
+			    rport->remoteport.port_name != raddr.pn ||
+			    rport->remoteport.port_state != FC_OBJSTATE_ONLINE)
 				continue;
 
 			/* if fail to get reference fall through. Will error */
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/multipath.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/multipath.c
@@ -3,6 +3,7 @@
  * Copyright (c) 2017-2018 Christoph Hellwig.
  */
 
+#include <linux/backing-dev.h>
 #include <linux/moduleparam.h>
 #include <trace/events/block.h>
 #include "nvme.h"
@@ -64,17 +65,12 @@
 	}
 }
 
-void nvme_failover_req(struct request *req)
+bool nvme_failover_req(struct request *req)
 {
 	struct nvme_ns *ns = req->q->queuedata;
 	u16 status = nvme_req(req)->status;
 	unsigned long flags;
 
-	spin_lock_irqsave(&ns->head->requeue_lock, flags);
-	blk_steal_bios(&ns->head->requeue_list, req);
-	spin_unlock_irqrestore(&ns->head->requeue_lock, flags);
-	blk_mq_end_request(req, 0);
-
 	switch (status & 0x7ff) {
 	case NVME_SC_ANA_TRANSITION:
 	case NVME_SC_ANA_INACCESSIBLE:
@@ -95,6 +91,7 @@
 		}
 		break;
 	case NVME_SC_HOST_PATH_ERROR:
+	case NVME_SC_HOST_ABORTED_CMD:
 		/*
 		 * Temporary transport disruption in talking to the controller.
 		 * Try to send on a new path.
@@ -102,15 +99,17 @@
 		nvme_mpath_clear_current_path(ns);
 		break;
 	default:
-		/*
-		 * Reset the controller for any non-ANA error as we don't know
-		 * what caused the error.
-		 */
-		nvme_reset_ctrl(ns->ctrl);
-		break;
+		/* This was a non-ANA error so follow the normal error path. */
+		return false;
 	}
 
+	spin_lock_irqsave(&ns->head->requeue_lock, flags);
+	blk_steal_bios(&ns->head->requeue_list, req);
+	spin_unlock_irqrestore(&ns->head->requeue_lock, flags);
+	blk_mq_end_request(req, 0);
+
 	kblockd_schedule_work(&ns->head->requeue_work);
+	return true;
 }
 
 void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl)
@@ -234,7 +233,7 @@
 	}
 
 	for (ns = nvme_next_ns(head, old);
-	     ns != old;
+	     ns && ns != old;
 	     ns = nvme_next_ns(head, ns)) {
 		if (nvme_path_is_disabled(ns))
 			continue;
@@ -247,6 +246,17 @@
 			fallback = ns;
 	}
 
+	/*
+	 * The loop above skips the current path for round-robin semantics.
+	 * Fall back to the current path if either:
+	 *  - no other optimized path found and current is optimized,
+	 *  - no other usable path found and current is usable.
+	 */
+	if (!nvme_path_is_disabled(old) &&
+	    (old->ana_state == NVME_ANA_OPTIMIZED ||
+	     (!fallback && old->ana_state == NVME_ANA_NONOPTIMIZED)))
+		return old;
+
 	if (!fallback)
 		return NULL;
 	found = fallback;
@@ -267,10 +277,13 @@
 	struct nvme_ns *ns;
 
 	ns = srcu_dereference(head->current_path[node], &head->srcu);
-	if (READ_ONCE(head->subsys->iopolicy) == NVME_IOPOLICY_RR && ns)
-		ns = nvme_round_robin_path(head, node, ns);
-	if (unlikely(!ns || !nvme_path_is_optimized(ns)))
-		ns = __nvme_find_path(head, node);
+	if (unlikely(!ns))
+		return __nvme_find_path(head, node);
+
+	if (READ_ONCE(head->subsys->iopolicy) == NVME_IOPOLICY_RR)
+		return nvme_round_robin_path(head, node, ns);
+	if (unlikely(!nvme_path_is_optimized(ns)))
+		return __nvme_find_path(head, node);
 	return ns;
 }
 
@@ -412,15 +425,14 @@
 {
 	struct nvme_ns_head *head = ns->head;
 
-	lockdep_assert_held(&ns->head->lock);
-
 	if (!head->disk)
 		return;
 
-	if (!(head->disk->flags & GENHD_FL_UP))
+	if (!test_and_set_bit(NVME_NSHEAD_DISK_LIVE, &head->flags))
 		device_add_disk(&head->subsys->dev, head->disk,
 				nvme_ns_id_attr_groups);
 
+	mutex_lock(&head->lock);
 	if (nvme_path_is_optimized(ns)) {
 		int node, srcu_idx;
 
@@ -429,9 +441,10 @@
 			__nvme_find_path(head, node);
 		srcu_read_unlock(&head->srcu, srcu_idx);
 	}
+	mutex_unlock(&head->lock);
 
-	synchronize_srcu(&ns->head->srcu);
-	kblockd_schedule_work(&ns->head->requeue_work);
+	synchronize_srcu(&head->srcu);
+	kblockd_schedule_work(&head->requeue_work);
 }
 
 static int nvme_parse_ana_log(struct nvme_ctrl *ctrl, void *data,
@@ -446,8 +459,14 @@
 
 	for (i = 0; i < le16_to_cpu(ctrl->ana_log_buf->ngrps); i++) {
 		struct nvme_ana_group_desc *desc = base + offset;
-		u32 nr_nsids = le32_to_cpu(desc->nnsids);
-		size_t nsid_buf_size = nr_nsids * sizeof(__le32);
+		u32 nr_nsids;
+		size_t nsid_buf_size;
+
+		if (WARN_ON_ONCE(offset > ctrl->ana_log_size - sizeof(*desc)))
+			return -EINVAL;
+
+		nr_nsids = le32_to_cpu(desc->nnsids);
+		nsid_buf_size = nr_nsids * sizeof(__le32);
 
 		if (WARN_ON_ONCE(desc->grpid == 0))
 			return -EINVAL;
@@ -467,8 +486,6 @@
 			return error;
 
 		offset += nsid_buf_size;
-		if (WARN_ON_ONCE(offset > ctrl->ana_log_size - sizeof(*desc)))
-			return -EINVAL;
 	}
 
 	return 0;
@@ -482,14 +499,12 @@
 static void nvme_update_ns_ana_state(struct nvme_ana_group_desc *desc,
 		struct nvme_ns *ns)
 {
-	mutex_lock(&ns->head->lock);
 	ns->ana_grpid = le32_to_cpu(desc->grpid);
 	ns->ana_state = desc->state;
 	clear_bit(NVME_NS_ANA_PENDING, &ns->flags);
 
 	if (nvme_state_is_live(ns->ana_state))
 		nvme_mpath_set_live(ns);
-	mutex_unlock(&ns->head->lock);
 }
 
 static int nvme_update_ana_state(struct nvme_ctrl *ctrl,
@@ -509,7 +524,7 @@
 	if (!nr_nsids)
 		return 0;
 
-	down_write(&ctrl->namespaces_rwsem);
+	down_read(&ctrl->namespaces_rwsem);
 	list_for_each_entry(ns, &ctrl->namespaces, list) {
 		unsigned nsid = le32_to_cpu(desc->nsids[n]);
 
@@ -520,7 +535,7 @@
 		if (++n == nr_nsids)
 			break;
 	}
-	up_write(&ctrl->namespaces_rwsem);
+	up_read(&ctrl->namespaces_rwsem);
 	return 0;
 }
 
@@ -639,31 +654,45 @@
 }
 DEVICE_ATTR_RO(ana_state);
 
-static int nvme_set_ns_ana_state(struct nvme_ctrl *ctrl,
+static int nvme_lookup_ana_group_desc(struct nvme_ctrl *ctrl,
 		struct nvme_ana_group_desc *desc, void *data)
 {
-	struct nvme_ns *ns = data;
+	struct nvme_ana_group_desc *dst = data;
 
-	if (ns->ana_grpid == le32_to_cpu(desc->grpid)) {
-		nvme_update_ns_ana_state(desc, ns);
-		return -ENXIO; /* just break out of the loop */
-	}
+	if (desc->grpid != dst->grpid)
+		return 0;
 
-	return 0;
+	*dst = *desc;
+	return -ENXIO; /* just break out of the loop */
 }
 
 void nvme_mpath_add_disk(struct nvme_ns *ns, struct nvme_id_ns *id)
 {
 	if (nvme_ctrl_use_ana(ns->ctrl)) {
+		struct nvme_ana_group_desc desc = {
+			.grpid = id->anagrpid,
+			.state = 0,
+		};
+
 		mutex_lock(&ns->ctrl->ana_lock);
 		ns->ana_grpid = le32_to_cpu(id->anagrpid);
-		nvme_parse_ana_log(ns->ctrl, ns, nvme_set_ns_ana_state);
+		nvme_parse_ana_log(ns->ctrl, &desc, nvme_lookup_ana_group_desc);
 		mutex_unlock(&ns->ctrl->ana_lock);
+		if (desc.state) {
+			/* found the group desc: update */
+			nvme_update_ns_ana_state(&desc, ns);
+		}
 	} else {
-		mutex_lock(&ns->head->lock);
 		ns->ana_state = NVME_ANA_OPTIMIZED; 
 		nvme_mpath_set_live(ns);
-		mutex_unlock(&ns->head->lock);
+	}
+
+	if (bdi_cap_stable_pages_required(ns->queue->backing_dev_info)) {
+		struct gendisk *disk = ns->head->disk;
+
+		if (disk)
+			disk->queue->backing_dev_info->capabilities |=
+					BDI_CAP_STABLE_WRITES;
 	}
 }
 
@@ -678,6 +707,14 @@
 	kblockd_schedule_work(&head->requeue_work);
 	flush_work(&head->requeue_work);
 	blk_cleanup_queue(head->disk->queue);
+	if (!test_bit(NVME_NSHEAD_DISK_LIVE, &head->flags)) {
+		/*
+		 * if device_add_disk wasn't called, prevent
+		 * disk release to put a bogus reference on the
+		 * request queue
+		 */
+		head->disk->queue = NULL;
+	}
 	put_disk(head->disk);
 }
 
@@ -710,6 +747,7 @@
 	}
 
 	INIT_WORK(&ctrl->ana_work, nvme_ana_work);
+	kfree(ctrl->ana_log_buf);
 	ctrl->ana_log_buf = kmalloc(ctrl->ana_log_size, GFP_KERNEL);
 	if (!ctrl->ana_log_buf) {
 		error = -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/nvme.h
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/nvme.h
@@ -115,6 +115,13 @@
 	 * Prevent tag overlap between queues
 	 */
 	NVME_QUIRK_SHARED_TAGS                  = (1 << 13),
+
+	/*
+	 * The controller doesn't handle the Identify Namespace
+	 * Identification Descriptor list subcommand despite claiming
+	 * NVMe 1.3 compliance.
+	 */
+	NVME_QUIRK_NO_NS_DESC_LIST		= (1 << 15),
 };
 
 /*
@@ -246,6 +253,7 @@
 	struct nvme_command ka_cmd;
 	struct work_struct fw_act_work;
 	unsigned long events;
+	bool created;
 
 #ifdef CONFIG_NVME_MULTIPATH
 	/* asymmetric namespace access: */
@@ -345,6 +353,8 @@
 	spinlock_t		requeue_lock;
 	struct work_struct	requeue_work;
 	struct mutex		lock;
+	unsigned long		flags;
+#define NVME_NSHEAD_DISK_LIVE	0
 	struct nvme_ns __rcu	*current_path[];
 #endif
 };
@@ -374,7 +384,6 @@
 #define NVME_NS_REMOVING	0
 #define NVME_NS_DEAD     	1
 #define NVME_NS_ANA_PENDING	2
-	u16 noiob;
 
 	struct nvme_fault_inject fault_inject;
 
@@ -419,9 +428,20 @@
 	return ctrl->ops->reg_write32(ctrl, NVME_REG_NSSR, 0x4E564D65);
 }
 
-static inline u64 nvme_block_nr(struct nvme_ns *ns, sector_t sector)
+/*
+ * Convert a 512B sector number to a device logical block number.
+ */
+static inline u64 nvme_sect_to_lba(struct nvme_ns *ns, sector_t sector)
 {
-	return (sector >> (ns->lba_shift - 9));
+	return sector >> (ns->lba_shift - SECTOR_SHIFT);
+}
+
+/*
+ * Convert a device logical block number to a 512B sector number.
+ */
+static inline sector_t nvme_lba_to_sect(struct nvme_ns *ns, u64 lba)
+{
+	return lba << (ns->lba_shift - SECTOR_SHIFT);
 }
 
 static inline void nvme_end_request(struct request *req, __le16 status,
@@ -448,6 +468,8 @@
 
 void nvme_complete_rq(struct request *req);
 bool nvme_cancel_request(struct request *req, void *data, bool reserved);
+void nvme_cancel_tagset(struct nvme_ctrl *ctrl);
+void nvme_cancel_admin_tagset(struct nvme_ctrl *ctrl);
 bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
 		enum nvme_ctrl_state new_state);
 bool nvme_wait_reset(struct nvme_ctrl *ctrl);
@@ -474,9 +496,10 @@
 void nvme_start_queues(struct nvme_ctrl *ctrl);
 void nvme_kill_queues(struct nvme_ctrl *ctrl);
 void nvme_sync_queues(struct nvme_ctrl *ctrl);
+void nvme_sync_io_queues(struct nvme_ctrl *ctrl);
 void nvme_unfreeze(struct nvme_ctrl *ctrl);
 void nvme_wait_freeze(struct nvme_ctrl *ctrl);
-void nvme_wait_freeze_timeout(struct nvme_ctrl *ctrl, long timeout);
+int nvme_wait_freeze_timeout(struct nvme_ctrl *ctrl, long timeout);
 void nvme_start_freeze(struct nvme_ctrl *ctrl);
 
 #define NVME_QID_ANY -1
@@ -521,7 +544,7 @@
 void nvme_mpath_start_freeze(struct nvme_subsystem *subsys);
 void nvme_set_disk_name(char *disk_name, struct nvme_ns *ns,
 			struct nvme_ctrl *ctrl, int *flags);
-void nvme_failover_req(struct request *req);
+bool nvme_failover_req(struct request *req);
 void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl);
 int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl,struct nvme_ns_head *head);
 void nvme_mpath_add_disk(struct nvme_ns *ns, struct nvme_id_ns *id);
@@ -551,6 +574,16 @@
 					 req->bio, status);
 }
 
+static inline void nvme_mpath_update_disk_size(struct gendisk *disk)
+{
+	struct block_device *bdev = bdget_disk(disk, 0);
+
+	if (bdev) {
+		bd_set_size(bdev, get_capacity(disk) << SECTOR_SHIFT);
+		bdput(bdev);
+	}
+}
+
 extern struct device_attribute dev_attr_ana_grpid;
 extern struct device_attribute dev_attr_ana_state;
 extern struct device_attribute subsys_attr_iopolicy;
@@ -570,8 +603,9 @@
 	sprintf(disk_name, "nvme%dn%d", ctrl->instance, ns->head->instance);
 }
 
-static inline void nvme_failover_req(struct request *req)
+static inline bool nvme_failover_req(struct request *req)
 {
+	return false;
 }
 static inline void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl)
 {
@@ -625,6 +659,9 @@
 static inline void nvme_mpath_start_freeze(struct nvme_subsystem *subsys)
 {
 }
+static inline void nvme_mpath_update_disk_size(struct gendisk *disk)
+{
+}
 #endif /* CONFIG_NVME_MULTIPATH */
 
 #ifdef CONFIG_NVM
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/pci.c
@@ -68,14 +68,14 @@
 module_param_cb(io_queue_depth, &io_queue_depth_ops, &io_queue_depth, 0644);
 MODULE_PARM_DESC(io_queue_depth, "set io queue depth, should >= 2");
 
-static int write_queues;
-module_param(write_queues, int, 0644);
+static unsigned int write_queues;
+module_param(write_queues, uint, 0644);
 MODULE_PARM_DESC(write_queues,
 	"Number of queues to use for writes. If not set, reads and writes "
 	"will share a queue set.");
 
-static int poll_queues;
-module_param(poll_queues, int, 0644);
+static unsigned int poll_queues;
+module_param(poll_queues, uint, 0644);
 MODULE_PARM_DESC(poll_queues, "Number of queues to use for polled IO.");
 
 struct nvme_dev;
@@ -128,6 +128,9 @@
 	dma_addr_t host_mem_descs_dma;
 	struct nvme_host_mem_buf_desc *host_mem_descs;
 	void **host_mem_desc_bufs;
+	unsigned int nr_allocated_queues;
+	unsigned int nr_write_queues;
+	unsigned int nr_poll_queues;
 };
 
 static int io_queue_depth_set(const char *val, const struct kernel_param *kp)
@@ -167,7 +170,6 @@
 	 /* only used for poll queues: */
 	spinlock_t cq_poll_lock ____cacheline_aligned_in_smp;
 	volatile struct nvme_completion *cqes;
-	struct blk_mq_tags **tags;
 	dma_addr_t sq_dma_addr;
 	dma_addr_t cq_dma_addr;
 	u32 __iomem *q_db;
@@ -211,25 +213,14 @@
 	struct scatterlist *sg;
 };
 
-static unsigned int max_io_queues(void)
+static inline unsigned int nvme_dbbuf_size(struct nvme_dev *dev)
 {
-	return num_possible_cpus() + write_queues + poll_queues;
-}
-
-static unsigned int max_queue_count(void)
-{
-	/* IO queues + admin queue */
-	return 1 + max_io_queues();
-}
-
-static inline unsigned int nvme_dbbuf_size(u32 stride)
-{
-	return (max_queue_count() * 8 * stride);
+	return dev->nr_allocated_queues * 8 * dev->db_stride;
 }
 
 static int nvme_dbbuf_dma_alloc(struct nvme_dev *dev)
 {
-	unsigned int mem_size = nvme_dbbuf_size(dev->db_stride);
+	unsigned int mem_size = nvme_dbbuf_size(dev);
 
 	if (dev->dbbuf_dbs)
 		return 0;
@@ -254,7 +245,7 @@
 
 static void nvme_dbbuf_dma_free(struct nvme_dev *dev)
 {
-	unsigned int mem_size = nvme_dbbuf_size(dev->db_stride);
+	unsigned int mem_size = nvme_dbbuf_size(dev);
 
 	if (dev->dbbuf_dbs) {
 		dma_free_coherent(dev->dev, mem_size,
@@ -280,9 +271,21 @@
 	nvmeq->dbbuf_cq_ei = &dev->dbbuf_eis[cq_idx(qid, dev->db_stride)];
 }
 
+static void nvme_dbbuf_free(struct nvme_queue *nvmeq)
+{
+	if (!nvmeq->qid)
+		return;
+
+	nvmeq->dbbuf_sq_db = NULL;
+	nvmeq->dbbuf_cq_db = NULL;
+	nvmeq->dbbuf_sq_ei = NULL;
+	nvmeq->dbbuf_cq_ei = NULL;
+}
+
 static void nvme_dbbuf_set(struct nvme_dev *dev)
 {
 	struct nvme_command c;
+	unsigned int i;
 
 	if (!dev->dbbuf_dbs)
 		return;
@@ -296,6 +299,9 @@
 		dev_warn(dev->ctrl.device, "unable to set dbbuf\n");
 		/* Free memory and continue on */
 		nvme_dbbuf_dma_free(dev);
+
+		for (i = 1; i <= dev->online_queues; i++)
+			nvme_dbbuf_free(&dev->queues[i]);
 	}
 }
 
@@ -377,29 +383,17 @@
 
 	WARN_ON(hctx_idx != 0);
 	WARN_ON(dev->admin_tagset.tags[0] != hctx->tags);
-	WARN_ON(nvmeq->tags);
 
 	hctx->driver_data = nvmeq;
-	nvmeq->tags = &dev->admin_tagset.tags[0];
 	return 0;
 }
 
-static void nvme_admin_exit_hctx(struct blk_mq_hw_ctx *hctx, unsigned int hctx_idx)
-{
-	struct nvme_queue *nvmeq = hctx->driver_data;
-
-	nvmeq->tags = NULL;
-}
-
 static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
 			  unsigned int hctx_idx)
 {
 	struct nvme_dev *dev = data;
 	struct nvme_queue *nvmeq = &dev->queues[hctx_idx + 1];
 
-	if (!nvmeq->tags)
-		nvmeq->tags = &dev->tagset.tags[hctx_idx];
-
 	WARN_ON(dev->tagset.tags[hctx_idx] != hctx->tags);
 	hctx->driver_data = nvmeq;
 	return 0;
@@ -534,50 +528,71 @@
 	return true;
 }
 
-static void nvme_unmap_data(struct nvme_dev *dev, struct request *req)
+static void nvme_free_prps(struct nvme_dev *dev, struct request *req)
 {
-	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 	const int last_prp = dev->ctrl.page_size / sizeof(__le64) - 1;
-	dma_addr_t dma_addr = iod->first_dma, next_dma_addr;
+	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
+	dma_addr_t dma_addr = iod->first_dma;
 	int i;
 
-	if (iod->dma_len) {
-		dma_unmap_page(dev->dev, dma_addr, iod->dma_len,
-			       rq_dma_dir(req));
-		return;
+	for (i = 0; i < iod->npages; i++) {
+		__le64 *prp_list = nvme_pci_iod_list(req)[i];
+		dma_addr_t next_dma_addr = le64_to_cpu(prp_list[last_prp]);
+
+		dma_pool_free(dev->prp_page_pool, prp_list, dma_addr);
+		dma_addr = next_dma_addr;
 	}
 
-	WARN_ON_ONCE(!iod->nents);
+}
 
-	if (is_pci_p2pdma_page(sg_page(iod->sg)))
-		pci_p2pdma_unmap_sg(dev->dev, iod->sg, iod->nents,
-				    rq_dma_dir(req));
-	else
-		dma_unmap_sg(dev->dev, iod->sg, iod->nents, rq_dma_dir(req));
+static void nvme_free_sgls(struct nvme_dev *dev, struct request *req)
+{
+	const int last_sg = SGES_PER_PAGE - 1;
+	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
+	dma_addr_t dma_addr = iod->first_dma;
+	int i;
 
+	for (i = 0; i < iod->npages; i++) {
+		struct nvme_sgl_desc *sg_list = nvme_pci_iod_list(req)[i];
+		dma_addr_t next_dma_addr = le64_to_cpu((sg_list[last_sg]).addr);
 
-	if (iod->npages == 0)
-		dma_pool_free(dev->prp_small_pool, nvme_pci_iod_list(req)[0],
-			dma_addr);
+		dma_pool_free(dev->prp_page_pool, sg_list, dma_addr);
+		dma_addr = next_dma_addr;
+	}
 
-	for (i = 0; i < iod->npages; i++) {
-		void *addr = nvme_pci_iod_list(req)[i];
+}
 
-		if (iod->use_sgl) {
-			struct nvme_sgl_desc *sg_list = addr;
+static void nvme_unmap_sg(struct nvme_dev *dev, struct request *req)
+{
+	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 
-			next_dma_addr =
-			    le64_to_cpu((sg_list[SGES_PER_PAGE - 1]).addr);
-		} else {
-			__le64 *prp_list = addr;
+	if (is_pci_p2pdma_page(sg_page(iod->sg)))
+		pci_p2pdma_unmap_sg(dev->dev, iod->sg, iod->nents,
+				    rq_dma_dir(req));
+	else
+		dma_unmap_sg(dev->dev, iod->sg, iod->nents, rq_dma_dir(req));
+}
 
-			next_dma_addr = le64_to_cpu(prp_list[last_prp]);
-		}
+static void nvme_unmap_data(struct nvme_dev *dev, struct request *req)
+{
+	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 
-		dma_pool_free(dev->prp_page_pool, addr, dma_addr);
-		dma_addr = next_dma_addr;
+	if (iod->dma_len) {
+		dma_unmap_page(dev->dev, iod->first_dma, iod->dma_len,
+			       rq_dma_dir(req));
+		return;
 	}
 
+	WARN_ON_ONCE(!iod->nents);
+
+	nvme_unmap_sg(dev, req);
+	if (iod->npages == 0)
+		dma_pool_free(dev->prp_small_pool, nvme_pci_iod_list(req)[0],
+			      iod->first_dma);
+	else if (iod->use_sgl)
+		nvme_free_sgls(dev, req);
+	else
+		nvme_free_prps(dev, req);
 	mempool_free(iod->sg, dev->iod_mempool);
 }
 
@@ -654,7 +669,7 @@
 			__le64 *old_prp_list = prp_list;
 			prp_list = dma_pool_alloc(pool, GFP_ATOMIC, &prp_dma);
 			if (!prp_list)
-				return BLK_STS_RESOURCE;
+				goto free_prps;
 			list[iod->npages++] = prp_list;
 			prp_list[0] = old_prp_list[i - 1];
 			old_prp_list[i - 1] = cpu_to_le64(prp_dma);
@@ -674,14 +689,14 @@
 		dma_addr = sg_dma_address(sg);
 		dma_len = sg_dma_len(sg);
 	}
-
 done:
 	cmnd->dptr.prp1 = cpu_to_le64(sg_dma_address(iod->sg));
 	cmnd->dptr.prp2 = cpu_to_le64(iod->first_dma);
-
 	return BLK_STS_OK;
-
- bad_sgl:
+free_prps:
+	nvme_free_prps(dev, req);
+	return BLK_STS_RESOURCE;
+bad_sgl:
 	WARN(DO_ONCE(nvme_print_sgl, iod->sg, iod->nents),
 			"Invalid SGL for payload:%d nents:%d\n",
 			blk_rq_payload_bytes(req), iod->nents);
@@ -753,7 +768,7 @@
 
 			sg_list = dma_pool_alloc(pool, GFP_ATOMIC, &sgl_dma);
 			if (!sg_list)
-				return BLK_STS_RESOURCE;
+				goto free_sgls;
 
 			i = 0;
 			nvme_pci_iod_list(req)[iod->npages++] = sg_list;
@@ -766,6 +781,9 @@
 	} while (--entries > 0);
 
 	return BLK_STS_OK;
+free_sgls:
+	nvme_free_sgls(dev, req);
+	return BLK_STS_RESOURCE;
 }
 
 static blk_status_t nvme_setup_prp_simple(struct nvme_dev *dev,
@@ -834,7 +852,7 @@
 	sg_init_table(iod->sg, blk_rq_nr_phys_segments(req));
 	iod->nents = blk_rq_map_sg(req->q, req, iod->sg);
 	if (!iod->nents)
-		goto out;
+		goto out_free_sg;
 
 	if (is_pci_p2pdma_page(sg_page(iod->sg)))
 		nr_mapped = pci_p2pdma_map_sg_attrs(dev->dev, iod->sg,
@@ -843,16 +861,21 @@
 		nr_mapped = dma_map_sg_attrs(dev->dev, iod->sg, iod->nents,
 					     rq_dma_dir(req), DMA_ATTR_NO_WARN);
 	if (!nr_mapped)
-		goto out;
+		goto out_free_sg;
 
 	iod->use_sgl = nvme_pci_use_sgls(dev, req);
 	if (iod->use_sgl)
 		ret = nvme_pci_setup_sgls(dev, req, &cmnd->rw, nr_mapped);
 	else
 		ret = nvme_pci_setup_prps(dev, req, &cmnd->rw);
-out:
 	if (ret != BLK_STS_OK)
-		nvme_unmap_data(dev, req);
+		goto out_unmap_sg;
+	return BLK_STS_OK;
+
+out_unmap_sg:
+	nvme_unmap_sg(dev, req);
+out_free_sg:
+	mempool_free(iod->sg, dev->iod_mempool);
 	return ret;
 }
 
@@ -950,18 +973,18 @@
 		writel(head, nvmeq->q_db + nvmeq->dev->db_stride);
 }
 
+static inline struct blk_mq_tags *nvme_queue_tagset(struct nvme_queue *nvmeq)
+{
+	if (!nvmeq->qid)
+		return nvmeq->dev->admin_tagset.tags[0];
+	return nvmeq->dev->tagset.tags[nvmeq->qid - 1];
+}
+
 static inline void nvme_handle_cqe(struct nvme_queue *nvmeq, u16 idx)
 {
 	volatile struct nvme_completion *cqe = &nvmeq->cqes[idx];
 	struct request *req;
 
-	if (unlikely(cqe->command_id >= nvmeq->q_depth)) {
-		dev_warn(nvmeq->dev->ctrl.device,
-			"invalid id %d completed on queue %d\n",
-			cqe->command_id, le16_to_cpu(cqe->sq_id));
-		return;
-	}
-
 	/*
 	 * AEN requests are special as they don't time out and can
 	 * survive any kind of queue freeze and often don't respond to
@@ -975,7 +998,14 @@
 		return;
 	}
 
-	req = blk_mq_tag_to_rq(*nvmeq->tags, cqe->command_id);
+	req = blk_mq_tag_to_rq(nvme_queue_tagset(nvmeq), cqe->command_id);
+	if (unlikely(!req)) {
+		dev_warn(nvmeq->dev->ctrl.device,
+			"invalid id %d completed on queue %d\n",
+			cqe->command_id, le16_to_cpu(cqe->sq_id));
+		return;
+	}
+
 	trace_nvme_sq(req, cqe->sq_head, nvmeq->sq_tail);
 	nvme_end_request(req, cqe->status, cqe->result);
 }
@@ -1090,9 +1120,9 @@
 
 	spin_lock(&nvmeq->cq_poll_lock);
 	found = nvme_process_cq(nvmeq, &start, &end, -1);
+	nvme_complete_cqes(nvmeq, start, end);
 	spin_unlock(&nvmeq->cq_poll_lock);
 
-	nvme_complete_cqes(nvmeq, start, end);
 	return found;
 }
 
@@ -1288,8 +1318,8 @@
 		dev_warn_ratelimited(dev->ctrl.device,
 			 "I/O %d QID %d timeout, disable controller\n",
 			 req->tag, nvmeq->qid);
-		nvme_dev_disable(dev, true);
 		nvme_req(req)->flags |= NVME_REQ_CANCELLED;
+		nvme_dev_disable(dev, true);
 		return BLK_EH_DONE;
 	case NVME_CTRL_RESETTING:
 		return BLK_EH_RESET_TIMER;
@@ -1306,10 +1336,10 @@
 		dev_warn(dev->ctrl.device,
 			 "I/O %d QID %d timeout, reset controller\n",
 			 req->tag, nvmeq->qid);
+		nvme_req(req)->flags |= NVME_REQ_CANCELLED;
 		nvme_dev_disable(dev, false);
 		nvme_reset_ctrl(&dev->ctrl);
 
-		nvme_req(req)->flags |= NVME_REQ_CANCELLED;
 		return BLK_EH_DONE;
 	}
 
@@ -1413,6 +1443,23 @@
 	nvme_poll_irqdisable(nvmeq, -1);
 }
 
+/*
+ * Called only on a device that has been disabled and after all other threads
+ * that can check this device's completion queues have synced. This is the
+ * last chance for the driver to see a natural completion before
+ * nvme_cancel_request() terminates all incomplete requests.
+ */
+static void nvme_reap_pending_cqes(struct nvme_dev *dev)
+{
+	u16 start, end;
+	int i;
+
+	for (i = dev->ctrl.queue_count - 1; i > 0; i--) {
+		nvme_process_cq(&dev->queues[i], &start, &end, -1);
+		nvme_complete_cqes(&dev->queues[i], start, end);
+	}
+}
+
 static int nvme_cmb_qdepth(struct nvme_dev *dev, int nr_io_queues,
 				int entry_size)
 {
@@ -1578,7 +1625,6 @@
 	.queue_rq	= nvme_queue_rq,
 	.complete	= nvme_pci_complete_rq,
 	.init_hctx	= nvme_admin_init_hctx,
-	.exit_hctx      = nvme_admin_exit_hctx,
 	.init_request	= nvme_init_request,
 	.timeout	= nvme_timeout,
 };
@@ -2020,7 +2066,7 @@
 static void nvme_calc_irq_sets(struct irq_affinity *affd, unsigned int nrirqs)
 {
 	struct nvme_dev *dev = affd->priv;
-	unsigned int nr_read_queues;
+	unsigned int nr_read_queues, nr_write_queues = dev->nr_write_queues;
 
 	/*
 	 * If there is no interupt available for queues, ensure that
@@ -2036,12 +2082,12 @@
 	if (!nrirqs) {
 		nrirqs = 1;
 		nr_read_queues = 0;
-	} else if (nrirqs == 1 || !write_queues) {
+	} else if (nrirqs == 1 || !nr_write_queues) {
 		nr_read_queues = 0;
-	} else if (write_queues >= nrirqs) {
+	} else if (nr_write_queues >= nrirqs) {
 		nr_read_queues = 1;
 	} else {
-		nr_read_queues = nrirqs - write_queues;
+		nr_read_queues = nrirqs - nr_write_queues;
 	}
 
 	dev->io_queues[HCTX_TYPE_DEFAULT] = nrirqs - nr_read_queues;
@@ -2060,21 +2106,17 @@
 		.priv		= dev,
 	};
 	unsigned int irq_queues, this_p_queues;
-	unsigned int nr_cpus = num_possible_cpus();
 
 	/*
 	 * Poll queues don't need interrupts, but we need at least one IO
 	 * queue left over for non-polled IO.
 	 */
-	this_p_queues = poll_queues;
+	this_p_queues = dev->nr_poll_queues;
 	if (this_p_queues >= nr_io_queues) {
 		this_p_queues = nr_io_queues - 1;
 		irq_queues = 1;
 	} else {
-		if (nr_cpus < nr_io_queues - this_p_queues)
-			irq_queues = nr_cpus + 1;
-		else
-			irq_queues = nr_io_queues - this_p_queues + 1;
+		irq_queues = nr_io_queues - this_p_queues + 1;
 	}
 	dev->io_queues[HCTX_TYPE_POLL] = this_p_queues;
 
@@ -2099,14 +2141,25 @@
 		__nvme_disable_io_queues(dev, nvme_admin_delete_cq);
 }
 
+static unsigned int nvme_max_io_queues(struct nvme_dev *dev)
+{
+	return num_possible_cpus() + dev->nr_write_queues + dev->nr_poll_queues;
+}
+
 static int nvme_setup_io_queues(struct nvme_dev *dev)
 {
 	struct nvme_queue *adminq = &dev->queues[0];
 	struct pci_dev *pdev = to_pci_dev(dev->dev);
-	int result, nr_io_queues;
+	unsigned int nr_io_queues;
 	unsigned long size;
+	int result;
 
-	nr_io_queues = max_io_queues();
+	/*
+	 * Sample the module parameters once at reset time so that we have
+	 * stable values to work with.
+	 */
+	dev->nr_write_queues = write_queues;
+	dev->nr_poll_queues = poll_queues;
 
 	/*
 	 * If tags are shared with admin queue (Apple bug), then
@@ -2114,6 +2167,9 @@
 	 */
 	if (dev->ctrl.quirks & NVME_QUIRK_SHARED_TAGS)
 		nr_io_queues = 1;
+	else
+		nr_io_queues = min(nvme_max_io_queues(dev),
+				   dev->nr_allocated_queues - 1);
 
 	result = nvme_set_queue_count(&dev->ctrl, &nr_io_queues);
 	if (result < 0)
@@ -2252,11 +2308,6 @@
 		if (timeout == 0)
 			return false;
 
-		/* handle any remaining CQEs */
-		if (opcode == nvme_admin_delete_cq &&
-		    !test_bit(NVMEQ_DELETE_ERROR, &nvmeq->flags))
-			nvme_poll_irqdisable(nvmeq, -1);
-
 		sent--;
 		if (nr_queues)
 			goto retry;
@@ -2445,6 +2496,7 @@
 	nvme_suspend_io_queues(dev);
 	nvme_suspend_queue(&dev->queues[0]);
 	nvme_pci_disable(dev);
+	nvme_reap_pending_cqes(dev);
 
 	blk_mq_tagset_busy_iter(&dev->tagset, nvme_cancel_request, &dev->ctrl);
 	blk_mq_tagset_busy_iter(&dev->admin_tagset, nvme_cancel_request, &dev->ctrl);
@@ -2751,6 +2803,18 @@
 		    (dmi_match(DMI_BOARD_NAME, "PRIME B350M-A") ||
 		     dmi_match(DMI_BOARD_NAME, "PRIME Z370-A")))
 			return NVME_QUIRK_NO_APST;
+	} else if ((pdev->vendor == 0x144d && (pdev->device == 0xa801 ||
+		    pdev->device == 0xa808 || pdev->device == 0xa809)) ||
+		   (pdev->vendor == 0x1e0f && pdev->device == 0x0001)) {
+		/*
+		 * Forcing to use host managed nvme power settings for
+		 * lowest idle power with quick resume latency on
+		 * Samsung and Toshiba SSDs based on suspend behavior
+		 * on Coffee Lake board for LENOVO C640
+		 */
+		if ((dmi_match(DMI_BOARD_VENDOR, "LENOVO")) &&
+		     dmi_match(DMI_BOARD_NAME, "LNVNB161216"))
+			return NVME_QUIRK_SIMPLE_SUSPEND;
 	}
 
 	return 0;
@@ -2780,8 +2844,11 @@
 	if (!dev)
 		return -ENOMEM;
 
-	dev->queues = kcalloc_node(max_queue_count(), sizeof(struct nvme_queue),
-					GFP_KERNEL, node);
+	dev->nr_write_queues = write_queues;
+	dev->nr_poll_queues = poll_queues;
+	dev->nr_allocated_queues = nvme_max_io_queues(dev) + 1;
+	dev->queues = kcalloc_node(dev->nr_allocated_queues,
+			sizeof(struct nvme_queue), GFP_KERNEL, node);
 	if (!dev->queues)
 		goto free;
 
@@ -2827,7 +2894,6 @@
 	dev_info(dev->ctrl.device, "pci function %s\n", dev_name(&pdev->dev));
 
 	nvme_reset_ctrl(&dev->ctrl);
-	nvme_get_ctrl(&dev->ctrl);
 	async_schedule(nvme_async_probe, dev);
 
 	return 0;
@@ -2948,9 +3014,15 @@
 	 * the PCI bus layer to put it into D3 in order to take the PCIe link
 	 * down, so as to allow the platform to achieve its minimum low-power
 	 * state (which may not be possible if the link is up).
+	 *
+	 * If a host memory buffer is enabled, shut down the device as the NVMe
+	 * specification allows the device to access the host memory buffer in
+	 * host DRAM from all power states, but hosts will fail access to DRAM
+	 * during S3.
 	 */
 	if (pm_suspend_via_firmware() || !ctrl->npss ||
 	    !pcie_aspm_enabled(pdev) ||
+	    ndev->nr_host_mem_descs ||
 	    (ndev->ctrl.quirks & NVME_QUIRK_SIMPLE_SUSPEND))
 		return nvme_disable_prepare_reset(ndev, true);
 
@@ -3082,14 +3154,18 @@
 				NVME_QUIRK_DEALLOCATE_ZEROES, },
 	{ PCI_VDEVICE(INTEL, 0xf1a5),	/* Intel 600P/P3100 */
 		.driver_data = NVME_QUIRK_NO_DEEPEST_PS |
-				NVME_QUIRK_MEDIUM_PRIO_SQ },
+				NVME_QUIRK_MEDIUM_PRIO_SQ |
+				NVME_QUIRK_DISABLE_WRITE_ZEROES, },
 	{ PCI_VDEVICE(INTEL, 0xf1a6),	/* Intel 760p/Pro 7600p */
 		.driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN, },
 	{ PCI_VDEVICE(INTEL, 0x5845),	/* Qemu emulated controller */
 		.driver_data = NVME_QUIRK_IDENTIFY_CNS |
 				NVME_QUIRK_DISABLE_WRITE_ZEROES, },
+	{ PCI_DEVICE(0x126f, 0x2263),	/* Silicon Motion unidentified */
+		.driver_data = NVME_QUIRK_NO_NS_DESC_LIST, },
 	{ PCI_DEVICE(0x1bb1, 0x0100),   /* Seagate Nytro Flash Storage */
-		.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
+		.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY |
+				NVME_QUIRK_NO_NS_DESC_LIST, },
 	{ PCI_DEVICE(0x1c58, 0x0003),	/* HGST adapter */
 		.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
 	{ PCI_DEVICE(0x1c58, 0x0023),	/* WDC SN200 adapter */
@@ -3099,7 +3175,13 @@
 	{ PCI_DEVICE(0x144d, 0xa821),   /* Samsung PM1725 */
 		.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
 	{ PCI_DEVICE(0x144d, 0xa822),   /* Samsung PM1725a */
-		.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
+		.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY |
+				NVME_QUIRK_IGNORE_DEV_SUBNQN, },
+	{ PCI_DEVICE(0x1987, 0x5016),	/* Phison E16 */
+		.driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN, },
+	{ PCI_DEVICE(0x1b4b, 0x1092),	/* Lexar 256 GB SSD */
+		.driver_data = NVME_QUIRK_NO_NS_DESC_LIST |
+				NVME_QUIRK_IGNORE_DEV_SUBNQN, },
 	{ PCI_DEVICE(0x1d1d, 0x1f1f),	/* LighNVM qemu device */
 		.driver_data = NVME_QUIRK_LIGHTNVM, },
 	{ PCI_DEVICE(0x1d1d, 0x2807),	/* CNEX WL */
@@ -3111,8 +3193,13 @@
 	{ PCI_DEVICE(0x1cc1, 0x8201),   /* ADATA SX8200PNP 512GB */
 		.driver_data = NVME_QUIRK_NO_DEEPEST_PS |
 				NVME_QUIRK_IGNORE_DEV_SUBNQN, },
+	{ PCI_DEVICE(0x1c5c, 0x1504),   /* SK Hynix PC400 */
+		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
 	{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
-	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001) },
+	{ PCI_DEVICE(0x2646, 0x2263),   /* KINGSTON A2000 NVMe SSD  */
+		.driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
+	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001),
+		.driver_data = NVME_QUIRK_SINGLE_VECTOR },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2005),
 		.driver_data = NVME_QUIRK_SINGLE_VECTOR |
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/rdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/rdma.c
@@ -451,7 +451,7 @@
 	 * Spread I/O queues completion vectors according their queue index.
 	 * Admin queues can always go on completion vector 0.
 	 */
-	comp_vector = idx == 0 ? idx : idx - 1;
+	comp_vector = (idx == 0 ? idx : idx - 1) % ibdev->num_comp_vectors;
 
 	/* Polling queues need direct cq polling context */
 	if (nvme_rdma_poll_queue(queue))
@@ -768,6 +768,7 @@
 		blk_mq_free_tag_set(ctrl->ctrl.admin_tagset);
 	}
 	if (ctrl->async_event_sqe.data) {
+		cancel_work_sync(&ctrl->ctrl.async_event_work);
 		nvme_rdma_free_qe(ctrl->device->dev, &ctrl->async_event_sqe,
 				sizeof(struct nvme_command), DMA_TO_DEVICE);
 		ctrl->async_event_sqe.data = NULL;
@@ -834,12 +835,16 @@
 
 	error = nvme_init_identify(&ctrl->ctrl);
 	if (error)
-		goto out_stop_queue;
+		goto out_quiesce_queue;
 
 	return 0;
 
+out_quiesce_queue:
+	blk_mq_quiesce_queue(ctrl->ctrl.admin_q);
+	blk_sync_queue(ctrl->ctrl.admin_q);
 out_stop_queue:
 	nvme_rdma_stop_queue(&ctrl->queues[0]);
+	nvme_cancel_admin_tagset(&ctrl->ctrl);
 out_cleanup_queue:
 	if (new)
 		blk_cleanup_queue(ctrl->ctrl.admin_q);
@@ -850,9 +855,11 @@
 	if (new)
 		blk_mq_free_tag_set(ctrl->ctrl.admin_tagset);
 out_free_async_qe:
-	nvme_rdma_free_qe(ctrl->device->dev, &ctrl->async_event_sqe,
-		sizeof(struct nvme_command), DMA_TO_DEVICE);
-	ctrl->async_event_sqe.data = NULL;
+	if (ctrl->async_event_sqe.data) {
+		nvme_rdma_free_qe(ctrl->device->dev, &ctrl->async_event_sqe,
+			sizeof(struct nvme_command), DMA_TO_DEVICE);
+		ctrl->async_event_sqe.data = NULL;
+	}
 out_free_queue:
 	nvme_rdma_free_queue(&ctrl->queues[0]);
 	return error;
@@ -888,18 +895,36 @@
 			ret = PTR_ERR(ctrl->ctrl.connect_q);
 			goto out_free_tag_set;
 		}
-	} else {
-		blk_mq_update_nr_hw_queues(&ctrl->tag_set,
-			ctrl->ctrl.queue_count - 1);
 	}
 
 	ret = nvme_rdma_start_io_queues(ctrl);
 	if (ret)
 		goto out_cleanup_connect_q;
 
+	if (!new) {
+		nvme_start_queues(&ctrl->ctrl);
+		if (!nvme_wait_freeze_timeout(&ctrl->ctrl, NVME_IO_TIMEOUT)) {
+			/*
+			 * If we timed out waiting for freeze we are likely to
+			 * be stuck.  Fail the controller initialization just
+			 * to be safe.
+			 */
+			ret = -ENODEV;
+			goto out_wait_freeze_timed_out;
+		}
+		blk_mq_update_nr_hw_queues(ctrl->ctrl.tagset,
+			ctrl->ctrl.queue_count - 1);
+		nvme_unfreeze(&ctrl->ctrl);
+	}
+
 	return 0;
 
+out_wait_freeze_timed_out:
+	nvme_stop_queues(&ctrl->ctrl);
+	nvme_sync_io_queues(&ctrl->ctrl);
+	nvme_rdma_stop_io_queues(ctrl);
 out_cleanup_connect_q:
+	nvme_cancel_tagset(&ctrl->ctrl);
 	if (new)
 		blk_cleanup_queue(ctrl->ctrl.connect_q);
 out_free_tag_set:
@@ -914,6 +939,7 @@
 		bool remove)
 {
 	blk_mq_quiesce_queue(ctrl->ctrl.admin_q);
+	blk_sync_queue(ctrl->ctrl.admin_q);
 	nvme_rdma_stop_queue(&ctrl->queues[0]);
 	if (ctrl->ctrl.admin_tagset) {
 		blk_mq_tagset_busy_iter(ctrl->ctrl.admin_tagset,
@@ -929,7 +955,9 @@
 		bool remove)
 {
 	if (ctrl->ctrl.queue_count > 1) {
+		nvme_start_freeze(&ctrl->ctrl);
 		nvme_stop_queues(&ctrl->ctrl);
+		nvme_sync_io_queues(&ctrl->ctrl);
 		nvme_rdma_stop_io_queues(ctrl);
 		if (ctrl->ctrl.tagset) {
 			blk_mq_tagset_busy_iter(ctrl->ctrl.tagset,
@@ -1032,10 +1060,18 @@
 	return 0;
 
 destroy_io:
-	if (ctrl->ctrl.queue_count > 1)
+	if (ctrl->ctrl.queue_count > 1) {
+		nvme_stop_queues(&ctrl->ctrl);
+		nvme_sync_io_queues(&ctrl->ctrl);
+		nvme_rdma_stop_io_queues(ctrl);
+		nvme_cancel_tagset(&ctrl->ctrl);
 		nvme_rdma_destroy_io_queues(ctrl, new);
+	}
 destroy_admin:
+	blk_mq_quiesce_queue(ctrl->ctrl.admin_q);
+	blk_sync_queue(ctrl->ctrl.admin_q);
 	nvme_rdma_stop_queue(&ctrl->queues[0]);
+	nvme_cancel_admin_tagset(&ctrl->ctrl);
 	nvme_rdma_destroy_admin_queue(ctrl, new);
 	return ret;
 }
@@ -1088,7 +1124,8 @@
 	if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_RESETTING))
 		return;
 
-	queue_work(nvme_wq, &ctrl->err_work);
+	dev_warn(ctrl->ctrl.device, "starting error recovery\n");
+	queue_work(nvme_reset_wq, &ctrl->err_work);
 }
 
 static void nvme_rdma_wr_error(struct ib_cq *cq, struct ib_wc *wc,
@@ -1494,6 +1531,14 @@
 		return;
 	}
 
+	/* sanity checking for received data length */
+	if (unlikely(wc->byte_len < len)) {
+		dev_err(queue->ctrl->ctrl.device,
+			"Unexpected nvme completion length(%d)\n", wc->byte_len);
+		nvme_rdma_error_recovery(queue->ctrl);
+		return;
+	}
+
 	ib_dma_sync_single_for_cpu(ibdev, qe->dma, len, DMA_FROM_DEVICE);
 	/*
 	 * AEN requests are special as they don't time out and can
@@ -1653,7 +1698,6 @@
 		complete(&queue->cm_done);
 		return 0;
 	case RDMA_CM_EVENT_REJECTED:
-		nvme_rdma_destroy_queue_ib(queue);
 		cm_error = nvme_rdma_conn_rejected(queue, ev);
 		break;
 	case RDMA_CM_EVENT_ROUTE_ERROR:
@@ -1691,6 +1735,18 @@
 	return 0;
 }
 
+static void nvme_rdma_complete_timed_out(struct request *rq)
+{
+	struct nvme_rdma_request *req = blk_mq_rq_to_pdu(rq);
+	struct nvme_rdma_queue *queue = req->queue;
+
+	nvme_rdma_stop_queue(queue);
+	if (blk_mq_request_started(rq) && !blk_mq_request_completed(rq)) {
+		nvme_req(rq)->status = NVME_SC_HOST_ABORTED_CMD;
+		blk_mq_complete_request(rq);
+	}
+}
+
 static enum blk_eh_timer_return
 nvme_rdma_timeout(struct request *rq, bool reserved)
 {
@@ -1701,29 +1757,29 @@
 	dev_warn(ctrl->ctrl.device, "I/O %d QID %d timeout\n",
 		 rq->tag, nvme_rdma_queue_idx(queue));
 
-	/*
-	 * Restart the timer if a controller reset is already scheduled. Any
-	 * timed out commands would be handled before entering the connecting
-	 * state.
-	 */
-	if (ctrl->ctrl.state == NVME_CTRL_RESETTING)
-		return BLK_EH_RESET_TIMER;
-
 	if (ctrl->ctrl.state != NVME_CTRL_LIVE) {
 		/*
-		 * Teardown immediately if controller times out while starting
-		 * or we are already started error recovery. all outstanding
-		 * requests are completed on shutdown, so we return BLK_EH_DONE.
+		 * If we are resetting, connecting or deleting we should
+		 * complete immediately because we may block controller
+		 * teardown or setup sequence
+		 * - ctrl disable/shutdown fabrics requests
+		 * - connect requests
+		 * - initialization admin requests
+		 * - I/O requests that entered after unquiescing and
+		 *   the controller stopped responding
+		 *
+		 * All other requests should be cancelled by the error
+		 * recovery work, so it's fine that we fail it here.
 		 */
-		flush_work(&ctrl->err_work);
-		nvme_rdma_teardown_io_queues(ctrl, false);
-		nvme_rdma_teardown_admin_queue(ctrl, false);
+		nvme_rdma_complete_timed_out(rq);
 		return BLK_EH_DONE;
 	}
 
-	dev_warn(ctrl->ctrl.device, "starting error recovery\n");
+	/*
+	 * LIVE state should trigger the normal error recovery which will
+	 * handle completing this request.
+	 */
 	nvme_rdma_error_recovery(ctrl);
-
 	return BLK_EH_RESET_TIMER;
 }
 
@@ -2045,8 +2101,6 @@
 	dev_info(ctrl->ctrl.device, "new ctrl: NQN \"%s\", addr %pISpcs\n",
 		ctrl->ctrl.opts->subsysnqn, &ctrl->addr);
 
-	nvme_get_ctrl(&ctrl->ctrl);
-
 	mutex_lock(&nvme_rdma_ctrl_mutex);
 	list_add_tail(&ctrl->list, &nvme_rdma_ctrl_list);
 	mutex_unlock(&nvme_rdma_ctrl_mutex);
@@ -2056,6 +2110,7 @@
 out_uninit_ctrl:
 	nvme_uninit_ctrl(&ctrl->ctrl);
 	nvme_put_ctrl(&ctrl->ctrl);
+	nvme_put_ctrl(&ctrl->ctrl);
 	if (ret > 0)
 		ret = -EIO;
 	return ERR_PTR(ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/host/tcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/host/tcp.c
@@ -164,16 +164,14 @@
 static inline bool nvme_tcp_has_inline_data(struct nvme_tcp_request *req)
 {
 	struct request *rq;
-	unsigned int bytes;
 
 	if (unlikely(nvme_tcp_async_req(req)))
 		return false; /* async events don't have a request */
 
 	rq = blk_mq_rq_from_pdu(req);
-	bytes = blk_rq_payload_bytes(rq);
 
-	return rq_data_dir(rq) == WRITE && bytes &&
-		bytes <= nvme_tcp_inline_data_size(req->queue);
+	return rq_data_dir(rq) == WRITE && req->data_len &&
+		req->data_len <= nvme_tcp_inline_data_size(req->queue);
 }
 
 static inline struct page *nvme_tcp_req_cur_page(struct nvme_tcp_request *req)
@@ -188,7 +186,7 @@
 
 static inline size_t nvme_tcp_req_cur_length(struct nvme_tcp_request *req)
 {
-	return min_t(size_t, req->iter.bvec->bv_len - req->iter.iov_offset,
+	return min_t(size_t, iov_iter_single_seg_count(&req->iter),
 			req->pdu_len - req->pdu_sent);
 }
 
@@ -422,7 +420,8 @@
 	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING))
 		return;
 
-	queue_work(nvme_wq, &to_tcp_ctrl(ctrl)->err_work);
+	dev_warn(ctrl->device, "starting error recovery\n");
+	queue_work(nvme_reset_wq, &to_tcp_ctrl(ctrl)->err_work);
 }
 
 static int nvme_tcp_process_nvme_cqe(struct nvme_tcp_queue *queue,
@@ -786,11 +785,11 @@
 {
 	struct nvme_tcp_queue *queue;
 
-	read_lock(&sk->sk_callback_lock);
+	read_lock_bh(&sk->sk_callback_lock);
 	queue = sk->sk_user_data;
 	if (likely(queue && queue->rd_enabled))
 		queue_work_on(queue->io_cpu, nvme_tcp_wq, &queue->io_work);
-	read_unlock(&sk->sk_callback_lock);
+	read_unlock_bh(&sk->sk_callback_lock);
 }
 
 static void nvme_tcp_write_space(struct sock *sk)
@@ -861,12 +860,11 @@
 		else
 			flags |= MSG_MORE;
 
-		/* can't zcopy slab pages */
-		if (unlikely(PageSlab(page))) {
-			ret = sock_no_sendpage(queue->sock, page, offset, len,
+		if (sendpage_ok(page)) {
+			ret = kernel_sendpage(queue->sock, page, offset, len,
 					flags);
 		} else {
-			ret = kernel_sendpage(queue->sock, page, offset, len,
+			ret = sock_no_sendpage(queue->sock, page, offset, len,
 					flags);
 		}
 		if (ret <= 0)
@@ -1054,7 +1052,12 @@
 		} else if (unlikely(result < 0)) {
 			dev_err(queue->ctrl->ctrl.device,
 				"failed to send request %d\n", result);
-			if (result != -EPIPE)
+
+			/*
+			 * Fail the request unless peer closed the connection,
+			 * in which case error recovery flow will complete all.
+			 */
+			if ((result != -EPIPE) && (result != -ECONNRESET))
 				nvme_tcp_fail_request(queue->request);
 			nvme_tcp_done_send_req(queue);
 			return;
@@ -1316,6 +1319,9 @@
 		}
 	}
 
+	/* Set 10 seconds timeout for icresp recvmsg */
+	queue->sock->sk->sk_rcvtimeo = 10 * HZ;
+
 	queue->sock->sk->sk_allocation = GFP_ATOMIC;
 	if (!qid)
 		n = 0;
@@ -1432,7 +1438,6 @@
 
 	if (!test_and_clear_bit(NVME_TCP_Q_LIVE, &queue->flags))
 		return;
-
 	__nvme_tcp_stop_queue(queue);
 }
 
@@ -1500,6 +1505,7 @@
 static void nvme_tcp_free_admin_queue(struct nvme_ctrl *ctrl)
 {
 	if (to_tcp_ctrl(ctrl)->async_req.pdu) {
+		cancel_work_sync(&ctrl->async_event_work);
 		nvme_tcp_free_async_req(to_tcp_ctrl(ctrl));
 		to_tcp_ctrl(ctrl)->async_req.pdu = NULL;
 	}
@@ -1678,18 +1684,36 @@
 			ret = PTR_ERR(ctrl->connect_q);
 			goto out_free_tag_set;
 		}
-	} else {
-		blk_mq_update_nr_hw_queues(ctrl->tagset,
-			ctrl->queue_count - 1);
 	}
 
 	ret = nvme_tcp_start_io_queues(ctrl);
 	if (ret)
 		goto out_cleanup_connect_q;
 
+	if (!new) {
+		nvme_start_queues(ctrl);
+		if (!nvme_wait_freeze_timeout(ctrl, NVME_IO_TIMEOUT)) {
+			/*
+			 * If we timed out waiting for freeze we are likely to
+			 * be stuck.  Fail the controller initialization just
+			 * to be safe.
+			 */
+			ret = -ENODEV;
+			goto out_wait_freeze_timed_out;
+		}
+		blk_mq_update_nr_hw_queues(ctrl->tagset,
+			ctrl->queue_count - 1);
+		nvme_unfreeze(ctrl);
+	}
+
 	return 0;
 
+out_wait_freeze_timed_out:
+	nvme_stop_queues(ctrl);
+	nvme_sync_io_queues(ctrl);
+	nvme_tcp_stop_io_queues(ctrl);
 out_cleanup_connect_q:
+	nvme_cancel_tagset(ctrl);
 	if (new)
 		blk_cleanup_queue(ctrl->connect_q);
 out_free_tag_set:
@@ -1751,12 +1775,16 @@
 
 	error = nvme_init_identify(ctrl);
 	if (error)
-		goto out_stop_queue;
+		goto out_quiesce_queue;
 
 	return 0;
 
+out_quiesce_queue:
+	blk_mq_quiesce_queue(ctrl->admin_q);
+	blk_sync_queue(ctrl->admin_q);
 out_stop_queue:
 	nvme_tcp_stop_queue(ctrl, 0);
+	nvme_cancel_admin_tagset(ctrl);
 out_cleanup_queue:
 	if (new)
 		blk_cleanup_queue(ctrl->admin_q);
@@ -1775,6 +1803,7 @@
 		bool remove)
 {
 	blk_mq_quiesce_queue(ctrl->admin_q);
+	blk_sync_queue(ctrl->admin_q);
 	nvme_tcp_stop_queue(ctrl, 0);
 	if (ctrl->admin_tagset) {
 		blk_mq_tagset_busy_iter(ctrl->admin_tagset,
@@ -1791,7 +1820,10 @@
 {
 	if (ctrl->queue_count <= 1)
 		return;
+	blk_mq_quiesce_queue(ctrl->admin_q);
+	nvme_start_freeze(ctrl);
 	nvme_stop_queues(ctrl);
+	nvme_sync_io_queues(ctrl);
 	nvme_tcp_stop_io_queues(ctrl);
 	if (ctrl->tagset) {
 		blk_mq_tagset_busy_iter(ctrl->tagset,
@@ -1866,10 +1898,18 @@
 	return 0;
 
 destroy_io:
-	if (ctrl->queue_count > 1)
+	if (ctrl->queue_count > 1) {
+		nvme_stop_queues(ctrl);
+		nvme_sync_io_queues(ctrl);
+		nvme_tcp_stop_io_queues(ctrl);
+		nvme_cancel_tagset(ctrl);
 		nvme_tcp_destroy_io_queues(ctrl, new);
+	}
 destroy_admin:
+	blk_mq_quiesce_queue(ctrl->admin_q);
+	blk_sync_queue(ctrl->admin_q);
 	nvme_tcp_stop_queue(ctrl, 0);
+	nvme_cancel_admin_tagset(ctrl);
 	nvme_tcp_destroy_admin_queue(ctrl, new);
 	return ret;
 }
@@ -2039,40 +2079,52 @@
 	nvme_tcp_queue_request(&ctrl->async_req);
 }
 
+static void nvme_tcp_complete_timed_out(struct request *rq)
+{
+	struct nvme_tcp_request *req = blk_mq_rq_to_pdu(rq);
+	struct nvme_ctrl *ctrl = &req->queue->ctrl->ctrl;
+
+	nvme_tcp_stop_queue(ctrl, nvme_tcp_queue_id(req->queue));
+	if (blk_mq_request_started(rq) && !blk_mq_request_completed(rq)) {
+		nvme_req(rq)->status = NVME_SC_HOST_ABORTED_CMD;
+		blk_mq_complete_request(rq);
+	}
+}
+
 static enum blk_eh_timer_return
 nvme_tcp_timeout(struct request *rq, bool reserved)
 {
 	struct nvme_tcp_request *req = blk_mq_rq_to_pdu(rq);
-	struct nvme_tcp_ctrl *ctrl = req->queue->ctrl;
+	struct nvme_ctrl *ctrl = &req->queue->ctrl->ctrl;
 	struct nvme_tcp_cmd_pdu *pdu = req->pdu;
 
-	/*
-	 * Restart the timer if a controller reset is already scheduled. Any
-	 * timed out commands would be handled before entering the connecting
-	 * state.
-	 */
-	if (ctrl->ctrl.state == NVME_CTRL_RESETTING)
-		return BLK_EH_RESET_TIMER;
-
-	dev_warn(ctrl->ctrl.device,
+	dev_warn(ctrl->device,
 		"queue %d: timeout request %#x type %d\n",
 		nvme_tcp_queue_id(req->queue), rq->tag, pdu->hdr.type);
 
-	if (ctrl->ctrl.state != NVME_CTRL_LIVE) {
+	if (ctrl->state != NVME_CTRL_LIVE) {
 		/*
-		 * Teardown immediately if controller times out while starting
-		 * or we are already started error recovery. all outstanding
-		 * requests are completed on shutdown, so we return BLK_EH_DONE.
+		 * If we are resetting, connecting or deleting we should
+		 * complete immediately because we may block controller
+		 * teardown or setup sequence
+		 * - ctrl disable/shutdown fabrics requests
+		 * - connect requests
+		 * - initialization admin requests
+		 * - I/O requests that entered after unquiescing and
+		 *   the controller stopped responding
+		 *
+		 * All other requests should be cancelled by the error
+		 * recovery work, so it's fine that we fail it here.
 		 */
-		flush_work(&ctrl->err_work);
-		nvme_tcp_teardown_io_queues(&ctrl->ctrl, false);
-		nvme_tcp_teardown_admin_queue(&ctrl->ctrl, false);
+		nvme_tcp_complete_timed_out(rq);
 		return BLK_EH_DONE;
 	}
 
-	dev_warn(ctrl->ctrl.device, "starting error recovery\n");
-	nvme_tcp_error_recovery(&ctrl->ctrl);
-
+	/*
+	 * LIVE state should trigger the normal error recovery which will
+	 * handle completing this request.
+	 */
+	nvme_tcp_error_recovery(ctrl);
 	return BLK_EH_RESET_TIMER;
 }
 
@@ -2085,7 +2137,9 @@
 
 	c->common.flags |= NVME_CMD_SGL_METABUF;
 
-	if (rq_data_dir(rq) == WRITE && req->data_len &&
+	if (!blk_rq_nr_phys_segments(rq))
+		nvme_tcp_set_sg_null(c);
+	else if (rq_data_dir(rq) == WRITE &&
 	    req->data_len <= nvme_tcp_inline_data_size(queue))
 		nvme_tcp_set_sg_inline(queue, c, req->data_len);
 	else
@@ -2112,7 +2166,8 @@
 	req->data_sent = 0;
 	req->pdu_len = 0;
 	req->pdu_sent = 0;
-	req->data_len = blk_rq_payload_bytes(rq);
+	req->data_len = blk_rq_nr_phys_segments(rq) ?
+				blk_rq_payload_bytes(rq) : 0;
 	req->curr_bio = rq->bio;
 
 	if (rq_data_dir(rq) == WRITE &&
@@ -2354,8 +2409,6 @@
 	dev_info(ctrl->ctrl.device, "new ctrl: NQN \"%s\", addr %pISp\n",
 		ctrl->ctrl.opts->subsysnqn, &ctrl->addr);
 
-	nvme_get_ctrl(&ctrl->ctrl);
-
 	mutex_lock(&nvme_tcp_ctrl_mutex);
 	list_add_tail(&ctrl->list, &nvme_tcp_ctrl_list);
 	mutex_unlock(&nvme_tcp_ctrl_mutex);
@@ -2365,6 +2418,7 @@
 out_uninit_ctrl:
 	nvme_uninit_ctrl(&ctrl->ctrl);
 	nvme_put_ctrl(&ctrl->ctrl);
+	nvme_put_ctrl(&ctrl->ctrl);
 	if (ret > 0)
 		ret = -EIO;
 	return ERR_PTR(ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/core.c
@@ -369,6 +369,9 @@
 
 static void nvmet_start_keep_alive_timer(struct nvmet_ctrl *ctrl)
 {
+	if (unlikely(ctrl->kato == 0))
+		return;
+
 	pr_debug("ctrl %d start keep-alive timer for %d secs\n",
 		ctrl->cntlid, ctrl->kato);
 
@@ -378,6 +381,9 @@
 
 static void nvmet_stop_keep_alive_timer(struct nvmet_ctrl *ctrl)
 {
+	if (unlikely(ctrl->kato == 0))
+		return;
+
 	pr_debug("ctrl %d stop keep-alive\n", ctrl->cntlid);
 
 	cancel_delayed_work_sync(&ctrl->ka_work);
@@ -555,7 +561,8 @@
 	} else {
 		struct nvmet_ns *old;
 
-		list_for_each_entry_rcu(old, &subsys->namespaces, dev_link) {
+		list_for_each_entry_rcu(old, &subsys->namespaces, dev_link,
+					lockdep_is_held(&subsys->lock)) {
 			BUG_ON(ns->nsid == old->nsid);
 			if (ns->nsid < old->nsid)
 				break;
@@ -871,8 +878,6 @@
 	req->error_loc = NVMET_NO_ERROR_LOC;
 	req->error_slba = 0;
 
-	trace_nvmet_req_init(req, req->cmd);
-
 	/* no support for fused commands yet */
 	if (unlikely(flags & (NVME_CMD_FUSE_FIRST | NVME_CMD_FUSE_SECOND))) {
 		req->error_loc = offsetof(struct nvme_common_command, flags);
@@ -906,6 +911,8 @@
 	if (status)
 		goto fail;
 
+	trace_nvmet_req_init(req, req->cmd);
+
 	if (unlikely(!percpu_ref_tryget_live(&sq->ref))) {
 		status = NVME_SC_INVALID_FIELD | NVME_SC_DNR;
 		goto fail;
@@ -1041,7 +1048,8 @@
 	 * in case a host died before it enabled the controller.  Hence, simply
 	 * reset the keep alive timer when the controller is enabled.
 	 */
-	mod_delayed_work(system_wq, &ctrl->ka_work, ctrl->kato * HZ);
+	if (ctrl->kato)
+		mod_delayed_work(system_wq, &ctrl->ka_work, ctrl->kato * HZ);
 }
 
 static void nvmet_clear_ctrl(struct nvmet_ctrl *ctrl)
@@ -1174,7 +1182,8 @@
 
 	ctrl->p2p_client = get_device(req->p2p_client);
 
-	list_for_each_entry_rcu(ns, &ctrl->subsys->namespaces, dev_link)
+	list_for_each_entry_rcu(ns, &ctrl->subsys->namespaces, dev_link,
+				lockdep_is_held(&ctrl->subsys->lock))
 		nvmet_p2pmem_ns_add_p2p(ctrl, ns);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/fabrics-cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/fabrics-cmd.c
@@ -105,6 +105,7 @@
 	u16 qid = le16_to_cpu(c->qid);
 	u16 sqsize = le16_to_cpu(c->sqsize);
 	struct nvmet_ctrl *old;
+	u16 ret;
 
 	old = cmpxchg(&req->sq->ctrl, NULL, ctrl);
 	if (old) {
@@ -115,7 +116,8 @@
 	if (!sqsize) {
 		pr_warn("queue size zero!\n");
 		req->error_loc = offsetof(struct nvmf_connect_command, sqsize);
-		return NVME_SC_CONNECT_INVALID_PARAM | NVME_SC_DNR;
+		ret = NVME_SC_CONNECT_INVALID_PARAM | NVME_SC_DNR;
+		goto err;
 	}
 
 	/* note: convert queue size from 0's-based value to 1's-based value */
@@ -128,16 +130,19 @@
 	}
 
 	if (ctrl->ops->install_queue) {
-		u16 ret = ctrl->ops->install_queue(req->sq);
-
+		ret = ctrl->ops->install_queue(req->sq);
 		if (ret) {
 			pr_err("failed to install queue %d cntlid %d ret %x\n",
-				qid, ret, ctrl->cntlid);
-			return ret;
+				qid, ctrl->cntlid, ret);
+			goto err;
 		}
 	}
 
 	return 0;
+
+err:
+	req->sq->ctrl = NULL;
+	return ret;
 }
 
 static void nvmet_execute_admin_connect(struct nvmet_req *req)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/fc.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/fc.c
@@ -1495,20 +1495,20 @@
 nvmet_fc_ls_disconnect(struct nvmet_fc_tgtport *tgtport,
 			struct nvmet_fc_ls_iod *iod)
 {
-	struct fcnvme_ls_disconnect_rqst *rqst =
-			(struct fcnvme_ls_disconnect_rqst *)iod->rqstbuf;
-	struct fcnvme_ls_disconnect_acc *acc =
-			(struct fcnvme_ls_disconnect_acc *)iod->rspbuf;
+	struct fcnvme_ls_disconnect_assoc_rqst *rqst =
+			(struct fcnvme_ls_disconnect_assoc_rqst *)iod->rqstbuf;
+	struct fcnvme_ls_disconnect_assoc_acc *acc =
+			(struct fcnvme_ls_disconnect_assoc_acc *)iod->rspbuf;
 	struct nvmet_fc_tgt_assoc *assoc;
 	int ret = 0;
 
 	memset(acc, 0, sizeof(*acc));
 
-	if (iod->rqstdatalen < sizeof(struct fcnvme_ls_disconnect_rqst))
+	if (iod->rqstdatalen < sizeof(struct fcnvme_ls_disconnect_assoc_rqst))
 		ret = VERR_DISCONN_LEN;
 	else if (rqst->desc_list_len !=
 			fcnvme_lsdesc_len(
-				sizeof(struct fcnvme_ls_disconnect_rqst)))
+				sizeof(struct fcnvme_ls_disconnect_assoc_rqst)))
 		ret = VERR_DISCONN_RQST_LEN;
 	else if (rqst->associd.desc_tag != cpu_to_be32(FCNVME_LSDESC_ASSOC_ID))
 		ret = VERR_ASSOC_ID;
@@ -1523,8 +1523,11 @@
 			fcnvme_lsdesc_len(
 				sizeof(struct fcnvme_lsdesc_disconn_cmd)))
 		ret = VERR_DISCONN_CMD_LEN;
-	else if ((rqst->discon_cmd.scope != FCNVME_DISCONN_ASSOCIATION) &&
-			(rqst->discon_cmd.scope != FCNVME_DISCONN_CONNECTION))
+	/*
+	 * As the standard changed on the LS, check if old format and scope
+	 * something other than Association (e.g. 0).
+	 */
+	else if (rqst->discon_cmd.rsvd8[0])
 		ret = VERR_DISCONN_SCOPE;
 	else {
 		/* match an active association */
@@ -1556,8 +1559,8 @@
 
 	nvmet_fc_format_rsp_hdr(acc, FCNVME_LS_ACC,
 			fcnvme_lsdesc_len(
-				sizeof(struct fcnvme_ls_disconnect_acc)),
-			FCNVME_LS_DISCONNECT);
+				sizeof(struct fcnvme_ls_disconnect_assoc_acc)),
+			FCNVME_LS_DISCONNECT_ASSOC);
 
 	/* release get taken in nvmet_fc_find_target_assoc */
 	nvmet_fc_tgt_a_put(iod->assoc);
@@ -1632,7 +1635,7 @@
 		/* Creates an IO Queue/Connection */
 		nvmet_fc_ls_create_connection(tgtport, iod);
 		break;
-	case FCNVME_LS_DISCONNECT:
+	case FCNVME_LS_DISCONNECT_ASSOC:
 		/* Terminate a Queue/Connection or the Association */
 		nvmet_fc_ls_disconnect(tgtport, iod);
 		break;
@@ -1994,9 +1997,9 @@
 			return;
 		if (fcpreq->fcp_error ||
 		    fcpreq->transferred_length != fcpreq->transfer_length) {
-			spin_lock(&fod->flock);
+			spin_lock_irqsave(&fod->flock, flags);
 			fod->abort = true;
-			spin_unlock(&fod->flock);
+			spin_unlock_irqrestore(&fod->flock, flags);
 
 			nvmet_req_complete(&fod->req, NVME_SC_INTERNAL);
 			return;
@@ -2299,7 +2302,7 @@
 
 	/* validate iu, so the connection id can be used to find the queue */
 	if ((cmdiubuf_len != sizeof(*cmdiu)) ||
-			(cmdiu->scsi_id != NVME_CMD_SCSI_ID) ||
+			(cmdiu->format_id != NVME_CMD_FORMAT_ID) ||
 			(cmdiu->fc_id != NVME_CMD_FC_ID) ||
 			(be16_to_cpu(cmdiu->iu_len) != (sizeof(*cmdiu)/4)))
 		return -EIO;
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/loop.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/loop.c
@@ -619,8 +619,6 @@
 	dev_info(ctrl->ctrl.device,
 		 "new ctrl: \"%s\"\n", ctrl->ctrl.opts->subsysnqn);
 
-	nvme_get_ctrl(&ctrl->ctrl);
-
 	changed = nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_LIVE);
 	WARN_ON_ONCE(!changed);
 
@@ -638,6 +636,7 @@
 	kfree(ctrl->queues);
 out_uninit_ctrl:
 	nvme_uninit_ctrl(&ctrl->ctrl);
+	nvme_put_ctrl(&ctrl->ctrl);
 out_put_ctrl:
 	nvme_put_ctrl(&ctrl->ctrl);
 	if (ret > 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/rdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/rdma.c
@@ -75,6 +75,7 @@
 
 struct nvmet_rdma_queue {
 	struct rdma_cm_id	*cm_id;
+	struct ib_qp		*qp;
 	struct nvmet_port	*port;
 	struct ib_cq		*cq;
 	atomic_t		sq_wr_avail;
@@ -464,7 +465,7 @@
 	if (ndev->srq)
 		ret = ib_post_srq_recv(ndev->srq, &cmd->wr, NULL);
 	else
-		ret = ib_post_recv(cmd->queue->cm_id->qp, &cmd->wr, NULL);
+		ret = ib_post_recv(cmd->queue->qp, &cmd->wr, NULL);
 
 	if (unlikely(ret))
 		pr_err("post_recv cmd failed\n");
@@ -503,7 +504,7 @@
 	atomic_add(1 + rsp->n_rdma, &queue->sq_wr_avail);
 
 	if (rsp->n_rdma) {
-		rdma_rw_ctx_destroy(&rsp->rw, queue->cm_id->qp,
+		rdma_rw_ctx_destroy(&rsp->rw, queue->qp,
 				queue->cm_id->port_num, rsp->req.sg,
 				rsp->req.sg_cnt, nvmet_data_dir(&rsp->req));
 	}
@@ -587,7 +588,7 @@
 
 	WARN_ON(rsp->n_rdma <= 0);
 	atomic_add(rsp->n_rdma, &queue->sq_wr_avail);
-	rdma_rw_ctx_destroy(&rsp->rw, queue->cm_id->qp,
+	rdma_rw_ctx_destroy(&rsp->rw, queue->qp,
 			queue->cm_id->port_num, rsp->req.sg,
 			rsp->req.sg_cnt, nvmet_data_dir(&rsp->req));
 	rsp->n_rdma = 0;
@@ -742,7 +743,7 @@
 	}
 
 	if (nvmet_rdma_need_data_in(rsp)) {
-		if (rdma_rw_ctx_post(&rsp->rw, queue->cm_id->qp,
+		if (rdma_rw_ctx_post(&rsp->rw, queue->qp,
 				queue->cm_id->port_num, &rsp->read_cqe, NULL))
 			nvmet_req_complete(&rsp->req, NVME_SC_DATA_XFER_ERROR);
 	} else {
@@ -1025,6 +1026,7 @@
 		pr_err("failed to create_qp ret= %d\n", ret);
 		goto err_destroy_cq;
 	}
+	queue->qp = queue->cm_id->qp;
 
 	atomic_set(&queue->sq_wr_avail, qp_attr.cap.max_send_wr);
 
@@ -1053,11 +1055,10 @@
 
 static void nvmet_rdma_destroy_queue_ib(struct nvmet_rdma_queue *queue)
 {
-	struct ib_qp *qp = queue->cm_id->qp;
-
-	ib_drain_qp(qp);
-	rdma_destroy_id(queue->cm_id);
-	ib_destroy_qp(qp);
+	ib_drain_qp(queue->qp);
+	if (queue->cm_id)
+		rdma_destroy_id(queue->cm_id);
+	ib_destroy_qp(queue->qp);
 	ib_free_cq(queue->cq);
 }
 
@@ -1291,9 +1292,12 @@
 
 	ret = nvmet_rdma_cm_accept(cm_id, queue, &event->param.conn);
 	if (ret) {
-		schedule_work(&queue->release_work);
-		/* Destroying rdma_cm id is not needed here */
-		return 0;
+		/*
+		 * Don't destroy the cm_id in free path, as we implicitly
+		 * destroy the cm_id here with non-zero ret code.
+		 */
+		queue->cm_id = NULL;
+		goto free_queue;
 	}
 
 	mutex_lock(&nvmet_rdma_queue_mutex);
@@ -1302,6 +1306,8 @@
 
 	return 0;
 
+free_queue:
+	nvmet_rdma_free_queue(queue);
 put_device:
 	kref_put(&ndev->ref, nvmet_rdma_free_dev);
 
@@ -1345,6 +1351,16 @@
 	spin_lock_irqsave(&queue->state_lock, flags);
 	switch (queue->state) {
 	case NVMET_RDMA_Q_CONNECTING:
+		while (!list_empty(&queue->rsp_wait_list)) {
+			struct nvmet_rdma_rsp *rsp;
+
+			rsp = list_first_entry(&queue->rsp_wait_list,
+					       struct nvmet_rdma_rsp,
+					       wait_list);
+			list_del(&rsp->wait_list);
+			nvmet_rdma_put_rsp(rsp);
+		}
+		fallthrough;
 	case NVMET_RDMA_Q_LIVE:
 		queue->state = NVMET_RDMA_Q_DISCONNECTING;
 		disconnect = true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/tcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/tcp.c
@@ -150,6 +150,11 @@
 static inline u16 nvmet_tcp_cmd_tag(struct nvmet_tcp_queue *queue,
 		struct nvmet_tcp_cmd *cmd)
 {
+	if (unlikely(!queue->nr_cmds)) {
+		/* We didn't allocate cmds yet, send 0xffff */
+		return USHRT_MAX;
+	}
+
 	return cmd - queue->cmds;
 }
 
@@ -287,7 +292,7 @@
 	length = cmd->pdu_len;
 	cmd->nr_mapped = DIV_ROUND_UP(length, PAGE_SIZE);
 	offset = cmd->rbytes_done;
-	cmd->sg_idx = DIV_ROUND_UP(offset, PAGE_SIZE);
+	cmd->sg_idx = offset / PAGE_SIZE;
 	sg_offset = offset % PAGE_SIZE;
 	sg = &cmd->req.sg[cmd->sg_idx];
 
@@ -300,6 +305,7 @@
 		length -= iov_len;
 		sg = sg_next(sg);
 		iov++;
+		sg_offset = 0;
 	}
 
 	iov_iter_kvec(&cmd->recv_msg.msg_iter, READ, cmd->iov,
@@ -515,7 +521,7 @@
 	return 1;
 }
 
-static int nvmet_try_send_data(struct nvmet_tcp_cmd *cmd)
+static int nvmet_try_send_data(struct nvmet_tcp_cmd *cmd, bool last_in_batch)
 {
 	struct nvmet_tcp_queue *queue = cmd->queue;
 	int ret;
@@ -523,9 +529,15 @@
 	while (cmd->cur_sg) {
 		struct page *page = sg_page(cmd->cur_sg);
 		u32 left = cmd->cur_sg->length - cmd->offset;
+		int flags = MSG_DONTWAIT;
+
+		if ((!last_in_batch && cmd->queue->send_list_len) ||
+		    cmd->wbytes_done + left < cmd->req.transfer_len ||
+		    queue->data_digest || !queue->nvme_sq.sqhd_disabled)
+			flags |= MSG_MORE;
 
 		ret = kernel_sendpage(cmd->queue->sock, page, cmd->offset,
-					left, MSG_DONTWAIT | MSG_MORE);
+					left, flags);
 		if (ret <= 0)
 			return ret;
 
@@ -660,7 +672,7 @@
 	}
 
 	if (cmd->state == NVMET_TCP_SEND_DATA) {
-		ret = nvmet_try_send_data(cmd);
+		ret = nvmet_try_send_data(cmd, last_in_batch);
 		if (ret <= 0)
 			goto done_send;
 	}
@@ -788,7 +800,7 @@
 	icresp->hdr.pdo = 0;
 	icresp->hdr.plen = cpu_to_le32(icresp->hdr.hlen);
 	icresp->pfv = cpu_to_le16(NVME_TCP_PFV_1_0);
-	icresp->maxdata = cpu_to_le32(0xffff); /* FIXME: support r2t */
+	icresp->maxdata = cpu_to_le32(0x400000); /* 16M arbitrary limit */
 	icresp->cpda = 0;
 	if (queue->hdr_digest)
 		icresp->digest |= NVME_TCP_HDR_DIGEST_ENABLE;
@@ -841,7 +853,10 @@
 	struct nvme_tcp_data_pdu *data = &queue->pdu.data;
 	struct nvmet_tcp_cmd *cmd;
 
-	cmd = &queue->cmds[data->ttag];
+	if (likely(queue->nr_cmds))
+		cmd = &queue->cmds[data->ttag];
+	else
+		cmd = &queue->connect;
 
 	if (le32_to_cpu(data->data_offset) != cmd->rbytes_done) {
 		pr_err("ttag %u unexpected data offset %u (expected %u)\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvme/target/trace.h
+++ linux-gkeop-5.4-5.4.0/drivers/nvme/target/trace.h
@@ -46,19 +46,12 @@
 	return req->sq->ctrl;
 }
 
-static inline void __assign_disk_name(char *name, struct nvmet_req *req,
-		bool init)
+static inline void __assign_req_name(char *name, struct nvmet_req *req)
 {
-	struct nvmet_ctrl *ctrl = nvmet_req_to_ctrl(req);
-	struct nvmet_ns *ns;
-
-	if ((init && req->sq->qid) || (!init && req->cq->qid)) {
-		ns = nvmet_find_namespace(ctrl, req->cmd->rw.nsid);
-		strncpy(name, ns->device_path, DISK_NAME_LEN);
-		return;
-	}
-
-	memset(name, 0, DISK_NAME_LEN);
+	if (req->ns)
+		strncpy(name, req->ns->device_path, DISK_NAME_LEN);
+	else
+		memset(name, 0, DISK_NAME_LEN);
 }
 #endif
 
@@ -81,7 +74,7 @@
 	TP_fast_assign(
 		__entry->cmd = cmd;
 		__entry->ctrl = nvmet_req_to_ctrl(req);
-		__assign_disk_name(__entry->disk, req, true);
+		__assign_req_name(__entry->disk, req);
 		__entry->qid = req->sq->qid;
 		__entry->cid = cmd->common.command_id;
 		__entry->opcode = cmd->common.opcode;
@@ -121,7 +114,7 @@
 		__entry->cid = req->cqe->command_id;
 		__entry->result = le64_to_cpu(req->cqe->result.u64);
 		__entry->status = le16_to_cpu(req->cqe->status) >> 1;
-		__assign_disk_name(__entry->disk, req, false);
+		__assign_req_name(__entry->disk, req);
 	),
 	TP_printk("nvmet%s: %sqid=%d, cmdid=%u, res=%#llx, status=%#x",
 		__print_ctrl_name(__entry->ctrl),
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvmem/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvmem/core.c
@@ -110,7 +110,7 @@
 	list_del(&cell->node);
 	mutex_unlock(&nvmem_mutex);
 	of_node_put(cell->np);
-	kfree(cell->name);
+	kfree_const(cell->name);
 	kfree(cell);
 }
 
@@ -130,9 +130,9 @@
 	blocking_notifier_call_chain(&nvmem_notifier, NVMEM_CELL_ADD, cell);
 }
 
-static int nvmem_cell_info_to_nvmem_cell(struct nvmem_device *nvmem,
-				   const struct nvmem_cell_info *info,
-				   struct nvmem_cell *cell)
+static int nvmem_cell_info_to_nvmem_cell_nodup(struct nvmem_device *nvmem,
+					const struct nvmem_cell_info *info,
+					struct nvmem_cell *cell)
 {
 	cell->nvmem = nvmem;
 	cell->offset = info->offset;
@@ -149,13 +149,30 @@
 	if (!IS_ALIGNED(cell->offset, nvmem->stride)) {
 		dev_err(&nvmem->dev,
 			"cell %s unaligned to nvmem stride %d\n",
-			cell->name, nvmem->stride);
+			cell->name ?: "<unknown>", nvmem->stride);
 		return -EINVAL;
 	}
 
 	return 0;
 }
 
+static int nvmem_cell_info_to_nvmem_cell(struct nvmem_device *nvmem,
+				const struct nvmem_cell_info *info,
+				struct nvmem_cell *cell)
+{
+	int err;
+
+	err = nvmem_cell_info_to_nvmem_cell_nodup(nvmem, info, cell);
+	if (err)
+		return err;
+
+	cell->name = kstrdup_const(info->name, GFP_KERNEL);
+	if (!cell->name)
+		return -ENOMEM;
+
+	return 0;
+}
+
 /**
  * nvmem_add_cells() - Add cell information to an nvmem device
  *
@@ -297,7 +314,9 @@
 
 	for_each_child_of_node(parent, child) {
 		addr = of_get_property(child, "reg", &len);
-		if (!addr || (len < 2 * sizeof(u32))) {
+		if (!addr)
+			continue;
+		if (len < 2 * sizeof(u32)) {
 			dev_err(dev, "nvmem: invalid reg on %pOF\n", child);
 			return -EINVAL;
 		}
@@ -327,7 +346,8 @@
 			dev_err(dev, "cell %s unaligned to nvmem stride %d\n",
 				cell->name, nvmem->stride);
 			/* Cells already added will be freed later. */
-			kfree(cell->name);
+			kfree_const(cell->name);
+			of_node_put(cell->np);
 			kfree(cell);
 			return -EINVAL;
 		}
@@ -1172,7 +1192,7 @@
 	if (!nvmem)
 		return -EINVAL;
 
-	rc = nvmem_cell_info_to_nvmem_cell(nvmem, info, &cell);
+	rc = nvmem_cell_info_to_nvmem_cell_nodup(nvmem, info, &cell);
 	if (rc)
 		return rc;
 
@@ -1202,7 +1222,7 @@
 	if (!nvmem)
 		return -EINVAL;
 
-	rc = nvmem_cell_info_to_nvmem_cell(nvmem, info, &cell);
+	rc = nvmem_cell_info_to_nvmem_cell_nodup(nvmem, info, &cell);
 	if (rc)
 		return rc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvmem/imx-ocotp.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvmem/imx-ocotp.c
@@ -521,6 +521,10 @@
 	if (IS_ERR(priv->clk))
 		return PTR_ERR(priv->clk);
 
+	clk_prepare_enable(priv->clk);
+	imx_ocotp_clr_err_if_set(priv->base);
+	clk_disable_unprepare(priv->clk);
+
 	priv->params = of_device_get_match_data(&pdev->dev);
 	imx_ocotp_nvmem_config.size = 4 * priv->params->nregs;
 	imx_ocotp_nvmem_config.dev = dev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvmem/nvmem-sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvmem/nvmem-sysfs.c
@@ -56,6 +56,9 @@
 
 	count = round_down(count, nvmem->word_size);
 
+	if (!nvmem->reg_read)
+		return -EPERM;
+
 	rc = nvmem->reg_read(nvmem->priv, pos, buf, count);
 
 	if (rc)
@@ -90,6 +93,9 @@
 
 	count = round_down(count, nvmem->word_size);
 
+	if (!nvmem->reg_write)
+		return -EPERM;
+
 	rc = nvmem->reg_write(nvmem->priv, pos, buf, count);
 
 	if (rc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/nvmem/qfprom.c
+++ linux-gkeop-5.4-5.4.0/drivers/nvmem/qfprom.c
@@ -27,25 +27,11 @@
 	return 0;
 }
 
-static int qfprom_reg_write(void *context,
-			 unsigned int reg, void *_val, size_t bytes)
-{
-	struct qfprom_priv *priv = context;
-	u8 *val = _val;
-	int i = 0, words = bytes;
-
-	while (words--)
-		writeb(*val++, priv->base + reg + i++);
-
-	return 0;
-}
-
 static struct nvmem_config econfig = {
 	.name = "qfprom",
 	.stride = 1,
 	.word_size = 1,
 	.reg_read = qfprom_reg_read,
-	.reg_write = qfprom_reg_write,
 };
 
 static int qfprom_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/of/Kconfig
@@ -103,4 +103,8 @@
 config OF_NUMA
 	bool
 
+config OF_DMA_DEFAULT_COHERENT
+	# arches should select this if DMA is coherent by default for OF devices
+	bool
+
 endif # OF
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/address.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/address.c
@@ -998,11 +998,17 @@
  * @np:	device node
  *
  * It returns true if "dma-coherent" property was found
- * for this device in DT.
+ * for this device in the DT, or if DMA is coherent by
+ * default for OF devices on the current platform.
  */
 bool of_dma_is_coherent(struct device_node *np)
 {
-	struct device_node *node = of_node_get(np);
+	struct device_node *node;
+
+	if (IS_ENABLED(CONFIG_OF_DMA_DEFAULT_COHERENT))
+		return true;
+
+	node = of_node_get(np);
 
 	while (node) {
 		if (of_property_read_bool(node, "dma-coherent")) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/fdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/fdt.c
@@ -1153,8 +1153,16 @@
 int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
 					phys_addr_t size, bool nomap)
 {
-	if (nomap)
-		return memblock_remove(base, size);
+	if (nomap) {
+		/*
+		 * If the memory is already reserved (by another region), we
+		 * should not allow it to be marked nomap.
+		 */
+		if (memblock_is_region_reserved(base, size))
+			return -EBUSY;
+
+		return memblock_mark_nomap(base, size);
+	}
 	return memblock_reserve(base, size);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/kobj.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/kobj.c
@@ -134,8 +134,6 @@
 	if (!name)
 		return -ENOMEM;
 
-	of_node_get(np);
-
 	rc = kobject_add(&np->kobj, parent, "%s", name);
 	kfree(name);
 	if (rc)
@@ -144,6 +142,7 @@
 	for_each_property_of_node(np, pp)
 		__of_add_property_sysfs(np, pp);
 
+	of_node_get(np);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/of_mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/of_mdio.c
@@ -265,8 +265,14 @@
 				 child, addr);
 
 			if (of_mdiobus_child_is_phy(child)) {
+				/* -ENODEV is the return code that PHYLIB has
+				 * standardized on to indicate that bus
+				 * scanning should continue.
+				 */
 				rc = of_mdiobus_register_phy(mdio, child, addr);
-				if (rc && rc != -ENODEV)
+				if (!rc)
+					break;
+				if (rc != -ENODEV)
 					goto unregister;
 			}
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/of_reserved_mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/of_reserved_mem.c
@@ -200,6 +200,16 @@
 	if (ra->base > rb->base)
 		return 1;
 
+	/*
+	 * Put the dynamic allocations (address == 0, size == 0) before static
+	 * allocations at address 0x0 so that overlap detection works
+	 * correctly.
+	 */
+	if (ra->size < rb->size)
+		return -1;
+	if (ra->size > rb->size)
+		return 1;
+
 	return 0;
 }
 
@@ -217,8 +227,7 @@
 
 		this = &reserved_mem[i];
 		next = &reserved_mem[i + 1];
-		if (!(this->base && next->base))
-			continue;
+
 		if (this->base + this->size > next->base) {
 			phys_addr_t this_end, next_end;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/overlay.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/overlay.c
@@ -261,6 +261,8 @@
 
 	of_property_set_flag(new_prop, OF_DYNAMIC);
 
+	kfree(target_path);
+
 	return new_prop;
 
 err_free_new_prop:
@@ -305,7 +307,6 @@
 {
 	struct property *new_prop = NULL, *prop;
 	int ret = 0;
-	bool check_for_non_overlay_node = false;
 
 	if (target->in_livetree)
 		if (!of_prop_cmp(overlay_prop->name, "name") ||
@@ -318,6 +319,25 @@
 	else
 		prop = NULL;
 
+	if (prop) {
+		if (!of_prop_cmp(prop->name, "#address-cells")) {
+			if (!of_prop_val_eq(prop, overlay_prop)) {
+				pr_err("ERROR: changing value of #address-cells is not allowed in %pOF\n",
+				       target->np);
+				ret = -EINVAL;
+			}
+			return ret;
+
+		} else if (!of_prop_cmp(prop->name, "#size-cells")) {
+			if (!of_prop_val_eq(prop, overlay_prop)) {
+				pr_err("ERROR: changing value of #size-cells is not allowed in %pOF\n",
+				       target->np);
+				ret = -EINVAL;
+			}
+			return ret;
+		}
+	}
+
 	if (is_symbols_prop) {
 		if (prop)
 			return -EINVAL;
@@ -330,33 +350,18 @@
 		return -ENOMEM;
 
 	if (!prop) {
-		check_for_non_overlay_node = true;
 		if (!target->in_livetree) {
 			new_prop->next = target->np->deadprops;
 			target->np->deadprops = new_prop;
 		}
 		ret = of_changeset_add_property(&ovcs->cset, target->np,
 						new_prop);
-	} else if (!of_prop_cmp(prop->name, "#address-cells")) {
-		if (!of_prop_val_eq(prop, new_prop)) {
-			pr_err("ERROR: changing value of #address-cells is not allowed in %pOF\n",
-			       target->np);
-			ret = -EINVAL;
-		}
-	} else if (!of_prop_cmp(prop->name, "#size-cells")) {
-		if (!of_prop_val_eq(prop, new_prop)) {
-			pr_err("ERROR: changing value of #size-cells is not allowed in %pOF\n",
-			       target->np);
-			ret = -EINVAL;
-		}
 	} else {
-		check_for_non_overlay_node = true;
 		ret = of_changeset_update_property(&ovcs->cset, target->np,
 						   new_prop);
 	}
 
-	if (check_for_non_overlay_node &&
-	    !of_node_check_flag(target->np, OF_OVERLAY))
+	if (!of_node_check_flag(target->np, OF_OVERLAY))
 		pr_err("WARNING: memory leak will occur if overlay removed, property: %pOF/%s\n",
 		       target->np, new_prop->name);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/of/unittest.c
+++ linux-gkeop-5.4-5.4.0/drivers/of/unittest.c
@@ -776,6 +776,10 @@
 	unittest(!of_changeset_revert(&chgset), "revert failed\n");
 
 	of_changeset_destroy(&chgset);
+
+	of_node_put(n1);
+	of_node_put(n2);
+	of_node_put(n21);
 #endif
 }
 
@@ -1061,10 +1065,13 @@
 
 	of_platform_populate(np, match, NULL, &test_bus->dev);
 	for_each_child_of_node(np, child) {
-		for_each_child_of_node(child, grandchild)
-			unittest(of_find_device_by_node(grandchild),
+		for_each_child_of_node(child, grandchild) {
+			pdev = of_find_device_by_node(grandchild);
+			unittest(pdev,
 				 "Could not create device for node '%pOFn'\n",
 				 grandchild);
+			of_dev_put(pdev);
+		}
 	}
 
 	of_platform_depopulate(&test_bus->dev);
@@ -1146,8 +1153,10 @@
 	full_name = kasprintf(GFP_KERNEL, "%pOF", np);
 
 	if (!strcmp(full_name, "/__local_fixups__") ||
-	    !strcmp(full_name, "/__fixups__"))
+	    !strcmp(full_name, "/__fixups__")) {
+		kfree(full_name);
 		return;
+	}
 
 	dup = of_find_node_by_path(full_name);
 	kfree(full_name);
@@ -2472,8 +2481,11 @@
 				goto err_unlock;
 			}
 			if (__of_add_property(of_symbols, new_prop)) {
+				kfree(new_prop->name);
+				kfree(new_prop->value);
+				kfree(new_prop);
 				/* "name" auto-generated by unflatten */
-				if (!strcmp(new_prop->name, "name"))
+				if (!strcmp(prop->name, "name"))
 					continue;
 				unittest(0, "duplicate property '%s' in overlay_base node __symbols__",
 					 prop->name);
--- linux-gkeop-5.4-5.4.0.orig/drivers/opp/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/opp/core.c
@@ -843,10 +843,12 @@
 
 	/* Return early if nothing to do */
 	if (old_freq == freq) {
-		dev_dbg(dev, "%s: old/new frequencies (%lu Hz) are same, nothing to do\n",
-			__func__, freq);
-		ret = 0;
-		goto put_opp_table;
+		if (!opp_table->required_opp_tables && !opp_table->regulators) {
+			dev_dbg(dev, "%s: old/new frequencies (%lu Hz) are same, nothing to do\n",
+				__func__, freq);
+			ret = 0;
+			goto put_opp_table;
+		}
 	}
 
 	temp_freq = old_freq;
@@ -988,7 +990,6 @@
 	BLOCKING_INIT_NOTIFIER_HEAD(&opp_table->head);
 	INIT_LIST_HEAD(&opp_table->opp_list);
 	kref_init(&opp_table->kref);
-	kref_init(&opp_table->list_kref);
 
 	/* Secure the device table modification */
 	list_add(&opp_table->node, &opp_tables);
@@ -1045,6 +1046,10 @@
 	struct opp_table *opp_table = container_of(kref, struct opp_table, kref);
 	struct opp_device *opp_dev, *temp;
 
+	/* Drop the lock as soon as we can */
+	list_del(&opp_table->node);
+	mutex_unlock(&opp_table_lock);
+
 	_of_clear_opp_table(opp_table);
 
 	/* Release clk */
@@ -1066,37 +1071,7 @@
 
 	mutex_destroy(&opp_table->genpd_virt_dev_lock);
 	mutex_destroy(&opp_table->lock);
-	list_del(&opp_table->node);
 	kfree(opp_table);
-
-	mutex_unlock(&opp_table_lock);
-}
-
-void _opp_remove_all_static(struct opp_table *opp_table)
-{
-	struct dev_pm_opp *opp, *tmp;
-
-	list_for_each_entry_safe(opp, tmp, &opp_table->opp_list, node) {
-		if (!opp->dynamic)
-			dev_pm_opp_put(opp);
-	}
-
-	opp_table->parsed_static_opps = false;
-}
-
-static void _opp_table_list_kref_release(struct kref *kref)
-{
-	struct opp_table *opp_table = container_of(kref, struct opp_table,
-						   list_kref);
-
-	_opp_remove_all_static(opp_table);
-	mutex_unlock(&opp_table_lock);
-}
-
-void _put_opp_list_kref(struct opp_table *opp_table)
-{
-	kref_put_mutex(&opp_table->list_kref, _opp_table_list_kref_release,
-		       &opp_table_lock);
 }
 
 void dev_pm_opp_put_opp_table(struct opp_table *opp_table)
@@ -1202,6 +1177,24 @@
 }
 EXPORT_SYMBOL_GPL(dev_pm_opp_remove);
 
+void _opp_remove_all_static(struct opp_table *opp_table)
+{
+	struct dev_pm_opp *opp, *tmp;
+
+	mutex_lock(&opp_table->lock);
+
+	if (!opp_table->parsed_static_opps || --opp_table->parsed_static_opps)
+		goto unlock;
+
+	list_for_each_entry_safe(opp, tmp, &opp_table->opp_list, node) {
+		if (!opp->dynamic)
+			dev_pm_opp_put_unlocked(opp);
+	}
+
+unlock:
+	mutex_unlock(&opp_table->lock);
+}
+
 /**
  * dev_pm_opp_remove_all_dynamic() - Remove all dynamically created OPPs
  * @dev:	device for which we do this operation
@@ -1804,6 +1797,9 @@
 {
 	int index;
 
+	if (!opp_table->genpd_virt_devs)
+		return;
+
 	for (index = 0; index < opp_table->required_opp_count; index++) {
 		if (!opp_table->genpd_virt_devs[index])
 			continue;
@@ -1850,6 +1846,9 @@
 	if (!opp_table)
 		return ERR_PTR(-ENOMEM);
 
+	if (opp_table->genpd_virt_devs)
+		return opp_table;
+
 	/*
 	 * If the genpd's OPP table isn't already initialized, parsing of the
 	 * required-opps fail for dev. We should retry this after genpd's OPP
@@ -2207,7 +2206,7 @@
 		return;
 	}
 
-	_put_opp_list_kref(opp_table);
+	_opp_remove_all_static(opp_table);
 
 	/* Drop reference taken by _find_opp_table() */
 	dev_pm_opp_put_opp_table(opp_table);
--- linux-gkeop-5.4-5.4.0.orig/drivers/opp/of.c
+++ linux-gkeop-5.4-5.4.0/drivers/opp/of.c
@@ -658,17 +658,15 @@
 	struct dev_pm_opp *opp;
 
 	/* OPP table is already initialized for the device */
+	mutex_lock(&opp_table->lock);
 	if (opp_table->parsed_static_opps) {
-		kref_get(&opp_table->list_kref);
+		opp_table->parsed_static_opps++;
+		mutex_unlock(&opp_table->lock);
 		return 0;
 	}
 
-	/*
-	 * Re-initialize list_kref every time we add static OPPs to the OPP
-	 * table as the reference count may be 0 after the last tie static OPPs
-	 * were removed.
-	 */
-	kref_init(&opp_table->list_kref);
+	opp_table->parsed_static_opps = 1;
+	mutex_unlock(&opp_table->lock);
 
 	/* We have opp-table node now, iterate over it and add OPPs */
 	for_each_available_child_of_node(opp_table->np, np) {
@@ -678,15 +676,17 @@
 			dev_err(dev, "%s: Failed to add OPP, %d\n", __func__,
 				ret);
 			of_node_put(np);
-			return ret;
+			goto remove_static_opp;
 		} else if (opp) {
 			count++;
 		}
 	}
 
 	/* There should be one of more OPP defined */
-	if (WARN_ON(!count))
-		return -ENOENT;
+	if (WARN_ON(!count)) {
+		ret = -ENOENT;
+		goto remove_static_opp;
+	}
 
 	list_for_each_entry(opp, &opp_table->opp_list, node)
 		pstate_count += !!opp->pstate;
@@ -695,15 +695,19 @@
 	if (pstate_count && pstate_count != count) {
 		dev_err(dev, "Not all nodes have performance state set (%d: %d)\n",
 			count, pstate_count);
-		return -ENOENT;
+		ret = -ENOENT;
+		goto remove_static_opp;
 	}
 
 	if (pstate_count)
 		opp_table->genpd_performance_state = true;
 
-	opp_table->parsed_static_opps = true;
-
 	return 0;
+
+remove_static_opp:
+	_opp_remove_all_static(opp_table);
+
+	return ret;
 }
 
 /* Initializes OPP tables based on old-deprecated bindings */
@@ -729,6 +733,10 @@
 		return -EINVAL;
 	}
 
+	mutex_lock(&opp_table->lock);
+	opp_table->parsed_static_opps = 1;
+	mutex_unlock(&opp_table->lock);
+
 	val = prop->value;
 	while (nr) {
 		unsigned long freq = be32_to_cpup(val++) * 1000;
@@ -738,6 +746,7 @@
 		if (ret) {
 			dev_err(dev, "%s: Failed to add OPP %ld (%d)\n",
 				__func__, freq, ret);
+			_opp_remove_all_static(opp_table);
 			return ret;
 		}
 		nr -= 2;
--- linux-gkeop-5.4-5.4.0.orig/drivers/opp/opp.h
+++ linux-gkeop-5.4-5.4.0/drivers/opp/opp.h
@@ -127,11 +127,10 @@
  * @dev_list:	list of devices that share these OPPs
  * @opp_list:	table of opps
  * @kref:	for reference count of the table.
- * @list_kref:	for reference count of the OPP list.
  * @lock:	mutex protecting the opp_list and dev_list.
  * @np:		struct device_node pointer for opp's DT node.
  * @clock_latency_ns_max: Max clock latency in nanoseconds.
- * @parsed_static_opps: True if OPPs are initialized from DT.
+ * @parsed_static_opps: Count of devices for which OPPs are initialized from DT.
  * @shared_opp: OPP is shared between multiple devices.
  * @suspend_opp: Pointer to OPP to be used during device suspend.
  * @genpd_virt_dev_lock: Mutex protecting the genpd virtual device pointers.
@@ -167,7 +166,6 @@
 	struct list_head dev_list;
 	struct list_head opp_list;
 	struct kref kref;
-	struct kref list_kref;
 	struct mutex lock;
 
 	struct device_node *np;
@@ -176,7 +174,7 @@
 	/* For backward compatibility with v1 bindings */
 	unsigned int voltage_tolerance_v1;
 
-	bool parsed_static_opps;
+	unsigned int parsed_static_opps;
 	enum opp_table_access shared_opp;
 	struct dev_pm_opp *suspend_opp;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/parisc/sba_iommu.c
+++ linux-gkeop-5.4-5.4.0/drivers/parisc/sba_iommu.c
@@ -1270,7 +1270,7 @@
 	** (one that doesn't overlap memory or LMMIO space) in the
 	** IBASE and IMASK registers.
 	*/
-	ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE);
+	ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE) & ~0x1fffffULL;
 	iova_space_size = ~(READ_REG(ioc->ioc_hpa + IOC_IMASK) & 0xFFFFFFFFUL) + 1;
 
 	if ((ioc->ibase < 0xfed00000UL) && ((ioc->ibase + iova_space_size) > 0xfee00000UL)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/parport/share.c
+++ linux-gkeop-5.4-5.4.0/drivers/parport/share.c
@@ -230,6 +230,18 @@
 	return 0;
 }
 
+/*
+ * Iterates through all the devices connected to the bus and return 1
+ * if the device is a parallel port.
+ */
+
+static int port_detect(struct device *dev, void *dev_drv)
+{
+	if (is_parport(dev))
+		return 1;
+	return 0;
+}
+
 /**
  *	parport_register_driver - register a parallel port device driver
  *	@drv: structure describing the driver
@@ -282,6 +294,15 @@
 		if (ret)
 			return ret;
 
+		/*
+		 * check if bus has any parallel port registered, if
+		 * none is found then load the lowlevel driver.
+		 */
+		ret = bus_for_each_dev(&parport_bus_type, NULL, NULL,
+				       port_detect);
+		if (!ret)
+			get_lowlevel_driver();
+
 		mutex_lock(&registration_lock);
 		if (drv->match_port)
 			bus_for_each_dev(&parport_bus_type, NULL, drv,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/access.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/access.c
@@ -204,17 +204,13 @@
 static DECLARE_WAIT_QUEUE_HEAD(pci_cfg_wait);
 
 static noinline void pci_wait_cfg(struct pci_dev *dev)
+	__must_hold(&pci_lock)
 {
-	DECLARE_WAITQUEUE(wait, current);
-
-	__add_wait_queue(&pci_cfg_wait, &wait);
 	do {
-		set_current_state(TASK_UNINTERRUPTIBLE);
 		raw_spin_unlock_irq(&pci_lock);
-		schedule();
+		wait_event(pci_cfg_wait, !dev->block_cfg_access);
 		raw_spin_lock_irq(&pci_lock);
 	} while (dev->block_cfg_access);
-	__remove_wait_queue(&pci_cfg_wait, &wait);
 }
 
 /* Returns 0 on success, negative values indicate error. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/bus.c
@@ -322,12 +322,8 @@
 
 	dev->match_driver = true;
 	retval = device_attach(&dev->dev);
-	if (retval < 0 && retval != -EPROBE_DEFER) {
+	if (retval < 0 && retval != -EPROBE_DEFER)
 		pci_warn(dev, "device attach failed (%d)\n", retval);
-		pci_proc_detach_device(dev);
-		pci_remove_sysfs_dev_files(dev);
-		return;
-	}
 
 	pci_dev_assign_added(dev, true);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/dwc/pci-keystone.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/dwc/pci-keystone.c
@@ -422,7 +422,7 @@
 				   lower_32_bits(start) | OB_ENABLEN);
 		ks_pcie_app_writel(ks_pcie, OB_OFFSET_HI(i),
 				   upper_32_bits(start));
-		start += OB_WIN_SIZE;
+		start += OB_WIN_SIZE * SZ_1M;
 	}
 
 	val = ks_pcie_app_readl(ks_pcie, CMD_STATUS);
@@ -510,7 +510,7 @@
 	/* Disable Link training */
 	val = ks_pcie_app_readl(ks_pcie, CMD_STATUS);
 	val &= ~LTSSM_EN_VAL;
-	ks_pcie_app_writel(ks_pcie, CMD_STATUS, LTSSM_EN_VAL | val);
+	ks_pcie_app_writel(ks_pcie, CMD_STATUS, val);
 }
 
 static int ks_pcie_start_link(struct dw_pcie *pci)
@@ -1354,7 +1354,7 @@
 		ret = of_property_read_u32(np, "num-viewport", &num_viewport);
 		if (ret < 0) {
 			dev_err(dev, "unable to read *num-viewport* property\n");
-			return ret;
+			goto err_get_sync;
 		}
 
 		/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/dwc/pci-meson.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/dwc/pci-meson.c
@@ -250,15 +250,15 @@
 	if (IS_ERR(res->port_clk))
 		return PTR_ERR(res->port_clk);
 
-	res->mipi_gate = meson_pcie_probe_clock(dev, "pcie_mipi_en", 0);
+	res->mipi_gate = meson_pcie_probe_clock(dev, "mipi", 0);
 	if (IS_ERR(res->mipi_gate))
 		return PTR_ERR(res->mipi_gate);
 
-	res->general_clk = meson_pcie_probe_clock(dev, "pcie_general", 0);
+	res->general_clk = meson_pcie_probe_clock(dev, "general", 0);
 	if (IS_ERR(res->general_clk))
 		return PTR_ERR(res->general_clk);
 
-	res->clk = meson_pcie_probe_clock(dev, "pcie", 0);
+	res->clk = meson_pcie_probe_clock(dev, "pclk", 0);
 	if (IS_ERR(res->clk))
 		return PTR_ERR(res->clk);
 
@@ -301,11 +301,11 @@
 	meson_cfg_writel(mp, val, PCIE_CFG0);
 
 	val = meson_elb_readl(mp, PCIE_PORT_LINK_CTRL_OFF);
-	val &= ~LINK_CAPABLE_MASK;
+	val &= ~(LINK_CAPABLE_MASK | FAST_LINK_MODE);
 	meson_elb_writel(mp, val, PCIE_PORT_LINK_CTRL_OFF);
 
 	val = meson_elb_readl(mp, PCIE_PORT_LINK_CTRL_OFF);
-	val |= LINK_CAPABLE_X1 | FAST_LINK_MODE;
+	val |= LINK_CAPABLE_X1;
 	meson_elb_writel(mp, val, PCIE_PORT_LINK_CTRL_OFF);
 
 	val = meson_elb_readl(mp, PCIE_GEN2_CTRL_OFF);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/dwc/pcie-designware-host.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -78,7 +78,8 @@
 irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)
 {
 	int i, pos, irq;
-	u32 val, num_ctrls;
+	unsigned long val;
+	u32 status, num_ctrls;
 	irqreturn_t ret = IRQ_NONE;
 
 	num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL;
@@ -86,14 +87,14 @@
 	for (i = 0; i < num_ctrls; i++) {
 		dw_pcie_rd_own_conf(pp, PCIE_MSI_INTR0_STATUS +
 					(i * MSI_REG_CTRL_BLOCK_SIZE),
-				    4, &val);
-		if (!val)
+				    4, &status);
+		if (!status)
 			continue;
 
 		ret = IRQ_HANDLED;
+		val = status;
 		pos = 0;
-		while ((pos = find_next_bit((unsigned long *) &val,
-					    MAX_MSI_IRQS_PER_CTRL,
+		while ((pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL,
 					    pos)) != MAX_MSI_IRQS_PER_CTRL) {
 			irq = irq_find_mapping(pp->irq_domain,
 					       (i * MAX_MSI_IRQS_PER_CTRL) +
@@ -262,6 +263,8 @@
 		return -ENOMEM;
 	}
 
+	irq_domain_update_bus_token(pp->irq_domain, DOMAIN_BUS_NEXUS);
+
 	pp->msi_domain = pci_msi_create_irq_domain(fwnode,
 						   &dw_pcie_msi_domain_info,
 						   pp->irq_domain);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/dwc/pcie-qcom.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/dwc/pcie-qcom.c
@@ -45,7 +45,13 @@
 #define PCIE_CAP_CPL_TIMEOUT_DISABLE		0x10
 
 #define PCIE20_PARF_PHY_CTRL			0x40
+#define PHY_CTRL_PHY_TX0_TERM_OFFSET_MASK	GENMASK(20, 16)
+#define PHY_CTRL_PHY_TX0_TERM_OFFSET(x)		((x) << 16)
+
 #define PCIE20_PARF_PHY_REFCLK			0x4C
+#define PHY_REFCLK_SSP_EN			BIT(16)
+#define PHY_REFCLK_USE_PAD			BIT(12)
+
 #define PCIE20_PARF_DBI_BASE_ADDR		0x168
 #define PCIE20_PARF_SLV_ADDR_SPACE_SIZE		0x16C
 #define PCIE20_PARF_MHI_CLOCK_RESET_CTRL	0x174
@@ -76,6 +82,18 @@
 #define DBI_RO_WR_EN				1
 
 #define PERST_DELAY_US				1000
+/* PARF registers */
+#define PCIE20_PARF_PCS_DEEMPH			0x34
+#define PCS_DEEMPH_TX_DEEMPH_GEN1(x)		((x) << 16)
+#define PCS_DEEMPH_TX_DEEMPH_GEN2_3_5DB(x)	((x) << 8)
+#define PCS_DEEMPH_TX_DEEMPH_GEN2_6DB(x)	((x) << 0)
+
+#define PCIE20_PARF_PCS_SWING			0x38
+#define PCS_SWING_TX_SWING_FULL(x)		((x) << 8)
+#define PCS_SWING_TX_SWING_LOW(x)		((x) << 0)
+
+#define PCIE20_PARF_CONFIG_BITS		0x50
+#define PHY_RX0_EQ(x)				((x) << 24)
 
 #define PCIE20_v3_PARF_SLV_ADDR_SPACE_SIZE	0x358
 #define SLV_ADDR_SPACE_SZ			0x10000000
@@ -85,11 +103,14 @@
 	struct clk *iface_clk;
 	struct clk *core_clk;
 	struct clk *phy_clk;
+	struct clk *aux_clk;
+	struct clk *ref_clk;
 	struct reset_control *pci_reset;
 	struct reset_control *axi_reset;
 	struct reset_control *ahb_reset;
 	struct reset_control *por_reset;
 	struct reset_control *phy_reset;
+	struct reset_control *ext_reset;
 	struct regulator_bulk_data supplies[QCOM_PCIE_2_1_0_MAX_SUPPLY];
 };
 
@@ -235,6 +256,14 @@
 	if (IS_ERR(res->phy_clk))
 		return PTR_ERR(res->phy_clk);
 
+	res->aux_clk = devm_clk_get_optional(dev, "aux");
+	if (IS_ERR(res->aux_clk))
+		return PTR_ERR(res->aux_clk);
+
+	res->ref_clk = devm_clk_get_optional(dev, "ref");
+	if (IS_ERR(res->ref_clk))
+		return PTR_ERR(res->ref_clk);
+
 	res->pci_reset = devm_reset_control_get_exclusive(dev, "pci");
 	if (IS_ERR(res->pci_reset))
 		return PTR_ERR(res->pci_reset);
@@ -251,6 +280,10 @@
 	if (IS_ERR(res->por_reset))
 		return PTR_ERR(res->por_reset);
 
+	res->ext_reset = devm_reset_control_get_optional_exclusive(dev, "ext");
+	if (IS_ERR(res->ext_reset))
+		return PTR_ERR(res->ext_reset);
+
 	res->phy_reset = devm_reset_control_get_exclusive(dev, "phy");
 	return PTR_ERR_OR_ZERO(res->phy_reset);
 }
@@ -259,14 +292,20 @@
 {
 	struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0;
 
+	clk_disable_unprepare(res->phy_clk);
 	reset_control_assert(res->pci_reset);
 	reset_control_assert(res->axi_reset);
 	reset_control_assert(res->ahb_reset);
 	reset_control_assert(res->por_reset);
-	reset_control_assert(res->pci_reset);
+	reset_control_assert(res->ext_reset);
+	reset_control_assert(res->phy_reset);
 	clk_disable_unprepare(res->iface_clk);
 	clk_disable_unprepare(res->core_clk);
-	clk_disable_unprepare(res->phy_clk);
+	clk_disable_unprepare(res->aux_clk);
+	clk_disable_unprepare(res->ref_clk);
+
+	writel(1, pcie->parf + PCIE20_PARF_PHY_CTRL);
+
 	regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies);
 }
 
@@ -275,9 +314,20 @@
 	struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0;
 	struct dw_pcie *pci = pcie->pci;
 	struct device *dev = pci->dev;
+	struct device_node *node = dev->of_node;
 	u32 val;
 	int ret;
 
+	/* reset the PCIe interface as uboot can leave it undefined state */
+	reset_control_assert(res->pci_reset);
+	reset_control_assert(res->axi_reset);
+	reset_control_assert(res->ahb_reset);
+	reset_control_assert(res->por_reset);
+	reset_control_assert(res->ext_reset);
+	reset_control_assert(res->phy_reset);
+
+	writel(1, pcie->parf + PCIE20_PARF_PHY_CTRL);
+
 	ret = regulator_bulk_enable(ARRAY_SIZE(res->supplies), res->supplies);
 	if (ret < 0) {
 		dev_err(dev, "cannot enable regulators\n");
@@ -296,32 +346,66 @@
 		goto err_assert_ahb;
 	}
 
-	ret = clk_prepare_enable(res->phy_clk);
-	if (ret) {
-		dev_err(dev, "cannot prepare/enable phy clock\n");
-		goto err_clk_phy;
-	}
-
 	ret = clk_prepare_enable(res->core_clk);
 	if (ret) {
 		dev_err(dev, "cannot prepare/enable core clock\n");
 		goto err_clk_core;
 	}
 
+	ret = clk_prepare_enable(res->aux_clk);
+	if (ret) {
+		dev_err(dev, "cannot prepare/enable aux clock\n");
+		goto err_clk_aux;
+	}
+
+	ret = clk_prepare_enable(res->ref_clk);
+	if (ret) {
+		dev_err(dev, "cannot prepare/enable ref clock\n");
+		goto err_clk_ref;
+	}
+
 	ret = reset_control_deassert(res->ahb_reset);
 	if (ret) {
 		dev_err(dev, "cannot deassert ahb reset\n");
 		goto err_deassert_ahb;
 	}
 
+	ret = reset_control_deassert(res->ext_reset);
+	if (ret) {
+		dev_err(dev, "cannot deassert ext reset\n");
+		goto err_deassert_ahb;
+	}
+
 	/* enable PCIe clocks and resets */
 	val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL);
 	val &= ~BIT(0);
 	writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL);
 
+	if (of_device_is_compatible(node, "qcom,pcie-ipq8064")) {
+		writel(PCS_DEEMPH_TX_DEEMPH_GEN1(24) |
+			       PCS_DEEMPH_TX_DEEMPH_GEN2_3_5DB(24) |
+			       PCS_DEEMPH_TX_DEEMPH_GEN2_6DB(34),
+		       pcie->parf + PCIE20_PARF_PCS_DEEMPH);
+		writel(PCS_SWING_TX_SWING_FULL(120) |
+			       PCS_SWING_TX_SWING_LOW(120),
+		       pcie->parf + PCIE20_PARF_PCS_SWING);
+		writel(PHY_RX0_EQ(4), pcie->parf + PCIE20_PARF_CONFIG_BITS);
+	}
+
+	if (of_device_is_compatible(node, "qcom,pcie-ipq8064")) {
+		/* set TX termination offset */
+		val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL);
+		val &= ~PHY_CTRL_PHY_TX0_TERM_OFFSET_MASK;
+		val |= PHY_CTRL_PHY_TX0_TERM_OFFSET(7);
+		writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL);
+	}
+
 	/* enable external reference clock */
 	val = readl(pcie->parf + PCIE20_PARF_PHY_REFCLK);
-	val |= BIT(16);
+	/* USE_PAD is required only for ipq806x */
+	if (!of_device_is_compatible(node, "qcom,pcie-apq8064"))
+		val &= ~PHY_REFCLK_USE_PAD;
+	val |= PHY_REFCLK_SSP_EN;
 	writel(val, pcie->parf + PCIE20_PARF_PHY_REFCLK);
 
 	ret = reset_control_deassert(res->phy_reset);
@@ -348,6 +432,12 @@
 		return ret;
 	}
 
+	ret = clk_prepare_enable(res->phy_clk);
+	if (ret) {
+		dev_err(dev, "cannot prepare/enable phy clock\n");
+		goto err_deassert_ahb;
+	}
+
 	/* wait for clock acquisition */
 	usleep_range(1000, 1500);
 
@@ -361,10 +451,12 @@
 	return 0;
 
 err_deassert_ahb:
+	clk_disable_unprepare(res->ref_clk);
+err_clk_ref:
+	clk_disable_unprepare(res->aux_clk);
+err_clk_aux:
 	clk_disable_unprepare(res->core_clk);
 err_clk_core:
-	clk_disable_unprepare(res->phy_clk);
-err_clk_phy:
 	clk_disable_unprepare(res->iface_clk);
 err_assert_ahb:
 	regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies);
@@ -1289,7 +1381,13 @@
 {
 	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
 }
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, PCI_ANY_ID, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x0101, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x0104, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x0106, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x0107, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x0302, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x1000, qcom_fixup_class);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, 0x1001, qcom_fixup_class);
 
 static struct platform_driver qcom_pcie_driver = {
 	.probe = qcom_pcie_probe,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/dwc/pcie-tegra194.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1395,7 +1395,7 @@
 	ret = pinctrl_pm_select_default_state(dev);
 	if (ret < 0) {
 		dev_err(dev, "Failed to configure sideband pins: %d\n", ret);
-		goto fail_pinctrl;
+		goto fail_pm_get_sync;
 	}
 
 	tegra_pcie_init_controller(pcie);
@@ -1422,9 +1422,8 @@
 
 fail_host_init:
 	tegra_pcie_deinit_controller(pcie);
-fail_pinctrl:
-	pm_runtime_put_sync(dev);
 fail_pm_get_sync:
+	pm_runtime_put_sync(dev);
 	pm_runtime_disable(dev);
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pci-aardvark.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pci-aardvark.c
@@ -180,6 +180,8 @@
 #define LINK_WAIT_MAX_RETRIES		10
 #define LINK_WAIT_USLEEP_MIN		90000
 #define LINK_WAIT_USLEEP_MAX		100000
+#define RETRAIN_WAIT_MAX_RETRIES	10
+#define RETRAIN_WAIT_USLEEP_US		2000
 
 #define MSI_IRQ_NUM			32
 
@@ -239,6 +241,17 @@
 	return -ETIMEDOUT;
 }
 
+static void advk_pcie_wait_for_retrain(struct advk_pcie *pcie)
+{
+	size_t retries;
+
+	for (retries = 0; retries < RETRAIN_WAIT_MAX_RETRIES; ++retries) {
+		if (!advk_pcie_link_up(pcie))
+			break;
+		udelay(RETRAIN_WAIT_USLEEP_US);
+	}
+}
+
 static void advk_pcie_setup_hw(struct advk_pcie *pcie)
 {
 	u32 reg;
@@ -331,10 +344,6 @@
 
 	advk_pcie_wait_for_link(pcie);
 
-	reg = PCIE_CORE_LINK_L0S_ENTRY |
-		(1 << PCIE_CORE_LINK_WIDTH_SHIFT);
-	advk_writel(pcie, reg, PCIE_CORE_LINK_CTRL_STAT_REG);
-
 	reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
 	reg |= PCIE_CORE_CMD_MEM_ACCESS_EN |
 		PCIE_CORE_CMD_IO_ACCESS_EN |
@@ -415,7 +424,7 @@
 
 	case PCI_EXP_RTCTL: {
 		u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG);
-		*value = (val & PCIE_MSG_PM_PME_MASK) ? PCI_EXP_RTCTL_PMEIE : 0;
+		*value = (val & PCIE_MSG_PM_PME_MASK) ? 0 : PCI_EXP_RTCTL_PMEIE;
 		return PCI_BRIDGE_EMUL_HANDLED;
 	}
 
@@ -426,11 +435,20 @@
 		return PCI_BRIDGE_EMUL_HANDLED;
 	}
 
+	case PCI_EXP_LNKCTL: {
+		/* u32 contains both PCI_EXP_LNKCTL and PCI_EXP_LNKSTA */
+		u32 val = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg) &
+			~(PCI_EXP_LNKSTA_LT << 16);
+		if (!advk_pcie_link_up(pcie))
+			val |= (PCI_EXP_LNKSTA_LT << 16);
+		*value = val;
+		return PCI_BRIDGE_EMUL_HANDLED;
+	}
+
 	case PCI_CAP_LIST_ID:
 	case PCI_EXP_DEVCAP:
 	case PCI_EXP_DEVCTL:
 	case PCI_EXP_LNKCAP:
-	case PCI_EXP_LNKCTL:
 		*value = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg);
 		return PCI_BRIDGE_EMUL_HANDLED;
 	default:
@@ -447,14 +465,24 @@
 
 	switch (reg) {
 	case PCI_EXP_DEVCTL:
+		advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
+		break;
+
 	case PCI_EXP_LNKCTL:
 		advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
+		if (new & PCI_EXP_LNKCTL_RL)
+			advk_pcie_wait_for_retrain(pcie);
 		break;
 
-	case PCI_EXP_RTCTL:
-		new = (new & PCI_EXP_RTCTL_PMEIE) << 3;
-		advk_writel(pcie, new, PCIE_ISR0_MASK_REG);
+	case PCI_EXP_RTCTL: {
+		/* Only mask/unmask PME interrupt */
+		u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG) &
+			~PCIE_MSG_PM_PME_MASK;
+		if ((new & PCI_EXP_RTCTL_PMEIE) == 0)
+			val |= PCIE_MSG_PM_PME_MASK;
+		advk_writel(pcie, val, PCIE_ISR0_MASK_REG);
 		break;
+	}
 
 	case PCI_EXP_RTSTA:
 		new = (new & PCI_EXP_RTSTA_PME) >> 9;
@@ -475,7 +503,7 @@
  * Initialize the configuration space of the PCI-to-PCI bridge
  * associated with the given PCIe interface.
  */
-static void advk_sw_pci_bridge_init(struct advk_pcie *pcie)
+static int advk_sw_pci_bridge_init(struct advk_pcie *pcie)
 {
 	struct pci_bridge_emul *bridge = &pcie->bridge;
 
@@ -499,8 +527,7 @@
 	bridge->data = pcie;
 	bridge->ops = &advk_pci_bridge_emul_ops;
 
-	pci_bridge_emul_init(bridge, 0);
-
+	return pci_bridge_emul_init(bridge, 0);
 }
 
 static bool advk_pcie_valid_device(struct advk_pcie *pcie, struct pci_bus *bus,
@@ -999,7 +1026,11 @@
 
 	advk_pcie_setup_hw(pcie);
 
-	advk_sw_pci_bridge_init(pcie);
+	ret = advk_sw_pci_bridge_init(pcie);
+	if (ret) {
+		dev_err(dev, "Failed to register emulated root PCI bridge\n");
+		return ret;
+	}
 
 	ret = advk_pcie_init_irq_domain(pcie);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pci-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pci-tegra.c
@@ -181,13 +181,6 @@
 
 #define AFI_PEXBIAS_CTRL_0		0x168
 
-#define RP_PRIV_XP_DL		0x00000494
-#define  RP_PRIV_XP_DL_GEN2_UPD_FC_TSHOLD	(0x1ff << 1)
-
-#define RP_RX_HDR_LIMIT		0x00000e00
-#define  RP_RX_HDR_LIMIT_PW_MASK	(0xff << 8)
-#define  RP_RX_HDR_LIMIT_PW		(0x0e << 8)
-
 #define RP_ECTL_2_R1	0x00000e84
 #define  RP_ECTL_2_R1_RX_CTLE_1C_MASK		0xffff
 
@@ -323,7 +316,6 @@
 	bool program_uphy;
 	bool update_clamp_threshold;
 	bool program_deskew_time;
-	bool raw_violation_fixup;
 	bool update_fc_timer;
 	bool has_cache_bars;
 	struct {
@@ -669,23 +661,6 @@
 		writel(value, port->base + RP_VEND_CTL0);
 	}
 
-	/* Fixup for read after write violation. */
-	if (soc->raw_violation_fixup) {
-		value = readl(port->base + RP_RX_HDR_LIMIT);
-		value &= ~RP_RX_HDR_LIMIT_PW_MASK;
-		value |= RP_RX_HDR_LIMIT_PW;
-		writel(value, port->base + RP_RX_HDR_LIMIT);
-
-		value = readl(port->base + RP_PRIV_XP_DL);
-		value |= RP_PRIV_XP_DL_GEN2_UPD_FC_TSHOLD;
-		writel(value, port->base + RP_PRIV_XP_DL);
-
-		value = readl(port->base + RP_VEND_XP);
-		value &= ~RP_VEND_XP_UPDATE_FC_THRESHOLD_MASK;
-		value |= soc->update_fc_threshold;
-		writel(value, port->base + RP_VEND_XP);
-	}
-
 	if (soc->update_fc_timer) {
 		value = readl(port->base + RP_VEND_XP);
 		value &= ~RP_VEND_XP_UPDATE_FC_THRESHOLD_MASK;
@@ -2499,7 +2474,6 @@
 	.num_ports = 2,
 	.ports = tegra20_pcie_ports,
 	.msi_base_shift = 0,
-	.afi_pex2_ctrl = 0x128,
 	.pads_pll_ctl = PADS_PLL_CTL_TEGRA20,
 	.tx_ref_sel = PADS_PLL_CTL_TXCLKREF_DIV10,
 	.pads_refclk_cfg0 = 0xfa5cfa5c,
@@ -2512,7 +2486,6 @@
 	.program_uphy = true,
 	.update_clamp_threshold = false,
 	.program_deskew_time = false,
-	.raw_violation_fixup = false,
 	.update_fc_timer = false,
 	.has_cache_bars = true,
 	.ectl.enable = false,
@@ -2528,6 +2501,7 @@
 	.num_ports = 3,
 	.ports = tegra30_pcie_ports,
 	.msi_base_shift = 8,
+	.afi_pex2_ctrl = 0x128,
 	.pads_pll_ctl = PADS_PLL_CTL_TEGRA30,
 	.tx_ref_sel = PADS_PLL_CTL_TXCLKREF_BUF_EN,
 	.pads_refclk_cfg0 = 0xfa5cfa5c,
@@ -2541,7 +2515,6 @@
 	.program_uphy = true,
 	.update_clamp_threshold = false,
 	.program_deskew_time = false,
-	.raw_violation_fixup = false,
 	.update_fc_timer = false,
 	.has_cache_bars = false,
 	.ectl.enable = false,
@@ -2554,8 +2527,6 @@
 	.pads_pll_ctl = PADS_PLL_CTL_TEGRA30,
 	.tx_ref_sel = PADS_PLL_CTL_TXCLKREF_BUF_EN,
 	.pads_refclk_cfg0 = 0x44ac44ac,
-	/* FC threshold is bit[25:18] */
-	.update_fc_threshold = 0x03fc0000,
 	.has_pex_clkreq_en = true,
 	.has_pex_bias_ctrl = true,
 	.has_intr_prsnt_sense = true,
@@ -2565,7 +2536,6 @@
 	.program_uphy = true,
 	.update_clamp_threshold = true,
 	.program_deskew_time = false,
-	.raw_violation_fixup = true,
 	.update_fc_timer = false,
 	.has_cache_bars = false,
 	.ectl.enable = false,
@@ -2589,7 +2559,6 @@
 	.program_uphy = true,
 	.update_clamp_threshold = true,
 	.program_deskew_time = true,
-	.raw_violation_fixup = false,
 	.update_fc_timer = true,
 	.has_cache_bars = false,
 	.ectl = {
@@ -2631,7 +2600,6 @@
 	.program_uphy = false,
 	.update_clamp_threshold = false,
 	.program_deskew_time = false,
-	.raw_violation_fixup = false,
 	.update_fc_timer = false,
 	.has_cache_bars = false,
 	.ectl.enable = false,
@@ -2798,9 +2766,9 @@
 
 	pm_runtime_enable(pcie->dev);
 	err = pm_runtime_get_sync(pcie->dev);
-	if (err) {
+	if (err < 0) {
 		dev_err(dev, "fail to enable pcie controller: %d\n", err);
-		goto teardown_msi;
+		goto pm_runtime_put;
 	}
 
 	err = tegra_pcie_request_resources(pcie);
@@ -2840,7 +2808,6 @@
 pm_runtime_put:
 	pm_runtime_put_sync(pcie->dev);
 	pm_runtime_disable(pcie->dev);
-teardown_msi:
 	tegra_pcie_msi_teardown(pcie);
 put_resources:
 	tegra_pcie_put_resources(pcie);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pci-v3-semi.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pci-v3-semi.c
@@ -743,7 +743,7 @@
 	int ret;
 	LIST_HEAD(res);
 
-	host = pci_alloc_host_bridge(sizeof(*v3));
+	host = devm_pci_alloc_host_bridge(dev, sizeof(*v3));
 	if (!host)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pci-xgene-msi.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pci-xgene-msi.c
@@ -384,13 +384,9 @@
 		if (!msi_group->gic_irq)
 			continue;
 
-		irq_set_chained_handler(msi_group->gic_irq,
-					xgene_msi_isr);
-		err = irq_set_handler_data(msi_group->gic_irq, msi_group);
-		if (err) {
-			pr_err("failed to register GIC IRQ handler\n");
-			return -EINVAL;
-		}
+		irq_set_chained_handler_and_data(msi_group->gic_irq,
+			xgene_msi_isr, msi_group);
+
 		/*
 		 * Statically allocate MSI GIC IRQs to each CPU core.
 		 * With 8-core X-Gene v1, 2 MSI GIC IRQs are allocated
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pcie-cadence-host.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pcie-cadence-host.c
@@ -102,6 +102,7 @@
 {
 	struct cdns_pcie *pcie = &rc->pcie;
 	u32 value, ctrl;
+	u32 id;
 
 	/*
 	 * Set the root complex BAR configuration register:
@@ -121,8 +122,12 @@
 	cdns_pcie_writel(pcie, CDNS_PCIE_LM_RC_BAR_CFG, value);
 
 	/* Set root port configuration space */
-	if (rc->vendor_id != 0xffff)
-		cdns_pcie_rp_writew(pcie, PCI_VENDOR_ID, rc->vendor_id);
+	if (rc->vendor_id != 0xffff) {
+		id = CDNS_PCIE_LM_ID_VENDOR(rc->vendor_id) |
+			CDNS_PCIE_LM_ID_SUBSYS(rc->vendor_id);
+		cdns_pcie_writel(pcie, CDNS_PCIE_LM_ID, id);
+	}
+
 	if (rc->device_id != 0xffff)
 		cdns_pcie_rp_writew(pcie, PCI_DEVICE_ID, rc->device_id);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pcie-iproc-msi.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pcie-iproc-msi.c
@@ -209,15 +209,20 @@
 	struct iproc_msi *msi = irq_data_get_irq_chip_data(data);
 	int target_cpu = cpumask_first(mask);
 	int curr_cpu;
+	int ret;
 
 	curr_cpu = hwirq_to_cpu(msi, data->hwirq);
 	if (curr_cpu == target_cpu)
-		return IRQ_SET_MASK_OK_DONE;
+		ret = IRQ_SET_MASK_OK_DONE;
+	else {
+		/* steer MSI to the target CPU */
+		data->hwirq = hwirq_to_canonical_hwirq(msi, data->hwirq) + target_cpu;
+		ret = IRQ_SET_MASK_OK;
+	}
 
-	/* steer MSI to the target CPU */
-	data->hwirq = hwirq_to_canonical_hwirq(msi, data->hwirq) + target_cpu;
+	irq_data_update_effective_affinity(data, cpumask_of(target_cpu));
 
-	return IRQ_SET_MASK_OK;
+	return ret;
 }
 
 static void iproc_msi_irq_compose_msi_msg(struct irq_data *data,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pcie-iproc.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pcie-iproc.c
@@ -307,7 +307,7 @@
 };
 
 /* iProc PCIe PAXB BCMA registers */
-static const u16 iproc_pcie_reg_paxb_bcma[] = {
+static const u16 iproc_pcie_reg_paxb_bcma[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x120,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x124,
@@ -318,7 +318,7 @@
 };
 
 /* iProc PCIe PAXB registers */
-static const u16 iproc_pcie_reg_paxb[] = {
+static const u16 iproc_pcie_reg_paxb[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x120,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x124,
@@ -334,7 +334,7 @@
 };
 
 /* iProc PCIe PAXB v2 registers */
-static const u16 iproc_pcie_reg_paxb_v2[] = {
+static const u16 iproc_pcie_reg_paxb_v2[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x120,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x124,
@@ -363,7 +363,7 @@
 };
 
 /* iProc PCIe PAXC v1 registers */
-static const u16 iproc_pcie_reg_paxc[] = {
+static const u16 iproc_pcie_reg_paxc[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_CLK_CTRL]		= 0x000,
 	[IPROC_PCIE_CFG_IND_ADDR]	= 0x1f0,
 	[IPROC_PCIE_CFG_IND_DATA]	= 0x1f4,
@@ -372,7 +372,7 @@
 };
 
 /* iProc PCIe PAXC v2 registers */
-static const u16 iproc_pcie_reg_paxc_v2[] = {
+static const u16 iproc_pcie_reg_paxc_v2[IPROC_PCIE_MAX_NUM_REG] = {
 	[IPROC_PCIE_MSI_GIC_MODE]	= 0x050,
 	[IPROC_PCIE_MSI_BASE_ADDR]	= 0x074,
 	[IPROC_PCIE_MSI_WINDOW_SIZE]	= 0x078,
@@ -1608,6 +1608,30 @@
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd804,
 			quirk_paxc_disable_msi_parsing);
 
+static void quirk_paxc_bridge(struct pci_dev *pdev)
+{
+	/*
+	 * The PCI config space is shared with the PAXC root port and the first
+	 * Ethernet device.  So, we need to workaround this by telling the PCI
+	 * code that the bridge is not an Ethernet device.
+	 */
+	if (pdev->hdr_type == PCI_HEADER_TYPE_BRIDGE)
+		pdev->class = PCI_CLASS_BRIDGE_PCI << 8;
+
+	/*
+	 * MPSS is not being set properly (as it is currently 0).  This is
+	 * because that area of the PCI config space is hard coded to zero, and
+	 * is not modifiable by firmware.  Set this to 2 (e.g., 512 byte MPS)
+	 * so that the MPS can be set to the real max value.
+	 */
+	pdev->pcie_mpss = 2;
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16cd, quirk_paxc_bridge);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16f0, quirk_paxc_bridge);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd750, quirk_paxc_bridge);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd802, quirk_paxc_bridge);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd804, quirk_paxc_bridge);
+
 MODULE_AUTHOR("Ray Jui <rjui@broadcom.com>");
 MODULE_DESCRIPTION("Broadcom iPROC PCIe common driver");
 MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pcie-mediatek.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pcie-mediatek.c
@@ -1063,14 +1063,14 @@
 		err = of_pci_get_devfn(child);
 		if (err < 0) {
 			dev_err(dev, "failed to parse devfn: %d\n", err);
-			return err;
+			goto error_put_node;
 		}
 
 		slot = PCI_SLOT(err);
 
 		err = mtk_pcie_parse_port(pcie, child, slot);
 		if (err)
-			return err;
+			goto error_put_node;
 	}
 
 	err = mtk_pcie_subsys_powerup(pcie);
@@ -1086,6 +1086,9 @@
 		mtk_pcie_subsys_powerdown(pcie);
 
 	return 0;
+error_put_node:
+	of_node_put(child);
+	return err;
 }
 
 static int mtk_pcie_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pcie-mobiveil.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pcie-mobiveil.c
@@ -235,7 +235,7 @@
 	return PCIBIOS_SUCCESSFUL;
 }
 
-static u32 csr_read(struct mobiveil_pcie *pcie, u32 off, size_t size)
+static u32 mobiveil_csr_read(struct mobiveil_pcie *pcie, u32 off, size_t size)
 {
 	void *addr;
 	u32 val;
@@ -250,7 +250,8 @@
 	return val;
 }
 
-static void csr_write(struct mobiveil_pcie *pcie, u32 val, u32 off, size_t size)
+static void mobiveil_csr_write(struct mobiveil_pcie *pcie, u32 val, u32 off,
+			       size_t size)
 {
 	void *addr;
 	int ret;
@@ -262,19 +263,19 @@
 		dev_err(&pcie->pdev->dev, "write CSR address failed\n");
 }
 
-static u32 csr_readl(struct mobiveil_pcie *pcie, u32 off)
+static u32 mobiveil_csr_readl(struct mobiveil_pcie *pcie, u32 off)
 {
-	return csr_read(pcie, off, 0x4);
+	return mobiveil_csr_read(pcie, off, 0x4);
 }
 
-static void csr_writel(struct mobiveil_pcie *pcie, u32 val, u32 off)
+static void mobiveil_csr_writel(struct mobiveil_pcie *pcie, u32 val, u32 off)
 {
-	csr_write(pcie, val, off, 0x4);
+	mobiveil_csr_write(pcie, val, off, 0x4);
 }
 
 static bool mobiveil_pcie_link_up(struct mobiveil_pcie *pcie)
 {
-	return (csr_readl(pcie, LTSSM_STATUS) &
+	return (mobiveil_csr_readl(pcie, LTSSM_STATUS) &
 		LTSSM_STATUS_L0_MASK) == LTSSM_STATUS_L0;
 }
 
@@ -323,7 +324,7 @@
 		PCI_SLOT(devfn) << PAB_DEVICE_SHIFT |
 		PCI_FUNC(devfn) << PAB_FUNCTION_SHIFT;
 
-	csr_writel(pcie, value, PAB_AXI_AMAP_PEX_WIN_L(WIN_NUM_0));
+	mobiveil_csr_writel(pcie, value, PAB_AXI_AMAP_PEX_WIN_L(WIN_NUM_0));
 
 	return pcie->config_axi_slave_base + where;
 }
@@ -353,13 +354,14 @@
 	chained_irq_enter(chip, desc);
 
 	/* read INTx status */
-	val = csr_readl(pcie, PAB_INTP_AMBA_MISC_STAT);
-	mask = csr_readl(pcie, PAB_INTP_AMBA_MISC_ENB);
+	val = mobiveil_csr_readl(pcie, PAB_INTP_AMBA_MISC_STAT);
+	mask = mobiveil_csr_readl(pcie, PAB_INTP_AMBA_MISC_ENB);
 	intr_status = val & mask;
 
 	/* Handle INTx */
 	if (intr_status & PAB_INTP_INTX_MASK) {
-		shifted_status = csr_readl(pcie, PAB_INTP_AMBA_MISC_STAT);
+		shifted_status = mobiveil_csr_readl(pcie,
+						    PAB_INTP_AMBA_MISC_STAT);
 		shifted_status &= PAB_INTP_INTX_MASK;
 		shifted_status >>= PAB_INTX_START;
 		do {
@@ -373,12 +375,13 @@
 							    bit);
 
 				/* clear interrupt handled */
-				csr_writel(pcie, 1 << (PAB_INTX_START + bit),
-					   PAB_INTP_AMBA_MISC_STAT);
+				mobiveil_csr_writel(pcie,
+						    1 << (PAB_INTX_START + bit),
+						    PAB_INTP_AMBA_MISC_STAT);
 			}
 
-			shifted_status = csr_readl(pcie,
-						   PAB_INTP_AMBA_MISC_STAT);
+			shifted_status = mobiveil_csr_readl(pcie,
+							    PAB_INTP_AMBA_MISC_STAT);
 			shifted_status &= PAB_INTP_INTX_MASK;
 			shifted_status >>= PAB_INTX_START;
 		} while (shifted_status != 0);
@@ -413,7 +416,7 @@
 	}
 
 	/* Clear the interrupt status */
-	csr_writel(pcie, intr_status, PAB_INTP_AMBA_MISC_STAT);
+	mobiveil_csr_writel(pcie, intr_status, PAB_INTP_AMBA_MISC_STAT);
 	chained_irq_exit(chip, desc);
 }
 
@@ -474,24 +477,24 @@
 		return;
 	}
 
-	value = csr_readl(pcie, PAB_PEX_AMAP_CTRL(win_num));
+	value = mobiveil_csr_readl(pcie, PAB_PEX_AMAP_CTRL(win_num));
 	value &= ~(AMAP_CTRL_TYPE_MASK << AMAP_CTRL_TYPE_SHIFT | WIN_SIZE_MASK);
 	value |= type << AMAP_CTRL_TYPE_SHIFT | 1 << AMAP_CTRL_EN_SHIFT |
 		 (lower_32_bits(size64) & WIN_SIZE_MASK);
-	csr_writel(pcie, value, PAB_PEX_AMAP_CTRL(win_num));
+	mobiveil_csr_writel(pcie, value, PAB_PEX_AMAP_CTRL(win_num));
 
-	csr_writel(pcie, upper_32_bits(size64),
-		   PAB_EXT_PEX_AMAP_SIZEN(win_num));
+	mobiveil_csr_writel(pcie, upper_32_bits(size64),
+			    PAB_EXT_PEX_AMAP_SIZEN(win_num));
 
-	csr_writel(pcie, lower_32_bits(cpu_addr),
-		   PAB_PEX_AMAP_AXI_WIN(win_num));
-	csr_writel(pcie, upper_32_bits(cpu_addr),
-		   PAB_EXT_PEX_AMAP_AXI_WIN(win_num));
-
-	csr_writel(pcie, lower_32_bits(pci_addr),
-		   PAB_PEX_AMAP_PEX_WIN_L(win_num));
-	csr_writel(pcie, upper_32_bits(pci_addr),
-		   PAB_PEX_AMAP_PEX_WIN_H(win_num));
+	mobiveil_csr_writel(pcie, lower_32_bits(cpu_addr),
+			    PAB_PEX_AMAP_AXI_WIN(win_num));
+	mobiveil_csr_writel(pcie, upper_32_bits(cpu_addr),
+			    PAB_EXT_PEX_AMAP_AXI_WIN(win_num));
+
+	mobiveil_csr_writel(pcie, lower_32_bits(pci_addr),
+			    PAB_PEX_AMAP_PEX_WIN_L(win_num));
+	mobiveil_csr_writel(pcie, upper_32_bits(pci_addr),
+			    PAB_PEX_AMAP_PEX_WIN_H(win_num));
 
 	pcie->ib_wins_configured++;
 }
@@ -515,27 +518,29 @@
 	 * program Enable Bit to 1, Type Bit to (00) base 2, AXI Window Size Bit
 	 * to 4 KB in PAB_AXI_AMAP_CTRL register
 	 */
-	value = csr_readl(pcie, PAB_AXI_AMAP_CTRL(win_num));
+	value = mobiveil_csr_readl(pcie, PAB_AXI_AMAP_CTRL(win_num));
 	value &= ~(WIN_TYPE_MASK << WIN_TYPE_SHIFT | WIN_SIZE_MASK);
 	value |= 1 << WIN_ENABLE_SHIFT | type << WIN_TYPE_SHIFT |
 		 (lower_32_bits(size64) & WIN_SIZE_MASK);
-	csr_writel(pcie, value, PAB_AXI_AMAP_CTRL(win_num));
+	mobiveil_csr_writel(pcie, value, PAB_AXI_AMAP_CTRL(win_num));
 
-	csr_writel(pcie, upper_32_bits(size64), PAB_EXT_AXI_AMAP_SIZE(win_num));
+	mobiveil_csr_writel(pcie, upper_32_bits(size64),
+			    PAB_EXT_AXI_AMAP_SIZE(win_num));
 
 	/*
 	 * program AXI window base with appropriate value in
 	 * PAB_AXI_AMAP_AXI_WIN0 register
 	 */
-	csr_writel(pcie, lower_32_bits(cpu_addr) & (~AXI_WINDOW_ALIGN_MASK),
-		   PAB_AXI_AMAP_AXI_WIN(win_num));
-	csr_writel(pcie, upper_32_bits(cpu_addr),
-		   PAB_EXT_AXI_AMAP_AXI_WIN(win_num));
-
-	csr_writel(pcie, lower_32_bits(pci_addr),
-		   PAB_AXI_AMAP_PEX_WIN_L(win_num));
-	csr_writel(pcie, upper_32_bits(pci_addr),
-		   PAB_AXI_AMAP_PEX_WIN_H(win_num));
+	mobiveil_csr_writel(pcie,
+			    lower_32_bits(cpu_addr) & (~AXI_WINDOW_ALIGN_MASK),
+			    PAB_AXI_AMAP_AXI_WIN(win_num));
+	mobiveil_csr_writel(pcie, upper_32_bits(cpu_addr),
+			    PAB_EXT_AXI_AMAP_AXI_WIN(win_num));
+
+	mobiveil_csr_writel(pcie, lower_32_bits(pci_addr),
+			    PAB_AXI_AMAP_PEX_WIN_L(win_num));
+	mobiveil_csr_writel(pcie, upper_32_bits(pci_addr),
+			    PAB_AXI_AMAP_PEX_WIN_H(win_num));
 
 	pcie->ob_wins_configured++;
 }
@@ -579,42 +584,42 @@
 	struct resource_entry *win;
 
 	/* setup bus numbers */
-	value = csr_readl(pcie, PCI_PRIMARY_BUS);
+	value = mobiveil_csr_readl(pcie, PCI_PRIMARY_BUS);
 	value &= 0xff000000;
 	value |= 0x00ff0100;
-	csr_writel(pcie, value, PCI_PRIMARY_BUS);
+	mobiveil_csr_writel(pcie, value, PCI_PRIMARY_BUS);
 
 	/*
 	 * program Bus Master Enable Bit in Command Register in PAB Config
 	 * Space
 	 */
-	value = csr_readl(pcie, PCI_COMMAND);
+	value = mobiveil_csr_readl(pcie, PCI_COMMAND);
 	value |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER;
-	csr_writel(pcie, value, PCI_COMMAND);
+	mobiveil_csr_writel(pcie, value, PCI_COMMAND);
 
 	/*
 	 * program PIO Enable Bit to 1 (and PEX PIO Enable to 1) in PAB_CTRL
 	 * register
 	 */
-	pab_ctrl = csr_readl(pcie, PAB_CTRL);
+	pab_ctrl = mobiveil_csr_readl(pcie, PAB_CTRL);
 	pab_ctrl |= (1 << AMBA_PIO_ENABLE_SHIFT) | (1 << PEX_PIO_ENABLE_SHIFT);
-	csr_writel(pcie, pab_ctrl, PAB_CTRL);
+	mobiveil_csr_writel(pcie, pab_ctrl, PAB_CTRL);
 
-	csr_writel(pcie, (PAB_INTP_INTX_MASK | PAB_INTP_MSI_MASK),
-		   PAB_INTP_AMBA_MISC_ENB);
+	mobiveil_csr_writel(pcie, (PAB_INTP_INTX_MASK | PAB_INTP_MSI_MASK),
+			    PAB_INTP_AMBA_MISC_ENB);
 
 	/*
 	 * program PIO Enable Bit to 1 and Config Window Enable Bit to 1 in
 	 * PAB_AXI_PIO_CTRL Register
 	 */
-	value = csr_readl(pcie, PAB_AXI_PIO_CTRL);
+	value = mobiveil_csr_readl(pcie, PAB_AXI_PIO_CTRL);
 	value |= APIO_EN_MASK;
-	csr_writel(pcie, value, PAB_AXI_PIO_CTRL);
+	mobiveil_csr_writel(pcie, value, PAB_AXI_PIO_CTRL);
 
 	/* Enable PCIe PIO master */
-	value = csr_readl(pcie, PAB_PEX_PIO_CTRL);
+	value = mobiveil_csr_readl(pcie, PAB_PEX_PIO_CTRL);
 	value |= 1 << PIO_ENABLE_SHIFT;
-	csr_writel(pcie, value, PAB_PEX_PIO_CTRL);
+	mobiveil_csr_writel(pcie, value, PAB_PEX_PIO_CTRL);
 
 	/*
 	 * we'll program one outbound window for config reads and
@@ -647,10 +652,10 @@
 	}
 
 	/* fixup for PCIe class register */
-	value = csr_readl(pcie, PAB_INTP_AXI_PIO_CLASS);
+	value = mobiveil_csr_readl(pcie, PAB_INTP_AXI_PIO_CLASS);
 	value &= 0xff;
 	value |= (PCI_CLASS_BRIDGE_PCI << 16);
-	csr_writel(pcie, value, PAB_INTP_AXI_PIO_CLASS);
+	mobiveil_csr_writel(pcie, value, PAB_INTP_AXI_PIO_CLASS);
 
 	/* setup MSI hardware registers */
 	mobiveil_pcie_enable_msi(pcie);
@@ -668,9 +673,9 @@
 	pcie = irq_desc_get_chip_data(desc);
 	mask = 1 << ((data->hwirq + PAB_INTX_START) - 1);
 	raw_spin_lock_irqsave(&pcie->intx_mask_lock, flags);
-	shifted_val = csr_readl(pcie, PAB_INTP_AMBA_MISC_ENB);
+	shifted_val = mobiveil_csr_readl(pcie, PAB_INTP_AMBA_MISC_ENB);
 	shifted_val &= ~mask;
-	csr_writel(pcie, shifted_val, PAB_INTP_AMBA_MISC_ENB);
+	mobiveil_csr_writel(pcie, shifted_val, PAB_INTP_AMBA_MISC_ENB);
 	raw_spin_unlock_irqrestore(&pcie->intx_mask_lock, flags);
 }
 
@@ -684,9 +689,9 @@
 	pcie = irq_desc_get_chip_data(desc);
 	mask = 1 << ((data->hwirq + PAB_INTX_START) - 1);
 	raw_spin_lock_irqsave(&pcie->intx_mask_lock, flags);
-	shifted_val = csr_readl(pcie, PAB_INTP_AMBA_MISC_ENB);
+	shifted_val = mobiveil_csr_readl(pcie, PAB_INTP_AMBA_MISC_ENB);
 	shifted_val |= mask;
-	csr_writel(pcie, shifted_val, PAB_INTP_AMBA_MISC_ENB);
+	mobiveil_csr_writel(pcie, shifted_val, PAB_INTP_AMBA_MISC_ENB);
 	raw_spin_unlock_irqrestore(&pcie->intx_mask_lock, flags);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/pcie-rcar.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/pcie-rcar.c
@@ -93,8 +93,11 @@
 #define  LINK_SPEED_2_5GTS	(1 << 16)
 #define  LINK_SPEED_5_0GTS	(2 << 16)
 #define MACCTLR			0x011058
+#define  MACCTLR_NFTS_MASK	GENMASK(23, 16)	/* The name is from SH7786 */
 #define  SPEED_CHANGE		BIT(24)
 #define  SCRAMBLE_DISABLE	BIT(27)
+#define  LTSMDIS		BIT(31)
+#define  MACCTLR_INIT_VAL	(LTSMDIS | MACCTLR_NFTS_MASK)
 #define PMSR			0x01105c
 #define MACS2R			0x011078
 #define MACCGSPSETR		0x011084
@@ -332,11 +335,12 @@
 };
 
 static void rcar_pcie_setup_window(int win, struct rcar_pcie *pcie,
-				   struct resource *res)
+				   struct resource_entry *window)
 {
 	/* Setup PCIe address space mappings for each resource */
 	resource_size_t size;
 	resource_size_t res_start;
+	struct resource *res = window->res;
 	u32 mask;
 
 	rcar_pci_write_reg(pcie, 0x00000000, PCIEPTCTLR(win));
@@ -350,9 +354,9 @@
 	rcar_pci_write_reg(pcie, mask << 7, PCIEPAMR(win));
 
 	if (res->flags & IORESOURCE_IO)
-		res_start = pci_pio_to_address(res->start);
+		res_start = pci_pio_to_address(res->start) - window->offset;
 	else
-		res_start = res->start;
+		res_start = res->start - window->offset;
 
 	rcar_pci_write_reg(pcie, upper_32_bits(res_start), PCIEPAUR(win));
 	rcar_pci_write_reg(pcie, lower_32_bits(res_start) & ~0x7F,
@@ -381,7 +385,7 @@
 		switch (resource_type(res)) {
 		case IORESOURCE_IO:
 		case IORESOURCE_MEM:
-			rcar_pcie_setup_window(i, pci, res);
+			rcar_pcie_setup_window(i, pci, win);
 			i++;
 			break;
 		case IORESOURCE_BUS:
@@ -615,6 +619,8 @@
 	if (IS_ENABLED(CONFIG_PCI_MSI))
 		rcar_pci_write_reg(pcie, 0x801f0000, PCIEMSITXR);
 
+	rcar_pci_write_reg(pcie, MACCTLR_INIT_VAL, MACCTLR);
+
 	/* Finish initialization - establish a PCI Express link */
 	rcar_pci_write_reg(pcie, CFINIT, PCIETCTLR);
 
@@ -1237,6 +1243,7 @@
 		return 0;
 
 	/* Re-establish the PCIe link */
+	rcar_pci_write_reg(pcie, MACCTLR_INIT_VAL, MACCTLR);
 	rcar_pci_write_reg(pcie, CFINIT, PCIETCTLR);
 	return rcar_pcie_wait_for_dl(pcie);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/controller/vmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/controller/vmd.c
@@ -593,25 +593,41 @@
 			if (!membar2)
 				return -ENOMEM;
 			offset[0] = vmd->dev->resource[VMD_MEMBAR1].start -
-					readq(membar2 + MB2_SHADOW_OFFSET);
+					(readq(membar2 + MB2_SHADOW_OFFSET) &
+					 PCI_BASE_ADDRESS_MEM_MASK);
 			offset[1] = vmd->dev->resource[VMD_MEMBAR2].start -
-					readq(membar2 + MB2_SHADOW_OFFSET + 8);
+					(readq(membar2 + MB2_SHADOW_OFFSET + 8) &
+					 PCI_BASE_ADDRESS_MEM_MASK);
 			pci_iounmap(vmd->dev, membar2);
 		}
 	}
 
 	/*
 	 * Certain VMD devices may have a root port configuration option which
-	 * limits the bus range to between 0-127 or 128-255
+	 * limits the bus range to between 0-127, 128-255, or 224-255
 	 */
 	if (features & VMD_FEAT_HAS_BUS_RESTRICTIONS) {
-		u32 vmcap, vmconfig;
+		u16 reg16;
 
-		pci_read_config_dword(vmd->dev, PCI_REG_VMCAP, &vmcap);
-		pci_read_config_dword(vmd->dev, PCI_REG_VMCONFIG, &vmconfig);
-		if (BUS_RESTRICT_CAP(vmcap) &&
-		    (BUS_RESTRICT_CFG(vmconfig) == 0x1))
-			vmd->busn_start = 128;
+		pci_read_config_word(vmd->dev, PCI_REG_VMCAP, &reg16);
+		if (BUS_RESTRICT_CAP(reg16)) {
+			pci_read_config_word(vmd->dev, PCI_REG_VMCONFIG,
+					     &reg16);
+
+			switch (BUS_RESTRICT_CFG(reg16)) {
+			case 1:
+				vmd->busn_start = 128;
+				break;
+			case 2:
+				vmd->busn_start = 224;
+				break;
+			case 3:
+				pci_err(vmd->dev, "Unknown Bus Offset Setting\n");
+				return -ENODEV;
+			default:
+				break;
+			}
+		}
 	}
 
 	res = &vmd->dev->resource[VMD_CFGBAR];
@@ -678,9 +694,10 @@
 
 	vmd->irq_domain = pci_msi_create_irq_domain(fn, &vmd_msi_domain_info,
 						    x86_vector_domain);
-	irq_domain_free_fwnode(fn);
-	if (!vmd->irq_domain)
+	if (!vmd->irq_domain) {
+		irq_domain_free_fwnode(fn);
 		return -ENODEV;
+	}
 
 	pci_add_resource(&resources, &vmd->resources[0]);
 	pci_add_resource_offset(&resources, &vmd->resources[1], offset[0]);
@@ -691,6 +708,7 @@
 	if (!vmd->bus) {
 		pci_free_resource_list(&resources);
 		irq_domain_remove(vmd->irq_domain);
+		irq_domain_free_fwnode(fn);
 		return -ENODEV;
 	}
 
@@ -805,6 +823,7 @@
 static void vmd_remove(struct pci_dev *dev)
 {
 	struct vmd_dev *vmd = pci_get_drvdata(dev);
+	struct fwnode_handle *fn = vmd->irq_domain->fwnode;
 
 	sysfs_remove_link(&vmd->dev->dev.kobj, "domain");
 	pci_stop_root_bus(vmd->bus);
@@ -813,6 +832,7 @@
 	vmd_teardown_dma_ops(vmd);
 	vmd_detach_resources(vmd);
 	irq_domain_remove(vmd->irq_domain);
+	irq_domain_free_fwnode(fn);
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -854,6 +874,8 @@
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_28C0),
 		.driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW |
 				VMD_FEAT_HAS_BUS_RESTRICTIONS,},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
+		.driver_data = VMD_FEAT_HAS_BUS_RESTRICTIONS,},
 	{0,}
 };
 MODULE_DEVICE_TABLE(pci, vmd_ids);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/endpoint/pci-epc-mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/endpoint/pci-epc-mem.c
@@ -79,6 +79,7 @@
 	mem->page_size = page_size;
 	mem->pages = pages;
 	mem->size = size;
+	mutex_init(&mem->lock);
 
 	epc->mem = mem;
 
@@ -122,7 +123,7 @@
 				     phys_addr_t *phys_addr, size_t size)
 {
 	int pageno;
-	void __iomem *virt_addr;
+	void __iomem *virt_addr = NULL;
 	struct pci_epc_mem *mem = epc->mem;
 	unsigned int page_shift = ilog2(mem->page_size);
 	int order;
@@ -130,15 +131,18 @@
 	size = ALIGN(size, mem->page_size);
 	order = pci_epc_mem_get_order(mem, size);
 
+	mutex_lock(&mem->lock);
 	pageno = bitmap_find_free_region(mem->bitmap, mem->pages, order);
 	if (pageno < 0)
-		return NULL;
+		goto ret;
 
 	*phys_addr = mem->phys_base + (pageno << page_shift);
 	virt_addr = ioremap(*phys_addr, size);
 	if (!virt_addr)
 		bitmap_release_region(mem->bitmap, pageno, order);
 
+ret:
+	mutex_unlock(&mem->lock);
 	return virt_addr;
 }
 EXPORT_SYMBOL_GPL(pci_epc_mem_alloc_addr);
@@ -164,7 +168,9 @@
 	pageno = (phys_addr - mem->phys_base) >> page_shift;
 	size = ALIGN(size, mem->page_size);
 	order = pci_epc_mem_get_order(mem, size);
+	mutex_lock(&mem->lock);
 	bitmap_release_region(mem->bitmap, pageno, order);
+	mutex_unlock(&mem->lock);
 }
 EXPORT_SYMBOL_GPL(pci_epc_mem_free_addr);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/acpiphp_glue.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/acpiphp_glue.c
@@ -122,13 +122,21 @@
 	struct acpiphp_context *context;
 
 	acpi_lock_hp_context();
+
 	context = acpiphp_get_context(adev);
-	if (!context || context->func.parent->is_going_away) {
-		acpi_unlock_hp_context();
-		return NULL;
+	if (!context)
+		goto unlock;
+
+	if (context->func.parent->is_going_away) {
+		acpiphp_put_context(context);
+		context = NULL;
+		goto unlock;
 	}
+
 	get_bridge(context->func.parent);
 	acpiphp_put_context(context);
+
+unlock:
 	acpi_unlock_hp_context();
 	return context;
 }
@@ -449,8 +457,15 @@
 
 	/* Scan non-hotplug bridges that need to be reconfigured */
 	for_each_pci_bridge(dev, bus) {
-		if (!hotplug_is_native(dev))
-			max = pci_scan_bridge(bus, dev, max, 1);
+		if (hotplug_is_native(dev))
+			continue;
+
+		max = pci_scan_bridge(bus, dev, max, 1);
+		if (dev->subordinate) {
+			pcibios_resource_survey_bus(dev->subordinate);
+			pci_bus_size_bridges(dev->subordinate);
+			pci_bus_assign_resources(dev->subordinate);
+		}
 	}
 }
 
@@ -480,7 +495,6 @@
 			if (PCI_SLOT(dev->devfn) == slot->device)
 				acpiphp_native_scan_bridge(dev);
 		}
-		pci_assign_unassigned_bridge_resources(bus->self);
 	} else {
 		LIST_HEAD(add_list);
 		int max, pass;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/pciehp.h
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/pciehp.h
@@ -72,6 +72,7 @@
  * @reset_lock: prevents access to the Data Link Layer Link Active bit in the
  *	Link Status register and to the Presence Detect State bit in the Slot
  *	Status register during a slot reset which may cause them to flap
+ * @ist_running: flag to keep user request waiting while IRQ thread is running
  * @request_result: result of last user request submitted to the IRQ thread
  * @requester: wait queue to wake up on completion of user request,
  *	used for synchronous slot enable/disable request via sysfs
@@ -101,6 +102,7 @@
 
 	struct hotplug_slot hotplug_slot;	/* hotplug core interface */
 	struct rw_semaphore reset_lock;
+	unsigned int ist_running;
 	int request_result;
 	wait_queue_head_t requester;
 };
@@ -172,10 +174,10 @@
 
 void pciehp_get_latch_status(struct controller *ctrl, u8 *status);
 int pciehp_query_power_fault(struct controller *ctrl);
-bool pciehp_card_present(struct controller *ctrl);
-bool pciehp_card_present_or_link_active(struct controller *ctrl);
+int pciehp_card_present(struct controller *ctrl);
+int pciehp_card_present_or_link_active(struct controller *ctrl);
 int pciehp_check_link_status(struct controller *ctrl);
-bool pciehp_check_link_active(struct controller *ctrl);
+int pciehp_check_link_active(struct controller *ctrl);
 void pciehp_release_ctrl(struct controller *ctrl);
 
 int pciehp_sysfs_enable_slot(struct hotplug_slot *hotplug_slot);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/pciehp_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/pciehp_core.c
@@ -139,10 +139,15 @@
 {
 	struct controller *ctrl = to_ctrl(hotplug_slot);
 	struct pci_dev *pdev = ctrl->pcie->port;
+	int ret;
 
 	pci_config_pm_runtime_get(pdev);
-	*value = pciehp_card_present_or_link_active(ctrl);
+	ret = pciehp_card_present_or_link_active(ctrl);
 	pci_config_pm_runtime_put(pdev);
+	if (ret < 0)
+		return ret;
+
+	*value = ret;
 	return 0;
 }
 
@@ -158,13 +163,13 @@
  */
 static void pciehp_check_presence(struct controller *ctrl)
 {
-	bool occupied;
+	int occupied;
 
 	down_read(&ctrl->reset_lock);
 	mutex_lock(&ctrl->state_lock);
 
 	occupied = pciehp_card_present_or_link_active(ctrl);
-	if ((occupied && (ctrl->state == OFF_STATE ||
+	if ((occupied > 0 && (ctrl->state == OFF_STATE ||
 			  ctrl->state == BLINKINGON_STATE)) ||
 	    (!occupied && (ctrl->state == ON_STATE ||
 			   ctrl->state == BLINKINGOFF_STATE)))
@@ -253,7 +258,7 @@
 	return pcie_ports_native || host->native_pme;
 }
 
-static int pciehp_suspend(struct pcie_device *dev)
+static void pciehp_disable_interrupt(struct pcie_device *dev)
 {
 	/*
 	 * Disable hotplug interrupt so that it does not trigger
@@ -261,7 +266,19 @@
 	 */
 	if (pme_is_native(dev))
 		pcie_disable_interrupt(get_service_data(dev));
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int pciehp_suspend(struct pcie_device *dev)
+{
+	/*
+	 * If the port is already runtime suspended we can keep it that
+	 * way.
+	 */
+	if (dev_pm_smart_suspend_and_suspended(&dev->port->dev))
+		return 0;
 
+	pciehp_disable_interrupt(dev);
 	return 0;
 }
 
@@ -279,6 +296,7 @@
 
 	return 0;
 }
+#endif
 
 static int pciehp_resume(struct pcie_device *dev)
 {
@@ -292,6 +310,12 @@
 	return 0;
 }
 
+static int pciehp_runtime_suspend(struct pcie_device *dev)
+{
+	pciehp_disable_interrupt(dev);
+	return 0;
+}
+
 static int pciehp_runtime_resume(struct pcie_device *dev)
 {
 	struct controller *ctrl = get_service_data(dev);
@@ -318,10 +342,12 @@
 	.remove		= pciehp_remove,
 
 #ifdef	CONFIG_PM
+#ifdef	CONFIG_PM_SLEEP
 	.suspend	= pciehp_suspend,
 	.resume_noirq	= pciehp_resume_noirq,
 	.resume		= pciehp_resume,
-	.runtime_suspend = pciehp_suspend,
+#endif
+	.runtime_suspend = pciehp_runtime_suspend,
 	.runtime_resume	= pciehp_runtime_resume,
 #endif	/* PM */
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/pciehp_ctrl.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/pciehp_ctrl.c
@@ -226,7 +226,7 @@
 
 void pciehp_handle_presence_or_link_change(struct controller *ctrl, u32 events)
 {
-	bool present, link_active;
+	int present, link_active;
 
 	/*
 	 * If the slot is on and presence or link has changed, turn it off.
@@ -257,7 +257,7 @@
 	mutex_lock(&ctrl->state_lock);
 	present = pciehp_card_present(ctrl);
 	link_active = pciehp_check_link_active(ctrl);
-	if (!present && !link_active) {
+	if (present <= 0 && link_active <= 0) {
 		mutex_unlock(&ctrl->state_lock);
 		return;
 	}
@@ -375,7 +375,8 @@
 		ctrl->request_result = -ENODEV;
 		pciehp_request(ctrl, PCI_EXP_SLTSTA_PDC);
 		wait_event(ctrl->requester,
-			   !atomic_read(&ctrl->pending_events));
+			   !atomic_read(&ctrl->pending_events) &&
+			   !ctrl->ist_running);
 		return ctrl->request_result;
 	case POWERON_STATE:
 		ctrl_info(ctrl, "Slot(%s): Already in powering on state\n",
@@ -408,7 +409,8 @@
 		mutex_unlock(&ctrl->state_lock);
 		pciehp_request(ctrl, DISABLE_SLOT);
 		wait_event(ctrl->requester,
-			   !atomic_read(&ctrl->pending_events));
+			   !atomic_read(&ctrl->pending_events) &&
+			   !ctrl->ist_running);
 		return ctrl->request_result;
 	case POWEROFF_STATE:
 		ctrl_info(ctrl, "Slot(%s): Already in powering off state\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/pciehp_hpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/pciehp_hpc.c
@@ -201,17 +201,29 @@
 	pcie_do_write_cmd(ctrl, cmd, mask, false);
 }
 
-bool pciehp_check_link_active(struct controller *ctrl)
+/**
+ * pciehp_check_link_active() - Is the link active
+ * @ctrl: PCIe hotplug controller
+ *
+ * Check whether the downstream link is currently active. Note it is
+ * possible that the card is removed immediately after this so the
+ * caller may need to take it into account.
+ *
+ * If the hotplug controller itself is not available anymore returns
+ * %-ENODEV.
+ */
+int pciehp_check_link_active(struct controller *ctrl)
 {
 	struct pci_dev *pdev = ctrl_dev(ctrl);
 	u16 lnk_status;
-	bool ret;
+	int ret;
 
-	pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
-	ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA);
+	ret = pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
+	if (ret == PCIBIOS_DEVICE_NOT_FOUND || lnk_status == (u16)~0)
+		return -ENODEV;
 
-	if (ret)
-		ctrl_dbg(ctrl, "%s: lnk_status = %x\n", __func__, lnk_status);
+	ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA);
+	ctrl_dbg(ctrl, "%s: lnk_status = %x\n", __func__, lnk_status);
 
 	return ret;
 }
@@ -373,13 +385,29 @@
 	*status = !!(slot_status & PCI_EXP_SLTSTA_MRLSS);
 }
 
-bool pciehp_card_present(struct controller *ctrl)
+/**
+ * pciehp_card_present() - Is the card present
+ * @ctrl: PCIe hotplug controller
+ *
+ * Function checks whether the card is currently present in the slot and
+ * in that case returns true. Note it is possible that the card is
+ * removed immediately after the check so the caller may need to take
+ * this into account.
+ *
+ * It the hotplug controller itself is not available anymore returns
+ * %-ENODEV.
+ */
+int pciehp_card_present(struct controller *ctrl)
 {
 	struct pci_dev *pdev = ctrl_dev(ctrl);
 	u16 slot_status;
+	int ret;
 
-	pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status);
-	return slot_status & PCI_EXP_SLTSTA_PDS;
+	ret = pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status);
+	if (ret == PCIBIOS_DEVICE_NOT_FOUND || slot_status == (u16)~0)
+		return -ENODEV;
+
+	return !!(slot_status & PCI_EXP_SLTSTA_PDS);
 }
 
 /**
@@ -390,10 +418,19 @@
  * Presence Detect State bit, this helper also returns true if the Link Active
  * bit is set.  This is a concession to broken hotplug ports which hardwire
  * Presence Detect State to zero, such as Wilocity's [1ae9:0200].
+ *
+ * Returns: %1 if the slot is occupied and %0 if it is not. If the hotplug
+ *	    port is not present anymore returns %-ENODEV.
  */
-bool pciehp_card_present_or_link_active(struct controller *ctrl)
+int pciehp_card_present_or_link_active(struct controller *ctrl)
 {
-	return pciehp_card_present(ctrl) || pciehp_check_link_active(ctrl);
+	int ret;
+
+	ret = pciehp_card_present(ctrl);
+	if (ret)
+		return ret;
+
+	return pciehp_check_link_active(ctrl);
 }
 
 int pciehp_query_power_fault(struct controller *ctrl)
@@ -492,7 +529,7 @@
 	struct controller *ctrl = (struct controller *)dev_id;
 	struct pci_dev *pdev = ctrl_dev(ctrl);
 	struct device *parent = pdev->dev.parent;
-	u16 status, events;
+	u16 status, events = 0;
 
 	/*
 	 * Interrupts only occur in D3hot or shallower and only if enabled
@@ -517,6 +554,7 @@
 		}
 	}
 
+read_status:
 	pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &status);
 	if (status == (u16) ~0) {
 		ctrl_info(ctrl, "%s: no response from device\n", __func__);
@@ -529,24 +567,37 @@
 	 * Slot Status contains plain status bits as well as event
 	 * notification bits; right now we only want the event bits.
 	 */
-	events = status & (PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD |
-			   PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_CC |
-			   PCI_EXP_SLTSTA_DLLSC);
+	status &= PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD |
+		  PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_CC |
+		  PCI_EXP_SLTSTA_DLLSC;
 
 	/*
 	 * If we've already reported a power fault, don't report it again
 	 * until we've done something to handle it.
 	 */
 	if (ctrl->power_fault_detected)
-		events &= ~PCI_EXP_SLTSTA_PFD;
+		status &= ~PCI_EXP_SLTSTA_PFD;
 
+	events |= status;
 	if (!events) {
 		if (parent)
 			pm_runtime_put(parent);
 		return IRQ_NONE;
 	}
 
-	pcie_capability_write_word(pdev, PCI_EXP_SLTSTA, events);
+	if (status) {
+		pcie_capability_write_word(pdev, PCI_EXP_SLTSTA, events);
+
+		/*
+		 * In MSI mode, all event bits must be zero before the port
+		 * will send a new interrupt (PCIe Base Spec r5.0 sec 6.7.3.4).
+		 * So re-read the Slot Status register in case a bit was set
+		 * between read and write.
+		 */
+		if (pci_dev_msi_enabled(pdev) && !pciehp_poll_mode)
+			goto read_status;
+	}
+
 	ctrl_dbg(ctrl, "pending interrupts %#06x from Slot Status\n", events);
 	if (parent)
 		pm_runtime_put(parent);
@@ -583,23 +634,22 @@
 	irqreturn_t ret;
 	u32 events;
 
+	ctrl->ist_running = true;
 	pci_config_pm_runtime_get(pdev);
 
 	/* rerun pciehp_isr() if the port was inaccessible on interrupt */
 	if (atomic_fetch_and(~RERUN_ISR, &ctrl->pending_events) & RERUN_ISR) {
 		ret = pciehp_isr(irq, dev_id);
 		enable_irq(irq);
-		if (ret != IRQ_WAKE_THREAD) {
-			pci_config_pm_runtime_put(pdev);
-			return ret;
-		}
+		if (ret != IRQ_WAKE_THREAD)
+			goto out;
 	}
 
 	synchronize_hardirq(irq);
 	events = atomic_xchg(&ctrl->pending_events, 0);
 	if (!events) {
-		pci_config_pm_runtime_put(pdev);
-		return IRQ_NONE;
+		ret = IRQ_NONE;
+		goto out;
 	}
 
 	/* Check Attention Button Pressed */
@@ -628,9 +678,12 @@
 		pciehp_handle_presence_or_link_change(ctrl, events);
 	up_read(&ctrl->reset_lock);
 
+	ret = IRQ_HANDLED;
+out:
 	pci_config_pm_runtime_put(pdev);
+	ctrl->ist_running = false;
 	wake_up(&ctrl->requester);
-	return IRQ_HANDLED;
+	return ret;
 }
 
 static int pciehp_poll(void *data)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/pnv_php.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/pnv_php.c
@@ -18,6 +18,9 @@
 #define DRIVER_AUTHOR	"Gavin Shan, IBM Corporation"
 #define DRIVER_DESC	"PowerPC PowerNV PCI Hotplug Driver"
 
+#define SLOT_WARN(sl, x...) \
+	((sl)->pdev ? pci_warn((sl)->pdev, x) : dev_warn(&(sl)->bus->dev, x))
+
 struct pnv_php_event {
 	bool			added;
 	struct pnv_php_slot	*php_slot;
@@ -151,17 +154,11 @@
 static void pnv_php_detach_device_nodes(struct device_node *parent)
 {
 	struct device_node *dn;
-	int refcount;
 
 	for_each_child_of_node(parent, dn) {
 		pnv_php_detach_device_nodes(dn);
 
 		of_node_put(dn);
-		refcount = kref_read(&dn->kobj.kref);
-		if (refcount != 1)
-			pr_warn("Invalid refcount %d on <%pOF>\n",
-				refcount, dn);
-
 		of_detach_node(dn);
 	}
 }
@@ -271,7 +268,7 @@
 
 	ret = pnv_pci_get_device_tree(php_slot->dn->phandle, fdt1, 0x10000);
 	if (ret) {
-		pci_warn(php_slot->pdev, "Error %d getting FDT blob\n", ret);
+		SLOT_WARN(php_slot, "Error %d getting FDT blob\n", ret);
 		goto free_fdt1;
 	}
 
@@ -285,7 +282,7 @@
 	dt = of_fdt_unflatten_tree(fdt, php_slot->dn, NULL);
 	if (!dt) {
 		ret = -EINVAL;
-		pci_warn(php_slot->pdev, "Cannot unflatten FDT\n");
+		SLOT_WARN(php_slot, "Cannot unflatten FDT\n");
 		goto free_fdt;
 	}
 
@@ -295,15 +292,15 @@
 	ret = pnv_php_populate_changeset(&php_slot->ocs, php_slot->dn);
 	if (ret) {
 		pnv_php_reverse_nodes(php_slot->dn);
-		pci_warn(php_slot->pdev, "Error %d populating changeset\n",
-			 ret);
+		SLOT_WARN(php_slot, "Error %d populating changeset\n",
+			  ret);
 		goto free_dt;
 	}
 
 	php_slot->dn->child = NULL;
 	ret = of_changeset_apply(&php_slot->ocs);
 	if (ret) {
-		pci_warn(php_slot->pdev, "Error %d applying changeset\n", ret);
+		SLOT_WARN(php_slot, "Error %d applying changeset\n", ret);
 		goto destroy_changeset;
 	}
 
@@ -342,18 +339,19 @@
 	ret = pnv_pci_set_power_state(php_slot->id, state, &msg);
 	if (ret > 0) {
 		if (be64_to_cpu(msg.params[1]) != php_slot->dn->phandle	||
-		    be64_to_cpu(msg.params[2]) != state			||
-		    be64_to_cpu(msg.params[3]) != OPAL_SUCCESS) {
-			pci_warn(php_slot->pdev, "Wrong msg (%lld, %lld, %lld)\n",
-				 be64_to_cpu(msg.params[1]),
-				 be64_to_cpu(msg.params[2]),
-				 be64_to_cpu(msg.params[3]));
+		    be64_to_cpu(msg.params[2]) != state) {
+			SLOT_WARN(php_slot, "Wrong msg (%lld, %lld, %lld)\n",
+				  be64_to_cpu(msg.params[1]),
+				  be64_to_cpu(msg.params[2]),
+				  be64_to_cpu(msg.params[3]));
 			return -ENOMSG;
 		}
+		if (be64_to_cpu(msg.params[3]) != OPAL_SUCCESS) {
+			ret = -ENODEV;
+			goto error;
+		}
 	} else if (ret < 0) {
-		pci_warn(php_slot->pdev, "Error %d powering %s\n",
-			 ret, (state == OPAL_PCI_SLOT_POWER_ON) ? "on" : "off");
-		return ret;
+		goto error;
 	}
 
 	if (state == OPAL_PCI_SLOT_POWER_OFF || state == OPAL_PCI_SLOT_OFFLINE)
@@ -362,6 +360,11 @@
 		ret = pnv_php_add_devtree(php_slot);
 
 	return ret;
+
+error:
+	SLOT_WARN(php_slot, "Error %d powering %s\n",
+		  ret, (state == OPAL_PCI_SLOT_POWER_ON) ? "on" : "off");
+	return ret;
 }
 EXPORT_SYMBOL_GPL(pnv_php_set_slot_power_state);
 
@@ -378,8 +381,8 @@
 	 */
 	ret = pnv_pci_get_power_state(php_slot->id, &power_state);
 	if (ret) {
-		pci_warn(php_slot->pdev, "Error %d getting power status\n",
-			 ret);
+		SLOT_WARN(php_slot, "Error %d getting power status\n",
+			  ret);
 	} else {
 		*state = power_state;
 	}
@@ -402,7 +405,7 @@
 		*state = presence;
 		ret = 0;
 	} else {
-		pci_warn(php_slot->pdev, "Error %d getting presence\n", ret);
+		SLOT_WARN(php_slot, "Error %d getting presence\n", ret);
 	}
 
 	return ret;
@@ -566,7 +569,13 @@
 	struct pnv_php_slot *php_slot = to_pnv_php_slot(slot);
 	int ret;
 
-	if (php_slot->state != PNV_PHP_STATE_POPULATED)
+	/*
+	 * Allow to disable a slot already in the registered state to
+	 * cover cases where the slot couldn't be enabled and never
+	 * reached the populated state
+	 */
+	if (php_slot->state != PNV_PHP_STATE_POPULATED &&
+	    php_slot->state != PNV_PHP_STATE_REGISTERED)
 		return 0;
 
 	/* Remove all devices behind the slot */
@@ -675,7 +684,7 @@
 	ret = pci_hp_register(&php_slot->slot, php_slot->bus,
 			      php_slot->slot_no, php_slot->name);
 	if (ret) {
-		pci_warn(php_slot->pdev, "Error %d registering slot\n", ret);
+		SLOT_WARN(php_slot, "Error %d registering slot\n", ret);
 		return ret;
 	}
 
@@ -728,7 +737,7 @@
 	/* Enable MSIx */
 	ret = pci_enable_msix_exact(pdev, &entry, 1);
 	if (ret) {
-		pci_warn(pdev, "Error %d enabling MSIx\n", ret);
+		SLOT_WARN(php_slot, "Error %d enabling MSIx\n", ret);
 		return ret;
 	}
 
@@ -778,8 +787,9 @@
 		   (sts & PCI_EXP_SLTSTA_PDC)) {
 		ret = pnv_pci_get_presence_state(php_slot->id, &presence);
 		if (ret) {
-			pci_warn(pdev, "PCI slot [%s] error %d getting presence (0x%04x), to retry the operation.\n",
-				 php_slot->name, ret, sts);
+			SLOT_WARN(php_slot,
+				  "PCI slot [%s] error %d getting presence (0x%04x), to retry the operation.\n",
+				  php_slot->name, ret, sts);
 			return IRQ_HANDLED;
 		}
 
@@ -809,8 +819,9 @@
 	 */
 	event = kzalloc(sizeof(*event), GFP_ATOMIC);
 	if (!event) {
-		pci_warn(pdev, "PCI slot [%s] missed hotplug event 0x%04x\n",
-			 php_slot->name, sts);
+		SLOT_WARN(php_slot,
+			  "PCI slot [%s] missed hotplug event 0x%04x\n",
+			  php_slot->name, sts);
 		return IRQ_HANDLED;
 	}
 
@@ -834,7 +845,7 @@
 	/* Allocate workqueue */
 	php_slot->wq = alloc_workqueue("pciehp-%s", 0, 0, php_slot->name);
 	if (!php_slot->wq) {
-		pci_warn(pdev, "Cannot alloc workqueue\n");
+		SLOT_WARN(php_slot, "Cannot alloc workqueue\n");
 		pnv_php_disable_irq(php_slot, true);
 		return;
 	}
@@ -858,7 +869,7 @@
 			  php_slot->name, php_slot);
 	if (ret) {
 		pnv_php_disable_irq(php_slot, true);
-		pci_warn(pdev, "Error %d enabling IRQ %d\n", ret, irq);
+		SLOT_WARN(php_slot, "Error %d enabling IRQ %d\n", ret, irq);
 		return;
 	}
 
@@ -894,7 +905,7 @@
 
 	ret = pci_enable_device(pdev);
 	if (ret) {
-		pci_warn(pdev, "Error %d enabling device\n", ret);
+		SLOT_WARN(php_slot, "Error %d enabling device\n", ret);
 		return;
 	}
 
@@ -1009,6 +1020,8 @@
 	for_each_compatible_node(dn, NULL, "ibm,ioda3-phb")
 		pnv_php_register(dn);
 
+	for_each_compatible_node(dn, NULL, "ibm,ioda2-npu2-opencapi-phb")
+		pnv_php_register_one(dn); /* slot directly under the PHB */
 	return 0;
 }
 
@@ -1021,6 +1034,9 @@
 
 	for_each_compatible_node(dn, NULL, "ibm,ioda3-phb")
 		pnv_php_unregister(dn);
+
+	for_each_compatible_node(dn, NULL, "ibm,ioda2-npu2-opencapi-phb")
+		pnv_php_unregister_one(dn); /* slot directly under the PHB */
 }
 
 module_init(pnv_php_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/rpaphp_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/rpaphp_core.c
@@ -154,11 +154,11 @@
 	return speed;
 }
 
-static int get_children_props(struct device_node *dn, const int **drc_indexes,
-		const int **drc_names, const int **drc_types,
-		const int **drc_power_domains)
+static int get_children_props(struct device_node *dn, const __be32 **drc_indexes,
+			      const __be32 **drc_names, const __be32 **drc_types,
+			      const __be32 **drc_power_domains)
 {
-	const int *indexes, *names, *types, *domains;
+	const __be32 *indexes, *names, *types, *domains;
 
 	indexes = of_get_property(dn, "ibm,drc-indexes", NULL);
 	names = of_get_property(dn, "ibm,drc-names", NULL);
@@ -194,8 +194,8 @@
 				char *drc_type, unsigned int my_index)
 {
 	char *name_tmp, *type_tmp;
-	const int *indexes, *names;
-	const int *types, *domains;
+	const __be32 *indexes, *names;
+	const __be32 *types, *domains;
 	int i, rc;
 
 	rc = get_children_props(dn->parent, &indexes, &names, &types, &domains);
@@ -208,7 +208,7 @@
 
 	/* Iterate through parent properties, looking for my-drc-index */
 	for (i = 0; i < be32_to_cpu(indexes[0]); i++) {
-		if ((unsigned int) indexes[i + 1] == my_index)
+		if (be32_to_cpu(indexes[i + 1]) == my_index)
 			break;
 
 		name_tmp += (strlen(name_tmp) + 1);
@@ -239,6 +239,8 @@
 	value = of_prop_next_u32(info, NULL, &entries);
 	if (!value)
 		return -EINVAL;
+	else
+		value++;
 
 	for (j = 0; j < entries; j++) {
 		of_read_drc_info_cell(&info, &value, &drc);
@@ -246,9 +248,10 @@
 		/* Should now know end of current entry */
 
 		/* Found it */
-		if (my_index <= drc.last_drc_index) {
+		if (my_index >= drc.drc_index_start && my_index <= drc.last_drc_index) {
+			int index = my_index - drc.drc_index_start;
 			sprintf(cell_drc_name, "%s%d", drc.drc_name_prefix,
-				my_index);
+				drc.drc_name_suffix_start + index);
 			break;
 		}
 	}
@@ -265,7 +268,7 @@
 int rpaphp_check_drc_props(struct device_node *dn, char *drc_name,
 			char *drc_type)
 {
-	const unsigned int *my_index;
+	const __be32 *my_index;
 
 	my_index = of_get_property(dn, "ibm,my-drc-index", NULL);
 	if (!my_index) {
@@ -273,12 +276,12 @@
 		return -EINVAL;
 	}
 
-	if (firmware_has_feature(FW_FEATURE_DRC_INFO))
+	if (of_find_property(dn->parent, "ibm,drc-info", NULL))
 		return rpaphp_check_drc_props_v2(dn, drc_name, drc_type,
-						*my_index);
+						be32_to_cpu(*my_index));
 	else
 		return rpaphp_check_drc_props_v1(dn, drc_name, drc_type,
-						*my_index);
+						be32_to_cpu(*my_index));
 }
 EXPORT_SYMBOL_GPL(rpaphp_check_drc_props);
 
@@ -309,10 +312,11 @@
  * for built-in pci slots (even when the built-in slots are
  * dlparable.)
  */
-static int is_php_dn(struct device_node *dn, const int **indexes,
-		const int **names, const int **types, const int **power_domains)
+static int is_php_dn(struct device_node *dn, const __be32 **indexes,
+		     const __be32 **names, const __be32 **types,
+		     const __be32 **power_domains)
 {
-	const int *drc_types;
+	const __be32 *drc_types;
 	int rc;
 
 	rc = get_children_props(dn, indexes, names, &drc_types, power_domains);
@@ -347,7 +351,7 @@
 	struct slot *slot;
 	int retval = 0;
 	int i;
-	const int *indexes, *names, *types, *power_domains;
+	const __be32 *indexes, *names, *types, *power_domains;
 	char *name, *type;
 
 	if (!dn->name || strcmp(dn->name, "pci"))
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/hotplug/s390_pci_hpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/hotplug/s390_pci_hpc.c
@@ -19,7 +19,6 @@
 #include <asm/sclp.h>
 
 #define SLOT_NAME_SIZE	10
-static LIST_HEAD(s390_hotplug_slot_list);
 
 static int zpci_fn_configured(enum zpci_state state)
 {
@@ -27,97 +26,89 @@
 	       state == ZPCI_FN_STATE_ONLINE;
 }
 
-/*
- * struct slot - slot information for each *physical* slot
- */
-struct slot {
-	struct list_head slot_list;
-	struct hotplug_slot hotplug_slot;
-	struct zpci_dev *zdev;
-};
-
-static inline struct slot *to_slot(struct hotplug_slot *hotplug_slot)
-{
-	return container_of(hotplug_slot, struct slot, hotplug_slot);
-}
-
-static inline int slot_configure(struct slot *slot)
+static inline int zdev_configure(struct zpci_dev *zdev)
 {
-	int ret = sclp_pci_configure(slot->zdev->fid);
+	int ret = sclp_pci_configure(zdev->fid);
 
-	zpci_dbg(3, "conf fid:%x, rc:%d\n", slot->zdev->fid, ret);
+	zpci_dbg(3, "conf fid:%x, rc:%d\n", zdev->fid, ret);
 	if (!ret)
-		slot->zdev->state = ZPCI_FN_STATE_CONFIGURED;
+		zdev->state = ZPCI_FN_STATE_CONFIGURED;
 
 	return ret;
 }
 
-static inline int slot_deconfigure(struct slot *slot)
+static inline int zdev_deconfigure(struct zpci_dev *zdev)
 {
-	int ret = sclp_pci_deconfigure(slot->zdev->fid);
+	int ret = sclp_pci_deconfigure(zdev->fid);
 
-	zpci_dbg(3, "deconf fid:%x, rc:%d\n", slot->zdev->fid, ret);
+	zpci_dbg(3, "deconf fid:%x, rc:%d\n", zdev->fid, ret);
 	if (!ret)
-		slot->zdev->state = ZPCI_FN_STATE_STANDBY;
+		zdev->state = ZPCI_FN_STATE_STANDBY;
 
 	return ret;
 }
 
 static int enable_slot(struct hotplug_slot *hotplug_slot)
 {
-	struct slot *slot = to_slot(hotplug_slot);
+	struct zpci_dev *zdev = container_of(hotplug_slot, struct zpci_dev,
+					     hotplug_slot);
+	struct zpci_bus *zbus = zdev->zbus;
 	int rc;
 
-	if (slot->zdev->state != ZPCI_FN_STATE_STANDBY)
+	if (zdev->state != ZPCI_FN_STATE_STANDBY)
 		return -EIO;
 
-	rc = slot_configure(slot);
+	rc = zdev_configure(zdev);
 	if (rc)
 		return rc;
 
-	rc = zpci_enable_device(slot->zdev);
+	rc = zpci_enable_device(zdev);
 	if (rc)
 		goto out_deconfigure;
 
-	pci_scan_slot(slot->zdev->bus, ZPCI_DEVFN);
+	pci_scan_slot(zbus->bus, zdev->devfn);
 	pci_lock_rescan_remove();
-	pci_bus_add_devices(slot->zdev->bus);
+	pci_bus_add_devices(zbus->bus);
 	pci_unlock_rescan_remove();
 
 	return rc;
 
 out_deconfigure:
-	slot_deconfigure(slot);
+	zdev_deconfigure(zdev);
 	return rc;
 }
 
 static int disable_slot(struct hotplug_slot *hotplug_slot)
 {
-	struct slot *slot = to_slot(hotplug_slot);
+	struct zpci_dev *zdev = container_of(hotplug_slot, struct zpci_dev,
+					     hotplug_slot);
 	struct pci_dev *pdev;
 	int rc;
 
-	if (!zpci_fn_configured(slot->zdev->state))
+	if (!zpci_fn_configured(zdev->state))
 		return -EIO;
 
-	pdev = pci_get_slot(slot->zdev->bus, ZPCI_DEVFN);
-	if (pdev) {
-		pci_stop_and_remove_bus_device_locked(pdev);
+	pdev = pci_get_slot(zdev->zbus->bus, zdev->devfn);
+	if (pdev && pci_num_vf(pdev)) {
 		pci_dev_put(pdev);
+		return -EBUSY;
 	}
 
-	rc = zpci_disable_device(slot->zdev);
+	zpci_remove_device(zdev);
+
+	rc = zpci_disable_device(zdev);
 	if (rc)
 		return rc;
 
-	return slot_deconfigure(slot);
+	return zdev_deconfigure(zdev);
 }
 
 static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value)
 {
-	struct slot *slot = to_slot(hotplug_slot);
+	struct zpci_dev *zdev = container_of(hotplug_slot, struct zpci_dev,
+					     hotplug_slot);
 
-	switch (slot->zdev->state) {
+	switch (zdev->state) {
 	case ZPCI_FN_STATE_STANDBY:
 		*value = 0;
 		break;
@@ -145,44 +136,16 @@
 int zpci_init_slot(struct zpci_dev *zdev)
 {
 	char name[SLOT_NAME_SIZE];
-	struct slot *slot;
-	int rc;
-
-	if (!zdev)
-		return 0;
+	struct zpci_bus *zbus = zdev->zbus;
 
-	slot = kzalloc(sizeof(*slot), GFP_KERNEL);
-	if (!slot)
-		goto error;
-
-	slot->zdev = zdev;
-	slot->hotplug_slot.ops = &s390_hotplug_slot_ops;
+	zdev->hotplug_slot.ops = &s390_hotplug_slot_ops;
 
 	snprintf(name, SLOT_NAME_SIZE, "%08x", zdev->fid);
-	rc = pci_hp_register(&slot->hotplug_slot, zdev->bus,
-			     ZPCI_DEVFN, name);
-	if (rc)
-		goto error_reg;
-
-	list_add(&slot->slot_list, &s390_hotplug_slot_list);
-	return 0;
-
-error_reg:
-	kfree(slot);
-error:
-	return -ENOMEM;
+	return pci_hp_register(&zdev->hotplug_slot, zbus->bus,
+			       zdev->devfn, name);
 }
 
 void zpci_exit_slot(struct zpci_dev *zdev)
 {
-	struct slot *slot, *next;
-
-	list_for_each_entry_safe(slot, next, &s390_hotplug_slot_list,
-				 slot_list) {
-		if (slot->zdev != zdev)
-			continue;
-		list_del(&slot->slot_list);
-		pci_hp_deregister(&slot->hotplug_slot);
-		kfree(slot);
-	}
+	pci_hp_deregister(&zdev->hotplug_slot);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/iov.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/iov.c
@@ -134,12 +134,35 @@
 			     &physfn->sriov->subsystem_device);
 }
 
+int pci_iov_sysfs_link(struct pci_dev *dev,
+		struct pci_dev *virtfn, int id)
+{
+	char buf[VIRTFN_ID_LEN];
+	int rc;
+
+	sprintf(buf, "virtfn%u", id);
+	rc = sysfs_create_link(&dev->dev.kobj, &virtfn->dev.kobj, buf);
+	if (rc)
+		goto failed;
+	rc = sysfs_create_link(&virtfn->dev.kobj, &dev->dev.kobj, "physfn");
+	if (rc)
+		goto failed1;
+
+	kobject_uevent(&virtfn->dev.kobj, KOBJ_CHANGE);
+
+	return 0;
+
+failed1:
+	sysfs_remove_link(&dev->dev.kobj, buf);
+failed:
+	return rc;
+}
+
 int pci_iov_add_virtfn(struct pci_dev *dev, int id)
 {
 	int i;
 	int rc = -ENOMEM;
 	u64 size;
-	char buf[VIRTFN_ID_LEN];
 	struct pci_dev *virtfn;
 	struct resource *res;
 	struct pci_sriov *iov = dev->sriov;
@@ -158,6 +181,7 @@
 	virtfn->device = iov->vf_device;
 	virtfn->is_virtfn = 1;
 	virtfn->physfn = pci_dev_get(dev);
+	virtfn->no_command_memory = 1;
 
 	if (id == 0)
 		pci_read_vf_config_common(virtfn);
@@ -183,26 +207,16 @@
 	}
 
 	pci_device_add(virtfn, virtfn->bus);
-
-	sprintf(buf, "virtfn%u", id);
-	rc = sysfs_create_link(&dev->dev.kobj, &virtfn->dev.kobj, buf);
+	rc = pci_iov_sysfs_link(dev, virtfn, id);
 	if (rc)
-		goto failed2;
-	rc = sysfs_create_link(&virtfn->dev.kobj, &dev->dev.kobj, "physfn");
-	if (rc)
-		goto failed3;
-
-	kobject_uevent(&virtfn->dev.kobj, KOBJ_CHANGE);
+		goto failed1;
 
 	pci_bus_add_device(virtfn);
 
 	return 0;
 
-failed3:
-	sysfs_remove_link(&dev->dev.kobj, buf);
-failed2:
-	pci_stop_and_remove_bus_device(virtfn);
 failed1:
+	pci_stop_and_remove_bus_device(virtfn);
 	pci_dev_put(dev);
 failed0:
 	virtfn_remove_bus(dev->bus, bus);
@@ -254,8 +268,14 @@
 				 char *buf)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
+	u16 num_vfs;
+
+	/* Serialize vs sriov_numvfs_store() so readers see valid num_VFs */
+	device_lock(&pdev->dev);
+	num_vfs = pdev->sriov->num_VFs;
+	device_unlock(&pdev->dev);
 
-	return sprintf(buf, "%u\n", pdev->sriov->num_VFs);
+	return sprintf(buf, "%u\n", num_vfs);
 }
 
 /*
@@ -553,9 +573,6 @@
 	struct pci_sriov *iov = dev->sriov;
 	int i;
 
-	if (dev->no_vf_scan)
-		return;
-
 	for (i = 0; i < iov->num_VFs; i++)
 		pci_iov_remove_virtfn(dev, i);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/msi.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/msi.c
@@ -213,12 +213,13 @@
 
 	if (pci_msi_ignore_mask)
 		return 0;
+
 	desc_addr = pci_msix_desc_addr(desc);
 	if (!desc_addr)
 		return 0;
 
 	mask_bits &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
-	if (flag)
+	if (flag & PCI_MSIX_ENTRY_CTRL_MASKBIT)
 		mask_bits |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
 
 	writel(mask_bits, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pci-acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pci-acpi.c
@@ -944,6 +944,16 @@
 	if (!dev->is_hotplug_bridge)
 		return false;
 
+	/* Assume D3 support if the bridge is power-manageable by ACPI. */
+	adev = ACPI_COMPANION(&dev->dev);
+	if (!adev && !pci_dev_is_added(dev)) {
+		adev = acpi_pci_find_companion(&dev->dev);
+		ACPI_COMPANION_SET(&dev->dev, adev);
+	}
+
+	if (adev && acpi_device_power_manageable(adev))
+		return true;
+
 	/*
 	 * Look for a special _DSD property for the root port and if it
 	 * is set we know the hierarchy behind it supports D3 just fine.
@@ -1050,7 +1060,7 @@
 {
 	while (bus->parent) {
 		if (acpi_pm_device_can_wakeup(&bus->self->dev))
-			return acpi_pm_set_bridge_wakeup(&bus->self->dev, enable);
+			return acpi_pm_set_device_wakeup(&bus->self->dev, enable);
 
 		bus = bus->parent;
 	}
@@ -1058,7 +1068,7 @@
 	/* We have reached the root bus. */
 	if (bus->bridge) {
 		if (acpi_pm_device_can_wakeup(bus->bridge))
-			return acpi_pm_set_bridge_wakeup(bus->bridge, enable);
+			return acpi_pm_set_device_wakeup(bus->bridge, enable);
 	}
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pci-bridge-emul.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pci-bridge-emul.c
@@ -195,8 +195,8 @@
 		 * RO, the rest is reserved
 		 */
 		.w1c = GENMASK(19, 16),
-		.ro = GENMASK(20, 19),
-		.rsvd = GENMASK(31, 21),
+		.ro = GENMASK(21, 20),
+		.rsvd = GENMASK(31, 22),
 	},
 
 	[PCI_EXP_LNKCAP / 4] = {
@@ -236,7 +236,7 @@
 			PCI_EXP_SLTSTA_CC | PCI_EXP_SLTSTA_DLLSC) << 16,
 		.ro = (PCI_EXP_SLTSTA_MRLSS | PCI_EXP_SLTSTA_PDS |
 		       PCI_EXP_SLTSTA_EIS) << 16,
-		.rsvd = GENMASK(15, 12) | (GENMASK(15, 9) << 16),
+		.rsvd = GENMASK(15, 13) | (GENMASK(15, 9) << 16),
 	},
 
 	[PCI_EXP_RTCTL / 4] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pci-driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pci-driver.c
@@ -919,6 +919,8 @@
 	struct pci_dev *pci_dev = to_pci_dev(dev);
 	struct device_driver *drv = dev->driver;
 	int error = 0;
+	pci_power_t prev_state = pci_dev->current_state;
+	bool skip_bus_pm = pci_dev->skip_bus_pm;
 
 	if (dev_pm_may_skip_resume(dev))
 		return 0;
@@ -937,16 +939,18 @@
 	 * configuration here and attempting to put them into D0 again is
 	 * pointless, so avoid doing that.
 	 */
-	if (!(pci_dev->skip_bus_pm && pm_suspend_no_platform()))
+	if (!(skip_bus_pm && pm_suspend_no_platform()))
 		pci_pm_default_resume_early(pci_dev);
 
 	pci_fixup_device(pci_fixup_resume_early, pci_dev);
+	pcie_pme_root_status_cleanup(pci_dev);
+
+	if (!skip_bus_pm && prev_state == PCI_D3cold)
+		pci_bridge_wait_for_secondary_bus(pci_dev);
 
 	if (pci_has_legacy_pm_support(pci_dev))
 		return pci_legacy_resume_early(dev);
 
-	pcie_pme_root_status_cleanup(pci_dev);
-
 	if (drv && drv->pm && drv->pm->resume_noirq)
 		error = drv->pm->resume_noirq(dev);
 
@@ -1076,17 +1080,22 @@
 			return error;
 	}
 
-	if (pci_has_legacy_pm_support(pci_dev))
-		return pci_legacy_resume_early(dev);
-
 	/*
-	 * pci_restore_state() requires the device to be in D0 (because of MSI
-	 * restoration among other things), so force it into D0 in case the
-	 * driver's "freeze" callbacks put it into a low-power state directly.
+	 * Both the legacy ->resume_early() and the new pm->thaw_noirq()
+	 * callbacks assume the device has been returned to D0 and its
+	 * config state has been restored.
+	 *
+	 * In addition, pci_restore_state() restores MSI-X state in MMIO
+	 * space, which requires the device to be in D0, so return it to D0
+	 * in case the driver's "freeze" callbacks put it into a low-power
+	 * state.
 	 */
 	pci_set_power_state(pci_dev, PCI_D0);
 	pci_restore_state(pci_dev);
 
+	if (pci_has_legacy_pm_support(pci_dev))
+		return pci_legacy_resume_early(dev);
+
 	if (drv && drv->pm && drv->pm->thaw_noirq)
 		error = drv->pm->thaw_noirq(dev);
 
@@ -1329,6 +1338,7 @@
 	int rc = 0;
 	struct pci_dev *pci_dev = to_pci_dev(dev);
 	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+	pci_power_t prev_state = pci_dev->current_state;
 
 	/*
 	 * Restoring config space is necessary even if the device is not bound
@@ -1344,6 +1354,9 @@
 	pci_enable_wake(pci_dev, PCI_D0, false);
 	pci_fixup_device(pci_fixup_resume, pci_dev);
 
+	if (prev_state == PCI_D3cold)
+		pci_bridge_wait_for_secondary_bus(pci_dev);
+
 	if (pm && pm->runtime_resume)
 		rc = pm->runtime_resume(dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pci-sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pci-sysfs.c
@@ -464,7 +464,8 @@
 	}
 	return count;
 }
-static DEVICE_ATTR_WO(dev_rescan);
+static struct device_attribute dev_attr_dev_rescan = __ATTR(rescan, 0200, NULL,
+							    dev_rescan_store);
 
 static ssize_t remove_store(struct device *dev, struct device_attribute *attr,
 			    const char *buf, size_t count)
@@ -501,7 +502,8 @@
 	}
 	return count;
 }
-static DEVICE_ATTR_WO(bus_rescan);
+static struct device_attribute dev_attr_bus_rescan = __ATTR(rescan, 0200, NULL,
+							    bus_rescan_store);
 
 #if defined(CONFIG_PM) && defined(CONFIG_ACPI)
 static ssize_t d3cold_allowed_store(struct device *dev,
@@ -1330,7 +1332,6 @@
 	int retval;
 
 	pcie_vpd_create_sysfs_dev_files(dev);
-	pcie_aspm_create_sysfs_dev_files(dev);
 
 	if (dev->reset_fn) {
 		retval = device_create_file(&dev->dev, &dev_attr_reset);
@@ -1340,7 +1341,6 @@
 	return 0;
 
 error:
-	pcie_aspm_remove_sysfs_dev_files(dev);
 	pcie_vpd_remove_sysfs_dev_files(dev);
 	return retval;
 }
@@ -1416,7 +1416,6 @@
 static void pci_remove_capabilities_sysfs(struct pci_dev *dev)
 {
 	pcie_vpd_remove_sysfs_dev_files(dev);
-	pcie_aspm_remove_sysfs_dev_files(dev);
 	if (dev->reset_fn) {
 		device_remove_file(&dev->dev, &dev_attr_reset);
 		dev->reset_fn = 0;
@@ -1588,6 +1587,9 @@
 #ifdef CONFIG_PCIEAER
 	&aer_stats_attr_group,
 #endif
+#ifdef CONFIG_PCIEASPM
+	&aspm_ctrl_attr_group,
+#endif
 	NULL,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pci.c
@@ -802,7 +802,9 @@
 
 static inline bool platform_pci_bridge_d3(struct pci_dev *dev)
 {
-	return pci_platform_pm ? pci_platform_pm->bridge_d3(dev) : false;
+	if (pci_platform_pm && pci_platform_pm->bridge_d3)
+		return pci_platform_pm->bridge_d3(dev);
+	return false;
 }
 
 /**
@@ -1019,8 +1021,6 @@
 		 * because have already delayed for the bridge.
 		 */
 		if (dev->runtime_d3cold) {
-			if (dev->d3cold_delay && !dev->imm_ready)
-				msleep(dev->d3cold_delay);
 			/*
 			 * When powering on a bridge from D3cold, the
 			 * whole hierarchy may be powered on into
@@ -3471,7 +3471,14 @@
 		return 0;
 
 	pci_read_config_dword(pdev, pos + PCI_REBAR_CAP, &cap);
-	return (cap & PCI_REBAR_CAP_SIZES) >> 4;
+	cap &= PCI_REBAR_CAP_SIZES;
+
+	/* 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;
+
+	return cap >> 4;
 }
 
 /**
@@ -3896,6 +3903,10 @@
 	ret = logic_pio_register_range(range);
 	if (ret)
 		kfree(range);
+
+	/* Ignore duplicates due to deferred probing */
+	if (ret == -EEXIST)
+		ret = 0;
 #endif
 
 	return ret;
@@ -4605,14 +4616,17 @@
 
 	return pci_dev_wait(dev, "PM D3->D0", PCIE_RESET_READY_POLL_MS);
 }
+
 /**
- * pcie_wait_for_link - Wait until link is active or inactive
+ * pcie_wait_for_link_delay - Wait until link is active or inactive
  * @pdev: Bridge device
  * @active: waiting for active or inactive?
+ * @delay: Delay to wait after link has become active (in ms)
  *
  * Use this to wait till link becomes active or inactive.
  */
-bool pcie_wait_for_link(struct pci_dev *pdev, bool active)
+static bool pcie_wait_for_link_delay(struct pci_dev *pdev, bool active,
+				     int delay)
 {
 	int timeout = 1000;
 	bool ret;
@@ -4620,10 +4634,10 @@
 
 	/*
 	 * Some controllers might not implement link active reporting. In this
-	 * case, we wait for 1000 + 100 ms.
+	 * case, we wait for 1000 ms + any delay requested by the caller.
 	 */
 	if (!pdev->link_active_reporting) {
-		msleep(1100);
+		msleep(timeout + delay);
 		return true;
 	}
 
@@ -4649,13 +4663,144 @@
 		timeout -= 10;
 	}
 	if (active && ret)
-		msleep(100);
+		msleep(delay);
 	else if (ret != active)
 		pci_info(pdev, "Data Link Layer Link Active not %s in 1000 msec\n",
 			active ? "set" : "cleared");
 	return ret == active;
 }
 
+/**
+ * pcie_wait_for_link - Wait until link is active or inactive
+ * @pdev: Bridge device
+ * @active: waiting for active or inactive?
+ *
+ * Use this to wait till link becomes active or inactive.
+ */
+bool pcie_wait_for_link(struct pci_dev *pdev, bool active)
+{
+	return pcie_wait_for_link_delay(pdev, active, 100);
+}
+
+/*
+ * Find maximum D3cold delay required by all the devices on the bus.  The
+ * spec says 100 ms, but firmware can lower it and we allow drivers to
+ * increase it as well.
+ *
+ * Called with @pci_bus_sem locked for reading.
+ */
+static int pci_bus_max_d3cold_delay(const struct pci_bus *bus)
+{
+	const struct pci_dev *pdev;
+	int min_delay = 100;
+	int max_delay = 0;
+
+	list_for_each_entry(pdev, &bus->devices, bus_list) {
+		if (pdev->d3cold_delay < min_delay)
+			min_delay = pdev->d3cold_delay;
+		if (pdev->d3cold_delay > max_delay)
+			max_delay = pdev->d3cold_delay;
+	}
+
+	return max(min_delay, max_delay);
+}
+
+/**
+ * pci_bridge_wait_for_secondary_bus - Wait for secondary bus to be accessible
+ * @dev: PCI bridge
+ *
+ * Handle necessary delays before access to the devices on the secondary
+ * side of the bridge are permitted after D3cold to D0 transition.
+ *
+ * For PCIe this means the delays in PCIe 5.0 section 6.6.1. For
+ * conventional PCI it means Tpvrh + Trhfa specified in PCI 3.0 section
+ * 4.3.2.
+ */
+void pci_bridge_wait_for_secondary_bus(struct pci_dev *dev)
+{
+	struct pci_dev *child;
+	int delay;
+
+	if (pci_dev_is_disconnected(dev))
+		return;
+
+	if (!pci_is_bridge(dev) || !dev->bridge_d3)
+		return;
+
+	down_read(&pci_bus_sem);
+
+	/*
+	 * We only deal with devices that are present currently on the bus.
+	 * For any hot-added devices the access delay is handled in pciehp
+	 * board_added(). In case of ACPI hotplug the firmware is expected
+	 * to configure the devices before OS is notified.
+	 */
+	if (!dev->subordinate || list_empty(&dev->subordinate->devices)) {
+		up_read(&pci_bus_sem);
+		return;
+	}
+
+	/* Take d3cold_delay requirements into account */
+	delay = pci_bus_max_d3cold_delay(dev->subordinate);
+	if (!delay) {
+		up_read(&pci_bus_sem);
+		return;
+	}
+
+	child = list_first_entry(&dev->subordinate->devices, struct pci_dev,
+				 bus_list);
+	up_read(&pci_bus_sem);
+
+	/*
+	 * Conventional PCI and PCI-X we need to wait Tpvrh + Trhfa before
+	 * accessing the device after reset (that is 1000 ms + 100 ms). In
+	 * practice this should not be needed because we don't do power
+	 * management for them (see pci_bridge_d3_possible()).
+	 */
+	if (!pci_is_pcie(dev)) {
+		pci_dbg(dev, "waiting %d ms for secondary bus\n", 1000 + delay);
+		msleep(1000 + delay);
+		return;
+	}
+
+	/*
+	 * For PCIe downstream and root ports that do not support speeds
+	 * greater than 5 GT/s need to wait minimum 100 ms. For higher
+	 * speeds (gen3) we need to wait first for the data link layer to
+	 * become active.
+	 *
+	 * However, 100 ms is the minimum and the PCIe spec says the
+	 * software must allow at least 1s before it can determine that the
+	 * device that did not respond is a broken device. There is
+	 * evidence that 100 ms is not always enough, for example certain
+	 * Titan Ridge xHCI controller does not always respond to
+	 * configuration requests if we only wait for 100 ms (see
+	 * https://bugzilla.kernel.org/show_bug.cgi?id=203885).
+	 *
+	 * Therefore we wait for 100 ms and check for the device presence.
+	 * If it is still not present give it an additional 100 ms.
+	 */
+	if (!pcie_downstream_port(dev))
+		return;
+
+	if (pcie_get_speed_cap(dev) <= PCIE_SPEED_5_0GT) {
+		pci_dbg(dev, "waiting %d ms for downstream link\n", delay);
+		msleep(delay);
+	} else {
+		pci_dbg(dev, "waiting %d ms for downstream link, after activation\n",
+			delay);
+		if (!pcie_wait_for_link_delay(dev, true, delay)) {
+			/* Did not train, no need to wait any further */
+			return;
+		}
+	}
+
+	if (!pci_device_is_present(child)) {
+		pci_dbg(child, "waiting additional %d ms to become accessible\n", delay);
+		msleep(delay);
+	}
+}
+
 void pci_reset_secondary_bus(struct pci_dev *dev)
 {
 	u16 ctrl;
@@ -5854,10 +5999,29 @@
 	return 0;
 }
 
+#ifdef CONFIG_ACPI
+bool pci_pr3_present(struct pci_dev *pdev)
+{
+	struct acpi_device *adev;
+
+	if (acpi_disabled)
+		return false;
+
+	adev = ACPI_COMPANION(&pdev->dev);
+	if (!adev)
+		return false;
+
+	return adev->power.flags.power_resources &&
+		acpi_has_method(adev->handle, "_PR3");
+}
+EXPORT_SYMBOL_GPL(pci_pr3_present);
+#endif
+
 /**
  * pci_add_dma_alias - Add a DMA devfn alias for a device
  * @dev: the PCI device for which alias is added
- * @devfn: alias slot and function
+ * @devfn_from: alias slot and function
+ * @nr_devfns: number of subsequent devfns to alias
  *
  * This helper encodes an 8-bit devfn as a bit number in dma_alias_mask
  * which is used to program permissible bus-devfn source addresses for DMA
@@ -5873,18 +6037,29 @@
  * cannot be left as a userspace activity).  DMA aliases should therefore
  * be configured via quirks, such as the PCI fixup header quirk.
  */
-void pci_add_dma_alias(struct pci_dev *dev, u8 devfn)
+void pci_add_dma_alias(struct pci_dev *dev, u8 devfn_from, unsigned nr_devfns)
 {
+	int devfn_to;
+
+	nr_devfns = min(nr_devfns, (unsigned) MAX_NR_DEVFNS - devfn_from);
+	devfn_to = devfn_from + nr_devfns - 1;
+
 	if (!dev->dma_alias_mask)
-		dev->dma_alias_mask = bitmap_zalloc(U8_MAX, GFP_KERNEL);
+		dev->dma_alias_mask = bitmap_zalloc(MAX_NR_DEVFNS, GFP_KERNEL);
 	if (!dev->dma_alias_mask) {
 		pci_warn(dev, "Unable to allocate DMA alias mask\n");
 		return;
 	}
 
-	set_bit(devfn, dev->dma_alias_mask);
-	pci_info(dev, "Enabling fixed DMA alias to %02x.%d\n",
-		 PCI_SLOT(devfn), PCI_FUNC(devfn));
+	bitmap_set(dev->dma_alias_mask, devfn_from, nr_devfns);
+
+	if (nr_devfns == 1)
+		pci_info(dev, "Enabling fixed DMA alias to %02x.%d\n",
+				PCI_SLOT(devfn_from), PCI_FUNC(devfn_from));
+	else if (nr_devfns > 1)
+		pci_info(dev, "Enabling fixed DMA alias for devfn range from %02x.%d to %02x.%d\n",
+				PCI_SLOT(devfn_from), PCI_FUNC(devfn_from),
+				PCI_SLOT(devfn_to), PCI_FUNC(devfn_to));
 }
 
 bool pci_devs_are_dma_aliases(struct pci_dev *dev1, struct pci_dev *dev2)
@@ -5965,19 +6140,21 @@
 	while (*p) {
 		count = 0;
 		if (sscanf(p, "%d%n", &align_order, &count) == 1 &&
-							p[count] == '@') {
+		    p[count] == '@') {
 			p += count + 1;
+			if (align_order > 63) {
+				pr_err("PCI: Invalid requested alignment (order %d)\n",
+				       align_order);
+				align_order = PAGE_SHIFT;
+			}
 		} else {
-			align_order = -1;
+			align_order = PAGE_SHIFT;
 		}
 
 		ret = pci_dev_str_match(dev, p, &p);
 		if (ret == 1) {
 			*resize = true;
-			if (align_order == -1)
-				align = PAGE_SIZE;
-			else
-				align = 1 << align_order;
+			align = 1ULL << align_order;
 			break;
 		} else if (ret < 0) {
 			pr_err("PCI: Can't parse resource_alignment parameter: %s\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pci.h
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pci.h
@@ -4,6 +4,9 @@
 
 #include <linux/pci.h>
 
+/* Number of possible devfns: 0.0 to 1f.7 inclusive */
+#define MAX_NR_DEVFNS 256
+
 #define PCI_FIND_CAP_TTL	48
 
 #define PCI_VSEC_ID_INTEL_TBT	0x1234	/* Thunderbolt */
@@ -104,6 +107,7 @@
 void pci_free_cap_save_buffers(struct pci_dev *dev);
 bool pci_bridge_d3_possible(struct pci_dev *dev);
 void pci_bridge_d3_update(struct pci_dev *dev);
+void pci_bridge_wait_for_secondary_bus(struct pci_dev *dev);
 
 static inline void pci_wakeup_event(struct pci_dev *dev)
 {
@@ -541,14 +545,6 @@
 static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { }
 #endif
 
-#ifdef CONFIG_PCIEASPM_DEBUG
-void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev);
-void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev);
-#else
-static inline void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev) { }
-static inline void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev) { }
-#endif
-
 #ifdef CONFIG_PCIE_ECRC
 void pcie_set_ecrc_checking(struct pci_dev *dev);
 void pcie_ecrc_get_policy(char *str);
@@ -667,4 +663,8 @@
 }
 #endif
 
+#ifdef CONFIG_PCIEASPM
+extern const struct attribute_group aspm_ctrl_attr_group;
+#endif
+
 #endif /* DRIVERS_PCI_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/Kconfig
@@ -79,13 +79,6 @@
 
 	  When in doubt, say Y.
 
-config PCIEASPM_DEBUG
-	bool "Debug PCI Express ASPM"
-	depends on PCIEASPM
-	help
-	  This enables PCI Express ASPM debug support. It will add per-device
-	  interface to control ASPM.
-
 choice
 	prompt "Default ASPM policy"
 	default PCIEASPM_DEFAULT
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/aer.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/aer.c
@@ -1387,6 +1387,7 @@
 		return -ENOMEM;
 
 	rpc->rpd = port;
+	INIT_KFIFO(rpc->aer_fifo);
 	set_service_data(dev, rpc);
 
 	status = devm_request_threaded_irq(device, dev->irq, aer_irq, aer_isr,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/aspm.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/aspm.c
@@ -64,6 +64,7 @@
 	u32 clkpm_capable:1;		/* Clock PM capable? */
 	u32 clkpm_enabled:1;		/* Current Clock PM state */
 	u32 clkpm_default:1;		/* Default Clock PM state by BIOS */
+	u32 clkpm_disable:1;		/* Clock PM disabled */
 
 	/* Exit latencies */
 	struct aspm_latency latency_up;	/* Upstream direction exit latency */
@@ -161,8 +162,11 @@
 
 static void pcie_set_clkpm(struct pcie_link_state *link, int enable)
 {
-	/* Don't enable Clock PM if the link is not Clock PM capable */
-	if (!link->clkpm_capable)
+	/*
+	 * Don't enable Clock PM if the link is not Clock PM capable
+	 * or Clock PM is disabled
+	 */
+	if (!link->clkpm_capable || link->clkpm_disable)
 		enable = 0;
 	/* Need nothing if the specified equals to current state */
 	if (link->clkpm_enabled == enable)
@@ -192,7 +196,8 @@
 	}
 	link->clkpm_enabled = enabled;
 	link->clkpm_default = enabled;
-	link->clkpm_capable = (blacklist) ? 0 : capable;
+	link->clkpm_capable = capable;
+	link->clkpm_disable = blacklist ? 1 : 0;
 }
 
 static bool pcie_retrain_link(struct pcie_link_state *link)
@@ -623,16 +628,6 @@
 
 	/* Setup initial capable state. Will be updated later */
 	link->aspm_capable = link->aspm_support;
-	/*
-	 * If the downstream component has pci bridge function, don't
-	 * do ASPM for now.
-	 */
-	list_for_each_entry(child, &linkbus->devices, bus_list) {
-		if (pci_pcie_type(child) == PCI_EXP_TYPE_PCI_BRIDGE) {
-			link->aspm_disable = ASPM_STATE_ALL;
-			break;
-		}
-	}
 
 	/* Get and check endpoint acceptable latencies */
 	list_for_each_entry(child, &linkbus->devices, bus_list) {
@@ -742,9 +737,9 @@
 
 	/* Enable what we need to enable */
 	pci_clear_and_set_dword(parent, up_cap_ptr + PCI_L1SS_CTL1,
-				PCI_L1SS_CAP_L1_PM_SS, val);
+				PCI_L1SS_CTL1_L1SS_MASK, val);
 	pci_clear_and_set_dword(child, dw_cap_ptr + PCI_L1SS_CTL1,
-				PCI_L1SS_CAP_L1_PM_SS, val);
+				PCI_L1SS_CTL1_L1SS_MASK, val);
 }
 
 static void pcie_config_aspm_dev(struct pci_dev *pdev, u32 val)
@@ -894,6 +889,14 @@
 	return link;
 }
 
+static void pcie_aspm_update_sysfs_visibility(struct pci_dev *pdev)
+{
+	struct pci_dev *child;
+
+	list_for_each_entry(child, &pdev->subordinate->devices, bus_list)
+		sysfs_update_group(&child->dev.kobj, &aspm_ctrl_attr_group);
+}
+
 /*
  * pcie_aspm_init_link_state: Initiate PCI express link state.
  * It is called after the pcie and its children devices are scanned.
@@ -955,6 +958,8 @@
 		pcie_set_clkpm(link, policy_to_clkpm_state(link));
 	}
 
+	pcie_aspm_update_sysfs_visibility(pdev);
+
 unlock:
 	mutex_unlock(&aspm_lock);
 out:
@@ -1061,19 +1066,26 @@
 	up_read(&pci_bus_sem);
 }
 
-static int __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem)
+static struct pcie_link_state *pcie_aspm_get_link(struct pci_dev *pdev)
 {
-	struct pci_dev *parent = pdev->bus->self;
-	struct pcie_link_state *link;
+	struct pci_dev *bridge;
 
 	if (!pci_is_pcie(pdev))
-		return 0;
+		return NULL;
 
-	if (pcie_downstream_port(pdev))
-		parent = pdev;
-	if (!parent || !parent->link_state)
-		return -EINVAL;
+	bridge = pci_upstream_bridge(pdev);
+	if (!bridge || !pci_is_pcie(bridge))
+		return NULL;
+
+	return bridge->link_state;
+}
+
+static int __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem)
+{
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
 
+	if (!link)
+		return -EINVAL;
 	/*
 	 * A driver requested that ASPM be disabled on this device, but
 	 * if we don't have permission to manage ASPM (e.g., on ACPI
@@ -1090,17 +1102,24 @@
 	if (sem)
 		down_read(&pci_bus_sem);
 	mutex_lock(&aspm_lock);
-	link = parent->link_state;
 	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)
+		link->aspm_disable |= ASPM_STATE_L1_2;
+	if (state & PCIE_LINK_STATE_L1_1_PCIPM)
+		link->aspm_disable |= ASPM_STATE_L1_1_PCIPM;
+	if (state & PCIE_LINK_STATE_L1_2_PCIPM)
+		link->aspm_disable |= ASPM_STATE_L1_2_PCIPM;
 	pcie_config_aspm_link(link, policy_to_aspm_state(link));
 
-	if (state & PCIE_LINK_STATE_CLKPM) {
-		link->clkpm_capable = 0;
-		pcie_set_clkpm(link, 0);
-	}
+	if (state & PCIE_LINK_STATE_CLKPM)
+		link->clkpm_disable = 1;
+	pcie_set_clkpm(link, policy_to_clkpm_state(link));
 	mutex_unlock(&aspm_lock);
 	if (sem)
 		up_read(&pci_bus_sem);
@@ -1163,6 +1182,7 @@
 			cnt += sprintf(buffer + cnt, "[%s] ", policy_str[i]);
 		else
 			cnt += sprintf(buffer + cnt, "%s ", policy_str[i]);
+	cnt += sprintf(buffer + cnt, "\n");
 	return cnt;
 }
 
@@ -1172,127 +1192,161 @@
 /**
  * pcie_aspm_enabled - Check if PCIe ASPM has been enabled for a device.
  * @pdev: Target device.
+ *
+ * Relies on the upstream bridge's link_state being valid.  The link_state
+ * is deallocated only when the last child of the bridge (i.e., @pdev or a
+ * sibling) is removed, and the caller should be holding a reference to
+ * @pdev, so this should be safe.
  */
 bool pcie_aspm_enabled(struct pci_dev *pdev)
 {
-	struct pci_dev *bridge = pci_upstream_bridge(pdev);
-	bool ret;
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
 
-	if (!bridge)
+	if (!link)
 		return false;
 
-	mutex_lock(&aspm_lock);
-	ret = bridge->link_state ? !!bridge->link_state->aspm_enabled : false;
-	mutex_unlock(&aspm_lock);
-
-	return ret;
+	return link->aspm_enabled;
 }
 EXPORT_SYMBOL_GPL(pcie_aspm_enabled);
 
-#ifdef CONFIG_PCIEASPM_DEBUG
-static ssize_t link_state_show(struct device *dev,
-		struct device_attribute *attr,
-		char *buf)
+static ssize_t aspm_attr_show_common(struct device *dev,
+				     struct device_attribute *attr,
+				     char *buf, u8 state)
 {
-	struct pci_dev *pci_device = to_pci_dev(dev);
-	struct pcie_link_state *link_state = pci_device->link_state;
+	struct pci_dev *pdev = to_pci_dev(dev);
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
 
-	return sprintf(buf, "%d\n", link_state->aspm_enabled);
+	return sprintf(buf, "%d\n", (link->aspm_enabled & state) ? 1 : 0);
 }
 
-static ssize_t link_state_store(struct device *dev,
-		struct device_attribute *attr,
-		const char *buf,
-		size_t n)
+static ssize_t aspm_attr_store_common(struct device *dev,
+				      struct device_attribute *attr,
+				      const char *buf, size_t len, u8 state)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
-	struct pcie_link_state *link, *root = pdev->link_state->root;
-	u32 state;
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
+	bool state_enable;
 
-	if (aspm_disabled)
-		return -EPERM;
-
-	if (kstrtouint(buf, 10, &state))
-		return -EINVAL;
-	if ((state & ~ASPM_STATE_ALL) != 0)
+	if (strtobool(buf, &state_enable) < 0)
 		return -EINVAL;
 
 	down_read(&pci_bus_sem);
 	mutex_lock(&aspm_lock);
-	list_for_each_entry(link, &link_list, sibling) {
-		if (link->root != root)
-			continue;
-		pcie_config_aspm_link(link, state);
+
+	if (state_enable) {
+		link->aspm_disable &= ~state;
+		/* need to enable L1 for substates */
+		if (state & ASPM_STATE_L1SS)
+			link->aspm_disable &= ~ASPM_STATE_L1;
+	} else {
+		link->aspm_disable |= state;
 	}
+
+	pcie_config_aspm_link(link, policy_to_aspm_state(link));
+
 	mutex_unlock(&aspm_lock);
 	up_read(&pci_bus_sem);
-	return n;
+
+	return len;
 }
 
-static ssize_t clk_ctl_show(struct device *dev,
-		struct device_attribute *attr,
-		char *buf)
+#define ASPM_ATTR(_f, _s)						\
+static ssize_t _f##_show(struct device *dev,				\
+			 struct device_attribute *attr, char *buf)	\
+{ return aspm_attr_show_common(dev, attr, buf, ASPM_STATE_##_s); }	\
+									\
+static ssize_t _f##_store(struct device *dev,				\
+			  struct device_attribute *attr,		\
+			  const char *buf, size_t len)			\
+{ return aspm_attr_store_common(dev, attr, buf, len, ASPM_STATE_##_s); }
+
+ASPM_ATTR(l0s_aspm, L0S)
+ASPM_ATTR(l1_aspm, L1)
+ASPM_ATTR(l1_1_aspm, L1_1)
+ASPM_ATTR(l1_2_aspm, L1_2)
+ASPM_ATTR(l1_1_pcipm, L1_1_PCIPM)
+ASPM_ATTR(l1_2_pcipm, L1_2_PCIPM)
+
+static ssize_t clkpm_show(struct device *dev,
+			  struct device_attribute *attr, char *buf)
 {
-	struct pci_dev *pci_device = to_pci_dev(dev);
-	struct pcie_link_state *link_state = pci_device->link_state;
+	struct pci_dev *pdev = to_pci_dev(dev);
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
 
-	return sprintf(buf, "%d\n", link_state->clkpm_enabled);
+	return sprintf(buf, "%d\n", link->clkpm_enabled);
 }
 
-static ssize_t clk_ctl_store(struct device *dev,
-		struct device_attribute *attr,
-		const char *buf,
-		size_t n)
+static ssize_t clkpm_store(struct device *dev,
+			   struct device_attribute *attr,
+			   const char *buf, size_t len)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
-	bool state;
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
+	bool state_enable;
 
-	if (strtobool(buf, &state))
+	if (strtobool(buf, &state_enable) < 0)
 		return -EINVAL;
 
 	down_read(&pci_bus_sem);
 	mutex_lock(&aspm_lock);
-	pcie_set_clkpm_nocheck(pdev->link_state, state);
+
+	link->clkpm_disable = !state_enable;
+	pcie_set_clkpm(link, policy_to_clkpm_state(link));
+
 	mutex_unlock(&aspm_lock);
 	up_read(&pci_bus_sem);
 
-	return n;
+	return len;
 }
 
-static DEVICE_ATTR_RW(link_state);
-static DEVICE_ATTR_RW(clk_ctl);
+static DEVICE_ATTR_RW(clkpm);
+static DEVICE_ATTR_RW(l0s_aspm);
+static DEVICE_ATTR_RW(l1_aspm);
+static DEVICE_ATTR_RW(l1_1_aspm);
+static DEVICE_ATTR_RW(l1_2_aspm);
+static DEVICE_ATTR_RW(l1_1_pcipm);
+static DEVICE_ATTR_RW(l1_2_pcipm);
+
+static struct attribute *aspm_ctrl_attrs[] = {
+	&dev_attr_clkpm.attr,
+	&dev_attr_l0s_aspm.attr,
+	&dev_attr_l1_aspm.attr,
+	&dev_attr_l1_1_aspm.attr,
+	&dev_attr_l1_2_aspm.attr,
+	&dev_attr_l1_1_pcipm.attr,
+	&dev_attr_l1_2_pcipm.attr,
+	NULL
+};
 
-static char power_group[] = "power";
-void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev)
+static umode_t aspm_ctrl_attrs_are_visible(struct kobject *kobj,
+					   struct attribute *a, int n)
 {
-	struct pcie_link_state *link_state = pdev->link_state;
-
-	if (!link_state)
-		return;
-
-	if (link_state->aspm_support)
-		sysfs_add_file_to_group(&pdev->dev.kobj,
-			&dev_attr_link_state.attr, power_group);
-	if (link_state->clkpm_capable)
-		sysfs_add_file_to_group(&pdev->dev.kobj,
-			&dev_attr_clk_ctl.attr, power_group);
-}
+	struct device *dev = kobj_to_dev(kobj);
+	struct pci_dev *pdev = to_pci_dev(dev);
+	struct pcie_link_state *link = pcie_aspm_get_link(pdev);
+	static const u8 aspm_state_map[] = {
+		ASPM_STATE_L0S,
+		ASPM_STATE_L1,
+		ASPM_STATE_L1_1,
+		ASPM_STATE_L1_2,
+		ASPM_STATE_L1_1_PCIPM,
+		ASPM_STATE_L1_2_PCIPM,
+	};
 
-void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev)
-{
-	struct pcie_link_state *link_state = pdev->link_state;
+	if (aspm_disabled || !link)
+		return 0;
 
-	if (!link_state)
-		return;
+	if (n == 0)
+		return link->clkpm_capable ? a->mode : 0;
 
-	if (link_state->aspm_support)
-		sysfs_remove_file_from_group(&pdev->dev.kobj,
-			&dev_attr_link_state.attr, power_group);
-	if (link_state->clkpm_capable)
-		sysfs_remove_file_from_group(&pdev->dev.kobj,
-			&dev_attr_clk_ctl.attr, power_group);
+	return link->aspm_capable & aspm_state_map[n - 1] ? a->mode : 0;
 }
-#endif
+
+const struct attribute_group aspm_ctrl_attr_group = {
+	.name = "link",
+	.attrs = aspm_ctrl_attrs,
+	.is_visible = aspm_ctrl_attrs_are_visible,
+};
 
 static int __init pcie_aspm_disable(char *str)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/dpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/dpc.c
@@ -291,7 +291,7 @@
 	int status;
 	u16 ctl, cap;
 
-	if (pcie_aer_get_firmware_first(pdev))
+	if (pcie_aer_get_firmware_first(pdev) && !pcie_ports_dpc_native)
 		return -ENOTSUPP;
 
 	dpc = devm_kzalloc(device, sizeof(*dpc), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/portdrv.h
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/portdrv.h
@@ -25,6 +25,8 @@
 
 #define PCIE_PORT_DEVICE_MAXSERVICES   5
 
+extern bool pcie_ports_dpc_native;
+
 #ifdef CONFIG_PCIEAER
 int pcie_aer_init(void);
 #else
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/portdrv_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/portdrv_core.c
@@ -250,8 +250,13 @@
 		pcie_pme_interrupt_enable(dev, false);
 	}
 
+	/*
+	 * With dpc-native, allow Linux to use DPC even if it doesn't have
+	 * permission to use AER.
+	 */
 	if (pci_find_ext_capability(dev, PCI_EXT_CAP_ID_DPC) &&
-	    pci_aer_available() && services & PCIE_PORT_SERVICE_AER)
+	    pci_aer_available() &&
+	    (pcie_ports_dpc_native || (services & PCIE_PORT_SERVICE_AER)))
 		services |= PCIE_PORT_SERVICE_DPC;
 
 	if (pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM ||
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/portdrv_pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/portdrv_pci.c
@@ -29,12 +29,20 @@
  */
 bool pcie_ports_native;
 
+/*
+ * If the user specified "pcie_ports=dpc-native", use the Linux DPC PCIe
+ * service even if the platform hasn't given us permission.
+ */
+bool pcie_ports_dpc_native;
+
 static int __init pcie_port_setup(char *str)
 {
 	if (!strncmp(str, "compat", 6))
 		pcie_ports_disabled = true;
 	else if (!strncmp(str, "native", 6))
 		pcie_ports_native = true;
+	else if (!strncmp(str, "dpc-native", 10))
+		pcie_ports_dpc_native = true;
 
 	return 1;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/pcie/ptm.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/pcie/ptm.c
@@ -21,7 +21,7 @@
 		snprintf(clock_desc, sizeof(clock_desc), ">254ns");
 		break;
 	default:
-		snprintf(clock_desc, sizeof(clock_desc), "%udns",
+		snprintf(clock_desc, sizeof(clock_desc), "%uns",
 			 dev->ptm_granularity);
 		break;
 	}
@@ -39,10 +39,6 @@
 	if (!pci_is_pcie(dev))
 		return;
 
-	pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_PTM);
-	if (!pos)
-		return;
-
 	/*
 	 * Enable PTM only on interior devices (root ports, switch ports,
 	 * etc.) on the assumption that it causes no link traffic until an
@@ -52,6 +48,23 @@
 	     pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END))
 		return;
 
+	/*
+	 * Switch Downstream Ports are not permitted to have a PTM
+	 * capability; their PTM behavior is controlled by the Upstream
+	 * Port (PCIe r5.0, sec 7.9.16).
+	 */
+	ups = pci_upstream_bridge(dev);
+	if (pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM &&
+	    ups && ups->ptm_enabled) {
+		dev->ptm_granularity = ups->ptm_granularity;
+		dev->ptm_enabled = 1;
+		return;
+	}
+
+	pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_PTM);
+	if (!pos)
+		return;
+
 	pci_read_config_dword(dev, pos + PCI_PTM_CAP, &cap);
 	local_clock = (cap & PCI_PTM_GRANULARITY_MASK) >> 8;
 
@@ -61,7 +74,6 @@
 	 * the spec recommendation (PCIe r3.1, sec 7.32.3), select the
 	 * furthest upstream Time Source as the PTM Root.
 	 */
-	ups = pci_upstream_bridge(dev);
 	if (ups && ups->ptm_enabled) {
 		ctrl = PCI_PTM_CTRL_ENABLE;
 		if (ups->ptm_granularity == 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/probe.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/probe.c
@@ -572,6 +572,7 @@
 		bridge->release_fn(bridge);
 
 	pci_free_resource_list(&bridge->windows);
+	pci_free_resource_list(&bridge->dma_ranges);
 }
 
 static void pci_release_host_bridge_dev(struct device *dev)
@@ -866,9 +867,10 @@
 		goto free;
 
 	err = device_register(&bridge->dev);
-	if (err)
+	if (err) {
 		put_device(&bridge->dev);
-
+		goto free;
+	}
 	bus->bridge = get_device(&bridge->dev);
 	device_enable_async_suspend(bus->bridge);
 	pci_set_bus_of_node(bus);
@@ -1089,14 +1091,15 @@
  * @sec: updated with secondary bus number from EA
  * @sub: updated with subordinate bus number from EA
  *
- * If @dev is a bridge with EA capability, update @sec and @sub with
- * fixed bus numbers from the capability and return true.  Otherwise,
- * return false.
+ * If @dev is a bridge with EA capability that specifies valid secondary
+ * and subordinate bus numbers, return true with the bus numbers in @sec
+ * and @sub.  Otherwise return false.
  */
 static bool pci_ea_fixed_busnrs(struct pci_dev *dev, u8 *sec, u8 *sub)
 {
 	int ea, offset;
 	u32 dw;
+	u8 ea_sec, ea_sub;
 
 	if (dev->hdr_type != PCI_HEADER_TYPE_BRIDGE)
 		return false;
@@ -1108,8 +1111,13 @@
 
 	offset = ea + PCI_EA_FIRST_ENT;
 	pci_read_config_dword(dev, offset, &dw);
-	*sec =  dw & PCI_EA_SEC_BUS_MASK;
-	*sub = (dw & PCI_EA_SUB_BUS_MASK) >> PCI_EA_SUB_BUS_SHIFT;
+	ea_sec =  dw & PCI_EA_SEC_BUS_MASK;
+	ea_sub = (dw & PCI_EA_SUB_BUS_MASK) >> PCI_EA_SUB_BUS_SHIFT;
+	if (ea_sec  == 0 || ea_sub < ea_sec)
+		return false;
+
+	*sec = ea_sec;
+	*sub = ea_sub;
 	return true;
 }
 
@@ -1770,7 +1778,7 @@
 	/* Device class may be changed after fixup */
 	class = dev->class >> 8;
 
-	if (dev->non_compliant_bars) {
+	if (dev->non_compliant_bars && !dev->mmio_always_on) {
 		pci_read_config_word(dev, PCI_COMMAND, &cmd);
 		if (cmd & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
 			pci_info(dev, "device has non-compliant BARs; disabling IO/MEM decoding\n");
@@ -1882,13 +1890,33 @@
 	struct pci_dev *bridge = pci_upstream_bridge(dev);
 	int mps, mpss, p_mps, rc;
 
-	if (!pci_is_pcie(dev) || !bridge || !pci_is_pcie(bridge))
+	if (!pci_is_pcie(dev))
 		return;
 
 	/* MPS and MRRS fields are of type 'RsvdP' for VFs, short-circuit out */
 	if (dev->is_virtfn)
 		return;
 
+	/*
+	 * For Root Complex Integrated Endpoints, program the maximum
+	 * supported value unless limited by the PCIE_BUS_PEER2PEER case.
+	 */
+	if (pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END) {
+		if (pcie_bus_config == PCIE_BUS_PEER2PEER)
+			mps = 128;
+		else
+			mps = 128 << dev->pcie_mpss;
+		rc = pcie_set_mps(dev, mps);
+		if (rc) {
+			pci_warn(dev, "can't set Max Payload Size to %d; if necessary, use \"pci=pcie_bus_safe\" and report a bug\n",
+				 mps);
+		}
+		return;
+	}
+
+	if (!bridge || !pci_is_pcie(bridge))
+		return;
+
 	mps = pcie_get_mps(dev);
 	p_mps = pcie_get_mps(bridge);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/quirks.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/quirks.c
@@ -205,6 +205,21 @@
 DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
 				PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
 
+/* The BAR0 ~ BAR4 of Marvell 9125 device can't be accessed
+*  by IO resource file, and need to skip the files
+*/
+static void quirk_marvell_mask_bar(struct pci_dev *dev)
+{
+	int i;
+
+	for (i = 0; i < 5; i++)
+		if (dev->resource[i].start)
+			dev->resource[i].start =
+				dev->resource[i].end = 0;
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125,
+				quirk_marvell_mask_bar);
+
 /*
  * The Mellanox Tavor device gives false positive parity errors.  Mark this
  * device with a broken_parity_status to allow PCI scanning code to "skip"
@@ -1871,19 +1886,40 @@
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x260a, quirk_intel_pcie_pm);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x260b, quirk_intel_pcie_pm);
 
+static void quirk_d3hot_delay(struct pci_dev *dev, unsigned int delay)
+{
+	if (dev->d3_delay >= delay)
+		return;
+
+	dev->d3_delay = delay;
+	pci_info(dev, "extending delay after power-on from D3hot to %d msec\n",
+		 dev->d3_delay);
+}
+
 static void quirk_radeon_pm(struct pci_dev *dev)
 {
 	if (dev->subsystem_vendor == PCI_VENDOR_ID_APPLE &&
-	    dev->subsystem_device == 0x00e2) {
-		if (dev->d3_delay < 20) {
-			dev->d3_delay = 20;
-			pci_info(dev, "extending delay after power-on from D3 to %d msec\n",
-				 dev->d3_delay);
-		}
-	}
+	    dev->subsystem_device == 0x00e2)
+		quirk_d3hot_delay(dev, 20);
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6741, quirk_radeon_pm);
 
+/*
+ * Ryzen5/7 XHCI controllers fail upon resume from runtime suspend or s2idle.
+ * https://bugzilla.kernel.org/show_bug.cgi?id=205587
+ *
+ * The kernel attempts to transition these devices to D3cold, but that seems
+ * to be ineffective on the platforms in question; the PCI device appears to
+ * remain on in D3hot state. The D3hot-to-D0 transition then requires an
+ * extended delay in order to succeed.
+ */
+static void quirk_ryzen_xhci_d3hot(struct pci_dev *dev)
+{
+	quirk_d3hot_delay(dev, 20);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x15e0, quirk_ryzen_xhci_d3hot);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x15e1, quirk_ryzen_xhci_d3hot);
+
 #ifdef CONFIG_X86_IO_APIC
 static int dmi_disable_ioapicreroute(const struct dmi_system_id *d)
 {
@@ -1949,26 +1985,92 @@
 /*
  * IO-APIC1 on 6300ESB generates boot interrupts, see Intel order no
  * 300641-004US, section 5.7.3.
+ *
+ * Core IO on Xeon E5 1600/2600/4600, see Intel order no 326509-003.
+ * Core IO on Xeon E5 v2, see Intel order no 329188-003.
+ * Core IO on Xeon E7 v2, see Intel order no 329595-002.
+ * Core IO on Xeon E5 v3, see Intel order no 330784-003.
+ * Core IO on Xeon E7 v3, see Intel order no 332315-001US.
+ * Core IO on Xeon E5 v4, see Intel order no 333810-002US.
+ * Core IO on Xeon E7 v4, see Intel order no 332315-001US.
+ * Core IO on Xeon D-1500, see Intel order no 332051-001.
+ * Core IO on Xeon Scalable, see Intel order no 610950.
  */
-#define INTEL_6300_IOAPIC_ABAR		0x40
+#define INTEL_6300_IOAPIC_ABAR		0x40	/* Bus 0, Dev 29, Func 5 */
 #define INTEL_6300_DISABLE_BOOT_IRQ	(1<<14)
 
+#define INTEL_CIPINTRC_CFG_OFFSET	0x14C	/* Bus 0, Dev 5, Func 0 */
+#define INTEL_CIPINTRC_DIS_INTX_ICH	(1<<25)
+
 static void quirk_disable_intel_boot_interrupt(struct pci_dev *dev)
 {
 	u16 pci_config_word;
+	u32 pci_config_dword;
 
 	if (noioapicquirk)
 		return;
 
-	pci_read_config_word(dev, INTEL_6300_IOAPIC_ABAR, &pci_config_word);
-	pci_config_word |= INTEL_6300_DISABLE_BOOT_IRQ;
-	pci_write_config_word(dev, INTEL_6300_IOAPIC_ABAR, pci_config_word);
-
+	switch (dev->device) {
+	case PCI_DEVICE_ID_INTEL_ESB_10:
+		pci_read_config_word(dev, INTEL_6300_IOAPIC_ABAR,
+				     &pci_config_word);
+		pci_config_word |= INTEL_6300_DISABLE_BOOT_IRQ;
+		pci_write_config_word(dev, INTEL_6300_IOAPIC_ABAR,
+				      pci_config_word);
+		break;
+	case 0x3c28:	/* Xeon E5 1600/2600/4600	*/
+	case 0x0e28:	/* Xeon E5/E7 V2		*/
+	case 0x2f28:	/* Xeon E5/E7 V3,V4		*/
+	case 0x6f28:	/* Xeon D-1500			*/
+	case 0x2034:	/* Xeon Scalable Family		*/
+		pci_read_config_dword(dev, INTEL_CIPINTRC_CFG_OFFSET,
+				      &pci_config_dword);
+		pci_config_dword |= INTEL_CIPINTRC_DIS_INTX_ICH;
+		pci_write_config_dword(dev, INTEL_CIPINTRC_CFG_OFFSET,
+				       pci_config_dword);
+		break;
+	default:
+		return;
+	}
 	pci_info(dev, "disabled boot interrupts on device [%04x:%04x]\n",
 		 dev->vendor, dev->device);
 }
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ESB_10,	quirk_disable_intel_boot_interrupt);
-DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_ESB_10,	quirk_disable_intel_boot_interrupt);
+/*
+ * Device 29 Func 5 Device IDs of IO-APIC
+ * containing ABAR—APIC1 Alternate Base Address Register
+ */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_ESB_10,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_ESB_10,
+		quirk_disable_intel_boot_interrupt);
+
+/*
+ * Device 5 Func 0 Device IDs of Core IO modules/hubs
+ * containing Coherent Interface Protocol Interrupt Control
+ *
+ * Device IDs obtained from volume 2 datasheets of commented
+ * families above.
+ */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x3c28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x0e28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x2f28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x6f28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,	0x2034,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,	0x3c28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,	0x0e28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,	0x2f28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,	0x6f28,
+		quirk_disable_intel_boot_interrupt);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL,	0x2034,
+		quirk_disable_intel_boot_interrupt);
 
 /* Disable boot interrupts on HT-1000 */
 #define BC_HT1000_FEATURE_REG		0x64
@@ -2243,6 +2345,19 @@
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f4, quirk_disable_aspm_l0s);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1508, quirk_disable_aspm_l0s);
 
+static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
+{
+	pci_info(dev, "Disabling ASPM L0s/L1\n");
+	pci_disable_link_state(dev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1);
+}
+
+/*
+ * ASM1083/1085 PCIe-PCI bridge devices cause AER timeout errors on the
+ * upstream PCIe root port when ASPM is enabled. At least L0s mode is affected;
+ * disable both L0s and L1 for now to be safe.
+ */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
+
 /*
  * Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
  * Link bit cleared after starting the link retrain process to allow this
@@ -2381,32 +2496,6 @@
 			 PCI_DEVICE_ID_TIGON3_5719,
 			 quirk_brcm_5719_limit_mrrs);
 
-#ifdef CONFIG_PCIE_IPROC_PLATFORM
-static void quirk_paxc_bridge(struct pci_dev *pdev)
-{
-	/*
-	 * The PCI config space is shared with the PAXC root port and the first
-	 * Ethernet device.  So, we need to workaround this by telling the PCI
-	 * code that the bridge is not an Ethernet device.
-	 */
-	if (pdev->hdr_type == PCI_HEADER_TYPE_BRIDGE)
-		pdev->class = PCI_CLASS_BRIDGE_PCI << 8;
-
-	/*
-	 * MPSS is not being set properly (as it is currently 0).  This is
-	 * because that area of the PCI config space is hard coded to zero, and
-	 * is not modifiable by firmware.  Set this to 2 (e.g., 512 byte MPS)
-	 * so that the MPS can be set to the real max value.
-	 */
-	pdev->pcie_mpss = 2;
-}
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16cd, quirk_paxc_bridge);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16f0, quirk_paxc_bridge);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd750, quirk_paxc_bridge);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd802, quirk_paxc_bridge);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd804, quirk_paxc_bridge);
-#endif
-
 /*
  * Originally in EDAC sources for i82875P: Intel tells BIOS developers to
  * hide device 6 which configures the overflow device access containing the
@@ -3932,7 +4021,7 @@
 static void quirk_dma_func0_alias(struct pci_dev *dev)
 {
 	if (PCI_FUNC(dev->devfn) != 0)
-		pci_add_dma_alias(dev, PCI_DEVFN(PCI_SLOT(dev->devfn), 0));
+		pci_add_dma_alias(dev, PCI_DEVFN(PCI_SLOT(dev->devfn), 0), 1);
 }
 
 /*
@@ -3946,7 +4035,7 @@
 static void quirk_dma_func1_alias(struct pci_dev *dev)
 {
 	if (PCI_FUNC(dev->devfn) != 1)
-		pci_add_dma_alias(dev, PCI_DEVFN(PCI_SLOT(dev->devfn), 1));
+		pci_add_dma_alias(dev, PCI_DEVFN(PCI_SLOT(dev->devfn), 1), 1);
 }
 
 /*
@@ -3981,6 +4070,9 @@
 /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c46 */
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0,
 			 quirk_dma_func1_alias);
+/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135 */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9215,
+			 quirk_dma_func1_alias);
 /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c127 */
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9220,
 			 quirk_dma_func1_alias);
@@ -4031,7 +4123,7 @@
 
 	id = pci_match_id(fixed_dma_alias_tbl, dev);
 	if (id)
-		pci_add_dma_alias(dev, id->driver_data);
+		pci_add_dma_alias(dev, id->driver_data, 1);
 }
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ADAPTEC2, 0x0285, quirk_fixed_dma_alias);
@@ -4073,14 +4165,43 @@
  */
 static void quirk_mic_x200_dma_alias(struct pci_dev *pdev)
 {
-	pci_add_dma_alias(pdev, PCI_DEVFN(0x10, 0x0));
-	pci_add_dma_alias(pdev, PCI_DEVFN(0x11, 0x0));
-	pci_add_dma_alias(pdev, PCI_DEVFN(0x12, 0x3));
+	pci_add_dma_alias(pdev, PCI_DEVFN(0x10, 0x0), 1);
+	pci_add_dma_alias(pdev, PCI_DEVFN(0x11, 0x0), 1);
+	pci_add_dma_alias(pdev, PCI_DEVFN(0x12, 0x3), 1);
 }
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2260, quirk_mic_x200_dma_alias);
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2264, quirk_mic_x200_dma_alias);
 
 /*
+ * Intel Visual Compute Accelerator (VCA) is a family of PCIe add-in devices
+ * exposing computational units via Non Transparent Bridges (NTB, PEX 87xx).
+ *
+ * Similarly to MIC x200, we need to add DMA aliases to allow buffer access
+ * when IOMMU is enabled.  These aliases allow computational unit access to
+ * host memory.  These aliases mark the whole VCA device as one IOMMU
+ * group.
+ *
+ * All possible slot numbers (0x20) are used, since we are unable to tell
+ * what slot is used on other side.  This quirk is intended for both host
+ * and computational unit sides.  The VCA devices have up to five functions
+ * (four for DMA channels and one additional).
+ */
+static void quirk_pex_vca_alias(struct pci_dev *pdev)
+{
+	const unsigned int num_pci_slots = 0x20;
+	unsigned int slot;
+
+	for (slot = 0; slot < num_pci_slots; slot++)
+		pci_add_dma_alias(pdev, PCI_DEVFN(slot, 0x0), 5);
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2954, quirk_pex_vca_alias);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2955, quirk_pex_vca_alias);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2956, quirk_pex_vca_alias);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2958, quirk_pex_vca_alias);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2959, quirk_pex_vca_alias);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x295A, quirk_pex_vca_alias);
+
+/*
  * The IOMMU and interrupt controller on Broadcom Vulcan/Cavium ThunderX2 are
  * associated not at the root bus, but at a bridge below. This quirk avoids
  * generating invalid DMA aliases.
@@ -4263,6 +4384,47 @@
 			 quirk_chelsio_T5_disable_root_port_attributes);
 
 /*
+ * pci_acs_ctrl_enabled - compare desired ACS controls with those provided
+ *			  by a device
+ * @acs_ctrl_req: Bitmask of desired ACS controls
+ * @acs_ctrl_ena: Bitmask of ACS controls enabled or provided implicitly by
+ *		  the hardware design
+ *
+ * Return 1 if all ACS controls in the @acs_ctrl_req bitmask are included
+ * in @acs_ctrl_ena, i.e., the device provides all the access controls the
+ * caller desires.  Return 0 otherwise.
+ */
+static int pci_acs_ctrl_enabled(u16 acs_ctrl_req, u16 acs_ctrl_ena)
+{
+	if ((acs_ctrl_req & acs_ctrl_ena) == acs_ctrl_req)
+		return 1;
+	return 0;
+}
+
+/*
+ * Many Zhaoxin Root Ports and Switch Downstream Ports have no ACS capability.
+ * But the implementation could block peer-to-peer transactions between them
+ * and provide ACS-like functionality.
+ */
+static int  pci_quirk_zhaoxin_pcie_ports_acs(struct pci_dev *dev, u16 acs_flags)
+{
+	if (!pci_is_pcie(dev) ||
+	    ((pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT) &&
+	     (pci_pcie_type(dev) != PCI_EXP_TYPE_DOWNSTREAM)))
+		return -ENOTTY;
+
+	switch (dev->device) {
+	case 0x0710 ... 0x071e:
+	case 0x0721:
+	case 0x0723 ... 0x0732:
+		return pci_acs_ctrl_enabled(acs_flags,
+			PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
+	}
+
+	return false;
+}
+
+/*
  * AMD has indicated that the devices below do not support peer-to-peer
  * in any system where they are found in the southbridge with an AMD
  * IOMMU in the system.  Multifunction devices that do not support
@@ -4302,10 +4464,12 @@
 	if (ACPI_FAILURE(status))
 		return -ENODEV;
 
+	acpi_put_table(header);
+
 	/* Filter out flags not applicable to multifunction */
 	acs_flags &= (PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_EC | PCI_ACS_DT);
 
-	return acs_flags & ~(PCI_ACS_RR | PCI_ACS_CR) ? 0 : 1;
+	return pci_acs_ctrl_enabled(acs_flags, PCI_ACS_RR | PCI_ACS_CR);
 #else
 	return -ENODEV;
 #endif
@@ -4313,33 +4477,38 @@
 
 static bool pci_quirk_cavium_acs_match(struct pci_dev *dev)
 {
+	if (!pci_is_pcie(dev) || pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT)
+		return false;
+
+	switch (dev->device) {
 	/*
-	 * Effectively selects all downstream ports for whole ThunderX 1
-	 * family by 0xf800 mask (which represents 8 SoCs), while the lower
-	 * bits of device ID are used to indicate which subdevice is used
-	 * within the SoC.
-	 */
-	return (pci_is_pcie(dev) &&
-		(pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) &&
-		((dev->device & 0xf800) == 0xa000));
+	 * Effectively selects all downstream ports for whole ThunderX1
+	 * (which represents 8 SoCs).
+	 */
+	case 0xa000 ... 0xa7ff: /* ThunderX1 */
+	case 0xaf84:  /* ThunderX2 */
+	case 0xb884:  /* ThunderX3 */
+		return true;
+	default:
+		return false;
+	}
 }
 
 static int pci_quirk_cavium_acs(struct pci_dev *dev, u16 acs_flags)
 {
+	if (!pci_quirk_cavium_acs_match(dev))
+		return -ENOTTY;
+
 	/*
-	 * Cavium root ports don't advertise an ACS capability.  However,
+	 * Cavium Root Ports don't advertise an ACS capability.  However,
 	 * the RTL internally implements similar protection as if ACS had
-	 * Request Redirection, Completion Redirection, Source Validation,
+	 * Source Validation, Request Redirection, Completion Redirection,
 	 * and Upstream Forwarding features enabled.  Assert that the
 	 * hardware implements and enables equivalent ACS functionality for
 	 * these flags.
 	 */
-	acs_flags &= ~(PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_SV | PCI_ACS_UF);
-
-	if (!pci_quirk_cavium_acs_match(dev))
-		return -ENOTTY;
-
-	return acs_flags ? 0 : 1;
+	return pci_acs_ctrl_enabled(acs_flags,
+		PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
 }
 
 static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags)
@@ -4349,13 +4518,12 @@
 	 * transactions with others, allowing masking out these bits as if they
 	 * were unimplemented in the ACS capability.
 	 */
-	acs_flags &= ~(PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
-
-	return acs_flags ? 0 : 1;
+	return pci_acs_ctrl_enabled(acs_flags,
+		PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
 }
 
 /*
- * Many Intel PCH root ports do provide ACS-like features to disable peer
+ * Many Intel PCH Root Ports do provide ACS-like features to disable peer
  * transactions and validate bus numbers in requests, but do not provide an
  * actual PCIe ACS capability.  This is the list of device IDs known to fall
  * into that category as provided by Intel in Red Hat bugzilla 1037684.
@@ -4403,37 +4571,32 @@
 	return false;
 }
 
-#define INTEL_PCH_ACS_FLAGS (PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_SV)
-
 static int pci_quirk_intel_pch_acs(struct pci_dev *dev, u16 acs_flags)
 {
-	u16 flags = dev->dev_flags & PCI_DEV_FLAGS_ACS_ENABLED_QUIRK ?
-		    INTEL_PCH_ACS_FLAGS : 0;
-
 	if (!pci_quirk_intel_pch_acs_match(dev))
 		return -ENOTTY;
 
-	return acs_flags & ~flags ? 0 : 1;
+	if (dev->dev_flags & PCI_DEV_FLAGS_ACS_ENABLED_QUIRK)
+		return pci_acs_ctrl_enabled(acs_flags,
+			PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
+
+	return pci_acs_ctrl_enabled(acs_flags, 0);
 }
 
 /*
- * These QCOM root ports do provide ACS-like features to disable peer
+ * These QCOM Root Ports do provide ACS-like features to disable peer
  * transactions and validate bus numbers in requests, but do not provide an
  * actual PCIe ACS capability.  Hardware supports source validation but it
  * will report the issue as Completer Abort instead of ACS Violation.
- * Hardware doesn't support peer-to-peer and each root port is a root
- * complex with unique segment numbers.  It is not possible for one root
- * port to pass traffic to another root port.  All PCIe transactions are
- * terminated inside the root port.
+ * Hardware doesn't support peer-to-peer and each Root Port is a Root
+ * Complex with unique segment numbers.  It is not possible for one Root
+ * Port to pass traffic to another Root Port.  All PCIe transactions are
+ * terminated inside the Root Port.
  */
 static int pci_quirk_qcom_rp_acs(struct pci_dev *dev, u16 acs_flags)
 {
-	u16 flags = (PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_SV);
-	int ret = acs_flags & ~flags ? 0 : 1;
-
-	pci_info(dev, "Using QCOM ACS Quirk (%d)\n", ret);
-
-	return ret;
+	return pci_acs_ctrl_enabled(acs_flags,
+		PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
 }
 
 static int pci_quirk_al_acs(struct pci_dev *dev, u16 acs_flags)
@@ -4505,6 +4668,7 @@
 		return false;
 
 	switch (dev->device) {
+	case 0x06ac ... 0x06c3: /* Comet Lake */
 	case 0xa110 ... 0xa11f: case 0xa167 ... 0xa16a: /* Sunrise Point */
 	case 0xa290 ... 0xa29f: case 0xa2e7 ... 0xa2ee: /* Union Point */
 	case 0x9d10 ... 0x9d1b: /* 7th & 8th Gen Mobile */
@@ -4534,7 +4698,7 @@
 
 	pci_read_config_dword(dev, pos + INTEL_SPT_ACS_CTRL, &ctrl);
 
-	return acs_flags & ~ctrl ? 0 : 1;
+	return pci_acs_ctrl_enabled(acs_flags, ctrl);
 }
 
 static int pci_quirk_mf_endpoint_acs(struct pci_dev *dev, u16 acs_flags)
@@ -4548,10 +4712,23 @@
 	 * perform peer-to-peer with other functions, allowing us to mask out
 	 * these bits as if they were unimplemented in the ACS capability.
 	 */
-	acs_flags &= ~(PCI_ACS_SV | PCI_ACS_TB | PCI_ACS_RR |
-		       PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_DT);
+	return pci_acs_ctrl_enabled(acs_flags,
+		PCI_ACS_SV | PCI_ACS_TB | PCI_ACS_RR |
+		PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_DT);
+}
 
-	return acs_flags ? 0 : 1;
+static int pci_quirk_rciep_acs(struct pci_dev *dev, u16 acs_flags)
+{
+	/*
+	 * Intel RCiEP's are required to allow p2p only on translated
+	 * addresses.  Refer to Intel VT-d specification, r3.1, sec 3.16,
+	 * "Root-Complex Peer to Peer Considerations".
+	 */
+	if (pci_pcie_type(dev) != PCI_EXP_TYPE_RC_END)
+		return -ENOTTY;
+
+	return pci_acs_ctrl_enabled(acs_flags,
+		PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
 }
 
 static int pci_quirk_brcm_acs(struct pci_dev *dev, u16 acs_flags)
@@ -4562,9 +4739,8 @@
 	 * Allow each Root Port to be in a separate IOMMU group by masking
 	 * SV/RR/CR/UF bits.
 	 */
-	acs_flags &= ~(PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
-
-	return acs_flags ? 0 : 1;
+	return pci_acs_ctrl_enabled(acs_flags,
+		PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
 }
 
 static const struct pci_dev_acs_enabled {
@@ -4637,6 +4813,7 @@
 	/* I219 */
 	{ PCI_VENDOR_ID_INTEL, 0x15b7, pci_quirk_mf_endpoint_acs },
 	{ PCI_VENDOR_ID_INTEL, 0x15b8, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_rciep_acs },
 	/* QCOM QDF2xxx root ports */
 	{ PCI_VENDOR_ID_QCOM, 0x0400, pci_quirk_qcom_rp_acs },
 	{ PCI_VENDOR_ID_QCOM, 0x0401, pci_quirk_qcom_rp_acs },
@@ -4663,9 +4840,26 @@
 	{ PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs },
 	/* Amazon Annapurna Labs */
 	{ PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },
+	/* Zhaoxin multi-function devices */
+	{ PCI_VENDOR_ID_ZHAOXIN, 0x3038, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_ZHAOXIN, 0x3104, pci_quirk_mf_endpoint_acs },
+	{ PCI_VENDOR_ID_ZHAOXIN, 0x9083, pci_quirk_mf_endpoint_acs },
+	/* Zhaoxin Root/Downstream Ports */
+	{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
 	{ 0 }
 };
 
+/*
+ * pci_dev_specific_acs_enabled - check whether device provides ACS controls
+ * @dev:	PCI device
+ * @acs_flags:	Bitmask of desired ACS controls
+ *
+ * Returns:
+ *   -ENOTTY:	No quirk applies to this device; we can't tell whether the
+ *		device provides the desired controls
+ *   0:		Device does not provide all the desired controls
+ *   >0:	Device provides all the controls in @acs_flags
+ */
 int pci_dev_specific_acs_enabled(struct pci_dev *dev, u16 acs_flags)
 {
 	const struct pci_dev_acs_enabled *i;
@@ -4706,7 +4900,7 @@
 #define INTEL_BSPR_REG_BPPD  (1 << 9)
 
 /* Upstream Peer Decode Configuration Register */
-#define INTEL_UPDCR_REG 0x1114
+#define INTEL_UPDCR_REG 0x1014
 /* 5:0 Peer Decode Enable bits */
 #define INTEL_UPDCR_REG_MASK 0x3f
 
@@ -4985,13 +5179,46 @@
 }
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap);
 
-/* FLR may cause some 82579 devices to hang */
-static void quirk_intel_no_flr(struct pci_dev *dev)
+/*
+ * FLR may cause the following to devices to hang:
+ *
+ * AMD Starship/Matisse HD Audio Controller 0x1487
+ * AMD Starship USB 3.0 Host Controller 0x148c
+ * AMD Matisse USB 3.0 Host Controller 0x149c
+ * Intel 82579LM Gigabit Ethernet Controller 0x1502
+ * Intel 82579V Gigabit Ethernet Controller 0x1503
+ *
+ */
+static void quirk_no_flr(struct pci_dev *dev)
 {
 	dev->dev_flags |= PCI_DEV_FLAGS_NO_FLR_RESET;
 }
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_intel_no_flr);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_intel_no_flr);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1487, quirk_no_flr);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x148c, quirk_no_flr);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x149c, quirk_no_flr);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_no_flr);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_no_flr);
+
+static void quirk_intel_th_rtit_bar(struct pci_dev *dev)
+{
+	struct resource *r = &dev->resource[4];
+
+	/*
+	 * Hello, Denverton!
+	 * Denverton reports 2k of RTIT_BAR (resource 4), which can't be
+	 * right given the 16 threads. When Intel TH gets enabled, the
+	 * actual resource overlaps the XHCI MMIO space and causes it
+	 * to die.
+	 * We're not really using RTIT_BAR at all at the moment, so it's
+	 * a safe choice to disable this resource.
+	 */
+	if (r->end == r->start + 0x7ff) {
+		r->flags = 0;
+		r->start = 0;
+		r->end   = 0;
+	}
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x19e1, quirk_intel_th_rtit_bar);
 
 static void quirk_no_ext_tags(struct pci_dev *pdev)
 {
@@ -5015,18 +5242,28 @@
 
 #ifdef CONFIG_PCI_ATS
 /*
- * Some devices have a broken ATS implementation causing IOMMU stalls.
- * Don't use ATS for those devices.
+ * 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
+ * chance to load and configure the device.
  */
-static void quirk_no_ats(struct pci_dev *pdev)
+static void quirk_amd_harvest_no_ats(struct pci_dev *pdev)
 {
-	pci_info(pdev, "disabling ATS (broken on this device)\n");
+	if ((pdev->device == 0x7312 && pdev->revision != 0x00) ||
+	    (pdev->device == 0x7340 && pdev->revision != 0xc5))
+		return;
+
+	pci_info(pdev, "disabling ATS\n");
 	pdev->ats_cap = 0;
 }
 
 /* AMD Stoney platform GPU */
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_no_ats);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_amd_harvest_no_ats);
+/* AMD Iceland dGPU */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_amd_harvest_no_ats);
+/* AMD Navi10 dGPU */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7312, quirk_amd_harvest_no_ats);
+/* AMD Navi14 dGPU */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7340, quirk_amd_harvest_no_ats);
 #endif /* CONFIG_PCI_ATS */
 
 /* Freescale PCIe doesn't support MSI in RC mode */
@@ -5273,7 +5510,7 @@
 			pci_dbg(pdev,
 				"Aliasing Partition %d Proxy ID %02x.%d\n",
 				pp, PCI_SLOT(devfn), PCI_FUNC(devfn));
-			pci_add_dma_alias(pdev, devfn);
+			pci_add_dma_alias(pdev, devfn, 1);
 		}
 	}
 
@@ -5316,6 +5553,21 @@
 SWITCHTEC_QUIRK(0x8576);  /* PFXI 96XG3 */
 
 /*
+ * The PLX NTB uses devfn proxy IDs to move TLPs between NT endpoints.
+ * These IDs are used to forward responses to the originator on the other
+ * side of the NTB.  Alias all possible IDs to the NTB to permit access when
+ * the IOMMU is turned on.
+ */
+static void quirk_plx_ntb_dma_alias(struct pci_dev *pdev)
+{
+	pci_info(pdev, "Setting PLX NTB proxy ID aliases\n");
+	/* PLX NTB may use all 256 devfns */
+	pci_add_dma_alias(pdev, 0, 256);
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_PLX, 0x87b0, quirk_plx_ntb_dma_alias);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_PLX, 0x87b1, quirk_plx_ntb_dma_alias);
+
+/*
  * On Lenovo Thinkpad P50 SKUs with a Nvidia Quadro M1000M, the BIOS does
  * not always reset the secondary Nvidia GPU between reboots if the system
  * is configured to use Hybrid Graphics mode.  This results in the GPU
@@ -5372,3 +5624,34 @@
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_NVIDIA, 0x13b1,
 			      PCI_CLASS_DISPLAY_VGA, 8,
 			      quirk_reset_lenovo_thinkpad_p50_nvgpu);
+
+/*
+ * Device [1b21:2142]
+ * When in D0, PME# doesn't get asserted when plugging USB 3.0 device.
+ */
+static void pci_fixup_no_d0_pme(struct pci_dev *dev)
+{
+	pci_info(dev, "PME# does not work under D0, disabling it\n");
+	dev->pme_support &= ~(PCI_PM_CAP_PME_D0 >> PCI_PM_CAP_PME_SHIFT);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x2142, pci_fixup_no_d0_pme);
+
+static void apex_pci_fixup_class(struct pci_dev *pdev)
+{
+	pdev->class = (PCI_CLASS_SYSTEM_OTHER << 8) | pdev->class;
+}
+DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
+			       PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
+
+/*
+ * Device [12d8:0x400e] and [12d8:0x400f]
+ * These devices advertise PME# support in all power states but don't
+ * reliably assert it.
+ */
+static void pci_fixup_no_pme(struct pci_dev *dev)
+{
+	pci_info(dev, "PME# is unreliable, disabling it\n");
+	dev->pme_support = 0;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_PERICOM, 0x400e, pci_fixup_no_pme);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_PERICOM, 0x400f, pci_fixup_no_pme);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/rom.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/rom.c
@@ -195,20 +195,3 @@
 		pci_disable_rom(pdev);
 }
 EXPORT_SYMBOL(pci_unmap_rom);
-
-/**
- * pci_platform_rom - provides a pointer to any ROM image provided by the
- * platform
- * @pdev: pointer to pci device struct
- * @size: pointer to receive size of pci window over ROM
- */
-void __iomem *pci_platform_rom(struct pci_dev *pdev, size_t *size)
-{
-	if (pdev->rom && pdev->romlen) {
-		*size = pdev->romlen;
-		return phys_to_virt((phys_addr_t)pdev->rom);
-	}
-
-	return NULL;
-}
-EXPORT_SYMBOL(pci_platform_rom);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/search.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/search.c
@@ -41,9 +41,9 @@
 	 * DMA, iterate over that too.
 	 */
 	if (unlikely(pdev->dma_alias_mask)) {
-		u8 devfn;
+		unsigned int devfn;
 
-		for_each_set_bit(devfn, pdev->dma_alias_mask, U8_MAX) {
+		for_each_set_bit(devfn, pdev->dma_alias_mask, MAX_NR_DEVFNS) {
 			ret = fn(pdev, PCI_DEVID(pdev->bus->number, devfn),
 				 data);
 			if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/setup-bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/setup-bus.c
@@ -752,24 +752,32 @@
 }
 
 /*
- * Helper function for sizing routines: find first available bus resource
- * of a given type.  Note: we intentionally skip the bus resources which
- * have already been assigned (that is, have non-NULL parent resource).
+ * Helper function for sizing routines.  Assigned resources have non-NULL
+ * parent resource.
+ *
+ * Return first unassigned resource of the correct type.  If there is none,
+ * return first assigned resource of the correct type.  If none of the
+ * above, return NULL.
+ *
+ * Returning an assigned resource of the correct type allows the caller to
+ * distinguish between already assigned and no resource of the correct type.
  */
-static struct resource *find_free_bus_resource(struct pci_bus *bus,
-					       unsigned long type_mask,
-					       unsigned long type)
+static struct resource *find_bus_resource_of_type(struct pci_bus *bus,
+						  unsigned long type_mask,
+						  unsigned long type)
 {
+	struct resource *r, *r_assigned = NULL;
 	int i;
-	struct resource *r;
 
 	pci_bus_for_each_resource(bus, r, i) {
 		if (r == &ioport_resource || r == &iomem_resource)
 			continue;
 		if (r && (r->flags & type_mask) == type && !r->parent)
 			return r;
+		if (r && (r->flags & type_mask) == type && !r_assigned)
+			r_assigned = r;
 	}
-	return NULL;
+	return r_assigned;
 }
 
 static resource_size_t calculate_iosize(resource_size_t size,
@@ -866,8 +874,8 @@
 			 struct list_head *realloc_head)
 {
 	struct pci_dev *dev;
-	struct resource *b_res = find_free_bus_resource(bus, IORESOURCE_IO,
-							IORESOURCE_IO);
+	struct resource *b_res = find_bus_resource_of_type(bus, IORESOURCE_IO,
+							   IORESOURCE_IO);
 	resource_size_t size = 0, size0 = 0, size1 = 0;
 	resource_size_t children_add_size = 0;
 	resource_size_t min_align, align;
@@ -875,6 +883,10 @@
 	if (!b_res)
 		return;
 
+	/* If resource is already assigned, nothing more to do */
+	if (b_res->parent)
+		return;
+
 	min_align = window_alignment(bus, IORESOURCE_IO);
 	list_for_each_entry(dev, &bus->devices, bus_list) {
 		int i;
@@ -978,7 +990,7 @@
 	resource_size_t min_align, align, size, size0, size1;
 	resource_size_t aligns[18]; /* Alignments from 1MB to 128GB */
 	int order, max_order;
-	struct resource *b_res = find_free_bus_resource(bus,
+	struct resource *b_res = find_bus_resource_of_type(bus,
 					mask | IORESOURCE_PREFETCH, type);
 	resource_size_t children_add_size = 0;
 	resource_size_t children_add_align = 0;
@@ -987,6 +999,10 @@
 	if (!b_res)
 		return -ENOSPC;
 
+	/* If resource is already assigned, nothing more to do */
+	if (b_res->parent)
+		return 0;
+
 	memset(aligns, 0, sizeof(aligns));
 	max_order = 0;
 	size = 0;
@@ -1785,12 +1801,18 @@
 	/* Restore size and flags */
 	list_for_each_entry(fail_res, &fail_head, list) {
 		struct resource *res = fail_res->res;
+		int idx;
 
 		res->start = fail_res->start;
 		res->end = fail_res->end;
 		res->flags = fail_res->flags;
-		if (fail_res->dev->subordinate)
-			res->flags = 0;
+
+		if (pci_is_bridge(fail_res->dev)) {
+			idx = res - &fail_res->dev->resource[0];
+			if (idx >= PCI_BRIDGE_RESOURCES &&
+			    idx <= PCI_BRIDGE_RESOURCE_END)
+				res->flags = 0;
+		}
 	}
 	free_list(&fail_head);
 
@@ -2037,12 +2059,18 @@
 	/* Restore size and flags */
 	list_for_each_entry(fail_res, &fail_head, list) {
 		struct resource *res = fail_res->res;
+		int idx;
 
 		res->start = fail_res->start;
 		res->end = fail_res->end;
 		res->flags = fail_res->flags;
-		if (fail_res->dev->subordinate)
-			res->flags = 0;
+
+		if (pci_is_bridge(fail_res->dev)) {
+			idx = res - &fail_res->dev->resource[0];
+			if (idx >= PCI_BRIDGE_RESOURCES &&
+			    idx <= PCI_BRIDGE_RESOURCE_END)
+				res->flags = 0;
+		}
 	}
 	free_list(&fail_head);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/setup-res.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/setup-res.c
@@ -409,10 +409,16 @@
 int pci_resize_resource(struct pci_dev *dev, int resno, int size)
 {
 	struct resource *res = dev->resource + resno;
+	struct pci_host_bridge *host;
 	int old, ret;
 	u32 sizes;
 	u16 cmd;
 
+	/* Check if we must preserve the firmware's resource assignment */
+	host = pci_find_host_bridge(dev->bus);
+	if (host->preserve_config)
+		return -ENOTSUPP;
+
 	/* Make sure the resource isn't assigned before resizing it. */
 	if (!(res->flags & IORESOURCE_UNSET))
 		return -EBUSY;
@@ -439,10 +445,11 @@
 	res->end = res->start + pci_rebar_size_to_bytes(size) - 1;
 
 	/* Check if the new config works by trying to assign everything. */
-	ret = pci_reassign_bridge_resources(dev->bus->self, res->flags);
-	if (ret)
-		goto error_resize;
-
+	if (dev->bus->self) {
+		ret = pci_reassign_bridge_resources(dev->bus->self, res->flags);
+		if (ret)
+			goto error_resize;
+	}
 	return 0;
 
 error_resize:
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/slot.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/slot.c
@@ -304,16 +304,19 @@
 	slot_name = make_slot_name(name);
 	if (!slot_name) {
 		err = -ENOMEM;
+		kfree(slot);
 		goto err;
 	}
 
+	INIT_LIST_HEAD(&slot->list);
+	list_add(&slot->list, &parent->slots);
+
 	err = kobject_init_and_add(&slot->kobj, &pci_slot_ktype, NULL,
 				   "%s", slot_name);
-	if (err)
+	if (err) {
+		kobject_put(&slot->kobj);
 		goto err;
-
-	INIT_LIST_HEAD(&slot->list);
-	list_add(&slot->list, &parent->slots);
+	}
 
 	down_read(&pci_bus_sem);
 	list_for_each_entry(dev, &parent->devices, bus_list)
@@ -329,7 +332,6 @@
 	mutex_unlock(&pci_slot_mutex);
 	return slot;
 err:
-	kfree(slot);
 	slot = ERR_PTR(err);
 	goto out;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/switch/switchtec.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/switch/switchtec.c
@@ -175,7 +175,7 @@
 	kref_get(&stuser->kref);
 	stuser->read_len = sizeof(stuser->data);
 	stuser_set_state(stuser, MRPC_QUEUED);
-	init_completion(&stuser->comp);
+	reinit_completion(&stuser->comp);
 	list_add_tail(&stuser->list, &stdev->mrpc_queue);
 
 	mrpc_cmd_submit(stdev);
@@ -675,7 +675,7 @@
 		return -ENOMEM;
 
 	s->global = ioread32(&stdev->mmio_sw_event->global_summary);
-	s->part_bitmap = ioread32(&stdev->mmio_sw_event->part_event_bitmap);
+	s->part_bitmap = ioread64(&stdev->mmio_sw_event->part_event_bitmap);
 	s->local_part = ioread32(&stdev->mmio_part_cfg->part_event_summary);
 
 	for (i = 0; i < stdev->partition_count; i++) {
@@ -1276,7 +1276,7 @@
 	if (nvecs < 0)
 		return nvecs;
 
-	event_irq = ioread32(&stdev->mmio_part_cfg->vep_vector_number);
+	event_irq = ioread16(&stdev->mmio_part_cfg->vep_vector_number);
 	if (event_irq < 0 || event_irq >= nvecs)
 		return -EFAULT;
 
@@ -1349,7 +1349,7 @@
 	if (rc)
 		return rc;
 
-	rc = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
+	rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
 	if (rc)
 		return rc;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pci/syscall.c
+++ linux-gkeop-5.4-5.4.0/drivers/pci/syscall.c
@@ -20,7 +20,7 @@
 	u16 word;
 	u32 dword;
 	long err;
-	long cfg_ret;
+	int cfg_ret;
 
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
@@ -46,7 +46,7 @@
 	}
 
 	err = -EIO;
-	if (cfg_ret != PCIBIOS_SUCCESSFUL)
+	if (cfg_ret)
 		goto error;
 
 	switch (len) {
@@ -105,7 +105,7 @@
 		if (err)
 			break;
 		err = pci_user_write_config_byte(dev, off, byte);
-		if (err != PCIBIOS_SUCCESSFUL)
+		if (err)
 			err = -EIO;
 		break;
 
@@ -114,7 +114,7 @@
 		if (err)
 			break;
 		err = pci_user_write_config_word(dev, off, word);
-		if (err != PCIBIOS_SUCCESSFUL)
+		if (err)
 			err = -EIO;
 		break;
 
@@ -123,7 +123,7 @@
 		if (err)
 			break;
 		err = pci_user_write_config_dword(dev, off, dword);
-		if (err != PCIBIOS_SUCCESSFUL)
+		if (err)
 			err = -EIO;
 		break;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/arm-cci.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/arm-cci.c
@@ -1720,6 +1720,7 @@
 	.driver = {
 		   .name = DRIVER_NAME,
 		   .of_match_table = arm_cci_pmu_matches,
+		   .suppress_bind_attrs = true,
 		  },
 	.probe = cci_pmu_probe,
 	.remove = cci_pmu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/arm-ccn.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/arm-ccn.c
@@ -1545,6 +1545,7 @@
 	.driver = {
 		.name = "arm-ccn",
 		.of_match_table = arm_ccn_match,
+		.suppress_bind_attrs = true,
 	},
 	.probe = arm_ccn_probe,
 	.remove = arm_ccn_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/arm_dsu_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/arm_dsu_pmu.c
@@ -759,6 +759,7 @@
 	.driver = {
 		.name	= DRVNAME,
 		.of_match_table = of_match_ptr(dsu_pmu_of_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = dsu_pmu_device_probe,
 	.remove = dsu_pmu_device_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/arm_pmu_acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/arm_pmu_acpi.c
@@ -24,8 +24,6 @@
 	int gsi, trigger;
 
 	gicc = acpi_cpu_get_madt_gicc(cpu);
-	if (WARN_ON(!gicc))
-		return -EINVAL;
 
 	gsi = gicc->performance_interrupt;
 
@@ -64,11 +62,10 @@
 	int gsi;
 
 	gicc = acpi_cpu_get_madt_gicc(cpu);
-	if (!gicc)
-		return;
 
 	gsi = gicc->performance_interrupt;
-	acpi_unregister_gsi(gsi);
+	if (gsi)
+		acpi_unregister_gsi(gsi);
 }
 
 #if IS_ENABLED(CONFIG_ARM_SPE_PMU)
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/arm_smmuv3_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/arm_smmuv3_pmu.c
@@ -742,6 +742,7 @@
 	platform_set_drvdata(pdev, smmu_pmu);
 
 	smmu_pmu->pmu = (struct pmu) {
+		.module		= THIS_MODULE,
 		.task_ctx_nr    = perf_invalid_context,
 		.pmu_enable	= smmu_pmu_enable,
 		.pmu_disable	= smmu_pmu_disable,
@@ -772,7 +773,7 @@
 		smmu_pmu->reloc_base = smmu_pmu->reg_base;
 	}
 
-	irq = platform_get_irq(pdev, 0);
+	irq = platform_get_irq_optional(pdev, 0);
 	if (irq > 0)
 		smmu_pmu->irq = irq;
 
@@ -815,7 +816,7 @@
 	if (err) {
 		dev_err(dev, "Error %d registering hotplug, PMU @%pa\n",
 			err, &res_0->start);
-		goto out_cpuhp_err;
+		goto out_clear_affinity;
 	}
 
 	err = perf_pmu_register(&smmu_pmu->pmu, name, -1);
@@ -834,8 +835,8 @@
 
 out_unregister:
 	cpuhp_state_remove_instance_nocalls(cpuhp_state_num, &smmu_pmu->node);
-out_cpuhp_err:
-	put_cpu();
+out_clear_affinity:
+	irq_set_affinity_hint(smmu_pmu->irq, NULL);
 	return err;
 }
 
@@ -845,6 +846,7 @@
 
 	perf_pmu_unregister(&smmu_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(cpuhp_state_num, &smmu_pmu->node);
+	irq_set_affinity_hint(smmu_pmu->irq, NULL);
 
 	return 0;
 }
@@ -859,6 +861,7 @@
 static struct platform_driver smmu_pmu_driver = {
 	.driver = {
 		.name = "arm-smmu-v3-pmcg",
+		.suppress_bind_attrs = true,
 	},
 	.probe = smmu_pmu_probe,
 	.remove = smmu_pmu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/arm_spe_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/arm_spe_pmu.c
@@ -1228,6 +1228,7 @@
 	.driver	= {
 		.name		= DRVNAME,
 		.of_match_table	= of_match_ptr(arm_spe_pmu_of_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe	= arm_spe_pmu_device_probe,
 	.remove	= arm_spe_pmu_device_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/fsl_imx8_ddr_perf.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/fsl_imx8_ddr_perf.c
@@ -45,7 +45,8 @@
 static DEFINE_IDA(ddr_ida);
 
 /* DDR Perf hardware feature */
-#define DDR_CAP_AXI_ID_FILTER          0x1     /* support AXI ID filter */
+#define DDR_CAP_AXI_ID_FILTER			0x1     /* support AXI ID filter */
+#define DDR_CAP_AXI_ID_FILTER_ENHANCED		0x3     /* support enhanced AXI ID filter */
 
 struct fsl_ddr_devtype_data {
 	unsigned int quirks;    /* quirks needed for different DDR Perf core */
@@ -178,6 +179,36 @@
 	NULL,
 };
 
+static bool ddr_perf_is_filtered(struct perf_event *event)
+{
+	return event->attr.config == 0x41 || event->attr.config == 0x42;
+}
+
+static u32 ddr_perf_filter_val(struct perf_event *event)
+{
+	return event->attr.config1;
+}
+
+static bool ddr_perf_filters_compatible(struct perf_event *a,
+					struct perf_event *b)
+{
+	if (!ddr_perf_is_filtered(a))
+		return true;
+	if (!ddr_perf_is_filtered(b))
+		return true;
+	return ddr_perf_filter_val(a) == ddr_perf_filter_val(b);
+}
+
+static bool ddr_perf_is_enhanced_filtered(struct perf_event *event)
+{
+	unsigned int filt;
+	struct ddr_pmu *pmu = to_ddr_pmu(event->pmu);
+
+	filt = pmu->devtype_data->quirks & DDR_CAP_AXI_ID_FILTER_ENHANCED;
+	return (filt == DDR_CAP_AXI_ID_FILTER_ENHANCED) &&
+		ddr_perf_is_filtered(event);
+}
+
 static u32 ddr_perf_alloc_counter(struct ddr_pmu *pmu, int event)
 {
 	int i;
@@ -209,27 +240,17 @@
 
 static u32 ddr_perf_read_counter(struct ddr_pmu *pmu, int counter)
 {
-	return readl_relaxed(pmu->base + COUNTER_READ + counter * 4);
-}
+	struct perf_event *event = pmu->events[counter];
+	void __iomem *base = pmu->base;
 
-static bool ddr_perf_is_filtered(struct perf_event *event)
-{
-	return event->attr.config == 0x41 || event->attr.config == 0x42;
-}
-
-static u32 ddr_perf_filter_val(struct perf_event *event)
-{
-	return event->attr.config1;
-}
-
-static bool ddr_perf_filters_compatible(struct perf_event *a,
-					struct perf_event *b)
-{
-	if (!ddr_perf_is_filtered(a))
-		return true;
-	if (!ddr_perf_is_filtered(b))
-		return true;
-	return ddr_perf_filter_val(a) == ddr_perf_filter_val(b);
+	/*
+	 * return bytes instead of bursts from ddr transaction for
+	 * axid-read and axid-write event if PMU core supports enhanced
+	 * filter.
+	 */
+	base += ddr_perf_is_enhanced_filtered(event) ? COUNTER_DPCR1 :
+						       COUNTER_READ;
+	return readl_relaxed(base + counter * 4);
 }
 
 static int ddr_perf_event_init(struct perf_event *event)
@@ -306,9 +327,10 @@
 
 	if (enable) {
 		/*
-		 * must disable first, then enable again
-		 * otherwise, cycle counter will not work
-		 * if previous state is enabled.
+		 * cycle counter is special which should firstly write 0 then
+		 * write 1 into CLEAR bit to clear it. Other counters only
+		 * need write 0 into CLEAR bit and it turns out to be 1 by
+		 * hardware. Below enable flow is harmless for all counters.
 		 */
 		writel(0, pmu->base + reg);
 		val = CNTL_EN | CNTL_CLEAR;
@@ -316,7 +338,8 @@
 		writel(val, pmu->base + reg);
 	} else {
 		/* Disable counter */
-		writel(0, pmu->base + reg);
+		val = readl_relaxed(pmu->base + reg) & CNTL_EN_MASK;
+		writel(val, pmu->base + reg);
 	}
 }
 
@@ -428,6 +451,7 @@
 {
 	*pmu = (struct ddr_pmu) {
 		.pmu = (struct pmu) {
+			.module	      = THIS_MODULE,
 			.capabilities = PERF_PMU_CAP_NO_EXCLUDE,
 			.task_ctx_nr = perf_invalid_context,
 			.attr_groups = attr_groups,
@@ -551,13 +575,17 @@
 
 	if (ret < 0) {
 		dev_err(&pdev->dev, "cpuhp_setup_state_multi failed\n");
-		goto ddr_perf_err;
+		goto cpuhp_state_err;
 	}
 
 	pmu->cpuhp_state = ret;
 
 	/* Register the pmu instance for cpu hotplug */
-	cpuhp_state_add_instance_nocalls(pmu->cpuhp_state, &pmu->node);
+	ret = cpuhp_state_add_instance_nocalls(pmu->cpuhp_state, &pmu->node);
+	if (ret) {
+		dev_err(&pdev->dev, "Error %d registering hotplug\n", ret);
+		goto cpuhp_instance_err;
+	}
 
 	/* Request irq */
 	irq = of_irq_get(np, 0);
@@ -591,9 +619,10 @@
 	return 0;
 
 ddr_perf_err:
-	if (pmu->cpuhp_state)
-		cpuhp_state_remove_instance_nocalls(pmu->cpuhp_state, &pmu->node);
-
+	cpuhp_state_remove_instance_nocalls(pmu->cpuhp_state, &pmu->node);
+cpuhp_instance_err:
+	cpuhp_remove_multi_state(pmu->cpuhp_state);
+cpuhp_state_err:
 	ida_simple_remove(&ddr_ida, pmu->id);
 	dev_warn(&pdev->dev, "i.MX8 DDR Perf PMU failed (%d), disabled\n", ret);
 	return ret;
@@ -604,6 +633,7 @@
 	struct ddr_pmu *pmu = platform_get_drvdata(pdev);
 
 	cpuhp_state_remove_instance_nocalls(pmu->cpuhp_state, &pmu->node);
+	cpuhp_remove_multi_state(pmu->cpuhp_state);
 	irq_set_affinity_hint(pmu->irq, NULL);
 
 	perf_pmu_unregister(&pmu->pmu);
@@ -616,6 +646,7 @@
 	.driver         = {
 		.name   = "imx-ddr-pmu",
 		.of_match_table = imx_ddr_pmu_dt_ids,
+		.suppress_bind_attrs = true,
 	},
 	.probe          = ddr_perf_probe,
 	.remove         = ddr_perf_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
@@ -381,6 +381,7 @@
 			      ddrc_pmu->sccl_id, ddrc_pmu->index_id);
 	ddrc_pmu->pmu = (struct pmu) {
 		.name		= name,
+		.module		= THIS_MODULE,
 		.task_ctx_nr	= perf_invalid_context,
 		.event_init	= hisi_uncore_pmu_event_init,
 		.pmu_enable	= hisi_uncore_pmu_enable,
@@ -419,6 +420,7 @@
 	.driver = {
 		.name = "hisi_ddrc_pmu",
 		.acpi_match_table = ACPI_PTR(hisi_ddrc_pmu_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_ddrc_pmu_probe,
 	.remove = hisi_ddrc_pmu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
@@ -285,7 +285,7 @@
 	HISI_PMU_EVENT_ATTR(rx_wbip,		0x05),
 	HISI_PMU_EVENT_ATTR(rx_wtistash,	0x11),
 	HISI_PMU_EVENT_ATTR(rd_ddr_64b,		0x1c),
-	HISI_PMU_EVENT_ATTR(wr_dr_64b,		0x1d),
+	HISI_PMU_EVENT_ATTR(wr_ddr_64b,		0x1d),
 	HISI_PMU_EVENT_ATTR(rd_ddr_128b,	0x1e),
 	HISI_PMU_EVENT_ATTR(wr_ddr_128b,	0x1f),
 	HISI_PMU_EVENT_ATTR(spill_num,		0x20),
@@ -392,6 +392,7 @@
 			      hha_pmu->sccl_id, hha_pmu->index_id);
 	hha_pmu->pmu = (struct pmu) {
 		.name		= name,
+		.module		= THIS_MODULE,
 		.task_ctx_nr	= perf_invalid_context,
 		.event_init	= hisi_uncore_pmu_event_init,
 		.pmu_enable	= hisi_uncore_pmu_enable,
@@ -430,6 +431,7 @@
 	.driver = {
 		.name = "hisi_hha_pmu",
 		.acpi_match_table = ACPI_PTR(hisi_hha_pmu_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_hha_pmu_probe,
 	.remove = hisi_hha_pmu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
@@ -35,7 +35,7 @@
 /* L3C has 8-counters */
 #define L3C_NR_COUNTERS		0x8
 
-#define L3C_PERF_CTRL_EN	0x20000
+#define L3C_PERF_CTRL_EN	0x10000
 #define L3C_EVTYPE_NONE		0xff
 
 /*
@@ -382,6 +382,7 @@
 			      l3c_pmu->sccl_id, l3c_pmu->index_id);
 	l3c_pmu->pmu = (struct pmu) {
 		.name		= name,
+		.module		= THIS_MODULE,
 		.task_ctx_nr	= perf_invalid_context,
 		.event_init	= hisi_uncore_pmu_event_init,
 		.pmu_enable	= hisi_uncore_pmu_enable,
@@ -420,6 +421,7 @@
 	.driver = {
 		.name = "hisi_l3c_pmu",
 		.acpi_match_table = ACPI_PTR(hisi_l3c_pmu_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_l3c_pmu_probe,
 	.remove = hisi_l3c_pmu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/qcom_l2_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/qcom_l2_pmu.c
@@ -1028,6 +1028,7 @@
 	.driver = {
 		.name = "qcom-l2cache-pmu",
 		.acpi_match_table = ACPI_PTR(l2_cache_pmu_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = l2_cache_pmu_probe,
 	.remove = l2_cache_pmu_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/qcom_l3_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/qcom_l3_pmu.c
@@ -814,6 +814,7 @@
 	.driver = {
 		.name = "qcom-l3cache-pmu",
 		.acpi_match_table = ACPI_PTR(qcom_l3_cache_pmu_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = qcom_l3_cache_pmu_probe,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/thunderx2_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/thunderx2_pmu.c
@@ -627,14 +627,17 @@
 	list_for_each_entry(rentry, &list, node) {
 		if (resource_type(rentry->res) == IORESOURCE_MEM) {
 			res = *rentry->res;
+			rentry = NULL;
 			break;
 		}
 	}
+	acpi_dev_free_resource_list(&list);
 
-	if (!rentry->res)
+	if (rentry) {
+		dev_err(dev, "PMU type %d: Fail to find resource\n", type);
 		return NULL;
+	}
 
-	acpi_dev_free_resource_list(&list);
 	base = devm_ioremap_resource(dev, &res);
 	if (IS_ERR(base)) {
 		dev_err(dev, "PMU type %d: Fail to map resource\n", type);
@@ -816,6 +819,7 @@
 	.driver = {
 		.name		= "tx2-uncore-pmu",
 		.acpi_match_table = ACPI_PTR(tx2_uncore_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 	.probe = tx2_uncore_probe,
 	.remove = tx2_uncore_remove,
--- linux-gkeop-5.4-5.4.0.orig/drivers/perf/xgene_pmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/perf/xgene_pmu.c
@@ -1459,17 +1459,6 @@
 }
 
 #if defined(CONFIG_ACPI)
-static int acpi_pmu_dev_add_resource(struct acpi_resource *ares, void *data)
-{
-	struct resource *res = data;
-
-	if (ares->type == ACPI_RESOURCE_TYPE_FIXED_MEMORY32)
-		acpi_dev_resource_memory(ares, res);
-
-	/* Always tell the ACPI core to skip this resource */
-	return 1;
-}
-
 static struct
 xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
 				       struct acpi_device *adev, u32 type)
@@ -1481,6 +1470,7 @@
 	struct hw_pmu_info *inf;
 	void __iomem *dev_csr;
 	struct resource res;
+	struct resource_entry *rentry;
 	int enable_bit;
 	int rc;
 
@@ -1489,11 +1479,23 @@
 		return NULL;
 
 	INIT_LIST_HEAD(&resource_list);
-	rc = acpi_dev_get_resources(adev, &resource_list,
-				    acpi_pmu_dev_add_resource, &res);
+	rc = acpi_dev_get_resources(adev, &resource_list, NULL, NULL);
+	if (rc <= 0) {
+		dev_err(dev, "PMU type %d: No resources found\n", type);
+		return NULL;
+	}
+
+	list_for_each_entry(rentry, &resource_list, node) {
+		if (resource_type(rentry->res) == IORESOURCE_MEM) {
+			res = *rentry->res;
+			rentry = NULL;
+			break;
+		}
+	}
 	acpi_dev_free_resource_list(&resource_list);
-	if (rc < 0) {
-		dev_err(dev, "PMU type %d: No resource address found\n", type);
+
+	if (rentry) {
+		dev_err(dev, "PMU type %d: No memory resource found\n", type);
 		return NULL;
 	}
 
@@ -1981,6 +1983,7 @@
 		.name		= "xgene-pmu",
 		.of_match_table = xgene_pmu_of_match,
 		.acpi_match_table = ACPI_PTR(xgene_pmu_acpi_match),
+		.suppress_bind_attrs = true,
 	},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/allwinner/phy-sun4i-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -545,13 +545,14 @@
 	struct sun4i_usb_phy_data *data =
 		container_of(work, struct sun4i_usb_phy_data, detect.work);
 	struct phy *phy0 = data->phys[0].phy;
-	struct sun4i_usb_phy *phy = phy_get_drvdata(phy0);
+	struct sun4i_usb_phy *phy;
 	bool force_session_end, id_notify = false, vbus_notify = false;
 	int id_det, vbus_det;
 
-	if (phy0 == NULL)
+	if (!phy0)
 		return;
 
+	phy = phy_get_drvdata(phy0);
 	id_det = sun4i_usb_phy0_get_id_det(data);
 	vbus_det = sun4i_usb_phy0_get_vbus_det(data);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/broadcom/phy-bcm-sr-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/broadcom/phy-bcm-sr-usb.c
@@ -16,8 +16,6 @@
 };
 
 enum bcm_usb_phy_reg {
-	PLL_NDIV_FRAC,
-	PLL_NDIV_INT,
 	PLL_CTRL,
 	PHY_CTRL,
 	PHY_PLL_CTRL,
@@ -31,18 +29,11 @@
 };
 
 static const u8 bcm_usb_combo_phy_hs[] = {
-	[PLL_NDIV_FRAC]	= 0x04,
-	[PLL_NDIV_INT]	= 0x08,
 	[PLL_CTRL]	= 0x0c,
 	[PHY_CTRL]	= 0x10,
 };
 
-#define HSPLL_NDIV_INT_VAL	0x13
-#define HSPLL_NDIV_FRAC_VAL	0x1005
-
 static const u8 bcm_usb_hs_phy[] = {
-	[PLL_NDIV_FRAC]	= 0x0,
-	[PLL_NDIV_INT]	= 0x4,
 	[PLL_CTRL]	= 0x8,
 	[PHY_CTRL]	= 0xc,
 };
@@ -52,7 +43,6 @@
 	SSPLL_SUSPEND_EN,
 	PLL_SEQ_START,
 	PLL_LOCK,
-	PLL_PDIV,
 };
 
 static const u8 u3pll_ctrl[] = {
@@ -66,29 +56,17 @@
 #define HSPLL_PDIV_VAL		0x1
 
 static const u8 u2pll_ctrl[] = {
-	[PLL_PDIV]	= 1,
 	[PLL_RESETB]	= 5,
 	[PLL_LOCK]	= 6,
 };
 
 enum bcm_usb_phy_ctrl_bits {
 	CORERDY,
-	AFE_LDO_PWRDWNB,
-	AFE_PLL_PWRDWNB,
-	AFE_BG_PWRDWNB,
-	PHY_ISO,
 	PHY_RESETB,
 	PHY_PCTL,
 };
 
 #define PHY_PCTL_MASK	0xffff
-/*
- * 0x0806 of PCTL_VAL has below bits set
- * BIT-8 : refclk divider 1
- * BIT-3:2: device mode; mode is not effect
- * BIT-1: soft reset active low
- */
-#define HSPHY_PCTL_VAL	0x0806
 #define SSPHY_PCTL_VAL	0x0006
 
 static const u8 u3phy_ctrl[] = {
@@ -98,10 +76,6 @@
 
 static const u8 u2phy_ctrl[] = {
 	[CORERDY]		= 0,
-	[AFE_LDO_PWRDWNB]	= 1,
-	[AFE_PLL_PWRDWNB]	= 2,
-	[AFE_BG_PWRDWNB]	= 3,
-	[PHY_ISO]		= 4,
 	[PHY_RESETB]		= 5,
 	[PHY_PCTL]		= 6,
 };
@@ -186,38 +160,13 @@
 	int ret = 0;
 	void __iomem *regs = phy_cfg->regs;
 	const u8 *offset;
-	u32 rd_data;
 
 	offset = phy_cfg->offset;
 
-	writel(HSPLL_NDIV_INT_VAL, regs + offset[PLL_NDIV_INT]);
-	writel(HSPLL_NDIV_FRAC_VAL, regs + offset[PLL_NDIV_FRAC]);
-
-	rd_data = readl(regs + offset[PLL_CTRL]);
-	rd_data &= ~(HSPLL_PDIV_MASK << u2pll_ctrl[PLL_PDIV]);
-	rd_data |= (HSPLL_PDIV_VAL << u2pll_ctrl[PLL_PDIV]);
-	writel(rd_data, regs + offset[PLL_CTRL]);
-
-	/* Set Core Ready high */
-	bcm_usb_reg32_setbits(regs + offset[PHY_CTRL],
-			      BIT(u2phy_ctrl[CORERDY]));
-
-	/* Maximum timeout for Core Ready done */
-	msleep(30);
-
+	bcm_usb_reg32_clrbits(regs + offset[PLL_CTRL],
+			      BIT(u2pll_ctrl[PLL_RESETB]));
 	bcm_usb_reg32_setbits(regs + offset[PLL_CTRL],
 			      BIT(u2pll_ctrl[PLL_RESETB]));
-	bcm_usb_reg32_setbits(regs + offset[PHY_CTRL],
-			      BIT(u2phy_ctrl[PHY_RESETB]));
-
-
-	rd_data = readl(regs + offset[PHY_CTRL]);
-	rd_data &= ~(PHY_PCTL_MASK << u2phy_ctrl[PHY_PCTL]);
-	rd_data |= (HSPHY_PCTL_VAL << u2phy_ctrl[PHY_PCTL]);
-	writel(rd_data, regs + offset[PHY_CTRL]);
-
-	/* Maximum timeout for PLL reset done */
-	msleep(30);
 
 	ret = bcm_usb_pll_lock_check(regs + offset[PLL_CTRL],
 				     BIT(u2pll_ctrl[PLL_LOCK]));
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/lantiq/phy-lantiq-vrx200-pcie.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/lantiq/phy-lantiq-vrx200-pcie.c
@@ -323,7 +323,8 @@
 		goto err_disable_pdi_clk;
 
 	/* Check if we are in "startup ready" status */
-	if (ltq_vrx200_pcie_phy_wait_for_pll(phy) != 0)
+	ret = ltq_vrx200_pcie_phy_wait_for_pll(phy);
+	if (ret)
 		goto err_disable_phy_clk;
 
 	ltq_vrx200_pcie_phy_apply_workarounds(phy);
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/marvell/phy-armada38x-comphy.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/marvell/phy-armada38x-comphy.c
@@ -41,6 +41,7 @@
 
 struct a38x_comphy {
 	void __iomem *base;
+	void __iomem *conf;
 	struct device *dev;
 	struct a38x_comphy_lane lane[MAX_A38X_COMPHY];
 };
@@ -54,6 +55,21 @@
 	{ 0, 0, 3 },
 };
 
+static void a38x_set_conf(struct a38x_comphy_lane *lane, bool enable)
+{
+	struct a38x_comphy *priv = lane->priv;
+	u32 conf;
+
+	if (priv->conf) {
+		conf = readl_relaxed(priv->conf);
+		if (enable)
+			conf |= BIT(lane->port);
+		else
+			conf &= ~BIT(lane->port);
+		writel(conf, priv->conf);
+	}
+}
+
 static void a38x_comphy_set_reg(struct a38x_comphy_lane *lane,
 				unsigned int offset, u32 mask, u32 value)
 {
@@ -97,6 +113,7 @@
 {
 	struct a38x_comphy_lane *lane = phy_get_drvdata(phy);
 	unsigned int gen;
+	int ret;
 
 	if (mode != PHY_MODE_ETHERNET)
 		return -EINVAL;
@@ -115,13 +132,20 @@
 		return -EINVAL;
 	}
 
+	a38x_set_conf(lane, false);
+
 	a38x_comphy_set_speed(lane, gen, gen);
 
-	return a38x_comphy_poll(lane, COMPHY_STAT1,
-				COMPHY_STAT1_PLL_RDY_TX |
-				COMPHY_STAT1_PLL_RDY_RX,
-				COMPHY_STAT1_PLL_RDY_TX |
-				COMPHY_STAT1_PLL_RDY_RX);
+	ret = a38x_comphy_poll(lane, COMPHY_STAT1,
+			       COMPHY_STAT1_PLL_RDY_TX |
+			       COMPHY_STAT1_PLL_RDY_RX,
+			       COMPHY_STAT1_PLL_RDY_TX |
+			       COMPHY_STAT1_PLL_RDY_RX);
+
+	if (ret == 0)
+		a38x_set_conf(lane, true);
+
+	return ret;
 }
 
 static const struct phy_ops a38x_comphy_ops = {
@@ -174,14 +198,21 @@
 	if (!priv)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	base = devm_ioremap_resource(&pdev->dev, res);
+	base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(base))
 		return PTR_ERR(base);
 
 	priv->dev = &pdev->dev;
 	priv->base = base;
 
+	/* Optional */
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "conf");
+	if (res) {
+		priv->conf = devm_ioremap_resource(&pdev->dev, res);
+		if (IS_ERR(priv->conf))
+			return PTR_ERR(priv->conf);
+	}
+
 	for_each_available_child_of_node(pdev->dev.of_node, child) {
 		struct phy *phy;
 		int ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
@@ -26,7 +26,6 @@
 #define COMPHY_SIP_POWER_ON			0x82000001
 #define COMPHY_SIP_POWER_OFF			0x82000002
 #define COMPHY_SIP_PLL_LOCK			0x82000003
-#define COMPHY_FW_NOT_SUPPORTED			(-1)
 
 #define COMPHY_FW_MODE_SATA			0x1
 #define COMPHY_FW_MODE_SGMII			0x2
@@ -112,10 +111,19 @@
 				  unsigned long mode)
 {
 	struct arm_smccc_res res;
+	s32 ret;
 
 	arm_smccc_smc(function, lane, mode, 0, 0, 0, 0, 0, &res);
+	ret = res.a0;
 
-	return res.a0;
+	switch (ret) {
+	case SMCCC_RET_SUCCESS:
+		return 0;
+	case SMCCC_RET_NOT_SUPPORTED:
+		return -EOPNOTSUPP;
+	default:
+		return -EINVAL;
+	}
 }
 
 static int mvebu_a3700_comphy_get_fw_mode(int lane, int port,
@@ -220,7 +228,7 @@
 	}
 
 	ret = mvebu_a3700_comphy_smc(COMPHY_SIP_POWER_ON, lane->id, fw_param);
-	if (ret == COMPHY_FW_NOT_SUPPORTED)
+	if (ret == -EOPNOTSUPP)
 		dev_err(lane->dev,
 			"unsupported SMC call, try updating your firmware\n");
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/marvell/phy-mvebu-cp110-comphy.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/marvell/phy-mvebu-cp110-comphy.c
@@ -123,7 +123,6 @@
 
 #define COMPHY_SIP_POWER_ON	0x82000001
 #define COMPHY_SIP_POWER_OFF	0x82000002
-#define COMPHY_FW_NOT_SUPPORTED	(-1)
 
 /*
  * A lane is described by the following bitfields:
@@ -273,10 +272,19 @@
 			    unsigned long lane, unsigned long mode)
 {
 	struct arm_smccc_res res;
+	s32 ret;
 
 	arm_smccc_smc(function, phys, lane, mode, 0, 0, 0, 0, &res);
+	ret = res.a0;
 
-	return res.a0;
+	switch (ret) {
+	case SMCCC_RET_SUCCESS:
+		return 0;
+	case SMCCC_RET_NOT_SUPPORTED:
+		return -EOPNOTSUPP;
+	default:
+		return -EINVAL;
+	}
 }
 
 static int mvebu_comphy_get_mode(bool fw_mode, int lane, int port,
@@ -819,7 +827,7 @@
 	if (!ret)
 		return ret;
 
-	if (ret == COMPHY_FW_NOT_SUPPORTED)
+	if (ret == -EOPNOTSUPP)
 		dev_err(priv->dev,
 			"unsupported SMC call, try updating your firmware\n");
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/motorola/phy-cpcap-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/motorola/phy-cpcap-usb.c
@@ -115,7 +115,7 @@
 enum cpcap_gpio_mode {
 	CPCAP_DM_DP,
 	CPCAP_MDM_RX_TX,
-	CPCAP_UNKNOWN,
+	CPCAP_UNKNOWN_DISABLED,	/* Seems to disable USB lines */
 	CPCAP_OTG_DM_DP,
 };
 
@@ -207,6 +207,19 @@
 static int cpcap_usb_set_uart_mode(struct cpcap_phy_ddata *ddata);
 static int cpcap_usb_set_usb_mode(struct cpcap_phy_ddata *ddata);
 
+static void cpcap_usb_try_musb_mailbox(struct cpcap_phy_ddata *ddata,
+				       enum musb_vbus_id_status status)
+{
+	int error;
+
+	error = musb_mailbox(status);
+	if (!error)
+		return;
+
+	dev_dbg(ddata->dev, "%s: musb_mailbox failed: %i\n",
+		__func__, error);
+}
+
 static void cpcap_usb_detect(struct work_struct *work)
 {
 	struct cpcap_phy_ddata *ddata;
@@ -226,9 +239,7 @@
 		if (error)
 			goto out_err;
 
-		error = musb_mailbox(MUSB_ID_GROUND);
-		if (error)
-			goto out_err;
+		cpcap_usb_try_musb_mailbox(ddata, MUSB_ID_GROUND);
 
 		error = regmap_update_bits(ddata->reg, CPCAP_REG_USBC3,
 					   CPCAP_BIT_VBUSSTBY_EN |
@@ -257,9 +268,7 @@
 			error = cpcap_usb_set_usb_mode(ddata);
 			if (error)
 				goto out_err;
-			error = musb_mailbox(MUSB_ID_GROUND);
-			if (error)
-				goto out_err;
+			cpcap_usb_try_musb_mailbox(ddata, MUSB_ID_GROUND);
 
 			return;
 		}
@@ -269,22 +278,18 @@
 		error = cpcap_usb_set_usb_mode(ddata);
 		if (error)
 			goto out_err;
-		error = musb_mailbox(MUSB_VBUS_VALID);
-		if (error)
-			goto out_err;
+		cpcap_usb_try_musb_mailbox(ddata, MUSB_VBUS_VALID);
 
 		return;
 	}
 
+	cpcap_usb_try_musb_mailbox(ddata, MUSB_VBUS_OFF);
+
 	/* Default to debug UART mode */
 	error = cpcap_usb_set_uart_mode(ddata);
 	if (error)
 		goto out_err;
 
-	error = musb_mailbox(MUSB_VBUS_OFF);
-	if (error)
-		goto out_err;
-
 	dev_dbg(ddata->dev, "set UART mode\n");
 
 	return;
@@ -376,7 +381,8 @@
 {
 	int error;
 
-	error = cpcap_usb_gpio_set_mode(ddata, CPCAP_DM_DP);
+	/* Disable lines to prevent glitches from waking up mdm6600 */
+	error = cpcap_usb_gpio_set_mode(ddata, CPCAP_UNKNOWN_DISABLED);
 	if (error)
 		goto out_err;
 
@@ -403,6 +409,11 @@
 	if (error)
 		goto out_err;
 
+	/* Enable UART mode */
+	error = cpcap_usb_gpio_set_mode(ddata, CPCAP_DM_DP);
+	if (error)
+		goto out_err;
+
 	return 0;
 
 out_err:
@@ -415,7 +426,8 @@
 {
 	int error;
 
-	error = cpcap_usb_gpio_set_mode(ddata, CPCAP_OTG_DM_DP);
+	/* Disable lines to prevent glitches from waking up mdm6600 */
+	error = cpcap_usb_gpio_set_mode(ddata, CPCAP_UNKNOWN_DISABLED);
 	if (error)
 		return error;
 
@@ -455,6 +467,11 @@
 	if (error)
 		goto out_err;
 
+	/* Enable USB mode */
+	error = cpcap_usb_gpio_set_mode(ddata, CPCAP_OTG_DM_DP);
+	if (error)
+		goto out_err;
+
 	return 0;
 
 out_err:
@@ -608,35 +625,42 @@
 	generic_phy = devm_phy_create(ddata->dev, NULL, &ops);
 	if (IS_ERR(generic_phy)) {
 		error = PTR_ERR(generic_phy);
-		return PTR_ERR(generic_phy);
+		goto out_reg_disable;
 	}
 
 	phy_set_drvdata(generic_phy, ddata);
 
 	phy_provider = devm_of_phy_provider_register(ddata->dev,
 						     of_phy_simple_xlate);
-	if (IS_ERR(phy_provider))
-		return PTR_ERR(phy_provider);
+	if (IS_ERR(phy_provider)) {
+		error = PTR_ERR(phy_provider);
+		goto out_reg_disable;
+	}
 
 	error = cpcap_usb_init_optional_pins(ddata);
 	if (error)
-		return error;
+		goto out_reg_disable;
 
 	cpcap_usb_init_optional_gpios(ddata);
 
 	error = cpcap_usb_init_iio(ddata);
 	if (error)
-		return error;
+		goto out_reg_disable;
 
 	error = cpcap_usb_init_interrupts(pdev, ddata);
 	if (error)
-		return error;
+		goto out_reg_disable;
 
 	usb_add_phy_dev(&ddata->phy);
 	atomic_set(&ddata->active, 1);
 	schedule_delayed_work(&ddata->detect_work, msecs_to_jiffies(1));
 
 	return 0;
+
+out_reg_disable:
+	regulator_disable(ddata->vusb);
+
+	return error;
 }
 
 static int cpcap_usb_phy_remove(struct platform_device *pdev)
@@ -649,9 +673,7 @@
 	if (error)
 		dev_err(ddata->dev, "could not set UART mode\n");
 
-	error = musb_mailbox(MUSB_VBUS_OFF);
-	if (error)
-		dev_err(ddata->dev, "could not set mailbox\n");
+	cpcap_usb_try_musb_mailbox(ddata, MUSB_VBUS_OFF);
 
 	usb_remove_phy(&ddata->phy);
 	cancel_delayed_work_sync(&ddata->detect_work);
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/motorola/phy-mapphone-mdm6600.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/motorola/phy-mapphone-mdm6600.c
@@ -20,6 +20,7 @@
 
 #define PHY_MDM6600_PHY_DELAY_MS	4000	/* PHY enable 2.2s to 3.5s */
 #define PHY_MDM6600_ENABLED_DELAY_MS	8000	/* 8s more total for MDM6600 */
+#define PHY_MDM6600_WAKE_KICK_MS	600	/* time on after GPIO toggle */
 #define MDM6600_MODEM_IDLE_DELAY_MS	1000	/* modem after USB suspend */
 #define MDM6600_MODEM_WAKE_DELAY_MS	200	/* modem response after idle */
 
@@ -200,7 +201,7 @@
 	struct phy_mdm6600 *ddata;
 	struct device *dev;
 	DECLARE_BITMAP(values, PHY_MDM6600_NR_STATUS_LINES);
-	int error, i, val = 0;
+	int error;
 
 	ddata = container_of(work, struct phy_mdm6600, status_work.work);
 	dev = ddata->dev;
@@ -212,16 +213,11 @@
 	if (error)
 		return;
 
-	for (i = 0; i < PHY_MDM6600_NR_STATUS_LINES; i++) {
-		val |= test_bit(i, values) << i;
-		dev_dbg(ddata->dev, "XXX %s: i: %i values[i]: %i val: %i\n",
-			__func__, i, test_bit(i, values), val);
-	}
-	ddata->status = values[0];
+	ddata->status = values[0] & ((1 << PHY_MDM6600_NR_STATUS_LINES) - 1);
 
 	dev_info(dev, "modem status: %i %s\n",
 		 ddata->status,
-		 phy_mdm6600_status_name[ddata->status & 7]);
+		 phy_mdm6600_status_name[ddata->status]);
 	complete(&ddata->ack);
 }
 
@@ -248,10 +244,24 @@
 {
 	struct phy_mdm6600 *ddata = data;
 	struct gpio_desc *mode_gpio1;
+	int error, wakeup;
 
 	mode_gpio1 = ddata->mode_gpios->desc[PHY_MDM6600_MODE1];
-	dev_dbg(ddata->dev, "OOB wake on mode_gpio1: %i\n",
-		gpiod_get_value(mode_gpio1));
+	wakeup = gpiod_get_value(mode_gpio1);
+	if (!wakeup)
+		return IRQ_NONE;
+
+	dev_dbg(ddata->dev, "OOB wake on mode_gpio1: %i\n", wakeup);
+	error = pm_runtime_get_sync(ddata->dev);
+	if (error < 0) {
+		pm_runtime_put_noidle(ddata->dev);
+
+		return IRQ_NONE;
+	}
+
+	/* Just wake-up and kick the autosuspend timer */
+	pm_runtime_mark_last_busy(ddata->dev);
+	pm_runtime_put_autosuspend(ddata->dev);
 
 	return IRQ_HANDLED;
 }
@@ -501,8 +511,14 @@
 
 	ddata = container_of(work, struct phy_mdm6600, modem_wake_work.work);
 	phy_mdm6600_wake_modem(ddata);
+
+	/*
+	 * The modem does not always stay awake 1.2 seconds after toggling
+	 * the wake GPIO, and sometimes it idles after about some 600 ms
+	 * making writes time out.
+	 */
 	schedule_delayed_work(&ddata->modem_wake_work,
-			      msecs_to_jiffies(MDM6600_MODEM_IDLE_DELAY_MS));
+			      msecs_to_jiffies(PHY_MDM6600_WAKE_KICK_MS));
 }
 
 static int __maybe_unused phy_mdm6600_runtime_suspend(struct device *dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/qualcomm/phy-qcom-apq8064-sata.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/qualcomm/phy-qcom-apq8064-sata.c
@@ -80,7 +80,7 @@
 		if (readl_relaxed(addr) & mask)
 			return 0;
 
-		 usleep_range(DELAY_INTERVAL_US, DELAY_INTERVAL_US + 50);
+		usleep_range(DELAY_INTERVAL_US, DELAY_INTERVAL_US + 50);
 	} while (!time_after(jiffies, timeout));
 
 	return (readl_relaxed(addr) & mask) ? 0 : -ETIMEDOUT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/qualcomm/phy-qcom-qmp.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/qualcomm/phy-qcom-qmp.c
@@ -66,7 +66,7 @@
 /* QPHY_V3_PCS_MISC_CLAMP_ENABLE register bits */
 #define CLAMP_EN				BIT(0) /* enables i/o clamp_n */
 
-#define PHY_INIT_COMPLETE_TIMEOUT		1000
+#define PHY_INIT_COMPLETE_TIMEOUT		10000
 #define POWER_DOWN_DELAY_US_MIN			10
 #define POWER_DOWN_DELAY_US_MAX			11
 
@@ -402,8 +402,8 @@
 	QMP_PHY_INIT_CFG(QSERDES_COM_BG_TRIM, 0xf),
 	QMP_PHY_INIT_CFG(QSERDES_COM_LOCK_CMP_EN, 0x1),
 	QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_MAP, 0x0),
-	QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_TIMER1, 0x1f),
-	QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_TIMER2, 0x3f),
+	QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_TIMER1, 0xff),
+	QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_TIMER2, 0x1f),
 	QMP_PHY_INIT_CFG(QSERDES_COM_CMN_CONFIG, 0x6),
 	QMP_PHY_INIT_CFG(QSERDES_COM_PLL_IVCO, 0xf),
 	QMP_PHY_INIT_CFG(QSERDES_COM_HSCLK_SEL, 0x0),
@@ -429,7 +429,6 @@
 	QMP_PHY_INIT_CFG(QSERDES_COM_INTEGLOOP_GAIN1_MODE0, 0x0),
 	QMP_PHY_INIT_CFG(QSERDES_COM_INTEGLOOP_GAIN0_MODE0, 0x80),
 	QMP_PHY_INIT_CFG(QSERDES_COM_BIAS_EN_CTRL_BY_PSM, 0x1),
-	QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_CTRL, 0xa),
 	QMP_PHY_INIT_CFG(QSERDES_COM_SSC_EN_CENTER, 0x1),
 	QMP_PHY_INIT_CFG(QSERDES_COM_SSC_PER1, 0x31),
 	QMP_PHY_INIT_CFG(QSERDES_COM_SSC_PER2, 0x1),
@@ -438,7 +437,6 @@
 	QMP_PHY_INIT_CFG(QSERDES_COM_SSC_STEP_SIZE1, 0x2f),
 	QMP_PHY_INIT_CFG(QSERDES_COM_SSC_STEP_SIZE2, 0x19),
 	QMP_PHY_INIT_CFG(QSERDES_COM_CLK_EP_DIV, 0x19),
-	QMP_PHY_INIT_CFG(QSERDES_RX_SIGDET_CNTRL, 0x7),
 };
 
 static const struct qmp_phy_init_tbl ipq8074_pcie_tx_tbl[] = {
@@ -446,6 +444,8 @@
 	QMP_PHY_INIT_CFG(QSERDES_TX_LANE_MODE, 0x6),
 	QMP_PHY_INIT_CFG(QSERDES_TX_RES_CODE_LANE_OFFSET, 0x2),
 	QMP_PHY_INIT_CFG(QSERDES_TX_RCV_DETECT_LVL_2, 0x12),
+	QMP_PHY_INIT_CFG(QSERDES_TX_EMP_POST1_LVL, 0x36),
+	QMP_PHY_INIT_CFG(QSERDES_TX_SLEW_CNTL, 0x0a),
 };
 
 static const struct qmp_phy_init_tbl ipq8074_pcie_rx_tbl[] = {
@@ -456,7 +456,6 @@
 	QMP_PHY_INIT_CFG(QSERDES_RX_RX_EQU_ADAPTOR_CNTRL4, 0xdb),
 	QMP_PHY_INIT_CFG(QSERDES_RX_UCDR_SO_SATURATION_AND_ENABLE, 0x4b),
 	QMP_PHY_INIT_CFG(QSERDES_RX_UCDR_SO_GAIN, 0x4),
-	QMP_PHY_INIT_CFG(QSERDES_RX_UCDR_SO_GAIN_HALF, 0x4),
 };
 
 static const struct qmp_phy_init_tbl ipq8074_pcie_pcs_tbl[] = {
@@ -1107,6 +1106,9 @@
 	.pwrdn_ctrl		= SW_PWRDN,
 };
 
+static const char * const ipq8074_pciephy_clk_l[] = {
+	"aux", "cfg_ahb",
+};
 /* list of resets */
 static const char * const ipq8074_pciephy_reset_l[] = {
 	"phy", "common",
@@ -1124,8 +1126,8 @@
 	.rx_tbl_num		= ARRAY_SIZE(ipq8074_pcie_rx_tbl),
 	.pcs_tbl		= ipq8074_pcie_pcs_tbl,
 	.pcs_tbl_num		= ARRAY_SIZE(ipq8074_pcie_pcs_tbl),
-	.clk_list		= NULL,
-	.num_clks		= 0,
+	.clk_list		= ipq8074_pciephy_clk_l,
+	.num_clks		= ARRAY_SIZE(ipq8074_pciephy_clk_l),
 	.reset_list		= ipq8074_pciephy_reset_l,
 	.num_resets		= ARRAY_SIZE(ipq8074_pciephy_reset_l),
 	.vreg_list		= NULL,
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/qualcomm/phy-qcom-qmp.h
+++ linux-gkeop-5.4-5.4.0/drivers/phy/qualcomm/phy-qcom-qmp.h
@@ -77,6 +77,8 @@
 #define QSERDES_COM_CORECLK_DIV_MODE1			0x1bc
 
 /* Only for QMP V2 PHY - TX registers */
+#define QSERDES_TX_EMP_POST1_LVL			0x018
+#define QSERDES_TX_SLEW_CNTL				0x040
 #define QSERDES_TX_RES_CODE_LANE_OFFSET			0x054
 #define QSERDES_TX_DEBUG_BUS_SEL			0x064
 #define QSERDES_TX_HIGHZ_TRANSCEIVEREN_BIAS_DRVR_EN	0x068
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/qualcomm/phy-qcom-usb-hs.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/qualcomm/phy-qcom-usb-hs.c
@@ -158,8 +158,8 @@
 		/* setup initial state */
 		qcom_usb_hs_phy_vbus_notifier(&uphy->vbus_notify, state,
 					      uphy->vbus_edev);
-		ret = devm_extcon_register_notifier(&ulpi->dev, uphy->vbus_edev,
-				EXTCON_USB, &uphy->vbus_notify);
+		ret = extcon_register_notifier(uphy->vbus_edev, EXTCON_USB,
+					       &uphy->vbus_notify);
 		if (ret)
 			goto err_ulpi;
 	}
@@ -180,6 +180,9 @@
 {
 	struct qcom_usb_hs_phy *uphy = phy_get_drvdata(phy);
 
+	if (uphy->vbus_edev)
+		extcon_unregister_notifier(uphy->vbus_edev, EXTCON_USB,
+					   &uphy->vbus_notify);
 	regulator_disable(uphy->v3p3);
 	regulator_disable(uphy->v1p8);
 	clk_disable_unprepare(uphy->sleep_clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/renesas/phy-rcar-gen2.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/renesas/phy-rcar-gen2.c
@@ -71,6 +71,7 @@
 struct rcar_gen2_phy_data {
 	const struct phy_ops *gen2_phy_ops;
 	const u32 (*select_value)[PHYS_PER_CHANNEL];
+	const u32 num_channels;
 };
 
 static int rcar_gen2_phy_init(struct phy *p)
@@ -271,11 +272,13 @@
 static const struct rcar_gen2_phy_data rcar_gen2_usb_phy_data = {
 	.gen2_phy_ops = &rcar_gen2_phy_ops,
 	.select_value = pci_select_value,
+	.num_channels = ARRAY_SIZE(pci_select_value),
 };
 
 static const struct rcar_gen2_phy_data rz_g1c_usb_phy_data = {
 	.gen2_phy_ops = &rz_g1c_phy_ops,
 	.select_value = usb20_select_value,
+	.num_channels = ARRAY_SIZE(usb20_select_value),
 };
 
 static const struct of_device_id rcar_gen2_phy_match_table[] = {
@@ -389,7 +392,7 @@
 		channel->selected_phy = -1;
 
 		error = of_property_read_u32(np, "reg", &channel_num);
-		if (error || channel_num > 2) {
+		if (error || channel_num >= data->num_channels) {
 			dev_err(dev, "Invalid \"reg\" property\n");
 			of_node_put(np);
 			return error;
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/renesas/phy-rcar-gen3-usb2.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/renesas/phy-rcar-gen3-usb2.c
@@ -21,6 +21,7 @@
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 #include <linux/regulator/consumer.h>
+#include <linux/string.h>
 #include <linux/usb/of.h>
 #include <linux/workqueue.h>
 
@@ -110,6 +111,7 @@
 	struct work_struct work;
 	struct mutex lock;	/* protects rphys[...].powered */
 	enum usb_dr_mode dr_mode;
+	int irq;
 	bool extcon_host;
 	bool is_otg_channel;
 	bool uses_otg_pins;
@@ -320,9 +322,9 @@
 	if (!ch->is_otg_channel || !rcar_gen3_is_any_rphy_initialized(ch))
 		return -EIO;
 
-	if (!strncmp(buf, "host", strlen("host")))
+	if (sysfs_streq(buf, "host"))
 		new_mode = PHY_MODE_USB_HOST;
-	else if (!strncmp(buf, "peripheral", strlen("peripheral")))
+	else if (sysfs_streq(buf, "peripheral"))
 		new_mode = PHY_MODE_USB_DEVICE;
 	else
 		return -EINVAL;
@@ -388,12 +390,38 @@
 	rcar_gen3_device_recognition(ch);
 }
 
+static irqreturn_t rcar_gen3_phy_usb2_irq(int irq, void *_ch)
+{
+	struct rcar_gen3_chan *ch = _ch;
+	void __iomem *usb2_base = ch->base;
+	u32 status = readl(usb2_base + USB2_OBINTSTA);
+	irqreturn_t ret = IRQ_NONE;
+
+	if (status & USB2_OBINT_BITS) {
+		dev_vdbg(ch->dev, "%s: %08x\n", __func__, status);
+		writel(USB2_OBINT_BITS, usb2_base + USB2_OBINTSTA);
+		rcar_gen3_device_recognition(ch);
+		ret = IRQ_HANDLED;
+	}
+
+	return ret;
+}
+
 static int rcar_gen3_phy_usb2_init(struct phy *p)
 {
 	struct rcar_gen3_phy *rphy = phy_get_drvdata(p);
 	struct rcar_gen3_chan *channel = rphy->ch;
 	void __iomem *usb2_base = channel->base;
 	u32 val;
+	int ret;
+
+	if (!rcar_gen3_is_any_rphy_initialized(channel) && channel->irq >= 0) {
+		INIT_WORK(&channel->work, rcar_gen3_phy_usb2_work);
+		ret = request_irq(channel->irq, rcar_gen3_phy_usb2_irq,
+				  IRQF_SHARED, dev_name(channel->dev), channel);
+		if (ret < 0)
+			dev_err(channel->dev, "No irq handler (%d)\n", channel->irq);
+	}
 
 	/* Initialize USB2 part */
 	val = readl(usb2_base + USB2_INT_ENABLE);
@@ -432,6 +460,9 @@
 		val &= ~USB2_INT_ENABLE_UCOM_INTEN;
 	writel(val, usb2_base + USB2_INT_ENABLE);
 
+	if (channel->irq >= 0 && !rcar_gen3_is_any_rphy_initialized(channel))
+		free_irq(channel->irq, channel);
+
 	return 0;
 }
 
@@ -502,23 +533,6 @@
 	.owner		= THIS_MODULE,
 };
 
-static irqreturn_t rcar_gen3_phy_usb2_irq(int irq, void *_ch)
-{
-	struct rcar_gen3_chan *ch = _ch;
-	void __iomem *usb2_base = ch->base;
-	u32 status = readl(usb2_base + USB2_OBINTSTA);
-	irqreturn_t ret = IRQ_NONE;
-
-	if (status & USB2_OBINT_BITS) {
-		dev_vdbg(ch->dev, "%s: %08x\n", __func__, status);
-		writel(USB2_OBINT_BITS, usb2_base + USB2_OBINTSTA);
-		rcar_gen3_device_recognition(ch);
-		ret = IRQ_HANDLED;
-	}
-
-	return ret;
-}
-
 static const struct of_device_id rcar_gen3_phy_usb2_match_table[] = {
 	{
 		.compatible = "renesas,usb2-phy-r8a77470",
@@ -597,7 +611,7 @@
 	struct phy_provider *provider;
 	struct resource *res;
 	const struct phy_ops *phy_usb2_ops;
-	int irq, ret = 0, i;
+	int ret = 0, i;
 
 	if (!dev->of_node) {
 		dev_err(dev, "This driver needs device tree\n");
@@ -613,16 +627,8 @@
 	if (IS_ERR(channel->base))
 		return PTR_ERR(channel->base);
 
-	/* call request_irq for OTG */
-	irq = platform_get_irq(pdev, 0);
-	if (irq >= 0) {
-		INIT_WORK(&channel->work, rcar_gen3_phy_usb2_work);
-		irq = devm_request_irq(dev, irq, rcar_gen3_phy_usb2_irq,
-				       IRQF_SHARED, dev_name(dev), channel);
-		if (irq < 0)
-			dev_err(dev, "No irq handler (%d)\n", irq);
-	}
-
+	/* get irq number here and request_irq for OTG in phy_init */
+	channel->irq = platform_get_irq_optional(pdev, 0);
 	channel->dr_mode = rcar_gen3_get_dr_mode(dev->of_node);
 	if (channel->dr_mode != USB_DR_MODE_UNKNOWN) {
 		int ret;
@@ -648,8 +654,10 @@
 	 */
 	pm_runtime_enable(dev);
 	phy_usb2_ops = of_device_get_match_data(dev);
-	if (!phy_usb2_ops)
-		return -EINVAL;
+	if (!phy_usb2_ops) {
+		ret = -EINVAL;
+		goto error;
+	}
 
 	mutex_init(&channel->lock);
 	for (i = 0; i < NUM_OF_PHYS; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/rockchip/phy-rockchip-emmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/rockchip/phy-rockchip-emmc.c
@@ -240,15 +240,17 @@
 	 * - SDHCI driver to get the PHY
 	 * - SDHCI driver to init the PHY
 	 *
-	 * The clock is optional, so upon any error we just set to NULL.
+	 * The clock is optional, using clk_get_optional() to get the clock
+	 * and do error processing if the return value != NULL
 	 *
 	 * NOTE: we don't do anything special for EPROBE_DEFER here.  Given the
 	 * above expected use case, EPROBE_DEFER isn't sensible to expect, so
 	 * it's just like any other error.
 	 */
-	rk_phy->emmcclk = clk_get(&phy->dev, "emmcclk");
+	rk_phy->emmcclk = clk_get_optional(&phy->dev, "emmcclk");
 	if (IS_ERR(rk_phy->emmcclk)) {
-		dev_dbg(&phy->dev, "Error getting emmcclk: %d\n", ret);
+		ret = PTR_ERR(rk_phy->emmcclk);
+		dev_err(&phy->dev, "Error getting emmcclk: %d\n", ret);
 		rk_phy->emmcclk = NULL;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c
@@ -603,6 +603,8 @@
 {
 	const struct pre_pll_config *cfg = pre_pll_cfg_table;
 
+	rate = (rate / 1000) * 1000;
+
 	for (; cfg->pixclock != 0; cfg++)
 		if (cfg->pixclock == rate && !cfg->fracdiv)
 			break;
@@ -755,6 +757,8 @@
 {
 	const struct pre_pll_config *cfg = pre_pll_cfg_table;
 
+	rate = (rate / 1000) * 1000;
+
 	for (; cfg->pixclock != 0; cfg++)
 		if (cfg->pixclock == rate)
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/samsung/phy-exynos5-usbdrd.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/samsung/phy-exynos5-usbdrd.c
@@ -714,7 +714,9 @@
 	struct phy_usb_instance *inst = phy_get_drvdata(phy);
 	struct exynos5_usbdrd_phy *phy_drd = to_usbdrd_phy(inst);
 
-	return exynos5420_usbdrd_phy_calibrate(phy_drd);
+	if (inst->phy_cfg->id == EXYNOS5_DRDPHY_UTMI)
+		return exynos5420_usbdrd_phy_calibrate(phy_drd);
+	return 0;
 }
 
 static const struct phy_ops exynos5_usbdrd_phy_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/samsung/phy-s5pv210-usb2.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/samsung/phy-s5pv210-usb2.c
@@ -139,6 +139,10 @@
 		udelay(10);
 		rst &= ~rstbits;
 		writel(rst, drv->reg_phy + S5PV210_UPHYRST);
+		/* The following delay is necessary for the reset sequence to be
+		 * completed
+		 */
+		udelay(80);
 	} else {
 		pwr = readl(drv->reg_phy + S5PV210_UPHYPWR);
 		pwr |= phypwr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/socionext/phy-uniphier-usb3ss.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/socionext/phy-uniphier-usb3ss.c
@@ -315,6 +315,10 @@
 		.data = &uniphier_pro4_data,
 	},
 	{
+		.compatible = "socionext,uniphier-pro5-usb3-ssphy",
+		.data = &uniphier_pro4_data,
+	},
+	{
 		.compatible = "socionext,uniphier-pxs2-usb3-ssphy",
 		.data = &uniphier_pxs2_data,
 	},
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/tegra/xusb.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/tegra/xusb.c
@@ -949,6 +949,7 @@
 reset:
 	reset_control_assert(padctl->rst);
 remove:
+	platform_set_drvdata(pdev, NULL);
 	soc->ops->remove(padctl);
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/ti/phy-am654-serdes.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/ti/phy-am654-serdes.c
@@ -625,8 +625,10 @@
 	pm_runtime_enable(dev);
 
 	phy = devm_phy_create(dev, NULL, &ops);
-	if (IS_ERR(phy))
-		return PTR_ERR(phy);
+	if (IS_ERR(phy)) {
+		ret = PTR_ERR(phy);
+		goto clk_err;
+	}
 
 	phy_set_drvdata(phy, am654_phy);
 	phy_provider = devm_of_phy_provider_register(dev, serdes_am654_xlate);
--- linux-gkeop-5.4-5.4.0.orig/drivers/phy/ti/phy-gmii-sel.c
+++ linux-gkeop-5.4-5.4.0/drivers/phy/ti/phy-gmii-sel.c
@@ -69,31 +69,31 @@
 		break;
 
 	case PHY_INTERFACE_MODE_RGMII:
+	case PHY_INTERFACE_MODE_RGMII_RXID:
 		gmii_sel_mode = AM33XX_GMII_SEL_MODE_RGMII;
 		break;
 
 	case PHY_INTERFACE_MODE_RGMII_ID:
-	case PHY_INTERFACE_MODE_RGMII_RXID:
 	case PHY_INTERFACE_MODE_RGMII_TXID:
 		gmii_sel_mode = AM33XX_GMII_SEL_MODE_RGMII;
 		rgmii_id = 1;
 		break;
 
 	case PHY_INTERFACE_MODE_MII:
-		mode = AM33XX_GMII_SEL_MODE_MII;
+	case PHY_INTERFACE_MODE_GMII:
+		gmii_sel_mode = AM33XX_GMII_SEL_MODE_MII;
 		break;
 
 	default:
-		dev_warn(dev,
-			 "port%u: unsupported mode: \"%s\". Defaulting to MII.\n",
-			 if_phy->id, phy_modes(rgmii_id));
+		dev_warn(dev, "port%u: unsupported mode: \"%s\"\n",
+			 if_phy->id, phy_modes(submode));
 		return -EINVAL;
 	}
 
 	if_phy->phy_if_mode = submode;
 
 	dev_dbg(dev, "%s id:%u mode:%u rgmii_id:%d rmii_clk_ext:%d\n",
-		__func__, if_phy->id, mode, rgmii_id,
+		__func__, if_phy->id, submode, rgmii_id,
 		if_phy->rmii_clock_external);
 
 	regfield = if_phy->fields[PHY_GMII_SEL_PORT_MODE];
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c
@@ -334,7 +334,7 @@
 
 #define D22 40
 SIG_EXPR_LIST_DECL_SESG(D22, SD1CLK, SD1, SIG_DESC_SET(SCU414, 8));
-SIG_EXPR_LIST_DECL_SEMG(D22, PWM8, PWM8G0, PWM8, SIG_DESC_SET(SCU414, 8));
+SIG_EXPR_LIST_DECL_SEMG(D22, PWM8, PWM8G0, PWM8, SIG_DESC_SET(SCU4B4, 8));
 PIN_DECL_2(D22, GPIOF0, SD1CLK, PWM8);
 GROUP_DECL(PWM8G0, D22);
 
@@ -1088,60 +1088,52 @@
 
 #define AB7 176
 SIG_EXPR_LIST_DECL_SESG(AB7, LAD0, LPC, SIG_DESC_SET(SCU434, 16),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AB7, ESPID0, ESPI, SIG_DESC_SET(SCU434, 16),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AB7, ESPID0, ESPI, SIG_DESC_SET(SCU434, 16));
 PIN_DECL_2(AB7, GPIOW0, LAD0, ESPID0);
 
 #define AB8 177
 SIG_EXPR_LIST_DECL_SESG(AB8, LAD1, LPC, SIG_DESC_SET(SCU434, 17),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AB8, ESPID1, ESPI, SIG_DESC_SET(SCU434, 17),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AB8, ESPID1, ESPI, SIG_DESC_SET(SCU434, 17));
 PIN_DECL_2(AB8, GPIOW1, LAD1, ESPID1);
 
 #define AC8 178
 SIG_EXPR_LIST_DECL_SESG(AC8, LAD2, LPC, SIG_DESC_SET(SCU434, 18),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AC8, ESPID2, ESPI, SIG_DESC_SET(SCU434, 18),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AC8, ESPID2, ESPI, SIG_DESC_SET(SCU434, 18));
 PIN_DECL_2(AC8, GPIOW2, LAD2, ESPID2);
 
 #define AC7 179
 SIG_EXPR_LIST_DECL_SESG(AC7, LAD3, LPC, SIG_DESC_SET(SCU434, 19),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AC7, ESPID3, ESPI, SIG_DESC_SET(SCU434, 19),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AC7, ESPID3, ESPI, SIG_DESC_SET(SCU434, 19));
 PIN_DECL_2(AC7, GPIOW3, LAD3, ESPID3);
 
 #define AE7 180
 SIG_EXPR_LIST_DECL_SESG(AE7, LCLK, LPC, SIG_DESC_SET(SCU434, 20),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AE7, ESPICK, ESPI, SIG_DESC_SET(SCU434, 20),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AE7, ESPICK, ESPI, SIG_DESC_SET(SCU434, 20));
 PIN_DECL_2(AE7, GPIOW4, LCLK, ESPICK);
 
 #define AF7 181
 SIG_EXPR_LIST_DECL_SESG(AF7, LFRAME, LPC, SIG_DESC_SET(SCU434, 21),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AF7, ESPICS, ESPI, SIG_DESC_SET(SCU434, 21),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AF7, ESPICS, ESPI, SIG_DESC_SET(SCU434, 21));
 PIN_DECL_2(AF7, GPIOW5, LFRAME, ESPICS);
 
 #define AD7 182
 SIG_EXPR_LIST_DECL_SESG(AD7, LSIRQ, LSIRQ, SIG_DESC_SET(SCU434, 22),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AD7, ESPIALT, ESPIALT, SIG_DESC_SET(SCU434, 22),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AD7, ESPIALT, ESPIALT, SIG_DESC_SET(SCU434, 22));
 PIN_DECL_2(AD7, GPIOW6, LSIRQ, ESPIALT);
 FUNC_GROUP_DECL(LSIRQ, AD7);
 FUNC_GROUP_DECL(ESPIALT, AD7);
 
 #define AD8 183
 SIG_EXPR_LIST_DECL_SESG(AD8, LPCRST, LPC, SIG_DESC_SET(SCU434, 23),
-			  SIG_DESC_CLEAR(SCU510, 6));
-SIG_EXPR_LIST_DECL_SESG(AD8, ESPIRST, ESPI, SIG_DESC_SET(SCU434, 23),
 			  SIG_DESC_SET(SCU510, 6));
+SIG_EXPR_LIST_DECL_SESG(AD8, ESPIRST, ESPI, SIG_DESC_SET(SCU434, 23));
 PIN_DECL_2(AD8, GPIOW7, LPCRST, ESPIRST);
 
 FUNC_GROUP_DECL(LPC, AB7, AB8, AC8, AC7, AE7, AF7, AD8);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/aspeed/pinctrl-aspeed.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/aspeed/pinctrl-aspeed.c
@@ -277,13 +277,76 @@
 static bool aspeed_expr_is_gpio(const struct aspeed_sig_expr *expr)
 {
 	/*
-	 * The signal type is GPIO if the signal name has "GPIO" as a prefix.
-	 * strncmp (rather than strcmp) is used to implement the prefix
-	 * requirement.
+	 * We need to differentiate between GPIO and non-GPIO signals to
+	 * implement the gpio_request_enable() interface. For better or worse
+	 * the ASPEED pinctrl driver uses the expression names to determine
+	 * whether an expression will mux a pin for GPIO.
 	 *
-	 * expr->signal might look like "GPIOT3" in the GPIO case.
+	 * Generally we have the following - A GPIO such as B1 has:
+	 *
+	 *    - expr->signal set to "GPIOB1"
+	 *    - expr->function set to "GPIOB1"
+	 *
+	 * Using this fact we can determine whether the provided expression is
+	 * a GPIO expression by testing the signal name for the string prefix
+	 * "GPIO".
+	 *
+	 * However, some GPIOs are input-only, and the ASPEED datasheets name
+	 * them differently. An input-only GPIO such as T0 has:
+	 *
+	 *    - expr->signal set to "GPIT0"
+	 *    - expr->function set to "GPIT0"
+	 *
+	 * It's tempting to generalise the prefix test from "GPIO" to "GPI" to
+	 * account for both GPIOs and GPIs, but in doing so we run aground on
+	 * another feature:
+	 *
+	 * Some pins in the ASPEED BMC SoCs have a "pass-through" GPIO
+	 * function where the input state of one pin is replicated as the
+	 * output state of another (as if they were shorted together - a mux
+	 * configuration that is typically enabled by hardware strapping).
+	 * This feature allows the BMC to pass e.g. power button state through
+	 * to the host while the BMC is yet to boot, but take control of the
+	 * button state once the BMC has booted by muxing each pin as a
+	 * separate, pin-specific GPIO.
+	 *
+	 * Conceptually this pass-through mode is a form of GPIO and is named
+	 * as such in the datasheets, e.g. "GPID0". This naming similarity
+	 * trips us up with the simple GPI-prefixed-signal-name scheme
+	 * discussed above, as the pass-through configuration is not what we
+	 * want when muxing a pin as GPIO for the GPIO subsystem.
+	 *
+	 * On e.g. the AST2400, a pass-through function "GPID0" is grouped on
+	 * balls A18 and D16, where we have:
+	 *
+	 *    For ball A18:
+	 *    - expr->signal set to "GPID0IN"
+	 *    - expr->function set to "GPID0"
+	 *
+	 *    For ball D16:
+	 *    - expr->signal set to "GPID0OUT"
+	 *    - expr->function set to "GPID0"
+	 *
+	 * By contrast, the pin-specific GPIO expressions for the same pins are
+	 * as follows:
+	 *
+	 *    For ball A18:
+	 *    - expr->signal looks like "GPIOD0"
+	 *    - expr->function looks like "GPIOD0"
+	 *
+	 *    For ball D16:
+	 *    - expr->signal looks like "GPIOD1"
+	 *    - expr->function looks like "GPIOD1"
+	 *
+	 * Testing both the signal _and_ function names gives us the means
+	 * differentiate the pass-through GPIO pinmux configuration from the
+	 * pin-specific configuration that the GPIO subsystem is after: An
+	 * expression is a pin-specific (non-pass-through) GPIO configuration
+	 * if the signal prefix is "GPI" and the signal name matches the
+	 * function name.
 	 */
-	return strncmp(expr->signal, "GPIO", 4) == 0;
+	return !strncmp(expr->signal, "GPI", 3) &&
+			!strcmp(expr->signal, expr->function);
 }
 
 static bool aspeed_gpio_in_exprs(const struct aspeed_sig_expr **exprs)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/aspeed/pinmux-aspeed.h
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/aspeed/pinmux-aspeed.h
@@ -452,10 +452,11 @@
  * evaluation of the descriptors.
  *
  * @signal: The signal name for the priority level on the pin. If the signal
- *          type is GPIO, then the signal name must begin with the string
- *          "GPIO", e.g. GPIOA0, GPIOT4 etc.
+ *          type is GPIO, then the signal name must begin with the
+ *          prefix "GPI", e.g. GPIOA0, GPIT0 etc.
  * @function: The name of the function the signal participates in for the
- *            associated expression
+ *            associated expression. For pin-specific GPIO, the function
+ *            name must match the signal name.
  * @ndescs: The number of signal descriptors in the expression
  * @descs: Pointer to an array of signal descriptors that comprise the
  *         function expression
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/bcm/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/bcm/Kconfig
@@ -23,6 +23,7 @@
 	select PINMUX
 	select PINCONF
 	select GENERIC_PINCONF
+	select GPIOLIB
 	select GPIOLIB_IRQCHIP
 	default ARCH_BCM2835 || ARCH_BRCMSTB
 	help
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/cirrus/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/cirrus/Kconfig
@@ -2,6 +2,7 @@
 config PINCTRL_LOCHNAGAR
 	tristate "Cirrus Logic Lochnagar pinctrl driver"
 	depends on MFD_LOCHNAGAR
+	select GPIOLIB
 	select PINMUX
 	select PINCONF
 	select GENERIC_PINCONF
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/core.c
@@ -2025,7 +2025,6 @@
 		return PTR_ERR(pctldev->p);
 	}
 
-	kref_get(&pctldev->p->users);
 	pctldev->hog_default =
 		pinctrl_lookup_state(pctldev->p, PINCTRL_STATE_DEFAULT);
 	if (IS_ERR(pctldev->hog_default)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/devicetree.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/devicetree.c
@@ -29,6 +29,13 @@
 static void dt_free_map(struct pinctrl_dev *pctldev,
 		     struct pinctrl_map *map, unsigned num_maps)
 {
+	int i;
+
+	for (i = 0; i < num_maps; ++i) {
+		kfree_const(map[i].dev_name);
+		map[i].dev_name = NULL;
+	}
+
 	if (pctldev) {
 		const struct pinctrl_ops *ops = pctldev->desc->pctlops;
 		if (ops->dt_free_map)
@@ -63,7 +70,13 @@
 
 	/* Initialize common mapping table entry fields */
 	for (i = 0; i < num_maps; i++) {
-		map[i].dev_name = dev_name(p->dev);
+		const char *devname;
+
+		devname = kstrdup_const(dev_name(p->dev), GFP_KERNEL);
+		if (!devname)
+			goto err_free_map;
+
+		map[i].dev_name = devname;
 		map[i].name = statename;
 		if (pctldev)
 			map[i].ctrl_dev_name = dev_name(pctldev->dev);
@@ -71,10 +84,8 @@
 
 	/* Remember the converted mapping table entries */
 	dt_map = kzalloc(sizeof(*dt_map), GFP_KERNEL);
-	if (!dt_map) {
-		dt_free_map(pctldev, map, num_maps);
-		return -ENOMEM;
-	}
+	if (!dt_map)
+		goto err_free_map;
 
 	dt_map->pctldev = pctldev;
 	dt_map->map = map;
@@ -82,6 +93,10 @@
 	list_add_tail(&dt_map->node, &p->dt_maps);
 
 	return pinctrl_register_map(map, num_maps, false);
+
+err_free_map:
+	dt_free_map(pctldev, map, num_maps);
+	return -ENOMEM;
 }
 
 struct pinctrl_dev *of_pinctrl_get(struct device_node *np)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/freescale/pinctrl-imx.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -774,16 +774,6 @@
 	return 0;
 }
 
-/*
- * imx_free_resources() - free memory used by this driver
- * @info: info driver instance
- */
-static void imx_free_resources(struct imx_pinctrl *ipctl)
-{
-	if (ipctl->pctl)
-		pinctrl_unregister(ipctl->pctl);
-}
-
 int imx_pinctrl_probe(struct platform_device *pdev,
 		      const struct imx_pinctrl_soc_info *info)
 {
@@ -874,23 +864,18 @@
 					     &ipctl->pctl);
 	if (ret) {
 		dev_err(&pdev->dev, "could not register IMX pinctrl driver\n");
-		goto free;
+		return ret;
 	}
 
 	ret = imx_pinctrl_probe_dt(pdev, ipctl);
 	if (ret) {
 		dev_err(&pdev->dev, "fail to probe dt properties\n");
-		goto free;
+		return ret;
 	}
 
 	dev_info(&pdev->dev, "initialized IMX pinctrl driver\n");
 
 	return pinctrl_enable(ipctl->pctl);
-
-free:
-	imx_free_resources(ipctl);
-
-	return ret;
 }
 
 static int __maybe_unused imx_pinctrl_suspend(struct device *dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -638,7 +638,6 @@
 
 	ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
 	if (ret) {
-		pinctrl_unregister(ipctl->pctl);
 		dev_err(&pdev->dev, "Failed to populate subdevices\n");
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/freescale/pinctrl-scu.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/freescale/pinctrl-scu.c
@@ -23,12 +23,12 @@
 	struct imx_sc_rpc_msg hdr;
 	u32 val;
 	u16 pad;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_req_pad_get {
 	struct imx_sc_rpc_msg hdr;
 	u16 pad;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_resp_pad_get {
 	struct imx_sc_rpc_msg hdr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/intel/pinctrl-baytrail.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/intel/pinctrl-baytrail.c
@@ -110,7 +110,6 @@
 	struct platform_device *pdev;
 	struct pinctrl_dev *pctl_dev;
 	struct pinctrl_desc pctl_desc;
-	raw_spinlock_t lock;
 	const struct intel_pinctrl_soc_data *soc_data;
 	struct intel_community *communities_copy;
 	struct byt_gpio_pin_context *saved_context;
@@ -549,6 +548,8 @@
 	NULL
 };
 
+static DEFINE_RAW_SPINLOCK(byt_lock);
+
 static struct intel_community *byt_get_community(struct byt_gpio *vg,
 						 unsigned int pin)
 {
@@ -658,7 +659,7 @@
 	unsigned long flags;
 	int i;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 
 	for (i = 0; i < group.npins; i++) {
 		void __iomem *padcfg0;
@@ -678,7 +679,7 @@
 		writel(value, padcfg0);
 	}
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 }
 
 static void byt_set_group_mixed_mux(struct byt_gpio *vg,
@@ -688,7 +689,7 @@
 	unsigned long flags;
 	int i;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 
 	for (i = 0; i < group.npins; i++) {
 		void __iomem *padcfg0;
@@ -708,7 +709,7 @@
 		writel(value, padcfg0);
 	}
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 }
 
 static int byt_set_mux(struct pinctrl_dev *pctldev, unsigned int func_selector,
@@ -749,11 +750,17 @@
 	unsigned long flags;
 	u32 value;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	value = readl(reg);
-	value &= ~(BYT_TRIG_POS | BYT_TRIG_NEG | BYT_TRIG_LVL);
+
+	/* Do not clear direct-irq enabled IRQs (from gpio_disable_free) */
+	if (value & BYT_DIRECT_IRQ_EN)
+		/* nothing to do */ ;
+	else
+		value &= ~(BYT_TRIG_POS | BYT_TRIG_NEG | BYT_TRIG_LVL);
+
 	writel(value, reg);
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 }
 
 static int byt_gpio_request_enable(struct pinctrl_dev *pctl_dev,
@@ -765,7 +772,7 @@
 	u32 value, gpio_mux;
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 
 	/*
 	 * In most cases, func pin mux 000 means GPIO function.
@@ -787,7 +794,7 @@
 			 "pin %u forcibly re-configured as GPIO\n", offset);
 	}
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	pm_runtime_get(&vg->pdev->dev);
 
@@ -804,6 +811,21 @@
 	pm_runtime_put(&vg->pdev->dev);
 }
 
+static void byt_gpio_direct_irq_check(struct byt_gpio *vg,
+				      unsigned int offset)
+{
+	void __iomem *conf_reg = byt_gpio_reg(vg, offset, BYT_CONF0_REG);
+
+	/*
+	 * Before making any direction modifications, do a check if gpio is set
+	 * for direct IRQ. On Bay Trail, setting GPIO to output does not make
+	 * sense, so let's at least inform the caller before they shoot
+	 * themselves in the foot.
+	 */
+	if (readl(conf_reg) & BYT_DIRECT_IRQ_EN)
+		dev_info_once(&vg->pdev->dev, "Potential Error: Setting GPIO with direct_irq_en to output");
+}
+
 static int byt_gpio_set_direction(struct pinctrl_dev *pctl_dev,
 				  struct pinctrl_gpio_range *range,
 				  unsigned int offset,
@@ -811,28 +833,21 @@
 {
 	struct byt_gpio *vg = pinctrl_dev_get_drvdata(pctl_dev);
 	void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
-	void __iomem *conf_reg = byt_gpio_reg(vg, offset, BYT_CONF0_REG);
 	unsigned long flags;
 	u32 value;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 
 	value = readl(val_reg);
 	value &= ~BYT_DIR_MASK;
 	if (input)
 		value |= BYT_OUTPUT_EN;
 	else
-		/*
-		 * Before making any direction modifications, do a check if gpio
-		 * is set for direct IRQ.  On baytrail, setting GPIO to output
-		 * does not make sense, so let's at least warn the caller before
-		 * they shoot themselves in the foot.
-		 */
-		WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN,
-		     "Potential Error: Setting GPIO with direct_irq_en to output");
+		byt_gpio_direct_irq_check(vg, offset);
+
 	writel(value, val_reg);
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	return 0;
 }
@@ -901,11 +916,11 @@
 	u32 conf, pull, val, debounce;
 	u16 arg = 0;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	conf = readl(conf_reg);
 	pull = conf & BYT_PULL_ASSIGN_MASK;
 	val = readl(val_reg);
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	switch (param) {
 	case PIN_CONFIG_BIAS_DISABLE:
@@ -932,9 +947,9 @@
 		if (!(conf & BYT_DEBOUNCE_EN))
 			return -EINVAL;
 
-		raw_spin_lock_irqsave(&vg->lock, flags);
+		raw_spin_lock_irqsave(&byt_lock, flags);
 		debounce = readl(db_reg);
-		raw_spin_unlock_irqrestore(&vg->lock, flags);
+		raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 		switch (debounce & BYT_DEBOUNCE_PULSE_MASK) {
 		case BYT_DEBOUNCE_PULSE_375US:
@@ -986,7 +1001,7 @@
 	u32 conf, val, debounce;
 	int i, ret = 0;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 
 	conf = readl(conf_reg);
 	val = readl(val_reg);
@@ -1045,7 +1060,6 @@
 			break;
 		case PIN_CONFIG_INPUT_DEBOUNCE:
 			debounce = readl(db_reg);
-			debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 
 			if (arg)
 				conf |= BYT_DEBOUNCE_EN;
@@ -1054,24 +1068,31 @@
 
 			switch (arg) {
 			case 375:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_375US;
 				break;
 			case 750:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_750US;
 				break;
 			case 1500:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_1500US;
 				break;
 			case 3000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_3MS;
 				break;
 			case 6000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_6MS;
 				break;
 			case 12000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_12MS;
 				break;
 			case 24000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_24MS;
 				break;
 			default:
@@ -1094,7 +1115,7 @@
 	if (!ret)
 		writel(conf, conf_reg);
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	return ret;
 }
@@ -1119,9 +1140,9 @@
 	unsigned long flags;
 	u32 val;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	val = readl(reg);
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	return !!(val & BYT_LEVEL);
 }
@@ -1136,13 +1157,13 @@
 	if (!reg)
 		return;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	old_val = readl(reg);
 	if (value)
 		writel(old_val | BYT_LEVEL, reg);
 	else
 		writel(old_val & ~BYT_LEVEL, reg);
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 }
 
 static int byt_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
@@ -1155,9 +1176,9 @@
 	if (!reg)
 		return -EINVAL;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	value = readl(reg);
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	if (!(value & BYT_OUTPUT_EN))
 		return 0;
@@ -1169,19 +1190,50 @@
 
 static int byt_gpio_direction_input(struct gpio_chip *chip, unsigned int offset)
 {
-	return pinctrl_gpio_direction_input(chip->base + offset);
+	struct byt_gpio *vg = gpiochip_get_data(chip);
+	void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
+	unsigned long flags;
+	u32 reg;
+
+	raw_spin_lock_irqsave(&byt_lock, flags);
+
+	reg = readl(val_reg);
+	reg &= ~BYT_DIR_MASK;
+	reg |= BYT_OUTPUT_EN;
+	writel(reg, val_reg);
+
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
+	return 0;
 }
 
+/*
+ * Note despite the temptation this MUST NOT be converted into a call to
+ * pinctrl_gpio_direction_output() + byt_gpio_set() that does not work this
+ * MUST be done as a single BYT_VAL_REG register write.
+ * See the commit message of the commit adding this comment for details.
+ */
 static int byt_gpio_direction_output(struct gpio_chip *chip,
 				     unsigned int offset, int value)
 {
-	int ret = pinctrl_gpio_direction_output(chip->base + offset);
+	struct byt_gpio *vg = gpiochip_get_data(chip);
+	void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
+	unsigned long flags;
+	u32 reg;
 
-	if (ret)
-		return ret;
+	raw_spin_lock_irqsave(&byt_lock, flags);
 
-	byt_gpio_set(chip, offset, value);
+	byt_gpio_direct_irq_check(vg, offset);
 
+	reg = readl(val_reg);
+	reg &= ~BYT_DIR_MASK;
+	if (value)
+		reg |= BYT_LEVEL;
+	else
+		reg &= ~BYT_LEVEL;
+
+	writel(reg, val_reg);
+
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 	return 0;
 }
 
@@ -1200,14 +1252,14 @@
 		const char *label;
 		unsigned int pin;
 
-		raw_spin_lock_irqsave(&vg->lock, flags);
+		raw_spin_lock_irqsave(&byt_lock, flags);
 		pin = vg->soc_data->pins[i].number;
 		reg = byt_gpio_reg(vg, pin, BYT_CONF0_REG);
 		if (!reg) {
 			seq_printf(s,
 				   "Could not retrieve pin %i conf0 reg\n",
 				   pin);
-			raw_spin_unlock_irqrestore(&vg->lock, flags);
+			raw_spin_unlock_irqrestore(&byt_lock, flags);
 			continue;
 		}
 		conf0 = readl(reg);
@@ -1216,11 +1268,11 @@
 		if (!reg) {
 			seq_printf(s,
 				   "Could not retrieve pin %i val reg\n", pin);
-			raw_spin_unlock_irqrestore(&vg->lock, flags);
+			raw_spin_unlock_irqrestore(&byt_lock, flags);
 			continue;
 		}
 		val = readl(reg);
-		raw_spin_unlock_irqrestore(&vg->lock, flags);
+		raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 		comm = byt_get_community(vg, pin);
 		if (!comm) {
@@ -1290,6 +1342,7 @@
 	.direction_output	= byt_gpio_direction_output,
 	.get			= byt_gpio_get,
 	.set			= byt_gpio_set,
+	.set_config		= gpiochip_generic_config,
 	.dbg_show		= byt_gpio_dbg_show,
 };
 
@@ -1304,9 +1357,9 @@
 	if (!reg)
 		return;
 
-	raw_spin_lock(&vg->lock);
+	raw_spin_lock(&byt_lock);
 	writel(BIT(offset % 32), reg);
-	raw_spin_unlock(&vg->lock);
+	raw_spin_unlock(&byt_lock);
 }
 
 static void byt_irq_mask(struct irq_data *d)
@@ -1330,7 +1383,7 @@
 	if (!reg)
 		return;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	value = readl(reg);
 
 	switch (irqd_get_trigger_type(d)) {
@@ -1353,7 +1406,7 @@
 
 	writel(value, reg);
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 }
 
 static int byt_irq_type(struct irq_data *d, unsigned int type)
@@ -1367,7 +1420,7 @@
 	if (!reg || offset >= vg->chip.ngpio)
 		return -EINVAL;
 
-	raw_spin_lock_irqsave(&vg->lock, flags);
+	raw_spin_lock_irqsave(&byt_lock, flags);
 	value = readl(reg);
 
 	WARN(value & BYT_DIRECT_IRQ_EN,
@@ -1389,7 +1442,7 @@
 	else if (type & IRQ_TYPE_LEVEL_MASK)
 		irq_set_handler_locked(d, handle_level_irq);
 
-	raw_spin_unlock_irqrestore(&vg->lock, flags);
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 
 	return 0;
 }
@@ -1425,9 +1478,9 @@
 			continue;
 		}
 
-		raw_spin_lock(&vg->lock);
+		raw_spin_lock(&byt_lock);
 		pending = readl(reg);
-		raw_spin_unlock(&vg->lock);
+		raw_spin_unlock(&byt_lock);
 		for_each_set_bit(pin, &pending, 32) {
 			virq = irq_find_mapping(vg->chip.irq.domain, base + pin);
 			generic_handle_irq(virq);
@@ -1638,8 +1691,6 @@
 		return PTR_ERR(vg->pctl_dev);
 	}
 
-	raw_spin_lock_init(&vg->lock);
-
 	ret = byt_gpio_probe(vg);
 	if (ret)
 		return ret;
@@ -1654,8 +1705,11 @@
 static int byt_gpio_suspend(struct device *dev)
 {
 	struct byt_gpio *vg = dev_get_drvdata(dev);
+	unsigned long flags;
 	int i;
 
+	raw_spin_lock_irqsave(&byt_lock, flags);
+
 	for (i = 0; i < vg->soc_data->npins; i++) {
 		void __iomem *reg;
 		u32 value;
@@ -1676,14 +1730,18 @@
 		vg->saved_context[i].val = value;
 	}
 
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 	return 0;
 }
 
 static int byt_gpio_resume(struct device *dev)
 {
 	struct byt_gpio *vg = dev_get_drvdata(dev);
+	unsigned long flags;
 	int i;
 
+	raw_spin_lock_irqsave(&byt_lock, flags);
+
 	for (i = 0; i < vg->soc_data->npins; i++) {
 		void __iomem *reg;
 		u32 value;
@@ -1721,6 +1779,7 @@
 		}
 	}
 
+	raw_spin_unlock_irqrestore(&byt_lock, flags);
 	return 0;
 }
 #endif
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1474,11 +1474,15 @@
 	struct chv_pinctrl *pctrl = gpiochip_get_data(gc);
 	struct irq_chip *chip = irq_desc_get_chip(desc);
 	unsigned long pending;
+	unsigned long flags;
 	u32 intr_line;
 
 	chained_irq_enter(chip, desc);
 
+	raw_spin_lock_irqsave(&chv_lock, flags);
 	pending = readl(pctrl->regs + CHV_INTSTAT);
+	raw_spin_unlock_irqrestore(&chv_lock, flags);
+
 	for_each_set_bit(intr_line, &pending, pctrl->community->nirqs) {
 		unsigned irq, offset;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/intel/pinctrl-intel.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/intel/pinctrl-intel.c
@@ -662,6 +662,10 @@
 
 		value |= PADCFG1_TERM_UP;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 5000;
+
 		switch (arg) {
 		case 20000:
 			value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT;
@@ -684,6 +688,10 @@
 	case PIN_CONFIG_BIAS_PULL_DOWN:
 		value &= ~(PADCFG1_TERM_UP | PADCFG1_TERM_MASK);
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 5000;
+
 		switch (arg) {
 		case 20000:
 			value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/intel/pinctrl-lewisburg.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/intel/pinctrl-lewisburg.c
@@ -33,6 +33,7 @@
 		.npins = ((e) - (s) + 1),		\
 	}
 
+/* Lewisburg */
 static const struct pinctrl_pin_desc lbg_pins[] = {
 	/* GPP_A */
 	PINCTRL_PIN(0, "RCINB"),
@@ -72,7 +73,7 @@
 	PINCTRL_PIN(33, "SRCCLKREQB_4"),
 	PINCTRL_PIN(34, "SRCCLKREQB_5"),
 	PINCTRL_PIN(35, "GPP_B_11"),
-	PINCTRL_PIN(36, "GLB_RST_WARN_N"),
+	PINCTRL_PIN(36, "SLP_S0B"),
 	PINCTRL_PIN(37, "PLTRSTB"),
 	PINCTRL_PIN(38, "SPKR"),
 	PINCTRL_PIN(39, "GPP_B_15"),
@@ -185,96 +186,96 @@
 	PINCTRL_PIN(141, "GBE_PCI_DIS"),
 	PINCTRL_PIN(142, "GBE_LAN_DIS"),
 	PINCTRL_PIN(143, "GPP_I_10"),
-	PINCTRL_PIN(144, "GPIO_RCOMP_3P3"),
 	/* GPP_J */
-	PINCTRL_PIN(145, "GBE_LED_0_0"),
-	PINCTRL_PIN(146, "GBE_LED_0_1"),
-	PINCTRL_PIN(147, "GBE_LED_1_0"),
-	PINCTRL_PIN(148, "GBE_LED_1_1"),
-	PINCTRL_PIN(149, "GBE_LED_2_0"),
-	PINCTRL_PIN(150, "GBE_LED_2_1"),
-	PINCTRL_PIN(151, "GBE_LED_3_0"),
-	PINCTRL_PIN(152, "GBE_LED_3_1"),
-	PINCTRL_PIN(153, "GBE_SCL_0"),
-	PINCTRL_PIN(154, "GBE_SDA_0"),
-	PINCTRL_PIN(155, "GBE_SCL_1"),
-	PINCTRL_PIN(156, "GBE_SDA_1"),
-	PINCTRL_PIN(157, "GBE_SCL_2"),
-	PINCTRL_PIN(158, "GBE_SDA_2"),
-	PINCTRL_PIN(159, "GBE_SCL_3"),
-	PINCTRL_PIN(160, "GBE_SDA_3"),
-	PINCTRL_PIN(161, "GBE_SDP_0_0"),
-	PINCTRL_PIN(162, "GBE_SDP_0_1"),
-	PINCTRL_PIN(163, "GBE_SDP_1_0"),
-	PINCTRL_PIN(164, "GBE_SDP_1_1"),
-	PINCTRL_PIN(165, "GBE_SDP_2_0"),
-	PINCTRL_PIN(166, "GBE_SDP_2_1"),
-	PINCTRL_PIN(167, "GBE_SDP_3_0"),
-	PINCTRL_PIN(168, "GBE_SDP_3_1"),
+	PINCTRL_PIN(144, "GBE_LED_0_0"),
+	PINCTRL_PIN(145, "GBE_LED_0_1"),
+	PINCTRL_PIN(146, "GBE_LED_1_0"),
+	PINCTRL_PIN(147, "GBE_LED_1_1"),
+	PINCTRL_PIN(148, "GBE_LED_2_0"),
+	PINCTRL_PIN(149, "GBE_LED_2_1"),
+	PINCTRL_PIN(150, "GBE_LED_3_0"),
+	PINCTRL_PIN(151, "GBE_LED_3_1"),
+	PINCTRL_PIN(152, "GBE_SCL_0"),
+	PINCTRL_PIN(153, "GBE_SDA_0"),
+	PINCTRL_PIN(154, "GBE_SCL_1"),
+	PINCTRL_PIN(155, "GBE_SDA_1"),
+	PINCTRL_PIN(156, "GBE_SCL_2"),
+	PINCTRL_PIN(157, "GBE_SDA_2"),
+	PINCTRL_PIN(158, "GBE_SCL_3"),
+	PINCTRL_PIN(159, "GBE_SDA_3"),
+	PINCTRL_PIN(160, "GBE_SDP_0_0"),
+	PINCTRL_PIN(161, "GBE_SDP_0_1"),
+	PINCTRL_PIN(162, "GBE_SDP_1_0"),
+	PINCTRL_PIN(163, "GBE_SDP_1_1"),
+	PINCTRL_PIN(164, "GBE_SDP_2_0"),
+	PINCTRL_PIN(165, "GBE_SDP_2_1"),
+	PINCTRL_PIN(166, "GBE_SDP_3_0"),
+	PINCTRL_PIN(167, "GBE_SDP_3_1"),
 	/* GPP_K */
-	PINCTRL_PIN(169, "GBE_RMIICLK"),
-	PINCTRL_PIN(170, "GBE_RMII_TXD_0"),
-	PINCTRL_PIN(171, "GBE_RMII_TXD_1"),
+	PINCTRL_PIN(168, "GBE_RMIICLK"),
+	PINCTRL_PIN(169, "GBE_RMII_RXD_0"),
+	PINCTRL_PIN(170, "GBE_RMII_RXD_1"),
+	PINCTRL_PIN(171, "GBE_RMII_CRS_DV"),
 	PINCTRL_PIN(172, "GBE_RMII_TX_EN"),
-	PINCTRL_PIN(173, "GBE_RMII_CRS_DV"),
-	PINCTRL_PIN(174, "GBE_RMII_RXD_0"),
-	PINCTRL_PIN(175, "GBE_RMII_RXD_1"),
-	PINCTRL_PIN(176, "GBE_RMII_RX_ER"),
-	PINCTRL_PIN(177, "GBE_RMII_ARBIN"),
-	PINCTRL_PIN(178, "GBE_RMII_ARB_OUT"),
-	PINCTRL_PIN(179, "PE_RST_N"),
-	PINCTRL_PIN(180, "GPIO_RCOMP_1P8_3P3"),
+	PINCTRL_PIN(173, "GBE_RMII_TXD_0"),
+	PINCTRL_PIN(174, "GBE_RMII_TXD_1"),
+	PINCTRL_PIN(175, "GBE_RMII_RX_ER"),
+	PINCTRL_PIN(176, "GBE_RMII_ARBIN"),
+	PINCTRL_PIN(177, "GBE_RMII_ARB_OUT"),
+	PINCTRL_PIN(178, "PE_RST_N"),
 	/* GPP_G */
-	PINCTRL_PIN(181, "FAN_TACH_0"),
-	PINCTRL_PIN(182, "FAN_TACH_1"),
-	PINCTRL_PIN(183, "FAN_TACH_2"),
-	PINCTRL_PIN(184, "FAN_TACH_3"),
-	PINCTRL_PIN(185, "FAN_TACH_4"),
-	PINCTRL_PIN(186, "FAN_TACH_5"),
-	PINCTRL_PIN(187, "FAN_TACH_6"),
-	PINCTRL_PIN(188, "FAN_TACH_7"),
-	PINCTRL_PIN(189, "FAN_PWM_0"),
-	PINCTRL_PIN(190, "FAN_PWM_1"),
-	PINCTRL_PIN(191, "FAN_PWM_2"),
-	PINCTRL_PIN(192, "FAN_PWM_3"),
-	PINCTRL_PIN(193, "GSXDOUT"),
-	PINCTRL_PIN(194, "GSXSLOAD"),
-	PINCTRL_PIN(195, "GSXDIN"),
-	PINCTRL_PIN(196, "GSXSRESETB"),
-	PINCTRL_PIN(197, "GSXCLK"),
-	PINCTRL_PIN(198, "ADR_COMPLETE"),
-	PINCTRL_PIN(199, "NMIB"),
-	PINCTRL_PIN(200, "SMIB"),
-	PINCTRL_PIN(201, "SSATA_DEVSLP_0"),
-	PINCTRL_PIN(202, "SSATA_DEVSLP_1"),
-	PINCTRL_PIN(203, "SSATA_DEVSLP_2"),
-	PINCTRL_PIN(204, "SSATAXPCIE0_SSATAGP0"),
+	PINCTRL_PIN(179, "FAN_TACH_0"),
+	PINCTRL_PIN(180, "FAN_TACH_1"),
+	PINCTRL_PIN(181, "FAN_TACH_2"),
+	PINCTRL_PIN(182, "FAN_TACH_3"),
+	PINCTRL_PIN(183, "FAN_TACH_4"),
+	PINCTRL_PIN(184, "FAN_TACH_5"),
+	PINCTRL_PIN(185, "FAN_TACH_6"),
+	PINCTRL_PIN(186, "FAN_TACH_7"),
+	PINCTRL_PIN(187, "FAN_PWM_0"),
+	PINCTRL_PIN(188, "FAN_PWM_1"),
+	PINCTRL_PIN(189, "FAN_PWM_2"),
+	PINCTRL_PIN(190, "FAN_PWM_3"),
+	PINCTRL_PIN(191, "GSXDOUT"),
+	PINCTRL_PIN(192, "GSXSLOAD"),
+	PINCTRL_PIN(193, "GSXDIN"),
+	PINCTRL_PIN(194, "GSXSRESETB"),
+	PINCTRL_PIN(195, "GSXCLK"),
+	PINCTRL_PIN(196, "ADR_COMPLETE"),
+	PINCTRL_PIN(197, "NMIB"),
+	PINCTRL_PIN(198, "SMIB"),
+	PINCTRL_PIN(199, "SSATA_DEVSLP_0"),
+	PINCTRL_PIN(200, "SSATA_DEVSLP_1"),
+	PINCTRL_PIN(201, "SSATA_DEVSLP_2"),
+	PINCTRL_PIN(202, "SSATAXPCIE0_SSATAGP0"),
 	/* GPP_H */
-	PINCTRL_PIN(205, "SRCCLKREQB_6"),
-	PINCTRL_PIN(206, "SRCCLKREQB_7"),
-	PINCTRL_PIN(207, "SRCCLKREQB_8"),
-	PINCTRL_PIN(208, "SRCCLKREQB_9"),
-	PINCTRL_PIN(209, "SRCCLKREQB_10"),
-	PINCTRL_PIN(210, "SRCCLKREQB_11"),
-	PINCTRL_PIN(211, "SRCCLKREQB_12"),
-	PINCTRL_PIN(212, "SRCCLKREQB_13"),
-	PINCTRL_PIN(213, "SRCCLKREQB_14"),
-	PINCTRL_PIN(214, "SRCCLKREQB_15"),
-	PINCTRL_PIN(215, "SML2CLK"),
-	PINCTRL_PIN(216, "SML2DATA"),
-	PINCTRL_PIN(217, "SML2ALERTB"),
-	PINCTRL_PIN(218, "SML3CLK"),
-	PINCTRL_PIN(219, "SML3DATA"),
-	PINCTRL_PIN(220, "SML3ALERTB"),
-	PINCTRL_PIN(221, "SML4CLK"),
-	PINCTRL_PIN(222, "SML4DATA"),
-	PINCTRL_PIN(223, "SML4ALERTB"),
-	PINCTRL_PIN(224, "SSATAXPCIE1_SSATAGP1"),
-	PINCTRL_PIN(225, "SSATAXPCIE2_SSATAGP2"),
-	PINCTRL_PIN(226, "SSATAXPCIE3_SSATAGP3"),
-	PINCTRL_PIN(227, "SSATAXPCIE4_SSATAGP4"),
-	PINCTRL_PIN(228, "SSATAXPCIE5_SSATAGP5"),
+	PINCTRL_PIN(203, "SRCCLKREQB_6"),
+	PINCTRL_PIN(204, "SRCCLKREQB_7"),
+	PINCTRL_PIN(205, "SRCCLKREQB_8"),
+	PINCTRL_PIN(206, "SRCCLKREQB_9"),
+	PINCTRL_PIN(207, "SRCCLKREQB_10"),
+	PINCTRL_PIN(208, "SRCCLKREQB_11"),
+	PINCTRL_PIN(209, "SRCCLKREQB_12"),
+	PINCTRL_PIN(210, "SRCCLKREQB_13"),
+	PINCTRL_PIN(211, "SRCCLKREQB_14"),
+	PINCTRL_PIN(212, "SRCCLKREQB_15"),
+	PINCTRL_PIN(213, "SML2CLK"),
+	PINCTRL_PIN(214, "SML2DATA"),
+	PINCTRL_PIN(215, "SML2ALERTB"),
+	PINCTRL_PIN(216, "SML3CLK"),
+	PINCTRL_PIN(217, "SML3DATA"),
+	PINCTRL_PIN(218, "SML3ALERTB"),
+	PINCTRL_PIN(219, "SML4CLK"),
+	PINCTRL_PIN(220, "SML4DATA"),
+	PINCTRL_PIN(221, "SML4ALERTB"),
+	PINCTRL_PIN(222, "SSATAXPCIE1_SSATAGP1"),
+	PINCTRL_PIN(223, "SSATAXPCIE2_SSATAGP2"),
+	PINCTRL_PIN(224, "SSATAXPCIE3_SSATAGP3"),
+	PINCTRL_PIN(225, "SSATAXPCIE4_SSATAGP4"),
+	PINCTRL_PIN(226, "SSATAXPCIE5_SSATAGP5"),
 	/* GPP_L */
+	PINCTRL_PIN(227, "GPP_L_0"),
+	PINCTRL_PIN(228, "EC_CSME_INTR_OUT"),
 	PINCTRL_PIN(229, "VISA2CH0_D0"),
 	PINCTRL_PIN(230, "VISA2CH0_D1"),
 	PINCTRL_PIN(231, "VISA2CH0_D2"),
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/intel/pinctrl-merrifield.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/intel/pinctrl-merrifield.c
@@ -741,6 +741,10 @@
 		mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
 		bits |= BUFCFG_PU_EN;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 20000;
+
 		switch (arg) {
 		case 50000:
 			bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;
@@ -761,6 +765,10 @@
 		mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
 		bits |= BUFCFG_PD_EN;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 20000;
+
 		switch (arg) {
 		case 50000:
 			bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/intel/pinctrl-sunrisepoint.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/intel/pinctrl-sunrisepoint.c
@@ -15,17 +15,18 @@
 
 #include "pinctrl-intel.h"
 
-#define SPT_PAD_OWN	0x020
-#define SPT_PADCFGLOCK	0x0a0
-#define SPT_HOSTSW_OWN	0x0d0
-#define SPT_GPI_IS	0x100
-#define SPT_GPI_IE	0x120
+#define SPT_PAD_OWN		0x020
+#define SPT_H_PADCFGLOCK	0x090
+#define SPT_LP_PADCFGLOCK	0x0a0
+#define SPT_HOSTSW_OWN		0x0d0
+#define SPT_GPI_IS		0x100
+#define SPT_GPI_IE		0x120
 
 #define SPT_COMMUNITY(b, s, e)				\
 	{						\
 		.barno = (b),				\
 		.padown_offset = SPT_PAD_OWN,		\
-		.padcfglock_offset = SPT_PADCFGLOCK,	\
+		.padcfglock_offset = SPT_LP_PADCFGLOCK,	\
 		.hostown_offset = SPT_HOSTSW_OWN,	\
 		.is_offset = SPT_GPI_IS,		\
 		.ie_offset = SPT_GPI_IE,		\
@@ -47,8 +48,9 @@
 	{						\
 		.barno = (b),				\
 		.padown_offset = SPT_PAD_OWN,		\
-		.padcfglock_offset = SPT_PADCFGLOCK,	\
+		.padcfglock_offset = SPT_H_PADCFGLOCK,	\
 		.hostown_offset = SPT_HOSTSW_OWN,	\
+		.is_offset = SPT_GPI_IS,		\
 		.ie_offset = SPT_GPI_IE,		\
 		.pin_base = (s),			\
 		.npins = ((e) - (s) + 1),		\
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/meson/pinctrl-meson-gxl.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/meson/pinctrl-meson-gxl.c
@@ -147,8 +147,8 @@
 static const unsigned int sdio_d1_pins[]	= { GPIOX_1 };
 static const unsigned int sdio_d2_pins[]	= { GPIOX_2 };
 static const unsigned int sdio_d3_pins[]	= { GPIOX_3 };
-static const unsigned int sdio_cmd_pins[]	= { GPIOX_4 };
-static const unsigned int sdio_clk_pins[]	= { GPIOX_5 };
+static const unsigned int sdio_clk_pins[]	= { GPIOX_4 };
+static const unsigned int sdio_cmd_pins[]	= { GPIOX_5 };
 static const unsigned int sdio_irq_pins[]	= { GPIOX_7 };
 
 static const unsigned int nand_ce0_pins[]	= { BOOT_8 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/meson/pinctrl-meson.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/meson/pinctrl-meson.c
@@ -441,6 +441,7 @@
 		return ret;
 
 	meson_calc_reg_and_bit(bank, pin, REG_DS, &reg, &bit);
+	bit = bit << 1;
 
 	ret = regmap_read(pc->reg_ds, reg, &val);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -595,10 +595,10 @@
 		regmap_read(info->regmap, in_reg, &in_val);
 
 		/* Set initial polarity based on current input level. */
-		if (in_val & d->mask)
-			val |= d->mask;		/* falling */
+		if (in_val & BIT(d->hwirq % GPIO_PER_REG))
+			val |= BIT(d->hwirq % GPIO_PER_REG);	/* falling */
 		else
-			val &= ~d->mask;	/* rising */
+			val &= ~(BIT(d->hwirq % GPIO_PER_REG));	/* rising */
 		break;
 	}
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
@@ -414,7 +414,7 @@
 		 MPP_VAR_FUNCTION(0x1, "i2c0", "sck",        V_98DX3236_PLUS)),
 	MPP_MODE(15,
 		 MPP_VAR_FUNCTION(0x0, "gpio", NULL,         V_98DX3236_PLUS),
-		 MPP_VAR_FUNCTION(0x4, "i2c0", "sda",        V_98DX3236_PLUS)),
+		 MPP_VAR_FUNCTION(0x1, "i2c0", "sda",        V_98DX3236_PLUS)),
 	MPP_MODE(16,
 		 MPP_VAR_FUNCTION(0x0, "gpo", NULL,          V_98DX3236_PLUS),
 		 MPP_VAR_FUNCTION(0x4, "dev", "oe",          V_98DX3236_PLUS)),
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-amd.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-amd.c
@@ -153,7 +153,7 @@
 			pin_reg |= BIT(DB_TMR_OUT_UNIT_OFF);
 			pin_reg &= ~BIT(DB_TMR_LARGE_OFF);
 		} else if (debounce < 250000) {
-			time = debounce / 15600;
+			time = debounce / 15625;
 			pin_reg |= time & DB_TMR_OUT_MASK;
 			pin_reg &= ~BIT(DB_TMR_OUT_UNIT_OFF);
 			pin_reg |= BIT(DB_TMR_LARGE_OFF);
@@ -163,14 +163,14 @@
 			pin_reg |= BIT(DB_TMR_OUT_UNIT_OFF);
 			pin_reg |= BIT(DB_TMR_LARGE_OFF);
 		} else {
-			pin_reg &= ~DB_CNTRl_MASK;
+			pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF);
 			ret = -EINVAL;
 		}
 	} else {
 		pin_reg &= ~BIT(DB_TMR_OUT_UNIT_OFF);
 		pin_reg &= ~BIT(DB_TMR_LARGE_OFF);
 		pin_reg &= ~DB_TMR_OUT_MASK;
-		pin_reg &= ~DB_CNTRl_MASK;
+		pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF);
 	}
 	writel(pin_reg, gpio_dev->base + offset * 4);
 	raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
@@ -435,7 +435,6 @@
 		pin_reg &= ~BIT(LEVEL_TRIG_OFF);
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_HIGH << ACTIVE_LEVEL_OFF;
-		pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 
@@ -443,7 +442,6 @@
 		pin_reg &= ~BIT(LEVEL_TRIG_OFF);
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_LOW << ACTIVE_LEVEL_OFF;
-		pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 
@@ -451,7 +449,6 @@
 		pin_reg &= ~BIT(LEVEL_TRIG_OFF);
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= BOTH_EADGE << ACTIVE_LEVEL_OFF;
-		pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_edge_irq);
 		break;
 
@@ -459,8 +456,6 @@
 		pin_reg |= LEVEL_TRIGGER << LEVEL_TRIG_OFF;
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_HIGH << ACTIVE_LEVEL_OFF;
-		pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF);
-		pin_reg |= DB_TYPE_PRESERVE_LOW_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_level_irq);
 		break;
 
@@ -468,8 +463,6 @@
 		pin_reg |= LEVEL_TRIGGER << LEVEL_TRIG_OFF;
 		pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF);
 		pin_reg |= ACTIVE_LOW << ACTIVE_LEVEL_OFF;
-		pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF);
-		pin_reg |= DB_TYPE_PRESERVE_HIGH_GLITCH << DB_CNTRL_OFF;
 		irq_set_handler_locked(d, handle_level_irq);
 		break;
 
@@ -540,7 +533,8 @@
 	irqreturn_t ret = IRQ_NONE;
 	unsigned int i, irqnr;
 	unsigned long flags;
-	u32 *regs, regval;
+	u32 __iomem *regs;
+	u32  regval;
 	u64 status, mask;
 
 	/* Read the wake status */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-amd.h
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-amd.h
@@ -252,7 +252,7 @@
 	{
 		.name = "uart0",
 		.pins = uart0_pins,
-		.npins = 9,
+		.npins = 5,
 	},
 	{
 		.name = "uart1",
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-falcon.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-falcon.c
@@ -431,27 +431,31 @@
 
 	/* load and remap the pad resources of the different banks */
 	for_each_compatible_node(np, NULL, "lantiq,pad-falcon") {
-		struct platform_device *ppdev = of_find_device_by_node(np);
 		const __be32 *bank = of_get_property(np, "lantiq,bank", NULL);
 		struct resource res;
+		struct platform_device *ppdev;
 		u32 avail;
 		int pins;
 
 		if (!of_device_is_available(np))
 			continue;
 
-		if (!ppdev) {
-			dev_err(&pdev->dev, "failed to find pad pdev\n");
-			continue;
-		}
 		if (!bank || *bank >= PORTS)
 			continue;
 		if (of_address_to_resource(np, 0, &res))
 			continue;
+
+		ppdev = of_find_device_by_node(np);
+		if (!ppdev) {
+			dev_err(&pdev->dev, "failed to find pad pdev\n");
+			continue;
+		}
+
 		falcon_info.clk[*bank] = clk_get(&ppdev->dev, NULL);
+		put_device(&ppdev->dev);
 		if (IS_ERR(falcon_info.clk[*bank])) {
 			dev_err(&ppdev->dev, "failed to get clock\n");
-			of_node_put(np)
+			of_node_put(np);
 			return PTR_ERR(falcon_info.clk[*bank]);
 		}
 		falcon_info.membase[*bank] = devm_ioremap_resource(&pdev->dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-ingenic.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-ingenic.c
@@ -1378,7 +1378,7 @@
 static void ingenic_gpio_set_value(struct ingenic_gpio_chip *jzgc,
 				   u8 offset, int value)
 {
-	if (jzgc->jzpc->version >= ID_JZ4760)
+	if (jzgc->jzpc->version >= ID_JZ4770)
 		ingenic_gpio_set_bit(jzgc, JZ4760_GPIO_PAT0, offset, !!value);
 	else
 		ingenic_gpio_set_bit(jzgc, JZ4740_GPIO_DATA, offset, !!value);
@@ -1389,7 +1389,7 @@
 {
 	u8 reg1, reg2;
 
-	if (jzgc->jzpc->version >= ID_JZ4760) {
+	if (jzgc->jzpc->version >= ID_JZ4770) {
 		reg1 = JZ4760_GPIO_PAT1;
 		reg2 = JZ4760_GPIO_PAT0;
 	} else {
@@ -1464,7 +1464,7 @@
 	struct ingenic_gpio_chip *jzgc = gpiochip_get_data(gc);
 	int irq = irqd->hwirq;
 
-	if (jzgc->jzpc->version >= ID_JZ4760)
+	if (jzgc->jzpc->version >= ID_JZ4770)
 		ingenic_gpio_set_bit(jzgc, JZ4760_GPIO_INT, irq, true);
 	else
 		ingenic_gpio_set_bit(jzgc, JZ4740_GPIO_SELECT, irq, true);
@@ -1480,7 +1480,7 @@
 
 	ingenic_gpio_irq_mask(irqd);
 
-	if (jzgc->jzpc->version >= ID_JZ4760)
+	if (jzgc->jzpc->version >= ID_JZ4770)
 		ingenic_gpio_set_bit(jzgc, JZ4760_GPIO_INT, irq, false);
 	else
 		ingenic_gpio_set_bit(jzgc, JZ4740_GPIO_SELECT, irq, false);
@@ -1500,12 +1500,12 @@
 		 */
 		high = ingenic_gpio_get_value(jzgc, irq);
 		if (high)
-			irq_set_type(jzgc, irq, IRQ_TYPE_EDGE_FALLING);
+			irq_set_type(jzgc, irq, IRQ_TYPE_LEVEL_LOW);
 		else
-			irq_set_type(jzgc, irq, IRQ_TYPE_EDGE_RISING);
+			irq_set_type(jzgc, irq, IRQ_TYPE_LEVEL_HIGH);
 	}
 
-	if (jzgc->jzpc->version >= ID_JZ4760)
+	if (jzgc->jzpc->version >= ID_JZ4770)
 		ingenic_gpio_set_bit(jzgc, JZ4760_GPIO_FLAG, irq, false);
 	else
 		ingenic_gpio_set_bit(jzgc, JZ4740_GPIO_DATA, irq, true);
@@ -1538,7 +1538,7 @@
 		 */
 		bool high = ingenic_gpio_get_value(jzgc, irqd->hwirq);
 
-		type = high ? IRQ_TYPE_EDGE_FALLING : IRQ_TYPE_EDGE_RISING;
+		type = high ? IRQ_TYPE_LEVEL_LOW : IRQ_TYPE_LEVEL_HIGH;
 	}
 
 	irq_set_type(jzgc, irqd->hwirq, type);
@@ -1562,7 +1562,7 @@
 
 	chained_irq_enter(irq_chip, desc);
 
-	if (jzgc->jzpc->version >= ID_JZ4760)
+	if (jzgc->jzpc->version >= ID_JZ4770)
 		flag = ingenic_gpio_read_reg(jzgc, JZ4760_GPIO_FLAG);
 	else
 		flag = ingenic_gpio_read_reg(jzgc, JZ4740_GPIO_FLAG);
@@ -1643,8 +1643,9 @@
 	struct ingenic_pinctrl *jzpc = jzgc->jzpc;
 	unsigned int pin = gc->base + offset;
 
-	if (jzpc->version >= ID_JZ4760)
-		return ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1);
+	if (jzpc->version >= ID_JZ4770)
+		return ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_INT) ||
+			ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1);
 
 	if (ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_SELECT))
 		return true;
@@ -1675,7 +1676,7 @@
 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, func & 0x2);
 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_PAT0, func & 0x1);
 		ingenic_shadow_config_pin_load(jzpc, pin);
-	} else if (jzpc->version >= ID_JZ4760) {
+	} else if (jzpc->version >= ID_JZ4770) {
 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_INT, false);
 		ingenic_config_pin(jzpc, pin, GPIO_MSK, false);
 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, func & 0x2);
@@ -1683,7 +1684,7 @@
 	} else {
 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_FUNC, true);
 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_TRIG, func & 0x2);
-		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_SELECT, func > 0);
+		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_SELECT, func & 0x1);
 	}
 
 	return 0;
@@ -1733,7 +1734,7 @@
 		ingenic_shadow_config_pin(jzpc, pin, GPIO_MSK, true);
 		ingenic_shadow_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, input);
 		ingenic_shadow_config_pin_load(jzpc, pin);
-	} else if (jzpc->version >= ID_JZ4760) {
+	} else if (jzpc->version >= ID_JZ4770) {
 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_INT, false);
 		ingenic_config_pin(jzpc, pin, GPIO_MSK, true);
 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PAT1, input);
@@ -1763,7 +1764,7 @@
 	unsigned int offt = pin / PINS_PER_GPIO_CHIP;
 	bool pull;
 
-	if (jzpc->version >= ID_JZ4760)
+	if (jzpc->version >= ID_JZ4770)
 		pull = !ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PEN);
 	else
 		pull = !ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_PULL_DIS);
@@ -1795,7 +1796,7 @@
 static void ingenic_set_bias(struct ingenic_pinctrl *jzpc,
 		unsigned int pin, bool enabled)
 {
-	if (jzpc->version >= ID_JZ4760)
+	if (jzpc->version >= ID_JZ4770)
 		ingenic_config_pin(jzpc, pin, JZ4760_GPIO_PEN, !enabled);
 	else
 		ingenic_config_pin(jzpc, pin, JZ4740_GPIO_PULL_DIS, !enabled);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-mcp23s08.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-mcp23s08.c
@@ -122,7 +122,7 @@
 	.max_register = MCP_OLAT,
 };
 
-static const struct reg_default mcp23x16_defaults[] = {
+static const struct reg_default mcp23x17_defaults[] = {
 	{.reg = MCP_IODIR << 1,		.def = 0xffff},
 	{.reg = MCP_IPOL << 1,		.def = 0x0000},
 	{.reg = MCP_GPINTEN << 1,	.def = 0x0000},
@@ -133,23 +133,23 @@
 	{.reg = MCP_OLAT << 1,		.def = 0x0000},
 };
 
-static const struct regmap_range mcp23x16_volatile_range = {
+static const struct regmap_range mcp23x17_volatile_range = {
 	.range_min = MCP_INTF << 1,
 	.range_max = MCP_GPIO << 1,
 };
 
-static const struct regmap_access_table mcp23x16_volatile_table = {
-	.yes_ranges = &mcp23x16_volatile_range,
+static const struct regmap_access_table mcp23x17_volatile_table = {
+	.yes_ranges = &mcp23x17_volatile_range,
 	.n_yes_ranges = 1,
 };
 
-static const struct regmap_range mcp23x16_precious_range = {
-	.range_min = MCP_GPIO << 1,
+static const struct regmap_range mcp23x17_precious_range = {
+	.range_min = MCP_INTCAP << 1,
 	.range_max = MCP_GPIO << 1,
 };
 
-static const struct regmap_access_table mcp23x16_precious_table = {
-	.yes_ranges = &mcp23x16_precious_range,
+static const struct regmap_access_table mcp23x17_precious_table = {
+	.yes_ranges = &mcp23x17_precious_range,
 	.n_yes_ranges = 1,
 };
 
@@ -159,10 +159,10 @@
 
 	.reg_stride = 2,
 	.max_register = MCP_OLAT << 1,
-	.volatile_table = &mcp23x16_volatile_table,
-	.precious_table = &mcp23x16_precious_table,
-	.reg_defaults = mcp23x16_defaults,
-	.num_reg_defaults = ARRAY_SIZE(mcp23x16_defaults),
+	.volatile_table = &mcp23x17_volatile_table,
+	.precious_table = &mcp23x17_precious_table,
+	.reg_defaults = mcp23x17_defaults,
+	.num_reg_defaults = ARRAY_SIZE(mcp23x17_defaults),
 	.cache_type = REGCACHE_FLAT,
 	.val_format_endian = REGMAP_ENDIAN_LITTLE,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-ocelot.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-ocelot.c
@@ -711,11 +711,12 @@
 	struct irq_chip *parent_chip = irq_desc_get_chip(desc);
 	struct gpio_chip *chip = irq_desc_get_handler_data(desc);
 	struct ocelot_pinctrl *info = gpiochip_get_data(chip);
+	unsigned int id_reg = OCELOT_GPIO_INTR_IDENT * info->stride;
 	unsigned int reg = 0, irq, i;
 	unsigned long irqs;
 
 	for (i = 0; i < info->stride; i++) {
-		regmap_read(info->map, OCELOT_GPIO_INTR_IDENT + 4 * i, &reg);
+		regmap_read(info->map, id_reg + 4 * i, &reg);
 		if (!reg)
 			continue;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-rockchip.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-rockchip.c
@@ -506,8 +506,8 @@
 	}
 
 	map_num += grp->npins;
-	new_map = devm_kcalloc(pctldev->dev, map_num, sizeof(*new_map),
-								GFP_KERNEL);
+
+	new_map = kcalloc(map_num, sizeof(*new_map), GFP_KERNEL);
 	if (!new_map)
 		return -ENOMEM;
 
@@ -517,7 +517,7 @@
 	/* create mux map */
 	parent = of_get_parent(np);
 	if (!parent) {
-		devm_kfree(pctldev->dev, new_map);
+		kfree(new_map);
 		return -EINVAL;
 	}
 	new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
@@ -544,6 +544,7 @@
 static void rockchip_dt_free_map(struct pinctrl_dev *pctldev,
 				    struct pinctrl_map *map, unsigned num_maps)
 {
+	kfree(map);
 }
 
 static const struct pinctrl_ops rockchip_pctrl_ops = {
@@ -2810,7 +2811,9 @@
 	if (!bank->domain)
 		return -ENXIO;
 
+	clk_enable(bank->clk);
 	virq = irq_create_mapping(bank->domain, offset);
+	clk_disable(bank->clk);
 
 	return (virq) ? : -ENXIO;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-rza1.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-rza1.c
@@ -418,7 +418,7 @@
 };
 
 static const struct rza1_swio_entry rza1l_swio_entries[] = {
-	[0] = { ARRAY_SIZE(rza1h_swio_pins), rza1h_swio_pins },
+	[0] = { ARRAY_SIZE(rza1l_swio_pins), rza1l_swio_pins },
 };
 
 /* RZ/A1L (r7s72102x) pinmux flags table */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-rza2.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-rza2.c
@@ -213,8 +213,8 @@
 	"PC_0", "PC_1", "PC_2", "PC_3", "PC_4", "PC_5", "PC_6", "PC_7",
 	"PD_0", "PD_1", "PD_2", "PD_3", "PD_4", "PD_5", "PD_6", "PD_7",
 	"PE_0", "PE_1", "PE_2", "PE_3", "PE_4", "PE_5", "PE_6", "PE_7",
-	"PF_0", "PF_1", "PF_2", "PF_3", "P0_4", "PF_5", "PF_6", "PF_7",
-	"PG_0", "PG_1", "PG_2", "P0_3", "PG_4", "PG_5", "PG_6", "PG_7",
+	"PF_0", "PF_1", "PF_2", "PF_3", "PF_4", "PF_5", "PF_6", "PF_7",
+	"PG_0", "PG_1", "PG_2", "PG_3", "PG_4", "PG_5", "PG_6", "PG_7",
 	"PH_0", "PH_1", "PH_2", "PH_3", "PH_4", "PH_5", "PH_6", "PH_7",
 	/* port I does not exist */
 	"PJ_0", "PJ_1", "PJ_2", "PJ_3", "PJ_4", "PJ_5", "PJ_6", "PJ_7",
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinctrl-single.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinctrl-single.c
@@ -916,7 +916,7 @@
 
 	/* If pinconf isn't supported, don't parse properties in below. */
 	if (!PCS_HAS_PINCONF)
-		return 0;
+		return -ENOTSUPP;
 
 	/* cacluate how much properties are supported in current node */
 	for (i = 0; i < ARRAY_SIZE(prop2); i++) {
@@ -928,7 +928,7 @@
 			nconfs++;
 	}
 	if (!nconfs)
-		return 0;
+		return -ENOTSUPP;
 
 	func->conf = devm_kcalloc(pcs->dev,
 				  nconfs, sizeof(struct pcs_conf_vals),
@@ -1056,9 +1056,12 @@
 
 	if (PCS_HAS_PINCONF && function) {
 		res = pcs_parse_pinconf(pcs, np, function, map);
-		if (res)
+		if (res == 0)
+			*num_maps = 2;
+		else if (res == -ENOTSUPP)
+			*num_maps = 1;
+		else
 			goto free_pingroups;
-		*num_maps = 2;
 	} else {
 		*num_maps = 1;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/pinmux.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/pinmux.c
@@ -85,7 +85,7 @@
 	const struct pinmux_ops *ops = pctldev->desc->pmxops;
 
 	/* Can't inspect pin, assume it can be used */
-	if (!desc)
+	if (!desc || !ops)
 		return true;
 
 	if (ops->strict && desc->mux_usecount)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/qcom/pinctrl-msm.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -688,7 +688,7 @@
 
 		pol = msm_readl_intr_cfg(pctrl, g);
 		pol ^= BIT(g->intr_polarity_bit);
-		msm_writel_intr_cfg(val, pctrl, g);
+		msm_writel_intr_cfg(pol, pctrl, g);
 
 		val2 = msm_readl_io(pctrl, g) & BIT(g->in_bit);
 		intstat = msm_readl_intr_status(pctrl, g);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/qcom/pinctrl-sc7180.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/qcom/pinctrl-sc7180.c
@@ -77,6 +77,7 @@
 		.intr_cfg_reg = 0,			\
 		.intr_status_reg = 0,			\
 		.intr_target_reg = 0,			\
+		.tile = SOUTH,				\
 		.mux_bit = -1,				\
 		.pull_bit = pull,			\
 		.drv_bit = drv,				\
@@ -102,6 +103,7 @@
 		.intr_cfg_reg = 0,			\
 		.intr_status_reg = 0,			\
 		.intr_target_reg = 0,			\
+		.tile = SOUTH,				\
 		.mux_bit = -1,				\
 		.pull_bit = 3,				\
 		.drv_bit = 0,				\
@@ -1087,14 +1089,14 @@
 	[116] = PINGROUP(116, WEST, qup04, qup04, _, _, _, _, _, _, _),
 	[117] = PINGROUP(117, WEST, dp_hot, _, _, _, _, _, _, _, _),
 	[118] = PINGROUP(118, WEST, _, _, _, _, _, _, _, _, _),
-	[119] = UFS_RESET(ufs_reset, 0x97f000),
-	[120] = SDC_QDSD_PINGROUP(sdc1_rclk, 0x97a000, 15, 0),
-	[121] = SDC_QDSD_PINGROUP(sdc1_clk, 0x97a000, 13, 6),
-	[122] = SDC_QDSD_PINGROUP(sdc1_cmd, 0x97a000, 11, 3),
-	[123] = SDC_QDSD_PINGROUP(sdc1_data, 0x97a000, 9, 0),
-	[124] = SDC_QDSD_PINGROUP(sdc2_clk, 0x97b000, 14, 6),
-	[125] = SDC_QDSD_PINGROUP(sdc2_cmd, 0x97b000, 11, 3),
-	[126] = SDC_QDSD_PINGROUP(sdc2_data, 0x97b000, 9, 0),
+	[119] = UFS_RESET(ufs_reset, 0x7f000),
+	[120] = SDC_QDSD_PINGROUP(sdc1_rclk, 0x7a000, 15, 0),
+	[121] = SDC_QDSD_PINGROUP(sdc1_clk, 0x7a000, 13, 6),
+	[122] = SDC_QDSD_PINGROUP(sdc1_cmd, 0x7a000, 11, 3),
+	[123] = SDC_QDSD_PINGROUP(sdc1_data, 0x7a000, 9, 0),
+	[124] = SDC_QDSD_PINGROUP(sdc2_clk, 0x7b000, 14, 6),
+	[125] = SDC_QDSD_PINGROUP(sdc2_cmd, 0x7b000, 11, 3),
+	[126] = SDC_QDSD_PINGROUP(sdc2_data, 0x7b000, 9, 0),
 };
 
 static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
@@ -170,6 +170,7 @@
 	struct regmap	*map;
 	struct pinctrl_dev *ctrl;
 	struct gpio_chip chip;
+	struct irq_chip irq;
 };
 
 static const struct pinconf_generic_params pmic_gpio_bindings[] = {
@@ -917,16 +918,6 @@
 	return 0;
 }
 
-static struct irq_chip pmic_gpio_irq_chip = {
-	.name = "spmi-gpio",
-	.irq_ack = irq_chip_ack_parent,
-	.irq_mask = irq_chip_mask_parent,
-	.irq_unmask = irq_chip_unmask_parent,
-	.irq_set_type = irq_chip_set_type_parent,
-	.irq_set_wake = irq_chip_set_wake_parent,
-	.flags = IRQCHIP_MASK_ON_SUSPEND,
-};
-
 static int pmic_gpio_domain_translate(struct irq_domain *domain,
 				      struct irq_fwspec *fwspec,
 				      unsigned long *hwirq,
@@ -1053,8 +1044,16 @@
 	if (!parent_domain)
 		return -ENXIO;
 
+	state->irq.name = "spmi-gpio",
+	state->irq.irq_ack = irq_chip_ack_parent,
+	state->irq.irq_mask = irq_chip_mask_parent,
+	state->irq.irq_unmask = irq_chip_unmask_parent,
+	state->irq.irq_set_type = irq_chip_set_type_parent,
+	state->irq.irq_set_wake = irq_chip_set_wake_parent,
+	state->irq.flags = IRQCHIP_MASK_ON_SUSPEND,
+
 	girq = &state->chip.irq;
-	girq->chip = &pmic_gpio_irq_chip;
+	girq->chip = &state->irq;
 	girq->default_type = IRQ_TYPE_NONE;
 	girq->handler = handle_level_irq;
 	girq->fwnode = of_node_to_fwnode(state->dev->of_node);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -40,6 +40,8 @@
 	u32 eint_pend;
 	u32 eint_wake_mask_value;
 	u32 eint_wake_mask_reg;
+	void (*set_eint_wakeup_mask)(struct samsung_pinctrl_drv_data *drvdata,
+				     struct exynos_irq_chip *irq_chip);
 };
 
 static inline struct exynos_irq_chip *to_exynos_irq_chip(struct irq_chip *chip)
@@ -265,6 +267,7 @@
 	u32 eint_con;
 	u32 eint_fltcon0;
 	u32 eint_fltcon1;
+	u32 eint_mask;
 };
 
 /*
@@ -342,6 +345,47 @@
 	return 0;
 }
 
+static void
+exynos_pinctrl_set_eint_wakeup_mask(struct samsung_pinctrl_drv_data *drvdata,
+				    struct exynos_irq_chip *irq_chip)
+{
+	struct regmap *pmu_regs;
+
+	if (!drvdata->retention_ctrl || !drvdata->retention_ctrl->priv) {
+		dev_warn(drvdata->dev,
+			 "No retention data configured bank with external wakeup interrupt. Wake-up mask will not be set.\n");
+		return;
+	}
+
+	pmu_regs = drvdata->retention_ctrl->priv;
+	dev_info(drvdata->dev,
+		 "Setting external wakeup interrupt mask: 0x%x\n",
+		 irq_chip->eint_wake_mask_value);
+
+	regmap_write(pmu_regs, irq_chip->eint_wake_mask_reg,
+		     irq_chip->eint_wake_mask_value);
+}
+
+static void
+s5pv210_pinctrl_set_eint_wakeup_mask(struct samsung_pinctrl_drv_data *drvdata,
+				    struct exynos_irq_chip *irq_chip)
+
+{
+	void __iomem *clk_base;
+
+	if (!drvdata->retention_ctrl || !drvdata->retention_ctrl->priv) {
+		dev_warn(drvdata->dev,
+			 "No retention data configured bank with external wakeup interrupt. Wake-up mask will not be set.\n");
+		return;
+	}
+
+
+	clk_base = (void __iomem *) drvdata->retention_ctrl->priv;
+
+	__raw_writel(irq_chip->eint_wake_mask_value,
+		     clk_base + irq_chip->eint_wake_mask_reg);
+}
+
 /*
  * irq_chip for wakeup interrupts
  */
@@ -360,8 +404,9 @@
 	.eint_mask = EXYNOS_WKUP_EMASK_OFFSET,
 	.eint_pend = EXYNOS_WKUP_EPEND_OFFSET,
 	.eint_wake_mask_value = EXYNOS_EINT_WAKEUP_MASK_DISABLED,
-	/* Only difference with exynos4210_wkup_irq_chip: */
+	/* Only differences with exynos4210_wkup_irq_chip: */
 	.eint_wake_mask_reg = S5PV210_EINT_WAKEUP_MASK,
+	.set_eint_wakeup_mask = s5pv210_pinctrl_set_eint_wakeup_mask,
 };
 
 static const struct exynos_irq_chip exynos4210_wkup_irq_chip __initconst = {
@@ -380,6 +425,7 @@
 	.eint_pend = EXYNOS_WKUP_EPEND_OFFSET,
 	.eint_wake_mask_value = EXYNOS_EINT_WAKEUP_MASK_DISABLED,
 	.eint_wake_mask_reg = EXYNOS_EINT_WAKEUP_MASK,
+	.set_eint_wakeup_mask = exynos_pinctrl_set_eint_wakeup_mask,
 };
 
 static const struct exynos_irq_chip exynos7_wkup_irq_chip __initconst = {
@@ -398,6 +444,7 @@
 	.eint_pend = EXYNOS7_WKUP_EPEND_OFFSET,
 	.eint_wake_mask_value = EXYNOS_EINT_WAKEUP_MASK_DISABLED,
 	.eint_wake_mask_reg = EXYNOS5433_EINT_WAKEUP_MASK,
+	.set_eint_wakeup_mask = exynos_pinctrl_set_eint_wakeup_mask,
 };
 
 /* list of external wakeup controllers supported */
@@ -486,8 +533,10 @@
 		if (match) {
 			irq_chip = kmemdup(match->data,
 				sizeof(*irq_chip), GFP_KERNEL);
-			if (!irq_chip)
+			if (!irq_chip) {
+				of_node_put(np);
 				return -ENOMEM;
+			}
 			wkup_np = np;
 			break;
 		}
@@ -504,6 +553,7 @@
 				bank->nr_pins, &exynos_eint_irqd_ops, bank);
 		if (!bank->irq_domain) {
 			dev_err(dev, "wkup irq domain add failed\n");
+			of_node_put(wkup_np);
 			return -ENXIO;
 		}
 
@@ -518,8 +568,10 @@
 		weint_data = devm_kcalloc(dev,
 					  bank->nr_pins, sizeof(*weint_data),
 					  GFP_KERNEL);
-		if (!weint_data)
+		if (!weint_data) {
+			of_node_put(wkup_np);
 			return -ENOMEM;
+		}
 
 		for (idx = 0; idx < bank->nr_pins; ++idx) {
 			irq = irq_of_parse_and_map(bank->of_node, idx);
@@ -536,10 +588,13 @@
 		}
 	}
 
-	if (!muxed_banks)
+	if (!muxed_banks) {
+		of_node_put(wkup_np);
 		return 0;
+	}
 
 	irq = irq_of_parse_and_map(wkup_np, 0);
+	of_node_put(wkup_np);
 	if (!irq) {
 		dev_err(dev, "irq number for muxed EINTs not found\n");
 		return 0;
@@ -566,27 +621,6 @@
 	return 0;
 }
 
-static void
-exynos_pinctrl_set_eint_wakeup_mask(struct samsung_pinctrl_drv_data *drvdata,
-				    struct exynos_irq_chip *irq_chip)
-{
-	struct regmap *pmu_regs;
-
-	if (!drvdata->retention_ctrl || !drvdata->retention_ctrl->priv) {
-		dev_warn(drvdata->dev,
-			 "No retention data configured bank with external wakeup interrupt. Wake-up mask will not be set.\n");
-		return;
-	}
-
-	pmu_regs = drvdata->retention_ctrl->priv;
-	dev_info(drvdata->dev,
-		 "Setting external wakeup interrupt mask: 0x%x\n",
-		 irq_chip->eint_wake_mask_value);
-
-	regmap_write(pmu_regs, irq_chip->eint_wake_mask_reg,
-		     irq_chip->eint_wake_mask_value);
-}
-
 static void exynos_pinctrl_suspend_bank(
 				struct samsung_pinctrl_drv_data *drvdata,
 				struct samsung_pin_bank *bank)
@@ -600,10 +634,13 @@
 						+ 2 * bank->eint_offset);
 	save->eint_fltcon1 = readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET
 						+ 2 * bank->eint_offset + 4);
+	save->eint_mask = readl(regs + bank->irq_chip->eint_mask
+						+ bank->eint_offset);
 
 	pr_debug("%s: save     con %#010x\n", bank->name, save->eint_con);
 	pr_debug("%s: save fltcon0 %#010x\n", bank->name, save->eint_fltcon0);
 	pr_debug("%s: save fltcon1 %#010x\n", bank->name, save->eint_fltcon1);
+	pr_debug("%s: save    mask %#010x\n", bank->name, save->eint_mask);
 }
 
 void exynos_pinctrl_suspend(struct samsung_pinctrl_drv_data *drvdata)
@@ -618,8 +655,8 @@
 		else if (bank->eint_type == EINT_TYPE_WKUP) {
 			if (!irq_chip) {
 				irq_chip = bank->irq_chip;
-				exynos_pinctrl_set_eint_wakeup_mask(drvdata,
-								    irq_chip);
+				irq_chip->set_eint_wakeup_mask(drvdata,
+							       irq_chip);
 			} else if (bank->irq_chip != irq_chip) {
 				dev_warn(drvdata->dev,
 					 "More than one external wakeup interrupt chip configured (bank: %s). This is not supported by hardware nor by driver.\n",
@@ -645,6 +682,9 @@
 	pr_debug("%s: fltcon1 %#010x => %#010x\n", bank->name,
 			readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET
 			+ 2 * bank->eint_offset + 4), save->eint_fltcon1);
+	pr_debug("%s:    mask %#010x => %#010x\n", bank->name,
+			readl(regs + bank->irq_chip->eint_mask
+			+ bank->eint_offset), save->eint_mask);
 
 	writel(save->eint_con, regs + EXYNOS_GPIO_ECON_OFFSET
 						+ bank->eint_offset);
@@ -652,6 +692,8 @@
 						+ 2 * bank->eint_offset);
 	writel(save->eint_fltcon1, regs + EXYNOS_GPIO_EFLTCON_OFFSET
 						+ 2 * bank->eint_offset + 4);
+	writel(save->eint_mask, regs + bank->irq_chip->eint_mask
+						+ bank->eint_offset);
 }
 
 void exynos_pinctrl_resume(struct samsung_pinctrl_drv_data *drvdata)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
@@ -490,8 +490,10 @@
 		return -ENODEV;
 
 	eint_data = devm_kzalloc(dev, sizeof(*eint_data), GFP_KERNEL);
-	if (!eint_data)
+	if (!eint_data) {
+		of_node_put(eint_np);
 		return -ENOMEM;
+	}
 
 	eint_data->drvdata = d;
 
@@ -503,12 +505,14 @@
 		irq = irq_of_parse_and_map(eint_np, i);
 		if (!irq) {
 			dev_err(dev, "failed to get wakeup EINT IRQ %d\n", i);
+			of_node_put(eint_np);
 			return -ENXIO;
 		}
 
 		eint_data->parents[i] = irq;
 		irq_set_chained_handler_and_data(irq, handlers[i], eint_data);
 	}
+	of_node_put(eint_np);
 
 	bank = d->pin_banks;
 	for (i = 0; i < d->nr_banks; ++i, ++bank) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
@@ -704,8 +704,10 @@
 		return -ENODEV;
 
 	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
-	if (!data)
+	if (!data) {
+		of_node_put(eint0_np);
 		return -ENOMEM;
+	}
 	data->drvdata = d;
 
 	for (i = 0; i < NUM_EINT0_IRQ; ++i) {
@@ -714,6 +716,7 @@
 		irq = irq_of_parse_and_map(eint0_np, i);
 		if (!irq) {
 			dev_err(dev, "failed to get wakeup EINT IRQ %d\n", i);
+			of_node_put(eint0_np);
 			return -ENXIO;
 		}
 
@@ -721,6 +724,7 @@
 						 s3c64xx_eint0_handlers[i],
 						 data);
 	}
+	of_node_put(eint0_np);
 
 	bank = d->pin_banks;
 	for (i = 0; i < d->nr_banks; ++i, ++bank) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/samsung/pinctrl-samsung.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/samsung/pinctrl-samsung.c
@@ -272,6 +272,7 @@
 						&reserved_maps, num_maps);
 		if (ret < 0) {
 			samsung_dt_free_map(pctldev, *map, *num_maps);
+			of_node_put(np);
 			return ret;
 		}
 	}
@@ -785,8 +786,10 @@
 		if (!of_get_child_count(cfg_np)) {
 			ret = samsung_pinctrl_create_function(dev, drvdata,
 							cfg_np, func);
-			if (ret < 0)
+			if (ret < 0) {
+				of_node_put(cfg_np);
 				return ERR_PTR(ret);
+			}
 			if (ret > 0) {
 				++func;
 				++func_cnt;
@@ -797,8 +800,11 @@
 		for_each_child_of_node(cfg_np, func_np) {
 			ret = samsung_pinctrl_create_function(dev, drvdata,
 						func_np, func);
-			if (ret < 0)
+			if (ret < 0) {
+				of_node_put(func_np);
+				of_node_put(cfg_np);
 				return ERR_PTR(ret);
+			}
 			if (ret > 0) {
 				++func;
 				++func_cnt;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/core.c
@@ -29,12 +29,12 @@
 static int sh_pfc_map_resources(struct sh_pfc *pfc,
 				struct platform_device *pdev)
 {
-	unsigned int num_windows, num_irqs;
 	struct sh_pfc_window *windows;
 	unsigned int *irqs = NULL;
+	unsigned int num_windows;
 	struct resource *res;
 	unsigned int i;
-	int irq;
+	int num_irqs;
 
 	/* Count the MEM and IRQ resources. */
 	for (num_windows = 0;; num_windows++) {
@@ -42,17 +42,13 @@
 		if (!res)
 			break;
 	}
-	for (num_irqs = 0;; num_irqs++) {
-		irq = platform_get_irq(pdev, num_irqs);
-		if (irq == -EPROBE_DEFER)
-			return irq;
-		if (irq < 0)
-			break;
-	}
-
 	if (num_windows == 0)
 		return -EINVAL;
 
+	num_irqs = platform_irq_count(pdev);
+	if (num_irqs < 0)
+		return num_irqs;
+
 	/* Allocate memory windows and IRQs arrays. */
 	windows = devm_kcalloc(pfc->dev, num_windows, sizeof(*windows),
 			       GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/pfc-r8a7778.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/pfc-r8a7778.c
@@ -2305,7 +2305,7 @@
 		FN_ATAG0_A,	0,		FN_REMOCON_B,	0,
 		/* IP0_11_8 [4] */
 		FN_SD1_DAT2_A,	FN_MMC_D2,	0,		FN_BS,
-		FN_ATADIR0_A,	0,		FN_SDSELF_B,	0,
+		FN_ATADIR0_A,	0,		FN_SDSELF_A,	0,
 		FN_PWM4_B,	0,		0,		0,
 		0,		0,		0,		0,
 		/* IP0_7_5 [3] */
@@ -2349,7 +2349,7 @@
 		FN_TS_SDAT0_A,	0,		0,		0,
 		0,		0,		0,		0,
 		/* IP1_10_8 [3] */
-		FN_SD1_CLK_B,	FN_MMC_D6,	0,		FN_A24,
+		FN_SD1_CD_A,	FN_MMC_D6,	0,		FN_A24,
 		FN_DREQ1_A,	0,		FN_HRX0_B,	FN_TS_SPSYNC0_A,
 		/* IP1_7_5 [3] */
 		FN_A23,		FN_HTX0_B,	FN_TX2_B,	FN_DACK2_A,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/pfc-r8a77965.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/pfc-r8a77965.c
@@ -5984,7 +5984,7 @@
 		{ PIN_DU_DOTCLKIN1,    0, 2 },	/* DU_DOTCLKIN1 */
 	} },
 	{ PINMUX_DRIVE_REG("DRVCTRL12", 0xe6060330) {
-		{ PIN_DU_DOTCLKIN3,   28, 2 },	/* DU_DOTCLKIN3 */
+		{ PIN_DU_DOTCLKIN3,   24, 2 },	/* DU_DOTCLKIN3 */
 		{ PIN_FSCLKST,        20, 2 },	/* FSCLKST */
 		{ PIN_TMS,             4, 2 },	/* TMS */
 	} },
@@ -6240,8 +6240,8 @@
 		[31] = PIN_DU_DOTCLKIN1,	/* DU_DOTCLKIN1 */
 	} },
 	{ PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) {
-		[ 0] = PIN_DU_DOTCLKIN3,	/* DU_DOTCLKIN3 */
-		[ 1] = SH_PFC_PIN_NONE,
+		[ 0] = SH_PFC_PIN_NONE,
+		[ 1] = PIN_DU_DOTCLKIN3,	/* DU_DOTCLKIN3 */
 		[ 2] = PIN_FSCLKST,		/* FSCLKST */
 		[ 3] = PIN_EXTALR,		/* EXTALR*/
 		[ 4] = PIN_TRST_N,		/* TRST# */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/pfc-r8a77990.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/pfc-r8a77990.c
@@ -448,6 +448,8 @@
 #define MOD_SEL0_1_0	   REV4(FM(SEL_SPEED_PULSE_IF_0),	FM(SEL_SPEED_PULSE_IF_1),	FM(SEL_SPEED_PULSE_IF_2),	F_(0, 0))
 
 /* MOD_SEL1 */			/* 0 */				/* 1 */				/* 2 */				/* 3 */			/* 4 */			/* 5 */		/* 6 */		/* 7 */
+#define MOD_SEL1_31		FM(SEL_SIMCARD_0)		FM(SEL_SIMCARD_1)
+#define MOD_SEL1_30		FM(SEL_SSI2_0)			FM(SEL_SSI2_1)
 #define MOD_SEL1_29		FM(SEL_TIMER_TMU_0)		FM(SEL_TIMER_TMU_1)
 #define MOD_SEL1_28		FM(SEL_USB_20_CH0_0)		FM(SEL_USB_20_CH0_1)
 #define MOD_SEL1_26		FM(SEL_DRIF2_0)			FM(SEL_DRIF2_1)
@@ -468,7 +470,8 @@
 
 #define PINMUX_MOD_SELS	\
 \
-MOD_SEL0_30_29 \
+			MOD_SEL1_31 \
+MOD_SEL0_30_29		MOD_SEL1_30 \
 			MOD_SEL1_29 \
 MOD_SEL0_28		MOD_SEL1_28 \
 MOD_SEL0_27_26 \
@@ -1058,7 +1061,7 @@
 	PINMUX_IPSR_MSEL(IP10_27_24,		RIF0_CLK_B,	SEL_DRIF0_1),
 	PINMUX_IPSR_MSEL(IP10_27_24,		SCL2_B,		SEL_I2C2_1),
 	PINMUX_IPSR_MSEL(IP10_27_24,		TCLK1_A,	SEL_TIMER_TMU_0),
-	PINMUX_IPSR_GPSR(IP10_27_24,		SSI_SCK2_B),
+	PINMUX_IPSR_MSEL(IP10_27_24,		SSI_SCK2_B,	SEL_SSI2_1),
 	PINMUX_IPSR_GPSR(IP10_27_24,		TS_SCK0),
 
 	PINMUX_IPSR_GPSR(IP10_31_28,		SD0_WP),
@@ -1067,7 +1070,7 @@
 	PINMUX_IPSR_MSEL(IP10_31_28,		RIF0_D0_B,	SEL_DRIF0_1),
 	PINMUX_IPSR_MSEL(IP10_31_28,		SDA2_B,		SEL_I2C2_1),
 	PINMUX_IPSR_MSEL(IP10_31_28,		TCLK2_A,	SEL_TIMER_TMU_0),
-	PINMUX_IPSR_GPSR(IP10_31_28,		SSI_WS2_B),
+	PINMUX_IPSR_MSEL(IP10_31_28,		SSI_WS2_B,	SEL_SSI2_1),
 	PINMUX_IPSR_GPSR(IP10_31_28,		TS_SDAT0),
 
 	/* IPSR11 */
@@ -1085,13 +1088,13 @@
 
 	PINMUX_IPSR_MSEL(IP11_11_8,		RX0_A,		SEL_SCIF0_0),
 	PINMUX_IPSR_MSEL(IP11_11_8,		HRX1_A,		SEL_HSCIF1_0),
-	PINMUX_IPSR_GPSR(IP11_11_8,		SSI_SCK2_A),
+	PINMUX_IPSR_MSEL(IP11_11_8,		SSI_SCK2_A,	SEL_SSI2_0),
 	PINMUX_IPSR_GPSR(IP11_11_8,		RIF1_SYNC),
 	PINMUX_IPSR_GPSR(IP11_11_8,		TS_SCK1),
 
 	PINMUX_IPSR_MSEL(IP11_15_12,		TX0_A,		SEL_SCIF0_0),
 	PINMUX_IPSR_GPSR(IP11_15_12,		HTX1_A),
-	PINMUX_IPSR_GPSR(IP11_15_12,		SSI_WS2_A),
+	PINMUX_IPSR_MSEL(IP11_15_12,		SSI_WS2_A,	SEL_SSI2_0),
 	PINMUX_IPSR_GPSR(IP11_15_12,		RIF1_D0),
 	PINMUX_IPSR_GPSR(IP11_15_12,		TS_SDAT1),
 
@@ -1196,7 +1199,7 @@
 	PINMUX_IPSR_MSEL(IP13_19_16,		RIF0_D1_A,	SEL_DRIF0_0),
 	PINMUX_IPSR_MSEL(IP13_19_16,		SDA1_B,		SEL_I2C1_1),
 	PINMUX_IPSR_MSEL(IP13_19_16,		TCLK2_B,	SEL_TIMER_TMU_1),
-	PINMUX_IPSR_GPSR(IP13_19_16,		SIM0_D_A),
+	PINMUX_IPSR_MSEL(IP13_19_16,		SIM0_D_A,	SEL_SIMCARD_0),
 
 	PINMUX_IPSR_GPSR(IP13_23_20,		MLB_DAT),
 	PINMUX_IPSR_MSEL(IP13_23_20,		TX0_B,		SEL_SCIF0_1),
@@ -1264,7 +1267,7 @@
 	PINMUX_IPSR_GPSR(IP15_15_12,		TPU0TO2),
 	PINMUX_IPSR_MSEL(IP15_15_12,		SDA1_D,		SEL_I2C1_3),
 	PINMUX_IPSR_MSEL(IP15_15_12,		FSO_CFE_1_N_B,	SEL_FSO_1),
-	PINMUX_IPSR_GPSR(IP15_15_12,		SIM0_D_B),
+	PINMUX_IPSR_MSEL(IP15_15_12,		SIM0_D_B,	SEL_SIMCARD_1),
 
 	PINMUX_IPSR_GPSR(IP15_19_16,		SSI_SDATA6),
 	PINMUX_IPSR_MSEL(IP15_19_16,		HRTS2_N_A,	SEL_HSCIF2_0),
@@ -4957,11 +4960,11 @@
 		MOD_SEL0_1_0 ))
 	},
 	{ PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6060504, 32,
-			     GROUP(2, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1,
-				   2, 2, 2, 1, 1, 2, 1, 4),
+			     GROUP(1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1,
+				   1, 2, 2, 2, 1, 1, 2, 1, 4),
 			     GROUP(
-		/* RESERVED 31, 30 */
-		0, 0, 0, 0,
+		MOD_SEL1_31
+		MOD_SEL1_30
 		MOD_SEL1_29
 		MOD_SEL1_28
 		/* RESERVED 27 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/pfc-sh7264.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/pfc-sh7264.c
@@ -497,17 +497,15 @@
 	SD_WP_MARK, SD_CLK_MARK, SD_CMD_MARK,
 	CRX0_MARK, CRX1_MARK,
 	CTX0_MARK, CTX1_MARK,
+	CRX0_CRX1_MARK, CTX0_CTX1_MARK,
 
 	PWM1A_MARK, PWM1B_MARK, PWM1C_MARK, PWM1D_MARK,
 	PWM1E_MARK, PWM1F_MARK, PWM1G_MARK, PWM1H_MARK,
 	PWM2A_MARK, PWM2B_MARK, PWM2C_MARK, PWM2D_MARK,
 	PWM2E_MARK, PWM2F_MARK, PWM2G_MARK, PWM2H_MARK,
 	IERXD_MARK, IETXD_MARK,
-	CRX0_CRX1_MARK,
 	WDTOVF_MARK,
 
-	CRX0X1_MARK,
-
 	/* DMAC */
 	TEND0_MARK, DACK0_MARK, DREQ0_MARK,
 	TEND1_MARK, DACK1_MARK, DREQ1_MARK,
@@ -995,12 +993,12 @@
 
 	PINMUX_DATA(PJ3_DATA, PJ3MD_00),
 	PINMUX_DATA(CRX1_MARK, PJ3MD_01),
-	PINMUX_DATA(CRX0X1_MARK, PJ3MD_10),
+	PINMUX_DATA(CRX0_CRX1_MARK, PJ3MD_10),
 	PINMUX_DATA(IRQ1_PJ_MARK, PJ3MD_11),
 
 	PINMUX_DATA(PJ2_DATA, PJ2MD_000),
 	PINMUX_DATA(CTX1_MARK, PJ2MD_001),
-	PINMUX_DATA(CRX0_CRX1_MARK, PJ2MD_010),
+	PINMUX_DATA(CTX0_CTX1_MARK, PJ2MD_010),
 	PINMUX_DATA(CS2_MARK, PJ2MD_011),
 	PINMUX_DATA(SCK0_MARK, PJ2MD_100),
 	PINMUX_DATA(LCD_M_DISP_MARK, PJ2MD_101),
@@ -1245,6 +1243,7 @@
 	GPIO_FN(CTX1),
 	GPIO_FN(CRX1),
 	GPIO_FN(CTX0),
+	GPIO_FN(CTX0_CTX1),
 	GPIO_FN(CRX0),
 	GPIO_FN(CRX0_CRX1),
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/pfc-sh7269.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/pfc-sh7269.c
@@ -737,13 +737,12 @@
 	CRX0_MARK, CTX0_MARK,
 	CRX1_MARK, CTX1_MARK,
 	CRX2_MARK, CTX2_MARK,
-	CRX0_CRX1_MARK,
-	CRX0_CRX1_CRX2_MARK,
-	CTX0CTX1CTX2_MARK,
+	CRX0_CRX1_MARK, CTX0_CTX1_MARK,
+	CRX0_CRX1_CRX2_MARK, CTX0_CTX1_CTX2_MARK,
 	CRX1_PJ22_MARK, CTX1_PJ23_MARK,
 	CRX2_PJ20_MARK, CTX2_PJ21_MARK,
-	CRX0CRX1_PJ22_MARK,
-	CRX0CRX1CRX2_PJ20_MARK,
+	CRX0_CRX1_PJ22_MARK, CTX0_CTX1_PJ23_MARK,
+	CRX0_CRX1_CRX2_PJ20_MARK, CTX0_CTX1_CTX2_PJ21_MARK,
 
 	/* VDC */
 	DV_CLK_MARK,
@@ -821,6 +820,7 @@
 	PINMUX_DATA(CS3_MARK, PC8MD_001),
 	PINMUX_DATA(TXD7_MARK, PC8MD_010),
 	PINMUX_DATA(CTX1_MARK, PC8MD_011),
+	PINMUX_DATA(CTX0_CTX1_MARK, PC8MD_100),
 
 	PINMUX_DATA(PC7_DATA, PC7MD_000),
 	PINMUX_DATA(CKE_MARK, PC7MD_001),
@@ -833,11 +833,12 @@
 	PINMUX_DATA(CAS_MARK, PC6MD_001),
 	PINMUX_DATA(SCK7_MARK, PC6MD_010),
 	PINMUX_DATA(CTX0_MARK, PC6MD_011),
+	PINMUX_DATA(CTX0_CTX1_CTX2_MARK, PC6MD_100),
 
 	PINMUX_DATA(PC5_DATA, PC5MD_000),
 	PINMUX_DATA(RAS_MARK, PC5MD_001),
 	PINMUX_DATA(CRX0_MARK, PC5MD_011),
-	PINMUX_DATA(CTX0CTX1CTX2_MARK, PC5MD_100),
+	PINMUX_DATA(CTX0_CTX1_CTX2_MARK, PC5MD_100),
 	PINMUX_DATA(IRQ0_PC_MARK, PC5MD_101),
 
 	PINMUX_DATA(PC4_DATA, PC4MD_00),
@@ -1289,30 +1290,32 @@
 	PINMUX_DATA(LCD_DATA23_PJ23_MARK, PJ23MD_010),
 	PINMUX_DATA(LCD_TCON6_MARK, PJ23MD_011),
 	PINMUX_DATA(IRQ3_PJ_MARK, PJ23MD_100),
-	PINMUX_DATA(CTX1_MARK, PJ23MD_101),
+	PINMUX_DATA(CTX1_PJ23_MARK, PJ23MD_101),
+	PINMUX_DATA(CTX0_CTX1_PJ23_MARK, PJ23MD_110),
 
 	PINMUX_DATA(PJ22_DATA, PJ22MD_000),
 	PINMUX_DATA(DV_DATA22_MARK, PJ22MD_001),
 	PINMUX_DATA(LCD_DATA22_PJ22_MARK, PJ22MD_010),
 	PINMUX_DATA(LCD_TCON5_MARK, PJ22MD_011),
 	PINMUX_DATA(IRQ2_PJ_MARK, PJ22MD_100),
-	PINMUX_DATA(CRX1_MARK, PJ22MD_101),
-	PINMUX_DATA(CRX0_CRX1_MARK, PJ22MD_110),
+	PINMUX_DATA(CRX1_PJ22_MARK, PJ22MD_101),
+	PINMUX_DATA(CRX0_CRX1_PJ22_MARK, PJ22MD_110),
 
 	PINMUX_DATA(PJ21_DATA, PJ21MD_000),
 	PINMUX_DATA(DV_DATA21_MARK, PJ21MD_001),
 	PINMUX_DATA(LCD_DATA21_PJ21_MARK, PJ21MD_010),
 	PINMUX_DATA(LCD_TCON4_MARK, PJ21MD_011),
 	PINMUX_DATA(IRQ1_PJ_MARK, PJ21MD_100),
-	PINMUX_DATA(CTX2_MARK, PJ21MD_101),
+	PINMUX_DATA(CTX2_PJ21_MARK, PJ21MD_101),
+	PINMUX_DATA(CTX0_CTX1_CTX2_PJ21_MARK, PJ21MD_110),
 
 	PINMUX_DATA(PJ20_DATA, PJ20MD_000),
 	PINMUX_DATA(DV_DATA20_MARK, PJ20MD_001),
 	PINMUX_DATA(LCD_DATA20_PJ20_MARK, PJ20MD_010),
 	PINMUX_DATA(LCD_TCON3_MARK, PJ20MD_011),
 	PINMUX_DATA(IRQ0_PJ_MARK, PJ20MD_100),
-	PINMUX_DATA(CRX2_MARK, PJ20MD_101),
-	PINMUX_DATA(CRX0CRX1CRX2_PJ20_MARK, PJ20MD_110),
+	PINMUX_DATA(CRX2_PJ20_MARK, PJ20MD_101),
+	PINMUX_DATA(CRX0_CRX1_CRX2_PJ20_MARK, PJ20MD_110),
 
 	PINMUX_DATA(PJ19_DATA, PJ19MD_000),
 	PINMUX_DATA(DV_DATA19_MARK, PJ19MD_001),
@@ -1663,12 +1666,24 @@
 	GPIO_FN(WDTOVF),
 
 	/* CAN */
+	GPIO_FN(CTX2),
+	GPIO_FN(CRX2),
 	GPIO_FN(CTX1),
 	GPIO_FN(CRX1),
 	GPIO_FN(CTX0),
 	GPIO_FN(CRX0),
+	GPIO_FN(CTX0_CTX1),
 	GPIO_FN(CRX0_CRX1),
+	GPIO_FN(CTX0_CTX1_CTX2),
 	GPIO_FN(CRX0_CRX1_CRX2),
+	GPIO_FN(CTX2_PJ21),
+	GPIO_FN(CRX2_PJ20),
+	GPIO_FN(CTX1_PJ23),
+	GPIO_FN(CRX1_PJ22),
+	GPIO_FN(CTX0_CTX1_PJ23),
+	GPIO_FN(CRX0_CRX1_PJ22),
+	GPIO_FN(CTX0_CTX1_CTX2_PJ21),
+	GPIO_FN(CRX0_CRX1_CRX2_PJ20),
 
 	/* DMAC */
 	GPIO_FN(TEND0),
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/pfc-sh7734.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/pfc-sh7734.c
@@ -1450,7 +1450,7 @@
 	GPIO_FN(ET0_ETXD2_A),
 	GPIO_FN(EX_CS5), GPIO_FN(SD1_CMD_A), GPIO_FN(ATADIR), GPIO_FN(QSSL_B),
 	GPIO_FN(ET0_ETXD3_A),
-	GPIO_FN(RD_WR), GPIO_FN(TCLK1_B),
+	GPIO_FN(RD_WR), GPIO_FN(TCLK0), GPIO_FN(CAN_CLK_B), GPIO_FN(ET0_ETXD4),
 	GPIO_FN(EX_WAIT0), GPIO_FN(TCLK1_B),
 	GPIO_FN(EX_WAIT1), GPIO_FN(SD1_DAT0_A), GPIO_FN(DREQ2),
 		GPIO_FN(CAN1_TX_C), GPIO_FN(ET0_LINK_C), GPIO_FN(ET0_ETXD5_A),
@@ -1949,7 +1949,7 @@
 	    /* IP3_20 [1] */
 		FN_EX_WAIT0, FN_TCLK1_B,
 	    /* IP3_19_18 [2] */
-		FN_RD_WR, FN_TCLK1_B, 0, 0,
+		FN_RD_WR, FN_TCLK0, FN_CAN_CLK_B, FN_ET0_ETXD4,
 	    /* IP3_17_15 [3] */
 		FN_EX_CS5, FN_SD1_CMD_A, FN_ATADIR, FN_QSSL_B,
 		FN_ET0_ETXD3_A, 0, 0, 0,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sh-pfc/sh_pfc.h
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sh-pfc/sh_pfc.h
@@ -422,12 +422,12 @@
 /*
  * Describe a pinmux configuration in which a pin is physically multiplexed
  * with other pins.
- *   - ipsr: IPSR field (unused, for documentation purposes only)
+ *   - ipsr: IPSR field
  *   - fn: Function name
  *   - psel: Physical multiplexing selector
  */
 #define PINMUX_IPSR_PHYS(ipsr, fn, psel) \
-	PINMUX_DATA(fn##_MARK, FN_##psel)
+	PINMUX_DATA(fn##_MARK, FN_##psel, FN_##ipsr)
 
 /*
  * Describe a pinmux configuration for a single-function pin with GPIO
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -1130,20 +1130,22 @@
 	if (bank == pctl->desc->irq_banks)
 		return;
 
+	chained_irq_enter(chip, desc);
+
 	reg = sunxi_irq_status_reg_from_bank(pctl->desc, bank);
 	val = readl(pctl->membase + reg);
 
 	if (val) {
 		int irqoffset;
 
-		chained_irq_enter(chip, desc);
 		for_each_set_bit(irqoffset, &val, IRQ_PER_BANK) {
 			int pin_irq = irq_find_mapping(pctl->domain,
 						       bank * IRQ_PER_BANK + irqoffset);
 			generic_handle_irq(pin_irq);
 		}
-		chained_irq_exit(chip, desc);
 	}
+
+	chained_irq_exit(chip, desc);
 }
 
 static int sunxi_pinctrl_add_function(struct sunxi_pinctrl *pctl,
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/tegra/pinctrl-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/tegra/pinctrl-tegra.c
@@ -685,8 +685,8 @@
 }
 
 const struct dev_pm_ops tegra_pinctrl_pm = {
-	.suspend = &tegra_pinctrl_suspend,
-	.resume = &tegra_pinctrl_resume
+	.suspend_noirq = &tegra_pinctrl_suspend,
+	.resume_noirq = &tegra_pinctrl_resume
 };
 
 static bool gpio_node_has_range(const char *compatible)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pinctrl/ti/pinctrl-ti-iodelay.c
+++ linux-gkeop-5.4-5.4.0/drivers/pinctrl/ti/pinctrl-ti-iodelay.c
@@ -496,7 +496,7 @@
 		return -EINVAL;
 
 	rows = pinctrl_count_index_with_args(np, name);
-	if (rows == -EINVAL)
+	if (rows < 0)
 		return rows;
 
 	*map = devm_kzalloc(iod->dev, sizeof(**map), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/chrome/cros_ec_ishtp.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/chrome/cros_ec_ishtp.c
@@ -645,8 +645,10 @@
 
 	/* Register croc_ec_dev mfd */
 	rv = cros_ec_dev_init(client_data);
-	if (rv)
+	if (rv) {
+		down_write(&init_lock);
 		goto end_cros_ec_dev_init_error;
+	}
 
 	return 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/chrome/cros_ec_rpmsg.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/chrome/cros_ec_rpmsg.c
@@ -42,6 +42,8 @@
 	struct completion xfer_ack;
 	struct work_struct host_event_work;
 	struct rpmsg_endpoint *ept;
+	bool has_pending_host_event;
+	bool probe_done;
 };
 
 /**
@@ -186,7 +188,14 @@
 		memcpy(ec_dev->din, resp->data, len);
 		complete(&ec_rpmsg->xfer_ack);
 	} else if (resp->type == HOST_EVENT_MARK) {
-		schedule_work(&ec_rpmsg->host_event_work);
+		/*
+		 * If the host event is sent before cros_ec_register is
+		 * finished, queue the host event.
+		 */
+		if (ec_rpmsg->probe_done)
+			schedule_work(&ec_rpmsg->host_event_work);
+		else
+			ec_rpmsg->has_pending_host_event = true;
 	} else {
 		dev_warn(ec_dev->dev, "rpmsg received invalid type = %d",
 			 resp->type);
@@ -249,6 +258,11 @@
 		return ret;
 	}
 
+	ec_rpmsg->probe_done = true;
+
+	if (ec_rpmsg->has_pending_host_event)
+		schedule_work(&ec_rpmsg->host_event_work);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/chrome/cros_ec_spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/chrome/cros_ec_spi.c
@@ -739,7 +739,6 @@
 	int err;
 
 	spi->bits_per_word = 8;
-	spi->mode = SPI_MODE_0;
 	spi->rt = true;
 	err = spi_setup(spi);
 	if (err < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/chrome/wilco_ec/telemetry.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/chrome/wilco_ec/telemetry.c
@@ -406,8 +406,8 @@
 	struct telem_device_data *dev_data = platform_get_drvdata(pdev);
 
 	cdev_device_del(&dev_data->cdev, &dev_data->dev);
-	put_device(&dev_data->dev);
 	ida_simple_remove(&telem_ida, MINOR(dev_data->dev.devt));
+	put_device(&dev_data->dev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/mellanox/mlxbf-tmfifo.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/mellanox/mlxbf-tmfifo.c
@@ -149,7 +149,7 @@
  * @work: work struct for deferred process
  * @timer: background timer
  * @vring: Tx/Rx ring
- * @spin_lock: spin lock
+ * @spin_lock: Tx/Rx spin lock
  * @is_ready: ready flag
  */
 struct mlxbf_tmfifo {
@@ -164,7 +164,7 @@
 	struct work_struct work;
 	struct timer_list timer;
 	struct mlxbf_tmfifo_vring *vring[2];
-	spinlock_t spin_lock;		/* spin lock */
+	spinlock_t spin_lock[2];	/* spin lock */
 	bool is_ready;
 };
 
@@ -525,7 +525,7 @@
 	writeq(*(u64 *)&hdr, fifo->tx_base + MLXBF_TMFIFO_TX_DATA);
 
 	/* Use spin-lock to protect the 'cons->tx_buf'. */
-	spin_lock_irqsave(&fifo->spin_lock, flags);
+	spin_lock_irqsave(&fifo->spin_lock[0], flags);
 
 	while (size > 0) {
 		addr = cons->tx_buf.buf + cons->tx_buf.tail;
@@ -552,7 +552,7 @@
 		}
 	}
 
-	spin_unlock_irqrestore(&fifo->spin_lock, flags);
+	spin_unlock_irqrestore(&fifo->spin_lock[0], flags);
 }
 
 /* Rx/Tx one word in the descriptor buffer. */
@@ -731,9 +731,9 @@
 		fifo->vring[is_rx] = NULL;
 
 		/* Notify upper layer that packet is done. */
-		spin_lock_irqsave(&fifo->spin_lock, flags);
+		spin_lock_irqsave(&fifo->spin_lock[is_rx], flags);
 		vring_interrupt(0, vring->vq);
-		spin_unlock_irqrestore(&fifo->spin_lock, flags);
+		spin_unlock_irqrestore(&fifo->spin_lock[is_rx], flags);
 	}
 
 mlxbf_tmfifo_desc_done:
@@ -852,10 +852,10 @@
 		 * worker handler.
 		 */
 		if (vring->vdev_id == VIRTIO_ID_CONSOLE) {
-			spin_lock_irqsave(&fifo->spin_lock, flags);
+			spin_lock_irqsave(&fifo->spin_lock[0], flags);
 			tm_vdev = fifo->vdev[VIRTIO_ID_CONSOLE];
 			mlxbf_tmfifo_console_output(tm_vdev, vring);
-			spin_unlock_irqrestore(&fifo->spin_lock, flags);
+			spin_unlock_irqrestore(&fifo->spin_lock[0], flags);
 		} else if (test_and_set_bit(MLXBF_TM_TX_LWM_IRQ,
 					    &fifo->pend_events)) {
 			return true;
@@ -1189,7 +1189,8 @@
 	if (!fifo)
 		return -ENOMEM;
 
-	spin_lock_init(&fifo->spin_lock);
+	spin_lock_init(&fifo->spin_lock[0]);
+	spin_lock_init(&fifo->spin_lock[1]);
 	INIT_WORK(&fifo->work, mlxbf_tmfifo_work_handler);
 	mutex_init(&fifo->lock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/mips/cpu_hwmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/mips/cpu_hwmon.c
@@ -161,7 +161,7 @@
 
 	cpu_hwmon_dev = hwmon_device_register(NULL);
 	if (IS_ERR(cpu_hwmon_dev)) {
-		ret = -ENOMEM;
+		ret = PTR_ERR(cpu_hwmon_dev);
 		pr_err("hwmon_device_register fail!\n");
 		goto fail_hwmon_device_register;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/olpc/olpc-ec.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/olpc/olpc-ec.c
@@ -426,11 +426,8 @@
 
 	/* get the EC revision */
 	err = olpc_ec_cmd(EC_FIRMWARE_REV, NULL, 0, &ec->version, 1);
-	if (err) {
-		ec_priv = NULL;
-		kfree(ec);
-		return err;
-	}
+	if (err)
+		goto error;
 
 	config.dev = pdev->dev.parent;
 	config.driver_data = ec;
@@ -439,11 +436,17 @@
 								&config);
 	if (IS_ERR(ec->dcon_rdev)) {
 		dev_err(&pdev->dev, "failed to register DCON regulator\n");
-		return PTR_ERR(ec->dcon_rdev);
+		err = PTR_ERR(ec->dcon_rdev);
+		goto error;
 	}
 
 	ec->dbgfs_dir = olpc_ec_setup_debugfs();
 
+	return 0;
+
+error:
+	ec_priv = NULL;
+	kfree(ec);
 	return err;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/Kconfig
@@ -261,6 +261,20 @@
 	 image for the image update to take effect.
 	 See <file:Documentation/driver-api/dell_rbu.rst> for more details on the driver.
 
+config DELL_UART_BACKLIGHT
+	tristate "Dell AIO UART Backlight driver"
+	depends on SERIAL_8250
+	depends on ACPI
+	---help---
+	  Say Y here if you want to support Dell AIO UART backlight interface.
+	  The Dell AIO machines released after 2017 come with a UART interface
+	  to communicate with the backlight scalar board. This driver creates
+	  a standard backlight interface and talks to the scalar board through
+	  UART to adjust the AIO screen brightness.
+
+	  To compile this driver as a module, choose M here: the module will
+	  be called dell_uart_backlight.
+
 
 config FUJITSU_LAPTOP
 	tristate "Fujitsu Laptop Extras"
@@ -269,6 +283,7 @@
 	depends on BACKLIGHT_CLASS_DEVICE
 	depends on ACPI_VIDEO || ACPI_VIDEO = n
 	select INPUT_SPARSEKMAP
+	select NEW_LEDS
 	select LEDS_CLASS
 	---help---
 	  This is a driver for laptops built by Fujitsu:
@@ -806,7 +821,6 @@
 	tristate "PEAQ 2-in-1 WMI hotkey driver"
 	depends on ACPI_WMI
 	depends on INPUT
-	select INPUT_POLLDEV
 	help
 	 Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/Makefile
@@ -26,6 +26,7 @@
 obj-$(CONFIG_DELL_SMO8800)	+= dell-smo8800.o
 obj-$(CONFIG_DELL_RBTN)		+= dell-rbtn.o
 obj-$(CONFIG_DELL_RBU)          += dell_rbu.o
+obj-$(CONFIG_DELL_UART_BACKLIGHT) += dell-uart-backlight.o
 obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
 obj-$(CONFIG_ACER_WIRELESS)	+= acer-wireless.o
 obj-$(CONFIG_ACERHDF)		+= acerhdf.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/acer-wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/acer-wmi.c
@@ -30,6 +30,7 @@
 #include <linux/input/sparse-keymap.h>
 #include <acpi/video.h>
 
+ACPI_MODULE_NAME(KBUILD_MODNAME);
 MODULE_AUTHOR("Carlos Corbacho");
 MODULE_DESCRIPTION("Acer Laptop WMI Extras Driver");
 MODULE_LICENSE("GPL");
@@ -80,7 +81,7 @@
 
 enum acer_wmi_event_ids {
 	WMID_HOTKEY_EVENT = 0x1,
-	WMID_ACCEL_EVENT = 0x5,
+	WMID_ACCEL_OR_KBD_DOCK_EVENT = 0x5,
 };
 
 static const struct key_entry acer_wmi_keymap[] __initconst = {
@@ -111,6 +112,7 @@
 	{KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} },	/* Display Switch */
 	{KE_IGNORE, 0x81, {KEY_SLEEP} },
 	{KE_KEY, 0x82, {KEY_TOUCHPAD_TOGGLE} },	/* Touch Pad Toggle */
+	{KE_IGNORE, 0x84, {KEY_KBDILLUMTOGGLE} }, /* Automatic Keyboard background light toggle */
 	{KE_KEY, KEY_TOUCHPAD_ON, {KEY_TOUCHPAD_ON} },
 	{KE_KEY, KEY_TOUCHPAD_OFF, {KEY_TOUCHPAD_OFF} },
 	{KE_IGNORE, 0x83, {KEY_TOUCHPAD_TOGGLE} },
@@ -127,7 +129,9 @@
 	u8 function;
 	u8 key_num;
 	u16 device_state;
-	u32 reserved;
+	u16 reserved1;
+	u8 kbd_dock_state;
+	u8 reserved2;
 } __attribute__((packed));
 
 /*
@@ -205,14 +209,13 @@
 /*
  * Interface capability flags
  */
-#define ACER_CAP_MAILLED		(1<<0)
-#define ACER_CAP_WIRELESS		(1<<1)
-#define ACER_CAP_BLUETOOTH		(1<<2)
-#define ACER_CAP_BRIGHTNESS		(1<<3)
-#define ACER_CAP_THREEG			(1<<4)
-#define ACER_CAP_ACCEL			(1<<5)
-#define ACER_CAP_RFBTN			(1<<6)
-#define ACER_CAP_ANY			(0xFFFFFFFF)
+#define ACER_CAP_MAILLED		BIT(0)
+#define ACER_CAP_WIRELESS		BIT(1)
+#define ACER_CAP_BLUETOOTH		BIT(2)
+#define ACER_CAP_BRIGHTNESS		BIT(3)
+#define ACER_CAP_THREEG			BIT(4)
+#define ACER_CAP_SET_FUNCTION_MODE	BIT(5)
+#define ACER_CAP_KBD_DOCK		BIT(6)
 
 /*
  * Interface type flags
@@ -235,6 +238,7 @@
 static int brightness = -1;
 static int threeg = -1;
 static int force_series;
+static int force_caps = -1;
 static bool ec_raw_mode;
 static bool has_type_aa;
 static u16 commun_func_bitmap;
@@ -244,11 +248,13 @@
 module_param(brightness, int, 0444);
 module_param(threeg, int, 0444);
 module_param(force_series, int, 0444);
+module_param(force_caps, int, 0444);
 module_param(ec_raw_mode, bool, 0444);
 MODULE_PARM_DESC(mailled, "Set initial state of Mail LED");
 MODULE_PARM_DESC(brightness, "Set initial LCD backlight brightness");
 MODULE_PARM_DESC(threeg, "Set initial state of 3G hardware");
 MODULE_PARM_DESC(force_series, "Force a different laptop series");
+MODULE_PARM_DESC(force_caps, "Force the capability bitmask to this value");
 MODULE_PARM_DESC(ec_raw_mode, "Enable EC raw mode");
 
 struct acer_data {
@@ -318,6 +324,15 @@
 	return 1;
 }
 
+static int __init set_force_caps(const struct dmi_system_id *dmi)
+{
+	if (force_caps == -1) {
+		force_caps = (uintptr_t)dmi->driver_data;
+		pr_info("Found %s, set force_caps to 0x%x\n", dmi->ident, force_caps);
+	}
+	return 1;
+}
+
 static struct quirk_entry quirk_unknown = {
 };
 
@@ -496,6 +511,33 @@
 		},
 		.driver_data = &quirk_acer_travelmate_2490,
 	},
+	{
+		.callback = set_force_caps,
+		.ident = "Acer Aspire Switch 10E SW3-016",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW3-016"),
+		},
+		.driver_data = (void *)ACER_CAP_KBD_DOCK,
+	},
+	{
+		.callback = set_force_caps,
+		.ident = "Acer Aspire Switch 10 SW5-012",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
+		},
+		.driver_data = (void *)ACER_CAP_KBD_DOCK,
+	},
+	{
+		.callback = set_force_caps,
+		.ident = "Acer One 10 (S1003)",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"),
+		},
+		.driver_data = (void *)ACER_CAP_KBD_DOCK,
+	},
 	{}
 };
 
@@ -1252,10 +1294,8 @@
 		interface->capability |= ACER_CAP_THREEG;
 	if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_BLUETOOTH)
 		interface->capability |= ACER_CAP_BLUETOOTH;
-	if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_RFBTN) {
-		interface->capability |= ACER_CAP_RFBTN;
+	if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_RFBTN)
 		commun_func_bitmap &= ~ACER_WMID3_GDS_RFBTN;
-	}
 
 	commun_fn_key_number = type_aa->commun_fn_key_number;
 }
@@ -1519,7 +1559,7 @@
 	struct acpi_buffer output;
 	union acpi_object out_obj[5];
 
-	if (!has_cap(ACER_CAP_ACCEL))
+	if (!acer_wmi_accel_dev)
 		return -1;
 
 	output.length = sizeof(out_obj);
@@ -1543,6 +1583,71 @@
 }
 
 /*
+ * Switch series keyboard dock status
+ */
+static int acer_kbd_dock_state_to_sw_tablet_mode(u8 kbd_dock_state)
+{
+	switch (kbd_dock_state) {
+	case 0x01: /* Docked, traditional clamshell laptop mode */
+		return 0;
+	case 0x04: /* Stand-alone tablet */
+	case 0x40: /* Docked, tent mode, keyboard not usable */
+		return 1;
+	default:
+		pr_warn("Unknown kbd_dock_state 0x%02x\n", kbd_dock_state);
+	}
+
+	return 0;
+}
+
+static void acer_kbd_dock_get_initial_state(void)
+{
+	u8 *output, input[8] = { 0x05, 0x00, };
+	struct acpi_buffer input_buf = { sizeof(input), input };
+	struct acpi_buffer output_buf = { ACPI_ALLOCATE_BUFFER, NULL };
+	union acpi_object *obj;
+	acpi_status status;
+	int sw_tablet_mode;
+
+	status = wmi_evaluate_method(WMID_GUID3, 0, 0x2, &input_buf, &output_buf);
+	if (ACPI_FAILURE(status)) {
+		ACPI_EXCEPTION((AE_INFO, status, "Error getting keyboard-dock initial status"));
+		return;
+	}
+
+	obj = output_buf.pointer;
+	if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length != 8) {
+		pr_err("Unexpected output format getting keyboard-dock initial status\n");
+		goto out_free_obj;
+	}
+
+	output = obj->buffer.pointer;
+	if (output[0] != 0x00 || (output[3] != 0x05 && output[3] != 0x45)) {
+		pr_err("Unexpected output [0]=0x%02x [3]=0x%02x getting keyboard-dock initial status\n",
+		       output[0], output[3]);
+		goto out_free_obj;
+	}
+
+	sw_tablet_mode = acer_kbd_dock_state_to_sw_tablet_mode(output[4]);
+	input_report_switch(acer_wmi_input_dev, SW_TABLET_MODE, sw_tablet_mode);
+
+out_free_obj:
+	kfree(obj);
+}
+
+static void acer_kbd_dock_event(const struct event_return_value *event)
+{
+	int sw_tablet_mode;
+
+	if (!has_cap(ACER_CAP_KBD_DOCK))
+		return;
+
+	sw_tablet_mode = acer_kbd_dock_state_to_sw_tablet_mode(event->kbd_dock_state);
+	input_report_switch(acer_wmi_input_dev, SW_TABLET_MODE, sw_tablet_mode);
+	input_sync(acer_wmi_input_dev);
+}
+
+/*
  * Rfkill devices
  */
 static void acer_rfkill_update(struct work_struct *ignored);
@@ -1769,8 +1874,9 @@
 			sparse_keymap_report_event(acer_wmi_input_dev, scancode, 1, true);
 		}
 		break;
-	case WMID_ACCEL_EVENT:
+	case WMID_ACCEL_OR_KBD_DOCK_EVENT:
 		acer_gsensor_event();
+		acer_kbd_dock_event(&return_value);
 		break;
 	default:
 		pr_warn("Unknown function number - %d - %d\n",
@@ -1893,8 +1999,6 @@
 	gsensor_handle = acpi_device_handle(adev);
 	acpi_dev_put(adev);
 
-	interface->capability |= ACER_CAP_ACCEL;
-
 	acer_wmi_accel_dev = input_allocate_device();
 	if (!acer_wmi_accel_dev)
 		return -ENOMEM;
@@ -1920,11 +2024,6 @@
 	return err;
 }
 
-static void acer_wmi_accel_destroy(void)
-{
-	input_unregister_device(acer_wmi_accel_dev);
-}
-
 static int __init acer_wmi_input_setup(void)
 {
 	acpi_status status;
@@ -1942,6 +2041,9 @@
 	if (err)
 		goto err_free_dev;
 
+	if (has_cap(ACER_CAP_KBD_DOCK))
+		input_set_capability(acer_wmi_input_dev, EV_SW, SW_TABLET_MODE);
+
 	status = wmi_install_notify_handler(ACERWMID_EVENT_GUID,
 						acer_wmi_notify, NULL);
 	if (ACPI_FAILURE(status)) {
@@ -1949,6 +2051,9 @@
 		goto err_free_dev;
 	}
 
+	if (has_cap(ACER_CAP_KBD_DOCK))
+		acer_kbd_dock_get_initial_state();
+
 	err = input_register_device(acer_wmi_input_dev);
 	if (err)
 		goto err_uninstall_notifier;
@@ -2079,7 +2184,7 @@
 	if (has_cap(ACER_CAP_BRIGHTNESS))
 		set_u32(data->brightness, ACER_CAP_BRIGHTNESS);
 
-	if (has_cap(ACER_CAP_ACCEL))
+	if (acer_wmi_accel_dev)
 		acer_gsensor_init();
 
 	return 0;
@@ -2180,7 +2285,7 @@
 		}
 		/* WMID always provides brightness methods */
 		interface->capability |= ACER_CAP_BRIGHTNESS;
-	} else if (!wmi_has_guid(WMID_GUID2) && interface && !has_type_aa) {
+	} else if (!wmi_has_guid(WMID_GUID2) && interface && !has_type_aa && force_caps == -1) {
 		pr_err("No WMID device detection method found\n");
 		return -ENODEV;
 	}
@@ -2210,7 +2315,14 @@
 	if (acpi_video_get_backlight_type() != acpi_backlight_vendor)
 		interface->capability &= ~ACER_CAP_BRIGHTNESS;
 
-	if (wmi_has_guid(WMID_GUID3)) {
+	if (wmi_has_guid(WMID_GUID3))
+		interface->capability |= ACER_CAP_SET_FUNCTION_MODE;
+
+	if (force_caps != -1)
+		interface->capability = force_caps;
+
+	if (wmi_has_guid(WMID_GUID3) &&
+	    (interface->capability & ACER_CAP_SET_FUNCTION_MODE)) {
 		if (ACPI_FAILURE(acer_wmi_enable_rf_button()))
 			pr_warn("Cannot enable RF Button Driver\n");
 
@@ -2269,8 +2381,8 @@
 error_platform_register:
 	if (wmi_has_guid(ACERWMID_EVENT_GUID))
 		acer_wmi_input_destroy();
-	if (has_cap(ACER_CAP_ACCEL))
-		acer_wmi_accel_destroy();
+	if (acer_wmi_accel_dev)
+		input_unregister_device(acer_wmi_accel_dev);
 
 	return err;
 }
@@ -2280,8 +2392,8 @@
 	if (wmi_has_guid(ACERWMID_EVENT_GUID))
 		acer_wmi_input_destroy();
 
-	if (has_cap(ACER_CAP_ACCEL))
-		acer_wmi_accel_destroy();
+	if (acer_wmi_accel_dev)
+		input_unregister_device(acer_wmi_accel_dev);
 
 	remove_debugfs();
 	platform_device_unregister(acer_platform_device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/asus-nb-wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/asus-nb-wmi.c
@@ -110,6 +110,16 @@
 	.wmi_force_als_set = true,
 };
 
+static struct quirk_entry quirk_asus_ga401i = {
+	.wmi_backlight_power = true,
+	.wmi_backlight_set_devstate = true,
+};
+
+static struct quirk_entry quirk_asus_ga502i = {
+	.wmi_backlight_power = true,
+	.wmi_backlight_set_devstate = true,
+};
+
 static int dmi_matched(const struct dmi_system_id *dmi)
 {
 	pr_info("Identified laptop model '%s'\n", dmi->ident);
@@ -411,6 +421,78 @@
 		},
 		.driver_data = &quirk_asus_forceals,
 	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA401IH",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA401IH"),
+		},
+		.driver_data = &quirk_asus_ga401i,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA401II",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA401II"),
+		},
+		.driver_data = &quirk_asus_ga401i,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA401IU",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA401IU"),
+		},
+		.driver_data = &quirk_asus_ga401i,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA401IV",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA401IV"),
+		},
+		.driver_data = &quirk_asus_ga401i,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA401IVC",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA401IVC"),
+		},
+		.driver_data = &quirk_asus_ga401i,
+	},
+		{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA502II",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA502II"),
+		},
+		.driver_data = &quirk_asus_ga502i,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA502IU",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA502IU"),
+		},
+		.driver_data = &quirk_asus_ga502i,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "ASUSTeK COMPUTER INC. GA502IV",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "GA502IV"),
+		},
+		.driver_data = &quirk_asus_ga502i,
+	},
 	{},
 };
 
@@ -514,9 +596,33 @@
 	.detect_quirks = asus_nb_wmi_quirks,
 };
 
+static const struct dmi_system_id asus_nb_wmi_blacklist[] __initconst = {
+	{
+		/*
+		 * asus-nb-wm adds no functionality. The T100TA has a detachable
+		 * USB kbd, so no hotkeys and it has no WMI rfkill; and loading
+		 * asus-nb-wm causes the camera LED to turn and _stay_ on.
+		 */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100TA"),
+		},
+	},
+	{
+		/* The Asus T200TA has the same issue as the T100TA */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T200TA"),
+		},
+	},
+	{} /* Terminating entry */
+};
 
 static int __init asus_nb_wmi_init(void)
 {
+	if (dmi_check_system(asus_nb_wmi_blacklist))
+		return -ENODEV;
+
 	return asus_wmi_register_driver(&asus_nb_wmi_driver);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/asus-wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/asus-wmi.c
@@ -111,6 +111,8 @@
 	u32 arg0;
 	u32 arg1;
 	u32 arg2; /* At least TUF Gaming series uses 3 dword input buffer. */
+	u32 arg4;
+	u32 arg5;
 } __packed;
 
 /*
@@ -418,8 +420,12 @@
 {
 	/* The WMI method does not provide a way to specific a battery, so we
 	 * just assume it is the first battery.
+	 * Note: On some newer ASUS laptops (Zenbook UM431DA), the primary/first
+	 * battery is named BATT.
 	 */
-	if (strcmp(battery->desc->name, "BAT0") != 0)
+	if (strcmp(battery->desc->name, "BAT0") != 0 &&
+	    strcmp(battery->desc->name, "BAT1") != 0 &&
+	    strcmp(battery->desc->name, "BATT") != 0)
 		return -ENODEV;
 
 	if (device_create_file(&battery->dev,
@@ -512,13 +518,7 @@
 {
 	int ctrl_param = 0;
 
-	/*
-	 * bits 0-2: level
-	 * bit 7: light on/off
-	 */
-	if (asus->kbd_led_wk > 0)
-		ctrl_param = 0x80 | (asus->kbd_led_wk & 0x7F);
-
+	ctrl_param = 0x80 | (asus->kbd_led_wk & 0x7F);
 	asus_wmi_set_devstate(ASUS_WMI_DEVID_KBD_BACKLIGHT, ctrl_param, NULL);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/dell-laptop.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/dell-laptop.c
@@ -33,6 +33,7 @@
 
 struct quirk_entry {
 	bool touchpad_led;
+	bool kbd_led_not_present;
 	bool kbd_led_levels_off_1;
 	bool kbd_missing_ac_tag;
 
@@ -73,6 +74,10 @@
 	.kbd_led_levels_off_1 = true,
 };
 
+static struct quirk_entry quirk_dell_inspiron_1012 = {
+	.kbd_led_not_present = true,
+};
+
 static struct platform_driver platform_driver = {
 	.driver = {
 		.name = "dell-laptop",
@@ -310,6 +315,24 @@
 		},
 		.driver_data = &quirk_dell_latitude_e6410,
 	},
+	{
+		.callback = dmi_matched,
+		.ident = "Dell Inspiron 1012",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1012"),
+		},
+		.driver_data = &quirk_dell_inspiron_1012,
+	},
+	{
+		.callback = dmi_matched,
+		.ident = "Dell Inspiron 1018",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1018"),
+		},
+		.driver_data = &quirk_dell_inspiron_1012,
+	},
 	{ }
 };
 
@@ -1493,6 +1516,9 @@
 {
 	int ret;
 
+	if (quirks && quirks->kbd_led_not_present)
+		return;
+
 	ret = kbd_init_info();
 	kbd_init_tokens();
 
@@ -2178,10 +2204,13 @@
 
 	dell_laptop_register_notifier(&dell_laptop_notifier);
 
-	micmute_led_cdev.brightness = ledtrig_audio_get(LED_AUDIO_MICMUTE);
-	ret = led_classdev_register(&platform_device->dev, &micmute_led_cdev);
-	if (ret < 0)
-		goto fail_led;
+	if (dell_smbios_find_token(GLOBAL_MIC_MUTE_DISABLE) &&
+	    dell_smbios_find_token(GLOBAL_MIC_MUTE_ENABLE)) {
+		micmute_led_cdev.brightness = ledtrig_audio_get(LED_AUDIO_MICMUTE);
+		ret = led_classdev_register(&platform_device->dev, &micmute_led_cdev);
+		if (ret < 0)
+			goto fail_led;
+	}
 
 	if (acpi_video_get_backlight_type() != acpi_backlight_vendor)
 		return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/dell-smbios-base.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/dell-smbios-base.c
@@ -594,6 +594,7 @@
 	if (wmi && smm) {
 		pr_err("No SMBIOS backends available (wmi: %d, smm: %d)\n",
 			wmi, smm);
+		ret = -ENODEV;
 		goto fail_create_group;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/dell-uart-backlight.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/dell-uart-backlight.c
@@ -0,0 +1,530 @@
+/*
+ *  Dell AIO Serial Backlight Driver
+ *
+ *  Copyright (C) 2017 AceLan Kao <acelan.kao@canonical.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/acpi.h>
+#include <linux/serial_8250.h>
+#include <linux/delay.h>
+#include <linux/backlight.h>
+#include <linux/dmi.h>
+#include <acpi/video.h>
+
+#include "dell-uart-backlight.h"
+
+struct dell_uart_backlight {
+	struct device *dev;
+	struct backlight_device *dell_uart_bd;
+	struct mutex brightness_mutex;
+	int line;
+	int bl_power;
+};
+struct uart_8250_port *serial8250_get_port(int line);
+static struct tty_struct *tty;
+static struct file *ftty;
+
+unsigned int (*io_serial_in)(struct uart_port *p, int offset);
+int (*uart_write)(struct tty_struct *tty, const unsigned char *buf, int count);
+int (*uart_chars_in_buffer)(struct tty_struct *tty);
+
+static bool force;
+module_param(force, bool, 0444);
+MODULE_PARM_DESC(force, "load the driver regardless of the scalar status");
+
+static struct dell_uart_bl_cmd uart_cmd[] = {
+	/*
+	 * Get Firmware Version: Tool uses this command to get firmware version.
+	 * Command: 0x6A 0x06 0x8F (Length:3 Type: 0x0A, Cmd:6 Checksum:0x8F)
+	 * Return data: 0x0D 0x06 Data checksum (Length:13,Cmd:0x06,
+	 *              Data :F/W version(APRILIA=APR27-VXXX,PHINE=PHI23-VXXX),
+	 *              checksum:SUM(Length and Cmd and Data)xor 0xFF .
+	 */
+	[DELL_UART_GET_FIRMWARE_VER] = {
+		.cmd	= {0x6A, 0x06, 0x8F},
+		.tx_len	= 3,
+	},
+	/*
+	 * Get Scalar Status: Tool uses this command to check if scalar IC controls brightness.
+	 * Command: 0x6A 0x1F 0x8F (Length:3 Type: 0x0A, Cmd:0x1F Checksum:0x76)
+	 * Return data: 0x04 0x1F Data checksum
+	 * (Data = 0: scalar cannot adjust brightness, Data = 1: scalar can adjust brightness)
+	 */
+	[DELL_UART_GET_SCALAR] = {
+		.cmd	= {0x6A,0x1F,0x76},
+		.ret	= {0x04,0x1F,0x00,0x00},
+		.tx_len	= 3,
+		.rx_len	= 4,
+	},
+	/*
+	 * Get Brightness level: Application uses this command for scaler to
+	 *                       get brightness.
+	 * Command: 0x6A 0x0C 0x89
+	 *          (Length:3 Type: 0x0A, Cmd:0x0C, Checksum:0x89)
+	 * Return data: 0x04 0x0C Data checksum
+	 * (Length:4 Cmd: 0x0C Data: brightness level
+	 *           checksum: SUM(Length and Cmd and Data)xor 0xFF)
+	 *           brightness level which ranges from 0~100.
+	 */
+	[DELL_UART_GET_BRIGHTNESS] = {
+		.cmd	= {0x6A, 0x0C, 0x89},
+		.ret	= {0x04, 0x0C, 0x00, 0x00},
+		.tx_len	= 3,
+		.rx_len	= 4,
+	},
+	/* Set Brightness level: Application uses this command for scaler to
+	 *                       set brightness.
+	 * Command: 0x8A 0x0B Byte2 Checksum (Length:4 Type: 0x0A, Cmd:0x0B)
+	 *          where Byte2 is the brightness level which ranges from 0~100.
+	 * Return data: 0x03 0x0B 0xF1(Length:3,Cmd:B,checksum:0xF1)
+	 * Scaler must send the 3bytes ack within 1 second when success,
+	 * other value if error
+	 */
+	[DELL_UART_SET_BRIGHTNESS] = {
+		.cmd	= {0x8A, 0x0B, 0x0, 0x0},
+		.ret	= {0x03, 0x0B, 0xF1},
+		.tx_len	= 4,
+		.rx_len	= 3,
+	},
+	/*
+	 * Screen ON/OFF Control: Application uses this command to control
+	 *                        screen ON or OFF.
+	 * Command: 0x8A 0x0E Byte2 Checksum (Length:4 Type: 0x0A, Cmd:0x0E)
+	 *          where
+	 *          Byte2=0 to turn OFF the screen.
+	 *          Byte2=1 to turn ON the screen
+	 *          Other value of Byte2 is reserved and invalid.
+	 * Return data: 0x03 0x0E 0xEE(Length:3,Cmd:E,checksum:0xEE)
+	 */
+	[DELL_UART_SET_BACKLIGHT_POWER] = {
+		.cmd	= {0x8A, 0x0E, 0x00, 0x0},
+		.ret	= {0x03, 0x0E, 0xEE},
+		.tx_len	= 4,
+		.rx_len	= 3,
+	},
+};
+
+static const struct dmi_system_id dell_uart_backlight_alpha_platform[] __initconst = {
+	{
+		.ident = "Dell Inspiron 7777 AIO",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7777 AIO"),
+		},
+	},
+	{
+		.ident = "Dell Inspiron 5477 AIO",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5477 AIO"),
+		},
+	},
+	{
+		.ident = "Dell OptiPlex 7769 AIO",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 7769 AIO"),
+		},
+	},
+	{
+		.ident = "Dell OptiPlex 5260 AIO",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 5260 AIO"),
+		},
+	},
+	{ }
+};
+
+static int dell_uart_write(struct uart_8250_port *up, __u8 *buf, int len)
+{
+	int actual = 0;
+	struct uart_port *port = &up->port;
+
+	tty_port_tty_wakeup(&port->state->port);
+	tty = tty_port_tty_get(&port->state->port);
+	actual = uart_write(tty, buf, len);
+	while (uart_chars_in_buffer(tty))
+		udelay(10);
+
+	return actual;
+}
+
+static int dell_uart_read(struct uart_8250_port *up, __u8 *buf, int len)
+{
+	int i, retry;
+	unsigned long flags;
+
+	spin_lock_irqsave(&up->port.lock, flags);
+	for (i = 0; i < len; i++) {
+		retry = 10;
+		while (!(io_serial_in(&up->port, UART_LSR) & UART_LSR_DR)) {
+			if (--retry == 0)
+				break;
+			mdelay(20);
+		}
+
+		if (retry == 0)
+			break;
+		buf[i] = io_serial_in(&up->port, UART_RX);
+	}
+	spin_unlock_irqrestore(&up->port.lock, flags);
+
+	return i;
+}
+
+static void dell_uart_dump_cmd(const char *func, const char *prefix,
+			       const char *cmd, int len)
+{
+	char buf[80];
+
+	snprintf(buf, 80, "dell_uart_backlight:%s:%s", func, prefix);
+	if (len != 0)
+		print_hex_dump_debug(buf, DUMP_PREFIX_NONE,
+					16, 1, cmd, len, false);
+	else
+		pr_debug("dell_uart_backlight:%s:%sNULL\n", func, prefix);
+
+}
+
+/*
+ * checksum: SUM(Length and Cmd and Data)xor 0xFF)
+ */
+static unsigned char dell_uart_checksum(unsigned char *buf, int len)
+{
+	unsigned char val = 0;
+
+	while (len-- > 0)
+		val += buf[len];
+
+	return val ^ 0xff;
+}
+
+/*
+ * There is no command to get backlight power status,
+ * so we set the backlight power to "on" while initializing,
+ * and then track and report its status by bl_power variable
+ */
+static inline int dell_uart_get_bl_power(struct dell_uart_backlight *dell_pdata)
+{
+	return dell_pdata->bl_power;
+}
+
+static int dell_uart_set_bl_power(struct backlight_device *bd, int power)
+{
+	struct dell_uart_bl_cmd *bl_cmd =
+		&uart_cmd[DELL_UART_SET_BACKLIGHT_POWER];
+	struct dell_uart_backlight *dell_pdata = bl_get_data(bd);
+	struct uart_8250_port *uart = serial8250_get_port(dell_pdata->line);
+	int rx_len;
+
+	if (power != FB_BLANK_POWERDOWN)
+		power = FB_BLANK_UNBLANK;
+
+	bl_cmd->cmd[2] = power ? 0 : 1;
+	bl_cmd->cmd[3] = dell_uart_checksum(bl_cmd->cmd, bl_cmd->tx_len - 1);
+
+	dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
+
+	if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
+		pr_debug("Failed to get mutex_lock");
+		return 0;
+	}
+
+	dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
+	rx_len = dell_uart_read(uart, bl_cmd->ret, bl_cmd->rx_len);
+
+	mutex_unlock(&dell_pdata->brightness_mutex);
+
+	dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+
+	bd->props.power = power;
+	dell_pdata->bl_power = power;
+
+	return 0;
+}
+
+static int dell_uart_get_brightness(struct backlight_device *bd)
+{
+	struct dell_uart_bl_cmd *bl_cmd = &uart_cmd[DELL_UART_GET_BRIGHTNESS];
+	struct dell_uart_backlight *dell_pdata = bl_get_data(bd);
+	struct uart_8250_port *uart = serial8250_get_port(dell_pdata->line);
+	int rx_len, brightness = 0;
+
+	dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
+
+	if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
+		pr_debug("Failed to get mutex_lock");
+		return 0;
+	}
+
+	dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
+	rx_len = dell_uart_read(uart, bl_cmd->ret, bl_cmd->rx_len);
+
+	mutex_unlock(&dell_pdata->brightness_mutex);
+
+	dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+
+	brightness = (unsigned int)bl_cmd->ret[2];
+
+	return brightness;
+}
+
+static int dell_uart_update_status(struct backlight_device *bd)
+{
+	struct dell_uart_bl_cmd *bl_cmd = &uart_cmd[DELL_UART_SET_BRIGHTNESS];
+	struct dell_uart_backlight *dell_pdata = bl_get_data(bd);
+	struct uart_8250_port *uart = serial8250_get_port(dell_pdata->line);
+	int rx_len;
+
+	bl_cmd->cmd[2] = bd->props.brightness;
+	bl_cmd->cmd[3] = dell_uart_checksum(bl_cmd->cmd, bl_cmd->tx_len - 1);
+
+	dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
+
+	if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
+		pr_debug("Failed to get mutex_lock");
+		return 0;
+	}
+
+	dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
+	rx_len = dell_uart_read(uart, bl_cmd->ret, bl_cmd->rx_len);
+
+	mutex_unlock(&dell_pdata->brightness_mutex);
+
+	dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+
+	if (bd->props.power != dell_uart_get_bl_power(dell_pdata))
+		dell_uart_set_bl_power(bd, bd->props.power);
+
+	return 0;
+}
+
+static int dell_uart_get_scalar_status(struct dell_uart_backlight *dell_pdata)
+{
+	struct dell_uart_bl_cmd *bl_cmd = &uart_cmd[DELL_UART_GET_SCALAR];
+	struct uart_8250_port *uart = serial8250_get_port(dell_pdata->line);
+	int rx_len;
+	int status = 0, retry = 50;
+
+	dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
+
+	if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
+		pr_debug("Failed to get mutex_lock");
+		return 0;
+	}
+
+	dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
+	do {
+		rx_len = dell_uart_read(uart, bl_cmd->ret, bl_cmd->rx_len);
+		if (rx_len == 0)
+			msleep(100);
+	} while (rx_len == 0 && --retry);
+
+	mutex_unlock(&dell_pdata->brightness_mutex);
+
+	dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+
+	if (rx_len == 4)
+		status = (unsigned int)bl_cmd->ret[2];
+
+	return status;
+}
+
+static int dell_uart_show_firmware_ver(struct dell_uart_backlight *dell_pdata)
+{
+	struct dell_uart_bl_cmd *bl_cmd = &uart_cmd[DELL_UART_GET_FIRMWARE_VER];
+	struct uart_8250_port *uart = serial8250_get_port(dell_pdata->line);
+	int rx_len = 0, retry = 10;
+
+	dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
+
+	if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
+		pr_debug("Failed to get mutex_lock");
+		return -1;
+	}
+
+	dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
+	while (retry-- > 0) {
+		/* first byte is data length */
+		dell_uart_read(uart, bl_cmd->ret, 1);
+		rx_len = (int)bl_cmd->ret[0];
+		if (bl_cmd->ret[0] > 80 || bl_cmd->ret[0] == 0) {
+			pr_debug("Failed to get firmware version\n");
+			if (retry == 0) {
+				mutex_unlock(&dell_pdata->brightness_mutex);
+				return -1;
+			}
+			msleep(100);
+			continue;
+		}
+
+		dell_uart_read(uart, bl_cmd->ret+1, rx_len-1);
+		break;
+	}
+	mutex_unlock(&dell_pdata->brightness_mutex);
+
+	dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+
+	pr_debug("Firmare str(%d)= %s\n", (int)bl_cmd->ret[0], bl_cmd->ret+2);
+	return rx_len;
+}
+
+static const struct backlight_ops dell_uart_backlight_ops = {
+	.get_brightness = dell_uart_get_brightness,
+	.update_status = dell_uart_update_status,
+};
+
+static int dell_uart_startup(struct dell_uart_backlight *dell_pdata)
+{
+	struct uart_8250_port *uartp;
+	struct uart_port *port;
+
+	dell_pdata->line = 0;
+	uartp = serial8250_get_port(dell_pdata->line);
+	port = &uartp->port;
+	tty = port->state->port.tty;
+	io_serial_in = port->serial_in;
+	uart_write = tty->driver->ops->write;
+	uart_chars_in_buffer = tty->driver->ops->chars_in_buffer;
+
+	return 0;
+}
+
+static int dell_uart_bl_add(struct acpi_device *dev)
+{
+	struct dell_uart_backlight *dell_pdata;
+	struct backlight_properties props;
+	struct backlight_device *dell_uart_bd;
+
+	dell_pdata = kzalloc(sizeof(struct dell_uart_backlight), GFP_KERNEL);
+	if (!dell_pdata) {
+		pr_debug("Failed to allocate memory for dell_uart_backlight\n");
+		return -ENOMEM;
+	}
+	dell_pdata->dev = &dev->dev;
+	dell_uart_startup(dell_pdata);
+	dev->driver_data = dell_pdata;
+
+	mutex_init(&dell_pdata->brightness_mutex);
+
+	if (!force) {
+		if (dmi_check_system(dell_uart_backlight_alpha_platform)) {
+			/* try another command to make sure there is no scalar IC */
+			if (dell_uart_show_firmware_ver(dell_pdata) <= 4) {
+				pr_debug("Scalar is not in charge of brightness adjustment.\n");
+				kzfree(dell_pdata);
+				return -ENODEV;
+			}
+		}
+		else if (!dell_uart_get_scalar_status(dell_pdata)) {
+			pr_debug("Scalar is not in charge of brightness adjustment.\n");
+			kzfree(dell_pdata);
+			return -ENODEV;
+		}
+	}
+	dell_uart_show_firmware_ver(dell_pdata);
+
+	memset(&props, 0, sizeof(struct backlight_properties));
+	props.type = BACKLIGHT_PLATFORM;
+	props.max_brightness = 100;
+
+	dell_uart_bd = backlight_device_register("dell_uart_backlight",
+						 &dev->dev,
+						 dell_pdata,
+						 &dell_uart_backlight_ops,
+						 &props);
+	if (IS_ERR(dell_uart_bd)) {
+		kzfree(dell_pdata);
+		pr_debug("Backlight registration failed\n");
+		return PTR_ERR(dell_uart_bd);
+	}
+
+	dell_pdata->dell_uart_bd = dell_uart_bd;
+
+	dell_uart_set_bl_power(dell_uart_bd, FB_BLANK_UNBLANK);
+	dell_uart_bd->props.brightness = 100;
+	backlight_update_status(dell_uart_bd);
+
+	/* unregister acpi backlight interface */
+	acpi_video_set_dmi_backlight_type(acpi_backlight_vendor);
+
+	return 0;
+}
+
+static int dell_uart_bl_remove(struct acpi_device *dev)
+{
+	struct dell_uart_backlight *dell_pdata = dev->driver_data;
+
+	backlight_device_unregister(dell_pdata->dell_uart_bd);
+	kzfree(dell_pdata);
+
+	return 0;
+}
+
+static int dell_uart_bl_suspend(struct device *dev)
+{
+	filp_close(ftty, NULL);
+	return 0;
+}
+
+static int dell_uart_bl_resume(struct device *dev)
+{
+	ftty = filp_open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY, 0);
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(dell_uart_bl_pm, dell_uart_bl_suspend, dell_uart_bl_resume);
+
+static const struct acpi_device_id dell_uart_bl_ids[] = {
+	{"DELL0501", 0},
+	{"", 0},
+};
+
+static struct acpi_driver dell_uart_backlight_driver = {
+	.name = "Dell AIO serial backlight",
+	.ids = dell_uart_bl_ids,
+	.ops = {
+		.add = dell_uart_bl_add,
+		.remove = dell_uart_bl_remove,
+	},
+	.drv.pm = &dell_uart_bl_pm,
+};
+
+static int __init dell_uart_bl_init(void)
+{
+	ftty = filp_open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY, 0);
+	if (IS_ERR(ftty)) {
+		pr_debug("cannot open /dev/ttyS0\n");
+		return -EINVAL;
+	}
+
+	return acpi_bus_register_driver(&dell_uart_backlight_driver);
+}
+
+static void __exit dell_uart_bl_exit(void)
+{
+	filp_close(ftty, NULL);
+
+	acpi_bus_unregister_driver(&dell_uart_backlight_driver);
+}
+
+module_init(dell_uart_bl_init);
+module_exit(dell_uart_bl_exit);
+MODULE_DEVICE_TABLE(acpi, dell_uart_bl_ids);
+MODULE_DESCRIPTION("Dell AIO Serial Backlight module");
+MODULE_AUTHOR("AceLan Kao <acelan.kao@canonical.com>");
+MODULE_LICENSE("GPL");
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/dell-uart-backlight.h
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/dell-uart-backlight.h
@@ -0,0 +1,36 @@
+/*
+ *  Dell AIO Serial Backlight Driver
+ *
+ *  Copyright (C) 2017 AceLan Kao <acelan.kao@canonical.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ */
+
+#ifndef _DELL_UART_BACKLIGHT_H_
+#define _DELL_UART_BACKLIGHT_H_
+
+enum {
+	DELL_UART_GET_FIRMWARE_VER,
+	DELL_UART_GET_SCALAR,
+	DELL_UART_GET_BRIGHTNESS,
+	DELL_UART_SET_BRIGHTNESS,
+	DELL_UART_SET_BACKLIGHT_POWER,
+};
+
+struct dell_uart_bl_cmd {
+	unsigned char	cmd[10];
+	unsigned char	ret[80];
+	unsigned short	tx_len;
+	unsigned short	rx_len;
+};
+
+#endif /* _DELL_UART_BACKLIGHT_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/gpd-pocket-fan.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/gpd-pocket-fan.c
@@ -16,17 +16,27 @@
 
 #define MAX_SPEED 3
 
-static int temp_limits[3] = { 55000, 60000, 65000 };
+#define TEMP_LIMIT0_DEFAULT	55000
+#define TEMP_LIMIT1_DEFAULT	60000
+#define TEMP_LIMIT2_DEFAULT	65000
+
+#define HYSTERESIS_DEFAULT	3000
+
+#define SPEED_ON_AC_DEFAULT	2
+
+static int temp_limits[3] = {
+	TEMP_LIMIT0_DEFAULT, TEMP_LIMIT1_DEFAULT, TEMP_LIMIT2_DEFAULT,
+};
 module_param_array(temp_limits, int, NULL, 0444);
 MODULE_PARM_DESC(temp_limits,
 		 "Millicelsius values above which the fan speed increases");
 
-static int hysteresis = 3000;
+static int hysteresis = HYSTERESIS_DEFAULT;
 module_param(hysteresis, int, 0444);
 MODULE_PARM_DESC(hysteresis,
 		 "Hysteresis in millicelsius before lowering the fan speed");
 
-static int speed_on_ac = 2;
+static int speed_on_ac = SPEED_ON_AC_DEFAULT;
 module_param(speed_on_ac, int, 0444);
 MODULE_PARM_DESC(speed_on_ac,
 		 "minimum fan speed to allow when system is powered by AC");
@@ -117,21 +127,24 @@
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(temp_limits); i++) {
-		if (temp_limits[i] < 40000 || temp_limits[i] > 70000) {
-			dev_err(&pdev->dev, "Invalid temp-limit %d (must be between 40000 and 70000)\n",
+		if (temp_limits[i] < 20000 || temp_limits[i] > 90000) {
+			dev_err(&pdev->dev, "Invalid temp-limit %d (must be between 20000 and 90000)\n",
 				temp_limits[i]);
-			return -EINVAL;
+			temp_limits[0] = TEMP_LIMIT0_DEFAULT;
+			temp_limits[1] = TEMP_LIMIT1_DEFAULT;
+			temp_limits[2] = TEMP_LIMIT2_DEFAULT;
+			break;
 		}
 	}
 	if (hysteresis < 1000 || hysteresis > 10000) {
 		dev_err(&pdev->dev, "Invalid hysteresis %d (must be between 1000 and 10000)\n",
 			hysteresis);
-		return -EINVAL;
+		hysteresis = HYSTERESIS_DEFAULT;
 	}
 	if (speed_on_ac < 0 || speed_on_ac > MAX_SPEED) {
 		dev_err(&pdev->dev, "Invalid speed_on_ac %d (must be between 0 and 3)\n",
 			speed_on_ac);
-		return -EINVAL;
+		speed_on_ac = SPEED_ON_AC_DEFAULT;
 	}
 
 	fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/hp-wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/hp-wmi.c
@@ -32,6 +32,10 @@
 MODULE_ALIAS("wmi:95F24279-4D7B-4334-9387-ACCDC67EF61C");
 MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");
 
+static int enable_tablet_mode_sw = -1;
+module_param(enable_tablet_mode_sw, int, 0444);
+MODULE_PARM_DESC(enable_tablet_mode_sw, "Enable SW_TABLET_MODE reporting (-1=auto, 0=no, 1=yes)");
+
 #define HPWMI_EVENT_GUID "95F24279-4D7B-4334-9387-ACCDC67EF61C"
 #define HPWMI_BIOS_GUID "5FB7F034-2C63-45e9-BE91-3D44E2C707E4"
 
@@ -65,7 +69,7 @@
 	u32 command;
 	u32 commandtype;
 	u32 datasize;
-	u32 data;
+	u8 data[128];
 };
 
 enum hp_wmi_commandtype {
@@ -216,7 +220,7 @@
 		.command = command,
 		.commandtype = query,
 		.datasize = insize,
-		.data = 0,
+		.data = { 0 },
 	};
 	struct acpi_buffer input = { sizeof(struct bios_args), &args };
 	struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
@@ -228,7 +232,7 @@
 
 	if (WARN_ON(insize > sizeof(args.data)))
 		return -EINVAL;
-	memcpy(&args.data, buffer, insize);
+	memcpy(&args.data[0], buffer, insize);
 
 	wmi_evaluate_method(HPWMI_BIOS_GUID, 0, mid, &input, &output);
 
@@ -300,7 +304,7 @@
 
 static int __init hp_wmi_bios_2009_later(void)
 {
-	int state = 0;
+	u8 state[128];
 	int ret = hp_wmi_perform_query(HPWMI_FEATURE2_QUERY, HPWMI_READ, &state,
 				       sizeof(state), sizeof(state));
 	if (!ret)
@@ -380,7 +384,7 @@
 	int err, i;
 
 	err = hp_wmi_perform_query(HPWMI_WIRELESS2_QUERY, HPWMI_READ, &state,
-				   0, sizeof(state));
+				   sizeof(state), sizeof(state));
 	if (err)
 		return err;
 
@@ -461,8 +465,14 @@
 static ssize_t als_store(struct device *dev, struct device_attribute *attr,
 			 const char *buf, size_t count)
 {
-	u32 tmp = simple_strtoul(buf, NULL, 10);
-	int ret = hp_wmi_perform_query(HPWMI_ALS_QUERY, HPWMI_WRITE, &tmp,
+	u32 tmp;
+	int ret;
+
+	ret = kstrtou32(buf, 10, &tmp);
+	if (ret)
+		return ret;
+
+	ret = hp_wmi_perform_query(HPWMI_ALS_QUERY, HPWMI_WRITE, &tmp,
 				       sizeof(tmp), sizeof(tmp));
 	if (ret)
 		return ret < 0 ? ret : -EINVAL;
@@ -648,10 +658,12 @@
 	}
 
 	/* Tablet mode */
-	val = hp_wmi_hw_state(HPWMI_TABLET_MASK);
-	if (!(val < 0)) {
-		__set_bit(SW_TABLET_MODE, hp_wmi_input_dev->swbit);
-		input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE, val);
+	if (enable_tablet_mode_sw > 0) {
+		val = hp_wmi_hw_state(HPWMI_TABLET_MASK);
+		if (val >= 0) {
+			__set_bit(SW_TABLET_MODE, hp_wmi_input_dev->swbit);
+			input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE, val);
+		}
 	}
 
 	err = sparse_keymap_setup(hp_wmi_input_dev, hp_wmi_keymap, NULL);
@@ -778,7 +790,7 @@
 	int err, i;
 
 	err = hp_wmi_perform_query(HPWMI_WIRELESS2_QUERY, HPWMI_READ, &state,
-				   0, sizeof(state));
+				   sizeof(state), sizeof(state));
 	if (err)
 		return err < 0 ? err : -EINVAL;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/i2c-multi-instantiate.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/i2c-multi-instantiate.c
@@ -166,13 +166,29 @@
 	{}
 };
 
-static const struct i2c_inst_data int3515_data[]  = {
-	{ "tps6598x", IRQ_RESOURCE_APIC, 0 },
-	{ "tps6598x", IRQ_RESOURCE_APIC, 1 },
-	{ "tps6598x", IRQ_RESOURCE_APIC, 2 },
-	{ "tps6598x", IRQ_RESOURCE_APIC, 3 },
-	{}
-};
+/*
+ * Device with _HID INT3515 (TI PD controllers) has some unresolved interrupt
+ * issues. The most common problem seen is interrupt flood.
+ *
+ * There are at least two known causes. Firstly, on some boards, the
+ * I2CSerialBus resource index does not match the Interrupt resource, i.e. they
+ * are not one-to-one mapped like in the array below. Secondly, on some boards
+ * the IRQ line from the PD controller is not actually connected at all. But the
+ * interrupt flood is also seen on some boards where those are not a problem, so
+ * there are some other problems as well.
+ *
+ * Because of the issues with the interrupt, the device is disabled for now. If
+ * you wish to debug the issues, uncomment the below, and add an entry for the
+ * INT3515 device to the i2c_multi_instance_ids table.
+ *
+ * static const struct i2c_inst_data int3515_data[]  = {
+ *	{ "tps6598x", IRQ_RESOURCE_APIC, 0 },
+ *	{ "tps6598x", IRQ_RESOURCE_APIC, 1 },
+ *	{ "tps6598x", IRQ_RESOURCE_APIC, 2 },
+ *	{ "tps6598x", IRQ_RESOURCE_APIC, 3 },
+ *	{ }
+ * };
+ */
 
 /*
  * Note new device-ids must also be added to i2c_multi_instantiate_ids in
@@ -181,7 +197,6 @@
 static const struct acpi_device_id i2c_multi_inst_acpi_ids[] = {
 	{ "BSG1160", (unsigned long)bsg1160_data },
 	{ "BSG2150", (unsigned long)bsg2150_data },
-	{ "INT3515", (unsigned long)int3515_data },
 	{ }
 };
 MODULE_DEVICE_TABLE(acpi, i2c_multi_inst_acpi_ids);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/ideapad-laptop.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/ideapad-laptop.c
@@ -92,6 +92,7 @@
 	struct dentry *debug;
 	unsigned long cfg;
 	bool has_hw_rfkill_switch;
+	bool has_touchpad_switch;
 	const char *fnesc_guid;
 };
 
@@ -535,7 +536,9 @@
 	} else if (attr == &dev_attr_fn_lock.attr) {
 		supported = acpi_has_method(priv->adev->handle, "HALS") &&
 			acpi_has_method(priv->adev->handle, "SALS");
-	} else
+	} else if (attr == &dev_attr_touchpad.attr)
+		supported = priv->has_touchpad_switch;
+	else
 		supported = true;
 
 	return supported ? attr->mode : 0;
@@ -867,6 +870,9 @@
 {
 	unsigned long value;
 
+	if (!priv->has_touchpad_switch)
+		return;
+
 	/* Without reading from EC touchpad LED doesn't switch state */
 	if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) {
 		/* Some IdeaPads don't really turn off touchpad - they only
@@ -989,6 +995,9 @@
 	priv->platform_device = pdev;
 	priv->has_hw_rfkill_switch = dmi_check_system(hw_rfkill_list);
 
+	/* Most ideapads with ELAN0634 touchpad don't use EC touchpad switch */
+	priv->has_touchpad_switch = !acpi_dev_present("ELAN0634", NULL, -1);
+
 	ret = ideapad_sysfs_init(priv);
 	if (ret)
 		return ret;
@@ -1006,6 +1015,10 @@
 	if (!priv->has_hw_rfkill_switch)
 		write_ec_cmd(priv->adev->handle, VPCCMD_W_RF, 1);
 
+	/* The same for Touchpad */
+	if (!priv->has_touchpad_switch)
+		write_ec_cmd(priv->adev->handle, VPCCMD_W_TOUCHPAD, 1);
+
 	for (i = 0; i < IDEAPAD_RFKILL_DEV_NUM; i++)
 		if (test_bit(ideapad_rfk_data[i].cfgbit, &priv->cfg))
 			ideapad_register_rfkill(priv, i);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel-hid.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel-hid.c
@@ -20,8 +20,11 @@
 
 static const struct acpi_device_id intel_hid_ids[] = {
 	{"INT33D5", 0},
+	{"INTC1051", 0},
+	{"INTC1054", 0},
 	{"", 0},
 };
+MODULE_DEVICE_TABLE(acpi, intel_hid_ids);
 
 /* In theory, these are HID usages. */
 static const struct key_entry intel_hid_keymap[] = {
@@ -77,6 +80,13 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "Wacom MobileStudio Pro 16"),
 		},
 	},
+	{
+		.ident = "HP Spectre x2 (2015)",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x2 Detachable"),
+		},
+	},
 	{ }
 };
 
@@ -540,7 +550,6 @@
 	.probe = intel_hid_probe,
 	.remove = intel_hid_remove,
 };
-MODULE_DEVICE_TABLE(acpi, intel_hid_ids);
 
 /*
  * Unfortunately, some laptops provide a _HID="INT33D5" device with
@@ -563,7 +572,7 @@
 		return AE_OK;
 
 	if (acpi_match_device_ids(dev, ids) == 0)
-		if (acpi_create_platform_device(dev, NULL))
+		if (!IS_ERR_OR_NULL(acpi_create_platform_device(dev, NULL)))
 			dev_info(&dev->dev,
 				 "intel-hid: created platform device\n");
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel-vbtn.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel-vbtn.c
@@ -15,9 +15,13 @@
 #include <linux/platform_device.h>
 #include <linux/suspend.h>
 
+/* Returned when NOT in tablet mode on some HP Stream x360 11 models */
+#define VGBS_TABLET_MODE_FLAG_ALT	0x10
 /* When NOT in tablet mode, VGBS returns with the flag 0x40 */
-#define TABLET_MODE_FLAG 0x40
-#define DOCK_MODE_FLAG   0x80
+#define VGBS_TABLET_MODE_FLAG		0x40
+#define VGBS_DOCK_MODE_FLAG		0x80
+
+#define VGBS_TABLET_MODE_FLAGS (VGBS_TABLET_MODE_FLAG | VGBS_TABLET_MODE_FLAG_ALT)
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("AceLan Kao");
@@ -39,28 +43,51 @@
 	{ KE_IGNORE, 0xC7, { KEY_VOLUMEDOWN } },	/* volume-down key release */
 	{ KE_KEY,    0xC8, { KEY_ROTATE_LOCK_TOGGLE } },	/* rotate-lock key press */
 	{ KE_KEY,    0xC9, { KEY_ROTATE_LOCK_TOGGLE } },	/* rotate-lock key release */
+};
+
+static const struct key_entry intel_vbtn_switchmap[] = {
 	{ KE_SW,     0xCA, { .sw = { SW_DOCK, 1 } } },		/* Docked */
 	{ KE_SW,     0xCB, { .sw = { SW_DOCK, 0 } } },		/* Undocked */
 	{ KE_SW,     0xCC, { .sw = { SW_TABLET_MODE, 1 } } },	/* Tablet */
 	{ KE_SW,     0xCD, { .sw = { SW_TABLET_MODE, 0 } } },	/* Laptop */
-	{ KE_END },
 };
 
+#define KEYMAP_LEN \
+	(ARRAY_SIZE(intel_vbtn_keymap) + ARRAY_SIZE(intel_vbtn_switchmap) + 1)
+
 struct intel_vbtn_priv {
+	struct key_entry keymap[KEYMAP_LEN];
 	struct input_dev *input_dev;
+	bool has_switches;
 	bool wakeup_mode;
 };
 
 static int intel_vbtn_input_setup(struct platform_device *device)
 {
 	struct intel_vbtn_priv *priv = dev_get_drvdata(&device->dev);
-	int ret;
+	int ret, keymap_len = 0;
+
+	if (true) {
+		memcpy(&priv->keymap[keymap_len], intel_vbtn_keymap,
+		       ARRAY_SIZE(intel_vbtn_keymap) *
+		       sizeof(struct key_entry));
+		keymap_len += ARRAY_SIZE(intel_vbtn_keymap);
+	}
+
+	if (priv->has_switches) {
+		memcpy(&priv->keymap[keymap_len], intel_vbtn_switchmap,
+		       ARRAY_SIZE(intel_vbtn_switchmap) *
+		       sizeof(struct key_entry));
+		keymap_len += ARRAY_SIZE(intel_vbtn_switchmap);
+	}
+
+	priv->keymap[keymap_len].type = KE_END;
 
 	priv->input_dev = devm_input_allocate_device(&device->dev);
 	if (!priv->input_dev)
 		return -ENOMEM;
 
-	ret = sparse_keymap_setup(priv->input_dev, intel_vbtn_keymap, NULL);
+	ret = sparse_keymap_setup(priv->input_dev, priv->keymap, NULL);
 	if (ret)
 		return ret;
 
@@ -115,31 +142,86 @@
 
 static void detect_tablet_mode(struct platform_device *device)
 {
-	const char *chassis_type = dmi_get_system_info(DMI_CHASSIS_TYPE);
 	struct intel_vbtn_priv *priv = dev_get_drvdata(&device->dev);
 	acpi_handle handle = ACPI_HANDLE(&device->dev);
-	struct acpi_buffer vgbs_output = { ACPI_ALLOCATE_BUFFER, NULL };
-	union acpi_object *obj;
+	unsigned long long vgbs;
 	acpi_status status;
 	int m;
 
-	if (!(chassis_type && strcmp(chassis_type, "31") == 0))
-		goto out;
-
-	status = acpi_evaluate_object(handle, "VGBS", NULL, &vgbs_output);
+	status = acpi_evaluate_integer(handle, "VGBS", NULL, &vgbs);
 	if (ACPI_FAILURE(status))
-		goto out;
-
-	obj = vgbs_output.pointer;
-	if (!(obj && obj->type == ACPI_TYPE_INTEGER))
-		goto out;
+		return;
 
-	m = !(obj->integer.value & TABLET_MODE_FLAG);
+	m = !(vgbs & VGBS_TABLET_MODE_FLAGS);
 	input_report_switch(priv->input_dev, SW_TABLET_MODE, m);
-	m = (obj->integer.value & DOCK_MODE_FLAG) ? 1 : 0;
+	m = (vgbs & VGBS_DOCK_MODE_FLAG) ? 1 : 0;
 	input_report_switch(priv->input_dev, SW_DOCK, m);
-out:
-	kfree(vgbs_output.pointer);
+}
+
+/*
+ * There are several laptops (non 2-in-1) models out there which support VGBS,
+ * but simply always return 0, which we translate to SW_TABLET_MODE=1. This in
+ * turn causes userspace (libinput) to suppress events from the builtin
+ * keyboard and touchpad, making the laptop essentially unusable.
+ *
+ * Since the problem of wrongly reporting SW_TABLET_MODE=1 in combination
+ * with libinput, leads to a non-usable system. Where as OTOH many people will
+ * not even notice when SW_TABLET_MODE is not being reported, a DMI based allow
+ * list is used here. This list mainly matches on the chassis-type of 2-in-1s.
+ *
+ * There are also some 2-in-1s which use the intel-vbtn ACPI interface to report
+ * SW_TABLET_MODE with a chassis-type of 8 ("Portable") or 10 ("Notebook"),
+ * these are matched on a per model basis, since many normal laptops with a
+ * possible broken VGBS ACPI-method also use these chassis-types.
+ */
+static const struct dmi_system_id dmi_switches_allow_list[] = {
+	{
+		.matches = {
+			DMI_EXACT_MATCH(DMI_CHASSIS_TYPE, "31" /* Convertible */),
+		},
+	},
+	{
+		.matches = {
+			DMI_EXACT_MATCH(DMI_CHASSIS_TYPE, "32" /* Detachable */),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion 13 x360 PC"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Switch SA5-271"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7352"),
+		},
+	},
+	{} /* Array terminator */
+};
+
+static bool intel_vbtn_has_switches(acpi_handle handle)
+{
+	unsigned long long vgbs;
+	acpi_status status;
+
+	if (!dmi_check_system(dmi_switches_allow_list))
+		return false;
+
+	status = acpi_evaluate_integer(handle, "VGBS", NULL, &vgbs);
+	return ACPI_SUCCESS(status);
 }
 
 static int intel_vbtn_probe(struct platform_device *device)
@@ -160,13 +242,16 @@
 		return -ENOMEM;
 	dev_set_drvdata(&device->dev, priv);
 
+	priv->has_switches = intel_vbtn_has_switches(handle);
+
 	err = intel_vbtn_input_setup(device);
 	if (err) {
 		pr_err("Failed to setup Intel Virtual Button\n");
 		return err;
 	}
 
-	detect_tablet_mode(device);
+	if (priv->has_switches)
+		detect_tablet_mode(device);
 
 	status = acpi_install_notify_handler(handle,
 					     ACPI_DEVICE_NOTIFY,
@@ -251,7 +336,7 @@
 		return AE_OK;
 
 	if (acpi_match_device_ids(dev, ids) == 0)
-		if (acpi_create_platform_device(dev, NULL))
+		if (!IS_ERR_OR_NULL(acpi_create_platform_device(dev, NULL)))
 			dev_info(&dev->dev,
 				 "intel-vbtn: created platform device\n");
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_int0002_vgpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_int0002_vgpio.c
@@ -127,6 +127,14 @@
 	return IRQ_HANDLED;
 }
 
+static bool int0002_check_wake(void *data)
+{
+	u32 gpe_sts_reg;
+
+	gpe_sts_reg = inl(GPE0A_STS_PORT);
+	return (gpe_sts_reg & GPE0A_PME_B0_STS_BIT);
+}
+
 static struct irq_chip int0002_byt_irqchip = {
 	.name			= DRV_NAME,
 	.irq_ack		= int0002_irq_ack,
@@ -220,6 +228,7 @@
 
 	gpiochip_set_chained_irqchip(chip, irq_chip, irq, NULL);
 
+	acpi_register_wakeup_handler(irq, int0002_check_wake, NULL);
 	device_init_wakeup(dev, true);
 	return 0;
 }
@@ -227,6 +236,7 @@
 static int int0002_remove(struct platform_device *pdev)
 {
 	device_init_wakeup(&pdev->dev, false);
+	acpi_unregister_wakeup_handler(int0002_check_wake, NULL);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_ips.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_ips.c
@@ -1432,6 +1432,14 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook"),
 		},
 	},
+	{
+		.callback = ips_blacklist_callback,
+		.ident = "G60JX",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "G60JX"),
+		},
+	},
 	{ }	/* terminating entry */
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_mid_powerbtn.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_mid_powerbtn.c
@@ -146,9 +146,10 @@
 
 	input_set_capability(input, EV_KEY, KEY_POWER);
 
-	ddata = (struct mid_pb_ddata *)id->driver_data;
+	ddata = devm_kmemdup(&pdev->dev, (void *)id->driver_data,
+			     sizeof(*ddata), GFP_KERNEL);
 	if (!ddata)
-		return -ENODATA;
+		return -ENOMEM;
 
 	ddata->dev = &pdev->dev;
 	ddata->irq = irq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_pmc_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_pmc_core.c
@@ -158,8 +158,9 @@
 	.pm_vric1_offset = SPT_PMC_VRIC1_OFFSET,
 };
 
-/* Cannonlake: PGD PFET Enable Ack Status Register(s) bitmap */
+/* Cannon Lake: PGD PFET Enable Ack Status Register(s) bitmap */
 static const struct pmc_bit_map cnp_pfear_map[] = {
+	/* Reserved for Cannon Lake but valid for Comet Lake */
 	{"PMC",                 BIT(0)},
 	{"OPI-DMI",             BIT(1)},
 	{"SPI/eSPI",            BIT(2)},
@@ -185,7 +186,7 @@
 	{"SDX",                 BIT(4)},
 	{"SPE",                 BIT(5)},
 	{"Fuse",                BIT(6)},
-	/* Reserved for Cannonlake but valid for Icelake */
+	/* Reserved for Cannon Lake but valid for Ice Lake and Comet Lake */
 	{"SBR8",		BIT(7)},
 
 	{"CSME_FSC",            BIT(0)},
@@ -229,12 +230,12 @@
 	{"HDA_PGD4",            BIT(2)},
 	{"HDA_PGD5",            BIT(3)},
 	{"HDA_PGD6",            BIT(4)},
-	/* Reserved for Cannonlake but valid for Icelake */
+	/* Reserved for Cannon Lake but valid for Ice Lake and Comet Lake */
 	{"PSF6",		BIT(5)},
 	{"PSF7",		BIT(6)},
 	{"PSF8",		BIT(7)},
 
-	/* Icelake generation onwards only */
+	/* Ice Lake generation onwards only */
 	{"RES_65",		BIT(0)},
 	{"RES_66",		BIT(1)},
 	{"RES_67",		BIT(2)},
@@ -324,7 +325,7 @@
 	{"ISH",			CNP_PMC_LTR_ISH},
 	{"UFSX2",		CNP_PMC_LTR_UFSX2},
 	{"EMMC",		CNP_PMC_LTR_EMMC},
-	/* Reserved for Cannonlake but valid for Icelake */
+	/* Reserved for Cannon Lake but valid for Ice Lake */
 	{"WIGIG",		ICL_PMC_LTR_WIGIG},
 	/* Below two cannot be used for LTR_IGNORE */
 	{"CURRENT_PLATFORM",	CNP_PMC_LTR_CUR_PLT},
@@ -813,6 +814,8 @@
 	INTEL_CPU_FAM6(CANNONLAKE_L, cnp_reg_map),
 	INTEL_CPU_FAM6(ICELAKE_L, icl_reg_map),
 	INTEL_CPU_FAM6(ICELAKE_NNPI, icl_reg_map),
+	INTEL_CPU_FAM6(COMETLAKE, cnp_reg_map),
+	INTEL_CPU_FAM6(COMETLAKE_L, cnp_reg_map),
 	{}
 };
 
@@ -871,8 +874,8 @@
 	pmcdev->map = (struct pmc_reg_map *)cpu_id->driver_data;
 
 	/*
-	 * Coffeelake has CPU ID of Kabylake and Cannonlake PCH. So here
-	 * Sunrisepoint PCH regmap can't be used. Use Cannonlake PCH regmap
+	 * Coffee Lake has CPU ID of Kaby Lake and Cannon Lake PCH. So here
+	 * Sunrisepoint PCH regmap can't be used. Use Cannon Lake PCH regmap
 	 * in this case.
 	 */
 	if (pmcdev->map == &spt_reg_map && !pci_dev_present(pmc_pci_ids))
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_pmc_core_pltdrv.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_pmc_core_pltdrv.c
@@ -44,6 +44,8 @@
 	INTEL_CPU_FAM6(KABYLAKE, pmc_core_device),
 	INTEL_CPU_FAM6(CANNONLAKE_L, pmc_core_device),
 	INTEL_CPU_FAM6(ICELAKE_L, pmc_core_device),
+	INTEL_CPU_FAM6(COMETLAKE, pmc_core_device),
+	INTEL_CPU_FAM6(COMETLAKE_L, pmc_core_device),
 	{}
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_pmc_core_platform_ids);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_scu_ipc.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_scu_ipc.c
@@ -67,26 +67,22 @@
 struct intel_scu_ipc_pdata_t {
 	u32 i2c_base;
 	u32 i2c_len;
-	u8 irq_mode;
 };
 
 static const struct intel_scu_ipc_pdata_t intel_scu_ipc_lincroft_pdata = {
 	.i2c_base = 0xff12b000,
 	.i2c_len = 0x10,
-	.irq_mode = 0,
 };
 
 /* Penwell and Cloverview */
 static const struct intel_scu_ipc_pdata_t intel_scu_ipc_penwell_pdata = {
 	.i2c_base = 0xff12b000,
 	.i2c_len = 0x10,
-	.irq_mode = 1,
 };
 
 static const struct intel_scu_ipc_pdata_t intel_scu_ipc_tangier_pdata = {
 	.i2c_base  = 0xff00d000,
 	.i2c_len = 0x10,
-	.irq_mode = 0,
 };
 
 struct intel_scu_ipc_dev {
@@ -99,6 +95,9 @@
 
 static struct intel_scu_ipc_dev  ipcdev; /* Only one for now */
 
+#define IPC_STATUS		0x04
+#define IPC_STATUS_IRQ		BIT(2)
+
 /*
  * IPC Read Buffer (Read Only):
  * 16 byte buffer for receiving data from SCU, if IPC command
@@ -120,11 +119,8 @@
  */
 static inline void ipc_command(struct intel_scu_ipc_dev *scu, u32 cmd)
 {
-	if (scu->irq_mode) {
-		reinit_completion(&scu->cmd_complete);
-		writel(cmd | IPC_IOC, scu->ipc_base);
-	}
-	writel(cmd, scu->ipc_base);
+	reinit_completion(&scu->cmd_complete);
+	writel(cmd | IPC_IOC, scu->ipc_base);
 }
 
 /*
@@ -610,9 +606,10 @@
 static irqreturn_t ioc(int irq, void *dev_id)
 {
 	struct intel_scu_ipc_dev *scu = dev_id;
+	int status = ipc_read_status(scu);
 
-	if (scu->irq_mode)
-		complete(&scu->cmd_complete);
+	writel(status | IPC_STATUS_IRQ, scu->ipc_base + IPC_STATUS);
+	complete(&scu->cmd_complete);
 
 	return IRQ_HANDLED;
 }
@@ -638,8 +635,6 @@
 	if (!pdata)
 		return -ENODEV;
 
-	scu->irq_mode = pdata->irq_mode;
-
 	err = pcim_enable_device(pdev);
 	if (err)
 		return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_speed_select_if/isst_if_common.h
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_speed_select_if/isst_if_common.h
@@ -13,6 +13,9 @@
 #define INTEL_RAPL_PRIO_DEVID_0	0x3451
 #define INTEL_CFG_MBOX_DEVID_0	0x3459
 
+#define INTEL_RAPL_PRIO_DEVID_1 0x3251
+#define INTEL_CFG_MBOX_DEVID_1  0x3259
+
 /*
  * Validate maximum commands in a single request.
  * This is enough to handle command to every core in one ioctl, or all
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_speed_select_if/isst_if_mbox_pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_speed_select_if/isst_if_mbox_pci.c
@@ -148,6 +148,7 @@
 
 static const struct pci_device_id isst_if_mbox_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, INTEL_CFG_MBOX_DEVID_0)},
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, INTEL_CFG_MBOX_DEVID_1)},
 	{ 0 },
 };
 MODULE_DEVICE_TABLE(pci, isst_if_mbox_ids);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/intel_speed_select_if/isst_if_mmio.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/intel_speed_select_if/isst_if_mmio.c
@@ -72,6 +72,7 @@
 
 static const struct pci_device_id isst_if_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, INTEL_RAPL_PRIO_DEVID_0)},
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, INTEL_RAPL_PRIO_DEVID_1)},
 	{ 0 },
 };
 MODULE_DEVICE_TABLE(pci, isst_if_ids);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/mlx-platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/mlx-platform.c
@@ -234,24 +234,6 @@
 };
 
 /* Platform hotplug devices */
-static struct i2c_board_info mlxplat_mlxcpld_psu[] = {
-	{
-		I2C_BOARD_INFO("24c02", 0x51),
-	},
-	{
-		I2C_BOARD_INFO("24c02", 0x50),
-	},
-};
-
-static struct i2c_board_info mlxplat_mlxcpld_ng_psu[] = {
-	{
-		I2C_BOARD_INFO("24c32", 0x51),
-	},
-	{
-		I2C_BOARD_INFO("24c32", 0x50),
-	},
-};
-
 static struct i2c_board_info mlxplat_mlxcpld_pwr[] = {
 	{
 		I2C_BOARD_INFO("dps460", 0x59),
@@ -282,15 +264,13 @@
 		.label = "psu1",
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = BIT(0),
-		.hpdev.brdinfo = &mlxplat_mlxcpld_psu[0],
-		.hpdev.nr = MLXPLAT_CPLD_PSU_DEFAULT_NR,
+		.hpdev.nr = MLXPLAT_CPLD_NR_NONE,
 	},
 	{
 		.label = "psu2",
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = BIT(1),
-		.hpdev.brdinfo = &mlxplat_mlxcpld_psu[1],
-		.hpdev.nr = MLXPLAT_CPLD_PSU_DEFAULT_NR,
+		.hpdev.nr = MLXPLAT_CPLD_NR_NONE,
 	},
 };
 
@@ -357,7 +337,7 @@
 		.aggr_mask = MLXPLAT_CPLD_AGGR_PSU_MASK_DEF,
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = MLXPLAT_CPLD_PSU_MASK,
-		.count = ARRAY_SIZE(mlxplat_mlxcpld_psu),
+		.count = ARRAY_SIZE(mlxplat_mlxcpld_default_psu_items_data),
 		.inversed = 1,
 		.health = false,
 	},
@@ -366,7 +346,7 @@
 		.aggr_mask = MLXPLAT_CPLD_AGGR_PWR_MASK_DEF,
 		.reg = MLXPLAT_CPLD_LPC_REG_PWR_OFFSET,
 		.mask = MLXPLAT_CPLD_PWR_MASK,
-		.count = ARRAY_SIZE(mlxplat_mlxcpld_pwr),
+		.count = ARRAY_SIZE(mlxplat_mlxcpld_default_pwr_items_data),
 		.inversed = 0,
 		.health = false,
 	},
@@ -375,7 +355,7 @@
 		.aggr_mask = MLXPLAT_CPLD_AGGR_FAN_MASK_DEF,
 		.reg = MLXPLAT_CPLD_LPC_REG_FAN_OFFSET,
 		.mask = MLXPLAT_CPLD_FAN_MASK,
-		.count = ARRAY_SIZE(mlxplat_mlxcpld_fan),
+		.count = ARRAY_SIZE(mlxplat_mlxcpld_default_fan_items_data),
 		.inversed = 1,
 		.health = false,
 	},
@@ -453,15 +433,13 @@
 		.label = "psu1",
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = BIT(0),
-		.hpdev.brdinfo = &mlxplat_mlxcpld_psu[0],
-		.hpdev.nr = MLXPLAT_CPLD_PSU_MSNXXXX_NR,
+		.hpdev.nr = MLXPLAT_CPLD_NR_NONE,
 	},
 	{
 		.label = "psu2",
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = BIT(1),
-		.hpdev.brdinfo = &mlxplat_mlxcpld_psu[1],
-		.hpdev.nr = MLXPLAT_CPLD_PSU_MSNXXXX_NR,
+		.hpdev.nr = MLXPLAT_CPLD_NR_NONE,
 	},
 };
 
@@ -611,15 +589,13 @@
 		.label = "psu1",
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = BIT(0),
-		.hpdev.brdinfo = &mlxplat_mlxcpld_ng_psu[0],
-		.hpdev.nr = MLXPLAT_CPLD_PSU_MSNXXXX_NR,
+		.hpdev.nr = MLXPLAT_CPLD_NR_NONE,
 	},
 	{
 		.label = "psu2",
 		.reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
 		.mask = BIT(1),
-		.hpdev.brdinfo = &mlxplat_mlxcpld_ng_psu[1],
-		.hpdev.nr = MLXPLAT_CPLD_PSU_MSNXXXX_NR,
+		.hpdev.nr = MLXPLAT_CPLD_NR_NONE,
 	},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/pcengines-apuv2.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/pcengines-apuv2.c
@@ -95,7 +95,7 @@
 				NULL, 1, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_LINE_LED3,
 				NULL, 2, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_REG_SIMSWAP,
+		GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_LINE_SIMSWAP,
 				NULL, 3, GPIO_ACTIVE_LOW),
 	}
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/peaq-wmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/peaq-wmi.c
@@ -6,7 +6,7 @@
 
 #include <linux/acpi.h>
 #include <linux/dmi.h>
-#include <linux/input-polldev.h>
+#include <linux/input.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 
@@ -18,8 +18,7 @@
 
 MODULE_ALIAS("wmi:"PEAQ_DOLBY_BUTTON_GUID);
 
-static unsigned int peaq_ignore_events_counter;
-static struct input_polled_dev *peaq_poll_dev;
+static struct input_dev *peaq_poll_dev;
 
 /*
  * The Dolby button (yes really a Dolby button) causes an ACPI variable to get
@@ -28,8 +27,10 @@
  * (if polling after the release) or twice (polling between press and release).
  * We ignore events for 0.5s after the first event to avoid reporting 2 presses.
  */
-static void peaq_wmi_poll(struct input_polled_dev *dev)
+static void peaq_wmi_poll(struct input_dev *input_dev)
 {
+	static unsigned long last_event_time;
+	static bool had_events;
 	union acpi_object obj;
 	acpi_status status;
 	u32 dummy = 0;
@@ -44,22 +45,25 @@
 		return;
 
 	if (obj.type != ACPI_TYPE_INTEGER) {
-		dev_err(&peaq_poll_dev->input->dev,
+		dev_err(&input_dev->dev,
 			"Error WMBC did not return an integer\n");
 		return;
 	}
 
-	if (peaq_ignore_events_counter && peaq_ignore_events_counter--)
+	if (!obj.integer.value)
 		return;
 
-	if (obj.integer.value) {
-		input_event(peaq_poll_dev->input, EV_KEY, KEY_SOUND, 1);
-		input_sync(peaq_poll_dev->input);
-		input_event(peaq_poll_dev->input, EV_KEY, KEY_SOUND, 0);
-		input_sync(peaq_poll_dev->input);
-		peaq_ignore_events_counter = max(1u,
-			PEAQ_POLL_IGNORE_MS / peaq_poll_dev->poll_interval);
-	}
+	if (had_events && time_before(jiffies, last_event_time +
+					msecs_to_jiffies(PEAQ_POLL_IGNORE_MS)))
+		return;
+
+	input_event(input_dev, EV_KEY, KEY_SOUND, 1);
+	input_sync(input_dev);
+	input_event(input_dev, EV_KEY, KEY_SOUND, 0);
+	input_sync(input_dev);
+
+	last_event_time = jiffies;
+	had_events = true;
 }
 
 /* Some other devices (Shuttle XS35) use the same WMI GUID for other purposes */
@@ -75,6 +79,8 @@
 
 static int __init peaq_wmi_init(void)
 {
+	int err;
+
 	/* WMI GUID is not unique, also check for a DMI match */
 	if (!dmi_check_system(peaq_dmi_table))
 		return -ENODEV;
@@ -82,24 +88,36 @@
 	if (!wmi_has_guid(PEAQ_DOLBY_BUTTON_GUID))
 		return -ENODEV;
 
-	peaq_poll_dev = input_allocate_polled_device();
+	peaq_poll_dev = input_allocate_device();
 	if (!peaq_poll_dev)
 		return -ENOMEM;
 
-	peaq_poll_dev->poll = peaq_wmi_poll;
-	peaq_poll_dev->poll_interval = PEAQ_POLL_INTERVAL_MS;
-	peaq_poll_dev->poll_interval_max = PEAQ_POLL_MAX_MS;
-	peaq_poll_dev->input->name = "PEAQ WMI hotkeys";
-	peaq_poll_dev->input->phys = "wmi/input0";
-	peaq_poll_dev->input->id.bustype = BUS_HOST;
-	input_set_capability(peaq_poll_dev->input, EV_KEY, KEY_SOUND);
-
-	return input_register_polled_device(peaq_poll_dev);
+	peaq_poll_dev->name = "PEAQ WMI hotkeys";
+	peaq_poll_dev->phys = "wmi/input0";
+	peaq_poll_dev->id.bustype = BUS_HOST;
+	input_set_capability(peaq_poll_dev, EV_KEY, KEY_SOUND);
+
+	err = input_setup_polling(peaq_poll_dev, peaq_wmi_poll);
+	if (err)
+		goto err_out;
+
+	input_set_poll_interval(peaq_poll_dev, PEAQ_POLL_INTERVAL_MS);
+	input_set_max_poll_interval(peaq_poll_dev, PEAQ_POLL_MAX_MS);
+
+	err = input_register_device(peaq_poll_dev);
+	if (err)
+		goto err_out;
+
+	return 0;
+
+err_out:
+	input_free_device(peaq_poll_dev);
+	return err;
 }
 
 static void __exit peaq_wmi_exit(void)
 {
-	input_unregister_polled_device(peaq_poll_dev);
+	input_unregister_device(peaq_poll_dev);
 }
 
 module_init(peaq_wmi_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/pmc_atom.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/pmc_atom.c
@@ -385,6 +385,14 @@
 	},
 	{
 		/* pmc_plt_clk* - are used for ethernet controllers */
+		.ident = "Lex 2I385SW",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Lex BayTrail"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "2I385SW"),
+		},
+	},
+	{
+		/* pmc_plt_clk* - are used for ethernet controllers */
 		.ident = "Beckhoff CB3163",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Beckhoff Automation"),
@@ -429,6 +437,14 @@
 			DMI_MATCH(DMI_PRODUCT_VERSION, "6AV7882-0"),
 		},
 	},
+	{
+		.ident = "CONNECT X300",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SIEMENS AG"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "A5E45074588"),
+		},
+	},
+
 	{ /*sentinel*/ }
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/thinkpad_acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/thinkpad_acpi.c
@@ -2587,7 +2587,7 @@
  */
 static int hotkey_kthread(void *data)
 {
-	struct tp_nvram_state s[2];
+	struct tp_nvram_state s[2] = { 0 };
 	u32 poll_mask, event_mask;
 	unsigned int si, so;
 	unsigned long t;
@@ -3232,7 +3232,14 @@
 
 		in_tablet_mode = hotkey_gmms_get_tablet_mode(res,
 							     &has_tablet_mode);
-		if (has_tablet_mode)
+		/*
+		 * The Yoga 11e series has 2 accelerometers described by a
+		 * BOSC0200 ACPI node. This setup relies on a Windows service
+		 * which calls special ACPI methods on this node to report
+		 * the laptop/tent/tablet mode to the EC. The bmc150 iio driver
+		 * does not support this, so skip the hotkey on these models.
+		 */
+		if (has_tablet_mode && !acpi_dev_present("BOSC0200", "1", -1))
 			tp_features.hotkey_tablet = TP_HOTKEY_TABLET_USES_GMMS;
 		type = "GMMS";
 	} else if (acpi_evalf(hkey_handle, &res, "MHKG", "qd")) {
@@ -4238,6 +4245,7 @@
 		pr_err("error while attempting to reset the event firmware interface\n");
 
 	tpacpi_send_radiosw_update();
+	tpacpi_input_send_tabletsw();
 	hotkey_tablet_mode_notify_change();
 	hotkey_wakeup_reason_notify_change();
 	hotkey_wakeup_hotunplug_complete_notify_change();
@@ -6863,8 +6871,10 @@
 	list_for_each_entry(child, &device->children, node) {
 		acpi_status status = acpi_evaluate_object(child->handle, "_BCL",
 							  NULL, &buffer);
-		if (ACPI_FAILURE(status))
+		if (ACPI_FAILURE(status)) {
+			buffer.length = ACPI_ALLOCATE_BUFFER;
 			continue;
+		}
 
 		obj = (union acpi_object *)buffer.pointer;
 		if (!obj || (obj->type != ACPI_TYPE_PACKAGE)) {
@@ -6997,10 +7007,13 @@
 			pr_warn("Cannot enable backlight brightness support, ACPI is already handling it.  Refer to the acpi_backlight kernel parameter.\n");
 			return 1;
 		}
-	} else if (tp_features.bright_acpimode && brightness_enable > 1) {
-		pr_notice("Standard ACPI backlight interface not available, thinkpad_acpi native brightness control enabled\n");
+	} else if (!tp_features.bright_acpimode) {
+		pr_notice("ACPI backlight interface not available\n");
+		return 1;
 	}
 
+	pr_notice("ACPI native brightness control enabled\n");
+
 	/*
 	 * Check for module parameter bogosity, note that we
 	 * init brightness_mode to TPACPI_BRGHT_MODE_MAX in order to be
@@ -9687,6 +9700,7 @@
 	TPACPI_Q_LNV3('R', '0', 'B', true), /* Thinkpad 11e gen 3 */
 	TPACPI_Q_LNV3('R', '0', 'C', true), /* Thinkpad 13 */
 	TPACPI_Q_LNV3('R', '0', 'J', true), /* Thinkpad 13 gen 2 */
+	TPACPI_Q_LNV3('R', '0', 'K', true), /* Thinkpad 11e gen 4 celeron BIOS */
 };
 
 static int __init tpacpi_battery_init(struct ibm_init_struct *ibm)
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/toshiba_acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/toshiba_acpi.c
@@ -1485,7 +1485,7 @@
 	struct toshiba_acpi_dev *dev = PDE_DATA(file_inode(file));
 	char *buffer;
 	char *cmd;
-	int lcd_out, crt_out, tv_out;
+	int lcd_out = -1, crt_out = -1, tv_out = -1;
 	int remain = count;
 	int value;
 	int ret;
@@ -1517,7 +1517,6 @@
 
 	kfree(cmd);
 
-	lcd_out = crt_out = tv_out = -1;
 	ret = get_video_status(dev, &video_out);
 	if (!ret) {
 		unsigned int new_video_out = video_out;
--- linux-gkeop-5.4-5.4.0.orig/drivers/platform/x86/touchscreen_dmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/platform/x86/touchscreen_dmi.c
@@ -231,6 +231,16 @@
 	.properties	= digma_citi_e200_props,
 };
 
+static const struct property_entry estar_beauty_hd_props[] = {
+	PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"),
+	{ }
+};
+
+static const struct ts_dmi_data estar_beauty_hd_data = {
+	.acpi_name	= "GDIX1001:00",
+	.properties	= estar_beauty_hd_props,
+};
+
 static const struct property_entry gp_electronic_t701_props[] = {
 	PROPERTY_ENTRY_U32("touchscreen-size-x", 960),
 	PROPERTY_ENTRY_U32("touchscreen-size-y", 640),
@@ -264,6 +274,21 @@
 	.properties	= irbis_tw90_props,
 };
 
+static const struct property_entry irbis_tw118_props[] = {
+	PROPERTY_ENTRY_U32("touchscreen-min-x", 20),
+	PROPERTY_ENTRY_U32("touchscreen-min-y", 30),
+	PROPERTY_ENTRY_U32("touchscreen-size-x", 1960),
+	PROPERTY_ENTRY_U32("touchscreen-size-y", 1510),
+	PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-irbis-tw118.fw"),
+	PROPERTY_ENTRY_U32("silead,max-fingers", 10),
+	{ }
+};
+
+static const struct ts_dmi_data irbis_tw118_data = {
+	.acpi_name	= "MSSL1680:00",
+	.properties	= irbis_tw118_props,
+};
+
 static const struct property_entry itworks_tw891_props[] = {
 	PROPERTY_ENTRY_U32("touchscreen-min-x", 1),
 	PROPERTY_ENTRY_U32("touchscreen-min-y", 5),
@@ -733,6 +758,14 @@
 		},
 	},
 	{
+		/* Estar Beauty HD (MID 7316R) */
+		.driver_data = (void *)&estar_beauty_hd_data,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Estar"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "eSTAR BEAUTY HD Intel Quad core"),
+		},
+	},
+	{
 		/* GP-electronic T701 */
 		.driver_data = (void *)&gp_electronic_t701_data,
 		.matches = {
@@ -759,6 +792,14 @@
 		},
 	},
 	{
+		/* Irbis TW118 */
+		.driver_data = (void *)&irbis_tw118_data,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "IRBIS"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "TW118"),
+		},
+	},
+	{
 		/* I.T.Works TW891 */
 		.driver_data = (void *)&itworks_tw891_data,
 		.matches = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pnp/isapnp/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/pnp/isapnp/core.c
@@ -27,6 +27,7 @@
 #include <linux/init.h>
 #include <linux/isapnp.h>
 #include <linux/mutex.h>
+#include <linux/async.h>
 #include <asm/io.h>
 
 #include "../base.h"
@@ -973,7 +974,7 @@
 	.disable = isapnp_disable_resources,
 };
 
-static int __init isapnp_init(void)
+static int __init real_isapnp_init(void)
 {
 	int cards;
 	struct pnp_card *card;
@@ -1067,6 +1068,16 @@
 	return 0;
 }
 
+static void __init async_isapnp_init(void *unused, async_cookie_t cookie)
+{
+	(void)real_isapnp_init();
+}
+
+static int __init isapnp_init(void)
+{
+	async_schedule(async_isapnp_init, NULL);
+	return 0;
+}
 device_initcall(isapnp_init);
 
 /* format is: noisapnp */
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/reset/at91-sama5d2_shdwc.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/reset/at91-sama5d2_shdwc.c
@@ -37,7 +37,7 @@
 
 #define AT91_SHDW_MR	0x04		/* Shut Down Mode Register */
 #define AT91_SHDW_WKUPDBC_SHIFT	24
-#define AT91_SHDW_WKUPDBC_MASK	GENMASK(31, 16)
+#define AT91_SHDW_WKUPDBC_MASK	GENMASK(26, 24)
 #define AT91_SHDW_WKUPDBC(x)	(((x) << AT91_SHDW_WKUPDBC_SHIFT) \
 						& AT91_SHDW_WKUPDBC_MASK)
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/reset/vexpress-poweroff.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/reset/vexpress-poweroff.c
@@ -143,6 +143,7 @@
 	.driver = {
 		.name = "vexpress-reset",
 		.of_match_table = vexpress_reset_of_match,
+		.suppress_bind_attrs = true,
 	},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/88pm860x_battery.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/88pm860x_battery.c
@@ -433,7 +433,7 @@
 	int ret;
 	int data;
 	int bat_remove;
-	int soc;
+	int soc = 0;
 
 	/* measure enable on GPADC1 */
 	data = MEAS1_GP1;
@@ -496,7 +496,9 @@
 	}
 	mutex_unlock(&info->lock);
 
-	calc_soc(info, OCV_MODE_ACTIVE, &soc);
+	ret = calc_soc(info, OCV_MODE_ACTIVE, &soc);
+	if (ret < 0)
+		goto out;
 
 	data = pm860x_reg_read(info->i2c, PM8607_POWER_UP_LOG);
 	bat_remove = data & BAT_WU_LOG;
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/Kconfig
@@ -577,7 +577,7 @@
 	tristate "TI BQ24250/24251/24257 battery charger driver"
 	depends on I2C
 	depends on GPIOLIB || COMPILE_TEST
-	depends on REGMAP_I2C
+	select REGMAP_I2C
 	help
 	  Say Y to enable support for the TI BQ24250, BQ24251, and BQ24257 battery
 	  chargers.
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/axp20x_ac_power.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/axp20x_ac_power.c
@@ -23,6 +23,8 @@
 #define AXP20X_PWR_STATUS_ACIN_PRESENT	BIT(7)
 #define AXP20X_PWR_STATUS_ACIN_AVAIL	BIT(6)
 
+#define AXP813_ACIN_PATH_SEL		BIT(7)
+
 #define AXP813_VHOLD_MASK		GENMASK(5, 3)
 #define AXP813_VHOLD_UV_TO_BIT(x)	((((x) / 100000) - 40) << 3)
 #define AXP813_VHOLD_REG_TO_UV(x)	\
@@ -40,6 +42,7 @@
 	struct power_supply *supply;
 	struct iio_channel *acin_v;
 	struct iio_channel *acin_i;
+	bool has_acin_path_sel;
 };
 
 static irqreturn_t axp20x_ac_power_irq(int irq, void *devid)
@@ -86,6 +89,17 @@
 			return ret;
 
 		val->intval = !!(reg & AXP20X_PWR_STATUS_ACIN_AVAIL);
+
+		/* ACIN_PATH_SEL disables ACIN even if ACIN_AVAIL is set. */
+		if (val->intval && power->has_acin_path_sel) {
+			ret = regmap_read(power->regmap, AXP813_ACIN_PATH_CTRL,
+					  &reg);
+			if (ret)
+				return ret;
+
+			val->intval = !!(reg & AXP813_ACIN_PATH_SEL);
+		}
+
 		return 0;
 
 	case POWER_SUPPLY_PROP_VOLTAGE_NOW:
@@ -224,21 +238,25 @@
 struct axp_data {
 	const struct power_supply_desc	*power_desc;
 	bool				acin_adc;
+	bool				acin_path_sel;
 };
 
 static const struct axp_data axp20x_data = {
-	.power_desc = &axp20x_ac_power_desc,
-	.acin_adc = true,
+	.power_desc	= &axp20x_ac_power_desc,
+	.acin_adc	= true,
+	.acin_path_sel	= false,
 };
 
 static const struct axp_data axp22x_data = {
-	.power_desc = &axp22x_ac_power_desc,
-	.acin_adc = false,
+	.power_desc	= &axp22x_ac_power_desc,
+	.acin_adc	= false,
+	.acin_path_sel	= false,
 };
 
 static const struct axp_data axp813_data = {
-	.power_desc = &axp813_ac_power_desc,
-	.acin_adc = false,
+	.power_desc	= &axp813_ac_power_desc,
+	.acin_adc	= false,
+	.acin_path_sel	= true,
 };
 
 static int axp20x_ac_power_probe(struct platform_device *pdev)
@@ -282,6 +300,7 @@
 	}
 
 	power->regmap = dev_get_regmap(pdev->dev.parent, NULL);
+	power->has_acin_path_sel = axp_data->acin_path_sel;
 
 	platform_set_drvdata(pdev, power);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/axp288_charger.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/axp288_charger.c
@@ -21,6 +21,7 @@
 #include <linux/property.h>
 #include <linux/mfd/axp20x.h>
 #include <linux/extcon.h>
+#include <linux/dmi.h>
 
 #define PS_STAT_VBUS_TRIGGER		BIT(0)
 #define PS_STAT_BAT_CHRG_DIR		BIT(2)
@@ -545,6 +546,55 @@
 	return IRQ_HANDLED;
 }
 
+/*
+ * The HP Pavilion x2 10 series comes in a number of variants:
+ * Bay Trail SoC    + AXP288 PMIC, Micro-USB, DMI_BOARD_NAME: "8021"
+ * Bay Trail SoC    + AXP288 PMIC, Type-C,    DMI_BOARD_NAME: "815D"
+ * Cherry Trail SoC + AXP288 PMIC, Type-C,    DMI_BOARD_NAME: "813E"
+ * Cherry Trail SoC + TI PMIC,     Type-C,    DMI_BOARD_NAME: "827C" or "82F4"
+ *
+ * The variants with the AXP288 + Type-C connector are all kinds of special:
+ *
+ * 1. They use a Type-C connector which the AXP288 does not support, so when
+ * using a Type-C charger it is not recognized. Unlike most AXP288 devices,
+ * this model actually has mostly working ACPI AC / Battery code, the ACPI code
+ * "solves" this by simply setting the input_current_limit to 3A.
+ * There are still some issues with the ACPI code, so we use this native driver,
+ * and to solve the charging not working (500mA is not enough) issue we hardcode
+ * the 3A input_current_limit like the ACPI code does.
+ *
+ * 2. If no charger is connected the machine boots with the vbus-path disabled.
+ * Normally this is done when a 5V boost converter is active to avoid the PMIC
+ * trying to charge from the 5V boost converter's output. This is done when
+ * an OTG host cable is inserted and the ID pin on the micro-B receptacle is
+ * pulled low and the ID pin has an ACPI event handler associated with it
+ * which re-enables the vbus-path when the ID pin is pulled high when the
+ * OTG host cable is removed. The Type-C connector has no ID pin, there is
+ * no ID pin handler and there appears to be no 5V boost converter, so we
+ * end up not charging because the vbus-path is disabled, until we unplug
+ * the charger which automatically clears the vbus-path disable bit and then
+ * on the second plug-in of the adapter we start charging. To solve the not
+ * charging on first charger plugin we unconditionally enable the vbus-path at
+ * probe on this model, which is safe since there is no 5V boost converter.
+ */
+static const struct dmi_system_id axp288_hp_x2_dmi_ids[] = {
+	{
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
+			DMI_EXACT_MATCH(DMI_BOARD_NAME, "815D"),
+		},
+	},
+	{
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
+			DMI_EXACT_MATCH(DMI_BOARD_NAME, "813E"),
+		},
+	},
+	{} /* Terminating entry */
+};
+
 static void axp288_charger_extcon_evt_worker(struct work_struct *work)
 {
 	struct axp288_chrg_info *info =
@@ -568,7 +618,11 @@
 	}
 
 	/* Determine cable/charger type */
-	if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
+	if (dmi_check_system(axp288_hp_x2_dmi_ids)) {
+		/* See comment above axp288_hp_x2_dmi_ids declaration */
+		dev_dbg(&info->pdev->dev, "HP X2 with Type-C, setting inlmt to 3A\n");
+		current_limit = 3000000;
+	} else if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
 		dev_dbg(&info->pdev->dev, "USB SDP charger is connected\n");
 		current_limit = 500000;
 	} else if (extcon_get_state(edev, EXTCON_CHG_USB_CDP) > 0) {
@@ -685,6 +739,13 @@
 		return ret;
 	}
 
+	if (dmi_check_system(axp288_hp_x2_dmi_ids)) {
+		/* See comment above axp288_hp_x2_dmi_ids declaration */
+		ret = axp288_charger_vbus_path_select(info, true);
+		if (ret < 0)
+			return ret;
+	}
+
 	/* Read current charge voltage and current limit */
 	ret = regmap_read(info->regmap, AXP20X_CHRG_CTRL1, &val);
 	if (ret < 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/axp288_fuel_gauge.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/axp288_fuel_gauge.c
@@ -706,14 +706,14 @@
 	{
 		/* Intel Cherry Trail Compute Stick, Windows version */
 		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+			DMI_MATCH(DMI_SYS_VENDOR, "Intel"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "STK1AW32SC"),
 		},
 	},
 	{
 		/* Intel Cherry Trail Compute Stick, version without an OS */
 		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+			DMI_MATCH(DMI_SYS_VENDOR, "Intel"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "STK1A32SC"),
 		},
 	},
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/bd70528-charger.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/bd70528-charger.c
@@ -741,3 +741,4 @@
 MODULE_AUTHOR("Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>");
 MODULE_DESCRIPTION("BD70528 power-supply driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:bd70528-power");
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/bq24190_charger.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/bq24190_charger.c
@@ -448,8 +448,10 @@
 		return -EINVAL;
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	ret = bq24190_read_mask(bdi, info->reg, info->mask, info->shift, &v);
 	if (ret)
@@ -1075,8 +1077,10 @@
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_CHARGE_TYPE:
@@ -1147,8 +1151,10 @@
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_ONLINE:
@@ -1408,8 +1414,10 @@
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_STATUS:
@@ -1454,8 +1462,10 @@
 	dev_dbg(bdi->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(bdi->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(bdi->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_ONLINE:
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/bq27xxx_battery.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/bq27xxx_battery.c
@@ -1678,8 +1678,6 @@
 			status = POWER_SUPPLY_STATUS_FULL;
 		else if (di->cache.flags & BQ27000_FLAG_CHGS)
 			status = POWER_SUPPLY_STATUS_CHARGING;
-		else if (power_supply_am_i_supplied(di->bat) > 0)
-			status = POWER_SUPPLY_STATUS_NOT_CHARGING;
 		else
 			status = POWER_SUPPLY_STATUS_DISCHARGING;
 	} else {
@@ -1691,6 +1689,10 @@
 			status = POWER_SUPPLY_STATUS_CHARGING;
 	}
 
+	if ((status == POWER_SUPPLY_STATUS_DISCHARGING) &&
+	    (power_supply_am_i_supplied(di->bat) > 0))
+		status = POWER_SUPPLY_STATUS_NOT_CHARGING;
+
 	val->intval = status;
 
 	return 0;
@@ -1885,7 +1887,10 @@
 
 	di->bat = power_supply_register_no_ws(di->dev, psy_desc, &psy_cfg);
 	if (IS_ERR(di->bat)) {
-		dev_err(di->dev, "failed to register battery\n");
+		if (PTR_ERR(di->bat) == -EPROBE_DEFER)
+			dev_dbg(di->dev, "failed to register battery, deferring probe\n");
+		else
+			dev_err(di->dev, "failed to register battery\n");
 		return PTR_ERR(di->bat);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/cpcap-battery.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/cpcap-battery.c
@@ -562,12 +562,14 @@
 	switch (d->action) {
 	case CPCAP_BATTERY_IRQ_ACTION_BATTERY_LOW:
 		if (latest->current_ua >= 0)
-			dev_warn(ddata->dev, "Battery low at 3.3V!\n");
+			dev_warn(ddata->dev, "Battery low at %imV!\n",
+				latest->voltage / 1000);
 		break;
 	case CPCAP_BATTERY_IRQ_ACTION_POWEROFF:
-		if (latest->current_ua >= 0) {
+		if (latest->current_ua >= 0 && latest->voltage <= 3200000) {
 			dev_emerg(ddata->dev,
-				  "Battery empty at 3.1V, powering off\n");
+				  "Battery empty at %imV, powering off\n",
+				  latest->voltage / 1000);
 			orderly_poweroff(true);
 		}
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/ingenic-battery.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/ingenic-battery.c
@@ -100,10 +100,17 @@
 		return -EINVAL;
 	}
 
-	return iio_write_channel_attribute(bat->channel,
-					   scale_raw[best_idx],
-					   scale_raw[best_idx + 1],
-					   IIO_CHAN_INFO_SCALE);
+	/* Only set scale if there is more than one (fractional) entry */
+	if (scale_len > 2) {
+		ret = iio_write_channel_attribute(bat->channel,
+						  scale_raw[best_idx],
+						  scale_raw[best_idx + 1],
+						  IIO_CHAN_INFO_SCALE);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
 }
 
 static enum power_supply_property ingenic_battery_properties[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/lp8788-charger.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/lp8788-charger.c
@@ -572,27 +572,14 @@
 		return;
 
 	/* ADC channel for battery voltage */
-	chan = iio_channel_get(dev, pdata->adc_vbatt);
+	chan = devm_iio_channel_get(dev, pdata->adc_vbatt);
 	pchg->chan[LP8788_VBATT] = IS_ERR(chan) ? NULL : chan;
 
 	/* ADC channel for battery temperature */
-	chan = iio_channel_get(dev, pdata->adc_batt_temp);
+	chan = devm_iio_channel_get(dev, pdata->adc_batt_temp);
 	pchg->chan[LP8788_BATT_TEMP] = IS_ERR(chan) ? NULL : chan;
 }
 
-static void lp8788_release_adc_channel(struct lp8788_charger *pchg)
-{
-	int i;
-
-	for (i = 0; i < LP8788_NUM_CHG_ADC; i++) {
-		if (!pchg->chan[i])
-			continue;
-
-		iio_channel_release(pchg->chan[i]);
-		pchg->chan[i] = NULL;
-	}
-}
-
 static ssize_t lp8788_show_charger_status(struct device *dev,
 				struct device_attribute *attr, char *buf)
 {
@@ -735,7 +722,6 @@
 	flush_work(&pchg->charger_work);
 	lp8788_irq_unregister(pdev, pchg);
 	lp8788_psy_unregister(pchg);
-	lp8788_release_adc_channel(pchg);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/ltc2941-battery-gauge.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/ltc2941-battery-gauge.c
@@ -449,7 +449,7 @@
 {
 	struct ltc294x_info *info = i2c_get_clientdata(client);
 
-	cancel_delayed_work(&info->work);
+	cancel_delayed_work_sync(&info->work);
 	power_supply_unregister(info->supply);
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/max17040_battery.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/max17040_battery.c
@@ -105,7 +105,7 @@
 
 	vcell = max17040_read_reg(client, MAX17040_VCELL);
 
-	chip->vcell = vcell;
+	chip->vcell = (vcell >> 4) * 1250;
 }
 
 static void max17040_get_soc(struct i2c_client *client)
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/power_supply_hwmon.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/power_supply_hwmon.c
@@ -144,7 +144,7 @@
 					  u32 attr, int channel,
 					  const char **str)
 {
-	*str = channel ? "temp" : "temp ambient";
+	*str = channel ? "temp ambient" : "temp";
 	return 0;
 }
 
@@ -304,7 +304,7 @@
 		goto error;
 	}
 
-	ret = devm_add_action(dev, power_supply_hwmon_bitmap_free,
+	ret = devm_add_action_or_reset(dev, power_supply_hwmon_bitmap_free,
 			      psyhw->props);
 	if (ret)
 		goto error;
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/smb347-charger.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/smb347-charger.c
@@ -1138,6 +1138,7 @@
 	switch (reg) {
 	case IRQSTAT_A:
 	case IRQSTAT_C:
+	case IRQSTAT_D:
 	case IRQSTAT_E:
 	case IRQSTAT_F:
 	case STAT_A:
--- linux-gkeop-5.4-5.4.0.orig/drivers/power/supply/test_power.c
+++ linux-gkeop-5.4-5.4.0/drivers/power/supply/test_power.c
@@ -341,6 +341,7 @@
 static int param_get_ac_online(char *buffer, const struct kernel_param *kp)
 {
 	strcpy(buffer, map_get_key(map_ac_online, ac_online, "unknown"));
+	strcat(buffer, "\n");
 	return strlen(buffer);
 }
 
@@ -354,6 +355,7 @@
 static int param_get_usb_online(char *buffer, const struct kernel_param *kp)
 {
 	strcpy(buffer, map_get_key(map_ac_online, usb_online, "unknown"));
+	strcat(buffer, "\n");
 	return strlen(buffer);
 }
 
@@ -368,6 +370,7 @@
 static int param_get_battery_status(char *buffer, const struct kernel_param *kp)
 {
 	strcpy(buffer, map_get_key(map_status, battery_status, "unknown"));
+	strcat(buffer, "\n");
 	return strlen(buffer);
 }
 
@@ -382,6 +385,7 @@
 static int param_get_battery_health(char *buffer, const struct kernel_param *kp)
 {
 	strcpy(buffer, map_get_key(map_health, battery_health, "unknown"));
+	strcat(buffer, "\n");
 	return strlen(buffer);
 }
 
@@ -397,6 +401,7 @@
 					const struct kernel_param *kp)
 {
 	strcpy(buffer, map_get_key(map_present, battery_present, "unknown"));
+	strcat(buffer, "\n");
 	return strlen(buffer);
 }
 
@@ -414,6 +419,7 @@
 {
 	strcpy(buffer,
 		map_get_key(map_technology, battery_technology, "unknown"));
+	strcat(buffer, "\n");
 	return strlen(buffer);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/powercap/intel_rapl_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/powercap/intel_rapl_common.c
@@ -978,6 +978,8 @@
 	INTEL_CPU_FAM6(ICELAKE_NNPI, rapl_defaults_core),
 	INTEL_CPU_FAM6(ICELAKE_X, rapl_defaults_hsw_server),
 	INTEL_CPU_FAM6(ICELAKE_D, rapl_defaults_hsw_server),
+	INTEL_CPU_FAM6(COMETLAKE_L, rapl_defaults_core),
+	INTEL_CPU_FAM6(COMETLAKE, rapl_defaults_core),
 
 	INTEL_CPU_FAM6(ATOM_SILVERMONT, rapl_defaults_byt),
 	INTEL_CPU_FAM6(ATOM_AIRMONT, rapl_defaults_cht),
@@ -1293,6 +1295,9 @@
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
 	int ret;
 
+	if (!rapl_defaults)
+		return ERR_PTR(-ENODEV);
+
 	rp = kzalloc(sizeof(struct rapl_package), GFP_KERNEL);
 	if (!rp)
 		return ERR_PTR(-ENOMEM);
@@ -1419,7 +1424,7 @@
 
 	id = x86_match_cpu(rapl_ids);
 	if (!id) {
-		pr_err("driver does not support CPU family %d model %d\n",
+		pr_info("driver does not support CPU family %d model %d\n",
 		       boot_cpu_data.x86, boot_cpu_data.x86_model);
 
 		return -ENODEV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/powercap/powercap_sys.c
+++ linux-gkeop-5.4-5.4.0/drivers/powercap/powercap_sys.c
@@ -224,46 +224,46 @@
 
 	for (i = 0; i < MAX_CONSTRAINTS_PER_ZONE; ++i) {
 		ret = create_constraint_attribute(i, "power_limit_uw",
-					S_IWUSR | S_IRUGO,
+					S_IWUSR | S_IRUSR,
 					&constraint_attrs[i].power_limit_attr,
 					show_constraint_power_limit_uw,
 					store_constraint_power_limit_uw);
 		if (ret)
 			goto err_alloc;
 		ret = create_constraint_attribute(i, "time_window_us",
-					S_IWUSR | S_IRUGO,
+					S_IWUSR | S_IRUSR,
 					&constraint_attrs[i].time_window_attr,
 					show_constraint_time_window_us,
 					store_constraint_time_window_us);
 		if (ret)
 			goto err_alloc;
-		ret = create_constraint_attribute(i, "name", S_IRUGO,
+		ret = create_constraint_attribute(i, "name", S_IRUSR,
 				&constraint_attrs[i].name_attr,
 				show_constraint_name,
 				NULL);
 		if (ret)
 			goto err_alloc;
-		ret = create_constraint_attribute(i, "max_power_uw", S_IRUGO,
+		ret = create_constraint_attribute(i, "max_power_uw", S_IRUSR,
 				&constraint_attrs[i].max_power_attr,
 				show_constraint_max_power_uw,
 				NULL);
 		if (ret)
 			goto err_alloc;
-		ret = create_constraint_attribute(i, "min_power_uw", S_IRUGO,
+		ret = create_constraint_attribute(i, "min_power_uw", S_IRUSR,
 				&constraint_attrs[i].min_power_attr,
 				show_constraint_min_power_uw,
 				NULL);
 		if (ret)
 			goto err_alloc;
 		ret = create_constraint_attribute(i, "max_time_window_us",
-				S_IRUGO,
+				S_IRUSR,
 				&constraint_attrs[i].max_time_window_attr,
 				show_constraint_max_time_window_us,
 				NULL);
 		if (ret)
 			goto err_alloc;
 		ret = create_constraint_attribute(i, "min_time_window_us",
-				S_IRUGO,
+				S_IRUSR,
 				&constraint_attrs[i].min_time_window_attr,
 				show_constraint_min_time_window_us,
 				NULL);
@@ -362,23 +362,29 @@
 	int count = 0;
 
 	power_zone->zone_dev_attrs[count++] = &dev_attr_name.attr;
-	if (power_zone->ops->get_max_energy_range_uj)
+	if (power_zone->ops->get_max_energy_range_uj) {
+		dev_attr_max_energy_range_uj.attr.mode = S_IRUSR;
 		power_zone->zone_dev_attrs[count++] =
 					&dev_attr_max_energy_range_uj.attr;
+	}
 	if (power_zone->ops->get_energy_uj) {
 		if (power_zone->ops->reset_energy_uj)
-			dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
+			dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUSR;
 		else
-			dev_attr_energy_uj.attr.mode = S_IRUGO;
+			dev_attr_energy_uj.attr.mode = S_IRUSR;
 		power_zone->zone_dev_attrs[count++] =
 					&dev_attr_energy_uj.attr;
 	}
-	if (power_zone->ops->get_power_uw)
+	if (power_zone->ops->get_power_uw) {
+		dev_attr_power_uw.attr.mode = S_IRUSR;
 		power_zone->zone_dev_attrs[count++] =
 					&dev_attr_power_uw.attr;
-	if (power_zone->ops->get_max_power_range_uw)
+	}
+	if (power_zone->ops->get_max_power_range_uw) {
+		dev_attr_max_power_range_uw.attr.mode = S_IRUSR;
 		power_zone->zone_dev_attrs[count++] =
 					&dev_attr_max_power_range_uw.attr;
+	}
 	power_zone->zone_dev_attrs[count] = NULL;
 	power_zone->zone_attr_count = count;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/ps3/ps3stor_lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/ps3/ps3stor_lib.c
@@ -189,7 +189,7 @@
 	dev->bounce_lpar = ps3_mm_phys_to_lpar(__pa(dev->bounce_buf));
 	dev->bounce_dma = dma_map_single(&dev->sbd.core, dev->bounce_buf,
 					 dev->bounce_size, DMA_BIDIRECTIONAL);
-	if (!dev->bounce_dma) {
+	if (dma_mapping_error(&dev->sbd.core, dev->bounce_dma)) {
 		dev_err(&dev->sbd.core, "%s:%u: map DMA region failed\n",
 			__func__, __LINE__);
 		error = -ENODEV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/ptp/ptp_clock.c
+++ linux-gkeop-5.4-5.4.0/drivers/ptp/ptp_clock.c
@@ -166,10 +166,14 @@
 	.read		= ptp_read,
 };
 
-static void delete_ptp_clock(struct posix_clock *pc)
+static void ptp_clock_release(struct device *dev)
 {
-	struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock);
+	struct ptp_clock *ptp = container_of(dev, struct ptp_clock, dev);
 
+	/* Release the clock's resources. */
+	if (ptp->pps_source)
+		pps_unregister_source(ptp->pps_source);
+	ptp_cleanup_pin_groups(ptp);
 	mutex_destroy(&ptp->tsevq_mux);
 	mutex_destroy(&ptp->pincfg_mux);
 	ida_simple_remove(&ptp_clocks_map, ptp->index);
@@ -213,7 +217,6 @@
 	}
 
 	ptp->clock.ops = ptp_clock_ops;
-	ptp->clock.release = delete_ptp_clock;
 	ptp->info = info;
 	ptp->devid = MKDEV(major, index);
 	ptp->index = index;
@@ -236,15 +239,6 @@
 	if (err)
 		goto no_pin_groups;
 
-	/* Create a new device in our class. */
-	ptp->dev = device_create_with_groups(ptp_class, parent, ptp->devid,
-					     ptp, ptp->pin_attr_groups,
-					     "ptp%d", ptp->index);
-	if (IS_ERR(ptp->dev)) {
-		err = PTR_ERR(ptp->dev);
-		goto no_device;
-	}
-
 	/* Register a new PPS source. */
 	if (info->pps) {
 		struct pps_source_info pps;
@@ -260,8 +254,18 @@
 		}
 	}
 
-	/* Create a posix clock. */
-	err = posix_clock_register(&ptp->clock, ptp->devid);
+	/* Initialize a new device of our class in our clock structure. */
+	device_initialize(&ptp->dev);
+	ptp->dev.devt = ptp->devid;
+	ptp->dev.class = ptp_class;
+	ptp->dev.parent = parent;
+	ptp->dev.groups = ptp->pin_attr_groups;
+	ptp->dev.release = ptp_clock_release;
+	dev_set_drvdata(&ptp->dev, ptp);
+	dev_set_name(&ptp->dev, "ptp%d", ptp->index);
+
+	/* Create a posix clock and link it to the device. */
+	err = posix_clock_register(&ptp->clock, &ptp->dev);
 	if (err) {
 		pr_err("failed to create posix clock\n");
 		goto no_clock;
@@ -273,8 +277,6 @@
 	if (ptp->pps_source)
 		pps_unregister_source(ptp->pps_source);
 no_pps:
-	device_destroy(ptp_class, ptp->devid);
-no_device:
 	ptp_cleanup_pin_groups(ptp);
 no_pin_groups:
 	if (ptp->kworker)
@@ -299,15 +301,8 @@
 		kthread_cancel_delayed_work_sync(&ptp->aux_work);
 		kthread_destroy_worker(ptp->kworker);
 	}
-
-	/* Release the clock's resources. */
-	if (ptp->pps_source)
-		pps_unregister_source(ptp->pps_source);
-
-	device_destroy(ptp_class, ptp->devid);
-	ptp_cleanup_pin_groups(ptp);
-
 	posix_clock_unregister(&ptp->clock);
+
 	return 0;
 }
 EXPORT_SYMBOL(ptp_clock_unregister);
--- linux-gkeop-5.4-5.4.0.orig/drivers/ptp/ptp_private.h
+++ linux-gkeop-5.4-5.4.0/drivers/ptp/ptp_private.h
@@ -28,7 +28,7 @@
 
 struct ptp_clock {
 	struct posix_clock clock;
-	struct device *dev;
+	struct device dev;
 	struct ptp_clock_info *info;
 	dev_t devid;
 	int index; /* index into clocks.map */
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-bcm-iproc.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-bcm-iproc.c
@@ -85,8 +85,6 @@
 	u64 tmp, multi, rate;
 	u32 value, prescale;
 
-	rate = clk_get_rate(ip->clk);
-
 	value = readl(ip->base + IPROC_PWM_CTRL_OFFSET);
 
 	if (value & BIT(IPROC_PWM_CTRL_EN_SHIFT(pwm->hwpwm)))
@@ -99,6 +97,13 @@
 	else
 		state->polarity = PWM_POLARITY_INVERSED;
 
+	rate = clk_get_rate(ip->clk);
+	if (rate == 0) {
+		state->period = 0;
+		state->duty_cycle = 0;
+		return;
+	}
+
 	value = readl(ip->base + IPROC_PWM_PRESCALE_OFFSET);
 	prescale = value >> IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
 	prescale &= IPROC_PWM_PRESCALE_MAX;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-bcm2835.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-bcm2835.c
@@ -166,6 +166,7 @@
 
 	pc->chip.dev = &pdev->dev;
 	pc->chip.ops = &bcm2835_pwm_ops;
+	pc->chip.base = -1;
 	pc->chip.npwm = 2;
 	pc->chip.of_xlate = of_pwm_xlate_with_flags;
 	pc->chip.of_pwm_n_cells = 3;
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-img.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-img.c
@@ -129,8 +129,10 @@
 	duty = DIV_ROUND_UP(timebase * duty_ns, period_ns);
 
 	ret = pm_runtime_get_sync(chip->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(chip->dev);
 		return ret;
+	}
 
 	val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG);
 	val &= ~(PWM_CTRL_CFG_DIV_MASK << PWM_CTRL_CFG_DIV_SHIFT(pwm->hwpwm));
@@ -275,6 +277,8 @@
 		return PTR_ERR(pwm->pwm_clk);
 	}
 
+	platform_set_drvdata(pdev, pwm);
+
 	pm_runtime_set_autosuspend_delay(&pdev->dev, IMG_PWM_PM_TIMEOUT);
 	pm_runtime_use_autosuspend(&pdev->dev);
 	pm_runtime_enable(&pdev->dev);
@@ -311,7 +315,6 @@
 		goto err_suspend;
 	}
 
-	platform_set_drvdata(pdev, pwm);
 	return 0;
 
 err_suspend:
@@ -331,8 +334,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(&pdev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put(&pdev->dev);
 		return ret;
+	}
 
 	for (i = 0; i < pwm_chip->chip.npwm; i++) {
 		val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG);
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-jz4740.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-jz4740.c
@@ -92,11 +92,12 @@
 {
 	struct jz4740_pwm_chip *jz4740 = to_jz4740(pwm->chip);
 	unsigned long long tmp;
-	unsigned long period, duty;
+	unsigned long rate, period, duty;
 	unsigned int prescaler = 0;
 	uint16_t ctrl;
 
-	tmp = (unsigned long long)clk_get_rate(jz4740->clk) * state->period;
+	rate = clk_get_rate(jz4740->clk);
+	tmp = rate * state->period;
 	do_div(tmp, 1000000000);
 	period = tmp;
 
@@ -108,8 +109,8 @@
 	if (prescaler == 6)
 		return -EINVAL;
 
-	tmp = (unsigned long long)period * state->duty_cycle;
-	do_div(tmp, state->period);
+	tmp = (unsigned long long)rate * state->duty_cycle;
+	do_div(tmp, NSEC_PER_SEC);
 	duty = period - tmp;
 
 	if (duty >= period)
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-lp3943.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-lp3943.c
@@ -275,6 +275,7 @@
 	lp3943_pwm->chip.dev = &pdev->dev;
 	lp3943_pwm->chip.ops = &lp3943_pwm_ops;
 	lp3943_pwm->chip.npwm = LP3943_NUM_PWMS;
+	lp3943_pwm->chip.base = -1;
 
 	platform_set_drvdata(pdev, lp3943_pwm);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-lpss.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-lpss.c
@@ -93,10 +93,12 @@
 	 * The equation is:
 	 * base_unit = round(base_unit_range * freq / c)
 	 */
-	base_unit_range = BIT(lpwm->info->base_unit_bits) - 1;
+	base_unit_range = BIT(lpwm->info->base_unit_bits);
 	freq *= base_unit_range;
 
 	base_unit = DIV_ROUND_CLOSEST_ULL(freq, c);
+	/* base_unit must not be 0 and we also want to avoid overflowing it */
+	base_unit = clamp_val(base_unit, 1, base_unit_range - 1);
 
 	on_time_div = 255ULL * duty_ns;
 	do_div(on_time_div, period_ns);
@@ -104,8 +106,7 @@
 
 	orig_ctrl = ctrl = pwm_lpss_read(pwm);
 	ctrl &= ~PWM_ON_TIME_DIV_MASK;
-	ctrl &= ~(base_unit_range << PWM_BASE_UNIT_SHIFT);
-	base_unit &= base_unit_range;
+	ctrl &= ~((base_unit_range - 1) << PWM_BASE_UNIT_SHIFT);
 	ctrl |= (u32) base_unit << PWM_BASE_UNIT_SHIFT;
 	ctrl |= on_time_div;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-omap-dmtimer.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-omap-dmtimer.c
@@ -256,7 +256,7 @@
 	if (!timer_pdev) {
 		dev_err(&pdev->dev, "Unable to find Timer pdev\n");
 		ret = -ENODEV;
-		goto put;
+		goto err_find_timer_pdev;
 	}
 
 	timer_pdata = dev_get_platdata(&timer_pdev->dev);
@@ -264,7 +264,7 @@
 		dev_dbg(&pdev->dev,
 			 "dmtimer pdata structure NULL, deferring probe\n");
 		ret = -EPROBE_DEFER;
-		goto put;
+		goto err_platdata;
 	}
 
 	pdata = timer_pdata->timer_ops;
@@ -283,30 +283,25 @@
 	    !pdata->write_counter) {
 		dev_err(&pdev->dev, "Incomplete dmtimer pdata structure\n");
 		ret = -EINVAL;
-		goto put;
+		goto err_platdata;
 	}
 
 	if (!of_get_property(timer, "ti,timer-pwm", NULL)) {
 		dev_err(&pdev->dev, "Missing ti,timer-pwm capability\n");
 		ret = -ENODEV;
-		goto put;
+		goto err_timer_property;
 	}
 
 	dm_timer = pdata->request_by_node(timer);
 	if (!dm_timer) {
 		ret = -EPROBE_DEFER;
-		goto put;
+		goto err_request_timer;
 	}
 
-put:
-	of_node_put(timer);
-	if (ret < 0)
-		return ret;
-
 	omap = devm_kzalloc(&pdev->dev, sizeof(*omap), GFP_KERNEL);
 	if (!omap) {
-		pdata->free(dm_timer);
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto err_alloc_omap;
 	}
 
 	omap->pdata = pdata;
@@ -339,27 +334,56 @@
 	ret = pwmchip_add(&omap->chip);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "failed to register PWM\n");
-		omap->pdata->free(omap->dm_timer);
-		return ret;
+		goto err_pwmchip_add;
 	}
 
+	of_node_put(timer);
+
 	platform_set_drvdata(pdev, omap);
 
 	return 0;
+
+err_pwmchip_add:
+
+	/*
+	 * *omap is allocated using devm_kzalloc,
+	 * so no free necessary here
+	 */
+err_alloc_omap:
+
+	pdata->free(dm_timer);
+err_request_timer:
+
+err_timer_property:
+err_platdata:
+
+	put_device(&timer_pdev->dev);
+err_find_timer_pdev:
+
+	of_node_put(timer);
+
+	return ret;
 }
 
 static int pwm_omap_dmtimer_remove(struct platform_device *pdev)
 {
 	struct pwm_omap_dmtimer_chip *omap = platform_get_drvdata(pdev);
+	int ret;
+
+	ret = pwmchip_remove(&omap->chip);
+	if (ret)
+		return ret;
 
 	if (pm_runtime_active(&omap->dm_timer_pdev->dev))
 		omap->pdata->stop(omap->dm_timer);
 
 	omap->pdata->free(omap->dm_timer);
 
+	put_device(&omap->dm_timer_pdev->dev);
+
 	mutex_destroy(&omap->mutex);
 
-	return pwmchip_remove(&omap->chip);
+	return 0;
 }
 
 static const struct of_device_id pwm_omap_dmtimer_of_match[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-pca9685.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-pca9685.c
@@ -20,6 +20,7 @@
 #include <linux/slab.h>
 #include <linux/delay.h>
 #include <linux/pm_runtime.h>
+#include <linux/bitmap.h>
 
 /*
  * Because the PCA9685 has only one prescaler per chip, changing the period of
@@ -74,6 +75,7 @@
 #if IS_ENABLED(CONFIG_GPIOLIB)
 	struct mutex lock;
 	struct gpio_chip gpio;
+	DECLARE_BITMAP(pwms_inuse, PCA9685_MAXCHAN + 1);
 #endif
 };
 
@@ -83,51 +85,51 @@
 }
 
 #if IS_ENABLED(CONFIG_GPIOLIB)
-static int pca9685_pwm_gpio_request(struct gpio_chip *gpio, unsigned int offset)
+static bool pca9685_pwm_test_and_set_inuse(struct pca9685 *pca, int pwm_idx)
 {
-	struct pca9685 *pca = gpiochip_get_data(gpio);
-	struct pwm_device *pwm;
+	bool is_inuse;
 
 	mutex_lock(&pca->lock);
-
-	pwm = &pca->chip.pwms[offset];
-
-	if (pwm->flags & (PWMF_REQUESTED | PWMF_EXPORTED)) {
-		mutex_unlock(&pca->lock);
-		return -EBUSY;
+	if (pwm_idx >= PCA9685_MAXCHAN) {
+		/*
+		 * "all LEDs" channel:
+		 * pretend already in use if any of the PWMs are requested
+		 */
+		if (!bitmap_empty(pca->pwms_inuse, PCA9685_MAXCHAN)) {
+			is_inuse = true;
+			goto out;
+		}
+	} else {
+		/*
+		 * regular channel:
+		 * pretend already in use if the "all LEDs" channel is requested
+		 */
+		if (test_bit(PCA9685_MAXCHAN, pca->pwms_inuse)) {
+			is_inuse = true;
+			goto out;
+		}
 	}
-
-	pwm_set_chip_data(pwm, (void *)1);
-
+	is_inuse = test_and_set_bit(pwm_idx, pca->pwms_inuse);
+out:
 	mutex_unlock(&pca->lock);
-	pm_runtime_get_sync(pca->chip.dev);
-	return 0;
+	return is_inuse;
 }
 
-static bool pca9685_pwm_is_gpio(struct pca9685 *pca, struct pwm_device *pwm)
+static void pca9685_pwm_clear_inuse(struct pca9685 *pca, int pwm_idx)
 {
-	bool is_gpio = false;
-
 	mutex_lock(&pca->lock);
+	clear_bit(pwm_idx, pca->pwms_inuse);
+	mutex_unlock(&pca->lock);
+}
 
-	if (pwm->hwpwm >= PCA9685_MAXCHAN) {
-		unsigned int i;
-
-		/*
-		 * Check if any of the GPIOs are requested and in that case
-		 * prevent using the "all LEDs" channel.
-		 */
-		for (i = 0; i < pca->gpio.ngpio; i++)
-			if (gpiochip_is_requested(&pca->gpio, i)) {
-				is_gpio = true;
-				break;
-			}
-	} else if (pwm_get_chip_data(pwm)) {
-		is_gpio = true;
-	}
+static int pca9685_pwm_gpio_request(struct gpio_chip *gpio, unsigned int offset)
+{
+	struct pca9685 *pca = gpiochip_get_data(gpio);
 
-	mutex_unlock(&pca->lock);
-	return is_gpio;
+	if (pca9685_pwm_test_and_set_inuse(pca, offset))
+		return -EBUSY;
+	pm_runtime_get_sync(pca->chip.dev);
+	return 0;
 }
 
 static int pca9685_pwm_gpio_get(struct gpio_chip *gpio, unsigned int offset)
@@ -159,13 +161,10 @@
 static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset)
 {
 	struct pca9685 *pca = gpiochip_get_data(gpio);
-	struct pwm_device *pwm;
 
 	pca9685_pwm_gpio_set(gpio, offset, 0);
 	pm_runtime_put(pca->chip.dev);
-	mutex_lock(&pca->lock);
-	pwm = &pca->chip.pwms[offset];
-	mutex_unlock(&pca->lock);
+	pca9685_pwm_clear_inuse(pca, offset);
 }
 
 static int pca9685_pwm_gpio_get_direction(struct gpio_chip *chip,
@@ -217,12 +216,17 @@
 	return devm_gpiochip_add_data(dev, &pca->gpio, pca);
 }
 #else
-static inline bool pca9685_pwm_is_gpio(struct pca9685 *pca,
-				       struct pwm_device *pwm)
+static inline bool pca9685_pwm_test_and_set_inuse(struct pca9685 *pca,
+						  int pwm_idx)
 {
 	return false;
 }
 
+static inline void
+pca9685_pwm_clear_inuse(struct pca9685 *pca, int pwm_idx)
+{
+}
+
 static inline int pca9685_pwm_gpio_probe(struct pca9685 *pca)
 {
 	return 0;
@@ -406,7 +410,7 @@
 {
 	struct pca9685 *pca = to_pca(chip);
 
-	if (pca9685_pwm_is_gpio(pca, pwm))
+	if (pca9685_pwm_test_and_set_inuse(pca, pwm->hwpwm))
 		return -EBUSY;
 	pm_runtime_get_sync(chip->dev);
 
@@ -415,8 +419,11 @@
 
 static void pca9685_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
 {
+	struct pca9685 *pca = to_pca(chip);
+
 	pca9685_pwm_disable(chip, pwm);
 	pm_runtime_put(chip->dev);
+	pca9685_pwm_clear_inuse(pca, pwm->hwpwm);
 }
 
 static const struct pwm_ops pca9685_pwm_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-rcar.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-rcar.c
@@ -228,24 +228,28 @@
 	rcar_pwm->chip.base = -1;
 	rcar_pwm->chip.npwm = 1;
 
+	pm_runtime_enable(&pdev->dev);
+
 	ret = pwmchip_add(&rcar_pwm->chip);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "failed to register PWM chip: %d\n", ret);
+		pm_runtime_disable(&pdev->dev);
 		return ret;
 	}
 
-	pm_runtime_enable(&pdev->dev);
-
 	return 0;
 }
 
 static int rcar_pwm_remove(struct platform_device *pdev)
 {
 	struct rcar_pwm_chip *rcar_pwm = platform_get_drvdata(pdev);
+	int ret;
+
+	ret = pwmchip_remove(&rcar_pwm->chip);
 
 	pm_runtime_disable(&pdev->dev);
 
-	return pwmchip_remove(&rcar_pwm->chip);
+	return ret;
 }
 
 static const struct of_device_id rcar_pwm_of_table[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-renesas-tpu.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-renesas-tpu.c
@@ -415,16 +415,17 @@
 	tpu->chip.base = -1;
 	tpu->chip.npwm = TPU_CHANNEL_MAX;
 
+	pm_runtime_enable(&pdev->dev);
+
 	ret = pwmchip_add(&tpu->chip);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "failed to register PWM chip\n");
+		pm_runtime_disable(&pdev->dev);
 		return ret;
 	}
 
 	dev_info(&pdev->dev, "TPU PWM %d registered\n", tpu->pdev->id);
 
-	pm_runtime_enable(&pdev->dev);
-
 	return 0;
 }
 
@@ -434,12 +435,10 @@
 	int ret;
 
 	ret = pwmchip_remove(&tpu->chip);
-	if (ret)
-		return ret;
 
 	pm_runtime_disable(&pdev->dev);
 
-	return 0;
+	return ret;
 }
 
 #ifdef CONFIG_OF
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-rockchip.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-rockchip.c
@@ -361,7 +361,6 @@
 
 	ret = pwmchip_add(&pc->chip);
 	if (ret < 0) {
-		clk_unprepare(pc->clk);
 		dev_err(&pdev->dev, "pwmchip_add() failed: %d\n", ret);
 		goto err_pclk;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-sun4i.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-sun4i.c
@@ -137,10 +137,10 @@
 
 	val = sun4i_pwm_readl(sun4i_pwm, PWM_CH_PRD(pwm->hwpwm));
 
-	tmp = prescaler * NSEC_PER_SEC * PWM_REG_DTY(val);
+	tmp = (u64)prescaler * NSEC_PER_SEC * PWM_REG_DTY(val);
 	state->duty_cycle = DIV_ROUND_CLOSEST_ULL(tmp, clk_rate);
 
-	tmp = prescaler * NSEC_PER_SEC * PWM_REG_PRD(val);
+	tmp = (u64)prescaler * NSEC_PER_SEC * PWM_REG_PRD(val);
 	state->period = DIV_ROUND_CLOSEST_ULL(tmp, clk_rate);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/pwm/pwm-zx.c
+++ linux-gkeop-5.4-5.4.0/drivers/pwm/pwm-zx.c
@@ -238,6 +238,7 @@
 	ret = pwmchip_add(&zpc->chip);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "failed to add PWM chip: %d\n", ret);
+		clk_disable_unprepare(zpc->pclk);
 		return ret;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/rapidio/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/rapidio/Kconfig
@@ -37,7 +37,7 @@
 config RAPIDIO_DMA_ENGINE
 	bool "DMA Engine support for RapidIO"
 	depends on RAPIDIO
-	select DMADEVICES
+	depends on DMADEVICES
 	select DMA_ENGINE
 	help
 	  Say Y here if you want to use DMA Engine frameork for RapidIO data
--- linux-gkeop-5.4-5.4.0.orig/drivers/rapidio/devices/rio_mport_cdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/rapidio/devices/rio_mport_cdev.c
@@ -873,9 +873,15 @@
 				rmcd_error("get_user_pages_unlocked err=%ld",
 					   pinned);
 				nr_pages = 0;
-			} else
+			} else {
 				rmcd_error("pinned %ld out of %ld pages",
 					   pinned, nr_pages);
+				/*
+				 * Set nr_pages up to mean "how many pages to unpin, in
+				 * the error handler:
+				 */
+				nr_pages = pinned;
+			}
 			ret = -EFAULT;
 			goto err_pg;
 		}
@@ -1677,6 +1683,7 @@
 	struct rio_dev *rdev;
 	struct rio_switch *rswitch = NULL;
 	struct rio_mport *mport;
+	struct device *dev;
 	size_t size;
 	u32 rval;
 	u32 swpinfo = 0;
@@ -1691,8 +1698,10 @@
 	rmcd_debug(RDEV, "name:%s ct:0x%x did:0x%x hc:0x%x", dev_info.name,
 		   dev_info.comptag, dev_info.destid, dev_info.hopcount);
 
-	if (bus_find_device_by_name(&rio_bus_type, NULL, dev_info.name)) {
+	dev = bus_find_device_by_name(&rio_bus_type, NULL, dev_info.name);
+	if (dev) {
 		rmcd_debug(RDEV, "device %s already exists", dev_info.name);
+		put_device(dev);
 		return -EEXIST;
 	}
 
@@ -2379,13 +2388,6 @@
 	cdev_init(&md->cdev, &mport_fops);
 	md->cdev.owner = THIS_MODULE;
 
-	ret = cdev_device_add(&md->cdev, &md->dev);
-	if (ret) {
-		rmcd_error("Failed to register mport %d (err=%d)",
-		       mport->id, ret);
-		goto err_cdev;
-	}
-
 	INIT_LIST_HEAD(&md->doorbells);
 	spin_lock_init(&md->db_lock);
 	INIT_LIST_HEAD(&md->portwrites);
@@ -2405,6 +2407,13 @@
 #else
 	md->properties.transfer_mode |= RIO_TRANSFER_MODE_TRANSFER;
 #endif
+
+	ret = cdev_device_add(&md->cdev, &md->dev);
+	if (ret) {
+		rmcd_error("Failed to register mport %d (err=%d)",
+		       mport->id, ret);
+		goto err_cdev;
+	}
 	ret = rio_query_mport(mport, &attr);
 	if (!ret) {
 		md->properties.flags = attr.flags;
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/ab8500.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/ab8500.c
@@ -953,23 +953,6 @@
 		.update_val_idle	= 0x82,
 		.update_val_normal	= 0x02,
 	},
-	[AB8505_LDO_USB] = {
-		.desc = {
-			.name           = "LDO-USB",
-			.ops            = &ab8500_regulator_mode_ops,
-			.type           = REGULATOR_VOLTAGE,
-			.id             = AB8505_LDO_USB,
-			.owner          = THIS_MODULE,
-			.n_voltages     = 1,
-			.volt_table	= fixed_3300000_voltage,
-		},
-		.update_bank            = 0x03,
-		.update_reg             = 0x82,
-		.update_mask            = 0x03,
-		.update_val		= 0x01,
-		.update_val_idle	= 0x03,
-		.update_val_normal	= 0x01,
-	},
 	[AB8505_LDO_AUDIO] = {
 		.desc = {
 			.name		= "LDO-AUDIO",
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/axp20x-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/axp20x-regulator.c
@@ -42,8 +42,9 @@
 
 #define AXP20X_DCDC2_V_OUT_MASK		GENMASK(5, 0)
 #define AXP20X_DCDC3_V_OUT_MASK		GENMASK(7, 0)
-#define AXP20X_LDO24_V_OUT_MASK		GENMASK(7, 4)
+#define AXP20X_LDO2_V_OUT_MASK		GENMASK(7, 4)
 #define AXP20X_LDO3_V_OUT_MASK		GENMASK(6, 0)
+#define AXP20X_LDO4_V_OUT_MASK		GENMASK(3, 0)
 #define AXP20X_LDO5_V_OUT_MASK		GENMASK(7, 4)
 
 #define AXP20X_PWR_OUT_EXTEN_MASK	BIT_MASK(0)
@@ -413,10 +414,13 @@
 		int i;
 
 		for (i = 0; i < rate_count; i++) {
-			if (ramp <= slew_rates[i])
-				cfg = AXP20X_DCDC2_LDO3_V_RAMP_LDO3_RATE(i);
-			else
+			if (ramp > slew_rates[i])
 				break;
+
+			if (id == AXP20X_DCDC2)
+				cfg = AXP20X_DCDC2_LDO3_V_RAMP_DCDC2_RATE(i);
+			else
+				cfg = AXP20X_DCDC2_LDO3_V_RAMP_LDO3_RATE(i);
 		}
 
 		if (cfg == 0xff) {
@@ -541,14 +545,14 @@
 		 AXP20X_PWR_OUT_CTRL, AXP20X_PWR_OUT_DCDC3_MASK),
 	AXP_DESC_FIXED(AXP20X, LDO1, "ldo1", "acin", 1300),
 	AXP_DESC(AXP20X, LDO2, "ldo2", "ldo24in", 1800, 3300, 100,
-		 AXP20X_LDO24_V_OUT, AXP20X_LDO24_V_OUT_MASK,
+		 AXP20X_LDO24_V_OUT, AXP20X_LDO2_V_OUT_MASK,
 		 AXP20X_PWR_OUT_CTRL, AXP20X_PWR_OUT_LDO2_MASK),
 	AXP_DESC(AXP20X, LDO3, "ldo3", "ldo3in", 700, 3500, 25,
 		 AXP20X_LDO3_V_OUT, AXP20X_LDO3_V_OUT_MASK,
 		 AXP20X_PWR_OUT_CTRL, AXP20X_PWR_OUT_LDO3_MASK),
 	AXP_DESC_RANGES(AXP20X, LDO4, "ldo4", "ldo24in",
 			axp20x_ldo4_ranges, AXP20X_LDO4_V_OUT_NUM_VOLTAGES,
-			AXP20X_LDO24_V_OUT, AXP20X_LDO24_V_OUT_MASK,
+			AXP20X_LDO24_V_OUT, AXP20X_LDO4_V_OUT_MASK,
 			AXP20X_PWR_OUT_CTRL, AXP20X_PWR_OUT_LDO4_MASK),
 	AXP_DESC_IO(AXP20X, LDO5, "ldo5", "ldo5in", 1800, 3300, 100,
 		    AXP20X_LDO5_V_OUT, AXP20X_LDO5_V_OUT_MASK,
@@ -592,7 +596,7 @@
 		 AXP22X_DLDO1_V_OUT, AXP22X_DLDO1_V_OUT_MASK,
 		 AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK),
 	AXP_DESC(AXP22X, DLDO2, "dldo2", "dldoin", 700, 3300, 100,
-		 AXP22X_DLDO2_V_OUT, AXP22X_PWR_OUT_DLDO2_MASK,
+		 AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT_MASK,
 		 AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK),
 	AXP_DESC(AXP22X, DLDO3, "dldo3", "dldoin", 700, 3300, 100,
 		 AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK,
@@ -605,7 +609,7 @@
 		 AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO1_MASK),
 	AXP_DESC(AXP22X, ELDO2, "eldo2", "eldoin", 700, 3300, 100,
 		 AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK,
-		 AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO1_MASK),
+		 AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK),
 	AXP_DESC(AXP22X, ELDO3, "eldo3", "eldoin", 700, 3300, 100,
 		 AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK,
 		 AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK),
@@ -1068,7 +1072,7 @@
 static int axp20x_regulator_parse_dt(struct platform_device *pdev)
 {
 	struct device_node *np, *regulators;
-	int ret;
+	int ret = 0;
 	u32 dcdcfreq = 0;
 
 	np = of_node_get(pdev->dev.parent->of_node);
@@ -1083,13 +1087,12 @@
 		ret = axp20x_set_dcdc_freq(pdev, dcdcfreq);
 		if (ret < 0) {
 			dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret);
-			return ret;
 		}
-
 		of_node_put(regulators);
 	}
 
-	return 0;
+	of_node_put(np);
+	return ret;
 }
 
 static int axp20x_set_dcdc_workmode(struct regulator_dev *rdev, int id, u32 workmode)
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/bd70528-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/bd70528-regulator.c
@@ -101,7 +101,6 @@
 	.set_voltage_sel = regulator_set_voltage_sel_regmap,
 	.get_voltage_sel = regulator_get_voltage_sel_regmap,
 	.set_voltage_time_sel = regulator_set_voltage_time_sel,
-	.set_ramp_delay = bd70528_set_ramp_delay,
 };
 
 static const struct regulator_ops bd70528_led_ops = {
@@ -286,3 +285,4 @@
 MODULE_AUTHOR("Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>");
 MODULE_DESCRIPTION("BD70528 voltage regulator driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:bd70528-pmic");
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/bd718x7-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/bd718x7-regulator.c
@@ -15,6 +15,36 @@
 #include <linux/regulator/of_regulator.h>
 #include <linux/slab.h>
 
+/* Typical regulator startup times as per data sheet in uS */
+#define BD71847_BUCK1_STARTUP_TIME 144
+#define BD71847_BUCK2_STARTUP_TIME 162
+#define BD71847_BUCK3_STARTUP_TIME 162
+#define BD71847_BUCK4_STARTUP_TIME 240
+#define BD71847_BUCK5_STARTUP_TIME 270
+#define BD71847_BUCK6_STARTUP_TIME 200
+#define BD71847_LDO1_STARTUP_TIME  440
+#define BD71847_LDO2_STARTUP_TIME  370
+#define BD71847_LDO3_STARTUP_TIME  310
+#define BD71847_LDO4_STARTUP_TIME  400
+#define BD71847_LDO5_STARTUP_TIME  530
+#define BD71847_LDO6_STARTUP_TIME  400
+
+#define BD71837_BUCK1_STARTUP_TIME 160
+#define BD71837_BUCK2_STARTUP_TIME 180
+#define BD71837_BUCK3_STARTUP_TIME 180
+#define BD71837_BUCK4_STARTUP_TIME 180
+#define BD71837_BUCK5_STARTUP_TIME 160
+#define BD71837_BUCK6_STARTUP_TIME 240
+#define BD71837_BUCK7_STARTUP_TIME 220
+#define BD71837_BUCK8_STARTUP_TIME 200
+#define BD71837_LDO1_STARTUP_TIME  440
+#define BD71837_LDO2_STARTUP_TIME  370
+#define BD71837_LDO3_STARTUP_TIME  310
+#define BD71837_LDO4_STARTUP_TIME  400
+#define BD71837_LDO5_STARTUP_TIME  310
+#define BD71837_LDO6_STARTUP_TIME  400
+#define BD71837_LDO7_STARTUP_TIME  530
+
 /*
  * BUCK1/2/3/4
  * BUCK1RAMPRATE[1:0] BUCK1 DVS ramp rate setting
@@ -495,6 +525,7 @@
 			.vsel_mask = DVS_BUCK_RUN_MASK,
 			.enable_reg = BD718XX_REG_BUCK1_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71847_BUCK1_STARTUP_TIME,
 			.owner = THIS_MODULE,
 			.of_parse_cb = buck1_set_hw_dvs_levels,
 		},
@@ -519,6 +550,7 @@
 			.vsel_mask = DVS_BUCK_RUN_MASK,
 			.enable_reg = BD718XX_REG_BUCK2_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71847_BUCK2_STARTUP_TIME,
 			.owner = THIS_MODULE,
 			.of_parse_cb = buck2_set_hw_dvs_levels,
 		},
@@ -547,6 +579,7 @@
 			.linear_range_selectors = bd71847_buck3_volt_range_sel,
 			.enable_reg = BD718XX_REG_1ST_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71847_BUCK3_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -574,6 +607,7 @@
 			.vsel_range_mask = BD71847_BUCK4_RANGE_MASK,
 			.linear_range_selectors = bd71847_buck4_volt_range_sel,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71847_BUCK4_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -596,6 +630,7 @@
 			.vsel_mask = BD718XX_3RD_NODVS_BUCK_MASK,
 			.enable_reg = BD718XX_REG_3RD_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71847_BUCK5_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -620,6 +655,7 @@
 			.vsel_mask = BD718XX_4TH_NODVS_BUCK_MASK,
 			.enable_reg = BD718XX_REG_4TH_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71847_BUCK6_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -646,6 +682,7 @@
 			.linear_range_selectors = bd718xx_ldo1_volt_range_sel,
 			.enable_reg = BD718XX_REG_LDO1_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71847_LDO1_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -668,6 +705,7 @@
 			.n_voltages = ARRAY_SIZE(ldo_2_volts),
 			.enable_reg = BD718XX_REG_LDO2_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71847_LDO2_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -691,6 +729,7 @@
 			.vsel_mask = BD718XX_LDO3_MASK,
 			.enable_reg = BD718XX_REG_LDO3_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71847_LDO3_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -714,6 +753,7 @@
 			.vsel_mask = BD718XX_LDO4_MASK,
 			.enable_reg = BD718XX_REG_LDO4_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71847_LDO4_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -740,6 +780,7 @@
 			.linear_range_selectors = bd71847_ldo5_volt_range_sel,
 			.enable_reg = BD718XX_REG_LDO5_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71847_LDO5_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -765,6 +806,7 @@
 			.vsel_mask = BD718XX_LDO6_MASK,
 			.enable_reg = BD718XX_REG_LDO6_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71847_LDO6_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -791,6 +833,7 @@
 			.vsel_mask = DVS_BUCK_RUN_MASK,
 			.enable_reg = BD718XX_REG_BUCK1_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK1_STARTUP_TIME,
 			.owner = THIS_MODULE,
 			.of_parse_cb = buck1_set_hw_dvs_levels,
 		},
@@ -815,6 +858,7 @@
 			.vsel_mask = DVS_BUCK_RUN_MASK,
 			.enable_reg = BD718XX_REG_BUCK2_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK2_STARTUP_TIME,
 			.owner = THIS_MODULE,
 			.of_parse_cb = buck2_set_hw_dvs_levels,
 		},
@@ -839,6 +883,7 @@
 			.vsel_mask = DVS_BUCK_RUN_MASK,
 			.enable_reg = BD71837_REG_BUCK3_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK3_STARTUP_TIME,
 			.owner = THIS_MODULE,
 			.of_parse_cb = buck3_set_hw_dvs_levels,
 		},
@@ -863,6 +908,7 @@
 			.vsel_mask = DVS_BUCK_RUN_MASK,
 			.enable_reg = BD71837_REG_BUCK4_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK4_STARTUP_TIME,
 			.owner = THIS_MODULE,
 			.of_parse_cb = buck4_set_hw_dvs_levels,
 		},
@@ -891,6 +937,7 @@
 			.linear_range_selectors = bd71837_buck5_volt_range_sel,
 			.enable_reg = BD718XX_REG_1ST_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK5_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -915,6 +962,7 @@
 			.vsel_mask = BD71837_BUCK6_MASK,
 			.enable_reg = BD718XX_REG_2ND_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK6_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -937,6 +985,7 @@
 			.vsel_mask = BD718XX_3RD_NODVS_BUCK_MASK,
 			.enable_reg = BD718XX_REG_3RD_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK7_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -961,6 +1010,7 @@
 			.vsel_mask = BD718XX_4TH_NODVS_BUCK_MASK,
 			.enable_reg = BD718XX_REG_4TH_NODVS_BUCK_CTRL,
 			.enable_mask = BD718XX_BUCK_EN,
+			.enable_time = BD71837_BUCK8_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -987,6 +1037,7 @@
 			.linear_range_selectors = bd718xx_ldo1_volt_range_sel,
 			.enable_reg = BD718XX_REG_LDO1_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO1_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -1009,6 +1060,7 @@
 			.n_voltages = ARRAY_SIZE(ldo_2_volts),
 			.enable_reg = BD718XX_REG_LDO2_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO2_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -1032,6 +1084,7 @@
 			.vsel_mask = BD718XX_LDO3_MASK,
 			.enable_reg = BD718XX_REG_LDO3_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO3_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -1055,6 +1108,7 @@
 			.vsel_mask = BD718XX_LDO4_MASK,
 			.enable_reg = BD718XX_REG_LDO4_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO4_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -1080,6 +1134,7 @@
 			.vsel_mask = BD71837_LDO5_MASK,
 			.enable_reg = BD718XX_REG_LDO5_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO5_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -1107,6 +1162,7 @@
 			.vsel_mask = BD718XX_LDO6_MASK,
 			.enable_reg = BD718XX_REG_LDO6_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO6_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
@@ -1132,6 +1188,7 @@
 			.vsel_mask = BD71837_LDO7_MASK,
 			.enable_reg = BD71837_REG_LDO7_VOLT,
 			.enable_mask = BD718XX_LDO_EN,
+			.enable_time = BD71837_LDO7_STARTUP_TIME,
 			.owner = THIS_MODULE,
 		},
 		.init = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/core.c
@@ -235,8 +235,8 @@
 static void regulator_unlock_recursive(struct regulator_dev *rdev,
 				       unsigned int n_coupled)
 {
-	struct regulator_dev *c_rdev;
-	int i;
+	struct regulator_dev *c_rdev, *supply_rdev;
+	int i, supply_n_coupled;
 
 	for (i = n_coupled; i > 0; i--) {
 		c_rdev = rdev->coupling_desc.coupled_rdevs[i - 1];
@@ -244,10 +244,13 @@
 		if (!c_rdev)
 			continue;
 
-		if (c_rdev->supply && !regulator_supply_is_couple(c_rdev))
-			regulator_unlock_recursive(
-					c_rdev->supply->rdev,
-					c_rdev->coupling_desc.n_coupled);
+		if (c_rdev->supply && !regulator_supply_is_couple(c_rdev)) {
+			supply_rdev = c_rdev->supply->rdev;
+			supply_n_coupled = supply_rdev->coupling_desc.n_coupled;
+
+			regulator_unlock_recursive(supply_rdev,
+						   supply_n_coupled);
+		}
 
 		regulator_unlock(c_rdev);
 	}
@@ -1272,7 +1275,6 @@
 /**
  * set_machine_constraints - sets regulator constraints
  * @rdev: regulator source
- * @constraints: constraints to apply
  *
  * Allows platform initialisation code to define and constrain
  * regulator circuits e.g. valid voltage/current ranges, etc.  NOTE:
@@ -1280,21 +1282,11 @@
  * regulator operations to proceed i.e. set_voltage, set_current_limit,
  * set_mode.
  */
-static int set_machine_constraints(struct regulator_dev *rdev,
-	const struct regulation_constraints *constraints)
+static int set_machine_constraints(struct regulator_dev *rdev)
 {
 	int ret = 0;
 	const struct regulator_ops *ops = rdev->desc->ops;
 
-	if (constraints)
-		rdev->constraints = kmemdup(constraints, sizeof(*constraints),
-					    GFP_KERNEL);
-	else
-		rdev->constraints = kzalloc(sizeof(*constraints),
-					    GFP_KERNEL);
-	if (!rdev->constraints)
-		return -ENOMEM;
-
 	ret = machine_constraints_voltage(rdev, rdev->constraints);
 	if (ret != 0)
 		return ret;
@@ -1403,7 +1395,9 @@
 			rdev_err(rdev, "failed to enable\n");
 			return ret;
 		}
-		rdev->use_count++;
+
+		if (rdev->constraints->always_on)
+			rdev->use_count++;
 	}
 
 	print_constraints(rdev);
@@ -1454,7 +1448,7 @@
 				      const char *consumer_dev_name,
 				      const char *supply)
 {
-	struct regulator_map *node;
+	struct regulator_map *node, *new_node;
 	int has_dev;
 
 	if (supply == NULL)
@@ -1465,6 +1459,22 @@
 	else
 		has_dev = 0;
 
+	new_node = kzalloc(sizeof(struct regulator_map), GFP_KERNEL);
+	if (new_node == NULL)
+		return -ENOMEM;
+
+	new_node->regulator = rdev;
+	new_node->supply = supply;
+
+	if (has_dev) {
+		new_node->dev_name = kstrdup(consumer_dev_name, GFP_KERNEL);
+		if (new_node->dev_name == NULL) {
+			kfree(new_node);
+			return -ENOMEM;
+		}
+	}
+
+	mutex_lock(&regulator_list_mutex);
 	list_for_each_entry(node, &regulator_map_list, list) {
 		if (node->dev_name && consumer_dev_name) {
 			if (strcmp(node->dev_name, consumer_dev_name) != 0)
@@ -1482,26 +1492,19 @@
 			 node->regulator->desc->name,
 			 supply,
 			 dev_name(&rdev->dev), rdev_get_name(rdev));
-		return -EBUSY;
+		goto fail;
 	}
 
-	node = kzalloc(sizeof(struct regulator_map), GFP_KERNEL);
-	if (node == NULL)
-		return -ENOMEM;
-
-	node->regulator = rdev;
-	node->supply = supply;
-
-	if (has_dev) {
-		node->dev_name = kstrdup(consumer_dev_name, GFP_KERNEL);
-		if (node->dev_name == NULL) {
-			kfree(node);
-			return -ENOMEM;
-		}
-	}
+	list_add(&new_node->list, &regulator_map_list);
+	mutex_unlock(&regulator_list_mutex);
 
-	list_add(&node->list, &regulator_map_list);
 	return 0;
+
+fail:
+	mutex_unlock(&regulator_list_mutex);
+	kfree(new_node->dev_name);
+	kfree(new_node);
+	return -EBUSY;
 }
 
 static void unset_regulator_supplies(struct regulator_dev *rdev)
@@ -1573,45 +1576,54 @@
 					  const char *supply_name)
 {
 	struct regulator *regulator;
-	char buf[REG_STR_SIZE];
-	int err, size;
+	int err = 0;
+
+	if (dev) {
+		char buf[REG_STR_SIZE];
+		int size;
+
+		size = snprintf(buf, REG_STR_SIZE, "%s-%s",
+				dev->kobj.name, supply_name);
+		if (size >= REG_STR_SIZE)
+			return NULL;
+
+		supply_name = kstrdup(buf, GFP_KERNEL);
+		if (supply_name == NULL)
+			return NULL;
+	} else {
+		supply_name = kstrdup_const(supply_name, GFP_KERNEL);
+		if (supply_name == NULL)
+			return NULL;
+	}
 
 	regulator = kzalloc(sizeof(*regulator), GFP_KERNEL);
-	if (regulator == NULL)
+	if (regulator == NULL) {
+		kfree(supply_name);
 		return NULL;
+	}
 
-	regulator_lock(rdev);
 	regulator->rdev = rdev;
+	regulator->supply_name = supply_name;
+
+	regulator_lock(rdev);
 	list_add(&regulator->list, &rdev->consumer_list);
+	regulator_unlock(rdev);
 
 	if (dev) {
 		regulator->dev = dev;
 
 		/* Add a link to the device sysfs entry */
-		size = snprintf(buf, REG_STR_SIZE, "%s-%s",
-				dev->kobj.name, supply_name);
-		if (size >= REG_STR_SIZE)
-			goto overflow_err;
-
-		regulator->supply_name = kstrdup(buf, GFP_KERNEL);
-		if (regulator->supply_name == NULL)
-			goto overflow_err;
-
 		err = sysfs_create_link_nowarn(&rdev->dev.kobj, &dev->kobj,
-					buf);
+					       supply_name);
 		if (err) {
 			rdev_dbg(rdev, "could not add device link %s err %d\n",
 				  dev->kobj.name, err);
 			/* non-fatal */
 		}
-	} else {
-		regulator->supply_name = kstrdup_const(supply_name, GFP_KERNEL);
-		if (regulator->supply_name == NULL)
-			goto overflow_err;
 	}
 
-	regulator->debugfs = debugfs_create_dir(regulator->supply_name,
-						rdev->debugfs);
+	if (err != -EEXIST)
+		regulator->debugfs = debugfs_create_dir(supply_name, rdev->debugfs);
 	if (!regulator->debugfs) {
 		rdev_dbg(rdev, "Failed to create debugfs directory\n");
 	} else {
@@ -1635,13 +1647,7 @@
 	    _regulator_is_enabled(rdev))
 		regulator->always_on = true;
 
-	regulator_unlock(rdev);
 	return regulator;
-overflow_err:
-	list_del(&regulator->list);
-	kfree(regulator);
-	regulator_unlock(rdev);
-	return NULL;
 }
 
 static int _regulator_get_enable_time(struct regulator_dev *rdev)
@@ -1766,13 +1772,13 @@
 {
 	struct regulator_dev *r;
 	struct device *dev = rdev->dev.parent;
-	int ret;
+	int ret = 0;
 
 	/* No supply to resolve? */
 	if (!rdev->supply_name)
 		return 0;
 
-	/* Supply already resolved? */
+	/* Supply already resolved? (fast-path without locking contention) */
 	if (rdev->supply)
 		return 0;
 
@@ -1782,7 +1788,7 @@
 
 		/* Did the lookup explicitly defer for us? */
 		if (ret == -EPROBE_DEFER)
-			return ret;
+			goto out;
 
 		if (have_full_constraints()) {
 			r = dummy_regulator_rdev;
@@ -1790,8 +1796,20 @@
 		} else {
 			dev_err(dev, "Failed to resolve %s-supply for %s\n",
 				rdev->supply_name, rdev->desc->name);
-			return -EPROBE_DEFER;
+			ret = -EPROBE_DEFER;
+			goto out;
+		}
+	}
+
+	if (r == rdev) {
+		dev_err(dev, "Supply for %s (%s) resolved to itself\n",
+			rdev->desc->name, rdev->supply_name);
+		if (!have_full_constraints()) {
+			ret = -EINVAL;
+			goto out;
 		}
+		r = dummy_regulator_rdev;
+		get_device(&r->dev);
 	}
 
 	/*
@@ -1803,7 +1821,8 @@
 	if (r->dev.parent && r->dev.parent != rdev->dev.parent) {
 		if (!device_is_bound(r->dev.parent)) {
 			put_device(&r->dev);
-			return -EPROBE_DEFER;
+			ret = -EPROBE_DEFER;
+			goto out;
 		}
 	}
 
@@ -1811,15 +1830,32 @@
 	ret = regulator_resolve_supply(r);
 	if (ret < 0) {
 		put_device(&r->dev);
-		return ret;
+		goto out;
+	}
+
+	/*
+	 * Recheck rdev->supply with rdev->mutex lock held to avoid a race
+	 * between rdev->supply null check and setting rdev->supply in
+	 * set_supply() from concurrent tasks.
+	 */
+	regulator_lock(rdev);
+
+	/* Supply just resolved by a concurrent task? */
+	if (rdev->supply) {
+		regulator_unlock(rdev);
+		put_device(&r->dev);
+		goto out;
 	}
 
 	ret = set_supply(rdev, r);
 	if (ret < 0) {
+		regulator_unlock(rdev);
 		put_device(&r->dev);
-		return ret;
+		goto out;
 	}
 
+	regulator_unlock(rdev);
+
 	/*
 	 * In set_machine_constraints() we may have turned this regulator on
 	 * but we couldn't propagate to the supply if it hadn't been resolved
@@ -1830,11 +1866,12 @@
 		if (ret < 0) {
 			_regulator_put(rdev->supply);
 			rdev->supply = NULL;
-			return ret;
+			goto out;
 		}
 	}
 
-	return 0;
+out:
+	return ret;
 }
 
 /* Internal regulator request function */
@@ -1935,8 +1972,8 @@
 	regulator = create_regulator(rdev, dev, id);
 	if (regulator == NULL) {
 		regulator = ERR_PTR(-ENOMEM);
-		put_device(&rdev->dev);
 		module_put(rdev->owner);
+		put_device(&rdev->dev);
 		return regulator;
 	}
 
@@ -2057,13 +2094,13 @@
 
 	rdev->open_count--;
 	rdev->exclusive = 0;
-	put_device(&rdev->dev);
 	regulator_unlock(rdev);
 
 	kfree_const(regulator->supply_name);
 	kfree(regulator);
 
 	module_put(rdev->owner);
+	put_device(&rdev->dev);
 }
 
 /**
@@ -2215,10 +2252,13 @@
 static int regulator_ena_gpio_request(struct regulator_dev *rdev,
 				const struct regulator_config *config)
 {
-	struct regulator_enable_gpio *pin;
+	struct regulator_enable_gpio *pin, *new_pin;
 	struct gpio_desc *gpiod;
 
 	gpiod = config->ena_gpiod;
+	new_pin = kzalloc(sizeof(*new_pin), GFP_KERNEL);
+
+	mutex_lock(&regulator_list_mutex);
 
 	list_for_each_entry(pin, &regulator_ena_gpio_list, list) {
 		if (pin->gpiod == gpiod) {
@@ -2227,9 +2267,13 @@
 		}
 	}
 
-	pin = kzalloc(sizeof(struct regulator_enable_gpio), GFP_KERNEL);
-	if (pin == NULL)
+	if (new_pin == NULL) {
+		mutex_unlock(&regulator_list_mutex);
 		return -ENOMEM;
+	}
+
+	pin = new_pin;
+	new_pin = NULL;
 
 	pin->gpiod = gpiod;
 	list_add(&pin->list, &regulator_ena_gpio_list);
@@ -2237,6 +2281,10 @@
 update_ena_gpio_to_rdev:
 	pin->request_count++;
 	rdev->ena_pin = pin;
+
+	mutex_unlock(&regulator_list_mutex);
+	kfree(new_pin);
+
 	return 0;
 }
 
@@ -3460,6 +3508,7 @@
 out:
 	return ret;
 }
+EXPORT_SYMBOL_GPL(regulator_set_voltage_rdev);
 
 static int regulator_limit_voltage_step(struct regulator_dev *rdev,
 					int *current_uV, int *min_uV)
@@ -4016,6 +4065,8 @@
 		ret = rdev->desc->fixed_uV;
 	} else if (rdev->supply) {
 		ret = regulator_get_voltage_rdev(rdev->supply->rdev);
+	} else if (rdev->supply_name) {
+		return -EPROBE_DEFER;
 	} else {
 		return -EINVAL;
 	}
@@ -4024,6 +4075,7 @@
 		return ret;
 	return ret - rdev->constraints->uV_offset;
 }
+EXPORT_SYMBOL_GPL(regulator_get_voltage_rdev);
 
 /**
  * regulator_get_voltage - get regulator output voltage
@@ -4853,13 +4905,9 @@
 			return;
 		}
 
-		regulator_lock(c_rdev);
-
 		c_desc->coupled_rdevs[i] = c_rdev;
 		c_desc->n_resolved++;
 
-		regulator_unlock(c_rdev);
-
 		regulator_resolve_coupling(c_rdev);
 	}
 }
@@ -4944,7 +4992,10 @@
 	if (!of_check_coupling_data(rdev))
 		return -EPERM;
 
+	mutex_lock(&regulator_list_mutex);
 	rdev->coupling_desc.coupler = regulator_find_coupler(rdev);
+	mutex_unlock(&regulator_list_mutex);
+
 	if (IS_ERR(rdev->coupling_desc.coupler)) {
 		err = PTR_ERR(rdev->coupling_desc.coupler);
 		rdev_err(rdev, "failed to get coupler: %d\n", err);
@@ -4983,7 +5034,6 @@
 regulator_register(const struct regulator_desc *regulator_desc,
 		   const struct regulator_config *cfg)
 {
-	const struct regulation_constraints *constraints = NULL;
 	const struct regulator_init_data *init_data;
 	struct regulator_config *config = NULL;
 	static atomic_t regulator_no = ATOMIC_INIT(-1);
@@ -5039,6 +5089,7 @@
 		ret = -ENOMEM;
 		goto rinse;
 	}
+	device_initialize(&rdev->dev);
 
 	/*
 	 * Duplicate the config so the driver could override it after
@@ -5046,9 +5097,8 @@
 	 */
 	config = kmemdup(cfg, sizeof(*cfg), GFP_KERNEL);
 	if (config == NULL) {
-		kfree(rdev);
 		ret = -ENOMEM;
-		goto rinse;
+		goto clean;
 	}
 
 	init_data = regulator_of_get_init_data(dev, regulator_desc, config,
@@ -5060,10 +5110,8 @@
 	 * from a gpio extender or something else.
 	 */
 	if (PTR_ERR(init_data) == -EPROBE_DEFER) {
-		kfree(config);
-		kfree(rdev);
 		ret = -EPROBE_DEFER;
-		goto rinse;
+		goto clean;
 	}
 
 	/*
@@ -5104,9 +5152,7 @@
 	}
 
 	if (config->ena_gpiod) {
-		mutex_lock(&regulator_list_mutex);
 		ret = regulator_ena_gpio_request(rdev, config);
-		mutex_unlock(&regulator_list_mutex);
 		if (ret != 0) {
 			rdev_err(rdev, "Failed to request enable GPIO: %d\n",
 				 ret);
@@ -5122,49 +5168,59 @@
 	rdev->dev.parent = dev;
 	dev_set_name(&rdev->dev, "regulator.%lu",
 		    (unsigned long) atomic_inc_return(&regulator_no));
+	dev_set_drvdata(&rdev->dev, rdev);
 
 	/* set regulator constraints */
 	if (init_data)
-		constraints = &init_data->constraints;
+		rdev->constraints = kmemdup(&init_data->constraints,
+					    sizeof(*rdev->constraints),
+					    GFP_KERNEL);
+	else
+		rdev->constraints = kzalloc(sizeof(*rdev->constraints),
+					    GFP_KERNEL);
+	if (!rdev->constraints) {
+		ret = -ENOMEM;
+		goto wash;
+	}
 
 	if (init_data && init_data->supply_regulator)
 		rdev->supply_name = init_data->supply_regulator;
 	else if (regulator_desc->supply_name)
 		rdev->supply_name = regulator_desc->supply_name;
 
-	/*
-	 * Attempt to resolve the regulator supply, if specified,
-	 * but don't return an error if we fail because we will try
-	 * to resolve it again later as more regulators are added.
-	 */
-	if (regulator_resolve_supply(rdev))
-		rdev_dbg(rdev, "unable to resolve supply\n");
-
-	ret = set_machine_constraints(rdev, constraints);
+	ret = set_machine_constraints(rdev);
+	if (ret == -EPROBE_DEFER) {
+		/* Regulator might be in bypass mode and so needs its supply
+		 * to set the constraints */
+		/* FIXME: this currently triggers a chicken-and-egg problem
+		 * when creating -SUPPLY symlink in sysfs to a regulator
+		 * that is just being created */
+		ret = regulator_resolve_supply(rdev);
+		if (!ret)
+			ret = set_machine_constraints(rdev);
+		else
+			rdev_dbg(rdev, "unable to resolve supply early: %pe\n",
+				 ERR_PTR(ret));
+	}
 	if (ret < 0)
 		goto wash;
 
-	mutex_lock(&regulator_list_mutex);
 	ret = regulator_init_coupling(rdev);
-	mutex_unlock(&regulator_list_mutex);
 	if (ret < 0)
 		goto wash;
 
 	/* add consumers devices */
 	if (init_data) {
-		mutex_lock(&regulator_list_mutex);
 		for (i = 0; i < init_data->num_consumer_supplies; i++) {
 			ret = set_consumer_device_supply(rdev,
 				init_data->consumer_supplies[i].dev_name,
 				init_data->consumer_supplies[i].supply);
 			if (ret < 0) {
-				mutex_unlock(&regulator_list_mutex);
 				dev_err(dev, "Failed to set supply %s\n",
 					init_data->consumer_supplies[i].supply);
 				goto unset_supplies;
 			}
 		}
-		mutex_unlock(&regulator_list_mutex);
 	}
 
 	if (!rdev->desc->ops->get_voltage &&
@@ -5172,12 +5228,9 @@
 	    !rdev->desc->fixed_uV)
 		rdev->is_switch = true;
 
-	dev_set_drvdata(&rdev->dev, rdev);
-	ret = device_register(&rdev->dev);
-	if (ret != 0) {
-		put_device(&rdev->dev);
+	ret = device_add(&rdev->dev);
+	if (ret != 0)
 		goto unset_supplies;
-	}
 
 	rdev_init_debugfs(rdev);
 
@@ -5198,15 +5251,15 @@
 	regulator_remove_coupling(rdev);
 	mutex_unlock(&regulator_list_mutex);
 wash:
-	kfree(rdev->constraints);
+	kfree(rdev->coupling_desc.coupled_rdevs);
 	mutex_lock(&regulator_list_mutex);
 	regulator_ena_gpio_free(rdev);
 	mutex_unlock(&regulator_list_mutex);
 clean:
 	if (dangling_of_gpiod)
 		gpiod_put(config->ena_gpiod);
-	kfree(rdev);
 	kfree(config);
+	put_device(&rdev->dev);
 rinse:
 	if (dangling_cfg_gpiod)
 		gpiod_put(cfg->ena_gpiod);
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/helpers.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/helpers.c
@@ -13,6 +13,8 @@
 #include <linux/regulator/driver.h>
 #include <linux/module.h>
 
+#include "internal.h"
+
 /**
  * regulator_is_enabled_regmap - standard is_enabled() for regmap users
  *
@@ -881,3 +883,15 @@
 		consumers[i].supply = supply_names[i];
 }
 EXPORT_SYMBOL_GPL(regulator_bulk_set_supply_names);
+
+/**
+ * regulator_is_equal - test whether two regulators are the same
+ *
+ * @reg1: first regulator to operate on
+ * @reg2: second regulator to operate on
+ */
+bool regulator_is_equal(struct regulator *reg1, struct regulator *reg2)
+{
+	return reg1->rdev == reg2->rdev;
+}
+EXPORT_SYMBOL_GPL(regulator_is_equal);
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/max8907-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/max8907-regulator.c
@@ -296,7 +296,10 @@
 	memcpy(pmic->desc, max8907_regulators, sizeof(pmic->desc));
 
 	/* Backwards compatibility with MAX8907B; SD1 uses different voltages */
-	regmap_read(max8907->regmap_gen, MAX8907_REG_II2RR, &val);
+	ret = regmap_read(max8907->regmap_gen, MAX8907_REG_II2RR, &val);
+	if (ret)
+		return ret;
+
 	if ((val & MAX8907_II2RR_VERSION_MASK) ==
 	    MAX8907_II2RR_VERSION_REV_B) {
 		pmic->desc[MAX8907_SD1].min_uV = 637500;
@@ -333,14 +336,20 @@
 		}
 
 		if (pmic->desc[i].ops == &max8907_ldo_ops) {
-			regmap_read(config.regmap, pmic->desc[i].enable_reg,
+			ret = regmap_read(config.regmap, pmic->desc[i].enable_reg,
 				    &val);
+			if (ret)
+				return ret;
+
 			if ((val & MAX8907_MASK_LDO_SEQ) !=
 			    MAX8907_MASK_LDO_SEQ)
 				pmic->desc[i].ops = &max8907_ldo_hwctl_ops;
 		} else if (pmic->desc[i].ops == &max8907_out5v_ops) {
-			regmap_read(config.regmap, pmic->desc[i].enable_reg,
+			ret = regmap_read(config.regmap, pmic->desc[i].enable_reg,
 				    &val);
+			if (ret)
+				return ret;
+
 			if ((val & (MAX8907_MASK_OUT5V_VINEN |
 						MAX8907_MASK_OUT5V_ENSRC)) !=
 			    MAX8907_MASK_OUT5V_ENSRC)
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/pfuze100-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/pfuze100-regulator.c
@@ -209,6 +209,19 @@
 
 };
 
+static const struct regulator_ops pfuze3000_sw_regulator_ops = {
+	.enable = regulator_enable_regmap,
+	.disable = regulator_disable_regmap,
+	.is_enabled = regulator_is_enabled_regmap,
+	.list_voltage = regulator_list_voltage_table,
+	.map_voltage = regulator_map_voltage_ascend,
+	.set_voltage_sel = regulator_set_voltage_sel_regmap,
+	.get_voltage_sel = regulator_get_voltage_sel_regmap,
+	.set_voltage_time_sel = regulator_set_voltage_time_sel,
+	.set_ramp_delay = pfuze100_set_ramp_delay,
+
+};
+
 #define PFUZE100_FIXED_REG(_chip, _name, base, voltage)	\
 	[_chip ## _ ## _name] = {	\
 		.desc = {	\
@@ -318,23 +331,28 @@
 	.stby_mask = 0x20,	\
 }
 
-
-#define PFUZE3000_SW2_REG(_chip, _name, base, min, max, step)	{	\
-	.desc = {	\
-		.name = #_name,\
-		.n_voltages = ((max) - (min)) / (step) + 1,	\
-		.ops = &pfuze100_sw_regulator_ops,	\
-		.type = REGULATOR_VOLTAGE,	\
-		.id = _chip ## _ ## _name,	\
-		.owner = THIS_MODULE,	\
-		.min_uV = (min),	\
-		.uV_step = (step),	\
-		.vsel_reg = (base) + PFUZE100_VOL_OFFSET,	\
-		.vsel_mask = 0x7,	\
-	},	\
-	.stby_reg = (base) + PFUZE100_STANDBY_OFFSET,	\
-	.stby_mask = 0x7,	\
-}
+/* No linar case for the some switches of PFUZE3000 */
+#define PFUZE3000_SW_REG(_chip, _name, base, mask, voltages)	\
+	[_chip ## _ ##  _name] = {	\
+		.desc = {	\
+			.name = #_name,	\
+			.n_voltages = ARRAY_SIZE(voltages),	\
+			.ops = &pfuze3000_sw_regulator_ops,	\
+			.type = REGULATOR_VOLTAGE,	\
+			.id = _chip ## _ ## _name,	\
+			.owner = THIS_MODULE,	\
+			.volt_table = voltages,	\
+			.vsel_reg = (base) + PFUZE100_VOL_OFFSET,	\
+			.vsel_mask = (mask),	\
+			.enable_reg = (base) + PFUZE100_MODE_OFFSET,	\
+			.enable_mask = 0xf,	\
+			.enable_val = 0x8,	\
+			.enable_time = 500,	\
+		},	\
+		.stby_reg = (base) + PFUZE100_STANDBY_OFFSET,	\
+		.stby_mask = (mask),	\
+		.sw_reg = true,		\
+	}
 
 #define PFUZE3000_SW3_REG(_chip, _name, base, min, max, step)	{	\
 	.desc = {	\
@@ -391,9 +409,9 @@
 };
 
 static struct pfuze_regulator pfuze3000_regulators[] = {
-	PFUZE100_SWB_REG(PFUZE3000, SW1A, PFUZE100_SW1ABVOL, 0x1f, pfuze3000_sw1a),
+	PFUZE3000_SW_REG(PFUZE3000, SW1A, PFUZE100_SW1ABVOL, 0x1f, pfuze3000_sw1a),
 	PFUZE100_SW_REG(PFUZE3000, SW1B, PFUZE100_SW1CVOL, 700000, 1475000, 25000),
-	PFUZE100_SWB_REG(PFUZE3000, SW2, PFUZE100_SW2VOL, 0x7, pfuze3000_sw2lo),
+	PFUZE3000_SW_REG(PFUZE3000, SW2, PFUZE100_SW2VOL, 0x7, pfuze3000_sw2lo),
 	PFUZE3000_SW3_REG(PFUZE3000, SW3, PFUZE100_SW3AVOL, 900000, 1650000, 50000),
 	PFUZE100_SWB_REG(PFUZE3000, SWBST, PFUZE100_SWBSTCON1, 0x3, pfuze100_swbst),
 	PFUZE100_SWB_REG(PFUZE3000, VSNVS, PFUZE100_VSNVSVOL, 0x7, pfuze100_vsnvs),
@@ -407,8 +425,8 @@
 };
 
 static struct pfuze_regulator pfuze3001_regulators[] = {
-	PFUZE100_SWB_REG(PFUZE3001, SW1, PFUZE100_SW1ABVOL, 0x1f, pfuze3000_sw1a),
-	PFUZE100_SWB_REG(PFUZE3001, SW2, PFUZE100_SW2VOL, 0x7, pfuze3000_sw2lo),
+	PFUZE3000_SW_REG(PFUZE3001, SW1, PFUZE100_SW1ABVOL, 0x1f, pfuze3000_sw1a),
+	PFUZE3000_SW_REG(PFUZE3001, SW2, PFUZE100_SW2VOL, 0x7, pfuze3000_sw2lo),
 	PFUZE3000_SW3_REG(PFUZE3001, SW3, PFUZE100_SW3AVOL, 900000, 1650000, 50000),
 	PFUZE100_SWB_REG(PFUZE3001, VSNVS, PFUZE100_VSNVSVOL, 0x7, pfuze100_vsnvs),
 	PFUZE100_VGEN_REG(PFUZE3001, VLDO1, PFUZE100_VGEN1VOL, 1800000, 3300000, 100000),
@@ -815,11 +833,14 @@
 		 * the switched regulator till yet.
 		 */
 		if (pfuze_chip->flags & PFUZE_FLAG_DISABLE_SW) {
-			if (pfuze_chip->regulator_descs[i].sw_reg) {
-				desc->ops = &pfuze100_sw_disable_regulator_ops;
-				desc->enable_val = 0x8;
-				desc->disable_val = 0x0;
-				desc->enable_time = 500;
+			if (pfuze_chip->chip_id == PFUZE100 ||
+				pfuze_chip->chip_id == PFUZE200) {
+				if (pfuze_chip->regulator_descs[i].sw_reg) {
+					desc->ops = &pfuze100_sw_disable_regulator_ops;
+					desc->enable_val = 0x8;
+					desc->disable_val = 0x0;
+					desc->enable_time = 500;
+				}
 			}
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/pwm-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/pwm-regulator.c
@@ -279,7 +279,7 @@
 		return ret;
 	}
 
-	drvdata->state			= -EINVAL;
+	drvdata->state			= -ENOTRECOVERABLE;
 	drvdata->duty_cycle_table	= duty_cycle_table;
 	drvdata->desc.ops = &pwm_regulator_voltage_table_ops;
 	drvdata->desc.n_voltages	= length / sizeof(*duty_cycle_table);
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/qcom-rpmh-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/qcom-rpmh-regulator.c
@@ -726,7 +726,7 @@
 static const struct rpmh_vreg_hw_data pmic5_hfsmps515 = {
 	.regulator_type = VRM,
 	.ops = &rpmh_regulator_vrm_ops,
-	.voltage_range = REGULATOR_LINEAR_RANGE(2800000, 0, 4, 1600),
+	.voltage_range = REGULATOR_LINEAR_RANGE(2800000, 0, 4, 16000),
 	.n_voltages = 5,
 	.pmic_mode_map = pmic_mode_map_pmic5_smps,
 	.of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
@@ -832,11 +832,11 @@
 	RPMH_VREG("ldo10",  "ldo%s10", &pmic5_pldo,      "vdd-l2-l10"),
 	RPMH_VREG("ldo11",  "ldo%s11", &pmic5_nldo,      "vdd-l1-l8-l11"),
 	RPMH_VREG("ldo12",  "ldo%s12", &pmic5_pldo_lv,   "vdd-l7-l12-l14-l15"),
-	RPMH_VREG("ldo13",  "ldo%s13", &pmic5_pldo,      "vdd-l13-l6-l17"),
+	RPMH_VREG("ldo13",  "ldo%s13", &pmic5_pldo,      "vdd-l13-l16-l17"),
 	RPMH_VREG("ldo14",  "ldo%s14", &pmic5_pldo_lv,   "vdd-l7-l12-l14-l15"),
 	RPMH_VREG("ldo15",  "ldo%s15", &pmic5_pldo_lv,   "vdd-l7-l12-l14-l15"),
-	RPMH_VREG("ldo16",  "ldo%s16", &pmic5_pldo,      "vdd-l13-l6-l17"),
-	RPMH_VREG("ldo17",  "ldo%s17", &pmic5_pldo,      "vdd-l13-l6-l17"),
+	RPMH_VREG("ldo16",  "ldo%s16", &pmic5_pldo,      "vdd-l13-l16-l17"),
+	RPMH_VREG("ldo17",  "ldo%s17", &pmic5_pldo,      "vdd-l13-l16-l17"),
 	RPMH_VREG("ldo18",  "ldo%s18", &pmic5_nldo,      "vdd-l3-l4-l5-l18"),
 	{},
 };
@@ -857,7 +857,7 @@
 	RPMH_VREG("ldo5",   "ldo%s5",  &pmic5_pldo,      "vdd-l4-l5-l6"),
 	RPMH_VREG("ldo6",   "ldo%s6",  &pmic5_pldo,      "vdd-l4-l5-l6"),
 	RPMH_VREG("ldo7",   "ldo%s7",  &pmic5_pldo,      "vdd-l7-l11"),
-	RPMH_VREG("ldo8",   "ldo%s8",  &pmic5_pldo_lv,   "vdd-l1-l8-l11"),
+	RPMH_VREG("ldo8",   "ldo%s8",  &pmic5_pldo_lv,   "vdd-l1-l8"),
 	RPMH_VREG("ldo9",   "ldo%s9",  &pmic5_pldo,      "vdd-l9-l10"),
 	RPMH_VREG("ldo10",  "ldo%s10", &pmic5_pldo,      "vdd-l9-l10"),
 	RPMH_VREG("ldo11",  "ldo%s11", &pmic5_pldo,      "vdd-l7-l11"),
@@ -874,7 +874,7 @@
 	RPMH_VREG("ldo4",   "ldo%s4",  &pmic5_nldo,      "vdd-l4"),
 	RPMH_VREG("ldo5",   "ldo%s5",  &pmic5_pldo,      "vdd-l5-l6"),
 	RPMH_VREG("ldo6",   "ldo%s6",  &pmic5_pldo,      "vdd-l5-l6"),
-	RPMH_VREG("ldo7",   "ldo%s6",  &pmic5_pldo_lv,   "vdd-l7"),
+	RPMH_VREG("ldo7",   "ldo%s7",  &pmic5_pldo_lv,   "vdd-l7"),
 	{},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/rk808-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/rk808-regulator.c
@@ -1297,7 +1297,7 @@
 		}
 
 		if (!pdata->dvs_gpio[i]) {
-			dev_warn(dev, "there is no dvs%d gpio\n", i);
+			dev_info(dev, "there is no dvs%d gpio\n", i);
 			continue;
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/rn5t618-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/rn5t618-regulator.c
@@ -148,6 +148,7 @@
 
 module_platform_driver(rn5t618_regulator_driver);
 
+MODULE_ALIAS("platform:rn5t618-regulator");
 MODULE_AUTHOR("Beniamino Galvani <b.galvani@gmail.com>");
 MODULE_DESCRIPTION("RN5T618 regulator driver");
 MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/s5m8767.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/s5m8767.c
@@ -544,14 +544,18 @@
 	rdata = devm_kcalloc(&pdev->dev,
 			     pdata->num_regulators, sizeof(*rdata),
 			     GFP_KERNEL);
-	if (!rdata)
+	if (!rdata) {
+		of_node_put(regulators_np);
 		return -ENOMEM;
+	}
 
 	rmode = devm_kcalloc(&pdev->dev,
 			     pdata->num_regulators, sizeof(*rmode),
 			     GFP_KERNEL);
-	if (!rmode)
+	if (!rmode) {
+		of_node_put(regulators_np);
 		return -ENOMEM;
+	}
 
 	pdata->regulators = rdata;
 	pdata->opmode = rmode;
@@ -574,10 +578,13 @@
 			0,
 			GPIOD_OUT_HIGH | GPIOD_FLAGS_BIT_NONEXCLUSIVE,
 			"s5m8767");
-		if (PTR_ERR(rdata->ext_control_gpiod) == -ENOENT)
+		if (PTR_ERR(rdata->ext_control_gpiod) == -ENOENT) {
 			rdata->ext_control_gpiod = NULL;
-		else if (IS_ERR(rdata->ext_control_gpiod))
+		} else if (IS_ERR(rdata->ext_control_gpiod)) {
+			of_node_put(reg_np);
+			of_node_put(regulators_np);
 			return PTR_ERR(rdata->ext_control_gpiod);
+		}
 
 		rdata->id = i;
 		rdata->initdata = of_get_regulator_init_data(
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/stm32-vrefbuf.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/stm32-vrefbuf.c
@@ -88,7 +88,7 @@
 	}
 
 	val = readl_relaxed(priv->base + STM32_VREFBUF_CSR);
-	val = (val & ~STM32_ENVR) | STM32_HIZ;
+	val &= ~STM32_ENVR;
 	writel_relaxed(val, priv->base + STM32_VREFBUF_CSR);
 
 	pm_runtime_mark_last_busy(priv->dev);
@@ -175,6 +175,7 @@
 	.volt_table = stm32_vrefbuf_voltages,
 	.n_voltages = ARRAY_SIZE(stm32_vrefbuf_voltages),
 	.ops = &stm32_vrefbuf_volt_ops,
+	.off_on_delay = 1000,
 	.type = REGULATOR_VOLTAGE,
 	.owner = THIS_MODULE,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/ti-abb-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/ti-abb-regulator.c
@@ -342,8 +342,17 @@
 		return ret;
 	}
 
-	/* If data is exactly the same, then just update index, no change */
 	info = &abb->info[sel];
+	/*
+	 * When Linux kernel is starting up, we are'nt sure of the
+	 * Bias configuration that bootloader has configured.
+	 * So, we get to know the actual setting the first time
+	 * we are asked to transition.
+	 */
+	if (abb->current_info_idx == -EINVAL)
+		goto just_set_abb;
+
+	/* If data is exactly the same, then just update index, no change */
 	oinfo = &abb->info[abb->current_info_idx];
 	if (!memcmp(info, oinfo, sizeof(*info))) {
 		dev_dbg(dev, "%s: Same data new idx=%d, old idx=%d\n", __func__,
@@ -351,6 +360,7 @@
 		goto out;
 	}
 
+just_set_abb:
 	ret = ti_abb_set_opp(rdev, abb, info);
 
 out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/regulator/vctrl-regulator.c
+++ linux-gkeop-5.4-5.4.0/drivers/regulator/vctrl-regulator.c
@@ -11,10 +11,13 @@
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/regulator/coupler.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/of_regulator.h>
 #include <linux/sort.h>
 
+#include "internal.h"
+
 struct vctrl_voltage_range {
 	int min_uV;
 	int max_uV;
@@ -79,7 +82,7 @@
 static int vctrl_get_voltage(struct regulator_dev *rdev)
 {
 	struct vctrl_data *vctrl = rdev_get_drvdata(rdev);
-	int ctrl_uV = regulator_get_voltage(vctrl->ctrl_reg);
+	int ctrl_uV = regulator_get_voltage_rdev(vctrl->ctrl_reg->rdev);
 
 	return vctrl_calc_output_voltage(vctrl, ctrl_uV);
 }
@@ -90,16 +93,16 @@
 {
 	struct vctrl_data *vctrl = rdev_get_drvdata(rdev);
 	struct regulator *ctrl_reg = vctrl->ctrl_reg;
-	int orig_ctrl_uV = regulator_get_voltage(ctrl_reg);
+	int orig_ctrl_uV = regulator_get_voltage_rdev(ctrl_reg->rdev);
 	int uV = vctrl_calc_output_voltage(vctrl, orig_ctrl_uV);
 	int ret;
 
 	if (req_min_uV >= uV || !vctrl->ovp_threshold)
 		/* voltage rising or no OVP */
-		return regulator_set_voltage(
-			ctrl_reg,
+		return regulator_set_voltage_rdev(ctrl_reg->rdev,
 			vctrl_calc_ctrl_voltage(vctrl, req_min_uV),
-			vctrl_calc_ctrl_voltage(vctrl, req_max_uV));
+			vctrl_calc_ctrl_voltage(vctrl, req_max_uV),
+			PM_SUSPEND_ON);
 
 	while (uV > req_min_uV) {
 		int max_drop_uV = (uV * vctrl->ovp_threshold) / 100;
@@ -114,9 +117,10 @@
 		next_uV = max_t(int, req_min_uV, uV - max_drop_uV);
 		next_ctrl_uV = vctrl_calc_ctrl_voltage(vctrl, next_uV);
 
-		ret = regulator_set_voltage(ctrl_reg,
+		ret = regulator_set_voltage_rdev(ctrl_reg->rdev,
+					    next_ctrl_uV,
 					    next_ctrl_uV,
-					    next_ctrl_uV);
+					    PM_SUSPEND_ON);
 		if (ret)
 			goto err;
 
@@ -130,7 +134,8 @@
 
 err:
 	/* Try to go back to original voltage */
-	regulator_set_voltage(ctrl_reg, orig_ctrl_uV, orig_ctrl_uV);
+	regulator_set_voltage_rdev(ctrl_reg->rdev, orig_ctrl_uV, orig_ctrl_uV,
+				   PM_SUSPEND_ON);
 
 	return ret;
 }
@@ -155,9 +160,10 @@
 
 	if (selector >= vctrl->sel || !vctrl->ovp_threshold) {
 		/* voltage rising or no OVP */
-		ret = regulator_set_voltage(ctrl_reg,
+		ret = regulator_set_voltage_rdev(ctrl_reg->rdev,
+					    vctrl->vtable[selector].ctrl,
 					    vctrl->vtable[selector].ctrl,
-					    vctrl->vtable[selector].ctrl);
+					    PM_SUSPEND_ON);
 		if (!ret)
 			vctrl->sel = selector;
 
@@ -173,9 +179,10 @@
 		else
 			next_sel = vctrl->vtable[vctrl->sel].ovp_min_sel;
 
-		ret = regulator_set_voltage(ctrl_reg,
+		ret = regulator_set_voltage_rdev(ctrl_reg->rdev,
 					    vctrl->vtable[next_sel].ctrl,
-					    vctrl->vtable[next_sel].ctrl);
+					    vctrl->vtable[next_sel].ctrl,
+					    PM_SUSPEND_ON);
 		if (ret) {
 			dev_err(&rdev->dev,
 				"failed to set control voltage to %duV\n",
@@ -195,9 +202,10 @@
 err:
 	if (vctrl->sel != orig_sel) {
 		/* Try to go back to original voltage */
-		if (!regulator_set_voltage(ctrl_reg,
+		if (!regulator_set_voltage_rdev(ctrl_reg->rdev,
+					   vctrl->vtable[orig_sel].ctrl,
 					   vctrl->vtable[orig_sel].ctrl,
-					   vctrl->vtable[orig_sel].ctrl))
+					   PM_SUSPEND_ON))
 			vctrl->sel = orig_sel;
 		else
 			dev_warn(&rdev->dev,
@@ -482,7 +490,7 @@
 		if (ret)
 			return ret;
 
-		ctrl_uV = regulator_get_voltage(vctrl->ctrl_reg);
+		ctrl_uV = regulator_get_voltage_rdev(vctrl->ctrl_reg->rdev);
 		if (ctrl_uV < 0) {
 			dev_err(&pdev->dev, "failed to get control voltage\n");
 			return ctrl_uV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/remoteproc/qcom_q6v5.c
+++ linux-gkeop-5.4-5.4.0/drivers/remoteproc/qcom_q6v5.c
@@ -151,6 +151,8 @@
 {
 	int ret;
 
+	q6v5->running = false;
+
 	qcom_smem_state_update_bits(q6v5->state,
 				    BIT(q6v5->stop_bit), BIT(q6v5->stop_bit));
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/remoteproc/qcom_q6v5_adsp.c
+++ linux-gkeop-5.4-5.4.0/drivers/remoteproc/qcom_q6v5_adsp.c
@@ -184,8 +184,10 @@
 
 	dev_pm_genpd_set_performance_state(adsp->dev, INT_MAX);
 	ret = pm_runtime_get_sync(adsp->dev);
-	if (ret)
+	if (ret) {
+		pm_runtime_put_noidle(adsp->dev);
 		goto disable_xo_clk;
+	}
 
 	ret = clk_bulk_prepare_enable(adsp->num_clks, adsp->clks);
 	if (ret) {
@@ -345,15 +347,12 @@
 				struct platform_device *pdev)
 {
 	struct device_node *syscon;
-	struct resource *res;
 	int ret;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	adsp->qdsp6ss_base = devm_ioremap(&pdev->dev, res->start,
-			resource_size(res));
-	if (!adsp->qdsp6ss_base) {
+	adsp->qdsp6ss_base = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(adsp->qdsp6ss_base)) {
 		dev_err(adsp->dev, "failed to map QDSP6SS registers\n");
-		return -ENOMEM;
+		return PTR_ERR(adsp->qdsp6ss_base);
 	}
 
 	syscon = of_parse_phandle(pdev->dev.of_node, "qcom,halt-regs", 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/remoteproc/qcom_q6v5_mss.c
+++ linux-gkeop-5.4-5.4.0/drivers/remoteproc/qcom_q6v5_mss.c
@@ -331,8 +331,11 @@
 	for (i = 0; i < pd_count; i++) {
 		dev_pm_genpd_set_performance_state(pds[i], INT_MAX);
 		ret = pm_runtime_get_sync(pds[i]);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put_noidle(pds[i]);
+			dev_pm_genpd_set_performance_state(pds[i], 0);
 			goto unroll_pd_votes;
+		}
 	}
 
 	return 0;
@@ -381,6 +384,12 @@
 {
 	struct q6v5 *qproc = rproc->priv;
 
+	/* MBA is restricted to a maximum size of 1M */
+	if (fw->size > qproc->mba_size || fw->size > SZ_1M) {
+		dev_err(qproc->dev, "MBA firmware load failed\n");
+		return -EINVAL;
+	}
+
 	memcpy(qproc->mba_region, fw->data, fw->size);
 
 	return 0;
@@ -875,11 +884,6 @@
 		writel(val, qproc->reg_base + QDSP6SS_PWR_CTL_REG);
 	}
 
-	ret = q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm,
-				      false, qproc->mpss_phys,
-				      qproc->mpss_size);
-	WARN_ON(ret);
-
 	q6v5_reset_assert(qproc);
 
 	q6v5_clk_disable(qproc->dev, qproc->reset_clks,
@@ -909,6 +913,23 @@
 	}
 }
 
+static int q6v5_reload_mba(struct rproc *rproc)
+{
+	struct q6v5 *qproc = rproc->priv;
+	const struct firmware *fw;
+	int ret;
+
+	ret = request_firmware(&fw, rproc->firmware, qproc->dev);
+	if (ret < 0)
+		return ret;
+
+	q6v5_load(rproc, fw);
+	ret = q6v5_mba_load(qproc);
+	release_firmware(fw);
+
+	return ret;
+}
+
 static int q6v5_mpss_load(struct q6v5 *qproc)
 {
 	const struct elf32_phdr *phdrs;
@@ -969,6 +990,14 @@
 			max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K);
 	}
 
+	/**
+	 * In case of a modem subsystem restart on secure devices, the modem
+	 * memory can be reclaimed only after MBA is loaded. For modem cold
+	 * boot this will be a nop
+	 */
+	q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, false,
+				qproc->mpss_phys, qproc->mpss_size);
+
 	mpss_reloc = relocate ? min_addr : qproc->mpss_phys;
 	qproc->mpss_reloc = mpss_reloc;
 	/* Load firmware segments */
@@ -985,7 +1014,13 @@
 			goto release_firmware;
 		}
 
-		ptr = qproc->mpss_region + offset;
+		ptr = ioremap_wc(qproc->mpss_phys + offset, phdr->p_memsz);
+		if (!ptr) {
+			dev_err(qproc->dev,
+				"unable to map memory region: %pa+%zx-%x\n",
+				&qproc->mpss_phys, offset, phdr->p_memsz);
+			goto release_firmware;
+		}
 
 		if (phdr->p_filesz && phdr->p_offset < fw->size) {
 			/* Firmware is large enough to be non-split */
@@ -994,6 +1029,7 @@
 					"failed to load segment %d from truncated file %s\n",
 					i, fw_name);
 				ret = -EINVAL;
+				iounmap(ptr);
 				goto release_firmware;
 			}
 
@@ -1001,14 +1037,14 @@
 		} else if (phdr->p_filesz) {
 			/* Replace "xxx.xxx" with "xxx.bxx" */
 			sprintf(fw_name + fw_name_len - 3, "b%02d", i);
-			ret = request_firmware(&seg_fw, fw_name, qproc->dev);
+			ret = request_firmware_into_buf(&seg_fw, fw_name, qproc->dev,
+							ptr, phdr->p_filesz);
 			if (ret) {
 				dev_err(qproc->dev, "failed to load %s\n", fw_name);
+				iounmap(ptr);
 				goto release_firmware;
 			}
 
-			memcpy(ptr, seg_fw->data, seg_fw->size);
-
 			release_firmware(seg_fw);
 		}
 
@@ -1016,6 +1052,7 @@
 			memset(ptr + phdr->p_filesz, 0,
 			       phdr->p_memsz - phdr->p_filesz);
 		}
+		iounmap(ptr);
 		size += phdr->p_memsz;
 	}
 
@@ -1055,23 +1092,43 @@
 	int ret = 0;
 	struct q6v5 *qproc = rproc->priv;
 	unsigned long mask = BIT((unsigned long)segment->priv);
-	void *ptr = rproc_da_to_va(rproc, segment->da, segment->size);
+	int offset = segment->da - qproc->mpss_reloc;
+	void *ptr = NULL;
 
 	/* Unlock mba before copying segments */
-	if (!qproc->dump_mba_loaded)
-		ret = q6v5_mba_load(qproc);
+	if (!qproc->dump_mba_loaded) {
+		ret = q6v5_reload_mba(rproc);
+		if (!ret) {
+			/* Reset ownership back to Linux to copy segments */
+			ret = q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm,
+						      false,
+						      qproc->mpss_phys,
+						      qproc->mpss_size);
+		}
+	}
 
-	if (!ptr || ret)
-		memset(dest, 0xff, segment->size);
-	else
+	if (!ret)
+		ptr = ioremap_wc(qproc->mpss_phys + offset, segment->size);
+
+	if (ptr) {
 		memcpy(dest, ptr, segment->size);
+		iounmap(ptr);
+	} else {
+		memset(dest, 0xff, segment->size);
+	}
 
 	qproc->dump_segment_mask |= mask;
 
 	/* Reclaim mba after copying segments */
 	if (qproc->dump_segment_mask == qproc->dump_complete_mask) {
-		if (qproc->dump_mba_loaded)
+		if (qproc->dump_mba_loaded) {
+			/* Try to reset ownership back to Q6 */
+			q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm,
+						true,
+						qproc->mpss_phys,
+						qproc->mpss_size);
 			q6v5_mba_reclaim(qproc);
+		}
 	}
 }
 
@@ -1111,10 +1168,6 @@
 	return 0;
 
 reclaim_mpss:
-	xfermemop_ret = q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm,
-						false, qproc->mpss_phys,
-						qproc->mpss_size);
-	WARN_ON(xfermemop_ret);
 	q6v5_mba_reclaim(qproc);
 
 	return ret;
@@ -1363,12 +1416,6 @@
 
 	qproc->mpss_phys = qproc->mpss_reloc = r.start;
 	qproc->mpss_size = resource_size(&r);
-	qproc->mpss_region = devm_ioremap_wc(qproc->dev, qproc->mpss_phys, qproc->mpss_size);
-	if (!qproc->mpss_region) {
-		dev_err(qproc->dev, "unable to map memory region: %pa+%zx\n",
-			&r.start, qproc->mpss_size);
-		return -EBUSY;
-	}
 
 	return 0;
 }
@@ -1410,7 +1457,7 @@
 	ret = of_property_read_string_index(pdev->dev.of_node, "firmware-name",
 					    1, &qproc->hexagon_mdt_image);
 	if (ret < 0 && ret != -EINVAL)
-		return ret;
+		goto free_rproc;
 
 	platform_set_drvdata(pdev, qproc);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/remoteproc/remoteproc_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/remoteproc/remoteproc_core.c
@@ -400,7 +400,7 @@
 void rproc_free_vring(struct rproc_vring *rvring)
 {
 	struct rproc *rproc = rvring->rvdev->rproc;
-	int idx = rvring->rvdev->vring - rvring;
+	int idx = rvring - rvring->rvdev->vring;
 	struct fw_rsc_vdev *rsc;
 
 	idr_remove(&rproc->notifyids, rvring->notifyid);
@@ -511,7 +511,7 @@
 
 	/* Initialise vdev subdevice */
 	snprintf(name, sizeof(name), "vdev%dbuffer", rvdev->index);
-	rvdev->dev.parent = rproc->dev.parent;
+	rvdev->dev.parent = &rproc->dev;
 	rvdev->dev.dma_pfn_offset = rproc->dev.parent->dma_pfn_offset;
 	rvdev->dev.release = rproc_rvdev_release;
 	dev_set_name(&rvdev->dev, "%s#%s", dev_name(rvdev->dev.parent), name);
@@ -2036,6 +2036,7 @@
 	rproc->dev.type = &rproc_type;
 	rproc->dev.class = &rproc_class;
 	rproc->dev.driver_data = rproc;
+	idr_init(&rproc->notifyids);
 
 	/* Assign a unique device index and name */
 	rproc->index = ida_simple_get(&rproc_dev_index, 0, 0, GFP_KERNEL);
@@ -2060,8 +2061,6 @@
 
 	mutex_init(&rproc->lock);
 
-	idr_init(&rproc->notifyids);
-
 	INIT_LIST_HEAD(&rproc->carveouts);
 	INIT_LIST_HEAD(&rproc->mappings);
 	INIT_LIST_HEAD(&rproc->traces);
@@ -2224,7 +2223,7 @@
 
 	return 0;
 }
-module_init(remoteproc_init);
+subsys_initcall(remoteproc_init);
 
 static void __exit remoteproc_exit(void)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/remoteproc/remoteproc_virtio.c
+++ linux-gkeop-5.4-5.4.0/drivers/remoteproc/remoteproc_virtio.c
@@ -334,6 +334,13 @@
 	struct rproc_mem_entry *mem;
 	int ret;
 
+	if (rproc->ops->kick == NULL) {
+		ret = -EINVAL;
+		dev_err(dev, ".kick method not defined for %s",
+				rproc->name);
+		goto out;
+	}
+
 	/* Try to find dedicated vdev buffer carveout */
 	mem = rproc_find_carveout_by_name(rproc, "vdev%dbuffer", rvdev->index);
 	if (mem) {
@@ -368,6 +375,18 @@
 				goto out;
 			}
 		}
+	} else {
+		struct device_node *np = rproc->dev.parent->of_node;
+
+		/*
+		 * If we don't have dedicated buffer, just attempt to re-assign
+		 * the reserved memory from our parent. A default memory-region
+		 * at index 0 from the parent's memory-regions is assigned for
+		 * the rvdev dev to allocate from. Failure is non-critical and
+		 * the allocations will fall back to global pools, so don't
+		 * check return value either.
+		 */
+		of_reserved_mem_device_init_by_idx(dev, np, 0);
 	}
 
 	/* Allocate virtio device */
--- linux-gkeop-5.4-5.4.0.orig/drivers/reset/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/reset/core.c
@@ -787,7 +787,7 @@
 		return ERR_PTR(-ENOMEM);
 
 	rstc = __reset_control_get(dev, id, index, shared, optional, acquired);
-	if (!IS_ERR(rstc)) {
+	if (!IS_ERR_OR_NULL(rstc)) {
 		*ptr = rstc;
 		devres_add(dev, ptr);
 	} else {
@@ -861,8 +861,7 @@
  * @acquired: only one reset control may be acquired for a given controller
  *            and ID
  *
- * Returns pointer to allocated reset_control_array on success or
- * error on failure
+ * Returns pointer to allocated reset_control on success or error on failure
  */
 struct reset_control *
 of_reset_control_array_get(struct device_node *np, bool shared, bool optional,
@@ -915,8 +914,7 @@
  * that just have to be asserted or deasserted, without any
  * requirements on the order.
  *
- * Returns pointer to allocated reset_control_array on success or
- * error on failure
+ * Returns pointer to allocated reset_control on success or error on failure
  */
 struct reset_control *
 devm_reset_control_array_get(struct device *dev, bool shared, bool optional)
@@ -930,7 +928,7 @@
 		return ERR_PTR(-ENOMEM);
 
 	rstc = of_reset_control_array_get(dev->of_node, shared, optional, true);
-	if (IS_ERR(rstc)) {
+	if (IS_ERR_OR_NULL(rstc)) {
 		devres_free(devres);
 		return rstc;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/reset/reset-brcmstb.c
+++ linux-gkeop-5.4-5.4.0/drivers/reset/reset-brcmstb.c
@@ -91,12 +91,6 @@
 		return -ENOMEM;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) ||
-	    !IS_ALIGNED(resource_size(res), SW_INIT_BANK_SIZE)) {
-		dev_err(kdev, "incorrect register range\n");
-		return -EINVAL;
-	}
-
 	priv->base = devm_ioremap_resource(kdev, res);
 	if (IS_ERR(priv->base))
 		return PTR_ERR(priv->base);
--- linux-gkeop-5.4-5.4.0.orig/drivers/reset/reset-uniphier.c
+++ linux-gkeop-5.4-5.4.0/drivers/reset/reset-uniphier.c
@@ -193,8 +193,8 @@
 #define UNIPHIER_PERI_RESET_FI2C(id, ch)		\
 	UNIPHIER_RESETX((id), 0x114, 24 + (ch))
 
-#define UNIPHIER_PERI_RESET_SCSSI(id)			\
-	UNIPHIER_RESETX((id), 0x110, 17)
+#define UNIPHIER_PERI_RESET_SCSSI(id, ch)		\
+	UNIPHIER_RESETX((id), 0x110, 17 + (ch))
 
 #define UNIPHIER_PERI_RESET_MCSSI(id)			\
 	UNIPHIER_RESETX((id), 0x114, 14)
@@ -209,7 +209,7 @@
 	UNIPHIER_PERI_RESET_I2C(6, 2),
 	UNIPHIER_PERI_RESET_I2C(7, 3),
 	UNIPHIER_PERI_RESET_I2C(8, 4),
-	UNIPHIER_PERI_RESET_SCSSI(11),
+	UNIPHIER_PERI_RESET_SCSSI(11, 0),
 	UNIPHIER_RESET_END,
 };
 
@@ -225,8 +225,11 @@
 	UNIPHIER_PERI_RESET_FI2C(8, 4),
 	UNIPHIER_PERI_RESET_FI2C(9, 5),
 	UNIPHIER_PERI_RESET_FI2C(10, 6),
-	UNIPHIER_PERI_RESET_SCSSI(11),
-	UNIPHIER_PERI_RESET_MCSSI(12),
+	UNIPHIER_PERI_RESET_SCSSI(11, 0),
+	UNIPHIER_PERI_RESET_SCSSI(12, 1),
+	UNIPHIER_PERI_RESET_SCSSI(13, 2),
+	UNIPHIER_PERI_RESET_SCSSI(14, 3),
+	UNIPHIER_PERI_RESET_MCSSI(15),
 	UNIPHIER_RESET_END,
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/rpmsg/qcom_glink_native.c
+++ linux-gkeop-5.4-5.4.0/drivers/rpmsg/qcom_glink_native.c
@@ -241,10 +241,31 @@
 {
 	struct glink_channel *channel = container_of(ref, struct glink_channel,
 						     refcount);
+	struct glink_core_rx_intent *intent;
+	struct glink_core_rx_intent *tmp;
 	unsigned long flags;
+	int iid;
+
+	/* cancel pending rx_done work */
+	cancel_work_sync(&channel->intent_work);
 
 	spin_lock_irqsave(&channel->intent_lock, flags);
+	/* Free all non-reuse intents pending rx_done work */
+	list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) {
+		if (!intent->reuse) {
+			kfree(intent->data);
+			kfree(intent);
+		}
+	}
+
+	idr_for_each_entry(&channel->liids, tmp, iid) {
+		kfree(tmp->data);
+		kfree(tmp);
+	}
 	idr_destroy(&channel->liids);
+
+	idr_for_each_entry(&channel->riids, tmp, iid)
+		kfree(tmp);
 	idr_destroy(&channel->riids);
 	spin_unlock_irqrestore(&channel->intent_lock, flags);
 
@@ -949,7 +970,7 @@
 		return -EINVAL;
 	}
 
-	complete(&channel->open_ack);
+	complete_all(&channel->open_ack);
 
 	return 0;
 }
@@ -1094,13 +1115,12 @@
 close_link:
 	/*
 	 * Send a close request to "undo" our open-ack. The close-ack will
-	 * release the last reference.
+	 * release qcom_glink_send_open_req() reference and the last reference
+	 * will be relesed after receiving remote_close or transport unregister
+	 * by calling qcom_glink_native_remove().
 	 */
 	qcom_glink_send_close_req(glink, channel);
 
-	/* Release qcom_glink_send_open_req() reference */
-	kref_put(&channel->refcount, qcom_glink_channel_release);
-
 	return ret;
 }
 
@@ -1158,7 +1178,7 @@
 	__be32 *val = defaults;
 	int size;
 
-	if (glink->intentless)
+	if (glink->intentless || !completion_done(&channel->open_ack))
 		return 0;
 
 	prop = of_find_property(np, "qcom,intents", NULL);
@@ -1393,7 +1413,7 @@
 	channel->rcid = ret;
 	spin_unlock_irqrestore(&glink->idr_lock, flags);
 
-	complete(&channel->open_req);
+	complete_all(&channel->open_req);
 
 	if (create_device) {
 		rpdev = kzalloc(sizeof(*rpdev), GFP_KERNEL);
@@ -1415,15 +1435,13 @@
 
 		ret = rpmsg_register_device(rpdev);
 		if (ret)
-			goto free_rpdev;
+			goto rcid_remove;
 
 		channel->rpdev = rpdev;
 	}
 
 	return 0;
 
-free_rpdev:
-	kfree(rpdev);
 rcid_remove:
 	spin_lock_irqsave(&glink->idr_lock, flags);
 	idr_remove(&glink->rcids, channel->rcid);
@@ -1544,6 +1562,18 @@
 	}
 }
 
+static void qcom_glink_cancel_rx_work(struct qcom_glink *glink)
+{
+	struct glink_defer_cmd *dcmd;
+	struct glink_defer_cmd *tmp;
+
+	/* cancel any pending deferred rx_work */
+	cancel_work_sync(&glink->rx_work);
+
+	list_for_each_entry_safe(dcmd, tmp, &glink->rx_queue, node)
+		kfree(dcmd);
+}
+
 struct qcom_glink *qcom_glink_native_probe(struct device *dev,
 					   unsigned long features,
 					   struct qcom_glink_pipe *rx,
@@ -1619,23 +1649,24 @@
 	struct glink_channel *channel;
 	int cid;
 	int ret;
-	unsigned long flags;
 
 	disable_irq(glink->irq);
-	cancel_work_sync(&glink->rx_work);
+	qcom_glink_cancel_rx_work(glink);
 
 	ret = device_for_each_child(glink->dev, NULL, qcom_glink_remove_device);
 	if (ret)
 		dev_warn(glink->dev, "Can't remove GLINK devices: %d\n", ret);
 
-	spin_lock_irqsave(&glink->idr_lock, flags);
 	/* Release any defunct local channels, waiting for close-ack */
 	idr_for_each_entry(&glink->lcids, channel, cid)
 		kref_put(&channel->refcount, qcom_glink_channel_release);
 
+	/* Release any defunct local channels, waiting for close-req */
+	idr_for_each_entry(&glink->rcids, channel, cid)
+		kref_put(&channel->refcount, qcom_glink_channel_release);
+
 	idr_destroy(&glink->lcids);
 	idr_destroy(&glink->rcids);
-	spin_unlock_irqrestore(&glink->idr_lock, flags);
 	mbox_free_channel(glink->mbox_chan);
 }
 EXPORT_SYMBOL_GPL(qcom_glink_native_remove);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rpmsg/qcom_glink_smem.c
+++ linux-gkeop-5.4-5.4.0/drivers/rpmsg/qcom_glink_smem.c
@@ -105,7 +105,7 @@
 	tail = le32_to_cpu(*pipe->tail);
 
 	tail += count;
-	if (tail > pipe->native.length)
+	if (tail >= pipe->native.length)
 		tail -= pipe->native.length;
 
 	*pipe->tail = cpu_to_le32(tail);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rpmsg/qcom_smd.c
+++ linux-gkeop-5.4-5.4.0/drivers/rpmsg/qcom_smd.c
@@ -1338,7 +1338,7 @@
 	ret = of_property_read_u32(node, key, &edge->edge_id);
 	if (ret) {
 		dev_err(dev, "edge missing %s property\n", key);
-		return -EINVAL;
+		goto put_node;
 	}
 
 	edge->remote_pid = QCOM_SMEM_HOST_ANY;
@@ -1349,32 +1349,37 @@
 	edge->mbox_client.knows_txdone = true;
 	edge->mbox_chan = mbox_request_channel(&edge->mbox_client, 0);
 	if (IS_ERR(edge->mbox_chan)) {
-		if (PTR_ERR(edge->mbox_chan) != -ENODEV)
-			return PTR_ERR(edge->mbox_chan);
+		if (PTR_ERR(edge->mbox_chan) != -ENODEV) {
+			ret = PTR_ERR(edge->mbox_chan);
+			goto put_node;
+		}
 
 		edge->mbox_chan = NULL;
 
 		syscon_np = of_parse_phandle(node, "qcom,ipc", 0);
 		if (!syscon_np) {
 			dev_err(dev, "no qcom,ipc node\n");
-			return -ENODEV;
+			ret = -ENODEV;
+			goto put_node;
 		}
 
 		edge->ipc_regmap = syscon_node_to_regmap(syscon_np);
-		if (IS_ERR(edge->ipc_regmap))
-			return PTR_ERR(edge->ipc_regmap);
+		if (IS_ERR(edge->ipc_regmap)) {
+			ret = PTR_ERR(edge->ipc_regmap);
+			goto put_node;
+		}
 
 		key = "qcom,ipc";
 		ret = of_property_read_u32_index(node, key, 1, &edge->ipc_offset);
 		if (ret < 0) {
 			dev_err(dev, "no offset in %s\n", key);
-			return -EINVAL;
+			goto put_node;
 		}
 
 		ret = of_property_read_u32_index(node, key, 2, &edge->ipc_bit);
 		if (ret < 0) {
 			dev_err(dev, "no bit in %s\n", key);
-			return -EINVAL;
+			goto put_node;
 		}
 	}
 
@@ -1385,7 +1390,8 @@
 	irq = irq_of_parse_and_map(node, 0);
 	if (irq < 0) {
 		dev_err(dev, "required smd interrupt missing\n");
-		return -EINVAL;
+		ret = irq;
+		goto put_node;
 	}
 
 	ret = devm_request_irq(dev, irq,
@@ -1393,12 +1399,18 @@
 			       node->name, edge);
 	if (ret) {
 		dev_err(dev, "failed to request smd irq\n");
-		return ret;
+		goto put_node;
 	}
 
 	edge->irq = irq;
 
 	return 0;
+
+put_node:
+	of_node_put(node);
+	edge->of_node = NULL;
+
+	return ret;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/rpmsg/rpmsg_char.c
+++ linux-gkeop-5.4-5.4.0/drivers/rpmsg/rpmsg_char.c
@@ -227,8 +227,10 @@
 	if (!kbuf)
 		return -ENOMEM;
 
-	if (!copy_from_iter_full(kbuf, len, from))
-		return -EFAULT;
+	if (!copy_from_iter_full(kbuf, len, from)) {
+		ret = -EFAULT;
+		goto free_kbuf;
+	}
 
 	if (mutex_lock_interruptible(&eptdev->ept_lock)) {
 		ret = -ERESTARTSYS;
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/Kconfig
@@ -217,6 +217,15 @@
 	  This driver can also be built as a module. If so, the module
 	  will be called rtc-ac100.
 
+config RTC_DRV_AM1805
+	tristate "Ambiq micro AM1805 RTC driver"
+	help
+	  If you say yes here you get support for Ambiq micro AM1805 RTC
+	  chip.
+
+	  This driver can also be built as a module. If so, the module
+	  will be called rtc-am1805.
+
 config RTC_DRV_BRCMSTB
 	tristate "Broadcom STB wake-timer"
 	depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
@@ -240,6 +249,7 @@
 
 config RTC_DRV_DS1307
 	tristate "Dallas/Maxim DS1307/37/38/39/40/41, ST M41T00, EPSON RX-8025, ISL12057"
+	select REGMAP_I2C
 	help
 	  If you say yes here you get support for various compatible RTC
 	  chips (often with battery backup) connected with I2C. This driver
@@ -326,6 +336,7 @@
 config RTC_DRV_MAX8907
 	tristate "Maxim MAX8907"
 	depends on MFD_MAX8907 || COMPILE_TEST
+	select REGMAP_IRQ
 	help
 	  If you say yes here you will get support for the
 	  RTC of Maxim MAX8907 PMIC.
@@ -632,6 +643,7 @@
 
 config RTC_DRV_RX8581
 	tristate "Epson RX-8571/RX-8581"
+	select REGMAP_I2C
 	help
 	  If you say yes here you will get support for the Epson RX-8571/
 	  RX-8581.
@@ -659,6 +671,7 @@
 
 config RTC_DRV_RV3028
 	tristate "Micro Crystal RV3028"
+	select REGMAP_I2C
 	help
 	  If you say yes here you get support for the Micro Crystal
 	  RV3028.
@@ -679,6 +692,7 @@
 	tristate "Samsung S2M/S5M series"
 	depends on MFD_SEC_CORE || COMPILE_TEST
 	select REGMAP_IRQ
+	select REGMAP_I2C
 	help
 	  If you say yes here you will get support for the
 	  RTC of Samsung S2MPS14 and S5M PMIC series.
@@ -688,6 +702,7 @@
 
 config RTC_DRV_SD3078
     tristate "ZXW Shenzhen whwave SD3078"
+    select REGMAP_I2C
     help
       If you say yes here you get support for the ZXW Shenzhen whwave
       SD3078 RTC chips.
@@ -859,14 +874,14 @@
 	default m if I2C=m
 	default y if I2C=y
 	default y if SPI_MASTER=y
-	select REGMAP_I2C if I2C
-	select REGMAP_SPI if SPI_MASTER
 
 comment "SPI and I2C RTC drivers"
 
 config RTC_DRV_DS3232
 	tristate "Dallas/Maxim DS3232/DS3234"
 	depends on RTC_I2C_AND_SPI
+	select REGMAP_I2C if I2C
+	select REGMAP_SPI if SPI_MASTER
 	help
 	  If you say yes here you get support for Dallas Semiconductor
 	  DS3232 and DS3234 real-time clock chips. If an interrupt is associated
@@ -886,6 +901,8 @@
 config RTC_DRV_PCF2127
 	tristate "NXP PCF2127"
 	depends on RTC_I2C_AND_SPI
+	select REGMAP_I2C if I2C
+	select REGMAP_SPI if SPI_MASTER
 	select WATCHDOG_CORE if WATCHDOG
 	help
 	  If you say yes here you get support for the NXP PCF2127/29 RTC
@@ -902,6 +919,8 @@
 config RTC_DRV_RV3029C2
 	tristate "Micro Crystal RV3029/3049"
 	depends on RTC_I2C_AND_SPI
+	select REGMAP_I2C if I2C
+	select REGMAP_SPI if SPI_MASTER
 	help
 	  If you say yes here you get support for the Micro Crystal
 	  RV3029 and RV3049 RTC chips.
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/Makefile
@@ -31,6 +31,7 @@
 obj-$(CONFIG_RTC_DRV_ABEOZ9)	+= rtc-ab-eoz9.o
 obj-$(CONFIG_RTC_DRV_ABX80X)	+= rtc-abx80x.o
 obj-$(CONFIG_RTC_DRV_AC100)	+= rtc-ac100.o
+obj-$(CONFIG_RTC_DRV_AM1805)	+= rtc-am1805.o
 obj-$(CONFIG_RTC_DRV_ARMADA38X)	+= rtc-armada38x.o
 obj-$(CONFIG_RTC_DRV_AS3722)	+= rtc-as3722.o
 obj-$(CONFIG_RTC_DRV_ASM9260)	+= rtc-asm9260.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/interface.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/interface.c
@@ -125,7 +125,7 @@
 
 int rtc_set_time(struct rtc_device *rtc, struct rtc_time *tm)
 {
-	int err;
+	int err, uie;
 
 	err = rtc_valid_tm(tm);
 	if (err != 0)
@@ -137,6 +137,17 @@
 
 	rtc_subtract_offset(rtc, tm);
 
+#ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
+	uie = rtc->uie_rtctimer.enabled || rtc->uie_irq_active;
+#else
+	uie = rtc->uie_rtctimer.enabled;
+#endif
+	if (uie) {
+		err = rtc_update_irq_enable(rtc, 0);
+		if (err)
+			return err;
+	}
+
 	err = mutex_lock_interruptible(&rtc->ops_lock);
 	if (err)
 		return err;
@@ -153,6 +164,12 @@
 	/* A timer might have just expired */
 	schedule_work(&rtc->irqwork);
 
+	if (uie) {
+		err = rtc_update_irq_enable(rtc, 1);
+		if (err)
+			return err;
+	}
+
 	trace_rtc_set_time(rtc_tm_to_time64(tm), err);
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-88pm860x.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-88pm860x.c
@@ -336,6 +336,10 @@
 	info->dev = &pdev->dev;
 	dev_set_drvdata(&pdev->dev, info);
 
+	info->rtc_dev = devm_rtc_allocate_device(&pdev->dev);
+	if (IS_ERR(info->rtc_dev))
+		return PTR_ERR(info->rtc_dev);
+
 	ret = devm_request_threaded_irq(&pdev->dev, info->irq, NULL,
 					rtc_update_handler, IRQF_ONESHOT, "rtc",
 					info);
@@ -377,13 +381,11 @@
 		}
 	}
 
-	info->rtc_dev = devm_rtc_device_register(&pdev->dev, "88pm860x-rtc",
-					    &pm860x_rtc_ops, THIS_MODULE);
-	ret = PTR_ERR(info->rtc_dev);
-	if (IS_ERR(info->rtc_dev)) {
-		dev_err(&pdev->dev, "Failed to register RTC device: %d\n", ret);
+	info->rtc_dev->ops = &pm860x_rtc_ops;
+
+	ret = rtc_register_device(info->rtc_dev);
+	if (ret)
 		return ret;
-	}
 
 	/*
 	 * enable internal XO instead of internal 3.25MHz clock since it can
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-am1805.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-am1805.c
@@ -0,0 +1,1562 @@
+/*
+ * Copyright (C) 2016 Eurotech S.p.A.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/*
+ * Version History.
+ * 2016-10-26	0.6.0	fixed time fields in rtc_read_alarm function
+ *
+ * 2016-10-03	0.5.0	notify that UIE is not supported by our hw
+ *			add mutex lock/unlock to read/set time functions
+ *
+ * 2016-07-12	0.4-0	Add clock_adj parameter for XT clock calibration
+ *
+ * 2016-04-20	0.3.0	Add board turn on feature
+ *			Feature is enabled as parameter and can be changed
+ *			via sysfs
+ *			Trickle charger as module parameter
+ *
+ * 2016-04-01	0.2.0	Add alarm, watchdog functionality
+ *			watchdog create a 60ms pulse on sRST pin 3.3V -> 0 -> 3.3V
+ *			alarm create a 250ms pulse on nIRQ pin 3.3V -> 0 -> 3.3V
+ *
+ * 2016-01-22	0.1.0	First Release
+ *			date time get/set commands
+ *			256 byte get/set via sysfs.
+ *			ram_address allows to get/set ram_byte
+ *			watchdog
+ *
+ */
+
+#include <linux/bcd.h>
+#include <linux/i2c.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/rtc.h>
+#include <linux/pm.h>
+#include <linux/pm_wakeup.h>
+#include <linux/watchdog.h>
+#include <linux/jiffies.h>
+
+#define DEFAULT_FORCE_SMBUS 0
+static bool force_smbus = DEFAULT_FORCE_SMBUS;
+module_param(force_smbus, bool, 0444);
+MODULE_PARM_DESC(force_smbus, "force smbus protocol (default="
+	__MODULE_STRING(DEFAULT_FORCE_SMBUS) ")");
+
+#define DEFAULT_WATCHDOG_TIMEOUT        30
+static int timeout = DEFAULT_WATCHDOG_TIMEOUT;
+module_param(timeout, int, 0444);
+MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds. (1<=timeout<=124, default="
+	__MODULE_STRING(DEFAULT_WATCHDOG_TIMEOUT) ")");
+
+static bool nowayout = WATCHDOG_NOWAYOUT;
+module_param(nowayout, bool, 0444);
+MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
+	__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
+
+#define DEFAULT_DISABLE_ON_BOOT 1
+static bool disable_on_boot = DEFAULT_DISABLE_ON_BOOT;
+module_param(disable_on_boot, bool, 0444);
+MODULE_PARM_DESC(disable_on_boot, "Watchdog automatically disabled at boot time (default="
+	__MODULE_STRING(DEFAULT_DISABLE_ON_BOOT)")");
+
+/*
+ * the following paramweter could be removed since revA board should
+ * provide WDT IRQ to cortex via RST pin only
+ */
+#define DEFAULT_STEERING 1
+static bool watchdog_steering = DEFAULT_STEERING;
+module_param(watchdog_steering, bool, 0444);
+MODULE_PARM_DESC(watchdog_steering, "Watchdog IRQ steering : 0 WIRQ , 1 RST (default="
+	__MODULE_STRING(DEFAULT_STEERING)")");
+
+#define DEFAULT_BOARD_TURN_ON 0
+static bool board_turn_on = DEFAULT_BOARD_TURN_ON;
+module_param(board_turn_on, bool, 0444);
+MODULE_PARM_DESC(board_turn_on, "Enable board turn on via alarm route (default="
+	__MODULE_STRING(DEFAULT_BOARD_TURN_ON)")");
+
+#define DEFAULT_TRICKLE_REGISTER 0x00
+static int trickle_register = DEFAULT_TRICKLE_REGISTER;
+module_param(trickle_register, int, 0444);
+MODULE_PARM_DESC(trickle_register, "trickle charger register (default="
+	__MODULE_STRING(DEFAULT_TRICKLE_REGISTER)")");
+
+#define DEFAULT_XT_CLOCK_ADJ 0
+static int xt_clock_adj = DEFAULT_XT_CLOCK_ADJ;
+module_param(xt_clock_adj, int, 0444);
+MODULE_PARM_DESC(xt_clock_adj, "Adj parameter as per Ambiq micro procedure (default="
+	__MODULE_STRING(DEFAULT_XT_CLOCK_ADJ)")");
+
+#define DRIVER_NAME "rtc-am1805"
+#define DRIVER_VERSION "0.6.0"
+
+#define AM1805_IDENTITY_CODE	0x18
+#define SECONDS_BITS	0x7F
+#define MINUTES_BITS	0x7F
+#define HOURS_BITS	0x3F
+#define DATE_BITS	0x3F
+#define MONTHS_BITS	0x1F
+#define WEEKDAY_BITS	0x07
+
+#define REG_HUNDREDS_ADDR	0x00	// hundreds of seconds register address
+#define REG_SECONDS_ADDR	0x01	// seconds register address
+#define REG_MINUTES_ADDR	0x02	// minutes register address
+#define REG_HOURS_ADDR		0x03	// hours register address
+#define REG_MDAY_ADDR		0x04	// day of the month register address
+#define REG_MONTH_ADDR		0x05	// month register address
+#define REG_YEAR_ADDR		0x06	// years register address
+#define REG_WDAY_ADDR		0x07	// day of the week register address
+
+#define REG_ALM_HUNDREDS_ADDR	0x08	// Alarm hundreds of seconds register address
+#define REG_ALM_SECONDS_ADDR	0x09	// Alarm seconds register address
+#define REG_ALM_MINUTES_ADDR	0x0A	// Alarm minutes register address
+#define REG_ALM_HOURS_ADDR	0x0B	// Alarm hours register address
+#define REG_ALM_MDAY_ADDR	0x0C	// Alarm day of the month register address
+#define REG_ALM_MONTH_ADDR	0x0D	// Alarm month register address
+#define REG_ALM_WDAY_ADDR	0x0E	// Alarm day of the week register address
+
+#define REG_STATUS_ADDR		0x0F	// status register address
+#define REG_STATUS_ALM	(1 << 2)	// Alarm function enabled
+#define REG_STATUS_WDT	(1 << 5)	// Watchdog expired bit
+#define REG_STATUS_CB	(1 << 7)	// Century rollover bit
+
+#define REG_CONTROL1_ADDR	0x10	// control1 register address
+#define REG_CONTROL1_WRTC	1	// write enable for counter registers
+#define REG_CONTROL1_PWR2	(1 << 1)	// PWR2
+#define REG_CONTROL1_ARST	(1 << 2)	// auto reset on read
+#define REG_CONTROL1_RSP	(1 << 3)	// nRST polarity 1 high 0 low
+#define REG_CONTROL1_OUT	(1 << 4)	// nIRQ pin static value
+#define REG_CONTROL1_OUTB	(1 << 5)	// nIRQ2 pin static value
+#define REG_CONTROL1_1224	(1 << 6)	// 12/24 format selection 0 = 24h
+#define REG_CONTROL1_STOP	(1 << 7)	// stop the clocking system
+
+#define REG_CONTROL2_ADDR	0x11	// control2 register address
+#define REG_CONTROL2_OUT2S_BITS 0x1C	// control2 register out2s bits
+#define REG_IRQ_MASK_ADDR	0x12	// Interrupt Mask register address
+#define REG_IRQ_MASK_AIE	(1 << 2)	// Alarm interrupt enable
+
+#define REG_XT_CALIB_ADDR	0x14	// XT calibration register address
+#define REG_XT_CALIB_OFFSETX_MASK	0x7F	// OFFSET X BIT MASK
+#define REG_XT_CALIB_CMDX	0x80	// cmdx field
+
+
+#define REG_TIMER_CTRL_ADDR	0x18	// Countdown timer control register address
+#define REG_TIMER_CTRL_RPT_BITS 0x1C	// only the RPT bits
+
+#define REG_WATCHDOG_ADDR	0x1B	// watchdog register address
+#define REG_WATCHDOG_WDS	(1 << 7)	// watchodg steering bit
+#define WRB_1_SECOND	0x02		//watchdog clock 1Hz
+#define WRB_4_SECONDS	0x03		//watchdog clock 1/4 Hz
+
+#define REG_OSC_STATUS_ADDR	0x1D	// oscillator status register address
+#define REG_OSC_STATUS_ACAL_MASK 0x60	// ACAL bit field mask
+#define REG_OSC_STATUS_ACAL_0	0x00
+#define REG_OSC_STATUS_ACAL_1	0x40
+#define REG_OSC_STATUS_ACAL_2	0x80
+#define REG_OSC_STATUS_ACAL_3	0xC0
+
+#define REG_CONFIGKEY_ADDR	0x1F	// configuration key register address
+
+
+#define REG_TRICKLE_ADDR	0x20	// trickle charger register
+
+#define REG_IDENTITY_ADDR	0x28	// identity register address must contain 0x18
+
+#define REG_EXTRAM_ADDR		0x3F	// Extension ram register address
+#define REG_EXTRAM_XADA		(1 << 2)  //select bank of memory
+
+static struct i2c_driver am1805_driver;
+
+struct am1805_data {
+	struct i2c_client   *client;
+	struct rtc_device   *rtc;
+	struct mutex        mutex;
+	int	use_smbus;
+	int	watchdog_timeout;
+	int	watchdog_disable_on_boot;
+	int	watchdog_steering;
+	int	watchdog_registered;
+	int	watchdog_enabled;
+	unsigned char	watchdog_reg;
+	unsigned long int	watchdog_start_jiffies;
+	int	ram_byte_file_created;
+	int	ram_address_file_created;
+	unsigned char	ram_address;
+	int	board_turn_on;
+	int	board_turn_on_file_created;
+	unsigned char trickle_register;
+};
+
+static int am1805_read(struct am1805_data *amq, u8 *buf, int len)
+{
+	int err, i;
+	u8 base_reg;
+	struct i2c_msg	msgs[] = {
+
+		{
+			.addr = amq->client->addr,
+			.flags = (amq->client->flags & I2C_M_TEN),
+			.len = 1,
+			.buf = buf,
+		},
+		{
+			.addr = amq->client->addr,
+			.flags = (amq->client->flags & I2C_M_TEN) | I2C_M_RD,
+			.len = len,
+			.buf = buf,
+		},
+	};
+	if (amq->use_smbus) {
+		/* use SMBUS transfer protocol */
+		base_reg = buf[0];
+		for (i = 0; i < len; i++) {
+			err = i2c_smbus_read_byte_data(amq->client, base_reg);
+			if (err < 0) {
+				dev_err(&amq->client->dev,
+					"read transfer error reg 0x%02X\n",
+					base_reg);
+				break;
+			}
+			buf[i] = (u8)err;
+			base_reg++;
+			err = 0;
+		}
+	} else {
+		/* use I2C transfer protocol */
+		err = i2c_transfer(amq->client->adapter, msgs, 2);
+
+		if (err != 2) {
+			dev_err(&amq->client->dev, "I2C read transfer error\n");
+			err = -EIO;
+		} else {
+			err = 0;
+		}
+	}
+	return err;
+}
+
+static int am1805_write(struct am1805_data *amq, u8 *buf, int len)
+{
+	int err = 0, i;
+	u8 base_reg;
+	struct i2c_msg msgs[] = {
+		{
+		 .addr = amq->client->addr,
+			.flags = (amq->client->flags & I2C_M_TEN),
+		 .len = len + 1,
+		 .buf = buf,
+		 },
+	};
+
+	if (amq->use_smbus) {
+		/* use SMBUS transfer protocol */
+		base_reg = buf[0];
+		for (i = 1; i <= len; i++) {
+			err = i2c_smbus_write_byte_data(amq->client, base_reg,
+							buf[i]);
+			if (err < 0) {
+				dev_err(&amq->client->dev,
+					"write transfer error reg 0x%02X\n",
+					base_reg);
+				break;
+			}
+			base_reg++;
+		}
+	} else {
+		/* use I2C transfer protocol */
+		err = i2c_transfer(amq->client->adapter, msgs, 1);
+		if (err != 1) {
+			dev_err(&amq->client->dev, "I2C write transfer error\n");
+			err = -EIO;
+		} else {
+			err = 0;
+		}
+	}
+	return err;
+}
+
+
+static int am1805_stop_rtc(struct am1805_data *amq)
+{
+	u8 regs[2];
+	int err;
+
+	regs[0] = REG_CONTROL1_ADDR;
+
+	err = am1805_read(amq, regs, 1);
+	if (err < 0)
+		return err;
+	regs[1] = regs[0];
+	regs[0] = REG_CONTROL1_ADDR;
+
+
+	regs[1] |= (REG_CONTROL1_STOP|REG_CONTROL1_WRTC);
+
+	err = am1805_write(amq, regs, 1);
+	if (err < 0)
+		return err;
+
+	return 0;
+}
+
+
+static int am1805_start_rtc(struct am1805_data *amq)
+{
+	u8 regs[2];
+	int err;
+
+	regs[0] = REG_CONTROL1_ADDR;
+
+	err = am1805_read(amq, regs, 1);
+	if (err < 0)
+		return err;
+	regs[1] = regs[0];
+	regs[0] = REG_CONTROL1_ADDR;
+
+	regs[1] &= (~(REG_CONTROL1_STOP|REG_CONTROL1_WRTC));
+
+	err = am1805_write(amq, regs, 1);
+	if (err < 0)
+		return err;
+
+	return 0;
+}
+
+static int am1805_rtc_read_time(struct device *dev, struct rtc_time *tm)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	struct am1805_data *amq;
+	u8 regs[8];
+	int err;
+
+	amq = i2c_get_clientdata(client);
+	mutex_lock(&amq->mutex);
+
+	regs[0] = REG_SECONDS_ADDR;
+	err = am1805_read(amq, regs, 7);
+	if (err)
+		goto exit;
+
+	/* read the status register */
+	regs[7] = REG_STATUS_ADDR;
+	err = am1805_read(amq, &regs[7], 1);
+	if (err)
+		goto exit;
+	regs[0] &= SECONDS_BITS;
+	regs[1] &= MINUTES_BITS;
+	regs[2] &= HOURS_BITS;
+	regs[3] &= DATE_BITS;
+	regs[4] &= MONTHS_BITS;
+	regs[6] &= WEEKDAY_BITS;
+
+	tm->tm_sec = bcd2bin(regs[0]);
+	tm->tm_min = bcd2bin(regs[1]);
+	tm->tm_hour = bcd2bin(regs[2]);
+	tm->tm_mday = bcd2bin(regs[3]);
+	tm->tm_mon = bcd2bin(regs[4]);
+	tm->tm_mon--;
+	tm->tm_year = bcd2bin(regs[5])+100;
+
+	if (regs[7] & REG_STATUS_CB)
+		tm->tm_year += 100;
+	tm->tm_wday = regs[6];
+
+	err = rtc_valid_tm(tm);
+exit:
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+
+static int am1805_rtc_set_time(struct device *dev, struct rtc_time *tm)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	struct am1805_data *amq;
+	u8 regs[10];
+	int err;
+
+	amq = i2c_get_clientdata(client);
+
+	mutex_lock(&amq->mutex);
+
+	err = am1805_stop_rtc(amq);
+	if (err < 0)
+		goto exit;
+	regs[0] = REG_HUNDREDS_ADDR;
+	regs[1] = bin2bcd(0);
+	regs[2] = bin2bcd(tm->tm_sec);
+	regs[3] = bin2bcd(tm->tm_min);
+	regs[4] = bin2bcd(tm->tm_hour);
+	regs[5] = bin2bcd(tm->tm_mday);
+	regs[6] = bin2bcd(tm->tm_mon+1);
+	regs[7] = bin2bcd(tm->tm_year - 100);
+	regs[8] = tm->tm_wday;
+
+
+	err = am1805_write(amq, regs, 8);
+	if (am1805_start_rtc(amq))
+		err =  -1;
+exit:
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+/*******************************************************************************
+ * RAM byte
+ * 256 bytes available
+ * read return the byte pointed by ram_address
+ * write store the values in ram_address
+ */
+
+static ssize_t am1805_ram_byte_show(struct device *dev,
+				     struct device_attribute *attr, char *buf)
+{
+	int err;
+	unsigned char ram_byte;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+
+	mutex_lock(&amq->mutex);
+	ram_byte = amq->ram_address;
+	ram_byte |= 0x80;
+	err = am1805_read(amq, &ram_byte, 1);
+	mutex_unlock(&amq->mutex);
+
+	if (err == 0)
+		err = sprintf(buf, "%02X\n", ram_byte);
+	return err;
+}
+
+static ssize_t am1805_ram_byte_store(struct device *dev,
+				      struct device_attribute *attr,
+				      const char *buf, size_t count)
+{
+	int err;
+	unsigned char reg[2];
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	mutex_lock(&amq->mutex);
+
+	err = kstrtou8(buf, 10, &reg[1]);
+	if (err == 0) {
+		reg[0] = amq->ram_address;
+		reg[0] |= 0x80;
+		err = am1805_write(amq, reg, 1);
+	}
+
+	mutex_unlock(&amq->mutex);
+	if (err)
+		return err;
+	return count;
+}
+
+static const struct device_attribute am1805_ram_byte_device_attribute = {
+	.attr.name  = "ram_byte",
+	.attr.mode  = 0600,
+	.show       = am1805_ram_byte_show,
+	.store      = am1805_ram_byte_store,
+};
+/****** END RAM BYTE ATTIBUTES  ********/
+
+/*******************************************************************************
+ * RAM Address
+ * 256 bytes available
+ * read return current ram_address
+ * write store the values in ram_address and set Extension Ram register
+ */
+
+static ssize_t am1805_ram_address_show(struct device *dev,
+					struct device_attribute *attr,
+					char *buf)
+{
+	int err;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+
+	mutex_lock(&amq->mutex);
+	err = sprintf(buf, "%02X\n", amq->ram_address);
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static ssize_t am1805_ram_address_store(struct device *dev,
+					 struct device_attribute *attr,
+					 const char *buf, size_t count)
+{
+	int err;
+	unsigned char reg[2], ram_addr;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	mutex_lock(&amq->mutex);
+
+	err = kstrtou8(buf, 10, &ram_addr);
+	if (err == 0) {
+		reg[0] = (unsigned char)(ram_addr ^ amq->ram_address);
+		reg[0] &= 0x80;
+		if (reg[0] == 0) {
+			/* no changes , same bank of memory) */
+			amq->ram_address = ram_addr;
+		} else {
+			reg[0] = REG_EXTRAM_ADDR;
+			err = am1805_read(amq, reg, 1);
+			if (err == 0) {
+				reg[1] = reg[0];
+				reg[0] = REG_EXTRAM_ADDR;
+				if (ram_addr & 0x80)
+					reg[1] |= REG_EXTRAM_XADA;
+				else
+					reg[1] &=  ~REG_EXTRAM_XADA;
+				err = am1805_write(amq, reg, 1);
+				if (err == 0)
+					amq->ram_address = ram_addr;
+			}
+		}
+	}
+
+	mutex_unlock(&amq->mutex);
+	if (err)
+		return err;
+	return count;
+}
+
+static const struct device_attribute am1805_ram_address_device_attribute = {
+	.attr.name  = "ram_address",
+	.attr.mode  = 0600,
+	.show       = am1805_ram_address_show,
+	.store      = am1805_ram_address_store,
+};
+/****** END RAM ADDRESS ATTIBUTES  ********/
+
+
+/*******************************************************************************
+ * WATCHDOG
+ * gettimeleft function is implemented via jiffies since hw doesn't support
+ * this capability
+ */
+
+static int am1805_watchdog_compute_seconds(int *seconds,
+					    unsigned char *wdt_reg, int steer)
+{
+	int err = 0;
+	unsigned char reg_value = 0x00;
+
+	/* WatchDog-duration = BMB x stepsize */
+	if (*seconds > 120) {
+		*seconds = 124;
+		reg_value = 31;
+		reg_value <<= 2;
+		reg_value |= WRB_4_SECONDS;
+	} else if (*seconds > 31) {
+		reg_value = (unsigned char)(*seconds);
+		reg_value >>= 2;
+		if (((int)reg_value * 4) != *seconds)
+			reg_value++;
+		*seconds = reg_value;
+		*seconds <<= 2;
+		reg_value <<= 2;
+		reg_value |= WRB_4_SECONDS;
+	} else if (*seconds >= 0) {
+		reg_value = (unsigned char)*seconds;
+		reg_value <<= 2;
+		reg_value |= WRB_1_SECOND;
+	} else {
+		err =  -EINVAL;
+	}
+	if (steer)
+		reg_value |= REG_WATCHDOG_WDS;
+	if (wdt_reg != NULL)
+		*wdt_reg = reg_value;
+	return err;
+}
+
+static int am1805_watchdog_disable(struct am1805_data *am_data)
+{
+	int err;
+	unsigned char regs[2];
+
+	/* disable wdt */
+	regs[0] = REG_WATCHDOG_ADDR;
+	if (am_data->watchdog_steering)
+		regs[1] = (unsigned char)REG_WATCHDOG_WDS;
+	else
+		regs[1] = 0x00;
+	err = am1805_write(am_data, regs, 1);
+	if (err) {
+		dev_err(&am_data->client->dev,
+			"[%s] write watchdog reg ERROR\n", __func__);
+		return err;
+	}
+	regs[0] = REG_STATUS_ADDR;
+	err = am1805_read(am_data, regs, 1);
+	if (err) {
+		dev_err(&am_data->client->dev,
+			"[%s] read status reg ERROR\n", __func__);
+		return err;
+	}
+	regs[1] = regs[0];
+	regs[0] = REG_STATUS_ADDR;
+	regs[1] &=  ~REG_STATUS_WDT;
+	err = am1805_write(am_data, regs, 1);
+	if (err)
+		dev_err(&am_data->client->dev,
+			"[%s] write status reg ERROR\n", __func__);
+	am_data->watchdog_enabled = 0;
+	return err;
+}
+
+static int am1805_watchdog_enable(struct am1805_data *am_data)
+{
+	int err;
+	unsigned char regs[2];
+
+	err = am1805_watchdog_disable(am_data);
+	if (err)
+		return err;
+	/* CALCULATE THE REFRESH VALUE */
+	err = am1805_watchdog_compute_seconds(&am_data->watchdog_timeout,
+					      &am_data->watchdog_reg,
+					      am_data->watchdog_steering);
+	if (err) {
+		dev_err(&am_data->client->dev,
+			"[%s] problems while computing actual timeout\n",
+			__func__);
+		return err;
+	}
+
+	regs[0] = REG_WATCHDOG_ADDR;
+	regs[1] = am_data->watchdog_reg;
+	err = am1805_write(am_data, regs, 1);
+	if (err) {
+		dev_err(&am_data->client->dev,
+			"[%s] write watchdog reg ERROR\n", __func__);
+		return err;
+	}
+	am_data->watchdog_start_jiffies = jiffies;
+	am_data->watchdog_enabled = 1;
+	return 0;
+}
+
+static int am1805_watchdog_start_op(struct watchdog_device *device)
+{
+	int err;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = watchdog_get_drvdata(device);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+
+	mutex_lock(&amq->mutex);
+	/* disable wdt */
+	//err=am1805_watchdog_disable(amq);
+	//if (err==0) {
+		err = am1805_watchdog_enable(amq);
+		if (err == 0)
+			dev_dbg(&client->dev,
+				"[%s] watchdog enabled, seconds = %d\n",
+				__func__, amq->watchdog_timeout);
+	//}
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static int am1805_watchdog_stop_op(struct watchdog_device *device)
+{
+	int err;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = watchdog_get_drvdata(device);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+
+	mutex_lock(&amq->mutex);
+	err = am1805_watchdog_disable(amq);
+	if (err == 0)
+		dev_dbg(&client->dev, "[%s] watchdog disabled\n", __func__);
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static int am1805_watchdog_ping_op(struct watchdog_device *device)
+{
+	unsigned char regs[2];
+	int err;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = watchdog_get_drvdata(device);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+
+	mutex_lock(&amq->mutex);
+	if (amq->watchdog_enabled) {
+		regs[0] = REG_WATCHDOG_ADDR;
+		regs[1] = amq->watchdog_reg;
+		err = am1805_write(amq, regs, 1);
+		if (err)
+			dev_err(&amq->client->dev,
+				"[%s] write watchdog reg ERROR\n", __func__);
+	} else {
+		err = 0;
+		dev_dbg(&client->dev, "[%s] can not ping disabled watchdog\n",
+			__func__);
+	}
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static int am1805_watchdog_set_timeout_op(struct watchdog_device *device,
+					   unsigned int timeout)
+{
+	int err;
+	unsigned int seconds;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+	unsigned char reg_data;
+
+	client = watchdog_get_drvdata(device);
+	amq = i2c_get_clientdata(client);
+
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	seconds = (int)timeout;
+	mutex_lock(&amq->mutex);
+	err = am1805_watchdog_compute_seconds((int *)&seconds, &reg_data,
+					      amq->watchdog_steering);
+	if (err == 0) {
+		device->timeout = (unsigned int)seconds;
+		amq->watchdog_timeout = seconds;
+		amq->watchdog_reg = reg_data;
+	} else
+		dev_err(&client->dev,
+			"[%s] problems while computing actual timeout\n",
+			__func__);
+
+	mutex_unlock(&amq->mutex);
+	return 0;
+}
+
+static unsigned int am1805_watchdog_get_timeleft_op(struct watchdog_device
+						     *device)
+{
+	unsigned int time_left;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = watchdog_get_drvdata(device);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	mutex_lock(&amq->mutex);
+	time_left = jiffies;
+	time_left -= amq->watchdog_start_jiffies;
+	time_left = (unsigned int)(time_left/HZ);
+	mutex_unlock(&amq->mutex);
+	return time_left;
+}
+
+static struct watchdog_info am1805_watchdog_info = {
+	.options	= WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING
+			  | WDIOF_MAGICCLOSE,
+	.firmware_version = 0x00000100,
+	.identity       = "AM1805 Watchdog",
+};
+
+static struct watchdog_ops am1805_watchdog_ops = {
+	.owner          = THIS_MODULE,
+	.start          = am1805_watchdog_start_op,
+	.stop           = am1805_watchdog_stop_op,
+	.ping           = am1805_watchdog_ping_op,
+	.set_timeout    = am1805_watchdog_set_timeout_op,
+	.get_timeleft   = am1805_watchdog_get_timeleft_op,
+};
+
+static struct watchdog_device am1805_watchdog_device = {
+	.info           = &am1805_watchdog_info,
+	.ops            = &am1805_watchdog_ops,
+	.timeout        = DEFAULT_WATCHDOG_TIMEOUT,
+	.min_timeout    = 1,
+	.max_timeout    = 124,
+};
+
+/****** END Watchdog FUNCTIONS  ********/
+
+/****** START ALARM FUNCTIONS   ********/
+
+static int am1805_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)
+{
+	int err;
+	unsigned char regs[7];
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	mutex_lock(&amq->mutex);
+	regs[0] = REG_ALM_SECONDS_ADDR;
+	err = am1805_read(amq, regs, 6);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 6 register\n", __func__,
+			REG_ALM_SECONDS_ADDR);
+		goto exit;
+	}
+	regs[0] &= SECONDS_BITS;
+	regs[1] &= MINUTES_BITS;
+	regs[2] &= HOURS_BITS;
+	regs[3] &= DATE_BITS;
+	regs[4] &= MONTHS_BITS;
+	regs[5] &= WEEKDAY_BITS;
+
+	alarm->time.tm_sec  = bcd2bin(regs[0]);
+	alarm->time.tm_min  = bcd2bin(regs[1]);
+	alarm->time.tm_hour = bcd2bin(regs[2]);
+	alarm->time.tm_mday = bcd2bin(regs[3]);
+	alarm->time.tm_mon  = bcd2bin(regs[4]);
+	if (alarm->time.tm_mon > 0)
+		alarm->time.tm_mon--;
+	alarm->time.tm_wday = regs[5];
+
+	alarm->time.tm_year = -1;
+	alarm->time.tm_yday = -1;
+	alarm->time.tm_isdst = -1;
+
+	regs[0] = REG_IRQ_MASK_ADDR;
+	err = am1805_read(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 1 register\n", __func__,
+			REG_IRQ_MASK_ADDR);
+		goto exit;
+	}
+	alarm->enabled = (regs[0] & REG_IRQ_MASK_AIE) ? 1 : 0;
+
+	regs[0] = REG_STATUS_ADDR;
+	err = am1805_read(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 1 register\n",
+			__func__, REG_STATUS_ADDR);
+		goto exit;
+	}
+	alarm->pending = (regs[0] & REG_STATUS_ALM) ? 1 : 0;
+exit:
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+
+static int am1805_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
+{
+	int err;
+	unsigned char regs[8];
+	unsigned char timer_ctrl_reg, irq_mask_reg;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	/* Disable alarm */
+	mutex_lock(&amq->mutex);
+	regs[0] = REG_TIMER_CTRL_ADDR;
+	err = am1805_read(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 1 register\n",
+			__func__, REG_TIMER_CTRL_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+	regs[1] = regs[0];
+	regs[0] = REG_TIMER_CTRL_ADDR;
+	regs[1] &= (unsigned char)(~REG_TIMER_CTRL_RPT_BITS);
+	timer_ctrl_reg = regs[1];
+	err = am1805_write(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] write %02X 1 register\n",
+			__func__, REG_TIMER_CTRL_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+
+	regs[0] = REG_IRQ_MASK_ADDR;
+	err = am1805_read(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 1 register\n",
+			__func__, REG_IRQ_MASK_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+	regs[1] = regs[0];
+	regs[0] = REG_IRQ_MASK_ADDR;
+	regs[1] &= (unsigned char)(~REG_IRQ_MASK_AIE);
+	irq_mask_reg = regs[1];
+	err = am1805_write(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] write %02X 1 register\n",
+			__func__, REG_IRQ_MASK_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+	regs[0] = REG_STATUS_ADDR;
+	err = am1805_read(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 1 register\n",
+			__func__, REG_STATUS_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+	regs[1] = regs[0];
+	regs[0] = REG_STATUS_ADDR;
+	regs[1] &= (unsigned char)(~REG_STATUS_ALM);
+	err = am1805_write(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] write %02X 1 register\n",
+			__func__, REG_STATUS_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+	if (alarm->enabled) {
+		regs[0] = REG_ALM_HUNDREDS_ADDR;
+		regs[1] = bin2bcd(0);	/* hundreds of seconds */
+		regs[2] = bin2bcd(alarm->time.tm_sec);
+		regs[3] = bin2bcd(alarm->time.tm_min);
+		regs[4] = bin2bcd(alarm->time.tm_hour);
+		regs[5] = bin2bcd(alarm->time.tm_mday);
+		regs[6] = bin2bcd(alarm->time.tm_mon + 1);
+		regs[7] = (unsigned char)(alarm->time.tm_wday & 0x07);
+		err = am1805_write(amq, regs, 7);
+		if (err) {
+			dev_err(&client->dev, "[%s] write %02X 7 register\n",
+				__func__, REG_ALM_HUNDREDS_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[0] = REG_IRQ_MASK_ADDR;
+		regs[1] = irq_mask_reg;
+		regs[1] |= REG_IRQ_MASK_AIE;
+		err = am1805_write(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] write %02X 1 register\n",
+				__func__, REG_IRQ_MASK_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[0] = REG_TIMER_CTRL_ADDR;
+		regs[1] = timer_ctrl_reg;
+		regs[1] |= (unsigned char)(1 << 2);
+		err = am1805_write(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev,
+				"[%s] write %02X 1 register\n", __func__,
+				REG_TIMER_CTRL_ADDR);
+			err = -EIO;
+		}
+	}
+exit:
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static ssize_t am1805_board_turn_on_show(struct device *dev,
+					  struct device_attribute *attr,
+					  char *buf)
+{
+	int err;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	if (amq->board_turn_on)
+		err = sprintf(buf, "1\n");
+	else
+		err = sprintf(buf, "0\n");
+	return err;
+}
+
+static ssize_t am1805_board_turn_on_store(struct device *dev,
+					   struct device_attribute *attr,
+					   const char *buf, size_t count)
+{
+	int err, value;
+	struct i2c_client *client;
+	struct am1805_data *amq;
+	unsigned char regs[4];
+
+	client = to_i2c_client(dev);
+	amq = i2c_get_clientdata(client);
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	mutex_lock(&amq->mutex);
+
+	err = kstrtos32(buf, 10, &value);
+	if (err == 0) {
+		regs[0] = REG_CONTROL1_ADDR;
+		err = am1805_read(amq, regs, 2);
+		if (err) {
+			dev_err(&client->dev,
+				"[%s] read %02X register , count=2\n",
+				__func__, REG_CONTROL1_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[2] = regs[1];
+		regs[1] = regs[0];
+		regs[0] = REG_CONTROL1_ADDR;
+		regs[1] |= REG_CONTROL1_OUTB;
+		regs[2] &= (unsigned char)(~REG_CONTROL2_OUT2S_BITS);
+		if (value == 0) {
+			regs[2] |= (unsigned char)(7 << 2);
+			amq->board_turn_on = 0;
+		} else {
+			regs[2] |= (unsigned char)(3 << 2);
+			amq->board_turn_on = 1;
+		}
+		err = am1805_write(amq, regs, 2);
+		if (err) {
+			dev_err(&client->dev,
+				"[%s] write %02X register , count=2\n",
+				__func__, REG_CONTROL1_ADDR);
+			err = -EIO;
+			goto exit;
+		} else
+			err = count;
+	}
+exit:
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static const struct device_attribute am1805_board_turn_on_device_attribute = {
+	.attr.name  = "board_turn_on",
+	.attr.mode  = 0600,
+	.show       = am1805_board_turn_on_show,
+	.store      = am1805_board_turn_on_store,
+};
+
+/****** END ALARM FUNCTIONS     ********/
+
+static const struct rtc_class_ops am1805_rtc_ops = {
+	.read_time	= am1805_rtc_read_time,
+	.set_time	= am1805_rtc_set_time,
+	.set_alarm	= am1805_rtc_set_alarm,
+	.read_alarm	= am1805_rtc_read_alarm,
+};
+
+static void am1805_unload(struct i2c_client *client)
+{
+	struct am1805_data *amq;
+
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+
+	amq = i2c_get_clientdata(client);
+	if (amq->ram_byte_file_created) {
+		sysfs_remove_file(&client->dev.kobj,
+				  &am1805_ram_byte_device_attribute.attr);
+	}
+	if (amq->ram_address_file_created) {
+		sysfs_remove_file(&client->dev.kobj,
+				  &am1805_ram_address_device_attribute.attr);
+	}
+	if (amq->board_turn_on_file_created) {
+		sysfs_remove_file(&client->dev.kobj,
+				  &am1805_board_turn_on_device_attribute.attr);
+	}
+
+	if (amq->watchdog_registered) {
+		device_wakeup_disable(&client->dev);
+		watchdog_unregister_device(&am1805_watchdog_device);
+	}
+	devm_kfree(&client->dev, amq);
+}
+
+static int am1805_probe(struct i2c_client *client,
+			 const struct i2c_device_id *id)
+{
+	struct am1805_data *amq;
+	int err;
+	u8 regs[2];
+	u8 xt_calib_value = 0;
+	u32 smbus_func = (I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA
+			  | I2C_FUNC_SMBUS_I2C_BLOCK);
+
+	dev_info(&client->dev, "probe_start, driver version %s\n",
+		 DRIVER_VERSION);
+
+	amq = devm_kzalloc(&client->dev, sizeof(struct am1805_data),
+			   GFP_KERNEL);
+	if (amq == NULL) {
+		err = -ENOMEM;
+		dev_err(&client->dev,
+			"failed to allocate memory for module data: %d\n", err);
+		goto exit;
+	}
+	amq->ram_byte_file_created = 0;
+	amq->ram_address_file_created = 0;
+	amq->watchdog_timeout = timeout;
+	amq->watchdog_disable_on_boot = disable_on_boot;
+	amq->watchdog_steering = watchdog_steering;
+	amq->watchdog_enabled = 0;
+	amq->board_turn_on = board_turn_on;
+	amq->board_turn_on_file_created = 0;
+	amq->trickle_register = (unsigned char)trickle_register;
+	if (amq->watchdog_steering)
+		amq->watchdog_reg = REG_WATCHDOG_WDS;
+	else
+		amq->watchdog_reg = 0;
+	amq->watchdog_start_jiffies = 0;
+	amq->watchdog_registered = 0;
+	if ((i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
+	    && (force_smbus == 0)) {
+		amq->use_smbus = 0;
+	} else {
+		dev_warn(&client->dev, "client not i2c capable\n");
+		if (i2c_check_functionality(client->adapter, smbus_func)) {
+			amq->use_smbus = 1;
+			dev_warn(&client->dev, "client smbus capable\n");
+		} else {
+			err = -ENODEV;
+			dev_err(&client->dev, "client not SMBUS capable\n");
+			goto exit;
+		}
+	}
+
+	mutex_init(&amq->mutex);
+
+	amq->client = client;
+	i2c_set_clientdata(client, amq);
+
+	/* check identity register */
+	regs[0] = REG_IDENTITY_ADDR;
+	if (am1805_read(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev,
+			"fail to fetch identity register 0x%02X\n",
+			REG_IDENTITY_ADDR);
+		goto exit;
+	}
+
+	if (regs[0] != AM1805_IDENTITY_CODE) {
+		err = -ENODEV;
+		dev_err(&client->dev,
+			"chip not found,invalid identity code 0x%02X\n",
+			regs[0]);
+		goto exit;
+
+	}
+
+	/* set the trickle_register */
+	regs[0] = REG_CONFIGKEY_ADDR;
+	regs[1] = 0x9D;
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev,
+			"fail to set configuration key register\n");
+		goto exit;
+	}
+	regs[0] = REG_TRICKLE_ADDR;
+	regs[1] = amq->trickle_register;
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to set trickle register\n");
+		goto exit;
+	}
+
+	/* set extended ram register to default value */
+	amq->ram_address = 0x00;
+	regs[0] = REG_EXTRAM_ADDR;
+
+	if (am1805_read(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to fetch extension ram register\n");
+		goto exit;
+	}
+	regs[1] = regs[0];
+	regs[0] = REG_EXTRAM_ADDR;
+	regs[1] &= ~REG_EXTRAM_XADA;
+
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to set extension ram register\n");
+		goto exit;
+	}
+
+	/* ulock LKO2 in oscillator status register in order to drive OUTB */
+	/*
+	 * Bit_6-7 xtcal = 0
+	 * Bit_5 LKO2 = 0
+	 * Bit_4 OMODE = 0
+	 * Bit_2-3 RESERVED = 0
+	 * Bit_1 OF = 1
+	 * Bit_0 ACF = 0
+	 */
+	/* calibrate the XT oscillator */
+	regs[1] = 0x02;
+	xt_calib_value = 0x00;
+	if (xt_clock_adj <  -320)
+		dev_warn(&client->dev,
+			 "XT frequency too high to be calibrated adj = %d\n",
+			 xt_clock_adj);
+	else if (xt_clock_adj <  -256) {
+		/* XTCAL=3 CMDX=1 OFFSETX=(adj+192)/2 */
+		regs[1] |= REG_OSC_STATUS_ACAL_3;
+		xt_calib_value = (unsigned char)((int)(xt_clock_adj+192)>>1);
+		xt_calib_value &= REG_XT_CALIB_OFFSETX_MASK;
+		xt_calib_value |= REG_XT_CALIB_CMDX;
+	} else if (xt_clock_adj <  -192) {
+		/* XTCAL=3 CMDX=0 OFFSETX=(adj+192) */
+		regs[1] |= REG_OSC_STATUS_ACAL_3;
+		xt_calib_value = (unsigned char)((int)(xt_clock_adj+192));
+		xt_calib_value &= REG_XT_CALIB_OFFSETX_MASK;
+	} else if (xt_clock_adj <  -128) {
+		/* XTCAL=2 CMDX=0 OFFSETX=(adj+128) */
+		regs[1] |= REG_OSC_STATUS_ACAL_2;
+		xt_calib_value = (unsigned char)((int)(xt_clock_adj+128));
+		xt_calib_value &= REG_XT_CALIB_OFFSETX_MASK;
+	} else if (xt_clock_adj <  -64) {
+		/* XTCAL=1 CMDX=0 OFFSETX=(adj+64) */
+		regs[1] |= REG_OSC_STATUS_ACAL_1;
+		xt_calib_value = (unsigned char)((int)(xt_clock_adj+64));
+		xt_calib_value &= REG_XT_CALIB_OFFSETX_MASK;
+	} else if (xt_clock_adj < 64) {
+		/* XTCAL=0 CMDX=0 OFFSETX=(adj) */
+		regs[1] |= REG_OSC_STATUS_ACAL_0;
+		xt_calib_value = (unsigned char)(xt_clock_adj);
+		xt_calib_value &= REG_XT_CALIB_OFFSETX_MASK;
+	} else if (xt_clock_adj < 128) {
+		/* XTCAL=0 CMDX=1 OFFSETX=(adj)/2 */
+		regs[1] |= REG_OSC_STATUS_ACAL_0;
+		xt_calib_value = (unsigned char)((int)(xt_clock_adj>>1));
+		xt_calib_value &= REG_XT_CALIB_OFFSETX_MASK;
+		xt_calib_value |= REG_XT_CALIB_CMDX;
+	} else
+		dev_warn(&client->dev,
+			 "XT frequency too low to be calibrated adj = %d\n",
+			 xt_clock_adj);
+
+	regs[0] = REG_OSC_STATUS_ADDR;
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev,
+			"fail to set oscillator status register\n");
+		goto exit;
+	}
+
+	/* Calibration XT Register */
+	regs[0] = REG_XT_CALIB_ADDR;
+	regs[1] = xt_calib_value;
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to set XT calibration register\n");
+		goto exit;
+	}
+
+	/*
+	 * CONTROL1 register
+	 * STOP = 0	12/24 = 0
+	 * OUTB = 1 remove power latch due to rtc , OUT = 1
+	 * RSP = 0 due to watchdog  active low
+	 * ARST = 0	PWR2 = 1 WRTC = 1
+	 */
+	regs[0] = REG_CONTROL1_ADDR;
+	regs[1] = (REG_CONTROL1_OUTB|REG_CONTROL1_OUT | REG_CONTROL1_PWR2
+		   | REG_CONTROL1_WRTC);
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to set control1 register\n");
+		goto exit;
+	}
+
+	/*
+	 * CONTROL2 register
+	 * Bit_6-7 reseved = 0
+	 * Bit_5   RS1E	= 0 due to watchdog
+	 * Bit_2-4 OUT2S = 7 (board_turn_on =0) ; (3 board turn on =1)
+	 * Bit_0-1 OUT1S = 3 due to alarm
+	 */
+	regs[0] = REG_CONTROL2_ADDR;
+	regs[1] = 0;
+	if (amq->board_turn_on)
+		regs[1] |= 0x03;
+	else
+		regs[1] |= 0x07;
+	regs[1] <<= 2;
+	regs[1] |= 0x03;
+
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to set control2 register\n");
+		goto exit;
+	}
+
+	/*
+	 * alarm IRQ must be on level
+	 * Bit_7   CEB = 1
+	 * Bit_5-6 IM = 3 ALARM IRQ 1/4 sec
+	 * Bit_4 BLIE = 0
+	 * Bit_3 TIE = 0
+	 * Bit_2 AIE = 0
+	 * Bit_1 EX2E = 0
+	 * Bit_0 EX1E = 0
+	 */
+	regs[0] = REG_IRQ_MASK_ADDR;
+	regs[1] = 0xE0;	/* set im field to 0 */
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to set interrupt mask register\n");
+		goto exit;
+	}
+	/*
+	 * Disable alarm interrupt
+	 * Bit_7 TE = 0
+	 * Bit_6 TM = 0
+	 * Bit_5 TRPT = 1
+	 * Bit_2-4 RPT=0	ALARM DISABLE
+	 * Bit_0-1 TFS=3
+	 */
+	regs[0] = REG_TIMER_CTRL_ADDR;
+	regs[1] = 0x23;
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev,
+			"fail to set countdown timer control register\n");
+		goto exit;
+	}
+
+
+	/* clear the status register */
+	regs[0] = REG_STATUS_ADDR;
+	regs[1] = 0x00;
+	if (am1805_write(amq, regs, 1)) {
+		err = -ENODEV;
+		dev_err(&client->dev, "fail to clear status register\n");
+		goto exit;
+	}
+
+	amq->rtc = devm_rtc_device_register(&client->dev,
+					    am1805_driver.driver.name,
+					    &am1805_rtc_ops, THIS_MODULE);
+
+	if (IS_ERR(amq->rtc)) {
+		dev_err(&client->dev, "fail to register rtc device\n");
+		err = PTR_ERR(amq->rtc);
+		goto exit;
+	}
+	amq->rtc->uie_unsupported = 1;
+
+
+	/* RAM byte initialization */
+	err = sysfs_create_file(&client->dev.kobj,
+				&am1805_ram_byte_device_attribute.attr);
+	if (err) {
+		dev_err(&client->dev, "fail to create sysfs file \"%s\"\n",
+			am1805_ram_byte_device_attribute.attr.name);
+		goto exit;
+	}
+	amq->ram_byte_file_created = 1;
+
+	/* RAM address initialization */
+	err = sysfs_create_file(&client->dev.kobj,
+				&am1805_ram_address_device_attribute.attr);
+	if (err) {
+		dev_err(&client->dev, "fail to create sysfs file \"%s\"\n",
+			am1805_ram_address_device_attribute.attr.name);
+		goto exit;
+	}
+	amq->ram_address_file_created = 1;
+
+	/* board turn on initialization */
+	err = sysfs_create_file(&client->dev.kobj,
+				&am1805_board_turn_on_device_attribute.attr);
+	if (err) {
+		dev_err(&client->dev, "fail to create sysfs file \"%s\"\n",
+			am1805_board_turn_on_device_attribute.attr.name);
+		goto exit;
+	}
+	amq->board_turn_on_file_created = 1;
+
+	/* Watchdog driver registration */
+	watchdog_set_drvdata(&am1805_watchdog_device, client);
+	watchdog_init_timeout(&am1805_watchdog_device, amq->watchdog_timeout,
+			      NULL);
+	watchdog_set_nowayout(&am1805_watchdog_device, nowayout);
+	err = watchdog_register_device(&am1805_watchdog_device);
+	if (err) {
+		dev_err(&client->dev,
+			"ERROR, FAIL to register watchdog device\n");
+		goto exit;
+	}
+	amq->watchdog_registered = 1;
+	dev_info(&client->dev, "registered %s as watchdog%d\n",
+		 am1805_driver.driver.name, am1805_watchdog_device.id);
+
+	if (amq->watchdog_disable_on_boot) {
+		dev_info(&client->dev, "watchdog timer disabled at boot\n");
+		err = am1805_watchdog_disable(amq);
+		if (err)
+			goto exit;
+	} else {
+		dev_info(&client->dev,
+			 "watchdog timer enabled at boot, %d s\n",
+			 amq->watchdog_timeout);
+		err = am1805_watchdog_enable(amq);
+		if (err)
+			goto exit;
+	}
+	err = device_init_wakeup(&client->dev, true);
+	if (err)
+		dev_err(&client->dev, "dev_init_wakeup [%d] FAIL\n", err);
+	dev_info(&client->dev, "probe_end, init OK\n");
+	return 0;
+exit:
+	dev_info(&client->dev, "probe_end, init FAIL\n");
+	am1805_unload(client);
+	return err;
+}
+
+static int am1805_remove(struct i2c_client *client)
+{
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	am1805_unload(client);
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int am1805_resume(struct device *dev)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	struct am1805_data *amq;
+	unsigned char regs[2];
+	int err;
+
+	amq = i2c_get_clientdata(client);
+
+	dev_dbg(&client->dev, "[%s]\n", __func__);
+	mutex_lock(&amq->mutex);
+	/* is alarm expired? */
+	regs[0] = REG_STATUS_ADDR;
+	err = am1805_read(amq, regs, 1);
+	if (err) {
+		dev_err(&client->dev, "[%s] read %02X 1 register\n",
+			__func__, REG_STATUS_ADDR);
+		err = -EIO;
+		goto exit;
+	}
+
+	if (regs[0] & REG_STATUS_ALM) {
+		/* Disable alarm */
+		regs[0] = REG_TIMER_CTRL_ADDR;
+		err = am1805_read(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] read %02X 1 register\n",
+				__func__, REG_TIMER_CTRL_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[1] = regs[0];
+		regs[0] = REG_TIMER_CTRL_ADDR;
+		regs[1] &= (unsigned char)(~REG_TIMER_CTRL_RPT_BITS);
+		err = am1805_write(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] write %02X 1 register\n",
+				__func__, REG_TIMER_CTRL_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+
+		regs[0] = REG_IRQ_MASK_ADDR;
+		err = am1805_read(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] read %02X 1 register\n",
+				__func__, REG_IRQ_MASK_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[1] = regs[0];
+		regs[0] = REG_IRQ_MASK_ADDR;
+		regs[1] &= (unsigned char)(~REG_IRQ_MASK_AIE);
+		err = am1805_write(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] write %02X 1 register\n",
+				__func__, REG_IRQ_MASK_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[0] = REG_STATUS_ADDR;
+		err = am1805_read(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] read %02X 1 register\n",
+				__func__, REG_STATUS_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+		regs[1] = regs[0];
+		regs[0] = REG_STATUS_ADDR;
+		regs[1] &= (unsigned char)(~REG_STATUS_ALM);
+		err = am1805_write(amq, regs, 1);
+		if (err) {
+			dev_err(&client->dev, "[%s] write %02X 1 register\n",
+				__func__, REG_STATUS_ADDR);
+			err = -EIO;
+			goto exit;
+		}
+	}
+
+exit:
+	mutex_unlock(&amq->mutex);
+	return err;
+}
+
+static int am1805_suspend(struct device *dev)
+{
+	/* nothing to do at the moment */
+	return 0;
+}
+#else
+#define am1805_suspend	NULL
+#define am1805_resume	NULL
+#endif /* CONFIG_PM_SLEEP */
+
+static SIMPLE_DEV_PM_OPS(am1805_pm, am1805_suspend, am1805_resume);
+
+static const struct i2c_device_id am1805_id[] = {
+	{ "am1805", 0 },
+	{ }
+};
+MODULE_DEVICE_TABLE(i2c, am1805_id);
+
+static struct i2c_driver am1805_driver = {
+	.driver = {
+		.name = DRIVER_NAME,
+		.owner = THIS_MODULE,
+		.pm    = &am1805_pm,
+	},
+	.probe = am1805_probe,
+	.remove = am1805_remove,
+	.id_table = am1805_id,
+};
+module_i2c_driver(am1805_driver);
+
+MODULE_AUTHOR("Pierluigi Driusso <pierluigi.driusso@eurotech.com>");
+MODULE_DESCRIPTION("Ambiq micro AM1805 RTC driver");
+MODULE_LICENSE("GPL v2");
+MODULE_VERSION(DRIVER_VERSION);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-bd70528.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-bd70528.c
@@ -491,3 +491,4 @@
 MODULE_AUTHOR("Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>");
 MODULE_DESCRIPTION("BD70528 RTC driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:bd70528-rtc");
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-brcmstb-waketimer.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-brcmstb-waketimer.c
@@ -277,6 +277,7 @@
 	struct brcmstb_waketmr *timer = dev_get_drvdata(&pdev->dev);
 
 	unregister_reboot_notifier(&timer->reboot_notifier);
+	clk_disable_unprepare(timer->clk);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-cmos.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-cmos.c
@@ -850,7 +850,7 @@
 			rtc_cmos_int_handler = cmos_interrupt;
 
 		retval = request_irq(rtc_irq, rtc_cmos_int_handler,
-				IRQF_SHARED, dev_name(&cmos_rtc.rtc->dev),
+				0, dev_name(&cmos_rtc.rtc->dev),
 				cmos_rtc.rtc);
 		if (retval < 0) {
 			dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-ds1374.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-ds1374.c
@@ -620,6 +620,10 @@
 	if (!ds1374)
 		return -ENOMEM;
 
+	ds1374->rtc = devm_rtc_allocate_device(&client->dev);
+	if (IS_ERR(ds1374->rtc))
+		return PTR_ERR(ds1374->rtc);
+
 	ds1374->client = client;
 	i2c_set_clientdata(client, ds1374);
 
@@ -641,12 +645,11 @@
 		device_set_wakeup_capable(&client->dev, 1);
 	}
 
-	ds1374->rtc = devm_rtc_device_register(&client->dev, client->name,
-						&ds1374_rtc_ops, THIS_MODULE);
-	if (IS_ERR(ds1374->rtc)) {
-		dev_err(&client->dev, "unable to register the class device\n");
-		return PTR_ERR(ds1374->rtc);
-	}
+	ds1374->rtc->ops = &ds1374_rtc_ops;
+
+	ret = rtc_register_device(ds1374->rtc);
+	if (ret)
+		return ret;
 
 #ifdef CONFIG_RTC_DRV_DS1374_WDT
 	save_client = client;
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-ep93xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-ep93xx.c
@@ -33,7 +33,7 @@
 static int ep93xx_rtc_get_swcomp(struct device *dev, unsigned short *preload,
 				 unsigned short *delete)
 {
-	struct ep93xx_rtc *ep93xx_rtc = dev_get_platdata(dev);
+	struct ep93xx_rtc *ep93xx_rtc = dev_get_drvdata(dev);
 	unsigned long comp;
 
 	comp = readl(ep93xx_rtc->mmio_base + EP93XX_RTC_SWCOMP);
@@ -51,7 +51,7 @@
 
 static int ep93xx_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
-	struct ep93xx_rtc *ep93xx_rtc = dev_get_platdata(dev);
+	struct ep93xx_rtc *ep93xx_rtc = dev_get_drvdata(dev);
 	unsigned long time;
 
 	time = readl(ep93xx_rtc->mmio_base + EP93XX_RTC_DATA);
@@ -62,7 +62,7 @@
 
 static int ep93xx_rtc_set_time(struct device *dev, struct rtc_time *tm)
 {
-	struct ep93xx_rtc *ep93xx_rtc = dev_get_platdata(dev);
+	struct ep93xx_rtc *ep93xx_rtc = dev_get_drvdata(dev);
 	unsigned long secs = rtc_tm_to_time64(tm);
 
 	writel(secs + 1, ep93xx_rtc->mmio_base + EP93XX_RTC_LOAD);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-goldfish.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-goldfish.c
@@ -73,6 +73,7 @@
 		rtc_alarm64 = rtc_tm_to_time64(&alrm->time) * NSEC_PER_SEC;
 		writel((rtc_alarm64 >> 32), base + TIMER_ALARM_HIGH);
 		writel(rtc_alarm64, base + TIMER_ALARM_LOW);
+		writel(1, base + TIMER_IRQ_ENABLED);
 	} else {
 		/*
 		 * if this function was called with enabled=0
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-hym8563.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-hym8563.c
@@ -97,7 +97,7 @@
 
 	if (!hym8563->valid) {
 		dev_warn(&client->dev, "no valid clock/calendar values available\n");
-		return -EPERM;
+		return -EINVAL;
 	}
 
 	ret = i2c_smbus_read_i2c_block_data(client, HYM8563_SEC, 7, buf);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-mc13xxx.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-mc13xxx.c
@@ -308,8 +308,10 @@
 	mc13xxx_unlock(mc13xxx);
 
 	ret = rtc_register_device(priv->rtc);
-	if (ret)
+	if (ret) {
+		mc13xxx_lock(mc13xxx);
 		goto err_irq_request;
+	}
 
 	return 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-msm6242.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-msm6242.c
@@ -133,7 +133,8 @@
 		      msm6242_read(priv, MSM6242_SECOND1);
 	tm->tm_min  = msm6242_read(priv, MSM6242_MINUTE10) * 10 +
 		      msm6242_read(priv, MSM6242_MINUTE1);
-	tm->tm_hour = (msm6242_read(priv, MSM6242_HOUR10 & 3)) * 10 +
+	tm->tm_hour = (msm6242_read(priv, MSM6242_HOUR10) &
+		       MSM6242_HOUR10_HR_MASK) * 10 +
 		      msm6242_read(priv, MSM6242_HOUR1);
 	tm->tm_mday = msm6242_read(priv, MSM6242_DAY10) * 10 +
 		      msm6242_read(priv, MSM6242_DAY1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-mt6397.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-mt6397.c
@@ -47,6 +47,14 @@
 
 #define RTC_AL_SEC		0x0018
 
+#define RTC_AL_SEC_MASK		0x003f
+#define RTC_AL_MIN_MASK		0x003f
+#define RTC_AL_HOU_MASK		0x001f
+#define RTC_AL_DOM_MASK		0x001f
+#define RTC_AL_DOW_MASK		0x0007
+#define RTC_AL_MTH_MASK		0x000f
+#define RTC_AL_YEA_MASK		0x007f
+
 #define RTC_PDN2		0x002e
 #define RTC_PDN2_PWRON_ALARM	BIT(4)
 
@@ -103,7 +111,7 @@
 		irqen = irqsta & ~RTC_IRQ_EN_AL;
 		mutex_lock(&rtc->lock);
 		if (regmap_write(rtc->regmap, rtc->addr_base + RTC_IRQ_EN,
-				 irqen) < 0)
+				 irqen) == 0)
 			mtk_rtc_write_trigger(rtc);
 		mutex_unlock(&rtc->lock);
 
@@ -225,12 +233,12 @@
 	alm->pending = !!(pdn2 & RTC_PDN2_PWRON_ALARM);
 	mutex_unlock(&rtc->lock);
 
-	tm->tm_sec = data[RTC_OFFSET_SEC];
-	tm->tm_min = data[RTC_OFFSET_MIN];
-	tm->tm_hour = data[RTC_OFFSET_HOUR];
-	tm->tm_mday = data[RTC_OFFSET_DOM];
-	tm->tm_mon = data[RTC_OFFSET_MTH];
-	tm->tm_year = data[RTC_OFFSET_YEAR];
+	tm->tm_sec = data[RTC_OFFSET_SEC] & RTC_AL_SEC_MASK;
+	tm->tm_min = data[RTC_OFFSET_MIN] & RTC_AL_MIN_MASK;
+	tm->tm_hour = data[RTC_OFFSET_HOUR] & RTC_AL_HOU_MASK;
+	tm->tm_mday = data[RTC_OFFSET_DOM] & RTC_AL_DOM_MASK;
+	tm->tm_mon = data[RTC_OFFSET_MTH] & RTC_AL_MTH_MASK;
+	tm->tm_year = data[RTC_OFFSET_YEAR] & RTC_AL_YEA_MASK;
 
 	tm->tm_year += RTC_MIN_YEAR_OFFSET;
 	tm->tm_mon--;
@@ -251,14 +259,25 @@
 	tm->tm_year -= RTC_MIN_YEAR_OFFSET;
 	tm->tm_mon++;
 
-	data[RTC_OFFSET_SEC] = tm->tm_sec;
-	data[RTC_OFFSET_MIN] = tm->tm_min;
-	data[RTC_OFFSET_HOUR] = tm->tm_hour;
-	data[RTC_OFFSET_DOM] = tm->tm_mday;
-	data[RTC_OFFSET_MTH] = tm->tm_mon;
-	data[RTC_OFFSET_YEAR] = tm->tm_year;
-
 	mutex_lock(&rtc->lock);
+	ret = regmap_bulk_read(rtc->regmap, rtc->addr_base + RTC_AL_SEC,
+			       data, RTC_OFFSET_COUNT);
+	if (ret < 0)
+		goto exit;
+
+	data[RTC_OFFSET_SEC] = ((data[RTC_OFFSET_SEC] & ~(RTC_AL_SEC_MASK)) |
+				(tm->tm_sec & RTC_AL_SEC_MASK));
+	data[RTC_OFFSET_MIN] = ((data[RTC_OFFSET_MIN] & ~(RTC_AL_MIN_MASK)) |
+				(tm->tm_min & RTC_AL_MIN_MASK));
+	data[RTC_OFFSET_HOUR] = ((data[RTC_OFFSET_HOUR] & ~(RTC_AL_HOU_MASK)) |
+				(tm->tm_hour & RTC_AL_HOU_MASK));
+	data[RTC_OFFSET_DOM] = ((data[RTC_OFFSET_DOM] & ~(RTC_AL_DOM_MASK)) |
+				(tm->tm_mday & RTC_AL_DOM_MASK));
+	data[RTC_OFFSET_MTH] = ((data[RTC_OFFSET_MTH] & ~(RTC_AL_MTH_MASK)) |
+				(tm->tm_mon & RTC_AL_MTH_MASK));
+	data[RTC_OFFSET_YEAR] = ((data[RTC_OFFSET_YEAR] & ~(RTC_AL_YEA_MASK)) |
+				(tm->tm_year & RTC_AL_YEA_MASK));
+
 	if (alm->enabled) {
 		ret = regmap_bulk_write(rtc->regmap,
 					rtc->addr_base + RTC_AL_SEC,
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-pcf2127.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-pcf2127.c
@@ -230,10 +230,8 @@
 	if (ret)
 		return ret;
 
-	ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_RAM_RD_CMD,
-			       val, bytes);
-
-	return ret ?: bytes;
+	return regmap_bulk_read(pcf2127->regmap, PCF2127_REG_RAM_RD_CMD,
+				val, bytes);
 }
 
 static int pcf2127_nvmem_write(void *priv, unsigned int offset,
@@ -248,10 +246,8 @@
 	if (ret)
 		return ret;
 
-	ret = regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_WRT_CMD,
-				val, bytes);
-
-	return ret ?: bytes;
+	return regmap_bulk_write(pcf2127->regmap, PCF2127_REG_RAM_WRT_CMD,
+				 val, bytes);
 }
 
 /* watchdog driver */
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-pl031.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-pl031.c
@@ -379,8 +379,10 @@
 
 	device_init_wakeup(&adev->dev, true);
 	ldata->rtc = devm_rtc_allocate_device(&adev->dev);
-	if (IS_ERR(ldata->rtc))
-		return PTR_ERR(ldata->rtc);
+	if (IS_ERR(ldata->rtc)) {
+		ret = PTR_ERR(ldata->rtc);
+		goto out;
+	}
 
 	ldata->rtc->ops = ops;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-rv3028.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-rv3028.c
@@ -625,6 +625,8 @@
 		return -ENOMEM;
 
 	rv3028->regmap = devm_regmap_init_i2c(client, &regmap_config);
+	if (IS_ERR(rv3028->regmap))
+		return PTR_ERR(rv3028->regmap);
 
 	i2c_set_clientdata(client, rv3028);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-rx8010.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-rx8010.c
@@ -424,16 +424,26 @@
 	}
 }
 
-static struct rtc_class_ops rx8010_rtc_ops = {
+static const struct rtc_class_ops rx8010_rtc_ops_default = {
 	.read_time = rx8010_get_time,
 	.set_time = rx8010_set_time,
 	.ioctl = rx8010_ioctl,
 };
 
+static const struct rtc_class_ops rx8010_rtc_ops_alarm = {
+	.read_time = rx8010_get_time,
+	.set_time = rx8010_set_time,
+	.ioctl = rx8010_ioctl,
+	.read_alarm = rx8010_read_alarm,
+	.set_alarm = rx8010_set_alarm,
+	.alarm_irq_enable = rx8010_alarm_irq_enable,
+};
+
 static int rx8010_probe(struct i2c_client *client,
 			const struct i2c_device_id *id)
 {
 	struct i2c_adapter *adapter = client->adapter;
+	const struct rtc_class_ops *rtc_ops;
 	struct rx8010_data *rx8010;
 	int err = 0;
 
@@ -464,16 +474,16 @@
 
 		if (err) {
 			dev_err(&client->dev, "unable to request IRQ\n");
-			client->irq = 0;
-		} else {
-			rx8010_rtc_ops.read_alarm = rx8010_read_alarm;
-			rx8010_rtc_ops.set_alarm = rx8010_set_alarm;
-			rx8010_rtc_ops.alarm_irq_enable = rx8010_alarm_irq_enable;
+			return err;
 		}
+
+		rtc_ops = &rx8010_rtc_ops_alarm;
+	} else {
+		rtc_ops = &rx8010_rtc_ops_default;
 	}
 
 	rx8010->rtc = devm_rtc_device_register(&client->dev, client->name,
-		&rx8010_rtc_ops, THIS_MODULE);
+					       rtc_ops, THIS_MODULE);
 
 	if (IS_ERR(rx8010->rtc)) {
 		dev_err(&client->dev, "unable to register the class device\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-sa1100.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-sa1100.c
@@ -182,7 +182,6 @@
 
 int sa1100_rtc_init(struct platform_device *pdev, struct sa1100_rtc *info)
 {
-	struct rtc_device *rtc;
 	int ret;
 
 	spin_lock_init(&info->lock);
@@ -211,15 +210,14 @@
 		writel_relaxed(0, info->rcnr);
 	}
 
-	rtc = devm_rtc_device_register(&pdev->dev, pdev->name, &sa1100_rtc_ops,
-					THIS_MODULE);
-	if (IS_ERR(rtc)) {
+	info->rtc->ops = &sa1100_rtc_ops;
+	info->rtc->max_user_freq = RTC_FREQ;
+
+	ret = rtc_register_device(info->rtc);
+	if (ret) {
 		clk_disable_unprepare(info->clk);
-		return PTR_ERR(rtc);
+		return ret;
 	}
-	info->rtc = rtc;
-
-	rtc->max_user_freq = RTC_FREQ;
 
 	/* Fix for a nasty initialization problem the in SA11xx RTSR register.
 	 * See also the comments in sa1100_rtc_interrupt().
@@ -268,6 +266,10 @@
 	info->irq_1hz = irq_1hz;
 	info->irq_alarm = irq_alarm;
 
+	info->rtc = devm_rtc_allocate_device(&pdev->dev);
+	if (IS_ERR(info->rtc))
+		return PTR_ERR(info->rtc);
+
 	ret = devm_request_irq(&pdev->dev, irq_1hz, sa1100_rtc_interrupt, 0,
 			       "rtc 1Hz", &pdev->dev);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/rtc/rtc-sun6i.c
+++ linux-gkeop-5.4-5.4.0/drivers/rtc/rtc-sun6i.c
@@ -276,7 +276,7 @@
 								300000000);
 	if (IS_ERR(rtc->int_osc)) {
 		pr_crit("Couldn't register the internal oscillator\n");
-		return;
+		goto err;
 	}
 
 	parents[0] = clk_hw_get_name(rtc->int_osc);
@@ -292,7 +292,7 @@
 	rtc->losc = clk_register(NULL, &rtc->hw);
 	if (IS_ERR(rtc->losc)) {
 		pr_crit("Couldn't register the LOSC clock\n");
-		return;
+		goto err_register;
 	}
 
 	of_property_read_string_index(node, "clock-output-names", 1,
@@ -303,7 +303,7 @@
 					  &rtc->lock);
 	if (IS_ERR(rtc->ext_losc)) {
 		pr_crit("Couldn't register the LOSC external gate\n");
-		return;
+		goto err_register;
 	}
 
 	clk_data->num = 2;
@@ -316,6 +316,8 @@
 	of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
 	return;
 
+err_register:
+	clk_hw_unregister_fixed_rate(rtc->int_osc);
 err:
 	kfree(clk_data);
 }
@@ -380,6 +382,22 @@
 CLK_OF_DECLARE_DRIVER(sun50i_h6_rtc_clk, "allwinner,sun50i-h6-rtc",
 		      sun50i_h6_rtc_clk_init);
 
+/*
+ * The R40 user manual is self-conflicting on whether the prescaler is
+ * fixed or configurable. The clock diagram shows it as fixed, but there
+ * is also a configurable divider in the RTC block.
+ */
+static const struct sun6i_rtc_clk_data sun8i_r40_rtc_data = {
+	.rc_osc_rate = 16000000,
+	.fixed_prescaler = 512,
+};
+static void __init sun8i_r40_rtc_clk_init(struct device_node *node)
+{
+	sun6i_rtc_clk_init(node, &sun8i_r40_rtc_data);
+}
+CLK_OF_DECLARE_DRIVER(sun8i_r40_rtc_clk, "allwinner,sun8i-r40-rtc",
+		      sun8i_r40_rtc_clk_init);
+
 static const struct sun6i_rtc_clk_data sun8i_v3_rtc_data = {
 	.rc_osc_rate = 32000,
 	.has_out_clk = 1,
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/block/dasd.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/block/dasd.c
@@ -178,6 +178,8 @@
 		     (unsigned long) block);
 	INIT_LIST_HEAD(&block->ccw_queue);
 	spin_lock_init(&block->queue_lock);
+	INIT_LIST_HEAD(&block->format_list);
+	spin_lock_init(&block->format_lock);
 	timer_setup(&block->timer, dasd_block_timeout, 0);
 	spin_lock_init(&block->profile.lock);
 
@@ -1779,20 +1781,26 @@
 
 	if (dasd_ese_needs_format(cqr->block, irb)) {
 		if (rq_data_dir((struct request *)cqr->callback_data) == READ) {
-			device->discipline->ese_read(cqr);
+			device->discipline->ese_read(cqr, irb);
 			cqr->status = DASD_CQR_SUCCESS;
 			cqr->stopclk = now;
 			dasd_device_clear_timer(device);
 			dasd_schedule_device_bh(device);
 			return;
 		}
-		fcqr = device->discipline->ese_format(device, cqr);
+		fcqr = device->discipline->ese_format(device, cqr, irb);
 		if (IS_ERR(fcqr)) {
+			if (PTR_ERR(fcqr) == -EINVAL) {
+				cqr->status = DASD_CQR_ERROR;
+				return;
+			}
 			/*
 			 * If we can't format now, let the request go
 			 * one extra round. Maybe we can format later.
 			 */
 			cqr->status = DASD_CQR_QUEUED;
+			dasd_schedule_device_bh(device);
+			return;
 		} else {
 			fcqr->status = DASD_CQR_QUEUED;
 			cqr->status = DASD_CQR_QUEUED;
@@ -2748,11 +2756,13 @@
 {
 	struct request *req;
 	blk_status_t error = BLK_STS_OK;
+	unsigned int proc_bytes;
 	int status;
 
 	req = (struct request *) cqr->callback_data;
 	dasd_profile_end(cqr->block, cqr, req);
 
+	proc_bytes = cqr->proc_bytes;
 	status = cqr->block->base->discipline->free_cp(cqr, req);
 	if (status < 0)
 		error = errno_to_blk_status(status);
@@ -2783,7 +2793,18 @@
 		blk_mq_end_request(req, error);
 		blk_mq_run_hw_queues(req->q, true);
 	} else {
-		blk_mq_complete_request(req);
+		/*
+		 * Partial completed requests can happen with ESE devices.
+		 * During read we might have gotten a NRF error and have to
+		 * complete a request partially.
+		 */
+		if (proc_bytes) {
+			blk_update_request(req, BLK_STS_OK,
+					   blk_rq_bytes(req) - proc_bytes);
+			blk_mq_requeue_request(req, true);
+		} else {
+			blk_mq_complete_request(req);
+		}
 	}
 }
 
@@ -2959,6 +2980,12 @@
 
 	if (!block)
 		return -EINVAL;
+	/*
+	 * If the request is an ERP request there is nothing to requeue.
+	 * This will be done with the remaining original request.
+	 */
+	if (cqr->refers)
+		return 0;
 	spin_lock_irq(&cqr->dq->lock);
 	req = (struct request *) cqr->callback_data;
 	blk_mq_requeue_request(req, false);
@@ -3060,7 +3087,8 @@
 
 	basedev = block->base;
 	spin_lock_irq(&dq->lock);
-	if (basedev->state < DASD_STATE_READY) {
+	if (basedev->state < DASD_STATE_READY ||
+	    test_bit(DASD_FLAG_OFFLINE, &basedev->flags)) {
 		DBF_DEV_EVENT(DBF_ERR, basedev,
 			      "device not ready for request %p", req);
 		rc = BLK_STS_IOERR;
@@ -3495,8 +3523,6 @@
 	struct dasd_device *device;
 	struct dasd_block *block;
 
-	cdev->handler = NULL;
-
 	device = dasd_device_from_cdev(cdev);
 	if (IS_ERR(device)) {
 		dasd_remove_sysfs_files(cdev);
@@ -3515,6 +3541,7 @@
 	 * no quite down yet.
 	 */
 	dasd_set_target_state(device, DASD_STATE_NEW);
+	cdev->handler = NULL;
 	/* dasd_delete_device destroys the device reference. */
 	block = device->block;
 	dasd_delete_device(device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/block/dasd_alias.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/block/dasd_alias.c
@@ -256,7 +256,6 @@
 		return;
 	device->discipline->get_uid(device, &uid);
 	spin_lock_irqsave(&lcu->lock, flags);
-	list_del_init(&device->alias_list);
 	/* make sure that the workers don't use this device */
 	if (device == lcu->suc_data.device) {
 		spin_unlock_irqrestore(&lcu->lock, flags);
@@ -283,6 +282,7 @@
 
 	spin_lock_irqsave(&aliastree.lock, flags);
 	spin_lock(&lcu->lock);
+	list_del_init(&device->alias_list);
 	if (list_empty(&lcu->grouplist) &&
 	    list_empty(&lcu->active_devices) &&
 	    list_empty(&lcu->inactive_devices)) {
@@ -462,11 +462,19 @@
 	spin_unlock_irqrestore(&lcu->lock, flags);
 
 	rc = dasd_sleep_on(cqr);
-	if (rc && !suborder_not_supported(cqr)) {
+	if (!rc)
+		goto out;
+
+	if (suborder_not_supported(cqr)) {
+		/* suborder not supported or device unusable for IO */
+		rc = -EOPNOTSUPP;
+	} else {
+		/* IO failed but should be retried */
 		spin_lock_irqsave(&lcu->lock, flags);
 		lcu->flags |= NEED_UAC_UPDATE;
 		spin_unlock_irqrestore(&lcu->lock, flags);
 	}
+out:
 	dasd_sfree_request(cqr, cqr->memdev);
 	return rc;
 }
@@ -503,6 +511,14 @@
 		return rc;
 
 	spin_lock_irqsave(&lcu->lock, flags);
+	/*
+	 * there is another update needed skip the remaining handling
+	 * the data might already be outdated
+	 * but especially do not add the device to an LCU with pending
+	 * update
+	 */
+	if (lcu->flags & NEED_UAC_UPDATE)
+		goto out;
 	lcu->pav = NO_PAV;
 	for (i = 0; i < MAX_DEVICES_PER_LCU; ++i) {
 		switch (lcu->uac->unit[i].ua_type) {
@@ -521,6 +537,7 @@
 				 alias_list) {
 		_add_device_to_lcu(lcu, device, refdev);
 	}
+out:
 	spin_unlock_irqrestore(&lcu->lock, flags);
 	return 0;
 }
@@ -625,6 +642,7 @@
 	}
 	if (lcu->flags & UPDATE_PENDING) {
 		list_move(&device->alias_list, &lcu->active_devices);
+		private->pavgroup = NULL;
 		_schedule_lcu_update(lcu, device);
 	}
 	spin_unlock_irqrestore(&lcu->lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/block/dasd_diag.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/block/dasd_diag.c
@@ -319,7 +319,7 @@
 	struct dasd_diag_characteristics *rdc_data;
 	struct vtoc_cms_label *label;
 	struct dasd_block *block;
-	struct dasd_diag_bio bio;
+	struct dasd_diag_bio *bio;
 	unsigned int sb, bsize;
 	blocknum_t end_block;
 	int rc;
@@ -395,29 +395,36 @@
 		rc = -ENOMEM;
 		goto out;
 	}
+	bio = kzalloc(sizeof(*bio), GFP_KERNEL);
+	if (bio == NULL)  {
+		DBF_DEV_EVENT(DBF_WARNING, device, "%s",
+			      "No memory to allocate initialization bio");
+		rc = -ENOMEM;
+		goto out_label;
+	}
 	rc = 0;
 	end_block = 0;
 	/* try all sizes - needed for ECKD devices */
 	for (bsize = 512; bsize <= PAGE_SIZE; bsize <<= 1) {
 		mdsk_init_io(device, bsize, 0, &end_block);
-		memset(&bio, 0, sizeof (struct dasd_diag_bio));
-		bio.type = MDSK_READ_REQ;
-		bio.block_number = private->pt_block + 1;
-		bio.buffer = label;
+		memset(bio, 0, sizeof(*bio));
+		bio->type = MDSK_READ_REQ;
+		bio->block_number = private->pt_block + 1;
+		bio->buffer = label;
 		memset(&private->iob, 0, sizeof (struct dasd_diag_rw_io));
 		private->iob.dev_nr = rdc_data->dev_nr;
 		private->iob.key = 0;
 		private->iob.flags = 0;	/* do synchronous io */
 		private->iob.block_count = 1;
 		private->iob.interrupt_params = 0;
-		private->iob.bio_list = &bio;
+		private->iob.bio_list = bio;
 		private->iob.flaga = DASD_DIAG_FLAGA_DEFAULT;
 		rc = dia250(&private->iob, RW_BIO);
 		if (rc == 3) {
 			pr_warn("%s: A 64-bit DIAG call failed\n",
 				dev_name(&device->cdev->dev));
 			rc = -EOPNOTSUPP;
-			goto out_label;
+			goto out_bio;
 		}
 		mdsk_term_io(device);
 		if (rc == 0)
@@ -427,7 +434,7 @@
 		pr_warn("%s: Accessing the DASD failed because of an incorrect format (rc=%d)\n",
 			dev_name(&device->cdev->dev), rc);
 		rc = -EIO;
-		goto out_label;
+		goto out_bio;
 	}
 	/* check for label block */
 	if (memcmp(label->label_id, DASD_DIAG_CMS1,
@@ -457,6 +464,8 @@
 			(rc == 4) ? ", read-only device" : "");
 		rc = 0;
 	}
+out_bio:
+	kfree(bio);
 out_label:
 	free_page((long) label);
 out:
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/block/dasd_eckd.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/block/dasd_eckd.c
@@ -207,6 +207,45 @@
 	geo->head |= head;
 }
 
+/*
+ * calculate failing track from sense data depending if
+ * it is an EAV device or not
+ */
+static int dasd_eckd_track_from_irb(struct irb *irb, struct dasd_device *device,
+				    sector_t *track)
+{
+	struct dasd_eckd_private *private = device->private;
+	u8 *sense = NULL;
+	u32 cyl;
+	u8 head;
+
+	sense = dasd_get_sense(irb);
+	if (!sense) {
+		DBF_DEV_EVENT(DBF_WARNING, device, "%s",
+			      "ESE error no sense data\n");
+		return -EINVAL;
+	}
+	if (!(sense[27] & DASD_SENSE_BIT_2)) {
+		DBF_DEV_EVENT(DBF_WARNING, device, "%s",
+			      "ESE error no valid track data\n");
+		return -EINVAL;
+	}
+
+	if (sense[27] & DASD_SENSE_BIT_3) {
+		/* enhanced addressing */
+		cyl = sense[30] << 20;
+		cyl |= (sense[31] & 0xF0) << 12;
+		cyl |= sense[28] << 8;
+		cyl |= sense[29];
+	} else {
+		cyl = sense[29] << 8;
+		cyl |= sense[30];
+	}
+	head = sense[31] & 0x0F;
+	*track = cyl * private->rdc_data.trk_per_cyl + head;
+	return 0;
+}
+
 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data,
 		     struct dasd_device *device)
 {
@@ -1128,7 +1167,8 @@
 {
 	struct dasd_eckd_private *private = device->private;
 	int fcx_in_css, fcx_in_gneq, fcx_in_features;
-	int tpm, mdc;
+	unsigned int mdc;
+	int tpm;
 
 	if (dasd_nofcx)
 		return 0;
@@ -1142,7 +1182,7 @@
 		return 0;
 
 	mdc = ccw_device_get_mdc(device->cdev, 0);
-	if (mdc < 0) {
+	if (mdc == 0) {
 		dev_warn(&device->cdev->dev, "Detecting the maximum supported data size for zHPF requests failed\n");
 		return 0;
 	} else {
@@ -1153,12 +1193,12 @@
 static int verify_fcx_max_data(struct dasd_device *device, __u8 lpm)
 {
 	struct dasd_eckd_private *private = device->private;
-	int mdc;
+	unsigned int mdc;
 	u32 fcx_max_data;
 
 	if (private->fcx_max_data) {
 		mdc = ccw_device_get_mdc(device->cdev, lpm);
-		if ((mdc < 0)) {
+		if (mdc == 0) {
 			dev_warn(&device->cdev->dev,
 				 "Detecting the maximum data size for zHPF "
 				 "requests failed (rc=%d) for a new path %x\n",
@@ -2073,7 +2113,7 @@
 	dasd_free_block(device->block);
 	device->block = NULL;
 out_err1:
-	kfree(private->conf_data);
+	dasd_eckd_clear_conf_data(device);
 	kfree(device->private);
 	device->private = NULL;
 	return rc;
@@ -2082,7 +2122,6 @@
 static void dasd_eckd_uncheck_device(struct dasd_device *device)
 {
 	struct dasd_eckd_private *private = device->private;
-	int i;
 
 	if (!private)
 		return;
@@ -2092,21 +2131,7 @@
 	private->sneq = NULL;
 	private->vdsneq = NULL;
 	private->gneq = NULL;
-	private->conf_len = 0;
-	for (i = 0; i < 8; i++) {
-		kfree(device->path[i].conf_data);
-		if ((__u8 *)device->path[i].conf_data ==
-		    private->conf_data) {
-			private->conf_data = NULL;
-			private->conf_len = 0;
-		}
-		device->path[i].conf_data = NULL;
-		device->path[i].cssid = 0;
-		device->path[i].ssid = 0;
-		device->path[i].chpid = 0;
-	}
-	kfree(private->conf_data);
-	private->conf_data = NULL;
+	dasd_eckd_clear_conf_data(device);
 }
 
 static struct dasd_ccw_req *
@@ -3000,6 +3025,37 @@
 					     0, NULL);
 }
 
+static bool test_and_set_format_track(struct dasd_format_entry *to_format,
+				      struct dasd_block *block)
+{
+	struct dasd_format_entry *format;
+	unsigned long flags;
+	bool rc = false;
+
+	spin_lock_irqsave(&block->format_lock, flags);
+	list_for_each_entry(format, &block->format_list, list) {
+		if (format->track == to_format->track) {
+			rc = true;
+			goto out;
+		}
+	}
+	list_add_tail(&to_format->list, &block->format_list);
+
+out:
+	spin_unlock_irqrestore(&block->format_lock, flags);
+	return rc;
+}
+
+static void clear_format_track(struct dasd_format_entry *format,
+			      struct dasd_block *block)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&block->format_lock, flags);
+	list_del_init(&format->list);
+	spin_unlock_irqrestore(&block->format_lock, flags);
+}
+
 /*
  * Callback function to free ESE format requests.
  */
@@ -3007,15 +3063,19 @@
 {
 	struct dasd_device *device = cqr->startdev;
 	struct dasd_eckd_private *private = device->private;
+	struct dasd_format_entry *format = data;
 
+	clear_format_track(format, cqr->basedev->block);
 	private->count--;
 	dasd_ffree_request(cqr, device);
 }
 
 static struct dasd_ccw_req *
-dasd_eckd_ese_format(struct dasd_device *startdev, struct dasd_ccw_req *cqr)
+dasd_eckd_ese_format(struct dasd_device *startdev, struct dasd_ccw_req *cqr,
+		     struct irb *irb)
 {
 	struct dasd_eckd_private *private;
+	struct dasd_format_entry *format;
 	struct format_data_t fdata;
 	unsigned int recs_per_trk;
 	struct dasd_ccw_req *fcqr;
@@ -3025,23 +3085,39 @@
 	struct request *req;
 	sector_t first_trk;
 	sector_t last_trk;
+	sector_t curr_trk;
 	int rc;
 
 	req = cqr->callback_data;
-	base = cqr->block->base;
+	block = cqr->block;
+	base = block->base;
 	private = base->private;
-	block = base->block;
 	blksize = block->bp_block;
 	recs_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
+	format = &startdev->format_entry;
 
 	first_trk = blk_rq_pos(req) >> block->s2b_shift;
 	sector_div(first_trk, recs_per_trk);
 	last_trk =
 		(blk_rq_pos(req) + blk_rq_sectors(req) - 1) >> block->s2b_shift;
 	sector_div(last_trk, recs_per_trk);
+	rc = dasd_eckd_track_from_irb(irb, base, &curr_trk);
+	if (rc)
+		return ERR_PTR(rc);
+
+	if (curr_trk < first_trk || curr_trk > last_trk) {
+		DBF_DEV_EVENT(DBF_WARNING, startdev,
+			      "ESE error track %llu not within range %llu - %llu\n",
+			      curr_trk, first_trk, last_trk);
+		return ERR_PTR(-EINVAL);
+	}
+	format->track = curr_trk;
+	/* test if track is already in formatting by another thread */
+	if (test_and_set_format_track(format, block))
+		return ERR_PTR(-EEXIST);
 
-	fdata.start_unit = first_trk;
-	fdata.stop_unit = last_trk;
+	fdata.start_unit = curr_trk;
+	fdata.stop_unit = curr_trk;
 	fdata.blksize = blksize;
 	fdata.intensity = private->uses_cdl ? DASD_FMT_INT_COMPAT : 0;
 
@@ -3058,6 +3134,7 @@
 		return fcqr;
 
 	fcqr->callback = dasd_eckd_ese_format_cb;
+	fcqr->callback_data = (void *) format;
 
 	return fcqr;
 }
@@ -3065,29 +3142,87 @@
 /*
  * When data is read from an unformatted area of an ESE volume, this function
  * returns zeroed data and thereby mimics a read of zero data.
+ *
+ * The first unformatted track is the one that got the NRF error, the address is
+ * encoded in the sense data.
+ *
+ * All tracks before have returned valid data and should not be touched.
+ * All tracks after the unformatted track might be formatted or not. This is
+ * currently not known, remember the processed data and return the remainder of
+ * the request to the blocklayer in __dasd_cleanup_cqr().
  */
-static void dasd_eckd_ese_read(struct dasd_ccw_req *cqr)
+static int dasd_eckd_ese_read(struct dasd_ccw_req *cqr, struct irb *irb)
 {
+	struct dasd_eckd_private *private;
+	sector_t first_trk, last_trk;
+	sector_t first_blk, last_blk;
 	unsigned int blksize, off;
+	unsigned int recs_per_trk;
 	struct dasd_device *base;
 	struct req_iterator iter;
+	struct dasd_block *block;
+	unsigned int skip_block;
+	unsigned int blk_count;
 	struct request *req;
 	struct bio_vec bv;
+	sector_t curr_trk;
+	sector_t end_blk;
 	char *dst;
+	int rc;
 
 	req = (struct request *) cqr->callback_data;
 	base = cqr->block->base;
 	blksize = base->block->bp_block;
+	block =  cqr->block;
+	private = base->private;
+	skip_block = 0;
+	blk_count = 0;
+
+	recs_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
+	first_trk = first_blk = blk_rq_pos(req) >> block->s2b_shift;
+	sector_div(first_trk, recs_per_trk);
+	last_trk = last_blk =
+		(blk_rq_pos(req) + blk_rq_sectors(req) - 1) >> block->s2b_shift;
+	sector_div(last_trk, recs_per_trk);
+	rc = dasd_eckd_track_from_irb(irb, base, &curr_trk);
+	if (rc)
+		return rc;
+
+	/* sanity check if the current track from sense data is valid */
+	if (curr_trk < first_trk || curr_trk > last_trk) {
+		DBF_DEV_EVENT(DBF_WARNING, base,
+			      "ESE error track %llu not within range %llu - %llu\n",
+			      curr_trk, first_trk, last_trk);
+		return -EINVAL;
+	}
+
+	/*
+	 * if not the first track got the NRF error we have to skip over valid
+	 * blocks
+	 */
+	if (curr_trk != first_trk)
+		skip_block = curr_trk * recs_per_trk - first_blk;
+
+	/* we have no information beyond the current track */
+	end_blk = (curr_trk + 1) * recs_per_trk;
 
 	rq_for_each_segment(bv, req, iter) {
 		dst = page_address(bv.bv_page) + bv.bv_offset;
 		for (off = 0; off < bv.bv_len; off += blksize) {
-			if (dst && rq_data_dir(req) == READ) {
+			if (first_blk + blk_count >= end_blk) {
+				cqr->proc_bytes = blk_count * blksize;
+				return 0;
+			}
+			if (dst && !skip_block) {
 				dst += off;
 				memset(dst, 0, blksize);
+			} else {
+				skip_block--;
 			}
+			blk_count++;
 		}
 	}
+	return 0;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/block/dasd_fba.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/block/dasd_fba.c
@@ -40,6 +40,7 @@
 MODULE_LICENSE("GPL");
 
 static struct dasd_discipline dasd_fba_discipline;
+static void *dasd_fba_zero_page;
 
 struct dasd_fba_private {
 	struct dasd_fba_characteristics rdc_data;
@@ -270,7 +271,7 @@
 	ccw->cmd_code = DASD_FBA_CCW_WRITE;
 	ccw->flags |= CCW_FLAG_SLI;
 	ccw->count = count;
-	ccw->cda = (__u32) (addr_t) page_to_phys(ZERO_PAGE(0));
+	ccw->cda = (__u32) (addr_t) dasd_fba_zero_page;
 }
 
 /*
@@ -830,6 +831,11 @@
 	int ret;
 
 	ASCEBC(dasd_fba_discipline.ebcname, 4);
+
+	dasd_fba_zero_page = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA);
+	if (!dasd_fba_zero_page)
+		return -ENOMEM;
+
 	ret = ccw_driver_register(&dasd_fba_driver);
 	if (!ret)
 		wait_for_device_probe();
@@ -841,6 +847,7 @@
 dasd_fba_cleanup(void)
 {
 	ccw_driver_unregister(&dasd_fba_driver);
+	free_page((unsigned long)dasd_fba_zero_page);
 }
 
 module_init(dasd_fba_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/block/dasd_int.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/block/dasd_int.h
@@ -187,6 +187,7 @@
 
 	void (*callback)(struct dasd_ccw_req *, void *data);
 	void *callback_data;
+	unsigned int proc_bytes;	/* bytes for partial completion */
 };
 
 /*
@@ -387,8 +388,9 @@
 	int (*ext_pool_warn_thrshld)(struct dasd_device *);
 	int (*ext_pool_oos)(struct dasd_device *);
 	int (*ext_pool_exhaust)(struct dasd_device *, struct dasd_ccw_req *);
-	struct dasd_ccw_req *(*ese_format)(struct dasd_device *, struct dasd_ccw_req *);
-	void (*ese_read)(struct dasd_ccw_req *);
+	struct dasd_ccw_req *(*ese_format)(struct dasd_device *,
+					   struct dasd_ccw_req *, struct irb *);
+	int (*ese_read)(struct dasd_ccw_req *, struct irb *);
 };
 
 extern struct dasd_discipline *dasd_diag_discipline_pointer;
@@ -474,6 +476,11 @@
 	spinlock_t lock;
 };
 
+struct dasd_format_entry {
+	struct list_head list;
+	sector_t track;
+};
+
 struct dasd_device {
 	/* Block device stuff. */
 	struct dasd_block *block;
@@ -539,6 +546,7 @@
 	struct dentry *debugfs_dentry;
 	struct dentry *hosts_dentry;
 	struct dasd_profile profile;
+	struct dasd_format_entry format_entry;
 };
 
 struct dasd_block {
@@ -564,6 +572,9 @@
 
 	struct dentry *debugfs_dentry;
 	struct dasd_profile profile;
+
+	struct list_head format_list;
+	spinlock_t format_lock;
 };
 
 struct dasd_attention_data {
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/airq.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/airq.c
@@ -105,16 +105,12 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction airq_interrupt = {
-	.name	 = "AIO",
-	.handler = do_airq_interrupt,
-};
-
 void __init init_airq_interrupts(void)
 {
 	irq_set_chip_and_handler(THIN_INTERRUPT,
 				 &dummy_irq_chip, handle_percpu_irq);
-	setup_irq(THIN_INTERRUPT, &airq_interrupt);
+	if (request_irq(THIN_INTERRUPT, do_airq_interrupt, 0, "AIO", NULL))
+		panic("Failed to register AIO interrupt\n");
 }
 
 static inline unsigned long iv_size(unsigned long bits)
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/blacklist.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/blacklist.c
@@ -303,8 +303,10 @@
 cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset)
 {
 	struct ccwdev_iter *iter;
+	loff_t p = *offset;
 
-	if (*offset >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
+	(*offset)++;
+	if (p >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
 		return NULL;
 	iter = it;
 	if (iter->devno == __MAX_SUBCHANNEL) {
@@ -314,7 +316,6 @@
 			return NULL;
 	} else
 		iter->devno++;
-	(*offset)++;
 	return iter;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/cio.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/cio.c
@@ -563,16 +563,12 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction io_interrupt = {
-	.name	 = "I/O",
-	.handler = do_cio_interrupt,
-};
-
 void __init init_cio_interrupts(void)
 {
 	irq_set_chip_and_handler(IO_INTERRUPT,
 				 &dummy_irq_chip, handle_percpu_irq);
-	setup_irq(IO_INTERRUPT, &io_interrupt);
+	if (request_irq(IO_INTERRUPT, do_cio_interrupt, 0, "I/O", NULL))
+		panic("Failed to register I/O interrupt\n");
 }
 
 #ifdef CONFIG_CCW_CONSOLE
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/css.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/css.c
@@ -677,6 +677,11 @@
 		rc = css_evaluate_known_subchannel(sch, 1);
 		if (rc == -EAGAIN)
 			css_schedule_eval(sch->schid);
+		/*
+		 * The loop might take long time for platforms with lots of
+		 * known devices. Allow scheduling here.
+		 */
+		cond_resched();
 	}
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/device.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/device.c
@@ -849,8 +849,10 @@
 	 * Now we know this subchannel will stay, we can throw
 	 * our delayed uevent.
 	 */
-	dev_set_uevent_suppress(&sch->dev, 0);
-	kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
+	if (dev_get_uevent_suppress(&sch->dev)) {
+		dev_set_uevent_suppress(&sch->dev, 0);
+		kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
+	}
 	/* make it known to the system */
 	ret = ccw_device_add(cdev);
 	if (ret) {
@@ -1058,8 +1060,11 @@
 		 * Throw the delayed uevent for the subchannel, register
 		 * the ccw_device and exit.
 		 */
-		dev_set_uevent_suppress(&sch->dev, 0);
-		kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
+		if (dev_get_uevent_suppress(&sch->dev)) {
+			/* should always be the case for the console */
+			dev_set_uevent_suppress(&sch->dev, 0);
+			kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
+		}
 		cdev = sch_get_cdev(sch);
 		rc = ccw_device_add(cdev);
 		if (rc) {
@@ -1659,10 +1664,10 @@
 	struct io_subchannel_private *io_priv = to_io_private(sch);
 
 	set_io_private(sch, NULL);
-	put_device(&sch->dev);
-	put_device(&cdev->dev);
 	dma_free_coherent(&sch->dev, sizeof(*io_priv->dma_area),
 			  io_priv->dma_area, io_priv->dma_area_dma);
+	put_device(&sch->dev);
+	put_device(&cdev->dev);
 	kfree(io_priv);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/device_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/device_ops.c
@@ -635,7 +635,7 @@
  * @mask: mask of paths to use
  *
  * Return the number of 64K-bytes blocks all paths at least support
- * for a transport command. Return values <= 0 indicate failures.
+ * for a transport command. Return value 0 indicates failure.
  */
 int ccw_device_get_mdc(struct ccw_device *cdev, u8 mask)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/qdio.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/qdio.h
@@ -82,6 +82,7 @@
 #define QDIO_SIGA_WRITE		0x00
 #define QDIO_SIGA_READ		0x01
 #define QDIO_SIGA_SYNC		0x02
+#define QDIO_SIGA_WRITEM	0x03
 #define QDIO_SIGA_WRITEQ	0x04
 #define QDIO_SIGA_QEBSM_FLAG	0x80
 
@@ -372,7 +373,6 @@
 extern u64 last_ai_time;
 
 /* prototypes for thin interrupt */
-void qdio_setup_thinint(struct qdio_irq *irq_ptr);
 int qdio_establish_thinint(struct qdio_irq *irq_ptr);
 void qdio_shutdown_thinint(struct qdio_irq *irq_ptr);
 void tiqdio_add_input_queues(struct qdio_irq *irq_ptr);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/qdio_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/qdio_main.c
@@ -310,18 +310,19 @@
 		return qdio_siga_sync(q, q->mask, 0);
 }
 
-static int qdio_siga_output(struct qdio_q *q, unsigned int *busy_bit,
-	unsigned long aob)
+static int qdio_siga_output(struct qdio_q *q, unsigned int count,
+			    unsigned int *busy_bit, unsigned long aob)
 {
 	unsigned long schid = *((u32 *) &q->irq_ptr->schid);
 	unsigned int fc = QDIO_SIGA_WRITE;
 	u64 start_time = 0;
 	int retries = 0, cc;
-	unsigned long laob = 0;
 
-	if (aob) {
-		fc = QDIO_SIGA_WRITEQ;
-		laob = aob;
+	if (queue_type(q) == QDIO_IQDIO_QFMT && !multicast_outbound(q)) {
+		if (count > 1)
+			fc = QDIO_SIGA_WRITEM;
+		else if (aob)
+			fc = QDIO_SIGA_WRITEQ;
 	}
 
 	if (is_qebsm(q)) {
@@ -329,7 +330,7 @@
 		fc |= QDIO_SIGA_QEBSM_FLAG;
 	}
 again:
-	cc = do_siga_output(schid, q->mask, busy_bit, fc, laob);
+	cc = do_siga_output(schid, q->mask, busy_bit, fc, aob);
 
 	/* hipersocket busy condition */
 	if (unlikely(*busy_bit)) {
@@ -781,7 +782,8 @@
 	return count;
 }
 
-static int qdio_kick_outbound_q(struct qdio_q *q, unsigned long aob)
+static int qdio_kick_outbound_q(struct qdio_q *q, unsigned int count,
+				unsigned long aob)
 {
 	int retries = 0, cc;
 	unsigned int busy_bit;
@@ -793,7 +795,7 @@
 retry:
 	qperf_inc(q, siga_write);
 
-	cc = qdio_siga_output(q, &busy_bit, aob);
+	cc = qdio_siga_output(q, count, &busy_bit, aob);
 	switch (cc) {
 	case 0:
 		break;
@@ -1526,7 +1528,7 @@
  * @count: how many buffers are filled
  */
 static int handle_outbound(struct qdio_q *q, unsigned int callflags,
-			   int bufnr, int count)
+			   unsigned int bufnr, unsigned int count)
 {
 	const unsigned int scan_threshold = q->irq_ptr->scan_threshold;
 	unsigned char state = 0;
@@ -1549,13 +1551,10 @@
 	if (queue_type(q) == QDIO_IQDIO_QFMT) {
 		unsigned long phys_aob = 0;
 
-		/* One SIGA-W per buffer required for unicast HSI */
-		WARN_ON_ONCE(count > 1 && !multicast_outbound(q));
-
-		if (q->u.out.use_cq)
+		if (q->u.out.use_cq && count == 1)
 			phys_aob = qdio_aob_for_buffer(&q->u.out, bufnr);
 
-		rc = qdio_kick_outbound_q(q, phys_aob);
+		rc = qdio_kick_outbound_q(q, count, phys_aob);
 	} else if (need_siga_sync(q)) {
 		rc = qdio_siga_sync_q(q);
 	} else if (count < QDIO_MAX_BUFFERS_PER_Q &&
@@ -1564,7 +1563,7 @@
 		/* The previous buffer is not processed yet, tack on. */
 		qperf_inc(q, fast_requeue);
 	} else {
-		rc = qdio_kick_outbound_q(q, 0);
+		rc = qdio_kick_outbound_q(q, count, 0);
 	}
 
 	/* Let drivers implement their own completion scanning: */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/qdio_setup.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/qdio_setup.c
@@ -8,6 +8,7 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/export.h>
+#include <linux/io.h>
 #include <asm/qdio.h>
 
 #include "cio.h"
@@ -207,7 +208,7 @@
 
 	/* fill in sl */
 	for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++)
-		q->sl->element[j].sbal = (unsigned long)q->sbal[j];
+		q->sl->element[j].sbal = virt_to_phys(q->sbal[j]);
 }
 
 static void setup_queues(struct qdio_irq *irq_ptr,
@@ -478,7 +479,6 @@
 	setup_queues(irq_ptr, init_data);
 
 	setup_qib(irq_ptr, init_data);
-	qdio_setup_thinint(irq_ptr);
 	set_impl_params(irq_ptr, init_data->qib_param_field_format,
 			init_data->qib_param_field,
 			init_data->input_slib_elements,
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/qdio_thinint.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/qdio_thinint.c
@@ -268,17 +268,19 @@
 
 int qdio_establish_thinint(struct qdio_irq *irq_ptr)
 {
+	int rc;
+
 	if (!is_thinint_irq(irq_ptr))
 		return 0;
-	return set_subchannel_ind(irq_ptr, 0);
-}
 
-void qdio_setup_thinint(struct qdio_irq *irq_ptr)
-{
-	if (!is_thinint_irq(irq_ptr))
-		return;
 	irq_ptr->dsci = get_indicator();
 	DBF_HEX(&irq_ptr->dsci, sizeof(void *));
+
+	rc = set_subchannel_ind(irq_ptr, 0);
+	if (rc)
+		put_indicator(irq_ptr->dsci);
+
+	return rc;
 }
 
 void qdio_shutdown_thinint(struct qdio_irq *irq_ptr)
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/vfio_ccw_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/vfio_ccw_drv.c
@@ -167,6 +167,11 @@
 	if (ret)
 		goto out_disable;
 
+	if (dev_get_uevent_suppress(&sch->dev)) {
+		dev_set_uevent_suppress(&sch->dev, 0);
+		kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
+	}
+
 	VFIO_CCW_MSG_EVENT(4, "bound to subchannel %x.%x.%04x\n",
 			   sch->schid.cssid, sch->schid.ssid,
 			   sch->schid.sch_no);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/cio/vfio_ccw_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/cio/vfio_ccw_ops.c
@@ -506,7 +506,7 @@
 		if (ret)
 			return ret;
 
-		return copy_to_user((void __user *)arg, &info, minsz);
+		return copy_to_user((void __user *)arg, &info, minsz) ? -EFAULT : 0;
 	}
 	case VFIO_DEVICE_GET_REGION_INFO:
 	{
@@ -524,7 +524,7 @@
 		if (ret)
 			return ret;
 
-		return copy_to_user((void __user *)arg, &info, minsz);
+		return copy_to_user((void __user *)arg, &info, minsz) ? -EFAULT : 0;
 	}
 	case VFIO_DEVICE_GET_IRQ_INFO:
 	{
@@ -545,7 +545,7 @@
 		if (info.count == -1)
 			return -EINVAL;
 
-		return copy_to_user((void __user *)arg, &info, minsz);
+		return copy_to_user((void __user *)arg, &info, minsz) ? -EFAULT : 0;
 	}
 	case VFIO_DEVICE_SET_IRQS:
 	{
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/Makefile
@@ -7,7 +7,8 @@
 obj-$(subst m,y,$(CONFIG_ZCRYPT)) += ap.o
 # zcrypt_api.o and zcrypt_msgtype*.o depend on ap.o
 zcrypt-objs := zcrypt_api.o zcrypt_card.o zcrypt_queue.o
-zcrypt-objs += zcrypt_msgtype6.o zcrypt_msgtype50.o zcrypt_ccamisc.o
+zcrypt-objs += zcrypt_msgtype6.o zcrypt_msgtype50.o
+zcrypt-objs += zcrypt_ccamisc.o zcrypt_ep11misc.o
 obj-$(CONFIG_ZCRYPT) += zcrypt.o
 # adapter drivers depend on ap.o and zcrypt.o
 obj-$(CONFIG_ZCRYPT) += zcrypt_cex2c.o zcrypt_cex2a.o zcrypt_cex4.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/ap_bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/ap_bus.c
@@ -793,8 +793,6 @@
 		drvres = ap_drv->flags & AP_DRIVER_FLAG_DEFAULT;
 		if (!!devres != !!drvres)
 			return -ENODEV;
-		/* (re-)init queue's state machine */
-		ap_queue_reinit_state(to_ap_queue(dev));
 	}
 
 	/* Add queue/card to list of active queues/cards */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/ap_bus.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/ap_bus.h
@@ -162,7 +162,7 @@
 	unsigned int functions;		/* AP device function bitfield. */
 	int queue_depth;		/* AP queue depth.*/
 	int id;				/* AP card number. */
-	atomic_t total_request_count;	/* # requests ever for this AP device.*/
+	atomic64_t total_request_count;	/* # requests ever for this AP device.*/
 };
 
 #define to_ap_card(x) container_of((x), struct ap_card, ap_dev.device)
@@ -179,7 +179,7 @@
 	enum ap_state state;		/* State of the AP device. */
 	int pendingq_count;		/* # requests on pendingq list. */
 	int requestq_count;		/* # requests on requestq list. */
-	int total_request_count;	/* # requests ever for this AP device.*/
+	u64 total_request_count;	/* # requests ever for this AP device.*/
 	int request_timeout;		/* Request timeout in jiffies. */
 	struct timer_list timeout;	/* Timer for request timeouts. */
 	struct list_head pendingq;	/* List of message sent to AP queue. */
@@ -261,7 +261,7 @@
 void ap_queue_remove(struct ap_queue *aq);
 void ap_queue_suspend(struct ap_device *ap_dev);
 void ap_queue_resume(struct ap_device *ap_dev);
-void ap_queue_reinit_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_device_type,
 			       int comp_device_type, unsigned int functions);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/ap_card.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/ap_card.c
@@ -63,13 +63,13 @@
 				  char *buf)
 {
 	struct ap_card *ac = to_ap_card(dev);
-	unsigned int req_cnt;
+	u64 req_cnt;
 
 	req_cnt = 0;
 	spin_lock_bh(&ap_list_lock);
-	req_cnt = atomic_read(&ac->total_request_count);
+	req_cnt = atomic64_read(&ac->total_request_count);
 	spin_unlock_bh(&ap_list_lock);
-	return snprintf(buf, PAGE_SIZE, "%d\n", req_cnt);
+	return snprintf(buf, PAGE_SIZE, "%llu\n", req_cnt);
 }
 
 static ssize_t request_count_store(struct device *dev,
@@ -83,7 +83,7 @@
 	for_each_ap_queue(aq, ac)
 		aq->total_request_count = 0;
 	spin_unlock_bh(&ap_list_lock);
-	atomic_set(&ac->total_request_count, 0);
+	atomic64_set(&ac->total_request_count, 0);
 
 	return count;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/ap_queue.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/ap_queue.c
@@ -479,12 +479,12 @@
 				  char *buf)
 {
 	struct ap_queue *aq = to_ap_queue(dev);
-	unsigned int req_cnt;
+	u64 req_cnt;
 
 	spin_lock_bh(&aq->lock);
 	req_cnt = aq->total_request_count;
 	spin_unlock_bh(&aq->lock);
-	return snprintf(buf, PAGE_SIZE, "%d\n", req_cnt);
+	return snprintf(buf, PAGE_SIZE, "%llu\n", req_cnt);
 }
 
 static ssize_t request_count_store(struct device *dev,
@@ -638,7 +638,7 @@
 	aq->ap_dev.device.type = &ap_queue_type;
 	aq->ap_dev.device_type = device_type;
 	aq->qid = qid;
-	aq->state = AP_STATE_RESET_START;
+	aq->state = AP_STATE_UNBOUND;
 	aq->interrupt = AP_INTR_DISABLED;
 	spin_lock_init(&aq->lock);
 	INIT_LIST_HEAD(&aq->list);
@@ -676,7 +676,7 @@
 	list_add_tail(&ap_msg->list, &aq->requestq);
 	aq->requestq_count++;
 	aq->total_request_count++;
-	atomic_inc(&aq->card->total_request_count);
+	atomic64_inc(&aq->card->total_request_count);
 	/* Send/receive as many request from the queue as possible. */
 	ap_wait(ap_sm_event_loop(aq, AP_EVENT_POLL));
 	spin_unlock_bh(&aq->lock);
@@ -771,10 +771,11 @@
 	spin_unlock_bh(&aq->lock);
 }
 
-void ap_queue_reinit_state(struct ap_queue *aq)
+void ap_queue_init_state(struct ap_queue *aq)
 {
 	spin_lock_bh(&aq->lock);
 	aq->state = AP_STATE_RESET_START;
 	ap_wait(ap_sm_event(aq, AP_EVENT_POLL));
 	spin_unlock_bh(&aq->lock);
 }
+EXPORT_SYMBOL(ap_queue_init_state);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/pkey_api.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/pkey_api.c
@@ -25,6 +25,7 @@
 
 #include "zcrypt_api.h"
 #include "zcrypt_ccamisc.h"
+#include "zcrypt_ep11misc.h"
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("IBM Corporation");
@@ -33,9 +34,6 @@
 #define KEYBLOBBUFSIZE 8192  /* key buffer size used for internal processing */
 #define MAXAPQNSINLIST 64    /* max 64 apqns within a apqn list */
 
-/* mask of available pckmo subfunctions, fetched once at module init */
-static cpacf_mask_t pckmo_functions;
-
 /*
  * debug feature data and functions
  */
@@ -71,6 +69,17 @@
 	u8  protkey[MAXPROTKEYSIZE]; /* the protected key blob */
 } __packed;
 
+/* inside view of a clear key token (type 0x00 version 0x02) */
+struct clearaeskeytoken {
+	u8  type;	 /* 0x00 for PAES specific key tokens */
+	u8  res0[3];
+	u8  version;	 /* 0x02 for clear AES key token */
+	u8  res1[3];
+	u32 keytype;	 /* key type, one of the PKEY_KEYTYPE values */
+	u32 len;	 /* bytes actually stored in clearkey[] */
+	u8  clearkey[0]; /* clear key value */
+} __packed;
+
 /*
  * Create a protected key from a clear key value.
  */
@@ -78,6 +87,9 @@
 			    const struct pkey_clrkey *clrkey,
 			    struct pkey_protkey *protkey)
 {
+	/* mask of available pckmo subfunctions */
+	static cpacf_mask_t pckmo_functions;
+
 	long fc;
 	int keysize;
 	u8 paramblock[64];
@@ -101,11 +113,13 @@
 		return -EINVAL;
 	}
 
-	/*
-	 * Check if the needed pckmo subfunction is available.
-	 * These subfunctions can be enabled/disabled by customers
-	 * in the LPAR profile or may even change on the fly.
-	 */
+	/* Did we already check for PCKMO ? */
+	if (!pckmo_functions.bytes[0]) {
+		/* no, so check now */
+		if (!cpacf_query(CPACF_PCKMO, &pckmo_functions))
+			return -ENODEV;
+	}
+	/* check for the pckmo subfunction we need now */
 	if (!cpacf_test_func(&pckmo_functions, fc)) {
 		DEBUG_ERR("%s pckmo functions not available\n", __func__);
 		return -ENODEV;
@@ -173,6 +187,72 @@
 }
 
 /*
+ * Construct EP11 key with given clear key value.
+ */
+static int pkey_clr2ep11key(const u8 *clrkey, size_t clrkeylen,
+			    u8 *keybuf, size_t *keybuflen)
+{
+	int i, rc;
+	u16 card, dom;
+	u32 nr_apqns, *apqns = NULL;
+
+	/* build a list of apqns suitable for ep11 keys with cpacf support */
+	rc = ep11_findcard2(&apqns, &nr_apqns, 0xFFFF, 0xFFFF,
+			    ZCRYPT_CEX7, EP11_API_V, NULL);
+	if (rc)
+		goto out;
+
+	/* go through the list of apqns and try to bild an ep11 key */
+	for (rc = -ENODEV, i = 0; i < nr_apqns; i++) {
+		card = apqns[i] >> 16;
+		dom = apqns[i] & 0xFFFF;
+		rc = ep11_clr2keyblob(card, dom, clrkeylen * 8,
+				      0, clrkey, keybuf, keybuflen);
+		if (rc == 0)
+			break;
+	}
+
+out:
+	kfree(apqns);
+	if (rc)
+		DEBUG_DBG("%s failed rc=%d\n", __func__, rc);
+	return rc;
+}
+
+/*
+ * Find card and transform EP11 secure key into protected key.
+ */
+static int pkey_ep11key2pkey(const u8 *key, struct pkey_protkey *pkey)
+{
+	int i, rc;
+	u16 card, dom;
+	u32 nr_apqns, *apqns = NULL;
+	struct ep11keyblob *kb = (struct ep11keyblob *) key;
+
+	/* build a list of apqns suitable for this key */
+	rc = ep11_findcard2(&apqns, &nr_apqns, 0xFFFF, 0xFFFF,
+			    ZCRYPT_CEX7, EP11_API_V, kb->wkvp);
+	if (rc)
+		goto out;
+
+	/* go through the list of apqns and try to derive an pkey */
+	for (rc = -ENODEV, i = 0; i < nr_apqns; i++) {
+		card = apqns[i] >> 16;
+		dom = apqns[i] & 0xFFFF;
+		rc = ep11_key2protkey(card, dom, key, kb->head.len,
+				      pkey->protkey, &pkey->len, &pkey->type);
+		if (rc == 0)
+			break;
+	}
+
+out:
+	kfree(apqns);
+	if (rc)
+		DEBUG_DBG("%s failed rc=%d\n", __func__, rc);
+	return rc;
+}
+
+/*
  * Verify key and give back some info about the key.
  */
 static int pkey_verifykey(const struct pkey_seckey *seckey,
@@ -305,26 +385,90 @@
 static int pkey_nonccatok2pkey(const u8 *key, u32 keylen,
 			       struct pkey_protkey *protkey)
 {
+	int rc = -EINVAL;
+	u8 *tmpbuf = NULL;
 	struct keytoken_header *hdr = (struct keytoken_header *)key;
-	struct protaeskeytoken *t;
 
 	switch (hdr->version) {
-	case TOKVER_PROTECTED_KEY:
-		if (keylen != sizeof(struct protaeskeytoken))
-			return -EINVAL;
+	case TOKVER_PROTECTED_KEY: {
+		struct protaeskeytoken *t;
 
+		if (keylen != sizeof(struct protaeskeytoken))
+			goto out;
 		t = (struct protaeskeytoken *)key;
 		protkey->len = t->len;
 		protkey->type = t->keytype;
 		memcpy(protkey->protkey, t->protkey,
 		       sizeof(protkey->protkey));
+		rc = pkey_verifyprotkey(protkey);
+		break;
+	}
+	case TOKVER_CLEAR_KEY: {
+		struct clearaeskeytoken *t;
+		struct pkey_clrkey ckey;
+		union u_tmpbuf {
+			u8 skey[SECKEYBLOBSIZE];
+			u8 ep11key[MAXEP11AESKEYBLOBSIZE];
+		};
+		size_t tmpbuflen = sizeof(union u_tmpbuf);
 
-		return pkey_verifyprotkey(protkey);
+		if (keylen < sizeof(struct clearaeskeytoken))
+			goto out;
+		t = (struct clearaeskeytoken *)key;
+		if (keylen != sizeof(*t) + t->len)
+			goto out;
+		if ((t->keytype == PKEY_KEYTYPE_AES_128 && t->len == 16)
+		    || (t->keytype == PKEY_KEYTYPE_AES_192 && t->len == 24)
+		    || (t->keytype == PKEY_KEYTYPE_AES_256 && t->len == 32))
+			memcpy(ckey.clrkey, t->clearkey, t->len);
+		else
+			goto out;
+		/* alloc temp key buffer space */
+		tmpbuf = kmalloc(tmpbuflen, GFP_ATOMIC);
+		if (!tmpbuf) {
+			rc = -ENOMEM;
+			goto out;
+		}
+		/* try direct way with the PCKMO instruction */
+		rc = pkey_clr2protkey(t->keytype, &ckey, protkey);
+		if (rc == 0)
+			break;
+		/* PCKMO failed, so try the CCA secure key way */
+		rc = cca_clr2seckey(0xFFFF, 0xFFFF, t->keytype,
+				    ckey.clrkey, tmpbuf);
+		if (rc == 0)
+			rc = pkey_skey2pkey(tmpbuf, protkey);
+		if (rc == 0)
+			break;
+		/* if the CCA way also failed, let's try via EP11 */
+		rc = pkey_clr2ep11key(ckey.clrkey, t->len,
+				      tmpbuf, &tmpbuflen);
+		if (rc == 0)
+			rc = pkey_ep11key2pkey(tmpbuf, protkey);
+		/* now we should really have an protected key */
+		DEBUG_ERR("%s unable to build protected key from clear",
+			  __func__);
+		break;
+	}
+	case TOKVER_EP11_AES: {
+		if (keylen < MINEP11AESKEYBLOBSIZE)
+			goto out;
+		/* check ep11 key for exportable as protected key */
+		rc = ep11_check_aeskeyblob(debug_info, 3, key, 0, 1);
+		if (rc)
+			goto out;
+		rc = pkey_ep11key2pkey(key, protkey);
+		break;
+	}
 	default:
 		DEBUG_ERR("%s unknown/unsupported non-CCA token version %d\n",
 			  __func__, hdr->version);
-		return -EINVAL;
+		rc = -EINVAL;
 	}
+
+out:
+	kfree(tmpbuf);
+	return rc;
 }
 
 /*
@@ -403,6 +547,10 @@
 		if (*keybufsize < SECKEYBLOBSIZE)
 			return -EINVAL;
 		break;
+	case PKEY_TYPE_EP11:
+		if (*keybufsize < MINEP11AESKEYBLOBSIZE)
+			return -EINVAL;
+		break;
 	default:
 		return -EINVAL;
 	}
@@ -419,7 +567,10 @@
 	for (i = 0, rc = -ENODEV; i < nr_apqns; i++) {
 		card = apqns[i].card;
 		dom = apqns[i].domain;
-		if (ktype == PKEY_TYPE_CCA_DATA) {
+		if (ktype == PKEY_TYPE_EP11) {
+			rc = ep11_genaeskey(card, dom, ksize, kflags,
+					    keybuf, keybufsize);
+		} else if (ktype == PKEY_TYPE_CCA_DATA) {
 			rc = cca_genseckey(card, dom, ksize, keybuf);
 			*keybufsize = (rc ? 0 : SECKEYBLOBSIZE);
 		} else /* TOKVER_CCA_VLSC */
@@ -450,6 +601,10 @@
 		if (*keybufsize < SECKEYBLOBSIZE)
 			return -EINVAL;
 		break;
+	case PKEY_TYPE_EP11:
+		if (*keybufsize < MINEP11AESKEYBLOBSIZE)
+			return -EINVAL;
+		break;
 	default:
 		return -EINVAL;
 	}
@@ -466,7 +621,10 @@
 	for (i = 0, rc = -ENODEV; i < nr_apqns; i++) {
 		card = apqns[i].card;
 		dom = apqns[i].domain;
-		if (ktype == PKEY_TYPE_CCA_DATA) {
+		if (ktype == PKEY_TYPE_EP11) {
+			rc = ep11_clr2keyblob(card, dom, ksize, kflags,
+					      clrkey, keybuf, keybufsize);
+		} else if (ktype == PKEY_TYPE_CCA_DATA) {
 			rc = cca_clr2seckey(card, dom, ksize,
 					    clrkey, keybuf);
 			*keybufsize = (rc ? 0 : SECKEYBLOBSIZE);
@@ -489,11 +647,11 @@
 	u32 _nr_apqns, *_apqns = NULL;
 	struct keytoken_header *hdr = (struct keytoken_header *)key;
 
-	if (keylen < sizeof(struct keytoken_header) ||
-	    hdr->type != TOKTYPE_CCA_INTERNAL)
+	if (keylen < sizeof(struct keytoken_header))
 		return -EINVAL;
 
-	if (hdr->version == TOKVER_CCA_AES) {
+	if (hdr->type == TOKTYPE_CCA_INTERNAL
+	    && hdr->version == TOKVER_CCA_AES) {
 		struct secaeskeytoken *t = (struct secaeskeytoken *)key;
 
 		rc = cca_check_secaeskeytoken(debug_info, 3, key, 0);
@@ -521,7 +679,8 @@
 		*cardnr = ((struct pkey_apqn *)_apqns)->card;
 		*domain = ((struct pkey_apqn *)_apqns)->domain;
 
-	} else if (hdr->version == TOKVER_CCA_VLSC) {
+	} else if (hdr->type == TOKTYPE_CCA_INTERNAL
+		   && hdr->version == TOKVER_CCA_VLSC) {
 		struct cipherkeytoken *t = (struct cipherkeytoken *)key;
 
 		rc = cca_check_secaescipherkey(debug_info, 3, key, 0, 1);
@@ -556,6 +715,29 @@
 		*cardnr = ((struct pkey_apqn *)_apqns)->card;
 		*domain = ((struct pkey_apqn *)_apqns)->domain;
 
+	} else if (hdr->type == TOKTYPE_NON_CCA
+		   && hdr->version == TOKVER_EP11_AES) {
+		struct ep11keyblob *kb = (struct ep11keyblob *)key;
+
+		rc = ep11_check_aeskeyblob(debug_info, 3, key, 0, 1);
+		if (rc)
+			goto out;
+		if (ktype)
+			*ktype = PKEY_TYPE_EP11;
+		if (ksize)
+			*ksize = kb->head.keybitlen;
+
+		rc = ep11_findcard2(&_apqns, &_nr_apqns, *cardnr, *domain,
+				    ZCRYPT_CEX7, EP11_API_V, kb->wkvp);
+		if (rc)
+			goto out;
+
+		if (flags)
+			*flags = PKEY_FLAGS_MATCH_CUR_MKVP;
+
+		*cardnr = ((struct pkey_apqn *)_apqns)->card;
+		*domain = ((struct pkey_apqn *)_apqns)->domain;
+
 	} else
 		rc = -EINVAL;
 
@@ -578,30 +760,32 @@
 	if (keylen < sizeof(struct keytoken_header))
 		return -EINVAL;
 
-	switch (hdr->type) {
-	case TOKTYPE_NON_CCA:
-		return pkey_nonccatok2pkey(key, keylen, pkey);
-	case TOKTYPE_CCA_INTERNAL:
-		switch (hdr->version) {
-		case TOKVER_CCA_AES:
+	if (hdr->type == TOKTYPE_CCA_INTERNAL) {
+		if (hdr->version == TOKVER_CCA_AES) {
 			if (keylen != sizeof(struct secaeskeytoken))
 				return -EINVAL;
 			if (cca_check_secaeskeytoken(debug_info, 3, key, 0))
 				return -EINVAL;
-			break;
-		case TOKVER_CCA_VLSC:
+		} else if (hdr->version == TOKVER_CCA_VLSC) {
 			if (keylen < hdr->len || keylen > MAXCCAVLSCTOKENSIZE)
 				return -EINVAL;
 			if (cca_check_secaescipherkey(debug_info, 3, key, 0, 1))
 				return -EINVAL;
-			break;
-		default:
+		} else {
 			DEBUG_ERR("%s unknown CCA internal token version %d\n",
 				  __func__, hdr->version);
 			return -EINVAL;
 		}
-		break;
-	default:
+	} else if (hdr->type == TOKTYPE_NON_CCA) {
+		if (hdr->version == TOKVER_EP11_AES) {
+			if (keylen < sizeof(struct ep11keyblob))
+				return -EINVAL;
+			if (ep11_check_aeskeyblob(debug_info, 3, key, 0, 1))
+				return -EINVAL;
+		} else {
+			return pkey_nonccatok2pkey(key, keylen, pkey);
+		}
+	} else {
 		DEBUG_ERR("%s unknown/unsupported blob type %d\n",
 			  __func__, hdr->type);
 		return -EINVAL;
@@ -611,12 +795,21 @@
 	for (i = 0, rc = -ENODEV; i < nr_apqns; i++) {
 		card = apqns[i].card;
 		dom = apqns[i].domain;
-		if (hdr->version == TOKVER_CCA_AES)
+		if (hdr->type == TOKTYPE_CCA_INTERNAL
+		    && hdr->version == TOKVER_CCA_AES)
 			rc = cca_sec2protkey(card, dom, key, pkey->protkey,
 					     &pkey->len, &pkey->type);
-		else /* TOKVER_CCA_VLSC */
+		else if (hdr->type == TOKTYPE_CCA_INTERNAL
+			 && hdr->version == TOKVER_CCA_VLSC)
 			rc = cca_cipher2protkey(card, dom, key, pkey->protkey,
 						&pkey->len, &pkey->type);
+		else { /* EP11 AES secure key blob */
+			struct ep11keyblob *kb = (struct ep11keyblob *) key;
+
+			rc = ep11_key2protkey(card, dom, key, kb->head.len,
+					      pkey->protkey, &pkey->len,
+					      &pkey->type);
+		}
 		if (rc == 0)
 			break;
 	}
@@ -631,12 +824,24 @@
 	u32 _nr_apqns, *_apqns = NULL;
 	struct keytoken_header *hdr = (struct keytoken_header *)key;
 
-	if (keylen < sizeof(struct keytoken_header) ||
-	    hdr->type != TOKTYPE_CCA_INTERNAL ||
-	    flags == 0)
+	if (keylen < sizeof(struct keytoken_header) || flags == 0)
 		return -EINVAL;
 
-	if (hdr->version == TOKVER_CCA_AES || hdr->version == TOKVER_CCA_VLSC) {
+	if (hdr->type == TOKTYPE_NON_CCA && hdr->version == TOKVER_EP11_AES) {
+		int minhwtype = 0, api = 0;
+		struct ep11keyblob *kb = (struct ep11keyblob *) key;
+
+		if (flags != PKEY_FLAGS_MATCH_CUR_MKVP)
+			return -EINVAL;
+		if (kb->attr & EP11_BLOB_PKEY_EXTRACTABLE) {
+			minhwtype = ZCRYPT_CEX7;
+			api = EP11_API_V;
+		}
+		rc = ep11_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF,
+				    minhwtype, api, kb->wkvp);
+		if (rc)
+			goto out;
+	} else if (hdr->type == TOKTYPE_CCA_INTERNAL) {
 		int minhwtype = ZCRYPT_CEX3C;
 		u64 cur_mkvp = 0, old_mkvp = 0;
 
@@ -647,7 +852,7 @@
 				cur_mkvp = t->mkvp;
 			if (flags & PKEY_FLAGS_MATCH_ALT_MKVP)
 				old_mkvp = t->mkvp;
-		} else {
+		} else if (hdr->version == TOKVER_CCA_VLSC) {
 			struct cipherkeytoken *t = (struct cipherkeytoken *)key;
 
 			minhwtype = ZCRYPT_CEX6;
@@ -655,19 +860,24 @@
 				cur_mkvp = t->mkvp0;
 			if (flags & PKEY_FLAGS_MATCH_ALT_MKVP)
 				old_mkvp = t->mkvp0;
+		} else {
+			/* unknown cca internal token type */
+			return -EINVAL;
 		}
 		rc = cca_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF,
 				   minhwtype, cur_mkvp, old_mkvp, 1);
 		if (rc)
 			goto out;
-		if (apqns) {
-			if (*nr_apqns < _nr_apqns)
-				rc = -ENOSPC;
-			else
-				memcpy(apqns, _apqns, _nr_apqns * sizeof(u32));
-		}
-		*nr_apqns = _nr_apqns;
+	} else
+		return -EINVAL;
+
+	if (apqns) {
+		if (*nr_apqns < _nr_apqns)
+			rc = -ENOSPC;
+		else
+			memcpy(apqns, _apqns, _nr_apqns * sizeof(u32));
 	}
+	*nr_apqns = _nr_apqns;
 
 out:
 	kfree(_apqns);
@@ -695,14 +905,26 @@
 				   minhwtype, cur_mkvp, old_mkvp, 1);
 		if (rc)
 			goto out;
-		if (apqns) {
-			if (*nr_apqns < _nr_apqns)
-				rc = -ENOSPC;
-			else
-				memcpy(apqns, _apqns, _nr_apqns * sizeof(u32));
-		}
-		*nr_apqns = _nr_apqns;
+	} else if (ktype == PKEY_TYPE_EP11) {
+		u8 *wkvp = NULL;
+
+		if (flags & PKEY_FLAGS_MATCH_CUR_MKVP)
+			wkvp = cur_mkvp;
+		rc = ep11_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF,
+				    ZCRYPT_CEX7, EP11_API_V, wkvp);
+		if (rc)
+			goto out;
+
+	} else
+		return -EINVAL;
+
+	if (apqns) {
+		if (*nr_apqns < _nr_apqns)
+			rc = -ENOSPC;
+		else
+			memcpy(apqns, _apqns, _nr_apqns * sizeof(u32));
 	}
+	*nr_apqns = _nr_apqns;
 
 out:
 	kfree(_apqns);
@@ -715,36 +937,18 @@
 
 static void *_copy_key_from_user(void __user *ukey, size_t keylen)
 {
-	void *kkey;
-
 	if (!ukey || keylen < MINKEYBLOBSIZE || keylen > KEYBLOBBUFSIZE)
 		return ERR_PTR(-EINVAL);
-	kkey = kmalloc(keylen, GFP_KERNEL);
-	if (!kkey)
-		return ERR_PTR(-ENOMEM);
-	if (copy_from_user(kkey, ukey, keylen)) {
-		kfree(kkey);
-		return ERR_PTR(-EFAULT);
-	}
 
-	return kkey;
+	return memdup_user(ukey, keylen);
 }
 
 static void *_copy_apqns_from_user(void __user *uapqns, size_t nr_apqns)
 {
-	void *kapqns = NULL;
-	size_t nbytes;
-
-	if (uapqns && nr_apqns > 0) {
-		nbytes = nr_apqns * sizeof(struct pkey_apqn);
-		kapqns = kmalloc(nbytes, GFP_KERNEL);
-		if (!kapqns)
-			return ERR_PTR(-ENOMEM);
-		if (copy_from_user(kapqns, uapqns, nbytes))
-			return ERR_PTR(-EFAULT);
-	}
+	if (!uapqns || nr_apqns == 0)
+		return NULL;
 
-	return kapqns;
+	return memdup_user(uapqns, nr_apqns * sizeof(struct pkey_apqn));
 }
 
 static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
@@ -792,7 +996,7 @@
 			return -EFAULT;
 		rc = cca_sec2protkey(ksp.cardnr, ksp.domain,
 				     ksp.seckey.seckey, ksp.protkey.protkey,
-				     NULL, &ksp.protkey.type);
+				     &ksp.protkey.len, &ksp.protkey.type);
 		DEBUG_DBG("%s cca_sec2protkey()=%d\n", __func__, rc);
 		if (rc)
 			break;
@@ -1375,8 +1579,9 @@
 					    bool is_xts, char *buf, loff_t off,
 					    size_t count)
 {
-	size_t keysize;
-	int rc;
+	int i, rc, card, dom;
+	u32 nr_apqns, *apqns = NULL;
+	size_t keysize = CCACIPHERTOKENSIZE;
 
 	if (off != 0 || count < CCACIPHERTOKENSIZE)
 		return -EINVAL;
@@ -1384,22 +1589,31 @@
 		if (count < 2 * CCACIPHERTOKENSIZE)
 			return -EINVAL;
 
-	keysize = CCACIPHERTOKENSIZE;
-	rc = cca_gencipherkey(-1, -1, keybits, 0, buf, &keysize);
+	/* build a list of apqns able to generate an cipher key */
+	rc = cca_findcard2(&apqns, &nr_apqns, 0xFFFF, 0xFFFF,
+			   ZCRYPT_CEX6, 0, 0, 0);
 	if (rc)
 		return rc;
-	memset(buf + keysize, 0, CCACIPHERTOKENSIZE - keysize);
 
-	if (is_xts) {
-		keysize = CCACIPHERTOKENSIZE;
-		rc = cca_gencipherkey(-1, -1, keybits, 0,
-				      buf + CCACIPHERTOKENSIZE, &keysize);
+	memset(buf, 0, is_xts ? 2 * keysize : keysize);
+
+	/* simple try all apqns from the list */
+	for (i = 0, rc = -ENODEV; i < nr_apqns; i++) {
+		card = apqns[i] >> 16;
+		dom = apqns[i] & 0xFFFF;
+		rc = cca_gencipherkey(card, dom, keybits, 0, buf, &keysize);
+		if (rc == 0)
+			break;
+	}
 		if (rc)
 			return rc;
-		memset(buf + CCACIPHERTOKENSIZE + keysize, 0,
-		       CCACIPHERTOKENSIZE - keysize);
 
-		return 2 * CCACIPHERTOKENSIZE;
+	if (is_xts) {
+		keysize = CCACIPHERTOKENSIZE;
+		buf += CCACIPHERTOKENSIZE;
+		rc = cca_gencipherkey(card, dom, keybits, 0, buf, &keysize);
+		if (rc == 0)
+			return 2 * CCACIPHERTOKENSIZE;
 	}
 
 	return CCACIPHERTOKENSIZE;
@@ -1475,10 +1689,134 @@
 	.bin_attrs = ccacipher_attrs,
 };
 
+/*
+ * Sysfs attribute read function for all ep11 aes key binary attributes.
+ * The implementation can not deal with partial reads, because a new random
+ * secure key blob is generated with each read. In case of partial reads
+ * (i.e. off != 0 or count < key blob size) -EINVAL is returned.
+ * This function and the sysfs attributes using it provide EP11 key blobs
+ * padded to the upper limit of MAXEP11AESKEYBLOBSIZE which is currently
+ * 320 bytes.
+ */
+static ssize_t pkey_ep11_aes_attr_read(enum pkey_key_size keybits,
+				       bool is_xts, char *buf, loff_t off,
+				       size_t count)
+{
+	int i, rc, card, dom;
+	u32 nr_apqns, *apqns = NULL;
+	size_t keysize = MAXEP11AESKEYBLOBSIZE;
+
+	if (off != 0 || count < MAXEP11AESKEYBLOBSIZE)
+		return -EINVAL;
+	if (is_xts)
+		if (count < 2 * MAXEP11AESKEYBLOBSIZE)
+			return -EINVAL;
+
+	/* build a list of apqns able to generate an cipher key */
+	rc = ep11_findcard2(&apqns, &nr_apqns, 0xFFFF, 0xFFFF,
+			    ZCRYPT_CEX7, EP11_API_V, NULL);
+	if (rc)
+		return rc;
+
+	memset(buf, 0, is_xts ? 2 * keysize : keysize);
+
+	/* simple try all apqns from the list */
+	for (i = 0, rc = -ENODEV; i < nr_apqns; i++) {
+		card = apqns[i] >> 16;
+		dom = apqns[i] & 0xFFFF;
+		rc = ep11_genaeskey(card, dom, keybits, 0, buf, &keysize);
+		if (rc == 0)
+			break;
+	}
+	if (rc)
+		return rc;
+
+	if (is_xts) {
+		keysize = MAXEP11AESKEYBLOBSIZE;
+		buf += MAXEP11AESKEYBLOBSIZE;
+		rc = ep11_genaeskey(card, dom, keybits, 0, buf, &keysize);
+		if (rc == 0)
+			return 2 * MAXEP11AESKEYBLOBSIZE;
+	}
+
+	return MAXEP11AESKEYBLOBSIZE;
+}
+
+static ssize_t ep11_aes_128_read(struct file *filp,
+				 struct kobject *kobj,
+				 struct bin_attribute *attr,
+				 char *buf, loff_t off,
+				 size_t count)
+{
+	return pkey_ep11_aes_attr_read(PKEY_SIZE_AES_128, false, buf,
+				       off, count);
+}
+
+static ssize_t ep11_aes_192_read(struct file *filp,
+				 struct kobject *kobj,
+				 struct bin_attribute *attr,
+				 char *buf, loff_t off,
+				 size_t count)
+{
+	return pkey_ep11_aes_attr_read(PKEY_SIZE_AES_192, false, buf,
+				       off, count);
+}
+
+static ssize_t ep11_aes_256_read(struct file *filp,
+				 struct kobject *kobj,
+				 struct bin_attribute *attr,
+				 char *buf, loff_t off,
+				 size_t count)
+{
+	return pkey_ep11_aes_attr_read(PKEY_SIZE_AES_256, false, buf,
+				       off, count);
+}
+
+static ssize_t ep11_aes_128_xts_read(struct file *filp,
+				     struct kobject *kobj,
+				     struct bin_attribute *attr,
+				     char *buf, loff_t off,
+				     size_t count)
+{
+	return pkey_ep11_aes_attr_read(PKEY_SIZE_AES_128, true, buf,
+				       off, count);
+}
+
+static ssize_t ep11_aes_256_xts_read(struct file *filp,
+				     struct kobject *kobj,
+				     struct bin_attribute *attr,
+				     char *buf, loff_t off,
+				     size_t count)
+{
+	return pkey_ep11_aes_attr_read(PKEY_SIZE_AES_256, true, buf,
+				       off, count);
+}
+
+static BIN_ATTR_RO(ep11_aes_128, MAXEP11AESKEYBLOBSIZE);
+static BIN_ATTR_RO(ep11_aes_192, MAXEP11AESKEYBLOBSIZE);
+static BIN_ATTR_RO(ep11_aes_256, MAXEP11AESKEYBLOBSIZE);
+static BIN_ATTR_RO(ep11_aes_128_xts, 2 * MAXEP11AESKEYBLOBSIZE);
+static BIN_ATTR_RO(ep11_aes_256_xts, 2 * MAXEP11AESKEYBLOBSIZE);
+
+static struct bin_attribute *ep11_attrs[] = {
+	&bin_attr_ep11_aes_128,
+	&bin_attr_ep11_aes_192,
+	&bin_attr_ep11_aes_256,
+	&bin_attr_ep11_aes_128_xts,
+	&bin_attr_ep11_aes_256_xts,
+	NULL
+};
+
+static struct attribute_group ep11_attr_group = {
+	.name	   = "ep11",
+	.bin_attrs = ep11_attrs,
+};
+
 static const struct attribute_group *pkey_attr_groups[] = {
 	&protkey_attr_group,
 	&ccadata_attr_group,
 	&ccacipher_attr_group,
+	&ep11_attr_group,
 	NULL,
 };
 
@@ -1502,7 +1840,7 @@
  */
 static int __init pkey_init(void)
 {
-	cpacf_mask_t kmc_functions;
+	cpacf_mask_t func_mask;
 
 	/*
 	 * The pckmo instruction should be available - even if we don't
@@ -1510,15 +1848,15 @@
 	 * is also the minimum level for the kmc instructions which
 	 * are able to work with protected keys.
 	 */
-	if (!cpacf_query(CPACF_PCKMO, &pckmo_functions))
+	if (!cpacf_query(CPACF_PCKMO, &func_mask))
 		return -ENODEV;
 
 	/* check for kmc instructions available */
-	if (!cpacf_query(CPACF_KMC, &kmc_functions))
+	if (!cpacf_query(CPACF_KMC, &func_mask))
 		return -ENODEV;
-	if (!cpacf_test_func(&kmc_functions, CPACF_KMC_PAES_128) ||
-	    !cpacf_test_func(&kmc_functions, CPACF_KMC_PAES_192) ||
-	    !cpacf_test_func(&kmc_functions, CPACF_KMC_PAES_256))
+	if (!cpacf_test_func(&func_mask, CPACF_KMC_PAES_128) ||
+	    !cpacf_test_func(&func_mask, CPACF_KMC_PAES_192) ||
+	    !cpacf_test_func(&func_mask, CPACF_KMC_PAES_256))
 		return -ENODEV;
 
 	pkey_debug_init();
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/vfio_ap_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/vfio_ap_drv.c
@@ -71,15 +71,11 @@
 static void vfio_ap_queue_dev_remove(struct ap_device *apdev)
 {
 	struct vfio_ap_queue *q;
-	int apid, apqi;
 
 	mutex_lock(&matrix_dev->lock);
 	q = dev_get_drvdata(&apdev->device);
+	vfio_ap_mdev_reset_queue(q, 1);
 	dev_set_drvdata(&apdev->device, NULL);
-	apid = AP_QID_CARD(q->apqn);
-	apqi = AP_QID_QUEUE(q->apqn);
-	vfio_ap_mdev_reset_queue(apid, apqi, 1);
-	vfio_ap_irq_disable(q);
 	kfree(q);
 	mutex_unlock(&matrix_dev->lock);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/vfio_ap_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/vfio_ap_ops.c
@@ -25,6 +25,7 @@
 #define VFIO_AP_MDEV_NAME_HWVIRT "VFIO AP Passthrough Device"
 
 static int vfio_ap_mdev_reset_queues(struct mdev_device *mdev);
+static struct vfio_ap_queue *vfio_ap_find_queue(int apqn);
 
 static int match_apqn(struct device *dev, const void *data)
 {
@@ -49,20 +50,15 @@
 					int apqn)
 {
 	struct vfio_ap_queue *q;
-	struct device *dev;
 
 	if (!test_bit_inv(AP_QID_CARD(apqn), matrix_mdev->matrix.apm))
 		return NULL;
 	if (!test_bit_inv(AP_QID_QUEUE(apqn), matrix_mdev->matrix.aqm))
 		return NULL;
 
-	dev = driver_find_device(&matrix_dev->vfio_ap_drv->driver, NULL,
-				 &apqn, match_apqn);
-	if (!dev)
-		return NULL;
-	q = dev_get_drvdata(dev);
-	q->matrix_mdev = matrix_mdev;
-	put_device(dev);
+	q = vfio_ap_find_queue(apqn);
+	if (q)
+		q->matrix_mdev = matrix_mdev;
 
 	return q;
 }
@@ -119,13 +115,18 @@
  */
 static void vfio_ap_free_aqic_resources(struct vfio_ap_queue *q)
 {
-	if (q->saved_isc != VFIO_AP_ISC_INVALID && q->matrix_mdev)
+	if (!q)
+		return;
+	if (q->saved_isc != VFIO_AP_ISC_INVALID &&
+	    !WARN_ON(!(q->matrix_mdev && q->matrix_mdev->kvm))) {
 		kvm_s390_gisc_unregister(q->matrix_mdev->kvm, q->saved_isc);
-	if (q->saved_pfn && q->matrix_mdev)
+		q->saved_isc = VFIO_AP_ISC_INVALID;
+	}
+	if (q->saved_pfn && !WARN_ON(!q->matrix_mdev)) {
 		vfio_unpin_pages(mdev_dev(q->matrix_mdev->mdev),
 				 &q->saved_pfn, 1);
-	q->saved_pfn = 0;
-	q->saved_isc = VFIO_AP_ISC_INVALID;
+		q->saved_pfn = 0;
+	}
 }
 
 /**
@@ -144,7 +145,7 @@
  * Returns if ap_aqic function failed with invalid, deconfigured or
  * checkstopped AP.
  */
-struct ap_queue_status vfio_ap_irq_disable(struct vfio_ap_queue *q)
+static struct ap_queue_status vfio_ap_irq_disable(struct vfio_ap_queue *q)
 {
 	struct ap_qirq_ctrl aqic_gisa = {};
 	struct ap_queue_status status;
@@ -1114,48 +1115,70 @@
 	return NOTIFY_OK;
 }
 
-static void vfio_ap_irq_disable_apqn(int apqn)
+static struct vfio_ap_queue *vfio_ap_find_queue(int apqn)
 {
 	struct device *dev;
-	struct vfio_ap_queue *q;
+	struct vfio_ap_queue *q = NULL;
 
 	dev = driver_find_device(&matrix_dev->vfio_ap_drv->driver, NULL,
 				 &apqn, match_apqn);
 	if (dev) {
 		q = dev_get_drvdata(dev);
-		vfio_ap_irq_disable(q);
 		put_device(dev);
 	}
+
+	return q;
 }
 
-int vfio_ap_mdev_reset_queue(unsigned int apid, unsigned int apqi,
+int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q,
 			     unsigned int retry)
 {
 	struct ap_queue_status status;
+	int ret;
 	int retry2 = 2;
-	int apqn = AP_MKQID(apid, apqi);
 
-	do {
-		status = ap_zapq(apqn);
-		switch (status.response_code) {
-		case AP_RESPONSE_NORMAL:
-			while (!status.queue_empty && retry2--) {
-				msleep(20);
-				status = ap_tapq(apqn, NULL);
-			}
-			WARN_ON_ONCE(retry2 <= 0);
-			return 0;
-		case AP_RESPONSE_RESET_IN_PROGRESS:
-		case AP_RESPONSE_BUSY:
+	if (!q)
+		return 0;
+
+retry_zapq:
+	status = ap_zapq(q->apqn);
+	switch (status.response_code) {
+	case AP_RESPONSE_NORMAL:
+		ret = 0;
+		break;
+	case AP_RESPONSE_RESET_IN_PROGRESS:
+		if (retry--) {
 			msleep(20);
-			break;
-		default:
-			/* things are really broken, give up */
-			return -EIO;
+			goto retry_zapq;
 		}
-	} while (retry--);
+		ret = -EBUSY;
+		break;
+	case AP_RESPONSE_Q_NOT_AVAIL:
+	case AP_RESPONSE_DECONFIGURED:
+	case AP_RESPONSE_CHECKSTOPPED:
+		WARN_ON_ONCE(status.irq_enabled);
+		ret = -EBUSY;
+		goto free_resources;
+	default:
+		/* things are really broken, give up */
+		WARN(true, "PQAP/ZAPQ completed with invalid rc (%x)\n",
+		     status.response_code);
+		return -EIO;
+	}
+
+	/* wait for the reset to take effect */
+	while (retry2--) {
+		if (status.queue_empty && !status.irq_enabled)
+			break;
+		msleep(20);
+		status = ap_tapq(q->apqn, NULL);
+	}
+	WARN_ON_ONCE(retry2 <= 0);
 
-	return -EBUSY;
+free_resources:
+	vfio_ap_free_aqic_resources(q);
+
+	return ret;
 }
 
 static int vfio_ap_mdev_reset_queues(struct mdev_device *mdev)
@@ -1163,13 +1186,15 @@
 	int ret;
 	int rc = 0;
 	unsigned long apid, apqi;
+	struct vfio_ap_queue *q;
 	struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);
 
 	for_each_set_bit_inv(apid, matrix_mdev->matrix.apm,
 			     matrix_mdev->matrix.apm_max + 1) {
 		for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm,
 				     matrix_mdev->matrix.aqm_max + 1) {
-			ret = vfio_ap_mdev_reset_queue(apid, apqi, 1);
+			q = vfio_ap_find_queue(AP_MKQID(apid, apqi));
+			ret = vfio_ap_mdev_reset_queue(q, 1);
 			/*
 			 * Regardless whether a queue turns out to be busy, or
 			 * is not operational, we need to continue resetting
@@ -1177,7 +1202,6 @@
 			 */
 			if (ret)
 				rc = ret;
-			vfio_ap_irq_disable_apqn(AP_MKQID(apid, apqi));
 		}
 	}
 
@@ -1255,7 +1279,7 @@
 	info.num_regions = 0;
 	info.num_irqs = 0;
 
-	return copy_to_user((void __user *)arg, &info, minsz);
+	return copy_to_user((void __user *)arg, &info, minsz) ? -EFAULT : 0;
 }
 
 static ssize_t vfio_ap_mdev_ioctl(struct mdev_device *mdev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/vfio_ap_private.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/vfio_ap_private.h
@@ -88,11 +88,6 @@
 	struct mdev_device *mdev;
 };
 
-extern int vfio_ap_mdev_register(void);
-extern void vfio_ap_mdev_unregister(void);
-int vfio_ap_mdev_reset_queue(unsigned int apid, unsigned int apqi,
-			     unsigned int retry);
-
 struct vfio_ap_queue {
 	struct ap_matrix_mdev *matrix_mdev;
 	unsigned long saved_pfn;
@@ -100,5 +95,10 @@
 #define VFIO_AP_ISC_INVALID 0xff
 	unsigned char saved_isc;
 };
-struct ap_queue_status vfio_ap_irq_disable(struct vfio_ap_queue *q);
+
+int vfio_ap_mdev_register(void);
+void vfio_ap_mdev_unregister(void);
+int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q,
+			     unsigned int retry);
+
 #endif /* _VFIO_AP_PRIVATE_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_api.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_api.c
@@ -36,6 +36,7 @@
 #include "zcrypt_msgtype6.h"
 #include "zcrypt_msgtype50.h"
 #include "zcrypt_ccamisc.h"
+#include "zcrypt_ep11misc.h"
 
 /*
  * Module description.
@@ -605,8 +606,8 @@
 	weight += atomic_read(&zc->load);
 	pref_weight += atomic_read(&pref_zc->load);
 	if (weight == pref_weight)
-		return atomic_read(&zc->card->total_request_count) >
-			atomic_read(&pref_zc->card->total_request_count);
+		return atomic64_read(&zc->card->total_request_count) >
+			atomic64_read(&pref_zc->card->total_request_count);
 	return weight > pref_weight;
 }
 
@@ -849,7 +850,7 @@
 			/* check if device is online and eligible */
 			if (!zq->online ||
 			    !zq->ops->send_cprb ||
-			    (tdom != (unsigned short) AUTOSELECT &&
+			    (tdom != AUTOSEL_DOM &&
 			     tdom != AP_QID_QUEUE(zq->queue->qid)))
 				continue;
 			/* check if device node has admission for this queue */
@@ -874,7 +875,7 @@
 
 	/* in case of auto select, provide the correct domain */
 	qid = pref_zq->queue->qid;
-	if (*domain == (unsigned short) AUTOSELECT)
+	if (*domain == AUTOSEL_DOM)
 		*domain = AP_QID_QUEUE(qid);
 
 	rc = pref_zq->ops->send_cprb(pref_zq, xcRB, &ap_msg);
@@ -901,7 +902,7 @@
 				 struct ep11_target_dev *targets)
 {
 	while (target_num-- > 0) {
-		if (dev_id == targets->ap_id)
+		if (targets->ap_id == dev_id || targets->ap_id == AUTOSEL_AP)
 			return true;
 		targets++;
 	}
@@ -912,16 +913,19 @@
 				  unsigned short target_num,
 				  struct ep11_target_dev *targets)
 {
+	int card = AP_QID_CARD(dev_qid), dom = AP_QID_QUEUE(dev_qid);
+
 	while (target_num-- > 0) {
-		if (AP_MKQID(targets->ap_id, targets->dom_id) == dev_qid)
+		if ((targets->ap_id == card || targets->ap_id == AUTOSEL_AP) &&
+		    (targets->dom_id == dom || targets->dom_id == AUTOSEL_DOM))
 			return true;
 		targets++;
 	}
 	return false;
 }
 
-static long zcrypt_send_ep11_cprb(struct ap_perms *perms,
-				  struct ep11_urb *xcrb)
+static long _zcrypt_send_ep11_cprb(struct ap_perms *perms,
+				   struct ep11_urb *xcrb)
 {
 	struct zcrypt_card *zc, *pref_zc;
 	struct zcrypt_queue *zq, *pref_zq;
@@ -1026,6 +1030,12 @@
 	return rc;
 }
 
+long zcrypt_send_ep11_cprb(struct ep11_urb *xcrb)
+{
+	return _zcrypt_send_ep11_cprb(&ap_perms, xcrb);
+}
+EXPORT_SYMBOL(zcrypt_send_ep11_cprb);
+
 static long zcrypt_rng(char *buffer)
 {
 	struct zcrypt_card *zc, *pref_zc;
@@ -1216,11 +1226,12 @@
 	spin_unlock(&zcrypt_list_lock);
 }
 
-static void zcrypt_perdev_reqcnt(int reqcnt[], size_t max_adapters)
+static void zcrypt_perdev_reqcnt(u32 reqcnt[], size_t max_adapters)
 {
 	struct zcrypt_card *zc;
 	struct zcrypt_queue *zq;
 	int card;
+	u64 cnt;
 
 	memset(reqcnt, 0, sizeof(int) * max_adapters);
 	spin_lock(&zcrypt_list_lock);
@@ -1232,8 +1243,9 @@
 			    || card >= max_adapters)
 				continue;
 			spin_lock(&zq->queue->lock);
-			reqcnt[card] = zq->queue->total_request_count;
+			cnt = zq->queue->total_request_count;
 			spin_unlock(&zq->queue->lock);
+			reqcnt[card] = (cnt < UINT_MAX) ? (u32) cnt : UINT_MAX;
 		}
 	}
 	local_bh_enable();
@@ -1366,12 +1378,12 @@
 		if (copy_from_user(&xcrb, uxcrb, sizeof(xcrb)))
 			return -EFAULT;
 		do {
-			rc = zcrypt_send_ep11_cprb(perms, &xcrb);
+			rc = _zcrypt_send_ep11_cprb(perms, &xcrb);
 		} while (rc == -EAGAIN);
 		/* on failure: retry once again after a requested rescan */
 		if ((rc == -ENODEV) && (zcrypt_process_rescan()))
 			do {
-				rc = zcrypt_send_ep11_cprb(perms, &xcrb);
+				rc = _zcrypt_send_ep11_cprb(perms, &xcrb);
 			} while (rc == -EAGAIN);
 		if (rc)
 			ZCRYPT_DBF(DBF_DEBUG, "ioctl ZSENDEP11CPRB rc=%d\n", rc);
@@ -1411,13 +1423,14 @@
 		return 0;
 	}
 	case ZCRYPT_PERDEV_REQCNT: {
-		int *reqcnt;
+		u32 *reqcnt;
 
-		reqcnt = kcalloc(AP_DEVICES, sizeof(int), GFP_KERNEL);
+		reqcnt = kcalloc(AP_DEVICES, sizeof(u32), GFP_KERNEL);
 		if (!reqcnt)
 			return -ENOMEM;
 		zcrypt_perdev_reqcnt(reqcnt, AP_DEVICES);
-		if (copy_to_user((int __user *) arg, reqcnt, sizeof(reqcnt)))
+		if (copy_to_user((int __user *) arg, reqcnt,
+				 sizeof(u32) * AP_DEVICES))
 			rc = -EFAULT;
 		kfree(reqcnt);
 		return rc;
@@ -1470,7 +1483,7 @@
 	}
 	case Z90STAT_PERDEV_REQCNT: {
 		/* the old ioctl supports only 64 adapters */
-		int reqcnt[MAX_ZDEV_CARDIDS];
+		u32 reqcnt[MAX_ZDEV_CARDIDS];
 
 		zcrypt_perdev_reqcnt(reqcnt, MAX_ZDEV_CARDIDS);
 		if (copy_to_user((int __user *) arg, reqcnt, sizeof(reqcnt)))
@@ -1885,6 +1898,7 @@
 	zcrypt_msgtype6_exit();
 	zcrypt_msgtype50_exit();
 	zcrypt_ccamisc_exit();
+	zcrypt_ep11misc_exit();
 	zcrypt_debug_exit();
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_api.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_api.h
@@ -140,6 +140,7 @@
 int zcrypt_api_init(void);
 void zcrypt_api_exit(void);
 long zcrypt_send_cprb(struct ica_xcRB *xcRB);
+long zcrypt_send_ep11_cprb(struct ep11_urb *urb);
 void zcrypt_device_status_mask_ext(struct zcrypt_device_status_ext *devstatus);
 int zcrypt_device_status_ext(int card, int queue,
 			     struct zcrypt_device_status_ext *devstatus);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_ccamisc.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_ccamisc.c
@@ -1037,8 +1037,8 @@
 	prepparm = (struct iprepparm *) prepcblk->rpl_parmb;
 
 	/* do some plausibility checks on the key block */
-	if (prepparm->kb.len < 120 + 5 * sizeof(uint16_t) ||
-	    prepparm->kb.len > 136 + 5 * sizeof(uint16_t)) {
+	if (prepparm->kb.len < 120 + 3 * sizeof(uint16_t) ||
+	    prepparm->kb.len > 136 + 3 * sizeof(uint16_t)) {
 		DEBUG_ERR("%s reply with invalid or unknown key block\n",
 			  __func__);
 		rc = -EIO;
@@ -1684,9 +1684,9 @@
 	*nr_apqns = 0;
 
 	/* fetch status of all crypto cards */
-	device_status = kmalloc_array(MAX_ZDEV_ENTRIES_EXT,
-				      sizeof(struct zcrypt_device_status_ext),
-				      GFP_KERNEL);
+	device_status = kvmalloc_array(MAX_ZDEV_ENTRIES_EXT,
+				       sizeof(struct zcrypt_device_status_ext),
+				       GFP_KERNEL);
 	if (!device_status)
 		return -ENOMEM;
 	zcrypt_device_status_mask_ext(device_status);
@@ -1754,7 +1754,7 @@
 		verify = 0;
 	}
 
-	kfree(device_status);
+	kvfree(device_status);
 	return rc;
 }
 EXPORT_SYMBOL(cca_findcard2);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_ccamisc.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_ccamisc.h
@@ -19,6 +19,7 @@
 
 /* For TOKTYPE_NON_CCA: */
 #define TOKVER_PROTECTED_KEY	0x01 /* Protected key token */
+#define TOKVER_CLEAR_KEY	0x02 /* Clear key token */
 
 /* For TOKTYPE_CCA_INTERNAL: */
 #define TOKVER_CCA_AES		0x04 /* CCA AES key token */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_cex2a.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_cex2a.c
@@ -175,6 +175,7 @@
 	zq->queue = aq;
 	zq->online = 1;
 	atomic_set(&zq->load, 0);
+	ap_queue_init_state(aq);
 	ap_queue_init_reply(aq, &zq->reply);
 	aq->request_timeout = CEX2A_CLEANUP_TIME,
 	aq->private = zq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_cex2c.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_cex2c.c
@@ -220,6 +220,7 @@
 	zq->queue = aq;
 	zq->online = 1;
 	atomic_set(&zq->load, 0);
+	ap_rapq(aq->qid);
 	rc = zcrypt_cex2c_rng_supported(aq);
 	if (rc < 0) {
 		zcrypt_queue_free(zq);
@@ -231,6 +232,7 @@
 	else
 		zq->ops = zcrypt_msgtype(MSGTYPE06_NAME,
 					 MSGTYPE06_VARIANT_NORNG);
+	ap_queue_init_state(aq);
 	ap_queue_init_reply(aq, &zq->reply);
 	aq->request_timeout = CEX2C_CLEANUP_TIME;
 	aq->private = zq;
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_cex4.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_cex4.c
@@ -19,6 +19,7 @@
 #include "zcrypt_error.h"
 #include "zcrypt_cex4.h"
 #include "zcrypt_ccamisc.h"
+#include "zcrypt_ep11misc.h"
 
 #define CEX4A_MIN_MOD_SIZE	  1	/*    8 bits	*/
 #define CEX4A_MAX_MOD_SIZE_2K	256	/* 2048 bits	*/
@@ -71,11 +72,11 @@
 MODULE_DEVICE_TABLE(ap, zcrypt_cex4_queue_ids);
 
 /*
- * CCA card addditional device attributes
+ * CCA card additional device attributes
  */
-static ssize_t serialnr_show(struct device *dev,
-			     struct device_attribute *attr,
-			     char *buf)
+static ssize_t cca_serialnr_show(struct device *dev,
+				 struct device_attribute *attr,
+				 char *buf)
 {
 	struct cca_info ci;
 	struct ap_card *ac = to_ap_card(dev);
@@ -88,23 +89,25 @@
 
 	return snprintf(buf, PAGE_SIZE, "%s\n", ci.serial);
 }
-static DEVICE_ATTR_RO(serialnr);
+
+static struct device_attribute dev_attr_cca_serialnr =
+	__ATTR(serialnr, 0444, cca_serialnr_show, NULL);
 
 static struct attribute *cca_card_attrs[] = {
-	&dev_attr_serialnr.attr,
+	&dev_attr_cca_serialnr.attr,
 	NULL,
 };
 
-static const struct attribute_group cca_card_attr_group = {
+static const struct attribute_group cca_card_attr_grp = {
 	.attrs = cca_card_attrs,
 };
 
-/*
- * CCA queue addditional device attributes
- */
-static ssize_t mkvps_show(struct device *dev,
-			  struct device_attribute *attr,
-			  char *buf)
+ /*
+  * CCA queue additional device attributes
+  */
+static ssize_t cca_mkvps_show(struct device *dev,
+			      struct device_attribute *attr,
+			      char *buf)
 {
 	int n = 0;
 	struct cca_info ci;
@@ -138,17 +141,233 @@
 
 	return n;
 }
-static DEVICE_ATTR_RO(mkvps);
+
+static struct device_attribute dev_attr_cca_mkvps =
+	__ATTR(mkvps, 0444, cca_mkvps_show, NULL);
 
 static struct attribute *cca_queue_attrs[] = {
-	&dev_attr_mkvps.attr,
+	&dev_attr_cca_mkvps.attr,
 	NULL,
 };
 
-static const struct attribute_group cca_queue_attr_group = {
+static const struct attribute_group cca_queue_attr_grp = {
 	.attrs = cca_queue_attrs,
 };
 
+/*
+ * EP11 card additional device attributes
+ */
+static ssize_t ep11_api_ordinalnr_show(struct device *dev,
+				       struct device_attribute *attr,
+				       char *buf)
+{
+	struct ep11_card_info ci;
+	struct ap_card *ac = to_ap_card(dev);
+	struct zcrypt_card *zc = ac->private;
+
+	memset(&ci, 0, sizeof(ci));
+
+	ep11_get_card_info(ac->id, &ci, zc->online);
+
+	if (ci.API_ord_nr > 0)
+		return snprintf(buf, PAGE_SIZE, "%u\n", ci.API_ord_nr);
+	else
+		return snprintf(buf, PAGE_SIZE, "\n");
+}
+
+static struct device_attribute dev_attr_ep11_api_ordinalnr =
+	__ATTR(API_ordinalnr, 0444, ep11_api_ordinalnr_show, NULL);
+
+static ssize_t ep11_fw_version_show(struct device *dev,
+				    struct device_attribute *attr,
+				    char *buf)
+{
+	struct ep11_card_info ci;
+	struct ap_card *ac = to_ap_card(dev);
+	struct zcrypt_card *zc = ac->private;
+
+	memset(&ci, 0, sizeof(ci));
+
+	ep11_get_card_info(ac->id, &ci, zc->online);
+
+	if (ci.FW_version > 0)
+		return snprintf(buf, PAGE_SIZE, "%d.%d\n",
+				(int)(ci.FW_version >> 8),
+				(int)(ci.FW_version & 0xFF));
+	else
+		return snprintf(buf, PAGE_SIZE, "\n");
+}
+
+static struct device_attribute dev_attr_ep11_fw_version =
+	__ATTR(FW_version, 0444, ep11_fw_version_show, NULL);
+
+static ssize_t ep11_serialnr_show(struct device *dev,
+				  struct device_attribute *attr,
+				  char *buf)
+{
+	struct ep11_card_info ci;
+	struct ap_card *ac = to_ap_card(dev);
+	struct zcrypt_card *zc = ac->private;
+
+	memset(&ci, 0, sizeof(ci));
+
+	ep11_get_card_info(ac->id, &ci, zc->online);
+
+	if (ci.serial[0])
+		return snprintf(buf, PAGE_SIZE, "%16.16s\n", ci.serial);
+	else
+		return snprintf(buf, PAGE_SIZE, "\n");
+}
+
+static struct device_attribute dev_attr_ep11_serialnr =
+	__ATTR(serialnr, 0444, ep11_serialnr_show, NULL);
+
+static const struct {
+	int	    mode_bit;
+	const char *mode_txt;
+} ep11_op_modes[] = {
+	{ 0, "FIPS2009" },
+	{ 1, "BSI2009" },
+	{ 2, "FIPS2011" },
+	{ 3, "BSI2011" },
+	{ 6, "BSICC2017" },
+	{ 0, NULL }
+};
+
+static ssize_t ep11_card_op_modes_show(struct device *dev,
+				       struct device_attribute *attr,
+				       char *buf)
+{
+	int i, n = 0;
+	struct ep11_card_info ci;
+	struct ap_card *ac = to_ap_card(dev);
+	struct zcrypt_card *zc = ac->private;
+
+	memset(&ci, 0, sizeof(ci));
+
+	ep11_get_card_info(ac->id, &ci, zc->online);
+
+	for (i = 0; ep11_op_modes[i].mode_txt; i++) {
+		if (ci.op_mode & (1 << ep11_op_modes[i].mode_bit)) {
+			if (n > 0)
+				buf[n++] = ' ';
+			n += snprintf(buf + n, PAGE_SIZE - n,
+				      "%s", ep11_op_modes[i].mode_txt);
+		}
+	}
+	n += snprintf(buf + n, PAGE_SIZE - n, "\n");
+
+	return n;
+}
+
+static struct device_attribute dev_attr_ep11_card_op_modes =
+	__ATTR(op_modes, 0444, ep11_card_op_modes_show, NULL);
+
+static struct attribute *ep11_card_attrs[] = {
+	&dev_attr_ep11_api_ordinalnr.attr,
+	&dev_attr_ep11_fw_version.attr,
+	&dev_attr_ep11_serialnr.attr,
+	&dev_attr_ep11_card_op_modes.attr,
+	NULL,
+};
+
+static const struct attribute_group ep11_card_attr_grp = {
+	.attrs = ep11_card_attrs,
+};
+
+/*
+ * EP11 queue additional device attributes
+ */
+
+static ssize_t ep11_mkvps_show(struct device *dev,
+			       struct device_attribute *attr,
+			       char *buf)
+{
+	int n = 0;
+	struct ep11_domain_info di;
+	struct zcrypt_queue *zq = to_ap_queue(dev)->private;
+	static const char * const cwk_state[] = { "invalid", "valid" };
+	static const char * const nwk_state[] = { "empty", "uncommitted",
+						  "committed" };
+
+	memset(&di, 0, sizeof(di));
+
+	if (zq->online)
+		ep11_get_domain_info(AP_QID_CARD(zq->queue->qid),
+				     AP_QID_QUEUE(zq->queue->qid),
+				     &di);
+
+	if (di.cur_wk_state == '0') {
+		n = snprintf(buf, PAGE_SIZE, "WK CUR: %s -\n",
+			     cwk_state[di.cur_wk_state - '0']);
+	} else if (di.cur_wk_state == '1') {
+		n = snprintf(buf, PAGE_SIZE, "WK CUR: %s 0x",
+			     cwk_state[di.cur_wk_state - '0']);
+		bin2hex(buf + n, di.cur_wkvp, sizeof(di.cur_wkvp));
+		n += 2 * sizeof(di.cur_wkvp);
+		n += snprintf(buf + n, PAGE_SIZE - n, "\n");
+	} else
+		n = snprintf(buf, PAGE_SIZE, "WK CUR: - -\n");
+
+	if (di.new_wk_state == '0') {
+		n += snprintf(buf + n, PAGE_SIZE - n, "WK NEW: %s -\n",
+			      nwk_state[di.new_wk_state - '0']);
+	} else if (di.new_wk_state >= '1' && di.new_wk_state <= '2') {
+		n += snprintf(buf + n, PAGE_SIZE - n, "WK NEW: %s 0x",
+			      nwk_state[di.new_wk_state - '0']);
+		bin2hex(buf + n, di.new_wkvp, sizeof(di.new_wkvp));
+		n += 2 * sizeof(di.new_wkvp);
+		n += snprintf(buf + n, PAGE_SIZE - n, "\n");
+	} else
+		n += snprintf(buf + n, PAGE_SIZE - n, "WK NEW: - -\n");
+
+	return n;
+}
+
+static struct device_attribute dev_attr_ep11_mkvps =
+	__ATTR(mkvps, 0444, ep11_mkvps_show, NULL);
+
+static ssize_t ep11_queue_op_modes_show(struct device *dev,
+					struct device_attribute *attr,
+					char *buf)
+{
+	int i, n = 0;
+	struct ep11_domain_info di;
+	struct zcrypt_queue *zq = to_ap_queue(dev)->private;
+
+	memset(&di, 0, sizeof(di));
+
+	if (zq->online)
+		ep11_get_domain_info(AP_QID_CARD(zq->queue->qid),
+				     AP_QID_QUEUE(zq->queue->qid),
+				     &di);
+
+	for (i = 0; ep11_op_modes[i].mode_txt; i++) {
+		if (di.op_mode & (1 << ep11_op_modes[i].mode_bit)) {
+			if (n > 0)
+				buf[n++] = ' ';
+			n += snprintf(buf + n, PAGE_SIZE - n,
+				      "%s", ep11_op_modes[i].mode_txt);
+		}
+	}
+	n += snprintf(buf + n, PAGE_SIZE - n, "\n");
+
+	return n;
+}
+
+static struct device_attribute dev_attr_ep11_queue_op_modes =
+	__ATTR(op_modes, 0444, ep11_queue_op_modes_show, NULL);
+
+static struct attribute *ep11_queue_attrs[] = {
+	&dev_attr_ep11_mkvps.attr,
+	&dev_attr_ep11_queue_op_modes.attr,
+	NULL,
+};
+
+static const struct attribute_group ep11_queue_attr_grp = {
+	.attrs = ep11_queue_attrs,
+};
+
 /**
  * Probe function for CEX4/CEX5/CEX6/CEX7 card device. It always
  * accepts the AP device since the bus_match already checked
@@ -313,7 +532,12 @@
 
 	if (ap_test_bit(&ac->functions, AP_FUNC_COPRO)) {
 		rc = sysfs_create_group(&ap_dev->device.kobj,
-					&cca_card_attr_group);
+					&cca_card_attr_grp);
+		if (rc)
+			zcrypt_card_unregister(zc);
+	} else if (ap_test_bit(&ac->functions, AP_FUNC_EP11)) {
+		rc = sysfs_create_group(&ap_dev->device.kobj,
+					&ep11_card_attr_grp);
 		if (rc)
 			zcrypt_card_unregister(zc);
 	}
@@ -332,7 +556,9 @@
 	struct zcrypt_card *zc = ac->private;
 
 	if (ap_test_bit(&ac->functions, AP_FUNC_COPRO))
-		sysfs_remove_group(&ap_dev->device.kobj, &cca_card_attr_group);
+		sysfs_remove_group(&ap_dev->device.kobj, &cca_card_attr_grp);
+	else if (ap_test_bit(&ac->functions, AP_FUNC_EP11))
+		sysfs_remove_group(&ap_dev->device.kobj, &ep11_card_attr_grp);
 	if (zc)
 		zcrypt_card_unregister(zc);
 }
@@ -381,6 +607,7 @@
 	zq->queue = aq;
 	zq->online = 1;
 	atomic_set(&zq->load, 0);
+	ap_queue_init_state(aq);
 	ap_queue_init_reply(aq, &zq->reply);
 	aq->request_timeout = CEX4_CLEANUP_TIME,
 	aq->private = zq;
@@ -393,7 +620,12 @@
 
 	if (ap_test_bit(&aq->card->functions, AP_FUNC_COPRO)) {
 		rc = sysfs_create_group(&ap_dev->device.kobj,
-					&cca_queue_attr_group);
+					&cca_queue_attr_grp);
+		if (rc)
+			zcrypt_queue_unregister(zq);
+	} else if (ap_test_bit(&aq->card->functions, AP_FUNC_EP11)) {
+		rc = sysfs_create_group(&ap_dev->device.kobj,
+					&ep11_queue_attr_grp);
 		if (rc)
 			zcrypt_queue_unregister(zq);
 	}
@@ -412,7 +644,9 @@
 	struct zcrypt_queue *zq = aq->private;
 
 	if (ap_test_bit(&aq->card->functions, AP_FUNC_COPRO))
-		sysfs_remove_group(&ap_dev->device.kobj, &cca_queue_attr_group);
+		sysfs_remove_group(&ap_dev->device.kobj, &cca_queue_attr_grp);
+	else if (ap_test_bit(&aq->card->functions, AP_FUNC_EP11))
+		sysfs_remove_group(&ap_dev->device.kobj, &ep11_queue_attr_grp);
 	if (zq)
 		zcrypt_queue_unregister(zq);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_ep11misc.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_ep11misc.c
@@ -0,0 +1,1293 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ *  Copyright IBM Corp. 2019
+ *  Author(s): Harald Freudenberger <freude@linux.ibm.com>
+ *
+ *  Collection of EP11 misc functions used by zcrypt and pkey
+ */
+
+#define KMSG_COMPONENT "zcrypt"
+#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/random.h>
+#include <asm/zcrypt.h>
+#include <asm/pkey.h>
+
+#include "ap_bus.h"
+#include "zcrypt_api.h"
+#include "zcrypt_debug.h"
+#include "zcrypt_msgtype6.h"
+#include "zcrypt_ep11misc.h"
+#include "zcrypt_ccamisc.h"
+
+#define DEBUG_DBG(...)	ZCRYPT_DBF(DBF_DEBUG, ##__VA_ARGS__)
+#define DEBUG_INFO(...) ZCRYPT_DBF(DBF_INFO, ##__VA_ARGS__)
+#define DEBUG_WARN(...) ZCRYPT_DBF(DBF_WARN, ##__VA_ARGS__)
+#define DEBUG_ERR(...)	ZCRYPT_DBF(DBF_ERR, ##__VA_ARGS__)
+
+/* default iv used here */
+static const u8 def_iv[16] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+			       0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff };
+
+/* ep11 card info cache */
+struct card_list_entry {
+	struct list_head list;
+	u16 cardnr;
+	struct ep11_card_info info;
+};
+static LIST_HEAD(card_list);
+static DEFINE_SPINLOCK(card_list_lock);
+
+static int card_cache_fetch(u16 cardnr, struct ep11_card_info *ci)
+{
+	int rc = -ENOENT;
+	struct card_list_entry *ptr;
+
+	spin_lock_bh(&card_list_lock);
+	list_for_each_entry(ptr, &card_list, list) {
+		if (ptr->cardnr == cardnr) {
+			memcpy(ci, &ptr->info, sizeof(*ci));
+			rc = 0;
+			break;
+		}
+	}
+	spin_unlock_bh(&card_list_lock);
+
+	return rc;
+}
+
+static void card_cache_update(u16 cardnr, const struct ep11_card_info *ci)
+{
+	int found = 0;
+	struct card_list_entry *ptr;
+
+	spin_lock_bh(&card_list_lock);
+	list_for_each_entry(ptr, &card_list, list) {
+		if (ptr->cardnr == cardnr) {
+			memcpy(&ptr->info, ci, sizeof(*ci));
+			found = 1;
+			break;
+		}
+	}
+	if (!found) {
+		ptr = kmalloc(sizeof(*ptr), GFP_ATOMIC);
+		if (!ptr) {
+			spin_unlock_bh(&card_list_lock);
+			return;
+		}
+		ptr->cardnr = cardnr;
+		memcpy(&ptr->info, ci, sizeof(*ci));
+		list_add(&ptr->list, &card_list);
+	}
+	spin_unlock_bh(&card_list_lock);
+}
+
+static void card_cache_scrub(u16 cardnr)
+{
+	struct card_list_entry *ptr;
+
+	spin_lock_bh(&card_list_lock);
+	list_for_each_entry(ptr, &card_list, list) {
+		if (ptr->cardnr == cardnr) {
+			list_del(&ptr->list);
+			kfree(ptr);
+			break;
+		}
+	}
+	spin_unlock_bh(&card_list_lock);
+}
+
+static void __exit card_cache_free(void)
+{
+	struct card_list_entry *ptr, *pnext;
+
+	spin_lock_bh(&card_list_lock);
+	list_for_each_entry_safe(ptr, pnext, &card_list, list) {
+		list_del(&ptr->list);
+		kfree(ptr);
+	}
+	spin_unlock_bh(&card_list_lock);
+}
+
+/*
+ * Simple check if the key blob is a valid EP11 secure AES key.
+ */
+int ep11_check_aeskeyblob(debug_info_t *dbg, int dbflvl,
+			  const u8 *key, int keybitsize,
+			  int checkcpacfexport)
+{
+	struct ep11keyblob *kb = (struct ep11keyblob *) key;
+
+#define DBF(...) debug_sprintf_event(dbg, dbflvl, ##__VA_ARGS__)
+
+	if (kb->head.type != TOKTYPE_NON_CCA) {
+		if (dbg)
+			DBF("%s key check failed, type 0x%02x != 0x%02x\n",
+			    __func__, (int) kb->head.type, TOKTYPE_NON_CCA);
+		return -EINVAL;
+	}
+	if (kb->head.version != TOKVER_EP11_AES) {
+		if (dbg)
+			DBF("%s key check failed, version 0x%02x != 0x%02x\n",
+			    __func__, (int) kb->head.version, TOKVER_EP11_AES);
+		return -EINVAL;
+	}
+	if (kb->version != EP11_STRUCT_MAGIC) {
+		if (dbg)
+			DBF("%s key check failed, magic 0x%04x != 0x%04x\n",
+			    __func__, (int) kb->version, EP11_STRUCT_MAGIC);
+		return -EINVAL;
+	}
+	switch (kb->head.keybitlen) {
+	case 128:
+	case 192:
+	case 256:
+		break;
+	default:
+		if (dbg)
+			DBF("%s key check failed, keybitlen %d invalid\n",
+			    __func__, (int) kb->head.keybitlen);
+		return -EINVAL;
+	}
+	if (keybitsize > 0 && keybitsize != (int) kb->head.keybitlen) {
+		DBF("%s key check failed, keybitsize %d\n",
+		    __func__, keybitsize);
+		return -EINVAL;
+	}
+	if (checkcpacfexport && !(kb->attr & EP11_BLOB_PKEY_EXTRACTABLE)) {
+		if (dbg)
+			DBF("%s key check failed, PKEY_EXTRACTABLE is 0\n",
+			    __func__);
+		return -EINVAL;
+	}
+#undef DBF
+
+	return 0;
+}
+EXPORT_SYMBOL(ep11_check_aeskeyblob);
+
+/*
+ * Helper function which calls zcrypt_send_ep11_cprb with
+ * memory management segment adjusted to kernel space
+ * so that the copy_from_user called within this
+ * function do in fact copy from kernel space.
+ */
+static inline int _zcrypt_send_ep11_cprb(struct ep11_urb *urb)
+{
+	int rc;
+	mm_segment_t old_fs = get_fs();
+
+	set_fs(KERNEL_DS);
+	rc = zcrypt_send_ep11_cprb(urb);
+	set_fs(old_fs);
+
+	return rc;
+}
+
+/*
+ * Allocate and prepare ep11 cprb plus additional payload.
+ */
+static inline struct ep11_cprb *alloc_cprb(size_t payload_len)
+{
+	size_t len = sizeof(struct ep11_cprb) + payload_len;
+	struct ep11_cprb *cprb;
+
+	cprb = kmalloc(len, GFP_KERNEL);
+	if (!cprb)
+		return NULL;
+
+	memset(cprb, 0, len);
+	cprb->cprb_len = sizeof(struct ep11_cprb);
+	cprb->cprb_ver_id = 0x04;
+	memcpy(cprb->func_id, "T4", 2);
+	cprb->ret_code = 0xFFFFFFFF;
+	cprb->payload_len = payload_len;
+
+	return cprb;
+}
+
+/*
+ * Some helper functions related to ASN1 encoding.
+ * Limited to length info <= 2 byte.
+ */
+
+#define ASN1TAGLEN(x) (2 + (x) + ((x) > 127 ? 1 : 0) + ((x) > 255 ? 1 : 0))
+
+static int asn1tag_write(u8 *ptr, u8 tag, const u8 *pvalue, u16 valuelen)
+{
+	ptr[0] = tag;
+	if (valuelen > 255) {
+		ptr[1] = 0x82;
+		*((u16 *)(ptr + 2)) = valuelen;
+		memcpy(ptr + 4, pvalue, valuelen);
+		return 4 + valuelen;
+	}
+	if (valuelen > 127) {
+		ptr[1] = 0x81;
+		ptr[2] = (u8) valuelen;
+		memcpy(ptr + 3, pvalue, valuelen);
+		return 3 + valuelen;
+	}
+	ptr[1] = (u8) valuelen;
+	memcpy(ptr + 2, pvalue, valuelen);
+	return 2 + valuelen;
+}
+
+/* EP11 payload > 127 bytes starts with this struct */
+struct pl_head {
+	u8  tag;
+	u8  lenfmt;
+	u16 len;
+	u8  func_tag;
+	u8  func_len;
+	u32 func;
+	u8  dom_tag;
+	u8  dom_len;
+	u32 dom;
+} __packed;
+
+/* prep ep11 payload head helper function */
+static inline void prep_head(struct pl_head *h,
+			     size_t pl_size, int api, int func)
+{
+	h->tag = 0x30;
+	h->lenfmt = 0x82;
+	h->len = pl_size - 4;
+	h->func_tag = 0x04;
+	h->func_len = sizeof(u32);
+	h->func = (api << 16) + func;
+	h->dom_tag = 0x04;
+	h->dom_len = sizeof(u32);
+}
+
+/* prep urb helper function */
+static inline void prep_urb(struct ep11_urb *u,
+			    struct ep11_target_dev *t, int nt,
+			    struct ep11_cprb *req, size_t req_len,
+			    struct ep11_cprb *rep, size_t rep_len)
+{
+	u->targets = (u8 __user *) t;
+	u->targets_num = nt;
+	u->req = (u8 __user *) req;
+	u->req_len = req_len;
+	u->resp = (u8 __user *) rep;
+	u->resp_len = rep_len;
+}
+
+/* Check ep11 reply payload, return 0 or suggested errno value. */
+static int check_reply_pl(const u8 *pl, const char *func)
+{
+	int len;
+	u32 ret;
+
+	/* start tag */
+	if (*pl++ != 0x30) {
+		DEBUG_ERR("%s reply start tag mismatch\n", func);
+		return -EIO;
+	}
+
+	/* payload length format */
+	if (*pl < 127) {
+		len = *pl;
+		pl++;
+	} else if (*pl == 0x81) {
+		pl++;
+		len = *pl;
+		pl++;
+	} else if (*pl == 0x82) {
+		pl++;
+		len = *((u16 *)pl);
+		pl += 2;
+	} else {
+		DEBUG_ERR("%s reply start tag lenfmt mismatch 0x%02hhx\n",
+			  func, *pl);
+		return -EIO;
+	}
+
+	/* len should cover at least 3 fields with 32 bit value each */
+	if (len < 3 * 6) {
+		DEBUG_ERR("%s reply length %d too small\n", func, len);
+		return -EIO;
+	}
+
+	/* function tag, length and value */
+	if (pl[0] != 0x04 || pl[1] != 0x04) {
+		DEBUG_ERR("%s function tag or length mismatch\n", func);
+		return -EIO;
+	}
+	pl += 6;
+
+	/* dom tag, length and value */
+	if (pl[0] != 0x04 || pl[1] != 0x04) {
+		DEBUG_ERR("%s dom tag or length mismatch\n", func);
+		return -EIO;
+	}
+	pl += 6;
+
+	/* return value tag, length and value */
+	if (pl[0] != 0x04 || pl[1] != 0x04) {
+		DEBUG_ERR("%s return value tag or length mismatch\n", func);
+		return -EIO;
+	}
+	pl += 2;
+	ret = *((u32 *)pl);
+	if (ret != 0) {
+		DEBUG_ERR("%s return value 0x%04x != 0\n", func, ret);
+		return -EIO;
+	}
+
+	return 0;
+}
+
+
+/*
+ * Helper function which does an ep11 query with given query type.
+ */
+static int ep11_query_info(u16 cardnr, u16 domain, u32 query_type,
+			   size_t buflen, u8 *buf)
+{
+	struct ep11_info_req_pl {
+		struct pl_head head;
+		u8  query_type_tag;
+		u8  query_type_len;
+		u32 query_type;
+		u8  query_subtype_tag;
+		u8  query_subtype_len;
+		u32 query_subtype;
+	} __packed * req_pl;
+	struct ep11_info_rep_pl {
+		struct pl_head head;
+		u8  rc_tag;
+		u8  rc_len;
+		u32 rc;
+		u8  data_tag;
+		u8  data_lenfmt;
+		u16 data_len;
+	} __packed * rep_pl;
+	struct ep11_cprb *req = NULL, *rep = NULL;
+	struct ep11_target_dev target;
+	struct ep11_urb *urb = NULL;
+	int api = 1, rc = -ENOMEM;
+
+	/* request cprb and payload */
+	req = alloc_cprb(sizeof(struct ep11_info_req_pl));
+	if (!req)
+		goto out;
+	req_pl = (struct ep11_info_req_pl *) (((u8 *) req) + sizeof(*req));
+	prep_head(&req_pl->head, sizeof(*req_pl), api, 38); /* get xcp info */
+	req_pl->query_type_tag = 0x04;
+	req_pl->query_type_len = sizeof(u32);
+	req_pl->query_type = query_type;
+	req_pl->query_subtype_tag = 0x04;
+	req_pl->query_subtype_len = sizeof(u32);
+
+	/* reply cprb and payload */
+	rep = alloc_cprb(sizeof(struct ep11_info_rep_pl) + buflen);
+	if (!rep)
+		goto out;
+	rep_pl = (struct ep11_info_rep_pl *) (((u8 *) rep) + sizeof(*rep));
+
+	/* urb and target */
+	urb = kmalloc(sizeof(struct ep11_urb), GFP_KERNEL);
+	if (!urb)
+		goto out;
+	target.ap_id = cardnr;
+	target.dom_id = domain;
+	prep_urb(urb, &target, 1,
+		 req, sizeof(*req) + sizeof(*req_pl),
+		 rep, sizeof(*rep) + sizeof(*rep_pl) + buflen);
+
+	rc = _zcrypt_send_ep11_cprb(urb);
+	if (rc) {
+		DEBUG_ERR(
+			"%s zcrypt_send_ep11_cprb(card=%d dom=%d) failed, rc=%d\n",
+			__func__, (int) cardnr, (int) domain, rc);
+		goto out;
+	}
+
+	rc = check_reply_pl((u8 *)rep_pl, __func__);
+	if (rc)
+		goto out;
+	if (rep_pl->data_tag != 0x04 || rep_pl->data_lenfmt != 0x82) {
+		DEBUG_ERR("%s unknown reply data format\n", __func__);
+		rc = -EIO;
+		goto out;
+	}
+	if (rep_pl->data_len > buflen) {
+		DEBUG_ERR("%s mismatch between reply data len and buffer len\n",
+			  __func__);
+		rc = -ENOSPC;
+		goto out;
+	}
+
+	memcpy(buf, ((u8 *) rep_pl) + sizeof(*rep_pl), rep_pl->data_len);
+
+out:
+	kfree(req);
+	kfree(rep);
+	kfree(urb);
+	return rc;
+}
+
+/*
+ * Provide information about an EP11 card.
+ */
+int ep11_get_card_info(u16 card, struct ep11_card_info *info, int verify)
+{
+	int rc;
+	struct ep11_module_query_info {
+		u32 API_ord_nr;
+		u32 firmware_id;
+		u8  FW_major_vers;
+		u8  FW_minor_vers;
+		u8  CSP_major_vers;
+		u8  CSP_minor_vers;
+		u8  fwid[32];
+		u8  xcp_config_hash[32];
+		u8  CSP_config_hash[32];
+		u8  serial[16];
+		u8  module_date_time[16];
+		u64 op_mode;
+		u32 PKCS11_flags;
+		u32 ext_flags;
+		u32 domains;
+		u32 sym_state_bytes;
+		u32 digest_state_bytes;
+		u32 pin_blob_bytes;
+		u32 SPKI_bytes;
+		u32 priv_key_blob_bytes;
+		u32 sym_blob_bytes;
+		u32 max_payload_bytes;
+		u32 CP_profile_bytes;
+		u32 max_CP_index;
+	} __packed * pmqi = NULL;
+
+	rc = card_cache_fetch(card, info);
+	if (rc || verify) {
+		pmqi = kmalloc(sizeof(*pmqi), GFP_KERNEL);
+		if (!pmqi)
+			return -ENOMEM;
+		rc = ep11_query_info(card, AUTOSEL_DOM,
+				     0x01 /* module info query */,
+				     sizeof(*pmqi), (u8 *) pmqi);
+		if (rc) {
+			if (rc == -ENODEV)
+				card_cache_scrub(card);
+			goto out;
+		}
+		memset(info, 0, sizeof(*info));
+		info->API_ord_nr = pmqi->API_ord_nr;
+		info->FW_version =
+			(pmqi->FW_major_vers << 8) + pmqi->FW_minor_vers;
+		memcpy(info->serial, pmqi->serial, sizeof(info->serial));
+		info->op_mode = pmqi->op_mode;
+		card_cache_update(card, info);
+	}
+
+out:
+	kfree(pmqi);
+	return rc;
+}
+EXPORT_SYMBOL(ep11_get_card_info);
+
+/*
+ * Provide information about a domain within an EP11 card.
+ */
+int ep11_get_domain_info(u16 card, u16 domain, struct ep11_domain_info *info)
+{
+	int rc;
+	struct ep11_domain_query_info {
+		u32 dom_index;
+		u8  cur_WK_VP[32];
+		u8  new_WK_VP[32];
+		u32 dom_flags;
+		u64 op_mode;
+	} __packed * p_dom_info;
+
+	p_dom_info = kmalloc(sizeof(*p_dom_info), GFP_KERNEL);
+	if (!p_dom_info)
+		return -ENOMEM;
+
+	rc = ep11_query_info(card, domain, 0x03 /* domain info query */,
+			     sizeof(*p_dom_info), (u8 *) p_dom_info);
+	if (rc)
+		goto out;
+
+	memset(info, 0, sizeof(*info));
+	info->cur_wk_state = '0';
+	info->new_wk_state = '0';
+	if (p_dom_info->dom_flags & 0x10 /* left imprint mode */) {
+		if (p_dom_info->dom_flags & 0x02 /* cur wk valid */) {
+			info->cur_wk_state = '1';
+			memcpy(info->cur_wkvp, p_dom_info->cur_WK_VP, 32);
+		}
+		if (p_dom_info->dom_flags & 0x04 /* new wk present */
+		    || p_dom_info->dom_flags & 0x08 /* new wk committed */) {
+			info->new_wk_state =
+				p_dom_info->dom_flags & 0x08 ? '2' : '1';
+			memcpy(info->new_wkvp, p_dom_info->new_WK_VP, 32);
+		}
+	}
+	info->op_mode = p_dom_info->op_mode;
+
+out:
+	kfree(p_dom_info);
+	return rc;
+}
+EXPORT_SYMBOL(ep11_get_domain_info);
+
+/*
+ * Default EP11 AES key generate attributes, used when no keygenflags given:
+ * XCP_BLOB_ENCRYPT | XCP_BLOB_DECRYPT | XCP_BLOB_PROTKEY_EXTRACTABLE
+ */
+#define KEY_ATTR_DEFAULTS 0x00200c00
+
+int ep11_genaeskey(u16 card, u16 domain, u32 keybitsize, u32 keygenflags,
+		   u8 *keybuf, size_t *keybufsize)
+{
+	struct keygen_req_pl {
+		struct pl_head head;
+		u8  var_tag;
+		u8  var_len;
+		u32 var;
+		u8  keybytes_tag;
+		u8  keybytes_len;
+		u32 keybytes;
+		u8  mech_tag;
+		u8  mech_len;
+		u32 mech;
+		u8  attr_tag;
+		u8  attr_len;
+		u32 attr_header;
+		u32 attr_bool_mask;
+		u32 attr_bool_bits;
+		u32 attr_val_len_type;
+		u32 attr_val_len_value;
+		u8  pin_tag;
+		u8  pin_len;
+	} __packed * req_pl;
+	struct keygen_rep_pl {
+		struct pl_head head;
+		u8  rc_tag;
+		u8  rc_len;
+		u32 rc;
+		u8  data_tag;
+		u8  data_lenfmt;
+		u16 data_len;
+		u8  data[512];
+	} __packed * rep_pl;
+	struct ep11_cprb *req = NULL, *rep = NULL;
+	struct ep11_target_dev target;
+	struct ep11_urb *urb = NULL;
+	struct ep11keyblob *kb;
+	int api, rc = -ENOMEM;
+
+	switch (keybitsize) {
+	case 128:
+	case 192:
+	case 256:
+		break;
+	default:
+		DEBUG_ERR(
+			"%s unknown/unsupported keybitsize %d\n",
+			__func__, keybitsize);
+		rc = -EINVAL;
+		goto out;
+	}
+
+	/* request cprb and payload */
+	req = alloc_cprb(sizeof(struct keygen_req_pl));
+	if (!req)
+		goto out;
+	req_pl = (struct keygen_req_pl *) (((u8 *) req) + sizeof(*req));
+	api = (!keygenflags || keygenflags & 0x00200000) ? 4 : 1;
+	prep_head(&req_pl->head, sizeof(*req_pl), api, 21); /* GenerateKey */
+	req_pl->var_tag = 0x04;
+	req_pl->var_len = sizeof(u32);
+	req_pl->keybytes_tag = 0x04;
+	req_pl->keybytes_len = sizeof(u32);
+	req_pl->keybytes = keybitsize / 8;
+	req_pl->mech_tag = 0x04;
+	req_pl->mech_len = sizeof(u32);
+	req_pl->mech = 0x00001080; /* CKM_AES_KEY_GEN */
+	req_pl->attr_tag = 0x04;
+	req_pl->attr_len = 5 * sizeof(u32);
+	req_pl->attr_header = 0x10010000;
+	req_pl->attr_bool_mask = keygenflags ? keygenflags : KEY_ATTR_DEFAULTS;
+	req_pl->attr_bool_bits = keygenflags ? keygenflags : KEY_ATTR_DEFAULTS;
+	req_pl->attr_val_len_type = 0x00000161; /* CKA_VALUE_LEN */
+	req_pl->attr_val_len_value = keybitsize / 8;
+	req_pl->pin_tag = 0x04;
+
+	/* reply cprb and payload */
+	rep = alloc_cprb(sizeof(struct keygen_rep_pl));
+	if (!rep)
+		goto out;
+	rep_pl = (struct keygen_rep_pl *) (((u8 *) rep) + sizeof(*rep));
+
+	/* urb and target */
+	urb = kmalloc(sizeof(struct ep11_urb), GFP_KERNEL);
+	if (!urb)
+		goto out;
+	target.ap_id = card;
+	target.dom_id = domain;
+	prep_urb(urb, &target, 1,
+		 req, sizeof(*req) + sizeof(*req_pl),
+		 rep, sizeof(*rep) + sizeof(*rep_pl));
+
+	rc = _zcrypt_send_ep11_cprb(urb);
+	if (rc) {
+		DEBUG_ERR(
+			"%s zcrypt_send_ep11_cprb(card=%d dom=%d) failed, rc=%d\n",
+			__func__, (int) card, (int) domain, rc);
+		goto out;
+	}
+
+	rc = check_reply_pl((u8 *)rep_pl, __func__);
+	if (rc)
+		goto out;
+	if (rep_pl->data_tag != 0x04 || rep_pl->data_lenfmt != 0x82) {
+		DEBUG_ERR("%s unknown reply data format\n", __func__);
+		rc = -EIO;
+		goto out;
+	}
+	if (rep_pl->data_len > *keybufsize) {
+		DEBUG_ERR("%s mismatch reply data len / key buffer len\n",
+			  __func__);
+		rc = -ENOSPC;
+		goto out;
+	}
+
+	/* copy key blob and set header values */
+	memcpy(keybuf, rep_pl->data, rep_pl->data_len);
+	*keybufsize = rep_pl->data_len;
+	kb = (struct ep11keyblob *) keybuf;
+	kb->head.type = TOKTYPE_NON_CCA;
+	kb->head.len = rep_pl->data_len;
+	kb->head.version = TOKVER_EP11_AES;
+	kb->head.keybitlen = keybitsize;
+
+out:
+	kfree(req);
+	kfree(rep);
+	kfree(urb);
+	return rc;
+}
+EXPORT_SYMBOL(ep11_genaeskey);
+
+static int ep11_cryptsingle(u16 card, u16 domain,
+			    u16 mode, u32 mech, const u8 *iv,
+			    const u8 *key, size_t keysize,
+			    const u8 *inbuf, size_t inbufsize,
+			    u8 *outbuf, size_t *outbufsize)
+{
+	struct crypt_req_pl {
+		struct pl_head head;
+		u8  var_tag;
+		u8  var_len;
+		u32 var;
+		u8  mech_tag;
+		u8  mech_len;
+		u32 mech;
+		/*
+		 * maybe followed by iv data
+		 * followed by key tag + key blob
+		 * followed by plaintext tag + plaintext
+		 */
+	} __packed * req_pl;
+	struct crypt_rep_pl {
+		struct pl_head head;
+		u8  rc_tag;
+		u8  rc_len;
+		u32 rc;
+		u8  data_tag;
+		u8  data_lenfmt;
+		/* data follows */
+	} __packed * rep_pl;
+	struct ep11_cprb *req = NULL, *rep = NULL;
+	struct ep11_target_dev target;
+	struct ep11_urb *urb = NULL;
+	size_t req_pl_size, rep_pl_size;
+	int n, api = 1, rc = -ENOMEM;
+	u8 *p;
+
+	/* the simple asn1 coding used has length limits */
+	if (keysize > 0xFFFF || inbufsize > 0xFFFF)
+		return -EINVAL;
+
+	/* request cprb and payload */
+	req_pl_size = sizeof(struct crypt_req_pl) + (iv ? 16 : 0)
+		+ ASN1TAGLEN(keysize) + ASN1TAGLEN(inbufsize);
+	req = alloc_cprb(req_pl_size);
+	if (!req)
+		goto out;
+	req_pl = (struct crypt_req_pl *) (((u8 *) req) + sizeof(*req));
+	prep_head(&req_pl->head, req_pl_size, api, (mode ? 20 : 19));
+	req_pl->var_tag = 0x04;
+	req_pl->var_len = sizeof(u32);
+	/* mech is mech + mech params (iv here) */
+	req_pl->mech_tag = 0x04;
+	req_pl->mech_len = sizeof(u32) + (iv ? 16 : 0);
+	req_pl->mech = (mech ? mech : 0x00001085); /* CKM_AES_CBC_PAD */
+	p = ((u8 *) req_pl) + sizeof(*req_pl);
+	if (iv) {
+		memcpy(p, iv, 16);
+		p += 16;
+	}
+	/* key and input data */
+	p += asn1tag_write(p, 0x04, key, keysize);
+	p += asn1tag_write(p, 0x04, inbuf, inbufsize);
+
+	/* reply cprb and payload, assume out data size <= in data size + 32 */
+	rep_pl_size = sizeof(struct crypt_rep_pl) + ASN1TAGLEN(inbufsize + 32);
+	rep = alloc_cprb(rep_pl_size);
+	if (!rep)
+		goto out;
+	rep_pl = (struct crypt_rep_pl *) (((u8 *) rep) + sizeof(*rep));
+
+	/* urb and target */
+	urb = kmalloc(sizeof(struct ep11_urb), GFP_KERNEL);
+	if (!urb)
+		goto out;
+	target.ap_id = card;
+	target.dom_id = domain;
+	prep_urb(urb, &target, 1,
+		 req, sizeof(*req) + req_pl_size,
+		 rep, sizeof(*rep) + rep_pl_size);
+
+	rc = _zcrypt_send_ep11_cprb(urb);
+	if (rc) {
+		DEBUG_ERR(
+			"%s zcrypt_send_ep11_cprb(card=%d dom=%d) failed, rc=%d\n",
+			__func__, (int) card, (int) domain, rc);
+		goto out;
+	}
+
+	rc = check_reply_pl((u8 *)rep_pl, __func__);
+	if (rc)
+		goto out;
+	if (rep_pl->data_tag != 0x04) {
+		DEBUG_ERR("%s unknown reply data format\n", __func__);
+		rc = -EIO;
+		goto out;
+	}
+	p = ((u8 *) rep_pl) + sizeof(*rep_pl);
+	if (rep_pl->data_lenfmt <= 127)
+		n = rep_pl->data_lenfmt;
+	else if (rep_pl->data_lenfmt == 0x81)
+		n = *p++;
+	else if (rep_pl->data_lenfmt == 0x82) {
+		n = *((u16 *) p);
+		p += 2;
+	} else {
+		DEBUG_ERR("%s unknown reply data length format 0x%02hhx\n",
+			  __func__, rep_pl->data_lenfmt);
+		rc = -EIO;
+		goto out;
+	}
+	if (n > *outbufsize) {
+		DEBUG_ERR("%s mismatch reply data len %d / output buffer %zu\n",
+			  __func__, n, *outbufsize);
+		rc = -ENOSPC;
+		goto out;
+	}
+
+	memcpy(outbuf, p, n);
+	*outbufsize = n;
+
+out:
+	kfree(req);
+	kfree(rep);
+	kfree(urb);
+	return rc;
+}
+
+static int ep11_unwrapkey(u16 card, u16 domain,
+			  const u8 *kek, size_t keksize,
+			  const u8 *enckey, size_t enckeysize,
+			  u32 mech, const u8 *iv,
+			  u32 keybitsize, u32 keygenflags,
+			  u8 *keybuf, size_t *keybufsize)
+{
+	struct uw_req_pl {
+		struct pl_head head;
+		u8  attr_tag;
+		u8  attr_len;
+		u32 attr_header;
+		u32 attr_bool_mask;
+		u32 attr_bool_bits;
+		u32 attr_key_type;
+		u32 attr_key_type_value;
+		u32 attr_val_len;
+		u32 attr_val_len_value;
+		u8  mech_tag;
+		u8  mech_len;
+		u32 mech;
+		/*
+		 * maybe followed by iv data
+		 * followed by kek tag + kek blob
+		 * followed by empty mac tag
+		 * followed by empty pin tag
+		 * followed by encryted key tag + bytes
+		 */
+	} __packed * req_pl;
+	struct uw_rep_pl {
+		struct pl_head head;
+		u8  rc_tag;
+		u8  rc_len;
+		u32 rc;
+		u8  data_tag;
+		u8  data_lenfmt;
+		u16 data_len;
+		u8  data[512];
+	} __packed * rep_pl;
+	struct ep11_cprb *req = NULL, *rep = NULL;
+	struct ep11_target_dev target;
+	struct ep11_urb *urb = NULL;
+	struct ep11keyblob *kb;
+	size_t req_pl_size;
+	int api, rc = -ENOMEM;
+	u8 *p;
+
+	/* request cprb and payload */
+	req_pl_size = sizeof(struct uw_req_pl) + (iv ? 16 : 0)
+		+ ASN1TAGLEN(keksize) + 4 + ASN1TAGLEN(enckeysize);
+	req = alloc_cprb(req_pl_size);
+	if (!req)
+		goto out;
+	req_pl = (struct uw_req_pl *) (((u8 *) req) + sizeof(*req));
+	api = (!keygenflags || keygenflags & 0x00200000) ? 4 : 1;
+	prep_head(&req_pl->head, req_pl_size, api, 34); /* UnwrapKey */
+	req_pl->attr_tag = 0x04;
+	req_pl->attr_len = 7 * sizeof(u32);
+	req_pl->attr_header = 0x10020000;
+	req_pl->attr_bool_mask = keygenflags ? keygenflags : KEY_ATTR_DEFAULTS;
+	req_pl->attr_bool_bits = keygenflags ? keygenflags : KEY_ATTR_DEFAULTS;
+	req_pl->attr_key_type = 0x00000100; /* CKA_KEY_TYPE */
+	req_pl->attr_key_type_value = 0x0000001f; /* CKK_AES */
+	req_pl->attr_val_len = 0x00000161; /* CKA_VALUE_LEN */
+	req_pl->attr_val_len_value = keybitsize / 8;
+	/* mech is mech + mech params (iv here) */
+	req_pl->mech_tag = 0x04;
+	req_pl->mech_len = sizeof(u32) + (iv ? 16 : 0);
+	req_pl->mech = (mech ? mech : 0x00001085); /* CKM_AES_CBC_PAD */
+	p = ((u8 *) req_pl) + sizeof(*req_pl);
+	if (iv) {
+		memcpy(p, iv, 16);
+		p += 16;
+	}
+	/* kek */
+	p += asn1tag_write(p, 0x04, kek, keksize);
+	/* empty mac key tag */
+	*p++ = 0x04;
+	*p++ = 0;
+	/* empty pin tag */
+	*p++ = 0x04;
+	*p++ = 0;
+	/* encrytped key value tag and bytes */
+	p += asn1tag_write(p, 0x04, enckey, enckeysize);
+
+	/* reply cprb and payload */
+	rep = alloc_cprb(sizeof(struct uw_rep_pl));
+	if (!rep)
+		goto out;
+	rep_pl = (struct uw_rep_pl *) (((u8 *) rep) + sizeof(*rep));
+
+	/* urb and target */
+	urb = kmalloc(sizeof(struct ep11_urb), GFP_KERNEL);
+	if (!urb)
+		goto out;
+	target.ap_id = card;
+	target.dom_id = domain;
+	prep_urb(urb, &target, 1,
+		 req, sizeof(*req) + req_pl_size,
+		 rep, sizeof(*rep) + sizeof(*rep_pl));
+
+	rc = _zcrypt_send_ep11_cprb(urb);
+	if (rc) {
+		DEBUG_ERR(
+			"%s zcrypt_send_ep11_cprb(card=%d dom=%d) failed, rc=%d\n",
+			__func__, (int) card, (int) domain, rc);
+		goto out;
+	}
+
+	rc = check_reply_pl((u8 *)rep_pl, __func__);
+	if (rc)
+		goto out;
+	if (rep_pl->data_tag != 0x04 || rep_pl->data_lenfmt != 0x82) {
+		DEBUG_ERR("%s unknown reply data format\n", __func__);
+		rc = -EIO;
+		goto out;
+	}
+	if (rep_pl->data_len > *keybufsize) {
+		DEBUG_ERR("%s mismatch reply data len / key buffer len\n",
+			  __func__);
+		rc = -ENOSPC;
+		goto out;
+	}
+
+	/* copy key blob and set header values */
+	memcpy(keybuf, rep_pl->data, rep_pl->data_len);
+	*keybufsize = rep_pl->data_len;
+	kb = (struct ep11keyblob *) keybuf;
+	kb->head.type = TOKTYPE_NON_CCA;
+	kb->head.len = rep_pl->data_len;
+	kb->head.version = TOKVER_EP11_AES;
+	kb->head.keybitlen = keybitsize;
+
+out:
+	kfree(req);
+	kfree(rep);
+	kfree(urb);
+	return rc;
+}
+
+static int ep11_wrapkey(u16 card, u16 domain,
+			const u8 *key, size_t keysize,
+			u32 mech, const u8 *iv,
+			u8 *databuf, size_t *datasize)
+{
+	struct wk_req_pl {
+		struct pl_head head;
+		u8  var_tag;
+		u8  var_len;
+		u32 var;
+		u8  mech_tag;
+		u8  mech_len;
+		u32 mech;
+		/*
+		 * followed by iv data
+		 * followed by key tag + key blob
+		 * followed by dummy kek param
+		 * followed by dummy mac param
+		 */
+	} __packed * req_pl;
+	struct wk_rep_pl {
+		struct pl_head head;
+		u8  rc_tag;
+		u8  rc_len;
+		u32 rc;
+		u8  data_tag;
+		u8  data_lenfmt;
+		u16 data_len;
+		u8  data[512];
+	} __packed * rep_pl;
+	struct ep11_cprb *req = NULL, *rep = NULL;
+	struct ep11_target_dev target;
+	struct ep11_urb *urb = NULL;
+	struct ep11keyblob *kb;
+	size_t req_pl_size;
+	int api, rc = -ENOMEM;
+	u8 *p;
+
+	/* request cprb and payload */
+	req_pl_size = sizeof(struct wk_req_pl) + (iv ? 16 : 0)
+		+ ASN1TAGLEN(keysize) + 4;
+	req = alloc_cprb(req_pl_size);
+	if (!req)
+		goto out;
+	if (!mech || mech == 0x80060001)
+		req->flags |= 0x20; /* CPACF_WRAP needs special bit */
+	req_pl = (struct wk_req_pl *) (((u8 *) req) + sizeof(*req));
+	api = (!mech || mech == 0x80060001) ? 4 : 1; /* CKM_IBM_CPACF_WRAP */
+	prep_head(&req_pl->head, req_pl_size, api, 33); /* WrapKey */
+	req_pl->var_tag = 0x04;
+	req_pl->var_len = sizeof(u32);
+	/* mech is mech + mech params (iv here) */
+	req_pl->mech_tag = 0x04;
+	req_pl->mech_len = sizeof(u32) + (iv ? 16 : 0);
+	req_pl->mech = (mech ? mech : 0x80060001); /* CKM_IBM_CPACF_WRAP */
+	p = ((u8 *) req_pl) + sizeof(*req_pl);
+	if (iv) {
+		memcpy(p, iv, 16);
+		p += 16;
+	}
+	/* key blob */
+	p += asn1tag_write(p, 0x04, key, keysize);
+	/* maybe the key argument needs the head data cleaned out */
+	kb = (struct ep11keyblob *)(p - keysize);
+	if (kb->head.version == TOKVER_EP11_AES)
+		memset(&kb->head, 0, sizeof(kb->head));
+	/* empty kek tag */
+	*p++ = 0x04;
+	*p++ = 0;
+	/* empty mac tag */
+	*p++ = 0x04;
+	*p++ = 0;
+
+	/* reply cprb and payload */
+	rep = alloc_cprb(sizeof(struct wk_rep_pl));
+	if (!rep)
+		goto out;
+	rep_pl = (struct wk_rep_pl *) (((u8 *) rep) + sizeof(*rep));
+
+	/* urb and target */
+	urb = kmalloc(sizeof(struct ep11_urb), GFP_KERNEL);
+	if (!urb)
+		goto out;
+	target.ap_id = card;
+	target.dom_id = domain;
+	prep_urb(urb, &target, 1,
+		 req, sizeof(*req) + req_pl_size,
+		 rep, sizeof(*rep) + sizeof(*rep_pl));
+
+	rc = _zcrypt_send_ep11_cprb(urb);
+	if (rc) {
+		DEBUG_ERR(
+			"%s zcrypt_send_ep11_cprb(card=%d dom=%d) failed, rc=%d\n",
+			__func__, (int) card, (int) domain, rc);
+		goto out;
+	}
+
+	rc = check_reply_pl((u8 *)rep_pl, __func__);
+	if (rc)
+		goto out;
+	if (rep_pl->data_tag != 0x04 || rep_pl->data_lenfmt != 0x82) {
+		DEBUG_ERR("%s unknown reply data format\n", __func__);
+		rc = -EIO;
+		goto out;
+	}
+	if (rep_pl->data_len > *datasize) {
+		DEBUG_ERR("%s mismatch reply data len / data buffer len\n",
+			  __func__);
+		rc = -ENOSPC;
+		goto out;
+	}
+
+	/* copy the data from the cprb to the data buffer */
+	memcpy(databuf, rep_pl->data, rep_pl->data_len);
+	*datasize = rep_pl->data_len;
+
+out:
+	kfree(req);
+	kfree(rep);
+	kfree(urb);
+	return rc;
+}
+
+int ep11_clr2keyblob(u16 card, u16 domain, u32 keybitsize, u32 keygenflags,
+		     const u8 *clrkey, u8 *keybuf, size_t *keybufsize)
+{
+	int rc;
+	struct ep11keyblob *kb;
+	u8 encbuf[64], *kek = NULL;
+	size_t clrkeylen, keklen, encbuflen = sizeof(encbuf);
+
+	if (keybitsize == 128 || keybitsize == 192 || keybitsize == 256)
+		clrkeylen = keybitsize / 8;
+	else {
+		DEBUG_ERR(
+			"%s unknown/unsupported keybitsize %d\n",
+			__func__, keybitsize);
+		return -EINVAL;
+	}
+
+	/* allocate memory for the temp kek */
+	keklen = MAXEP11AESKEYBLOBSIZE;
+	kek = kmalloc(keklen, GFP_ATOMIC);
+	if (!kek) {
+		rc = -ENOMEM;
+		goto out;
+	}
+
+	/* Step 1: generate AES 256 bit random kek key */
+	rc = ep11_genaeskey(card, domain, 256,
+			    0x00006c00, /* EN/DECRYTP, WRAP/UNWRAP */
+			    kek, &keklen);
+	if (rc) {
+		DEBUG_ERR(
+			"%s generate kek key failed, rc=%d\n",
+			__func__, rc);
+		goto out;
+	}
+	kb = (struct ep11keyblob *) kek;
+	memset(&kb->head, 0, sizeof(kb->head));
+
+	/* Step 2: encrypt clear key value with the kek key */
+	rc = ep11_cryptsingle(card, domain, 0, 0, def_iv, kek, keklen,
+			      clrkey, clrkeylen, encbuf, &encbuflen);
+	if (rc) {
+		DEBUG_ERR(
+			"%s encrypting key value with kek key failed, rc=%d\n",
+			__func__, rc);
+		goto out;
+	}
+
+	/* Step 3: import the encrypted key value as a new key */
+	rc = ep11_unwrapkey(card, domain, kek, keklen,
+			    encbuf, encbuflen, 0, def_iv,
+			    keybitsize, 0, keybuf, keybufsize);
+	if (rc) {
+		DEBUG_ERR(
+			"%s importing key value as new key failed,, rc=%d\n",
+			__func__, rc);
+		goto out;
+	}
+
+out:
+	kfree(kek);
+	return rc;
+}
+EXPORT_SYMBOL(ep11_clr2keyblob);
+
+int ep11_key2protkey(u16 card, u16 dom, const u8 *key, size_t keylen,
+		     u8 *protkey, u32 *protkeylen, u32 *protkeytype)
+{
+	int rc = -EIO;
+	u8 *wkbuf = NULL;
+	size_t wkbuflen = 256;
+	struct wk_info {
+		u16 version;
+		u8  res1[16];
+		u32 pkeytype;
+		u32 pkeybitsize;
+		u64 pkeysize;
+		u8  res2[8];
+		u8  pkey[0];
+	} __packed * wki;
+
+	/* alloc temp working buffer */
+	wkbuf = kmalloc(wkbuflen, GFP_ATOMIC);
+	if (!wkbuf)
+		return -ENOMEM;
+
+	/* ep11 secure key -> protected key + info */
+	rc = ep11_wrapkey(card, dom, key, keylen,
+			  0, def_iv, wkbuf, &wkbuflen);
+	if (rc) {
+		DEBUG_ERR(
+			"%s rewrapping ep11 key to pkey failed, rc=%d\n",
+			__func__, rc);
+		goto out;
+	}
+	wki = (struct wk_info *) wkbuf;
+
+	/* check struct version and pkey type */
+	if (wki->version != 1 || wki->pkeytype != 1) {
+		DEBUG_ERR("%s wk info version %d or pkeytype %d mismatch.\n",
+			  __func__, (int) wki->version, (int) wki->pkeytype);
+		rc = -EIO;
+		goto out;
+	}
+
+	/* copy the tanslated protected key */
+	switch (wki->pkeysize) {
+	case 16+32:
+		/* AES 128 protected key */
+		if (protkeytype)
+			*protkeytype = PKEY_KEYTYPE_AES_128;
+		break;
+	case 24+32:
+		/* AES 192 protected key */
+		if (protkeytype)
+			*protkeytype = PKEY_KEYTYPE_AES_192;
+		break;
+	case 32+32:
+		/* AES 256 protected key */
+		if (protkeytype)
+			*protkeytype = PKEY_KEYTYPE_AES_256;
+		break;
+	default:
+		DEBUG_ERR("%s unknown/unsupported pkeysize %d\n",
+			  __func__, (int) wki->pkeysize);
+		rc = -EIO;
+		goto out;
+	}
+	memcpy(protkey, wki->pkey, wki->pkeysize);
+	if (protkeylen)
+		*protkeylen = (u32) wki->pkeysize;
+	rc = 0;
+
+out:
+	kfree(wkbuf);
+	return rc;
+}
+EXPORT_SYMBOL(ep11_key2protkey);
+
+int ep11_findcard2(u32 **apqns, u32 *nr_apqns, u16 cardnr, u16 domain,
+		   int minhwtype, int minapi, const u8 *wkvp)
+{
+	struct zcrypt_device_status_ext *device_status;
+	u32 *_apqns = NULL, _nr_apqns = 0;
+	int i, card, dom, rc = -ENOMEM;
+	struct ep11_domain_info edi;
+	struct ep11_card_info eci;
+
+	/* fetch status of all crypto cards */
+	device_status = kmalloc_array(MAX_ZDEV_ENTRIES_EXT,
+				      sizeof(struct zcrypt_device_status_ext),
+				      GFP_KERNEL);
+	if (!device_status)
+		return -ENOMEM;
+	zcrypt_device_status_mask_ext(device_status);
+
+	/* allocate 1k space for up to 256 apqns */
+	_apqns = kmalloc_array(256, sizeof(u32), GFP_KERNEL);
+	if (!_apqns) {
+		kfree(device_status);
+		return -ENOMEM;
+	}
+
+	/* walk through all the crypto apqnss */
+	for (i = 0; i < MAX_ZDEV_ENTRIES_EXT; i++) {
+		card = AP_QID_CARD(device_status[i].qid);
+		dom = AP_QID_QUEUE(device_status[i].qid);
+		/* check online state */
+		if (!device_status[i].online)
+			continue;
+		/* check for ep11 functions */
+		if (!(device_status[i].functions & 0x01))
+			continue;
+		/* check cardnr */
+		if (cardnr != 0xFFFF && card != cardnr)
+			continue;
+		/* check domain */
+		if (domain != 0xFFFF && dom != domain)
+			continue;
+		/* check min hardware type */
+		if (minhwtype && device_status[i].hwtype < minhwtype)
+			continue;
+		/* check min api version if given */
+		if (minapi > 0) {
+			if (ep11_get_card_info(card, &eci, 0))
+				continue;
+			if (minapi > eci.API_ord_nr)
+				continue;
+		}
+		/* check wkvp if given */
+		if (wkvp) {
+			if (ep11_get_domain_info(card, dom, &edi))
+				continue;
+			if (edi.cur_wk_state != '1')
+				continue;
+			if (memcmp(wkvp, edi.cur_wkvp, 16))
+				continue;
+		}
+		/* apqn passed all filtering criterons, add to the array */
+		if (_nr_apqns < 256)
+			_apqns[_nr_apqns++] = (((u16)card) << 16) | ((u16) dom);
+	}
+
+	/* nothing found ? */
+	if (!_nr_apqns) {
+		kfree(_apqns);
+		rc = -ENODEV;
+	} else {
+		/* no re-allocation, simple return the _apqns array */
+		*apqns = _apqns;
+		*nr_apqns = _nr_apqns;
+		rc = 0;
+	}
+
+	kfree(device_status);
+	return rc;
+}
+EXPORT_SYMBOL(ep11_findcard2);
+
+void __exit zcrypt_ep11misc_exit(void)
+{
+	card_cache_free();
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_ep11misc.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_ep11misc.h
@@ -0,0 +1,124 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ *  Copyright IBM Corp. 2019
+ *  Author(s): Harald Freudenberger <freude@linux.ibm.com>
+ *
+ *  Collection of EP11 misc functions used by zcrypt and pkey
+ */
+
+#ifndef _ZCRYPT_EP11MISC_H_
+#define _ZCRYPT_EP11MISC_H_
+
+#include <asm/zcrypt.h>
+#include <asm/pkey.h>
+
+#define TOKVER_EP11_AES  0x03  /* EP11 AES key blob */
+
+#define EP11_API_V 4  /* highest known and supported EP11 API version */
+
+#define EP11_STRUCT_MAGIC 0x1234
+#define EP11_BLOB_PKEY_EXTRACTABLE 0x200000
+
+/* inside view of an EP11 secure key blob */
+struct ep11keyblob {
+	union {
+		u8 session[32];
+		struct {
+			u8  type;      /* 0x00 (TOKTYPE_NON_CCA) */
+			u8  res0;      /* unused */
+			u16 len;       /* total length in bytes of this blob */
+			u8  version;   /* 0x06 (TOKVER_EP11_AES) */
+			u8  res1;      /* unused */
+			u16 keybitlen; /* clear key bit len, 0 for unknown */
+		} head;
+	};
+	u8  wkvp[16];  /* wrapping key verification pattern */
+	u64 attr;      /* boolean key attributes */
+	u64 mode;      /* mode bits */
+	u16 version;   /* 0x1234, EP11_STRUCT_MAGIC */
+	u8  iv[14];
+	u8  encrypted_key_data[144];
+	u8  mac[32];
+} __packed;
+
+/*
+ * Simple check if the key blob is a valid EP11 secure AES key.
+ * If keybitsize is given, the bitsize of the key is also checked.
+ * If checkcpacfexport is enabled, the key is also checked for the
+ * attributes needed to export this key for CPACF use.
+ * Returns 0 on success or errno value on failure.
+ */
+int ep11_check_aeskeyblob(debug_info_t *dbg, int dbflvl,
+			  const u8 *key, int keybitsize,
+			  int checkcpacfexport);
+
+/* EP11 card info struct */
+struct ep11_card_info {
+	u32  API_ord_nr;    /* API ordinal number */
+	u16  FW_version;    /* Firmware major and minor version */
+	char serial[16];    /* serial number string (16 ascii, no 0x00 !) */
+	u64  op_mode;	    /* card operational mode(s) */
+};
+
+/* EP11 domain info struct */
+struct ep11_domain_info {
+	char cur_wk_state;  /* '0' invalid, '1' valid */
+	char new_wk_state;  /* '0' empty, '1' uncommitted, '2' committed */
+	u8   cur_wkvp[32];  /* current wrapping key verification pattern */
+	u8   new_wkvp[32];  /* new wrapping key verification pattern */
+	u64  op_mode;	    /* domain operational mode(s) */
+};
+
+/*
+ * Provide information about an EP11 card.
+ */
+int ep11_get_card_info(u16 card, struct ep11_card_info *info, int verify);
+
+/*
+ * Provide information about a domain within an EP11 card.
+ */
+int ep11_get_domain_info(u16 card, u16 domain, struct ep11_domain_info *info);
+
+/*
+ * Generate (random) EP11 AES secure key.
+ */
+int ep11_genaeskey(u16 card, u16 domain, u32 keybitsize, u32 keygenflags,
+		   u8 *keybuf, size_t *keybufsize);
+
+/*
+ * Generate EP11 AES secure key with given clear key value.
+ */
+int ep11_clr2keyblob(u16 cardnr, u16 domain, u32 keybitsize, u32 keygenflags,
+		     const u8 *clrkey, u8 *keybuf, size_t *keybufsize);
+
+/*
+ * Derive proteced key from EP11 AES secure key blob.
+ */
+int ep11_key2protkey(u16 cardnr, u16 domain, const u8 *key, size_t keylen,
+		     u8 *protkey, u32 *protkeylen, u32 *protkeytype);
+
+/*
+ * Build a list of ep11 apqns meeting the following constrains:
+ * - apqn is online and is in fact an EP11 apqn
+ * - if cardnr is not FFFF only apqns with this cardnr
+ * - if domain is not FFFF only apqns with this domainnr
+ * - if minhwtype > 0 only apqns with hwtype >= minhwtype
+ * - if minapi > 0 only apqns with API_ord_nr >= minapi
+ * - if wkvp != NULL only apqns where the wkvp (EP11_WKVPLEN bytes) matches
+ *   to the first EP11_WKVPLEN bytes of the wkvp of the current wrapping
+ *   key for this domain. When a wkvp is given there will aways be a re-fetch
+ *   of the domain info for the potential apqn - so this triggers an request
+ *   reply to each apqn eligible.
+ * The array of apqn entries is allocated with kmalloc and returned in *apqns;
+ * the number of apqns stored into the list is returned in *nr_apqns. One apqn
+ * entry is simple a 32 bit value with 16 bit cardnr and 16 bit domain nr and
+ * may be casted to struct pkey_apqn. The return value is either 0 for success
+ * or a negative errno value. If no apqn meeting the criterias is found,
+ * -ENODEV is returned.
+ */
+int ep11_findcard2(u32 **apqns, u32 *nr_apqns, u16 cardnr, u16 domain,
+		   int minhwtype, int minapi, const u8 *wkvp);
+
+void zcrypt_ep11misc_exit(void);
+
+#endif /* _ZCRYPT_EP11MISC_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/crypto/zcrypt_error.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/crypto/zcrypt_error.h
@@ -61,6 +61,7 @@
 #define REP82_ERROR_EVEN_MOD_IN_OPND	    0x85
 #define REP82_ERROR_RESERVED_FIELD	    0x88
 #define REP82_ERROR_INVALID_DOMAIN_PENDING  0x8A
+#define REP82_ERROR_FILTERED_BY_HYPERVISOR  0x8B
 #define REP82_ERROR_TRANSPORT_FAIL	    0x90
 #define REP82_ERROR_PACKET_TRUNCATED	    0xA0
 #define REP82_ERROR_ZERO_BUFFER_LEN	    0xB0
@@ -91,6 +92,7 @@
 	case REP82_ERROR_INVALID_DOMAIN_PRECHECK:
 	case REP82_ERROR_INVALID_DOMAIN_PENDING:
 	case REP82_ERROR_INVALID_SPECIAL_CMD:
+	case REP82_ERROR_FILTERED_BY_HYPERVISOR:
 	//   REP88_ERROR_INVALID_KEY		// '82' CEX2A
 	//   REP88_ERROR_OPERAND		// '84' CEX2A
 	//   REP88_ERROR_OPERAND_EVEN_MOD	// '85' CEX2A
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/ism_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/ism_drv.c
@@ -521,8 +521,10 @@
 
 	ism->smcd = smcd_alloc_dev(&pdev->dev, dev_name(&pdev->dev), &ism_ops,
 				   ISM_NR_DMBS);
-	if (!ism->smcd)
+	if (!ism->smcd) {
+		ret = -ENOMEM;
 		goto err_resource;
+	}
 
 	ism->smcd->priv = ism;
 	ret = ism_dev_init(ism);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_core.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_core.h
@@ -436,10 +436,13 @@
 	QETH_QDIO_BUF_EMPTY,
 	/* Filled by driver; owned by hardware in order to be sent. */
 	QETH_QDIO_BUF_PRIMED,
-	/* Identified to be pending in TPQ. */
+	/* Discovered by the TX completion code: */
 	QETH_QDIO_BUF_PENDING,
-	/* Found in completion queue. */
-	QETH_QDIO_BUF_IN_CQ,
+	/* Finished by the TX completion code: */
+	QETH_QDIO_BUF_NEED_QAOB,
+	/* Received QAOB notification on CQ: */
+	QETH_QDIO_BUF_QAOB_OK,
+	QETH_QDIO_BUF_QAOB_ERROR,
 	/* Handled via transfer pending / completion queue. */
 	QETH_QDIO_BUF_HANDLED_DELAYED,
 };
@@ -532,6 +535,8 @@
 	struct timer_list timer;
 	struct qeth_hdr *prev_hdr;
 	u8 bulk_start;
+	u8 bulk_count;
+	u8 bulk_max;
 };
 
 #define qeth_for_each_output_queue(card, q, i)		\
@@ -620,6 +625,7 @@
 
 struct qeth_channel {
 	struct ccw_device *ccwdev;
+	struct qeth_cmd_buffer *active_cmd;
 	enum qeth_channel_states state;
 	atomic_t irq_pending;
 };
@@ -879,6 +885,13 @@
 	return txq;
 }
 
+static inline bool qeth_iqd_is_mcast_queue(struct qeth_card *card,
+					   struct qeth_qdio_out_q *queue)
+{
+	return qeth_iqd_translate_txq(card->dev, queue->queue_no) ==
+	       QETH_IQD_MCAST_TXQ;
+}
+
 static inline void qeth_scrub_qdio_buffer(struct qdio_buffer *buf,
 					  unsigned int elements)
 {
@@ -1024,6 +1037,8 @@
 void qeth_clear_thread_start_bit(struct qeth_card *, unsigned long);
 void qeth_clear_thread_running_bit(struct qeth_card *, unsigned long);
 int qeth_core_hardsetup_card(struct qeth_card *card, bool *carrier_ok);
+int qeth_stop_channel(struct qeth_channel *channel);
+
 void qeth_print_status_message(struct qeth_card *);
 int qeth_init_qdio_queues(struct qeth_card *);
 int qeth_send_ipa_cmd(struct qeth_card *, struct qeth_cmd_buffer *,
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_core_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_core_main.c
@@ -31,6 +31,7 @@
 
 #include <net/iucv/af_iucv.h>
 #include <net/dsfield.h>
+#include <net/sock.h>
 
 #include <asm/ebcdic.h>
 #include <asm/chpid.h>
@@ -425,18 +426,13 @@
 
 		}
 	}
-	if (forced_cleanup && (atomic_read(&(q->bufs[bidx]->state)) ==
-					QETH_QDIO_BUF_HANDLED_DELAYED)) {
-		/* for recovery situations */
-		qeth_init_qdio_out_buf(q, bidx);
-		QETH_CARD_TEXT(q->card, 2, "clprecov");
-	}
 }
 
 
 static void qeth_qdio_handle_aob(struct qeth_card *card,
 				 unsigned long phys_aob_addr)
 {
+	enum qeth_qdio_out_buffer_state new_state = QETH_QDIO_BUF_QAOB_OK;
 	struct qaob *aob;
 	struct qeth_qdio_out_buffer *buffer;
 	enum iucv_tx_notify notification;
@@ -448,22 +444,6 @@
 	buffer = (struct qeth_qdio_out_buffer *) aob->user1;
 	QETH_CARD_TEXT_(card, 5, "%lx", aob->user1);
 
-	if (atomic_cmpxchg(&buffer->state, QETH_QDIO_BUF_PRIMED,
-			   QETH_QDIO_BUF_IN_CQ) == QETH_QDIO_BUF_PRIMED) {
-		notification = TX_NOTIFY_OK;
-	} else {
-		WARN_ON_ONCE(atomic_read(&buffer->state) !=
-							QETH_QDIO_BUF_PENDING);
-		atomic_set(&buffer->state, QETH_QDIO_BUF_IN_CQ);
-		notification = TX_NOTIFY_DELAYED_OK;
-	}
-
-	if (aob->aorc != 0)  {
-		QETH_CARD_TEXT_(card, 2, "aorc%02X", aob->aorc);
-		notification = qeth_compute_cq_notification(aob->aorc, 1);
-	}
-	qeth_notify_skbs(buffer->q, buffer, notification);
-
 	/* Free dangling allocations. The attached skbs are handled by
 	 * qeth_cleanup_handled_pending().
 	 */
@@ -474,7 +454,33 @@
 			kmem_cache_free(qeth_core_header_cache,
 					(void *) aob->sba[i]);
 	}
-	atomic_set(&buffer->state, QETH_QDIO_BUF_HANDLED_DELAYED);
+
+	if (aob->aorc) {
+		QETH_CARD_TEXT_(card, 2, "aorc%02X", aob->aorc);
+		new_state = QETH_QDIO_BUF_QAOB_ERROR;
+	}
+
+	switch (atomic_xchg(&buffer->state, new_state)) {
+	case QETH_QDIO_BUF_PRIMED:
+		/* Faster than TX completion code. */
+		notification = qeth_compute_cq_notification(aob->aorc, 0);
+		qeth_notify_skbs(buffer->q, buffer, notification);
+		atomic_set(&buffer->state, QETH_QDIO_BUF_HANDLED_DELAYED);
+		break;
+	case QETH_QDIO_BUF_PENDING:
+		/* TX completion code is active and will handle the async
+		 * completion for us.
+		 */
+		break;
+	case QETH_QDIO_BUF_NEED_QAOB:
+		/* TX completion code is already finished. */
+		notification = qeth_compute_cq_notification(aob->aorc, 1);
+		qeth_notify_skbs(buffer->q, buffer, notification);
+		atomic_set(&buffer->state, QETH_QDIO_BUF_HANDLED_DELAYED);
+		break;
+	default:
+		WARN_ON_ONCE(1);
+	}
 
 	qdio_release_aob(aob);
 }
@@ -515,7 +521,9 @@
 
 	QETH_CARD_TEXT(card, 6, "noirqpnd");
 	rc = ccw_device_start(channel->ccwdev, ccw, (addr_t) iob, 0, 0);
-	if (rc) {
+	if (!rc) {
+		channel->active_cmd = iob;
+	} else {
 		QETH_DBF_MESSAGE(2, "error %i on device %x when starting next read ccw!\n",
 				 rc, CARD_DEVID(card));
 		atomic_set(&channel->irq_pending, 0);
@@ -653,17 +661,17 @@
 	unsigned char *buffer)
 {
 	QETH_DBF_HEX(CTRL, 2, buffer, QETH_DBF_CTRL_LEN);
-	if ((buffer[2] & 0xc0) == 0xc0) {
+	if ((buffer[2] & QETH_IDX_TERMINATE_MASK) == QETH_IDX_TERMINATE) {
 		QETH_DBF_MESSAGE(2, "received an IDX TERMINATE with cause code %#04x\n",
 				 buffer[4]);
 		QETH_CARD_TEXT(card, 2, "ckidxres");
 		QETH_CARD_TEXT(card, 2, " idxterm");
-		QETH_CARD_TEXT_(card, 2, "  rc%d", -EIO);
-		if (buffer[4] == 0xf6) {
+		QETH_CARD_TEXT_(card, 2, "rc%x", buffer[4]);
+		if (buffer[4] == QETH_IDX_TERM_BAD_TRANSPORT ||
+		    buffer[4] == QETH_IDX_TERM_BAD_TRANSPORT_VM) {
 			dev_err(&card->gdev->dev,
-			"The qeth device is not configured "
-			"for the OSI layer required by z/VM\n");
-			return -EPERM;
+				"The device does not support the configured transport mode\n");
+			return -EPROTONOSUPPORT;
 		}
 		return -EIO;
 	}
@@ -740,10 +748,10 @@
 	case 0:
 		break;
 	case -EIO:
-		qeth_clear_ipacmd_list(card);
 		qeth_schedule_recovery(card);
 		/* fall through */
 	default:
+		qeth_clear_ipacmd_list(card);
 		goto out;
 	}
 
@@ -986,8 +994,21 @@
 		QETH_CARD_TEXT(card, 5, "data");
 	}
 
-	if (qeth_intparm_is_iob(intparm))
-		iob = (struct qeth_cmd_buffer *) __va((addr_t)intparm);
+	if (intparm == 0) {
+		QETH_CARD_TEXT(card, 5, "irqunsol");
+	} else if ((addr_t)intparm != (addr_t)channel->active_cmd) {
+		QETH_CARD_TEXT(card, 5, "irqunexp");
+
+		dev_err(&cdev->dev,
+			"Received IRQ with intparm %lx, expected %px\n",
+			intparm, channel->active_cmd);
+		if (channel->active_cmd)
+			qeth_cancel_cmd(channel->active_cmd, -EIO);
+	} else {
+		iob = (struct qeth_cmd_buffer *) (addr_t)intparm;
+	}
+
+	channel->active_cmd = NULL;
 
 	rc = qeth_check_irb_error(card, cdev, irb);
 	if (rc) {
@@ -1007,15 +1028,10 @@
 	if (irb->scsw.cmd.fctl & (SCSW_FCTL_HALT_FUNC))
 		channel->state = CH_STATE_HALTED;
 
-	if (intparm == QETH_CLEAR_CHANNEL_PARM) {
-		QETH_CARD_TEXT(card, 6, "clrchpar");
-		/* we don't have to handle this further */
-		intparm = 0;
-	}
-	if (intparm == QETH_HALT_CHANNEL_PARM) {
-		QETH_CARD_TEXT(card, 6, "hltchpar");
-		/* we don't have to handle this further */
-		intparm = 0;
+	if (iob && (irb->scsw.cmd.fctl & (SCSW_FCTL_CLEAR_FUNC |
+					  SCSW_FCTL_HALT_FUNC))) {
+		qeth_cancel_cmd(iob, -ECANCELED);
+		iob = NULL;
 	}
 
 	cstat = irb->scsw.cmd.cstat;
@@ -1073,7 +1089,7 @@
 	skb_queue_walk(&buf->skb_list, skb) {
 		QETH_CARD_TEXT_(q->card, 5, "skbn%d", notification);
 		QETH_CARD_TEXT_(q->card, 5, "%lx", (long) skb);
-		if (skb->protocol == htons(ETH_P_AF_IUCV) && skb->sk)
+		if (skb->sk && skb->sk->sk_family == PF_IUCV)
 			iucv_sk(skb->sk)->sk_txnotify(skb, notification);
 	}
 }
@@ -1084,9 +1100,6 @@
 	struct qeth_qdio_out_q *queue = buf->q;
 	struct sk_buff *skb;
 
-	/* release may never happen from within CQ tasklet scope */
-	WARN_ON_ONCE(atomic_read(&buf->state) == QETH_QDIO_BUF_IN_CQ);
-
 	if (atomic_read(&buf->state) == QETH_QDIO_BUF_PENDING)
 		qeth_notify_skbs(queue, buf, TX_NOTIFY_GENERALERROR);
 
@@ -1234,7 +1247,6 @@
 	if (count == 1)
 		dev_info(&card->gdev->dev, "Priority Queueing not supported\n");
 
-	card->qdio.default_out_queue = single ? 0 : QETH_DEFAULT_QUEUE;
 	card->qdio.no_out_queues = count;
 	return 0;
 }
@@ -1408,7 +1420,7 @@
 
 	QETH_CARD_TEXT(card, 3, "clearch");
 	spin_lock_irq(get_ccwdev_lock(channel->ccwdev));
-	rc = ccw_device_clear(channel->ccwdev, QETH_CLEAR_CHANNEL_PARM);
+	rc = ccw_device_clear(channel->ccwdev, (addr_t)channel->active_cmd);
 	spin_unlock_irq(get_ccwdev_lock(channel->ccwdev));
 
 	if (rc)
@@ -1430,7 +1442,7 @@
 
 	QETH_CARD_TEXT(card, 3, "haltch");
 	spin_lock_irq(get_ccwdev_lock(channel->ccwdev));
-	rc = ccw_device_halt(channel->ccwdev, QETH_HALT_CHANNEL_PARM);
+	rc = ccw_device_halt(channel->ccwdev, (addr_t)channel->active_cmd);
 	spin_unlock_irq(get_ccwdev_lock(channel->ccwdev));
 
 	if (rc)
@@ -1444,6 +1456,25 @@
 	return 0;
 }
 
+int qeth_stop_channel(struct qeth_channel *channel)
+{
+	struct ccw_device *cdev = channel->ccwdev;
+	int rc;
+
+	rc = ccw_device_set_offline(cdev);
+
+	spin_lock_irq(get_ccwdev_lock(cdev));
+	if (channel->active_cmd) {
+		dev_err(&cdev->dev, "Stopped channel while cmd %px was still active\n",
+			channel->active_cmd);
+		channel->active_cmd = NULL;
+	}
+	spin_unlock_irq(get_ccwdev_lock(cdev));
+
+	return rc;
+}
+EXPORT_SYMBOL_GPL(qeth_stop_channel);
+
 static int qeth_halt_channels(struct qeth_card *card)
 {
 	int rc1 = 0, rc2 = 0, rc3 = 0;
@@ -1747,6 +1778,8 @@
 	spin_lock_irq(get_ccwdev_lock(channel->ccwdev));
 	rc = ccw_device_start_timeout(channel->ccwdev, __ccw_from_cmd(iob),
 				      (addr_t) iob, 0, 0, timeout);
+	if (!rc)
+		channel->active_cmd = iob;
 	spin_unlock_irq(get_ccwdev_lock(channel->ccwdev));
 	if (rc) {
 		QETH_DBF_MESSAGE(2, "qeth_send_control_data on device %x: ccw_device_start rc = %i\n",
@@ -2451,50 +2484,46 @@
 	rc = qeth_cm_enable(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "2err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_cm_setup(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "3err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_ulp_enable(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "4err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_ulp_setup(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "5err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_alloc_qdio_queues(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "5err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_qdio_establish(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "6err%d", rc);
 		qeth_free_qdio_queues(card);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_qdio_activate(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "7err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 	rc = qeth_dm_act(card);
 	if (rc) {
 		QETH_CARD_TEXT_(card, 2, "8err%d", rc);
-		goto out_qdio;
+		return rc;
 	}
 
 	return 0;
-out_qdio:
-	qeth_qdio_clear_card(card, !IS_IQD(card));
-	qdio_free(CARD_DDEV(card));
-	return rc;
 }
 
 void qeth_print_status_message(struct qeth_card *card)
@@ -2607,12 +2636,12 @@
 		buf->rx_skb = netdev_alloc_skb(card->dev,
 					       QETH_RX_PULL_LEN + ETH_HLEN);
 		if (!buf->rx_skb)
-			return 1;
+			return -ENOMEM;
 	}
 
 	pool_entry = qeth_find_free_buffer_pool_entry(card);
 	if (!pool_entry)
-		return 1;
+		return -ENOBUFS;
 
 	/*
 	 * since the buffer is accessed only from the input_tasklet
@@ -2634,6 +2663,18 @@
 	return 0;
 }
 
+static unsigned int qeth_tx_select_bulk_max(struct qeth_card *card,
+					    struct qeth_qdio_out_q *queue)
+{
+	if (!IS_IQD(card) ||
+	    qeth_iqd_is_mcast_queue(card, queue) ||
+	    card->options.cq == QETH_CQ_ENABLED ||
+	    qdio_get_ssqd_desc(CARD_DDEV(card), &card->ssqd))
+		return 1;
+
+	return card->ssqd.mmwc ? card->ssqd.mmwc : 1;
+}
+
 int qeth_init_qdio_queues(struct qeth_card *card)
 {
 	unsigned int i;
@@ -2644,10 +2685,15 @@
 	/* inbound queue */
 	qdio_reset_buffers(card->qdio.in_q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q);
 	memset(&card->rx, 0, sizeof(struct qeth_rx));
+
 	qeth_initialize_working_pool_list(card);
 	/*give only as many buffers to hardware as we have buffer pool entries*/
-	for (i = 0; i < card->qdio.in_buf_pool.buf_count - 1; ++i)
-		qeth_init_input_buffer(card, &card->qdio.in_q->bufs[i]);
+	for (i = 0; i < card->qdio.in_buf_pool.buf_count - 1; i++) {
+		rc = qeth_init_input_buffer(card, &card->qdio.in_q->bufs[i]);
+		if (rc)
+			return rc;
+	}
+
 	card->qdio.in_q->next_buf_to_init =
 		card->qdio.in_buf_pool.buf_count - 1;
 	rc = do_QDIO(CARD_DDEV(card), QDIO_FLAG_SYNC_INPUT, 0, 0,
@@ -2673,6 +2719,8 @@
 		queue->do_pack = 0;
 		queue->prev_hdr = NULL;
 		queue->bulk_start = 0;
+		queue->bulk_count = 0;
+		queue->bulk_max = qeth_tx_select_bulk_max(card, queue);
 		atomic_set(&queue->used_buffers, 0);
 		atomic_set(&queue->set_pci_flags_count, 0);
 		atomic_set(&queue->state, QETH_OUT_Q_UNLOCKED);
@@ -3318,10 +3366,11 @@
 
 static void qeth_flush_queue(struct qeth_qdio_out_q *queue)
 {
-	qeth_flush_buffers(queue, queue->bulk_start, 1);
+	qeth_flush_buffers(queue, queue->bulk_start, queue->bulk_count);
 
-	queue->bulk_start = QDIO_BUFNR(queue->bulk_start + 1);
+	queue->bulk_start = QDIO_BUFNR(queue->bulk_start + queue->bulk_count);
 	queue->prev_hdr = NULL;
+	queue->bulk_count = 0;
 }
 
 static void qeth_check_outbound_queue(struct qeth_qdio_out_q *queue)
@@ -3382,11 +3431,6 @@
 			goto out;
 		}
 
-		if (card->state != CARD_STATE_DOWN) {
-			rc = -1;
-			goto out;
-		}
-
 		qeth_free_qdio_queues(card);
 		card->options.cq = cq;
 		rc = 0;
@@ -3680,10 +3724,10 @@
 }
 
 static bool qeth_iqd_may_bulk(struct qeth_qdio_out_q *queue,
-			      struct qeth_qdio_out_buffer *buffer,
 			      struct sk_buff *curr_skb,
 			      struct qeth_hdr *curr_hdr)
 {
+	struct qeth_qdio_out_buffer *buffer = queue->bufs[queue->bulk_start];
 	struct qeth_hdr *prev_hdr = queue->prev_hdr;
 
 	if (!prev_hdr)
@@ -3803,13 +3847,14 @@
 		       struct qeth_hdr *hdr, unsigned int offset,
 		       unsigned int hd_len)
 {
-	struct qeth_qdio_out_buffer *buffer = queue->bufs[queue->bulk_start];
 	unsigned int bytes = qdisc_pkt_len(skb);
+	struct qeth_qdio_out_buffer *buffer;
 	unsigned int next_element;
 	struct netdev_queue *txq;
 	bool stopped = false;
 	bool flush;
 
+	buffer = queue->bufs[QDIO_BUFNR(queue->bulk_start + queue->bulk_count)];
 	txq = netdev_get_tx_queue(card->dev, skb_get_queue_mapping(skb));
 
 	/* Just a sanity check, the wake/stop logic should ensure that we always
@@ -3818,11 +3863,23 @@
 	if (atomic_read(&buffer->state) != QETH_QDIO_BUF_EMPTY)
 		return -EBUSY;
 
-	if ((buffer->next_element_to_fill + elements > queue->max_elements) ||
-	    !qeth_iqd_may_bulk(queue, buffer, skb, hdr)) {
-		atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
-		qeth_flush_queue(queue);
-		buffer = queue->bufs[queue->bulk_start];
+	flush = !qeth_iqd_may_bulk(queue, skb, hdr);
+
+	if (flush ||
+	    (buffer->next_element_to_fill + elements > queue->max_elements)) {
+		if (buffer->next_element_to_fill > 0) {
+			atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
+			queue->bulk_count++;
+		}
+
+		if (queue->bulk_count >= queue->bulk_max)
+			flush = true;
+
+		if (flush)
+			qeth_flush_queue(queue);
+
+		buffer = queue->bufs[QDIO_BUFNR(queue->bulk_start +
+						queue->bulk_count)];
 
 		/* Sanity-check again: */
 		if (atomic_read(&buffer->state) != QETH_QDIO_BUF_EMPTY)
@@ -3848,7 +3905,13 @@
 
 	if (flush || next_element >= queue->max_elements) {
 		atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
-		qeth_flush_queue(queue);
+		queue->bulk_count++;
+
+		if (queue->bulk_count >= queue->bulk_max)
+			flush = true;
+
+		if (flush)
+			qeth_flush_queue(queue);
 	}
 
 	if (stopped && !qeth_out_queue_is_full(queue))
@@ -4137,9 +4200,6 @@
 	int fallback = *(int *)reply->param;
 
 	QETH_CARD_TEXT(card, 4, "setaccb");
-	if (cmd->hdr.return_code)
-		return -EIO;
-	qeth_setadpparms_inspect_rc(cmd);
 
 	access_ctrl_req = &cmd->data.setadapterparms.data.set_access_ctrl;
 	QETH_CARD_TEXT_(card, 2, "rc=%d",
@@ -4149,7 +4209,7 @@
 		QETH_DBF_MESSAGE(3, "ERR:SET_ACCESS_CTRL(%#x) on device %x: %#x\n",
 				 access_ctrl_req->subcmd_code, CARD_DEVID(card),
 				 cmd->data.setadapterparms.hdr.return_code);
-	switch (cmd->data.setadapterparms.hdr.return_code) {
+	switch (qeth_setadpparms_inspect_rc(cmd)) {
 	case SET_ACCESS_CTRL_RC_SUCCESS:
 		if (card->options.isolation == ISOLATION_MODE_NONE) {
 			dev_info(&card->gdev->dev,
@@ -4634,12 +4694,12 @@
 
 static void qeth_determine_capabilities(struct qeth_card *card)
 {
+	struct qeth_channel *channel = &card->data;
+	struct ccw_device *ddev = channel->ccwdev;
 	int rc;
-	struct ccw_device *ddev;
 	int ddev_offline = 0;
 
 	QETH_CARD_TEXT(card, 2, "detcapab");
-	ddev = CARD_DDEV(card);
 	if (!ddev->online) {
 		ddev_offline = 1;
 		rc = ccw_device_set_online(ddev);
@@ -4678,7 +4738,7 @@
 
 out_offline:
 	if (ddev_offline == 1)
-		ccw_device_set_offline(ddev);
+		qeth_stop_channel(channel);
 out:
 	return;
 }
@@ -4694,10 +4754,10 @@
 	if (card->options.cq == QETH_CQ_ENABLED) {
 		int offset = QDIO_MAX_BUFFERS_PER_Q *
 			     (card->qdio.no_in_queues - 1);
-		for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) {
-			in_sbal_ptrs[offset + i] = (struct qdio_buffer *)
-				virt_to_phys(card->qdio.c_q->bufs[i].buffer);
-		}
+
+		for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++)
+			in_sbal_ptrs[offset + i] =
+				card->qdio.c_q->bufs[i].buffer;
 
 		queue_start_poll[card->qdio.no_in_queues - 1] = NULL;
 	}
@@ -4731,10 +4791,9 @@
 		rc = -ENOMEM;
 		goto out_free_qib_param;
 	}
-	for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) {
-		in_sbal_ptrs[i] = (struct qdio_buffer *)
-			virt_to_phys(card->qdio.in_q->bufs[i].buffer);
-	}
+
+	for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++)
+		in_sbal_ptrs[i] = card->qdio.in_q->bufs[i].buffer;
 
 	queue_start_poll = kcalloc(card->qdio.no_in_queues, sizeof(void *),
 				   GFP_KERNEL);
@@ -4755,11 +4814,11 @@
 		rc = -ENOMEM;
 		goto out_free_queue_start_poll;
 	}
+
 	for (i = 0, k = 0; i < card->qdio.no_out_queues; ++i)
-		for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; ++j, ++k) {
-			out_sbal_ptrs[k] = (struct qdio_buffer *)virt_to_phys(
-				card->qdio.out_qs[i]->bufs[j]->buffer);
-		}
+		for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++, k++)
+			out_sbal_ptrs[k] =
+				card->qdio.out_qs[i]->bufs[j]->buffer;
 
 	memset(&init_data, 0, sizeof(struct qdio_initialize));
 	init_data.cdev                   = CARD_DDEV(card);
@@ -4879,9 +4938,9 @@
 		QETH_DBF_MESSAGE(2, "Retrying to do IDX activates on device %x.\n",
 				 CARD_DEVID(card));
 	rc = qeth_qdio_clear_card(card, !IS_IQD(card));
-	ccw_device_set_offline(CARD_DDEV(card));
-	ccw_device_set_offline(CARD_WDEV(card));
-	ccw_device_set_offline(CARD_RDEV(card));
+	qeth_stop_channel(&card->data);
+	qeth_stop_channel(&card->write);
+	qeth_stop_channel(&card->read);
 	qdio_free(CARD_DDEV(card));
 	rc = ccw_device_set_online(CARD_RDEV(card));
 	if (rc)
@@ -4972,10 +5031,8 @@
 	}
 	if (qeth_adp_supported(card, IPA_SETADP_SET_DIAG_ASSIST)) {
 		rc = qeth_query_setdiagass(card);
-		if (rc < 0) {
+		if (rc)
 			QETH_CARD_TEXT_(card, 2, "8err%d", rc);
-			goto out;
-		}
 	}
 	return 0;
 out:
@@ -5203,9 +5260,32 @@
 
 		if (atomic_cmpxchg(&buffer->state, QETH_QDIO_BUF_PRIMED,
 						   QETH_QDIO_BUF_PENDING) ==
-		    QETH_QDIO_BUF_PRIMED)
+		    QETH_QDIO_BUF_PRIMED) {
 			qeth_notify_skbs(queue, buffer, TX_NOTIFY_PENDING);
 
+			/* Handle race with qeth_qdio_handle_aob(): */
+			switch (atomic_xchg(&buffer->state,
+					    QETH_QDIO_BUF_NEED_QAOB)) {
+			case QETH_QDIO_BUF_PENDING:
+				/* No concurrent QAOB notification. */
+				break;
+			case QETH_QDIO_BUF_QAOB_OK:
+				qeth_notify_skbs(queue, buffer,
+						 TX_NOTIFY_DELAYED_OK);
+				atomic_set(&buffer->state,
+					   QETH_QDIO_BUF_HANDLED_DELAYED);
+				break;
+			case QETH_QDIO_BUF_QAOB_ERROR:
+				qeth_notify_skbs(queue, buffer,
+						 TX_NOTIFY_DELAYED_GENERALERROR);
+				atomic_set(&buffer->state,
+					   QETH_QDIO_BUF_HANDLED_DELAYED);
+				break;
+			default:
+				WARN_ON_ONCE(1);
+			}
+		}
+
 		QETH_CARD_TEXT_(card, 5, "pel%u", bidx);
 
 		/* prepare the queue slot for re-use: */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_core_mpc.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_core_mpc.h
@@ -28,20 +28,6 @@
 #define QETH_TIMEOUT		(10 * HZ)
 #define QETH_IPA_TIMEOUT	(45 * HZ)
 
-#define QETH_CLEAR_CHANNEL_PARM	-10
-#define QETH_HALT_CHANNEL_PARM	-11
-
-static inline bool qeth_intparm_is_iob(unsigned long intparm)
-{
-	switch (intparm) {
-	case QETH_CLEAR_CHANNEL_PARM:
-	case QETH_HALT_CHANNEL_PARM:
-	case 0:
-		return false;
-	}
-	return true;
-}
-
 /*****************************************************************************/
 /* IP Assist related definitions                                             */
 /*****************************************************************************/
@@ -912,6 +898,11 @@
 #define QETH_IDX_ACT_ERR_AUTH		0x1E
 #define QETH_IDX_ACT_ERR_AUTH_USER	0x20
 
+#define QETH_IDX_TERMINATE		0xc0
+#define QETH_IDX_TERMINATE_MASK		0xc0
+#define QETH_IDX_TERM_BAD_TRANSPORT	0x41
+#define QETH_IDX_TERM_BAD_TRANSPORT_VM	0xf6
+
 #define PDU_ENCAPSULATION(buffer) \
 	(buffer + *(buffer + (*(buffer + 0x0b)) + \
 	 *(buffer + *(buffer + 0x0b) + 0x11) + 0x07))
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_core_sys.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_core_sys.c
@@ -227,7 +227,7 @@
 		card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
 	} else if (sysfs_streq(buf, "prio_queueing_vlan")) {
 		if (IS_LAYER3(card)) {
-			rc = -ENOTSUPP;
+			rc = -EOPNOTSUPP;
 			goto out;
 		}
 		card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_VLAN;
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_l2_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_l2_main.c
@@ -287,14 +287,15 @@
 		card->state = CARD_STATE_HARDSETUP;
 	}
 	if (card->state == CARD_STATE_HARDSETUP) {
-		qeth_qdio_clear_card(card, 0);
 		qeth_drain_output_queues(card);
 		qeth_clear_working_pool_list(card);
 		card->state = CARD_STATE_DOWN;
 	}
 
+	qeth_qdio_clear_card(card, 0);
 	flush_workqueue(card->event_wq);
 	card->info.mac_bits &= ~QETH_LAYER2_MAC_REGISTERED;
+	card->info.promisc_mode = 0;
 }
 
 static int qeth_l2_process_inbound_buffer(struct qeth_card *card,
@@ -876,9 +877,9 @@
 
 out_remove:
 	qeth_l2_stop_card(card);
-	ccw_device_set_offline(CARD_DDEV(card));
-	ccw_device_set_offline(CARD_WDEV(card));
-	ccw_device_set_offline(CARD_RDEV(card));
+	qeth_stop_channel(&card->data);
+	qeth_stop_channel(&card->write);
+	qeth_stop_channel(&card->read);
 	qdio_free(CARD_DDEV(card));
 
 	mutex_unlock(&card->conf_mutex);
@@ -909,9 +910,9 @@
 	rtnl_unlock();
 
 	qeth_l2_stop_card(card);
-	rc  = ccw_device_set_offline(CARD_DDEV(card));
-	rc2 = ccw_device_set_offline(CARD_WDEV(card));
-	rc3 = ccw_device_set_offline(CARD_RDEV(card));
+	rc  = qeth_stop_channel(&card->data);
+	rc2 = qeth_stop_channel(&card->write);
+	rc3 = qeth_stop_channel(&card->read);
 	if (!rc)
 		rc = (rc2) ? rc2 : rc3;
 	if (rc)
@@ -1167,12 +1168,6 @@
 		NULL
 	};
 
-	/* Role should not change by itself, but if it did, */
-	/* information from the hardware is authoritative.  */
-	mutex_lock(&data->card->sbp_lock);
-	data->card->options.sbp.role = entry->role;
-	mutex_unlock(&data->card->sbp_lock);
-
 	snprintf(env_locrem, sizeof(env_locrem), "BRIDGEPORT=statechange");
 	snprintf(env_role, sizeof(env_role), "ROLE=%s",
 		(entry->role == QETH_SBP_ROLE_NONE) ? "none" :
@@ -1198,6 +1193,10 @@
 	int extrasize;
 
 	QETH_CARD_TEXT(card, 2, "brstchng");
+	if (qports->num_entries == 0) {
+		QETH_CARD_TEXT(card, 2, "BPempty");
+		return;
+	}
 	if (qports->entry_length != sizeof(struct qeth_sbp_port_entry)) {
 		QETH_CARD_TEXT_(card, 2, "BPsz%04x", qports->entry_length);
 		return;
@@ -1845,15 +1844,14 @@
 
 	QETH_CARD_TEXT(card, 2, "vniccsch");
 
-	/* do not change anything if BridgePort is enabled */
-	if (qeth_bridgeport_is_in_use(card))
-		return -EBUSY;
-
 	/* check if characteristic and enable/disable are supported */
 	if (!(card->options.vnicc.sup_chars & vnicc) ||
 	    !(card->options.vnicc.set_char_sup & vnicc))
 		return -EOPNOTSUPP;
 
+	if (qeth_bridgeport_is_in_use(card))
+		return -EBUSY;
+
 	/* set enable/disable command and store wanted characteristic */
 	if (state) {
 		cmd = IPA_VNICC_ENABLE;
@@ -1899,14 +1897,13 @@
 
 	QETH_CARD_TEXT(card, 2, "vniccgch");
 
-	/* do not get anything if BridgePort is enabled */
-	if (qeth_bridgeport_is_in_use(card))
-		return -EBUSY;
-
 	/* check if characteristic is supported */
 	if (!(card->options.vnicc.sup_chars & vnicc))
 		return -EOPNOTSUPP;
 
+	if (qeth_bridgeport_is_in_use(card))
+		return -EBUSY;
+
 	/* if card is ready, query current VNICC state */
 	if (qeth_card_hw_is_reachable(card))
 		rc = qeth_l2_vnicc_query_chars(card);
@@ -1924,15 +1921,14 @@
 
 	QETH_CARD_TEXT(card, 2, "vniccsto");
 
-	/* do not change anything if BridgePort is enabled */
-	if (qeth_bridgeport_is_in_use(card))
-		return -EBUSY;
-
 	/* check if characteristic and set_timeout are supported */
 	if (!(card->options.vnicc.sup_chars & QETH_VNICC_LEARNING) ||
 	    !(card->options.vnicc.getset_timeout_sup & QETH_VNICC_LEARNING))
 		return -EOPNOTSUPP;
 
+	if (qeth_bridgeport_is_in_use(card))
+		return -EBUSY;
+
 	/* do we need to do anything? */
 	if (card->options.vnicc.learning_timeout == timeout)
 		return rc;
@@ -1961,14 +1957,14 @@
 
 	QETH_CARD_TEXT(card, 2, "vniccgto");
 
-	/* do not get anything if BridgePort is enabled */
-	if (qeth_bridgeport_is_in_use(card))
-		return -EBUSY;
-
 	/* check if characteristic and get_timeout are supported */
 	if (!(card->options.vnicc.sup_chars & QETH_VNICC_LEARNING) ||
 	    !(card->options.vnicc.getset_timeout_sup & QETH_VNICC_LEARNING))
 		return -EOPNOTSUPP;
+
+	if (qeth_bridgeport_is_in_use(card))
+		return -EBUSY;
+
 	/* if card is ready, get timeout. Otherwise, just return stored value */
 	*timeout = card->options.vnicc.learning_timeout;
 	if (qeth_card_hw_is_reachable(card))
@@ -1982,8 +1978,7 @@
 /* check if VNICC is currently enabled */
 bool qeth_l2_vnicc_is_in_use(struct qeth_card *card)
 {
-	/* if everything is turned off, VNICC is not active */
-	if (!card->options.vnicc.cur_chars)
+	if (!card->options.vnicc.sup_chars)
 		return false;
 	/* default values are only OK if rx_bcast was not enabled by user
 	 * or the card is offline.
@@ -2070,8 +2065,9 @@
 	/* enforce assumed default values and recover settings, if changed  */
 	error |= qeth_l2_vnicc_recover_timeout(card, QETH_VNICC_LEARNING,
 					       timeout);
-	chars_tmp = card->options.vnicc.wanted_chars ^ QETH_VNICC_DEFAULT;
-	chars_tmp |= QETH_VNICC_BRIDGE_INVISIBLE;
+	/* Change chars, if necessary  */
+	chars_tmp = card->options.vnicc.wanted_chars ^
+		    card->options.vnicc.cur_chars;
 	chars_len = sizeof(card->options.vnicc.wanted_chars) * BITS_PER_BYTE;
 	for_each_set_bit(i, &chars_tmp, chars_len) {
 		vnicc = BIT(i);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_l2_sys.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_l2_sys.c
@@ -279,7 +279,8 @@
 		return;
 
 	mutex_lock(&card->sbp_lock);
-	if (card->options.sbp.role != QETH_SBP_ROLE_NONE) {
+	if (!card->options.sbp.reflect_promisc &&
+	    card->options.sbp.role != QETH_SBP_ROLE_NONE) {
 		/* Conditional to avoid spurious error messages */
 		qeth_bridgeport_setrole(card, card->options.sbp.role);
 		/* Let the callback function refresh the stored role value. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_l3_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_l3_main.c
@@ -1426,13 +1426,14 @@
 		card->state = CARD_STATE_HARDSETUP;
 	}
 	if (card->state == CARD_STATE_HARDSETUP) {
-		qeth_qdio_clear_card(card, 0);
 		qeth_drain_output_queues(card);
 		qeth_clear_working_pool_list(card);
 		card->state = CARD_STATE_DOWN;
 	}
 
+	qeth_qdio_clear_card(card, 0);
 	flush_workqueue(card->event_wq);
+	card->info.promisc_mode = 0;
 }
 
 static void qeth_l3_set_promisc_mode(struct qeth_card *card)
@@ -2113,7 +2114,7 @@
 						    struct net_device *dev,
 						    netdev_features_t features)
 {
-	if (qeth_get_ip_version(skb) != 4)
+	if (vlan_get_protocol(skb) != htons(ETH_P_IP))
 		features &= ~NETIF_F_HW_VLAN_CTAG_TX;
 	return qeth_features_check(skb, dev, features);
 }
@@ -2382,9 +2383,9 @@
 	return 0;
 out_remove:
 	qeth_l3_stop_card(card);
-	ccw_device_set_offline(CARD_DDEV(card));
-	ccw_device_set_offline(CARD_WDEV(card));
-	ccw_device_set_offline(CARD_RDEV(card));
+	qeth_stop_channel(&card->data);
+	qeth_stop_channel(&card->write);
+	qeth_stop_channel(&card->read);
 	qdio_free(CARD_DDEV(card));
 
 	mutex_unlock(&card->conf_mutex);
@@ -2420,9 +2421,10 @@
 		call_netdevice_notifiers(NETDEV_REBOOT, card->dev);
 		rtnl_unlock();
 	}
-	rc  = ccw_device_set_offline(CARD_DDEV(card));
-	rc2 = ccw_device_set_offline(CARD_WDEV(card));
-	rc3 = ccw_device_set_offline(CARD_RDEV(card));
+
+	rc  = qeth_stop_channel(&card->data);
+	rc2 = qeth_stop_channel(&card->write);
+	rc3 = qeth_stop_channel(&card->read);
 	if (!rc)
 		rc = (rc2) ? rc2 : rc3;
 	if (rc)
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/net/qeth_l3_sys.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/net/qeth_l3_sys.c
@@ -270,24 +270,36 @@
 		struct device_attribute *attr, const char *buf, size_t count)
 {
 	struct qeth_card *card = dev_get_drvdata(dev);
+	int rc = 0;
 	char *tmp;
-	int rc;
 
 	if (!card)
 		return -EINVAL;
 
 	if (!IS_IQD(card))
 		return -EPERM;
-	if (card->state != CARD_STATE_DOWN)
-		return -EPERM;
-	if (card->options.sniffer)
-		return -EPERM;
-	if (card->options.cq == QETH_CQ_NOTAVAILABLE)
-		return -EPERM;
+
+	mutex_lock(&card->conf_mutex);
+	if (card->state != CARD_STATE_DOWN) {
+		rc = -EPERM;
+		goto out;
+	}
+
+	if (card->options.sniffer) {
+		rc = -EPERM;
+		goto out;
+	}
+
+	if (card->options.cq == QETH_CQ_NOTAVAILABLE) {
+		rc = -EPERM;
+		goto out;
+	}
 
 	tmp = strsep((char **)&buf, "\n");
-	if (strlen(tmp) > 8)
-		return -EINVAL;
+	if (strlen(tmp) > 8) {
+		rc = -EINVAL;
+		goto out;
+	}
 
 	if (card->options.hsuid[0])
 		/* delete old ip address */
@@ -298,11 +310,13 @@
 		card->options.hsuid[0] = '\0';
 		memcpy(card->dev->perm_addr, card->options.hsuid, 9);
 		qeth_configure_cq(card, QETH_CQ_DISABLED);
-		return count;
+		goto out;
 	}
 
-	if (qeth_configure_cq(card, QETH_CQ_ENABLED))
-		return -EPERM;
+	if (qeth_configure_cq(card, QETH_CQ_ENABLED)) {
+		rc = -EPERM;
+		goto out;
+	}
 
 	snprintf(card->options.hsuid, sizeof(card->options.hsuid),
 		 "%-8s", tmp);
@@ -311,6 +325,8 @@
 
 	rc = qeth_l3_modify_hsuid(card, true);
 
+out:
+	mutex_unlock(&card->conf_mutex);
 	return rc ? rc : count;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/Makefile
@@ -5,6 +5,6 @@
 
 zfcp-objs := zfcp_aux.o zfcp_ccw.o zfcp_dbf.o zfcp_erp.o \
 	     zfcp_fc.o zfcp_fsf.o zfcp_qdio.o zfcp_scsi.o zfcp_sysfs.o \
-	     zfcp_unit.o
+	     zfcp_unit.o zfcp_diag.o
 
 obj-$(CONFIG_ZFCP) += zfcp.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_aux.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_aux.c
@@ -4,7 +4,7 @@
  *
  * Module interface and handling of zfcp data structures.
  *
- * Copyright IBM Corp. 2002, 2017
+ * Copyright IBM Corp. 2002, 2020
  */
 
 /*
@@ -25,6 +25,7 @@
  *            Martin Petermann
  *            Sven Schuetz
  *            Steffen Maier
+ *	      Benjamin Block
  */
 
 #define KMSG_COMPONENT "zfcp"
@@ -36,6 +37,7 @@
 #include "zfcp_ext.h"
 #include "zfcp_fc.h"
 #include "zfcp_reqlist.h"
+#include "zfcp_diag.h"
 
 #define ZFCP_BUS_ID_SIZE	20
 
@@ -356,6 +358,9 @@
 
 	adapter->erp_action.adapter = adapter;
 
+	if (zfcp_diag_adapter_setup(adapter))
+		goto failed;
+
 	if (zfcp_qdio_setup(adapter))
 		goto failed;
 
@@ -402,13 +407,15 @@
 			       &zfcp_sysfs_adapter_attrs))
 		goto failed;
 
+	if (zfcp_diag_sysfs_setup(adapter))
+		goto failed;
+
 	/* report size limit per scatter-gather segment */
 	adapter->ccw_device->dev.dma_parms = &adapter->dma_parms;
 
 	adapter->stat_read_buf_num = FSF_STATUS_READS_RECOM;
 
-	if (!zfcp_scsi_adapter_register(adapter))
-		return adapter;
+	return adapter;
 
 failed:
 	zfcp_adapter_unregister(adapter);
@@ -426,6 +433,7 @@
 
 	zfcp_fc_wka_ports_force_offline(adapter->gs);
 	zfcp_scsi_adapter_unregister(adapter);
+	zfcp_diag_sysfs_destroy(adapter);
 	sysfs_remove_group(&cdev->dev.kobj, &zfcp_sysfs_adapter_attrs);
 
 	zfcp_erp_thread_kill(adapter);
@@ -449,6 +457,7 @@
 	dev_set_drvdata(&adapter->ccw_device->dev, NULL);
 	zfcp_fc_gs_destroy(adapter);
 	zfcp_free_low_mem_buffers(adapter);
+	zfcp_diag_adapter_free(adapter);
 	kfree(adapter->req_list);
 	kfree(adapter->fc_stats);
 	kfree(adapter->stats_reset_data);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_dbf.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_dbf.c
@@ -4,7 +4,7 @@
  *
  * Debug traces for zfcp.
  *
- * Copyright IBM Corp. 2002, 2018
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #define KMSG_COMPONENT "zfcp"
@@ -95,11 +95,51 @@
 	memcpy(rec->u.res.fsf_status_qual, &q_head->fsf_status_qual,
 	       FSF_STATUS_QUALIFIER_SIZE);
 
-	if (q_head->fsf_command != FSF_QTCB_FCP_CMND) {
-		rec->pl_len = q_head->log_length;
-		zfcp_dbf_pl_write(dbf, (char *)q_pref + q_head->log_start,
-				  rec->pl_len, "fsf_res", req->req_id);
-	}
+	rec->pl_len = q_head->log_length;
+	zfcp_dbf_pl_write(dbf, (char *)q_pref + q_head->log_start,
+			  rec->pl_len, "fsf_res", req->req_id);
+
+	debug_event(dbf->hba, level, rec, sizeof(*rec));
+	spin_unlock_irqrestore(&dbf->hba_lock, flags);
+}
+
+/**
+ * zfcp_dbf_hba_fsf_fces - trace event for fsf responses related to
+ *			   FC Endpoint Security (FCES)
+ * @tag: tag indicating which kind of FC Endpoint Security event has occurred
+ * @req: request for which a response was received
+ * @wwpn: remote port or ZFCP_DBF_INVALID_WWPN
+ * @fc_security_old: old FC Endpoint Security of FCP device or connection
+ * @fc_security_new: new FC Endpoint Security of FCP device or connection
+ */
+void zfcp_dbf_hba_fsf_fces(char *tag, const struct zfcp_fsf_req *req, u64 wwpn,
+			   u32 fc_security_old, u32 fc_security_new)
+{
+	struct zfcp_dbf *dbf = req->adapter->dbf;
+	struct fsf_qtcb_prefix *q_pref = &req->qtcb->prefix;
+	struct fsf_qtcb_header *q_head = &req->qtcb->header;
+	struct zfcp_dbf_hba *rec = &dbf->hba_buf;
+	static int const level = 3;
+	unsigned long flags;
+
+	if (unlikely(!debug_level_enabled(dbf->hba, level)))
+		return;
+
+	spin_lock_irqsave(&dbf->hba_lock, flags);
+	memset(rec, 0, sizeof(*rec));
+
+	memcpy(rec->tag, tag, ZFCP_DBF_TAG_LEN);
+	rec->id = ZFCP_DBF_HBA_FCES;
+	rec->fsf_req_id = req->req_id;
+	rec->fsf_req_status = req->status;
+	rec->fsf_cmd = q_head->fsf_command;
+	rec->fsf_seq_no = q_pref->req_seq_no;
+	rec->u.fces.req_issued = req->issued;
+	rec->u.fces.fsf_status = q_head->fsf_status;
+	rec->u.fces.port_handle = q_head->port_handle;
+	rec->u.fces.wwpn = wwpn;
+	rec->u.fces.fc_security_old = fc_security_old;
+	rec->u.fces.fc_security_new = fc_security_new;
 
 	debug_event(dbf->hba, level, rec, sizeof(*rec));
 	spin_unlock_irqrestore(&dbf->hba_lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_dbf.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_dbf.h
@@ -3,7 +3,7 @@
  * zfcp device driver
  * debug feature declarations
  *
- * Copyright IBM Corp. 2008, 2017
+ * Copyright IBM Corp. 2008, 2020
  */
 
 #ifndef ZFCP_DBF_H
@@ -16,6 +16,7 @@
 
 #define ZFCP_DBF_TAG_LEN       7
 
+#define ZFCP_DBF_INVALID_WWPN	0x0000000000000000ull
 #define ZFCP_DBF_INVALID_LUN	0xFFFFFFFFFFFFFFFFull
 
 enum zfcp_dbf_pseudo_erp_act_type {
@@ -158,17 +159,38 @@
 } __packed;
 
 /**
+ * struct zfcp_dbf_hba_fces - trace record for FC Endpoint Security
+ * @req_issued: timestamp when request was issued
+ * @fsf_status: fsf status
+ * @port_handle: handle for port
+ * @wwpn: remote FC port WWPN
+ * @fc_security_old: old FC Endpoint Security
+ * @fc_security_new: new FC Endpoint Security
+ *
+ */
+struct zfcp_dbf_hba_fces {
+	u64 req_issued;
+	u32 fsf_status;
+	u32 port_handle;
+	u64 wwpn;
+	u32 fc_security_old;
+	u32 fc_security_new;
+} __packed;
+
+/**
  * enum zfcp_dbf_hba_id - HBA trace record identifier
  * @ZFCP_DBF_HBA_RES: response trace record
  * @ZFCP_DBF_HBA_USS: unsolicited status trace record
  * @ZFCP_DBF_HBA_BIT: bit error trace record
  * @ZFCP_DBF_HBA_BASIC: basic adapter event, only trace tag, no other data
+ * @ZFCP_DBF_HBA_FCES: FC Endpoint Security trace record
  */
 enum zfcp_dbf_hba_id {
 	ZFCP_DBF_HBA_RES	= 1,
 	ZFCP_DBF_HBA_USS	= 2,
 	ZFCP_DBF_HBA_BIT	= 3,
 	ZFCP_DBF_HBA_BASIC	= 4,
+	ZFCP_DBF_HBA_FCES	= 5,
 };
 
 /**
@@ -181,9 +203,10 @@
  * @fsf_seq_no: fsf sequence number
  * @pl_len: length of payload stored as zfcp_dbf_pay
  * @u: record type specific data
- * @u.res: data for fsf responses
- * @u.uss: data for unsolicited status buffer
- * @u.be:  data for bit error unsolicited status buffer
+ * @u.res:  data for fsf responses
+ * @u.uss:  data for unsolicited status buffer
+ * @u.be:   data for bit error unsolicited status buffer
+ * @u.fces: data for FC Endpoint Security
  */
 struct zfcp_dbf_hba {
 	u8 id;
@@ -197,6 +220,7 @@
 		struct zfcp_dbf_hba_res res;
 		struct zfcp_dbf_hba_uss uss;
 		struct fsf_bit_error_payload be;
+		struct zfcp_dbf_hba_fces fces;
 	} u;
 } __packed;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_def.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_def.h
@@ -4,7 +4,7 @@
  *
  * Global definitions for the zfcp device driver.
  *
- * Copyright IBM Corp. 2002, 2017
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #ifndef ZFCP_DEF_H
@@ -86,6 +86,7 @@
 #define ZFCP_STATUS_FSFREQ_ABORTNOTNEEDED       0x00000080
 #define ZFCP_STATUS_FSFREQ_TMFUNCFAILED         0x00000200
 #define ZFCP_STATUS_FSFREQ_DISMISSED            0x00001000
+#define ZFCP_STATUS_FSFREQ_XDATAINCOMPLETE	0x00020000
 
 /************************* STRUCTURE DEFINITIONS *****************************/
 
@@ -157,6 +158,8 @@
 	u32			adapter_features;  /* FCP channel features */
 	u32			connection_features; /* host connection features */
         u32			hardware_version;  /* of FCP channel */
+	u32			fc_security_algorithms; /* of FCP channel */
+	u32			fc_security_algorithms_old; /* of FCP channel */
 	u16			timer_ticks;       /* time int for a tick */
 	struct Scsi_Host	*scsi_host;	   /* Pointer to mid-layer */
 	struct list_head	port_list;	   /* remote port list */
@@ -197,6 +200,7 @@
 	struct device_dma_parameters dma_parms;
 	struct zfcp_fc_events events;
 	unsigned long		next_port_scan;
+	struct zfcp_diag_adapter	*diagnostics;
 };
 
 struct zfcp_port {
@@ -216,6 +220,8 @@
         atomic_t               erp_counter;
 	u32                    maxframe_size;
 	u32                    supported_classes;
+	u32                    connection_info;
+	u32                    connection_info_old;
 	struct work_struct     gid_pn_work;
 	struct work_struct     test_link_work;
 	struct work_struct     rport_work;
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_diag.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_diag.c
@@ -0,0 +1,305 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * zfcp device driver
+ *
+ * Functions to handle diagnostics.
+ *
+ * Copyright IBM Corp. 2018
+ */
+
+#include <linux/spinlock.h>
+#include <linux/jiffies.h>
+#include <linux/string.h>
+#include <linux/kernfs.h>
+#include <linux/sysfs.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+
+#include "zfcp_diag.h"
+#include "zfcp_ext.h"
+#include "zfcp_def.h"
+
+static DECLARE_WAIT_QUEUE_HEAD(__zfcp_diag_publish_wait);
+
+/**
+ * zfcp_diag_adapter_setup() - Setup storage for adapter diagnostics.
+ * @adapter: the adapter to setup diagnostics for.
+ *
+ * Creates the data-structures to store the diagnostics for an adapter. This
+ * overwrites whatever was stored before at &zfcp_adapter->diagnostics!
+ *
+ * Return:
+ * * 0	     - Everyting is OK
+ * * -ENOMEM - Could not allocate all/parts of the data-structures;
+ *	       &zfcp_adapter->diagnostics remains unchanged
+ */
+int zfcp_diag_adapter_setup(struct zfcp_adapter *const adapter)
+{
+	struct zfcp_diag_adapter *diag;
+	struct zfcp_diag_header *hdr;
+
+	diag = kzalloc(sizeof(*diag), GFP_KERNEL);
+	if (diag == NULL)
+		return -ENOMEM;
+
+	diag->max_age = (5 * 1000); /* default value: 5 s */
+
+	/* setup header for port_data */
+	hdr = &diag->port_data.header;
+
+	spin_lock_init(&hdr->access_lock);
+	hdr->buffer = &diag->port_data.data;
+	hdr->buffer_size = sizeof(diag->port_data.data);
+	/* set the timestamp so that the first test on age will always fail */
+	hdr->timestamp = jiffies - msecs_to_jiffies(diag->max_age);
+
+	/* setup header for config_data */
+	hdr = &diag->config_data.header;
+
+	spin_lock_init(&hdr->access_lock);
+	hdr->buffer = &diag->config_data.data;
+	hdr->buffer_size = sizeof(diag->config_data.data);
+	/* set the timestamp so that the first test on age will always fail */
+	hdr->timestamp = jiffies - msecs_to_jiffies(diag->max_age);
+
+	adapter->diagnostics = diag;
+	return 0;
+}
+
+/**
+ * zfcp_diag_adapter_free() - Frees all adapter diagnostics allocations.
+ * @adapter: the adapter whose diagnostic structures should be freed.
+ *
+ * Frees all data-structures in the given adapter that store diagnostics
+ * information. Can savely be called with partially setup diagnostics.
+ */
+void zfcp_diag_adapter_free(struct zfcp_adapter *const adapter)
+{
+	kfree(adapter->diagnostics);
+	adapter->diagnostics = NULL;
+}
+
+/**
+ * zfcp_diag_sysfs_setup() - Setup the sysfs-group for adapter-diagnostics.
+ * @adapter: target adapter to which the group should be added.
+ *
+ * Return: 0 on success; Something else otherwise (see sysfs_create_group()).
+ */
+int zfcp_diag_sysfs_setup(struct zfcp_adapter *const adapter)
+{
+	int rc = sysfs_create_group(&adapter->ccw_device->dev.kobj,
+				    &zfcp_sysfs_diag_attr_group);
+	if (rc == 0)
+		adapter->diagnostics->sysfs_established = 1;
+
+	return rc;
+}
+
+/**
+ * zfcp_diag_sysfs_destroy() - Remove the sysfs-group for adapter-diagnostics.
+ * @adapter: target adapter from which the group should be removed.
+ */
+void zfcp_diag_sysfs_destroy(struct zfcp_adapter *const adapter)
+{
+	if (adapter->diagnostics == NULL ||
+	    !adapter->diagnostics->sysfs_established)
+		return;
+
+	/*
+	 * We need this state-handling so we can prevent warnings being printed
+	 * on the kernel-console in case we have to abort a halfway done
+	 * zfcp_adapter_enqueue(), in which the sysfs-group was not yet
+	 * established. sysfs_remove_group() does this checking as well, but
+	 * still prints a warning in case we try to remove a group that has not
+	 * been established before
+	 */
+	adapter->diagnostics->sysfs_established = 0;
+	sysfs_remove_group(&adapter->ccw_device->dev.kobj,
+			   &zfcp_sysfs_diag_attr_group);
+}
+
+
+/**
+ * zfcp_diag_update_xdata() - Update a diagnostics buffer.
+ * @hdr: the meta data to update.
+ * @data: data to use for the update.
+ * @incomplete: flag stating whether the data in @data is incomplete.
+ */
+void zfcp_diag_update_xdata(struct zfcp_diag_header *const hdr,
+			    const void *const data, const bool incomplete)
+{
+	const unsigned long capture_timestamp = jiffies;
+	unsigned long flags;
+
+	spin_lock_irqsave(&hdr->access_lock, flags);
+
+	/* make sure we never go into the past with an update */
+	if (!time_after_eq(capture_timestamp, hdr->timestamp))
+		goto out;
+
+	hdr->timestamp = capture_timestamp;
+	hdr->incomplete = incomplete;
+	memcpy(hdr->buffer, data, hdr->buffer_size);
+out:
+	spin_unlock_irqrestore(&hdr->access_lock, flags);
+}
+
+/**
+ * zfcp_diag_update_port_data_buffer() - Implementation of
+ *					 &typedef zfcp_diag_update_buffer_func
+ *					 to collect and update Port Data.
+ * @adapter: Adapter to collect Port Data from.
+ *
+ * This call is SYNCHRONOUS ! It blocks till the respective command has
+ * finished completely, or has failed in some way.
+ *
+ * Return:
+ * * 0		- Successfully retrieved new Diagnostics and Updated the buffer;
+ *		  this also includes cases where data was retrieved, but
+ *		  incomplete; you'll have to check the flag ``incomplete``
+ *		  of &struct zfcp_diag_header.
+ * * see zfcp_fsf_exchange_port_data_sync() for possible error-codes (
+ *   excluding -EAGAIN)
+ */
+int zfcp_diag_update_port_data_buffer(struct zfcp_adapter *const adapter)
+{
+	int rc;
+
+	rc = zfcp_fsf_exchange_port_data_sync(adapter->qdio, NULL);
+	if (rc == -EAGAIN)
+		rc = 0; /* signaling incomplete via struct zfcp_diag_header */
+
+	/* buffer-data was updated in zfcp_fsf_exchange_port_data_handler() */
+
+	return rc;
+}
+
+/**
+ * zfcp_diag_update_config_data_buffer() - Implementation of
+ *					   &typedef zfcp_diag_update_buffer_func
+ *					   to collect and update Config Data.
+ * @adapter: Adapter to collect Config Data from.
+ *
+ * This call is SYNCHRONOUS ! It blocks till the respective command has
+ * finished completely, or has failed in some way.
+ *
+ * Return:
+ * * 0		- Successfully retrieved new Diagnostics and Updated the buffer;
+ *		  this also includes cases where data was retrieved, but
+ *		  incomplete; you'll have to check the flag ``incomplete``
+ *		  of &struct zfcp_diag_header.
+ * * see zfcp_fsf_exchange_config_data_sync() for possible error-codes (
+ *   excluding -EAGAIN)
+ */
+int zfcp_diag_update_config_data_buffer(struct zfcp_adapter *const adapter)
+{
+	int rc;
+
+	rc = zfcp_fsf_exchange_config_data_sync(adapter->qdio, NULL);
+	if (rc == -EAGAIN)
+		rc = 0; /* signaling incomplete via struct zfcp_diag_header */
+
+	/* buffer-data was updated in zfcp_fsf_exchange_config_data_handler() */
+
+	return rc;
+}
+
+static int __zfcp_diag_update_buffer(struct zfcp_adapter *const adapter,
+				     struct zfcp_diag_header *const hdr,
+				     zfcp_diag_update_buffer_func buffer_update,
+				     unsigned long *const flags)
+	__must_hold(hdr->access_lock)
+{
+	int rc;
+
+	if (hdr->updating == 1) {
+		rc = wait_event_interruptible_lock_irq(__zfcp_diag_publish_wait,
+						       hdr->updating == 0,
+						       hdr->access_lock);
+		rc = (rc == 0 ? -EAGAIN : -EINTR);
+	} else {
+		hdr->updating = 1;
+		spin_unlock_irqrestore(&hdr->access_lock, *flags);
+
+		/* unlocked, because update function sleeps */
+		rc = buffer_update(adapter);
+
+		spin_lock_irqsave(&hdr->access_lock, *flags);
+		hdr->updating = 0;
+
+		/*
+		 * every thread waiting here went via an interruptible wait,
+		 * so its fine to only wake those
+		 */
+		wake_up_interruptible_all(&__zfcp_diag_publish_wait);
+	}
+
+	return rc;
+}
+
+static bool
+__zfcp_diag_test_buffer_age_isfresh(const struct zfcp_diag_adapter *const diag,
+				    const struct zfcp_diag_header *const hdr)
+	__must_hold(hdr->access_lock)
+{
+	const unsigned long now = jiffies;
+
+	/*
+	 * Should not happen (data is from the future).. if it does, still
+	 * signal that it needs refresh
+	 */
+	if (!time_after_eq(now, hdr->timestamp))
+		return false;
+
+	if (jiffies_to_msecs(now - hdr->timestamp) >= diag->max_age)
+		return false;
+
+	return true;
+}
+
+/**
+ * zfcp_diag_update_buffer_limited() - Collect diagnostics and update a
+ *				       diagnostics buffer rate limited.
+ * @adapter: Adapter to collect the diagnostics from.
+ * @hdr: buffer-header for which to update with the collected diagnostics.
+ * @buffer_update: Specific implementation for collecting and updating.
+ *
+ * This function will cause an update of the given @hdr by calling the also
+ * given @buffer_update function. If called by multiple sources at the same
+ * time, it will synchornize the update by only allowing one source to call
+ * @buffer_update and the others to wait for that source to complete instead
+ * (the wait is interruptible).
+ *
+ * Additionally this version is rate-limited and will only exit if either the
+ * buffer is fresh enough (within the limit) - it will do nothing if the buffer
+ * is fresh enough to begin with -, or if the source/thread that started this
+ * update is the one that made the update (to prevent endless loops).
+ *
+ * Return:
+ * * 0		- If the update was successfully published and/or the buffer is
+ *		  fresh enough
+ * * -EINTR	- If the thread went into the wait-state and was interrupted
+ * * whatever @buffer_update returns
+ */
+int zfcp_diag_update_buffer_limited(struct zfcp_adapter *const adapter,
+				    struct zfcp_diag_header *const hdr,
+				    zfcp_diag_update_buffer_func buffer_update)
+{
+	unsigned long flags;
+	int rc;
+
+	spin_lock_irqsave(&hdr->access_lock, flags);
+
+	for (rc = 0;
+	     !__zfcp_diag_test_buffer_age_isfresh(adapter->diagnostics, hdr);
+	     rc = 0) {
+		rc = __zfcp_diag_update_buffer(adapter, hdr, buffer_update,
+					       &flags);
+		if (rc != -EAGAIN)
+			break;
+	}
+
+	spin_unlock_irqrestore(&hdr->access_lock, flags);
+
+	return rc;
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_diag.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_diag.h
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * zfcp device driver
+ *
+ * Definitions for handling diagnostics in the the zfcp device driver.
+ *
+ * Copyright IBM Corp. 2018, 2020
+ */
+
+#ifndef ZFCP_DIAG_H
+#define ZFCP_DIAG_H
+
+#include <linux/spinlock.h>
+
+#include "zfcp_fsf.h"
+#include "zfcp_def.h"
+
+/**
+ * struct zfcp_diag_header - general part of a diagnostic buffer.
+ * @access_lock: lock protecting all the data in this buffer.
+ * @updating: flag showing that an update for this buffer is currently running.
+ * @incomplete: flag showing that the data in @buffer is incomplete.
+ * @timestamp: time in jiffies when the data of this buffer was last captured.
+ * @buffer: implementation-depending data of this buffer
+ * @buffer_size: size of @buffer
+ */
+struct zfcp_diag_header {
+	spinlock_t	access_lock;
+
+	/* Flags */
+	u64		updating	:1;
+	u64		incomplete	:1;
+
+	unsigned long	timestamp;
+
+	void		*buffer;
+	size_t		buffer_size;
+};
+
+/**
+ * struct zfcp_diag_adapter - central storage for all diagnostics concerning an
+ *			      adapter.
+ * @sysfs_established: flag showing that the associated sysfs-group was created
+ *		       during run of zfcp_adapter_enqueue().
+ * @max_age: maximum age of data in diagnostic buffers before they need to be
+ *	     refreshed (in ms).
+ * @port_data: data retrieved using exchange port data.
+ * @port_data.header: header with metadata for the cache in @port_data.data.
+ * @port_data.data: cached QTCB Bottom of command exchange port data.
+ * @config_data: data retrieved using exchange config data.
+ * @config_data.header: header with metadata for the cache in @config_data.data.
+ * @config_data.data: cached QTCB Bottom of command exchange config data.
+ */
+struct zfcp_diag_adapter {
+	u64	sysfs_established	:1;
+
+	unsigned long	max_age;
+
+	struct zfcp_diag_adapter_port_data {
+		struct zfcp_diag_header		header;
+		struct fsf_qtcb_bottom_port	data;
+	} port_data;
+	struct zfcp_diag_adapter_config_data {
+		struct zfcp_diag_header		header;
+		struct fsf_qtcb_bottom_config	data;
+	} config_data;
+};
+
+int zfcp_diag_adapter_setup(struct zfcp_adapter *const adapter);
+void zfcp_diag_adapter_free(struct zfcp_adapter *const adapter);
+
+int zfcp_diag_sysfs_setup(struct zfcp_adapter *const adapter);
+void zfcp_diag_sysfs_destroy(struct zfcp_adapter *const adapter);
+
+void zfcp_diag_update_xdata(struct zfcp_diag_header *const hdr,
+			    const void *const data, const bool incomplete);
+
+/*
+ * Function-Type used in zfcp_diag_update_buffer_limited() for the function
+ * that does the buffer-implementation dependent work.
+ */
+typedef int (*zfcp_diag_update_buffer_func)(struct zfcp_adapter *const adapter);
+
+int zfcp_diag_update_config_data_buffer(struct zfcp_adapter *const adapter);
+int zfcp_diag_update_port_data_buffer(struct zfcp_adapter *const adapter);
+int zfcp_diag_update_buffer_limited(struct zfcp_adapter *const adapter,
+				    struct zfcp_diag_header *const hdr,
+				    zfcp_diag_update_buffer_func buffer_update);
+
+/**
+ * zfcp_diag_support_sfp() - Return %true if the @adapter supports reporting
+ *			     SFP Data.
+ * @adapter: adapter to test the availability of SFP Data reporting for.
+ */
+static inline bool
+zfcp_diag_support_sfp(const struct zfcp_adapter *const adapter)
+{
+	return !!(adapter->adapter_features & FSF_FEATURE_REPORT_SFP_DATA);
+}
+
+#endif /* ZFCP_DIAG_H */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_erp.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_erp.c
@@ -4,7 +4,7 @@
  *
  * Error Recovery Procedures (ERP).
  *
- * Copyright IBM Corp. 2002, 2017
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #define KMSG_COMPONENT "zfcp"
@@ -14,6 +14,7 @@
 #include <linux/bug.h>
 #include "zfcp_ext.h"
 #include "zfcp_reqlist.h"
+#include "zfcp_diag.h"
 
 #define ZFCP_MAX_ERPS                   3
 
@@ -174,29 +175,29 @@
 			return 0;
 		p_status = atomic_read(&port->status);
 		if (!(p_status & ZFCP_STATUS_COMMON_RUNNING) ||
-		      p_status & ZFCP_STATUS_COMMON_ERP_FAILED)
+		    p_status & ZFCP_STATUS_COMMON_ERP_FAILED)
 			return 0;
 		if (!(p_status & ZFCP_STATUS_COMMON_UNBLOCKED))
 			need = ZFCP_ERP_ACTION_REOPEN_PORT;
-		/* fall through */
+		fallthrough;
 	case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED:
 		p_status = atomic_read(&port->status);
 		if (!(p_status & ZFCP_STATUS_COMMON_OPEN))
 			need = ZFCP_ERP_ACTION_REOPEN_PORT;
-		/* fall through */
+		fallthrough;
 	case ZFCP_ERP_ACTION_REOPEN_PORT:
 		p_status = atomic_read(&port->status);
 		if (p_status & ZFCP_STATUS_COMMON_ERP_INUSE)
 			return 0;
 		a_status = atomic_read(&adapter->status);
 		if (!(a_status & ZFCP_STATUS_COMMON_RUNNING) ||
-		      a_status & ZFCP_STATUS_COMMON_ERP_FAILED)
+		    a_status & ZFCP_STATUS_COMMON_ERP_FAILED)
 			return 0;
 		if (p_status & ZFCP_STATUS_COMMON_NOESC)
 			return need;
 		if (!(a_status & ZFCP_STATUS_COMMON_UNBLOCKED))
 			need = ZFCP_ERP_ACTION_REOPEN_ADAPTER;
-		/* fall through */
+		fallthrough;
 	case ZFCP_ERP_ACTION_REOPEN_ADAPTER:
 		a_status = atomic_read(&adapter->status);
 		if (a_status & ZFCP_STATUS_COMMON_ERP_INUSE)
@@ -576,7 +577,10 @@
 				   ZFCP_STATUS_ERP_TIMEDOUT)) {
 			req->status |= ZFCP_STATUS_FSFREQ_DISMISSED;
 			zfcp_dbf_rec_run("erscf_1", act);
-			req->erp_action = NULL;
+			/* lock-free concurrent access with
+			 * zfcp_erp_timeout_handler()
+			 */
+			WRITE_ONCE(req->erp_action, NULL);
 		}
 		if (act->status & ZFCP_STATUS_ERP_TIMEDOUT)
 			zfcp_dbf_rec_run("erscf_2", act);
@@ -612,8 +616,14 @@
 void zfcp_erp_timeout_handler(struct timer_list *t)
 {
 	struct zfcp_fsf_req *fsf_req = from_timer(fsf_req, t, timer);
-	struct zfcp_erp_action *act = fsf_req->erp_action;
+	struct zfcp_erp_action *act;
 
+	if (fsf_req->status & ZFCP_STATUS_FSFREQ_DISMISSED)
+		return;
+	/* lock-free concurrent access with zfcp_erp_strategy_check_fsfreq() */
+	act = READ_ONCE(fsf_req->erp_action);
+	if (!act)
+		return;
 	zfcp_erp_notify(act, ZFCP_STATUS_ERP_TIMEDOUT);
 }
 
@@ -725,7 +735,7 @@
 				 adapter->peer_d_id);
 	if (IS_ERR(port)) /* error or port already attached */
 		return;
-	_zfcp_erp_port_reopen(port, 0, "ereptp1");
+	zfcp_erp_port_reopen(port, 0, "ereptp1");
 }
 
 static enum zfcp_erp_act_result zfcp_erp_adapter_strat_fsf_xconf(
@@ -768,10 +778,14 @@
 	if (!(atomic_read(&adapter->status) & ZFCP_STATUS_ADAPTER_XCONFIG_OK))
 		return ZFCP_ERP_FAILED;
 
+	return ZFCP_ERP_SUCCEEDED;
+}
+
+static void
+zfcp_erp_adapter_strategy_open_ptp_port(struct zfcp_adapter *const adapter)
+{
 	if (fc_host_port_type(adapter->scsi_host) == FC_PORTTYPE_PTP)
 		zfcp_erp_enqueue_ptp_port(adapter);
-
-	return ZFCP_ERP_SUCCEEDED;
 }
 
 static enum zfcp_erp_act_result zfcp_erp_adapter_strategy_open_fsf_xport(
@@ -800,6 +814,59 @@
 	return ZFCP_ERP_SUCCEEDED;
 }
 
+static enum zfcp_erp_act_result
+zfcp_erp_adapter_strategy_alloc_shost(struct zfcp_adapter *const adapter)
+{
+	struct zfcp_diag_adapter_config_data *const config_data =
+		&adapter->diagnostics->config_data;
+	struct zfcp_diag_adapter_port_data *const port_data =
+		&adapter->diagnostics->port_data;
+	unsigned long flags;
+	int rc;
+
+	rc = zfcp_scsi_adapter_register(adapter);
+	if (rc == -EEXIST)
+		return ZFCP_ERP_SUCCEEDED;
+	else if (rc)
+		return ZFCP_ERP_FAILED;
+
+	/*
+	 * We allocated the shost for the first time. Before it was NULL,
+	 * and so we deferred all updates in the xconf- and xport-data
+	 * handlers. We need to make up for that now, and make all the updates
+	 * that would have been done before.
+	 *
+	 * We can be sure that xconf- and xport-data succeeded, because
+	 * otherwise this function is not called. But they might have been
+	 * incomplete.
+	 */
+
+	spin_lock_irqsave(&config_data->header.access_lock, flags);
+	zfcp_scsi_shost_update_config_data(adapter, &config_data->data,
+					   !!config_data->header.incomplete);
+	spin_unlock_irqrestore(&config_data->header.access_lock, flags);
+
+	if (adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT) {
+		spin_lock_irqsave(&port_data->header.access_lock, flags);
+		zfcp_scsi_shost_update_port_data(adapter, &port_data->data);
+		spin_unlock_irqrestore(&port_data->header.access_lock, flags);
+	}
+
+	/*
+	 * There is a remote possibility that the 'Exchange Port Data' request
+	 * reports a different connectivity status than 'Exchange Config Data'.
+	 * But any change to the connectivity status of the local optic that
+	 * happens after the initial xconf request is expected to be reported
+	 * to us, as soon as we post Status Read Buffers to the FCP channel
+	 * firmware after this function. So any resulting inconsistency will
+	 * only be momentary.
+	 */
+	if (config_data->header.incomplete)
+		zfcp_fsf_fc_host_link_down(adapter);
+
+	return ZFCP_ERP_SUCCEEDED;
+}
+
 static enum zfcp_erp_act_result zfcp_erp_adapter_strategy_open_fsf(
 	struct zfcp_erp_action *act)
 {
@@ -809,6 +876,12 @@
 	if (zfcp_erp_adapter_strategy_open_fsf_xport(act) == ZFCP_ERP_FAILED)
 		return ZFCP_ERP_FAILED;
 
+	if (zfcp_erp_adapter_strategy_alloc_shost(act->adapter) ==
+	    ZFCP_ERP_FAILED)
+		return ZFCP_ERP_FAILED;
+
+	zfcp_erp_adapter_strategy_open_ptp_port(act->adapter);
+
 	if (mempool_resize(act->adapter->pool.sr_data,
 			   act->adapter->stat_read_buf_num))
 		return ZFCP_ERP_FAILED;
@@ -1086,7 +1159,7 @@
 		if (atomic_read(&zfcp_sdev->status) & ZFCP_STATUS_COMMON_OPEN)
 			return zfcp_erp_lun_strategy_close(erp_action);
 		/* already closed */
-		/* fall through */
+		fallthrough;
 	case ZFCP_ERP_STEP_LUN_CLOSING:
 		if (atomic_read(&zfcp_sdev->status) & ZFCP_STATUS_COMMON_OPEN)
 			return ZFCP_ERP_FAILED;
@@ -1415,7 +1488,7 @@
 		if (act->step != ZFCP_ERP_STEP_UNINITIALIZED)
 			if (result == ZFCP_ERP_SUCCEEDED)
 				zfcp_erp_try_rport_unblock(port);
-		/* fall through */
+		fallthrough;
 	case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED:
 		put_device(&port->dev);
 		break;
@@ -1636,6 +1709,13 @@
 		atomic_or(common_mask, &port->status);
 	read_unlock_irqrestore(&adapter->port_list_lock, flags);
 
+	/*
+	 * if `scsi_host` is missing, xconfig/xport data has never completed
+	 * yet, so we can't access it, but there are also no SDEVs yet
+	 */
+	if (adapter->scsi_host == NULL)
+		return;
+
 	spin_lock_irqsave(adapter->scsi_host->host_lock, flags);
 	__shost_for_each_device(sdev, adapter->scsi_host)
 		atomic_or(common_mask, &sdev_to_zfcp(sdev)->status);
@@ -1673,6 +1753,13 @@
 	}
 	read_unlock_irqrestore(&adapter->port_list_lock, flags);
 
+	/*
+	 * if `scsi_host` is missing, xconfig/xport data has never completed
+	 * yet, so we can't access it, but there are also no SDEVs yet
+	 */
+	if (adapter->scsi_host == NULL)
+		return;
+
 	spin_lock_irqsave(adapter->scsi_host->host_lock, flags);
 	__shost_for_each_device(sdev, adapter->scsi_host) {
 		atomic_andnot(common_mask, &sdev_to_zfcp(sdev)->status);
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_ext.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_ext.h
@@ -4,7 +4,7 @@
  *
  * External function declarations.
  *
- * Copyright IBM Corp. 2002, 2018
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #ifndef ZFCP_EXT_H
@@ -44,6 +44,9 @@
 extern void zfcp_dbf_rec_run_wka(char *, struct zfcp_fc_wka_port *, u64);
 extern void zfcp_dbf_hba_fsf_uss(char *, struct zfcp_fsf_req *);
 extern void zfcp_dbf_hba_fsf_res(char *, int, struct zfcp_fsf_req *);
+extern void zfcp_dbf_hba_fsf_fces(char *tag, const struct zfcp_fsf_req *req,
+				  u64 wwpn, u32 fc_security_old,
+				  u32 fc_security_new);
 extern void zfcp_dbf_hba_bit_err(char *, struct zfcp_fsf_req *);
 extern void zfcp_dbf_hba_def_err(struct zfcp_adapter *, u64, u16, void **);
 extern void zfcp_dbf_hba_basic(char *, struct zfcp_adapter *);
@@ -122,6 +125,7 @@
 extern int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *);
 extern int zfcp_fsf_exchange_port_data_sync(struct zfcp_qdio *,
 					    struct fsf_qtcb_bottom_port *);
+extern u32 zfcp_fsf_convert_portspeed(u32 fsf_speed);
 extern void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *);
 extern int zfcp_fsf_status_read(struct zfcp_qdio *);
 extern int zfcp_status_read_refill(struct zfcp_adapter *adapter);
@@ -131,10 +135,18 @@
 			     struct zfcp_fsf_ct_els *, unsigned int);
 extern int zfcp_fsf_fcp_cmnd(struct scsi_cmnd *);
 extern void zfcp_fsf_req_free(struct zfcp_fsf_req *);
+extern void zfcp_fsf_fc_host_link_down(struct zfcp_adapter *adapter);
 extern struct zfcp_fsf_req *zfcp_fsf_fcp_task_mgmt(struct scsi_device *sdev,
 						   u8 tm_flags);
 extern struct zfcp_fsf_req *zfcp_fsf_abort_fcp_cmnd(struct scsi_cmnd *);
 extern void zfcp_fsf_reqid_check(struct zfcp_qdio *, int);
+enum zfcp_fsf_print_fmt {
+	ZFCP_FSF_PRINT_FMT_LIST,
+	ZFCP_FSF_PRINT_FMT_SINGLEITEM,
+};
+extern ssize_t zfcp_fsf_scnprint_fc_security(char *buf, size_t size,
+					     u32 fc_security,
+					     enum zfcp_fsf_print_fmt fmt);
 
 /* zfcp_qdio.c */
 extern int zfcp_qdio_setup(struct zfcp_adapter *);
@@ -143,6 +155,8 @@
 extern int zfcp_qdio_send(struct zfcp_qdio *, struct zfcp_qdio_req *);
 extern int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *, struct zfcp_qdio_req *,
 				   struct scatterlist *);
+extern void zfcp_qdio_shost_update(struct zfcp_adapter *const adapter,
+				   const struct zfcp_qdio *const qdio);
 extern int zfcp_qdio_open(struct zfcp_qdio *);
 extern void zfcp_qdio_close(struct zfcp_qdio *);
 extern void zfcp_qdio_siosl(struct zfcp_adapter *);
@@ -159,6 +173,13 @@
 extern void zfcp_scsi_schedule_rports_block(struct zfcp_adapter *);
 extern void zfcp_scsi_set_prot(struct zfcp_adapter *);
 extern void zfcp_scsi_dif_sense_error(struct scsi_cmnd *, int);
+extern void zfcp_scsi_shost_update_config_data(
+	struct zfcp_adapter *const adapter,
+	const struct fsf_qtcb_bottom_config *const bottom,
+	const bool bottom_incomplete);
+extern void zfcp_scsi_shost_update_port_data(
+	struct zfcp_adapter *const adapter,
+	const struct fsf_qtcb_bottom_port *const bottom);
 
 /* zfcp_sysfs.c */
 extern const struct attribute_group *zfcp_unit_attr_groups[];
@@ -167,6 +188,7 @@
 extern struct mutex zfcp_sysfs_port_units_mutex;
 extern struct device_attribute *zfcp_sysfs_sdev_attrs[];
 extern struct device_attribute *zfcp_sysfs_shost_attrs[];
+extern const struct attribute_group zfcp_sysfs_diag_attr_group;
 bool zfcp_sysfs_port_is_removing(const struct zfcp_port *const port);
 
 /* zfcp_unit.c */
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_fsf.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_fsf.c
@@ -4,13 +4,14 @@
  *
  * Implementation of FSF commands.
  *
- * Copyright IBM Corp. 2002, 2018
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #define KMSG_COMPONENT "zfcp"
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
 #include <linux/blktrace_api.h>
+#include <linux/jiffies.h>
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <scsi/fc/fc_els.h>
@@ -19,6 +20,7 @@
 #include "zfcp_dbf.h"
 #include "zfcp_qdio.h"
 #include "zfcp_reqlist.h"
+#include "zfcp_diag.h"
 
 /* timeout for FSF requests sent during scsi_eh: abort or FCP TMF */
 #define ZFCP_FSF_SCSI_ER_TIMEOUT (10*HZ)
@@ -118,6 +120,27 @@
 	read_unlock_irqrestore(&adapter->port_list_lock, flags);
 }
 
+void zfcp_fsf_fc_host_link_down(struct zfcp_adapter *adapter)
+{
+	struct Scsi_Host *shost = adapter->scsi_host;
+
+	adapter->hydra_version = 0;
+	adapter->peer_wwpn = 0;
+	adapter->peer_wwnn = 0;
+	adapter->peer_d_id = 0;
+
+	/* if there is no shost yet, we have nothing to zero-out */
+	if (shost == NULL)
+		return;
+
+	fc_host_port_id(shost) = 0;
+	fc_host_fabric_name(shost) = 0;
+	fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
+	fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN;
+	snprintf(fc_host_model(shost), FC_SYMBOLIC_NAME_SIZE, "0x%04x", 0);
+	memset(fc_host_active_fc4s(shost), 0, FC_FC4_LIST_SIZE);
+}
+
 static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req,
 					 struct fsf_link_down_info *link_down)
 {
@@ -130,6 +153,8 @@
 
 	zfcp_scsi_schedule_rports_block(adapter);
 
+	zfcp_fsf_fc_host_link_down(adapter);
+
 	if (!link_down)
 		goto out;
 
@@ -409,7 +434,7 @@
 		return;
 	}
 
-	del_timer(&req->timer);
+	del_timer_sync(&req->timer);
 	zfcp_fsf_protstatus_eval(req);
 	zfcp_fsf_fsfstatus_eval(req);
 	req->handler(req);
@@ -458,7 +483,7 @@
 #define ZFCP_FSF_PORTSPEED_128GBIT	(1 <<  8)
 #define ZFCP_FSF_PORTSPEED_NOT_NEGOTIATED (1 << 15)
 
-static u32 zfcp_fsf_convert_portspeed(u32 fsf_speed)
+u32 zfcp_fsf_convert_portspeed(u32 fsf_speed)
 {
 	u32 fdmi_speed = 0;
 	if (fsf_speed & ZFCP_FSF_PORTSPEED_1GBIT)
@@ -488,40 +513,24 @@
 {
 	struct fsf_qtcb_bottom_config *bottom = &req->qtcb->bottom.config;
 	struct zfcp_adapter *adapter = req->adapter;
-	struct Scsi_Host *shost = adapter->scsi_host;
-	struct fc_els_flogi *nsp, *plogi;
+	struct fc_els_flogi *plogi;
 
 	/* adjust pointers for missing command code */
-	nsp = (struct fc_els_flogi *) ((u8 *)&bottom->nport_serv_param
-					- sizeof(u32));
 	plogi = (struct fc_els_flogi *) ((u8 *)&bottom->plogi_payload
 					- sizeof(u32));
 
 	if (req->data)
 		memcpy(req->data, bottom, sizeof(*bottom));
 
-	fc_host_port_name(shost) = be64_to_cpu(nsp->fl_wwpn);
-	fc_host_node_name(shost) = be64_to_cpu(nsp->fl_wwnn);
-	fc_host_supported_classes(shost) = FC_COS_CLASS2 | FC_COS_CLASS3;
-
 	adapter->timer_ticks = bottom->timer_interval & ZFCP_FSF_TIMER_INT_MASK;
 	adapter->stat_read_buf_num = max(bottom->status_read_buf_num,
 					 (u16)FSF_STATUS_READS_RECOM);
 
-	if (fc_host_permanent_port_name(shost) == -1)
-		fc_host_permanent_port_name(shost) = fc_host_port_name(shost);
-
-	zfcp_scsi_set_prot(adapter);
-
 	/* no error return above here, otherwise must fix call chains */
 	/* do not evaluate invalid fields */
 	if (req->qtcb->header.fsf_status == FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE)
 		return 0;
 
-	fc_host_port_id(shost) = ntoh24(bottom->s_id);
-	fc_host_speed(shost) =
-		zfcp_fsf_convert_portspeed(bottom->fc_link_speed);
-
 	adapter->hydra_version = bottom->adapter_type;
 
 	switch (bottom->fc_topology) {
@@ -529,17 +538,10 @@
 		adapter->peer_d_id = ntoh24(bottom->peer_d_id);
 		adapter->peer_wwpn = be64_to_cpu(plogi->fl_wwpn);
 		adapter->peer_wwnn = be64_to_cpu(plogi->fl_wwnn);
-		fc_host_port_type(shost) = FC_PORTTYPE_PTP;
 		break;
 	case FSF_TOPO_FABRIC:
-		if (bottom->connection_features & FSF_FEATURE_NPIV_MODE)
-			fc_host_port_type(shost) = FC_PORTTYPE_NPIV;
-		else
-			fc_host_port_type(shost) = FC_PORTTYPE_NPORT;
 		break;
 	case FSF_TOPO_AL:
-		fc_host_port_type(shost) = FC_PORTTYPE_NLPORT;
-		/* fall through */
 	default:
 		dev_err(&adapter->ccw_device->dev,
 			"Unknown or unsupported arbitrated loop "
@@ -554,9 +556,10 @@
 static void zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *req)
 {
 	struct zfcp_adapter *adapter = req->adapter;
+	struct zfcp_diag_header *const diag_hdr =
+		&adapter->diagnostics->config_data.header;
 	struct fsf_qtcb *qtcb = req->qtcb;
 	struct fsf_qtcb_bottom_config *bottom = &qtcb->bottom.config;
-	struct Scsi_Host *shost = adapter->scsi_host;
 
 	if (req->status & ZFCP_STATUS_FSFREQ_ERROR)
 		return;
@@ -570,6 +573,13 @@
 
 	switch (qtcb->header.fsf_status) {
 	case FSF_GOOD:
+		/*
+		 * usually we wait with an update till the cache is too old,
+		 * but because we have the data available, update it anyway
+		 */
+		zfcp_diag_update_xdata(diag_hdr, bottom, false);
+
+		zfcp_scsi_shost_update_config_data(adapter, bottom, false);
 		if (zfcp_fsf_exchange_config_evaluate(req))
 			return;
 
@@ -585,12 +595,8 @@
 				&adapter->status);
 		break;
 	case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE:
-		fc_host_node_name(shost) = 0;
-		fc_host_port_name(shost) = 0;
-		fc_host_port_id(shost) = 0;
-		fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
-		fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN;
-		adapter->hydra_version = 0;
+		zfcp_diag_update_xdata(diag_hdr, bottom, true);
+		req->status |= ZFCP_STATUS_FSFREQ_XDATAINCOMPLETE;
 
 		/* avoids adapter shutdown to be able to recognize
 		 * events such as LINK UP */
@@ -598,6 +604,8 @@
 				&adapter->status);
 		zfcp_fsf_link_down_info_eval(req,
 			&qtcb->header.fsf_status_qual.link_down_info);
+
+		zfcp_scsi_shost_update_config_data(adapter, bottom, true);
 		if (zfcp_fsf_exchange_config_evaluate(req))
 			return;
 		break;
@@ -606,13 +614,8 @@
 		return;
 	}
 
-	if (adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT) {
+	if (adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)
 		adapter->hardware_version = bottom->hardware_version;
-		memcpy(fc_host_serial_number(shost), bottom->serial_number,
-		       min(FC_SERIAL_NUMBER_SIZE, 17));
-		EBCASC(fc_host_serial_number(shost),
-		       min(FC_SERIAL_NUMBER_SIZE, 17));
-	}
 
 	if (FSF_QTCB_CURRENT_VERSION < bottom->low_qtcb_version) {
 		dev_err(&adapter->ccw_device->dev,
@@ -629,43 +632,145 @@
 	}
 }
 
+/*
+ * Mapping of FC Endpoint Security flag masks to mnemonics
+ *
+ * NOTE: Update macro ZFCP_FSF_MAX_FC_SECURITY_MNEMONIC_LENGTH when making any
+ *       changes.
+ */
+static const struct {
+	u32	mask;
+	char	*name;
+} zfcp_fsf_fc_security_mnemonics[] = {
+	{ FSF_FC_SECURITY_AUTH,		"Authentication" },
+	{ FSF_FC_SECURITY_ENC_FCSP2 |
+	  FSF_FC_SECURITY_ENC_ERAS,	"Encryption" },
+};
+
+/* maximum strlen(zfcp_fsf_fc_security_mnemonics[...].name) + 1 */
+#define ZFCP_FSF_MAX_FC_SECURITY_MNEMONIC_LENGTH 15
+
+/**
+ * zfcp_fsf_scnprint_fc_security() - translate FC Endpoint Security flags into
+ *                                   mnemonics and place in a buffer
+ * @buf        : the buffer to place the translated FC Endpoint Security flag(s)
+ *               into
+ * @size       : the size of the buffer, including the trailing null space
+ * @fc_security: one or more FC Endpoint Security flags, or zero
+ * @fmt        : specifies whether a list or a single item is to be put into the
+ *               buffer
+ *
+ * The Fibre Channel (FC) Endpoint Security flags are translated into mnemonics.
+ * If the FC Endpoint Security flags are zero "none" is placed into the buffer.
+ *
+ * With ZFCP_FSF_PRINT_FMT_LIST the mnemonics are placed as a list separated by
+ * a comma followed by a space into the buffer. If one or more FC Endpoint
+ * Security flags cannot be translated into a mnemonic, as they are undefined
+ * in zfcp_fsf_fc_security_mnemonics, their bitwise ORed value in hexadecimal
+ * representation is placed into the buffer.
+ *
+ * With ZFCP_FSF_PRINT_FMT_SINGLEITEM only one single mnemonic is placed into
+ * the buffer. If the FC Endpoint Security flag cannot be translated, as it is
+ * undefined in zfcp_fsf_fc_security_mnemonics, its value in hexadecimal
+ * representation is placed into the buffer. If more than one FC Endpoint
+ * Security flag was specified, their value in hexadecimal representation is
+ * placed into the buffer. The macro ZFCP_FSF_MAX_FC_SECURITY_MNEMONIC_LENGTH
+ * can be used to define a buffer that is large enough to hold one mnemonic.
+ *
+ * Return: The number of characters written into buf not including the trailing
+ *         '\0'. If size is == 0 the function returns 0.
+ */
+ssize_t zfcp_fsf_scnprint_fc_security(char *buf, size_t size, u32 fc_security,
+				      enum zfcp_fsf_print_fmt fmt)
+{
+	const char *prefix = "";
+	ssize_t len = 0;
+	int i;
+
+	if (fc_security == 0)
+		return scnprintf(buf, size, "none");
+	if (fmt == ZFCP_FSF_PRINT_FMT_SINGLEITEM && hweight32(fc_security) != 1)
+		return scnprintf(buf, size, "0x%08x", fc_security);
+
+	for (i = 0; i < ARRAY_SIZE(zfcp_fsf_fc_security_mnemonics); i++) {
+		if (!(fc_security & zfcp_fsf_fc_security_mnemonics[i].mask))
+			continue;
+
+		len += scnprintf(buf + len, size - len, "%s%s", prefix,
+				 zfcp_fsf_fc_security_mnemonics[i].name);
+		prefix = ", ";
+		fc_security &= ~zfcp_fsf_fc_security_mnemonics[i].mask;
+	}
+
+	if (fc_security != 0)
+		len += scnprintf(buf + len, size - len, "%s0x%08x",
+				 prefix, fc_security);
+
+	return len;
+}
+
+static void zfcp_fsf_dbf_adapter_fc_security(struct zfcp_adapter *adapter,
+					     struct zfcp_fsf_req *req)
+{
+	if (adapter->fc_security_algorithms ==
+	    adapter->fc_security_algorithms_old) {
+		/* no change, no trace */
+		return;
+	}
+
+	zfcp_dbf_hba_fsf_fces("fsfcesa", req, ZFCP_DBF_INVALID_WWPN,
+			      adapter->fc_security_algorithms_old,
+			      adapter->fc_security_algorithms);
+
+	adapter->fc_security_algorithms_old = adapter->fc_security_algorithms;
+}
+
 static void zfcp_fsf_exchange_port_evaluate(struct zfcp_fsf_req *req)
 {
 	struct zfcp_adapter *adapter = req->adapter;
 	struct fsf_qtcb_bottom_port *bottom = &req->qtcb->bottom.port;
-	struct Scsi_Host *shost = adapter->scsi_host;
 
 	if (req->data)
 		memcpy(req->data, bottom, sizeof(*bottom));
 
-	if (adapter->connection_features & FSF_FEATURE_NPIV_MODE) {
-		fc_host_permanent_port_name(shost) = bottom->wwpn;
-	} else
-		fc_host_permanent_port_name(shost) = fc_host_port_name(shost);
-	fc_host_maxframe_size(shost) = bottom->maximum_frame_size;
-	fc_host_supported_speeds(shost) =
-		zfcp_fsf_convert_portspeed(bottom->supported_speed);
-	memcpy(fc_host_supported_fc4s(shost), bottom->supported_fc4_types,
-	       FC_FC4_LIST_SIZE);
-	memcpy(fc_host_active_fc4s(shost), bottom->active_fc4_types,
-	       FC_FC4_LIST_SIZE);
+	if (adapter->adapter_features & FSF_FEATURE_FC_SECURITY)
+		adapter->fc_security_algorithms =
+			bottom->fc_security_algorithms;
+	else
+		adapter->fc_security_algorithms = 0;
+	zfcp_fsf_dbf_adapter_fc_security(adapter, req);
 }
 
 static void zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *req)
 {
+	struct zfcp_diag_header *const diag_hdr =
+		&req->adapter->diagnostics->port_data.header;
 	struct fsf_qtcb *qtcb = req->qtcb;
+	struct fsf_qtcb_bottom_port *bottom = &qtcb->bottom.port;
 
 	if (req->status & ZFCP_STATUS_FSFREQ_ERROR)
 		return;
 
 	switch (qtcb->header.fsf_status) {
 	case FSF_GOOD:
+		/*
+		 * usually we wait with an update till the cache is too old,
+		 * but because we have the data available, update it anyway
+		 */
+		zfcp_diag_update_xdata(diag_hdr, bottom, false);
+
+		zfcp_scsi_shost_update_port_data(req->adapter, bottom);
 		zfcp_fsf_exchange_port_evaluate(req);
 		break;
 	case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE:
-		zfcp_fsf_exchange_port_evaluate(req);
+		zfcp_diag_update_xdata(diag_hdr, bottom, true);
+		req->status |= ZFCP_STATUS_FSFREQ_XDATAINCOMPLETE;
+
 		zfcp_fsf_link_down_info_eval(req,
 			&qtcb->header.fsf_status_qual.link_down_info);
+
+		zfcp_scsi_shost_update_port_data(req->adapter, bottom);
+		zfcp_fsf_exchange_port_evaluate(req);
 		break;
 	}
 }
@@ -762,7 +867,7 @@
 	req->qdio_req.qdio_outb_usage = atomic_read(&qdio->req_q_free);
 	req->issued = get_tod_clock();
 	if (zfcp_qdio_send(qdio, &req->qdio_req)) {
-		del_timer(&req->timer);
+		del_timer_sync(&req->timer);
 		/* lookup request again, list might have changed */
 		zfcp_reqlist_find_rm(adapter->req_list, req_id);
 		zfcp_erp_adapter_reopen(adapter, 0, "fsrs__1");
@@ -889,7 +994,7 @@
 		switch (fsq->word[0]) {
 		case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
 			zfcp_fc_test_link(zfcp_sdev->port);
-			/* fall through */
+			fallthrough;
 		case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
 			req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 			break;
@@ -984,7 +1089,7 @@
 		break;
 	case FSF_PORT_HANDLE_NOT_VALID:
 		zfcp_erp_adapter_reopen(adapter, 0, "fsscth1");
-		/* fall through */
+		fallthrough;
 	case FSF_GENERIC_COMMAND_REJECTED:
 	case FSF_PAYLOAD_SIZE_MISMATCH:
 	case FSF_REQUEST_SIZE_TOO_LARGE:
@@ -1170,7 +1275,7 @@
 		break;
 	case FSF_SBAL_MISMATCH:
 		/* should never occur, avoided in zfcp_fsf_send_els */
-		/* fall through */
+		fallthrough;
 	default:
 		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 		break;
@@ -1261,7 +1366,9 @@
 
 	req->qtcb->bottom.config.feature_selection =
 			FSF_FEATURE_NOTIFICATION_LOST |
-			FSF_FEATURE_UPDATE_ALERT;
+			FSF_FEATURE_UPDATE_ALERT |
+			FSF_FEATURE_REQUEST_SFP_DATA |
+			FSF_FEATURE_FC_SECURITY;
 	req->erp_action = erp_action;
 	req->handler = zfcp_fsf_exchange_config_data_handler;
 	erp_action->fsf_req_id = req->req_id;
@@ -1278,6 +1385,19 @@
 	return retval;
 }
 
+
+/**
+ * zfcp_fsf_exchange_config_data_sync() - Request information about FCP channel.
+ * @qdio: pointer to the QDIO-Queue to use for sending the command.
+ * @data: pointer to the QTCB-Bottom for storing the result of the command,
+ *	  might be %NULL.
+ *
+ * Returns:
+ * * 0		- Exchange Config Data was successful, @data is complete
+ * * -EIO	- Exchange Config Data was not successful, @data is invalid
+ * * -EAGAIN	- @data contains incomplete data
+ * * -ENOMEM	- Some memory allocation failed along the way
+ */
 int zfcp_fsf_exchange_config_data_sync(struct zfcp_qdio *qdio,
 				       struct fsf_qtcb_bottom_config *data)
 {
@@ -1301,7 +1421,9 @@
 
 	req->qtcb->bottom.config.feature_selection =
 			FSF_FEATURE_NOTIFICATION_LOST |
-			FSF_FEATURE_UPDATE_ALERT;
+			FSF_FEATURE_UPDATE_ALERT |
+			FSF_FEATURE_REQUEST_SFP_DATA |
+			FSF_FEATURE_FC_SECURITY;
 
 	if (data)
 		req->data = data;
@@ -1309,9 +1431,16 @@
 	zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
 	retval = zfcp_fsf_req_send(req);
 	spin_unlock_irq(&qdio->req_q_lock);
+
 	if (!retval) {
 		/* NOTE: ONLY TOUCH SYNC req AGAIN ON req->completion. */
 		wait_for_completion(&req->completion);
+
+		if (req->status &
+		    (ZFCP_STATUS_FSFREQ_ERROR | ZFCP_STATUS_FSFREQ_DISMISSED))
+			retval = -EIO;
+		else if (req->status & ZFCP_STATUS_FSFREQ_XDATAINCOMPLETE)
+			retval = -EAGAIN;
 	}
 
 	zfcp_fsf_req_free(req);
@@ -1369,10 +1498,17 @@
 }
 
 /**
- * zfcp_fsf_exchange_port_data_sync - request information about local port
- * @qdio: pointer to struct zfcp_qdio
- * @data: pointer to struct fsf_qtcb_bottom_port
- * Returns: 0 on success, error otherwise
+ * zfcp_fsf_exchange_port_data_sync() - Request information about local port.
+ * @qdio: pointer to the QDIO-Queue to use for sending the command.
+ * @data: pointer to the QTCB-Bottom for storing the result of the command,
+ *	  might be %NULL.
+ *
+ * Returns:
+ * * 0		- Exchange Port Data was successful, @data is complete
+ * * -EIO	- Exchange Port Data was not successful, @data is invalid
+ * * -EAGAIN	- @data contains incomplete data
+ * * -ENOMEM	- Some memory allocation failed along the way
+ * * -EOPNOTSUPP	- This operation is not supported
  */
 int zfcp_fsf_exchange_port_data_sync(struct zfcp_qdio *qdio,
 				     struct fsf_qtcb_bottom_port *data)
@@ -1408,10 +1544,15 @@
 	if (!retval) {
 		/* NOTE: ONLY TOUCH SYNC req AGAIN ON req->completion. */
 		wait_for_completion(&req->completion);
+
+		if (req->status &
+		    (ZFCP_STATUS_FSFREQ_ERROR | ZFCP_STATUS_FSFREQ_DISMISSED))
+			retval = -EIO;
+		else if (req->status & ZFCP_STATUS_FSFREQ_XDATAINCOMPLETE)
+			retval = -EAGAIN;
 	}
 
 	zfcp_fsf_req_free(req);
-
 	return retval;
 
 out_unlock:
@@ -1419,10 +1560,117 @@
 	return retval;
 }
 
+static void zfcp_fsf_log_port_fc_security(struct zfcp_port *port,
+					  struct zfcp_fsf_req *req)
+{
+	char mnemonic_old[ZFCP_FSF_MAX_FC_SECURITY_MNEMONIC_LENGTH];
+	char mnemonic_new[ZFCP_FSF_MAX_FC_SECURITY_MNEMONIC_LENGTH];
+
+	if (port->connection_info == port->connection_info_old) {
+		/* no change, no log nor trace */
+		return;
+	}
+
+	zfcp_dbf_hba_fsf_fces("fsfcesp", req, port->wwpn,
+			      port->connection_info_old,
+			      port->connection_info);
+
+	zfcp_fsf_scnprint_fc_security(mnemonic_old, sizeof(mnemonic_old),
+				      port->connection_info_old,
+				      ZFCP_FSF_PRINT_FMT_SINGLEITEM);
+	zfcp_fsf_scnprint_fc_security(mnemonic_new, sizeof(mnemonic_new),
+				      port->connection_info,
+				      ZFCP_FSF_PRINT_FMT_SINGLEITEM);
+
+	if (strncmp(mnemonic_old, mnemonic_new,
+		    ZFCP_FSF_MAX_FC_SECURITY_MNEMONIC_LENGTH) == 0) {
+		/* no change in string representation, no log */
+		goto out;
+	}
+
+	if (port->connection_info_old == 0) {
+		/* activation */
+		dev_info(&port->adapter->ccw_device->dev,
+			 "FC Endpoint Security of connection to remote port 0x%16llx enabled: %s\n",
+			 port->wwpn, mnemonic_new);
+	} else if (port->connection_info == 0) {
+		/* deactivation */
+		dev_warn(&port->adapter->ccw_device->dev,
+			 "FC Endpoint Security of connection to remote port 0x%16llx disabled: was %s\n",
+			 port->wwpn, mnemonic_old);
+	} else {
+		/* change */
+		dev_warn(&port->adapter->ccw_device->dev,
+			 "FC Endpoint Security of connection to remote port 0x%16llx changed: from %s to %s\n",
+			 port->wwpn, mnemonic_old, mnemonic_new);
+	}
+
+out:
+	port->connection_info_old = port->connection_info;
+}
+
+static void zfcp_fsf_log_security_error(const struct device *dev, u32 fsf_sqw0,
+					u64 wwpn)
+{
+	switch (fsf_sqw0) {
+
+	/*
+	 * Open Port command error codes
+	 */
+
+	case FSF_SQ_SECURITY_REQUIRED:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: FC security is required but not supported or configured on remote port 0x%016llx\n",
+				     wwpn);
+		break;
+	case FSF_SQ_SECURITY_TIMEOUT:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: a timeout prevented opening remote port 0x%016llx\n",
+				     wwpn);
+		break;
+	case FSF_SQ_SECURITY_KM_UNAVAILABLE:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: opening remote port 0x%016llx failed because local and external key manager cannot communicate\n",
+				     wwpn);
+		break;
+	case FSF_SQ_SECURITY_RKM_UNAVAILABLE:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: opening remote port 0x%016llx failed because it cannot communicate with the external key manager\n",
+				     wwpn);
+		break;
+	case FSF_SQ_SECURITY_AUTH_FAILURE:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: the device could not verify the identity of remote port 0x%016llx\n",
+				     wwpn);
+		break;
+
+	/*
+	 * Send FCP command error codes
+	 */
+
+	case FSF_SQ_SECURITY_ENC_FAILURE:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: FC connection to remote port 0x%016llx closed because encryption broke down\n",
+				     wwpn);
+		break;
+
+	/*
+	 * Unknown error codes
+	 */
+
+	default:
+		dev_warn_ratelimited(dev,
+				     "FC Endpoint Security error: the device issued an unknown error code 0x%08x related to the FC connection to remote port 0x%016llx\n",
+				     fsf_sqw0, wwpn);
+	}
+}
+
 static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req)
 {
+	struct zfcp_adapter *adapter = req->adapter;
 	struct zfcp_port *port = req->data;
 	struct fsf_qtcb_header *header = &req->qtcb->header;
+	struct fsf_qtcb_bottom_support *bottom = &req->qtcb->bottom.support;
 	struct fc_els_flogi *plogi;
 
 	if (req->status & ZFCP_STATUS_FSFREQ_ERROR)
@@ -1432,7 +1680,7 @@
 	case FSF_PORT_ALREADY_OPEN:
 		break;
 	case FSF_MAXIMUM_NUMBER_OF_PORTS_EXCEEDED:
-		dev_warn(&req->adapter->ccw_device->dev,
+		dev_warn(&adapter->ccw_device->dev,
 			 "Not enough FCP adapter resources to open "
 			 "remote port 0x%016Lx\n",
 			 (unsigned long long)port->wwpn);
@@ -1440,11 +1688,17 @@
 					 ZFCP_STATUS_COMMON_ERP_FAILED);
 		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 		break;
+	case FSF_SECURITY_ERROR:
+		zfcp_fsf_log_security_error(&req->adapter->ccw_device->dev,
+					    header->fsf_status_qual.word[0],
+					    port->wwpn);
+		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
+		break;
 	case FSF_ADAPTER_STATUS_AVAILABLE:
 		switch (header->fsf_status_qual.word[0]) {
 		case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
 			/* no zfcp_fc_test_link() with failed open port */
-			/* fall through */
+			fallthrough;
 		case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
 		case FSF_SQ_NO_RETRY_POSSIBLE:
 			req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -1453,6 +1707,11 @@
 		break;
 	case FSF_GOOD:
 		port->handle = header->port_handle;
+		if (adapter->adapter_features & FSF_FEATURE_FC_SECURITY)
+			port->connection_info = bottom->connection_info;
+		else
+			port->connection_info = 0;
+		zfcp_fsf_log_port_fc_security(port, req);
 		atomic_or(ZFCP_STATUS_COMMON_OPEN |
 				ZFCP_STATUS_PORT_PHYS_OPEN, &port->status);
 		atomic_andnot(ZFCP_STATUS_COMMON_ACCESS_BOXED,
@@ -1472,10 +1731,9 @@
 		 * another GID_PN straight after a port has been opened.
 		 * Alternately, an ADISC/PDISC ELS should suffice, as well.
 		 */
-		plogi = (struct fc_els_flogi *) req->qtcb->bottom.support.els;
-		if (req->qtcb->bottom.support.els1_length >=
-		    FSF_PLOGI_MIN_LEN)
-				zfcp_fc_plogi_evaluate(port, plogi);
+		plogi = (struct fc_els_flogi *) bottom->els;
+		if (bottom->els1_length >= FSF_PLOGI_MIN_LEN)
+			zfcp_fc_plogi_evaluate(port, plogi);
 		break;
 	case FSF_UNKNOWN_OP_SUBTYPE:
 		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -1613,14 +1871,14 @@
 	case FSF_MAXIMUM_NUMBER_OF_PORTS_EXCEEDED:
 		dev_warn(&req->adapter->ccw_device->dev,
 			 "Opening WKA port 0x%x failed\n", wka_port->d_id);
-		/* fall through */
+		fallthrough;
 	case FSF_ADAPTER_STATUS_AVAILABLE:
 		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 		wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE;
 		break;
 	case FSF_GOOD:
 		wka_port->handle = header->port_handle;
-		/* fall through */
+		fallthrough;
 	case FSF_PORT_ALREADY_OPEN:
 		wka_port->status = ZFCP_FC_WKA_PORT_ONLINE;
 	}
@@ -1763,7 +2021,6 @@
 	case FSF_ADAPTER_STATUS_AVAILABLE:
 		switch (header->fsf_status_qual.word[0]) {
 		case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
-			/* fall through */
 		case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
 			req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 			break;
@@ -1848,7 +2105,7 @@
 
 	case FSF_PORT_HANDLE_NOT_VALID:
 		zfcp_erp_adapter_reopen(adapter, 0, "fsouh_1");
-		/* fall through */
+		fallthrough;
 	case FSF_LUN_ALREADY_OPEN:
 		break;
 	case FSF_PORT_BOXED:
@@ -1879,7 +2136,7 @@
 			 (unsigned long long)zfcp_scsi_dev_lun(sdev),
 			 (unsigned long long)zfcp_sdev->port->wwpn);
 		zfcp_erp_set_lun_status(sdev, ZFCP_STATUS_COMMON_ERP_FAILED);
-		/* fall through */
+		fallthrough;
 	case FSF_INVALID_COMMAND_OPTION:
 		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 		break;
@@ -1887,7 +2144,7 @@
 		switch (header->fsf_status_qual.word[0]) {
 		case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
 			zfcp_fc_test_link(zfcp_sdev->port);
-			/* fall through */
+			fallthrough;
 		case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
 			req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 			break;
@@ -1981,7 +2238,7 @@
 		switch (req->qtcb->header.fsf_status_qual.word[0]) {
 		case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
 			zfcp_fc_test_link(zfcp_sdev->port);
-			/* fall through */
+			fallthrough;
 		case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
 			req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 			break;
@@ -2166,6 +2423,13 @@
 			zfcp_fc_test_link(zfcp_sdev->port);
 		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
 		break;
+	case FSF_SECURITY_ERROR:
+		zfcp_fsf_log_security_error(&req->adapter->ccw_device->dev,
+					    header->fsf_status_qual.word[0],
+					    zfcp_sdev->port->wwpn);
+		zfcp_erp_port_forced_reopen(zfcp_sdev->port, 0, "fssfch7");
+		req->status |= ZFCP_STATUS_FSFREQ_ERROR;
+		break;
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_fsf.h
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_fsf.h
@@ -4,7 +4,7 @@
  *
  * Interface to the FSF support functions.
  *
- * Copyright IBM Corp. 2002, 2018
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #ifndef FSF_H
@@ -78,6 +78,7 @@
 #define FSF_BLOCK_GUARD_CHECK_FAILURE		0x00000081
 #define FSF_APP_TAG_CHECK_FAILURE		0x00000082
 #define FSF_REF_TAG_CHECK_FAILURE		0x00000083
+#define FSF_SECURITY_ERROR			0x00000090
 #define FSF_ADAPTER_STATUS_AVAILABLE		0x000000AD
 #define FSF_FCP_RSP_AVAILABLE			0x000000AF
 #define FSF_UNKNOWN_COMMAND			0x000000E2
@@ -110,6 +111,14 @@
 #define FSF_PSQ_LINK_MODE_TABLE_CURRUPTED	0x00004000
 #define FSF_PSQ_LINK_NO_WWPN_ASSIGNMENT		0x00008000
 
+/* FSF status qualifier, security error */
+#define FSF_SQ_SECURITY_REQUIRED		0x00000001
+#define FSF_SQ_SECURITY_TIMEOUT			0x00000002
+#define FSF_SQ_SECURITY_KM_UNAVAILABLE		0x00000003
+#define FSF_SQ_SECURITY_RKM_UNAVAILABLE		0x00000004
+#define FSF_SQ_SECURITY_AUTH_FAILURE		0x00000005
+#define FSF_SQ_SECURITY_ENC_FAILURE		0x00000010
+
 /* payload size in status read buffer */
 #define FSF_STATUS_READ_PAYLOAD_SIZE		4032
 
@@ -163,6 +172,9 @@
 #define FSF_FEATURE_ELS_CT_CHAINED_SBALS	0x00000020
 #define FSF_FEATURE_UPDATE_ALERT		0x00000100
 #define FSF_FEATURE_MEASUREMENT_DATA		0x00000200
+#define FSF_FEATURE_REQUEST_SFP_DATA		0x00000200
+#define FSF_FEATURE_REPORT_SFP_DATA		0x00000800
+#define FSF_FEATURE_FC_SECURITY			0x00001000
 #define FSF_FEATURE_DIF_PROT_TYPE1		0x00010000
 #define FSF_FEATURE_DIX_PROT_TCPIP		0x00020000
 
@@ -172,6 +184,11 @@
 /* option */
 #define FSF_OPEN_LUN_SUPPRESS_BOXING		0x00000001
 
+/* FC security algorithms */
+#define FSF_FC_SECURITY_AUTH			0x00000001
+#define FSF_FC_SECURITY_ENC_FCSP2		0x00000002
+#define FSF_FC_SECURITY_ENC_ERAS		0x00000004
+
 struct fsf_queue_designator {
 	u8  cssid;
 	u8  chpid;
@@ -336,7 +353,8 @@
 	u8  res3[3];
 	u8  timeout;
         u32 lun_access_info;
-        u8  res4[180];
+	u32 connection_info;
+	u8  res4[176];
 	u32 els1_length;
 	u32 els2_length;
 	u32 req_buf_length;
@@ -407,7 +425,25 @@
 	u8 cp_util;
 	u8 cb_util;
 	u8 a_util;
-	u8 res2[253];
+	u8 res2;
+	s16 temperature;
+	u16 vcc;
+	u16 tx_bias;
+	u16 tx_power;
+	u16 rx_power;
+	union {
+		u16 raw;
+		struct {
+			u16 fec_active		:1;
+			u16:7;
+			u16 connector_type	:2;
+			u16 sfp_invalid		:1;
+			u16 optical_port	:1;
+			u16 port_tx_type	:4;
+		};
+	} sfp_flags;
+	u32 fc_security_algorithms;
+	u8 res3[236];
 } __attribute__ ((packed));
 
 union fsf_qtcb_bottom {
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_qdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_qdio.c
@@ -4,7 +4,7 @@
  *
  * Setup and helper functions to access QDIO.
  *
- * Copyright IBM Corp. 2002, 2017
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #define KMSG_COMPONENT "zfcp"
@@ -367,6 +367,18 @@
 	atomic_set(&qdio->req_q_free, 0);
 }
 
+void zfcp_qdio_shost_update(struct zfcp_adapter *const adapter,
+			    const struct zfcp_qdio *const qdio)
+{
+	struct Scsi_Host *const shost = adapter->scsi_host;
+
+	if (shost == NULL)
+		return;
+
+	shost->sg_tablesize = qdio->max_sbale_per_req;
+	shost->max_sectors = qdio->max_sbale_per_req * 8;
+}
+
 /**
  * zfcp_qdio_open - prepare and initialize response queue
  * @qdio: pointer to struct zfcp_qdio
@@ -429,10 +441,7 @@
 	atomic_set(&qdio->req_q_free, QDIO_MAX_BUFFERS_PER_Q);
 	atomic_or(ZFCP_STATUS_ADAPTER_QDIOUP, &qdio->adapter->status);
 
-	if (adapter->scsi_host) {
-		adapter->scsi_host->sg_tablesize = qdio->max_sbale_per_req;
-		adapter->scsi_host->max_sectors = qdio->max_sbale_per_req * 8;
-	}
+	zfcp_qdio_shost_update(adapter, qdio);
 
 	return 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_scsi.c
@@ -4,7 +4,7 @@
  *
  * Interface to Linux SCSI midlayer.
  *
- * Copyright IBM Corp. 2002, 2018
+ * Copyright IBM Corp. 2002, 2020
  */
 
 #define KMSG_COMPONENT "zfcp"
@@ -451,26 +451,39 @@
 };
 
 /**
- * zfcp_scsi_adapter_register - Register SCSI and FC host with SCSI midlayer
+ * zfcp_scsi_adapter_register() - Allocate and register SCSI and FC host with
+ *				  SCSI midlayer
  * @adapter: The zfcp adapter to register with the SCSI midlayer
+ *
+ * Allocates the SCSI host object for the given adapter, sets basic properties
+ * (such as the transport template, QDIO limits, ...), and registers it with
+ * the midlayer.
+ *
+ * During registration with the midlayer the corresponding FC host object for
+ * the referenced transport class is also implicitely allocated.
+ *
+ * Upon success adapter->scsi_host is set, and upon failure it remains NULL. If
+ * adapter->scsi_host is already set, nothing is done.
+ *
+ * Return:
+ * * 0	     - Allocation and registration was successful
+ * * -EEXIST - SCSI and FC host did already exist, nothing was done, nothing
+ *	       was changed
+ * * -EIO    - Allocation or registration failed
  */
 int zfcp_scsi_adapter_register(struct zfcp_adapter *adapter)
 {
 	struct ccw_dev_id dev_id;
 
 	if (adapter->scsi_host)
-		return 0;
+		return -EEXIST;
 
 	ccw_device_get_id(adapter->ccw_device, &dev_id);
 	/* register adapter as SCSI host with mid layer of SCSI stack */
 	adapter->scsi_host = scsi_host_alloc(&zfcp_scsi_host_template,
 					     sizeof (struct zfcp_adapter *));
-	if (!adapter->scsi_host) {
-		dev_err(&adapter->ccw_device->dev,
-			"Registering the FCP device with the "
-			"SCSI stack failed\n");
-		return -EIO;
-	}
+	if (!adapter->scsi_host)
+		goto err_out;
 
 	/* tell the SCSI stack some characteristics of this adapter */
 	adapter->scsi_host->max_id = 511;
@@ -480,14 +493,23 @@
 	adapter->scsi_host->max_cmd_len = 16; /* in struct fcp_cmnd */
 	adapter->scsi_host->transportt = zfcp_scsi_transport_template;
 
+	/* make all basic properties known at registration time */
+	zfcp_qdio_shost_update(adapter, adapter->qdio);
+	zfcp_scsi_set_prot(adapter);
+
 	adapter->scsi_host->hostdata[0] = (unsigned long) adapter;
 
 	if (scsi_add_host(adapter->scsi_host, &adapter->ccw_device->dev)) {
 		scsi_host_put(adapter->scsi_host);
-		return -EIO;
+		goto err_out;
 	}
 
 	return 0;
+err_out:
+	adapter->scsi_host = NULL;
+	dev_err(&adapter->ccw_device->dev,
+		"Registering the FCP device with the SCSI stack failed\n");
+	return -EIO;
 }
 
 /**
@@ -605,7 +627,7 @@
 		return NULL;
 
 	ret = zfcp_fsf_exchange_port_data_sync(adapter->qdio, data);
-	if (ret) {
+	if (ret != 0 && ret != -EAGAIN) {
 		kfree(data);
 		return NULL;
 	}
@@ -634,7 +656,7 @@
 		return;
 
 	ret = zfcp_fsf_exchange_port_data_sync(adapter->qdio, data);
-	if (ret)
+	if (ret != 0 && ret != -EAGAIN)
 		kfree(data);
 	else {
 		adapter->stats_reset = jiffies/HZ;
@@ -841,6 +863,95 @@
 	set_host_byte(scmd, DID_SOFT_ERROR);
 }
 
+void zfcp_scsi_shost_update_config_data(
+	struct zfcp_adapter *const adapter,
+	const struct fsf_qtcb_bottom_config *const bottom,
+	const bool bottom_incomplete)
+{
+	struct Scsi_Host *const shost = adapter->scsi_host;
+	const struct fc_els_flogi *nsp, *plogi;
+
+	if (shost == NULL)
+		return;
+
+	snprintf(fc_host_firmware_version(shost), FC_VERSION_STRING_SIZE,
+		 "0x%08x", bottom->lic_version);
+
+	if (adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT) {
+		snprintf(fc_host_hardware_version(shost),
+			 FC_VERSION_STRING_SIZE,
+			 "0x%08x", bottom->hardware_version);
+		memcpy(fc_host_serial_number(shost), bottom->serial_number,
+		       min(FC_SERIAL_NUMBER_SIZE, 17));
+		EBCASC(fc_host_serial_number(shost),
+		       min(FC_SERIAL_NUMBER_SIZE, 17));
+	}
+
+	/* adjust pointers for missing command code */
+	nsp = (struct fc_els_flogi *) ((u8 *)&bottom->nport_serv_param
+					- sizeof(u32));
+	plogi = (struct fc_els_flogi *) ((u8 *)&bottom->plogi_payload
+					- sizeof(u32));
+
+	snprintf(fc_host_manufacturer(shost), FC_SERIAL_NUMBER_SIZE, "%s",
+		 "IBM");
+	fc_host_port_name(shost) = be64_to_cpu(nsp->fl_wwpn);
+	fc_host_node_name(shost) = be64_to_cpu(nsp->fl_wwnn);
+	fc_host_supported_classes(shost) = FC_COS_CLASS2 | FC_COS_CLASS3;
+
+	zfcp_scsi_set_prot(adapter);
+
+	/* do not evaluate invalid fields */
+	if (bottom_incomplete)
+		return;
+
+	fc_host_port_id(shost) = ntoh24(bottom->s_id);
+	fc_host_speed(shost) =
+		zfcp_fsf_convert_portspeed(bottom->fc_link_speed);
+
+	snprintf(fc_host_model(shost), FC_SYMBOLIC_NAME_SIZE, "0x%04x",
+		 bottom->adapter_type);
+
+	switch (bottom->fc_topology) {
+	case FSF_TOPO_P2P:
+		fc_host_port_type(shost) = FC_PORTTYPE_PTP;
+		fc_host_fabric_name(shost) = 0;
+		break;
+	case FSF_TOPO_FABRIC:
+		fc_host_fabric_name(shost) = be64_to_cpu(plogi->fl_wwnn);
+		if (bottom->connection_features & FSF_FEATURE_NPIV_MODE)
+			fc_host_port_type(shost) = FC_PORTTYPE_NPIV;
+		else
+			fc_host_port_type(shost) = FC_PORTTYPE_NPORT;
+		break;
+	case FSF_TOPO_AL:
+		fc_host_port_type(shost) = FC_PORTTYPE_NLPORT;
+		fallthrough;
+	default:
+		fc_host_fabric_name(shost) = 0;
+		break;
+	}
+}
+
+void zfcp_scsi_shost_update_port_data(
+	struct zfcp_adapter *const adapter,
+	const struct fsf_qtcb_bottom_port *const bottom)
+{
+	struct Scsi_Host *const shost = adapter->scsi_host;
+
+	if (shost == NULL)
+		return;
+
+	fc_host_permanent_port_name(shost) = bottom->wwpn;
+	fc_host_maxframe_size(shost) = bottom->maximum_frame_size;
+	fc_host_supported_speeds(shost) =
+		zfcp_fsf_convert_portspeed(bottom->supported_speed);
+	memcpy(fc_host_supported_fc4s(shost), bottom->supported_fc4_types,
+	       FC_FC4_LIST_SIZE);
+	memcpy(fc_host_active_fc4s(shost), bottom->active_fc4_types,
+	       FC_FC4_LIST_SIZE);
+}
+
 struct fc_function_template zfcp_transport_functions = {
 	.show_starget_port_id = 1,
 	.show_starget_port_name = 1,
@@ -856,6 +967,10 @@
 	.show_host_supported_speeds = 1,
 	.show_host_maxframe_size = 1,
 	.show_host_serial_number = 1,
+	.show_host_manufacturer = 1,
+	.show_host_model = 1,
+	.show_host_hardware_version = 1,
+	.show_host_firmware_version = 1,
 	.get_fc_host_stats = zfcp_scsi_get_fc_host_stats,
 	.reset_fc_host_stats = zfcp_scsi_reset_fc_host_stats,
 	.set_rport_dev_loss_tmo = zfcp_scsi_set_rport_dev_loss_tmo,
@@ -871,5 +986,6 @@
 	.show_host_symbolic_name = 1,
 	.show_host_speed = 1,
 	.show_host_port_id = 1,
+	.show_host_fabric_name = 1,
 	.dd_bsg_size = sizeof(struct zfcp_fsf_ct_els),
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/scsi/zfcp_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/scsi/zfcp_sysfs.c
@@ -4,13 +4,14 @@
  *
  * sysfs attributes.
  *
- * Copyright IBM Corp. 2008, 2010
+ * Copyright IBM Corp. 2008, 2020
  */
 
 #define KMSG_COMPONENT "zfcp"
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
 #include <linux/slab.h>
+#include "zfcp_diag.h"
 #include "zfcp_ext.h"
 
 #define ZFCP_DEV_ATTR(_feat, _name, _mode, _show, _store) \
@@ -215,20 +216,32 @@
 {
 	struct ccw_device *cdev = to_ccwdev(dev);
 	struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(cdev);
+	int retval = 0;
 
 	if (!adapter)
 		return -ENODEV;
 
 	/*
+	 * If `scsi_host` is missing, we can't schedule `scan_work`, as it
+	 * makes use of the corresponding fc_host object. But this state is
+	 * only possible if xconfig/xport data has never completed yet,
+	 * and we couldn't successfully scan for ports anyway.
+	 */
+	if (adapter->scsi_host == NULL) {
+		retval = -ENODEV;
+		goto out;
+	}
+
+	/*
 	 * Users wish is our command: immediately schedule and flush a
 	 * worker to conduct a synchronous port scan, that is, neither
 	 * a random delay nor a rate limit is applied here.
 	 */
 	queue_delayed_work(adapter->work_queue, &adapter->scan_work, 0);
 	flush_delayed_work(&adapter->scan_work);
+out:
 	zfcp_ccw_adapter_put(adapter);
-
-	return (ssize_t) count;
+	return retval ? retval : (ssize_t) count;
 }
 static ZFCP_DEV_ATTR(adapter, port_rescan, S_IWUSR, NULL,
 		     zfcp_sysfs_port_rescan_store);
@@ -325,6 +338,86 @@
 static ZFCP_DEV_ATTR(adapter, port_remove, S_IWUSR, NULL,
 		     zfcp_sysfs_port_remove_store);
 
+static ssize_t
+zfcp_sysfs_adapter_diag_max_age_show(struct device *dev,
+				     struct device_attribute *attr, char *buf)
+{
+	struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(to_ccwdev(dev));
+	ssize_t rc;
+
+	if (!adapter)
+		return -ENODEV;
+
+	/* ceil(log(2^64 - 1) / log(10)) = 20 */
+	rc = scnprintf(buf, 20 + 2, "%lu\n", adapter->diagnostics->max_age);
+
+	zfcp_ccw_adapter_put(adapter);
+	return rc;
+}
+
+static ssize_t
+zfcp_sysfs_adapter_diag_max_age_store(struct device *dev,
+				      struct device_attribute *attr,
+				      const char *buf, size_t count)
+{
+	struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(to_ccwdev(dev));
+	unsigned long max_age;
+	ssize_t rc;
+
+	if (!adapter)
+		return -ENODEV;
+
+	rc = kstrtoul(buf, 10, &max_age);
+	if (rc != 0)
+		goto out;
+
+	adapter->diagnostics->max_age = max_age;
+
+	rc = count;
+out:
+	zfcp_ccw_adapter_put(adapter);
+	return rc;
+}
+static ZFCP_DEV_ATTR(adapter, diag_max_age, 0644,
+		     zfcp_sysfs_adapter_diag_max_age_show,
+		     zfcp_sysfs_adapter_diag_max_age_store);
+
+static ssize_t zfcp_sysfs_adapter_fc_security_show(
+	struct device *dev, struct device_attribute *attr, char *buf)
+{
+	struct ccw_device *cdev = to_ccwdev(dev);
+	struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(cdev);
+	unsigned int status;
+	int i;
+
+	if (!adapter)
+		return -ENODEV;
+
+	/*
+	 * Adapter status COMMON_OPEN implies xconf data and xport data
+	 * was done. Adapter FC Endpoint Security capability remains
+	 * unchanged in case of COMMON_ERP_FAILED (e.g. due to local link
+	 * down).
+	 */
+	status = atomic_read(&adapter->status);
+	if (0 == (status & ZFCP_STATUS_COMMON_OPEN))
+		i = sprintf(buf, "unknown\n");
+	else if (!(adapter->adapter_features & FSF_FEATURE_FC_SECURITY))
+		i = sprintf(buf, "unsupported\n");
+	else {
+		i = zfcp_fsf_scnprint_fc_security(
+			buf, PAGE_SIZE - 1, adapter->fc_security_algorithms,
+			ZFCP_FSF_PRINT_FMT_LIST);
+		i += scnprintf(buf + i, PAGE_SIZE - i, "\n");
+	}
+
+	zfcp_ccw_adapter_put(adapter);
+	return i;
+}
+static ZFCP_DEV_ATTR(adapter, fc_security, S_IRUGO,
+		     zfcp_sysfs_adapter_fc_security_show,
+		     NULL);
+
 static struct attribute *zfcp_adapter_attrs[] = {
 	&dev_attr_adapter_failed.attr,
 	&dev_attr_adapter_in_recovery.attr,
@@ -337,6 +430,8 @@
 	&dev_attr_adapter_lic_version.attr,
 	&dev_attr_adapter_status.attr,
 	&dev_attr_adapter_hardware_version.attr,
+	&dev_attr_adapter_diag_max_age.attr,
+	&dev_attr_adapter_fc_security.attr,
 	NULL
 };
 
@@ -380,6 +475,36 @@
 }
 static DEVICE_ATTR(unit_remove, S_IWUSR, NULL, zfcp_sysfs_unit_remove_store);
 
+static ssize_t zfcp_sysfs_port_fc_security_show(struct device *dev,
+						struct device_attribute *attr,
+						char *buf)
+{
+	struct zfcp_port *port = container_of(dev, struct zfcp_port, dev);
+	struct zfcp_adapter *adapter = port->adapter;
+	unsigned int status = atomic_read(&port->status);
+	int i;
+
+	if (0 == (status & ZFCP_STATUS_COMMON_OPEN) ||
+	    0 == (status & ZFCP_STATUS_COMMON_UNBLOCKED) ||
+	    0 == (status & ZFCP_STATUS_PORT_PHYS_OPEN) ||
+	    0 != (status & ZFCP_STATUS_COMMON_ERP_FAILED) ||
+	    0 != (status & ZFCP_STATUS_COMMON_ACCESS_BOXED))
+		i = sprintf(buf, "unknown\n");
+	else if (!(adapter->adapter_features & FSF_FEATURE_FC_SECURITY))
+		i = sprintf(buf, "unsupported\n");
+	else {
+		i = zfcp_fsf_scnprint_fc_security(
+			buf, PAGE_SIZE - 1, port->connection_info,
+			ZFCP_FSF_PRINT_FMT_SINGLEITEM);
+		i += scnprintf(buf + i, PAGE_SIZE - i, "\n");
+	}
+
+	return i;
+}
+static ZFCP_DEV_ATTR(port, fc_security, S_IRUGO,
+		     zfcp_sysfs_port_fc_security_show,
+		     NULL);
+
 static struct attribute *zfcp_port_attrs[] = {
 	&dev_attr_unit_add.attr,
 	&dev_attr_unit_remove.attr,
@@ -387,6 +512,7 @@
 	&dev_attr_port_in_recovery.attr,
 	&dev_attr_port_status.attr,
 	&dev_attr_port_access_denied.attr,
+	&dev_attr_port_fc_security.attr,
 	NULL
 };
 static struct attribute_group zfcp_port_attr_group = {
@@ -577,7 +703,7 @@
 		return -ENOMEM;
 
 	retval = zfcp_fsf_exchange_port_data_sync(adapter->qdio, qtcb_port);
-	if (!retval)
+	if (retval == 0 || retval == -EAGAIN)
 		retval = sprintf(buf, "%u %u %u\n", qtcb_port->cp_util,
 				 qtcb_port->cb_util, qtcb_port->a_util);
 	kfree(qtcb_port);
@@ -603,7 +729,7 @@
 		return -ENOMEM;
 
 	retval = zfcp_fsf_exchange_config_data_sync(adapter->qdio, qtcb_config);
-	if (!retval)
+	if (retval == 0 || retval == -EAGAIN)
 		*stat_inf = qtcb_config->stat_info;
 
 	kfree(qtcb_config);
@@ -664,3 +790,123 @@
 	&dev_attr_queue_full,
 	NULL
 };
+
+static ssize_t zfcp_sysfs_adapter_diag_b2b_credit_show(
+	struct device *dev, struct device_attribute *attr, char *buf)
+{
+	struct zfcp_adapter *adapter = zfcp_ccw_adapter_by_cdev(to_ccwdev(dev));
+	struct zfcp_diag_header *diag_hdr;
+	struct fc_els_flogi *nsp;
+	ssize_t rc = -ENOLINK;
+	unsigned long flags;
+	unsigned int status;
+
+	if (!adapter)
+		return -ENODEV;
+
+	status = atomic_read(&adapter->status);
+	if (0 == (status & ZFCP_STATUS_COMMON_OPEN) ||
+	    0 == (status & ZFCP_STATUS_COMMON_UNBLOCKED) ||
+	    0 != (status & ZFCP_STATUS_COMMON_ERP_FAILED))
+		goto out;
+
+	diag_hdr = &adapter->diagnostics->config_data.header;
+
+	rc = zfcp_diag_update_buffer_limited(
+		adapter, diag_hdr, zfcp_diag_update_config_data_buffer);
+	if (rc != 0)
+		goto out;
+
+	spin_lock_irqsave(&diag_hdr->access_lock, flags);
+	/* nport_serv_param doesn't contain the ELS_Command code */
+	nsp = (struct fc_els_flogi *)((unsigned long)
+					      adapter->diagnostics->config_data
+						      .data.nport_serv_param -
+				      sizeof(u32));
+
+	rc = scnprintf(buf, 5 + 2, "%hu\n",
+		       be16_to_cpu(nsp->fl_csp.sp_bb_cred));
+	spin_unlock_irqrestore(&diag_hdr->access_lock, flags);
+
+out:
+	zfcp_ccw_adapter_put(adapter);
+	return rc;
+}
+static ZFCP_DEV_ATTR(adapter_diag, b2b_credit, 0400,
+		     zfcp_sysfs_adapter_diag_b2b_credit_show, NULL);
+
+#define ZFCP_DEFINE_DIAG_SFP_ATTR(_name, _qtcb_member, _prtsize, _prtfmt)      \
+	static ssize_t zfcp_sysfs_adapter_diag_sfp_##_name##_show(	       \
+		struct device *dev, struct device_attribute *attr, char *buf)  \
+	{								       \
+		struct zfcp_adapter *const adapter =			       \
+			zfcp_ccw_adapter_by_cdev(to_ccwdev(dev));	       \
+		struct zfcp_diag_header *diag_hdr;			       \
+		ssize_t rc = -ENOLINK;					       \
+		unsigned long flags;					       \
+		unsigned int status;					       \
+									       \
+		if (!adapter)						       \
+			return -ENODEV;					       \
+									       \
+		status = atomic_read(&adapter->status);			       \
+		if (0 == (status & ZFCP_STATUS_COMMON_OPEN) ||		       \
+		    0 == (status & ZFCP_STATUS_COMMON_UNBLOCKED) ||	       \
+		    0 != (status & ZFCP_STATUS_COMMON_ERP_FAILED))	       \
+			goto out;					       \
+									       \
+		if (!zfcp_diag_support_sfp(adapter)) {			       \
+			rc = -EOPNOTSUPP;				       \
+			goto out;					       \
+		}							       \
+									       \
+		diag_hdr = &adapter->diagnostics->port_data.header;	       \
+									       \
+		rc = zfcp_diag_update_buffer_limited(			       \
+			adapter, diag_hdr, zfcp_diag_update_port_data_buffer); \
+		if (rc != 0)						       \
+			goto out;					       \
+									       \
+		spin_lock_irqsave(&diag_hdr->access_lock, flags);	       \
+		rc = scnprintf(						       \
+			buf, (_prtsize) + 2, _prtfmt "\n",		       \
+			adapter->diagnostics->port_data.data._qtcb_member);    \
+		spin_unlock_irqrestore(&diag_hdr->access_lock, flags);	       \
+									       \
+	out:								       \
+		zfcp_ccw_adapter_put(adapter);				       \
+		return rc;						       \
+	}								       \
+	static ZFCP_DEV_ATTR(adapter_diag_sfp, _name, 0400,		       \
+			     zfcp_sysfs_adapter_diag_sfp_##_name##_show, NULL)
+
+ZFCP_DEFINE_DIAG_SFP_ATTR(temperature, temperature, 6, "%hd");
+ZFCP_DEFINE_DIAG_SFP_ATTR(vcc, vcc, 5, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(tx_bias, tx_bias, 5, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(tx_power, tx_power, 5, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(rx_power, rx_power, 5, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(port_tx_type, sfp_flags.port_tx_type, 2, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(optical_port, sfp_flags.optical_port, 1, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(sfp_invalid, sfp_flags.sfp_invalid, 1, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(connector_type, sfp_flags.connector_type, 1, "%hu");
+ZFCP_DEFINE_DIAG_SFP_ATTR(fec_active, sfp_flags.fec_active, 1, "%hu");
+
+static struct attribute *zfcp_sysfs_diag_attrs[] = {
+	&dev_attr_adapter_diag_sfp_temperature.attr,
+	&dev_attr_adapter_diag_sfp_vcc.attr,
+	&dev_attr_adapter_diag_sfp_tx_bias.attr,
+	&dev_attr_adapter_diag_sfp_tx_power.attr,
+	&dev_attr_adapter_diag_sfp_rx_power.attr,
+	&dev_attr_adapter_diag_sfp_port_tx_type.attr,
+	&dev_attr_adapter_diag_sfp_optical_port.attr,
+	&dev_attr_adapter_diag_sfp_sfp_invalid.attr,
+	&dev_attr_adapter_diag_sfp_connector_type.attr,
+	&dev_attr_adapter_diag_sfp_fec_active.attr,
+	&dev_attr_adapter_diag_b2b_credit.attr,
+	NULL,
+};
+
+const struct attribute_group zfcp_sysfs_diag_attr_group = {
+	.name = "diagnostics",
+	.attrs = zfcp_sysfs_diag_attrs,
+};
--- linux-gkeop-5.4-5.4.0.orig/drivers/s390/virtio/virtio_ccw.c
+++ linux-gkeop-5.4-5.4.0/drivers/s390/virtio/virtio_ccw.c
@@ -117,7 +117,7 @@
 };
 
 /* the highest virtio-ccw revision we support */
-#define VIRTIO_CCW_REV_MAX 1
+#define VIRTIO_CCW_REV_MAX 2
 
 struct virtio_ccw_vq_info {
 	struct virtqueue *vq;
@@ -952,7 +952,7 @@
 	u8 old_status = vcdev->dma_area->status;
 	struct ccw1 *ccw;
 
-	if (vcdev->revision < 1)
+	if (vcdev->revision < 2)
 		return vcdev->dma_area->status;
 
 	ccw = ccw_device_dma_zalloc(vcdev->cdev, sizeof(*ccw));
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/Kconfig
@@ -114,15 +114,6 @@
 	  <file:Documentation/scsi/scsi.txt>.
 	  The module will be called sr_mod.
 
-config BLK_DEV_SR_VENDOR
-	bool "Enable vendor-specific extensions (for SCSI CDROM)"
-	depends on BLK_DEV_SR
-	help
-	  This enables the usage of vendor specific SCSI commands. This is
-	  required to support multisession CDs with old NEC/TOSHIBA cdrom
-	  drives (and HP Writers). If you have such a drive and get the first
-	  session only, try saying Y here; everybody else says N.
-
 config CHR_DEV_SG
 	tristate "SCSI generic support"
 	depends on SCSI
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/NCR5380.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/NCR5380.c
@@ -129,6 +129,9 @@
 #define NCR5380_release_dma_irq(x)
 #endif
 
+static unsigned int disconnect_mask = ~0;
+module_param(disconnect_mask, int, 0444);
+
 static int do_abort(struct Scsi_Host *);
 static void do_reset(struct Scsi_Host *);
 static void bus_reset_cleanup(struct Scsi_Host *);
@@ -954,7 +957,8 @@
 	int err;
 	bool ret = true;
 	bool can_disconnect = instance->irq != NO_IRQ &&
-			      cmd->cmnd[0] != REQUEST_SENSE;
+			      cmd->cmnd[0] != REQUEST_SENSE &&
+			      (disconnect_mask & BIT(scmd_id(cmd)));
 
 	NCR5380_dprint(NDEBUG_ARBITRATION, instance);
 	dsprintk(NDEBUG_ARBITRATION, instance, "starting arbitration, id = %d\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/aacraid/aachba.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/aacraid/aachba.c
@@ -2467,13 +2467,13 @@
 		scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8 |
 			SAM_STAT_CHECK_CONDITION;
 		set_sense(&dev->fsa_dev[cid].sense_data,
-			  HARDWARE_ERROR, SENCODE_INTERNAL_TARGET_FAILURE,
+			  ILLEGAL_REQUEST, SENCODE_LBA_OUT_OF_RANGE,
 			  ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0);
 		memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
 		       min_t(size_t, sizeof(dev->fsa_dev[cid].sense_data),
 			     SCSI_SENSE_BUFFERSIZE));
 		scsicmd->scsi_done(scsicmd);
-		return 1;
+		return 0;
 	}
 
 	dprintk((KERN_DEBUG "aac_read[cpu %d]: lba = %llu, t = %ld.\n",
@@ -2559,13 +2559,13 @@
 		scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8 |
 			SAM_STAT_CHECK_CONDITION;
 		set_sense(&dev->fsa_dev[cid].sense_data,
-			  HARDWARE_ERROR, SENCODE_INTERNAL_TARGET_FAILURE,
+			  ILLEGAL_REQUEST, SENCODE_LBA_OUT_OF_RANGE,
 			  ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0);
 		memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
 		       min_t(size_t, sizeof(dev->fsa_dev[cid].sense_data),
 			     SCSI_SENSE_BUFFERSIZE));
 		scsicmd->scsi_done(scsicmd);
-		return 1;
+		return 0;
 	}
 
 	dprintk((KERN_DEBUG "aac_write[cpu %d]: lba = %llu, t = %ld.\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/aacraid/commsup.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/aacraid/commsup.c
@@ -728,7 +728,7 @@
 		hbacmd->request_id =
 			cpu_to_le32((((u32)(fibptr - dev->fibs)) << 2) + 1);
 		fibptr->flags |= FIB_CONTEXT_FLAG_SCSI_CMD;
-	} else if (command != HBA_IU_TYPE_SCSI_TM_REQ)
+	} else
 		return -EINVAL;
 
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/aacraid/linit.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/aacraid/linit.c
@@ -723,7 +723,11 @@
 		status = aac_hba_send(HBA_IU_TYPE_SCSI_TM_REQ, fib,
 				  (fib_callback) aac_hba_callback,
 				  (void *) cmd);
-
+		if (status != -EINPROGRESS) {
+			aac_fib_complete(fib);
+			aac_fib_free(fib);
+			return ret;
+		}
 		/* Wait up to 15 secs for completion */
 		for (count = 0; count < 15; ++count) {
 			if (cmd->SCp.sent_command) {
@@ -902,11 +906,11 @@
 
 	info = &aac->hba_map[bus][cid];
 
-	if (info->devtype != AAC_DEVTYPE_NATIVE_RAW &&
-	    info->reset_state > 0)
+	if (!(info->devtype == AAC_DEVTYPE_NATIVE_RAW &&
+	 !(info->reset_state > 0)))
 		return FAILED;
 
-	pr_err("%s: Host adapter reset request. SCSI hang ?\n",
+	pr_err("%s: Host device reset request. SCSI hang ?\n",
 	       AAC_DRIVERNAME);
 
 	fib = aac_fib_alloc(aac);
@@ -921,7 +925,12 @@
 	status = aac_hba_send(command, fib,
 			      (fib_callback) aac_tmf_callback,
 			      (void *) info);
-
+	if (status != -EINPROGRESS) {
+		info->reset_state = 0;
+		aac_fib_complete(fib);
+		aac_fib_free(fib);
+		return ret;
+	}
 	/* Wait up to 15 seconds for completion */
 	for (count = 0; count < 15; ++count) {
 		if (info->reset_state == 0) {
@@ -960,11 +969,11 @@
 
 	info = &aac->hba_map[bus][cid];
 
-	if (info->devtype != AAC_DEVTYPE_NATIVE_RAW &&
-	    info->reset_state > 0)
+	if (!(info->devtype == AAC_DEVTYPE_NATIVE_RAW &&
+	 !(info->reset_state > 0)))
 		return FAILED;
 
-	pr_err("%s: Host adapter reset request. SCSI hang ?\n",
+	pr_err("%s: Host target reset request. SCSI hang ?\n",
 	       AAC_DRIVERNAME);
 
 	fib = aac_fib_alloc(aac);
@@ -981,6 +990,13 @@
 			      (fib_callback) aac_tmf_callback,
 			      (void *) info);
 
+	if (status != -EINPROGRESS) {
+		info->reset_state = 0;
+		aac_fib_complete(fib);
+		aac_fib_free(fib);
+		return ret;
+	}
+
 	/* Wait up to 15 seconds for completion */
 	for (count = 0; count < 15; ++count) {
 		if (info->reset_state <= 0) {
@@ -1033,7 +1049,7 @@
 		}
 	}
 
-	pr_err("%s: Host adapter reset request. SCSI hang ?\n", AAC_DRIVERNAME);
+	pr_err("%s: Host bus reset request. SCSI hang ?\n", AAC_DRIVERNAME);
 
 	/*
 	 * Check the health of the controller
@@ -1591,7 +1607,7 @@
 	struct Scsi_Host *shost;
 	struct aac_dev *aac;
 	struct list_head *insert = &aac_devices;
-	int error = -ENODEV;
+	int error;
 	int unique_id = 0;
 	u64 dmamask;
 	int mask_bits = 0;
@@ -1616,7 +1632,6 @@
 	error = pci_enable_device(pdev);
 	if (error)
 		goto out;
-	error = -ENODEV;
 
 	if (!(aac_drivers[index].quirks & AAC_QUIRK_SRC)) {
 		error = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
@@ -1648,8 +1663,10 @@
 	pci_set_master(pdev);
 
 	shost = scsi_host_alloc(&aac_driver_template, sizeof(struct aac_dev));
-	if (!shost)
+	if (!shost) {
+		error = -ENOMEM;
 		goto out_disable_pdev;
+	}
 
 	shost->irq = pdev->irq;
 	shost->unique_id = unique_id;
@@ -1674,8 +1691,11 @@
 	aac->fibs = kcalloc(shost->can_queue + AAC_NUM_MGT_FIB,
 			    sizeof(struct fib),
 			    GFP_KERNEL);
-	if (!aac->fibs)
+	if (!aac->fibs) {
+		error = -ENOMEM;
 		goto out_free_host;
+	}
+
 	spin_lock_init(&aac->fib_lock);
 
 	mutex_init(&aac->ioctl_mutex);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/aic7xxx/aic7xxx_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/aic7xxx/aic7xxx_core.c
@@ -2314,7 +2314,7 @@
 			 * At some speeds, we only support
 			 * ST transfers.
 			 */
-		 	if ((syncrate->sxfr_u2 & ST_SXFR) != 0)
+			if ((syncrate->sxfr_u2 & ST_SXFR) != 0)
 				*ppr_options &= ~MSG_EXT_PPR_DT_REQ;
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/arm/acornscsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/arm/acornscsi.c
@@ -2911,8 +2911,10 @@
 
 	ashost->base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
 	ashost->fast = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
-	if (!ashost->base || !ashost->fast)
+	if (!ashost->base || !ashost->fast) {
+		ret = -ENOMEM;
 		goto out_put;
+	}
 
 	host->irq = ec->irq;
 	ashost->host = host;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/arm/cumana_2.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/arm/cumana_2.c
@@ -450,7 +450,7 @@
 
 	if (info->info.scsi.dma != NO_DMA)
 		free_dma(info->info.scsi.dma);
-	free_irq(ec->irq, host);
+	free_irq(ec->irq, info);
 
  out_release:
 	fas216_release(host);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/arm/eesox.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/arm/eesox.c
@@ -571,7 +571,7 @@
 
 	if (info->info.scsi.dma != NO_DMA)
 		free_dma(info->info.scsi.dma);
-	free_irq(ec->irq, host);
+	free_irq(ec->irq, info);
 
  out_remove:
 	fas216_remove(host);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/arm/powertec.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/arm/powertec.c
@@ -378,7 +378,7 @@
 
 	if (info->info.scsi.dma != NO_DMA)
 		free_dma(info->info.scsi.dma);
-	free_irq(ec->irq, host);
+	free_irq(ec->irq, info);
 
  out_release:
 	fas216_release(host);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/atari_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/atari_scsi.c
@@ -742,7 +742,7 @@
 		atari_scsi_template.sg_tablesize = SG_ALL;
 	} else {
 		atari_scsi_template.can_queue    = 1;
-		atari_scsi_template.sg_tablesize = SG_NONE;
+		atari_scsi_template.sg_tablesize = 1;
 	}
 
 	if (setup_can_queue > 0)
@@ -751,8 +751,8 @@
 	if (setup_cmd_per_lun > 0)
 		atari_scsi_template.cmd_per_lun = setup_cmd_per_lun;
 
-	/* Leave sg_tablesize at 0 on a Falcon! */
-	if (ATARIHW_PRESENT(TT_SCSI) && setup_sg_tablesize >= 0)
+	/* Don't increase sg_tablesize on Falcon! */
+	if (ATARIHW_PRESENT(TT_SCSI) && setup_sg_tablesize > 0)
 		atari_scsi_template.sg_tablesize = setup_sg_tablesize;
 
 	if (setup_hostid >= 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/bfa/bfad.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/bfa/bfad.c
@@ -749,6 +749,7 @@
 
 	if (bfad->pci_bar0_kva == NULL) {
 		printk(KERN_ERR "Fail to map bar0\n");
+		rc = -ENODEV;
 		goto out_release_region;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/bfa/bfad_attr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/bfa/bfad_attr.c
@@ -275,8 +275,10 @@
 	rc = bfa_port_get_stats(BFA_FCPORT(&bfad->bfa),
 				fcstats, bfad_hcb_comp, &fcomp);
 	spin_unlock_irqrestore(&bfad->bfad_lock, flags);
-	if (rc != BFA_STATUS_OK)
+	if (rc != BFA_STATUS_OK) {
+		kfree(fcstats);
 		return NULL;
+	}
 
 	wait_for_completion(&fcomp.comp);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/bnx2fc/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/bnx2fc/Kconfig
@@ -5,6 +5,7 @@
 	depends on (IPV6 || IPV6=n)
 	depends on LIBFC
 	depends on LIBFCOE
+	depends on MMU
 	select NETDEVICES
 	select ETHERNET
 	select NET_VENDOR_BROADCOM
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/bnx2i/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/bnx2i/Kconfig
@@ -4,6 +4,7 @@
 	depends on NET
 	depends on PCI
 	depends on (IPV6 || IPV6=n)
+	depends on MMU
 	select SCSI_ISCSI_ATTRS
 	select NETDEVICES
 	select ETHERNET
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -915,12 +915,12 @@
 	INIT_LIST_HEAD(&hba->ep_ofld_list);
 	INIT_LIST_HEAD(&hba->ep_active_list);
 	INIT_LIST_HEAD(&hba->ep_destroy_list);
-	pci_dev_put(hba->pcidev);
 
 	if (hba->regview) {
 		pci_iounmap(hba->pcidev, hba->regview);
 		hba->regview = NULL;
 	}
+	pci_dev_put(hba->pcidev);
 	bnx2i_free_mp_bdt(hba);
 	bnx2i_release_free_cid_que(hba);
 	iscsi_host_free(shost);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/csiostor/csio_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/csiostor/csio_hw.c
@@ -2384,7 +2384,7 @@
 			FW_HDR_FW_VER_MICRO_G(c), FW_HDR_FW_VER_BUILD_G(c),
 			FW_HDR_FW_VER_MAJOR_G(k), FW_HDR_FW_VER_MINOR_G(k),
 			FW_HDR_FW_VER_MICRO_G(k), FW_HDR_FW_VER_BUILD_G(k));
-		ret = EINVAL;
+		ret = -EINVAL;
 		goto bye;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/csiostor/csio_lnode.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/csiostor/csio_lnode.c
@@ -301,6 +301,7 @@
 	struct fc_fdmi_port_name *port_name;
 	uint8_t buf[64];
 	uint8_t *fc4_type;
+	unsigned long flags;
 
 	if (fdmi_req->wr_status != FW_SUCCESS) {
 		csio_ln_dbg(ln, "WR error:%x in processing fdmi rhba cmd\n",
@@ -385,13 +386,13 @@
 	len = (uint32_t)(pld - (uint8_t *)cmd);
 
 	/* Submit FDMI RPA request */
-	spin_lock_irq(&hw->lock);
+	spin_lock_irqsave(&hw->lock, flags);
 	if (csio_ln_mgmt_submit_req(fdmi_req, csio_ln_fdmi_done,
 				FCOE_CT, &fdmi_req->dma_buf, len)) {
 		CSIO_INC_STATS(ln, n_fdmi_err);
 		csio_ln_dbg(ln, "Failed to issue fdmi rpa req\n");
 	}
-	spin_unlock_irq(&hw->lock);
+	spin_unlock_irqrestore(&hw->lock, flags);
 }
 
 /*
@@ -412,6 +413,7 @@
 	struct fc_fdmi_rpl *reg_pl;
 	struct fs_fdmi_attrs *attrib_blk;
 	uint8_t buf[64];
+	unsigned long flags;
 
 	if (fdmi_req->wr_status != FW_SUCCESS) {
 		csio_ln_dbg(ln, "WR error:%x in processing fdmi dprt cmd\n",
@@ -491,13 +493,13 @@
 	attrib_blk->numattrs = htonl(numattrs);
 
 	/* Submit FDMI RHBA request */
-	spin_lock_irq(&hw->lock);
+	spin_lock_irqsave(&hw->lock, flags);
 	if (csio_ln_mgmt_submit_req(fdmi_req, csio_ln_fdmi_rhba_cbfn,
 				FCOE_CT, &fdmi_req->dma_buf, len)) {
 		CSIO_INC_STATS(ln, n_fdmi_err);
 		csio_ln_dbg(ln, "Failed to issue fdmi rhba req\n");
 	}
-	spin_unlock_irq(&hw->lock);
+	spin_unlock_irqrestore(&hw->lock, flags);
 }
 
 /*
@@ -512,6 +514,7 @@
 	void *cmd;
 	struct fc_fdmi_port_name *port_name;
 	uint32_t len;
+	unsigned long flags;
 
 	if (fdmi_req->wr_status != FW_SUCCESS) {
 		csio_ln_dbg(ln, "WR error:%x in processing fdmi dhba cmd\n",
@@ -542,13 +545,13 @@
 	len += sizeof(*port_name);
 
 	/* Submit FDMI request */
-	spin_lock_irq(&hw->lock);
+	spin_lock_irqsave(&hw->lock, flags);
 	if (csio_ln_mgmt_submit_req(fdmi_req, csio_ln_fdmi_dprt_cbfn,
 				FCOE_CT, &fdmi_req->dma_buf, len)) {
 		CSIO_INC_STATS(ln, n_fdmi_err);
 		csio_ln_dbg(ln, "Failed to issue fdmi dprt req\n");
 	}
-	spin_unlock_irq(&hw->lock);
+	spin_unlock_irqrestore(&hw->lock, flags);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/csiostor/csio_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/csiostor/csio_scsi.c
@@ -1383,7 +1383,7 @@
 		return -EINVAL;
 
 	/* Delete NPIV lnodes */
-	 csio_lnodes_exit(hw, 1);
+	csio_lnodes_exit(hw, 1);
 
 	/* Block upper IOs */
 	csio_lnodes_block_request(hw);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c
@@ -959,6 +959,7 @@
 	struct net_device *ndev = cdev->ports[csk->port_id];
 	struct cxgbi_hba *chba = cdev->hbas[csk->port_id];
 	struct sk_buff *skb = NULL;
+	int ret;
 
 	log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK,
 		"csk 0x%p,%u,0x%lx.\n", csk, csk->state, csk->flags);
@@ -979,16 +980,16 @@
 	csk->atid = cxgb3_alloc_atid(t3dev, &t3_client, csk);
 	if (csk->atid < 0) {
 		pr_err("NO atid available.\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_sock;
 	}
 	cxgbi_sock_set_flag(csk, CTPF_HAS_ATID);
 	cxgbi_sock_get(csk);
 
 	skb = alloc_wr(sizeof(struct cpl_act_open_req), 0, GFP_KERNEL);
 	if (!skb) {
-		cxgb3_free_atid(t3dev, csk->atid);
-		cxgbi_sock_put(csk);
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto free_atid;
 	}
 	skb->sk = (struct sock *)csk;
 	set_arp_failure_handler(skb, act_open_arp_failure);
@@ -1010,6 +1011,15 @@
 	cxgbi_sock_set_state(csk, CTP_ACTIVE_OPEN);
 	send_act_open_req(csk, skb, csk->l2t);
 	return 0;
+
+free_atid:
+	cxgb3_free_atid(t3dev, csk->atid);
+put_sock:
+	cxgbi_sock_put(csk);
+	l2t_release(t3dev, csk->l2t);
+	csk->l2t = NULL;
+
+	return ret;
 }
 
 cxgb3_cpl_handler_func cxgb3i_cpl_handlers[NUM_CPL_CMDS] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/cxgbi/cxgb4i/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/cxgbi/cxgb4i/Kconfig
@@ -4,6 +4,7 @@
 	depends on PCI && INET && (IPV6 || IPV6=n)
 	depends on THERMAL || !THERMAL
 	depends on ETHERNET
+	depends on TLS || TLS=n
 	select NET_VENDOR_CHELSIO
 	select CHELSIO_T4
 	select CHELSIO_LIB
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/cxgbi/libcxgbi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/cxgbi/libcxgbi.c
@@ -121,7 +121,8 @@
 		"cdev 0x%p, p# %u.\n", cdev, cdev->nports);
 	cxgbi_hbas_remove(cdev);
 	cxgbi_device_portmap_cleanup(cdev);
-	cxgbi_ppm_release(cdev->cdev2ppm(cdev));
+	if (cdev->cdev2ppm)
+		cxgbi_ppm_release(cdev->cdev2ppm(cdev));
 	if (cdev->pmap.max_connect)
 		cxgbi_free_big_mem(cdev->pmap.port_csk);
 	kfree(cdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/cxlflash/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/cxlflash/main.c
@@ -3746,6 +3746,7 @@
 	cfg->afu_cookie = cfg->ops->create_afu(pdev);
 	if (unlikely(!cfg->afu_cookie)) {
 		dev_err(dev, "%s: create_afu failed\n", __func__);
+		rc = -ENOMEM;
 		goto out_remove;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/device_handler/scsi_dh_alua.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -658,8 +658,8 @@
 					rcu_read_lock();
 					list_for_each_entry_rcu(h,
 						&tmp_pg->dh_list, node) {
-						/* h->sdev should always be valid */
-						BUG_ON(!h->sdev);
+						if (!h->sdev)
+							continue;
 						h->sdev->access_state = desc[0];
 					}
 					rcu_read_unlock();
@@ -705,7 +705,8 @@
 			pg->expiry = 0;
 			rcu_read_lock();
 			list_for_each_entry_rcu(h, &pg->dh_list, node) {
-				BUG_ON(!h->sdev);
+				if (!h->sdev)
+					continue;
 				h->sdev->access_state =
 					(pg->state & SCSI_ACCESS_STATE_MASK);
 				if (pg->pref)
@@ -1147,7 +1148,6 @@
 	spin_lock(&h->pg_lock);
 	pg = rcu_dereference_protected(h->pg, lockdep_is_held(&h->pg_lock));
 	rcu_assign_pointer(h->pg, NULL);
-	h->sdev = NULL;
 	spin_unlock(&h->pg_lock);
 	if (pg) {
 		spin_lock_irq(&pg->lock);
@@ -1156,6 +1156,7 @@
 		kref_put(&pg->kref, release_port_group);
 	}
 	sdev->handler_data = NULL;
+	synchronize_rcu();
 	kfree(h);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/esas2r/esas2r_flash.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/esas2r/esas2r_flash.c
@@ -1197,6 +1197,7 @@
 	if (!esas2r_read_flash_block(a, a->nvram, FLS_OFFSET_NVR,
 				     sizeof(struct esas2r_sas_nvram))) {
 		esas2r_hdebug("NVRAM read failed, using defaults");
+		up(&a->nvram_semaphore);
 		return false;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/fcoe/fcoe_ctlr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -255,9 +255,9 @@
 		WARN_ON(!fcf_dev);
 		new->fcf_dev = NULL;
 		fcoe_fcf_device_delete(fcf_dev);
-		kfree(new);
 		mutex_unlock(&cdev->lock);
 	}
+	kfree(new);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/fnic/fnic_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/fnic/fnic_main.c
@@ -741,6 +741,7 @@
 	for (i = 0; i < FNIC_IO_LOCKS; i++)
 		spin_lock_init(&fnic->io_req_lock[i]);
 
+	err = -ENOMEM;
 	fnic->io_req_pool = mempool_create_slab_pool(2, fnic_io_req_cache);
 	if (!fnic->io_req_pool)
 		goto err_out_free_resources;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/fnic/fnic_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/fnic/fnic_scsi.c
@@ -439,6 +439,9 @@
 	if (unlikely(fnic_chk_state_flags_locked(fnic, FNIC_FLAGS_IO_BLOCKED)))
 		return SCSI_MLQUEUE_HOST_BUSY;
 
+	if (unlikely(fnic_chk_state_flags_locked(fnic, FNIC_FLAGS_FWRESET)))
+		return SCSI_MLQUEUE_HOST_BUSY;
+
 	rport = starget_to_rport(scsi_target(sc->device));
 	if (!rport) {
 		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
@@ -1024,7 +1027,8 @@
 		atomic64_inc(&fnic_stats->io_stats.io_completions);
 
 
-	io_duration_time = jiffies_to_msecs(jiffies) - jiffies_to_msecs(io_req->start_time);
+	io_duration_time = jiffies_to_msecs(jiffies) -
+						jiffies_to_msecs(start_time);
 
 	if(io_duration_time <= 10)
 		atomic64_inc(&fnic_stats->io_stats.io_btw_0_to_10_msec);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/fnic/vnic_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/fnic/vnic_dev.c
@@ -444,7 +444,8 @@
 	fetch_index = ioread32(&vdev->devcmd2->wq.ctrl->fetch_index);
 	if (fetch_index == 0xFFFFFFFF) { /* check for hardware gone  */
 		pr_err("error in devcmd2 init");
-		return -ENODEV;
+		err = -ENODEV;
+		goto err_free_wq;
 	}
 
 	/*
@@ -460,7 +461,7 @@
 	err = vnic_dev_alloc_desc_ring(vdev, &vdev->devcmd2->results_ring,
 			DEVCMD2_RING_SIZE, DEVCMD2_DESC_SIZE);
 	if (err)
-		goto err_free_wq;
+		goto err_disable_wq;
 
 	vdev->devcmd2->result =
 		(struct devcmd2_result *) vdev->devcmd2->results_ring.descs;
@@ -481,8 +482,9 @@
 
 err_free_desc_ring:
 	vnic_dev_free_desc_ring(vdev, &vdev->devcmd2->results_ring);
-err_free_wq:
+err_disable_wq:
 	vnic_wq_disable(&vdev->devcmd2->wq);
+err_free_wq:
 	vnic_wq_free(&vdev->devcmd2->wq);
 err_free_devcmd2:
 	kfree(vdev->devcmd2);
@@ -688,26 +690,26 @@
 
 int vnic_dev_hang_notify(struct vnic_dev *vdev)
 {
-	u64 a0, a1;
+	u64 a0 = 0, a1 = 0;
 	int wait = 1000;
 	return vnic_dev_cmd(vdev, CMD_HANG_NOTIFY, &a0, &a1, wait);
 }
 
 int vnic_dev_mac_addr(struct vnic_dev *vdev, u8 *mac_addr)
 {
-	u64 a0, a1;
+	u64 a[2] = {};
 	int wait = 1000;
 	int err, i;
 
 	for (i = 0; i < ETH_ALEN; i++)
 		mac_addr[i] = 0;
 
-	err = vnic_dev_cmd(vdev, CMD_MAC_ADDR, &a0, &a1, wait);
+	err = vnic_dev_cmd(vdev, CMD_MAC_ADDR, &a[0], &a[1], wait);
 	if (err)
 		return err;
 
 	for (i = 0; i < ETH_ALEN; i++)
-		mac_addr[i] = ((u8 *)&a0)[i];
+		mac_addr[i] = ((u8 *)&a)[i];
 
 	return 0;
 }
@@ -732,30 +734,30 @@
 
 void vnic_dev_add_addr(struct vnic_dev *vdev, u8 *addr)
 {
-	u64 a0 = 0, a1 = 0;
+	u64 a[2] = {};
 	int wait = 1000;
 	int err;
 	int i;
 
 	for (i = 0; i < ETH_ALEN; i++)
-		((u8 *)&a0)[i] = addr[i];
+		((u8 *)&a)[i] = addr[i];
 
-	err = vnic_dev_cmd(vdev, CMD_ADDR_ADD, &a0, &a1, wait);
+	err = vnic_dev_cmd(vdev, CMD_ADDR_ADD, &a[0], &a[1], wait);
 	if (err)
 		pr_err("Can't add addr [%pM], %d\n", addr, err);
 }
 
 void vnic_dev_del_addr(struct vnic_dev *vdev, u8 *addr)
 {
-	u64 a0 = 0, a1 = 0;
+	u64 a[2] = {};
 	int wait = 1000;
 	int err;
 	int i;
 
 	for (i = 0; i < ETH_ALEN; i++)
-		((u8 *)&a0)[i] = addr[i];
+		((u8 *)&a)[i] = addr[i];
 
-	err = vnic_dev_cmd(vdev, CMD_ADDR_DEL, &a0, &a1, wait);
+	err = vnic_dev_cmd(vdev, CMD_ADDR_DEL, &a[0], &a[1], wait);
 	if (err)
 		pr_err("Can't del addr [%pM], %d\n", addr, err);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/hisi_sas/hisi_sas.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/hisi_sas/hisi_sas.h
@@ -21,6 +21,7 @@
 #include <linux/platform_device.h>
 #include <linux/property.h>
 #include <linux/regmap.h>
+#include <linux/timer.h>
 #include <scsi/sas_ata.h>
 #include <scsi/libsas.h>
 
@@ -84,6 +85,7 @@
 #define HISI_SAS_PROT_MASK (HISI_SAS_DIF_PROT_MASK | HISI_SAS_DIX_PROT_MASK)
 
 #define HISI_SAS_WAIT_PHYUP_TIMEOUT 20
+#define CLEAR_ITCT_TIMEOUT	20
 
 struct hisi_hba;
 
@@ -167,6 +169,7 @@
 	enum sas_linkrate	minimum_linkrate;
 	enum sas_linkrate	maximum_linkrate;
 	int enable;
+	atomic_t down_cnt;
 };
 
 struct hisi_sas_port {
@@ -177,10 +180,10 @@
 
 struct hisi_sas_cq {
 	struct hisi_hba *hisi_hba;
-	const struct cpumask *pci_irq_mask;
-	struct tasklet_struct tasklet;
+	const struct cpumask *irq_mask;
 	int	rd_point;
 	int	id;
+	int	irq_no;
 };
 
 struct hisi_sas_dq {
@@ -296,8 +299,8 @@
 	void (*phy_set_linkrate)(struct hisi_hba *hisi_hba, int phy_no,
 			struct sas_phy_linkrates *linkrates);
 	enum sas_linkrate (*phy_get_max_linkrate)(void);
-	void (*clear_itct)(struct hisi_hba *hisi_hba,
-			    struct hisi_sas_device *dev);
+	int (*clear_itct)(struct hisi_hba *hisi_hba,
+			  struct hisi_sas_device *dev);
 	void (*free_device)(struct hisi_sas_device *sas_dev);
 	int (*get_wideport_bitmap)(struct hisi_hba *hisi_hba, int port_id);
 	void (*dereg_device)(struct hisi_hba *hisi_hba,
@@ -321,6 +324,44 @@
 	const struct hisi_sas_debugfs_reg *debugfs_reg_port;
 };
 
+#define HISI_SAS_MAX_DEBUGFS_DUMP (50)
+
+struct hisi_sas_debugfs_cq {
+	struct hisi_sas_cq *cq;
+	void *complete_hdr;
+};
+
+struct hisi_sas_debugfs_dq {
+	struct hisi_sas_dq *dq;
+	struct hisi_sas_cmd_hdr *hdr;
+};
+
+struct hisi_sas_debugfs_regs {
+	struct hisi_hba *hisi_hba;
+	u32 *data;
+};
+
+struct hisi_sas_debugfs_port {
+	struct hisi_sas_phy *phy;
+	u32 *data;
+};
+
+struct hisi_sas_debugfs_iost {
+	struct hisi_sas_iost *iost;
+};
+
+struct hisi_sas_debugfs_itct {
+	struct hisi_sas_itct *itct;
+};
+
+struct hisi_sas_debugfs_iost_cache {
+	struct hisi_sas_iost_itct_cache *cache;
+};
+
+struct hisi_sas_debugfs_itct_cache {
+	struct hisi_sas_iost_itct_cache *cache;
+};
+
 struct hisi_hba {
 	/* This must be the first element, used by SHOST_TO_SAS_HA */
 	struct sas_ha_struct *p;
@@ -402,19 +443,20 @@
 
 	/* debugfs memories */
 	/* Put Global AXI and RAS Register into register array */
-	u32 *debugfs_regs[DEBUGFS_REGS_NUM];
-	u32 *debugfs_port_reg[HISI_SAS_MAX_PHYS];
-	void *debugfs_complete_hdr[HISI_SAS_MAX_QUEUES];
-	struct hisi_sas_cmd_hdr	*debugfs_cmd_hdr[HISI_SAS_MAX_QUEUES];
-	struct hisi_sas_iost *debugfs_iost;
-	struct hisi_sas_itct *debugfs_itct;
-	u64 *debugfs_iost_cache;
-	u64 *debugfs_itct_cache;
+	struct hisi_sas_debugfs_regs debugfs_regs[HISI_SAS_MAX_DEBUGFS_DUMP][DEBUGFS_REGS_NUM];
+	struct hisi_sas_debugfs_port debugfs_port_reg[HISI_SAS_MAX_DEBUGFS_DUMP][HISI_SAS_MAX_PHYS];
+	struct hisi_sas_debugfs_cq debugfs_cq[HISI_SAS_MAX_DEBUGFS_DUMP][HISI_SAS_MAX_QUEUES];
+	struct hisi_sas_debugfs_dq debugfs_dq[HISI_SAS_MAX_DEBUGFS_DUMP][HISI_SAS_MAX_QUEUES];
+	struct hisi_sas_debugfs_iost debugfs_iost[HISI_SAS_MAX_DEBUGFS_DUMP];
+	struct hisi_sas_debugfs_itct debugfs_itct[HISI_SAS_MAX_DEBUGFS_DUMP];
+	struct hisi_sas_debugfs_iost_cache debugfs_iost_cache[HISI_SAS_MAX_DEBUGFS_DUMP];
+	struct hisi_sas_debugfs_itct_cache debugfs_itct_cache[HISI_SAS_MAX_DEBUGFS_DUMP];
 
+	u64 debugfs_timestamp[HISI_SAS_MAX_DEBUGFS_DUMP];
+	int debugfs_dump_index;
 	struct dentry *debugfs_dir;
 	struct dentry *debugfs_dump_dentry;
 	struct dentry *debugfs_bist_dentry;
-	bool debugfs_snapshot;
 };
 
 /* Generic HW DMA host memory structures */
@@ -556,6 +598,7 @@
 extern struct scsi_transport_template *hisi_sas_stt;
 
 extern bool hisi_sas_debugfs_enable;
+extern u32 hisi_sas_debugfs_dump_count;
 extern struct dentry *hisi_sas_debugfs_dir;
 
 extern void hisi_sas_stop_phys(struct hisi_hba *hisi_hba);
@@ -584,7 +627,7 @@
 extern void hisi_sas_init_mem(struct hisi_hba *hisi_hba);
 extern void hisi_sas_rst_work_handler(struct work_struct *work);
 extern void hisi_sas_sync_rst_work_handler(struct work_struct *work);
-extern void hisi_sas_kill_tasklets(struct hisi_hba *hisi_hba);
+extern void hisi_sas_sync_irqs(struct hisi_hba *hisi_hba);
 extern void hisi_sas_phy_oob_ready(struct hisi_hba *hisi_hba, int phy_no);
 extern bool hisi_sas_notify_phy_event(struct hisi_sas_phy *phy,
 				enum hisi_sas_phy_event event);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -163,13 +163,11 @@
 
 static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx)
 {
-	unsigned long flags;
-
 	if (hisi_hba->hw->slot_index_alloc ||
 	    slot_idx >= HISI_SAS_UNRESERVED_IPTT) {
-		spin_lock_irqsave(&hisi_hba->lock, flags);
+		spin_lock(&hisi_hba->lock);
 		hisi_sas_slot_index_clear(hisi_hba, slot_idx);
-		spin_unlock_irqrestore(&hisi_hba->lock, flags);
+		spin_unlock(&hisi_hba->lock);
 	}
 }
 
@@ -185,12 +183,11 @@
 {
 	int index;
 	void *bitmap = hisi_hba->slot_index_tags;
-	unsigned long flags;
 
 	if (scsi_cmnd)
 		return scsi_cmnd->request->tag;
 
-	spin_lock_irqsave(&hisi_hba->lock, flags);
+	spin_lock(&hisi_hba->lock);
 	index = find_next_zero_bit(bitmap, hisi_hba->slot_index_count,
 				   hisi_hba->last_slot_index + 1);
 	if (index >= hisi_hba->slot_index_count) {
@@ -198,13 +195,13 @@
 				hisi_hba->slot_index_count,
 				HISI_SAS_UNRESERVED_IPTT);
 		if (index >= hisi_hba->slot_index_count) {
-			spin_unlock_irqrestore(&hisi_hba->lock, flags);
+			spin_unlock(&hisi_hba->lock);
 			return -SAS_QUEUE_FULL;
 		}
 	}
 	hisi_sas_slot_index_set(hisi_hba, index);
 	hisi_hba->last_slot_index = index;
-	spin_unlock_irqrestore(&hisi_hba->lock, flags);
+	spin_unlock(&hisi_hba->lock);
 
 	return index;
 }
@@ -220,7 +217,6 @@
 void hisi_sas_slot_task_free(struct hisi_hba *hisi_hba, struct sas_task *task,
 			     struct hisi_sas_slot *slot)
 {
-	unsigned long flags;
 	int device_id = slot->device_id;
 	struct hisi_sas_device *sas_dev = &hisi_hba->devices[device_id];
 
@@ -247,9 +243,9 @@
 		}
 	}
 
-	spin_lock_irqsave(&sas_dev->lock, flags);
+	spin_lock(&sas_dev->lock);
 	list_del_init(&slot->entry);
-	spin_unlock_irqrestore(&sas_dev->lock, flags);
+	spin_unlock(&sas_dev->lock);
 
 	memset(slot, 0, offsetof(struct hisi_sas_slot, buf));
 
@@ -489,14 +485,14 @@
 	slot_idx = rc;
 	slot = &hisi_hba->slot_info[slot_idx];
 
-	spin_lock_irqsave(&dq->lock, flags);
+	spin_lock(&dq->lock);
 	wr_q_index = dq->wr_point;
 	dq->wr_point = (dq->wr_point + 1) % HISI_SAS_QUEUE_SLOTS;
 	list_add_tail(&slot->delivery, &dq->list);
-	spin_unlock_irqrestore(&dq->lock, flags);
-	spin_lock_irqsave(&sas_dev->lock, flags);
+	spin_unlock(&dq->lock);
+	spin_lock(&sas_dev->lock);
 	list_add_tail(&slot->entry, &sas_dev->list);
-	spin_unlock_irqrestore(&sas_dev->lock, flags);
+	spin_unlock(&sas_dev->lock);
 
 	dlvry_queue = dq->id;
 	dlvry_queue_slot = wr_q_index;
@@ -562,7 +558,6 @@
 {
 	u32 rc;
 	u32 pass = 0;
-	unsigned long flags;
 	struct hisi_hba *hisi_hba;
 	struct device *dev;
 	struct domain_device *device = task->dev;
@@ -587,7 +582,13 @@
 	dev = hisi_hba->dev;
 
 	if (unlikely(test_bit(HISI_SAS_REJECT_CMD_BIT, &hisi_hba->flags))) {
-		if (in_softirq())
+		/*
+		 * For IOs from upper layer, it may already disable preempt
+		 * in the IO path, if disable preempt again in down(),
+		 * function schedule() will report schedule_bug(), so check
+		 * preemptible() before goto down().
+		 */
+		if (!preemptible())
 			return -EINVAL;
 
 		down(&hisi_hba->sem);
@@ -600,9 +601,9 @@
 		dev_err(dev, "task exec: failed[%d]!\n", rc);
 
 	if (likely(pass)) {
-		spin_lock_irqsave(&dq->lock, flags);
+		spin_lock(&dq->lock);
 		hisi_hba->hw->start_delivery(dq);
-		spin_unlock_irqrestore(&dq->lock, flags);
+		spin_unlock(&dq->lock);
 	}
 
 	return rc;
@@ -653,12 +654,11 @@
 {
 	struct hisi_hba *hisi_hba = dev_to_hisi_hba(device);
 	struct hisi_sas_device *sas_dev = NULL;
-	unsigned long flags;
 	int last = hisi_hba->last_dev_id;
 	int first = (hisi_hba->last_dev_id + 1) % HISI_SAS_MAX_DEVICES;
 	int i;
 
-	spin_lock_irqsave(&hisi_hba->lock, flags);
+	spin_lock(&hisi_hba->lock);
 	for (i = first; i != last; i %= HISI_SAS_MAX_DEVICES) {
 		if (hisi_hba->devices[i].dev_type == SAS_PHY_UNUSED) {
 			int queue = i % hisi_hba->queue_count;
@@ -678,7 +678,7 @@
 		i++;
 	}
 	hisi_hba->last_dev_id = i;
-	spin_unlock_irqrestore(&hisi_hba->lock, flags);
+	spin_unlock(&hisi_hba->lock);
 
 	return sas_dev;
 }
@@ -898,8 +898,11 @@
 	struct hisi_sas_phy *phy = &hisi_hba->phy[phy_no];
 	struct device *dev = hisi_hba->dev;
 
+	dev_dbg(dev, "phy%d OOB ready\n", phy_no);
+	if (phy->phy_attached)
+		return;
+
 	if (!timer_pending(&phy->timer)) {
-		dev_dbg(dev, "phy%d OOB ready\n", phy_no);
 		phy->timer.expires = jiffies + HISI_SAS_WAIT_PHYUP_TIMEOUT * HZ;
 		add_timer(&phy->timer);
 	}
@@ -968,12 +971,13 @@
 	struct hisi_hba *hisi_hba = sas_ha->lldd_ha;
 	struct hisi_sas_phy *phy = sas_phy->lldd_phy;
 	struct asd_sas_port *sas_port = sas_phy->port;
-	struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
+	struct hisi_sas_port *port;
 	unsigned long flags;
 
 	if (!sas_port)
 		return;
 
+	port = to_hisi_sas_port(sas_port);
 	spin_lock_irqsave(&hisi_hba->lock, flags);
 	port->port_attached = 1;
 	port->id = phy->port_id;
@@ -1045,6 +1049,7 @@
 	struct hisi_sas_device *sas_dev = device->lldd_dev;
 	struct hisi_hba *hisi_hba = dev_to_hisi_hba(device);
 	struct device *dev = hisi_hba->dev;
+	int ret = 0;
 
 	dev_info(dev, "dev[%d:%x] is gone\n",
 		 sas_dev->device_id, sas_dev->dev_type);
@@ -1056,13 +1061,16 @@
 
 		hisi_sas_dereg_device(hisi_hba, device);
 
-		hisi_hba->hw->clear_itct(hisi_hba, sas_dev);
+		ret = hisi_hba->hw->clear_itct(hisi_hba, sas_dev);
 		device->lldd_dev = NULL;
 	}
 
 	if (hisi_hba->hw->free_device)
 		hisi_hba->hw->free_device(sas_dev);
-	sas_dev->dev_type = SAS_PHY_UNUSED;
+
+	/* Don't mark it as SAS_PHY_UNUSED if failed to clear ITCT */
+	if (!ret)
+		sas_dev->dev_type = SAS_PHY_UNUSED;
 	sas_dev->sas_device = NULL;
 	up(&hisi_hba->sem);
 }
@@ -1222,10 +1230,10 @@
 					struct hisi_sas_cq *cq =
 					       &hisi_hba->cq[slot->dlvry_queue];
 					/*
-					 * flush tasklet to avoid free'ing task
+					 * sync irq to avoid free'ing task
 					 * before using task in IO completion
 					 */
-					tasklet_kill(&cq->tasklet);
+					synchronize_irq(cq->irq_no);
 					slot->task = NULL;
 				}
 
@@ -1563,7 +1571,7 @@
 	struct Scsi_Host *shost = hisi_hba->shost;
 	int rc;
 
-	if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct)
+	if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct[0].itct)
 		queue_work(hisi_hba->wq, &hisi_hba->debugfs_work);
 
 	if (!hisi_hba->hw->soft_reset)
@@ -1615,11 +1623,11 @@
 
 		if (slot) {
 			/*
-			 * flush tasklet to avoid free'ing task
+			 * sync irq to avoid free'ing task
 			 * before using task in IO completion
 			 */
 			cq = &hisi_hba->cq[slot->dlvry_queue];
-			tasklet_kill(&cq->tasklet);
+			synchronize_irq(cq->irq_no);
 		}
 		spin_unlock_irqrestore(&task->task_state_lock, flags);
 		rc = TMF_RESP_FUNC_COMPLETE;
@@ -1683,10 +1691,10 @@
 		if (((rc < 0) || (rc == TMF_RESP_FUNC_FAILED)) &&
 					task->lldd_task) {
 			/*
-			 * flush tasklet to avoid free'ing task
+			 * sync irq to avoid free'ing task
 			 * before using task in IO completion
 			 */
-			tasklet_kill(&cq->tasklet);
+			synchronize_irq(cq->irq_no);
 			slot->task = NULL;
 		}
 	}
@@ -1954,14 +1962,14 @@
 	slot_idx = rc;
 	slot = &hisi_hba->slot_info[slot_idx];
 
-	spin_lock_irqsave(&dq->lock, flags);
+	spin_lock(&dq->lock);
 	wr_q_index = dq->wr_point;
 	dq->wr_point = (dq->wr_point + 1) % HISI_SAS_QUEUE_SLOTS;
 	list_add_tail(&slot->delivery, &dq->list);
-	spin_unlock_irqrestore(&dq->lock, flags);
-	spin_lock_irqsave(&sas_dev->lock, flags);
+	spin_unlock(&dq->lock);
+	spin_lock(&sas_dev->lock);
 	list_add_tail(&slot->entry, &sas_dev->list);
-	spin_unlock_irqrestore(&sas_dev->lock, flags);
+	spin_unlock(&sas_dev->lock);
 
 	dlvry_queue = dq->id;
 	dlvry_queue_slot = wr_q_index;
@@ -1990,9 +1998,9 @@
 	spin_unlock_irqrestore(&task->task_state_lock, flags);
 	WRITE_ONCE(slot->ready, 1);
 	/* send abort command to the chip */
-	spin_lock_irqsave(&dq->lock, flags);
+	spin_lock(&dq->lock);
 	hisi_hba->hw->start_delivery(dq);
-	spin_unlock_irqrestore(&dq->lock, flags);
+	spin_unlock(&dq->lock);
 
 	return 0;
 
@@ -2055,7 +2063,7 @@
 
 	/* Internal abort timed out */
 	if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
-		if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct)
+		if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct[0].itct)
 			queue_work(hisi_hba->wq, &hisi_hba->debugfs_work);
 
 		if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
@@ -2065,10 +2073,10 @@
 				struct hisi_sas_cq *cq =
 					&hisi_hba->cq[slot->dlvry_queue];
 				/*
-				 * flush tasklet to avoid free'ing task
+				 * sync irq to avoid free'ing task
 				 * before using task in IO completion
 				 */
-				tasklet_kill(&cq->tasklet);
+				synchronize_irq(cq->irq_no);
 				slot->task = NULL;
 			}
 			dev_err(dev, "internal task abort: timeout and not done.\n");
@@ -2120,7 +2128,7 @@
 	case HISI_SAS_INT_ABT_DEV:
 		for (i = 0; i < hisi_hba->cq_nvecs; i++) {
 			struct hisi_sas_cq *cq = &hisi_hba->cq[i];
-			const struct cpumask *mask = cq->pci_irq_mask;
+			const struct cpumask *mask = cq->irq_mask;
 
 			if (mask && !cpumask_intersects(cpu_online_mask, mask))
 				continue;
@@ -2214,17 +2222,17 @@
 }
 EXPORT_SYMBOL_GPL(hisi_sas_phy_down);
 
-void hisi_sas_kill_tasklets(struct hisi_hba *hisi_hba)
+void hisi_sas_sync_irqs(struct hisi_hba *hisi_hba)
 {
 	int i;
 
 	for (i = 0; i < hisi_hba->cq_nvecs; i++) {
 		struct hisi_sas_cq *cq = &hisi_hba->cq[i];
 
-		tasklet_kill(&cq->tasklet);
+		synchronize_irq(cq->irq_no);
 	}
 }
-EXPORT_SYMBOL_GPL(hisi_sas_kill_tasklets);
+EXPORT_SYMBOL_GPL(hisi_sas_sync_irqs);
 
 int hisi_sas_host_reset(struct Scsi_Host *shost, int reset_type)
 {
@@ -2676,6 +2684,7 @@
 err_out_register_ha:
 	scsi_remove_host(shost);
 err_out_ha:
+	hisi_sas_debugfs_exit(hisi_hba);
 	hisi_sas_free(hisi_hba);
 	scsi_host_put(shost);
 	return rc;
@@ -2687,10 +2696,11 @@
 static void hisi_sas_debugfs_snapshot_cq_reg(struct hisi_hba *hisi_hba)
 {
 	int queue_entry_size = hisi_hba->hw->complete_hdr_size;
+	int dump_index = hisi_hba->debugfs_dump_index;
 	int i;
 
 	for (i = 0; i < hisi_hba->queue_count; i++)
-		memcpy(hisi_hba->debugfs_complete_hdr[i],
+		memcpy(hisi_hba->debugfs_cq[dump_index][i].complete_hdr,
 		       hisi_hba->complete_hdr[i],
 		       HISI_SAS_QUEUE_SLOTS * queue_entry_size);
 }
@@ -2698,13 +2708,14 @@
 static void hisi_sas_debugfs_snapshot_dq_reg(struct hisi_hba *hisi_hba)
 {
 	int queue_entry_size = sizeof(struct hisi_sas_cmd_hdr);
+	int dump_index = hisi_hba->debugfs_dump_index;
 	int i;
 
 	for (i = 0; i < hisi_hba->queue_count; i++) {
-		struct hisi_sas_cmd_hdr	*debugfs_cmd_hdr, *cmd_hdr;
+		struct hisi_sas_cmd_hdr *debugfs_cmd_hdr, *cmd_hdr;
 		int j;
 
-		debugfs_cmd_hdr = hisi_hba->debugfs_cmd_hdr[i];
+		debugfs_cmd_hdr = hisi_hba->debugfs_dq[dump_index][i].hdr;
 		cmd_hdr = hisi_hba->cmd_hdr[i];
 
 		for (j = 0; j < HISI_SAS_QUEUE_SLOTS; j++)
@@ -2715,6 +2726,7 @@
 
 static void hisi_sas_debugfs_snapshot_port_reg(struct hisi_hba *hisi_hba)
 {
+	int dump_index = hisi_hba->debugfs_dump_index;
 	const struct hisi_sas_debugfs_reg *port =
 		hisi_hba->hw->debugfs_reg_port;
 	int i, phy_cnt;
@@ -2722,7 +2734,7 @@
 	u32 *databuf;
 
 	for (phy_cnt = 0; phy_cnt < hisi_hba->n_phy; phy_cnt++) {
-		databuf = (u32 *)hisi_hba->debugfs_port_reg[phy_cnt];
+		databuf = hisi_hba->debugfs_port_reg[dump_index][phy_cnt].data;
 		for (i = 0; i < port->count; i++, databuf++) {
 			offset = port->base_off + 4 * i;
 			*databuf = port->read_port_reg(hisi_hba, phy_cnt,
@@ -2733,7 +2745,8 @@
 
 static void hisi_sas_debugfs_snapshot_global_reg(struct hisi_hba *hisi_hba)
 {
-	u32 *databuf = hisi_hba->debugfs_regs[DEBUGFS_GLOBAL];
+	int dump_index = hisi_hba->debugfs_dump_index;
+	u32 *databuf = hisi_hba->debugfs_regs[dump_index][DEBUGFS_GLOBAL].data;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const struct hisi_sas_debugfs_reg *global =
 			hw->debugfs_reg_array[DEBUGFS_GLOBAL];
@@ -2745,7 +2758,8 @@
 
 static void hisi_sas_debugfs_snapshot_axi_reg(struct hisi_hba *hisi_hba)
 {
-	u32 *databuf = hisi_hba->debugfs_regs[DEBUGFS_AXI];
+	int dump_index = hisi_hba->debugfs_dump_index;
+	u32 *databuf = hisi_hba->debugfs_regs[dump_index][DEBUGFS_AXI].data;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const struct hisi_sas_debugfs_reg *axi =
 			hw->debugfs_reg_array[DEBUGFS_AXI];
@@ -2758,7 +2772,8 @@
 
 static void hisi_sas_debugfs_snapshot_ras_reg(struct hisi_hba *hisi_hba)
 {
-	u32 *databuf = hisi_hba->debugfs_regs[DEBUGFS_RAS];
+	int dump_index = hisi_hba->debugfs_dump_index;
+	u32 *databuf = hisi_hba->debugfs_regs[dump_index][DEBUGFS_RAS].data;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const struct hisi_sas_debugfs_reg *ras =
 			hw->debugfs_reg_array[DEBUGFS_RAS];
@@ -2771,8 +2786,9 @@
 
 static void hisi_sas_debugfs_snapshot_itct_reg(struct hisi_hba *hisi_hba)
 {
-	void *cachebuf = hisi_hba->debugfs_itct_cache;
-	void *databuf = hisi_hba->debugfs_itct;
+	int dump_index = hisi_hba->debugfs_dump_index;
+	void *cachebuf = hisi_hba->debugfs_itct_cache[dump_index].cache;
+	void *databuf = hisi_hba->debugfs_itct[dump_index].itct;
 	struct hisi_sas_itct *itct;
 	int i;
 
@@ -2789,9 +2805,10 @@
 
 static void hisi_sas_debugfs_snapshot_iost_reg(struct hisi_hba *hisi_hba)
 {
+	int dump_index = hisi_hba->debugfs_dump_index;
 	int max_command_entries = HISI_SAS_MAX_COMMANDS;
-	void *cachebuf = hisi_hba->debugfs_iost_cache;
-	void *databuf = hisi_hba->debugfs_iost;
+	void *cachebuf = hisi_hba->debugfs_iost_cache[dump_index].cache;
+	void *databuf = hisi_hba->debugfs_iost[dump_index].iost;
 	struct hisi_sas_iost *iost;
 	int i;
 
@@ -2842,11 +2859,12 @@
 
 static int hisi_sas_debugfs_global_show(struct seq_file *s, void *p)
 {
-	struct hisi_hba *hisi_hba = s->private;
+	struct hisi_sas_debugfs_regs *global = s->private;
+	struct hisi_hba *hisi_hba = global->hisi_hba;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const void *reg_global = hw->debugfs_reg_array[DEBUGFS_GLOBAL];
 
-	hisi_sas_debugfs_print_reg(hisi_hba->debugfs_regs[DEBUGFS_GLOBAL],
+	hisi_sas_debugfs_print_reg(global->data,
 				   reg_global, s);
 
 	return 0;
@@ -2868,11 +2886,12 @@
 
 static int hisi_sas_debugfs_axi_show(struct seq_file *s, void *p)
 {
-	struct hisi_hba *hisi_hba = s->private;
+	struct hisi_sas_debugfs_regs *axi = s->private;
+	struct hisi_hba *hisi_hba = axi->hisi_hba;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const void *reg_axi = hw->debugfs_reg_array[DEBUGFS_AXI];
 
-	hisi_sas_debugfs_print_reg(hisi_hba->debugfs_regs[DEBUGFS_AXI],
+	hisi_sas_debugfs_print_reg(axi->data,
 				   reg_axi, s);
 
 	return 0;
@@ -2894,11 +2913,12 @@
 
 static int hisi_sas_debugfs_ras_show(struct seq_file *s, void *p)
 {
-	struct hisi_hba *hisi_hba = s->private;
+	struct hisi_sas_debugfs_regs *ras = s->private;
+	struct hisi_hba *hisi_hba = ras->hisi_hba;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const void *reg_ras = hw->debugfs_reg_array[DEBUGFS_RAS];
 
-	hisi_sas_debugfs_print_reg(hisi_hba->debugfs_regs[DEBUGFS_RAS],
+	hisi_sas_debugfs_print_reg(ras->data,
 				   reg_ras, s);
 
 	return 0;
@@ -2920,13 +2940,13 @@
 
 static int hisi_sas_debugfs_port_show(struct seq_file *s, void *p)
 {
-	struct hisi_sas_phy *phy = s->private;
+	struct hisi_sas_debugfs_port *port = s->private;
+	struct hisi_sas_phy *phy = port->phy;
 	struct hisi_hba *hisi_hba = phy->hisi_hba;
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	const struct hisi_sas_debugfs_reg *reg_port = hw->debugfs_reg_port;
-	u32 *databuf = hisi_hba->debugfs_port_reg[phy->sas_phy.id];
 
-	hisi_sas_debugfs_print_reg(databuf, reg_port, s);
+	hisi_sas_debugfs_print_reg(port->data, reg_port, s);
 
 	return 0;
 }
@@ -2975,13 +2995,13 @@
 	seq_puts(s, "\n");
 }
 
-static void hisi_sas_cq_show_slot(struct seq_file *s, int slot, void *cq_ptr)
+static void hisi_sas_cq_show_slot(struct seq_file *s, int slot,
+				  struct hisi_sas_debugfs_cq *debugfs_cq)
 {
-	struct hisi_sas_cq *cq = cq_ptr;
+	struct hisi_sas_cq *cq = debugfs_cq->cq;
 	struct hisi_hba *hisi_hba = cq->hisi_hba;
-	void *complete_queue = hisi_hba->debugfs_complete_hdr[cq->id];
-	__le32 *complete_hdr = complete_queue +
-			(hisi_hba->hw->complete_hdr_size * slot);
+	__le32 *complete_hdr = debugfs_cq->complete_hdr +
+			       (hisi_hba->hw->complete_hdr_size * slot);
 
 	hisi_sas_show_row_32(s, slot,
 			     hisi_hba->hw->complete_hdr_size,
@@ -2990,11 +3010,11 @@
 
 static int hisi_sas_debugfs_cq_show(struct seq_file *s, void *p)
 {
-	struct hisi_sas_cq *cq = s->private;
+	struct hisi_sas_debugfs_cq *debugfs_cq = s->private;
 	int slot;
 
 	for (slot = 0; slot < HISI_SAS_QUEUE_SLOTS; slot++) {
-		hisi_sas_cq_show_slot(s, slot, cq);
+		hisi_sas_cq_show_slot(s, slot, debugfs_cq);
 	}
 	return 0;
 }
@@ -3014,9 +3034,8 @@
 
 static void hisi_sas_dq_show_slot(struct seq_file *s, int slot, void *dq_ptr)
 {
-	struct hisi_sas_dq *dq = dq_ptr;
-	struct hisi_hba *hisi_hba = dq->hisi_hba;
-	void *cmd_queue = hisi_hba->debugfs_cmd_hdr[dq->id];
+	struct hisi_sas_debugfs_dq *debugfs_dq = dq_ptr;
+	void *cmd_queue = debugfs_dq->hdr;
 	__le32 *cmd_hdr = cmd_queue +
 		sizeof(struct hisi_sas_cmd_hdr) * slot;
 
@@ -3048,14 +3067,14 @@
 
 static int hisi_sas_debugfs_iost_show(struct seq_file *s, void *p)
 {
-	struct hisi_hba *hisi_hba = s->private;
-	struct hisi_sas_iost *debugfs_iost = hisi_hba->debugfs_iost;
+	struct hisi_sas_debugfs_iost *debugfs_iost = s->private;
+	struct hisi_sas_iost *iost = debugfs_iost->iost;
 	int i, max_command_entries = HISI_SAS_MAX_COMMANDS;
 
-	for (i = 0; i < max_command_entries; i++, debugfs_iost++) {
-		__le64 *iost = &debugfs_iost->qw0;
+	for (i = 0; i < max_command_entries; i++, iost++) {
+		__le64 *data = &iost->qw0;
 
-		hisi_sas_show_row_64(s, i, sizeof(*debugfs_iost), iost);
+		hisi_sas_show_row_64(s, i, sizeof(*iost), data);
 	}
 
 	return 0;
@@ -3076,9 +3095,8 @@
 
 static int hisi_sas_debugfs_iost_cache_show(struct seq_file *s, void *p)
 {
-	struct hisi_hba *hisi_hba = s->private;
-	struct hisi_sas_iost_itct_cache *iost_cache =
-		(struct hisi_sas_iost_itct_cache *)hisi_hba->debugfs_iost_cache;
+	struct hisi_sas_debugfs_iost_cache *debugfs_iost_cache = s->private;
+	struct hisi_sas_iost_itct_cache *iost_cache = debugfs_iost_cache->cache;
 	u32 cache_size = HISI_SAS_IOST_ITCT_CACHE_DW_SZ * 4;
 	int i, tab_idx;
 	__le64 *iost;
@@ -3117,13 +3135,13 @@
 static int hisi_sas_debugfs_itct_show(struct seq_file *s, void *p)
 {
 	int i;
-	struct hisi_hba *hisi_hba = s->private;
-	struct hisi_sas_itct *debugfs_itct = hisi_hba->debugfs_itct;
+	struct hisi_sas_debugfs_itct *debugfs_itct = s->private;
+	struct hisi_sas_itct *itct = debugfs_itct->itct;
 
-	for (i = 0; i < HISI_SAS_MAX_ITCT_ENTRIES; i++, debugfs_itct++) {
-		__le64 *itct = &debugfs_itct->qw0;
+	for (i = 0; i < HISI_SAS_MAX_ITCT_ENTRIES; i++, itct++) {
+		__le64 *data = &itct->qw0;
 
-		hisi_sas_show_row_64(s, i, sizeof(*debugfs_itct), itct);
+		hisi_sas_show_row_64(s, i, sizeof(*itct), data);
 	}
 
 	return 0;
@@ -3144,9 +3162,8 @@
 
 static int hisi_sas_debugfs_itct_cache_show(struct seq_file *s, void *p)
 {
-	struct hisi_hba *hisi_hba = s->private;
-	struct hisi_sas_iost_itct_cache *itct_cache =
-		(struct hisi_sas_iost_itct_cache *)hisi_hba->debugfs_itct_cache;
+	struct hisi_sas_debugfs_itct_cache *debugfs_itct_cache = s->private;
+	struct hisi_sas_iost_itct_cache *itct_cache = debugfs_itct_cache->cache;
 	u32 cache_size = HISI_SAS_IOST_ITCT_CACHE_DW_SZ * 4;
 	int i, tab_idx;
 	__le64 *itct;
@@ -3184,6 +3201,8 @@
 
 static void hisi_sas_debugfs_create_files(struct hisi_hba *hisi_hba)
 {
+	u64 *debugfs_timestamp;
+	int dump_index = hisi_hba->debugfs_dump_index;
 	struct dentry *dump_dentry;
 	struct dentry *dentry;
 	char name[256];
@@ -3191,19 +3210,26 @@
 	int c;
 	int d;
 
-	/* Create dump dir inside device dir */
-	dump_dentry = debugfs_create_dir("dump", hisi_hba->debugfs_dir);
-	hisi_hba->debugfs_dump_dentry = dump_dentry;
+	snprintf(name, 256, "%d", dump_index);
+
+	dump_dentry = debugfs_create_dir(name, hisi_hba->debugfs_dump_dentry);
 
-	debugfs_create_file("global", 0400, dump_dentry, hisi_hba,
-			    &hisi_sas_debugfs_global_fops);
+	debugfs_timestamp = &hisi_hba->debugfs_timestamp[dump_index];
+
+	debugfs_create_u64("timestamp", 0400, dump_dentry,
+			   debugfs_timestamp);
+
+	debugfs_create_file("global", 0400, dump_dentry,
+			   &hisi_hba->debugfs_regs[dump_index][DEBUGFS_GLOBAL],
+			   &hisi_sas_debugfs_global_fops);
 
 	/* Create port dir and files */
 	dentry = debugfs_create_dir("port", dump_dentry);
 	for (p = 0; p < hisi_hba->n_phy; p++) {
 		snprintf(name, 256, "%d", p);
 
-		debugfs_create_file(name, 0400, dentry, &hisi_hba->phy[p],
+		debugfs_create_file(name, 0400, dentry,
+				    &hisi_hba->debugfs_port_reg[dump_index][p],
 				    &hisi_sas_debugfs_port_fops);
 	}
 
@@ -3212,7 +3238,8 @@
 	for (c = 0; c < hisi_hba->queue_count; c++) {
 		snprintf(name, 256, "%d", c);
 
-		debugfs_create_file(name, 0400, dentry, &hisi_hba->cq[c],
+		debugfs_create_file(name, 0400, dentry,
+				    &hisi_hba->debugfs_cq[dump_index][c],
 				    &hisi_sas_debugfs_cq_fops);
 	}
 
@@ -3221,26 +3248,33 @@
 	for (d = 0; d < hisi_hba->queue_count; d++) {
 		snprintf(name, 256, "%d", d);
 
-		debugfs_create_file(name, 0400, dentry, &hisi_hba->dq[d],
+		debugfs_create_file(name, 0400, dentry,
+				    &hisi_hba->debugfs_dq[dump_index][d],
 				    &hisi_sas_debugfs_dq_fops);
 	}
 
-	debugfs_create_file("iost", 0400, dump_dentry, hisi_hba,
+	debugfs_create_file("iost", 0400, dump_dentry,
+			    &hisi_hba->debugfs_iost[dump_index],
 			    &hisi_sas_debugfs_iost_fops);
 
-	debugfs_create_file("iost_cache", 0400, dump_dentry, hisi_hba,
+	debugfs_create_file("iost_cache", 0400, dump_dentry,
+			    &hisi_hba->debugfs_iost_cache[dump_index],
 			    &hisi_sas_debugfs_iost_cache_fops);
 
-	debugfs_create_file("itct", 0400, dump_dentry, hisi_hba,
+	debugfs_create_file("itct", 0400, dump_dentry,
+			    &hisi_hba->debugfs_itct[dump_index],
 			    &hisi_sas_debugfs_itct_fops);
 
-	debugfs_create_file("itct_cache", 0400, dump_dentry, hisi_hba,
+	debugfs_create_file("itct_cache", 0400, dump_dentry,
+			    &hisi_hba->debugfs_itct_cache[dump_index],
 			    &hisi_sas_debugfs_itct_cache_fops);
 
-	debugfs_create_file("axi", 0400, dump_dentry, hisi_hba,
+	debugfs_create_file("axi", 0400, dump_dentry,
+			    &hisi_hba->debugfs_regs[dump_index][DEBUGFS_AXI],
 			    &hisi_sas_debugfs_axi_fops);
 
-	debugfs_create_file("ras", 0400, dump_dentry, hisi_hba,
+	debugfs_create_file("ras", 0400, dump_dentry,
+			    &hisi_hba->debugfs_regs[dump_index][DEBUGFS_RAS],
 			    &hisi_sas_debugfs_ras_fops);
 
 	return;
@@ -3271,8 +3305,7 @@
 	struct hisi_hba *hisi_hba = file->f_inode->i_private;
 	char buf[8];
 
-	/* A bit racy, but don't care too much since it's only debugfs */
-	if (hisi_hba->debugfs_snapshot)
+	if (hisi_hba->debugfs_dump_index >= hisi_sas_debugfs_dump_count)
 		return -EFAULT;
 
 	if (count > 8)
@@ -3670,132 +3703,201 @@
 	.owner = THIS_MODULE,
 };
 
+static ssize_t hisi_sas_debugfs_phy_down_cnt_write(struct file *filp,
+						   const char __user *buf,
+						   size_t count, loff_t *ppos)
+{
+	struct seq_file *s = filp->private_data;
+	struct hisi_sas_phy *phy = s->private;
+	unsigned int set_val;
+	int res;
+
+	res = kstrtouint_from_user(buf, count, 0, &set_val);
+	if (res)
+		return res;
+
+	if (set_val > 0)
+		return -EINVAL;
+
+	atomic_set(&phy->down_cnt, 0);
+
+	return count;
+}
+
+static int hisi_sas_debugfs_phy_down_cnt_show(struct seq_file *s, void *p)
+{
+	struct hisi_sas_phy *phy = s->private;
+
+	seq_printf(s, "%d\n", atomic_read(&phy->down_cnt));
+
+	return 0;
+}
+
+static int hisi_sas_debugfs_phy_down_cnt_open(struct inode *inode,
+					      struct file *filp)
+{
+	return single_open(filp, hisi_sas_debugfs_phy_down_cnt_show,
+			   inode->i_private);
+}
+
+static const struct file_operations hisi_sas_debugfs_phy_down_cnt_ops = {
+	.open = hisi_sas_debugfs_phy_down_cnt_open,
+	.read = seq_read,
+	.write = hisi_sas_debugfs_phy_down_cnt_write,
+	.llseek = seq_lseek,
+	.release = single_release,
+	.owner = THIS_MODULE,
+};
+
 void hisi_sas_debugfs_work_handler(struct work_struct *work)
 {
 	struct hisi_hba *hisi_hba =
 		container_of(work, struct hisi_hba, debugfs_work);
+	int debugfs_dump_index = hisi_hba->debugfs_dump_index;
+	struct device *dev = hisi_hba->dev;
+	u64 timestamp = local_clock();
 
-	if (hisi_hba->debugfs_snapshot)
+	if (debugfs_dump_index >= hisi_sas_debugfs_dump_count) {
+		dev_warn(dev, "dump count exceeded!\n");
 		return;
-	hisi_hba->debugfs_snapshot = true;
+	}
+
+	do_div(timestamp, NSEC_PER_MSEC);
+	hisi_hba->debugfs_timestamp[debugfs_dump_index] = timestamp;
 
 	hisi_sas_debugfs_snapshot_regs(hisi_hba);
+	hisi_hba->debugfs_dump_index++;
 }
 EXPORT_SYMBOL_GPL(hisi_sas_debugfs_work_handler);
 
-static void hisi_sas_debugfs_release(struct hisi_hba *hisi_hba)
+static void hisi_sas_debugfs_release(struct hisi_hba *hisi_hba, int dump_index)
 {
 	struct device *dev = hisi_hba->dev;
 	int i;
 
-	devm_kfree(dev, hisi_hba->debugfs_iost_cache);
-	devm_kfree(dev, hisi_hba->debugfs_itct_cache);
-	devm_kfree(dev, hisi_hba->debugfs_iost);
+	devm_kfree(dev, hisi_hba->debugfs_iost_cache[dump_index].cache);
+	devm_kfree(dev, hisi_hba->debugfs_itct_cache[dump_index].cache);
+	devm_kfree(dev, hisi_hba->debugfs_iost[dump_index].iost);
+	devm_kfree(dev, hisi_hba->debugfs_itct[dump_index].itct);
 
 	for (i = 0; i < hisi_hba->queue_count; i++)
-		devm_kfree(dev, hisi_hba->debugfs_cmd_hdr[i]);
+		devm_kfree(dev, hisi_hba->debugfs_dq[dump_index][i].hdr);
 
 	for (i = 0; i < hisi_hba->queue_count; i++)
-		devm_kfree(dev, hisi_hba->debugfs_complete_hdr[i]);
+		devm_kfree(dev,
+			   hisi_hba->debugfs_cq[dump_index][i].complete_hdr);
 
 	for (i = 0; i < DEBUGFS_REGS_NUM; i++)
-		devm_kfree(dev, hisi_hba->debugfs_regs[i]);
+		devm_kfree(dev, hisi_hba->debugfs_regs[dump_index][i].data);
 
 	for (i = 0; i < hisi_hba->n_phy; i++)
-		devm_kfree(dev, hisi_hba->debugfs_port_reg[i]);
+		devm_kfree(dev, hisi_hba->debugfs_port_reg[dump_index][i].data);
 }
 
-static int hisi_sas_debugfs_alloc(struct hisi_hba *hisi_hba)
+static int hisi_sas_debugfs_alloc(struct hisi_hba *hisi_hba, int dump_index)
 {
 	const struct hisi_sas_hw *hw = hisi_hba->hw;
 	struct device *dev = hisi_hba->dev;
-	int p, c, d;
+	int p, c, d, r, i;
 	size_t sz;
 
-	hisi_hba->debugfs_dump_dentry =
-			debugfs_create_dir("dump", hisi_hba->debugfs_dir);
-
-	sz = hw->debugfs_reg_array[DEBUGFS_GLOBAL]->count * 4;
-	hisi_hba->debugfs_regs[DEBUGFS_GLOBAL] =
-				devm_kmalloc(dev, sz, GFP_KERNEL);
-
-	if (!hisi_hba->debugfs_regs[DEBUGFS_GLOBAL])
-		goto fail;
+	for (r = 0; r < DEBUGFS_REGS_NUM; r++) {
+		struct hisi_sas_debugfs_regs *regs =
+				&hisi_hba->debugfs_regs[dump_index][r];
+
+		sz = hw->debugfs_reg_array[r]->count * 4;
+		regs->data = devm_kmalloc(dev, sz, GFP_KERNEL);
+		if (!regs->data)
+			goto fail;
+		regs->hisi_hba = hisi_hba;
+	}
 
 	sz = hw->debugfs_reg_port->count * 4;
 	for (p = 0; p < hisi_hba->n_phy; p++) {
-		hisi_hba->debugfs_port_reg[p] =
-			devm_kmalloc(dev, sz, GFP_KERNEL);
+		struct hisi_sas_debugfs_port *port =
+				&hisi_hba->debugfs_port_reg[dump_index][p];
 
-		if (!hisi_hba->debugfs_port_reg[p])
+		port->data = devm_kmalloc(dev, sz, GFP_KERNEL);
+		if (!port->data)
 			goto fail;
+		port->phy = &hisi_hba->phy[p];
 	}
 
-	sz = hw->debugfs_reg_array[DEBUGFS_AXI]->count * 4;
-	hisi_hba->debugfs_regs[DEBUGFS_AXI] =
-		devm_kmalloc(dev, sz, GFP_KERNEL);
-
-	if (!hisi_hba->debugfs_regs[DEBUGFS_AXI])
-		goto fail;
-
-	sz = hw->debugfs_reg_array[DEBUGFS_RAS]->count * 4;
-	hisi_hba->debugfs_regs[DEBUGFS_RAS] =
-		devm_kmalloc(dev, sz, GFP_KERNEL);
-
-	if (!hisi_hba->debugfs_regs[DEBUGFS_RAS])
-		goto fail;
-
 	sz = hw->complete_hdr_size * HISI_SAS_QUEUE_SLOTS;
 	for (c = 0; c < hisi_hba->queue_count; c++) {
-		hisi_hba->debugfs_complete_hdr[c] =
-			devm_kmalloc(dev, sz, GFP_KERNEL);
+		struct hisi_sas_debugfs_cq *cq =
+				&hisi_hba->debugfs_cq[dump_index][c];
 
-		if (!hisi_hba->debugfs_complete_hdr[c])
+		cq->complete_hdr = devm_kmalloc(dev, sz, GFP_KERNEL);
+		if (!cq->complete_hdr)
 			goto fail;
+		cq->cq = &hisi_hba->cq[c];
 	}
 
 	sz = sizeof(struct hisi_sas_cmd_hdr) * HISI_SAS_QUEUE_SLOTS;
 	for (d = 0; d < hisi_hba->queue_count; d++) {
-		hisi_hba->debugfs_cmd_hdr[d] =
-			devm_kmalloc(dev, sz, GFP_KERNEL);
+		struct hisi_sas_debugfs_dq *dq =
+				&hisi_hba->debugfs_dq[dump_index][d];
 
-		if (!hisi_hba->debugfs_cmd_hdr[d])
+		dq->hdr = devm_kmalloc(dev, sz, GFP_KERNEL);
+		if (!dq->hdr)
 			goto fail;
+		dq->dq = &hisi_hba->dq[d];
 	}
 
 	sz = HISI_SAS_MAX_COMMANDS * sizeof(struct hisi_sas_iost);
 
-	hisi_hba->debugfs_iost = devm_kmalloc(dev, sz, GFP_KERNEL);
-	if (!hisi_hba->debugfs_iost)
+	hisi_hba->debugfs_iost[dump_index].iost =
+				devm_kmalloc(dev, sz, GFP_KERNEL);
+	if (!hisi_hba->debugfs_iost[dump_index].iost)
 		goto fail;
 
 	sz = HISI_SAS_IOST_ITCT_CACHE_NUM *
 	     sizeof(struct hisi_sas_iost_itct_cache);
 
-	hisi_hba->debugfs_iost_cache = devm_kmalloc(dev, sz, GFP_KERNEL);
-	if (!hisi_hba->debugfs_iost_cache)
+	hisi_hba->debugfs_iost_cache[dump_index].cache =
+				devm_kmalloc(dev, sz, GFP_KERNEL);
+	if (!hisi_hba->debugfs_iost_cache[dump_index].cache)
 		goto fail;
 
 	sz = HISI_SAS_IOST_ITCT_CACHE_NUM *
 	     sizeof(struct hisi_sas_iost_itct_cache);
 
-	hisi_hba->debugfs_itct_cache = devm_kmalloc(dev, sz, GFP_KERNEL);
-	if (!hisi_hba->debugfs_itct_cache)
+	hisi_hba->debugfs_itct_cache[dump_index].cache =
+				devm_kmalloc(dev, sz, GFP_KERNEL);
+	if (!hisi_hba->debugfs_itct_cache[dump_index].cache)
 		goto fail;
 
 	/* New memory allocation must be locate before itct */
 	sz = HISI_SAS_MAX_ITCT_ENTRIES * sizeof(struct hisi_sas_itct);
 
-	hisi_hba->debugfs_itct = devm_kmalloc(dev, sz, GFP_KERNEL);
-	if (!hisi_hba->debugfs_itct)
+	hisi_hba->debugfs_itct[dump_index].itct =
+				devm_kmalloc(dev, sz, GFP_KERNEL);
+	if (!hisi_hba->debugfs_itct[dump_index].itct)
 		goto fail;
 
 	return 0;
 fail:
-	hisi_sas_debugfs_release(hisi_hba);
+	for (i = 0; i < hisi_sas_debugfs_dump_count; i++)
+		hisi_sas_debugfs_release(hisi_hba, i);
 	return -ENOMEM;
 }
 
+static void hisi_sas_debugfs_phy_down_cnt_init(struct hisi_hba *hisi_hba)
+{
+	struct dentry *dir = debugfs_create_dir("phy_down_cnt",
+						hisi_hba->debugfs_dir);
+	char name[16];
+	int phy_no;
+
+	for (phy_no = 0; phy_no < hisi_hba->n_phy; phy_no++) {
+		snprintf(name, 16, "%d", phy_no);
+		debugfs_create_file(name, 0600, dir,
+				    &hisi_hba->phy[phy_no],
+				    &hisi_sas_debugfs_phy_down_cnt_ops);
+	}
+}
+
 static void hisi_sas_debugfs_bist_init(struct hisi_hba *hisi_hba)
 {
 	hisi_hba->debugfs_bist_dentry =
@@ -3827,10 +3929,11 @@
 void hisi_sas_debugfs_init(struct hisi_hba *hisi_hba)
 {
 	struct device *dev = hisi_hba->dev;
+	int i;
 
 	hisi_hba->debugfs_dir = debugfs_create_dir(dev_name(dev),
 						   hisi_sas_debugfs_dir);
-	debugfs_create_file("trigger_dump", 0600,
+	debugfs_create_file("trigger_dump", 0200,
 			    hisi_hba->debugfs_dir,
 			    hisi_hba,
 			    &hisi_sas_debugfs_trigger_dump_fops);
@@ -3838,9 +3941,17 @@
 	/* create bist structures */
 	hisi_sas_debugfs_bist_init(hisi_hba);
 
-	if (hisi_sas_debugfs_alloc(hisi_hba)) {
-		debugfs_remove_recursive(hisi_hba->debugfs_dir);
-		dev_dbg(dev, "failed to init debugfs!\n");
+	hisi_hba->debugfs_dump_dentry =
+			debugfs_create_dir("dump", hisi_hba->debugfs_dir);
+
+	hisi_sas_debugfs_phy_down_cnt_init(hisi_hba);
+
+	for (i = 0; i < hisi_sas_debugfs_dump_count; i++) {
+		if (hisi_sas_debugfs_alloc(hisi_hba, i)) {
+			debugfs_remove_recursive(hisi_hba->debugfs_dir);
+			dev_dbg(dev, "failed to init debugfs!\n");
+			break;
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(hisi_sas_debugfs_init);
@@ -3874,14 +3985,24 @@
 module_param_named(debugfs_enable, hisi_sas_debugfs_enable, bool, 0444);
 MODULE_PARM_DESC(hisi_sas_debugfs_enable, "Enable driver debugfs (default disabled)");
 
+u32 hisi_sas_debugfs_dump_count = 1;
+EXPORT_SYMBOL_GPL(hisi_sas_debugfs_dump_count);
+module_param_named(debugfs_dump_count, hisi_sas_debugfs_dump_count, uint, 0444);
+MODULE_PARM_DESC(hisi_sas_debugfs_dump_count, "Number of debugfs dumps to allow");
+
 static __init int hisi_sas_init(void)
 {
 	hisi_sas_stt = sas_domain_attach_transport(&hisi_sas_transport_ops);
 	if (!hisi_sas_stt)
 		return -ENOMEM;
 
-	if (hisi_sas_debugfs_enable)
+	if (hisi_sas_debugfs_enable) {
 		hisi_sas_debugfs_dir = debugfs_create_dir("hisi_sas", NULL);
+		if (hisi_sas_debugfs_dump_count > HISI_SAS_MAX_DEBUGFS_DUMP) {
+			pr_info("hisi_sas: Limiting debugfs dump count\n");
+			hisi_sas_debugfs_dump_count = HISI_SAS_MAX_DEBUGFS_DUMP;
+		}
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
@@ -531,8 +531,8 @@
 				(0xff00ULL << ITCT_HDR_REJ_OPEN_TL_OFF));
 }
 
-static void clear_itct_v1_hw(struct hisi_hba *hisi_hba,
-			      struct hisi_sas_device *sas_dev)
+static int clear_itct_v1_hw(struct hisi_hba *hisi_hba,
+			    struct hisi_sas_device *sas_dev)
 {
 	u64 dev_id = sas_dev->device_id;
 	struct hisi_sas_itct *itct = &hisi_hba->itct[dev_id];
@@ -551,6 +551,8 @@
 	qw0 = le64_to_cpu(itct->qw0);
 	qw0 &= ~ITCT_HDR_VALID_MSK;
 	itct->qw0 = cpu_to_le64(qw0);
+
+	return 0;
 }
 
 static int reset_hw_v1_hw(struct hisi_hba *hisi_hba)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
@@ -773,7 +773,6 @@
 	struct hisi_sas_device *sas_dev = device->lldd_dev;
 	int sata_idx = sas_dev->sata_idx;
 	int start, end;
-	unsigned long flags;
 
 	if (!sata_dev) {
 		/*
@@ -797,12 +796,12 @@
 		end = 64 * (sata_idx + 2);
 	}
 
-	spin_lock_irqsave(&hisi_hba->lock, flags);
+	spin_lock(&hisi_hba->lock);
 	while (1) {
 		start = find_next_zero_bit(bitmap,
 					hisi_hba->slot_index_count, start);
 		if (start >= end) {
-			spin_unlock_irqrestore(&hisi_hba->lock, flags);
+			spin_unlock(&hisi_hba->lock);
 			return -SAS_QUEUE_FULL;
 		}
 		/*
@@ -814,7 +813,7 @@
 	}
 
 	set_bit(start, bitmap);
-	spin_unlock_irqrestore(&hisi_hba->lock, flags);
+	spin_unlock(&hisi_hba->lock);
 	return start;
 }
 
@@ -843,9 +842,8 @@
 	struct hisi_sas_device *sas_dev = NULL;
 	int i, sata_dev = dev_is_sata(device);
 	int sata_idx = -1;
-	unsigned long flags;
 
-	spin_lock_irqsave(&hisi_hba->lock, flags);
+	spin_lock(&hisi_hba->lock);
 
 	if (sata_dev)
 		if (!sata_index_alloc_v2_hw(hisi_hba, &sata_idx))
@@ -876,7 +874,7 @@
 	}
 
 out:
-	spin_unlock_irqrestore(&hisi_hba->lock, flags);
+	spin_unlock(&hisi_hba->lock);
 
 	return sas_dev;
 }
@@ -974,13 +972,14 @@
 					(0x1ULL << ITCT_HDR_RTOLT_OFF));
 }
 
-static void clear_itct_v2_hw(struct hisi_hba *hisi_hba,
-			      struct hisi_sas_device *sas_dev)
+static int clear_itct_v2_hw(struct hisi_hba *hisi_hba,
+			    struct hisi_sas_device *sas_dev)
 {
 	DECLARE_COMPLETION_ONSTACK(completion);
 	u64 dev_id = sas_dev->device_id;
 	struct hisi_sas_itct *itct = &hisi_hba->itct[dev_id];
 	u32 reg_val = hisi_sas_read32(hisi_hba, ENT_INT_SRC3);
+	struct device *dev = hisi_hba->dev;
 	int i;
 
 	sas_dev->completion = &completion;
@@ -990,13 +989,19 @@
 		hisi_sas_write32(hisi_hba, ENT_INT_SRC3,
 				 ENT_INT_SRC3_ITC_INT_MSK);
 
+	/* need to set register twice to clear ITCT for v2 hw */
 	for (i = 0; i < 2; i++) {
 		reg_val = ITCT_CLR_EN_MSK | (dev_id & ITCT_DEV_MSK);
 		hisi_sas_write32(hisi_hba, ITCT_CLR, reg_val);
-		wait_for_completion(sas_dev->completion);
+		if (!wait_for_completion_timeout(sas_dev->completion,
+						 CLEAR_ITCT_TIMEOUT * HZ)) {
+			dev_warn(dev, "failed to clear ITCT\n");
+			return -ETIMEDOUT;
+		}
 
 		memset(itct, 0, sizeof(struct hisi_sas_itct));
 	}
+	return 0;
 }
 
 static void free_device_v2_hw(struct hisi_sas_device *sas_dev)
@@ -3104,9 +3109,9 @@
 	return IRQ_HANDLED;
 }
 
-static void cq_tasklet_v2_hw(unsigned long val)
+static irqreturn_t  cq_thread_v2_hw(int irq_no, void *p)
 {
-	struct hisi_sas_cq *cq = (struct hisi_sas_cq *)val;
+	struct hisi_sas_cq *cq = p;
 	struct hisi_hba *hisi_hba = cq->hisi_hba;
 	struct hisi_sas_slot *slot;
 	struct hisi_sas_itct *itct;
@@ -3174,6 +3179,8 @@
 	/* update rd_point */
 	cq->rd_point = rd_point;
 	hisi_sas_write32(hisi_hba, COMPL_Q_0_RD_PTR + (0x14 * queue), rd_point);
+
+	return IRQ_HANDLED;
 }
 
 static irqreturn_t cq_interrupt_v2_hw(int irq_no, void *p)
@@ -3184,9 +3191,7 @@
 
 	hisi_sas_write32(hisi_hba, OQ_INT_SRC, 1 << queue);
 
-	tasklet_schedule(&cq->tasklet);
-
-	return IRQ_HANDLED;
+	return IRQ_WAKE_THREAD;
 }
 
 static irqreturn_t sata_int_v2_hw(int irq_no, void *p)
@@ -3353,18 +3358,18 @@
 
 	for (queue_no = 0; queue_no < hisi_hba->queue_count; queue_no++) {
 		struct hisi_sas_cq *cq = &hisi_hba->cq[queue_no];
-		struct tasklet_struct *t = &cq->tasklet;
 
-		irq = irq_map[queue_no + 96];
-		rc = devm_request_irq(dev, irq, cq_interrupt_v2_hw, 0,
-				      DRV_NAME " cq", cq);
+		cq->irq_no = irq_map[queue_no + 96];
+		rc = devm_request_threaded_irq(dev, cq->irq_no,
+					       cq_interrupt_v2_hw,
+					       cq_thread_v2_hw, IRQF_ONESHOT,
+					       DRV_NAME " cq", cq);
 		if (rc) {
 			dev_err(dev, "irq init: could not request cq interrupt %d, rc=%d\n",
 				irq, rc);
 			rc = -ENOENT;
 			goto err_out;
 		}
-		tasklet_init(t, cq_tasklet_v2_hw, (unsigned long)cq);
 	}
 
 	hisi_hba->cq_nvecs = hisi_hba->queue_count;
@@ -3425,7 +3430,6 @@
 
 	interrupt_disable_v2_hw(hisi_hba);
 	hisi_sas_write32(hisi_hba, DLVRY_QUEUE_ENABLE, 0x0);
-	hisi_sas_kill_tasklets(hisi_hba);
 
 	hisi_sas_stop_phys(hisi_hba);
 
@@ -3596,11 +3600,6 @@
 
 static int hisi_sas_v2_remove(struct platform_device *pdev)
 {
-	struct sas_ha_struct *sha = platform_get_drvdata(pdev);
-	struct hisi_hba *hisi_hba = sha->lldd_ha;
-
-	hisi_sas_kill_tasklets(hisi_hba);
-
 	return hisi_sas_remove(pdev);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
@@ -495,6 +495,13 @@
 #define BASE_VECTORS_V3_HW  16
 #define MIN_AFFINE_VECTORS_V3_HW  (BASE_VECTORS_V3_HW + 1)
 
+#define CHNL_INT_STS_MSK	0xeeeeeeee
+#define CHNL_INT_STS_PHY_MSK	0xe
+#define CHNL_INT_STS_INT0_MSK BIT(1)
+#define CHNL_INT_STS_INT1_MSK BIT(2)
+#define CHNL_INT_STS_INT2_MSK BIT(3)
+#define CHNL_WIDTH 4
+
 enum {
 	DSM_FUNC_ERR_HANDLE_MSI = 0,
 };
@@ -795,13 +802,14 @@
 					(0x1ULL << ITCT_HDR_RTOLT_OFF));
 }
 
-static void clear_itct_v3_hw(struct hisi_hba *hisi_hba,
-			      struct hisi_sas_device *sas_dev)
+static int clear_itct_v3_hw(struct hisi_hba *hisi_hba,
+			    struct hisi_sas_device *sas_dev)
 {
 	DECLARE_COMPLETION_ONSTACK(completion);
 	u64 dev_id = sas_dev->device_id;
 	struct hisi_sas_itct *itct = &hisi_hba->itct[dev_id];
 	u32 reg_val = hisi_sas_read32(hisi_hba, ENT_INT_SRC3);
+	struct device *dev = hisi_hba->dev;
 
 	sas_dev->completion = &completion;
 
@@ -814,8 +822,14 @@
 	reg_val = ITCT_CLR_EN_MSK | (dev_id & ITCT_DEV_MSK);
 	hisi_sas_write32(hisi_hba, ITCT_CLR, reg_val);
 
-	wait_for_completion(sas_dev->completion);
+	if (!wait_for_completion_timeout(sas_dev->completion,
+					 CLEAR_ITCT_TIMEOUT * HZ)) {
+		dev_warn(dev, "failed to clear ITCT\n");
+		return -ETIMEDOUT;
+	}
+
 	memset(itct, 0, sizeof(struct hisi_sas_itct));
+	return 0;
 }
 
 static void dereg_device_v3_hw(struct hisi_hba *hisi_hba,
@@ -1542,6 +1556,8 @@
 	u32 phy_state, sl_ctrl, txid_auto;
 	struct device *dev = hisi_hba->dev;
 
+	atomic_inc(&phy->down_cnt);
+
 	del_timer(&phy->timer);
 	hisi_sas_phy_write32(hisi_hba, phy_no, PHYCTRL_NOT_RDY_MSK, 1);
 
@@ -1810,19 +1826,19 @@
 	int phy_no = 0;
 
 	irq_msk = hisi_sas_read32(hisi_hba, CHNL_INT_STATUS)
-				& 0xeeeeeeee;
+		  & CHNL_INT_STS_MSK;
 
 	while (irq_msk) {
-		if (irq_msk & (2 << (phy_no * 4)))
+		if (irq_msk & (CHNL_INT_STS_INT0_MSK << (phy_no * CHNL_WIDTH)))
 			handle_chl_int0_v3_hw(hisi_hba, phy_no);
 
-		if (irq_msk & (4 << (phy_no * 4)))
+		if (irq_msk & (CHNL_INT_STS_INT1_MSK << (phy_no * CHNL_WIDTH)))
 			handle_chl_int1_v3_hw(hisi_hba, phy_no);
 
-		if (irq_msk & (8 << (phy_no * 4)))
+		if (irq_msk & (CHNL_INT_STS_INT2_MSK << (phy_no * CHNL_WIDTH)))
 			handle_chl_int2_v3_hw(hisi_hba, phy_no);
 
-		irq_msk &= ~(0xe << (phy_no * 4));
+		irq_msk &= ~(CHNL_INT_STS_PHY_MSK << (phy_no * CHNL_WIDTH));
 		phy_no++;
 	}
 
@@ -2290,9 +2306,9 @@
 	return sts;
 }
 
-static void cq_tasklet_v3_hw(unsigned long val)
+static irqreturn_t  cq_thread_v3_hw(int irq_no, void *p)
 {
-	struct hisi_sas_cq *cq = (struct hisi_sas_cq *)val;
+	struct hisi_sas_cq *cq = p;
 	struct hisi_hba *hisi_hba = cq->hisi_hba;
 	struct hisi_sas_slot *slot;
 	struct hisi_sas_complete_v3_hdr *complete_queue;
@@ -2329,6 +2345,8 @@
 	/* update rd_point */
 	cq->rd_point = rd_point;
 	hisi_sas_write32(hisi_hba, COMPL_Q_0_RD_PTR + (0x14 * queue), rd_point);
+
+	return IRQ_HANDLED;
 }
 
 static irqreturn_t cq_interrupt_v3_hw(int irq_no, void *p)
@@ -2339,9 +2357,7 @@
 
 	hisi_sas_write32(hisi_hba, OQ_INT_SRC, 1 << queue);
 
-	tasklet_schedule(&cq->tasklet);
-
-	return IRQ_HANDLED;
+	return IRQ_WAKE_THREAD;
 }
 
 static void setup_reply_map_v3_hw(struct hisi_hba *hisi_hba, int nvecs)
@@ -2356,7 +2372,7 @@
 					    BASE_VECTORS_V3_HW);
 		if (!mask)
 			goto fallback;
-		cq->pci_irq_mask = mask;
+		cq->irq_mask = mask;
 		for_each_cpu(cpu, mask)
 			hisi_hba->reply_map[cpu] = queue;
 	}
@@ -2380,6 +2396,8 @@
 			.pre_vectors = BASE_VECTORS_V3_HW,
 		};
 
+		dev_info(dev, "Enable MSI auto-affinity\n");
+
 		min_msi = MIN_AFFINE_VECTORS_V3_HW;
 
 		hisi_hba->reply_map = devm_kcalloc(dev, nr_cpu_ids,
@@ -2432,15 +2450,20 @@
 		goto free_irq_vectors;
 	}
 
-	/* Init tasklets for cq only */
+	if (hisi_sas_intr_conv)
+		dev_info(dev, "Enable interrupt converge\n");
+
 	for (i = 0; i < hisi_hba->cq_nvecs; i++) {
 		struct hisi_sas_cq *cq = &hisi_hba->cq[i];
-		struct tasklet_struct *t = &cq->tasklet;
 		int nr = hisi_sas_intr_conv ? 16 : 16 + i;
-		unsigned long irqflags = hisi_sas_intr_conv ? IRQF_SHARED : 0;
+		unsigned long irqflags = hisi_sas_intr_conv ? IRQF_SHARED :
+							      IRQF_ONESHOT;
 
-		rc = devm_request_irq(dev, pci_irq_vector(pdev, nr),
-				      cq_interrupt_v3_hw, irqflags,
+		cq->irq_no = pci_irq_vector(pdev, nr);
+		rc = devm_request_threaded_irq(dev, cq->irq_no,
+				      cq_interrupt_v3_hw,
+				      cq_thread_v3_hw,
+				      irqflags,
 				      DRV_NAME " cq", cq);
 		if (rc) {
 			dev_err(dev, "could not request cq%d interrupt, rc=%d\n",
@@ -2448,8 +2471,6 @@
 			rc = -ENOENT;
 			goto free_irq_vectors;
 		}
-
-		tasklet_init(t, cq_tasklet_v3_hw, (unsigned long)cq);
 	}
 
 	return 0;
@@ -2525,7 +2546,6 @@
 
 	interrupt_disable_v3_hw(hisi_hba);
 	hisi_sas_write32(hisi_hba, DLVRY_QUEUE_ENABLE, 0x0);
-	hisi_sas_kill_tasklets(hisi_hba);
 
 	hisi_sas_stop_phys(hisi_hba);
 
@@ -2901,7 +2921,7 @@
 
 	wait_cmds_complete_timeout_v3_hw(hisi_hba, 100, 5000);
 
-	hisi_sas_kill_tasklets(hisi_hba);
+	hisi_sas_sync_irqs(hisi_hba);
 }
 
 static void debugfs_snapshot_restore_v3_hw(struct hisi_hba *hisi_hba)
@@ -3022,11 +3042,6 @@
 		hisi_sas_phy_write32(hisi_hba, phy_id,
 				     SAS_PHY_BIST_CTRL, reg_val);
 
-		mdelay(100);
-		reg_val |= (CFG_RX_BIST_EN_MSK | CFG_TX_BIST_EN_MSK);
-		hisi_sas_phy_write32(hisi_hba, phy_id,
-				     SAS_PHY_BIST_CTRL, reg_val);
-
 		/* set the bist init value */
 		hisi_sas_phy_write32(hisi_hba, phy_id,
 				     SAS_PHY_BIST_CODE,
@@ -3035,6 +3050,11 @@
 				     SAS_PHY_BIST_CODE1,
 				     SAS_PHY_BIST_CODE1_INIT);
 
+		mdelay(100);
+		reg_val |= (CFG_RX_BIST_EN_MSK | CFG_TX_BIST_EN_MSK);
+		hisi_sas_phy_write32(hisi_hba, phy_id,
+				     SAS_PHY_BIST_CTRL, reg_val);
+
 		/* clear error bit */
 		mdelay(100);
 		hisi_sas_phy_read32(hisi_hba, phy_id, SAS_BIST_ERR_CNT);
@@ -3259,6 +3279,7 @@
 err_out_register_ha:
 	scsi_remove_host(shost);
 err_out_ha:
+	hisi_sas_debugfs_exit(hisi_hba);
 	scsi_host_put(shost);
 err_out_regions:
 	pci_release_regions(pdev);
@@ -3292,8 +3313,6 @@
 	struct hisi_hba *hisi_hba = sha->lldd_ha;
 	struct Scsi_Host *shost = sha->core.shost;
 
-	hisi_sas_debugfs_exit(hisi_hba);
-
 	if (timer_pending(&hisi_hba->timer))
 		del_timer(&hisi_hba->timer);
 
@@ -3301,10 +3320,10 @@
 	sas_remove_host(sha->core.shost);
 
 	hisi_sas_v3_destroy_irqs(pdev, hisi_hba);
-	hisi_sas_kill_tasklets(hisi_hba);
 	pci_release_regions(pdev);
 	pci_disable_device(pdev);
 	hisi_sas_free(hisi_hba);
+	hisi_sas_debugfs_exit(hisi_hba);
 	scsi_host_put(shost);
 }
 
@@ -3422,6 +3441,7 @@
 	if (rc) {
 		scsi_remove_host(shost);
 		pci_disable_device(pdev);
+		return rc;
 	}
 	hisi_hba->hw->phys_init(hisi_hba);
 	sas_resume_ha(sha);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/hpsa.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/hpsa.c
@@ -504,6 +504,12 @@
 	return count;
 }
 
+static void hpsa_turn_off_ioaccel_for_device(struct hpsa_scsi_dev_t *device)
+{
+	device->offload_enabled = 0;
+	device->offload_to_be_enabled = 0;
+}
+
 static ssize_t host_show_firmware_revision(struct device *dev,
 	     struct device_attribute *attr, char *buf)
 {
@@ -1738,8 +1744,7 @@
 				__func__,
 				h->scsi_host->host_no, logical_drive->bus,
 				logical_drive->target, logical_drive->lun);
-			logical_drive->offload_enabled = 0;
-			logical_drive->offload_to_be_enabled = 0;
+			hpsa_turn_off_ioaccel_for_device(logical_drive);
 			logical_drive->queue_depth = 8;
 		}
 	}
@@ -2499,8 +2504,7 @@
 			IOACCEL2_SERV_RESPONSE_FAILURE) {
 		if (c2->error_data.status ==
 			IOACCEL2_STATUS_SR_IOACCEL_DISABLED) {
-			dev->offload_enabled = 0;
-			dev->offload_to_be_enabled = 0;
+			hpsa_turn_off_ioaccel_for_device(dev);
 		}
 
 		if (dev->in_reset) {
@@ -3670,10 +3674,17 @@
 	this_device->offload_config =
 		!!(ioaccel_status & OFFLOAD_CONFIGURED_BIT);
 	if (this_device->offload_config) {
-		this_device->offload_to_be_enabled =
+		bool offload_enabled =
 			!!(ioaccel_status & OFFLOAD_ENABLED_BIT);
-		if (hpsa_get_raid_map(h, scsi3addr, this_device))
-			this_device->offload_to_be_enabled = 0;
+		/*
+		 * Check to see if offload can be enabled.
+		 */
+		if (offload_enabled) {
+			rc = hpsa_get_raid_map(h, scsi3addr, this_device);
+			if (rc) /* could not load raid_map */
+				goto out;
+			this_device->offload_to_be_enabled = 1;
+		}
 	}
 
 out:
@@ -3996,8 +4007,7 @@
 	} else {
 		this_device->raid_level = RAID_UNKNOWN;
 		this_device->offload_config = 0;
-		this_device->offload_enabled = 0;
-		this_device->offload_to_be_enabled = 0;
+		hpsa_turn_off_ioaccel_for_device(this_device);
 		this_device->hba_ioaccel_enabled = 0;
 		this_device->volume_offline = 0;
 		this_device->queue_depth = h->nr_cmds;
@@ -5230,8 +5240,12 @@
 		/* Handles load balance across RAID 1 members.
 		 * (2-drive R1 and R10 with even # of drives.)
 		 * Appropriate for SSDs, not optimal for HDDs
+		 * Ensure we have the correct raid_map.
 		 */
-		BUG_ON(le16_to_cpu(map->layout_map_count) != 2);
+		if (le16_to_cpu(map->layout_map_count) != 2) {
+			hpsa_turn_off_ioaccel_for_device(dev);
+			return IO_ACCEL_INELIGIBLE;
+		}
 		if (dev->offload_to_mirror)
 			map_index += le16_to_cpu(map->data_disks_per_row);
 		dev->offload_to_mirror = !dev->offload_to_mirror;
@@ -5239,8 +5253,12 @@
 	case HPSA_RAID_ADM:
 		/* Handles N-way mirrors  (R1-ADM)
 		 * and R10 with # of drives divisible by 3.)
+		 * Ensure we have the correct raid_map.
 		 */
-		BUG_ON(le16_to_cpu(map->layout_map_count) != 3);
+		if (le16_to_cpu(map->layout_map_count) != 3) {
+			hpsa_turn_off_ioaccel_for_device(dev);
+			return IO_ACCEL_INELIGIBLE;
+		}
 
 		offload_to_mirror = dev->offload_to_mirror;
 		raid_map_helper(map, offload_to_mirror,
@@ -5265,7 +5283,10 @@
 		r5or6_blocks_per_row =
 			le16_to_cpu(map->strip_size) *
 			le16_to_cpu(map->data_disks_per_row);
-		BUG_ON(r5or6_blocks_per_row == 0);
+		if (r5or6_blocks_per_row == 0) {
+			hpsa_turn_off_ioaccel_for_device(dev);
+			return IO_ACCEL_INELIGIBLE;
+		}
 		stripesize = r5or6_blocks_per_row *
 			le16_to_cpu(map->layout_map_count);
 #if BITS_PER_LONG == 32
@@ -8285,7 +8306,7 @@
  *
  * Called from monitor controller worker (hpsa_event_monitor_worker)
  *
- * A Volume (or Volumes that comprise an Array set may be undergoing a
+ * A Volume (or Volumes that comprise an Array set) may be undergoing a
  * transformation, so we will be turning off ioaccel for all volumes that
  * make up the Array.
  */
@@ -8308,6 +8329,9 @@
 	 * Run through current device list used during I/O requests.
 	 */
 	for (i = 0; i < h->ndevices; i++) {
+		int offload_to_be_enabled = 0;
+		int offload_config = 0;
+
 		device = h->dev[i];
 
 		if (!device)
@@ -8325,25 +8349,35 @@
 			continue;
 
 		ioaccel_status = buf[IOACCEL_STATUS_BYTE];
-		device->offload_config =
+
+		/*
+		 * Check if offload is still configured on
+		 */
+		offload_config =
 				!!(ioaccel_status & OFFLOAD_CONFIGURED_BIT);
-		if (device->offload_config)
-			device->offload_to_be_enabled =
+		/*
+		 * If offload is configured on, check to see if ioaccel
+		 * needs to be enabled.
+		 */
+		if (offload_config)
+			offload_to_be_enabled =
 				!!(ioaccel_status & OFFLOAD_ENABLED_BIT);
 
 		/*
+		 * If ioaccel is to be re-enabled, re-enable later during the
+		 * scan operation so the driver can get a fresh raidmap
+		 * before turning ioaccel back on.
+		 */
+		if (offload_to_be_enabled)
+			continue;
+
+		/*
 		 * Immediately turn off ioaccel for any volume the
 		 * controller tells us to. Some of the reasons could be:
 		 *    transformation - change to the LVs of an Array.
 		 *    degraded volume - component failure
-		 *
-		 * If ioaccel is to be re-enabled, re-enable later during the
-		 * scan operation so the driver can get a fresh raidmap
-		 * before turning ioaccel back on.
-		 *
 		 */
-		if (!device->offload_to_be_enabled)
-			device->offload_enabled = 0;
+		hpsa_turn_off_ioaccel_for_device(device);
 	}
 
 	kfree(buf);
@@ -8820,7 +8854,7 @@
 	/* hook into SCSI subsystem */
 	rc = hpsa_scsi_add_host(h);
 	if (rc)
-		goto clean7; /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
+		goto clean8; /* lastlogicals, perf, sg, cmd, irq, shost, pci, lu, aer/h */
 
 	/* Monitor the controller for firmware lockups */
 	h->heartbeat_sample_interval = HEARTBEAT_SAMPLE_INTERVAL;
@@ -8835,6 +8869,8 @@
 				HPSA_EVENT_MONITOR_INTERVAL);
 	return 0;
 
+clean8: /* lastlogicals, perf, sg, cmd, irq, shost, pci, lu, aer/h */
+	kfree(h->lastlogicals);
 clean7: /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
 	hpsa_free_performant_mode(h);
 	h->access.set_intr_mask(h, HPSA_INTR_OFF);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ibmvscsi/ibmvfc.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -2881,8 +2881,10 @@
 	unsigned long flags = 0;
 
 	spin_lock_irqsave(shost->host_lock, flags);
-	if (sdev->type == TYPE_DISK)
+	if (sdev->type == TYPE_DISK) {
 		sdev->allow_restart = 1;
+		blk_queue_rq_timeout(sdev->request_queue, 120 * HZ);
+	}
 	spin_unlock_irqrestore(shost->host_lock, flags);
 	return 0;
 }
@@ -4788,6 +4790,7 @@
 	if (IS_ERR(vhost->work_thread)) {
 		dev_err(dev, "Couldn't create kernel thread: %ld\n",
 			PTR_ERR(vhost->work_thread));
+		rc = PTR_ERR(vhost->work_thread);
 		goto free_host_mem;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -415,6 +415,8 @@
 	int rc = 0;
 	struct vio_dev *vdev = to_vio_dev(hostdata->dev);
 
+	set_adapter_info(hostdata);
+
 	/* Re-enable the CRQ */
 	do {
 		if (rc)
@@ -805,13 +807,29 @@
 }
 
 /**
+ * ibmvscsi_set_request_limit - Set the adapter request_limit in response to
+ * an adapter failure, reset, or SRP Login. Done under host lock to prevent
+ * race with SCSI command submission.
+ * @hostdata:	adapter to adjust
+ * @limit:	new request limit
+ */
+static void ibmvscsi_set_request_limit(struct ibmvscsi_host_data *hostdata, int limit)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(hostdata->host->host_lock, flags);
+	atomic_set(&hostdata->request_limit, limit);
+	spin_unlock_irqrestore(hostdata->host->host_lock, flags);
+}
+
+/**
  * ibmvscsi_reset_host - Reset the connection to the server
  * @hostdata:	struct ibmvscsi_host_data to reset
 */
 static void ibmvscsi_reset_host(struct ibmvscsi_host_data *hostdata)
 {
 	scsi_block_requests(hostdata->host);
-	atomic_set(&hostdata->request_limit, 0);
+	ibmvscsi_set_request_limit(hostdata, 0);
 
 	purge_requests(hostdata, DID_ERROR);
 	hostdata->action = IBMVSCSI_HOST_ACTION_RESET;
@@ -1144,13 +1162,13 @@
 		dev_info(hostdata->dev, "SRP_LOGIN_REJ reason %u\n",
 			 evt_struct->xfer_iu->srp.login_rej.reason);
 		/* Login failed.  */
-		atomic_set(&hostdata->request_limit, -1);
+		ibmvscsi_set_request_limit(hostdata, -1);
 		return;
 	default:
 		dev_err(hostdata->dev, "Invalid login response typecode 0x%02x!\n",
 			evt_struct->xfer_iu->srp.login_rsp.opcode);
 		/* Login failed.  */
-		atomic_set(&hostdata->request_limit, -1);
+		ibmvscsi_set_request_limit(hostdata, -1);
 		return;
 	}
 
@@ -1161,7 +1179,7 @@
 	 * This value is set rather than added to request_limit because
 	 * request_limit could have been set to -1 by this client.
 	 */
-	atomic_set(&hostdata->request_limit,
+	ibmvscsi_set_request_limit(hostdata,
 		   be32_to_cpu(evt_struct->xfer_iu->srp.login_rsp.req_lim_delta));
 
 	/* If we had any pending I/Os, kick them */
@@ -1193,13 +1211,13 @@
 	login->req_buf_fmt = cpu_to_be16(SRP_BUF_FORMAT_DIRECT |
 					 SRP_BUF_FORMAT_INDIRECT);
 
-	spin_lock_irqsave(hostdata->host->host_lock, flags);
 	/* Start out with a request limit of 0, since this is negotiated in
 	 * the login request we are just sending and login requests always
 	 * get sent by the driver regardless of request_limit.
 	 */
-	atomic_set(&hostdata->request_limit, 0);
+	ibmvscsi_set_request_limit(hostdata, 0);
 
+	spin_lock_irqsave(hostdata->host->host_lock, flags);
 	rc = ibmvscsi_send_srp_event(evt_struct, hostdata, login_timeout * 2);
 	spin_unlock_irqrestore(hostdata->host->host_lock, flags);
 	dev_info(hostdata->dev, "sent SRP login\n");
@@ -1779,7 +1797,7 @@
 		return;
 	case VIOSRP_CRQ_XPORT_EVENT:	/* Hypervisor telling us the connection is closed */
 		scsi_block_requests(hostdata->host);
-		atomic_set(&hostdata->request_limit, 0);
+		ibmvscsi_set_request_limit(hostdata, 0);
 		if (crq->format == 0x06) {
 			/* We need to re-setup the interpartition connection */
 			dev_info(hostdata->dev, "Re-enabling adapter!\n");
@@ -2135,12 +2153,12 @@
 	}
 
 	hostdata->action = IBMVSCSI_HOST_ACTION_NONE;
+	spin_unlock_irqrestore(hostdata->host->host_lock, flags);
 
 	if (rc) {
-		atomic_set(&hostdata->request_limit, -1);
+		ibmvscsi_set_request_limit(hostdata, -1);
 		dev_err(hostdata->dev, "error after %s\n", action);
 	}
-	spin_unlock_irqrestore(hostdata->host->host_lock, flags);
 
 	scsi_unblock_requests(hostdata->host);
 }
@@ -2224,7 +2242,7 @@
 	init_waitqueue_head(&hostdata->work_wait_q);
 	hostdata->host = host;
 	hostdata->dev = dev;
-	atomic_set(&hostdata->request_limit, -1);
+	ibmvscsi_set_request_limit(hostdata, -1);
 	hostdata->host->max_sectors = IBMVSCSI_MAX_SECTORS_DEFAULT;
 
 	if (map_persist_bufs(hostdata)) {
@@ -2320,16 +2338,12 @@
 static int ibmvscsi_remove(struct vio_dev *vdev)
 {
 	struct ibmvscsi_host_data *hostdata = dev_get_drvdata(&vdev->dev);
-	unsigned long flags;
 
 	srp_remove_host(hostdata->host);
 	scsi_remove_host(hostdata->host);
 
 	purge_requests(hostdata, DID_ERROR);
-
-	spin_lock_irqsave(hostdata->host->host_lock, flags);
 	release_event_pool(&hostdata->pool, hostdata);
-	spin_unlock_irqrestore(hostdata->host->host_lock, flags);
 
 	ibmvscsi_release_crq_queue(&hostdata->queue, hostdata,
 					max_events);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ipr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ipr.c
@@ -9947,6 +9947,7 @@
 	ioa_cfg->max_devs_supported = ipr_max_devs;
 
 	if (ioa_cfg->sis64) {
+		host->max_channel = IPR_MAX_SIS64_BUSES;
 		host->max_id = IPR_MAX_SIS64_TARGETS_PER_BUS;
 		host->max_lun = IPR_MAX_SIS64_LUNS_PER_TARGET;
 		if (ipr_max_devs > IPR_MAX_SIS64_DEVS)
@@ -9955,6 +9956,7 @@
 					   + ((sizeof(struct ipr_config_table_entry64)
 					       * ioa_cfg->max_devs_supported)));
 	} else {
+		host->max_channel = IPR_VSET_BUS;
 		host->max_id = IPR_MAX_NUM_TARGETS_PER_BUS;
 		host->max_lun = IPR_MAX_NUM_LUNS_PER_TARGET;
 		if (ipr_max_devs > IPR_MAX_PHYSICAL_DEVS)
@@ -9964,7 +9966,6 @@
 					       * ioa_cfg->max_devs_supported)));
 	}
 
-	host->max_channel = IPR_VSET_BUS;
 	host->unique_id = host->host_no;
 	host->max_cmd_len = IPR_MAX_CDB_LEN;
 	host->can_queue = ioa_cfg->max_cmds;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ipr.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ipr.h
@@ -1300,6 +1300,7 @@
 #define IPR_ARRAY_VIRTUAL_BUS			0x1
 #define IPR_VSET_VIRTUAL_BUS			0x2
 #define IPR_IOAFP_VIRTUAL_BUS			0x3
+#define IPR_MAX_SIS64_BUSES			0x4
 
 #define IPR_GET_RES_PHYS_LOC(res) \
 	(((res)->bus << 24) | ((res)->target << 8) | (res)->lun)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/iscsi_boot_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/iscsi_boot_sysfs.c
@@ -352,7 +352,7 @@
 	boot_kobj->kobj.kset = boot_kset->kset;
 	if (kobject_init_and_add(&boot_kobj->kobj, &iscsi_boot_ktype,
 				 NULL, name, index)) {
-		kfree(boot_kobj);
+		kobject_put(&boot_kobj->kobj);
 		return NULL;
 	}
 	boot_kobj->data = data;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/iscsi_tcp.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/iscsi_tcp.c
@@ -369,8 +369,16 @@
 {
 	struct iscsi_conn *conn = task->conn;
 	unsigned int noreclaim_flag;
+	struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
+	struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data;
 	int rc = 0;
 
+	if (!tcp_sw_conn->sock) {
+		iscsi_conn_printk(KERN_ERR, conn,
+				  "Transport not bound to socket!\n");
+		return -EINVAL;
+	}
+
 	noreclaim_flag = memalloc_noreclaim_save();
 
 	while (iscsi_sw_tcp_xmit_qlen(conn)) {
@@ -879,6 +887,10 @@
 static void iscsi_sw_tcp_session_destroy(struct iscsi_cls_session *cls_session)
 {
 	struct Scsi_Host *shost = iscsi_session_to_shost(cls_session);
+	struct iscsi_session *session = cls_session->dd_data;
+
+	if (WARN_ON_ONCE(session->leadconn))
+		return;
 
 	iscsi_tcp_r2tpool_free(cls_session->dd_data);
 	iscsi_session_teardown(cls_session);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libfc/fc_disc.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libfc/fc_disc.c
@@ -581,8 +581,12 @@
 
 	if (PTR_ERR(fp) == -FC_EX_CLOSED)
 		goto out;
-	if (IS_ERR(fp))
-		goto redisc;
+	if (IS_ERR(fp)) {
+		mutex_lock(&disc->disc_mutex);
+		fc_disc_restart(disc);
+		mutex_unlock(&disc->disc_mutex);
+		goto out;
+	}
 
 	cp = fc_frame_payload_get(fp, sizeof(*cp));
 	if (!cp)
@@ -609,7 +613,7 @@
 				new_rdata->disc_id = disc->disc_id;
 				fc_rport_login(new_rdata);
 			}
-			goto out;
+			goto free_fp;
 		}
 		rdata->disc_id = disc->disc_id;
 		mutex_unlock(&rdata->rp_mutex);
@@ -626,6 +630,8 @@
 		fc_disc_restart(disc);
 		mutex_unlock(&disc->disc_mutex);
 	}
+free_fp:
+	fc_frame_free(fp);
 out:
 	kref_put(&rdata->kref, fc_rport_destroy);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libfc/fc_exch.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libfc/fc_exch.c
@@ -1619,8 +1619,13 @@
 		rc = fc_exch_done_locked(ep);
 		WARN_ON(fc_seq_exch(sp) != ep);
 		spin_unlock_bh(&ep->ex_lock);
-		if (!rc)
+		if (!rc) {
 			fc_exch_delete(ep);
+		} else {
+			FC_EXCH_DBG(ep, "ep is completed already,"
+					"hence skip calling the resp\n");
+			goto skip_resp;
+		}
 	}
 
 	/*
@@ -1639,6 +1644,7 @@
 	if (!fc_invoke_resp(ep, sp, fp))
 		fc_frame_free(fp);
 
+skip_resp:
 	fc_exch_release(ep);
 	return;
 rel:
@@ -1895,10 +1901,16 @@
 
 	fc_exch_hold(ep);
 
-	if (!rc)
+	if (!rc) {
 		fc_exch_delete(ep);
+	} else {
+		FC_EXCH_DBG(ep, "ep is completed already,"
+				"hence skip calling the resp\n");
+		goto skip_resp;
+	}
 
 	fc_invoke_resp(ep, sp, ERR_PTR(-FC_EX_CLOSED));
+skip_resp:
 	fc_seq_set_resp(sp, NULL, ep->arg);
 	fc_exch_release(ep);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libfc/fc_rport.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libfc/fc_rport.c
@@ -133,8 +133,10 @@
 	lockdep_assert_held(&lport->disc.disc_mutex);
 
 	rdata = fc_rport_lookup(lport, port_id);
-	if (rdata)
+	if (rdata) {
+		kref_put(&rdata->kref, fc_rport_destroy);
 		return rdata;
+	}
 
 	if (lport->rport_priv_size > 0)
 		rport_priv_size = lport->rport_priv_size;
@@ -481,10 +483,11 @@
 
 	fc_rport_state_enter(rdata, RPORT_ST_DELETE);
 
-	kref_get(&rdata->kref);
-	if (rdata->event == RPORT_EV_NONE &&
-	    !queue_work(rport_event_queue, &rdata->event_work))
-		kref_put(&rdata->kref, fc_rport_destroy);
+	if (rdata->event == RPORT_EV_NONE) {
+		kref_get(&rdata->kref);
+		if (!queue_work(rport_event_queue, &rdata->event_work))
+			kref_put(&rdata->kref, fc_rport_destroy);
+	}
 
 	rdata->event = event;
 }
@@ -1208,9 +1211,15 @@
 		rjt = fc_frame_payload_get(fp, sizeof(*rjt));
 		if (!rjt)
 			FC_RPORT_DBG(rdata, "PRLI bad response\n");
-		else
+		else {
 			FC_RPORT_DBG(rdata, "PRLI ELS rejected, reason %x expl %x\n",
 				     rjt->er_reason, rjt->er_explan);
+			if (rjt->er_reason == ELS_RJT_UNAB &&
+			    rjt->er_explan == ELS_EXPL_PLOGI_REQD) {
+				fc_rport_enter_plogi(rdata);
+				goto out;
+			}
+		}
 		fc_rport_error_retry(rdata, FC_EX_ELS_RJT);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libiscsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libiscsi.c
@@ -533,8 +533,8 @@
 	if (conn->task == task)
 		conn->task = NULL;
 
-	if (conn->ping_task == task)
-		conn->ping_task = NULL;
+	if (READ_ONCE(conn->ping_task) == task)
+		WRITE_ONCE(conn->ping_task, NULL);
 
 	/* release get from queueing */
 	__iscsi_put_task(task);
@@ -738,6 +738,9 @@
 						   task->conn->session->age);
 	}
 
+	if (unlikely(READ_ONCE(conn->ping_task) == INVALID_SCSI_TASK))
+		WRITE_ONCE(conn->ping_task, task);
+
 	if (!ihost->workq) {
 		if (iscsi_prep_mgmt_task(conn, task))
 			goto free_task;
@@ -941,8 +944,11 @@
         struct iscsi_nopout hdr;
 	struct iscsi_task *task;
 
-	if (!rhdr && conn->ping_task)
-		return -EINVAL;
+	if (!rhdr) {
+		if (READ_ONCE(conn->ping_task))
+			return -EINVAL;
+		WRITE_ONCE(conn->ping_task, INVALID_SCSI_TASK);
+	}
 
 	memset(&hdr, 0, sizeof(struct iscsi_nopout));
 	hdr.opcode = ISCSI_OP_NOOP_OUT | ISCSI_OP_IMMEDIATE;
@@ -957,11 +963,12 @@
 
 	task = __iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)&hdr, NULL, 0);
 	if (!task) {
+		if (!rhdr)
+			WRITE_ONCE(conn->ping_task, NULL);
 		iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n");
 		return -EIO;
 	} else if (!rhdr) {
 		/* only track our nops */
-		conn->ping_task = task;
 		conn->last_ping = jiffies;
 	}
 
@@ -984,7 +991,7 @@
 	struct iscsi_conn *conn = task->conn;
 	int rc = 0;
 
-	if (conn->ping_task != task) {
+	if (READ_ONCE(conn->ping_task) != task) {
 		/*
 		 * If this is not in response to one of our
 		 * nops then it must be from userspace.
@@ -1525,14 +1532,9 @@
 		}
 		rc = iscsi_prep_scsi_cmd_pdu(conn->task);
 		if (rc) {
-			if (rc == -ENOMEM || rc == -EACCES) {
-				spin_lock_bh(&conn->taskqueuelock);
-				list_add_tail(&conn->task->running,
-					      &conn->cmdqueue);
-				conn->task = NULL;
-				spin_unlock_bh(&conn->taskqueuelock);
-				goto done;
-			} else
+			if (rc == -ENOMEM || rc == -EACCES)
+				fail_scsi_task(conn->task, DID_IMM_RETRY);
+			else
 				fail_scsi_task(conn->task, DID_ABORT);
 			spin_lock_bh(&conn->taskqueuelock);
 			continue;
@@ -1923,7 +1925,7 @@
  */
 static int iscsi_has_ping_timed_out(struct iscsi_conn *conn)
 {
-	if (conn->ping_task &&
+	if (READ_ONCE(conn->ping_task) &&
 	    time_before_eq(conn->last_recv + (conn->recv_timeout * HZ) +
 			   (conn->ping_timeout * HZ), jiffies))
 		return 1;
@@ -1945,7 +1947,7 @@
 
 	ISCSI_DBG_EH(session, "scsi cmd %p timedout\n", sc);
 
-	spin_lock(&session->frwd_lock);
+	spin_lock_bh(&session->frwd_lock);
 	task = (struct iscsi_task *)sc->SCp.ptr;
 	if (!task) {
 		/*
@@ -2058,7 +2060,7 @@
 	 * Checking the transport already or nop from a cmd timeout still
 	 * running
 	 */
-	if (conn->ping_task) {
+	if (READ_ONCE(conn->ping_task)) {
 		task->have_checked_conn = true;
 		rc = BLK_EH_RESET_TIMER;
 		goto done;
@@ -2072,7 +2074,7 @@
 done:
 	if (task)
 		task->last_timeout = jiffies;
-	spin_unlock(&session->frwd_lock);
+	spin_unlock_bh(&session->frwd_lock);
 	ISCSI_DBG_EH(session, "return %s\n", rc == BLK_EH_RESET_TIMER ?
 		     "timer reset" : "shutdown or nh");
 	return rc;
@@ -3324,125 +3326,125 @@
 
 	switch(param) {
 	case ISCSI_PARAM_FAST_ABORT:
-		len = sprintf(buf, "%d\n", session->fast_abort);
+		len = sysfs_emit(buf, "%d\n", session->fast_abort);
 		break;
 	case ISCSI_PARAM_ABORT_TMO:
-		len = sprintf(buf, "%d\n", session->abort_timeout);
+		len = sysfs_emit(buf, "%d\n", session->abort_timeout);
 		break;
 	case ISCSI_PARAM_LU_RESET_TMO:
-		len = sprintf(buf, "%d\n", session->lu_reset_timeout);
+		len = sysfs_emit(buf, "%d\n", session->lu_reset_timeout);
 		break;
 	case ISCSI_PARAM_TGT_RESET_TMO:
-		len = sprintf(buf, "%d\n", session->tgt_reset_timeout);
+		len = sysfs_emit(buf, "%d\n", session->tgt_reset_timeout);
 		break;
 	case ISCSI_PARAM_INITIAL_R2T_EN:
-		len = sprintf(buf, "%d\n", session->initial_r2t_en);
+		len = sysfs_emit(buf, "%d\n", session->initial_r2t_en);
 		break;
 	case ISCSI_PARAM_MAX_R2T:
-		len = sprintf(buf, "%hu\n", session->max_r2t);
+		len = sysfs_emit(buf, "%hu\n", session->max_r2t);
 		break;
 	case ISCSI_PARAM_IMM_DATA_EN:
-		len = sprintf(buf, "%d\n", session->imm_data_en);
+		len = sysfs_emit(buf, "%d\n", session->imm_data_en);
 		break;
 	case ISCSI_PARAM_FIRST_BURST:
-		len = sprintf(buf, "%u\n", session->first_burst);
+		len = sysfs_emit(buf, "%u\n", session->first_burst);
 		break;
 	case ISCSI_PARAM_MAX_BURST:
-		len = sprintf(buf, "%u\n", session->max_burst);
+		len = sysfs_emit(buf, "%u\n", session->max_burst);
 		break;
 	case ISCSI_PARAM_PDU_INORDER_EN:
-		len = sprintf(buf, "%d\n", session->pdu_inorder_en);
+		len = sysfs_emit(buf, "%d\n", session->pdu_inorder_en);
 		break;
 	case ISCSI_PARAM_DATASEQ_INORDER_EN:
-		len = sprintf(buf, "%d\n", session->dataseq_inorder_en);
+		len = sysfs_emit(buf, "%d\n", session->dataseq_inorder_en);
 		break;
 	case ISCSI_PARAM_DEF_TASKMGMT_TMO:
-		len = sprintf(buf, "%d\n", session->def_taskmgmt_tmo);
+		len = sysfs_emit(buf, "%d\n", session->def_taskmgmt_tmo);
 		break;
 	case ISCSI_PARAM_ERL:
-		len = sprintf(buf, "%d\n", session->erl);
+		len = sysfs_emit(buf, "%d\n", session->erl);
 		break;
 	case ISCSI_PARAM_TARGET_NAME:
-		len = sprintf(buf, "%s\n", session->targetname);
+		len = sysfs_emit(buf, "%s\n", session->targetname);
 		break;
 	case ISCSI_PARAM_TARGET_ALIAS:
-		len = sprintf(buf, "%s\n", session->targetalias);
+		len = sysfs_emit(buf, "%s\n", session->targetalias);
 		break;
 	case ISCSI_PARAM_TPGT:
-		len = sprintf(buf, "%d\n", session->tpgt);
+		len = sysfs_emit(buf, "%d\n", session->tpgt);
 		break;
 	case ISCSI_PARAM_USERNAME:
-		len = sprintf(buf, "%s\n", session->username);
+		len = sysfs_emit(buf, "%s\n", session->username);
 		break;
 	case ISCSI_PARAM_USERNAME_IN:
-		len = sprintf(buf, "%s\n", session->username_in);
+		len = sysfs_emit(buf, "%s\n", session->username_in);
 		break;
 	case ISCSI_PARAM_PASSWORD:
-		len = sprintf(buf, "%s\n", session->password);
+		len = sysfs_emit(buf, "%s\n", session->password);
 		break;
 	case ISCSI_PARAM_PASSWORD_IN:
-		len = sprintf(buf, "%s\n", session->password_in);
+		len = sysfs_emit(buf, "%s\n", session->password_in);
 		break;
 	case ISCSI_PARAM_IFACE_NAME:
-		len = sprintf(buf, "%s\n", session->ifacename);
+		len = sysfs_emit(buf, "%s\n", session->ifacename);
 		break;
 	case ISCSI_PARAM_INITIATOR_NAME:
-		len = sprintf(buf, "%s\n", session->initiatorname);
+		len = sysfs_emit(buf, "%s\n", session->initiatorname);
 		break;
 	case ISCSI_PARAM_BOOT_ROOT:
-		len = sprintf(buf, "%s\n", session->boot_root);
+		len = sysfs_emit(buf, "%s\n", session->boot_root);
 		break;
 	case ISCSI_PARAM_BOOT_NIC:
-		len = sprintf(buf, "%s\n", session->boot_nic);
+		len = sysfs_emit(buf, "%s\n", session->boot_nic);
 		break;
 	case ISCSI_PARAM_BOOT_TARGET:
-		len = sprintf(buf, "%s\n", session->boot_target);
+		len = sysfs_emit(buf, "%s\n", session->boot_target);
 		break;
 	case ISCSI_PARAM_AUTO_SND_TGT_DISABLE:
-		len = sprintf(buf, "%u\n", session->auto_snd_tgt_disable);
+		len = sysfs_emit(buf, "%u\n", session->auto_snd_tgt_disable);
 		break;
 	case ISCSI_PARAM_DISCOVERY_SESS:
-		len = sprintf(buf, "%u\n", session->discovery_sess);
+		len = sysfs_emit(buf, "%u\n", session->discovery_sess);
 		break;
 	case ISCSI_PARAM_PORTAL_TYPE:
-		len = sprintf(buf, "%s\n", session->portal_type);
+		len = sysfs_emit(buf, "%s\n", session->portal_type);
 		break;
 	case ISCSI_PARAM_CHAP_AUTH_EN:
-		len = sprintf(buf, "%u\n", session->chap_auth_en);
+		len = sysfs_emit(buf, "%u\n", session->chap_auth_en);
 		break;
 	case ISCSI_PARAM_DISCOVERY_LOGOUT_EN:
-		len = sprintf(buf, "%u\n", session->discovery_logout_en);
+		len = sysfs_emit(buf, "%u\n", session->discovery_logout_en);
 		break;
 	case ISCSI_PARAM_BIDI_CHAP_EN:
-		len = sprintf(buf, "%u\n", session->bidi_chap_en);
+		len = sysfs_emit(buf, "%u\n", session->bidi_chap_en);
 		break;
 	case ISCSI_PARAM_DISCOVERY_AUTH_OPTIONAL:
-		len = sprintf(buf, "%u\n", session->discovery_auth_optional);
+		len = sysfs_emit(buf, "%u\n", session->discovery_auth_optional);
 		break;
 	case ISCSI_PARAM_DEF_TIME2WAIT:
-		len = sprintf(buf, "%d\n", session->time2wait);
+		len = sysfs_emit(buf, "%d\n", session->time2wait);
 		break;
 	case ISCSI_PARAM_DEF_TIME2RETAIN:
-		len = sprintf(buf, "%d\n", session->time2retain);
+		len = sysfs_emit(buf, "%d\n", session->time2retain);
 		break;
 	case ISCSI_PARAM_TSID:
-		len = sprintf(buf, "%u\n", session->tsid);
+		len = sysfs_emit(buf, "%u\n", session->tsid);
 		break;
 	case ISCSI_PARAM_ISID:
-		len = sprintf(buf, "%02x%02x%02x%02x%02x%02x\n",
+		len = sysfs_emit(buf, "%02x%02x%02x%02x%02x%02x\n",
 			      session->isid[0], session->isid[1],
 			      session->isid[2], session->isid[3],
 			      session->isid[4], session->isid[5]);
 		break;
 	case ISCSI_PARAM_DISCOVERY_PARENT_IDX:
-		len = sprintf(buf, "%u\n", session->discovery_parent_idx);
+		len = sysfs_emit(buf, "%u\n", session->discovery_parent_idx);
 		break;
 	case ISCSI_PARAM_DISCOVERY_PARENT_TYPE:
 		if (session->discovery_parent_type)
-			len = sprintf(buf, "%s\n",
+			len = sysfs_emit(buf, "%s\n",
 				      session->discovery_parent_type);
 		else
-			len = sprintf(buf, "\n");
+			len = sysfs_emit(buf, "\n");
 		break;
 	default:
 		return -ENOSYS;
@@ -3474,16 +3476,16 @@
 	case ISCSI_PARAM_CONN_ADDRESS:
 	case ISCSI_HOST_PARAM_IPADDRESS:
 		if (sin)
-			len = sprintf(buf, "%pI4\n", &sin->sin_addr.s_addr);
+			len = sysfs_emit(buf, "%pI4\n", &sin->sin_addr.s_addr);
 		else
-			len = sprintf(buf, "%pI6\n", &sin6->sin6_addr);
+			len = sysfs_emit(buf, "%pI6\n", &sin6->sin6_addr);
 		break;
 	case ISCSI_PARAM_CONN_PORT:
 	case ISCSI_PARAM_LOCAL_PORT:
 		if (sin)
-			len = sprintf(buf, "%hu\n", be16_to_cpu(sin->sin_port));
+			len = sysfs_emit(buf, "%hu\n", be16_to_cpu(sin->sin_port));
 		else
-			len = sprintf(buf, "%hu\n",
+			len = sysfs_emit(buf, "%hu\n",
 				      be16_to_cpu(sin6->sin6_port));
 		break;
 	default:
@@ -3502,88 +3504,88 @@
 
 	switch(param) {
 	case ISCSI_PARAM_PING_TMO:
-		len = sprintf(buf, "%u\n", conn->ping_timeout);
+		len = sysfs_emit(buf, "%u\n", conn->ping_timeout);
 		break;
 	case ISCSI_PARAM_RECV_TMO:
-		len = sprintf(buf, "%u\n", conn->recv_timeout);
+		len = sysfs_emit(buf, "%u\n", conn->recv_timeout);
 		break;
 	case ISCSI_PARAM_MAX_RECV_DLENGTH:
-		len = sprintf(buf, "%u\n", conn->max_recv_dlength);
+		len = sysfs_emit(buf, "%u\n", conn->max_recv_dlength);
 		break;
 	case ISCSI_PARAM_MAX_XMIT_DLENGTH:
-		len = sprintf(buf, "%u\n", conn->max_xmit_dlength);
+		len = sysfs_emit(buf, "%u\n", conn->max_xmit_dlength);
 		break;
 	case ISCSI_PARAM_HDRDGST_EN:
-		len = sprintf(buf, "%d\n", conn->hdrdgst_en);
+		len = sysfs_emit(buf, "%d\n", conn->hdrdgst_en);
 		break;
 	case ISCSI_PARAM_DATADGST_EN:
-		len = sprintf(buf, "%d\n", conn->datadgst_en);
+		len = sysfs_emit(buf, "%d\n", conn->datadgst_en);
 		break;
 	case ISCSI_PARAM_IFMARKER_EN:
-		len = sprintf(buf, "%d\n", conn->ifmarker_en);
+		len = sysfs_emit(buf, "%d\n", conn->ifmarker_en);
 		break;
 	case ISCSI_PARAM_OFMARKER_EN:
-		len = sprintf(buf, "%d\n", conn->ofmarker_en);
+		len = sysfs_emit(buf, "%d\n", conn->ofmarker_en);
 		break;
 	case ISCSI_PARAM_EXP_STATSN:
-		len = sprintf(buf, "%u\n", conn->exp_statsn);
+		len = sysfs_emit(buf, "%u\n", conn->exp_statsn);
 		break;
 	case ISCSI_PARAM_PERSISTENT_PORT:
-		len = sprintf(buf, "%d\n", conn->persistent_port);
+		len = sysfs_emit(buf, "%d\n", conn->persistent_port);
 		break;
 	case ISCSI_PARAM_PERSISTENT_ADDRESS:
-		len = sprintf(buf, "%s\n", conn->persistent_address);
+		len = sysfs_emit(buf, "%s\n", conn->persistent_address);
 		break;
 	case ISCSI_PARAM_STATSN:
-		len = sprintf(buf, "%u\n", conn->statsn);
+		len = sysfs_emit(buf, "%u\n", conn->statsn);
 		break;
 	case ISCSI_PARAM_MAX_SEGMENT_SIZE:
-		len = sprintf(buf, "%u\n", conn->max_segment_size);
+		len = sysfs_emit(buf, "%u\n", conn->max_segment_size);
 		break;
 	case ISCSI_PARAM_KEEPALIVE_TMO:
-		len = sprintf(buf, "%u\n", conn->keepalive_tmo);
+		len = sysfs_emit(buf, "%u\n", conn->keepalive_tmo);
 		break;
 	case ISCSI_PARAM_LOCAL_PORT:
-		len = sprintf(buf, "%u\n", conn->local_port);
+		len = sysfs_emit(buf, "%u\n", conn->local_port);
 		break;
 	case ISCSI_PARAM_TCP_TIMESTAMP_STAT:
-		len = sprintf(buf, "%u\n", conn->tcp_timestamp_stat);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_timestamp_stat);
 		break;
 	case ISCSI_PARAM_TCP_NAGLE_DISABLE:
-		len = sprintf(buf, "%u\n", conn->tcp_nagle_disable);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_nagle_disable);
 		break;
 	case ISCSI_PARAM_TCP_WSF_DISABLE:
-		len = sprintf(buf, "%u\n", conn->tcp_wsf_disable);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_wsf_disable);
 		break;
 	case ISCSI_PARAM_TCP_TIMER_SCALE:
-		len = sprintf(buf, "%u\n", conn->tcp_timer_scale);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_timer_scale);
 		break;
 	case ISCSI_PARAM_TCP_TIMESTAMP_EN:
-		len = sprintf(buf, "%u\n", conn->tcp_timestamp_en);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_timestamp_en);
 		break;
 	case ISCSI_PARAM_IP_FRAGMENT_DISABLE:
-		len = sprintf(buf, "%u\n", conn->fragment_disable);
+		len = sysfs_emit(buf, "%u\n", conn->fragment_disable);
 		break;
 	case ISCSI_PARAM_IPV4_TOS:
-		len = sprintf(buf, "%u\n", conn->ipv4_tos);
+		len = sysfs_emit(buf, "%u\n", conn->ipv4_tos);
 		break;
 	case ISCSI_PARAM_IPV6_TC:
-		len = sprintf(buf, "%u\n", conn->ipv6_traffic_class);
+		len = sysfs_emit(buf, "%u\n", conn->ipv6_traffic_class);
 		break;
 	case ISCSI_PARAM_IPV6_FLOW_LABEL:
-		len = sprintf(buf, "%u\n", conn->ipv6_flow_label);
+		len = sysfs_emit(buf, "%u\n", conn->ipv6_flow_label);
 		break;
 	case ISCSI_PARAM_IS_FW_ASSIGNED_IPV6:
-		len = sprintf(buf, "%u\n", conn->is_fw_assigned_ipv6);
+		len = sysfs_emit(buf, "%u\n", conn->is_fw_assigned_ipv6);
 		break;
 	case ISCSI_PARAM_TCP_XMIT_WSF:
-		len = sprintf(buf, "%u\n", conn->tcp_xmit_wsf);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_xmit_wsf);
 		break;
 	case ISCSI_PARAM_TCP_RECV_WSF:
-		len = sprintf(buf, "%u\n", conn->tcp_recv_wsf);
+		len = sysfs_emit(buf, "%u\n", conn->tcp_recv_wsf);
 		break;
 	case ISCSI_PARAM_LOCAL_IPADDR:
-		len = sprintf(buf, "%s\n", conn->local_ipaddr);
+		len = sysfs_emit(buf, "%s\n", conn->local_ipaddr);
 		break;
 	default:
 		return -ENOSYS;
@@ -3601,13 +3603,13 @@
 
 	switch (param) {
 	case ISCSI_HOST_PARAM_NETDEV_NAME:
-		len = sprintf(buf, "%s\n", ihost->netdev);
+		len = sysfs_emit(buf, "%s\n", ihost->netdev);
 		break;
 	case ISCSI_HOST_PARAM_HWADDRESS:
-		len = sprintf(buf, "%s\n", ihost->hwaddress);
+		len = sysfs_emit(buf, "%s\n", ihost->hwaddress);
 		break;
 	case ISCSI_HOST_PARAM_INITIATOR_NAME:
-		len = sprintf(buf, "%s\n", ihost->initiatorname);
+		len = sysfs_emit(buf, "%s\n", ihost->initiatorname);
 		break;
 	default:
 		return -ENOSYS;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libsas/sas_ata.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libsas/sas_ata.c
@@ -208,7 +208,10 @@
 		task->num_scatter = si;
 	}
 
-	task->data_dir = qc->dma_dir;
+	if (qc->tf.protocol == ATA_PROT_NODATA)
+		task->data_dir = DMA_NONE;
+	else
+		task->data_dir = qc->dma_dir;
 	task->scatter = qc->sg;
 	task->ata_task.retry_count = 1;
 	task->task_state_flags = SAS_TASK_STATE_PENDING;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libsas/sas_discover.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libsas/sas_discover.c
@@ -81,12 +81,21 @@
 		else
 			dev->dev_type = SAS_SATA_DEV;
 		dev->tproto = SAS_PROTOCOL_SATA;
-	} else {
+	} else if (port->oob_mode == SAS_OOB_MODE) {
 		struct sas_identify_frame *id =
 			(struct sas_identify_frame *) dev->frame_rcvd;
 		dev->dev_type = id->dev_type;
 		dev->iproto = id->initiator_bits;
 		dev->tproto = id->target_bits;
+	} else {
+		/* If the oob mode is OOB_NOT_CONNECTED, the port is
+		 * disconnected due to race with PHY down. We cannot
+		 * continue to discover this port
+		 */
+		sas_put_device(dev);
+		pr_warn("Port %016llx is disconnected when discovering\n",
+			SAS_ADDR(port->attached_sas_addr));
+		return -ENODEV;
 	}
 
 	sas_init_dev(dev);
@@ -173,10 +182,11 @@
 		pr_warn("driver on host %s cannot handle device %llx, error:%d\n",
 			dev_name(sas_ha->dev),
 			SAS_ADDR(dev->sas_addr), res);
+		return res;
 	}
 	set_bit(SAS_DEV_FOUND, &dev->state);
 	kref_get(&dev->kref);
-	return res;
+	return 0;
 }
 
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/libsas/sas_scsi_host.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/libsas/sas_scsi_host.c
@@ -466,6 +466,9 @@
 	struct sas_internal *i = to_sas_internal(host->transportt);
 	unsigned long flags;
 
+	if (current != host->ehandler)
+		return FAILED;
+
 	if (!i->dft->lldd_abort_task)
 		return FAILED;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc.h
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -262,7 +262,6 @@
 	uint32_t elsRcvPRLI;
 	uint32_t elsRcvLIRR;
 	uint32_t elsRcvRLS;
-	uint32_t elsRcvRPS;
 	uint32_t elsRcvRPL;
 	uint32_t elsRcvRRQ;
 	uint32_t elsRcvRTV;
@@ -605,6 +604,12 @@
 	spinlock_t lock;	/* lock for expedite pool */
 };
 
+enum ras_state {
+	INACTIVE,
+	REG_INPROGRESS,
+	ACTIVE
+};
+
 struct lpfc_ras_fwlog {
 	uint8_t *fwlog_buff;
 	uint32_t fw_buffcount; /* Buffer size posted to FW */
@@ -621,7 +626,7 @@
 	bool ras_enabled;   /* Ras Enabled for the function */
 #define LPFC_RAS_DISABLE_LOGGING 0x00
 #define LPFC_RAS_ENABLE_LOGGING 0x01
-	bool ras_active;    /* RAS logging running state */
+	enum ras_state state;    /* RAS logging running state */
 };
 
 struct lpfc_hba {
@@ -725,6 +730,7 @@
 #define HBA_FCOE_MODE		0x4 /* HBA function in FCoE Mode */
 #define HBA_SP_QUEUE_EVT	0x8 /* Slow-path qevt posted to worker thread*/
 #define HBA_POST_RECEIVE_BUFFER 0x10 /* Rcv buffers need to be posted */
+#define HBA_PERSISTENT_TOPO	0x20 /* Persistent topology support in hba */
 #define ELS_XRI_ABORT_EVENT	0x40
 #define ASYNC_EVENT		0x80
 #define LINK_DISABLED		0x100 /* Link disabled by user */
@@ -742,6 +748,7 @@
 					 * capability
 					 */
 #define HBA_FLOGI_ISSUED	0x100000 /* FLOGI was issued */
+#define HBA_DEFER_FLOGI		0x800000 /* Defer FLOGI till read_sparm cmpl */
 
 	uint32_t fcp_ring_in_use; /* When polling test if intr-hndlr active*/
 	struct lpfc_dmabuf slim2p;
@@ -830,6 +837,7 @@
 	uint32_t cfg_fcp_mq_threshold;
 	uint32_t cfg_hdw_queue;
 	uint32_t cfg_irq_chann;
+	uint32_t cfg_irq_numa;
 	uint32_t cfg_suppress_rsp;
 	uint32_t cfg_nvme_oas;
 	uint32_t cfg_nvme_embed_cmd;
@@ -872,7 +880,6 @@
 	uint32_t cfg_aer_support;
 	uint32_t cfg_sriov_nr_virtfn;
 	uint32_t cfg_request_firmware_upgrade;
-	uint32_t cfg_iocb_cnt;
 	uint32_t cfg_suppress_link_up;
 	uint32_t cfg_rrq_xri_bitmap_sz;
 	uint32_t cfg_delay_discovery;
@@ -990,7 +997,6 @@
 	struct dma_pool *lpfc_drb_pool; /* data receive buffer pool */
 	struct dma_pool *lpfc_nvmet_drb_pool; /* data receive buffer pool */
 	struct dma_pool *lpfc_hbq_pool;	/* SLI3 hbq buffer pool */
-	struct dma_pool *txrdy_payload_pool;
 	struct dma_pool *lpfc_cmd_rsp_buf_pool;
 	struct lpfc_dma_pool lpfc_mbuf_safety_pool;
 
@@ -1055,6 +1061,7 @@
 #ifdef LPFC_HDWQ_LOCK_STAT
 	struct dentry *debug_lockstat;
 #endif
+	struct dentry *debug_ras_log;
 	atomic_t nvmeio_trc_cnt;
 	uint32_t nvmeio_trc_size;
 	uint32_t nvmeio_trc_output_idx;
@@ -1209,6 +1216,15 @@
 	uint64_t ktime_seg10_min;
 	uint64_t ktime_seg10_max;
 #endif
+
+	struct hlist_node cpuhp;	/* used for cpuhp per hba callback */
+	struct timer_list cpuhp_poll_timer;
+	struct list_head poll_list;	/* slowpath eq polling list */
+#define LPFC_POLL_HB	1		/* slowpath heartbeat */
+#define LPFC_POLL_FASTPATH	0	/* called from fastpath */
+#define LPFC_POLL_SLOWPATH	1	/* called from slowpath */
+
+	char os_host_name[MAXHOSTNAMELEN];
 };
 
 static inline struct Scsi_Host *
@@ -1299,6 +1315,26 @@
 }
 
 /**
+ * lpfc_next_online_numa_cpu - Finds next online CPU on NUMA node
+ * @numa_mask: Pointer to phba's numa_mask member.
+ * @start: starting cpu index
+ *
+ * Note: If no valid cpu found, then nr_cpu_ids is returned.
+ *
+ **/
+static inline unsigned int
+lpfc_next_online_numa_cpu(const struct cpumask *numa_mask, unsigned int start)
+{
+	unsigned int cpu_it;
+
+	for_each_cpu_wrap(cpu_it, numa_mask, start) {
+		if (cpu_online(cpu_it))
+			break;
+	}
+
+	return cpu_it;
+}
+/**
  * lpfc_sli4_mod_hba_eq_delay - update EQ delay
  * @phba: Pointer to HBA context object.
  * @q: The Event Queue to update.
@@ -1317,3 +1353,32 @@
 	writel(reg_data.word0, phba->sli4_hba.u.if_type2.EQDregaddr);
 	eq->q_mode = delay;
 }
+
+
+/*
+ * Macro that declares tables and a routine to perform enum type to
+ * ascii string lookup.
+ *
+ * Defines a <key,value> table for an enum. Uses xxx_INIT defines for
+ * the enum to populate the table.  Macro defines a routine (named
+ * by caller) that will search all elements of the table for the key
+ * and return the name string if found or "Unrecognized" if not found.
+ */
+#define DECLARE_ENUM2STR_LOOKUP(routine, enum_name, enum_init)		\
+static struct {								\
+	enum enum_name		value;					\
+	char			*name;					\
+} fc_##enum_name##_e2str_names[] = enum_init;				\
+static const char *routine(enum enum_name table_key)			\
+{									\
+	int i;								\
+	char *name = "Unrecognized";					\
+									\
+	for (i = 0; i < ARRAY_SIZE(fc_##enum_name##_e2str_names); i++) {\
+		if (fc_##enum_name##_e2str_names[i].value == table_key) {\
+			name = fc_##enum_name##_e2str_names[i].name;	\
+			break;						\
+		}							\
+	}								\
+	return name;							\
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_attr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_attr.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.  *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -176,7 +176,6 @@
 	int i;
 	int len = 0;
 	char tmp[LPFC_MAX_NVME_INFO_TMP_LEN] = {0};
-	unsigned long iflags = 0;
 
 	if (!(vport->cfg_enable_fc4_type & LPFC_ENABLE_NVME)) {
 		len = scnprintf(buf, PAGE_SIZE, "NVME Disabled\n");
@@ -347,7 +346,6 @@
 	if (strlcat(buf, "\nNVME Initiator Enabled\n", PAGE_SIZE) >= PAGE_SIZE)
 		goto buffer_done;
 
-	rcu_read_lock();
 	scnprintf(tmp, sizeof(tmp),
 		  "XRI Dist lpfc%d Total %d IO %d ELS %d\n",
 		  phba->brd_no,
@@ -355,7 +353,7 @@
 		  phba->sli4_hba.io_xri_max,
 		  lpfc_sli4_get_els_iocb_cnt(phba));
 	if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-		goto rcu_unlock_buf_done;
+		goto buffer_done;
 
 	/* Port state is only one of two values for now. */
 	if (localport->port_id)
@@ -371,15 +369,17 @@
 		  wwn_to_u64(vport->fc_nodename.u.wwn),
 		  localport->port_id, statep);
 	if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-		goto rcu_unlock_buf_done;
+		goto buffer_done;
+
+	spin_lock_irq(shost->host_lock);
 
 	list_for_each_entry(ndlp, &vport->fc_nodes, nlp_listp) {
 		nrport = NULL;
-		spin_lock_irqsave(&vport->phba->hbalock, iflags);
+		spin_lock(&vport->phba->hbalock);
 		rport = lpfc_ndlp_get_nrport(ndlp);
 		if (rport)
 			nrport = rport->remoteport;
-		spin_unlock_irqrestore(&vport->phba->hbalock, iflags);
+		spin_unlock(&vport->phba->hbalock);
 		if (!nrport)
 			continue;
 
@@ -398,39 +398,39 @@
 
 		/* Tab in to show lport ownership. */
 		if (strlcat(buf, "NVME RPORT       ", PAGE_SIZE) >= PAGE_SIZE)
-			goto rcu_unlock_buf_done;
+			goto unlock_buf_done;
 		if (phba->brd_no >= 10) {
 			if (strlcat(buf, " ", PAGE_SIZE) >= PAGE_SIZE)
-				goto rcu_unlock_buf_done;
+				goto unlock_buf_done;
 		}
 
 		scnprintf(tmp, sizeof(tmp), "WWPN x%llx ",
 			  nrport->port_name);
 		if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-			goto rcu_unlock_buf_done;
+			goto unlock_buf_done;
 
 		scnprintf(tmp, sizeof(tmp), "WWNN x%llx ",
 			  nrport->node_name);
 		if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-			goto rcu_unlock_buf_done;
+			goto unlock_buf_done;
 
 		scnprintf(tmp, sizeof(tmp), "DID x%06x ",
 			  nrport->port_id);
 		if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-			goto rcu_unlock_buf_done;
+			goto unlock_buf_done;
 
 		/* An NVME rport can have multiple roles. */
 		if (nrport->port_role & FC_PORT_ROLE_NVME_INITIATOR) {
 			if (strlcat(buf, "INITIATOR ", PAGE_SIZE) >= PAGE_SIZE)
-				goto rcu_unlock_buf_done;
+				goto unlock_buf_done;
 		}
 		if (nrport->port_role & FC_PORT_ROLE_NVME_TARGET) {
 			if (strlcat(buf, "TARGET ", PAGE_SIZE) >= PAGE_SIZE)
-				goto rcu_unlock_buf_done;
+				goto unlock_buf_done;
 		}
 		if (nrport->port_role & FC_PORT_ROLE_NVME_DISCOVERY) {
 			if (strlcat(buf, "DISCSRVC ", PAGE_SIZE) >= PAGE_SIZE)
-				goto rcu_unlock_buf_done;
+				goto unlock_buf_done;
 		}
 		if (nrport->port_role & ~(FC_PORT_ROLE_NVME_INITIATOR |
 					  FC_PORT_ROLE_NVME_TARGET |
@@ -438,14 +438,14 @@
 			scnprintf(tmp, sizeof(tmp), "UNKNOWN ROLE x%x",
 				  nrport->port_role);
 			if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-				goto rcu_unlock_buf_done;
+				goto unlock_buf_done;
 		}
 
 		scnprintf(tmp, sizeof(tmp), "%s\n", statep);
 		if (strlcat(buf, tmp, PAGE_SIZE) >= PAGE_SIZE)
-			goto rcu_unlock_buf_done;
+			goto unlock_buf_done;
 	}
-	rcu_read_unlock();
+	spin_unlock_irq(shost->host_lock);
 
 	if (!lport)
 		goto buffer_done;
@@ -505,11 +505,11 @@
 		  atomic_read(&lport->cmpl_fcp_err));
 	strlcat(buf, tmp, PAGE_SIZE);
 
-	/* RCU is already unlocked. */
+	/* host_lock is already unlocked. */
 	goto buffer_done;
 
- rcu_unlock_buf_done:
-	rcu_read_unlock();
+ unlock_buf_done:
+	spin_unlock_irq(shost->host_lock);
 
  buffer_done:
 	len = strnlen(buf, PAGE_SIZE);
@@ -1475,8 +1475,9 @@
 	int i;
 
 	msleep(100);
-	lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr,
-		   &portstat_reg.word0);
+	if (lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr,
+		       &portstat_reg.word0))
+		return -EIO;
 
 	/* verify if privileged for the request operation */
 	if (!bf_get(lpfc_sliport_status_rn, &portstat_reg) &&
@@ -1486,8 +1487,9 @@
 	/* wait for the SLI port firmware ready after firmware reset */
 	for (i = 0; i < LPFC_FW_RESET_MAXIMUM_WAIT_10MS_CNT; i++) {
 		msleep(10);
-		lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr,
-			   &portstat_reg.word0);
+		if (lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr,
+			       &portstat_reg.word0))
+			continue;
 		if (!bf_get(lpfc_sliport_status_err, &portstat_reg))
 			continue;
 		if (!bf_get(lpfc_sliport_status_rn, &portstat_reg))
@@ -1642,7 +1644,7 @@
 {
 	LPFC_MBOXQ_t *mbox = NULL;
 	unsigned long val = 0;
-	char *pval = 0;
+	char *pval = NULL;
 	int rc = 0;
 
 	if (!strncmp("enable", buff_out,
@@ -3533,6 +3535,31 @@
 LPFC_ATTR_R(suppress_link_up, LPFC_INITIALIZE_LINK, LPFC_INITIALIZE_LINK,
 		LPFC_DELAY_INIT_LINK_INDEFINITELY,
 		"Suppress Link Up at initialization");
+
+static ssize_t
+lpfc_pls_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	struct Scsi_Host  *shost = class_to_shost(dev);
+	struct lpfc_hba   *phba = ((struct lpfc_vport *)shost->hostdata)->phba;
+
+	return scnprintf(buf, PAGE_SIZE, "%d\n",
+			 phba->sli4_hba.pc_sli4_params.pls);
+}
+static DEVICE_ATTR(pls, 0444,
+			 lpfc_pls_show, NULL);
+
+static ssize_t
+lpfc_pt_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	struct Scsi_Host  *shost = class_to_shost(dev);
+	struct lpfc_hba   *phba = ((struct lpfc_vport *)shost->hostdata)->phba;
+
+	return scnprintf(buf, PAGE_SIZE, "%d\n",
+			 (phba->hba_flag & HBA_PERSISTENT_TOPO) ? 1 : 0);
+}
+static DEVICE_ATTR(pt, 0444,
+			 lpfc_pt_show, NULL);
+
 /*
 # lpfc_cnt: Number of IOCBs allocated for ELS, CT, and ABTS
 #       1 - (1024)
@@ -3580,9 +3607,6 @@
 static DEVICE_ATTR(txcmplq_hw, S_IRUGO,
 			 lpfc_txcmplq_hw_show, NULL);
 
-LPFC_ATTR_R(iocb_cnt, 2, 1, 5,
-	"Number of IOCBs alloc for ELS, CT, and ABTS: 1k to 5k IOCBs");
-
 /*
 # lpfc_nodev_tmo: If set, it will hold all I/O errors on devices that disappear
 # until the timer expires. Value range is [0,255]. Default value is 30.
@@ -3845,9 +3869,6 @@
 /*
 # lun_queue_depth:  This parameter is used to limit the number of outstanding
 # commands per FCP LUN. Value range is [1,512]. Default value is 30.
-# If this parameter value is greater than 1/8th the maximum number of exchanges
-# supported by the HBA port, then the lun queue depth will be reduced to
-# 1/8th the maximum number of exchanges.
 */
 LPFC_VPORT_ATTR_R(lun_queue_depth, 30, 1, 512,
 		  "Max number of FCP commands we can queue to a specific LUN");
@@ -4096,8 +4117,16 @@
 				val);
 			return -EINVAL;
 		}
-		if ((phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
-		     phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) &&
+		/*
+		 * The 'topology' is not a configurable parameter if :
+		 *   - persistent topology enabled
+		 *   - G7/G6 with no private loop support
+		 */
+
+		if ((phba->hba_flag & HBA_PERSISTENT_TOPO ||
+		     (!phba->sli4_hba.pc_sli4_params.pls &&
+		     (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
+		     phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC))) &&
 		    val == 4) {
 			lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
 				"3114 Loop mode not supported\n");
@@ -5298,7 +5327,7 @@
 			len += scnprintf(buf + len, PAGE_SIZE - len,
 					"CPU %02d not present\n",
 					phba->sli4_hba.curr_disp_cpu);
-		else if (cpup->irq == LPFC_VECTOR_MAP_EMPTY) {
+		else if (cpup->eq == LPFC_VECTOR_MAP_EMPTY) {
 			if (cpup->hdwq == LPFC_VECTOR_MAP_EMPTY)
 				len += scnprintf(
 					buf + len, PAGE_SIZE - len,
@@ -5311,10 +5340,10 @@
 			else
 				len += scnprintf(
 					buf + len, PAGE_SIZE - len,
-					"CPU %02d EQ %04d hdwq %04d "
+					"CPU %02d EQ None hdwq %04d "
 					"physid %d coreid %d ht %d ua %d\n",
 					phba->sli4_hba.curr_disp_cpu,
-					cpup->eq, cpup->hdwq, cpup->phys_id,
+					cpup->hdwq, cpup->phys_id,
 					cpup->core_id,
 					(cpup->flag & LPFC_CPU_MAP_HYPER),
 					(cpup->flag & LPFC_CPU_MAP_UNASSIGN));
@@ -5329,7 +5358,7 @@
 					cpup->core_id,
 					(cpup->flag & LPFC_CPU_MAP_HYPER),
 					(cpup->flag & LPFC_CPU_MAP_UNASSIGN),
-					cpup->irq);
+					lpfc_get_irq(cpup->eq));
 			else
 				len += scnprintf(
 					buf + len, PAGE_SIZE - len,
@@ -5340,7 +5369,7 @@
 					cpup->core_id,
 					(cpup->flag & LPFC_CPU_MAP_HYPER),
 					(cpup->flag & LPFC_CPU_MAP_UNASSIGN),
-					cpup->irq);
+					lpfc_get_irq(cpup->eq));
 		}
 
 		phba->sli4_hba.curr_disp_cpu++;
@@ -5711,7 +5740,7 @@
  * the driver will advertise it supports to the SCSI layer.
  *
  *      0    = Set nr_hw_queues by the number of CPUs or HW queues.
- *      1,128 = Manually specify the maximum nr_hw_queue value to be set,
+ *      1,256 = Manually specify nr_hw_queue value to be advertised,
  *
  * Value range is [0,256]. Default value is 8.
  */
@@ -5729,30 +5758,130 @@
  * A hardware IO queue maps (qidx) to a specific driver CQ/WQ.
  *
  *      0    = Configure the number of hdw queues to the number of active CPUs.
- *      1,128 = Manually specify how many hdw queues to use.
+ *      1,256 = Manually specify how many hdw queues to use.
  *
- * Value range is [0,128]. Default value is 0.
+ * Value range is [0,256]. Default value is 0.
  */
 LPFC_ATTR_R(hdw_queue,
 	    LPFC_HBA_HDWQ_DEF,
 	    LPFC_HBA_HDWQ_MIN, LPFC_HBA_HDWQ_MAX,
 	    "Set the number of I/O Hardware Queues");
 
+static inline void
+lpfc_assign_default_irq_numa(struct lpfc_hba *phba)
+{
+#if IS_ENABLED(CONFIG_X86)
+	/* If AMD architecture, then default is LPFC_IRQ_CHANN_NUMA */
+	if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+		phba->cfg_irq_numa = 1;
+	else
+		phba->cfg_irq_numa = 0;
+#else
+	phba->cfg_irq_numa = 0;
+#endif
+}
+
 /*
  * lpfc_irq_chann: Set the number of IRQ vectors that are available
  * for Hardware Queues to utilize.  This also will map to the number
  * of EQ / MSI-X vectors the driver will create. This should never be
  * more than the number of Hardware Queues
  *
- *      0     = Configure number of IRQ Channels to the number of active CPUs.
- *      1,128 = Manually specify how many IRQ Channels to use.
+ *	0		= Configure number of IRQ Channels to:
+ *			  if AMD architecture, number of CPUs on HBA's NUMA node
+ *			  otherwise, number of active CPUs.
+ *	[1,256]		= Manually specify how many IRQ Channels to use.
  *
- * Value range is [0,128]. Default value is 0.
+ * Value range is [0,256]. Default value is [0].
  */
-LPFC_ATTR_R(irq_chann,
-	    LPFC_HBA_HDWQ_DEF,
-	    LPFC_HBA_HDWQ_MIN, LPFC_HBA_HDWQ_MAX,
-	    "Set the number of I/O IRQ Channels");
+static uint lpfc_irq_chann = LPFC_IRQ_CHANN_DEF;
+module_param(lpfc_irq_chann, uint, 0444);
+MODULE_PARM_DESC(lpfc_irq_chann, "Set number of interrupt vectors to allocate");
+
+/* lpfc_irq_chann_init - Set the hba irq_chann initial value
+ * @phba: lpfc_hba pointer.
+ * @val: contains the initial value
+ *
+ * Description:
+ * Validates the initial value is within range and assigns it to the
+ * adapter. If not in range, an error message is posted and the
+ * default value is assigned.
+ *
+ * Returns:
+ * zero if value is in range and is set
+ * -EINVAL if value was out of range
+ **/
+static int
+lpfc_irq_chann_init(struct lpfc_hba *phba, uint32_t val)
+{
+	const struct cpumask *numa_mask;
+
+	if (phba->cfg_use_msi != 2) {
+		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
+				"8532 use_msi = %u ignoring cfg_irq_numa\n",
+				phba->cfg_use_msi);
+		phba->cfg_irq_numa = 0;
+		phba->cfg_irq_chann = LPFC_IRQ_CHANN_MIN;
+		return 0;
+	}
+
+	/* Check if default setting was passed */
+	if (val == LPFC_IRQ_CHANN_DEF)
+		lpfc_assign_default_irq_numa(phba);
+
+	if (phba->cfg_irq_numa) {
+		numa_mask = &phba->sli4_hba.numa_mask;
+
+		if (cpumask_empty(numa_mask)) {
+			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
+					"8533 Could not identify NUMA node, "
+					"ignoring cfg_irq_numa\n");
+			phba->cfg_irq_numa = 0;
+			phba->cfg_irq_chann = LPFC_IRQ_CHANN_MIN;
+		} else {
+			phba->cfg_irq_chann = cpumask_weight(numa_mask);
+			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
+					"8543 lpfc_irq_chann set to %u "
+					"(numa)\n", phba->cfg_irq_chann);
+		}
+	} else {
+		if (val > LPFC_IRQ_CHANN_MAX) {
+			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
+					"8545 lpfc_irq_chann attribute cannot "
+					"be set to %u, allowed range is "
+					"[%u,%u]\n",
+					val,
+					LPFC_IRQ_CHANN_MIN,
+					LPFC_IRQ_CHANN_MAX);
+			phba->cfg_irq_chann = LPFC_IRQ_CHANN_MIN;
+			return -EINVAL;
+		}
+		phba->cfg_irq_chann = val;
+	}
+
+	return 0;
+}
+
+/**
+ * lpfc_irq_chann_show - Display value of irq_chann
+ * @dev: class converted to a Scsi_host structure.
+ * @attr: device attribute, not used.
+ * @buf: on return contains a string with the list sizes
+ *
+ * Returns: size of formatted string.
+ **/
+static ssize_t
+lpfc_irq_chann_show(struct device *dev, struct device_attribute *attr,
+		    char *buf)
+{
+	struct Scsi_Host *shost = class_to_shost(dev);
+	struct lpfc_vport *vport = (struct lpfc_vport *)shost->hostdata;
+	struct lpfc_hba *phba = vport->phba;
+
+	return scnprintf(buf, PAGE_SIZE, "%u\n", phba->cfg_irq_chann);
+}
+
+static DEVICE_ATTR_RO(lpfc_irq_chann);
 
 /*
 # lpfc_enable_hba_reset: Allow or prevent HBA resets to the hardware.
@@ -5933,7 +6062,53 @@
  *	[1-4] = Multiple of 1/4th Mb of host memory for FW logging
  * Value range [0..4]. Default value is 0
  */
-LPFC_ATTR_RW(ras_fwlog_buffsize, 0, 0, 4, "Host memory for FW logging");
+LPFC_ATTR(ras_fwlog_buffsize, 0, 0, 4, "Host memory for FW logging");
+lpfc_param_show(ras_fwlog_buffsize);
+
+static ssize_t
+lpfc_ras_fwlog_buffsize_set(struct lpfc_hba  *phba, uint val)
+{
+	int ret = 0;
+	enum ras_state state;
+
+	if (!lpfc_rangecheck(val, 0, 4))
+		return -EINVAL;
+
+	if (phba->cfg_ras_fwlog_buffsize == val)
+		return 0;
+
+	if (phba->cfg_ras_fwlog_func != PCI_FUNC(phba->pcidev->devfn))
+		return -EINVAL;
+
+	spin_lock_irq(&phba->hbalock);
+	state = phba->ras_fwlog.state;
+	spin_unlock_irq(&phba->hbalock);
+
+	if (state == REG_INPROGRESS) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_SLI, "6147 RAS Logging "
+				"registration is in progress\n");
+		return -EBUSY;
+	}
+
+	/* For disable logging: stop the logs and free the DMA.
+	 * For ras_fwlog_buffsize size change we still need to free and
+	 * reallocate the DMA in lpfc_sli4_ras_fwlog_init.
+	 */
+	phba->cfg_ras_fwlog_buffsize = val;
+	if (state == ACTIVE) {
+		lpfc_ras_stop_fwlog(phba);
+		lpfc_sli4_ras_dma_free(phba);
+	}
+
+	lpfc_sli4_ras_init(phba);
+	if (phba->ras_fwlog.ras_enabled)
+		ret = lpfc_sli4_ras_fwlog_init(phba, phba->cfg_ras_fwlog_level,
+					       LPFC_RAS_ENABLE_LOGGING);
+	return ret;
+}
+
+lpfc_param_store(ras_fwlog_buffsize);
+static DEVICE_ATTR_RW(lpfc_ras_fwlog_buffsize);
 
 /*
  * lpfc_ras_fwlog_level: Firmware logging verbosity level
@@ -6071,8 +6246,9 @@
 	&dev_attr_lpfc_sriov_nr_virtfn,
 	&dev_attr_lpfc_req_fw_upgrade,
 	&dev_attr_lpfc_suppress_link_up,
-	&dev_attr_lpfc_iocb_cnt,
 	&dev_attr_iocb_hw,
+	&dev_attr_pls,
+	&dev_attr_pt,
 	&dev_attr_txq_hw,
 	&dev_attr_txcmplq_hw,
 	&dev_attr_lpfc_fips_level,
@@ -7085,11 +7261,22 @@
 static void
 lpfc_get_hba_function_mode(struct lpfc_hba *phba)
 {
-	/* If it's a SkyHawk FCoE adapter */
-	if (phba->pcidev->device == PCI_DEVICE_ID_SKYHAWK)
+	/* If the adapter supports FCoE mode */
+	switch (phba->pcidev->device) {
+	case PCI_DEVICE_ID_SKYHAWK:
+	case PCI_DEVICE_ID_SKYHAWK_VF:
+	case PCI_DEVICE_ID_LANCER_FCOE:
+	case PCI_DEVICE_ID_LANCER_FCOE_VF:
+	case PCI_DEVICE_ID_ZEPHYR_DCSP:
+	case PCI_DEVICE_ID_HORNET:
+	case PCI_DEVICE_ID_TIGERSHARK:
+	case PCI_DEVICE_ID_TOMCAT:
 		phba->hba_flag |= HBA_FCOE_MODE;
-	else
+		break;
+	default:
+	/* for others, clear the flag */
 		phba->hba_flag &= ~HBA_FCOE_MODE;
+	}
 }
 
 /**
@@ -7099,6 +7286,7 @@
 void
 lpfc_get_cfgparam(struct lpfc_hba *phba)
 {
+	lpfc_hba_log_verbose_init(phba, lpfc_log_verbose);
 	lpfc_fcp_io_sched_init(phba, lpfc_fcp_io_sched);
 	lpfc_ns_query_init(phba, lpfc_ns_query);
 	lpfc_fcp2_no_tgt_reset_init(phba, lpfc_fcp2_no_tgt_reset);
@@ -7205,12 +7393,10 @@
 	phba->cfg_soft_wwpn = 0L;
 	lpfc_sg_seg_cnt_init(phba, lpfc_sg_seg_cnt);
 	lpfc_hba_queue_depth_init(phba, lpfc_hba_queue_depth);
-	lpfc_hba_log_verbose_init(phba, lpfc_log_verbose);
 	lpfc_aer_support_init(phba, lpfc_aer_support);
 	lpfc_sriov_nr_virtfn_init(phba, lpfc_sriov_nr_virtfn);
 	lpfc_request_firmware_upgrade_init(phba, lpfc_req_fw_upgrade);
 	lpfc_suppress_link_up_init(phba, lpfc_suppress_link_up);
-	lpfc_iocb_cnt_init(phba, lpfc_iocb_cnt);
 	lpfc_delay_discovery_init(phba, lpfc_delay_discovery);
 	lpfc_sli_mode_init(phba, lpfc_sli_mode);
 	phba->cfg_enable_dss = 1;
@@ -7256,11 +7442,11 @@
 		}
 
 		if (!phba->cfg_nvmet_mrq)
-			phba->cfg_nvmet_mrq = phba->cfg_irq_chann;
+			phba->cfg_nvmet_mrq = phba->cfg_hdw_queue;
 
 		/* Adjust lpfc_nvmet_mrq to avoid running out of WQE slots */
-		if (phba->cfg_nvmet_mrq > phba->cfg_irq_chann) {
-			phba->cfg_nvmet_mrq = phba->cfg_irq_chann;
+		if (phba->cfg_nvmet_mrq > phba->cfg_hdw_queue) {
+			phba->cfg_nvmet_mrq = phba->cfg_hdw_queue;
 			lpfc_printf_log(phba, KERN_ERR, LOG_NVME_DISC,
 					"6018 Adjust lpfc_nvmet_mrq to %d\n",
 					phba->cfg_nvmet_mrq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_bsg.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_bsg.c
@@ -4489,12 +4489,6 @@
 	phba->mbox_ext_buf_ctx.seqNum++;
 	nemb_tp = phba->mbox_ext_buf_ctx.nembType;
 
-	dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
-	if (!dd_data) {
-		rc = -ENOMEM;
-		goto job_error;
-	}
-
 	pbuf = (uint8_t *)dmabuf->virt;
 	size = job->request_payload.payload_len;
 	sg_copy_to_buffer(job->request_payload.sg_list,
@@ -4531,6 +4525,13 @@
 				"2968 SLI_CONFIG ext-buffer wr all %d "
 				"ebuffers received\n",
 				phba->mbox_ext_buf_ctx.numBuf);
+
+		dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+		if (!dd_data) {
+			rc = -ENOMEM;
+			goto job_error;
+		}
+
 		/* mailbox command structure for base driver */
 		pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
 		if (!pmboxq) {
@@ -4579,6 +4580,8 @@
 	return SLI_CONFIG_HANDLED;
 
 job_error:
+	if (pmboxq)
+		mempool_free(pmboxq, phba->mbox_mem_pool);
 	lpfc_bsg_dma_page_free(phba, dmabuf);
 	kfree(dd_data);
 
@@ -5435,10 +5438,12 @@
 		bsg_reply->reply_data.vendor_reply.vendor_rsp;
 
 	/* Current logging state */
-	if (ras_fwlog->ras_active == true)
+	spin_lock_irq(&phba->hbalock);
+	if (ras_fwlog->state == ACTIVE)
 		ras_reply->state = LPFC_RASLOG_STATE_RUNNING;
 	else
 		ras_reply->state = LPFC_RASLOG_STATE_STOPPED;
+	spin_unlock_irq(&phba->hbalock);
 
 	ras_reply->log_level = phba->ras_fwlog.fw_loglevel;
 	ras_reply->log_buff_sz = phba->cfg_ras_fwlog_buffsize;
@@ -5495,10 +5500,13 @@
 
 	if (action == LPFC_RASACTION_STOP_LOGGING) {
 		/* Check if already disabled */
-		if (ras_fwlog->ras_active == false) {
+		spin_lock_irq(&phba->hbalock);
+		if (ras_fwlog->state != ACTIVE) {
+			spin_unlock_irq(&phba->hbalock);
 			rc = -ESRCH;
 			goto ras_job_error;
 		}
+		spin_unlock_irq(&phba->hbalock);
 
 		/* Disable logging */
 		lpfc_ras_stop_fwlog(phba);
@@ -5509,8 +5517,10 @@
 		 * FW-logging with new log-level. Return status
 		 * "Logging already Running" to caller.
 		 **/
-		if (ras_fwlog->ras_active)
+		spin_lock_irq(&phba->hbalock);
+		if (ras_fwlog->state != INACTIVE)
 			action_status = -EINPROGRESS;
+		spin_unlock_irq(&phba->hbalock);
 
 		/* Enable logging */
 		rc = lpfc_sli4_ras_fwlog_init(phba, log_level,
@@ -5626,10 +5636,13 @@
 		goto ras_job_error;
 
 	/* Logging to be stopped before reading */
-	if (ras_fwlog->ras_active == true) {
+	spin_lock_irq(&phba->hbalock);
+	if (ras_fwlog->state == ACTIVE) {
+		spin_unlock_irq(&phba->hbalock);
 		rc = -EINPROGRESS;
 		goto ras_job_error;
 	}
+	spin_unlock_irq(&phba->hbalock);
 
 	if (job->request_len <
 	    sizeof(struct fc_bsg_request) +
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_crtn.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_crtn.h
@@ -140,9 +140,10 @@
 int lpfc_issue_els_adisc(struct lpfc_vport *, struct lpfc_nodelist *, uint8_t);
 int lpfc_issue_els_logo(struct lpfc_vport *, struct lpfc_nodelist *, uint8_t);
 int lpfc_issue_els_npiv_logo(struct lpfc_vport *, struct lpfc_nodelist *);
-int lpfc_issue_els_scr(struct lpfc_vport *, uint32_t, uint8_t);
+int lpfc_issue_els_scr(struct lpfc_vport *vport, uint8_t retry);
 int lpfc_issue_els_rscn(struct lpfc_vport *vport, uint8_t retry);
 int lpfc_issue_fabric_reglogin(struct lpfc_vport *);
+int lpfc_issue_els_rdf(struct lpfc_vport *vport, uint8_t retry);
 int lpfc_els_free_iocb(struct lpfc_hba *, struct lpfc_iocbq *);
 int lpfc_ct_free_iocb(struct lpfc_hba *, struct lpfc_iocbq *);
 int lpfc_els_rsp_acc(struct lpfc_vport *, uint32_t, struct lpfc_iocbq *,
@@ -180,7 +181,7 @@
 int lpfc_get_gidft_type(struct lpfc_vport *vport, struct lpfc_iocbq *iocbq);
 int lpfc_ns_cmd(struct lpfc_vport *, int, uint8_t, uint32_t);
 int lpfc_fdmi_cmd(struct lpfc_vport *, struct lpfc_nodelist *, int, uint32_t);
-void lpfc_fdmi_num_disc_check(struct lpfc_vport *);
+void lpfc_fdmi_change_check(struct lpfc_vport *vport);
 void lpfc_delayed_disc_tmo(struct timer_list *);
 void lpfc_delayed_disc_timeout_handler(struct lpfc_vport *);
 
@@ -215,6 +216,12 @@
 irqreturn_t lpfc_sli4_intr_handler(int, void *);
 irqreturn_t lpfc_sli4_hba_intr_handler(int, void *);
 
+void lpfc_sli4_cleanup_poll_list(struct lpfc_hba *phba);
+int lpfc_sli4_poll_eq(struct lpfc_queue *q, uint8_t path);
+void lpfc_sli4_poll_hbtimer(struct timer_list *t);
+void lpfc_sli4_start_polling(struct lpfc_queue *q);
+void lpfc_sli4_stop_polling(struct lpfc_queue *q);
+
 void lpfc_read_rev(struct lpfc_hba *, LPFC_MBOXQ_t *);
 void lpfc_sli4_swap_str(struct lpfc_hba *, LPFC_MBOXQ_t *);
 void lpfc_config_ring(struct lpfc_hba *, int, LPFC_MBOXQ_t *);
@@ -586,6 +593,7 @@
 void lpfc_nvme_cmd_template(void);
 void lpfc_nvmet_cmd_template(void);
 void lpfc_nvme_cancel_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn);
+void lpfc_nvme_prep_abort_wqe(struct lpfc_iocbq *pwqeq, u16 xritag, u8 opt);
 extern int lpfc_enable_nvmet_cnt;
 extern unsigned long long lpfc_enable_nvmet[];
 extern int lpfc_no_hba_reset_cnt;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_ct.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_ct.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -462,7 +462,6 @@
 	struct lpfc_nodelist *ndlp;
 
 	if ((vport->port_type != LPFC_NPIV_PORT) ||
-	    (fc4_type == FC_TYPE_FCP) ||
 	    !(vport->ct_flags & FC_CT_RFF_ID) || !vport->cfg_restrict_login) {
 
 		ndlp = lpfc_setup_disc_node(vport, Did);
@@ -763,9 +762,11 @@
 		    cpu_to_be16(SLI_CT_RESPONSE_FS_ACC)) {
 			lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
 					 "0208 NameServer Rsp Data: x%x x%x "
-					 "sz x%x\n",
+					 "x%x x%x sz x%x\n",
 					 vport->fc_flag,
 					 CTreq->un.gid.Fc4Type,
+					 vport->num_disc_nodes,
+					 vport->gidft_inp,
 					 irsp->un.genreq64.bdl.bdeSize);
 
 			lpfc_ns_rsp(vport,
@@ -961,9 +962,13 @@
 		if (CTrsp->CommandResponse.bits.CmdRsp ==
 		    cpu_to_be16(SLI_CT_RESPONSE_FS_ACC)) {
 			lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
-					 "4105 NameServer Rsp Data: x%x x%x\n",
+					 "4105 NameServer Rsp Data: x%x x%x "
+					 "x%x x%x sz x%x\n",
 					 vport->fc_flag,
-					 CTreq->un.gid.Fc4Type);
+					 CTreq->un.gid.Fc4Type,
+					 vport->num_disc_nodes,
+					 vport->gidft_inp,
+					 irsp->un.genreq64.bdl.bdeSize);
 
 			lpfc_ns_rsp(vport,
 				    outp,
@@ -1025,6 +1030,11 @@
 		}
 		vport->gidft_inp--;
 	}
+
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+			 "6450 GID_PT cmpl inp %d disc %d\n",
+			 vport->gidft_inp, vport->num_disc_nodes);
+
 	/* Link up / RSCN discovery */
 	if ((vport->num_disc_nodes == 0) &&
 	    (vport->gidft_inp == 0)) {
@@ -1159,6 +1169,11 @@
 	/* Link up / RSCN discovery */
 	if (vport->num_disc_nodes)
 		vport->num_disc_nodes--;
+
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+			 "6451 GFF_ID cmpl inp %d disc %d\n",
+			 vport->gidft_inp, vport->num_disc_nodes);
+
 	if (vport->num_disc_nodes == 0) {
 		/*
 		 * The driver has cycled through all Nports in the RSCN payload.
@@ -1477,33 +1492,35 @@
 lpfc_vport_symbolic_node_name(struct lpfc_vport *vport, char *symbol,
 	size_t size)
 {
-	char fwrev[FW_REV_STR_SIZE];
-	int n;
+	char fwrev[FW_REV_STR_SIZE] = {0};
+	char tmp[MAXHOSTNAMELEN] = {0};
 
-	lpfc_decode_firmware_rev(vport->phba, fwrev, 0);
+	memset(symbol, 0, size);
+
+	scnprintf(tmp, sizeof(tmp), "Emulex %s", vport->phba->ModelName);
+	if (strlcat(symbol, tmp, size) >= size)
+		goto buffer_done;
 
-	n = scnprintf(symbol, size, "Emulex %s", vport->phba->ModelName);
-	if (size < n)
-		return n;
-
-	n += scnprintf(symbol + n, size - n, " FV%s", fwrev);
-	if (size < n)
-		return n;
-
-	n += scnprintf(symbol + n, size - n, " DV%s.",
-		      lpfc_release_version);
-	if (size < n)
-		return n;
-
-	n += scnprintf(symbol + n, size - n, " HN:%s.",
-		      init_utsname()->nodename);
-	if (size < n)
-		return n;
+	lpfc_decode_firmware_rev(vport->phba, fwrev, 0);
+	scnprintf(tmp, sizeof(tmp), " FV%s", fwrev);
+	if (strlcat(symbol, tmp, size) >= size)
+		goto buffer_done;
+
+	scnprintf(tmp, sizeof(tmp), " DV%s", lpfc_release_version);
+	if (strlcat(symbol, tmp, size) >= size)
+		goto buffer_done;
+
+	scnprintf(tmp, sizeof(tmp), " HN:%s", vport->phba->os_host_name);
+	if (strlcat(symbol, tmp, size) >= size)
+		goto buffer_done;
 
 	/* Note :- OS name is "Linux" */
-	n += scnprintf(symbol + n, size - n, " OS:%s",
-		      init_utsname()->sysname);
-	return n;
+	scnprintf(tmp, sizeof(tmp), " OS:%s", init_utsname()->sysname);
+	strlcat(symbol, tmp, size);
+
+buffer_done:
+	return strnlen(symbol, size);
+
 }
 
 static uint32_t
@@ -1868,6 +1885,12 @@
 		if (irsp->ulpStatus == IOSTAT_LOCAL_REJECT) {
 			switch ((irsp->un.ulpWord[4] & IOERR_PARAM_MASK)) {
 			case IOERR_SLI_ABORTED:
+			case IOERR_SLI_DOWN:
+				/* Driver aborted this IO.  No retry as error
+				 * is likely Offline->Online or some adapter
+				 * error.  Recovery will try again.
+				 */
+				break;
 			case IOERR_ABORT_IN_PROGRESS:
 			case IOERR_SEQUENCE_TIMEOUT:
 			case IOERR_ILLEGAL_FRAME:
@@ -1976,14 +1999,16 @@
 
 
 /**
- * lpfc_fdmi_num_disc_check - Check how many mapped NPorts we are connected to
+ * lpfc_fdmi_change_check - Check for changed FDMI parameters
  * @vport: pointer to a host virtual N_Port data structure.
  *
- * Called from hbeat timeout routine to check if the number of discovered
- * ports has changed. If so, re-register thar port Attribute.
+ * Check how many mapped NPorts we are connected to
+ * Check if our hostname changed
+ * Called from hbeat timeout routine to check if any FDMI parameters
+ * changed. If so, re-register those Attributes.
  */
 void
-lpfc_fdmi_num_disc_check(struct lpfc_vport *vport)
+lpfc_fdmi_change_check(struct lpfc_vport *vport)
 {
 	struct lpfc_hba *phba = vport->phba;
 	struct lpfc_nodelist *ndlp;
@@ -1996,17 +2021,41 @@
 	if (!(vport->fc_flag & FC_FABRIC))
 		return;
 
+	ndlp = lpfc_findnode_did(vport, FDMI_DID);
+	if (!ndlp || !NLP_CHK_NODE_ACT(ndlp))
+		return;
+
+	/* Check if system hostname changed */
+	if (strcmp(phba->os_host_name, init_utsname()->nodename)) {
+		memset(phba->os_host_name, 0, sizeof(phba->os_host_name));
+		scnprintf(phba->os_host_name, sizeof(phba->os_host_name), "%s",
+			  init_utsname()->nodename);
+		lpfc_ns_cmd(vport, SLI_CTNS_RSNN_NN, 0, 0);
+
+		/* Since this effects multiple HBA and PORT attributes, we need
+		 * de-register and go thru the whole FDMI registration cycle.
+		 * DHBA -> DPRT -> RHBA -> RPA  (physical port)
+		 * DPRT -> RPRT (vports)
+		 */
+		if (vport->port_type == LPFC_PHYSICAL_PORT)
+			lpfc_fdmi_cmd(vport, ndlp, SLI_MGMT_DHBA, 0);
+		else
+			lpfc_fdmi_cmd(vport, ndlp, SLI_MGMT_DPRT, 0);
+
+		/* Since this code path registers all the port attributes
+		 * we can just return without further checking.
+		 */
+		return;
+	}
+
 	if (!(vport->fdmi_port_mask & LPFC_FDMI_PORT_ATTR_num_disc))
 		return;
 
+	/* Check if the number of mapped NPorts changed */
 	cnt = lpfc_find_map_node(vport);
 	if (cnt == vport->fdmi_num_disc)
 		return;
 
-	ndlp = lpfc_findnode_did(vport, FDMI_DID);
-	if (!ndlp || !NLP_CHK_NODE_ACT(ndlp))
-		return;
-
 	if (vport->port_type == LPFC_PHYSICAL_PORT) {
 		lpfc_fdmi_cmd(vport, ndlp, SLI_MGMT_RPA,
 			      LPFC_FDMI_PORT_ATTR_num_disc);
@@ -2023,8 +2072,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, sizeof(struct lpfc_name));
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	memcpy(&ae->un.AttrWWN, &vport->fc_sparam.nodeName,
 	       sizeof(struct lpfc_name));
@@ -2040,8 +2089,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	/* This string MUST be consistent with other FC platforms
 	 * supported by Broadcom.
@@ -2065,8 +2114,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, phba->SerialNumber,
 		sizeof(ae->un.AttrString));
@@ -2087,8 +2136,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, phba->ModelName,
 		sizeof(ae->un.AttrString));
@@ -2108,8 +2157,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, phba->ModelDesc,
 		sizeof(ae->un.AttrString));
@@ -2131,8 +2180,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t i, j, incr, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	/* Convert JEDEC ID to ascii for hardware version */
 	incr = vp->rev.biuRev;
@@ -2161,8 +2210,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, lpfc_release_version,
 		sizeof(ae->un.AttrString));
@@ -2183,8 +2232,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	if (phba->sli_rev == LPFC_SLI_REV4)
 		lpfc_decode_firmware_rev(phba, ae->un.AttrString, 1);
@@ -2208,8 +2257,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	lpfc_decode_firmware_rev(phba, ae->un.AttrString, 1);
 	len = strnlen(ae->un.AttrString,
@@ -2228,8 +2277,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	snprintf(ae->un.AttrString, sizeof(ae->un.AttrString), "%s %s %s",
 		 init_utsname()->sysname,
@@ -2251,7 +2300,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	ae->un.AttrInt =  cpu_to_be32(LPFC_MAX_CT_SIZE);
 	size = FOURBYTES + sizeof(uint32_t);
@@ -2267,8 +2316,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	len = lpfc_vport_symbolic_node_name(vport,
 				ae->un.AttrString, 256);
@@ -2286,7 +2335,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	/* Nothing is defined for this currently */
 	ae->un.AttrInt =  cpu_to_be32(0);
@@ -2303,7 +2352,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	/* Each driver instance corresponds to a single port */
 	ae->un.AttrInt =  cpu_to_be32(1);
@@ -2320,8 +2369,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, sizeof(struct lpfc_name));
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	memcpy(&ae->un.AttrWWN, &vport->fabric_nodename,
 	       sizeof(struct lpfc_name));
@@ -2339,8 +2388,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strlcat(ae->un.AttrString, phba->BIOSVersion,
 		sizeof(ae->un.AttrString));
@@ -2360,7 +2409,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	/* Driver doesn't have access to this information */
 	ae->un.AttrInt =  cpu_to_be32(0);
@@ -2377,8 +2426,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, "EMULEX",
 		sizeof(ae->un.AttrString));
@@ -2400,10 +2449,9 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 32);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
-	ae->un.AttrTypes[3] = 0x02; /* Type 0x1 - ELS */
 	ae->un.AttrTypes[2] = 0x01; /* Type 0x8 - FCP */
 	ae->un.AttrTypes[7] = 0x01; /* Type 0x20 - CT */
 
@@ -2426,7 +2474,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	ae->un.AttrInt = 0;
 	if (!(phba->hba_flag & HBA_FCOE_MODE)) {
@@ -2480,7 +2528,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	if (!(phba->hba_flag & HBA_FCOE_MODE)) {
 		switch (phba->fc_linkspeed) {
@@ -2550,7 +2598,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	hsp = (struct serv_parm *)&vport->fc_sparam;
 	ae->un.AttrInt = (((uint32_t) hsp->cmn.bbRcvSizeMsb & 0x0F) << 8) |
@@ -2570,8 +2618,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	snprintf(ae->un.AttrString, sizeof(ae->un.AttrString),
 		 "/sys/class/scsi_host/host%d", shost->host_no);
@@ -2591,11 +2639,11 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
-	snprintf(ae->un.AttrString, sizeof(ae->un.AttrString), "%s",
-		 init_utsname()->nodename);
+	scnprintf(ae->un.AttrString, sizeof(ae->un.AttrString), "%s",
+		  vport->phba->os_host_name);
 
 	len = strnlen(ae->un.AttrString, sizeof(ae->un.AttrString));
 	len += (len & 3) ? (4 - (len & 3)) : 4;
@@ -2612,8 +2660,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0,  sizeof(struct lpfc_name));
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	memcpy(&ae->un.AttrWWN, &vport->fc_sparam.nodeName,
 	       sizeof(struct lpfc_name));
@@ -2630,8 +2678,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0,  sizeof(struct lpfc_name));
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	memcpy(&ae->un.AttrWWN, &vport->fc_sparam.portName,
 	       sizeof(struct lpfc_name));
@@ -2648,8 +2696,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	len = lpfc_vport_symbolic_port_name(vport, ae->un.AttrString, 256);
 	len += (len & 3) ? (4 - (len & 3)) : 4;
@@ -2667,7 +2715,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	if (phba->fc_topology == LPFC_TOPOLOGY_LOOP)
 		ae->un.AttrInt =  cpu_to_be32(LPFC_FDMI_PORTTYPE_NLPORT);
 	else
@@ -2685,7 +2733,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	ae->un.AttrInt = cpu_to_be32(FC_COS_CLASS2 | FC_COS_CLASS3);
 	size = FOURBYTES + sizeof(uint32_t);
 	ad->AttrLen = cpu_to_be16(size);
@@ -2700,8 +2748,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0,  sizeof(struct lpfc_name));
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	memcpy(&ae->un.AttrWWN, &vport->fabric_portname,
 	       sizeof(struct lpfc_name));
@@ -2718,10 +2766,9 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 32);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
-	ae->un.AttrTypes[3] = 0x02; /* Type 0x1 - ELS */
 	ae->un.AttrTypes[2] = 0x01; /* Type 0x8 - FCP */
 	ae->un.AttrTypes[7] = 0x01; /* Type 0x20 - CT */
 
@@ -2742,7 +2789,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	/* Link Up - operational */
 	ae->un.AttrInt =  cpu_to_be32(LPFC_FDMI_PORTSTATE_ONLINE);
 	size = FOURBYTES + sizeof(uint32_t);
@@ -2758,7 +2805,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	vport->fdmi_num_disc = lpfc_find_map_node(vport);
 	ae->un.AttrInt = cpu_to_be32(vport->fdmi_num_disc);
 	size = FOURBYTES + sizeof(uint32_t);
@@ -2774,7 +2821,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	ae->un.AttrInt =  cpu_to_be32(vport->fc_myDID);
 	size = FOURBYTES + sizeof(uint32_t);
 	ad->AttrLen = cpu_to_be16(size);
@@ -2789,8 +2836,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, "Smart SAN Initiator",
 		sizeof(ae->un.AttrString));
@@ -2810,8 +2857,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	memcpy(&ae->un.AttrString, &vport->fc_sparam.nodeName,
 	       sizeof(struct lpfc_name));
@@ -2831,8 +2878,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, "Smart SAN Version 2.0",
 		sizeof(ae->un.AttrString));
@@ -2853,8 +2900,8 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t len, size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
-	memset(ae, 0, 256);
+	ae = &ad->AttrValue;
+	memset(ae, 0, sizeof(*ae));
 
 	strncpy(ae->un.AttrString, phba->ModelName,
 		sizeof(ae->un.AttrString));
@@ -2873,7 +2920,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 
 	/* SRIOV (type 3) is not supported */
 	if (vport->vpi)
@@ -2893,7 +2940,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	ae->un.AttrInt =  cpu_to_be32(0);
 	size = FOURBYTES + sizeof(uint32_t);
 	ad->AttrLen = cpu_to_be16(size);
@@ -2908,7 +2955,7 @@
 	struct lpfc_fdmi_attr_entry *ae;
 	uint32_t size;
 
-	ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
+	ae = &ad->AttrValue;
 	ae->un.AttrInt =  cpu_to_be32(1);
 	size = FOURBYTES + sizeof(uint32_t);
 	ad->AttrLen = cpu_to_be16(size);
@@ -3056,7 +3103,8 @@
 			/* Registered Port List */
 			/* One entry (port) per adapter */
 			rh->rpl.EntryCnt = cpu_to_be32(1);
-			memcpy(&rh->rpl.pe, &phba->pport->fc_sparam.portName,
+			memcpy(&rh->rpl.pe.PortName,
+			       &phba->pport->fc_sparam.portName,
 			       sizeof(struct lpfc_name));
 
 			/* point to the HBA attribute block */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_debugfs.c
@@ -31,6 +31,7 @@
 #include <linux/pci.h>
 #include <linux/spinlock.h>
 #include <linux/ctype.h>
+#include <linux/vmalloc.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_device.h>
@@ -2078,6 +2079,103 @@
 }
 #endif
 
+static int lpfc_debugfs_ras_log_data(struct lpfc_hba *phba,
+				     char *buffer, int size)
+{
+	int copied = 0;
+	struct lpfc_dmabuf *dmabuf, *next;
+
+	memset(buffer, 0, size);
+
+	spin_lock_irq(&phba->hbalock);
+	if (phba->ras_fwlog.state != ACTIVE) {
+		spin_unlock_irq(&phba->hbalock);
+		return -EINVAL;
+	}
+	spin_unlock_irq(&phba->hbalock);
+
+	list_for_each_entry_safe(dmabuf, next,
+				 &phba->ras_fwlog.fwlog_buff_list, list) {
+		/* Check if copying will go over size and a '\0' char */
+		if ((copied + LPFC_RAS_MAX_ENTRY_SIZE) >= (size - 1)) {
+			memcpy(buffer + copied, dmabuf->virt,
+			       size - copied - 1);
+			copied += size - copied - 1;
+			break;
+		}
+		memcpy(buffer + copied, dmabuf->virt, LPFC_RAS_MAX_ENTRY_SIZE);
+		copied += LPFC_RAS_MAX_ENTRY_SIZE;
+	}
+	return copied;
+}
+
+static int
+lpfc_debugfs_ras_log_release(struct inode *inode, struct file *file)
+{
+	struct lpfc_debug *debug = file->private_data;
+
+	vfree(debug->buffer);
+	kfree(debug);
+
+	return 0;
+}
+
+/**
+ * lpfc_debugfs_ras_log_open - Open the RAS log debugfs buffer
+ * @inode: The inode pointer that contains a vport pointer.
+ * @file: The file pointer to attach the log output.
+ *
+ * Description:
+ * This routine is the entry point for the debugfs open file operation. It gets
+ * the vport from the i_private field in @inode, allocates the necessary buffer
+ * for the log, fills the buffer from the in-memory log for this vport, and then
+ * returns a pointer to that log in the private_data field in @file.
+ *
+ * Returns:
+ * This function returns zero if successful. On error it will return a negative
+ * error value.
+ **/
+static int
+lpfc_debugfs_ras_log_open(struct inode *inode, struct file *file)
+{
+	struct lpfc_hba *phba = inode->i_private;
+	struct lpfc_debug *debug;
+	int size;
+	int rc = -ENOMEM;
+
+	spin_lock_irq(&phba->hbalock);
+	if (phba->ras_fwlog.state != ACTIVE) {
+		spin_unlock_irq(&phba->hbalock);
+		rc = -EINVAL;
+		goto out;
+	}
+	spin_unlock_irq(&phba->hbalock);
+	debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+	if (!debug)
+		goto out;
+
+	size = LPFC_RAS_MIN_BUFF_POST_SIZE * phba->cfg_ras_fwlog_buffsize;
+	debug->buffer = vmalloc(size);
+	if (!debug->buffer)
+		goto free_debug;
+
+	debug->len = lpfc_debugfs_ras_log_data(phba, debug->buffer, size);
+	if (debug->len < 0) {
+		rc = -EINVAL;
+		goto free_buffer;
+	}
+	file->private_data = debug;
+
+	return 0;
+
+free_buffer:
+	vfree(debug->buffer);
+free_debug:
+	kfree(debug);
+out:
+	return rc;
+}
+
 /**
  * lpfc_debugfs_dumpHBASlim_open - Open the Dump HBA SLIM debugfs buffer
  * @inode: The inode pointer that contains a vport pointer.
@@ -5286,6 +5384,16 @@
 };
 #endif
 
+#undef lpfc_debugfs_ras_log
+static const struct file_operations lpfc_debugfs_ras_log = {
+	.owner =        THIS_MODULE,
+	.open =         lpfc_debugfs_ras_log_open,
+	.llseek =       lpfc_debugfs_lseek,
+	.read =         lpfc_debugfs_read,
+	.release =      lpfc_debugfs_ras_log_release,
+};
+#endif
+
 #undef lpfc_debugfs_op_dumpHBASlim
 static const struct file_operations lpfc_debugfs_op_dumpHBASlim = {
 	.owner =        THIS_MODULE,
@@ -5457,7 +5565,6 @@
 	.release =      lpfc_idiag_cmd_release,
 };
 
-#endif
 
 /* lpfc_idiag_mbxacc_dump_bsg_mbox - idiag debugfs dump bsg mailbox command
  * @phba: Pointer to HBA context object.
@@ -5707,6 +5814,19 @@
 			goto debug_failed;
 		}
 
+		/* RAS log */
+		snprintf(name, sizeof(name), "ras_log");
+		phba->debug_ras_log =
+			debugfs_create_file(name, 0644,
+					    phba->hba_debugfs_root,
+					    phba, &lpfc_debugfs_ras_log);
+		if (!phba->debug_ras_log) {
+			lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
+					 "6148 Cannot create debugfs"
+					 " ras_log\n");
+			goto debug_failed;
+		}
+
 		/* Setup hbqinfo */
 		snprintf(name, sizeof(name), "hbqinfo");
 		phba->debug_hbqinfo =
@@ -6117,6 +6237,9 @@
 		debugfs_remove(phba->debug_hbqinfo); /* hbqinfo */
 		phba->debug_hbqinfo = NULL;
 
+		debugfs_remove(phba->debug_ras_log);
+		phba->debug_ras_log = NULL;
+
 #ifdef LPFC_HDWQ_LOCK_STAT
 		debugfs_remove(phba->debug_lockstat); /* lockstat */
 		phba->debug_lockstat = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_els.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_els.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -2236,6 +2236,7 @@
 	struct Scsi_Host  *shost = lpfc_shost_from_vport(vport);
 	IOCB_t *irsp;
 	struct lpfc_nodelist *ndlp;
+	char *mode;
 
 	/* we pass cmdiocb to state machine which needs rspiocb as well */
 	cmdiocb->context_un.rsp_iocb = rspiocb;
@@ -2273,8 +2274,17 @@
 			goto out;
 		}
 
+		/* If we don't send GFT_ID to Fabric, a PRLI error
+		 * could be expected.
+		 */
+		if ((vport->fc_flag & FC_FABRIC) ||
+		    (vport->cfg_enable_fc4_type != LPFC_ENABLE_BOTH))
+			mode = KERN_ERR;
+		else
+			mode = KERN_INFO;
+
 		/* PRLI failed */
-		lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
+		lpfc_printf_vlog(vport, mode, LOG_ELS,
 				 "2754 PRLI failure DID:%06X Status:x%x/x%x, "
 				 "data: x%x\n",
 				 ndlp->nlp_DID, irsp->ulpStatus,
@@ -2998,10 +3008,9 @@
  * This routine is a generic completion callback function for ELS commands.
  * Specifically, it is the callback function which does not need to perform
  * any command specific operations. It is currently used by the ELS command
- * issuing routines for the ELS State Change  Request (SCR),
- * lpfc_issue_els_scr(), and the ELS Fibre Channel Address Resolution
- * Protocol Response (FARPR) routine, lpfc_issue_els_farpr(). Other than
- * certain debug loggings, this callback function simply invokes the
+ * issuing routines for RSCN, lpfc_issue_els_rscn, and the ELS Fibre Channel
+ * Address Resolution Protocol Response (FARPR) routine, lpfc_issue_els_farpr().
+ * Other than certain debug loggings, this callback function simply invokes the
  * lpfc_els_chk_latt() routine to check whether link went down during the
  * discovery process.
  **/
@@ -3015,14 +3024,117 @@
 	irsp = &rspiocb->iocb;
 
 	lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_CMD,
+			      "ELS cmd cmpl:    status:x%x/x%x did:x%x",
+			      irsp->ulpStatus, irsp->un.ulpWord[4],
+			      irsp->un.elsreq64.remoteID);
+
+	/* ELS cmd tag <ulpIoTag> completes */
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
+			 "0106 ELS cmd tag x%x completes Data: x%x x%x x%x\n",
+			 irsp->ulpIoTag, irsp->ulpStatus,
+			 irsp->un.ulpWord[4], irsp->ulpTimeout);
+
+	/* Check to see if link went down during discovery */
+	lpfc_els_chk_latt(vport);
+	lpfc_els_free_iocb(phba, cmdiocb);
+}
+
+/**
+ * lpfc_cmpl_els_disc_cmd - Completion callback function for Discovery ELS cmd
+ * @phba: pointer to lpfc hba data structure.
+ * @cmdiocb: pointer to lpfc command iocb data structure.
+ * @rspiocb: pointer to lpfc response iocb data structure.
+ *
+ * This routine is a generic completion callback function for Discovery ELS cmd.
+ * Currently used by the ELS command issuing routines for the ELS State Change
+ * Request (SCR), lpfc_issue_els_scr() and the ELS RDF, lpfc_issue_els_rdf().
+ * These commands will be retried once only for ELS timeout errors.
+ **/
+static void
+lpfc_cmpl_els_disc_cmd(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
+		       struct lpfc_iocbq *rspiocb)
+{
+	struct lpfc_vport *vport = cmdiocb->vport;
+	IOCB_t *irsp;
+	struct lpfc_els_rdf_rsp *prdf;
+	struct lpfc_dmabuf *pcmd, *prsp;
+	u32 *pdata;
+	u32 cmd;
+
+	irsp = &rspiocb->iocb;
+
+	lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_CMD,
 		"ELS cmd cmpl:    status:x%x/x%x did:x%x",
 		irsp->ulpStatus, irsp->un.ulpWord[4],
 		irsp->un.elsreq64.remoteID);
 	/* ELS cmd tag <ulpIoTag> completes */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
-			 "0106 ELS cmd tag x%x completes Data: x%x x%x x%x\n",
+			 "0217 ELS cmd tag x%x completes Data: x%x x%x x%x "
+			 "x%x\n",
 			 irsp->ulpIoTag, irsp->ulpStatus,
-			 irsp->un.ulpWord[4], irsp->ulpTimeout);
+			 irsp->un.ulpWord[4], irsp->ulpTimeout,
+			 cmdiocb->retry);
+
+	pcmd = (struct lpfc_dmabuf *)cmdiocb->context2;
+	if (!pcmd)
+		goto out;
+
+	pdata = (u32 *)pcmd->virt;
+	if (!pdata)
+		goto out;
+	cmd = *pdata;
+
+	/* Only 1 retry for ELS Timeout only */
+	if (irsp->ulpStatus == IOSTAT_LOCAL_REJECT &&
+	    ((irsp->un.ulpWord[4] & IOERR_PARAM_MASK) ==
+	    IOERR_SEQUENCE_TIMEOUT)) {
+		cmdiocb->retry++;
+		if (cmdiocb->retry <= 1) {
+			switch (cmd) {
+			case ELS_CMD_SCR:
+				lpfc_issue_els_scr(vport, cmdiocb->retry);
+				break;
+			case ELS_CMD_RDF:
+				cmdiocb->context1 = NULL; /* save ndlp refcnt */
+				lpfc_issue_els_rdf(vport, cmdiocb->retry);
+				break;
+			}
+			goto out;
+		}
+		phba->fc_stat.elsRetryExceeded++;
+	}
+	if (irsp->ulpStatus) {
+		/* ELS discovery cmd completes with error */
+		lpfc_printf_vlog(vport, KERN_WARNING, LOG_ELS,
+				 "4203 ELS cmd x%x error: x%x x%X\n", cmd,
+				 irsp->ulpStatus, irsp->un.ulpWord[4]);
+		goto out;
+	}
+
+	/* The RDF response doesn't have any impact on the running driver
+	 * but the notification descriptors are dumped here for support.
+	 */
+	if (cmd == ELS_CMD_RDF) {
+		int i;
+
+		prsp = list_get_first(&pcmd->list, struct lpfc_dmabuf, list);
+		if (!prsp)
+			goto out;
+
+		prdf = (struct lpfc_els_rdf_rsp *)prsp->virt;
+		if (!prdf)
+			goto out;
+
+		for (i = 0; i < ELS_RDF_REG_TAG_CNT &&
+			    i < be32_to_cpu(prdf->reg_d1.reg_desc.count); i++)
+			lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
+				 "4677 Fabric RDF Notication Grant Data: "
+				 "0x%08x\n",
+				 be32_to_cpu(
+					prdf->reg_d1.desc_tags[i]));
+	}
+
+out:
 	/* Check to see if link went down during discovery */
 	lpfc_els_chk_latt(vport);
 	lpfc_els_free_iocb(phba, cmdiocb);
@@ -3032,11 +3144,10 @@
 /**
  * lpfc_issue_els_scr - Issue a scr to an node on a vport
  * @vport: pointer to a host virtual N_Port data structure.
- * @nportid: N_Port identifier to the remote node.
- * @retry: number of retries to the command IOCB.
+ * @retry: retry counter for the command IOCB.
  *
  * This routine issues a State Change Request (SCR) to a fabric node
- * on a @vport. The remote node @nportid is passed into the function. It
+ * on a @vport. The remote node is Fabric Controller (0xfffffd). It
  * first search the @vport node list to find the matching ndlp. If no such
  * ndlp is found, a new ndlp shall be created for this (SCR) purpose. An
  * IOCB is allocated, payload prepared, and the lpfc_sli_issue_iocb()
@@ -3052,7 +3163,7 @@
  *   1 - Failed to issue scr command
  **/
 int
-lpfc_issue_els_scr(struct lpfc_vport *vport, uint32_t nportid, uint8_t retry)
+lpfc_issue_els_scr(struct lpfc_vport *vport, uint8_t retry)
 {
 	struct lpfc_hba  *phba = vport->phba;
 	struct lpfc_iocbq *elsiocb;
@@ -3062,9 +3173,9 @@
 
 	cmdsize = (sizeof(uint32_t) + sizeof(SCR));
 
-	ndlp = lpfc_findnode_did(vport, nportid);
+	ndlp = lpfc_findnode_did(vport, Fabric_Cntl_DID);
 	if (!ndlp) {
-		ndlp = lpfc_nlp_init(vport, nportid);
+		ndlp = lpfc_nlp_init(vport, Fabric_Cntl_DID);
 		if (!ndlp)
 			return 1;
 		lpfc_enqueue_node(vport, ndlp);
@@ -3099,7 +3210,7 @@
 		ndlp->nlp_DID, 0, 0);
 
 	phba->fc_stat.elsXmitSCR++;
-	elsiocb->iocb_cmpl = lpfc_cmpl_els_cmd;
+	elsiocb->iocb_cmpl = lpfc_cmpl_els_disc_cmd;
 	if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) ==
 	    IOCB_ERROR) {
 		/* The additional lpfc_nlp_put will cause the following
@@ -3329,6 +3440,102 @@
 	/* This will cause the callback-function lpfc_cmpl_els_cmd to
 	 * trigger the release of the node.
 	 */
+	/* Don't release reference count as RDF is likely outstanding */
+	return 0;
+}
+
+/**
+ * lpfc_issue_els_rdf - Register for diagnostic functions from the fabric.
+ * @vport: pointer to a host virtual N_Port data structure.
+ * @retry: retry counter for the command IOCB.
+ *
+ * This routine issues an ELS RDF to the Fabric Controller to register
+ * for diagnostic functions.
+ *
+ * Note that, in lpfc_prep_els_iocb() routine, the reference count of ndlp
+ * will be incremented by 1 for holding the ndlp and the reference to ndlp
+ * will be stored into the context1 field of the IOCB for the completion
+ * callback function to the RDF ELS command.
+ *
+ * Return code
+ *   0 - Successfully issued rdf command
+ *   1 - Failed to issue rdf command
+ **/
+int
+lpfc_issue_els_rdf(struct lpfc_vport *vport, uint8_t retry)
+{
+	struct lpfc_hba *phba = vport->phba;
+	struct lpfc_iocbq *elsiocb;
+	struct lpfc_els_rdf_req *prdf;
+	struct lpfc_nodelist *ndlp;
+	uint16_t cmdsize;
+
+	cmdsize = sizeof(*prdf);
+
+	ndlp = lpfc_findnode_did(vport, Fabric_Cntl_DID);
+	if (!ndlp) {
+		ndlp = lpfc_nlp_init(vport, Fabric_Cntl_DID);
+		if (!ndlp)
+			return -ENODEV;
+		lpfc_enqueue_node(vport, ndlp);
+	} else if (!NLP_CHK_NODE_ACT(ndlp)) {
+		ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE);
+		if (!ndlp)
+			return -ENODEV;
+	}
+
+	/* RDF ELS is not required on an NPIV VN_Port.  */
+	if (vport->port_type == LPFC_NPIV_PORT) {
+		lpfc_nlp_put(ndlp);
+		return -EACCES;
+	}
+
+	elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
+				     ndlp->nlp_DID, ELS_CMD_RDF);
+	if (!elsiocb) {
+		/* This will trigger the release of the node just
+		 * allocated
+		 */
+		lpfc_nlp_put(ndlp);
+		return -ENOMEM;
+	}
+
+	/* Configure the payload for the supported FPIN events. */
+	prdf = (struct lpfc_els_rdf_req *)
+		(((struct lpfc_dmabuf *)elsiocb->context2)->virt);
+	memset(prdf, 0, cmdsize);
+	prdf->rdf.fpin_cmd = ELS_RDF;
+	prdf->rdf.desc_len = cpu_to_be32(sizeof(struct lpfc_els_rdf_req) -
+					 sizeof(struct fc_els_rdf));
+	prdf->reg_d1.reg_desc.desc_tag = cpu_to_be32(ELS_DTAG_FPIN_REGISTER);
+	prdf->reg_d1.reg_desc.desc_len = cpu_to_be32(
+				FC_TLV_DESC_LENGTH_FROM_SZ(prdf->reg_d1));
+	prdf->reg_d1.reg_desc.count = cpu_to_be32(ELS_RDF_REG_TAG_CNT);
+	prdf->reg_d1.desc_tags[0] = cpu_to_be32(ELS_DTAG_LNK_INTEGRITY);
+
+	lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_CMD,
+			      "Issue RDF:       did:x%x",
+			      ndlp->nlp_DID, 0, 0);
+
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
+			 "6444 Xmit RDF to remote NPORT x%x\n",
+			 ndlp->nlp_DID);
+
+	elsiocb->iocb_cmpl = lpfc_cmpl_els_disc_cmd;
+	if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) ==
+	    IOCB_ERROR) {
+		/* The additional lpfc_nlp_put will cause the following
+		 * lpfc_els_free_iocb routine to trigger the rlease of
+		 * the node.
+		 */
+		lpfc_nlp_put(ndlp);
+		lpfc_els_free_iocb(phba, elsiocb);
+		return -EIO;
+	}
+
+	/* An RDF was issued - this put ensures the ndlp is cleaned up
+	 * when the RDF completes.
+	 */
 	lpfc_nlp_put(ndlp);
 	return 0;
 }
@@ -4291,6 +4498,11 @@
 
 	irsp = &rspiocb->iocb;
 
+	if (!vport) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_ELS,
+				"3177 ELS response failed\n");
+		goto out;
+	}
 	if (cmdiocb->context_un.mbox)
 		mbox = cmdiocb->context_un.mbox;
 
@@ -4430,9 +4642,11 @@
 		mempool_free(mbox, phba->mbox_mem_pool);
 	}
 out:
-	if (ndlp && NLP_CHK_NODE_ACT(ndlp)) {
+	if (ndlp && NLP_CHK_NODE_ACT(ndlp) && shost) {
 		spin_lock_irq(shost->host_lock);
-		ndlp->nlp_flag &= ~(NLP_ACC_REGLOGIN | NLP_RM_DFLT_RPI);
+		if (mbox)
+			ndlp->nlp_flag &= ~NLP_ACC_REGLOGIN;
+		ndlp->nlp_flag &= ~NLP_RM_DFLT_RPI;
 		spin_unlock_irq(shost->host_lock);
 
 		/* If the node is not being used by another discovery thread,
@@ -5260,6 +5474,11 @@
 			}
 		}
 	}
+
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+			 "6452 Discover PLOGI %d flag x%x\n",
+			 sentplogi, vport->fc_flag);
+
 	if (sentplogi) {
 		lpfc_set_disctmo(vport);
 	}
@@ -6455,7 +6674,7 @@
 	uint32_t payload_len, length, nportid, *cmd;
 	int rscn_cnt;
 	int rscn_id = 0, hba_id = 0;
-	int i;
+	int i, tmo;
 
 	pcmd = (struct lpfc_dmabuf *) cmdiocb->context2;
 	lp = (uint32_t *) pcmd->virt;
@@ -6561,6 +6780,13 @@
 
 		spin_lock_irq(shost->host_lock);
 		vport->fc_flag |= FC_RSCN_DEFERRED;
+
+		/* Restart disctmo if its already running */
+		if (vport->fc_flag & FC_DISC_TMO) {
+			tmo = ((phba->fc_ratov * 3) + 3);
+			mod_timer(&vport->fc_disctmo,
+				  jiffies + msecs_to_jiffies(1000 * tmo));
+		}
 		if ((rscn_cnt < FC_MAX_HOLD_RSCN) &&
 		    !(vport->fc_flag & FC_RSCN_DISCOVERY)) {
 			vport->fc_flag |= FC_RSCN_MODE;
@@ -6663,9 +6889,10 @@
 
 	/* RSCN processed */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
-			 "0215 RSCN processed Data: x%x x%x x%x x%x\n",
+			 "0215 RSCN processed Data: x%x x%x x%x x%x x%x x%x\n",
 			 vport->fc_flag, 0, vport->fc_rscn_id_cnt,
-			 vport->port_state);
+			 vport->port_state, vport->num_disc_nodes,
+			 vport->gidft_inp);
 
 	/* To process RSCN, first compare RSCN data with NameServer */
 	vport->fc_ns_retry = 0;
@@ -7107,108 +7334,12 @@
 }
 
 /**
- * lpfc_els_rsp_rps_acc - Completion callbk func for MBX_READ_LNK_STAT mbox cmd
- * @phba: pointer to lpfc hba data structure.
- * @pmb: pointer to the driver internal queue element for mailbox command.
- *
- * This routine is the completion callback function for the MBX_READ_LNK_STAT
- * mailbox command. This callback function is to actually send the Accept
- * (ACC) response to a Read Port Status (RPS) unsolicited IOCB event. It
- * collects the link statistics from the completion of the MBX_READ_LNK_STAT
- * mailbox command, constructs the RPS response with the link statistics
- * collected, and then invokes the lpfc_sli_issue_iocb() routine to send ACC
- * response to the RPS.
- *
- * Note that, in lpfc_prep_els_iocb() routine, the reference count of ndlp
- * will be incremented by 1 for holding the ndlp and the reference to ndlp
- * will be stored into the context1 field of the IOCB for the completion
- * callback function to the RPS Accept Response ELS IOCB command.
- *
- **/
-static void
-lpfc_els_rsp_rps_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
-{
-	MAILBOX_t *mb;
-	IOCB_t *icmd;
-	RPS_RSP *rps_rsp;
-	uint8_t *pcmd;
-	struct lpfc_iocbq *elsiocb;
-	struct lpfc_nodelist *ndlp;
-	uint16_t status;
-	uint16_t oxid;
-	uint16_t rxid;
-	uint32_t cmdsize;
-
-	mb = &pmb->u.mb;
-
-	ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp;
-	rxid = (uint16_t)((unsigned long)(pmb->ctx_buf) & 0xffff);
-	oxid = (uint16_t)(((unsigned long)(pmb->ctx_buf) >> 16) & 0xffff);
-	pmb->ctx_ndlp = NULL;
-	pmb->ctx_buf = NULL;
-
-	if (mb->mbxStatus) {
-		mempool_free(pmb, phba->mbox_mem_pool);
-		return;
-	}
-
-	cmdsize = sizeof(RPS_RSP) + sizeof(uint32_t);
-	mempool_free(pmb, phba->mbox_mem_pool);
-	elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize,
-				     lpfc_max_els_tries, ndlp,
-				     ndlp->nlp_DID, ELS_CMD_ACC);
-
-	/* Decrement the ndlp reference count from previous mbox command */
-	lpfc_nlp_put(ndlp);
-
-	if (!elsiocb)
-		return;
-
-	icmd = &elsiocb->iocb;
-	icmd->ulpContext = rxid;
-	icmd->unsli3.rcvsli3.ox_id = oxid;
-
-	pcmd = (uint8_t *) (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
-	*((uint32_t *) (pcmd)) = ELS_CMD_ACC;
-	pcmd += sizeof(uint32_t); /* Skip past command */
-	rps_rsp = (RPS_RSP *)pcmd;
-
-	if (phba->fc_topology != LPFC_TOPOLOGY_LOOP)
-		status = 0x10;
-	else
-		status = 0x8;
-	if (phba->pport->fc_flag & FC_FABRIC)
-		status |= 0x4;
-
-	rps_rsp->rsvd1 = 0;
-	rps_rsp->portStatus = cpu_to_be16(status);
-	rps_rsp->linkFailureCnt = cpu_to_be32(mb->un.varRdLnk.linkFailureCnt);
-	rps_rsp->lossSyncCnt = cpu_to_be32(mb->un.varRdLnk.lossSyncCnt);
-	rps_rsp->lossSignalCnt = cpu_to_be32(mb->un.varRdLnk.lossSignalCnt);
-	rps_rsp->primSeqErrCnt = cpu_to_be32(mb->un.varRdLnk.primSeqErrCnt);
-	rps_rsp->invalidXmitWord = cpu_to_be32(mb->un.varRdLnk.invalidXmitWord);
-	rps_rsp->crcCnt = cpu_to_be32(mb->un.varRdLnk.crcCnt);
-	/* Xmit ELS RPS ACC response tag <ulpIoTag> */
-	lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS,
-			 "0118 Xmit ELS RPS ACC response tag x%x xri x%x, "
-			 "did x%x, nlp_flag x%x, nlp_state x%x, rpi x%x\n",
-			 elsiocb->iotag, elsiocb->iocb.ulpContext,
-			 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state,
-			 ndlp->nlp_rpi);
-	elsiocb->iocb_cmpl = lpfc_cmpl_els_rsp;
-	phba->fc_stat.elsXmitACC++;
-	if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR)
-		lpfc_els_free_iocb(phba, elsiocb);
-	return;
-}
-
-/**
  * lpfc_els_rcv_rls - Process an unsolicited rls iocb
  * @vport: pointer to a host virtual N_Port data structure.
  * @cmdiocb: pointer to lpfc command iocb data structure.
  * @ndlp: pointer to a node-list data structure.
  *
- * This routine processes Read Port Status (RPL) IOCB received as an
+ * This routine processes Read Link Status (RLS) IOCB received as an
  * ELS unsolicited event. It first checks the remote port state. If the
  * remote port is not in NLP_STE_UNMAPPED_NODE state or NLP_STE_MAPPED_NODE
  * state, it invokes the lpfc_els_rsl_reject() routine to send the reject
@@ -7230,7 +7361,7 @@
 
 	if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) &&
 	    (ndlp->nlp_state != NLP_STE_MAPPED_NODE))
-		/* reject the unsolicited RPS request and done with it */
+		/* reject the unsolicited RLS request and done with it */
 		goto reject_out;
 
 	mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC);
@@ -7278,7 +7409,7 @@
  * Note that, in lpfc_prep_els_iocb() routine, the reference count of ndlp
  * will be incremented by 1 for holding the ndlp and the reference to ndlp
  * will be stored into the context1 field of the IOCB for the completion
- * callback function to the RPS Accept Response ELS IOCB command.
+ * callback function to the RTV Accept Response ELS IOCB command.
  *
  * Return codes
  *   0 - Successfully processed rtv iocb (currently always return 0)
@@ -7297,7 +7428,7 @@
 
 	if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) &&
 	    (ndlp->nlp_state != NLP_STE_MAPPED_NODE))
-		/* reject the unsolicited RPS request and done with it */
+		/* reject the unsolicited RTV request and done with it */
 		goto reject_out;
 
 	cmdsize = sizeof(struct RTV_RSP) + sizeof(uint32_t);
@@ -7350,84 +7481,7 @@
 	return 0;
 }
 
-/* lpfc_els_rcv_rps - Process an unsolicited rps iocb
- * @vport: pointer to a host virtual N_Port data structure.
- * @cmdiocb: pointer to lpfc command iocb data structure.
- * @ndlp: pointer to a node-list data structure.
- *
- * This routine processes Read Port Status (RPS) IOCB received as an
- * ELS unsolicited event. It first checks the remote port state. If the
- * remote port is not in NLP_STE_UNMAPPED_NODE state or NLP_STE_MAPPED_NODE
- * state, it invokes the lpfc_els_rsp_reject() routine to send the reject
- * response. Otherwise, it issue the MBX_READ_LNK_STAT mailbox command
- * for reading the HBA link statistics. It is for the callback function,
- * lpfc_els_rsp_rps_acc(), set to the MBX_READ_LNK_STAT mailbox command
- * to actually sending out RPS Accept (ACC) response.
- *
- * Return codes
- *   0 - Successfully processed rps iocb (currently always return 0)
- **/
-static int
-lpfc_els_rcv_rps(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
-		 struct lpfc_nodelist *ndlp)
-{
-	struct lpfc_hba *phba = vport->phba;
-	uint32_t *lp;
-	uint8_t flag;
-	LPFC_MBOXQ_t *mbox;
-	struct lpfc_dmabuf *pcmd;
-	RPS *rps;
-	struct ls_rjt stat;
-
-	if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) &&
-	    (ndlp->nlp_state != NLP_STE_MAPPED_NODE))
-		/* reject the unsolicited RPS request and done with it */
-		goto reject_out;
-
-	pcmd = (struct lpfc_dmabuf *) cmdiocb->context2;
-	lp = (uint32_t *) pcmd->virt;
-	flag = (be32_to_cpu(*lp++) & 0xf);
-	rps = (RPS *) lp;
-
-	if ((flag == 0) ||
-	    ((flag == 1) && (be32_to_cpu(rps->un.portNum) == 0)) ||
-	    ((flag == 2) && (memcmp(&rps->un.portName, &vport->fc_portname,
-				    sizeof(struct lpfc_name)) == 0))) {
-
-		printk("Fix me....\n");
-		dump_stack();
-		mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC);
-		if (mbox) {
-			lpfc_read_lnk_stat(phba, mbox);
-			mbox->ctx_buf = (void *)((unsigned long)
-				((cmdiocb->iocb.unsli3.rcvsli3.ox_id << 16) |
-				cmdiocb->iocb.ulpContext)); /* rx_id */
-			mbox->ctx_ndlp = lpfc_nlp_get(ndlp);
-			mbox->vport = vport;
-			mbox->mbox_cmpl = lpfc_els_rsp_rps_acc;
-			if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT)
-				!= MBX_NOT_FINISHED)
-				/* Mbox completion will send ELS Response */
-				return 0;
-			/* Decrement reference count used for the failed mbox
-			 * command.
-			 */
-			lpfc_nlp_put(ndlp);
-			mempool_free(mbox, phba->mbox_mem_pool);
-		}
-	}
-
-reject_out:
-	/* issue rejection response */
-	stat.un.b.lsRjtRsvd0 = 0;
-	stat.un.b.lsRjtRsnCode = LSRJT_UNABLE_TPC;
-	stat.un.b.lsRjtRsnCodeExp = LSEXP_CANT_GIVE_DATA;
-	stat.un.b.vendorUnique = 0;
-	lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
-	return 0;
-}
-
-/* lpfc_issue_els_rrq - Process an unsolicited rps iocb
+/* lpfc_issue_els_rrq - Process an unsolicited rrq iocb
  * @vport: pointer to a host virtual N_Port data structure.
  * @ndlp: pointer to a node-list data structure.
  * @did: DID of the target.
@@ -7986,20 +8040,22 @@
 	struct lpfc_sli_ring *pring;
 	struct lpfc_iocbq *tmp_iocb, *piocb;
 	IOCB_t *cmd = NULL;
+	unsigned long iflags = 0;
 
 	lpfc_fabric_abort_vport(vport);
+
 	/*
 	 * For SLI3, only the hbalock is required.  But SLI4 needs to coordinate
 	 * with the ring insert operation.  Because lpfc_sli_issue_abort_iotag
 	 * ultimately grabs the ring_lock, the driver must splice the list into
 	 * a working list and release the locks before calling the abort.
 	 */
-	spin_lock_irq(&phba->hbalock);
+	spin_lock_irqsave(&phba->hbalock, iflags);
 	pring = lpfc_phba_elsring(phba);
 
 	/* Bail out if we've no ELS wq, like in PCI error recovery case. */
 	if (unlikely(!pring)) {
-		spin_unlock_irq(&phba->hbalock);
+		spin_unlock_irqrestore(&phba->hbalock, iflags);
 		return;
 	}
 
@@ -8014,6 +8070,9 @@
 		if (piocb->vport != vport)
 			continue;
 
+		if (piocb->iocb_flag & LPFC_DRIVER_ABORTED)
+			continue;
+
 		/* On the ELS ring we can have ELS_REQUESTs or
 		 * GEN_REQUESTs waiting for a response.
 		 */
@@ -8037,21 +8096,21 @@
 
 	if (phba->sli_rev == LPFC_SLI_REV4)
 		spin_unlock(&pring->ring_lock);
-	spin_unlock_irq(&phba->hbalock);
+	spin_unlock_irqrestore(&phba->hbalock, iflags);
 
 	/* Abort each txcmpl iocb on aborted list and remove the dlist links. */
 	list_for_each_entry_safe(piocb, tmp_iocb, &abort_list, dlist) {
-		spin_lock_irq(&phba->hbalock);
+		spin_lock_irqsave(&phba->hbalock, iflags);
 		list_del_init(&piocb->dlist);
 		lpfc_sli_issue_abort_iotag(phba, pring, piocb);
-		spin_unlock_irq(&phba->hbalock);
+		spin_unlock_irqrestore(&phba->hbalock, iflags);
 	}
 	if (!list_empty(&abort_list))
 		lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
 				 "3387 abort list for txq not empty\n");
 	INIT_LIST_HEAD(&abort_list);
 
-	spin_lock_irq(&phba->hbalock);
+	spin_lock_irqsave(&phba->hbalock, iflags);
 	if (phba->sli_rev == LPFC_SLI_REV4)
 		spin_lock(&pring->ring_lock);
 
@@ -8091,7 +8150,7 @@
 
 	if (phba->sli_rev == LPFC_SLI_REV4)
 		spin_unlock(&pring->ring_lock);
-	spin_unlock_irq(&phba->hbalock);
+	spin_unlock_irqrestore(&phba->hbalock, iflags);
 
 	/* Cancel all the IOCBs from the completions list */
 	lpfc_sli_cancel_iocbs(phba, &abort_list,
@@ -8277,6 +8336,90 @@
 }
 
 
+DECLARE_ENUM2STR_LOOKUP(lpfc_get_tlv_dtag_nm, fc_ls_tlv_dtag,
+			FC_LS_TLV_DTAG_INIT);
+
+DECLARE_ENUM2STR_LOOKUP(lpfc_get_fpin_li_event_nm, fc_fpin_li_event_types,
+			FC_FPIN_LI_EVT_TYPES_INIT);
+
+/**
+ * lpfc_els_rcv_fpin_li - Process an FPIN Link Integrity Event.
+ * @vport: Pointer to vport object.
+ * @lnk_not:  Pointer to the Link Integrity Notification Descriptor.
+ *
+ * This function processes a link integrity FPIN event by
+ * logging a message
+ **/
+static void
+lpfc_els_rcv_fpin_li(struct lpfc_vport *vport, struct fc_tlv_desc *tlv)
+{
+	struct fc_fn_li_desc *li = (struct fc_fn_li_desc *)tlv;
+	const char *li_evt_str;
+	u32 li_evt;
+
+	li_evt = be16_to_cpu(li->event_type);
+	li_evt_str = lpfc_get_fpin_li_event_nm(li_evt);
+
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
+			 "4680 FPIN Link Integrity %s (x%x) "
+			 "Detecting PN x%016llx Attached PN x%016llx "
+			 "Duration %d mSecs Count %d Port Cnt %d\n",
+			 li_evt_str, li_evt,
+			 be64_to_cpu(li->detecting_wwpn),
+			 be64_to_cpu(li->attached_wwpn),
+			 be32_to_cpu(li->event_threshold),
+			 be32_to_cpu(li->event_count),
+			 be32_to_cpu(li->pname_count));
+}
+
+static void
+lpfc_els_rcv_fpin(struct lpfc_vport *vport, struct fc_els_fpin *fpin,
+		  u32 fpin_length)
+{
+	struct fc_tlv_desc *tlv;
+	const char *dtag_nm;
+	uint32_t desc_cnt = 0, bytes_remain;
+	u32 dtag;
+
+	/* FPINs handled only if we are in the right discovery state */
+	if (vport->port_state < LPFC_DISC_AUTH)
+		return;
+
+	/* make sure there is the full fpin header */
+	if (fpin_length < sizeof(struct fc_els_fpin))
+		return;
+
+	tlv = (struct fc_tlv_desc *)&fpin->fpin_desc[0];
+	bytes_remain = fpin_length - offsetof(struct fc_els_fpin, fpin_desc);
+	bytes_remain = min_t(u32, bytes_remain, be32_to_cpu(fpin->desc_len));
+
+	/* process each descriptor */
+	while (bytes_remain >= FC_TLV_DESC_HDR_SZ &&
+	       bytes_remain >= FC_TLV_DESC_SZ_FROM_LENGTH(tlv)) {
+
+		dtag = be32_to_cpu(tlv->desc_tag);
+		switch (dtag) {
+		case ELS_DTAG_LNK_INTEGRITY:
+			lpfc_els_rcv_fpin_li(vport, tlv);
+			break;
+		default:
+			dtag_nm = lpfc_get_tlv_dtag_nm(dtag);
+			lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
+					 "4678  skipped FPIN descriptor[%d]: "
+					 "tag x%x (%s)\n",
+					 desc_cnt, dtag, dtag_nm);
+			break;
+		}
+
+		desc_cnt++;
+		bytes_remain -= FC_TLV_DESC_SZ_FROM_LENGTH(tlv);
+		tlv = fc_tlv_next_desc(tlv);
+	}
+
+	fc_host_fpin_rcv(lpfc_shost_from_vport(vport), fpin_length,
+			 (char *)fpin);
+}
+
 /**
  * lpfc_els_unsol_buffer - Process an unsolicited event data buffer
  * @phba: pointer to lpfc hba data structure.
@@ -8298,7 +8441,7 @@
 	struct Scsi_Host  *shost;
 	struct lpfc_nodelist *ndlp;
 	struct ls_rjt stat;
-	uint32_t *payload;
+	uint32_t *payload, payload_len;
 	uint32_t cmd, did, newnode;
 	uint8_t rjt_exp, rjt_err = 0, init_link = 0;
 	IOCB_t *icmd = &elsiocb->iocb;
@@ -8309,6 +8452,7 @@
 
 	newnode = 0;
 	payload = ((struct lpfc_dmabuf *)elsiocb->context2)->virt;
+	payload_len = elsiocb->iocb.unsli3.rcvsli3.acc_len;
 	cmd = *payload;
 	if ((phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) == 0)
 		lpfc_post_buffer(phba, pring, 1);
@@ -8372,6 +8516,8 @@
 	spin_lock_irq(shost->host_lock);
 	if (ndlp->nlp_flag & NLP_IN_DEV_LOSS) {
 		spin_unlock_irq(shost->host_lock);
+		if (newnode)
+			lpfc_nlp_put(ndlp);
 		goto dropit;
 	}
 	spin_unlock_irq(shost->host_lock);
@@ -8599,16 +8745,6 @@
 		if (newnode)
 			lpfc_nlp_put(ndlp);
 		break;
-	case ELS_CMD_RPS:
-		lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_UNSOL,
-			"RCV RPS:         did:x%x/ste:x%x flg:x%x",
-			did, vport->port_state, ndlp->nlp_flag);
-
-		phba->fc_stat.elsRcvRPS++;
-		lpfc_els_rcv_rps(vport, elsiocb, ndlp);
-		if (newnode)
-			lpfc_nlp_put(ndlp);
-		break;
 	case ELS_CMD_RPL:
 		lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_UNSOL,
 			"RCV RPL:         did:x%x/ste:x%x flg:x%x",
@@ -8664,12 +8800,14 @@
 		rjt_exp = LSEXP_INVALID_OX_RX;
 		break;
 	case ELS_CMD_FPIN:
-		/*
-		 * Received FPIN from fabric - pass it to the
-		 * transport FPIN handler.
-		 */
-		fc_host_fpin_rcv(shost, elsiocb->iocb.unsli3.rcvsli3.acc_len,
-				(char *)payload);
+		lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_UNSOL,
+				      "RCV FPIN:       did:x%x/ste:x%x flg:x%x",
+				      did, vport->port_state, ndlp->nlp_flag);
+
+		lpfc_els_rcv_fpin(vport, (struct fc_els_fpin *)payload,
+				  payload_len);
+
+		/* There are no replies, so no rjt codes */
 		break;
 	default:
 		lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_UNSOL,
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -28,6 +28,7 @@
 #include <linux/kthread.h>
 #include <linux/interrupt.h>
 #include <linux/lockdep.h>
+#include <linux/utsname.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_device.h>
@@ -72,6 +73,7 @@
 static void lpfc_disc_flush_list(struct lpfc_vport *vport);
 static void lpfc_unregister_fcfi_cmpl(struct lpfc_hba *, LPFC_MBOXQ_t *);
 static int lpfc_fcf_inuse(struct lpfc_hba *);
+static void lpfc_mbx_cmpl_read_sparam(struct lpfc_hba *, LPFC_MBOXQ_t *);
 
 void
 lpfc_terminate_rport_io(struct fc_rport *rport)
@@ -700,7 +702,10 @@
 			if (!(phba->hba_flag & HBA_SP_QUEUE_EVT))
 				set_bit(LPFC_DATA_READY, &phba->data_flags);
 		} else {
-			if (phba->link_state >= LPFC_LINK_UP ||
+			/* Driver could have abort request completed in queue
+			 * when link goes down.  Allow for this transition.
+			 */
+			if (phba->link_state >= LPFC_LINK_DOWN ||
 			    phba->link_flag & LS_MDS_LOOPBACK) {
 				pring->flag &= ~LPFC_DEFERRED_RING_EVENT;
 				lpfc_sli_handle_slow_ring_event(phba, pring,
@@ -1130,12 +1135,13 @@
 	return;
 }
 
-
 void
 lpfc_mbx_cmpl_local_config_link(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 {
 	struct lpfc_vport *vport = pmb->vport;
-	uint8_t bbscn = 0;
+	LPFC_MBOXQ_t *sparam_mb;
+	struct lpfc_dmabuf *sparam_mp;
+	int rc;
 
 	if (pmb->u.mb.mbxStatus)
 		goto out;
@@ -1160,18 +1166,45 @@
 	}
 
 	/* Start discovery by sending a FLOGI. port_state is identically
-	 * LPFC_FLOGI while waiting for FLOGI cmpl
+	 * LPFC_FLOGI while waiting for FLOGI cmpl.
 	 */
 	if (vport->port_state != LPFC_FLOGI) {
-		if (phba->bbcredit_support && phba->cfg_enable_bbcr) {
-			bbscn = bf_get(lpfc_bbscn_def,
-				       &phba->sli4_hba.bbscn_params);
-			vport->fc_sparam.cmn.bbRcvSizeMsb &= 0xf;
-			vport->fc_sparam.cmn.bbRcvSizeMsb |= (bbscn << 4);
+		/* Issue MBX_READ_SPARAM to update CSPs before FLOGI if
+		 * bb-credit recovery is in place.
+		 */
+		if (phba->bbcredit_support && phba->cfg_enable_bbcr &&
+		    !(phba->link_flag & LS_LOOPBACK_MODE)) {
+			sparam_mb = mempool_alloc(phba->mbox_mem_pool,
+						  GFP_KERNEL);
+			if (!sparam_mb)
+				goto sparam_out;
+
+			rc = lpfc_read_sparam(phba, sparam_mb, 0);
+			if (rc) {
+				mempool_free(sparam_mb, phba->mbox_mem_pool);
+				goto sparam_out;
+			}
+			sparam_mb->vport = vport;
+			sparam_mb->mbox_cmpl = lpfc_mbx_cmpl_read_sparam;
+			rc = lpfc_sli_issue_mbox(phba, sparam_mb, MBX_NOWAIT);
+			if (rc == MBX_NOT_FINISHED) {
+				sparam_mp = (struct lpfc_dmabuf *)
+						sparam_mb->ctx_buf;
+				lpfc_mbuf_free(phba, sparam_mp->virt,
+					       sparam_mp->phys);
+				kfree(sparam_mp);
+				sparam_mb->ctx_buf = NULL;
+				mempool_free(sparam_mb, phba->mbox_mem_pool);
+				goto sparam_out;
+			}
+
+			phba->hba_flag |= HBA_DEFER_FLOGI;
+		}  else {
+			lpfc_initial_flogi(vport);
 		}
-		lpfc_initial_flogi(vport);
-	} else if (vport->fc_flag & FC_PT2PT) {
-		lpfc_disc_start(vport);
+	} else {
+		if (vport->fc_flag & FC_PT2PT)
+			lpfc_disc_start(vport);
 	}
 	return;
 
@@ -1180,6 +1213,7 @@
 			 "0306 CONFIG_LINK mbxStatus error x%x "
 			 "HBA state x%x\n",
 			 pmb->u.mb.mbxStatus, vport->port_state);
+sparam_out:
 	mempool_free(pmb, phba->mbox_mem_pool);
 
 	lpfc_linkdown(phba);
@@ -3097,6 +3131,14 @@
 	lpfc_mbuf_free(phba, mp->virt, mp->phys);
 	kfree(mp);
 	mempool_free(pmb, phba->mbox_mem_pool);
+
+	/* Check if sending the FLOGI is being deferred to after we get
+	 * up to date CSPs from MBX_READ_SPARAM.
+	 */
+	if (phba->hba_flag & HBA_DEFER_FLOGI) {
+		lpfc_initial_flogi(vport);
+		phba->hba_flag &= ~HBA_DEFER_FLOGI;
+	}
 	return;
 
 out:
@@ -3227,6 +3269,8 @@
 	}
 
 	lpfc_linkup(phba);
+	sparam_mbox = NULL;
+
 	sparam_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
 	if (!sparam_mbox)
 		goto out;
@@ -3319,6 +3363,10 @@
 		lpfc_sli4_clear_fcf_rr_bmask(phba);
 	}
 
+	/* Prepare for LINK up registrations */
+	memset(phba->os_host_name, 0, sizeof(phba->os_host_name));
+	scnprintf(phba->os_host_name, sizeof(phba->os_host_name), "%s",
+		  init_utsname()->nodename);
 	return;
 out:
 	lpfc_vport_set_state(vport, FC_VPORT_FAILED);
@@ -3456,8 +3504,8 @@
 				phba->pport->port_state, vport->fc_flag);
 		else if (attn_type == LPFC_ATT_UNEXP_WWPN)
 			lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT,
-				"1313 Link Down UNEXP WWPN Event x%x received "
-				"Data: x%x x%x x%x x%x x%x\n",
+				"1313 Link Down Unexpected FA WWPN Event x%x "
+				"received Data: x%x x%x x%x x%x x%x\n",
 				la->eventTag, phba->fc_eventTag,
 				phba->pport->port_state, vport->fc_flag,
 				bf_get(lpfc_mbx_read_top_mm, la),
@@ -4046,7 +4094,7 @@
 	ndlp->nlp_flag |= NLP_RPI_REGISTERED;
 	ndlp->nlp_type |= NLP_FABRIC;
 	lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
-	lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE | LOG_DISCOVERY,
 			 "0003 rpi:%x DID:%x flg:%x %d map%x x%px\n",
 			 ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
 			 kref_read(&ndlp->kref),
@@ -4069,7 +4117,9 @@
 				    FC_TYPE_NVME);
 
 		/* Issue SCR just before NameServer GID_FT Query */
-		lpfc_issue_els_scr(vport, SCR_DID, 0);
+		lpfc_issue_els_scr(vport, 0);
+
+		lpfc_issue_els_rdf(vport, 0);
 	}
 
 	vport->fc_ns_retry = 0;
@@ -4575,8 +4625,10 @@
 	return ndlp;
 
 free_rpi:
-	if (phba->sli_rev == LPFC_SLI_REV4)
+	if (phba->sli_rev == LPFC_SLI_REV4) {
 		lpfc_sli4_free_rpi(vport->phba, rpi);
+		ndlp->nlp_rpi = LPFC_RPI_ALLOC_ERROR;
+	}
 	return NULL;
 }
 
@@ -4835,12 +4887,51 @@
 		if (ndlp->nlp_flag & NLP_RELEASE_RPI) {
 			lpfc_sli4_free_rpi(vport->phba, ndlp->nlp_rpi);
 			ndlp->nlp_flag &= ~NLP_RELEASE_RPI;
+			ndlp->nlp_rpi = LPFC_RPI_ALLOC_ERROR;
 		}
 		ndlp->nlp_flag &= ~NLP_UNREG_INP;
 	}
 }
 
 /*
+ * Sets the mailbox completion handler to be used for the
+ * unreg_rpi command. The handler varies based on the state of
+ * the port and what will be happening to the rpi next.
+ */
+static void
+lpfc_set_unreg_login_mbx_cmpl(struct lpfc_hba *phba, struct lpfc_vport *vport,
+	struct lpfc_nodelist *ndlp, LPFC_MBOXQ_t *mbox)
+{
+	unsigned long iflags;
+
+	if (ndlp->nlp_flag & NLP_ISSUE_LOGO) {
+		mbox->ctx_ndlp = ndlp;
+		mbox->mbox_cmpl = lpfc_nlp_logo_unreg;
+
+	} else if (phba->sli_rev == LPFC_SLI_REV4 &&
+		   (!(vport->load_flag & FC_UNLOADING)) &&
+		    (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) >=
+				      LPFC_SLI_INTF_IF_TYPE_2) &&
+		    (kref_read(&ndlp->kref) > 0)) {
+		mbox->ctx_ndlp = lpfc_nlp_get(ndlp);
+		mbox->mbox_cmpl = lpfc_sli4_unreg_rpi_cmpl_clr;
+	} else {
+		if (vport->load_flag & FC_UNLOADING) {
+			if (phba->sli_rev == LPFC_SLI_REV4) {
+				spin_lock_irqsave(&vport->phba->ndlp_lock,
+						  iflags);
+				ndlp->nlp_flag |= NLP_RELEASE_RPI;
+				spin_unlock_irqrestore(&vport->phba->ndlp_lock,
+						       iflags);
+			}
+			lpfc_nlp_get(ndlp);
+		}
+		mbox->ctx_ndlp = ndlp;
+		mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl;
+	}
+}
+
+/*
  * Free rpi associated with LPFC_NODELIST entry.
  * This routine is called from lpfc_freenode(), when we are removing
  * a LPFC_NODELIST entry. It is also called if the driver initiates a
@@ -4860,7 +4951,8 @@
 	if (ndlp->nlp_flag & NLP_RPI_REGISTERED ||
 	    ndlp->nlp_flag & NLP_REG_LOGIN_SEND) {
 		if (ndlp->nlp_flag & NLP_REG_LOGIN_SEND)
-			lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
+			lpfc_printf_vlog(vport, KERN_INFO,
+					 LOG_NODE | LOG_DISCOVERY,
 					 "3366 RPI x%x needs to be "
 					 "unregistered nlp_flag x%x "
 					 "did x%x\n",
@@ -4871,7 +4963,8 @@
 		 * no need to queue up another one.
 		 */
 		if (ndlp->nlp_flag & NLP_UNREG_INP) {
-			lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+			lpfc_printf_vlog(vport, KERN_INFO,
+					 LOG_NODE | LOG_DISCOVERY,
 					 "1436 unreg_rpi SKIP UNREG x%x on "
 					 "NPort x%x deferred x%x  flg x%x "
 					 "Data: x%px\n",
@@ -4890,39 +4983,19 @@
 
 			lpfc_unreg_login(phba, vport->vpi, rpi, mbox);
 			mbox->vport = vport;
-			if (ndlp->nlp_flag & NLP_ISSUE_LOGO) {
-				mbox->ctx_ndlp = ndlp;
-				mbox->mbox_cmpl = lpfc_nlp_logo_unreg;
-			} else {
-				if (phba->sli_rev == LPFC_SLI_REV4 &&
-				    (!(vport->load_flag & FC_UNLOADING)) &&
-				    (bf_get(lpfc_sli_intf_if_type,
-				     &phba->sli4_hba.sli_intf) >=
-				      LPFC_SLI_INTF_IF_TYPE_2) &&
-				    (kref_read(&ndlp->kref) > 0)) {
-					mbox->ctx_ndlp = lpfc_nlp_get(ndlp);
-					mbox->mbox_cmpl =
-						lpfc_sli4_unreg_rpi_cmpl_clr;
-					/*
-					 * accept PLOGIs after unreg_rpi_cmpl
-					 */
-					acc_plogi = 0;
-				} else if (vport->load_flag & FC_UNLOADING) {
-					mbox->ctx_ndlp = NULL;
-					mbox->mbox_cmpl =
-						lpfc_sli_def_mbox_cmpl;
-				} else {
-					mbox->ctx_ndlp = ndlp;
-					mbox->mbox_cmpl =
-						lpfc_sli_def_mbox_cmpl;
-				}
-			}
+			lpfc_set_unreg_login_mbx_cmpl(phba, vport, ndlp, mbox);
+			if (mbox->mbox_cmpl == lpfc_sli4_unreg_rpi_cmpl_clr)
+				/*
+				 * accept PLOGIs after unreg_rpi_cmpl
+				 */
+				acc_plogi = 0;
 			if (((ndlp->nlp_DID & Fabric_DID_MASK) !=
 			    Fabric_DID_MASK) &&
 			    (!(vport->fc_flag & FC_OFFLINE_MODE)))
 				ndlp->nlp_flag |= NLP_UNREG_INP;
 
-			lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+			lpfc_printf_vlog(vport, KERN_INFO,
+					 LOG_NODE | LOG_DISCOVERY,
 					 "1433 unreg_rpi UNREG x%x on "
 					 "NPort x%x deferred flg x%x "
 					 "Data:x%px\n",
@@ -5057,6 +5130,7 @@
 	struct lpfc_hba  *phba = vport->phba;
 	LPFC_MBOXQ_t *mb, *nextmb;
 	struct lpfc_dmabuf *mp;
+	unsigned long iflags;
 
 	/* Cleanup node for NPort <nlp_DID> */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE,
@@ -5138,8 +5212,20 @@
 	lpfc_cleanup_vports_rrqs(vport, ndlp);
 	if (phba->sli_rev == LPFC_SLI_REV4)
 		ndlp->nlp_flag |= NLP_RELEASE_RPI;
-	lpfc_unreg_rpi(vport, ndlp);
-
+	if (!lpfc_unreg_rpi(vport, ndlp)) {
+		/* Clean up unregistered and non freed rpis */
+		if ((ndlp->nlp_flag & NLP_RELEASE_RPI) &&
+		    !(ndlp->nlp_rpi == LPFC_RPI_ALLOC_ERROR)) {
+			lpfc_sli4_free_rpi(vport->phba,
+					   ndlp->nlp_rpi);
+			spin_lock_irqsave(&vport->phba->ndlp_lock,
+					  iflags);
+			ndlp->nlp_flag &= ~NLP_RELEASE_RPI;
+			ndlp->nlp_rpi = LPFC_RPI_ALLOC_ERROR;
+			spin_unlock_irqrestore(&vport->phba->ndlp_lock,
+					       iflags);
+		}
+	}
 	return 0;
 }
 
@@ -5165,8 +5251,10 @@
 		/* For this case we need to cleanup the default rpi
 		 * allocated by the firmware.
 		 */
-		lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE,
-				 "0005 rpi:%x DID:%x flg:%x %d map:%x x%px\n",
+		lpfc_printf_vlog(vport, KERN_INFO,
+				 LOG_NODE | LOG_DISCOVERY,
+				 "0005 Cleanup Default rpi:x%x DID:x%x flg:x%x "
+				 "ref %d map:x%x ndlp x%px\n",
 				 ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
 				 kref_read(&ndlp->kref),
 				 ndlp->nlp_usg_map, ndlp);
@@ -5203,8 +5291,9 @@
 		 */
 		lpfc_printf_vlog(vport, KERN_WARNING, LOG_NODE,
 				"0940 removed node x%px DID x%x "
-				" rport not null x%px\n",
-				ndlp, ndlp->nlp_DID, ndlp->rport);
+				"rpi %d rport not null x%px\n",
+				 ndlp, ndlp->nlp_DID, ndlp->nlp_rpi,
+				 ndlp->rport);
 		rport = ndlp->rport;
 		rdata = rport->dd_data;
 		rdata->pnode = NULL;
@@ -5362,6 +5451,13 @@
 		if (!ndlp)
 			return NULL;
 		lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
+
+		lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+				 "6453 Setup New Node 2B_DISC x%x "
+				 "Data:x%x x%x x%x\n",
+				 ndlp->nlp_DID, ndlp->nlp_flag,
+				 ndlp->nlp_state, vport->fc_flag);
+
 		spin_lock_irq(shost->host_lock);
 		ndlp->nlp_flag |= NLP_NPR_2B_DISC;
 		spin_unlock_irq(shost->host_lock);
@@ -5375,6 +5471,12 @@
 					 "0014 Could not enable ndlp\n");
 			return NULL;
 		}
+		lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+				 "6454 Setup Enabled Node 2B_DISC x%x "
+				 "Data:x%x x%x x%x\n",
+				 ndlp->nlp_DID, ndlp->nlp_flag,
+				 ndlp->nlp_state, vport->fc_flag);
+
 		spin_lock_irq(shost->host_lock);
 		ndlp->nlp_flag |= NLP_NPR_2B_DISC;
 		spin_unlock_irq(shost->host_lock);
@@ -5394,6 +5496,12 @@
 			 */
 			lpfc_cancel_retry_delay_tmo(vport, ndlp);
 
+			lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+					 "6455 Setup RSCN Node 2B_DISC x%x "
+					 "Data:x%x x%x x%x\n",
+					 ndlp->nlp_DID, ndlp->nlp_flag,
+					 ndlp->nlp_state, vport->fc_flag);
+
 			/* NVME Target mode waits until rport is known to be
 			 * impacted by the RSCN before it transitions.  No
 			 * active management - just go to NPR provided the
@@ -5405,15 +5513,32 @@
 			/* If we've already received a PLOGI from this NPort
 			 * we don't need to try to discover it again.
 			 */
-			if (ndlp->nlp_flag & NLP_RCV_PLOGI)
+			if (ndlp->nlp_flag & NLP_RCV_PLOGI &&
+			    !(ndlp->nlp_type &
+			     (NLP_FCP_TARGET | NLP_NVME_TARGET)))
 				return NULL;
 
+			ndlp->nlp_prev_state = ndlp->nlp_state;
+			lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
+
 			spin_lock_irq(shost->host_lock);
 			ndlp->nlp_flag |= NLP_NPR_2B_DISC;
 			spin_unlock_irq(shost->host_lock);
-		} else
+		} else {
+			lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+					 "6456 Skip Setup RSCN Node x%x "
+					 "Data:x%x x%x x%x\n",
+					 ndlp->nlp_DID, ndlp->nlp_flag,
+					 ndlp->nlp_state, vport->fc_flag);
 			ndlp = NULL;
+		}
 	} else {
+		lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
+				 "6457 Setup Active Node 2B_DISC x%x "
+				 "Data:x%x x%x x%x\n",
+				 ndlp->nlp_DID, ndlp->nlp_flag,
+				 ndlp->nlp_state, vport->fc_flag);
+
 		/* If the initiator received a PLOGI from this NPort or if the
 		 * initiator is already in the process of discovery on it,
 		 * there's no need to try to discover it again.
@@ -5565,10 +5690,10 @@
 
 	/* Start Discovery state <hba_state> */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
-			 "0202 Start Discovery hba state x%x "
-			 "Data: x%x x%x x%x\n",
+			 "0202 Start Discovery port state x%x "
+			 "flg x%x Data: x%x x%x x%x\n",
 			 vport->port_state, vport->fc_flag, vport->fc_plogi_cnt,
-			 vport->fc_adisc_cnt);
+			 vport->fc_adisc_cnt, vport->fc_npr_cnt);
 
 	/* First do ADISCs - if any */
 	num_sent = lpfc_els_disc_adisc(vport);
@@ -5996,7 +6121,7 @@
 	ndlp->nlp_flag |= NLP_RPI_REGISTERED;
 	ndlp->nlp_type |= NLP_FABRIC;
 	lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
-	lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
+	lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE | LOG_DISCOVERY,
 			 "0004 rpi:%x DID:%x flg:%x %d map:%x x%px\n",
 			 ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag,
 			 kref_read(&ndlp->kref),
@@ -6185,12 +6310,12 @@
 	INIT_LIST_HEAD(&ndlp->nlp_listp);
 	if (vport->phba->sli_rev == LPFC_SLI_REV4) {
 		ndlp->nlp_rpi = rpi;
-		lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE,
-				 "0007 rpi:%x DID:%x flg:%x refcnt:%d "
-				 "map:%x x%px\n", ndlp->nlp_rpi, ndlp->nlp_DID,
-				 ndlp->nlp_flag,
-				 kref_read(&ndlp->kref),
-				 ndlp->nlp_usg_map, ndlp);
+		lpfc_printf_vlog(vport, KERN_INFO, LOG_NODE | LOG_DISCOVERY,
+				 "0007 Init New ndlp x%px, rpi:x%x DID:%x "
+				 "flg:x%x refcnt:%d map:x%x\n",
+				 ndlp, ndlp->nlp_rpi, ndlp->nlp_DID,
+				 ndlp->nlp_flag, kref_read(&ndlp->kref),
+				 ndlp->nlp_usg_map);
 
 		ndlp->active_rrqs_xri_bitmap =
 				mempool_alloc(vport->phba->active_rrq_pool,
@@ -6419,7 +6544,8 @@
 				goto out;
 			} else if (ndlp->nlp_flag & NLP_RPI_REGISTERED) {
 				ret = 1;
-				lpfc_printf_log(phba, KERN_INFO, LOG_ELS,
+				lpfc_printf_log(phba, KERN_INFO,
+						LOG_NODE | LOG_DISCOVERY,
 						"2624 RPI %x DID %x flag %x "
 						"still logged in\n",
 						ndlp->nlp_rpi, ndlp->nlp_DID,
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_hw.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_hw.h
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2018 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -22,7 +22,7 @@
 
 #define FDMI_DID        0xfffffaU
 #define NameServer_DID  0xfffffcU
-#define SCR_DID         0xfffffdU
+#define Fabric_Cntl_DID 0xfffffdU
 #define Fabric_DID      0xfffffeU
 #define Bcast_DID       0xffffffU
 #define Mask_DID        0xffffffU
@@ -588,6 +588,7 @@
 #define ELS_CMD_RRQ       0x12000000
 #define ELS_CMD_REC       0x13000000
 #define ELS_CMD_RDP       0x18000000
+#define ELS_CMD_RDF       0x19000000
 #define ELS_CMD_PRLI      0x20100014
 #define ELS_CMD_NVMEPRLI  0x20140018
 #define ELS_CMD_PRLO      0x21100014
@@ -597,7 +598,6 @@
 #define ELS_CMD_ADISC     0x52000000
 #define ELS_CMD_FARP      0x54000000
 #define ELS_CMD_FARPR     0x55000000
-#define ELS_CMD_RPS       0x56000000
 #define ELS_CMD_RPL       0x57000000
 #define ELS_CMD_FAN       0x60000000
 #define ELS_CMD_RSCN      0x61040000
@@ -630,6 +630,7 @@
 #define ELS_CMD_RRQ       0x12
 #define ELS_CMD_REC       0x13
 #define ELS_CMD_RDP	  0x18
+#define ELS_CMD_RDF	  0x19
 #define ELS_CMD_PRLI      0x14001020
 #define ELS_CMD_NVMEPRLI  0x18001420
 #define ELS_CMD_PRLO      0x14001021
@@ -639,7 +640,6 @@
 #define ELS_CMD_ADISC     0x52
 #define ELS_CMD_FARP      0x54
 #define ELS_CMD_FARPR     0x55
-#define ELS_CMD_RPS       0x56
 #define ELS_CMD_RPL       0x57
 #define ELS_CMD_FAN       0x60
 #define ELS_CMD_RSCN      0x0461
@@ -919,24 +919,6 @@
 	} un;
 } __packed RNID;
 
-typedef struct  _RPS {		/* Structure is in Big Endian format */
-	union {
-		uint32_t portNum;
-		struct lpfc_name portName;
-	} un;
-} RPS;
-
-typedef struct  _RPS_RSP {	/* Structure is in Big Endian format */
-	uint16_t rsvd1;
-	uint16_t portStatus;
-	uint32_t linkFailureCnt;
-	uint32_t lossSyncCnt;
-	uint32_t lossSignalCnt;
-	uint32_t primSeqErrCnt;
-	uint32_t invalidXmitWord;
-	uint32_t crcCnt;
-} RPS_RSP;
-
 struct RLS {			/* Structure is in Big Endian format */
 	uint32_t rls;
 #define rls_rsvd_SHIFT		24
@@ -1340,25 +1322,8 @@
 /* lpfc_sli_ct_request defines the CT_IU preamble for FDMI commands */
 #define  SLI_CT_FDMI_Subtypes     0x10	/* Management Service Subtype */
 
-/*
- * Registered Port List Format
- */
-struct lpfc_fdmi_reg_port_list {
-	uint32_t EntryCnt;
-	uint32_t pe;		/* Variable-length array */
-};
-
-
 /* Definitions for HBA / Port attribute entries */
 
-struct lpfc_fdmi_attr_def { /* Defined in TLV format */
-	/* Structure is in Big Endian format */
-	uint32_t AttrType:16;
-	uint32_t AttrLen:16;
-	uint32_t AttrValue;  /* Marks start of Value (ATTRIBUTE_ENTRY) */
-};
-
-
 /* Attribute Entry */
 struct lpfc_fdmi_attr_entry {
 	union {
@@ -1369,7 +1334,13 @@
 	} un;
 };
 
-#define LPFC_FDMI_MAX_AE_SIZE	sizeof(struct lpfc_fdmi_attr_entry)
+struct lpfc_fdmi_attr_def { /* Defined in TLV format */
+	/* Structure is in Big Endian format */
+	uint32_t AttrType:16;
+	uint32_t AttrLen:16;
+	/* Marks start of Value (ATTRIBUTE_ENTRY) */
+	struct lpfc_fdmi_attr_entry AttrValue;
+} __packed;
 
 /*
  * HBA Attribute Block
@@ -1394,12 +1365,19 @@
 };
 
 /*
+ * Registered Port List Format
+ */
+struct lpfc_fdmi_reg_port_list {
+	uint32_t EntryCnt;
+	struct lpfc_fdmi_port_entry pe;
+} __packed;
+
+/*
  * Register HBA(RHBA)
  */
 struct lpfc_fdmi_reg_hba {
 	struct lpfc_fdmi_hba_ident hi;
-	struct lpfc_fdmi_reg_port_list rpl;	/* variable-length array */
-/* struct lpfc_fdmi_attr_block   ab; */
+	struct lpfc_fdmi_reg_port_list rpl;
 };
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_hw4.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_hw4.h
@@ -20,6 +20,8 @@
  * included with this package.                                     *
  *******************************************************************/
 
+#include <uapi/scsi/fc/fc_els.h>
+
 /* Macros to deal with bit fields. Each bit field must have 3 #defines
  * associated with it (_SHIFT, _MASK, and _WORD).
  * EG. For a bit field that is in the 7th bit of the "field4" field of a
@@ -210,7 +212,6 @@
 #define LPFC_MAX_IMAX          5000000
 #define LPFC_DEF_IMAX          0
 
-#define LPFC_IMAX_THRESHOLD    1000
 #define LPFC_MAX_AUTO_EQ_DELAY 120
 #define LPFC_EQ_DELAY_STEP     15
 #define LPFC_EQD_ISR_TRIGGER   20000
@@ -2320,6 +2321,7 @@
 #define ADD_STATUS_OPERATION_ALREADY_ACTIVE		0x67
 #define ADD_STATUS_FW_NOT_SUPPORTED			0xEB
 #define ADD_STATUS_INVALID_REQUEST			0x4B
+#define ADD_STATUS_FW_DOWNLOAD_HW_DISABLED              0x58
 
 struct lpfc_mbx_sli4_config {
 	struct mbox_header header;
@@ -2809,6 +2811,15 @@
 #define lpfc_mbx_rd_conf_trunk_SHIFT		12
 #define lpfc_mbx_rd_conf_trunk_MASK		0x0000000F
 #define lpfc_mbx_rd_conf_trunk_WORD		word2
+#define lpfc_mbx_rd_conf_pt_SHIFT		20
+#define lpfc_mbx_rd_conf_pt_MASK		0x00000003
+#define lpfc_mbx_rd_conf_pt_WORD		word2
+#define lpfc_mbx_rd_conf_tf_SHIFT		22
+#define lpfc_mbx_rd_conf_tf_MASK		0x00000001
+#define lpfc_mbx_rd_conf_tf_WORD		word2
+#define lpfc_mbx_rd_conf_ptv_SHIFT		23
+#define lpfc_mbx_rd_conf_ptv_MASK		0x00000001
+#define lpfc_mbx_rd_conf_ptv_WORD		word2
 #define lpfc_mbx_rd_conf_topology_SHIFT		24
 #define lpfc_mbx_rd_conf_topology_MASK		0x000000FF
 #define lpfc_mbx_rd_conf_topology_WORD		word2
@@ -3479,6 +3490,9 @@
 #define cfg_bv1s_SHIFT                          10
 #define cfg_bv1s_MASK                           0x00000001
 #define cfg_bv1s_WORD                           word19
+#define cfg_pvl_SHIFT				13
+#define cfg_pvl_MASK				0x00000001
+#define cfg_pvl_WORD				word19
 
 #define cfg_nsler_SHIFT                         12
 #define cfg_nsler_MASK                          0x00000001
@@ -3518,6 +3532,7 @@
 
 #define LPFC_SET_UE_RECOVERY		0x10
 #define LPFC_SET_MDS_DIAGS		0x11
+#define LPFC_SET_DUAL_DUMP		0x1e
 struct lpfc_mbx_set_feature {
 	struct mbox_header header;
 	uint32_t feature;
@@ -3532,6 +3547,15 @@
 #define lpfc_mbx_set_feature_mds_deep_loopbk_SHIFT  1
 #define lpfc_mbx_set_feature_mds_deep_loopbk_MASK   0x00000001
 #define lpfc_mbx_set_feature_mds_deep_loopbk_WORD   word6
+#define lpfc_mbx_set_feature_dd_SHIFT		0
+#define lpfc_mbx_set_feature_dd_MASK		0x00000001
+#define lpfc_mbx_set_feature_dd_WORD		word6
+#define lpfc_mbx_set_feature_ddquery_SHIFT	1
+#define lpfc_mbx_set_feature_ddquery_MASK	0x00000001
+#define lpfc_mbx_set_feature_ddquery_WORD	word6
+#define LPFC_DISABLE_DUAL_DUMP		0
+#define LPFC_ENABLE_DUAL_DUMP		1
+#define LPFC_QUERY_OP_DUAL_DUMP		2
 	uint32_t word7;
 #define lpfc_mbx_set_feature_UERP_SHIFT 0
 #define lpfc_mbx_set_feature_UERP_MASK  0x0000ffff
@@ -3903,6 +3927,9 @@
 #define LPFC_CHANGE_STATUS_FW_RESET		0x02
 #define LPFC_CHANGE_STATUS_PORT_MIGRATION	0x04
 #define LPFC_CHANGE_STATUS_PCI_RESET		0x05
+#define lpfc_wr_object_csf_SHIFT		8
+#define lpfc_wr_object_csf_MASK			0x00000001
+#define lpfc_wr_object_csf_WORD			word5
 		} response;
 	} u;
 };
@@ -4261,6 +4288,8 @@
 #define LPFC_SLI_EVENT_TYPE_DIAG_DUMP		0x5
 #define LPFC_SLI_EVENT_TYPE_MISCONFIGURED	0x9
 #define LPFC_SLI_EVENT_TYPE_REMOTE_DPORT	0xA
+#define LPFC_SLI_EVENT_TYPE_MISCONF_FAWWN	0xF
+#define LPFC_SLI_EVENT_TYPE_EEPROM_FAILURE	0x10
 };
 
 /*
@@ -4659,6 +4688,7 @@
 	uint32_t rsvd_12_15[4];         /* word 12-15 */
 };
 
+#define INHIBIT_ABORT 1
 #define T_REQUEST_TAG 3
 #define T_XRI_TAG 1
 
@@ -4767,6 +4797,23 @@
 	uint32_t fc_hdr_wd5;           /* word 15 */
 };
 
+#define ELS_RDF_REG_TAG_CNT		1
+struct lpfc_els_rdf_reg_desc {
+	struct fc_df_desc_fpin_reg	reg_desc;	/* descriptor header */
+	__be32				desc_tags[ELS_RDF_REG_TAG_CNT];
+							/* tags in reg_desc */
+};
+
+struct lpfc_els_rdf_req {
+	struct fc_els_rdf		rdf;	   /* hdr up to descriptors */
+	struct lpfc_els_rdf_reg_desc	reg_d1;	/* 1st descriptor */
+};
+
+struct lpfc_els_rdf_rsp {
+	struct fc_els_rdf_resp		rdf_resp;  /* hdr up to descriptors */
+	struct lpfc_els_rdf_reg_desc	reg_d1;	/* 1st descriptor */
+};
+
 union lpfc_wqe {
 	uint32_t words[16];
 	struct lpfc_wqe_generic generic;
@@ -4807,8 +4854,8 @@
 	struct send_frame_wqe send_frame;
 };
 
-#define MAGIC_NUMER_G6 0xFEAA0003
-#define MAGIC_NUMER_G7 0xFEAA0005
+#define MAGIC_NUMBER_G6 0xFEAA0003
+#define MAGIC_NUMBER_G7 0xFEAA0005
 
 struct lpfc_grp_hdr {
 	uint32_t size;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_init.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.  *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -40,6 +40,8 @@
 #include <linux/irq.h>
 #include <linux/bitops.h>
 #include <linux/crash_dump.h>
+#include <linux/cpu.h>
+#include <linux/cpuhotplug.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_device.h>
@@ -66,9 +68,13 @@
 #include "lpfc_version.h"
 #include "lpfc_ids.h"
 
+static enum cpuhp_state lpfc_cpuhp_state;
 /* Used when mapping IRQ vectors in a driver centric manner */
 static uint32_t lpfc_present_cpu;
 
+static void __lpfc_cpuhp_remove(struct lpfc_hba *phba);
+static void lpfc_cpuhp_remove(struct lpfc_hba *phba);
+static void lpfc_cpuhp_add(struct lpfc_hba *phba);
 static void lpfc_get_hba_model_desc(struct lpfc_hba *, uint8_t *, uint8_t *);
 static int lpfc_post_rcv_buf(struct lpfc_hba *);
 static int lpfc_sli4_queue_verify(struct lpfc_hba *);
@@ -506,21 +512,12 @@
 	lpfc_sli_read_link_ste(phba);
 
 	/* Reset the DFT_HBA_Q_DEPTH to the max xri  */
-	i = (mb->un.varRdConfig.max_xri + 1);
-	if (phba->cfg_hba_queue_depth > i) {
+	if (phba->cfg_hba_queue_depth > mb->un.varRdConfig.max_xri) {
 		lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
 				"3359 HBA queue depth changed from %d to %d\n",
-				phba->cfg_hba_queue_depth, i);
-		phba->cfg_hba_queue_depth = i;
-	}
-
-	/* Reset the DFT_LUN_Q_DEPTH to (max xri >> 3)  */
-	i = (mb->un.varRdConfig.max_xri >> 3);
-	if (phba->pport->cfg_lun_queue_depth > i) {
-		lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
-				"3360 LUN queue depth changed from %d to %d\n",
-				phba->pport->cfg_lun_queue_depth, i);
-		phba->pport->cfg_lun_queue_depth = i;
+				phba->cfg_hba_queue_depth,
+				mb->un.varRdConfig.max_xri);
+		phba->cfg_hba_queue_depth = mb->un.varRdConfig.max_xri;
 	}
 
 	phba->lmt = mb->un.varRdConfig.lmt;
@@ -1235,10 +1232,9 @@
 					     struct lpfc_hba, eq_delay_work);
 	struct lpfc_eq_intr_info *eqi, *eqi_new;
 	struct lpfc_queue *eq, *eq_next;
-	unsigned char *eqcnt = NULL;
+	unsigned char *ena_delay = NULL;
 	uint32_t usdelay;
 	int i;
-	bool update = false;
 
 	if (!phba->cfg_auto_imax || phba->pport->load_flag & FC_UNLOADING)
 		return;
@@ -1247,44 +1243,36 @@
 	    phba->pport->fc_flag & FC_OFFLINE_MODE)
 		goto requeue;
 
-	eqcnt = kcalloc(num_possible_cpus(), sizeof(unsigned char),
-			GFP_KERNEL);
-	if (!eqcnt)
+	ena_delay = kcalloc(phba->sli4_hba.num_possible_cpu, sizeof(*ena_delay),
+			    GFP_KERNEL);
+	if (!ena_delay)
 		goto requeue;
 
-	if (phba->cfg_irq_chann > 1) {
-		/* Loop thru all IRQ vectors */
-		for (i = 0; i < phba->cfg_irq_chann; i++) {
-			/* Get the EQ corresponding to the IRQ vector */
-			eq = phba->sli4_hba.hba_eq_hdl[i].eq;
-			if (!eq)
-				continue;
-			if (eq->q_mode) {
-				update = true;
-				break;
-			}
-			if (eqcnt[eq->last_cpu] < 2)
-				eqcnt[eq->last_cpu]++;
+	for (i = 0; i < phba->cfg_irq_chann; i++) {
+		/* Get the EQ corresponding to the IRQ vector */
+		eq = phba->sli4_hba.hba_eq_hdl[i].eq;
+		if (!eq)
+			continue;
+		if (eq->q_mode || eq->q_flag & HBA_EQ_DELAY_CHK) {
+			eq->q_flag &= ~HBA_EQ_DELAY_CHK;
+			ena_delay[eq->last_cpu] = 1;
 		}
-	} else
-		update = true;
+	}
 
 	for_each_present_cpu(i) {
 		eqi = per_cpu_ptr(phba->sli4_hba.eq_info, i);
-		if (!update && eqcnt[i] < 2) {
-			eqi->icnt = 0;
-			continue;
+		if (ena_delay[i]) {
+			usdelay = (eqi->icnt >> 10) * LPFC_EQ_DELAY_STEP;
+			if (usdelay > LPFC_MAX_AUTO_EQ_DELAY)
+				usdelay = LPFC_MAX_AUTO_EQ_DELAY;
+		} else {
+			usdelay = 0;
 		}
 
-		usdelay = (eqi->icnt / LPFC_IMAX_THRESHOLD) *
-			   LPFC_EQ_DELAY_STEP;
-		if (usdelay > LPFC_MAX_AUTO_EQ_DELAY)
-			usdelay = LPFC_MAX_AUTO_EQ_DELAY;
-
 		eqi->icnt = 0;
 
 		list_for_each_entry_safe(eq, eq_next, &eqi->list, cpu_list) {
-			if (eq->last_cpu != i) {
+			if (unlikely(eq->last_cpu != i)) {
 				eqi_new = per_cpu_ptr(phba->sli4_hba.eq_info,
 						      eq->last_cpu);
 				list_move_tail(&eq->cpu_list, &eqi_new->list);
@@ -1296,7 +1284,7 @@
 		}
 	}
 
-	kfree(eqcnt);
+	kfree(ena_delay);
 
 requeue:
 	queue_delayed_work(phba->wq, &phba->eq_delay_work,
@@ -1365,7 +1353,7 @@
 	if (vports != NULL)
 		for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) {
 			lpfc_rcv_seq_check_edtov(vports[i]);
-			lpfc_fdmi_num_disc_check(vports[i]);
+			lpfc_fdmi_change_check(vports[i]);
 		}
 	lpfc_destroy_vport_work_array(phba, vports);
 
@@ -3053,11 +3041,12 @@
 				continue;
 			}
 			ndlp->nlp_rpi = rpi;
-			lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_NODE,
-					 "0009 rpi:%x DID:%x "
-					 "flg:%x map:%x x%px\n", ndlp->nlp_rpi,
-					 ndlp->nlp_DID, ndlp->nlp_flag,
-					 ndlp->nlp_usg_map, ndlp);
+			lpfc_printf_vlog(ndlp->vport, KERN_INFO,
+					 LOG_NODE | LOG_DISCOVERY,
+					 "0009 Assign RPI x%x to ndlp x%px "
+					 "DID:x%06x flg:x%x map:x%x\n",
+					 ndlp->nlp_rpi, ndlp, ndlp->nlp_DID,
+					 ndlp->nlp_flag, ndlp->nlp_usg_map);
 		}
 	}
 	lpfc_destroy_vport_work_array(phba, vports);
@@ -3387,6 +3376,8 @@
 	if (phba->cfg_xri_rebalancing)
 		lpfc_create_multixri_pools(phba);
 
+	lpfc_cpuhp_add(phba);
+
 	lpfc_unblock_mgmt_io(phba);
 	return 0;
 }
@@ -3453,10 +3444,15 @@
 			list_for_each_entry_safe(ndlp, next_ndlp,
 						 &vports[i]->fc_nodes,
 						 nlp_listp) {
-				if (!NLP_CHK_NODE_ACT(ndlp))
-					continue;
-				if (ndlp->nlp_state == NLP_STE_UNUSED_NODE)
+				if ((!NLP_CHK_NODE_ACT(ndlp)) ||
+				    ndlp->nlp_state == NLP_STE_UNUSED_NODE) {
+					/* Driver must assume RPI is invalid for
+					 * any unused or inactive node.
+					 */
+					ndlp->nlp_rpi = LPFC_RPI_ALLOC_ERROR;
 					continue;
+				}
+
 				if (ndlp->nlp_type & NLP_FABRIC) {
 					lpfc_disc_state_machine(vports[i], ndlp,
 						NULL, NLP_EVT_DEVICE_RECOVERY);
@@ -3472,16 +3468,16 @@
 				 * comes back online.
 				 */
 				if (phba->sli_rev == LPFC_SLI_REV4) {
-					lpfc_printf_vlog(ndlp->vport,
-							 KERN_INFO, LOG_NODE,
-							 "0011 lpfc_offline: "
-							 "ndlp:x%px did %x "
-							 "usgmap:x%x rpi:%x\n",
-							 ndlp, ndlp->nlp_DID,
-							 ndlp->nlp_usg_map,
-							 ndlp->nlp_rpi);
-
+					lpfc_printf_vlog(ndlp->vport, KERN_INFO,
+						 LOG_NODE | LOG_DISCOVERY,
+						 "0011 Free RPI x%x on "
+						 "ndlp:x%px did x%x "
+						 "usgmap:x%x\n",
+						 ndlp->nlp_rpi, ndlp,
+						 ndlp->nlp_DID,
+						 ndlp->nlp_usg_map);
 					lpfc_sli4_free_rpi(phba, ndlp->nlp_rpi);
+					ndlp->nlp_rpi = LPFC_RPI_ALLOC_ERROR;
 				}
 				lpfc_unreg_rpi(vports[i], ndlp);
 			}
@@ -3545,6 +3541,7 @@
 			spin_unlock_irq(shost->host_lock);
 		}
 	lpfc_destroy_vport_work_array(phba, vports);
+	__lpfc_cpuhp_remove(phba);
 
 	if (phba->cfg_xri_rebalancing)
 		lpfc_destroy_multixri_pools(phba);
@@ -5283,10 +5280,10 @@
 	evt_type = bf_get(lpfc_trailer_type, acqe_sli);
 
 	lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
-			"2901 Async SLI event - Event Data1:x%08x Event Data2:"
-			"x%08x SLI Event Type:%d\n",
+			"2901 Async SLI event - Type:%d, Event Data: x%08x "
+			"x%08x x%08x x%08x\n", evt_type,
 			acqe_sli->event_data1, acqe_sli->event_data2,
-			evt_type);
+			acqe_sli->reserved, acqe_sli->trailer);
 
 	port_name = phba->Port[0];
 	if (port_name == 0x00)
@@ -5433,11 +5430,26 @@
 				"Event Data1:x%08x Event Data2: x%08x\n",
 				acqe_sli->event_data1, acqe_sli->event_data2);
 		break;
+	case LPFC_SLI_EVENT_TYPE_MISCONF_FAWWN:
+		/* Misconfigured WWN. Reports that the SLI Port is configured
+		 * to use FA-WWN, but the attached device doesn’t support it.
+		 * No driver action is required.
+		 * Event Data1 - N.A, Event Data2 - N.A
+		 */
+		lpfc_log_msg(phba, KERN_WARNING, LOG_SLI,
+			     "2699 Misconfigured FA-WWN - Attached device does "
+			     "not support FA-WWN\n");
+		break;
+	case LPFC_SLI_EVENT_TYPE_EEPROM_FAILURE:
+		/* EEPROM failure. No driver action is required */
+		lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
+			     "2518 EEPROM failure - "
+			     "Event Data1: x%08x Event Data2: x%08x\n",
+			     acqe_sli->event_data1, acqe_sli->event_data2);
+		break;
 	default:
 		lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
-				"3193 Async SLI event - Event Data1:x%08x Event Data2:"
-				"x%08x SLI Event Type:%d\n",
-				acqe_sli->event_data1, acqe_sli->event_data2,
+				"3193 Unrecognized SLI event, type: 0x%x",
 				evt_type);
 		break;
 	}
@@ -5976,6 +5988,29 @@
 }
 
 /**
+ * lpfc_cpumask_of_node_init - initalizes cpumask of phba's NUMA node
+ * @phba: Pointer to HBA context object.
+ *
+ **/
+static void
+lpfc_cpumask_of_node_init(struct lpfc_hba *phba)
+{
+	unsigned int cpu, numa_node;
+	struct cpumask *numa_mask = &phba->sli4_hba.numa_mask;
+
+	cpumask_clear(numa_mask);
+
+	/* Check if we're a NUMA architecture */
+	numa_node = dev_to_node(&phba->pcidev->dev);
+	if (numa_node == NUMA_NO_NODE)
+		return;
+
+	for_each_possible_cpu(cpu)
+		if (cpu_to_node(cpu) == numa_node)
+			cpumask_set_cpu(cpu, numa_mask);
+}
+
+/**
  * lpfc_enable_pci_dev - Enable a generic PCI device.
  * @phba: pointer to lpfc hba data structure.
  *
@@ -6416,8 +6451,9 @@
 	u32 if_fam;
 
 	phba->sli4_hba.num_present_cpu = lpfc_present_cpu;
-	phba->sli4_hba.num_possible_cpu = num_possible_cpus();
+	phba->sli4_hba.num_possible_cpu = cpumask_last(cpu_possible_mask) + 1;
 	phba->sli4_hba.curr_disp_cpu = 0;
+	lpfc_cpumask_of_node_init(phba);
 
 	/* Get all the module params for configuring this host */
 	lpfc_get_cfgparam(phba);
@@ -6953,6 +6989,7 @@
 	phba->sli4_hba.num_possible_cpu = 0;
 	phba->sli4_hba.num_present_cpu = 0;
 	phba->sli4_hba.curr_disp_cpu = 0;
+	cpumask_clear(&phba->sli4_hba.numa_mask);
 
 	/* Free memory allocated for fast-path work queue handles */
 	kfree(phba->sli4_hba.hba_eq_hdl);
@@ -7126,7 +7163,7 @@
 		if (iocbq_entry == NULL) {
 			printk(KERN_ERR "%s: only allocated %d iocbs of "
 				"expected %d count. Unloading driver.\n",
-				__func__, i, LPFC_IOCB_LIST_CNT);
+				__func__, i, iocb_count);
 			goto out_free_iocbq;
 		}
 
@@ -7545,18 +7582,10 @@
 
 	if (phba->nvmet_support) {
 		/* Only 1 vport (pport) will support NVME target */
-		if (phba->txrdy_payload_pool == NULL) {
-			phba->txrdy_payload_pool = dma_pool_create(
-				"txrdy_pool", &phba->pcidev->dev,
-				TXRDY_PAYLOAD_LEN, 16, 0);
-			if (phba->txrdy_payload_pool) {
-				phba->targetport = NULL;
-				phba->cfg_enable_fc4_type = LPFC_ENABLE_NVME;
-				lpfc_printf_log(phba, KERN_INFO,
-						LOG_INIT | LOG_NVME_DISC,
-						"6076 NVME Target Found\n");
-			}
-		}
+		phba->targetport = NULL;
+		phba->cfg_enable_fc4_type = LPFC_ENABLE_NVME;
+		lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_NVME_DISC,
+				"6076 NVME Target Found\n");
 	}
 
 	lpfc_debugfs_initialize(vport);
@@ -8235,6 +8264,86 @@
 	memset(&phba->sli4_hba.bmbx, 0, sizeof(struct lpfc_bmbx));
 }
 
+static const char * const lpfc_topo_to_str[] = {
+	"Loop then P2P",
+	"Loopback",
+	"P2P Only",
+	"Unsupported",
+	"Loop Only",
+	"Unsupported",
+	"P2P then Loop",
+};
+
+/**
+ * lpfc_map_topology - Map the topology read from READ_CONFIG
+ * @phba: pointer to lpfc hba data structure.
+ * @rdconf: pointer to read config data
+ *
+ * This routine is invoked to map the topology values as read
+ * from the read config mailbox command. If the persistent
+ * topology feature is supported, the firmware will provide the
+ * saved topology information to be used in INIT_LINK
+ *
+ **/
+#define	LINK_FLAGS_DEF	0x0
+#define	LINK_FLAGS_P2P	0x1
+#define	LINK_FLAGS_LOOP	0x2
+static void
+lpfc_map_topology(struct lpfc_hba *phba, struct lpfc_mbx_read_config *rd_config)
+{
+	u8 ptv, tf, pt;
+
+	ptv = bf_get(lpfc_mbx_rd_conf_ptv, rd_config);
+	tf = bf_get(lpfc_mbx_rd_conf_tf, rd_config);
+	pt = bf_get(lpfc_mbx_rd_conf_pt, rd_config);
+
+	lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
+			"2027 Read Config Data : ptv:0x%x, tf:0x%x pt:0x%x",
+			 ptv, tf, pt);
+	if (!ptv) {
+		lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
+				"2019 FW does not support persistent topology "
+				"Using driver parameter defined value [%s]",
+				lpfc_topo_to_str[phba->cfg_topology]);
+		return;
+	}
+	/* FW supports persistent topology - override module parameter value */
+	phba->hba_flag |= HBA_PERSISTENT_TOPO;
+	switch (phba->pcidev->device) {
+	case PCI_DEVICE_ID_LANCER_G7_FC:
+	case PCI_DEVICE_ID_LANCER_G6_FC:
+		if (!tf) {
+			phba->cfg_topology = ((pt == LINK_FLAGS_LOOP)
+					? FLAGS_TOPOLOGY_MODE_LOOP
+					: FLAGS_TOPOLOGY_MODE_PT_PT);
+		} else {
+			phba->hba_flag &= ~HBA_PERSISTENT_TOPO;
+		}
+		break;
+	default:	/* G5 */
+		if (tf) {
+			/* If topology failover set - pt is '0' or '1' */
+			phba->cfg_topology = (pt ? FLAGS_TOPOLOGY_MODE_PT_LOOP :
+					      FLAGS_TOPOLOGY_MODE_LOOP_PT);
+		} else {
+			phba->cfg_topology = ((pt == LINK_FLAGS_P2P)
+					? FLAGS_TOPOLOGY_MODE_PT_PT
+					: FLAGS_TOPOLOGY_MODE_LOOP);
+		}
+		break;
+	}
+	if (phba->hba_flag & HBA_PERSISTENT_TOPO) {
+		lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
+				"2020 Using persistent topology value [%s]",
+				lpfc_topo_to_str[phba->cfg_topology]);
+	} else {
+		lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
+				"2021 Invalid topology values from FW "
+				"Using driver parameter defined value [%s]",
+				lpfc_topo_to_str[phba->cfg_topology]);
+	}
+}
+
 /**
  * lpfc_sli4_read_config - Get the config parameters.
  * @phba: pointer to lpfc hba data structure.
@@ -8346,6 +8455,7 @@
 		phba->max_vpi = (phba->sli4_hba.max_cfg_param.max_vpi > 0) ?
 				(phba->sli4_hba.max_cfg_param.max_vpi - 1) : 0;
 		phba->max_vports = phba->max_vpi;
+		lpfc_map_topology(phba, rd_config);
 		lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
 				"2003 cfg params Extents? %d "
 				"XRI(B:%d M:%d), "
@@ -8619,8 +8729,8 @@
 	 */
 
 	if (phba->nvmet_support) {
-		if (phba->cfg_irq_chann < phba->cfg_nvmet_mrq)
-			phba->cfg_nvmet_mrq = phba->cfg_irq_chann;
+		if (phba->cfg_hdw_queue < phba->cfg_nvmet_mrq)
+			phba->cfg_nvmet_mrq = phba->cfg_hdw_queue;
 		if (phba->cfg_nvmet_mrq > LPFC_NVMET_MRQ_MAX)
 			phba->cfg_nvmet_mrq = LPFC_NVMET_MRQ_MAX;
 	}
@@ -9116,6 +9226,7 @@
 		/* Free the CQ/WQ corresponding to the Hardware Queue */
 		lpfc_sli4_queue_free(hdwq[idx].io_cq);
 		lpfc_sli4_queue_free(hdwq[idx].io_wq);
+		hdwq[idx].hba_eq = NULL;
 		hdwq[idx].io_cq = NULL;
 		hdwq[idx].io_wq = NULL;
 		if (phba->cfg_xpsgl && !phba->nvmet_support)
@@ -9160,6 +9271,8 @@
 	}
 	spin_unlock_irq(&phba->hbalock);
 
+	lpfc_sli4_cleanup_poll_list(phba);
+
 	/* Release HBA eqs */
 	if (phba->sli4_hba.hdwq)
 		lpfc_sli4_release_hdwq(phba);
@@ -10320,6 +10433,8 @@
 	case LPFC_SLI_INTF_IF_TYPE_6:
 		iounmap(phba->sli4_hba.drbl_regs_memmap_p);
 		iounmap(phba->sli4_hba.conf_regs_memmap_p);
+		if (phba->sli4_hba.dpp_regs_memmap_p)
+			iounmap(phba->sli4_hba.dpp_regs_memmap_p);
 		break;
 	case LPFC_SLI_INTF_IF_TYPE_1:
 	default:
@@ -10581,7 +10696,6 @@
 		 */
 		if ((match == LPFC_FIND_BY_EQ) &&
 		    (cpup->flag & LPFC_CPU_FIRST_IRQ) &&
-		    (cpup->irq != LPFC_VECTOR_MAP_EMPTY) &&
 		    (cpup->eq == id))
 			return cpu;
 
@@ -10619,6 +10733,75 @@
 }
 #endif
 
+/*
+ * lpfc_assign_eq_map_info - Assigns eq for vector_map structure
+ * @phba: pointer to lpfc hba data structure.
+ * @eqidx: index for eq and irq vector
+ * @flag: flags to set for vector_map structure
+ * @cpu: cpu used to index vector_map structure
+ *
+ * The routine assigns eq info into vector_map structure
+ */
+static inline void
+lpfc_assign_eq_map_info(struct lpfc_hba *phba, uint16_t eqidx, uint16_t flag,
+			unsigned int cpu)
+{
+	struct lpfc_vector_map_info *cpup = &phba->sli4_hba.cpu_map[cpu];
+	struct lpfc_hba_eq_hdl *eqhdl = lpfc_get_eq_hdl(eqidx);
+
+	cpup->eq = eqidx;
+	cpup->flag |= flag;
+
+	lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
+			"3336 Set Affinity: CPU %d irq %d eq %d flag x%x\n",
+			cpu, eqhdl->irq, cpup->eq, cpup->flag);
+}
+
+/**
+ * lpfc_cpu_map_array_init - Initialize cpu_map structure
+ * @phba: pointer to lpfc hba data structure.
+ *
+ * The routine initializes the cpu_map array structure
+ */
+static void
+lpfc_cpu_map_array_init(struct lpfc_hba *phba)
+{
+	struct lpfc_vector_map_info *cpup;
+	struct lpfc_eq_intr_info *eqi;
+	int cpu;
+
+	for_each_possible_cpu(cpu) {
+		cpup = &phba->sli4_hba.cpu_map[cpu];
+		cpup->phys_id = LPFC_VECTOR_MAP_EMPTY;
+		cpup->core_id = LPFC_VECTOR_MAP_EMPTY;
+		cpup->hdwq = LPFC_VECTOR_MAP_EMPTY;
+		cpup->eq = LPFC_VECTOR_MAP_EMPTY;
+		cpup->flag = 0;
+		eqi = per_cpu_ptr(phba->sli4_hba.eq_info, cpu);
+		INIT_LIST_HEAD(&eqi->list);
+		eqi->icnt = 0;
+	}
+}
+
+/**
+ * lpfc_hba_eq_hdl_array_init - Initialize hba_eq_hdl structure
+ * @phba: pointer to lpfc hba data structure.
+ *
+ * The routine initializes the hba_eq_hdl array structure
+ */
+static void
+lpfc_hba_eq_hdl_array_init(struct lpfc_hba *phba)
+{
+	struct lpfc_hba_eq_hdl *eqhdl;
+	int i;
+
+	for (i = 0; i < phba->cfg_irq_chann; i++) {
+		eqhdl = lpfc_get_eq_hdl(i);
+		eqhdl->irq = LPFC_VECTOR_MAP_EMPTY;
+		eqhdl->phba = phba;
+	}
+}
+
 /**
  * lpfc_cpu_affinity_check - Check vector CPU affinity mappings
  * @phba: pointer to lpfc hba data structure.
@@ -10637,22 +10820,10 @@
 	int max_core_id, min_core_id;
 	struct lpfc_vector_map_info *cpup;
 	struct lpfc_vector_map_info *new_cpup;
-	const struct cpumask *maskp;
 #ifdef CONFIG_X86
 	struct cpuinfo_x86 *cpuinfo;
 #endif
 
-	/* Init cpu_map array */
-	for_each_possible_cpu(cpu) {
-		cpup = &phba->sli4_hba.cpu_map[cpu];
-		cpup->phys_id = LPFC_VECTOR_MAP_EMPTY;
-		cpup->core_id = LPFC_VECTOR_MAP_EMPTY;
-		cpup->hdwq = LPFC_VECTOR_MAP_EMPTY;
-		cpup->eq = LPFC_VECTOR_MAP_EMPTY;
-		cpup->irq = LPFC_VECTOR_MAP_EMPTY;
-		cpup->flag = 0;
-	}
-
 	max_phys_id = 0;
 	min_phys_id = LPFC_VECTOR_MAP_EMPTY;
 	max_core_id = 0;
@@ -10688,65 +10859,6 @@
 			min_core_id = cpup->core_id;
 	}
 
-	for_each_possible_cpu(i) {
-		struct lpfc_eq_intr_info *eqi =
-			per_cpu_ptr(phba->sli4_hba.eq_info, i);
-
-		INIT_LIST_HEAD(&eqi->list);
-		eqi->icnt = 0;
-	}
-
-	/* This loop sets up all CPUs that are affinitized with a
-	 * irq vector assigned to the driver. All affinitized CPUs
-	 * will get a link to that vectors IRQ and EQ.
-	 *
-	 * NULL affinity mask handling:
-	 * If irq count is greater than one, log an error message.
-	 * If the null mask is received for the first irq, find the
-	 * first present cpu, and assign the eq index to ensure at
-	 * least one EQ is assigned.
-	 */
-	for (idx = 0; idx <  phba->cfg_irq_chann; idx++) {
-		/* Get a CPU mask for all CPUs affinitized to this vector */
-		maskp = pci_irq_get_affinity(phba->pcidev, idx);
-		if (!maskp) {
-			if (phba->cfg_irq_chann > 1)
-				lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
-						"3329 No affinity mask found "
-						"for vector %d (%d)\n",
-						idx, phba->cfg_irq_chann);
-			if (!idx) {
-				cpu = cpumask_first(cpu_present_mask);
-				cpup = &phba->sli4_hba.cpu_map[cpu];
-				cpup->eq = idx;
-				cpup->irq = pci_irq_vector(phba->pcidev, idx);
-				cpup->flag |= LPFC_CPU_FIRST_IRQ;
-			}
-			break;
-		}
-
-		i = 0;
-		/* Loop through all CPUs associated with vector idx */
-		for_each_cpu_and(cpu, maskp, cpu_present_mask) {
-			/* Set the EQ index and IRQ for that vector */
-			cpup = &phba->sli4_hba.cpu_map[cpu];
-			cpup->eq = idx;
-			cpup->irq = pci_irq_vector(phba->pcidev, idx);
-
-			/* If this is the first CPU thats assigned to this
-			 * vector, set LPFC_CPU_FIRST_IRQ.
-			 */
-			if (!i)
-				cpup->flag |= LPFC_CPU_FIRST_IRQ;
-			i++;
-
-			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
-					"3336 Set Affinity: CPU %d "
-					"irq %d eq %d flag x%x\n",
-					cpu, cpup->irq, cpup->eq, cpup->flag);
-		}
-	}
-
 	/* After looking at each irq vector assigned to this pcidev, its
 	 * possible to see that not ALL CPUs have been accounted for.
 	 * Next we will set any unassigned (unaffinitized) cpu map
@@ -10772,7 +10884,7 @@
 			for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) {
 				new_cpup = &phba->sli4_hba.cpu_map[new_cpu];
 				if (!(new_cpup->flag & LPFC_CPU_MAP_UNASSIGN) &&
-				    (new_cpup->irq != LPFC_VECTOR_MAP_EMPTY) &&
+				    (new_cpup->eq != LPFC_VECTOR_MAP_EMPTY) &&
 				    (new_cpup->phys_id == cpup->phys_id))
 					goto found_same;
 				new_cpu = cpumask_next(
@@ -10785,7 +10897,6 @@
 found_same:
 			/* We found a matching phys_id, so copy the IRQ info */
 			cpup->eq = new_cpup->eq;
-			cpup->irq = new_cpup->irq;
 
 			/* Bump start_cpu to the next slot to minmize the
 			 * chance of having multiple unassigned CPU entries
@@ -10797,9 +10908,10 @@
 
 			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 					"3337 Set Affinity: CPU %d "
-					"irq %d from id %d same "
+					"eq %d from peer cpu %d same "
 					"phys_id (%d)\n",
-					cpu, cpup->irq, new_cpu, cpup->phys_id);
+					cpu, cpup->eq, new_cpu,
+					cpup->phys_id);
 		}
 	}
 
@@ -10823,7 +10935,7 @@
 			for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) {
 				new_cpup = &phba->sli4_hba.cpu_map[new_cpu];
 				if (!(new_cpup->flag & LPFC_CPU_MAP_UNASSIGN) &&
-				    (new_cpup->irq != LPFC_VECTOR_MAP_EMPTY))
+				    (new_cpup->eq != LPFC_VECTOR_MAP_EMPTY))
 					goto found_any;
 				new_cpu = cpumask_next(
 					new_cpu, cpu_present_mask);
@@ -10833,13 +10945,12 @@
 			/* We should never leave an entry unassigned */
 			lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
 					"3339 Set Affinity: CPU %d "
-					"irq %d UNASSIGNED\n",
-					cpup->hdwq, cpup->irq);
+					"eq %d UNASSIGNED\n",
+					cpup->hdwq, cpup->eq);
 			continue;
 found_any:
 			/* We found an available entry, copy the IRQ info */
 			cpup->eq = new_cpup->eq;
-			cpup->irq = new_cpup->irq;
 
 			/* Bump start_cpu to the next slot to minmize the
 			 * chance of having multiple unassigned CPU entries
@@ -10851,8 +10962,8 @@
 
 			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 					"3338 Set Affinity: CPU %d "
-					"irq %d from id %d (%d/%d)\n",
-					cpu, cpup->irq, new_cpu,
+					"eq %d from peer cpu %d (%d/%d)\n",
+					cpu, cpup->eq, new_cpu,
 					new_cpup->phys_id, new_cpup->core_id);
 		}
 	}
@@ -10873,11 +10984,11 @@
 		idx++;
 		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
 				"3333 Set Affinity: CPU %d (phys %d core %d): "
-				"hdwq %d eq %d irq %d flg x%x\n",
+				"hdwq %d eq %d flg x%x\n",
 				cpu, cpup->phys_id, cpup->core_id,
-				cpup->hdwq, cpup->eq, cpup->irq, cpup->flag);
+				cpup->hdwq, cpup->eq, cpup->flag);
 	}
-	/* Finally we need to associate a hdwq with each cpu_map entry
+	/* Associate a hdwq with each cpu_map entry
 	 * This will be 1 to 1 - hdwq to cpu, unless there are less
 	 * hardware queues then CPUs. For that case we will just round-robin
 	 * the available hardware queues as they get assigned to CPUs.
@@ -10951,9 +11062,26 @@
  logit:
 		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
 				"3335 Set Affinity: CPU %d (phys %d core %d): "
-				"hdwq %d eq %d irq %d flg x%x\n",
+				"hdwq %d eq %d flg x%x\n",
 				cpu, cpup->phys_id, cpup->core_id,
-				cpup->hdwq, cpup->eq, cpup->irq, cpup->flag);
+				cpup->hdwq, cpup->eq, cpup->flag);
+	}
+
+	/*
+	 * Initialize the cpu_map slots for not-present cpus in case
+	 * a cpu is hot-added. Perform a simple hdwq round robin assignment.
+	 */
+	idx = 0;
+	for_each_possible_cpu(cpu) {
+		cpup = &phba->sli4_hba.cpu_map[cpu];
+		if (cpup->hdwq != LPFC_VECTOR_MAP_EMPTY)
+			continue;
+
+		cpup->hdwq = idx++ % phba->cfg_hdw_queue;
+		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
+				"3340 Set Affinity: not present "
+				"CPU %d hdwq %d\n",
+				cpu, cpup->hdwq);
 	}
 
 	/* The cpu_map array will be used later during initialization
@@ -10963,11 +11091,288 @@
 }
 
 /**
+ * lpfc_cpuhp_get_eq
+ *
+ * @phba:   pointer to lpfc hba data structure.
+ * @cpu:    cpu going offline
+ * @eqlist:
+ */
+static int
+lpfc_cpuhp_get_eq(struct lpfc_hba *phba, unsigned int cpu,
+		  struct list_head *eqlist)
+{
+	const struct cpumask *maskp;
+	struct lpfc_queue *eq;
+	struct cpumask *tmp;
+	u16 idx;
+
+	tmp = kzalloc(cpumask_size(), GFP_KERNEL);
+	if (!tmp)
+		return -ENOMEM;
+
+	for (idx = 0; idx < phba->cfg_irq_chann; idx++) {
+		maskp = pci_irq_get_affinity(phba->pcidev, idx);
+		if (!maskp)
+			continue;
+		/*
+		 * if irq is not affinitized to the cpu going
+		 * then we don't need to poll the eq attached
+		 * to it.
+		 */
+		if (!cpumask_and(tmp, maskp, cpumask_of(cpu)))
+			continue;
+		/* get the cpus that are online and are affini-
+		 * tized to this irq vector.  If the count is
+		 * more than 1 then cpuhp is not going to shut-
+		 * down this vector.  Since this cpu has not
+		 * gone offline yet, we need >1.
+		 */
+		cpumask_and(tmp, maskp, cpu_online_mask);
+		if (cpumask_weight(tmp) > 1)
+			continue;
+
+		/* Now that we have an irq to shutdown, get the eq
+		 * mapped to this irq.  Note: multiple hdwq's in
+		 * the software can share an eq, but eventually
+		 * only eq will be mapped to this vector
+		 */
+		eq = phba->sli4_hba.hba_eq_hdl[idx].eq;
+		list_add(&eq->_poll_list, eqlist);
+	}
+	kfree(tmp);
+	return 0;
+}
+
+static void __lpfc_cpuhp_remove(struct lpfc_hba *phba)
+{
+	if (phba->sli_rev != LPFC_SLI_REV4)
+		return;
+
+	cpuhp_state_remove_instance_nocalls(lpfc_cpuhp_state,
+					    &phba->cpuhp);
+	/*
+	 * unregistering the instance doesn't stop the polling
+	 * timer. Wait for the poll timer to retire.
+	 */
+	synchronize_rcu();
+	del_timer_sync(&phba->cpuhp_poll_timer);
+}
+
+static void lpfc_cpuhp_remove(struct lpfc_hba *phba)
+{
+	if (phba->pport->fc_flag & FC_OFFLINE_MODE)
+		return;
+
+	__lpfc_cpuhp_remove(phba);
+}
+
+static void lpfc_cpuhp_add(struct lpfc_hba *phba)
+{
+	if (phba->sli_rev != LPFC_SLI_REV4)
+		return;
+
+	rcu_read_lock();
+
+	if (!list_empty(&phba->poll_list)) {
+		timer_setup(&phba->cpuhp_poll_timer, lpfc_sli4_poll_hbtimer, 0);
+		mod_timer(&phba->cpuhp_poll_timer,
+			  jiffies + msecs_to_jiffies(LPFC_POLL_HB));
+	}
+
+	rcu_read_unlock();
+
+	cpuhp_state_add_instance_nocalls(lpfc_cpuhp_state,
+					 &phba->cpuhp);
+}
+
+static int __lpfc_cpuhp_checks(struct lpfc_hba *phba, int *retval)
+{
+	if (phba->pport->load_flag & FC_UNLOADING) {
+		*retval = -EAGAIN;
+		return true;
+	}
+
+	if (phba->sli_rev != LPFC_SLI_REV4) {
+		*retval = 0;
+		return true;
+	}
+
+	/* proceed with the hotplug */
+	return false;
+}
+
+/**
+ * lpfc_irq_set_aff - set IRQ affinity
+ * @eqhdl: EQ handle
+ * @cpu: cpu to set affinity
+ *
+ **/
+static inline void
+lpfc_irq_set_aff(struct lpfc_hba_eq_hdl *eqhdl, unsigned int cpu)
+{
+	cpumask_clear(&eqhdl->aff_mask);
+	cpumask_set_cpu(cpu, &eqhdl->aff_mask);
+	irq_set_status_flags(eqhdl->irq, IRQ_NO_BALANCING);
+	irq_set_affinity_hint(eqhdl->irq, &eqhdl->aff_mask);
+}
+
+/**
+ * lpfc_irq_clear_aff - clear IRQ affinity
+ * @eqhdl: EQ handle
+ *
+ **/
+static inline void
+lpfc_irq_clear_aff(struct lpfc_hba_eq_hdl *eqhdl)
+{
+	cpumask_clear(&eqhdl->aff_mask);
+	irq_clear_status_flags(eqhdl->irq, IRQ_NO_BALANCING);
+	irq_set_affinity_hint(eqhdl->irq, &eqhdl->aff_mask);
+}
+
+/**
+ * lpfc_irq_rebalance - rebalances IRQ affinity according to cpuhp event
+ * @phba: pointer to HBA context object.
+ * @cpu: cpu going offline/online
+ * @offline: true, cpu is going offline. false, cpu is coming online.
+ *
+ * If cpu is going offline, we'll try our best effort to find the next
+ * online cpu on the phba's NUMA node and migrate all offlining IRQ affinities.
+ *
+ * If cpu is coming online, reaffinitize the IRQ back to the onlineng cpu.
+ *
+ * Note: Call only if cfg_irq_numa is enabled, otherwise rely on
+ *	 PCI_IRQ_AFFINITY to auto-manage IRQ affinity.
+ *
+ **/
+static void
+lpfc_irq_rebalance(struct lpfc_hba *phba, unsigned int cpu, bool offline)
+{
+	struct lpfc_vector_map_info *cpup;
+	struct cpumask *aff_mask;
+	unsigned int cpu_select, cpu_next, idx;
+	const struct cpumask *numa_mask;
+
+	if (!phba->cfg_irq_numa)
+		return;
+
+	numa_mask = &phba->sli4_hba.numa_mask;
+
+	if (!cpumask_test_cpu(cpu, numa_mask))
+		return;
+
+	cpup = &phba->sli4_hba.cpu_map[cpu];
+
+	if (!(cpup->flag & LPFC_CPU_FIRST_IRQ))
+		return;
+
+	if (offline) {
+		/* Find next online CPU on NUMA node */
+		cpu_next = cpumask_next_wrap(cpu, numa_mask, cpu, true);
+		cpu_select = lpfc_next_online_numa_cpu(numa_mask, cpu_next);
+
+		/* Found a valid CPU */
+		if ((cpu_select < nr_cpu_ids) && (cpu_select != cpu)) {
+			/* Go through each eqhdl and ensure offlining
+			 * cpu aff_mask is migrated
+			 */
+			for (idx = 0; idx < phba->cfg_irq_chann; idx++) {
+				aff_mask = lpfc_get_aff_mask(idx);
+
+				/* Migrate affinity */
+				if (cpumask_test_cpu(cpu, aff_mask))
+					lpfc_irq_set_aff(lpfc_get_eq_hdl(idx),
+							 cpu_select);
+			}
+		} else {
+			/* Rely on irqbalance if no online CPUs left on NUMA */
+			for (idx = 0; idx < phba->cfg_irq_chann; idx++)
+				lpfc_irq_clear_aff(lpfc_get_eq_hdl(idx));
+		}
+	} else {
+		/* Migrate affinity back to this CPU */
+		lpfc_irq_set_aff(lpfc_get_eq_hdl(cpup->eq), cpu);
+	}
+}
+
+static int lpfc_cpu_offline(unsigned int cpu, struct hlist_node *node)
+{
+	struct lpfc_hba *phba = hlist_entry_safe(node, struct lpfc_hba, cpuhp);
+	struct lpfc_queue *eq, *next;
+	LIST_HEAD(eqlist);
+	int retval;
+
+	if (!phba) {
+		WARN_ONCE(!phba, "cpu: %u. phba:NULL", raw_smp_processor_id());
+		return 0;
+	}
+
+	if (__lpfc_cpuhp_checks(phba, &retval))
+		return retval;
+
+	lpfc_irq_rebalance(phba, cpu, true);
+
+	retval = lpfc_cpuhp_get_eq(phba, cpu, &eqlist);
+	if (retval)
+		return retval;
+
+	/* start polling on these eq's */
+	list_for_each_entry_safe(eq, next, &eqlist, _poll_list) {
+		list_del_init(&eq->_poll_list);
+		lpfc_sli4_start_polling(eq);
+	}
+
+	return 0;
+}
+
+static int lpfc_cpu_online(unsigned int cpu, struct hlist_node *node)
+{
+	struct lpfc_hba *phba = hlist_entry_safe(node, struct lpfc_hba, cpuhp);
+	struct lpfc_queue *eq, *next;
+	unsigned int n;
+	int retval;
+
+	if (!phba) {
+		WARN_ONCE(!phba, "cpu: %u. phba:NULL", raw_smp_processor_id());
+		return 0;
+	}
+
+	if (__lpfc_cpuhp_checks(phba, &retval))
+		return retval;
+
+	lpfc_irq_rebalance(phba, cpu, false);
+
+	list_for_each_entry_safe(eq, next, &phba->poll_list, _poll_list) {
+		n = lpfc_find_cpu_handle(phba, eq->hdwq, LPFC_FIND_BY_HDWQ);
+		if (n == cpu)
+			lpfc_sli4_stop_polling(eq);
+	}
+
+	return 0;
+}
+
+/**
  * lpfc_sli4_enable_msix - Enable MSI-X interrupt mode to SLI-4 device
  * @phba: pointer to lpfc hba data structure.
  *
  * This routine is invoked to enable the MSI-X interrupt vectors to device
- * with SLI-4 interface spec.
+ * with SLI-4 interface spec.  It also allocates MSI-X vectors and maps them
+ * to cpus on the system.
+ *
+ * When cfg_irq_numa is enabled, the adapter will only allocate vectors for
+ * the number of cpus on the same numa node as this adapter.  The vectors are
+ * allocated without requesting OS affinity mapping.  A vector will be
+ * allocated and assigned to each online and offline cpu.  If the cpu is
+ * online, then affinity will be set to that cpu.  If the cpu is offline, then
+ * affinity will be set to the nearest peer cpu within the numa node that is
+ * online.  If there are no online cpus within the numa node, affinity is not
+ * assigned and the OS may do as it pleases. Note: cpu vector affinity mapping
+ * is consistent with the way cpu online/offline is handled when cfg_irq_numa is
+ * configured.
+ *
+ * If numa mode is not enabled and there is more than 1 vector allocated, then
+ * the driver relies on the managed irq interface where the OS assigns vector to
+ * cpu affinity.  The driver will then use that affinity mapping to setup its
+ * cpu mapping table.
  *
  * Return codes
  * 0 - successful
@@ -10978,13 +11383,31 @@
 {
 	int vectors, rc, index;
 	char *name;
+	const struct cpumask *numa_mask = NULL;
+	unsigned int cpu = 0, cpu_cnt = 0, cpu_select = nr_cpu_ids;
+	struct lpfc_hba_eq_hdl *eqhdl;
+	const struct cpumask *maskp;
+	bool first;
+	unsigned int flags = PCI_IRQ_MSIX;
 
 	/* Set up MSI-X multi-message vectors */
 	vectors = phba->cfg_irq_chann;
 
-	rc = pci_alloc_irq_vectors(phba->pcidev,
-				1,
-				vectors, PCI_IRQ_MSIX | PCI_IRQ_AFFINITY);
+	if (phba->cfg_irq_numa) {
+		numa_mask = &phba->sli4_hba.numa_mask;
+		cpu_cnt = cpumask_weight(numa_mask);
+		vectors = min(phba->cfg_irq_chann, cpu_cnt);
+
+		/* cpu: iterates over numa_mask including offline or online
+		 * cpu_select: iterates over online numa_mask to set affinity
+		 */
+		cpu = cpumask_first(numa_mask);
+		cpu_select = lpfc_next_online_numa_cpu(numa_mask, cpu);
+	} else {
+		flags |= PCI_IRQ_AFFINITY;
+	}
+
+	rc = pci_alloc_irq_vectors(phba->pcidev, 1, vectors, flags);
 	if (rc < 0) {
 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
 				"0484 PCI enable MSI-X failed (%d)\n", rc);
@@ -10994,23 +11417,61 @@
 
 	/* Assign MSI-X vectors to interrupt handlers */
 	for (index = 0; index < vectors; index++) {
-		name = phba->sli4_hba.hba_eq_hdl[index].handler_name;
+		eqhdl = lpfc_get_eq_hdl(index);
+		name = eqhdl->handler_name;
 		memset(name, 0, LPFC_SLI4_HANDLER_NAME_SZ);
 		snprintf(name, LPFC_SLI4_HANDLER_NAME_SZ,
 			 LPFC_DRIVER_HANDLER_NAME"%d", index);
 
-		phba->sli4_hba.hba_eq_hdl[index].idx = index;
-		phba->sli4_hba.hba_eq_hdl[index].phba = phba;
+		eqhdl->idx = index;
 		rc = request_irq(pci_irq_vector(phba->pcidev, index),
 			 &lpfc_sli4_hba_intr_handler, 0,
-			 name,
-			 &phba->sli4_hba.hba_eq_hdl[index]);
+			 name, eqhdl);
 		if (rc) {
 			lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
 					"0486 MSI-X fast-path (%d) "
 					"request_irq failed (%d)\n", index, rc);
 			goto cfg_fail_out;
 		}
+
+		eqhdl->irq = pci_irq_vector(phba->pcidev, index);
+
+		if (phba->cfg_irq_numa) {
+			/* If found a neighboring online cpu, set affinity */
+			if (cpu_select < nr_cpu_ids)
+				lpfc_irq_set_aff(eqhdl, cpu_select);
+
+			/* Assign EQ to cpu_map */
+			lpfc_assign_eq_map_info(phba, index,
+						LPFC_CPU_FIRST_IRQ,
+						cpu);
+
+			/* Iterate to next offline or online cpu in numa_mask */
+			cpu = cpumask_next(cpu, numa_mask);
+
+			/* Find next online cpu in numa_mask to set affinity */
+			cpu_select = lpfc_next_online_numa_cpu(numa_mask, cpu);
+		} else if (vectors == 1) {
+			cpu = cpumask_first(cpu_present_mask);
+			lpfc_assign_eq_map_info(phba, index, LPFC_CPU_FIRST_IRQ,
+						cpu);
+		} else {
+			maskp = pci_irq_get_affinity(phba->pcidev, index);
+
+			first = true;
+			/* Loop through all CPUs associated with vector index */
+			for_each_cpu_and(cpu, maskp, cpu_present_mask) {
+				/* If this is the first CPU thats assigned to
+				 * this vector, set LPFC_CPU_FIRST_IRQ.
+				 */
+				lpfc_assign_eq_map_info(phba, index,
+							first ?
+							LPFC_CPU_FIRST_IRQ : 0,
+							cpu);
+				if (first)
+					first = false;
+			}
+		}
 	}
 
 	if (vectors != phba->cfg_irq_chann) {
@@ -11020,17 +11481,18 @@
 				phba->cfg_irq_chann, vectors);
 		if (phba->cfg_irq_chann > vectors)
 			phba->cfg_irq_chann = vectors;
-		if (phba->nvmet_support && (phba->cfg_nvmet_mrq > vectors))
-			phba->cfg_nvmet_mrq = vectors;
 	}
 
 	return rc;
 
 cfg_fail_out:
 	/* free the irq already requested */
-	for (--index; index >= 0; index--)
-		free_irq(pci_irq_vector(phba->pcidev, index),
-				&phba->sli4_hba.hba_eq_hdl[index]);
+	for (--index; index >= 0; index--) {
+		eqhdl = lpfc_get_eq_hdl(index);
+		lpfc_irq_clear_aff(eqhdl);
+		irq_set_affinity_hint(eqhdl->irq, NULL);
+		free_irq(eqhdl->irq, eqhdl);
+	}
 
 	/* Unconfigure MSI-X capability structure */
 	pci_free_irq_vectors(phba->pcidev);
@@ -11057,6 +11519,8 @@
 lpfc_sli4_enable_msi(struct lpfc_hba *phba)
 {
 	int rc, index;
+	unsigned int cpu;
+	struct lpfc_hba_eq_hdl *eqhdl;
 
 	rc = pci_alloc_irq_vectors(phba->pcidev, 1, 1,
 				   PCI_IRQ_MSI | PCI_IRQ_AFFINITY);
@@ -11078,9 +11542,15 @@
 		return rc;
 	}
 
+	eqhdl = lpfc_get_eq_hdl(0);
+	eqhdl->irq = pci_irq_vector(phba->pcidev, 0);
+
+	cpu = cpumask_first(cpu_present_mask);
+	lpfc_assign_eq_map_info(phba, 0, LPFC_CPU_FIRST_IRQ, cpu);
+
 	for (index = 0; index < phba->cfg_irq_chann; index++) {
-		phba->sli4_hba.hba_eq_hdl[index].idx = index;
-		phba->sli4_hba.hba_eq_hdl[index].phba = phba;
+		eqhdl = lpfc_get_eq_hdl(index);
+		eqhdl->idx = index;
 	}
 
 	return 0;
@@ -11138,15 +11608,21 @@
 				     IRQF_SHARED, LPFC_DRIVER_NAME, phba);
 		if (!retval) {
 			struct lpfc_hba_eq_hdl *eqhdl;
+			unsigned int cpu;
 
 			/* Indicate initialization to INTx mode */
 			phba->intr_type = INTx;
 			intr_mode = 0;
 
+			eqhdl = lpfc_get_eq_hdl(0);
+			eqhdl->irq = pci_irq_vector(phba->pcidev, 0);
+
+			cpu = cpumask_first(cpu_present_mask);
+			lpfc_assign_eq_map_info(phba, 0, LPFC_CPU_FIRST_IRQ,
+						cpu);
 			for (idx = 0; idx < phba->cfg_irq_chann; idx++) {
-				eqhdl = &phba->sli4_hba.hba_eq_hdl[idx];
+				eqhdl = lpfc_get_eq_hdl(idx);
 				eqhdl->idx = idx;
-				eqhdl->phba = phba;
 			}
 		}
 	}
@@ -11168,14 +11644,14 @@
 	/* Disable the currently initialized interrupt mode */
 	if (phba->intr_type == MSIX) {
 		int index;
+		struct lpfc_hba_eq_hdl *eqhdl;
 
 		/* Free up MSI-X multi-message vectors */
 		for (index = 0; index < phba->cfg_irq_chann; index++) {
-			irq_set_affinity_hint(
-				pci_irq_vector(phba->pcidev, index),
-				NULL);
-			free_irq(pci_irq_vector(phba->pcidev, index),
-					&phba->sli4_hba.hba_eq_hdl[index]);
+			eqhdl = lpfc_get_eq_hdl(index);
+			lpfc_irq_clear_aff(eqhdl);
+			irq_set_affinity_hint(eqhdl->irq, NULL);
+			free_irq(eqhdl->irq, eqhdl);
 		}
 	} else {
 		free_irq(phba->pcidev->irq, phba);
@@ -11367,6 +11843,10 @@
 	/* Wait for completion of device XRI exchange busy */
 	lpfc_sli4_xri_exchange_busy_wait(phba);
 
+	/* per-phba callback de-registration for hotplug event */
+	if (phba->pport)
+		lpfc_cpuhp_remove(phba);
+
 	/* Disable PCI subsystem interrupt */
 	lpfc_sli4_disable_intr(phba);
 
@@ -11538,6 +12018,7 @@
 	sli4_params->cqav = bf_get(cfg_cqav, mbx_sli4_parameters);
 	sli4_params->wqsize = bf_get(cfg_wqsize, mbx_sli4_parameters);
 	sli4_params->bv1s = bf_get(cfg_bv1s, mbx_sli4_parameters);
+	sli4_params->pls = bf_get(cfg_pvl, mbx_sli4_parameters);
 	sli4_params->sgl_pages_max = bf_get(cfg_sgl_page_cnt,
 					    mbx_sli4_parameters);
 	sli4_params->wqpcnt = bf_get(cfg_wqpcnt, mbx_sli4_parameters);
@@ -11589,13 +12070,10 @@
 	}
 
 	/* If the NVME FC4 type is enabled, scale the sg_seg_cnt to
-	 * accommodate 512K and 1M IOs in a single nvme buf and supply
-	 * enough NVME LS iocb buffers for larger connectivity counts.
+	 * accommodate 512K and 1M IOs in a single nvme buf.
 	 */
-	if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) {
+	if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME)
 		phba->cfg_sg_seg_cnt = LPFC_MAX_NVME_SEG_CNT;
-		phba->cfg_iocb_cnt = 5;
-	}
 
 	/* Only embed PBDE for if_type 6, PBDE support requires xib be set */
 	if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) !=
@@ -12312,35 +12790,57 @@
 }
 
 
-static void
+static int
 lpfc_log_write_firmware_error(struct lpfc_hba *phba, uint32_t offset,
 	uint32_t magic_number, uint32_t ftype, uint32_t fid, uint32_t fsize,
 	const struct firmware *fw)
 {
-	if ((offset == ADD_STATUS_FW_NOT_SUPPORTED) ||
+	int rc;
+
+	/* Three cases:  (1) FW was not supported on the detected adapter.
+	 * (2) FW update has been locked out administratively.
+	 * (3) Some other error during FW update.
+	 * In each case, an unmaskable message is written to the console
+	 * for admin diagnosis.
+	 */
+	if (offset == ADD_STATUS_FW_NOT_SUPPORTED ||
 	    (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC &&
-	     magic_number != MAGIC_NUMER_G6) ||
+	     magic_number != MAGIC_NUMBER_G6) ||
 	    (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC &&
-	     magic_number != MAGIC_NUMER_G7))
+	     magic_number != MAGIC_NUMBER_G7)) {
 		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
-			"3030 This firmware version is not supported on "
-			"this HBA model. Device:%x Magic:%x Type:%x "
-			"ID:%x Size %d %zd\n",
-			phba->pcidev->device, magic_number, ftype, fid,
-			fsize, fw->size);
-	else
+				"3030 This firmware version is not supported on"
+				" this HBA model. Device:%x Magic:%x Type:%x "
+				"ID:%x Size %d %zd\n",
+				phba->pcidev->device, magic_number, ftype, fid,
+				fsize, fw->size);
+		rc = -EINVAL;
+	} else if (offset == ADD_STATUS_FW_DOWNLOAD_HW_DISABLED) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
+				"3021 Firmware downloads have been prohibited "
+				"by a system configuration setting on "
+				"Device:%x Magic:%x Type:%x ID:%x Size %d "
+				"%zd\n",
+				phba->pcidev->device, magic_number, ftype, fid,
+				fsize, fw->size);
+		rc = -EACCES;
+	} else {
 		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
-			"3022 FW Download failed. Device:%x Magic:%x Type:%x "
-			"ID:%x Size %d %zd\n",
-			phba->pcidev->device, magic_number, ftype, fid,
-			fsize, fw->size);
+				"3022 FW Download failed. Add Status x%x "
+				"Device:%x Magic:%x Type:%x ID:%x Size %d "
+				"%zd\n",
+				offset, phba->pcidev->device, magic_number,
+				ftype, fid, fsize, fw->size);
+		rc = -EIO;
+	}
+	return rc;
 }
 
-
 /**
  * lpfc_write_firmware - attempt to write a firmware image to the port
  * @fw: pointer to firmware image returned from request_firmware.
- * @phba: pointer to lpfc hba data structure.
+ * @context: pointer to firmware image returned from request_firmware.
+ * @ret: return value this routine provides to the caller.
  *
  **/
 static void
@@ -12409,8 +12909,12 @@
 			rc = lpfc_wr_object(phba, &dma_buffer_list,
 				    (fw->size - offset), &offset);
 			if (rc) {
-				lpfc_log_write_firmware_error(phba, offset,
-					magic_number, ftype, fid, fsize, fw);
+				rc = lpfc_log_write_firmware_error(phba, offset,
+								   magic_number,
+								   ftype,
+								   fid,
+								   fsize,
+								   fw);
 				goto release_out;
 			}
 		}
@@ -12430,9 +12934,12 @@
 	}
 	release_firmware(fw);
 out:
-	lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
-			"3024 Firmware update done: %d.\n", rc);
-	return;
+	if (rc < 0)
+		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
+				"3062 Firmware update error, status %d.\n", rc);
+	else
+		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
+				"3024 Firmware update success: size %d.\n", rc);
 }
 
 /**
@@ -12551,6 +13058,12 @@
 	phba->pport = NULL;
 	lpfc_stop_port(phba);
 
+	/* Init cpu_map array */
+	lpfc_cpu_map_array_init(phba);
+
+	/* Init hba_eq_hdl array */
+	lpfc_hba_eq_hdl_array_init(phba);
+
 	/* Configure and enable interrupt */
 	intr_mode = lpfc_sli4_enable_intr(phba, cfg_mode);
 	if (intr_mode == LPFC_INTR_ERROR) {
@@ -12632,6 +13145,9 @@
 	/* Enable RAS FW log support */
 	lpfc_sli4_ras_setup(phba);
 
+	INIT_LIST_HEAD(&phba->poll_list);
+	cpuhp_state_add_instance_nocalls(lpfc_cpuhp_state, &phba->cpuhp);
+
 	return 0;
 
 out_free_sysfs_attr:
@@ -13344,8 +13860,7 @@
 		phba->cfg_fof = 1;
 	} else {
 		phba->cfg_fof = 0;
-		if (phba->device_data_mem_pool)
-			mempool_destroy(phba->device_data_mem_pool);
+		mempool_destroy(phba->device_data_mem_pool);
 		phba->device_data_mem_pool = NULL;
 	}
 
@@ -13450,11 +13965,24 @@
 	/* Initialize in case vector mapping is needed */
 	lpfc_present_cpu = num_present_cpus();
 
+	error = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN,
+					"lpfc/sli4:online",
+					lpfc_cpu_online, lpfc_cpu_offline);
+	if (error < 0)
+		goto cpuhp_failure;
+	lpfc_cpuhp_state = error;
+
 	error = pci_register_driver(&lpfc_driver);
-	if (error) {
-		fc_release_transport(lpfc_transport_template);
-		fc_release_transport(lpfc_vport_transport_template);
-	}
+	if (error)
+		goto unwind;
+
+	return error;
+
+unwind:
+	cpuhp_remove_multi_state(lpfc_cpuhp_state);
+cpuhp_failure:
+	fc_release_transport(lpfc_transport_template);
+	fc_release_transport(lpfc_vport_transport_template);
 
 	return error;
 }
@@ -13471,6 +13999,7 @@
 {
 	misc_deregister(&lpfc_mgmt_dev);
 	pci_unregister_driver(&lpfc_driver);
+	cpuhp_remove_multi_state(lpfc_cpuhp_state);
 	fc_release_transport(lpfc_transport_template);
 	fc_release_transport(lpfc_vport_transport_template);
 	idr_destroy(&lpfc_hba_index);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_logmsg.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_logmsg.h
@@ -46,6 +46,23 @@
 #define LOG_NVME_IOERR  0x00800000      /* NVME IO Error events. */
 #define LOG_ALL_MSG	0xffffffff	/* LOG all messages */
 
+/* generate message by verbose log setting or severity */
+#define lpfc_vlog_msg(vport, level, mask, fmt, arg...) \
+{ if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '4')) \
+	dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \
+		   fmt, (vport)->phba->brd_no, vport->vpi, ##arg); }
+
+#define lpfc_log_msg(phba, level, mask, fmt, arg...) \
+do { \
+	{ uint32_t log_verbose = (phba)->pport ? \
+				 (phba)->pport->cfg_log_verbose : \
+				 (phba)->cfg_log_verbose; \
+	if (((mask) & log_verbose) || (level[1] <= '4')) \
+		dev_printk(level, &((phba)->pcidev)->dev, "%d:" \
+			   fmt, phba->brd_no, ##arg); \
+	} \
+} while (0)
+
 #define lpfc_printf_vlog(vport, level, mask, fmt, arg...) \
 do { \
 	{ if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '3')) \
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_mbox.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_mbox.c
@@ -515,6 +515,7 @@
 
 	if ((phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
 	     phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) &&
+	    !(phba->sli4_hba.pc_sli4_params.pls) &&
 	    mb->un.varInitLnk.link_flags & FLAGS_TOPOLOGY_MODE_LOOP) {
 		mb->un.varInitLnk.link_flags = FLAGS_TOPOLOGY_MODE_PT_PT;
 		phba->cfg_topology = FLAGS_TOPOLOGY_MODE_PT_PT;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_mem.c
@@ -230,9 +230,6 @@
 	dma_pool_destroy(phba->lpfc_hrb_pool);
 	phba->lpfc_hrb_pool = NULL;
 
-	dma_pool_destroy(phba->txrdy_payload_pool);
-	phba->txrdy_payload_pool = NULL;
-
 	dma_pool_destroy(phba->lpfc_hbq_pool);
 	phba->lpfc_hbq_pool = NULL;
 
@@ -593,8 +590,6 @@
  * Description: Allocates a DMA-mapped receive buffer from the lpfc_hrb_pool PCI
  * pool along a non-DMA-mapped container for it.
  *
- * Notes: Not interrupt-safe.  Must be called with no locks held.
- *
  * Returns:
  *   pointer to HBQ on success
  *   NULL on failure
@@ -604,7 +599,7 @@
 {
 	struct rqb_dmabuf *dma_buf;
 
-	dma_buf = kzalloc(sizeof(struct rqb_dmabuf), GFP_KERNEL);
+	dma_buf = kzalloc(sizeof(*dma_buf), GFP_KERNEL);
 	if (!dma_buf)
 		return NULL;
 
@@ -727,7 +722,6 @@
 	drqe.address_hi = putPaddrHigh(rqb_entry->dbuf.phys);
 	rc = lpfc_sli4_rq_put(rqb_entry->hrq, rqb_entry->drq, &hrqe, &drqe);
 	if (rc < 0) {
-		(rqbp->rqb_free_buffer)(phba, rqb_entry);
 		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
 				"6409 Cannot post to HRQ %d: %x %x %x "
 				"DRQ %x %x\n",
@@ -737,6 +731,7 @@
 				rqb_entry->hrq->entry_count,
 				rqb_entry->drq->host_index,
 				rqb_entry->drq->hba_index);
+		(rqbp->rqb_free_buffer)(phba, rqb_entry);
 	} else {
 		list_add_tail(&rqb_entry->hbuf.list, &rqbp->rqb_buffer_list);
 		rqbp->buffer_count++;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -279,6 +279,109 @@
 	lpfc_cancel_retry_delay_tmo(phba->pport, ndlp);
 }
 
+/* lpfc_defer_pt2pt_acc - Complete SLI3 pt2pt processing on link up
+ * @phba: pointer to lpfc hba data structure.
+ * @link_mbox: pointer to CONFIG_LINK mailbox object
+ *
+ * This routine is only called if we are SLI3, direct connect pt2pt
+ * mode and the remote NPort issues the PLOGI after link up.
+ */
+static void
+lpfc_defer_pt2pt_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *link_mbox)
+{
+	LPFC_MBOXQ_t *login_mbox;
+	MAILBOX_t *mb = &link_mbox->u.mb;
+	struct lpfc_iocbq *save_iocb;
+	struct lpfc_nodelist *ndlp;
+	int rc;
+
+	ndlp = link_mbox->ctx_ndlp;
+	login_mbox = link_mbox->context3;
+	save_iocb = login_mbox->context3;
+	link_mbox->context3 = NULL;
+	login_mbox->context3 = NULL;
+
+	/* Check for CONFIG_LINK error */
+	if (mb->mbxStatus) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY,
+				"4575 CONFIG_LINK fails pt2pt discovery: %x\n",
+				mb->mbxStatus);
+		mempool_free(login_mbox, phba->mbox_mem_pool);
+		mempool_free(link_mbox, phba->mbox_mem_pool);
+		kfree(save_iocb);
+		return;
+	}
+
+	/* Now that CONFIG_LINK completed, and our SID is configured,
+	 * we can now proceed with sending the PLOGI ACC.
+	 */
+	rc = lpfc_els_rsp_acc(link_mbox->vport, ELS_CMD_PLOGI,
+			      save_iocb, ndlp, login_mbox);
+	if (rc) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY,
+				"4576 PLOGI ACC fails pt2pt discovery: %x\n",
+				rc);
+		mempool_free(login_mbox, phba->mbox_mem_pool);
+	}
+
+	mempool_free(link_mbox, phba->mbox_mem_pool);
+	kfree(save_iocb);
+}
+
+/**
+ * lpfc_defer_tgt_acc - Progress SLI4 target rcv PLOGI handler
+ * @phba: Pointer to HBA context object.
+ * @pmb: Pointer to mailbox object.
+ *
+ * This function provides the unreg rpi mailbox completion handler for a tgt.
+ * The routine frees the memory resources associated with the completed
+ * mailbox command and transmits the ELS ACC.
+ *
+ * This routine is only called if we are SLI4, acting in target
+ * mode and the remote NPort issues the PLOGI after link up.
+ **/
+static void
+lpfc_defer_acc_rsp(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
+{
+	struct lpfc_vport *vport = pmb->vport;
+	struct lpfc_nodelist *ndlp = pmb->ctx_ndlp;
+	LPFC_MBOXQ_t *mbox = pmb->context3;
+	struct lpfc_iocbq *piocb = NULL;
+	int rc;
+
+	if (mbox) {
+		pmb->context3 = NULL;
+		piocb = mbox->context3;
+		mbox->context3 = NULL;
+	}
+
+	/*
+	 * Complete the unreg rpi mbx request, and update flags.
+	 * This will also restart any deferred events.
+	 */
+	lpfc_nlp_get(ndlp);
+	lpfc_sli4_unreg_rpi_cmpl_clr(phba, pmb);
+
+	if (!piocb) {
+		lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY | LOG_ELS,
+				 "4578 PLOGI ACC fail\n");
+		if (mbox)
+			mempool_free(mbox, phba->mbox_mem_pool);
+		goto out;
+	}
+
+	rc = lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, piocb, ndlp, mbox);
+	if (rc) {
+		lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY | LOG_ELS,
+				 "4579 PLOGI ACC fail %x\n", rc);
+		if (mbox)
+			mempool_free(mbox, phba->mbox_mem_pool);
+	}
+	kfree(piocb);
+out:
+	lpfc_nlp_put(ndlp);
+}
+
 static int
 lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 	       struct lpfc_iocbq *cmdiocb)
@@ -291,10 +394,13 @@
 	IOCB_t *icmd;
 	struct serv_parm *sp;
 	uint32_t ed_tov;
-	LPFC_MBOXQ_t *mbox;
+	LPFC_MBOXQ_t *link_mbox;
+	LPFC_MBOXQ_t *login_mbox;
+	struct lpfc_iocbq *save_iocb;
 	struct ls_rjt stat;
 	uint32_t vid, flag;
-	int rc;
+	u16 rpi;
+	int rc, defer_acc;
 
 	memset(&stat, 0, sizeof (struct ls_rjt));
 	pcmd = (struct lpfc_dmabuf *) cmdiocb->context2;
@@ -343,6 +449,7 @@
 	else
 		ndlp->nlp_fcp_info |= CLASS3;
 
+	defer_acc = 0;
 	ndlp->nlp_class_sup = 0;
 	if (sp->cls1.classValid)
 		ndlp->nlp_class_sup |= FC_COS_CLASS1;
@@ -354,7 +461,6 @@
 		ndlp->nlp_class_sup |= FC_COS_CLASS4;
 	ndlp->nlp_maxframe =
 		((sp->cmn.bbRcvSizeMsb & 0x0F) << 8) | sp->cmn.bbRcvSizeLsb;
-
 	/* if already logged in, do implicit logout */
 	switch (ndlp->nlp_state) {
 	case  NLP_STE_NPR_NODE:
@@ -396,6 +502,10 @@
 	ndlp->nlp_fcp_info &= ~NLP_FCP_2_DEVICE;
 	ndlp->nlp_flag &= ~NLP_FIRSTBURST;
 
+	login_mbox = NULL;
+	link_mbox = NULL;
+	save_iocb = NULL;
+
 	/* Check for Nport to NPort pt2pt protocol */
 	if ((vport->fc_flag & FC_PT2PT) &&
 	    !(vport->fc_flag & FC_PT2PT_PLOGI)) {
@@ -423,17 +533,22 @@
 		if (phba->sli_rev == LPFC_SLI_REV4)
 			lpfc_issue_reg_vfi(vport);
 		else {
-			mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
-			if (mbox == NULL)
+			defer_acc = 1;
+			link_mbox = mempool_alloc(phba->mbox_mem_pool,
+						  GFP_KERNEL);
+			if (!link_mbox)
 				goto out;
-			lpfc_config_link(phba, mbox);
-			mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl;
-			mbox->vport = vport;
-			rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT);
-			if (rc == MBX_NOT_FINISHED) {
-				mempool_free(mbox, phba->mbox_mem_pool);
+			lpfc_config_link(phba, link_mbox);
+			link_mbox->mbox_cmpl = lpfc_defer_pt2pt_acc;
+			link_mbox->vport = vport;
+			link_mbox->ctx_ndlp = ndlp;
+
+			save_iocb = kzalloc(sizeof(*save_iocb), GFP_KERNEL);
+			if (!save_iocb)
 				goto out;
-			}
+			/* Save info from cmd IOCB used in rsp */
+			memcpy((uint8_t *)save_iocb, (uint8_t *)cmdiocb,
+			       sizeof(struct lpfc_iocbq));
 		}
 
 		lpfc_can_disctmo(vport);
@@ -448,30 +563,57 @@
 			ndlp->nlp_flag |= NLP_SUPPRESS_RSP;
 	}
 
-	mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
-	if (!mbox)
+	login_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
+	if (!login_mbox)
 		goto out;
 
 	/* Registering an existing RPI behaves differently for SLI3 vs SLI4 */
-	if (phba->sli_rev == LPFC_SLI_REV4)
+	if (phba->nvmet_support && !defer_acc) {
+		link_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
+		if (!link_mbox)
+			goto out;
+
+		/* As unique identifiers such as iotag would be overwritten
+		 * with those from the cmdiocb, allocate separate temporary
+		 * storage for the copy.
+		 */
+		save_iocb = kzalloc(sizeof(*save_iocb), GFP_KERNEL);
+		if (!save_iocb)
+			goto out;
+
+		/* Unreg RPI is required for SLI4. */
+		rpi = phba->sli4_hba.rpi_ids[ndlp->nlp_rpi];
+		lpfc_unreg_login(phba, vport->vpi, rpi, link_mbox);
+		link_mbox->vport = vport;
+		link_mbox->ctx_ndlp = ndlp;
+		link_mbox->mbox_cmpl = lpfc_defer_acc_rsp;
+
+		if (((ndlp->nlp_DID & Fabric_DID_MASK) != Fabric_DID_MASK) &&
+		    (!(vport->fc_flag & FC_OFFLINE_MODE)))
+			ndlp->nlp_flag |= NLP_UNREG_INP;
+
+		/* Save info from cmd IOCB used in rsp */
+		memcpy(save_iocb, cmdiocb, sizeof(*save_iocb));
+
+		/* Delay sending ACC till unreg RPI completes. */
+		defer_acc = 1;
+	} else if (phba->sli_rev == LPFC_SLI_REV4)
 		lpfc_unreg_rpi(vport, ndlp);
 
 	rc = lpfc_reg_rpi(phba, vport->vpi, icmd->un.rcvels.remoteID,
-			    (uint8_t *) sp, mbox, ndlp->nlp_rpi);
-	if (rc) {
-		mempool_free(mbox, phba->mbox_mem_pool);
+			    (uint8_t *)sp, login_mbox, ndlp->nlp_rpi);
+	if (rc)
 		goto out;
-	}
 
 	/* ACC PLOGI rsp command needs to execute first,
-	 * queue this mbox command to be processed later.
+	 * queue this login_mbox command to be processed later.
 	 */
-	mbox->mbox_cmpl = lpfc_mbx_cmpl_reg_login;
+	login_mbox->mbox_cmpl = lpfc_mbx_cmpl_reg_login;
 	/*
-	 * mbox->ctx_ndlp = lpfc_nlp_get(ndlp) deferred until mailbox
+	 * login_mbox->ctx_ndlp = lpfc_nlp_get(ndlp) deferred until mailbox
 	 * command issued in lpfc_cmpl_els_acc().
 	 */
-	mbox->vport = vport;
+	login_mbox->vport = vport;
 	spin_lock_irq(shost->host_lock);
 	ndlp->nlp_flag |= (NLP_ACC_REGLOGIN | NLP_RCV_PLOGI);
 	spin_unlock_irq(shost->host_lock);
@@ -484,8 +626,10 @@
 	 * single discovery thread, this will cause a huge delay in
 	 * discovery. Also this will cause multiple state machines
 	 * running in parallel for this node.
+	 * This only applies to a fabric environment.
 	 */
-	if (ndlp->nlp_state == NLP_STE_PLOGI_ISSUE) {
+	if ((ndlp->nlp_state == NLP_STE_PLOGI_ISSUE) &&
+	    (vport->fc_flag & FC_FABRIC)) {
 		/* software abort outstanding PLOGI */
 		lpfc_els_abort(phba, ndlp);
 	}
@@ -493,6 +637,9 @@
 	if ((vport->port_type == LPFC_NPIV_PORT &&
 	     vport->cfg_restrict_login)) {
 
+		/* no deferred ACC */
+		kfree(save_iocb);
+
 		/* In order to preserve RPIs, we want to cleanup
 		 * the default RPI the firmware created to rcv
 		 * this ELS request. The only way to do this is
@@ -504,16 +651,50 @@
 		stat.un.b.lsRjtRsnCode = LSRJT_INVALID_CMD;
 		stat.un.b.lsRjtRsnCodeExp = LSEXP_NOTHING_MORE;
 		rc = lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb,
-			ndlp, mbox);
+			ndlp, login_mbox);
 		if (rc)
-			mempool_free(mbox, phba->mbox_mem_pool);
+			mempool_free(login_mbox, phba->mbox_mem_pool);
 		return 1;
 	}
-	rc = lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, mbox);
+	if (defer_acc) {
+		/* So the order here should be:
+		 * SLI3 pt2pt
+		 *   Issue CONFIG_LINK mbox
+		 *   CONFIG_LINK cmpl
+		 * SLI4 tgt
+		 *   Issue UNREG RPI mbx
+		 *   UNREG RPI cmpl
+		 * Issue PLOGI ACC
+		 * PLOGI ACC cmpl
+		 * Issue REG_LOGIN mbox
+		 */
+
+		/* Save the REG_LOGIN mbox for and rcv IOCB copy later */
+		link_mbox->context3 = login_mbox;
+		login_mbox->context3 = save_iocb;
+
+		/* Start the ball rolling by issuing CONFIG_LINK here */
+		rc = lpfc_sli_issue_mbox(phba, link_mbox, MBX_NOWAIT);
+		if (rc == MBX_NOT_FINISHED)
+			goto out;
+		return 1;
+	}
+
+	rc = lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, login_mbox);
 	if (rc)
-		mempool_free(mbox, phba->mbox_mem_pool);
+		mempool_free(login_mbox, phba->mbox_mem_pool);
 	return 1;
 out:
+	if (defer_acc)
+		lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY,
+				"4577 discovery failure: %p %p %p\n",
+				save_iocb, link_mbox, login_mbox);
+	kfree(save_iocb);
+	if (link_mbox)
+		mempool_free(link_mbox, phba->mbox_mem_pool);
+	if (login_mbox)
+		mempool_free(login_mbox, phba->mbox_mem_pool);
+
 	stat.un.b.lsRjtRsnCode = LSRJT_UNABLE_TPC;
 	stat.un.b.lsRjtRsnCodeExp = LSEXP_OUT_OF_RESOURCE;
 	lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
@@ -2030,7 +2211,9 @@
 		if (bf_get_be32(prli_init, nvpr))
 			ndlp->nlp_type |= NLP_NVME_INITIATOR;
 
-		if (phba->nsler && bf_get_be32(prli_nsler, nvpr))
+		if (phba->nsler && bf_get_be32(prli_nsler, nvpr) &&
+		    bf_get_be32(prli_conf, nvpr))
+
 			ndlp->nlp_nvme_info |= NLP_NVME_NSLER;
 		else
 			ndlp->nlp_nvme_info &= ~NLP_NVME_NSLER;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_nvme.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_nvme.c
@@ -196,6 +196,46 @@
 }
 
 /**
+ * lpfc_nvme_prep_abort_wqe - set up 'abort' work queue entry.
+ * @pwqeq: Pointer to command iocb.
+ * @xritag: Tag that  uniqely identifies the local exchange resource.
+ * @opt: Option bits -
+ *		bit 0 = inhibit sending abts on the link
+ *
+ * This function is called with hbalock held.
+ **/
+void
+lpfc_nvme_prep_abort_wqe(struct lpfc_iocbq *pwqeq, u16 xritag, u8 opt)
+{
+	union lpfc_wqe128 *wqe = &pwqeq->wqe;
+
+	/* WQEs are reused.  Clear stale data and set key fields to
+	 * zero like ia, iaab, iaar, xri_tag, and ctxt_tag.
+	 */
+	memset(wqe, 0, sizeof(*wqe));
+
+	if (opt & INHIBIT_ABORT)
+		bf_set(abort_cmd_ia, &wqe->abort_cmd, 1);
+	/* Abort specified xri tag, with the mask deliberately zeroed */
+	bf_set(abort_cmd_criteria, &wqe->abort_cmd, T_XRI_TAG);
+
+	bf_set(wqe_cmnd, &wqe->abort_cmd.wqe_com, CMD_ABORT_XRI_CX);
+
+	/* Abort the IO associated with this outstanding exchange ID. */
+	wqe->abort_cmd.wqe_com.abort_tag = xritag;
+
+	/* iotag for the wqe completion. */
+	bf_set(wqe_reqtag, &wqe->abort_cmd.wqe_com, pwqeq->iotag);
+
+	bf_set(wqe_qosd, &wqe->abort_cmd.wqe_com, 1);
+	bf_set(wqe_lenloc, &wqe->abort_cmd.wqe_com, LPFC_WQE_LENLOC_NONE);
+
+	bf_set(wqe_cmd_type, &wqe->abort_cmd.wqe_com, OTHER_COMMAND);
+	bf_set(wqe_wqec, &wqe->abort_cmd.wqe_com, 1);
+	bf_set(wqe_cqid, &wqe->abort_cmd.wqe_com, LPFC_WQE_CQ_ID_DEFAULT);
+}
+
+/**
  * lpfc_nvme_create_queue -
  * @lpfc_pnvme: Pointer to the driver's nvme instance data
  * @qidx: An cpu index used to affinitize IO queues and MSIX vectors.
@@ -342,13 +382,15 @@
 	if (ndlp->upcall_flags & NLP_WAIT_FOR_UNREG) {
 		ndlp->nrport = NULL;
 		ndlp->upcall_flags &= ~NLP_WAIT_FOR_UNREG;
-	}
-	spin_unlock_irq(&vport->phba->hbalock);
+		spin_unlock_irq(&vport->phba->hbalock);
 
-	/* Remove original register reference. The host transport
-	 * won't reference this rport/remoteport any further.
-	 */
-	lpfc_nlp_put(ndlp);
+		/* Remove original register reference. The host transport
+		 * won't reference this rport/remoteport any further.
+		 */
+		lpfc_nlp_put(ndlp);
+	} else {
+		spin_unlock_irq(&vport->phba->hbalock);
+	}
 
  rport_err:
 	return;
@@ -1791,7 +1833,6 @@
 	struct lpfc_iocbq *abts_buf;
 	struct lpfc_iocbq *nvmereq_wqe;
 	struct lpfc_nvme_fcpreq_priv *freqpriv;
-	union lpfc_wqe128 *abts_wqe;
 	unsigned long flags;
 	int ret_val;
 
@@ -1912,37 +1953,7 @@
 	/* Ready - mark outstanding as aborted by driver. */
 	nvmereq_wqe->iocb_flag |= LPFC_DRIVER_ABORTED;
 
-	/* Complete prepping the abort wqe and issue to the FW. */
-	abts_wqe = &abts_buf->wqe;
-
-	/* WQEs are reused.  Clear stale data and set key fields to
-	 * zero like ia, iaab, iaar, xri_tag, and ctxt_tag.
-	 */
-	memset(abts_wqe, 0, sizeof(*abts_wqe));
-	bf_set(abort_cmd_criteria, &abts_wqe->abort_cmd, T_XRI_TAG);
-
-	/* word 7 */
-	bf_set(wqe_cmnd, &abts_wqe->abort_cmd.wqe_com, CMD_ABORT_XRI_CX);
-	bf_set(wqe_class, &abts_wqe->abort_cmd.wqe_com,
-	       nvmereq_wqe->iocb.ulpClass);
-
-	/* word 8 - tell the FW to abort the IO associated with this
-	 * outstanding exchange ID.
-	 */
-	abts_wqe->abort_cmd.wqe_com.abort_tag = nvmereq_wqe->sli4_xritag;
-
-	/* word 9 - this is the iotag for the abts_wqe completion. */
-	bf_set(wqe_reqtag, &abts_wqe->abort_cmd.wqe_com,
-	       abts_buf->iotag);
-
-	/* word 10 */
-	bf_set(wqe_qosd, &abts_wqe->abort_cmd.wqe_com, 1);
-	bf_set(wqe_lenloc, &abts_wqe->abort_cmd.wqe_com, LPFC_WQE_LENLOC_NONE);
-
-	/* word 11 */
-	bf_set(wqe_cmd_type, &abts_wqe->abort_cmd.wqe_com, OTHER_COMMAND);
-	bf_set(wqe_wqec, &abts_wqe->abort_cmd.wqe_com, 1);
-	bf_set(wqe_cqid, &abts_wqe->abort_cmd.wqe_com, LPFC_WQE_CQ_ID_DEFAULT);
+	lpfc_nvme_prep_abort_wqe(abts_buf, nvmereq_wqe->sli4_xritag, 0);
 
 	/* ABTS WQE must go to the same WQ as the WQE to be aborted */
 	abts_buf->iocb_flag |= LPFC_IO_NVME;
@@ -2084,7 +2095,7 @@
 	lpfc_ncmd->flags &= ~LPFC_SBUF_BUMP_QDEPTH;
 
 	qp = lpfc_ncmd->hdwq;
-	if (lpfc_ncmd->flags & LPFC_SBUF_XBUSY) {
+	if (unlikely(lpfc_ncmd->flags & LPFC_SBUF_XBUSY)) {
 		lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS,
 				"6310 XB release deferred for "
 				"ox_id x%x on reqtag x%x\n",
@@ -2139,12 +2150,10 @@
 	 */
 	lpfc_nvme_template.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1;
 
-	/* Advertise how many hw queues we support based on fcp_io_sched */
-	if (phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_HDWQ)
-		lpfc_nvme_template.max_hw_queues = phba->cfg_hdw_queue;
-	else
-		lpfc_nvme_template.max_hw_queues =
-			phba->sli4_hba.num_present_cpu;
+	/* Advertise how many hw queues we support based on cfg_hdw_queue,
+	 * which will not exceed cpu count.
+	 */
+	lpfc_nvme_template.max_hw_queues = phba->cfg_hdw_queue;
 
 	if (!IS_ENABLED(CONFIG_NVME_FC))
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_nvmet.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_nvmet.c
@@ -378,13 +378,6 @@
 	int cpu;
 	unsigned long iflag;
 
-	if (ctxp->txrdy) {
-		dma_pool_free(phba->txrdy_payload_pool, ctxp->txrdy,
-			      ctxp->txrdy_phys);
-		ctxp->txrdy = NULL;
-		ctxp->txrdy_phys = 0;
-	}
-
 	if (ctxp->state == LPFC_NVMET_STE_FREE) {
 		lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR,
 				"6411 NVMET free, already free IO x%x: %d %d\n",
@@ -430,7 +423,6 @@
 
 		ctxp = (struct lpfc_nvmet_rcv_ctx *)ctx_buf->context;
 		ctxp->wqeq = NULL;
-		ctxp->txrdy = NULL;
 		ctxp->offset = 0;
 		ctxp->phba = phba;
 		ctxp->size = size;
@@ -1923,7 +1915,7 @@
 		}
 		tgtp->tport_unreg_cmp = &tport_unreg_cmp;
 		nvmet_fc_unregister_targetport(phba->targetport);
-		if (!wait_for_completion_timeout(tgtp->tport_unreg_cmp,
+		if (!wait_for_completion_timeout(&tport_unreg_cmp,
 					msecs_to_jiffies(LPFC_NVMET_WAIT_TMO)))
 			lpfc_printf_log(phba, KERN_ERR, LOG_NVME,
 					"6179 Unreg targetport x%px timeout "
@@ -1958,12 +1950,10 @@
 	uint32_t *payload;
 	uint32_t size, oxid, sid, rc;
 
-	fc_hdr = (struct fc_frame_header *)(nvmebuf->hbuf.virt);
-	oxid = be16_to_cpu(fc_hdr->fh_ox_id);
 
-	if (!phba->targetport) {
+	if (!nvmebuf || !phba->targetport) {
 		lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR,
-				"6154 LS Drop IO x%x\n", oxid);
+				"6154 LS Drop IO\n");
 		oxid = 0;
 		size = 0;
 		sid = 0;
@@ -1971,6 +1961,9 @@
 		goto dropit;
 	}
 
+	fc_hdr = (struct fc_frame_header *)(nvmebuf->hbuf.virt);
+	oxid = be16_to_cpu(fc_hdr->fh_ox_id);
+
 	tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private;
 	payload = (uint32_t *)(nvmebuf->dbuf.virt);
 	size = bf_get(lpfc_rcqe_length,  &nvmebuf->cq_event.cqe.rcqe_cmpl);
@@ -2326,7 +2319,6 @@
 				ctxp->state, ctxp->entry_cnt, ctxp->oxid);
 	}
 	ctxp->wqeq = NULL;
-	ctxp->txrdy = NULL;
 	ctxp->offset = 0;
 	ctxp->phba = phba;
 	ctxp->size = size;
@@ -2401,6 +2393,11 @@
 	d_buf = piocb->context2;
 	nvmebuf = container_of(d_buf, struct hbq_dmabuf, dbuf);
 
+	if (!nvmebuf) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR,
+				"3015 LS Drop IO\n");
+		return;
+	}
 	if (phba->nvmet_support == 0) {
 		lpfc_in_buf_free(phba, &nvmebuf->dbuf);
 		return;
@@ -2429,6 +2426,11 @@
 			   uint64_t isr_timestamp,
 			   uint8_t cqflag)
 {
+	if (!nvmebuf) {
+		lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR,
+				"3167 NVMET FCP Drop IO\n");
+		return;
+	}
 	if (phba->nvmet_support == 0) {
 		lpfc_rq_buf_free(phba, &nvmebuf->hbuf);
 		return;
@@ -2595,7 +2597,6 @@
 	struct scatterlist *sgel;
 	union lpfc_wqe128 *wqe;
 	struct ulp_bde64 *bde;
-	uint32_t *txrdy;
 	dma_addr_t physaddr;
 	int i, cnt;
 	int do_pbde;
@@ -2757,23 +2758,11 @@
 		       &lpfc_treceive_cmd_template.words[3],
 		       sizeof(uint32_t) * 9);
 
-		/* Words 0 - 2 : The first sg segment */
-		txrdy = dma_pool_alloc(phba->txrdy_payload_pool,
-				       GFP_KERNEL, &physaddr);
-		if (!txrdy) {
-			lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR,
-					"6041 Bad txrdy buffer: oxid x%x\n",
-					ctxp->oxid);
-			return NULL;
-		}
-		ctxp->txrdy = txrdy;
-		ctxp->txrdy_phys = physaddr;
-		wqe->fcp_treceive.bde.tus.f.bdeFlags = BUFF_TYPE_BDE_64;
-		wqe->fcp_treceive.bde.tus.f.bdeSize = TXRDY_PAYLOAD_LEN;
-		wqe->fcp_treceive.bde.addrLow =
-			cpu_to_le32(putPaddrLow(physaddr));
-		wqe->fcp_treceive.bde.addrHigh =
-			cpu_to_le32(putPaddrHigh(physaddr));
+		/* Words 0 - 2 : First SGE is skipped, set invalid BDE type */
+		wqe->fcp_treceive.bde.tus.f.bdeFlags = LPFC_SGE_TYPE_SKIP;
+		wqe->fcp_treceive.bde.tus.f.bdeSize = 0;
+		wqe->fcp_treceive.bde.addrLow = 0;
+		wqe->fcp_treceive.bde.addrHigh = 0;
 
 		/* Word 4 */
 		wqe->fcp_treceive.relative_offset = ctxp->offset;
@@ -2808,17 +2797,13 @@
 		/* Word 12 */
 		wqe->fcp_tsend.fcp_data_len = rsp->transfer_length;
 
-		/* Setup 1 TXRDY and 1 SKIP SGE */
-		txrdy[0] = 0;
-		txrdy[1] = cpu_to_be32(rsp->transfer_length);
-		txrdy[2] = 0;
-
-		sgl->addr_hi = putPaddrHigh(physaddr);
-		sgl->addr_lo = putPaddrLow(physaddr);
+		/* Setup 2 SKIP SGEs */
+		sgl->addr_hi = 0;
+		sgl->addr_lo = 0;
 		sgl->word2 = 0;
-		bf_set(lpfc_sli4_sge_type, sgl, LPFC_SGE_TYPE_DATA);
+		bf_set(lpfc_sli4_sge_type, sgl, LPFC_SGE_TYPE_SKIP);
 		sgl->word2 = cpu_to_le32(sgl->word2);
-		sgl->sge_len = cpu_to_le32(TXRDY_PAYLOAD_LEN);
+		sgl->sge_len = 0;
 		sgl++;
 		sgl->addr_hi = 0;
 		sgl->addr_lo = 0;
@@ -3239,9 +3224,9 @@
 {
 	struct lpfc_nvmet_tgtport *tgtp;
 	struct lpfc_iocbq *abts_wqeq;
-	union lpfc_wqe128 *abts_wqe;
 	struct lpfc_nodelist *ndlp;
 	unsigned long flags;
+	u8 opt;
 	int rc;
 
 	tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private;
@@ -3280,8 +3265,8 @@
 		return 0;
 	}
 	abts_wqeq = ctxp->abort_wqeq;
-	abts_wqe = &abts_wqeq->wqe;
 	ctxp->state = LPFC_NVMET_STE_ABORT;
+	opt = (ctxp->flag & LPFC_NVMET_ABTS_RCV) ? INHIBIT_ABORT : 0;
 	spin_unlock_irqrestore(&ctxp->ctxlock, flags);
 
 	/* Announce entry to new IO submit field. */
@@ -3327,40 +3312,12 @@
 	/* Ready - mark outstanding as aborted by driver. */
 	abts_wqeq->iocb_flag |= LPFC_DRIVER_ABORTED;
 
-	/* WQEs are reused.  Clear stale data and set key fields to
-	 * zero like ia, iaab, iaar, xri_tag, and ctxt_tag.
-	 */
-	memset(abts_wqe, 0, sizeof(*abts_wqe));
-
-	/* word 3 */
-	bf_set(abort_cmd_criteria, &abts_wqe->abort_cmd, T_XRI_TAG);
-
-	/* word 7 */
-	bf_set(wqe_ct, &abts_wqe->abort_cmd.wqe_com, 0);
-	bf_set(wqe_cmnd, &abts_wqe->abort_cmd.wqe_com, CMD_ABORT_XRI_CX);
-
-	/* word 8 - tell the FW to abort the IO associated with this
-	 * outstanding exchange ID.
-	 */
-	abts_wqe->abort_cmd.wqe_com.abort_tag = ctxp->wqeq->sli4_xritag;
-
-	/* word 9 - this is the iotag for the abts_wqe completion. */
-	bf_set(wqe_reqtag, &abts_wqe->abort_cmd.wqe_com,
-	       abts_wqeq->iotag);
-
-	/* word 10 */
-	bf_set(wqe_qosd, &abts_wqe->abort_cmd.wqe_com, 1);
-	bf_set(wqe_lenloc, &abts_wqe->abort_cmd.wqe_com, LPFC_WQE_LENLOC_NONE);
-
-	/* word 11 */
-	bf_set(wqe_cmd_type, &abts_wqe->abort_cmd.wqe_com, OTHER_COMMAND);
-	bf_set(wqe_wqec, &abts_wqe->abort_cmd.wqe_com, 1);
-	bf_set(wqe_cqid, &abts_wqe->abort_cmd.wqe_com, LPFC_WQE_CQ_ID_DEFAULT);
+	lpfc_nvme_prep_abort_wqe(abts_wqeq, ctxp->wqeq->sli4_xritag, opt);
 
 	/* ABTS WQE must go to the same WQ as the WQE to be aborted */
 	abts_wqeq->hba_wqidx = ctxp->wqeq->hba_wqidx;
 	abts_wqeq->wqe_cmpl = lpfc_nvmet_sol_fcp_abort_cmp;
-	abts_wqeq->iocb_cmpl = 0;
+	abts_wqeq->iocb_cmpl = NULL;
 	abts_wqeq->iocb_flag |= LPFC_IO_NVME;
 	abts_wqeq->context2 = ctxp;
 	abts_wqeq->vport = phba->pport;
@@ -3495,7 +3452,7 @@
 
 	spin_lock_irqsave(&phba->hbalock, flags);
 	abts_wqeq->wqe_cmpl = lpfc_nvmet_xmt_ls_abort_cmp;
-	abts_wqeq->iocb_cmpl = 0;
+	abts_wqeq->iocb_cmpl = NULL;
 	abts_wqeq->iocb_flag |=  LPFC_IO_NVME_LS;
 	rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq);
 	spin_unlock_irqrestore(&phba->hbalock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_nvmet.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_nvmet.h
@@ -112,9 +112,7 @@
 	struct lpfc_hba *phba;
 	struct lpfc_iocbq *wqeq;
 	struct lpfc_iocbq *abort_wqeq;
-	dma_addr_t txrdy_phys;
 	spinlock_t ctxlock; /* protect flag access */
-	uint32_t *txrdy;
 	uint32_t sid;
 	uint32_t offset;
 	uint16_t oxid;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_scsi.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.  *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -134,21 +134,21 @@
 
 /**
  * lpfc_update_stats - Update statistical data for the command completion
- * @phba: Pointer to HBA object.
+ * @vport: The virtual port on which this call is executing.
  * @lpfc_cmd: lpfc scsi command object pointer.
  *
  * This function is called when there is a command completion and this
  * function updates the statistical data for the command completion.
  **/
 static void
-lpfc_update_stats(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd)
+lpfc_update_stats(struct lpfc_vport *vport, struct lpfc_io_buf *lpfc_cmd)
 {
+	struct lpfc_hba *phba = vport->phba;
 	struct lpfc_rport_data *rdata;
 	struct lpfc_nodelist *pnode;
 	struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
 	unsigned long flags;
-	struct Scsi_Host  *shost = cmd->device->host;
-	struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
+	struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
 	unsigned long latency;
 	int i;
 
@@ -481,7 +481,7 @@
 		spin_lock(&qp->abts_io_buf_list_lock);
 		list_for_each_entry_safe(psb, next_psb,
 					 &qp->lpfc_abts_io_buf_list, list) {
-			if (psb->cur_iocbq.iocb_flag == LPFC_IO_NVME)
+			if (psb->cur_iocbq.iocb_flag & LPFC_IO_NVME)
 				continue;
 
 			if (psb->rdata && psb->rdata->pnode &&
@@ -526,9 +526,9 @@
 		&qp->lpfc_abts_io_buf_list, list) {
 		if (psb->cur_iocbq.sli4_xritag == xri) {
 			list_del_init(&psb->list);
-			psb->exch_busy = 0;
+			psb->flags &= ~LPFC_SBUF_XBUSY;
 			psb->status = IOSTAT_SUCCESS;
-			if (psb->cur_iocbq.iocb_flag == LPFC_IO_NVME) {
+			if (psb->cur_iocbq.iocb_flag & LPFC_IO_NVME) {
 				qp->abts_nvme_io_bufs--;
 				spin_unlock(&qp->abts_io_buf_list_lock);
 				spin_unlock_irqrestore(&phba->hbalock, iflag);
@@ -566,7 +566,7 @@
 		if (iocbq->sli4_xritag != xri)
 			continue;
 		psb = container_of(iocbq, struct lpfc_io_buf, cur_iocbq);
-		psb->exch_busy = 0;
+		psb->flags &= ~LPFC_SBUF_XBUSY;
 		spin_unlock_irqrestore(&phba->hbalock, iflag);
 		if (!list_empty(&pring->txq))
 			lpfc_worker_wake_up(phba);
@@ -609,7 +609,7 @@
 	}
 	spin_unlock_irqrestore(&phba->scsi_buf_list_get_lock, iflag);
 
-	if (lpfc_ndlp_check_qdepth(phba, ndlp) && lpfc_cmd) {
+	if (lpfc_ndlp_check_qdepth(phba, ndlp)) {
 		atomic_inc(&ndlp->cmd_pending);
 		lpfc_cmd->flags |= LPFC_SBUF_BUMP_QDEPTH;
 	}
@@ -671,8 +671,10 @@
 	lpfc_cmd->prot_data_type = 0;
 #endif
 	tmp = lpfc_get_cmd_rsp_buf_per_hdwq(phba, lpfc_cmd);
-	if (!tmp)
+	if (!tmp) {
+		lpfc_release_io_buf(phba, lpfc_cmd, lpfc_cmd->hdwq);
 		return NULL;
+	}
 
 	lpfc_cmd->fcp_cmnd = tmp->fcp_cmnd;
 	lpfc_cmd->fcp_rsp = tmp->fcp_rsp;
@@ -719,7 +721,7 @@
 	iocb->ulpLe = 1;
 	iocb->ulpClass = CLASS3;
 
-	if (lpfc_ndlp_check_qdepth(phba, ndlp)) {
+	if (lpfc_ndlp_check_qdepth(phba, ndlp) && lpfc_cmd) {
 		atomic_inc(&ndlp->cmd_pending);
 		lpfc_cmd->flags |= LPFC_SBUF_BUMP_QDEPTH;
 	}
@@ -786,7 +788,7 @@
 	psb->prot_seg_cnt = 0;
 
 	qp = psb->hdwq;
-	if (psb->exch_busy) {
+	if (psb->flags & LPFC_SBUF_XBUSY) {
 		spin_lock_irqsave(&qp->abts_io_buf_list_lock, iflag);
 		psb->pCmd = NULL;
 		list_add_tail(&psb->list, &qp->lpfc_abts_io_buf_list);
@@ -3812,7 +3814,7 @@
 
 	/* Sanity check on return of outstanding command */
 	cmd = lpfc_cmd->pCmd;
-	if (!cmd) {
+	if (!cmd || !phba) {
 		lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
 				 "2621 IO completion: Not an active IO\n");
 		spin_unlock(&lpfc_cmd->buf_lock);
@@ -3824,7 +3826,7 @@
 		phba->sli4_hba.hdwq[idx].scsi_cstat.io_cmpls++;
 
 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
-	if (phba->cpucheck_on & LPFC_CHECK_SCSI_IO) {
+	if (unlikely(phba->cpucheck_on & LPFC_CHECK_SCSI_IO)) {
 		cpu = raw_smp_processor_id();
 		if (cpu < LPFC_CHECK_CPU_CNT && phba->sli4_hba.hdwq)
 			phba->sli4_hba.hdwq[idx].cpucheck_cmpl_io[cpu]++;
@@ -3835,7 +3837,10 @@
 	lpfc_cmd->result = (pIocbOut->iocb.un.ulpWord[4] & IOERR_PARAM_MASK);
 	lpfc_cmd->status = pIocbOut->iocb.ulpStatus;
 	/* pick up SLI4 exhange busy status from HBA */
-	lpfc_cmd->exch_busy = pIocbOut->iocb_flag & LPFC_EXCHANGE_BUSY;
+	if (pIocbOut->iocb_flag & LPFC_EXCHANGE_BUSY)
+		lpfc_cmd->flags |= LPFC_SBUF_XBUSY;
+	else
+		lpfc_cmd->flags &= ~LPFC_SBUF_XBUSY;
 
 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
 	if (lpfc_cmd->prot_data_type) {
@@ -3869,7 +3874,7 @@
 	}
 #endif
 
-	if (lpfc_cmd->status) {
+	if (unlikely(lpfc_cmd->status)) {
 		if (lpfc_cmd->status == IOSTAT_LOCAL_REJECT &&
 		    (lpfc_cmd->result & IOERR_DRVR_MASK))
 			lpfc_cmd->status = IOSTAT_DRIVER_REJECT;
@@ -4002,7 +4007,7 @@
 				 scsi_get_resid(cmd));
 	}
 
-	lpfc_update_stats(phba, lpfc_cmd);
+	lpfc_update_stats(vport, lpfc_cmd);
 	if (vport->cfg_max_scsicmpl_time &&
 	   time_after(jiffies, lpfc_cmd->start_time +
 		msecs_to_jiffies(vport->cfg_max_scsicmpl_time))) {
@@ -4610,17 +4615,18 @@
 		err = lpfc_scsi_prep_dma_buf(phba, lpfc_cmd);
 	}
 
-	if (err == 2) {
-		cmnd->result = DID_ERROR << 16;
-		goto out_fail_command_release_buf;
-	} else if (err) {
+	if (unlikely(err)) {
+		if (err == 2) {
+			cmnd->result = DID_ERROR << 16;
+			goto out_fail_command_release_buf;
+		}
 		goto out_host_busy_free_buf;
 	}
 
 	lpfc_scsi_prep_cmnd(vport, lpfc_cmd, ndlp);
 
 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
-	if (phba->cpucheck_on & LPFC_CHECK_SCSI_IO) {
+	if (unlikely(phba->cpucheck_on & LPFC_CHECK_SCSI_IO)) {
 		cpu = raw_smp_processor_id();
 		if (cpu < LPFC_CHECK_CPU_CNT) {
 			struct lpfc_sli4_hdw_queue *hdwq =
@@ -4843,20 +4849,21 @@
 		ret_val = __lpfc_sli_issue_iocb(phba, LPFC_FCP_RING,
 						abtsiocb, 0);
 	}
-	/* no longer need the lock after this point */
-	spin_unlock_irqrestore(&phba->hbalock, flags);
 
 	if (ret_val == IOCB_ERROR) {
 		/* Indicate the IO is not being aborted by the driver. */
 		iocb->iocb_flag &= ~LPFC_DRIVER_ABORTED;
 		lpfc_cmd->waitq = NULL;
 		spin_unlock(&lpfc_cmd->buf_lock);
+		spin_unlock_irqrestore(&phba->hbalock, flags);
 		lpfc_sli_release_iocbq(phba, abtsiocb);
 		ret = FAILED;
 		goto out;
 	}
 
+	/* no longer need the lock after this point */
 	spin_unlock(&lpfc_cmd->buf_lock);
+	spin_unlock_irqrestore(&phba->hbalock, flags);
 
 	if (phba->cfg_poll & DISABLE_FCP_RING_INT)
 		lpfc_sli_handle_fast_ring_event(phba,
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_sli.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_sli.c
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.  *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -87,6 +87,10 @@
 				     struct lpfc_eqe *eqe);
 static bool lpfc_sli4_mbox_completions_pending(struct lpfc_hba *phba);
 static bool lpfc_sli4_process_missed_mbox_completions(struct lpfc_hba *phba);
+static struct lpfc_cqe *lpfc_sli4_cq_get(struct lpfc_queue *q);
+static void __lpfc_sli4_consume_cqe(struct lpfc_hba *phba,
+				    struct lpfc_queue *cq,
+				    struct lpfc_cqe *cqe);
 
 static IOCB_t *
 lpfc_get_iocb_from_iocbq(struct lpfc_iocbq *iocbq)
@@ -467,25 +471,52 @@
 }
 
 static void
-lpfc_sli4_eq_flush(struct lpfc_hba *phba, struct lpfc_queue *eq)
+lpfc_sli4_eqcq_flush(struct lpfc_hba *phba, struct lpfc_queue *eq)
 {
-	struct lpfc_eqe *eqe;
-	uint32_t count = 0;
+	struct lpfc_eqe *eqe = NULL;
+	u32 eq_count = 0, cq_count = 0;
+	struct lpfc_cqe *cqe = NULL;
+	struct lpfc_queue *cq = NULL, *childq = NULL;
+	int cqid = 0;
 
 	/* walk all the EQ entries and drop on the floor */
 	eqe = lpfc_sli4_eq_get(eq);
 	while (eqe) {
+		/* Get the reference to the corresponding CQ */
+		cqid = bf_get_le32(lpfc_eqe_resource_id, eqe);
+		cq = NULL;
+
+		list_for_each_entry(childq, &eq->child_list, list) {
+			if (childq->queue_id == cqid) {
+				cq = childq;
+				break;
+			}
+		}
+		/* If CQ is valid, iterate through it and drop all the CQEs */
+		if (cq) {
+			cqe = lpfc_sli4_cq_get(cq);
+			while (cqe) {
+				__lpfc_sli4_consume_cqe(phba, cq, cqe);
+				cq_count++;
+				cqe = lpfc_sli4_cq_get(cq);
+			}
+			/* Clear and re-arm the CQ */
+			phba->sli4_hba.sli4_write_cq_db(phba, cq, cq_count,
+			    LPFC_QUEUE_REARM);
+			cq_count = 0;
+		}
 		__lpfc_sli4_consume_eqe(phba, eq, eqe);
-		count++;
+		eq_count++;
 		eqe = lpfc_sli4_eq_get(eq);
 	}
 
 	/* Clear and re-arm the EQ */
-	phba->sli4_hba.sli4_write_eq_db(phba, eq, count, LPFC_QUEUE_REARM);
+	phba->sli4_hba.sli4_write_eq_db(phba, eq, eq_count, LPFC_QUEUE_REARM);
 }
 
 static int
-lpfc_sli4_process_eq(struct lpfc_hba *phba, struct lpfc_queue *eq)
+lpfc_sli4_process_eq(struct lpfc_hba *phba, struct lpfc_queue *eq,
+		     uint8_t rearm)
 {
 	struct lpfc_eqe *eqe;
 	int count = 0, consumed = 0;
@@ -519,8 +550,8 @@
 	eq->queue_claimed = 0;
 
 rearm_and_exit:
-	/* Always clear and re-arm the EQ */
-	phba->sli4_hba.sli4_write_eq_db(phba, eq, consumed, LPFC_QUEUE_REARM);
+	/* Always clear the EQ. */
+	phba->sli4_hba.sli4_write_eq_db(phba, eq, consumed, rearm);
 
 	return count;
 }
@@ -2480,6 +2511,8 @@
 	    !pmb->u.mb.mbxStatus) {
 		rpi = pmb->u.mb.un.varWords[0];
 		vpi = pmb->u.mb.un.varRegLogin.vpi;
+		if (phba->sli_rev == LPFC_SLI_REV4)
+			vpi -= phba->sli4_hba.max_cfg_param.vpi_base;
 		lpfc_unreg_login(phba, vpi, rpi, pmb);
 		pmb->vport = vport;
 		pmb->mbox_cmpl = lpfc_sli_def_mbox_cmpl;
@@ -2526,6 +2559,8 @@
 			} else {
 				__lpfc_sli_rpi_release(vport, ndlp);
 			}
+			if (vport->load_flag & FC_UNLOADING)
+				lpfc_nlp_put(ndlp);
 			pmb->ctx_ndlp = NULL;
 		}
 	}
@@ -2672,7 +2707,8 @@
 			lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
 					"(%d):0323 Unknown Mailbox command "
 					"x%x (x%x/x%x) Cmpl\n",
-					pmb->vport ? pmb->vport->vpi : 0,
+					pmb->vport ? pmb->vport->vpi :
+					LPFC_VPORT_UNKNOWN,
 					pmbox->mbxCommand,
 					lpfc_sli_config_mbox_subsys_get(phba,
 									pmb),
@@ -2693,7 +2729,8 @@
 					"(%d):0305 Mbox cmd cmpl "
 					"error - RETRYing Data: x%x "
 					"(x%x/x%x) x%x x%x x%x\n",
-					pmb->vport ? pmb->vport->vpi : 0,
+					pmb->vport ? pmb->vport->vpi :
+					LPFC_VPORT_UNKNOWN,
 					pmbox->mbxCommand,
 					lpfc_sli_config_mbox_subsys_get(phba,
 									pmb),
@@ -2701,7 +2738,8 @@
 									pmb),
 					pmbox->mbxStatus,
 					pmbox->un.varWords[0],
-					pmb->vport->port_state);
+					pmb->vport ? pmb->vport->port_state :
+					LPFC_VPORT_UNKNOWN);
 				pmbox->mbxStatus = 0;
 				pmbox->mbxOwner = OWN_HOST;
 				rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT);
@@ -4008,6 +4046,11 @@
 	struct lpfc_iocbq *piocb, *next_iocb;
 
 	spin_lock_irq(&phba->hbalock);
+	if (phba->hba_flag & HBA_IOQ_FLUSH ||
+	    !phba->sli4_hba.hdwq) {
+		spin_unlock_irq(&phba->hbalock);
+		return;
+	}
 	/* Indicate the I/O queues are flushed */
 	phba->hba_flag |= HBA_IOQ_FLUSH;
 	spin_unlock_irq(&phba->hbalock);
@@ -4882,8 +4925,17 @@
 lpfc_sli4_rb_setup(struct lpfc_hba *phba)
 {
 	phba->hbq_in_use = 1;
-	phba->hbqs[LPFC_ELS_HBQ].entry_count =
-		lpfc_hbq_defs[LPFC_ELS_HBQ]->entry_count;
+	/**
+	 * Specific case when the MDS diagnostics is enabled and supported.
+	 * The receive buffer count is truncated to manage the incoming
+	 * traffic.
+	 **/
+	if (phba->cfg_enable_mds_diags && phba->mds_diags_support)
+		phba->hbqs[LPFC_ELS_HBQ].entry_count =
+			lpfc_hbq_defs[LPFC_ELS_HBQ]->entry_count >> 1;
+	else
+		phba->hbqs[LPFC_ELS_HBQ].entry_count =
+			lpfc_hbq_defs[LPFC_ELS_HBQ]->entry_count;
 	phba->hbq_count = 1;
 	lpfc_sli_hbqbuf_init_hbqs(phba, LPFC_ELS_HBQ);
 	/* Initially populate or replenish the HBQs */
@@ -6167,6 +6219,14 @@
 		mbox->u.mqe.un.set_feature.feature = LPFC_SET_MDS_DIAGS;
 		mbox->u.mqe.un.set_feature.param_len = 8;
 		break;
+	case LPFC_SET_DUAL_DUMP:
+		bf_set(lpfc_mbx_set_feature_dd,
+		       &mbox->u.mqe.un.set_feature, LPFC_ENABLE_DUAL_DUMP);
+		bf_set(lpfc_mbx_set_feature_ddquery,
+		       &mbox->u.mqe.un.set_feature, 0);
+		mbox->u.mqe.un.set_feature.feature = LPFC_SET_DUAL_DUMP;
+		mbox->u.mqe.un.set_feature.param_len = 4;
+		break;
 	}
 
 	return;
@@ -6184,11 +6244,16 @@
 {
 	struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog;
 
-	ras_fwlog->ras_active = false;
+	spin_lock_irq(&phba->hbalock);
+	ras_fwlog->state = INACTIVE;
+	spin_unlock_irq(&phba->hbalock);
 
 	/* Disable FW logging to host memory */
 	writel(LPFC_CTL_PDEV_CTL_DDL_RAS,
 	       phba->sli4_hba.conf_regs_memmap_p + LPFC_CTL_PDEV_CTL_OFFSET);
+
+	/* Wait 10ms for firmware to stop using DMA buffer */
+	usleep_range(10 * 1000, 20 * 1000);
 }
 
 /**
@@ -6224,7 +6289,9 @@
 		ras_fwlog->lwpd.virt = NULL;
 	}
 
-	ras_fwlog->ras_active = false;
+	spin_lock_irq(&phba->hbalock);
+	ras_fwlog->state = INACTIVE;
+	spin_unlock_irq(&phba->hbalock);
 }
 
 /**
@@ -6326,7 +6393,9 @@
 		goto disable_ras;
 	}
 
-	ras_fwlog->ras_active = true;
+	spin_lock_irq(&phba->hbalock);
+	ras_fwlog->state = ACTIVE;
+	spin_unlock_irq(&phba->hbalock);
 	mempool_free(pmb, phba->mbox_mem_pool);
 
 	return;
@@ -6358,6 +6427,10 @@
 	uint32_t len = 0, fwlog_buffsize, fwlog_entry_count;
 	int rc = 0;
 
+	spin_lock_irq(&phba->hbalock);
+	ras_fwlog->state = INACTIVE;
+	spin_unlock_irq(&phba->hbalock);
+
 	fwlog_buffsize = (LPFC_RAS_MIN_BUFF_POST_SIZE *
 			  phba->cfg_ras_fwlog_buffsize);
 	fwlog_entry_count = (fwlog_buffsize/LPFC_RAS_MAX_ENTRY_SIZE);
@@ -6417,6 +6490,9 @@
 	mbx_fwlog->u.request.lwpd.addr_lo = putPaddrLow(ras_fwlog->lwpd.phys);
 	mbx_fwlog->u.request.lwpd.addr_hi = putPaddrHigh(ras_fwlog->lwpd.phys);
 
+	spin_lock_irq(&phba->hbalock);
+	ras_fwlog->state = REG_INPROGRESS;
+	spin_unlock_irq(&phba->hbalock);
 	mbox->vport = phba->pport;
 	mbox->mbox_cmpl = lpfc_sli4_ras_mbox_cmpl;
 
@@ -7092,12 +7168,16 @@
 	struct rqb_dmabuf *rqb_buffer;
 	LIST_HEAD(rqb_buf_list);
 
-	spin_lock_irqsave(&phba->hbalock, flags);
 	rqbp = hrq->rqbp;
 	for (i = 0; i < count; i++) {
+		spin_lock_irqsave(&phba->hbalock, flags);
 		/* IF RQ is already full, don't bother */
-		if (rqbp->buffer_count + i >= rqbp->entry_count - 1)
+		if (rqbp->buffer_count + i >= rqbp->entry_count - 1) {
+			spin_unlock_irqrestore(&phba->hbalock, flags);
 			break;
+		}
+		spin_unlock_irqrestore(&phba->hbalock, flags);
+
 		rqb_buffer = rqbp->rqb_alloc_buffer(phba);
 		if (!rqb_buffer)
 			break;
@@ -7106,6 +7186,8 @@
 		rqb_buffer->idx = idx;
 		list_add_tail(&rqb_buffer->hbuf.list, &rqb_buf_list);
 	}
+
+	spin_lock_irqsave(&phba->hbalock, flags);
 	while (!list_empty(&rqb_buf_list)) {
 		list_remove_head(&rqb_buf_list, rqb_buffer, struct rqb_dmabuf,
 				 hbuf.list);
@@ -7148,7 +7230,7 @@
 int
 lpfc_sli4_hba_setup(struct lpfc_hba *phba)
 {
-	int rc, i, cnt, len;
+	int rc, i, cnt, len, dd;
 	LPFC_MBOXQ_t *mboxq;
 	struct lpfc_mqe *mqe;
 	uint8_t *vpd;
@@ -7302,15 +7384,6 @@
 			phba->vpd.rev.fcphHigh, phba->vpd.rev.fcphLow,
 			phba->vpd.rev.feaLevelHigh, phba->vpd.rev.feaLevelLow);
 
-	/* Reset the DFT_LUN_Q_DEPTH to (max xri >> 3)  */
-	rc = (phba->sli4_hba.max_cfg_param.max_xri >> 3);
-	if (phba->pport->cfg_lun_queue_depth > rc) {
-		lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
-				"3362 LUN queue depth changed from %d to %d\n",
-				phba->pport->cfg_lun_queue_depth, rc);
-		phba->pport->cfg_lun_queue_depth = rc;
-	}
-
 	if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) ==
 	    LPFC_SLI_INTF_IF_TYPE_0) {
 		lpfc_set_features(phba, mboxq, LPFC_SET_UE_RECOVERY);
@@ -7399,6 +7472,23 @@
 	phba->sli3_options |= (LPFC_SLI3_NPIV_ENABLED | LPFC_SLI3_HBQ_ENABLED);
 	spin_unlock_irq(&phba->hbalock);
 
+	/* Always try to enable dual dump feature if we can */
+	lpfc_set_features(phba, mboxq, LPFC_SET_DUAL_DUMP);
+	rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL);
+	dd = bf_get(lpfc_mbx_set_feature_dd, &mboxq->u.mqe.un.set_feature);
+	if ((rc == MBX_SUCCESS) && (dd == LPFC_ENABLE_DUAL_DUMP))
+		lpfc_printf_log(phba, KERN_ERR, LOG_SLI | LOG_INIT,
+				"6448 Dual Dump is enabled\n");
+	else
+		lpfc_printf_log(phba, KERN_INFO, LOG_SLI | LOG_INIT,
+				"6447 Dual Dump Mailbox x%x (x%x/x%x) failed, "
+				"rc:x%x dd:x%x\n",
+				bf_get(lpfc_mqe_command, &mboxq->u.mqe),
+				lpfc_sli_config_mbox_subsys_get(
+					phba, mboxq),
+				lpfc_sli_config_mbox_opcode_get(
+					phba, mboxq),
+				rc, dd);
 	/*
 	 * Allocate all resources (xri,rpi,vpi,vfi) now.  Subsequent
 	 * calls depends on these resources to complete port setup.
@@ -7523,9 +7613,11 @@
 		}
 		phba->sli4_hba.nvmet_xri_cnt = rc;
 
-		cnt = phba->cfg_iocb_cnt * 1024;
-		/* We need 1 iocbq for every SGL, for IO processing */
-		cnt += phba->sli4_hba.nvmet_xri_cnt;
+		/* We allocate an iocbq for every receive context SGL.
+		 * The additional allocation is for abort and ls handling.
+		 */
+		cnt = phba->sli4_hba.nvmet_xri_cnt +
+			phba->sli4_hba.max_cfg_param.max_xri;
 	} else {
 		/* update host common xri-sgl sizes and mappings */
 		rc = lpfc_sli4_io_sgl_update(phba);
@@ -7547,14 +7639,17 @@
 			rc = -ENODEV;
 			goto out_destroy_queue;
 		}
-		cnt = phba->cfg_iocb_cnt * 1024;
+		/* Each lpfc_io_buf job structure has an iocbq element.
+		 * This cnt provides for abort, els, ct and ls requests.
+		 */
+		cnt = phba->sli4_hba.max_cfg_param.max_xri;
 	}
 
 	if (!phba->sli.iocbq_lookup) {
 		/* Initialize and populate the iocb list per host */
 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
-				"2821 initialize iocb list %d total %d\n",
-				phba->cfg_iocb_cnt, cnt);
+				"2821 initialize iocb list with %d entries\n",
+				cnt);
 		rc = lpfc_init_iocb_list(phba, cnt);
 		if (rc) {
 			lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
@@ -7892,7 +7987,7 @@
 
 	if (mbox_pending)
 		/* process and rearm the EQ */
-		lpfc_sli4_process_eq(phba, fpeq);
+		lpfc_sli4_process_eq(phba, fpeq, LPFC_QUEUE_REARM);
 	else
 		/* Always clear and re-arm the EQ */
 		sli4_hba->sli4_write_eq_db(phba, fpeq, 0, LPFC_QUEUE_REARM);
@@ -8964,7 +9059,8 @@
  * @pring: Pointer to driver SLI ring object.
  * @piocb: Pointer to address of newly added command iocb.
  *
- * This function is called with hbalock held to add a command
+ * This function is called with hbalock held for SLI3 ports or
+ * the ring lock held for SLI4 ports to add a command
  * iocb to the txq when SLI layer cannot submit the command iocb
  * to the ring.
  **/
@@ -8972,7 +9068,10 @@
 __lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
 		    struct lpfc_iocbq *piocb)
 {
-	lockdep_assert_held(&phba->hbalock);
+	if (phba->sli_rev == LPFC_SLI_REV4)
+		lockdep_assert_held(&pring->ring_lock);
+	else
+		lockdep_assert_held(&phba->hbalock);
 	/* Insert the caller's iocb in the txq tail for later processing. */
 	list_add_tail(&piocb->list, &pring->txq);
 }
@@ -9373,6 +9472,7 @@
 		if (if_type >= LPFC_SLI_INTF_IF_TYPE_2) {
 			if (pcmd && (*pcmd == ELS_CMD_FLOGI ||
 				*pcmd == ELS_CMD_SCR ||
+				*pcmd == ELS_CMD_RDF ||
 				*pcmd == ELS_CMD_RSCN_XMT ||
 				*pcmd == ELS_CMD_FDISC ||
 				*pcmd == ELS_CMD_LOGO ||
@@ -9863,7 +9963,7 @@
  * __lpfc_sli_issue_iocb_s4 is used by other functions in the driver to issue
  * an iocb command to an HBA with SLI-4 interface spec.
  *
- * This function is called with hbalock held. The function will return success
+ * This function is called with ringlock held. The function will return success
  * after it successfully submit the iocb to firmware or after adding to the
  * txq.
  **/
@@ -10053,10 +10153,13 @@
 		    struct lpfc_iocbq *piocb, uint32_t flag)
 {
 	struct lpfc_sli_ring *pring;
+	struct lpfc_queue *eq;
 	unsigned long iflags;
 	int rc;
 
 	if (phba->sli_rev == LPFC_SLI_REV4) {
+		eq = phba->sli4_hba.hdwq[piocb->hba_wqidx].hba_eq;
+
 		pring = lpfc_sli4_calc_ring(phba, piocb);
 		if (unlikely(pring == NULL))
 			return IOCB_ERROR;
@@ -10064,6 +10167,8 @@
 		spin_lock_irqsave(&pring->ring_lock, iflags);
 		rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
 		spin_unlock_irqrestore(&pring->ring_lock, iflags);
+
+		lpfc_sli4_poll_eq(eq, LPFC_POLL_FASTPATH);
 	} else {
 		/* For now, SLI2/3 will still use hbalock */
 		spin_lock_irqsave(&phba->hbalock, iflags);
@@ -10678,14 +10783,14 @@
 				set_bit(LPFC_DATA_READY, &phba->data_flags);
 			}
 			prev_pring_flag = pring->flag;
-			spin_lock_irq(&pring->ring_lock);
+			spin_lock(&pring->ring_lock);
 			list_for_each_entry_safe(iocb, next_iocb,
 						 &pring->txq, list) {
 				if (iocb->vport != vport)
 					continue;
 				list_move_tail(&iocb->list, &completions);
 			}
-			spin_unlock_irq(&pring->ring_lock);
+			spin_unlock(&pring->ring_lock);
 			list_for_each_entry_safe(iocb, next_iocb,
 						 &pring->txcmplq, list) {
 				if (iocb->vport != vport)
@@ -11050,9 +11155,6 @@
 				irsp->ulpStatus, irsp->un.ulpWord[4]);
 
 		spin_unlock_irq(&phba->hbalock);
-		if (irsp->ulpStatus == IOSTAT_LOCAL_REJECT &&
-		    irsp->un.ulpWord[4] == IOERR_SLI_ABORTED)
-			lpfc_sli_release_iocbq(phba, abort_iocb);
 	}
 release_iocb:
 	lpfc_sli_release_iocbq(phba, cmdiocb);
@@ -11736,7 +11838,10 @@
 		!(cmdiocbq->iocb_flag & LPFC_IO_LIBDFC)) {
 		lpfc_cmd = container_of(cmdiocbq, struct lpfc_io_buf,
 			cur_iocbq);
-		lpfc_cmd->exch_busy = rspiocbq->iocb_flag & LPFC_EXCHANGE_BUSY;
+		if (rspiocbq && (rspiocbq->iocb_flag & LPFC_EXCHANGE_BUSY))
+			lpfc_cmd->flags |= LPFC_SBUF_XBUSY;
+		else
+			lpfc_cmd->flags &= ~LPFC_SBUF_XBUSY;
 	}
 
 	pdone_q = cmdiocbq->context_un.wait_queue;
@@ -13158,13 +13263,19 @@
 	phba->sli.sli_flag &= ~LPFC_SLI_MBOX_ACTIVE;
 	/* Setting active mailbox pointer need to be in sync to flag clear */
 	phba->sli.mbox_active = NULL;
+	if (bf_get(lpfc_trailer_consumed, mcqe))
+		lpfc_sli4_mq_release(phba->sli4_hba.mbx_wq);
 	spin_unlock_irqrestore(&phba->hbalock, iflags);
 	/* Wake up worker thread to post the next pending mailbox command */
 	lpfc_worker_wake_up(phba);
+	return workposted;
+
 out_no_mqe_complete:
+	spin_lock_irqsave(&phba->hbalock, iflags);
 	if (bf_get(lpfc_trailer_consumed, mcqe))
 		lpfc_sli4_mq_release(phba->sli4_hba.mbx_wq);
-	return workposted;
+	spin_unlock_irqrestore(&phba->hbalock, iflags);
+	return false;
 }
 
 /**
@@ -13217,7 +13328,6 @@
 	struct lpfc_sli_ring *pring = cq->pring;
 	int txq_cnt = 0;
 	int txcmplq_cnt = 0;
-	int fcp_txcmplq_cnt = 0;
 
 	/* Check for response status */
 	if (unlikely(bf_get(lpfc_wcqe_c_status, wcqe))) {
@@ -13239,9 +13349,8 @@
 			txcmplq_cnt++;
 		lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
 			"0387 NO IOCBQ data: txq_cnt=%d iocb_cnt=%d "
-			"fcp_txcmplq_cnt=%d, els_txcmplq_cnt=%d\n",
+			"els_txcmplq_cnt=%d\n",
 			txq_cnt, phba->iocb_cnt,
-			fcp_txcmplq_cnt,
 			txcmplq_cnt);
 		return false;
 	}
@@ -13592,6 +13701,7 @@
 			phba->sli4_hba.sli4_write_cq_db(phba, cq, consumed,
 						LPFC_QUEUE_NOARM);
 			consumed = 0;
+			cq->assoc_qp->q_flag |= HBA_EQ_DELAY_CHK;
 		}
 
 		if (count == LPFC_NVMET_CQ_NOTIFY)
@@ -14220,7 +14330,7 @@
 		spin_lock_irqsave(&phba->hbalock, iflag);
 		if (phba->link_state < LPFC_LINK_DOWN)
 			/* Flush, clear interrupt, and rearm the EQ */
-			lpfc_sli4_eq_flush(phba, fpeq);
+			lpfc_sli4_eqcq_flush(phba, fpeq);
 		spin_unlock_irqrestore(&phba->hbalock, iflag);
 		return IRQ_NONE;
 	}
@@ -14230,14 +14340,14 @@
 	fpeq->last_cpu = raw_smp_processor_id();
 
 	if (icnt > LPFC_EQD_ISR_TRIGGER &&
-	    phba->cfg_irq_chann == 1 &&
+	    fpeq->q_flag & HBA_EQ_DELAY_CHK &&
 	    phba->cfg_auto_imax &&
 	    fpeq->q_mode != LPFC_MAX_AUTO_EQ_DELAY &&
 	    phba->sli.sli_flag & LPFC_SLI_USE_EQDR)
 		lpfc_sli4_mod_hba_eq_delay(phba, fpeq, LPFC_MAX_AUTO_EQ_DELAY);
 
 	/* process and rearm the EQ */
-	ecount = lpfc_sli4_process_eq(phba, fpeq);
+	ecount = lpfc_sli4_process_eq(phba, fpeq, LPFC_QUEUE_REARM);
 
 	if (unlikely(ecount == 0)) {
 		fpeq->EQ_no_entry++;
@@ -14297,6 +14407,147 @@
 	return (hba_handled == true) ? IRQ_HANDLED : IRQ_NONE;
 } /* lpfc_sli4_intr_handler */
 
+void lpfc_sli4_poll_hbtimer(struct timer_list *t)
+{
+	struct lpfc_hba *phba = from_timer(phba, t, cpuhp_poll_timer);
+	struct lpfc_queue *eq;
+	int i = 0;
+
+	rcu_read_lock();
+
+	list_for_each_entry_rcu(eq, &phba->poll_list, _poll_list)
+		i += lpfc_sli4_poll_eq(eq, LPFC_POLL_SLOWPATH);
+	if (!list_empty(&phba->poll_list))
+		mod_timer(&phba->cpuhp_poll_timer,
+			  jiffies + msecs_to_jiffies(LPFC_POLL_HB));
+
+	rcu_read_unlock();
+}
+
+inline int lpfc_sli4_poll_eq(struct lpfc_queue *eq, uint8_t path)
+{
+	struct lpfc_hba *phba = eq->phba;
+	int i = 0;
+
+	/*
+	 * Unlocking an irq is one of the entry point to check
+	 * for re-schedule, but we are good for io submission
+	 * path as midlayer does a get_cpu to glue us in. Flush
+	 * out the invalidate queue so we can see the updated
+	 * value for flag.
+	 */
+	smp_rmb();
+
+	if (READ_ONCE(eq->mode) == LPFC_EQ_POLL)
+		/* We will not likely get the completion for the caller
+		 * during this iteration but i guess that's fine.
+		 * Future io's coming on this eq should be able to
+		 * pick it up.  As for the case of single io's, they
+		 * will be handled through a sched from polling timer
+		 * function which is currently triggered every 1msec.
+		 */
+		i = lpfc_sli4_process_eq(phba, eq, LPFC_QUEUE_NOARM);
+
+	return i;
+}
+
+static inline void lpfc_sli4_add_to_poll_list(struct lpfc_queue *eq)
+{
+	struct lpfc_hba *phba = eq->phba;
+
+	if (list_empty(&phba->poll_list)) {
+		timer_setup(&phba->cpuhp_poll_timer, lpfc_sli4_poll_hbtimer, 0);
+		/* kickstart slowpath processing for this eq */
+		mod_timer(&phba->cpuhp_poll_timer,
+			  jiffies + msecs_to_jiffies(LPFC_POLL_HB));
+	}
+
+	list_add_rcu(&eq->_poll_list, &phba->poll_list);
+	synchronize_rcu();
+}
+
+static inline void lpfc_sli4_remove_from_poll_list(struct lpfc_queue *eq)
+{
+	struct lpfc_hba *phba = eq->phba;
+
+	/* Disable slowpath processing for this eq.  Kick start the eq
+	 * by RE-ARMING the eq's ASAP
+	 */
+	list_del_rcu(&eq->_poll_list);
+	synchronize_rcu();
+
+	if (list_empty(&phba->poll_list))
+		del_timer_sync(&phba->cpuhp_poll_timer);
+}
+
+void lpfc_sli4_cleanup_poll_list(struct lpfc_hba *phba)
+{
+	struct lpfc_queue *eq, *next;
+
+	list_for_each_entry_safe(eq, next, &phba->poll_list, _poll_list)
+		list_del(&eq->_poll_list);
+
+	INIT_LIST_HEAD(&phba->poll_list);
+	synchronize_rcu();
+}
+
+static inline void
+__lpfc_sli4_switch_eqmode(struct lpfc_queue *eq, uint8_t mode)
+{
+	if (mode == eq->mode)
+		return;
+	/*
+	 * currently this function is only called during a hotplug
+	 * event and the cpu on which this function is executing
+	 * is going offline.  By now the hotplug has instructed
+	 * the scheduler to remove this cpu from cpu active mask.
+	 * So we don't need to work about being put aside by the
+	 * scheduler for a high priority process.  Yes, the inte-
+	 * rrupts could come but they are known to retire ASAP.
+	 */
+
+	/* Disable polling in the fastpath */
+	WRITE_ONCE(eq->mode, mode);
+	/* flush out the store buffer */
+	smp_wmb();
+
+	/*
+	 * Add this eq to the polling list and start polling. For
+	 * a grace period both interrupt handler and poller will
+	 * try to process the eq _but_ that's fine.  We have a
+	 * synchronization mechanism in place (queue_claimed) to
+	 * deal with it.  This is just a draining phase for int-
+	 * errupt handler (not eq's) as we have guranteed through
+	 * barrier that all the CPUs have seen the new CQ_POLLED
+	 * state. which will effectively disable the REARMING of
+	 * the EQ.  The whole idea is eq's die off eventually as
+	 * we are not rearming EQ's anymore.
+	 */
+	mode ? lpfc_sli4_add_to_poll_list(eq) :
+	       lpfc_sli4_remove_from_poll_list(eq);
+}
+
+void lpfc_sli4_start_polling(struct lpfc_queue *eq)
+{
+	__lpfc_sli4_switch_eqmode(eq, LPFC_EQ_POLL);
+}
+
+void lpfc_sli4_stop_polling(struct lpfc_queue *eq)
+{
+	struct lpfc_hba *phba = eq->phba;
+
+	__lpfc_sli4_switch_eqmode(eq, LPFC_EQ_INTERRUPT);
+
+	/* Kick start for the pending io's in h/w.
+	 * Once we switch back to interrupt processing on a eq
+	 * the io path completion will only arm eq's when it
+	 * receives a completion.  But since eq's are in disa-
+	 * rmed state it doesn't receive a completion.  This
+	 * creates a deadlock scenaro.
+	 */
+	phba->sli4_hba.sli4_write_eq_db(phba, eq, 0, LPFC_QUEUE_REARM);
+}
+
 /**
  * lpfc_sli4_queue_free - free a queue structure and associated memory
  * @queue: The queue structure to free.
@@ -14371,6 +14622,7 @@
 		return NULL;
 
 	INIT_LIST_HEAD(&queue->list);
+	INIT_LIST_HEAD(&queue->_poll_list);
 	INIT_LIST_HEAD(&queue->wq_list);
 	INIT_LIST_HEAD(&queue->wqfull_list);
 	INIT_LIST_HEAD(&queue->page_list);
@@ -17703,6 +17955,10 @@
 			list_add_tail(&iocbq->list, &first_iocbq->list);
 		}
 	}
+	/* Free the sequence's header buffer */
+	if (!first_iocbq)
+		lpfc_in_buf_free(vport->phba, &seq_dmabuf->dbuf);
+
 	return first_iocbq;
 }
 
@@ -18124,8 +18380,9 @@
 		phba->sli4_hba.max_cfg_param.rpi_used++;
 		phba->sli4_hba.rpi_count++;
 	}
-	lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
-			"0001 rpi:%x max:%x lim:%x\n",
+	lpfc_printf_log(phba, KERN_INFO,
+			LOG_NODE | LOG_DISCOVERY,
+			"0001 Allocated rpi:x%x max:x%x lim:x%x\n",
 			(int) rpi, max_rpi, rpi_limit);
 
 	/*
@@ -18181,11 +18438,19 @@
 static void
 __lpfc_sli4_free_rpi(struct lpfc_hba *phba, int rpi)
 {
+	/*
+	 * if the rpi value indicates a prior unreg has already
+	 * been done, skip the unreg.
+	 */
+	if (rpi == LPFC_RPI_ALLOC_ERROR)
+		return;
+
 	if (test_and_clear_bit(rpi, phba->sli4_hba.rpi_bmask)) {
 		phba->sli4_hba.rpi_count--;
 		phba->sli4_hba.max_cfg_param.rpi_used--;
 	} else {
-		lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
+		lpfc_printf_log(phba, KERN_INFO,
+				LOG_NODE | LOG_DISCOVERY,
 				"2016 rpi %x not inuse\n",
 				rpi);
 	}
@@ -19202,7 +19467,7 @@
 	struct lpfc_mbx_wr_object *wr_object;
 	LPFC_MBOXQ_t *mbox;
 	int rc = 0, i = 0;
-	uint32_t shdr_status, shdr_add_status, shdr_change_status;
+	uint32_t shdr_status, shdr_add_status, shdr_change_status, shdr_csf;
 	uint32_t mbox_tmo;
 	struct lpfc_dmabuf *dmabuf;
 	uint32_t written = 0;
@@ -19259,6 +19524,16 @@
 	if (check_change_status) {
 		shdr_change_status = bf_get(lpfc_wr_object_change_status,
 					    &wr_object->u.response);
+
+		if (shdr_change_status == LPFC_CHANGE_STATUS_FW_RESET ||
+		    shdr_change_status == LPFC_CHANGE_STATUS_PORT_MIGRATION) {
+			shdr_csf = bf_get(lpfc_wr_object_csf,
+					  &wr_object->u.response);
+			if (shdr_csf)
+				shdr_change_status =
+						   LPFC_CHANGE_STATUS_PCI_RESET;
+		}
+
 		switch (shdr_change_status) {
 		case (LPFC_CHANGE_STATUS_PHYS_DEV_RESET):
 			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
@@ -19683,6 +19958,8 @@
 
 		lpfc_sli_ringtxcmpl_put(phba, pring, pwqe);
 		spin_unlock_irqrestore(&pring->ring_lock, iflags);
+
+		lpfc_sli4_poll_eq(qp->hba_eq, LPFC_POLL_FASTPATH);
 		return 0;
 	}
 
@@ -19703,6 +19980,8 @@
 		}
 		lpfc_sli_ringtxcmpl_put(phba, pring, pwqe);
 		spin_unlock_irqrestore(&pring->ring_lock, iflags);
+
+		lpfc_sli4_poll_eq(qp->hba_eq, LPFC_POLL_FASTPATH);
 		return 0;
 	}
 
@@ -19731,6 +20010,8 @@
 		}
 		lpfc_sli_ringtxcmpl_put(phba, pring, pwqe);
 		spin_unlock_irqrestore(&pring->ring_lock, iflags);
+
+		lpfc_sli4_poll_eq(qp->hba_eq, LPFC_POLL_FASTPATH);
 		return 0;
 	}
 	return WQE_ERROR;
@@ -20093,6 +20374,13 @@
 	lpfc_ncmd->cur_iocbq.wqe_cmpl = NULL;
 	lpfc_ncmd->cur_iocbq.iocb_cmpl = NULL;
 
+	if (phba->cfg_xpsgl && !phba->nvmet_support &&
+	    !list_empty(&lpfc_ncmd->dma_sgl_xtra_list))
+		lpfc_put_sgl_per_hdwq(phba, lpfc_ncmd);
+
+	if (!list_empty(&lpfc_ncmd->dma_cmd_rsp_list))
+		lpfc_put_cmd_rsp_buf_per_hdwq(phba, lpfc_ncmd);
+
 	if (phba->cfg_xri_rebalancing) {
 		if (lpfc_ncmd->expedite) {
 			/* Return to expedite pool */
@@ -20157,13 +20445,6 @@
 		spin_unlock_irqrestore(&qp->io_buf_list_put_lock,
 				       iflag);
 	}
-
-	if (phba->cfg_xpsgl && !phba->nvmet_support &&
-	    !list_empty(&lpfc_ncmd->dma_sgl_xtra_list))
-		lpfc_put_sgl_per_hdwq(phba, lpfc_ncmd);
-
-	if (!list_empty(&lpfc_ncmd->dma_cmd_rsp_list))
-		lpfc_put_cmd_rsp_buf_per_hdwq(phba, lpfc_ncmd);
 }
 
 /**
@@ -20399,8 +20680,9 @@
 	struct sli4_hybrid_sgl *allocated_sgl = NULL;
 	struct lpfc_sli4_hdw_queue *hdwq = lpfc_buf->hdwq;
 	struct list_head *buf_list = &hdwq->sgl_list;
+	unsigned long iflags;
 
-	spin_lock_irq(&hdwq->hdwq_lock);
+	spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 
 	if (likely(!list_empty(buf_list))) {
 		/* break off 1 chunk from the sgl_list */
@@ -20412,9 +20694,9 @@
 		}
 	} else {
 		/* allocate more */
-		spin_unlock_irq(&hdwq->hdwq_lock);
+		spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 		tmp = kmalloc_node(sizeof(*tmp), GFP_ATOMIC,
-				   cpu_to_node(smp_processor_id()));
+				   cpu_to_node(hdwq->io_wq->chann));
 		if (!tmp) {
 			lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
 					"8353 error kmalloc memory for HDWQ "
@@ -20434,7 +20716,7 @@
 			return NULL;
 		}
 
-		spin_lock_irq(&hdwq->hdwq_lock);
+		spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 		list_add_tail(&tmp->list_node, &lpfc_buf->dma_sgl_xtra_list);
 	}
 
@@ -20442,7 +20724,7 @@
 					struct sli4_hybrid_sgl,
 					list_node);
 
-	spin_unlock_irq(&hdwq->hdwq_lock);
+	spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 
 	return allocated_sgl;
 }
@@ -20466,8 +20748,9 @@
 	struct sli4_hybrid_sgl *tmp = NULL;
 	struct lpfc_sli4_hdw_queue *hdwq = lpfc_buf->hdwq;
 	struct list_head *buf_list = &hdwq->sgl_list;
+	unsigned long iflags;
 
-	spin_lock_irq(&hdwq->hdwq_lock);
+	spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 
 	if (likely(!list_empty(&lpfc_buf->dma_sgl_xtra_list))) {
 		list_for_each_entry_safe(list_entry, tmp,
@@ -20480,7 +20763,7 @@
 		rc = -EINVAL;
 	}
 
-	spin_unlock_irq(&hdwq->hdwq_lock);
+	spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 	return rc;
 }
 
@@ -20501,8 +20784,9 @@
 	struct list_head *buf_list = &hdwq->sgl_list;
 	struct sli4_hybrid_sgl *list_entry = NULL;
 	struct sli4_hybrid_sgl *tmp = NULL;
+	unsigned long iflags;
 
-	spin_lock_irq(&hdwq->hdwq_lock);
+	spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 
 	/* Free sgl pool */
 	list_for_each_entry_safe(list_entry, tmp,
@@ -20514,7 +20798,7 @@
 		kfree(list_entry);
 	}
 
-	spin_unlock_irq(&hdwq->hdwq_lock);
+	spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 }
 
 /**
@@ -20538,8 +20822,9 @@
 	struct fcp_cmd_rsp_buf *allocated_buf = NULL;
 	struct lpfc_sli4_hdw_queue *hdwq = lpfc_buf->hdwq;
 	struct list_head *buf_list = &hdwq->cmd_rsp_buf_list;
+	unsigned long iflags;
 
-	spin_lock_irq(&hdwq->hdwq_lock);
+	spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 
 	if (likely(!list_empty(buf_list))) {
 		/* break off 1 chunk from the list */
@@ -20552,9 +20837,9 @@
 		}
 	} else {
 		/* allocate more */
-		spin_unlock_irq(&hdwq->hdwq_lock);
+		spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 		tmp = kmalloc_node(sizeof(*tmp), GFP_ATOMIC,
-				   cpu_to_node(smp_processor_id()));
+				   cpu_to_node(hdwq->io_wq->chann));
 		if (!tmp) {
 			lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
 					"8355 error kmalloc memory for HDWQ "
@@ -20579,7 +20864,7 @@
 		tmp->fcp_rsp = (struct fcp_rsp *)((uint8_t *)tmp->fcp_cmnd +
 				sizeof(struct fcp_cmnd));
 
-		spin_lock_irq(&hdwq->hdwq_lock);
+		spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 		list_add_tail(&tmp->list_node, &lpfc_buf->dma_cmd_rsp_list);
 	}
 
@@ -20587,7 +20872,7 @@
 					struct fcp_cmd_rsp_buf,
 					list_node);
 
-	spin_unlock_irq(&hdwq->hdwq_lock);
+	spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 
 	return allocated_buf;
 }
@@ -20612,8 +20897,9 @@
 	struct fcp_cmd_rsp_buf *tmp = NULL;
 	struct lpfc_sli4_hdw_queue *hdwq = lpfc_buf->hdwq;
 	struct list_head *buf_list = &hdwq->cmd_rsp_buf_list;
+	unsigned long iflags;
 
-	spin_lock_irq(&hdwq->hdwq_lock);
+	spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 
 	if (likely(!list_empty(&lpfc_buf->dma_cmd_rsp_list))) {
 		list_for_each_entry_safe(list_entry, tmp,
@@ -20626,7 +20912,7 @@
 		rc = -EINVAL;
 	}
 
-	spin_unlock_irq(&hdwq->hdwq_lock);
+	spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 	return rc;
 }
 
@@ -20647,8 +20933,9 @@
 	struct list_head *buf_list = &hdwq->cmd_rsp_buf_list;
 	struct fcp_cmd_rsp_buf *list_entry = NULL;
 	struct fcp_cmd_rsp_buf *tmp = NULL;
+	unsigned long iflags;
 
-	spin_lock_irq(&hdwq->hdwq_lock);
+	spin_lock_irqsave(&hdwq->hdwq_lock, iflags);
 
 	/* Free cmd_rsp buf pool */
 	list_for_each_entry_safe(list_entry, tmp,
@@ -20661,5 +20948,5 @@
 		kfree(list_entry);
 	}
 
-	spin_unlock_irq(&hdwq->hdwq_lock);
+	spin_unlock_irqrestore(&hdwq->hdwq_lock, iflags);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_sli.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_sli.h
@@ -384,14 +384,13 @@
 
 	struct lpfc_nodelist *ndlp;
 	uint32_t timeout;
-	uint16_t flags;  /* TBD convert exch_busy to flags */
+	uint16_t flags;
 #define LPFC_SBUF_XBUSY		0x1	/* SLI4 hba reported XB on WCQE cmpl */
 #define LPFC_SBUF_BUMP_QDEPTH	0x2	/* bumped queue depth counter */
 					/* External DIF device IO conversions */
 #define LPFC_SBUF_NORMAL_DIF	0x4	/* normal mode to insert/strip */
 #define LPFC_SBUF_PASS_DIF	0x8	/* insert/strip mode to passthru */
 #define LPFC_SBUF_NOT_POSTED    0x10    /* SGL failed post to FW. */
-	uint16_t exch_busy;     /* SLI4 hba reported XB on complete WCQE */
 	uint16_t status;	/* From IOCB Word 7- ulpStatus */
 	uint32_t result;	/* From IOCB Word 4. */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_sli4.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_sli4.h
@@ -41,8 +41,13 @@
 
 /* Multi-queue arrangement for FCP EQ/CQ/WQ tuples */
 #define LPFC_HBA_HDWQ_MIN	0
-#define LPFC_HBA_HDWQ_MAX	128
-#define LPFC_HBA_HDWQ_DEF	0
+#define LPFC_HBA_HDWQ_MAX	256
+#define LPFC_HBA_HDWQ_DEF	LPFC_HBA_HDWQ_MIN
+
+/* irq_chann range, values */
+#define LPFC_IRQ_CHANN_MIN	0
+#define LPFC_IRQ_CHANN_MAX	256
+#define LPFC_IRQ_CHANN_DEF	LPFC_IRQ_CHANN_MIN
 
 /* FCP MQ queue count limiting */
 #define LPFC_FCP_MQ_THRESHOLD_MIN	0
@@ -133,6 +138,23 @@
 struct lpfc_queue {
 	struct list_head list;
 	struct list_head wq_list;
+
+	/*
+	 * If interrupts are in effect on _all_ the eq's the footprint
+	 * of polling code is zero (except mode). This memory is chec-
+	 * ked for every io to see if the io needs to be polled and
+	 * while completion to check if the eq's needs to be rearmed.
+	 * Keep in same cacheline as the queue ptr to avoid cpu fetch
+	 * stalls. Using 1B memory will leave us with 7B hole. Fill
+	 * it with other frequently used members.
+	 */
+	uint16_t last_cpu;	/* most recent cpu */
+	uint16_t hdwq;
+	uint8_t	 qe_valid;
+	uint8_t  mode;	/* interrupt or polling */
+#define LPFC_EQ_INTERRUPT	0
+#define LPFC_EQ_POLL		1
+
 	struct list_head wqfull_list;
 	enum lpfc_sli4_queue_type type;
 	enum lpfc_sli4_queue_subtype subtype;
@@ -199,6 +221,7 @@
 	uint8_t q_flag;
 #define HBA_NVMET_WQFULL	0x1 /* We hit WQ Full condition for NVMET */
 #define HBA_NVMET_CQ_NOTIFY	0x1 /* LPFC_NVMET_CQ_NOTIFY CQEs this EQE */
+#define HBA_EQ_DELAY_CHK	0x2 /* EQ is a candidate for coalescing */
 #define LPFC_NVMET_CQ_NOTIFY	4
 	void __iomem *db_regaddr;
 	uint16_t dpp_enable;
@@ -239,10 +262,8 @@
 	struct delayed_work	sched_spwork;
 
 	uint64_t isr_timestamp;
-	uint16_t hdwq;
-	uint16_t last_cpu;	/* most recent cpu */
-	uint8_t	qe_valid;
 	struct lpfc_queue *assoc_qp;
+	struct list_head _poll_list;
 	void **q_pgs;	/* array to index entries per page */
 };
 
@@ -451,11 +472,17 @@
 #define LPFC_SLI4_HANDLER_NAME_SZ	16
 struct lpfc_hba_eq_hdl {
 	uint32_t idx;
+	uint16_t irq;
 	char handler_name[LPFC_SLI4_HANDLER_NAME_SZ];
 	struct lpfc_hba *phba;
 	struct lpfc_queue *eq;
+	struct cpumask aff_mask;
 };
 
+#define lpfc_get_eq_hdl(eqidx) (&phba->sli4_hba.hba_eq_hdl[eqidx])
+#define lpfc_get_aff_mask(eqidx) (&phba->sli4_hba.hba_eq_hdl[eqidx].aff_mask)
+#define lpfc_get_irq(eqidx) (phba->sli4_hba.hba_eq_hdl[eqidx].irq)
+
 /*BB Credit recovery value*/
 struct lpfc_bbscn_params {
 	uint32_t word0;
@@ -513,6 +540,7 @@
 	uint8_t cqav;
 	uint8_t wqsize;
 	uint8_t bv1s;
+	uint8_t pls;
 #define LPFC_WQ_SZ64_SUPPORT	1
 #define LPFC_WQ_SZ128_SUPPORT	2
 	uint8_t wqpcnt;
@@ -544,11 +572,10 @@
 #define LPFC_SLI4_HANDLER_CNT		(LPFC_HBA_IO_CHAN_MAX+ \
 					 LPFC_FOF_IO_CHAN_NUM)
 
-/* Used for IRQ vector to CPU mapping */
+/* Used for tracking CPU mapping attributes */
 struct lpfc_vector_map_info {
 	uint16_t	phys_id;
 	uint16_t	core_id;
-	uint16_t	irq;
 	uint16_t	eq;
 	uint16_t	hdwq;
 	uint16_t	flag;
@@ -891,6 +918,7 @@
 	struct lpfc_vector_map_info *cpu_map;
 	uint16_t num_possible_cpu;
 	uint16_t num_present_cpu;
+	struct cpumask numa_mask;
 	uint16_t curr_disp_cpu;
 	struct lpfc_eq_intr_info __percpu *eq_info;
 	uint32_t conf_trunk;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_version.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_version.h
@@ -1,7 +1,7 @@
 /*******************************************************************
  * This file is part of the Emulex Linux Device Driver for         *
  * Fibre Channel Host Bus Adapters.                                *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
  * Copyright (C) 2004-2016 Emulex.  All rights reserved.           *
  * EMULEX and SLI are trademarks of Emulex.                        *
@@ -20,7 +20,7 @@
  * included with this package.                                     *
  *******************************************************************/
 
-#define LPFC_DRIVER_VERSION "12.4.0.0"
+#define LPFC_DRIVER_VERSION "12.6.0.4"
 #define LPFC_DRIVER_NAME		"lpfc"
 
 /* Used for SLI 2/3 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/lpfc/lpfc_vport.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/lpfc/lpfc_vport.c
@@ -642,27 +642,16 @@
 		    vport->port_state < LPFC_VPORT_READY)
 			return -EAGAIN;
 	}
+
 	/*
-	 * This is a bit of a mess.  We want to ensure the shost doesn't get
-	 * torn down until we're done with the embedded lpfc_vport structure.
-	 *
-	 * Beyond holding a reference for this function, we also need a
-	 * reference for outstanding I/O requests we schedule during delete
-	 * processing.  But once we scsi_remove_host() we can no longer obtain
-	 * a reference through scsi_host_get().
-	 *
-	 * So we take two references here.  We release one reference at the
-	 * bottom of the function -- after delinking the vport.  And we
-	 * release the other at the completion of the unreg_vpi that get's
-	 * initiated after we've disposed of all other resources associated
-	 * with the port.
+	 * Take early refcount for outstanding I/O requests we schedule during
+	 * delete processing for unreg_vpi.  Always keep this before
+	 * scsi_remove_host() as we can no longer obtain a reference through
+	 * scsi_host_get() after scsi_host_remove as shost is set to SHOST_DEL.
 	 */
 	if (!scsi_host_get(shost))
 		return VPORT_INVAL;
-	if (!scsi_host_get(shost)) {
-		scsi_host_put(shost);
-		return VPORT_INVAL;
-	}
+
 	lpfc_free_sysfs_attr(vport);
 
 	lpfc_debugfs_terminate(vport);
@@ -809,8 +798,9 @@
 		if (!(vport->vpi_state & LPFC_VPI_REGISTERED) ||
 				lpfc_mbx_unreg_vpi(vport))
 			scsi_host_put(shost);
-	} else
+	} else {
 		scsi_host_put(shost);
+	}
 
 	lpfc_free_vpi(phba, vport->vpi);
 	vport->work_port_events = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mac_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mac_scsi.c
@@ -464,7 +464,7 @@
 		mac_scsi_template.can_queue = setup_can_queue;
 	if (setup_cmd_per_lun > 0)
 		mac_scsi_template.cmd_per_lun = setup_cmd_per_lun;
-	if (setup_sg_tablesize >= 0)
+	if (setup_sg_tablesize > 0)
 		mac_scsi_template.sg_tablesize = setup_sg_tablesize;
 	if (setup_hostid >= 0)
 		mac_scsi_template.this_id = setup_hostid & 7;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/megaraid/megaraid_mm.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/megaraid/megaraid_mm.c
@@ -41,10 +41,6 @@
 static void mraid_mm_free_adp_resources(mraid_mmadp_t *);
 static void mraid_mm_teardown_dma_pools(mraid_mmadp_t *);
 
-#ifdef CONFIG_COMPAT
-static long mraid_mm_compat_ioctl(struct file *, unsigned int, unsigned long);
-#endif
-
 MODULE_AUTHOR("LSI Logic Corporation");
 MODULE_DESCRIPTION("LSI Logic Management Module");
 MODULE_LICENSE("GPL");
@@ -68,9 +64,7 @@
 static const struct file_operations lsi_fops = {
 	.open	= mraid_mm_open,
 	.unlocked_ioctl = mraid_mm_unlocked_ioctl,
-#ifdef CONFIG_COMPAT
-	.compat_ioctl = mraid_mm_compat_ioctl,
-#endif
+	.compat_ioctl = compat_ptr_ioctl,
 	.owner	= THIS_MODULE,
 	.llseek = noop_llseek,
 };
@@ -224,7 +218,6 @@
 {
 	int err;
 
-	/* inconsistent: mraid_mm_compat_ioctl doesn't take the BKL */
 	mutex_lock(&mraid_mm_mutex);
 	err = mraid_mm_ioctl(filep, cmd, arg);
 	mutex_unlock(&mraid_mm_mutex);
@@ -1228,25 +1221,6 @@
 }
 
 
-#ifdef CONFIG_COMPAT
-/**
- * mraid_mm_compat_ioctl	- 32bit to 64bit ioctl conversion routine
- * @filep	: file operations pointer (ignored)
- * @cmd		: ioctl command
- * @arg		: user ioctl packet
- */
-static long
-mraid_mm_compat_ioctl(struct file *filep, unsigned int cmd,
-		      unsigned long arg)
-{
-	int err;
-
-	err = mraid_mm_ioctl(filep, cmd, arg);
-
-	return err;
-}
-#endif
-
 /**
  * mraid_mm_exit	- Module exit point
  */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/megaraid/megaraid_sas.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/megaraid/megaraid_sas.h
@@ -21,8 +21,10 @@
 /*
  * MegaRAID SAS Driver meta data
  */
-#define MEGASAS_VERSION				"07.710.50.00-rc1"
-#define MEGASAS_RELDATE				"June 28, 2019"
+#define MEGASAS_VERSION				"07.713.01.00-rc1"
+#define MEGASAS_RELDATE				"Dec 27, 2019"
+
+#define MEGASAS_MSIX_NAME_LEN			32
 
 /*
  * Device IDs
@@ -2203,6 +2205,7 @@
 };
 
 struct megasas_irq_context {
+	char name[MEGASAS_MSIX_NAME_LEN];
 	struct megasas_instance *instance;
 	u32 MSIxIndex;
 	u32 os_irq;
@@ -2230,9 +2233,9 @@
 
 /* JBOD Queue depth definitions */
 #define MEGASAS_SATA_QD	32
-#define MEGASAS_SAS_QD	64
+#define MEGASAS_SAS_QD 256
 #define MEGASAS_DEFAULT_PD_QD	64
-#define MEGASAS_NVME_QD		32
+#define MEGASAS_NVME_QD        64
 
 #define MR_DEFAULT_NVME_PAGE_SIZE	4096
 #define MR_DEFAULT_NVME_PAGE_SHIFT	12
@@ -2637,10 +2640,11 @@
 };
 
 enum DCMD_RETURN_STATUS {
-	DCMD_SUCCESS		= 0,
-	DCMD_TIMEOUT		= 1,
-	DCMD_FAILED		= 2,
-	DCMD_NOT_FIRED		= 3,
+	DCMD_SUCCESS    = 0x00,
+	DCMD_TIMEOUT    = 0x01,
+	DCMD_FAILED     = 0x02,
+	DCMD_BUSY       = 0x03,
+	DCMD_INIT       = 0xff,
 };
 
 u8
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/megaraid/megaraid_sas_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -199,7 +199,7 @@
 static bool support_pci_lane_margining;
 
 /* define lock for aen poll */
-spinlock_t poll_aen_lock;
+static spinlock_t poll_aen_lock;
 
 extern struct dentry *megasas_debugfs_root;
 extern void megasas_init_debugfs(void);
@@ -1099,7 +1099,7 @@
 	if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) {
 		dev_err(&instance->pdev->dev, "Failed from %s %d\n",
 			__func__, __LINE__);
-		return DCMD_NOT_FIRED;
+		return DCMD_INIT;
 	}
 
 	instance->instancet->issue_dcmd(instance, cmd);
@@ -1123,19 +1123,19 @@
 			  struct megasas_cmd *cmd, int timeout)
 {
 	int ret = 0;
-	cmd->cmd_status_drv = MFI_STAT_INVALID_STATUS;
+	cmd->cmd_status_drv = DCMD_INIT;
 
 	if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) {
 		dev_err(&instance->pdev->dev, "Failed from %s %d\n",
 			__func__, __LINE__);
-		return DCMD_NOT_FIRED;
+		return DCMD_INIT;
 	}
 
 	instance->instancet->issue_dcmd(instance, cmd);
 
 	if (timeout) {
 		ret = wait_event_timeout(instance->int_cmd_wait_q,
-				cmd->cmd_status_drv != MFI_STAT_INVALID_STATUS, timeout * HZ);
+		cmd->cmd_status_drv != DCMD_INIT, timeout * HZ);
 		if (!ret) {
 			dev_err(&instance->pdev->dev,
 				"DCMD(opcode: 0x%x) is timed out, func:%s\n",
@@ -1144,10 +1144,9 @@
 		}
 	} else
 		wait_event(instance->int_cmd_wait_q,
-				cmd->cmd_status_drv != MFI_STAT_INVALID_STATUS);
+				cmd->cmd_status_drv != DCMD_INIT);
 
-	return (cmd->cmd_status_drv == MFI_STAT_OK) ?
-		DCMD_SUCCESS : DCMD_FAILED;
+	return cmd->cmd_status_drv;
 }
 
 /**
@@ -1190,19 +1189,19 @@
 		cpu_to_le32(upper_32_bits(cmd_to_abort->frame_phys_addr));
 
 	cmd->sync_cmd = 1;
-	cmd->cmd_status_drv = MFI_STAT_INVALID_STATUS;
+	cmd->cmd_status_drv = DCMD_INIT;
 
 	if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) {
 		dev_err(&instance->pdev->dev, "Failed from %s %d\n",
 			__func__, __LINE__);
-		return DCMD_NOT_FIRED;
+		return DCMD_INIT;
 	}
 
 	instance->instancet->issue_dcmd(instance, cmd);
 
 	if (timeout) {
 		ret = wait_event_timeout(instance->abort_cmd_wait_q,
-				cmd->cmd_status_drv != MFI_STAT_INVALID_STATUS, timeout * HZ);
+		cmd->cmd_status_drv != DCMD_INIT, timeout * HZ);
 		if (!ret) {
 			opcode = cmd_to_abort->frame->dcmd.opcode;
 			dev_err(&instance->pdev->dev,
@@ -1212,13 +1211,12 @@
 		}
 	} else
 		wait_event(instance->abort_cmd_wait_q,
-				cmd->cmd_status_drv != MFI_STAT_INVALID_STATUS);
+		cmd->cmd_status_drv != DCMD_INIT);
 
 	cmd->sync_cmd = 0;
 
 	megasas_return_cmd(instance, cmd);
-	return (cmd->cmd_status_drv == MFI_STAT_OK) ?
-		DCMD_SUCCESS : DCMD_FAILED;
+	return cmd->cmd_status_drv;
 }
 
 /**
@@ -1887,6 +1885,10 @@
 
 		mr_device_priv_data->is_tm_capable =
 			raid->capability.tmCapable;
+
+		if (!raid->flags.isEPD)
+			sdev->no_write_same = 1;
+
 	} else if (instance->use_seqnum_jbod_fp) {
 		pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
 			sdev->id;
@@ -2150,6 +2152,12 @@
 
 void megaraid_sas_kill_hba(struct megasas_instance *instance)
 {
+	if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) {
+		dev_warn(&instance->pdev->dev,
+			 "Adapter already dead, skipping kill HBA\n");
+		return;
+	}
+
 	/* Set critical error to block I/O & ioctls in case caller didn't */
 	atomic_set(&instance->adprecovery, MEGASAS_HW_CRITICAL_ERROR);
 	/* Wait 1 second to ensure IO or ioctls in build have posted */
@@ -2726,7 +2734,7 @@
 						"reset queue\n",
 						reset_cmd);
 
-				reset_cmd->cmd_status_drv = MFI_STAT_INVALID_STATUS;
+				reset_cmd->cmd_status_drv = DCMD_INIT;
 				instance->instancet->fire_cmd(instance,
 						reset_cmd->frame_phys_addr,
 						0, instance->reg_set);
@@ -3416,7 +3424,6 @@
 	.bios_param = megasas_bios_param,
 	.change_queue_depth = scsi_change_queue_depth,
 	.max_segment_size = 0xffffffff,
-	.no_write_same = 1,
 };
 
 /**
@@ -3432,7 +3439,11 @@
 megasas_complete_int_cmd(struct megasas_instance *instance,
 			 struct megasas_cmd *cmd)
 {
-	cmd->cmd_status_drv = cmd->frame->io.cmd_status;
+	if (cmd->cmd_status_drv == DCMD_INIT)
+		cmd->cmd_status_drv =
+		(cmd->frame->io.cmd_status == MFI_STAT_OK) ?
+		DCMD_SUCCESS : DCMD_FAILED;
+
 	wake_up(&instance->int_cmd_wait_q);
 }
 
@@ -3451,7 +3462,7 @@
 {
 	if (cmd->sync_cmd) {
 		cmd->sync_cmd = 0;
-		cmd->cmd_status_drv = 0;
+		cmd->cmd_status_drv = DCMD_SUCCESS;
 		wake_up(&instance->abort_cmd_wait_q);
 	}
 }
@@ -3727,7 +3738,7 @@
 			dev_notice(&instance->pdev->dev, "%p synchronous cmd"
 						"on the internal reset queue,"
 						"issue it again.\n", cmd);
-			cmd->cmd_status_drv = MFI_STAT_INVALID_STATUS;
+			cmd->cmd_status_drv = DCMD_INIT;
 			instance->instancet->fire_cmd(instance,
 							cmd->frame_phys_addr,
 							0, instance->reg_set);
@@ -4392,7 +4403,8 @@
 	if (instance->adapter_type == MFI_SERIES)
 		return KILL_ADAPTER;
 	else if (instance->unload ||
-			test_bit(MEGASAS_FUSION_IN_RESET, &instance->reset_flags))
+			test_bit(MEGASAS_FUSION_OCR_NOT_POSSIBLE,
+				 &instance->reset_flags))
 		return IGNORE_TIMEOUT;
 	else
 		return INITIATE_OCR;
@@ -5546,9 +5558,11 @@
 	pdev = instance->pdev;
 	instance->irq_context[0].instance = instance;
 	instance->irq_context[0].MSIxIndex = 0;
+	snprintf(instance->irq_context->name, MEGASAS_MSIX_NAME_LEN, "%s%u",
+		"megasas", instance->host->host_no);
 	if (request_irq(pci_irq_vector(pdev, 0),
 			instance->instancet->service_isr, IRQF_SHARED,
-			"megasas", &instance->irq_context[0])) {
+			instance->irq_context->name, &instance->irq_context[0])) {
 		dev_err(&instance->pdev->dev,
 				"Failed to register IRQ from %s %d\n",
 				__func__, __LINE__);
@@ -5580,14 +5594,20 @@
 	for (i = 0; i < instance->msix_vectors; i++) {
 		instance->irq_context[i].instance = instance;
 		instance->irq_context[i].MSIxIndex = i;
+		snprintf(instance->irq_context[i].name, MEGASAS_MSIX_NAME_LEN, "%s%u-msix%u",
+			"megasas", instance->host->host_no, i);
 		if (request_irq(pci_irq_vector(pdev, i),
-			instance->instancet->service_isr, 0, "megasas",
+			instance->instancet->service_isr, 0, instance->irq_context[i].name,
 			&instance->irq_context[i])) {
 			dev_err(&instance->pdev->dev,
 				"Failed to register IRQ for vector %d.\n", i);
-			for (j = 0; j < i; j++)
+			for (j = 0; j < i; j++) {
+				if (j < instance->low_latency_index_start)
+					irq_set_affinity_hint(
+						pci_irq_vector(pdev, j), NULL);
 				free_irq(pci_irq_vector(pdev, j),
 					 &instance->irq_context[j]);
+			}
 			/* Retry irq register for IO_APIC*/
 			instance->msix_vectors = 0;
 			instance->msix_load_balance = false;
@@ -5625,6 +5645,9 @@
 
 	if (instance->msix_vectors)
 		for (i = 0; i < instance->msix_vectors; i++) {
+			if (i < instance->low_latency_index_start)
+				irq_set_affinity_hint(
+				    pci_irq_vector(instance->pdev, i), NULL);
 			free_irq(pci_irq_vector(instance->pdev, i),
 				 &instance->irq_context[i]);
 		}
@@ -7588,7 +7611,7 @@
 	int rval;
 	struct Scsi_Host *host;
 	struct megasas_instance *instance;
-	int irq_flags = PCI_IRQ_LEGACY;
+	u32 status_reg;
 
 	instance = pci_get_drvdata(pdev);
 
@@ -7616,9 +7639,35 @@
 	/*
 	 * We expect the FW state to be READY
 	 */
-	if (megasas_transition_to_ready(instance, 0))
-		goto fail_ready_state;
 
+	if (megasas_transition_to_ready(instance, 0)) {
+		dev_info(&instance->pdev->dev,
+			 "Failed to transition controller to ready from %s!\n",
+			 __func__);
+		if (instance->adapter_type != MFI_SERIES) {
+			status_reg =
+				instance->instancet->read_fw_status_reg(instance);
+			if (!(status_reg & MFI_RESET_ADAPTER) ||
+				((megasas_adp_reset_wait_for_ready
+				(instance, true, 0)) == FAILED))
+				goto fail_ready_state;
+		} else {
+			atomic_set(&instance->fw_reset_no_pci_access, 1);
+			instance->instancet->adp_reset
+				(instance, instance->reg_set);
+			atomic_set(&instance->fw_reset_no_pci_access, 0);
+
+			/* waiting for about 30 seconds before retry */
+			ssleep(30);
+
+			if (megasas_transition_to_ready(instance, 0))
+				goto fail_ready_state;
+		}
+
+		dev_info(&instance->pdev->dev,
+			 "FW restarted successfully from %s!\n",
+			 __func__);
+	}
 	if (megasas_set_dma_mask(instance))
 		goto fail_set_dma_mask;
 
@@ -7630,16 +7679,15 @@
 	atomic_set(&instance->ldio_outstanding, 0);
 
 	/* Now re-enable MSI-X */
-	if (instance->msix_vectors) {
-		irq_flags = PCI_IRQ_MSIX;
-		if (instance->smp_affinity_enable)
-			irq_flags |= PCI_IRQ_AFFINITY;
-	}
-	rval = pci_alloc_irq_vectors(instance->pdev, 1,
-				     instance->msix_vectors ?
-				     instance->msix_vectors : 1, irq_flags);
-	if (rval < 0)
-		goto fail_reenable_msix;
+	if (instance->msix_vectors)
+		megasas_alloc_irq_vectors(instance);
+
+	if (!instance->msix_vectors) {
+		rval = pci_alloc_irq_vectors(instance->pdev, 1, 1,
+					     PCI_IRQ_LEGACY);
+		if (rval < 0)
+			goto fail_reenable_msix;
+	}
 
 	megasas_setup_reply_map(instance);
 
@@ -8030,8 +8078,9 @@
 	int error = 0, i;
 	void *sense = NULL;
 	dma_addr_t sense_handle;
-	unsigned long *sense_ptr;
+	void *sense_ptr;
 	u32 opcode = 0;
+	int ret = DCMD_SUCCESS;
 
 	memset(kbuff_arr, 0, sizeof(kbuff_arr));
 
@@ -8152,6 +8201,13 @@
 	}
 
 	if (ioc->sense_len) {
+		/* make sure the pointer is part of the frame */
+		if (ioc->sense_off >
+		    (sizeof(union megasas_frame) - sizeof(__le64))) {
+			error = -EINVAL;
+			goto out;
+		}
+
 		sense = dma_alloc_coherent(&instance->pdev->dev, ioc->sense_len,
 					     &sense_handle, GFP_KERNEL);
 		if (!sense) {
@@ -8159,12 +8215,9 @@
 			goto out;
 		}
 
-		sense_ptr =
-		(unsigned long *) ((unsigned long)cmd->frame + ioc->sense_off);
-		if (instance->consistent_mask_64bit)
-			*sense_ptr = cpu_to_le64(sense_handle);
-		else
-			*sense_ptr = cpu_to_le32(sense_handle);
+		/* always store 64 bits regardless of addressing */
+		sense_ptr = (void *)cmd->frame + ioc->sense_off;
+		put_unaligned_le64(sense_handle, sense_ptr);
 	}
 
 	/*
@@ -8172,13 +8225,18 @@
 	 * cmd to the SCSI mid-layer
 	 */
 	cmd->sync_cmd = 1;
-	if (megasas_issue_blocked_cmd(instance, cmd, 0) == DCMD_NOT_FIRED) {
+
+	ret = megasas_issue_blocked_cmd(instance, cmd, 0);
+	switch (ret) {
+	case DCMD_INIT:
+	case DCMD_BUSY:
 		cmd->sync_cmd = 0;
 		dev_err(&instance->pdev->dev,
 			"return -EBUSY from %s %d cmd 0x%x opcode 0x%x cmd->cmd_status_drv 0x%x\n",
-			__func__, __LINE__, cmd->frame->hdr.cmd, opcode,
-			cmd->cmd_status_drv);
-		return -EBUSY;
+			 __func__, __LINE__, cmd->frame->hdr.cmd, opcode,
+			 cmd->cmd_status_drv);
+			error = -EBUSY;
+			goto out;
 	}
 
 	cmd->sync_cmd = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/megaraid/megaraid_sas_fp.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/megaraid/megaraid_sas_fp.c
@@ -386,9 +386,8 @@
 				le64_to_cpu(quad->logEnd) && (mega_mod64(row - le64_to_cpu(quad->logStart),
 				le32_to_cpu(quad->diff))) == 0) {
 				if (span_blk != NULL) {
-					u64  blk, debugBlk;
+					u64  blk;
 					blk =  mega_div64_32((row-le64_to_cpu(quad->logStart)), le32_to_cpu(quad->diff));
-					debugBlk = blk;
 
 					blk = (blk + le64_to_cpu(quad->offsetInSpan)) << raid->stripeShift;
 					*span_blk = blk;
@@ -699,9 +698,7 @@
 	__le16	*pDevHandle = &io_info->devHandle;
 	u8	*pPdInterface = &io_info->pd_interface;
 	u32	logArm, rowMod, armQ, arm;
-	struct fusion_context *fusion;
 
-	fusion = instance->ctrl_context;
 	*pDevHandle = cpu_to_le16(MR_DEVHANDLE_INVALID);
 
 	/*Get row and span from io_info for Uneven Span IO.*/
@@ -801,9 +798,7 @@
 	u64	    *pdBlock = &io_info->pdBlock;
 	__le16	    *pDevHandle = &io_info->devHandle;
 	u8	    *pPdInterface = &io_info->pd_interface;
-	struct fusion_context *fusion;
 
-	fusion = instance->ctrl_context;
 	*pDevHandle = cpu_to_le16(MR_DEVHANDLE_INVALID);
 
 	row =  mega_div64_32(stripRow, raid->rowDataSize);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -364,6 +364,35 @@
 		instance->max_fw_cmds = instance->max_fw_cmds-1;
 	}
 }
+
+static inline void
+megasas_get_msix_index(struct megasas_instance *instance,
+		       struct scsi_cmnd *scmd,
+		       struct megasas_cmd_fusion *cmd,
+		       u8 data_arms)
+{
+	int sdev_busy;
+
+	/* nr_hw_queue = 1 for MegaRAID */
+	struct blk_mq_hw_ctx *hctx =
+		scmd->device->request_queue->queue_hw_ctx[0];
+
+	sdev_busy = atomic_read(&hctx->nr_active);
+
+	if (instance->perf_mode == MR_BALANCED_PERF_MODE &&
+	    sdev_busy > (data_arms * MR_DEVICE_HIGH_IOPS_DEPTH))
+		cmd->request_desc->SCSIIO.MSIxIndex =
+			mega_mod64((atomic64_add_return(1, &instance->high_iops_outstanding) /
+					MR_HIGH_IOPS_BATCH_COUNT), instance->low_latency_index_start);
+	else if (instance->msix_load_balance)
+		cmd->request_desc->SCSIIO.MSIxIndex =
+			(mega_mod64(atomic64_add_return(1, &instance->total_io_count),
+				instance->msix_vectors));
+	else
+		cmd->request_desc->SCSIIO.MSIxIndex =
+			instance->reply_map[raw_smp_processor_id()];
+}
+
 /**
  * megasas_free_cmds_fusion -	Free all the cmds in the free cmd pool
  * @instance:		Adapter soft state
@@ -594,7 +623,8 @@
 
 	fusion->io_request_frames =
 			dma_pool_alloc(fusion->io_request_frames_pool,
-				GFP_KERNEL, &fusion->io_request_frames_phys);
+				GFP_KERNEL | __GFP_NOWARN,
+				&fusion->io_request_frames_phys);
 	if (!fusion->io_request_frames) {
 		if (instance->max_fw_cmds >= (MEGASAS_REDUCE_QD_COUNT * 2)) {
 			instance->max_fw_cmds -= MEGASAS_REDUCE_QD_COUNT;
@@ -632,7 +662,7 @@
 
 		fusion->io_request_frames =
 			dma_pool_alloc(fusion->io_request_frames_pool,
-				       GFP_KERNEL,
+				       GFP_KERNEL | __GFP_NOWARN,
 				       &fusion->io_request_frames_phys);
 
 		if (!fusion->io_request_frames) {
@@ -1312,7 +1342,9 @@
 	}
 
 	if (ret == DCMD_TIMEOUT)
-		megaraid_sas_kill_hba(instance);
+		dev_warn(&instance->pdev->dev,
+			 "%s DCMD timed out, continue without JBOD sequence map\n",
+			 __func__);
 
 	if (ret == DCMD_SUCCESS)
 		instance->pd_seq_map_id++;
@@ -1394,7 +1426,9 @@
 		ret = megasas_issue_polled(instance, cmd);
 
 	if (ret == DCMD_TIMEOUT)
-		megaraid_sas_kill_hba(instance);
+		dev_warn(&instance->pdev->dev,
+			 "%s DCMD timed out, RAID map is disabled\n",
+			 __func__);
 
 	megasas_return_cmd(instance, cmd);
 
@@ -2825,19 +2859,7 @@
 			fp_possible = (io_info.fpOkForIo > 0) ? true : false;
 	}
 
-	if ((instance->perf_mode == MR_BALANCED_PERF_MODE) &&
-		atomic_read(&scp->device->device_busy) >
-		(io_info.data_arms * MR_DEVICE_HIGH_IOPS_DEPTH))
-		cmd->request_desc->SCSIIO.MSIxIndex =
-			mega_mod64((atomic64_add_return(1, &instance->high_iops_outstanding) /
-				MR_HIGH_IOPS_BATCH_COUNT), instance->low_latency_index_start);
-	else if (instance->msix_load_balance)
-		cmd->request_desc->SCSIIO.MSIxIndex =
-			(mega_mod64(atomic64_add_return(1, &instance->total_io_count),
-				    instance->msix_vectors));
-	else
-		cmd->request_desc->SCSIIO.MSIxIndex =
-			instance->reply_map[raw_smp_processor_id()];
+	megasas_get_msix_index(instance, scp, cmd, io_info.data_arms);
 
 	if (instance->adapter_type >= VENTURA_SERIES) {
 		/* FP for Optimal raid level 1.
@@ -3158,18 +3180,7 @@
 
 	cmd->request_desc->SCSIIO.DevHandle = io_request->DevHandle;
 
-	if ((instance->perf_mode == MR_BALANCED_PERF_MODE) &&
-		atomic_read(&scmd->device->device_busy) > MR_DEVICE_HIGH_IOPS_DEPTH)
-		cmd->request_desc->SCSIIO.MSIxIndex =
-			mega_mod64((atomic64_add_return(1, &instance->high_iops_outstanding) /
-				MR_HIGH_IOPS_BATCH_COUNT), instance->low_latency_index_start);
-	else if (instance->msix_load_balance)
-		cmd->request_desc->SCSIIO.MSIxIndex =
-			(mega_mod64(atomic64_add_return(1, &instance->total_io_count),
-				    instance->msix_vectors));
-	else
-		cmd->request_desc->SCSIIO.MSIxIndex =
-			instance->reply_map[raw_smp_processor_id()];
+	megasas_get_msix_index(instance, scmd, cmd, 1);
 
 	if (!fp_possible) {
 		/* system pd firmware path */
@@ -3737,7 +3748,7 @@
 	instance = irq_ctx->instance;
 
 	if (irq_ctx->irq_line_enable) {
-		disable_irq(irq_ctx->os_irq);
+		disable_irq_nosync(irq_ctx->os_irq);
 		irq_ctx->irq_line_enable = false;
 	}
 
@@ -3786,10 +3797,8 @@
 	if (instance->mask_interrupts)
 		return IRQ_NONE;
 
-#if defined(ENABLE_IRQ_POLL)
 	if (irq_context->irq_poll_scheduled)
 		return IRQ_HANDLED;
-#endif
 
 	if (!instance->msix_vectors) {
 		mfiStatus = instance->instancet->clear_intr(instance);
@@ -4219,13 +4228,15 @@
  * megasas_refire_mgmt_cmd :	Re-fire management commands
  * @instance:				Controller's soft instance
 */
-static void megasas_refire_mgmt_cmd(struct megasas_instance *instance)
+void megasas_refire_mgmt_cmd(struct megasas_instance *instance,
+			     bool return_ioctl)
 {
 	int j;
 	struct megasas_cmd_fusion *cmd_fusion;
 	struct fusion_context *fusion;
 	struct megasas_cmd *cmd_mfi;
 	union MEGASAS_REQUEST_DESCRIPTOR_UNION *req_desc;
+	struct MPI2_RAID_SCSI_IO_REQUEST *scsi_io_req;
 	u16 smid;
 	bool refire_cmd = 0;
 	u8 result;
@@ -4283,6 +4294,21 @@
 			break;
 		}
 
+		if (return_ioctl && cmd_mfi->sync_cmd &&
+		    cmd_mfi->frame->hdr.cmd != MFI_CMD_ABORT) {
+			dev_err(&instance->pdev->dev,
+				"return -EBUSY from %s %d cmd 0x%x opcode 0x%x\n",
+				__func__, __LINE__, cmd_mfi->frame->hdr.cmd,
+				le32_to_cpu(cmd_mfi->frame->dcmd.opcode));
+			cmd_mfi->cmd_status_drv = DCMD_BUSY;
+			result = COMPLETE_CMD;
+		}
+
+		scsi_io_req = (struct MPI2_RAID_SCSI_IO_REQUEST *)
+				cmd_fusion->io_request;
+		if (scsi_io_req->Function == MPI2_FUNCTION_SCSI_TASK_MGMT)
+			result = RETURN_CMD;
+
 		switch (result) {
 		case REFIRE_CMD:
 			megasas_fire_cmd_fusion(instance, req_desc);
@@ -4298,6 +4324,37 @@
 }
 
 /*
+ * megasas_return_polled_cmds: Return polled mode commands back to the pool
+ *			       before initiating an OCR.
+ * @instance:                  Controller's soft instance
+ */
+static void
+megasas_return_polled_cmds(struct megasas_instance *instance)
+{
+	int i;
+	struct megasas_cmd_fusion *cmd_fusion;
+	struct fusion_context *fusion;
+	struct megasas_cmd *cmd_mfi;
+
+	fusion = instance->ctrl_context;
+
+	for (i = instance->max_scsi_cmds; i < instance->max_fw_cmds; i++) {
+		cmd_fusion = fusion->cmd_list[i];
+		cmd_mfi = instance->cmd_list[cmd_fusion->sync_cmd_idx];
+
+		if (cmd_mfi->flags & DRV_DCMD_POLLED_MODE) {
+			if (megasas_dbg_lvl & OCR_DEBUG)
+				dev_info(&instance->pdev->dev,
+					 "%s %d return cmd 0x%x opcode 0x%x\n",
+					 __func__, __LINE__, cmd_mfi->frame->hdr.cmd,
+					 le32_to_cpu(cmd_mfi->frame->dcmd.opcode));
+			cmd_mfi->flags &= ~DRV_DCMD_POLLED_MODE;
+			megasas_return_cmd(instance, cmd_mfi);
+		}
+	}
+}
+
+/*
  * megasas_track_scsiio : Track SCSI IOs outstanding to a SCSI device
  * @instance: per adapter struct
  * @channel: the channel assigned by the OS
@@ -4480,7 +4537,6 @@
 	if (!timeleft) {
 		dev_err(&instance->pdev->dev,
 			"task mgmt type 0x%x timed out\n", type);
-		cmd_mfi->flags |= DRV_DCMD_SKIP_REFIRE;
 		mutex_unlock(&instance->reset_mutex);
 		rc = megasas_reset_fusion(instance->host, MFI_IO_TIMEOUT_OCR);
 		mutex_lock(&instance->reset_mutex);
@@ -4847,6 +4903,7 @@
 	if (instance->requestorId && !instance->skip_heartbeat_timer_del)
 		del_timer_sync(&instance->sriov_heartbeat_timer);
 	set_bit(MEGASAS_FUSION_IN_RESET, &instance->reset_flags);
+	set_bit(MEGASAS_FUSION_OCR_NOT_POSSIBLE, &instance->reset_flags);
 	atomic_set(&instance->adprecovery, MEGASAS_ADPRESET_SM_POLLING);
 	instance->instancet->disable_intr(instance);
 	megasas_sync_irqs((unsigned long)instance);
@@ -4951,7 +5008,9 @@
 				goto kill_hba;
 			}
 
-			megasas_refire_mgmt_cmd(instance);
+			megasas_refire_mgmt_cmd(instance,
+						(i == (MEGASAS_FUSION_MAX_RESET_TRIES - 1)
+							? 1 : 0));
 
 			/* Reset load balance info */
 			if (fusion->load_balance_info)
@@ -4959,8 +5018,16 @@
 				       (sizeof(struct LD_LOAD_BALANCE_INFO) *
 				       MAX_LOGICAL_DRIVES_EXT));
 
-			if (!megasas_get_map_info(instance))
+			if (!megasas_get_map_info(instance)) {
 				megasas_sync_map_info(instance);
+			} else {
+				/*
+				 * Return pending polled mode cmds before
+				 * retrying OCR
+				 */
+				megasas_return_polled_cmds(instance);
+				continue;
+			}
 
 			megasas_setup_jbod_map(instance);
 
@@ -4987,6 +5054,15 @@
 				megasas_set_dynamic_target_properties(sdev, is_target_prop);
 			}
 
+			status_reg = instance->instancet->read_fw_status_reg
+					(instance);
+			abs_state = status_reg & MFI_STATE_MASK;
+			if (abs_state != MFI_STATE_OPERATIONAL) {
+				dev_info(&instance->pdev->dev,
+					 "Adapter is not OPERATIONAL, state 0x%x for scsi:%d\n",
+					 abs_state, instance->host->host_no);
+				goto out;
+			}
 			atomic_set(&instance->adprecovery, MEGASAS_HBA_OPERATIONAL);
 
 			dev_info(&instance->pdev->dev,
@@ -5046,7 +5122,7 @@
 	instance->skip_heartbeat_timer_del = 1;
 	retval = FAILED;
 out:
-	clear_bit(MEGASAS_FUSION_IN_RESET, &instance->reset_flags);
+	clear_bit(MEGASAS_FUSION_OCR_NOT_POSSIBLE, &instance->reset_flags);
 	mutex_unlock(&instance->reset_mutex);
 	return retval;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/megaraid/megaraid_sas_fusion.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/megaraid/megaraid_sas_fusion.h
@@ -89,6 +89,7 @@
 
 #define MEGASAS_FP_CMD_LEN	16
 #define MEGASAS_FUSION_IN_RESET 0
+#define MEGASAS_FUSION_OCR_NOT_POSSIBLE 1
 #define RAID_1_PEER_CMDS 2
 #define JBOD_MAPS_COUNT	2
 #define MEGASAS_REDUCE_QD_COUNT 64
@@ -864,9 +865,20 @@
 	u8	regTypeReqOnRead;
 	__le16     seqNum;
 
-	struct {
-		u32 ldSyncRequired:1;
-		u32 reserved:31;
+struct {
+#ifndef MFI_BIG_ENDIAN
+	u32 ldSyncRequired:1;
+	u32 regTypeReqOnReadIsValid:1;
+	u32 isEPD:1;
+	u32 enableSLDOnAllRWIOs:1;
+	u32 reserved:28;
+#else
+	u32 reserved:28;
+	u32 enableSLDOnAllRWIOs:1;
+	u32 isEPD:1;
+	u32 regTypeReqOnReadIsValid:1;
+	u32 ldSyncRequired:1;
+#endif
 	} flags;
 
 	u8	LUN[8]; /* 0x24 8 byte LUN field used for SCSI IO's */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mesh.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mesh.c
@@ -1045,6 +1045,8 @@
 		while ((in_8(&mr->bus_status1) & BS1_RST) != 0)
 			udelay(1);
 		printk("done\n");
+		if (ms->dma_started)
+			halt_dma(ms);
 		handle_reset(ms);
 		/* request_q is empty, no point in mesh_start() */
 		return;
@@ -1357,7 +1359,8 @@
 		       ms->conn_tgt, ms->data_ptr, scsi_bufflen(cmd),
 		       ms->tgts[ms->conn_tgt].data_goes_out);
 	}
-	scsi_dma_unmap(cmd);
+	if (cmd)
+		scsi_dma_unmap(cmd);
 	ms->dma_started = 0;
 }
 
@@ -1712,6 +1715,9 @@
 
 	spin_lock_irqsave(ms->host->host_lock, flags);
 
+	if (ms->dma_started)
+		halt_dma(ms);
+
 	/* Reset the controller & dbdma channel */
 	out_le32(&md->control, (RUN|PAUSE|FLUSH|WAKE) << 16);	/* stop dma */
 	out_8(&mr->exception, 0xff);	/* clear all exception bits */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpi/mpi2.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpi/mpi2.h
@@ -122,6 +122,9 @@
  * 08-28-18  02.00.53  Bumped MPI2_HEADER_VERSION_UNIT.
  *                     Added MPI2_IOCSTATUS_FAILURE
  * 12-17-18  02.00.54  Bumped MPI2_HEADER_VERSION_UNIT
+ * 06-24-19  02.00.55  Bumped MPI2_HEADER_VERSION_UNIT
+ * 08-01-19  02.00.56  Bumped MPI2_HEADER_VERSION_UNIT
+ * 10-02-19  02.00.57  Bumped MPI2_HEADER_VERSION_UNIT
  *  --------------------------------------------------------------------------
  */
 
@@ -162,7 +165,7 @@
 
 
 /* Unit and Dev versioning for this MPI header set */
-#define MPI2_HEADER_VERSION_UNIT            (0x36)
+#define MPI2_HEADER_VERSION_UNIT            (0x39)
 #define MPI2_HEADER_VERSION_DEV             (0x00)
 #define MPI2_HEADER_VERSION_UNIT_MASK       (0xFF00)
 #define MPI2_HEADER_VERSION_UNIT_SHIFT      (8)
@@ -181,6 +184,7 @@
 #define MPI2_IOC_STATE_READY               (0x10000000)
 #define MPI2_IOC_STATE_OPERATIONAL         (0x20000000)
 #define MPI2_IOC_STATE_FAULT               (0x40000000)
+#define MPI2_IOC_STATE_COREDUMP            (0x50000000)
 
 #define MPI2_IOC_STATE_MASK                (0xF0000000)
 #define MPI2_IOC_STATE_SHIFT               (28)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h
@@ -249,6 +249,8 @@
  * 08-28-18  02.00.46  Added NVMs Write Cache flag to IOUnitPage1
  *                     Added DMDReport Delay Time defines to PCIeIOUnitPage1
  * 12-17-18  02.00.47  Swap locations of Slotx2 and Slotx4 in ManPage 7.
+ * 08-01-19  02.00.49  Add MPI26_MANPAGE7_FLAG_X2_X4_SLOT_INFO_VALID
+ *                     Add MPI26_IOUNITPAGE1_NVME_WRCACHE_SHIFT
  */
 
 #ifndef MPI2_CNFG_H
@@ -891,6 +893,8 @@
 #define MPI2_MANPAGE7_FLAG_EVENTREPLAY_SLOT_ORDER       (0x00000002)
 #define MPI2_MANPAGE7_FLAG_USE_SLOT_INFO                (0x00000001)
 
+#define MPI26_MANPAGE7_FLAG_CONN_LANE_USE_PINOUT        (0x00000020)
+#define MPI26_MANPAGE7_FLAG_X2_X4_SLOT_INFO_VALID       (0x00000010)
 
 /*
  *Generic structure to use for product-specific manufacturing pages
@@ -962,9 +966,10 @@
 
 /* IO Unit Page 1 Flags defines */
 #define MPI26_IOUNITPAGE1_NVME_WRCACHE_MASK             (0x00030000)
-#define MPI26_IOUNITPAGE1_NVME_WRCACHE_ENABLE           (0x00000000)
-#define MPI26_IOUNITPAGE1_NVME_WRCACHE_DISABLE          (0x00010000)
-#define MPI26_IOUNITPAGE1_NVME_WRCACHE_NO_CHANGE        (0x00020000)
+#define MPI26_IOUNITPAGE1_NVME_WRCACHE_SHIFT            (16)
+#define MPI26_IOUNITPAGE1_NVME_WRCACHE_NO_CHANGE        (0x00000000)
+#define MPI26_IOUNITPAGE1_NVME_WRCACHE_ENABLE           (0x00010000)
+#define MPI26_IOUNITPAGE1_NVME_WRCACHE_DISABLE          (0x00020000)
 #define MPI2_IOUNITPAGE1_ATA_SECURITY_FREEZE_LOCK       (0x00004000)
 #define MPI25_IOUNITPAGE1_NEW_DEVICE_FAST_PATH_DISABLE  (0x00002000)
 #define MPI25_IOUNITPAGE1_DISABLE_FAST_PATH             (0x00001000)
@@ -3931,7 +3936,13 @@
 	U32	MaximumDataTransferSize;	/*0x0C */
 	U32	Capabilities;		/*0x10 */
 	U16	NOIOB;		/* 0x14 */
-	U16	Reserved2;		/* 0x16 */
+	U16     ShutdownLatency;        /* 0x16 */
+	U16     VendorID;               /* 0x18 */
+	U16     DeviceID;               /* 0x1A */
+	U16     SubsystemVendorID;      /* 0x1C */
+	U16     SubsystemID;            /* 0x1E */
+	U8      RevisionID;             /* 0x20 */
+	U8      Reserved21[3];          /* 0x21 */
 } MPI26_CONFIG_PAGE_PCIEDEV_2, *PTR_MPI26_CONFIG_PAGE_PCIEDEV_2,
 	Mpi26PCIeDevicePage2_t, *pMpi26PCIeDevicePage2_t;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpi/mpi2_image.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpi/mpi2_image.h
@@ -19,6 +19,10 @@
  * 09-07-18  02.06.03  Added MPI26_EVENT_PCIE_TOPO_PI_16_LANES
  * 12-17-18  02.06.04  Addd MPI2_EXT_IMAGE_TYPE_PBLP
  *			Shorten some defines to be compatible with DOS
+ * 06-24-19  02.06.05  Whitespace adjustments to help with identifier
+ *			checking tool.
+ * 10-02-19  02.06.06  Added MPI26_IMAGE_HEADER_SIG1_COREDUMP
+ *                     Added MPI2_FLASH_REGION_COREDUMP
  */
 #ifndef MPI2_IMAGE_H
 #define MPI2_IMAGE_H
@@ -213,6 +217,8 @@
 #define MPI26_IMAGE_HEADER_SIG1_NVDATA                   (0x5444564E)
 #define MPI26_IMAGE_HEADER_SIG1_GAS_GAUGE                (0x20534147)
 #define MPI26_IMAGE_HEADER_SIG1_PBLP                     (0x504C4250)
+/* little-endian "DUMP" */
+#define MPI26_IMAGE_HEADER_SIG1_COREDUMP                 (0x504D5544)
 
 /**** Definitions for Signature2 field ****/
 #define MPI26_IMAGE_HEADER_SIGNATURE2_VALUE                    (0x50584546)
@@ -359,6 +365,7 @@
 #define MPI2_FLASH_REGION_MR_NVDATA             (0x14)
 #define MPI2_FLASH_REGION_CPLD                  (0x15)
 #define MPI2_FLASH_REGION_PSOC                  (0x16)
+#define MPI2_FLASH_REGION_COREDUMP              (0x17)
 
 /*ImageRevision */
 #define MPI2_FLASH_LAYOUT_IMAGE_REVISION        (0x00)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpi/mpi2_ioc.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpi/mpi2_ioc.h
@@ -175,6 +175,10 @@
  *                     Moved FW image definitions ionto new mpi2_image,h
  * 08-14-18   02.00.36 Fixed definition of MPI2_FW_DOWNLOAD_ITYPE_PSOC (0x16)
  * 09-07-18   02.00.37 Added MPI26_EVENT_PCIE_TOPO_PI_16_LANES
+ * 10-02-19   02.00.38 Added MPI26_IOCINIT_CFGFLAGS_COREDUMP_ENABLE
+ *                     Added MPI26_IOCFACTS_CAPABILITY_COREDUMP_ENABLED
+ *                     Added MPI2_FW_DOWNLOAD_ITYPE_COREDUMP
+ *                     Added MPI2_FW_UPLOAD_ITYPE_COREDUMP
  * --------------------------------------------------------------------------
  */
 
@@ -248,6 +252,7 @@
 
 /*ConfigurationFlags */
 #define MPI26_IOCINIT_CFGFLAGS_NVME_SGL_FORMAT  (0x0001)
+#define MPI26_IOCINIT_CFGFLAGS_COREDUMP_ENABLE  (0x0002)
 
 /*minimum depth for a Reply Descriptor Post Queue */
 #define MPI2_RDPQ_DEPTH_MIN                     (16)
@@ -377,6 +382,7 @@
 /*ProductID field uses MPI2_FW_HEADER_PID_ */
 
 /*IOCCapabilities */
+#define MPI26_IOCFACTS_CAPABILITY_COREDUMP_ENABLED      (0x00200000)
 #define MPI26_IOCFACTS_CAPABILITY_PCIE_SRIOV            (0x00100000)
 #define MPI26_IOCFACTS_CAPABILITY_ATOMIC_REQ            (0x00080000)
 #define MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE     (0x00040000)
@@ -1458,8 +1464,8 @@
 /*MPI v2.6 and newer */
 #define MPI2_FW_DOWNLOAD_ITYPE_CPLD                 (0x15)
 #define MPI2_FW_DOWNLOAD_ITYPE_PSOC                 (0x16)
+#define MPI2_FW_DOWNLOAD_ITYPE_COREDUMP             (0x17)
 #define MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC (0xF0)
-#define MPI2_FW_DOWNLOAD_ITYPE_TERMINATE            (0xFF)
 
 /*MPI v2.0 FWDownload TransactionContext Element */
 typedef struct _MPI2_FW_DOWNLOAD_TCSGE {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -124,7 +124,14 @@
 };
 
 static int
+_base_wait_on_iocstate(struct MPT3SAS_ADAPTER *ioc,
+		u32 ioc_state, int timeout);
+static int
 _base_get_ioc_facts(struct MPT3SAS_ADAPTER *ioc);
+static void
+_base_mask_interrupts(struct MPT3SAS_ADAPTER *ioc);
+static void
+_base_clear_outstanding_commands(struct MPT3SAS_ADAPTER *ioc);
 
 /**
  * mpt3sas_base_check_cmd_timeout - Function
@@ -609,7 +616,8 @@
 
 
 	spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
-	if (ioc->shost_recovery || ioc->pci_error_recovery)
+	if ((ioc->shost_recovery && (ioc->ioc_coredump_loop == 0)) ||
+			ioc->pci_error_recovery)
 		goto rearm_timer;
 	spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
 
@@ -656,20 +664,64 @@
 		return; /* don't rearm timer */
 	}
 
-	ioc->non_operational_loop = 0;
+	if ((doorbell & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_COREDUMP) {
+		u8 timeout = (ioc->manu_pg11.CoreDumpTOSec) ?
+		    ioc->manu_pg11.CoreDumpTOSec :
+		    MPT3SAS_DEFAULT_COREDUMP_TIMEOUT_SECONDS;
+
+		timeout /= (FAULT_POLLING_INTERVAL/1000);
+
+		if (ioc->ioc_coredump_loop == 0) {
+			mpt3sas_print_coredump_info(ioc,
+			    doorbell & MPI2_DOORBELL_DATA_MASK);
+			/* do not accept any IOs and disable the interrupts */
+			spin_lock_irqsave(
+			    &ioc->ioc_reset_in_progress_lock, flags);
+			ioc->shost_recovery = 1;
+			spin_unlock_irqrestore(
+			    &ioc->ioc_reset_in_progress_lock, flags);
+			_base_mask_interrupts(ioc);
+			_base_clear_outstanding_commands(ioc);
+		}
+
+		ioc_info(ioc, "%s: CoreDump loop %d.",
+		    __func__, ioc->ioc_coredump_loop);
+
+		/* Wait until CoreDump completes or times out */
+		if (ioc->ioc_coredump_loop++ < timeout) {
+			spin_lock_irqsave(
+			    &ioc->ioc_reset_in_progress_lock, flags);
+			goto rearm_timer;
+		}
+	}
 
+	if (ioc->ioc_coredump_loop) {
+		if ((doorbell & MPI2_IOC_STATE_MASK) != MPI2_IOC_STATE_COREDUMP)
+			ioc_err(ioc, "%s: CoreDump completed. LoopCount: %d",
+			    __func__, ioc->ioc_coredump_loop);
+		else
+			ioc_err(ioc, "%s: CoreDump Timed out. LoopCount: %d",
+			    __func__, ioc->ioc_coredump_loop);
+		ioc->ioc_coredump_loop = MPT3SAS_COREDUMP_LOOP_DONE;
+	}
+	ioc->non_operational_loop = 0;
 	if ((doorbell & MPI2_IOC_STATE_MASK) != MPI2_IOC_STATE_OPERATIONAL) {
 		rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
 		ioc_warn(ioc, "%s: hard reset: %s\n",
 			 __func__, rc == 0 ? "success" : "failed");
 		doorbell = mpt3sas_base_get_iocstate(ioc, 0);
-		if ((doorbell & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT)
-			mpt3sas_base_fault_info(ioc, doorbell &
+		if ((doorbell & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) {
+			mpt3sas_print_fault_code(ioc, doorbell &
+			    MPI2_DOORBELL_DATA_MASK);
+		} else if ((doorbell & MPI2_IOC_STATE_MASK) ==
+		    MPI2_IOC_STATE_COREDUMP)
+			mpt3sas_print_coredump_info(ioc, doorbell &
 			    MPI2_DOORBELL_DATA_MASK);
 		if (rc && (doorbell & MPI2_IOC_STATE_MASK) !=
 		    MPI2_IOC_STATE_OPERATIONAL)
 			return; /* don't rearm timer */
 	}
+	ioc->ioc_coredump_loop = 0;
 
 	spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
  rearm_timer:
@@ -749,6 +801,49 @@
 }
 
 /**
+ * mpt3sas_base_coredump_info - verbose translation of firmware CoreDump state
+ * @ioc: per adapter object
+ * @fault_code: fault code
+ *
+ * Return nothing.
+ */
+void
+mpt3sas_base_coredump_info(struct MPT3SAS_ADAPTER *ioc, u16 fault_code)
+{
+	ioc_err(ioc, "coredump_state(0x%04x)!\n", fault_code);
+}
+
+/**
+ * mpt3sas_base_wait_for_coredump_completion - Wait until coredump
+ * completes or times out
+ * @ioc: per adapter object
+ *
+ * Returns 0 for success, non-zero for failure.
+ */
+int
+mpt3sas_base_wait_for_coredump_completion(struct MPT3SAS_ADAPTER *ioc,
+		const char *caller)
+{
+	u8 timeout = (ioc->manu_pg11.CoreDumpTOSec) ?
+			ioc->manu_pg11.CoreDumpTOSec :
+			MPT3SAS_DEFAULT_COREDUMP_TIMEOUT_SECONDS;
+
+	int ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_FAULT,
+					timeout);
+
+	if (ioc_state)
+		ioc_err(ioc,
+		    "%s: CoreDump timed out. (ioc_state=0x%x)\n",
+		    caller, ioc_state);
+	else
+		ioc_info(ioc,
+		    "%s: CoreDump completed. (ioc_state=0x%x)\n",
+		    caller, ioc_state);
+
+	return ioc_state;
+}
+
+/**
  * mpt3sas_halt_firmware - halt's mpt controller firmware
  * @ioc: per adapter object
  *
@@ -768,9 +863,14 @@
 	dump_stack();
 
 	doorbell = ioc->base_readl(&ioc->chip->Doorbell);
-	if ((doorbell & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT)
-		mpt3sas_base_fault_info(ioc , doorbell);
-	else {
+	if ((doorbell & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) {
+		mpt3sas_print_fault_code(ioc, doorbell &
+		    MPI2_DOORBELL_DATA_MASK);
+	} else if ((doorbell & MPI2_IOC_STATE_MASK) ==
+	    MPI2_IOC_STATE_COREDUMP) {
+		mpt3sas_print_coredump_info(ioc, doorbell &
+		    MPI2_DOORBELL_DATA_MASK);
+	} else {
 		writel(0xC0FFEE00, &ioc->chip->Doorbell);
 		ioc_err(ioc, "Firmware is halted due to command timeout\n");
 	}
@@ -1632,7 +1732,7 @@
 	reply_q = container_of(irqpoll, struct adapter_reply_queue,
 			irqpoll);
 	if (reply_q->irq_line_enable) {
-		disable_irq(reply_q->os_irq);
+		disable_irq_nosync(reply_q->os_irq);
 		reply_q->irq_line_enable = false;
 	}
 	num_entries = _base_process_reply_queue(reply_q);
@@ -1641,6 +1741,13 @@
 		reply_q->irq_poll_scheduled = false;
 		reply_q->irq_line_enable = true;
 		enable_irq(reply_q->os_irq);
+		/*
+		 * Go for one more round of processing the
+		 * reply descriptor post queue incase if HBA
+		 * Firmware has posted some reply descriptors
+		 * while reenabling the IRQ.
+		 */
+		_base_process_reply_queue(reply_q);
 	}
 
 	return num_entries;
@@ -1708,18 +1815,22 @@
 		/* TMs are on msix_index == 0 */
 		if (reply_q->msix_index == 0)
 			continue;
+		synchronize_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index));
 		if (reply_q->irq_poll_scheduled) {
 			/* Calling irq_poll_disable will wait for any pending
 			 * callbacks to have completed.
 			 */
 			irq_poll_disable(&reply_q->irqpoll);
 			irq_poll_enable(&reply_q->irqpoll);
-			reply_q->irq_poll_scheduled = false;
-			reply_q->irq_line_enable = true;
-			enable_irq(reply_q->os_irq);
-			continue;
+			/* check how the scheduled poll has ended,
+			 * clean up only if necessary
+			 */
+			if (reply_q->irq_poll_scheduled) {
+				reply_q->irq_poll_scheduled = false;
+				reply_q->irq_line_enable = true;
+				enable_irq(reply_q->os_irq);
+			}
 		}
-		synchronize_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index));
 	}
 }
 
@@ -3044,11 +3155,11 @@
 		descp = NULL;
 
 	ioc_info(ioc, " %d %d\n", ioc->high_iops_queues,
-	    ioc->msix_vector_count);
+	    ioc->reply_queue_count);
 
 	i = pci_alloc_irq_vectors_affinity(ioc->pdev,
 	    ioc->high_iops_queues,
-	    ioc->msix_vector_count, irq_flags, descp);
+	    ioc->reply_queue_count, irq_flags, descp);
 
 	return i;
 }
@@ -3103,6 +3214,8 @@
 	 */
 	if (!ioc->combined_reply_queue &&
 	    ioc->hba_mpi_version_belonged != MPI2_VERSION) {
+		ioc_info(ioc,
+		    "combined ReplyQueue is off, Enabling msix load balance\n");
 		ioc->msix_load_balance = true;
 	}
 
@@ -3115,9 +3228,7 @@
 
 	r = _base_alloc_irq_vectors(ioc);
 	if (r < 0) {
-		dfailprintk(ioc,
-			    ioc_info(ioc, "pci_alloc_irq_vectors failed (r=%d) !!!\n",
-				     r));
+		ioc_info(ioc, "pci_alloc_irq_vectors failed (r=%d) !!!\n", r);
 		goto try_ioapic;
 	}
 
@@ -3206,9 +3317,15 @@
 	dhsprintk(ioc, pr_info("%s: ioc_state(0x%08x)\n", __func__, ioc_state));
 
 	if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) {
-		mpt3sas_base_fault_info(ioc, ioc_state &
+		mpt3sas_print_fault_code(ioc, ioc_state &
 		    MPI2_DOORBELL_DATA_MASK);
 		rc = _base_diag_reset(ioc);
+	} else if ((ioc_state & MPI2_IOC_STATE_MASK) ==
+	    MPI2_IOC_STATE_COREDUMP) {
+		mpt3sas_print_coredump_info(ioc, ioc_state &
+		     MPI2_DOORBELL_DATA_MASK);
+		mpt3sas_base_wait_for_coredump_completion(ioc, __func__);
+		rc = _base_diag_reset(ioc);
 	}
 
 	return rc;
@@ -3279,7 +3396,8 @@
 	}
 
 	if (ioc->chip == NULL) {
-		ioc_err(ioc, "unable to map adapter memory! or resource not found\n");
+		ioc_err(ioc,
+		    "unable to map adapter memory! or resource not found\n");
 		r = -EINVAL;
 		goto out_fail;
 	}
@@ -3318,8 +3436,8 @@
 		     ioc->combined_reply_index_count,
 		     sizeof(resource_size_t *), GFP_KERNEL);
 		if (!ioc->replyPostRegisterIndex) {
-			dfailprintk(ioc,
-				    ioc_warn(ioc, "allocation for reply Post Register Index failed!!!\n"));
+			ioc_err(ioc,
+			    "allocation for replyPostRegisterIndex failed!\n");
 			r = -ENOMEM;
 			goto out_fail;
 		}
@@ -3467,6 +3585,22 @@
 }
 
 /**
+ * _base_sdev_nr_inflight_request -get number of inflight requests
+ *				   of a request queue.
+ * @q: request_queue object
+ *
+ * returns number of inflight request of a request queue.
+ */
+inline unsigned long
+_base_sdev_nr_inflight_request(struct request_queue *q)
+{
+	struct blk_mq_hw_ctx *hctx = q->queue_hw_ctx[0];
+
+	return atomic_read(&hctx->nr_active);
+}
+
+
+/**
  * _base_get_high_iops_msix_index - get the msix index of
  *				high iops queues
  * @ioc: per adapter object
@@ -3485,7 +3619,7 @@
 	 * reply queues in terms of batch count 16 when outstanding
 	 * IOs on the target device is >=8.
 	 */
-	if (atomic_read(&scmd->device->device_busy) >
+	if (_base_sdev_nr_inflight_request(scmd->device->request_queue) >
 	    MPT3SAS_DEVICE_HIGH_IOPS_DEPTH)
 		return base_mod64((
 		    atomic64_add_return(1, &ioc->high_iops_outstanding) /
@@ -4242,10 +4376,12 @@
 	static int
 _base_display_fwpkg_version(struct MPT3SAS_ADAPTER *ioc)
 {
-	Mpi2FWImageHeader_t *FWImgHdr;
+	Mpi2FWImageHeader_t *fw_img_hdr;
+	Mpi26ComponentImageHeader_t *cmp_img_hdr;
 	Mpi25FWUploadRequest_t *mpi_request;
 	Mpi2FWUploadReply_t mpi_reply;
 	int r = 0;
+	u32  package_version = 0;
 	void *fwpkg_data = NULL;
 	dma_addr_t fwpkg_data_dma;
 	u16 smid, ioc_status;
@@ -4262,7 +4398,8 @@
 	fwpkg_data = dma_alloc_coherent(&ioc->pdev->dev, data_length,
 			&fwpkg_data_dma, GFP_KERNEL);
 	if (!fwpkg_data) {
-		ioc_err(ioc, "failure at %s:%d/%s()!\n",
+		ioc_err(ioc,
+		    "Memory allocation for fwpkg data failed at %s:%d/%s()!\n",
 			__FILE__, __LINE__, __func__);
 		return -ENOMEM;
 	}
@@ -4302,14 +4439,26 @@
 			ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
 						MPI2_IOCSTATUS_MASK;
 			if (ioc_status == MPI2_IOCSTATUS_SUCCESS) {
-				FWImgHdr = (Mpi2FWImageHeader_t *)fwpkg_data;
-				if (FWImgHdr->PackageVersion.Word) {
-					ioc_info(ioc, "FW Package Version (%02d.%02d.%02d.%02d)\n",
-						 FWImgHdr->PackageVersion.Struct.Major,
-						 FWImgHdr->PackageVersion.Struct.Minor,
-						 FWImgHdr->PackageVersion.Struct.Unit,
-						 FWImgHdr->PackageVersion.Struct.Dev);
-				}
+				fw_img_hdr = (Mpi2FWImageHeader_t *)fwpkg_data;
+				if (le32_to_cpu(fw_img_hdr->Signature) ==
+				    MPI26_IMAGE_HEADER_SIGNATURE0_MPI26) {
+					cmp_img_hdr =
+					    (Mpi26ComponentImageHeader_t *)
+					    (fwpkg_data);
+					package_version =
+					    le32_to_cpu(
+					    cmp_img_hdr->ApplicationSpecific);
+				} else
+					package_version =
+					    le32_to_cpu(
+					    fw_img_hdr->PackageVersion.Word);
+				if (package_version)
+					ioc_info(ioc,
+					"FW Package Ver(%02d.%02d.%02d.%02d)\n",
+					((package_version) & 0xFF000000) >> 24,
+					((package_version) & 0x00FF0000) >> 16,
+					((package_version) & 0x0000FF00) >> 8,
+					(package_version) & 0x000000FF);
 			} else {
 				_debug_dump_mf(&mpi_reply,
 						sizeof(Mpi2FWUploadReply_t)/4);
@@ -4777,7 +4926,9 @@
 	}
 
 	kfree(ioc->hpr_lookup);
+	ioc->hpr_lookup = NULL;
 	kfree(ioc->internal_lookup);
+	ioc->internal_lookup = NULL;
 	if (ioc->chain_lookup) {
 		for (i = 0; i < ioc->scsiio_depth; i++) {
 			for (j = ioc->chains_per_prp_buffer;
@@ -4980,12 +5131,13 @@
 		ioc->reply_free_queue_depth = ioc->hba_queue_depth + 64;
 	}
 
-	dinitprintk(ioc,
-		    ioc_info(ioc, "scatter gather: sge_in_main_msg(%d), sge_per_chain(%d), sge_per_io(%d), chains_per_io(%d)\n",
-			     ioc->max_sges_in_main_message,
-			     ioc->max_sges_in_chain_message,
-			     ioc->shost->sg_tablesize,
-			     ioc->chains_needed_per_io));
+	ioc_info(ioc,
+	    "scatter gather: sge_in_main_msg(%d), sge_per_chain(%d), "
+	    "sge_per_io(%d), chains_per_io(%d)\n",
+	    ioc->max_sges_in_main_message,
+	    ioc->max_sges_in_chain_message,
+	    ioc->shost->sg_tablesize,
+	    ioc->chains_needed_per_io);
 
 	/* reply post queue, 16 byte align */
 	reply_post_free_sz = ioc->reply_post_queue_depth *
@@ -5095,15 +5247,13 @@
 	ioc->internal_dma = ioc->hi_priority_dma + (ioc->hi_priority_depth *
 	    ioc->request_sz);
 
-	dinitprintk(ioc,
-		    ioc_info(ioc, "request pool(0x%p): depth(%d), frame_size(%d), pool_size(%d kB)\n",
-			     ioc->request, ioc->hba_queue_depth,
-			     ioc->request_sz,
-			     (ioc->hba_queue_depth * ioc->request_sz) / 1024));
+	ioc_info(ioc,
+	    "request pool(0x%p) - dma(0x%llx): "
+	    "depth(%d), frame_size(%d), pool_size(%d kB)\n",
+	    ioc->request, (unsigned long long) ioc->request_dma,
+	    ioc->hba_queue_depth, ioc->request_sz,
+	    (ioc->hba_queue_depth * ioc->request_sz) / 1024);
 
-	dinitprintk(ioc,
-		    ioc_info(ioc, "request pool: dma(0x%llx)\n",
-			     (unsigned long long)ioc->request_dma));
 	total_sz += sz;
 
 	dinitprintk(ioc,
@@ -5234,7 +5384,6 @@
 					&ct->chain_buffer_dma);
 			if (!ct->chain_buffer) {
 				ioc_err(ioc, "chain_lookup: pci_pool_alloc failed\n");
-				_base_release_memory_pools(ioc);
 				goto out;
 			}
 		}
@@ -5289,13 +5438,12 @@
 			goto out;
 		}
 	}
-	dinitprintk(ioc,
-		    ioc_info(ioc, "sense pool(0x%p): depth(%d), element_size(%d), pool_size(%d kB)\n",
-			     ioc->sense, ioc->scsiio_depth,
-			     SCSI_SENSE_BUFFERSIZE, sz / 1024));
-	dinitprintk(ioc,
-		    ioc_info(ioc, "sense_dma(0x%llx)\n",
-			     (unsigned long long)ioc->sense_dma));
+	ioc_info(ioc,
+	    "sense pool(0x%p)- dma(0x%llx): depth(%d),"
+	    "element_size(%d), pool_size(%d kB)\n",
+	    ioc->sense, (unsigned long long)ioc->sense_dma, ioc->scsiio_depth,
+	    SCSI_SENSE_BUFFERSIZE, sz / 1024);
+
 	total_sz += sz;
 
 	/* reply pool, 4 byte align */
@@ -5373,12 +5521,10 @@
 		ioc_err(ioc, "config page: dma_pool_alloc failed\n");
 		goto out;
 	}
-	dinitprintk(ioc,
-		    ioc_info(ioc, "config page(0x%p): size(%d)\n",
-			     ioc->config_page, ioc->config_page_sz));
-	dinitprintk(ioc,
-		    ioc_info(ioc, "config_page_dma(0x%llx)\n",
-			     (unsigned long long)ioc->config_page_dma));
+
+	ioc_info(ioc, "config page(0x%p) - dma(0x%llx): size(%d)\n",
+	    ioc->config_page, (unsigned long long)ioc->config_page_dma,
+	    ioc->config_page_sz);
 	total_sz += ioc->config_page_sz;
 
 	ioc_info(ioc, "Allocated physical memory: size(%d kB)\n",
@@ -5433,6 +5579,8 @@
 			return 0;
 		if (count && current_state == MPI2_IOC_STATE_FAULT)
 			break;
+		if (count && current_state == MPI2_IOC_STATE_COREDUMP)
+			break;
 
 		usleep_range(1000, 1500);
 		count++;
@@ -5534,7 +5682,12 @@
 			doorbell = ioc->base_readl(&ioc->chip->Doorbell);
 			if ((doorbell & MPI2_IOC_STATE_MASK) ==
 			    MPI2_IOC_STATE_FAULT) {
-				mpt3sas_base_fault_info(ioc , doorbell);
+				mpt3sas_print_fault_code(ioc, doorbell);
+				return -EFAULT;
+			}
+			if ((doorbell & MPI2_IOC_STATE_MASK) ==
+			    MPI2_IOC_STATE_COREDUMP) {
+				mpt3sas_print_coredump_info(ioc, doorbell);
 				return -EFAULT;
 			}
 		} else if (int_status == 0xFFFFFFFF)
@@ -5596,6 +5749,7 @@
 {
 	u32 ioc_state;
 	int r = 0;
+	unsigned long flags;
 
 	if (reset_type != MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET) {
 		ioc_err(ioc, "%s: unknown reset_type\n", __func__);
@@ -5614,6 +5768,7 @@
 		r = -EFAULT;
 		goto out;
 	}
+
 	ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_READY, timeout);
 	if (ioc_state) {
 		ioc_err(ioc, "%s: failed going to ready state (ioc_state=0x%x)\n",
@@ -5622,6 +5777,26 @@
 		goto out;
 	}
  out:
+	if (r != 0) {
+		ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
+		spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
+		/*
+		 * Wait for IOC state CoreDump to clear only during
+		 * HBA initialization & release time.
+		 */
+		if ((ioc_state & MPI2_IOC_STATE_MASK) ==
+		    MPI2_IOC_STATE_COREDUMP && (ioc->is_driver_loading == 1 ||
+		    ioc->fault_reset_work_q == NULL)) {
+			spin_unlock_irqrestore(
+			    &ioc->ioc_reset_in_progress_lock, flags);
+			mpt3sas_print_coredump_info(ioc, ioc_state);
+			mpt3sas_base_wait_for_coredump_completion(ioc,
+			    __func__);
+			spin_lock_irqsave(
+			    &ioc->ioc_reset_in_progress_lock, flags);
+		}
+		spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
+	}
 	ioc_info(ioc, "message unit reset: %s\n",
 		 r == 0 ? "SUCCESS" : "FAILED");
 	return r;
@@ -5769,7 +5944,7 @@
 		mfp = (__le32 *)reply;
 		pr_info("\toffset:data\n");
 		for (i = 0; i < reply_bytes/4; i++)
-			pr_info("\t[0x%02x]:%08x\n", i*4,
+			ioc_info(ioc, "\t[0x%02x]:%08x\n", i*4,
 			    le32_to_cpu(mfp[i]));
 	}
 	return 0;
@@ -5837,10 +6012,9 @@
 	    ioc->ioc_link_reset_in_progress)
 		ioc->ioc_link_reset_in_progress = 0;
 	if (!(ioc->base_cmds.status & MPT3_CMD_COMPLETE)) {
-		issue_reset =
-			mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->base_cmds.status, mpi_request,
-				sizeof(Mpi2SasIoUnitControlRequest_t)/4);
+		mpt3sas_check_cmd_timeout(ioc, ioc->base_cmds.status,
+		    mpi_request, sizeof(Mpi2SasIoUnitControlRequest_t)/4,
+		    issue_reset);
 		goto issue_host_reset;
 	}
 	if (ioc->base_cmds.status & MPT3_CMD_REPLY_VALID)
@@ -5913,10 +6087,9 @@
 	wait_for_completion_timeout(&ioc->base_cmds.done,
 	    msecs_to_jiffies(10000));
 	if (!(ioc->base_cmds.status & MPT3_CMD_COMPLETE)) {
-		issue_reset =
-			mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->base_cmds.status, mpi_request,
-				sizeof(Mpi2SepRequest_t)/4);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->base_cmds.status, mpi_request,
+		    sizeof(Mpi2SepRequest_t)/4, issue_reset);
 		goto issue_host_reset;
 	}
 	if (ioc->base_cmds.status & MPT3_CMD_REPLY_VALID)
@@ -6015,9 +6188,15 @@
 	}
 
 	if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) {
-		mpt3sas_base_fault_info(ioc, ioc_state &
+		mpt3sas_print_fault_code(ioc, ioc_state &
 		    MPI2_DOORBELL_DATA_MASK);
 		goto issue_diag_reset;
+	} else if ((ioc_state & MPI2_IOC_STATE_MASK) ==
+	    MPI2_IOC_STATE_COREDUMP) {
+		ioc_info(ioc,
+		    "%s: Skipping the diag reset here. (ioc_state=0x%x)\n",
+		    __func__, ioc_state);
+		return -EFAULT;
 	}
 
 	ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_READY, timeout);
@@ -6196,6 +6375,12 @@
 		    cpu_to_le64((u64)ioc->reply_post[0].reply_post_free_dma);
 	}
 
+	/*
+	 * Set the flag to enable CoreDump state feature in IOC firmware.
+	 */
+	mpi_request.ConfigurationFlags |=
+	    cpu_to_le16(MPI26_IOCINIT_CFGFLAGS_COREDUMP_ENABLE);
+
 	/* This time stamp specifies number of milliseconds
 	 * since epoch ~ midnight January 1, 1970.
 	 */
@@ -6207,15 +6392,15 @@
 		int i;
 
 		mfp = (__le32 *)&mpi_request;
-		pr_info("\toffset:data\n");
+		ioc_info(ioc, "\toffset:data\n");
 		for (i = 0; i < sizeof(Mpi2IOCInitRequest_t)/4; i++)
-			pr_info("\t[0x%02x]:%08x\n", i*4,
+			ioc_info(ioc, "\t[0x%02x]:%08x\n", i*4,
 			    le32_to_cpu(mfp[i]));
 	}
 
 	r = _base_handshake_req_reply_wait(ioc,
 	    sizeof(Mpi2IOCInitRequest_t), (u32 *)&mpi_request,
-	    sizeof(Mpi2IOCInitReply_t), (u16 *)&mpi_reply, 10);
+	    sizeof(Mpi2IOCInitReply_t), (u16 *)&mpi_reply, 30);
 
 	if (r != 0) {
 		ioc_err(ioc, "%s: handshake failed (r=%d)\n", __func__, r);
@@ -6579,8 +6764,11 @@
 		/* wait 100 msec */
 		msleep(100);
 
-		if (count++ > 20)
+		if (count++ > 20) {
+			ioc_info(ioc,
+			    "Stop writing magic sequence after 20 retries\n");
 			goto out;
+		}
 
 		host_diagnostic = ioc->base_readl(&ioc->chip->HostDiagnostic);
 		drsprintk(ioc,
@@ -6604,8 +6792,11 @@
 
 		host_diagnostic = ioc->base_readl(&ioc->chip->HostDiagnostic);
 
-		if (host_diagnostic == 0xFFFFFFFF)
+		if (host_diagnostic == 0xFFFFFFFF) {
+			ioc_info(ioc,
+			    "Invalid host diagnostic register value\n");
 			goto out;
+		}
 		if (!(host_diagnostic & MPI2_DIAG_RESET_ADAPTER))
 			break;
 
@@ -6692,16 +6883,33 @@
 		return 0;
 
 	if (ioc_state & MPI2_DOORBELL_USED) {
-		dhsprintk(ioc, ioc_info(ioc, "unexpected doorbell active!\n"));
+		ioc_info(ioc, "unexpected doorbell active!\n");
 		goto issue_diag_reset;
 	}
 
 	if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) {
-		mpt3sas_base_fault_info(ioc, ioc_state &
+		mpt3sas_print_fault_code(ioc, ioc_state &
 		    MPI2_DOORBELL_DATA_MASK);
 		goto issue_diag_reset;
 	}
 
+	if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_COREDUMP) {
+		/*
+		 * if host reset is invoked while watch dog thread is waiting
+		 * for IOC state to be changed to Fault state then driver has
+		 * to wait here for CoreDump state to clear otherwise reset
+		 * will be issued to the FW and FW move the IOC state to
+		 * reset state without copying the FW logs to coredump region.
+		 */
+		if (ioc->ioc_coredump_loop != MPT3SAS_COREDUMP_LOOP_DONE) {
+			mpt3sas_print_coredump_info(ioc, ioc_state &
+			    MPI2_DOORBELL_DATA_MASK);
+			mpt3sas_base_wait_for_coredump_completion(ioc,
+			    __func__);
+		}
+		goto issue_diag_reset;
+	}
+
 	if (type == FORCE_BIG_HAMMER)
 		goto issue_diag_reset;
 
@@ -6945,8 +7153,7 @@
 	ioc->cpu_msix_table = kzalloc(ioc->cpu_msix_table_sz, GFP_KERNEL);
 	ioc->reply_queue_count = 1;
 	if (!ioc->cpu_msix_table) {
-		dfailprintk(ioc,
-			    ioc_info(ioc, "allocation for cpu_msix_table failed!!!\n"));
+		ioc_info(ioc, "Allocation for cpu_msix_table failed!!!\n");
 		r = -ENOMEM;
 		goto out_free_resources;
 	}
@@ -6955,8 +7162,7 @@
 		ioc->reply_post_host_index = kcalloc(ioc->cpu_msix_table_sz,
 		    sizeof(resource_size_t *), GFP_KERNEL);
 		if (!ioc->reply_post_host_index) {
-			dfailprintk(ioc,
-				    ioc_info(ioc, "allocation for reply_post_host_index failed!!!\n"));
+			ioc_info(ioc, "Allocation for reply_post_host_index failed!!!\n");
 			r = -ENOMEM;
 			goto out_free_resources;
 		}
@@ -7182,6 +7388,7 @@
 	    sizeof(struct mpt3sas_facts));
 
 	ioc->non_operational_loop = 0;
+	ioc->ioc_coredump_loop = 0;
 	ioc->got_task_abort_from_ioctl = 0;
 	return 0;
 
@@ -7263,14 +7470,14 @@
 }
 
 /**
- * _base_after_reset_handler - after reset handler
+ * _base_clear_outstanding_mpt_commands - clears outstanding mpt commands
  * @ioc: per adapter object
  */
-static void _base_after_reset_handler(struct MPT3SAS_ADAPTER *ioc)
+static void
+_base_clear_outstanding_mpt_commands(struct MPT3SAS_ADAPTER *ioc)
 {
-	mpt3sas_scsih_after_reset_handler(ioc);
-	mpt3sas_ctl_after_reset_handler(ioc);
-	dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_AFTER_RESET\n", __func__));
+	dtmprintk(ioc,
+	    ioc_info(ioc, "%s: clear outstanding mpt cmds\n", __func__));
 	if (ioc->transport_cmds.status & MPT3_CMD_PENDING) {
 		ioc->transport_cmds.status |= MPT3_CMD_RESET;
 		mpt3sas_base_free_smid(ioc, ioc->transport_cmds.smid);
@@ -7304,6 +7511,17 @@
 }
 
 /**
+ * _base_clear_outstanding_commands - clear all outstanding commands
+ * @ioc: per adapter object
+ */
+static void _base_clear_outstanding_commands(struct MPT3SAS_ADAPTER *ioc)
+{
+	mpt3sas_scsih_clear_outstanding_scsi_tm_commands(ioc);
+	mpt3sas_ctl_clear_outstanding_ioctls(ioc);
+	_base_clear_outstanding_mpt_commands(ioc);
+}
+
+/**
  * _base_reset_done_handler - reset done handler
  * @ioc: per adapter object
  */
@@ -7461,7 +7679,9 @@
 	    MPT3_DIAG_BUFFER_IS_RELEASED))) {
 		is_trigger = 1;
 		ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
-		if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT)
+		if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT ||
+		    (ioc_state & MPI2_IOC_STATE_MASK) ==
+		    MPI2_IOC_STATE_COREDUMP)
 			is_fault = 1;
 	}
 	_base_pre_reset_handler(ioc);
@@ -7470,7 +7690,7 @@
 	r = _base_make_ioc_ready(ioc, type);
 	if (r)
 		goto out;
-	_base_after_reset_handler(ioc);
+	_base_clear_outstanding_commands(ioc);
 
 	/* If this hard reset is called while port enable is active, then
 	 * there is no reason to call make_ioc_operational
@@ -7501,9 +7721,7 @@
 		_base_reset_done_handler(ioc);
 
  out:
-	dtmprintk(ioc,
-		  ioc_info(ioc, "%s: %s\n",
-			   __func__, r == 0 ? "SUCCESS" : "FAILED"));
+	ioc_info(ioc, "%s: %s\n", __func__, r == 0 ? "SUCCESS" : "FAILED");
 
 	spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
 	ioc->shost_recovery = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_base.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_base.h
@@ -76,9 +76,9 @@
 #define MPT3SAS_DRIVER_NAME		"mpt3sas"
 #define MPT3SAS_AUTHOR "Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>"
 #define MPT3SAS_DESCRIPTION	"LSI MPT Fusion SAS 3.0 Device Driver"
-#define MPT3SAS_DRIVER_VERSION		"31.100.00.00"
-#define MPT3SAS_MAJOR_VERSION		31
-#define MPT3SAS_MINOR_VERSION		100
+#define MPT3SAS_DRIVER_VERSION		"35.101.00.00"
+#define MPT3SAS_MAJOR_VERSION		35
+#define MPT3SAS_MINOR_VERSION		101
 #define MPT3SAS_BUILD_VERSION		0
 #define MPT3SAS_RELEASE_VERSION	00
 
@@ -90,6 +90,10 @@
 #define MPT2SAS_BUILD_VERSION		0
 #define MPT2SAS_RELEASE_VERSION	00
 
+/* CoreDump: Default timeout */
+#define MPT3SAS_DEFAULT_COREDUMP_TIMEOUT_SECONDS	(15) /*15 seconds*/
+#define MPT3SAS_COREDUMP_LOOP_DONE                     (0xFF)
+
 /*
  * Set MPT3SAS_SG_DEPTH value based on user input.
  */
@@ -140,6 +144,7 @@
 #define MAX_CHAIN_ELEMT_SZ		16
 #define DEFAULT_NUM_FWCHAIN_ELEMTS	8
 
+#define IO_UNIT_CONTROL_SHUTDOWN_TIMEOUT 6
 #define FW_IMG_HDR_READ_TIMEOUT	15
 
 #define IOC_OPERATIONAL_WAIT_COUNT	10
@@ -303,6 +308,8 @@
 #define MPT3_DIAG_BUFFER_IS_REGISTERED	(0x01)
 #define MPT3_DIAG_BUFFER_IS_RELEASED	(0x02)
 #define MPT3_DIAG_BUFFER_IS_DIAG_RESET	(0x04)
+#define MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED (0x08)
+#define MPT3_DIAG_BUFFER_IS_APP_OWNED (0x10)
 
 /*
  * HP HBA branding
@@ -391,9 +398,15 @@
 	u8	Reserved6;			/* 2Fh */
 	__le32	Reserved7[7];			/* 30h - 4Bh */
 	u8	NVMeAbortTO;			/* 4Ch */
-	u8	Reserved8;			/* 4Dh */
-	u16	Reserved9;			/* 4Eh */
-	__le32	Reserved10[4];			/* 50h - 60h */
+	u8	NumPerDevEvents;		/* 4Dh */
+	u8	HostTraceBufferDecrementSizeKB;	/* 4Eh */
+	u8	HostTraceBufferFlags;		/* 4Fh */
+	u16	HostTraceBufferMaxSizeKB;	/* 50h */
+	u16	HostTraceBufferMinSizeKB;	/* 52h */
+	u8	CoreDumpTOSec;			/* 54h */
+	u8	Reserved8;			/* 55h */
+	u16	Reserved9;			/* 56h */
+	__le32	Reserved10;			/* 58h */
 };
 
 /**
@@ -406,6 +419,7 @@
  * @flags: MPT_TARGET_FLAGS_XXX flags
  * @deleted: target flaged for deletion
  * @tm_busy: target is busy with TM request.
+ * @port: hba port entry containing target's port number info
  * @sas_dev: The sas_device associated with this target
  * @pcie_dev: The pcie device associated with this target
  */
@@ -418,6 +432,7 @@
 	u32	flags;
 	u8	deleted;
 	u8	tm_busy;
+	struct hba_port *port;
 	struct _sas_device *sas_dev;
 	struct _pcie_device *pcie_dev;
 };
@@ -520,6 +535,9 @@
  *	addition routine.
  * @chassis_slot: chassis slot
  * @is_chassis_slot_valid: chassis slot valid or not
+ * @port: hba port entry containing device's port number info
+ * @rphy: device's sas_rphy address used to identify this device structure in
+ *	target_alloc callback function
  */
 struct _sas_device {
 	struct list_head list;
@@ -546,6 +564,8 @@
 	u8	is_chassis_slot_valid;
 	u8	connector_name[5];
 	struct kref refcount;
+	struct hba_port *port;
+	struct sas_rphy *rphy;
 };
 
 static inline void sas_device_get(struct _sas_device *s)
@@ -584,6 +604,7 @@
  * @connector_name: ASCII value of the Connector's name
  * @serial_number: pointer of serial number string allocated runtime
  * @access_status: Device's Access Status
+ * @shutdown_latency: NVMe device's RTD3 Entry Latency
  * @refcount: reference count for deletion
  */
 struct _pcie_device {
@@ -606,6 +627,7 @@
 	u8	*serial_number;
 	u8	reset_timeout;
 	u8	access_status;
+	u16	shutdown_latency;
 	struct kref refcount;
 };
 /**
@@ -714,6 +736,7 @@
  * @remote_identify: attached device identification
  * @rphy: sas transport rphy object
  * @port: sas transport wide/narrow port object
+ * @hba_port: hba port entry containing port's port number info
  * @phy_list: _sas_phy list objects belonging to this port
  */
 struct _sas_port {
@@ -722,6 +745,7 @@
 	struct sas_identify remote_identify;
 	struct sas_rphy *rphy;
 	struct sas_port *port;
+	struct hba_port *hba_port;
 	struct list_head phy_list;
 };
 
@@ -735,6 +759,7 @@
  * @handle: device handle for this phy
  * @attached_handle: device handle for attached device
  * @phy_belongs_to_port: port has been created for this phy
+ * @port: hba port entry containing port number info
  */
 struct _sas_phy {
 	struct list_head port_siblings;
@@ -745,6 +770,8 @@
 	u16	handle;
 	u16	attached_handle;
 	u8	phy_belongs_to_port;
+	u8	hba_vphy;
+	struct hba_port *port;
 };
 
 /**
@@ -760,6 +787,8 @@
  * @responding: used in _scsih_expander_device_mark_responding
  * @phy: a list of phys that make up this sas_host/expander
  * @sas_port_list: list of ports attached to this sas_host/expander
+ * @port: hba port entry containing node's port number info
+ * @rphy: sas_rphy object of this expander
  */
 struct _sas_node {
 	struct list_head list;
@@ -771,11 +800,12 @@
 	u16	enclosure_handle;
 	u64	enclosure_logical_id;
 	u8	responding;
+	struct hba_port *port;
 	struct	_sas_phy *phy;
 	struct list_head sas_port_list;
+	struct sas_rphy *rphy;
 };
 
-
 /**
  * struct _enclosure_node - enclosure information
  * @list: list of enclosures
@@ -993,6 +1023,46 @@
 	dma_addr_t			reply_post_free_dma;
 };
 
+/**
+ * struct virtual_phy - vSES phy structure
+ * sas_address: SAS Address of vSES device
+ * phy_mask: vSES device's phy number
+ * flags: flags used to manage this structure
+ */
+struct virtual_phy {
+	struct	list_head list;
+	u64	sas_address;
+	u32	phy_mask;
+	u8	flags;
+};
+
+#define MPT_VPHY_FLAG_DIRTY_PHY	0x01
+
+/**
+ * struct hba_port - Saves each HBA's Wide/Narrow port info
+ * @sas_address: sas address of this wide/narrow port's attached device
+ * @phy_mask: HBA PHY's belonging to this port
+ * @port_id: port number
+ * @flags: hba port flags
+ * @vphys_mask : mask of vSES devices Phy number
+ * @vphys_list : list containing vSES device structures
+ */
+struct hba_port {
+	struct list_head list;
+	u64	sas_address;
+	u32	phy_mask;
+	u8      port_id;
+	u8	flags;
+	u32	vphys_mask;
+	struct list_head vphys_list;
+};
+
+/* hba port flags */
+#define HBA_PORT_FLAG_DIRTY_PORT       0x01
+#define HBA_PORT_FLAG_NEW_PORT         0x02
+
+#define MULTIPATH_DISABLED_PORT_ID     0xFF
+
 typedef void (*MPT3SAS_FLUSH_RUNNING_CMDS)(struct MPT3SAS_ADAPTER *ioc);
 /**
  * struct MPT3SAS_ADAPTER - per adapter struct
@@ -1040,6 +1110,7 @@
  * @cpu_msix_table: table for mapping cpus to msix index
  * @cpu_msix_table_sz: table size
  * @total_io_cnt: Gives total IO count, used to load balance the interrupts
+ * @ioc_coredump_loop: will have non-zero value when FW is in CoreDump state
  * @high_iops_outstanding: used to load balance the interrupts
  *				within high iops reply queues
  * @msix_load_balance: Enables load balancing of interrupts across
@@ -1068,6 +1139,10 @@
  * @event_context: unique id for each logged event
  * @event_log: event log pointer
  * @event_masks: events that are masked
+ * @max_shutdown_latency: timeout value for NVMe shutdown operation,
+ *			which is equal that NVMe drive's RTD3 Entry Latency
+ *			which has reported maximum RTD3 Entry Latency value
+ *			among attached NVMe drives.
  * @facts: static facts data
  * @prev_fw_facts: previous fw facts data
  * @pfacts: static port facts data
@@ -1168,6 +1243,8 @@
  *	which ensures the syncrhonization between cli/sysfs_show path.
  * @atomic_desc_capable: Atomic Request Descriptor support.
  * @GET_MSIX_INDEX: Get the msix index of high iops queues.
+ * @multipath_on_hba: flag to determine multipath on hba is enabled or not
+ * @port_table_list: list containing HBA's wide/narrow port's info
  */
 struct MPT3SAS_ADAPTER {
 	struct list_head list;
@@ -1226,6 +1303,7 @@
 	u32		ioc_reset_count;
 	MPT3SAS_FLUSH_RUNNING_CMDS schedule_dead_ioc_flush_running_cmds;
 	u32             non_operational_loop;
+	u8              ioc_coredump_loop;
 	atomic64_t      total_io_cnt;
 	atomic64_t	high_iops_outstanding;
 	bool            msix_load_balance;
@@ -1278,7 +1356,7 @@
 
 	u8		tm_custom_handling;
 	u8		nvme_abort_timeout;
-
+	u16		max_shutdown_latency;
 
 	/* static config pages */
 	struct mpt3sas_facts facts;
@@ -1455,6 +1533,9 @@
 	PUT_SMID_IO_FP_HIP put_smid_hi_priority;
 	PUT_SMID_DEFAULT put_smid_default;
 	GET_MSIX_INDEX get_msix_index_for_smlio;
+
+	u8		multipath_on_hba;
+	struct list_head port_table_list;
 };
 
 #define MPT_DRV_SUPPORT_BITMAP_MEMMOVE 0x00000001
@@ -1526,6 +1607,17 @@
 u32 mpt3sas_base_get_iocstate(struct MPT3SAS_ADAPTER *ioc, int cooked);
 
 void mpt3sas_base_fault_info(struct MPT3SAS_ADAPTER *ioc , u16 fault_code);
+#define mpt3sas_print_fault_code(ioc, fault_code) \
+do { pr_err("%s fault info from func: %s\n", ioc->name, __func__); \
+	mpt3sas_base_fault_info(ioc, fault_code); } while (0)
+
+void mpt3sas_base_coredump_info(struct MPT3SAS_ADAPTER *ioc, u16 fault_code);
+#define mpt3sas_print_coredump_info(ioc, fault_code) \
+do { pr_err("%s fault info from func: %s\n", ioc->name, __func__); \
+	mpt3sas_base_coredump_info(ioc, fault_code); } while (0)
+
+int mpt3sas_base_wait_for_coredump_completion(struct MPT3SAS_ADAPTER *ioc,
+		const char *caller);
 int mpt3sas_base_sas_iounit_control(struct MPT3SAS_ADAPTER *ioc,
 	Mpi2SasIoUnitControlReply_t *mpi_reply,
 	Mpi2SasIoUnitControlRequest_t *mpi_request);
@@ -1547,6 +1639,11 @@
 
 u8 mpt3sas_base_check_cmd_timeout(struct MPT3SAS_ADAPTER *ioc,
 	u8 status, void *mpi_request, int sz);
+#define mpt3sas_check_cmd_timeout(ioc, status, mpi_request, sz, issue_reset) \
+do {	ioc_err(ioc, "In func: %s\n", __func__); \
+	issue_reset = mpt3sas_base_check_cmd_timeout(ioc, \
+	status, mpi_request, sz); } while (0)
+
 int mpt3sas_wait_for_ioc(struct MPT3SAS_ADAPTER *ioc, int wait_count);
 
 /* scsih shared API */
@@ -1555,7 +1652,8 @@
 u8 mpt3sas_scsih_event_callback(struct MPT3SAS_ADAPTER *ioc, u8 msix_index,
 	u32 reply);
 void mpt3sas_scsih_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc);
-void mpt3sas_scsih_after_reset_handler(struct MPT3SAS_ADAPTER *ioc);
+void mpt3sas_scsih_clear_outstanding_scsi_tm_commands(
+	struct MPT3SAS_ADAPTER *ioc);
 void mpt3sas_scsih_reset_done_handler(struct MPT3SAS_ADAPTER *ioc);
 
 int mpt3sas_scsih_issue_tm(struct MPT3SAS_ADAPTER *ioc, u16 handle, u64 lun,
@@ -1566,20 +1664,27 @@
 
 void mpt3sas_scsih_set_tm_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle);
 void mpt3sas_scsih_clear_tm_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle);
-void mpt3sas_expander_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address);
+void mpt3sas_expander_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
+	struct hba_port *port);
 void mpt3sas_device_remove_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address);
+	u64 sas_address, struct hba_port *port);
 u8 mpt3sas_check_for_pending_internal_cmds(struct MPT3SAS_ADAPTER *ioc,
 	u16 smid);
+struct hba_port *
+mpt3sas_get_port_by_id(struct MPT3SAS_ADAPTER *ioc, u8 port,
+	u8 bypass_dirty_port_flag);
 
 struct _sas_node *mpt3sas_scsih_expander_find_by_handle(
 	struct MPT3SAS_ADAPTER *ioc, u16 handle);
 struct _sas_node *mpt3sas_scsih_expander_find_by_sas_address(
-	struct MPT3SAS_ADAPTER *ioc, u64 sas_address);
+	struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
+	struct hba_port *port);
 struct _sas_device *mpt3sas_get_sdev_by_addr(
-	 struct MPT3SAS_ADAPTER *ioc, u64 sas_address);
+	 struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
+	 struct hba_port *port);
 struct _sas_device *__mpt3sas_get_sdev_by_addr(
-	 struct MPT3SAS_ADAPTER *ioc, u64 sas_address);
+	 struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
+	 struct hba_port *port);
 struct _sas_device *mpt3sas_get_sdev_by_handle(struct MPT3SAS_ADAPTER *ioc,
 	u16 handle);
 struct _pcie_device *mpt3sas_get_pdev_by_handle(struct MPT3SAS_ADAPTER *ioc,
@@ -1589,6 +1694,11 @@
 struct _raid_device *
 mpt3sas_raid_device_find_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle);
 void mpt3sas_scsih_change_queue_depth(struct scsi_device *sdev, int qdepth);
+struct _sas_device *
+__mpt3sas_get_sdev_by_rphy(struct MPT3SAS_ADAPTER *ioc, struct sas_rphy *rphy);
+struct virtual_phy *
+mpt3sas_get_vphy_by_phy(struct MPT3SAS_ADAPTER *ioc,
+	struct hba_port *port, u32 phy);
 
 /* config shared API */
 u8 mpt3sas_config_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
@@ -1689,7 +1799,7 @@
 u8 mpt3sas_ctl_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
 	u32 reply);
 void mpt3sas_ctl_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc);
-void mpt3sas_ctl_after_reset_handler(struct MPT3SAS_ADAPTER *ioc);
+void mpt3sas_ctl_clear_outstanding_ioctls(struct MPT3SAS_ADAPTER *ioc);
 void mpt3sas_ctl_reset_done_handler(struct MPT3SAS_ADAPTER *ioc);
 u8 mpt3sas_ctl_event_callback(struct MPT3SAS_ADAPTER *ioc,
 	u8 msix_index, u32 reply);
@@ -1706,18 +1816,26 @@
 u8 mpt3sas_transport_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
 	u32 reply);
 struct _sas_port *mpt3sas_transport_port_add(struct MPT3SAS_ADAPTER *ioc,
-	u16 handle, u64 sas_address);
+	u16 handle, u64 sas_address, struct hba_port *port);
 void mpt3sas_transport_port_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
-	u64 sas_address_parent);
+	u64 sas_address_parent, struct hba_port *port);
 int mpt3sas_transport_add_host_phy(struct MPT3SAS_ADAPTER *ioc, struct _sas_phy
 	*mpt3sas_phy, Mpi2SasPhyPage0_t phy_pg0, struct device *parent_dev);
 int mpt3sas_transport_add_expander_phy(struct MPT3SAS_ADAPTER *ioc,
 	struct _sas_phy *mpt3sas_phy, Mpi2ExpanderPage1_t expander_pg1,
 	struct device *parent_dev);
 void mpt3sas_transport_update_links(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address, u16 handle, u8 phy_number, u8 link_rate);
+	u64 sas_address, u16 handle, u8 phy_number, u8 link_rate,
+	struct hba_port *port);
 extern struct sas_function_template mpt3sas_transport_functions;
 extern struct scsi_transport_template *mpt3sas_transport_template;
+void
+mpt3sas_transport_del_phy_from_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
+	struct _sas_node *sas_node, struct _sas_phy *mpt3sas_phy);
+void
+mpt3sas_transport_add_phy_to_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
+	struct _sas_node *sas_node, struct _sas_phy *mpt3sas_phy,
+	u64 sas_address, struct hba_port *port);
 /* trigger data externs */
 void mpt3sas_send_trigger_data_event(struct MPT3SAS_ADAPTER *ioc,
 	struct SL_WH_TRIGGERS_EVENT_DATA_T *event_data);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_config.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_config.c
@@ -101,9 +101,6 @@
 	Mpi2ConfigRequest_t *mpi_request;
 	char *desc = NULL;
 
-	if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
-		return;
-
 	mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
 	switch (mpi_request->Header.PageType & MPI2_CONFIG_PAGETYPE_MASK) {
 	case MPI2_CONFIG_PAGETYPE_IO_UNIT:
@@ -269,7 +266,8 @@
 		    mpi_reply->MsgLength*4);
 	}
 	ioc->config_cmds.status &= ~MPT3_CMD_PENDING;
-	_config_display_some_debug(ioc, smid, "config_done", mpi_reply);
+	if (ioc->logging_level & MPT_DEBUG_CONFIG)
+		_config_display_some_debug(ioc, smid, "config_done", mpi_reply);
 	ioc->config_cmds.smid = USHRT_MAX;
 	complete(&ioc->config_cmds.done);
 	return 1;
@@ -305,6 +303,7 @@
 	u8 retry_count, issue_host_reset = 0;
 	struct config_request mem;
 	u32 ioc_status = UINT_MAX;
+	u8 issue_reset = 0;
 
 	mutex_lock(&ioc->config_cmds.mutex);
 	if (ioc->config_cmds.status != MPT3_CMD_NOT_USED) {
@@ -378,14 +377,18 @@
 	config_request = mpt3sas_base_get_msg_frame(ioc, smid);
 	ioc->config_cmds.smid = smid;
 	memcpy(config_request, mpi_request, sizeof(Mpi2ConfigRequest_t));
-	_config_display_some_debug(ioc, smid, "config_request", NULL);
+	if (ioc->logging_level & MPT_DEBUG_CONFIG)
+		_config_display_some_debug(ioc, smid, "config_request", NULL);
 	init_completion(&ioc->config_cmds.done);
 	ioc->put_smid_default(ioc, smid);
 	wait_for_completion_timeout(&ioc->config_cmds.done, timeout*HZ);
 	if (!(ioc->config_cmds.status & MPT3_CMD_COMPLETE)) {
-		mpt3sas_base_check_cmd_timeout(ioc,
-			ioc->config_cmds.status, mpi_request,
-			sizeof(Mpi2ConfigRequest_t)/4);
+		if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
+			_config_display_some_debug(ioc,
+			    smid, "config_request", NULL);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->config_cmds.status, mpi_request,
+		    sizeof(Mpi2ConfigRequest_t)/4, issue_reset);
 		retry_count++;
 		if (ioc->config_cmds.smid == smid)
 			mpt3sas_base_free_smid(ioc, smid);
@@ -404,8 +407,11 @@
 		/* Reply Frame Sanity Checks to workaround FW issues */
 		if ((mpi_request->Header.PageType & 0xF) !=
 		    (mpi_reply->Header.PageType & 0xF)) {
+			if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
+				_config_display_some_debug(ioc,
+				    smid, "config_request", NULL);
 			_debug_dump_mf(mpi_request, ioc->request_sz/4);
-			_debug_dump_reply(mpi_reply, ioc->request_sz/4);
+			_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
 			panic("%s: %s: Firmware BUG: mpi_reply mismatch: Requested PageType(0x%02x) Reply PageType(0x%02x)\n",
 			      ioc->name, __func__,
 			      mpi_request->Header.PageType & 0xF,
@@ -415,8 +421,11 @@
 		if (((mpi_request->Header.PageType & 0xF) ==
 		    MPI2_CONFIG_PAGETYPE_EXTENDED) &&
 		    mpi_request->ExtPageType != mpi_reply->ExtPageType) {
+			if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
+				_config_display_some_debug(ioc,
+				    smid, "config_request", NULL);
 			_debug_dump_mf(mpi_request, ioc->request_sz/4);
-			_debug_dump_reply(mpi_reply, ioc->request_sz/4);
+			_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
 			panic("%s: %s: Firmware BUG: mpi_reply mismatch: Requested ExtPageType(0x%02x) Reply ExtPageType(0x%02x)\n",
 			      ioc->name, __func__,
 			      mpi_request->ExtPageType,
@@ -439,8 +448,11 @@
 		if (p) {
 			if ((mpi_request->Header.PageType & 0xF) !=
 			    (p[3] & 0xF)) {
+				if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
+					_config_display_some_debug(ioc,
+					    smid, "config_request", NULL);
 				_debug_dump_mf(mpi_request, ioc->request_sz/4);
-				_debug_dump_reply(mpi_reply, ioc->request_sz/4);
+				_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
 				_debug_dump_config(p, min_t(u16, mem.sz,
 				    config_page_sz)/4);
 				panic("%s: %s: Firmware BUG: config page mismatch: Requested PageType(0x%02x) Reply PageType(0x%02x)\n",
@@ -452,8 +464,11 @@
 			if (((mpi_request->Header.PageType & 0xF) ==
 			    MPI2_CONFIG_PAGETYPE_EXTENDED) &&
 			    (mpi_request->ExtPageType != p[6])) {
+				if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
+					_config_display_some_debug(ioc,
+					    smid, "config_request", NULL);
 				_debug_dump_mf(mpi_request, ioc->request_sz/4);
-				_debug_dump_reply(mpi_reply, ioc->request_sz/4);
+				_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
 				_debug_dump_config(p, min_t(u16, mem.sz,
 				    config_page_sz)/4);
 				panic("%s: %s: Firmware BUG: config page mismatch: Requested ExtPageType(0x%02x) Reply ExtPageType(0x%02x)\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_ctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_ctl.c
@@ -180,6 +180,12 @@
 	case MPI2_FUNCTION_SMP_PASSTHROUGH:
 		desc = "smp_passthrough";
 		break;
+	case MPI2_FUNCTION_TOOLBOX:
+		desc = "toolbox";
+		break;
+	case MPI2_FUNCTION_NVME_ENCAPSULATED:
+		desc = "nvme_encapsulated";
+		break;
 	}
 
 	if (!desc)
@@ -466,19 +472,27 @@
 		if ((ioc->diag_buffer_status[i] &
 		     MPT3_DIAG_BUFFER_IS_RELEASED))
 			continue;
+
+		/*
+		 * add a log message to indicate the release
+		 */
+		ioc_info(ioc,
+		    "%s: Releasing the trace buffer due to adapter reset.",
+		    __func__);
 		mpt3sas_send_diag_release(ioc, i, &issue_reset);
 	}
 }
 
 /**
- * mpt3sas_ctl_reset_handler - reset callback handler (for ctl)
+ * mpt3sas_ctl_reset_handler - clears outstanding ioctl cmd.
  * @ioc: per adapter object
  *
  * The handler for doing any required cleanup or initialization.
  */
-void mpt3sas_ctl_after_reset_handler(struct MPT3SAS_ADAPTER *ioc)
+void mpt3sas_ctl_clear_outstanding_ioctls(struct MPT3SAS_ADAPTER *ioc)
 {
-	dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_AFTER_RESET\n", __func__));
+	dtmprintk(ioc,
+	    ioc_info(ioc, "%s: clear outstanding ioctl cmd\n", __func__));
 	if (ioc->ctl_cmds.status & MPT3_CMD_PENDING) {
 		ioc->ctl_cmds.status |= MPT3_CMD_RESET;
 		mpt3sas_base_free_smid(ioc, ioc->ctl_cmds.smid);
@@ -650,7 +664,7 @@
 	Mpi26NVMeEncapsulatedRequest_t *nvme_encap_request = NULL;
 	struct _pcie_device *pcie_device = NULL;
 	u16 smid;
-	u8 timeout;
+	unsigned long timeout;
 	u8 issue_reset;
 	u32 sz, sz_arg;
 	void *psge;
@@ -778,6 +792,18 @@
 	case MPI2_FUNCTION_NVME_ENCAPSULATED:
 	{
 		nvme_encap_request = (Mpi26NVMeEncapsulatedRequest_t *)request;
+		if (!ioc->pcie_sg_lookup) {
+			dtmprintk(ioc, ioc_info(ioc,
+			    "HBA doesn't support NVMe. Rejecting NVMe Encapsulated request.\n"
+			    ));
+
+			if (ioc->logging_level & MPT_DEBUG_TM)
+				_debug_dump_mf(nvme_encap_request,
+				    ioc->request_sz/4);
+			mpt3sas_base_free_smid(ioc, smid);
+			ret = -EINVAL;
+			goto out;
+		}
 		/*
 		 * Get the Physical Address of the sense buffer.
 		 * Use Error Response buffer address field to hold the sense
@@ -876,8 +902,10 @@
 		    (Mpi2SmpPassthroughRequest_t *)mpi_request;
 		u8 *data;
 
-		/* ioc determines which port to use */
-		smp_request->PhysicalPort = 0xFF;
+		if (!ioc->multipath_on_hba) {
+			/* ioc determines which port to use */
+			smp_request->PhysicalPort = 0xFF;
+		}
 		if (smp_request->PassthroughFlags &
 		    MPI2_SMP_PT_REQ_PT_FLAGS_IMMEDIATE)
 			data = (u8 *)&smp_request->SGL;
@@ -1002,10 +1030,9 @@
 		ioc->ignore_loginfos = 0;
 	}
 	if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
-		issue_reset =
-			mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->ctl_cmds.status, mpi_request,
-				karg.data_sge_offset);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->ctl_cmds.status, mpi_request,
+		    karg.data_sge_offset, issue_reset);
 		goto issue_host_reset;
 	}
 
@@ -1306,7 +1333,8 @@
 				 __func__));
 
 	retval = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
-	ioc_info(ioc, "host reset: %s\n", ((!retval) ? "SUCCESS" : "FAILED"));
+	ioc_info(ioc,
+	    "Ioctl: host reset: %s\n", ((!retval) ? "SUCCESS" : "FAILED"));
 	return 0;
 }
 
@@ -1484,6 +1512,26 @@
 	return rc;
 }
 
+/**
+ * _ctl_diag_get_bufftype - return diag buffer type
+ *              either TRACE, SNAPSHOT, or EXTENDED
+ * @ioc: per adapter object
+ * @unique_id: specifies the unique_id for the buffer
+ *
+ * returns MPT3_DIAG_UID_NOT_FOUND if the id not found
+ */
+static u8
+_ctl_diag_get_bufftype(struct MPT3SAS_ADAPTER *ioc, u32 unique_id)
+{
+	u8  index;
+
+	for (index = 0; index < MPI2_DIAG_BUF_TYPE_COUNT; index++) {
+		if (ioc->unique_id[index] == unique_id)
+			return index;
+	}
+
+	return MPT3_DIAG_UID_NOT_FOUND;
+}
 
 /**
  * _ctl_diag_register_2 - wrapper for registering diag buffer support
@@ -1531,11 +1579,88 @@
 		return -EPERM;
 	}
 
+	if (diag_register->unique_id == 0) {
+		ioc_err(ioc,
+		    "%s: Invalid UID(0x%08x), buffer_type(0x%02x)\n", __func__,
+		    diag_register->unique_id, buffer_type);
+		return -EINVAL;
+	}
+
+	if ((ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_APP_OWNED) &&
+	    !(ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_RELEASED)) {
+		ioc_err(ioc,
+		    "%s: buffer_type(0x%02x) is already registered by application with UID(0x%08x)\n",
+		    __func__, buffer_type, ioc->unique_id[buffer_type]);
+		return -EINVAL;
+	}
+
 	if (ioc->diag_buffer_status[buffer_type] &
 	    MPT3_DIAG_BUFFER_IS_REGISTERED) {
-		ioc_err(ioc, "%s: already has a registered buffer for buffer_type(0x%02x)\n",
-			__func__, buffer_type);
-		return -EINVAL;
+		/*
+		 * If driver posts buffer initially, then an application wants
+		 * to Register that buffer (own it) without Releasing first,
+		 * the application Register command MUST have the same buffer
+		 * type and size in the Register command (obtained from the
+		 * Query command). Otherwise that Register command will be
+		 * failed. If the application has released the buffer but wants
+		 * to re-register it, it should be allowed as long as the
+		 * Unique-Id/Size match.
+		 */
+
+		if (ioc->unique_id[buffer_type] == MPT3DIAGBUFFUNIQUEID &&
+		    ioc->diag_buffer_sz[buffer_type] ==
+		    diag_register->requested_buffer_size) {
+
+			if (!(ioc->diag_buffer_status[buffer_type] &
+			     MPT3_DIAG_BUFFER_IS_RELEASED)) {
+				dctlprintk(ioc, ioc_info(ioc,
+				    "%s: diag_buffer (%d) ownership changed. old-ID(0x%08x), new-ID(0x%08x)\n",
+				    __func__, buffer_type,
+				    ioc->unique_id[buffer_type],
+				    diag_register->unique_id));
+
+				/*
+				 * Application wants to own the buffer with
+				 * the same size.
+				 */
+				ioc->unique_id[buffer_type] =
+				    diag_register->unique_id;
+				rc = 0; /* success */
+				goto out;
+			}
+		} else if (ioc->unique_id[buffer_type] !=
+		    MPT3DIAGBUFFUNIQUEID) {
+			if (ioc->unique_id[buffer_type] !=
+			    diag_register->unique_id ||
+			    ioc->diag_buffer_sz[buffer_type] !=
+			    diag_register->requested_buffer_size ||
+			    !(ioc->diag_buffer_status[buffer_type] &
+			    MPT3_DIAG_BUFFER_IS_RELEASED)) {
+				ioc_err(ioc,
+				    "%s: already has a registered buffer for buffer_type(0x%02x)\n",
+				    __func__, buffer_type);
+				return -EINVAL;
+			}
+		} else {
+			ioc_err(ioc, "%s: already has a registered buffer for buffer_type(0x%02x)\n",
+			    __func__, buffer_type);
+			return -EINVAL;
+		}
+	} else if (ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED) {
+
+		if (ioc->unique_id[buffer_type] != MPT3DIAGBUFFUNIQUEID ||
+		    ioc->diag_buffer_sz[buffer_type] !=
+		    diag_register->requested_buffer_size) {
+
+			ioc_err(ioc,
+			    "%s: already a buffer is allocated for buffer_type(0x%02x) of size %d bytes, so please try registering again with same size\n",
+			     __func__, buffer_type,
+			    ioc->diag_buffer_sz[buffer_type]);
+			return -EINVAL;
+		}
 	}
 
 	if (diag_register->requested_buffer_size % 4)  {
@@ -1560,7 +1685,8 @@
 	request_data = ioc->diag_buffer[buffer_type];
 	request_data_sz = diag_register->requested_buffer_size;
 	ioc->unique_id[buffer_type] = diag_register->unique_id;
-	ioc->diag_buffer_status[buffer_type] = 0;
+	ioc->diag_buffer_status[buffer_type] &=
+	    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED;
 	memcpy(ioc->product_specific[buffer_type],
 	    diag_register->product_specific, MPT3_PRODUCT_SPECIFIC_DWORDS);
 	ioc->diagnostic_flags[buffer_type] = diag_register->diagnostic_flags;
@@ -1584,7 +1710,8 @@
 			ioc_err(ioc, "%s: failed allocating memory for diag buffers, requested size(%d)\n",
 				__func__, request_data_sz);
 			mpt3sas_base_free_smid(ioc, smid);
-			return -ENOMEM;
+			rc = -ENOMEM;
+			goto out;
 		}
 		ioc->diag_buffer[buffer_type] = request_data;
 		ioc->diag_buffer_sz[buffer_type] = request_data_sz;
@@ -1615,10 +1742,9 @@
 	    MPT3_IOCTL_DEFAULT_TIMEOUT*HZ);
 
 	if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
-		issue_reset =
-			mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->ctl_cmds.status, mpi_request,
-				sizeof(Mpi2DiagBufferPostRequest_t)/4);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->ctl_cmds.status, mpi_request,
+		    sizeof(Mpi2DiagBufferPostRequest_t)/4, issue_reset);
 		goto issue_host_reset;
 	}
 
@@ -1649,9 +1775,12 @@
 
  out:
 
-	if (rc && request_data)
+	if (rc && request_data) {
 		dma_free_coherent(&ioc->pdev->dev, request_data_sz,
 		    request_data, request_data_dma);
+		ioc->diag_buffer_status[buffer_type] &=
+		    ~MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED;
+	}
 
 	ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
 	return rc;
@@ -1669,6 +1798,10 @@
 mpt3sas_enable_diag_buffer(struct MPT3SAS_ADAPTER *ioc, u8 bits_to_register)
 {
 	struct mpt3_diag_register diag_register;
+	u32 ret_val;
+	u32 trace_buff_size = ioc->manu_pg11.HostTraceBufferMaxSizeKB<<10;
+	u32 min_trace_buff_size = 0;
+	u32 decr_trace_buff_size = 0;
 
 	memset(&diag_register, 0, sizeof(struct mpt3_diag_register));
 
@@ -1677,10 +1810,68 @@
 		ioc->diag_trigger_master.MasterData =
 		    (MASTER_TRIGGER_FW_FAULT + MASTER_TRIGGER_ADAPTER_RESET);
 		diag_register.buffer_type = MPI2_DIAG_BUF_TYPE_TRACE;
-		/* register for 2MB buffers  */
-		diag_register.requested_buffer_size = 2 * (1024 * 1024);
-		diag_register.unique_id = 0x7075900;
-		_ctl_diag_register_2(ioc,  &diag_register);
+		diag_register.unique_id =
+		    (ioc->hba_mpi_version_belonged == MPI2_VERSION) ?
+		    (MPT2DIAGBUFFUNIQUEID):(MPT3DIAGBUFFUNIQUEID);
+
+		if (trace_buff_size != 0) {
+			diag_register.requested_buffer_size = trace_buff_size;
+			min_trace_buff_size =
+			    ioc->manu_pg11.HostTraceBufferMinSizeKB<<10;
+			decr_trace_buff_size =
+			    ioc->manu_pg11.HostTraceBufferDecrementSizeKB<<10;
+
+			if (min_trace_buff_size > trace_buff_size) {
+				/* The buff size is not set correctly */
+				ioc_err(ioc,
+				    "Min Trace Buff size (%d KB) greater than Max Trace Buff size (%d KB)\n",
+				     min_trace_buff_size>>10,
+				     trace_buff_size>>10);
+				ioc_err(ioc,
+				    "Using zero Min Trace Buff Size\n");
+				min_trace_buff_size = 0;
+			}
+
+			if (decr_trace_buff_size == 0) {
+				/*
+				 * retry the min size if decrement
+				 * is not available.
+				 */
+				decr_trace_buff_size =
+				    trace_buff_size - min_trace_buff_size;
+			}
+		} else {
+			/* register for 2MB buffers  */
+			diag_register.requested_buffer_size = 2 * (1024 * 1024);
+		}
+
+		do {
+			ret_val = _ctl_diag_register_2(ioc,  &diag_register);
+
+			if (ret_val == -ENOMEM && min_trace_buff_size &&
+			    (trace_buff_size - decr_trace_buff_size) >=
+			    min_trace_buff_size) {
+				/* adjust the buffer size */
+				trace_buff_size -= decr_trace_buff_size;
+				diag_register.requested_buffer_size =
+				    trace_buff_size;
+			} else
+				break;
+		} while (true);
+
+		if (ret_val == -ENOMEM)
+			ioc_err(ioc,
+			    "Cannot allocate trace buffer memory. Last memory tried = %d KB\n",
+			    diag_register.requested_buffer_size>>10);
+		else if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE]
+		    & MPT3_DIAG_BUFFER_IS_REGISTERED) {
+			ioc_err(ioc, "Trace buffer memory %d KB allocated\n",
+			    diag_register.requested_buffer_size>>10);
+			if (ioc->hba_mpi_version_belonged != MPI2_VERSION)
+				ioc->diag_buffer_status[
+				    MPI2_DIAG_BUF_TYPE_TRACE] |=
+				    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED;
+		}
 	}
 
 	if (bits_to_register & 2) {
@@ -1723,6 +1914,12 @@
 	}
 
 	rc = _ctl_diag_register_2(ioc, &karg);
+
+	if (!rc && (ioc->diag_buffer_status[karg.buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_REGISTERED))
+		ioc->diag_buffer_status[karg.buffer_type] |=
+		    MPT3_DIAG_BUFFER_IS_APP_OWNED;
+
 	return rc;
 }
 
@@ -1752,7 +1949,13 @@
 	dctlprintk(ioc, ioc_info(ioc, "%s\n",
 				 __func__));
 
-	buffer_type = karg.unique_id & 0x000000ff;
+	buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
+	if (buffer_type == MPT3_DIAG_UID_NOT_FOUND) {
+		ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
+		    __func__, karg.unique_id);
+		return -EINVAL;
+	}
+
 	if (!_ctl_diag_capability(ioc, buffer_type)) {
 		ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
 			__func__, buffer_type);
@@ -1785,12 +1988,21 @@
 		return -ENOMEM;
 	}
 
-	request_data_sz = ioc->diag_buffer_sz[buffer_type];
-	request_data_dma = ioc->diag_buffer_dma[buffer_type];
-	dma_free_coherent(&ioc->pdev->dev, request_data_sz,
-			request_data, request_data_dma);
-	ioc->diag_buffer[buffer_type] = NULL;
-	ioc->diag_buffer_status[buffer_type] = 0;
+	if (ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED) {
+		ioc->unique_id[buffer_type] = MPT3DIAGBUFFUNIQUEID;
+		ioc->diag_buffer_status[buffer_type] &=
+		    ~MPT3_DIAG_BUFFER_IS_APP_OWNED;
+		ioc->diag_buffer_status[buffer_type] &=
+		    ~MPT3_DIAG_BUFFER_IS_REGISTERED;
+	} else {
+		request_data_sz = ioc->diag_buffer_sz[buffer_type];
+		request_data_dma = ioc->diag_buffer_dma[buffer_type];
+		dma_free_coherent(&ioc->pdev->dev, request_data_sz,
+				request_data, request_data_dma);
+		ioc->diag_buffer[buffer_type] = NULL;
+		ioc->diag_buffer_status[buffer_type] = 0;
+	}
 	return 0;
 }
 
@@ -1829,14 +2041,17 @@
 		return -EPERM;
 	}
 
-	if ((ioc->diag_buffer_status[buffer_type] &
-	    MPT3_DIAG_BUFFER_IS_REGISTERED) == 0) {
-		ioc_err(ioc, "%s: buffer_type(0x%02x) is not registered\n",
-			__func__, buffer_type);
-		return -EINVAL;
+	if (!(ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED)) {
+		if ((ioc->diag_buffer_status[buffer_type] &
+		    MPT3_DIAG_BUFFER_IS_REGISTERED) == 0) {
+			ioc_err(ioc, "%s: buffer_type(0x%02x) is not registered\n",
+				__func__, buffer_type);
+			return -EINVAL;
+		}
 	}
 
-	if (karg.unique_id & 0xffffff00) {
+	if (karg.unique_id) {
 		if (karg.unique_id != ioc->unique_id[buffer_type]) {
 			ioc_err(ioc, "%s: unique_id(0x%08x) is not registered\n",
 				__func__, karg.unique_id);
@@ -1851,13 +2066,21 @@
 		return -ENOMEM;
 	}
 
-	if (ioc->diag_buffer_status[buffer_type] & MPT3_DIAG_BUFFER_IS_RELEASED)
-		karg.application_flags = (MPT3_APP_FLAGS_APP_OWNED |
-		    MPT3_APP_FLAGS_BUFFER_VALID);
-	else
-		karg.application_flags = (MPT3_APP_FLAGS_APP_OWNED |
-		    MPT3_APP_FLAGS_BUFFER_VALID |
-		    MPT3_APP_FLAGS_FW_BUFFER_ACCESS);
+	if ((ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_REGISTERED))
+		karg.application_flags |= MPT3_APP_FLAGS_BUFFER_VALID;
+
+	if (!(ioc->diag_buffer_status[buffer_type] &
+	     MPT3_DIAG_BUFFER_IS_RELEASED))
+		karg.application_flags |= MPT3_APP_FLAGS_FW_BUFFER_ACCESS;
+
+	if (!(ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED))
+		karg.application_flags |= MPT3_APP_FLAGS_DYNAMIC_BUFFER_ALLOC;
+
+	if ((ioc->diag_buffer_status[buffer_type] &
+	    MPT3_DIAG_BUFFER_IS_APP_OWNED))
+		karg.application_flags |= MPT3_APP_FLAGS_APP_OWNED;
 
 	for (i = 0; i < MPT3_PRODUCT_SPECIFIC_DWORDS; i++)
 		karg.product_specific[i] =
@@ -1893,6 +2116,7 @@
 	u16 ioc_status;
 	u32 ioc_state;
 	int rc;
+	u8 reset_needed = 0;
 
 	dctlprintk(ioc, ioc_info(ioc, "%s\n",
 				 __func__));
@@ -1900,6 +2124,7 @@
 	rc = 0;
 	*issue_reset = 0;
 
+
 	ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
 	if (ioc_state != MPI2_IOC_STATE_OPERATIONAL) {
 		if (ioc->diag_buffer_status[buffer_type] &
@@ -1942,9 +2167,10 @@
 	    MPT3_IOCTL_DEFAULT_TIMEOUT*HZ);
 
 	if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
-		*issue_reset = mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->ctl_cmds.status, mpi_request,
-				sizeof(Mpi2DiagReleaseRequest_t)/4);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->ctl_cmds.status, mpi_request,
+		    sizeof(Mpi2DiagReleaseRequest_t)/4, reset_needed);
+		 *issue_reset = reset_needed;
 		rc = -EFAULT;
 		goto out;
 	}
@@ -2002,7 +2228,13 @@
 	dctlprintk(ioc, ioc_info(ioc, "%s\n",
 				 __func__));
 
-	buffer_type = karg.unique_id & 0x000000ff;
+	buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
+	if (buffer_type == MPT3_DIAG_UID_NOT_FOUND) {
+		ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
+		    __func__, karg.unique_id);
+		return -EINVAL;
+	}
+
 	if (!_ctl_diag_capability(ioc, buffer_type)) {
 		ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
 			__func__, buffer_type);
@@ -2026,7 +2258,7 @@
 	    MPT3_DIAG_BUFFER_IS_RELEASED) {
 		ioc_err(ioc, "%s: buffer_type(0x%02x) is already released\n",
 			__func__, buffer_type);
-		return 0;
+		return -EINVAL;
 	}
 
 	request_data = ioc->diag_buffer[buffer_type];
@@ -2086,7 +2318,13 @@
 	dctlprintk(ioc, ioc_info(ioc, "%s\n",
 				 __func__));
 
-	buffer_type = karg.unique_id & 0x000000ff;
+	buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
+	if (buffer_type == MPT3_DIAG_UID_NOT_FOUND) {
+		ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
+		    __func__, karg.unique_id);
+		return -EINVAL;
+	}
+
 	if (!_ctl_diag_capability(ioc, buffer_type)) {
 		ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
 			__func__, buffer_type);
@@ -2190,10 +2428,9 @@
 	    MPT3_IOCTL_DEFAULT_TIMEOUT*HZ);
 
 	if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
-		issue_reset =
-			mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->ctl_cmds.status, mpi_request,
-				sizeof(Mpi2DiagBufferPostRequest_t)/4);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->ctl_cmds.status, mpi_request,
+		    sizeof(Mpi2DiagBufferPostRequest_t)/4, issue_reset);
 		goto issue_host_reset;
 	}
 
@@ -2210,6 +2447,8 @@
 	if (ioc_status == MPI2_IOCSTATUS_SUCCESS) {
 		ioc->diag_buffer_status[buffer_type] |=
 		    MPT3_DIAG_BUFFER_IS_REGISTERED;
+		ioc->diag_buffer_status[buffer_type] &=
+		    ~MPT3_DIAG_BUFFER_IS_RELEASED;
 		dctlprintk(ioc, ioc_info(ioc, "%s: success\n", __func__));
 	} else {
 		ioc_info(ioc, "%s: ioc_status(0x%04x) log_info(0x%08x)\n",
@@ -2908,19 +3147,18 @@
 	if (!ioc->is_warpdrive) {
 		ioc_err(ioc, "%s: BRM attribute is only for warpdrive\n",
 			__func__);
-		goto out;
+		return 0;
 	}
 	/* pci_access_mutex lock acquired by sysfs show path */
 	mutex_lock(&ioc->pci_access_mutex);
-	if (ioc->pci_error_recovery || ioc->remove_host) {
-		mutex_unlock(&ioc->pci_access_mutex);
-		return 0;
-	}
+	if (ioc->pci_error_recovery || ioc->remove_host)
+		goto out;
 
 	/* allocate upto GPIOVal 36 entries */
 	sz = offsetof(Mpi2IOUnitPage3_t, GPIOVal) + (sizeof(u16) * 36);
 	io_unit_pg3 = kzalloc(sz, GFP_KERNEL);
 	if (!io_unit_pg3) {
+		rc = -ENOMEM;
 		ioc_err(ioc, "%s: failed allocating memory for iounit_pg3: (%d) bytes\n",
 			__func__, sz);
 		goto out;
@@ -2930,6 +3168,7 @@
 	    0) {
 		ioc_err(ioc, "%s: failed reading iounit_pg3\n",
 			__func__);
+		rc = -EINVAL;
 		goto out;
 	}
 
@@ -2937,12 +3176,14 @@
 	if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
 		ioc_err(ioc, "%s: iounit_pg3 failed with ioc_status(0x%04x)\n",
 			__func__, ioc_status);
+		rc = -EINVAL;
 		goto out;
 	}
 
 	if (io_unit_pg3->GPIOCount < 25) {
 		ioc_err(ioc, "%s: iounit_pg3->GPIOCount less than 25 entries, detected (%d) entries\n",
 			__func__, io_unit_pg3->GPIOCount);
+		rc = -EINVAL;
 		goto out;
 	}
 
@@ -3130,10 +3371,49 @@
 		memset(&diag_register, 0, sizeof(struct mpt3_diag_register));
 		ioc_info(ioc, "posting host trace buffers\n");
 		diag_register.buffer_type = MPI2_DIAG_BUF_TYPE_TRACE;
-		diag_register.requested_buffer_size = (1024 * 1024);
-		diag_register.unique_id = 0x7075900;
+
+		if (ioc->manu_pg11.HostTraceBufferMaxSizeKB != 0 &&
+		    ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE] != 0) {
+			/* post the same buffer allocated previously */
+			diag_register.requested_buffer_size =
+			    ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE];
+		} else {
+			/*
+			 * Free the diag buffer memory which was previously
+			 * allocated by an application.
+			 */
+			if ((ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE] != 0)
+			    &&
+			    (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
+			    MPT3_DIAG_BUFFER_IS_APP_OWNED)) {
+				pci_free_consistent(ioc->pdev,
+				    ioc->diag_buffer_sz[
+				    MPI2_DIAG_BUF_TYPE_TRACE],
+				    ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE],
+				    ioc->diag_buffer_dma[
+				    MPI2_DIAG_BUF_TYPE_TRACE]);
+				ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE] =
+				    NULL;
+			}
+
+			diag_register.requested_buffer_size = (1024 * 1024);
+		}
+
+		diag_register.unique_id =
+		    (ioc->hba_mpi_version_belonged == MPI2_VERSION) ?
+		    (MPT2DIAGBUFFUNIQUEID):(MPT3DIAGBUFFUNIQUEID);
 		ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] = 0;
 		_ctl_diag_register_2(ioc,  &diag_register);
+		if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
+		    MPT3_DIAG_BUFFER_IS_REGISTERED) {
+			ioc_info(ioc,
+			    "Trace buffer %d KB allocated through sysfs\n",
+			    diag_register.requested_buffer_size>>10);
+			if (ioc->hba_mpi_version_belonged != MPI2_VERSION)
+				ioc->diag_buffer_status[
+				    MPI2_DIAG_BUF_TYPE_TRACE] |=
+				    MPT3_DIAG_BUFFER_IS_DRIVER_ALLOCATED;
+		}
 	} else if (!strcmp(str, "release")) {
 		/* exit out if host buffers are already released */
 		if (!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE])
@@ -3702,12 +3982,6 @@
 		for (i = 0; i < MPI2_DIAG_BUF_TYPE_COUNT; i++) {
 			if (!ioc->diag_buffer[i])
 				continue;
-			if (!(ioc->diag_buffer_status[i] &
-			    MPT3_DIAG_BUFFER_IS_REGISTERED))
-				continue;
-			if ((ioc->diag_buffer_status[i] &
-			    MPT3_DIAG_BUFFER_IS_RELEASED))
-				continue;
 			dma_free_coherent(&ioc->pdev->dev,
 					  ioc->diag_buffer_sz[i],
 					  ioc->diag_buffer[i],
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_ctl.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_ctl.h
@@ -95,6 +95,14 @@
 #define MPT3DIAGREADBUFFER _IOWR(MPT3_MAGIC_NUMBER, 30, \
 	struct mpt3_diag_read_buffer)
 
+/* Trace Buffer default UniqueId */
+#define MPT2DIAGBUFFUNIQUEID (0x07075900)
+#define MPT3DIAGBUFFUNIQUEID (0x4252434D)
+
+/* UID not found */
+#define MPT3_DIAG_UID_NOT_FOUND (0xFF)
+
+
 /**
  * struct mpt3_ioctl_header - main header structure
  * @ioc_number -  IOC unit number
@@ -310,6 +318,7 @@
 #define MPT3_APP_FLAGS_APP_OWNED	(0x0001)
 #define MPT3_APP_FLAGS_BUFFER_VALID	(0x0002)
 #define MPT3_APP_FLAGS_FW_BUFFER_ACCESS	(0x0004)
+#define MPT3_APP_FLAGS_DYNAMIC_BUFFER_ALLOC (0x0008)
 
 /* flags for mpt3_diag_read_buffer */
 #define MPT3_FLAGS_REREGISTER		(0x0001)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -159,6 +159,15 @@
 MODULE_PARM_DESC(enable_sdev_max_qd,
 	"Enable sdev max qd as can_queue, def=disabled(0)");
 
+static int multipath_on_hba = -1;
+module_param(multipath_on_hba, int, 0);
+MODULE_PARM_DESC(multipath_on_hba,
+	"Multipath support to add same target device\n\t\t"
+	"as many times as it is visible to HBA from various paths\n\t\t"
+	"(by default:\n\t\t"
+	"\t SAS 2.0 & SAS 3.0 HBA - This will be disabled,\n\t\t"
+	"\t SAS 3.5 HBA - This will be enabled)");
+
 /* raid transport support */
 static struct raid_template *mpt3sas_raid_template;
 static struct raid_template *mpt2sas_raid_template;
@@ -357,6 +366,87 @@
 }
 
 /**
+ * mpt3sas_get_port_by_id - get hba port entry corresponding to provided
+ *			  port number from port list
+ * @ioc: per adapter object
+ * @port_id: port number
+ * @bypass_dirty_port_flag: when set look the matching hba port entry even
+ *			if hba port entry is marked as dirty.
+ *
+ * Search for hba port entry corresponding to provided port number,
+ * if available return port object otherwise return NULL.
+ */
+struct hba_port *
+mpt3sas_get_port_by_id(struct MPT3SAS_ADAPTER *ioc,
+	u8 port_id, u8 bypass_dirty_port_flag)
+{
+	struct hba_port *port, *port_next;
+
+	/*
+	 * When multipath_on_hba is disabled then
+	 * search the hba_port entry using default
+	 * port id i.e. 255
+	 */
+	if (!ioc->multipath_on_hba)
+		port_id = MULTIPATH_DISABLED_PORT_ID;
+
+	list_for_each_entry_safe(port, port_next,
+	    &ioc->port_table_list, list) {
+		if (port->port_id != port_id)
+			continue;
+		if (bypass_dirty_port_flag)
+			return port;
+		if (port->flags & HBA_PORT_FLAG_DIRTY_PORT)
+			continue;
+		return port;
+	}
+
+	/*
+	 * Allocate hba_port object for default port id (i.e. 255)
+	 * when multipath_on_hba is disabled for the HBA.
+	 * And add this object to port_table_list.
+	 */
+	if (!ioc->multipath_on_hba) {
+		port = kzalloc(sizeof(struct hba_port), GFP_KERNEL);
+		if (!port)
+			return NULL;
+
+		port->port_id = port_id;
+		ioc_info(ioc,
+		   "hba_port entry: %p, port: %d is added to hba_port list\n",
+		   port, port->port_id);
+		list_add_tail(&port->list,
+		    &ioc->port_table_list);
+		return port;
+	}
+	return NULL;
+}
+
+/**
+ * mpt3sas_get_vphy_by_phy - get virtual_phy object corresponding to phy number
+ * @ioc: per adapter object
+ * @port: hba_port object
+ * @phy: phy number
+ *
+ * Return virtual_phy object corresponding to phy number.
+ */
+struct virtual_phy *
+mpt3sas_get_vphy_by_phy(struct MPT3SAS_ADAPTER *ioc,
+	struct hba_port *port, u32 phy)
+{
+	struct virtual_phy *vphy, *vphy_next;
+
+	if (!port->vphys_mask)
+		return NULL;
+
+	list_for_each_entry_safe(vphy, vphy_next, &port->vphys_list, list) {
+		if (vphy->phy_mask & (1 << phy))
+			return vphy;
+	}
+	return NULL;
+}
+
+/**
  * _scsih_is_boot_device - search for matching boot device.
  * @sas_address: sas address
  * @device_name: device name specified in INDENTIFY fram
@@ -614,48 +704,105 @@
 	return ret;
 }
 
+
+/**
+ * __mpt3sas_get_sdev_by_rphy - sas device search
+ * @ioc: per adapter object
+ * @rphy: sas_rphy pointer
+ *
+ * Context: This function will acquire ioc->sas_device_lock and will release
+ * before returning the sas_device object.
+ *
+ * This searches for sas_device from rphy object
+ * then return sas_device object.
+ */
 struct _sas_device *
-__mpt3sas_get_sdev_by_addr(struct MPT3SAS_ADAPTER *ioc,
-					u64 sas_address)
+__mpt3sas_get_sdev_by_rphy(struct MPT3SAS_ADAPTER *ioc,
+	struct sas_rphy *rphy)
 {
 	struct _sas_device *sas_device;
 
 	assert_spin_locked(&ioc->sas_device_lock);
 
-	list_for_each_entry(sas_device, &ioc->sas_device_list, list)
-		if (sas_device->sas_address == sas_address)
-			goto found_device;
+	list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
+		if (sas_device->rphy != rphy)
+			continue;
+		sas_device_get(sas_device);
+		return sas_device;
+	}
 
-	list_for_each_entry(sas_device, &ioc->sas_device_init_list, list)
-		if (sas_device->sas_address == sas_address)
-			goto found_device;
+	sas_device = NULL;
+	list_for_each_entry(sas_device, &ioc->sas_device_init_list, list) {
+		if (sas_device->rphy != rphy)
+			continue;
+		sas_device_get(sas_device);
+		return sas_device;
+	}
 
 	return NULL;
+}
 
-found_device:
-	sas_device_get(sas_device);
-	return sas_device;
+/**
+ * mpt3sas_get_sdev_by_addr - get _sas_device object corresponding to provided
+ *				sas address from sas_device_list list
+ * @ioc: per adapter object
+ * @port: port number
+ *
+ * Search for _sas_device object corresponding to provided sas address,
+ * if available return _sas_device object address otherwise return NULL.
+ */
+struct _sas_device *
+__mpt3sas_get_sdev_by_addr(struct MPT3SAS_ADAPTER *ioc,
+	u64 sas_address, struct hba_port *port)
+{
+	struct _sas_device *sas_device;
+
+	if (!port)
+		return NULL;
+
+	assert_spin_locked(&ioc->sas_device_lock);
+
+	list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
+		if (sas_device->sas_address != sas_address)
+			continue;
+		if (sas_device->port != port)
+			continue;
+		sas_device_get(sas_device);
+		return sas_device;
+	}
+
+	list_for_each_entry(sas_device, &ioc->sas_device_init_list, list) {
+		if (sas_device->sas_address != sas_address)
+			continue;
+		if (sas_device->port != port)
+			continue;
+		sas_device_get(sas_device);
+		return sas_device;
+	}
+
+	return NULL;
 }
 
 /**
  * mpt3sas_get_sdev_by_addr - sas device search
  * @ioc: per adapter object
  * @sas_address: sas address
+ * @port: hba port entry
  * Context: Calling function should acquire ioc->sas_device_lock
  *
- * This searches for sas_device based on sas_address, then return sas_device
- * object.
+ * This searches for sas_device based on sas_address & port number,
+ * then return sas_device object.
  */
 struct _sas_device *
 mpt3sas_get_sdev_by_addr(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *port)
 {
 	struct _sas_device *sas_device;
 	unsigned long flags;
 
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
 	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-			sas_address);
+	    sas_address, port);
 	spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
 
 	return sas_device;
@@ -824,13 +971,17 @@
 }
 
 /**
- * mpt3sas_device_remove_by_sas_address - removing device object by sas address
+ * mpt3sas_device_remove_by_sas_address - removing device object by
+ *					sas address & port number
  * @ioc: per adapter object
  * @sas_address: device sas_address
+ * @port: hba port entry
+ *
+ * Return nothing.
  */
 void
 mpt3sas_device_remove_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *port)
 {
 	struct _sas_device *sas_device;
 	unsigned long flags;
@@ -839,7 +990,7 @@
 		return;
 
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
-	sas_device = __mpt3sas_get_sdev_by_addr(ioc, sas_address);
+	sas_device = __mpt3sas_get_sdev_by_addr(ioc, sas_address, port);
 	if (sas_device) {
 		list_del_init(&sas_device->list);
 		sas_device_put(sas_device);
@@ -884,7 +1035,7 @@
 	}
 
 	if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
-	     sas_device->sas_address_parent)) {
+	     sas_device->sas_address_parent, sas_device->port)) {
 		_scsih_sas_device_remove(ioc, sas_device);
 	} else if (!sas_device->starget) {
 		/*
@@ -895,7 +1046,8 @@
 		if (!ioc->is_driver_loading) {
 			mpt3sas_transport_port_remove(ioc,
 			    sas_device->sas_address,
-			    sas_device->sas_address_parent);
+			    sas_device->sas_address_parent,
+			    sas_device->port);
 			_scsih_sas_device_remove(ioc, sas_device);
 		}
 	} else
@@ -1050,6 +1202,34 @@
 }
 
 /**
+ * _scsih_set_nvme_max_shutdown_latency - Update max_shutdown_latency.
+ * @ioc: per adapter object
+ * Context: This function will acquire ioc->pcie_device_lock
+ *
+ * Update ioc->max_shutdown_latency to that NVMe drives RTD3 Entry Latency
+ * which has reported maximum among all available NVMe drives.
+ * Minimum max_shutdown_latency will be six seconds.
+ */
+static void
+_scsih_set_nvme_max_shutdown_latency(struct MPT3SAS_ADAPTER *ioc)
+{
+	struct _pcie_device *pcie_device;
+	unsigned long flags;
+	u16 shutdown_latency = IO_UNIT_CONTROL_SHUTDOWN_TIMEOUT;
+
+	spin_lock_irqsave(&ioc->pcie_device_lock, flags);
+	list_for_each_entry(pcie_device, &ioc->pcie_device_list, list) {
+		if (pcie_device->shutdown_latency) {
+			if (shutdown_latency < pcie_device->shutdown_latency)
+				shutdown_latency =
+					pcie_device->shutdown_latency;
+		}
+	}
+	ioc->max_shutdown_latency = shutdown_latency;
+	spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
+}
+
+/**
  * _scsih_pcie_device_remove - remove pcie_device from list.
  * @ioc: per adapter object
  * @pcie_device: the pcie_device object
@@ -1063,6 +1243,7 @@
 {
 	unsigned long flags;
 	int was_on_pcie_device_list = 0;
+	u8 update_latency = 0;
 
 	if (!pcie_device)
 		return;
@@ -1082,11 +1263,21 @@
 		list_del_init(&pcie_device->list);
 		was_on_pcie_device_list = 1;
 	}
+	if (pcie_device->shutdown_latency == ioc->max_shutdown_latency)
+		update_latency = 1;
 	spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
 	if (was_on_pcie_device_list) {
 		kfree(pcie_device->serial_number);
 		pcie_device_put(pcie_device);
 	}
+
+	/*
+	 * This device's RTD3 Entry Latency matches IOC's
+	 * max_shutdown_latency. Recalculate IOC's max_shutdown_latency
+	 * from the available drives as current drive is getting removed.
+	 */
+	if (update_latency)
+		_scsih_set_nvme_max_shutdown_latency(ioc);
 }
 
 
@@ -1101,6 +1292,7 @@
 	struct _pcie_device *pcie_device;
 	unsigned long flags;
 	int was_on_pcie_device_list = 0;
+	u8 update_latency = 0;
 
 	if (ioc->shost_recovery)
 		return;
@@ -1113,12 +1305,22 @@
 			was_on_pcie_device_list = 1;
 			pcie_device_put(pcie_device);
 		}
+		if (pcie_device->shutdown_latency == ioc->max_shutdown_latency)
+			update_latency = 1;
 	}
 	spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
 	if (was_on_pcie_device_list) {
 		_scsih_pcie_device_remove_from_sml(ioc, pcie_device);
 		pcie_device_put(pcie_device);
 	}
+
+	/*
+	 * This device's RTD3 Entry Latency matches IOC's
+	 * max_shutdown_latency. Recalculate IOC's max_shutdown_latency
+	 * from the available drives as current drive is getting removed.
+	 */
+	if (update_latency)
+		_scsih_set_nvme_max_shutdown_latency(ioc);
 }
 
 /**
@@ -1382,21 +1584,26 @@
  * mpt3sas_scsih_expander_find_by_sas_address - expander device search
  * @ioc: per adapter object
  * @sas_address: sas address
+ * @port: hba port entry
  * Context: Calling function should acquire ioc->sas_node_lock.
  *
- * This searches for expander device based on sas_address, then returns the
- * sas_node object.
+ * This searches for expander device based on sas_address & port number,
+ * then returns the sas_node object.
  */
 struct _sas_node *
 mpt3sas_scsih_expander_find_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *port)
 {
-	struct _sas_node *sas_expander, *r;
+	struct _sas_node *sas_expander, *r = NULL;
+
+	if (!port)
+		return r;
 
-	r = NULL;
 	list_for_each_entry(sas_expander, &ioc->sas_expander_list, list) {
 		if (sas_expander->sas_address != sas_address)
 			continue;
+		if (sas_expander->port != port)
+			continue;
 		r = sas_expander;
 		goto out;
 	}
@@ -1554,7 +1761,12 @@
 		max_depth = 1;
 	if (qdepth > max_depth)
 		qdepth = max_depth;
-	return scsi_change_queue_depth(sdev, qdepth);
+	scsi_change_queue_depth(sdev, qdepth);
+	sdev_printk(KERN_INFO, sdev,
+	    "qdepth(%d), tagged(%d), scsi_level(%d), cmd_que(%d)\n",
+	    sdev->queue_depth, sdev->tagged_supported,
+	    sdev->scsi_level, ((sdev->inquiry[7] & 2) >> 1));
+	return sdev->queue_depth;
 }
 
 /**
@@ -1629,6 +1841,7 @@
 		if (pcie_device) {
 			sas_target_priv_data->handle = pcie_device->handle;
 			sas_target_priv_data->sas_address = pcie_device->wwid;
+			sas_target_priv_data->port = NULL;
 			sas_target_priv_data->pcie_dev = pcie_device;
 			pcie_device->starget = starget;
 			pcie_device->id = starget->id;
@@ -1646,12 +1859,12 @@
 	/* sas/sata devices */
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
 	rphy = dev_to_rphy(starget->dev.parent);
-	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-	   rphy->identify.sas_address);
+	sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
 
 	if (sas_device) {
 		sas_target_priv_data->handle = sas_device->handle;
 		sas_target_priv_data->sas_address = sas_device->sas_address;
+		sas_target_priv_data->port = sas_device->port;
 		sas_target_priv_data->sas_dev = sas_device;
 		sas_device->starget = starget;
 		sas_device->id = starget->id;
@@ -1807,7 +2020,8 @@
 	} else  if (!(sas_target_priv_data->flags & MPT_TARGET_FLAGS_VOLUME)) {
 		spin_lock_irqsave(&ioc->sas_device_lock, flags);
 		sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-					sas_target_priv_data->sas_address);
+		    sas_target_priv_data->sas_address,
+		    sas_target_priv_data->port);
 		if (sas_device && (sas_device->starget == NULL)) {
 			sdev_printk(KERN_INFO, sdev,
 			"%s : sas_device->starget set to starget @ %d\n",
@@ -2412,7 +2626,8 @@
 
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
 	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-	   sas_device_priv_data->sas_target->sas_address);
+	   sas_device_priv_data->sas_target->sas_address,
+	   sas_device_priv_data->sas_target->port);
 	if (!sas_device) {
 		spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
 		dfailprintk(ioc,
@@ -2673,6 +2888,7 @@
 	u16 smid = 0;
 	u32 ioc_state;
 	int rc;
+	u8 issue_reset = 0;
 
 	lockdep_assert_held(&ioc->tm_cmds.mutex);
 
@@ -2695,7 +2911,13 @@
 	}
 
 	if ((ioc_state & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) {
-		mpt3sas_base_fault_info(ioc, ioc_state &
+		mpt3sas_print_fault_code(ioc, ioc_state &
+		    MPI2_DOORBELL_DATA_MASK);
+		rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
+		return (!rc) ? SUCCESS : FAILED;
+	} else if ((ioc_state & MPI2_IOC_STATE_MASK) ==
+	    MPI2_IOC_STATE_COREDUMP) {
+		mpt3sas_print_coredump_info(ioc, ioc_state &
 		    MPI2_DOORBELL_DATA_MASK);
 		rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
 		return (!rc) ? SUCCESS : FAILED;
@@ -2726,9 +2948,10 @@
 	ioc->put_smid_hi_priority(ioc, smid, msix_task);
 	wait_for_completion_timeout(&ioc->tm_cmds.done, timeout*HZ);
 	if (!(ioc->tm_cmds.status & MPT3_CMD_COMPLETE)) {
-		if (mpt3sas_base_check_cmd_timeout(ioc,
-			ioc->tm_cmds.status, mpi_request,
-			sizeof(Mpi2SCSITaskManagementRequest_t)/4)) {
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->tm_cmds.status, mpi_request,
+		    sizeof(Mpi2SCSITaskManagementRequest_t)/4, issue_reset);
+		if (issue_reset) {
 			rc = mpt3sas_base_hard_reset_handler(ioc,
 					FORCE_BIG_HAMMER);
 			rc = (!rc) ? SUCCESS : FAILED;
@@ -2875,15 +3098,17 @@
 
 	u8 timeout = 30;
 	struct _pcie_device *pcie_device = NULL;
-	sdev_printk(KERN_INFO, scmd->device,
-		"attempting task abort! scmd(%p)\n", scmd);
+	sdev_printk(KERN_INFO, scmd->device, "attempting task abort!"
+	    "scmd(0x%p), outstanding for %u ms & timeout %u ms\n",
+	    scmd, jiffies_to_msecs(jiffies - scmd->jiffies_at_alloc),
+	    (scmd->request->timeout / HZ) * 1000);
 	_scsih_tm_display_info(ioc, scmd);
 
 	sas_device_priv_data = scmd->device->hostdata;
 	if (!sas_device_priv_data || !sas_device_priv_data->sas_target ||
 	    ioc->remove_host) {
 		sdev_printk(KERN_INFO, scmd->device,
-			"device been deleted! scmd(%p)\n", scmd);
+		    "device been deleted! scmd(0x%p)\n", scmd);
 		scmd->result = DID_NO_CONNECT << 16;
 		scmd->scsi_done(scmd);
 		r = SUCCESS;
@@ -2892,6 +3117,8 @@
 
 	/* check for completed command */
 	if (st == NULL || st->cb_idx == 0xFF) {
+		sdev_printk(KERN_INFO, scmd->device, "No reference found at "
+		    "driver, assuming scmd(0x%p) might have completed\n", scmd);
 		scmd->result = DID_RESET << 16;
 		r = SUCCESS;
 		goto out;
@@ -2920,7 +3147,7 @@
 	if (r == SUCCESS && st->cb_idx != 0xFF)
 		r = FAILED;
  out:
-	sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(%p)\n",
+	sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(0x%p)\n",
 	    ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd);
 	if (pcie_device)
 		pcie_device_put(pcie_device);
@@ -2949,14 +3176,14 @@
 	struct MPT3SAS_TARGET *target_priv_data = starget->hostdata;
 
 	sdev_printk(KERN_INFO, scmd->device,
-		"attempting device reset! scmd(%p)\n", scmd);
+	    "attempting device reset! scmd(0x%p)\n", scmd);
 	_scsih_tm_display_info(ioc, scmd);
 
 	sas_device_priv_data = scmd->device->hostdata;
 	if (!sas_device_priv_data || !sas_device_priv_data->sas_target ||
 	    ioc->remove_host) {
 		sdev_printk(KERN_INFO, scmd->device,
-			"device been deleted! scmd(%p)\n", scmd);
+		    "device been deleted! scmd(0x%p)\n", scmd);
 		scmd->result = DID_NO_CONNECT << 16;
 		scmd->scsi_done(scmd);
 		r = SUCCESS;
@@ -2996,7 +3223,7 @@
 	if (r == SUCCESS && atomic_read(&scmd->device->device_busy))
 		r = FAILED;
  out:
-	sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(%p)\n",
+	sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(0x%p)\n",
 	    ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd);
 
 	if (sas_device)
@@ -3027,15 +3254,15 @@
 	struct scsi_target *starget = scmd->device->sdev_target;
 	struct MPT3SAS_TARGET *target_priv_data = starget->hostdata;
 
-	starget_printk(KERN_INFO, starget, "attempting target reset! scmd(%p)\n",
-		scmd);
+	starget_printk(KERN_INFO, starget,
+	    "attempting target reset! scmd(0x%p)\n", scmd);
 	_scsih_tm_display_info(ioc, scmd);
 
 	sas_device_priv_data = scmd->device->hostdata;
 	if (!sas_device_priv_data || !sas_device_priv_data->sas_target ||
 	    ioc->remove_host) {
-		starget_printk(KERN_INFO, starget, "target been deleted! scmd(%p)\n",
-			scmd);
+		starget_printk(KERN_INFO, starget,
+		    "target been deleted! scmd(0x%p)\n", scmd);
 		scmd->result = DID_NO_CONNECT << 16;
 		scmd->scsi_done(scmd);
 		r = SUCCESS;
@@ -3074,7 +3301,7 @@
 	if (r == SUCCESS && atomic_read(&starget->target_busy))
 		r = FAILED;
  out:
-	starget_printk(KERN_INFO, starget, "target reset: %s scmd(%p)\n",
+	starget_printk(KERN_INFO, starget, "target reset: %s scmd(0x%p)\n",
 	    ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd);
 
 	if (sas_device)
@@ -3097,7 +3324,7 @@
 	struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
 	int r, retval;
 
-	ioc_info(ioc, "attempting host reset! scmd(%p)\n", scmd);
+	ioc_info(ioc, "attempting host reset! scmd(0x%p)\n", scmd);
 	scsi_print_command(scmd);
 
 	if (ioc->is_driver_loading || ioc->remove_host) {
@@ -3109,7 +3336,7 @@
 	retval = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
 	r = (retval < 0) ? FAILED : SUCCESS;
 out:
-	ioc_info(ioc, "host reset: %s scmd(%p)\n",
+	ioc_info(ioc, "host reset: %s scmd(0x%p)\n",
 		 r == SUCCESS ? "SUCCESS" : "FAILED", scmd);
 
 	return r;
@@ -3376,11 +3603,13 @@
  * _scsih_ublock_io_device - prepare device to be deleted
  * @ioc: per adapter object
  * @sas_address: sas address
+ * @port: hba port entry
  *
  * unblock then put device in offline state
  */
 static void
-_scsih_ublock_io_device(struct MPT3SAS_ADAPTER *ioc, u64 sas_address)
+_scsih_ublock_io_device(struct MPT3SAS_ADAPTER *ioc,
+	u64 sas_address, struct hba_port *port)
 {
 	struct MPT3SAS_DEVICE *sas_device_priv_data;
 	struct scsi_device *sdev;
@@ -3392,6 +3621,8 @@
 		if (sas_device_priv_data->sas_target->sas_address
 		    != sas_address)
 			continue;
+		if (sas_device_priv_data->sas_target->port != port)
+			continue;
 		if (sas_device_priv_data->block)
 			_scsih_internal_device_unblock(sdev,
 				sas_device_priv_data);
@@ -3492,7 +3723,8 @@
 		    SAS_END_DEVICE) {
 			spin_lock_irqsave(&ioc->sas_device_lock, flags);
 			sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-			    mpt3sas_port->remote_identify.sas_address);
+			    mpt3sas_port->remote_identify.sas_address,
+			    mpt3sas_port->hba_port);
 			if (sas_device) {
 				set_bit(sas_device->handle,
 						ioc->blocking_handles);
@@ -3511,7 +3743,8 @@
 		    SAS_FANOUT_EXPANDER_DEVICE) {
 			expander_sibling =
 			    mpt3sas_scsih_expander_find_by_sas_address(
-			    ioc, mpt3sas_port->remote_identify.sas_address);
+			    ioc, mpt3sas_port->remote_identify.sas_address,
+			    mpt3sas_port->hba_port);
 			_scsih_block_io_to_children_attached_to_ex(ioc,
 			    expander_sibling);
 		}
@@ -3600,6 +3833,7 @@
 	struct _tr_list *delayed_tr;
 	u32 ioc_state;
 	u8 tr_method = 0;
+	struct hba_port *port = NULL;
 
 	if (ioc->pci_error_recovery) {
 		dewtprintk(ioc,
@@ -3628,6 +3862,7 @@
 		sas_target_priv_data = sas_device->starget->hostdata;
 		sas_target_priv_data->deleted = 1;
 		sas_address = sas_device->sas_address;
+		port = sas_device->port;
 	}
 	spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
 	if (!sas_device) {
@@ -3675,7 +3910,7 @@
 						    pcie_device->enclosure_level,
 						    pcie_device->connector_name));
 		}
-		_scsih_ublock_io_device(ioc, sas_address);
+		_scsih_ublock_io_device(ioc, sas_address, port);
 		sas_target_priv_data->handle = MPT3SAS_INVALID_DEVICE_HANDLE;
 	}
 
@@ -4475,6 +4710,7 @@
 _scsih_temp_threshold_events(struct MPT3SAS_ADAPTER *ioc,
 	Mpi2EventDataTemperature_t *event_data)
 {
+	u32 doorbell;
 	if (ioc->temp_sensors_count >= event_data->SensorNum) {
 		ioc_err(ioc, "Temperature Threshold flags %s%s%s%s exceeded for Sensor: %d !!!\n",
 			le16_to_cpu(event_data->Status) & 0x1 ? "0 " : " ",
@@ -4484,6 +4720,18 @@
 			event_data->SensorNum);
 		ioc_err(ioc, "Current Temp In Celsius: %d\n",
 			event_data->CurrentTemperature);
+		if (ioc->hba_mpi_version_belonged != MPI2_VERSION) {
+			doorbell = mpt3sas_base_get_iocstate(ioc, 0);
+			if ((doorbell & MPI2_IOC_STATE_MASK) ==
+			    MPI2_IOC_STATE_FAULT) {
+				mpt3sas_print_fault_code(ioc,
+				    doorbell & MPI2_DOORBELL_DATA_MASK);
+			} else if ((doorbell & MPI2_IOC_STATE_MASK) ==
+			    MPI2_IOC_STATE_COREDUMP) {
+				mpt3sas_print_coredump_info(ioc,
+				    doorbell & MPI2_DOORBELL_DATA_MASK);
+			}
+		}
 	}
 }
 
@@ -5161,7 +5409,7 @@
 	/* insert into event log */
 	sz = offsetof(Mpi2EventNotificationReply_t, EventData) +
 	     sizeof(Mpi2EventDataSasDeviceStatusChange_t);
-	event_reply = kzalloc(sz, GFP_KERNEL);
+	event_reply = kzalloc(sz, GFP_ATOMIC);
 	if (!event_reply) {
 		ioc_err(ioc, "failure at %s:%d/%s()!\n",
 			__FILE__, __LINE__, __func__);
@@ -5436,6 +5684,614 @@
 }
 
 /**
+ * _scsih_update_vphys_after_reset - update the Port's
+ *			vphys_list after reset
+ * @ioc: per adapter object
+ *
+ * Returns nothing.
+ */
+static void
+_scsih_update_vphys_after_reset(struct MPT3SAS_ADAPTER *ioc)
+{
+	u16 sz, ioc_status;
+	int i;
+	Mpi2ConfigReply_t mpi_reply;
+	Mpi2SasIOUnitPage0_t *sas_iounit_pg0 = NULL;
+	u16 attached_handle;
+	u64 attached_sas_addr;
+	u8 found = 0, port_id;
+	Mpi2SasPhyPage0_t phy_pg0;
+	struct hba_port *port, *port_next, *mport;
+	struct virtual_phy *vphy, *vphy_next;
+	struct _sas_device *sas_device;
+
+	/*
+	 * Mark all the vphys objects as dirty.
+	 */
+	list_for_each_entry_safe(port, port_next,
+	    &ioc->port_table_list, list) {
+		if (!port->vphys_mask)
+			continue;
+		list_for_each_entry_safe(vphy, vphy_next,
+		    &port->vphys_list, list) {
+			vphy->flags |= MPT_VPHY_FLAG_DIRTY_PHY;
+		}
+	}
+
+	/*
+	 * Read SASIOUnitPage0 to get each HBA Phy's data.
+	 */
+	sz = offsetof(Mpi2SasIOUnitPage0_t, PhyData) +
+	    (ioc->sas_hba.num_phys * sizeof(Mpi2SasIOUnit0PhyData_t));
+	sas_iounit_pg0 = kzalloc(sz, GFP_KERNEL);
+	if (!sas_iounit_pg0) {
+		ioc_err(ioc, "failure at %s:%d/%s()!\n",
+		    __FILE__, __LINE__, __func__);
+		return;
+	}
+	if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
+	    sas_iounit_pg0, sz)) != 0)
+		goto out;
+	ioc_status = le16_to_cpu(mpi_reply.IOCStatus) & MPI2_IOCSTATUS_MASK;
+	if (ioc_status != MPI2_IOCSTATUS_SUCCESS)
+		goto out;
+	/*
+	 * Loop over each HBA Phy.
+	 */
+	for (i = 0; i < ioc->sas_hba.num_phys; i++) {
+		/*
+		 * Check whether Phy's Negotiation Link Rate is > 1.5G or not.
+		 */
+		if ((sas_iounit_pg0->PhyData[i].NegotiatedLinkRate >> 4) <
+		    MPI2_SAS_NEG_LINK_RATE_1_5)
+			continue;
+		/*
+		 * Check whether Phy is connected to SEP device or not,
+		 * if it is SEP device then read the Phy's SASPHYPage0 data to
+		 * determine whether Phy is a virtual Phy or not. if it is
+		 * virtual phy then it is conformed that the attached remote
+		 * device is a HBA's vSES device.
+		 */
+		if (!(le32_to_cpu(
+		    sas_iounit_pg0->PhyData[i].ControllerPhyDeviceInfo) &
+		    MPI2_SAS_DEVICE_INFO_SEP))
+			continue;
+
+		if ((mpt3sas_config_get_phy_pg0(ioc, &mpi_reply, &phy_pg0,
+		    i))) {
+			ioc_err(ioc, "failure at %s:%d/%s()!\n",
+			    __FILE__, __LINE__, __func__);
+			continue;
+		}
+
+		if (!(le32_to_cpu(phy_pg0.PhyInfo) &
+		    MPI2_SAS_PHYINFO_VIRTUAL_PHY))
+			continue;
+		/*
+		 * Get the vSES device's SAS Address.
+		 */
+		attached_handle = le16_to_cpu(
+		    sas_iounit_pg0->PhyData[i].AttachedDevHandle);
+		if (_scsih_get_sas_address(ioc, attached_handle,
+		    &attached_sas_addr) != 0) {
+			ioc_err(ioc, "failure at %s:%d/%s()!\n",
+			    __FILE__, __LINE__, __func__);
+			continue;
+		}
+
+		found = 0;
+		port = port_next = NULL;
+		/*
+		 * Loop over each virtual_phy object from
+		 * each port's vphys_list.
+		 */
+		list_for_each_entry_safe(port,
+		    port_next, &ioc->port_table_list, list) {
+			if (!port->vphys_mask)
+				continue;
+			list_for_each_entry_safe(vphy, vphy_next,
+			    &port->vphys_list, list) {
+				/*
+				 * Continue with next virtual_phy object
+				 * if the object is not marked as dirty.
+				 */
+				if (!(vphy->flags & MPT_VPHY_FLAG_DIRTY_PHY))
+					continue;
+
+				/*
+				 * Continue with next virtual_phy object
+				 * if the object's SAS Address is not equals
+				 * to current Phy's vSES device SAS Address.
+				 */
+				if (vphy->sas_address != attached_sas_addr)
+					continue;
+				/*
+				 * Enable current Phy number bit in object's
+				 * phy_mask field.
+				 */
+				if (!(vphy->phy_mask & (1 << i)))
+					vphy->phy_mask = (1 << i);
+				/*
+				 * Get hba_port object from hba_port table
+				 * corresponding to current phy's Port ID.
+				 * if there is no hba_port object corresponding
+				 * to Phy's Port ID then create a new hba_port
+				 * object & add to hba_port table.
+				 */
+				port_id = sas_iounit_pg0->PhyData[i].Port;
+				mport = mpt3sas_get_port_by_id(ioc, port_id, 1);
+				if (!mport) {
+					mport = kzalloc(
+					    sizeof(struct hba_port), GFP_KERNEL);
+					if (!mport)
+						break;
+					mport->port_id = port_id;
+					ioc_info(ioc,
+					    "%s: hba_port entry: %p, port: %d is added to hba_port list\n",
+					    __func__, mport, mport->port_id);
+					list_add_tail(&mport->list,
+						&ioc->port_table_list);
+				}
+				/*
+				 * If mport & port pointers are not pointing to
+				 * same hba_port object then it means that vSES
+				 * device's Port ID got changed after reset and
+				 * hence move current virtual_phy object from
+				 * port's vphys_list to mport's vphys_list.
+				 */
+				if (port != mport) {
+					if (!mport->vphys_mask)
+						INIT_LIST_HEAD(
+						    &mport->vphys_list);
+					mport->vphys_mask |= (1 << i);
+					port->vphys_mask &= ~(1 << i);
+					list_move(&vphy->list,
+					    &mport->vphys_list);
+					sas_device = mpt3sas_get_sdev_by_addr(
+					    ioc, attached_sas_addr, port);
+					if (sas_device)
+						sas_device->port = mport;
+				}
+				/*
+				 * Earlier while updating the hba_port table,
+				 * it is determined that there is no other
+				 * direct attached device with mport's Port ID,
+				 * Hence mport was marked as dirty. Only vSES
+				 * device has this Port ID, so unmark the mport
+				 * as dirt.
+				 */
+				if (mport->flags & HBA_PORT_FLAG_DIRTY_PORT) {
+					mport->sas_address = 0;
+					mport->phy_mask = 0;
+					mport->flags &=
+					    ~HBA_PORT_FLAG_DIRTY_PORT;
+				}
+				/*
+				 * Unmark current virtual_phy object as dirty.
+				 */
+				vphy->flags &= ~MPT_VPHY_FLAG_DIRTY_PHY;
+				found = 1;
+				break;
+			}
+			if (found)
+				break;
+		}
+	}
+out:
+	kfree(sas_iounit_pg0);
+}
+
+/**
+ * _scsih_get_port_table_after_reset - Construct temporary port table
+ * @ioc: per adapter object
+ * @port_table: address where port table needs to be constructed
+ *
+ * return number of HBA port entries available after reset.
+ */
+static int
+_scsih_get_port_table_after_reset(struct MPT3SAS_ADAPTER *ioc,
+	struct hba_port *port_table)
+{
+	u16 sz, ioc_status;
+	int i, j;
+	Mpi2ConfigReply_t mpi_reply;
+	Mpi2SasIOUnitPage0_t *sas_iounit_pg0 = NULL;
+	u16 attached_handle;
+	u64 attached_sas_addr;
+	u8 found = 0, port_count = 0, port_id;
+
+	sz = offsetof(Mpi2SasIOUnitPage0_t, PhyData) + (ioc->sas_hba.num_phys
+	    * sizeof(Mpi2SasIOUnit0PhyData_t));
+	sas_iounit_pg0 = kzalloc(sz, GFP_KERNEL);
+	if (!sas_iounit_pg0) {
+		ioc_err(ioc, "failure at %s:%d/%s()!\n",
+		    __FILE__, __LINE__, __func__);
+		return port_count;
+	}
+
+	if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
+	    sas_iounit_pg0, sz)) != 0)
+		goto out;
+	ioc_status = le16_to_cpu(mpi_reply.IOCStatus) & MPI2_IOCSTATUS_MASK;
+	if (ioc_status != MPI2_IOCSTATUS_SUCCESS)
+		goto out;
+	for (i = 0; i < ioc->sas_hba.num_phys; i++) {
+		found = 0;
+		if ((sas_iounit_pg0->PhyData[i].NegotiatedLinkRate >> 4) <
+		    MPI2_SAS_NEG_LINK_RATE_1_5)
+			continue;
+		attached_handle =
+		    le16_to_cpu(sas_iounit_pg0->PhyData[i].AttachedDevHandle);
+		if (_scsih_get_sas_address(
+		    ioc, attached_handle, &attached_sas_addr) != 0) {
+			ioc_err(ioc, "failure at %s:%d/%s()!\n",
+			    __FILE__, __LINE__, __func__);
+			continue;
+		}
+
+		for (j = 0; j < port_count; j++) {
+			port_id = sas_iounit_pg0->PhyData[i].Port;
+			if (port_table[j].port_id == port_id &&
+			    port_table[j].sas_address == attached_sas_addr) {
+				port_table[j].phy_mask |= (1 << i);
+				found = 1;
+				break;
+			}
+		}
+
+		if (found)
+			continue;
+
+		port_id = sas_iounit_pg0->PhyData[i].Port;
+		port_table[port_count].port_id = port_id;
+		port_table[port_count].phy_mask = (1 << i);
+		port_table[port_count].sas_address = attached_sas_addr;
+		port_count++;
+	}
+out:
+	kfree(sas_iounit_pg0);
+	return port_count;
+}
+
+enum hba_port_matched_codes {
+	NOT_MATCHED = 0,
+	MATCHED_WITH_ADDR_AND_PHYMASK,
+	MATCHED_WITH_ADDR_SUBPHYMASK_AND_PORT,
+	MATCHED_WITH_ADDR_AND_SUBPHYMASK,
+	MATCHED_WITH_ADDR,
+};
+
+/**
+ * _scsih_look_and_get_matched_port_entry - Get matched hba port entry
+ *					from HBA port table
+ * @ioc: per adapter object
+ * @port_entry - hba port entry from temporary port table which needs to be
+ *		searched for matched entry in the HBA port table
+ * @matched_port_entry - save matched hba port entry here
+ * @count - count of matched entries
+ *
+ * return type of matched entry found.
+ */
+static enum hba_port_matched_codes
+_scsih_look_and_get_matched_port_entry(struct MPT3SAS_ADAPTER *ioc,
+	struct hba_port *port_entry,
+	struct hba_port **matched_port_entry, int *count)
+{
+	struct hba_port *port_table_entry, *matched_port = NULL;
+	enum hba_port_matched_codes matched_code = NOT_MATCHED;
+	int lcount = 0;
+	*matched_port_entry = NULL;
+
+	list_for_each_entry(port_table_entry, &ioc->port_table_list, list) {
+		if (!(port_table_entry->flags & HBA_PORT_FLAG_DIRTY_PORT))
+			continue;
+
+		if ((port_table_entry->sas_address == port_entry->sas_address)
+		    && (port_table_entry->phy_mask == port_entry->phy_mask)) {
+			matched_code = MATCHED_WITH_ADDR_AND_PHYMASK;
+			matched_port = port_table_entry;
+			break;
+		}
+
+		if ((port_table_entry->sas_address == port_entry->sas_address)
+		    && (port_table_entry->phy_mask & port_entry->phy_mask)
+		    && (port_table_entry->port_id == port_entry->port_id)) {
+			matched_code = MATCHED_WITH_ADDR_SUBPHYMASK_AND_PORT;
+			matched_port = port_table_entry;
+			continue;
+		}
+
+		if ((port_table_entry->sas_address == port_entry->sas_address)
+		    && (port_table_entry->phy_mask & port_entry->phy_mask)) {
+			if (matched_code ==
+			    MATCHED_WITH_ADDR_SUBPHYMASK_AND_PORT)
+				continue;
+			matched_code = MATCHED_WITH_ADDR_AND_SUBPHYMASK;
+			matched_port = port_table_entry;
+			continue;
+		}
+
+		if (port_table_entry->sas_address == port_entry->sas_address) {
+			if (matched_code ==
+			    MATCHED_WITH_ADDR_SUBPHYMASK_AND_PORT)
+				continue;
+			if (matched_code == MATCHED_WITH_ADDR_AND_SUBPHYMASK)
+				continue;
+			matched_code = MATCHED_WITH_ADDR;
+			matched_port = port_table_entry;
+			lcount++;
+		}
+	}
+
+	*matched_port_entry = matched_port;
+	if (matched_code ==  MATCHED_WITH_ADDR)
+		*count = lcount;
+	return matched_code;
+}
+
+/**
+ * _scsih_del_phy_part_of_anther_port - remove phy if it
+ *				is a part of anther port
+ *@ioc: per adapter object
+ *@port_table: port table after reset
+ *@index: hba port entry index
+ *@port_count: number of ports available after host reset
+ *@offset: HBA phy bit offset
+ *
+ */
+static void
+_scsih_del_phy_part_of_anther_port(struct MPT3SAS_ADAPTER *ioc,
+	struct hba_port *port_table,
+	int index, u8 port_count, int offset)
+{
+	struct _sas_node *sas_node = &ioc->sas_hba;
+	u32 i, found = 0;
+
+	for (i = 0; i < port_count; i++) {
+		if (i == index)
+			continue;
+
+		if (port_table[i].phy_mask & (1 << offset)) {
+			mpt3sas_transport_del_phy_from_an_existing_port(
+			    ioc, sas_node, &sas_node->phy[offset]);
+			found = 1;
+			break;
+		}
+	}
+	if (!found)
+		port_table[index].phy_mask |= (1 << offset);
+}
+
+/**
+ * _scsih_add_or_del_phys_from_existing_port - add/remove phy to/from
+ *						right port
+ *@ioc: per adapter object
+ *@hba_port_entry: hba port table entry
+ *@port_table: temporary port table
+ *@index: hba port entry index
+ *@port_count: number of ports available after host reset
+ *
+ */
+static void
+_scsih_add_or_del_phys_from_existing_port(struct MPT3SAS_ADAPTER *ioc,
+	struct hba_port *hba_port_entry, struct hba_port *port_table,
+	int index, int port_count)
+{
+	u32 phy_mask, offset = 0;
+	struct _sas_node *sas_node = &ioc->sas_hba;
+
+	phy_mask = hba_port_entry->phy_mask ^ port_table[index].phy_mask;
+
+	for (offset = 0; offset < ioc->sas_hba.num_phys; offset++) {
+		if (phy_mask & (1 << offset)) {
+			if (!(port_table[index].phy_mask & (1 << offset))) {
+				_scsih_del_phy_part_of_anther_port(
+				    ioc, port_table, index, port_count,
+				    offset);
+				continue;
+			}
+			if (sas_node->phy[offset].phy_belongs_to_port)
+				mpt3sas_transport_del_phy_from_an_existing_port(
+				    ioc, sas_node, &sas_node->phy[offset]);
+			mpt3sas_transport_add_phy_to_an_existing_port(
+			    ioc, sas_node, &sas_node->phy[offset],
+			    hba_port_entry->sas_address,
+			    hba_port_entry);
+		}
+	}
+}
+
+/**
+ * _scsih_del_dirty_vphy - delete virtual_phy objects marked as dirty.
+ * @ioc: per adapter object
+ *
+ * Returns nothing.
+ */
+static void
+_scsih_del_dirty_vphy(struct MPT3SAS_ADAPTER *ioc)
+{
+	struct hba_port *port, *port_next;
+	struct virtual_phy *vphy, *vphy_next;
+
+	list_for_each_entry_safe(port, port_next,
+	    &ioc->port_table_list, list) {
+		if (!port->vphys_mask)
+			continue;
+		list_for_each_entry_safe(vphy, vphy_next,
+		    &port->vphys_list, list) {
+			if (vphy->flags & MPT_VPHY_FLAG_DIRTY_PHY) {
+				drsprintk(ioc, ioc_info(ioc,
+				    "Deleting vphy %p entry from port id: %d\t, Phy_mask 0x%08x\n",
+				    vphy, port->port_id,
+				    vphy->phy_mask));
+				port->vphys_mask &= ~vphy->phy_mask;
+				list_del(&vphy->list);
+				kfree(vphy);
+			}
+		}
+		if (!port->vphys_mask && !port->sas_address)
+			port->flags |= HBA_PORT_FLAG_DIRTY_PORT;
+	}
+}
+
+/**
+ * _scsih_del_dirty_port_entries - delete dirty port entries from port list
+ *					after host reset
+ *@ioc: per adapter object
+ *
+ */
+static void
+_scsih_del_dirty_port_entries(struct MPT3SAS_ADAPTER *ioc)
+{
+	struct hba_port *port, *port_next;
+
+	list_for_each_entry_safe(port, port_next,
+	    &ioc->port_table_list, list) {
+		if (!(port->flags & HBA_PORT_FLAG_DIRTY_PORT) ||
+		    port->flags & HBA_PORT_FLAG_NEW_PORT)
+			continue;
+
+		drsprintk(ioc, ioc_info(ioc,
+		    "Deleting port table entry %p having Port: %d\t Phy_mask 0x%08x\n",
+		    port, port->port_id, port->phy_mask));
+		list_del(&port->list);
+		kfree(port);
+	}
+}
+
+/**
+ * _scsih_sas_port_refresh - Update HBA port table after host reset
+ * @ioc: per adapter object
+ */
+static void
+_scsih_sas_port_refresh(struct MPT3SAS_ADAPTER *ioc)
+{
+	u32 port_count = 0;
+	struct hba_port *port_table;
+	struct hba_port *port_table_entry;
+	struct hba_port *port_entry = NULL;
+	int i, j, count = 0, lcount = 0;
+	int ret;
+	u64 sas_addr;
+
+	drsprintk(ioc, ioc_info(ioc,
+	    "updating ports for sas_host(0x%016llx)\n",
+	    (unsigned long long)ioc->sas_hba.sas_address));
+
+	port_table = kcalloc(ioc->sas_hba.num_phys,
+	    sizeof(struct hba_port), GFP_KERNEL);
+	if (!port_table)
+		return;
+
+	port_count = _scsih_get_port_table_after_reset(ioc, port_table);
+	if (!port_count)
+		return;
+
+	drsprintk(ioc, ioc_info(ioc, "New Port table\n"));
+	for (j = 0; j < port_count; j++)
+		drsprintk(ioc, ioc_info(ioc,
+		    "Port: %d\t Phy_mask 0x%08x\t sas_addr(0x%016llx)\n",
+		    port_table[j].port_id,
+		    port_table[j].phy_mask, port_table[j].sas_address));
+
+	list_for_each_entry(port_table_entry, &ioc->port_table_list, list)
+		port_table_entry->flags |= HBA_PORT_FLAG_DIRTY_PORT;
+
+	drsprintk(ioc, ioc_info(ioc, "Old Port table\n"));
+	port_table_entry = NULL;
+	list_for_each_entry(port_table_entry, &ioc->port_table_list, list) {
+		drsprintk(ioc, ioc_info(ioc,
+		    "Port: %d\t Phy_mask 0x%08x\t sas_addr(0x%016llx)\n",
+		    port_table_entry->port_id,
+		    port_table_entry->phy_mask,
+		    port_table_entry->sas_address));
+	}
+
+	for (j = 0; j < port_count; j++) {
+		ret = _scsih_look_and_get_matched_port_entry(ioc,
+		    &port_table[j], &port_entry, &count);
+		if (!port_entry) {
+			drsprintk(ioc, ioc_info(ioc,
+			    "No Matched entry for sas_addr(0x%16llx), Port:%d\n",
+			    port_table[j].sas_address,
+			    port_table[j].port_id));
+			continue;
+		}
+
+		switch (ret) {
+		case MATCHED_WITH_ADDR_SUBPHYMASK_AND_PORT:
+		case MATCHED_WITH_ADDR_AND_SUBPHYMASK:
+			_scsih_add_or_del_phys_from_existing_port(ioc,
+			    port_entry, port_table, j, port_count);
+			break;
+		case MATCHED_WITH_ADDR:
+			sas_addr = port_table[j].sas_address;
+			for (i = 0; i < port_count; i++) {
+				if (port_table[i].sas_address == sas_addr)
+					lcount++;
+			}
+
+			if (count > 1 || lcount > 1)
+				port_entry = NULL;
+			else
+				_scsih_add_or_del_phys_from_existing_port(ioc,
+				    port_entry, port_table, j, port_count);
+		}
+
+		if (!port_entry)
+			continue;
+
+		if (port_entry->port_id != port_table[j].port_id)
+			port_entry->port_id = port_table[j].port_id;
+		port_entry->flags &= ~HBA_PORT_FLAG_DIRTY_PORT;
+		port_entry->phy_mask = port_table[j].phy_mask;
+	}
+
+	port_table_entry = NULL;
+}
+
+/**
+ * _scsih_alloc_vphy - allocate virtual_phy object
+ * @ioc: per adapter object
+ * @port_id: Port ID number
+ * @phy_num: HBA Phy number
+ *
+ * Returns allocated virtual_phy object.
+ */
+static struct virtual_phy *
+_scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num)
+{
+	struct virtual_phy *vphy;
+	struct hba_port *port;
+
+	port = mpt3sas_get_port_by_id(ioc, port_id, 0);
+	if (!port)
+		return NULL;
+
+	vphy = mpt3sas_get_vphy_by_phy(ioc, port, phy_num);
+	if (!vphy) {
+		vphy = kzalloc(sizeof(struct virtual_phy), GFP_KERNEL);
+		if (!vphy)
+			return NULL;
+
+		/*
+		 * Enable bit corresponding to HBA phy number on its
+		 * parent hba_port object's vphys_mask field.
+		 */
+		port->vphys_mask |= (1 << phy_num);
+		vphy->phy_mask |= (1 << phy_num);
+
+		INIT_LIST_HEAD(&port->vphys_list);
+		list_add_tail(&vphy->list, &port->vphys_list);
+
+		ioc_info(ioc,
+		    "vphy entry: %p, port id: %d, phy:%d is added to port's vphys_list\n",
+		    vphy, port->port_id, phy_num);
+	}
+	return vphy;
+}
+
+/**
  * _scsih_sas_host_refresh - refreshing sas host object contents
  * @ioc: per adapter object
  * Context: user
@@ -5453,7 +6309,9 @@
 	Mpi2ConfigReply_t mpi_reply;
 	Mpi2SasIOUnitPage0_t *sas_iounit_pg0 = NULL;
 	u16 attached_handle;
-	u8 link_rate;
+	u8 link_rate, port_id;
+	struct hba_port *port;
+	Mpi2SasPhyPage0_t phy_pg0;
 
 	dtmprintk(ioc,
 		  ioc_info(ioc, "updating handles for sas_host(0x%016llx)\n",
@@ -5477,15 +6335,57 @@
 	for (i = 0; i < ioc->sas_hba.num_phys ; i++) {
 		link_rate = sas_iounit_pg0->PhyData[i].NegotiatedLinkRate >> 4;
 		if (i == 0)
-			ioc->sas_hba.handle = le16_to_cpu(sas_iounit_pg0->
-			    PhyData[0].ControllerDevHandle);
+			ioc->sas_hba.handle = le16_to_cpu(
+			    sas_iounit_pg0->PhyData[0].ControllerDevHandle);
+		port_id = sas_iounit_pg0->PhyData[i].Port;
+		if (!(mpt3sas_get_port_by_id(ioc, port_id, 0))) {
+			port = kzalloc(sizeof(struct hba_port), GFP_KERNEL);
+			if (!port)
+				goto out;
+
+			port->port_id = port_id;
+			ioc_info(ioc,
+			    "hba_port entry: %p, port: %d is added to hba_port list\n",
+			    port, port->port_id);
+			if (ioc->shost_recovery)
+				port->flags = HBA_PORT_FLAG_NEW_PORT;
+			list_add_tail(&port->list, &ioc->port_table_list);
+		}
+		/*
+		 * Check whether current Phy belongs to HBA vSES device or not.
+		 */
+		if (le32_to_cpu(sas_iounit_pg0->PhyData[i].ControllerPhyDeviceInfo) &
+		    MPI2_SAS_DEVICE_INFO_SEP &&
+		    (link_rate >=  MPI2_SAS_NEG_LINK_RATE_1_5)) {
+			if ((mpt3sas_config_get_phy_pg0(ioc, &mpi_reply,
+			    &phy_pg0, i))) {
+				ioc_err(ioc,
+				    "failure at %s:%d/%s()!\n",
+				     __FILE__, __LINE__, __func__);
+				goto out;
+			}
+			if (!(le32_to_cpu(phy_pg0.PhyInfo) &
+			    MPI2_SAS_PHYINFO_VIRTUAL_PHY))
+				continue;
+			/*
+			 * Allocate a virtual_phy object for vSES device, if
+			 * this vSES device is hot added.
+			 */
+			if (!_scsih_alloc_vphy(ioc, port_id, i))
+				goto out;
+			ioc->sas_hba.phy[i].hba_vphy = 1;
+		}
+
 		ioc->sas_hba.phy[i].handle = ioc->sas_hba.handle;
 		attached_handle = le16_to_cpu(sas_iounit_pg0->PhyData[i].
 		    AttachedDevHandle);
 		if (attached_handle && link_rate < MPI2_SAS_NEG_LINK_RATE_1_5)
 			link_rate = MPI2_SAS_NEG_LINK_RATE_1_5;
+		ioc->sas_hba.phy[i].port =
+		    mpt3sas_get_port_by_id(ioc, port_id, 0);
 		mpt3sas_transport_update_links(ioc, ioc->sas_hba.sas_address,
-		    attached_handle, i, link_rate);
+		    attached_handle, i, link_rate,
+		    ioc->sas_hba.phy[i].port);
 	}
  out:
 	kfree(sas_iounit_pg0);
@@ -5510,7 +6410,8 @@
 	u16 ioc_status;
 	u16 sz;
 	u8 device_missing_delay;
-	u8 num_phys;
+	u8 num_phys, port_id;
+	struct hba_port *port;
 
 	mpt3sas_config_get_number_hba_phys(ioc, &num_phys);
 	if (!num_phys) {
@@ -5603,8 +6504,40 @@
 		if (i == 0)
 			ioc->sas_hba.handle = le16_to_cpu(sas_iounit_pg0->
 			    PhyData[0].ControllerDevHandle);
+
+		port_id = sas_iounit_pg0->PhyData[i].Port;
+		if (!(mpt3sas_get_port_by_id(ioc, port_id, 0))) {
+			port = kzalloc(sizeof(struct hba_port), GFP_KERNEL);
+			if (!port)
+				goto out;
+
+			port->port_id = port_id;
+			ioc_info(ioc,
+			   "hba_port entry: %p, port: %d is added to hba_port list\n",
+			   port, port->port_id);
+			list_add_tail(&port->list,
+			    &ioc->port_table_list);
+		}
+
+		/*
+		 * Check whether current Phy belongs to HBA vSES device or not.
+		 */
+		if ((le32_to_cpu(phy_pg0.PhyInfo) &
+		    MPI2_SAS_PHYINFO_VIRTUAL_PHY) &&
+		    (phy_pg0.NegotiatedLinkRate >> 4) >=
+		    MPI2_SAS_NEG_LINK_RATE_1_5) {
+			/*
+			 * Allocate a virtual_phy object for vSES device.
+			 */
+			if (!_scsih_alloc_vphy(ioc, port_id, i))
+				goto out;
+			ioc->sas_hba.phy[i].hba_vphy = 1;
+		}
+
 		ioc->sas_hba.phy[i].handle = ioc->sas_hba.handle;
 		ioc->sas_hba.phy[i].phy_id = i;
+		ioc->sas_hba.phy[i].port =
+		    mpt3sas_get_port_by_id(ioc, port_id, 0);
 		mpt3sas_transport_add_host_phy(ioc, &ioc->sas_hba.phy[i],
 		    phy_pg0, ioc->sas_hba.parent_dev);
 	}
@@ -5658,6 +6591,7 @@
 	int i;
 	unsigned long flags;
 	struct _sas_port *mpt3sas_port = NULL;
+	u8 port_id;
 
 	int rc = 0;
 
@@ -5690,10 +6624,13 @@
 			__FILE__, __LINE__, __func__);
 		return -1;
 	}
+
+	port_id = expander_pg0.PhysicalPort;
 	if (sas_address_parent != ioc->sas_hba.sas_address) {
 		spin_lock_irqsave(&ioc->sas_node_lock, flags);
 		sas_expander = mpt3sas_scsih_expander_find_by_sas_address(ioc,
-		    sas_address_parent);
+		    sas_address_parent,
+		    mpt3sas_get_port_by_id(ioc, port_id, 0));
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		if (!sas_expander) {
 			rc = _scsih_expander_add(ioc, parent_handle);
@@ -5705,7 +6642,7 @@
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	sas_address = le64_to_cpu(expander_pg0.SASAddress);
 	sas_expander = mpt3sas_scsih_expander_find_by_sas_address(ioc,
-	    sas_address);
+	    sas_address, mpt3sas_get_port_by_id(ioc, port_id, 0));
 	spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 
 	if (sas_expander)
@@ -5723,6 +6660,13 @@
 	sas_expander->num_phys = expander_pg0.NumPhys;
 	sas_expander->sas_address_parent = sas_address_parent;
 	sas_expander->sas_address = sas_address;
+	sas_expander->port = mpt3sas_get_port_by_id(ioc, port_id, 0);
+	if (!sas_expander->port) {
+		ioc_err(ioc, "failure at %s:%d/%s()!\n",
+		    __FILE__, __LINE__, __func__);
+		rc = -1;
+		goto out_fail;
+	}
 
 	ioc_info(ioc, "expander_add: handle(0x%04x), parent(0x%04x), sas_addr(0x%016llx), phys(%d)\n",
 		 handle, parent_handle,
@@ -5741,7 +6685,7 @@
 
 	INIT_LIST_HEAD(&sas_expander->sas_port_list);
 	mpt3sas_port = mpt3sas_transport_port_add(ioc, handle,
-	    sas_address_parent);
+	    sas_address_parent, sas_expander->port);
 	if (!mpt3sas_port) {
 		ioc_err(ioc, "failure at %s:%d/%s()!\n",
 			__FILE__, __LINE__, __func__);
@@ -5749,6 +6693,7 @@
 		goto out_fail;
 	}
 	sas_expander->parent_dev = &mpt3sas_port->rphy->dev;
+	sas_expander->rphy = mpt3sas_port->rphy;
 
 	for (i = 0 ; i < sas_expander->num_phys ; i++) {
 		if ((mpt3sas_config_get_expander_pg1(ioc, &mpi_reply,
@@ -5760,6 +6705,8 @@
 		}
 		sas_expander->phy[i].handle = handle;
 		sas_expander->phy[i].phy_id = i;
+		sas_expander->phy[i].port =
+		    mpt3sas_get_port_by_id(ioc, port_id, 0);
 
 		if ((mpt3sas_transport_add_expander_phy(ioc,
 		    &sas_expander->phy[i], expander_pg1,
@@ -5787,7 +6734,7 @@
 
 	if (mpt3sas_port)
 		mpt3sas_transport_port_remove(ioc, sas_expander->sas_address,
-		    sas_address_parent);
+		    sas_address_parent, sas_expander->port);
 	kfree(sas_expander);
 	return rc;
 }
@@ -5798,7 +6745,8 @@
  * @sas_address: expander sas_address
  */
 void
-mpt3sas_expander_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address)
+mpt3sas_expander_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
+	struct hba_port *port)
 {
 	struct _sas_node *sas_expander;
 	unsigned long flags;
@@ -5806,9 +6754,12 @@
 	if (ioc->shost_recovery)
 		return;
 
+	if (!port)
+		return;
+
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	sas_expander = mpt3sas_scsih_expander_find_by_sas_address(ioc,
-	    sas_address);
+	    sas_address, port);
 	spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 	if (sas_expander)
 		_scsih_expander_node_remove(ioc, sas_expander);
@@ -5931,7 +6882,7 @@
 {
 	Mpi2ConfigReply_t mpi_reply;
 	Mpi2SasDevicePage0_t sas_device_pg0;
-	struct _sas_device *sas_device;
+	struct _sas_device *sas_device = NULL;
 	struct _enclosure_node *enclosure_dev = NULL;
 	u32 ioc_status;
 	unsigned long flags;
@@ -5939,6 +6890,7 @@
 	struct scsi_target *starget;
 	struct MPT3SAS_TARGET *sas_target_priv_data;
 	u32 device_info;
+	struct hba_port *port;
 
 	if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
 	    MPI2_SAS_DEVICE_PGAD_FORM_HANDLE, handle)))
@@ -5961,8 +6913,11 @@
 
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
 	sas_address = le64_to_cpu(sas_device_pg0.SASAddress);
+	port = mpt3sas_get_port_by_id(ioc, sas_device_pg0.PhysicalPort, 0);
+	if (!port)
+		goto out_unlock;
 	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-	    sas_address);
+	    sas_address, port);
 
 	if (!sas_device)
 		goto out_unlock;
@@ -6018,7 +6973,7 @@
 		goto out_unlock;
 
 	spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
-	_scsih_ublock_io_device(ioc, sas_address);
+	_scsih_ublock_io_device(ioc, sas_address, port);
 
 	if (sas_device)
 		sas_device_put(sas_device);
@@ -6052,6 +7007,7 @@
 	u32 ioc_status;
 	u64 sas_address;
 	u32 device_info;
+	u8 port_id;
 
 	if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
 	    MPI2_SAS_DEVICE_PGAD_FORM_HANDLE, handle))) {
@@ -6088,8 +7044,9 @@
 	    sas_device_pg0.AccessStatus))
 		return -1;
 
+	port_id = sas_device_pg0.PhysicalPort;
 	sas_device = mpt3sas_get_sdev_by_addr(ioc,
-					sas_address);
+	    sas_address, mpt3sas_get_port_by_id(ioc, port_id, 0));
 	if (sas_device) {
 		clear_bit(handle, ioc->pend_os_device_add);
 		sas_device_put(sas_device);
@@ -6130,6 +7087,12 @@
 	sas_device->phy = sas_device_pg0.PhyNum;
 	sas_device->fast_path = (le16_to_cpu(sas_device_pg0.Flags) &
 	    MPI25_SAS_DEVICE0_FLAGS_FAST_PATH_CAPABLE) ? 1 : 0;
+	sas_device->port = mpt3sas_get_port_by_id(ioc, port_id, 0);
+	if (!sas_device->port) {
+		ioc_err(ioc, "failure at %s:%d/%s()!\n",
+		    __FILE__, __LINE__, __func__);
+		goto out;
+	}
 
 	if (le16_to_cpu(sas_device_pg0.Flags)
 		& MPI2_SAS_DEVICE0_FLAGS_ENCL_LEVEL_VALID) {
@@ -6163,6 +7126,7 @@
 	else
 		_scsih_sas_device_add(ioc, sas_device);
 
+out:
 	sas_device_put(sas_device);
 	return 0;
 }
@@ -6195,7 +7159,8 @@
 	if (sas_device->starget && sas_device->starget->hostdata) {
 		sas_target_priv_data = sas_device->starget->hostdata;
 		sas_target_priv_data->deleted = 1;
-		_scsih_ublock_io_device(ioc, sas_device->sas_address);
+		_scsih_ublock_io_device(ioc, sas_device->sas_address,
+		    sas_device->port);
 		sas_target_priv_data->handle =
 		     MPT3SAS_INVALID_DEVICE_HANDLE;
 	}
@@ -6203,7 +7168,8 @@
 	if (!ioc->hide_drives)
 		mpt3sas_transport_port_remove(ioc,
 		    sas_device->sas_address,
-		    sas_device->sas_address_parent);
+		    sas_device->sas_address_parent,
+		    sas_device->port);
 
 	ioc_info(ioc, "removing handle(0x%04x), sas_addr(0x%016llx)\n",
 		 sas_device->handle, (u64)sas_device->sas_address);
@@ -6314,6 +7280,7 @@
 	u64 sas_address;
 	unsigned long flags;
 	u8 link_rate, prev_link_rate;
+	struct hba_port *port;
 	Mpi2EventDataSasTopologyChangeList_t *event_data =
 		(Mpi2EventDataSasTopologyChangeList_t *)
 		fw_event->event_data;
@@ -6335,6 +7302,7 @@
 	}
 
 	parent_handle = le16_to_cpu(event_data->ExpanderDevHandle);
+	port = mpt3sas_get_port_by_id(ioc, event_data->PhysicalPort, 0);
 
 	/* handle expander add */
 	if (event_data->ExpStatus == MPI2_EVENT_SAS_TOPO_ES_ADDED)
@@ -6347,6 +7315,7 @@
 	if (sas_expander) {
 		sas_address = sas_expander->sas_address;
 		max_phys = sas_expander->num_phys;
+		port = sas_expander->port;
 	} else if (parent_handle < ioc->sas_hba.num_phys) {
 		sas_address = ioc->sas_hba.sas_address;
 		max_phys = ioc->sas_hba.num_phys;
@@ -6389,7 +7358,7 @@
 				break;
 
 			mpt3sas_transport_update_links(ioc, sas_address,
-			    handle, phy_number, link_rate);
+			    handle, phy_number, link_rate, port);
 
 			if (link_rate < MPI2_SAS_NEG_LINK_RATE_1_5)
 				break;
@@ -6408,7 +7377,7 @@
 				break;
 
 			mpt3sas_transport_update_links(ioc, sas_address,
-			    handle, phy_number, link_rate);
+			    handle, phy_number, link_rate, port);
 
 			_scsih_add_device(ioc, handle, phy_number, 0);
 
@@ -6423,7 +7392,7 @@
 	/* handle expander removal */
 	if (event_data->ExpStatus == MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING &&
 	    sas_expander)
-		mpt3sas_expander_remove(ioc, sas_address);
+		mpt3sas_expander_remove(ioc, sas_address, port);
 
 	return 0;
 }
@@ -6524,7 +7493,8 @@
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
 	sas_address = le64_to_cpu(event_data->SASAddress);
 	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-	    sas_address);
+	    sas_address,
+	    mpt3sas_get_port_by_id(ioc, event_data->PhysicalPort, 0));
 
 	if (!sas_device || !sas_device->starget)
 		goto out;
@@ -6673,7 +7643,7 @@
 	if (pcie_device->starget && pcie_device->starget->hostdata) {
 		sas_target_priv_data = pcie_device->starget->hostdata;
 		sas_target_priv_data->deleted = 1;
-		_scsih_ublock_io_device(ioc, pcie_device->wwid);
+		_scsih_ublock_io_device(ioc, pcie_device->wwid, NULL);
 		sas_target_priv_data->handle = MPT3SAS_INVALID_DEVICE_HANDLE;
 	}
 
@@ -6795,7 +7765,7 @@
 	spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
 	pcie_device_put(pcie_device);
 
-	_scsih_ublock_io_device(ioc, wwid);
+	_scsih_ublock_io_device(ioc, wwid, NULL);
 
 	return;
 }
@@ -6933,6 +7903,16 @@
 	    le32_to_cpu(pcie_device_pg0.DeviceInfo)))) {
 		pcie_device->nvme_mdts =
 		    le32_to_cpu(pcie_device_pg2.MaximumDataTransferSize);
+		pcie_device->shutdown_latency =
+			le16_to_cpu(pcie_device_pg2.ShutdownLatency);
+		/*
+		 * Set IOC's max_shutdown_latency to drive's RTD3 Entry Latency
+		 * if drive's RTD3 Entry Latency is greater then IOC's
+		 * max_shutdown_latency.
+		 */
+		if (pcie_device->shutdown_latency > ioc->max_shutdown_latency)
+			ioc->max_shutdown_latency =
+				pcie_device->shutdown_latency;
 		if (pcie_device_pg2.ControllerResetTO)
 			pcie_device->reset_timeout =
 			    pcie_device_pg2.ControllerResetTO;
@@ -7669,10 +8649,9 @@
 	wait_for_completion_timeout(&ioc->scsih_cmds.done, 10*HZ);
 
 	if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
-		issue_reset =
-			mpt3sas_base_check_cmd_timeout(ioc,
-				ioc->scsih_cmds.status, mpi_request,
-				sizeof(Mpi2RaidActionRequest_t)/4);
+		mpt3sas_check_cmd_timeout(ioc,
+		    ioc->scsih_cmds.status, mpi_request,
+		    sizeof(Mpi2RaidActionRequest_t)/4, issue_reset);
 		rc = -EFAULT;
 		goto out;
 	}
@@ -7955,7 +8934,9 @@
 	parent_handle = le16_to_cpu(sas_device_pg0.ParentDevHandle);
 	if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address))
 		mpt3sas_transport_update_links(ioc, sas_address, handle,
-		    sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5);
+		    sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5,
+		    mpt3sas_get_port_by_id(ioc,
+		    sas_device_pg0.PhysicalPort, 0));
 
 	_scsih_ir_fastpath(ioc, handle, element->PhysDiskNum);
 	_scsih_add_device(ioc, handle, 0, 1);
@@ -8261,7 +9242,9 @@
 		parent_handle = le16_to_cpu(sas_device_pg0.ParentDevHandle);
 		if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address))
 			mpt3sas_transport_update_links(ioc, sas_address, handle,
-			    sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5);
+			    sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5,
+			    mpt3sas_get_port_by_id(ioc,
+			    sas_device_pg0.PhysicalPort, 0));
 
 		_scsih_add_device(ioc, handle, 0, 1);
 
@@ -8386,6 +9369,8 @@
 	struct _sas_device *sas_device = NULL;
 	struct _enclosure_node *enclosure_dev = NULL;
 	unsigned long flags;
+	struct hba_port *port = mpt3sas_get_port_by_id(
+	    ioc, sas_device_pg0->PhysicalPort, 0);
 
 	if (sas_device_pg0->EnclosureHandle) {
 		enclosure_dev =
@@ -8397,69 +9382,71 @@
 	}
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
 	list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
-		if ((sas_device->sas_address == le64_to_cpu(
-		    sas_device_pg0->SASAddress)) && (sas_device->slot ==
-		    le16_to_cpu(sas_device_pg0->Slot))) {
-			sas_device->responding = 1;
-			starget = sas_device->starget;
-			if (starget && starget->hostdata) {
-				sas_target_priv_data = starget->hostdata;
-				sas_target_priv_data->tm_busy = 0;
-				sas_target_priv_data->deleted = 0;
-			} else
-				sas_target_priv_data = NULL;
-			if (starget) {
-				starget_printk(KERN_INFO, starget,
-				    "handle(0x%04x), sas_addr(0x%016llx)\n",
-				    le16_to_cpu(sas_device_pg0->DevHandle),
-				    (unsigned long long)
-				    sas_device->sas_address);
+		if (sas_device->sas_address != le64_to_cpu(
+		    sas_device_pg0->SASAddress))
+			continue;
+		if (sas_device->slot != le16_to_cpu(sas_device_pg0->Slot))
+			continue;
+		if (sas_device->port != port)
+			continue;
+		sas_device->responding = 1;
+		starget = sas_device->starget;
+		if (starget && starget->hostdata) {
+			sas_target_priv_data = starget->hostdata;
+			sas_target_priv_data->tm_busy = 0;
+			sas_target_priv_data->deleted = 0;
+		} else
+			sas_target_priv_data = NULL;
+		if (starget) {
+			starget_printk(KERN_INFO, starget,
+			    "handle(0x%04x), sas_addr(0x%016llx)\n",
+			    le16_to_cpu(sas_device_pg0->DevHandle),
+			    (unsigned long long)
+			    sas_device->sas_address);
 
-				if (sas_device->enclosure_handle != 0)
-					starget_printk(KERN_INFO, starget,
-					 "enclosure logical id(0x%016llx),"
-					 " slot(%d)\n",
-					 (unsigned long long)
-					 sas_device->enclosure_logical_id,
-					 sas_device->slot);
-			}
-			if (le16_to_cpu(sas_device_pg0->Flags) &
-			      MPI2_SAS_DEVICE0_FLAGS_ENCL_LEVEL_VALID) {
-				sas_device->enclosure_level =
-				   sas_device_pg0->EnclosureLevel;
-				memcpy(&sas_device->connector_name[0],
-					&sas_device_pg0->ConnectorName[0], 4);
-			} else {
-				sas_device->enclosure_level = 0;
-				sas_device->connector_name[0] = '\0';
-			}
+			if (sas_device->enclosure_handle != 0)
+				starget_printk(KERN_INFO, starget,
+				 "enclosure logical id(0x%016llx), slot(%d)\n",
+				 (unsigned long long)
+				 sas_device->enclosure_logical_id,
+				 sas_device->slot);
+		}
+		if (le16_to_cpu(sas_device_pg0->Flags) &
+		      MPI2_SAS_DEVICE0_FLAGS_ENCL_LEVEL_VALID) {
+			sas_device->enclosure_level =
+			   sas_device_pg0->EnclosureLevel;
+			memcpy(&sas_device->connector_name[0],
+				&sas_device_pg0->ConnectorName[0], 4);
+		} else {
+			sas_device->enclosure_level = 0;
+			sas_device->connector_name[0] = '\0';
+		}
 
-			sas_device->enclosure_handle =
-				le16_to_cpu(sas_device_pg0->EnclosureHandle);
-			sas_device->is_chassis_slot_valid = 0;
-			if (enclosure_dev) {
-				sas_device->enclosure_logical_id = le64_to_cpu(
-					enclosure_dev->pg0.EnclosureLogicalID);
-				if (le16_to_cpu(enclosure_dev->pg0.Flags) &
-				    MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID) {
-					sas_device->is_chassis_slot_valid = 1;
-					sas_device->chassis_slot =
-						enclosure_dev->pg0.ChassisSlot;
-				}
+		sas_device->enclosure_handle =
+			le16_to_cpu(sas_device_pg0->EnclosureHandle);
+		sas_device->is_chassis_slot_valid = 0;
+		if (enclosure_dev) {
+			sas_device->enclosure_logical_id = le64_to_cpu(
+				enclosure_dev->pg0.EnclosureLogicalID);
+			if (le16_to_cpu(enclosure_dev->pg0.Flags) &
+			    MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID) {
+				sas_device->is_chassis_slot_valid = 1;
+				sas_device->chassis_slot =
+					enclosure_dev->pg0.ChassisSlot;
 			}
+		}
 
-			if (sas_device->handle == le16_to_cpu(
-			    sas_device_pg0->DevHandle))
-				goto out;
-			pr_info("\thandle changed from(0x%04x)!!!\n",
-			    sas_device->handle);
-			sas_device->handle = le16_to_cpu(
-			    sas_device_pg0->DevHandle);
-			if (sas_target_priv_data)
-				sas_target_priv_data->handle =
-				    le16_to_cpu(sas_device_pg0->DevHandle);
+		if (sas_device->handle == le16_to_cpu(
+		    sas_device_pg0->DevHandle))
 			goto out;
-		}
+		pr_info("\thandle changed from(0x%04x)!!!\n",
+		    sas_device->handle);
+		sas_device->handle = le16_to_cpu(
+		    sas_device_pg0->DevHandle);
+		if (sas_target_priv_data)
+			sas_target_priv_data->handle =
+			    le16_to_cpu(sas_device_pg0->DevHandle);
+		goto out;
 	}
  out:
 	spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
@@ -8810,6 +9797,8 @@
 	u16 handle = le16_to_cpu(expander_pg0->DevHandle);
 	u16 enclosure_handle = le16_to_cpu(expander_pg0->EnclosureHandle);
 	u64 sas_address = le64_to_cpu(expander_pg0->SASAddress);
+	struct hba_port *port = mpt3sas_get_port_by_id(
+	    ioc, expander_pg0->PhysicalPort, 0);
 
 	if (enclosure_handle)
 		enclosure_dev =
@@ -8820,6 +9809,8 @@
 	list_for_each_entry(sas_expander, &ioc->sas_expander_list, list) {
 		if (sas_expander->sas_address != sas_address)
 			continue;
+		if (sas_expander->port != port)
+			continue;
 		sas_expander->responding = 1;
 
 		if (enclosure_dev) {
@@ -8859,6 +9850,7 @@
 	u16 ioc_status;
 	u64 sas_address;
 	u16 handle;
+	u8 port;
 
 	ioc_info(ioc, "search for expanders: start\n");
 
@@ -8876,9 +9868,12 @@
 
 		handle = le16_to_cpu(expander_pg0.DevHandle);
 		sas_address = le64_to_cpu(expander_pg0.SASAddress);
-		pr_info("\texpander present: handle(0x%04x), sas_addr(0x%016llx)\n",
-			handle,
-		    (unsigned long long)sas_address);
+		port = expander_pg0.PhysicalPort;
+		pr_info(
+		    "\texpander present: handle(0x%04x), sas_addr(0x%016llx), port:%d\n",
+		    handle, (unsigned long long)sas_address,
+		    (ioc->multipath_on_hba ?
+		    port : MULTIPATH_DISABLED_PORT_ID));
 		_scsih_mark_responding_expander(ioc, &expander_pg0);
 	}
 
@@ -9000,7 +9995,8 @@
 
 		mpt3sas_transport_update_links(ioc, sas_expander->sas_address,
 		    le16_to_cpu(expander_pg1.AttachedDevHandle), i,
-		    expander_pg1.NegotiatedLinkRate >> 4);
+		    expander_pg1.NegotiatedLinkRate >> 4,
+		    sas_expander->port);
 	}
 }
 
@@ -9019,7 +10015,7 @@
 	Mpi2RaidPhysDiskPage0_t pd_pg0;
 	Mpi2EventIrConfigElement_t element;
 	Mpi2ConfigReply_t mpi_reply;
-	u8 phys_disk_num;
+	u8 phys_disk_num, port_id;
 	u16 ioc_status;
 	u16 handle, parent_handle;
 	u64 sas_address;
@@ -9049,8 +10045,10 @@
 		}
 		handle = le16_to_cpu(expander_pg0.DevHandle);
 		spin_lock_irqsave(&ioc->sas_node_lock, flags);
+		port_id = expander_pg0.PhysicalPort;
 		expander_device = mpt3sas_scsih_expander_find_by_sas_address(
-		    ioc, le64_to_cpu(expander_pg0.SASAddress));
+		    ioc, le64_to_cpu(expander_pg0.SASAddress),
+		    mpt3sas_get_port_by_id(ioc, port_id, 0));
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		if (expander_device)
 			_scsih_refresh_expander_links(ioc, expander_device,
@@ -9109,9 +10107,11 @@
 			ioc_info(ioc, "\tBEFORE adding phys disk: handle (0x%04x), sas_addr(0x%016llx)\n",
 				 handle,
 				 (u64)le64_to_cpu(sas_device_pg0.SASAddress));
+			port_id = sas_device_pg0.PhysicalPort;
 			mpt3sas_transport_update_links(ioc, sas_address,
 			    handle, sas_device_pg0.PhyNum,
-			    MPI2_SAS_NEG_LINK_RATE_1_5);
+			    MPI2_SAS_NEG_LINK_RATE_1_5,
+			    mpt3sas_get_port_by_id(ioc, port_id, 0));
 			set_bit(handle, ioc->pd_handles);
 			retry_count = 0;
 			/* This will retry adding the end device.
@@ -9197,8 +10197,10 @@
 		if (!(_scsih_is_end_device(
 		    le32_to_cpu(sas_device_pg0.DeviceInfo))))
 			continue;
+		port_id = sas_device_pg0.PhysicalPort;
 		sas_device = mpt3sas_get_sdev_by_addr(ioc,
-		    le64_to_cpu(sas_device_pg0.SASAddress));
+		    le64_to_cpu(sas_device_pg0.SASAddress),
+		    mpt3sas_get_port_by_id(ioc, port_id, 0));
 		if (sas_device) {
 			sas_device_put(sas_device);
 			continue;
@@ -9209,7 +10211,8 @@
 				 handle,
 				 (u64)le64_to_cpu(sas_device_pg0.SASAddress));
 			mpt3sas_transport_update_links(ioc, sas_address, handle,
-			    sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5);
+			    sas_device_pg0.PhyNum, MPI2_SAS_NEG_LINK_RATE_1_5,
+			    mpt3sas_get_port_by_id(ioc, port_id, 0));
 			retry_count = 0;
 			/* This will retry adding the end device.
 			 * _scsih_add_device() will decide on retries and
@@ -9272,15 +10275,17 @@
 }
 
 /**
- * mpt3sas_scsih_after_reset_handler - reset callback handler (for scsih)
+ * mpt3sas_scsih_clear_outstanding_scsi_tm_commands - clears outstanding
+ *							scsi & tm cmds.
  * @ioc: per adapter object
  *
  * The handler for doing any required cleanup or initialization.
  */
 void
-mpt3sas_scsih_after_reset_handler(struct MPT3SAS_ADAPTER *ioc)
+mpt3sas_scsih_clear_outstanding_scsi_tm_commands(struct MPT3SAS_ADAPTER *ioc)
 {
-	dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_AFTER_RESET\n", __func__));
+	dtmprintk(ioc,
+	    ioc_info(ioc, "%s: clear outstanding scsi & tm cmds\n", __func__));
 	if (ioc->scsih_cmds.status & MPT3_CMD_PENDING) {
 		ioc->scsih_cmds.status |= MPT3_CMD_RESET;
 		mpt3sas_base_free_smid(ioc, ioc->scsih_cmds.smid);
@@ -9311,6 +10316,10 @@
 	dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_DONE_RESET\n", __func__));
 	if ((!ioc->is_driver_loading) && !(disable_discovery > 0 &&
 					   !ioc->sas_hba.num_phys)) {
+		if (ioc->multipath_on_hba) {
+			_scsih_sas_port_refresh(ioc);
+			_scsih_update_vphys_after_reset(ioc);
+		}
 		_scsih_prep_device_scan(ioc);
 		_scsih_create_enclosure_list_after_reset(ioc);
 		_scsih_search_responding_sas_devices(ioc);
@@ -9356,7 +10365,10 @@
 			ssleep(1);
 		}
 		_scsih_remove_unresponding_devices(ioc);
+		_scsih_del_dirty_vphy(ioc);
+		_scsih_del_dirty_port_entries(ioc);
 		_scsih_scan_for_devices_after_reset(ioc);
+		_scsih_set_nvme_max_shutdown_latency(ioc);
 		break;
 	case MPT3SAS_PORT_ENABLE_COMPLETE:
 		ioc->start_scan = 0;
@@ -9635,21 +10647,25 @@
 		if (mpt3sas_port->remote_identify.device_type ==
 		    SAS_END_DEVICE)
 			mpt3sas_device_remove_by_sas_address(ioc,
-			    mpt3sas_port->remote_identify.sas_address);
+			    mpt3sas_port->remote_identify.sas_address,
+			    mpt3sas_port->hba_port);
 		else if (mpt3sas_port->remote_identify.device_type ==
 		    SAS_EDGE_EXPANDER_DEVICE ||
 		    mpt3sas_port->remote_identify.device_type ==
 		    SAS_FANOUT_EXPANDER_DEVICE)
 			mpt3sas_expander_remove(ioc,
-			    mpt3sas_port->remote_identify.sas_address);
+			    mpt3sas_port->remote_identify.sas_address,
+			    mpt3sas_port->hba_port);
 	}
 
 	mpt3sas_transport_port_remove(ioc, sas_expander->sas_address,
-	    sas_expander->sas_address_parent);
+	    sas_expander->sas_address_parent, sas_expander->port);
 
-	ioc_info(ioc, "expander_remove: handle(0x%04x), sas_addr(0x%016llx)\n",
-		 sas_expander->handle, (unsigned long long)
-		 sas_expander->sas_address);
+	ioc_info(ioc,
+	    "expander_remove: handle(0x%04x), sas_addr(0x%016llx), port:%d\n",
+	    sas_expander->handle, (unsigned long long)
+	    sas_expander->sas_address,
+	    sas_expander->port->port_id);
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	list_del(&sas_expander->list);
@@ -9660,6 +10676,75 @@
 }
 
 /**
+ * _scsih_nvme_shutdown - NVMe shutdown notification
+ * @ioc: per adapter object
+ *
+ * Sending IoUnitControl request with shutdown operation code to alert IOC that
+ * the host system is shutting down so that IOC can issue NVMe shutdown to
+ * NVMe drives attached to it.
+ */
+static void
+_scsih_nvme_shutdown(struct MPT3SAS_ADAPTER *ioc)
+{
+	Mpi26IoUnitControlRequest_t *mpi_request;
+	Mpi26IoUnitControlReply_t *mpi_reply;
+	u16 smid;
+
+	/* are there any NVMe devices ? */
+	if (list_empty(&ioc->pcie_device_list))
+		return;
+
+	mutex_lock(&ioc->scsih_cmds.mutex);
+
+	if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) {
+		ioc_err(ioc, "%s: scsih_cmd in use\n", __func__);
+		goto out;
+	}
+
+	ioc->scsih_cmds.status = MPT3_CMD_PENDING;
+
+	smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx);
+	if (!smid) {
+		ioc_err(ioc,
+		    "%s: failed obtaining a smid\n", __func__);
+		ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
+		goto out;
+	}
+
+	mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
+	ioc->scsih_cmds.smid = smid;
+	memset(mpi_request, 0, sizeof(Mpi26IoUnitControlRequest_t));
+	mpi_request->Function = MPI2_FUNCTION_IO_UNIT_CONTROL;
+	mpi_request->Operation = MPI26_CTRL_OP_SHUTDOWN;
+
+	init_completion(&ioc->scsih_cmds.done);
+	ioc->put_smid_default(ioc, smid);
+	/* Wait for max_shutdown_latency seconds */
+	ioc_info(ioc,
+		"Io Unit Control shutdown (sending), Shutdown latency %d sec\n",
+		ioc->max_shutdown_latency);
+	wait_for_completion_timeout(&ioc->scsih_cmds.done,
+			ioc->max_shutdown_latency*HZ);
+
+	if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
+		ioc_err(ioc, "%s: timeout\n", __func__);
+		goto out;
+	}
+
+	if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) {
+		mpi_reply = ioc->scsih_cmds.reply;
+		ioc_info(ioc, "Io Unit Control shutdown (complete):"
+			"ioc_status(0x%04x), loginfo(0x%08x)\n",
+			le16_to_cpu(mpi_reply->IOCStatus),
+			le32_to_cpu(mpi_reply->IOCLogInfo));
+	}
+ out:
+	ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
+	mutex_unlock(&ioc->scsih_cmds.mutex);
+}
+
+
+/**
  * _scsih_ir_shutdown - IR shutdown notification
  * @ioc: per adapter object
  *
@@ -9744,11 +10829,12 @@
 	struct workqueue_struct	*wq;
 	unsigned long flags;
 	Mpi2ConfigReply_t mpi_reply;
+	struct hba_port *port, *port_next;
 
 	ioc->remove_host = 1;
 
-	mpt3sas_wait_for_commands_to_complete(ioc);
-	_scsih_flush_running_cmds(ioc);
+	if (!pci_device_is_present(pdev))
+		_scsih_flush_running_cmds(ioc);
 
 	_scsih_fw_event_cleanup_queue(ioc);
 
@@ -9793,13 +10879,21 @@
 		if (mpt3sas_port->remote_identify.device_type ==
 		    SAS_END_DEVICE)
 			mpt3sas_device_remove_by_sas_address(ioc,
-			    mpt3sas_port->remote_identify.sas_address);
+			    mpt3sas_port->remote_identify.sas_address,
+			    mpt3sas_port->hba_port);
 		else if (mpt3sas_port->remote_identify.device_type ==
 		    SAS_EDGE_EXPANDER_DEVICE ||
 		    mpt3sas_port->remote_identify.device_type ==
 		    SAS_FANOUT_EXPANDER_DEVICE)
 			mpt3sas_expander_remove(ioc,
-			    mpt3sas_port->remote_identify.sas_address);
+			    mpt3sas_port->remote_identify.sas_address,
+			    mpt3sas_port->hba_port);
+	}
+
+	list_for_each_entry_safe(port, port_next,
+	    &ioc->port_table_list, list) {
+		list_del(&port->list);
+		kfree(port);
 	}
 
 	/* free phys attached to the sas_host */
@@ -9831,8 +10925,8 @@
 
 	ioc->remove_host = 1;
 
-	mpt3sas_wait_for_commands_to_complete(ioc);
-	_scsih_flush_running_cmds(ioc);
+	if (!pci_device_is_present(pdev))
+		_scsih_flush_running_cmds(ioc);
 
 	_scsih_fw_event_cleanup_queue(ioc);
 
@@ -9851,6 +10945,7 @@
 				&ioc->ioc_pg1_copy);
 
 	_scsih_ir_shutdown(ioc);
+	_scsih_nvme_shutdown(ioc);
 	mpt3sas_base_detach(ioc);
 }
 
@@ -9877,6 +10972,7 @@
 	unsigned long flags;
 	int rc;
 	int tid;
+	struct hba_port *port;
 
 	 /* no Bios, return immediately */
 	if (!ioc->bios_pg3.BiosVersion)
@@ -9918,19 +11014,24 @@
 		handle = sas_device->handle;
 		sas_address_parent = sas_device->sas_address_parent;
 		sas_address = sas_device->sas_address;
+		port = sas_device->port;
 		list_move_tail(&sas_device->list, &ioc->sas_device_list);
 		spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
 
 		if (ioc->hide_drives)
 			return;
+
+		if (!port)
+			return;
+
 		if (!mpt3sas_transport_port_add(ioc, handle,
-		    sas_address_parent)) {
+		    sas_address_parent, port)) {
 			_scsih_sas_device_remove(ioc, sas_device);
 		} else if (!sas_device->starget) {
 			if (!ioc->is_driver_loading) {
 				mpt3sas_transport_port_remove(ioc,
 				    sas_address,
-				    sas_address_parent);
+				    sas_address_parent, port);
 				_scsih_sas_device_remove(ioc, sas_device);
 			}
 		}
@@ -10018,7 +11119,7 @@
 
 	while ((sas_device = get_next_sas_device(ioc))) {
 		if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
-		    sas_device->sas_address_parent)) {
+		    sas_device->sas_address_parent, sas_device->port)) {
 			_scsih_sas_device_remove(ioc, sas_device);
 			sas_device_put(sas_device);
 			continue;
@@ -10032,7 +11133,8 @@
 			if (!ioc->is_driver_loading) {
 				mpt3sas_transport_port_remove(ioc,
 				    sas_device->sas_address,
-				    sas_device->sas_address_parent);
+				    sas_device->sas_address_parent,
+				    sas_device->port);
 				_scsih_sas_device_remove(ioc, sas_device);
 				sas_device_put(sas_device);
 				continue;
@@ -10193,6 +11295,8 @@
 	int rc;
 	if (diag_buffer_enable != -1 && diag_buffer_enable != 0)
 		mpt3sas_enable_diag_buffer(ioc, diag_buffer_enable);
+	else if (ioc->manu_pg11.HostTraceBufferMaxSizeKB != 0)
+		mpt3sas_enable_diag_buffer(ioc, 1);
 
 	if (disable_discovery > 0)
 		return;
@@ -10460,6 +11564,12 @@
 			ioc->mfg_pg10_hide_flag = MFG_PAGE10_EXPOSE_ALL_DISKS;
 			break;
 		}
+
+		if (multipath_on_hba == -1 || multipath_on_hba == 0)
+			ioc->multipath_on_hba = 0;
+		else
+			ioc->multipath_on_hba = 1;
+
 		break;
 	case MPI25_VERSION:
 	case MPI26_VERSION:
@@ -10507,6 +11617,23 @@
 				ioc->combined_reply_index_count =
 				 MPT3_SUP_REPLY_POST_HOST_INDEX_REG_COUNT_G3;
 		}
+
+		switch (ioc->is_gen35_ioc) {
+		case 0:
+			if (multipath_on_hba == -1 || multipath_on_hba == 0)
+				ioc->multipath_on_hba = 0;
+			else
+				ioc->multipath_on_hba = 1;
+			break;
+		case 1:
+			if (multipath_on_hba == -1 || multipath_on_hba > 0)
+				ioc->multipath_on_hba = 1;
+			else
+				ioc->multipath_on_hba = 0;
+		default:
+			break;
+		}
+
 		break;
 	default:
 		return -ENODEV;
@@ -10531,6 +11658,8 @@
 	ioc->tm_sas_control_cb_idx = tm_sas_control_cb_idx;
 	ioc->logging_level = logging_level;
 	ioc->schedule_dead_ioc_flush_running_cmds = &_scsih_flush_running_cmds;
+	/* Host waits for minimum of six seconds */
+	ioc->max_shutdown_latency = IO_UNIT_CONTROL_SHUTDOWN_TIMEOUT;
 	/*
 	 * Enable MEMORY MOVE support flag.
 	 */
@@ -10565,6 +11694,7 @@
 	INIT_LIST_HEAD(&ioc->delayed_event_ack_list);
 	INIT_LIST_HEAD(&ioc->delayed_tr_volume_list);
 	INIT_LIST_HEAD(&ioc->reply_queue_list);
+	INIT_LIST_HEAD(&ioc->port_table_list);
 
 	sprintf(ioc->name, "%s_cm%d", ioc->driver_name, ioc->id);
 
@@ -10679,6 +11809,7 @@
 	mpt3sas_base_stop_watchdog(ioc);
 	flush_scheduled_work();
 	scsi_block_requests(shost);
+	_scsih_nvme_shutdown(ioc);
 	device_state = pci_choose_state(pdev, state);
 	ioc_info(ioc, "pdev=0x%p, slot=%s, entering operating state [D%d]\n",
 		 pdev, pci_name(pdev), device_state);
@@ -10713,7 +11844,7 @@
 	r = mpt3sas_base_map_resources(ioc);
 	if (r)
 		return r;
-
+	ioc_info(ioc, "Issuing Hard Reset as part of OS Resume\n");
 	mpt3sas_base_hard_reset_handler(ioc, SOFT_RESET);
 	scsi_unblock_requests(shost);
 	mpt3sas_base_start_watchdog(ioc);
@@ -10782,6 +11913,7 @@
 	if (rc)
 		return PCI_ERS_RESULT_DISCONNECT;
 
+	ioc_info(ioc, "Issuing Hard Reset as part of PCI Slot Reset\n");
 	rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
 
 	ioc_warn(ioc, "hard reset: %s\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_transport.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_transport.c
@@ -61,9 +61,28 @@
 #include "mpt3sas_base.h"
 
 /**
+ * _transport_get_port_id_by_sas_phy - get zone's port id that Phy belong to
+ * @phy - sas_phy object
+ *
+ * Return Port number
+ */
+static inline u8
+_transport_get_port_id_by_sas_phy(struct sas_phy *phy)
+{
+	u8 port_id = 0xFF;
+	struct hba_port *port = phy->hostdata;
+
+	if (port)
+		port_id = port->port_id;
+
+	return port_id;
+}
+
+/**
  * _transport_sas_node_find_by_sas_address - sas node search
  * @ioc: per adapter object
  * @sas_address: sas address of expander or sas host
+ * @port: hba port entry
  * Context: Calling function should acquire ioc->sas_node_lock.
  *
  * Search for either hba phys or expander device based on handle, then returns
@@ -71,13 +90,56 @@
  */
 static struct _sas_node *
 _transport_sas_node_find_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *port)
 {
 	if (ioc->sas_hba.sas_address == sas_address)
 		return &ioc->sas_hba;
 	else
 		return mpt3sas_scsih_expander_find_by_sas_address(ioc,
-		    sas_address);
+		    sas_address, port);
+}
+
+/**
+ * _transport_get_port_id_by_rphy - Get Port number from rphy object
+ * @ioc: per adapter object
+ * @rphy: sas_rphy object
+ *
+ * Returns Port number.
+ */
+static u8
+_transport_get_port_id_by_rphy(struct MPT3SAS_ADAPTER *ioc,
+	struct sas_rphy *rphy)
+{
+	struct _sas_node *sas_expander;
+	struct _sas_device *sas_device;
+	unsigned long flags;
+	u8 port_id = 0xFF;
+
+	if (!rphy)
+		return port_id;
+
+	if (rphy->identify.device_type == SAS_EDGE_EXPANDER_DEVICE ||
+	    rphy->identify.device_type == SAS_FANOUT_EXPANDER_DEVICE) {
+		spin_lock_irqsave(&ioc->sas_node_lock, flags);
+		list_for_each_entry(sas_expander,
+		    &ioc->sas_expander_list, list) {
+			if (sas_expander->rphy == rphy) {
+				port_id = sas_expander->port->port_id;
+				break;
+			}
+		}
+		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
+	} else if (rphy->identify.device_type == SAS_END_DEVICE) {
+		spin_lock_irqsave(&ioc->sas_device_lock, flags);
+		sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
+		if (sas_device) {
+			port_id = sas_device->port->port_id;
+			sas_device_put(sas_device);
+		}
+		spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
+	}
+
+	return port_id;
 }
 
 /**
@@ -288,7 +350,7 @@
  */
 static int
 _transport_expander_report_manufacture(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address, struct sas_expander_device *edev)
+	u64 sas_address, struct sas_expander_device *edev, u8 port_id)
 {
 	Mpi2SmpPassthroughRequest_t *mpi_request;
 	Mpi2SmpPassthroughReply_t *mpi_reply;
@@ -355,7 +417,7 @@
 
 	memset(mpi_request, 0, sizeof(Mpi2SmpPassthroughRequest_t));
 	mpi_request->Function = MPI2_FUNCTION_SMP_PASSTHROUGH;
-	mpi_request->PhysicalPort = 0xFF;
+	mpi_request->PhysicalPort = port_id;
 	mpi_request->SASAddress = cpu_to_le64(sas_address);
 	mpi_request->RequestDataLength = cpu_to_le16(data_out_sz);
 	psge = &mpi_request->SGL;
@@ -439,6 +501,7 @@
 	struct _sas_port *mpt3sas_port)
 {
 	u64 sas_address = mpt3sas_port->remote_identify.sas_address;
+	struct hba_port *port = mpt3sas_port->hba_port;
 	enum sas_device_type device_type =
 	    mpt3sas_port->remote_identify.device_type;
 
@@ -448,10 +511,11 @@
 
 	ioc->logging_level |= MPT_DEBUG_TRANSPORT;
 	if (device_type == SAS_END_DEVICE)
-		mpt3sas_device_remove_by_sas_address(ioc, sas_address);
+		mpt3sas_device_remove_by_sas_address(ioc,
+		    sas_address, port);
 	else if (device_type == SAS_EDGE_EXPANDER_DEVICE ||
 	    device_type == SAS_FANOUT_EXPANDER_DEVICE)
-		mpt3sas_expander_remove(ioc, sas_address);
+		mpt3sas_expander_remove(ioc, sas_address, port);
 	ioc->logging_level &= ~MPT_DEBUG_TRANSPORT;
 }
 
@@ -500,16 +564,17 @@
 }
 
 /**
- * _transport_add_phy_to_an_existing_port - adding new phy to existing port
+ * mpt3sas_transport_add_phy_to_an_existing_port - adding new phy to existing port
  * @ioc: per adapter object
  * @sas_node: sas node object (either expander or sas host)
  * @mpt3sas_phy: mpt3sas per phy object
  * @sas_address: sas address of device/expander were phy needs to be added to
+ * @port: hba port entry
  */
-static void
-_transport_add_phy_to_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
+void
+mpt3sas_transport_add_phy_to_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
 	struct _sas_node *sas_node, struct _sas_phy *mpt3sas_phy,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *port)
 {
 	struct _sas_port *mpt3sas_port;
 	struct _sas_phy *phy_srch;
@@ -517,11 +582,16 @@
 	if (mpt3sas_phy->phy_belongs_to_port == 1)
 		return;
 
+	if (!port)
+		return;
+
 	list_for_each_entry(mpt3sas_port, &sas_node->sas_port_list,
 	    port_list) {
 		if (mpt3sas_port->remote_identify.sas_address !=
 		    sas_address)
 			continue;
+		if (mpt3sas_port->hba_port != port)
+			continue;
 		list_for_each_entry(phy_srch, &mpt3sas_port->phy_list,
 		    port_siblings) {
 			if (phy_srch == mpt3sas_phy)
@@ -534,13 +604,13 @@
 }
 
 /**
- * _transport_del_phy_from_an_existing_port - delete phy from existing port
+ * mpt3sas_transport_del_phy_from_an_existing_port - delete phy from existing port
  * @ioc: per adapter object
  * @sas_node: sas node object (either expander or sas host)
  * @mpt3sas_phy: mpt3sas per phy object
  */
-static void
-_transport_del_phy_from_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
+void
+mpt3sas_transport_del_phy_from_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
 	struct _sas_node *sas_node, struct _sas_phy *mpt3sas_phy)
 {
 	struct _sas_port *mpt3sas_port, *next;
@@ -556,7 +626,11 @@
 			if (phy_srch != mpt3sas_phy)
 				continue;
 
-			if (mpt3sas_port->num_phys == 1)
+			/*
+			 * Don't delete port during host reset,
+			 * just delete phy.
+			 */
+			if (mpt3sas_port->num_phys == 1 && !ioc->shost_recovery)
 				_transport_delete_port(ioc, mpt3sas_port);
 			else
 				_transport_delete_phy(ioc, mpt3sas_port,
@@ -571,21 +645,24 @@
  * @ioc: per adapter object
  * @sas_node: sas node object (either expander or sas host)
  * @sas_address: sas address of device being added
+ * @port: hba port entry
  *
  * See the explanation above from _transport_delete_duplicate_port
  */
 static void
 _transport_sanity_check(struct MPT3SAS_ADAPTER *ioc, struct _sas_node *sas_node,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *port)
 {
 	int i;
 
 	for (i = 0; i < sas_node->num_phys; i++) {
 		if (sas_node->phy[i].remote_identify.sas_address != sas_address)
 			continue;
+		if (sas_node->phy[i].port != port)
+			continue;
 		if (sas_node->phy[i].phy_belongs_to_port == 1)
-			_transport_del_phy_from_an_existing_port(ioc, sas_node,
-			    &sas_node->phy[i]);
+			mpt3sas_transport_del_phy_from_an_existing_port(ioc,
+			    sas_node, &sas_node->phy[i]);
 	}
 }
 
@@ -594,6 +671,7 @@
  * @ioc: per adapter object
  * @handle: handle of attached device
  * @sas_address: sas address of parent expander or sas host
+ * @port: hba port entry
  * Context: This function will acquire ioc->sas_node_lock.
  *
  * Adding new port object to the sas_node->sas_port_list.
@@ -602,7 +680,7 @@
  */
 struct _sas_port *
 mpt3sas_transport_port_add(struct MPT3SAS_ADAPTER *ioc, u16 handle,
-	u64 sas_address)
+	u64 sas_address, struct hba_port *hba_port)
 {
 	struct _sas_phy *mpt3sas_phy, *next;
 	struct _sas_port *mpt3sas_port;
@@ -612,6 +690,13 @@
 	struct _sas_device *sas_device = NULL;
 	int i;
 	struct sas_port *port;
+	struct virtual_phy *vphy = NULL;
+
+	if (!hba_port) {
+		ioc_err(ioc, "failure at %s:%d/%s()!\n",
+		    __FILE__, __LINE__, __func__);
+		return NULL;
+	}
 
 	mpt3sas_port = kzalloc(sizeof(struct _sas_port),
 	    GFP_KERNEL);
@@ -624,7 +709,8 @@
 	INIT_LIST_HEAD(&mpt3sas_port->port_list);
 	INIT_LIST_HEAD(&mpt3sas_port->phy_list);
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
-	sas_node = _transport_sas_node_find_by_sas_address(ioc, sas_address);
+	sas_node = _transport_sas_node_find_by_sas_address(ioc,
+	    sas_address, hba_port);
 	spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 
 	if (!sas_node) {
@@ -646,16 +732,32 @@
 		goto out_fail;
 	}
 
+	mpt3sas_port->hba_port = hba_port;
 	_transport_sanity_check(ioc, sas_node,
-	    mpt3sas_port->remote_identify.sas_address);
+	    mpt3sas_port->remote_identify.sas_address, hba_port);
 
 	for (i = 0; i < sas_node->num_phys; i++) {
 		if (sas_node->phy[i].remote_identify.sas_address !=
 		    mpt3sas_port->remote_identify.sas_address)
 			continue;
+		if (sas_node->phy[i].port != hba_port)
+			continue;
 		list_add_tail(&sas_node->phy[i].port_siblings,
 		    &mpt3sas_port->phy_list);
 		mpt3sas_port->num_phys++;
+		if (sas_node->handle <= ioc->sas_hba.num_phys) {
+			if (!sas_node->phy[i].hba_vphy) {
+				hba_port->phy_mask |= (1 << i);
+				continue;
+			}
+
+			vphy = mpt3sas_get_vphy_by_phy(ioc, hba_port, i);
+			if (!vphy) {
+				ioc_err(ioc, "failure at %s:%d/%s()!\n",
+				    __FILE__, __LINE__, __func__);
+				goto out_fail;
+			}
+		}
 	}
 
 	if (!mpt3sas_port->num_phys) {
@@ -664,6 +766,18 @@
 		goto out_fail;
 	}
 
+	if (mpt3sas_port->remote_identify.device_type == SAS_END_DEVICE) {
+		sas_device = mpt3sas_get_sdev_by_addr(ioc,
+		    mpt3sas_port->remote_identify.sas_address,
+		    mpt3sas_port->hba_port);
+		if (!sas_device) {
+			ioc_err(ioc, "failure at %s:%d/%s()!\n",
+			    __FILE__, __LINE__, __func__);
+			goto out_fail;
+		}
+		sas_device->pend_sas_rphy_add = 1;
+	}
+
 	if (!sas_node->parent_dev) {
 		ioc_err(ioc, "failure at %s:%d/%s()!\n",
 			__FILE__, __LINE__, __func__);
@@ -686,29 +800,31 @@
 			    mpt3sas_phy->phy_id);
 		sas_port_add_phy(port, mpt3sas_phy->phy);
 		mpt3sas_phy->phy_belongs_to_port = 1;
+		mpt3sas_phy->port = hba_port;
 	}
 
 	mpt3sas_port->port = port;
-	if (mpt3sas_port->remote_identify.device_type == SAS_END_DEVICE)
+	if (mpt3sas_port->remote_identify.device_type == SAS_END_DEVICE) {
 		rphy = sas_end_device_alloc(port);
-	else
+		sas_device->rphy = rphy;
+		if (sas_node->handle <= ioc->sas_hba.num_phys) {
+			if (!vphy)
+				hba_port->sas_address =
+				    sas_device->sas_address;
+			else
+				vphy->sas_address =
+				    sas_device->sas_address;
+		}
+	} else {
 		rphy = sas_expander_alloc(port,
 		    mpt3sas_port->remote_identify.device_type);
+		if (sas_node->handle <= ioc->sas_hba.num_phys)
+			hba_port->sas_address =
+			    mpt3sas_port->remote_identify.sas_address;
+	}
 
 	rphy->identify = mpt3sas_port->remote_identify;
 
-	if (mpt3sas_port->remote_identify.device_type == SAS_END_DEVICE) {
-		sas_device = mpt3sas_get_sdev_by_addr(ioc,
-				    mpt3sas_port->remote_identify.sas_address);
-		if (!sas_device) {
-			dfailprintk(ioc,
-				    ioc_info(ioc, "failure at %s:%d/%s()!\n",
-					     __FILE__, __LINE__, __func__));
-			goto out_fail;
-		}
-		sas_device->pend_sas_rphy_add = 1;
-	}
-
 	if ((sas_rphy_add(rphy))) {
 		ioc_err(ioc, "failure at %s:%d/%s()!\n",
 			__FILE__, __LINE__, __func__);
@@ -719,11 +835,10 @@
 		sas_device_put(sas_device);
 	}
 
-	if ((ioc->logging_level & MPT_DEBUG_TRANSPORT))
-		dev_printk(KERN_INFO, &rphy->dev,
-			"add: handle(0x%04x), sas_addr(0x%016llx)\n",
-			handle, (unsigned long long)
-		    mpt3sas_port->remote_identify.sas_address);
+	dev_info(&rphy->dev,
+	    "add: handle(0x%04x), sas_addr(0x%016llx)\n", handle,
+	    (unsigned long long)mpt3sas_port->remote_identify.sas_address);
+
 	mpt3sas_port->rphy = rphy;
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	list_add_tail(&mpt3sas_port->port_list, &sas_node->sas_port_list);
@@ -736,7 +851,7 @@
 	    MPI2_SAS_DEVICE_INFO_FANOUT_EXPANDER)
 		_transport_expander_report_manufacture(ioc,
 		    mpt3sas_port->remote_identify.sas_address,
-		    rphy_to_expander_device(rphy));
+		    rphy_to_expander_device(rphy), hba_port->port_id);
 	return mpt3sas_port;
 
  out_fail:
@@ -752,6 +867,7 @@
  * @ioc: per adapter object
  * @sas_address: sas address of attached device
  * @sas_address_parent: sas address of parent expander or sas host
+ * @port: hba port entry
  * Context: This function will acquire ioc->sas_node_lock.
  *
  * Removing object and freeing associated memory from the
@@ -759,7 +875,7 @@
  */
 void
 mpt3sas_transport_port_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
-	u64 sas_address_parent)
+	u64 sas_address_parent, struct hba_port *port)
 {
 	int i;
 	unsigned long flags;
@@ -767,10 +883,15 @@
 	struct _sas_node *sas_node;
 	u8 found = 0;
 	struct _sas_phy *mpt3sas_phy, *next_phy;
+	struct hba_port *hba_port_next, *hba_port = NULL;
+	struct virtual_phy *vphy, *vphy_next = NULL;
+
+	if (!port)
+		return;
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	sas_node = _transport_sas_node_find_by_sas_address(ioc,
-	    sas_address_parent);
+	    sas_address_parent, port);
 	if (!sas_node) {
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		return;
@@ -779,6 +900,8 @@
 	    port_list) {
 		if (mpt3sas_port->remote_identify.sas_address != sas_address)
 			continue;
+		if (mpt3sas_port->hba_port != port)
+			continue;
 		found = 1;
 		list_del(&mpt3sas_port->port_list);
 		goto out;
@@ -789,6 +912,61 @@
 		return;
 	}
 
+	if (sas_node->handle <= ioc->sas_hba.num_phys &&
+	    (ioc->multipath_on_hba)) {
+		if (port->vphys_mask) {
+			list_for_each_entry_safe(vphy, vphy_next,
+			    &port->vphys_list, list) {
+				if (vphy->sas_address != sas_address)
+					continue;
+				ioc_info(ioc,
+				    "remove vphy entry: %p of port:%p,from %d port's vphys list\n",
+				    vphy, port, port->port_id);
+				port->vphys_mask &= ~vphy->phy_mask;
+				list_del(&vphy->list);
+				kfree(vphy);
+			}
+		}
+
+		list_for_each_entry_safe(hba_port, hba_port_next,
+		    &ioc->port_table_list, list) {
+			if (hba_port != port)
+				continue;
+			/*
+			 * Delete hba_port object if
+			 *  - hba_port object's sas address matches with current
+			 *    removed device's sas address and no vphy's
+			 *    associated with it.
+			 *  - Current removed device is a vSES device and
+			 *    none of the other direct attached device have
+			 *    this vSES device's port number (hence hba_port
+			 *    object sas_address field will be zero).
+			 */
+			if ((hba_port->sas_address == sas_address ||
+			    !hba_port->sas_address) && !hba_port->vphys_mask) {
+				ioc_info(ioc,
+				    "remove hba_port entry: %p port: %d from hba_port list\n",
+				    hba_port, hba_port->port_id);
+				list_del(&hba_port->list);
+				kfree(hba_port);
+			} else if (hba_port->sas_address == sas_address &&
+			    hba_port->vphys_mask) {
+				/*
+				 * Current removed device is a non vSES device
+				 * and a vSES device has the same port number
+				 * as of current device's port number. Hence
+				 * only clear the sas_address filed, don't
+				 * delete the hba_port object.
+				 */
+				ioc_info(ioc,
+				    "clearing sas_address from hba_port entry: %p port: %d from hba_port list\n",
+				    hba_port, hba_port->port_id);
+				port->sas_address = 0;
+			}
+			break;
+		}
+	}
+
 	for (i = 0; i < sas_node->num_phys; i++) {
 		if (sas_node->phy[i].remote_identify.sas_address == sas_address)
 			memset(&sas_node->phy[i].remote_identify, 0 ,
@@ -813,6 +991,8 @@
 	}
 	if (!ioc->remove_host)
 		sas_port_delete(mpt3sas_port->port);
+	ioc_info(ioc, "%s: removed: sas_addr(0x%016llx)\n",
+	    __func__, (unsigned long long)sas_address);
 	kfree(mpt3sas_port);
 }
 
@@ -863,6 +1043,7 @@
 	    phy_pg0.ProgrammedLinkRate & MPI2_SAS_PRATE_MIN_RATE_MASK);
 	phy->maximum_linkrate = _transport_convert_phy_link_rate(
 	    phy_pg0.ProgrammedLinkRate >> 4);
+	phy->hostdata = mpt3sas_phy->port;
 
 	if ((sas_phy_add(phy))) {
 		ioc_err(ioc, "failure at %s:%d/%s()!\n",
@@ -933,6 +1114,7 @@
 	    expander_pg1.ProgrammedLinkRate & MPI2_SAS_PRATE_MIN_RATE_MASK);
 	phy->maximum_linkrate = _transport_convert_phy_link_rate(
 	    expander_pg1.ProgrammedLinkRate >> 4);
+	phy->hostdata = mpt3sas_phy->port;
 
 	if ((sas_phy_add(phy))) {
 		ioc_err(ioc, "failure at %s:%d/%s()!\n",
@@ -960,20 +1142,26 @@
  * @handle: attached device handle
  * @phy_number: phy number
  * @link_rate: new link rate
+ * @port: hba port entry
+ *
+ * Return nothing.
  */
 void
 mpt3sas_transport_update_links(struct MPT3SAS_ADAPTER *ioc,
-	u64 sas_address, u16 handle, u8 phy_number, u8 link_rate)
+	u64 sas_address, u16 handle, u8 phy_number, u8 link_rate,
+	struct hba_port *port)
 {
 	unsigned long flags;
 	struct _sas_node *sas_node;
 	struct _sas_phy *mpt3sas_phy;
+	struct hba_port *hba_port = NULL;
 
 	if (ioc->shost_recovery || ioc->pci_error_recovery)
 		return;
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
-	sas_node = _transport_sas_node_find_by_sas_address(ioc, sas_address);
+	sas_node = _transport_sas_node_find_by_sas_address(ioc,
+	    sas_address, port);
 	if (!sas_node) {
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		return;
@@ -985,8 +1173,19 @@
 	if (handle && (link_rate >= MPI2_SAS_NEG_LINK_RATE_1_5)) {
 		_transport_set_identify(ioc, handle,
 		    &mpt3sas_phy->remote_identify);
-		_transport_add_phy_to_an_existing_port(ioc, sas_node,
-		    mpt3sas_phy, mpt3sas_phy->remote_identify.sas_address);
+		if ((sas_node->handle <= ioc->sas_hba.num_phys) &&
+		    (ioc->multipath_on_hba)) {
+			list_for_each_entry(hba_port,
+			    &ioc->port_table_list, list) {
+				if (hba_port->sas_address == sas_address &&
+				    hba_port == port)
+					hba_port->phy_mask |=
+					    (1 << mpt3sas_phy->phy_id);
+			}
+		}
+		mpt3sas_transport_add_phy_to_an_existing_port(ioc, sas_node,
+		    mpt3sas_phy, mpt3sas_phy->remote_identify.sas_address,
+		    port);
 	} else
 		memset(&mpt3sas_phy->remote_identify, 0 , sizeof(struct
 		    sas_identify));
@@ -1121,7 +1320,7 @@
 
 	memset(mpi_request, 0, sizeof(Mpi2SmpPassthroughRequest_t));
 	mpi_request->Function = MPI2_FUNCTION_SMP_PASSTHROUGH;
-	mpi_request->PhysicalPort = 0xFF;
+	mpi_request->PhysicalPort = _transport_get_port_id_by_sas_phy(phy);
 	mpi_request->VF_ID = 0; /* TODO */
 	mpi_request->VP_ID = 0;
 	mpi_request->SASAddress = cpu_to_le64(phy->identify.sas_address);
@@ -1211,10 +1410,13 @@
 	unsigned long flags;
 	Mpi2ConfigReply_t mpi_reply;
 	Mpi2SasPhyPage1_t phy_pg1;
+	struct hba_port *port = phy->hostdata;
+	int port_id = port->port_id;
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	if (_transport_sas_node_find_by_sas_address(ioc,
-	    phy->identify.sas_address) == NULL) {
+	    phy->identify.sas_address,
+	    mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		return -EINVAL;
 	}
@@ -1264,8 +1466,7 @@
 	int rc;
 
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
-	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-	    rphy->identify.sas_address);
+	sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
 	if (sas_device) {
 		*identifier = sas_device->enclosure_logical_id;
 		rc = 0;
@@ -1294,8 +1495,7 @@
 	int rc;
 
 	spin_lock_irqsave(&ioc->sas_device_lock, flags);
-	sas_device = __mpt3sas_get_sdev_by_addr(ioc,
-	    rphy->identify.sas_address);
+	sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
 	if (sas_device) {
 		rc = sas_device->slot;
 		sas_device_put(sas_device);
@@ -1416,7 +1616,7 @@
 
 	memset(mpi_request, 0, sizeof(Mpi2SmpPassthroughRequest_t));
 	mpi_request->Function = MPI2_FUNCTION_SMP_PASSTHROUGH;
-	mpi_request->PhysicalPort = 0xFF;
+	mpi_request->PhysicalPort = _transport_get_port_id_by_sas_phy(phy);
 	mpi_request->VF_ID = 0; /* TODO */
 	mpi_request->VP_ID = 0;
 	mpi_request->SASAddress = cpu_to_le64(phy->identify.sas_address);
@@ -1498,11 +1698,14 @@
 	struct MPT3SAS_ADAPTER *ioc = phy_to_ioc(phy);
 	Mpi2SasIoUnitControlReply_t mpi_reply;
 	Mpi2SasIoUnitControlRequest_t mpi_request;
+	struct hba_port *port = phy->hostdata;
+	int port_id = port->port_id;
 	unsigned long flags;
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	if (_transport_sas_node_find_by_sas_address(ioc,
-	    phy->identify.sas_address) == NULL) {
+	    phy->identify.sas_address,
+	    mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		return -EINVAL;
 	}
@@ -1555,10 +1758,13 @@
 	int rc = 0;
 	unsigned long flags;
 	int i, discovery_active;
+	struct hba_port *port = phy->hostdata;
+	int port_id = port->port_id;
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	if (_transport_sas_node_find_by_sas_address(ioc,
-	    phy->identify.sas_address) == NULL) {
+	    phy->identify.sas_address,
+	    mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		return -EINVAL;
 	}
@@ -1692,10 +1898,13 @@
 	int i;
 	int rc = 0;
 	unsigned long flags;
+	struct hba_port *port = phy->hostdata;
+	int port_id = port->port_id;
 
 	spin_lock_irqsave(&ioc->sas_node_lock, flags);
 	if (_transport_sas_node_find_by_sas_address(ioc,
-	    phy->identify.sas_address) == NULL) {
+	    phy->identify.sas_address,
+	    mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
 		spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
 		return -EINVAL;
 	}
@@ -1897,7 +2106,7 @@
 
 	memset(mpi_request, 0, sizeof(Mpi2SmpPassthroughRequest_t));
 	mpi_request->Function = MPI2_FUNCTION_SMP_PASSTHROUGH;
-	mpi_request->PhysicalPort = 0xFF;
+	mpi_request->PhysicalPort = _transport_get_port_id_by_rphy(ioc, rphy);
 	mpi_request->SASAddress = (rphy) ?
 	    cpu_to_le64(rphy->identify.sas_address) :
 	    cpu_to_le64(ioc->sas_hba.sas_address);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
@@ -113,15 +113,21 @@
 	struct SL_WH_TRIGGERS_EVENT_DATA_T *event_data)
 {
 	u8 issue_reset = 0;
+	u32 *trig_data = (u32 *)&event_data->u.master;
 
 	dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: enter\n", __func__));
 
 	/* release the diag buffer trace */
 	if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
 	    MPT3_DIAG_BUFFER_IS_RELEASED) == 0) {
-		dTriggerDiagPrintk(ioc,
-				   ioc_info(ioc, "%s: release trace diag buffer\n",
-					    __func__));
+		/*
+		 * add a log message so that user knows which event caused
+		 * the release
+		 */
+		ioc_info(ioc,
+		    "%s: Releasing the trace buffer. Trigger_Type 0x%08x, Data[0] 0x%08x, Data[1] 0x%08x\n",
+		    __func__, event_data->trigger_type,
+		    trig_data[0], trig_data[1]);
 		mpt3sas_send_diag_release(ioc, MPI2_DIAG_BUF_TYPE_TRACE,
 		    &issue_reset);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/mvumi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/mvumi.c
@@ -2425,6 +2425,7 @@
 	if (IS_ERR(mhba->dm_thread)) {
 		dev_err(&mhba->pdev->dev,
 			"failed to create device scan thread\n");
+		ret = PTR_ERR(mhba->dm_thread);
 		mutex_unlock(&mhba->sas_discovery_mutex);
 		goto fail_create_thread;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/pm8001/pm8001_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/pm8001/pm8001_init.c
@@ -1040,7 +1040,8 @@
 
 	pm8001_init_sas_add(pm8001_ha);
 	/* phy setting support for motherboard controller */
-	if (pm8001_configure_phy_settings(pm8001_ha))
+	rc = pm8001_configure_phy_settings(pm8001_ha);
+	if (rc)
 		goto err_out_shost;
 
 	pm8001_post_sas_ha_init(shost, chip);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/pm8001/pm8001_sas.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/pm8001/pm8001_sas.c
@@ -816,7 +816,7 @@
 
 		res = pm8001_tag_alloc(pm8001_ha, &ccb_tag);
 		if (res)
-			return res;
+			goto ex_err;
 		ccb = &pm8001_ha->ccb_info[ccb_tag];
 		ccb->device = pm8001_dev;
 		ccb->ccb_tag = ccb_tag;
@@ -1202,8 +1202,8 @@
 	pm8001_dev = dev->lldd_dev;
 	pm8001_ha = pm8001_find_ha_by_dev(dev);
 	phy_id = pm8001_dev->attached_phy;
-	rc = pm8001_find_tag(task, &tag);
-	if (rc == 0) {
+	ret = pm8001_find_tag(task, &tag);
+	if (ret == 0) {
 		pm8001_printk("no tag for task:%p\n", task);
 		return TMF_RESP_FUNC_FAILED;
 	}
@@ -1241,26 +1241,50 @@
 
 			/* 2. Send Phy Control Hard Reset */
 			reinit_completion(&completion);
+			phy->port_reset_status = PORT_RESET_TMO;
 			phy->reset_success = false;
 			phy->enable_completion = &completion;
 			phy->reset_completion = &completion_reset;
 			ret = PM8001_CHIP_DISP->phy_ctl_req(pm8001_ha, phy_id,
 				PHY_HARD_RESET);
-			if (ret)
-				goto out;
-			PM8001_MSG_DBG(pm8001_ha,
-				pm8001_printk("Waiting for local phy ctl\n"));
-			wait_for_completion(&completion);
-			if (!phy->reset_success)
+			if (ret) {
+				phy->enable_completion = NULL;
+				phy->reset_completion = NULL;
 				goto out;
+			}
 
-			/* 3. Wait for Port Reset complete / Port reset TMO */
+			/* In the case of the reset timeout/fail we still
+			 * abort the command at the firmware. The assumption
+			 * here is that the drive is off doing something so
+			 * that it's not processing requests, and we want to
+			 * avoid getting a completion for this and either
+			 * leaking the task in libsas or losing the race and
+			 * getting a double free.
+			 */
 			PM8001_MSG_DBG(pm8001_ha,
+				pm8001_printk("Waiting for local phy ctl\n"));
+			ret = wait_for_completion_timeout(&completion,
+					PM8001_TASK_TIMEOUT * HZ);
+			if (!ret || !phy->reset_success) {
+				phy->enable_completion = NULL;
+				phy->reset_completion = NULL;
+			} else {
+				/* 3. Wait for Port Reset complete or
+				 * Port reset TMO
+				 */
+				PM8001_MSG_DBG(pm8001_ha,
 				pm8001_printk("Waiting for Port reset\n"));
-			wait_for_completion(&completion_reset);
-			if (phy->port_reset_status) {
-				pm8001_dev_gone_notify(dev);
-				goto out;
+				ret = wait_for_completion_timeout(
+					&completion_reset,
+					PM8001_TASK_TIMEOUT * HZ);
+				if (!ret)
+					phy->reset_completion = NULL;
+				WARN_ON(phy->port_reset_status ==
+						PORT_RESET_TMO);
+				if (phy->port_reset_status == PORT_RESET_TMO) {
+					pm8001_dev_gone_notify(dev);
+					goto out;
+				}
 			}
 
 			/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/pm8001/pm80xx_hwi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -2382,6 +2382,8 @@
 			pm8001_printk("task 0x%p done with io_status 0x%x"
 			" resp 0x%x stat 0x%x but aborted by upper layer!\n",
 			t, status, ts->resp, ts->stat));
+		if (t->slow_task)
+			complete(&t->slow_task->completion);
 		pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
 	} else {
 		spin_unlock_irqrestore(&t->task_state_lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qedf/qedf.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qedf/qedf.h
@@ -355,6 +355,7 @@
 #define QEDF_GRCDUMP_CAPTURE		4
 #define QEDF_IN_RECOVERY		5
 #define QEDF_DBG_STOP_IO		6
+#define QEDF_PROBING			8
 	unsigned long flags; /* Miscellaneous state flags */
 	int fipvlan_retries;
 	u8 num_queues;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qedf/qedf_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qedf/qedf_main.c
@@ -668,7 +668,7 @@
 	rdata = fcport->rdata;
 	if (!rdata || !kref_get_unless_zero(&rdata->kref)) {
 		QEDF_ERR(&qedf->dbg_ctx, "stale rport, sc_cmd=%p\n", sc_cmd);
-		rc = 1;
+		rc = SUCCESS;
 		goto out;
 	}
 
@@ -3153,7 +3153,7 @@
 {
 	int rc = -EINVAL;
 	struct fc_lport *lport;
-	struct qedf_ctx *qedf;
+	struct qedf_ctx *qedf = NULL;
 	struct Scsi_Host *host;
 	bool is_vf = false;
 	struct qed_ll2_params params;
@@ -3183,6 +3183,7 @@
 
 		/* Initialize qedf_ctx */
 		qedf = lport_priv(lport);
+		set_bit(QEDF_PROBING, &qedf->flags);
 		qedf->lport = lport;
 		qedf->ctlr.lp = lport;
 		qedf->pdev = pdev;
@@ -3206,9 +3207,12 @@
 	} else {
 		/* Init pointers during recovery */
 		qedf = pci_get_drvdata(pdev);
+		set_bit(QEDF_PROBING, &qedf->flags);
 		lport = qedf->lport;
 	}
 
+	QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_DISC, "Probe started.\n");
+
 	host = lport->host;
 
 	/* Allocate mempool for qedf_io_work structs */
@@ -3513,6 +3517,10 @@
 	else
 		fc_fabric_login(lport);
 
+	QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_DISC, "Probe done.\n");
+
+	clear_bit(QEDF_PROBING, &qedf->flags);
+
 	/* All good */
 	return 0;
 
@@ -3538,6 +3546,11 @@
 err1:
 	scsi_host_put(lport->host);
 err0:
+	if (qedf) {
+		QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_DISC, "Probe done.\n");
+
+		clear_bit(QEDF_PROBING, &qedf->flags);
+	}
 	return rc;
 }
 
@@ -3687,11 +3700,25 @@
 {
 	struct qedf_ctx *qedf = dev;
 	struct qed_mfw_tlv_fcoe *fcoe = data;
-	struct fc_lport *lport = qedf->lport;
-	struct Scsi_Host *host = lport->host;
-	struct fc_host_attrs *fc_host = shost_to_fc_host(host);
+	struct fc_lport *lport;
+	struct Scsi_Host *host;
+	struct fc_host_attrs *fc_host;
 	struct fc_host_statistics *hst;
 
+	if (!qedf) {
+		QEDF_ERR(NULL, "qedf is null.\n");
+		return;
+	}
+
+	if (test_bit(QEDF_PROBING, &qedf->flags)) {
+		QEDF_ERR(&qedf->dbg_ctx, "Function is still probing.\n");
+		return;
+	}
+
+	lport = qedf->lport;
+	host = lport->host;
+	fc_host = shost_to_fc_host(host);
+
 	/* Force a refresh of the fc_host stats including offload stats */
 	hst = qedf_fc_get_host_stats(host);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qedi/qedi_fw.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qedi/qedi_fw.c
@@ -59,6 +59,7 @@
 		  "Freeing tid=0x%x for cid=0x%x\n",
 		  cmd->task_id, qedi_conn->iscsi_conn_id);
 
+	spin_lock(&qedi_conn->list_lock);
 	if (likely(cmd->io_cmd_in_list)) {
 		cmd->io_cmd_in_list = false;
 		list_del_init(&cmd->io_cmd);
@@ -69,6 +70,7 @@
 			  cmd->task_id, qedi_conn->iscsi_conn_id,
 			  &cmd->io_cmd);
 	}
+	spin_unlock(&qedi_conn->list_lock);
 
 	cmd->state = RESPONSE_RECEIVED;
 	qedi_clear_task_idx(qedi, cmd->task_id);
@@ -122,6 +124,7 @@
 		  "Freeing tid=0x%x for cid=0x%x\n",
 		  cmd->task_id, qedi_conn->iscsi_conn_id);
 
+	spin_lock(&qedi_conn->list_lock);
 	if (likely(cmd->io_cmd_in_list)) {
 		cmd->io_cmd_in_list = false;
 		list_del_init(&cmd->io_cmd);
@@ -132,6 +135,7 @@
 			  cmd->task_id, qedi_conn->iscsi_conn_id,
 			  &cmd->io_cmd);
 	}
+	spin_unlock(&qedi_conn->list_lock);
 
 	cmd->state = RESPONSE_RECEIVED;
 	qedi_clear_task_idx(qedi, cmd->task_id);
@@ -222,11 +226,13 @@
 
 	tmf_hdr = (struct iscsi_tm *)qedi_cmd->task->hdr;
 
+	spin_lock(&qedi_conn->list_lock);
 	if (likely(qedi_cmd->io_cmd_in_list)) {
 		qedi_cmd->io_cmd_in_list = false;
 		list_del_init(&qedi_cmd->io_cmd);
 		qedi_conn->active_cmd_count--;
 	}
+	spin_unlock(&qedi_conn->list_lock);
 
 	if (((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) ==
 	      ISCSI_TM_FUNC_LOGICAL_UNIT_RESET) ||
@@ -288,11 +294,13 @@
 		  ISCSI_LOGIN_RESPONSE_HDR_DATA_SEG_LEN_MASK;
 	qedi_conn->gen_pdu.resp_wr_ptr = qedi_conn->gen_pdu.resp_buf + pld_len;
 
+	spin_lock(&qedi_conn->list_lock);
 	if (likely(cmd->io_cmd_in_list)) {
 		cmd->io_cmd_in_list = false;
 		list_del_init(&cmd->io_cmd);
 		qedi_conn->active_cmd_count--;
 	}
+	spin_unlock(&qedi_conn->list_lock);
 
 	memset(task_ctx, '\0', sizeof(*task_ctx));
 
@@ -817,8 +825,11 @@
 			qedi_clear_task_idx(qedi_conn->qedi, rtid);
 
 			spin_lock(&qedi_conn->list_lock);
-			list_del_init(&dbg_cmd->io_cmd);
-			qedi_conn->active_cmd_count--;
+			if (likely(dbg_cmd->io_cmd_in_list)) {
+				dbg_cmd->io_cmd_in_list = false;
+				list_del_init(&dbg_cmd->io_cmd);
+				qedi_conn->active_cmd_count--;
+			}
 			spin_unlock(&qedi_conn->list_lock);
 			qedi_cmd->state = CLEANUP_RECV;
 			wake_up_interruptible(&qedi_conn->wait_queue);
@@ -1236,6 +1247,7 @@
 		qedi_conn->cmd_cleanup_req++;
 		qedi_iscsi_cleanup_task(ctask, true);
 
+		cmd->io_cmd_in_list = false;
 		list_del_init(&cmd->io_cmd);
 		qedi_conn->active_cmd_count--;
 		QEDI_WARN(&qedi->dbg_ctx,
@@ -1447,8 +1459,11 @@
 	spin_unlock_bh(&qedi_conn->tmf_work_lock);
 
 	spin_lock(&qedi_conn->list_lock);
-	list_del_init(&cmd->io_cmd);
-	qedi_conn->active_cmd_count--;
+	if (likely(cmd->io_cmd_in_list)) {
+		cmd->io_cmd_in_list = false;
+		list_del_init(&cmd->io_cmd);
+		qedi_conn->active_cmd_count--;
+	}
 	spin_unlock(&qedi_conn->list_lock);
 
 	clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qedi/qedi_iscsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qedi/qedi_iscsi.c
@@ -972,11 +972,13 @@
 {
 	struct qedi_cmd *cmd, *cmd_tmp;
 
+	spin_lock(&qedi_conn->list_lock);
 	list_for_each_entry_safe(cmd, cmd_tmp, &qedi_conn->active_cmd_list,
 				 io_cmd) {
 		list_del_init(&cmd->io_cmd);
 		qedi_conn->active_cmd_count--;
 	}
+	spin_unlock(&qedi_conn->list_lock);
 }
 
 static void qedi_ep_disconnect(struct iscsi_endpoint *ep)
@@ -997,7 +999,8 @@
 	if (qedi_ep->state == EP_STATE_OFLDCONN_START)
 		goto ep_exit_recover;
 
-	flush_work(&qedi_ep->offload_work);
+	if (qedi_ep->state != EP_STATE_OFLDCONN_NONE)
+		flush_work(&qedi_ep->offload_work);
 
 	if (qedi_ep->conn) {
 		qedi_conn = qedi_ep->conn;
@@ -1061,6 +1064,9 @@
 		break;
 	}
 
+	if (!abrt_conn)
+		wait_delay += qedi->pf_params.iscsi_pf_params.two_msl_timer;
+
 	qedi_ep->state = EP_STATE_DISCONN_START;
 	ret = qedi_ops->destroy_conn(qedi->cdev, qedi_ep->handle, abrt_conn);
 	if (ret) {
@@ -1214,6 +1220,10 @@
 	}
 
 	iscsi_cid = (u32)path_data->handle;
+	if (iscsi_cid >= qedi->max_active_conns) {
+		ret = -EINVAL;
+		goto set_path_exit;
+	}
 	qedi_ep = qedi->ep_tbl[iscsi_cid];
 	QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO,
 		  "iscsi_cid=0x%x, qedi_ep=%p\n", iscsi_cid, qedi_ep);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qedi/qedi_main.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qedi/qedi_main.c
@@ -2175,7 +2175,7 @@
 			     chap_name);
 		break;
 	case ISCSI_BOOT_TGT_CHAP_SECRET:
-		rc = sprintf(buf, "%.*s\n", NVM_ISCSI_CFG_CHAP_NAME_MAX_LEN,
+		rc = sprintf(buf, "%.*s\n", NVM_ISCSI_CFG_CHAP_PWD_MAX_LEN,
 			     chap_secret);
 		break;
 	case ISCSI_BOOT_TGT_REV_CHAP_NAME:
@@ -2183,7 +2183,7 @@
 			     mchap_name);
 		break;
 	case ISCSI_BOOT_TGT_REV_CHAP_SECRET:
-		rc = sprintf(buf, "%.*s\n", NVM_ISCSI_CFG_CHAP_NAME_MAX_LEN,
+		rc = sprintf(buf, "%.*s\n", NVM_ISCSI_CFG_CHAP_PWD_MAX_LEN,
 			     mchap_secret);
 		break;
 	case ISCSI_BOOT_TGT_FLAGS:
@@ -2630,7 +2630,7 @@
 			QEDI_ERR(&qedi->dbg_ctx,
 				 "Unable to start offload thread!\n");
 			rc = -ENODEV;
-			goto free_cid_que;
+			goto free_tmf_thread;
 		}
 
 		/* F/w needs 1st task context memory entry for performance */
@@ -2650,6 +2650,8 @@
 
 	return 0;
 
+free_tmf_thread:
+	destroy_workqueue(qedi->tmf_thread);
 free_cid_que:
 	qedi_release_cid_que(qedi);
 free_uio:
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_attr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_attr.c
@@ -176,6 +176,7 @@
 
 	faddr = ha->flt_region_nvram;
 	if (IS_QLA28XX(ha)) {
+		qla28xx_get_aux_images(vha, &active_regions);
 		if (active_regions.aux.vpd_nvram == QLA27XX_SECONDARY_IMAGE)
 			faddr = ha->flt_region_nvram_sec;
 	}
@@ -1774,9 +1775,6 @@
 		return -EINVAL;
 	}
 
-	ql_log(ql_log_info, vha, 0x70d6,
-	    "port speed:%d\n", ha->link_data_rate);
-
 	return scnprintf(buf, PAGE_SIZE, "%s\n", spd[ha->link_data_rate]);
 }
 
@@ -2925,11 +2923,11 @@
 	    test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags))
 		msleep(1000);
 
-	qla_nvme_delete(vha);
 
 	qla24xx_disable_vp(vha);
 	qla2x00_wait_for_sess_deletion(vha);
 
+	qla_nvme_delete(vha);
 	vha->flags.delete_progress = 1;
 
 	qlt_remove_target(ha, vha);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_bsg.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_bsg.c
@@ -2399,7 +2399,7 @@
 	struct qla_active_regions regions = { };
 	struct active_regions active_regions = { };
 
-	qla28xx_get_aux_images(vha, &active_regions);
+	qla27xx_get_active_image(vha, &active_regions);
 	regions.global_image = active_regions.global;
 
 	if (IS_QLA28XX(ha)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_dbg.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_dbg.c
@@ -2519,12 +2519,6 @@
 /*                         Driver Debug Functions.                          */
 /****************************************************************************/
 
-static inline int
-ql_mask_match(uint level)
-{
-	return (level & ql2xextended_error_logging) == level;
-}
-
 /*
  * This function is for formatting and logging debug information.
  * It is to be used when vha is available. It formats the message
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_dbg.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_dbg.h
@@ -374,3 +374,9 @@
 extern void qla24xx_pause_risc(struct device_reg_24xx __iomem *,
 	struct qla_hw_data *);
 extern int qla24xx_soft_reset(struct qla_hw_data *);
+
+static inline int
+ql_mask_match(uint level)
+{
+	return (level & ql2xextended_error_logging) == level;
+}
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_def.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_def.h
@@ -591,19 +591,23 @@
 	 */
 	uint8_t cmd_type;
 	uint8_t pad[3];
-	atomic_t ref_count;
 	struct kref cmd_kref;	/* need to migrate ref_count over to this */
 	void *priv;
 	wait_queue_head_t nvme_ls_waitq;
 	struct fc_port *fcport;
 	struct scsi_qla_host *vha;
 	unsigned int start_timer:1;
+	unsigned int abort:1;
+	unsigned int aborted:1;
+	unsigned int completed:1;
+
 	uint32_t handle;
 	uint16_t flags;
 	uint16_t type;
 	const char *name;
 	int iocbs;
 	struct qla_qpair *qpair;
+	struct srb *cmd_sp;
 	struct list_head elem;
 	u32 gen1;	/* scratch */
 	u32 gen2;	/* scratch */
@@ -2397,6 +2401,8 @@
 	unsigned int id_changed:1;
 	unsigned int scan_needed:1;
 	unsigned int n2n_flag:1;
+	unsigned int explicit_logout:1;
+	unsigned int prli_pend_timer:1;
 
 	struct completion nvme_del_done;
 	uint32_t nvme_prli_service_param;
@@ -2423,6 +2429,7 @@
 	struct work_struct free_work;
 	struct work_struct reg_work;
 	uint64_t jiffies_at_registration;
+	unsigned long prli_expired;
 	struct qlt_plogi_ack_t *plogi_link[QLT_PLOGI_LINK_MAX];
 
 	uint16_t tgt_id;
@@ -4816,6 +4823,9 @@
 	 ha->current_topology == ISP_CFG_N || \
 	 !ha->current_topology)
 
+#define PRLI_PHASE(_cls) \
+	((_cls == DSC_LS_PRLI_PEND) || (_cls == DSC_LS_PRLI_COMP))
+
 #include "qla_target.h"
 #include "qla_gbl.h"
 #include "qla_dbg.h"
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_fw.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_fw.h
@@ -1523,6 +1523,10 @@
 #define FLT_REG_NVRAM_SEC_28XX_1	0x10F
 #define FLT_REG_NVRAM_SEC_28XX_2	0x111
 #define FLT_REG_NVRAM_SEC_28XX_3	0x113
+#define FLT_REG_MPI_PRI_28XX		0xD3
+#define FLT_REG_MPI_SEC_28XX		0xF0
+#define FLT_REG_PEP_PRI_28XX		0xD1
+#define FLT_REG_PEP_SEC_28XX		0xF1
 
 struct qla_flt_region {
 	uint16_t code;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_gs.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_gs.c
@@ -3005,7 +3005,7 @@
 	fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
 
 	if (res == QLA_FUNCTION_TIMEOUT)
-		return;
+		goto done;
 
 	if (res == (DID_ERROR << 16)) {
 		/* entry status error */
@@ -3638,7 +3638,9 @@
 				qla2x00_clear_loop_id(fcport);
 				fcport->flags |= FCF_FABRIC_DEVICE;
 			} else if (fcport->d_id.b24 != rp->id.b24 ||
-				fcport->scan_needed) {
+				   (fcport->scan_needed &&
+				    fcport->port_type != FCT_INITIATOR &&
+				    fcport->port_type != FCT_NVME_INITIATOR)) {
 				qlt_schedule_sess_for_deletion(fcport);
 			}
 			fcport->d_id.b24 = rp->id.b24;
@@ -3671,10 +3673,22 @@
 		}
 
 		if (fcport->scan_state != QLA_FCPORT_FOUND) {
+			bool do_delete = false;
+
+			if (fcport->scan_needed &&
+			    fcport->disc_state == DSC_LOGIN_PEND) {
+				/* Cable got disconnected after we sent
+				 * a login. Do delete to prevent timeout.
+				 */
+				fcport->logout_on_delete = 1;
+				do_delete = true;
+			}
+
 			fcport->scan_needed = 0;
-			if ((qla_dual_mode_enabled(vha) ||
-				qla_ini_mode_enabled(vha)) &&
-			    atomic_read(&fcport->state) == FCS_ONLINE) {
+			if (((qla_dual_mode_enabled(vha) ||
+			      qla_ini_mode_enabled(vha)) &&
+			    atomic_read(&fcport->state) == FCS_ONLINE) ||
+				do_delete) {
 				if (fcport->loop_id != FC_NO_LOOP_ID) {
 					if (fcport->flags & FCF_FCP2_DEVICE)
 						fcport->logout_on_delete = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_init.c
@@ -71,6 +71,16 @@
 	qla2x00_rel_sp(sp);
 }
 
+void qla2xxx_rel_done_warning(srb_t *sp, int res)
+{
+	WARN_ONCE(1, "Calling done() of an already freed srb %p object\n", sp);
+}
+
+void qla2xxx_rel_free_warning(srb_t *sp)
+{
+	WARN_ONCE(1, "Calling free() of an already freed srb %p object\n", sp);
+}
+
 /* Asynchronous Login/Logout Routines -------------------------------------- */
 
 unsigned long
@@ -101,8 +111,22 @@
 	u32 handle;
 	unsigned long flags;
 
+	if (sp->cmd_sp)
+		ql_dbg(ql_dbg_async, sp->vha, 0x507c,
+		    "Abort timeout - cmd hdl=%x, cmd type=%x hdl=%x, type=%x\n",
+		    sp->cmd_sp->handle, sp->cmd_sp->type,
+		    sp->handle, sp->type);
+	else
+		ql_dbg(ql_dbg_async, sp->vha, 0x507c,
+		    "Abort timeout 2 - hdl=%x, type=%x\n",
+		    sp->handle, sp->type);
+
 	spin_lock_irqsave(qpair->qp_lock_ptr, flags);
 	for (handle = 1; handle < qpair->req->num_outstanding_cmds; handle++) {
+		if (sp->cmd_sp && (qpair->req->outstanding_cmds[handle] ==
+		    sp->cmd_sp))
+			qpair->req->outstanding_cmds[handle] = NULL;
+
 		/* removing the abort */
 		if (qpair->req->outstanding_cmds[handle] == sp) {
 			qpair->req->outstanding_cmds[handle] = NULL;
@@ -111,6 +135,9 @@
 	}
 	spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
 
+	if (sp->cmd_sp)
+		sp->cmd_sp->done(sp->cmd_sp, QLA_OS_TIMER_EXPIRED);
+
 	abt->u.abt.comp_status = CS_TIMEOUT;
 	sp->done(sp, QLA_OS_TIMER_EXPIRED);
 }
@@ -142,6 +169,7 @@
 	sp->type = SRB_ABT_CMD;
 	sp->name = "abort";
 	sp->qpair = cmd_sp->qpair;
+	sp->cmd_sp = cmd_sp;
 	if (wait)
 		sp->flags = SRB_WAKEUP_ON_COMP;
 
@@ -516,6 +544,7 @@
 
 	e->u.fcport.fcport = fcport;
 	fcport->flags |= FCF_ASYNC_ACTIVE;
+	fcport->disc_state = DSC_LOGIN_PEND;
 	return qla2x00_post_work(vha, e);
 }
 
@@ -667,7 +696,7 @@
 	port_id_t id;
 	u64 wwn;
 	u16 data[2];
-	u8 current_login_state;
+	u8 current_login_state, nvme_cls;
 
 	fcport = ea->fcport;
 	ql_dbg(ql_dbg_disc, vha, 0xffff,
@@ -726,10 +755,17 @@
 
 		loop_id = le16_to_cpu(e->nport_handle);
 		loop_id = (loop_id & 0x7fff);
-		if  (fcport->fc4f_nvme)
-			current_login_state = e->current_login_state >> 4;
-		else
-			current_login_state = e->current_login_state & 0xf;
+		nvme_cls = e->current_login_state >> 4;
+		current_login_state = e->current_login_state & 0xf;
+
+		if (PRLI_PHASE(nvme_cls)) {
+			current_login_state = nvme_cls;
+			fcport->fc4_type &= ~FS_FC4TYPE_FCP;
+			fcport->fc4_type |= FS_FC4TYPE_NVME;
+		} else if (PRLI_PHASE(current_login_state)) {
+			fcport->fc4_type |= FS_FC4TYPE_FCP;
+			fcport->fc4_type &= ~FS_FC4TYPE_NVME;
+		}
 
 
 		ql_dbg(ql_dbg_disc, vha, 0x20e2,
@@ -976,7 +1012,7 @@
 		set_bit(loop_id, vha->hw->loop_id_map);
 		wwn = wwn_to_u64(e->port_name);
 
-		ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0x20e8,
+		ql_dbg(ql_dbg_disc, vha, 0x20e8,
 		    "%s %8phC %02x:%02x:%02x CLS %x/%x lid %x \n",
 		    __func__, (void *)&wwn, e->port_id[2], e->port_id[1],
 		    e->port_id[0], e->current_login_state, e->last_login_state,
@@ -1035,6 +1071,16 @@
 
 	spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
 	vha->gnl.sent = 0;
+	if (!list_empty(&vha->gnl.fcports)) {
+		/* retrigger gnl */
+		list_for_each_entry_safe(fcport, tf, &vha->gnl.fcports,
+		    gnl_entry) {
+			list_del_init(&fcport->gnl_entry);
+			fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
+			if (qla24xx_post_gnl_work(vha, fcport) == QLA_SUCCESS)
+				break;
+		}
+	}
 	spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
 
 	sp->free(sp);
@@ -1135,19 +1181,18 @@
 	    "Async done-%s res %x, WWPN %8phC mb[1]=%x mb[2]=%x \n",
 	    sp->name, res, fcport->port_name, mb[1], mb[2]);
 
-	if (res == QLA_FUNCTION_TIMEOUT) {
-		dma_pool_free(sp->vha->hw->s_dma_pool, sp->u.iocb_cmd.u.mbx.in,
-			sp->u.iocb_cmd.u.mbx.in_dma);
-		return;
-	}
-
 	fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
+
+	if (res == QLA_FUNCTION_TIMEOUT)
+		goto done;
+
 	memset(&ea, 0, sizeof(ea));
 	ea.fcport = fcport;
 	ea.sp = sp;
 
 	qla24xx_handle_gpdb_event(vha, &ea);
 
+done:
 	dma_pool_free(ha->s_dma_pool, sp->u.iocb_cmd.u.mbx.in,
 		sp->u.iocb_cmd.u.mbx.in_dma);
 
@@ -1201,12 +1246,19 @@
 	struct srb_iocb *lio;
 	int rval = QLA_FUNCTION_FAILED;
 
-	if (!vha->flags.online)
+	if (!vha->flags.online) {
+		ql_dbg(ql_dbg_disc, vha, 0xffff, "%s %d %8phC exit\n",
+		    __func__, __LINE__, fcport->port_name);
 		return rval;
+	}
 
-	if (fcport->fw_login_state == DSC_LS_PLOGI_PEND ||
-	    fcport->fw_login_state == DSC_LS_PRLI_PEND)
+	if ((fcport->fw_login_state == DSC_LS_PLOGI_PEND ||
+	    fcport->fw_login_state == DSC_LS_PRLI_PEND) &&
+	    qla_dual_mode_enabled(vha)) {
+		ql_dbg(ql_dbg_disc, vha, 0xffff, "%s %d %8phC exit\n",
+		    __func__, __LINE__, fcport->port_name);
 		return rval;
+	}
 
 	sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL);
 	if (!sp)
@@ -1584,6 +1636,10 @@
 			break;
 		default:
 			if (fcport->login_pause) {
+				ql_dbg(ql_dbg_disc, vha, 0x20d8,
+				    "%s %d %8phC exit\n",
+				    __func__, __LINE__,
+				    fcport->port_name);
 				fcport->last_rscn_gen = fcport->rscn_gen;
 				fcport->last_login_gen = fcport->login_gen;
 				set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
@@ -1865,33 +1921,13 @@
 				"%s %d %8phC post fc4 prli\n",
 				__func__, __LINE__, ea->fcport->port_name);
 			ea->fcport->fc4f_nvme = 0;
-			qla24xx_post_prli_work(vha, ea->fcport);
 			return;
 		}
 
-		/* at this point both PRLI NVME & PRLI FCP failed */
-		if (N2N_TOPO(vha->hw)) {
-			if (ea->fcport->n2n_link_reset_cnt < 3) {
-				ea->fcport->n2n_link_reset_cnt++;
-				/*
-				 * remote port is not sending Plogi. Reset
-				 * link to kick start his state machine
-				 */
-				set_bit(N2N_LINK_RESET, &vha->dpc_flags);
-			} else {
-				ql_log(ql_log_warn, vha, 0x2119,
-				    "%s %d %8phC Unable to reconnect\n",
-				    __func__, __LINE__, ea->fcport->port_name);
-			}
-		} else {
-			/*
-			 * switch connect. login failed. Take connection
-			 * down and allow relogin to retrigger
-			 */
-			ea->fcport->flags &= ~FCF_ASYNC_SENT;
-			ea->fcport->keep_nport_handle = 0;
-			qlt_schedule_sess_for_deletion(ea->fcport);
-		}
+		ea->fcport->flags &= ~FCF_ASYNC_SENT;
+		ea->fcport->keep_nport_handle = 0;
+		ea->fcport->logout_on_delete = 1;
+		qlt_schedule_sess_for_deletion(ea->fcport);
 		break;
 	}
 }
@@ -1959,7 +1995,7 @@
 			qla24xx_post_prli_work(vha, ea->fcport);
 		} else {
 			ql_dbg(ql_dbg_disc, vha, 0x20ea,
-			    "%s %d %8phC LoopID 0x%x in use with %06x. post gnl\n",
+			    "%s %d %8phC LoopID 0x%x in use with %06x. post gpdb\n",
 			    __func__, __LINE__, ea->fcport->port_name,
 			    ea->fcport->loop_id, ea->fcport->d_id.b24);
 
@@ -2030,6 +2066,7 @@
 			set_bit(lid, vha->hw->loop_id_map);
 			ea->fcport->loop_id = lid;
 			ea->fcport->keep_nport_handle = 0;
+			ea->fcport->logout_on_delete = 1;
 			qlt_schedule_sess_for_deletion(ea->fcport);
 		}
 		break;
@@ -4830,6 +4867,7 @@
 	}
 
 	INIT_WORK(&fcport->del_work, qla24xx_delete_sess_fn);
+	INIT_WORK(&fcport->free_work, qlt_free_session_done);
 	INIT_WORK(&fcport->reg_work, qla_register_fcport_fn);
 	INIT_LIST_HEAD(&fcport->gnl_entry);
 	INIT_LIST_HEAD(&fcport->list);
@@ -4908,14 +4946,8 @@
 		set_bit(RSCN_UPDATE, &flags);
 		clear_bit(LOCAL_LOOP_UPDATE, &flags);
 
-	} else if (ha->current_topology == ISP_CFG_N) {
-		clear_bit(RSCN_UPDATE, &flags);
-		if (qla_tgt_mode_enabled(vha)) {
-			/* allow the other side to start the login */
-			clear_bit(LOCAL_LOOP_UPDATE, &flags);
-			set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
-		}
-	} else if (ha->current_topology == ISP_CFG_NL) {
+	} else if (ha->current_topology == ISP_CFG_NL ||
+		   ha->current_topology == ISP_CFG_N) {
 		clear_bit(RSCN_UPDATE, &flags);
 		set_bit(LOCAL_LOOP_UPDATE, &flags);
 	} else if (!vha->flags.online ||
@@ -5032,7 +5064,6 @@
 				memcpy(&ha->plogi_els_payld.data,
 				    (void *)ha->init_cb,
 				    sizeof(ha->plogi_els_payld.data));
-				set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
 			} else {
 				ql_dbg(ql_dbg_init, vha, 0x00d1,
 				    "PLOGI ELS param read fail.\n");
@@ -5879,8 +5910,7 @@
 		if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags))
 			break;
 
-		if ((fcport->flags & FCF_FABRIC_DEVICE) == 0 ||
-		    (fcport->flags & FCF_LOGIN_NEEDED) == 0)
+		if ((fcport->flags & FCF_FABRIC_DEVICE) == 0)
 			continue;
 
 		if (fcport->scan_state == QLA_FCPORT_SCAN) {
@@ -5903,7 +5933,8 @@
 			}
 		}
 
-		if (fcport->scan_state == QLA_FCPORT_FOUND)
+		if (fcport->scan_state == QLA_FCPORT_FOUND &&
+		    (fcport->flags & FCF_LOGIN_NEEDED) != 0)
 			qla24xx_fcport_handle_login(vha, fcport);
 	}
 	return (rval);
@@ -9003,8 +9034,6 @@
 	struct qla_hw_data *ha = qpair->hw;
 
 	qpair->delete_in_progress = 1;
-	while (atomic_read(&qpair->ref_count))
-		msleep(500);
 
 	ret = qla25xx_delete_req_que(vha, qpair->req);
 	if (ret != QLA_SUCCESS)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_inline.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_inline.h
@@ -183,10 +183,15 @@
 	return sp;
 }
 
+void qla2xxx_rel_done_warning(srb_t *sp, int res);
+void qla2xxx_rel_free_warning(srb_t *sp);
+
 static inline void
 qla2xxx_rel_qpair_sp(struct qla_qpair *qpair, srb_t *sp)
 {
 	sp->qpair = NULL;
+	sp->done = qla2xxx_rel_done_warning;
+	sp->free = qla2xxx_rel_free_warning;
 	mempool_free(sp, qpair->srb_mempool);
 	QLA_QPAIR_MARK_NOT_BUSY(qpair);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_iocb.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_iocb.c
@@ -2405,11 +2405,19 @@
 static void
 qla24xx_logout_iocb(srb_t *sp, struct logio_entry_24xx *logio)
 {
+	u16 control_flags = LCF_COMMAND_LOGO;
 	logio->entry_type = LOGINOUT_PORT_IOCB_TYPE;
-	logio->control_flags =
-	    cpu_to_le16(LCF_COMMAND_LOGO|LCF_IMPL_LOGO);
-	if (!sp->fcport->keep_nport_handle)
-		logio->control_flags |= cpu_to_le16(LCF_FREE_NPORT);
+
+	if (sp->fcport->explicit_logout) {
+		control_flags |= LCF_EXPL_LOGO|LCF_FREE_NPORT;
+	} else {
+		control_flags |= LCF_IMPL_LOGO;
+
+		if (!sp->fcport->keep_nport_handle)
+			control_flags |= LCF_FREE_NPORT;
+	}
+
+	logio->control_flags = cpu_to_le16(control_flags);
 	logio->nport_handle = cpu_to_le16(sp->fcport->loop_id);
 	logio->port_id[0] = sp->fcport->d_id.b.al_pa;
 	logio->port_id[1] = sp->fcport->d_id.b.area;
@@ -2676,7 +2684,8 @@
 		ql_dbg(ql_dbg_io + ql_dbg_buffer, vha, 0x3073,
 		    "PLOGI ELS IOCB:\n");
 		ql_dump_buffer(ql_log_info, vha, 0x0109,
-		    (uint8_t *)els_iocb, 0x70);
+		    (uint8_t *)els_iocb,
+		    sizeof(*els_iocb));
 	} else {
 		els_iocb->control_flags = 1 << 13;
 		els_iocb->tx_byte_count =
@@ -2740,6 +2749,10 @@
 	struct scsi_qla_host *vha = sp->vha;
 	struct event_arg ea;
 	struct qla_work_evt *e;
+	struct fc_port *conflict_fcport;
+	port_id_t cid;	/* conflict Nport id */
+	u32 *fw_status = sp->u.iocb_cmd.u.els_plogi.fw_status;
+	u16 lid;
 
 	ql_dbg(ql_dbg_disc, vha, 0x3072,
 	    "%s ELS done rc %d hdl=%x, portid=%06x %8phC\n",
@@ -2751,14 +2764,102 @@
 	if (sp->flags & SRB_WAKEUP_ON_COMP)
 		complete(&lio->u.els_plogi.comp);
 	else {
-		if (res) {
-			set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
-		} else {
+		switch (fw_status[0]) {
+		case CS_DATA_UNDERRUN:
+		case CS_COMPLETE:
 			memset(&ea, 0, sizeof(ea));
 			ea.fcport = fcport;
 			ea.data[0] = MBS_COMMAND_COMPLETE;
 			ea.sp = sp;
 			qla24xx_handle_plogi_done_event(vha, &ea);
+			break;
+
+		case CS_IOCB_ERROR:
+			switch (fw_status[1]) {
+			case LSC_SCODE_PORTID_USED:
+				lid = fw_status[2] & 0xffff;
+				qlt_find_sess_invalidate_other(vha,
+				    wwn_to_u64(fcport->port_name),
+				    fcport->d_id, lid, &conflict_fcport);
+				if (conflict_fcport) {
+					/*
+					 * Another fcport shares the same
+					 * loop_id & nport id; conflict
+					 * fcport needs to finish cleanup
+					 * before this fcport can proceed
+					 * to login.
+					 */
+					conflict_fcport->conflict = fcport;
+					fcport->login_pause = 1;
+					ql_dbg(ql_dbg_disc, vha, 0x20ed,
+					    "%s %d %8phC pid %06x inuse with lid %#x post gidpn\n",
+					    __func__, __LINE__,
+					    fcport->port_name,
+					    fcport->d_id.b24, lid);
+				} else {
+					ql_dbg(ql_dbg_disc, vha, 0x20ed,
+					    "%s %d %8phC pid %06x inuse with lid %#x sched del\n",
+					    __func__, __LINE__,
+					    fcport->port_name,
+					    fcport->d_id.b24, lid);
+					qla2x00_clear_loop_id(fcport);
+					set_bit(lid, vha->hw->loop_id_map);
+					fcport->loop_id = lid;
+					fcport->keep_nport_handle = 0;
+					qlt_schedule_sess_for_deletion(fcport);
+				}
+				break;
+
+			case LSC_SCODE_NPORT_USED:
+				cid.b.domain = (fw_status[2] >> 16) & 0xff;
+				cid.b.area   = (fw_status[2] >>  8) & 0xff;
+				cid.b.al_pa  = fw_status[2] & 0xff;
+				cid.b.rsvd_1 = 0;
+
+				ql_dbg(ql_dbg_disc, vha, 0x20ec,
+				    "%s %d %8phC lid %#x in use with pid %06x post gnl\n",
+				    __func__, __LINE__, fcport->port_name,
+				    fcport->loop_id, cid.b24);
+				set_bit(fcport->loop_id,
+				    vha->hw->loop_id_map);
+				fcport->loop_id = FC_NO_LOOP_ID;
+				qla24xx_post_gnl_work(vha, fcport);
+				break;
+
+			case LSC_SCODE_NOXCB:
+				vha->hw->exch_starvation++;
+				if (vha->hw->exch_starvation > 5) {
+					ql_log(ql_log_warn, vha, 0xd046,
+					    "Exchange starvation. Resetting RISC\n");
+					vha->hw->exch_starvation = 0;
+					set_bit(ISP_ABORT_NEEDED,
+					    &vha->dpc_flags);
+					qla2xxx_wake_dpc(vha);
+				}
+				/* fall through */
+			default:
+				ql_dbg(ql_dbg_disc, vha, 0x20eb,
+				    "%s %8phC cmd error fw_status 0x%x 0x%x 0x%x\n",
+				    __func__, sp->fcport->port_name,
+				    fw_status[0], fw_status[1], fw_status[2]);
+
+				fcport->flags &= ~FCF_ASYNC_SENT;
+				fcport->disc_state = DSC_LOGIN_FAILED;
+				set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
+				break;
+			}
+			break;
+
+		default:
+			ql_dbg(ql_dbg_disc, vha, 0x20eb,
+			    "%s %8phC cmd error 2 fw_status 0x%x 0x%x 0x%x\n",
+			    __func__, sp->fcport->port_name,
+			    fw_status[0], fw_status[1], fw_status[2]);
+
+			sp->fcport->flags &= ~FCF_ASYNC_SENT;
+			sp->fcport->disc_state = DSC_LOGIN_FAILED;
+			set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
+			break;
 		}
 
 		e = qla2x00_alloc_work(vha, QLA_EVT_UNMAP);
@@ -2792,11 +2893,12 @@
 		return -ENOMEM;
 	}
 
+	fcport->flags |= FCF_ASYNC_SENT;
+	fcport->disc_state = DSC_LOGIN_PEND;
 	elsio = &sp->u.iocb_cmd;
 	ql_dbg(ql_dbg_io, vha, 0x3073,
 	    "Enter: PLOGI portid=%06x\n", fcport->d_id.b24);
 
-	fcport->flags |= FCF_ASYNC_SENT;
 	sp->type = SRB_ELS_DCMD;
 	sp->name = "ELS_DCMD";
 	sp->fcport = fcport;
@@ -2842,7 +2944,8 @@
 
 	ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x3073, "PLOGI buffer:\n");
 	ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x0109,
-	    (uint8_t *)elsio->u.els_plogi.els_plogi_pyld, 0x70);
+	    (uint8_t *)elsio->u.els_plogi.els_plogi_pyld,
+	    sizeof(*elsio->u.els_plogi.els_plogi_pyld));
 
 	rval = qla2x00_start_sp(sp);
 	if (rval != QLA_SUCCESS) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_isr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_isr.c
@@ -1061,8 +1061,6 @@
 			ql_dbg(ql_dbg_async, vha, 0x5011,
 			    "Asynchronous PORT UPDATE ignored %04x/%04x/%04x.\n",
 			    mb[1], mb[2], mb[3]);
-
-			qlt_async_event(mb[0], vha, mb);
 			break;
 		}
 
@@ -1079,8 +1077,6 @@
 		set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
 		set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
 		set_bit(VP_CONFIG_OK, &vha->vp_flags);
-
-		qlt_async_event(mb[0], vha, mb);
 		break;
 
 	case MBA_RSCN_UPDATE:		/* State Change Registration */
@@ -1901,6 +1897,18 @@
 		inbuf = (uint32_t *)&sts->nvme_ersp_data;
 		outbuf = (uint32_t *)fd->rspaddr;
 		iocb->u.nvme.rsp_pyld_len = le16_to_cpu(sts->nvme_rsp_pyld_len);
+		if (unlikely(iocb->u.nvme.rsp_pyld_len >
+		    sizeof(struct nvme_fc_ersp_iu))) {
+			if (ql_mask_match(ql_dbg_io)) {
+				WARN_ONCE(1, "Unexpected response payload length %u.\n",
+				    iocb->u.nvme.rsp_pyld_len);
+				ql_log(ql_log_warn, fcport->vha, 0x5100,
+				    "Unexpected response payload length %u.\n",
+				    iocb->u.nvme.rsp_pyld_len);
+			}
+			iocb->u.nvme.rsp_pyld_len =
+			    sizeof(struct nvme_fc_ersp_iu);
+		}
 		iter = iocb->u.nvme.rsp_pyld_len >> 2;
 		for (; iter; iter--)
 			*outbuf++ = swab32(*inbuf++);
@@ -2466,6 +2474,11 @@
 		return;
 	}
 
+	if (sp->abort)
+		sp->aborted = 1;
+	else
+		sp->completed = 1;
+
 	if (sp->cmd_type != TYPE_SRB) {
 		req->outstanding_cmds[handle] = NULL;
 		ql_dbg(ql_dbg_io, vha, 0x3015,
@@ -3624,7 +3637,7 @@
 skip_msix:
 
 	ql_log(ql_log_info, vha, 0x0037,
-	    "Falling back-to MSI mode -%d.\n", ret);
+	    "Falling back-to MSI mode -- ret=%d.\n", ret);
 
 	if (!IS_QLA24XX(ha) && !IS_QLA2532(ha) && !IS_QLA8432(ha) &&
 	    !IS_QLA8001(ha) && !IS_P3P_TYPE(ha) && !IS_QLAFX00(ha) &&
@@ -3632,13 +3645,13 @@
 		goto skip_msi;
 
 	ret = pci_alloc_irq_vectors(ha->pdev, 1, 1, PCI_IRQ_MSI);
-	if (!ret) {
+	if (ret > 0) {
 		ql_dbg(ql_dbg_init, vha, 0x0038,
 		    "MSI: Enabled.\n");
 		ha->flags.msi_enabled = 1;
 	} else
 		ql_log(ql_log_warn, vha, 0x0039,
-		    "Falling back-to INTa mode -- %d.\n", ret);
+		    "Falling back-to INTa mode -- ret=%d.\n", ret);
 skip_msi:
 
 	/* Skip INTx on ISP82xx. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_mbx.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_mbx.c
@@ -335,14 +335,6 @@
 			if (time_after(jiffies, wait_time))
 				break;
 
-			/*
-			 * Check if it's UNLOADING, cause we cannot poll in
-			 * this case, or else a NULL pointer dereference
-			 * is triggered.
-			 */
-			if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags)))
-				return QLA_FUNCTION_TIMEOUT;
-
 			/* Check for pending interrupts. */
 			qla2x00_poll(ha->rsp_q_map[0]);
 
@@ -3117,7 +3109,7 @@
 	ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x108c,
 	    "Entered %s.\n", __func__);
 
-	if (vha->flags.qpairs_available && sp->qpair)
+	if (sp->qpair)
 		req = sp->qpair->req;
 	else
 		return QLA_FUNCTION_FAILED;
@@ -3920,6 +3912,7 @@
 					vha->d_id.b24 = 0;
 					vha->d_id.b.al_pa = 1;
 					ha->flags.n2n_bigger = 1;
+					ha->flags.n2n_ae = 0;
 
 					id.b.al_pa = 2;
 					ql_dbg(ql_dbg_async, vha, 0x5075,
@@ -3930,6 +3923,7 @@
 					    "Format 1: Remote login - Waiting for WWPN %8phC.\n",
 					    rptid_entry->u.f1.port_name);
 					ha->flags.n2n_bigger = 0;
+					ha->flags.n2n_ae = 1;
 				}
 				qla24xx_post_newsess_work(vha, &id,
 				    rptid_entry->u.f1.port_name,
@@ -3941,7 +3935,6 @@
 			/* if our portname is higher then initiate N2N login */
 
 			set_bit(N2N_LOGIN_NEEDED, &vha->dpc_flags);
-			ha->flags.n2n_ae = 1;
 			return;
 			break;
 		case TOPO_FL:
@@ -6150,9 +6143,8 @@
 	mcp->mb[7] = LSW(MSD(req_dma));
 	mcp->mb[8] = MSW(addr);
 	/* Setting RAM ID to valid */
-	mcp->mb[10] |= BIT_7;
 	/* For MCTP RAM ID is 0x40 */
-	mcp->mb[10] |= 0x40;
+	mcp->mb[10] = BIT_7 | 0x40;
 
 	mcp->out_mb |= MBX_10|MBX_8|MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|
 	    MBX_0;
@@ -6287,17 +6279,13 @@
 	case  QLA_SUCCESS:
 		ql_dbg(ql_dbg_mbx, vha, 0x119d, "%s: %s done.\n",
 		    __func__, sp->name);
-		sp->free(sp);
 		break;
 	default:
 		ql_dbg(ql_dbg_mbx, vha, 0x119e, "%s: %s Failed. %x.\n",
 		    __func__, sp->name, rval);
-		sp->free(sp);
 		break;
 	}
 
-	return rval;
-
 done_free_sp:
 	sp->free(sp);
 done:
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_mid.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_mid.c
@@ -946,7 +946,7 @@
 
 	sp = qla2x00_get_sp(base_vha, NULL, GFP_KERNEL);
 	if (!sp)
-		goto done;
+		return rval;
 
 	sp->type = SRB_CTRL_VP;
 	sp->name = "ctrl_vp";
@@ -962,7 +962,7 @@
 		ql_dbg(ql_dbg_async, vha, 0xffff,
 		    "%s: %s Failed submission. %x.\n",
 		    __func__, sp->name, rval);
-		goto done_free_sp;
+		goto done;
 	}
 
 	ql_dbg(ql_dbg_vport, vha, 0x113f, "%s hndl %x submitted\n",
@@ -980,16 +980,13 @@
 	case QLA_SUCCESS:
 		ql_dbg(ql_dbg_vport, vha, 0xffff, "%s: %s done.\n",
 		    __func__, sp->name);
-		goto done_free_sp;
+		break;
 	default:
 		ql_dbg(ql_dbg_vport, vha, 0xffff, "%s: %s Failed. %x.\n",
 		    __func__, sp->name, rval);
-		goto done_free_sp;
+		break;
 	}
 done:
-	return rval;
-
-done_free_sp:
 	sp->free(sp);
 	return rval;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_nvme.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_nvme.c
@@ -224,8 +224,8 @@
 
 	if (ha->flags.host_shutting_down) {
 		ql_log(ql_log_info, sp->fcport->vha, 0xffff,
-		    "%s Calling done on sp: %p, type: 0x%x, sp->ref_count: 0x%x\n",
-		    __func__, sp, sp->type, atomic_read(&sp->ref_count));
+		    "%s Calling done on sp: %p, type: 0x%x\n",
+		    __func__, sp, sp->type);
 		sp->done(sp, 0);
 		goto out;
 	}
@@ -535,6 +535,11 @@
 	struct nvme_private *priv = fd->private;
 	struct qla_nvme_rport *qla_rport = rport->private;
 
+	if (!priv) {
+		/* nvme association has been torn down */
+		return rval;
+	}
+
 	fcport = qla_rport->fcport;
 
 	if (!qpair || !fcport || (qpair && !qpair->fw_started) ||
@@ -677,7 +682,7 @@
 	struct nvme_fc_port_template *tmpl;
 	struct qla_hw_data *ha;
 	struct nvme_fc_port_info pinfo;
-	int ret = EINVAL;
+	int ret = -EINVAL;
 
 	if (!IS_ENABLED(CONFIG_NVME_FC))
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_nx.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_nx.c
@@ -1612,8 +1612,7 @@
 	return (u8 *)&ha->hablob->fw->data[offset];
 }
 
-static __le32
-qla82xx_get_fw_size(struct qla_hw_data *ha)
+static u32 qla82xx_get_fw_size(struct qla_hw_data *ha)
 {
 	struct qla82xx_uri_data_desc *uri_desc = NULL;
 
@@ -1624,7 +1623,7 @@
 			return cpu_to_le32(uri_desc->size);
 	}
 
-	return cpu_to_le32(*(u32 *)&ha->hablob->fw->data[FW_SIZE_OFFSET]);
+	return get_unaligned_le32(&ha->hablob->fw->data[FW_SIZE_OFFSET]);
 }
 
 static u8 *
@@ -1816,7 +1815,7 @@
 	}
 
 	flashaddr = FLASH_ADDR_START;
-	size = (__force u32)qla82xx_get_fw_size(ha) / 8;
+	size = qla82xx_get_fw_size(ha) / 8;
 	ptr64 = (u64 *)qla82xx_get_fw_offs(ha);
 
 	for (i = 0; i < size; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_os.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_os.c
@@ -698,11 +698,6 @@
 	struct scsi_cmnd *cmd = GET_CMD_SP(sp);
 	struct completion *comp = sp->comp;
 
-	if (WARN_ON_ONCE(atomic_read(&sp->ref_count) == 0))
-		return;
-
-	atomic_dec(&sp->ref_count);
-
 	sp->free(sp);
 	cmd->result = res;
 	CMD_SP(cmd) = NULL;
@@ -794,11 +789,6 @@
 	struct scsi_cmnd *cmd = GET_CMD_SP(sp);
 	struct completion *comp = sp->comp;
 
-	if (WARN_ON_ONCE(atomic_read(&sp->ref_count) == 0))
-		return;
-
-	atomic_dec(&sp->ref_count);
-
 	sp->free(sp);
 	cmd->result = res;
 	CMD_SP(cmd) = NULL;
@@ -903,7 +893,7 @@
 
 	sp->u.scmd.cmd = cmd;
 	sp->type = SRB_SCSI_CMD;
-	atomic_set(&sp->ref_count, 1);
+
 	CMD_SP(cmd) = (void *)sp;
 	sp->free = qla2x00_sp_free_dma;
 	sp->done = qla2x00_sp_compl;
@@ -985,18 +975,16 @@
 
 	sp->u.scmd.cmd = cmd;
 	sp->type = SRB_SCSI_CMD;
-	atomic_set(&sp->ref_count, 1);
 	CMD_SP(cmd) = (void *)sp;
 	sp->free = qla2xxx_qpair_sp_free_dma;
 	sp->done = qla2xxx_qpair_sp_compl;
-	sp->qpair = qpair;
 
 	rval = ha->isp_ops->start_scsi_mq(sp);
 	if (rval != QLA_SUCCESS) {
 		ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3078,
 		    "Start scsi failed rval=%d for cmd=%p.\n", rval, cmd);
 		if (rval == QLA_INTERFACE_ERROR)
-			goto qc24_fail_command;
+			goto qc24_free_sp_fail_command;
 		goto qc24_host_busy_free_sp;
 	}
 
@@ -1008,6 +996,11 @@
 qc24_target_busy:
 	return SCSI_MLQUEUE_TARGET_BUSY;
 
+qc24_free_sp_fail_command:
+	sp->free(sp);
+	CMD_SP(cmd) = NULL;
+	qla2xxx_rel_qpair_sp(sp->qpair, sp);
+
 qc24_fail_command:
 	cmd->scsi_done(cmd);
 
@@ -1184,16 +1177,6 @@
 	return return_status;
 }
 
-static int
-sp_get(struct srb *sp)
-{
-	if (!refcount_inc_not_zero((refcount_t *)&sp->ref_count))
-		/* kref get fail */
-		return ENXIO;
-	else
-		return 0;
-}
-
 #define ISP_REG_DISCONNECT 0xffffffffU
 /**************************************************************************
 * qla2x00_isp_reg_stat
@@ -1249,6 +1232,9 @@
 	uint64_t lun;
 	int rval;
 	struct qla_hw_data *ha = vha->hw;
+	uint32_t ratov_j;
+	struct qla_qpair *qpair;
+	unsigned long flags;
 
 	if (qla2x00_isp_reg_stat(ha)) {
 		ql_log(ql_log_info, vha, 0x8042,
@@ -1261,13 +1247,26 @@
 		return ret;
 
 	sp = scsi_cmd_priv(cmd);
+	qpair = sp->qpair;
 
-	if (sp->fcport && sp->fcport->deleted)
+	if ((sp->fcport && sp->fcport->deleted) || !qpair)
 		return SUCCESS;
 
-	/* Return if the command has already finished. */
-	if (sp_get(sp))
+	spin_lock_irqsave(qpair->qp_lock_ptr, flags);
+	if (sp->completed) {
+		spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
 		return SUCCESS;
+	}
+
+	if (sp->abort || sp->aborted) {
+		spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
+		return FAILED;
+	}
+
+	sp->abort = 1;
+	sp->comp = &comp;
+	spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
+
 
 	id = cmd->device->id;
 	lun = cmd->device->lun;
@@ -1276,47 +1275,37 @@
 	    "Aborting from RISC nexus=%ld:%d:%llu sp=%p cmd=%p handle=%x\n",
 	    vha->host_no, id, lun, sp, cmd, sp->handle);
 
+	/*
+	 * Abort will release the original Command/sp from FW. Let the
+	 * original command call scsi_done. In return, he will wakeup
+	 * this sleeping thread.
+	 */
 	rval = ha->isp_ops->abort_command(sp);
+
 	ql_dbg(ql_dbg_taskm, vha, 0x8003,
 	       "Abort command mbx cmd=%p, rval=%x.\n", cmd, rval);
 
+	/* Wait for the command completion. */
+	ratov_j = ha->r_a_tov/10 * 4 * 1000;
+	ratov_j = msecs_to_jiffies(ratov_j);
 	switch (rval) {
 	case QLA_SUCCESS:
-		/*
-		 * The command has been aborted. That means that the firmware
-		 * won't report a completion.
-		 */
-		sp->done(sp, DID_ABORT << 16);
-		ret = SUCCESS;
-		break;
-	case QLA_FUNCTION_PARAMETER_ERROR: {
-		/* Wait for the command completion. */
-		uint32_t ratov = ha->r_a_tov/10;
-		uint32_t ratov_j = msecs_to_jiffies(4 * ratov * 1000);
-
-		WARN_ON_ONCE(sp->comp);
-		sp->comp = &comp;
 		if (!wait_for_completion_timeout(&comp, ratov_j)) {
 			ql_dbg(ql_dbg_taskm, vha, 0xffff,
 			    "%s: Abort wait timer (4 * R_A_TOV[%d]) expired\n",
-			    __func__, ha->r_a_tov);
+			    __func__, ha->r_a_tov/10);
 			ret = FAILED;
 		} else {
 			ret = SUCCESS;
 		}
 		break;
-	}
 	default:
-		/*
-		 * Either abort failed or abort and completion raced. Let
-		 * the SCSI core retry the abort in the former case.
-		 */
 		ret = FAILED;
 		break;
 	}
 
 	sp->comp = NULL;
-	atomic_dec(&sp->ref_count);
+
 	ql_log(ql_log_info, vha, 0x801c,
 	    "Abort command issued nexus=%ld:%d:%llu -- %x.\n",
 	    vha->host_no, id, lun, ret);
@@ -1708,32 +1697,53 @@
 	scsi_qla_host_t *vha = qp->vha;
 	struct qla_hw_data *ha = vha->hw;
 	int rval;
+	bool ret_cmd;
+	uint32_t ratov_j;
 
-	if (sp_get(sp))
+	if (qla2x00_chip_is_down(vha)) {
+		sp->done(sp, res);
 		return;
+	}
 
 	if (sp->type == SRB_NVME_CMD || sp->type == SRB_NVME_LS ||
 	    (sp->type == SRB_SCSI_CMD && !ha->flags.eeh_busy &&
 	     !test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) &&
 	     !qla2x00_isp_reg_stat(ha))) {
+		if (sp->comp) {
+			sp->done(sp, res);
+			return;
+		}
+
 		sp->comp = &comp;
+		sp->abort =  1;
 		spin_unlock_irqrestore(qp->qp_lock_ptr, *flags);
-		rval = ha->isp_ops->abort_command(sp);
 
+		rval = ha->isp_ops->abort_command(sp);
+		/* Wait for command completion. */
+		ret_cmd = false;
+		ratov_j = ha->r_a_tov/10 * 4 * 1000;
+		ratov_j = msecs_to_jiffies(ratov_j);
 		switch (rval) {
 		case QLA_SUCCESS:
-			sp->done(sp, res);
+			if (wait_for_completion_timeout(&comp, ratov_j)) {
+				ql_dbg(ql_dbg_taskm, vha, 0xffff,
+				    "%s: Abort wait timer (4 * R_A_TOV[%d]) expired\n",
+				    __func__, ha->r_a_tov/10);
+				ret_cmd = true;
+			}
+			/* else FW return SP to driver */
 			break;
-		case QLA_FUNCTION_PARAMETER_ERROR:
-			wait_for_completion(&comp);
+		default:
+			ret_cmd = true;
 			break;
 		}
 
 		spin_lock_irqsave(qp->qp_lock_ptr, *flags);
-		sp->comp = NULL;
+		if (ret_cmd && (!sp->completed || !sp->aborted))
+			sp->done(sp, res);
+	} else {
+		sp->done(sp, res);
 	}
-
-	atomic_dec(&sp->ref_count);
 }
 
 static void
@@ -1755,7 +1765,6 @@
 	for (cnt = 1; cnt < req->num_outstanding_cmds; cnt++) {
 		sp = req->outstanding_cmds[cnt];
 		if (sp) {
-			req->outstanding_cmds[cnt] = NULL;
 			switch (sp->cmd_type) {
 			case TYPE_SRB:
 				qla2x00_abort_srb(qp, sp, res, &flags);
@@ -1777,6 +1786,7 @@
 			default:
 				break;
 			}
+			req->outstanding_cmds[cnt] = NULL;
 		}
 	}
 	spin_unlock_irqrestore(qp->qp_lock_ptr, flags);
@@ -1983,6 +1993,11 @@
 	/* Determine queue resources */
 	ha->max_req_queues = ha->max_rsp_queues = 1;
 	ha->msix_count = QLA_BASE_VECTORS;
+
+	/* Check if FW supports MQ or not */
+	if (!(ha->fw_attributes & BIT_6))
+		goto mqiobase_exit;
+
 	if (!ql2xmqsupport || !ql2xnvmeenable ||
 	    (!IS_QLA25XX(ha) && !IS_QLA81XX(ha)))
 		goto mqiobase_exit;
@@ -2794,10 +2809,6 @@
 	/* This may fail but that's ok */
 	pci_enable_pcie_error_reporting(pdev);
 
-	/* Turn off T10-DIF when FC-NVMe is enabled */
-	if (ql2xnvmeenable)
-		ql2xenabledif = 0;
-
 	ha = kzalloc(sizeof(struct qla_hw_data), GFP_KERNEL);
 	if (!ha) {
 		ql_log_pci(ql_log_fatal, pdev, 0x0009,
@@ -3690,6 +3701,13 @@
 	}
 	qla2x00_wait_for_hba_ready(base_vha);
 
+	/*
+	 * if UNLOADING flag is already set, then continue unload,
+	 * where it was set first.
+	 */
+	if (test_and_set_bit(UNLOADING, &base_vha->dpc_flags))
+		return;
+
 	if (IS_QLA25XX(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha) ||
 	    IS_QLA28XX(ha)) {
 		if (ha->flags.fw_started)
@@ -3708,15 +3726,6 @@
 
 	qla2x00_wait_for_sess_deletion(base_vha);
 
-	/*
-	 * if UNLOAD flag is already set, then continue unload,
-	 * where it was set first.
-	 */
-	if (test_bit(UNLOADING, &base_vha->dpc_flags))
-		return;
-
-	set_bit(UNLOADING, &base_vha->dpc_flags);
-
 	qla_nvme_delete(base_vha);
 
 	dma_free_coherent(&ha->pdev->dev,
@@ -4666,7 +4675,8 @@
 	ha->sfp_data = NULL;
 
 	if (ha->flt)
-		dma_free_coherent(&ha->pdev->dev, SFP_DEV_SIZE,
+		dma_free_coherent(&ha->pdev->dev,
+		    sizeof(struct qla_flt_header) + FLT_REGIONS_SIZE,
 		    ha->flt, ha->flt_dma);
 	ha->flt = NULL;
 	ha->flt_dma = 0;
@@ -4848,6 +4858,9 @@
 	struct qla_work_evt *e;
 	uint8_t bail;
 
+	if (test_bit(UNLOADING, &vha->dpc_flags))
+		return NULL;
+
 	QLA_VHA_MARK_BUSY(vha, bail);
 	if (bail)
 		return NULL;
@@ -6042,13 +6055,6 @@
 	struct pci_dev *pdev = ha->pdev;
 	scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
 
-	/*
-	 * if UNLOAD flag is already set, then continue unload,
-	 * where it was set first.
-	 */
-	if (test_bit(UNLOADING, &base_vha->dpc_flags))
-		return;
-
 	ql_log(ql_log_warn, base_vha, 0x015b,
 	    "Disabling adapter.\n");
 
@@ -6059,9 +6065,14 @@
 		return;
 	}
 
-	qla2x00_wait_for_sess_deletion(base_vha);
+	/*
+	 * if UNLOADING flag is already set, then continue unload,
+	 * where it was set first.
+	 */
+	if (test_and_set_bit(UNLOADING, &base_vha->dpc_flags))
+		return;
 
-	set_bit(UNLOADING, &base_vha->dpc_flags);
+	qla2x00_wait_for_sess_deletion(base_vha);
 
 	qla2x00_delete_all_vps(ha, base_vha);
 
@@ -6285,6 +6296,7 @@
 
 			if (do_reset && !(test_and_set_bit(ABORT_ISP_ACTIVE,
 			    &base_vha->dpc_flags))) {
+				base_vha->flags.online = 1;
 				ql_dbg(ql_dbg_dpc, base_vha, 0x4007,
 				    "ISP abort scheduled.\n");
 				if (ha->isp_ops->abort_isp(base_vha)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_sup.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_sup.c
@@ -847,15 +847,15 @@
 				ha->flt_region_img_status_pri = start;
 			break;
 		case FLT_REG_IMG_SEC_27XX:
-			if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
+			if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
 				ha->flt_region_img_status_sec = start;
 			break;
 		case FLT_REG_FW_SEC_27XX:
-			if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
+			if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
 				ha->flt_region_fw_sec = start;
 			break;
 		case FLT_REG_BOOTLOAD_SEC_27XX:
-			if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
+			if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
 				ha->flt_region_boot_sec = start;
 			break;
 		case FLT_REG_AUX_IMG_PRI_28XX:
@@ -2725,8 +2725,11 @@
 		ql_log(ql_log_warn + ql_dbg_verbose, vha, 0xffff,
 		    "Region %x is secure\n", region.code);
 
-		if (region.code == FLT_REG_FW ||
-		    region.code == FLT_REG_FW_SEC_27XX) {
+		switch (region.code) {
+		case FLT_REG_FW:
+		case FLT_REG_FW_SEC_27XX:
+		case FLT_REG_MPI_PRI_28XX:
+		case FLT_REG_MPI_SEC_28XX:
 			fw_array = dwptr;
 
 			/* 1st fw array */
@@ -2757,9 +2760,23 @@
 				buf_size_without_sfub += risc_size;
 				fw_array += risc_size;
 			}
-		} else {
-			ql_log(ql_log_warn + ql_dbg_verbose, vha, 0xffff,
-			    "Secure region %x not supported\n",
+			break;
+
+		case FLT_REG_PEP_PRI_28XX:
+		case FLT_REG_PEP_SEC_28XX:
+			fw_array = dwptr;
+
+			/* 1st fw array */
+			risc_size = be32_to_cpu(fw_array[3]);
+			risc_attr = be32_to_cpu(fw_array[9]);
+
+			buf_size_without_sfub = risc_size;
+			fw_array += risc_size;
+			break;
+
+		default:
+			ql_log(ql_log_warn + ql_dbg_verbose, vha,
+			    0xffff, "Secure region %x not supported\n",
 			    region.code);
 			rval = QLA_COMMAND_ERROR;
 			goto done;
@@ -2880,7 +2897,7 @@
 			    "Sending Secure Flash MB Cmd\n");
 			rval = qla28xx_secure_flash_update(vha, 0, region.code,
 				buf_size_without_sfub, sfub_dma,
-				sizeof(struct secure_flash_update_block));
+				sizeof(struct secure_flash_update_block) >> 2);
 			if (rval != QLA_SUCCESS) {
 				ql_log(ql_log_warn, vha, 0xffff,
 				    "Secure Flash MB Cmd failed %x.", rval);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_target.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_target.c
@@ -957,7 +957,7 @@
 	struct qlt_plogi_ack_t *own =
 		sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN];
 
-	ql_dbg(ql_dbg_tgt_mgt, vha, 0xf084,
+	ql_dbg(ql_dbg_disc, vha, 0xf084,
 		"%s: se_sess %p / sess %p from port %8phC loop_id %#04x"
 		" s_id %02x:%02x:%02x logout %d keep %d els_logo %d\n",
 		__func__, sess->se_sess, sess, sess->port_name, sess->loop_id,
@@ -1024,7 +1024,7 @@
 
 		while (!READ_ONCE(sess->logout_completed)) {
 			if (!traced) {
-				ql_dbg(ql_dbg_tgt_mgt, vha, 0xf086,
+				ql_dbg(ql_dbg_disc, vha, 0xf086,
 					"%s: waiting for sess %p logout\n",
 					__func__, sess);
 				traced = true;
@@ -1045,6 +1045,10 @@
 			(struct imm_ntfy_from_isp *)sess->iocb, SRB_NACK_LOGO);
 	}
 
+	spin_lock_irqsave(&vha->work_lock, flags);
+	sess->flags &= ~FCF_ASYNC_SENT;
+	spin_unlock_irqrestore(&vha->work_lock, flags);
+
 	spin_lock_irqsave(&ha->tgt.sess_lock, flags);
 	if (sess->se_sess) {
 		sess->se_sess = NULL;
@@ -1104,10 +1108,11 @@
 		}
 	}
 
+	sess->explicit_logout = 0;
 	spin_unlock_irqrestore(&ha->tgt.sess_lock, flags);
 	sess->free_pending = 0;
 
-	ql_dbg(ql_dbg_tgt_mgt, vha, 0xf001,
+	ql_dbg(ql_dbg_disc, vha, 0xf001,
 	    "Unregistration of sess %p %8phC finished fcp_cnt %d\n",
 		sess, sess->port_name, vha->fcport_count);
 
@@ -1150,6 +1155,11 @@
 		return;
 	}
 	sess->free_pending = 1;
+	/*
+	 * Use FCF_ASYNC_SENT flag to block other cmds used in sess
+	 * management from being sent.
+	 */
+	sess->flags |= FCF_ASYNC_SENT;
 	spin_unlock_irqrestore(&sess->vha->work_lock, flags);
 
 	if (sess->se_sess)
@@ -1160,7 +1170,6 @@
 	sess->last_rscn_gen = sess->rscn_gen;
 	sess->last_login_gen = sess->login_gen;
 
-	INIT_WORK(&sess->free_work, qlt_free_session_done);
 	queue_work(sess->vha->hw->wq, &sess->free_work);
 }
 EXPORT_SYMBOL(qlt_unreg_sess);
@@ -1221,14 +1230,15 @@
 	case DSC_DELETE_PEND:
 		return;
 	case DSC_DELETED:
-		if (tgt && tgt->tgt_stop && (tgt->sess_count == 0))
-			wake_up_all(&tgt->waitQ);
-		if (sess->vha->fcport_count == 0)
-			wake_up_all(&sess->vha->fcport_waitQ);
-
 		if (!sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] &&
-			!sess->plogi_link[QLT_PLOGI_LINK_CONFLICT])
+			!sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) {
+			if (tgt && tgt->tgt_stop && tgt->sess_count == 0)
+				wake_up_all(&tgt->waitQ);
+
+			if (sess->vha->fcport_count == 0)
+				wake_up_all(&sess->vha->fcport_waitQ);
 			return;
+		}
 		break;
 	case DSC_UPD_FCPORT:
 		/*
@@ -1257,15 +1267,15 @@
 	sess->deleted = QLA_SESS_DELETION_IN_PROGRESS;
 	spin_unlock_irqrestore(&sess->vha->work_lock, flags);
 
+	sess->prli_pend_timer = 0;
 	sess->disc_state = DSC_DELETE_PEND;
 
 	qla24xx_chk_fcp_state(sess);
 
-	ql_dbg(ql_dbg_tgt, sess->vha, 0xe001,
+	ql_dbg(ql_dbg_disc, sess->vha, 0xe001,
 	    "Scheduling sess %p for deletion %8phC\n",
 	    sess, sess->port_name);
 
-	INIT_WORK(&sess->del_work, qla24xx_delete_sess_fn);
 	WARN_ON(!queue_work(sess->vha->hw->wq, &sess->del_work));
 }
 
@@ -4580,7 +4590,7 @@
 		/* find other sess with nport_id collision */
 		if (port_id.b24 == other_sess->d_id.b24) {
 			if (loop_id != other_sess->loop_id) {
-				ql_dbg(ql_dbg_tgt_tmr, vha, 0x1000c,
+				ql_dbg(ql_dbg_disc, vha, 0x1000c,
 				    "Invalidating sess %p loop_id %d wwn %llx.\n",
 				    other_sess, other_sess->loop_id, other_wwn);
 
@@ -4596,7 +4606,7 @@
 				 * Another wwn used to have our s_id/loop_id
 				 * kill the session, but don't free the loop_id
 				 */
-				ql_dbg(ql_dbg_tgt_tmr, vha, 0xf01b,
+				ql_dbg(ql_dbg_disc, vha, 0xf01b,
 				    "Invalidating sess %p loop_id %d wwn %llx.\n",
 				    other_sess, other_sess->loop_id, other_wwn);
 
@@ -4611,7 +4621,7 @@
 		/* find other sess with nport handle collision */
 		if ((loop_id == other_sess->loop_id) &&
 			(loop_id != FC_NO_LOOP_ID)) {
-			ql_dbg(ql_dbg_tgt_tmr, vha, 0x1000d,
+			ql_dbg(ql_dbg_disc, vha, 0x1000d,
 			       "Invalidating sess %p loop_id %d wwn %llx.\n",
 			       other_sess, other_sess->loop_id, other_wwn);
 
@@ -4804,6 +4814,7 @@
 
 	switch (sess->disc_state) {
 	case DSC_DELETED:
+	case DSC_LOGIN_PEND:
 		qlt_plogi_ack_unref(vha, pla);
 		break;
 
@@ -5667,7 +5678,7 @@
 		/* found existing exchange */
 		qpair->retry_term_cnt++;
 		if (qpair->retry_term_cnt >= 5) {
-			rc = EIO;
+			rc = -EIO;
 			qpair->retry_term_cnt = 0;
 			ql_log(ql_log_warn, vha, 0xffff,
 			    "Unable to send ABTS Respond. Dumping firmware.\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_tmpl.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_tmpl.c
@@ -910,7 +910,8 @@
 static inline int
 qla27xx_verify_template_checksum(struct qla27xx_fwdt_template *tmp)
 {
-	return qla27xx_template_checksum(tmp, tmp->template_size) == 0;
+	return qla27xx_template_checksum(tmp,
+		le32_to_cpu(tmp->template_size)) == 0;
 }
 
 static inline int
@@ -926,7 +927,7 @@
 	ulong len = 0;
 
 	if (qla27xx_fwdt_template_valid(tmp)) {
-		len = tmp->template_size;
+		len = le32_to_cpu(tmp->template_size);
 		tmp = memcpy(buf, tmp, len);
 		ql27xx_edit_template(vha, tmp);
 		qla27xx_walk_template(vha, tmp, buf, &len);
@@ -942,7 +943,7 @@
 	ulong len = 0;
 
 	if (qla27xx_fwdt_template_valid(tmp)) {
-		len = tmp->template_size;
+		len = le32_to_cpu(tmp->template_size);
 		qla27xx_walk_template(vha, tmp, NULL, &len);
 	}
 
@@ -954,7 +955,7 @@
 {
 	struct qla27xx_fwdt_template *tmp = p;
 
-	return tmp->template_size;
+	return le32_to_cpu(tmp->template_size);
 }
 
 int
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/qla_tmpl.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/qla_tmpl.h
@@ -13,7 +13,7 @@
 struct __packed qla27xx_fwdt_template {
 	__le32 template_type;
 	__le32 entry_offset;
-	uint32_t template_size;
+	__le32 template_size;
 	uint32_t count;		/* borrow field for running/residual count */
 
 	__le32 entry_count;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla2xxx/tcm_qla2xxx.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla2xxx/tcm_qla2xxx.c
@@ -246,6 +246,8 @@
  */
 static void tcm_qla2xxx_free_mcmd(struct qla_tgt_mgmt_cmd *mcmd)
 {
+	if (!mcmd)
+		return;
 	INIT_WORK(&mcmd->free_work, tcm_qla2xxx_complete_mcmd);
 	queue_work(tcm_qla2xxx_free_wq, &mcmd->free_work);
 }
@@ -348,6 +350,7 @@
 	target_sess_cmd_list_set_waiting(se_sess);
 	spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
 
+	sess->explicit_logout = 1;
 	tcm_qla2xxx_put_sess(sess);
 }
 
@@ -923,6 +926,7 @@
 
 		atomic_set(&tpg->lport_tpg_enabled, 0);
 		qlt_stop_phase1(vha->vha_tgt.qla_tgt);
+		qlt_stop_phase2(vha->vha_tgt.qla_tgt);
 	}
 
 	return count;
@@ -1085,6 +1089,7 @@
 
 		atomic_set(&tpg->lport_tpg_enabled, 0);
 		qlt_stop_phase1(vha->vha_tgt.qla_tgt);
+		qlt_stop_phase2(vha->vha_tgt.qla_tgt);
 	}
 
 	return count;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla4xxx/ql4_mbx.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -640,9 +640,6 @@
 
 	if (qla4xxx_get_ifcb(ha, &mbox_cmd[0], &mbox_sts[0], init_fw_cb_dma) !=
 	    QLA_SUCCESS) {
-		dma_free_coherent(&ha->pdev->dev,
-				  sizeof(struct addr_ctrl_blk),
-				  init_fw_cb, init_fw_cb_dma);
 		goto exit_init_fw_cb;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/qla4xxx/ql4_os.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/qla4xxx/ql4_os.c
@@ -1220,7 +1220,7 @@
 			le64_to_cpu(ql_iscsi_stats->iscsi_sequence_error);
 exit_host_stats:
 	if (ql_iscsi_stats)
-		dma_free_coherent(&ha->pdev->dev, host_stats_size,
+		dma_free_coherent(&ha->pdev->dev, stats_size,
 				  ql_iscsi_stats, iscsi_stats_dma);
 
 	ql4_printk(KERN_INFO, ha, "%s: Get host stats done\n",
@@ -4145,7 +4145,7 @@
 		dma_free_coherent(&ha->pdev->dev, ha->queues_len, ha->queues,
 				  ha->queues_dma);
 
-	 if (ha->fw_dump)
+	if (ha->fw_dump)
 		vfree(ha->fw_dump);
 
 	ha->queues_len = 0;
@@ -4275,7 +4275,6 @@
 	return QLA_SUCCESS;
 
 mem_alloc_error_exit:
-	qla4xxx_mem_free(ha);
 	return QLA_ERROR;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_debug.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_debug.c
@@ -5263,6 +5263,11 @@
 		return -EINVAL;
 	}
 
+	if (sdebug_num_tgts < 0) {
+		pr_err("num_tgts must be >= 0\n");
+		return -EINVAL;
+	}
+
 	if (sdebug_guard > 1) {
 		pr_err("guard must be 0 or 1\n");
 		return -EINVAL;
@@ -5291,6 +5296,12 @@
 		pr_err("submit_queues must be 1 or more\n");
 		return -EINVAL;
 	}
+
+	if ((sdebug_max_queue > SDEBUG_CANQUEUE) || (sdebug_max_queue < 1)) {
+		pr_err("max_queue must be in range [1, %d]\n", SDEBUG_CANQUEUE);
+		return -EINVAL;
+	}
+
 	sdebug_q_arr = kcalloc(submit_queues, sizeof(struct sdebug_queue),
 			       GFP_KERNEL);
 	if (sdebug_q_arr == NULL)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_devinfo.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_devinfo.c
@@ -239,6 +239,7 @@
 	{"LSI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
 	{"ENGENIO", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
 	{"LENOVO", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
+	{"FUJITSU", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
 	{"SanDisk", "Cruzer Blade", NULL, BLIST_TRY_VPD_PAGES |
 		BLIST_INQUIRY_36},
 	{"SMSC", "USB 2 HS-CF", NULL, BLIST_SPARSELUN | BLIST_INQUIRY_36},
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_dh.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_dh.c
@@ -63,6 +63,7 @@
 	{"LSI", "INF-01-00",		"rdac", },
 	{"ENGENIO", "INF-01-00",	"rdac", },
 	{"LENOVO", "DE_Series",		"rdac", },
+	{"FUJITSU", "ETERNUS_AHB",	"rdac", },
 	{NULL, NULL,			NULL },
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_lib.c
@@ -551,7 +551,7 @@
 	}
 }
 
-static void scsi_mq_free_sgtables(struct scsi_cmnd *cmd)
+static void scsi_free_sgtables(struct scsi_cmnd *cmd)
 {
 	if (cmd->sdb.table.nents)
 		sg_free_table_chained(&cmd->sdb.table,
@@ -563,11 +563,20 @@
 
 static void scsi_mq_uninit_cmd(struct scsi_cmnd *cmd)
 {
-	scsi_mq_free_sgtables(cmd);
+	scsi_free_sgtables(cmd);
 	scsi_uninit_cmd(cmd);
 	scsi_del_cmd_from_list(cmd);
 }
 
+static void scsi_run_queue_async(struct scsi_device *sdev)
+{
+	if (scsi_target(sdev)->single_lun ||
+	    !list_empty(&sdev->host->starved_list))
+		kblockd_schedule_work(&sdev->requeue_work);
+	else
+		blk_mq_run_hw_queues(sdev->request_queue, true);
+}
+
 /* Returns false when no more bytes to process, true if there are more */
 static bool scsi_end_request(struct request *req, blk_status_t error,
 		unsigned int bytes)
@@ -612,11 +621,7 @@
 
 	__blk_mq_end_request(req, error);
 
-	if (scsi_target(sdev)->single_lun ||
-	    !list_empty(&sdev->host->starved_list))
-		kblockd_schedule_work(&sdev->requeue_work);
-	else
-		blk_mq_run_hw_queues(q, true);
+	scsi_run_queue_async(sdev);
 
 	percpu_ref_put(&q->q_usage_counter);
 	return false;
@@ -1063,7 +1068,7 @@
 
 	return BLK_STS_OK;
 out_free_sgtables:
-	scsi_mq_free_sgtables(cmd);
+	scsi_free_sgtables(cmd);
 	return ret;
 }
 EXPORT_SYMBOL(scsi_init_io);
@@ -1214,6 +1219,7 @@
 		struct request *req)
 {
 	struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(req);
+	blk_status_t ret;
 
 	if (!blk_rq_bytes(req))
 		cmd->sc_data_direction = DMA_NONE;
@@ -1223,9 +1229,14 @@
 		cmd->sc_data_direction = DMA_FROM_DEVICE;
 
 	if (blk_rq_is_scsi(req))
-		return scsi_setup_scsi_cmnd(sdev, req);
+		ret = scsi_setup_scsi_cmnd(sdev, req);
 	else
-		return scsi_setup_fs_cmnd(sdev, req);
+		ret = scsi_setup_fs_cmnd(sdev, req);
+
+	if (ret != BLK_STS_OK)
+		scsi_free_sgtables(cmd);
+
+	return ret;
 }
 
 static blk_status_t
@@ -1723,6 +1734,7 @@
 		 */
 		if (req->rq_flags & RQF_DONTPREP)
 			scsi_mq_uninit_cmd(cmd);
+		scsi_run_queue_async(sdev);
 		break;
 	}
 	return ret;
@@ -2918,6 +2930,78 @@
 }
 EXPORT_SYMBOL(sdev_enable_disk_events);
 
+static unsigned char designator_prio(const unsigned char *d)
+{
+	if (d[1] & 0x30)
+		/* not associated with LUN */
+		return 0;
+
+	if (d[3] == 0)
+		/* invalid length */
+		return 0;
+
+	/*
+	 * Order of preference for lun descriptor:
+	 * - SCSI name string
+	 * - NAA IEEE Registered Extended
+	 * - EUI-64 based 16-byte
+	 * - EUI-64 based 12-byte
+	 * - NAA IEEE Registered
+	 * - NAA IEEE Extended
+	 * - EUI-64 based 8-byte
+	 * - SCSI name string (truncated)
+	 * - T10 Vendor ID
+	 * as longer descriptors reduce the likelyhood
+	 * of identification clashes.
+	 */
+
+	switch (d[1] & 0xf) {
+	case 8:
+		/* SCSI name string, variable-length UTF-8 */
+		return 9;
+	case 3:
+		switch (d[4] >> 4) {
+		case 6:
+			/* NAA registered extended */
+			return 8;
+		case 5:
+			/* NAA registered */
+			return 5;
+		case 4:
+			/* NAA extended */
+			return 4;
+		case 3:
+			/* NAA locally assigned */
+			return 1;
+		default:
+			break;
+		}
+		break;
+	case 2:
+		switch (d[3]) {
+		case 16:
+			/* EUI64-based, 16 byte */
+			return 7;
+		case 12:
+			/* EUI64-based, 12 byte */
+			return 6;
+		case 8:
+			/* EUI64-based, 8 byte */
+			return 3;
+		default:
+			break;
+		}
+		break;
+	case 1:
+		/* T10 vendor ID */
+		return 1;
+	default:
+		break;
+	}
+
+	return 0;
+}
+
 /**
  * scsi_vpd_lun_id - return a unique device identification
  * @sdev: SCSI device
@@ -2934,7 +3018,7 @@
  */
 int scsi_vpd_lun_id(struct scsi_device *sdev, char *id, size_t id_len)
 {
-	u8 cur_id_type = 0xff;
+	u8 cur_id_prio = 0;
 	u8 cur_id_size = 0;
 	const unsigned char *d, *cur_id_str;
 	const struct scsi_vpd *vpd_pg83;
@@ -2947,20 +3031,6 @@
 		return -ENXIO;
 	}
 
-	/*
-	 * Look for the correct descriptor.
-	 * Order of preference for lun descriptor:
-	 * - SCSI name string
-	 * - NAA IEEE Registered Extended
-	 * - EUI-64 based 16-byte
-	 * - EUI-64 based 12-byte
-	 * - NAA IEEE Registered
-	 * - NAA IEEE Extended
-	 * - T10 Vendor ID
-	 * as longer descriptors reduce the likelyhood
-	 * of identification clashes.
-	 */
-
 	/* The id string must be at least 20 bytes + terminating NULL byte */
 	if (id_len < 21) {
 		rcu_read_unlock();
@@ -2970,8 +3040,9 @@
 	memset(id, 0, id_len);
 	d = vpd_pg83->data + 4;
 	while (d < vpd_pg83->data + vpd_pg83->len) {
-		/* Skip designators not referring to the LUN */
-		if ((d[1] & 0x30) != 0x00)
+		u8 prio = designator_prio(d);
+
+		if (prio == 0 || cur_id_prio > prio)
 			goto next_desig;
 
 		switch (d[1] & 0xf) {
@@ -2979,28 +3050,19 @@
 			/* T10 Vendor ID */
 			if (cur_id_size > d[3])
 				break;
-			/* Prefer anything */
-			if (cur_id_type > 0x01 && cur_id_type != 0xff)
-				break;
+			cur_id_prio = prio;
 			cur_id_size = d[3];
 			if (cur_id_size + 4 > id_len)
 				cur_id_size = id_len - 4;
 			cur_id_str = d + 4;
-			cur_id_type = d[1] & 0xf;
 			id_size = snprintf(id, id_len, "t10.%*pE",
 					   cur_id_size, cur_id_str);
 			break;
 		case 0x2:
 			/* EUI-64 */
-			if (cur_id_size > d[3])
-				break;
-			/* Prefer NAA IEEE Registered Extended */
-			if (cur_id_type == 0x3 &&
-			    cur_id_size == d[3])
-				break;
+			cur_id_prio = prio;
 			cur_id_size = d[3];
 			cur_id_str = d + 4;
-			cur_id_type = d[1] & 0xf;
 			switch (cur_id_size) {
 			case 8:
 				id_size = snprintf(id, id_len,
@@ -3018,17 +3080,14 @@
 						   cur_id_str);
 				break;
 			default:
-				cur_id_size = 0;
 				break;
 			}
 			break;
 		case 0x3:
 			/* NAA */
-			if (cur_id_size > d[3])
-				break;
+			cur_id_prio = prio;
 			cur_id_size = d[3];
 			cur_id_str = d + 4;
-			cur_id_type = d[1] & 0xf;
 			switch (cur_id_size) {
 			case 8:
 				id_size = snprintf(id, id_len,
@@ -3041,26 +3100,25 @@
 						   cur_id_str);
 				break;
 			default:
-				cur_id_size = 0;
 				break;
 			}
 			break;
 		case 0x8:
 			/* SCSI name string */
-			if (cur_id_size + 4 > d[3])
+			if (cur_id_size > d[3])
 				break;
 			/* Prefer others for truncated descriptor */
-			if (cur_id_size && d[3] > id_len)
-				break;
+			if (d[3] > id_len) {
+				prio = 2;
+				if (cur_id_prio > prio)
+					break;
+			}
+			cur_id_prio = prio;
 			cur_id_size = id_size = d[3];
 			cur_id_str = d + 4;
-			cur_id_type = d[1] & 0xf;
 			if (cur_id_size >= id_len)
 				cur_id_size = id_len - 1;
 			memcpy(id, cur_id_str, cur_id_size);
-			/* Decrease priority for truncated descriptor */
-			if (cur_id_size != id_size)
-				cur_id_size = 6;
 			break;
 		default:
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_pm.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_pm.c
@@ -80,6 +80,10 @@
 	dev_dbg(dev, "scsi resume: %d\n", err);
 
 	if (err == 0) {
+		bool was_runtime_suspended;
+
+		was_runtime_suspended = pm_runtime_suspended(dev);
+
 		pm_runtime_disable(dev);
 		err = pm_runtime_set_active(dev);
 		pm_runtime_enable(dev);
@@ -93,8 +97,10 @@
 		 */
 		if (!err && scsi_is_sdev_device(dev)) {
 			struct scsi_device *sdev = to_scsi_device(dev);
-
-			blk_set_runtime_active(sdev->request_queue);
+			if (was_runtime_suspended)
+				blk_post_runtime_resume(sdev->request_queue, 0);
+			else
+				blk_set_runtime_active(sdev->request_queue);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_scan.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_scan.c
@@ -1715,15 +1715,16 @@
  */
 static struct async_scan_data *scsi_prep_async_scan(struct Scsi_Host *shost)
 {
-	struct async_scan_data *data;
+	struct async_scan_data *data = NULL;
 	unsigned long flags;
 
 	if (strncmp(scsi_scan_type, "sync", 4) == 0)
 		return NULL;
 
+	mutex_lock(&shost->scan_mutex);
 	if (shost->async_scan) {
 		shost_printk(KERN_DEBUG, shost, "%s called twice\n", __func__);
-		return NULL;
+		goto err;
 	}
 
 	data = kmalloc(sizeof(*data), GFP_KERNEL);
@@ -1734,7 +1735,6 @@
 		goto err;
 	init_completion(&data->prev_finished);
 
-	mutex_lock(&shost->scan_mutex);
 	spin_lock_irqsave(shost->host_lock, flags);
 	shost->async_scan = 1;
 	spin_unlock_irqrestore(shost->host_lock, flags);
@@ -1749,6 +1749,7 @@
 	return data;
 
  err:
+	mutex_unlock(&shost->scan_mutex);
 	kfree(data);
 	return NULL;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_trace.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_trace.c
@@ -9,7 +9,7 @@
 #include <trace/events/scsi.h>
 
 #define SERVICE_ACTION16(cdb) (cdb[1] & 0x1f)
-#define SERVICE_ACTION32(cdb) ((cdb[8] << 8) | cdb[9])
+#define SERVICE_ACTION32(cdb) (get_unaligned_be16(&cdb[8]))
 
 static const char *
 scsi_trace_misc(struct trace_seq *, unsigned char *, int);
@@ -18,15 +18,18 @@
 scsi_trace_rw6(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
-	sector_t lba = 0, txlen = 0;
+	u32 lba = 0, txlen;
 
 	lba |= ((cdb[1] & 0x1F) << 16);
 	lba |=  (cdb[2] << 8);
 	lba |=   cdb[3];
-	txlen = cdb[4];
+	/*
+	 * From SBC-2: a TRANSFER LENGTH field set to zero specifies that 256
+	 * logical blocks shall be read (READ(6)) or written (WRITE(6)).
+	 */
+	txlen = cdb[4] ? cdb[4] : 256;
 
-	trace_seq_printf(p, "lba=%llu txlen=%llu",
-			 (unsigned long long)lba, (unsigned long long)txlen);
+	trace_seq_printf(p, "lba=%u txlen=%u", lba, txlen);
 	trace_seq_putc(p, 0);
 
 	return ret;
@@ -36,17 +39,12 @@
 scsi_trace_rw10(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
-	sector_t lba = 0, txlen = 0;
+	u32 lba, txlen;
 
-	lba |= (cdb[2] << 24);
-	lba |= (cdb[3] << 16);
-	lba |= (cdb[4] << 8);
-	lba |=  cdb[5];
-	txlen |= (cdb[7] << 8);
-	txlen |=  cdb[8];
+	lba = get_unaligned_be32(&cdb[2]);
+	txlen = get_unaligned_be16(&cdb[7]);
 
-	trace_seq_printf(p, "lba=%llu txlen=%llu protect=%u",
-			 (unsigned long long)lba, (unsigned long long)txlen,
+	trace_seq_printf(p, "lba=%u txlen=%u protect=%u", lba, txlen,
 			 cdb[1] >> 5);
 
 	if (cdb[0] == WRITE_SAME)
@@ -61,19 +59,12 @@
 scsi_trace_rw12(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
-	sector_t lba = 0, txlen = 0;
+	u32 lba, txlen;
 
-	lba |= (cdb[2] << 24);
-	lba |= (cdb[3] << 16);
-	lba |= (cdb[4] << 8);
-	lba |=  cdb[5];
-	txlen |= (cdb[6] << 24);
-	txlen |= (cdb[7] << 16);
-	txlen |= (cdb[8] << 8);
-	txlen |=  cdb[9];
+	lba = get_unaligned_be32(&cdb[2]);
+	txlen = get_unaligned_be32(&cdb[6]);
 
-	trace_seq_printf(p, "lba=%llu txlen=%llu protect=%u",
-			 (unsigned long long)lba, (unsigned long long)txlen,
+	trace_seq_printf(p, "lba=%u txlen=%u protect=%u", lba, txlen,
 			 cdb[1] >> 5);
 	trace_seq_putc(p, 0);
 
@@ -84,23 +75,13 @@
 scsi_trace_rw16(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
-	sector_t lba = 0, txlen = 0;
+	u64 lba;
+	u32 txlen;
 
-	lba |= ((u64)cdb[2] << 56);
-	lba |= ((u64)cdb[3] << 48);
-	lba |= ((u64)cdb[4] << 40);
-	lba |= ((u64)cdb[5] << 32);
-	lba |= (cdb[6] << 24);
-	lba |= (cdb[7] << 16);
-	lba |= (cdb[8] << 8);
-	lba |=  cdb[9];
-	txlen |= (cdb[10] << 24);
-	txlen |= (cdb[11] << 16);
-	txlen |= (cdb[12] << 8);
-	txlen |=  cdb[13];
+	lba = get_unaligned_be64(&cdb[2]);
+	txlen = get_unaligned_be32(&cdb[10]);
 
-	trace_seq_printf(p, "lba=%llu txlen=%llu protect=%u",
-			 (unsigned long long)lba, (unsigned long long)txlen,
+	trace_seq_printf(p, "lba=%llu txlen=%u protect=%u", lba, txlen,
 			 cdb[1] >> 5);
 
 	if (cdb[0] == WRITE_SAME_16)
@@ -115,8 +96,8 @@
 scsi_trace_rw32(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p), *cmd;
-	sector_t lba = 0, txlen = 0;
-	u32 ei_lbrt = 0;
+	u64 lba;
+	u32 ei_lbrt, txlen;
 
 	switch (SERVICE_ACTION32(cdb)) {
 	case READ_32:
@@ -136,26 +117,12 @@
 		goto out;
 	}
 
-	lba |= ((u64)cdb[12] << 56);
-	lba |= ((u64)cdb[13] << 48);
-	lba |= ((u64)cdb[14] << 40);
-	lba |= ((u64)cdb[15] << 32);
-	lba |= (cdb[16] << 24);
-	lba |= (cdb[17] << 16);
-	lba |= (cdb[18] << 8);
-	lba |=  cdb[19];
-	ei_lbrt |= (cdb[20] << 24);
-	ei_lbrt |= (cdb[21] << 16);
-	ei_lbrt |= (cdb[22] << 8);
-	ei_lbrt |=  cdb[23];
-	txlen |= (cdb[28] << 24);
-	txlen |= (cdb[29] << 16);
-	txlen |= (cdb[30] << 8);
-	txlen |=  cdb[31];
-
-	trace_seq_printf(p, "%s_32 lba=%llu txlen=%llu protect=%u ei_lbrt=%u",
-			 cmd, (unsigned long long)lba,
-			 (unsigned long long)txlen, cdb[10] >> 5, ei_lbrt);
+	lba = get_unaligned_be64(&cdb[12]);
+	ei_lbrt = get_unaligned_be32(&cdb[20]);
+	txlen = get_unaligned_be32(&cdb[28]);
+
+	trace_seq_printf(p, "%s_32 lba=%llu txlen=%u protect=%u ei_lbrt=%u",
+			 cmd, lba, txlen, cdb[10] >> 5, ei_lbrt);
 
 	if (SERVICE_ACTION32(cdb) == WRITE_SAME_32)
 		trace_seq_printf(p, " unmap=%u", cdb[10] >> 3 & 1);
@@ -170,7 +137,7 @@
 scsi_trace_unmap(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
-	unsigned int regions = cdb[7] << 8 | cdb[8];
+	unsigned int regions = get_unaligned_be16(&cdb[7]);
 
 	trace_seq_printf(p, "regions=%u", (regions - 8) / 16);
 	trace_seq_putc(p, 0);
@@ -182,8 +149,8 @@
 scsi_trace_service_action_in(struct trace_seq *p, unsigned char *cdb, int len)
 {
 	const char *ret = trace_seq_buffer_ptr(p), *cmd;
-	sector_t lba = 0;
-	u32 alloc_len = 0;
+	u64 lba;
+	u32 alloc_len;
 
 	switch (SERVICE_ACTION16(cdb)) {
 	case SAI_READ_CAPACITY_16:
@@ -197,21 +164,10 @@
 		goto out;
 	}
 
-	lba |= ((u64)cdb[2] << 56);
-	lba |= ((u64)cdb[3] << 48);
-	lba |= ((u64)cdb[4] << 40);
-	lba |= ((u64)cdb[5] << 32);
-	lba |= (cdb[6] << 24);
-	lba |= (cdb[7] << 16);
-	lba |= (cdb[8] << 8);
-	lba |=  cdb[9];
-	alloc_len |= (cdb[10] << 24);
-	alloc_len |= (cdb[11] << 16);
-	alloc_len |= (cdb[12] << 8);
-	alloc_len |=  cdb[13];
+	lba = get_unaligned_be64(&cdb[2]);
+	alloc_len = get_unaligned_be32(&cdb[10]);
 
-	trace_seq_printf(p, "%s lba=%llu alloc_len=%u", cmd,
-			 (unsigned long long)lba, alloc_len);
+	trace_seq_printf(p, "%s lba=%llu alloc_len=%u", cmd, lba, alloc_len);
 
 out:
 	trace_seq_putc(p, 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_transport_iscsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_transport_iscsi.c
@@ -24,6 +24,8 @@
 
 #define ISCSI_TRANSPORT_VERSION "2.0-870"
 
+#define ISCSI_SEND_MAX_ALLOWED  10
+
 #define CREATE_TRACE_POINTS
 #include <trace/events/iscsi.h>
 
@@ -122,7 +124,11 @@
 		      char *buf)
 {
 	struct iscsi_internal *priv = dev_to_iscsi_internal(dev);
-	return sprintf(buf, "%llu\n", (unsigned long long)iscsi_handle(priv->iscsi_transport));
+
+	if (!capable(CAP_SYS_ADMIN))
+		return -EACCES;
+	return sysfs_emit(buf, "%llu\n",
+		  (unsigned long long)iscsi_handle(priv->iscsi_transport));
 }
 static DEVICE_ATTR(handle, S_IRUGO, show_transport_handle, NULL);
 
@@ -132,7 +138,7 @@
 		      struct device_attribute *attr,char *buf)		\
 {									\
 	struct iscsi_internal *priv = dev_to_iscsi_internal(dev);	\
-	return sprintf(buf, format"\n", priv->iscsi_transport->name);	\
+	return sysfs_emit(buf, format"\n", priv->iscsi_transport->name);\
 }									\
 static DEVICE_ATTR(name, S_IRUGO, show_transport_##name, NULL);
 
@@ -173,7 +179,7 @@
 show_ep_handle(struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev);
-	return sprintf(buf, "%llu\n", (unsigned long long) ep->id);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long) ep->id);
 }
 static ISCSI_ATTR(ep, handle, S_IRUGO, show_ep_handle, NULL);
 
@@ -2010,7 +2016,7 @@
 	if (session->target_id == ISCSI_MAX_TARGET) {
 		spin_unlock_irqrestore(&session->lock, flags);
 		mutex_unlock(&ihost->mutex);
-		return;
+		goto unbind_session_exit;
 	}
 
 	target_id = session->target_id;
@@ -2022,6 +2028,8 @@
 		ida_simple_remove(&iscsi_sess_ida, target_id);
 
 	scsi_remove_target(&session->dev);
+
+unbind_session_exit:
 	iscsi_session_event(session, ISCSI_KEVENT_UNBIND_SESSION);
 	ISCSI_DBG_TRANS_SESSION(session, "Completed target removal\n");
 }
@@ -2761,6 +2769,9 @@
 	struct iscsi_cls_session *session;
 	int err = 0, value = 0;
 
+	if (ev->u.set_param.len > PAGE_SIZE)
+		return -EINVAL;
+
 	session = iscsi_session_lookup(ev->u.set_param.sid);
 	conn = iscsi_conn_lookup(ev->u.set_param.sid, ev->u.set_param.cid);
 	if (!conn || !session)
@@ -2908,6 +2919,9 @@
 	if (!transport->set_host_param)
 		return -ENOSYS;
 
+	if (ev->u.set_host_param.len > PAGE_SIZE)
+		return -EINVAL;
+
 	shost = scsi_host_lookup(ev->u.set_host_param.host_no);
 	if (!shost) {
 		printk(KERN_ERR "set_host_param could not find host no %u\n",
@@ -2945,6 +2959,24 @@
 	return err;
 }
 
+static int iscsi_session_has_conns(int sid)
+{
+	struct iscsi_cls_conn *conn;
+	unsigned long flags;
+	int found = 0;
+
+	spin_lock_irqsave(&connlock, flags);
+	list_for_each_entry(conn, &connlist, conn_list) {
+		if (iscsi_conn_get_sid(conn) == sid) {
+			found = 1;
+			break;
+		}
+	}
+	spin_unlock_irqrestore(&connlock, flags);
+
+	return found;
+}
+
 static int
 iscsi_set_iface_params(struct iscsi_transport *transport,
 		       struct iscsi_uevent *ev, uint32_t len)
@@ -3152,7 +3184,7 @@
 		pr_err("%s could not find host no %u\n",
 		       __func__, ev->u.set_flashnode.host_no);
 		err = -ENODEV;
-		goto put_host;
+		goto exit_set_fnode;
 	}
 
 	idx = ev->u.set_flashnode.flashnode_idx;
@@ -3477,6 +3509,7 @@
 {
 	int err = 0;
 	u32 portid;
+	u32 pdu_len;
 	struct iscsi_uevent *ev = nlmsg_data(nlh);
 	struct iscsi_transport *transport = NULL;
 	struct iscsi_internal *priv;
@@ -3484,6 +3517,9 @@
 	struct iscsi_cls_conn *conn;
 	struct iscsi_endpoint *ep = NULL;
 
+	if (!netlink_capable(skb, CAP_SYS_ADMIN))
+		return -EPERM;
+
 	if (nlh->nlmsg_type == ISCSI_UEVENT_PATH_UPDATE)
 		*group = ISCSI_NL_GRP_UIP;
 	else
@@ -3522,10 +3558,12 @@
 		break;
 	case ISCSI_UEVENT_DESTROY_SESSION:
 		session = iscsi_session_lookup(ev->u.d_session.sid);
-		if (session)
-			transport->destroy_session(session);
-		else
+		if (!session)
 			err = -EINVAL;
+		else if (iscsi_session_has_conns(ev->u.d_session.sid))
+			err = -EBUSY;
+		else
+			transport->destroy_session(session);
 		break;
 	case ISCSI_UEVENT_UNBIND_SESSION:
 		session = iscsi_session_lookup(ev->u.d_session.sid);
@@ -3589,6 +3627,14 @@
 			err = -EINVAL;
 		break;
 	case ISCSI_UEVENT_SEND_PDU:
+		pdu_len = nlh->nlmsg_len - sizeof(*nlh) - sizeof(*ev);
+
+		if ((ev->u.send_pdu.hdr_size > pdu_len) ||
+		    (ev->u.send_pdu.data_size > (pdu_len - ev->u.send_pdu.hdr_size))) {
+			err = -EINVAL;
+			break;
+		}
+
 		conn = iscsi_conn_lookup(ev->u.send_pdu.sid, ev->u.send_pdu.cid);
 		if (conn)
 			ev->r.retcode =	transport->send_pdu(conn,
@@ -3682,6 +3728,7 @@
 		struct nlmsghdr	*nlh;
 		struct iscsi_uevent *ev;
 		uint32_t group;
+		int retries = ISCSI_SEND_MAX_ALLOWED;
 
 		nlh = nlmsg_hdr(skb);
 		if (nlh->nlmsg_len < sizeof(*nlh) + sizeof(*ev) ||
@@ -3712,6 +3759,10 @@
 				break;
 			err = iscsi_if_send_reply(portid, nlh->nlmsg_type,
 						  ev, sizeof(*ev));
+			if (err == -EAGAIN && --retries < 0) {
+				printk(KERN_WARNING "Send reply failed, error %d\n", err);
+				break;
+			}
 		} while (err < 0 && err != -ECONNREFUSED && err != -ESRCH);
 		skb_pull(skb, rlen);
 	}
@@ -3769,7 +3820,6 @@
 iscsi_conn_attr(tcp_recv_wsf, ISCSI_PARAM_TCP_RECV_WSF);
 iscsi_conn_attr(local_ipaddr, ISCSI_PARAM_LOCAL_IPADDR);
 
-
 #define iscsi_conn_ep_attr_show(param)					\
 static ssize_t show_conn_ep_param_##param(struct device *dev,		\
 					  struct device_attribute *attr,\
@@ -3990,7 +4040,7 @@
 			char *buf)
 {
 	struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent);
-	return sprintf(buf, "%s\n", iscsi_session_state_name(session->state));
+	return sysfs_emit(buf, "%s\n", iscsi_session_state_name(session->state));
 }
 static ISCSI_CLASS_ATTR(priv_sess, state, S_IRUGO, show_priv_session_state,
 			NULL);
@@ -3999,7 +4049,7 @@
 			char *buf)
 {
 	struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent);
-	return sprintf(buf, "%d\n", session->creator);
+	return sysfs_emit(buf, "%d\n", session->creator);
 }
 static ISCSI_CLASS_ATTR(priv_sess, creator, S_IRUGO, show_priv_session_creator,
 			NULL);
@@ -4008,7 +4058,7 @@
 			    char *buf)
 {
 	struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent);
-	return sprintf(buf, "%d\n", session->target_id);
+	return sysfs_emit(buf, "%d\n", session->target_id);
 }
 static ISCSI_CLASS_ATTR(priv_sess, target_id, S_IRUGO,
 			show_priv_session_target_id, NULL);
@@ -4021,8 +4071,8 @@
 	struct iscsi_cls_session *session = 				\
 			iscsi_dev_to_session(dev->parent);		\
 	if (session->field == -1)					\
-		return sprintf(buf, "off\n");				\
-	return sprintf(buf, format"\n", session->field);		\
+		return sysfs_emit(buf, "off\n");			\
+	return sysfs_emit(buf, format"\n", session->field);		\
 }
 
 #define iscsi_priv_session_attr_store(field)				\
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_transport_sas.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_transport_sas.c
@@ -1391,9 +1391,6 @@
 	struct sas_rphy *rphy = dev_to_rphy(dev);
 	struct sas_expander_device *edev = rphy_to_expander_device(rphy);
 
-	if (rphy->q)
-		blk_cleanup_queue(rphy->q);
-
 	put_device(dev->parent);
 	kfree(edev);
 }
@@ -1403,9 +1400,6 @@
 	struct sas_rphy *rphy = dev_to_rphy(dev);
 	struct sas_end_device *edev = rphy_to_end_device(rphy);
 
-	if (rphy->q)
-		blk_cleanup_queue(rphy->q);
-
 	put_device(dev->parent);
 	kfree(edev);
 }
@@ -1634,8 +1628,7 @@
 	}
 
 	sas_rphy_unlink(rphy);
-	if (rphy->q)
-		bsg_unregister_queue(rphy->q);
+	bsg_remove_queue(rphy->q);
 	transport_remove_device(dev);
 	device_del(dev);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_transport_spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_transport_spi.c
@@ -117,12 +117,16 @@
 		sshdr = &sshdr_tmp;
 
 	for(i = 0; i < DV_RETRIES; i++) {
+		/*
+		 * The purpose of the RQF_PM flag below is to bypass the
+		 * SDEV_QUIESCE state.
+		 */
 		result = scsi_execute(sdev, cmd, dir, buffer, bufflen, sense,
 				      sshdr, DV_TIMEOUT, /* retries */ 1,
 				      REQ_FAILFAST_DEV |
 				      REQ_FAILFAST_TRANSPORT |
 				      REQ_FAILFAST_DRIVER,
-				      0, NULL);
+				      RQF_PM, NULL);
 		if (driver_byte(result) != DRIVER_SENSE ||
 		    sshdr->sense_key != UNIT_ATTENTION)
 			break;
@@ -339,7 +343,7 @@
 	struct spi_transport_attrs *tp					\
 		= (struct spi_transport_attrs *)&starget->starget_data;	\
 									\
-	if (i->f->set_##field)						\
+	if (!i->f->set_##field)						\
 		return -EINVAL;						\
 	val = simple_strtoul(buf, NULL, 0);				\
 	if (val > tp->max_##field)					\
@@ -1005,23 +1009,26 @@
 	 */
 	lock_system_sleep();
 
+	if (scsi_autopm_get_device(sdev))
+		goto unlock_system_sleep;
+
 	if (unlikely(spi_dv_in_progress(starget)))
-		goto unlock;
+		goto put_autopm;
 
 	if (unlikely(scsi_device_get(sdev)))
-		goto unlock;
+		goto put_autopm;
 
 	spi_dv_in_progress(starget) = 1;
 
 	buffer = kzalloc(len, GFP_KERNEL);
 
 	if (unlikely(!buffer))
-		goto out_put;
+		goto put_sdev;
 
 	/* We need to verify that the actual device will quiesce; the
 	 * later target quiesce is just a nice to have */
 	if (unlikely(scsi_device_quiesce(sdev)))
-		goto out_free;
+		goto free_buffer;
 
 	scsi_target_quiesce(starget);
 
@@ -1041,12 +1048,16 @@
 
 	spi_initial_dv(starget) = 1;
 
- out_free:
+free_buffer:
 	kfree(buffer);
- out_put:
+
+put_sdev:
 	spi_dv_in_progress(starget) = 0;
 	scsi_device_put(sdev);
-unlock:
+put_autopm:
+	scsi_autopm_put_device(sdev);
+
+unlock_system_sleep:
 	unlock_system_sleep();
 }
 EXPORT_SYMBOL(spi_dv_device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/scsi_transport_srp.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/scsi_transport_srp.c
@@ -541,7 +541,14 @@
 	res = mutex_lock_interruptible(&rport->mutex);
 	if (res)
 		goto out;
-	scsi_target_block(&shost->shost_gendev);
+	if (rport->state != SRP_RPORT_FAIL_FAST)
+		/*
+		 * sdev state must be SDEV_TRANSPORT_OFFLINE, transition
+		 * to SDEV_BLOCK is illegal. Calling scsi_target_unblock()
+		 * later is ok though, scsi_internal_device_unblock_nowait()
+		 * treats SDEV_TRANSPORT_OFFLINE like SDEV_BLOCK.
+		 */
+		scsi_target_block(&shost->shost_gendev);
 	res = rport->state != SRP_RPORT_LOST ? i->f->reconnect(rport) : -ENODEV;
 	pr_debug("%s (state %d): transport.reconnect() returned %d\n",
 		 dev_name(&shost->shost_gendev), rport->state, res);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/sd.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/sd.c
@@ -934,8 +934,10 @@
 		}
 	}
 
-	if (sdp->no_write_same)
+	if (sdp->no_write_same) {
+		rq->rq_flags |= RQF_QUIET;
 		return BLK_STS_TARGET;
+	}
 
 	if (sdkp->ws16 || lba > 0xffffffff || nr_blocks > 0xffff)
 		return sd_setup_write_same16_cmnd(cmd, false);
@@ -1694,20 +1696,30 @@
 static int sd_compat_ioctl(struct block_device *bdev, fmode_t mode,
 			   unsigned int cmd, unsigned long arg)
 {
-	struct scsi_device *sdev = scsi_disk(bdev->bd_disk)->device;
+	struct gendisk *disk = bdev->bd_disk;
+	struct scsi_disk *sdkp = scsi_disk(disk);
+	struct scsi_device *sdev = sdkp->device;
+	void __user *p = compat_ptr(arg);
 	int error;
 
+	error = scsi_verify_blk_ioctl(bdev, cmd);
+	if (error < 0)
+		return error;
+
 	error = scsi_ioctl_block_when_processing_errors(sdev, cmd,
 			(mode & FMODE_NDELAY) != 0);
 	if (error)
 		return error;
+
+	if (is_sed_ioctl(cmd))
+		return sed_ioctl(sdkp->opal_dev, cmd, p);
 	       
 	/* 
 	 * Let the static ioctl translation table take care of it.
 	 */
 	if (!sdev->host->hostt->compat_ioctl)
 		return -ENOIOCTLCMD; 
-	return sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg);
+	return sdev->host->hostt->compat_ioctl(sdev, cmd, p);
 }
 #endif
 
@@ -2192,8 +2204,10 @@
 	u8 type;
 	int ret = 0;
 
-	if (scsi_device_protection(sdp) == 0 || (buffer[12] & 1) == 0)
+	if (scsi_device_protection(sdp) == 0 || (buffer[12] & 1) == 0) {
+		sdkp->protection_type = 0;
 		return ret;
+	}
 
 	type = ((buffer[12] >> 1) & 7) + 1; /* P_TYPE 0 = Type 1 */
 
@@ -3159,9 +3173,11 @@
 	if (sd_validate_opt_xfer_size(sdkp, dev_max)) {
 		q->limits.io_opt = logical_to_bytes(sdp, sdkp->opt_xfer_blocks);
 		rw_max = logical_to_sectors(sdp, sdkp->opt_xfer_blocks);
-	} else
+	} else {
+		q->limits.io_opt = 0;
 		rw_max = min_not_zero(logical_to_sectors(sdp, dev_max),
 				      (sector_t)BLK_DEF_MAX_SECTORS);
+	}
 
 	/* Do not exceed controller limit */
 	rw_max = min(rw_max, queue_max_hw_sectors(q));
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/sg.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/sg.c
@@ -689,8 +689,10 @@
 	hp->flags = input_size;	/* structure abuse ... */
 	hp->pack_id = old_hdr.pack_id;
 	hp->usr_ptr = NULL;
-	if (__copy_from_user(cmnd, buf, cmd_size))
+	if (__copy_from_user(cmnd, buf, cmd_size)) {
+		sg_remove_request(sfp, srp);
 		return -EFAULT;
+	}
 	/*
 	 * SG_DXFER_TO_FROM_DEV is functionally equivalent to SG_DXFER_FROM_DEV,
 	 * but is is possible that the app intended SG_DXFER_TO_DEV, because there
@@ -803,8 +805,10 @@
 			"sg_common_write:  scsi opcode=0x%02x, cmd_size=%d\n",
 			(int) cmnd[0], (int) hp->cmd_len));
 
-	if (hp->dxfer_len >= SZ_256M)
+	if (hp->dxfer_len >= SZ_256M) {
+		sg_remove_request(sfp, srp);
 		return -EINVAL;
+	}
 
 	k = sg_start_req(srp, cmnd);
 	if (k) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/smartpqi/smartpqi.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/smartpqi/smartpqi.h
@@ -276,7 +276,9 @@
 	u8	reserved4 : 2;
 	u8	additional_cdb_bytes_usage : 3;
 	u8	reserved5 : 3;
-	u8	cdb[32];
+	u8	cdb[16];
+	u8	reserved6[12];
+	__le32	timeout;
 	struct pqi_sg_descriptor
 		sg_descriptors[PQI_MAX_EMBEDDED_SG_DESCRIPTORS];
 };
@@ -357,7 +359,7 @@
 	struct pqi_iu_header header;
 	u8	event_type;
 	u8	reserved2 : 7;
-	u8	request_acknowlege : 1;
+	u8	request_acknowledge : 1;
 	__le16	event_id;
 	__le32	additional_event_id;
 	union {
@@ -385,7 +387,8 @@
 	struct pqi_iu_header header;
 	__le16	request_id;
 	__le16	nexus_id;
-	u8	reserved[4];
+	u8	reserved[2];
+	__le16  timeout;
 	u8	lun_number[8];
 	__le16	protocol_specific;
 	__le16	outbound_queue_id_to_manage;
@@ -445,7 +448,7 @@
 
 struct pqi_ofa_memory {
 	__le64	signature;	/* "OFA_QRM" */
-	__le16	version;	/* version of this struct(1 = 1st version) */
+	__le16	version;	/* version of this struct (1 = 1st version) */
 	u8	reserved[62];
 	__le32	bytes_allocated;	/* total allocated memory in bytes */
 	__le16	num_memory_descriptors;
@@ -761,6 +764,8 @@
 #define PQI_FIRMWARE_FEATURE_OFA			0
 #define PQI_FIRMWARE_FEATURE_SMP			1
 #define PQI_FIRMWARE_FEATURE_SOFT_RESET_HANDSHAKE	11
+#define PQI_FIRMWARE_FEATURE_RAID_IU_TIMEOUT		13
+#define PQI_FIRMWARE_FEATURE_TMF_IU_TIMEOUT		14
 
 struct pqi_config_table_debug {
 	struct pqi_config_table_section_header header;
@@ -826,10 +831,17 @@
 
 struct report_lun_header {
 	__be32	list_length;
-	u8	extended_response;
+	u8	flags;
 	u8	reserved[3];
 };
 
+/* for flags field of struct report_lun_header */
+#define CISS_REPORT_LOG_FLAG_UNIQUE_LUN_ID	(1 << 0)
+#define CISS_REPORT_LOG_FLAG_QUEUE_DEPTH	(1 << 5)
+#define CISS_REPORT_LOG_FLAG_DRIVE_TYPE_MIX	(1 << 6)
+
+#define CISS_REPORT_PHYS_FLAG_OTHER		(1 << 1)
+
 struct report_log_lun_extended_entry {
 	u8	lunid[8];
 	u8	volume_id[16];
@@ -851,7 +863,7 @@
 };
 
 /* for device_flags field of struct report_phys_lun_extended_entry */
-#define REPORT_PHYS_LUN_DEV_FLAG_AIO_ENABLED	0x8
+#define CISS_REPORT_PHYS_DEV_FLAG_AIO_ENABLED	0x8
 
 struct report_phys_lun_extended {
 	struct report_lun_header header;
@@ -864,7 +876,7 @@
 	u8	reserved[2];
 };
 
-/* constants for flags field of RAID map */
+/* for flags field of RAID map */
 #define RAID_MAP_ENCRYPTION_ENABLED	0x1
 
 struct raid_map {
@@ -907,7 +919,6 @@
 	u8	scsi3addr[8];
 	__be64	wwid;
 	u8	volume_id[16];
-	u8	unique_id[16];
 	u8	is_physical_device : 1;
 	u8	is_external_raid_device : 1;
 	u8	is_expander_smp_device : 1;
@@ -954,13 +965,9 @@
 };
 
 /* VPD inquiry pages */
-#define SCSI_VPD_SUPPORTED_PAGES	0x0	/* standard page */
-#define SCSI_VPD_DEVICE_ID		0x83	/* standard page */
 #define CISS_VPD_LV_DEVICE_GEOMETRY	0xc1	/* vendor-specific page */
 #define CISS_VPD_LV_BYPASS_STATUS	0xc2	/* vendor-specific page */
 #define CISS_VPD_LV_STATUS		0xc3	/* vendor-specific page */
-#define SCSI_VPD_HEADER_SZ		4
-#define SCSI_VPD_DEVICE_ID_IDX		8	/* Index of page id in page */
 
 #define VPD_PAGE	(1 << 8)
 
@@ -1130,13 +1137,16 @@
 	struct mutex	ofa_mutex; /* serialize ofa */
 	bool		controller_online;
 	bool		block_requests;
-	bool		in_shutdown;
+	bool		block_device_reset;
 	bool		in_ofa;
+	bool		in_shutdown;
 	u8		inbound_spanning_supported : 1;
 	u8		outbound_spanning_supported : 1;
 	u8		pqi_mode_enabled : 1;
 	u8		pqi_reset_quiesce_supported : 1;
 	u8		soft_reset_handshake_supported : 1;
+	u8		raid_iu_timeout_supported: 1;
+	u8		tmf_iu_timeout_supported: 1;
 
 	struct list_head scsi_device_list;
 	spinlock_t	scsi_device_list_lock;
@@ -1170,9 +1180,10 @@
 	spinlock_t	raid_bypass_retry_list_lock;
 	struct work_struct raid_bypass_retry_work;
 
-	struct          pqi_ofa_memory *pqi_ofa_mem_virt_addr;
-	dma_addr_t      pqi_ofa_mem_dma_handle;
-	void            **pqi_ofa_chunk_virt_addr;
+	struct pqi_ofa_memory *pqi_ofa_mem_virt_addr;
+	dma_addr_t	pqi_ofa_mem_dma_handle;
+	void		**pqi_ofa_chunk_virt_addr;
+	atomic_t	sync_cmds_outstanding;
 };
 
 enum pqi_ctrl_mode {
@@ -1191,10 +1202,6 @@
 #define CISS_REPORT_PHYS	0xc3	/* Report Physical LUNs */
 #define CISS_GET_RAID_MAP	0xc8
 
-/* constants for CISS_REPORT_LOG/CISS_REPORT_PHYS commands */
-#define CISS_REPORT_LOG_EXTENDED		0x1
-#define CISS_REPORT_PHYS_EXTENDED		0x2
-
 /* BMIC commands */
 #define BMIC_IDENTIFY_CONTROLLER		0x11
 #define BMIC_IDENTIFY_PHYSICAL_DEVICE		0x15
@@ -1208,7 +1215,7 @@
 #define BMIC_SET_DIAG_OPTIONS			0xf4
 #define BMIC_SENSE_DIAG_OPTIONS			0xf5
 
-#define CSMI_CC_SAS_SMP_PASSTHRU		0X17
+#define CSMI_CC_SAS_SMP_PASSTHRU		0x17
 
 #define SA_FLUSH_CACHE				0x1
 
@@ -1244,10 +1251,12 @@
 	u8	ctrl_serial_number[16];
 };
 
-#define SA_EXPANDER_SMP_DEVICE		0x05
-#define SA_CONTROLLER_DEVICE		0x07
-/*SCSI Invalid Device Type for SAS devices*/
-#define PQI_SAS_SCSI_INVALID_DEVTYPE	0xff
+/* constants for device_type field */
+#define SA_DEVICE_TYPE_SATA		0x1
+#define SA_DEVICE_TYPE_SAS		0x2
+#define SA_DEVICE_TYPE_EXPANDER_SMP	0x5
+#define SA_DEVICE_TYPE_CONTROLLER	0x7
+#define SA_DEVICE_TYPE_NVME		0x9
 
 struct bmic_identify_physical_device {
 	u8	scsi_bus;		/* SCSI Bus number on controller */
@@ -1273,7 +1282,7 @@
 	__le32	rpm;			/* drive rotational speed in RPM */
 	u8	device_type;		/* type of drive */
 	u8	sata_version;		/* only valid when device_type = */
-					/* BMIC_DEVICE_TYPE_SATA */
+					/* SA_DEVICE_TYPE_SATA */
 	__le64	big_total_block_count;
 	__le64	ris_starting_lba;
 	__le32	ris_size;
@@ -1396,18 +1405,6 @@
 
 #pragma pack()
 
-static inline struct pqi_ctrl_info *shost_to_hba(struct Scsi_Host *shost)
-{
-	void *hostdata = shost_priv(shost);
-
-	return *((struct pqi_ctrl_info **)hostdata);
-}
-
-static inline bool pqi_ctrl_offline(struct pqi_ctrl_info *ctrl_info)
-{
-	return !ctrl_info->controller_online;
-}
-
 static inline void pqi_ctrl_busy(struct pqi_ctrl_info *ctrl_info)
 {
 	atomic_inc(&ctrl_info->num_busy_threads);
@@ -1418,9 +1415,11 @@
 	atomic_dec(&ctrl_info->num_busy_threads);
 }
 
-static inline bool pqi_ctrl_blocked(struct pqi_ctrl_info *ctrl_info)
+static inline struct pqi_ctrl_info *shost_to_hba(struct Scsi_Host *shost)
 {
-	return ctrl_info->block_requests;
+	void *hostdata = shost_priv(shost);
+
+	return *((struct pqi_ctrl_info **)hostdata);
 }
 
 void pqi_sas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/smartpqi/smartpqi_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/smartpqi/smartpqi_init.c
@@ -33,11 +33,11 @@
 #define BUILD_TIMESTAMP
 #endif
 
-#define DRIVER_VERSION		"1.2.8-026"
+#define DRIVER_VERSION		"1.2.10-025"
 #define DRIVER_MAJOR		1
 #define DRIVER_MINOR		2
-#define DRIVER_RELEASE		8
-#define DRIVER_REVISION		26
+#define DRIVER_RELEASE		10
+#define DRIVER_REVISION		25
 
 #define DRIVER_NAME		"Microsemi PQI Driver (v" \
 				DRIVER_VERSION BUILD_TIMESTAMP ")"
@@ -211,6 +211,11 @@
 	return scsi3addr[2] != 0;
 }
 
+static inline bool pqi_ctrl_offline(struct pqi_ctrl_info *ctrl_info)
+{
+	return !ctrl_info->controller_online;
+}
+
 static inline void pqi_check_ctrl_health(struct pqi_ctrl_info *ctrl_info)
 {
 	if (ctrl_info->controller_online)
@@ -235,6 +240,21 @@
 	sis_write_driver_scratch(ctrl_info, mode);
 }
 
+static inline void pqi_ctrl_block_device_reset(struct pqi_ctrl_info *ctrl_info)
+{
+	ctrl_info->block_device_reset = true;
+}
+
+static inline bool pqi_device_reset_blocked(struct pqi_ctrl_info *ctrl_info)
+{
+	return ctrl_info->block_device_reset;
+}
+
+static inline bool pqi_ctrl_blocked(struct pqi_ctrl_info *ctrl_info)
+{
+	return ctrl_info->block_requests;
+}
+
 static inline void pqi_ctrl_block_requests(struct pqi_ctrl_info *ctrl_info)
 {
 	ctrl_info->block_requests = true;
@@ -331,6 +351,16 @@
 	return device->in_remove && !ctrl_info->in_shutdown;
 }
 
+static inline void pqi_ctrl_shutdown_start(struct pqi_ctrl_info *ctrl_info)
+{
+	ctrl_info->in_shutdown = true;
+}
+
+static inline bool pqi_ctrl_in_shutdown(struct pqi_ctrl_info *ctrl_info)
+{
+	return ctrl_info->in_shutdown;
+}
+
 static inline void pqi_schedule_rescan_worker_with_delay(
 	struct pqi_ctrl_info *ctrl_info, unsigned long delay)
 {
@@ -360,6 +390,11 @@
 	cancel_delayed_work_sync(&ctrl_info->rescan_work);
 }
 
+static inline void pqi_cancel_event_worker(struct pqi_ctrl_info *ctrl_info)
+{
+	cancel_work_sync(&ctrl_info->event_work);
+}
+
 static inline u32 pqi_read_heartbeat_counter(struct pqi_ctrl_info *ctrl_info)
 {
 	if (!ctrl_info->heartbeat_counter)
@@ -377,7 +412,7 @@
 }
 
 static inline void pqi_clear_soft_reset_status(struct pqi_ctrl_info *ctrl_info,
-						u8 clear)
+	u8 clear)
 {
 	u8 status;
 
@@ -462,9 +497,9 @@
 		request->data_direction = SOP_READ_FLAG;
 		cdb[0] = cmd;
 		if (cmd == CISS_REPORT_PHYS)
-			cdb[1] = CISS_REPORT_PHYS_EXTENDED;
+			cdb[1] = CISS_REPORT_PHYS_FLAG_OTHER;
 		else
-			cdb[1] = CISS_REPORT_LOG_EXTENDED;
+			cdb[1] = CISS_REPORT_LOG_FLAG_UNIQUE_LUN_ID;
 		put_unaligned_be32(cdb_length, &cdb[6]);
 		break;
 	case CISS_GET_RAID_MAP:
@@ -507,8 +542,7 @@
 		put_unaligned_be16(cdb_length, &cdb[7]);
 		break;
 	default:
-		dev_err(&ctrl_info->pci_dev->dev, "unknown command 0x%c\n",
-			cmd);
+		dev_err(&ctrl_info->pci_dev->dev, "unknown command 0x%c\n", cmd);
 		break;
 	}
 
@@ -567,13 +601,12 @@
 }
 
 static int pqi_send_scsi_raid_request(struct pqi_ctrl_info *ctrl_info, u8 cmd,
-		u8 *scsi3addr, void *buffer, size_t buffer_length, u16 vpd_page,
-		struct pqi_raid_error_info *error_info,
-		unsigned long timeout_msecs)
+	u8 *scsi3addr, void *buffer, size_t buffer_length, u16 vpd_page,
+	struct pqi_raid_error_info *error_info,	unsigned long timeout_msecs)
 {
 	int rc;
-	enum dma_data_direction dir;
 	struct pqi_raid_path_request request;
+	enum dma_data_direction dir;
 
 	rc = pqi_build_raid_path_request(ctrl_info, &request,
 		cmd, scsi3addr, buffer,
@@ -581,44 +614,44 @@
 	if (rc)
 		return rc;
 
-	rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header,
-		 0, error_info, timeout_msecs);
+	rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0,
+		error_info, timeout_msecs);
 
 	pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir);
+
 	return rc;
 }
 
-/* Helper functions for pqi_send_scsi_raid_request */
+/* helper functions for pqi_send_scsi_raid_request */
 
 static inline int pqi_send_ctrl_raid_request(struct pqi_ctrl_info *ctrl_info,
-		u8 cmd, void *buffer, size_t buffer_length)
+	u8 cmd, void *buffer, size_t buffer_length)
 {
 	return pqi_send_scsi_raid_request(ctrl_info, cmd, RAID_CTLR_LUNID,
-			buffer, buffer_length, 0, NULL, NO_TIMEOUT);
+		buffer, buffer_length, 0, NULL, NO_TIMEOUT);
 }
 
 static inline int pqi_send_ctrl_raid_with_error(struct pqi_ctrl_info *ctrl_info,
-		u8 cmd, void *buffer, size_t buffer_length,
-		struct pqi_raid_error_info *error_info)
+	u8 cmd, void *buffer, size_t buffer_length,
+	struct pqi_raid_error_info *error_info)
 {
 	return pqi_send_scsi_raid_request(ctrl_info, cmd, RAID_CTLR_LUNID,
-			buffer, buffer_length, 0, error_info, NO_TIMEOUT);
+		buffer, buffer_length, 0, error_info, NO_TIMEOUT);
 }
 
-
 static inline int pqi_identify_controller(struct pqi_ctrl_info *ctrl_info,
-		struct bmic_identify_controller *buffer)
+	struct bmic_identify_controller *buffer)
 {
 	return pqi_send_ctrl_raid_request(ctrl_info, BMIC_IDENTIFY_CONTROLLER,
-			buffer, sizeof(*buffer));
+		buffer, sizeof(*buffer));
 }
 
 static inline int pqi_sense_subsystem_info(struct  pqi_ctrl_info *ctrl_info,
-		struct bmic_sense_subsystem_info *sense_info)
+	struct bmic_sense_subsystem_info *sense_info)
 {
 	return pqi_send_ctrl_raid_request(ctrl_info,
-			BMIC_SENSE_SUBSYSTEM_INFORMATION,
-			sense_info, sizeof(*sense_info));
+		BMIC_SENSE_SUBSYSTEM_INFORMATION, sense_info,
+		sizeof(*sense_info));
 }
 
 static inline int pqi_scsi_inquiry(struct pqi_ctrl_info *ctrl_info,
@@ -628,83 +661,9 @@
 		buffer, buffer_length, vpd_page, NULL, NO_TIMEOUT);
 }
 
-static bool pqi_vpd_page_supported(struct pqi_ctrl_info *ctrl_info,
-	u8 *scsi3addr, u16 vpd_page)
-{
-	int rc;
-	int i;
-	int pages;
-	unsigned char *buf, bufsize;
-
-	buf = kzalloc(256, GFP_KERNEL);
-	if (!buf)
-		return false;
-
-	/* Get the size of the page list first */
-	rc = pqi_scsi_inquiry(ctrl_info, scsi3addr,
-				VPD_PAGE | SCSI_VPD_SUPPORTED_PAGES,
-				buf, SCSI_VPD_HEADER_SZ);
-	if (rc != 0)
-		goto exit_unsupported;
-
-	pages = buf[3];
-	if ((pages + SCSI_VPD_HEADER_SZ) <= 255)
-		bufsize = pages + SCSI_VPD_HEADER_SZ;
-	else
-		bufsize = 255;
-
-	/* Get the whole VPD page list */
-	rc = pqi_scsi_inquiry(ctrl_info, scsi3addr,
-				VPD_PAGE | SCSI_VPD_SUPPORTED_PAGES,
-				buf, bufsize);
-	if (rc != 0)
-		goto exit_unsupported;
-
-	pages = buf[3];
-	for (i = 1; i <= pages; i++)
-		if (buf[3 + i] == vpd_page)
-			goto exit_supported;
-
-exit_unsupported:
-	kfree(buf);
-	return false;
-
-exit_supported:
-	kfree(buf);
-	return true;
-}
-
-static int pqi_get_device_id(struct pqi_ctrl_info *ctrl_info,
-	u8 *scsi3addr, u8 *device_id, int buflen)
-{
-	int rc;
-	unsigned char *buf;
-
-	if (!pqi_vpd_page_supported(ctrl_info, scsi3addr, SCSI_VPD_DEVICE_ID))
-		return 1; /* function not supported */
-
-	buf = kzalloc(64, GFP_KERNEL);
-	if (!buf)
-		return -ENOMEM;
-
-	rc = pqi_scsi_inquiry(ctrl_info, scsi3addr,
-				VPD_PAGE | SCSI_VPD_DEVICE_ID,
-				buf, 64);
-	if (rc == 0) {
-		if (buflen > 16)
-			buflen = 16;
-		memcpy(device_id, &buf[SCSI_VPD_DEVICE_ID_IDX], buflen);
-	}
-
-	kfree(buf);
-
-	return rc;
-}
-
 static int pqi_identify_physical_device(struct pqi_ctrl_info *ctrl_info,
 	struct pqi_scsi_dev *device,
-	struct bmic_identify_physical_device *buffer,
-	size_t buffer_length)
+	struct bmic_identify_physical_device *buffer, size_t buffer_length)
 {
 	int rc;
 	enum dma_data_direction dir;
@@ -725,6 +684,7 @@
 		0, NULL, NO_TIMEOUT);
 
 	pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir);
+
 	return rc;
 }
 
@@ -763,7 +723,7 @@
 		buffer, buffer_length, error_info);
 }
 
-#define PQI_FETCH_PTRAID_DATA (1UL<<31)
+#define PQI_FETCH_PTRAID_DATA		(1 << 31)
 
 static int pqi_set_diag_rescan(struct pqi_ctrl_info *ctrl_info)
 {
@@ -775,14 +735,15 @@
 		return -ENOMEM;
 
 	rc = pqi_send_ctrl_raid_request(ctrl_info, BMIC_SENSE_DIAG_OPTIONS,
-					diag, sizeof(*diag));
+		diag, sizeof(*diag));
 	if (rc)
 		goto out;
 
 	diag->options |= cpu_to_le32(PQI_FETCH_PTRAID_DATA);
 
-	rc = pqi_send_ctrl_raid_request(ctrl_info, BMIC_SET_DIAG_OPTIONS,
-					diag, sizeof(*diag));
+	rc = pqi_send_ctrl_raid_request(ctrl_info, BMIC_SET_DIAG_OPTIONS, diag,
+		sizeof(*diag));
+
 out:
 	kfree(diag);
 
@@ -793,7 +754,7 @@
 	void *buffer, size_t buffer_length)
 {
 	return pqi_send_ctrl_raid_request(ctrl_info, BMIC_WRITE_HOST_WELLNESS,
-					buffer, buffer_length);
+		buffer, buffer_length);
 }
 
 #pragma pack(1)
@@ -946,7 +907,7 @@
 	void *buffer, size_t buffer_length)
 {
 	return pqi_send_ctrl_raid_request(ctrl_info, cmd, buffer,
-					buffer_length);
+		buffer_length);
 }
 
 static int pqi_report_phys_logical_luns(struct pqi_ctrl_info *ctrl_info, u8 cmd,
@@ -1280,9 +1241,9 @@
 	if (rc)
 		goto out;
 
-#define RAID_BYPASS_STATUS	4
-#define RAID_BYPASS_CONFIGURED	0x1
-#define RAID_BYPASS_ENABLED	0x2
+#define RAID_BYPASS_STATUS		4
+#define RAID_BYPASS_CONFIGURED		0x1
+#define RAID_BYPASS_ENABLED		0x2
 
 	bypass_status = buffer[RAID_BYPASS_STATUS];
 	device->raid_bypass_configured =
@@ -1385,14 +1346,6 @@
 		}
 	}
 
-	if (pqi_get_device_id(ctrl_info, device->scsi3addr,
-		device->unique_id, sizeof(device->unique_id)) < 0)
-		dev_warn(&ctrl_info->pci_dev->dev,
-			"Can't get device id for scsi %d:%d:%d:%d\n",
-			ctrl_info->scsi_host->host_no,
-			device->bus, device->target,
-			device->lun);
-
 out:
 	kfree(buffer);
 
@@ -1413,6 +1366,7 @@
 		device->queue_depth = PQI_PHYSICAL_DISK_DEFAULT_MAX_QUEUE_DEPTH;
 		return;
 	}
+
 	device->box_index = id_phys->box_index;
 	device->phys_box_on_bus = id_phys->phys_box_on_bus;
 	device->phy_connected_dev_type = id_phys->phy_connected_dev_type[0];
@@ -1828,7 +1782,7 @@
 		device = new_device_list[i];
 
 		find_result = pqi_scsi_find_entry(ctrl_info, device,
-						&matching_device);
+			&matching_device);
 
 		switch (find_result) {
 		case DEVICE_SAME:
@@ -2057,9 +2011,8 @@
 			rc = -ENOMEM;
 			goto out;
 		}
-		if (pqi_hide_vsep) {
-			int i;
 
+		if (pqi_hide_vsep) {
 			for (i = num_physicals - 1; i >= 0; i--) {
 				phys_lun_ext_entry =
 						&physdev_list->lun_entries[i];
@@ -2132,7 +2085,7 @@
 		device->is_physical_device = is_physical_device;
 		if (is_physical_device) {
 			if (phys_lun_ext_entry->device_type ==
-				SA_EXPANDER_SMP_DEVICE)
+				SA_DEVICE_TYPE_EXPANDER_SMP)
 				device->is_expander_smp_device = true;
 		} else {
 			device->is_external_raid_device =
@@ -2169,16 +2122,13 @@
 		if (device->is_physical_device) {
 			device->wwid = phys_lun_ext_entry->wwid;
 			if ((phys_lun_ext_entry->device_flags &
-				REPORT_PHYS_LUN_DEV_FLAG_AIO_ENABLED) &&
+				CISS_REPORT_PHYS_DEV_FLAG_AIO_ENABLED) &&
 				phys_lun_ext_entry->aio_handle) {
 				device->aio_enabled = true;
-					device->aio_handle =
-						phys_lun_ext_entry->aio_handle;
+				device->aio_handle =
+					phys_lun_ext_entry->aio_handle;
 			}
-
-				pqi_get_physical_disk_info(ctrl_info,
-					device, id_phys);
-
+			pqi_get_physical_disk_info(ctrl_info, device, id_phys);
 		} else {
 			memcpy(device->volume_id, log_lun_ext_entry->volume_id,
 				sizeof(device->volume_id));
@@ -2511,7 +2461,6 @@
 		offload_to_mirror =
 			(offload_to_mirror >= layout_map_count - 1) ?
 				0 : offload_to_mirror + 1;
-		WARN_ON(offload_to_mirror >= layout_map_count);
 		device->offload_to_mirror = offload_to_mirror;
 		/*
 		 * Avoid direct use of device->offload_to_mirror within this
@@ -2964,10 +2913,14 @@
 	return rc;
 }
 
-static unsigned int pqi_process_io_intr(struct pqi_ctrl_info *ctrl_info,
-	struct pqi_queue_group *queue_group)
+static inline void pqi_invalid_response(struct pqi_ctrl_info *ctrl_info)
+{
+	pqi_take_ctrl_offline(ctrl_info);
+}
+
+static int pqi_process_io_intr(struct pqi_ctrl_info *ctrl_info, struct pqi_queue_group *queue_group)
 {
-	unsigned int num_responses;
+	int num_responses;
 	pqi_index_t oq_pi;
 	pqi_index_t oq_ci;
 	struct pqi_io_request *io_request;
@@ -2979,6 +2932,13 @@
 
 	while (1) {
 		oq_pi = readl(queue_group->oq_pi);
+		if (oq_pi >= ctrl_info->num_elements_per_oq) {
+			pqi_invalid_response(ctrl_info);
+			dev_err(&ctrl_info->pci_dev->dev,
+				"I/O interrupt: producer index (%u) out of range (0-%u): consumer index: %u\n",
+				oq_pi, ctrl_info->num_elements_per_oq - 1, oq_ci);
+			return -1;
+		}
 		if (oq_pi == oq_ci)
 			break;
 
@@ -2987,10 +2947,22 @@
 			(oq_ci * PQI_OPERATIONAL_OQ_ELEMENT_LENGTH);
 
 		request_id = get_unaligned_le16(&response->request_id);
-		WARN_ON(request_id >= ctrl_info->max_io_slots);
+		if (request_id >= ctrl_info->max_io_slots) {
+			pqi_invalid_response(ctrl_info);
+			dev_err(&ctrl_info->pci_dev->dev,
+				"request ID in response (%u) out of range (0-%u): producer index: %u  consumer index: %u\n",
+				request_id, ctrl_info->max_io_slots - 1, oq_pi, oq_ci);
+			return -1;
+		}
 
 		io_request = &ctrl_info->io_request_pool[request_id];
-		WARN_ON(atomic_read(&io_request->refcount) == 0);
+		if (atomic_read(&io_request->refcount) == 0) {
+			pqi_invalid_response(ctrl_info);
+			dev_err(&ctrl_info->pci_dev->dev,
+				"request ID in response (%u) does not match an outstanding I/O request: producer index: %u  consumer index: %u\n",
+				request_id, oq_pi, oq_ci);
+			return -1;
+		}
 
 		switch (response->header.iu_type) {
 		case PQI_RESPONSE_IU_RAID_PATH_IO_SUCCESS:
@@ -3020,24 +2992,22 @@
 			io_request->error_info = ctrl_info->error_buffer +
 				(get_unaligned_le16(&response->error_index) *
 				PQI_ERROR_BUFFER_ELEMENT_LENGTH);
-			pqi_process_io_error(response->header.iu_type,
-				io_request);
+			pqi_process_io_error(response->header.iu_type, io_request);
 			break;
 		default:
+			pqi_invalid_response(ctrl_info);
 			dev_err(&ctrl_info->pci_dev->dev,
-				"unexpected IU type: 0x%x\n",
-				response->header.iu_type);
-			break;
+				"unexpected IU type: 0x%x: producer index: %u  consumer index: %u\n",
+				response->header.iu_type, oq_pi, oq_ci);
+			return -1;
 		}
 
-		io_request->io_complete_callback(io_request,
-			io_request->context);
+		io_request->io_complete_callback(io_request, io_request->context);
 
 		/*
 		 * Note that the I/O request structure CANNOT BE TOUCHED after
 		 * returning from the I/O completion callback!
 		 */
-
 		oq_ci = (oq_ci + 1) % ctrl_info->num_elements_per_oq;
 	}
 
@@ -3158,7 +3128,7 @@
 }
 
 static void pqi_process_soft_reset(struct pqi_ctrl_info *ctrl_info,
-		enum pqi_soft_reset_status reset_status)
+	enum pqi_soft_reset_status reset_status)
 {
 	int rc;
 
@@ -3202,8 +3172,8 @@
 
 	if (event_id == PQI_EVENT_OFA_QUIESCE) {
 		dev_info(&ctrl_info->pci_dev->dev,
-			 "Received Online Firmware Activation quiesce event for controller %u\n",
-			 ctrl_info->ctrl_id);
+			"Received Online Firmware Activation quiesce event for controller %u\n",
+			ctrl_info->ctrl_id);
 		pqi_ofa_ctrl_quiesce(ctrl_info);
 		pqi_acknowledge_event(ctrl_info, event);
 		if (ctrl_info->soft_reset_handshake_supported) {
@@ -3223,8 +3193,8 @@
 		pqi_ofa_free_host_buffer(ctrl_info);
 		pqi_acknowledge_event(ctrl_info, event);
 		dev_info(&ctrl_info->pci_dev->dev,
-			 "Online Firmware Activation(%u) cancel reason : %u\n",
-			 ctrl_info->ctrl_id, event->ofa_cancel_reason);
+			"Online Firmware Activation(%u) cancel reason : %u\n",
+			ctrl_info->ctrl_id, event->ofa_cancel_reason);
 	}
 
 	mutex_unlock(&ctrl_info->ofa_mutex);
@@ -3350,9 +3320,9 @@
 	}
 }
 
-static unsigned int pqi_process_event_intr(struct pqi_ctrl_info *ctrl_info)
+static int pqi_process_event_intr(struct pqi_ctrl_info *ctrl_info)
 {
-	unsigned int num_events;
+	int num_events;
 	pqi_index_t oq_pi;
 	pqi_index_t oq_ci;
 	struct pqi_event_queue *event_queue;
@@ -3366,26 +3336,31 @@
 
 	while (1) {
 		oq_pi = readl(event_queue->oq_pi);
+		if (oq_pi >= PQI_NUM_EVENT_QUEUE_ELEMENTS) {
+			pqi_invalid_response(ctrl_info);
+			dev_err(&ctrl_info->pci_dev->dev,
+				"event interrupt: producer index (%u) out of range (0-%u): consumer index: %u\n",
+				oq_pi, PQI_NUM_EVENT_QUEUE_ELEMENTS - 1, oq_ci);
+			return -1;
+		}
+
 		if (oq_pi == oq_ci)
 			break;
 
 		num_events++;
-		response = event_queue->oq_element_array +
-			(oq_ci * PQI_EVENT_OQ_ELEMENT_LENGTH);
+		response = event_queue->oq_element_array + (oq_ci * PQI_EVENT_OQ_ELEMENT_LENGTH);
 
 		event_index =
 			pqi_event_type_to_event_index(response->event_type);
 
-		if (event_index >= 0) {
-			if (response->request_acknowlege) {
-				event = &ctrl_info->events[event_index];
-				event->pending = true;
-				event->event_type = response->event_type;
-				event->event_id = response->event_id;
-				event->additional_event_id =
-					response->additional_event_id;
+		if (event_index >= 0 && response->request_acknowledge) {
+			event = &ctrl_info->events[event_index];
+			event->pending = true;
+			event->event_type = response->event_type;
+			event->event_id = response->event_id;
+			event->additional_event_id = response->additional_event_id;
+			if (event->event_type == PQI_EVENT_TYPE_OFA)
 				pqi_ofa_capture_event_payload(event, response);
-			}
 		}
 
 		oq_ci = (oq_ci + 1) % PQI_NUM_EVENT_QUEUE_ELEMENTS;
@@ -3403,7 +3378,7 @@
 #define PQI_LEGACY_INTX_MASK	0x1
 
 static inline void pqi_configure_legacy_intx(struct pqi_ctrl_info *ctrl_info,
-						bool enable_intx)
+	bool enable_intx)
 {
 	u32 intx_mask;
 	struct pqi_device_registers __iomem *pqi_registers;
@@ -3500,7 +3475,8 @@
 {
 	struct pqi_ctrl_info *ctrl_info;
 	struct pqi_queue_group *queue_group;
-	unsigned int num_responses_handled;
+	int num_io_responses_handled;
+	int num_events_handled;
 
 	queue_group = data;
 	ctrl_info = queue_group->ctrl_info;
@@ -3508,17 +3484,25 @@
 	if (!pqi_is_valid_irq(ctrl_info))
 		return IRQ_NONE;
 
-	num_responses_handled = pqi_process_io_intr(ctrl_info, queue_group);
+	num_io_responses_handled = pqi_process_io_intr(ctrl_info, queue_group);
+	if (num_io_responses_handled < 0)
+		goto out;
 
-	if (irq == ctrl_info->event_irq)
-		num_responses_handled += pqi_process_event_intr(ctrl_info);
+	if (irq == ctrl_info->event_irq) {
+		num_events_handled = pqi_process_event_intr(ctrl_info);
+		if (num_events_handled < 0)
+			goto out;
+	} else {
+		num_events_handled = 0;
+	}
 
-	if (num_responses_handled)
+	if (num_io_responses_handled + num_events_handled > 0)
 		atomic_inc(&ctrl_info->num_interrupts);
 
 	pqi_start_io(ctrl_info, queue_group, RAID_PATH, NULL);
 	pqi_start_io(ctrl_info, queue_group, AIO_PATH, NULL);
 
+out:
 	return IRQ_HANDLED;
 }
 
@@ -3841,7 +3825,7 @@
 		&pqi_registers->admin_oq_pi_addr);
 
 	reg = PQI_ADMIN_IQ_NUM_ELEMENTS |
-		(PQI_ADMIN_OQ_NUM_ELEMENTS) << 8 |
+		(PQI_ADMIN_OQ_NUM_ELEMENTS << 8) |
 		(admin_queues->int_msg_num << 16);
 	writel(reg, &pqi_registers->admin_iq_num_elements);
 	writel(PQI_CREATE_ADMIN_QUEUE_PAIR,
@@ -4048,8 +4032,8 @@
 	complete(waiting);
 }
 
-static int pqi_process_raid_io_error_synchronous(struct pqi_raid_error_info
-						*error_info)
+static int pqi_process_raid_io_error_synchronous(
+	struct pqi_raid_error_info *error_info)
 {
 	int rc = -EIO;
 
@@ -4122,6 +4106,8 @@
 		goto out;
 	}
 
+	atomic_inc(&ctrl_info->sync_cmds_outstanding);
+
 	io_request = pqi_alloc_io_request(ctrl_info);
 
 	put_unaligned_le16(io_request->index,
@@ -4168,6 +4154,7 @@
 
 	pqi_free_io_request(io_request);
 
+	atomic_dec(&ctrl_info->sync_cmds_outstanding);
 out:
 	up(&ctrl_info->sync_request_sem);
 
@@ -4665,11 +4652,11 @@
 
 static inline int pqi_alloc_error_buffer(struct pqi_ctrl_info *ctrl_info)
 {
-	ctrl_info->error_buffer = dma_alloc_coherent(&ctrl_info->pci_dev->dev,
-						     ctrl_info->error_buffer_length,
-						     &ctrl_info->error_buffer_dma_handle,
-						     GFP_KERNEL);
 
+	ctrl_info->error_buffer = dma_alloc_coherent(&ctrl_info->pci_dev->dev,
+				     ctrl_info->error_buffer_length,
+				     &ctrl_info->error_buffer_dma_handle,
+				     GFP_KERNEL);
 	if (!ctrl_info->error_buffer)
 		return -ENOMEM;
 
@@ -5402,7 +5389,7 @@
 
 	pqi_ctrl_busy(ctrl_info);
 	if (pqi_ctrl_blocked(ctrl_info) || pqi_device_in_reset(device) ||
-	    pqi_ctrl_in_ofa(ctrl_info)) {
+	    pqi_ctrl_in_ofa(ctrl_info) || pqi_ctrl_in_shutdown(ctrl_info)) {
 		rc = SCSI_MLQUEUE_HOST_BUSY;
 		goto out;
 	}
@@ -5419,7 +5406,7 @@
 	if (pqi_is_logical_device(device)) {
 		raid_bypassed = false;
 		if (device->raid_bypass_enabled &&
-				!blk_rq_is_passthrough(scmd->request)) {
+			!blk_rq_is_passthrough(scmd->request)) {
 			rc = pqi_raid_bypass_submit_scsi_cmd(ctrl_info, device,
 				scmd, queue_group);
 			if (rc == 0 || rc == SCSI_MLQUEUE_HOST_BUSY)
@@ -5650,6 +5637,18 @@
 	return 0;
 }
 
+static int pqi_ctrl_wait_for_pending_sync_cmds(struct pqi_ctrl_info *ctrl_info)
+{
+	while (atomic_read(&ctrl_info->sync_cmds_outstanding)) {
+		pqi_check_ctrl_health(ctrl_info);
+		if (pqi_ctrl_offline(ctrl_info))
+			return -ENXIO;
+		usleep_range(1000, 2000);
+	}
+
+	return 0;
+}
+
 static void pqi_lun_reset_complete(struct pqi_io_request *io_request,
 	void *context)
 {
@@ -5658,7 +5657,8 @@
 	complete(waiting);
 }
 
-#define PQI_LUN_RESET_TIMEOUT_SECS	10
+#define PQI_LUN_RESET_TIMEOUT_SECS		30
+#define PQI_LUN_RESET_POLL_COMPLETION_SECS	10
 
 static int pqi_wait_for_lun_reset_completion(struct pqi_ctrl_info *ctrl_info,
 	struct pqi_scsi_dev *device, struct completion *wait)
@@ -5667,7 +5667,7 @@
 
 	while (1) {
 		if (wait_for_completion_io_timeout(wait,
-			PQI_LUN_RESET_TIMEOUT_SECS * PQI_HZ)) {
+			PQI_LUN_RESET_POLL_COMPLETION_SECS * PQI_HZ)) {
 			rc = 0;
 			break;
 		}
@@ -5704,6 +5704,9 @@
 	memcpy(request->lun_number, device->scsi3addr,
 		sizeof(request->lun_number));
 	request->task_management_function = SOP_TASK_MANAGEMENT_LUN_RESET;
+	if (ctrl_info->tmf_iu_timeout_supported)
+		put_unaligned_le16(PQI_LUN_RESET_TIMEOUT_SECS,
+					&request->timeout);
 
 	pqi_start_io(ctrl_info,
 		&ctrl_info->queue_groups[PQI_DEFAULT_QUEUE_GROUP], RAID_PATH,
@@ -5733,7 +5736,7 @@
 
 	for (retries = 0;;) {
 		rc = pqi_lun_reset(ctrl_info, device);
-		if (rc != -EAGAIN || ++retries > PQI_LUN_RESET_RETRIES)
+		if (rc == 0 || ++retries > PQI_LUN_RESET_RETRIES)
 			break;
 		msleep(PQI_LUN_RESET_RETRY_INTERVAL_MSECS);
 	}
@@ -5787,17 +5790,17 @@
 		shost->host_no, device->bus, device->target, device->lun);
 
 	pqi_check_ctrl_health(ctrl_info);
-	if (pqi_ctrl_offline(ctrl_info)) {
-		dev_err(&ctrl_info->pci_dev->dev,
-			"controller %u offlined - cannot send device reset\n",
-			ctrl_info->ctrl_id);
+	if (pqi_ctrl_offline(ctrl_info) ||
+		pqi_device_reset_blocked(ctrl_info)) {
 		rc = FAILED;
 		goto out;
 	}
 
 	pqi_wait_until_ofa_finished(ctrl_info);
 
+	atomic_inc(&ctrl_info->sync_cmds_outstanding);
 	rc = pqi_device_reset(ctrl_info, device);
+	atomic_dec(&ctrl_info->sync_cmds_outstanding);
 
 out:
 	dev_err(&ctrl_info->pci_dev->dev,
@@ -6066,6 +6069,9 @@
 
 	put_unaligned_le16(iu_length, &request.header.iu_length);
 
+	if (ctrl_info->raid_iu_timeout_supported)
+		put_unaligned_le32(iocommand.Request.Timeout, &request.timeout);
+
 	rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header,
 		PQI_SYNC_FLAGS_INTERRUPTABLE, &pqi_error_info, NO_TIMEOUT);
 
@@ -6119,7 +6125,7 @@
 
 	ctrl_info = shost_to_hba(sdev->host);
 
-	if (pqi_ctrl_in_ofa(ctrl_info))
+	if (pqi_ctrl_in_ofa(ctrl_info) || pqi_ctrl_in_shutdown(ctrl_info))
 		return -EBUSY;
 
 	switch (cmd) {
@@ -6160,14 +6166,8 @@
 static ssize_t pqi_driver_version_show(struct device *dev,
 	struct device_attribute *attr, char *buffer)
 {
-	struct Scsi_Host *shost;
-	struct pqi_ctrl_info *ctrl_info;
-
-	shost = class_to_shost(dev);
-	ctrl_info = shost_to_hba(shost);
-
-	return snprintf(buffer, PAGE_SIZE,
-		"%s\n", DRIVER_VERSION BUILD_TIMESTAMP);
+	return snprintf(buffer, PAGE_SIZE, "%s\n",
+			DRIVER_VERSION BUILD_TIMESTAMP);
 }
 
 static ssize_t pqi_serial_number_show(struct device *dev,
@@ -6283,7 +6283,7 @@
 	struct scsi_device *sdev;
 	struct pqi_scsi_dev *device;
 	unsigned long flags;
-	unsigned char uid[16];
+	u8 unique_id[16];
 
 	sdev = to_scsi_device(dev);
 	ctrl_info = shost_to_hba(sdev->host);
@@ -6296,16 +6296,22 @@
 			flags);
 		return -ENODEV;
 	}
-	memcpy(uid, device->unique_id, sizeof(uid));
+
+	if (device->is_physical_device) {
+		memset(unique_id, 0, 8);
+		memcpy(unique_id + 8, &device->wwid, sizeof(device->wwid));
+	} else {
+		memcpy(unique_id, device->volume_id, sizeof(device->volume_id));
+	}
 
 	spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
 
 	return snprintf(buffer, PAGE_SIZE,
 		"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X\n",
-		uid[0], uid[1], uid[2], uid[3],
-		uid[4], uid[5], uid[6], uid[7],
-		uid[8], uid[9], uid[10], uid[11],
-		uid[12], uid[13], uid[14], uid[15]);
+		unique_id[0], unique_id[1], unique_id[2], unique_id[3],
+		unique_id[4], unique_id[5], unique_id[6], unique_id[7],
+		unique_id[8], unique_id[9], unique_id[10], unique_id[11],
+		unique_id[12], unique_id[13], unique_id[14], unique_id[15]);
 }
 
 static ssize_t pqi_lunid_show(struct device *dev,
@@ -6328,6 +6334,7 @@
 			flags);
 		return -ENODEV;
 	}
+
 	memcpy(lunid, device->scsi3addr, sizeof(lunid));
 
 	spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
@@ -6335,7 +6342,8 @@
 	return snprintf(buffer, PAGE_SIZE, "0x%8phN\n", lunid);
 }
 
-#define MAX_PATHS 8
+#define MAX_PATHS	8
+
 static ssize_t pqi_path_info_show(struct device *dev,
 	struct device_attribute *attr, char *buf)
 {
@@ -6347,9 +6355,9 @@
 	int output_len = 0;
 	u8 box;
 	u8 bay;
-	u8 path_map_index = 0;
+	u8 path_map_index;
 	char *active;
-	unsigned char phys_connector[2];
+	u8 phys_connector[2];
 
 	sdev = to_scsi_device(dev);
 	ctrl_info = shost_to_hba(sdev->host);
@@ -6365,7 +6373,7 @@
 
 	bay = device->bay;
 	for (i = 0; i < MAX_PATHS; i++) {
-		path_map_index = 1<<i;
+		path_map_index = 1 << i;
 		if (i == device->active_path_index)
 			active = "Active";
 		else if (device->path_map & path_map_index)
@@ -6416,10 +6424,10 @@
 	}
 
 	spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
+
 	return output_len;
 }
 
-
 static ssize_t pqi_sas_address_show(struct device *dev,
 	struct device_attribute *attr, char *buffer)
 {
@@ -6440,6 +6448,7 @@
 			flags);
 		return -ENODEV;
 	}
+
 	sas_address = device->sas_address;
 
 	spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
@@ -6844,6 +6853,27 @@
 		firmware_feature->feature_name);
 }
 
+static void pqi_ctrl_update_feature_flags(struct pqi_ctrl_info *ctrl_info,
+	struct pqi_firmware_feature *firmware_feature)
+{
+	switch (firmware_feature->feature_bit) {
+	case PQI_FIRMWARE_FEATURE_SOFT_RESET_HANDSHAKE:
+		ctrl_info->soft_reset_handshake_supported =
+			firmware_feature->enabled;
+		break;
+	case PQI_FIRMWARE_FEATURE_RAID_IU_TIMEOUT:
+		ctrl_info->raid_iu_timeout_supported =
+			firmware_feature->enabled;
+		break;
+	case PQI_FIRMWARE_FEATURE_TMF_IU_TIMEOUT:
+		ctrl_info->tmf_iu_timeout_supported =
+			firmware_feature->enabled;
+		break;
+	}
+
+	pqi_firmware_feature_status(ctrl_info, firmware_feature);
+}
+
 static inline void pqi_firmware_feature_update(struct pqi_ctrl_info *ctrl_info,
 	struct pqi_firmware_feature *firmware_feature)
 {
@@ -6867,7 +6897,17 @@
 	{
 		.feature_name = "New Soft Reset Handshake",
 		.feature_bit = PQI_FIRMWARE_FEATURE_SOFT_RESET_HANDSHAKE,
-		.feature_status = pqi_firmware_feature_status,
+		.feature_status = pqi_ctrl_update_feature_flags,
+	},
+	{
+		.feature_name = "RAID IU Timeout",
+		.feature_bit = PQI_FIRMWARE_FEATURE_RAID_IU_TIMEOUT,
+		.feature_status = pqi_ctrl_update_feature_flags,
+	},
+	{
+		.feature_name = "TMF IU Timeout",
+		.feature_bit = PQI_FIRMWARE_FEATURE_TMF_IU_TIMEOUT,
+		.feature_status = pqi_ctrl_update_feature_flags,
 	},
 };
 
@@ -6921,7 +6961,6 @@
 		return;
 	}
 
-	ctrl_info->soft_reset_handshake_supported = false;
 	for (i = 0; i < ARRAY_SIZE(pqi_firmware_features); i++) {
 		if (!pqi_firmware_features[i].supported)
 			continue;
@@ -6929,10 +6968,6 @@
 			firmware_features_iomem_addr,
 			pqi_firmware_features[i].feature_bit)) {
 			pqi_firmware_features[i].enabled = true;
-			if (pqi_firmware_features[i].feature_bit ==
-			    PQI_FIRMWARE_FEATURE_SOFT_RESET_HANDSHAKE)
-				ctrl_info->soft_reset_handshake_supported =
-									true;
 		}
 		pqi_firmware_feature_update(ctrl_info,
 			&pqi_firmware_features[i]);
@@ -7074,13 +7109,20 @@
 	return pqi_revert_to_sis_mode(ctrl_info);
 }
 
+#define PQI_POST_RESET_DELAY_B4_MSGU_READY	5000
+
 static int pqi_ctrl_init(struct pqi_ctrl_info *ctrl_info)
 {
 	int rc;
 
-	rc = pqi_force_sis_mode(ctrl_info);
-	if (rc)
-		return rc;
+	if (reset_devices) {
+		sis_soft_reset(ctrl_info);
+		msleep(PQI_POST_RESET_DELAY_B4_MSGU_READY);
+	} else {
+		rc = pqi_force_sis_mode(ctrl_info);
+		if (rc)
+			return rc;
+	}
 
 	/*
 	 * Wait until the controller is ready to start accepting SIS
@@ -7386,7 +7428,7 @@
 	rc = pqi_get_ctrl_product_details(ctrl_info);
 	if (rc) {
 		dev_err(&ctrl_info->pci_dev->dev,
-			"error obtaining product detail\n");
+			"error obtaining product details\n");
 		return rc;
 	}
 
@@ -7514,6 +7556,7 @@
 
 	INIT_WORK(&ctrl_info->event_work, pqi_event_worker);
 	atomic_set(&ctrl_info->num_interrupts, 0);
+	atomic_set(&ctrl_info->sync_cmds_outstanding, 0);
 
 	INIT_DELAYED_WORK(&ctrl_info->rescan_work, pqi_rescan_worker);
 	INIT_DELAYED_WORK(&ctrl_info->update_time_work, pqi_update_time_worker);
@@ -7721,6 +7764,8 @@
 		dev_err(dev, "Failed to allocate host buffer of size = %u",
 			bytes_requested);
 	}
+
+	return;
 }
 
 static void pqi_ofa_free_host_buffer(struct pqi_ctrl_info *ctrl_info)
@@ -7787,8 +7832,6 @@
 		0, NULL, NO_TIMEOUT);
 }
 
-#define PQI_POST_RESET_DELAY_B4_MSGU_READY	5000
-
 static int pqi_ofa_ctrl_restart(struct pqi_ctrl_info *ctrl_info)
 {
 	msleep(PQI_POST_RESET_DELAY_B4_MSGU_READY);
@@ -7956,28 +7999,73 @@
 	pqi_remove_ctrl(ctrl_info);
 }
 
+static void pqi_crash_if_pending_command(struct pqi_ctrl_info *ctrl_info)
+{
+	unsigned int i;
+	struct pqi_io_request *io_request;
+	struct scsi_cmnd *scmd;
+
+	for (i = 0; i < ctrl_info->max_io_slots; i++) {
+		io_request = &ctrl_info->io_request_pool[i];
+		if (atomic_read(&io_request->refcount) == 0)
+			continue;
+		scmd = io_request->scmd;
+		WARN_ON(scmd != NULL); /* IO command from SML */
+		WARN_ON(scmd == NULL); /* Non-IO cmd or driver initiated*/
+	}
+}
+
 static void pqi_shutdown(struct pci_dev *pci_dev)
 {
 	int rc;
 	struct pqi_ctrl_info *ctrl_info;
 
 	ctrl_info = pci_get_drvdata(pci_dev);
-	if (!ctrl_info)
-		goto error;
+	if (!ctrl_info) {
+		dev_err(&pci_dev->dev,
+			"cache could not be flushed\n");
+		return;
+	}
+
+	pqi_disable_events(ctrl_info);
+	pqi_wait_until_ofa_finished(ctrl_info);
+	pqi_cancel_update_time_worker(ctrl_info);
+	pqi_cancel_rescan_worker(ctrl_info);
+	pqi_cancel_event_worker(ctrl_info);
+
+	pqi_ctrl_shutdown_start(ctrl_info);
+	pqi_ctrl_wait_until_quiesced(ctrl_info);
+
+	rc = pqi_ctrl_wait_for_pending_io(ctrl_info, NO_TIMEOUT);
+	if (rc) {
+		dev_err(&pci_dev->dev,
+			"wait for pending I/O failed\n");
+		return;
+	}
+
+	pqi_ctrl_block_device_reset(ctrl_info);
+	pqi_wait_until_lun_reset_finished(ctrl_info);
 
 	/*
 	 * Write all data in the controller's battery-backed cache to
 	 * storage.
 	 */
 	rc = pqi_flush_cache(ctrl_info, SHUTDOWN);
-	pqi_free_interrupts(ctrl_info);
-	pqi_reset(ctrl_info);
-	if (rc == 0)
+	if (rc)
+		dev_err(&pci_dev->dev,
+			"unable to flush controller cache\n");
+
+	pqi_ctrl_block_requests(ctrl_info);
+
+	rc = pqi_ctrl_wait_for_pending_sync_cmds(ctrl_info);
+	if (rc) {
+		dev_err(&pci_dev->dev,
+			"wait for pending sync cmds failed\n");
 		return;
+	}
 
-error:
-	dev_warn(&pci_dev->dev,
-		"unable to flush controller cache\n");
+	pqi_crash_if_pending_command(ctrl_info);
+	pqi_reset(ctrl_info);
 }
 
 static void pqi_process_lockup_action_param(void)
@@ -8686,6 +8774,8 @@
 	BUILD_BUG_ON(offsetof(struct pqi_raid_path_request,
 		cdb) != 32);
 	BUILD_BUG_ON(offsetof(struct pqi_raid_path_request,
+		timeout) != 60);
+	BUILD_BUG_ON(offsetof(struct pqi_raid_path_request,
 		sg_descriptors) != 64);
 	BUILD_BUG_ON(sizeof(struct pqi_raid_path_request) !=
 		PQI_OPERATIONAL_IQ_ELEMENT_LENGTH);
@@ -8840,6 +8930,8 @@
 	BUILD_BUG_ON(offsetof(struct pqi_task_management_request,
 		nexus_id) != 10);
 	BUILD_BUG_ON(offsetof(struct pqi_task_management_request,
+		timeout) != 14);
+	BUILD_BUG_ON(offsetof(struct pqi_task_management_request,
 		lun_number) != 16);
 	BUILD_BUG_ON(offsetof(struct pqi_task_management_request,
 		protocol_specific) != 24);
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/smartpqi/smartpqi_sas_transport.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/smartpqi/smartpqi_sas_transport.c
@@ -45,9 +45,9 @@
 	struct sas_phy *phy = pqi_sas_phy->phy;
 
 	sas_port_delete_phy(pqi_sas_phy->parent_port->port, phy);
-	sas_phy_free(phy);
 	if (pqi_sas_phy->added_to_port)
 		list_del(&pqi_sas_phy->phy_list_entry);
+	sas_phy_delete(phy);
 	kfree(pqi_sas_phy);
 }
 
@@ -312,7 +312,6 @@
 static int pqi_sas_get_enclosure_identifier(struct sas_rphy *rphy,
 	u64 *identifier)
 {
-
 	int rc;
 	unsigned long flags;
 	struct Scsi_Host *shost;
@@ -361,7 +360,7 @@
 		}
 	}
 
-	if (found_device->phy_connected_dev_type != SA_CONTROLLER_DEVICE) {
+	if (found_device->phy_connected_dev_type != SA_DEVICE_TYPE_CONTROLLER) {
 		rc = -EINVAL;
 		goto out;
 	}
@@ -382,12 +381,10 @@
 	spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);
 
 	return rc;
-
 }
 
 static int pqi_sas_get_bay_identifier(struct sas_rphy *rphy)
 {
-
 	int rc;
 	unsigned long flags;
 	struct pqi_ctrl_info *ctrl_info;
@@ -482,7 +479,6 @@
 		req_size -= SMP_CRC_FIELD_LENGTH;
 
 	put_unaligned_le32(req_size, &parameters->request_length);
-
 	put_unaligned_le32(resp_size, &parameters->response_length);
 
 	sg_copy_to_buffer(job->request_payload.sg_list,
@@ -512,12 +508,12 @@
 	struct sas_rphy *rphy)
 {
 	int rc;
-	struct pqi_ctrl_info *ctrl_info = shost_to_hba(shost);
+	struct pqi_ctrl_info *ctrl_info;
 	struct bmic_csmi_smp_passthru_buffer *smp_buf;
 	struct pqi_raid_error_info error_info;
 	unsigned int reslen = 0;
 
-	pqi_ctrl_busy(ctrl_info);
+	ctrl_info = shost_to_hba(shost);
 
 	if (job->reply_payload.payload_len == 0) {
 		rc = -ENOMEM;
@@ -539,16 +535,6 @@
 		goto out;
 	}
 
-	if (pqi_ctrl_offline(ctrl_info)) {
-		rc = -ENXIO;
-		goto out;
-	}
-
-	if (pqi_ctrl_blocked(ctrl_info)) {
-		rc = -EBUSY;
-		goto out;
-	}
-
 	smp_buf = pqi_build_csmi_smp_passthru_buffer(rphy, job);
 	if (!smp_buf) {
 		rc = -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/sr.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/sr.c
@@ -750,7 +750,7 @@
 	cd->cdi.disk = disk;
 
 	if (register_cdrom(&cd->cdi))
-		goto fail_put;
+		goto fail_minor;
 
 	/*
 	 * Initialize block layer runtime PM stuffs before the
@@ -768,6 +768,10 @@
 
 	return 0;
 
+fail_minor:
+	spin_lock(&sr_index_lock);
+	clear_bit(minor, sr_index_bits);
+	spin_unlock(&sr_index_lock);
 fail_put:
 	put_disk(disk);
 fail_free:
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/sr_vendor.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/sr_vendor.c
@@ -66,9 +66,6 @@
 
 void sr_vendor_init(Scsi_CD *cd)
 {
-#ifndef CONFIG_BLK_DEV_SR_VENDOR
-	cd->vendor = VENDOR_SCSI3;
-#else
 	const char *vendor = cd->device->vendor;
 	const char *model = cd->device->model;
 	
@@ -100,7 +97,6 @@
 		cd->vendor = VENDOR_TOSHIBA;
 
 	}
-#endif
 }
 
 
@@ -114,10 +110,8 @@
 	struct ccs_modesel_head *modesel;
 	int rc, density = 0;
 
-#ifdef CONFIG_BLK_DEV_SR_VENDOR
 	if (cd->vendor == VENDOR_TOSHIBA)
 		density = (blocklength > 2048) ? 0x81 : 0x83;
-#endif
 
 	buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
 	if (!buffer)
@@ -205,7 +199,6 @@
 		}
 		break;
 
-#ifdef CONFIG_BLK_DEV_SR_VENDOR
 	case VENDOR_NEC:{
 			unsigned long min, sec, frame;
 			cgc.cmd[0] = 0xde;
@@ -298,7 +291,6 @@
 		sector = buffer[11] + (buffer[10] << 8) +
 		    (buffer[9] << 16) + (buffer[8] << 24);
 		break;
-#endif				/* CONFIG_BLK_DEV_SR_VENDOR */
 
 	default:
 		/* should not happen */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/storvsc_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/storvsc_drv.c
@@ -1834,10 +1834,18 @@
 	 * from the host.
 	 */
 	host->sg_tablesize = (stor_device->max_transfer_bytes >> PAGE_SHIFT);
+#if defined(CONFIG_X86_32)
+	dev_warn(&device->device, "adjusting sg_tablesize 0x%x -> 0x%x",
+			host->sg_tablesize, MAX_MULTIPAGE_BUFFER_COUNT);
+	host->sg_tablesize = MAX_MULTIPAGE_BUFFER_COUNT;
+#endif
+
 	/*
+	 * For non-IDE disks, the host supports multiple channels.
 	 * Set the number of HW queues we are supporting.
 	 */
-	host->nr_hw_queues = num_present_cpus();
+	if (!dev_is_ide)
+		host->nr_hw_queues = num_present_cpus();
 
 	/*
 	 * Set the error handler work queue.
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/sun3_scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/sun3_scsi.c
@@ -501,7 +501,7 @@
 	.eh_host_reset_handler	= sun3scsi_host_reset,
 	.can_queue		= 16,
 	.this_id		= 7,
-	.sg_tablesize		= SG_NONE,
+	.sg_tablesize		= 1,
 	.cmd_per_lun		= 2,
 	.dma_boundary		= PAGE_SIZE - 1,
 	.cmd_size		= NCR5380_CMD_SIZE,
@@ -523,7 +523,7 @@
 		sun3_scsi_template.can_queue = setup_can_queue;
 	if (setup_cmd_per_lun > 0)
 		sun3_scsi_template.cmd_per_lun = setup_cmd_per_lun;
-	if (setup_sg_tablesize >= 0)
+	if (setup_sg_tablesize > 0)
 		sun3_scsi_template.sg_tablesize = setup_sg_tablesize;
 	if (setup_hostid >= 0)
 		sun3_scsi_template.this_id = setup_hostid & 7;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/cdns-pltfrm.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/cdns-pltfrm.c
@@ -99,6 +99,12 @@
 	 */
 	ufshcd_dme_set(hba, UIC_ARG_MIB(PA_LOCAL_TX_LCC_ENABLE), 0);
 
+	/*
+	 * Disabling Autohibern8 feature in cadence UFS
+	 * to mask unexpected interrupt trigger.
+	 */
+	hba->ahit = 0;
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufs-mediatek.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufs-mediatek.c
@@ -13,6 +13,7 @@
 
 #include "ufshcd.h"
 #include "ufshcd-pltfrm.h"
+#include "ufs_quirks.h"
 #include "unipro.h"
 #include "ufs-mediatek.h"
 
@@ -286,6 +287,15 @@
 	return 0;
 }
 
+static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba,
+				    struct ufs_dev_desc *card)
+{
+	if (card->wmanufacturerid == UFS_VENDOR_SAMSUNG)
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TACTIVATE), 6);
+
+	return 0;
+}
+
 /**
  * struct ufs_hba_mtk_vops - UFS MTK specific variant operations
  *
@@ -298,6 +308,7 @@
 	.setup_clocks        = ufs_mtk_setup_clocks,
 	.link_startup_notify = ufs_mtk_link_startup_notify,
 	.pwr_change_notify   = ufs_mtk_pwr_change_notify,
+	.apply_dev_quirks    = ufs_mtk_apply_dev_quirks,
 	.suspend             = ufs_mtk_suspend,
 	.resume              = ufs_mtk_resume,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufs-qcom.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufs-qcom.c
@@ -905,7 +905,8 @@
 	return err;
 }
 
-static int ufs_qcom_apply_dev_quirks(struct ufs_hba *hba)
+static int ufs_qcom_apply_dev_quirks(struct ufs_hba *hba,
+				     struct ufs_dev_desc *card)
 {
 	int err = 0;
 
@@ -1491,9 +1492,6 @@
 	 */
 	}
 	mask <<= offset;
-
-	pm_runtime_get_sync(host->hba->dev);
-	ufshcd_hold(host->hba, false);
 	ufshcd_rmwl(host->hba, TEST_BUS_SEL,
 		    (u32)host->testbus.select_major << 19,
 		    REG_UFS_CFG1);
@@ -1506,8 +1504,6 @@
 	 * committed before returning.
 	 */
 	mb();
-	ufshcd_release(host->hba);
-	pm_runtime_put_sync(host->hba->dev);
 
 	return 0;
 }
@@ -1545,11 +1541,11 @@
 
 	/* sleep a bit intermittently as we are dumping too much data */
 	ufs_qcom_print_hw_debug_reg_all(hba, NULL, ufs_qcom_dump_regs_wrapper);
-	usleep_range(1000, 1100);
+	udelay(1000);
 	ufs_qcom_testbus_read(hba);
-	usleep_range(1000, 1100);
+	udelay(1000);
 	ufs_qcom_print_unipro_testbus(hba);
-	usleep_range(1000, 1100);
+	udelay(1000);
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufs-sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufs-sysfs.c
@@ -126,13 +126,16 @@
 		return;
 
 	spin_lock_irqsave(hba->host->host_lock, flags);
-	if (hba->ahit == ahit)
-		goto out_unlock;
-	hba->ahit = ahit;
-	if (!pm_runtime_suspended(hba->dev))
-		ufshcd_writel(hba, hba->ahit, REG_AUTO_HIBERNATE_IDLE_TIMER);
-out_unlock:
+	if (hba->ahit != ahit)
+		hba->ahit = ahit;
 	spin_unlock_irqrestore(hba->host->host_lock, flags);
+	if (!pm_runtime_suspended(hba->dev)) {
+		pm_runtime_get_sync(hba->dev);
+		ufshcd_hold(hba, false);
+		ufshcd_auto_hibern8_enable(hba);
+		ufshcd_release(hba);
+		pm_runtime_put(hba->dev);
+	}
 }
 
 /* Convert Auto-Hibernate Idle Timer register value to microseconds */
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufs_bsg.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufs_bsg.c
@@ -106,8 +106,10 @@
 		desc_op = bsg_request->upiu_req.qr.opcode;
 		ret = ufs_bsg_alloc_desc_buffer(hba, job, &desc_buff,
 						&desc_len, desc_op);
-		if (ret)
+		if (ret) {
+			pm_runtime_put_sync(hba->dev);
 			goto out;
+		}
 
 		/* fall through */
 	case UPIU_TRANSACTION_NOP_OUT:
@@ -202,7 +204,7 @@
 	bsg_dev->parent = get_device(parent);
 	bsg_dev->release = ufs_bsg_node_release;
 
-	dev_set_name(bsg_dev, "ufs-bsg");
+	dev_set_name(bsg_dev, "ufs-bsg%u", shost->host_no);
 
 	ret = device_add(bsg_dev);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufs_quirks.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufs_quirks.h
@@ -12,6 +12,7 @@
 #define UFS_ANY_VENDOR 0xFFFF
 #define UFS_ANY_MODEL  "ANY_MODEL"
 
+#define UFS_VENDOR_MICRON      0x12C
 #define UFS_VENDOR_TOSHIBA     0x198
 #define UFS_VENDOR_SAMSUNG     0x1CE
 #define UFS_VENDOR_SKHYNIX     0x1AD
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufshcd-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufshcd-pci.c
@@ -96,6 +96,30 @@
 {
 	return ufshcd_system_resume(dev_get_drvdata(dev));
 }
+
+/**
+ * ufshcd_pci_poweroff - suspend-to-disk poweroff function
+ * @dev: pointer to PCI device handle
+ *
+ * Returns 0 if successful
+ * Returns non-zero otherwise
+ */
+static int ufshcd_pci_poweroff(struct device *dev)
+{
+	struct ufs_hba *hba = dev_get_drvdata(dev);
+	int spm_lvl = hba->spm_lvl;
+	int ret;
+
+	/*
+	 * For poweroff we need to set the UFS device to PowerDown mode.
+	 * Force spm_lvl to ensure that.
+	 */
+	hba->spm_lvl = 5;
+	ret = ufshcd_system_suspend(hba);
+	hba->spm_lvl = spm_lvl;
+	return ret;
+}
+
 #endif /* !CONFIG_PM_SLEEP */
 
 #ifdef CONFIG_PM
@@ -190,8 +214,14 @@
 }
 
 static const struct dev_pm_ops ufshcd_pci_pm_ops = {
-	SET_SYSTEM_SLEEP_PM_OPS(ufshcd_pci_suspend,
-				ufshcd_pci_resume)
+#ifdef CONFIG_PM_SLEEP
+	.suspend	= ufshcd_pci_suspend,
+	.resume		= ufshcd_pci_resume,
+	.freeze		= ufshcd_pci_suspend,
+	.thaw		= ufshcd_pci_resume,
+	.poweroff	= ufshcd_pci_poweroff,
+	.restore	= ufshcd_pci_resume,
+#endif
 	SET_RUNTIME_PM_OPS(ufshcd_pci_runtime_suspend,
 			   ufshcd_pci_runtime_resume,
 			   ufshcd_pci_runtime_idle)
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufshcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufshcd.c
@@ -217,6 +217,8 @@
 
 static struct ufs_dev_fix ufs_fixups[] = {
 	/* UFS cards deviations table */
+	UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL,
+		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
 	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
 		UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM),
 	UFS_FIX(UFS_VENDOR_SAMSUNG, UFS_ANY_MODEL,
@@ -332,27 +334,27 @@
 	u8 opcode = 0;
 	u32 intr, doorbell;
 	struct ufshcd_lrb *lrbp = &hba->lrb[tag];
+	struct scsi_cmnd *cmd = lrbp->cmd;
 	int transfer_len = -1;
 
 	if (!trace_ufshcd_command_enabled()) {
 		/* trace UPIU W/O tracing command */
-		if (lrbp->cmd)
+		if (cmd)
 			ufshcd_add_cmd_upiu_trace(hba, tag, str);
 		return;
 	}
 
-	if (lrbp->cmd) { /* data phase exists */
+	if (cmd) { /* data phase exists */
 		/* trace UPIU also */
 		ufshcd_add_cmd_upiu_trace(hba, tag, str);
-		opcode = (u8)(*lrbp->cmd->cmnd);
+		opcode = cmd->cmnd[0];
 		if ((opcode == READ_10) || (opcode == WRITE_10)) {
 			/*
 			 * Currently we only fully trace read(10) and write(10)
 			 * commands
 			 */
-			if (lrbp->cmd->request && lrbp->cmd->request->bio)
-				lba =
-				  lrbp->cmd->request->bio->bi_iter.bi_sector;
+			if (cmd->request && cmd->request->bio)
+				lba = cmd->request->bio->bi_iter.bi_sector;
 			transfer_len = be32_to_cpu(
 				lrbp->ucd_req_ptr->sc.exp_data_transfer_len);
 		}
@@ -1255,8 +1257,15 @@
 	}
 	spin_unlock_irqrestore(hba->host->host_lock, irq_flags);
 
+	pm_runtime_get_noresume(hba->dev);
+	if (!pm_runtime_active(hba->dev)) {
+		pm_runtime_put_noidle(hba->dev);
+		ret = -EAGAIN;
+		goto out;
+	}
 	start = ktime_get();
 	ret = ufshcd_devfreq_scale(hba, scale_up);
+	pm_runtime_put(hba->dev);
 
 	trace_ufshcd_profile_clk_scaling(dev_name(hba->dev),
 		(scale_up ? "up" : "down"),
@@ -1514,6 +1523,7 @@
 int ufshcd_hold(struct ufs_hba *hba, bool async)
 {
 	int rc = 0;
+	bool flush_result;
 	unsigned long flags;
 
 	if (!ufshcd_is_clkgating_allowed(hba))
@@ -1539,8 +1549,15 @@
 		 */
 		if (ufshcd_can_hibern8_during_gating(hba) &&
 		    ufshcd_is_link_hibern8(hba)) {
+			if (async) {
+				rc = -EAGAIN;
+				hba->clk_gating.active_reqs--;
+				break;
+			}
 			spin_unlock_irqrestore(hba->host->host_lock, flags);
-			flush_work(&hba->clk_gating.ungate_work);
+			flush_result = flush_work(&hba->clk_gating.ungate_work);
+			if (hba->clk_gating.is_suspended && !flush_result)
+				goto out;
 			spin_lock_irqsave(hba->host->host_lock, flags);
 			goto start;
 		}
@@ -1559,12 +1576,12 @@
 		 */
 		/* fallthrough */
 	case CLKS_OFF:
-		ufshcd_scsi_block_requests(hba);
 		hba->clk_gating.state = REQ_CLKS_ON;
 		trace_ufshcd_clk_gating(dev_name(hba->dev),
 					hba->clk_gating.state);
-		queue_work(hba->clk_gating.clk_gating_workq,
-			   &hba->clk_gating.ungate_work);
+		if (queue_work(hba->clk_gating.clk_gating_workq,
+			       &hba->clk_gating.ungate_work))
+			ufshcd_scsi_block_requests(hba);
 		/*
 		 * fall through to check if we should wait for this
 		 * work to be done or not.
@@ -1878,12 +1895,12 @@
 {
 	hba->lrb[task_tag].issue_time_stamp = ktime_get();
 	hba->lrb[task_tag].compl_time_stamp = ktime_set(0, 0);
+	ufshcd_add_command_trace(hba, task_tag, "send");
 	ufshcd_clk_scaling_start_busy(hba);
 	__set_bit(task_tag, &hba->outstanding_reqs);
 	ufshcd_writel(hba, 1 << task_tag, REG_UTP_TRANSFER_REQ_DOOR_BELL);
 	/* Make sure that doorbell is committed immediately */
 	wmb();
-	ufshcd_add_command_trace(hba, task_tag, "send");
 }
 
 /**
@@ -2475,6 +2492,7 @@
 
 	err = ufshcd_map_sg(hba, lrbp);
 	if (err) {
+		ufshcd_release(hba);
 		lrbp->cmd = NULL;
 		clear_bit_unlock(tag, &hba->lrb_in_use);
 		goto out;
@@ -2986,10 +3004,10 @@
 		goto out_unlock;
 	}
 
-	hba->dev_cmd.query.descriptor = NULL;
 	*buf_len = be16_to_cpu(response->upiu_res.length);
 
 out_unlock:
+	hba->dev_cmd.query.descriptor = NULL;
 	mutex_unlock(&hba->dev_cmd.lock);
 out:
 	ufshcd_release(hba);
@@ -3575,7 +3593,7 @@
 	ret = ufshcd_send_uic_cmd(hba, &uic_cmd);
 	if (ret)
 		dev_err(hba->dev,
-			"dme-reset: error code %d\n", ret);
+			"dme-enable: error code %d\n", ret);
 
 	return ret;
 }
@@ -3885,15 +3903,24 @@
 			     ktime_to_us(ktime_sub(ktime_get(), start)), ret);
 
 	if (ret) {
+		int err;
+
 		dev_err(hba->dev, "%s: hibern8 enter failed. ret = %d\n",
 			__func__, ret);
 
 		/*
-		 * If link recovery fails then return error so that caller
-		 * don't retry the hibern8 enter again.
+		 * If link recovery fails then return error code returned from
+		 * ufshcd_link_recovery().
+		 * If link recovery succeeds then return -EAGAIN to attempt
+		 * hibern8 enter retry again.
 		 */
-		if (ufshcd_link_recovery(hba))
-			ret = -ENOLINK;
+		err = ufshcd_link_recovery(hba);
+		if (err) {
+			dev_err(hba->dev, "%s: link recovery failed", __func__);
+			ret = err;
+		} else {
+			ret = -EAGAIN;
+		}
 	} else
 		ufshcd_vops_hibern8_notify(hba, UIC_CMD_DME_HIBER_ENTER,
 								POST_CHANGE);
@@ -3907,7 +3934,7 @@
 
 	for (retries = UIC_HIBERN8_ENTER_RETRIES; retries > 0; retries--) {
 		ret = __ufshcd_uic_hibern8_enter(hba);
-		if (!ret || ret == -ENOLINK)
+		if (!ret)
 			goto out;
 	}
 out:
@@ -3941,7 +3968,7 @@
 	return ret;
 }
 
-static void ufshcd_auto_hibern8_enable(struct ufs_hba *hba)
+void ufshcd_auto_hibern8_enable(struct ufs_hba *hba)
 {
 	unsigned long flags;
 
@@ -4779,7 +4806,7 @@
 		break;
 	} /* end of switch */
 
-	if (host_byte(result) != DID_OK)
+	if ((host_byte(result) != DID_OK) && !hba->silence_err_logs)
 		ufshcd_print_trs(hba, 1 << lrbp->task_tag, true);
 	return result;
 }
@@ -5014,6 +5041,7 @@
 
 	hba->auto_bkops_enabled = false;
 	trace_ufshcd_auto_bkops_state(dev_name(hba->dev), "Disabled");
+	hba->is_urgent_bkops_lvl_checked = false;
 out:
 	return err;
 }
@@ -5038,6 +5066,7 @@
 		hba->ee_ctrl_mask &= ~MASK_EE_URGENT_BKOPS;
 		ufshcd_disable_auto_bkops(hba);
 	}
+	hba->is_urgent_bkops_lvl_checked = false;
 }
 
 static inline int ufshcd_get_bkops_status(struct ufs_hba *hba, u32 *status)
@@ -5309,8 +5338,8 @@
 
 	/*
 	 * if host reset is required then skip clearing the pending
-	 * transfers forcefully because they will automatically get
-	 * cleared after link startup.
+	 * transfers forcefully because they will get cleared during
+	 * host reset and restore
 	 */
 	if (needs_reset)
 		goto skip_pending_xfer_clear;
@@ -5455,7 +5484,8 @@
 static bool ufshcd_is_auto_hibern8_error(struct ufs_hba *hba,
 					 u32 intr_mask)
 {
-	if (!ufshcd_is_auto_hibern8_supported(hba))
+	if (!ufshcd_is_auto_hibern8_supported(hba) ||
+	    !ufshcd_is_auto_hibern8_enabled(hba))
 		return false;
 
 	if (!(intr_mask & UFSHCD_UIC_HIBERN8_MASK))
@@ -5589,7 +5619,7 @@
  */
 static irqreturn_t ufshcd_intr(int irq, void *__hba)
 {
-	u32 intr_status, enabled_intr_status;
+	u32 intr_status, enabled_intr_status = 0;
 	irqreturn_t retval = IRQ_NONE;
 	struct ufs_hba *hba = __hba;
 	int retries = hba->nutrs;
@@ -5603,7 +5633,7 @@
 	 * read, make sure we handle them by checking the interrupt status
 	 * again in a loop until we process all of the reqs before returning.
 	 */
-	do {
+	while (intr_status && retries--) {
 		enabled_intr_status =
 			intr_status & ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
 		if (intr_status)
@@ -5614,7 +5644,7 @@
 		}
 
 		intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
-	} while (intr_status && --retries);
+	}
 
 	spin_unlock(hba->host->host_lock);
 	return retval;
@@ -5950,19 +5980,16 @@
 {
 	struct Scsi_Host *host;
 	struct ufs_hba *hba;
-	unsigned int tag;
 	u32 pos;
 	int err;
-	u8 resp = 0xF;
-	struct ufshcd_lrb *lrbp;
+	u8 resp = 0xF, lun;
 	unsigned long flags;
 
 	host = cmd->device->host;
 	hba = shost_priv(host);
-	tag = cmd->request->tag;
 
-	lrbp = &hba->lrb[tag];
-	err = ufshcd_issue_tm_cmd(hba, lrbp->lun, 0, UFS_LOGICAL_RESET, &resp);
+	lun = ufshcd_scsi_to_upiu_lun(cmd->device->lun);
+	err = ufshcd_issue_tm_cmd(hba, lun, 0, UFS_LOGICAL_RESET, &resp);
 	if (err || resp != UPIU_TASK_MANAGEMENT_FUNC_COMPL) {
 		if (!err)
 			err = resp;
@@ -5971,7 +5998,7 @@
 
 	/* clear the commands that were pending for corresponding LUN */
 	for_each_set_bit(pos, &hba->outstanding_reqs, hba->nutrs) {
-		if (hba->lrb[pos].lun == lrbp->lun) {
+		if (hba->lrb[pos].lun == lun) {
 			err = ufshcd_clear_cmd(hba, pos);
 			if (err)
 				break;
@@ -6117,7 +6144,7 @@
 			/* command completed already */
 			dev_err(hba->dev, "%s: cmd at tag %d successfully cleared from DB.\n",
 				__func__, tag);
-			goto out;
+			goto cleanup;
 		} else {
 			dev_err(hba->dev,
 				"%s: no response from device. tag = %d, err %d\n",
@@ -6151,6 +6178,7 @@
 		goto out;
 	}
 
+cleanup:
 	scsi_dma_unmap(cmd);
 
 	spin_lock_irqsave(host->host_lock, flags);
@@ -6193,9 +6221,15 @@
 	int err;
 	unsigned long flags;
 
-	/* Reset the host controller */
+	/*
+	 * Stop the host controller and complete the requests
+	 * cleared by h/w
+	 */
 	spin_lock_irqsave(hba->host->host_lock, flags);
 	ufshcd_hba_stop(hba, false);
+	hba->silence_err_logs = true;
+	ufshcd_complete_requests(hba);
+	hba->silence_err_logs = false;
 	spin_unlock_irqrestore(hba->host->host_lock, flags);
 
 	/* scale up clocks to max frequency before full reinitialization */
@@ -6229,7 +6263,6 @@
 static int ufshcd_reset_and_restore(struct ufs_hba *hba)
 {
 	int err = 0;
-	unsigned long flags;
 	int retries = MAX_HOST_RESET_RETRIES;
 
 	do {
@@ -6239,15 +6272,6 @@
 		err = ufshcd_host_reset_and_restore(hba);
 	} while (err && --retries);
 
-	/*
-	 * After reset the door-bell might be cleared, complete
-	 * outstanding requests in s/w here.
-	 */
-	spin_lock_irqsave(hba->host->host_lock, flags);
-	ufshcd_transfer_req_compl(hba);
-	ufshcd_tmc_handler(hba);
-	spin_unlock_irqrestore(hba->host->host_lock, flags);
-
 	return err;
 }
 
@@ -6713,7 +6737,8 @@
 	return ret;
 }
 
-static void ufshcd_tune_unipro_params(struct ufs_hba *hba)
+static void ufshcd_tune_unipro_params(struct ufs_hba *hba,
+				      struct ufs_dev_desc *card)
 {
 	if (ufshcd_is_unipro_pa_params_tuning_req(hba)) {
 		ufshcd_tune_pa_tactivate(hba);
@@ -6727,7 +6752,7 @@
 	if (hba->dev_quirks & UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE)
 		ufshcd_quirk_tune_host_pa_tactivate(hba);
 
-	ufshcd_vops_apply_dev_quirks(hba);
+	ufshcd_vops_apply_dev_quirks(hba, card);
 }
 
 static void ufshcd_clear_dbg_ufs_stats(struct ufs_hba *hba)
@@ -6770,23 +6795,13 @@
 		&hba->desc_size.geom_desc);
 	if (err)
 		hba->desc_size.geom_desc = QUERY_DESC_GEOMETRY_DEF_SIZE;
+
 	err = ufshcd_read_desc_length(hba, QUERY_DESC_IDN_HEALTH, 0,
 		&hba->desc_size.hlth_desc);
 	if (err)
 		hba->desc_size.hlth_desc = QUERY_DESC_HEALTH_DEF_SIZE;
 }
 
-static void ufshcd_def_desc_sizes(struct ufs_hba *hba)
-{
-	hba->desc_size.dev_desc = QUERY_DESC_DEVICE_DEF_SIZE;
-	hba->desc_size.pwr_desc = QUERY_DESC_POWER_DEF_SIZE;
-	hba->desc_size.interc_desc = QUERY_DESC_INTERCONNECT_DEF_SIZE;
-	hba->desc_size.conf_desc = QUERY_DESC_CONFIGURATION_DEF_SIZE;
-	hba->desc_size.unit_desc = QUERY_DESC_UNIT_DEF_SIZE;
-	hba->desc_size.geom_desc = QUERY_DESC_GEOMETRY_DEF_SIZE;
-	hba->desc_size.hlth_desc = QUERY_DESC_HEALTH_DEF_SIZE;
-}
-
 static struct ufs_ref_clk ufs_ref_clk_freqs[] = {
 	{19200000, REF_CLK_FREQ_19_2_MHZ},
 	{26000000, REF_CLK_FREQ_26_MHZ},
@@ -6881,9 +6896,6 @@
 	/* UniPro link is active now */
 	ufshcd_set_link_active(hba);
 
-	/* Enable Auto-Hibernate if configured */
-	ufshcd_auto_hibern8_enable(hba);
-
 	ret = ufshcd_verify_dev_init(hba);
 	if (ret)
 		goto out;
@@ -6903,10 +6915,9 @@
 	}
 
 	ufs_fixup_device_setup(hba, &card);
+	ufshcd_tune_unipro_params(hba, &card);
 	ufs_put_device_desc(&card);
 
-	ufshcd_tune_unipro_params(hba);
-
 	/* UFS device is also active now */
 	ufshcd_set_ufs_dev_active(hba);
 	ufshcd_force_reset_auto_bkops(hba);
@@ -6934,6 +6945,9 @@
 	/* set the state as operational after switching to desired gear */
 	hba->ufshcd_state = UFSHCD_STATE_OPERATIONAL;
 
+	/* Enable Auto-Hibernate if configured */
+	ufshcd_auto_hibern8_enable(hba);
+
 	/*
 	 * If we are in error handling context or in power management callbacks
 	 * context, no need to scan the host
@@ -6951,7 +6965,8 @@
 			ufshcd_init_icc_levels(hba);
 
 		/* Add required well known logical units to scsi mid layer */
-		if (ufshcd_scsi_add_wlus(hba))
+		ret = ufshcd_scsi_add_wlus(hba);
+		if (ret)
 			goto out;
 
 		/* Initialize devfreq after UFS device is detected */
@@ -7950,12 +7965,12 @@
 	if (hba->clk_scaling.is_allowed)
 		ufshcd_resume_clkscaling(hba);
 
-	/* Schedule clock gating in case of no access to UFS device yet */
-	ufshcd_release(hba);
-
 	/* Enable Auto-Hibernate if configured */
 	ufshcd_auto_hibern8_enable(hba);
 
+	/* Schedule clock gating in case of no access to UFS device yet */
+	ufshcd_release(hba);
+
 	goto out;
 
 set_old_link_state:
@@ -8149,11 +8164,7 @@
 	if (ufshcd_is_ufs_dev_poweroff(hba) && ufshcd_is_link_off(hba))
 		goto out;
 
-	if (pm_runtime_suspended(hba->dev)) {
-		ret = ufshcd_runtime_resume(hba);
-		if (ret)
-			goto out;
-	}
+	pm_runtime_get_sync(hba->dev);
 
 	ret = ufshcd_suspend(hba, UFS_SHUTDOWN_PM);
 out:
@@ -8274,9 +8285,6 @@
 	hba->mmio_base = mmio_base;
 	hba->irq = irq;
 
-	/* Set descriptor lengths to specification defaults */
-	ufshcd_def_desc_sizes(hba);
-
 	err = ufshcd_hba_init(hba);
 	if (err)
 		goto out_error;
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/ufs/ufshcd.h
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/ufs/ufshcd.h
@@ -55,6 +55,7 @@
 #include <linux/clk.h>
 #include <linux/completion.h>
 #include <linux/regulator/consumer.h>
+#include <linux/bitfield.h>
 #include "unipro.h"
 
 #include <asm/irq.h>
@@ -322,7 +323,7 @@
 	void	(*setup_task_mgmt)(struct ufs_hba *, int, u8);
 	void    (*hibern8_notify)(struct ufs_hba *, enum uic_cmd_dme,
 					enum ufs_notify_change_status);
-	int	(*apply_dev_quirks)(struct ufs_hba *);
+	int	(*apply_dev_quirks)(struct ufs_hba *, struct ufs_dev_desc *);
 	int     (*suspend)(struct ufs_hba *, enum ufs_pm_op);
 	int     (*resume)(struct ufs_hba *, enum ufs_pm_op);
 	void	(*dbg_register_dump)(struct ufs_hba *hba);
@@ -513,6 +514,7 @@
  * @uic_error: UFS interconnect layer error status
  * @saved_err: sticky error mask
  * @saved_uic_err: sticky UIC error mask
+ * @silence_err_logs: flag to silence error logs
  * @dev_cmd: ufs device management command information
  * @last_dme_cmd_tstamp: time stamp of the last completed DME command
  * @auto_bkops_enabled: to track whether bkops is enabled in device
@@ -670,6 +672,7 @@
 	u32 saved_err;
 	u32 saved_uic_err;
 	struct ufs_stats ufs_stats;
+	bool silence_err_logs;
 
 	/* Device management request data */
 	struct ufs_dev_cmd dev_cmd;
@@ -769,6 +772,11 @@
 	return (hba->capabilities & MASK_AUTO_HIBERN8_SUPPORT);
 }
 
+static inline bool ufshcd_is_auto_hibern8_enabled(struct ufs_hba *hba)
+{
+	return FIELD_GET(UFSHCI_AHIBERN8_TIMER_MASK, hba->ahit) ? true : false;
+}
+
 #define ufshcd_writel(hba, val, reg)	\
 	writel((val), (hba)->mmio_base + (reg))
 #define ufshcd_readl(hba, reg)	\
@@ -916,6 +924,8 @@
 int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode,
 	enum flag_idn idn, bool *flag_res);
 
+void ufshcd_auto_hibern8_enable(struct ufs_hba *hba);
+
 #define SD_ASCII_STD true
 #define SD_RAW false
 int ufshcd_read_string_desc(struct ufs_hba *hba, u8 desc_index,
@@ -1043,10 +1053,11 @@
 		return hba->vops->hibern8_notify(hba, cmd, status);
 }
 
-static inline int ufshcd_vops_apply_dev_quirks(struct ufs_hba *hba)
+static inline int ufshcd_vops_apply_dev_quirks(struct ufs_hba *hba,
+					       struct ufs_dev_desc *card)
 {
 	if (hba->vops && hba->vops->apply_dev_quirks)
-		return hba->vops->apply_dev_quirks(hba);
+		return hba->vops->apply_dev_quirks(hba, card);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/scsi/zorro_esp.c
+++ linux-gkeop-5.4-5.4.0/drivers/scsi/zorro_esp.c
@@ -218,7 +218,14 @@
 static u32 zorro_esp_dma_length_limit(struct esp *esp, u32 dma_addr,
 					u32 dma_len)
 {
-	return dma_len > 0xFFFF ? 0xFFFF : dma_len;
+	return dma_len > (1U << 16) ? (1U << 16) : dma_len;
+}
+
+static u32 fastlane_esp_dma_length_limit(struct esp *esp, u32 dma_addr,
+					u32 dma_len)
+{
+	/* The old driver used 0xfffc as limit, so do that here too */
+	return dma_len > 0xfffc ? 0xfffc : dma_len;
 }
 
 static void zorro_esp_reset_dma(struct esp *esp)
@@ -604,7 +611,7 @@
 	.esp_write8		= zorro_esp_write8,
 	.esp_read8		= zorro_esp_read8,
 	.irq_pending		= fastlane_esp_irq_pending,
-	.dma_length_limit	= zorro_esp_dma_length_limit,
+	.dma_length_limit	= fastlane_esp_dma_length_limit,
 	.reset_dma		= zorro_esp_reset_dma,
 	.dma_drain		= zorro_esp_dma_drain,
 	.dma_invalidate		= fastlane_esp_dma_invalidate,
--- linux-gkeop-5.4-5.4.0.orig/drivers/slimbus/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/slimbus/core.c
@@ -283,6 +283,7 @@
 /* slim_remove_device: Remove the effect of slim_add_device() */
 static void slim_remove_device(struct slim_device *sbdev)
 {
+	of_node_put(sbdev->dev.of_node);
 	device_unregister(&sbdev->dev);
 }
 
@@ -301,8 +302,6 @@
 {
 	/* Remove all clients */
 	device_for_each_child(ctrl->dev, NULL, slim_ctrl_remove_device);
-	/* Enter Clock Pause */
-	slim_ctrl_clk_pause(ctrl, false, 0);
 	ida_simple_remove(&ctrl_ida, ctrl->id);
 
 	return 0;
@@ -326,8 +325,8 @@
 	mutex_lock(&ctrl->lock);
 	sbdev->is_laddr_valid = false;
 	mutex_unlock(&ctrl->lock);
-
-	ida_simple_remove(&ctrl->laddr_ida, sbdev->laddr);
+	if (!ctrl->get_laddr)
+		ida_simple_remove(&ctrl->laddr_ida, sbdev->laddr);
 	slim_device_update_status(sbdev, SLIM_DEVICE_STATUS_DOWN);
 }
 EXPORT_SYMBOL_GPL(slim_report_absent);
--- linux-gkeop-5.4-5.4.0.orig/drivers/slimbus/qcom-ngd-ctrl.c
+++ linux-gkeop-5.4-5.4.0/drivers/slimbus/qcom-ngd-ctrl.c
@@ -1201,6 +1201,9 @@
 	struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev);
 	int ret = 0;
 
+	if (!ctrl->qmi.handle)
+		return 0;
+
 	if (ctrl->state >= QCOM_SLIM_NGD_CTRL_ASLEEP)
 		ret = qcom_slim_ngd_power_up(ctrl);
 	if (ret) {
@@ -1273,9 +1276,13 @@
 {
 	struct qcom_slim_ngd_qmi *qmi =
 		container_of(hdl, struct qcom_slim_ngd_qmi, svc_event_hdl);
+	struct qcom_slim_ngd_ctrl *ctrl =
+		container_of(qmi, struct qcom_slim_ngd_ctrl, qmi);
 
 	qmi->svc_info.sq_node = 0;
 	qmi->svc_info.sq_port = 0;
+
+	qcom_slim_ngd_enable(ctrl, false);
 }
 
 static struct qmi_ops qcom_slim_ngd_qmi_svc_event_ops = {
@@ -1354,7 +1361,6 @@
 		ngd->pdev->driver_override = QCOM_SLIM_NGD_DRV_NAME;
 		ngd->pdev->dev.of_node = node;
 		ctrl->ngd = ngd;
-		platform_set_drvdata(ngd->pdev, ctrl);
 
 		platform_device_add(ngd->pdev);
 		ngd->base = ctrl->base + ngd->id * data->offset +
@@ -1369,12 +1375,13 @@
 
 static int qcom_slim_ngd_probe(struct platform_device *pdev)
 {
-	struct qcom_slim_ngd_ctrl *ctrl = platform_get_drvdata(pdev);
 	struct device *dev = &pdev->dev;
+	struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev->parent);
 	int ret;
 
 	ctrl->ctrl.dev = dev;
 
+	platform_set_drvdata(pdev, ctrl);
 	pm_runtime_use_autosuspend(dev);
 	pm_runtime_set_autosuspend_delay(dev, QCOM_SLIM_NGD_AUTOSUSPEND);
 	pm_runtime_set_suspended(dev);
@@ -1493,6 +1500,9 @@
 	struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev);
 	int ret = 0;
 
+	if (!ctrl->qmi.handle)
+		return 0;
+
 	ret = qcom_slim_qmi_power_request(ctrl, false);
 	if (ret && ret != -EBUSY)
 		dev_info(ctrl->dev, "slim resource not idle:%d\n", ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/amlogic/meson-canvas.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/amlogic/meson-canvas.c
@@ -72,8 +72,10 @@
 	 * current state, this driver probe cannot return -EPROBE_DEFER
 	 */
 	canvas = dev_get_drvdata(&canvas_pdev->dev);
-	if (!canvas)
+	if (!canvas) {
+		put_device(&canvas_pdev->dev);
 		return ERR_PTR(-EINVAL);
+	}
 
 	return canvas;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/amlogic/meson-ee-pwrc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/amlogic/meson-ee-pwrc.c
@@ -323,6 +323,8 @@
 				     struct meson_ee_pwrc *pwrc,
 				     struct meson_ee_pwrc_domain *dom)
 {
+	int ret;
+
 	dom->pwrc = pwrc;
 	dom->num_rstc = dom->desc.reset_names_count;
 	dom->num_clks = dom->desc.clk_names_count;
@@ -368,15 +370,21 @@
          * prepare/enable counters won't be in sync.
          */
 	if (dom->num_clks && dom->desc.get_power && !dom->desc.get_power(dom)) {
-		int ret = clk_bulk_prepare_enable(dom->num_clks, dom->clks);
+		ret = clk_bulk_prepare_enable(dom->num_clks, dom->clks);
 		if (ret)
 			return ret;
 
-		pm_genpd_init(&dom->base, &pm_domain_always_on_gov, false);
-	} else
-		pm_genpd_init(&dom->base, NULL,
-			      (dom->desc.get_power ?
-			       dom->desc.get_power(dom) : true));
+		ret = pm_genpd_init(&dom->base, &pm_domain_always_on_gov,
+				    false);
+		if (ret)
+			return ret;
+	} else {
+		ret = pm_genpd_init(&dom->base, NULL,
+				    (dom->desc.get_power ?
+				     dom->desc.get_power(dom) : true));
+		if (ret)
+			return ret;
+	}
 
 	return 0;
 }
@@ -441,9 +449,7 @@
 		pwrc->xlate.domains[i] = &dom->base;
 	}
 
-	of_genpd_add_provider_onecell(pdev->dev.of_node, &pwrc->xlate);
-
-	return 0;
+	return of_genpd_add_provider_onecell(pdev->dev.of_node, &pwrc->xlate);
 }
 
 static void meson_ee_pwrc_shutdown(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/aspeed/aspeed-lpc-snoop.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/aspeed/aspeed-lpc-snoop.c
@@ -11,6 +11,7 @@
  */
 
 #include <linux/bitops.h>
+#include <linux/clk.h>
 #include <linux/interrupt.h>
 #include <linux/fs.h>
 #include <linux/kfifo.h>
@@ -67,6 +68,7 @@
 struct aspeed_lpc_snoop {
 	struct regmap		*regmap;
 	int			irq;
+	struct clk		*clk;
 	struct aspeed_lpc_snoop_channel chan[NUM_SNOOP_CHANNELS];
 };
 
@@ -97,13 +99,13 @@
 	return ret ? ret : copied;
 }
 
-static unsigned int snoop_file_poll(struct file *file,
+static __poll_t snoop_file_poll(struct file *file,
 				    struct poll_table_struct *pt)
 {
 	struct aspeed_lpc_snoop_channel *chan = snoop_file_to_chan(file);
 
 	poll_wait(file, &chan->wq, pt);
-	return !kfifo_is_empty(&chan->fifo) ? POLLIN : 0;
+	return !kfifo_is_empty(&chan->fifo) ? EPOLLIN : 0;
 }
 
 static const struct file_operations snoop_fops = {
@@ -282,22 +284,42 @@
 		return -ENODEV;
 	}
 
+	lpc_snoop->clk = devm_clk_get(dev, NULL);
+	if (IS_ERR(lpc_snoop->clk)) {
+		rc = PTR_ERR(lpc_snoop->clk);
+		if (rc != -EPROBE_DEFER)
+			dev_err(dev, "couldn't get clock\n");
+		return rc;
+	}
+	rc = clk_prepare_enable(lpc_snoop->clk);
+	if (rc) {
+		dev_err(dev, "couldn't enable clock\n");
+		return rc;
+	}
+
 	rc = aspeed_lpc_snoop_config_irq(lpc_snoop, pdev);
 	if (rc)
-		return rc;
+		goto err;
 
 	rc = aspeed_lpc_enable_snoop(lpc_snoop, dev, 0, port);
 	if (rc)
-		return rc;
+		goto err;
 
 	/* Configuration of 2nd snoop channel port is optional */
 	if (of_property_read_u32_index(dev->of_node, "snoop-ports",
 				       1, &port) == 0) {
 		rc = aspeed_lpc_enable_snoop(lpc_snoop, dev, 1, port);
-		if (rc)
+		if (rc) {
 			aspeed_lpc_disable_snoop(lpc_snoop, 0);
+			goto err;
+		}
 	}
 
+	return 0;
+
+err:
+	clk_disable_unprepare(lpc_snoop->clk);
+
 	return rc;
 }
 
@@ -309,6 +331,8 @@
 	aspeed_lpc_disable_snoop(lpc_snoop, 0);
 	aspeed_lpc_disable_snoop(lpc_snoop, 1);
 
+	clk_disable_unprepare(lpc_snoop->clk);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/atmel/soc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/atmel/soc.c
@@ -264,8 +264,21 @@
 	return soc_dev;
 }
 
+static const struct of_device_id at91_soc_allowed_list[] __initconst = {
+	{ .compatible = "atmel,at91rm9200", },
+	{ .compatible = "atmel,at91sam9", },
+	{ .compatible = "atmel,sama5", },
+	{ .compatible = "atmel,samv7", },
+	{ }
+};
+
 static int __init atmel_soc_device_init(void)
 {
+	struct device_node *np = of_find_node_by_path("/");
+
+	if (!of_match_node(at91_soc_allowed_list, np))
+		return 0;
+
 	at91_soc_init(socs);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/fsl/dpio/dpio-driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/fsl/dpio/dpio-driver.c
@@ -95,7 +95,6 @@
 {
 	int error;
 	struct fsl_mc_device_irq *irq;
-	cpumask_t mask;
 
 	irq = dpio_dev->irqs[0];
 	error = devm_request_irq(&dpio_dev->dev,
@@ -112,9 +111,7 @@
 	}
 
 	/* set the affinity hint */
-	cpumask_clear(&mask);
-	cpumask_set_cpu(cpu, &mask);
-	if (irq_set_affinity_hint(irq->msi_desc->irq, &mask))
+	if (irq_set_affinity_hint(irq->msi_desc->irq, cpumask_of(cpu)))
 		dev_err(&dpio_dev->dev,
 			"irq_set_affinity failed irq %d cpu %d\n",
 			irq->msi_desc->irq, cpu);
@@ -233,10 +230,6 @@
 		goto err_allocate_irqs;
 	}
 
-	err = register_dpio_irq_handlers(dpio_dev, desc.cpu);
-	if (err)
-		goto err_register_dpio_irq;
-
 	priv->io = dpaa2_io_create(&desc, dev);
 	if (!priv->io) {
 		dev_err(dev, "dpaa2_io_create failed\n");
@@ -244,6 +237,10 @@
 		goto err_dpaa2_io_create;
 	}
 
+	err = register_dpio_irq_handlers(dpio_dev, desc.cpu);
+	if (err)
+		goto err_register_dpio_irq;
+
 	dev_info(dev, "probed\n");
 	dev_dbg(dev, "   receives_notifications = %d\n",
 		desc.receives_notifications);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/fsl/qbman/bman.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/fsl/qbman/bman.c
@@ -660,7 +660,7 @@
 	}
 done:
 	put_affine_portal();
-	return 0;
+	return err;
 }
 
 struct gen_pool *bm_bpalloc;
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/imx/gpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/imx/gpc.c
@@ -87,8 +87,8 @@
 static int imx6_pm_domain_power_on(struct generic_pm_domain *genpd)
 {
 	struct imx_pm_domain *pd = to_imx_pm_domain(genpd);
-	int i, ret, sw, sw2iso;
-	u32 val;
+	int i, ret;
+	u32 val, req;
 
 	if (pd->supply) {
 		ret = regulator_enable(pd->supply);
@@ -107,17 +107,18 @@
 	regmap_update_bits(pd->regmap, pd->reg_offs + GPC_PGC_CTRL_OFFS,
 			   0x1, 0x1);
 
-	/* Read ISO and ISO2SW power up delays */
-	regmap_read(pd->regmap, pd->reg_offs + GPC_PGC_PUPSCR_OFFS, &val);
-	sw = val & 0x3f;
-	sw2iso = (val >> 8) & 0x3f;
-
 	/* Request GPC to power up domain */
-	val = BIT(pd->cntr_pdn_bit + 1);
-	regmap_update_bits(pd->regmap, GPC_CNTR, val, val);
+	req = BIT(pd->cntr_pdn_bit + 1);
+	regmap_update_bits(pd->regmap, GPC_CNTR, req, req);
+
+	/* Wait for the PGC to handle the request */
+	ret = regmap_read_poll_timeout(pd->regmap, GPC_CNTR, val, !(val & req),
+				       1, 50);
+	if (ret)
+		pr_err("powerup request on domain %s timed out\n", genpd->name);
 
-	/* Wait ISO + ISO2SW IPG clock cycles */
-	udelay(DIV_ROUND_UP(sw + sw2iso, pd->ipg_rate_mhz));
+	/* Wait for reset to propagate through peripherals */
+	usleep_range(5, 10);
 
 	/* Disable reset clocks for all devices in the domain */
 	for (i = 0; i < pd->num_clks; i++)
@@ -343,6 +344,7 @@
 	.rd_table = &access_table,
 	.wr_table = &access_table,
 	.max_register = 0x2ac,
+	.fast_io = true,
 };
 
 static struct generic_pm_domain *imx_gpc_onecell_domains[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/imx/soc-imx-scu.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/imx/soc-imx-scu.c
@@ -25,7 +25,7 @@
 			u32 id;
 		} resp;
 	} data;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_misc_get_soc_uid {
 	struct imx_sc_rpc_msg hdr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/mediatek/mtk-cmdq-helper.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/mediatek/mtk-cmdq-helper.c
@@ -38,6 +38,7 @@
 	client->pkt_cnt = 0;
 	client->client.dev = dev;
 	client->client.tx_block = false;
+	client->client.knows_txdone = true;
 	client->chan = mbox_request_channel(&client->client, index);
 
 	if (IS_ERR(client->chan)) {
@@ -155,7 +156,7 @@
 		err = cmdq_pkt_append_command(pkt, CMDQ_CODE_MASK, 0, ~mask);
 		offset_mask |= CMDQ_WRITE_ENABLE_MASK;
 	}
-	err |= cmdq_pkt_write(pkt, value, subsys, offset_mask);
+	err |= cmdq_pkt_write(pkt, subsys, offset_mask, value);
 
 	return err;
 }
@@ -257,7 +258,9 @@
 		spin_unlock_irqrestore(&client->lock, flags);
 	}
 
-	mbox_send_message(client->chan, pkt);
+	err = mbox_send_message(client->chan, pkt);
+	if (err < 0)
+		return err;
 	/* We can send next packet immediately, so just call txdone. */
 	mbox_client_txdone(client->chan, 0);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/mediatek/mtk-scpsys.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/mediatek/mtk-scpsys.c
@@ -446,6 +446,7 @@
 	for (i = 0; i < num; i++) {
 		struct scp_domain *scpd = &scp->domains[i];
 		struct generic_pm_domain *genpd = &scpd->genpd;
+		bool on;
 
 		/*
 		 * Initially turn on all domains to make the domains usable
@@ -453,9 +454,9 @@
 		 * software.  The unused domains will be switched off during
 		 * late_init time.
 		 */
-		genpd->power_on(genpd);
+		on = !WARN_ON(genpd->power_on(genpd) < 0);
 
-		pm_genpd_init(genpd, NULL, false);
+		pm_genpd_init(genpd, NULL, !on);
 	}
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/llcc-slice.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/llcc-slice.c
@@ -48,7 +48,7 @@
 
 static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER;
 
-static const struct regmap_config llcc_regmap_config = {
+static struct regmap_config llcc_regmap_config = {
 	.reg_bits = 32,
 	.reg_stride = 4,
 	.val_bits = 32,
@@ -323,6 +323,7 @@
 	if (IS_ERR(base))
 		return ERR_CAST(base);
 
+	llcc_regmap_config.name = name;
 	return devm_regmap_init_mmio(&pdev->dev, base, &llcc_regmap_config);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/qcom-geni-se.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/qcom-geni-se.c
@@ -282,10 +282,23 @@
 
 static void geni_se_select_dma_mode(struct geni_se *se)
 {
+	u32 proto = geni_se_read_proto(se);
 	u32 val;
 
 	geni_se_irq_clear(se);
 
+	val = readl_relaxed(se->base + SE_GENI_M_IRQ_EN);
+	if (proto != GENI_SE_UART) {
+		val &= ~(M_CMD_DONE_EN | M_TX_FIFO_WATERMARK_EN);
+		val &= ~(M_RX_FIFO_WATERMARK_EN | M_RX_FIFO_LAST_EN);
+	}
+	writel_relaxed(val, se->base + SE_GENI_M_IRQ_EN);
+
+	val = readl_relaxed(se->base + SE_GENI_S_IRQ_EN);
+	if (proto != GENI_SE_UART)
+		val &= ~S_CMD_DONE_EN;
+	writel_relaxed(val, se->base + SE_GENI_S_IRQ_EN);
+
 	val = readl_relaxed(se->base + SE_GENI_DMA_MODE_EN);
 	val |= GENI_DMA_MODE_EN;
 	writel_relaxed(val, se->base + SE_GENI_DMA_MODE_EN);
@@ -644,7 +657,7 @@
 	writel_relaxed(lower_32_bits(*iova), se->base + SE_DMA_TX_PTR_L);
 	writel_relaxed(upper_32_bits(*iova), se->base + SE_DMA_TX_PTR_H);
 	writel_relaxed(GENI_SE_DMA_EOT_BUF, se->base + SE_DMA_TX_ATTR);
-	writel_relaxed(len, se->base + SE_DMA_TX_LEN);
+	writel(len, se->base + SE_DMA_TX_LEN);
 	return 0;
 }
 EXPORT_SYMBOL(geni_se_tx_dma_prep);
@@ -681,7 +694,7 @@
 	writel_relaxed(upper_32_bits(*iova), se->base + SE_DMA_RX_PTR_H);
 	/* RX does not have EOT buffer type bit. So just reset RX_ATTR */
 	writel_relaxed(0, se->base + SE_DMA_RX_ATTR);
-	writel_relaxed(len, se->base + SE_DMA_RX_LEN);
+	writel(len, se->base + SE_DMA_RX_LEN);
 	return 0;
 }
 EXPORT_SYMBOL(geni_se_rx_dma_prep);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/rpmh-rsc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/rpmh-rsc.c
@@ -148,7 +148,7 @@
 static struct tcs_group *get_tcs_for_msg(struct rsc_drv *drv,
 					 const struct tcs_request *msg)
 {
-	int type, ret;
+	int type;
 	struct tcs_group *tcs;
 
 	switch (msg->state) {
@@ -169,19 +169,10 @@
 	 * If we are making an active request on a RSC that does not have a
 	 * dedicated TCS for active state use, then re-purpose a wake TCS to
 	 * send active votes.
-	 * NOTE: The driver must be aware that this RSC does not have a
-	 * dedicated AMC, and therefore would invalidate the sleep and wake
-	 * TCSes before making an active state request.
 	 */
 	tcs = get_tcs_of_type(drv, type);
-	if (msg->state == RPMH_ACTIVE_ONLY_STATE && !tcs->num_tcs) {
+	if (msg->state == RPMH_ACTIVE_ONLY_STATE && !tcs->num_tcs)
 		tcs = get_tcs_of_type(drv, WAKE_TCS);
-		if (tcs->num_tcs) {
-			ret = rpmh_rsc_invalidate(drv);
-			if (ret)
-				return ERR_PTR(ret);
-		}
-	}
 
 	return tcs;
 }
@@ -201,6 +192,42 @@
 	return NULL;
 }
 
+static void __tcs_set_trigger(struct rsc_drv *drv, int tcs_id, bool trigger)
+{
+	u32 enable;
+
+	/*
+	 * HW req: Clear the DRV_CONTROL and enable TCS again
+	 * While clearing ensure that the AMC mode trigger is cleared
+	 * and then the mode enable is cleared.
+	 */
+	enable = read_tcs_reg(drv, RSC_DRV_CONTROL, tcs_id, 0);
+	enable &= ~TCS_AMC_MODE_TRIGGER;
+	write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
+	enable &= ~TCS_AMC_MODE_ENABLE;
+	write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
+
+	if (trigger) {
+		/* Enable the AMC mode on the TCS and then trigger the TCS */
+		enable = TCS_AMC_MODE_ENABLE;
+		write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
+		enable |= TCS_AMC_MODE_TRIGGER;
+		write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
+	}
+}
+
+static void enable_tcs_irq(struct rsc_drv *drv, int tcs_id, bool enable)
+{
+	u32 data;
+
+	data = read_tcs_reg(drv, RSC_DRV_IRQ_ENABLE, 0, 0);
+	if (enable)
+		data |= BIT(tcs_id);
+	else
+		data &= ~BIT(tcs_id);
+	write_tcs_reg(drv, RSC_DRV_IRQ_ENABLE, 0, data);
+}
+
 /**
  * tcs_tx_done: TX Done interrupt handler
  */
@@ -237,6 +264,14 @@
 		}
 
 		trace_rpmh_tx_done(drv, i, req, err);
+
+		/*
+		 * If wake tcs was re-purposed for sending active
+		 * votes, clear AMC trigger & enable modes and
+		 * disable interrupt for this TCS
+		 */
+		if (!drv->tcs[ACTIVE_TCS].num_tcs)
+			__tcs_set_trigger(drv, i, false);
 skip:
 		/* Reclaim the TCS */
 		write_tcs_reg(drv, RSC_DRV_CMD_ENABLE, i, 0);
@@ -244,6 +279,13 @@
 		write_tcs_reg(drv, RSC_DRV_IRQ_CLEAR, 0, BIT(i));
 		spin_lock(&drv->lock);
 		clear_bit(i, drv->tcs_in_use);
+		/*
+		 * Disable interrupt for WAKE TCS to avoid being
+		 * spammed with interrupts coming when the solver
+		 * sends its wake votes.
+		 */
+		if (!drv->tcs[ACTIVE_TCS].num_tcs)
+			enable_tcs_irq(drv, i, false);
 		spin_unlock(&drv->lock);
 		if (req)
 			rpmh_tx_done(req, err);
@@ -285,28 +327,6 @@
 	write_tcs_reg(drv, RSC_DRV_CMD_ENABLE, tcs_id, cmd_enable);
 }
 
-static void __tcs_trigger(struct rsc_drv *drv, int tcs_id)
-{
-	u32 enable;
-
-	/*
-	 * HW req: Clear the DRV_CONTROL and enable TCS again
-	 * While clearing ensure that the AMC mode trigger is cleared
-	 * and then the mode enable is cleared.
-	 */
-	enable = read_tcs_reg(drv, RSC_DRV_CONTROL, tcs_id, 0);
-	enable &= ~TCS_AMC_MODE_TRIGGER;
-	write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
-	enable &= ~TCS_AMC_MODE_ENABLE;
-	write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
-
-	/* Enable the AMC mode on the TCS and then trigger the TCS */
-	enable = TCS_AMC_MODE_ENABLE;
-	write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
-	enable |= TCS_AMC_MODE_TRIGGER;
-	write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable);
-}
-
 static int check_for_req_inflight(struct rsc_drv *drv, struct tcs_group *tcs,
 				  const struct tcs_request *msg)
 {
@@ -377,10 +397,20 @@
 
 	tcs->req[tcs_id - tcs->offset] = msg;
 	set_bit(tcs_id, drv->tcs_in_use);
+	if (msg->state == RPMH_ACTIVE_ONLY_STATE && tcs->type != ACTIVE_TCS) {
+		/*
+		 * Clear previously programmed WAKE commands in selected
+		 * repurposed TCS to avoid triggering them. tcs->slots will be
+		 * cleaned from rpmh_flush() by invoking rpmh_rsc_invalidate()
+		 */
+		write_tcs_reg_sync(drv, RSC_DRV_CMD_ENABLE, tcs_id, 0);
+		write_tcs_reg_sync(drv, RSC_DRV_CMD_WAIT_FOR_CMPL, tcs_id, 0);
+		enable_tcs_irq(drv, tcs_id, true);
+	}
 	spin_unlock(&drv->lock);
 
 	__tcs_buffer_write(drv, tcs_id, 0, msg);
-	__tcs_trigger(drv, tcs_id);
+	__tcs_set_trigger(drv, tcs_id, true);
 
 done_write:
 	spin_unlock_irqrestore(&tcs->lock, flags);
@@ -685,6 +715,7 @@
 	.driver = {
 		  .name = "rpmh",
 		  .of_match_table = rpmh_drv_match,
+		  .suppress_bind_attrs = true,
 	},
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/rpmh.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/rpmh.c
@@ -119,6 +119,7 @@
 {
 	struct cache_req *req;
 	unsigned long flags;
+	u32 old_sleep_val, old_wake_val;
 
 	spin_lock_irqsave(&ctrlr->cache_lock, flags);
 	req = __find_req(ctrlr, cmd->addr);
@@ -133,26 +134,27 @@
 
 	req->addr = cmd->addr;
 	req->sleep_val = req->wake_val = UINT_MAX;
-	INIT_LIST_HEAD(&req->list);
 	list_add_tail(&req->list, &ctrlr->cache);
 
 existing:
+	old_sleep_val = req->sleep_val;
+	old_wake_val = req->wake_val;
+
 	switch (state) {
 	case RPMH_ACTIVE_ONLY_STATE:
-		if (req->sleep_val != UINT_MAX)
-			req->wake_val = cmd->data;
-		break;
 	case RPMH_WAKE_ONLY_STATE:
 		req->wake_val = cmd->data;
 		break;
 	case RPMH_SLEEP_STATE:
 		req->sleep_val = cmd->data;
 		break;
-	default:
-		break;
 	}
 
-	ctrlr->dirty = true;
+	ctrlr->dirty |= (req->sleep_val != old_sleep_val ||
+			 req->wake_val != old_wake_val) &&
+			 req->sleep_val != UINT_MAX &&
+			 req->wake_val != UINT_MAX;
+
 unlock:
 	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);
 
@@ -287,6 +289,7 @@
 
 	spin_lock_irqsave(&ctrlr->cache_lock, flags);
 	list_add_tail(&req->list, &ctrlr->batch_cache);
+	ctrlr->dirty = true;
 	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);
 }
 
@@ -314,18 +317,6 @@
 	return ret;
 }
 
-static void invalidate_batch(struct rpmh_ctrlr *ctrlr)
-{
-	struct batch_cache_req *req, *tmp;
-	unsigned long flags;
-
-	spin_lock_irqsave(&ctrlr->cache_lock, flags);
-	list_for_each_entry_safe(req, tmp, &ctrlr->batch_cache, list)
-		kfree(req);
-	INIT_LIST_HEAD(&ctrlr->batch_cache);
-	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);
-}
-
 /**
  * rpmh_write_batch: Write multiple sets of RPMH commands and wait for the
  * batch to finish.
@@ -465,6 +456,13 @@
 		return 0;
 	}
 
+	/* Invalidate the TCSes first to avoid stale data */
+	do {
+		ret = rpmh_rsc_invalidate(ctrlr_to_drv(ctrlr));
+	} while (ret == -EAGAIN);
+	if (ret)
+		return ret;
+
 	/* First flush the cached batch requests */
 	ret = flush_batch(ctrlr);
 	if (ret)
@@ -496,25 +494,25 @@
 EXPORT_SYMBOL(rpmh_flush);
 
 /**
- * rpmh_invalidate: Invalidate all sleep and active sets
- * sets.
+ * rpmh_invalidate: Invalidate sleep and wake sets in batch_cache
  *
  * @dev: The device making the request
  *
- * Invalidate the sleep and active values in the TCS blocks.
+ * Invalidate the sleep and wake values in batch_cache.
  */
 int rpmh_invalidate(const struct device *dev)
 {
 	struct rpmh_ctrlr *ctrlr = get_rpmh_ctrlr(dev);
-	int ret;
+	struct batch_cache_req *req, *tmp;
+	unsigned long flags;
 
-	invalidate_batch(ctrlr);
+	spin_lock_irqsave(&ctrlr->cache_lock, flags);
+	list_for_each_entry_safe(req, tmp, &ctrlr->batch_cache, list)
+		kfree(req);
+	INIT_LIST_HEAD(&ctrlr->batch_cache);
 	ctrlr->dirty = true;
+	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);
 
-	do {
-		ret = rpmh_rsc_invalidate(ctrlr_to_drv(ctrlr));
-	} while (ret == -EAGAIN);
-
-	return ret;
+	return 0;
 }
 EXPORT_SYMBOL(rpmh_invalidate);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/rpmhpd.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/rpmhpd.c
@@ -93,6 +93,7 @@
 
 static struct rpmhpd sdm845_mx_ao = {
 	.pd = { .name = "mx_ao", },
+	.active_only = true,
 	.peer = &sdm845_mx,
 	.res_name = "mx.lvl",
 };
@@ -107,6 +108,7 @@
 
 static struct rpmhpd sdm845_cx_ao = {
 	.pd = { .name = "cx_ao", },
+	.active_only = true,
 	.peer = &sdm845_cx,
 	.parent = &sdm845_mx_ao.pd,
 	.res_name = "cx.lvl",
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/smp2p.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/smp2p.c
@@ -318,15 +318,16 @@
 static int smp2p_update_bits(void *data, u32 mask, u32 value)
 {
 	struct smp2p_entry *entry = data;
+	unsigned long flags;
 	u32 orig;
 	u32 val;
 
-	spin_lock(&entry->lock);
+	spin_lock_irqsave(&entry->lock, flags);
 	val = orig = readl(entry->value);
 	val &= ~mask;
 	val |= value;
 	writel(val, entry->value);
-	spin_unlock(&entry->lock);
+	spin_unlock_irqrestore(&entry->lock, flags);
 
 	if (val != orig)
 		qcom_smp2p_kick(entry->smp2p);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/qcom/socinfo.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/qcom/socinfo.c
@@ -428,6 +428,8 @@
 	qs->attr.family = "Snapdragon";
 	qs->attr.machine = socinfo_machine(&pdev->dev,
 					   le32_to_cpu(info->id));
+	qs->attr.soc_id = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u",
+					 le32_to_cpu(info->id));
 	qs->attr.revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u.%u",
 					   SOCINFO_MAJOR(le32_to_cpu(info->ver)),
 					   SOCINFO_MINOR(le32_to_cpu(info->ver)));
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/renesas/renesas-soc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/renesas/renesas-soc.c
@@ -326,7 +326,7 @@
 	if (np) {
 		chipid = of_iomap(np, 0);
 		of_node_put(np);
-	} else if (soc->id) {
+	} else if (soc->id && family->reg) {
 		chipid = ioremap(family->reg, 4);
 	}
 	if (chipid) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/renesas/rmobile-sysc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/renesas/rmobile-sysc.c
@@ -327,6 +327,7 @@
 
 		pmd = of_get_child_by_name(np, "pm-domains");
 		if (!pmd) {
+			iounmap(base);
 			pr_warn("%pOF lacks pm-domains node\n", np);
 			continue;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/tegra/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/soc/tegra/Kconfig
@@ -130,6 +130,7 @@
 
 config SOC_TEGRA_PMC
 	bool
+	select GENERIC_PINCONF
 
 config SOC_TEGRA_POWERGATE_BPMP
 	def_bool y
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/tegra/fuse/fuse-tegra30.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/tegra/fuse/fuse-tegra30.c
@@ -35,7 +35,8 @@
     defined(CONFIG_ARCH_TEGRA_124_SOC) || \
     defined(CONFIG_ARCH_TEGRA_132_SOC) || \
     defined(CONFIG_ARCH_TEGRA_210_SOC) || \
-    defined(CONFIG_ARCH_TEGRA_186_SOC)
+    defined(CONFIG_ARCH_TEGRA_186_SOC) || \
+    defined(CONFIG_ARCH_TEGRA_194_SOC)
 static u32 tegra30_fuse_read_early(struct tegra_fuse *fuse, unsigned int offset)
 {
 	if (WARN_ON(!fuse->base))
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/tegra/fuse/speedo-tegra210.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/tegra/fuse/speedo-tegra210.c
@@ -94,7 +94,7 @@
 	unsigned int i;
 
 	for (i = 0; i < num; i++)
-		if (value < speedos[num])
+		if (value < speedos[i])
 			return i;
 
 	return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/tegra/fuse/tegra-apbmisc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/tegra/fuse/tegra-apbmisc.c
@@ -123,7 +123,7 @@
 			apbmisc.flags = IORESOURCE_MEM;
 
 			/* strapping options */
-			if (tegra_get_chip_id() == TEGRA124) {
+			if (of_machine_is_compatible("nvidia,tegra124")) {
 				straps.start = 0x7000e864;
 				straps.end = 0x7000e867;
 			} else {
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/tegra/pmc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/tegra/pmc.c
@@ -1899,6 +1899,20 @@
 							    event->id,
 							    &pmc->irq, pmc);
 
+			/*
+			 * GPIOs don't have an equivalent interrupt in the
+			 * parent controller (GIC). However some code, such
+			 * as the one in irq_get_irqchip_state(), require a
+			 * valid IRQ chip to be set. Make sure that's the
+			 * case by passing NULL here, which will install a
+			 * dummy IRQ chip for the interrupt in the parent
+			 * domain.
+			 */
+			if (domain->parent)
+				irq_domain_set_hwirq_and_chip(domain->parent,
+							      virq, 0, NULL,
+							      NULL);
+
 			break;
 		}
 	}
@@ -1908,10 +1922,22 @@
 	 * dummy hardware IRQ number. This is used in the ->irq_set_type()
 	 * and ->irq_set_wake() callbacks to return early for these IRQs.
 	 */
-	if (i == soc->num_wake_events)
+	if (i == soc->num_wake_events) {
 		err = irq_domain_set_hwirq_and_chip(domain, virq, ULONG_MAX,
 						    &pmc->irq, pmc);
 
+		/*
+		 * Interrupts without a wake event don't have a corresponding
+		 * interrupt in the parent controller (GIC). Pass NULL for the
+		 * chip here, which causes a dummy IRQ chip to be installed
+		 * for the interrupt in the parent domain, to make this
+		 * explicit.
+		 */
+		if (domain->parent)
+			irq_domain_set_hwirq_and_chip(domain->parent, virq, 0,
+						      NULL, NULL);
+	}
+
 	return err;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/ti/knav_dma.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/ti/knav_dma.c
@@ -759,8 +759,9 @@
 	pm_runtime_enable(kdev->dev);
 	ret = pm_runtime_get_sync(kdev->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(kdev->dev);
 		dev_err(kdev->dev, "unable to enable pktdma, err %d\n", ret);
-		return ret;
+		goto err_pm_disable;
 	}
 
 	/* Initialise all packet dmas */
@@ -774,7 +775,8 @@
 
 	if (list_empty(&kdev->list)) {
 		dev_err(dev, "no valid dma instance\n");
-		return -ENODEV;
+		ret = -ENODEV;
+		goto err_put_sync;
 	}
 
 	debugfs_create_file("knav_dma", S_IFREG | S_IRUGO, NULL, NULL,
@@ -782,6 +784,13 @@
 
 	device_ready = true;
 	return ret;
+
+err_put_sync:
+	pm_runtime_put_sync(kdev->dev);
+err_pm_disable:
+	pm_runtime_disable(kdev->dev);
+
+	return ret;
 }
 
 static int knav_dma_remove(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/ti/knav_qmss_queue.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/ti/knav_qmss_queue.c
@@ -1791,6 +1791,7 @@
 	pm_runtime_enable(&pdev->dev);
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(&pdev->dev);
 		dev_err(dev, "Failed to enable QMSS\n");
 		return ret;
 	}
@@ -1858,9 +1859,10 @@
 	if (ret)
 		goto err;
 
-	regions =  of_get_child_by_name(node, "descriptor-regions");
+	regions = of_get_child_by_name(node, "descriptor-regions");
 	if (!regions) {
 		dev_err(dev, "descriptor-regions not specified\n");
+		ret = -ENODEV;
 		goto err;
 	}
 	ret = knav_queue_setup_regions(kdev, regions);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/ti/wkup_m3_ipc.c
+++ linux-gkeop-5.4-5.4.0/drivers/soc/ti/wkup_m3_ipc.c
@@ -419,6 +419,8 @@
 	ret = rproc_boot(m3_ipc->rproc);
 	if (ret)
 		dev_err(dev, "rproc_boot failed\n");
+	else
+		m3_ipc_state = m3_ipc;
 
 	do_exit(0);
 }
@@ -505,8 +507,6 @@
 		goto err_put_rproc;
 	}
 
-	m3_ipc_state = m3_ipc;
-
 	return 0;
 
 err_put_rproc:
--- linux-gkeop-5.4-5.4.0.orig/drivers/soc/xilinx/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/soc/xilinx/Kconfig
@@ -19,7 +19,7 @@
 
 config ZYNQMP_POWER
 	bool "Enable Xilinx Zynq MPSoC Power Management driver"
-	depends on PM && ARCH_ZYNQMP
+	depends on PM && ZYNQMP_FIRMWARE
 	default y
 	help
 	  Say yes to enable power management support for ZyqnMP SoC.
@@ -31,7 +31,7 @@
 config ZYNQMP_PM_DOMAINS
 	bool "Enable Zynq MPSoC generic PM domains"
 	default y
-	depends on PM && ARCH_ZYNQMP && ZYNQMP_FIRMWARE
+	depends on PM && ZYNQMP_FIRMWARE
 	select PM_GENERIC_DOMAINS
 	help
 	  Say yes to enable device power management through PM domains
--- linux-gkeop-5.4-5.4.0.orig/drivers/soundwire/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/soundwire/bus.c
@@ -113,6 +113,8 @@
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
 	struct sdw_bus *bus = slave->bus;
 
+	pm_runtime_disable(dev);
+
 	sdw_slave_debugfs_exit(slave);
 
 	mutex_lock(&bus->bus_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/soundwire/cadence_master.c
+++ linux-gkeop-5.4-5.4.0/drivers/soundwire/cadence_master.c
@@ -232,6 +232,22 @@
 }
 
 /*
+ * all changes to the MCP_CONFIG, MCP_CONTROL, MCP_CMDCTRL and MCP_PHYCTRL
+ * need to be confirmed with a write to MCP_CONFIG_UPDATE
+ */
+static int cdns_update_config(struct sdw_cdns *cdns)
+{
+	int ret;
+
+	ret = cdns_clear_bit(cdns, CDNS_MCP_CONFIG_UPDATE,
+			     CDNS_MCP_CONFIG_UPDATE_BIT);
+	if (ret < 0)
+		dev_err(cdns->dev, "Config update timedout\n");
+
+	return ret;
+}
+
+/*
  * debugfs
  */
 #ifdef CONFIG_DEBUG_FS
@@ -352,10 +368,10 @@
 		if (!(cdns->response_buf[i] & CDNS_MCP_RESP_ACK)) {
 			no_ack = 1;
 			dev_dbg_ratelimited(cdns->dev, "Msg Ack not received\n");
-			if (cdns->response_buf[i] & CDNS_MCP_RESP_NACK) {
-				nack = 1;
-				dev_err_ratelimited(cdns->dev, "Msg NACK received\n");
-			}
+		}
+		if (cdns->response_buf[i] & CDNS_MCP_RESP_NACK) {
+			nack = 1;
+			dev_err_ratelimited(cdns->dev, "Msg NACK received\n");
 		}
 	}
 
@@ -752,7 +768,38 @@
 /*
  * init routines
  */
-static int _cdns_enable_interrupt(struct sdw_cdns *cdns)
+
+/**
+ * sdw_cdns_exit_reset() - Program reset parameters and start bus operations
+ * @cdns: Cadence instance
+ */
+int sdw_cdns_exit_reset(struct sdw_cdns *cdns)
+{
+	/* program maximum length reset to be safe */
+	cdns_updatel(cdns, CDNS_MCP_CONTROL,
+		     CDNS_MCP_CONTROL_RST_DELAY,
+		     CDNS_MCP_CONTROL_RST_DELAY);
+
+	/* use hardware generated reset */
+	cdns_updatel(cdns, CDNS_MCP_CONTROL,
+		     CDNS_MCP_CONTROL_HW_RST,
+		     CDNS_MCP_CONTROL_HW_RST);
+
+	/* enable bus operations with clock and data */
+	cdns_updatel(cdns, CDNS_MCP_CONFIG,
+		     CDNS_MCP_CONFIG_OP,
+		     CDNS_MCP_CONFIG_OP_NORMAL);
+
+	/* commit changes */
+	return cdns_update_config(cdns);
+}
+EXPORT_SYMBOL(sdw_cdns_exit_reset);
+
+/**
+ * sdw_cdns_enable_interrupt() - Enable SDW interrupts and update config
+ * @cdns: Cadence instance
+ */
+int sdw_cdns_enable_interrupt(struct sdw_cdns *cdns)
 {
 	u32 mask;
 
@@ -784,24 +831,8 @@
 
 	cdns_writel(cdns, CDNS_MCP_INTMASK, mask);
 
-	return 0;
-}
-
-/**
- * sdw_cdns_enable_interrupt() - Enable SDW interrupts and update config
- * @cdns: Cadence instance
- */
-int sdw_cdns_enable_interrupt(struct sdw_cdns *cdns)
-{
-	int ret;
-
-	_cdns_enable_interrupt(cdns);
-	ret = cdns_clear_bit(cdns, CDNS_MCP_CONFIG_UPDATE,
-			     CDNS_MCP_CONFIG_UPDATE_BIT);
-	if (ret < 0)
-		dev_err(cdns->dev, "Config update timedout\n");
-
-	return ret;
+	/* commit changes */
+	return cdns_update_config(cdns);
 }
 EXPORT_SYMBOL(sdw_cdns_enable_interrupt);
 
@@ -975,6 +1006,10 @@
 	cdns_writel(cdns, CDNS_MCP_SSP_CTRL0, CDNS_DEFAULT_SSP_INTERVAL);
 	cdns_writel(cdns, CDNS_MCP_SSP_CTRL1, CDNS_DEFAULT_SSP_INTERVAL);
 
+	/* flush command FIFOs */
+	cdns_updatel(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_CMD_RST,
+		     CDNS_MCP_CONTROL_CMD_RST);
+
 	/* Set cmd accept mode */
 	cdns_updatel(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_CMD_ACCEPT,
 		     CDNS_MCP_CONTROL_CMD_ACCEPT);
@@ -997,13 +1032,10 @@
 	/* Set cmd mode for Tx and Rx cmds */
 	val &= ~CDNS_MCP_CONFIG_CMD;
 
-	/* Set operation to normal */
-	val &= ~CDNS_MCP_CONFIG_OP;
-	val |= CDNS_MCP_CONFIG_OP_NORMAL;
-
 	cdns_writel(cdns, CDNS_MCP_CONFIG, val);
 
-	return 0;
+	/* commit changes */
+	return cdns_update_config(cdns);
 }
 EXPORT_SYMBOL(sdw_cdns_init);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soundwire/cadence_master.h
+++ linux-gkeop-5.4-5.4.0/drivers/soundwire/cadence_master.h
@@ -161,6 +161,7 @@
 int sdw_cdns_init(struct sdw_cdns *cdns);
 int sdw_cdns_pdi_init(struct sdw_cdns *cdns,
 		      struct sdw_cdns_stream_config config);
+int sdw_cdns_exit_reset(struct sdw_cdns *cdns);
 int sdw_cdns_enable_interrupt(struct sdw_cdns *cdns);
 
 #ifdef CONFIG_DEBUG_FS
--- linux-gkeop-5.4-5.4.0.orig/drivers/soundwire/intel.c
+++ linux-gkeop-5.4-5.4.0/drivers/soundwire/intel.c
@@ -479,7 +479,10 @@
 	unsigned int link_id = sdw->instance;
 	int pdi_conf = 0;
 
-	pdi->intel_alh_id = (link_id * 16) + pdi->num + 5;
+	/* the Bulk and PCM streams are not contiguous */
+	pdi->intel_alh_id = (link_id * 16) + pdi->num + 3;
+	if (pdi->num >= 2)
+		pdi->intel_alh_id += 2;
 
 	/*
 	 * Program stream parameters to stream SHIM register
@@ -508,7 +511,10 @@
 	unsigned int link_id = sdw->instance;
 	unsigned int conf;
 
-	pdi->intel_alh_id = (link_id * 16) + pdi->num + 5;
+	/* the Bulk and PCM streams are not contiguous */
+	pdi->intel_alh_id = (link_id * 16) + pdi->num + 3;
+	if (pdi->num >= 2)
+		pdi->intel_alh_id += 2;
 
 	/* Program Stream config ALH register */
 	conf = intel_readl(alh, SDW_ALH_STRMZCFG(pdi->intel_alh_id));
@@ -836,8 +842,9 @@
 
 	 /* TODO: Read supported rates/formats from hardware */
 	for (i = off; i < (off + num); i++) {
-		dais[i].name = kasprintf(GFP_KERNEL, "SDW%d Pin%d",
-					 cdns->instance, i);
+		dais[i].name = devm_kasprintf(cdns->dev, GFP_KERNEL,
+					      "SDW%d Pin%d",
+					      cdns->instance, i);
 		if (!dais[i].name)
 			return -ENOMEM;
 
@@ -1043,8 +1050,6 @@
 	if (ret)
 		goto err_init;
 
-	ret = sdw_cdns_enable_interrupt(&sdw->cdns);
-
 	/* Read the PDI config and initialize cadence PDI */
 	intel_pdi_init(sdw, &config);
 	ret = sdw_cdns_pdi_init(&sdw->cdns, config);
@@ -1062,6 +1067,18 @@
 		goto err_init;
 	}
 
+	ret = sdw_cdns_enable_interrupt(&sdw->cdns);
+	if (ret < 0) {
+		dev_err(sdw->cdns.dev, "cannot enable interrupts\n");
+		goto err_init;
+	}
+
+	ret = sdw_cdns_exit_reset(&sdw->cdns);
+	if (ret < 0) {
+		dev_err(sdw->cdns.dev, "unable to exit bus reset sequence\n");
+		goto err_init;
+	}
+
 	/* Register DAIs */
 	ret = intel_register_dai(sdw);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/soundwire/slave.c
+++ linux-gkeop-5.4-5.4.0/drivers/soundwire/slave.c
@@ -57,6 +57,8 @@
 		list_del(&slave->node);
 		mutex_unlock(&bus->bus_lock);
 		put_device(&slave->dev);
+
+		return ret;
 	}
 	sdw_slave_debugfs_init(slave);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/soundwire/stream.c
+++ linux-gkeop-5.4-5.4.0/drivers/soundwire/stream.c
@@ -702,6 +702,7 @@
 	kfree(wbuf);
 error_1:
 	kfree(wr_msg);
+	bus->defer_msg.msg = NULL;
 	return ret;
 }
 
@@ -825,9 +826,10 @@
 error:
 	list_for_each_entry(m_rt, &stream->master_list, stream_node) {
 		bus = m_rt->bus;
-
-		kfree(bus->defer_msg.msg->buf);
-		kfree(bus->defer_msg.msg);
+		if (bus->defer_msg.msg) {
+			kfree(bus->defer_msg.msg->buf);
+			kfree(bus->defer_msg.msg);
+		}
 	}
 
 msg_unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/spi/Kconfig
@@ -280,6 +280,15 @@
 	  This controller does not support generic SPI messages. It only
 	  supports the high-level SPI memory interface.
 
+config SPI_HISI_SFC_V3XX
+	tristate "HiSilicon SPI-NOR Flash Controller for Hi16XX chipsets"
+	depends on (ARM64 && ACPI) || COMPILE_TEST
+	depends on HAS_IOMEM
+	select CONFIG_MTD_SPI_NOR
+	help
+	  This enables support for HiSilicon v3xx SPI-NOR flash controller
+	  found in hi16xx chipsets.
+
 config SPI_NXP_FLEXSPI
 	tristate "NXP Flex SPI controller"
 	depends on ARCH_LAYERSCAPE || HAS_IOMEM
@@ -944,4 +953,7 @@
 
 endif # SPI_SLAVE
 
+config SPI_DYNAMIC
+	def_bool ACPI || OF_DYNAMIC || SPI_SLAVE
+
 endif # SPI
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/spi/Makefile
@@ -48,6 +48,7 @@
 obj-$(CONFIG_SPI_FSL_QUADSPI)		+= spi-fsl-qspi.o
 obj-$(CONFIG_SPI_FSL_SPI)		+= spi-fsl-spi.o
 obj-$(CONFIG_SPI_GPIO)			+= spi-gpio.o
+obj-$(CONFIG_SPI_HISI_SFC_V3XX)		+= spi-hisi-sfc-v3xx.o
 obj-$(CONFIG_SPI_IMG_SPFI)		+= spi-img-spfi.o
 obj-$(CONFIG_SPI_IMX)			+= spi-imx.o
 obj-$(CONFIG_SPI_LANTIQ_SSC)		+= spi-lantiq-ssc.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/atmel-quadspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/atmel-quadspi.c
@@ -149,6 +149,7 @@
 	struct clk		*qspick;
 	struct platform_device	*pdev;
 	const struct atmel_qspi_caps *caps;
+	resource_size_t		mmap_size;
 	u32			pending;
 	u32			mr;
 	u32			scr;
@@ -283,10 +284,14 @@
 	if (dummy_cycles)
 		ifr |= QSPI_IFR_NBDUM(dummy_cycles);
 
-	/* Set data enable */
-	if (op->data.nbytes)
+	/* Set data enable and data transfer type. */
+	if (op->data.nbytes) {
 		ifr |= QSPI_IFR_DATAEN;
 
+		if (op->addr.nbytes)
+			ifr |= QSPI_IFR_TFRTYP_MEM;
+	}
+
 	/*
 	 * If the QSPI controller is set in regular SPI mode, set it in
 	 * Serial Memory Mode (SMM).
@@ -311,7 +316,7 @@
 			writel_relaxed(icr, aq->regs + QSPI_WICR);
 		writel_relaxed(ifr, aq->regs + QSPI_IFR);
 	} else {
-		if (op->data.dir == SPI_MEM_DATA_OUT)
+		if (op->data.nbytes && op->data.dir == SPI_MEM_DATA_OUT)
 			ifr |= QSPI_IFR_SAMA5D2_WRITE_TRSFR;
 
 		/* Set QSPI Instruction Frame registers */
@@ -329,6 +334,14 @@
 	u32 sr, offset;
 	int err;
 
+	/*
+	 * Check if the address exceeds the MMIO window size. An improvement
+	 * would be to add support for regular SPI mode and fall back to it
+	 * when the flash memories overrun the controller's memory space.
+	 */
+	if (op->addr.val + op->data.nbytes > aq->mmap_size)
+		return -ENOTSUPP;
+
 	err = atmel_qspi_set_cfg(aq, op, &offset);
 	if (err)
 		return err;
@@ -445,7 +458,7 @@
 	struct resource *res;
 	int irq, err = 0;
 
-	ctrl = spi_alloc_master(&pdev->dev, sizeof(*aq));
+	ctrl = devm_spi_alloc_master(&pdev->dev, sizeof(*aq));
 	if (!ctrl)
 		return -ENOMEM;
 
@@ -467,8 +480,7 @@
 	aq->regs = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(aq->regs)) {
 		dev_err(&pdev->dev, "missing registers\n");
-		err = PTR_ERR(aq->regs);
-		goto exit;
+		return PTR_ERR(aq->regs);
 	}
 
 	/* Map the AHB memory */
@@ -476,10 +488,11 @@
 	aq->mem = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(aq->mem)) {
 		dev_err(&pdev->dev, "missing AHB memory\n");
-		err = PTR_ERR(aq->mem);
-		goto exit;
+		return PTR_ERR(aq->mem);
 	}
 
+	aq->mmap_size = resource_size(res);
+
 	/* Get the peripheral clock */
 	aq->pclk = devm_clk_get(&pdev->dev, "pclk");
 	if (IS_ERR(aq->pclk))
@@ -487,22 +500,21 @@
 
 	if (IS_ERR(aq->pclk)) {
 		dev_err(&pdev->dev, "missing peripheral clock\n");
-		err = PTR_ERR(aq->pclk);
-		goto exit;
+		return PTR_ERR(aq->pclk);
 	}
 
 	/* Enable the peripheral clock */
 	err = clk_prepare_enable(aq->pclk);
 	if (err) {
 		dev_err(&pdev->dev, "failed to enable the peripheral clock\n");
-		goto exit;
+		return err;
 	}
 
 	aq->caps = of_device_get_match_data(&pdev->dev);
 	if (!aq->caps) {
 		dev_err(&pdev->dev, "Could not retrieve QSPI caps\n");
 		err = -EINVAL;
-		goto exit;
+		goto disable_pclk;
 	}
 
 	if (aq->caps->has_qspick) {
@@ -546,8 +558,6 @@
 	clk_disable_unprepare(aq->qspick);
 disable_pclk:
 	clk_disable_unprepare(aq->pclk);
-exit:
-	spi_controller_put(ctrl);
 
 	return err;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-atmel.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-atmel.c
@@ -302,7 +302,6 @@
 	bool			use_cs_gpios;
 
 	bool			keep_cs;
-	bool			cs_active;
 
 	u32			fifo_size;
 };
@@ -1183,10 +1182,8 @@
 	as = spi_master_get_devdata(spi->master);
 
 	/* see notes above re chipselect */
-	if (!atmel_spi_is_v2(as)
-			&& spi->chip_select == 0
-			&& (spi->mode & SPI_CS_HIGH)) {
-		dev_dbg(&spi->dev, "setup: can't be active-high\n");
+	if (!as->use_cs_gpios && (spi->mode & SPI_CS_HIGH)) {
+		dev_warn(&spi->dev, "setup: non GPIO CS can't be active-high\n");
 		return -EINVAL;
 	}
 
@@ -1376,11 +1373,9 @@
 				 &msg->transfers)) {
 			as->keep_cs = true;
 		} else {
-			as->cs_active = !as->cs_active;
-			if (as->cs_active)
-				cs_activate(as, msg->spi);
-			else
-				cs_deactivate(as, msg->spi);
+			cs_deactivate(as, msg->spi);
+			udelay(10);
+			cs_activate(as, msg->spi);
 		}
 	}
 
@@ -1403,7 +1398,6 @@
 	atmel_spi_lock(as);
 	cs_activate(as, spi);
 
-	as->cs_active = true;
 	as->keep_cs = false;
 
 	msg->status = 0;
@@ -1575,7 +1569,7 @@
 		if (ret == 0) {
 			as->use_dma = true;
 		} else if (ret == -EPROBE_DEFER) {
-			return ret;
+			goto out_unmap_regs;
 		}
 	} else if (as->caps.has_pdc_support) {
 		as->use_pdc = true;
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-bcm-qspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-bcm-qspi.c
@@ -670,7 +670,7 @@
 			if (buf)
 				buf[tp.byte] = read_rxram_slot_u8(qspi, slot);
 			dev_dbg(&qspi->pdev->dev, "RD %02x\n",
-				buf ? buf[tp.byte] : 0xff);
+				buf ? buf[tp.byte] : 0x0);
 		} else {
 			u16 *buf = tp.trans->rx_buf;
 
@@ -678,7 +678,7 @@
 				buf[tp.byte / 2] = read_rxram_slot_u16(qspi,
 								      slot);
 			dev_dbg(&qspi->pdev->dev, "RD %04x\n",
-				buf ? buf[tp.byte] : 0xffff);
+				buf ? buf[tp.byte / 2] : 0x0);
 		}
 
 		update_qspi_trans_byte_count(qspi, &tp,
@@ -733,13 +733,13 @@
 	while (!tstatus && slot < MSPI_NUM_CDRAM) {
 		if (tp.trans->bits_per_word <= 8) {
 			const u8 *buf = tp.trans->tx_buf;
-			u8 val = buf ? buf[tp.byte] : 0xff;
+			u8 val = buf ? buf[tp.byte] : 0x00;
 
 			write_txram_slot_u8(qspi, slot, val);
 			dev_dbg(&qspi->pdev->dev, "WR %02x\n", val);
 		} else {
 			const u16 *buf = tp.trans->tx_buf;
-			u16 val = buf ? buf[tp.byte / 2] : 0xffff;
+			u16 val = buf ? buf[tp.byte / 2] : 0x0000;
 
 			write_txram_slot_u16(qspi, slot, val);
 			dev_dbg(&qspi->pdev->dev, "WR %04x\n", val);
@@ -1213,13 +1213,18 @@
 	if (!of_match_node(bcm_qspi_of_match, dev->of_node))
 		return -ENODEV;
 
-	master = spi_alloc_master(dev, sizeof(struct bcm_qspi));
+	master = devm_spi_alloc_master(dev, sizeof(struct bcm_qspi));
 	if (!master) {
 		dev_err(dev, "error allocating spi_master\n");
 		return -ENOMEM;
 	}
 
 	qspi = spi_master_get_devdata(master);
+
+	qspi->clk = devm_clk_get_optional(&pdev->dev, NULL);
+	if (IS_ERR(qspi->clk))
+		return PTR_ERR(qspi->clk);
+
 	qspi->pdev = pdev;
 	qspi->trans_pos.trans = NULL;
 	qspi->trans_pos.byte = 0;
@@ -1247,21 +1252,17 @@
 
 	if (res) {
 		qspi->base[MSPI]  = devm_ioremap_resource(dev, res);
-		if (IS_ERR(qspi->base[MSPI])) {
-			ret = PTR_ERR(qspi->base[MSPI]);
-			goto qspi_resource_err;
-		}
+		if (IS_ERR(qspi->base[MSPI]))
+			return PTR_ERR(qspi->base[MSPI]);
 	} else {
-		goto qspi_resource_err;
+		return 0;
 	}
 
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "bspi");
 	if (res) {
 		qspi->base[BSPI]  = devm_ioremap_resource(dev, res);
-		if (IS_ERR(qspi->base[BSPI])) {
-			ret = PTR_ERR(qspi->base[BSPI]);
-			goto qspi_resource_err;
-		}
+		if (IS_ERR(qspi->base[BSPI]))
+			return PTR_ERR(qspi->base[BSPI]);
 		qspi->bspi_mode = true;
 	} else {
 		qspi->bspi_mode = false;
@@ -1272,18 +1273,14 @@
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cs_reg");
 	if (res) {
 		qspi->base[CHIP_SELECT]  = devm_ioremap_resource(dev, res);
-		if (IS_ERR(qspi->base[CHIP_SELECT])) {
-			ret = PTR_ERR(qspi->base[CHIP_SELECT]);
-			goto qspi_resource_err;
-		}
+		if (IS_ERR(qspi->base[CHIP_SELECT]))
+			return PTR_ERR(qspi->base[CHIP_SELECT]);
 	}
 
 	qspi->dev_ids = kcalloc(num_irqs, sizeof(struct bcm_qspi_dev_id),
 				GFP_KERNEL);
-	if (!qspi->dev_ids) {
-		ret = -ENOMEM;
-		goto qspi_resource_err;
-	}
+	if (!qspi->dev_ids)
+		return -ENOMEM;
 
 	for (val = 0; val < num_irqs; val++) {
 		irq = -1;
@@ -1332,13 +1329,6 @@
 		qspi->soc_intc = NULL;
 	}
 
-	qspi->clk = devm_clk_get(&pdev->dev, NULL);
-	if (IS_ERR(qspi->clk)) {
-		dev_warn(dev, "unable to get clock\n");
-		ret = PTR_ERR(qspi->clk);
-		goto qspi_probe_err;
-	}
-
 	ret = clk_prepare_enable(qspi->clk);
 	if (ret) {
 		dev_err(dev, "failed to prepare clock\n");
@@ -1359,7 +1349,7 @@
 	qspi->xfer_mode.addrlen = -1;
 	qspi->xfer_mode.hp = -1;
 
-	ret = devm_spi_register_master(&pdev->dev, master);
+	ret = spi_register_master(master);
 	if (ret < 0) {
 		dev_err(dev, "can't register master\n");
 		goto qspi_reg_err;
@@ -1372,8 +1362,6 @@
 	clk_disable_unprepare(qspi->clk);
 qspi_probe_err:
 	kfree(qspi->dev_ids);
-qspi_resource_err:
-	spi_master_put(master);
 	return ret;
 }
 /* probe function to be called by SoC specific platform driver probe */
@@ -1383,10 +1371,10 @@
 {
 	struct bcm_qspi *qspi = platform_get_drvdata(pdev);
 
+	spi_unregister_master(qspi->master);
 	bcm_qspi_hw_uninit(qspi);
 	clk_disable_unprepare(qspi->clk);
 	kfree(qspi->dev_ids);
-	spi_unregister_master(qspi->master);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-bcm2835.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-bcm2835.c
@@ -1179,7 +1179,6 @@
 	struct spi_controller *ctlr = spi->controller;
 	struct bcm2835_spi *bs = spi_controller_get_devdata(ctlr);
 	struct gpio_chip *chip;
-	enum gpio_lookup_flags lflags;
 	u32 cs;
 
 	/*
@@ -1245,21 +1244,9 @@
 	if (!chip)
 		return 0;
 
-	/*
-	 * Retrieve the corresponding GPIO line used for CS.
-	 * The inversion semantics will be handled by the GPIO core
-	 * code, so we pass GPIOS_OUT_LOW for "unasserted" and
-	 * the correct flag for inversion semantics. The SPI_CS_HIGH
-	 * on spi->mode cannot be checked for polarity in this case
-	 * as the flag use_gpio_descriptors enforces SPI_CS_HIGH.
-	 */
-	if (of_property_read_bool(spi->dev.of_node, "spi-cs-high"))
-		lflags = GPIO_ACTIVE_HIGH;
-	else
-		lflags = GPIO_ACTIVE_LOW;
 	spi->cs_gpiod = gpiochip_request_own_desc(chip, 8 - spi->chip_select,
 						  DRV_NAME,
-						  lflags,
+						  GPIO_LOOKUP_FLAGS_DEFAULT,
 						  GPIOD_OUT_LOW);
 	if (IS_ERR(spi->cs_gpiod))
 		return PTR_ERR(spi->cs_gpiod);
@@ -1277,7 +1264,7 @@
 	struct bcm2835_spi *bs;
 	int err;
 
-	ctlr = spi_alloc_master(&pdev->dev, ALIGN(sizeof(*bs),
+	ctlr = devm_spi_alloc_master(&pdev->dev, ALIGN(sizeof(*bs),
 						  dma_get_cache_alignment()));
 	if (!ctlr)
 		return -ENOMEM;
@@ -1297,23 +1284,19 @@
 	bs = spi_controller_get_devdata(ctlr);
 
 	bs->regs = devm_platform_ioremap_resource(pdev, 0);
-	if (IS_ERR(bs->regs)) {
-		err = PTR_ERR(bs->regs);
-		goto out_controller_put;
-	}
+	if (IS_ERR(bs->regs))
+		return PTR_ERR(bs->regs);
 
 	bs->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(bs->clk)) {
 		err = PTR_ERR(bs->clk);
 		dev_err(&pdev->dev, "could not get clk: %d\n", err);
-		goto out_controller_put;
+		return err;
 	}
 
 	bs->irq = platform_get_irq(pdev, 0);
-	if (bs->irq <= 0) {
-		err = bs->irq ? bs->irq : -ENODEV;
-		goto out_controller_put;
-	}
+	if (bs->irq <= 0)
+		return bs->irq ? bs->irq : -ENODEV;
 
 	clk_prepare_enable(bs->clk);
 
@@ -1327,24 +1310,23 @@
 			       dev_name(&pdev->dev), ctlr);
 	if (err) {
 		dev_err(&pdev->dev, "could not request IRQ: %d\n", err);
-		goto out_clk_disable;
+		goto out_dma_release;
 	}
 
-	err = devm_spi_register_controller(&pdev->dev, ctlr);
+	err = spi_register_controller(ctlr);
 	if (err) {
 		dev_err(&pdev->dev, "could not register SPI controller: %d\n",
 			err);
-		goto out_clk_disable;
+		goto out_dma_release;
 	}
 
 	bcm2835_debugfs_create(bs, dev_name(&pdev->dev));
 
 	return 0;
 
-out_clk_disable:
+out_dma_release:
+	bcm2835_dma_release(ctlr, bs);
 	clk_disable_unprepare(bs->clk);
-out_controller_put:
-	spi_controller_put(ctlr);
 	return err;
 }
 
@@ -1355,6 +1337,8 @@
 
 	bcm2835_debugfs_remove(bs);
 
+	spi_unregister_controller(ctlr);
+
 	/* Clear FIFOs, and disable the HW block */
 	bcm2835_wr(bs, BCM2835_SPI_CS,
 		   BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-bcm2835aux.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-bcm2835aux.c
@@ -494,7 +494,7 @@
 	unsigned long clk_hz;
 	int err;
 
-	master = spi_alloc_master(&pdev->dev, sizeof(*bs));
+	master = devm_spi_alloc_master(&pdev->dev, sizeof(*bs));
 	if (!master)
 		return -ENOMEM;
 
@@ -524,29 +524,25 @@
 
 	/* the main area */
 	bs->regs = devm_platform_ioremap_resource(pdev, 0);
-	if (IS_ERR(bs->regs)) {
-		err = PTR_ERR(bs->regs);
-		goto out_master_put;
-	}
+	if (IS_ERR(bs->regs))
+		return PTR_ERR(bs->regs);
 
 	bs->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(bs->clk)) {
 		err = PTR_ERR(bs->clk);
 		dev_err(&pdev->dev, "could not get clk: %d\n", err);
-		goto out_master_put;
+		return err;
 	}
 
 	bs->irq = platform_get_irq(pdev, 0);
-	if (bs->irq <= 0) {
-		err = bs->irq ? bs->irq : -ENODEV;
-		goto out_master_put;
-	}
+	if (bs->irq <= 0)
+		return bs->irq ? bs->irq : -ENODEV;
 
 	/* this also enables the HW block */
 	err = clk_prepare_enable(bs->clk);
 	if (err) {
 		dev_err(&pdev->dev, "could not prepare clock: %d\n", err);
-		goto out_master_put;
+		return err;
 	}
 
 	/* just checking if the clock returns a sane value */
@@ -569,7 +565,7 @@
 		goto out_clk_disable;
 	}
 
-	err = devm_spi_register_master(&pdev->dev, master);
+	err = spi_register_master(master);
 	if (err) {
 		dev_err(&pdev->dev, "could not register SPI master: %d\n", err);
 		goto out_clk_disable;
@@ -581,8 +577,6 @@
 
 out_clk_disable:
 	clk_disable_unprepare(bs->clk);
-out_master_put:
-	spi_master_put(master);
 	return err;
 }
 
@@ -593,6 +587,8 @@
 
 	bcm2835aux_debugfs_remove(bs);
 
+	spi_unregister_master(master);
+
 	bcm2835aux_spi_reset_hw(bs);
 
 	/* disable the HW block by releasing the clock */
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-bcm63xx-hsspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-bcm63xx-hsspi.c
@@ -367,7 +367,6 @@
 			goto out_disable_clk;
 
 		rate = clk_get_rate(pll_clk);
-		clk_disable_unprepare(pll_clk);
 		if (!rate) {
 			ret = -EINVAL;
 			goto out_disable_pll_clk;
@@ -484,8 +483,10 @@
 
 	if (bs->pll_clk) {
 		ret = clk_prepare_enable(bs->pll_clk);
-		if (ret)
+		if (ret) {
+			clk_disable_unprepare(bs->clk);
 			return ret;
+		}
 	}
 
 	spi_master_resume(master);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-cadence.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-cadence.c
@@ -115,6 +115,7 @@
 	void __iomem *regs;
 	struct clk *ref_clk;
 	struct clk *pclk;
+	unsigned int clk_rate;
 	u32 speed_hz;
 	const u8 *txbuf;
 	u8 *rxbuf;
@@ -168,16 +169,16 @@
 /**
  * cdns_spi_chipselect - Select or deselect the chip select line
  * @spi:	Pointer to the spi_device structure
- * @enable:	Select (1) or deselect (0) the chip select line
+ * @is_high:	Select(0) or deselect (1) the chip select line
  */
-static void cdns_spi_chipselect(struct spi_device *spi, bool enable)
+static void cdns_spi_chipselect(struct spi_device *spi, bool is_high)
 {
 	struct cdns_spi *xspi = spi_master_get_devdata(spi->master);
 	u32 ctrl_reg;
 
 	ctrl_reg = cdns_spi_read(xspi, CDNS_SPI_CR);
 
-	if (!enable) {
+	if (is_high) {
 		/* Deselect the slave */
 		ctrl_reg |= CDNS_SPI_CR_SSCTRL;
 	} else {
@@ -250,7 +251,7 @@
 	u32 ctrl_reg, baud_rate_val;
 	unsigned long frequency;
 
-	frequency = clk_get_rate(xspi->ref_clk);
+	frequency = xspi->clk_rate;
 
 	ctrl_reg = cdns_spi_read(xspi, CDNS_SPI_CR);
 
@@ -558,8 +559,9 @@
 	master->auto_runtime_pm = true;
 	master->mode_bits = SPI_CPOL | SPI_CPHA;
 
+	xspi->clk_rate = clk_get_rate(xspi->ref_clk);
 	/* Set to default valid value */
-	master->max_speed_hz = clk_get_rate(xspi->ref_clk) / 4;
+	master->max_speed_hz = xspi->clk_rate / 4;
 	xspi->speed_hz = master->max_speed_hz;
 
 	master->bits_per_word_mask = SPI_BPW_MASK(8);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-cavium-thunderx.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-cavium-thunderx.c
@@ -82,6 +82,7 @@
 
 error:
 	clk_disable_unprepare(p->clk);
+	pci_release_regions(pdev);
 	spi_master_put(master);
 	return ret;
 }
@@ -96,6 +97,7 @@
 		return;
 
 	clk_disable_unprepare(p->clk);
+	pci_release_regions(pdev);
 	/* Put everything in a known state. */
 	writeq(0, p->register_base + OCTEON_SPI_CFG(p));
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-davinci.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-davinci.c
@@ -1040,13 +1040,13 @@
 	spi_bitbang_stop(&dspi->bitbang);
 
 	clk_disable_unprepare(dspi->clk);
-	spi_master_put(master);
 
 	if (dspi->dma_rx) {
 		dma_release_channel(dspi->dma_rx);
 		dma_release_channel(dspi->dma_tx);
 	}
 
+	spi_master_put(master);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-dw-mid.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-dw-mid.c
@@ -147,6 +147,7 @@
 	if (!xfer->tx_buf)
 		return NULL;
 
+	memset(&txconf, 0, sizeof(txconf));
 	txconf.direction = DMA_MEM_TO_DEV;
 	txconf.dst_addr = dws->dma_addr;
 	txconf.dst_maxburst = 16;
@@ -193,6 +194,7 @@
 	if (!xfer->rx_buf)
 		return NULL;
 
+	memset(&rxconf, 0, sizeof(rxconf));
 	rxconf.direction = DMA_DEV_TO_MEM;
 	rxconf.src_addr = dws->dma_addr;
 	rxconf.src_maxburst = 16;
@@ -218,19 +220,23 @@
 
 static int mid_spi_dma_setup(struct dw_spi *dws, struct spi_transfer *xfer)
 {
-	u16 dma_ctrl = 0;
+	u16 imr = 0, dma_ctrl = 0;
 
 	dw_writel(dws, DW_SPI_DMARDLR, 0xf);
 	dw_writel(dws, DW_SPI_DMATDLR, 0x10);
 
-	if (xfer->tx_buf)
+	if (xfer->tx_buf) {
 		dma_ctrl |= SPI_DMA_TDMAE;
-	if (xfer->rx_buf)
+		imr |= SPI_INT_TXOI;
+	}
+	if (xfer->rx_buf) {
 		dma_ctrl |= SPI_DMA_RDMAE;
+		imr |= SPI_INT_RXUI | SPI_INT_RXOI;
+	}
 	dw_writel(dws, DW_SPI_DMACR, dma_ctrl);
 
 	/* Set the interrupt mask */
-	spi_umask_intr(dws, SPI_INT_TXOI | SPI_INT_RXUI | SPI_INT_RXOI);
+	spi_umask_intr(dws, imr);
 
 	dws->transfer_handler = dma_transfer;
 
@@ -260,7 +266,7 @@
 		dma_async_issue_pending(dws->txchan);
 	}
 
-	return 0;
+	return 1;
 }
 
 static void mid_spi_dma_stop(struct dw_spi *dws)
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-dw.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-dw.c
@@ -128,11 +128,20 @@
 {
 	struct dw_spi *dws = spi_controller_get_devdata(spi->controller);
 	struct chip_data *chip = spi_get_ctldata(spi);
+	bool cs_high = !!(spi->mode & SPI_CS_HIGH);
 
+	/* Chip select logic is inverted from spi_set_cs() */
 	if (chip && chip->cs_control)
-		chip->cs_control(enable);
+		chip->cs_control(!enable);
 
-	if (enable)
+	/*
+	 * DW SPI controller demands any native CS being set in order to
+	 * proceed with data transfer. So in order to activate the SPI
+	 * communications we must set a corresponding bit in the Slave
+	 * Enable register no matter whether the SPI core is configured to
+	 * support active-high or active-low CS level.
+	 */
+	if (cs_high == enable)
 		dw_writel(dws, DW_SPI_SER, BIT(spi->chip_select));
 	else if (dws->cs_override)
 		dw_writel(dws, DW_SPI_SER, 0);
@@ -171,9 +180,11 @@
 
 static void dw_writer(struct dw_spi *dws)
 {
-	u32 max = tx_max(dws);
+	u32 max;
 	u16 txw = 0;
 
+	spin_lock(&dws->buf_lock);
+	max = tx_max(dws);
 	while (max--) {
 		/* Set the tx word if the transfer's original "tx" is not null */
 		if (dws->tx_end - dws->len) {
@@ -185,13 +196,16 @@
 		dw_write_io_reg(dws, DW_SPI_DR, txw);
 		dws->tx += dws->n_bytes;
 	}
+	spin_unlock(&dws->buf_lock);
 }
 
 static void dw_reader(struct dw_spi *dws)
 {
-	u32 max = rx_max(dws);
+	u32 max;
 	u16 rxw;
 
+	spin_lock(&dws->buf_lock);
+	max = rx_max(dws);
 	while (max--) {
 		rxw = dw_read_io_reg(dws, DW_SPI_DR);
 		/* Care rx only if the transfer's original "rx" is not null */
@@ -203,6 +217,7 @@
 		}
 		dws->rx += dws->n_bytes;
 	}
+	spin_unlock(&dws->buf_lock);
 }
 
 static void int_error_stop(struct dw_spi *dws, const char *msg)
@@ -275,18 +290,23 @@
 {
 	struct dw_spi *dws = spi_controller_get_devdata(master);
 	struct chip_data *chip = spi_get_ctldata(spi);
+	unsigned long flags;
 	u8 imask = 0;
 	u16 txlevel = 0;
 	u32 cr0;
 	int ret;
 
 	dws->dma_mapped = 0;
-
+	spin_lock_irqsave(&dws->buf_lock, flags);
 	dws->tx = (void *)transfer->tx_buf;
 	dws->tx_end = dws->tx + transfer->len;
 	dws->rx = transfer->rx_buf;
 	dws->rx_end = dws->rx + transfer->len;
 	dws->len = transfer->len;
+	spin_unlock_irqrestore(&dws->buf_lock, flags);
+
+	/* Ensure dw->rx and dw->rx_end are visible */
+	smp_mb();
 
 	spi_enable_chip(dws, 0);
 
@@ -308,7 +328,8 @@
 	cr0 = (transfer->bits_per_word - 1)
 		| (chip->type << SPI_FRF_OFFSET)
 		| ((((spi->mode & SPI_CPOL) ? 1 : 0) << SPI_SCOL_OFFSET) |
-			(((spi->mode & SPI_CPHA) ? 1 : 0) << SPI_SCPH_OFFSET))
+			(((spi->mode & SPI_CPHA) ? 1 : 0) << SPI_SCPH_OFFSET) |
+			(((spi->mode & SPI_LOOP) ? 1 : 0) << SPI_SRL_OFFSET))
 		| (chip->tmode << SPI_TMOD_OFFSET);
 
 	/*
@@ -360,11 +381,8 @@
 
 	spi_enable_chip(dws, 1);
 
-	if (dws->dma_mapped) {
-		ret = dws->dma_ops->dma_transfer(dws, transfer);
-		if (ret < 0)
-			return ret;
-	}
+	if (dws->dma_mapped)
+		return dws->dma_ops->dma_transfer(dws, transfer);
 
 	if (chip->poll_mode)
 		return poll_transfer(dws);
@@ -469,6 +487,7 @@
 	dws->type = SSI_MOTO_SPI;
 	dws->dma_inited = 0;
 	dws->dma_addr = (dma_addr_t)(dws->paddr + DW_SPI_DR);
+	spin_lock_init(&dws->buf_lock);
 
 	spi_controller_set_devdata(master, dws);
 
@@ -507,10 +526,11 @@
 			dws->dma_inited = 0;
 		} else {
 			master->can_dma = dws->dma_ops->can_dma;
+			master->flags |= SPI_CONTROLLER_MUST_TX;
 		}
 	}
 
-	ret = devm_spi_register_controller(dev, master);
+	ret = spi_register_controller(master);
 	if (ret) {
 		dev_err(&master->dev, "problem registering spi master\n");
 		goto err_dma_exit;
@@ -534,6 +554,8 @@
 {
 	dw_spi_debugfs_remove(dws);
 
+	spi_unregister_controller(dws->master);
+
 	if (dws->dma_ops && dws->dma_ops->dma_exit)
 		dws->dma_ops->dma_exit(dws);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-dw.h
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-dw.h
@@ -120,6 +120,7 @@
 	size_t			len;
 	void			*tx;
 	void			*tx_end;
+	spinlock_t		buf_lock;
 	void			*rx;
 	void			*rx_end;
 	int			dma_mapped;
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-fsl-dspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-fsl-dspi.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 //
 // Copyright 2013 Freescale Semiconductor, Inc.
+// Copyright 2020 NXP
 //
 // Freescale DSPI driver
 // This file contains a driver for the Freescale DSPI
@@ -33,6 +34,9 @@
 #define SPI_MCR_CLR_TXF			BIT(11)
 #define SPI_MCR_CLR_RXF			BIT(10)
 #define SPI_MCR_XSPI			BIT(3)
+#define SPI_MCR_DIS_TXF			BIT(13)
+#define SPI_MCR_DIS_RXF			BIT(12)
+#define SPI_MCR_HALT			BIT(0)
 
 #define SPI_TCR				0x08
 #define SPI_TCR_GET_TCNT(x)		(((x) & GENMASK(31, 16)) >> 16)
@@ -192,8 +196,7 @@
 	u8					bytes_per_word;
 	const struct fsl_dspi_devtype_data	*devtype_data;
 
-	wait_queue_head_t			waitq;
-	u32					waitflags;
+	struct completion			xfer_done;
 
 	struct fsl_dspi_dma			*dma;
 };
@@ -583,21 +586,14 @@
 	dspi->tx_cmd |= SPI_PUSHR_CMD_CTCNT;
 
 	if (dspi->devtype_data->xspi_mode && dspi->bits_per_word > 16) {
-		/* Write two TX FIFO entries first, and then the corresponding
-		 * CMD FIFO entry.
+		/* Write the CMD FIFO entry first, and then the two
+		 * corresponding TX FIFO entries.
 		 */
 		u32 data = dspi_pop_tx(dspi);
 
-		if (dspi->cur_chip->ctar_val & SPI_CTAR_LSBFE) {
-			/* LSB */
-			tx_fifo_write(dspi, data & 0xFFFF);
-			tx_fifo_write(dspi, data >> 16);
-		} else {
-			/* MSB */
-			tx_fifo_write(dspi, data >> 16);
-			tx_fifo_write(dspi, data & 0xFFFF);
-		}
 		cmd_fifo_write(dspi);
+		tx_fifo_write(dspi, data & 0xFFFF);
+		tx_fifo_write(dspi, data >> 16);
 	} else {
 		/* Write one entry to both TX FIFO and CMD FIFO
 		 * simultaneously.
@@ -710,10 +706,8 @@
 	if (!(spi_sr & (SPI_SR_EOQF | SPI_SR_TCFQF)))
 		return IRQ_NONE;
 
-	if (dspi_rxtx(dspi) == 0) {
-		dspi->waitflags = 1;
-		wake_up_interruptible(&dspi->waitq);
-	}
+	if (dspi_rxtx(dspi) == 0)
+		complete(&dspi->xfer_done);
 
 	return IRQ_HANDLED;
 }
@@ -807,13 +801,9 @@
 				status = dspi_poll(dspi);
 			} while (status == -EINPROGRESS);
 		} else if (trans_mode != DSPI_DMA_MODE) {
-			status = wait_event_interruptible(dspi->waitq,
-							  dspi->waitflags);
-			dspi->waitflags = 0;
+			wait_for_completion(&dspi->xfer_done);
+			reinit_completion(&dspi->xfer_done);
 		}
-		if (status)
-			dev_err(&dspi->pdev->dev,
-				"Waiting for transfer to complete failed!\n");
 
 		if (transfer->delay_usecs)
 			udelay(transfer->delay_usecs);
@@ -915,6 +905,8 @@
 	struct spi_controller *ctlr = dev_get_drvdata(dev);
 	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr);
 
+	if (dspi->irq)
+		disable_irq(dspi->irq);
 	spi_controller_suspend(ctlr);
 	clk_disable_unprepare(dspi->clk);
 
@@ -935,6 +927,8 @@
 	if (ret)
 		return ret;
 	spi_controller_resume(ctlr);
+	if (dspi->irq)
+		enable_irq(dspi->irq);
 
 	return 0;
 }
@@ -1122,21 +1116,21 @@
 		goto poll_mode;
 	}
 
-	ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt,
-			       IRQF_SHARED, pdev->name, dspi);
+	ret = request_threaded_irq(dspi->irq, dspi_interrupt, NULL,
+				   IRQF_SHARED, pdev->name, dspi);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Unable to attach DSPI interrupt\n");
 		goto out_clk_put;
 	}
 
-	init_waitqueue_head(&dspi->waitq);
+	init_completion(&dspi->xfer_done);
 
 poll_mode:
 	if (dspi->devtype_data->trans_mode == DSPI_DMA_MODE) {
 		ret = dspi_request_dma(dspi, res->start);
 		if (ret < 0) {
 			dev_err(&pdev->dev, "can't get dma channels\n");
-			goto out_clk_put;
+			goto out_free_irq;
 		}
 	}
 
@@ -1148,11 +1142,14 @@
 	ret = spi_register_controller(ctlr);
 	if (ret != 0) {
 		dev_err(&pdev->dev, "Problem registering DSPI ctlr\n");
-		goto out_clk_put;
+		goto out_free_irq;
 	}
 
 	return ret;
 
+out_free_irq:
+	if (dspi->irq)
+		free_irq(dspi->irq, dspi);
 out_clk_put:
 	clk_disable_unprepare(dspi->clk);
 out_ctlr_put:
@@ -1167,13 +1164,29 @@
 	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr);
 
 	/* Disconnect from the SPI framework */
+	spi_unregister_controller(dspi->ctlr);
+
+	/* Disable RX and TX */
+	regmap_update_bits(dspi->regmap, SPI_MCR,
+			   SPI_MCR_DIS_TXF | SPI_MCR_DIS_RXF,
+			   SPI_MCR_DIS_TXF | SPI_MCR_DIS_RXF);
+
+	/* Stop Running */
+	regmap_update_bits(dspi->regmap, SPI_MCR, SPI_MCR_HALT, SPI_MCR_HALT);
+
 	dspi_release_dma(dspi);
+	if (dspi->irq)
+		free_irq(dspi->irq, dspi);
 	clk_disable_unprepare(dspi->clk);
-	spi_unregister_controller(dspi->ctlr);
 
 	return 0;
 }
 
+static void dspi_shutdown(struct platform_device *pdev)
+{
+	dspi_remove(pdev);
+}
+
 static struct platform_driver fsl_dspi_driver = {
 	.driver.name		= DRIVER_NAME,
 	.driver.of_match_table	= fsl_dspi_dt_ids,
@@ -1181,6 +1194,7 @@
 	.driver.pm		= &dspi_pm,
 	.probe			= dspi_probe,
 	.remove			= dspi_remove,
+	.shutdown		= dspi_shutdown,
 };
 module_platform_driver(fsl_dspi_driver);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-fsl-espi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-fsl-espi.c
@@ -555,13 +555,14 @@
 static irqreturn_t fsl_espi_irq(s32 irq, void *context_data)
 {
 	struct fsl_espi *espi = context_data;
-	u32 events;
+	u32 events, mask;
 
 	spin_lock(&espi->lock);
 
 	/* Get interrupt events(tx/rx) */
 	events = fsl_espi_read_reg(espi, ESPI_SPIE);
-	if (!events) {
+	mask = fsl_espi_read_reg(espi, ESPI_SPIM);
+	if (!(events & mask)) {
 		spin_unlock(&espi->lock);
 		return IRQ_NONE;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-fsl-lpspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-fsl-lpspi.c
@@ -862,6 +862,22 @@
 	fsl_lpspi->dev = &pdev->dev;
 	fsl_lpspi->is_slave = is_slave;
 
+	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
+	controller->transfer_one = fsl_lpspi_transfer_one;
+	controller->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
+	controller->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
+	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
+	controller->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
+	controller->dev.of_node = pdev->dev.of_node;
+	controller->bus_num = pdev->id;
+	controller->slave_abort = fsl_lpspi_slave_abort;
+
+	ret = devm_spi_register_controller(&pdev->dev, controller);
+	if (ret < 0) {
+		dev_err(&pdev->dev, "spi_register_controller error.\n");
+		goto out_controller_put;
+	}
+
 	if (!fsl_lpspi->is_slave) {
 		for (i = 0; i < controller->num_chipselect; i++) {
 			int cs_gpio = of_get_named_gpio(np, "cs-gpios", i);
@@ -885,16 +901,6 @@
 		controller->prepare_message = fsl_lpspi_prepare_message;
 	}
 
-	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
-	controller->transfer_one = fsl_lpspi_transfer_one;
-	controller->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
-	controller->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
-	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
-	controller->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
-	controller->dev.of_node = pdev->dev.of_node;
-	controller->bus_num = pdev->id;
-	controller->slave_abort = fsl_lpspi_slave_abort;
-
 	init_completion(&fsl_lpspi->xfer_done);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -938,7 +944,7 @@
 	ret = pm_runtime_get_sync(fsl_lpspi->dev);
 	if (ret < 0) {
 		dev_err(fsl_lpspi->dev, "failed to enable clock\n");
-		return ret;
+		goto out_controller_put;
 	}
 
 	temp = readl(fsl_lpspi->base + IMX7ULP_PARAM);
@@ -952,12 +958,6 @@
 	if (ret < 0)
 		dev_err(&pdev->dev, "dma setup error %d, use pio\n", ret);
 
-	ret = devm_spi_register_controller(&pdev->dev, controller);
-	if (ret < 0) {
-		dev_err(&pdev->dev, "spi_register_controller error.\n");
-		goto out_controller_put;
-	}
-
 	return 0;
 
 out_controller_put:
@@ -973,9 +973,6 @@
 				spi_controller_get_devdata(controller);
 
 	pm_runtime_disable(fsl_lpspi->dev);
-
-	spi_master_put(controller);
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-fsl-qspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-fsl-qspi.c
@@ -63,6 +63,11 @@
 #define QUADSPI_IPCR			0x08
 #define QUADSPI_IPCR_SEQID(x)		((x) << 24)
 
+#define QUADSPI_FLSHCR			0x0c
+#define QUADSPI_FLSHCR_TCSS_MASK	GENMASK(3, 0)
+#define QUADSPI_FLSHCR_TCSH_MASK	GENMASK(11, 8)
+#define QUADSPI_FLSHCR_TDH_MASK		GENMASK(17, 16)
+
 #define QUADSPI_BUF3CR			0x1c
 #define QUADSPI_BUF3CR_ALLMST_MASK	BIT(31)
 #define QUADSPI_BUF3CR_ADATSZ(x)	((x) << 8)
@@ -95,6 +100,9 @@
 #define QUADSPI_FR			0x160
 #define QUADSPI_FR_TFF_MASK		BIT(0)
 
+#define QUADSPI_RSER			0x164
+#define QUADSPI_RSER_TFIE		BIT(0)
+
 #define QUADSPI_SPTRCLR			0x16c
 #define QUADSPI_SPTRCLR_IPPTRC		BIT(8)
 #define QUADSPI_SPTRCLR_BFPTRC		BIT(0)
@@ -112,9 +120,6 @@
 #define QUADSPI_LCKER_LOCK		BIT(0)
 #define QUADSPI_LCKER_UNLOCK		BIT(1)
 
-#define QUADSPI_RSER			0x164
-#define QUADSPI_RSER_TFIE		BIT(0)
-
 #define QUADSPI_LUT_BASE		0x310
 #define QUADSPI_LUT_OFFSET		(SEQID_LUT * 4 * 4)
 #define QUADSPI_LUT_REG(idx) \
@@ -181,6 +186,12 @@
  */
 #define QUADSPI_QUIRK_BASE_INTERNAL	BIT(4)
 
+/*
+ * Controller uses TDH bits in register QUADSPI_FLSHCR.
+ * They need to be set in accordance with the DDR/SDR mode.
+ */
+#define QUADSPI_QUIRK_USE_TDH_SETTING	BIT(5)
+
 struct fsl_qspi_devtype_data {
 	unsigned int rxfifo;
 	unsigned int txfifo;
@@ -209,7 +220,8 @@
 	.rxfifo = SZ_128,
 	.txfifo = SZ_512,
 	.ahb_buf_size = SZ_1K,
-	.quirks = QUADSPI_QUIRK_TKT253890 | QUADSPI_QUIRK_4X_INT_CLK,
+	.quirks = QUADSPI_QUIRK_TKT253890 | QUADSPI_QUIRK_4X_INT_CLK |
+		  QUADSPI_QUIRK_USE_TDH_SETTING,
 	.little_endian = true,
 };
 
@@ -217,7 +229,8 @@
 	.rxfifo = SZ_128,
 	.txfifo = SZ_512,
 	.ahb_buf_size = SZ_1K,
-	.quirks = QUADSPI_QUIRK_TKT253890 | QUADSPI_QUIRK_4X_INT_CLK,
+	.quirks = QUADSPI_QUIRK_TKT253890 | QUADSPI_QUIRK_4X_INT_CLK |
+		  QUADSPI_QUIRK_USE_TDH_SETTING,
 	.little_endian = true,
 };
 
@@ -275,6 +288,11 @@
 	return !(q->devtype_data->quirks & QUADSPI_QUIRK_BASE_INTERNAL);
 }
 
+static inline int needs_tdh_setting(struct fsl_qspi *q)
+{
+	return q->devtype_data->quirks & QUADSPI_QUIRK_USE_TDH_SETTING;
+}
+
 /*
  * An IC bug makes it necessary to rearrange the 32-bit data.
  * Later chips, such as IMX6SLX, have fixed this bug.
@@ -380,7 +398,7 @@
 	    op->data.nbytes > q->devtype_data->txfifo)
 		return false;
 
-	return true;
+	return spi_mem_default_supports_op(mem, op);
 }
 
 static void fsl_qspi_prepare_lut(struct fsl_qspi *q,
@@ -710,6 +728,16 @@
 	qspi_writel(q, QUADSPI_MCR_MDIS_MASK | QUADSPI_MCR_RESERVED_MASK,
 		    base + QUADSPI_MCR);
 
+	/*
+	 * Previous boot stages (BootROM, bootloader) might have used DDR
+	 * mode and did not clear the TDH bits. As we currently use SDR mode
+	 * only, clear the TDH bits if necessary.
+	 */
+	if (needs_tdh_setting(q))
+		qspi_writel(q, qspi_readl(q, base + QUADSPI_FLSHCR) &
+			    ~QUADSPI_FLSHCR_TDH_MASK,
+			    base + QUADSPI_FLSHCR);
+
 	reg = qspi_readl(q, base + QUADSPI_SMPR);
 	qspi_writel(q, reg & ~(QUADSPI_SMPR_FSDLY_MASK
 			| QUADSPI_SMPR_FSPHS_MASK
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-fsl-spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-fsl-spi.c
@@ -612,6 +612,7 @@
 	master->setup = fsl_spi_setup;
 	master->cleanup = fsl_spi_cleanup;
 	master->transfer_one_message = fsl_spi_do_one_msg;
+	master->use_gpio_descriptors = true;
 
 	mpc8xxx_spi = spi_master_get_devdata(master);
 	mpc8xxx_spi->max_bits_per_word = 32;
@@ -716,10 +717,11 @@
 	type = fsl_spi_get_type(&ofdev->dev);
 	if (type == TYPE_FSL) {
 		struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
+		bool spisel_boot = false;
 #if IS_ENABLED(CONFIG_FSL_SOC)
 		struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(pdata);
-		bool spisel_boot = of_property_read_bool(np, "fsl,spisel_boot");
 
+		spisel_boot = of_property_read_bool(np, "fsl,spisel_boot");
 		if (spisel_boot) {
 			pinfo->immr_spi_cs = ioremap(get_immrbase() + IMMR_SPI_CS_OFFSET, 4);
 			if (!pinfo->immr_spi_cs) {
@@ -728,17 +730,31 @@
 			}
 		}
 #endif
-
-		pdata->cs_control = fsl_spi_cs_control;
+		/*
+		 * Handle the case where we have one hardwired (always selected)
+		 * device on the first "chipselect". Else we let the core code
+		 * handle any GPIOs or native chip selects and assign the
+		 * appropriate callback for dealing with the CS lines. This isn't
+		 * supported on the GRLIB variant.
+		 */
+		ret = gpiod_count(dev, "cs");
+		if (ret < 0)
+			ret = 0;
+		if (ret == 0 && !spisel_boot) {
+			pdata->max_chipselect = 1;
+		} else {
+			pdata->max_chipselect = ret + spisel_boot;
+			pdata->cs_control = fsl_spi_cs_control;
+		}
 	}
 
 	ret = of_address_to_resource(np, 0, &mem);
 	if (ret)
 		goto err;
 
-	irq = irq_of_parse_and_map(np, 0);
-	if (!irq) {
-		ret = -EINVAL;
+	irq = platform_get_irq(ofdev, 0);
+	if (irq < 0) {
+		ret = irq;
 		goto err;
 	}
 
@@ -751,7 +767,6 @@
 	return 0;
 
 err:
-	irq_dispose_mapping(irq);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-gpio.c
@@ -350,11 +350,6 @@
 	return 0;
 }
 
-static void spi_gpio_put(void *data)
-{
-	spi_master_put(data);
-}
-
 static int spi_gpio_probe(struct platform_device *pdev)
 {
 	int				status;
@@ -366,14 +361,10 @@
 
 	of_id = of_match_device(spi_gpio_dt_ids, &pdev->dev);
 
-	master = spi_alloc_master(dev, sizeof(*spi_gpio));
+	master = devm_spi_alloc_master(dev, sizeof(*spi_gpio));
 	if (!master)
 		return -ENOMEM;
 
-	status = devm_add_action_or_reset(&pdev->dev, spi_gpio_put, master);
-	if (status)
-		return status;
-
 	if (of_id)
 		status = spi_gpio_probe_dt(pdev, master);
 	else
@@ -433,7 +424,7 @@
 	if (status)
 		return status;
 
-	return devm_spi_register_master(&pdev->dev, spi_master_get(master));
+	return devm_spi_register_master(&pdev->dev, master);
 }
 
 MODULE_ALIAS("platform:" DRIVER_NAME);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-hisi-sfc-v3xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-hisi-sfc-v3xx.c
@@ -0,0 +1,381 @@
+// SPDX-License-Identifier: GPL-2.0-only
+//
+// HiSilicon SPI NOR V3XX Flash Controller Driver for hi16xx chipsets
+//
+// Copyright (c) 2019 HiSilicon Technologies Co., Ltd.
+// Author: John Garry <john.garry@huawei.com>
+
+#include <linux/acpi.h>
+#include <linux/bitops.h>
+#include <linux/dmi.h>
+#include <linux/iopoll.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/spi-mem.h>
+
+#define HISI_SFC_V3XX_VERSION (0x1f8)
+
+#define HISI_SFC_V3XX_CMD_CFG (0x300)
+#define HISI_SFC_V3XX_CMD_CFG_DUAL_IN_DUAL_OUT (1 << 17)
+#define HISI_SFC_V3XX_CMD_CFG_DUAL_IO (2 << 17)
+#define HISI_SFC_V3XX_CMD_CFG_FULL_DIO (3 << 17)
+#define HISI_SFC_V3XX_CMD_CFG_QUAD_IN_QUAD_OUT (5 << 17)
+#define HISI_SFC_V3XX_CMD_CFG_QUAD_IO (6 << 17)
+#define HISI_SFC_V3XX_CMD_CFG_FULL_QIO (7 << 17)
+#define HISI_SFC_V3XX_CMD_CFG_DATA_CNT_OFF 9
+#define HISI_SFC_V3XX_CMD_CFG_RW_MSK BIT(8)
+#define HISI_SFC_V3XX_CMD_CFG_DATA_EN_MSK BIT(7)
+#define HISI_SFC_V3XX_CMD_CFG_DUMMY_CNT_OFF 4
+#define HISI_SFC_V3XX_CMD_CFG_ADDR_EN_MSK BIT(3)
+#define HISI_SFC_V3XX_CMD_CFG_CS_SEL_OFF 1
+#define HISI_SFC_V3XX_CMD_CFG_START_MSK BIT(0)
+#define HISI_SFC_V3XX_CMD_INS (0x308)
+#define HISI_SFC_V3XX_CMD_ADDR (0x30c)
+#define HISI_SFC_V3XX_CMD_DATABUF0 (0x400)
+
+struct hisi_sfc_v3xx_host {
+	struct device *dev;
+	void __iomem *regbase;
+	int max_cmd_dword;
+};
+
+#define HISI_SFC_V3XX_WAIT_TIMEOUT_US		1000000
+#define HISI_SFC_V3XX_WAIT_POLL_INTERVAL_US	10
+
+static int hisi_sfc_v3xx_wait_cmd_idle(struct hisi_sfc_v3xx_host *host)
+{
+	u32 reg;
+
+	return readl_poll_timeout(host->regbase + HISI_SFC_V3XX_CMD_CFG, reg,
+				  !(reg & HISI_SFC_V3XX_CMD_CFG_START_MSK),
+				  HISI_SFC_V3XX_WAIT_POLL_INTERVAL_US,
+				  HISI_SFC_V3XX_WAIT_TIMEOUT_US);
+}
+
+static int hisi_sfc_v3xx_adjust_op_size(struct spi_mem *mem,
+					struct spi_mem_op *op)
+{
+	struct spi_device *spi = mem->spi;
+	struct hisi_sfc_v3xx_host *host;
+	uintptr_t addr = (uintptr_t)op->data.buf.in;
+	int max_byte_count;
+
+	host = spi_controller_get_devdata(spi->master);
+
+	max_byte_count = host->max_cmd_dword * 4;
+
+	if (!IS_ALIGNED(addr, 4) && op->data.nbytes >= 4)
+		op->data.nbytes = 4 - (addr % 4);
+	else if (op->data.nbytes > max_byte_count)
+		op->data.nbytes = max_byte_count;
+
+	return 0;
+}
+
+/*
+ * memcpy_{to,from}io doesn't gurantee 32b accesses - which we require for the
+ * DATABUF registers -so use __io{read,write}32_copy when possible. For
+ * trailing bytes, copy them byte-by-byte from the DATABUF register, as we
+ * can't clobber outside the source/dest buffer.
+ *
+ * For efficient data read/write, we try to put any start 32b unaligned data
+ * into a separate transaction in hisi_sfc_v3xx_adjust_op_size().
+ */
+static void hisi_sfc_v3xx_read_databuf(struct hisi_sfc_v3xx_host *host,
+				       u8 *to, unsigned int len)
+{
+	void __iomem *from;
+	int i;
+
+	from = host->regbase + HISI_SFC_V3XX_CMD_DATABUF0;
+
+	if (IS_ALIGNED((uintptr_t)to, 4)) {
+		int words = len / 4;
+
+		__ioread32_copy(to, from, words);
+
+		len -= words * 4;
+		if (len) {
+			u32 val;
+
+			to += words * 4;
+			from += words * 4;
+
+			val = __raw_readl(from);
+
+			for (i = 0; i < len; i++, val >>= 8, to++)
+				*to = (u8)val;
+		}
+	} else {
+		for (i = 0; i < DIV_ROUND_UP(len, 4); i++, from += 4) {
+			u32 val = __raw_readl(from);
+			int j;
+
+			for (j = 0; j < 4 && (j + (i * 4) < len);
+			     to++, val >>= 8, j++)
+				*to = (u8)val;
+		}
+	}
+}
+
+static void hisi_sfc_v3xx_write_databuf(struct hisi_sfc_v3xx_host *host,
+					const u8 *from, unsigned int len)
+{
+	void __iomem *to;
+	int i;
+
+	to = host->regbase + HISI_SFC_V3XX_CMD_DATABUF0;
+
+	if (IS_ALIGNED((uintptr_t)from, 4)) {
+		int words = len / 4;
+
+		__iowrite32_copy(to, from, words);
+
+		len -= words * 4;
+		if (len) {
+			u32 val = 0;
+
+			to += words * 4;
+			from += words * 4;
+
+			for (i = 0; i < len; i++, from++)
+				val |= *from << i * 8;
+			__raw_writel(val, to);
+		}
+
+	} else {
+		for (i = 0; i < DIV_ROUND_UP(len, 4); i++, to += 4) {
+			u32 val = 0;
+			int j;
+
+			for (j = 0; j < 4 && (j + (i * 4) < len);
+			     from++, j++)
+				val |= *from << j * 8;
+			__raw_writel(val, to);
+		}
+	}
+}
+
+static int hisi_sfc_v3xx_generic_exec_op(struct hisi_sfc_v3xx_host *host,
+					 const struct spi_mem_op *op,
+					 u8 chip_select)
+{
+	int ret, len = op->data.nbytes;
+	u32 config = 0;
+
+	if (op->addr.nbytes)
+		config |= HISI_SFC_V3XX_CMD_CFG_ADDR_EN_MSK;
+
+	switch (op->data.buswidth) {
+	case 0 ... 1:
+		break;
+	case 2:
+		if (op->addr.buswidth <= 1) {
+			config |= HISI_SFC_V3XX_CMD_CFG_DUAL_IN_DUAL_OUT;
+		} else if (op->addr.buswidth == 2) {
+			if (op->cmd.buswidth <= 1) {
+				config |= HISI_SFC_V3XX_CMD_CFG_DUAL_IO;
+			} else if (op->cmd.buswidth == 2) {
+				config |= HISI_SFC_V3XX_CMD_CFG_FULL_DIO;
+			} else {
+				return -EIO;
+			}
+		} else {
+			return -EIO;
+		}
+		break;
+	case 4:
+		if (op->addr.buswidth <= 1) {
+			config |= HISI_SFC_V3XX_CMD_CFG_QUAD_IN_QUAD_OUT;
+		} else if (op->addr.buswidth == 4) {
+			if (op->cmd.buswidth <= 1) {
+				config |= HISI_SFC_V3XX_CMD_CFG_QUAD_IO;
+			} else if (op->cmd.buswidth == 4) {
+				config |= HISI_SFC_V3XX_CMD_CFG_FULL_QIO;
+			} else {
+				return -EIO;
+			}
+		} else {
+			return -EIO;
+		}
+		break;
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	if (op->data.dir != SPI_MEM_NO_DATA) {
+		config |= (len - 1) << HISI_SFC_V3XX_CMD_CFG_DATA_CNT_OFF;
+		config |= HISI_SFC_V3XX_CMD_CFG_DATA_EN_MSK;
+	}
+
+	if (op->data.dir == SPI_MEM_DATA_OUT)
+		hisi_sfc_v3xx_write_databuf(host, op->data.buf.out, len);
+	else if (op->data.dir == SPI_MEM_DATA_IN)
+		config |= HISI_SFC_V3XX_CMD_CFG_RW_MSK;
+
+	config |= op->dummy.nbytes << HISI_SFC_V3XX_CMD_CFG_DUMMY_CNT_OFF |
+		  chip_select << HISI_SFC_V3XX_CMD_CFG_CS_SEL_OFF |
+		  HISI_SFC_V3XX_CMD_CFG_START_MSK;
+
+	writel(op->addr.val, host->regbase + HISI_SFC_V3XX_CMD_ADDR);
+	writel(op->cmd.opcode, host->regbase + HISI_SFC_V3XX_CMD_INS);
+
+	writel(config, host->regbase + HISI_SFC_V3XX_CMD_CFG);
+
+	ret = hisi_sfc_v3xx_wait_cmd_idle(host);
+	if (ret)
+		return ret;
+
+	if (op->data.dir == SPI_MEM_DATA_IN)
+		hisi_sfc_v3xx_read_databuf(host, op->data.buf.in, len);
+
+	return 0;
+}
+
+static int hisi_sfc_v3xx_exec_op(struct spi_mem *mem,
+				 const struct spi_mem_op *op)
+{
+	struct hisi_sfc_v3xx_host *host;
+	struct spi_device *spi = mem->spi;
+	u8 chip_select = spi->chip_select;
+
+	host = spi_controller_get_devdata(spi->master);
+
+	return hisi_sfc_v3xx_generic_exec_op(host, op, chip_select);
+}
+
+static const struct spi_controller_mem_ops hisi_sfc_v3xx_mem_ops = {
+	.adjust_op_size = hisi_sfc_v3xx_adjust_op_size,
+	.exec_op = hisi_sfc_v3xx_exec_op,
+};
+
+static int hisi_sfc_v3xx_buswidth_override_bits;
+
+/*
+ * ACPI FW does not allow us to currently set the device buswidth, so quirk it
+ * depending on the board.
+ */
+static int __init hisi_sfc_v3xx_dmi_quirk(const struct dmi_system_id *d)
+{
+	hisi_sfc_v3xx_buswidth_override_bits = SPI_RX_QUAD | SPI_TX_QUAD;
+
+	return 0;
+}
+
+static const struct dmi_system_id hisi_sfc_v3xx_dmi_quirk_table[]  = {
+	{
+	.callback = hisi_sfc_v3xx_dmi_quirk,
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Huawei"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "D06"),
+	},
+	},
+	{
+	.callback = hisi_sfc_v3xx_dmi_quirk,
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Huawei"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "TaiShan 2280 V2"),
+	},
+	},
+	{
+	.callback = hisi_sfc_v3xx_dmi_quirk,
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Huawei"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "TaiShan 200 (Model 2280)"),
+	},
+	},
+	{}
+};
+
+static int hisi_sfc_v3xx_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct hisi_sfc_v3xx_host *host;
+	struct spi_controller *ctlr;
+	u32 version;
+	int ret;
+
+	ctlr = spi_alloc_master(&pdev->dev, sizeof(*host));
+	if (!ctlr)
+		return -ENOMEM;
+
+	ctlr->mode_bits = SPI_RX_DUAL | SPI_RX_QUAD |
+			  SPI_TX_DUAL | SPI_TX_QUAD;
+
+	ctlr->buswidth_override_bits = hisi_sfc_v3xx_buswidth_override_bits;
+
+	host = spi_controller_get_devdata(ctlr);
+	host->dev = dev;
+
+	platform_set_drvdata(pdev, host);
+
+	host->regbase = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(host->regbase)) {
+		ret = PTR_ERR(host->regbase);
+		goto err_put_master;
+	}
+
+	ctlr->bus_num = -1;
+	ctlr->num_chipselect = 1;
+	ctlr->mem_ops = &hisi_sfc_v3xx_mem_ops;
+
+	version = readl(host->regbase + HISI_SFC_V3XX_VERSION);
+
+	switch (version) {
+	case 0x351:
+		host->max_cmd_dword = 64;
+		break;
+	default:
+		host->max_cmd_dword = 16;
+		break;
+	}
+
+	ret = devm_spi_register_controller(dev, ctlr);
+	if (ret)
+		goto err_put_master;
+
+	dev_info(&pdev->dev, "hw version 0x%x\n", version);
+
+	return 0;
+
+err_put_master:
+	spi_master_put(ctlr);
+	return ret;
+}
+
+#if IS_ENABLED(CONFIG_ACPI)
+static const struct acpi_device_id hisi_sfc_v3xx_acpi_ids[] = {
+	{"HISI0341", 0},
+	{}
+};
+MODULE_DEVICE_TABLE(acpi, hisi_sfc_v3xx_acpi_ids);
+#endif
+
+static struct platform_driver hisi_sfc_v3xx_spi_driver = {
+	.driver = {
+		.name	= "hisi-sfc-v3xx",
+		.acpi_match_table = ACPI_PTR(hisi_sfc_v3xx_acpi_ids),
+	},
+	.probe	= hisi_sfc_v3xx_probe,
+};
+
+static int __init hisi_sfc_v3xx_spi_init(void)
+{
+	dmi_check_system(hisi_sfc_v3xx_dmi_quirk_table);
+
+	return platform_driver_register(&hisi_sfc_v3xx_spi_driver);
+}
+
+static void __exit hisi_sfc_v3xx_spi_exit(void)
+{
+	platform_driver_unregister(&hisi_sfc_v3xx_spi_driver);
+}
+
+module_init(hisi_sfc_v3xx_spi_init);
+module_exit(hisi_sfc_v3xx_spi_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("John Garry <john.garry@huawei.com>");
+MODULE_DESCRIPTION("HiSilicon SPI NOR V3XX Flash Controller Driver for hi16xx chipsets");
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-img-spfi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-img-spfi.c
@@ -673,6 +673,8 @@
 			dma_release_channel(spfi->tx_ch);
 		if (spfi->rx_ch)
 			dma_release_channel(spfi->rx_ch);
+		spfi->tx_ch = NULL;
+		spfi->rx_ch = NULL;
 		dev_warn(spfi->dev, "Failed to get DMA channels, falling back to PIO mode\n");
 	} else {
 		master->dma_tx = spfi->tx_ch;
@@ -769,8 +771,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret)
+	if (ret) {
+		pm_runtime_put_noidle(dev);
 		return ret;
+	}
 	spfi_reset(spfi);
 	pm_runtime_put(dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-lantiq-ssc.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-lantiq-ssc.c
@@ -184,6 +184,7 @@
 	unsigned int			tx_fifo_size;
 	unsigned int			rx_fifo_size;
 	unsigned int			base_cs;
+	unsigned int			fdx_tx_level;
 };
 
 static u32 lantiq_ssc_readl(const struct lantiq_ssc_spi *spi, u32 reg)
@@ -481,6 +482,7 @@
 	u32 data;
 	unsigned int tx_free = tx_fifo_free(spi);
 
+	spi->fdx_tx_level = 0;
 	while (spi->tx_todo && tx_free) {
 		switch (spi->bits_per_word) {
 		case 2 ... 8:
@@ -509,6 +511,7 @@
 
 		lantiq_ssc_writel(spi, data, LTQ_SPI_TB);
 		tx_free--;
+		spi->fdx_tx_level++;
 	}
 }
 
@@ -520,6 +523,13 @@
 	u32 data;
 	unsigned int rx_fill = rx_fifo_level(spi);
 
+	/*
+	 * Wait until all expected data to be shifted in.
+	 * Otherwise, rx overrun may occur.
+	 */
+	while (rx_fill != spi->fdx_tx_level)
+		rx_fill = rx_fifo_level(spi);
+
 	while (rx_fill) {
 		data = lantiq_ssc_readl(spi, LTQ_SPI_RB);
 
@@ -907,7 +917,7 @@
 	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 8) |
 				     SPI_BPW_MASK(16) | SPI_BPW_MASK(32);
 
-	spi->wq = alloc_ordered_workqueue(dev_name(dev), 0);
+	spi->wq = alloc_ordered_workqueue(dev_name(dev), WQ_MEM_RECLAIM);
 	if (!spi->wq) {
 		err = -ENOMEM;
 		goto err_clk_put;
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-loopback-test.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-loopback-test.c
@@ -90,7 +90,7 @@
 	{
 		.description	= "tx/rx-transfer - crossing PAGE_SIZE",
 		.fill_option	= FILL_COUNT_8,
-		.iterate_len    = { ITERATE_MAX_LEN },
+		.iterate_len    = { ITERATE_LEN },
 		.iterate_tx_align = ITERATE_ALIGN,
 		.iterate_rx_align = ITERATE_ALIGN,
 		.transfer_count = 1,
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-mem.c
@@ -108,15 +108,17 @@
 		return 0;
 
 	case 2:
-		if ((tx && (mode & (SPI_TX_DUAL | SPI_TX_QUAD))) ||
-		    (!tx && (mode & (SPI_RX_DUAL | SPI_RX_QUAD))))
+		if ((tx &&
+		     (mode & (SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL))) ||
+		    (!tx &&
+		     (mode & (SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))))
 			return 0;
 
 		break;
 
 	case 4:
-		if ((tx && (mode & SPI_TX_QUAD)) ||
-		    (!tx && (mode & SPI_RX_QUAD)))
+		if ((tx && (mode & (SPI_TX_QUAD | SPI_TX_OCTAL))) ||
+		    (!tx && (mode & (SPI_RX_QUAD | SPI_RX_OCTAL))))
 			return 0;
 
 		break;
@@ -235,6 +237,7 @@
 
 		ret = pm_runtime_get_sync(ctlr->dev.parent);
 		if (ret < 0) {
+			pm_runtime_put_noidle(ctlr->dev.parent);
 			dev_err(&ctlr->dev, "Failed to power device: %d\n",
 				ret);
 			return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-mt65xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-mt65xx.c
@@ -36,7 +36,6 @@
 #define SPI_CFG0_SCK_LOW_OFFSET           8
 #define SPI_CFG0_CS_HOLD_OFFSET           16
 #define SPI_CFG0_CS_SETUP_OFFSET          24
-#define SPI_ADJUST_CFG0_SCK_LOW_OFFSET    16
 #define SPI_ADJUST_CFG0_CS_HOLD_OFFSET    0
 #define SPI_ADJUST_CFG0_CS_SETUP_OFFSET   16
 
@@ -48,6 +47,8 @@
 #define SPI_CFG1_CS_IDLE_MASK             0xff
 #define SPI_CFG1_PACKET_LOOP_MASK         0xff00
 #define SPI_CFG1_PACKET_LENGTH_MASK       0x3ff0000
+#define SPI_CFG2_SCK_HIGH_OFFSET          0
+#define SPI_CFG2_SCK_LOW_OFFSET           16
 
 #define SPI_CMD_ACT                  BIT(0)
 #define SPI_CMD_RESUME               BIT(1)
@@ -279,7 +280,7 @@
 static void mtk_spi_prepare_transfer(struct spi_master *master,
 				     struct spi_transfer *xfer)
 {
-	u32 spi_clk_hz, div, sck_time, cs_time, reg_val = 0;
+	u32 spi_clk_hz, div, sck_time, cs_time, reg_val;
 	struct mtk_spi *mdata = spi_master_get_devdata(master);
 
 	spi_clk_hz = clk_get_rate(mdata->spi_clk);
@@ -292,18 +293,18 @@
 	cs_time = sck_time * 2;
 
 	if (mdata->dev_comp->enhance_timing) {
+		reg_val = (((sck_time - 1) & 0xffff)
+			   << SPI_CFG2_SCK_HIGH_OFFSET);
 		reg_val |= (((sck_time - 1) & 0xffff)
-			   << SPI_CFG0_SCK_HIGH_OFFSET);
-		reg_val |= (((sck_time - 1) & 0xffff)
-			   << SPI_ADJUST_CFG0_SCK_LOW_OFFSET);
+			   << SPI_CFG2_SCK_LOW_OFFSET);
 		writel(reg_val, mdata->base + SPI_CFG2_REG);
-		reg_val |= (((cs_time - 1) & 0xffff)
+		reg_val = (((cs_time - 1) & 0xffff)
 			   << SPI_ADJUST_CFG0_CS_HOLD_OFFSET);
 		reg_val |= (((cs_time - 1) & 0xffff)
 			   << SPI_ADJUST_CFG0_CS_SETUP_OFFSET);
 		writel(reg_val, mdata->base + SPI_CFG0_REG);
 	} else {
-		reg_val |= (((sck_time - 1) & 0xff)
+		reg_val = (((sck_time - 1) & 0xff)
 			   << SPI_CFG0_SCK_HIGH_OFFSET);
 		reg_val |= (((sck_time - 1) & 0xff) << SPI_CFG0_SCK_LOW_OFFSET);
 		reg_val |= (((cs_time - 1) & 0xff) << SPI_CFG0_CS_HOLD_OFFSET);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-mt7621.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-mt7621.c
@@ -350,9 +350,10 @@
 	if (status)
 		return status;
 
-	master = spi_alloc_master(&pdev->dev, sizeof(*rs));
+	master = devm_spi_alloc_master(&pdev->dev, sizeof(*rs));
 	if (!master) {
 		dev_info(&pdev->dev, "master allocation failed\n");
+		clk_disable_unprepare(clk);
 		return -ENOMEM;
 	}
 
@@ -377,10 +378,15 @@
 	ret = device_reset(&pdev->dev);
 	if (ret) {
 		dev_err(&pdev->dev, "SPI reset failed!\n");
+		clk_disable_unprepare(clk);
 		return ret;
 	}
 
-	return devm_spi_register_controller(&pdev->dev, master);
+	ret = spi_register_controller(master);
+	if (ret)
+		clk_disable_unprepare(clk);
+
+	return ret;
 }
 
 static int mt7621_spi_remove(struct platform_device *pdev)
@@ -391,6 +397,7 @@
 	master = dev_get_drvdata(&pdev->dev);
 	rs = spi_controller_get_devdata(master);
 
+	spi_unregister_controller(master);
 	clk_disable_unprepare(rs->clk);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-mxic.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-mxic.c
@@ -528,7 +528,7 @@
 	struct mxic_spi *mxic;
 	int ret;
 
-	master = spi_alloc_master(&pdev->dev, sizeof(struct mxic_spi));
+	master = devm_spi_alloc_master(&pdev->dev, sizeof(struct mxic_spi));
 	if (!master)
 		return -ENOMEM;
 
@@ -573,15 +573,9 @@
 	ret = spi_register_master(master);
 	if (ret) {
 		dev_err(&pdev->dev, "spi_register_master failed\n");
-		goto err_put_master;
+		pm_runtime_disable(&pdev->dev);
 	}
 
-	return 0;
-
-err_put_master:
-	spi_master_put(master);
-	pm_runtime_disable(&pdev->dev);
-
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-mxs.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-mxs.c
@@ -608,6 +608,7 @@
 
 	ret = pm_runtime_get_sync(ssp->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(ssp->dev);
 		dev_err(ssp->dev, "runtime_get_sync failed\n");
 		goto out_pm_runtime_disable;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-npcm-fiu.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-npcm-fiu.c
@@ -677,10 +677,9 @@
 	struct npcm_fiu_spi *fiu;
 	void __iomem *regbase;
 	struct resource *res;
-	int ret;
-	int id;
+	int id, ret;
 
-	ctrl = spi_alloc_master(dev, sizeof(*fiu));
+	ctrl = devm_spi_alloc_master(dev, sizeof(*fiu));
 	if (!ctrl)
 		return -ENOMEM;
 
@@ -738,9 +737,9 @@
 
 	ret = devm_spi_register_master(dev, ctrl);
 	if (ret)
-		return ret;
+		clk_disable_unprepare(fiu->clk);
 
-	return 0;
+	return ret;
 }
 
 static int npcm_fiu_remove(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-nxp-fspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-nxp-fspi.c
@@ -439,7 +439,7 @@
 	    op->data.nbytes > f->devtype_data->txfifo)
 		return false;
 
-	return true;
+	return spi_mem_default_supports_op(mem, op);
 }
 
 /* Instead of busy looping invoke readl_poll_timeout functionality. */
@@ -948,6 +948,7 @@
 	struct resource *res;
 	struct nxp_fspi *f;
 	int ret;
+	u32 reg;
 
 	ctlr = spi_alloc_master(&pdev->dev, sizeof(*f));
 	if (!ctlr)
@@ -974,6 +975,12 @@
 		goto err_put_ctrl;
 	}
 
+	/* Clear potential interrupts */
+	reg = fspi_readl(f, f->iobase + FSPI_INTR);
+	if (reg)
+		fspi_writel(f, reg, f->iobase + FSPI_INTR);
+
+
 	/* find the resources - controller memory mapped space */
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fspi_mmap");
 	f->ahb_addr = devm_ioremap_resource(dev, res);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-omap2-mcspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-omap2-mcspi.c
@@ -24,7 +24,6 @@
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/gcd.h>
-#include <linux/iopoll.h>
 
 #include <linux/spi/spi.h>
 #include <linux/gpio.h>
@@ -348,9 +347,19 @@
 
 static int mcspi_wait_for_reg_bit(void __iomem *reg, unsigned long bit)
 {
-	u32 val;
+	unsigned long timeout;
 
-	return readl_poll_timeout(reg, val, val & bit, 1, MSEC_PER_SEC);
+	timeout = jiffies + msecs_to_jiffies(1000);
+	while (!(readl_relaxed(reg) & bit)) {
+		if (time_after(jiffies, timeout)) {
+			if (!(readl_relaxed(reg) & bit))
+				return -ETIMEDOUT;
+			else
+				return 0;
+		}
+		cpu_relax();
+	}
+	return 0;
 }
 
 static int mcspi_wait_for_completion(struct  omap2_mcspi *mcspi,
@@ -985,20 +994,12 @@
  * Note that we currently allow DMA only if we get a channel
  * for both rx and tx. Otherwise we'll do PIO for both rx and tx.
  */
-static int omap2_mcspi_request_dma(struct spi_device *spi)
+static int omap2_mcspi_request_dma(struct omap2_mcspi *mcspi,
+				   struct omap2_mcspi_dma *mcspi_dma)
 {
-	struct spi_master	*master = spi->master;
-	struct omap2_mcspi	*mcspi;
-	struct omap2_mcspi_dma	*mcspi_dma;
 	int ret = 0;
 
-	mcspi = spi_master_get_devdata(master);
-	mcspi_dma = mcspi->dma_channels + spi->chip_select;
-
-	init_completion(&mcspi_dma->dma_rx_completion);
-	init_completion(&mcspi_dma->dma_tx_completion);
-
-	mcspi_dma->dma_rx = dma_request_chan(&master->dev,
+	mcspi_dma->dma_rx = dma_request_chan(mcspi->dev,
 					     mcspi_dma->dma_rx_ch_name);
 	if (IS_ERR(mcspi_dma->dma_rx)) {
 		ret = PTR_ERR(mcspi_dma->dma_rx);
@@ -1006,7 +1007,7 @@
 		goto no_dma;
 	}
 
-	mcspi_dma->dma_tx = dma_request_chan(&master->dev,
+	mcspi_dma->dma_tx = dma_request_chan(mcspi->dev,
 					     mcspi_dma->dma_tx_ch_name);
 	if (IS_ERR(mcspi_dma->dma_tx)) {
 		ret = PTR_ERR(mcspi_dma->dma_tx);
@@ -1015,20 +1016,40 @@
 		mcspi_dma->dma_rx = NULL;
 	}
 
+	init_completion(&mcspi_dma->dma_rx_completion);
+	init_completion(&mcspi_dma->dma_tx_completion);
+
 no_dma:
 	return ret;
 }
 
+static void omap2_mcspi_release_dma(struct spi_master *master)
+{
+	struct omap2_mcspi *mcspi = spi_master_get_devdata(master);
+	struct omap2_mcspi_dma	*mcspi_dma;
+	int i;
+
+	for (i = 0; i < master->num_chipselect; i++) {
+		mcspi_dma = &mcspi->dma_channels[i];
+
+		if (mcspi_dma->dma_rx) {
+			dma_release_channel(mcspi_dma->dma_rx);
+			mcspi_dma->dma_rx = NULL;
+		}
+		if (mcspi_dma->dma_tx) {
+			dma_release_channel(mcspi_dma->dma_tx);
+			mcspi_dma->dma_tx = NULL;
+		}
+	}
+}
+
 static int omap2_mcspi_setup(struct spi_device *spi)
 {
 	int			ret;
 	struct omap2_mcspi	*mcspi = spi_master_get_devdata(spi->master);
 	struct omap2_mcspi_regs	*ctx = &mcspi->ctx;
-	struct omap2_mcspi_dma	*mcspi_dma;
 	struct omap2_mcspi_cs	*cs = spi->controller_state;
 
-	mcspi_dma = &mcspi->dma_channels[spi->chip_select];
-
 	if (!cs) {
 		cs = kzalloc(sizeof *cs, GFP_KERNEL);
 		if (!cs)
@@ -1053,13 +1074,6 @@
 		}
 	}
 
-	if (!mcspi_dma->dma_rx || !mcspi_dma->dma_tx) {
-		ret = omap2_mcspi_request_dma(spi);
-		if (ret)
-			dev_warn(&spi->dev, "not using DMA for McSPI (%d)\n",
-				 ret);
-	}
-
 	ret = pm_runtime_get_sync(mcspi->dev);
 	if (ret < 0) {
 		pm_runtime_put_noidle(mcspi->dev);
@@ -1076,12 +1090,8 @@
 
 static void omap2_mcspi_cleanup(struct spi_device *spi)
 {
-	struct omap2_mcspi	*mcspi;
-	struct omap2_mcspi_dma	*mcspi_dma;
 	struct omap2_mcspi_cs	*cs;
 
-	mcspi = spi_master_get_devdata(spi->master);
-
 	if (spi->controller_state) {
 		/* Unlink controller state from context save list */
 		cs = spi->controller_state;
@@ -1090,19 +1100,6 @@
 		kfree(cs);
 	}
 
-	if (spi->chip_select < spi->master->num_chipselect) {
-		mcspi_dma = &mcspi->dma_channels[spi->chip_select];
-
-		if (mcspi_dma->dma_rx) {
-			dma_release_channel(mcspi_dma->dma_rx);
-			mcspi_dma->dma_rx = NULL;
-		}
-		if (mcspi_dma->dma_tx) {
-			dma_release_channel(mcspi_dma->dma_tx);
-			mcspi_dma->dma_tx = NULL;
-		}
-	}
-
 	if (gpio_is_valid(spi->cs_gpio))
 		gpio_free(spi->cs_gpio);
 }
@@ -1313,6 +1310,9 @@
 	if (spi_controller_is_slave(master))
 		return true;
 
+	master->dma_rx = mcspi_dma->dma_rx;
+	master->dma_tx = mcspi_dma->dma_tx;
+
 	return (xfer->len >= DMA_MIN_BYTES);
 }
 
@@ -1475,6 +1475,11 @@
 	for (i = 0; i < master->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;
 	}
 
 	status = platform_get_irq(pdev, 0);
@@ -1512,6 +1517,7 @@
 	pm_runtime_put_sync(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 free_master:
+	omap2_mcspi_release_dma(master);
 	spi_master_put(master);
 	return status;
 }
@@ -1521,6 +1527,8 @@
 	struct spi_master *master = platform_get_drvdata(pdev);
 	struct omap2_mcspi *mcspi = spi_master_get_devdata(master);
 
+	omap2_mcspi_release_dma(master);
+
 	pm_runtime_dont_use_autosuspend(mcspi->dev);
 	pm_runtime_put_sync(mcspi->dev);
 	pm_runtime_disable(&pdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-pic32.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-pic32.c
@@ -825,6 +825,7 @@
 	return 0;
 
 err_bailout:
+	pic32_spi_dma_unprep(pic32s);
 	clk_disable_unprepare(pic32s->clk);
 err_master:
 	spi_master_put(master);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-pxa2xx-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-pxa2xx-pci.c
@@ -21,7 +21,8 @@
 	PORT_BSW1,
 	PORT_BSW2,
 	PORT_CE4100,
-	PORT_LPT,
+	PORT_LPT0,
+	PORT_LPT1,
 };
 
 struct pxa_spi_info {
@@ -57,8 +58,10 @@
 static struct dw_dma_slave bsw2_tx_param = { .dst_id = 8 };
 static struct dw_dma_slave bsw2_rx_param = { .src_id = 9 };
 
-static struct dw_dma_slave lpt_tx_param = { .dst_id = 0 };
-static struct dw_dma_slave lpt_rx_param = { .src_id = 1 };
+static struct dw_dma_slave lpt1_tx_param = { .dst_id = 0 };
+static struct dw_dma_slave lpt1_rx_param = { .src_id = 1 };
+static struct dw_dma_slave lpt0_tx_param = { .dst_id = 2 };
+static struct dw_dma_slave lpt0_rx_param = { .src_id = 3 };
 
 static bool lpss_dma_filter(struct dma_chan *chan, void *param)
 {
@@ -185,12 +188,19 @@
 		.num_chipselect = 1,
 		.max_clk_rate = 50000000,
 	},
-	[PORT_LPT] = {
+	[PORT_LPT0] = {
 		.type = LPSS_LPT_SSP,
 		.port_id = 0,
 		.setup = lpss_spi_setup,
-		.tx_param = &lpt_tx_param,
-		.rx_param = &lpt_rx_param,
+		.tx_param = &lpt0_tx_param,
+		.rx_param = &lpt0_rx_param,
+	},
+	[PORT_LPT1] = {
+		.type = LPSS_LPT_SSP,
+		.port_id = 1,
+		.setup = lpss_spi_setup,
+		.tx_param = &lpt1_tx_param,
+		.rx_param = &lpt1_rx_param,
 	},
 };
 
@@ -285,8 +295,9 @@
 	{ PCI_VDEVICE(INTEL, 0x2290), PORT_BSW1 },
 	{ PCI_VDEVICE(INTEL, 0x22ac), PORT_BSW2 },
 	{ PCI_VDEVICE(INTEL, 0x2e6a), PORT_CE4100 },
-	{ PCI_VDEVICE(INTEL, 0x9ce6), PORT_LPT },
-	{ },
+	{ PCI_VDEVICE(INTEL, 0x9ce5), PORT_LPT0 },
+	{ PCI_VDEVICE(INTEL, 0x9ce6), PORT_LPT1 },
+	{ }
 };
 MODULE_DEVICE_TABLE(pci, pxa2xx_spi_pci_devices);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-pxa2xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-pxa2xx.c
@@ -68,6 +68,10 @@
 #define LPSS_CAPS_CS_EN_SHIFT			9
 #define LPSS_CAPS_CS_EN_MASK			(0xf << LPSS_CAPS_CS_EN_SHIFT)
 
+#define LPSS_PRIV_CLOCK_GATE 0x38
+#define LPSS_PRIV_CLOCK_GATE_CLK_CTL_MASK 0x3
+#define LPSS_PRIV_CLOCK_GATE_CLK_CTL_FORCE_ON 0x3
+
 struct lpss_config {
 	/* LPSS offset from drv_data->ioaddr */
 	unsigned offset;
@@ -84,6 +88,8 @@
 	unsigned cs_sel_shift;
 	unsigned cs_sel_mask;
 	unsigned cs_num;
+	/* Quirks */
+	unsigned cs_clk_stays_gated : 1;
 };
 
 /* Keep these sorted with enum pxa_ssp_type */
@@ -142,6 +148,7 @@
 		.tx_threshold_hi = 48,
 		.cs_sel_shift = 8,
 		.cs_sel_mask = 3 << 8,
+		.cs_clk_stays_gated = true,
 	},
 	{	/* LPSS_CNL_SSP */
 		.offset = 0x200,
@@ -154,6 +161,7 @@
 		.tx_threshold_hi = 56,
 		.cs_sel_shift = 8,
 		.cs_sel_mask = 3 << 8,
+		.cs_clk_stays_gated = true,
 	},
 };
 
@@ -381,6 +389,22 @@
 	else
 		value |= LPSS_CS_CONTROL_CS_HIGH;
 	__lpss_ssp_write_priv(drv_data, config->reg_cs_ctrl, value);
+	if (config->cs_clk_stays_gated) {
+		u32 clkgate;
+
+		/*
+		 * Changing CS alone when dynamic clock gating is on won't
+		 * actually flip CS at that time. This ruins SPI transfers
+		 * that specify delays, or have no data. Toggle the clock mode
+		 * to force on briefly to poke the CS pin to move.
+		 */
+		clkgate = __lpss_ssp_read_priv(drv_data, LPSS_PRIV_CLOCK_GATE);
+		value = (clkgate & ~LPSS_PRIV_CLOCK_GATE_CLK_CTL_MASK) |
+			LPSS_PRIV_CLOCK_GATE_CLK_CTL_FORCE_ON;
+
+		__lpss_ssp_write_priv(drv_data, LPSS_PRIV_CLOCK_GATE, value);
+		__lpss_ssp_write_priv(drv_data, LPSS_PRIV_CLOCK_GATE, clkgate);
+	}
 }
 
 static void cs_assert(struct spi_device *spi)
@@ -1441,6 +1465,10 @@
 	{ PCI_VDEVICE(INTEL, 0x4b2a), LPSS_BXT_SSP },
 	{ PCI_VDEVICE(INTEL, 0x4b2b), LPSS_BXT_SSP },
 	{ PCI_VDEVICE(INTEL, 0x4b37), LPSS_BXT_SSP },
+	/* JSL */
+	{ PCI_VDEVICE(INTEL, 0x4daa), LPSS_CNL_SSP },
+	{ PCI_VDEVICE(INTEL, 0x4dab), LPSS_CNL_SSP },
+	{ PCI_VDEVICE(INTEL, 0x4dfb), LPSS_CNL_SSP },
 	/* APL */
 	{ PCI_VDEVICE(INTEL, 0x5ac2), LPSS_BXT_SSP },
 	{ PCI_VDEVICE(INTEL, 0x5ac4), LPSS_BXT_SSP },
@@ -1457,6 +1485,10 @@
 	{ PCI_VDEVICE(INTEL, 0x02aa), LPSS_CNL_SSP },
 	{ PCI_VDEVICE(INTEL, 0x02ab), LPSS_CNL_SSP },
 	{ PCI_VDEVICE(INTEL, 0x02fb), LPSS_CNL_SSP },
+	/* CML-H */
+	{ PCI_VDEVICE(INTEL, 0x06aa), LPSS_CNL_SSP },
+	{ PCI_VDEVICE(INTEL, 0x06ab), LPSS_CNL_SSP },
+	{ PCI_VDEVICE(INTEL, 0x06fb), LPSS_CNL_SSP },
 	/* TGL-LP */
 	{ PCI_VDEVICE(INTEL, 0xa0aa), LPSS_CNL_SSP },
 	{ PCI_VDEVICE(INTEL, 0xa0ab), LPSS_CNL_SSP },
@@ -1565,7 +1597,13 @@
 #endif
 
 	ssp->clk = devm_clk_get(&pdev->dev, NULL);
+	if (IS_ERR(ssp->clk))
+		return NULL;
+
 	ssp->irq = platform_get_irq(pdev, 0);
+	if (ssp->irq < 0)
+		return NULL;
+
 	ssp->type = type;
 	ssp->pdev = pdev;
 	ssp->port_id = pxa2xx_spi_get_port_id(adev);
@@ -1602,6 +1640,11 @@
 	return cs;
 }
 
+static size_t pxa2xx_spi_max_dma_transfer_size(struct spi_device *spi)
+{
+	return MAX_DMA_LEN;
+}
+
 static int pxa2xx_spi_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -1632,9 +1675,9 @@
 	}
 
 	if (platform_info->is_slave)
-		controller = spi_alloc_slave(dev, sizeof(struct driver_data));
+		controller = devm_spi_alloc_slave(dev, sizeof(*drv_data));
 	else
-		controller = spi_alloc_master(dev, sizeof(struct driver_data));
+		controller = devm_spi_alloc_master(dev, sizeof(*drv_data));
 
 	if (!controller) {
 		dev_err(&pdev->dev, "cannot alloc spi_controller\n");
@@ -1707,6 +1750,8 @@
 		} else {
 			controller->can_dma = pxa2xx_spi_can_dma;
 			controller->max_dma_len = MAX_DMA_LEN;
+			controller->max_transfer_size =
+				pxa2xx_spi_max_dma_transfer_size;
 		}
 	}
 
@@ -1836,7 +1881,7 @@
 
 	/* Register with the SPI framework */
 	platform_set_drvdata(pdev, drv_data);
-	status = devm_spi_register_controller(&pdev->dev, controller);
+	status = spi_register_controller(controller);
 	if (status != 0) {
 		dev_err(&pdev->dev, "problem registering spi controller\n");
 		goto out_error_pm_runtime_enabled;
@@ -1845,7 +1890,6 @@
 	return status;
 
 out_error_pm_runtime_enabled:
-	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 
 out_error_clock_enabled:
@@ -1856,7 +1900,6 @@
 	free_irq(ssp->irq, drv_data);
 
 out_error_controller_alloc:
-	spi_controller_put(controller);
 	pxa_ssp_free(ssp);
 	return status;
 }
@@ -1872,6 +1915,8 @@
 
 	pm_runtime_get_sync(&pdev->dev);
 
+	spi_unregister_controller(drv_data->controller);
+
 	/* Disable the SSP at the peripheral and SOC level */
 	pxa2xx_spi_write(drv_data, SSCR0, 0);
 	clk_disable_unprepare(ssp->clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-qup.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-qup.c
@@ -1217,6 +1217,11 @@
 	struct spi_qup *controller = spi_master_get_devdata(master);
 	int ret;
 
+	if (pm_runtime_suspended(device)) {
+		ret = spi_qup_pm_resume_runtime(device);
+		if (ret)
+			return ret;
+	}
 	ret = spi_master_suspend(master);
 	if (ret)
 		return ret;
@@ -1225,10 +1230,8 @@
 	if (ret)
 		return ret;
 
-	if (!pm_runtime_suspended(device)) {
-		clk_disable_unprepare(controller->cclk);
-		clk_disable_unprepare(controller->iclk);
-	}
+	clk_disable_unprepare(controller->cclk);
+	clk_disable_unprepare(controller->iclk);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-rb4xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-rb4xx.c
@@ -142,7 +142,7 @@
 	if (IS_ERR(spi_base))
 		return PTR_ERR(spi_base);
 
-	master = spi_alloc_master(&pdev->dev, sizeof(*rbspi));
+	master = devm_spi_alloc_master(&pdev->dev, sizeof(*rbspi));
 	if (!master)
 		return -ENOMEM;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-rockchip.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-rockchip.c
@@ -286,7 +286,7 @@
 static void rockchip_spi_pio_reader(struct rockchip_spi *rs)
 {
 	u32 words = readl_relaxed(rs->regs + ROCKCHIP_SPI_RXFLR);
-	u32 rx_left = rs->rx_left - words;
+	u32 rx_left = (rs->rx_left > words) ? rs->rx_left - words : 0;
 
 	/* the hardware doesn't allow us to change fifo threshold
 	 * level while spi is enabled, so instead make sure to leave
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-rspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-rspi.c
@@ -1257,9 +1257,9 @@
 	ctlr->flags = ops->flags;
 	ctlr->dev.of_node = pdev->dev.of_node;
 
-	ret = platform_get_irq_byname(pdev, "rx");
+	ret = platform_get_irq_byname_optional(pdev, "rx");
 	if (ret < 0) {
-		ret = platform_get_irq_byname(pdev, "mux");
+		ret = platform_get_irq_byname_optional(pdev, "mux");
 		if (ret < 0)
 			ret = platform_get_irq(pdev, 0);
 		if (ret >= 0)
@@ -1270,10 +1270,6 @@
 		if (ret >= 0)
 			rspi->tx_irq = ret;
 	}
-	if (ret < 0) {
-		dev_err(&pdev->dev, "platform_get_irq error\n");
-		goto error2;
-	}
 
 	if (rspi->rx_irq == rspi->tx_irq) {
 		/* Single multiplexed interrupt */
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-s3c24xx-fiq.S
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-s3c24xx-fiq.S
@@ -33,7 +33,6 @@
 	@ and an offset to the irq acknowledgment word
 
 ENTRY(s3c24xx_spi_fiq_rx)
-s3c24xx_spi_fix_rx:
 	.word	fiq_rx_end - fiq_rx_start
 	.word	fiq_rx_irq_ack - fiq_rx_start
 fiq_rx_start:
@@ -47,7 +46,7 @@
 	strb	fiq_rtmp, [ fiq_rspi, # S3C2410_SPTDAT ]
 
 	subs	fiq_rcount, fiq_rcount, #1
-	subnes	pc, lr, #4		@@ return, still have work to do
+	subsne	pc, lr, #4		@@ return, still have work to do
 
 	@@ set IRQ controller so that next op will trigger IRQ
 	mov	fiq_rtmp, #0
@@ -59,7 +58,6 @@
 fiq_rx_end:
 
 ENTRY(s3c24xx_spi_fiq_txrx)
-s3c24xx_spi_fiq_txrx:
 	.word	fiq_txrx_end - fiq_txrx_start
 	.word	fiq_txrx_irq_ack - fiq_txrx_start
 fiq_txrx_start:
@@ -74,7 +72,7 @@
 	strb	fiq_rtmp, [ fiq_rspi, # S3C2410_SPTDAT ]
 
 	subs	fiq_rcount, fiq_rcount, #1
-	subnes	pc, lr, #4		@@ return, still have work to do
+	subsne	pc, lr, #4		@@ return, still have work to do
 
 	mov	fiq_rtmp, #0
 	str	fiq_rtmp, [ fiq_rirq, # S3C2410_INTMOD  - S3C24XX_VA_IRQ ]
@@ -86,7 +84,6 @@
 fiq_txrx_end:
 
 ENTRY(s3c24xx_spi_fiq_tx)
-s3c24xx_spi_fix_tx:
 	.word	fiq_tx_end - fiq_tx_start
 	.word	fiq_tx_irq_ack - fiq_tx_start
 fiq_tx_start:
@@ -99,7 +96,7 @@
 	strb	fiq_rtmp, [ fiq_rspi, # S3C2410_SPTDAT ]
 
 	subs	fiq_rcount, fiq_rcount, #1
-	subnes	pc, lr, #4		@@ return, still have work to do
+	subsne	pc, lr, #4		@@ return, still have work to do
 
 	mov	fiq_rtmp, #0
 	str	fiq_rtmp, [ fiq_rirq, # S3C2410_INTMOD  - S3C24XX_VA_IRQ ]
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-s3c64xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-s3c64xx.c
@@ -122,6 +122,7 @@
 
 struct s3c64xx_spi_dma_data {
 	struct dma_chan *ch;
+	dma_cookie_t cookie;
 	enum dma_transfer_direction direction;
 };
 
@@ -264,12 +265,13 @@
 	spin_unlock_irqrestore(&sdd->lock, flags);
 }
 
-static void prepare_dma(struct s3c64xx_spi_dma_data *dma,
+static int prepare_dma(struct s3c64xx_spi_dma_data *dma,
 			struct sg_table *sgt)
 {
 	struct s3c64xx_spi_driver_data *sdd;
 	struct dma_slave_config config;
 	struct dma_async_tx_descriptor *desc;
+	int ret;
 
 	memset(&config, 0, sizeof(config));
 
@@ -293,12 +295,24 @@
 
 	desc = dmaengine_prep_slave_sg(dma->ch, sgt->sgl, sgt->nents,
 				       dma->direction, DMA_PREP_INTERRUPT);
+	if (!desc) {
+		dev_err(&sdd->pdev->dev, "unable to prepare %s scatterlist",
+			dma->direction == DMA_DEV_TO_MEM ? "rx" : "tx");
+		return -ENOMEM;
+	}
 
 	desc->callback = s3c64xx_spi_dmacb;
 	desc->callback_param = dma;
 
-	dmaengine_submit(desc);
+	dma->cookie = dmaengine_submit(desc);
+	ret = dma_submit_error(dma->cookie);
+	if (ret) {
+		dev_err(&sdd->pdev->dev, "DMA submission failed");
+		return -EIO;
+	}
+
 	dma_async_issue_pending(dma->ch);
+	return 0;
 }
 
 static void s3c64xx_spi_set_cs(struct spi_device *spi, bool enable)
@@ -348,11 +362,12 @@
 	return xfer->len > (FIFO_LVL_MASK(sdd) >> 1) + 1;
 }
 
-static void s3c64xx_enable_datapath(struct s3c64xx_spi_driver_data *sdd,
+static int s3c64xx_enable_datapath(struct s3c64xx_spi_driver_data *sdd,
 				    struct spi_transfer *xfer, int dma_mode)
 {
 	void __iomem *regs = sdd->regs;
 	u32 modecfg, chcfg;
+	int ret = 0;
 
 	modecfg = readl(regs + S3C64XX_SPI_MODE_CFG);
 	modecfg &= ~(S3C64XX_SPI_MODE_TXDMA_ON | S3C64XX_SPI_MODE_RXDMA_ON);
@@ -378,7 +393,7 @@
 		chcfg |= S3C64XX_SPI_CH_TXCH_ON;
 		if (dma_mode) {
 			modecfg |= S3C64XX_SPI_MODE_TXDMA_ON;
-			prepare_dma(&sdd->tx_dma, &xfer->tx_sg);
+			ret = prepare_dma(&sdd->tx_dma, &xfer->tx_sg);
 		} else {
 			switch (sdd->cur_bpw) {
 			case 32:
@@ -410,12 +425,17 @@
 			writel(((xfer->len * 8 / sdd->cur_bpw) & 0xffff)
 					| S3C64XX_SPI_PACKET_CNT_EN,
 					regs + S3C64XX_SPI_PACKET_CNT);
-			prepare_dma(&sdd->rx_dma, &xfer->rx_sg);
+			ret = prepare_dma(&sdd->rx_dma, &xfer->rx_sg);
 		}
 	}
 
+	if (ret)
+		return ret;
+
 	writel(modecfg, regs + S3C64XX_SPI_MODE_CFG);
 	writel(chcfg, regs + S3C64XX_SPI_CH_CFG);
+
+	return 0;
 }
 
 static u32 s3c64xx_spi_wait_for_timeout(struct s3c64xx_spi_driver_data *sdd,
@@ -548,9 +568,10 @@
 	return 0;
 }
 
-static void s3c64xx_spi_config(struct s3c64xx_spi_driver_data *sdd)
+static int s3c64xx_spi_config(struct s3c64xx_spi_driver_data *sdd)
 {
 	void __iomem *regs = sdd->regs;
+	int ret;
 	u32 val;
 
 	/* Disable Clock */
@@ -598,7 +619,9 @@
 
 	if (sdd->port_conf->clk_from_cmu) {
 		/* The src_clk clock is divided internally by 2 */
-		clk_set_rate(sdd->src_clk, sdd->cur_speed * 2);
+		ret = clk_set_rate(sdd->src_clk, sdd->cur_speed * 2);
+		if (ret)
+			return ret;
 	} else {
 		/* Configure Clock */
 		val = readl(regs + S3C64XX_SPI_CLK_CFG);
@@ -612,6 +635,8 @@
 		val |= S3C64XX_SPI_ENCLK_ENABLE;
 		writel(val, regs + S3C64XX_SPI_CLK_CFG);
 	}
+
+	return 0;
 }
 
 #define XFER_DMAADDR_INVALID DMA_BIT_MASK(32)
@@ -654,7 +679,9 @@
 		sdd->cur_bpw = bpw;
 		sdd->cur_speed = speed;
 		sdd->cur_mode = spi->mode;
-		s3c64xx_spi_config(sdd);
+		status = s3c64xx_spi_config(sdd);
+		if (status)
+			return status;
 	}
 
 	if (!is_polling(sdd) && (xfer->len > fifo_len) &&
@@ -678,13 +705,18 @@
 		sdd->state &= ~RXBUSY;
 		sdd->state &= ~TXBUSY;
 
-		s3c64xx_enable_datapath(sdd, xfer, use_dma);
-
 		/* Start the signals */
 		s3c64xx_spi_set_cs(spi, true);
 
+		status = s3c64xx_enable_datapath(sdd, xfer, use_dma);
+
 		spin_unlock_irqrestore(&sdd->lock, flags);
 
+		if (status) {
+			dev_err(&spi->dev, "failed to enable data path for transfer: %d\n", status);
+			break;
+		}
+
 		if (use_dma)
 			status = s3c64xx_wait_for_dma(sdd, xfer);
 		else
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-sc18is602.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-sc18is602.c
@@ -239,13 +239,12 @@
 	struct sc18is602_platform_data *pdata = dev_get_platdata(dev);
 	struct sc18is602 *hw;
 	struct spi_master *master;
-	int error;
 
 	if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C |
 				     I2C_FUNC_SMBUS_WRITE_BYTE_DATA))
 		return -EINVAL;
 
-	master = spi_alloc_master(dev, sizeof(struct sc18is602));
+	master = devm_spi_alloc_master(dev, sizeof(struct sc18is602));
 	if (!master)
 		return -ENOMEM;
 
@@ -299,15 +298,7 @@
 	master->min_speed_hz = hw->freq / 128;
 	master->max_speed_hz = hw->freq / 4;
 
-	error = devm_spi_register_master(dev, master);
-	if (error)
-		goto error_reg;
-
-	return 0;
-
-error_reg:
-	spi_master_put(master);
-	return error;
+	return devm_spi_register_master(dev, master);
 }
 
 static const struct i2c_device_id sc18is602_id[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-sh.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-sh.c
@@ -440,7 +440,7 @@
 	if (irq < 0)
 		return irq;
 
-	master = spi_alloc_master(&pdev->dev, sizeof(struct spi_sh_data));
+	master = devm_spi_alloc_master(&pdev->dev, sizeof(struct spi_sh_data));
 	if (master == NULL) {
 		dev_err(&pdev->dev, "spi_alloc_master error.\n");
 		return -ENOMEM;
@@ -458,16 +458,14 @@
 		break;
 	default:
 		dev_err(&pdev->dev, "No support width\n");
-		ret = -ENODEV;
-		goto error1;
+		return -ENODEV;
 	}
 	ss->irq = irq;
 	ss->master = master;
 	ss->addr = devm_ioremap(&pdev->dev, res->start, resource_size(res));
 	if (ss->addr == NULL) {
 		dev_err(&pdev->dev, "ioremap error.\n");
-		ret = -ENOMEM;
-		goto error1;
+		return -ENOMEM;
 	}
 	INIT_LIST_HEAD(&ss->queue);
 	spin_lock_init(&ss->lock);
@@ -477,7 +475,7 @@
 	ret = request_irq(irq, spi_sh_irq, 0, "spi_sh", ss);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "request_irq error\n");
-		goto error1;
+		return ret;
 	}
 
 	master->num_chipselect = 2;
@@ -496,9 +494,6 @@
 
  error3:
 	free_irq(irq, ss);
- error1:
-	spi_master_put(master);
-
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-sifive.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-sifive.c
@@ -357,14 +357,14 @@
 	if (!cs_bits) {
 		dev_err(&pdev->dev, "Could not auto probe CS lines\n");
 		ret = -EINVAL;
-		goto put_master;
+		goto disable_clk;
 	}
 
 	num_cs = ilog2(cs_bits) + 1;
 	if (num_cs > SIFIVE_SPI_MAX_CS) {
 		dev_err(&pdev->dev, "Invalid number of spi slaves\n");
 		ret = -EINVAL;
-		goto put_master;
+		goto disable_clk;
 	}
 
 	/* Define our master */
@@ -393,7 +393,7 @@
 			       dev_name(&pdev->dev), spi);
 	if (ret) {
 		dev_err(&pdev->dev, "Unable to bind to interrupt\n");
-		goto put_master;
+		goto disable_clk;
 	}
 
 	dev_info(&pdev->dev, "mapped; irq=%d, cs=%d\n",
@@ -402,11 +402,13 @@
 	ret = devm_spi_register_master(&pdev->dev, master);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "spi_register_master failed\n");
-		goto put_master;
+		goto disable_clk;
 	}
 
 	return 0;
 
+disable_clk:
+	clk_disable_unprepare(spi->clk);
 put_master:
 	spi_master_put(master);
 
@@ -420,6 +422,7 @@
 
 	/* Disable all the interrupts just in case */
 	sifive_spi_write(spi, SIFIVE_SPI_REG_IE, 0);
+	clk_disable_unprepare(spi->clk);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-sprd-adi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-sprd-adi.c
@@ -384,15 +384,18 @@
 	sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_LOCK, WDG_UNLOCK_KEY);
 
 	/* Load the watchdog timeout value, 50ms is always enough. */
+	sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_LOAD_HIGH, 0);
 	sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_LOAD_LOW,
 		       WDG_LOAD_VAL & WDG_LOAD_MASK);
-	sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_LOAD_HIGH, 0);
 
 	/* Start the watchdog to reset system */
 	sprd_adi_read(sadi, sadi->slave_pbase + REG_WDG_CTRL, &val);
 	val |= BIT_WDG_RUN | BIT_WDG_RST;
 	sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_CTRL, val);
 
+	/* Lock the watchdog */
+	sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_LOCK, ~WDG_UNLOCK_KEY);
+
 	mdelay(1000);
 
 	dev_emerg(sadi->dev, "Unable to restart system\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-sprd.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-sprd.c
@@ -563,11 +563,11 @@
 
 	ss->dma.dma_chan[SPRD_SPI_TX]  = dma_request_chan(ss->dev, "tx_chn");
 	if (IS_ERR_OR_NULL(ss->dma.dma_chan[SPRD_SPI_TX])) {
+		dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
 		if (PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]) == -EPROBE_DEFER)
 			return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]);
 
 		dev_err(ss->dev, "request TX DMA channel failed!\n");
-		dma_release_channel(ss->dma.dma_chan[SPRD_SPI_RX]);
 		return PTR_ERR(ss->dma.dma_chan[SPRD_SPI_TX]);
 	}
 
@@ -674,7 +674,7 @@
 	u16 word_delay, interval;
 	u32 val;
 
-	val = readl_relaxed(ss->base + SPRD_SPI_CTL7);
+	val = readl_relaxed(ss->base + SPRD_SPI_CTL0);
 	val &= ~(SPRD_SPI_SCK_REV | SPRD_SPI_NG_TX | SPRD_SPI_NG_RX);
 	/* Set default chip selection, clock phase and clock polarity */
 	val |= ss->hw_mode & SPI_CPHA ? SPRD_SPI_NG_RX : SPRD_SPI_NG_TX;
@@ -1008,6 +1008,7 @@
 
 	ret = pm_runtime_get_sync(ss->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(ss->dev);
 		dev_err(ss->dev, "failed to resume SPI controller\n");
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-st-ssc4.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-st-ssc4.c
@@ -375,11 +375,13 @@
 	ret = devm_spi_register_master(&pdev->dev, master);
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to register master\n");
-		goto clk_disable;
+		goto rpm_disable;
 	}
 
 	return 0;
 
+rpm_disable:
+	pm_runtime_disable(&pdev->dev);
 clk_disable:
 	clk_disable_unprepare(spi_st->clk);
 put_master:
@@ -392,6 +394,8 @@
 	struct spi_master *master = platform_get_drvdata(pdev);
 	struct spi_st *spi_st = spi_master_get_devdata(master);
 
+	pm_runtime_disable(&pdev->dev);
+
 	clk_disable_unprepare(spi_st->clk);
 
 	pinctrl_pm_select_sleep_state(&pdev->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-stm32-qspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-stm32-qspi.c
@@ -528,7 +528,6 @@
 	stm32_qspi_dma_free(qspi);
 	mutex_destroy(&qspi->lock);
 	clk_disable_unprepare(qspi->clk);
-	spi_master_put(qspi->ctrl);
 }
 
 static int stm32_qspi_probe(struct platform_device *pdev)
@@ -626,6 +625,8 @@
 
 err:
 	stm32_qspi_release(qspi);
+	spi_master_put(qspi->ctrl);
+
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-stm32.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-stm32.c
@@ -14,6 +14,7 @@
 #include <linux/iopoll.h>
 #include <linux/module.h>
 #include <linux/of_platform.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/pm_runtime.h>
 #include <linux/reset.h>
 #include <linux/spi/spi.h>
@@ -442,7 +443,8 @@
 {
 	u32 div, mbrdiv;
 
-	div = DIV_ROUND_UP(spi->clk_rate, speed_hz);
+	/* Ensure spi->clk_rate is even */
+	div = DIV_ROUND_UP(spi->clk_rate & ~0x1, speed_hz);
 
 	/*
 	 * SPI framework set xfer->speed_hz to master->max_speed_hz if
@@ -468,26 +470,36 @@
 /**
  * stm32h7_spi_prepare_fthlv - Determine FIFO threshold level
  * @spi: pointer to the spi controller data structure
+ * @xfer_len: length of the message to be transferred
  */
-static u32 stm32h7_spi_prepare_fthlv(struct stm32_spi *spi)
+static u32 stm32h7_spi_prepare_fthlv(struct stm32_spi *spi, u32 xfer_len)
 {
-	u32 fthlv, half_fifo;
+	u32 fthlv, half_fifo, packet;
 
 	/* data packet should not exceed 1/2 of fifo space */
 	half_fifo = (spi->fifo_size / 2);
 
+	/* data_packet should not exceed transfer length */
+	if (half_fifo > xfer_len)
+		packet = xfer_len;
+	else
+		packet = half_fifo;
+
 	if (spi->cur_bpw <= 8)
-		fthlv = half_fifo;
+		fthlv = packet;
 	else if (spi->cur_bpw <= 16)
-		fthlv = half_fifo / 2;
+		fthlv = packet / 2;
 	else
-		fthlv = half_fifo / 4;
+		fthlv = packet / 4;
 
 	/* align packet size with data registers access */
 	if (spi->cur_bpw > 8)
-		fthlv -= (fthlv % 2); /* multiple of 2 */
+		fthlv += (fthlv % 2) ? 1 : 0;
 	else
-		fthlv -= (fthlv % 4); /* multiple of 4 */
+		fthlv += (fthlv % 4) ? (4 - (fthlv % 4)) : 0;
+
+	if (!fthlv)
+		fthlv = 1;
 
 	return fthlv;
 }
@@ -912,14 +924,18 @@
 		mask |= STM32H7_SPI_SR_RXP;
 
 	if (!(sr & mask)) {
-		dev_dbg(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n",
-			sr, ier);
+		dev_warn(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n",
+			 sr, ier);
 		spin_unlock_irqrestore(&spi->lock, flags);
 		return IRQ_NONE;
 	}
 
 	if (sr & STM32H7_SPI_SR_SUSP) {
-		dev_warn(spi->dev, "Communication suspended\n");
+		static DEFINE_RATELIMIT_STATE(rs,
+					      DEFAULT_RATELIMIT_INTERVAL * 10,
+					      1);
+		if (__ratelimit(&rs))
+			dev_dbg_ratelimited(spi->dev, "Communication suspended\n");
 		if (!spi->cur_usedma && (spi->rx_buf && (spi->rx_len > 0)))
 			stm32h7_spi_read_rxfifo(spi, false);
 		/*
@@ -936,15 +952,8 @@
 	}
 
 	if (sr & STM32H7_SPI_SR_OVR) {
-		dev_warn(spi->dev, "Overrun: received value discarded\n");
-		if (!spi->cur_usedma && (spi->rx_buf && (spi->rx_len > 0)))
-			stm32h7_spi_read_rxfifo(spi, false);
-		/*
-		 * If overrun is detected while using DMA, it means that
-		 * something went wrong, so stop the current transfer
-		 */
-		if (spi->cur_usedma)
-			end = true;
+		dev_err(spi->dev, "Overrun: RX data lost\n");
+		end = true;
 	}
 
 	if (sr & STM32H7_SPI_SR_EOT) {
@@ -961,13 +970,13 @@
 		if (!spi->cur_usedma && (spi->rx_buf && (spi->rx_len > 0)))
 			stm32h7_spi_read_rxfifo(spi, false);
 
-	writel_relaxed(mask, spi->base + STM32H7_SPI_IFCR);
+	writel_relaxed(sr & mask, spi->base + STM32H7_SPI_IFCR);
 
 	spin_unlock_irqrestore(&spi->lock, flags);
 
 	if (end) {
-		spi_finalize_current_transfer(master);
 		stm32h7_spi_disable(spi);
+		spi_finalize_current_transfer(master);
 	}
 
 	return IRQ_HANDLED;
@@ -1395,7 +1404,7 @@
 	cfg1_setb |= (bpw << STM32H7_SPI_CFG1_DSIZE_SHIFT) &
 		     STM32H7_SPI_CFG1_DSIZE;
 
-	spi->cur_fthlv = stm32h7_spi_prepare_fthlv(spi);
+	spi->cur_fthlv = stm32h7_spi_prepare_fthlv(spi, spi->cur_xferlen);
 	fthlv = spi->cur_fthlv - 1;
 
 	cfg1_clrb |= STM32H7_SPI_CFG1_FTHLV;
@@ -1578,39 +1587,33 @@
 	unsigned long flags;
 	unsigned int comm_type;
 	int nb_words, ret = 0;
+	int mbr;
 
 	spin_lock_irqsave(&spi->lock, flags);
 
-	if (spi->cur_bpw != transfer->bits_per_word) {
-		spi->cur_bpw = transfer->bits_per_word;
-		spi->cfg->set_bpw(spi);
-	}
+	spi->cur_xferlen = transfer->len;
 
-	if (spi->cur_speed != transfer->speed_hz) {
-		int mbr;
-
-		/* Update spi->cur_speed with real clock speed */
-		mbr = stm32_spi_prepare_mbr(spi, transfer->speed_hz,
-					    spi->cfg->baud_rate_div_min,
-					    spi->cfg->baud_rate_div_max);
-		if (mbr < 0) {
-			ret = mbr;
-			goto out;
-		}
+	spi->cur_bpw = transfer->bits_per_word;
+	spi->cfg->set_bpw(spi);
 
-		transfer->speed_hz = spi->cur_speed;
-		stm32_spi_set_mbr(spi, mbr);
+	/* Update spi->cur_speed with real clock speed */
+	mbr = stm32_spi_prepare_mbr(spi, transfer->speed_hz,
+				    spi->cfg->baud_rate_div_min,
+				    spi->cfg->baud_rate_div_max);
+	if (mbr < 0) {
+		ret = mbr;
+		goto out;
 	}
 
-	comm_type = stm32_spi_communication_type(spi_dev, transfer);
-	if (spi->cur_comm != comm_type) {
-		ret = spi->cfg->set_mode(spi, comm_type);
+	transfer->speed_hz = spi->cur_speed;
+	stm32_spi_set_mbr(spi, mbr);
 
-		if (ret < 0)
-			goto out;
+	comm_type = stm32_spi_communication_type(spi_dev, transfer);
+	ret = spi->cfg->set_mode(spi, comm_type);
+	if (ret < 0)
+		goto out;
 
-		spi->cur_comm = comm_type;
-	}
+	spi->cur_comm = comm_type;
 
 	if (spi->cfg->set_data_idleness)
 		spi->cfg->set_data_idleness(spi, transfer->len);
@@ -1628,8 +1631,6 @@
 			goto out;
 	}
 
-	spi->cur_xferlen = transfer->len;
-
 	dev_dbg(spi->dev, "transfer communication mode set to %d\n",
 		spi->cur_comm);
 	dev_dbg(spi->dev,
@@ -1660,6 +1661,10 @@
 	struct stm32_spi *spi = spi_master_get_devdata(master);
 	int ret;
 
+	/* Don't do anything on 0 bytes transfers */
+	if (transfer->len == 0)
+		return 0;
+
 	spi->tx_buf = transfer->tx_buf;
 	spi->rx_buf = transfer->rx_buf;
 	spi->tx_len = spi->tx_buf ? transfer->len : 0;
@@ -1986,6 +1991,8 @@
 
 	pm_runtime_disable(&pdev->dev);
 
+	pinctrl_pm_select_sleep_state(&pdev->dev);
+
 	return 0;
 }
 
@@ -1997,13 +2004,18 @@
 
 	clk_disable_unprepare(spi->clk);
 
-	return 0;
+	return pinctrl_pm_select_sleep_state(dev);
 }
 
 static int stm32_spi_runtime_resume(struct device *dev)
 {
 	struct spi_master *master = dev_get_drvdata(dev);
 	struct stm32_spi *spi = spi_master_get_devdata(master);
+	int ret;
+
+	ret = pinctrl_pm_select_default_state(dev);
+	if (ret)
+		return ret;
 
 	return clk_prepare_enable(spi->clk);
 }
@@ -2033,10 +2045,24 @@
 		return ret;
 
 	ret = spi_master_resume(master);
-	if (ret)
+	if (ret) {
 		clk_disable_unprepare(spi->clk);
+		return ret;
+	}
 
-	return ret;
+	ret = pm_runtime_get_sync(dev);
+	if (ret < 0) {
+		pm_runtime_put_noidle(dev);
+		dev_err(dev, "Unable to power device:%d\n", ret);
+		return ret;
+	}
+
+	spi->cfg->config(spi);
+
+	pm_runtime_mark_last_busy(dev);
+	pm_runtime_put_autosuspend(dev);
+
+	return 0;
 }
 #endif
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-sun6i.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-sun6i.c
@@ -198,7 +198,7 @@
 				  struct spi_transfer *tfr)
 {
 	struct sun6i_spi *sspi = spi_master_get_devdata(master);
-	unsigned int mclk_rate, div, timeout;
+	unsigned int mclk_rate, div, div_cdr1, div_cdr2, timeout;
 	unsigned int start, end, tx_time;
 	unsigned int trig_level;
 	unsigned int tx_len = 0;
@@ -287,14 +287,12 @@
 	 * First try CDR2, and if we can't reach the expected
 	 * frequency, fall back to CDR1.
 	 */
-	div = mclk_rate / (2 * tfr->speed_hz);
-	if (div <= (SUN6I_CLK_CTL_CDR2_MASK + 1)) {
-		if (div > 0)
-			div--;
-
-		reg = SUN6I_CLK_CTL_CDR2(div) | SUN6I_CLK_CTL_DRS;
+	div_cdr1 = DIV_ROUND_UP(mclk_rate, tfr->speed_hz);
+	div_cdr2 = DIV_ROUND_UP(div_cdr1, 2);
+	if (div_cdr2 <= (SUN6I_CLK_CTL_CDR2_MASK + 1)) {
+		reg = SUN6I_CLK_CTL_CDR2(div_cdr2 - 1) | SUN6I_CLK_CTL_DRS;
 	} else {
-		div = ilog2(mclk_rate) - ilog2(tfr->speed_hz);
+		div = min(SUN6I_CLK_CTL_CDR1_MASK, order_base_2(div_cdr1));
 		reg = SUN6I_CLK_CTL_CDR1(div);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-synquacer.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-synquacer.c
@@ -490,6 +490,10 @@
 	val &= ~(SYNQUACER_HSSPI_DMPSEL_CS_MASK <<
 		 SYNQUACER_HSSPI_DMPSEL_CS_SHIFT);
 	val |= spi->chip_select << SYNQUACER_HSSPI_DMPSEL_CS_SHIFT;
+
+	if (!enable)
+		val |= SYNQUACER_HSSPI_DMSTOP_STOP;
+
 	writel(val, sspi->regs + SYNQUACER_HSSPI_REG_DMSTART);
 }
 
@@ -658,7 +662,8 @@
 
 	if (!master->max_speed_hz) {
 		dev_err(&pdev->dev, "missing clock source\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto disable_clk;
 	}
 	master->min_speed_hz = master->max_speed_hz / 254;
 
@@ -671,7 +676,7 @@
 	rx_irq = platform_get_irq(pdev, 0);
 	if (rx_irq <= 0) {
 		ret = rx_irq;
-		goto put_spi;
+		goto disable_clk;
 	}
 	snprintf(sspi->rx_irq_name, SYNQUACER_HSSPI_IRQ_NAME_MAX, "%s-rx",
 		 dev_name(&pdev->dev));
@@ -679,13 +684,13 @@
 				0, sspi->rx_irq_name, sspi);
 	if (ret) {
 		dev_err(&pdev->dev, "request rx_irq failed (%d)\n", ret);
-		goto put_spi;
+		goto disable_clk;
 	}
 
 	tx_irq = platform_get_irq(pdev, 1);
 	if (tx_irq <= 0) {
 		ret = tx_irq;
-		goto put_spi;
+		goto disable_clk;
 	}
 	snprintf(sspi->tx_irq_name, SYNQUACER_HSSPI_IRQ_NAME_MAX, "%s-tx",
 		 dev_name(&pdev->dev));
@@ -693,7 +698,7 @@
 				0, sspi->tx_irq_name, sspi);
 	if (ret) {
 		dev_err(&pdev->dev, "request tx_irq failed (%d)\n", ret);
-		goto put_spi;
+		goto disable_clk;
 	}
 
 	master->dev.of_node = np;
@@ -711,7 +716,7 @@
 
 	ret = synquacer_spi_enable(master);
 	if (ret)
-		goto fail_enable;
+		goto disable_clk;
 
 	pm_runtime_set_active(sspi->dev);
 	pm_runtime_enable(sspi->dev);
@@ -724,7 +729,7 @@
 
 disable_pm:
 	pm_runtime_disable(sspi->dev);
-fail_enable:
+disable_clk:
 	clk_disable_unprepare(sspi->clk);
 put_spi:
 	spi_master_put(master);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-tegra114.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-tegra114.c
@@ -954,6 +954,7 @@
 
 	ret = pm_runtime_get_sync(tspi->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(tspi->dev);
 		dev_err(tspi->dev, "pm runtime failed, e = %d\n", ret);
 		if (cdata)
 			tegra_spi_cleanup(spi);
@@ -1472,6 +1473,7 @@
 
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(dev);
 		dev_err(dev, "pm runtime failed, e = %d\n", ret);
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-tegra20-sflash.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-tegra20-sflash.c
@@ -551,6 +551,7 @@
 
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(dev);
 		dev_err(dev, "pm runtime failed, e = %d\n", ret);
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-tegra20-slink.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-tegra20-slink.c
@@ -756,6 +756,7 @@
 
 	ret = pm_runtime_get_sync(tspi->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(tspi->dev);
 		dev_err(tspi->dev, "pm runtime failed, e = %d\n", ret);
 		return ret;
 	}
@@ -1073,7 +1074,7 @@
 	ret = clk_enable(tspi->clk);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Clock enable failed %d\n", ret);
-		goto exit_free_master;
+		goto exit_clk_unprepare;
 	}
 
 	spi_irq = platform_get_irq(pdev, 0);
@@ -1146,6 +1147,8 @@
 	free_irq(spi_irq, tspi);
 exit_clk_disable:
 	clk_disable(tspi->clk);
+exit_clk_unprepare:
+	clk_unprepare(tspi->clk);
 exit_free_master:
 	spi_master_put(master);
 	return ret;
@@ -1159,6 +1162,7 @@
 	free_irq(tspi->irq, tspi);
 
 	clk_disable(tspi->clk);
+	clk_unprepare(tspi->clk);
 
 	if (tspi->tx_dma_chan)
 		tegra_slink_deinit_dma_param(tspi, false);
@@ -1189,6 +1193,7 @@
 
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(dev);
 		dev_err(dev, "pm runtime failed, e = %d\n", ret);
 		return ret;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-ti-qspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-ti-qspi.c
@@ -62,6 +62,7 @@
 	u32 dc;
 
 	bool mmap_enabled;
+	int current_cs;
 };
 
 #define QSPI_PID			(0x0)
@@ -175,6 +176,7 @@
 
 	ret = pm_runtime_get_sync(qspi->dev);
 	if (ret < 0) {
+		pm_runtime_put_noidle(qspi->dev);
 		dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
 		return ret;
 	}
@@ -487,6 +489,7 @@
 				   MEM_CS_EN(spi->chip_select));
 	}
 	qspi->mmap_enabled = true;
+	qspi->current_cs = spi->chip_select;
 }
 
 static void ti_qspi_disable_memory_map(struct spi_device *spi)
@@ -498,6 +501,7 @@
 		regmap_update_bits(qspi->ctrl_base, qspi->ctrl_reg,
 				   MEM_CS_MASK, 0);
 	qspi->mmap_enabled = false;
+	qspi->current_cs = -1;
 }
 
 static void ti_qspi_setup_mmap_read(struct spi_device *spi, u8 opcode,
@@ -543,7 +547,7 @@
 
 	mutex_lock(&qspi->list_lock);
 
-	if (!qspi->mmap_enabled)
+	if (!qspi->mmap_enabled || qspi->current_cs != mem->spi->chip_select)
 		ti_qspi_enable_memory_map(mem->spi);
 	ti_qspi_setup_mmap_read(mem->spi, op->cmd.opcode, op->data.buswidth,
 				op->addr.nbytes, op->dummy.nbytes);
@@ -799,6 +803,7 @@
 		}
 	}
 	qspi->mmap_enabled = false;
+	qspi->current_cs = -1;
 
 	ret = devm_spi_register_master(&pdev->dev, master);
 	if (!ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-uniphier.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-uniphier.c
@@ -290,25 +290,32 @@
 	}
 }
 
-static void uniphier_spi_fill_tx_fifo(struct uniphier_spi_priv *priv)
+static void uniphier_spi_set_fifo_threshold(struct uniphier_spi_priv *priv,
+					    unsigned int threshold)
 {
-	unsigned int fifo_threshold, fill_bytes;
 	u32 val;
 
-	fifo_threshold = DIV_ROUND_UP(priv->rx_bytes,
-				bytes_per_word(priv->bits_per_word));
-	fifo_threshold = min(fifo_threshold, SSI_FIFO_DEPTH);
-
-	fill_bytes = fifo_threshold - (priv->rx_bytes - priv->tx_bytes);
-
-	/* set fifo threshold */
 	val = readl(priv->base + SSI_FC);
 	val &= ~(SSI_FC_TXFTH_MASK | SSI_FC_RXFTH_MASK);
-	val |= FIELD_PREP(SSI_FC_TXFTH_MASK, fifo_threshold);
-	val |= FIELD_PREP(SSI_FC_RXFTH_MASK, fifo_threshold);
+	val |= FIELD_PREP(SSI_FC_TXFTH_MASK, SSI_FIFO_DEPTH - threshold);
+	val |= FIELD_PREP(SSI_FC_RXFTH_MASK, threshold);
 	writel(val, priv->base + SSI_FC);
+}
+
+static void uniphier_spi_fill_tx_fifo(struct uniphier_spi_priv *priv)
+{
+	unsigned int fifo_threshold, fill_words;
+	unsigned int bpw = bytes_per_word(priv->bits_per_word);
+
+	fifo_threshold = DIV_ROUND_UP(priv->rx_bytes, bpw);
+	fifo_threshold = min(fifo_threshold, SSI_FIFO_DEPTH);
+
+	uniphier_spi_set_fifo_threshold(priv, fifo_threshold);
+
+	fill_words = fifo_threshold -
+		DIV_ROUND_UP(priv->rx_bytes - priv->tx_bytes, bpw);
 
-	while (fill_bytes--)
+	while (fill_words--)
 		uniphier_spi_send(priv);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi-zynqmp-gqspi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi-zynqmp-gqspi.c
@@ -401,9 +401,6 @@
 
 	zynqmp_gqspi_write(xqspi, GQSPI_GEN_FIFO_OFST, genfifoentry);
 
-	/* Dummy generic FIFO entry */
-	zynqmp_gqspi_write(xqspi, GQSPI_GEN_FIFO_OFST, 0x0);
-
 	/* Manually start the generic FIFO command */
 	zynqmp_gqspi_write(xqspi, GQSPI_CONFIG_OFST,
 			zynqmp_gqspi_read(xqspi, GQSPI_CONFIG_OFST) |
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spi.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spi.c
@@ -405,9 +405,11 @@
 	if (ret)
 		return ret;
 
-	ret = sdrv->probe(spi);
-	if (ret)
-		dev_pm_domain_detach(dev, true);
+	if (sdrv->probe) {
+		ret = sdrv->probe(spi);
+		if (ret)
+			dev_pm_domain_detach(dev, true);
+	}
 
 	return ret;
 }
@@ -415,9 +417,10 @@
 static int spi_drv_remove(struct device *dev)
 {
 	const struct spi_driver		*sdrv = to_spi_driver(dev->driver);
-	int ret;
+	int ret = 0;
 
-	ret = sdrv->remove(to_spi_device(dev));
+	if (sdrv->remove)
+		ret = sdrv->remove(to_spi_device(dev));
 	dev_pm_domain_detach(dev, true);
 
 	return ret;
@@ -442,10 +445,8 @@
 {
 	sdrv->driver.owner = owner;
 	sdrv->driver.bus = &spi_bus_type;
-	if (sdrv->probe)
-		sdrv->driver.probe = spi_drv_probe;
-	if (sdrv->remove)
-		sdrv->driver.remove = spi_drv_remove;
+	sdrv->driver.probe = spi_drv_probe;
+	sdrv->driver.remove = spi_drv_remove;
 	if (sdrv->shutdown)
 		sdrv->driver.shutdown = spi_drv_shutdown;
 	return driver_register(&sdrv->driver);
@@ -475,6 +476,12 @@
  */
 static DEFINE_MUTEX(board_lock);
 
+/*
+ * Prevents addition of devices with same chip select and
+ * addition of devices below an unregistering controller.
+ */
+static DEFINE_MUTEX(spi_add_lock);
+
 /**
  * spi_alloc_device - Allocate a new SPI device
  * @ctlr: Controller to which device is connected
@@ -510,6 +517,7 @@
 	spi->dev.bus = &spi_bus_type;
 	spi->dev.release = spidev_release;
 	spi->cs_gpio = -ENOENT;
+	spi->mode = ctlr->buswidth_override_bits;
 
 	spin_lock_init(&spi->statistics.lock);
 
@@ -553,7 +561,6 @@
  */
 int spi_add_device(struct spi_device *spi)
 {
-	static DEFINE_MUTEX(spi_add_lock);
 	struct spi_controller *ctlr = spi->controller;
 	struct device *dev = ctlr->dev.parent;
 	int status;
@@ -581,6 +588,13 @@
 		goto done;
 	}
 
+	/* Controller may unregister concurrently */
+	if (IS_ENABLED(CONFIG_SPI_DYNAMIC) &&
+	    !device_is_registered(&ctlr->dev)) {
+		status = -ENODEV;
+		goto done;
+	}
+
 	/* Descriptors take precedence */
 	if (ctlr->cs_gpiods)
 		spi->cs_gpiod = ctlr->cs_gpiods[spi->chip_select];
@@ -1229,8 +1243,6 @@
 	if (msg->status && ctlr->handle_err)
 		ctlr->handle_err(ctlr, msg);
 
-	spi_res_release(ctlr, msg);
-
 	spi_finalize_current_message(ctlr);
 
 	return ret;
@@ -1513,6 +1525,13 @@
 
 	spi_unmap_msg(ctlr, mesg);
 
+	/* In the prepare_messages callback the spi bus has the opportunity to
+	 * split a transfer to smaller chunks.
+	 * Release splited transfers here since spi_map_msg is done on the
+	 * splited transfers.
+	 */
+	spi_res_release(ctlr, mesg);
+
 	if (ctlr->cur_msg_prepared && ctlr->unprepare_message) {
 		ret = ctlr->unprepare_message(ctlr, mesg);
 		if (ret) {
@@ -1711,15 +1730,7 @@
 		spi->mode |= SPI_3WIRE;
 	if (of_property_read_bool(nc, "spi-lsb-first"))
 		spi->mode |= SPI_LSB_FIRST;
-
-	/*
-	 * For descriptors associated with the device, polarity inversion is
-	 * handled in the gpiolib, so all chip selects are "active high" in
-	 * the logical sense, the gpiolib will invert the line if need be.
-	 */
-	if (ctlr->use_gpio_descriptors)
-		spi->mode |= SPI_CS_HIGH;
-	else if (of_property_read_bool(nc, "spi-cs-high"))
+	if (of_property_read_bool(nc, "spi-cs-high"))
 		spi->mode |= SPI_CS_HIGH;
 
 	/* Device DUAL/QUAD mode */
@@ -1783,6 +1794,15 @@
 	}
 	spi->chip_select = value;
 
+	/*
+	 * For descriptors associated with the device, polarity inversion is
+	 * handled in the gpiolib, so all gpio chip selects are "active high"
+	 * in the logical sense, the gpiolib will invert the line if need be.
+	 */
+	if ((ctlr->use_gpio_descriptors) && ctlr->cs_gpiods &&
+	    ctlr->cs_gpiods[spi->chip_select])
+		spi->mode |= SPI_CS_HIGH;
+
 	/* Device speed */
 	rc = of_property_read_u32(nc, "spi-max-frequency", &value);
 	if (rc) {
@@ -1949,6 +1969,7 @@
 			}
 
 			lookup->max_speed_hz = sb->connection_speed;
+			lookup->bits_per_word = sb->data_bit_length;
 
 			if (sb->clock_phase == ACPI_SPI_SECOND_PHASE)
 				lookup->mode |= SPI_CPHA;
@@ -2010,9 +2031,10 @@
 		return AE_NO_MEMORY;
 	}
 
+
 	ACPI_COMPANION_SET(&spi->dev, adev);
 	spi->max_speed_hz	= lookup.max_speed_hz;
-	spi->mode		= lookup.mode;
+	spi->mode		|= lookup.mode;
 	spi->irq		= lookup.irq;
 	spi->bits_per_word	= lookup.bits_per_word;
 	spi->chip_select	= lookup.chip_select;
@@ -2238,6 +2260,49 @@
 }
 EXPORT_SYMBOL_GPL(__spi_alloc_controller);
 
+static void devm_spi_release_controller(struct device *dev, void *ctlr)
+{
+	spi_controller_put(*(struct spi_controller **)ctlr);
+}
+
+/**
+ * __devm_spi_alloc_controller - resource-managed __spi_alloc_controller()
+ * @dev: physical device of SPI controller
+ * @size: how much zeroed driver-private data to allocate
+ * @slave: whether to allocate an SPI master (false) or SPI slave (true)
+ * Context: can sleep
+ *
+ * Allocate an SPI controller and automatically release a reference on it
+ * when @dev is unbound from its driver.  Drivers are thus relieved from
+ * having to call spi_controller_put().
+ *
+ * The arguments to this function are identical to __spi_alloc_controller().
+ *
+ * Return: the SPI controller structure on success, else NULL.
+ */
+struct spi_controller *__devm_spi_alloc_controller(struct device *dev,
+						   unsigned int size,
+						   bool slave)
+{
+	struct spi_controller **ptr, *ctlr;
+
+	ptr = devres_alloc(devm_spi_release_controller, sizeof(*ptr),
+			   GFP_KERNEL);
+	if (!ptr)
+		return NULL;
+
+	ctlr = __spi_alloc_controller(dev, size, slave);
+	if (ctlr) {
+		*ptr = ctlr;
+		devres_add(dev, ptr);
+	} else {
+		devres_free(ptr);
+	}
+
+	return ctlr;
+}
+EXPORT_SYMBOL_GPL(__devm_spi_alloc_controller);
+
 #ifdef CONFIG_OF
 static int of_spi_get_gpio_numbers(struct spi_controller *ctlr)
 {
@@ -2451,7 +2516,7 @@
 		if (ctlr->use_gpio_descriptors) {
 			status = spi_get_gpio_descs(ctlr);
 			if (status)
-				return status;
+				goto free_bus_id;
 			/*
 			 * A controller using GPIO descriptors always
 			 * supports SPI_CS_HIGH if need be.
@@ -2461,7 +2526,7 @@
 			/* Legacy code path for GPIOs from DT */
 			status = of_spi_get_gpio_numbers(ctlr);
 			if (status)
-				return status;
+				goto free_bus_id;
 		}
 	}
 
@@ -2469,17 +2534,14 @@
 	 * Even if it's just one always-selected device, there must
 	 * be at least one chipselect.
 	 */
-	if (!ctlr->num_chipselect)
-		return -EINVAL;
+	if (!ctlr->num_chipselect) {
+		status = -EINVAL;
+		goto free_bus_id;
+	}
 
 	status = device_add(&ctlr->dev);
-	if (status < 0) {
-		/* free bus id */
-		mutex_lock(&board_lock);
-		idr_remove(&spi_master_idr, ctlr->bus_num);
-		mutex_unlock(&board_lock);
-		goto done;
-	}
+	if (status < 0)
+		goto free_bus_id;
 	dev_dbg(dev, "registered %s %s\n",
 			spi_controller_is_slave(ctlr) ? "slave" : "master",
 			dev_name(&ctlr->dev));
@@ -2495,11 +2557,7 @@
 		status = spi_controller_initialize_queue(ctlr);
 		if (status) {
 			device_del(&ctlr->dev);
-			/* free bus id */
-			mutex_lock(&board_lock);
-			idr_remove(&spi_master_idr, ctlr->bus_num);
-			mutex_unlock(&board_lock);
-			goto done;
+			goto free_bus_id;
 		}
 	}
 	/* add statistics */
@@ -2514,7 +2572,12 @@
 	/* Register devices from the device tree and ACPI */
 	of_register_spi_devices(ctlr);
 	acpi_register_spi_devices(ctlr);
-done:
+	return status;
+
+free_bus_id:
+	mutex_lock(&board_lock);
+	idr_remove(&spi_master_idr, ctlr->bus_num);
+	mutex_unlock(&board_lock);
 	return status;
 }
 EXPORT_SYMBOL_GPL(spi_register_controller);
@@ -2559,6 +2622,11 @@
 }
 EXPORT_SYMBOL_GPL(devm_spi_register_controller);
 
+static int devm_spi_match_controller(struct device *dev, void *res, void *ctlr)
+{
+	return *(struct spi_controller **)res == ctlr;
+}
+
 static int __unregister(struct device *dev, void *null)
 {
 	spi_unregister_device(to_spi_device(dev));
@@ -2582,6 +2650,12 @@
 	struct spi_controller *found;
 	int id = ctlr->bus_num;
 
+	/* Prevent addition of new devices, unregister existing ones */
+	if (IS_ENABLED(CONFIG_SPI_DYNAMIC))
+		mutex_lock(&spi_add_lock);
+
+	device_for_each_child(&ctlr->dev, NULL, __unregister);
+
 	/* First make sure that this controller was ever added */
 	mutex_lock(&board_lock);
 	found = idr_find(&spi_master_idr, id);
@@ -2594,13 +2668,23 @@
 	list_del(&ctlr->list);
 	mutex_unlock(&board_lock);
 
-	device_for_each_child(&ctlr->dev, NULL, __unregister);
-	device_unregister(&ctlr->dev);
+	device_del(&ctlr->dev);
+
+	/* Release the last reference on the controller if its driver
+	 * has not yet been converted to devm_spi_alloc_master/slave().
+	 */
+	if (!devres_find(ctlr->dev.parent, devm_spi_release_controller,
+			 devm_spi_match_controller, ctlr))
+		put_device(&ctlr->dev);
+
 	/* free bus id */
 	mutex_lock(&board_lock);
 	if (found == ctlr)
 		idr_remove(&spi_master_idr, id);
 	mutex_unlock(&board_lock);
+
+	if (IS_ENABLED(CONFIG_SPI_DYNAMIC))
+		mutex_unlock(&spi_add_lock);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_controller);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/spi/spidev.c
+++ linux-gkeop-5.4-5.4.0/drivers/spi/spidev.c
@@ -223,6 +223,11 @@
 	for (n = n_xfers, k_tmp = k_xfers, u_tmp = u_xfers;
 			n;
 			n--, k_tmp++, u_tmp++) {
+		/* Ensure that also following allocations from rx_buf/tx_buf will meet
+		 * DMA alignment requirements.
+		 */
+		unsigned int len_aligned = ALIGN(u_tmp->len, ARCH_KMALLOC_MINALIGN);
+
 		k_tmp->len = u_tmp->len;
 
 		total += k_tmp->len;
@@ -238,17 +243,17 @@
 
 		if (u_tmp->rx_buf) {
 			/* this transfer needs space in RX bounce buffer */
-			rx_total += k_tmp->len;
+			rx_total += len_aligned;
 			if (rx_total > bufsiz) {
 				status = -EMSGSIZE;
 				goto done;
 			}
 			k_tmp->rx_buf = rx_buf;
-			rx_buf += k_tmp->len;
+			rx_buf += len_aligned;
 		}
 		if (u_tmp->tx_buf) {
 			/* this transfer needs space in TX bounce buffer */
-			tx_total += k_tmp->len;
+			tx_total += len_aligned;
 			if (tx_total > bufsiz) {
 				status = -EMSGSIZE;
 				goto done;
@@ -258,7 +263,7 @@
 						(uintptr_t) u_tmp->tx_buf,
 					u_tmp->len))
 				goto done;
-			tx_buf += k_tmp->len;
+			tx_buf += len_aligned;
 		}
 
 		k_tmp->cs_change = !!u_tmp->cs_change;
@@ -290,16 +295,16 @@
 		goto done;
 
 	/* copy any rx data out of bounce buffer */
-	rx_buf = spidev->rx_buffer;
-	for (n = n_xfers, u_tmp = u_xfers; n; n--, u_tmp++) {
+	for (n = n_xfers, k_tmp = k_xfers, u_tmp = u_xfers;
+			n;
+			n--, k_tmp++, u_tmp++) {
 		if (u_tmp->rx_buf) {
 			if (copy_to_user((u8 __user *)
-					(uintptr_t) u_tmp->rx_buf, rx_buf,
+					(uintptr_t) u_tmp->rx_buf, k_tmp->rx_buf,
 					u_tmp->len)) {
 				status = -EFAULT;
 				goto done;
 			}
-			rx_buf += u_tmp->len;
 		}
 	}
 	status = total;
@@ -394,6 +399,7 @@
 		else
 			retval = get_user(tmp, (u32 __user *)arg);
 		if (retval == 0) {
+			struct spi_controller *ctlr = spi->controller;
 			u32	save = spi->mode;
 
 			if (tmp & ~SPI_MODE_MASK) {
@@ -401,6 +407,10 @@
 				break;
 			}
 
+			if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
+			    ctlr->cs_gpiods[spi->chip_select])
+				tmp |= SPI_CS_HIGH;
+
 			tmp |= spi->mode & ~SPI_MODE_MASK;
 			spi->mode = (u16)tmp;
 			retval = spi_setup(spi);
@@ -600,15 +610,20 @@
 static int spidev_release(struct inode *inode, struct file *filp)
 {
 	struct spidev_data	*spidev;
+	int			dofree;
 
 	mutex_lock(&device_list_lock);
 	spidev = filp->private_data;
 	filp->private_data = NULL;
 
+	spin_lock_irq(&spidev->spi_lock);
+	/* ... after we unbound from the underlying device? */
+	dofree = (spidev->spi == NULL);
+	spin_unlock_irq(&spidev->spi_lock);
+
 	/* last close? */
 	spidev->users--;
 	if (!spidev->users) {
-		int		dofree;
 
 		kfree(spidev->tx_buffer);
 		spidev->tx_buffer = NULL;
@@ -616,17 +631,15 @@
 		kfree(spidev->rx_buffer);
 		spidev->rx_buffer = NULL;
 
-		spin_lock_irq(&spidev->spi_lock);
-		if (spidev->spi)
-			spidev->speed_hz = spidev->spi->max_speed_hz;
-
-		/* ... after we unbound from the underlying device? */
-		dofree = (spidev->spi == NULL);
-		spin_unlock_irq(&spidev->spi_lock);
-
 		if (dofree)
 			kfree(spidev);
+		else
+			spidev->speed_hz = spidev->spi->max_speed_hz;
 	}
+#ifdef CONFIG_SPI_SLAVE
+	if (!dofree)
+		spi_slave_abort(spidev->spi);
+#endif
 	mutex_unlock(&device_list_lock);
 
 	return 0;
@@ -775,13 +788,13 @@
 {
 	struct spidev_data	*spidev = spi_get_drvdata(spi);
 
+	/* prevent new opens */
+	mutex_lock(&device_list_lock);
 	/* make sure ops on existing fds can abort cleanly */
 	spin_lock_irq(&spidev->spi_lock);
 	spidev->spi = NULL;
 	spin_unlock_irq(&spidev->spi_lock);
 
-	/* prevent new opens */
-	mutex_lock(&device_list_lock);
 	list_del(&spidev->device_entry);
 	device_destroy(spidev_class, spidev->devt);
 	clear_bit(MINOR(spidev->devt), minors);
--- linux-gkeop-5.4-5.4.0.orig/drivers/spmi/spmi-pmic-arb.c
+++ linux-gkeop-5.4-5.4.0/drivers/spmi/spmi-pmic-arb.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2012-2015, 2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2015, 2017, 2021, The Linux Foundation. All rights reserved.
  */
 #include <linux/bitmap.h>
 #include <linux/delay.h>
@@ -505,8 +505,7 @@
 static void periph_interrupt(struct spmi_pmic_arb *pmic_arb, u16 apid)
 {
 	unsigned int irq;
-	u32 status;
-	int id;
+	u32 status, id;
 	u8 sid = (pmic_arb->apid_data[apid].ppid >> 8) & 0xF;
 	u8 per = pmic_arb->apid_data[apid].ppid & 0xFF;
 
@@ -731,6 +730,7 @@
 	return 0;
 }
 
+static struct lock_class_key qpnpint_irq_lock_class, qpnpint_irq_request_class;
 
 static void qpnpint_irq_domain_map(struct spmi_pmic_arb *pmic_arb,
 				   struct irq_domain *domain, unsigned int virq,
@@ -746,6 +746,9 @@
 	else
 		handler = handle_level_irq;
 
+
+	irq_set_lockdep_class(virq, &qpnpint_irq_lock_class,
+			      &qpnpint_irq_request_class);
 	irq_domain_set_info(domain, virq, hwirq, &pmic_arb_irqchip, pmic_arb,
 			    handler, NULL, NULL);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/android/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/staging/android/Kconfig
@@ -4,7 +4,7 @@
 if ANDROID
 
 config ASHMEM
-	bool "Enable the Anonymous Shared Memory Subsystem"
+	tristate "Enable the Anonymous Shared Memory Subsystem"
 	depends on SHMEM
 	help
 	  The ashmem subsystem is a new shared memory allocator, similar to
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/android/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/staging/android/Makefile
@@ -3,5 +3,6 @@
 
 obj-y					+= ion/
 
-obj-$(CONFIG_ASHMEM)			+= ashmem.o
+ashmem_linux-y				+= ashmem.o
+obj-$(CONFIG_ASHMEM)			+= ashmem_linux.o
 obj-$(CONFIG_ANDROID_VSOC)		+= vsoc.o
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/android/ashmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/android/ashmem.c
@@ -19,6 +19,7 @@
 #include <linux/security.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
+#include <linux/module.h>
 #include <linux/uaccess.h>
 #include <linux/personality.h>
 #include <linux/bitops.h>
@@ -95,6 +96,15 @@
 static struct kmem_cache *ashmem_area_cachep __read_mostly;
 static struct kmem_cache *ashmem_range_cachep __read_mostly;
 
+/*
+ * A separate lockdep class for the backing shmem inodes to resolve the lockdep
+ * warning about the race between kswapd taking fs_reclaim before inode_lock
+ * and write syscall taking inode_lock and then fs_reclaim.
+ * Note that such race is impossible because ashmem does not support write
+ * syscalls operating on the backing shmem.
+ */
+static struct lock_class_key backing_shmem_inode_class;
+
 static inline unsigned long range_size(struct ashmem_range *range)
 {
 	return range->pgend - range->pgstart + 1;
@@ -351,8 +361,23 @@
 	       _calc_vm_trans(prot, PROT_EXEC,  VM_MAYEXEC);
 }
 
+static int ashmem_vmfile_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	/* do not allow to mmap ashmem backing shmem file directly */
+	return -EPERM;
+}
+
+static unsigned long
+ashmem_vmfile_get_unmapped_area(struct file *file, unsigned long addr,
+				unsigned long len, unsigned long pgoff,
+				unsigned long flags)
+{
+	return current->mm->get_unmapped_area(file, addr, len, pgoff, flags);
+}
+
 static int ashmem_mmap(struct file *file, struct vm_area_struct *vma)
 {
+	static struct file_operations vmfile_fops;
 	struct ashmem_area *asma = file->private_data;
 	int ret = 0;
 
@@ -381,6 +406,7 @@
 	if (!asma->file) {
 		char *name = ASHMEM_NAME_DEF;
 		struct file *vmfile;
+		struct inode *inode;
 
 		if (asma->name[ASHMEM_NAME_PREFIX_LEN] != '\0')
 			name = asma->name;
@@ -392,7 +418,22 @@
 			goto out;
 		}
 		vmfile->f_mode |= FMODE_LSEEK;
+		inode = file_inode(vmfile);
+		lockdep_set_class(&inode->i_rwsem, &backing_shmem_inode_class);
 		asma->file = vmfile;
+		/*
+		 * override mmap operation of the vmfile so that it can't be
+		 * remapped which would lead to creation of a new vma with no
+		 * asma permission checks. Have to override get_unmapped_area
+		 * as well to prevent VM_BUG_ON check for f_ops modification.
+		 */
+		if (!vmfile_fops.mmap) {
+			vmfile_fops = *vmfile->f_op;
+			vmfile_fops.mmap = ashmem_vmfile_mmap;
+			vmfile_fops.get_unmapped_area =
+					ashmem_vmfile_get_unmapped_area;
+		}
+		vmfile->f_op = &vmfile_fops;
 	}
 	get_file(asma->file);
 
@@ -924,4 +965,18 @@
 out:
 	return ret;
 }
-device_initcall(ashmem_init);
+
+static void __exit ashmem_exit(void)
+{
+	misc_deregister(&ashmem_misc);
+	unregister_shrinker(&ashmem_shrinker);
+	kmem_cache_destroy(ashmem_range_cachep);
+	kmem_cache_destroy(ashmem_area_cachep);
+}
+
+module_init(ashmem_init);
+module_exit(ashmem_exit);
+
+MODULE_AUTHOR("Google, Inc.");
+MODULE_DESCRIPTION("Driver for Android shared memory device");
+MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/android/ion/ion_heap.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/android/ion/ion_heap.c
@@ -99,12 +99,12 @@
 
 static int ion_heap_clear_pages(struct page **pages, int num, pgprot_t pgprot)
 {
-	void *addr = vm_map_ram(pages, num, -1, pgprot);
+	void *addr = vmap(pages, num, VM_MAP, pgprot);
 
 	if (!addr)
 		return -ENOMEM;
 	memset(addr, 0, PAGE_SIZE * num);
-	vm_unmap_ram(addr, num);
+	vunmap(addr);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/axis-fifo/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/staging/axis-fifo/Kconfig
@@ -4,7 +4,7 @@
 #
 config XIL_AXIS_FIFO
 	tristate "Xilinx AXI-Stream FIFO IP core driver"
-	depends on OF
+	depends on OF && HAS_IOMEM
 	help
 	  This adds support for the Xilinx AXI-Stream FIFO IP core driver.
 	  The AXI Streaming FIFO allows memory mapped access to a AXI Streaming
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/comedi_fops.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/comedi_fops.c
@@ -2725,8 +2725,10 @@
 	}
 
 	cfp = kzalloc(sizeof(*cfp), GFP_KERNEL);
-	if (!cfp)
+	if (!cfp) {
+		comedi_dev_put(dev);
 		return -ENOMEM;
+	}
 
 	cfp->dev = dev;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/addi_apci_1032.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/addi_apci_1032.c
@@ -106,14 +106,22 @@
 				    unsigned int *data)
 {
 	struct apci1032_private *devpriv = dev->private;
-	unsigned int shift, oldmask;
+	unsigned int shift, oldmask, himask, lomask;
 
 	switch (data[0]) {
 	case INSN_CONFIG_DIGITAL_TRIG:
 		if (data[1] != 0)
 			return -EINVAL;
 		shift = data[3];
-		oldmask = (1U << shift) - 1;
+		if (shift < 32) {
+			oldmask = (1U << shift) - 1;
+			himask = data[4] << shift;
+			lomask = data[5] << shift;
+		} else {
+			oldmask = 0xffffffffu;
+			himask = 0;
+			lomask = 0;
+		}
 		switch (data[2]) {
 		case COMEDI_DIGITAL_TRIG_DISABLE:
 			devpriv->ctrl = 0;
@@ -136,8 +144,8 @@
 				devpriv->mode2 &= oldmask;
 			}
 			/* configure specified channels */
-			devpriv->mode1 |= data[4] << shift;
-			devpriv->mode2 |= data[5] << shift;
+			devpriv->mode1 |= himask;
+			devpriv->mode2 |= lomask;
 			break;
 		case COMEDI_DIGITAL_TRIG_ENABLE_LEVELS:
 			if (devpriv->ctrl != (APCI1032_CTRL_INT_ENA |
@@ -154,8 +162,8 @@
 				devpriv->mode2 &= oldmask;
 			}
 			/* configure specified channels */
-			devpriv->mode1 |= data[4] << shift;
-			devpriv->mode2 |= data[5] << shift;
+			devpriv->mode1 |= himask;
+			devpriv->mode2 |= lomask;
 			break;
 		default:
 			return -EINVAL;
@@ -252,6 +260,7 @@
 	struct apci1032_private *devpriv = dev->private;
 	struct comedi_subdevice *s = dev->read_subdev;
 	unsigned int ctrl;
+	unsigned short val;
 
 	/* check interrupt is from this device */
 	if ((inl(devpriv->amcc_iobase + AMCC_OP_REG_INTCSR) &
@@ -267,7 +276,8 @@
 	outl(ctrl & ~APCI1032_CTRL_INT_ENA, dev->iobase + APCI1032_CTRL_REG);
 
 	s->state = inl(dev->iobase + APCI1032_STATUS_REG) & 0xffff;
-	comedi_buf_write_samples(s, &s->state, 1);
+	val = s->state;
+	comedi_buf_write_samples(s, &val, 1);
 	comedi_handle_events(dev, s);
 
 	/* enable the interrupt */
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/addi_apci_1500.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/addi_apci_1500.c
@@ -208,7 +208,7 @@
 	struct comedi_device *dev = d;
 	struct apci1500_private *devpriv = dev->private;
 	struct comedi_subdevice *s = dev->read_subdev;
-	unsigned int status = 0;
+	unsigned short status = 0;
 	unsigned int val;
 
 	val = inl(devpriv->amcc + AMCC_OP_REG_INTCSR);
@@ -238,14 +238,14 @@
 	 *
 	 *    Mask     Meaning
 	 * ----------  ------------------------------------------
-	 * 0x00000001  Event 1 has occurred
-	 * 0x00000010  Event 2 has occurred
-	 * 0x00000100  Counter/timer 1 has run down (not implemented)
-	 * 0x00001000  Counter/timer 2 has run down (not implemented)
-	 * 0x00010000  Counter 3 has run down (not implemented)
-	 * 0x00100000  Watchdog has run down (not implemented)
-	 * 0x01000000  Voltage error
-	 * 0x10000000  Short-circuit error
+	 * 0b00000001  Event 1 has occurred
+	 * 0b00000010  Event 2 has occurred
+	 * 0b00000100  Counter/timer 1 has run down (not implemented)
+	 * 0b00001000  Counter/timer 2 has run down (not implemented)
+	 * 0b00010000  Counter 3 has run down (not implemented)
+	 * 0b00100000  Watchdog has run down (not implemented)
+	 * 0b01000000  Voltage error
+	 * 0b10000000  Short-circuit error
 	 */
 	comedi_buf_write_samples(s, &status, 1);
 	comedi_handle_events(dev, s);
@@ -452,13 +452,14 @@
 	struct apci1500_private *devpriv = dev->private;
 	unsigned int trig = data[1];
 	unsigned int shift = data[3];
-	unsigned int hi_mask = data[4] << shift;
-	unsigned int lo_mask = data[5] << shift;
-	unsigned int chan_mask = hi_mask | lo_mask;
-	unsigned int old_mask = (1 << shift) - 1;
-	unsigned int pm = devpriv->pm[trig] & old_mask;
-	unsigned int pt = devpriv->pt[trig] & old_mask;
-	unsigned int pp = devpriv->pp[trig] & old_mask;
+	unsigned int hi_mask;
+	unsigned int lo_mask;
+	unsigned int chan_mask;
+	unsigned int old_mask;
+	unsigned int pm;
+	unsigned int pt;
+	unsigned int pp;
+	unsigned int invalid_chan;
 
 	if (trig > 1) {
 		dev_dbg(dev->class_dev,
@@ -466,11 +467,28 @@
 		return -EINVAL;
 	}
 
-	if (chan_mask > 0xffff) {
+	if (shift <= 16) {
+		hi_mask = data[4] << shift;
+		lo_mask = data[5] << shift;
+		old_mask = (1U << shift) - 1;
+		invalid_chan = (data[4] | data[5]) >> (16 - shift);
+	} else {
+		hi_mask = 0;
+		lo_mask = 0;
+		old_mask = 0xffff;
+		invalid_chan = data[4] | data[5];
+	}
+	chan_mask = hi_mask | lo_mask;
+
+	if (invalid_chan) {
 		dev_dbg(dev->class_dev, "invalid digital trigger channel\n");
 		return -EINVAL;
 	}
 
+	pm = devpriv->pm[trig] & old_mask;
+	pt = devpriv->pt[trig] & old_mask;
+	pp = devpriv->pp[trig] & old_mask;
+
 	switch (data[2]) {
 	case COMEDI_DIGITAL_TRIG_DISABLE:
 		/* clear trigger configuration */
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/addi_apci_1564.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/addi_apci_1564.c
@@ -331,14 +331,22 @@
 				    unsigned int *data)
 {
 	struct apci1564_private *devpriv = dev->private;
-	unsigned int shift, oldmask;
+	unsigned int shift, oldmask, himask, lomask;
 
 	switch (data[0]) {
 	case INSN_CONFIG_DIGITAL_TRIG:
 		if (data[1] != 0)
 			return -EINVAL;
 		shift = data[3];
-		oldmask = (1U << shift) - 1;
+		if (shift < 32) {
+			oldmask = (1U << shift) - 1;
+			himask = data[4] << shift;
+			lomask = data[5] << shift;
+		} else {
+			oldmask = 0xffffffffu;
+			himask = 0;
+			lomask = 0;
+		}
 		switch (data[2]) {
 		case COMEDI_DIGITAL_TRIG_DISABLE:
 			devpriv->ctrl = 0;
@@ -362,8 +370,8 @@
 				devpriv->mode2 &= oldmask;
 			}
 			/* configure specified channels */
-			devpriv->mode1 |= data[4] << shift;
-			devpriv->mode2 |= data[5] << shift;
+			devpriv->mode1 |= himask;
+			devpriv->mode2 |= lomask;
 			break;
 		case COMEDI_DIGITAL_TRIG_ENABLE_LEVELS:
 			if (devpriv->ctrl != (APCI1564_DI_IRQ_ENA |
@@ -380,8 +388,8 @@
 				devpriv->mode2 &= oldmask;
 			}
 			/* configure specified channels */
-			devpriv->mode1 |= data[4] << shift;
-			devpriv->mode2 |= data[5] << shift;
+			devpriv->mode1 |= himask;
+			devpriv->mode2 |= lomask;
 			break;
 		default:
 			return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/adv_pci1710.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/adv_pci1710.c
@@ -46,8 +46,8 @@
 #define PCI171X_RANGE_UNI	BIT(4)
 #define PCI171X_RANGE_GAIN(x)	(((x) & 0x7) << 0)
 #define PCI171X_MUX_REG		0x04	/* W:   A/D multiplexor control */
-#define PCI171X_MUX_CHANH(x)	(((x) & 0xf) << 8)
-#define PCI171X_MUX_CHANL(x)	(((x) & 0xf) << 0)
+#define PCI171X_MUX_CHANH(x)	(((x) & 0xff) << 8)
+#define PCI171X_MUX_CHANL(x)	(((x) & 0xff) << 0)
 #define PCI171X_MUX_CHAN(x)	(PCI171X_MUX_CHANH(x) | PCI171X_MUX_CHANL(x))
 #define PCI171X_STATUS_REG	0x06	/* R:   status register */
 #define PCI171X_STATUS_IRQ	BIT(11)	/* 1=IRQ occurred */
@@ -300,11 +300,11 @@
 static int pci1710_ai_read_sample(struct comedi_device *dev,
 				  struct comedi_subdevice *s,
 				  unsigned int cur_chan,
-				  unsigned int *val)
+				  unsigned short *val)
 {
 	const struct boardtype *board = dev->board_ptr;
 	struct pci1710_private *devpriv = dev->private;
-	unsigned int sample;
+	unsigned short sample;
 	unsigned int chan;
 
 	sample = inw(dev->iobase + PCI171X_AD_DATA_REG);
@@ -345,7 +345,7 @@
 	pci1710_ai_setup_chanlist(dev, s, &insn->chanspec, 1, 1);
 
 	for (i = 0; i < insn->n; i++) {
-		unsigned int val;
+		unsigned short val;
 
 		/* start conversion */
 		outw(0, dev->iobase + PCI171X_SOFTTRG_REG);
@@ -395,7 +395,7 @@
 {
 	struct comedi_cmd *cmd = &s->async->cmd;
 	unsigned int status;
-	unsigned int val;
+	unsigned short val;
 	int ret;
 
 	status = inw(dev->iobase + PCI171X_STATUS_REG);
@@ -455,7 +455,7 @@
 	}
 
 	for (i = 0; i < devpriv->max_samples; i++) {
-		unsigned int val;
+		unsigned short val;
 		int ret;
 
 		ret = pci1710_ai_read_sample(dev, s, s->async->cur_chan, &val);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/cb_pcidas.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/cb_pcidas.c
@@ -1342,6 +1342,7 @@
 		if (dev->irq && board->has_ao_fifo) {
 			dev->write_subdev = s;
 			s->subdev_flags	|= SDF_CMD_WRITE;
+			s->len_chanlist	= s->n_chan;
 			s->do_cmdtest	= cb_pcidas_ao_cmdtest;
 			s->do_cmd	= cb_pcidas_ao_cmd;
 			s->cancel	= cb_pcidas_ao_cancel;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/das6402.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/das6402.c
@@ -186,7 +186,7 @@
 	if (status & DAS6402_STATUS_FFULL) {
 		async->events |= COMEDI_CB_OVERFLOW;
 	} else if (status & DAS6402_STATUS_FFNE) {
-		unsigned int val;
+		unsigned short val;
 
 		val = das6402_ai_read_sample(dev, s);
 		comedi_buf_write_samples(s, &val, 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/das800.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/das800.c
@@ -427,7 +427,7 @@
 	struct comedi_cmd *cmd;
 	unsigned long irq_flags;
 	unsigned int status;
-	unsigned int val;
+	unsigned short val;
 	bool fifo_empty;
 	bool fifo_overflow;
 	int i;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/dmm32at.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/dmm32at.c
@@ -404,7 +404,7 @@
 {
 	struct comedi_device *dev = d;
 	unsigned char intstat;
-	unsigned int val;
+	unsigned short val;
 	int i;
 
 	if (!dev->attached) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/dt2815.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/dt2815.c
@@ -92,6 +92,7 @@
 	int ret;
 
 	for (i = 0; i < insn->n; i++) {
+		/* FIXME: lo bit 0 chooses voltage output or current output */
 		lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01;
 		hi = (data[i] & 0xff0) >> 4;
 
@@ -105,6 +106,8 @@
 		if (ret)
 			return ret;
 
+		outb(hi, dev->iobase + DT2815_DATA);
+
 		devpriv->ao_readback[chan] = data[i];
 	}
 	return i;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/gsc_hpdi.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/gsc_hpdi.c
@@ -623,6 +623,11 @@
 		    dma_alloc_coherent(&pcidev->dev, DMA_BUFFER_SIZE,
 				       &devpriv->dio_buffer_phys_addr[i],
 				       GFP_KERNEL);
+		if (!devpriv->dio_buffer[i]) {
+			dev_warn(dev->class_dev,
+				 "failed to allocate DMA buffer\n");
+			return -ENOMEM;
+		}
 	}
 	/* allocate dma descriptors */
 	devpriv->dma_desc = dma_alloc_coherent(&pcidev->dev,
@@ -630,6 +635,11 @@
 					       NUM_DMA_DESCRIPTORS,
 					       &devpriv->dma_desc_phys_addr,
 					       GFP_KERNEL);
+	if (!devpriv->dma_desc) {
+		dev_warn(dev->class_dev,
+			 "failed to allocate DMA descriptors\n");
+		return -ENOMEM;
+	}
 	if (devpriv->dma_desc_phys_addr & 0xf) {
 		dev_warn(dev->class_dev,
 			 " dma descriptors not quad-word aligned (bug)\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/me4000.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/me4000.c
@@ -924,7 +924,7 @@
 	struct comedi_subdevice *s = dev->read_subdev;
 	int i;
 	int c = 0;
-	unsigned int lval;
+	unsigned short lval;
 
 	if (!dev->attached)
 		return IRQ_NONE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/mf6x4.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/mf6x4.c
@@ -112,8 +112,9 @@
 	struct mf6x4_private *devpriv = dev->private;
 	unsigned int status;
 
+	/* EOLC goes low at end of conversion. */
 	status = ioread32(devpriv->gpioc_reg);
-	if (status & MF6X4_GPIOC_EOLC)
+	if ((status & MF6X4_GPIOC_EOLC) == 0)
 		return 0;
 	return -EBUSY;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/ni_6527.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/ni_6527.c
@@ -332,7 +332,7 @@
 		case COMEDI_DIGITAL_TRIG_ENABLE_EDGES:
 			/* check shift amount */
 			shift = data[3];
-			if (shift >= s->n_chan) {
+			if (shift >= 32) {
 				mask = 0;
 				rising = 0;
 				falling = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/ni_routes.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/ni_routes.c
@@ -74,9 +74,6 @@
 		}
 	}
 
-	if (!rv)
-		return -ENODATA;
-
 	/* Second, find the set of routes valid for this device. */
 	for (i = 0; ni_device_routes_list[i]; ++i) {
 		if (memcmp(ni_device_routes_list[i]->device, board_name,
@@ -86,12 +83,12 @@
 		}
 	}
 
-	if (!dr)
-		return -ENODATA;
-
 	tables->route_values = rv;
 	tables->valid_routes = dr;
 
+	if (!rv || !dr)
+		return -ENODATA;
+
 	return 0;
 }
 
@@ -489,6 +486,9 @@
 {
 	int src;
 
+	if (!tables->route_values)
+		return -EINVAL;
+
 	dest = B(dest); /* subtract NI names offset */
 	/* ensure we are not going to under/over run the route value table */
 	if (dest < 0 || dest >= NI_NUM_NAMES)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/pcl711.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/pcl711.c
@@ -184,7 +184,7 @@
 	struct comedi_device *dev = d;
 	struct comedi_subdevice *s = dev->read_subdev;
 	struct comedi_cmd *cmd = &s->async->cmd;
-	unsigned int data;
+	unsigned short data;
 
 	if (!dev->attached) {
 		dev_err(dev->class_dev, "spurious interrupt\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/pcl818.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/pcl818.c
@@ -423,7 +423,7 @@
 
 static bool pcl818_ai_write_sample(struct comedi_device *dev,
 				   struct comedi_subdevice *s,
-				   unsigned int chan, unsigned int val)
+				   unsigned int chan, unsigned short val)
 {
 	struct pcl818_private *devpriv = dev->private;
 	struct comedi_cmd *cmd = &s->async->cmd;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/usbduxfast.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/usbduxfast.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- *  Copyright (C) 2004-2014 Bernd Porr, mail@berndporr.me.uk
+ *  Copyright (C) 2004-2019 Bernd Porr, mail@berndporr.me.uk
  */
 
 /*
@@ -8,7 +8,7 @@
  * Description: University of Stirling USB DAQ & INCITE Technology Limited
  * Devices: [ITL] USB-DUX-FAST (usbduxfast)
  * Author: Bernd Porr <mail@berndporr.me.uk>
- * Updated: 10 Oct 2014
+ * Updated: 16 Nov 2019
  * Status: stable
  */
 
@@ -22,6 +22,7 @@
  *
  *
  * Revision history:
+ * 1.0: Fixed a rounding error in usbduxfast_ai_cmdtest
  * 0.9: Dropping the first data packet which seems to be from the last transfer.
  *      Buffer overflows in the FX2 are handed over to comedi.
  * 0.92: Dropping now 4 packets. The quad buffer has to be emptied.
@@ -350,6 +351,7 @@
 				 struct comedi_cmd *cmd)
 {
 	int err = 0;
+	int err2 = 0;
 	unsigned int steps;
 	unsigned int arg;
 
@@ -399,11 +401,16 @@
 	 */
 	steps = (cmd->convert_arg * 30) / 1000;
 	if (cmd->chanlist_len !=  1)
-		err |= comedi_check_trigger_arg_min(&steps,
-						    MIN_SAMPLING_PERIOD);
-	err |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD);
-	arg = (steps * 1000) / 30;
-	err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg);
+		err2 |= comedi_check_trigger_arg_min(&steps,
+						     MIN_SAMPLING_PERIOD);
+	else
+		err2 |= comedi_check_trigger_arg_min(&steps, 1);
+	err2 |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD);
+	if (err2) {
+		err |= err2;
+		arg = (steps * 1000) / 30;
+		err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg);
+	}
 
 	if (cmd->stop_src == TRIG_COUNT)
 		err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/comedi/drivers/vmk80xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/comedi/drivers/vmk80xx.c
@@ -667,6 +667,9 @@
 	if (!devpriv->ep_rx || !devpriv->ep_tx)
 		return -ENODEV;
 
+	if (!usb_endpoint_maxp(devpriv->ep_rx) || !usb_endpoint_maxp(devpriv->ep_tx))
+		return -EINVAL;
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/emxx_udc/emxx_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/emxx_udc/emxx_udc.c
@@ -2594,7 +2594,7 @@
 
 	if (req->unaligned) {
 		if (!ep->virt_buf)
-			ep->virt_buf = dma_alloc_coherent(NULL, PAGE_SIZE,
+			ep->virt_buf = dma_alloc_coherent(udc->dev, PAGE_SIZE,
 							  &ep->phys_buf,
 							  GFP_ATOMIC | GFP_DMA);
 		if (ep->epnum > 0)  {
@@ -3153,7 +3153,7 @@
 	for (i = 0; i < NUM_ENDPOINTS; i++) {
 		ep = &udc->ep[i];
 		if (ep->virt_buf)
-			dma_free_coherent(NULL, PAGE_SIZE, (void *)ep->virt_buf,
+			dma_free_coherent(udc->dev, PAGE_SIZE, (void *)ep->virt_buf,
 					  ep->phys_buf);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/exfat/exfat.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/exfat/exfat.h
@@ -943,8 +943,8 @@
 s32 create_file(struct inode *inode, struct chain_t *p_dir,
 		struct uni_name_t *p_uniname, u8 mode, struct file_id_t *fid);
 void remove_file(struct inode *inode, struct chain_t *p_dir, s32 entry);
-s32 rename_file(struct inode *inode, struct chain_t *p_dir, s32 old_entry,
-		struct uni_name_t *p_uniname, struct file_id_t *fid);
+s32 exfat_rename_file(struct inode *inode, struct chain_t *p_dir, s32 old_entry,
+		      struct uni_name_t *p_uniname, struct file_id_t *fid);
 s32 move_file(struct inode *inode, struct chain_t *p_olddir, s32 oldentry,
 	      struct chain_t *p_newdir, struct uni_name_t *p_uniname,
 	      struct file_id_t *fid);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/exfat/exfat_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/exfat/exfat_core.c
@@ -3381,8 +3381,8 @@
 	fs_func->delete_dir_entry(sb, p_dir, entry, 0, num_entries);
 }
 
-s32 rename_file(struct inode *inode, struct chain_t *p_dir, s32 oldentry,
-		struct uni_name_t *p_uniname, struct file_id_t *fid)
+s32 exfat_rename_file(struct inode *inode, struct chain_t *p_dir, s32 oldentry,
+		      struct uni_name_t *p_uniname, struct file_id_t *fid)
 {
 	s32 ret, newentry = -1, num_old_entries, num_new_entries;
 	sector_t sector_old, sector_new;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/exfat/exfat_super.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/exfat/exfat_super.c
@@ -59,7 +59,7 @@
 /* Convert a FAT time/date pair to a UNIX date (seconds since 1 1 70). */
 static void exfat_time_fat2unix(struct timespec64 *ts, struct date_time_t *tp)
 {
-	ts->tv_sec = mktime64(tp->Year + 1980, tp->Month + 1, tp->Day,
+	ts->tv_sec = mktime64(tp->Year + 1980, tp->Month, tp->Day,
 			      tp->Hour, tp->Minute, tp->Second);
 
 	ts->tv_nsec = tp->MilliSecond * NSEC_PER_MSEC;
@@ -1308,8 +1308,8 @@
 	fs_set_vol_flags(sb, VOL_DIRTY);
 
 	if (olddir.dir == newdir.dir)
-		ret = rename_file(new_parent_inode, &olddir, dentry, &uni_name,
-				  fid);
+		ret = exfat_rename_file(new_parent_inode, &olddir, dentry,
+					&uni_name, fid);
 	else
 		ret = move_file(new_parent_inode, &olddir, dentry, &newdir,
 				&uni_name, fid);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/fbtft/fbtft-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/fbtft/fbtft-core.c
@@ -666,7 +666,7 @@
 	fbdefio->deferred_io =     fbtft_deferred_io;
 	fb_deferred_io_init(info);
 
-	strncpy(info->fix.id, dev->driver->name, 16);
+	snprintf(info->fix.id, sizeof(info->fix.id), "%s", dev->driver->name);
 	info->fix.type =           FB_TYPE_PACKED_PIXELS;
 	info->fix.visual =         FB_VISUAL_TRUECOLOR;
 	info->fix.xpanstep =	   0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/fieldbus/anybuss/arcx-anybus.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/fieldbus/anybuss/arcx-anybus.c
@@ -297,7 +297,7 @@
 	regulator = devm_regulator_register(dev, &can_power_desc, &config);
 	if (IS_ERR(regulator)) {
 		err = PTR_ERR(regulator);
-		goto out_reset;
+		goto out_ida;
 	}
 	/* make controller info visible to userspace */
 	cd->class_dev = kzalloc(sizeof(*cd->class_dev), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/fwserial/fwserial.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/fwserial/fwserial.c
@@ -2189,6 +2189,7 @@
 		err = fw_core_add_address_handler(&port->rx_handler,
 						  &fw_high_memory_region);
 		if (err) {
+			tty_port_destroy(&port->port);
 			kfree(port);
 			goto free_ports;
 		}
@@ -2271,6 +2272,7 @@
 
 free_ports:
 	for (--i; i >= 0; --i) {
+		fw_core_remove_address_handler(&serial->ports[i]->rx_handler);
 		tty_port_destroy(&serial->ports[i]->port);
 		kfree(serial->ports[i]);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/gasket/apex_driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/gasket/apex_driver.c
@@ -570,13 +570,6 @@
 	{ PCI_DEVICE(APEX_PCI_VENDOR_ID, APEX_PCI_DEVICE_ID) }, { 0 }
 };
 
-static void apex_pci_fixup_class(struct pci_dev *pdev)
-{
-	pdev->class = (PCI_CLASS_SYSTEM_OTHER << 8) | pdev->class;
-}
-DECLARE_PCI_FIXUP_CLASS_HEADER(APEX_PCI_VENDOR_ID, APEX_PCI_DEVICE_ID,
-			       PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
-
 static int apex_pci_probe(struct pci_dev *pci_dev,
 			  const struct pci_device_id *id)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/gasket/gasket_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/gasket/gasket_core.c
@@ -926,6 +926,10 @@
 		gasket_get_bar_index(gasket_dev,
 				     (vma->vm_pgoff << PAGE_SHIFT) +
 				     driver_desc->legacy_mmap_address_offset);
+
+	if (bar_index < 0)
+		return DO_MAP_REGION_INVALID;
+
 	phys_base = gasket_dev->bar_data[bar_index].phys_base + phys_offset;
 	while (mapped_bytes < map_length) {
 		/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/gasket/gasket_interrupt.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/gasket/gasket_interrupt.c
@@ -487,14 +487,16 @@
 int gasket_interrupt_set_eventfd(struct gasket_interrupt_data *interrupt_data,
 				 int interrupt, int event_fd)
 {
-	struct eventfd_ctx *ctx = eventfd_ctx_fdget(event_fd);
-
-	if (IS_ERR(ctx))
-		return PTR_ERR(ctx);
+	struct eventfd_ctx *ctx;
 
 	if (interrupt < 0 || interrupt >= interrupt_data->num_interrupts)
 		return -EINVAL;
 
+	ctx = eventfd_ctx_fdget(event_fd);
+
+	if (IS_ERR(ctx))
+		return PTR_ERR(ctx);
+
 	interrupt_data->eventfd_ctxs[interrupt] = ctx;
 	return 0;
 }
@@ -505,6 +507,9 @@
 	if (interrupt < 0 || interrupt >= interrupt_data->num_interrupts)
 		return -EINVAL;
 
-	interrupt_data->eventfd_ctxs[interrupt] = NULL;
+	if (interrupt_data->eventfd_ctxs[interrupt]) {
+		eventfd_ctx_put(interrupt_data->eventfd_ctxs[interrupt]);
+		interrupt_data->eventfd_ctxs[interrupt] = NULL;
+	}
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/gasket/gasket_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/gasket/gasket_sysfs.c
@@ -228,8 +228,7 @@
 	}
 
 	mutex_lock(&mapping->mutex);
-	for (i = 0; strcmp(attrs[i].attr.attr.name, GASKET_ARRAY_END_MARKER);
-		i++) {
+	for (i = 0; attrs[i].attr.attr.name != NULL; i++) {
 		if (mapping->attribute_count == GASKET_SYSFS_MAX_NODES) {
 			dev_err(device,
 				"Maximum number of sysfs nodes reached for device\n");
@@ -340,6 +339,7 @@
 
 	dev_err(device, "Unable to put unknown attribute: %s\n",
 		attr->attr.attr.name);
+	put_mapping(mapping);
 }
 EXPORT_SYMBOL(gasket_sysfs_put_attr);
 
@@ -373,6 +373,7 @@
 	gasket_dev = mapping->gasket_dev;
 	if (!gasket_dev) {
 		dev_err(device, "Device driver may have been removed\n");
+		put_mapping(mapping);
 		return 0;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/gasket/gasket_sysfs.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/gasket/gasket_sysfs.h
@@ -30,10 +30,6 @@
  */
 #define GASKET_SYSFS_MAX_NODES 196
 
-/* End markers for sysfs struct arrays. */
-#define GASKET_ARRAY_END_TOKEN GASKET_RESERVED_ARRAY_END
-#define GASKET_ARRAY_END_MARKER __stringify(GASKET_ARRAY_END_TOKEN)
-
 /*
  * Terminator struct for a gasket_sysfs_attr array. Must be at the end of
  * all gasket_sysfs_attribute arrays.
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/gdm724x/gdm_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/gdm724x/gdm_usb.c
@@ -56,20 +56,24 @@
 
 static int request_mac_address(struct lte_udev *udev)
 {
-	u8 buf[16] = {0,};
-	struct hci_packet *hci = (struct hci_packet *)buf;
+	struct hci_packet *hci;
 	struct usb_device *usbdev = udev->usbdev;
 	int actual;
 	int ret = -1;
 
+	hci = kmalloc(struct_size(hci, data, 1), GFP_KERNEL);
+	if (!hci)
+		return -ENOMEM;
+
 	hci->cmd_evt = gdm_cpu_to_dev16(udev->gdm_ed, LTE_GET_INFORMATION);
 	hci->len = gdm_cpu_to_dev16(udev->gdm_ed, 1);
 	hci->data[0] = MAC_ADDRESS;
 
-	ret = usb_bulk_msg(usbdev, usb_sndbulkpipe(usbdev, 2), buf, 5,
+	ret = usb_bulk_msg(usbdev, usb_sndbulkpipe(usbdev, 2), hci, 5,
 			   &actual, 1000);
 
 	udev->request_mac_addr = 1;
+	kfree(hci);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/audio_codec.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/audio_codec.c
@@ -489,6 +489,7 @@
 	if (ret) {
 		dev_err_ratelimited(dai->dev, "%d: Error during set_config\n",
 				    ret);
+		gb_pm_runtime_put_noidle(bundle);
 		mutex_unlock(&codec->lock);
 		return ret;
 	}
@@ -565,6 +566,7 @@
 		break;
 	}
 	if (ret) {
+		gb_pm_runtime_put_noidle(bundle);
 		mutex_unlock(&codec->lock);
 		dev_err_ratelimited(dai->dev, "set_data_size failed:%d\n",
 				    ret);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/audio_manager.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/audio_manager.c
@@ -92,8 +92,8 @@
 
 	list_for_each_entry_safe(module, next, &modules_list, list) {
 		list_del(&module->list);
-		kobject_put(&module->kobj);
 		ida_simple_remove(&module_id, module->id);
+		kobject_put(&module->kobj);
 	}
 
 	is_empty = list_empty(&modules_list);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/audio_topology.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/audio_topology.c
@@ -460,6 +460,15 @@
 	val = ucontrol->value.integer.value[0] & mask;
 	connect = !!val;
 
+	ret = gb_pm_runtime_get_sync(bundle);
+	if (ret)
+		return ret;
+
+	ret = gb_audio_gb_get_control(module->mgmt_connection, data->ctl_id,
+				      GB_AUDIO_INVALID_INDEX, &gbvalue);
+	if (ret)
+		goto exit;
+
 	/* update ucontrol */
 	if (gbvalue.value.integer_value[0] != val) {
 		for (wi = 0; wi < wlist->num_widgets; wi++) {
@@ -473,25 +482,17 @@
 		gbvalue.value.integer_value[0] =
 			cpu_to_le32(ucontrol->value.integer.value[0]);
 
-		ret = gb_pm_runtime_get_sync(bundle);
-		if (ret)
-			return ret;
-
 		ret = gb_audio_gb_set_control(module->mgmt_connection,
 					      data->ctl_id,
 					      GB_AUDIO_INVALID_INDEX, &gbvalue);
-
-		gb_pm_runtime_put_autosuspend(bundle);
-
-		if (ret) {
-			dev_err_ratelimited(codec->dev,
-					    "%d:Error in %s for %s\n", ret,
-					    __func__, kcontrol->id.name);
-			return ret;
-		}
 	}
 
-	return 0;
+exit:
+	gb_pm_runtime_put_autosuspend(bundle);
+	if (ret)
+		dev_err_ratelimited(codec_dev, "%d:Error in %s for %s\n", ret,
+				    __func__, kcontrol->id.name);
+	return ret;
 }
 
 #define SOC_DAPM_MIXER_GB(xname, kcount, data) \
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/light.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/light.c
@@ -1026,7 +1026,8 @@
 
 	light->channels_count = conf.channel_count;
 	light->name = kstrndup(conf.name, NAMES_MAX, GFP_KERNEL);
-
+	if (!light->name)
+		return -ENOMEM;
 	light->channels = kcalloc(light->channels_count,
 				  sizeof(struct gb_channel), GFP_KERNEL);
 	if (!light->channels)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/sdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/sdio.c
@@ -411,6 +411,7 @@
 	struct gb_sdio_command_request request = {0};
 	struct gb_sdio_command_response response;
 	struct mmc_data *data = host->mrq->data;
+	unsigned int timeout_ms;
 	u8 cmd_flags;
 	u8 cmd_type;
 	int i;
@@ -469,9 +470,12 @@
 		request.data_blksz = cpu_to_le16(data->blksz);
 	}
 
-	ret = gb_operation_sync(host->connection, GB_SDIO_TYPE_COMMAND,
-				&request, sizeof(request), &response,
-				sizeof(response));
+	timeout_ms = cmd->busy_timeout ? cmd->busy_timeout :
+		GB_OPERATION_TIMEOUT_DEFAULT;
+
+	ret = gb_operation_sync_timeout(host->connection, GB_SDIO_TYPE_COMMAND,
+					&request, sizeof(request), &response,
+					sizeof(response), timeout_ms);
 	if (ret < 0)
 		goto out;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/tools/loopback_test.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/tools/loopback_test.c
@@ -19,6 +19,7 @@
 #include <signal.h>
 
 #define MAX_NUM_DEVICES 10
+#define MAX_SYSFS_PREFIX 0x80
 #define MAX_SYSFS_PATH	0x200
 #define CSV_MAX_LINE	0x1000
 #define SYSFS_MAX_INT	0x20
@@ -67,7 +68,7 @@
 };
 
 struct loopback_device {
-	char name[MAX_SYSFS_PATH];
+	char name[MAX_STR_LEN];
 	char sysfs_entry[MAX_SYSFS_PATH];
 	char debugfs_entry[MAX_SYSFS_PATH];
 	struct loopback_results results;
@@ -93,8 +94,8 @@
 	int stop_all;
 	int poll_count;
 	char test_name[MAX_STR_LEN];
-	char sysfs_prefix[MAX_SYSFS_PATH];
-	char debugfs_prefix[MAX_SYSFS_PATH];
+	char sysfs_prefix[MAX_SYSFS_PREFIX];
+	char debugfs_prefix[MAX_SYSFS_PREFIX];
 	struct timespec poll_timeout;
 	struct loopback_device devices[MAX_NUM_DEVICES];
 	struct loopback_results aggregate_results;
@@ -637,7 +638,7 @@
 static int open_poll_files(struct loopback_test *t)
 {
 	struct loopback_device *dev;
-	char buf[MAX_STR_LEN];
+	char buf[MAX_SYSFS_PATH + MAX_STR_LEN];
 	char dummy;
 	int fds_idx = 0;
 	int i;
@@ -655,7 +656,7 @@
 			goto err;
 		}
 		read(t->fds[fds_idx].fd, &dummy, 1);
-		t->fds[fds_idx].events = EPOLLERR|EPOLLPRI;
+		t->fds[fds_idx].events = POLLERR | POLLPRI;
 		t->fds[fds_idx].revents = 0;
 		fds_idx++;
 	}
@@ -748,7 +749,7 @@
 		}
 
 		for (i = 0; i < t->poll_count; i++) {
-			if (t->fds[i].revents & EPOLLPRI) {
+			if (t->fds[i].revents & POLLPRI) {
 				/* Dummy read to clear the event */
 				read(t->fds[i].fd, &dummy, 1);
 				number_of_events++;
@@ -907,10 +908,10 @@
 			t.iteration_max = atoi(optarg);
 			break;
 		case 'S':
-			snprintf(t.sysfs_prefix, MAX_SYSFS_PATH, "%s", optarg);
+			snprintf(t.sysfs_prefix, MAX_SYSFS_PREFIX, "%s", optarg);
 			break;
 		case 'D':
-			snprintf(t.debugfs_prefix, MAX_SYSFS_PATH, "%s", optarg);
+			snprintf(t.debugfs_prefix, MAX_SYSFS_PREFIX, "%s", optarg);
 			break;
 		case 'm':
 			t.mask = atol(optarg);
@@ -961,10 +962,10 @@
 	}
 
 	if (!strcmp(t.sysfs_prefix, ""))
-		snprintf(t.sysfs_prefix, MAX_SYSFS_PATH, "%s", sysfs_prefix);
+		snprintf(t.sysfs_prefix, MAX_SYSFS_PREFIX, "%s", sysfs_prefix);
 
 	if (!strcmp(t.debugfs_prefix, ""))
-		snprintf(t.debugfs_prefix, MAX_SYSFS_PATH, "%s", debugfs_prefix);
+		snprintf(t.debugfs_prefix, MAX_SYSFS_PREFIX, "%s", debugfs_prefix);
 
 	ret = find_loopback_devices(&t);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/greybus/uart.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/greybus/uart.c
@@ -537,9 +537,9 @@
 	}
 
 	if (C_CRTSCTS(tty) && C_BAUD(tty) != B0)
-		newline.flow_control |= GB_SERIAL_AUTO_RTSCTS_EN;
+		newline.flow_control = GB_SERIAL_AUTO_RTSCTS_EN;
 	else
-		newline.flow_control &= ~GB_SERIAL_AUTO_RTSCTS_EN;
+		newline.flow_control = 0;
 
 	if (memcmp(&gb_tty->line_coding, &newline, sizeof(newline))) {
 		memcpy(&gb_tty->line_coding, &newline, sizeof(newline));
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/iio/frequency/ad9834.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/iio/frequency/ad9834.c
@@ -417,6 +417,10 @@
 	st = iio_priv(indio_dev);
 	mutex_init(&st->lock);
 	st->mclk = devm_clk_get(&spi->dev, NULL);
+	if (IS_ERR(st->mclk)) {
+		ret = PTR_ERR(st->mclk);
+		goto error_disable_reg;
+	}
 
 	ret = clk_prepare_enable(st->mclk);
 	if (ret) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/iio/resolver/ad2s1210.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/iio/resolver/ad2s1210.c
@@ -130,17 +130,24 @@
 static int ad2s1210_config_read(struct ad2s1210_state *st,
 				unsigned char address)
 {
-	struct spi_transfer xfer = {
-		.len = 2,
-		.rx_buf = st->rx,
-		.tx_buf = st->tx,
+	struct spi_transfer xfers[] = {
+		{
+			.len = 1,
+			.rx_buf = &st->rx[0],
+			.tx_buf = &st->tx[0],
+			.cs_change = 1,
+		}, {
+			.len = 1,
+			.rx_buf = &st->rx[1],
+			.tx_buf = &st->tx[1],
+		},
 	};
 	int ret = 0;
 
 	ad2s1210_set_mode(MOD_CONFIG, st);
 	st->tx[0] = address | AD2S1210_MSB_IS_HIGH;
 	st->tx[1] = AD2S1210_REG_FAULT;
-	ret = spi_sync_transfer(st->sdev, &xfer, 1);
+	ret = spi_sync_transfer(st->sdev, xfers, 2);
 	if (ret < 0)
 		return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/isdn/gigaset/usb-gigaset.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/isdn/gigaset/usb-gigaset.c
@@ -571,8 +571,7 @@
 {
 	struct usb_cardstate *ucs;
 
-	cs->hw.usb = ucs =
-		kmalloc(sizeof(struct usb_cardstate), GFP_KERNEL);
+	cs->hw.usb = ucs = kzalloc(sizeof(struct usb_cardstate), GFP_KERNEL);
 	if (!ucs) {
 		pr_err("out of memory\n");
 		return -ENOMEM;
@@ -584,9 +583,6 @@
 	ucs->bchars[3] = 0;
 	ucs->bchars[4] = 0x11;
 	ucs->bchars[5] = 0x13;
-	ucs->bulk_out_buffer = NULL;
-	ucs->bulk_out_urb = NULL;
-	ucs->read_urb = NULL;
 	tasklet_init(&cs->write_tasklet,
 		     gigaset_modem_fill, (unsigned long) cs);
 
@@ -685,6 +681,11 @@
 		return -ENODEV;
 	}
 
+	if (hostif->desc.bNumEndpoints < 2) {
+		dev_err(&interface->dev, "missing endpoints\n");
+		return -ENODEV;
+	}
+
 	dev_info(&udev->dev, "%s: Device matched ... !\n", __func__);
 
 	/* allocate memory for our device state and initialize it */
@@ -704,6 +705,12 @@
 
 	endpoint = &hostif->endpoint[0].desc;
 
+	if (!usb_endpoint_is_bulk_out(endpoint)) {
+		dev_err(&interface->dev, "missing bulk-out endpoint\n");
+		retval = -ENODEV;
+		goto error;
+	}
+
 	buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
 	ucs->bulk_out_size = buffer_size;
 	ucs->bulk_out_epnum = usb_endpoint_num(endpoint);
@@ -723,6 +730,12 @@
 
 	endpoint = &hostif->endpoint[1].desc;
 
+	if (!usb_endpoint_is_int_in(endpoint)) {
+		dev_err(&interface->dev, "missing int-in endpoint\n");
+		retval = -ENODEV;
+		goto error;
+	}
+
 	ucs->busy = 0;
 
 	ucs->read_urb = usb_alloc_urb(0, GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/kpc2000/kpc2000/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/kpc2000/kpc2000/core.c
@@ -110,10 +110,10 @@
 				const char *buf, size_t count)
 {
 	struct kp2000_device *pcard = dev_get_drvdata(dev);
-	long wr_val;
+	unsigned long wr_val;
 	int rv;
 
-	rv = kstrtol(buf, 0, &wr_val);
+	rv = kstrtoul(buf, 0, &wr_val);
 	if (rv < 0)
 		return rv;
 	if (wr_val > 7)
@@ -298,7 +298,6 @@
 {
 	int err = 0;
 	struct kp2000_device *pcard;
-	int rv;
 	unsigned long reg_bar_phys_addr;
 	unsigned long reg_bar_phys_len;
 	unsigned long dma_bar_phys_addr;
@@ -445,11 +444,11 @@
 	if (err < 0)
 		goto err_release_dma;
 
-	rv = request_irq(pcard->pdev->irq, kp2000_irq_handler, IRQF_SHARED,
-			 pcard->name, pcard);
-	if (rv) {
+	err = request_irq(pcard->pdev->irq, kp2000_irq_handler, IRQF_SHARED,
+			  pcard->name, pcard);
+	if (err) {
 		dev_err(&pcard->pdev->dev,
-			"%s: failed to request_irq: %d\n", __func__, rv);
+			"%s: failed to request_irq: %d\n", __func__, err);
 		goto err_disable_msi;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/ks7010/ks_wlan_net.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/ks7010/ks_wlan_net.c
@@ -1120,6 +1120,7 @@
 {
 	struct ks_wlan_private *priv = netdev_priv(dev);
 	struct iw_scan_req *req = NULL;
+	int len;
 
 	if (priv->sleep_mode == SLP_SLEEP)
 		return -EPERM;
@@ -1129,8 +1130,9 @@
 	if (wrqu->data.length == sizeof(struct iw_scan_req) &&
 	    wrqu->data.flags & IW_SCAN_THIS_ESSID) {
 		req = (struct iw_scan_req *)extra;
-		priv->scan_ssid_len = req->essid_len;
-		memcpy(priv->scan_ssid, req->essid, priv->scan_ssid_len);
+		len = min_t(int, req->essid_len, IW_ESSID_MAX_SIZE);
+		priv->scan_ssid_len = len;
+		memcpy(priv->scan_ssid, req->essid, len);
 	} else {
 		priv->scan_ssid_len = 0;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/allegro-dvt/allegro-core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/allegro-dvt/allegro-core.c
@@ -393,7 +393,10 @@
 	u32 freq_ird;
 	u32 freq_lt;
 	u32 gdr_mode;
-	u32 gop_length;
+	u16 gop_length;
+	u8 num_b;
+	u8 freq_golden_ref;
+
 	u32 unknown39;
 
 	u32 subframe_latency;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/hantro/hantro_drv.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/hantro/hantro_drv.c
@@ -553,13 +553,13 @@
 		goto err_rel_entity1;
 
 	/* Connect the three entities */
-	ret = media_create_pad_link(&func->vdev.entity, 0, &func->proc, 1,
+	ret = media_create_pad_link(&func->vdev.entity, 0, &func->proc, 0,
 				    MEDIA_LNK_FL_IMMUTABLE |
 				    MEDIA_LNK_FL_ENABLED);
 	if (ret)
 		goto err_rel_entity2;
 
-	ret = media_create_pad_link(&func->proc, 0, &func->sink, 0,
+	ret = media_create_pad_link(&func->proc, 1, &func->sink, 0,
 				    MEDIA_LNK_FL_IMMUTABLE |
 				    MEDIA_LNK_FL_ENABLED);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/hantro/hantro_g1_h264_dec.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/hantro/hantro_g1_h264_dec.c
@@ -34,9 +34,11 @@
 	reg = G1_REG_DEC_CTRL0_DEC_AXI_WR_ID(0x0);
 	if (sps->flags & V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD)
 		reg |= G1_REG_DEC_CTRL0_SEQ_MBAFF_E;
-	reg |= G1_REG_DEC_CTRL0_PICORD_COUNT_E;
-	if (dec_param->nal_ref_idc)
-		reg |= G1_REG_DEC_CTRL0_WRITE_MVS_E;
+	if (sps->profile_idc > 66) {
+		reg |= G1_REG_DEC_CTRL0_PICORD_COUNT_E;
+		if (dec_param->nal_ref_idc)
+			reg |= G1_REG_DEC_CTRL0_WRITE_MVS_E;
+	}
 
 	if (!(sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY) &&
 	    (sps->flags & V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD ||
@@ -61,7 +63,7 @@
 	/* always use the matrix sent from userspace */
 	reg |= G1_REG_DEC_CTRL2_TYPE1_QUANT_E;
 
-	if (slices[0].flags &  V4L2_H264_SLICE_FLAG_FIELD_PIC)
+	if (!(sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY))
 		reg |= G1_REG_DEC_CTRL2_FIELDPIC_FLAG_E;
 	vdpu_write_relaxed(vpu, reg, G1_REG_DEC_CTRL2);
 
@@ -246,7 +248,7 @@
 	vdpu_write_relaxed(vpu, dst_dma, G1_REG_ADDR_DST);
 
 	/* Higher profiles require DMV buffer appended to reference frames. */
-	if (ctrls->sps->profile_idc > 66) {
+	if (ctrls->sps->profile_idc > 66 && ctrls->decode->nal_ref_idc) {
 		size_t pic_size = ctx->h264_dec.pic_size;
 		size_t mv_offset = round_up(pic_size, 8);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
@@ -67,12 +67,17 @@
 			      unsigned char *chroma_qtable)
 {
 	u32 reg, i;
+	__be32 *luma_qtable_p;
+	__be32 *chroma_qtable_p;
+
+	luma_qtable_p = (__be32 *)luma_qtable;
+	chroma_qtable_p = (__be32 *)chroma_qtable;
 
 	for (i = 0; i < H1_JPEG_QUANT_TABLE_COUNT; i++) {
-		reg = get_unaligned_be32(&luma_qtable[i]);
+		reg = get_unaligned_be32(&luma_qtable_p[i]);
 		vepu_write_relaxed(vpu, reg, H1_REG_JPEG_LUMA_QUAT(i));
 
-		reg = get_unaligned_be32(&chroma_qtable[i]);
+		reg = get_unaligned_be32(&chroma_qtable_p[i]);
 		vepu_write_relaxed(vpu, reg, H1_REG_JPEG_CHROMA_QUAT(i));
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/hantro/hantro_h264.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/hantro/hantro_h264.c
@@ -20,7 +20,7 @@
 /* Size with u32 units. */
 #define CABAC_INIT_BUFFER_SIZE		(460 * 2)
 #define POC_BUFFER_SIZE			34
-#define SCALING_LIST_SIZE		(6 * 16 + 6 * 64)
+#define SCALING_LIST_SIZE		(6 * 16 + 2 * 64)
 
 #define POC_CMP(p0, p1) ((p0) < (p1) ? -1 : 1)
 
@@ -194,23 +194,6 @@
 	0x1f0c2517, 0x1f261440
 };
 
-/*
- * NOTE: The scaling lists are in zig-zag order, apply inverse scanning process
- * to get the values in matrix order. In addition, the hardware requires bytes
- * swapped within each subsequent 4 bytes. Both arrays below include both
- * transformations.
- */
-static const u32 zig_zag_4x4[] = {
-	3, 2, 7, 11, 6, 1, 0, 5, 10, 15, 14, 9, 4, 8, 13, 12
-};
-
-static const u32 zig_zag_8x8[] = {
-	3, 2, 11, 19, 10, 1, 0, 9, 18, 27, 35, 26, 17, 8, 7, 6,
-	15, 16, 25, 34, 43, 51, 42, 33, 24, 23, 14, 5, 4, 13, 22, 31,
-	32, 41, 50, 59, 58, 49, 40, 39, 30, 21, 12, 20, 29, 38, 47, 48,
-	57, 56, 55, 46, 37, 28, 36, 45, 54, 63, 62, 53, 44, 52, 61, 60
-};
-
 static void
 reorder_scaling_list(struct hantro_ctx *ctx)
 {
@@ -218,33 +201,23 @@
 	const struct v4l2_ctrl_h264_scaling_matrix *scaling = ctrls->scaling;
 	const size_t num_list_4x4 = ARRAY_SIZE(scaling->scaling_list_4x4);
 	const size_t list_len_4x4 = ARRAY_SIZE(scaling->scaling_list_4x4[0]);
-	const size_t num_list_8x8 = ARRAY_SIZE(scaling->scaling_list_8x8);
 	const size_t list_len_8x8 = ARRAY_SIZE(scaling->scaling_list_8x8[0]);
 	struct hantro_h264_dec_priv_tbl *tbl = ctx->h264_dec.priv.cpu;
-	u8 *dst = tbl->scaling_list;
-	const u8 *src;
+	u32 *dst = (u32 *)tbl->scaling_list;
+	const u32 *src;
 	int i, j;
 
-	BUILD_BUG_ON(ARRAY_SIZE(zig_zag_4x4) != list_len_4x4);
-	BUILD_BUG_ON(ARRAY_SIZE(zig_zag_8x8) != list_len_8x8);
-	BUILD_BUG_ON(ARRAY_SIZE(tbl->scaling_list) !=
-		     num_list_4x4 * list_len_4x4 +
-		     num_list_8x8 * list_len_8x8);
-
-	src = &scaling->scaling_list_4x4[0][0];
-	for (i = 0; i < num_list_4x4; ++i) {
-		for (j = 0; j < list_len_4x4; ++j)
-			dst[zig_zag_4x4[j]] = src[j];
-		src += list_len_4x4;
-		dst += list_len_4x4;
+	for (i = 0; i < num_list_4x4; i++) {
+		src = (u32 *)&scaling->scaling_list_4x4[i];
+		for (j = 0; j < list_len_4x4 / 4; j++)
+			*dst++ = swab32(src[j]);
 	}
 
-	src = &scaling->scaling_list_8x8[0][0];
-	for (i = 0; i < num_list_8x8; ++i) {
-		for (j = 0; j < list_len_8x8; ++j)
-			dst[zig_zag_8x8[j]] = src[j];
-		src += list_len_8x8;
-		dst += list_len_8x8;
+	/* Only Intra/Inter Y lists */
+	for (i = 0; i < 2; i++) {
+		src = (u32 *)&scaling->scaling_list_8x8[i];
+		for (j = 0; j < list_len_8x8 / 4; j++)
+			*dst++ = swab32(src[j]);
 	}
 }
 
@@ -271,6 +244,7 @@
 	const struct v4l2_h264_dpb_entry *dpb;
 	s32 pocs[HANTRO_H264_DPB_SIZE];
 	u8 unordered_reflist[HANTRO_H264_DPB_SIZE];
+	int frame_nums[HANTRO_H264_DPB_SIZE];
 	s32 curpoc;
 	u8 num_valid;
 };
@@ -294,13 +268,20 @@
 init_reflist_builder(struct hantro_ctx *ctx,
 		     struct hantro_h264_reflist_builder *b)
 {
+	const struct v4l2_ctrl_h264_slice_params *slice_params;
 	const struct v4l2_ctrl_h264_decode_params *dec_param;
+	const struct v4l2_ctrl_h264_sps *sps;
 	struct vb2_v4l2_buffer *buf = hantro_get_dst_buf(ctx);
 	const struct v4l2_h264_dpb_entry *dpb = ctx->h264_dec.dpb;
 	struct vb2_queue *cap_q = &ctx->fh.m2m_ctx->cap_q_ctx.q;
+	int cur_frame_num, max_frame_num;
 	unsigned int i;
 
 	dec_param = ctx->h264_dec.ctrls.decode;
+	slice_params = &ctx->h264_dec.ctrls.slices[0];
+	sps = ctx->h264_dec.ctrls.sps;
+	max_frame_num = 1 << (sps->log2_max_frame_num_minus4 + 4);
+	cur_frame_num = slice_params->frame_num;
 
 	memset(b, 0, sizeof(*b));
 	b->dpb = dpb;
@@ -318,6 +299,18 @@
 			continue;
 
 		buf = to_vb2_v4l2_buffer(vb2_get_buffer(cap_q, buf_idx));
+
+		/*
+		 * Handle frame_num wraparound as described in section
+		 * '8.2.4.1 Decoding process for picture numbers' of the spec.
+		 * TODO: This logic will have to be adjusted when we start
+		 * supporting interlaced content.
+		 */
+		if (dpb[i].frame_num > cur_frame_num)
+			b->frame_nums[i] = (int)dpb[i].frame_num - max_frame_num;
+		else
+			b->frame_nums[i] = dpb[i].frame_num;
+
 		b->pocs[i] = get_poc(buf->field, dpb[i].top_field_order_cnt,
 				     dpb[i].bottom_field_order_cnt);
 		b->unordered_reflist[b->num_valid] = i;
@@ -353,7 +346,7 @@
 	 * ascending order.
 	 */
 	if (!(a->flags & V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM))
-		return b->frame_num - a->frame_num;
+		return builder->frame_nums[idxb] - builder->frame_nums[idxa];
 
 	return a->pic_num - b->pic_num;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/hantro/hantro_v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/hantro/hantro_v4l2.c
@@ -367,20 +367,27 @@
 {
 	struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
 	struct hantro_ctx *ctx = fh_to_ctx(priv);
+	struct vb2_queue *vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type);
 	const struct hantro_fmt *formats;
 	unsigned int num_fmts;
-	struct vb2_queue *vq;
 	int ret;
 
-	/* Change not allowed if queue is busy. */
-	vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type);
-	if (vb2_is_busy(vq))
-		return -EBUSY;
+	ret = vidioc_try_fmt_out_mplane(file, priv, f);
+	if (ret)
+		return ret;
 
 	if (!hantro_is_encoder_ctx(ctx)) {
 		struct vb2_queue *peer_vq;
 
 		/*
+		 * In order to support dynamic resolution change,
+		 * the decoder admits a resolution change, as long
+		 * as the pixelformat remains. Can't be done if streaming.
+		 */
+		if (vb2_is_streaming(vq) || (vb2_is_busy(vq) &&
+		    pix_mp->pixelformat != ctx->src_fmt.pixelformat))
+			return -EBUSY;
+		/*
 		 * Since format change on the OUTPUT queue will reset
 		 * the CAPTURE queue, we can't allow doing so
 		 * when the CAPTURE queue has buffers allocated.
@@ -389,12 +396,15 @@
 					  V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
 		if (vb2_is_busy(peer_vq))
 			return -EBUSY;
+	} else {
+		/*
+		 * The encoder doesn't admit a format change if
+		 * there are OUTPUT buffers allocated.
+		 */
+		if (vb2_is_busy(vq))
+			return -EBUSY;
 	}
 
-	ret = vidioc_try_fmt_out_mplane(file, priv, f);
-	if (ret)
-		return ret;
-
 	formats = hantro_get_formats(ctx, &num_fmts);
 	ctx->vpu_src_fmt = hantro_find_format(formats, num_fmts,
 					      pix_mp->pixelformat);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/hantro/rk3399_vpu_hw_jpeg_enc.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/hantro/rk3399_vpu_hw_jpeg_enc.c
@@ -98,12 +98,17 @@
 			       unsigned char *chroma_qtable)
 {
 	u32 reg, i;
+	__be32 *luma_qtable_p;
+	__be32 *chroma_qtable_p;
+
+	luma_qtable_p = (__be32 *)luma_qtable;
+	chroma_qtable_p = (__be32 *)chroma_qtable;
 
 	for (i = 0; i < VEPU_JPEG_QUANT_TABLE_COUNT; i++) {
-		reg = get_unaligned_be32(&luma_qtable[i]);
+		reg = get_unaligned_be32(&luma_qtable_p[i]);
 		vepu_write_relaxed(vpu, reg, VEPU_REG_JPEG_LUMA_QUAT(i));
 
-		reg = get_unaligned_be32(&chroma_qtable[i]);
+		reg = get_unaligned_be32(&chroma_qtable_p[i]);
 		vepu_write_relaxed(vpu, reg, VEPU_REG_JPEG_CHROMA_QUAT(i));
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/imx/imx-media-capture.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/imx/imx-media-capture.c
@@ -26,6 +26,8 @@
 #include <media/imx.h>
 #include "imx-media.h"
 
+#define IMX_CAPTURE_NAME "imx-capture"
+
 struct capture_priv {
 	struct imx_media_video_dev vdev;
 
@@ -69,8 +71,8 @@
 {
 	struct capture_priv *priv = video_drvdata(file);
 
-	strscpy(cap->driver, "imx-media-capture", sizeof(cap->driver));
-	strscpy(cap->card, "imx-media-capture", sizeof(cap->card));
+	strscpy(cap->driver, IMX_CAPTURE_NAME, sizeof(cap->driver));
+	strscpy(cap->card, IMX_CAPTURE_NAME, sizeof(cap->card));
 	snprintf(cap->bus_info, sizeof(cap->bus_info),
 		 "platform:%s", priv->src_sd->name);
 
@@ -783,7 +785,7 @@
 	/* setup default format */
 	fmt_src.pad = priv->src_sd_pad;
 	fmt_src.which = V4L2_SUBDEV_FORMAT_ACTIVE;
-	v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt_src);
+	ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt_src);
 	if (ret) {
 		v4l2_err(sd, "failed to get src_sd format\n");
 		goto unreg;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/imx/imx-media-csc-scaler.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/imx/imx-media-csc-scaler.c
@@ -866,11 +866,7 @@
 	struct ipu_csc_scaler_priv *priv = vdev_to_priv(vdev);
 	struct video_device *vfd = priv->vdev.vfd;
 
-	mutex_lock(&priv->mutex);
-
 	video_unregister_device(vfd);
-
-	mutex_unlock(&priv->mutex);
 }
 
 struct imx_media_video_dev *
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/imx/imx-media-dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/imx/imx-media-dev.c
@@ -53,6 +53,7 @@
 	imxmd->m2m_vdev = imx_media_csc_scaler_device_init(imxmd);
 	if (IS_ERR(imxmd->m2m_vdev)) {
 		ret = PTR_ERR(imxmd->m2m_vdev);
+		imxmd->m2m_vdev = NULL;
 		goto unlock;
 	}
 
@@ -107,10 +108,14 @@
 
 	v4l2_info(&imxmd->v4l2_dev, "Removing imx-media\n");
 
+	if (imxmd->m2m_vdev) {
+		imx_media_csc_scaler_device_unregister(imxmd->m2m_vdev);
+		imxmd->m2m_vdev = NULL;
+	}
+
 	v4l2_async_notifier_unregister(&imxmd->notifier);
 	imx_media_unregister_ipu_internal_subdevs(imxmd);
 	v4l2_async_notifier_cleanup(&imxmd->notifier);
-	imx_media_csc_scaler_device_unregister(imxmd->m2m_vdev);
 	media_device_unregister(&imxmd->md);
 	v4l2_device_unregister(&imxmd->v4l2_dev);
 	media_device_cleanup(&imxmd->md);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/imx/imx7-media-csi.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/imx/imx7-media-csi.c
@@ -1009,6 +1009,7 @@
 		sdformat->format.width = in_fmt->width;
 		sdformat->format.height = in_fmt->height;
 		sdformat->format.code = in_fmt->code;
+		sdformat->format.field = in_fmt->field;
 		*cc = in_cc;
 
 		sdformat->format.colorspace = in_fmt->colorspace;
@@ -1023,6 +1024,9 @@
 							 false);
 			sdformat->format.code = (*cc)->codes[0];
 		}
+
+		if (sdformat->format.field != V4L2_FIELD_INTERLACED)
+			sdformat->format.field = V4L2_FIELD_NONE;
 		break;
 	default:
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/imx/imx7-mipi-csis.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/imx/imx7-mipi-csis.c
@@ -350,6 +350,8 @@
 static int mipi_csis_phy_init(struct csi_state *state)
 {
 	state->mipi_phy_regulator = devm_regulator_get(state->dev, "phy");
+	if (IS_ERR(state->mipi_phy_regulator))
+		return PTR_ERR(state->mipi_phy_regulator);
 
 	return regulator_set_voltage(state->mipi_phy_regulator, 1000000,
 				     1000000);
@@ -577,7 +579,7 @@
 		state->flags |= ST_STREAMING;
 	} else {
 		v4l2_subdev_call(state->src_sd, video, s_stream, 0);
-		ret = v4l2_subdev_call(state->src_sd, core, s_power, 1);
+		ret = v4l2_subdev_call(state->src_sd, core, s_power, 0);
 		mipi_csis_stop_stream(state);
 		state->flags &= ~ST_STREAMING;
 		if (state->debug)
@@ -655,28 +657,6 @@
 	return 0;
 }
 
-static struct csis_pix_format const *
-mipi_csis_try_format(struct v4l2_subdev *mipi_sd, struct v4l2_mbus_framefmt *mf)
-{
-	struct csi_state *state = mipi_sd_to_csis_state(mipi_sd);
-	struct csis_pix_format const *csis_fmt;
-
-	csis_fmt = find_csis_format(mf->code);
-	if (!csis_fmt)
-		csis_fmt = &mipi_csis_formats[0];
-
-	v4l_bound_align_image(&mf->width, 1, CSIS_MAX_PIX_WIDTH,
-			      csis_fmt->pix_width_alignment,
-			      &mf->height, 1, CSIS_MAX_PIX_HEIGHT, 1,
-			      0);
-
-	state->format_mbus.code = csis_fmt->code;
-	state->format_mbus.width = mf->width;
-	state->format_mbus.height = mf->height;
-
-	return csis_fmt;
-}
-
 static struct v4l2_mbus_framefmt *
 mipi_csis_get_format(struct csi_state *state,
 		     struct v4l2_subdev_pad_config *cfg,
@@ -689,53 +669,67 @@
 	return &state->format_mbus;
 }
 
-static int mipi_csis_set_fmt(struct v4l2_subdev *mipi_sd,
+static int mipi_csis_get_fmt(struct v4l2_subdev *mipi_sd,
 			     struct v4l2_subdev_pad_config *cfg,
 			     struct v4l2_subdev_format *sdformat)
 {
 	struct csi_state *state = mipi_sd_to_csis_state(mipi_sd);
-	struct csis_pix_format const *csis_fmt;
 	struct v4l2_mbus_framefmt *fmt;
 
-	if (sdformat->pad >= CSIS_PADS_NUM)
-		return -EINVAL;
-
-	fmt = mipi_csis_get_format(state, cfg, sdformat->which, sdformat->pad);
-
 	mutex_lock(&state->lock);
-	if (sdformat->pad == CSIS_PAD_SOURCE) {
-		sdformat->format = *fmt;
-		goto unlock;
-	}
-
-	csis_fmt = mipi_csis_try_format(mipi_sd, &sdformat->format);
-
+	fmt = mipi_csis_get_format(state, cfg, sdformat->which, sdformat->pad);
 	sdformat->format = *fmt;
-
-	if (csis_fmt && sdformat->which == V4L2_SUBDEV_FORMAT_ACTIVE)
-		state->csis_fmt = csis_fmt;
-	else
-		cfg->try_fmt = sdformat->format;
-
-unlock:
 	mutex_unlock(&state->lock);
 
 	return 0;
 }
 
-static int mipi_csis_get_fmt(struct v4l2_subdev *mipi_sd,
+static int mipi_csis_set_fmt(struct v4l2_subdev *mipi_sd,
 			     struct v4l2_subdev_pad_config *cfg,
 			     struct v4l2_subdev_format *sdformat)
 {
 	struct csi_state *state = mipi_sd_to_csis_state(mipi_sd);
+	struct csis_pix_format const *csis_fmt;
 	struct v4l2_mbus_framefmt *fmt;
 
-	mutex_lock(&state->lock);
+	/*
+	 * The CSIS can't transcode in any way, the source format can't be
+	 * modified.
+	 */
+	if (sdformat->pad == CSIS_PAD_SOURCE)
+		return mipi_csis_get_fmt(mipi_sd, cfg, sdformat);
+
+	if (sdformat->pad != CSIS_PAD_SINK)
+		return -EINVAL;
 
 	fmt = mipi_csis_get_format(state, cfg, sdformat->which, sdformat->pad);
 
+	mutex_lock(&state->lock);
+
+	/* Validate the media bus code and clamp the size. */
+	csis_fmt = find_csis_format(sdformat->format.code);
+	if (!csis_fmt)
+		csis_fmt = &mipi_csis_formats[0];
+
+	fmt->code = csis_fmt->code;
+	fmt->width = sdformat->format.width;
+	fmt->height = sdformat->format.height;
+
+	v4l_bound_align_image(&fmt->width, 1, CSIS_MAX_PIX_WIDTH,
+			      csis_fmt->pix_width_alignment,
+			      &fmt->height, 1, CSIS_MAX_PIX_HEIGHT, 1, 0);
+
 	sdformat->format = *fmt;
 
+	/* Propagate the format from sink to source. */
+	fmt = mipi_csis_get_format(state, cfg, sdformat->which,
+				   CSIS_PAD_SOURCE);
+	*fmt = sdformat->format;
+
+	/* Store the CSIS format descriptor for active formats. */
+	if (sdformat->which == V4L2_SUBDEV_FORMAT_ACTIVE)
+		state->csis_fmt = csis_fmt;
+
 	mutex_unlock(&state->lock);
 
 	return 0;
@@ -966,7 +960,10 @@
 		return ret;
 	}
 
-	mipi_csis_phy_init(state);
+	ret = mipi_csis_phy_init(state);
+	if (ret < 0)
+		return ret;
+
 	mipi_csis_phy_reset(state);
 
 	mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/ipu3/include/intel-ipu3.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/ipu3/include/intel-ipu3.h
@@ -449,8 +449,8 @@
 	__u16 reserved1;
 	__u32 bayer_sign;
 	__u8 bayer_nf;
-	__u8 reserved2[3];
-} __attribute__((aligned(32))) __packed;
+	__u8 reserved2[7];
+} __packed;
 
 /**
  * struct ipu3_uapi_4a_config - 4A config
@@ -466,7 +466,8 @@
 	struct ipu3_uapi_ae_grid_config ae_grd_config;
 	__u8 padding[20];
 	struct ipu3_uapi_af_config_s af_config;
-	struct ipu3_uapi_awb_fr_config_s awb_fr_config;
+	struct ipu3_uapi_awb_fr_config_s awb_fr_config
+		__attribute__((aligned(32)));
 } __packed;
 
 /**
@@ -2472,7 +2473,7 @@
 	struct ipu3_uapi_yuvp1_yds_config yds2 __attribute__((aligned(32)));
 	struct ipu3_uapi_yuvp2_tcc_static_config tcc __attribute__((aligned(32)));
 	struct ipu3_uapi_anr_config anr;
-	struct ipu3_uapi_awb_fr_config_s awb_fr __attribute__((aligned(32)));
+	struct ipu3_uapi_awb_fr_config_s awb_fr;
 	struct ipu3_uapi_ae_config ae;
 	struct ipu3_uapi_af_config_s af;
 	struct ipu3_uapi_awb_config awb;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/ipu3/ipu3-css-params.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/ipu3/ipu3-css-params.c
@@ -161,7 +161,7 @@
 
 	memset(&cfg->scaler_coeffs_chroma, 0,
 	       sizeof(cfg->scaler_coeffs_chroma));
-	memset(&cfg->scaler_coeffs_luma, 0, sizeof(*cfg->scaler_coeffs_luma));
+	memset(&cfg->scaler_coeffs_luma, 0, sizeof(cfg->scaler_coeffs_luma));
 	do {
 		phase_step_correction++;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/ipu3/ipu3-mmu.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/ipu3/ipu3-mmu.c
@@ -174,8 +174,10 @@
 	spin_lock_irqsave(&mmu->lock, flags);
 
 	l2pt = mmu->l2pts[l1pt_idx];
-	if (l2pt)
-		goto done;
+	if (l2pt) {
+		spin_unlock_irqrestore(&mmu->lock, flags);
+		return l2pt;
+	}
 
 	spin_unlock_irqrestore(&mmu->lock, flags);
 
@@ -190,8 +192,9 @@
 
 	l2pt = mmu->l2pts[l1pt_idx];
 	if (l2pt) {
+		spin_unlock_irqrestore(&mmu->lock, flags);
 		imgu_mmu_free_page_table(new_l2pt);
-		goto done;
+		return l2pt;
 	}
 
 	l2pt = new_l2pt;
@@ -200,7 +203,6 @@
 	pteval = IPU3_ADDR2PTE(virt_to_phys(new_l2pt));
 	mmu->l1pt[l1pt_idx] = pteval;
 
-done:
 	spin_unlock_irqrestore(&mmu->lock, flags);
 	return l2pt;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/ipu3/ipu3-v4l2.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/ipu3/ipu3-v4l2.c
@@ -367,8 +367,10 @@
 
 	vb2_set_plane_payload(vb, 0, need_bytes);
 
+	mutex_lock(&imgu->streaming_lock);
 	if (imgu->streaming)
 		imgu_queue_buffers(imgu, false, node->pipe);
+	mutex_unlock(&imgu->streaming_lock);
 
 	dev_dbg(&imgu->pci_dev->dev, "%s for pipe %u node %u", __func__,
 		node->pipe, node->id);
@@ -468,10 +470,13 @@
 	dev_dbg(dev, "%s node name %s pipe %u id %u", __func__,
 		node->name, node->pipe, node->id);
 
+	mutex_lock(&imgu->streaming_lock);
 	if (imgu->streaming) {
 		r = -EBUSY;
+		mutex_unlock(&imgu->streaming_lock);
 		goto fail_return_bufs;
 	}
+	mutex_unlock(&imgu->streaming_lock);
 
 	if (!node->enabled) {
 		dev_err(dev, "IMGU node is not enabled");
@@ -498,9 +503,11 @@
 
 	/* Start streaming of the whole pipeline now */
 	dev_dbg(dev, "IMGU streaming is ready to start");
+	mutex_lock(&imgu->streaming_lock);
 	r = imgu_s_stream(imgu, true);
 	if (!r)
 		imgu->streaming = true;
+	mutex_unlock(&imgu->streaming_lock);
 
 	return 0;
 
@@ -532,6 +539,7 @@
 		dev_err(&imgu->pci_dev->dev,
 			"failed to stop subdev streaming\n");
 
+	mutex_lock(&imgu->streaming_lock);
 	/* Was this the first node with streaming disabled? */
 	if (imgu->streaming && imgu_all_nodes_streaming(imgu, node)) {
 		/* Yes, really stop streaming now */
@@ -542,6 +550,8 @@
 	}
 
 	imgu_return_all_buffers(imgu, node, VB2_BUF_STATE_ERROR);
+	mutex_unlock(&imgu->streaming_lock);
+
 	media_pipeline_stop(&node->vdev.entity);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/ipu3/ipu3.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/ipu3/ipu3.c
@@ -261,6 +261,7 @@
 
 			ivb = list_first_entry(&imgu_pipe->nodes[node].buffers,
 					       struct imgu_vb2_buffer, list);
+			list_del(&ivb->list);
 			vb = &ivb->vbb.vb2_buf;
 			r = imgu_css_set_parameters(&imgu->css, pipe,
 						    vb2_plane_vaddr(vb, 0));
@@ -274,7 +275,6 @@
 			vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
 			dev_dbg(&imgu->pci_dev->dev,
 				"queue user parameters %d to css.", vb->index);
-			list_del(&ivb->list);
 		} else if (imgu_pipe->queue_enabled[node]) {
 			struct imgu_css_buffer *buf =
 				imgu_queue_getbuf(imgu, node, pipe);
@@ -663,6 +663,7 @@
 		return r;
 
 	mutex_init(&imgu->lock);
+	mutex_init(&imgu->streaming_lock);
 	atomic_set(&imgu->qbuf_barrier, 0);
 	init_waitqueue_head(&imgu->buf_drain_wq);
 
@@ -726,6 +727,7 @@
 out_css_powerdown:
 	imgu_css_set_powerdown(&pci_dev->dev, imgu->base);
 out_mutex_destroy:
+	mutex_destroy(&imgu->streaming_lock);
 	mutex_destroy(&imgu->lock);
 
 	return r;
@@ -743,6 +745,7 @@
 	imgu_css_set_powerdown(&pci_dev->dev, imgu->base);
 	imgu_dmamap_exit(imgu);
 	imgu_mmu_exit(imgu->mmu);
+	mutex_destroy(&imgu->streaming_lock);
 	mutex_destroy(&imgu->lock);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/ipu3/ipu3.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/ipu3/ipu3.h
@@ -146,6 +146,10 @@
 	 * vid_buf.list and css->queue
 	 */
 	struct mutex lock;
+
+	/* Lock to protect writes to streaming flag in this struct */
+	struct mutex streaming_lock;
+
 	/* Forbid streaming and buffer queuing during system suspend. */
 	atomic_t qbuf_barrier;
 	/* Indicate if system suspend take place while imgu is streaming. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/meson/vdec/vdec.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/meson/vdec/vdec.c
@@ -133,6 +133,8 @@
 	struct amvdec_buffer *new_buf;
 
 	new_buf = kmalloc(sizeof(*new_buf), GFP_KERNEL);
+	if (!new_buf)
+		return;
 	new_buf->vb = vb;
 
 	mutex_lock(&sess->bufs_recycle_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -159,6 +159,7 @@
 	struct v4l2_ctrl *ctrl_test;
 	unsigned int count;
 	unsigned int i;
+	int ret = 0;
 
 	list_for_each_entry(obj, &req->objects, list) {
 		struct vb2_buffer *vb;
@@ -203,12 +204,16 @@
 		if (!ctrl_test) {
 			v4l2_info(&ctx->dev->v4l2_dev,
 				  "Missing required codec control\n");
-			return -ENOENT;
+			ret = -ENOENT;
+			break;
 		}
 	}
 
 	v4l2_ctrl_request_hdl_put(hdl);
 
+	if (ret)
+		return ret;
+
 	return vb2_request_validate(req);
 }
 
@@ -357,6 +362,8 @@
 
 	dev->mdev.dev = &pdev->dev;
 	strscpy(dev->mdev.model, CEDRUS_NAME, sizeof(dev->mdev.model));
+	strscpy(dev->mdev.bus_info, "platform:" CEDRUS_NAME,
+		sizeof(dev->mdev.bus_info));
 
 	media_device_init(&dev->mdev);
 	dev->mdev.ops = &cedrus_m2m_media_ops;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/sunxi/cedrus/cedrus.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/sunxi/cedrus/cedrus.h
@@ -179,12 +179,16 @@
 static inline dma_addr_t cedrus_dst_buf_addr(struct cedrus_ctx *ctx,
 					     int index, unsigned int plane)
 {
-	struct vb2_buffer *buf;
+	struct vb2_buffer *buf = NULL;
+	struct vb2_queue *vq;
 
 	if (index < 0)
 		return 0;
 
-	buf = ctx->fh.m2m_ctx->cap_q_ctx.q.bufs[index];
+	vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
+	if (vq)
+		buf = vb2_get_buffer(vq, index);
+
 	return buf ? cedrus_buf_addr(buf, &ctx->dst_fmt, plane) : 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_dec.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/sunxi/cedrus/cedrus_dec.c
@@ -65,6 +65,8 @@
 
 	v4l2_m2m_buf_copy_metadata(run.src, run.dst, true);
 
+	cedrus_dst_format_set(dev, &ctx->dst_fmt);
+
 	dev->dec_ops[ctx->current_codec]->setup(ctx, &run);
 
 	/* Complete request(s) controls if needed. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
@@ -96,7 +96,7 @@
 	const struct v4l2_ctrl_h264_decode_params *decode = run->h264.decode_params;
 	const struct v4l2_ctrl_h264_slice_params *slice = run->h264.slice_params;
 	const struct v4l2_ctrl_h264_sps *sps = run->h264.sps;
-	struct vb2_queue *cap_q = &ctx->fh.m2m_ctx->cap_q_ctx.q;
+	struct vb2_queue *cap_q;
 	struct cedrus_buffer *output_buf;
 	struct cedrus_dev *dev = ctx->dev;
 	unsigned long used_dpbs = 0;
@@ -104,6 +104,8 @@
 	unsigned int output = 0;
 	unsigned int i;
 
+	cap_q = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
+
 	memset(pic_list, 0, sizeof(pic_list));
 
 	for (i = 0; i < ARRAY_SIZE(decode->dpb); i++) {
@@ -167,12 +169,14 @@
 				   enum cedrus_h264_sram_off sram)
 {
 	const struct v4l2_ctrl_h264_decode_params *decode = run->h264.decode_params;
-	struct vb2_queue *cap_q = &ctx->fh.m2m_ctx->cap_q_ctx.q;
+	struct vb2_queue *cap_q;
 	struct cedrus_dev *dev = ctx->dev;
 	u8 sram_array[CEDRUS_MAX_REF_IDX];
 	unsigned int i;
 	size_t size;
 
+	cap_q = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
+
 	memset(sram_array, 0, sizeof(sram_array));
 
 	for (i = 0; i < num_ref; i++) {
@@ -240,8 +244,8 @@
 			       sizeof(scaling->scaling_list_8x8[0]));
 
 	cedrus_h264_write_sram(dev, CEDRUS_SRAM_H264_SCALING_LIST_8x8_1,
-			       scaling->scaling_list_8x8[3],
-			       sizeof(scaling->scaling_list_8x8[3]));
+			       scaling->scaling_list_8x8[1],
+			       sizeof(scaling->scaling_list_8x8[1]));
 
 	cedrus_h264_write_sram(dev, CEDRUS_SRAM_H264_SCALING_LIST_4x4,
 			       scaling->scaling_list_4x4,
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
@@ -10,6 +10,9 @@
 #ifndef _CEDRUS_REGS_H_
 #define _CEDRUS_REGS_H_
 
+#define SHIFT_AND_MASK_BITS(v, h, l) \
+	(((unsigned long)(v) << (l)) & GENMASK(h, l))
+
 /*
  * Common acronyms and contractions used in register descriptions:
  * * VLD : Variable-Length Decoder
@@ -37,8 +40,8 @@
 #define VE_PRIMARY_CHROMA_BUF_LEN		0xc4
 #define VE_PRIMARY_FB_LINE_STRIDE		0xc8
 
-#define VE_PRIMARY_FB_LINE_STRIDE_CHROMA(s)	(((s) << 16) & GENMASK(31, 16))
-#define VE_PRIMARY_FB_LINE_STRIDE_LUMA(s)	(((s) << 0) & GENMASK(15, 0))
+#define VE_PRIMARY_FB_LINE_STRIDE_CHROMA(s)	SHIFT_AND_MASK_BITS(s, 31, 16)
+#define VE_PRIMARY_FB_LINE_STRIDE_LUMA(s)	SHIFT_AND_MASK_BITS(s, 15, 0)
 
 #define VE_CHROMA_BUF_LEN			0xe8
 
@@ -46,7 +49,7 @@
 #define VE_SECONDARY_OUT_FMT_EXT		(0x01 << 30)
 #define VE_SECONDARY_OUT_FMT_YU12		(0x02 << 30)
 #define VE_SECONDARY_OUT_FMT_YV12		(0x03 << 30)
-#define VE_CHROMA_BUF_LEN_SDRT(l)		((l) & GENMASK(27, 0))
+#define VE_CHROMA_BUF_LEN_SDRT(l)		SHIFT_AND_MASK_BITS(l, 27, 0)
 
 #define VE_PRIMARY_OUT_FMT			0xec
 
@@ -69,15 +72,15 @@
 
 #define VE_DEC_MPEG_MP12HDR			(VE_ENGINE_DEC_MPEG + 0x00)
 
-#define VE_DEC_MPEG_MP12HDR_SLICE_TYPE(t)	(((t) << 28) & GENMASK(30, 28))
+#define VE_DEC_MPEG_MP12HDR_SLICE_TYPE(t)	SHIFT_AND_MASK_BITS(t, 30, 28)
 #define VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y)	(24 - 4 * (y) - 8 * (x))
 #define VE_DEC_MPEG_MP12HDR_F_CODE(__x, __y, __v) \
-	(((__v) & GENMASK(3, 0)) << VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(__x, __y))
+	(((unsigned long)(__v) & GENMASK(3, 0)) << VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(__x, __y))
 
 #define VE_DEC_MPEG_MP12HDR_INTRA_DC_PRECISION(p) \
-	(((p) << 10) & GENMASK(11, 10))
+	SHIFT_AND_MASK_BITS(p, 11, 10)
 #define VE_DEC_MPEG_MP12HDR_INTRA_PICTURE_STRUCTURE(s) \
-	(((s) << 8) & GENMASK(9, 8))
+	SHIFT_AND_MASK_BITS(s, 9, 8)
 #define VE_DEC_MPEG_MP12HDR_TOP_FIELD_FIRST(v) \
 	((v) ? BIT(7) : 0)
 #define VE_DEC_MPEG_MP12HDR_FRAME_PRED_FRAME_DCT(v) \
@@ -98,19 +101,19 @@
 #define VE_DEC_MPEG_PICCODEDSIZE		(VE_ENGINE_DEC_MPEG + 0x08)
 
 #define VE_DEC_MPEG_PICCODEDSIZE_WIDTH(w) \
-	((DIV_ROUND_UP((w), 16) << 8) & GENMASK(15, 8))
+	SHIFT_AND_MASK_BITS(DIV_ROUND_UP((w), 16), 15, 8)
 #define VE_DEC_MPEG_PICCODEDSIZE_HEIGHT(h) \
-	((DIV_ROUND_UP((h), 16) << 0) & GENMASK(7, 0))
+	SHIFT_AND_MASK_BITS(DIV_ROUND_UP((h), 16), 7, 0)
 
 #define VE_DEC_MPEG_PICBOUNDSIZE		(VE_ENGINE_DEC_MPEG + 0x0c)
 
-#define VE_DEC_MPEG_PICBOUNDSIZE_WIDTH(w)	(((w) << 16) & GENMASK(27, 16))
-#define VE_DEC_MPEG_PICBOUNDSIZE_HEIGHT(h)	(((h) << 0) & GENMASK(11, 0))
+#define VE_DEC_MPEG_PICBOUNDSIZE_WIDTH(w)	SHIFT_AND_MASK_BITS(w, 27, 16)
+#define VE_DEC_MPEG_PICBOUNDSIZE_HEIGHT(h)	SHIFT_AND_MASK_BITS(h, 11, 0)
 
 #define VE_DEC_MPEG_MBADDR			(VE_ENGINE_DEC_MPEG + 0x10)
 
-#define VE_DEC_MPEG_MBADDR_X(w)			(((w) << 8) & GENMASK(15, 8))
-#define VE_DEC_MPEG_MBADDR_Y(h)			(((h) << 0) & GENMASK(7, 0))
+#define VE_DEC_MPEG_MBADDR_X(w)			SHIFT_AND_MASK_BITS(w, 15, 8)
+#define VE_DEC_MPEG_MBADDR_Y(h)			SHIFT_AND_MASK_BITS(h, 7, 0)
 
 #define VE_DEC_MPEG_CTRL			(VE_ENGINE_DEC_MPEG + 0x14)
 
@@ -225,7 +228,7 @@
 #define VE_DEC_MPEG_IQMINPUT_FLAG_INTRA		(0x01 << 14)
 #define VE_DEC_MPEG_IQMINPUT_FLAG_NON_INTRA	(0x00 << 14)
 #define VE_DEC_MPEG_IQMINPUT_WEIGHT(i, v) \
-	(((v) & GENMASK(7, 0)) | (((i) << 8) & GENMASK(13, 8)))
+	(SHIFT_AND_MASK_BITS(i, 13, 8) | SHIFT_AND_MASK_BITS(v, 7, 0))
 
 #define VE_DEC_MPEG_ERROR			(VE_ENGINE_DEC_MPEG + 0xc4)
 #define VE_DEC_MPEG_CRTMBADDR			(VE_ENGINE_DEC_MPEG + 0xc8)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -286,7 +286,6 @@
 				struct v4l2_format *f)
 {
 	struct cedrus_ctx *ctx = cedrus_file2ctx(file);
-	struct cedrus_dev *dev = ctx->dev;
 	struct vb2_queue *vq;
 	int ret;
 
@@ -300,8 +299,6 @@
 
 	ctx->dst_fmt = f->fmt.pix;
 
-	cedrus_dst_format_set(dev, &ctx->dst_fmt);
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/most/net/net.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/most/net/net.c
@@ -81,6 +81,11 @@
 	unsigned int payload_len = skb->len - ETH_HLEN;
 	unsigned int mdp_len = payload_len + MDP_HDR_LEN;
 
+	if (mdp_len < skb->len) {
+		pr_err("drop: too large packet! (%u)\n", skb->len);
+		return -EINVAL;
+	}
+
 	if (mbo->buffer_length < mdp_len) {
 		pr_err("drop: too small buffer! (%d for %d)\n",
 		       mbo->buffer_length, mdp_len);
@@ -128,6 +133,11 @@
 	u8 *buff = mbo->virt_address;
 	unsigned int mep_len = skb->len + MEP_HDR_LEN;
 
+	if (mep_len < skb->len) {
+		pr_err("drop: too large packet! (%u)\n", skb->len);
+		return -EINVAL;
+	}
+
 	if (mbo->buffer_length < mep_len) {
 		pr_err("drop: too small buffer! (%d for %d)\n",
 		       mbo->buffer_length, mep_len);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/most/sound/sound.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/most/sound/sound.c
@@ -98,6 +98,8 @@
 {
 	unsigned int i = 0;
 
+	if (bytes < 2)
+		return;
 	while (i < bytes - 2) {
 		dest[i] = source[i + 2];
 		dest[i + 1] = source[i + 1];
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/mt7621-dma/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/staging/mt7621-dma/Makefile
@@ -1,4 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_MTK_HSDMA) += mtk-hsdma.o
+obj-$(CONFIG_MTK_HSDMA) += hsdma-mt7621.o
 
 ccflags-y += -I$(srctree)/drivers/dma
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/mt7621-dma/hsdma-mt7621.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/mt7621-dma/hsdma-mt7621.c
@@ -0,0 +1,762 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ *  Copyright (C) 2015, Michael Lee <igvtee@gmail.com>
+ *  MTK HSDMA support
+ */
+
+#include <linux/dmaengine.h>
+#include <linux/dma-mapping.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/list.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/irq.h>
+#include <linux/of_dma.h>
+#include <linux/reset.h>
+#include <linux/of_device.h>
+
+#include "virt-dma.h"
+
+#define HSDMA_BASE_OFFSET		0x800
+
+#define HSDMA_REG_TX_BASE		0x00
+#define HSDMA_REG_TX_CNT		0x04
+#define HSDMA_REG_TX_CTX		0x08
+#define HSDMA_REG_TX_DTX		0x0c
+#define HSDMA_REG_RX_BASE		0x100
+#define HSDMA_REG_RX_CNT		0x104
+#define HSDMA_REG_RX_CRX		0x108
+#define HSDMA_REG_RX_DRX		0x10c
+#define HSDMA_REG_INFO			0x200
+#define HSDMA_REG_GLO_CFG		0x204
+#define HSDMA_REG_RST_CFG		0x208
+#define HSDMA_REG_DELAY_INT		0x20c
+#define HSDMA_REG_FREEQ_THRES		0x210
+#define HSDMA_REG_INT_STATUS		0x220
+#define HSDMA_REG_INT_MASK		0x228
+#define HSDMA_REG_SCH_Q01		0x280
+#define HSDMA_REG_SCH_Q23		0x284
+
+#define HSDMA_DESCS_MAX			0xfff
+#define HSDMA_DESCS_NUM			8
+#define HSDMA_DESCS_MASK		(HSDMA_DESCS_NUM - 1)
+#define HSDMA_NEXT_DESC(x)		(((x) + 1) & HSDMA_DESCS_MASK)
+
+/* HSDMA_REG_INFO */
+#define HSDMA_INFO_INDEX_MASK		0xf
+#define HSDMA_INFO_INDEX_SHIFT		24
+#define HSDMA_INFO_BASE_MASK		0xff
+#define HSDMA_INFO_BASE_SHIFT		16
+#define HSDMA_INFO_RX_MASK		0xff
+#define HSDMA_INFO_RX_SHIFT		8
+#define HSDMA_INFO_TX_MASK		0xff
+#define HSDMA_INFO_TX_SHIFT		0
+
+/* HSDMA_REG_GLO_CFG */
+#define HSDMA_GLO_TX_2B_OFFSET		BIT(31)
+#define HSDMA_GLO_CLK_GATE		BIT(30)
+#define HSDMA_GLO_BYTE_SWAP		BIT(29)
+#define HSDMA_GLO_MULTI_DMA		BIT(10)
+#define HSDMA_GLO_TWO_BUF		BIT(9)
+#define HSDMA_GLO_32B_DESC		BIT(8)
+#define HSDMA_GLO_BIG_ENDIAN		BIT(7)
+#define HSDMA_GLO_TX_DONE		BIT(6)
+#define HSDMA_GLO_BT_MASK		0x3
+#define HSDMA_GLO_BT_SHIFT		4
+#define HSDMA_GLO_RX_BUSY		BIT(3)
+#define HSDMA_GLO_RX_DMA		BIT(2)
+#define HSDMA_GLO_TX_BUSY		BIT(1)
+#define HSDMA_GLO_TX_DMA		BIT(0)
+
+#define HSDMA_BT_SIZE_16BYTES		(0 << HSDMA_GLO_BT_SHIFT)
+#define HSDMA_BT_SIZE_32BYTES		(1 << HSDMA_GLO_BT_SHIFT)
+#define HSDMA_BT_SIZE_64BYTES		(2 << HSDMA_GLO_BT_SHIFT)
+#define HSDMA_BT_SIZE_128BYTES		(3 << HSDMA_GLO_BT_SHIFT)
+
+#define HSDMA_GLO_DEFAULT		(HSDMA_GLO_MULTI_DMA | \
+		HSDMA_GLO_RX_DMA | HSDMA_GLO_TX_DMA | HSDMA_BT_SIZE_32BYTES)
+
+/* HSDMA_REG_RST_CFG */
+#define HSDMA_RST_RX_SHIFT		16
+#define HSDMA_RST_TX_SHIFT		0
+
+/* HSDMA_REG_DELAY_INT */
+#define HSDMA_DELAY_INT_EN		BIT(15)
+#define HSDMA_DELAY_PEND_OFFSET		8
+#define HSDMA_DELAY_TIME_OFFSET		0
+#define HSDMA_DELAY_TX_OFFSET		16
+#define HSDMA_DELAY_RX_OFFSET		0
+
+#define HSDMA_DELAY_INIT(x)		(HSDMA_DELAY_INT_EN | \
+		((x) << HSDMA_DELAY_PEND_OFFSET))
+#define HSDMA_DELAY(x)			((HSDMA_DELAY_INIT(x) << \
+		HSDMA_DELAY_TX_OFFSET) | HSDMA_DELAY_INIT(x))
+
+/* HSDMA_REG_INT_STATUS */
+#define HSDMA_INT_DELAY_RX_COH		BIT(31)
+#define HSDMA_INT_DELAY_RX_INT		BIT(30)
+#define HSDMA_INT_DELAY_TX_COH		BIT(29)
+#define HSDMA_INT_DELAY_TX_INT		BIT(28)
+#define HSDMA_INT_RX_MASK		0x3
+#define HSDMA_INT_RX_SHIFT		16
+#define HSDMA_INT_RX_Q0			BIT(16)
+#define HSDMA_INT_TX_MASK		0xf
+#define HSDMA_INT_TX_SHIFT		0
+#define HSDMA_INT_TX_Q0			BIT(0)
+
+/* tx/rx dma desc flags */
+#define HSDMA_PLEN_MASK			0x3fff
+#define HSDMA_DESC_DONE			BIT(31)
+#define HSDMA_DESC_LS0			BIT(30)
+#define HSDMA_DESC_PLEN0(_x)		(((_x) & HSDMA_PLEN_MASK) << 16)
+#define HSDMA_DESC_TAG			BIT(15)
+#define HSDMA_DESC_LS1			BIT(14)
+#define HSDMA_DESC_PLEN1(_x)		((_x) & HSDMA_PLEN_MASK)
+
+/* align 4 bytes */
+#define HSDMA_ALIGN_SIZE		3
+/* align size 128bytes */
+#define HSDMA_MAX_PLEN			0x3f80
+
+struct hsdma_desc {
+	u32 addr0;
+	u32 flags;
+	u32 addr1;
+	u32 unused;
+};
+
+struct mtk_hsdma_sg {
+	dma_addr_t src_addr;
+	dma_addr_t dst_addr;
+	u32 len;
+};
+
+struct mtk_hsdma_desc {
+	struct virt_dma_desc vdesc;
+	unsigned int num_sgs;
+	struct mtk_hsdma_sg sg[1];
+};
+
+struct mtk_hsdma_chan {
+	struct virt_dma_chan vchan;
+	unsigned int id;
+	dma_addr_t desc_addr;
+	int tx_idx;
+	int rx_idx;
+	struct hsdma_desc *tx_ring;
+	struct hsdma_desc *rx_ring;
+	struct mtk_hsdma_desc *desc;
+	unsigned int next_sg;
+};
+
+struct mtk_hsdam_engine {
+	struct dma_device ddev;
+	struct device_dma_parameters dma_parms;
+	void __iomem *base;
+	struct tasklet_struct task;
+	volatile unsigned long chan_issued;
+
+	struct mtk_hsdma_chan chan[1];
+};
+
+static inline struct mtk_hsdam_engine *mtk_hsdma_chan_get_dev(
+		struct mtk_hsdma_chan *chan)
+{
+	return container_of(chan->vchan.chan.device, struct mtk_hsdam_engine,
+			ddev);
+}
+
+static inline struct mtk_hsdma_chan *to_mtk_hsdma_chan(struct dma_chan *c)
+{
+	return container_of(c, struct mtk_hsdma_chan, vchan.chan);
+}
+
+static inline struct mtk_hsdma_desc *to_mtk_hsdma_desc(
+		struct virt_dma_desc *vdesc)
+{
+	return container_of(vdesc, struct mtk_hsdma_desc, vdesc);
+}
+
+static inline u32 mtk_hsdma_read(struct mtk_hsdam_engine *hsdma, u32 reg)
+{
+	return readl(hsdma->base + reg);
+}
+
+static inline void mtk_hsdma_write(struct mtk_hsdam_engine *hsdma,
+				   unsigned int reg, u32 val)
+{
+	writel(val, hsdma->base + reg);
+}
+
+static void mtk_hsdma_reset_chan(struct mtk_hsdam_engine *hsdma,
+				 struct mtk_hsdma_chan *chan)
+{
+	chan->tx_idx = 0;
+	chan->rx_idx = HSDMA_DESCS_NUM - 1;
+
+	mtk_hsdma_write(hsdma, HSDMA_REG_TX_CTX, chan->tx_idx);
+	mtk_hsdma_write(hsdma, HSDMA_REG_RX_CRX, chan->rx_idx);
+
+	mtk_hsdma_write(hsdma, HSDMA_REG_RST_CFG,
+			0x1 << (chan->id + HSDMA_RST_TX_SHIFT));
+	mtk_hsdma_write(hsdma, HSDMA_REG_RST_CFG,
+			0x1 << (chan->id + HSDMA_RST_RX_SHIFT));
+}
+
+static void hsdma_dump_reg(struct mtk_hsdam_engine *hsdma)
+{
+	dev_dbg(hsdma->ddev.dev, "tbase %08x, tcnt %08x, " \
+			"tctx %08x, tdtx: %08x, rbase %08x, " \
+			"rcnt %08x, rctx %08x, rdtx %08x\n",
+			mtk_hsdma_read(hsdma, HSDMA_REG_TX_BASE),
+			mtk_hsdma_read(hsdma, HSDMA_REG_TX_CNT),
+			mtk_hsdma_read(hsdma, HSDMA_REG_TX_CTX),
+			mtk_hsdma_read(hsdma, HSDMA_REG_TX_DTX),
+			mtk_hsdma_read(hsdma, HSDMA_REG_RX_BASE),
+			mtk_hsdma_read(hsdma, HSDMA_REG_RX_CNT),
+			mtk_hsdma_read(hsdma, HSDMA_REG_RX_CRX),
+			mtk_hsdma_read(hsdma, HSDMA_REG_RX_DRX));
+
+	dev_dbg(hsdma->ddev.dev, "info %08x, glo %08x, delay %08x, " \
+			"intr_stat %08x, intr_mask %08x\n",
+			mtk_hsdma_read(hsdma, HSDMA_REG_INFO),
+			mtk_hsdma_read(hsdma, HSDMA_REG_GLO_CFG),
+			mtk_hsdma_read(hsdma, HSDMA_REG_DELAY_INT),
+			mtk_hsdma_read(hsdma, HSDMA_REG_INT_STATUS),
+			mtk_hsdma_read(hsdma, HSDMA_REG_INT_MASK));
+}
+
+static void hsdma_dump_desc(struct mtk_hsdam_engine *hsdma,
+			    struct mtk_hsdma_chan *chan)
+{
+	struct hsdma_desc *tx_desc;
+	struct hsdma_desc *rx_desc;
+	int i;
+
+	dev_dbg(hsdma->ddev.dev, "tx idx: %d, rx idx: %d\n",
+		chan->tx_idx, chan->rx_idx);
+
+	for (i = 0; i < HSDMA_DESCS_NUM; i++) {
+		tx_desc = &chan->tx_ring[i];
+		rx_desc = &chan->rx_ring[i];
+
+		dev_dbg(hsdma->ddev.dev, "%d tx addr0: %08x, flags %08x, " \
+				"tx addr1: %08x, rx addr0 %08x, flags %08x\n",
+				i, tx_desc->addr0, tx_desc->flags, \
+				tx_desc->addr1, rx_desc->addr0, rx_desc->flags);
+	}
+}
+
+static void mtk_hsdma_reset(struct mtk_hsdam_engine *hsdma,
+			    struct mtk_hsdma_chan *chan)
+{
+	int i;
+
+	/* disable dma */
+	mtk_hsdma_write(hsdma, HSDMA_REG_GLO_CFG, 0);
+
+	/* disable intr */
+	mtk_hsdma_write(hsdma, HSDMA_REG_INT_MASK, 0);
+
+	/* init desc value */
+	for (i = 0; i < HSDMA_DESCS_NUM; i++) {
+		chan->tx_ring[i].addr0 = 0;
+		chan->tx_ring[i].flags = HSDMA_DESC_LS0 | HSDMA_DESC_DONE;
+	}
+	for (i = 0; i < HSDMA_DESCS_NUM; i++) {
+		chan->rx_ring[i].addr0 = 0;
+		chan->rx_ring[i].flags = 0;
+	}
+
+	/* reset */
+	mtk_hsdma_reset_chan(hsdma, chan);
+
+	/* enable intr */
+	mtk_hsdma_write(hsdma, HSDMA_REG_INT_MASK, HSDMA_INT_RX_Q0);
+
+	/* enable dma */
+	mtk_hsdma_write(hsdma, HSDMA_REG_GLO_CFG, HSDMA_GLO_DEFAULT);
+}
+
+static int mtk_hsdma_terminate_all(struct dma_chan *c)
+{
+	struct mtk_hsdma_chan *chan = to_mtk_hsdma_chan(c);
+	struct mtk_hsdam_engine *hsdma = mtk_hsdma_chan_get_dev(chan);
+	unsigned long timeout;
+	LIST_HEAD(head);
+
+	spin_lock_bh(&chan->vchan.lock);
+	chan->desc = NULL;
+	clear_bit(chan->id, &hsdma->chan_issued);
+	vchan_get_all_descriptors(&chan->vchan, &head);
+	spin_unlock_bh(&chan->vchan.lock);
+
+	vchan_dma_desc_free_list(&chan->vchan, &head);
+
+	/* wait dma transfer complete */
+	timeout = jiffies + msecs_to_jiffies(2000);
+	while (mtk_hsdma_read(hsdma, HSDMA_REG_GLO_CFG) &
+			(HSDMA_GLO_RX_BUSY | HSDMA_GLO_TX_BUSY)) {
+		if (time_after_eq(jiffies, timeout)) {
+			hsdma_dump_desc(hsdma, chan);
+			mtk_hsdma_reset(hsdma, chan);
+			dev_err(hsdma->ddev.dev, "timeout, reset it\n");
+			break;
+		}
+		cpu_relax();
+	}
+
+	return 0;
+}
+
+static int mtk_hsdma_start_transfer(struct mtk_hsdam_engine *hsdma,
+				    struct mtk_hsdma_chan *chan)
+{
+	dma_addr_t src, dst;
+	size_t len, tlen;
+	struct hsdma_desc *tx_desc, *rx_desc;
+	struct mtk_hsdma_sg *sg;
+	unsigned int i;
+	int rx_idx;
+
+	sg = &chan->desc->sg[0];
+	len = sg->len;
+	chan->desc->num_sgs = DIV_ROUND_UP(len, HSDMA_MAX_PLEN);
+
+	/* tx desc */
+	src = sg->src_addr;
+	for (i = 0; i < chan->desc->num_sgs; i++) {
+		tx_desc = &chan->tx_ring[chan->tx_idx];
+
+		if (len > HSDMA_MAX_PLEN)
+			tlen = HSDMA_MAX_PLEN;
+		else
+			tlen = len;
+
+		if (i & 0x1) {
+			tx_desc->addr1 = src;
+			tx_desc->flags |= HSDMA_DESC_PLEN1(tlen);
+		} else {
+			tx_desc->addr0 = src;
+			tx_desc->flags = HSDMA_DESC_PLEN0(tlen);
+
+			/* update index */
+			chan->tx_idx = HSDMA_NEXT_DESC(chan->tx_idx);
+		}
+
+		src += tlen;
+		len -= tlen;
+	}
+	if (i & 0x1)
+		tx_desc->flags |= HSDMA_DESC_LS0;
+	else
+		tx_desc->flags |= HSDMA_DESC_LS1;
+
+	/* rx desc */
+	rx_idx = HSDMA_NEXT_DESC(chan->rx_idx);
+	len = sg->len;
+	dst = sg->dst_addr;
+	for (i = 0; i < chan->desc->num_sgs; i++) {
+		rx_desc = &chan->rx_ring[rx_idx];
+		if (len > HSDMA_MAX_PLEN)
+			tlen = HSDMA_MAX_PLEN;
+		else
+			tlen = len;
+
+		rx_desc->addr0 = dst;
+		rx_desc->flags = HSDMA_DESC_PLEN0(tlen);
+
+		dst += tlen;
+		len -= tlen;
+
+		/* update index */
+		rx_idx = HSDMA_NEXT_DESC(rx_idx);
+	}
+
+	/* make sure desc and index all up to date */
+	wmb();
+	mtk_hsdma_write(hsdma, HSDMA_REG_TX_CTX, chan->tx_idx);
+
+	return 0;
+}
+
+static int gdma_next_desc(struct mtk_hsdma_chan *chan)
+{
+	struct virt_dma_desc *vdesc;
+
+	vdesc = vchan_next_desc(&chan->vchan);
+	if (!vdesc) {
+		chan->desc = NULL;
+		return 0;
+	}
+	chan->desc = to_mtk_hsdma_desc(vdesc);
+	chan->next_sg = 0;
+
+	return 1;
+}
+
+static void mtk_hsdma_chan_done(struct mtk_hsdam_engine *hsdma,
+				struct mtk_hsdma_chan *chan)
+{
+	struct mtk_hsdma_desc *desc;
+	int chan_issued;
+
+	chan_issued = 0;
+	spin_lock_bh(&chan->vchan.lock);
+	desc = chan->desc;
+	if (likely(desc)) {
+		if (chan->next_sg == desc->num_sgs) {
+			list_del(&desc->vdesc.node);
+			vchan_cookie_complete(&desc->vdesc);
+			chan_issued = gdma_next_desc(chan);
+		}
+	} else {
+		dev_dbg(hsdma->ddev.dev, "no desc to complete\n");
+	}
+
+	if (chan_issued)
+		set_bit(chan->id, &hsdma->chan_issued);
+	spin_unlock_bh(&chan->vchan.lock);
+}
+
+static irqreturn_t mtk_hsdma_irq(int irq, void *devid)
+{
+	struct mtk_hsdam_engine *hsdma = devid;
+	u32 status;
+
+	status = mtk_hsdma_read(hsdma, HSDMA_REG_INT_STATUS);
+	if (unlikely(!status))
+		return IRQ_NONE;
+
+	if (likely(status & HSDMA_INT_RX_Q0))
+		tasklet_schedule(&hsdma->task);
+	else
+		dev_dbg(hsdma->ddev.dev, "unhandle irq status %08x\n", status);
+	/* clean intr bits */
+	mtk_hsdma_write(hsdma, HSDMA_REG_INT_STATUS, status);
+
+	return IRQ_HANDLED;
+}
+
+static void mtk_hsdma_issue_pending(struct dma_chan *c)
+{
+	struct mtk_hsdma_chan *chan = to_mtk_hsdma_chan(c);
+	struct mtk_hsdam_engine *hsdma = mtk_hsdma_chan_get_dev(chan);
+
+	spin_lock_bh(&chan->vchan.lock);
+	if (vchan_issue_pending(&chan->vchan) && !chan->desc) {
+		if (gdma_next_desc(chan)) {
+			set_bit(chan->id, &hsdma->chan_issued);
+			tasklet_schedule(&hsdma->task);
+		} else {
+			dev_dbg(hsdma->ddev.dev, "no desc to issue\n");
+		}
+	}
+	spin_unlock_bh(&chan->vchan.lock);
+}
+
+static struct dma_async_tx_descriptor *mtk_hsdma_prep_dma_memcpy(
+		struct dma_chan *c, dma_addr_t dest, dma_addr_t src,
+		size_t len, unsigned long flags)
+{
+	struct mtk_hsdma_chan *chan = to_mtk_hsdma_chan(c);
+	struct mtk_hsdma_desc *desc;
+
+	if (len <= 0)
+		return NULL;
+
+	desc = kzalloc(sizeof(*desc), GFP_ATOMIC);
+	if (!desc) {
+		dev_err(c->device->dev, "alloc memcpy decs error\n");
+		return NULL;
+	}
+
+	desc->sg[0].src_addr = src;
+	desc->sg[0].dst_addr = dest;
+	desc->sg[0].len = len;
+
+	return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
+}
+
+static enum dma_status mtk_hsdma_tx_status(struct dma_chan *c,
+					   dma_cookie_t cookie,
+					   struct dma_tx_state *state)
+{
+	return dma_cookie_status(c, cookie, state);
+}
+
+static void mtk_hsdma_free_chan_resources(struct dma_chan *c)
+{
+	vchan_free_chan_resources(to_virt_chan(c));
+}
+
+static void mtk_hsdma_desc_free(struct virt_dma_desc *vdesc)
+{
+	kfree(container_of(vdesc, struct mtk_hsdma_desc, vdesc));
+}
+
+static void mtk_hsdma_tx(struct mtk_hsdam_engine *hsdma)
+{
+	struct mtk_hsdma_chan *chan;
+
+	if (test_and_clear_bit(0, &hsdma->chan_issued)) {
+		chan = &hsdma->chan[0];
+		if (chan->desc)
+			mtk_hsdma_start_transfer(hsdma, chan);
+		else
+			dev_dbg(hsdma->ddev.dev, "chan 0 no desc to issue\n");
+	}
+}
+
+static void mtk_hsdma_rx(struct mtk_hsdam_engine *hsdma)
+{
+	struct mtk_hsdma_chan *chan;
+	int next_idx, drx_idx, cnt;
+
+	chan = &hsdma->chan[0];
+	next_idx = HSDMA_NEXT_DESC(chan->rx_idx);
+	drx_idx = mtk_hsdma_read(hsdma, HSDMA_REG_RX_DRX);
+
+	cnt = (drx_idx - next_idx) & HSDMA_DESCS_MASK;
+	if (!cnt)
+		return;
+
+	chan->next_sg += cnt;
+	chan->rx_idx = (chan->rx_idx + cnt) & HSDMA_DESCS_MASK;
+
+	/* update rx crx */
+	wmb();
+	mtk_hsdma_write(hsdma, HSDMA_REG_RX_CRX, chan->rx_idx);
+
+	mtk_hsdma_chan_done(hsdma, chan);
+}
+
+static void mtk_hsdma_tasklet(unsigned long arg)
+{
+	struct mtk_hsdam_engine *hsdma = (struct mtk_hsdam_engine *)arg;
+
+	mtk_hsdma_rx(hsdma);
+	mtk_hsdma_tx(hsdma);
+}
+
+static int mtk_hsdam_alloc_desc(struct mtk_hsdam_engine *hsdma,
+				struct mtk_hsdma_chan *chan)
+{
+	int i;
+
+	chan->tx_ring = dma_alloc_coherent(hsdma->ddev.dev,
+			2 * HSDMA_DESCS_NUM * sizeof(*chan->tx_ring),
+			&chan->desc_addr, GFP_ATOMIC | __GFP_ZERO);
+	if (!chan->tx_ring)
+		goto no_mem;
+
+	chan->rx_ring = &chan->tx_ring[HSDMA_DESCS_NUM];
+
+	/* init tx ring value */
+	for (i = 0; i < HSDMA_DESCS_NUM; i++)
+		chan->tx_ring[i].flags = HSDMA_DESC_LS0 | HSDMA_DESC_DONE;
+
+	return 0;
+no_mem:
+	return -ENOMEM;
+}
+
+static void mtk_hsdam_free_desc(struct mtk_hsdam_engine *hsdma,
+				struct mtk_hsdma_chan *chan)
+{
+	if (chan->tx_ring) {
+		dma_free_coherent(hsdma->ddev.dev,
+				2 * HSDMA_DESCS_NUM * sizeof(*chan->tx_ring),
+				chan->tx_ring, chan->desc_addr);
+		chan->tx_ring = NULL;
+		chan->rx_ring = NULL;
+	}
+}
+
+static int mtk_hsdma_init(struct mtk_hsdam_engine *hsdma)
+{
+	struct mtk_hsdma_chan *chan;
+	int ret;
+	u32 reg;
+
+	/* init desc */
+	chan = &hsdma->chan[0];
+	ret = mtk_hsdam_alloc_desc(hsdma, chan);
+	if (ret)
+		return ret;
+
+	/* tx */
+	mtk_hsdma_write(hsdma, HSDMA_REG_TX_BASE, chan->desc_addr);
+	mtk_hsdma_write(hsdma, HSDMA_REG_TX_CNT, HSDMA_DESCS_NUM);
+	/* rx */
+	mtk_hsdma_write(hsdma, HSDMA_REG_RX_BASE, chan->desc_addr +
+			(sizeof(struct hsdma_desc) * HSDMA_DESCS_NUM));
+	mtk_hsdma_write(hsdma, HSDMA_REG_RX_CNT, HSDMA_DESCS_NUM);
+	/* reset */
+	mtk_hsdma_reset_chan(hsdma, chan);
+
+	/* enable rx intr */
+	mtk_hsdma_write(hsdma, HSDMA_REG_INT_MASK, HSDMA_INT_RX_Q0);
+
+	/* enable dma */
+	mtk_hsdma_write(hsdma, HSDMA_REG_GLO_CFG, HSDMA_GLO_DEFAULT);
+
+	/* hardware info */
+	reg = mtk_hsdma_read(hsdma, HSDMA_REG_INFO);
+	dev_info(hsdma->ddev.dev, "rx: %d, tx: %d\n",
+		 (reg >> HSDMA_INFO_RX_SHIFT) & HSDMA_INFO_RX_MASK,
+		 (reg >> HSDMA_INFO_TX_SHIFT) & HSDMA_INFO_TX_MASK);
+
+	hsdma_dump_reg(hsdma);
+
+	return ret;
+}
+
+static void mtk_hsdma_uninit(struct mtk_hsdam_engine *hsdma)
+{
+	struct mtk_hsdma_chan *chan;
+
+	/* disable dma */
+	mtk_hsdma_write(hsdma, HSDMA_REG_GLO_CFG, 0);
+
+	/* disable intr */
+	mtk_hsdma_write(hsdma, HSDMA_REG_INT_MASK, 0);
+
+	/* free desc */
+	chan = &hsdma->chan[0];
+	mtk_hsdam_free_desc(hsdma, chan);
+
+	/* tx */
+	mtk_hsdma_write(hsdma, HSDMA_REG_TX_BASE, 0);
+	mtk_hsdma_write(hsdma, HSDMA_REG_TX_CNT, 0);
+	/* rx */
+	mtk_hsdma_write(hsdma, HSDMA_REG_RX_BASE, 0);
+	mtk_hsdma_write(hsdma, HSDMA_REG_RX_CNT, 0);
+	/* reset */
+	mtk_hsdma_reset_chan(hsdma, chan);
+}
+
+static const struct of_device_id mtk_hsdma_of_match[] = {
+	{ .compatible = "mediatek,mt7621-hsdma" },
+	{ },
+};
+
+static int mtk_hsdma_probe(struct platform_device *pdev)
+{
+	const struct of_device_id *match;
+	struct mtk_hsdma_chan *chan;
+	struct mtk_hsdam_engine *hsdma;
+	struct dma_device *dd;
+	struct resource *res;
+	int ret;
+	int irq;
+	void __iomem *base;
+
+	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+	if (ret)
+		return ret;
+
+	match = of_match_device(mtk_hsdma_of_match, &pdev->dev);
+	if (!match)
+		return -EINVAL;
+
+	hsdma = devm_kzalloc(&pdev->dev, sizeof(*hsdma), GFP_KERNEL);
+	if (!hsdma)
+		return -EINVAL;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(base))
+		return PTR_ERR(base);
+	hsdma->base = base + HSDMA_BASE_OFFSET;
+	tasklet_init(&hsdma->task, mtk_hsdma_tasklet, (unsigned long)hsdma);
+
+	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
+		return -EINVAL;
+	ret = devm_request_irq(&pdev->dev, irq, mtk_hsdma_irq,
+			       0, dev_name(&pdev->dev), hsdma);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to request irq\n");
+		return ret;
+	}
+
+	device_reset(&pdev->dev);
+
+	dd = &hsdma->ddev;
+	dma_cap_set(DMA_MEMCPY, dd->cap_mask);
+	dd->copy_align = HSDMA_ALIGN_SIZE;
+	dd->device_free_chan_resources = mtk_hsdma_free_chan_resources;
+	dd->device_prep_dma_memcpy = mtk_hsdma_prep_dma_memcpy;
+	dd->device_terminate_all = mtk_hsdma_terminate_all;
+	dd->device_tx_status = mtk_hsdma_tx_status;
+	dd->device_issue_pending = mtk_hsdma_issue_pending;
+	dd->dev = &pdev->dev;
+	dd->dev->dma_parms = &hsdma->dma_parms;
+	dma_set_max_seg_size(dd->dev, HSDMA_MAX_PLEN);
+	INIT_LIST_HEAD(&dd->channels);
+
+	chan = &hsdma->chan[0];
+	chan->id = 0;
+	chan->vchan.desc_free = mtk_hsdma_desc_free;
+	vchan_init(&chan->vchan, dd);
+
+	/* init hardware */
+	ret = mtk_hsdma_init(hsdma);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to alloc ring descs\n");
+		return ret;
+	}
+
+	ret = dma_async_device_register(dd);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to register dma device\n");
+		goto err_uninit_hsdma;
+	}
+
+	ret = of_dma_controller_register(pdev->dev.of_node,
+					 of_dma_xlate_by_chan_id, hsdma);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to register of dma controller\n");
+		goto err_unregister;
+	}
+
+	platform_set_drvdata(pdev, hsdma);
+
+	return 0;
+
+err_unregister:
+	dma_async_device_unregister(dd);
+err_uninit_hsdma:
+	mtk_hsdma_uninit(hsdma);
+	return ret;
+}
+
+static int mtk_hsdma_remove(struct platform_device *pdev)
+{
+	struct mtk_hsdam_engine *hsdma = platform_get_drvdata(pdev);
+
+	mtk_hsdma_uninit(hsdma);
+
+	of_dma_controller_free(pdev->dev.of_node);
+	dma_async_device_unregister(&hsdma->ddev);
+
+	return 0;
+}
+
+static struct platform_driver mtk_hsdma_driver = {
+	.probe = mtk_hsdma_probe,
+	.remove = mtk_hsdma_remove,
+	.driver = {
+		.name = KBUILD_MODNAME,
+		.of_match_table = mtk_hsdma_of_match,
+	},
+};
+module_platform_driver(mtk_hsdma_driver);
+
+MODULE_AUTHOR("Michael Lee <igvtee@gmail.com>");
+MODULE_DESCRIPTION("MTK HSDMA driver");
+MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/mt7621-pci/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/staging/mt7621-pci/Kconfig
@@ -2,7 +2,6 @@
 config PCI_MT7621
 	tristate "MediaTek MT7621 PCI Controller"
 	depends on RALINK
-	depends on PCI
 	select PCI_DRIVERS_GENERIC
 	help
 	  This selects a driver for the MediaTek MT7621 PCI Controller.
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/mt7621-pci/pci-mt7621.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/mt7621-pci/pci-mt7621.c
@@ -29,15 +29,14 @@
 #include <linux/phy/phy.h>
 #include <linux/platform_device.h>
 #include <linux/reset.h>
+#include <linux/sys_soc.h>
 #include <mt7621.h>
 #include <ralink_regs.h>
 
 #include "../../pci/pci.h"
 
 /* sysctl */
-#define MT7621_CHIP_REV_ID		0x0c
 #define MT7621_GPIO_MODE		0x60
-#define CHIP_REV_MT7621_E2		0x0101
 
 /* MediaTek specific configuration registers */
 #define PCIE_FTS_NUM			0x70c
@@ -126,6 +125,8 @@
  * @ports: pointer to PCIe port information
  * @perst: gpio reset
  * @rst: pointer to pcie reset
+ * @resets_inverted: depends on chip revision
+ * reset lines are inverted.
  */
 struct mt7621_pcie {
 	void __iomem *base;
@@ -140,6 +141,7 @@
 	struct list_head ports;
 	struct gpio_desc *perst;
 	struct reset_control *rst;
+	bool resets_inverted;
 };
 
 static inline u32 pcie_read(struct mt7621_pcie *pcie, u32 reg)
@@ -229,9 +231,9 @@
 
 static inline void mt7621_control_assert(struct mt7621_pcie_port *port)
 {
-	u32 chip_rev_id = rt_sysc_r32(MT7621_CHIP_REV_ID);
+	struct mt7621_pcie *pcie = port->pcie;
 
-	if ((chip_rev_id & 0xFFFF) == CHIP_REV_MT7621_E2)
+	if (pcie->resets_inverted)
 		reset_control_assert(port->pcie_rst);
 	else
 		reset_control_deassert(port->pcie_rst);
@@ -239,9 +241,9 @@
 
 static inline void mt7621_control_deassert(struct mt7621_pcie_port *port)
 {
-	u32 chip_rev_id = rt_sysc_r32(MT7621_CHIP_REV_ID);
+	struct mt7621_pcie *pcie = port->pcie;
 
-	if ((chip_rev_id & 0xFFFF) == CHIP_REV_MT7621_E2)
+	if (pcie->resets_inverted)
 		reset_control_deassert(port->pcie_rst);
 	else
 		reset_control_assert(port->pcie_rst);
@@ -641,9 +643,14 @@
 	return pci_host_probe(host);
 }
 
+static const struct soc_device_attribute mt7621_pci_quirks_match[] = {
+	{ .soc_id = "mt7621", .revision = "E2" }
+};
+
 static int mt7621_pci_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
+	const struct soc_device_attribute *attr;
 	struct mt7621_pcie *pcie;
 	struct pci_host_bridge *bridge;
 	int err;
@@ -661,6 +668,10 @@
 	platform_set_drvdata(pdev, pcie);
 	INIT_LIST_HEAD(&pcie->ports);
 
+	attr = soc_device_match(mt7621_pci_quirks_match);
+	if (attr)
+		pcie->resets_inverted = true;
+
 	err = mt7621_pcie_parse_dt(pcie);
 	if (err) {
 		dev_err(dev, "Parsing DT failed\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/octeon/ethernet-mdio.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/octeon/ethernet-mdio.c
@@ -147,12 +147,6 @@
 
 	phy_node = of_parse_phandle(priv->of_node, "phy-handle", 0);
 	if (!phy_node && of_phy_is_fixed_link(priv->of_node)) {
-		int rc;
-
-		rc = of_phy_register_fixed_link(priv->of_node);
-		if (rc)
-			return rc;
-
 		phy_node = of_node_get(priv->of_node);
 	}
 	if (!phy_node)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/octeon/ethernet-rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/octeon/ethernet-rx.c
@@ -69,15 +69,17 @@
 	else
 		port = work->word1.cn38xx.ipprt;
 
-	if ((work->word2.snoip.err_code == 10) && (work->word1.len <= 64)) {
+	if ((work->word2.snoip.err_code == 10) && (work->word1.len <= 64))
 		/*
 		 * Ignore length errors on min size packets. Some
 		 * equipment incorrectly pads packets to 64+4FCS
 		 * instead of 60+4FCS.  Note these packets still get
 		 * counted as frame errors.
 		 */
-	} else if (work->word2.snoip.err_code == 5 ||
-		   work->word2.snoip.err_code == 7) {
+		return 0;
+
+	if (work->word2.snoip.err_code == 5 ||
+	    work->word2.snoip.err_code == 7) {
 		/*
 		 * We received a packet with either an alignment error
 		 * or a FCS error. This may be signalling that we are
@@ -108,7 +110,10 @@
 				/* Port received 0xd5 preamble */
 				work->packet_ptr.s.addr += i + 1;
 				work->word1.len -= i + 5;
-			} else if ((*ptr & 0xf) == 0xd) {
+				return 0;
+			}
+
+			if ((*ptr & 0xf) == 0xd) {
 				/* Port received 0xd preamble */
 				work->packet_ptr.s.addr += i;
 				work->word1.len -= i + 4;
@@ -118,21 +123,20 @@
 					    ((*(ptr + 1) & 0xf) << 4);
 					ptr++;
 				}
-			} else {
-				printk_ratelimited("Port %d unknown preamble, packet dropped\n",
-						   port);
-				cvm_oct_free_work(work);
-				return 1;
+				return 0;
 			}
+
+			printk_ratelimited("Port %d unknown preamble, packet dropped\n",
+					   port);
+			cvm_oct_free_work(work);
+			return 1;
 		}
-	} else {
-		printk_ratelimited("Port %d receive error code %d, packet dropped\n",
-				   port, work->word2.snoip.err_code);
-		cvm_oct_free_work(work);
-		return 1;
 	}
 
-	return 0;
+	printk_ratelimited("Port %d receive error code %d, packet dropped\n",
+			   port, work->word2.snoip.err_code);
+	cvm_oct_free_work(work);
+	return 1;
 }
 
 static void copy_segments_to_skb(cvmx_wqe_t *work, struct sk_buff *skb)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/octeon/ethernet-tx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/octeon/ethernet-tx.c
@@ -352,10 +352,10 @@
 	skb_dst_set(skb, NULL);
 	skb_ext_reset(skb);
 	nf_reset_ct(skb);
+	skb_reset_redirect(skb);
 
 #ifdef CONFIG_NET_SCHED
 	skb->tc_index = 0;
-	skb_reset_tc(skb);
 #endif /* CONFIG_NET_SCHED */
 #endif /* REUSE_SKBUFFS_WITHOUT_FREE */
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/octeon/ethernet.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/octeon/ethernet.c
@@ -13,6 +13,7 @@
 #include <linux/phy.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
+#include <linux/of_mdio.h>
 #include <linux/of_net.h>
 #include <linux/if_ether.h>
 #include <linux/if_vlan.h>
@@ -894,6 +895,14 @@
 				break;
 			}
 
+			if (priv->of_node && of_phy_is_fixed_link(priv->of_node)) {
+				if (of_phy_register_fixed_link(priv->of_node)) {
+					netdev_err(dev, "Failed to register fixed link for interface %d, port %d\n",
+						   interface, priv->port);
+					dev->netdev_ops = NULL;
+				}
+			}
+
 			if (!dev->netdev_ops) {
 				free_netdev(dev);
 			} else if (register_netdev(dev) < 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/octeon/octeon-ethernet.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/octeon/octeon-ethernet.h
@@ -14,7 +14,7 @@
 #include <linux/of.h>
 #include <linux/phy.h>
 
-#ifdef CONFIG_MIPS
+#ifdef CONFIG_CAVIUM_OCTEON_SOC
 
 #include <asm/octeon/octeon.h>
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/octeon/octeon-stubs.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/octeon/octeon-stubs.h
@@ -1,5 +1,8 @@
 #define CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE	512
-#define XKPHYS_TO_PHYS(p)			(p)
+
+#ifndef XKPHYS_TO_PHYS
+# define XKPHYS_TO_PHYS(p)			(p)
+#endif
 
 #define OCTEON_IRQ_WORKQ0 0
 #define OCTEON_IRQ_RML 0
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/ralink-gdma/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/staging/ralink-gdma/Kconfig
@@ -2,6 +2,7 @@
 config DMA_RALINK
 	tristate "RALINK DMA support"
 	depends on RALINK && !SOC_RT288X
+	depends on DMADEVICES
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -784,6 +784,7 @@
 	/* SSID */
 	p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _SSID_IE_, &ie_len, (pbss_network->ie_length - _BEACON_IE_OFFSET_));
 	if (p && ie_len > 0) {
+		ie_len = min_t(int, ie_len, sizeof(pbss_network->ssid.ssid));
 		memset(&pbss_network->ssid, 0, sizeof(struct ndis_802_11_ssid));
 		memcpy(pbss_network->ssid.ssid, (p + 2), ie_len);
 		pbss_network->ssid.ssid_length = ie_len;
@@ -802,6 +803,7 @@
 	/*  get supported rates */
 	p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, &ie_len, (pbss_network->ie_length - _BEACON_IE_OFFSET_));
 	if (p) {
+		ie_len = min_t(int, ie_len, NDIS_802_11_LENGTH_RATES_EX);
 		memcpy(supportRate, p + 2, ie_len);
 		supportRateNum = ie_len;
 	}
@@ -809,6 +811,8 @@
 	/* get ext_supported rates */
 	p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _EXT_SUPPORTEDRATES_IE_, &ie_len, pbss_network->ie_length - _BEACON_IE_OFFSET_);
 	if (p) {
+		ie_len = min_t(int, ie_len,
+			       NDIS_802_11_LENGTH_RATES_EX - supportRateNum);
 		memcpy(supportRate + supportRateNum, p + 2, ie_len);
 		supportRateNum += ie_len;
 	}
@@ -922,6 +926,7 @@
 
 		pht_cap->mcs.rx_mask[0] = 0xff;
 		pht_cap->mcs.rx_mask[1] = 0x0;
+		ie_len = min_t(int, ie_len, sizeof(pmlmepriv->htpriv.ht_cap));
 		memcpy(&pmlmepriv->htpriv.ht_cap, p + 2, ie_len);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -1729,9 +1729,11 @@
 	if ((ndisauthmode == Ndis802_11AuthModeWPA) ||
 	    (ndisauthmode == Ndis802_11AuthModeWPAPSK))
 		authmode = _WPA_IE_ID_;
-	if ((ndisauthmode == Ndis802_11AuthModeWPA2) ||
+	else if ((ndisauthmode == Ndis802_11AuthModeWPA2) ||
 	    (ndisauthmode == Ndis802_11AuthModeWPA2PSK))
 		authmode = _WPA2_IE_ID_;
+	else
+		authmode = 0x0;
 
 	if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) {
 		memcpy(out_ie+ielength, psecuritypriv->wps_ie, psecuritypriv->wps_ie_len);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -1525,21 +1525,14 @@
 
 		/* Allocate new skb for releasing to upper layer */
 		sub_skb = dev_alloc_skb(nSubframe_Length + 12);
-		if (sub_skb) {
-			skb_reserve(sub_skb, 12);
-			skb_put_data(sub_skb, pdata, nSubframe_Length);
-		} else {
-			sub_skb = skb_clone(prframe->pkt, GFP_ATOMIC);
-			if (sub_skb) {
-				sub_skb->data = pdata;
-				sub_skb->len = nSubframe_Length;
-				skb_set_tail_pointer(sub_skb, nSubframe_Length);
-			} else {
-				DBG_88E("skb_clone() Fail!!! , nr_subframes=%d\n", nr_subframes);
-				break;
-			}
+		if (!sub_skb) {
+			DBG_88E("dev_alloc_skb() Fail!!! , nr_subframes=%d\n", nr_subframes);
+			break;
 		}
 
+		skb_reserve(sub_skb, 12);
+		skb_put_data(sub_skb, pdata, nSubframe_Length);
+
 		subframes[nr_subframes++] = sub_skb;
 
 		if (nr_subframes >= MAX_SUBFRAME_COUNT) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -776,7 +776,7 @@
 			memcpy(pwlanhdr->addr2, get_bssid(pmlmepriv), ETH_ALEN);
 			memcpy(pwlanhdr->addr3, pattrib->src, ETH_ALEN);
 
-			if (psta->qos_option)
+			if (psta && psta->qos_option)
 				qos_option = true;
 		} else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ||
 			   check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) {
@@ -784,7 +784,7 @@
 			memcpy(pwlanhdr->addr2, pattrib->src, ETH_ALEN);
 			memcpy(pwlanhdr->addr3, get_bssid(pmlmepriv), ETH_ALEN);
 
-			if (psta->qos_option)
+			if (psta && psta->qos_option)
 				qos_option = true;
 		} else {
 			RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("fw_state:%x is not allowed to xmit frame\n", get_fwstate(pmlmepriv)));
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
@@ -229,18 +229,21 @@
 
 	/* parsing WPA/WPA2 IE */
 	{
-		u8 buf[MAX_WPA_IE_LEN];
+		u8 *buf;
 		u8 wpa_ie[255], rsn_ie[255];
 		u16 wpa_len = 0, rsn_len = 0;
 		u8 *p;
 
+		buf = kzalloc(MAX_WPA_IE_LEN, GFP_ATOMIC);
+		if (!buf)
+			return start;
+
 		rtw_get_sec_ie(pnetwork->network.ies, pnetwork->network.ie_length, rsn_ie, &rsn_len, wpa_ie, &wpa_len);
 		RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_wx_get_scan: ssid =%s\n", pnetwork->network.ssid.ssid));
 		RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_wx_get_scan: wpa_len =%d rsn_len =%d\n", wpa_len, rsn_len));
 
 		if (wpa_len > 0) {
 			p = buf;
-			memset(buf, 0, MAX_WPA_IE_LEN);
 			p += sprintf(p, "wpa_ie=");
 			for (i = 0; i < wpa_len; i++)
 				p += sprintf(p, "%02x", wpa_ie[i]);
@@ -257,7 +260,6 @@
 		}
 		if (rsn_len > 0) {
 			p = buf;
-			memset(buf, 0, MAX_WPA_IE_LEN);
 			p += sprintf(p, "rsn_ie=");
 			for (i = 0; i < rsn_len; i++)
 				p += sprintf(p, "%02x", rsn_ie[i]);
@@ -271,6 +273,7 @@
 			iwe.u.data.length = rsn_len;
 			start = iwe_stream_add_point(info, start, stop, &iwe, rsn_ie);
 		}
+		kfree(buf);
 	}
 
 	{/* parsing WPS IE */
@@ -1157,9 +1160,11 @@
 						break;
 					}
 					sec_len = *(pos++); len -= 1;
-					if (sec_len > 0 && sec_len <= len) {
+					if (sec_len > 0 &&
+					    sec_len <= len &&
+					    sec_len <= 32) {
 						ssid[ssid_index].ssid_length = sec_len;
-						memcpy(ssid[ssid_index].ssid, pos, ssid[ssid_index].ssid_length);
+						memcpy(ssid[ssid_index].ssid, pos, sec_len);
 						ssid_index++;
 					}
 					pos += sec_len;
@@ -2022,7 +2027,7 @@
 	struct ieee_param *param;
 	uint ret = 0;
 
-	if (p->length < sizeof(struct ieee_param) || !p->pointer) {
+	if (!p->pointer || p->length != sizeof(struct ieee_param)) {
 		ret = -EINVAL;
 		goto out;
 	}
@@ -2809,7 +2814,7 @@
 		goto out;
 	}
 
-	if (!p->pointer) {
+	if (!p->pointer || p->length != sizeof(struct ieee_param)) {
 		ret = -EINVAL;
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8188eu/os_dep/usb_intf.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8188eu/os_dep/usb_intf.c
@@ -32,12 +32,16 @@
 	/****** 8188EUS ********/
 	{USB_DEVICE(0x056e, 0x4008)}, /* Elecom WDC-150SU2M */
 	{USB_DEVICE(0x07b8, 0x8179)}, /* Abocom - Abocom */
+	{USB_DEVICE(0x0B05, 0x18F0)}, /* ASUS USB-N10 Nano B1 */
 	{USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */
 	{USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */
 	{USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */
 	{USB_DEVICE(0x2001, 0x331B)}, /* D-Link DWA-121 rev B1 */
 	{USB_DEVICE(0x2357, 0x010c)}, /* TP-Link TL-WN722N v2 */
+	{USB_DEVICE(0x2357, 0x0111)}, /* TP-Link TL-WN727N v5.21 */
+	{USB_DEVICE(0x2C4E, 0x0102)}, /* MERCUSYS MW150US v2 */
 	{USB_DEVICE(0x0df6, 0x0076)}, /* Sitecom N150 v2 */
+	{USB_DEVICE(0x7392, 0xb811)}, /* Edimax EW-7811UN V2 */
 	{USB_DEVICE(USB_VENDER_ID_REALTEK, 0xffef)}, /* Rosewill RNX-N150NUB */
 	{}	/* Terminating entry */
 };
@@ -70,7 +74,7 @@
 	phost_conf = pusbd->actconfig;
 	pconf_desc = &phost_conf->desc;
 
-	phost_iface = &usb_intf->altsetting[0];
+	phost_iface = usb_intf->cur_altsetting;
 	piface_desc = &phost_iface->desc;
 
 	pdvobjpriv->NumInterfaces = pconf_desc->bNumInterfaces;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
@@ -1616,14 +1616,15 @@
 	memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev));
 	skb_push(skb, priv->rtllib->tx_headroom);
 	ret = _rtl92e_tx(dev, skb);
-	if (ret != 0)
-		kfree_skb(skb);
 
 	if (queue_index != MGNT_QUEUE) {
 		priv->rtllib->stats.tx_bytes += (skb->len -
 						 priv->rtllib->tx_headroom);
 		priv->rtllib->stats.tx_packets++;
 	}
+
+	if (ret != 0)
+		kfree_skb(skb);
 }
 
 static int _rtl92e_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8192e/rtl8192e/rtl_wx.c
@@ -406,9 +406,10 @@
 		struct iw_scan_req *req = (struct iw_scan_req *)b;
 
 		if (req->essid_len) {
-			ieee->current_network.ssid_len = req->essid_len;
-			memcpy(ieee->current_network.ssid, req->essid,
-			       req->essid_len);
+			int len = min_t(int, req->essid_len, IW_ESSID_MAX_SIZE);
+
+			ieee->current_network.ssid_len = len;
+			memcpy(ieee->current_network.ssid, req->essid, len);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
@@ -585,7 +585,7 @@
 
 	prxbIndicateArray = kmalloc_array(REORDER_WIN_SIZE,
 					  sizeof(struct ieee80211_rxb *),
-					  GFP_KERNEL);
+					  GFP_ATOMIC);
 	if (!prxbIndicateArray)
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8192u/r8192U_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8192u/r8192U_core.c
@@ -1422,7 +1422,7 @@
 		(struct tx_fwinfo_819x_usb *)(skb->data + USB_HWDESC_HEADER_LEN);
 	struct usb_device *udev = priv->udev;
 	int pend;
-	int status;
+	int status, rt = -1;
 	struct urb *tx_urb = NULL, *tx_urb_zero = NULL;
 	unsigned int idx_pipe;
 
@@ -1566,8 +1566,10 @@
 		}
 		if (bSend0Byte) {
 			tx_urb_zero = usb_alloc_urb(0, GFP_ATOMIC);
-			if (!tx_urb_zero)
-				return -ENOMEM;
+			if (!tx_urb_zero) {
+				rt = -ENOMEM;
+				goto error;
+			}
 			usb_fill_bulk_urb(tx_urb_zero, udev,
 					  usb_sndbulkpipe(udev, idx_pipe),
 					  &zero, 0, tx_zero_isr, dev);
@@ -1577,7 +1579,7 @@
 					 "Error TX URB for zero byte %d, error %d",
 					 atomic_read(&priv->tx_pending[tcb_desc->queue_index]),
 					 status);
-				return -1;
+				goto error;
 			}
 		}
 		netif_trans_update(dev);
@@ -1588,7 +1590,12 @@
 	RT_TRACE(COMP_ERR, "Error TX URB %d, error %d",
 		 atomic_read(&priv->tx_pending[tcb_desc->queue_index]),
 		 status);
-	return -1;
+
+error:
+	dev_kfree_skb_any(skb);
+	usb_free_urb(tx_urb);
+	usb_free_urb(tx_urb_zero);
+	return rt;
 }
 
 static short rtl8192_usb_initendpoints(struct net_device *dev)
@@ -2394,7 +2401,7 @@
 				ret = eprom_read(dev, (EEPROM_TX_PW_INDEX_CCK >> 1));
 				if (ret < 0)
 					return ret;
-				priv->EEPROMTxPowerLevelCCK = ((u16)ret & 0xff) >> 8;
+				priv->EEPROMTxPowerLevelCCK = ((u16)ret & 0xff00) >> 8;
 			} else
 				priv->EEPROMTxPowerLevelCCK = 0x10;
 			RT_TRACE(COMP_EPROM, "CCK Tx Power Levl: 0x%02x\n", priv->EEPROMTxPowerLevelCCK);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8192u/r8192U_wx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8192u/r8192U_wx.c
@@ -333,8 +333,10 @@
 		struct iw_scan_req *req = (struct iw_scan_req *)b;
 
 		if (req->essid_len) {
-			ieee->current_network.ssid_len = req->essid_len;
-			memcpy(ieee->current_network.ssid, req->essid, req->essid_len);
+			int len = min_t(int, req->essid_len, IW_ESSID_MAX_SIZE);
+
+			ieee->current_network.ssid_len = len;
+			memcpy(ieee->current_network.ssid, req->essid, len);
 		}
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8712/hal_init.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8712/hal_init.c
@@ -33,7 +33,6 @@
 {
 	struct _adapter *adapter = context;
 
-	complete(&adapter->rtl8712_fw_ready);
 	if (!firmware) {
 		struct usb_device *udev = adapter->dvobjpriv.pusbdev;
 		struct usb_interface *usb_intf = adapter->pusb_intf;
@@ -41,11 +40,13 @@
 		dev_err(&udev->dev, "r8712u: Firmware request failed\n");
 		usb_put_dev(udev);
 		usb_set_intfdata(usb_intf, NULL);
+		complete(&adapter->rtl8712_fw_ready);
 		return;
 	}
 	adapter->fw = firmware;
 	/* firmware available - start netdev */
 	register_netdev(adapter->pnetdev);
+	complete(&adapter->rtl8712_fw_ready);
 }
 
 static const char firmware_file[] = "rtlwifi/rtl8712u.bin";
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8712/rtl871x_cmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8712/rtl871x_cmd.c
@@ -197,8 +197,10 @@
 	psurveyPara->ss_ssidlen = 0;
 	memset(psurveyPara->ss_ssid, 0, IW_ESSID_MAX_SIZE + 1);
 	if ((pssid != NULL) && (pssid->SsidLength)) {
-		memcpy(psurveyPara->ss_ssid, pssid->Ssid, pssid->SsidLength);
-		psurveyPara->ss_ssidlen = cpu_to_le32(pssid->SsidLength);
+		int len = min_t(int, pssid->SsidLength, IW_ESSID_MAX_SIZE);
+
+		memcpy(psurveyPara->ss_ssid, pssid->Ssid, len);
+		psurveyPara->ss_ssidlen = cpu_to_le32(len);
 	}
 	set_fwstate(pmlmepriv, _FW_UNDER_SURVEY);
 	r8712_enqueue_cmd(pcmdpriv, ph2c);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
@@ -928,7 +928,7 @@
 	struct iw_point *dwrq = (struct iw_point *)awrq;
 
 	len = dwrq->length;
-	ext = memdup_user(dwrq->pointer, len);
+	ext = strndup_user(dwrq->pointer, len);
 	if (IS_ERR(ext))
 		return PTR_ERR(ext);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8712/usb_intf.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8712/usb_intf.c
@@ -247,7 +247,7 @@
 
 	pdvobjpriv->padapter = padapter;
 	padapter->eeprom_address_size = 6;
-	phost_iface = &pintf->altsetting[0];
+	phost_iface = pintf->cur_altsetting;
 	piface_desc = &phost_iface->desc;
 	pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints;
 	if (pusbd->speed == USB_SPEED_HIGH) {
@@ -595,13 +595,17 @@
 	if (pnetdev) {
 		struct _adapter *padapter = netdev_priv(pnetdev);
 
-		usb_set_intfdata(pusb_intf, NULL);
-		release_firmware(padapter->fw);
 		/* never exit with a firmware callback pending */
 		wait_for_completion(&padapter->rtl8712_fw_ready);
+		pnetdev = usb_get_intfdata(pusb_intf);
+		usb_set_intfdata(pusb_intf, NULL);
+		if (!pnetdev)
+			goto firmware_load_fail;
+		release_firmware(padapter->fw);
 		if (drvpriv.drv_registered)
 			padapter->surprise_removed = true;
-		unregister_netdev(pnetdev); /* will call netdev_close() */
+		if (pnetdev->reg_state != NETREG_UNINITIALIZED)
+			unregister_netdev(pnetdev); /* will call netdev_close() */
 		flush_scheduled_work();
 		udelay(1);
 		/* Stop driver mlme relation timer */
@@ -614,6 +618,7 @@
 		 */
 		usb_put_dev(udev);
 	}
+firmware_load_fail:
 	/* If we didn't unplug usb dongle and remove/insert module, driver
 	 * fails on sitesurvey for the first time when device is up.
 	 * Reset usb port for sitesurvey fail issue.
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8712/wifi.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8712/wifi.h
@@ -440,7 +440,7 @@
 /* block-ack parameters */
 #define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002
 #define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C
-#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFA0
+#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFC0
 #define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
 #define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
 
@@ -532,13 +532,6 @@
 #define IEEE80211_HT_IE_NON_GF_STA_PRSNT	0x0004
 #define IEEE80211_HT_IE_NON_HT_STA_PRSNT	0x0010
 
-/* block-ack parameters */
-#define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002
-#define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C
-#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFA0
-#define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
-#define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
-
 /*
  * A-PMDU buffer sizes
  * According to IEEE802.11n spec size varies from 8K to 64K (in powers of 2)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8723bs/core/rtw_wlan_util.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8723bs/core/rtw_wlan_util.c
@@ -1845,12 +1845,14 @@
 	pIE = (struct ndis_80211_var_ie *)rtw_get_ie(pvar_ie, _SUPPORTEDRATES_IE_, &ie_len, var_ie_len);
 	if (!pIE)
 		return _FAIL;
+	if (ie_len > sizeof(pmlmeinfo->FW_sta_info[cam_idx].SupportedRates))
+		return _FAIL;
 
 	memcpy(pmlmeinfo->FW_sta_info[cam_idx].SupportedRates, pIE->data, ie_len);
 	supportRateNum = ie_len;
 
 	pIE = (struct ndis_80211_var_ie *)rtw_get_ie(pvar_ie, _EXT_SUPPORTEDRATES_IE_, &ie_len, var_ie_len);
-	if (pIE)
+	if (pIE && (ie_len <= sizeof(pmlmeinfo->FW_sta_info[cam_idx].SupportedRates) - supportRateNum))
 		memcpy((pmlmeinfo->FW_sta_info[cam_idx].SupportedRates + supportRateNum), pIE->data, ie_len);
 
 	return _SUCCESS;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
@@ -476,14 +476,13 @@
 	s32 ret;
 	struct adapter *padapter;
 	struct xmit_priv *pxmitpriv;
-	u8 thread_name[20] = "RTWHALXT";
-
+	u8 thread_name[20];
 
 	ret = _SUCCESS;
 	padapter = context;
 	pxmitpriv = &padapter->xmitpriv;
 
-	rtw_sprintf(thread_name, 20, "%s-"ADPT_FMT, thread_name, ADPT_ARG(padapter));
+	rtw_sprintf(thread_name, 20, "RTWHALXT-" ADPT_FMT, ADPT_ARG(padapter));
 	thread_enter(thread_name);
 
 	DBG_871X("start "FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter));
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8723bs/os_dep/ioctl_linux.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8723bs/os_dep/ioctl_linux.c
@@ -3379,7 +3379,7 @@
 
 	/* down(&ieee->wx_sem); */
 
-	if (p->length < sizeof(struct ieee_param) || !p->pointer) {
+	if (!p->pointer || p->length != sizeof(struct ieee_param)) {
 		ret = -EINVAL;
 		goto out;
 	}
@@ -4213,7 +4213,7 @@
 
 
 	/* if (p->length < sizeof(struct ieee_param) || !p->pointer) { */
-	if (!p->pointer) {
+	if (!p->pointer || p->length != sizeof(*param)) {
 		ret = -EINVAL;
 		goto out;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8723bs/os_dep/sdio_intf.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8723bs/os_dep/sdio_intf.c
@@ -18,18 +18,14 @@
 static const struct sdio_device_id sdio_ids[] =
 {
 	{ SDIO_DEVICE(0x024c, 0x0523), },
+	{ SDIO_DEVICE(0x024c, 0x0525), },
 	{ SDIO_DEVICE(0x024c, 0x0623), },
 	{ SDIO_DEVICE(0x024c, 0x0626), },
+	{ SDIO_DEVICE(0x024c, 0x0627), },
 	{ SDIO_DEVICE(0x024c, 0xb723), },
 	{ /* end: all zeroes */				},
 };
-static const struct acpi_device_id acpi_ids[] = {
-	{"OBDA8723", 0x0000},
-	{}
-};
-
 MODULE_DEVICE_TABLE(sdio, sdio_ids);
-MODULE_DEVICE_TABLE(acpi, acpi_ids);
 
 static int rtw_drv_init(struct sdio_func *func, const struct sdio_device_id *id);
 static void rtw_dev_remove(struct sdio_func *func);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/rtl8723bs/os_dep/wifi_regd.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/rtl8723bs/os_dep/wifi_regd.c
@@ -34,7 +34,7 @@
 	NL80211_RRF_PASSIVE_SCAN)
 
 static const struct ieee80211_regdomain rtw_regdom_rd = {
-	.n_reg_rules = 3,
+	.n_reg_rules = 2,
 	.alpha2 = "99",
 	.reg_rules = {
 		RTW_2GHZ_CH01_11,
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/signature-inclusion
+++ linux-gkeop-5.4-5.4.0/drivers/staging/signature-inclusion
@@ -0,0 +1,20 @@
+#
+# This file lists the staging drivers that are safe for signing
+# and loading in a secure boot environment with signed module enforcement.
+#
+exfat.ko
+rtl8192c-common.ko
+rtl8192ce.ko
+rtl8192cu.ko
+rtl8192de.ko
+rtl8192ee.ko
+rtl8192se.ko
+r8188eu.ko
+r8192e_pci.ko
+r8192u_usb.ko
+r8712u.ko
+r8822be.ko
+rtllib_crypt_ccmp.ko
+rtllib_crypt_tkip.ko
+rtllib_crypt_wep.ko
+rtllib.ko
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/sm750fb/sm750.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/sm750fb/sm750.c
@@ -898,6 +898,7 @@
 		fix->visual = FB_VISUAL_PSEUDOCOLOR;
 		break;
 	case 16:
+	case 24:
 	case 32:
 		fix->visual = FB_VISUAL_TRUECOLOR;
 		break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/speakup/main.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/speakup/main.c
@@ -561,7 +561,7 @@
 		return 0;
 	} else if (tmpx < vc->vc_cols - 2 &&
 		   (ch == SPACE || ch == 0 || (ch < 0x100 && IS_WDLM(ch))) &&
-		   get_char(vc, (u_short *)&tmp_pos + 1, &temp) > SPACE) {
+		   get_char(vc, (u_short *)tmp_pos + 1, &temp) > SPACE) {
 		tmp_pos += 2;
 		tmpx++;
 	} else {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/speakup/selection.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/speakup/selection.c
@@ -51,9 +51,7 @@
 		goto unref;
 	}
 
-	console_lock();
 	set_selection_kernel(&sel, tty);
-	console_unlock();
 
 unref:
 	tty_kref_put(tty);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/speakup/speakup_dectlk.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/speakup/speakup_dectlk.c
@@ -37,7 +37,7 @@
 static int in_escape;
 static int is_flushing;
 
-static spinlock_t flush_lock;
+static DEFINE_SPINLOCK(flush_lock);
 static DECLARE_WAIT_QUEUE_HEAD(flush);
 
 static struct var_t vars[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/speakup/spk_ttyio.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/speakup/spk_ttyio.c
@@ -47,9 +47,12 @@
 {
 	struct spk_ldisc_data *ldisc_data;
 
+	if (tty != speakup_tty)
+		/* Somebody tried to use this line discipline outside speakup */
+		return -ENODEV;
+
 	if (!tty->ops->write)
 		return -EOPNOTSUPP;
-	speakup_tty = tty;
 
 	ldisc_data = kmalloc(sizeof(struct spk_ldisc_data), GFP_KERNEL);
 	if (!ldisc_data)
@@ -57,7 +60,7 @@
 
 	init_completion(&ldisc_data->completion);
 	ldisc_data->buf_free = true;
-	speakup_tty->disc_data = ldisc_data;
+	tty->disc_data = ldisc_data;
 
 	return 0;
 }
@@ -179,9 +182,25 @@
 
 	tty_unlock(tty);
 
+	mutex_lock(&speakup_tty_mutex);
+	speakup_tty = tty;
 	ret = tty_set_ldisc(tty, N_SPEAKUP);
 	if (ret)
-		pr_err("speakup: Failed to set N_SPEAKUP on tty\n");
+		speakup_tty = NULL;
+	mutex_unlock(&speakup_tty_mutex);
+
+	if (!ret)
+		/* Success */
+		return 0;
+
+	pr_err("speakup: Failed to set N_SPEAKUP on tty\n");
+
+	tty_lock(tty);
+	if (tty->ops->close)
+		tty->ops->close(tty, NULL);
+	tty_unlock(tty);
+
+	tty_kclose(tty);
 
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c
@@ -224,7 +224,7 @@
 {
 	int err;
 
-	strcpy(chip->card->mixername, "Broadcom Mixer");
+	strscpy(chip->card->mixername, "Broadcom Mixer", sizeof(chip->card->mixername));
 	err = create_ctls(chip, ARRAY_SIZE(snd_bcm2835_ctl), snd_bcm2835_ctl);
 	if (err < 0)
 		return err;
@@ -261,7 +261,7 @@
 
 int snd_bcm2835_new_headphones_ctl(struct bcm2835_chip *chip)
 {
-	strcpy(chip->card->mixername, "Broadcom Mixer");
+	strscpy(chip->card->mixername, "Broadcom Mixer", sizeof(chip->card->mixername));
 	return create_ctls(chip, ARRAY_SIZE(snd_bcm2835_headphones_ctl),
 			   snd_bcm2835_headphones_ctl);
 }
@@ -295,7 +295,7 @@
 
 int snd_bcm2835_new_hdmi_ctl(struct bcm2835_chip *chip)
 {
-	strcpy(chip->card->mixername, "Broadcom Mixer");
+	strscpy(chip->card->mixername, "Broadcom Mixer", sizeof(chip->card->mixername));
 	return create_ctls(chip, ARRAY_SIZE(snd_bcm2835_hdmi),
 			   snd_bcm2835_hdmi);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
@@ -351,7 +351,7 @@
 
 	pcm->private_data = chip;
 	pcm->nonatomic = true;
-	strcpy(pcm->name, name);
+	strscpy(pcm->name, name, sizeof(pcm->name));
 	if (!spdif) {
 		chip->dest = route;
 		chip->volume = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c
@@ -185,9 +185,9 @@
 		goto error;
 	}
 
-	strcpy(card->driver, audio_driver->driver.name);
-	strcpy(card->shortname, audio_driver->shortname);
-	strcpy(card->longname, audio_driver->longname);
+	strscpy(card->driver, audio_driver->driver.name, sizeof(card->driver));
+	strscpy(card->shortname, audio_driver->shortname, sizeof(card->shortname));
+	strscpy(card->longname, audio_driver->longname, sizeof(card->longname));
 
 	err = audio_driver->newpcm(chip, audio_driver->shortname,
 		audio_driver->route,
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -3257,6 +3257,7 @@
 
 static int vchiq_remove(struct platform_device *pdev)
 {
+	platform_device_unregister(bcm2835_audio);
 	platform_device_unregister(bcm2835_camera);
 	vchiq_debugfs_deinit();
 	device_destroy(vchiq_class, vchiq_devid);
@@ -3299,7 +3300,7 @@
 	return 0;
 
 region_unregister:
-	platform_driver_unregister(&vchiq_driver);
+	unregister_chrdev_region(vchiq_devid, 1);
 
 class_destroy:
 	class_destroy(vchiq_class);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/baseband.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/baseband.c
@@ -449,8 +449,8 @@
 
 	memcpy(array, addr, length);
 
-	ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
-			      MESSAGE_REQUEST_BBREG, length, array);
+	ret = vnt_control_out_blocks(priv, VNT_REG_BLOCK_SIZE,
+				     MESSAGE_REQUEST_BBREG, length, array);
 	if (ret)
 		goto end;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/card.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/card.c
@@ -719,7 +719,7 @@
  */
 int vnt_radio_power_on(struct vnt_private *priv)
 {
-	int ret = true;
+	int ret = 0;
 
 	vnt_exit_deep_sleep(priv);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/device.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/device.h
@@ -52,6 +52,8 @@
 #define RATE_AUTO	12
 
 #define MAX_RATE			12
+#define VNT_B_RATES	(BIT(RATE_1M) | BIT(RATE_2M) |\
+			BIT(RATE_5M) | BIT(RATE_11M))
 
 /*
  * device specific
@@ -259,6 +261,7 @@
 	u8 mac_hw;
 	/* netdev */
 	struct usb_device *usb;
+	struct usb_interface *intf;
 
 	u64 tsf_time;
 	u8 rx_rate;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/dpc.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/dpc.c
@@ -130,7 +130,7 @@
 
 	vnt_rf_rssi_to_dbm(priv, *rssi, &rx_dbm);
 
-	priv->bb_pre_ed_rssi = (u8)rx_dbm + 1;
+	priv->bb_pre_ed_rssi = (u8)-rx_dbm + 1;
 	priv->current_rssi = priv->bb_pre_ed_rssi;
 
 	skb_pull(skb, 8);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/int.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/int.c
@@ -99,9 +99,11 @@
 
 	info->status.rates[0].count = tx_retry;
 
-	if (!(tsr & (TSR_TMO | TSR_RETRYTMO))) {
+	if (!(tsr & TSR_TMO)) {
 		info->status.rates[0].idx = idx;
-		info->flags |= IEEE80211_TX_STAT_ACK;
+
+		if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
+			info->flags |= IEEE80211_TX_STAT_ACK;
 	}
 
 	ieee80211_tx_status_irqsafe(priv->hw, context->skb);
@@ -143,7 +145,8 @@
 				priv->wake_up_count =
 					priv->hw->conf.listen_interval;
 
-			--priv->wake_up_count;
+			if (priv->wake_up_count)
+				--priv->wake_up_count;
 
 			/* Turn on wake up to listen next beacon */
 			if (priv->wake_up_count == 1)
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/key.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/key.c
@@ -83,9 +83,6 @@
 	case  VNT_KEY_PAIRWISE:
 		key_mode |= mode;
 		key_inx = 4;
-		/* Don't save entry for pairwise key for station mode */
-		if (priv->op_mode == NL80211_IFTYPE_STATION)
-			clear_bit(entry, &priv->key_entry_inuse);
 		break;
 	default:
 		return -EINVAL;
@@ -109,7 +106,6 @@
 int vnt_set_keys(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
 		 struct ieee80211_vif *vif, struct ieee80211_key_conf *key)
 {
-	struct ieee80211_bss_conf *conf = &vif->bss_conf;
 	struct vnt_private *priv = hw->priv;
 	u8 *mac_addr = NULL;
 	u8 key_dec_mode = 0;
@@ -151,16 +147,12 @@
 		key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
 	}
 
-	if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
+	if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
 		vnt_set_keymode(hw, mac_addr, key, VNT_KEY_PAIRWISE,
 				key_dec_mode, true);
-	} else {
-		vnt_set_keymode(hw, mac_addr, key, VNT_KEY_DEFAULTKEY,
+	else
+		vnt_set_keymode(hw, mac_addr, key, VNT_KEY_GROUP_ADDRESS,
 				key_dec_mode, true);
 
-		vnt_set_keymode(hw, (u8 *)conf->bssid, key,
-				VNT_KEY_GROUP_ADDRESS, key_dec_mode, true);
-	}
-
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/main_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/main_usb.c
@@ -633,8 +633,6 @@
 
 	priv->op_mode = vif->type;
 
-	vnt_set_bss_mode(priv);
-
 	/* LED blink on TX */
 	vnt_mac_set_led(priv, LEDSTS_STS, LEDSTS_INTER);
 
@@ -721,7 +719,6 @@
 		priv->basic_rates = conf->basic_rates;
 
 		vnt_update_top_rates(priv);
-		vnt_set_bss_mode(priv);
 
 		dev_dbg(&priv->usb->dev, "basic rates %x\n", conf->basic_rates);
 	}
@@ -750,11 +747,14 @@
 			priv->short_slot_time = false;
 
 		vnt_set_short_slot_time(priv);
-		vnt_update_ifs(priv);
 		vnt_set_vga_gain_offset(priv, priv->bb_vga[0]);
 		vnt_update_pre_ed_threshold(priv, false);
 	}
 
+	if (changed & (BSS_CHANGED_BASIC_RATES | BSS_CHANGED_ERP_PREAMBLE |
+		       BSS_CHANGED_ERP_SLOT))
+		vnt_set_bss_mode(priv);
+
 	if (changed & BSS_CHANGED_TXPOWER)
 		vnt_rf_setpower(priv, priv->current_rate,
 				conf->chandef.chan->hw_value);
@@ -778,12 +778,15 @@
 			vnt_mac_reg_bits_on(priv, MAC_REG_TFTCTL,
 					    TFTCTL_TSFCNTREN);
 
-			vnt_adjust_tsf(priv, conf->beacon_rate->hw_value,
-				       conf->sync_tsf, priv->current_tsf);
-
 			vnt_mac_set_beacon_interval(priv, conf->beacon_int);
 
 			vnt_reset_next_tbtt(priv, conf->beacon_int);
+
+			vnt_adjust_tsf(priv, conf->beacon_rate->hw_value,
+				       conf->sync_tsf, priv->current_tsf);
+
+			vnt_update_next_tbtt(priv,
+					     conf->sync_tsf, conf->beacon_int);
 		} else {
 			vnt_clear_current_tsf(priv);
 
@@ -818,15 +821,11 @@
 {
 	struct vnt_private *priv = hw->priv;
 	u8 rx_mode = 0;
-	int rc;
 
 	*total_flags &= FIF_ALLMULTI | FIF_OTHER_BSS | FIF_BCN_PRBRESP_PROMISC;
 
-	rc = vnt_control_in(priv, MESSAGE_TYPE_READ, MAC_REG_RCR,
-			    MESSAGE_REQUEST_MACREG, sizeof(u8), &rx_mode);
-
-	if (!rc)
-		rx_mode = RCR_MULTICAST | RCR_BROADCAST;
+	vnt_control_in(priv, MESSAGE_TYPE_READ, MAC_REG_RCR,
+		       MESSAGE_REQUEST_MACREG, sizeof(u8), &rx_mode);
 
 	dev_dbg(&priv->usb->dev, "rx mode in = %x\n", rx_mode);
 
@@ -867,8 +866,12 @@
 			return -EOPNOTSUPP;
 		break;
 	case DISABLE_KEY:
-		if (test_bit(key->hw_key_idx, &priv->key_entry_inuse))
+		if (test_bit(key->hw_key_idx, &priv->key_entry_inuse)) {
 			clear_bit(key->hw_key_idx, &priv->key_entry_inuse);
+
+			vnt_mac_disable_keyentry(priv, key->hw_key_idx);
+		}
+
 	default:
 		break;
 	}
@@ -950,7 +953,7 @@
 
 int vnt_init(struct vnt_private *priv)
 {
-	if (!(vnt_init_registers(priv)))
+	if (vnt_init_registers(priv))
 		return -EAGAIN;
 
 	SET_IEEE80211_PERM_ADDR(priv->hw, priv->permanent_net_addr);
@@ -993,6 +996,7 @@
 	priv = hw->priv;
 	priv->hw = hw;
 	priv->usb = udev;
+	priv->intf = intf;
 
 	vnt_set_options(priv);
 
@@ -1015,6 +1019,7 @@
 	ieee80211_hw_set(priv->hw, RX_INCLUDES_FCS);
 	ieee80211_hw_set(priv->hw, REPORTS_TX_ACK_STATUS);
 	ieee80211_hw_set(priv->hw, SUPPORTS_PS);
+	ieee80211_hw_set(priv->hw, PS_NULLFUNC_STACK);
 
 	priv->hw->max_signal = 100;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/rxtx.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/rxtx.c
@@ -278,11 +278,9 @@
 			  PK_TYPE_11B, &buf->b);
 
 	/* Get Duration and TimeStamp */
-	if (ieee80211_is_pspoll(hdr->frame_control)) {
-		__le16 dur = cpu_to_le16(priv->current_aid | BIT(14) | BIT(15));
-
-		buf->duration_a = dur;
-		buf->duration_b = dur;
+	if (ieee80211_is_nullfunc(hdr->frame_control)) {
+		buf->duration_a = hdr->duration_id;
+		buf->duration_b = hdr->duration_id;
 	} else {
 		buf->duration_a = vnt_get_duration_le(priv,
 						tx_context->pkt_type, need_ack);
@@ -371,10 +369,8 @@
 			  tx_context->pkt_type, &buf->ab);
 
 	/* Get Duration and TimeStampOff */
-	if (ieee80211_is_pspoll(hdr->frame_control)) {
-		__le16 dur = cpu_to_le16(priv->current_aid | BIT(14) | BIT(15));
-
-		buf->duration = dur;
+	if (ieee80211_is_nullfunc(hdr->frame_control)) {
+		buf->duration = hdr->duration_id;
 	} else {
 		buf->duration = vnt_get_duration_le(priv, tx_context->pkt_type,
 						    need_ack);
@@ -815,10 +811,14 @@
 		if (info->band == NL80211_BAND_5GHZ) {
 			pkt_type = PK_TYPE_11A;
 		} else {
-			if (tx_rate->flags & IEEE80211_TX_RC_USE_CTS_PROTECT)
-				pkt_type = PK_TYPE_11GB;
-			else
-				pkt_type = PK_TYPE_11GA;
+			if (tx_rate->flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
+				if (priv->basic_rates & VNT_B_RATES)
+					pkt_type = PK_TYPE_11GB;
+				else
+					pkt_type = PK_TYPE_11GA;
+			} else {
+				pkt_type = PK_TYPE_11A;
+			}
 		}
 	} else {
 		pkt_type = PK_TYPE_11B;
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/usbpipe.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/usbpipe.c
@@ -59,7 +59,9 @@
 
 	kfree(usb_buffer);
 
-	if (ret >= 0 && ret < (int)length)
+	if (ret == (int)length)
+		ret = 0;
+	else
 		ret = -EIO;
 
 end_unlock:
@@ -74,6 +76,23 @@
 			       reg_off, reg, sizeof(u8), &data);
 }
 
+int vnt_control_out_blocks(struct vnt_private *priv,
+			   u16 block, u8 reg, u16 length, u8 *data)
+{
+	int ret = 0, i;
+
+	for (i = 0; i < length; i += block) {
+		u16 len = min_t(int, length - i, block);
+
+		ret = vnt_control_out(priv, MESSAGE_TYPE_WRITE,
+				      i, reg, len, data + i);
+		if (ret)
+			goto end;
+	}
+end:
+	return ret;
+}
+
 int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
 		   u16 index, u16 length, u8 *buffer)
 {
@@ -103,7 +122,9 @@
 
 	kfree(usb_buffer);
 
-	if (ret >= 0 && ret < (int)length)
+	if (ret == (int)length)
+		ret = 0;
+	else
 		ret = -EIO;
 
 end_unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/usbpipe.h
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/usbpipe.h
@@ -18,6 +18,8 @@
 
 #include "device.h"
 
+#define VNT_REG_BLOCK_SIZE	64
+
 int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
 		    u16 index, u16 length, u8 *buffer);
 int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
@@ -26,6 +28,9 @@
 int vnt_control_out_u8(struct vnt_private *priv, u8 reg, u8 ref_off, u8 data);
 int vnt_control_in_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 *data);
 
+int vnt_control_out_blocks(struct vnt_private *priv,
+			   u16 block, u8 reg, u16 len, u8 *data);
+
 int vnt_start_interrupt_urb(struct vnt_private *priv);
 int vnt_submit_rx_urb(struct vnt_private *priv, struct vnt_rcb *rcb);
 int vnt_tx_context(struct vnt_private *priv,
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/vt6656/wcmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/vt6656/wcmd.c
@@ -99,6 +99,7 @@
 		if (vnt_init(priv)) {
 			/* If fail all ends TODO retry */
 			dev_err(&priv->usb->dev, "failed to start\n");
+			usb_set_intfdata(priv->intf, NULL);
 			ieee80211_free_hw(priv->hw);
 			return;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wilc1000/wilc_hif.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wilc1000/wilc_hif.c
@@ -12,6 +12,8 @@
 #define WILC_FALSE_FRMWR_CHANNEL		100
 #define WILC_MAX_RATES_SUPPORTED		12
 
+#define WILC_SCAN_WID_LIST_SIZE		6
+
 struct wilc_rcvd_mac_info {
 	u8 status;
 };
@@ -233,7 +235,7 @@
 	      void *user_arg, struct cfg80211_scan_request *request)
 {
 	int result = 0;
-	struct wid wid_list[5];
+	struct wid wid_list[WILC_SCAN_WID_LIST_SIZE];
 	u32 index = 0;
 	u32 i, scan_timeout;
 	u8 *buffer;
@@ -473,20 +475,27 @@
 	rates_ie = cfg80211_find_ie(WLAN_EID_SUPP_RATES, ies->data, ies->len);
 	if (rates_ie) {
 		rates_len = rates_ie[1];
+		if (rates_len > WILC_MAX_RATES_SUPPORTED)
+			rates_len = WILC_MAX_RATES_SUPPORTED;
 		param->supp_rates[0] = rates_len;
 		memcpy(&param->supp_rates[1], rates_ie + 2, rates_len);
 	}
 
-	supp_rates_ie = cfg80211_find_ie(WLAN_EID_EXT_SUPP_RATES, ies->data,
-					 ies->len);
-	if (supp_rates_ie) {
-		if (supp_rates_ie[1] > (WILC_MAX_RATES_SUPPORTED - rates_len))
-			param->supp_rates[0] = WILC_MAX_RATES_SUPPORTED;
-		else
-			param->supp_rates[0] += supp_rates_ie[1];
-
-		memcpy(&param->supp_rates[rates_len + 1], supp_rates_ie + 2,
-		       (param->supp_rates[0] - rates_len));
+	if (rates_len < WILC_MAX_RATES_SUPPORTED) {
+		supp_rates_ie = cfg80211_find_ie(WLAN_EID_EXT_SUPP_RATES,
+						 ies->data, ies->len);
+		if (supp_rates_ie) {
+			u8 ext_rates = supp_rates_ie[1];
+
+			if (ext_rates > (WILC_MAX_RATES_SUPPORTED - rates_len))
+				param->supp_rates[0] = WILC_MAX_RATES_SUPPORTED;
+			else
+				param->supp_rates[0] += ext_rates;
+
+			memcpy(&param->supp_rates[rates_len + 1],
+			       supp_rates_ie + 2,
+			       (param->supp_rates[0] - rates_len));
+		}
 	}
 
 	ht_ie = cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, ies->data, ies->len);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wilc1000/wilc_mon.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wilc1000/wilc_mon.c
@@ -236,11 +236,10 @@
 
 	if (register_netdevice(wl->monitor_dev)) {
 		netdev_err(real_dev, "register_netdevice failed\n");
+		free_netdev(wl->monitor_dev);
 		return NULL;
 	}
 	priv = netdev_priv(wl->monitor_dev);
-	if (!priv)
-		return NULL;
 
 	priv->real_ndev = real_dev;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
@@ -1419,8 +1419,10 @@
 		if (vif->iftype == WILC_AP_MODE || vif->iftype == WILC_GO_MODE)
 			wilc_wfi_deinit_mon_interface(wl, true);
 		vif->iftype = WILC_STATION_MODE;
-		wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
-					WILC_STATION_MODE, vif->idx);
+
+		if (wl->initialized)
+			wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
+						WILC_STATION_MODE, vif->idx);
 
 		memset(priv->assoc_stainfo.sta_associated_bss, 0,
 		       WILC_MAX_NUM_STA * ETH_ALEN);
@@ -1432,8 +1434,10 @@
 		priv->wdev.iftype = type;
 		vif->monitor_flag = 0;
 		vif->iftype = WILC_CLIENT_MODE;
-		wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
-					WILC_STATION_MODE, vif->idx);
+
+		if (wl->initialized)
+			wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
+						WILC_STATION_MODE, vif->idx);
 		break;
 
 	case NL80211_IFTYPE_AP:
@@ -1450,8 +1454,10 @@
 		dev->ieee80211_ptr->iftype = type;
 		priv->wdev.iftype = type;
 		vif->iftype = WILC_GO_MODE;
-		wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
-					WILC_AP_MODE, vif->idx);
+
+		if (wl->initialized)
+			wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
+						WILC_AP_MODE, vif->idx);
 		break;
 
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wilc1000/wilc_wlan.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wilc1000/wilc_wlan.c
@@ -578,7 +578,6 @@
 				entries = ((reg >> 3) & 0x3f);
 				break;
 			}
-			release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
 		} while (--timeout);
 		if (timeout <= 0) {
 			ret = func->hif_write_reg(wilc, WILC_HOST_VMM_CTL, 0x0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wlan-ng/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wlan-ng/Kconfig
@@ -4,6 +4,7 @@
 	depends on WLAN && USB && CFG80211
 	select WIRELESS_EXT
 	select WEXT_PRIV
+	select CRC32
 	help
 	  This is the wlan-ng prism 2.5/3 USB driver for a wide range of
 	  old USB wireless devices.
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wlan-ng/hfa384x_usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wlan-ng/hfa384x_usb.c
@@ -526,13 +526,8 @@
  */
 void hfa384x_create(struct hfa384x *hw, struct usb_device *usb)
 {
-	memset(hw, 0, sizeof(*hw));
 	hw->usb = usb;
 
-	/* set up the endpoints */
-	hw->endp_in = usb_rcvbulkpipe(usb, 1);
-	hw->endp_out = usb_sndbulkpipe(usb, 2);
-
 	/* Set up the waitq */
 	init_waitqueue_head(&hw->cmdq);
 
@@ -3374,6 +3369,8 @@
 	     WLAN_HDR_A4_LEN + WLAN_DATA_MAXLEN + WLAN_CRC_LEN)) {
 		pr_debug("overlen frm: len=%zd\n",
 			 skblen - sizeof(struct p80211_caphdr));
+
+		return;
 	}
 
 	skb = dev_alloc_skb(skblen);
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wlan-ng/prism2mgmt.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wlan-ng/prism2mgmt.c
@@ -959,7 +959,7 @@
 		}
 	}
 
-	return 0;
+	return result;
 }
 
 /*----------------------------------------------------------------
--- linux-gkeop-5.4-5.4.0.orig/drivers/staging/wlan-ng/prism2usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/staging/wlan-ng/prism2usb.c
@@ -61,11 +61,16 @@
 			       const struct usb_device_id *id)
 {
 	struct usb_device *dev;
-
+	struct usb_endpoint_descriptor *bulk_in, *bulk_out;
+	struct usb_host_interface *iface_desc = interface->cur_altsetting;
 	struct wlandevice *wlandev = NULL;
 	struct hfa384x *hw = NULL;
 	int result = 0;
 
+	result = usb_find_common_endpoints(iface_desc, &bulk_in, &bulk_out, NULL, NULL);
+	if (result)
+		goto failed;
+
 	dev = interface_to_usbdev(interface);
 	wlandev = create_wlan();
 	if (!wlandev) {
@@ -82,6 +87,8 @@
 	}
 
 	/* Initialize the hw data */
+	hw->endp_in = usb_rcvbulkpipe(dev, bulk_in->bEndpointAddress);
+	hw->endp_out = usb_sndbulkpipe(dev, bulk_out->bEndpointAddress);
 	hfa384x_create(hw, dev);
 	hw->wlandev = wlandev;
 
@@ -180,6 +187,7 @@
 
 		cancel_work_sync(&hw->link_bh);
 		cancel_work_sync(&hw->commsqual_bh);
+		cancel_work_sync(&hw->usb_work);
 
 		/* Now we complete any outstanding commands
 		 * and tell everyone who is waiting for their
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/cxgbit/cxgbit_target.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/cxgbit/cxgbit_target.c
@@ -86,8 +86,7 @@
 	if (likely(cxgbit_skcb_flags(skb) & SKCBF_TX_ISO))
 		length += sizeof(struct cpl_tx_data_iso);
 
-#define MAX_IMM_TX_PKT_LEN	256
-	return length <= MAX_IMM_TX_PKT_LEN;
+	return length <= MAX_IMM_OFLD_TX_DATA_WR_LEN;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target.c
@@ -483,8 +483,7 @@
 void iscsit_aborted_task(struct iscsi_conn *conn, struct iscsi_cmd *cmd)
 {
 	spin_lock_bh(&conn->cmd_lock);
-	if (!list_empty(&cmd->i_conn_node) &&
-	    !(cmd->se_cmd.transport_state & CMD_T_FABRIC_STOP))
+	if (!list_empty(&cmd->i_conn_node))
 		list_del_init(&cmd->i_conn_node);
 	spin_unlock_bh(&conn->cmd_lock);
 
@@ -1386,14 +1385,27 @@
 	sg = cmd->first_data_sg;
 	page_off = cmd->first_data_sg_off;
 
+	if (data_length && page_off) {
+		struct scatterlist first_sg;
+		u32 len = min_t(u32, data_length, sg->length - page_off);
+
+		sg_init_table(&first_sg, 1);
+		sg_set_page(&first_sg, sg_page(sg), len, sg->offset + page_off);
+
+		ahash_request_set_crypt(hash, &first_sg, NULL, len);
+		crypto_ahash_update(hash);
+
+		data_length -= len;
+		sg = sg_next(sg);
+	}
+
 	while (data_length) {
-		u32 cur_len = min_t(u32, data_length, (sg->length - page_off));
+		u32 cur_len = min_t(u32, data_length, sg->length);
 
 		ahash_request_set_crypt(hash, sg, NULL, cur_len);
 		crypto_ahash_update(hash);
 
 		data_length -= cur_len;
-		page_off = 0;
 		/* iscsit_map_iovec has already checked for invalid sg pointers */
 		sg = sg_next(sg);
 	}
@@ -4069,12 +4081,22 @@
 	spin_lock_bh(&conn->cmd_lock);
 	list_splice_init(&conn->conn_cmd_list, &tmp_list);
 
-	list_for_each_entry(cmd, &tmp_list, i_conn_node) {
+	list_for_each_entry_safe(cmd, cmd_tmp, &tmp_list, i_conn_node) {
 		struct se_cmd *se_cmd = &cmd->se_cmd;
 
 		if (se_cmd->se_tfo != NULL) {
 			spin_lock_irq(&se_cmd->t_state_lock);
-			se_cmd->transport_state |= CMD_T_FABRIC_STOP;
+			if (se_cmd->transport_state & CMD_T_ABORTED) {
+				/*
+				 * LIO's abort path owns the cleanup for this,
+				 * so put it back on the list and let
+				 * aborted_task handle it.
+				 */
+				list_move_tail(&cmd->i_conn_node,
+					       &conn->conn_cmd_list);
+			} else {
+				se_cmd->transport_state |= CMD_T_FABRIC_STOP;
+			}
 			spin_unlock_irq(&se_cmd->t_state_lock);
 		}
 	}
@@ -4303,30 +4325,37 @@
 	if (!atomic_read(&sess->session_reinstatement) &&
 	     atomic_read(&sess->session_fall_back_to_erl0)) {
 		spin_unlock_bh(&sess->conn_lock);
+		complete_all(&sess->session_wait_comp);
 		iscsit_close_session(sess);
 
 		return 0;
 	} else if (atomic_read(&sess->session_logout)) {
 		pr_debug("Moving to TARG_SESS_STATE_FREE.\n");
 		sess->session_state = TARG_SESS_STATE_FREE;
-		spin_unlock_bh(&sess->conn_lock);
 
-		if (atomic_read(&sess->sleep_on_sess_wait_comp))
-			complete(&sess->session_wait_comp);
+		if (atomic_read(&sess->session_close)) {
+			spin_unlock_bh(&sess->conn_lock);
+			complete_all(&sess->session_wait_comp);
+			iscsit_close_session(sess);
+		} else {
+			spin_unlock_bh(&sess->conn_lock);
+		}
 
 		return 0;
 	} else {
 		pr_debug("Moving to TARG_SESS_STATE_FAILED.\n");
 		sess->session_state = TARG_SESS_STATE_FAILED;
 
-		if (!atomic_read(&sess->session_continuation)) {
-			spin_unlock_bh(&sess->conn_lock);
+		if (!atomic_read(&sess->session_continuation))
 			iscsit_start_time2retain_handler(sess);
-		} else
-			spin_unlock_bh(&sess->conn_lock);
 
-		if (atomic_read(&sess->sleep_on_sess_wait_comp))
-			complete(&sess->session_wait_comp);
+		if (atomic_read(&sess->session_close)) {
+			spin_unlock_bh(&sess->conn_lock);
+			complete_all(&sess->session_wait_comp);
+			iscsit_close_session(sess);
+		} else {
+			spin_unlock_bh(&sess->conn_lock);
+		}
 
 		return 0;
 	}
@@ -4370,8 +4399,7 @@
 	 * restart the timer and exit.
 	 */
 	if (!in_interrupt()) {
-		if (iscsit_check_session_usage_count(sess) == 1)
-			iscsit_stop_session(sess, 1, 1);
+		iscsit_check_session_usage_count(sess);
 	} else {
 		if (iscsit_check_session_usage_count(sess) == 2) {
 			atomic_set(&sess->session_logout, 0);
@@ -4432,9 +4460,9 @@
 	complete(&conn->conn_logout_comp);
 
 	iscsit_dec_conn_usage_count(conn);
+	atomic_set(&sess->session_close, 1);
 	iscsit_stop_session(sess, sleep, sleep);
 	iscsit_dec_session_usage_count(sess);
-	iscsit_close_session(sess);
 }
 
 static void iscsit_logout_post_handler_samecid(
@@ -4569,49 +4597,6 @@
 	sess->session_state = TARG_SESS_STATE_FAILED;
 }
 
-int iscsit_free_session(struct iscsi_session *sess)
-{
-	u16 conn_count = atomic_read(&sess->nconn);
-	struct iscsi_conn *conn, *conn_tmp = NULL;
-	int is_last;
-
-	spin_lock_bh(&sess->conn_lock);
-	atomic_set(&sess->sleep_on_sess_wait_comp, 1);
-
-	list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list,
-			conn_list) {
-		if (conn_count == 0)
-			break;
-
-		if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) {
-			is_last = 1;
-		} else {
-			iscsit_inc_conn_usage_count(conn_tmp);
-			is_last = 0;
-		}
-		iscsit_inc_conn_usage_count(conn);
-
-		spin_unlock_bh(&sess->conn_lock);
-		iscsit_cause_connection_reinstatement(conn, 1);
-		spin_lock_bh(&sess->conn_lock);
-
-		iscsit_dec_conn_usage_count(conn);
-		if (is_last == 0)
-			iscsit_dec_conn_usage_count(conn_tmp);
-
-		conn_count--;
-	}
-
-	if (atomic_read(&sess->nconn)) {
-		spin_unlock_bh(&sess->conn_lock);
-		wait_for_completion(&sess->session_wait_comp);
-	} else
-		spin_unlock_bh(&sess->conn_lock);
-
-	iscsit_close_session(sess);
-	return 0;
-}
-
 void iscsit_stop_session(
 	struct iscsi_session *sess,
 	int session_sleep,
@@ -4622,8 +4607,6 @@
 	int is_last;
 
 	spin_lock_bh(&sess->conn_lock);
-	if (session_sleep)
-		atomic_set(&sess->sleep_on_sess_wait_comp, 1);
 
 	if (connection_sleep) {
 		list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list,
@@ -4681,12 +4664,15 @@
 		spin_lock(&sess->conn_lock);
 		if (atomic_read(&sess->session_fall_back_to_erl0) ||
 		    atomic_read(&sess->session_logout) ||
+		    atomic_read(&sess->session_close) ||
 		    (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) {
 			spin_unlock(&sess->conn_lock);
 			continue;
 		}
+		iscsit_inc_session_usage_count(sess);
 		atomic_set(&sess->session_reinstatement, 1);
 		atomic_set(&sess->session_fall_back_to_erl0, 1);
+		atomic_set(&sess->session_close, 1);
 		spin_unlock(&sess->conn_lock);
 
 		list_move_tail(&se_sess->sess_list, &free_list);
@@ -4696,7 +4682,9 @@
 	list_for_each_entry_safe(se_sess, se_sess_tmp, &free_list, sess_list) {
 		sess = (struct iscsi_session *)se_sess->fabric_sess_ptr;
 
-		iscsit_free_session(sess);
+		list_del_init(&se_sess->sess_list);
+		iscsit_stop_session(sess, 1, 1);
+		iscsit_dec_session_usage_count(sess);
 		session_count++;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target.h
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target.h
@@ -43,7 +43,6 @@
 extern int iscsit_close_connection(struct iscsi_conn *);
 extern int iscsit_close_session(struct iscsi_session *);
 extern void iscsit_fail_session(struct iscsi_session *);
-extern int iscsit_free_session(struct iscsi_session *);
 extern void iscsit_stop_session(struct iscsi_session *, int, int);
 extern int iscsit_release_sessions_for_tpg(struct iscsi_portal_group *, int);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target_auth.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target_auth.c
@@ -70,7 +70,7 @@
 		if (!token)
 			goto out;
 
-		if (!strncmp(token, "5", 1)) {
+		if (!strcmp(token, "5")) {
 			pr_debug("Selected MD5 Algorithm\n");
 			kfree(orig);
 			return CHAP_DIGEST_MD5;
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target_configfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target_configfs.c
@@ -1476,20 +1476,23 @@
 	spin_lock(&sess->conn_lock);
 	if (atomic_read(&sess->session_fall_back_to_erl0) ||
 	    atomic_read(&sess->session_logout) ||
+	    atomic_read(&sess->session_close) ||
 	    (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) {
 		spin_unlock(&sess->conn_lock);
 		spin_unlock_bh(&se_tpg->session_lock);
 		return;
 	}
+	iscsit_inc_session_usage_count(sess);
 	atomic_set(&sess->session_reinstatement, 1);
 	atomic_set(&sess->session_fall_back_to_erl0, 1);
+	atomic_set(&sess->session_close, 1);
 	spin_unlock(&sess->conn_lock);
 
 	iscsit_stop_time2retain_timer(sess);
 	spin_unlock_bh(&se_tpg->session_lock);
 
 	iscsit_stop_session(sess, 1, 1);
-	iscsit_close_session(sess);
+	iscsit_dec_session_usage_count(sess);
 }
 
 static u32 lio_tpg_get_inst_index(struct se_portal_group *se_tpg)
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target_login.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target_login.c
@@ -156,6 +156,7 @@
 		spin_lock(&sess_p->conn_lock);
 		if (atomic_read(&sess_p->session_fall_back_to_erl0) ||
 		    atomic_read(&sess_p->session_logout) ||
+		    atomic_read(&sess_p->session_close) ||
 		    (sess_p->time2retain_timer_flags & ISCSI_TF_EXPIRED)) {
 			spin_unlock(&sess_p->conn_lock);
 			continue;
@@ -166,6 +167,7 @@
 		   (sess_p->sess_ops->SessionType == sessiontype))) {
 			atomic_set(&sess_p->session_reinstatement, 1);
 			atomic_set(&sess_p->session_fall_back_to_erl0, 1);
+			atomic_set(&sess_p->session_close, 1);
 			spin_unlock(&sess_p->conn_lock);
 			iscsit_inc_session_usage_count(sess_p);
 			iscsit_stop_time2retain_timer(sess_p);
@@ -190,7 +192,6 @@
 	if (sess->session_state == TARG_SESS_STATE_FAILED) {
 		spin_unlock_bh(&sess->conn_lock);
 		iscsit_dec_session_usage_count(sess);
-		iscsit_close_session(sess);
 		return 0;
 	}
 	spin_unlock_bh(&sess->conn_lock);
@@ -198,7 +199,6 @@
 	iscsit_stop_session(sess, 1, 1);
 	iscsit_dec_session_usage_count(sess);
 
-	iscsit_close_session(sess);
 	return 0;
 }
 
@@ -486,6 +486,7 @@
 		sess_p = (struct iscsi_session *)se_sess->fabric_sess_ptr;
 		if (atomic_read(&sess_p->session_fall_back_to_erl0) ||
 		    atomic_read(&sess_p->session_logout) ||
+		    atomic_read(&sess_p->session_close) ||
 		   (sess_p->time2retain_timer_flags & ISCSI_TF_EXPIRED))
 			continue;
 		if (!memcmp(sess_p->isid, pdu->isid, 6) &&
@@ -1171,7 +1172,7 @@
 }
 
 void iscsi_target_login_sess_out(struct iscsi_conn *conn,
-		struct iscsi_np *np, bool zero_tsih, bool new_sess)
+				 bool zero_tsih, bool new_sess)
 {
 	if (!new_sess)
 		goto old_sess_out;
@@ -1189,7 +1190,6 @@
 	conn->sess = NULL;
 
 old_sess_out:
-	iscsi_stop_login_thread_timer(np);
 	/*
 	 * If login negotiation fails check if the Time2Retain timer
 	 * needs to be restarted.
@@ -1429,8 +1429,9 @@
 new_sess_out:
 	new_sess = true;
 old_sess_out:
+	iscsi_stop_login_thread_timer(np);
 	tpg_np = conn->tpg_np;
-	iscsi_target_login_sess_out(conn, np, zero_tsih, new_sess);
+	iscsi_target_login_sess_out(conn, zero_tsih, new_sess);
 	new_sess = false;
 
 	if (tpg) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target_login.h
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target_login.h
@@ -22,8 +22,7 @@
 extern void iscsit_free_conn(struct iscsi_conn *);
 extern int iscsit_start_kthreads(struct iscsi_conn *);
 extern void iscsi_post_login_handler(struct iscsi_np *, struct iscsi_conn *, u8);
-extern void iscsi_target_login_sess_out(struct iscsi_conn *, struct iscsi_np *,
-				bool, bool);
+extern void iscsi_target_login_sess_out(struct iscsi_conn *, bool, bool);
 extern int iscsi_target_login_thread(void *);
 extern void iscsi_handle_login_thread_timeout(struct timer_list *t);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/iscsi/iscsi_target_nego.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/iscsi/iscsi_target_nego.c
@@ -535,12 +535,11 @@
 
 static void iscsi_target_login_drop(struct iscsi_conn *conn, struct iscsi_login *login)
 {
-	struct iscsi_np *np = login->np;
 	bool zero_tsih = login->zero_tsih;
 
 	iscsi_remove_failed_auth_entry(conn);
 	iscsi_target_nego_release(conn);
-	iscsi_target_login_sess_out(conn, np, zero_tsih, true);
+	iscsi_target_login_sess_out(conn, zero_tsih, true);
 }
 
 struct conn_timeout {
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/loopback/tcm_loop.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/loopback/tcm_loop.c
@@ -545,32 +545,15 @@
 	return 0;
 }
 
-static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
+static int tcm_loop_queue_data_or_status(const char *func,
+		struct se_cmd *se_cmd, u8 scsi_status)
 {
 	struct tcm_loop_cmd *tl_cmd = container_of(se_cmd,
 				struct tcm_loop_cmd, tl_se_cmd);
 	struct scsi_cmnd *sc = tl_cmd->sc;
 
 	pr_debug("%s() called for scsi_cmnd: %p cdb: 0x%02x\n",
-		 __func__, sc, sc->cmnd[0]);
-
-	sc->result = SAM_STAT_GOOD;
-	set_host_byte(sc, DID_OK);
-	if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
-	    (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
-		scsi_set_resid(sc, se_cmd->residual_count);
-	sc->scsi_done(sc);
-	return 0;
-}
-
-static int tcm_loop_queue_status(struct se_cmd *se_cmd)
-{
-	struct tcm_loop_cmd *tl_cmd = container_of(se_cmd,
-				struct tcm_loop_cmd, tl_se_cmd);
-	struct scsi_cmnd *sc = tl_cmd->sc;
-
-	pr_debug("%s() called for scsi_cmnd: %p cdb: 0x%02x\n",
-		 __func__, sc, sc->cmnd[0]);
+		 func, sc, sc->cmnd[0]);
 
 	if (se_cmd->sense_buffer &&
 	   ((se_cmd->se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) ||
@@ -581,7 +564,7 @@
 		sc->result = SAM_STAT_CHECK_CONDITION;
 		set_driver_byte(sc, DRIVER_SENSE);
 	} else
-		sc->result = se_cmd->scsi_status;
+		sc->result = scsi_status;
 
 	set_host_byte(sc, DID_OK);
 	if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
@@ -591,6 +574,17 @@
 	return 0;
 }
 
+static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
+{
+	return tcm_loop_queue_data_or_status(__func__, se_cmd, SAM_STAT_GOOD);
+}
+
+static int tcm_loop_queue_status(struct se_cmd *se_cmd)
+{
+	return tcm_loop_queue_data_or_status(__func__,
+					     se_cmd, se_cmd->scsi_status);
+}
+
 static void tcm_loop_queue_tm_rsp(struct se_cmd *se_cmd)
 {
 	struct tcm_loop_cmd *tl_cmd = container_of(se_cmd,
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_fabric_lib.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_fabric_lib.c
@@ -63,7 +63,7 @@
 	 * encoded TransportID.
 	 */
 	ptr = &se_nacl->initiatorname[0];
-	for (i = 0; i < 24; ) {
+	for (i = 0; i < 23; ) {
 		if (!strncmp(&ptr[i], ":", 1)) {
 			i++;
 			continue;
@@ -118,7 +118,7 @@
 	memset(buf + 8, 0, leading_zero_bytes);
 	rc = hex2bin(buf + 8 + leading_zero_bytes, p, count);
 	if (rc < 0) {
-		pr_debug("hex2bin failed for %s: %d\n", __func__, rc);
+		pr_debug("hex2bin failed for %s: %d\n", p, rc);
 		return rc;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_iblock.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_iblock.c
@@ -432,7 +432,7 @@
 				target_to_linux_sector(dev, cmd->t_task_lba),
 				target_to_linux_sector(dev,
 					sbc_get_write_same_sectors(cmd)),
-				GFP_KERNEL, false);
+				GFP_KERNEL, BLKDEV_ZERO_NOUNMAP);
 	if (ret)
 		return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
 
@@ -646,7 +646,9 @@
 	}
 
 	bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio));
-	bip_set_seed(bip, bio->bi_iter.bi_sector);
+	/* virtual start sector must be in integrity interval units */
+	bip_set_seed(bip, bio->bi_iter.bi_sector >>
+				  (bi->interval_exp - SECTOR_SHIFT));
 
 	pr_debug("IBLOCK BIP Size: %u Sector: %llu\n", bip->bip_iter.bi_size,
 		 (unsigned long long)bip->bip_iter.bi_sector);
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_internal.h
@@ -138,6 +138,7 @@
 void	release_se_kmem_caches(void);
 u32	scsi_get_new_index(scsi_index_t);
 void	transport_subsystem_check_init(void);
+void	transport_uninit_session(struct se_session *);
 unsigned char *transport_dump_cmd_direction(struct se_cmd *);
 void	transport_dump_dev_state(struct se_device *, char *, int *);
 void	transport_dump_dev_info(struct se_device *, struct se_lun *,
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_pr.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_pr.c
@@ -3731,6 +3731,7 @@
 	spin_unlock(&dev->t10_pr.registration_lock);
 
 	put_unaligned_be32(add_len, &buf[4]);
+	target_set_cmd_data_length(cmd, 8 + add_len);
 
 	transport_kunmap_data_sg(cmd);
 
@@ -3749,7 +3750,7 @@
 	struct t10_pr_registration *pr_reg;
 	unsigned char *buf;
 	u64 pr_res_key;
-	u32 add_len = 16; /* Hardcoded to 16 when a reservation is held. */
+	u32 add_len = 0;
 
 	if (cmd->data_length < 8) {
 		pr_err("PRIN SA READ_RESERVATIONS SCSI Data Length: %u"
@@ -3767,8 +3768,9 @@
 	pr_reg = dev->dev_pr_res_holder;
 	if (pr_reg) {
 		/*
-		 * Set the hardcoded Additional Length
+		 * Set the Additional Length to 16 when a reservation is held
 		 */
+		add_len = 16;
 		put_unaligned_be32(add_len, &buf[4]);
 
 		if (cmd->data_length < 22)
@@ -3804,6 +3806,8 @@
 			  (pr_reg->pr_res_type & 0x0f);
 	}
 
+	target_set_cmd_data_length(cmd, 8 + add_len);
+
 err:
 	spin_unlock(&dev->dev_reservation_lock);
 	transport_kunmap_data_sg(cmd);
@@ -3822,7 +3826,7 @@
 	struct se_device *dev = cmd->se_dev;
 	struct t10_reservation *pr_tmpl = &dev->t10_pr;
 	unsigned char *buf;
-	u16 add_len = 8; /* Hardcoded to 8. */
+	u16 len = 8; /* Hardcoded to 8. */
 
 	if (cmd->data_length < 6) {
 		pr_err("PRIN SA REPORT_CAPABILITIES SCSI Data Length:"
@@ -3834,7 +3838,7 @@
 	if (!buf)
 		return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
 
-	put_unaligned_be16(add_len, &buf[0]);
+	put_unaligned_be16(len, &buf[0]);
 	buf[2] |= 0x10; /* CRH: Compatible Reservation Hanlding bit. */
 	buf[2] |= 0x08; /* SIP_C: Specify Initiator Ports Capable bit */
 	buf[2] |= 0x04; /* ATP_C: All Target Ports Capable bit */
@@ -3863,6 +3867,8 @@
 	buf[4] |= 0x02; /* PR_TYPE_WRITE_EXCLUSIVE */
 	buf[5] |= 0x01; /* PR_TYPE_EXCLUSIVE_ACCESS_ALLREG */
 
+	target_set_cmd_data_length(cmd, len);
+
 	transport_kunmap_data_sg(cmd);
 
 	return 0;
@@ -4023,6 +4029,7 @@
 	 * Set ADDITIONAL_LENGTH
 	 */
 	put_unaligned_be32(add_len, &buf[4]);
+	target_set_cmd_data_length(cmd, 8 + add_len);
 
 	transport_kunmap_data_sg(cmd);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_transport.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_transport.c
@@ -236,6 +236,11 @@
 }
 EXPORT_SYMBOL(transport_init_session);
 
+void transport_uninit_session(struct se_session *se_sess)
+{
+	percpu_ref_exit(&se_sess->cmd_count);
+}
+
 /**
  * transport_alloc_session - allocate a session object and initialize it
  * @sup_prot_ops: bitmask that defines which T10-PI modes are supported.
@@ -579,11 +584,20 @@
 		sbitmap_queue_free(&se_sess->sess_tag_pool);
 		kvfree(se_sess->sess_cmd_map);
 	}
-	percpu_ref_exit(&se_sess->cmd_count);
+	transport_uninit_session(se_sess);
 	kmem_cache_free(se_sess_cache, se_sess);
 }
 EXPORT_SYMBOL(transport_free_session);
 
+static int target_release_res(struct se_device *dev, void *data)
+{
+	struct se_session *sess = data;
+
+	if (dev->reservation_holder == sess)
+		target_release_reservation(dev);
+	return 0;
+}
+
 void transport_deregister_session(struct se_session *se_sess)
 {
 	struct se_portal_group *se_tpg = se_sess->se_tpg;
@@ -600,6 +614,12 @@
 	se_sess->fabric_sess_ptr = NULL;
 	spin_unlock_irqrestore(&se_tpg->session_lock, flags);
 
+	/*
+	 * Since the session is being removed, release SPC-2
+	 * reservations held by the session that is disappearing.
+	 */
+	target_for_each_device(target_release_res, se_sess);
+
 	pr_debug("TARGET_CORE[%s]: Deregistered fabric_sess\n",
 		se_tpg->se_tpg_tfo->fabric_name);
 	/*
@@ -651,6 +671,11 @@
 
 	target_remove_from_state_list(cmd);
 
+	/*
+	 * Clear struct se_cmd->se_lun before the handoff to FE.
+	 */
+	cmd->se_lun = NULL;
+
 	spin_lock_irqsave(&cmd->t_state_lock, flags);
 	/*
 	 * Determine if frontend context caller is requesting the stopping of
@@ -678,6 +703,17 @@
 	return cmd->se_tfo->check_stop_free(cmd);
 }
 
+static void transport_lun_remove_cmd(struct se_cmd *cmd)
+{
+	struct se_lun *lun = cmd->se_lun;
+
+	if (!lun)
+		return;
+
+	if (cmpxchg(&cmd->lun_ref_active, true, false))
+		percpu_ref_put(&lun->lun_ref);
+}
+
 static void target_complete_failure_work(struct work_struct *work)
 {
 	struct se_cmd *cmd = container_of(work, struct se_cmd, work);
@@ -768,6 +804,8 @@
 
 	WARN_ON_ONCE(kref_read(&cmd->cmd_kref) == 0);
 
+	transport_lun_remove_cmd(cmd);
+
 	transport_cmd_check_stop_to_fabric(cmd);
 }
 
@@ -835,11 +873,9 @@
 }
 EXPORT_SYMBOL(target_complete_cmd);
 
-void target_complete_cmd_with_length(struct se_cmd *cmd, u8 scsi_status, int length)
+void target_set_cmd_data_length(struct se_cmd *cmd, int length)
 {
-	if ((scsi_status == SAM_STAT_GOOD ||
-	     cmd->se_cmd_flags & SCF_TREAT_READ_AS_NORMAL) &&
-	    length < cmd->data_length) {
+	if (length < cmd->data_length) {
 		if (cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) {
 			cmd->residual_count += cmd->data_length - length;
 		} else {
@@ -849,6 +885,15 @@
 
 		cmd->data_length = length;
 	}
+}
+EXPORT_SYMBOL(target_set_cmd_data_length);
+
+void target_complete_cmd_with_length(struct se_cmd *cmd, u8 scsi_status, int length)
+{
+	if (scsi_status == SAM_STAT_GOOD ||
+	    cmd->se_cmd_flags & SCF_TREAT_READ_AS_NORMAL) {
+		target_set_cmd_data_length(cmd, length);
+	}
 
 	target_complete_cmd(cmd, scsi_status);
 }
@@ -1680,6 +1725,7 @@
 	se_cmd->se_tmr_req->response = TMR_LUN_DOES_NOT_EXIST;
 	se_cmd->se_tfo->queue_tm_rsp(se_cmd);
 
+	transport_lun_remove_cmd(se_cmd);
 	transport_cmd_check_stop_to_fabric(se_cmd);
 }
 
@@ -1870,6 +1916,7 @@
 		goto queue_full;
 
 check_stop:
+	transport_lun_remove_cmd(cmd);
 	transport_cmd_check_stop_to_fabric(cmd);
 	return;
 
@@ -2167,6 +2214,7 @@
 		transport_handle_queue_full(cmd, cmd->se_dev, ret, false);
 		return;
 	}
+	transport_lun_remove_cmd(cmd);
 	transport_cmd_check_stop_to_fabric(cmd);
 }
 
@@ -2261,6 +2309,7 @@
 		if (ret)
 			goto queue_full;
 
+		transport_lun_remove_cmd(cmd);
 		transport_cmd_check_stop_to_fabric(cmd);
 		return;
 	}
@@ -2286,6 +2335,7 @@
 			if (ret)
 				goto queue_full;
 
+			transport_lun_remove_cmd(cmd);
 			transport_cmd_check_stop_to_fabric(cmd);
 			return;
 		}
@@ -2321,6 +2371,7 @@
 			if (ret)
 				goto queue_full;
 
+			transport_lun_remove_cmd(cmd);
 			transport_cmd_check_stop_to_fabric(cmd);
 			return;
 		}
@@ -2356,6 +2407,7 @@
 		break;
 	}
 
+	transport_lun_remove_cmd(cmd);
 	transport_cmd_check_stop_to_fabric(cmd);
 	return;
 
@@ -2682,6 +2734,9 @@
 		 */
 		if (cmd->state_active)
 			target_remove_from_state_list(cmd);
+
+		if (cmd->se_lun)
+			transport_lun_remove_cmd(cmd);
 	}
 	if (aborted)
 		cmd->free_compl = &compl;
@@ -2753,9 +2808,6 @@
 	struct completion *abrt_compl = se_cmd->abrt_compl;
 	unsigned long flags;
 
-	if (se_cmd->lun_ref_active)
-		percpu_ref_put(&se_cmd->se_lun->lun_ref);
-
 	if (se_sess) {
 		spin_lock_irqsave(&se_sess->sess_cmd_lock, flags);
 		list_del_init(&se_cmd->se_cmd_list);
@@ -3296,6 +3348,7 @@
 
 	cmd->se_tfo->queue_tm_rsp(cmd);
 
+	transport_lun_remove_cmd(cmd);
 	transport_cmd_check_stop_to_fabric(cmd);
 	return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_user.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_user.c
@@ -601,7 +601,7 @@
 	size = round_up(size+offset, PAGE_SIZE);
 
 	while (size) {
-		flush_dcache_page(virt_to_page(start));
+		flush_dcache_page(vmalloc_to_page(start));
 		start += PAGE_SIZE;
 		size -= PAGE_SIZE;
 	}
@@ -669,15 +669,17 @@
 	void *from, *to = NULL;
 	size_t copy_bytes, to_offset, offset;
 	struct scatterlist *sg;
-	struct page *page;
+	struct page *page = NULL;
 
 	for_each_sg(data_sg, sg, data_nents, i) {
 		int sg_remaining = sg->length;
 		from = kmap_atomic(sg_page(sg)) + sg->offset;
 		while (sg_remaining > 0) {
 			if (block_remaining == 0) {
-				if (to)
+				if (to) {
+					flush_dcache_page(page);
 					kunmap_atomic(to);
+				}
 
 				block_remaining = DATA_BLOCK_SIZE;
 				dbi = tcmu_cmd_get_dbi(tcmu_cmd);
@@ -722,7 +724,6 @@
 				memcpy(to + offset,
 				       from + sg->length - sg_remaining,
 				       copy_bytes);
-				tcmu_flush_dcache_range(to, copy_bytes);
 			}
 
 			sg_remaining -= copy_bytes;
@@ -731,8 +732,10 @@
 		kunmap_atomic(from - sg->offset);
 	}
 
-	if (to)
+	if (to) {
+		flush_dcache_page(page);
 		kunmap_atomic(to);
+	}
 }
 
 static void gather_data_area(struct tcmu_dev *udev, struct tcmu_cmd *cmd,
@@ -778,13 +781,13 @@
 				dbi = tcmu_cmd_get_dbi(cmd);
 				page = tcmu_get_block_page(udev, dbi);
 				from = kmap_atomic(page);
+				flush_dcache_page(page);
 			}
 			copy_bytes = min_t(size_t, sg_remaining,
 					block_remaining);
 			if (read_len < copy_bytes)
 				copy_bytes = read_len;
 			offset = DATA_BLOCK_SIZE - block_remaining;
-			tcmu_flush_dcache_range(from, copy_bytes);
 			memcpy(to + sg->length - sg_remaining, from + offset,
 					copy_bytes);
 
@@ -882,41 +885,24 @@
 	return command_size;
 }
 
-static int tcmu_setup_cmd_timer(struct tcmu_cmd *tcmu_cmd, unsigned int tmo,
-				struct timer_list *timer)
+static void tcmu_setup_cmd_timer(struct tcmu_cmd *tcmu_cmd, unsigned int tmo,
+				 struct timer_list *timer)
 {
-	struct tcmu_dev *udev = tcmu_cmd->tcmu_dev;
-	int cmd_id;
-
-	if (tcmu_cmd->cmd_id)
-		goto setup_timer;
-
-	cmd_id = idr_alloc(&udev->commands, tcmu_cmd, 1, USHRT_MAX, GFP_NOWAIT);
-	if (cmd_id < 0) {
-		pr_err("tcmu: Could not allocate cmd id.\n");
-		return cmd_id;
-	}
-	tcmu_cmd->cmd_id = cmd_id;
-
-	pr_debug("allocated cmd %u for dev %s tmo %lu\n", tcmu_cmd->cmd_id,
-		 udev->name, tmo / MSEC_PER_SEC);
-
-setup_timer:
 	if (!tmo)
-		return 0;
+		return;
 
 	tcmu_cmd->deadline = round_jiffies_up(jiffies + msecs_to_jiffies(tmo));
 	if (!timer_pending(timer))
 		mod_timer(timer, tcmu_cmd->deadline);
 
-	return 0;
+	pr_debug("Timeout set up for cmd %p, dev = %s, tmo = %lu\n", tcmu_cmd,
+		 tcmu_cmd->tcmu_dev->name, tmo / MSEC_PER_SEC);
 }
 
 static int add_to_qfull_queue(struct tcmu_cmd *tcmu_cmd)
 {
 	struct tcmu_dev *udev = tcmu_cmd->tcmu_dev;
 	unsigned int tmo;
-	int ret;
 
 	/*
 	 * For backwards compat if qfull_time_out is not set use
@@ -931,13 +917,11 @@
 	else
 		tmo = TCMU_TIME_OUT;
 
-	ret = tcmu_setup_cmd_timer(tcmu_cmd, tmo, &udev->qfull_timer);
-	if (ret)
-		return ret;
+	tcmu_setup_cmd_timer(tcmu_cmd, tmo, &udev->qfull_timer);
 
 	list_add_tail(&tcmu_cmd->queue_entry, &udev->qfull_queue);
-	pr_debug("adding cmd %u on dev %s to ring space wait queue\n",
-		 tcmu_cmd->cmd_id, udev->name);
+	pr_debug("adding cmd %p on dev %s to ring space wait queue\n",
+		 tcmu_cmd, udev->name);
 	return 0;
 }
 
@@ -959,7 +943,7 @@
 	struct tcmu_mailbox *mb;
 	struct tcmu_cmd_entry *entry;
 	struct iovec *iov;
-	int iov_cnt, ret;
+	int iov_cnt, cmd_id;
 	uint32_t cmd_head;
 	uint64_t cdb_off;
 	bool copy_to_data_area;
@@ -1026,7 +1010,7 @@
 		entry->hdr.cmd_id = 0; /* not used for PAD */
 		entry->hdr.kflags = 0;
 		entry->hdr.uflags = 0;
-		tcmu_flush_dcache_range(entry, sizeof(*entry));
+		tcmu_flush_dcache_range(entry, sizeof(entry->hdr));
 
 		UPDATE_HEAD(mb->cmd_head, pad_size, udev->cmdr_size);
 		tcmu_flush_dcache_range(mb, sizeof(*mb));
@@ -1060,14 +1044,21 @@
 	}
 	entry->req.iov_bidi_cnt = iov_cnt;
 
-	ret = tcmu_setup_cmd_timer(tcmu_cmd, udev->cmd_time_out,
-				   &udev->cmd_timer);
-	if (ret) {
-		tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
+	cmd_id = idr_alloc(&udev->commands, tcmu_cmd, 1, USHRT_MAX, GFP_NOWAIT);
+	if (cmd_id < 0) {
+		pr_err("tcmu: Could not allocate cmd id.\n");
 
+		tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
 		*scsi_err = TCM_OUT_OF_RESOURCES;
 		return -1;
 	}
+	tcmu_cmd->cmd_id = cmd_id;
+
+	pr_debug("allocated cmd id %u for cmd %p dev %s\n", tcmu_cmd->cmd_id,
+		 tcmu_cmd, udev->name);
+
+	tcmu_setup_cmd_timer(tcmu_cmd, udev->cmd_time_out, &udev->cmd_timer);
+
 	entry->hdr.cmd_id = tcmu_cmd->cmd_id;
 
 	/*
@@ -1084,7 +1075,7 @@
 	cdb_off = CMDR_OFF + cmd_head + base_command_size;
 	memcpy((void *) mb + cdb_off, se_cmd->t_task_cdb, scsi_command_size(se_cmd->t_task_cdb));
 	entry->req.cdb_off = cdb_off;
-	tcmu_flush_dcache_range(entry, sizeof(*entry));
+	tcmu_flush_dcache_range(entry, command_size);
 
 	UPDATE_HEAD(mb->cmd_head, command_size, udev->cmdr_size);
 	tcmu_flush_dcache_range(mb, sizeof(*mb));
@@ -1232,7 +1223,14 @@
 
 		struct tcmu_cmd_entry *entry = (void *) mb + CMDR_OFF + udev->cmdr_last_cleaned;
 
-		tcmu_flush_dcache_range(entry, sizeof(*entry));
+		/*
+		 * Flush max. up to end of cmd ring since current entry might
+		 * be a padding that is shorter than sizeof(*entry)
+		 */
+		size_t ring_left = head_to_end(udev->cmdr_last_cleaned,
+					       udev->cmdr_size);
+		tcmu_flush_dcache_range(entry, ring_left < sizeof(*entry) ?
+					ring_left : sizeof(*entry));
 
 		if (tcmu_hdr_get_op(entry->hdr.len_op) == TCMU_OP_PAD) {
 			UPDATE_HEAD(udev->cmdr_last_cleaned,
@@ -1279,50 +1277,39 @@
 	return handled;
 }
 
-static int tcmu_check_expired_cmd(int id, void *p, void *data)
+static void tcmu_check_expired_ring_cmd(struct tcmu_cmd *cmd)
 {
-	struct tcmu_cmd *cmd = p;
-	struct tcmu_dev *udev = cmd->tcmu_dev;
-	u8 scsi_status;
 	struct se_cmd *se_cmd;
-	bool is_running;
-
-	if (test_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags))
-		return 0;
 
 	if (!time_after(jiffies, cmd->deadline))
-		return 0;
+		return;
 
-	is_running = test_bit(TCMU_CMD_BIT_INFLIGHT, &cmd->flags);
+	set_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags);
+	list_del_init(&cmd->queue_entry);
 	se_cmd = cmd->se_cmd;
+	cmd->se_cmd = NULL;
 
-	if (is_running) {
-		/*
-		 * If cmd_time_out is disabled but qfull is set deadline
-		 * will only reflect the qfull timeout. Ignore it.
-		 */
-		if (!udev->cmd_time_out)
-			return 0;
+	pr_debug("Timing out inflight cmd %u on dev %s.\n",
+		 cmd->cmd_id, cmd->tcmu_dev->name);
 
-		set_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags);
-		/*
-		 * target_complete_cmd will translate this to LUN COMM FAILURE
-		 */
-		scsi_status = SAM_STAT_CHECK_CONDITION;
-		list_del_init(&cmd->queue_entry);
-		cmd->se_cmd = NULL;
-	} else {
-		list_del_init(&cmd->queue_entry);
-		idr_remove(&udev->commands, id);
-		tcmu_free_cmd(cmd);
-		scsi_status = SAM_STAT_TASK_SET_FULL;
-	}
+	target_complete_cmd(se_cmd, SAM_STAT_CHECK_CONDITION);
+}
 
-	pr_debug("Timing out cmd %u on dev %s that is %s.\n",
-		 id, udev->name, is_running ? "inflight" : "queued");
+static void tcmu_check_expired_queue_cmd(struct tcmu_cmd *cmd)
+{
+	struct se_cmd *se_cmd;
 
-	target_complete_cmd(se_cmd, scsi_status);
-	return 0;
+	if (!time_after(jiffies, cmd->deadline))
+		return;
+
+	pr_debug("Timing out queued cmd %p on dev %s.\n",
+		  cmd, cmd->tcmu_dev->name);
+
+	list_del_init(&cmd->queue_entry);
+	se_cmd = cmd->se_cmd;
+	tcmu_free_cmd(cmd);
+
+	target_complete_cmd(se_cmd, SAM_STAT_TASK_SET_FULL);
 }
 
 static void tcmu_device_timedout(struct tcmu_dev *udev)
@@ -1407,16 +1394,15 @@
 	return &udev->se_dev;
 }
 
-static bool run_qfull_queue(struct tcmu_dev *udev, bool fail)
+static void run_qfull_queue(struct tcmu_dev *udev, bool fail)
 {
 	struct tcmu_cmd *tcmu_cmd, *tmp_cmd;
 	LIST_HEAD(cmds);
-	bool drained = true;
 	sense_reason_t scsi_ret;
 	int ret;
 
 	if (list_empty(&udev->qfull_queue))
-		return true;
+		return;
 
 	pr_debug("running %s's cmdr queue forcefail %d\n", udev->name, fail);
 
@@ -1425,11 +1411,10 @@
 	list_for_each_entry_safe(tcmu_cmd, tmp_cmd, &cmds, queue_entry) {
 		list_del_init(&tcmu_cmd->queue_entry);
 
-	        pr_debug("removing cmd %u on dev %s from queue\n",
-		         tcmu_cmd->cmd_id, udev->name);
+		pr_debug("removing cmd %p on dev %s from queue\n",
+			 tcmu_cmd, udev->name);
 
 		if (fail) {
-			idr_remove(&udev->commands, tcmu_cmd->cmd_id);
 			/*
 			 * We were not able to even start the command, so
 			 * fail with busy to allow a retry in case runner
@@ -1444,10 +1429,8 @@
 
 		ret = queue_cmd_ring(tcmu_cmd, &scsi_ret);
 		if (ret < 0) {
-		        pr_debug("cmd %u on dev %s failed with %u\n",
-			         tcmu_cmd->cmd_id, udev->name, scsi_ret);
-
-			idr_remove(&udev->commands, tcmu_cmd->cmd_id);
+			pr_debug("cmd %p on dev %s failed with %u\n",
+				 tcmu_cmd, udev->name, scsi_ret);
 			/*
 			 * Ignore scsi_ret for now. target_complete_cmd
 			 * drops it.
@@ -1462,13 +1445,11 @@
 			 * the queue
 			 */
 			list_splice_tail(&cmds, &udev->qfull_queue);
-			drained = false;
 			break;
 		}
 	}
 
 	tcmu_set_next_deadline(&udev->qfull_queue, &udev->qfull_timer);
-	return drained;
 }
 
 static int tcmu_irqcontrol(struct uio_info *info, s32 irq_on)
@@ -1652,6 +1633,8 @@
 		if (tcmu_check_and_free_pending_cmd(cmd) != 0)
 			all_expired = false;
 	}
+	if (!list_empty(&udev->qfull_queue))
+		all_expired = false;
 	idr_destroy(&udev->commands);
 	WARN_ON(!all_expired);
 
@@ -2037,9 +2020,6 @@
 	mutex_lock(&udev->cmdr_lock);
 
 	idr_for_each_entry(&udev->commands, cmd, i) {
-		if (!test_bit(TCMU_CMD_BIT_INFLIGHT, &cmd->flags))
-			continue;
-
 		pr_debug("removing cmd %u on dev %s from ring (is expired %d)\n",
 			  cmd->cmd_id, udev->name,
 			  test_bit(TCMU_CMD_BIT_EXPIRED, &cmd->flags));
@@ -2073,9 +2053,12 @@
 	mb->cmd_tail = 0;
 	mb->cmd_head = 0;
 	tcmu_flush_dcache_range(mb, sizeof(*mb));
+	clear_bit(TCMU_DEV_BIT_BROKEN, &udev->flags);
 
 	del_timer(&udev->cmd_timer);
 
+	run_qfull_queue(udev, false);
+
 	mutex_unlock(&udev->cmdr_lock);
 }
 
@@ -2697,6 +2680,7 @@
 static void check_timedout_devices(void)
 {
 	struct tcmu_dev *udev, *tmp_dev;
+	struct tcmu_cmd *cmd, *tmp_cmd;
 	LIST_HEAD(devs);
 
 	spin_lock_bh(&timed_out_udevs_lock);
@@ -2707,9 +2691,24 @@
 		spin_unlock_bh(&timed_out_udevs_lock);
 
 		mutex_lock(&udev->cmdr_lock);
-		idr_for_each(&udev->commands, tcmu_check_expired_cmd, NULL);
 
-		tcmu_set_next_deadline(&udev->inflight_queue, &udev->cmd_timer);
+		/*
+		 * If cmd_time_out is disabled but qfull is set deadline
+		 * will only reflect the qfull timeout. Ignore it.
+		 */
+		if (udev->cmd_time_out) {
+			list_for_each_entry_safe(cmd, tmp_cmd,
+						 &udev->inflight_queue,
+						 queue_entry) {
+				tcmu_check_expired_ring_cmd(cmd);
+			}
+			tcmu_set_next_deadline(&udev->inflight_queue,
+					       &udev->cmd_timer);
+		}
+		list_for_each_entry_safe(cmd, tmp_cmd, &udev->qfull_queue,
+					 queue_entry) {
+			tcmu_check_expired_queue_cmd(cmd);
+		}
 		tcmu_set_next_deadline(&udev->qfull_queue, &udev->qfull_timer);
 
 		mutex_unlock(&udev->cmdr_lock);
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_xcopy.c
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_xcopy.c
@@ -46,60 +46,83 @@
 	return 0;
 }
 
-struct xcopy_dev_search_info {
-	const unsigned char *dev_wwn;
-	struct se_device *found_dev;
-};
-
+/**
+ * target_xcopy_locate_se_dev_e4_iter - compare XCOPY NAA device identifiers
+ *
+ * @se_dev: device being considered for match
+ * @dev_wwn: XCOPY requested NAA dev_wwn
+ * @return: 1 on match, 0 on no-match
+ */
 static int target_xcopy_locate_se_dev_e4_iter(struct se_device *se_dev,
-					      void *data)
+					      const unsigned char *dev_wwn)
 {
-	struct xcopy_dev_search_info *info = data;
 	unsigned char tmp_dev_wwn[XCOPY_NAA_IEEE_REGEX_LEN];
 	int rc;
 
-	if (!se_dev->dev_attrib.emulate_3pc)
+	if (!se_dev->dev_attrib.emulate_3pc) {
+		pr_debug("XCOPY: emulate_3pc disabled on se_dev %p\n", se_dev);
 		return 0;
+	}
 
 	memset(&tmp_dev_wwn[0], 0, XCOPY_NAA_IEEE_REGEX_LEN);
 	target_xcopy_gen_naa_ieee(se_dev, &tmp_dev_wwn[0]);
 
-	rc = memcmp(&tmp_dev_wwn[0], info->dev_wwn, XCOPY_NAA_IEEE_REGEX_LEN);
-	if (rc != 0)
-		return 0;
-
-	info->found_dev = se_dev;
-	pr_debug("XCOPY 0xe4: located se_dev: %p\n", se_dev);
-
-	rc = target_depend_item(&se_dev->dev_group.cg_item);
+	rc = memcmp(&tmp_dev_wwn[0], dev_wwn, XCOPY_NAA_IEEE_REGEX_LEN);
 	if (rc != 0) {
-		pr_err("configfs_depend_item attempt failed: %d for se_dev: %p\n",
-		       rc, se_dev);
-		return rc;
+		pr_debug("XCOPY: skip non-matching: %*ph\n",
+			 XCOPY_NAA_IEEE_REGEX_LEN, tmp_dev_wwn);
+		return 0;
 	}
+	pr_debug("XCOPY 0xe4: located se_dev: %p\n", se_dev);
 
-	pr_debug("Called configfs_depend_item for se_dev: %p se_dev->se_dev_group: %p\n",
-		 se_dev, &se_dev->dev_group);
 	return 1;
 }
 
-static int target_xcopy_locate_se_dev_e4(const unsigned char *dev_wwn,
-					struct se_device **found_dev)
-{
-	struct xcopy_dev_search_info info;
-	int ret;
-
-	memset(&info, 0, sizeof(info));
-	info.dev_wwn = dev_wwn;
-
-	ret = target_for_each_device(target_xcopy_locate_se_dev_e4_iter, &info);
-	if (ret == 1) {
-		*found_dev = info.found_dev;
-		return 0;
-	} else {
-		pr_debug_ratelimited("Unable to locate 0xe4 descriptor for EXTENDED_COPY\n");
-		return -EINVAL;
+static int target_xcopy_locate_se_dev_e4(struct se_session *sess,
+					const unsigned char *dev_wwn,
+					struct se_device **_found_dev,
+					struct percpu_ref **_found_lun_ref)
+{
+	struct se_dev_entry *deve;
+	struct se_node_acl *nacl;
+	struct se_lun *this_lun = NULL;
+	struct se_device *found_dev = NULL;
+
+	/* cmd with NULL sess indicates no associated $FABRIC_MOD */
+	if (!sess)
+		goto err_out;
+
+	pr_debug("XCOPY 0xe4: searching for: %*ph\n",
+		 XCOPY_NAA_IEEE_REGEX_LEN, dev_wwn);
+
+	nacl = sess->se_node_acl;
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(deve, &nacl->lun_entry_hlist, link) {
+		struct se_device *this_dev;
+		int rc;
+
+		this_lun = rcu_dereference(deve->se_lun);
+		this_dev = rcu_dereference_raw(this_lun->lun_se_dev);
+
+		rc = target_xcopy_locate_se_dev_e4_iter(this_dev, dev_wwn);
+		if (rc) {
+			if (percpu_ref_tryget_live(&this_lun->lun_ref))
+				found_dev = this_dev;
+			break;
+		}
 	}
+	rcu_read_unlock();
+	if (found_dev == NULL)
+		goto err_out;
+
+	pr_debug("lun_ref held for se_dev: %p se_dev->se_dev_group: %p\n",
+		 found_dev, &found_dev->dev_group);
+	*_found_dev = found_dev;
+	*_found_lun_ref = &this_lun->lun_ref;
+	return 0;
+err_out:
+	pr_debug_ratelimited("Unable to locate 0xe4 descriptor for EXTENDED_COPY\n");
+	return -EINVAL;
 }
 
 static int target_xcopy_parse_tiddesc_e4(struct se_cmd *se_cmd, struct xcopy_op *xop,
@@ -246,12 +269,16 @@
 
 	switch (xop->op_origin) {
 	case XCOL_SOURCE_RECV_OP:
-		rc = target_xcopy_locate_se_dev_e4(xop->dst_tid_wwn,
-						&xop->dst_dev);
+		rc = target_xcopy_locate_se_dev_e4(se_cmd->se_sess,
+						xop->dst_tid_wwn,
+						&xop->dst_dev,
+						&xop->remote_lun_ref);
 		break;
 	case XCOL_DEST_RECV_OP:
-		rc = target_xcopy_locate_se_dev_e4(xop->src_tid_wwn,
-						&xop->src_dev);
+		rc = target_xcopy_locate_se_dev_e4(se_cmd->se_sess,
+						xop->src_tid_wwn,
+						&xop->src_dev,
+						&xop->remote_lun_ref);
 		break;
 	default:
 		pr_err("XCOPY CSCD descriptor IDs not found in CSCD list - "
@@ -396,18 +423,12 @@
 
 static void xcopy_pt_undepend_remotedev(struct xcopy_op *xop)
 {
-	struct se_device *remote_dev;
-
 	if (xop->op_origin == XCOL_SOURCE_RECV_OP)
-		remote_dev = xop->dst_dev;
+		pr_debug("putting dst lun_ref for %p\n", xop->dst_dev);
 	else
-		remote_dev = xop->src_dev;
-
-	pr_debug("Calling configfs_undepend_item for"
-		  " remote_dev: %p remote_dev->dev_group: %p\n",
-		  remote_dev, &remote_dev->dev_group.cg_item);
+		pr_debug("putting src lun_ref for %p\n", xop->src_dev);
 
-	target_undepend_item(&remote_dev->dev_group.cg_item);
+	percpu_ref_put(xop->remote_lun_ref);
 }
 
 static void xcopy_pt_release_cmd(struct se_cmd *se_cmd)
@@ -479,7 +500,7 @@
 	memset(&xcopy_pt_sess, 0, sizeof(struct se_session));
 	ret = transport_init_session(&xcopy_pt_sess);
 	if (ret < 0)
-		return ret;
+		goto destroy_wq;
 
 	xcopy_pt_nacl.se_tpg = &xcopy_pt_tpg;
 	xcopy_pt_nacl.nacl_sess = &xcopy_pt_sess;
@@ -488,12 +509,19 @@
 	xcopy_pt_sess.se_node_acl = &xcopy_pt_nacl;
 
 	return 0;
+
+destroy_wq:
+	destroy_workqueue(xcopy_wq);
+	xcopy_wq = NULL;
+	return ret;
 }
 
 void target_xcopy_release_pt(void)
 {
-	if (xcopy_wq)
+	if (xcopy_wq) {
 		destroy_workqueue(xcopy_wq);
+		transport_uninit_session(&xcopy_pt_sess);
+	}
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/target/target_core_xcopy.h
+++ linux-gkeop-5.4-5.4.0/drivers/target/target_core_xcopy.h
@@ -29,6 +29,7 @@
 	struct se_device *dst_dev;
 	unsigned char dst_tid_wwn[XCOPY_NAA_IEEE_REGEX_LEN];
 	unsigned char local_dev_wwn[XCOPY_NAA_IEEE_REGEX_LEN];
+	struct percpu_ref *remote_lun_ref;
 
 	sector_t src_lba;
 	sector_t dst_lba;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tee/optee/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/tee/optee/Kconfig
@@ -3,6 +3,7 @@
 config OPTEE
 	tristate "OP-TEE"
 	depends on HAVE_ARM_SMCCC
+	depends on MMU
 	help
 	  This implements the OP-TEE Trusted Execution Environment (TEE)
 	  driver.
--- linux-gkeop-5.4-5.4.0.orig/drivers/tee/optee/call.c
+++ linux-gkeop-5.4-5.4.0/drivers/tee/optee/call.c
@@ -7,6 +7,7 @@
 #include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/mm.h>
+#include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/tee_drv.h>
 #include <linux/types.h>
@@ -148,7 +149,8 @@
 			 */
 			optee_cq_wait_for_completion(&optee->call_queue, &w);
 		} else if (OPTEE_SMC_RETURN_IS_RPC(res.a0)) {
-			might_sleep();
+			if (need_resched())
+				cond_resched();
 			param.a0 = res.a0;
 			param.a1 = res.a1;
 			param.a2 = res.a2;
@@ -530,7 +532,8 @@
 static bool is_normal_memory(pgprot_t p)
 {
 #if defined(CONFIG_ARM)
-	return (pgprot_val(p) & L_PTE_MT_MASK) == L_PTE_MT_WRITEALLOC;
+	return (((pgprot_val(p) & L_PTE_MT_MASK) == L_PTE_MT_WRITEALLOC) ||
+		((pgprot_val(p) & L_PTE_MT_MASK) == L_PTE_MT_WRITEBACK));
 #elif defined(CONFIG_ARM64)
 	return (pgprot_val(p) & PTE_ATTRINDX_MASK) == PTE_ATTRINDX(MT_NORMAL);
 #else
@@ -554,6 +557,13 @@
 	struct mm_struct *mm = current->mm;
 	int rc;
 
+	/*
+	 * Allow kernel address to register with OP-TEE as kernel
+	 * pages are configured as normal memory only.
+	 */
+	if (virt_addr_valid(start))
+		return 0;
+
 	down_read(&mm->mmap_sem);
 	rc = __check_mem_type(find_vma(mm, start),
 			      start + num_pages * PAGE_SIZE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tee/optee/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/tee/optee/core.c
@@ -643,11 +643,6 @@
 	if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
 		pr_info("dynamic shared memory is enabled\n");
 
-	rc = optee_enumerate_devices();
-	if (rc)
-		goto err;
-
-	pr_info("initialized driver\n");
 	return optee;
 err:
 	if (optee) {
@@ -702,9 +697,10 @@
 
 static int __init optee_driver_init(void)
 {
-	struct device_node *fw_np;
-	struct device_node *np;
-	struct optee *optee;
+	struct device_node *fw_np = NULL;
+	struct device_node *np = NULL;
+	struct optee *optee = NULL;
+	int rc = 0;
 
 	/* Node is supposed to be below /firmware */
 	fw_np = of_find_node_by_name(NULL, "firmware");
@@ -723,6 +719,14 @@
 	if (IS_ERR(optee))
 		return PTR_ERR(optee);
 
+	rc = optee_enumerate_devices();
+	if (rc) {
+		optee_remove(optee);
+		return rc;
+	}
+
+	pr_info("initialized driver\n");
+
 	optee_svc = optee;
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tee/optee/shm_pool.c
+++ linux-gkeop-5.4-5.4.0/drivers/tee/optee/shm_pool.c
@@ -17,6 +17,7 @@
 {
 	unsigned int order = get_order(size);
 	struct page *page;
+	int rc = 0;
 
 	page = alloc_pages(GFP_KERNEL | __GFP_ZERO, order);
 	if (!page)
@@ -26,12 +27,34 @@
 	shm->paddr = page_to_phys(page);
 	shm->size = PAGE_SIZE << order;
 
-	return 0;
+	if (shm->flags & TEE_SHM_DMA_BUF) {
+		unsigned int nr_pages = 1 << order, i;
+		struct page **pages;
+
+		pages = kcalloc(nr_pages, sizeof(pages), GFP_KERNEL);
+		if (!pages)
+			return -ENOMEM;
+
+		for (i = 0; i < nr_pages; i++) {
+			pages[i] = page;
+			page++;
+		}
+
+		shm->flags |= TEE_SHM_REGISTER;
+		rc = optee_shm_register(shm->ctx, shm, pages, nr_pages,
+					(unsigned long)shm->kaddr);
+		kfree(pages);
+	}
+
+	return rc;
 }
 
 static void pool_op_free(struct tee_shm_pool_mgr *poolm,
 			 struct tee_shm *shm)
 {
+	if (shm->flags & TEE_SHM_DMA_BUF)
+		optee_shm_unregister(shm->ctx, shm);
+
 	free_pages((unsigned long)shm->kaddr, get_order(shm->size));
 	shm->kaddr = NULL;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/broadcom/brcmstb_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/broadcom/brcmstb_thermal.c
@@ -49,7 +49,7 @@
 #define AVS_TMON_TP_TEST_ENABLE		0x20
 
 /* Default coefficients */
-#define AVS_TMON_TEMP_SLOPE		-487
+#define AVS_TMON_TEMP_SLOPE		487
 #define AVS_TMON_TEMP_OFFSET		410040
 
 /* HW related temperature constants */
@@ -108,23 +108,12 @@
 	struct thermal_zone_device *thermal;
 };
 
-static void avs_tmon_get_coeffs(struct thermal_zone_device *tz, int *slope,
-				int *offset)
-{
-	*slope = thermal_zone_get_slope(tz);
-	*offset = thermal_zone_get_offset(tz);
-}
-
 /* Convert a HW code to a temperature reading (millidegree celsius) */
 static inline int avs_tmon_code_to_temp(struct thermal_zone_device *tz,
 					u32 code)
 {
-	const int val = code & AVS_TMON_TEMP_MASK;
-	int slope, offset;
-
-	avs_tmon_get_coeffs(tz, &slope, &offset);
-
-	return slope * val + offset;
+	return (AVS_TMON_TEMP_OFFSET -
+		(int)((code & AVS_TMON_TEMP_MAX) * AVS_TMON_TEMP_SLOPE));
 }
 
 /*
@@ -136,20 +125,18 @@
 static inline u32 avs_tmon_temp_to_code(struct thermal_zone_device *tz,
 					int temp, bool low)
 {
-	int slope, offset;
-
 	if (temp < AVS_TMON_TEMP_MIN)
-		return AVS_TMON_TEMP_MAX; /* Maximum code value */
-
-	avs_tmon_get_coeffs(tz, &slope, &offset);
+		return AVS_TMON_TEMP_MAX;	/* Maximum code value */
 
-	if (temp >= offset)
+	if (temp >= AVS_TMON_TEMP_OFFSET)
 		return 0;	/* Minimum code value */
 
 	if (low)
-		return (u32)(DIV_ROUND_UP(offset - temp, abs(slope)));
+		return (u32)(DIV_ROUND_UP(AVS_TMON_TEMP_OFFSET - temp,
+					  AVS_TMON_TEMP_SLOPE));
 	else
-		return (u32)((offset - temp) / abs(slope));
+		return (u32)((AVS_TMON_TEMP_OFFSET - temp) /
+			      AVS_TMON_TEMP_SLOPE);
 }
 
 static int brcmstb_get_temp(void *data, int *temp)
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/cpu_cooling.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/cpu_cooling.c
@@ -210,11 +210,11 @@
 	int i;
 	struct freq_table *freq_table = cpufreq_cdev->freq_table;
 
-	for (i = 1; i <= cpufreq_cdev->max_level; i++)
-		if (power > freq_table[i].power)
+	for (i = 0; i < cpufreq_cdev->max_level; i++)
+		if (power >= freq_table[i].power)
 			break;
 
-	return freq_table[i - 1].frequency;
+	return freq_table[i].frequency;
 }
 
 /**
@@ -320,6 +320,7 @@
 				 unsigned long state)
 {
 	struct cpufreq_cooling_device *cpufreq_cdev = cdev->devdata;
+	int ret;
 
 	/* Request state should be less than max_level */
 	if (WARN_ON(state > cpufreq_cdev->max_level))
@@ -329,10 +330,12 @@
 	if (cpufreq_cdev->cpufreq_state == state)
 		return 0;
 
-	cpufreq_cdev->cpufreq_state = state;
+	ret = freq_qos_update_request(&cpufreq_cdev->qos_req,
+			cpufreq_cdev->freq_table[state].frequency);
+	if (ret > 0)
+		cpufreq_cdev->cpufreq_state = state;
 
-	return freq_qos_update_request(&cpufreq_cdev->qos_req,
-				cpufreq_cdev->freq_table[state].frequency);
+	return ret;
 }
 
 /**
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/db8500_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/db8500_thermal.c
@@ -152,8 +152,8 @@
 		db8500_thermal_update_config(th, idx, THERMAL_TREND_RAISING,
 					     next_low, next_high);
 
-		dev_info(&th->tz->device,
-			 "PRCMU set max %ld, min %ld\n", next_high, next_low);
+		dev_dbg(&th->tz->device,
+			"PRCMU set max %ld, min %ld\n", next_high, next_low);
 	} else if (idx == num_points - 1)
 		/* So we roof out 1 degree over the max point */
 		th->interpolated_temp = db8500_thermal_points[idx] + 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/imx_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/imx_thermal.c
@@ -656,7 +656,7 @@
 static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data)
 {
 	struct device_node *np;
-	int ret;
+	int ret = 0;
 
 	data->policy = cpufreq_cpu_get(0);
 	if (!data->policy) {
@@ -671,11 +671,12 @@
 		if (IS_ERR(data->cdev)) {
 			ret = PTR_ERR(data->cdev);
 			cpufreq_cpu_put(data->policy);
-			return ret;
 		}
 	}
 
-	return 0;
+	of_node_put(np);
+
+	return ret;
 }
 
 static void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data *data)
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/intel/int340x_thermal/int3403_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/intel/int340x_thermal/int3403_thermal.c
@@ -74,7 +74,7 @@
 						   THERMAL_TRIP_CHANGED);
 		break;
 	default:
-		dev_err(&priv->pdev->dev, "Unsupported event [0x%x]\n", event);
+		dev_dbg(&priv->pdev->dev, "Unsupported event [0x%x]\n", event);
 		break;
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/intel/intel_pch_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/intel/intel_pch_thermal.c
@@ -23,6 +23,7 @@
 #define PCH_THERMAL_DID_SKL_H	0xA131 /* Skylake PCH 100 series */
 #define PCH_THERMAL_DID_CNL	0x9Df9 /* CNL PCH */
 #define PCH_THERMAL_DID_CNL_H	0xA379 /* CNL-H PCH */
+#define PCH_THERMAL_DID_CML_H	0X06F9 /* CML-H PCH */
 
 /* Wildcat Point-LP  PCH Thermal registers */
 #define WPT_TEMP	0x0000	/* Temperature */
@@ -272,6 +273,7 @@
 	board_wpt,
 	board_skl,
 	board_cnl,
+	board_cml,
 };
 
 static const struct board_info {
@@ -294,6 +296,10 @@
 		.name = "pch_cannonlake",
 		.ops = &pch_dev_ops_wpt,
 	},
+	[board_cml] = {
+		.name = "pch_cometlake",
+		.ops = &pch_dev_ops_wpt,
+	}
 };
 
 static int intel_pch_thermal_probe(struct pci_dev *pdev,
@@ -398,6 +404,8 @@
 		.driver_data = board_cnl, },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_CNL_H),
 		.driver_data = board_cnl, },
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_CML_H),
+		.driver_data = board_cml, },
 	{ 0, },
 };
 MODULE_DEVICE_TABLE(pci, intel_pch_thermal_id);
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/mtk_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/mtk_thermal.c
@@ -211,6 +211,9 @@
 /* The total number of temperature sensors in the MT8183 */
 #define MT8183_NUM_SENSORS	6
 
+/* The number of banks in the MT8183 */
+#define MT8183_NUM_ZONES               1
+
 /* The number of sensing points per bank */
 #define MT8183_NUM_SENSORS_PER_ZONE	 6
 
@@ -498,7 +501,7 @@
 
 static const struct mtk_thermal_data mt8183_thermal_data = {
 	.auxadc_channel = MT8183_TEMP_AUXADC_CHANNEL,
-	.num_banks = MT8183_NUM_SENSORS_PER_ZONE,
+	.num_banks = MT8183_NUM_ZONES,
 	.num_sensors = MT8183_NUM_SENSORS,
 	.vts_index = mt8183_vts_index,
 	.cali_val = MT8183_CALIBRATION,
@@ -591,8 +594,7 @@
 	u32 raw;
 
 	for (i = 0; i < conf->bank_data[bank->id].num_sensors; i++) {
-		raw = readl(mt->thermal_base +
-			    conf->msr[conf->bank_data[bank->id].sensors[i]]);
+		raw = readl(mt->thermal_base + conf->msr[i]);
 
 		temp = raw_to_mcelsius(mt,
 				       conf->bank_data[bank->id].sensors[i],
@@ -733,8 +735,7 @@
 
 	for (i = 0; i < conf->bank_data[num].num_sensors; i++)
 		writel(conf->sensor_mux_values[conf->bank_data[num].sensors[i]],
-		       mt->thermal_base +
-		       conf->adcpnp[conf->bank_data[num].sensors[i]]);
+		       mt->thermal_base + conf->adcpnp[i]);
 
 	writel((1 << conf->bank_data[num].num_sensors) - 1,
 	       controller_base + TEMP_MONCTL0);
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/qcom/qcom-spmi-temp-alarm.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/qcom/qcom-spmi-temp-alarm.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2011-2015, 2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2015, 2017, 2020, The Linux Foundation. All rights reserved.
  */
 
 #include <linux/bitops.h>
@@ -191,7 +191,7 @@
 		chip->temp = mili_celsius;
 	}
 
-	*temp = chip->temp < 0 ? 0 : chip->temp;
+	*temp = chip->temp;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/rcar_gen3_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/rcar_gen3_thermal.c
@@ -169,7 +169,7 @@
 {
 	struct rcar_gen3_thermal_tsc *tsc = devdata;
 	int mcelsius, val;
-	u32 reg;
+	int reg;
 
 	/* Read register and convert to mili Celsius */
 	reg = rcar_gen3_thermal_read(tsc, REG_GEN3_TEMP) & CTEMP_MASK;
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/rcar_thermal.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/rcar_thermal.c
@@ -526,8 +526,10 @@
 			res = platform_get_resource(pdev, IORESOURCE_MEM,
 						    mres++);
 			common->base = devm_ioremap_resource(dev, res);
-			if (IS_ERR(common->base))
-				return PTR_ERR(common->base);
+			if (IS_ERR(common->base)) {
+				ret = PTR_ERR(common->base);
+				goto error_unregister;
+			}
 
 			idle = 0; /* polling delay is not needed */
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/thermal_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/thermal_core.c
@@ -304,7 +304,7 @@
 				 &tz->poll_queue,
 				 msecs_to_jiffies(delay));
 	else
-		cancel_delayed_work_sync(&tz->poll_queue);
+		cancel_delayed_work(&tz->poll_queue);
 }
 
 static void monitor_thermal_zone(struct thermal_zone_device *tz)
@@ -1414,7 +1414,7 @@
 
 	mutex_unlock(&thermal_list_lock);
 
-	thermal_zone_device_set_polling(tz, 0);
+	cancel_delayed_work_sync(&tz->poll_queue);
 
 	thermal_set_governor(tz, NULL);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/ti-soc-thermal/omap4-thermal-data.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/ti-soc-thermal/omap4-thermal-data.c
@@ -37,20 +37,21 @@
 
 /*
  * Temperature values in milli degree celsius
- * ADC code values from 530 to 923
+ * ADC code values from 13 to 107, see TRM
+ * "18.4.10.2.3 ADC Codes Versus Temperature".
  */
 static const int
 omap4430_adc_to_temp[OMAP4430_ADC_END_VALUE - OMAP4430_ADC_START_VALUE + 1] = {
-	-38000, -35000, -34000, -32000, -30000, -28000, -26000, -24000, -22000,
-	-20000, -18000, -17000, -15000, -13000, -12000, -10000, -8000, -6000,
-	-5000, -3000, -1000, 0, 2000, 3000, 5000, 6000, 8000, 10000, 12000,
-	13000, 15000, 17000, 19000, 21000, 23000, 25000, 27000, 28000, 30000,
-	32000, 33000, 35000, 37000, 38000, 40000, 42000, 43000, 45000, 47000,
-	48000, 50000, 52000, 53000, 55000, 57000, 58000, 60000, 62000, 64000,
-	66000, 68000, 70000, 71000, 73000, 75000, 77000, 78000, 80000, 82000,
-	83000, 85000, 87000, 88000, 90000, 92000, 93000, 95000, 97000, 98000,
-	100000, 102000, 103000, 105000, 107000, 109000, 111000, 113000, 115000,
-	117000, 118000, 120000, 122000, 123000,
+	-40000, -38000, -35000, -34000, -32000, -30000, -28000, -26000, -24000,
+	-22000,	-20000, -18500, -17000, -15000, -13500, -12000, -10000, -8000,
+	-6500, -5000, -3500, -1500, 0, 2000, 3500, 5000, 6500, 8500, 10000,
+	12000, 13500, 15000, 17000, 19000, 21000, 23000, 25000, 27000, 28500,
+	30000, 32000, 33500, 35000, 37000, 38500, 40000, 42000, 43500, 45000,
+	47000, 48500, 50000, 52000, 53500, 55000, 57000, 58500, 60000, 62000,
+	64000, 66000, 68000, 70000, 71500, 73500, 75000, 77000, 78500, 80000,
+	82000, 83500, 85000, 87000, 88500, 90000, 92000, 93500, 95000, 97000,
+	98500, 100000, 102000, 103500, 105000, 107000, 109000, 111000, 113000,
+	115000, 117000, 118500, 120000, 122000, 123500, 125000,
 };
 
 /* OMAP4430 data */
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/ti-soc-thermal/omap4xxx-bandgap.h
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/ti-soc-thermal/omap4xxx-bandgap.h
@@ -53,9 +53,13 @@
  * and thresholds for OMAP4430.
  */
 
-/* ADC conversion table limits */
-#define OMAP4430_ADC_START_VALUE			0
-#define OMAP4430_ADC_END_VALUE				127
+/*
+ * ADC conversion table limits. Ignore values outside the TRM listed
+ * range to avoid bogus thermal shutdowns. See omap4430 TRM chapter
+ * "18.4.10.2.3 ADC Codes Versus Temperature".
+ */
+#define OMAP4430_ADC_START_VALUE			13
+#define OMAP4430_ADC_END_VALUE				107
 /* bandgap clock limits (no control on 4430) */
 #define OMAP4430_MAX_FREQ				32768
 #define OMAP4430_MIN_FREQ				32768
--- linux-gkeop-5.4-5.4.0.orig/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
+++ linux-gkeop-5.4-5.4.0/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
@@ -169,7 +169,7 @@
 
 	data = ti_bandgap_get_sensor_data(bgp, id);
 
-	if (!data || IS_ERR(data))
+	if (IS_ERR_OR_NULL(data))
 		data = ti_thermal_build_data(bgp, id);
 
 	if (!data)
@@ -196,7 +196,7 @@
 
 	data = ti_bandgap_get_sensor_data(bgp, id);
 
-	if (data && data->ti_thermal) {
+	if (!IS_ERR_OR_NULL(data) && data->ti_thermal) {
 		if (data->our_zone)
 			thermal_zone_device_unregister(data->ti_thermal);
 	}
@@ -262,7 +262,7 @@
 
 	data = ti_bandgap_get_sensor_data(bgp, id);
 
-	if (data) {
+	if (!IS_ERR_OR_NULL(data)) {
 		cpufreq_cooling_unregister(data->cool_dev);
 		if (data->policy)
 			cpufreq_cpu_put(data->policy);
--- linux-gkeop-5.4-5.4.0.orig/drivers/thunderbolt/eeprom.c
+++ linux-gkeop-5.4-5.4.0/drivers/thunderbolt/eeprom.c
@@ -7,6 +7,7 @@
  */
 
 #include <linux/crc32.h>
+#include <linux/delay.h>
 #include <linux/property.h>
 #include <linux/slab.h>
 #include "tb.h"
@@ -386,8 +387,8 @@
 		struct tb_drom_entry_header *entry = (void *) (sw->drom + pos);
 		if (pos + 1 == drom_size || pos + entry->len > drom_size
 				|| !entry->len) {
-			tb_sw_warn(sw, "drom buffer overrun, aborting\n");
-			return -EIO;
+			tb_sw_warn(sw, "DROM buffer overrun\n");
+			return -EILSEQ;
 		}
 
 		switch (entry->type) {
@@ -493,7 +494,8 @@
 	u16 size;
 	u32 crc;
 	struct tb_drom_header *header;
-	int res;
+	int res, retries = 1;
+
 	if (sw->drom)
 		return 0;
 
@@ -581,7 +583,17 @@
 		tb_sw_warn(sw, "drom device_rom_revision %#x unknown\n",
 			header->device_rom_revision);
 
-	return tb_drom_parse_entries(sw);
+	res = tb_drom_parse_entries(sw);
+	/* If the DROM parsing fails, wait a moment and retry once */
+	if (res == -EILSEQ && retries--) {
+		tb_sw_warn(sw, "parsing DROM failed, retrying\n");
+		msleep(100);
+		res = tb_eeprom_read_n(sw, 0, sw->drom, size);
+		if (!res)
+			goto parse;
+	}
+
+	return res;
 err:
 	kfree(sw->drom);
 	sw->drom = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/thunderbolt/icm.c
+++ linux-gkeop-5.4-5.4.0/drivers/thunderbolt/icm.c
@@ -1919,7 +1919,9 @@
 
 static void remove_unplugged_switch(struct tb_switch *sw)
 {
-	pm_runtime_get_sync(sw->dev.parent);
+	struct device *parent = get_device(sw->dev.parent);
+
+	pm_runtime_get_sync(parent);
 
 	/*
 	 * Signal this and switches below for rpm_complete because
@@ -1930,8 +1932,10 @@
 	bus_for_each_dev(&tb_bus_type, &sw->dev, NULL, complete_rpm);
 	tb_switch_remove(sw);
 
-	pm_runtime_mark_last_busy(sw->dev.parent);
-	pm_runtime_put_autosuspend(sw->dev.parent);
+	pm_runtime_mark_last_busy(parent);
+	pm_runtime_put_autosuspend(parent);
+
+	put_device(parent);
 }
 
 static void icm_free_unplugged_children(struct tb_switch *sw)
--- linux-gkeop-5.4-5.4.0.orig/drivers/thunderbolt/nhi.c
+++ linux-gkeop-5.4-5.4.0/drivers/thunderbolt/nhi.c
@@ -410,12 +410,23 @@
 
 	ring->vector = ret;
 
-	ring->irq = pci_irq_vector(ring->nhi->pdev, ring->vector);
-	if (ring->irq < 0)
-		return ring->irq;
+	ret = pci_irq_vector(ring->nhi->pdev, ring->vector);
+	if (ret < 0)
+		goto err_ida_remove;
+
+	ring->irq = ret;
 
 	irqflags = no_suspend ? IRQF_NO_SUSPEND : 0;
-	return request_irq(ring->irq, ring_msix, irqflags, "thunderbolt", ring);
+	ret = request_irq(ring->irq, ring_msix, irqflags, "thunderbolt", ring);
+	if (ret)
+		goto err_ida_remove;
+
+	return 0;
+
+err_ida_remove:
+	ida_simple_remove(&nhi->msix_ida, ring->vector);
+
+	return ret;
 }
 
 static void ring_release_msix(struct tb_ring *ring)
--- linux-gkeop-5.4-5.4.0.orig/drivers/thunderbolt/switch.c
+++ linux-gkeop-5.4-5.4.0/drivers/thunderbolt/switch.c
@@ -168,7 +168,7 @@
 
 static int nvm_authenticate_host(struct tb_switch *sw)
 {
-	int ret;
+	int ret = 0;
 
 	/*
 	 * Root switch NVM upgrade requires that we disconnect the
@@ -176,6 +176,8 @@
 	 * already).
 	 */
 	if (!sw->safe_mode) {
+		u32 status;
+
 		ret = tb_domain_disconnect_all_paths(sw->tb);
 		if (ret)
 			return ret;
@@ -184,7 +186,16 @@
 		 * everything goes well so getting timeout is expected.
 		 */
 		ret = dma_port_flash_update_auth(sw->dma_port);
-		return ret == -ETIMEDOUT ? 0 : ret;
+		if (!ret || ret == -ETIMEDOUT)
+			return 0;
+
+		/*
+		 * Any error from update auth operation requires power
+		 * cycling of the host router.
+		 */
+		tb_sw_warn(sw, "failed to authenticate NVM, power cycling\n");
+		if (dma_port_flash_update_auth_status(sw->dma_port, &status) > 0)
+			nvm_set_auth_status(sw, status);
 	}
 
 	/*
@@ -192,7 +203,7 @@
 	 * switch.
 	 */
 	dma_port_power_cycle(sw->dma_port);
-	return 0;
+	return ret;
 }
 
 static int nvm_authenticate_device(struct tb_switch *sw)
@@ -200,8 +211,16 @@
 	int ret, retries = 10;
 
 	ret = dma_port_flash_update_auth(sw->dma_port);
-	if (ret && ret != -ETIMEDOUT)
+	switch (ret) {
+	case 0:
+	case -ETIMEDOUT:
+	case -EACCES:
+	case -EINVAL:
+		/* Power cycle is required */
+		break;
+	default:
 		return ret;
+	}
 
 	/*
 	 * Poll here for the authentication status. It takes some time
@@ -255,6 +274,12 @@
 	return ret;
 }
 
+static int tb_switch_nvm_no_read(void *priv, unsigned int offset, void *val,
+				 size_t bytes)
+{
+	return -EPERM;
+}
+
 static int tb_switch_nvm_write(void *priv, unsigned int offset, void *val,
 			       size_t bytes)
 {
@@ -300,6 +325,7 @@
 		config.read_only = true;
 	} else {
 		config.name = "nvm_non_active";
+		config.reg_read = tb_switch_nvm_no_read;
 		config.reg_write = tb_switch_nvm_write;
 		config.root_only = true;
 	}
@@ -1246,8 +1272,6 @@
 			 */
 			nvm_authenticate_start(sw);
 			ret = nvm_authenticate_host(sw);
-			if (ret)
-				nvm_authenticate_complete(sw);
 		} else {
 			ret = nvm_authenticate_device(sw);
 		}
@@ -1690,13 +1714,16 @@
 	int ret;
 
 	switch (sw->generation) {
-	case 3:
-		break;
-
 	case 2:
 		/* Only root switch can be upgraded */
 		if (tb_route(sw))
 			return 0;
+
+		/* fallthrough */
+	case 3:
+		ret = tb_switch_set_uuid(sw);
+		if (ret)
+			return ret;
 		break;
 
 	default:
@@ -1721,6 +1748,19 @@
 		return 0;
 
 	/*
+	 * If there is status already set then authentication failed
+	 * when the dma_port_flash_update_auth() returned. Power cycling
+	 * is not needed (it was done already) so only thing we do here
+	 * is to unblock runtime PM of the root port.
+	 */
+	nvm_get_auth_status(sw, &status);
+	if (status) {
+		if (!tb_route(sw))
+			nvm_authenticate_complete(sw);
+		return 0;
+	}
+
+	/*
 	 * Check status of the previous flash authentication. If there
 	 * is one we need to power cycle the switch in any case to make
 	 * it functional again.
@@ -1735,9 +1775,6 @@
 
 	if (status) {
 		tb_sw_info(sw, "switch flash authentication failed\n");
-		ret = tb_switch_set_uuid(sw);
-		if (ret)
-			return ret;
 		nvm_set_auth_status(sw, status);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/thunderbolt/xdomain.c
+++ linux-gkeop-5.4-5.4.0/drivers/thunderbolt/xdomain.c
@@ -830,6 +830,7 @@
 
 		id = ida_simple_get(&xd->service_ids, 0, 0, GFP_KERNEL);
 		if (id < 0) {
+			kfree(svc->key);
 			kfree(svc);
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/ehv_bytechan.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/ehv_bytechan.c
@@ -136,6 +136,21 @@
 	return 1;
 }
 
+static unsigned int local_ev_byte_channel_send(unsigned int handle,
+					       unsigned int *count,
+					       const char *p)
+{
+	char buffer[EV_BYTE_CHANNEL_MAX_BYTES];
+	unsigned int c = *count;
+
+	if (c < sizeof(buffer)) {
+		memcpy(buffer, p, c);
+		memset(&buffer[c], 0, sizeof(buffer) - c);
+		p = buffer;
+	}
+	return ev_byte_channel_send(handle, count, p);
+}
+
 /*************************** EARLY CONSOLE DRIVER ***************************/
 
 #ifdef CONFIG_PPC_EARLY_DEBUG_EHV_BC
@@ -154,7 +169,7 @@
 
 	do {
 		count = 1;
-		ret = ev_byte_channel_send(CONFIG_PPC_EARLY_DEBUG_EHV_BC_HANDLE,
+		ret = local_ev_byte_channel_send(CONFIG_PPC_EARLY_DEBUG_EHV_BC_HANDLE,
 					   &count, &data);
 	} while (ret == EV_EAGAIN);
 }
@@ -221,7 +236,7 @@
 	while (count) {
 		len = min_t(unsigned int, count, EV_BYTE_CHANNEL_MAX_BYTES);
 		do {
-			ret = ev_byte_channel_send(handle, &len, s);
+			ret = local_ev_byte_channel_send(handle, &len, s);
 		} while (ret == EV_EAGAIN);
 		count -= len;
 		s += len;
@@ -401,7 +416,7 @@
 			    CIRC_CNT_TO_END(bc->head, bc->tail, BUF_SIZE),
 			    EV_BYTE_CHANNEL_MAX_BYTES);
 
-		ret = ev_byte_channel_send(bc->handle, &len, bc->buf + bc->tail);
+		ret = local_ev_byte_channel_send(bc->handle, &len, bc->buf + bc->tail);
 
 		/* 'len' is valid only if the return code is 0 or EV_EAGAIN */
 		if (!ret || (ret == EV_EAGAIN))
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/hvc/hvc_console.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/hvc/hvc_console.c
@@ -302,10 +302,6 @@
 	vtermnos[index] = vtermno;
 	cons_ops[index] = ops;
 
-	/* reserve all indices up to and including this index */
-	if (last_hvc < index)
-		last_hvc = index;
-
 	/* check if we need to re-register the kernel console */
 	hvc_check_console(index);
 
@@ -375,15 +371,14 @@
 	 * tty fields and return the kref reference.
 	 */
 	if (rc) {
-		tty_port_tty_set(&hp->port, NULL);
-		tty->driver_data = NULL;
-		tty_port_put(&hp->port);
 		printk(KERN_ERR "hvc_open: request_irq failed with rc %d.\n", rc);
-	} else
+	} else {
 		/* We are ready... raise DTR/RTS */
 		if (C_BAUD(tty))
 			if (hp->ops->dtr_rts)
 				hp->ops->dtr_rts(hp, 1);
+		tty_port_set_initialized(&hp->port, true);
+	}
 
 	/* Force wakeup of the polling thread */
 	hvc_kick();
@@ -393,22 +388,12 @@
 
 static void hvc_close(struct tty_struct *tty, struct file * filp)
 {
-	struct hvc_struct *hp;
+	struct hvc_struct *hp = tty->driver_data;
 	unsigned long flags;
 
 	if (tty_hung_up_p(filp))
 		return;
 
-	/*
-	 * No driver_data means that this close was issued after a failed
-	 * hvc_open by the tty layer's release_dev() function and we can just
-	 * exit cleanly because the kref reference wasn't made.
-	 */
-	if (!tty->driver_data)
-		return;
-
-	hp = tty->driver_data;
-
 	spin_lock_irqsave(&hp->port.lock, flags);
 
 	if (--hp->port.count == 0) {
@@ -416,6 +401,9 @@
 		/* We are done with the tty pointer now. */
 		tty_port_tty_set(&hp->port, NULL);
 
+		if (!tty_port_initialized(&hp->port))
+			return;
+
 		if (C_HUPCL(tty))
 			if (hp->ops->dtr_rts)
 				hp->ops->dtr_rts(hp, 0);
@@ -432,6 +420,7 @@
 		 * waking periodically to check chars_in_buffer().
 		 */
 		tty_wait_until_sent(tty, HVC_CLOSE_WAIT);
+		tty_port_set_initialized(&hp->port, false);
 	} else {
 		if (hp->port.count < 0)
 			printk(KERN_ERR "hvc_close %X: oops, count is %d\n",
@@ -960,13 +949,22 @@
 		    cons_ops[i] == hp->ops)
 			break;
 
-	/* no matching slot, just use a counter */
-	if (i >= MAX_NR_HVC_CONSOLES)
-		i = ++last_hvc;
+	if (i >= MAX_NR_HVC_CONSOLES) {
+
+		/* find 'empty' slot for console */
+		for (i = 0; i < MAX_NR_HVC_CONSOLES && vtermnos[i] != -1; i++) {
+		}
+
+		/* no matching slot, just use a counter */
+		if (i == MAX_NR_HVC_CONSOLES)
+			i = ++last_hvc + MAX_NR_HVC_CONSOLES;
+	}
 
 	hp->index = i;
-	cons_ops[i] = ops;
-	vtermnos[i] = vtermno;
+	if (i < MAX_NR_HVC_CONSOLES) {
+		cons_ops[i] = ops;
+		vtermnos[i] = vtermno;
+	}
 
 	list_add_tail(&(hp->next), &hvc_structs);
 	mutex_unlock(&hvc_structs_mutex);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/hvc/hvcs.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/hvc/hvcs.c
@@ -1218,13 +1218,6 @@
 
 		tty_wait_until_sent(tty, HVCS_CLOSE_WAIT);
 
-		/*
-		 * This line is important because it tells hvcs_open that this
-		 * device needs to be re-configured the next time hvcs_open is
-		 * called.
-		 */
-		tty->driver_data = NULL;
-
 		free_irq(irq, hvcsd);
 		return;
 	} else if (hvcsd->port.count < 0) {
@@ -1239,6 +1232,13 @@
 {
 	struct hvcs_struct *hvcsd = tty->driver_data;
 
+	/*
+	 * This line is important because it tells hvcs_open that this
+	 * device needs to be re-configured the next time hvcs_open is
+	 * called.
+	 */
+	tty->driver_data = NULL;
+
 	tty_port_put(&hvcsd->port);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/ipwireless/network.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/ipwireless/network.c
@@ -117,7 +117,7 @@
 					       skb->len,
 					       notify_packet_sent,
 					       network);
-			if (ret == -1) {
+			if (ret < 0) {
 				skb_pull(skb, 2);
 				return 0;
 			}
@@ -134,7 +134,7 @@
 					       notify_packet_sent,
 					       network);
 			kfree(buf);
-			if (ret == -1)
+			if (ret < 0)
 				return 0;
 		}
 		kfree_skb(skb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/ipwireless/tty.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/ipwireless/tty.c
@@ -218,7 +218,7 @@
 	ret = ipwireless_send_packet(tty->hardware, IPW_CHANNEL_RAS,
 			       buf, count,
 			       ipw_write_packet_sent_callback, tty);
-	if (ret == -1) {
+	if (ret < 0) {
 		mutex_unlock(&tty->ipw_tty_mutex);
 		return 0;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/n_gsm.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/n_gsm.c
@@ -665,11 +665,10 @@
  *	FIXME: lock against link layer control transmissions
  */
 
-static void gsm_data_kick(struct gsm_mux *gsm)
+static void gsm_data_kick(struct gsm_mux *gsm, struct gsm_dlci *dlci)
 {
 	struct gsm_msg *msg, *nmsg;
 	int len;
-	int skip_sof = 0;
 
 	list_for_each_entry_safe(msg, nmsg, &gsm->tx_list, list) {
 		if (gsm->constipated && msg->addr)
@@ -691,18 +690,23 @@
 			print_hex_dump_bytes("gsm_data_kick: ",
 					     DUMP_PREFIX_OFFSET,
 					     gsm->txframe, len);
-
-		if (gsm->output(gsm, gsm->txframe + skip_sof,
-						len - skip_sof) < 0)
+		if (gsm->output(gsm, gsm->txframe, len) < 0)
 			break;
 		/* FIXME: Can eliminate one SOF in many more cases */
 		gsm->tx_bytes -= msg->len;
-		/* For a burst of frames skip the extra SOF within the
-		   burst */
-		skip_sof = 1;
 
 		list_del(&msg->list);
 		kfree(msg);
+
+		if (dlci) {
+			tty_port_tty_wakeup(&dlci->port);
+		} else {
+			int i = 0;
+
+			for (i = 0; i < NUM_DLCI; i++)
+				if (gsm->dlci[i])
+					tty_port_tty_wakeup(&gsm->dlci[i]->port);
+		}
 	}
 }
 
@@ -754,7 +758,7 @@
 	/* Add to the actual output queue */
 	list_add_tail(&msg->list, &gsm->tx_list);
 	gsm->tx_bytes += msg->len;
-	gsm_data_kick(gsm);
+	gsm_data_kick(gsm, dlci);
 }
 
 /**
@@ -1215,7 +1219,7 @@
 		gsm_control_reply(gsm, CMD_FCON, NULL, 0);
 		/* Kick the link in case it is idling */
 		spin_lock_irqsave(&gsm->tx_lock, flags);
-		gsm_data_kick(gsm);
+		gsm_data_kick(gsm, NULL);
 		spin_unlock_irqrestore(&gsm->tx_lock, flags);
 		break;
 	case CMD_FCOFF:
@@ -2525,7 +2529,7 @@
 	/* Queue poll */
 	clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
 	spin_lock_irqsave(&gsm->tx_lock, flags);
-	gsm_data_kick(gsm);
+	gsm_data_kick(gsm, NULL);
 	if (gsm->tx_bytes < TX_THRESH_LO) {
 		gsm_dlci_data_sweep(gsm);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/pty.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/pty.c
@@ -120,10 +120,10 @@
 		spin_lock_irqsave(&to->port->lock, flags);
 		/* Stuff the data into the input queue of the other end */
 		c = tty_insert_flip_string(to->port, buf, c);
+		spin_unlock_irqrestore(&to->port->lock, flags);
 		/* And shovel */
 		if (c)
 			tty_flip_buffer_push(to->port);
-		spin_unlock_irqrestore(&to->port->lock, flags);
 	}
 	return c;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/rocket.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/rocket.c
@@ -632,18 +632,21 @@
 	tty_port_init(&info->port);
 	info->port.ops = &rocket_port_ops;
 	info->flags &= ~ROCKET_MODE_MASK;
-	switch (pc104[board][line]) {
-	case 422:
-		info->flags |= ROCKET_MODE_RS422;
-		break;
-	case 485:
-		info->flags |= ROCKET_MODE_RS485;
-		break;
-	case 232:
-	default:
+	if (board < ARRAY_SIZE(pc104) && line < ARRAY_SIZE(pc104_1))
+		switch (pc104[board][line]) {
+		case 422:
+			info->flags |= ROCKET_MODE_RS422;
+			break;
+		case 485:
+			info->flags |= ROCKET_MODE_RS485;
+			break;
+		case 232:
+		default:
+			info->flags |= ROCKET_MODE_RS232;
+			break;
+		}
+	else
 		info->flags |= ROCKET_MODE_RS232;
-		break;
-	}
 
 	info->intmask = RXF_TRIG | TXFIFO_MT | SRC_INT | DELTA_CD | DELTA_CTS | DELTA_DSR;
 	if (sInitChan(ctlp, &info->channel, aiop, chan) == 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serdev/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serdev/core.c
@@ -582,6 +582,12 @@
 	return AE_OK;
 }
 
+static const struct acpi_device_id serdev_acpi_devices_blacklist[] = {
+	{ "INT3511", 0 },
+	{ "INT3512", 0 },
+	{ },
+};
+
 static acpi_status acpi_serdev_add_device(acpi_handle handle, u32 level,
 				       void *data, void **return_value)
 {
@@ -591,6 +597,10 @@
 	if (acpi_bus_get_device(handle, &adev))
 		return AE_OK;
 
+	/* Skip if black listed */
+	if (!acpi_match_device_ids(adev, serdev_acpi_devices_blacklist))
+		return AE_OK;
+
 	return acpi_serdev_register_device(ctrl, adev);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serdev/serdev-ttyport.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serdev/serdev-ttyport.c
@@ -265,7 +265,6 @@
 					struct device *parent,
 					struct tty_driver *drv, int idx)
 {
-	const struct tty_port_client_operations *old_ops;
 	struct serdev_controller *ctrl;
 	struct serport *serport;
 	int ret;
@@ -284,7 +283,6 @@
 
 	ctrl->ops = &ctrl_ops;
 
-	old_ops = port->client_ops;
 	port->client_ops = &client_ops;
 	port->client_data = ctrl;
 
@@ -297,7 +295,7 @@
 
 err_reset_data:
 	port->client_data = NULL;
-	port->client_ops = old_ops;
+	port->client_ops = &tty_port_default_client_ops;
 	serdev_controller_put(ctrl);
 
 	return ERR_PTR(ret);
@@ -312,8 +310,8 @@
 		return -ENODEV;
 
 	serdev_controller_remove(ctrl);
-	port->client_ops = NULL;
 	port->client_data = NULL;
+	port->client_ops = &tty_port_default_client_ops;
 	serdev_controller_put(ctrl);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_aspeed_vuart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_aspeed_vuart.c
@@ -379,7 +379,6 @@
 		port.port.line = rc;
 
 	port.port.irq = irq_of_parse_and_map(np, 0);
-	port.port.irqflags = IRQF_SHARED;
 	port.port.handle_irq = aspeed_vuart_handle_irq;
 	port.port.iotype = UPIO_MEM;
 	port.port.type = PORT_16550A;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_bcm2835aux.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_bcm2835aux.c
@@ -113,7 +113,7 @@
 {
 	struct bcm2835aux_data *data = platform_get_drvdata(pdev);
 
-	serial8250_unregister_port(data->uart.port.line);
+	serial8250_unregister_port(data->line);
 	clk_disable_unprepare(data->clk);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_core.c
@@ -174,7 +174,7 @@
 	struct hlist_head *h;
 	struct hlist_node *n;
 	struct irq_info *i;
-	int ret, irq_flags = up->port.flags & UPF_SHARE_IRQ ? IRQF_SHARED : 0;
+	int ret;
 
 	mutex_lock(&hash_mutex);
 
@@ -209,9 +209,8 @@
 		INIT_LIST_HEAD(&up->list);
 		i->head = &up->list;
 		spin_unlock_irq(&i->lock);
-		irq_flags |= up->port.irqflags;
 		ret = request_irq(up->port.irq, serial8250_interrupt,
-				  irq_flags, up->port.name, i);
+				  up->port.irqflags, up->port.name, i);
 		if (ret < 0)
 			serial_do_unlink(i, up);
 	}
@@ -525,6 +524,7 @@
 		 */
 		up->mcr_mask = ~ALPHA_KLUDGE_MCR;
 		up->mcr_force = ALPHA_KLUDGE_MCR;
+		serial8250_set_defaults(up);
 	}
 
 	/* chain base port ops to support Remote Supervisor Adapter */
@@ -548,7 +548,6 @@
 		port->membase  = old_serial_port[i].iomem_base;
 		port->iotype   = old_serial_port[i].io_type;
 		port->regshift = old_serial_port[i].iomem_reg_shift;
-		serial8250_set_defaults(up);
 
 		port->irqflags |= irqflag;
 		if (serial8250_isa_config != NULL)
@@ -1027,7 +1026,7 @@
 			gpios = mctrl_gpio_init(&uart->port, 0);
 			if (IS_ERR(gpios)) {
 				ret = PTR_ERR(gpios);
-				goto out_unlock;
+				goto err;
 			} else {
 				uart->gpios = gpios;
 			}
@@ -1076,8 +1075,10 @@
 			serial8250_apply_quirks(uart);
 			ret = uart_add_one_port(&serial8250_reg,
 						&uart->port);
-			if (ret == 0)
-				ret = uart->port.line;
+			if (ret)
+				goto err;
+
+			ret = uart->port.line;
 		} else {
 			dev_info(uart->port.dev,
 				"skipping CIR port at 0x%lx / 0x%llx, IRQ %d\n",
@@ -1099,10 +1100,14 @@
 		}
 	}
 
-out_unlock:
 	mutex_unlock(&serial_mutex);
 
 	return ret;
+
+err:
+	uart->port.dev = NULL;
+	mutex_unlock(&serial_mutex);
+	return ret;
 }
 EXPORT_SYMBOL(serial8250_register_8250_port);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_dw.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_dw.c
@@ -386,10 +386,10 @@
 {
 	struct uart_8250_port uart = {}, *up = &uart;
 	struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	int irq = platform_get_irq(pdev, 0);
 	struct uart_port *p = &up->port;
 	struct device *dev = &pdev->dev;
 	struct dw8250_data *data;
+	int irq;
 	int err;
 	u32 val;
 
@@ -398,11 +398,9 @@
 		return -EINVAL;
 	}
 
-	if (irq < 0) {
-		if (irq != -EPROBE_DEFER)
-			dev_err(dev, "cannot get irq\n");
+	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
 		return irq;
-	}
 
 	spin_lock_init(&p->lock);
 	p->mapbase	= regs->start;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_exar.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_exar.c
@@ -25,6 +25,14 @@
 
 #include "8250.h"
 
+#define PCI_DEVICE_ID_ACCES_COM_2S		0x1052
+#define PCI_DEVICE_ID_ACCES_COM_4S		0x105d
+#define PCI_DEVICE_ID_ACCES_COM_8S		0x106c
+#define PCI_DEVICE_ID_ACCES_COM232_8		0x10a8
+#define PCI_DEVICE_ID_ACCES_COM_2SM		0x10d2
+#define PCI_DEVICE_ID_ACCES_COM_4SM		0x10db
+#define PCI_DEVICE_ID_ACCES_COM_8SM		0x10ea
+
 #define PCI_DEVICE_ID_COMMTECH_4224PCI335	0x0002
 #define PCI_DEVICE_ID_COMMTECH_4222PCI335	0x0004
 #define PCI_DEVICE_ID_COMMTECH_2324PCI335	0x000a
@@ -299,7 +307,17 @@
 	 * devices will export them as GPIOs, so we pre-configure them safely
 	 * as inputs.
 	 */
-	u8 dir = pcidev->vendor == PCI_VENDOR_ID_EXAR ? 0xff : 0x00;
+
+	u8 dir = 0x00;
+
+	if  ((pcidev->vendor == PCI_VENDOR_ID_EXAR) &&
+		(pcidev->subsystem_vendor != PCI_VENDOR_ID_SEALEVEL)) {
+		// Configure GPIO as inputs for Commtech adapters
+		dir = 0xff;
+	} else {
+		// Configure GPIO as outputs for SeaLevel adapters
+		dir = 0x00;
+	}
 
 	writeb(0x00, p + UART_EXAR_MPIOINT_7_0);
 	writeb(0x00, p + UART_EXAR_MPIOLVL_7_0);
@@ -658,6 +676,22 @@
 
 static SIMPLE_DEV_PM_OPS(exar_pci_pm, exar_suspend, exar_resume);
 
+static const struct exar8250_board acces_com_2x = {
+	.num_ports	= 2,
+	.setup		= pci_xr17c154_setup,
+};
+
+static const struct exar8250_board acces_com_4x = {
+	.num_ports	= 4,
+	.setup		= pci_xr17c154_setup,
+};
+
+static const struct exar8250_board acces_com_8x = {
+	.num_ports	= 8,
+	.setup		= pci_xr17c154_setup,
+};
+
+
 static const struct exar8250_board pbn_fastcom335_2 = {
 	.num_ports	= 2,
 	.setup		= pci_fastcom335_setup,
@@ -691,6 +725,24 @@
 	.exit		= pci_xr17v35x_exit,
 };
 
+static const struct exar8250_board pbn_fastcom35x_2 = {
+	.num_ports	= 2,
+	.setup		= pci_xr17v35x_setup,
+	.exit		= pci_xr17v35x_exit,
+};
+
+static const struct exar8250_board pbn_fastcom35x_4 = {
+	.num_ports	= 4,
+	.setup		= pci_xr17v35x_setup,
+	.exit		= pci_xr17v35x_exit,
+};
+
+static const struct exar8250_board pbn_fastcom35x_8 = {
+	.num_ports	= 8,
+	.setup		= pci_xr17v35x_setup,
+	.exit		= pci_xr17v35x_exit,
+};
+
 static const struct exar8250_board pbn_exar_XR17V4358 = {
 	.num_ports	= 12,
 	.setup		= pci_xr17v35x_setup,
@@ -726,6 +778,15 @@
 	}
 
 static const struct pci_device_id exar_pci_tbl[] = {
+	EXAR_DEVICE(ACCESSIO, ACCES_COM_2S, acces_com_2x),
+	EXAR_DEVICE(ACCESSIO, ACCES_COM_4S, acces_com_4x),
+	EXAR_DEVICE(ACCESSIO, ACCES_COM_8S, acces_com_8x),
+	EXAR_DEVICE(ACCESSIO, ACCES_COM232_8, acces_com_8x),
+	EXAR_DEVICE(ACCESSIO, ACCES_COM_2SM, acces_com_2x),
+	EXAR_DEVICE(ACCESSIO, ACCES_COM_4SM, acces_com_4x),
+	EXAR_DEVICE(ACCESSIO, ACCES_COM_8SM, acces_com_8x),
+
+
 	CONNECT_DEVICE(XR17C152, UART_2_232, pbn_connect),
 	CONNECT_DEVICE(XR17C154, UART_4_232, pbn_connect),
 	CONNECT_DEVICE(XR17C158, UART_8_232, pbn_connect),
@@ -752,9 +813,9 @@
 	EXAR_DEVICE(EXAR, EXAR_XR17V358, pbn_exar_XR17V35x),
 	EXAR_DEVICE(EXAR, EXAR_XR17V4358, pbn_exar_XR17V4358),
 	EXAR_DEVICE(EXAR, EXAR_XR17V8358, pbn_exar_XR17V8358),
-	EXAR_DEVICE(COMMTECH, COMMTECH_4222PCIE, pbn_exar_XR17V35x),
-	EXAR_DEVICE(COMMTECH, COMMTECH_4224PCIE, pbn_exar_XR17V35x),
-	EXAR_DEVICE(COMMTECH, COMMTECH_4228PCIE, pbn_exar_XR17V35x),
+	EXAR_DEVICE(COMMTECH, COMMTECH_4222PCIE, pbn_fastcom35x_2),
+	EXAR_DEVICE(COMMTECH, COMMTECH_4224PCIE, pbn_fastcom35x_4),
+	EXAR_DEVICE(COMMTECH, COMMTECH_4228PCIE, pbn_fastcom35x_8),
 
 	EXAR_DEVICE(COMMTECH, COMMTECH_4222PCI335, pbn_fastcom335_2),
 	EXAR_DEVICE(COMMTECH, COMMTECH_4224PCI335, pbn_fastcom335_4),
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_mtk.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_mtk.c
@@ -305,7 +305,20 @@
 	}
 #endif
 
-	serial8250_do_set_termios(port, termios, old);
+	/*
+	 * Store the requested baud rate before calling the generic 8250
+	 * set_termios method. Standard 8250 port expects bauds to be
+	 * no higher than (uartclk / 16) so the baud will be clamped if it
+	 * gets out of that bound. Mediatek 8250 port supports speed
+	 * higher than that, therefore we'll get original baud rate back
+	 * after calling the generic set_termios method and recalculate
+	 * the speed later in this method.
+	 */
+	baud = tty_termios_baud_rate(termios);
+
+	serial8250_do_set_termios(port, termios, NULL);
+
+	tty_termios_encode_baud_rate(termios, baud, baud);
 
 	/*
 	 * Mediatek UARTs use an extra highspeed register (MTK_UART_HIGHS)
@@ -338,6 +351,11 @@
 	 */
 	spin_lock_irqsave(&port->lock, flags);
 
+	/*
+	 * Update the per-port timeout.
+	 */
+	uart_update_timeout(port, termios->c_cflag, baud);
+
 	/* set DLAB we have cval saved in up->lcr from the call to the core */
 	serial_port_out(port, UART_LCR, up->lcr | UART_LCR_DLAB);
 	serial_dl_write(up, quot);
@@ -544,7 +562,7 @@
 	pm_runtime_set_active(&pdev->dev);
 	pm_runtime_enable(&pdev->dev);
 
-	data->rx_wakeup_irq = platform_get_irq(pdev, 1);
+	data->rx_wakeup_irq = platform_get_irq_optional(pdev, 1);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_of.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_of.c
@@ -172,7 +172,6 @@
 
 	port->type = type;
 	port->uartclk = clk;
-	port->irqflags |= IRQF_SHARED;
 
 	if (of_property_read_bool(np, "no-loopback-test"))
 		port->flags |= UPF_SKIP_TEST;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_omap.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_omap.c
@@ -170,11 +170,6 @@
 				     struct omap8250_priv *priv)
 {
 	u8 timeout = 255;
-	u8 old_mdr1;
-
-	old_mdr1 = serial_in(up, UART_OMAP_MDR1);
-	if (old_mdr1 == priv->mdr1)
-		return;
 
 	serial_out(up, UART_OMAP_MDR1, priv->mdr1);
 	udelay(2);
@@ -790,7 +785,10 @@
 	dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state);
 
 	count = dma->rx_size - state.residue;
-
+	if (count < dma->rx_size)
+		dmaengine_terminate_async(dma->rxchan);
+	if (!count)
+		goto unlock;
 	ret = tty_insert_flip_string(tty_port, dma->rx_buf, count);
 
 	p->port.icount.rx += ret;
@@ -852,7 +850,6 @@
 	spin_unlock_irqrestore(&priv->rx_dma_lock, flags);
 
 	__dma_rx_do_complete(p);
-	dmaengine_terminate_all(dma->rxchan);
 }
 
 static int omap_8250_rx_dma(struct uart_8250_port *p)
@@ -1234,6 +1231,7 @@
 	spin_lock_init(&priv->rx_dma_lock);
 
 	device_init_wakeup(&pdev->dev, true);
+	pm_runtime_enable(&pdev->dev);
 	pm_runtime_use_autosuspend(&pdev->dev);
 
 	/*
@@ -1247,7 +1245,6 @@
 		pm_runtime_set_autosuspend_delay(&pdev->dev, -1);
 
 	pm_runtime_irq_safe(&pdev->dev);
-	pm_runtime_enable(&pdev->dev);
 
 	pm_runtime_get_sync(&pdev->dev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_pci.c
@@ -745,16 +745,8 @@
 }
 
 /* UART Port Control Register */
-#define NI16550_PCR_OFFSET	0x0f
-#define NI16550_PCR_RS422	0x00
-#define NI16550_PCR_ECHO_RS485	0x01
-#define NI16550_PCR_DTR_RS485	0x02
-#define NI16550_PCR_AUTO_RS485	0x03
-#define NI16550_PCR_WIRE_MODE_MASK	0x03
-#define NI16550_PCR_TXVR_ENABLE_BIT	BIT(3)
-#define NI16550_PCR_RS485_TERMINATION_BIT	BIT(6)
-#define NI16550_ACR_DTR_AUTO_DTR	(0x2 << 3)
-#define NI16550_ACR_DTR_MANUAL_DTR	(0x0 << 3)
+#define NI8430_PORTCON	0x0f
+#define NI8430_PORTCON_TXVR_ENABLE	(1 << 3)
 
 static int
 pci_ni8430_setup(struct serial_private *priv,
@@ -776,117 +768,14 @@
 		return -ENOMEM;
 
 	/* enable the transceiver */
-	writeb(readb(p + offset + NI16550_PCR_OFFSET) | NI16550_PCR_TXVR_ENABLE_BIT,
-	       p + offset + NI16550_PCR_OFFSET);
+	writeb(readb(p + offset + NI8430_PORTCON) | NI8430_PORTCON_TXVR_ENABLE,
+	       p + offset + NI8430_PORTCON);
 
 	iounmap(p);
 
 	return setup_port(priv, port, bar, offset, board->reg_shift);
 }
 
-static int pci_ni8431_config_rs485(struct uart_port *port,
-	struct serial_rs485 *rs485)
-{
-	u8 pcr, acr;
-	struct uart_8250_port *up;
-
-	up = container_of(port, struct uart_8250_port, port);
-	acr = up->acr;
-	pcr = port->serial_in(port, NI16550_PCR_OFFSET);
-	pcr &= ~NI16550_PCR_WIRE_MODE_MASK;
-
-	if (rs485->flags & SER_RS485_ENABLED) {
-		/* RS-485 */
-		if ((rs485->flags & SER_RS485_RX_DURING_TX) &&
-			(rs485->flags & SER_RS485_RTS_ON_SEND)) {
-			dev_dbg(port->dev, "Invalid 2-wire mode\n");
-			return -EINVAL;
-		}
-
-		if (rs485->flags & SER_RS485_RX_DURING_TX) {
-			/* Echo */
-			dev_vdbg(port->dev, "2-wire DTR with echo\n");
-			pcr |= NI16550_PCR_ECHO_RS485;
-			acr |= NI16550_ACR_DTR_MANUAL_DTR;
-		} else {
-			/* Auto or DTR */
-			if (rs485->flags & SER_RS485_RTS_ON_SEND) {
-				/* Auto */
-				dev_vdbg(port->dev, "2-wire Auto\n");
-				pcr |= NI16550_PCR_AUTO_RS485;
-				acr |= NI16550_ACR_DTR_AUTO_DTR;
-			} else {
-				/* DTR-controlled */
-				/* No Echo */
-				dev_vdbg(port->dev, "2-wire DTR no echo\n");
-				pcr |= NI16550_PCR_DTR_RS485;
-				acr |= NI16550_ACR_DTR_MANUAL_DTR;
-			}
-		}
-	} else {
-		/* RS-422 */
-		dev_vdbg(port->dev, "4-wire\n");
-		pcr |= NI16550_PCR_RS422;
-		acr |= NI16550_ACR_DTR_MANUAL_DTR;
-	}
-
-	dev_dbg(port->dev, "write pcr: 0x%08x\n", pcr);
-	port->serial_out(port, NI16550_PCR_OFFSET, pcr);
-
-	up->acr = acr;
-	port->serial_out(port, UART_SCR, UART_ACR);
-	port->serial_out(port, UART_ICR, up->acr);
-
-	/* Update the cache. */
-	port->rs485 = *rs485;
-
-	return 0;
-}
-
-static int pci_ni8431_setup(struct serial_private *priv,
-		 const struct pciserial_board *board,
-		 struct uart_8250_port *uart, int idx)
-{
-	u8 pcr, acr;
-	struct pci_dev *dev = priv->dev;
-	void __iomem *addr;
-	unsigned int bar, offset = board->first_offset;
-
-	if (idx >= board->num_ports)
-		return 1;
-
-	bar = FL_GET_BASE(board->flags);
-	offset += idx * board->uart_offset;
-
-	addr = pci_ioremap_bar(dev, bar);
-	if (!addr)
-		return -ENOMEM;
-
-	/* enable the transceiver */
-	writeb(readb(addr + NI16550_PCR_OFFSET) | NI16550_PCR_TXVR_ENABLE_BIT,
-		addr + NI16550_PCR_OFFSET);
-
-	pcr = readb(addr + NI16550_PCR_OFFSET);
-	pcr &= ~NI16550_PCR_WIRE_MODE_MASK;
-
-	/* set wire mode to default RS-422 */
-	pcr |= NI16550_PCR_RS422;
-	acr = NI16550_ACR_DTR_MANUAL_DTR;
-
-	/* write port configuration to register */
-	writeb(pcr, addr + NI16550_PCR_OFFSET);
-
-	/* access and write to UART acr register */
-	writeb(UART_ACR, addr + UART_SCR);
-	writeb(acr, addr + UART_ICR);
-
-	uart->port.rs485_config = &pci_ni8431_config_rs485;
-
-	iounmap(addr);
-
-	return setup_port(priv, uart, bar, offset, board->reg_shift);
-}
-
 static int pci_netmos_9900_setup(struct serial_private *priv,
 				const struct pciserial_board *board,
 				struct uart_8250_port *port, int idx)
@@ -1982,12 +1871,6 @@
 #define PCIE_DEVICE_ID_WCH_CH384_4S	0x3470
 #define PCIE_DEVICE_ID_WCH_CH382_2S	0x3253
 
-#define PCI_VENDOR_ID_PERICOM			0x12D8
-#define PCI_DEVICE_ID_PERICOM_PI7C9X7951	0x7951
-#define PCI_DEVICE_ID_PERICOM_PI7C9X7952	0x7952
-#define PCI_DEVICE_ID_PERICOM_PI7C9X7954	0x7954
-#define PCI_DEVICE_ID_PERICOM_PI7C9X7958	0x7958
-
 #define PCI_VENDOR_ID_ACCESIO			0x494f
 #define PCI_DEVICE_ID_ACCESIO_PCIE_COM_2SDB	0x1051
 #define PCI_DEVICE_ID_ACCESIO_MPCIE_COM_2S	0x1053
@@ -2023,15 +1906,6 @@
 #define PCI_DEVICE_ID_ACCESIO_PCIE_COM_8SM	0x10E9
 #define PCI_DEVICE_ID_ACCESIO_PCIE_ICM_4SM	0x11D8
 
-#define PCIE_DEVICE_ID_NI_PXIE8430_2328	0x74C2
-#define PCIE_DEVICE_ID_NI_PXIE8430_23216	0x74C1
-#define PCI_DEVICE_ID_NI_PXI8431_4852	0x7081
-#define PCI_DEVICE_ID_NI_PXI8431_4854	0x70DE
-#define PCI_DEVICE_ID_NI_PXI8431_4858	0x70E3
-#define PCI_DEVICE_ID_NI_PXI8433_4852	0x70E9
-#define PCI_DEVICE_ID_NI_PXI8433_4854	0x70ED
-#define PCIE_DEVICE_ID_NI_PXIE8431_4858	0x74C4
-#define PCIE_DEVICE_ID_NI_PXIE8431_48516	0x74C3
 
 #define	PCI_DEVICE_ID_MOXA_CP102E	0x1024
 #define	PCI_DEVICE_ID_MOXA_CP102EL	0x1025
@@ -2269,87 +2143,6 @@
 		.setup		= pci_ni8430_setup,
 		.exit		= pci_ni8430_exit,
 	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCIE_DEVICE_ID_NI_PXIE8430_2328,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8430_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCIE_DEVICE_ID_NI_PXIE8430_23216,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8430_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCI_DEVICE_ID_NI_PXI8431_4852,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCI_DEVICE_ID_NI_PXI8431_4854,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCI_DEVICE_ID_NI_PXI8431_4858,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCI_DEVICE_ID_NI_PXI8433_4852,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCI_DEVICE_ID_NI_PXI8433_4854,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCIE_DEVICE_ID_NI_PXIE8431_4858,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
-	{
-		.vendor		= PCI_VENDOR_ID_NI,
-		.device		= PCIE_DEVICE_ID_NI_PXIE8431_48516,
-		.subvendor	= PCI_ANY_ID,
-		.subdevice	= PCI_ANY_ID,
-		.init		= pci_ni8430_init,
-		.setup		= pci_ni8431_setup,
-		.exit		= pci_ni8430_exit,
-	},
 	/* Quatech */
 	{
 		.vendor		= PCI_VENDOR_ID_QUATECH,
@@ -3106,13 +2899,6 @@
 	pbn_ni8430_4,
 	pbn_ni8430_8,
 	pbn_ni8430_16,
-	pbn_ni8430_pxie_8,
-	pbn_ni8430_pxie_16,
-	pbn_ni8431_2,
-	pbn_ni8431_4,
-	pbn_ni8431_8,
-	pbn_ni8431_pxie_8,
-	pbn_ni8431_pxie_16,
 	pbn_ADDIDATA_PCIe_1_3906250,
 	pbn_ADDIDATA_PCIe_2_3906250,
 	pbn_ADDIDATA_PCIe_4_3906250,
@@ -3765,55 +3551,6 @@
 		.uart_offset	= 0x10,
 		.first_offset	= 0x800,
 	},
-	[pbn_ni8430_pxie_16] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 16,
-		.base_baud	= 3125000,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
-	[pbn_ni8430_pxie_8] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 8,
-		.base_baud	= 3125000,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
-	[pbn_ni8431_8] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 8,
-		.base_baud	= 3686400,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
-	[pbn_ni8431_4] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 4,
-		.base_baud	= 3686400,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
-	[pbn_ni8431_2] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 2,
-		.base_baud	= 3686400,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
-	[pbn_ni8431_pxie_16] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 16,
-		.base_baud	= 3125000,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
-	[pbn_ni8431_pxie_8] = {
-		.flags		= FL_BASE0,
-		.num_ports	= 8,
-		.base_baud	= 3125000,
-		.uart_offset	= 0x10,
-		.first_offset	= 0x800,
-	},
 	/*
 	 * ADDI-DATA GmbH PCI-Express communication cards <info@addi-data.com>
 	 */
@@ -5567,33 +5304,6 @@
 	{	PCI_VENDOR_ID_NI, PCI_DEVICE_ID_NI_PCI8432_2324,
 		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
 		pbn_ni8430_4 },
-	{	PCI_VENDOR_ID_NI, PCIE_DEVICE_ID_NI_PXIE8430_2328,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8430_pxie_8 },
-	{	PCI_VENDOR_ID_NI, PCIE_DEVICE_ID_NI_PXIE8430_23216,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8430_pxie_16 },
-	{	PCI_VENDOR_ID_NI, PCI_DEVICE_ID_NI_PXI8431_4852,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_2 },
-	{	PCI_VENDOR_ID_NI, PCI_DEVICE_ID_NI_PXI8431_4854,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_4 },
-	{	PCI_VENDOR_ID_NI, PCI_DEVICE_ID_NI_PXI8431_4858,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_8 },
-	{	PCI_VENDOR_ID_NI, PCIE_DEVICE_ID_NI_PXIE8431_4858,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_pxie_8 },
-	{	PCI_VENDOR_ID_NI, PCIE_DEVICE_ID_NI_PXIE8431_48516,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_pxie_16 },
-	{	PCI_VENDOR_ID_NI, PCI_DEVICE_ID_NI_PXI8433_4852,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_2 },
-	{	PCI_VENDOR_ID_NI, PCI_DEVICE_ID_NI_PXI8433_4854,
-		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
-		pbn_ni8431_4 },
 
 	/*
 	 * MOXA
@@ -5858,6 +5568,17 @@
 		PCI_ANY_ID, PCI_ANY_ID,
 		0, 0, pbn_wch384_4 },
 
+	/*
+	 * Realtek RealManage
+	 */
+	{	PCI_VENDOR_ID_REALTEK, 0x816a,
+		PCI_ANY_ID, PCI_ANY_ID,
+		0, 0, pbn_b0_1_115200 },
+
+	{	PCI_VENDOR_ID_REALTEK, 0x816b,
+		PCI_ANY_ID, PCI_ANY_ID,
+		0, 0, pbn_b0_1_115200 },
+
 	/* Fintek PCI serial cards */
 	{ PCI_DEVICE(0x1c29, 0x1104), .driver_data = pbn_fintek_4 },
 	{ PCI_DEVICE(0x1c29, 0x1108), .driver_data = pbn_fintek_8 },
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/8250/8250_port.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/8250/8250_port.c
@@ -1816,6 +1816,7 @@
 	unsigned char status;
 	unsigned long flags;
 	struct uart_8250_port *up = up_to_u8250p(port);
+	bool skip_rx = false;
 
 	if (iir & UART_IIR_NO_INT)
 		return 0;
@@ -1824,7 +1825,20 @@
 
 	status = serial_port_in(port, UART_LSR);
 
-	if (status & (UART_LSR_DR | UART_LSR_BI)) {
+	/*
+	 * If port is stopped and there are no error conditions in the
+	 * FIFO, then don't drain the FIFO, as this may lead to TTY buffer
+	 * overflow. Not servicing, RX FIFO would trigger auto HW flow
+	 * control when FIFO occupancy reaches preset threshold, thus
+	 * halting RX. This only works when auto HW flow control is
+	 * available.
+	 */
+	if (!(status & (UART_LSR_FIFOE | UART_LSR_BRK_ERROR_BITS)) &&
+	    (port->status & (UPSTAT_AUTOCTS | UPSTAT_AUTORTS)) &&
+	    !(port->read_status_mask & UART_LSR_DR))
+		skip_rx = true;
+
+	if (status & (UART_LSR_DR | UART_LSR_BI) && !skip_rx) {
 		if (!up->dma || handle_rx_dma(up, iir))
 			status = serial8250_rx_chars(up, status);
 	}
@@ -2192,8 +2206,16 @@
 		}
 	}
 
+	/* Check if we need to have shared IRQs */
+	if (port->irq && (up->port.flags & UPF_SHARE_IRQ))
+		up->port.irqflags |= IRQF_SHARED;
+
 	if (port->irq && !(up->port.flags & UPF_NO_THRE_TEST)) {
 		unsigned char iir1;
+
+		if (port->irqflags & IRQF_SHARED)
+			disable_irq_nosync(port->irq);
+
 		/*
 		 * Test for UARTs that do not reassert THRE when the
 		 * transmitter is idle and the interrupt has already
@@ -2203,8 +2225,6 @@
 		 * allow register changes to become visible.
 		 */
 		spin_lock_irqsave(&port->lock, flags);
-		if (up->port.irqflags & IRQF_SHARED)
-			disable_irq_nosync(port->irq);
 
 		wait_for_xmitr(up, UART_LSR_THRE);
 		serial_port_out_sync(port, UART_IER, UART_IER_THRI);
@@ -2216,9 +2236,10 @@
 		iir = serial_port_in(port, UART_IIR);
 		serial_port_out(port, UART_IER, 0);
 
+		spin_unlock_irqrestore(&port->lock, flags);
+
 		if (port->irqflags & IRQF_SHARED)
 			enable_irq(port->irq);
-		spin_unlock_irqrestore(&port->lock, flags);
 
 		/*
 		 * If the interrupt is not reasserted, or we otherwise
@@ -2535,6 +2556,8 @@
 					     struct ktermios *termios,
 					     struct ktermios *old)
 {
+	unsigned int tolerance = port->uartclk / 100;
+
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 * Allow 1% tolerance at the upper limit so uart clks marginally
@@ -2543,7 +2566,7 @@
 	 */
 	return uart_get_baud_rate(port, termios, old,
 				  port->uartclk / 16 / UART_DIV_MAX,
-				  port->uartclk);
+				  (port->uartclk + tolerance) / 16);
 }
 
 void
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/Kconfig
@@ -10,6 +10,7 @@
 
 config SERIAL_EARLYCON
 	bool
+	depends on SERIAL_CORE
 	help
 	  Support for early consoles with the earlycon parameter. This enables
 	  the console before standard serial driver is probed. The console is
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/amba-pl011.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/amba-pl011.c
@@ -313,8 +313,9 @@
  */
 static int pl011_fifo_to_tty(struct uart_amba_port *uap)
 {
-	u16 status;
 	unsigned int ch, flag, fifotaken;
+	int sysrq;
+	u16 status;
 
 	for (fifotaken = 0; fifotaken != 256; fifotaken++) {
 		status = pl011_read(uap, REG_FR);
@@ -349,10 +350,12 @@
 				flag = TTY_FRAME;
 		}
 
-		if (uart_handle_sysrq_char(&uap->port, ch & 255))
-			continue;
+		spin_unlock(&uap->port.lock);
+		sysrq = uart_handle_sysrq_char(&uap->port, ch & 255);
+		spin_lock(&uap->port.lock);
 
-		uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag);
+		if (!sysrq)
+			uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag);
 	}
 
 	return fifotaken;
@@ -813,10 +816,8 @@
 	if (!uap->using_tx_dma)
 		return;
 
-	/* Avoid deadlock with the DMA engine callback */
-	spin_unlock(&uap->port.lock);
-	dmaengine_terminate_all(uap->dmatx.chan);
-	spin_lock(&uap->port.lock);
+	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);
@@ -2254,9 +2255,8 @@
 	clk_disable(uap->clk);
 }
 
-static void __init
-pl011_console_get_options(struct uart_amba_port *uap, int *baud,
-			     int *parity, int *bits)
+static void pl011_console_get_options(struct uart_amba_port *uap, int *baud,
+				      int *parity, int *bits)
 {
 	if (pl011_read(uap, REG_CR) & UART01x_CR_UARTEN) {
 		unsigned int lcr_h, ibrd, fbrd;
@@ -2289,7 +2289,7 @@
 	}
 }
 
-static int __init pl011_console_setup(struct console *co, char *options)
+static int pl011_console_setup(struct console *co, char *options)
 {
 	struct uart_amba_port *uap;
 	int baud = 38400;
@@ -2357,8 +2357,8 @@
  *
  *	Returns 0 if console matches; otherwise non-zero to use default matching
  */
-static int __init pl011_console_match(struct console *co, char *name, int idx,
-				      char *options)
+static int pl011_console_match(struct console *co, char *name, int idx,
+			       char *options)
 {
 	unsigned char iotype;
 	resource_size_t addr;
@@ -2587,6 +2587,7 @@
 	uap->port.fifosize = uap->fifosize;
 	uap->port.flags = UPF_BOOT_AUTOCONF;
 	uap->port.line = index;
+	spin_lock_init(&uap->port.lock);
 
 	amba_ports[index] = uap;
 
@@ -2595,7 +2596,7 @@
 
 static int pl011_register_port(struct uart_amba_port *uap)
 {
-	int ret;
+	int ret, i;
 
 	/* Ensure interrupts from this UART are masked and cleared */
 	pl011_write(0, uap, REG_IMSC);
@@ -2606,6 +2607,9 @@
 		if (ret < 0) {
 			dev_err(uap->port.dev,
 				"Failed to register AMBA-PL011 driver\n");
+			for (i = 0; i < ARRAY_SIZE(amba_ports); i++)
+				if (amba_ports[i] == uap)
+					amba_ports[i] = NULL;
 			return ret;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/ar933x_uart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/ar933x_uart.c
@@ -286,6 +286,10 @@
 	ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
 			    AR933X_UART_CS_HOST_INT_EN);
 
+	/* enable RX and TX ready overide */
+	ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
+		AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
+
 	/* reenable the UART */
 	ar933x_uart_rmw(up, AR933X_UART_CS_REG,
 			AR933X_UART_CS_IF_MODE_M << AR933X_UART_CS_IF_MODE_S,
@@ -418,6 +422,10 @@
 	ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
 			    AR933X_UART_CS_HOST_INT_EN);
 
+	/* enable RX and TX ready overide */
+	ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
+		AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
+
 	/* Enable RX interrupts */
 	up->ier = AR933X_UART_INT_RX_VALID;
 	ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/atmel_serial.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/atmel_serial.c
@@ -574,7 +574,8 @@
 	atmel_uart_writel(port, ATMEL_US_IDR, atmel_port->tx_done_mask);
 
 	if (atmel_uart_is_half_duplex(port))
-		atmel_start_rx(port);
+		if (!atomic_read(&atmel_port->tasklet_shutdown))
+			atmel_start_rx(port);
 
 }
 
@@ -2270,27 +2271,6 @@
 		mode |= ATMEL_US_USMODE_NORMAL;
 	}
 
-	/* set the mode, clock divisor, parity, stop bits and data size */
-	atmel_uart_writel(port, ATMEL_US_MR, mode);
-
-	/*
-	 * when switching the mode, set the RTS line state according to the
-	 * new mode, otherwise keep the former state
-	 */
-	if ((old_mode & ATMEL_US_USMODE) != (mode & ATMEL_US_USMODE)) {
-		unsigned int rts_state;
-
-		if ((mode & ATMEL_US_USMODE) == ATMEL_US_USMODE_HWHS) {
-			/* let the hardware control the RTS line */
-			rts_state = ATMEL_US_RTSDIS;
-		} else {
-			/* force RTS line to low level */
-			rts_state = ATMEL_US_RTSEN;
-		}
-
-		atmel_uart_writel(port, ATMEL_US_CR, rts_state);
-	}
-
 	/*
 	 * Set the baud rate:
 	 * Fractional baudrate allows to setup output frequency more
@@ -2317,6 +2297,28 @@
 
 	if (!(port->iso7816.flags & SER_ISO7816_ENABLED))
 		atmel_uart_writel(port, ATMEL_US_BRGR, quot);
+
+	/* set the mode, clock divisor, parity, stop bits and data size */
+	atmel_uart_writel(port, ATMEL_US_MR, mode);
+
+	/*
+	 * when switching the mode, set the RTS line state according to the
+	 * new mode, otherwise keep the former state
+	 */
+	if ((old_mode & ATMEL_US_USMODE) != (mode & ATMEL_US_USMODE)) {
+		unsigned int rts_state;
+
+		if ((mode & ATMEL_US_USMODE) == ATMEL_US_USMODE_HWHS) {
+			/* let the hardware control the RTS line */
+			rts_state = ATMEL_US_RTSDIS;
+		} else {
+			/* force RTS line to low level */
+			rts_state = ATMEL_US_RTSEN;
+		}
+
+		atmel_uart_writel(port, ATMEL_US_CR, rts_state);
+	}
+
 	atmel_uart_writel(port, ATMEL_US_CR, ATMEL_US_RSTSTA | ATMEL_US_RSTRX);
 	atmel_uart_writel(port, ATMEL_US_CR, ATMEL_US_TXEN | ATMEL_US_RXEN);
 	atmel_port->tx_stopped = false;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/fsl_lpuart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/fsl_lpuart.c
@@ -238,6 +238,7 @@
 enum lpuart_type {
 	VF610_LPUART,
 	LS1021A_LPUART,
+	LS1028A_LPUART,
 	IMX7ULP_LPUART,
 	IMX8QXP_LPUART,
 };
@@ -268,6 +269,7 @@
 	int			rx_dma_rng_buf_len;
 	unsigned int		dma_tx_nents;
 	wait_queue_head_t	dma_wait;
+	bool			id_allocated;
 };
 
 struct lpuart_soc_data {
@@ -281,11 +283,16 @@
 	.iotype = UPIO_MEM,
 };
 
-static const struct lpuart_soc_data ls_data = {
+static const struct lpuart_soc_data ls1021a_data = {
 	.devtype = LS1021A_LPUART,
 	.iotype = UPIO_MEM32BE,
 };
 
+static const struct lpuart_soc_data ls1028a_data = {
+	.devtype = LS1028A_LPUART,
+	.iotype = UPIO_MEM32,
+};
+
 static struct lpuart_soc_data imx7ulp_data = {
 	.devtype = IMX7ULP_LPUART,
 	.iotype = UPIO_MEM32,
@@ -300,7 +307,8 @@
 
 static const struct of_device_id lpuart_dt_ids[] = {
 	{ .compatible = "fsl,vf610-lpuart",	.data = &vf_data, },
-	{ .compatible = "fsl,ls1021a-lpuart",	.data = &ls_data, },
+	{ .compatible = "fsl,ls1021a-lpuart",	.data = &ls1021a_data, },
+	{ .compatible = "fsl,ls1028a-lpuart",	.data = &ls1028a_data, },
 	{ .compatible = "fsl,imx7ulp-lpuart",	.data = &imx7ulp_data, },
 	{ .compatible = "fsl,imx8qxp-lpuart",	.data = &imx8qxp_data, },
 	{ /* sentinel */ }
@@ -310,6 +318,12 @@
 /* Forward declare this for the dma callbacks*/
 static void lpuart_dma_tx_complete(void *arg);
 
+static inline bool is_layerscape_lpuart(struct lpuart_port *sport)
+{
+	return (sport->devtype == LS1021A_LPUART ||
+		sport->devtype == LS1028A_LPUART);
+}
+
 static inline bool is_imx8qxp_lpuart(struct lpuart_port *sport)
 {
 	return sport->devtype == IMX8QXP_LPUART;
@@ -437,8 +451,8 @@
 	}
 
 	sport->dma_tx_desc = dmaengine_prep_slave_sg(sport->dma_tx_chan, sgl,
-					sport->dma_tx_nents,
-					DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT);
+					ret, DMA_MEM_TO_DEV,
+					DMA_PREP_INTERRUPT);
 	if (!sport->dma_tx_desc) {
 		dma_unmap_sg(dev, sgl, sport->dma_tx_nents, DMA_TO_DEVICE);
 		dev_err(dev, "Cannot prepare TX slave DMA!\n");
@@ -634,26 +648,24 @@
 	spin_lock_irqsave(&sport->port.lock, flags);
 
 	/* Disable Rx & Tx */
-	lpuart32_write(&sport->port, UARTCTRL, 0);
+	lpuart32_write(&sport->port, 0, UARTCTRL);
 
 	temp = lpuart32_read(&sport->port, UARTFIFO);
 
 	/* Enable Rx and Tx FIFO */
-	lpuart32_write(&sport->port, UARTFIFO,
-		       temp | UARTFIFO_RXFE | UARTFIFO_TXFE);
+	lpuart32_write(&sport->port, temp | UARTFIFO_RXFE | UARTFIFO_TXFE, UARTFIFO);
 
 	/* flush Tx and Rx FIFO */
-	lpuart32_write(&sport->port, UARTFIFO,
-		       UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH);
+	lpuart32_write(&sport->port, UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH, UARTFIFO);
 
 	/* explicitly clear RDRF */
 	if (lpuart32_read(&sport->port, UARTSTAT) & UARTSTAT_RDRF) {
 		lpuart32_read(&sport->port, UARTDATA);
-		lpuart32_write(&sport->port, UARTFIFO, UARTFIFO_RXUF);
+		lpuart32_write(&sport->port, UARTFIFO_RXUF, UARTFIFO);
 	}
 
 	/* Enable Rx and Tx */
-	lpuart32_write(&sport->port, UARTCTRL, UARTCTRL_RE | UARTCTRL_TE);
+	lpuart32_write(&sport->port, UARTCTRL_RE | UARTCTRL_TE, UARTCTRL);
 	spin_unlock_irqrestore(&sport->port.lock, flags);
 
 	return 0;
@@ -662,12 +674,12 @@
 static void lpuart32_poll_put_char(struct uart_port *port, unsigned char c)
 {
 	lpuart32_wait_bit_set(port, UARTSTAT, UARTSTAT_TDRE);
-	lpuart32_write(port, UARTDATA, c);
+	lpuart32_write(port, c, UARTDATA);
 }
 
 static int lpuart32_poll_get_char(struct uart_port *port)
 {
-	if (!(lpuart32_read(port, UARTSTAT) & UARTSTAT_RDRF))
+	if (!(lpuart32_read(port, UARTWATER) >> UARTWATER_RXCNT_OFF))
 		return NO_POLL_CHAR;
 
 	return lpuart32_read(port, UARTDATA);
@@ -1554,6 +1566,17 @@
 	sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTFIFO_RXSIZE_OFF) &
 					    UARTFIFO_FIFOSIZE_MASK);
 
+	/*
+	 * The LS1021A and LS1028A have a fixed FIFO depth of 16 words.
+	 * Although they support the RX/TXSIZE fields, their encoding is
+	 * different. Eg the reference manual states 0b101 is 16 words.
+	 */
+	if (is_layerscape_lpuart(sport)) {
+		sport->rxfifo_size = 16;
+		sport->txfifo_size = 16;
+		sport->port.fifosize = sport->txfifo_size;
+	}
+
 	spin_lock_irqsave(&sport->port.lock, flags);
 
 	lpuart32_setup_watermark_enable(sport);
@@ -2382,19 +2405,6 @@
 	if (!sport)
 		return -ENOMEM;
 
-	ret = of_alias_get_id(np, "serial");
-	if (ret < 0) {
-		ret = ida_simple_get(&fsl_lpuart_ida, 0, UART_NR, GFP_KERNEL);
-		if (ret < 0) {
-			dev_err(&pdev->dev, "port line is full, add device failed\n");
-			return ret;
-		}
-	}
-	if (ret >= ARRAY_SIZE(lpuart_ports)) {
-		dev_err(&pdev->dev, "serial%d out of range\n", ret);
-		return -EINVAL;
-	}
-	sport->port.line = ret;
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	sport->port.membase = devm_ioremap_resource(&pdev->dev, res);
 	if (IS_ERR(sport->port.membase))
@@ -2435,9 +2445,25 @@
 		}
 	}
 
+	ret = of_alias_get_id(np, "serial");
+	if (ret < 0) {
+		ret = ida_simple_get(&fsl_lpuart_ida, 0, UART_NR, GFP_KERNEL);
+		if (ret < 0) {
+			dev_err(&pdev->dev, "port line is full, add device failed\n");
+			return ret;
+		}
+		sport->id_allocated = true;
+	}
+	if (ret >= ARRAY_SIZE(lpuart_ports)) {
+		dev_err(&pdev->dev, "serial%d out of range\n", ret);
+		ret = -EINVAL;
+		goto failed_out_of_range;
+	}
+	sport->port.line = ret;
+
 	ret = lpuart_enable_clks(sport);
 	if (ret)
-		return ret;
+		goto failed_clock_enable;
 	sport->port.uartclk = lpuart_get_baud_clk_rate(sport);
 
 	lpuart_ports[sport->port.line] = sport;
@@ -2487,6 +2513,10 @@
 failed_attach_port:
 failed_irq_request:
 	lpuart_disable_clks(sport);
+failed_clock_enable:
+failed_out_of_range:
+	if (sport->id_allocated)
+		ida_simple_remove(&fsl_lpuart_ida, sport->port.line);
 	return ret;
 }
 
@@ -2496,7 +2526,8 @@
 
 	uart_remove_one_port(&lpuart_reg, &sport->port);
 
-	ida_simple_remove(&fsl_lpuart_ida, sport->port.line);
+	if (sport->id_allocated)
+		ida_simple_remove(&fsl_lpuart_ida, sport->port.line);
 
 	lpuart_disable_clks(sport);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/ifx6x60.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/ifx6x60.c
@@ -1230,6 +1230,9 @@
 	struct ifx_spi_device *ifx_dev = spi_get_drvdata(spi);
 	/* stop activity */
 	tasklet_kill(&ifx_dev->io_work_tasklet);
+
+	pm_runtime_disable(&spi->dev);
+
 	/* free irq */
 	free_irq(gpio_to_irq(ifx_dev->gpio.reset_out), ifx_dev);
 	free_irq(gpio_to_irq(ifx_dev->gpio.srdy), ifx_dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/imx.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/imx.c
@@ -603,7 +603,7 @@
 
 	sport->tx_bytes = uart_circ_chars_pending(xmit);
 
-	if (xmit->tail < xmit->head) {
+	if (xmit->tail < xmit->head || xmit->head == 0) {
 		sport->dma_tx_nents = 1;
 		sg_init_one(sgl, xmit->buf + xmit->tail, sport->tx_bytes);
 	} else {
@@ -619,7 +619,7 @@
 		dev_err(dev, "DMA mapping error for TX.\n");
 		return;
 	}
-	desc = dmaengine_prep_slave_sg(chan, sgl, sport->dma_tx_nents,
+	desc = dmaengine_prep_slave_sg(chan, sgl, ret,
 					DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT);
 	if (!desc) {
 		dma_unmap_sg(dev, sgl, sport->dma_tx_nents,
@@ -700,22 +700,33 @@
 	}
 }
 
-static irqreturn_t imx_uart_rtsint(int irq, void *dev_id)
+static irqreturn_t __imx_uart_rtsint(int irq, void *dev_id)
 {
 	struct imx_port *sport = dev_id;
 	u32 usr1;
 
-	spin_lock(&sport->port.lock);
-
 	imx_uart_writel(sport, USR1_RTSD, USR1);
 	usr1 = imx_uart_readl(sport, USR1) & USR1_RTSS;
 	uart_handle_cts_change(&sport->port, !!usr1);
 	wake_up_interruptible(&sport->port.state->port.delta_msr_wait);
 
-	spin_unlock(&sport->port.lock);
 	return IRQ_HANDLED;
 }
 
+static irqreturn_t imx_uart_rtsint(int irq, void *dev_id)
+{
+	struct imx_port *sport = dev_id;
+	irqreturn_t ret;
+
+	spin_lock(&sport->port.lock);
+
+	ret = __imx_uart_rtsint(irq, dev_id);
+
+	spin_unlock(&sport->port.lock);
+
+	return ret;
+}
+
 static irqreturn_t imx_uart_txint(int irq, void *dev_id)
 {
 	struct imx_port *sport = dev_id;
@@ -726,14 +737,12 @@
 	return IRQ_HANDLED;
 }
 
-static irqreturn_t imx_uart_rxint(int irq, void *dev_id)
+static irqreturn_t __imx_uart_rxint(int irq, void *dev_id)
 {
 	struct imx_port *sport = dev_id;
 	unsigned int rx, flg, ignored = 0;
 	struct tty_port *port = &sport->port.state->port;
 
-	spin_lock(&sport->port.lock);
-
 	while (imx_uart_readl(sport, USR2) & USR2_RDR) {
 		u32 usr2;
 
@@ -792,11 +801,25 @@
 	}
 
 out:
-	spin_unlock(&sport->port.lock);
 	tty_flip_buffer_push(port);
+
 	return IRQ_HANDLED;
 }
 
+static irqreturn_t imx_uart_rxint(int irq, void *dev_id)
+{
+	struct imx_port *sport = dev_id;
+	irqreturn_t ret;
+
+	spin_lock(&sport->port.lock);
+
+	ret = __imx_uart_rxint(irq, dev_id);
+
+	spin_unlock(&sport->port.lock);
+
+	return ret;
+}
+
 static void imx_uart_clear_rx_errors(struct imx_port *sport);
 
 /*
@@ -854,6 +877,14 @@
 	struct imx_port *sport = dev_id;
 	unsigned int usr1, usr2, ucr1, ucr2, ucr3, ucr4;
 	irqreturn_t ret = IRQ_NONE;
+	unsigned long flags = 0;
+
+	/*
+	 * IRQs might not be disabled upon entering this interrupt handler,
+	 * e.g. when interrupt handlers are forced to be threaded. To support
+	 * this scenario as well, disable IRQs when acquiring the spinlock.
+	 */
+	spin_lock_irqsave(&sport->port.lock, flags);
 
 	usr1 = imx_uart_readl(sport, USR1);
 	usr2 = imx_uart_readl(sport, USR2);
@@ -888,27 +919,25 @@
 		usr2 &= ~USR2_ORE;
 
 	if (usr1 & (USR1_RRDY | USR1_AGTIM)) {
-		imx_uart_rxint(irq, dev_id);
+		__imx_uart_rxint(irq, dev_id);
 		ret = IRQ_HANDLED;
 	}
 
 	if ((usr1 & USR1_TRDY) || (usr2 & USR2_TXDC)) {
-		imx_uart_txint(irq, dev_id);
+		imx_uart_transmit_buffer(sport);
 		ret = IRQ_HANDLED;
 	}
 
 	if (usr1 & USR1_DTRD) {
 		imx_uart_writel(sport, USR1_DTRD, USR1);
 
-		spin_lock(&sport->port.lock);
 		imx_uart_mctrl_check(sport);
-		spin_unlock(&sport->port.lock);
 
 		ret = IRQ_HANDLED;
 	}
 
 	if (usr1 & USR1_RTSD) {
-		imx_uart_rtsint(irq, dev_id);
+		__imx_uart_rtsint(irq, dev_id);
 		ret = IRQ_HANDLED;
 	}
 
@@ -923,6 +952,8 @@
 		ret = IRQ_HANDLED;
 	}
 
+	spin_unlock_irqrestore(&sport->port.lock, flags);
+
 	return ret;
 }
 
@@ -1911,16 +1942,6 @@
 	unsigned int ucr1;
 	unsigned long flags = 0;
 	int locked = 1;
-	int retval;
-
-	retval = clk_enable(sport->clk_per);
-	if (retval)
-		return;
-	retval = clk_enable(sport->clk_ipg);
-	if (retval) {
-		clk_disable(sport->clk_per);
-		return;
-	}
 
 	if (sport->port.sysrq)
 		locked = 0;
@@ -1956,9 +1977,6 @@
 
 	if (locked)
 		spin_unlock_irqrestore(&sport->port.lock, flags);
-
-	clk_disable(sport->clk_ipg);
-	clk_disable(sport->clk_per);
 }
 
 /*
@@ -2059,15 +2077,14 @@
 
 	retval = uart_set_options(&sport->port, co, baud, parity, bits, flow);
 
-	clk_disable(sport->clk_ipg);
 	if (retval) {
-		clk_unprepare(sport->clk_ipg);
+		clk_disable_unprepare(sport->clk_ipg);
 		goto error_console;
 	}
 
-	retval = clk_prepare(sport->clk_per);
+	retval = clk_prepare_enable(sport->clk_per);
 	if (retval)
-		clk_unprepare(sport->clk_ipg);
+		clk_disable_unprepare(sport->clk_ipg);
 
 error_console:
 	return retval;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/kgdboc.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/kgdboc.c
@@ -20,6 +20,7 @@
 #include <linux/vt_kern.h>
 #include <linux/input.h>
 #include <linux/module.h>
+#include <linux/platform_device.h>
 
 #define MAX_CONFIG_LEN		40
 
@@ -27,6 +28,7 @@
 
 /* -1 = init not run yet, 0 = unconfigured, 1 = configured. */
 static int configured		= -1;
+static DEFINE_MUTEX(config_mutex);
 
 static char config[MAX_CONFIG_LEN];
 static struct kparam_string kps = {
@@ -38,6 +40,8 @@
 static struct tty_driver	*kgdb_tty_driver;
 static int			kgdb_tty_line;
 
+static struct platform_device *kgdboc_pdev;
+
 #ifdef CONFIG_KDB_KEYBOARD
 static int kgdboc_reset_connect(struct input_handler *handler,
 				struct input_dev *dev,
@@ -133,11 +137,13 @@
 
 static void cleanup_kgdboc(void)
 {
+	if (configured != 1)
+		return;
+
 	if (kgdb_unregister_nmi_console())
 		return;
 	kgdboc_unregister_kbd();
-	if (configured == 1)
-		kgdb_unregister_io_module(&kgdboc_io_ops);
+	kgdb_unregister_io_module(&kgdboc_io_ops);
 }
 
 static int configure_kgdboc(void)
@@ -200,20 +206,79 @@
 	kgdb_unregister_io_module(&kgdboc_io_ops);
 noconfig:
 	kgdboc_unregister_kbd();
-	config[0] = 0;
 	configured = 0;
-	cleanup_kgdboc();
 
 	return err;
 }
 
+static int kgdboc_probe(struct platform_device *pdev)
+{
+	int ret = 0;
+
+	mutex_lock(&config_mutex);
+	if (configured != 1) {
+		ret = configure_kgdboc();
+
+		/* Convert "no device" to "defer" so we'll keep trying */
+		if (ret == -ENODEV)
+			ret = -EPROBE_DEFER;
+	}
+	mutex_unlock(&config_mutex);
+
+	return ret;
+}
+
+static struct platform_driver kgdboc_platform_driver = {
+	.probe = kgdboc_probe,
+	.driver = {
+		.name = "kgdboc",
+		.suppress_bind_attrs = true,
+	},
+};
+
 static int __init init_kgdboc(void)
 {
-	/* Already configured? */
-	if (configured == 1)
+	int ret;
+
+	/*
+	 * kgdboc is a little bit of an odd "platform_driver".  It can be
+	 * up and running long before the platform_driver object is
+	 * created and thus doesn't actually store anything in it.  There's
+	 * only one instance of kgdb so anything is stored as global state.
+	 * The platform_driver is only created so that we can leverage the
+	 * kernel's mechanisms (like -EPROBE_DEFER) to call us when our
+	 * underlying tty is ready.  Here we init our platform driver and
+	 * then create the single kgdboc instance.
+	 */
+	ret = platform_driver_register(&kgdboc_platform_driver);
+	if (ret)
+		return ret;
+
+	kgdboc_pdev = platform_device_alloc("kgdboc", PLATFORM_DEVID_NONE);
+	if (!kgdboc_pdev) {
+		ret = -ENOMEM;
+		goto err_did_register;
+	}
+
+	ret = platform_device_add(kgdboc_pdev);
+	if (!ret)
 		return 0;
 
-	return configure_kgdboc();
+	platform_device_put(kgdboc_pdev);
+
+err_did_register:
+	platform_driver_unregister(&kgdboc_platform_driver);
+	return ret;
+}
+
+static void exit_kgdboc(void)
+{
+	mutex_lock(&config_mutex);
+	cleanup_kgdboc();
+	mutex_unlock(&config_mutex);
+
+	platform_device_unregister(kgdboc_pdev);
+	platform_driver_unregister(&kgdboc_platform_driver);
 }
 
 static int kgdboc_get_char(void)
@@ -236,24 +301,20 @@
 				const struct kernel_param *kp)
 {
 	size_t len = strlen(kmessage);
+	int ret = 0;
 
 	if (len >= MAX_CONFIG_LEN) {
 		pr_err("config string too long\n");
 		return -ENOSPC;
 	}
 
-	/* Only copy in the string if the init function has not run yet */
-	if (configured < 0) {
-		strcpy(config, kmessage);
-		return 0;
-	}
-
 	if (kgdb_connected) {
 		pr_err("Cannot reconfigure while KGDB is connected.\n");
-
 		return -EBUSY;
 	}
 
+	mutex_lock(&config_mutex);
+
 	strcpy(config, kmessage);
 	/* Chop out \n char as a result of echo */
 	if (len && config[len - 1] == '\n')
@@ -262,8 +323,30 @@
 	if (configured == 1)
 		cleanup_kgdboc();
 
-	/* Go and configure with the new params. */
-	return configure_kgdboc();
+	/*
+	 * Configure with the new params as long as init already ran.
+	 * Note that we can get called before init if someone loads us
+	 * with "modprobe kgdboc kgdboc=..." or if they happen to use the
+	 * the odd syntax of "kgdboc.kgdboc=..." on the kernel command.
+	 */
+	if (configured >= 0)
+		ret = configure_kgdboc();
+
+	/*
+	 * If we couldn't configure then clear out the config.  Note that
+	 * specifying an invalid config on the kernel command line vs.
+	 * through sysfs have slightly different behaviors.  If we fail
+	 * to configure what was specified on the kernel command line
+	 * we'll leave it in the 'config' and return -EPROBE_DEFER from
+	 * our probe.  When specified through sysfs userspace is
+	 * responsible for loading the tty driver before setting up.
+	 */
+	if (ret)
+		config[0] = '\0';
+
+	mutex_unlock(&config_mutex);
+
+	return ret;
 }
 
 static int dbg_restore_graphics;
@@ -326,15 +409,8 @@
 /* This is only available if kgdboc is a built in for early debugging */
 static int __init kgdboc_early_init(char *opt)
 {
-	/* save the first character of the config string because the
-	 * init routine can destroy it.
-	 */
-	char save_ch;
-
 	kgdboc_option_setup(opt);
-	save_ch = config[0];
-	init_kgdboc();
-	config[0] = save_ch;
+	configure_kgdboc();
 	return 0;
 }
 
@@ -342,7 +418,7 @@
 #endif /* CONFIG_KGDB_SERIAL_CONSOLE */
 
 module_init(init_kgdboc);
-module_exit(cleanup_kgdboc);
+module_exit(exit_kgdboc);
 module_param_call(kgdboc, param_set_kgdboc_var, param_get_string, &kps, 0644);
 MODULE_PARM_DESC(kgdboc, "<serial_device>[,baud]");
 MODULE_DESCRIPTION("KGDB Console TTY Driver");
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/msm_serial.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/msm_serial.c
@@ -980,6 +980,7 @@
 static void msm_reset(struct uart_port *port)
 {
 	struct msm_port *msm_port = UART_TO_MSM(port);
+	unsigned int mr;
 
 	/* reset everything */
 	msm_write(port, UART_CR_CMD_RESET_RX, UART_CR);
@@ -987,7 +988,10 @@
 	msm_write(port, UART_CR_CMD_RESET_ERR, UART_CR);
 	msm_write(port, UART_CR_CMD_RESET_BREAK_INT, UART_CR);
 	msm_write(port, UART_CR_CMD_RESET_CTS, UART_CR);
-	msm_write(port, UART_CR_CMD_SET_RFR, UART_CR);
+	msm_write(port, UART_CR_CMD_RESET_RFR, UART_CR);
+	mr = msm_read(port, UART_MR1);
+	mr &= ~UART_MR1_RX_RDY_CTL;
+	msm_write(port, mr, UART_MR1);
 
 	/* Disable DM modes */
 	if (msm_port->is_uartdm)
@@ -1576,6 +1580,7 @@
 	int num_newlines = 0;
 	bool replaced = false;
 	void __iomem *tf;
+	int locked = 1;
 
 	if (is_uartdm)
 		tf = port->membase + UARTDM_TF;
@@ -1588,7 +1593,13 @@
 			num_newlines++;
 	count += num_newlines;
 
-	spin_lock(&port->lock);
+	if (port->sysrq)
+		locked = 0;
+	else if (oops_in_progress)
+		locked = spin_trylock(&port->lock);
+	else
+		spin_lock(&port->lock);
+
 	if (is_uartdm)
 		msm_reset_dm_count(port, count);
 
@@ -1624,7 +1635,9 @@
 		iowrite32_rep(tf, buf, 1);
 		i += num_chars;
 	}
-	spin_unlock(&port->lock);
+
+	if (locked)
+		spin_unlock(&port->lock);
 }
 
 static void msm_console_write(struct console *co, const char *s,
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/mvebu-uart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/mvebu-uart.c
@@ -648,6 +648,14 @@
 				  (val & STAT_TX_RDY(port)), 1, 10000);
 }
 
+static void wait_for_xmite(struct uart_port *port)
+{
+	u32 val;
+
+	readl_poll_timeout_atomic(port->membase + UART_STAT, val,
+				  (val & STAT_TX_EMP), 1, 10000);
+}
+
 static void mvebu_uart_console_putchar(struct uart_port *port, int ch)
 {
 	wait_for_xmitr(port);
@@ -675,7 +683,7 @@
 
 	uart_console_write(port, s, count, mvebu_uart_console_putchar);
 
-	wait_for_xmitr(port);
+	wait_for_xmite(port);
 
 	if (ier)
 		writel(ier, port->membase + UART_CTRL(port));
@@ -851,7 +859,7 @@
 
 	port->membase = devm_ioremap_resource(&pdev->dev, reg);
 	if (IS_ERR(port->membase))
-		return -PTR_ERR(port->membase);
+		return PTR_ERR(port->membase);
 
 	mvuart = devm_kzalloc(&pdev->dev, sizeof(struct mvebu_uart),
 			      GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/mxs-auart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/mxs-auart.c
@@ -1701,21 +1701,21 @@
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
 		ret = irq;
-		goto out_disable_clks;
+		goto out_iounmap;
 	}
 
 	s->port.irq = irq;
 	ret = devm_request_irq(&pdev->dev, irq, mxs_auart_irq_handle, 0,
 			       dev_name(&pdev->dev), s);
 	if (ret)
-		goto out_disable_clks;
+		goto out_iounmap;
 
 	platform_set_drvdata(pdev, s);
 
 	ret = mxs_auart_init_gpios(s, &pdev->dev);
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to initialize GPIOs.\n");
-		goto out_disable_clks;
+		goto out_iounmap;
 	}
 
 	/*
@@ -1723,7 +1723,7 @@
 	 */
 	ret = mxs_auart_request_gpio_irq(s);
 	if (ret)
-		goto out_disable_clks;
+		goto out_iounmap;
 
 	auart_port[s->port.line] = s;
 
@@ -1749,6 +1749,9 @@
 	mxs_auart_free_gpio_irq(s);
 	auart_port[pdev->id] = NULL;
 
+out_iounmap:
+	iounmap(s->port.membase);
+
 out_disable_clks:
 	if (is_asm9260_auart(s)) {
 		clk_disable_unprepare(s->clk);
@@ -1764,6 +1767,7 @@
 	uart_remove_one_port(&auart_driver, &s->port);
 	auart_port[pdev->id] = NULL;
 	mxs_auart_free_gpio_irq(s);
+	iounmap(s->port.membase);
 	if (is_asm9260_auart(s)) {
 		clk_disable_unprepare(s->clk);
 		clk_disable_unprepare(s->clk_ahb);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/owl-uart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/owl-uart.c
@@ -680,6 +680,12 @@
 		return PTR_ERR(owl_port->clk);
 	}
 
+	ret = clk_prepare_enable(owl_port->clk);
+	if (ret) {
+		dev_err(&pdev->dev, "could not enable clk\n");
+		return ret;
+	}
+
 	owl_port->port.dev = &pdev->dev;
 	owl_port->port.line = pdev->id;
 	owl_port->port.type = PORT_OWL;
@@ -712,6 +718,7 @@
 
 	uart_remove_one_port(&owl_uart_driver, &owl_port->port);
 	owl_uart_ports[pdev->id] = NULL;
+	clk_disable_unprepare(owl_port->clk);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/pch_uart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/pch_uart.c
@@ -233,6 +233,7 @@
 	struct dma_chan			*chan_rx;
 	struct scatterlist		*sg_tx_p;
 	int				nent;
+	int				orig_nent;
 	struct scatterlist		sg_rx;
 	int				tx_dma_use;
 	void				*rx_buf_virt;
@@ -787,9 +788,10 @@
 	}
 	xmit->tail &= UART_XMIT_SIZE - 1;
 	async_tx_ack(priv->desc_tx);
-	dma_unmap_sg(port->dev, sg, priv->nent, DMA_TO_DEVICE);
+	dma_unmap_sg(port->dev, sg, priv->orig_nent, DMA_TO_DEVICE);
 	priv->tx_dma_use = 0;
 	priv->nent = 0;
+	priv->orig_nent = 0;
 	kfree(priv->sg_tx_p);
 	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_TX_INT);
 }
@@ -1010,6 +1012,7 @@
 		dev_err(priv->port.dev, "%s:dma_map_sg Failed\n", __func__);
 		return 0;
 	}
+	priv->orig_nent = num;
 	priv->nent = nent;
 
 	for (i = 0; i < nent; i++, sg++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/qcom_geni_serial.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/qcom_geni_serial.c
@@ -125,6 +125,7 @@
 static int handle_rx_uart(struct uart_port *uport, u32 bytes, bool drop);
 static unsigned int qcom_geni_serial_tx_empty(struct uart_port *port);
 static void qcom_geni_serial_stop_rx(struct uart_port *uport);
+static void qcom_geni_serial_handle_rx(struct uart_port *uport, bool drop);
 
 static const unsigned long root_freq[] = {7372800, 14745600, 19200000, 29491200,
 					32000000, 48000000, 64000000, 80000000,
@@ -615,7 +616,7 @@
 	u32 irq_en;
 	u32 status;
 	struct qcom_geni_serial_port *port = to_dev_port(uport, uport);
-	u32 irq_clear = S_CMD_DONE_EN;
+	u32 s_irq_status;
 
 	irq_en = readl(uport->membase + SE_GENI_S_IRQ_EN);
 	irq_en &= ~(S_RX_FIFO_WATERMARK_EN | S_RX_FIFO_LAST_EN);
@@ -631,10 +632,19 @@
 		return;
 
 	geni_se_cancel_s_cmd(&port->se);
-	qcom_geni_serial_poll_bit(uport, SE_GENI_S_CMD_CTRL_REG,
-					S_GENI_CMD_CANCEL, false);
+	qcom_geni_serial_poll_bit(uport, SE_GENI_S_IRQ_STATUS,
+					S_CMD_CANCEL_EN, true);
+	/*
+	 * If timeout occurs secondary engine remains active
+	 * and Abort sequence is executed.
+	 */
+	s_irq_status = readl(uport->membase + SE_GENI_S_IRQ_STATUS);
+	/* Flush the Rx buffer */
+	if (s_irq_status & S_RX_FIFO_LAST_EN)
+		qcom_geni_serial_handle_rx(uport, true);
+	writel(s_irq_status, uport->membase + SE_GENI_S_IRQ_CLEAR);
+
 	status = readl(uport->membase + SE_GENI_STATUS);
-	writel(irq_clear, uport->membase + SE_GENI_S_IRQ_CLEAR);
 	if (status & S_GENI_CMD_ACTIVE)
 		qcom_geni_serial_abort_rx(uport);
 }
@@ -960,7 +970,7 @@
 	sampling_rate = UART_OVERSAMPLING;
 	/* Sampling rate is halved for IP versions >= 2.5 */
 	ver = geni_se_get_qup_hw_version(&port->se);
-	if (GENI_SE_VERSION_MAJOR(ver) >= 2 && GENI_SE_VERSION_MINOR(ver) >= 5)
+	if (ver >= QUP_SE_VERSION_2_5)
 		sampling_rate /= 2;
 
 	clk_rate = get_clk_div_rate(baud, sampling_rate, &clk_div);
@@ -1053,7 +1063,7 @@
 }
 
 #ifdef CONFIG_SERIAL_QCOM_GENI_CONSOLE
-static int __init qcom_geni_console_setup(struct console *co, char *options)
+static int qcom_geni_console_setup(struct console *co, char *options)
 {
 	struct uart_port *uport;
 	struct qcom_geni_serial_port *port;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/samsung.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/samsung.c
@@ -1187,14 +1187,14 @@
 	struct s3c24xx_uart_info *info = ourport->info;
 	struct clk *clk;
 	unsigned long rate;
-	unsigned int cnt, baud, quot, clk_sel, best_quot = 0;
+	unsigned int cnt, baud, quot, best_quot = 0;
 	char clkname[MAX_CLK_NAME_LENGTH];
 	int calc_deviation, deviation = (1 << 30) - 1;
 
-	clk_sel = (ourport->cfg->clk_sel) ? ourport->cfg->clk_sel :
-			ourport->info->def_clk_sel;
 	for (cnt = 0; cnt < info->num_clks; cnt++) {
-		if (!(clk_sel & (1 << cnt)))
+		/* Keep selected clock if provided */
+		if (ourport->cfg->clk_sel &&
+			!(ourport->cfg->clk_sel & (1 << cnt)))
 			continue;
 
 		sprintf(clkname, "clk_uart_baud%d", cnt);
@@ -1791,9 +1791,11 @@
 		ourport->tx_irq = ret + 1;
 	}
 
-	ret = platform_get_irq(platdev, 1);
-	if (ret > 0)
-		ourport->tx_irq = ret;
+	if (!s3c24xx_serial_has_interrupt_mask(port)) {
+		ret = platform_get_irq(platdev, 1);
+		if (ret > 0)
+			ourport->tx_irq = ret;
+	}
 	/*
 	 * DMA is currently supported only on DT platforms, if DMA properties
 	 * are specified.
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/serial-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/serial-tegra.c
@@ -651,11 +651,14 @@
 		ch = (unsigned char) tegra_uart_read(tup, UART_RX);
 		tup->uport.icount.rx++;
 
-		if (!uart_handle_sysrq_char(&tup->uport, ch) && tty)
-			tty_insert_flip_char(tty, ch, flag);
+		if (uart_handle_sysrq_char(&tup->uport, ch))
+			continue;
 
 		if (tup->uport.ignore_status_mask & UART_LSR_DR)
 			continue;
+
+		if (tty)
+			tty_insert_flip_char(tty, ch, flag);
 	} while (1);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/serial_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/serial_core.c
@@ -1111,7 +1111,7 @@
 	if (!uport)
 		goto out;
 
-	if (uport->type != PORT_UNKNOWN)
+	if (uport->type != PORT_UNKNOWN && uport->ops->break_ctl)
 		uport->ops->break_ctl(uport, break_state);
 	ret = 0;
 out:
@@ -1465,6 +1465,10 @@
 {
 	struct uart_state *state = tty->driver_data;
 	struct uart_port *uport;
+	struct tty_port *port = &state->port;
+
+	if (!tty_port_initialized(port))
+		return;
 
 	mutex_lock(&state->port.mutex);
 	uport = uart_port_check(state);
@@ -2834,6 +2838,7 @@
 	if (uport->cons && uport->dev)
 		of_console_check(uport->dev->of_node, uport->cons->name, uport->line);
 
+	tty_port_link_device(port, drv->tty_driver, uport->line);
 	uart_configure_port(drv, state, uport);
 
 	port->console = uart_console(uport);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/serial_txx9.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/serial_txx9.c
@@ -1283,6 +1283,9 @@
 
 #ifdef ENABLE_SERIAL_TXX9_PCI
 	ret = pci_register_driver(&serial_txx9_pci_driver);
+	if (ret) {
+		platform_driver_unregister(&serial_txx9_plat_driver);
+	}
 #endif
 	if (ret == 0)
 		goto out;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/sh-sci.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/sh-sci.c
@@ -873,9 +873,16 @@
 				tty_insert_flip_char(tport, c, TTY_NORMAL);
 		} else {
 			for (i = 0; i < count; i++) {
-				char c = serial_port_in(port, SCxRDR);
+				char c;
 
-				status = serial_port_in(port, SCxSR);
+				if (port->type == PORT_SCIF ||
+				    port->type == PORT_HSCIF) {
+					status = serial_port_in(port, SCxSR);
+					c = serial_port_in(port, SCxRDR);
+				} else {
+					c = serial_port_in(port, SCxRDR);
+					status = serial_port_in(port, SCxSR);
+				}
 				if (uart_handle_sysrq_char(port, c)) {
 					count--; i--;
 					continue;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/sifive.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/sifive.c
@@ -618,10 +618,10 @@
  *
  * On the V0 SoC, the UART IP block is derived from the CPU clock source
  * after a synchronous divide-by-two divider, so any CPU clock rate change
- * requires the UART baud rate to be updated.  This presumably could corrupt any
- * serial word currently being transmitted or received.  It would probably
- * be better to stop receives and transmits, then complete the baud rate
- * change, then re-enable them.
+ * requires the UART baud rate to be updated.  This presumably corrupts any
+ * serial word currently being transmitted or received.  In order to avoid
+ * corrupting the output data stream, we drain the transmit queue before
+ * allowing the clock's rate to be changed.
  */
 static int sifive_serial_clk_notifier(struct notifier_block *nb,
 				      unsigned long event, void *data)
@@ -629,6 +629,26 @@
 	struct clk_notifier_data *cnd = data;
 	struct sifive_serial_port *ssp = notifier_to_sifive_serial_port(nb);
 
+	if (event == PRE_RATE_CHANGE) {
+		/*
+		 * The TX watermark is always set to 1 by this driver, which
+		 * means that the TX busy bit will lower when there are 0 bytes
+		 * left in the TX queue -- in other words, when the TX FIFO is
+		 * empty.
+		 */
+		__ssp_wait_for_xmitr(ssp);
+		/*
+		 * On the cycle the TX FIFO goes empty there is still a full
+		 * UART frame left to be transmitted in the shift register.
+		 * The UART provides no way for software to directly determine
+		 * when that last frame has been transmitted, so we just sleep
+		 * here instead.  As we're not tracking the number of stop bits
+		 * they're just worst cased here.  The rest of the serial
+		 * framing parameters aren't configurable by software.
+		 */
+		udelay(DIV_ROUND_UP(12 * 1000 * 1000, ssp->baud_rate));
+	}
+
 	if (event == POST_RATE_CHANGE && ssp->clkin_rate != cnd->new_rate) {
 		ssp->clkin_rate = cnd->new_rate;
 		__ssp_update_div(ssp);
@@ -840,6 +860,7 @@
 
 static void __ssp_add_console_port(struct sifive_serial_port *ssp)
 {
+	spin_lock_init(&ssp->port.lock);
 	sifive_serial_console_ports[ssp->port.line] = ssp;
 }
 
@@ -952,6 +973,7 @@
 	/* Set up clock divider */
 	ssp->clkin_rate = clk_get_rate(ssp->clk);
 	ssp->baud_rate = SIFIVE_DEFAULT_BAUD_RATE;
+	ssp->port.uartclk = ssp->baud_rate * 16;
 	__ssp_update_div(ssp);
 
 	platform_set_drvdata(pdev, ssp);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/sprd_serial.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/sprd_serial.c
@@ -679,6 +679,9 @@
 	if (ims & SPRD_IMSR_TIMEOUT)
 		serial_out(port, SPRD_ICLR, SPRD_ICLR_TIMEOUT);
 
+	if (ims & SPRD_IMSR_BREAK_DETECT)
+		serial_out(port, SPRD_ICLR, SPRD_IMSR_BREAK_DETECT);
+
 	if (ims & (SPRD_IMSR_RX_FIFO_FULL | SPRD_IMSR_BREAK_DETECT |
 		   SPRD_IMSR_TIMEOUT))
 		sprd_rx(port);
@@ -1100,14 +1103,13 @@
 	if (sup) {
 		uart_remove_one_port(&sprd_uart_driver, &sup->port);
 		sprd_port[sup->port.line] = NULL;
+		sprd_rx_free_buf(sup);
 		sprd_ports_num--;
 	}
 
 	if (!sprd_ports_num)
 		uart_unregister_driver(&sprd_uart_driver);
 
-	sprd_rx_free_buf(sup);
-
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/stm32-usart.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/stm32-usart.c
@@ -240,8 +240,8 @@
 		 * cleared by the sequence [read SR - read DR].
 		 */
 		if ((sr & USART_SR_ERR_MASK) && ofs->icr != UNDEF_REG)
-			stm32_clr_bits(port, ofs->icr, USART_ICR_ORECF |
-				       USART_ICR_PECF | USART_ICR_FECF);
+			writel_relaxed(sr & USART_SR_ERR_MASK,
+				       port->membase + ofs->icr);
 
 		c = stm32_get_char(port, &sr, &stm32_port->last_res);
 		port->icount.rx++;
@@ -435,7 +435,7 @@
 	if (ofs->icr == UNDEF_REG)
 		stm32_clr_bits(port, ofs->isr, USART_SR_TC);
 	else
-		stm32_set_bits(port, ofs->icr, USART_ICR_TCCF);
+		writel_relaxed(USART_ICR_TCCF, port->membase + ofs->icr);
 
 	if (stm32_port->tx_ch)
 		stm32_transmit_chars_dma(port);
@@ -937,7 +937,7 @@
 	stm32_init_rs485(port, pdev);
 
 	if (stm32port->info->cfg.has_wakeup) {
-		stm32port->wakeirq = platform_get_irq(pdev, 1);
+		stm32port->wakeirq = platform_get_irq_optional(pdev, 1);
 		if (stm32port->wakeirq <= 0 && stm32port->wakeirq != -ENXIO)
 			return stm32port->wakeirq ? : -ENODEV;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/serial/xilinx_uartps.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/serial/xilinx_uartps.c
@@ -30,13 +30,15 @@
 
 #define CDNS_UART_TTY_NAME	"ttyPS"
 #define CDNS_UART_NAME		"xuartps"
+#define CDNS_UART_MAJOR		0	/* use dynamic node allocation */
+#define CDNS_UART_MINOR		0	/* works best with devtmpfs */
+#define CDNS_UART_NR_PORTS	16
 #define CDNS_UART_FIFO_SIZE	64	/* FIFO size */
 #define CDNS_UART_REGISTER_SPACE	0x1000
 #define TX_TIMEOUT		500000
 
 /* Rx Trigger level */
 static int rx_trigger_level = 56;
-static int uartps_major;
 module_param(rx_trigger_level, uint, 0444);
 MODULE_PARM_DESC(rx_trigger_level, "Rx trigger level, 1-63 bytes");
 
@@ -182,7 +184,6 @@
  * @pclk:		APB clock
  * @cdns_uart_driver:	Pointer to UART driver
  * @baud:		Current baud rate
- * @id:			Port ID
  * @clk_rate_change_nb:	Notifier block for clock changes
  * @quirks:		Flags for RXBS support.
  */
@@ -192,7 +193,6 @@
 	struct clk		*pclk;
 	struct uart_driver	*cdns_uart_driver;
 	unsigned int		baud;
-	int			id;
 	struct notifier_block	clk_rate_change_nb;
 	u32			quirks;
 	bool cts_override;
@@ -1119,6 +1119,8 @@
 #endif
 };
 
+static struct uart_driver cdns_uart_uart_driver;
+
 #ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE
 /**
  * cdns_uart_console_putchar - write the character to the FIFO buffer
@@ -1246,6 +1248,7 @@
 	int bits = 8;
 	int parity = 'n';
 	int flow = 'n';
+	unsigned long time_out;
 
 	if (!port->membase) {
 		pr_debug("console on " CDNS_UART_TTY_NAME "%i not present\n",
@@ -1256,8 +1259,25 @@
 	if (options)
 		uart_parse_options(options, &baud, &parity, &bits, &flow);
 
+	/* Wait for tx_empty before setting up the console */
+	time_out = jiffies + usecs_to_jiffies(TX_TIMEOUT);
+
+	while (time_before(jiffies, time_out) &&
+	       cdns_uart_tx_empty(port) != TIOCSER_TEMT)
+		cpu_relax();
+
 	return uart_set_options(port, co, baud, parity, bits, flow);
 }
+
+static struct console cdns_uart_console = {
+	.name	= CDNS_UART_TTY_NAME,
+	.write	= cdns_uart_console_write,
+	.device	= uart_console_device,
+	.setup	= cdns_uart_console_setup,
+	.flags	= CON_PRINTBUFFER,
+	.index	= -1, /* Specified on the cmdline (e.g. console=ttyPS ) */
+	.data	= &cdns_uart_uart_driver,
+};
 #endif /* CONFIG_SERIAL_XILINX_PS_UART_CONSOLE */
 
 #ifdef CONFIG_PM_SLEEP
@@ -1389,89 +1409,8 @@
 };
 MODULE_DEVICE_TABLE(of, cdns_uart_of_match);
 
-/*
- * Maximum number of instances without alias IDs but if there is alias
- * which target "< MAX_UART_INSTANCES" range this ID can't be used.
- */
-#define MAX_UART_INSTANCES	32
-
-/* Stores static aliases list */
-static DECLARE_BITMAP(alias_bitmap, MAX_UART_INSTANCES);
-static int alias_bitmap_initialized;
-
-/* Stores actual bitmap of allocated IDs with alias IDs together */
-static DECLARE_BITMAP(bitmap, MAX_UART_INSTANCES);
-/* Protect bitmap operations to have unique IDs */
-static DEFINE_MUTEX(bitmap_lock);
-
-static int cdns_get_id(struct platform_device *pdev)
-{
-	int id, ret;
-
-	mutex_lock(&bitmap_lock);
-
-	/* Alias list is stable that's why get alias bitmap only once */
-	if (!alias_bitmap_initialized) {
-		ret = of_alias_get_alias_list(cdns_uart_of_match, "serial",
-					      alias_bitmap, MAX_UART_INSTANCES);
-		if (ret && ret != -EOVERFLOW) {
-			mutex_unlock(&bitmap_lock);
-			return ret;
-		}
-
-		alias_bitmap_initialized++;
-	}
-
-	/* Make sure that alias ID is not taken by instance without alias */
-	bitmap_or(bitmap, bitmap, alias_bitmap, MAX_UART_INSTANCES);
-
-	dev_dbg(&pdev->dev, "Alias bitmap: %*pb\n",
-		MAX_UART_INSTANCES, bitmap);
-
-	/* Look for a serialN alias */
-	id = of_alias_get_id(pdev->dev.of_node, "serial");
-	if (id < 0) {
-		dev_warn(&pdev->dev,
-			 "No serial alias passed. Using the first free id\n");
-
-		/*
-		 * Start with id 0 and check if there is no serial0 alias
-		 * which points to device which is compatible with this driver.
-		 * If alias exists then try next free position.
-		 */
-		id = 0;
-
-		for (;;) {
-			dev_info(&pdev->dev, "Checking id %d\n", id);
-			id = find_next_zero_bit(bitmap, MAX_UART_INSTANCES, id);
-
-			/* No free empty instance */
-			if (id == MAX_UART_INSTANCES) {
-				dev_err(&pdev->dev, "No free ID\n");
-				mutex_unlock(&bitmap_lock);
-				return -EINVAL;
-			}
-
-			dev_dbg(&pdev->dev, "The empty id is %d\n", id);
-			/* Check if ID is empty */
-			if (!test_and_set_bit(id, bitmap)) {
-				/* Break the loop if bit is taken */
-				dev_dbg(&pdev->dev,
-					"Selected ID %d allocation passed\n",
-					id);
-				break;
-			}
-			dev_dbg(&pdev->dev,
-				"Selected ID %d allocation failed\n", id);
-			/* if taking bit fails then try next one */
-			id++;
-		}
-	}
-
-	mutex_unlock(&bitmap_lock);
-
-	return id;
-}
+/* Temporary variable for storing number of instances */
+static int instances;
 
 /**
  * cdns_uart_probe - Platform driver probe
@@ -1481,16 +1420,11 @@
  */
 static int cdns_uart_probe(struct platform_device *pdev)
 {
-	int rc, irq;
+	int rc, id, irq;
 	struct uart_port *port;
 	struct resource *res;
 	struct cdns_uart *cdns_uart_data;
 	const struct of_device_id *match;
-	struct uart_driver *cdns_uart_uart_driver;
-	char *driver_name;
-#ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE
-	struct console *cdns_uart_console;
-#endif
 
 	cdns_uart_data = devm_kzalloc(&pdev->dev, sizeof(*cdns_uart_data),
 			GFP_KERNEL);
@@ -1500,64 +1434,35 @@
 	if (!port)
 		return -ENOMEM;
 
-	cdns_uart_uart_driver = devm_kzalloc(&pdev->dev,
-					     sizeof(*cdns_uart_uart_driver),
-					     GFP_KERNEL);
-	if (!cdns_uart_uart_driver)
-		return -ENOMEM;
+	/* Look for a serialN alias */
+	id = of_alias_get_id(pdev->dev.of_node, "serial");
+	if (id < 0)
+		id = 0;
 
-	cdns_uart_data->id = cdns_get_id(pdev);
-	if (cdns_uart_data->id < 0)
-		return cdns_uart_data->id;
-
-	/* There is a need to use unique driver name */
-	driver_name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s%d",
-				     CDNS_UART_NAME, cdns_uart_data->id);
-	if (!driver_name) {
-		rc = -ENOMEM;
-		goto err_out_id;
-	}
-
-	cdns_uart_uart_driver->owner = THIS_MODULE;
-	cdns_uart_uart_driver->driver_name = driver_name;
-	cdns_uart_uart_driver->dev_name	= CDNS_UART_TTY_NAME;
-	cdns_uart_uart_driver->major = uartps_major;
-	cdns_uart_uart_driver->minor = cdns_uart_data->id;
-	cdns_uart_uart_driver->nr = 1;
+	if (id >= CDNS_UART_NR_PORTS) {
+		dev_err(&pdev->dev, "Cannot get uart_port structure\n");
+		return -ENODEV;
+	}
 
+	if (!cdns_uart_uart_driver.state) {
+		cdns_uart_uart_driver.owner = THIS_MODULE;
+		cdns_uart_uart_driver.driver_name = CDNS_UART_NAME;
+		cdns_uart_uart_driver.dev_name = CDNS_UART_TTY_NAME;
+		cdns_uart_uart_driver.major = CDNS_UART_MAJOR;
+		cdns_uart_uart_driver.minor = CDNS_UART_MINOR;
+		cdns_uart_uart_driver.nr = CDNS_UART_NR_PORTS;
 #ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE
-	cdns_uart_console = devm_kzalloc(&pdev->dev, sizeof(*cdns_uart_console),
-					 GFP_KERNEL);
-	if (!cdns_uart_console) {
-		rc = -ENOMEM;
-		goto err_out_id;
-	}
-
-	strncpy(cdns_uart_console->name, CDNS_UART_TTY_NAME,
-		sizeof(cdns_uart_console->name));
-	cdns_uart_console->index = cdns_uart_data->id;
-	cdns_uart_console->write = cdns_uart_console_write;
-	cdns_uart_console->device = uart_console_device;
-	cdns_uart_console->setup = cdns_uart_console_setup;
-	cdns_uart_console->flags = CON_PRINTBUFFER;
-	cdns_uart_console->data = cdns_uart_uart_driver;
-	cdns_uart_uart_driver->cons = cdns_uart_console;
+		cdns_uart_uart_driver.cons = &cdns_uart_console;
 #endif
 
-	rc = uart_register_driver(cdns_uart_uart_driver);
-	if (rc < 0) {
-		dev_err(&pdev->dev, "Failed to register driver\n");
-		goto err_out_id;
+		rc = uart_register_driver(&cdns_uart_uart_driver);
+		if (rc < 0) {
+			dev_err(&pdev->dev, "Failed to register driver\n");
+			return rc;
+		}
 	}
 
-	cdns_uart_data->cdns_uart_driver = cdns_uart_uart_driver;
-
-	/*
-	 * Setting up proper name_base needs to be done after uart
-	 * registration because tty_driver structure is not filled.
-	 * name_base is 0 by default.
-	 */
-	cdns_uart_uart_driver->tty_driver->name_base = cdns_uart_data->id;
+	cdns_uart_data->cdns_uart_driver = &cdns_uart_uart_driver;
 
 	match = of_match_node(cdns_uart_of_match, pdev->dev.of_node);
 	if (match && match->data) {
@@ -1634,6 +1539,7 @@
 	port->flags	= UPF_BOOT_AUTOCONF;
 	port->ops	= &cdns_uart_ops;
 	port->fifosize	= CDNS_UART_FIFO_SIZE;
+	port->line	= id;
 
 	/*
 	 * Register the port.
@@ -1661,11 +1567,13 @@
 	 * If register_console() don't assign value, then console_port pointer
 	 * is cleanup.
 	 */
-	if (!console_port)
+	if (!console_port) {
+		cdns_uart_console.index = id;
 		console_port = port;
+	}
 #endif
 
-	rc = uart_add_one_port(cdns_uart_uart_driver, port);
+	rc = uart_add_one_port(&cdns_uart_uart_driver, port);
 	if (rc) {
 		dev_err(&pdev->dev,
 			"uart_add_one_port() failed; err=%i\n", rc);
@@ -1675,13 +1583,17 @@
 #ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE
 	/* This is not port which is used for console that's why clean it up */
 	if (console_port == port &&
-	    !(cdns_uart_uart_driver->cons->flags & CON_ENABLED))
+	    !(cdns_uart_uart_driver.cons->flags & CON_ENABLED)) {
 		console_port = NULL;
+		cdns_uart_console.index = -1;
+	}
 #endif
 
-	uartps_major = cdns_uart_uart_driver->tty_driver->major;
 	cdns_uart_data->cts_override = of_property_read_bool(pdev->dev.of_node,
 							     "cts-override");
+
+	instances++;
+
 	return 0;
 
 err_out_pm_disable:
@@ -1697,12 +1609,8 @@
 err_out_clk_dis_pclk:
 	clk_disable_unprepare(cdns_uart_data->pclk);
 err_out_unregister_driver:
-	uart_unregister_driver(cdns_uart_data->cdns_uart_driver);
-err_out_id:
-	mutex_lock(&bitmap_lock);
-	if (cdns_uart_data->id < MAX_UART_INSTANCES)
-		clear_bit(cdns_uart_data->id, bitmap);
-	mutex_unlock(&bitmap_lock);
+	if (!instances)
+		uart_unregister_driver(cdns_uart_data->cdns_uart_driver);
 	return rc;
 }
 
@@ -1725,10 +1633,6 @@
 #endif
 	rc = uart_remove_one_port(cdns_uart_data->cdns_uart_driver, port);
 	port->mapbase = 0;
-	mutex_lock(&bitmap_lock);
-	if (cdns_uart_data->id < MAX_UART_INSTANCES)
-		clear_bit(cdns_uart_data->id, bitmap);
-	mutex_unlock(&bitmap_lock);
 	clk_disable_unprepare(cdns_uart_data->uartclk);
 	clk_disable_unprepare(cdns_uart_data->pclk);
 	pm_runtime_disable(&pdev->dev);
@@ -1741,13 +1645,8 @@
 		console_port = NULL;
 #endif
 
-	/* If this is last instance major number should be initialized */
-	mutex_lock(&bitmap_lock);
-	if (bitmap_empty(bitmap, MAX_UART_INSTANCES))
-		uartps_major = 0;
-	mutex_unlock(&bitmap_lock);
-
-	uart_unregister_driver(cdns_uart_data->cdns_uart_driver);
+	if (!--instances)
+		uart_unregister_driver(cdns_uart_data->cdns_uart_driver);
 	return rc;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/synclink_gt.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/synclink_gt.c
@@ -1334,10 +1334,10 @@
 	DBGINFO(("%s throttle\n", info->device_name));
 	if (I_IXOFF(tty))
 		send_xchar(tty, STOP_CHAR(tty));
- 	if (C_CRTSCTS(tty)) {
+	if (C_CRTSCTS(tty)) {
 		spin_lock_irqsave(&info->lock,flags);
 		info->signals &= ~SerialSignal_RTS;
-	 	set_signals(info);
+		set_signals(info);
 		spin_unlock_irqrestore(&info->lock,flags);
 	}
 }
@@ -1359,10 +1359,10 @@
 		else
 			send_xchar(tty, START_CHAR(tty));
 	}
- 	if (C_CRTSCTS(tty)) {
+	if (C_CRTSCTS(tty)) {
 		spin_lock_irqsave(&info->lock,flags);
 		info->signals |= SerialSignal_RTS;
-	 	set_signals(info);
+		set_signals(info);
 		spin_unlock_irqrestore(&info->lock,flags);
 	}
 }
@@ -2560,8 +2560,8 @@
 	info->read_status_mask = IRQ_RXOVER;
 	if (I_INPCK(info->port.tty))
 		info->read_status_mask |= MASK_PARITY | MASK_FRAMING;
- 	if (I_BRKINT(info->port.tty) || I_PARMRK(info->port.tty))
- 		info->read_status_mask |= MASK_BREAK;
+	if (I_BRKINT(info->port.tty) || I_PARMRK(info->port.tty))
+		info->read_status_mask |= MASK_BREAK;
 	if (I_IGNPAR(info->port.tty))
 		info->ignore_status_mask |= MASK_PARITY | MASK_FRAMING;
 	if (I_IGNBRK(info->port.tty)) {
@@ -3192,7 +3192,7 @@
 		info->signals &= ~SerialSignal_DTR;
 
 	spin_lock_irqsave(&info->lock,flags);
- 	set_signals(info);
+	set_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 	return 0;
 }
@@ -3203,7 +3203,7 @@
 	struct slgt_info *info = container_of(port, struct slgt_info, port);
 
 	spin_lock_irqsave(&info->lock,flags);
- 	get_signals(info);
+	get_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 	return (info->signals & SerialSignal_DCD) ? 1 : 0;
 }
@@ -3218,7 +3218,7 @@
 		info->signals |= SerialSignal_RTS | SerialSignal_DTR;
 	else
 		info->signals &= ~(SerialSignal_RTS | SerialSignal_DTR);
- 	set_signals(info);
+	set_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/synclinkmp.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/synclinkmp.c
@@ -1453,10 +1453,10 @@
 	if (I_IXOFF(tty))
 		send_xchar(tty, STOP_CHAR(tty));
 
- 	if (C_CRTSCTS(tty)) {
+	if (C_CRTSCTS(tty)) {
 		spin_lock_irqsave(&info->lock,flags);
 		info->serial_signals &= ~SerialSignal_RTS;
-	 	set_signals(info);
+		set_signals(info);
 		spin_unlock_irqrestore(&info->lock,flags);
 	}
 }
@@ -1482,10 +1482,10 @@
 			send_xchar(tty, START_CHAR(tty));
 	}
 
- 	if (C_CRTSCTS(tty)) {
+	if (C_CRTSCTS(tty)) {
 		spin_lock_irqsave(&info->lock,flags);
 		info->serial_signals |= SerialSignal_RTS;
-	 	set_signals(info);
+		set_signals(info);
 		spin_unlock_irqrestore(&info->lock,flags);
 	}
 }
@@ -2470,7 +2470,7 @@
 					if (status & SerialSignal_CTS) {
 						if ( debug_level >= DEBUG_LEVEL_ISR )
 							printk("CTS tx start...");
-			 			info->port.tty->hw_stopped = 0;
+						info->port.tty->hw_stopped = 0;
 						tx_start(info);
 						info->pending_bh |= BH_TRANSMIT;
 						return;
@@ -2479,7 +2479,7 @@
 					if (!(status & SerialSignal_CTS)) {
 						if ( debug_level >= DEBUG_LEVEL_ISR )
 							printk("CTS tx stop...");
-			 			info->port.tty->hw_stopped = 1;
+						info->port.tty->hw_stopped = 1;
 						tx_stop(info);
 					}
 				}
@@ -2806,8 +2806,8 @@
 	info->read_status_mask2 = OVRN;
 	if (I_INPCK(info->port.tty))
 		info->read_status_mask2 |= PE | FRME;
- 	if (I_BRKINT(info->port.tty) || I_PARMRK(info->port.tty))
- 		info->read_status_mask1 |= BRKD;
+	if (I_BRKINT(info->port.tty) || I_PARMRK(info->port.tty))
+		info->read_status_mask1 |= BRKD;
 	if (I_IGNPAR(info->port.tty))
 		info->ignore_status_mask2 |= PE | FRME;
 	if (I_IGNBRK(info->port.tty)) {
@@ -3177,7 +3177,7 @@
  	unsigned long flags;
 
 	spin_lock_irqsave(&info->lock,flags);
- 	get_signals(info);
+	get_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 
 	result = ((info->serial_signals & SerialSignal_RTS) ? TIOCM_RTS : 0) |
@@ -3215,7 +3215,7 @@
 		info->serial_signals &= ~SerialSignal_DTR;
 
 	spin_lock_irqsave(&info->lock,flags);
- 	set_signals(info);
+	set_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 
 	return 0;
@@ -3227,7 +3227,7 @@
 	unsigned long flags;
 
 	spin_lock_irqsave(&info->lock,flags);
- 	get_signals(info);
+	get_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 
 	return (info->serial_signals & SerialSignal_DCD) ? 1 : 0;
@@ -3243,7 +3243,7 @@
 		info->serial_signals |= SerialSignal_RTS | SerialSignal_DTR;
 	else
 		info->serial_signals &= ~(SerialSignal_RTS | SerialSignal_DTR);
- 	set_signals(info);
+	set_signals(info);
 	spin_unlock_irqrestore(&info->lock,flags);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/tty_io.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/tty_io.c
@@ -2731,9 +2731,11 @@
 	struct serial_struct32 v32;
 	struct serial_struct v;
 	int err;
-	memset(&v, 0, sizeof(struct serial_struct));
 
-	if (!tty->ops->set_serial)
+	memset(&v, 0, sizeof(v));
+	memset(&v32, 0, sizeof(v32));
+
+	if (!tty->ops->get_serial)
 		return -ENOTTY;
 	err = tty->ops->get_serial(tty, &v);
 	if (!err) {
@@ -2892,10 +2894,14 @@
 	struct task_struct *g, *p;
 	struct pid *session;
 	int		i;
+	unsigned long flags;
 
 	if (!tty)
 		return;
-	session = tty->session;
+
+	spin_lock_irqsave(&tty->ctrl_lock, flags);
+	session = get_pid(tty->session);
+	spin_unlock_irqrestore(&tty->ctrl_lock, flags);
 
 	tty_ldisc_flush(tty);
 
@@ -2927,6 +2933,7 @@
 		task_unlock(p);
 	} while_each_thread(g, p);
 	read_unlock(&tasklist_lock);
+	put_pid(session);
 #endif
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/tty_jobctrl.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/tty_jobctrl.c
@@ -103,8 +103,8 @@
 	put_pid(tty->session);
 	put_pid(tty->pgrp);
 	tty->pgrp = get_pid(task_pgrp(current));
-	spin_unlock_irqrestore(&tty->ctrl_lock, flags);
 	tty->session = get_pid(task_session(current));
+	spin_unlock_irqrestore(&tty->ctrl_lock, flags);
 	if (current->signal->tty) {
 		tty_debug(tty, "current tty %s not NULL!!\n",
 			  current->signal->tty->name);
@@ -293,20 +293,23 @@
 	spin_lock_irq(&current->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(&current->sighand->siglock);
+
 	if (tty) {
 		unsigned long flags;
+
+		tty_lock(tty);
 		spin_lock_irqsave(&tty->ctrl_lock, flags);
 		put_pid(tty->session);
 		put_pid(tty->pgrp);
 		tty->session = NULL;
 		tty->pgrp = NULL;
 		spin_unlock_irqrestore(&tty->ctrl_lock, flags);
+		tty_unlock(tty);
 		tty_kref_put(tty);
 	}
 
-	spin_unlock_irq(&current->sighand->siglock);
 	/* Now clear signal->tty under the lock */
 	read_lock(&tasklist_lock);
 	session_clear_tty(task_session(current));
@@ -477,14 +480,19 @@
 		return -ENOTTY;
 	if (retval)
 		return retval;
-	if (!current->signal->tty ||
-	    (current->signal->tty != real_tty) ||
-	    (real_tty->session != task_session(current)))
-		return -ENOTTY;
+
 	if (get_user(pgrp_nr, p))
 		return -EFAULT;
 	if (pgrp_nr < 0)
 		return -EINVAL;
+
+	spin_lock_irq(&real_tty->ctrl_lock);
+	if (!current->signal->tty ||
+	    (current->signal->tty != real_tty) ||
+	    (real_tty->session != task_session(current))) {
+		retval = -ENOTTY;
+		goto out_unlock_ctrl;
+	}
 	rcu_read_lock();
 	pgrp = find_vpid(pgrp_nr);
 	retval = -ESRCH;
@@ -494,12 +502,12 @@
 	if (session_of_pgrp(pgrp) != task_session(current))
 		goto out_unlock;
 	retval = 0;
-	spin_lock_irq(&tty->ctrl_lock);
 	put_pid(real_tty->pgrp);
 	real_tty->pgrp = get_pid(pgrp);
-	spin_unlock_irq(&tty->ctrl_lock);
 out_unlock:
 	rcu_read_unlock();
+out_unlock_ctrl:
+	spin_unlock_irq(&real_tty->ctrl_lock);
 	return retval;
 }
 
@@ -511,20 +519,30 @@
  *
  *	Obtain the session id of the tty. If there is no session
  *	return an error.
- *
- *	Locking: none. Reference to current->signal->tty is safe.
  */
 static int tiocgsid(struct tty_struct *tty, struct tty_struct *real_tty, pid_t __user *p)
 {
+	unsigned long flags;
+	pid_t sid;
+
 	/*
 	 * (tty == real_tty) is a cheap way of
 	 * testing if the tty is NOT a master pty.
 	*/
 	if (tty == real_tty && current->signal->tty != real_tty)
 		return -ENOTTY;
+
+	spin_lock_irqsave(&real_tty->ctrl_lock, flags);
 	if (!real_tty->session)
-		return -ENOTTY;
-	return put_user(pid_vnr(real_tty->session), p);
+		goto err;
+	sid = pid_vnr(real_tty->session);
+	spin_unlock_irqrestore(&real_tty->ctrl_lock, flags);
+
+	return put_user(sid, p);
+
+err:
+	spin_unlock_irqrestore(&real_tty->ctrl_lock, flags);
+	return -ENOTTY;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/tty_port.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/tty_port.c
@@ -52,10 +52,11 @@
 	}
 }
 
-static const struct tty_port_client_operations default_client_ops = {
+const struct tty_port_client_operations tty_port_default_client_ops = {
 	.receive_buf = tty_port_default_receive_buf,
 	.write_wakeup = tty_port_default_wakeup,
 };
+EXPORT_SYMBOL_GPL(tty_port_default_client_ops);
 
 void tty_port_init(struct tty_port *port)
 {
@@ -68,7 +69,7 @@
 	spin_lock_init(&port->lock);
 	port->close_delay = (50 * HZ) / 100;
 	port->closing_wait = (3000 * HZ) / 100;
-	port->client_ops = &default_client_ops;
+	port->client_ops = &tty_port_default_client_ops;
 	kref_init(&port->kref);
 }
 EXPORT_SYMBOL(tty_port_init);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vcc.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vcc.c
@@ -605,6 +605,7 @@
 	port->index = vcc_table_add(port);
 	if (port->index == -1) {
 		pr_err("VCC: no more TTY indices left for allocation\n");
+		rv = -ENOMEM;
 		goto free_ldc;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vt/consolemap.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vt/consolemap.c
@@ -495,7 +495,7 @@
 
 	p2[unicode & 0x3f] = fontpos;
 	
-	p->sum += (fontpos << 20) + unicode;
+	p->sum += (fontpos << 20U) + unicode;
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vt/keyboard.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vt/keyboard.c
@@ -127,7 +127,11 @@
 static unsigned long key_down[BITS_TO_LONGS(KEY_CNT)];	/* keyboard key bitmap */
 static unsigned char shift_down[NR_SHIFT];		/* shift state counters.. */
 static bool dead_key_next;
-static int npadch = -1;					/* -1 or number assembled on pad */
+
+/* Handles a number being assembled on the number pad */
+static bool npadch_active;
+static unsigned int npadch_value;
+
 static unsigned int diacr;
 static char rep;					/* flag telling character repeat */
 
@@ -738,8 +742,13 @@
 		return;
 
 	if ((unsigned)value < ARRAY_SIZE(func_table)) {
+		unsigned long flags;
+
+		spin_lock_irqsave(&func_buf_lock, flags);
 		if (func_table[value])
 			puts_queue(vc, func_table[value]);
+		spin_unlock_irqrestore(&func_buf_lock, flags);
+
 	} else
 		pr_err("k_fn called with value=%d\n", value);
 }
@@ -845,12 +854,12 @@
 		shift_state &= ~(1 << value);
 
 	/* kludge */
-	if (up_flag && shift_state != old_state && npadch != -1) {
+	if (up_flag && shift_state != old_state && npadch_active) {
 		if (kbd->kbdmode == VC_UNICODE)
-			to_utf8(vc, npadch);
+			to_utf8(vc, npadch_value);
 		else
-			put_queue(vc, npadch & 0xff);
-		npadch = -1;
+			put_queue(vc, npadch_value & 0xff);
+		npadch_active = false;
 	}
 }
 
@@ -868,7 +877,7 @@
 
 static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag)
 {
-	int base;
+	unsigned int base;
 
 	if (up_flag)
 		return;
@@ -882,10 +891,12 @@
 		base = 16;
 	}
 
-	if (npadch == -1)
-		npadch = value;
-	else
-		npadch = npadch * base + value;
+	if (!npadch_active) {
+		npadch_value = 0;
+		npadch_active = true;
+	}
+
+	npadch_value = npadch_value * base + value;
 }
 
 static void k_lock(struct vc_data *vc, unsigned char value, char up_flag)
@@ -1491,7 +1502,7 @@
 
 	if (event_type == EV_MSC && event_code == MSC_RAW && HW_RAW(handle->dev))
 		kbd_rawcode(value);
-	if (event_type == EV_KEY)
+	if (event_type == EV_KEY && event_code <= KEY_MAX)
 		kbd_keycode(event_code, value, HW_RAW(handle->dev));
 
 	spin_unlock(&kbd_event_lock);
@@ -1984,13 +1995,11 @@
 #undef s
 #undef v
 
-/* FIXME: This one needs untangling and locking */
+/* FIXME: This one needs untangling */
 int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
 {
 	struct kbsentry *kbs;
-	char *p;
 	u_char *q;
-	u_char __user *up;
 	int sz, fnw_sz;
 	int delta;
 	char *first_free, *fj, *fnw;
@@ -2016,23 +2025,19 @@
 	i = kbs->kb_func;
 
 	switch (cmd) {
-	case KDGKBSENT:
-		sz = sizeof(kbs->kb_string) - 1; /* sz should have been
-						  a struct member */
-		up = user_kdgkb->kb_string;
-		p = func_table[i];
-		if(p)
-			for ( ; *p && sz; p++, sz--)
-				if (put_user(*p, up++)) {
-					ret = -EFAULT;
-					goto reterr;
-				}
-		if (put_user('\0', up)) {
-			ret = -EFAULT;
-			goto reterr;
-		}
-		kfree(kbs);
-		return ((p && *p) ? -EOVERFLOW : 0);
+	case KDGKBSENT: {
+		/* size should have been a struct member */
+		ssize_t len = sizeof(user_kdgkb->kb_string);
+
+		spin_lock_irqsave(&func_buf_lock, flags);
+		len = strlcpy(kbs->kb_string, func_table[i] ? : "", len);
+		spin_unlock_irqrestore(&func_buf_lock, flags);
+
+		ret = copy_to_user(user_kdgkb->kb_string, kbs->kb_string,
+				len + 1) ? -EFAULT : 0;
+
+		goto reterr;
+	}
 	case KDSKBSENT:
 		if (!perm) {
 			ret = -EPERM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vt/selection.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vt/selection.c
@@ -16,6 +16,7 @@
 #include <linux/tty.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
+#include <linux/mutex.h>
 #include <linux/slab.h>
 #include <linux/types.h>
 
@@ -29,6 +30,8 @@
 #include <linux/console.h>
 #include <linux/tty_flip.h>
 
+#include <linux/sched/signal.h>
+
 /* Don't take this from <ctype.h>: 011-015 on the screen aren't spaces */
 #define isspace(c)	((c) == ' ')
 
@@ -43,6 +46,7 @@
 static int sel_end;
 static int sel_buffer_lth;
 static char *sel_buffer;
+static DEFINE_MUTEX(sel_lock);
 
 /* clear_selection, highlight and highlight_pointer can be called
    from interrupt (via scrollback/front) */
@@ -84,6 +88,11 @@
 }
 EXPORT_SYMBOL_GPL(clear_selection);
 
+bool vc_is_sel(struct vc_data *vc)
+{
+	return vc == sel_cons;
+}
+
 /*
  * User settable table: what characters are to be considered alphabetic?
  * 128 bits. Locked by the console lock.
@@ -177,14 +186,14 @@
 	return set_selection_kernel(&v, tty);
 }
 
-int set_selection_kernel(struct tiocl_selection *v, struct tty_struct *tty)
+static int __set_selection_kernel(struct tiocl_selection *v, struct tty_struct *tty)
 {
 	struct vc_data *vc = vc_cons[fg_console].d;
 	int new_sel_start, new_sel_end, spc;
 	char *bp, *obp;
 	int i, ps, pe, multiplier;
 	u32 c;
-	int mode;
+	int mode, ret = 0;
 
 	poke_blanked_console();
 
@@ -332,7 +341,21 @@
 		}
 	}
 	sel_buffer_lth = bp - sel_buffer;
-	return 0;
+
+	return ret;
+}
+
+int set_selection_kernel(struct tiocl_selection *v, struct tty_struct *tty)
+{
+	int ret;
+
+	mutex_lock(&sel_lock);
+	console_lock();
+	ret = __set_selection_kernel(v, tty);
+	console_unlock();
+	mutex_unlock(&sel_lock);
+
+	return ret;
 }
 EXPORT_SYMBOL_GPL(set_selection_kernel);
 
@@ -350,6 +373,7 @@
 	unsigned int count;
 	struct  tty_ldisc *ld;
 	DECLARE_WAITQUEUE(wait, current);
+	int ret = 0;
 
 	console_lock();
 	poke_blanked_console();
@@ -361,10 +385,17 @@
 	tty_buffer_lock_exclusive(&vc->port);
 
 	add_wait_queue(&vc->paste_wait, &wait);
+	mutex_lock(&sel_lock);
 	while (sel_buffer && sel_buffer_lth > pasted) {
 		set_current_state(TASK_INTERRUPTIBLE);
+		if (signal_pending(current)) {
+			ret = -EINTR;
+			break;
+		}
 		if (tty_throttled(tty)) {
+			mutex_unlock(&sel_lock);
 			schedule();
+			mutex_lock(&sel_lock);
 			continue;
 		}
 		__set_current_state(TASK_RUNNING);
@@ -373,11 +404,12 @@
 					      count);
 		pasted += count;
 	}
+	mutex_unlock(&sel_lock);
 	remove_wait_queue(&vc->paste_wait, &wait);
 	__set_current_state(TASK_RUNNING);
 
 	tty_buffer_unlock_exclusive(&vc->port);
 	tty_ldisc_deref(ld);
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(paste_selection);
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vt/vc_screen.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vt/vc_screen.c
@@ -456,6 +456,9 @@
 	size_t ret;
 	char *con_buf;
 
+	if (use_unicode(inode))
+		return -EOPNOTSUPP;
+
 	con_buf = (char *) __get_free_page(GFP_KERNEL);
 	if (!con_buf)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vt/vt.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vt/vt.c
@@ -81,6 +81,7 @@
 #include <linux/errno.h>
 #include <linux/kd.h>
 #include <linux/slab.h>
+#include <linux/vmalloc.h>
 #include <linux/major.h>
 #include <linux/mm.h>
 #include <linux/console.h>
@@ -105,6 +106,7 @@
 #include <linux/ctype.h>
 #include <linux/bsearch.h>
 #include <linux/gcd.h>
+#include <linux/screen_info.h>
 
 #define MAX_NR_CON_DRIVER 16
 
@@ -149,7 +151,7 @@
 
 static int con_open(struct tty_struct *, struct file *);
 static void vc_init(struct vc_data *vc, unsigned int rows,
-		    unsigned int cols, int do_clear);
+		    unsigned int cols, int do_clear, int mode);
 static void gotoxy(struct vc_data *vc, int new_x, int new_y);
 static void save_cur(struct vc_data *vc);
 static void reset_terminal(struct vc_data *vc, int do_clear);
@@ -173,6 +175,9 @@
 static int cur_default = CUR_DEFAULT;
 module_param(cur_default, int, S_IRUGO | S_IWUSR);
 
+int vt_handoff = 0;
+module_param_named(handoff, vt_handoff, int, S_IRUGO | S_IWUSR);
+
 /*
  * ignore_poke: don't unblank the screen when things are typed.  This is
  * mainly for the privacy of braille terminal users.
@@ -350,7 +355,7 @@
 	/* allocate everything in one go */
 	memsize = cols * rows * sizeof(char32_t);
 	memsize += rows * sizeof(char32_t *);
-	p = kmalloc(memsize, GFP_KERNEL);
+	p = vmalloc(memsize);
 	if (!p)
 		return NULL;
 
@@ -364,9 +369,14 @@
 	return uniscr;
 }
 
+static void vc_uniscr_free(struct uni_screen *uniscr)
+{
+	vfree(uniscr);
+}
+
 static void vc_uniscr_set(struct vc_data *vc, struct uni_screen *new_uniscr)
 {
-	kfree(vc->vc_uni_screen);
+	vc_uniscr_free(vc->vc_uni_screen);
 	vc->vc_uni_screen = new_uniscr;
 }
 
@@ -890,8 +900,9 @@
 
 static void hide_cursor(struct vc_data *vc)
 {
-	if (vc == sel_cons)
+	if (vc_is_sel(vc))
 		clear_selection();
+
 	vc->vc_sw->con_cursor(vc, CM_ERASE);
 	hide_softcursor(vc);
 }
@@ -901,7 +912,7 @@
 	if (!con_is_fg(vc) || console_blanked || vc->vc_mode == KD_GRAPHICS)
 		return;
 	if (vc->vc_deccm) {
-		if (vc == sel_cons)
+		if (vc_is_sel(vc))
 			clear_selection();
 		add_softcursor(vc);
 		if ((vc->vc_cursor_type & 0x0f) != 1)
@@ -936,10 +947,21 @@
 	WARN_CONSOLE_UNLOCKED();
 
 	set_origin(vc);
-	if (vc->vc_sw->con_flush_scrollback)
+	if (vc->vc_sw->con_flush_scrollback) {
 		vc->vc_sw->con_flush_scrollback(vc);
-	else
+	} else if (con_is_visible(vc)) {
+		/*
+		 * When no con_flush_scrollback method is provided then the
+		 * legacy way for flushing the scrollback buffer is to use
+		 * a side effect of the con_switch method. We do it only on
+		 * the foreground console as background consoles have no
+		 * scrollback buffers in that case and we obviously don't
+		 * want to switch to them.
+		 */
+		hide_cursor(vc);
 		vc->vc_sw->con_switch(vc);
+		set_cursor(vc);
+	}
 }
 
 /*
@@ -984,6 +1006,13 @@
 		}
 		if (tty0dev)
 			sysfs_notify(&tty0dev->kobj, NULL, "active");
+		/*
+		 * If we are switching away from a transparent VT the contents
+		 * will be lost, convert it into a blank text console then
+		 * it will be repainted blank if we ever switch back.
+		 */
+		if (old_vc->vc_mode == KD_TRANSPARENT)
+			old_vc->vc_mode = KD_TEXT;
 	} else {
 		hide_cursor(vc);
 		redraw = 1;
@@ -1063,10 +1092,30 @@
 	module_put(vc->vc_sw->owner);
 }
 
+static void vc_port_destruct(struct tty_port *port)
+{
+	struct vc_data *vc = container_of(port, struct vc_data, port);
+
+	kfree(vc);
+}
+
+static const struct tty_port_operations vc_port_ops = {
+	.destruct = vc_port_destruct,
+};
+
+/*
+ * Change # of rows and columns (0 means unchanged/the size of fg_console)
+ * [this is to be used together with some user program
+ * like resize that changes the hardware videomode]
+ */
+#define VC_MAXCOL (32767)
+#define VC_MAXROW (32767)
+
 int vc_allocate(unsigned int currcons)	/* return 0 on success */
 {
 	struct vt_notifier_param param;
 	struct vc_data *vc;
+	int err;
 
 	WARN_CONSOLE_UNLOCKED();
 
@@ -1088,6 +1137,7 @@
 
 	vc_cons[currcons].d = vc;
 	tty_port_init(&vc->port);
+	vc->port.ops = &vc_port_ops;
 	INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
 
 	visual_init(vc, currcons, 1);
@@ -1095,6 +1145,11 @@
 	if (!*vc->vc_uni_pagedir_loc)
 		con_set_default_unimap(vc);
 
+	err = -EINVAL;
+	if (vc->vc_cols > VC_MAXCOL || vc->vc_rows > VC_MAXROW ||
+	    vc->vc_screenbuf_size > KMALLOC_MAX_SIZE || !vc->vc_screenbuf_size)
+		goto err_free;
+	err = -ENOMEM;
 	vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_KERNEL);
 	if (!vc->vc_screenbuf)
 		goto err_free;
@@ -1104,7 +1159,7 @@
 	if (global_cursor_default == -1)
 		global_cursor_default = 1;
 
-	vc_init(vc, vc->vc_rows, vc->vc_cols, 1);
+	vc_init(vc, vc->vc_rows, vc->vc_cols, 1, KD_TEXT);
 	vcs_make_sysfs(currcons);
 	atomic_notifier_call_chain(&vt_notifier_list, VT_ALLOCATE, &param);
 
@@ -1113,7 +1168,7 @@
 	visual_deinit(vc);
 	kfree(vc);
 	vc_cons[currcons].d = NULL;
-	return -ENOMEM;
+	return err;
 }
 
 static inline int resize_screen(struct vc_data *vc, int width, int height,
@@ -1128,14 +1183,6 @@
 	return err;
 }
 
-/*
- * Change # of rows and columns (0 means unchanged/the size of fg_console)
- * [this is to be used together with some user program
- * like resize that changes the hardware videomode]
- */
-#define VC_RESIZE_MAXCOL (32767)
-#define VC_RESIZE_MAXROW (32767)
-
 /**
  *	vc_do_resize	-	resizing method for the tty
  *	@tty: tty being resized
@@ -1160,7 +1207,7 @@
 	unsigned int old_rows, old_row_size, first_copied_row;
 	unsigned int new_cols, new_rows, new_row_size, new_screen_size;
 	unsigned int user;
-	unsigned short *newscreen;
+	unsigned short *oldscreen, *newscreen;
 	struct uni_screen *new_uniscr = NULL;
 
 	WARN_CONSOLE_UNLOCKED();
@@ -1171,7 +1218,7 @@
 	user = vc->vc_resize_user;
 	vc->vc_resize_user = 0;
 
-	if (cols > VC_RESIZE_MAXCOL || lines > VC_RESIZE_MAXROW)
+	if (cols > VC_MAXCOL || lines > VC_MAXROW)
 		return -EINVAL;
 
 	new_cols = (cols ? cols : vc->vc_cols);
@@ -1182,7 +1229,7 @@
 	if (new_cols == vc->vc_cols && new_rows == vc->vc_rows)
 		return 0;
 
-	if (new_screen_size > (4 << 20))
+	if (new_screen_size > KMALLOC_MAX_SIZE || !new_screen_size)
 		return -EINVAL;
 	newscreen = kzalloc(new_screen_size, GFP_USER);
 	if (!newscreen)
@@ -1196,7 +1243,7 @@
 		}
 	}
 
-	if (vc == sel_cons)
+	if (vc_is_sel(vc))
 		clear_selection();
 
 	old_rows = vc->vc_rows;
@@ -1205,7 +1252,7 @@
 	err = resize_screen(vc, new_cols, new_rows, user);
 	if (err) {
 		kfree(newscreen);
-		kfree(new_uniscr);
+		vc_uniscr_free(new_uniscr);
 		return err;
 	}
 
@@ -1258,10 +1305,11 @@
 	if (new_scr_end > new_origin)
 		scr_memsetw((void *)new_origin, vc->vc_video_erase_char,
 			    new_scr_end - new_origin);
-	kfree(vc->vc_screenbuf);
+	oldscreen = vc->vc_screenbuf;
 	vc->vc_screenbuf = newscreen;
 	vc->vc_screenbuf_size = new_screen_size;
 	set_origin(vc);
+	kfree(oldscreen);
 
 	/* do part of a reset_terminal() */
 	vc->vc_top = 0;
@@ -3035,10 +3083,8 @@
 	switch (type)
 	{
 		case TIOCL_SETSEL:
-			console_lock();
 			ret = set_selection_user((struct tiocl_selection
 						 __user *)(p+1), tty);
-			console_unlock();
 			break;
 		case TIOCL_PASTESEL:
 			ret = paste_selection(tty);
@@ -3244,6 +3290,7 @@
 
 	tty->driver_data = vc;
 	vc->port.tty = tty;
+	tty_port_get(&vc->port);
 
 	if (!tty->winsize.ws_row && !tty->winsize.ws_col) {
 		tty->winsize.ws_row = vc_cons[currcons].d->vc_rows;
@@ -3279,6 +3326,13 @@
 	console_unlock();
 }
 
+static void con_cleanup(struct tty_struct *tty)
+{
+	struct vc_data *vc = tty->driver_data;
+
+	tty_port_put(&vc->port);
+}
+
 static int default_color           = 7; /* white */
 static int default_italic_color    = 2; // green (ASCII)
 static int default_underline_color = 3; // cyan (ASCII)
@@ -3287,7 +3341,7 @@
 module_param_named(underline, default_underline_color, int, S_IRUGO | S_IWUSR);
 
 static void vc_init(struct vc_data *vc, unsigned int rows,
-		    unsigned int cols, int do_clear)
+		    unsigned int cols, int do_clear, int mode)
 {
 	int j, k ;
 
@@ -3298,7 +3352,7 @@
 
 	set_origin(vc);
 	vc->vc_pos = vc->vc_origin;
-	reset_vc(vc);
+	reset_vc(vc, mode);
 	for (j=k=0; j<16; j++) {
 		vc->vc_palette[k++] = default_red[j] ;
 		vc->vc_palette[k++] = default_grn[j] ;
@@ -3355,16 +3409,33 @@
 		mod_timer(&console_timer, jiffies + (blankinterval * HZ));
 	}
 
+	if (vt_handoff > 0 && vt_handoff <= MAX_NR_CONSOLES) {
+		currcons = vt_handoff - 1;
+		vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
+		INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
+		tty_port_init(&vc->port);
+		visual_init(vc, currcons, 1);
+		vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT);
+		vc_init(vc, vc->vc_rows, vc->vc_cols, 0, KD_TRANSPARENT);
+	}
 	for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
+		if (currcons == vt_handoff - 1)
+			continue;
 		vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
 		INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
 		tty_port_init(&vc->port);
 		visual_init(vc, currcons, 1);
+		/* Assuming vc->vc_{cols,rows,screenbuf_size} are sane here. */
 		vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT);
 		vc_init(vc, vc->vc_rows, vc->vc_cols,
-			currcons || !vc->vc_sw->con_save_screen);
+			currcons || !vc->vc_sw->con_save_screen, KD_TEXT);
 	}
 	currcons = fg_console = 0;
+	if (vt_handoff > 0) {
+		printk(KERN_INFO "vt handoff: transparent VT on vt#%d\n",
+								vt_handoff);
+		currcons = fg_console = vt_handoff - 1;
+	}
 	master_display_fg = vc = vc_cons[currcons].d;
 	set_origin(vc);
 	save_screen(vc);
@@ -3403,7 +3474,8 @@
 	.throttle = con_throttle,
 	.unthrottle = con_unthrottle,
 	.resize = vt_resize,
-	.shutdown = con_shutdown
+	.shutdown = con_shutdown,
+	.cleanup = con_cleanup,
 };
 
 static struct cdev vc0_cdev;
@@ -4575,27 +4647,6 @@
 	return rc;
 }
 
-static int con_font_copy(struct vc_data *vc, struct console_font_op *op)
-{
-	int con = op->height;
-	int rc;
-
-
-	console_lock();
-	if (vc->vc_mode != KD_TEXT)
-		rc = -EINVAL;
-	else if (!vc->vc_sw->con_font_copy)
-		rc = -ENOSYS;
-	else if (con < 0 || !vc_cons_allocated(con))
-		rc = -ENOTTY;
-	else if (con == vc->vc_num)	/* nothing to do */
-		rc = 0;
-	else
-		rc = vc->vc_sw->con_font_copy(vc, con);
-	console_unlock();
-	return rc;
-}
-
 int con_font_op(struct vc_data *vc, struct console_font_op *op)
 {
 	switch (op->op) {
@@ -4606,7 +4657,8 @@
 	case KD_FONT_OP_SET_DEFAULT:
 		return con_font_default(vc, op);
 	case KD_FONT_OP_COPY:
-		return con_font_copy(vc, op);
+		/* was buggy and never really used */
+		return -EINVAL;
 	}
 	return -ENOSYS;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/tty/vt/vt_ioctl.c
+++ linux-gkeop-5.4-5.4.0/drivers/tty/vt/vt_ioctl.c
@@ -39,11 +39,32 @@
 #include <linux/kbd_diacr.h>
 #include <linux/selection.h>
 
-char vt_dont_switch;
-extern struct tty_driver *console_driver;
+bool vt_dont_switch;
 
-#define VT_IS_IN_USE(i)	(console_driver->ttys[i] && console_driver->ttys[i]->count)
-#define VT_BUSY(i)	(VT_IS_IN_USE(i) || i == fg_console || vc_cons[i].d == sel_cons)
+static inline bool vt_in_use(unsigned int i)
+{
+	const struct vc_data *vc = vc_cons[i].d;
+
+	/*
+	 * console_lock must be held to prevent the vc from being deallocated
+	 * while we're checking whether it's in-use.
+	 */
+	WARN_CONSOLE_UNLOCKED();
+
+	return vc && kref_read(&vc->port.kref) > 1;
+}
+
+static inline bool vt_busy(int i)
+{
+	if (vt_in_use(i))
+		return true;
+	if (i == fg_console)
+		return true;
+	if (vc_is_sel(vc_cons[i].d))
+		return true;
+
+	return false;
+}
 
 /*
  * Console (vt and kd) routines, as defined by USL SVR4 manual, and by
@@ -223,7 +244,7 @@
 
 
 static inline int 
-do_fontx_ioctl(int cmd, struct consolefontdesc __user *user_cfd, int perm, struct console_font_op *op)
+do_fontx_ioctl(struct vc_data *vc, int cmd, struct consolefontdesc __user *user_cfd, int perm, struct console_font_op *op)
 {
 	struct consolefontdesc cfdarg;
 	int i;
@@ -241,15 +262,16 @@
 		op->height = cfdarg.charheight;
 		op->charcount = cfdarg.charcount;
 		op->data = cfdarg.chardata;
-		return con_font_op(vc_cons[fg_console].d, op);
-	case GIO_FONTX: {
+		return con_font_op(vc, op);
+
+	case GIO_FONTX:
 		op->op = KD_FONT_OP_GET;
 		op->flags = KD_FONT_FLAG_OLD;
 		op->width = 8;
 		op->height = cfdarg.charheight;
 		op->charcount = cfdarg.charcount;
 		op->data = cfdarg.chardata;
-		i = con_font_op(vc_cons[fg_console].d, op);
+		i = con_font_op(vc, op);
 		if (i)
 			return i;
 		cfdarg.charheight = op->height;
@@ -257,7 +279,6 @@
 		if (copy_to_user(user_cfd, &cfdarg, sizeof(struct consolefontdesc)))
 			return -EFAULT;
 		return 0;
-		}
 	}
 	return -EINVAL;
 }
@@ -289,16 +310,14 @@
 	int ret = 0;
 
 	console_lock();
-	if (VT_BUSY(vc_num))
+	if (vt_busy(vc_num))
 		ret = -EBUSY;
 	else if (vc_num)
 		vc = vc_deallocate(vc_num);
 	console_unlock();
 
-	if (vc && vc_num >= MIN_NR_CONSOLES) {
-		tty_port_destroy(&vc->port);
-		kfree(vc);
-	}
+	if (vc && vc_num >= MIN_NR_CONSOLES)
+		tty_port_put(&vc->port);
 
 	return ret;
 }
@@ -311,17 +330,15 @@
 
 	console_lock();
 	for (i = 1; i < MAX_NR_CONSOLES; i++)
-		if (!VT_BUSY(i))
+		if (!vt_busy(i))
 			vc[i] = vc_deallocate(i);
 		else
 			vc[i] = NULL;
 	console_unlock();
 
 	for (i = 1; i < MAX_NR_CONSOLES; i++) {
-		if (vc[i] && i >= MIN_NR_CONSOLES) {
-			tty_port_destroy(&vc[i]->port);
-			kfree(vc[i]);
-		}
+		if (vc[i] && i >= MIN_NR_CONSOLES)
+			tty_port_put(&vc[i]->port);
 	}
 }
 
@@ -335,22 +352,13 @@
 {
 	struct vc_data *vc = tty->driver_data;
 	struct console_font_op op;	/* used in multiple places here */
-	unsigned int console;
+	unsigned int console = vc->vc_num;
 	unsigned char ucval;
 	unsigned int uival;
 	void __user *up = (void __user *)arg;
 	int i, perm;
 	int ret = 0;
 
-	console = vc->vc_num;
-
-
-	if (!vc_cons_allocated(console)) { 	/* impossible? */
-		ret = -ENOIOCTLCMD;
-		goto out;
-	}
-
-
 	/*
 	 * To have permissions to do most of the vt ioctls, we either have
 	 * to be the owner of the tty, or have CAP_SYS_TTY_CONFIG.
@@ -641,15 +649,16 @@
 		struct vt_stat __user *vtstat = up;
 		unsigned short state, mask;
 
-		/* Review: FIXME: Console lock ? */
 		if (put_user(fg_console + 1, &vtstat->v_active))
 			ret = -EFAULT;
 		else {
 			state = 1;	/* /dev/tty0 is always open */
+			console_lock(); /* required by vt_in_use() */
 			for (i = 0, mask = 2; i < MAX_NR_CONSOLES && mask;
 							++i, mask <<= 1)
-				if (VT_IS_IN_USE(i))
+				if (vt_in_use(i))
 					state |= mask;
+			console_unlock();
 			ret = put_user(state, &vtstat->v_state);
 		}
 		break;
@@ -659,10 +668,11 @@
 	 * Returns the first available (non-opened) console.
 	 */
 	case VT_OPENQRY:
-		/* FIXME: locking ? - but then this is a stupid API */
+		console_lock(); /* required by vt_in_use() */
 		for (i = 0; i < MAX_NR_CONSOLES; ++i)
-			if (! VT_IS_IN_USE(i))
+			if (!vt_in_use(i))
 				break;
+		console_unlock();
 		uival = i < MAX_NR_CONSOLES ? (i+1) : -1;
 		goto setint;		 
 
@@ -876,15 +886,30 @@
 			return -EINVAL;
 
 		for (i = 0; i < MAX_NR_CONSOLES; i++) {
+			struct vc_data *vcp;
+
 			if (!vc_cons[i].d)
 				continue;
 			console_lock();
-			if (v.v_vlin)
-				vc_cons[i].d->vc_scan_lines = v.v_vlin;
-			if (v.v_clin)
-				vc_cons[i].d->vc_font.height = v.v_clin;
-			vc_cons[i].d->vc_resize_user = 1;
-			vc_resize(vc_cons[i].d, v.v_cols, v.v_rows);
+			vcp = vc_cons[i].d;
+			if (vcp) {
+				int ret;
+				int save_scan_lines = vcp->vc_scan_lines;
+				int save_font_height = vcp->vc_font.height;
+
+				if (v.v_vlin)
+					vcp->vc_scan_lines = v.v_vlin;
+				if (v.v_clin)
+					vcp->vc_font.height = v.v_clin;
+				vcp->vc_resize_user = 1;
+				ret = vc_resize(vcp, v.v_cols, v.v_rows);
+				if (ret) {
+					vcp->vc_scan_lines = save_scan_lines;
+					vcp->vc_font.height = save_font_height;
+					console_unlock();
+					return ret;
+				}
+			}
 			console_unlock();
 		}
 		break;
@@ -899,7 +924,7 @@
 		op.height = 0;
 		op.charcount = 256;
 		op.data = up;
-		ret = con_font_op(vc_cons[fg_console].d, &op);
+		ret = con_font_op(vc, &op);
 		break;
 	}
 
@@ -910,7 +935,7 @@
 		op.height = 32;
 		op.charcount = 256;
 		op.data = up;
-		ret = con_font_op(vc_cons[fg_console].d, &op);
+		ret = con_font_op(vc, &op);
 		break;
 	}
 
@@ -927,7 +952,7 @@
 
 	case PIO_FONTX:
 	case GIO_FONTX:
-		ret = do_fontx_ioctl(cmd, up, perm, &op);
+		ret = do_fontx_ioctl(vc, cmd, up, perm, &op);
 		break;
 
 	case PIO_FONTRESET:
@@ -944,11 +969,11 @@
 		{
 		op.op = KD_FONT_OP_SET_DEFAULT;
 		op.data = NULL;
-		ret = con_font_op(vc_cons[fg_console].d, &op);
+		ret = con_font_op(vc, &op);
 		if (ret)
 			break;
 		console_lock();
-		con_set_default_unimap(vc_cons[fg_console].d);
+		con_set_default_unimap(vc);
 		console_unlock();
 		break;
 		}
@@ -1006,12 +1031,12 @@
 	case VT_LOCKSWITCH:
 		if (!capable(CAP_SYS_TTY_CONFIG))
 			return -EPERM;
-		vt_dont_switch = 1;
+		vt_dont_switch = true;
 		break;
 	case VT_UNLOCKSWITCH:
 		if (!capable(CAP_SYS_TTY_CONFIG))
 			return -EPERM;
-		vt_dont_switch = 0;
+		vt_dont_switch = false;
 		break;
 	case VT_GETHIFONTMASK:
 		ret = put_user(vc->vc_hi_font_mask,
@@ -1027,9 +1052,9 @@
 	return ret;
 }
 
-void reset_vc(struct vc_data *vc)
+void reset_vc(struct vc_data *vc, int mode)
 {
-	vc->vc_mode = KD_TEXT;
+	vc->vc_mode = mode;
 	vt_reset_unicode(vc->vc_num);
 	vc->vt_mode.mode = VT_AUTO;
 	vc->vt_mode.waitv = 0;
@@ -1061,7 +1086,7 @@
 		 */
 		if (tty)
 			__do_SAK(tty);
-		reset_vc(vc);
+		reset_vc(vc, KD_TEXT);
 	}
 	console_unlock();
 }
@@ -1075,8 +1100,9 @@
 };
 
 static inline int
-compat_fontx_ioctl(int cmd, struct compat_consolefontdesc __user *user_cfd,
-			 int perm, struct console_font_op *op)
+compat_fontx_ioctl(struct vc_data *vc, int cmd,
+		   struct compat_consolefontdesc __user *user_cfd,
+		   int perm, struct console_font_op *op)
 {
 	struct compat_consolefontdesc cfdarg;
 	int i;
@@ -1094,7 +1120,8 @@
 		op->height = cfdarg.charheight;
 		op->charcount = cfdarg.charcount;
 		op->data = compat_ptr(cfdarg.chardata);
-		return con_font_op(vc_cons[fg_console].d, op);
+		return con_font_op(vc, op);
+
 	case GIO_FONTX:
 		op->op = KD_FONT_OP_GET;
 		op->flags = KD_FONT_FLAG_OLD;
@@ -1102,7 +1129,7 @@
 		op->height = cfdarg.charheight;
 		op->charcount = cfdarg.charcount;
 		op->data = compat_ptr(cfdarg.chardata);
-		i = con_font_op(vc_cons[fg_console].d, op);
+		i = con_font_op(vc, op);
 		if (i)
 			return i;
 		cfdarg.charheight = op->height;
@@ -1175,14 +1202,9 @@
 {
 	struct vc_data *vc = tty->driver_data;
 	struct console_font_op op;	/* used in multiple places here */
-	unsigned int console = vc->vc_num;
 	void __user *up = compat_ptr(arg);
 	int perm;
 
-
-	if (!vc_cons_allocated(console)) 	/* impossible? */
-		return -ENOIOCTLCMD;
-
 	/*
 	 * To have permissions to do most of the vt ioctls, we either have
 	 * to be the owner of the tty, or have CAP_SYS_TTY_CONFIG.
@@ -1197,7 +1219,7 @@
 	 */
 	case PIO_FONTX:
 	case GIO_FONTX:
-		return compat_fontx_ioctl(cmd, up, perm, &op);
+		return compat_fontx_ioctl(vc, cmd, up, perm, &op);
 
 	case KDFONTOP:
 		return compat_kdfontop_ioctl(up, perm, &op, vc);
@@ -1301,7 +1323,7 @@
 		 * this outside of VT_PROCESS but there is no single process
 		 * to account for and tracking tty count may be undesirable.
 		 */
-			reset_vc(vc);
+			reset_vc(vc, KD_TEXT);
 
 			if (old_vc_mode != vc->vc_mode) {
 				if (vc->vc_mode == KD_TEXT)
@@ -1373,7 +1395,7 @@
 		 * this outside of VT_PROCESS but there is no single process
 		 * to account for and tracking tty count may be undesirable.
 		 */
-		reset_vc(vc);
+		reset_vc(vc, KD_TEXT);
 
 		/*
 		 * Fall through to normal (VT_AUTO) handling of the switch...
--- linux-gkeop-5.4-5.4.0.orig/drivers/uio/uio.c
+++ linux-gkeop-5.4-5.4.0/drivers/uio/uio.c
@@ -413,10 +413,10 @@
 	return retval;
 }
 
-static void uio_free_minor(struct uio_device *idev)
+static void uio_free_minor(unsigned long minor)
 {
 	mutex_lock(&minor_lock);
-	idr_remove(&uio_idr, idev->minor);
+	idr_remove(&uio_idr, minor);
 	mutex_unlock(&minor_lock);
 }
 
@@ -990,7 +990,7 @@
 err_uio_dev_add_attributes:
 	device_del(&idev->dev);
 err_device_create:
-	uio_free_minor(idev);
+	uio_free_minor(idev->minor);
 	put_device(&idev->dev);
 	return ret;
 }
@@ -1004,13 +1004,13 @@
 void uio_unregister_device(struct uio_info *info)
 {
 	struct uio_device *idev;
+	unsigned long minor;
 
 	if (!info || !info->uio_dev)
 		return;
 
 	idev = info->uio_dev;
-
-	uio_free_minor(idev);
+	minor = idev->minor;
 
 	mutex_lock(&idev->info_lock);
 	uio_dev_del_attributes(idev);
@@ -1026,6 +1026,8 @@
 
 	device_unregister(&idev->dev);
 
+	uio_free_minor(minor);
+
 	return;
 }
 EXPORT_SYMBOL_GPL(uio_unregister_device);
--- linux-gkeop-5.4-5.4.0.orig/drivers/uio/uio_dmem_genirq.c
+++ linux-gkeop-5.4-5.4.0/drivers/uio/uio_dmem_genirq.c
@@ -132,11 +132,13 @@
 	if (irq_on) {
 		if (test_and_clear_bit(0, &priv->flags))
 			enable_irq(dev_info->irq);
+		spin_unlock_irqrestore(&priv->lock, flags);
 	} else {
-		if (!test_and_set_bit(0, &priv->flags))
+		if (!test_and_set_bit(0, &priv->flags)) {
+			spin_unlock_irqrestore(&priv->lock, flags);
 			disable_irq(dev_info->irq);
+		}
 	}
-	spin_unlock_irqrestore(&priv->lock, flags);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/uio/uio_pdrv_genirq.c
+++ linux-gkeop-5.4-5.4.0/drivers/uio/uio_pdrv_genirq.c
@@ -152,9 +152,9 @@
 	priv->pdev = pdev;
 
 	if (!uioinfo->irq) {
-		ret = platform_get_irq(pdev, 0);
+		ret = platform_get_irq_optional(pdev, 0);
 		uioinfo->irq = ret;
-		if (ret == -ENXIO && pdev->dev.of_node)
+		if (ret == -ENXIO)
 			uioinfo->irq = UIO_IRQ_NONE;
 		else if (ret < 0) {
 			dev_err(&pdev->dev, "failed to get IRQ\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/atm/ueagle-atm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/atm/ueagle-atm.c
@@ -2124,10 +2124,11 @@
 /*
  * Start the modem : init the data and start kernel thread
  */
-static int uea_boot(struct uea_softc *sc)
+static int uea_boot(struct uea_softc *sc, struct usb_interface *intf)
 {
-	int ret, size;
 	struct intr_pkt *intr;
+	int ret = -ENOMEM;
+	int size;
 
 	uea_enters(INS_TO_USBDEV(sc));
 
@@ -2152,6 +2153,11 @@
 	if (UEA_CHIP_VERSION(sc) == ADI930)
 		load_XILINX_firmware(sc);
 
+	if (intf->cur_altsetting->desc.bNumEndpoints < 1) {
+		ret = -ENODEV;
+		goto err0;
+	}
+
 	intr = kmalloc(size, GFP_KERNEL);
 	if (!intr)
 		goto err0;
@@ -2163,8 +2169,7 @@
 	usb_fill_int_urb(sc->urb_int, sc->usb_dev,
 			 usb_rcvintpipe(sc->usb_dev, UEA_INTR_PIPE),
 			 intr, size, uea_intr, sc,
-			 sc->usb_dev->actconfig->interface[0]->altsetting[0].
-			 endpoint[0].desc.bInterval);
+			 intf->cur_altsetting->endpoint[0].desc.bInterval);
 
 	ret = usb_submit_urb(sc->urb_int, GFP_KERNEL);
 	if (ret < 0) {
@@ -2179,6 +2184,7 @@
 	sc->kthread = kthread_create(uea_kthread, sc, "ueagle-atm");
 	if (IS_ERR(sc->kthread)) {
 		uea_err(INS_TO_USBDEV(sc), "failed to create thread\n");
+		ret = PTR_ERR(sc->kthread);
 		goto err2;
 	}
 
@@ -2193,7 +2199,7 @@
 	kfree(intr);
 err0:
 	uea_leaves(INS_TO_USBDEV(sc));
-	return -ENOMEM;
+	return ret;
 }
 
 /*
@@ -2548,7 +2554,7 @@
 		}
 	}
 
-	ret = uea_boot(sc);
+	ret = uea_boot(sc, intf);
 	if (ret < 0)
 		goto error;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/c67x00/c67x00-sched.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/c67x00/c67x00-sched.c
@@ -486,7 +486,7 @@
 	c67x00_release_urb(c67x00, urb);
 	usb_hcd_unlink_urb_from_ep(c67x00_hcd_to_hcd(c67x00), urb);
 	spin_unlock(&c67x00->lock);
-	usb_hcd_giveback_urb(c67x00_hcd_to_hcd(c67x00), urb, urbp->status);
+	usb_hcd_giveback_urb(c67x00_hcd_to_hcd(c67x00), urb, status);
 	spin_lock(&c67x00->lock);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/cdns3/ep0.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/cdns3/ep0.c
@@ -37,18 +37,18 @@
 	struct cdns3_usb_regs __iomem *regs = priv_dev->regs;
 	struct cdns3_endpoint *priv_ep = priv_dev->eps[0];
 
-	priv_ep->trb_pool[0].buffer = TRB_BUFFER(dma_addr);
-	priv_ep->trb_pool[0].length = TRB_LEN(length);
+	priv_ep->trb_pool[0].buffer = cpu_to_le32(TRB_BUFFER(dma_addr));
+	priv_ep->trb_pool[0].length = cpu_to_le32(TRB_LEN(length));
 
 	if (zlp) {
-		priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_TYPE(TRB_NORMAL);
-		priv_ep->trb_pool[1].buffer = TRB_BUFFER(dma_addr);
-		priv_ep->trb_pool[1].length = TRB_LEN(0);
-		priv_ep->trb_pool[1].control = TRB_CYCLE | TRB_IOC |
-		    TRB_TYPE(TRB_NORMAL);
+		priv_ep->trb_pool[0].control = cpu_to_le32(TRB_CYCLE | TRB_TYPE(TRB_NORMAL));
+		priv_ep->trb_pool[1].buffer = cpu_to_le32(TRB_BUFFER(dma_addr));
+		priv_ep->trb_pool[1].length = cpu_to_le32(TRB_LEN(0));
+		priv_ep->trb_pool[1].control = cpu_to_le32(TRB_CYCLE | TRB_IOC |
+		    TRB_TYPE(TRB_NORMAL));
 	} else {
-		priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_IOC |
-		    TRB_TYPE(TRB_NORMAL);
+		priv_ep->trb_pool[0].control = cpu_to_le32(TRB_CYCLE | TRB_IOC |
+		    TRB_TYPE(TRB_NORMAL));
 		priv_ep->trb_pool[1].control = 0;
 	}
 
@@ -264,11 +264,11 @@
 	case USB_RECIP_INTERFACE:
 		return cdns3_ep0_delegate_req(priv_dev, ctrl);
 	case USB_RECIP_ENDPOINT:
-		index = cdns3_ep_addr_to_index(ctrl->wIndex);
+		index = cdns3_ep_addr_to_index(le16_to_cpu(ctrl->wIndex));
 		priv_ep = priv_dev->eps[index];
 
 		/* check if endpoint is stalled or stall is pending */
-		cdns3_select_ep(priv_dev, ctrl->wIndex);
+		cdns3_select_ep(priv_dev, le16_to_cpu(ctrl->wIndex));
 		if (EP_STS_STALL(readl(&priv_dev->regs->ep_sts)) ||
 		    (priv_ep->flags & EP_STALL_PENDING))
 			usb_status =  BIT(USB_ENDPOINT_HALT);
@@ -327,7 +327,8 @@
 		if (!set || (tmode & 0xff) != 0)
 			return -EINVAL;
 
-		switch (tmode >> 8) {
+		tmode >>= 8;
+		switch (tmode) {
 		case TEST_J:
 		case TEST_K:
 		case TEST_SE0_NAK:
@@ -387,10 +388,10 @@
 	if (!(ctrl->wIndex & ~USB_DIR_IN))
 		return 0;
 
-	index = cdns3_ep_addr_to_index(ctrl->wIndex);
+	index = cdns3_ep_addr_to_index(le16_to_cpu(ctrl->wIndex));
 	priv_ep = priv_dev->eps[index];
 
-	cdns3_select_ep(priv_dev, ctrl->wIndex);
+	cdns3_select_ep(priv_dev, le16_to_cpu(ctrl->wIndex));
 
 	if (set)
 		__cdns3_gadget_ep_set_halt(priv_ep);
@@ -451,7 +452,7 @@
 	if (priv_dev->gadget.state < USB_STATE_ADDRESS)
 		return -EINVAL;
 
-	if (ctrl_req->wLength != 6) {
+	if (le16_to_cpu(ctrl_req->wLength) != 6) {
 		dev_err(priv_dev->dev, "Set SEL should be 6 bytes, got %d\n",
 			ctrl_req->wLength);
 		return -EINVAL;
@@ -475,7 +476,7 @@
 	if (ctrl_req->wIndex || ctrl_req->wLength)
 		return -EINVAL;
 
-	priv_dev->isoch_delay = ctrl_req->wValue;
+	priv_dev->isoch_delay = le16_to_cpu(ctrl_req->wValue);
 
 	return 0;
 }
@@ -711,15 +712,17 @@
 	int ret = 0;
 	u8 zlp = 0;
 
+	spin_lock_irqsave(&priv_dev->lock, flags);
 	trace_cdns3_ep0_queue(priv_dev, request);
 
 	/* cancel the request if controller receive new SETUP packet. */
-	if (cdns3_check_new_setup(priv_dev))
+	if (cdns3_check_new_setup(priv_dev)) {
+		spin_unlock_irqrestore(&priv_dev->lock, flags);
 		return -ECONNRESET;
+	}
 
 	/* send STATUS stage. Should be called only for SET_CONFIGURATION */
 	if (priv_dev->ep0_stage == CDNS3_STATUS_STAGE) {
-		spin_lock_irqsave(&priv_dev->lock, flags);
 		cdns3_select_ep(priv_dev, 0x00);
 
 		erdy_sent = !priv_dev->hw_configured_flag;
@@ -744,7 +747,6 @@
 		return 0;
 	}
 
-	spin_lock_irqsave(&priv_dev->lock, flags);
 	if (!list_empty(&priv_ep->pending_req_list)) {
 		dev_err(priv_dev->dev,
 			"can't handle multiple requests for ep0\n");
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/cdns3/gadget.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/cdns3/gadget.c
@@ -189,10 +189,10 @@
 						       GFP_DMA32 | GFP_ATOMIC);
 		if (!priv_ep->trb_pool)
 			return -ENOMEM;
-	} else {
-		memset(priv_ep->trb_pool, 0, ring_size);
 	}
 
+	memset(priv_ep->trb_pool, 0, ring_size);
+
 	if (!priv_ep->num)
 		return 0;
 
@@ -1375,13 +1375,10 @@
  */
 static irqreturn_t cdns3_device_irq_handler(int irq, void *data)
 {
-	struct cdns3_device *priv_dev;
-	struct cdns3 *cdns = data;
+	struct cdns3_device *priv_dev = data;
 	irqreturn_t ret = IRQ_NONE;
 	u32 reg;
 
-	priv_dev = cdns->gadget_dev;
-
 	/* check USB device interrupt */
 	reg = readl(&priv_dev->regs->usb_ists);
 	if (reg) {
@@ -1419,14 +1416,12 @@
  */
 static irqreturn_t cdns3_device_thread_irq_handler(int irq, void *data)
 {
-	struct cdns3_device *priv_dev;
-	struct cdns3 *cdns = data;
+	struct cdns3_device *priv_dev = data;
 	irqreturn_t ret = IRQ_NONE;
 	unsigned long flags;
 	int bit;
 	u32 reg;
 
-	priv_dev = cdns->gadget_dev;
 	spin_lock_irqsave(&priv_dev->lock, flags);
 
 	reg = readl(&priv_dev->regs->usb_ists);
@@ -2110,9 +2105,9 @@
 	link_trb = priv_req->trb;
 
 	/* Update ring only if removed request is on pending_req_list list */
-	if (req_on_hw_ring) {
+	if (req_on_hw_ring && link_trb) {
 		link_trb->buffer = TRB_BUFFER(priv_ep->trb_pool_dma +
-					      (priv_req->start_trb * TRB_SIZE));
+			((priv_req->end_trb + 1) * TRB_SIZE));
 		link_trb->control = (link_trb->control & TRB_CYCLE) |
 				    TRB_TYPE(TRB_LINK) | TRB_CHAIN;
 
@@ -2157,11 +2152,21 @@
 {
 	struct cdns3_device *priv_dev = priv_ep->cdns3_dev;
 	struct usb_request *request;
+	struct cdns3_request *priv_req;
+	struct cdns3_trb *trb = NULL;
 	int ret;
 	int val;
 
 	trace_cdns3_halt(priv_ep, 0, 0);
 
+	request = cdns3_next_request(&priv_ep->pending_req_list);
+	if (request) {
+		priv_req = to_cdns3_request(request);
+		trb = priv_req->trb;
+		if (trb)
+			trb->control = trb->control ^ TRB_CYCLE;
+	}
+
 	writel(EP_CMD_CSTALL | EP_CMD_EPRST, &priv_dev->regs->ep_cmd);
 
 	/* wait for EPRST cleared */
@@ -2172,10 +2177,11 @@
 
 	priv_ep->flags &= ~(EP_STALLED | EP_STALL_PENDING);
 
-	request = cdns3_next_request(&priv_ep->pending_req_list);
-
-	if (request)
+	if (request) {
+		if (trb)
+			trb->control = trb->control ^ TRB_CYCLE;
 		cdns3_rearm_transfer(priv_ep, 1);
+	}
 
 	cdns3_start_all_request(priv_dev, priv_ep);
 	return ret;
@@ -2539,12 +2545,12 @@
 
 	priv_dev = cdns->gadget_dev;
 
-	devm_free_irq(cdns->dev, cdns->dev_irq, cdns);
 
 	pm_runtime_mark_last_busy(cdns->dev);
 	pm_runtime_put_autosuspend(cdns->dev);
 
 	usb_del_gadget_udc(&priv_dev->gadget);
+	devm_free_irq(cdns->dev, cdns->dev_irq, priv_dev);
 
 	cdns3_free_all_eps(priv_dev);
 
@@ -2710,7 +2716,8 @@
 	ret = devm_request_threaded_irq(cdns->dev, cdns->dev_irq,
 					cdns3_device_irq_handler,
 					cdns3_device_thread_irq_handler,
-					IRQF_SHARED, dev_name(cdns->dev), cdns);
+					IRQF_SHARED, dev_name(cdns->dev),
+					cdns->gadget_dev);
 
 	if (ret)
 		goto err0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/cdns3/gadget.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/cdns3/gadget.h
@@ -1057,7 +1057,7 @@
 #define TRB_TDL_SS_SIZE_GET(p)	(((p) & GENMASK(23, 17)) >> 17)
 
 /* transfer_len bitmasks - bits 31:24 */
-#define TRB_BURST_LEN(p)	(((p) << 24) & GENMASK(31, 24))
+#define TRB_BURST_LEN(p)	((unsigned int)((p) << 24) & GENMASK(31, 24))
 #define TRB_BURST_LEN_GET(p)	(((p) & GENMASK(31, 24)) >> 24)
 
 /* Data buffer pointer bitmasks*/
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/cdns3/trace.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/cdns3/trace.h
@@ -150,7 +150,7 @@
 		__dynamic_array(char, str, CDNS3_MSG_MAX)
 	),
 	TP_fast_assign(
-		__entry->ep_dir = priv_dev->ep0_data_dir;
+		__entry->ep_dir = priv_dev->selected_ep;
 		__entry->ep_sts = ep_sts;
 	),
 	TP_printk("%s", cdns3_decode_ep0_irq(__get_str(str),
@@ -333,9 +333,9 @@
 	TP_fast_assign(
 		__assign_str(name, priv_ep->name);
 		__entry->trb = trb;
-		__entry->buffer = trb->buffer;
-		__entry->length = trb->length;
-		__entry->control = trb->control;
+		__entry->buffer = le32_to_cpu(trb->buffer);
+		__entry->length = le32_to_cpu(trb->length);
+		__entry->control = le32_to_cpu(trb->control);
 		__entry->type = usb_endpoint_type(priv_ep->endpoint.desc);
 	),
 	TP_printk("%s: trb %p, dma buf: 0x%08x, size: %ld, burst: %d ctrl: 0x%08x (%s%s%s%s%s%s%s)",
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/chipidea/ci_hdrc_imx.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -57,7 +57,8 @@
 
 static const struct ci_hdrc_imx_platform_flag imx6ul_usb_data = {
 	.flags = CI_HDRC_SUPPORTS_RUNTIME_PM |
-		CI_HDRC_TURN_VBUS_EARLY_ON,
+		CI_HDRC_TURN_VBUS_EARLY_ON |
+		CI_HDRC_DISABLE_DEVICE_STREAMING,
 };
 
 static const struct ci_hdrc_imx_platform_flag imx7d_usb_data = {
@@ -138,9 +139,13 @@
 	misc_pdev = of_find_device_by_node(args.np);
 	of_node_put(args.np);
 
-	if (!misc_pdev || !platform_get_drvdata(misc_pdev))
+	if (!misc_pdev)
 		return ERR_PTR(-EPROBE_DEFER);
 
+	if (!platform_get_drvdata(misc_pdev)) {
+		put_device(&misc_pdev->dev);
+		return ERR_PTR(-EPROBE_DEFER);
+	}
 	data->dev = &misc_pdev->dev;
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/chipidea/ci_hdrc_msm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/chipidea/ci_hdrc_msm.c
@@ -114,7 +114,7 @@
 			hw_write_id_reg(ci, HS_PHY_GENCONFIG_2,
 					HS_PHY_ULPI_TX_PKT_EN_CLR_FIX, 0);
 
-		if (!IS_ERR(ci->platdata->vbus_extcon.edev)) {
+		if (!IS_ERR(ci->platdata->vbus_extcon.edev) || ci->role_switch) {
 			hw_write_id_reg(ci, HS_PHY_GENCONFIG_2,
 					HS_PHY_SESS_VLD_CTRL_EN,
 					HS_PHY_SESS_VLD_CTRL_EN);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/chipidea/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/chipidea/core.c
@@ -1261,6 +1261,29 @@
 	enable_irq(ci->irq);
 }
 
+/*
+ * Handle the wakeup interrupt triggered by extcon connector
+ * We need to call ci_irq again for extcon since the first
+ * interrupt (wakeup int) only let the controller be out of
+ * low power mode, but not handle any interrupts.
+ */
+static void ci_extcon_wakeup_int(struct ci_hdrc *ci)
+{
+	struct ci_hdrc_cable *cable_id, *cable_vbus;
+	u32 otgsc = hw_read_otgsc(ci, ~0);
+
+	cable_id = &ci->platdata->id_extcon;
+	cable_vbus = &ci->platdata->vbus_extcon;
+
+	if (!IS_ERR(cable_id->edev) && ci->is_otg &&
+		(otgsc & OTGSC_IDIE) && (otgsc & OTGSC_IDIS))
+		ci_irq(ci->irq, ci);
+
+	if (!IS_ERR(cable_vbus->edev) && ci->is_otg &&
+		(otgsc & OTGSC_BSVIE) && (otgsc & OTGSC_BSVIS))
+		ci_irq(ci->irq, ci);
+}
+
 static int ci_controller_resume(struct device *dev)
 {
 	struct ci_hdrc *ci = dev_get_drvdata(dev);
@@ -1293,6 +1316,7 @@
 		enable_irq(ci->irq);
 		if (ci_otg_is_fsm_mode(ci))
 			ci_otg_fsm_wakeup_by_srp(ci);
+		ci_extcon_wakeup_int(ci);
 	}
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/chipidea/host.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/chipidea/host.c
@@ -26,6 +26,7 @@
 
 struct ehci_ci_priv {
 	struct regulator *reg_vbus;
+	bool enabled;
 };
 
 static int ehci_ci_portpower(struct usb_hcd *hcd, int portnum, bool enable)
@@ -37,7 +38,7 @@
 	int ret = 0;
 	int port = HCS_N_PORTS(ehci->hcs_params);
 
-	if (priv->reg_vbus) {
+	if (priv->reg_vbus && enable != priv->enabled) {
 		if (port > 1) {
 			dev_warn(dev,
 				"Not support multi-port regulator control\n");
@@ -53,6 +54,7 @@
 				enable ? "enable" : "disable", ret);
 			return ret;
 		}
+		priv->enabled = enable;
 	}
 
 	if (enable && (ci->platdata->phy_mode == USBPHY_INTERFACE_MODE_HSIC)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/class/cdc-acm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/class/cdc-acm.c
@@ -378,21 +378,19 @@
 	if (current_size < expected_size) {
 		/* notification is transmitted fragmented, reassemble */
 		if (acm->nb_size < expected_size) {
-			if (acm->nb_size) {
-				kfree(acm->notification_buffer);
-				acm->nb_size = 0;
-			}
+			u8 *new_buffer;
 			alloc_size = roundup_pow_of_two(expected_size);
-			/*
-			 * kmalloc ensures a valid notification_buffer after a
-			 * use of kfree in case the previous allocation was too
-			 * small. Final freeing is done on disconnect.
-			 */
-			acm->notification_buffer =
-				kmalloc(alloc_size, GFP_ATOMIC);
-			if (!acm->notification_buffer)
+			/* Final freeing is done on disconnect. */
+			new_buffer = krealloc(acm->notification_buffer,
+					      alloc_size, GFP_ATOMIC);
+			if (!new_buffer) {
+				acm->nb_index = 0;
 				goto exit;
+			}
+
+			acm->notification_buffer = new_buffer;
 			acm->nb_size = alloc_size;
+			dr = (struct usb_cdc_notification *)acm->notification_buffer;
 		}
 
 		copy_size = min(current_size,
@@ -412,9 +410,12 @@
 
 exit:
 	retval = usb_submit_urb(urb, GFP_ATOMIC);
-	if (retval && retval != -EPERM)
+	if (retval && retval != -EPERM && retval != -ENODEV)
 		dev_err(&acm->control->dev,
 			"%s - usb_submit_urb failed: %d\n", __func__, retval);
+	else
+		dev_vdbg(&acm->control->dev,
+			"control resubmission terminated %d\n", retval);
 }
 
 static int acm_submit_read_urb(struct acm *acm, int index, gfp_t mem_flags)
@@ -430,6 +431,8 @@
 			dev_err(&acm->data->dev,
 				"urb %d failed submission with %d\n",
 				index, res);
+		} else {
+			dev_vdbg(&acm->data->dev, "intended failure %d\n", res);
 		}
 		set_bit(index, &acm->read_urbs_free);
 		return res;
@@ -471,6 +474,7 @@
 	int status = urb->status;
 	bool stopped = false;
 	bool stalled = false;
+	bool cooldown = false;
 
 	dev_vdbg(&acm->data->dev, "got urb %d, len %d, status %d\n",
 		rb->index, urb->actual_length, status);
@@ -497,6 +501,15 @@
 			__func__, status);
 		stopped = true;
 		break;
+	case -EOVERFLOW:
+	case -EPROTO:
+		dev_dbg(&acm->data->dev,
+			"%s - cooling babbling device\n", __func__);
+		usb_mark_last_busy(acm->dev);
+		set_bit(rb->index, &acm->urbs_in_error_delay);
+		set_bit(ACM_ERROR_DELAY, &acm->flags);
+		cooldown = true;
+		break;
 	default:
 		dev_dbg(&acm->data->dev,
 			"%s - nonzero urb status received: %d\n",
@@ -518,9 +531,11 @@
 	 */
 	smp_mb__after_atomic();
 
-	if (stopped || stalled) {
+	if (stopped || stalled || cooldown) {
 		if (stalled)
-			schedule_work(&acm->work);
+			schedule_delayed_work(&acm->dwork, 0);
+		else if (cooldown)
+			schedule_delayed_work(&acm->dwork, HZ / 2);
 		return;
 	}
 
@@ -548,23 +563,29 @@
 	acm_write_done(acm, wb);
 	spin_unlock_irqrestore(&acm->write_lock, flags);
 	set_bit(EVENT_TTY_WAKEUP, &acm->flags);
-	schedule_work(&acm->work);
+	schedule_delayed_work(&acm->dwork, 0);
 }
 
 static void acm_softint(struct work_struct *work)
 {
 	int i;
-	struct acm *acm = container_of(work, struct acm, work);
+	struct acm *acm = container_of(work, struct acm, dwork.work);
 
 	if (test_bit(EVENT_RX_STALL, &acm->flags)) {
-		if (!(usb_autopm_get_interface(acm->data))) {
+		smp_mb(); /* against acm_suspend() */
+		if (!acm->susp_count) {
 			for (i = 0; i < acm->rx_buflimit; i++)
 				usb_kill_urb(acm->read_urbs[i]);
 			usb_clear_halt(acm->dev, acm->in);
 			acm_submit_read_urbs(acm, GFP_KERNEL);
-			usb_autopm_put_interface(acm->data);
+			clear_bit(EVENT_RX_STALL, &acm->flags);
 		}
-		clear_bit(EVENT_RX_STALL, &acm->flags);
+	}
+
+	if (test_and_clear_bit(ACM_ERROR_DELAY, &acm->flags)) {
+		for (i = 0; i < acm->rx_buflimit; i++)
+			if (test_and_clear_bit(i, &acm->urbs_in_error_delay))
+				acm_submit_read_urb(acm, i, GFP_KERNEL);
 	}
 
 	if (test_and_clear_bit(EVENT_TTY_WAKEUP, &acm->flags))
@@ -896,10 +917,10 @@
 
 	ss->xmit_fifo_size = acm->writesize;
 	ss->baud_base = le32_to_cpu(acm->line.dwDTERate);
-	ss->close_delay	= acm->port.close_delay / 10;
+	ss->close_delay	= jiffies_to_msecs(acm->port.close_delay) / 10;
 	ss->closing_wait = acm->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ?
 				ASYNC_CLOSING_WAIT_NONE :
-				acm->port.closing_wait / 10;
+				jiffies_to_msecs(acm->port.closing_wait) / 10;
 	return 0;
 }
 
@@ -907,17 +928,25 @@
 {
 	struct acm *acm = tty->driver_data;
 	unsigned int closing_wait, close_delay;
+	unsigned int old_closing_wait, old_close_delay;
 	int retval = 0;
 
-	close_delay = ss->close_delay * 10;
+	close_delay = msecs_to_jiffies(ss->close_delay * 10);
 	closing_wait = ss->closing_wait == ASYNC_CLOSING_WAIT_NONE ?
-			ASYNC_CLOSING_WAIT_NONE : ss->closing_wait * 10;
+			ASYNC_CLOSING_WAIT_NONE :
+			msecs_to_jiffies(ss->closing_wait * 10);
+
+	/* we must redo the rounding here, so that the values match */
+	old_close_delay	= jiffies_to_msecs(acm->port.close_delay) / 10;
+	old_closing_wait = acm->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ?
+				ASYNC_CLOSING_WAIT_NONE :
+				jiffies_to_msecs(acm->port.closing_wait) / 10;
 
 	mutex_lock(&acm->port.mutex);
 
 	if (!capable(CAP_SYS_ADMIN)) {
-		if ((close_delay != acm->port.close_delay) ||
-		    (closing_wait != acm->port.closing_wait))
+		if ((ss->close_delay != old_close_delay) ||
+		    (ss->closing_wait != old_closing_wait))
 			retval = -EPERM;
 		else
 			retval = -EOPNOTSUPP;
@@ -1215,9 +1244,21 @@
 			}
 		}
 	} else {
+		int class = -1;
+
 		data_intf_num = union_header->bSlaveInterface0;
 		control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0);
 		data_interface = usb_ifnum_to_if(usb_dev, data_intf_num);
+
+		if (control_interface)
+			class = control_interface->cur_altsetting->desc.bInterfaceClass;
+
+		if (class != USB_CLASS_COMM && class != USB_CLASS_CDC_DATA) {
+			dev_dbg(&intf->dev, "Broken union descriptor, assuming single interface\n");
+			combined_interfaces = 1;
+			control_interface = data_interface = intf;
+			goto look_for_collapsed_interface;
+		}
 	}
 
 	if (!control_interface || !data_interface) {
@@ -1324,7 +1365,7 @@
 	acm->ctrlsize = ctrlsize;
 	acm->readsize = readsize;
 	acm->rx_buflimit = num_rx_buf;
-	INIT_WORK(&acm->work, acm_softint);
+	INIT_DELAYED_WORK(&acm->dwork, acm_softint);
 	init_waitqueue_head(&acm->wioctl);
 	spin_lock_init(&acm->write_lock);
 	spin_lock_init(&acm->read_lock);
@@ -1533,7 +1574,7 @@
 	}
 
 	acm_kill_urbs(acm);
-	cancel_work_sync(&acm->work);
+	cancel_delayed_work_sync(&acm->dwork);
 
 	tty_unregister_device(acm_tty_driver, acm->minor);
 
@@ -1575,7 +1616,8 @@
 		return 0;
 
 	acm_kill_urbs(acm);
-	cancel_work_sync(&acm->work);
+	cancel_delayed_work_sync(&acm->dwork);
+	acm->urbs_in_error_delay = 0;
 
 	return 0;
 }
@@ -1655,6 +1697,8 @@
 
 static const struct usb_device_id acm_ids[] = {
 	/* quirky and broken devices */
+	{ USB_DEVICE(0x0424, 0x274e), /* Microchip Technology, Inc. (formerly SMSC) */
+	  .driver_info = DISABLE_ECHO, }, /* DISABLE ECHO in termios flag */
 	{ USB_DEVICE(0x076d, 0x0006), /* Denso Cradle CU-321 */
 	.driver_info = NO_UNION_NORMAL, },/* has no union descriptor */
 	{ USB_DEVICE(0x17ef, 0x7000), /* Lenovo USB modem */
@@ -1662,6 +1706,15 @@
 	{ USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */
 	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
 	},
+	{ USB_DEVICE(0x045b, 0x023c),	/* Renesas USB Download mode */
+	.driver_info = DISABLE_ECHO,	/* Don't echo banner */
+	},
+	{ USB_DEVICE(0x045b, 0x0248),	/* Renesas USB Download mode */
+	.driver_info = DISABLE_ECHO,	/* Don't echo banner */
+	},
+	{ USB_DEVICE(0x045b, 0x024D),	/* Renesas USB Download mode */
+	.driver_info = DISABLE_ECHO,	/* Don't echo banner */
+	},
 	{ USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */
 	.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
 	},
@@ -1854,6 +1907,10 @@
 	{ USB_DEVICE(0x04d8, 0x0083),	/* Bootloader mode */
 	.driver_info = IGNORE_DEVICE,
 	},
+
+	{ USB_DEVICE(0x04d8, 0xf58b),
+	.driver_info = IGNORE_DEVICE,
+	},
 #endif
 
 	/*Samsung phone in firmware update mode */
@@ -1866,6 +1923,17 @@
 	.driver_info = IGNORE_DEVICE,
 	},
 
+	/* Exclude ETAS ES58x */
+	{ USB_DEVICE(0x108c, 0x0159), /* ES581.4 */
+	.driver_info = IGNORE_DEVICE,
+	},
+	{ USB_DEVICE(0x108c, 0x0168), /* ES582.1 */
+	.driver_info = IGNORE_DEVICE,
+	},
+	{ USB_DEVICE(0x108c, 0x0169), /* ES584.1 */
+	.driver_info = IGNORE_DEVICE,
+	},
+
 	{ USB_DEVICE(0x1bc7, 0x0021), /* Telit 3G ACM only composition */
 	.driver_info = SEND_ZERO_PACKET,
 	},
@@ -1873,6 +1941,25 @@
 	.driver_info = SEND_ZERO_PACKET,
 	},
 
+	/* Exclude Exar USB serial ports */
+	{ USB_DEVICE(0x04e2, 0x1400), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1401), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1402), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1403), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1410), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1411), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1412), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1414), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1420), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1421), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1422), .driver_info = IGNORE_DEVICE, },
+	{ USB_DEVICE(0x04e2, 0x1424), .driver_info = IGNORE_DEVICE, },
+
+	/* Exclude Goodix Fingerprint Reader */
+	{ USB_DEVICE(0x27c6, 0x5395),
+	.driver_info = IGNORE_DEVICE,
+	},
+
 	/* control interfaces without any protocol set */
 	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
 		USB_CDC_PROTO_NONE) },
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/class/cdc-acm.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/class/cdc-acm.h
@@ -109,8 +109,10 @@
 #		define EVENT_TTY_WAKEUP	0
 #		define EVENT_RX_STALL	1
 #		define ACM_THROTTLED	2
+#		define ACM_ERROR_DELAY	3
+	unsigned long urbs_in_error_delay;		/* these need to be restarted after a delay */
 	struct usb_cdc_line_coding line;		/* bits, stop, parity */
-	struct work_struct work;			/* work queue entry for line discipline waking up */
+	struct delayed_work dwork;		        /* work queue entry for various purposes */
 	unsigned int ctrlin;				/* input control lines (DCD, DSR, RI, break, overruns) */
 	unsigned int ctrlout;				/* output control lines (DTR, RTS) */
 	struct async_icount iocount;			/* counters for control line changes */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/class/cdc-wdm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/class/cdc-wdm.c
@@ -58,6 +58,9 @@
 
 #define WDM_MAX			16
 
+/* we cannot wait forever at flush() */
+#define WDM_FLUSH_TIMEOUT	(30 * HZ)
+
 /* CDC-WMC r1.1 requires wMaxCommand to be "at least 256 decimal (0x100)" */
 #define WDM_DEFAULT_BUFSIZE	256
 
@@ -151,7 +154,7 @@
 	kfree(desc->outbuf);
 	desc->outbuf = NULL;
 	clear_bit(WDM_IN_USE, &desc->flags);
-	wake_up(&desc->wait);
+	wake_up_all(&desc->wait);
 }
 
 static void wdm_in_callback(struct urb *urb)
@@ -393,6 +396,9 @@
 	if (test_bit(WDM_RESETTING, &desc->flags))
 		r = -EIO;
 
+	if (test_bit(WDM_DISCONNECTING, &desc->flags))
+		r = -ENODEV;
+
 	if (r < 0) {
 		rv = r;
 		goto out_free_mem_pm;
@@ -424,6 +430,7 @@
 	if (rv < 0) {
 		desc->outbuf = NULL;
 		clear_bit(WDM_IN_USE, &desc->flags);
+		wake_up_all(&desc->wait); /* for wdm_wait_for_response() */
 		dev_err(&desc->intf->dev, "Tx URB error: %d\n", rv);
 		rv = usb_translate_errors(rv);
 		goto out_free_mem_pm;
@@ -458,13 +465,23 @@
 	if (!desc->resp_count || !--desc->resp_count)
 		goto out;
 
+	if (test_bit(WDM_DISCONNECTING, &desc->flags)) {
+		rv = -ENODEV;
+		goto out;
+	}
+	if (test_bit(WDM_RESETTING, &desc->flags)) {
+		rv = -EIO;
+		goto out;
+	}
+
 	set_bit(WDM_RESPONDING, &desc->flags);
 	spin_unlock_irq(&desc->iuspin);
 	rv = usb_submit_urb(desc->response, GFP_KERNEL);
 	spin_lock_irq(&desc->iuspin);
 	if (rv) {
-		dev_err(&desc->intf->dev,
-			"usb_submit_urb failed with result %d\n", rv);
+		if (!test_bit(WDM_DISCONNECTING, &desc->flags))
+			dev_err(&desc->intf->dev,
+				"usb_submit_urb failed with result %d\n", rv);
 
 		/* make sure the next notification trigger a submit */
 		clear_bit(WDM_RESPONDING, &desc->flags);
@@ -583,28 +600,58 @@
 	return rv;
 }
 
-static int wdm_flush(struct file *file, fl_owner_t id)
+static int wdm_wait_for_response(struct file *file, long timeout)
 {
 	struct wdm_device *desc = file->private_data;
+	long rv; /* Use long here because (int) MAX_SCHEDULE_TIMEOUT < 0. */
 
-	wait_event(desc->wait,
-			/*
-			 * needs both flags. We cannot do with one
-			 * because resetting it would cause a race
-			 * with write() yet we need to signal
-			 * a disconnect
-			 */
-			!test_bit(WDM_IN_USE, &desc->flags) ||
-			test_bit(WDM_DISCONNECTING, &desc->flags));
+	/*
+	 * Needs both flags. We cannot do with one because resetting it would
+	 * cause a race with write() yet we need to signal a disconnect.
+	 */
+	rv = wait_event_interruptible_timeout(desc->wait,
+			      !test_bit(WDM_IN_USE, &desc->flags) ||
+			      test_bit(WDM_DISCONNECTING, &desc->flags),
+			      timeout);
 
-	/* cannot dereference desc->intf if WDM_DISCONNECTING */
+	/*
+	 * To report the correct error. This is best effort.
+	 * We are inevitably racing with the hardware.
+	 */
 	if (test_bit(WDM_DISCONNECTING, &desc->flags))
 		return -ENODEV;
-	if (desc->werr < 0)
-		dev_err(&desc->intf->dev, "Error in flush path: %d\n",
-			desc->werr);
+	if (!rv)
+		return -EIO;
+	if (rv < 0)
+		return -EINTR;
+
+	spin_lock_irq(&desc->iuspin);
+	rv = desc->werr;
+	desc->werr = 0;
+	spin_unlock_irq(&desc->iuspin);
+
+	return usb_translate_errors(rv);
 
-	return usb_translate_errors(desc->werr);
+}
+
+/*
+ * You need to send a signal when you react to malicious or defective hardware.
+ * Also, don't abort when fsync() returned -EINVAL, for older kernels which do
+ * not implement wdm_flush() will return -EINVAL.
+ */
+static int wdm_fsync(struct file *file, loff_t start, loff_t end, int datasync)
+{
+	return wdm_wait_for_response(file, MAX_SCHEDULE_TIMEOUT);
+}
+
+/*
+ * Same with wdm_fsync(), except it uses finite timeout in order to react to
+ * malicious or defective hardware which ceased communication after close() was
+ * implicitly called due to process termination.
+ */
+static int wdm_flush(struct file *file, fl_owner_t id)
+{
+	return wdm_wait_for_response(file, WDM_FLUSH_TIMEOUT);
 }
 
 static __poll_t wdm_poll(struct file *file, struct poll_table_struct *wait)
@@ -729,6 +776,7 @@
 	.owner =	THIS_MODULE,
 	.read =		wdm_read,
 	.write =	wdm_write,
+	.fsync =	wdm_fsync,
 	.open =		wdm_open,
 	.flush =	wdm_flush,
 	.release =	wdm_release,
@@ -988,9 +1036,9 @@
 	wake_up_all(&desc->wait);
 	mutex_lock(&desc->rlock);
 	mutex_lock(&desc->wlock);
-	kill_urbs(desc);
 	cancel_work_sync(&desc->rxwork);
 	cancel_work_sync(&desc->service_outs_intr);
+	kill_urbs(desc);
 	mutex_unlock(&desc->wlock);
 	mutex_unlock(&desc->rlock);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/class/usblp.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/class/usblp.c
@@ -274,8 +274,25 @@
 #define usblp_reset(usblp)\
 	usblp_ctrl_msg(usblp, USBLP_REQ_RESET, USB_TYPE_CLASS, USB_DIR_OUT, USB_RECIP_OTHER, 0, NULL, 0)
 
-#define usblp_hp_channel_change_request(usblp, channel, buffer) \
-	usblp_ctrl_msg(usblp, USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST, USB_TYPE_VENDOR, USB_DIR_IN, USB_RECIP_INTERFACE, channel, buffer, 1)
+static int usblp_hp_channel_change_request(struct usblp *usblp, int channel, u8 *new_channel)
+{
+	u8 *buf;
+	int ret;
+
+	buf = kzalloc(1, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	ret = usblp_ctrl_msg(usblp, USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST,
+			USB_TYPE_VENDOR, USB_DIR_IN, USB_RECIP_INTERFACE,
+			channel, buf, 1);
+	if (ret == 0)
+		*new_channel = buf[0];
+
+	kfree(buf);
+
+	return ret;
+}
 
 /*
  * See the description for usblp_select_alts() below for the usage
@@ -468,7 +485,8 @@
 	usb_autopm_put_interface(usblp->intf);
 
 	if (!usblp->present)		/* finish cleanup from disconnect */
-		usblp_cleanup(usblp);
+		usblp_cleanup(usblp);	/* any URBs must be dead */
+
 	mutex_unlock(&usblp_mutex);
 	return 0;
 }
@@ -476,16 +494,24 @@
 /* No kernel lock - fine */
 static __poll_t usblp_poll(struct file *file, struct poll_table_struct *wait)
 {
-	__poll_t ret;
+	struct usblp *usblp = file->private_data;
+	__poll_t ret = 0;
 	unsigned long flags;
 
-	struct usblp *usblp = file->private_data;
 	/* Should we check file->f_mode & FMODE_WRITE before poll_wait()? */
 	poll_wait(file, &usblp->rwait, wait);
 	poll_wait(file, &usblp->wwait, wait);
+
+	mutex_lock(&usblp->mut);
+	if (!usblp->present)
+		ret |= EPOLLHUP;
+	mutex_unlock(&usblp->mut);
+
 	spin_lock_irqsave(&usblp->lock, flags);
-	ret = ((usblp->bidir && usblp->rcomplete) ? EPOLLIN  | EPOLLRDNORM : 0) |
-	   ((usblp->no_paper || usblp->wcomplete) ? EPOLLOUT | EPOLLWRNORM : 0);
+	if (usblp->bidir && usblp->rcomplete)
+		ret |= EPOLLIN  | EPOLLRDNORM;
+	if (usblp->no_paper || usblp->wcomplete)
+		ret |= EPOLLOUT | EPOLLWRNORM;
 	spin_unlock_irqrestore(&usblp->lock, flags);
 	return ret;
 }
@@ -826,6 +852,11 @@
 	if (rv < 0)
 		return rv;
 
+	if (!usblp->present) {
+		count = -ENODEV;
+		goto done;
+	}
+
 	if ((avail = usblp->rstatus) < 0) {
 		printk(KERN_ERR "usblp%d: error %d reading from printer\n",
 		    usblp->minor, (int)avail);
@@ -1306,14 +1337,17 @@
 	if (protocol < USBLP_FIRST_PROTOCOL || protocol > USBLP_LAST_PROTOCOL)
 		return -EINVAL;
 
-	alts = usblp->protocol[protocol].alt_setting;
-	if (alts < 0)
-		return -EINVAL;
-	r = usb_set_interface(usblp->dev, usblp->ifnum, alts);
-	if (r < 0) {
-		printk(KERN_ERR "usblp: can't set desired altsetting %d on interface %d\n",
-			alts, usblp->ifnum);
-		return r;
+	/* Don't unnecessarily set the interface if there's a single alt. */
+	if (usblp->intf->num_altsetting > 1) {
+		alts = usblp->protocol[protocol].alt_setting;
+		if (alts < 0)
+			return -EINVAL;
+		r = usb_set_interface(usblp->dev, usblp->ifnum, alts);
+		if (r < 0) {
+			printk(KERN_ERR "usblp: can't set desired altsetting %d on interface %d\n",
+				alts, usblp->ifnum);
+			return r;
+		}
 	}
 
 	usblp->bidir = (usblp->protocol[protocol].epread != NULL);
@@ -1375,9 +1409,11 @@
 
 	usblp_unlink_urbs(usblp);
 	mutex_unlock(&usblp->mut);
+	usb_poison_anchored_urbs(&usblp->urbs);
 
 	if (!usblp->used)
 		usblp_cleanup(usblp);
+
 	mutex_unlock(&usblp_mutex);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/common/usb-conn-gpio.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/common/usb-conn-gpio.c
@@ -156,7 +156,8 @@
 
 	info->vbus = devm_regulator_get(dev, "vbus");
 	if (IS_ERR(info->vbus)) {
-		dev_err(dev, "failed to get vbus\n");
+		if (PTR_ERR(info->vbus) != -EPROBE_DEFER)
+			dev_err(dev, "failed to get vbus\n");
 		return PTR_ERR(info->vbus);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/config.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/config.c
@@ -203,10 +203,60 @@
 	[USB_ENDPOINT_XFER_INT] = 1024,
 };
 
-static int usb_parse_endpoint(struct device *ddev, int cfgno, int inum,
-    int asnum, struct usb_host_interface *ifp, int num_ep,
-    unsigned char *buffer, int size)
+static bool endpoint_is_duplicate(struct usb_endpoint_descriptor *e1,
+		struct usb_endpoint_descriptor *e2)
 {
+	if (e1->bEndpointAddress == e2->bEndpointAddress)
+		return true;
+
+	if (usb_endpoint_xfer_control(e1) || usb_endpoint_xfer_control(e2)) {
+		if (usb_endpoint_num(e1) == usb_endpoint_num(e2))
+			return true;
+	}
+
+	return false;
+}
+
+/*
+ * Check for duplicate endpoint addresses in other interfaces and in the
+ * altsetting currently being parsed.
+ */
+static bool config_endpoint_is_duplicate(struct usb_host_config *config,
+		int inum, int asnum, struct usb_endpoint_descriptor *d)
+{
+	struct usb_endpoint_descriptor *epd;
+	struct usb_interface_cache *intfc;
+	struct usb_host_interface *alt;
+	int i, j, k;
+
+	for (i = 0; i < config->desc.bNumInterfaces; ++i) {
+		intfc = config->intf_cache[i];
+
+		for (j = 0; j < intfc->num_altsetting; ++j) {
+			alt = &intfc->altsetting[j];
+
+			if (alt->desc.bInterfaceNumber == inum &&
+					alt->desc.bAlternateSetting != asnum)
+				continue;
+
+			for (k = 0; k < alt->desc.bNumEndpoints; ++k) {
+				epd = &alt->endpoint[k].desc;
+
+				if (endpoint_is_duplicate(epd, d))
+					return true;
+			}
+		}
+	}
+
+	return false;
+}
+
+static int usb_parse_endpoint(struct device *ddev, int cfgno,
+		struct usb_host_config *config, int inum, int asnum,
+		struct usb_host_interface *ifp, int num_ep,
+		unsigned char *buffer, int size)
+{
+	struct usb_device *udev = to_usb_device(ddev);
 	unsigned char *buffer0 = buffer;
 	struct usb_endpoint_descriptor *d;
 	struct usb_host_endpoint *endpoint;
@@ -242,11 +292,18 @@
 		goto skip_to_next_endpoint_or_interface_descriptor;
 
 	/* Check for duplicate endpoint addresses */
-	for (i = 0; i < ifp->desc.bNumEndpoints; ++i) {
-		if (ifp->endpoint[i].desc.bEndpointAddress ==
-		    d->bEndpointAddress) {
-			dev_warn(ddev, "config %d interface %d altsetting %d has a duplicate endpoint with address 0x%X, skipping\n",
-			    cfgno, inum, asnum, d->bEndpointAddress);
+	if (config_endpoint_is_duplicate(config, inum, asnum, d)) {
+		dev_warn(ddev, "config %d interface %d altsetting %d has a duplicate endpoint with address 0x%X, skipping\n",
+				cfgno, inum, asnum, d->bEndpointAddress);
+		goto skip_to_next_endpoint_or_interface_descriptor;
+	}
+
+	/* Ignore blacklisted endpoints */
+	if (udev->quirks & USB_QUIRK_ENDPOINT_BLACKLIST) {
+		if (usb_endpoint_is_blacklisted(udev, ifp, d)) {
+			dev_warn(ddev, "config %d interface %d altsetting %d has a blacklisted endpoint with address 0x%X, skipping\n",
+					cfgno, inum, asnum,
+					d->bEndpointAddress);
 			goto skip_to_next_endpoint_or_interface_descriptor;
 		}
 	}
@@ -346,12 +403,16 @@
 			endpoint->desc.wMaxPacketSize = cpu_to_le16(8);
 	}
 
-	/* Validate the wMaxPacketSize field */
+	/*
+	 * Validate the wMaxPacketSize field.
+	 * Some devices have isochronous endpoints in altsetting 0;
+	 * the USB-2 spec requires such endpoints to have wMaxPacketSize = 0
+	 * (see the end of section 5.6.3), so don't warn about them.
+	 */
 	maxp = usb_endpoint_maxp(&endpoint->desc);
-	if (maxp == 0) {
-		dev_warn(ddev, "config %d interface %d altsetting %d endpoint 0x%X has wMaxPacketSize 0, skipping\n",
+	if (maxp == 0 && !(usb_endpoint_xfer_isoc(d) && asnum == 0)) {
+		dev_warn(ddev, "config %d interface %d altsetting %d endpoint 0x%X has invalid wMaxPacketSize 0\n",
 		    cfgno, inum, asnum, d->bEndpointAddress);
-		goto skip_to_next_endpoint_or_interface_descriptor;
 	}
 
 	/* Find the highest legal maxpacket size for this endpoint */
@@ -522,8 +583,8 @@
 		if (((struct usb_descriptor_header *) buffer)->bDescriptorType
 		     == USB_DT_INTERFACE)
 			break;
-		retval = usb_parse_endpoint(ddev, cfgno, inum, asnum, alt,
-		    num_ep, buffer, size);
+		retval = usb_parse_endpoint(ddev, cfgno, config, inum, asnum,
+				alt, num_ep, buffer, size);
 		if (retval < 0)
 			return retval;
 		++n;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/devio.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/devio.c
@@ -217,6 +217,7 @@
 {
 	struct usb_memory *usbm = NULL;
 	struct usb_dev_state *ps = file->private_data;
+	struct usb_hcd *hcd = bus_to_hcd(ps->dev->bus);
 	size_t size = vma->vm_end - vma->vm_start;
 	void *mem;
 	unsigned long flags;
@@ -250,11 +251,19 @@
 	usbm->vma_use_count = 1;
 	INIT_LIST_HEAD(&usbm->memlist);
 
-	if (remap_pfn_range(vma, vma->vm_start,
-			virt_to_phys(usbm->mem) >> PAGE_SHIFT,
-			size, vma->vm_page_prot) < 0) {
-		dec_usb_memory_use_count(usbm, &usbm->vma_use_count);
-		return -EAGAIN;
+	if (hcd->localmem_pool || !hcd_uses_dma(hcd)) {
+		if (remap_pfn_range(vma, vma->vm_start,
+				    virt_to_phys(usbm->mem) >> PAGE_SHIFT,
+				    size, vma->vm_page_prot) < 0) {
+			dec_usb_memory_use_count(usbm, &usbm->vma_use_count);
+			return -EAGAIN;
+		}
+	} else {
+		if (dma_mmap_coherent(hcd->self.sysdev, vma, mem, dma_handle,
+				      size)) {
+			dec_usb_memory_use_count(usbm, &usbm->vma_use_count);
+			return -EAGAIN;
+		}
 	}
 
 	vma->vm_flags |= VM_IO;
@@ -473,11 +482,11 @@
 
 	if (userurb) {		/* Async */
 		if (when == SUBMIT)
-			dev_info(&udev->dev, "userurb %pK, ep%d %s-%s, "
+			dev_info(&udev->dev, "userurb %px, ep%d %s-%s, "
 					"length %u\n",
 					userurb, ep, t, d, length);
 		else
-			dev_info(&udev->dev, "userurb %pK, ep%d %s-%s, "
+			dev_info(&udev->dev, "userurb %px, ep%d %s-%s, "
 					"actual_length %u status %d\n",
 					userurb, ep, t, d, length,
 					timeout_or_status);
@@ -764,8 +773,15 @@
 	intf = usb_ifnum_to_if(dev, ifnum);
 	if (!intf)
 		err = -ENOENT;
-	else
+	else {
+		unsigned int old_suppress;
+
+		/* suppress uevents while claiming interface */
+		old_suppress = dev_get_uevent_suppress(&intf->dev);
+		dev_set_uevent_suppress(&intf->dev, 1);
 		err = usb_driver_claim_interface(&usbfs_driver, intf, ps);
+		dev_set_uevent_suppress(&intf->dev, old_suppress);
+	}
 	if (err == 0)
 		set_bit(ifnum, &ps->ifclaimed);
 	return err;
@@ -785,7 +801,13 @@
 	if (!intf)
 		err = -ENOENT;
 	else if (test_and_clear_bit(ifnum, &ps->ifclaimed)) {
+		unsigned int old_suppress;
+
+		/* suppress uevents while releasing interface */
+		old_suppress = dev_get_uevent_suppress(&intf->dev);
+		dev_set_uevent_suppress(&intf->dev, 1);
 		usb_driver_release_interface(&usbfs_driver, intf);
+		dev_set_uevent_suppress(&intf->dev, old_suppress);
 		err = 0;
 	}
 	return err;
@@ -1970,7 +1992,7 @@
 	if (as) {
 		int retval;
 
-		snoop(&ps->dev->dev, "reap %pK\n", as->userurb);
+		snoop(&ps->dev->dev, "reap %px\n", as->userurb);
 		retval = processcompl(as, (void __user * __user *)arg);
 		free_async(as);
 		return retval;
@@ -1987,7 +2009,7 @@
 
 	as = async_getcompleted(ps);
 	if (as) {
-		snoop(&ps->dev->dev, "reap %pK\n", as->userurb);
+		snoop(&ps->dev->dev, "reap %px\n", as->userurb);
 		retval = processcompl(as, (void __user * __user *)arg);
 		free_async(as);
 	} else {
@@ -2117,7 +2139,7 @@
 	if (as) {
 		int retval;
 
-		snoop(&ps->dev->dev, "reap %pK\n", as->userurb);
+		snoop(&ps->dev->dev, "reap %px\n", as->userurb);
 		retval = processcompl_compat(as, (void __user * __user *)arg);
 		free_async(as);
 		return retval;
@@ -2134,7 +2156,7 @@
 
 	as = async_getcompleted(ps);
 	if (as) {
-		snoop(&ps->dev->dev, "reap %pK\n", as->userurb);
+		snoop(&ps->dev->dev, "reap %px\n", as->userurb);
 		retval = processcompl_compat(as, (void __user * __user *)arg);
 		free_async(as);
 	} else {
@@ -2599,7 +2621,7 @@
 #endif
 
 	case USBDEVFS_DISCARDURB:
-		snoop(&dev->dev, "%s: DISCARDURB %pK\n", __func__, p);
+		snoop(&dev->dev, "%s: DISCARDURB %px\n", __func__, p);
 		ret = proc_unlinkurb(ps, p);
 		break;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/hcd.c
@@ -1409,7 +1409,17 @@
 	if (usb_endpoint_xfer_control(&urb->ep->desc)) {
 		if (hcd->self.uses_pio_for_control)
 			return ret;
-		if (hcd_uses_dma(hcd)) {
+		if (hcd->localmem_pool) {
+			ret = hcd_alloc_coherent(
+					urb->dev->bus, mem_flags,
+					&urb->setup_dma,
+					(void **)&urb->setup_packet,
+					sizeof(struct usb_ctrlrequest),
+					DMA_TO_DEVICE);
+			if (ret)
+				return ret;
+			urb->transfer_flags |= URB_SETUP_MAP_LOCAL;
+		} else if (hcd_uses_dma(hcd)) {
 			if (is_vmalloc_addr(urb->setup_packet)) {
 				WARN_ONCE(1, "setup packet is not dma capable\n");
 				return -EAGAIN;
@@ -1427,23 +1437,22 @@
 						urb->setup_dma))
 				return -EAGAIN;
 			urb->transfer_flags |= URB_SETUP_MAP_SINGLE;
-		} else if (hcd->localmem_pool) {
-			ret = hcd_alloc_coherent(
-					urb->dev->bus, mem_flags,
-					&urb->setup_dma,
-					(void **)&urb->setup_packet,
-					sizeof(struct usb_ctrlrequest),
-					DMA_TO_DEVICE);
-			if (ret)
-				return ret;
-			urb->transfer_flags |= URB_SETUP_MAP_LOCAL;
 		}
 	}
 
 	dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
 	if (urb->transfer_buffer_length != 0
 	    && !(urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)) {
-		if (hcd_uses_dma(hcd)) {
+		if (hcd->localmem_pool) {
+			ret = hcd_alloc_coherent(
+					urb->dev->bus, mem_flags,
+					&urb->transfer_dma,
+					&urb->transfer_buffer,
+					urb->transfer_buffer_length,
+					dir);
+			if (ret == 0)
+				urb->transfer_flags |= URB_MAP_LOCAL;
+		} else if (hcd_uses_dma(hcd)) {
 			if (urb->num_sgs) {
 				int n;
 
@@ -1497,15 +1506,6 @@
 				else
 					urb->transfer_flags |= URB_DMA_MAP_SINGLE;
 			}
-		} else if (hcd->localmem_pool) {
-			ret = hcd_alloc_coherent(
-					urb->dev->bus, mem_flags,
-					&urb->transfer_dma,
-					&urb->transfer_buffer,
-					urb->transfer_buffer_length,
-					dir);
-			if (ret == 0)
-				urb->transfer_flags |= URB_MAP_LOCAL;
 		}
 		if (ret && (urb->transfer_flags & (URB_SETUP_MAP_SINGLE |
 				URB_SETUP_MAP_LOCAL)))
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/hub.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/hub.c
@@ -37,7 +37,10 @@
 #include "otg_whitelist.h"
 
 #define USB_VENDOR_GENESYS_LOGIC		0x05e3
+#define USB_VENDOR_SMSC				0x0424
+#define USB_PRODUCT_USB5534B			0x5534
 #define HUB_QUIRK_CHECK_PORT_AUTOSUSPEND	0x01
+#define HUB_QUIRK_DISABLE_AUTOSUSPEND		0x02
 
 #define USB_TP_TRANSMISSION_DELAY	40	/* ns */
 #define USB_TP_TRANSMISSION_DELAY_MAX	65535	/* ns */
@@ -817,9 +820,9 @@
  *
  * Return: 0 if successful. A negative error code otherwise.
  */
-int usb_hub_set_port_power(struct usb_device *hdev, struct usb_hub *hub,
-			   int port1, bool set)
+int usb_hub_set_port_power(struct usb_hub *hub, int port1, bool set)
 {
+	struct usb_device *hdev = hub->hdev;
 	int ret;
 
 	if (set)
@@ -985,13 +988,17 @@
 {
 	struct usb_hub *hub;
 	struct usb_interface *intf;
+	int ret;
 
 	if (!udev->parent)	/* Can't remove a root hub */
 		return -EINVAL;
 	hub = usb_hub_to_struct_hub(udev->parent);
 	intf = to_usb_interface(hub->intfdev);
 
-	usb_autopm_get_interface(intf);
+	ret = usb_autopm_get_interface(intf);
+	if (ret < 0)
+		return ret;
+
 	set_bit(udev->portnum, hub->removed_bits);
 	hub_port_logical_disconnect(hub, udev->portnum);
 	usb_autopm_put_interface(intf);
@@ -1191,6 +1198,7 @@
 			 * PORT_OVER_CURRENT is not. So check for any of them.
 			 */
 			if (udev || (portstatus & USB_PORT_STAT_CONNECTION) ||
+			    (portchange & USB_PORT_STAT_C_CONNECTION) ||
 			    (portstatus & USB_PORT_STAT_OVERCURRENT) ||
 			    (portchange & USB_PORT_STAT_C_OVERCURRENT))
 				set_bit(port1, hub->change_bits);
@@ -1729,6 +1737,10 @@
 	kfree(hub->buffer);
 
 	pm_suspend_ignore_children(&intf->dev, false);
+
+	if (hub->quirk_disable_autosuspend)
+		usb_autopm_put_interface(intf);
+
 	kref_put(&hub->kref, hub_release);
 }
 
@@ -1861,6 +1873,11 @@
 	if (id->driver_info & HUB_QUIRK_CHECK_PORT_AUTOSUSPEND)
 		hub->quirk_check_port_auto_suspend = 1;
 
+	if (id->driver_info & HUB_QUIRK_DISABLE_AUTOSUSPEND) {
+		hub->quirk_disable_autosuspend = 1;
+		usb_autopm_get_interface_no_resume(intf);
+	}
+
 	if (hub_configure(hub, &desc->endpoint[0].desc) >= 0)
 		return 0;
 
@@ -2691,7 +2708,7 @@
 #define SET_ADDRESS_TRIES	2
 #define GET_DESCRIPTOR_TRIES	2
 #define SET_CONFIG_TRIES	(2 * (use_both_schemes + 1))
-#define USE_NEW_SCHEME(i, scheme)	((i) / 2 == (int)scheme)
+#define USE_NEW_SCHEME(i, scheme)	((i) / 2 == (int)(scheme))
 
 #define HUB_ROOT_RESET_TIME	60	/* times are in msec */
 #define HUB_SHORT_RESET_TIME	10
@@ -2711,13 +2728,11 @@
 {
 	int old_scheme_first_port =
 		port_dev->quirks & USB_PORT_QUIRK_OLD_SCHEME;
-	int quick_enumeration = (udev->speed == USB_SPEED_HIGH);
 
 	if (udev->speed >= USB_SPEED_SUPER)
 		return false;
 
-	return USE_NEW_SCHEME(retry, old_scheme_first_port || old_scheme_first
-			      || quick_enumeration);
+	return USE_NEW_SCHEME(retry, old_scheme_first_port || old_scheme_first);
 }
 
 /* Is a USB 3.0 port in the Inactive or Compliance Mode state?
@@ -2739,6 +2754,39 @@
 		|| link_state == USB_SS_PORT_LS_COMP_MOD;
 }
 
+static bool hub_port_power_cycle_required(struct usb_hub *hub, int port1,
+		u16 portstatus)
+{
+	u16 link_state;
+
+	if (!hub_is_superspeed(hub->hdev))
+		return false;
+
+	link_state = portstatus & USB_PORT_STAT_LINK_STATE;
+	return link_state == USB_SS_PORT_LS_SS_DISABLED;
+}
+
+static void hub_port_power_cycle(struct usb_hub *hub, int port1)
+{
+	struct usb_port *port_dev = hub->ports[port1  - 1];
+	int ret;
+
+	ret = usb_hub_set_port_power(hub, port1, false);
+	if (ret) {
+		dev_info(&port_dev->dev, "failed to disable port power\n");
+		return;
+	}
+
+	msleep(2 * hub_power_on_good_delay(hub));
+	ret = usb_hub_set_port_power(hub, port1, true);
+	if (ret) {
+		dev_info(&port_dev->dev, "failed to enable port power\n");
+		return;
+	}
+
+	msleep(hub_power_on_good_delay(hub));
+}
+
 static int hub_port_wait_reset(struct usb_hub *hub, int port1,
 			struct usb_device *udev, unsigned int delay, bool warm)
 {
@@ -3076,6 +3124,15 @@
 		if (portchange & USB_PORT_STAT_C_ENABLE)
 			usb_clear_port_feature(hub->hdev, port1,
 					USB_PORT_FEAT_C_ENABLE);
+
+		/*
+		 * Whatever made this reset-resume necessary may have
+		 * turned on the port1 bit in hub->change_bits.  But after
+		 * a successful reset-resume we want the bit to be clear;
+		 * if it was on it would indicate that something happened
+		 * following the reset-resume.
+		 */
+		clear_bit(port1, hub->change_bits);
 	}
 
 	return status;
@@ -3580,6 +3637,10 @@
 	if (status < 0) {
 		dev_dbg(&udev->dev, "can't resume, status %d\n", status);
 		hub_port_logical_disconnect(hub, port1);
+		if (hub_port_power_cycle_required(hub, port1, portstatus)) {
+			dev_dbg(&udev->dev, "device in disabled state, attempt power cycle\n");
+			hub_port_power_cycle(hub, port1);
+		}
 	} else  {
 		/* Try to enable USB2 hardware LPM */
 		usb_enable_usb2_hardware_lpm(udev);
@@ -5131,10 +5192,7 @@
 		/* When halfway through our retry count, power-cycle the port */
 		if (i == (SET_CONFIG_TRIES / 2) - 1) {
 			dev_info(&port_dev->dev, "attempt power cycle\n");
-			usb_hub_set_port_power(hdev, hub, port1, false);
-			msleep(2 * hub_power_on_good_delay(hub));
-			usb_hub_set_port_power(hdev, hub, port1, true);
-			msleep(hub_power_on_good_delay(hub));
+			hub_port_power_cycle(hub, port1);
 		}
 	}
 	if (hub->hdev->parent ||
@@ -5484,6 +5542,13 @@
 
 static const struct usb_device_id hub_id_table[] = {
     { .match_flags = USB_DEVICE_ID_MATCH_VENDOR
+                   | USB_DEVICE_ID_MATCH_PRODUCT
+                   | USB_DEVICE_ID_MATCH_INT_CLASS,
+      .idVendor = USB_VENDOR_SMSC,
+      .idProduct = USB_PRODUCT_USB5534B,
+      .bInterfaceClass = USB_CLASS_HUB,
+      .driver_info = HUB_QUIRK_DISABLE_AUTOSUSPEND},
+    { .match_flags = USB_DEVICE_ID_MATCH_VENDOR
 			| USB_DEVICE_ID_MATCH_INT_CLASS,
       .idVendor = USB_VENDOR_GENESYS_LOGIC,
       .bInterfaceClass = USB_CLASS_HUB,
@@ -5814,7 +5879,7 @@
 
 /**
  * usb_reset_device - warn interface drivers and perform a USB port reset
- * @udev: device to reset (not in SUSPENDED or NOTATTACHED state)
+ * @udev: device to reset (not in NOTATTACHED state)
  *
  * Warns all drivers bound to registered interfaces (using their pre_reset
  * method), performs the port reset, and then lets the drivers know that
@@ -5842,8 +5907,7 @@
 	struct usb_host_config *config = udev->actconfig;
 	struct usb_hub *hub = usb_hub_to_struct_hub(udev->parent);
 
-	if (udev->state == USB_STATE_NOTATTACHED ||
-			udev->state == USB_STATE_SUSPENDED) {
+	if (udev->state == USB_STATE_NOTATTACHED) {
 		dev_dbg(&udev->dev, "device reset not allowed in state %d\n",
 				udev->state);
 		return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/hub.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/hub.h
@@ -61,6 +61,7 @@
 	unsigned		quiescing:1;
 	unsigned		disconnected:1;
 	unsigned		in_reset:1;
+	unsigned		quirk_disable_autosuspend:1;
 
 	unsigned		quirk_check_port_auto_suspend:1;
 
@@ -113,8 +114,7 @@
 		int port1);
 extern void usb_hub_remove_port_device(struct usb_hub *hub,
 		int port1);
-extern int usb_hub_set_port_power(struct usb_device *hdev, struct usb_hub *hub,
-		int port1, bool set);
+extern int usb_hub_set_port_power(struct usb_hub *hub, int port1, bool set);
 extern struct usb_hub *usb_hub_to_struct_hub(struct usb_device *hdev);
 extern int hub_port_debounce(struct usb_hub *hub, int port1,
 		bool must_be_connected);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/message.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/message.c
@@ -588,12 +588,13 @@
 	int i, retval;
 
 	spin_lock_irqsave(&io->lock, flags);
-	if (io->status) {
+	if (io->status || io->count == 0) {
 		spin_unlock_irqrestore(&io->lock, flags);
 		return;
 	}
 	/* shut everything down */
 	io->status = -ECONNRESET;
+	io->count++;		/* Keep the request alive until we're done */
 	spin_unlock_irqrestore(&io->lock, flags);
 
 	for (i = io->entries - 1; i >= 0; --i) {
@@ -607,6 +608,12 @@
 			dev_warn(&io->dev->dev, "%s, unlink --> %d\n",
 				 __func__, retval);
 	}
+
+	spin_lock_irqsave(&io->lock, flags);
+	io->count--;
+	if (!io->count)
+		complete(&io->complete);
+	spin_unlock_irqrestore(&io->lock, flags);
 }
 EXPORT_SYMBOL_GPL(usb_sg_cancel);
 
@@ -1136,11 +1143,11 @@
 
 	if (usb_endpoint_out(epaddr)) {
 		ep = dev->ep_out[epnum];
-		if (reset_hardware)
+		if (reset_hardware && epnum != 0)
 			dev->ep_out[epnum] = NULL;
 	} else {
 		ep = dev->ep_in[epnum];
-		if (reset_hardware)
+		if (reset_hardware && epnum != 0)
 			dev->ep_in[epnum] = NULL;
 	}
 	if (ep) {
@@ -1197,6 +1204,34 @@
 	}
 }
 
+/*
+ * usb_disable_device_endpoints -- Disable all endpoints for a device
+ * @dev: the device whose endpoints are being disabled
+ * @skip_ep0: 0 to disable endpoint 0, 1 to skip it.
+ */
+static void usb_disable_device_endpoints(struct usb_device *dev, int skip_ep0)
+{
+	struct usb_hcd *hcd = bus_to_hcd(dev->bus);
+	int i;
+
+	if (hcd->driver->check_bandwidth) {
+		/* First pass: Cancel URBs, leave endpoint pointers intact. */
+		for (i = skip_ep0; i < 16; ++i) {
+			usb_disable_endpoint(dev, i, false);
+			usb_disable_endpoint(dev, i + USB_DIR_IN, false);
+		}
+		/* Remove endpoints from the host controller internal state */
+		mutex_lock(hcd->bandwidth_mutex);
+		usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL);
+		mutex_unlock(hcd->bandwidth_mutex);
+	}
+	/* Second pass: remove endpoint pointers */
+	for (i = skip_ep0; i < 16; ++i) {
+		usb_disable_endpoint(dev, i, true);
+		usb_disable_endpoint(dev, i + USB_DIR_IN, true);
+	}
+}
+
 /**
  * usb_disable_device - Disable all the endpoints for a USB device
  * @dev: the device whose endpoints are being disabled
@@ -1210,7 +1245,6 @@
 void usb_disable_device(struct usb_device *dev, int skip_ep0)
 {
 	int i;
-	struct usb_hcd *hcd = bus_to_hcd(dev->bus);
 
 	/* getting rid of interfaces will disconnect
 	 * any drivers bound to them (a key side effect)
@@ -1256,22 +1290,8 @@
 
 	dev_dbg(&dev->dev, "%s nuking %s URBs\n", __func__,
 		skip_ep0 ? "non-ep0" : "all");
-	if (hcd->driver->check_bandwidth) {
-		/* First pass: Cancel URBs, leave endpoint pointers intact. */
-		for (i = skip_ep0; i < 16; ++i) {
-			usb_disable_endpoint(dev, i, false);
-			usb_disable_endpoint(dev, i + USB_DIR_IN, false);
-		}
-		/* Remove endpoints from the host controller internal state */
-		mutex_lock(hcd->bandwidth_mutex);
-		usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL);
-		mutex_unlock(hcd->bandwidth_mutex);
-		/* Second pass: remove endpoint pointers */
-	}
-	for (i = skip_ep0; i < 16; ++i) {
-		usb_disable_endpoint(dev, i, true);
-		usb_disable_endpoint(dev, i + USB_DIR_IN, true);
-	}
+
+	usb_disable_device_endpoints(dev, skip_ep0);
 }
 
 /**
@@ -1514,6 +1534,9 @@
  * The caller must own the device lock.
  *
  * Return: Zero on success, else a negative error code.
+ *
+ * If this routine fails the device will probably be in an unusable state
+ * with endpoints disabled, and interfaces only partially enabled.
  */
 int usb_reset_configuration(struct usb_device *dev)
 {
@@ -1529,10 +1552,7 @@
 	 * calls during probe() are fine
 	 */
 
-	for (i = 1; i < 16; ++i) {
-		usb_disable_endpoint(dev, i, true);
-		usb_disable_endpoint(dev, i + USB_DIR_IN, true);
-	}
+	usb_disable_device_endpoints(dev, 1); /* skip ep0*/
 
 	config = dev->actconfig;
 	retval = 0;
@@ -1545,34 +1565,10 @@
 		mutex_unlock(hcd->bandwidth_mutex);
 		return -ENOMEM;
 	}
-	/* Make sure we have enough bandwidth for each alternate setting 0 */
-	for (i = 0; i < config->desc.bNumInterfaces; i++) {
-		struct usb_interface *intf = config->interface[i];
-		struct usb_host_interface *alt;
-
-		alt = usb_altnum_to_altsetting(intf, 0);
-		if (!alt)
-			alt = &intf->altsetting[0];
-		if (alt != intf->cur_altsetting)
-			retval = usb_hcd_alloc_bandwidth(dev, NULL,
-					intf->cur_altsetting, alt);
-		if (retval < 0)
-			break;
-	}
-	/* If not, reinstate the old alternate settings */
+
+	/* xHCI adds all endpoints in usb_hcd_alloc_bandwidth */
+	retval = usb_hcd_alloc_bandwidth(dev, config, NULL, NULL);
 	if (retval < 0) {
-reset_old_alts:
-		for (i--; i >= 0; i--) {
-			struct usb_interface *intf = config->interface[i];
-			struct usb_host_interface *alt;
-
-			alt = usb_altnum_to_altsetting(intf, 0);
-			if (!alt)
-				alt = &intf->altsetting[0];
-			if (alt != intf->cur_altsetting)
-				usb_hcd_alloc_bandwidth(dev, NULL,
-						alt, intf->cur_altsetting);
-		}
 		usb_enable_lpm(dev);
 		mutex_unlock(hcd->bandwidth_mutex);
 		return retval;
@@ -1581,8 +1577,12 @@
 			USB_REQ_SET_CONFIGURATION, 0,
 			config->desc.bConfigurationValue, 0,
 			NULL, 0, USB_CTRL_SET_TIMEOUT);
-	if (retval < 0)
-		goto reset_old_alts;
+	if (retval < 0) {
+		usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL);
+		usb_enable_lpm(dev);
+		mutex_unlock(hcd->bandwidth_mutex);
+		return retval;
+	}
 	mutex_unlock(hcd->bandwidth_mutex);
 
 	/* re-init hc/hcd interface/endpoint state */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/port.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/port.c
@@ -213,8 +213,11 @@
 	if (!port_dev->is_superspeed && peer)
 		pm_runtime_get_sync(&peer->dev);
 
-	usb_autopm_get_interface(intf);
-	retval = usb_hub_set_port_power(hdev, hub, port1, true);
+	retval = usb_autopm_get_interface(intf);
+	if (retval < 0)
+		return retval;
+
+	retval = usb_hub_set_port_power(hub, port1, true);
 	msleep(hub_power_on_good_delay(hub));
 	if (udev && !retval) {
 		/*
@@ -266,8 +269,11 @@
 	if (usb_port_block_power_off)
 		return -EBUSY;
 
-	usb_autopm_get_interface(intf);
-	retval = usb_hub_set_port_power(hdev, hub, port1, false);
+	retval = usb_autopm_get_interface(intf);
+	if (retval < 0)
+		return retval;
+
+	retval = usb_hub_set_port_power(hub, port1, false);
 	usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_CONNECTION);
 	if (!port_dev->is_superspeed)
 		usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_ENABLE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/quirks.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/quirks.c
@@ -25,17 +25,23 @@
 
 static char quirks_param[128];
 
-static int quirks_param_set(const char *val, const struct kernel_param *kp)
+static int quirks_param_set(const char *value, const struct kernel_param *kp)
 {
-	char *p, *field;
+	char *val, *p, *field;
 	u16 vid, pid;
 	u32 flags;
 	size_t i;
 	int err;
 
+	val = kstrdup(value, GFP_KERNEL);
+	if (!val)
+		return -ENOMEM;
+
 	err = param_set_copystring(val, kp);
-	if (err)
+	if (err) {
+		kfree(val);
 		return err;
+	}
 
 	mutex_lock(&quirk_mutex);
 
@@ -60,10 +66,11 @@
 	if (!quirk_list) {
 		quirk_count = 0;
 		mutex_unlock(&quirk_mutex);
+		kfree(val);
 		return -ENOMEM;
 	}
 
-	for (i = 0, p = (char *)val; p && *p;) {
+	for (i = 0, p = val; p && *p;) {
 		/* Each entry consists of VID:PID:flags */
 		field = strsep(&p, ":");
 		if (!field)
@@ -144,6 +151,7 @@
 
 unlock:
 	mutex_unlock(&quirk_mutex);
+	kfree(val);
 
 	return 0;
 }
@@ -218,11 +226,12 @@
 	/* Logitech HD Webcam C270 */
 	{ USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
 
-	/* Logitech HD Pro Webcams C920, C920-C, C925e and C930e */
+	/* Logitech HD Pro Webcams C920, C920-C, C922, C925e and C930e */
 	{ USB_DEVICE(0x046d, 0x082d), .driver_info = USB_QUIRK_DELAY_INIT },
 	{ USB_DEVICE(0x046d, 0x0841), .driver_info = USB_QUIRK_DELAY_INIT },
 	{ USB_DEVICE(0x046d, 0x0843), .driver_info = USB_QUIRK_DELAY_INIT },
 	{ USB_DEVICE(0x046d, 0x085b), .driver_info = USB_QUIRK_DELAY_INIT },
+	{ USB_DEVICE(0x046d, 0x085c), .driver_info = USB_QUIRK_DELAY_INIT },
 
 	/* Logitech ConferenceCam CC3000e */
 	{ USB_DEVICE(0x046d, 0x0847), .driver_info = USB_QUIRK_DELAY_INIT },
@@ -231,6 +240,9 @@
 	/* Logitech PTZ Pro Camera */
 	{ USB_DEVICE(0x046d, 0x0853), .driver_info = USB_QUIRK_DELAY_INIT },
 
+	/* Logitech Screen Share */
+	{ USB_DEVICE(0x046d, 0x086c), .driver_info = USB_QUIRK_NO_LPM },
+
 	/* Logitech Quickcam Fusion */
 	{ USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME },
 
@@ -330,12 +342,19 @@
 	{ USB_DEVICE(0x06a3, 0x0006), .driver_info =
 			USB_QUIRK_CONFIG_INTF_STRINGS },
 
+	/* Agfa SNAPSCAN 1212U */
+	{ USB_DEVICE(0x06bd, 0x0001), .driver_info = USB_QUIRK_RESET_RESUME },
+
 	/* Guillemot Webcam Hercules Dualpix Exchange (2nd ID) */
 	{ USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
 
 	/* Guillemot Webcam Hercules Dualpix Exchange*/
 	{ USB_DEVICE(0x06f8, 0x3005), .driver_info = USB_QUIRK_RESET_RESUME },
 
+	/* Guillemot Hercules DJ Console audio card (BZ 208357) */
+	{ USB_DEVICE(0x06f8, 0xb000), .driver_info =
+			USB_QUIRK_ENDPOINT_BLACKLIST },
+
 	/* Midiman M-Audio Keystation 88es */
 	{ USB_DEVICE(0x0763, 0x0192), .driver_info = USB_QUIRK_RESET_RESUME },
 
@@ -354,13 +373,27 @@
 	{ USB_DEVICE(0x0904, 0x6103), .driver_info =
 			USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL },
 
+	/* Sound Devices USBPre2 */
+	{ USB_DEVICE(0x0926, 0x0202), .driver_info =
+			USB_QUIRK_ENDPOINT_BLACKLIST },
+
+	/* Sound Devices MixPre-D */
+	{ USB_DEVICE(0x0926, 0x0208), .driver_info =
+			USB_QUIRK_ENDPOINT_BLACKLIST },
+
 	/* Keytouch QWERTY Panel keyboard */
 	{ USB_DEVICE(0x0926, 0x3333), .driver_info =
 			USB_QUIRK_CONFIG_INTF_STRINGS },
 
+	/* Kingston DataTraveler 3.0 */
+	{ USB_DEVICE(0x0951, 0x1666), .driver_info = USB_QUIRK_NO_LPM },
+
 	/* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */
 	{ USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF },
 
+	/* ELMO L-12F document camera */
+	{ USB_DEVICE(0x09a1, 0x0028), .driver_info = USB_QUIRK_DELAY_CTRL_MSG },
+
 	/* Broadcom BCM92035DGROM BT dongle */
 	{ USB_DEVICE(0x0a5c, 0x2021), .driver_info = USB_QUIRK_RESET_RESUME },
 
@@ -371,10 +404,23 @@
 	{ USB_DEVICE(0x0b05, 0x17e0), .driver_info =
 			USB_QUIRK_IGNORE_REMOTE_WAKEUP },
 
+	/* Realtek hub in Dell WD19 (Type-C) */
+	{ USB_DEVICE(0x0bda, 0x0487), .driver_info = USB_QUIRK_NO_LPM },
+
+	/* Generic RTL8153 based ethernet adapters */
+	{ USB_DEVICE(0x0bda, 0x8153), .driver_info = USB_QUIRK_NO_LPM },
+
+	/* SONiX USB DEVICE Touchpad */
+	{ USB_DEVICE(0x0c45, 0x7056), .driver_info =
+			USB_QUIRK_IGNORE_REMOTE_WAKEUP },
+
 	/* Action Semiconductor flash disk */
 	{ USB_DEVICE(0x10d6, 0x2200), .driver_info =
 			USB_QUIRK_STRING_FETCH_255 },
 
+	/* novation SoundControl XL */
+	{ USB_DEVICE(0x1235, 0x0061), .driver_info = USB_QUIRK_RESET_RESUME },
+
 	/* Huawei 4G LTE module */
 	{ USB_DEVICE(0x12d1, 0x15bb), .driver_info =
 			USB_QUIRK_DISCONNECT_SUSPEND },
@@ -388,6 +434,10 @@
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
+	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
+			USB_QUIRK_DISCONNECT_SUSPEND },
+
 	/* BUILDWIN Photo Frame */
 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
 			USB_QUIRK_HONOR_BNUMINTERFACES },
@@ -417,6 +467,10 @@
 	/* Corsair K70 LUX */
 	{ USB_DEVICE(0x1b1c, 0x1b36), .driver_info = USB_QUIRK_DELAY_INIT },
 
+	/* Corsair K70 RGB RAPDIFIRE */
+	{ USB_DEVICE(0x1b1c, 0x1b38), .driver_info = USB_QUIRK_DELAY_INIT |
+	  USB_QUIRK_DELAY_CTRL_MSG },
+
 	/* MIDI keyboard WORLDE MINI */
 	{ USB_DEVICE(0x1c75, 0x0204), .driver_info =
 			USB_QUIRK_CONFIG_INTF_STRINGS },
@@ -439,6 +493,8 @@
 
 	{ USB_DEVICE(0x2386, 0x3119), .driver_info = USB_QUIRK_NO_LPM },
 
+	{ USB_DEVICE(0x2386, 0x350e), .driver_info = USB_QUIRK_NO_LPM },
+
 	/* DJI CineSSD */
 	{ USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM },
 
@@ -472,6 +528,42 @@
 	{ }  /* terminating entry must be last */
 };
 
+/*
+ * Entries for blacklisted endpoints that should be ignored when parsing
+ * configuration descriptors.
+ *
+ * Matched for devices with USB_QUIRK_ENDPOINT_BLACKLIST.
+ */
+static const struct usb_device_id usb_endpoint_blacklist[] = {
+	{ USB_DEVICE_INTERFACE_NUMBER(0x06f8, 0xb000, 5), .driver_info = 0x01 },
+	{ USB_DEVICE_INTERFACE_NUMBER(0x06f8, 0xb000, 5), .driver_info = 0x81 },
+	{ USB_DEVICE_INTERFACE_NUMBER(0x0926, 0x0202, 1), .driver_info = 0x85 },
+	{ USB_DEVICE_INTERFACE_NUMBER(0x0926, 0x0208, 1), .driver_info = 0x85 },
+	{ }
+};
+
+bool usb_endpoint_is_blacklisted(struct usb_device *udev,
+		struct usb_host_interface *intf,
+		struct usb_endpoint_descriptor *epd)
+{
+	const struct usb_device_id *id;
+	unsigned int address;
+
+	for (id = usb_endpoint_blacklist; id->match_flags; ++id) {
+		if (!usb_match_device(udev, id))
+			continue;
+
+		if (!usb_match_one_id_intf(udev, intf, id))
+			continue;
+
+		address = id->driver_info;
+		if (address == epd->bEndpointAddress)
+			return true;
+	}
+
+	return false;
+}
+
 static bool usb_match_any_interface(struct usb_device *udev,
 				    const struct usb_device_id *id)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/sysfs.c
@@ -889,7 +889,11 @@
 	size_t srclen, n;
 	int cfgno;
 	void *src;
+	int retval;
 
+	retval = usb_lock_device_interruptible(udev);
+	if (retval < 0)
+		return -EINTR;
 	/* The binary attribute begins with the device descriptor.
 	 * Following that are the raw descriptor entries for all the
 	 * configurations (config plus subsidiary descriptors).
@@ -914,6 +918,7 @@
 			off -= srclen;
 		}
 	}
+	usb_unlock_device(udev);
 	return count - nleft;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/urb.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/urb.c
@@ -45,6 +45,7 @@
 	if (urb) {
 		memset(urb, 0, sizeof(*urb));
 		kref_init(&urb->kref);
+		INIT_LIST_HEAD(&urb->urb_list);
 		INIT_LIST_HEAD(&urb->anchor_list);
 	}
 }
@@ -771,11 +772,12 @@
 EXPORT_SYMBOL_GPL(usb_block_urb);
 
 /**
- * usb_kill_anchored_urbs - cancel transfer requests en masse
+ * usb_kill_anchored_urbs - kill all URBs associated with an anchor
  * @anchor: anchor the requests are bound to
  *
- * this allows all outstanding URBs to be killed starting
- * from the back of the queue
+ * This kills all outstanding URBs starting from the back of the queue,
+ * with guarantee that no completer callbacks will take place from the
+ * anchor after this function returns.
  *
  * This routine should not be called by a driver after its disconnect
  * method has returned.
@@ -783,20 +785,26 @@
 void usb_kill_anchored_urbs(struct usb_anchor *anchor)
 {
 	struct urb *victim;
+	int surely_empty;
 
-	spin_lock_irq(&anchor->lock);
-	while (!list_empty(&anchor->urb_list)) {
-		victim = list_entry(anchor->urb_list.prev, struct urb,
-				    anchor_list);
-		/* we must make sure the URB isn't freed before we kill it*/
-		usb_get_urb(victim);
-		spin_unlock_irq(&anchor->lock);
-		/* this will unanchor the URB */
-		usb_kill_urb(victim);
-		usb_put_urb(victim);
+	do {
 		spin_lock_irq(&anchor->lock);
-	}
-	spin_unlock_irq(&anchor->lock);
+		while (!list_empty(&anchor->urb_list)) {
+			victim = list_entry(anchor->urb_list.prev,
+					    struct urb, anchor_list);
+			/* make sure the URB isn't freed before we kill it */
+			usb_get_urb(victim);
+			spin_unlock_irq(&anchor->lock);
+			/* this will unanchor the URB */
+			usb_kill_urb(victim);
+			usb_put_urb(victim);
+			spin_lock_irq(&anchor->lock);
+		}
+		surely_empty = usb_anchor_check_wakeup(anchor);
+
+		spin_unlock_irq(&anchor->lock);
+		cpu_relax();
+	} while (!surely_empty);
 }
 EXPORT_SYMBOL_GPL(usb_kill_anchored_urbs);
 
@@ -815,21 +823,27 @@
 void usb_poison_anchored_urbs(struct usb_anchor *anchor)
 {
 	struct urb *victim;
+	int surely_empty;
 
-	spin_lock_irq(&anchor->lock);
-	anchor->poisoned = 1;
-	while (!list_empty(&anchor->urb_list)) {
-		victim = list_entry(anchor->urb_list.prev, struct urb,
-				    anchor_list);
-		/* we must make sure the URB isn't freed before we kill it*/
-		usb_get_urb(victim);
-		spin_unlock_irq(&anchor->lock);
-		/* this will unanchor the URB */
-		usb_poison_urb(victim);
-		usb_put_urb(victim);
+	do {
 		spin_lock_irq(&anchor->lock);
-	}
-	spin_unlock_irq(&anchor->lock);
+		anchor->poisoned = 1;
+		while (!list_empty(&anchor->urb_list)) {
+			victim = list_entry(anchor->urb_list.prev,
+					    struct urb, anchor_list);
+			/* make sure the URB isn't freed before we kill it */
+			usb_get_urb(victim);
+			spin_unlock_irq(&anchor->lock);
+			/* this will unanchor the URB */
+			usb_poison_urb(victim);
+			usb_put_urb(victim);
+			spin_lock_irq(&anchor->lock);
+		}
+		surely_empty = usb_anchor_check_wakeup(anchor);
+
+		spin_unlock_irq(&anchor->lock);
+		cpu_relax();
+	} while (!surely_empty);
 }
 EXPORT_SYMBOL_GPL(usb_poison_anchored_urbs);
 
@@ -969,14 +983,20 @@
 {
 	struct urb *victim;
 	unsigned long flags;
+	int surely_empty;
 
-	spin_lock_irqsave(&anchor->lock, flags);
-	while (!list_empty(&anchor->urb_list)) {
-		victim = list_entry(anchor->urb_list.prev, struct urb,
-				    anchor_list);
-		__usb_unanchor_urb(victim, anchor);
-	}
-	spin_unlock_irqrestore(&anchor->lock, flags);
+	do {
+		spin_lock_irqsave(&anchor->lock, flags);
+		while (!list_empty(&anchor->urb_list)) {
+			victim = list_entry(anchor->urb_list.prev,
+					    struct urb, anchor_list);
+			__usb_unanchor_urb(victim, anchor);
+		}
+		surely_empty = usb_anchor_check_wakeup(anchor);
+
+		spin_unlock_irqrestore(&anchor->lock, flags);
+		cpu_relax();
+	} while (!surely_empty);
 }
 
 EXPORT_SYMBOL_GPL(usb_scuttle_anchored_urbs);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/core/usb.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/core/usb.h
@@ -37,6 +37,9 @@
 extern void usb_detect_quirks(struct usb_device *udev);
 extern void usb_detect_interface_quirks(struct usb_device *udev);
 extern void usb_release_quirk_list(void);
+extern bool usb_endpoint_is_blacklisted(struct usb_device *udev,
+		struct usb_host_interface *intf,
+		struct usb_endpoint_descriptor *epd);
 extern int usb_remove_device(struct usb_device *udev);
 
 extern int usb_get_device_descriptor(struct usb_device *dev,
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/core.c
@@ -524,7 +524,7 @@
 	greset |= GRSTCTL_CSFTRST;
 	dwc2_writel(hsotg, greset, GRSTCTL);
 
-	if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 50)) {
+	if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 10000)) {
 		dev_warn(hsotg->dev, "%s: HANG! Soft Reset timeout GRSTCTL GRSTCTL_CSFTRST\n",
 			 __func__);
 		return -EBUSY;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/core_intr.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/core_intr.c
@@ -421,10 +421,13 @@
 			if (ret && (ret != -ENOTSUPP))
 				dev_err(hsotg->dev, "exit power_down failed\n");
 
+			/* Change to L0 state */
+			hsotg->lx_state = DWC2_L0;
 			call_gadget(hsotg, resume);
+		} else {
+			/* Change to L0 state */
+			hsotg->lx_state = DWC2_L0;
 		}
-		/* Change to L0 state */
-		hsotg->lx_state = DWC2_L0;
 	} else {
 		if (hsotg->params.power_down)
 			return;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/gadget.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/gadget.c
@@ -712,8 +712,11 @@
  */
 static unsigned int dwc2_gadget_get_chain_limit(struct dwc2_hsotg_ep *hs_ep)
 {
+	const struct usb_endpoint_descriptor *ep_desc = hs_ep->ep.desc;
 	int is_isoc = hs_ep->isochronous;
 	unsigned int maxsize;
+	u32 mps = hs_ep->ep.maxpacket;
+	int dir_in = hs_ep->dir_in;
 
 	if (is_isoc)
 		maxsize = (hs_ep->dir_in ? DEV_DMA_ISOC_TX_NBYTES_LIMIT :
@@ -722,6 +725,11 @@
 	else
 		maxsize = DEV_DMA_NBYTES_LIMIT * MAX_DMA_DESC_NUM_GENERIC;
 
+	/* Interrupt OUT EP with mps not multiple of 4 */
+	if (hs_ep->index)
+		if (usb_endpoint_xfer_int(ep_desc) && !dir_in && (mps % 4))
+			maxsize = mps * MAX_DMA_DESC_NUM_GENERIC;
+
 	return maxsize;
 }
 
@@ -737,11 +745,14 @@
  * Isochronous - descriptor rx/tx bytes bitfield limit,
  * Control In/Bulk/Interrupt - multiple of mps. This will allow to not
  * have concatenations from various descriptors within one packet.
+ * Interrupt OUT - if mps not multiple of 4 then a single packet corresponds
+ * to a single descriptor.
  *
  * Selects corresponding mask for RX/TX bytes as well.
  */
 static u32 dwc2_gadget_get_desc_params(struct dwc2_hsotg_ep *hs_ep, u32 *mask)
 {
+	const struct usb_endpoint_descriptor *ep_desc = hs_ep->ep.desc;
 	u32 mps = hs_ep->ep.maxpacket;
 	int dir_in = hs_ep->dir_in;
 	u32 desc_size = 0;
@@ -765,6 +776,13 @@
 		desc_size -= desc_size % mps;
 	}
 
+	/* Interrupt OUT EP with mps not multiple of 4 */
+	if (hs_ep->index)
+		if (usb_endpoint_xfer_int(ep_desc) && !dir_in && (mps % 4)) {
+			desc_size = mps;
+			*mask = DEV_DMA_NBYTES_MASK;
+		}
+
 	return desc_size;
 }
 
@@ -1083,11 +1101,6 @@
 	else
 		packets = 1;	/* send one packet if length is zero. */
 
-	if (hs_ep->isochronous && length > (hs_ep->mc * hs_ep->ep.maxpacket)) {
-		dev_err(hsotg->dev, "req length > maxpacket*mc\n");
-		return;
-	}
-
 	if (dir_in && index != 0)
 		if (hs_ep->isochronous)
 			epsize = DXEPTSIZ_MC(packets);
@@ -1128,13 +1141,7 @@
 				length += (mps - (length % mps));
 		}
 
-		/*
-		 * If more data to send, adjust DMA for EP0 out data stage.
-		 * ureq->dma stays unchanged, hence increment it by already
-		 * passed passed data count before starting new transaction.
-		 */
-		if (!index && hsotg->ep0_state == DWC2_EP0_DATA_OUT &&
-		    continuing)
+		if (continuing)
 			offset = ureq->actual;
 
 		/* Fill DDMA chain entries */
@@ -1391,6 +1398,13 @@
 	req->actual = 0;
 	req->status = -EINPROGRESS;
 
+	/* Don't queue ISOC request if length greater than mps*mc */
+	if (hs_ep->isochronous &&
+	    req->length > (hs_ep->mc * hs_ep->ep.maxpacket)) {
+		dev_err(hs->dev, "req length > maxpacket*mc\n");
+		return -EINVAL;
+	}
+
 	/* In DDMA mode for ISOC's don't queue request if length greater
 	 * than descriptor limits.
 	 */
@@ -1529,7 +1543,6 @@
 static struct dwc2_hsotg_ep *ep_from_windex(struct dwc2_hsotg *hsotg,
 					    u32 windex)
 {
-	struct dwc2_hsotg_ep *ep;
 	int dir = (windex & USB_DIR_IN) ? 1 : 0;
 	int idx = windex & 0x7F;
 
@@ -1539,12 +1552,7 @@
 	if (idx > hsotg->num_of_eps)
 		return NULL;
 
-	ep = index_to_ep(hsotg, idx, dir);
-
-	if (idx && ep->dir_in != dir)
-		return NULL;
-
-	return ep;
+	return index_to_ep(hsotg, idx, dir);
 }
 
 /**
@@ -1632,6 +1640,7 @@
 	struct dwc2_hsotg_ep *ep0 = hsotg->eps_out[0];
 	struct dwc2_hsotg_ep *ep;
 	__le16 reply;
+	u16 status;
 	int ret;
 
 	dev_dbg(hsotg->dev, "%s: USB_REQ_GET_STATUS\n", __func__);
@@ -1643,11 +1652,10 @@
 
 	switch (ctrl->bRequestType & USB_RECIP_MASK) {
 	case USB_RECIP_DEVICE:
-		/*
-		 * bit 0 => self powered
-		 * bit 1 => remote wakeup
-		 */
-		reply = cpu_to_le16(0);
+		status = 1 << USB_DEVICE_SELF_POWERED;
+		status |= hsotg->remote_wakeup_allowed <<
+			  USB_DEVICE_REMOTE_WAKEUP;
+		reply = cpu_to_le16(status);
 		break;
 
 	case USB_RECIP_INTERFACE:
@@ -1758,7 +1766,10 @@
 	case USB_RECIP_DEVICE:
 		switch (wValue) {
 		case USB_DEVICE_REMOTE_WAKEUP:
-			hsotg->remote_wakeup_allowed = 1;
+			if (set)
+				hsotg->remote_wakeup_allowed = 1;
+			else
+				hsotg->remote_wakeup_allowed = 0;
 			break;
 
 		case USB_DEVICE_TEST_MODE:
@@ -1768,16 +1779,17 @@
 				return -EINVAL;
 
 			hsotg->test_mode = wIndex >> 8;
-			ret = dwc2_hsotg_send_reply(hsotg, ep0, NULL, 0);
-			if (ret) {
-				dev_err(hsotg->dev,
-					"%s: failed to send reply\n", __func__);
-				return ret;
-			}
 			break;
 		default:
 			return -ENOENT;
 		}
+
+		ret = dwc2_hsotg_send_reply(hsotg, ep0, NULL, 0);
+		if (ret) {
+			dev_err(hsotg->dev,
+				"%s: failed to send reply\n", __func__);
+			return ret;
+		}
 		break;
 
 	case USB_RECIP_ENDPOINT:
@@ -2313,22 +2325,36 @@
  */
 static unsigned int dwc2_gadget_get_xfersize_ddma(struct dwc2_hsotg_ep *hs_ep)
 {
+	const struct usb_endpoint_descriptor *ep_desc = hs_ep->ep.desc;
 	struct dwc2_hsotg *hsotg = hs_ep->parent;
 	unsigned int bytes_rem = 0;
+	unsigned int bytes_rem_correction = 0;
 	struct dwc2_dma_desc *desc = hs_ep->desc_list;
 	int i;
 	u32 status;
+	u32 mps = hs_ep->ep.maxpacket;
+	int dir_in = hs_ep->dir_in;
 
 	if (!desc)
 		return -EINVAL;
 
+	/* Interrupt OUT EP with mps not multiple of 4 */
+	if (hs_ep->index)
+		if (usb_endpoint_xfer_int(ep_desc) && !dir_in && (mps % 4))
+			bytes_rem_correction = 4 - (mps % 4);
+
 	for (i = 0; i < hs_ep->desc_count; ++i) {
 		status = desc->status;
 		bytes_rem += status & DEV_DMA_NBYTES_MASK;
+		bytes_rem -= bytes_rem_correction;
 
 		if (status & DEV_DMA_STS_MASK)
 			dev_err(hsotg->dev, "descriptor %d closed with %x\n",
 				i, status & DEV_DMA_STS_MASK);
+
+		if (status & DEV_DMA_L)
+			break;
+
 		desc++;
 	}
 
@@ -4056,11 +4082,12 @@
 	 * a unique tx-fifo even if it is non-periodic.
 	 */
 	if (dir_in && hsotg->dedicated_fifos) {
+		unsigned fifo_count = dwc2_hsotg_tx_fifo_count(hsotg);
 		u32 fifo_index = 0;
 		u32 fifo_size = UINT_MAX;
 
 		size = hs_ep->ep.maxpacket * hs_ep->mc;
-		for (i = 1; i < hsotg->num_of_eps; ++i) {
+		for (i = 1; i <= fifo_count; ++i) {
 			if (hsotg->fifo_map & (1 << i))
 				continue;
 			val = dwc2_readl(hsotg, DPTXFSIZN(i));
@@ -4879,12 +4906,6 @@
 					  epnum, 0);
 	}
 
-	ret = usb_add_gadget_udc(dev, &hsotg->gadget);
-	if (ret) {
-		dwc2_hsotg_ep_free_request(&hsotg->eps_out[0]->ep,
-					   hsotg->ctrl_req);
-		return ret;
-	}
 	dwc2_hsotg_dump(hsotg);
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/hcd.c
@@ -1313,19 +1313,20 @@
 			if (num_packets > max_hc_pkt_count) {
 				num_packets = max_hc_pkt_count;
 				chan->xfer_len = num_packets * chan->max_packet;
+			} else if (chan->ep_is_in) {
+				/*
+				 * Always program an integral # of max packets
+				 * for IN transfers.
+				 * Note: This assumes that the input buffer is
+				 * aligned and sized accordingly.
+				 */
+				chan->xfer_len = num_packets * chan->max_packet;
 			}
 		} else {
 			/* Need 1 packet for transfer length of 0 */
 			num_packets = 1;
 		}
 
-		if (chan->ep_is_in)
-			/*
-			 * Always program an integral # of max packets for IN
-			 * transfers
-			 */
-			chan->xfer_len = num_packets * chan->max_packet;
-
 		if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
 		    chan->ep_type == USB_ENDPOINT_XFER_ISOC)
 			/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/hcd_intr.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/hcd_intr.c
@@ -500,7 +500,7 @@
 						      &short_read);
 
 	if (urb->actual_length + xfer_length > urb->length) {
-		dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
+		dev_dbg(hsotg->dev, "%s(): trimming xfer length\n", __func__);
 		xfer_length = urb->length - urb->actual_length;
 	}
 
@@ -1977,6 +1977,18 @@
 		qtd->error_count++;
 		dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
 					  qtd, DWC2_HC_XFER_XACT_ERR);
+		/*
+		 * We can get here after a completed transaction
+		 * (urb->actual_length >= urb->length) which was not reported
+		 * as completed. If that is the case, and we do not abort
+		 * the transfer, a transfer of size 0 will be enqueued
+		 * subsequently. If urb->actual_length is not DMA-aligned,
+		 * the buffer will then point to an unaligned address, and
+		 * the resulting behavior is undefined. Bail out in that
+		 * situation.
+		 */
+		if (qtd->urb->actual_length >= qtd->urb->length)
+			qtd->error_count = 3;
 		dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
 		dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/params.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/params.c
@@ -846,7 +846,7 @@
 int dwc2_init_params(struct dwc2_hsotg *hsotg)
 {
 	const struct of_device_id *match;
-	void (*set_params)(void *data);
+	void (*set_params)(struct dwc2_hsotg *data);
 
 	dwc2_set_default_params(hsotg);
 	dwc2_get_device_properties(hsotg);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc2/platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc2/platform.c
@@ -337,7 +337,8 @@
 {
 	struct dwc2_hsotg *hsotg = platform_get_drvdata(dev);
 
-	disable_irq(hsotg->irq);
+	dwc2_disable_global_interrupts(hsotg);
+	synchronize_irq(hsotg->irq);
 }
 
 /**
@@ -507,10 +508,23 @@
 	if (hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)
 		dwc2_lowlevel_hw_disable(hsotg);
 
+#if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \
+	IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE)
+	/* Postponed adding a new gadget to the udc class driver list */
+	if (hsotg->gadget_enabled) {
+		retval = usb_add_gadget_udc(hsotg->dev, &hsotg->gadget);
+		if (retval) {
+			hsotg->gadget.udc = NULL;
+			dwc2_hsotg_remove(hsotg);
+			goto error;
+		}
+	}
+#endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */
 	return 0;
 
 error:
-	dwc2_lowlevel_hw_disable(hsotg);
+	if (hsotg->dr_mode != USB_DR_MODE_PERIPHERAL)
+		dwc2_lowlevel_hw_disable(hsotg);
 	return retval;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/core.c
@@ -117,6 +117,7 @@
 	struct dwc3 *dwc = work_to_dwc(work);
 	unsigned long flags;
 	int ret;
+	u32 reg;
 
 	if (dwc->dr_mode != USB_DR_MODE_OTG)
 		return;
@@ -168,6 +169,11 @@
 				otg_set_vbus(dwc->usb2_phy->otg, true);
 			phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
 			phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
+			if (dwc->dis_split_quirk) {
+				reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+				reg |= DWC3_GUCTL3_SPLITDISABLE;
+				dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+			}
 		}
 		break;
 	case DWC3_GCTL_PRTCAP_DEVICE:
@@ -992,6 +998,9 @@
 		if (dwc->dis_tx_ipgap_linecheck_quirk)
 			reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
 
+		if (dwc->parkmode_disable_ss_quirk)
+			reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
+
 		dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
 	}
 
@@ -1209,6 +1218,9 @@
 		/* do nothing */
 		break;
 	}
+
+	/* de-assert DRVVBUS for HOST and OTG mode */
+	dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_DEVICE);
 }
 
 static void dwc3_get_properties(struct dwc3 *dwc)
@@ -1302,6 +1314,8 @@
 				"snps,dis-del-phy-power-chg-quirk");
 	dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
 				"snps,dis-tx-ipgap-linecheck-quirk");
+	dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
+				"snps,parkmode-disable-ss-quirk");
 
 	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
 				"snps,tx_de_emphasis_quirk");
@@ -1315,6 +1329,9 @@
 	dwc->dis_metastability_quirk = device_property_read_bool(dev,
 				"snps,dis_metastability_quirk");
 
+	dwc->dis_split_quirk = device_property_read_bool(dev,
+				"snps,dis-split-quirk");
+
 	dwc->lpm_nyet_threshold = lpm_nyet_threshold;
 	dwc->tx_de_emphasis = tx_de_emphasis;
 
@@ -1518,6 +1535,17 @@
 
 err5:
 	dwc3_event_buffers_cleanup(dwc);
+
+	usb_phy_shutdown(dwc->usb2_phy);
+	usb_phy_shutdown(dwc->usb3_phy);
+	phy_exit(dwc->usb2_generic_phy);
+	phy_exit(dwc->usb3_generic_phy);
+
+	usb_phy_set_suspend(dwc->usb2_phy, 1);
+	usb_phy_set_suspend(dwc->usb3_phy, 1);
+	phy_power_off(dwc->usb2_generic_phy);
+	phy_power_off(dwc->usb3_generic_phy);
+
 	dwc3_ulpi_exit(dwc);
 
 err4:
@@ -1553,9 +1581,9 @@
 	dwc3_core_exit(dwc);
 	dwc3_ulpi_exit(dwc);
 
-	pm_runtime_put_sync(&pdev->dev);
-	pm_runtime_allow(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
+	pm_runtime_put_noidle(&pdev->dev);
+	pm_runtime_set_suspended(&pdev->dev);
 
 	dwc3_free_event_buffers(dwc);
 	dwc3_free_scratch_buffers(dwc);
@@ -1690,7 +1718,7 @@
 		if (PMSG_IS_AUTO(msg))
 			break;
 
-		ret = dwc3_core_init(dwc);
+		ret = dwc3_core_init_for_resume(dwc);
 		if (ret)
 			return ret;
 
@@ -1827,10 +1855,26 @@
 
 	return 0;
 }
+
+static void dwc3_complete(struct device *dev)
+{
+	struct dwc3	*dwc = dev_get_drvdata(dev);
+	u32		reg;
+
+	if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST &&
+			dwc->dis_split_quirk) {
+		reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+		reg |= DWC3_GUCTL3_SPLITDISABLE;
+		dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+	}
+}
+#else
+#define dwc3_complete NULL
 #endif /* CONFIG_PM_SLEEP */
 
 static const struct dev_pm_ops dwc3_dev_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume)
+	.complete = dwc3_complete,
 	SET_RUNTIME_PM_OPS(dwc3_runtime_suspend, dwc3_runtime_resume,
 			dwc3_runtime_idle)
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/core.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/core.h
@@ -136,6 +136,7 @@
 #define DWC3_GEVNTCOUNT(n)	(0xc40c + ((n) * 0x10))
 
 #define DWC3_GHWPARAMS8		0xc600
+#define DWC3_GUCTL3		0xc60c
 #define DWC3_GFLADJ		0xc630
 
 /* Device Registers */
@@ -249,6 +250,7 @@
 #define DWC3_GUCTL_HSTINAUTORETRY	BIT(14)
 
 /* Global User Control 1 Register */
+#define DWC3_GUCTL1_PARKMODE_DISABLE_SS	BIT(17)
 #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS	BIT(28)
 #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW	BIT(24)
 
@@ -281,6 +283,7 @@
 
 /* Global USB2 PHY Vendor Control Register */
 #define DWC3_GUSB2PHYACC_NEWREGREQ	BIT(25)
+#define DWC3_GUSB2PHYACC_DONE		BIT(24)
 #define DWC3_GUSB2PHYACC_BUSY		BIT(23)
 #define DWC3_GUSB2PHYACC_WRITE		BIT(22)
 #define DWC3_GUSB2PHYACC_ADDR(n)	(n << 16)
@@ -309,6 +312,10 @@
 #define DWC3_GTXFIFOSIZ_TXFDEF(n)	((n) & 0xffff)
 #define DWC3_GTXFIFOSIZ_TXFSTADDR(n)	((n) & 0xffff0000)
 
+/* Global RX Fifo Size Register */
+#define DWC31_GRXFIFOSIZ_RXFDEP(n)	((n) & 0x7fff)	/* DWC_usb31 only */
+#define DWC3_GRXFIFOSIZ_RXFDEP(n)	((n) & 0xffff)
+
 /* Global Event Size Registers */
 #define DWC3_GEVNTSIZ_INTMASK		BIT(31)
 #define DWC3_GEVNTSIZ_SIZE(n)		((n) & 0xffff)
@@ -370,6 +377,9 @@
 /* Global User Control Register 2 */
 #define DWC3_GUCTL2_RST_ACTBITLATER		BIT(14)
 
+/* Global User Control Register 3 */
+#define DWC3_GUCTL3_SPLITDISABLE		BIT(14)
+
 /* Device Configuration Register */
 #define DWC3_DCFG_DEVADDR(addr)	((addr) << 3)
 #define DWC3_DCFG_DEVADDR_MASK	DWC3_DCFG_DEVADDR(0x7f)
@@ -688,7 +698,10 @@
 #define DWC3_EP_STALL		BIT(1)
 #define DWC3_EP_WEDGE		BIT(2)
 #define DWC3_EP_TRANSFER_STARTED BIT(3)
+#define DWC3_EP_END_TRANSFER_PENDING BIT(4)
 #define DWC3_EP_PENDING_REQUEST	BIT(5)
+#define DWC3_EP_DELAY_START	BIT(6)
+#define DWC3_EP_PENDING_CLEAR_STALL	BIT(11)
 
 	/* This last one is specific to EP0 */
 #define DWC3_EP0_DIR_IN		BIT(31)
@@ -1022,6 +1035,8 @@
  *			change quirk.
  * @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate
  *			check during HS transmit.
+ * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
+ *			instances in park mode.
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
  * @tx_de_emphasis: Tx de-emphasis value
  * 	0	- -6dB de-emphasis
@@ -1029,6 +1044,7 @@
  * 	2	- No de-emphasis
  * 	3	- Reserved
  * @dis_metastability_quirk: set to disable metastability quirk.
+ * @dis_split_quirk: set to disable split boundary.
  * @imod_interval: set the interrupt moderation interval in 250ns
  *                 increments or 0 to disable.
  */
@@ -1213,12 +1229,15 @@
 	unsigned		dis_u2_freeclk_exists_quirk:1;
 	unsigned		dis_del_phy_power_chg_quirk:1;
 	unsigned		dis_tx_ipgap_linecheck_quirk:1;
+	unsigned		parkmode_disable_ss_quirk:1;
 
 	unsigned		tx_de_emphasis_quirk:1;
 	unsigned		tx_de_emphasis:2;
 
 	unsigned		dis_metastability_quirk:1;
 
+	unsigned		dis_split_quirk:1;
+
 	u16			imod_interval;
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/debug.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/debug.h
@@ -256,86 +256,77 @@
 	u8 epnum = event->endpoint_number;
 	size_t len;
 	int status;
-	int ret;
 
-	ret = snprintf(str, size, "ep%d%s: ", epnum >> 1,
+	len = scnprintf(str, size, "ep%d%s: ", epnum >> 1,
 			(epnum & 1) ? "in" : "out");
-	if (ret < 0)
-		return "UNKNOWN";
 
 	status = event->status;
 
 	switch (event->endpoint_event) {
 	case DWC3_DEPEVT_XFERCOMPLETE:
-		len = strlen(str);
-		snprintf(str + len, size - len, "Transfer Complete (%c%c%c)",
+		len += scnprintf(str + len, size - len,
+				"Transfer Complete (%c%c%c)",
 				status & DEPEVT_STATUS_SHORT ? 'S' : 's',
 				status & DEPEVT_STATUS_IOC ? 'I' : 'i',
 				status & DEPEVT_STATUS_LST ? 'L' : 'l');
 
-		len = strlen(str);
-
 		if (epnum <= 1)
-			snprintf(str + len, size - len, " [%s]",
+			scnprintf(str + len, size - len, " [%s]",
 					dwc3_ep0_state_string(ep0state));
 		break;
 	case DWC3_DEPEVT_XFERINPROGRESS:
-		len = strlen(str);
-
-		snprintf(str + len, size - len, "Transfer In Progress [%d] (%c%c%c)",
+		scnprintf(str + len, size - len,
+				"Transfer In Progress [%d] (%c%c%c)",
 				event->parameters,
 				status & DEPEVT_STATUS_SHORT ? 'S' : 's',
 				status & DEPEVT_STATUS_IOC ? 'I' : 'i',
 				status & DEPEVT_STATUS_LST ? 'M' : 'm');
 		break;
 	case DWC3_DEPEVT_XFERNOTREADY:
-		len = strlen(str);
-
-		snprintf(str + len, size - len, "Transfer Not Ready [%d]%s",
+		len += scnprintf(str + len, size - len,
+				"Transfer Not Ready [%d]%s",
 				event->parameters,
 				status & DEPEVT_STATUS_TRANSFER_ACTIVE ?
 				" (Active)" : " (Not Active)");
 
-		len = strlen(str);
-
 		/* Control Endpoints */
 		if (epnum <= 1) {
 			int phase = DEPEVT_STATUS_CONTROL_PHASE(event->status);
 
 			switch (phase) {
 			case DEPEVT_STATUS_CONTROL_DATA:
-				snprintf(str + ret, size - ret,
+				scnprintf(str + len, size - len,
 						" [Data Phase]");
 				break;
 			case DEPEVT_STATUS_CONTROL_STATUS:
-				snprintf(str + ret, size - ret,
+				scnprintf(str + len, size - len,
 						" [Status Phase]");
 			}
 		}
 		break;
 	case DWC3_DEPEVT_RXTXFIFOEVT:
-		snprintf(str + ret, size - ret, "FIFO");
+		scnprintf(str + len, size - len, "FIFO");
 		break;
 	case DWC3_DEPEVT_STREAMEVT:
 		status = event->status;
 
 		switch (status) {
 		case DEPEVT_STREAMEVT_FOUND:
-			snprintf(str + ret, size - ret, " Stream %d Found",
+			scnprintf(str + len, size - len, " Stream %d Found",
 					event->parameters);
 			break;
 		case DEPEVT_STREAMEVT_NOTFOUND:
 		default:
-			snprintf(str + ret, size - ret, " Stream Not Found");
+			scnprintf(str + len, size - len, " Stream Not Found");
 			break;
 		}
 
 		break;
 	case DWC3_DEPEVT_EPCMDCMPLT:
-		snprintf(str + ret, size - ret, "Endpoint Command Complete");
+		scnprintf(str + len, size - len, "Endpoint Command Complete");
 		break;
 	default:
-		snprintf(str, size, "UNKNOWN");
+		scnprintf(str + len, size - len, "UNKNOWN");
 	}
 
 	return str;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/dwc3-of-simple.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/dwc3-of-simple.c
@@ -183,6 +183,7 @@
 	{ .compatible = "amlogic,meson-axg-dwc3" },
 	{ .compatible = "amlogic,meson-gxl-dwc3" },
 	{ .compatible = "allwinner,sun50i-h6-dwc3" },
+	{ .compatible = "hisilicon,hi3670-dwc3" },
 	{ /* Sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, of_dwc3_simple_match);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/dwc3-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/dwc3-pci.c
@@ -29,13 +29,18 @@
 #define PCI_DEVICE_ID_INTEL_BXT_M		0x1aaa
 #define PCI_DEVICE_ID_INTEL_APL			0x5aaa
 #define PCI_DEVICE_ID_INTEL_KBP			0xa2b0
-#define PCI_DEVICE_ID_INTEL_CMLH		0x02ee
+#define PCI_DEVICE_ID_INTEL_CMLLP		0x02ee
+#define PCI_DEVICE_ID_INTEL_CMLH		0x06ee
 #define PCI_DEVICE_ID_INTEL_GLK			0x31aa
 #define PCI_DEVICE_ID_INTEL_CNPLP		0x9dee
 #define PCI_DEVICE_ID_INTEL_CNPH		0xa36e
+#define PCI_DEVICE_ID_INTEL_CNPV		0xa3b0
 #define PCI_DEVICE_ID_INTEL_ICLLP		0x34ee
 #define PCI_DEVICE_ID_INTEL_EHLLP		0x4b7e
 #define PCI_DEVICE_ID_INTEL_TGPLP		0xa0ee
+#define PCI_DEVICE_ID_INTEL_TGPH		0x43ee
+#define PCI_DEVICE_ID_INTEL_JSP			0x4dee
+#define PCI_DEVICE_ID_INTEL_ADLS		0x7ae1
 
 #define PCI_INTEL_BXT_DSM_GUID		"732b85d5-b7a7-4a1b-9ba0-4bbd00ffd511"
 #define PCI_INTEL_BXT_FUNC_PMU_PWR	4
@@ -112,6 +117,7 @@
 
 static const struct property_entry dwc3_pci_mrfld_properties[] = {
 	PROPERTY_ENTRY_STRING("dr_mode", "otg"),
+	PROPERTY_ENTRY_STRING("linux,extcon-name", "mrfld_bcove_pwrsrc"),
 	PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
 	{}
 };
@@ -142,7 +148,8 @@
 
 	if (pdev->vendor == PCI_VENDOR_ID_INTEL) {
 		if (pdev->device == PCI_DEVICE_ID_INTEL_BXT ||
-				pdev->device == PCI_DEVICE_ID_INTEL_BXT_M) {
+		    pdev->device == PCI_DEVICE_ID_INTEL_BXT_M ||
+		    pdev->device == PCI_DEVICE_ID_INTEL_EHLLP) {
 			guid_parse(PCI_INTEL_BXT_DSM_GUID, &dwc->guid);
 			dwc->has_dsm_for_pm = true;
 		}
@@ -203,8 +210,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(&dwc3->dev);
-	if (ret)
+	if (ret) {
+		pm_runtime_put_sync_autosuspend(&dwc3->dev);
 		return;
+	}
 
 	pm_runtime_mark_last_busy(&dwc3->dev);
 	pm_runtime_put_sync_autosuspend(&dwc3->dev);
@@ -308,6 +317,9 @@
 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_MRFLD),
 	  (kernel_ulong_t) &dwc3_pci_mrfld_properties, },
 
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_CMLLP),
+	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
+
 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_CMLH),
 	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
 
@@ -338,6 +350,9 @@
 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_CNPH),
 	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
 
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_CNPV),
+	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
+
 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICLLP),
 	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
 
@@ -347,6 +362,15 @@
 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_TGPLP),
 	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
 
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_TGPH),
+	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
+
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_JSP),
+	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
+
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ADLS),
+	  (kernel_ulong_t) &dwc3_pci_intel_properties, },
+
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_NL_USB),
 	  (kernel_ulong_t) &dwc3_pci_amd_properties, },
 	{  }	/* Terminating Entry */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/dwc3-qcom.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/dwc3-qcom.c
@@ -251,8 +251,10 @@
 	for (i = qcom->num_clocks - 1; i >= 0; i--)
 		clk_disable_unprepare(qcom->clks[i]);
 
+	if (device_may_wakeup(qcom->dev))
+		dwc3_qcom_enable_interrupts(qcom);
+
 	qcom->is_suspended = true;
-	dwc3_qcom_enable_interrupts(qcom);
 
 	return 0;
 }
@@ -265,7 +267,8 @@
 	if (!qcom->is_suspended)
 		return 0;
 
-	dwc3_qcom_disable_interrupts(qcom);
+	if (device_may_wakeup(qcom->dev))
+		dwc3_qcom_disable_interrupts(qcom);
 
 	for (i = 0; i < qcom->num_clocks; i++) {
 		ret = clk_prepare_enable(qcom->clks[i]);
@@ -528,16 +531,19 @@
 	ret = of_platform_populate(np, NULL, NULL, dev);
 	if (ret) {
 		dev_err(dev, "failed to register dwc3 core - %d\n", ret);
-		return ret;
+		goto node_put;
 	}
 
 	qcom->dwc3 = of_find_device_by_node(dwc3_np);
 	if (!qcom->dwc3) {
+		ret = -ENODEV;
 		dev_err(dev, "failed to get dwc3 platform device\n");
-		return -ENODEV;
 	}
 
-	return 0;
+node_put:
+	of_node_put(dwc3_np);
+
+	return ret;
 }
 
 static const struct dwc3_acpi_pdata sdm845_acpi_pdata = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/ep0.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/ep0.c
@@ -524,6 +524,11 @@
 		ret = __dwc3_gadget_ep_set_halt(dep, set, true);
 		if (ret)
 			return -EINVAL;
+
+		/* ClearFeature(Halt) may need delayed status */
+		if (!set && (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
+			return USB_GADGET_DELAYED_STATUS;
+
 		break;
 	default:
 		return -EINVAL;
@@ -942,12 +947,16 @@
 static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
 		struct dwc3_ep *dep, struct dwc3_request *req)
 {
+	unsigned int		trb_length = 0;
 	int			ret;
 
 	req->direction = !!dep->number;
 
 	if (req->request.length == 0) {
-		dwc3_ep0_prepare_one_trb(dep, dwc->ep0_trb_addr, 0,
+		if (!req->direction)
+			trb_length = dep->endpoint.maxpacket;
+
+		dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr, trb_length,
 				DWC3_TRBCTL_CONTROL_DATA, false);
 		ret = dwc3_ep0_start_trans(dep);
 	} else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket)
@@ -994,9 +1003,12 @@
 
 		req->trb = &dwc->ep0_trb[dep->trb_enqueue - 1];
 
+		if (!req->direction)
+			trb_length = dep->endpoint.maxpacket;
+
 		/* Now prepare one extra TRB to align transfer size */
 		dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
-					 0, DWC3_TRBCTL_CONTROL_DATA,
+					 trb_length, DWC3_TRBCTL_CONTROL_DATA,
 					 false);
 		ret = dwc3_ep0_start_trans(dep);
 	} else {
@@ -1042,6 +1054,18 @@
 	__dwc3_ep0_do_control_status(dwc, dep);
 }
 
+void dwc3_ep0_send_delayed_status(struct dwc3 *dwc)
+{
+	unsigned int direction = !dwc->ep0_expect_in;
+
+	dwc->delayed_status = false;
+
+	if (dwc->ep0state != EP0_STATUS_PHASE)
+		return;
+
+	__dwc3_ep0_do_control_status(dwc, dwc->eps[direction]);
+}
+
 static void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
 {
 	struct dwc3_gadget_ep_cmd_params params;
@@ -1117,6 +1141,9 @@
 void dwc3_ep0_interrupt(struct dwc3 *dwc,
 		const struct dwc3_event_depevt *event)
 {
+	struct dwc3_ep	*dep = dwc->eps[event->endpoint_number];
+	u8		cmd;
+
 	switch (event->endpoint_event) {
 	case DWC3_DEPEVT_XFERCOMPLETE:
 		dwc3_ep0_xfer_complete(dwc, event);
@@ -1129,7 +1156,14 @@
 	case DWC3_DEPEVT_XFERINPROGRESS:
 	case DWC3_DEPEVT_RXTXFIFOEVT:
 	case DWC3_DEPEVT_STREAMEVT:
+		break;
 	case DWC3_DEPEVT_EPCMDCMPLT:
+		cmd = DEPEVT_PARAMETER_CMD(event->parameters);
+
+		if (cmd == DWC3_DEPCMD_ENDTRANSFER) {
+			dep->flags &= ~DWC3_EP_END_TRANSFER_PENDING;
+			dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
+		}
 		break;
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/gadget.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/gadget.c
@@ -270,7 +270,7 @@
 {
 	const struct usb_endpoint_descriptor *desc = dep->endpoint.desc;
 	struct dwc3		*dwc = dep->dwc;
-	u32			timeout = 1000;
+	u32			timeout = 5000;
 	u32			saved_config = 0;
 	u32			reg;
 
@@ -593,8 +593,23 @@
 		params.param0 |= DWC3_DEPCFG_FIFO_NUMBER(dep->number >> 1);
 
 	if (desc->bInterval) {
-		params.param1 |= DWC3_DEPCFG_BINTERVAL_M1(desc->bInterval - 1);
-		dep->interval = 1 << (desc->bInterval - 1);
+		u8 bInterval_m1;
+
+		/*
+		 * Valid range for DEPCFG.bInterval_m1 is from 0 to 13, and it
+		 * must be set to 0 when the controller operates in full-speed.
+		 */
+		bInterval_m1 = min_t(u8, desc->bInterval - 1, 13);
+		if (dwc->gadget.speed == USB_SPEED_FULL)
+			bInterval_m1 = 0;
+
+		if (usb_endpoint_type(desc) == USB_ENDPOINT_XFER_INT &&
+		    dwc->gadget.speed == USB_SPEED_FULL)
+			dep->interval = desc->bInterval;
+		else
+			dep->interval = 1 << (desc->bInterval - 1);
+
+		params.param1 |= DWC3_DEPCFG_BINTERVAL_M1(bInterval_m1);
 	}
 
 	return dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETEPCONFIG, &params);
@@ -1017,26 +1032,24 @@
  * dwc3_prepare_one_trb - setup one TRB from one request
  * @dep: endpoint for which this request is prepared
  * @req: dwc3_request pointer
+ * @trb_length: buffer size of the TRB
  * @chain: should this TRB be chained to the next?
  * @node: only for isochronous endpoints. First TRB needs different type.
  */
 static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
-		struct dwc3_request *req, unsigned chain, unsigned node)
+		struct dwc3_request *req, unsigned int trb_length,
+		unsigned chain, unsigned node)
 {
 	struct dwc3_trb		*trb;
-	unsigned int		length;
 	dma_addr_t		dma;
 	unsigned		stream_id = req->request.stream_id;
 	unsigned		short_not_ok = req->request.short_not_ok;
 	unsigned		no_interrupt = req->request.no_interrupt;
 
-	if (req->request.num_sgs > 0) {
-		length = sg_dma_len(req->start_sg);
+	if (req->request.num_sgs > 0)
 		dma = sg_dma_address(req->start_sg);
-	} else {
-		length = req->request.length;
+	else
 		dma = req->request.dma;
-	}
 
 	trb = &dep->trb_pool[dep->trb_enqueue];
 
@@ -1048,7 +1061,7 @@
 
 	req->num_trbs++;
 
-	__dwc3_prepare_one_trb(dep, trb, dma, length, chain, node,
+	__dwc3_prepare_one_trb(dep, trb, dma, trb_length, chain, node,
 			stream_id, short_not_ok, no_interrupt);
 }
 
@@ -1058,17 +1071,35 @@
 	struct scatterlist *sg = req->start_sg;
 	struct scatterlist *s;
 	int		i;
-
+	unsigned int length = req->request.length;
+	unsigned int maxp = usb_endpoint_maxp(dep->endpoint.desc);
+	unsigned int rem = length % maxp;
 	unsigned int remaining = req->request.num_mapped_sgs
 		- req->num_queued_sgs;
 
+	/*
+	 * If we resume preparing the request, then get the remaining length of
+	 * the request and resume where we left off.
+	 */
+	for_each_sg(req->request.sg, s, req->num_queued_sgs, i)
+		length -= sg_dma_len(s);
+
 	for_each_sg(sg, s, remaining, i) {
-		unsigned int length = req->request.length;
-		unsigned int maxp = usb_endpoint_maxp(dep->endpoint.desc);
-		unsigned int rem = length % maxp;
+		unsigned int trb_length;
 		unsigned chain = true;
 
-		if (sg_is_last(s))
+		trb_length = min_t(unsigned int, length, sg_dma_len(s));
+
+		length -= trb_length;
+
+		/*
+		 * IOMMU driver is coalescing the list of sgs which shares a
+		 * page boundary into one and giving it to USB driver. With
+		 * this the number of sgs mapped is not equal to the number of
+		 * sgs passed. So mark the chain bit to false if it isthe last
+		 * mapped sg.
+		 */
+		if ((i == remaining - 1) || !length)
 			chain = false;
 
 		if (rem && usb_endpoint_dir_out(dep->endpoint.desc) && !chain) {
@@ -1078,7 +1109,7 @@
 			req->needs_extra_trb = true;
 
 			/* prepare normal TRB */
-			dwc3_prepare_one_trb(dep, req, true, i);
+			dwc3_prepare_one_trb(dep, req, trb_length, true, i);
 
 			/* Now prepare one extra TRB to align transfer size */
 			trb = &dep->trb_pool[dep->trb_enqueue];
@@ -1088,8 +1119,37 @@
 					req->request.stream_id,
 					req->request.short_not_ok,
 					req->request.no_interrupt);
+		} else if (req->request.zero && req->request.length &&
+			   !usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
+			   !rem && !chain) {
+			struct dwc3	*dwc = dep->dwc;
+			struct dwc3_trb	*trb;
+
+			req->needs_extra_trb = true;
+
+			/* Prepare normal TRB */
+			dwc3_prepare_one_trb(dep, req, trb_length, true, i);
+
+			/* Prepare one extra TRB to handle ZLP */
+			trb = &dep->trb_pool[dep->trb_enqueue];
+			req->num_trbs++;
+			__dwc3_prepare_one_trb(dep, trb, dwc->bounce_addr, 0,
+					       !req->direction, 1,
+					       req->request.stream_id,
+					       req->request.short_not_ok,
+					       req->request.no_interrupt);
+
+			/* Prepare one more TRB to handle MPS alignment */
+			if (!req->direction) {
+				trb = &dep->trb_pool[dep->trb_enqueue];
+				req->num_trbs++;
+				__dwc3_prepare_one_trb(dep, trb, dwc->bounce_addr, maxp,
+						       false, 1, req->request.stream_id,
+						       req->request.short_not_ok,
+						       req->request.no_interrupt);
+			}
 		} else {
-			dwc3_prepare_one_trb(dep, req, chain, i);
+			dwc3_prepare_one_trb(dep, req, trb_length, chain, i);
 		}
 
 		/*
@@ -1104,6 +1164,16 @@
 
 		req->num_queued_sgs++;
 
+		/*
+		 * The number of pending SG entries may not correspond to the
+		 * number of mapped SG entries. If all the data are queued, then
+		 * don't include unused SG entries.
+		 */
+		if (length == 0) {
+			req->num_pending_sgs -= req->request.num_mapped_sgs - req->num_queued_sgs;
+			break;
+		}
+
 		if (!dwc3_calc_trbs_left(dep))
 			break;
 	}
@@ -1123,7 +1193,7 @@
 		req->needs_extra_trb = true;
 
 		/* prepare normal TRB */
-		dwc3_prepare_one_trb(dep, req, true, 0);
+		dwc3_prepare_one_trb(dep, req, length, true, 0);
 
 		/* Now prepare one extra TRB to align transfer size */
 		trb = &dep->trb_pool[dep->trb_enqueue];
@@ -1133,6 +1203,7 @@
 				req->request.short_not_ok,
 				req->request.no_interrupt);
 	} else if (req->request.zero && req->request.length &&
+		   !usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
 		   (IS_ALIGNED(req->request.length, maxp))) {
 		struct dwc3	*dwc = dep->dwc;
 		struct dwc3_trb	*trb;
@@ -1140,17 +1211,27 @@
 		req->needs_extra_trb = true;
 
 		/* prepare normal TRB */
-		dwc3_prepare_one_trb(dep, req, true, 0);
+		dwc3_prepare_one_trb(dep, req, length, true, 0);
 
-		/* Now prepare one extra TRB to handle ZLP */
+		/* Prepare one extra TRB to handle ZLP */
 		trb = &dep->trb_pool[dep->trb_enqueue];
 		req->num_trbs++;
 		__dwc3_prepare_one_trb(dep, trb, dwc->bounce_addr, 0,
-				false, 1, req->request.stream_id,
+				!req->direction, 1, req->request.stream_id,
 				req->request.short_not_ok,
 				req->request.no_interrupt);
+
+		/* Prepare one more TRB to handle MPS alignment for OUT */
+		if (!req->direction) {
+			trb = &dep->trb_pool[dep->trb_enqueue];
+			req->num_trbs++;
+			__dwc3_prepare_one_trb(dep, trb, dwc->bounce_addr, maxp,
+					       false, 1, req->request.stream_id,
+					       req->request.short_not_ok,
+					       req->request.no_interrupt);
+		}
 	} else {
-		dwc3_prepare_one_trb(dep, req, false, 0);
+		dwc3_prepare_one_trb(dep, req, length, false, 0);
 	}
 }
 
@@ -1210,6 +1291,8 @@
 	}
 }
 
+static void dwc3_gadget_ep_cleanup_cancelled_requests(struct dwc3_ep *dep);
+
 static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep)
 {
 	struct dwc3_gadget_ep_cmd_params params;
@@ -1249,14 +1332,20 @@
 
 	ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
 	if (ret < 0) {
-		/*
-		 * FIXME we need to iterate over the list of requests
-		 * here and stop, unmap, free and del each of the linked
-		 * requests instead of what we do now.
-		 */
-		if (req->trb)
-			memset(req->trb, 0, sizeof(struct dwc3_trb));
-		dwc3_gadget_del_and_unmap_request(dep, req, ret);
+		struct dwc3_request *tmp;
+
+		if (ret == -EAGAIN)
+			return ret;
+
+		dwc3_stop_active_transfer(dep, true, true);
+
+		list_for_each_entry_safe(req, tmp, &dep->started_list, list)
+			dwc3_gadget_move_cancelled_request(req);
+
+		/* If ep isn't started, then there's no end transfer pending */
+		if (!(dep->flags & DWC3_EP_END_TRANSFER_PENDING))
+			dwc3_gadget_ep_cleanup_cancelled_requests(dep);
+
 		return ret;
 	}
 
@@ -1448,6 +1537,17 @@
 	req->status = DWC3_REQUEST_STATUS_QUEUED;
 
 	/*
+	 * Start the transfer only after the END_TRANSFER is completed
+	 * and endpoint STALL is cleared.
+	 */
+	if ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) ||
+	    (dep->flags & DWC3_EP_WEDGE) ||
+	    (dep->flags & DWC3_EP_STALL)) {
+		dep->flags |= DWC3_EP_DELAY_START;
+		return 0;
+	}
+
+	/*
 	 * NOTICE: Isochronous endpoints should NEVER be prestarted. We must
 	 * wait for a XferNotReady event so we will know what's the current
 	 * (micro-)frame number.
@@ -1492,6 +1592,10 @@
 {
 	int i;
 
+	/* If req->trb is not set, then the request has not started */
+	if (!req->trb)
+		return;
+
 	/*
 	 * If request was already started, this means we had to
 	 * stop the transfer. With that we also need to ignore
@@ -1505,7 +1609,7 @@
 	for (i = 0; i < req->num_trbs; i++) {
 		struct dwc3_trb *trb;
 
-		trb = req->trb + i;
+		trb = &dep->trb_pool[dep->trb_dequeue];
 		trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
 		dwc3_ep_inc_deq(dep);
 	}
@@ -1582,6 +1686,8 @@
 {
 	struct dwc3_gadget_ep_cmd_params	params;
 	struct dwc3				*dwc = dep->dwc;
+	struct dwc3_request			*req;
+	struct dwc3_request			*tmp;
 	int					ret;
 
 	if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
@@ -1618,13 +1724,42 @@
 		else
 			dep->flags |= DWC3_EP_STALL;
 	} else {
+		/*
+		 * Don't issue CLEAR_STALL command to control endpoints. The
+		 * controller automatically clears the STALL when it receives
+		 * the SETUP token.
+		 */
+		if (dep->number <= 1) {
+			dep->flags &= ~(DWC3_EP_STALL | DWC3_EP_WEDGE);
+			return 0;
+		}
+
+		dwc3_stop_active_transfer(dep, true, true);
+
+		list_for_each_entry_safe(req, tmp, &dep->started_list, list)
+			dwc3_gadget_move_cancelled_request(req);
+
+		if (dep->flags & DWC3_EP_END_TRANSFER_PENDING) {
+			dep->flags |= DWC3_EP_PENDING_CLEAR_STALL;
+			return 0;
+		}
+
+		dwc3_gadget_ep_cleanup_cancelled_requests(dep);
 
 		ret = dwc3_send_clear_stall_ep_cmd(dep);
-		if (ret)
+		if (ret) {
 			dev_err(dwc->dev, "failed to clear STALL on %s\n",
 					dep->name);
-		else
-			dep->flags &= ~(DWC3_EP_STALL | DWC3_EP_WEDGE);
+			return ret;
+		}
+
+		dep->flags &= ~(DWC3_EP_STALL | DWC3_EP_WEDGE);
+
+		if ((dep->flags & DWC3_EP_DELAY_START) &&
+		    !usb_endpoint_xfer_isoc(dep->endpoint.desc))
+			__dwc3_gadget_kick_transfer(dep);
+
+		dep->flags &= ~DWC3_EP_DELAY_START;
 	}
 
 	return ret;
@@ -1712,7 +1847,6 @@
 	u32			reg;
 
 	u8			link_state;
-	u8			speed;
 
 	/*
 	 * According to the Databook Remote wakeup request should
@@ -1722,16 +1856,13 @@
 	 */
 	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
 
-	speed = reg & DWC3_DSTS_CONNECTSPD;
-	if ((speed == DWC3_DSTS_SUPERSPEED) ||
-	    (speed == DWC3_DSTS_SUPERSPEED_PLUS))
-		return 0;
-
 	link_state = DWC3_DSTS_USBLNKST(reg);
 
 	switch (link_state) {
+	case DWC3_LINK_STATE_RESET:
 	case DWC3_LINK_STATE_RX_DET:	/* in HS, means Early Suspend */
 	case DWC3_LINK_STATE_U3:	/* in HS, means SUSPEND */
+	case DWC3_LINK_STATE_RESUME:
 		break;
 	default:
 		return -EINVAL;
@@ -2211,7 +2342,6 @@
 {
 	struct dwc3 *dwc = dep->dwc;
 	int mdwidth;
-	int kbytes;
 	int size;
 
 	mdwidth = DWC3_MDWIDTH(dwc->hwparams.hwparams0);
@@ -2227,17 +2357,17 @@
 	/* FIFO Depth is in MDWDITH bytes. Multiply */
 	size *= mdwidth;
 
-	kbytes = size / 1024;
-	if (kbytes == 0)
-		kbytes = 1;
-
 	/*
-	 * FIFO sizes account an extra MDWIDTH * (kbytes + 1) bytes for
-	 * internal overhead. We don't really know how these are used,
-	 * but documentation say it exists.
+	 * To meet performance requirement, a minimum TxFIFO size of 3x
+	 * MaxPacketSize is recommended for endpoints that support burst and a
+	 * minimum TxFIFO size of 2x MaxPacketSize for endpoints that don't
+	 * support burst. Use those numbers and we can calculate the max packet
+	 * limit as below.
 	 */
-	size -= mdwidth * (kbytes + 1);
-	size /= kbytes;
+	if (dwc->maximum_speed >= USB_SPEED_SUPER)
+		size /= 3;
+	else
+		size /= 2;
 
 	usb_ep_set_maxpacket_limit(&dep->endpoint, size);
 
@@ -2255,8 +2385,39 @@
 static int dwc3_gadget_init_out_endpoint(struct dwc3_ep *dep)
 {
 	struct dwc3 *dwc = dep->dwc;
+	int mdwidth;
+	int size;
+
+	mdwidth = DWC3_MDWIDTH(dwc->hwparams.hwparams0);
+
+	/* MDWIDTH is represented in bits, convert to bytes */
+	mdwidth /= 8;
 
-	usb_ep_set_maxpacket_limit(&dep->endpoint, 1024);
+	/* All OUT endpoints share a single RxFIFO space */
+	size = dwc3_readl(dwc->regs, DWC3_GRXFIFOSIZ(0));
+	if (dwc3_is_usb31(dwc))
+		size = DWC31_GRXFIFOSIZ_RXFDEP(size);
+	else
+		size = DWC3_GRXFIFOSIZ_RXFDEP(size);
+
+	/* FIFO depth is in MDWDITH bytes */
+	size *= mdwidth;
+
+	/*
+	 * To meet performance requirement, a minimum recommended RxFIFO size
+	 * is defined as follow:
+	 * RxFIFO size >= (3 x MaxPacketSize) +
+	 * (3 x 8 bytes setup packets size) + (16 bytes clock crossing margin)
+	 *
+	 * Then calculate the max packet limit as below.
+	 */
+	size -= (3 * 8) + 16;
+	if (size < 0)
+		size = 0;
+	else
+		size /= 3;
+
+	usb_ep_set_maxpacket_limit(&dep->endpoint, size);
 	dep->endpoint.max_streams = 15;
 	dep->endpoint.ops = &dwc3_gadget_ep_ops;
 	list_add_tail(&dep->endpoint.ep_list,
@@ -2420,7 +2581,8 @@
 	if (event->status & DEPEVT_STATUS_SHORT && !chain)
 		return 1;
 
-	if (event->status & DEPEVT_STATUS_IOC)
+	if ((trb->ctrl & DWC3_TRB_CTRL_IOC) ||
+	    (trb->ctrl & DWC3_TRB_CTRL_LST))
 		return 1;
 
 	return 0;
@@ -2440,9 +2602,6 @@
 	for_each_sg(sg, s, pending, i) {
 		trb = &dep->trb_pool[dep->trb_dequeue];
 
-		if (trb->ctrl & DWC3_TRB_CTRL_HWO)
-			break;
-
 		req->sg = sg_next(s);
 		req->num_pending_sgs--;
 
@@ -2467,7 +2626,7 @@
 
 static bool dwc3_gadget_ep_request_completed(struct dwc3_request *req)
 {
-	return req->request.actual == req->request.length;
+	return req->num_pending_sgs == 0;
 }
 
 static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
@@ -2483,18 +2642,24 @@
 		ret = dwc3_gadget_ep_reclaim_trb_linear(dep, req, event,
 				status);
 
+	req->request.actual = req->request.length - req->remaining;
+
+	if (!dwc3_gadget_ep_request_completed(req))
+		goto out;
+
 	if (req->needs_extra_trb) {
+		unsigned int maxp = usb_endpoint_maxp(dep->endpoint.desc);
+
 		ret = dwc3_gadget_ep_reclaim_trb_linear(dep, req, event,
 				status);
-		req->needs_extra_trb = false;
-	}
 
-	req->request.actual = req->request.length - req->remaining;
+		/* Reclaim MPS padding TRB for ZLP */
+		if (!req->direction && req->request.zero && req->request.length &&
+		    !usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
+		    (IS_ALIGNED(req->request.length, maxp)))
+			ret = dwc3_gadget_ep_reclaim_trb_linear(dep, req, event, status);
 
-	if (!dwc3_gadget_ep_request_completed(req) &&
-			req->num_pending_sgs) {
-		__dwc3_gadget_kick_transfer(dep);
-		goto out;
+		req->needs_extra_trb = false;
 	}
 
 	dwc3_gadget_giveback(dep, req, status);
@@ -2519,6 +2684,24 @@
 	}
 }
 
+static bool dwc3_gadget_ep_should_continue(struct dwc3_ep *dep)
+{
+	struct dwc3_request	*req;
+
+	if (!list_empty(&dep->pending_list))
+		return true;
+
+	/*
+	 * We only need to check the first entry of the started list. We can
+	 * assume the completed requests are removed from the started list.
+	 */
+	req = next_request(&dep->started_list);
+	if (!req)
+		return false;
+
+	return !dwc3_gadget_ep_request_completed(req);
+}
+
 static void dwc3_gadget_endpoint_frame_from_event(struct dwc3_ep *dep,
 		const struct dwc3_event_depevt *event)
 {
@@ -2546,10 +2729,10 @@
 
 	dwc3_gadget_ep_cleanup_completed_requests(dep, event, status);
 
-	if (stop) {
+	if (stop)
 		dwc3_stop_active_transfer(dep, true, true);
-		dep->flags = DWC3_EP_ENABLED;
-	}
+	else if (dwc3_gadget_ep_should_continue(dep))
+		__dwc3_gadget_kick_transfer(dep);
 
 	/*
 	 * WORKAROUND: This is the 2nd half of U1/U2 -> U0 workaround.
@@ -2618,8 +2801,34 @@
 		cmd = DEPEVT_PARAMETER_CMD(event->parameters);
 
 		if (cmd == DWC3_DEPCMD_ENDTRANSFER) {
+			dep->flags &= ~DWC3_EP_END_TRANSFER_PENDING;
 			dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
 			dwc3_gadget_ep_cleanup_cancelled_requests(dep);
+
+			if (dep->flags & DWC3_EP_PENDING_CLEAR_STALL) {
+				struct dwc3 *dwc = dep->dwc;
+
+				dep->flags &= ~DWC3_EP_PENDING_CLEAR_STALL;
+				if (dwc3_send_clear_stall_ep_cmd(dep)) {
+					struct usb_ep *ep0 = &dwc->eps[0]->endpoint;
+
+					dev_err(dwc->dev, "failed to clear STALL on %s\n",
+						dep->name);
+					if (dwc->delayed_status)
+						__dwc3_gadget_ep0_set_halt(ep0, 1);
+					return;
+				}
+
+				dep->flags &= ~(DWC3_EP_STALL | DWC3_EP_WEDGE);
+				if (dwc->delayed_status)
+					dwc3_ep0_send_delayed_status(dwc);
+			}
+
+			if ((dep->flags & DWC3_EP_DELAY_START) &&
+			    !usb_endpoint_xfer_isoc(dep->endpoint.desc))
+				__dwc3_gadget_kick_transfer(dep);
+
+			dep->flags &= ~DWC3_EP_DELAY_START;
 		}
 		break;
 	case DWC3_DEPEVT_STREAMEVT:
@@ -2676,7 +2885,8 @@
 	u32 cmd;
 	int ret;
 
-	if (!(dep->flags & DWC3_EP_TRANSFER_STARTED))
+	if (!(dep->flags & DWC3_EP_TRANSFER_STARTED) ||
+	    (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
 		return;
 
 	/*
@@ -2719,6 +2929,11 @@
 	WARN_ON_ONCE(ret);
 	dep->resource_index = 0;
 
+	if (!interrupt)
+		dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
+	else
+		dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
+
 	if (dwc3_is_usb31(dwc) || dwc->revision < DWC3_REVISION_310A)
 		udelay(100);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/gadget.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/gadget.h
@@ -111,6 +111,7 @@
 int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
 		gfp_t gfp_flags);
 int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol);
+void dwc3_ep0_send_delayed_status(struct dwc3 *dwc);
 
 /**
  * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/host.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/host.c
@@ -88,10 +88,10 @@
 	memset(props, 0, sizeof(struct property_entry) * ARRAY_SIZE(props));
 
 	if (dwc->usb3_lpm_capable)
-		props[prop_idx++].name = "usb3-lpm-capable";
+		props[prop_idx++] = PROPERTY_ENTRY_BOOL("usb3-lpm-capable");
 
 	if (dwc->usb2_lpm_disable)
-		props[prop_idx++].name = "usb2-lpm-disable";
+		props[prop_idx++] = PROPERTY_ENTRY_BOOL("usb2-lpm-disable");
 
 	/**
 	 * WORKAROUND: dwc3 revisions <=3.00a have a limitation
@@ -103,7 +103,7 @@
 	 * This following flag tells XHCI to do just that.
 	 */
 	if (dwc->revision <= DWC3_REVISION_300A)
-		props[prop_idx++].name = "quirk-broken-port-ped";
+		props[prop_idx++] = PROPERTY_ENTRY_BOOL("quirk-broken-port-ped");
 
 	if (prop_idx) {
 		ret = platform_device_add_properties(xhci, props);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/dwc3/ulpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/dwc3/ulpi.c
@@ -7,6 +7,8 @@
  * Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
  */
 
+#include <linux/delay.h>
+#include <linux/time64.h>
 #include <linux/ulpi/regs.h>
 
 #include "core.h"
@@ -17,14 +19,24 @@
 		DWC3_GUSB2PHYACC_ADDR(ULPI_ACCESS_EXTENDED) | \
 		DWC3_GUSB2PHYACC_EXTEND_ADDR(a) : DWC3_GUSB2PHYACC_ADDR(a))
 
-static int dwc3_ulpi_busyloop(struct dwc3 *dwc)
+#define DWC3_ULPI_BASE_DELAY	DIV_ROUND_UP(NSEC_PER_SEC, 60000000L)
+
+static int dwc3_ulpi_busyloop(struct dwc3 *dwc, u8 addr, bool read)
 {
-	unsigned count = 1000;
+	unsigned long ns = 5L * DWC3_ULPI_BASE_DELAY;
+	unsigned int count = 1000;
 	u32 reg;
 
+	if (addr >= ULPI_EXT_VENDOR_SPECIFIC)
+		ns += DWC3_ULPI_BASE_DELAY;
+
+	if (read)
+		ns += DWC3_ULPI_BASE_DELAY;
+
 	while (count--) {
+		ndelay(ns);
 		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYACC(0));
-		if (!(reg & DWC3_GUSB2PHYACC_BUSY))
+		if (reg & DWC3_GUSB2PHYACC_DONE)
 			return 0;
 		cpu_relax();
 	}
@@ -47,7 +59,7 @@
 	reg = DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr);
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg);
 
-	ret = dwc3_ulpi_busyloop(dwc);
+	ret = dwc3_ulpi_busyloop(dwc, addr, true);
 	if (ret)
 		return ret;
 
@@ -71,7 +83,7 @@
 	reg |= DWC3_GUSB2PHYACC_WRITE | val;
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg);
 
-	return dwc3_ulpi_busyloop(dwc);
+	return dwc3_ulpi_busyloop(dwc, addr, false);
 }
 
 static const struct ulpi_ops dwc3_ulpi_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/early/xhci-dbc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/early/xhci-dbc.c
@@ -728,19 +728,19 @@
 	case COMP_USB_TRANSACTION_ERROR:
 	case COMP_STALL_ERROR:
 	default:
-		if (ep_id == XDBC_EPID_OUT)
+		if (ep_id == XDBC_EPID_OUT || ep_id == XDBC_EPID_OUT_INTEL)
 			xdbc.flags |= XDBC_FLAGS_OUT_STALL;
-		if (ep_id == XDBC_EPID_IN)
+		if (ep_id == XDBC_EPID_IN || ep_id == XDBC_EPID_IN_INTEL)
 			xdbc.flags |= XDBC_FLAGS_IN_STALL;
 
 		xdbc_trace("endpoint %d stalled\n", ep_id);
 		break;
 	}
 
-	if (ep_id == XDBC_EPID_IN) {
+	if (ep_id == XDBC_EPID_IN || ep_id == XDBC_EPID_IN_INTEL) {
 		xdbc.flags &= ~XDBC_FLAGS_IN_PROCESS;
 		xdbc_bulk_transfer(NULL, XDBC_MAX_PACKET, true);
-	} else if (ep_id == XDBC_EPID_OUT) {
+	} else if (ep_id == XDBC_EPID_OUT || ep_id == XDBC_EPID_OUT_INTEL) {
 		xdbc.flags &= ~XDBC_FLAGS_OUT_PROCESS;
 	} else {
 		xdbc_trace("invalid endpoint id %d\n", ep_id);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/early/xhci-dbc.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/early/xhci-dbc.h
@@ -120,8 +120,22 @@
 	u32			cycle_state;
 };
 
-#define XDBC_EPID_OUT		2
-#define XDBC_EPID_IN		3
+/*
+ * These are the "Endpoint ID" (also known as "Context Index") values for the
+ * OUT Transfer Ring and the IN Transfer Ring of a Debug Capability Context data
+ * structure.
+ * According to the "eXtensible Host Controller Interface for Universal Serial
+ * Bus (xHCI)" specification, section "7.6.3.2 Endpoint Contexts and Transfer
+ * Rings", these should be 0 and 1, and those are the values AMD machines give
+ * you; but Intel machines seem to use the formula from section "4.5.1 Device
+ * Context Index", which is supposed to be used for the Device Context only.
+ * Luckily the values from Intel don't overlap with those from AMD, so we can
+ * just test for both.
+ */
+#define XDBC_EPID_OUT		0
+#define XDBC_EPID_IN		1
+#define XDBC_EPID_OUT_INTEL	2
+#define XDBC_EPID_IN_INTEL	3
 
 struct xdbc_state {
 	u16			vendor;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/Kconfig
@@ -265,6 +265,7 @@
 	depends on NET
 	select USB_U_ETHER
 	select USB_F_NCM
+	select CRC32
 	help
 	  NCM is an advanced protocol for Ethernet encapsulation, allows
 	  grouping of several ethernet frames into one USB transfer and
@@ -314,6 +315,7 @@
 	depends on NET
 	select USB_U_ETHER
 	select USB_F_EEM
+	select CRC32
 	help
 	  CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
 	  and therefore can be supported by more hardware.  Technically ECM and
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/composite.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/composite.c
@@ -96,40 +96,43 @@
 }
 
 /**
- * next_ep_desc() - advance to the next EP descriptor
+ * next_desc() - advance to the next desc_type descriptor
  * @t: currect pointer within descriptor array
+ * @desc_type: descriptor type
  *
- * Return: next EP descriptor or NULL
+ * Return: next desc_type descriptor or NULL
  *
- * Iterate over @t until either EP descriptor found or
+ * Iterate over @t until either desc_type descriptor found or
  * NULL (that indicates end of list) encountered
  */
 static struct usb_descriptor_header**
-next_ep_desc(struct usb_descriptor_header **t)
+next_desc(struct usb_descriptor_header **t, u8 desc_type)
 {
 	for (; *t; t++) {
-		if ((*t)->bDescriptorType == USB_DT_ENDPOINT)
+		if ((*t)->bDescriptorType == desc_type)
 			return t;
 	}
 	return NULL;
 }
 
 /*
- * for_each_ep_desc()- iterate over endpoint descriptors in the
- *		descriptors list
- * @start:	pointer within descriptor array.
- * @ep_desc:	endpoint descriptor to use as the loop cursor
+ * for_each_desc() - iterate over desc_type descriptors in the
+ * descriptors list
+ * @start: pointer within descriptor array.
+ * @iter_desc: desc_type descriptor to use as the loop cursor
+ * @desc_type: wanted descriptr type
  */
-#define for_each_ep_desc(start, ep_desc) \
-	for (ep_desc = next_ep_desc(start); \
-	      ep_desc; ep_desc = next_ep_desc(ep_desc+1))
+#define for_each_desc(start, iter_desc, desc_type) \
+	for (iter_desc = next_desc(start, desc_type); \
+	     iter_desc; iter_desc = next_desc(iter_desc + 1, desc_type))
 
 /**
- * config_ep_by_speed() - configures the given endpoint
+ * config_ep_by_speed_and_alt() - configures the given endpoint
  * according to gadget speed.
  * @g: pointer to the gadget
  * @f: usb function
  * @_ep: the endpoint to configure
+ * @alt: alternate setting number
  *
  * Return: error code, 0 on success
  *
@@ -142,11 +145,13 @@
  * Note: the supplied function should hold all the descriptors
  * for supported speeds
  */
-int config_ep_by_speed(struct usb_gadget *g,
-			struct usb_function *f,
-			struct usb_ep *_ep)
+int config_ep_by_speed_and_alt(struct usb_gadget *g,
+				struct usb_function *f,
+				struct usb_ep *_ep,
+				u8 alt)
 {
 	struct usb_endpoint_descriptor *chosen_desc = NULL;
+	struct usb_interface_descriptor *int_desc = NULL;
 	struct usb_descriptor_header **speed_desc = NULL;
 
 	struct usb_ss_ep_comp_descriptor *comp_desc = NULL;
@@ -182,8 +187,21 @@
 	default:
 		speed_desc = f->fs_descriptors;
 	}
+
+	/* find correct alternate setting descriptor */
+	for_each_desc(speed_desc, d_spd, USB_DT_INTERFACE) {
+		int_desc = (struct usb_interface_descriptor *)*d_spd;
+
+		if (int_desc->bAlternateSetting == alt) {
+			speed_desc = d_spd;
+			goto intf_found;
+		}
+	}
+	return -EIO;
+
+intf_found:
 	/* find descriptors */
-	for_each_ep_desc(speed_desc, d_spd) {
+	for_each_desc(speed_desc, d_spd, USB_DT_ENDPOINT) {
 		chosen_desc = (struct usb_endpoint_descriptor *)*d_spd;
 		if (chosen_desc->bEndpointAddress == _ep->address)
 			goto ep_found;
@@ -237,6 +255,32 @@
 	}
 	return 0;
 }
+EXPORT_SYMBOL_GPL(config_ep_by_speed_and_alt);
+
+/**
+ * config_ep_by_speed() - configures the given endpoint
+ * according to gadget speed.
+ * @g: pointer to the gadget
+ * @f: usb function
+ * @_ep: the endpoint to configure
+ *
+ * Return: error code, 0 on success
+ *
+ * This function chooses the right descriptors for a given
+ * endpoint according to gadget speed and saves it in the
+ * endpoint desc field. If the endpoint already has a descriptor
+ * assigned to it - overwrites it with currently corresponding
+ * descriptor. The endpoint maxpacket field is updated according
+ * to the chosen descriptor.
+ * Note: the supplied function should hold all the descriptors
+ * for supported speeds
+ */
+int config_ep_by_speed(struct usb_gadget *g,
+			struct usb_function *f,
+			struct usb_ep *_ep)
+{
+	return config_ep_by_speed_and_alt(g, f, _ep, 0);
+}
 EXPORT_SYMBOL_GPL(config_ep_by_speed);
 
 /**
@@ -348,8 +392,11 @@
 
 	spin_lock_irqsave(&cdev->lock, flags);
 
-	if (cdev->deactivations == 0)
+	if (cdev->deactivations == 0) {
+		spin_unlock_irqrestore(&cdev->lock, flags);
 		status = usb_gadget_deactivate(cdev->gadget);
+		spin_lock_irqsave(&cdev->lock, flags);
+	}
 	if (status == 0)
 		cdev->deactivations++;
 
@@ -380,8 +427,11 @@
 		status = -EINVAL;
 	else {
 		cdev->deactivations--;
-		if (cdev->deactivations == 0)
+		if (cdev->deactivations == 0) {
+			spin_unlock_irqrestore(&cdev->lock, flags);
 			status = usb_gadget_activate(cdev->gadget);
+			spin_lock_irqsave(&cdev->lock, flags);
+		}
 	}
 
 	spin_unlock_irqrestore(&cdev->lock, flags);
@@ -437,12 +487,14 @@
 		val = CONFIG_USB_GADGET_VBUS_DRAW;
 	if (!val)
 		return 0;
-	switch (speed) {
-	case USB_SPEED_SUPER:
-		return DIV_ROUND_UP(val, 8);
-	default:
-		return DIV_ROUND_UP(val, 2);
-	}
+	if (speed < USB_SPEED_SUPER)
+		return min(val, 500U) / 2;
+	else
+		/*
+		 * USB 3.x supports up to 900mA, but since 900 isn't divisible
+		 * by 8 the integral division will effectively cap to 896mA.
+		 */
+		return min(val, 900U) / 8;
 }
 
 static int config_buf(struct usb_configuration *config,
@@ -854,7 +906,16 @@
 
 	/* when we return, be sure our power usage is valid */
 	power = c->MaxPower ? c->MaxPower : CONFIG_USB_GADGET_VBUS_DRAW;
+	if (gadget->speed < USB_SPEED_SUPER)
+		power = min(power, 500U);
+	else
+		power = min(power, 900U);
 done:
+	if (power <= USB_SELF_POWER_VBUS_MAX_DRAW)
+		usb_gadget_set_selfpowered(gadget);
+	else
+		usb_gadget_clear_selfpowered(gadget);
+
 	usb_gadget_vbus_draw(gadget, power);
 	if (result >= 0 && cdev->delayed_status)
 		result = USB_GADGET_DELAYED_STATUS;
@@ -2273,6 +2334,7 @@
 
 	cdev->suspended = 1;
 
+	usb_gadget_set_selfpowered(gadget);
 	usb_gadget_vbus_draw(gadget, 2);
 }
 
@@ -2280,7 +2342,7 @@
 {
 	struct usb_composite_dev	*cdev = get_gadget_data(gadget);
 	struct usb_function		*f;
-	u16				maxpower;
+	unsigned			maxpower;
 
 	/* REVISIT:  should we have config level
 	 * suspend/resume callbacks?
@@ -2294,10 +2356,17 @@
 				f->resume(f);
 		}
 
-		maxpower = cdev->config->MaxPower;
+		maxpower = cdev->config->MaxPower ?
+			cdev->config->MaxPower : CONFIG_USB_GADGET_VBUS_DRAW;
+		if (gadget->speed < USB_SPEED_SUPER)
+			maxpower = min(maxpower, 500U);
+		else
+			maxpower = min(maxpower, 900U);
+
+		if (maxpower > USB_SELF_POWER_VBUS_MAX_DRAW)
+			usb_gadget_clear_selfpowered(gadget);
 
-		usb_gadget_vbus_draw(gadget, maxpower ?
-			maxpower : CONFIG_USB_GADGET_VBUS_DRAW);
+		usb_gadget_vbus_draw(gadget, maxpower);
 	}
 
 	cdev->suspended = 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/configfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/configfs.c
@@ -233,9 +233,16 @@
 
 static ssize_t gadget_dev_desc_UDC_show(struct config_item *item, char *page)
 {
-	char *udc_name = to_gadget_info(item)->composite.gadget_driver.udc_name;
+	struct gadget_info *gi = to_gadget_info(item);
+	char *udc_name;
+	int ret;
 
-	return sprintf(page, "%s\n", udc_name ?: "");
+	mutex_lock(&gi->lock);
+	udc_name = gi->composite.gadget_driver.udc_name;
+	ret = sprintf(page, "%s\n", udc_name ?: "");
+	mutex_unlock(&gi->lock);
+
+	return ret;
 }
 
 static int unregister_gadget(struct gadget_info *gi)
@@ -260,6 +267,9 @@
 	char *name;
 	int ret;
 
+	if (strlen(page) < len)
+		return -EOVERFLOW;
+
 	name = kstrdup(page, GFP_KERNEL);
 	if (!name)
 		return -ENOMEM;
@@ -1214,9 +1224,9 @@
 
 		cfg = container_of(c, struct config_usb_cfg, c);
 
-		list_for_each_entry_safe(f, tmp, &c->functions, list) {
+		list_for_each_entry_safe_reverse(f, tmp, &c->functions, list) {
 
-			list_move_tail(&f->list, &cfg->func_list);
+			list_move(&f->list, &cfg->func_list);
 			if (f->unbind) {
 				dev_dbg(&gi->cdev.gadget->dev,
 					"unbind function '%s'/%p\n",
@@ -1502,7 +1512,7 @@
 	.suspend	= configfs_composite_suspend,
 	.resume		= configfs_composite_resume,
 
-	.max_speed	= USB_SPEED_SUPER,
+	.max_speed	= USB_SPEED_SUPER_PLUS,
 	.driver = {
 		.owner          = THIS_MODULE,
 		.name		= "configfs-gadget",
@@ -1542,8 +1552,9 @@
 	gi->composite.unbind = configfs_do_nothing;
 	gi->composite.suspend = NULL;
 	gi->composite.resume = NULL;
-	gi->composite.max_speed = USB_SPEED_SUPER;
+	gi->composite.max_speed = USB_SPEED_SUPER_PLUS;
 
+	spin_lock_init(&gi->spinlock);
 	mutex_init(&gi->lock);
 	INIT_LIST_HEAD(&gi->string_list);
 	INIT_LIST_HEAD(&gi->available_func);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_acm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_acm.c
@@ -684,7 +684,7 @@
 	acm_ss_out_desc.bEndpointAddress = acm_fs_out_desc.bEndpointAddress;
 
 	status = usb_assign_descriptors(f, acm_fs_function, acm_hs_function,
-			acm_ss_function, NULL);
+			acm_ss_function, acm_ss_function);
 	if (status)
 		goto fail;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_ecm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_ecm.c
@@ -52,6 +52,7 @@
 	struct usb_ep			*notify;
 	struct usb_request		*notify_req;
 	u8				notify_state;
+	atomic_t			notify_count;
 	bool				is_open;
 
 	/* FIXME is_open needs some irq-ish locking
@@ -380,7 +381,7 @@
 	int				status;
 
 	/* notification already in flight? */
-	if (!req)
+	if (atomic_read(&ecm->notify_count))
 		return;
 
 	event = req->buf;
@@ -420,10 +421,10 @@
 	event->bmRequestType = 0xA1;
 	event->wIndex = cpu_to_le16(ecm->ctrl_id);
 
-	ecm->notify_req = NULL;
+	atomic_inc(&ecm->notify_count);
 	status = usb_ep_queue(ecm->notify, req, GFP_ATOMIC);
 	if (status < 0) {
-		ecm->notify_req = req;
+		atomic_dec(&ecm->notify_count);
 		DBG(cdev, "notify --> %d\n", status);
 	}
 }
@@ -448,17 +449,19 @@
 	switch (req->status) {
 	case 0:
 		/* no fault */
+		atomic_dec(&ecm->notify_count);
 		break;
 	case -ECONNRESET:
 	case -ESHUTDOWN:
+		atomic_set(&ecm->notify_count, 0);
 		ecm->notify_state = ECM_NOTIFY_NONE;
 		break;
 	default:
 		DBG(cdev, "event %02x --> %d\n",
 			event->bNotificationType, req->status);
+		atomic_dec(&ecm->notify_count);
 		break;
 	}
-	ecm->notify_req = req;
 	ecm_do_notify(ecm);
 }
 
@@ -621,8 +624,12 @@
 
 	DBG(cdev, "ecm deactivated\n");
 
-	if (ecm->port.in_ep->enabled)
+	if (ecm->port.in_ep->enabled) {
 		gether_disconnect(&ecm->port);
+	} else {
+		ecm->port.in_ep->desc = NULL;
+		ecm->port.out_ep->desc = NULL;
+	}
 
 	usb_ep_disable(ecm->notify);
 	ecm->notify->desc = NULL;
@@ -903,6 +910,11 @@
 
 	usb_free_all_descriptors(f);
 
+	if (atomic_read(&ecm->notify_count)) {
+		usb_ep_dequeue(ecm->notify, ecm->notify_req);
+		atomic_set(&ecm->notify_count, 0);
+	}
+
 	kfree(ecm->notify_req->buf);
 	usb_ep_free_request(ecm->notify, ecm->notify_req);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_fs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_fs.c
@@ -1062,6 +1062,7 @@
 			req->num_sgs = io_data->sgt.nents;
 		} else {
 			req->buf = data;
+			req->num_sgs = 0;
 		}
 		req->length = data_len;
 
@@ -1105,6 +1106,7 @@
 			req->num_sgs = io_data->sgt.nents;
 		} else {
 			req->buf = data;
+			req->num_sgs = 0;
 		}
 		req->length = data_len;
 
@@ -1118,6 +1120,7 @@
 
 		ret = usb_ep_queue(ep->ep, req, GFP_ATOMIC);
 		if (unlikely(ret)) {
+			io_data->req = NULL;
 			usb_ep_free_request(ep->ep, req);
 			goto error_lock;
 		}
@@ -1160,18 +1163,19 @@
 {
 	struct ffs_io_data *io_data = kiocb->private;
 	struct ffs_epfile *epfile = kiocb->ki_filp->private_data;
+	unsigned long flags;
 	int value;
 
 	ENTER();
 
-	spin_lock_irq(&epfile->ffs->eps_lock);
+	spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
 
 	if (likely(io_data && io_data->ep && io_data->req))
 		value = usb_ep_dequeue(io_data->ep, io_data->req);
 	else
 		value = -EINVAL;
 
-	spin_unlock_irq(&epfile->ffs->eps_lock);
+	spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
 
 	return value;
 }
@@ -1324,10 +1328,11 @@
 	case FUNCTIONFS_ENDPOINT_DESC:
 	{
 		int desc_idx;
-		struct usb_endpoint_descriptor *desc;
+		struct usb_endpoint_descriptor desc1, *desc;
 
 		switch (epfile->ffs->gadget->speed) {
 		case USB_SPEED_SUPER:
+		case USB_SPEED_SUPER_PLUS:
 			desc_idx = 2;
 			break;
 		case USB_SPEED_HIGH:
@@ -1336,10 +1341,12 @@
 		default:
 			desc_idx = 0;
 		}
+
 		desc = epfile->ep->descs[desc_idx];
+		memcpy(&desc1, desc, desc->bLength);
 
 		spin_unlock_irq(&epfile->ffs->eps_lock);
-		ret = copy_to_user((void __user *)value, desc, desc->bLength);
+		ret = copy_to_user((void __user *)value, &desc1, desc1.bLength);
 		if (ret)
 			ret = -EFAULT;
 		return ret;
@@ -1352,14 +1359,6 @@
 	return ret;
 }
 
-#ifdef CONFIG_COMPAT
-static long ffs_epfile_compat_ioctl(struct file *file, unsigned code,
-		unsigned long value)
-{
-	return ffs_epfile_ioctl(file, code, value);
-}
-#endif
-
 static const struct file_operations ffs_epfile_operations = {
 	.llseek =	no_llseek,
 
@@ -1368,9 +1367,7 @@
 	.read_iter =	ffs_epfile_read_iter,
 	.release =	ffs_epfile_release,
 	.unlocked_ioctl =	ffs_epfile_ioctl,
-#ifdef CONFIG_COMPAT
-	.compat_ioctl = ffs_epfile_compat_ioctl,
-#endif
+	.compat_ioctl = compat_ptr_ioctl,
 };
 
 
@@ -1824,6 +1821,10 @@
 	ffs->state = FFS_READ_DESCRIPTORS;
 	ffs->setup_state = FFS_NO_SETUP;
 	ffs->flags = 0;
+
+	ffs->ms_os_descs_ext_prop_count = 0;
+	ffs->ms_os_descs_ext_prop_name_len = 0;
+	ffs->ms_os_descs_ext_prop_data_len = 0;
 }
 
 
@@ -3183,7 +3184,8 @@
 	}
 
 	if (likely(super)) {
-		func->function.ss_descriptors = vla_ptr(vlabuf, d, ss_descs);
+		func->function.ss_descriptors = func->function.ssp_descriptors =
+			vla_ptr(vlabuf, d, ss_descs);
 		ss_len = ffs_do_descs(ffs->ss_descs_count,
 				vla_ptr(vlabuf, d, raw_descs) + fs_len + hs_len,
 				d_raw_descs__sz - fs_len - hs_len,
@@ -3593,6 +3595,7 @@
 	func->function.fs_descriptors = NULL;
 	func->function.hs_descriptors = NULL;
 	func->function.ss_descriptors = NULL;
+	func->function.ssp_descriptors = NULL;
 	func->interfaces_nums = NULL;
 
 	ffs_event_add(ffs, FUNCTIONFS_UNBIND);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_midi.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_midi.c
@@ -1048,6 +1048,12 @@
 		f->ss_descriptors = usb_copy_descriptors(midi_function);
 		if (!f->ss_descriptors)
 			goto fail_f_midi;
+
+		if (gadget_is_superspeed_plus(c->cdev->gadget)) {
+			f->ssp_descriptors = usb_copy_descriptors(midi_function);
+			if (!f->ssp_descriptors)
+				goto fail_f_midi;
+		}
 	}
 
 	kfree(midi_function);
@@ -1315,7 +1321,7 @@
 	midi->id = kstrdup(opts->id, GFP_KERNEL);
 	if (opts->id && !midi->id) {
 		status = -ENOMEM;
-		goto setup_fail;
+		goto midi_free;
 	}
 	midi->in_ports = opts->in_ports;
 	midi->out_ports = opts->out_ports;
@@ -1327,7 +1333,7 @@
 
 	status = kfifo_alloc(&midi->in_req_fifo, midi->qlen, GFP_KERNEL);
 	if (status)
-		goto setup_fail;
+		goto midi_free;
 
 	spin_lock_init(&midi->transmit_lock);
 
@@ -1343,9 +1349,13 @@
 
 	return &midi->func;
 
+midi_free:
+	if (midi)
+		kfree(midi->id);
+	kfree(midi);
 setup_fail:
 	mutex_unlock(&opts->lock);
-	kfree(midi);
+
 	return ERR_PTR(status);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_ncm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_ncm.c
@@ -53,6 +53,7 @@
 	struct usb_ep			*notify;
 	struct usb_request		*notify_req;
 	u8				notify_state;
+	atomic_t			notify_count;
 	bool				is_open;
 
 	const struct ndp_parser_opts	*parser_opts;
@@ -84,8 +85,10 @@
 /* peak (theoretical) bulk transfer rate in bits-per-second */
 static inline unsigned ncm_bitrate(struct usb_gadget *g)
 {
-	if (gadget_is_superspeed(g) && g->speed == USB_SPEED_SUPER)
-		return 13 * 1024 * 8 * 1000 * 8;
+	if (gadget_is_superspeed(g) && g->speed >= USB_SPEED_SUPER_PLUS)
+		return 4250000000U;
+	else if (gadget_is_superspeed(g) && g->speed == USB_SPEED_SUPER)
+		return 3750000000U;
 	else if (gadget_is_dualspeed(g) && g->speed == USB_SPEED_HIGH)
 		return 13 * 512 * 8 * 1000 * 8;
 	else
@@ -547,7 +550,7 @@
 	int				status;
 
 	/* notification already in flight? */
-	if (!req)
+	if (atomic_read(&ncm->notify_count))
 		return;
 
 	event = req->buf;
@@ -587,7 +590,8 @@
 	event->bmRequestType = 0xA1;
 	event->wIndex = cpu_to_le16(ncm->ctrl_id);
 
-	ncm->notify_req = NULL;
+	atomic_inc(&ncm->notify_count);
+
 	/*
 	 * In double buffering if there is a space in FIFO,
 	 * completion callback can be called right after the call,
@@ -597,7 +601,7 @@
 	status = usb_ep_queue(ncm->notify, req, GFP_ATOMIC);
 	spin_lock(&ncm->lock);
 	if (status < 0) {
-		ncm->notify_req = req;
+		atomic_dec(&ncm->notify_count);
 		DBG(cdev, "notify --> %d\n", status);
 	}
 }
@@ -632,17 +636,19 @@
 	case 0:
 		VDBG(cdev, "Notification %02x sent\n",
 		     event->bNotificationType);
+		atomic_dec(&ncm->notify_count);
 		break;
 	case -ECONNRESET:
 	case -ESHUTDOWN:
+		atomic_set(&ncm->notify_count, 0);
 		ncm->notify_state = NCM_NOTIFY_NONE;
 		break;
 	default:
 		DBG(cdev, "event %02x --> %d\n",
 			event->bNotificationType, req->status);
+		atomic_dec(&ncm->notify_count);
 		break;
 	}
-	ncm->notify_req = req;
 	ncm_do_notify(ncm);
 	spin_unlock(&ncm->lock);
 }
@@ -1177,9 +1183,11 @@
 	int		ndp_index;
 	unsigned	dg_len, dg_len2;
 	unsigned	ndp_len;
+	unsigned	block_len;
 	struct sk_buff	*skb2;
 	int		ret = -EINVAL;
-	unsigned	max_size = le32_to_cpu(ntb_parameters.dwNtbOutMaxSize);
+	unsigned	ntb_max = le32_to_cpu(ntb_parameters.dwNtbOutMaxSize);
+	unsigned	frame_max = le16_to_cpu(ecm_desc.wMaxSegmentSize);
 	const struct ndp_parser_opts *opts = ncm->parser_opts;
 	unsigned	crc_len = ncm->is_crc ? sizeof(uint32_t) : 0;
 	int		dgram_counter;
@@ -1201,8 +1209,9 @@
 	}
 	tmp++; /* skip wSequence */
 
+	block_len = get_ncm(&tmp, opts->block_length);
 	/* (d)wBlockLength */
-	if (get_ncm(&tmp, opts->block_length) > max_size) {
+	if (block_len > ntb_max) {
 		INFO(port->func.config->cdev, "OUT size exceeded\n");
 		goto err;
 	}
@@ -1211,15 +1220,23 @@
 
 	/* Run through all the NDP's in the NTB */
 	do {
-		/* NCM 3.2 */
-		if (((ndp_index % 4) != 0) &&
-				(ndp_index < opts->nth_size)) {
+		/*
+		 * NCM 3.2
+		 * dwNdpIndex
+		 */
+		if (((ndp_index % 4) != 0) ||
+				(ndp_index < opts->nth_size) ||
+				(ndp_index > (block_len -
+					      opts->ndp_size))) {
 			INFO(port->func.config->cdev, "Bad index: %#X\n",
 			     ndp_index);
 			goto err;
 		}
 
-		/* walk through NDP */
+		/*
+		 * walk through NDP
+		 * dwSignature
+		 */
 		tmp = (void *)(skb->data + ndp_index);
 		if (get_unaligned_le32(tmp) != ncm->ndp_sign) {
 			INFO(port->func.config->cdev, "Wrong NDP SIGN\n");
@@ -1230,14 +1247,15 @@
 		ndp_len = get_unaligned_le16(tmp++);
 		/*
 		 * NCM 3.3.1
+		 * wLength
 		 * entry is 2 items
 		 * item size is 16/32 bits, opts->dgram_item_len * 2 bytes
 		 * minimal: struct usb_cdc_ncm_ndpX + normal entry + zero entry
 		 * Each entry is a dgram index and a dgram length.
 		 */
 		if ((ndp_len < opts->ndp_size
-				+ 2 * 2 * (opts->dgram_item_len * 2))
-				|| (ndp_len % opts->ndplen_align != 0)) {
+				+ 2 * 2 * (opts->dgram_item_len * 2)) ||
+				(ndp_len % opts->ndplen_align != 0)) {
 			INFO(port->func.config->cdev, "Bad NDP length: %#X\n",
 			     ndp_len);
 			goto err;
@@ -1254,8 +1272,21 @@
 
 		do {
 			index = index2;
+			/* wDatagramIndex[0] */
+			if ((index < opts->nth_size) ||
+					(index > block_len - opts->dpe_size)) {
+				INFO(port->func.config->cdev,
+				     "Bad index: %#X\n", index);
+				goto err;
+			}
+
 			dg_len = dg_len2;
-			if (dg_len < 14 + crc_len) { /* ethernet hdr + crc */
+			/*
+			 * wDatagramLength[0]
+			 * ethernet hdr + crc or larger than max frame size
+			 */
+			if ((dg_len < 14 + crc_len) ||
+					(dg_len > frame_max)) {
 				INFO(port->func.config->cdev,
 				     "Bad dgram length: %#X\n", dg_len);
 				goto err;
@@ -1279,6 +1310,13 @@
 			index2 = get_ncm(&tmp, opts->dgram_item_len);
 			dg_len2 = get_ncm(&tmp, opts->dgram_item_len);
 
+			/* wDatagramIndex[1] */
+			if (index2 > block_len - opts->dpe_size) {
+				INFO(port->func.config->cdev,
+				     "Bad index: %#X\n", index2);
+				goto err;
+			}
+
 			/*
 			 * Copy the data into a new skb.
 			 * This ensures the truesize is correct
@@ -1295,7 +1333,6 @@
 			ndp_len -= 2 * (opts->dgram_item_len * 2);
 
 			dgram_counter++;
-
 			if (index2 == 0 || dg_len2 == 0)
 				break;
 		} while (ndp_len > 2 * (opts->dgram_item_len * 2));
@@ -1499,7 +1536,7 @@
 		fs_ncm_notify_desc.bEndpointAddress;
 
 	status = usb_assign_descriptors(f, ncm_fs_function, ncm_hs_function,
-			ncm_ss_function, NULL);
+			ncm_ss_function, ncm_ss_function);
 	if (status)
 		goto fail;
 
@@ -1649,6 +1686,11 @@
 	ncm_string_defs[0].id = 0;
 	usb_free_all_descriptors(f);
 
+	if (atomic_read(&ncm->notify_count)) {
+		usb_ep_dequeue(ncm->notify, ncm->notify_req);
+		atomic_set(&ncm->notify_count, 0);
+	}
+
 	kfree(ncm->notify_req->buf);
 	usb_ep_free_request(ncm->notify, ncm->notify_req);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_printer.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_printer.c
@@ -31,6 +31,7 @@
 #include <linux/types.h>
 #include <linux/ctype.h>
 #include <linux/cdev.h>
+#include <linux/kref.h>
 
 #include <asm/byteorder.h>
 #include <linux/io.h>
@@ -64,7 +65,7 @@
 	struct usb_gadget	*gadget;
 	s8			interface;
 	struct usb_ep		*in_ep, *out_ep;
-
+	struct kref             kref;
 	struct list_head	rx_reqs;	/* List of free RX structs */
 	struct list_head	rx_reqs_active;	/* List of Active RX xfers */
 	struct list_head	rx_buffers;	/* List of completed xfers */
@@ -218,6 +219,13 @@
 
 /*-------------------------------------------------------------------------*/
 
+static void printer_dev_free(struct kref *kref)
+{
+	struct printer_dev *dev = container_of(kref, struct printer_dev, kref);
+
+	kfree(dev);
+}
+
 static struct usb_request *
 printer_req_alloc(struct usb_ep *ep, unsigned len, gfp_t gfp_flags)
 {
@@ -348,6 +356,7 @@
 
 	spin_unlock_irqrestore(&dev->lock, flags);
 
+	kref_get(&dev->kref);
 	DBG(dev, "printer_open returned %x\n", ret);
 	return ret;
 }
@@ -365,6 +374,7 @@
 	dev->printer_status &= ~PRINTER_SELECTED;
 	spin_unlock_irqrestore(&dev->lock, flags);
 
+	kref_put(&dev->kref, printer_dev_free);
 	DBG(dev, "printer_close\n");
 
 	return 0;
@@ -1116,6 +1126,7 @@
 		printer_req_free(dev->in_ep, req);
 	}
 
+	usb_free_all_descriptors(f);
 	return ret;
 
 }
@@ -1350,7 +1361,8 @@
 	struct f_printer_opts *opts;
 
 	opts = container_of(f->fi, struct f_printer_opts, func_inst);
-	kfree(dev);
+
+	kref_put(&dev->kref, printer_dev_free);
 	mutex_lock(&opts->lock);
 	--opts->refcnt;
 	mutex_unlock(&opts->lock);
@@ -1419,6 +1431,7 @@
 		return ERR_PTR(-ENOMEM);
 	}
 
+	kref_init(&dev->kref);
 	++opts->refcnt;
 	dev->minor = opts->minor;
 	dev->pnp_string = opts->pnp_string;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_rndis.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_rndis.c
@@ -87,8 +87,10 @@
 /* peak (theoretical) bulk transfer rate in bits-per-second */
 static unsigned int bitrate(struct usb_gadget *g)
 {
+	if (gadget_is_superspeed(g) && g->speed >= USB_SPEED_SUPER_PLUS)
+		return 4250000000U;
 	if (gadget_is_superspeed(g) && g->speed == USB_SPEED_SUPER)
-		return 13 * 1024 * 8 * 1000 * 8;
+		return 3750000000U;
 	else if (gadget_is_dualspeed(g) && g->speed == USB_SPEED_HIGH)
 		return 13 * 512 * 8 * 1000 * 8;
 	else
@@ -618,6 +620,7 @@
 	gether_disconnect(&rndis->port);
 
 	usb_ep_disable(rndis->notify);
+	rndis->notify->desc = NULL;
 }
 
 /*-------------------------------------------------------------------------*/
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_tcm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_tcm.c
@@ -751,12 +751,13 @@
 		goto err_sts;
 
 	return 0;
+
 err_sts:
-	usb_ep_free_request(fu->ep_status, stream->req_status);
-	stream->req_status = NULL;
-err_out:
 	usb_ep_free_request(fu->ep_out, stream->req_out);
 	stream->req_out = NULL;
+err_out:
+	usb_ep_free_request(fu->ep_in, stream->req_in);
+	stream->req_in = NULL;
 out:
 	return -ENOMEM;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_uac1.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_uac1.c
@@ -499,6 +499,7 @@
 	uac1->as_out_alt = 0;
 	uac1->as_in_alt = 0;
 
+	u_audio_stop_playback(&uac1->g_audio);
 	u_audio_stop_capture(&uac1->g_audio);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_uac1_legacy.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_uac1_legacy.c
@@ -336,7 +336,9 @@
 
 	/* Copy buffer is full, add it to the play_queue */
 	if (audio_buf_size - copy_buf->actual < req->actual) {
+		spin_lock_irq(&audio->lock);
 		list_add_tail(&copy_buf->list, &audio->play_queue);
+		spin_unlock_irq(&audio->lock);
 		schedule_work(&audio->playback_work);
 		copy_buf = f_audio_buffer_alloc(audio_buf_size);
 		if (IS_ERR(copy_buf))
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/f_uac2.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/f_uac2.c
@@ -215,10 +215,7 @@
 	.bDescriptorSubtype = UAC_MS_HEADER,
 	.bcdADC = cpu_to_le16(0x200),
 	.bCategory = UAC2_FUNCTION_IO_BOX,
-	.wTotalLength = cpu_to_le16(sizeof in_clk_src_desc
-			+ sizeof out_clk_src_desc + sizeof usb_out_it_desc
-			+ sizeof io_in_it_desc + sizeof usb_in_ot_desc
-			+ sizeof io_out_ot_desc),
+	/* .wTotalLength = DYNAMIC */
 	.bmControls = 0,
 };
 
@@ -274,7 +271,7 @@
 
 	.bEndpointAddress = USB_DIR_OUT,
 	.bmAttributes = USB_ENDPOINT_XFER_ISOC | USB_ENDPOINT_SYNC_ASYNC,
-	.wMaxPacketSize = cpu_to_le16(1023),
+	/* .wMaxPacketSize = DYNAMIC */
 	.bInterval = 1,
 };
 
@@ -283,7 +280,7 @@
 	.bDescriptorType = USB_DT_ENDPOINT,
 
 	.bmAttributes = USB_ENDPOINT_XFER_ISOC | USB_ENDPOINT_SYNC_ASYNC,
-	.wMaxPacketSize = cpu_to_le16(1024),
+	/* .wMaxPacketSize = DYNAMIC */
 	.bInterval = 4,
 };
 
@@ -351,7 +348,7 @@
 
 	.bEndpointAddress = USB_DIR_IN,
 	.bmAttributes = USB_ENDPOINT_XFER_ISOC | USB_ENDPOINT_SYNC_ASYNC,
-	.wMaxPacketSize = cpu_to_le16(1023),
+	/* .wMaxPacketSize = DYNAMIC */
 	.bInterval = 1,
 };
 
@@ -360,7 +357,7 @@
 	.bDescriptorType = USB_DT_ENDPOINT,
 
 	.bmAttributes = USB_ENDPOINT_XFER_ISOC | USB_ENDPOINT_SYNC_ASYNC,
-	.wMaxPacketSize = cpu_to_le16(1024),
+	/* .wMaxPacketSize = DYNAMIC */
 	.bInterval = 4,
 };
 
@@ -447,12 +444,28 @@
 	__le32	dRES;
 } __packed;
 
-static void set_ep_max_packet_size(const struct f_uac2_opts *uac2_opts,
+static int set_ep_max_packet_size(const struct f_uac2_opts *uac2_opts,
 	struct usb_endpoint_descriptor *ep_desc,
-	unsigned int factor, bool is_playback)
+	enum usb_device_speed speed, bool is_playback)
 {
 	int chmask, srate, ssize;
-	u16 max_packet_size;
+	u16 max_size_bw, max_size_ep;
+	unsigned int factor;
+
+	switch (speed) {
+	case USB_SPEED_FULL:
+		max_size_ep = 1023;
+		factor = 1000;
+		break;
+
+	case USB_SPEED_HIGH:
+		max_size_ep = 1024;
+		factor = 8000;
+		break;
+
+	default:
+		return -EINVAL;
+	}
 
 	if (is_playback) {
 		chmask = uac2_opts->p_chmask;
@@ -464,10 +477,12 @@
 		ssize = uac2_opts->c_ssize;
 	}
 
-	max_packet_size = num_channels(chmask) * ssize *
-		DIV_ROUND_UP(srate, factor / (1 << (ep_desc->bInterval - 1)));
-	ep_desc->wMaxPacketSize = cpu_to_le16(min_t(u16, max_packet_size,
-				le16_to_cpu(ep_desc->wMaxPacketSize)));
+	max_size_bw = num_channels(chmask) * ssize *
+		((srate / (factor / (1 << (ep_desc->bInterval - 1)))) + 1);
+	ep_desc->wMaxPacketSize = cpu_to_le16(min_t(u16, max_size_bw,
+						    max_size_ep));
+
+	return 0;
 }
 
 /* Use macro to overcome line length limitation */
@@ -501,7 +516,7 @@
 	as_in_hdr_desc.bTerminalLink = usb_in_ot_desc.bTerminalID;
 
 	iad_desc.bInterfaceCount = 1;
-	ac_hdr_desc.wTotalLength = 0;
+	ac_hdr_desc.wTotalLength = cpu_to_le16(sizeof(ac_hdr_desc));
 
 	if (EPIN_EN(opts)) {
 		u16 len = le16_to_cpu(ac_hdr_desc.wTotalLength);
@@ -673,10 +688,33 @@
 	}
 
 	/* Calculate wMaxPacketSize according to audio bandwidth */
-	set_ep_max_packet_size(uac2_opts, &fs_epin_desc, 1000, true);
-	set_ep_max_packet_size(uac2_opts, &fs_epout_desc, 1000, false);
-	set_ep_max_packet_size(uac2_opts, &hs_epin_desc, 8000, true);
-	set_ep_max_packet_size(uac2_opts, &hs_epout_desc, 8000, false);
+	ret = set_ep_max_packet_size(uac2_opts, &fs_epin_desc, USB_SPEED_FULL,
+				     true);
+	if (ret < 0) {
+		dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
+		return ret;
+	}
+
+	ret = set_ep_max_packet_size(uac2_opts, &fs_epout_desc, USB_SPEED_FULL,
+				     false);
+	if (ret < 0) {
+		dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
+		return ret;
+	}
+
+	ret = set_ep_max_packet_size(uac2_opts, &hs_epin_desc, USB_SPEED_HIGH,
+				     true);
+	if (ret < 0) {
+		dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
+		return ret;
+	}
+
+	ret = set_ep_max_packet_size(uac2_opts, &hs_epout_desc, USB_SPEED_HIGH,
+				     false);
+	if (ret < 0) {
+		dev_err(dev, "%s:%d Error!\n", __func__, __LINE__);
+		return ret;
+	}
 
 	if (EPOUT_EN(uac2_opts)) {
 		agdev->out_ep = usb_ep_autoconfig(gadget, &fs_epout_desc);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/u_audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/u_audio.c
@@ -89,7 +89,12 @@
 	struct snd_uac_chip *uac = prm->uac;
 
 	/* i/f shutting down */
-	if (!prm->ep_enabled || req->status == -ESHUTDOWN)
+	if (!prm->ep_enabled) {
+		usb_ep_free_request(ep, req);
+		return;
+	}
+
+	if (req->status == -ESHUTDOWN)
 		return;
 
 	/*
@@ -351,8 +356,14 @@
 
 	for (i = 0; i < params->req_number; i++) {
 		if (prm->ureq[i].req) {
-			usb_ep_dequeue(ep, prm->ureq[i].req);
-			usb_ep_free_request(ep, prm->ureq[i].req);
+			if (usb_ep_dequeue(ep, prm->ureq[i].req))
+				usb_ep_free_request(ep, prm->ureq[i].req);
+			/*
+			 * If usb_ep_dequeue() cannot successfully dequeue the
+			 * request, the request will be freed by the completion
+			 * callback.
+			 */
+
 			prm->ureq[i].req = NULL;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/u_ether.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/u_ether.c
@@ -45,9 +45,10 @@
 #define UETH__VERSION	"29-May-2008"
 
 /* Experiments show that both Linux and Windows hosts allow up to 16k
- * frame sizes. Set the max size to 15k+52 to prevent allocating 32k
+ * frame sizes. Set the max MTU size to 15k+52 to prevent allocating 32k
  * blocks and still have efficient handling. */
-#define GETHER_MAX_ETH_FRAME_LEN 15412
+#define GETHER_MAX_MTU_SIZE 15412
+#define GETHER_MAX_ETH_FRAME_LEN (GETHER_MAX_MTU_SIZE + ETH_HLEN)
 
 struct eth_dev {
 	/* lock is held while accessing port_usb
@@ -93,7 +94,7 @@
 static inline int qlen(struct usb_gadget *gadget, unsigned qmult)
 {
 	if (gadget_is_dualspeed(gadget) && (gadget->speed == USB_SPEED_HIGH ||
-					    gadget->speed == USB_SPEED_SUPER))
+					    gadget->speed >= USB_SPEED_SUPER))
 		return qmult * DEFAULT_QLEN;
 	else
 		return DEFAULT_QLEN;
@@ -786,7 +787,7 @@
 
 	/* MTU range: 14 - 15412 */
 	net->min_mtu = ETH_HLEN;
-	net->max_mtu = GETHER_MAX_ETH_FRAME_LEN;
+	net->max_mtu = GETHER_MAX_MTU_SIZE;
 
 	dev->gadget = g;
 	SET_NETDEV_DEV(net, &g->dev);
@@ -848,7 +849,7 @@
 
 	/* MTU range: 14 - 15412 */
 	net->min_mtu = ETH_HLEN;
-	net->max_mtu = GETHER_MAX_ETH_FRAME_LEN;
+	net->max_mtu = GETHER_MAX_MTU_SIZE;
 
 	return net;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/u_ether_configfs.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/u_ether_configfs.h
@@ -169,12 +169,11 @@
 						size_t len)		\
 	{								\
 		struct f_##_f_##_opts *opts = to_f_##_f_##_opts(item);	\
-		int ret;						\
+		int ret = -EINVAL;					\
 		u8 val;							\
 									\
 		mutex_lock(&opts->lock);				\
-		ret = sscanf(page, "%02hhx", &val);			\
-		if (ret > 0) {						\
+		if (sscanf(page, "%02hhx", &val) > 0) {			\
 			opts->_n_ = val;				\
 			ret = len;					\
 		}							\
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/function/u_serial.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/function/u_serial.c
@@ -560,8 +560,10 @@
 	port->n_read = 0;
 	started = gs_start_rx(port);
 
-	/* unblock any pending writes into our circular buffer */
 	if (started) {
+		gs_start_tx(port);
+		/* Unblock any pending writes into our circular buffer, in case
+		 * we didn't in gs_start_tx() */
 		tty_wakeup(port->port.tty);
 	} else {
 		gs_free_requests(ep, head, &port->read_allocated);
@@ -1239,8 +1241,10 @@
 				__func__, port_num, PTR_ERR(tty_dev));
 
 		ret = PTR_ERR(tty_dev);
+		mutex_lock(&ports[port_num].lock);
 		port = ports[port_num].port;
 		ports[port_num].port = NULL;
+		mutex_unlock(&ports[port_num].lock);
 		gserial_free_port(port);
 		goto err;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/acm_ms.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/acm_ms.c
@@ -203,8 +203,10 @@
 		struct usb_descriptor_header *usb_desc;
 
 		usb_desc = usb_otg_descriptor_alloc(gadget);
-		if (!usb_desc)
+		if (!usb_desc) {
+			status = -ENOMEM;
 			goto fail_string_ids;
+		}
 		usb_otg_descriptor_init(gadget, usb_desc);
 		otg_desc[0] = usb_desc;
 		otg_desc[1] = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/audio.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/audio.c
@@ -300,8 +300,10 @@
 		struct usb_descriptor_header *usb_desc;
 
 		usb_desc = usb_otg_descriptor_alloc(cdev->gadget);
-		if (!usb_desc)
+		if (!usb_desc) {
+			status = -ENOMEM;
 			goto fail;
+		}
 		usb_otg_descriptor_init(cdev->gadget, usb_desc);
 		otg_desc[0] = usb_desc;
 		otg_desc[1] = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/cdc2.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/cdc2.c
@@ -179,8 +179,10 @@
 		struct usb_descriptor_header *usb_desc;
 
 		usb_desc = usb_otg_descriptor_alloc(gadget);
-		if (!usb_desc)
+		if (!usb_desc) {
+			status = -ENOMEM;
 			goto fail1;
+		}
 		usb_otg_descriptor_init(gadget, usb_desc);
 		otg_desc[0] = usb_desc;
 		otg_desc[1] = NULL;
@@ -225,7 +227,7 @@
 	.name		= "g_cdc",
 	.dev		= &device_desc,
 	.strings	= dev_strings,
-	.max_speed	= USB_SPEED_HIGH,
+	.max_speed	= USB_SPEED_SUPER,
 	.bind		= cdc_bind,
 	.unbind		= cdc_unbind,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/ether.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/ether.c
@@ -403,8 +403,10 @@
 		struct usb_descriptor_header *usb_desc;
 
 		usb_desc = usb_otg_descriptor_alloc(gadget);
-		if (!usb_desc)
+		if (!usb_desc) {
+			status = -ENOMEM;
 			goto fail1;
+		}
 		usb_otg_descriptor_init(gadget, usb_desc);
 		otg_desc[0] = usb_desc;
 		otg_desc[1] = NULL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/g_ffs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/g_ffs.c
@@ -149,7 +149,7 @@
 	.name		= DRIVER_NAME,
 	.dev		= &gfs_dev_desc,
 	.strings	= gfs_dev_strings,
-	.max_speed	= USB_SPEED_HIGH,
+	.max_speed	= USB_SPEED_SUPER,
 	.bind		= gfs_bind,
 	.unbind		= gfs_unbind,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/inode.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/inode.c
@@ -1361,7 +1361,6 @@
 
 	req->buf = dev->rbuf;
 	req->context = NULL;
-	value = -EOPNOTSUPP;
 	switch (ctrl->bRequest) {
 
 	case USB_REQ_GET_DESCRIPTOR:
@@ -1784,7 +1783,7 @@
 dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
 {
 	struct dev_data		*dev = fd->private_data;
-	ssize_t			value = len, length = len;
+	ssize_t			value, length = len;
 	unsigned		total;
 	u32			tag;
 	char			*kbuf;
@@ -2041,6 +2040,9 @@
 	return 0;
 
 Enomem:
+	kfree(CHIP);
+	CHIP = NULL;
+
 	return -ENOMEM;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/multi.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/multi.c
@@ -482,7 +482,7 @@
 	.name		= "g_multi",
 	.dev		= &device_desc,
 	.strings	= dev_strings,
-	.max_speed	= USB_SPEED_HIGH,
+	.max_speed	= USB_SPEED_SUPER,
 	.bind		= multi_bind,
 	.unbind		= multi_unbind,
 	.needs_serial	= 1,
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/legacy/ncm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/legacy/ncm.c
@@ -156,8 +156,10 @@
 		struct usb_descriptor_header *usb_desc;
 
 		usb_desc = usb_otg_descriptor_alloc(gadget);
-		if (!usb_desc)
+		if (!usb_desc) {
+			status = -ENOMEM;
 			goto fail;
+		}
 		usb_otg_descriptor_init(gadget, usb_desc);
 		otg_desc[0] = usb_desc;
 		otg_desc[1] = NULL;
@@ -197,7 +199,7 @@
 	.name		= "g_ncm",
 	.dev		= &device_desc,
 	.strings	= dev_strings,
-	.max_speed	= USB_SPEED_HIGH,
+	.max_speed	= USB_SPEED_SUPER,
 	.bind		= gncm_bind,
 	.unbind		= gncm_unbind,
 };
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/u_f.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/u_f.h
@@ -14,6 +14,7 @@
 #define __U_F_H__
 
 #include <linux/usb/gadget.h>
+#include <linux/overflow.h>
 
 /* Variable Length Array Macros **********************************************/
 #define vla_group(groupname) size_t groupname##__next = 0
@@ -21,21 +22,36 @@
 
 #define vla_item(groupname, type, name, n) \
 	size_t groupname##_##name##__offset = ({			       \
-		size_t align_mask = __alignof__(type) - 1;		       \
-		size_t offset = (groupname##__next + align_mask) & ~align_mask;\
-		size_t size = (n) * sizeof(type);			       \
-		groupname##__next = offset + size;			       \
+		size_t offset = 0;					       \
+		if (groupname##__next != SIZE_MAX) {			       \
+			size_t align_mask = __alignof__(type) - 1;	       \
+			size_t size = array_size(n, sizeof(type));	       \
+			offset = (groupname##__next + align_mask) &	       \
+				  ~align_mask;				       \
+			if (check_add_overflow(offset, size,		       \
+					       &groupname##__next)) {          \
+				groupname##__next = SIZE_MAX;		       \
+				offset = 0;				       \
+			}						       \
+		}							       \
 		offset;							       \
 	})
 
 #define vla_item_with_sz(groupname, type, name, n) \
-	size_t groupname##_##name##__sz = (n) * sizeof(type);		       \
-	size_t groupname##_##name##__offset = ({			       \
-		size_t align_mask = __alignof__(type) - 1;		       \
-		size_t offset = (groupname##__next + align_mask) & ~align_mask;\
-		size_t size = groupname##_##name##__sz;			       \
-		groupname##__next = offset + size;			       \
-		offset;							       \
+	size_t groupname##_##name##__sz = array_size(n, sizeof(type));	        \
+	size_t groupname##_##name##__offset = ({			        \
+		size_t offset = 0;						\
+		if (groupname##__next != SIZE_MAX) {				\
+			size_t align_mask = __alignof__(type) - 1;		\
+			offset = (groupname##__next + align_mask) &		\
+				  ~align_mask;					\
+			if (check_add_overflow(offset, groupname##_##name##__sz,\
+							&groupname##__next)) {	\
+				groupname##__next = SIZE_MAX;			\
+				offset = 0;					\
+			}							\
+		}								\
+		offset;								\
 	})
 
 #define vla_ptr(ptr, groupname, name) \
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/aspeed-vhub/epn.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/aspeed-vhub/epn.c
@@ -420,7 +420,10 @@
 	u32 state, reg, loops;
 
 	/* Stop DMA activity */
-	writel(0, ep->epn.regs + AST_VHUB_EP_DMA_CTLSTAT);
+	if (ep->epn.desc_mode)
+		writel(VHUB_EP_DMA_CTRL_RESET, ep->epn.regs + AST_VHUB_EP_DMA_CTLSTAT);
+	else
+		writel(0, ep->epn.regs + AST_VHUB_EP_DMA_CTLSTAT);
 
 	/* Wait for it to complete */
 	for (loops = 0; loops < 1000; loops++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -870,7 +870,7 @@
 	u32 status;
 
 	DBG(DBG_GADGET | DBG_QUEUE, "ep_dequeue: %s, req %p\n",
-			ep->ep.name, req);
+			ep->ep.name, _req);
 
 	spin_lock_irqsave(&udc->lock, flags);
 
@@ -1950,10 +1950,10 @@
 			usba_start(udc);
 		} else {
 			udc->suspended = false;
-			usba_stop(udc);
-
 			if (udc->driver->disconnect)
 				udc->driver->disconnect(&udc->gadget);
+
+			usba_stop(udc);
 		}
 		udc->vbus_prev = vbus;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/bdc/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/bdc/Kconfig
@@ -17,7 +17,7 @@
 comment "Platform Support"
 config	USB_BDC_PCI
 	tristate "BDC support for PCIe based platforms"
-	depends on USB_PCI
+	depends on USB_PCI && BROKEN
 	default USB_BDC_UDC
 	help
 		Enable support for platforms which have BDC connected through PCIe, such as Lego3 FPGA platform.
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/bdc/bdc_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/bdc/bdc_core.c
@@ -282,6 +282,7 @@
 	 * in that case reinit is passed as 1
 	 */
 	if (reinit) {
+		int i;
 		/* Enable interrupts */
 		temp = bdc_readl(bdc->regs, BDC_BDCSC);
 		temp |= BDC_GIE;
@@ -291,6 +292,9 @@
 		/* Initialize SRR to 0 */
 		memset(bdc->srr.sr_bds, 0,
 					NUM_SR_ENTRIES * sizeof(struct bdc_bd));
+		/* clear ep flags to avoid post disconnect stops/deconfigs */
+		for (i = 1; i < bdc->num_eps; ++i)
+			bdc->bdc_ep_array[i]->flags = 0;
 	} else {
 		/* One time initiaization only */
 		/* Enable status report function pointers */
@@ -601,9 +605,14 @@
 static int bdc_suspend(struct device *dev)
 {
 	struct bdc *bdc = dev_get_drvdata(dev);
+	int ret;
 
-	clk_disable_unprepare(bdc->clk);
-	return 0;
+	/* Halt the controller */
+	ret = bdc_stop(bdc);
+	if (!ret)
+		clk_disable_unprepare(bdc->clk);
+
+	return ret;
 }
 
 static int bdc_resume(struct device *dev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/bdc/bdc_ep.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/bdc/bdc_ep.c
@@ -540,7 +540,7 @@
 {
 	struct bdc *bdc = ep->bdc;
 
-	if (req == NULL  || &req->queue == NULL || &req->usb_req == NULL)
+	if (req == NULL)
 		return;
 
 	dev_dbg(bdc->dev, "%s ep:%s status:%d\n", __func__, ep->name, status);
@@ -615,7 +615,6 @@
 	}
 	bdc_dbg_bd_list(bdc, ep);
 	/* only for ep0: config ep is called for ep0 from connect event */
-	ep->flags |= BDC_EP_ENABLED;
 	if (ep->ep_num == 1)
 		return ret;
 
@@ -759,10 +758,13 @@
 					__func__, ep->name, start_bdi, end_bdi);
 	dev_dbg(bdc->dev, "ep_dequeue ep=%p ep->desc=%p\n",
 						ep, (void *)ep->usb_ep.desc);
-	/* Stop the ep to see where the HW is ? */
-	ret = bdc_stop_ep(bdc, ep->ep_num);
-	/* if there is an issue with stopping ep, then no need to go further */
-	if (ret)
+	/* if still connected, stop the ep to see where the HW is ? */
+	if (!(bdc_readl(bdc->regs, BDC_USPC) & BDC_PST_MASK)) {
+		ret = bdc_stop_ep(bdc, ep->ep_num);
+		/* if there is an issue, then no need to go further */
+		if (ret)
+			return 0;
+	} else
 		return 0;
 
 	/*
@@ -1911,7 +1913,9 @@
 		__func__, ep->name, ep->flags);
 
 	if (!(ep->flags & BDC_EP_ENABLED)) {
-		dev_warn(bdc->dev, "%s is already disabled\n", ep->name);
+		if (bdc->gadget.speed != USB_SPEED_UNKNOWN)
+			dev_warn(bdc->dev, "%s is already disabled\n",
+				 ep->name);
 		return 0;
 	}
 	spin_lock_irqsave(&bdc->lock, flags);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/core.c
@@ -1297,6 +1297,8 @@
 	kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
 
 	usb_gadget_disconnect(udc->gadget);
+	if (udc->gadget->irq)
+		synchronize_irq(udc->gadget->irq);
 	udc->driver->unbind(udc->gadget);
 	usb_gadget_udc_stop(udc);
 
@@ -1475,10 +1477,13 @@
 		struct device_attribute *attr, const char *buf, size_t n)
 {
 	struct usb_udc		*udc = container_of(dev, struct usb_udc, dev);
+	ssize_t			ret;
 
+	mutex_lock(&udc_lock);
 	if (!udc->driver) {
 		dev_err(dev, "soft-connect without a gadget driver\n");
-		return -EOPNOTSUPP;
+		ret = -EOPNOTSUPP;
+		goto out;
 	}
 
 	if (sysfs_streq(buf, "connect")) {
@@ -1489,10 +1494,14 @@
 		usb_gadget_udc_stop(udc);
 	} else {
 		dev_err(dev, "unsupported command '%s'\n", buf);
-		return -EINVAL;
+		ret = -EINVAL;
+		goto out;
 	}
 
-	return n;
+	ret = n;
+out:
+	mutex_unlock(&udc_lock);
+	return ret;
 }
 static DEVICE_ATTR_WO(soft_connect);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/dummy_hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/dummy_hcd.c
@@ -1321,7 +1321,7 @@
 	u32 this_sg;
 	bool next_sg;
 
-	to_host = usb_pipein(urb->pipe);
+	to_host = usb_urb_dir_in(urb);
 	rbuf = req->req.buf + req->req.actual;
 
 	if (!urb->num_sgs) {
@@ -1409,7 +1409,7 @@
 
 		/* FIXME update emulated data toggle too */
 
-		to_host = usb_pipein(urb->pipe);
+		to_host = usb_urb_dir_in(urb);
 		if (unlikely(len == 0))
 			is_short = 1;
 		else {
@@ -1830,7 +1830,7 @@
 
 		/* find the gadget's ep for this request (if configured) */
 		address = usb_pipeendpoint (urb->pipe);
-		if (usb_pipein(urb->pipe))
+		if (usb_urb_dir_in(urb))
 			address |= USB_DIR_IN;
 		ep = find_endpoint(dum, address);
 		if (!ep) {
@@ -2385,7 +2385,7 @@
 			s = "?";
 			break;
 		 } s; }),
-		ep, ep ? (usb_pipein(urb->pipe) ? "in" : "out") : "",
+		ep, ep ? (usb_urb_dir_in(urb) ? "in" : "out") : "",
 		({ char *s; \
 		switch (usb_pipetype(urb->pipe)) { \
 		case PIPE_CONTROL: \
@@ -2725,7 +2725,7 @@
 };
 
 /*-------------------------------------------------------------------------*/
-#define MAX_NUM_UDC	2
+#define MAX_NUM_UDC	32
 static struct platform_device *the_udc_pdev[MAX_NUM_UDC];
 static struct platform_device *the_hcd_pdev[MAX_NUM_UDC];
 
@@ -2733,7 +2733,7 @@
 {
 	int	retval = -ENOMEM;
 	int	i;
-	struct	dummy *dum[MAX_NUM_UDC];
+	struct	dummy *dum[MAX_NUM_UDC] = {};
 
 	if (usb_disabled())
 		return -ENODEV;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/goku_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/goku_udc.c
@@ -1757,6 +1757,7 @@
 		goto err;
 	}
 
+	pci_set_drvdata(pdev, dev);
 	spin_lock_init(&dev->lock);
 	dev->pdev = pdev;
 	dev->gadget.ops = &goku_ops;
@@ -1790,7 +1791,6 @@
 	}
 	dev->regs = (struct goku_udc_regs __iomem *) base;
 
-	pci_set_drvdata(pdev, dev);
 	INFO(dev, "%s\n", driver_desc);
 	INFO(dev, "version: " DRIVER_VERSION " %s\n", dmastr());
 	INFO(dev, "irq %d, pci mem %p\n", pdev->irq, base);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/gr_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/gr_udc.c
@@ -1980,9 +1980,12 @@
 
 	if (num == 0) {
 		_req = gr_alloc_request(&ep->ep, GFP_ATOMIC);
+		if (!_req)
+			return -ENOMEM;
+
 		buf = devm_kzalloc(dev->dev, PAGE_SIZE, GFP_DMA | GFP_ATOMIC);
-		if (!_req || !buf) {
-			/* possible _req freed by gr_probe via gr_remove */
+		if (!buf) {
+			gr_free_request(&ep->ep, _req);
 			return -ENOMEM;
 		}
 
@@ -2176,8 +2179,6 @@
 		return -ENOMEM;
 	}
 
-	spin_lock(&dev->lock);
-
 	/* Inside lock so that no gadget can use this udc until probe is done */
 	retval = usb_add_gadget_udc(dev->dev, &dev->gadget);
 	if (retval) {
@@ -2186,15 +2187,21 @@
 	}
 	dev->added = 1;
 
+	spin_lock(&dev->lock);
+
 	retval = gr_udc_init(dev);
-	if (retval)
+	if (retval) {
+		spin_unlock(&dev->lock);
 		goto out;
-
-	gr_dfs_create(dev);
+	}
 
 	/* Clear all interrupt enables that might be left on since last boot */
 	gr_disable_interrupts_and_pullup(dev);
 
+	spin_unlock(&dev->lock);
+
+	gr_dfs_create(dev);
+
 	retval = gr_request_irq(dev, dev->irq);
 	if (retval) {
 		dev_err(dev->dev, "Failed to request irq %d\n", dev->irq);
@@ -2223,8 +2230,6 @@
 		dev_info(dev->dev, "regs: %p, irq %d\n", dev->regs, dev->irq);
 
 out:
-	spin_unlock(&dev->lock);
-
 	if (retval)
 		gr_remove(pdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/lpc32xx_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/lpc32xx_udc.c
@@ -1614,17 +1614,17 @@
 			     const struct usb_endpoint_descriptor *desc)
 {
 	struct lpc32xx_ep *ep = container_of(_ep, struct lpc32xx_ep, ep);
-	struct lpc32xx_udc *udc = ep->udc;
+	struct lpc32xx_udc *udc;
 	u16 maxpacket;
 	u32 tmp;
 	unsigned long flags;
 
 	/* Verify EP data */
 	if ((!_ep) || (!ep) || (!desc) ||
-	    (desc->bDescriptorType != USB_DT_ENDPOINT)) {
-		dev_dbg(udc->dev, "bad ep or descriptor\n");
+	    (desc->bDescriptorType != USB_DT_ENDPOINT))
 		return -EINVAL;
-	}
+
+	udc = ep->udc;
 	maxpacket = usb_endpoint_maxp(desc);
 	if ((maxpacket == 0) || (maxpacket > ep->maxpacket)) {
 		dev_dbg(udc->dev, "bad ep descriptor's packet size\n");
@@ -1872,7 +1872,7 @@
 static int lpc32xx_ep_set_halt(struct usb_ep *_ep, int value)
 {
 	struct lpc32xx_ep *ep = container_of(_ep, struct lpc32xx_ep, ep);
-	struct lpc32xx_udc *udc = ep->udc;
+	struct lpc32xx_udc *udc;
 	unsigned long flags;
 
 	if ((!ep) || (ep->hwep_num <= 1))
@@ -1882,6 +1882,7 @@
 	if (ep->is_in)
 		return -EAGAIN;
 
+	udc = ep->udc;
 	spin_lock_irqsave(&udc->lock, flags);
 
 	if (value == 1) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/m66592-udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/m66592-udc.c
@@ -1667,7 +1667,7 @@
 
 err_add_udc:
 	m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
-
+	m66592->ep0_req = NULL;
 clean_up3:
 	if (m66592->pdata->on_chip) {
 		clk_disable(m66592->clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/mv_udc_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/mv_udc_core.c
@@ -2313,7 +2313,8 @@
 	return 0;
 
 err_create_workqueue:
-	destroy_workqueue(udc->qwork);
+	if (udc->qwork)
+		destroy_workqueue(udc->qwork);
 err_destroy_dma:
 	dma_pool_destroy(udc->dtd_pool);
 err_free_dma:
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/net2272.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/net2272.c
@@ -2647,6 +2647,8 @@
  err_req:
 	release_mem_region(base, len);
  err:
+	kfree(dev);
+
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/net2280.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/net2280.c
@@ -3782,8 +3782,10 @@
 	return 0;
 
 done:
-	if (dev)
+	if (dev) {
 		net2280_remove(pdev);
+		kfree(dev);
+	}
 	return retval;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/pch_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/pch_udc.c
@@ -1519,7 +1519,6 @@
 		td = phys_to_virt(addr);
 		addr2 = (dma_addr_t)td->next;
 		dma_pool_free(dev->data_requests, td, addr);
-		td->next = 0x00;
 		addr = addr2;
 	}
 	req->chain_len = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/gadget/udc/s3c2410_udc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/gadget/udc/s3c2410_udc.c
@@ -251,10 +251,6 @@
 static void s3c2410_udc_nuke(struct s3c2410_udc *udc,
 		struct s3c2410_ep *ep, int status)
 {
-	/* Sanity check */
-	if (&ep->queue == NULL)
-		return;
-
 	while (!list_empty(&ep->queue)) {
 		struct s3c2410_request *req;
 		req = list_entry(ep->queue.next, struct s3c2410_request,
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-exynos.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-exynos.c
@@ -203,9 +203,8 @@
 	hcd->rsrc_len = resource_size(res);
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		dev_err(&pdev->dev, "Failed to get IRQ\n");
-		err = -ENODEV;
+	if (irq < 0) {
+		err = irq;
 		goto fail_io;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-hcd.c
@@ -22,6 +22,7 @@
 #include <linux/interrupt.h>
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
+#include <linux/usb/otg.h>
 #include <linux/moduleparam.h>
 #include <linux/dma-mapping.h>
 #include <linux/debugfs.h>
@@ -573,6 +574,7 @@
 	struct ehci_hcd		*ehci = hcd_to_ehci (hcd);
 	u32			temp;
 	u32			hcc_params;
+	int			rc;
 
 	hcd->uses_new_polling = 1;
 
@@ -628,9 +630,20 @@
 	down_write(&ehci_cf_port_reset_rwsem);
 	ehci->rh_state = EHCI_RH_RUNNING;
 	ehci_writel(ehci, FLAG_CF, &ehci->regs->configured_flag);
+
+	/* Wait until HC become operational */
 	ehci_readl(ehci, &ehci->regs->command);	/* unblock posted writes */
 	msleep(5);
+	rc = ehci_handshake(ehci, &ehci->regs->status, STS_HALT, 0, 100 * 1000);
+
 	up_write(&ehci_cf_port_reset_rwsem);
+
+	if (rc) {
+		ehci_err(ehci, "USB %x.%x, controller refused to start: %d\n",
+			 ((ehci->sbrn & 0xf0)>>4), (ehci->sbrn & 0x0f), rc);
+		return rc;
+	}
+
 	ehci->last_periodic_enable = ktime_get_real();
 
 	temp = HC_VERSION(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase));
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-hub.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-hub.c
@@ -14,7 +14,6 @@
  */
 
 /*-------------------------------------------------------------------------*/
-#include <linux/usb/otg.h>
 
 #define	PORT_WAKE_BITS	(PORT_WKOC_E|PORT_WKDISC_E|PORT_WKCONN_E)
 
@@ -346,6 +345,9 @@
 
 	unlink_empty_async_suspended(ehci);
 
+	/* Some Synopsys controllers mistakenly leave IAA turned on */
+	ehci_writel(ehci, STS_IAA, &ehci->regs->status);
+
 	/* Any IAA cycle that started before the suspend is now invalid */
 	end_iaa_cycle(ehci);
 	ehci_handle_start_intr_unlinks(ehci);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-mv.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-mv.c
@@ -156,12 +156,10 @@
 	hcd->rsrc_len = resource_size(r);
 	hcd->regs = ehci_mv->op_regs;
 
-	hcd->irq = platform_get_irq(pdev, 0);
-	if (!hcd->irq) {
-		dev_err(&pdev->dev, "Cannot get irq.");
-		retval = -ENODEV;
+	retval = platform_get_irq(pdev, 0);
+	if (retval < 0)
 		goto err_disable_clk;
-	}
+	hcd->irq = retval;
 
 	ehci = hcd_to_ehci(hcd);
 	ehci->caps = (struct ehci_caps *) ehci_mv->cap_regs;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-mxc.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-mxc.c
@@ -50,6 +50,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
+		return irq;
 
 	hcd = usb_create_hcd(&ehci_mxc_hc_driver, dev, dev_name(dev));
 	if (!hcd)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-omap.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-omap.c
@@ -220,6 +220,7 @@
 
 err_pm_runtime:
 	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
 
 err_phy:
 	for (i = 0; i < omap->nports; i++) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-pci.c
@@ -216,6 +216,13 @@
 		ehci_info(ehci, "applying MosChip frame-index workaround\n");
 		ehci->frame_index_bug = 1;
 		break;
+	case PCI_VENDOR_ID_HUAWEI:
+		/* Synopsys HC bug */
+		if (pdev->device == 0xa239) {
+			ehci_info(ehci, "applying Synopsys HC workaround\n");
+			ehci->has_synopsys_hc_bug = 1;
+		}
+		break;
 	}
 
 	/* optional debug port, normally in the first BAR */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-platform.c
@@ -29,6 +29,8 @@
 #include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/reset.h>
+#include <linux/sys_soc.h>
+#include <linux/timer.h>
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
 #include <linux/usb/ehci_pdriver.h>
@@ -44,6 +46,9 @@
 	struct clk *clks[EHCI_MAX_CLKS];
 	struct reset_control *rsts;
 	bool reset_on_resume;
+	bool quirk_poll;
+	struct timer_list poll_timer;
+	struct delayed_work poll_work;
 };
 
 static const char hcd_name[] = "ehci-platform";
@@ -118,6 +123,111 @@
 	.power_off =		ehci_platform_power_off,
 };
 
+/**
+ * quirk_poll_check_port_status - Poll port_status if the device sticks
+ * @ehci: the ehci hcd pointer
+ *
+ * Since EHCI/OHCI controllers on R-Car Gen3 SoCs are possible to be getting
+ * stuck very rarely after a full/low usb device was disconnected. To
+ * detect such a situation, the controllers require a special way which poll
+ * the EHCI PORTSC register.
+ *
+ * Return: true if the controller's port_status indicated getting stuck
+ */
+static bool quirk_poll_check_port_status(struct ehci_hcd *ehci)
+{
+	u32 port_status = ehci_readl(ehci, &ehci->regs->port_status[0]);
+
+	if (!(port_status & PORT_OWNER) &&
+	     (port_status & PORT_POWER) &&
+	    !(port_status & PORT_CONNECT) &&
+	     (port_status & PORT_LS_MASK))
+		return true;
+
+	return false;
+}
+
+/**
+ * quirk_poll_rebind_companion - rebind comanion device to recover
+ * @ehci: the ehci hcd pointer
+ *
+ * Since EHCI/OHCI controllers on R-Car Gen3 SoCs are possible to be getting
+ * stuck very rarely after a full/low usb device was disconnected. To
+ * recover from such a situation, the controllers require changing the OHCI
+ * functional state.
+ */
+static void quirk_poll_rebind_companion(struct ehci_hcd *ehci)
+{
+	struct device *companion_dev;
+	struct usb_hcd *hcd = ehci_to_hcd(ehci);
+
+	companion_dev = usb_of_get_companion_dev(hcd->self.controller);
+	if (!companion_dev)
+		return;
+
+	device_release_driver(companion_dev);
+	if (device_attach(companion_dev) < 0)
+		ehci_err(ehci, "%s: failed\n", __func__);
+
+	put_device(companion_dev);
+}
+
+static void quirk_poll_work(struct work_struct *work)
+{
+	struct ehci_platform_priv *priv =
+		container_of(to_delayed_work(work), struct ehci_platform_priv,
+			     poll_work);
+	struct ehci_hcd *ehci = container_of((void *)priv, struct ehci_hcd,
+					     priv);
+
+	/* check the status twice to reduce misdetection rate */
+	if (!quirk_poll_check_port_status(ehci))
+		return;
+	udelay(10);
+	if (!quirk_poll_check_port_status(ehci))
+		return;
+
+	ehci_dbg(ehci, "%s: detected getting stuck. rebind now!\n", __func__);
+	quirk_poll_rebind_companion(ehci);
+}
+
+static void quirk_poll_timer(struct timer_list *t)
+{
+	struct ehci_platform_priv *priv = from_timer(priv, t, poll_timer);
+	struct ehci_hcd *ehci = container_of((void *)priv, struct ehci_hcd,
+					     priv);
+
+	if (quirk_poll_check_port_status(ehci)) {
+		/*
+		 * Now scheduling the work for testing the port more. Note that
+		 * updating the status is possible to be delayed when
+		 * reconnection. So, this uses delayed work with 5 ms delay
+		 * to avoid misdetection.
+		 */
+		schedule_delayed_work(&priv->poll_work, msecs_to_jiffies(5));
+	}
+
+	mod_timer(&priv->poll_timer, jiffies + HZ);
+}
+
+static void quirk_poll_init(struct ehci_platform_priv *priv)
+{
+	INIT_DELAYED_WORK(&priv->poll_work, quirk_poll_work);
+	timer_setup(&priv->poll_timer, quirk_poll_timer, 0);
+	mod_timer(&priv->poll_timer, jiffies + HZ);
+}
+
+static void quirk_poll_end(struct ehci_platform_priv *priv)
+{
+	del_timer_sync(&priv->poll_timer);
+	cancel_delayed_work(&priv->poll_work);
+}
+
+static const struct soc_device_attribute quirk_poll_match[] = {
+	{ .family = "R-Car Gen3" },
+	{ /* sentinel*/ }
+};
+
 static int ehci_platform_probe(struct platform_device *dev)
 {
 	struct usb_hcd *hcd;
@@ -176,6 +286,9 @@
 					  "has-transaction-translator"))
 			hcd->has_tt = 1;
 
+		if (soc_device_match(quirk_poll_match))
+			priv->quirk_poll = true;
+
 		for (clk = 0; clk < EHCI_MAX_CLKS; clk++) {
 			priv->clks[clk] = of_clk_get(dev->dev.of_node, clk);
 			if (IS_ERR(priv->clks[clk])) {
@@ -247,6 +360,9 @@
 	device_enable_async_suspend(hcd->self.controller);
 	platform_set_drvdata(dev, hcd);
 
+	if (priv->quirk_poll)
+		quirk_poll_init(priv);
+
 	return err;
 
 err_power:
@@ -273,6 +389,9 @@
 	struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd);
 	int clk;
 
+	if (priv->quirk_poll)
+		quirk_poll_end(priv);
+
 	usb_remove_hcd(hcd);
 
 	if (pdata->power_off)
@@ -297,9 +416,13 @@
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
 	struct usb_ehci_pdata *pdata = dev_get_platdata(dev);
 	struct platform_device *pdev = to_platform_device(dev);
+	struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd);
 	bool do_wakeup = device_may_wakeup(dev);
 	int ret;
 
+	if (priv->quirk_poll)
+		quirk_poll_end(priv);
+
 	ret = ehci_suspend(hcd, do_wakeup);
 	if (ret)
 		return ret;
@@ -331,6 +454,10 @@
 	}
 
 	ehci_resume(hcd, priv->reset_on_resume);
+
+	if (priv->quirk_poll)
+		quirk_poll_init(priv);
+
 	return 0;
 }
 #endif /* CONFIG_PM_SLEEP */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ehci-q.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ehci-q.c
@@ -27,6 +27,10 @@
 
 /*-------------------------------------------------------------------------*/
 
+/* PID Codes that are used here, from EHCI specification, Table 3-16. */
+#define PID_CODE_IN    1
+#define PID_CODE_SETUP 2
+
 /* fill a qtd, returning how much of the buffer we were able to queue up */
 
 static int
@@ -190,7 +194,7 @@
 	int	status = -EINPROGRESS;
 
 	/* count IN/OUT bytes, not SETUP (even short packets) */
-	if (likely (QTD_PID (token) != 2))
+	if (likely(QTD_PID(token) != PID_CODE_SETUP))
 		urb->actual_length += length - QTD_LENGTH (token);
 
 	/* don't modify error codes */
@@ -206,6 +210,13 @@
 		if (token & QTD_STS_BABBLE) {
 			/* FIXME "must" disable babbling device's port too */
 			status = -EOVERFLOW;
+		/*
+		 * When MMF is active and PID Code is IN, queue is halted.
+		 * EHCI Specification, Table 4-13.
+		 */
+		} else if ((token & QTD_STS_MMF) &&
+					(QTD_PID(token) == PID_CODE_IN)) {
+			status = -EPROTO;
 		/* CERR nonzero + halt --> stall */
 		} else if (QTD_CERR(token)) {
 			status = -EPIPE;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/fsl-mph-dr-of.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/fsl-mph-dr-of.c
@@ -94,10 +94,13 @@
 
 	pdev->dev.coherent_dma_mask = ofdev->dev.coherent_dma_mask;
 
-	if (!pdev->dev.dma_mask)
+	if (!pdev->dev.dma_mask) {
 		pdev->dev.dma_mask = &ofdev->dev.coherent_dma_mask;
-	else
-		dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+	} else {
+		retval = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+		if (retval)
+			goto error;
+	}
 
 	retval = platform_device_add_data(pdev, pdata, sizeof(*pdata));
 	if (retval)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/max3421-hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/max3421-hcd.c
@@ -1847,7 +1847,7 @@
 	struct max3421_hcd *max3421_hcd;
 	struct usb_hcd *hcd = NULL;
 	struct max3421_hcd_platform_data *pdata = NULL;
-	int retval = -ENOMEM;
+	int retval;
 
 	if (spi_setup(spi) < 0) {
 		dev_err(&spi->dev, "Unable to setup SPI bus");
@@ -1889,6 +1889,7 @@
 		goto error;
 	}
 
+	retval = -ENOMEM;
 	hcd = usb_create_hcd(&max3421_hcd_desc, &spi->dev,
 			     dev_name(&spi->dev));
 	if (!hcd) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ohci-da8xx.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ohci-da8xx.c
@@ -415,13 +415,17 @@
 	}
 
 	da8xx_ohci->oc_gpio = devm_gpiod_get_optional(dev, "oc", GPIOD_IN);
-	if (IS_ERR(da8xx_ohci->oc_gpio))
+	if (IS_ERR(da8xx_ohci->oc_gpio)) {
+		error = PTR_ERR(da8xx_ohci->oc_gpio);
 		goto err;
+	}
 
 	if (da8xx_ohci->oc_gpio) {
 		oc_irq = gpiod_to_irq(da8xx_ohci->oc_gpio);
-		if (oc_irq < 0)
+		if (oc_irq < 0) {
+			error = oc_irq;
 			goto err;
+		}
 
 		error = devm_request_threaded_irq(dev, oc_irq, NULL,
 				ohci_da8xx_oc_thread, IRQF_TRIGGER_RISING |
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ohci-exynos.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ohci-exynos.c
@@ -171,9 +171,8 @@
 	hcd->rsrc_len = resource_size(res);
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		dev_err(&pdev->dev, "Failed to get IRQ\n");
-		err = -ENODEV;
+	if (irq < 0) {
+		err = irq;
 		goto fail_io;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ohci-hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ohci-hcd.c
@@ -102,7 +102,7 @@
 
 
 /* Some boards misreport power switching/overcurrent */
-static bool distrust_firmware = true;
+static bool distrust_firmware;
 module_param (distrust_firmware, bool, 0);
 MODULE_PARM_DESC (distrust_firmware,
 	"true to distrust firmware power/overcurrent setup");
@@ -673,20 +673,24 @@
 
 	/* handle root hub init quirks ... */
 	val = roothub_a (ohci);
-	val &= ~(RH_A_PSM | RH_A_OCPM);
+	/* Configure for per-port over-current protection by default */
+	val &= ~RH_A_NOCP;
+	val |= RH_A_OCPM;
 	if (ohci->flags & OHCI_QUIRK_SUPERIO) {
-		/* NSC 87560 and maybe others */
+		/* NSC 87560 and maybe others.
+		 * Ganged power switching, no over-current protection.
+		 */
 		val |= RH_A_NOCP;
-		val &= ~(RH_A_POTPGT | RH_A_NPS);
-		ohci_writel (ohci, val, &ohci->regs->roothub.a);
+		val &= ~(RH_A_POTPGT | RH_A_NPS | RH_A_PSM | RH_A_OCPM);
 	} else if ((ohci->flags & OHCI_QUIRK_AMD756) ||
 			(ohci->flags & OHCI_QUIRK_HUB_POWER)) {
 		/* hub power always on; required for AMD-756 and some
-		 * Mac platforms.  ganged overcurrent reporting, if any.
+		 * Mac platforms.
 		 */
 		val |= RH_A_NPS;
-		ohci_writel (ohci, val, &ohci->regs->roothub.a);
 	}
+	ohci_writel(ohci, val, &ohci->regs->roothub.a);
+
 	ohci_writel (ohci, RH_HS_LPSC, &ohci->regs->roothub.status);
 	ohci_writel (ohci, (val & RH_A_NPS) ? 0 : RH_B_PPCM,
 						&ohci->regs->roothub.b);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/ohci-sm501.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/ohci-sm501.c
@@ -157,9 +157,10 @@
 	 * the call to usb_hcd_setup_local_mem() below does just that.
 	 */
 
-	if (usb_hcd_setup_local_mem(hcd, mem->start,
-				    mem->start - mem->parent->start,
-				    resource_size(mem)) < 0)
+	retval = usb_hcd_setup_local_mem(hcd, mem->start,
+					 mem->start - mem->parent->start,
+					 resource_size(mem));
+	if (retval < 0)
 		goto err5;
 	retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
 	if (retval)
@@ -190,6 +191,7 @@
 	struct resource	*mem;
 
 	usb_remove_hcd(hcd);
+	iounmap(hcd->regs);
 	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
 	usb_put_hcd(hcd);
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 1);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/oxu210hp-hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/oxu210hp-hcd.c
@@ -4149,8 +4149,10 @@
 	oxu->is_otg = otg;
 
 	ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
-	if (ret < 0)
+	if (ret < 0) {
+		usb_put_hcd(hcd);
 		return ERR_PTR(ret);
+	}
 
 	device_wakeup_enable(hcd->self.controller);
 	return hcd;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-debugfs.c
@@ -273,7 +273,7 @@
 
 static int xhci_endpoint_context_show(struct seq_file *s, void *unused)
 {
-	int			dci;
+	int			ep_index;
 	dma_addr_t		dma;
 	struct xhci_hcd		*xhci;
 	struct xhci_ep_ctx	*ep_ctx;
@@ -282,9 +282,9 @@
 
 	xhci = hcd_to_xhci(bus_to_hcd(dev->udev->bus));
 
-	for (dci = 1; dci < 32; dci++) {
-		ep_ctx = xhci_get_ep_ctx(xhci, dev->out_ctx, dci);
-		dma = dev->out_ctx->dma + dci * CTX_SIZE(xhci->hcc_params);
+	for (ep_index = 0; ep_index < 31; ep_index++) {
+		ep_ctx = xhci_get_ep_ctx(xhci, dev->out_ctx, ep_index);
+		dma = dev->out_ctx->dma + (ep_index + 1) * CTX_SIZE(xhci->hcc_params);
 		seq_printf(s, "%pad: %s\n", &dma,
 			   xhci_decode_ep_context(le32_to_cpu(ep_ctx->ep_info),
 						  le32_to_cpu(ep_ctx->ep_info2),
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-histb.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-histb.c
@@ -241,7 +241,7 @@
 	/* Initialize dma_mask and coherent_dma_mask to 32-bits */
 	ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
 	if (ret)
-		return ret;
+		goto disable_pm;
 
 	hcd = usb_create_hcd(driver, dev, dev_name(dev));
 	if (!hcd) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-hub.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-hub.c
@@ -55,6 +55,7 @@
 static int xhci_create_usb3_bos_desc(struct xhci_hcd *xhci, char *buf,
 				     u16 wLength)
 {
+	struct xhci_port_cap *port_cap = NULL;
 	int i, ssa_count;
 	u32 temp;
 	u16 desc_size, ssp_cap_size, ssa_size = 0;
@@ -64,16 +65,24 @@
 	ssp_cap_size = sizeof(usb_bos_descriptor) - desc_size;
 
 	/* does xhci support USB 3.1 Enhanced SuperSpeed */
-	if (xhci->usb3_rhub.min_rev >= 0x01) {
+	for (i = 0; i < xhci->num_port_caps; i++) {
+		if (xhci->port_caps[i].maj_rev == 0x03 &&
+		    xhci->port_caps[i].min_rev >= 0x01) {
+			usb3_1 = true;
+			port_cap = &xhci->port_caps[i];
+			break;
+		}
+	}
+
+	if (usb3_1) {
 		/* does xhci provide a PSI table for SSA speed attributes? */
-		if (xhci->usb3_rhub.psi_count) {
+		if (port_cap->psi_count) {
 			/* two SSA entries for each unique PSI ID, RX and TX */
-			ssa_count = xhci->usb3_rhub.psi_uid_count * 2;
+			ssa_count = port_cap->psi_uid_count * 2;
 			ssa_size = ssa_count * sizeof(u32);
 			ssp_cap_size -= 16; /* skip copying the default SSA */
 		}
 		desc_size += ssp_cap_size;
-		usb3_1 = true;
 	}
 	memcpy(buf, &usb_bos_descriptor, min(desc_size, wLength));
 
@@ -99,7 +108,7 @@
 	}
 
 	/* If PSI table exists, add the custom speed attributes from it */
-	if (usb3_1 && xhci->usb3_rhub.psi_count) {
+	if (usb3_1 && port_cap->psi_count) {
 		u32 ssp_cap_base, bm_attrib, psi, psi_mant, psi_exp;
 		int offset;
 
@@ -111,7 +120,7 @@
 
 		/* attribute count SSAC bits 4:0 and ID count SSIC bits 8:5 */
 		bm_attrib = (ssa_count - 1) & 0x1f;
-		bm_attrib |= (xhci->usb3_rhub.psi_uid_count - 1) << 5;
+		bm_attrib |= (port_cap->psi_uid_count - 1) << 5;
 		put_unaligned_le32(bm_attrib, &buf[ssp_cap_base + 4]);
 
 		if (wLength < desc_size + ssa_size)
@@ -124,8 +133,8 @@
 		 * USB 3.1 requires two SSA entries (RX and TX) for every link
 		 */
 		offset = desc_size;
-		for (i = 0; i < xhci->usb3_rhub.psi_count; i++) {
-			psi = xhci->usb3_rhub.psi[i];
+		for (i = 0; i < port_cap->psi_count; i++) {
+			psi = port_cap->psi[i];
 			psi &= ~USB_SSP_SUBLINK_SPEED_RSVD;
 			psi_exp = XHCI_EXT_PORT_PSIE(psi);
 			psi_mant = XHCI_EXT_PORT_PSIM(psi);
@@ -729,15 +738,6 @@
 {
 	u32 pls = status_reg & PORT_PLS_MASK;
 
-	/* resume state is a xHCI internal state.
-	 * Do not report it to usb core, instead, pretend to be U3,
-	 * thus usb core knows it's not ready for transfer
-	 */
-	if (pls == XDEV_RESUME) {
-		*status |= USB_SS_PORT_LS_U3;
-		return;
-	}
-
 	/* When the CAS bit is set then warm reset
 	 * should be performed on port
 	 */
@@ -760,6 +760,16 @@
 		pls |= USB_PORT_STAT_CONNECTION;
 	} else {
 		/*
+		 * Resume state is an xHCI internal state.  Do not report it to
+		 * usb core, instead, pretend to be U3, thus usb core knows
+		 * it's not ready for transfer.
+		 */
+		if (pls == XDEV_RESUME) {
+			*status |= USB_SS_PORT_LS_U3;
+			return;
+		}
+
+		/*
 		 * If CAS bit isn't set but the Port is already at
 		 * Compliance Mode, fake a connection so the USB core
 		 * notices the Compliance state and resets the port.
@@ -806,7 +816,7 @@
 
 static int xhci_handle_usb2_port_link_resume(struct xhci_port *port,
 					     u32 *status, u32 portsc,
-					     unsigned long flags)
+					     unsigned long *flags)
 {
 	struct xhci_bus_state *bus_state;
 	struct xhci_hcd	*xhci;
@@ -860,11 +870,11 @@
 		xhci_test_and_clear_bit(xhci, port, PORT_PLC);
 		xhci_set_link_state(xhci, port, XDEV_U0);
 
-		spin_unlock_irqrestore(&xhci->lock, flags);
+		spin_unlock_irqrestore(&xhci->lock, *flags);
 		time_left = wait_for_completion_timeout(
 			&bus_state->rexit_done[wIndex],
 			msecs_to_jiffies(XHCI_MAX_REXIT_TIMEOUT_MS));
-		spin_lock_irqsave(&xhci->lock, flags);
+		spin_lock_irqsave(&xhci->lock, *flags);
 
 		if (time_left) {
 			slot_id = xhci_find_slot_id_by_port(hcd, xhci,
@@ -920,11 +930,13 @@
 {
 	struct xhci_bus_state *bus_state;
 	struct xhci_hcd	*xhci;
+	struct usb_hcd *hcd;
 	u32 link_state;
 	u32 portnum;
 
 	bus_state = &port->rhub->bus_state;
 	xhci = hcd_to_xhci(port->rhub->hcd);
+	hcd = port->rhub->hcd;
 	link_state = portsc & PORT_PLS_MASK;
 	portnum = port->hcd_portnum;
 
@@ -952,12 +964,20 @@
 			bus_state->suspended_ports &= ~(1 << portnum);
 	}
 
+	/* remote wake resume signaling complete */
+	if (bus_state->port_remote_wakeup & (1 << portnum) &&
+	    link_state != XDEV_RESUME &&
+	    link_state != XDEV_RECOVERY) {
+		bus_state->port_remote_wakeup &= ~(1 << portnum);
+		usb_hcd_end_port_resume(&hcd->self, portnum);
+	}
+
 	xhci_hub_report_usb3_link_state(xhci, status, portsc);
 	xhci_del_comp_mod_timer(xhci, portsc, portnum);
 }
 
 static void xhci_get_usb2_port_status(struct xhci_port *port, u32 *status,
-				      u32 portsc, unsigned long flags)
+				      u32 portsc, unsigned long *flags)
 {
 	struct xhci_bus_state *bus_state;
 	u32 link_state;
@@ -1007,7 +1027,7 @@
 static u32 xhci_get_port_status(struct usb_hcd *hcd,
 		struct xhci_bus_state *bus_state,
 	u16 wIndex, u32 raw_port_status,
-		unsigned long flags)
+		unsigned long *flags)
 	__releases(&xhci->lock)
 	__acquires(&xhci->lock)
 {
@@ -1130,7 +1150,7 @@
 		}
 		trace_xhci_get_port_status(wIndex, temp);
 		status = xhci_get_port_status(hcd, bus_state, wIndex, temp,
-					      flags);
+					      &flags);
 		if (status == 0xffffffff)
 			goto error;
 
@@ -1287,7 +1307,47 @@
 					 wIndex, link_state);
 				goto error;
 			}
+
+			/*
+			 * set link to U0, steps depend on current link state.
+			 * U3: set link to U0 and wait for u3exit completion.
+			 * U1/U2:  no PLC complete event, only set link to U0.
+			 * Resume/Recovery: device initiated U0, only wait for
+			 * completion
+			 */
+			if (link_state == USB_SS_PORT_LS_U0) {
+				u32 pls = temp & PORT_PLS_MASK;
+				bool wait_u0 = false;
+
+				/* already in U0 */
+				if (pls == XDEV_U0)
+					break;
+				if (pls == XDEV_U3 ||
+				    pls == XDEV_RESUME ||
+				    pls == XDEV_RECOVERY) {
+					wait_u0 = true;
+					reinit_completion(&bus_state->u3exit_done[wIndex]);
+				}
+				if (pls <= XDEV_U3) /* U1, U2, U3 */
+					xhci_set_link_state(xhci, ports[wIndex],
+							    USB_SS_PORT_LS_U0);
+				if (!wait_u0) {
+					if (pls > XDEV_U3)
+						goto error;
+					break;
+				}
+				spin_unlock_irqrestore(&xhci->lock, flags);
+				if (!wait_for_completion_timeout(&bus_state->u3exit_done[wIndex],
+								 msecs_to_jiffies(100)))
+					xhci_dbg(xhci, "missing U0 port change event for port %d\n",
+						 wIndex);
+				spin_lock_irqsave(&xhci->lock, flags);
+				temp = readl(ports[wIndex]->addr);
+				break;
+			}
+
 			if (link_state == USB_SS_PORT_LS_U3) {
+				int retries = 16;
 				slot_id = xhci_find_slot_id_by_port(hcd, xhci,
 						wIndex + 1);
 				if (slot_id) {
@@ -1298,17 +1358,18 @@
 					xhci_stop_device(xhci, slot_id, 1);
 					spin_lock_irqsave(&xhci->lock, flags);
 				}
-			}
-
-			xhci_set_link_state(xhci, ports[wIndex], link_state);
-
-			spin_unlock_irqrestore(&xhci->lock, flags);
-			msleep(20); /* wait device to enter */
-			spin_lock_irqsave(&xhci->lock, flags);
-
-			temp = readl(ports[wIndex]->addr);
-			if (link_state == USB_SS_PORT_LS_U3)
+				xhci_set_link_state(xhci, ports[wIndex], USB_SS_PORT_LS_U3);
+				spin_unlock_irqrestore(&xhci->lock, flags);
+				while (retries--) {
+					usleep_range(4000, 8000);
+					temp = readl(ports[wIndex]->addr);
+					if ((temp & PORT_PLS_MASK) == XDEV_U3)
+						break;
+				}
+				spin_lock_irqsave(&xhci->lock, flags);
+				temp = readl(ports[wIndex]->addr);
 				bus_state->suspended_ports |= 1 << wIndex;
+			}
 			break;
 		case USB_PORT_FEAT_POWER:
 			/*
@@ -1509,6 +1570,8 @@
 		}
 		if ((temp & PORT_RC))
 			reset_change = true;
+		if (temp & PORT_OC)
+			status = 1;
 	}
 	if (!status && !reset_change) {
 		xhci_dbg(xhci, "%s: stopping port polling.\n", __func__);
@@ -1574,6 +1637,13 @@
 				 port_index);
 			goto retry;
 		}
+		/* bail out if port detected a over-current condition */
+		if (t1 & PORT_OC) {
+			bus_state->bus_suspended = 0;
+			spin_unlock_irqrestore(&xhci->lock, flags);
+			xhci_dbg(xhci, "Bus suspend bailout, port over-current detected\n");
+			return -EBUSY;
+		}
 		/* suspend ports in U0, or bail out for new connect changes */
 		if ((t1 & PORT_PE) && (t1 & PORT_PLS_MASK) == XDEV_U0) {
 			if ((t1 & PORT_CSC) && wake_enabled) {
@@ -1635,6 +1705,10 @@
 	hcd->state = HC_STATE_SUSPENDED;
 	bus_state->next_statechange = jiffies + msecs_to_jiffies(10);
 	spin_unlock_irqrestore(&xhci->lock, flags);
+
+	if (bus_state->bus_suspended)
+		usleep_range(5000, 10000);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-mem.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-mem.c
@@ -1475,9 +1475,15 @@
 	/* Allow 3 retries for everything but isoc, set CErr = 3 */
 	if (!usb_endpoint_xfer_isoc(&ep->desc))
 		err_count = 3;
-	/* Some devices get this wrong */
-	if (usb_endpoint_xfer_bulk(&ep->desc) && udev->speed == USB_SPEED_HIGH)
-		max_packet = 512;
+	/* HS bulk max packet should be 512, FS bulk supports 8, 16, 32 or 64 */
+	if (usb_endpoint_xfer_bulk(&ep->desc)) {
+		if (udev->speed == USB_SPEED_HIGH)
+			max_packet = 512;
+		if (udev->speed == USB_SPEED_FULL) {
+			max_packet = rounddown_pow_of_two(max_packet);
+			max_packet = clamp_val(max_packet, 8, 64);
+		}
+	}
 	/* xHCI 1.0 and 1.1 indicates that ctrl ep avg TRB Length should be 8 */
 	if (usb_endpoint_xfer_control(&ep->desc) && xhci->hci_version >= 0x100)
 		avg_trb_len = 8;
@@ -1913,6 +1919,10 @@
 	kfree(xhci->hw_ports);
 	kfree(xhci->rh_bw);
 	kfree(xhci->ext_caps);
+	for (i = 0; i < xhci->num_port_caps; i++)
+		kfree(xhci->port_caps[i].psi);
+	kfree(xhci->port_caps);
+	xhci->num_port_caps = 0;
 
 	xhci->usb2_rhub.ports = NULL;
 	xhci->usb3_rhub.ports = NULL;
@@ -2116,6 +2126,7 @@
 	u8 major_revision, minor_revision;
 	struct xhci_hub *rhub;
 	struct device *dev = xhci_to_hcd(xhci)->self.sysdev;
+	struct xhci_port_cap *port_cap;
 
 	temp = readl(addr);
 	major_revision = XHCI_EXT_PORT_MAJOR(temp);
@@ -2150,31 +2161,39 @@
 		/* WTF? "Valid values are ‘1’ to MaxPorts" */
 		return;
 
-	rhub->psi_count = XHCI_EXT_PORT_PSIC(temp);
-	if (rhub->psi_count) {
-		rhub->psi = kcalloc_node(rhub->psi_count, sizeof(*rhub->psi),
-				    GFP_KERNEL, dev_to_node(dev));
-		if (!rhub->psi)
-			rhub->psi_count = 0;
-
-		rhub->psi_uid_count++;
-		for (i = 0; i < rhub->psi_count; i++) {
-			rhub->psi[i] = readl(addr + 4 + i);
+	port_cap = &xhci->port_caps[xhci->num_port_caps++];
+	if (xhci->num_port_caps > max_caps)
+		return;
+
+	port_cap->maj_rev = major_revision;
+	port_cap->min_rev = minor_revision;
+	port_cap->psi_count = XHCI_EXT_PORT_PSIC(temp);
+
+	if (port_cap->psi_count) {
+		port_cap->psi = kcalloc_node(port_cap->psi_count,
+					     sizeof(*port_cap->psi),
+					     GFP_KERNEL, dev_to_node(dev));
+		if (!port_cap->psi)
+			port_cap->psi_count = 0;
+
+		port_cap->psi_uid_count++;
+		for (i = 0; i < port_cap->psi_count; i++) {
+			port_cap->psi[i] = readl(addr + 4 + i);
 
 			/* count unique ID values, two consecutive entries can
 			 * have the same ID if link is assymetric
 			 */
-			if (i && (XHCI_EXT_PORT_PSIV(rhub->psi[i]) !=
-				  XHCI_EXT_PORT_PSIV(rhub->psi[i - 1])))
-				rhub->psi_uid_count++;
+			if (i && (XHCI_EXT_PORT_PSIV(port_cap->psi[i]) !=
+				  XHCI_EXT_PORT_PSIV(port_cap->psi[i - 1])))
+				port_cap->psi_uid_count++;
 
 			xhci_dbg(xhci, "PSIV:%d PSIE:%d PLT:%d PFD:%d LP:%d PSIM:%d\n",
-				  XHCI_EXT_PORT_PSIV(rhub->psi[i]),
-				  XHCI_EXT_PORT_PSIE(rhub->psi[i]),
-				  XHCI_EXT_PORT_PLT(rhub->psi[i]),
-				  XHCI_EXT_PORT_PFD(rhub->psi[i]),
-				  XHCI_EXT_PORT_LP(rhub->psi[i]),
-				  XHCI_EXT_PORT_PSIM(rhub->psi[i]));
+				  XHCI_EXT_PORT_PSIV(port_cap->psi[i]),
+				  XHCI_EXT_PORT_PSIE(port_cap->psi[i]),
+				  XHCI_EXT_PORT_PLT(port_cap->psi[i]),
+				  XHCI_EXT_PORT_PFD(port_cap->psi[i]),
+				  XHCI_EXT_PORT_LP(port_cap->psi[i]),
+				  XHCI_EXT_PORT_PSIM(port_cap->psi[i]));
 		}
 	}
 	/* cache usb2 port capabilities */
@@ -2209,6 +2228,7 @@
 			continue;
 		}
 		hw_port->rhub = rhub;
+		hw_port->port_cap = port_cap;
 		rhub->num_ports++;
 	}
 	/* FIXME: Should we disable ports not in the Extended Capabilities? */
@@ -2299,6 +2319,11 @@
 	if (!xhci->ext_caps)
 		return -ENOMEM;
 
+	xhci->port_caps = kcalloc_node(cap_count, sizeof(*xhci->port_caps),
+				flags, dev_to_node(dev));
+	if (!xhci->port_caps)
+		return -ENOMEM;
+
 	offset = cap_start;
 
 	while (offset) {
@@ -2527,6 +2552,7 @@
 		xhci->usb3_rhub.bus_state.resume_done[i] = 0;
 		/* Only the USB 2.0 completions will ever be used. */
 		init_completion(&xhci->usb2_rhub.bus_state.rexit_done[i]);
+		init_completion(&xhci->usb3_rhub.bus_state.u3exit_done[i]);
 	}
 
 	if (scratchpad_alloc(xhci, flags))
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-mtk-sch.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-mtk-sch.c
@@ -200,6 +200,8 @@
 
 	sch_ep->sch_tt = tt;
 	sch_ep->ep = ep;
+	INIT_LIST_HEAD(&sch_ep->endpoint);
+	INIT_LIST_HEAD(&sch_ep->tt_endpoint);
 
 	return sch_ep;
 }
@@ -373,6 +375,7 @@
 					sch_ep->bw_budget_table[j];
 		}
 	}
+	sch_ep->allocated = used;
 }
 
 static int check_sch_tt(struct usb_device *udev,
@@ -541,6 +544,22 @@
 	return 0;
 }
 
+static void destroy_sch_ep(struct usb_device *udev,
+	struct mu3h_sch_bw_info *sch_bw, struct mu3h_sch_ep_info *sch_ep)
+{
+	/* only release ep bw check passed by check_sch_bw() */
+	if (sch_ep->allocated)
+		update_bus_bw(sch_bw, sch_ep, 0);
+
+	list_del(&sch_ep->endpoint);
+
+	if (sch_ep->sch_tt) {
+		list_del(&sch_ep->tt_endpoint);
+		drop_tt(udev);
+	}
+	kfree(sch_ep);
+}
+
 static bool need_bw_sch(struct usb_host_endpoint *ep,
 	enum usb_device_speed speed, int has_tt)
 {
@@ -557,6 +576,10 @@
 	if (is_fs_or_ls(speed) && !has_tt)
 		return false;
 
+	/* skip endpoint with zero maxpkt */
+	if (usb_endpoint_maxp(&ep->desc) == 0)
+		return false;
+
 	return true;
 }
 
@@ -579,6 +602,8 @@
 
 	mtk->sch_array = sch_array;
 
+	INIT_LIST_HEAD(&mtk->bw_ep_chk_list);
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(xhci_mtk_sch_init);
@@ -597,19 +622,14 @@
 	struct xhci_ep_ctx *ep_ctx;
 	struct xhci_slot_ctx *slot_ctx;
 	struct xhci_virt_device *virt_dev;
-	struct mu3h_sch_bw_info *sch_bw;
 	struct mu3h_sch_ep_info *sch_ep;
-	struct mu3h_sch_bw_info *sch_array;
 	unsigned int ep_index;
-	int bw_index;
-	int ret = 0;
 
 	xhci = hcd_to_xhci(hcd);
 	virt_dev = xhci->devs[udev->slot_id];
 	ep_index = xhci_get_endpoint_index(&ep->desc);
 	slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx);
 	ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
-	sch_array = mtk->sch_array;
 
 	xhci_dbg(xhci, "%s() type:%d, speed:%d, mpkt:%d, dir:%d, ep:%p\n",
 		__func__, usb_endpoint_type(&ep->desc), udev->speed,
@@ -628,35 +648,13 @@
 		return 0;
 	}
 
-	bw_index = get_bw_index(xhci, udev, ep);
-	sch_bw = &sch_array[bw_index];
-
 	sch_ep = create_sch_ep(udev, ep, ep_ctx);
 	if (IS_ERR_OR_NULL(sch_ep))
 		return -ENOMEM;
 
 	setup_sch_info(udev, ep_ctx, sch_ep);
 
-	ret = check_sch_bw(udev, sch_bw, sch_ep);
-	if (ret) {
-		xhci_err(xhci, "Not enough bandwidth!\n");
-		if (is_fs_or_ls(udev->speed))
-			drop_tt(udev);
-
-		kfree(sch_ep);
-		return -ENOSPC;
-	}
-
-	list_add_tail(&sch_ep->endpoint, &sch_bw->bw_ep_list);
-
-	ep_ctx->reserved[0] |= cpu_to_le32(EP_BPKTS(sch_ep->pkts)
-		| EP_BCSCOUNT(sch_ep->cs_count) | EP_BBM(sch_ep->burst_mode));
-	ep_ctx->reserved[1] |= cpu_to_le32(EP_BOFFSET(sch_ep->offset)
-		| EP_BREPEAT(sch_ep->repeat));
-
-	xhci_dbg(xhci, " PKTS:%x, CSCOUNT:%x, BM:%x, OFFSET:%x, REPEAT:%x\n",
-			sch_ep->pkts, sch_ep->cs_count, sch_ep->burst_mode,
-			sch_ep->offset, sch_ep->repeat);
+	list_add_tail(&sch_ep->endpoint, &mtk->bw_ep_chk_list);
 
 	return 0;
 }
@@ -671,7 +669,7 @@
 	struct xhci_virt_device *virt_dev;
 	struct mu3h_sch_bw_info *sch_array;
 	struct mu3h_sch_bw_info *sch_bw;
-	struct mu3h_sch_ep_info *sch_ep;
+	struct mu3h_sch_ep_info *sch_ep, *tmp;
 	int bw_index;
 
 	xhci = hcd_to_xhci(hcd);
@@ -690,17 +688,79 @@
 	bw_index = get_bw_index(xhci, udev, ep);
 	sch_bw = &sch_array[bw_index];
 
-	list_for_each_entry(sch_ep, &sch_bw->bw_ep_list, endpoint) {
+	list_for_each_entry_safe(sch_ep, tmp, &sch_bw->bw_ep_list, endpoint) {
 		if (sch_ep->ep == ep) {
-			update_bus_bw(sch_bw, sch_ep, 0);
-			list_del(&sch_ep->endpoint);
-			if (is_fs_or_ls(udev->speed)) {
-				list_del(&sch_ep->tt_endpoint);
-				drop_tt(udev);
-			}
-			kfree(sch_ep);
+			destroy_sch_ep(udev, sch_bw, sch_ep);
 			break;
 		}
 	}
 }
 EXPORT_SYMBOL_GPL(xhci_mtk_drop_ep_quirk);
+
+int xhci_mtk_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
+{
+	struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd);
+	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+	struct xhci_virt_device *virt_dev = xhci->devs[udev->slot_id];
+	struct mu3h_sch_bw_info *sch_bw;
+	struct mu3h_sch_ep_info *sch_ep, *tmp;
+	int bw_index, ret;
+
+	xhci_dbg(xhci, "%s() udev %s\n", __func__, dev_name(&udev->dev));
+
+	list_for_each_entry(sch_ep, &mtk->bw_ep_chk_list, endpoint) {
+		bw_index = get_bw_index(xhci, udev, sch_ep->ep);
+		sch_bw = &mtk->sch_array[bw_index];
+
+		ret = check_sch_bw(udev, sch_bw, sch_ep);
+		if (ret) {
+			xhci_err(xhci, "Not enough bandwidth!\n");
+			return -ENOSPC;
+		}
+	}
+
+	list_for_each_entry_safe(sch_ep, tmp, &mtk->bw_ep_chk_list, endpoint) {
+		struct xhci_ep_ctx *ep_ctx;
+		struct usb_host_endpoint *ep = sch_ep->ep;
+		unsigned int ep_index = xhci_get_endpoint_index(&ep->desc);
+
+		bw_index = get_bw_index(xhci, udev, ep);
+		sch_bw = &mtk->sch_array[bw_index];
+
+		list_move_tail(&sch_ep->endpoint, &sch_bw->bw_ep_list);
+
+		ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
+		ep_ctx->reserved[0] |= cpu_to_le32(EP_BPKTS(sch_ep->pkts)
+			| EP_BCSCOUNT(sch_ep->cs_count)
+			| EP_BBM(sch_ep->burst_mode));
+		ep_ctx->reserved[1] |= cpu_to_le32(EP_BOFFSET(sch_ep->offset)
+			| EP_BREPEAT(sch_ep->repeat));
+
+		xhci_dbg(xhci, " PKTS:%x, CSCOUNT:%x, BM:%x, OFFSET:%x, REPEAT:%x\n",
+			sch_ep->pkts, sch_ep->cs_count, sch_ep->burst_mode,
+			sch_ep->offset, sch_ep->repeat);
+	}
+
+	return xhci_check_bandwidth(hcd, udev);
+}
+EXPORT_SYMBOL_GPL(xhci_mtk_check_bandwidth);
+
+void xhci_mtk_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
+{
+	struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd);
+	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+	struct mu3h_sch_bw_info *sch_bw;
+	struct mu3h_sch_ep_info *sch_ep, *tmp;
+	int bw_index;
+
+	xhci_dbg(xhci, "%s() udev %s\n", __func__, dev_name(&udev->dev));
+
+	list_for_each_entry_safe(sch_ep, tmp, &mtk->bw_ep_chk_list, endpoint) {
+		bw_index = get_bw_index(xhci, udev, sch_ep->ep);
+		sch_bw = &mtk->sch_array[bw_index];
+		destroy_sch_ep(udev, sch_bw, sch_ep);
+	}
+
+	xhci_reset_bandwidth(hcd, udev);
+}
+EXPORT_SYMBOL_GPL(xhci_mtk_reset_bandwidth);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-mtk.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-mtk.c
@@ -347,6 +347,8 @@
 static int xhci_mtk_setup(struct usb_hcd *hcd);
 static const struct xhci_driver_overrides xhci_mtk_overrides __initconst = {
 	.reset = xhci_mtk_setup,
+	.check_bandwidth = xhci_mtk_check_bandwidth,
+	.reset_bandwidth = xhci_mtk_reset_bandwidth,
 };
 
 static struct hc_driver __read_mostly xhci_mtk_hc_driver;
@@ -592,6 +594,9 @@
 	struct xhci_hcd	*xhci = hcd_to_xhci(hcd);
 	struct usb_hcd  *shared_hcd = xhci->shared_hcd;
 
+	pm_runtime_put_noidle(&dev->dev);
+	pm_runtime_disable(&dev->dev);
+
 	usb_remove_hcd(shared_hcd);
 	xhci->shared_hcd = NULL;
 	device_init_wakeup(&dev->dev, false);
@@ -602,8 +607,6 @@
 	xhci_mtk_sch_exit(mtk);
 	xhci_mtk_clks_disable(mtk);
 	xhci_mtk_ldos_disable(mtk);
-	pm_runtime_put_sync(&dev->dev);
-	pm_runtime_disable(&dev->dev);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-mtk.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-mtk.h
@@ -59,6 +59,7 @@
  * @ep_type: endpoint type
  * @maxpkt: max packet size of endpoint
  * @ep: address of usb_host_endpoint struct
+ * @allocated: the bandwidth is aready allocated from bus_bw
  * @offset: which uframe of the interval that transfer should be
  *		scheduled first time within the interval
  * @repeat: the time gap between two uframes that transfers are
@@ -86,6 +87,7 @@
 	u32 ep_type;
 	u32 maxpkt;
 	void *ep;
+	bool allocated;
 	/*
 	 * mtk xHCI scheduling information put into reserved DWs
 	 * in ep context
@@ -131,6 +133,7 @@
 	struct device *dev;
 	struct usb_hcd *hcd;
 	struct mu3h_sch_bw_info *sch_array;
+	struct list_head bw_ep_chk_list;
 	struct mu3c_ippc_regs __iomem *ippc_regs;
 	bool has_ippc;
 	int num_u2_ports;
@@ -166,6 +169,8 @@
 		struct usb_host_endpoint *ep);
 void xhci_mtk_drop_ep_quirk(struct usb_hcd *hcd, struct usb_device *udev,
 		struct usb_host_endpoint *ep);
+int xhci_mtk_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev);
+void xhci_mtk_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev);
 
 #else
 static inline int xhci_mtk_add_ep_quirk(struct usb_hcd *hcd,
@@ -179,6 +184,16 @@
 {
 }
 
+static inline int xhci_mtk_check_bandwidth(struct usb_hcd *hcd,
+		struct usb_device *udev)
+{
+	return 0;
+}
+
+static inline void xhci_mtk_reset_bandwidth(struct usb_hcd *hcd,
+		struct usb_device *udev)
+{
+}
 #endif
 
 #endif		/* _XHCI_MTK_H_ */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-mvebu.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-mvebu.c
@@ -8,6 +8,7 @@
 #include <linux/mbus.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
+#include <linux/phy/phy.h>
 
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
@@ -73,6 +74,47 @@
 
 	return 0;
 }
+
+int xhci_mvebu_a3700_plat_setup(struct usb_hcd *hcd)
+{
+	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+	struct device *dev = hcd->self.controller;
+	struct phy *phy;
+	int ret;
+
+	/* Old bindings miss the PHY handle */
+	phy = of_phy_get(dev->of_node, "usb3-phy");
+	if (IS_ERR(phy) && PTR_ERR(phy) == -EPROBE_DEFER)
+		return -EPROBE_DEFER;
+	else if (IS_ERR(phy))
+		goto phy_out;
+
+	ret = phy_init(phy);
+	if (ret)
+		goto phy_put;
+
+	ret = phy_set_mode(phy, PHY_MODE_USB_HOST_SS);
+	if (ret)
+		goto phy_exit;
+
+	ret = phy_power_on(phy);
+	if (ret == -EOPNOTSUPP) {
+		/* Skip initializatin of XHCI PHY when it is unsupported by firmware */
+		dev_warn(dev, "PHY unsupported by firmware\n");
+		xhci->quirks |= XHCI_SKIP_PHY_INIT;
+	}
+	if (ret)
+		goto phy_exit;
+
+	phy_power_off(phy);
+phy_exit:
+	phy_exit(phy);
+phy_put:
+	phy_put(phy);
+phy_out:
+
+	return 0;
+}
 
 int xhci_mvebu_a3700_init_quirk(struct usb_hcd *hcd)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-mvebu.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-mvebu.h
@@ -12,12 +12,18 @@
 
 #if IS_ENABLED(CONFIG_USB_XHCI_MVEBU)
 int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd);
+int xhci_mvebu_a3700_plat_setup(struct usb_hcd *hcd);
 int xhci_mvebu_a3700_init_quirk(struct usb_hcd *hcd);
 #else
 static inline int xhci_mvebu_mbus_init_quirk(struct usb_hcd *hcd)
 {
 	return 0;
 }
+
+static inline int xhci_mvebu_a3700_plat_setup(struct usb_hcd *hcd)
+{
+	return 0;
+}
 
 static inline int xhci_mvebu_a3700_init_quirk(struct usb_hcd *hcd)
 {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-pci.c
@@ -21,6 +21,8 @@
 #define SSIC_PORT_CFG2_OFFSET	0x30
 #define PROG_DONE		(1 << 30)
 #define SSIC_PORT_UNUSED	(1 << 31)
+#define SPARSE_DISABLE_BIT	17
+#define SPARSE_CNTL_ENABLE	0xC12C
 
 /* Device for a quirk */
 #define PCI_VENDOR_ID_FRESCO_LOGIC	0x1b73
@@ -43,17 +45,24 @@
 #define PCI_DEVICE_ID_INTEL_DNV_XHCI			0x19d0
 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_XHCI	0x15b5
 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_XHCI	0x15b6
+#define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_XHCI	0x15c1
 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_XHCI	0x15db
 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_XHCI	0x15d4
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI		0x15e9
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI		0x15ec
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI		0x15f0
+#define PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI		0x8a13
+#define PCI_DEVICE_ID_INTEL_CML_XHCI			0xa3af
 
 #define PCI_DEVICE_ID_AMD_PROMONTORYA_4			0x43b9
 #define PCI_DEVICE_ID_AMD_PROMONTORYA_3			0x43ba
 #define PCI_DEVICE_ID_AMD_PROMONTORYA_2			0x43bb
 #define PCI_DEVICE_ID_AMD_PROMONTORYA_1			0x43bc
+#define PCI_DEVICE_ID_ASMEDIA_1042_XHCI			0x1042
 #define PCI_DEVICE_ID_ASMEDIA_1042A_XHCI		0x1142
+#define PCI_DEVICE_ID_ASMEDIA_1142_XHCI			0x1242
+#define PCI_DEVICE_ID_ASMEDIA_2142_XHCI			0x2142
+#define PCI_DEVICE_ID_ASMEDIA_3242_XHCI			0x3242
 
 static const char hcd_name[] = "xhci_hcd";
 
@@ -134,7 +143,8 @@
 		xhci->quirks |= XHCI_AMD_PLL_FIX;
 
 	if (pdev->vendor == PCI_VENDOR_ID_AMD &&
-		(pdev->device == 0x15e0 ||
+		(pdev->device == 0x145c ||
+		 pdev->device == 0x15e0 ||
 		 pdev->device == 0x15e1 ||
 		 pdev->device == 0x43bb))
 		xhci->quirks |= XHCI_SUSPEND_DELAY;
@@ -143,6 +153,9 @@
 	    (pdev->device == 0x15e0 || pdev->device == 0x15e1))
 		xhci->quirks |= XHCI_SNPS_BROKEN_SUSPEND;
 
+	if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->device == 0x15e5)
+		xhci->quirks |= XHCI_DISABLE_SPARSE;
+
 	if (pdev->vendor == PCI_VENDOR_ID_AMD)
 		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
 
@@ -186,7 +199,8 @@
 		 pdev->device == PCI_DEVICE_ID_INTEL_BROXTON_M_XHCI ||
 		 pdev->device == PCI_DEVICE_ID_INTEL_BROXTON_B_XHCI ||
 		 pdev->device == PCI_DEVICE_ID_INTEL_APL_XHCI ||
-		 pdev->device == PCI_DEVICE_ID_INTEL_DNV_XHCI)) {
+		 pdev->device == PCI_DEVICE_ID_INTEL_DNV_XHCI ||
+		 pdev->device == PCI_DEVICE_ID_INTEL_CML_XHCI)) {
 		xhci->quirks |= XHCI_PME_STUCK_QUIRK;
 	}
 	if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
@@ -208,11 +222,13 @@
 	if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
 	    (pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_XHCI ||
 	     pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_XHCI ||
+	     pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_XHCI ||
 	     pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_XHCI ||
 	     pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_XHCI ||
 	     pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI ||
 	     pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI ||
-	     pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI))
+	     pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI ||
+	     pdev->device == PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI))
 		xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
 
 	if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
@@ -240,11 +256,18 @@
 		xhci->quirks |= XHCI_BROKEN_STREAMS;
 
 	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
-			pdev->device == 0x1042)
+		pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
 		xhci->quirks |= XHCI_BROKEN_STREAMS;
 	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
-			pdev->device == 0x1142)
+		pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) {
 		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
+		xhci->quirks |= XHCI_NO_64BIT_SUPPORT;
+	}
+	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
+	    (pdev->device == PCI_DEVICE_ID_ASMEDIA_1142_XHCI ||
+	     pdev->device == PCI_DEVICE_ID_ASMEDIA_2142_XHCI ||
+	     pdev->device == PCI_DEVICE_ID_ASMEDIA_3242_XHCI))
+		xhci->quirks |= XHCI_NO_64BIT_SUPPORT;
 
 	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 		pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI)
@@ -258,6 +281,11 @@
 	     pdev->device == 0x9026)
 		xhci->quirks |= XHCI_RESET_PLL_ON_DISCONNECT;
 
+	if (pdev->vendor == PCI_VENDOR_ID_AMD &&
+	    (pdev->device == PCI_DEVICE_ID_AMD_PROMONTORYA_2 ||
+	     pdev->device == PCI_DEVICE_ID_AMD_PROMONTORYA_4))
+		xhci->quirks |= XHCI_NO_SOFT_RETRY;
+
 	if (xhci->quirks & XHCI_RESET_ON_RESUME)
 		xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
 				"QUIRK: Resetting on resume");
@@ -300,6 +328,9 @@
 	if (!usb_hcd_is_primary_hcd(hcd))
 		return 0;
 
+	if (xhci->quirks & XHCI_PME_STUCK_QUIRK)
+		xhci_pme_acpi_rtd3_enable(pdev);
+
 	xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn);
 
 	/* Find any debug ports */
@@ -357,9 +388,6 @@
 			HCC_MAX_PSA(xhci->hcc_params) >= 4)
 		xhci->shared_hcd->can_do_streams = 1;
 
-	if (xhci->quirks & XHCI_PME_STUCK_QUIRK)
-		xhci_pme_acpi_rtd3_enable(dev);
-
 	/* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */
 	pm_runtime_put_noidle(&dev->dev);
 
@@ -455,6 +483,15 @@
 	readl(reg);
 }
 
+static void xhci_sparse_control_quirk(struct usb_hcd *hcd)
+{
+	u32 reg;
+
+	reg = readl(hcd->regs + SPARSE_CNTL_ENABLE);
+	reg &= ~BIT(SPARSE_DISABLE_BIT);
+	writel(reg, hcd->regs + SPARSE_CNTL_ENABLE);
+}
+
 static int xhci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
 {
 	struct xhci_hcd	*xhci = hcd_to_xhci(hcd);
@@ -474,6 +511,9 @@
 	if (xhci->quirks & XHCI_SSIC_PORT_UNUSED)
 		xhci_ssic_port_unused_quirk(hcd, true);
 
+	if (xhci->quirks & XHCI_DISABLE_SPARSE)
+		xhci_sparse_control_quirk(hcd);
+
 	ret = xhci_suspend(xhci, do_wakeup);
 	if (ret && (xhci->quirks & XHCI_SSIC_PORT_UNUSED))
 		xhci_ssic_port_unused_quirk(hcd, false);
@@ -517,6 +557,18 @@
 	retval = xhci_resume(xhci, hibernated);
 	return retval;
 }
+
+static void xhci_pci_shutdown(struct usb_hcd *hcd)
+{
+	struct xhci_hcd		*xhci = hcd_to_xhci(hcd);
+	struct pci_dev		*pdev = to_pci_dev(hcd->self.controller);
+
+	xhci_shutdown(hcd);
+
+	/* Yet another workaround for spurious wakeups at shutdown with HSW */
+	if (xhci->quirks & XHCI_SPURIOUS_WAKEUP)
+		pci_set_power_state(pdev, PCI_D3hot);
+}
 #endif /* CONFIG_PM */
 
 /*-------------------------------------------------------------------------*/
@@ -554,6 +606,7 @@
 #ifdef CONFIG_PM
 	xhci_pci_hc_driver.pci_suspend = xhci_pci_suspend;
 	xhci_pci_hc_driver.pci_resume = xhci_pci_resume;
+	xhci_pci_hc_driver.shutdown = xhci_pci_shutdown;
 #endif
 	return pci_register_driver(&xhci_pci_driver);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-plat.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-plat.c
@@ -44,6 +44,16 @@
 		priv->plat_start(hcd);
 }
 
+static int xhci_priv_plat_setup(struct usb_hcd *hcd)
+{
+	struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd);
+
+	if (!priv->plat_setup)
+		return 0;
+
+	return priv->plat_setup(hcd);
+}
+
 static int xhci_priv_init_quirk(struct usb_hcd *hcd)
 {
 	struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd);
@@ -101,6 +111,7 @@
 };
 
 static const struct xhci_plat_priv xhci_plat_marvell_armada3700 = {
+	.plat_setup = xhci_mvebu_a3700_plat_setup,
 	.init_quirk = xhci_mvebu_a3700_init_quirk,
 };
 
@@ -163,6 +174,8 @@
 	struct usb_hcd		*hcd;
 	int			ret;
 	int			irq;
+	struct xhci_plat_priv	*priv = NULL;
+
 
 	if (usb_disabled())
 		return -ENODEV;
@@ -257,8 +270,7 @@
 
 	priv_match = of_device_get_match_data(&pdev->dev);
 	if (priv_match) {
-		struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd);
-
+		priv = hcd_to_xhci_priv(hcd);
 		/* Just copy data for now */
 		if (priv_match)
 			*priv = *priv_match;
@@ -307,6 +319,16 @@
 
 	hcd->tpl_support = of_usb_host_tpl_support(sysdev->of_node);
 	xhci->shared_hcd->tpl_support = hcd->tpl_support;
+
+	if (priv) {
+		ret = xhci_priv_plat_setup(hcd);
+		if (ret)
+			goto disable_usb_phy;
+	}
+
+	if ((xhci->quirks & XHCI_SKIP_PHY_INIT) || (priv && (priv->quirks & XHCI_SKIP_PHY_INIT)))
+		hcd->skip_phy_initialization = 1;
+
 	ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
 	if (ret)
 		goto disable_usb_phy;
@@ -363,6 +385,7 @@
 	struct clk *reg_clk = xhci->reg_clk;
 	struct usb_hcd *shared_hcd = xhci->shared_hcd;
 
+	pm_runtime_get_sync(&dev->dev);
 	xhci->xhc_state |= XHCI_STATE_REMOVING;
 
 	usb_remove_hcd(shared_hcd);
@@ -376,8 +399,9 @@
 	clk_disable_unprepare(reg_clk);
 	usb_put_hcd(hcd);
 
-	pm_runtime_set_suspended(&dev->dev);
 	pm_runtime_disable(&dev->dev);
+	pm_runtime_put_noidle(&dev->dev);
+	pm_runtime_set_suspended(&dev->dev);
 
 	return 0;
 }
@@ -445,6 +469,7 @@
 static struct platform_driver usb_xhci_driver = {
 	.probe	= xhci_plat_probe,
 	.remove	= xhci_plat_remove,
+	.shutdown = usb_hcd_platform_shutdown,
 	.driver	= {
 		.name = "xhci-hcd",
 		.pm = &xhci_plat_pm_ops,
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-plat.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-plat.h
@@ -13,6 +13,7 @@
 struct xhci_plat_priv {
 	const char *firmware_name;
 	unsigned long long quirks;
+	int (*plat_setup)(struct usb_hcd *);
 	void (*plat_start)(struct usb_hcd *);
 	int (*init_quirk)(struct usb_hcd *);
 	int (*resume_quirk)(struct usb_hcd *);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-ring.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-ring.c
@@ -541,6 +541,23 @@
 				stream_id);
 		return;
 	}
+	/*
+	 * A cancelled TD can complete with a stall if HW cached the trb.
+	 * In this case driver can't find cur_td, but if the ring is empty we
+	 * can move the dequeue pointer to the current enqueue position.
+	 */
+	if (!cur_td) {
+		if (list_empty(&ep_ring->td_list)) {
+			state->new_deq_seg = ep_ring->enq_seg;
+			state->new_deq_ptr = ep_ring->enqueue;
+			state->new_cycle_state = ep_ring->cycle_state;
+			goto done;
+		} else {
+			xhci_warn(xhci, "Can't find new dequeue state, missing cur_td\n");
+			return;
+		}
+	}
+
 	/* Dig out the cycle state saved by the xHC during the stop ep cmd */
 	xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
 			"Finding endpoint context");
@@ -586,6 +603,7 @@
 	state->new_deq_seg = new_seg;
 	state->new_deq_ptr = new_deq;
 
+done:
 	/* Don't update the ring cycle state for the producer (us). */
 	xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
 			"Cycle state = 0x%x", state->new_cycle_state);
@@ -677,11 +695,16 @@
 	dma_unmap_single(dev, seg->bounce_dma, ring->bounce_buf_len,
 			 DMA_FROM_DEVICE);
 	/* for in tranfers we need to copy the data from bounce to sg */
-	len = sg_pcopy_from_buffer(urb->sg, urb->num_sgs, seg->bounce_buf,
-			     seg->bounce_len, seg->bounce_offs);
-	if (len != seg->bounce_len)
-		xhci_warn(xhci, "WARN Wrong bounce buffer read length: %zu != %d\n",
-				len, seg->bounce_len);
+	if (urb->num_sgs) {
+		len = sg_pcopy_from_buffer(urb->sg, urb->num_sgs, seg->bounce_buf,
+					   seg->bounce_len, seg->bounce_offs);
+		if (len != seg->bounce_len)
+			xhci_warn(xhci, "WARN Wrong bounce buffer read length: %zu != %d\n",
+				  len, seg->bounce_len);
+	} else {
+		memcpy(urb->transfer_buffer + seg->bounce_offs, seg->bounce_buf,
+		       seg->bounce_len);
+	}
 	seg->bounce_len = 0;
 	seg->bounce_offs = 0;
 }
@@ -1624,7 +1647,6 @@
 		slot_id = xhci_find_slot_id_by_port(hcd, xhci, hcd_portnum + 1);
 		if (slot_id && xhci->devs[slot_id])
 			xhci->devs[slot_id]->flags |= VDEV_PORT_ERROR;
-		bus_state->port_remote_wakeup &= ~(1 << hcd_portnum);
 	}
 
 	if ((portsc & PORT_PLC) && (portsc & PORT_PLS_MASK) == XDEV_RESUME) {
@@ -1644,6 +1666,7 @@
 			 */
 			bus_state->port_remote_wakeup |= 1 << hcd_portnum;
 			xhci_test_and_clear_bit(xhci, port, PORT_PLC);
+			usb_hcd_start_port_resume(&hcd->self, hcd_portnum);
 			xhci_set_link_state(xhci, port, XDEV_U0);
 			/* Need to wait until the next link state change
 			 * indicates the device is actually in U0.
@@ -1673,6 +1696,7 @@
 	     (portsc & PORT_PLS_MASK) == XDEV_U1 ||
 	     (portsc & PORT_PLS_MASK) == XDEV_U2)) {
 		xhci_dbg(xhci, "resume SS port %d finished\n", port_id);
+		complete(&bus_state->u3exit_done[hcd_portnum]);
 		/* We've just brought the device into U0/1/2 through either the
 		 * Resume state after a device remote wakeup, or through the
 		 * U3Exit state after a host-initiated resume.  If it's a device
@@ -1684,7 +1708,6 @@
 		if (slot_id && xhci->devs[slot_id])
 			xhci_ring_device(xhci, slot_id);
 		if (bus_state->port_remote_wakeup & (1 << hcd_portnum)) {
-			bus_state->port_remote_wakeup &= ~(1 << hcd_portnum);
 			xhci_test_and_clear_bit(xhci, port, PORT_PLC);
 			usb_wakeup_notification(hcd->self.root_hub,
 					hcd_portnum + 1);
@@ -1848,8 +1871,8 @@
 
 	if (reset_type == EP_HARD_RESET) {
 		ep->ep_state |= EP_HARD_CLEAR_TOGGLE;
-		xhci_cleanup_stalled_ring(xhci, ep_index, stream_id, td);
-		xhci_clear_hub_tt_buffer(xhci, td, ep);
+		xhci_cleanup_stalled_ring(xhci, slot_id, ep_index, stream_id,
+					  td);
 	}
 	xhci_ring_cmd_db(xhci);
 }
@@ -1970,11 +1993,18 @@
 	if (trb_comp_code == COMP_STALL_ERROR ||
 		xhci_requires_manual_halt_cleanup(xhci, ep_ctx,
 						trb_comp_code)) {
-		/* Issue a reset endpoint command to clear the host side
-		 * halt, followed by a set dequeue command to move the
-		 * dequeue pointer past the TD.
-		 * The class driver clears the device side halt later.
+		/*
+		 * xhci internal endpoint state will go to a "halt" state for
+		 * any stall, including default control pipe protocol stall.
+		 * To clear the host side halt we need to issue a reset endpoint
+		 * command, followed by a set dequeue command to move past the
+		 * TD.
+		 * Class drivers clear the device side halt from a functional
+		 * stall later. Hub TT buffer should only be cleared for FS/LS
+		 * devices behind HS hubs for functional stalls.
 		 */
+		if ((ep_index != 0) || (trb_comp_code != COMP_STALL_ERROR))
+			xhci_clear_hub_tt_buffer(xhci, td, ep);
 		xhci_cleanup_halted_endpoint(xhci, slot_id, ep_index,
 					ep_ring->stream_id, td, EP_HARD_RESET);
 	} else {
@@ -2269,7 +2299,8 @@
 		remaining	= 0;
 		break;
 	case COMP_USB_TRANSACTION_ERROR:
-		if ((ep_ring->err_count++ > MAX_SOFT_RETRY) ||
+		if (xhci->quirks & XHCI_NO_SOFT_RETRY ||
+		    (ep_ring->err_count++ > MAX_SOFT_RETRY) ||
 		    le32_to_cpu(slot_ctx->tt_info) & TT_SLOT)
 			break;
 		*status = 0;
@@ -2378,7 +2409,8 @@
 	case COMP_SUCCESS:
 		if (EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)) == 0)
 			break;
-		if (xhci->quirks & XHCI_TRUST_TX_LENGTH)
+		if (xhci->quirks & XHCI_TRUST_TX_LENGTH ||
+		    ep_ring->last_td_was_short)
 			trb_comp_code = COMP_SHORT_PACKET;
 		else
 			xhci_warn_ratelimited(xhci,
@@ -2526,6 +2558,15 @@
 				xhci_dbg(xhci, "td_list is empty while skip flag set. Clear skip flag for slot %u ep %u.\n",
 					 slot_id, ep_index);
 			}
+			if (trb_comp_code == COMP_STALL_ERROR ||
+			    xhci_requires_manual_halt_cleanup(xhci, ep_ctx,
+							      trb_comp_code)) {
+				xhci_cleanup_halted_endpoint(xhci, slot_id,
+							     ep_index,
+							     ep_ring->stream_id,
+							     NULL,
+							     EP_HARD_RESET);
+			}
 			goto cleanup;
 		}
 
@@ -2741,6 +2782,42 @@
 }
 
 /*
+ * Update Event Ring Dequeue Pointer:
+ * - When all events have finished
+ * - To avoid "Event Ring Full Error" condition
+ */
+static void xhci_update_erst_dequeue(struct xhci_hcd *xhci,
+		union xhci_trb *event_ring_deq)
+{
+	u64 temp_64;
+	dma_addr_t deq;
+
+	temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue);
+	/* If necessary, update the HW's version of the event ring deq ptr. */
+	if (event_ring_deq != xhci->event_ring->dequeue) {
+		deq = xhci_trb_virt_to_dma(xhci->event_ring->deq_seg,
+				xhci->event_ring->dequeue);
+		if (deq == 0)
+			xhci_warn(xhci, "WARN something wrong with SW event ring dequeue ptr\n");
+		/*
+		 * Per 4.9.4, Software writes to the ERDP register shall
+		 * always advance the Event Ring Dequeue Pointer value.
+		 */
+		if ((temp_64 & (u64) ~ERST_PTR_MASK) ==
+				((u64) deq & (u64) ~ERST_PTR_MASK))
+			return;
+
+		/* Update HC event ring dequeue pointer */
+		temp_64 &= ERST_PTR_MASK;
+		temp_64 |= ((u64) deq & (u64) ~ERST_PTR_MASK);
+	}
+
+	/* Clear the event handler busy flag (RW1C) */
+	temp_64 |= ERST_EHB;
+	xhci_write_64(xhci, temp_64, &xhci->ir_set->erst_dequeue);
+}
+
+/*
  * xHCI spec says we can get an interrupt, and if the HC has an error condition,
  * we might get bad data out of the event ring.  Section 4.10.2.7 has a list of
  * indicators of an event TRB error, but we check the status *first* to be safe.
@@ -2751,9 +2828,9 @@
 	union xhci_trb *event_ring_deq;
 	irqreturn_t ret = IRQ_NONE;
 	unsigned long flags;
-	dma_addr_t deq;
 	u64 temp_64;
 	u32 status;
+	int event_loop = 0;
 
 	spin_lock_irqsave(&xhci->lock, flags);
 	/* Check if the xHC generated the interrupt, or the irq is shared */
@@ -2807,24 +2884,14 @@
 	/* FIXME this should be a delayed service routine
 	 * that clears the EHB.
 	 */
-	while (xhci_handle_event(xhci) > 0) {}
-
-	temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue);
-	/* If necessary, update the HW's version of the event ring deq ptr. */
-	if (event_ring_deq != xhci->event_ring->dequeue) {
-		deq = xhci_trb_virt_to_dma(xhci->event_ring->deq_seg,
-				xhci->event_ring->dequeue);
-		if (deq == 0)
-			xhci_warn(xhci, "WARN something wrong with SW event "
-					"ring dequeue ptr.\n");
-		/* Update HC event ring dequeue pointer */
-		temp_64 &= ERST_PTR_MASK;
-		temp_64 |= ((u64) deq & (u64) ~ERST_PTR_MASK);
+	while (xhci_handle_event(xhci) > 0) {
+		if (event_loop++ < TRBS_PER_SEGMENT / 2)
+			continue;
+		xhci_update_erst_dequeue(xhci, event_ring_deq);
+		event_loop = 0;
 	}
 
-	/* Clear the event handler busy flag (RW1C); event ring is empty. */
-	temp_64 |= ERST_EHB;
-	xhci_write_64(xhci, temp_64, &xhci->ir_set->erst_dequeue);
+	xhci_update_erst_dequeue(xhci, event_ring_deq);
 	ret = IRQ_HANDLED;
 
 out:
@@ -2857,6 +2924,8 @@
 	trb->field[0] = cpu_to_le32(field1);
 	trb->field[1] = cpu_to_le32(field2);
 	trb->field[2] = cpu_to_le32(field3);
+	/* make sure TRB is fully written before giving it to the controller */
+	wmb();
 	trb->field[3] = cpu_to_le32(field4);
 
 	trace_xhci_queue_trb(ring, trb);
@@ -3200,12 +3269,16 @@
 
 	/* create a max max_pkt sized bounce buffer pointed to by last trb */
 	if (usb_urb_dir_out(urb)) {
-		len = sg_pcopy_to_buffer(urb->sg, urb->num_sgs,
-				   seg->bounce_buf, new_buff_len, enqd_len);
-		if (len != new_buff_len)
-			xhci_warn(xhci,
-				"WARN Wrong bounce buffer write length: %zu != %d\n",
-				len, new_buff_len);
+		if (urb->num_sgs) {
+			len = sg_pcopy_to_buffer(urb->sg, urb->num_sgs,
+						 seg->bounce_buf, new_buff_len, enqd_len);
+			if (len != new_buff_len)
+				xhci_warn(xhci, "WARN Wrong bounce buffer write length: %zu != %d\n",
+					  len, new_buff_len);
+		} else {
+			memcpy(seg->bounce_buf, urb->transfer_buffer + enqd_len, new_buff_len);
+		}
+
 		seg->bounce_dma = dma_map_single(dev, seg->bounce_buf,
 						 max_pkt, DMA_TO_DEVICE);
 	} else {
@@ -3360,8 +3433,8 @@
 			/* New sg entry */
 			--num_sgs;
 			sent_len -= block_len;
-			if (num_sgs != 0) {
-				sg = sg_next(sg);
+			sg = sg_next(sg);
+			if (num_sgs != 0 && sg) {
 				block_len = sg_dma_len(sg);
 				addr = (u64) sg_dma_address(sg);
 				addr += sent_len;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-tegra.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-tegra.c
@@ -562,6 +562,13 @@
 								     enable);
 			if (err < 0)
 				break;
+
+			/*
+			 * wait 500us for LFPS detector to be disabled before
+			 * sending ACK
+			 */
+			if (!enable)
+				usleep_range(500, 1000);
 		}
 
 		if (err < 0) {
@@ -755,7 +762,6 @@
 {
 	struct tegra_xusb *tegra = dev_get_drvdata(dev);
 
-	tegra_xusb_phy_disable(tegra);
 	regulator_bulk_disable(tegra->soc->num_supplies, tegra->supplies);
 	tegra_xusb_clk_disable(tegra);
 
@@ -779,16 +785,8 @@
 		goto disable_clk;
 	}
 
-	err = tegra_xusb_phy_enable(tegra);
-	if (err < 0) {
-		dev_err(dev, "failed to enable PHYs: %d\n", err);
-		goto disable_regulator;
-	}
-
 	return 0;
 
-disable_regulator:
-	regulator_bulk_disable(tegra->soc->num_supplies, tegra->supplies);
 disable_clk:
 	tegra_xusb_clk_disable(tegra);
 	return err;
@@ -1181,6 +1179,12 @@
 	 */
 	platform_set_drvdata(pdev, tegra);
 
+	err = tegra_xusb_phy_enable(tegra);
+	if (err < 0) {
+		dev_err(&pdev->dev, "failed to enable PHYs: %d\n", err);
+		goto put_hcd;
+	}
+
 	pm_runtime_enable(&pdev->dev);
 	if (pm_runtime_enabled(&pdev->dev))
 		err = pm_runtime_get_sync(&pdev->dev);
@@ -1189,7 +1193,7 @@
 
 	if (err < 0) {
 		dev_err(&pdev->dev, "failed to enable device: %d\n", err);
-		goto disable_rpm;
+		goto disable_phy;
 	}
 
 	tegra_xusb_config(tegra, regs);
@@ -1275,9 +1279,11 @@
 put_rpm:
 	if (!pm_runtime_status_suspended(&pdev->dev))
 		tegra_xusb_runtime_suspend(&pdev->dev);
-disable_rpm:
-	pm_runtime_disable(&pdev->dev);
+put_hcd:
 	usb_put_hcd(tegra->hcd);
+disable_phy:
+	tegra_xusb_phy_disable(tegra);
+	pm_runtime_disable(&pdev->dev);
 put_powerdomains:
 	if (!of_property_read_bool(pdev->dev.of_node, "power-domains")) {
 		tegra_powergate_power_off(TEGRA_POWERGATE_XUSBC);
@@ -1314,6 +1320,8 @@
 		tegra_xusb_powerdomain_remove(&pdev->dev, tegra);
 	}
 
+	tegra_xusb_phy_disable(tegra);
+
 	tegra_xusb_padctl_put(tegra->padctl);
 
 	return 0;
@@ -1412,6 +1420,7 @@
 
 static const char * const tegra186_supply_names[] = {
 };
+MODULE_FIRMWARE("nvidia/tegra186/xusb.bin");
 
 static const struct tegra_xusb_phy_type tegra186_phy_types[] = {
 	{ .name = "usb3", .num = 3, },
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci-trace.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci-trace.h
@@ -289,23 +289,12 @@
 	),
 	TP_printk("ep%d%s-%s: urb %p pipe %u slot %d length %d/%d sgs %d/%d stream %d flags %08x",
 			__entry->epnum, __entry->dir_in ? "in" : "out",
-			({ char *s;
-			switch (__entry->type) {
-			case USB_ENDPOINT_XFER_INT:
-				s = "intr";
-				break;
-			case USB_ENDPOINT_XFER_CONTROL:
-				s = "control";
-				break;
-			case USB_ENDPOINT_XFER_BULK:
-				s = "bulk";
-				break;
-			case USB_ENDPOINT_XFER_ISOC:
-				s = "isoc";
-				break;
-			default:
-				s = "UNKNOWN";
-			} s; }), __entry->urb, __entry->pipe, __entry->slot_id,
+			__print_symbolic(__entry->type,
+				   { USB_ENDPOINT_XFER_INT,	"intr" },
+				   { USB_ENDPOINT_XFER_CONTROL,	"control" },
+				   { USB_ENDPOINT_XFER_BULK,	"bulk" },
+				   { USB_ENDPOINT_XFER_ISOC,	"isoc" }),
+			__entry->urb, __entry->pipe, __entry->slot_id,
 			__entry->actual, __entry->length, __entry->num_mapped_sgs,
 			__entry->num_sgs, __entry->stream, __entry->flags
 		)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci.c
@@ -770,7 +770,7 @@
  *
  * This will only ever be called with the main usb_hcd (the USB3 roothub).
  */
-static void xhci_shutdown(struct usb_hcd *hcd)
+void xhci_shutdown(struct usb_hcd *hcd)
 {
 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
 
@@ -789,11 +789,8 @@
 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
 			"xhci_shutdown completed - status = %x",
 			readl(&xhci->op_regs->status));
-
-	/* Yet another workaround for spurious wakeups at shutdown with HSW */
-	if (xhci->quirks & XHCI_SPURIOUS_WAKEUP)
-		pci_set_power_state(to_pci_dev(hcd->self.sysdev), PCI_D3hot);
 }
+EXPORT_SYMBOL_GPL(xhci_shutdown);
 
 #ifdef CONFIG_PM
 static void xhci_save_registers(struct xhci_hcd *xhci)
@@ -886,44 +883,42 @@
 	xhci_set_cmd_ring_deq(xhci);
 }
 
-static void xhci_disable_port_wake_on_bits(struct xhci_hcd *xhci)
+/*
+ * Disable port wake bits if do_wakeup is not set.
+ *
+ * Also clear a possible internal port wake state left hanging for ports that
+ * detected termination but never successfully enumerated (trained to 0U).
+ * Internal wake causes immediate xHCI wake after suspend. PORT_CSC write done
+ * at enumeration clears this wake, force one here as well for unconnected ports
+ */
+
+static void xhci_disable_hub_port_wake(struct xhci_hcd *xhci,
+				       struct xhci_hub *rhub,
+				       bool do_wakeup)
 {
-	struct xhci_port **ports;
-	int port_index;
 	unsigned long flags;
 	u32 t1, t2, portsc;
+	int i;
 
 	spin_lock_irqsave(&xhci->lock, flags);
 
-	/* disable usb3 ports Wake bits */
-	port_index = xhci->usb3_rhub.num_ports;
-	ports = xhci->usb3_rhub.ports;
-	while (port_index--) {
-		t1 = readl(ports[port_index]->addr);
-		portsc = t1;
-		t1 = xhci_port_state_to_neutral(t1);
-		t2 = t1 & ~PORT_WAKE_BITS;
-		if (t1 != t2) {
-			writel(t2, ports[port_index]->addr);
-			xhci_dbg(xhci, "disable wake bits port %d-%d, portsc: 0x%x, write: 0x%x\n",
-				 xhci->usb3_rhub.hcd->self.busnum,
-				 port_index + 1, portsc, t2);
-		}
-	}
+	for (i = 0; i < rhub->num_ports; i++) {
+		portsc = readl(rhub->ports[i]->addr);
+		t1 = xhci_port_state_to_neutral(portsc);
+		t2 = t1;
+
+		/* clear wake bits if do_wake is not set */
+		if (!do_wakeup)
+			t2 &= ~PORT_WAKE_BITS;
+
+		/* Don't touch csc bit if connected or connect change is set */
+		if (!(portsc & (PORT_CSC | PORT_CONNECT)))
+			t2 |= PORT_CSC;
 
-	/* disable usb2 ports Wake bits */
-	port_index = xhci->usb2_rhub.num_ports;
-	ports = xhci->usb2_rhub.ports;
-	while (port_index--) {
-		t1 = readl(ports[port_index]->addr);
-		portsc = t1;
-		t1 = xhci_port_state_to_neutral(t1);
-		t2 = t1 & ~PORT_WAKE_BITS;
 		if (t1 != t2) {
-			writel(t2, ports[port_index]->addr);
-			xhci_dbg(xhci, "disable wake bits port %d-%d, portsc: 0x%x, write: 0x%x\n",
-				 xhci->usb2_rhub.hcd->self.busnum,
-				 port_index + 1, portsc, t2);
+			writel(t2, rhub->ports[i]->addr);
+			xhci_dbg(xhci, "config port %d-%d wake bits, portsc: 0x%x, write: 0x%x\n",
+				 rhub->hcd->self.busnum, i + 1, portsc, t2);
 		}
 	}
 	spin_unlock_irqrestore(&xhci->lock, flags);
@@ -973,7 +968,7 @@
 int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup)
 {
 	int			rc = 0;
-	unsigned int		delay = XHCI_MAX_HALT_USEC;
+	unsigned int		delay = XHCI_MAX_HALT_USEC * 2;
 	struct usb_hcd		*hcd = xhci_to_hcd(xhci);
 	u32			command;
 	u32			res;
@@ -985,11 +980,14 @@
 			xhci->shared_hcd->state != HC_STATE_SUSPENDED)
 		return -EINVAL;
 
-	xhci_dbc_suspend(xhci);
-
 	/* Clear root port wake on bits if wakeup not allowed. */
-	if (!do_wakeup)
-		xhci_disable_port_wake_on_bits(xhci);
+	xhci_disable_hub_port_wake(xhci, &xhci->usb3_rhub, do_wakeup);
+	xhci_disable_hub_port_wake(xhci, &xhci->usb2_rhub, do_wakeup);
+
+	if (!HCD_HW_ACCESSIBLE(hcd))
+		return 0;
+
+	xhci_dbc_suspend(xhci);
 
 	/* Don't poll the roothubs on bus suspend. */
 	xhci_dbg(xhci, "%s: stopping port polling.\n", __func__);
@@ -1088,6 +1086,7 @@
 	struct usb_hcd		*secondary_hcd;
 	int			retval = 0;
 	bool			comp_timer_running = false;
+	bool			pending_portevent = false;
 
 	if (!hcd->state)
 		return 0;
@@ -1160,8 +1159,10 @@
 		xhci_dbg(xhci, "Stop HCD\n");
 		xhci_halt(xhci);
 		xhci_zero_64b_regs(xhci);
-		xhci_reset(xhci);
+		retval = xhci_reset(xhci);
 		spin_unlock_irq(&xhci->lock);
+		if (retval)
+			return retval;
 		xhci_cleanup_msix(xhci);
 
 		xhci_dbg(xhci, "// Disabling event ring interrupts\n");
@@ -1224,13 +1225,22 @@
 
  done:
 	if (retval == 0) {
-		/* Resume root hubs only when have pending events. */
-		if (xhci_pending_portevent(xhci)) {
+		/*
+		 * 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.
+		 */
+		pending_portevent = xhci_pending_portevent(xhci);
+		if (!pending_portevent) {
+			msleep(120);
+			pending_portevent = xhci_pending_portevent(xhci);
+		}
+
+		if (pending_portevent) {
 			usb_hcd_resume_root_hub(xhci->shared_hcd);
 			usb_hcd_resume_root_hub(hcd);
 		}
 	}
-
 	/*
 	 * If system is subject to the Quirk, Compliance Mode Timer needs to
 	 * be re-initialized Always after a system resume. Ports are subject
@@ -1431,6 +1441,7 @@
 				xhci->devs[slot_id]->out_ctx, ep_index);
 
 		ep_ctx = xhci_get_ep_ctx(xhci, command->in_ctx, ep_index);
+		ep_ctx->ep_info &= cpu_to_le32(~EP_STATE_MASK);/* must clear */
 		ep_ctx->ep_info2 &= cpu_to_le32(~MAX_PACKET_MASK);
 		ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet_size));
 
@@ -1915,8 +1926,6 @@
 	ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
 	trace_xhci_add_endpoint(ep_ctx);
 
-	xhci_debugfs_create_endpoint(xhci, virt_dev, ep_index);
-
 	xhci_dbg(xhci, "add ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
 			(unsigned int) ep->desc.bEndpointAddress,
 			udev->slot_id,
@@ -2860,7 +2869,7 @@
  * else should be touching the xhci->devs[slot_id] structure, so we
  * don't need to take the xhci->lock for manipulating that.
  */
-static int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
+int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
 {
 	int i;
 	int ret = 0;
@@ -2949,6 +2958,7 @@
 		xhci_check_bw_drop_ep_streams(xhci, virt_dev, i);
 		virt_dev->eps[i].ring = virt_dev->eps[i].new_ring;
 		virt_dev->eps[i].new_ring = NULL;
+		xhci_debugfs_create_endpoint(xhci, virt_dev, i);
 	}
 command_cleanup:
 	kfree(command->completion);
@@ -2957,7 +2967,7 @@
 	return ret;
 }
 
-static void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
+void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
 {
 	struct xhci_hcd *xhci;
 	struct xhci_virt_device	*virt_dev;
@@ -3032,19 +3042,19 @@
 			added_ctxs, added_ctxs);
 }
 
-void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, unsigned int ep_index,
-			       unsigned int stream_id, struct xhci_td *td)
+void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, unsigned int slot_id,
+			       unsigned int ep_index, unsigned int stream_id,
+			       struct xhci_td *td)
 {
 	struct xhci_dequeue_state deq_state;
-	struct usb_device *udev = td->urb->dev;
 
 	xhci_dbg_trace(xhci, trace_xhci_dbg_reset_ep,
 			"Cleaning up stalled endpoint ring");
 	/* We need to move the HW's dequeue pointer past this TD,
 	 * or it will attempt to resend it on the next doorbell ring.
 	 */
-	xhci_find_new_dequeue_state(xhci, udev->slot_id,
-			ep_index, stream_id, td, &deq_state);
+	xhci_find_new_dequeue_state(xhci, slot_id, ep_index, stream_id, td,
+				    &deq_state);
 
 	if (!deq_state.new_deq_ptr || !deq_state.new_deq_seg)
 		return;
@@ -3055,7 +3065,7 @@
 	if (!(xhci->quirks & XHCI_RESET_EP_QUIRK)) {
 		xhci_dbg_trace(xhci, trace_xhci_dbg_reset_ep,
 				"Queueing new dequeue state");
-		xhci_queue_new_dequeue_state(xhci, udev->slot_id,
+		xhci_queue_new_dequeue_state(xhci, slot_id,
 				ep_index, &deq_state);
 	} else {
 		/* Better hope no one uses the input context between now and the
@@ -3066,7 +3076,7 @@
 		xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
 				"Setting up input context for "
 				"configure endpoint command");
-		xhci_setup_input_ctx_for_quirk(xhci, udev->slot_id,
+		xhci_setup_input_ctx_for_quirk(xhci, slot_id,
 				ep_index, &deq_state);
 	}
 }
@@ -3236,10 +3246,11 @@
 
 	wait_for_completion(cfg_cmd->completion);
 
-	ep->ep_state &= ~EP_SOFT_CLEAR_TOGGLE;
 	xhci_free_command(xhci, cfg_cmd);
 cleanup:
 	xhci_free_command(xhci, stop_cmd);
+	if (ep->ep_state & EP_SOFT_CLEAR_TOGGLE)
+		ep->ep_state &= ~EP_SOFT_CLEAR_TOGGLE;
 }
 
 static int xhci_check_streams_endpoint(struct xhci_hcd *xhci,
@@ -4391,6 +4402,9 @@
 	int		hird, exit_latency;
 	int		ret;
 
+	if (xhci->quirks & XHCI_HW_LPM_DISABLE)
+		return -EPERM;
+
 	if (hcd->speed >= HCD_USB3 || !xhci->hw_lpm_support ||
 			!udev->lpm_capable)
 		return -EPERM;
@@ -4413,7 +4427,7 @@
 	xhci_dbg(xhci, "%s port %d USB2 hardware LPM\n",
 			enable ? "enable" : "disable", port_num + 1);
 
-	if (enable && !(xhci->quirks & XHCI_HW_LPM_DISABLE)) {
+	if (enable) {
 		/* Host supports BESL timeout instead of HIRD */
 		if (udev->usb2_hw_lpm_besl_capable) {
 			/* if device doesn't have a preferred BESL value use a
@@ -4472,6 +4486,9 @@
 			mutex_lock(hcd->bandwidth_mutex);
 			xhci_change_max_exit_latency(xhci, udev, 0);
 			mutex_unlock(hcd->bandwidth_mutex);
+			readl_poll_timeout(ports[port_num]->addr, pm_val,
+					   (pm_val & PORT_PLS_MASK) == XDEV_U0,
+					   100, 10000);
 			return 0;
 		}
 	}
@@ -4633,19 +4650,19 @@
 {
 	unsigned long long timeout_ns;
 
+	if (xhci->quirks & XHCI_INTEL_HOST)
+		timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc);
+	else
+		timeout_ns = udev->u1_params.sel;
+
 	/* Prevent U1 if service interval is shorter than U1 exit latency */
 	if (usb_endpoint_xfer_int(desc) || usb_endpoint_xfer_isoc(desc)) {
-		if (xhci_service_interval_to_ns(desc) <= udev->u1_params.mel) {
+		if (xhci_service_interval_to_ns(desc) <= timeout_ns) {
 			dev_dbg(&udev->dev, "Disable U1, ESIT shorter than exit latency\n");
 			return USB3_LPM_DISABLED;
 		}
 	}
 
-	if (xhci->quirks & XHCI_INTEL_HOST)
-		timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc);
-	else
-		timeout_ns = udev->u1_params.sel;
-
 	/* The U1 timeout is encoded in 1us intervals.
 	 * Don't return a timeout of zero, because that's USB3_LPM_DISABLED.
 	 */
@@ -4697,19 +4714,19 @@
 {
 	unsigned long long timeout_ns;
 
+	if (xhci->quirks & XHCI_INTEL_HOST)
+		timeout_ns = xhci_calculate_intel_u2_timeout(udev, desc);
+	else
+		timeout_ns = udev->u2_params.sel;
+
 	/* Prevent U2 if service interval is shorter than U2 exit latency */
 	if (usb_endpoint_xfer_int(desc) || usb_endpoint_xfer_isoc(desc)) {
-		if (xhci_service_interval_to_ns(desc) <= udev->u2_params.mel) {
+		if (xhci_service_interval_to_ns(desc) <= timeout_ns) {
 			dev_dbg(&udev->dev, "Disable U2, ESIT shorter than exit latency\n");
 			return USB3_LPM_DISABLED;
 		}
 	}
 
-	if (xhci->quirks & XHCI_INTEL_HOST)
-		timeout_ns = xhci_calculate_intel_u2_timeout(udev, desc);
-	else
-		timeout_ns = udev->u2_params.sel;
-
 	/* The U2 timeout is encoded in 256us intervals */
 	timeout_ns = DIV_ROUND_UP_ULL(timeout_ns, 256 * 1000);
 	/* If the necessary timeout value is bigger than what we can set in the
@@ -5371,6 +5388,10 @@
 			drv->reset = over->reset;
 		if (over->start)
 			drv->start = over->start;
+		if (over->check_bandwidth)
+			drv->check_bandwidth = over->check_bandwidth;
+		if (over->reset_bandwidth)
+			drv->reset_bandwidth = over->reset_bandwidth;
 	}
 }
 EXPORT_SYMBOL_GPL(xhci_init_driver);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/host/xhci.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/host/xhci.h
@@ -716,7 +716,7 @@
  * 4 - TRB error
  * 5-7 - reserved
  */
-#define EP_STATE_MASK		(0xf)
+#define EP_STATE_MASK		(0x7)
 #define EP_STATE_DISABLED	0
 #define EP_STATE_RUNNING	1
 #define EP_STATE_HALTED		2
@@ -1694,6 +1694,7 @@
 	/* Which ports are waiting on RExit to U0 transition. */
 	unsigned long		rexit_ports;
 	struct completion	rexit_done[USB_MAXCHILDREN];
+	struct completion	u3exit_done[USB_MAXCHILDREN];
 };
 
 
@@ -1702,12 +1703,20 @@
  * Intel Lynx Point LP xHCI host.
  */
 #define	XHCI_MAX_REXIT_TIMEOUT_MS	20
+struct xhci_port_cap {
+	u32			*psi;	/* array of protocol speed ID entries */
+	u8			psi_count;
+	u8			psi_uid_count;
+	u8			maj_rev;
+	u8			min_rev;
+};
 
 struct xhci_port {
 	__le32 __iomem		*addr;
 	int			hw_portnum;
 	int			hcd_portnum;
 	struct xhci_hub		*rhub;
+	struct xhci_port_cap	*port_cap;
 };
 
 struct xhci_hub {
@@ -1719,9 +1728,6 @@
 	/* supported prococol extended capabiliy values */
 	u8			maj_rev;
 	u8			min_rev;
-	u32			*psi;	/* array of protocol speed ID entries */
-	u8			psi_count;
-	u8			psi_uid_count;
 };
 
 /* There is one xhci_hcd structure per controller */
@@ -1867,6 +1873,9 @@
 #define XHCI_DEFAULT_PM_RUNTIME_ALLOW	BIT_ULL(33)
 #define XHCI_RESET_PLL_ON_DISCONNECT	BIT_ULL(34)
 #define XHCI_SNPS_BROKEN_SUSPEND    BIT_ULL(35)
+#define XHCI_SKIP_PHY_INIT	BIT_ULL(37)
+#define XHCI_DISABLE_SPARSE	BIT_ULL(38)
+#define XHCI_NO_SOFT_RETRY	BIT_ULL(40)
 
 	unsigned int		num_active_eps;
 	unsigned int		limit_active_eps;
@@ -1880,6 +1889,9 @@
 	/* cached usb2 extened protocol capabilites */
 	u32                     *ext_caps;
 	unsigned int            num_ext_caps;
+	/* cached extended protocol port capabilities */
+	struct xhci_port_cap	*port_caps;
+	unsigned int		num_port_caps;
 	/* Compliance Mode Recovery Data */
 	struct timer_list	comp_mode_recovery_timer;
 	u32			port_status_u0;
@@ -1901,6 +1913,8 @@
 	size_t extra_priv_size;
 	int (*reset)(struct usb_hcd *hcd);
 	int (*start)(struct usb_hcd *hcd);
+	int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
+	void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
 };
 
 #define	XHCI_CFC_DELAY		10
@@ -2050,8 +2064,11 @@
 int xhci_reset(struct xhci_hcd *xhci);
 int xhci_run(struct usb_hcd *hcd);
 int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks);
+void xhci_shutdown(struct usb_hcd *hcd);
 void xhci_init_driver(struct hc_driver *drv,
 		      const struct xhci_driver_overrides *over);
+int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev);
+void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev);
 int xhci_disable_slot(struct xhci_hcd *xhci, u32 slot_id);
 int xhci_ext_cap_init(struct xhci_hcd *xhci);
 
@@ -2106,8 +2123,9 @@
 void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci,
 		unsigned int slot_id, unsigned int ep_index,
 		struct xhci_dequeue_state *deq_state);
-void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, unsigned int ep_index,
-		unsigned int stream_id, struct xhci_td *td);
+void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, unsigned int slot_id,
+			       unsigned int ep_index, unsigned int stream_id,
+			       struct xhci_td *td);
 void xhci_stop_endpoint_command_watchdog(struct timer_list *t);
 void xhci_handle_command_timeout(struct work_struct *work);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/adutux.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/adutux.c
@@ -209,6 +209,7 @@
 
 	if (status != 0) {
 		if ((status != -ENOENT) &&
+		    (status != -ESHUTDOWN) &&
 		    (status != -ECONNRESET)) {
 			dev_dbg(&dev->udev->dev,
 				"%s :nonzero status received: %d\n", __func__,
@@ -669,7 +670,7 @@
 	init_waitqueue_head(&dev->read_wait);
 	init_waitqueue_head(&dev->write_wait);
 
-	res = usb_find_common_endpoints_reverse(&interface->altsetting[0],
+	res = usb_find_common_endpoints_reverse(interface->cur_altsetting,
 			NULL, NULL,
 			&dev->interrupt_in_endpoint,
 			&dev->interrupt_out_endpoint);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/appledisplay.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/appledisplay.c
@@ -164,7 +164,12 @@
 		0,
 		pdata->msgdata, 2,
 		ACD_USB_TIMEOUT);
-	brightness = pdata->msgdata[1];
+	if (retval < 2) {
+		if (retval >= 0)
+			retval = -EMSGSIZE;
+	} else {
+		brightness = pdata->msgdata[1];
+	}
 	mutex_unlock(&pdata->sysfslock);
 
 	if (retval < 0)
@@ -299,6 +304,7 @@
 	if (pdata) {
 		if (pdata->urb) {
 			usb_kill_urb(pdata->urb);
+			cancel_delayed_work_sync(&pdata->work);
 			if (pdata->urbdata)
 				usb_free_coherent(pdata->udev, ACD_URB_BUFFER_LEN,
 					pdata->urbdata, pdata->urb->transfer_dma);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/chaoskey.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/chaoskey.c
@@ -384,13 +384,17 @@
 		!dev->reading,
 		(started ? NAK_TIMEOUT : ALEA_FIRST_TIMEOUT) );
 
-	if (result < 0)
+	if (result < 0) {
+		usb_kill_urb(dev->urb);
 		goto out;
+	}
 
-	if (result == 0)
+	if (result == 0) {
 		result = -ETIMEDOUT;
-	else
+		usb_kill_urb(dev->urb);
+	} else {
 		result = dev->valid;
+	}
 out:
 	/* Let the device go back to sleep eventually */
 	usb_autopm_put_interface(dev->interface);
@@ -526,7 +530,21 @@
 
 static int chaoskey_resume(struct usb_interface *interface)
 {
+	struct chaoskey *dev;
+	struct usb_device *udev = interface_to_usbdev(interface);
+
 	usb_dbg(interface, "resume");
+	dev = usb_get_intfdata(interface);
+
+	/*
+	 * We may have lost power.
+	 * In that case the device that needs a long time
+	 * for the first requests needs an extended timeout
+	 * again
+	 */
+	if (le16_to_cpu(udev->descriptor.idVendor) == ALEA_VENDOR_ID)
+		dev->reads_started = false;
+
 	return 0;
 }
 #else
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/idmouse.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/idmouse.c
@@ -337,7 +337,7 @@
 	int result;
 
 	/* check if we have gotten the data or the hid interface */
-	iface_desc = &interface->altsetting[0];
+	iface_desc = interface->cur_altsetting;
 	if (iface_desc->desc.bInterfaceClass != 0x0A)
 		return -ENODEV;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/iowarrior.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/iowarrior.c
@@ -2,8 +2,9 @@
 /*
  *  Native support for the I/O-Warrior USB devices
  *
- *  Copyright (c) 2003-2005  Code Mercenaries GmbH
- *  written by Christian Lucht <lucht@codemercs.com>
+ *  Copyright (c) 2003-2005, 2020  Code Mercenaries GmbH
+ *  written by Christian Lucht <lucht@codemercs.com> and
+ *  Christoph Jung <jung@codemercs.com>
  *
  *  based on
 
@@ -33,6 +34,14 @@
 #define USB_DEVICE_ID_CODEMERCS_IOWPV2	0x1512
 /* full speed iowarrior */
 #define USB_DEVICE_ID_CODEMERCS_IOW56	0x1503
+/* fuller speed iowarrior */
+#define USB_DEVICE_ID_CODEMERCS_IOW28	0x1504
+#define USB_DEVICE_ID_CODEMERCS_IOW28L	0x1505
+#define USB_DEVICE_ID_CODEMERCS_IOW100	0x1506
+
+/* OEMed devices */
+#define USB_DEVICE_ID_CODEMERCS_IOW24SAG	0x158a
+#define USB_DEVICE_ID_CODEMERCS_IOW56AM		0x158b
 
 /* Get a minor range for your devices from the usb maintainer */
 #ifdef CONFIG_USB_DYNAMIC_MINORS
@@ -133,6 +142,11 @@
 	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOWPV1)},
 	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOWPV2)},
 	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW56)},
+	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW24SAG)},
+	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW56AM)},
+	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW28)},
+	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW28L)},
+	{USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW100)},
 	{}			/* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, iowarrior_ids);
@@ -357,6 +371,7 @@
 	}
 	switch (dev->product_id) {
 	case USB_DEVICE_ID_CODEMERCS_IOW24:
+	case USB_DEVICE_ID_CODEMERCS_IOW24SAG:
 	case USB_DEVICE_ID_CODEMERCS_IOWPV1:
 	case USB_DEVICE_ID_CODEMERCS_IOWPV2:
 	case USB_DEVICE_ID_CODEMERCS_IOW40:
@@ -371,6 +386,10 @@
 		goto exit;
 		break;
 	case USB_DEVICE_ID_CODEMERCS_IOW56:
+	case USB_DEVICE_ID_CODEMERCS_IOW56AM:
+	case USB_DEVICE_ID_CODEMERCS_IOW28:
+	case USB_DEVICE_ID_CODEMERCS_IOW28L:
+	case USB_DEVICE_ID_CODEMERCS_IOW100:
 		/* The IOW56 uses asynchronous IO and more urbs */
 		if (atomic_read(&dev->write_busy) == MAX_WRITES_IN_FLIGHT) {
 			/* Wait until we are below the limit for submitted urbs */
@@ -493,6 +512,7 @@
 	switch (cmd) {
 	case IOW_WRITE:
 		if (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW24 ||
+		    dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW24SAG ||
 		    dev->product_id == USB_DEVICE_ID_CODEMERCS_IOWPV1 ||
 		    dev->product_id == USB_DEVICE_ID_CODEMERCS_IOWPV2 ||
 		    dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW40) {
@@ -767,7 +787,11 @@
 		goto error;
 	}
 
-	if (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56) {
+	if ((dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56) ||
+	    (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56AM) ||
+	    (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28) ||
+	    (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28L) ||
+	    (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW100)) {
 		res = usb_find_last_int_out_endpoint(iface_desc,
 				&dev->int_out_endpoint);
 		if (res) {
@@ -779,10 +803,28 @@
 
 	/* we have to check the report_size often, so remember it in the endianness suitable for our machine */
 	dev->report_size = usb_endpoint_maxp(dev->int_in_endpoint);
-	if ((dev->interface->cur_altsetting->desc.bInterfaceNumber == 0) &&
-	    (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56))
-		/* IOWarrior56 has wMaxPacketSize different from report size */
-		dev->report_size = 7;
+
+	/*
+	 * Some devices need the report size to be different than the
+	 * endpoint size.
+	 */
+	if (dev->interface->cur_altsetting->desc.bInterfaceNumber == 0) {
+		switch (dev->product_id) {
+		case USB_DEVICE_ID_CODEMERCS_IOW56:
+		case USB_DEVICE_ID_CODEMERCS_IOW56AM:
+			dev->report_size = 7;
+			break;
+
+		case USB_DEVICE_ID_CODEMERCS_IOW28:
+		case USB_DEVICE_ID_CODEMERCS_IOW28L:
+			dev->report_size = 4;
+			break;
+
+		case USB_DEVICE_ID_CODEMERCS_IOW100:
+			dev->report_size = 13;
+			break;
+		}
+	}
 
 	/* create the urb and buffer for reading */
 	dev->int_in_urb = usb_alloc_urb(0, GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/lvstest.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/lvstest.c
@@ -426,7 +426,7 @@
 			USB_DT_SS_HUB_SIZE, USB_CTRL_GET_TIMEOUT);
 	if (ret < (USB_DT_HUB_NONVAR_SIZE + 2)) {
 		dev_err(&hdev->dev, "wrong root hub descriptor read %d\n", ret);
-		return ret;
+		return ret < 0 ? ret : -EINVAL;
 	}
 
 	/* submit urb to poll interrupt endpoint */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/sisusbvga/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/sisusbvga/Kconfig
@@ -16,7 +16,7 @@
 
 config USB_SISUSBVGA_CON
 	bool "Text console and mode switching support" if USB_SISUSBVGA
-	depends on VT
+	depends on VT && BROKEN
 	select FONT_8x16
 	---help---
 	  Say Y here if you want a VGA text console via the USB dongle or
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/sisusbvga/sisusb.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/sisusbvga/sisusb.c
@@ -761,7 +761,7 @@
 	u8   swap8, fromkern = kernbuffer ? 1 : 0;
 	u16  swap16;
 	u32  swap32, flag = (length >> 28) & 1;
-	char buf[4];
+	u8 buf[4];
 
 	/* if neither kernbuffer not userbuffer are given, assume
 	 * data in obuf
@@ -1199,18 +1199,18 @@
 /* High level: Gfx (indexed) register access */
 
 #ifdef CONFIG_USB_SISUSBVGA_CON
-int sisusb_setreg(struct sisusb_usb_data *sisusb, int port, u8 data)
+int sisusb_setreg(struct sisusb_usb_data *sisusb, u32 port, u8 data)
 {
 	return sisusb_write_memio_byte(sisusb, SISUSB_TYPE_IO, port, data);
 }
 
-int sisusb_getreg(struct sisusb_usb_data *sisusb, int port, u8 *data)
+int sisusb_getreg(struct sisusb_usb_data *sisusb, u32 port, u8 *data)
 {
 	return sisusb_read_memio_byte(sisusb, SISUSB_TYPE_IO, port, data);
 }
 #endif
 
-int sisusb_setidxreg(struct sisusb_usb_data *sisusb, int port,
+int sisusb_setidxreg(struct sisusb_usb_data *sisusb, u32 port,
 		u8 index, u8 data)
 {
 	int ret;
@@ -1220,7 +1220,7 @@
 	return ret;
 }
 
-int sisusb_getidxreg(struct sisusb_usb_data *sisusb, int port,
+int sisusb_getidxreg(struct sisusb_usb_data *sisusb, u32 port,
 		u8 index, u8 *data)
 {
 	int ret;
@@ -1230,7 +1230,7 @@
 	return ret;
 }
 
-int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, int port, u8 idx,
+int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, u32 port, u8 idx,
 		u8 myand, u8 myor)
 {
 	int ret;
@@ -1245,7 +1245,7 @@
 }
 
 static int sisusb_setidxregmask(struct sisusb_usb_data *sisusb,
-		int port, u8 idx, u8 data, u8 mask)
+		u32 port, u8 idx, u8 data, u8 mask)
 {
 	int ret;
 	u8 tmp;
@@ -1258,13 +1258,13 @@
 	return ret;
 }
 
-int sisusb_setidxregor(struct sisusb_usb_data *sisusb, int port,
+int sisusb_setidxregor(struct sisusb_usb_data *sisusb, u32 port,
 		u8 index, u8 myor)
 {
 	return sisusb_setidxregandor(sisusb, port, index, 0xff, myor);
 }
 
-int sisusb_setidxregand(struct sisusb_usb_data *sisusb, int port,
+int sisusb_setidxregand(struct sisusb_usb_data *sisusb, u32 port,
 		u8 idx, u8 myand)
 {
 	return sisusb_setidxregandor(sisusb, port, idx, myand, 0x00);
@@ -2785,8 +2785,8 @@
 static int sisusb_handle_command(struct sisusb_usb_data *sisusb,
 		struct sisusb_command *y, unsigned long arg)
 {
-	int	retval, port, length;
-	u32	address;
+	int	retval, length;
+	u32	port, address;
 
 	/* All our commands require the device
 	 * to be initialized.
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/sisusbvga/sisusb_init.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/sisusbvga/sisusb_init.h
@@ -812,17 +812,17 @@
 int SiSUSBSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo);
 int SiSUSBSetVESAMode(struct SiS_Private *SiS_Pr, unsigned short VModeNo);
 
-extern int sisusb_setreg(struct sisusb_usb_data *sisusb, int port, u8 data);
-extern int sisusb_getreg(struct sisusb_usb_data *sisusb, int port, u8 * data);
-extern int sisusb_setidxreg(struct sisusb_usb_data *sisusb, int port,
+extern int sisusb_setreg(struct sisusb_usb_data *sisusb, u32 port, u8 data);
+extern int sisusb_getreg(struct sisusb_usb_data *sisusb, u32 port, u8 * data);
+extern int sisusb_setidxreg(struct sisusb_usb_data *sisusb, u32 port,
 			    u8 index, u8 data);
-extern int sisusb_getidxreg(struct sisusb_usb_data *sisusb, int port,
+extern int sisusb_getidxreg(struct sisusb_usb_data *sisusb, u32 port,
 			    u8 index, u8 * data);
-extern int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, int port,
+extern int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, u32 port,
 				 u8 idx, u8 myand, u8 myor);
-extern int sisusb_setidxregor(struct sisusb_usb_data *sisusb, int port,
+extern int sisusb_setidxregor(struct sisusb_usb_data *sisusb, u32 port,
 			      u8 index, u8 myor);
-extern int sisusb_setidxregand(struct sisusb_usb_data *sisusb, int port,
+extern int sisusb_setidxregand(struct sisusb_usb_data *sisusb, u32 port,
 			       u8 idx, u8 myand);
 
 void sisusb_delete(struct kref *kref);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/usbtest.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/usbtest.c
@@ -2873,6 +2873,7 @@
 
 	usb_set_intfdata(intf, NULL);
 	dev_dbg(&intf->dev, "disconnect\n");
+	kfree(dev->buf);
 	kfree(dev);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/misc/yurex.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/misc/yurex.c
@@ -492,11 +492,14 @@
 	prepare_to_wait(&dev->waitq, &wait, TASK_INTERRUPTIBLE);
 	dev_dbg(&dev->interface->dev, "%s - submit %c\n", __func__,
 		dev->cntl_buffer[0]);
-	retval = usb_submit_urb(dev->cntl_urb, GFP_KERNEL);
+	retval = usb_submit_urb(dev->cntl_urb, GFP_ATOMIC);
 	if (retval >= 0)
 		timeout = schedule_timeout(YUREX_WRITE_TIMEOUT);
 	finish_wait(&dev->waitq, &wait);
 
+	/* make sure URB is idle after timeout or (spurious) CMD_ACK */
+	usb_kill_urb(dev->cntl_urb);
+
 	mutex_unlock(&dev->io_mutex);
 
 	if (retval < 0) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/mon/mon_bin.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/mon/mon_bin.c
@@ -1039,12 +1039,18 @@
 
 		mutex_lock(&rp->fetch_lock);
 		spin_lock_irqsave(&rp->b_lock, flags);
-		mon_free_buff(rp->b_vec, rp->b_size/CHUNK_SIZE);
-		kfree(rp->b_vec);
-		rp->b_vec  = vec;
-		rp->b_size = size;
-		rp->b_read = rp->b_in = rp->b_out = rp->b_cnt = 0;
-		rp->cnt_lost = 0;
+		if (rp->mmap_active) {
+			mon_free_buff(vec, size/CHUNK_SIZE);
+			kfree(vec);
+			ret = -EBUSY;
+		} else {
+			mon_free_buff(rp->b_vec, rp->b_size/CHUNK_SIZE);
+			kfree(rp->b_vec);
+			rp->b_vec  = vec;
+			rp->b_size = size;
+			rp->b_read = rp->b_in = rp->b_out = rp->b_cnt = 0;
+			rp->cnt_lost = 0;
+		}
 		spin_unlock_irqrestore(&rp->b_lock, flags);
 		mutex_unlock(&rp->fetch_lock);
 		}
@@ -1216,13 +1222,21 @@
 static void mon_bin_vma_open(struct vm_area_struct *vma)
 {
 	struct mon_reader_bin *rp = vma->vm_private_data;
+	unsigned long flags;
+
+	spin_lock_irqsave(&rp->b_lock, flags);
 	rp->mmap_active++;
+	spin_unlock_irqrestore(&rp->b_lock, flags);
 }
 
 static void mon_bin_vma_close(struct vm_area_struct *vma)
 {
+	unsigned long flags;
+
 	struct mon_reader_bin *rp = vma->vm_private_data;
+	spin_lock_irqsave(&rp->b_lock, flags);
 	rp->mmap_active--;
+	spin_unlock_irqrestore(&rp->b_lock, flags);
 }
 
 /*
@@ -1234,16 +1248,12 @@
 	unsigned long offset, chunk_idx;
 	struct page *pageptr;
 
-	mutex_lock(&rp->fetch_lock);
 	offset = vmf->pgoff << PAGE_SHIFT;
-	if (offset >= rp->b_size) {
-		mutex_unlock(&rp->fetch_lock);
+	if (offset >= rp->b_size)
 		return VM_FAULT_SIGBUS;
-	}
 	chunk_idx = offset / CHUNK_SIZE;
 	pageptr = rp->b_vec[chunk_idx].pg;
 	get_page(pageptr);
-	mutex_unlock(&rp->fetch_lock);
 	vmf->page = pageptr;
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/mtu3/mtu3_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/mtu3/mtu3_core.c
@@ -131,8 +131,12 @@
 	mtu3_setbits(ibase, SSUSB_U2_CTRL(0),
 		SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN);
 
-	if (mtu->ssusb->dr_mode == USB_DR_MODE_OTG)
+	if (mtu->ssusb->dr_mode == USB_DR_MODE_OTG) {
 		mtu3_clrbits(ibase, SSUSB_U2_CTRL(0), SSUSB_U2_PORT_OTG_SEL);
+		if (mtu->is_u3_ip)
+			mtu3_clrbits(ibase, SSUSB_U3_CTRL(0),
+				     SSUSB_U3_PORT_DUAL_MODE);
+	}
 
 	mtu3_setbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/mtu3/mtu3_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/mtu3/mtu3_debugfs.c
@@ -127,7 +127,7 @@
 	struct debugfs_regset32 *regset;
 	struct mtu3_regset *mregs;
 
-	mregs = devm_kzalloc(mtu->dev, sizeof(*regset), GFP_KERNEL);
+	mregs = devm_kzalloc(mtu->dev, sizeof(*mregs), GFP_KERNEL);
 	if (!mregs)
 		return;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/mtu3/mtu3_gadget.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/mtu3/mtu3_gadget.c
@@ -587,6 +587,7 @@
 
 	spin_unlock_irqrestore(&mtu->lock, flags);
 
+	synchronize_irq(mtu->irq);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/musb/jz4740.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/musb/jz4740.c
@@ -75,14 +75,17 @@
 static int jz4740_musb_init(struct musb *musb)
 {
 	struct device *dev = musb->controller->parent;
+	int err;
 
 	if (dev->of_node)
 		musb->xceiv = devm_usb_get_phy_by_phandle(dev, "phys", 0);
 	else
 		musb->xceiv = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
 	if (IS_ERR(musb->xceiv)) {
-		dev_err(dev, "No transceiver configured\n");
-		return PTR_ERR(musb->xceiv);
+		err = PTR_ERR(musb->xceiv);
+		if (err != -EPROBE_DEFER)
+			dev_err(dev, "No transceiver configured: %d", err);
+		return err;
 	}
 
 	/* Silicon does not implement ConfigData register.
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/musb/musb_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/musb/musb_core.c
@@ -1840,6 +1840,9 @@
 #define MUSB_QUIRK_B_INVALID_VBUS_91	(MUSB_DEVCTL_BDEVICE | \
 					 (2 << MUSB_DEVCTL_VBUS_SHIFT) | \
 					 MUSB_DEVCTL_SESSION)
+#define MUSB_QUIRK_B_DISCONNECT_99	(MUSB_DEVCTL_BDEVICE | \
+					 (3 << MUSB_DEVCTL_VBUS_SHIFT) | \
+					 MUSB_DEVCTL_SESSION)
 #define MUSB_QUIRK_A_DISCONNECT_19	((3 << MUSB_DEVCTL_VBUS_SHIFT) | \
 					 MUSB_DEVCTL_SESSION)
 
@@ -1862,6 +1865,11 @@
 	s = MUSB_DEVCTL_FSDEV | MUSB_DEVCTL_LSDEV |
 		MUSB_DEVCTL_HR;
 	switch (devctl & ~s) {
+	case MUSB_QUIRK_B_DISCONNECT_99:
+		musb_dbg(musb, "Poll devctl in case of suspend after disconnect\n");
+		schedule_delayed_work(&musb->irq_work,
+				      msecs_to_jiffies(1000));
+		break;
 	case MUSB_QUIRK_B_INVALID_VBUS_91:
 		if (musb->quirk_retries && !musb->flush_irq_work) {
 			musb_dbg(musb,
@@ -2094,32 +2102,35 @@
 {
 	struct musb_pending_work *w;
 	unsigned long flags;
+	bool is_suspended;
 	int error;
 
 	if (WARN_ON(!callback))
 		return -EINVAL;
 
-	if (pm_runtime_active(musb->controller))
-		return callback(musb, data);
+	spin_lock_irqsave(&musb->list_lock, flags);
+	is_suspended = musb->is_runtime_suspended;
 
-	w = devm_kzalloc(musb->controller, sizeof(*w), GFP_ATOMIC);
-	if (!w)
-		return -ENOMEM;
+	if (is_suspended) {
+		w = devm_kzalloc(musb->controller, sizeof(*w), GFP_ATOMIC);
+		if (!w) {
+			error = -ENOMEM;
+			goto out_unlock;
+		}
+
+		w->callback = callback;
+		w->data = data;
 
-	w->callback = callback;
-	w->data = data;
-	spin_lock_irqsave(&musb->list_lock, flags);
-	if (musb->is_runtime_suspended) {
 		list_add_tail(&w->node, &musb->pending_list);
 		error = 0;
-	} else {
-		dev_err(musb->controller, "could not add resume work %p\n",
-			callback);
-		devm_kfree(musb->controller, w);
-		error = -EINPROGRESS;
 	}
+
+out_unlock:
 	spin_unlock_irqrestore(&musb->list_lock, flags);
 
+	if (!is_suspended)
+		error = callback(musb, data);
+
 	return error;
 }
 EXPORT_SYMBOL_GPL(musb_queue_resume_work);
@@ -2310,6 +2321,9 @@
 	musb_disable_interrupts(musb);
 	musb_writeb(musb->mregs, MUSB_DEVCTL, 0);
 
+	/* MUSB_POWER_SOFTCONN might be already set, JZ4740 does this. */
+	musb_writeb(musb->mregs, MUSB_POWER, 0);
+
 	/* Init IRQ workqueue before request_irq */
 	INIT_DELAYED_WORK(&musb->irq_work, musb_irq_work);
 	INIT_DELAYED_WORK(&musb->deassert_reset_work, musb_deassert_reset);
@@ -2710,6 +2724,13 @@
 	musb_enable_interrupts(musb);
 	musb_platform_enable(musb);
 
+	/* session might be disabled in suspend */
+	if (musb->port_mode == MUSB_HOST &&
+	    !(musb->ops->quirks & MUSB_PRESERVE_SESSION)) {
+		devctl |= MUSB_DEVCTL_SESSION;
+		musb_writeb(musb->mregs, MUSB_DEVCTL, devctl);
+	}
+
 	spin_lock_irqsave(&musb->lock, flags);
 	error = musb_run_resume_work(musb);
 	if (error)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/musb/musb_debugfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/musb/musb_debugfs.c
@@ -168,6 +168,11 @@
 	u8			test;
 	char			buf[24];
 
+	memset(buf, 0x00, sizeof(buf));
+
+	if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
+		return -EFAULT;
+
 	pm_runtime_get_sync(musb->controller);
 	test = musb_readb(musb->mregs, MUSB_TESTMODE);
 	if (test) {
@@ -176,11 +181,6 @@
 		goto ret;
 	}
 
-	memset(buf, 0x00, sizeof(buf));
-
-	if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
-		return -EFAULT;
-
 	if (strstarts(buf, "force host full-speed"))
 		test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/musb/musb_host.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/musb/musb_host.c
@@ -1462,10 +1462,7 @@
 	 * We need to map sg if the transfer_buffer is
 	 * NULL.
 	 */
-	if (!urb->transfer_buffer)
-		qh->use_sg = true;
-
-	if (qh->use_sg) {
+	if (!urb->transfer_buffer) {
 		/* sg_miter_start is already done in musb_ep_program */
 		if (!sg_miter_next(&qh->sg_miter)) {
 			dev_err(musb->controller, "error: sg list empty\n");
@@ -1473,9 +1470,8 @@
 			status = -EINVAL;
 			goto done;
 		}
-		urb->transfer_buffer = qh->sg_miter.addr;
 		length = min_t(u32, length, qh->sg_miter.length);
-		musb_write_fifo(hw_ep, length, urb->transfer_buffer);
+		musb_write_fifo(hw_ep, length, qh->sg_miter.addr);
 		qh->sg_miter.consumed = length;
 		sg_miter_stop(&qh->sg_miter);
 	} else {
@@ -1484,11 +1480,6 @@
 
 	qh->segsize = length;
 
-	if (qh->use_sg) {
-		if (offset + length >= urb->transfer_buffer_length)
-			qh->use_sg = false;
-	}
-
 	musb_ep_select(mbase, epnum);
 	musb_writew(epio, MUSB_TXCSR,
 			MUSB_TXCSR_H_WZC_BITS | MUSB_TXCSR_TXPKTRDY);
@@ -2003,8 +1994,10 @@
 	urb->actual_length += xfer_len;
 	qh->offset += xfer_len;
 	if (done) {
-		if (qh->use_sg)
+		if (qh->use_sg) {
 			qh->use_sg = false;
+			urb->transfer_buffer = NULL;
+		}
 
 		if (urb->status == -EINPROGRESS)
 			urb->status = status;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/musb/musbhsdma.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/musb/musbhsdma.c
@@ -425,7 +425,7 @@
 	controller->controller.channel_abort = dma_channel_abort;
 
 	if (request_irq(irq, dma_controller_irq, 0,
-			dev_name(musb->controller), &controller->controller)) {
+			dev_name(musb->controller), controller)) {
 		dev_err(dev, "request_irq %d failed!\n", irq);
 		musb_dma_controller_destroy(&controller->controller);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/musb/omap2430.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/musb/omap2430.c
@@ -361,8 +361,6 @@
 	.init		= omap2430_musb_init,
 	.exit		= omap2430_musb_exit,
 
-	.set_vbus	= omap2430_musb_set_vbus,
-
 	.enable		= omap2430_musb_enable,
 	.disable	= omap2430_musb_disable,
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/phy/phy-twl6030-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/phy/phy-twl6030-usb.c
@@ -377,7 +377,7 @@
 	if (status < 0) {
 		dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",
 			twl->irq1, status);
-		return status;
+		goto err_put_regulator;
 	}
 
 	status = request_threaded_irq(twl->irq2, NULL, twl6030_usb_irq,
@@ -386,8 +386,7 @@
 	if (status < 0) {
 		dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",
 			twl->irq2, status);
-		free_irq(twl->irq1, twl);
-		return status;
+		goto err_free_irq1;
 	}
 
 	twl->asleep = 0;
@@ -396,6 +395,13 @@
 	dev_info(&pdev->dev, "Initialized TWL6030 USB module\n");
 
 	return 0;
+
+err_free_irq1:
+	free_irq(twl->irq1, twl);
+err_put_regulator:
+	regulator_put(twl->usb3v3);
+
+	return status;
 }
 
 static int twl6030_usb_remove(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/renesas_usbhs/common.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/renesas_usbhs/common.h
@@ -161,11 +161,12 @@
 #define VBSTS	(1 << 7)	/* VBUS_0 and VBUSIN_0 Input Status */
 #define VALID	(1 << 3)	/* USB Request Receive */
 
-#define DVSQ_MASK		(0x3 << 4)	/* Device State */
+#define DVSQ_MASK		(0x7 << 4)	/* Device State */
 #define  POWER_STATE		(0 << 4)
 #define  DEFAULT_STATE		(1 << 4)
 #define  ADDRESS_STATE		(2 << 4)
 #define  CONFIGURATION_STATE	(3 << 4)
+#define  SUSPENDED_STATE	(4 << 4)
 
 #define CTSQ_MASK		(0x7)	/* Control Transfer Stage */
 #define  IDLE_SETUP_STAGE	0	/* Idle stage or setup stage */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/renesas_usbhs/fifo.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/renesas_usbhs/fifo.c
@@ -126,6 +126,7 @@
 		}
 
 		usbhs_pipe_clear_without_sequence(pipe, 0, 0);
+		usbhs_pipe_running(pipe, 0);
 
 		__usbhsf_pkt_del(pkt);
 	}
@@ -803,7 +804,8 @@
 	return info->dma_map_ctrl(chan->device->dev, pkt, map);
 }
 
-static void usbhsf_dma_complete(void *arg);
+static void usbhsf_dma_complete(void *arg,
+				const struct dmaengine_result *result);
 static void usbhsf_dma_xfer_preparing(struct usbhs_pkt *pkt)
 {
 	struct usbhs_pipe *pipe = pkt->pipe;
@@ -813,6 +815,7 @@
 	struct dma_chan *chan;
 	struct device *dev = usbhs_priv_to_dev(priv);
 	enum dma_transfer_direction dir;
+	dma_cookie_t cookie;
 
 	fifo = usbhs_pipe_to_fifo(pipe);
 	if (!fifo)
@@ -827,11 +830,11 @@
 	if (!desc)
 		return;
 
-	desc->callback		= usbhsf_dma_complete;
-	desc->callback_param	= pipe;
+	desc->callback_result	= usbhsf_dma_complete;
+	desc->callback_param	= pkt;
 
-	pkt->cookie = dmaengine_submit(desc);
-	if (pkt->cookie < 0) {
+	cookie = dmaengine_submit(desc);
+	if (cookie < 0) {
 		dev_err(dev, "Failed to submit dma descriptor\n");
 		return;
 	}
@@ -1152,12 +1155,10 @@
 					   struct dma_chan *chan, int dtln)
 {
 	struct usbhs_pipe *pipe = pkt->pipe;
-	struct dma_tx_state state;
 	size_t received_size;
 	int maxp = usbhs_pipe_get_maxpacket(pipe);
 
-	dmaengine_tx_status(chan, pkt->cookie, &state);
-	received_size = pkt->length - state.residue;
+	received_size = pkt->length - pkt->dma_result->residue;
 
 	if (dtln) {
 		received_size -= USBHS_USB_DMAC_XFER_SIZE;
@@ -1363,13 +1364,16 @@
 	return 0;
 }
 
-static void usbhsf_dma_complete(void *arg)
+static void usbhsf_dma_complete(void *arg,
+				const struct dmaengine_result *result)
 {
-	struct usbhs_pipe *pipe = arg;
+	struct usbhs_pkt *pkt = arg;
+	struct usbhs_pipe *pipe = pkt->pipe;
 	struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
 	struct device *dev = usbhs_priv_to_dev(priv);
 	int ret;
 
+	pkt->dma_result = result;
 	ret = usbhsf_pkt_handler(pipe, USBHSF_PKT_DMA_DONE);
 	if (ret < 0)
 		dev_err(dev, "dma_complete run_error %d : %d\n",
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/renesas_usbhs/fifo.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/renesas_usbhs/fifo.h
@@ -50,7 +50,7 @@
 		     struct usbhs_pkt *pkt);
 	struct work_struct work;
 	dma_addr_t dma;
-	dma_cookie_t cookie;
+	const struct dmaengine_result *dma_result;
 	void *buf;
 	int length;
 	int trans;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/renesas_usbhs/mod_gadget.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -457,12 +457,18 @@
 {
 	struct usbhsg_gpriv *gpriv = usbhsg_priv_to_gpriv(priv);
 	struct device *dev = usbhsg_gpriv_to_dev(gpriv);
+	int state = usbhs_status_get_device_state(irq_state);
 
 	gpriv->gadget.speed = usbhs_bus_get_speed(priv);
 
-	dev_dbg(dev, "state = %x : speed : %d\n",
-		usbhs_status_get_device_state(irq_state),
-		gpriv->gadget.speed);
+	dev_dbg(dev, "state = %x : speed : %d\n", state, gpriv->gadget.speed);
+
+	if (gpriv->gadget.speed != USB_SPEED_UNKNOWN &&
+	    (state & SUSPENDED_STATE)) {
+		if (gpriv->driver && gpriv->driver->suspend)
+			gpriv->driver->suspend(&gpriv->gadget);
+		usb_gadget_set_state(&gpriv->gadget, USB_STATE_SUSPENDED);
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/renesas_usbhs/pipe.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/renesas_usbhs/pipe.c
@@ -746,6 +746,8 @@
 
 void usbhs_pipe_free(struct usbhs_pipe *pipe)
 {
+	usbhsp_pipe_select(pipe);
+	usbhsp_pipe_cfg_set(pipe, 0xFFFF, 0);
 	usbhsp_put_pipe(pipe);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/roles/class.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/roles/class.c
@@ -169,8 +169,8 @@
 void usb_role_switch_put(struct usb_role_switch *sw)
 {
 	if (!IS_ERR_OR_NULL(sw)) {
-		put_device(&sw->dev);
 		module_put(sw->dev.parent->driver->owner);
+		put_device(&sw->dev);
 	}
 }
 EXPORT_SYMBOL_GPL(usb_role_switch_put);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/ch341.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/ch341.c
@@ -80,9 +80,12 @@
 #define CH341_LCR_CS5          0x00
 
 static const struct usb_device_id id_table[] = {
-	{ USB_DEVICE(0x4348, 0x5523) },
-	{ USB_DEVICE(0x1a86, 0x7523) },
+	{ USB_DEVICE(0x1a86, 0x5512) },
 	{ USB_DEVICE(0x1a86, 0x5523) },
+	{ USB_DEVICE(0x1a86, 0x7522) },
+	{ USB_DEVICE(0x1a86, 0x7523) },
+	{ USB_DEVICE(0x4348, 0x5523) },
+	{ USB_DEVICE(0x9986, 0x7523) },
 	{ },
 };
 MODULE_DEVICE_TABLE(usb, id_table);
@@ -93,6 +96,7 @@
 	u8 mcr;
 	u8 msr;
 	u8 lcr;
+	unsigned long quirks;
 };
 
 static void ch341_set_termios(struct tty_struct *tty,
@@ -245,6 +249,53 @@
 	return r;
 }
 
+static int ch341_detect_quirks(struct usb_serial_port *port)
+{
+	struct ch341_private *priv = usb_get_serial_port_data(port);
+	struct usb_device *udev = port->serial->dev;
+	const unsigned int size = 2;
+	unsigned long quirks = 0;
+	char *buffer;
+	int r;
+
+	buffer = kmalloc(size, GFP_KERNEL);
+	if (!buffer)
+		return -ENOMEM;
+
+	/*
+	 * A subset of CH34x devices does not support all features. The
+	 * prescaler is limited and there is no support for sending a RS232
+	 * break condition. A read failure when trying to set up the latter is
+	 * used to detect these devices.
+	 */
+	r = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), CH341_REQ_READ_REG,
+			    USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
+			    CH341_REG_BREAK, 0, buffer, size, DEFAULT_TIMEOUT);
+	if (r == -EPIPE) {
+		dev_dbg(&port->dev, "break control not supported\n");
+		r = 0;
+		goto out;
+	}
+
+	if (r != size) {
+		if (r >= 0)
+			r = -EIO;
+		dev_err(&port->dev, "failed to read break control: %d\n", r);
+		goto out;
+	}
+
+	r = 0;
+out:
+	kfree(buffer);
+
+	if (quirks) {
+		dev_dbg(&port->dev, "enabling quirk flags: 0x%02lx\n", quirks);
+		priv->quirks |= quirks;
+	}
+
+	return r;
+}
+
 static int ch341_port_probe(struct usb_serial_port *port)
 {
 	struct ch341_private *priv;
@@ -267,6 +318,11 @@
 		goto error;
 
 	usb_set_serial_port_data(port, priv);
+
+	r = ch341_detect_quirks(port);
+	if (r < 0)
+		goto error;
+
 	return 0;
 
 error:	kfree(priv);
@@ -589,9 +645,13 @@
 static int ch341_reset_resume(struct usb_serial *serial)
 {
 	struct usb_serial_port *port = serial->port[0];
-	struct ch341_private *priv = usb_get_serial_port_data(port);
+	struct ch341_private *priv;
 	int ret;
 
+	priv = usb_get_serial_port_data(port);
+	if (!priv)
+		return 0;
+
 	/* reconfigure ch341 serial port after bus-reset */
 	ch341_configure(serial->dev, priv);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/cp210x.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/cp210x.c
@@ -61,6 +61,7 @@
 	{ USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */
 	{ USB_DEVICE(0x08FD, 0x000A) }, /* Digianswer A/S , ZigBee/802.15.4 MAC Device */
 	{ USB_DEVICE(0x0908, 0x01FF) }, /* Siemens RUGGEDCOM USB Serial Console */
+	{ USB_DEVICE(0x0988, 0x0578) }, /* Teraoka AD2000 */
 	{ USB_DEVICE(0x0B00, 0x3070) }, /* Ingenico 3070 */
 	{ USB_DEVICE(0x0BED, 0x1100) }, /* MEI (TM) Cashflow-SC Bill/Voucher Acceptor */
 	{ USB_DEVICE(0x0BED, 0x1101) }, /* MEI series 2000 Combo Acceptor */
@@ -125,6 +126,7 @@
 	{ USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */
 	{ USB_DEVICE(0x10C4, 0x8382) }, /* Cygnal Integrated Products, Inc. */
 	{ USB_DEVICE(0x10C4, 0x83A8) }, /* Amber Wireless AMB2560 */
+	{ USB_DEVICE(0x10C4, 0x83AA) }, /* Mark-10 Digital Force Gauge */
 	{ USB_DEVICE(0x10C4, 0x83D8) }, /* DekTec DTA Plus VHF/UHF Booster/Attenuator */
 	{ USB_DEVICE(0x10C4, 0x8411) }, /* Kyocera GPS Module */
 	{ USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */
@@ -144,6 +146,7 @@
 	{ USB_DEVICE(0x10C4, 0x8857) },	/* CEL EM357 ZigBee USB Stick */
 	{ USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */
 	{ USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */
+	{ USB_DEVICE(0x10C4, 0x88D8) }, /* Acuity Brands nLight Air Adapter */
 	{ USB_DEVICE(0x10C4, 0x88FB) }, /* CESINEL MEDCAL STII Network Analyzer */
 	{ USB_DEVICE(0x10C4, 0x8938) }, /* CESINEL MEDCAL S II Network Analyzer */
 	{ USB_DEVICE(0x10C4, 0x8946) }, /* Ketra N1 Wireless Interface */
@@ -200,6 +203,9 @@
 	{ USB_DEVICE(0x1901, 0x0194) },	/* GE Healthcare Remote Alarm Box */
 	{ USB_DEVICE(0x1901, 0x0195) },	/* GE B850/B650/B450 CP2104 DP UART interface */
 	{ USB_DEVICE(0x1901, 0x0196) },	/* GE B850 CP2105 DP UART interface */
+	{ USB_DEVICE(0x1901, 0x0197) }, /* GE CS1000 Display serial interface */
+	{ USB_DEVICE(0x1901, 0x0198) }, /* GE CS1000 M.2 Key E serial interface */
+	{ USB_DEVICE(0x199B, 0xBA30) }, /* LORD WSDA-200-USB */
 	{ USB_DEVICE(0x19CF, 0x3000) }, /* Parrot NMEA GPS Flight Recorder */
 	{ USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */
 	{ USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */
@@ -271,6 +277,8 @@
 	.break_ctl		= cp210x_break_ctl,
 	.set_termios		= cp210x_set_termios,
 	.tx_empty		= cp210x_tx_empty,
+	.throttle		= usb_serial_generic_throttle,
+	.unthrottle		= usb_serial_generic_unthrottle,
 	.tiocmget		= cp210x_tiocmget,
 	.tiocmset		= cp210x_tiocmset,
 	.attach			= cp210x_attach,
@@ -914,6 +922,7 @@
 	u32 baud;
 	u16 bits;
 	u32 ctl_hs;
+	u32 flow_repl;
 
 	cp210x_read_u32_reg(port, CP210X_GET_BAUDRATE, &baud);
 
@@ -1014,6 +1023,22 @@
 	ctl_hs = le32_to_cpu(flow_ctl.ulControlHandshake);
 	if (ctl_hs & CP210X_SERIAL_CTS_HANDSHAKE) {
 		dev_dbg(dev, "%s - flow control = CRTSCTS\n", __func__);
+		/*
+		 * When the port is closed, the CP210x hardware disables
+		 * auto-RTS and RTS is deasserted but it leaves auto-CTS when
+		 * in hardware flow control mode. When re-opening the port, if
+		 * auto-CTS is enabled on the cp210x, then auto-RTS must be
+		 * re-enabled in the driver.
+		 */
+		flow_repl = le32_to_cpu(flow_ctl.ulFlowReplace);
+		flow_repl &= ~CP210X_SERIAL_RTS_MASK;
+		flow_repl |= CP210X_SERIAL_RTS_SHIFT(CP210X_SERIAL_RTS_FLOW_CTL);
+		flow_ctl.ulFlowReplace = cpu_to_le32(flow_repl);
+		cp210x_write_reg_block(port,
+				CP210X_SET_FLOW,
+				&flow_ctl,
+				sizeof(flow_ctl));
+
 		cflag |= CRTSCTS;
 	} else {
 		dev_dbg(dev, "%s - flow control = NONE\n", __func__);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/cyberjack.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/cyberjack.c
@@ -357,11 +357,12 @@
 	struct device *dev = &port->dev;
 	int status = urb->status;
 	unsigned long flags;
+	bool resubmitted = false;
 
-	set_bit(0, &port->write_urbs_free);
 	if (status) {
 		dev_dbg(dev, "%s - nonzero write bulk status received: %d\n",
 			__func__, status);
+		set_bit(0, &port->write_urbs_free);
 		return;
 	}
 
@@ -394,6 +395,8 @@
 			goto exit;
 		}
 
+		resubmitted = true;
+
 		dev_dbg(dev, "%s - priv->wrsent=%d\n", __func__, priv->wrsent);
 		dev_dbg(dev, "%s - priv->wrfilled=%d\n", __func__, priv->wrfilled);
 
@@ -410,6 +413,8 @@
 
 exit:
 	spin_unlock_irqrestore(&priv->lock, flags);
+	if (!resubmitted)
+		set_bit(0, &port->write_urbs_free);
 	usb_serial_port_softint(port);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/cypress_m8.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/cypress_m8.c
@@ -59,6 +59,7 @@
 
 static const struct usb_device_id id_table_cyphidcomrs232[] = {
 	{ USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) },
+	{ USB_DEVICE(VENDOR_ID_SAI, PRODUCT_ID_CYPHIDCOM) },
 	{ USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) },
 	{ USB_DEVICE(VENDOR_ID_FRWD, PRODUCT_ID_CYPHIDCOM_FRWD) },
 	{ }						/* Terminating entry */
@@ -73,6 +74,7 @@
 	{ USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) },
 	{ USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) },
 	{ USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) },
+	{ USB_DEVICE(VENDOR_ID_SAI, PRODUCT_ID_CYPHIDCOM) },
 	{ USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) },
 	{ USB_DEVICE(VENDOR_ID_FRWD, PRODUCT_ID_CYPHIDCOM_FRWD) },
 	{ USB_DEVICE(VENDOR_ID_DAZZLE, PRODUCT_ID_CA42) },
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/cypress_m8.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/cypress_m8.h
@@ -25,6 +25,9 @@
 #define VENDOR_ID_CYPRESS		0x04b4
 #define PRODUCT_ID_CYPHIDCOM		0x5500
 
+/* Simply Automated HID->COM UPB PIM (using Cypress PID 0x5500) */
+#define VENDOR_ID_SAI			0x17dd
+
 /* FRWD Dongle - a GPS sports watch */
 #define VENDOR_ID_FRWD			0x6737
 #define PRODUCT_ID_CYPHIDCOM_FRWD	0x0001
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/digi_acceleport.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/digi_acceleport.c
@@ -19,7 +19,6 @@
 #include <linux/tty_flip.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
-#include <linux/workqueue.h>
 #include <linux/uaccess.h>
 #include <linux/usb.h>
 #include <linux/wait.h>
@@ -198,14 +197,12 @@
 	int dp_throttle_restart;
 	wait_queue_head_t dp_flush_wait;
 	wait_queue_head_t dp_close_wait;	/* wait queue for close */
-	struct work_struct dp_wakeup_work;
 	struct usb_serial_port *dp_port;
 };
 
 
 /* Local Function Declarations */
 
-static void digi_wakeup_write_lock(struct work_struct *work);
 static int digi_write_oob_command(struct usb_serial_port *port,
 	unsigned char *buf, int count, int interruptible);
 static int digi_write_inb_command(struct usb_serial_port *port,
@@ -356,26 +353,6 @@
 	return timeout;
 }
 
-
-/*
- *  Digi Wakeup Write
- *
- *  Wake up port, line discipline, and tty processes sleeping
- *  on writes.
- */
-
-static void digi_wakeup_write_lock(struct work_struct *work)
-{
-	struct digi_port *priv =
-			container_of(work, struct digi_port, dp_wakeup_work);
-	struct usb_serial_port *port = priv->dp_port;
-	unsigned long flags;
-
-	spin_lock_irqsave(&priv->dp_port_lock, flags);
-	tty_port_tty_wakeup(&port->port);
-	spin_unlock_irqrestore(&priv->dp_port_lock, flags);
-}
-
 /*
  *  Digi Write OOB Command
  *
@@ -986,6 +963,7 @@
 	unsigned long flags;
 	int ret = 0;
 	int status = urb->status;
+	bool wakeup;
 
 	/* port and serial sanity check */
 	if (port == NULL || (priv = usb_get_serial_port_data(port)) == NULL) {
@@ -1012,6 +990,7 @@
 	}
 
 	/* try to send any buffered data on this port */
+	wakeup = true;
 	spin_lock_irqsave(&priv->dp_port_lock, flags);
 	priv->dp_write_urb_in_use = 0;
 	if (priv->dp_out_buf_len > 0) {
@@ -1027,19 +1006,18 @@
 		if (ret == 0) {
 			priv->dp_write_urb_in_use = 1;
 			priv->dp_out_buf_len = 0;
+			wakeup = false;
 		}
 	}
-	/* wake up processes sleeping on writes immediately */
-	tty_port_tty_wakeup(&port->port);
-	/* also queue up a wakeup at scheduler time, in case we */
-	/* lost the race in write_chan(). */
-	schedule_work(&priv->dp_wakeup_work);
-
 	spin_unlock_irqrestore(&priv->dp_port_lock, flags);
+
 	if (ret && ret != -EPERM)
 		dev_err_console(port,
 			"%s: usb_submit_urb failed, ret=%d, port=%d\n",
 			__func__, ret, priv->dp_port_num);
+
+	if (wakeup)
+		tty_port_tty_wakeup(&port->port);
 }
 
 static int digi_write_room(struct tty_struct *tty)
@@ -1239,7 +1217,6 @@
 	init_waitqueue_head(&priv->dp_transmit_idle_wait);
 	init_waitqueue_head(&priv->dp_flush_wait);
 	init_waitqueue_head(&priv->dp_close_wait);
-	INIT_WORK(&priv->dp_wakeup_work, digi_wakeup_write_lock);
 	priv->dp_port = port;
 
 	init_waitqueue_head(&port->write_wait);
@@ -1508,13 +1485,14 @@
 			rts = C_CRTSCTS(tty);
 
 		if (tty && opcode == DIGI_CMD_READ_INPUT_SIGNALS) {
+			bool wakeup = false;
+
 			spin_lock_irqsave(&priv->dp_port_lock, flags);
 			/* convert from digi flags to termiox flags */
 			if (val & DIGI_READ_INPUT_SIGNALS_CTS) {
 				priv->dp_modem_signals |= TIOCM_CTS;
-				/* port must be open to use tty struct */
 				if (rts)
-					tty_port_tty_wakeup(&port->port);
+					wakeup = true;
 			} else {
 				priv->dp_modem_signals &= ~TIOCM_CTS;
 				/* port must be open to use tty struct */
@@ -1533,6 +1511,9 @@
 				priv->dp_modem_signals &= ~TIOCM_CD;
 
 			spin_unlock_irqrestore(&priv->dp_port_lock, flags);
+
+			if (wakeup)
+				tty_port_tty_wakeup(&port->port);
 		} else if (opcode == DIGI_CMD_TRANSMIT_IDLE) {
 			spin_lock_irqsave(&priv->dp_port_lock, flags);
 			priv->dp_transmit_idle = 1;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/ftdi_sio.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/ftdi_sio.c
@@ -713,6 +713,7 @@
 	{ USB_DEVICE(XSENS_VID, XSENS_AWINDA_STATION_PID) },
 	{ USB_DEVICE(XSENS_VID, XSENS_CONVERTER_PID) },
 	{ USB_DEVICE(XSENS_VID, XSENS_MTDEVBOARD_PID) },
+	{ USB_DEVICE(XSENS_VID, XSENS_MTIUSBCONVERTER_PID) },
 	{ USB_DEVICE(XSENS_VID, XSENS_MTW_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_OMNI1509) },
 	{ USB_DEVICE(MOBILITY_VID, MOBILITY_USB_SERIAL_PID) },
@@ -1033,6 +1034,14 @@
 	/* Sienna devices */
 	{ USB_DEVICE(FTDI_VID, FTDI_SIENNA_PID) },
 	{ USB_DEVICE(ECHELON_VID, ECHELON_U20_PID) },
+	/* U-Blox devices */
+	{ USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ZED_PID) },
+	{ USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ODIN_PID) },
+	/* FreeCalypso USB adapters */
+	{ USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_BUF_PID),
+		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
+	{ USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_UNBUF_PID),
+		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
 	{ }					/* Terminating entry */
 };
 
@@ -1377,8 +1386,9 @@
 	index_value = get_ftdi_divisor(tty, port);
 	value = (u16)index_value;
 	index = (u16)(index_value >> 16);
-	if ((priv->chip_type == FT2232C) || (priv->chip_type == FT2232H) ||
-		(priv->chip_type == FT4232H) || (priv->chip_type == FT232H)) {
+	if (priv->chip_type == FT2232C || priv->chip_type == FT2232H ||
+			priv->chip_type == FT4232H || priv->chip_type == FT232H ||
+			priv->chip_type == FTX) {
 		/* Probably the BM type needs the MSB of the encoded fractional
 		 * divider also moved like for the chips above. Any infos? */
 		index = (u16)((index << 8) | priv->interface);
@@ -2477,12 +2487,11 @@
 #define FTDI_RS_ERR_MASK (FTDI_RS_BI | FTDI_RS_PE | FTDI_RS_FE | FTDI_RS_OE)
 
 static int ftdi_process_packet(struct usb_serial_port *port,
-		struct ftdi_private *priv, char *packet, int len)
+		struct ftdi_private *priv, unsigned char *buf, int len)
 {
+	unsigned char status;
 	int i;
-	char status;
 	char flag;
-	char *ch;
 
 	if (len < 2) {
 		dev_dbg(&port->dev, "malformed packet\n");
@@ -2492,7 +2501,7 @@
 	/* Compare new line status to the old one, signal if different/
 	   N.B. packet may be processed more than once, but differences
 	   are only processed once.  */
-	status = packet[0] & FTDI_STATUS_B0_MASK;
+	status = buf[0] & FTDI_STATUS_B0_MASK;
 	if (status != priv->prev_status) {
 		char diff_status = status ^ priv->prev_status;
 
@@ -2518,13 +2527,12 @@
 	}
 
 	/* save if the transmitter is empty or not */
-	if (packet[1] & FTDI_RS_TEMT)
+	if (buf[1] & FTDI_RS_TEMT)
 		priv->transmit_empty = 1;
 	else
 		priv->transmit_empty = 0;
 
-	len -= 2;
-	if (!len)
+	if (len == 2)
 		return 0;	/* status only */
 
 	/*
@@ -2532,40 +2540,41 @@
 	 * data payload to avoid over-reporting.
 	 */
 	flag = TTY_NORMAL;
-	if (packet[1] & FTDI_RS_ERR_MASK) {
+	if (buf[1] & FTDI_RS_ERR_MASK) {
 		/* Break takes precedence over parity, which takes precedence
 		 * over framing errors */
-		if (packet[1] & FTDI_RS_BI) {
+		if (buf[1] & FTDI_RS_BI) {
 			flag = TTY_BREAK;
 			port->icount.brk++;
 			usb_serial_handle_break(port);
-		} else if (packet[1] & FTDI_RS_PE) {
+		} else if (buf[1] & FTDI_RS_PE) {
 			flag = TTY_PARITY;
 			port->icount.parity++;
-		} else if (packet[1] & FTDI_RS_FE) {
+		} else if (buf[1] & FTDI_RS_FE) {
 			flag = TTY_FRAME;
 			port->icount.frame++;
 		}
 		/* Overrun is special, not associated with a char */
-		if (packet[1] & FTDI_RS_OE) {
+		if (buf[1] & FTDI_RS_OE) {
 			port->icount.overrun++;
 			tty_insert_flip_char(&port->port, 0, TTY_OVERRUN);
 		}
 	}
 
-	port->icount.rx += len;
-	ch = packet + 2;
+	port->icount.rx += len - 2;
 
 	if (port->port.console && port->sysrq) {
-		for (i = 0; i < len; i++, ch++) {
-			if (!usb_serial_handle_sysrq_char(port, *ch))
-				tty_insert_flip_char(&port->port, *ch, flag);
+		for (i = 2; i < len; i++) {
+			if (usb_serial_handle_sysrq_char(port, buf[i]))
+				continue;
+			tty_insert_flip_char(&port->port, buf[i], flag);
 		}
 	} else {
-		tty_insert_flip_string_fixed_flag(&port->port, ch, flag, len);
+		tty_insert_flip_string_fixed_flag(&port->port, buf + 2, flag,
+				len - 2);
 	}
 
-	return len;
+	return len - 2;
 }
 
 static void ftdi_process_read_urb(struct urb *urb)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/ftdi_sio_ids.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/ftdi_sio_ids.h
@@ -39,6 +39,13 @@
 
 #define FTDI_LUMEL_PD12_PID	0x6002
 
+/*
+ * Custom USB adapters made by Falconia Partners LLC
+ * for FreeCalypso project, ID codes allocated to Falconia by FTDI.
+ */
+#define FTDI_FALCONIA_JTAG_BUF_PID	0x7150
+#define FTDI_FALCONIA_JTAG_UNBUF_PID	0x7151
+
 /* Sienna Serial Interface by Secyourit GmbH */
 #define FTDI_SIENNA_PID		0x8348
 
@@ -160,6 +167,7 @@
 #define XSENS_AWINDA_DONGLE_PID 0x0102
 #define XSENS_MTW_PID		0x0200	/* Xsens MTw */
 #define XSENS_MTDEVBOARD_PID	0x0300	/* Motion Tracker Development Board */
+#define XSENS_MTIUSBCONVERTER_PID	0x0301	/* MTi USB converter */
 #define XSENS_CONVERTER_PID	0xD00D	/* Xsens USB-serial converter */
 
 /* Xsens devices using FTDI VID */
@@ -1558,3 +1566,10 @@
  */
 #define UNJO_VID			0x22B7
 #define UNJO_ISODEBUG_V1_PID		0x150D
+
+/*
+ * U-Blox products (http://www.u-blox.com).
+ */
+#define UBLOX_VID			0x1546
+#define UBLOX_C099F9P_ZED_PID		0x0502
+#define UBLOX_C099F9P_ODIN_PID		0x0503
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/garmin_gps.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/garmin_gps.c
@@ -1138,8 +1138,8 @@
 		   send it directly to the tty port */
 		if (garmin_data_p->flags & FLAGS_QUEUING) {
 			pkt_add(garmin_data_p, data, data_length);
-		} else if (bulk_data ||
-			   getLayerId(data) == GARMIN_LAYERID_APPL) {
+		} else if (bulk_data || (data_length >= sizeof(u32) &&
+				getLayerId(data) == GARMIN_LAYERID_APPL)) {
 
 			spin_lock_irqsave(&garmin_data_p->lock, flags);
 			garmin_data_p->flags |= APP_RESP_SEEN;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/io_edgeport.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/io_edgeport.c
@@ -710,13 +710,13 @@
 		/* grab the txcredits for the ports if available */
 		position = 2;
 		portNumber = 0;
-		while ((position < length) &&
+		while ((position < length - 1) &&
 				(portNumber < edge_serial->serial->num_ports)) {
 			txCredits = data[position] | (data[position+1] << 8);
 			if (txCredits) {
 				port = edge_serial->serial->port[portNumber];
 				edge_port = usb_get_serial_port_data(port);
-				if (edge_port->open) {
+				if (edge_port && edge_port->open) {
 					spin_lock_irqsave(&edge_port->ep_lock,
 							  flags);
 					edge_port->txCredits += txCredits;
@@ -1725,7 +1725,8 @@
 static void process_rcvd_data(struct edgeport_serial *edge_serial,
 				unsigned char *buffer, __u16 bufferLength)
 {
-	struct device *dev = &edge_serial->serial->dev->dev;
+	struct usb_serial *serial = edge_serial->serial;
+	struct device *dev = &serial->dev->dev;
 	struct usb_serial_port *port;
 	struct edgeport_port *edge_port;
 	__u16 lastBufferLength;
@@ -1821,11 +1822,10 @@
 
 			/* spit this data back into the tty driver if this
 			   port is open */
-			if (rxLen) {
-				port = edge_serial->serial->port[
-							edge_serial->rxPort];
+			if (rxLen && edge_serial->rxPort < serial->num_ports) {
+				port = serial->port[edge_serial->rxPort];
 				edge_port = usb_get_serial_port_data(port);
-				if (edge_port->open) {
+				if (edge_port && edge_port->open) {
 					dev_dbg(dev, "%s - Sending %d bytes to TTY for port %d\n",
 						__func__, rxLen,
 						edge_serial->rxPort);
@@ -1833,8 +1833,8 @@
 							rxLen);
 					edge_port->port->icount.rx += rxLen;
 				}
-				buffer += rxLen;
 			}
+			buffer += rxLen;
 			break;
 
 		case EXPECT_HDR3:	/* Expect 3rd byte of status header */
@@ -1869,6 +1869,8 @@
 	__u8 code = edge_serial->rxStatusCode;
 
 	/* switch the port pointer to the one being currently talked about */
+	if (edge_serial->rxPort >= edge_serial->serial->num_ports)
+		return;
 	port = edge_serial->serial->port[edge_serial->rxPort];
 	edge_port = usb_get_serial_port_data(port);
 	if (edge_port == NULL) {
@@ -2901,16 +2903,18 @@
 	response = 0;
 
 	if (edge_serial->is_epic) {
+		struct usb_host_interface *alt;
+
+		alt = serial->interface->cur_altsetting;
+
 		/* EPIC thing, set up our interrupt polling now and our read
 		 * urb, so that the device knows it really is connected. */
 		interrupt_in_found = bulk_in_found = bulk_out_found = false;
-		for (i = 0; i < serial->interface->altsetting[0]
-						.desc.bNumEndpoints; ++i) {
+		for (i = 0; i < alt->desc.bNumEndpoints; ++i) {
 			struct usb_endpoint_descriptor *endpoint;
 			int buffer_size;
 
-			endpoint = &serial->interface->altsetting[0].
-							endpoint[i].desc;
+			endpoint = &alt->endpoint[i].desc;
 			buffer_size = usb_endpoint_maxp(endpoint);
 			if (!interrupt_in_found &&
 			    (usb_endpoint_is_int_in(endpoint))) {
@@ -2999,26 +3003,32 @@
 				response = -ENODEV;
 			}
 
-			usb_free_urb(edge_serial->interrupt_read_urb);
-			kfree(edge_serial->interrupt_in_buffer);
-
-			usb_free_urb(edge_serial->read_urb);
-			kfree(edge_serial->bulk_in_buffer);
-
-			kfree(edge_serial);
-
-			return response;
+			goto error;
 		}
 
 		/* start interrupt read for this edgeport this interrupt will
 		 * continue as long as the edgeport is connected */
 		response = usb_submit_urb(edge_serial->interrupt_read_urb,
 								GFP_KERNEL);
-		if (response)
+		if (response) {
 			dev_err(ddev, "%s - Error %d submitting control urb\n",
 				__func__, response);
+
+			goto error;
+		}
 	}
 	return response;
+
+error:
+	usb_free_urb(edge_serial->interrupt_read_urb);
+	kfree(edge_serial->interrupt_in_buffer);
+
+	usb_free_urb(edge_serial->read_urb);
+	kfree(edge_serial->bulk_in_buffer);
+
+	kfree(edge_serial);
+
+	return response;
 }
 
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/ir-usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/ir-usb.c
@@ -45,9 +45,10 @@
 static int xbof = -1;
 
 static int  ir_startup (struct usb_serial *serial);
-static int  ir_open(struct tty_struct *tty, struct usb_serial_port *port);
-static int ir_prepare_write_buffer(struct usb_serial_port *port,
-						void *dest, size_t size);
+static int ir_write(struct tty_struct *tty, struct usb_serial_port *port,
+		const unsigned char *buf, int count);
+static int ir_write_room(struct tty_struct *tty);
+static void ir_write_bulk_callback(struct urb *urb);
 static void ir_process_read_urb(struct urb *urb);
 static void ir_set_termios(struct tty_struct *tty,
 		struct usb_serial_port *port, struct ktermios *old_termios);
@@ -77,8 +78,9 @@
 	.num_ports		= 1,
 	.set_termios		= ir_set_termios,
 	.attach			= ir_startup,
-	.open			= ir_open,
-	.prepare_write_buffer	= ir_prepare_write_buffer,
+	.write			= ir_write,
+	.write_room		= ir_write_room,
+	.write_bulk_callback	= ir_write_bulk_callback,
 	.process_read_urb	= ir_process_read_urb,
 };
 
@@ -195,6 +197,9 @@
 	struct usb_irda_cs_descriptor *irda_desc;
 	int rates;
 
+	if (serial->num_bulk_in < 1 || serial->num_bulk_out < 1)
+		return -ENODEV;
+
 	irda_desc = irda_usb_find_class_desc(serial, 0);
 	if (!irda_desc) {
 		dev_err(&serial->dev->dev,
@@ -251,35 +256,102 @@
 	return 0;
 }
 
-static int ir_open(struct tty_struct *tty, struct usb_serial_port *port)
+static int ir_write(struct tty_struct *tty, struct usb_serial_port *port,
+		const unsigned char *buf, int count)
 {
-	int i;
+	struct urb *urb = NULL;
+	unsigned long flags;
+	int ret;
 
-	for (i = 0; i < ARRAY_SIZE(port->write_urbs); ++i)
-		port->write_urbs[i]->transfer_flags = URB_ZERO_PACKET;
+	if (port->bulk_out_size == 0)
+		return -EINVAL;
 
-	/* Start reading from the device */
-	return usb_serial_generic_open(tty, port);
-}
+	if (count == 0)
+		return 0;
 
-static int ir_prepare_write_buffer(struct usb_serial_port *port,
-						void *dest, size_t size)
-{
-	unsigned char *buf = dest;
-	int count;
+	count = min(count, port->bulk_out_size - 1);
+
+	spin_lock_irqsave(&port->lock, flags);
+	if (__test_and_clear_bit(0, &port->write_urbs_free)) {
+		urb = port->write_urbs[0];
+		port->tx_bytes += count;
+	}
+	spin_unlock_irqrestore(&port->lock, flags);
+
+	if (!urb)
+		return 0;
 
 	/*
 	 * The first byte of the packet we send to the device contains an
-	 * inbound header which indicates an additional number of BOFs and
+	 * outbound header which indicates an additional number of BOFs and
 	 * a baud rate change.
 	 *
 	 * See section 5.4.2.2 of the USB IrDA spec.
 	 */
-	*buf = ir_xbof | ir_baud;
+	*(u8 *)urb->transfer_buffer = ir_xbof | ir_baud;
+
+	memcpy(urb->transfer_buffer + 1, buf, count);
+
+	urb->transfer_buffer_length = count + 1;
+	urb->transfer_flags = URB_ZERO_PACKET;
+
+	ret = usb_submit_urb(urb, GFP_ATOMIC);
+	if (ret) {
+		dev_err(&port->dev, "failed to submit write urb: %d\n", ret);
+
+		spin_lock_irqsave(&port->lock, flags);
+		__set_bit(0, &port->write_urbs_free);
+		port->tx_bytes -= count;
+		spin_unlock_irqrestore(&port->lock, flags);
+
+		return ret;
+	}
+
+	return count;
+}
+
+static void ir_write_bulk_callback(struct urb *urb)
+{
+	struct usb_serial_port *port = urb->context;
+	int status = urb->status;
+	unsigned long flags;
+
+	spin_lock_irqsave(&port->lock, flags);
+	__set_bit(0, &port->write_urbs_free);
+	port->tx_bytes -= urb->transfer_buffer_length - 1;
+	spin_unlock_irqrestore(&port->lock, flags);
+
+	switch (status) {
+	case 0:
+		break;
+	case -ENOENT:
+	case -ECONNRESET:
+	case -ESHUTDOWN:
+		dev_dbg(&port->dev, "write urb stopped: %d\n", status);
+		return;
+	case -EPIPE:
+		dev_err(&port->dev, "write urb stopped: %d\n", status);
+		return;
+	default:
+		dev_err(&port->dev, "nonzero write-urb status: %d\n", status);
+		break;
+	}
+
+	usb_serial_port_softint(port);
+}
+
+static int ir_write_room(struct tty_struct *tty)
+{
+	struct usb_serial_port *port = tty->driver_data;
+	int count = 0;
+
+	if (port->bulk_out_size == 0)
+		return 0;
+
+	if (test_bit(0, &port->write_urbs_free))
+		count = port->bulk_out_size - 1;
 
-	count = kfifo_out_locked(&port->write_fifo, buf + 1, size - 1,
-								&port->lock);
-	return count + 1;
+	return count;
 }
 
 static void ir_process_read_urb(struct urb *urb)
@@ -332,34 +404,34 @@
 
 	switch (baud) {
 	case 2400:
-		ir_baud = USB_IRDA_BR_2400;
+		ir_baud = USB_IRDA_LS_2400;
 		break;
 	case 9600:
-		ir_baud = USB_IRDA_BR_9600;
+		ir_baud = USB_IRDA_LS_9600;
 		break;
 	case 19200:
-		ir_baud = USB_IRDA_BR_19200;
+		ir_baud = USB_IRDA_LS_19200;
 		break;
 	case 38400:
-		ir_baud = USB_IRDA_BR_38400;
+		ir_baud = USB_IRDA_LS_38400;
 		break;
 	case 57600:
-		ir_baud = USB_IRDA_BR_57600;
+		ir_baud = USB_IRDA_LS_57600;
 		break;
 	case 115200:
-		ir_baud = USB_IRDA_BR_115200;
+		ir_baud = USB_IRDA_LS_115200;
 		break;
 	case 576000:
-		ir_baud = USB_IRDA_BR_576000;
+		ir_baud = USB_IRDA_LS_576000;
 		break;
 	case 1152000:
-		ir_baud = USB_IRDA_BR_1152000;
+		ir_baud = USB_IRDA_LS_1152000;
 		break;
 	case 4000000:
-		ir_baud = USB_IRDA_BR_4000000;
+		ir_baud = USB_IRDA_LS_4000000;
 		break;
 	default:
-		ir_baud = USB_IRDA_BR_9600;
+		ir_baud = USB_IRDA_LS_9600;
 		baud = 9600;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/iuu_phoenix.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/iuu_phoenix.c
@@ -353,10 +353,11 @@
 	struct usb_serial_port *port = urb->context;
 	int result;
 	char *buf_ptr = port->write_urb->transfer_buffer;
-	*buf_ptr++ = IUU_SET_LED;
+
 	if (xmas) {
-		get_random_bytes(buf_ptr, 6);
-		*(buf_ptr+7) = 1;
+		buf_ptr[0] = IUU_SET_LED;
+		get_random_bytes(buf_ptr + 1, 6);
+		buf_ptr[7] = 1;
 	} else {
 		iuu_rgbf_fill_buffer(buf_ptr, 255, 255, 0, 0, 0, 0, 255);
 	}
@@ -374,13 +375,14 @@
 	struct usb_serial_port *port = urb->context;
 	int result;
 	char *buf_ptr = port->write_urb->transfer_buffer;
+
 	if (xmas) {
 		iuu_rxcmd(urb);
 		return;
-	} else {
-		*buf_ptr++ = IUU_SET_LED;
-		iuu_rgbf_fill_buffer(buf_ptr, 0, 0, 255, 255, 0, 0, 255);
 	}
+
+	iuu_rgbf_fill_buffer(buf_ptr, 0, 0, 255, 255, 0, 0, 255);
+
 	usb_fill_bulk_urb(port->write_urb, port->serial->dev,
 			  usb_sndbulkpipe(port->serial->dev,
 					  port->bulk_out_endpointAddress),
@@ -534,23 +536,29 @@
 	struct device *dev = &port->dev;
 	int i;
 	int status;
-	u8 rxcmd = IUU_UART_RX;
+	u8 *rxcmd;
 	struct iuu_private *priv = usb_get_serial_port_data(port);
 
 	if (iuu_led(port, 0xF000, 0, 0, 0xFF) < 0)
 		return -EIO;
 
+	rxcmd = kmalloc(1, GFP_KERNEL);
+	if (!rxcmd)
+		return -ENOMEM;
+
+	rxcmd[0] = IUU_UART_RX;
+
 	for (i = 0; i < 2; i++) {
-		status = bulk_immediate(port, &rxcmd, 1);
+		status = bulk_immediate(port, rxcmd, 1);
 		if (status != IUU_OPERATION_OK) {
 			dev_dbg(dev, "%s - uart_flush_write error\n", __func__);
-			return status;
+			goto out_free;
 		}
 
 		status = read_immediate(port, &priv->len, 1);
 		if (status != IUU_OPERATION_OK) {
 			dev_dbg(dev, "%s - uart_flush_read error\n", __func__);
-			return status;
+			goto out_free;
 		}
 
 		if (priv->len > 0) {
@@ -558,12 +566,16 @@
 			status = read_immediate(port, priv->buf, priv->len);
 			if (status != IUU_OPERATION_OK) {
 				dev_dbg(dev, "%s - uart_flush_read error\n", __func__);
-				return status;
+				goto out_free;
 			}
 		}
 	}
 	dev_dbg(dev, "%s - uart_flush_read OK!\n", __func__);
 	iuu_led(port, 0, 0xF000, 0, 0xFF);
+
+out_free:
+	kfree(rxcmd);
+
 	return status;
 }
 
@@ -697,14 +709,16 @@
 	struct iuu_private *priv = usb_get_serial_port_data(port);
 	unsigned long flags;
 
-	if (count > 256)
-		return -ENOMEM;
-
 	spin_lock_irqsave(&priv->lock, flags);
 
+	count = min(count, 256 - priv->writelen);
+	if (count == 0)
+		goto out;
+
 	/* fill the buffer */
 	memcpy(priv->writebuf + priv->writelen, buf, count);
 	priv->writelen += count;
+out:
 	spin_unlock_irqrestore(&priv->lock, flags);
 
 	return count;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/keyspan.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/keyspan.c
@@ -1058,6 +1058,8 @@
 	for (i = 0; i < serial->num_ports; ++i) {
 		port = serial->port[i];
 		p_priv = usb_get_serial_port_data(port);
+		if (!p_priv)
+			continue;
 
 		if (p_priv->resend_cont) {
 			dev_dbg(&port->dev, "%s - sending setup\n", __func__);
@@ -1459,6 +1461,8 @@
 	for (i = 0; i < serial->num_ports; ++i) {
 		port = serial->port[i];
 		p_priv = usb_get_serial_port_data(port);
+		if (!p_priv)
+			continue;
 
 		if (p_priv->resend_cont) {
 			dev_dbg(&port->dev, "%s - sending setup\n", __func__);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/keyspan_pda.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/keyspan_pda.c
@@ -40,11 +40,12 @@
 #define DRIVER_AUTHOR "Brian Warner <warner@lothar.com>"
 #define DRIVER_DESC "USB Keyspan PDA Converter driver"
 
+#define KEYSPAN_TX_THRESHOLD	16
+
 struct keyspan_pda_private {
 	int			tx_room;
 	int			tx_throttled;
-	struct work_struct			wakeup_work;
-	struct work_struct			unthrottle_work;
+	struct work_struct	unthrottle_work;
 	struct usb_serial	*serial;
 	struct usb_serial_port	*port;
 };
@@ -97,15 +98,6 @@
 };
 #endif
 
-static void keyspan_pda_wakeup_write(struct work_struct *work)
-{
-	struct keyspan_pda_private *priv =
-		container_of(work, struct keyspan_pda_private, wakeup_work);
-	struct usb_serial_port *port = priv->port;
-
-	tty_port_tty_wakeup(&port->port);
-}
-
 static void keyspan_pda_request_unthrottle(struct work_struct *work)
 {
 	struct keyspan_pda_private *priv =
@@ -120,7 +112,7 @@
 				 7, /* request_unthrottle */
 				 USB_TYPE_VENDOR | USB_RECIP_INTERFACE
 				 | USB_DIR_OUT,
-				 16, /* value: threshold */
+				 KEYSPAN_TX_THRESHOLD,
 				 0, /* index */
 				 NULL,
 				 0,
@@ -139,6 +131,8 @@
 	int retval;
 	int status = urb->status;
 	struct keyspan_pda_private *priv;
+	unsigned long flags;
+
 	priv = usb_get_serial_port_data(port);
 
 	switch (status) {
@@ -172,18 +166,21 @@
 		break;
 	case 1:
 		/* status interrupt */
-		if (len < 3) {
+		if (len < 2) {
 			dev_warn(&port->dev, "short interrupt message received\n");
 			break;
 		}
-		dev_dbg(&port->dev, "rx int, d1=%d, d2=%d\n", data[1], data[2]);
+		dev_dbg(&port->dev, "rx int, d1=%d\n", data[1]);
 		switch (data[1]) {
 		case 1: /* modemline change */
 			break;
 		case 2: /* tx unthrottle interrupt */
+			spin_lock_irqsave(&port->lock, flags);
 			priv->tx_throttled = 0;
+			priv->tx_room = max(priv->tx_room, KEYSPAN_TX_THRESHOLD);
+			spin_unlock_irqrestore(&port->lock, flags);
 			/* queue up a wakeup at scheduler time */
-			schedule_work(&priv->wakeup_work);
+			usb_serial_port_softint(port);
 			break;
 		default:
 			break;
@@ -443,6 +440,7 @@
 	int request_unthrottle = 0;
 	int rc = 0;
 	struct keyspan_pda_private *priv;
+	unsigned long flags;
 
 	priv = usb_get_serial_port_data(port);
 	/* guess how much room is left in the device's ring buffer, and if we
@@ -462,13 +460,13 @@
 	   the TX urb is in-flight (wait until it completes)
 	   the device is full (wait until it says there is room)
 	*/
-	spin_lock_bh(&port->lock);
+	spin_lock_irqsave(&port->lock, flags);
 	if (!test_bit(0, &port->write_urbs_free) || priv->tx_throttled) {
-		spin_unlock_bh(&port->lock);
+		spin_unlock_irqrestore(&port->lock, flags);
 		return 0;
 	}
 	clear_bit(0, &port->write_urbs_free);
-	spin_unlock_bh(&port->lock);
+	spin_unlock_irqrestore(&port->lock, flags);
 
 	/* At this point the URB is in our control, nobody else can submit it
 	   again (the only sudden transition was the one from EINPROGRESS to
@@ -514,7 +512,8 @@
 			goto exit;
 		}
 	}
-	if (count > priv->tx_room) {
+
+	if (count >= priv->tx_room) {
 		/* we're about to completely fill the Tx buffer, so
 		   we'll be throttled afterwards. */
 		count = priv->tx_room;
@@ -547,7 +546,7 @@
 
 	rc = count;
 exit:
-	if (rc < 0)
+	if (rc <= 0)
 		set_bit(0, &port->write_urbs_free);
 	return rc;
 }
@@ -556,27 +555,28 @@
 static void keyspan_pda_write_bulk_callback(struct urb *urb)
 {
 	struct usb_serial_port *port = urb->context;
-	struct keyspan_pda_private *priv;
 
 	set_bit(0, &port->write_urbs_free);
-	priv = usb_get_serial_port_data(port);
 
 	/* queue up a wakeup at scheduler time */
-	schedule_work(&priv->wakeup_work);
+	usb_serial_port_softint(port);
 }
 
 
 static int keyspan_pda_write_room(struct tty_struct *tty)
 {
 	struct usb_serial_port *port = tty->driver_data;
-	struct keyspan_pda_private *priv;
-	priv = usb_get_serial_port_data(port);
-	/* used by n_tty.c for processing of tabs and such. Giving it our
-	   conservative guess is probably good enough, but needs testing by
-	   running a console through the device. */
-	return priv->tx_room;
-}
+	struct keyspan_pda_private *priv = usb_get_serial_port_data(port);
+	unsigned long flags;
+	int room = 0;
 
+	spin_lock_irqsave(&port->lock, flags);
+	if (test_bit(0, &port->write_urbs_free) && !priv->tx_throttled)
+		room = priv->tx_room;
+	spin_unlock_irqrestore(&port->lock, flags);
+
+	return room;
+}
 
 static int keyspan_pda_chars_in_buffer(struct tty_struct *tty)
 {
@@ -656,8 +656,12 @@
 }
 static void keyspan_pda_close(struct usb_serial_port *port)
 {
+	struct keyspan_pda_private *priv = usb_get_serial_port_data(port);
+
 	usb_kill_urb(port->write_urb);
 	usb_kill_urb(port->interrupt_in_urb);
+
+	cancel_work_sync(&priv->unthrottle_work);
 }
 
 
@@ -715,7 +719,6 @@
 	if (!priv)
 		return -ENOMEM;
 
-	INIT_WORK(&priv->wakeup_work, keyspan_pda_wakeup_write);
 	INIT_WORK(&priv->unthrottle_work, keyspan_pda_request_unthrottle);
 	priv->serial = port->serial;
 	priv->port = port;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/kl5kusb105.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/kl5kusb105.c
@@ -276,12 +276,12 @@
 	priv->cfg.unknown2 = cfg->unknown2;
 	spin_unlock_irqrestore(&priv->lock, flags);
 
+	kfree(cfg);
+
 	/* READ_ON and urb submission */
 	rc = usb_serial_generic_open(tty, port);
-	if (rc) {
-		retval = rc;
-		goto err_free_cfg;
-	}
+	if (rc)
+		return rc;
 
 	rc = usb_control_msg(port->serial->dev,
 			     usb_sndctrlpipe(port->serial->dev, 0),
@@ -324,8 +324,6 @@
 			     KLSI_TIMEOUT);
 err_generic_close:
 	usb_serial_generic_close(port);
-err_free_cfg:
-	kfree(cfg);
 
 	return retval;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/mos7720.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/mos7720.c
@@ -638,6 +638,8 @@
 		spin_unlock(&release_lock);
 		return;
 	}
+	mos_parport->shadowDCR = s->u.pc.ctr;
+	mos_parport->shadowECR = s->u.pc.ecr;
 	write_parport_reg_nonblock(mos_parport, MOS7720_DCR,
 				   mos_parport->shadowDCR);
 	write_parport_reg_nonblock(mos_parport, MOS7720_ECR,
@@ -1248,8 +1250,10 @@
 	if (urb->transfer_buffer == NULL) {
 		urb->transfer_buffer = kmalloc(URB_TRANSFER_BUFFER_SIZE,
 					       GFP_ATOMIC);
-		if (!urb->transfer_buffer)
+		if (!urb->transfer_buffer) {
+			bytes_sent = -ENOMEM;
 			goto exit;
+		}
 	}
 	transfer_size = min(count, URB_TRANSFER_BUFFER_SIZE);
 
@@ -1833,10 +1837,6 @@
 	product = le16_to_cpu(serial->dev->descriptor.idProduct);
 	dev = serial->dev;
 
-	/* setting configuration feature to one */
-	usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
-			(__u8)0x03, 0x00, 0x01, 0x00, NULL, 0x00, 5000);
-
 	if (product == MOSCHIP_DEVICE_ID_7715) {
 		struct urb *urb = serial->port[0]->interrupt_in_urb;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/mos7840.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/mos7840.c
@@ -119,11 +119,15 @@
 /* This driver also supports
  * ATEN UC2324 device using Moschip MCS7840
  * ATEN UC2322 device using Moschip MCS7820
+ * MOXA UPort 2210 device using Moschip MCS7820
  */
 #define USB_VENDOR_ID_ATENINTL		0x0557
 #define ATENINTL_DEVICE_ID_UC2324	0x2011
 #define ATENINTL_DEVICE_ID_UC2322	0x7820
 
+#define USB_VENDOR_ID_MOXA		0x110a
+#define MOXA_DEVICE_ID_2210		0x2210
+
 /* Interrupt Routine Defines    */
 
 #define SERIAL_IIR_RLS      0x06
@@ -195,6 +199,7 @@
 	{USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)},
 	{USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
 	{USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)},
+	{USB_DEVICE(USB_VENDOR_ID_MOXA, MOXA_DEVICE_ID_2210)},
 	{}			/* terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, id_table);
@@ -1325,8 +1330,10 @@
 	if (urb->transfer_buffer == NULL) {
 		urb->transfer_buffer = kmalloc(URB_TRANSFER_BUFFER_SIZE,
 					       GFP_ATOMIC);
-		if (!urb->transfer_buffer)
+		if (!urb->transfer_buffer) {
+			bytes_sent = -ENOMEM;
 			goto exit;
+		}
 	}
 	transfer_size = min(count, URB_TRANSFER_BUFFER_SIZE);
 
@@ -2020,6 +2027,7 @@
 				const struct usb_device_id *id)
 {
 	u16 product = le16_to_cpu(serial->dev->descriptor.idProduct);
+	u16 vid = le16_to_cpu(serial->dev->descriptor.idVendor);
 	u8 *buf;
 	int device_type;
 
@@ -2030,6 +2038,11 @@
 		goto out;
 	}
 
+	if (vid == USB_VENDOR_ID_MOXA && product == MOXA_DEVICE_ID_2210) {
+		device_type = MOSCHIP_DEVICE_ID_7820;
+		goto out;
+	}
+
 	buf = kzalloc(VENDOR_READ_LENGTH, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
@@ -2279,11 +2292,6 @@
 			goto error;
 		} else
 			dev_dbg(&port->dev, "ZLP_REG5 Writing success status%d\n", status);
-
-		/* setting configuration feature to one */
-		usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
-				0x03, 0x00, 0x01, 0x00, NULL, 0x00,
-				MOS_WDR_TIMEOUT);
 	}
 	return 0;
 error:
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/opticon.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/opticon.c
@@ -113,7 +113,7 @@
 	retval = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
 				requesttype,
 				USB_DIR_OUT|USB_TYPE_VENDOR|USB_RECIP_INTERFACE,
-				0, 0, buffer, 1, 0);
+				0, 0, buffer, 1, USB_CTRL_SET_TIMEOUT);
 	kfree(buffer);
 
 	if (retval < 0)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/option.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/option.c
@@ -197,6 +197,7 @@
 #define DELL_PRODUCT_5804_MINICARD_ATT		0x819b  /* Novatel E371 */
 
 #define DELL_PRODUCT_5821E			0x81d7
+#define DELL_PRODUCT_5821E_ESIM			0x81e0
 
 #define KYOCERA_VENDOR_ID			0x0c88
 #define KYOCERA_PRODUCT_KPC650			0x17da
@@ -244,9 +245,12 @@
 /* These Quectel products use Quectel's vendor ID */
 #define QUECTEL_PRODUCT_EC21			0x0121
 #define QUECTEL_PRODUCT_EC25			0x0125
+#define QUECTEL_PRODUCT_EG95			0x0195
 #define QUECTEL_PRODUCT_BG96			0x0296
 #define QUECTEL_PRODUCT_EP06			0x0306
 #define QUECTEL_PRODUCT_EM12			0x0512
+#define QUECTEL_PRODUCT_RM500Q			0x0800
+#define QUECTEL_PRODUCT_EC200T			0x6026
 
 #define CMOTECH_VENDOR_ID			0x16d8
 #define CMOTECH_PRODUCT_6001			0x6001
@@ -415,11 +419,14 @@
 #define CINTERION_PRODUCT_PH8			0x0053
 #define CINTERION_PRODUCT_AHXX			0x0055
 #define CINTERION_PRODUCT_PLXX			0x0060
+#define CINTERION_PRODUCT_EXS82			0x006c
 #define CINTERION_PRODUCT_PH8_2RMNET		0x0082
 #define CINTERION_PRODUCT_PH8_AUDIO		0x0083
 #define CINTERION_PRODUCT_AHXX_2RMNET		0x0084
 #define CINTERION_PRODUCT_AHXX_AUDIO		0x0085
 #define CINTERION_PRODUCT_CLS8			0x00b0
+#define CINTERION_PRODUCT_MV31_MBIM		0x00b3
+#define CINTERION_PRODUCT_MV31_RMNET		0x00b7
 
 /* Olivetti products */
 #define OLIVETTI_VENDOR_ID			0x0b3c
@@ -525,6 +532,7 @@
 /* Cellient products */
 #define CELLIENT_VENDOR_ID			0x2692
 #define CELLIENT_PRODUCT_MEN200			0x9005
+#define CELLIENT_PRODUCT_MPL200			0x9025
 
 /* Hyundai Petatel Inc. products */
 #define PETATEL_VENDOR_ID			0x1ff4
@@ -557,6 +565,9 @@
 
 /* Device flags */
 
+/* Highest interface number which can be used with NCTRL() and RSVD() */
+#define FLAG_IFNUM_MAX	7
+
 /* Interface does not support modem-control requests */
 #define NCTRL(ifnum)	((BIT(ifnum) & 0xff) << 8)
 
@@ -566,6 +577,9 @@
 /* Interface must have two endpoints */
 #define NUMEP2		BIT(16)
 
+/* Device needs ZLP */
+#define ZLP		BIT(17)
+
 
 static const struct usb_device_id option_ids[] = {
 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -1044,6 +1058,8 @@
 	{ USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, DELL_PRODUCT_5804_MINICARD_ATT, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E),
 	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
+	{ USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5821E_ESIM),
+	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
 	{ 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) },
@@ -1086,10 +1102,15 @@
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
 	  .driver_info = RSVD(1) | RSVD(3) },
 	/* Quectel products using Quectel vendor ID */
-	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21),
-	  .driver_info = RSVD(4) },
-	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
-	  .driver_info = RSVD(4) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
+	  .driver_info = NUMEP2 },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0, 0) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0xff, 0xff),
+	  .driver_info = NUMEP2 },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25, 0xff, 0, 0) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0xff, 0xff),
+	  .driver_info = NUMEP2 },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
 	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
 	  .driver_info = RSVD(4) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
@@ -1098,6 +1119,14 @@
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0xff, 0xff),
 	  .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM12, 0xff, 0, 0) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0620, 0xff, 0xff, 0x30) },	/* EM160R-GL */
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, 0x0620, 0xff, 0, 0) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x30) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0, 0) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500Q, 0xff, 0xff, 0x10),
+	  .driver_info = ZLP },
+	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) },
+
 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
@@ -1145,6 +1174,10 @@
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1031, 0xff),	/* Telit LE910C1-EUX */
+	 .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(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),
@@ -1163,14 +1196,24 @@
 	  .driver_info = NCTRL(2) | RSVD(3) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1053, 0xff),	/* Telit FN980 (ECM) */
 	  .driver_info = NCTRL(0) | RSVD(1) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1054, 0xff),	/* Telit FT980-KS */
+	  .driver_info = NCTRL(2) | RSVD(3) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1055, 0xff),	/* Telit FN980 (PCIe) */
+	  .driver_info = NCTRL(0) | RSVD(1) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
 	  .driver_info = NCTRL(0) | RSVD(3) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1102, 0xff),	/* Telit ME910 (ECM) */
 	  .driver_info = NCTRL(0) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x110a, 0xff),	/* Telit ME910G1 */
+	  .driver_info = NCTRL(0) | RSVD(3) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x110b, 0xff),	/* Telit ME910G1 (ECM) */
+	  .driver_info = NCTRL(0) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910),
 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1203, 0xff),	/* Telit LE910Cx (RNDIS) */
+	  .driver_info = NCTRL(2) | RSVD(3) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910_USBCFG4),
 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920),
@@ -1185,6 +1228,10 @@
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1213, 0xff) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920A4_1214),
 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) | RSVD(3) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1230, 0xff),	/* Telit LE910Cx (rmnet) */
+	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1231, 0xff),	/* Telit LE910Cx (RNDIS) */
+	  .driver_info = NCTRL(2) | RSVD(3) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x1260),
 	  .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, 0x1261),
@@ -1193,6 +1240,8 @@
 	  .driver_info = NCTRL(0) | RSVD(1) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff),	/* Telit LN940 (MBIM) */
 	  .driver_info = NCTRL(0) },
+	{ USB_DEVICE(TELIT_VENDOR_ID, 0x9010),				/* Telit SBL FN980 flashing device */
+	  .driver_info = NCTRL(0) | ZLP },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff),
 	  .driver_info = RSVD(1) },
@@ -1520,7 +1569,8 @@
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1274, 0xff, 0xff, 0xff) },
-	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1275, 0xff, 0xff, 0xff) },
+	{ USB_DEVICE(ZTE_VENDOR_ID, 0x1275),	/* ZTE P685M */
+	  .driver_info = RSVD(3) | RSVD(4) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1276, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1277, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1278, 0xff, 0xff, 0xff) },
@@ -1794,6 +1844,8 @@
 	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9003, 0xff) },	/* Simcom SIM7500/SIM7600 MBIM mode */
 	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9011, 0xff),	/* Simcom SIM7500/SIM7600 RNDIS mode */
 	  .driver_info = RSVD(7) },
+	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9205, 0xff) },	/* Simcom SIM7070/SIM7080/SIM7090 AT+ECM mode */
+	{ USB_DEVICE_INTERFACE_CLASS(0x1e0e, 0x9206, 0xff) },	/* Simcom SIM7070/SIM7080/SIM7090 AT-only mode */
 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200),
 	  .driver_info = NCTRL(0) | NCTRL(1) | RSVD(4) },
 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D),
@@ -1858,12 +1910,17 @@
 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_AUDIO, 0xff) },
 	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_CLS8, 0xff),
 	  .driver_info = RSVD(0) | RSVD(4) },
+	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EXS82, 0xff) },
 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) },
 	{ USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) },
 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) },
 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, /* HC28 enumerates with Siemens or Cinterion VID depending on FW revision */
 	{ USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
+	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_MBIM, 0xff),
+	  .driver_info = RSVD(3)},
+	{ USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV31_RMNET, 0xff),
+	  .driver_info = RSVD(0)},
 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100),
 	  .driver_info = RSVD(4) },
 	{ USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120),
@@ -1951,6 +2008,8 @@
 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) },
 	{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
+	{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200),
+	  .driver_info = RSVD(1) | RSVD(4) },
 	{ USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) },
 	{ USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, 0x00) },	/* TP-Link LTE Module */
@@ -1974,8 +2033,14 @@
 	{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) },	/* D-Link DWM-152/C1 */
 	{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) },	/* D-Link DWM-156/C1 */
 	{ USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) },	/* D-Link DWM-156/A3 */
+	{ USB_DEVICE_INTERFACE_CLASS(0x1435, 0xd191, 0xff),			/* Wistron Neweb D19Q1 */
+	  .driver_info = RSVD(1) | RSVD(4) },
+	{ USB_DEVICE_INTERFACE_CLASS(0x1690, 0x7588, 0xff),			/* ASKEY WWHC050 */
+	  .driver_info = RSVD(1) | RSVD(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2031, 0xff),			/* Olicard 600 */
 	  .driver_info = RSVD(4) },
+	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2033, 0xff),			/* BroadMobi BM806U */
+	  .driver_info = RSVD(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2060, 0xff),			/* BroadMobi BM818 */
 	  .driver_info = RSVD(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x2020, 0x4000, 0xff) },			/* OLICARD300 - MT6225 */
@@ -1990,12 +2055,21 @@
 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x13) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x14) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0xa31d, 0xff, 0x06, 0x1b) },
-	{ USB_DEVICE(0x1508, 0x1001),						/* Fibocom NL668 */
+	{ USB_DEVICE(0x0489, 0xe0b4),						/* Foxconn T77W968 */
+	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
+	{ USB_DEVICE(0x0489, 0xe0b5),						/* Foxconn T77W968 ESIM */
+	  .driver_info = RSVD(0) | RSVD(1) | RSVD(6) },
+	{ USB_DEVICE(0x1508, 0x1001),						/* Fibocom NL668 (IOT version) */
 	  .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
 	{ USB_DEVICE(0x2cb7, 0x0104),						/* Fibocom NL678 series */
 	  .driver_info = RSVD(4) | RSVD(5) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff),			/* Fibocom NL678 series */
 	  .driver_info = RSVD(6) },
+	{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a0, 0xff) },			/* Fibocom NL668-AM/NL652-EU (laptop MBIM) */
+	{ USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) },			/* LongSung M5710 */
+	{ USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) },			/* GosunCn GM500 RNDIS */
+	{ USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) },			/* GosunCn GM500 MBIM */
+	{ USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) },			/* GosunCn GM500 ECM/NCM */
 	{ } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, option_ids);
@@ -2040,6 +2114,14 @@
 
 module_usb_serial_driver(serial_drivers, option_ids);
 
+static bool iface_is_reserved(unsigned long device_flags, u8 ifnum)
+{
+	if (ifnum > FLAG_IFNUM_MAX)
+		return false;
+
+	return device_flags & RSVD(ifnum);
+}
+
 static int option_probe(struct usb_serial *serial,
 			const struct usb_device_id *id)
 {
@@ -2056,7 +2138,7 @@
 	 * the same class/subclass/protocol as the serial interfaces.  Look at
 	 * the Windows driver .INF files for reserved interface numbers.
 	 */
-	if (device_flags & RSVD(iface_desc->bInterfaceNumber))
+	if (iface_is_reserved(device_flags, iface_desc->bInterfaceNumber))
 		return -ENODEV;
 
 	/*
@@ -2072,6 +2154,14 @@
 	return 0;
 }
 
+static bool iface_no_modem_control(unsigned long device_flags, u8 ifnum)
+{
+	if (ifnum > FLAG_IFNUM_MAX)
+		return false;
+
+	return device_flags & NCTRL(ifnum);
+}
+
 static int option_attach(struct usb_serial *serial)
 {
 	struct usb_interface_descriptor *iface_desc;
@@ -2087,9 +2177,12 @@
 
 	iface_desc = &serial->interface->cur_altsetting->desc;
 
-	if (!(device_flags & NCTRL(iface_desc->bInterfaceNumber)))
+	if (!iface_no_modem_control(device_flags, iface_desc->bInterfaceNumber))
 		data->use_send_setup = 1;
 
+	if (device_flags & ZLP)
+		data->use_zlp = 1;
+
 	spin_lock_init(&data->susp_lock);
 
 	usb_set_serial_data(serial, data);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/pl2303.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/pl2303.c
@@ -93,6 +93,8 @@
 	{ USB_DEVICE(SUPERIAL_VENDOR_ID, SUPERIAL_PRODUCT_ID) },
 	{ USB_DEVICE(HP_VENDOR_ID, HP_LD220_PRODUCT_ID) },
 	{ USB_DEVICE(HP_VENDOR_ID, HP_LD220TA_PRODUCT_ID) },
+	{ USB_DEVICE(HP_VENDOR_ID, HP_LD381_PRODUCT_ID) },
+	{ USB_DEVICE(HP_VENDOR_ID, HP_LD381GC_PRODUCT_ID) },
 	{ USB_DEVICE(HP_VENDOR_ID, HP_LD960_PRODUCT_ID) },
 	{ USB_DEVICE(HP_VENDOR_ID, HP_LD960TA_PRODUCT_ID) },
 	{ USB_DEVICE(HP_VENDOR_ID, HP_LCM220_PRODUCT_ID) },
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/pl2303.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/pl2303.h
@@ -121,9 +121,11 @@
 
 /* Hewlett-Packard POS Pole Displays */
 #define HP_VENDOR_ID		0x03f0
+#define HP_LD381GC_PRODUCT_ID	0x0183
 #define HP_LM920_PRODUCT_ID	0x026b
 #define HP_TD620_PRODUCT_ID	0x0956
 #define HP_LD960_PRODUCT_ID	0x0b39
+#define HP_LD381_PRODUCT_ID	0x0f7f
 #define HP_LCM220_PRODUCT_ID	0x3139
 #define HP_LCM960_PRODUCT_ID	0x3239
 #define HP_LD220_PRODUCT_ID	0x3524
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/qcserial.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/qcserial.c
@@ -155,6 +155,7 @@
 	{DEVICE_SWI(0x1199, 0x9056)},	/* Sierra Wireless Modem */
 	{DEVICE_SWI(0x1199, 0x9060)},	/* Sierra Wireless Modem */
 	{DEVICE_SWI(0x1199, 0x9061)},	/* Sierra Wireless Modem */
+	{DEVICE_SWI(0x1199, 0x9062)},	/* Sierra Wireless EM7305 QDL */
 	{DEVICE_SWI(0x1199, 0x9063)},	/* Sierra Wireless EM7305 */
 	{DEVICE_SWI(0x1199, 0x9070)},	/* Sierra Wireless MC74xx */
 	{DEVICE_SWI(0x1199, 0x9071)},	/* Sierra Wireless MC74xx */
@@ -173,6 +174,8 @@
 	{DEVICE_SWI(0x413c, 0x81b3)},	/* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card (rev3) */
 	{DEVICE_SWI(0x413c, 0x81b5)},	/* Dell Wireless 5811e QDL */
 	{DEVICE_SWI(0x413c, 0x81b6)},	/* Dell Wireless 5811e QDL */
+	{DEVICE_SWI(0x413c, 0x81cb)},	/* Dell Wireless 5816e QDL */
+	{DEVICE_SWI(0x413c, 0x81cc)},	/* Dell Wireless 5816e */
 	{DEVICE_SWI(0x413c, 0x81cf)},   /* Dell Wireless 5819 */
 	{DEVICE_SWI(0x413c, 0x81d0)},   /* Dell Wireless 5819 */
 	{DEVICE_SWI(0x413c, 0x81d1)},   /* Dell Wireless 5818 */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/quatech2.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/quatech2.c
@@ -841,7 +841,10 @@
 	u8 newMSR = (u8) *ch;
 	unsigned long flags;
 
+	/* May be called from qt2_process_read_urb() for an unbound port. */
 	port_priv = usb_get_serial_port_data(port);
+	if (!port_priv)
+		return;
 
 	spin_lock_irqsave(&port_priv->lock, flags);
 	port_priv->shadowMSR = newMSR;
@@ -869,7 +872,10 @@
 	unsigned long flags;
 	u8 newLSR = (u8) *ch;
 
+	/* May be called from qt2_process_read_urb() for an unbound port. */
 	port_priv = usb_get_serial_port_data(port);
+	if (!port_priv)
+		return;
 
 	if (newLSR & UART_LSR_BI)
 		newLSR &= (u8) (UART_LSR_OE | UART_LSR_BI);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/usb-serial-simple.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/usb-serial-simple.c
@@ -86,6 +86,8 @@
 #define MOTOROLA_TETRA_IDS()			\
 	{ USB_DEVICE(0x0cad, 0x9011) },	/* Motorola Solutions TETRA PEI */ \
 	{ USB_DEVICE(0x0cad, 0x9012) },	/* MTP6550 */ \
+	{ USB_DEVICE(0x0cad, 0x9013) },	/* MTP3xxx */ \
+	{ USB_DEVICE(0x0cad, 0x9015) },	/* MTP85xx */ \
 	{ USB_DEVICE(0x0cad, 0x9016) }	/* TPG2200 */
 DEVICE(motorola_tetra, MOTOROLA_TETRA_IDS);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/usb-serial.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/usb-serial.c
@@ -1317,6 +1317,9 @@
 		return -EINVAL;
 	}
 
+	/* Prevent individual ports from being unbound. */
+	driver->driver.suppress_bind_attrs = true;
+
 	usb_serial_operations_init(driver);
 
 	/* Add this device to our list of devices */
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/usb-wwan.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/usb-wwan.h
@@ -38,6 +38,7 @@
 	spinlock_t susp_lock;
 	unsigned int suspended:1;
 	unsigned int use_send_setup:1;
+	unsigned int use_zlp:1;
 	int in_flight;
 	unsigned int open_ports;
 	void *private;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/serial/usb_wwan.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/serial/usb_wwan.c
@@ -270,6 +270,10 @@
 	if (status) {
 		dev_dbg(dev, "%s: nonzero status: %d on endpoint %02x.\n",
 			__func__, status, endpoint);
+
+		/* don't resubmit on fatal errors */
+		if (status == -ESHUTDOWN || status == -ENOENT)
+			return;
 	} else {
 		if (urb->actual_length) {
 			tty_insert_flip_string(&port->port, data,
@@ -461,6 +465,7 @@
 				      void (*callback) (struct urb *))
 {
 	struct usb_serial *serial = port->serial;
+	struct usb_wwan_intf_private *intfdata = usb_get_serial_data(serial);
 	struct urb *urb;
 
 	urb = usb_alloc_urb(0, GFP_KERNEL);	/* No ISO */
@@ -471,6 +476,9 @@
 			  usb_sndbulkpipe(serial->dev, endpoint) | dir,
 			  buf, len, callback, ctx);
 
+	if (intfdata->use_zlp && dir == USB_DIR_OUT)
+		urb->transfer_flags |= URB_ZERO_PACKET;
+
 	return urb;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/storage/realtek_cr.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/storage/realtek_cr.c
@@ -41,6 +41,10 @@
 module_param(auto_delink_en, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(auto_delink_en, "auto delink mode (0=firmware, 1=software [default])");
 
+static int enable_mmc = 1;
+module_param(enable_mmc, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(enable_mmc, "enable mmc support");
+
 #ifdef CONFIG_REALTEK_AUTOPM
 static int ss_en = 1;
 module_param(ss_en, int, S_IRUGO | S_IWUSR);
@@ -475,6 +479,27 @@
 	return 0;
 }
 
+static int rts51x_lun_is_mmc_xd(struct us_data *us, u8 lun)
+{
+	struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra);
+
+	if (rts51x_check_status(us, lun))
+		return -EIO;
+
+	usb_stor_dbg(us,"cur_lun = 0x%02X\n", chip->status[lun].cur_lun);
+	usb_stor_dbg(us,"card_type = 0x%02X\n", chip->status[lun].card_type);
+	usb_stor_dbg(us,"detailed_type1= 0x%02X\n", chip->status[lun].detailed_type.detailed_type1);
+	switch (chip->status[lun].card_type) {
+	case 0x4: /* XD */
+		return 1;
+	case 0x2: /* SD/MMC */
+		if (chip->status[lun].detailed_type.detailed_type1 & 0x08)
+			return 1;
+	default:
+		return 0;
+	}
+}
+
 static int enable_oscillator(struct us_data *us)
 {
 	int retval;
@@ -850,6 +875,17 @@
 			chip->proto_handler_backup(srb, us);
 			/* Check whether card is plugged in */
 			if (srb->cmnd[0] == TEST_UNIT_READY) {
+				if (!enable_mmc && rts51x_lun_is_mmc_xd(us, srb->device->lun)) {
+					usb_stor_dbg(us,"%s: lun is mmc/xd\n", __func__);
+					srb->result = SAM_STAT_CHECK_CONDITION;
+					memcpy(srb->sense_buffer,
+							media_not_present,
+							US_SENSE_SIZE);
+					CLR_LUN_READY(chip, srb->device->lun);
+					card_first_show = 1;
+					return;
+				}
+
 				if (srb->result == SAM_STAT_GOOD) {
 					SET_LUN_READY(chip, srb->device->lun);
 					if (card_first_show) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/storage/scsiglue.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/storage/scsiglue.c
@@ -135,7 +135,8 @@
 	 * For such controllers we need to make sure the block layer sets
 	 * up bounce buffers in addressable memory.
 	 */
-	if (!hcd_uses_dma(bus_to_hcd(us->pusb_dev->bus)))
+	if (!hcd_uses_dma(bus_to_hcd(us->pusb_dev->bus)) ||
+			(bus_to_hcd(us->pusb_dev->bus)->localmem_pool != NULL))
 		blk_queue_bounce_limit(sdev->request_queue, BLK_BOUNCE_HIGH);
 
 	/*
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/storage/uas.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/storage/uas.c
@@ -45,6 +45,7 @@
 	struct scsi_cmnd *cmnd[MAX_CMNDS];
 	spinlock_t lock;
 	struct work_struct work;
+	struct work_struct scan_work;      /* for async scanning */
 };
 
 enum {
@@ -80,6 +81,19 @@
 static void uas_log_cmd_state(struct scsi_cmnd *cmnd, const char *prefix,
 				int status);
 
+/*
+ * This driver needs its own workqueue, as we need to control memory allocation.
+ *
+ * In the course of error handling and power management uas_wait_for_pending_cmnds()
+ * needs to flush pending work items. In these contexts we cannot allocate memory
+ * by doing block IO as we would deadlock. For the same reason we cannot wait
+ * for anything allocating memory not heeding these constraints.
+ *
+ * So we have to control all work items that can be on the workqueue we flush.
+ * Hence we cannot share a queue and need our own.
+ */
+static struct workqueue_struct *workqueue;
+
 static void uas_do_work(struct work_struct *work)
 {
 	struct uas_dev_info *devinfo =
@@ -108,12 +122,23 @@
 		if (!err)
 			cmdinfo->state &= ~IS_IN_WORK_LIST;
 		else
-			schedule_work(&devinfo->work);
+			queue_work(workqueue, &devinfo->work);
 	}
 out:
 	spin_unlock_irqrestore(&devinfo->lock, flags);
 }
 
+static void uas_scan_work(struct work_struct *work)
+{
+	struct uas_dev_info *devinfo =
+		container_of(work, struct uas_dev_info, scan_work);
+	struct Scsi_Host *shost = usb_get_intfdata(devinfo->intf);
+
+	dev_dbg(&devinfo->intf->dev, "starting scan\n");
+	scsi_scan_host(shost);
+	dev_dbg(&devinfo->intf->dev, "scan complete\n");
+}
+
 static void uas_add_work(struct uas_cmd_info *cmdinfo)
 {
 	struct scsi_pointer *scp = (void *)cmdinfo;
@@ -122,7 +147,7 @@
 
 	lockdep_assert_held(&devinfo->lock);
 	cmdinfo->state |= IS_IN_WORK_LIST;
-	schedule_work(&devinfo->work);
+	queue_work(workqueue, &devinfo->work);
 }
 
 static void uas_zap_pending(struct uas_dev_info *devinfo, int result)
@@ -178,6 +203,9 @@
 	struct uas_cmd_info *ci = (void *)&cmnd->SCp;
 	struct uas_cmd_info *cmdinfo = (void *)&cmnd->SCp;
 
+	if (status == -ENODEV) /* too late */
+		return;
+
 	scmd_printk(KERN_INFO, cmnd,
 		    "%s %d uas-tag %d inflight:%s%s%s%s%s%s%s%s%s%s%s%s ",
 		    prefix, status, cmdinfo->uas_tag,
@@ -634,8 +662,7 @@
 	if (devinfo->resetting) {
 		cmnd->result = DID_ERROR << 16;
 		cmnd->scsi_done(cmnd);
-		spin_unlock_irqrestore(&devinfo->lock, flags);
-		return 0;
+		goto zombie;
 	}
 
 	/* Find a free uas-tag */
@@ -671,6 +698,16 @@
 		cmdinfo->state &= ~(SUBMIT_DATA_IN_URB | SUBMIT_DATA_OUT_URB);
 
 	err = uas_submit_urbs(cmnd, devinfo);
+	/*
+	 * in case of fatal errors the SCSI layer is peculiar
+	 * a command that has finished is a success for the purpose
+	 * of queueing, no matter how fatal the error
+	 */
+	if (err == -ENODEV) {
+		cmnd->result = DID_ERROR << 16;
+		cmnd->scsi_done(cmnd);
+		goto zombie;
+	}
 	if (err) {
 		/* If we did nothing, give up now */
 		if (cmdinfo->state & SUBMIT_STATUS_URB) {
@@ -681,6 +718,7 @@
 	}
 
 	devinfo->cmnd[idx] = cmnd;
+zombie:
 	spin_unlock_irqrestore(&devinfo->lock, flags);
 	return 0;
 }
@@ -825,6 +863,13 @@
 		sdev->wce_default_on = 1;
 	}
 
+	/* Some disks cannot handle READ_CAPACITY_16 */
+	if (devinfo->flags & US_FL_NO_READ_CAPACITY_16)
+		sdev->no_read_capacity_16 = 1;
+
+	/* Some disks cannot handle WRITE_SAME */
+	if (devinfo->flags & US_FL_NO_SAME)
+		sdev->no_write_same = 1;
 	/*
 	 * Some disks return the total number of blocks in response
 	 * to READ CAPACITY rather than the highest block number.
@@ -834,6 +879,12 @@
 		sdev->fix_capacity = 1;
 
 	/*
+	 * in some cases we have to guess
+	 */
+	if (devinfo->flags & US_FL_CAPACITY_HEURISTICS)
+		sdev->guess_capacity = 1;
+
+	/*
 	 * Some devices don't like MODE SENSE with page=0x3f,
 	 * which is the command used for checking if a device
 	 * is write-protected.  Now that we tell the sd driver
@@ -973,6 +1024,7 @@
 	init_usb_anchor(&devinfo->data_urbs);
 	spin_lock_init(&devinfo->lock);
 	INIT_WORK(&devinfo->work, uas_do_work);
+	INIT_WORK(&devinfo->scan_work, uas_scan_work);
 
 	result = uas_configure_endpoints(devinfo);
 	if (result)
@@ -989,7 +1041,9 @@
 	if (result)
 		goto free_streams;
 
-	scsi_scan_host(shost);
+	/* Submit the delayed_work for SCSI-device scanning */
+	schedule_work(&devinfo->scan_work);
+
 	return result;
 
 free_streams:
@@ -1157,6 +1211,12 @@
 	usb_kill_anchored_urbs(&devinfo->data_urbs);
 	uas_zap_pending(devinfo, DID_NO_CONNECT);
 
+	/*
+	 * Prevent SCSI scanning (if it hasn't started yet)
+	 * or wait for the SCSI-scanning routine to stop.
+	 */
+	cancel_work_sync(&devinfo->scan_work);
+
 	scsi_remove_host(shost);
 	uas_free_streams(devinfo);
 	scsi_host_put(shost);
@@ -1196,7 +1256,31 @@
 	.id_table = uas_usb_ids,
 };
 
-module_usb_driver(uas_driver);
+static int __init uas_init(void)
+{
+	int rv;
+
+	workqueue = alloc_workqueue("uas", WQ_MEM_RECLAIM, 0);
+	if (!workqueue)
+		return -ENOMEM;
+
+	rv = usb_register(&uas_driver);
+	if (rv) {
+		destroy_workqueue(workqueue);
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+static void __exit uas_exit(void)
+{
+	usb_deregister(&uas_driver);
+	destroy_workqueue(workqueue);
+}
+
+module_init(uas_init);
+module_exit(uas_exit);
 
 MODULE_LICENSE("GPL");
 MODULE_IMPORT_NS(USB_STORAGE);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/storage/unusual_devs.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/storage/unusual_devs.h
@@ -1258,6 +1258,12 @@
 		USB_SC_RBC, USB_PR_BULK, NULL,
 		0 ),
 
+UNUSUAL_DEV(0x090c, 0x1000, 0x1100, 0x1100,
+		"Samsung",
+		"Flash Drive FIT",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_MAX_SECTORS_64),
+
 /* aeb */
 UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff,
 		"Feiya",
@@ -1331,6 +1337,13 @@
 		USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init,
 		0),
 
+/* Reported by Timo Aaltonen <tjaalton@ubuntu.com> */
+UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999,
+		"Option",
+		"Mass Storage",
+		USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init,
+		0 ),
+
 /*
  * Reported by F. Aben <f.aben@option.com>
  * This device (wrongly) has a vendor-specific device descriptor.
@@ -2317,6 +2330,13 @@
 		USB_SC_DEVICE,USB_PR_DEVICE,NULL,
 		US_FL_MAX_SECTORS_64 ),
 
+/* Reported by Cyril Roelandt <tipecaml@gmail.com> */
+UNUSUAL_DEV(  0x357d, 0x7788, 0x0114, 0x0114,
+		"JMicron",
+		"USB to ATA/ATAPI Bridge",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_BROKEN_FUA | US_FL_IGNORE_UAS ),
+
 /* Reported by Andrey Rahmatullin <wrar@altlinux.org> */
 UNUSUAL_DEV(  0x4102, 0x1020, 0x0100,  0x0100,
 		"iRiver",
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/storage/unusual_uas.h
+++ linux-gkeop-5.4-5.4.0/drivers/usb/storage/unusual_uas.h
@@ -28,6 +28,23 @@
  * and don't forget to CC: the USB development list <linux-usb@vger.kernel.org>
  */
 
+/* Reported-by: Till Dörges <doerges@pre-sense.de> */
+UNUSUAL_DEV(0x054c, 0x087d, 0x0000, 0x9999,
+		"Sony",
+		"PSZ-HA*",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_NO_REPORT_OPCODES),
+
+/*
+ *  Initially Reported-by: Julian Groß <julian.g@posteo.de>
+ *  Further reports David C. Partridge <david.partridge@perdrix.co.uk>
+ */
+UNUSUAL_DEV(0x059f, 0x105f, 0x0000, 0x9999,
+		"LaCie",
+		"2Big Quadra USB3",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_NO_REPORT_OPCODES | US_FL_NO_SAME),
+
 /*
  * Apricorn USB3 dongle sometimes returns "USBSUSBSUSBS" in response to SCSI
  * commands in UAS mode.  Observed with the 1.28 firmware; are there others?
@@ -73,6 +90,20 @@
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
 		US_FL_BROKEN_FUA),
 
+/* Reported-by: Thinh Nguyen <thinhn@synopsys.com> */
+UNUSUAL_DEV(0x154b, 0xf00b, 0x0000, 0x9999,
+		"PNY",
+		"Pro Elite SSD",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_NO_ATA_1X),
+
+/* Reported-by: Thinh Nguyen <thinhn@synopsys.com> */
+UNUSUAL_DEV(0x154b, 0xf00d, 0x0000, 0x9999,
+		"PNY",
+		"Pro Elite SSD",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_NO_ATA_1X),
+
 /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
 UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
 		"VIA",
@@ -87,12 +118,15 @@
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
 		US_FL_IGNORE_UAS),
 
-/* Reported-by: Takeo Nakayama <javhera@gmx.com> */
+/*
+ * Initially Reported-by: Takeo Nakayama <javhera@gmx.com>
+ * UAS Ignore Reported by Steven Ellis <sellis@redhat.com>
+ */
 UNUSUAL_DEV(0x357d, 0x7788, 0x0000, 0x9999,
 		"JMicron",
 		"JMS566",
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
-		US_FL_NO_REPORT_OPCODES),
+		US_FL_NO_REPORT_OPCODES | US_FL_IGNORE_UAS),
 
 /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
 UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/storage/usb.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/storage/usb.c
@@ -541,6 +541,9 @@
 		case 'j':
 			f |= US_FL_NO_REPORT_LUNS;
 			break;
+		case 'k':
+			f |= US_FL_NO_SAME;
+			break;
 		case 'l':
 			f |= US_FL_NOT_LOCKABLE;
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/altmodes/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/altmodes/Kconfig
@@ -20,6 +20,6 @@
 	  to enable support for VirtualLink devices with NVIDIA GPUs.
 
 	  To compile this driver as a module, choose M here: the
-	  module will be called typec_displayport.
+	  module will be called typec_nvidia.
 
 endmenu
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/bus.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/bus.c
@@ -192,7 +192,10 @@
 const struct typec_altmode *
 typec_altmode_get_partner(struct typec_altmode *adev)
 {
-	return adev ? &to_altmode(adev)->partner->adev : NULL;
+	if (!adev || !to_altmode(adev)->partner)
+		return NULL;
+
+	return &to_altmode(adev)->partner->adev;
 }
 EXPORT_SYMBOL_GPL(typec_altmode_get_partner);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/class.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/class.c
@@ -1592,14 +1592,16 @@
 
 	port->sw = typec_switch_get(&port->dev);
 	if (IS_ERR(port->sw)) {
+		ret = PTR_ERR(port->sw);
 		put_device(&port->dev);
-		return ERR_CAST(port->sw);
+		return ERR_PTR(ret);
 	}
 
 	port->mux = typec_mux_get(&port->dev, NULL);
 	if (IS_ERR(port->mux)) {
+		ret = PTR_ERR(port->mux);
 		put_device(&port->dev);
-		return ERR_CAST(port->mux);
+		return ERR_PTR(ret);
 	}
 
 	ret = device_add(&port->dev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/tcpm/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/tcpm/Kconfig
@@ -32,6 +32,7 @@
 config TYPEC_FUSB302
 	tristate "Fairchild FUSB302 Type-C chip driver"
 	depends on I2C
+	depends on EXTCON || !EXTCON
 	help
 	  The Fairchild FUSB302 Type-C chip driver that works with
 	  Type-C Port Controller Manager to provide USB PD and USB
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/tcpm/fusb302.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/tcpm/fusb302.c
@@ -1666,7 +1666,7 @@
 	PROPERTY_ENTRY_STRING("try-power-role", "sink"),
 	PROPERTY_ENTRY_U32_ARRAY("source-pdos", src_pdo),
 	PROPERTY_ENTRY_U32_ARRAY("sink-pdos", snk_pdo),
-	PROPERTY_ENTRY_U32("op-sink-microwatt", 2500),
+	PROPERTY_ENTRY_U32("op-sink-microwatt", 2500000),
 	{ }
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/tcpm/tcpci.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/tcpm/tcpci.c
@@ -432,20 +432,30 @@
 
 	if (status & TCPC_ALERT_RX_STATUS) {
 		struct pd_message msg;
-		unsigned int cnt;
+		unsigned int cnt, payload_cnt;
 		u16 header;
 
 		regmap_read(tcpci->regmap, TCPC_RX_BYTE_CNT, &cnt);
+		/*
+		 * 'cnt' corresponds to READABLE_BYTE_COUNT in section 4.4.14
+		 * of the TCPCI spec [Rev 2.0 Ver 1.0 October 2017] and is
+		 * defined in table 4-36 as one greater than the number of
+		 * bytes received. And that number includes the header. So:
+		 */
+		if (cnt > 3)
+			payload_cnt = cnt - (1 + sizeof(msg.header));
+		else
+			payload_cnt = 0;
 
 		tcpci_read16(tcpci, TCPC_RX_HDR, &header);
 		msg.header = cpu_to_le16(header);
 
-		if (WARN_ON(cnt > sizeof(msg.payload)))
-			cnt = sizeof(msg.payload);
+		if (WARN_ON(payload_cnt > sizeof(msg.payload)))
+			payload_cnt = sizeof(msg.payload);
 
-		if (cnt > 0)
+		if (payload_cnt > 0)
 			regmap_raw_read(tcpci->regmap, TCPC_RX_DATA,
-					&msg.payload, cnt);
+					&msg.payload, payload_cnt);
 
 		/* Read complete, clear RX status alert bit */
 		tcpci_write16(tcpci, TCPC_ALERT, TCPC_ALERT_RX_STATUS);
@@ -581,6 +591,12 @@
 static int tcpci_remove(struct i2c_client *client)
 {
 	struct tcpci_chip *chip = i2c_get_clientdata(client);
+	int err;
+
+	/* Disable chip interrupts before unregistering port */
+	err = tcpci_write16(chip->tcpci, TCPC_ALERT_MASK, 0);
+	if (err < 0)
+		return err;
 
 	tcpci_unregister_port(chip->tcpci);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -179,26 +179,6 @@
 	return tcpci_irq(chip->tcpci);
 }
 
-static int rt1711h_init_alert(struct rt1711h_chip *chip,
-			      struct i2c_client *client)
-{
-	int ret;
-
-	/* Disable chip interrupts before requesting irq */
-	ret = rt1711h_write16(chip, TCPC_ALERT_MASK, 0);
-	if (ret < 0)
-		return ret;
-
-	ret = devm_request_threaded_irq(chip->dev, client->irq, NULL,
-					rt1711h_irq,
-					IRQF_ONESHOT | IRQF_TRIGGER_LOW,
-					dev_name(chip->dev), chip);
-	if (ret < 0)
-		return ret;
-	enable_irq_wake(client->irq);
-	return 0;
-}
-
 static int rt1711h_sw_reset(struct rt1711h_chip *chip)
 {
 	int ret;
@@ -260,7 +240,8 @@
 	if (ret < 0)
 		return ret;
 
-	ret = rt1711h_init_alert(chip, client);
+	/* Disable chip interrupts before requesting irq */
+	ret = rt1711h_write16(chip, TCPC_ALERT_MASK, 0);
 	if (ret < 0)
 		return ret;
 
@@ -271,6 +252,14 @@
 	if (IS_ERR_OR_NULL(chip->tcpci))
 		return PTR_ERR(chip->tcpci);
 
+	ret = devm_request_threaded_irq(chip->dev, client->irq, NULL,
+					rt1711h_irq,
+					IRQF_ONESHOT | IRQF_TRIGGER_LOW,
+					dev_name(chip->dev), chip);
+	if (ret < 0)
+		return ret;
+	enable_irq_wake(client->irq);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/tcpm/tcpm.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/tcpm/tcpm.c
@@ -2723,12 +2723,12 @@
 
 static void tcpm_detach(struct tcpm_port *port)
 {
-	if (!port->attached)
-		return;
-
 	if (tcpm_port_is_disconnected(port))
 		port->hard_reset_count = 0;
 
+	if (!port->attached)
+		return;
+
 	tcpm_reset_port(port);
 }
 
@@ -3482,7 +3482,7 @@
 		 */
 		tcpm_set_pwr_role(port, TYPEC_SOURCE);
 		tcpm_pd_send_control(port, PD_CTRL_PS_RDY);
-		tcpm_set_state(port, SRC_STARTUP, 0);
+		tcpm_set_state(port, SRC_STARTUP, PD_T_SWAP_SRC_START);
 		break;
 
 	case VCONN_SWAP_ACCEPT:
@@ -3768,6 +3768,14 @@
 		 */
 		break;
 
+	case PORT_RESET:
+	case PORT_RESET_WAIT_OFF:
+		/*
+		 * State set back to default mode once the timer completes.
+		 * Ignore CC changes here.
+		 */
+		break;
+
 	default:
 		if (tcpm_port_is_disconnected(port))
 			tcpm_set_state(port, unattached_state(port), 0);
@@ -3829,6 +3837,15 @@
 	case SRC_TRY_DEBOUNCE:
 		/* Do nothing, waiting for sink detection */
 		break;
+
+	case PORT_RESET:
+	case PORT_RESET_WAIT_OFF:
+		/*
+		 * State set back to default mode once the timer completes.
+		 * Ignore vbus changes here.
+		 */
+		break;
+
 	default:
 		break;
 	}
@@ -3882,10 +3899,19 @@
 	case PORT_RESET_WAIT_OFF:
 		tcpm_set_state(port, tcpm_default_state(port), 0);
 		break;
+
 	case SRC_TRY_WAIT:
 	case SRC_TRY_DEBOUNCE:
 		/* Do nothing, waiting for sink detection */
 		break;
+
+	case PORT_RESET:
+		/*
+		 * State set back to default mode once the timer completes.
+		 * Ignore vbus changes here.
+		 */
+		break;
+
 	default:
 		if (port->pwr_role == TYPEC_SINK &&
 		    port->attached)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/tcpm/wcove.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/tcpm/wcove.c
@@ -597,7 +597,7 @@
 	PROPERTY_ENTRY_STRING("try-power-role", "sink"),
 	PROPERTY_ENTRY_U32_ARRAY("source-pdos", src_pdo),
 	PROPERTY_ENTRY_U32_ARRAY("sink-pdos", snk_pdo),
-	PROPERTY_ENTRY_U32("op-sink-microwatt", 15000),
+	PROPERTY_ENTRY_U32("op-sink-microwatt", 15000000),
 	{ }
 };
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/ucsi/displayport.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/ucsi/displayport.c
@@ -273,6 +273,9 @@
 		return;
 
 	dp = typec_altmode_get_drvdata(alt);
+	if (!dp)
+		return;
+
 	dp->data.conf = 0;
 	dp->data.status = 0;
 	dp->initialized = false;
@@ -287,6 +290,8 @@
 	struct typec_altmode *alt;
 	struct ucsi_dp *dp;
 
+	mutex_lock(&con->lock);
+
 	/* We can't rely on the firmware with the capabilities. */
 	desc->vdo |= DP_CAP_DP_SIGNALING | DP_CAP_RECEPTACLE;
 
@@ -295,12 +300,15 @@
 	desc->vdo |= all_assignments << 16;
 
 	alt = typec_port_register_altmode(con->port, desc);
-	if (IS_ERR(alt))
+	if (IS_ERR(alt)) {
+		mutex_unlock(&con->lock);
 		return alt;
+	}
 
 	dp = devm_kzalloc(&alt->dev, sizeof(*dp), GFP_KERNEL);
 	if (!dp) {
 		typec_unregister_altmode(alt);
+		mutex_unlock(&con->lock);
 		return ERR_PTR(-ENOMEM);
 	}
 
@@ -313,5 +321,7 @@
 	alt->ops = &ucsi_displayport_ops;
 	typec_altmode_set_drvdata(alt, dp);
 
+	mutex_unlock(&con->lock);
+
 	return alt;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/ucsi/ucsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/ucsi/ucsi.c
@@ -246,14 +246,18 @@
 					    con->partner_altmode[i] == altmode);
 }
 
-static u8 ucsi_altmode_next_mode(struct typec_altmode **alt, u16 svid)
+static int ucsi_altmode_next_mode(struct typec_altmode **alt, u16 svid)
 {
 	u8 mode = 1;
 	int i;
 
-	for (i = 0; alt[i]; i++)
+	for (i = 0; alt[i]; i++) {
+		if (i > MODE_DISCOVERY_MAX)
+			return -ERANGE;
+
 		if (alt[i]->svid == svid)
 			mode++;
+	}
 
 	return mode;
 }
@@ -288,8 +292,11 @@
 			goto err;
 		}
 
-		desc->mode = ucsi_altmode_next_mode(con->port_altmode,
-						    desc->svid);
+		ret = ucsi_altmode_next_mode(con->port_altmode, desc->svid);
+		if (ret < 0)
+			return ret;
+
+		desc->mode = ret;
 
 		switch (desc->svid) {
 		case USB_TYPEC_DP_SID:
@@ -315,8 +322,11 @@
 			goto err;
 		}
 
-		desc->mode = ucsi_altmode_next_mode(con->partner_altmode,
-						    desc->svid);
+		ret = ucsi_altmode_next_mode(con->partner_altmode, desc->svid);
+		if (ret < 0)
+			return ret;
+
+		desc->mode = ret;
 
 		alt = typec_partner_register_altmode(con->partner, desc);
 		if (IS_ERR(alt)) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/typec/ucsi/ucsi_acpi.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/typec/ucsi/ucsi_acpi.c
@@ -64,11 +64,15 @@
 
 static int ucsi_acpi_probe(struct platform_device *pdev)
 {
+	struct acpi_device *adev = ACPI_COMPANION(&pdev->dev);
 	struct ucsi_acpi *ua;
 	struct resource *res;
 	acpi_status status;
 	int ret;
 
+	if (adev->dep_unmet)
+		return -EPROBE_DEFER;
+
 	ua = devm_kzalloc(&pdev->dev, sizeof(*ua), GFP_KERNEL);
 	if (!ua)
 		return -ENOMEM;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/Kconfig
@@ -4,6 +4,7 @@
 	tristate "USB/IP support"
 	depends on NET
 	select USB_COMMON
+	select SGL_ALLOC
 	---help---
 	  This enables pushing USB packets over IP to allow remote
 	  machines direct access to USB devices. It provides the
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/stub_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/stub_dev.c
@@ -46,6 +46,8 @@
 	int sockfd = 0;
 	struct socket *socket;
 	int rv;
+	struct task_struct *tcp_rx = NULL;
+	struct task_struct *tcp_tx = NULL;
 
 	if (!sdev) {
 		dev_err(dev, "sdev is null\n");
@@ -69,23 +71,47 @@
 		}
 
 		socket = sockfd_lookup(sockfd, &err);
-		if (!socket)
+		if (!socket) {
+			dev_err(dev, "failed to lookup sock");
 			goto err;
+		}
 
-		sdev->ud.tcp_socket = socket;
-		sdev->ud.sockfd = sockfd;
+		if (socket->type != SOCK_STREAM) {
+			dev_err(dev, "Expecting SOCK_STREAM - found %d",
+				socket->type);
+			goto sock_err;
+		}
 
+		/* unlock and create threads and get tasks */
 		spin_unlock_irq(&sdev->ud.lock);
+		tcp_rx = kthread_create(stub_rx_loop, &sdev->ud, "stub_rx");
+		if (IS_ERR(tcp_rx)) {
+			sockfd_put(socket);
+			return -EINVAL;
+		}
+		tcp_tx = kthread_create(stub_tx_loop, &sdev->ud, "stub_tx");
+		if (IS_ERR(tcp_tx)) {
+			kthread_stop(tcp_rx);
+			sockfd_put(socket);
+			return -EINVAL;
+		}
 
-		sdev->ud.tcp_rx = kthread_get_run(stub_rx_loop, &sdev->ud,
-						  "stub_rx");
-		sdev->ud.tcp_tx = kthread_get_run(stub_tx_loop, &sdev->ud,
-						  "stub_tx");
+		/* get task structs now */
+		get_task_struct(tcp_rx);
+		get_task_struct(tcp_tx);
 
+		/* lock and update sdev->ud state */
 		spin_lock_irq(&sdev->ud.lock);
+		sdev->ud.tcp_socket = socket;
+		sdev->ud.sockfd = sockfd;
+		sdev->ud.tcp_rx = tcp_rx;
+		sdev->ud.tcp_tx = tcp_tx;
 		sdev->ud.status = SDEV_ST_USED;
 		spin_unlock_irq(&sdev->ud.lock);
 
+		wake_up_process(sdev->ud.tcp_rx);
+		wake_up_process(sdev->ud.tcp_tx);
+
 	} else {
 		dev_info(dev, "stub down\n");
 
@@ -100,6 +126,8 @@
 
 	return count;
 
+sock_err:
+	sockfd_put(socket);
 err:
 	spin_unlock_irq(&sdev->ud.lock);
 	return -EINVAL;
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/stub_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/stub_rx.c
@@ -470,18 +470,50 @@
 	if (pipe == -1)
 		return;
 
+	/*
+	 * Smatch reported the error case where use_sg is true and buf_len is 0.
+	 * In this case, It adds SDEV_EVENT_ERROR_MALLOC and stub_priv will be
+	 * released by stub event handler and connection will be shut down.
+	 */
 	priv = stub_priv_alloc(sdev, pdu);
 	if (!priv)
 		return;
 
 	buf_len = (unsigned long long)pdu->u.cmd_submit.transfer_buffer_length;
 
+	if (use_sg && !buf_len) {
+		dev_err(&udev->dev, "sg buffer with zero length\n");
+		goto err_malloc;
+	}
+
 	/* allocate urb transfer buffer, if needed */
 	if (buf_len) {
 		if (use_sg) {
 			sgl = sgl_alloc(buf_len, GFP_KERNEL, &nents);
 			if (!sgl)
 				goto err_malloc;
+
+			/* Check if the server's HCD supports SG */
+			if (!udev->bus->sg_tablesize) {
+				/*
+				 * If the server's HCD doesn't support SG, break
+				 * a single SG request into several URBs and map
+				 * each SG list entry to corresponding URB
+				 * buffer. The previously allocated SG list is
+				 * stored in priv->sgl (If the server's HCD
+				 * support SG, SG list is stored only in
+				 * urb->sg) and it is used as an indicator that
+				 * the server split single SG request into
+				 * several URBs. Later, priv->sgl is used by
+				 * stub_complete() and stub_send_ret_submit() to
+				 * reassemble the divied URBs.
+				 */
+				support_sg = 0;
+				num_urbs = nents;
+				priv->completed_urbs = 0;
+				pdu->u.cmd_submit.transfer_flags &=
+								~URB_DMA_MAP_SG;
+			}
 		} else {
 			buffer = kzalloc(buf_len, GFP_KERNEL);
 			if (!buffer)
@@ -489,24 +521,6 @@
 		}
 	}
 
-	/* Check if the server's HCD supports SG */
-	if (use_sg && !udev->bus->sg_tablesize) {
-		/*
-		 * If the server's HCD doesn't support SG, break a single SG
-		 * request into several URBs and map each SG list entry to
-		 * corresponding URB buffer. The previously allocated SG
-		 * list is stored in priv->sgl (If the server's HCD support SG,
-		 * SG list is stored only in urb->sg) and it is used as an
-		 * indicator that the server split single SG request into
-		 * several URBs. Later, priv->sgl is used by stub_complete() and
-		 * stub_send_ret_submit() to reassemble the divied URBs.
-		 */
-		support_sg = 0;
-		num_urbs = nents;
-		priv->completed_urbs = 0;
-		pdu->u.cmd_submit.transfer_flags &= ~URB_DMA_MAP_SG;
-	}
-
 	/* allocate urb array */
 	priv->num_urbs = num_urbs;
 	priv->urbs = kmalloc_array(num_urbs, sizeof(*priv->urbs), GFP_KERNEL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/usbip_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/usbip_common.c
@@ -727,6 +727,9 @@
 
 			copy -= recv;
 			ret += recv;
+
+			if (!copy)
+				break;
 		}
 
 		if (ret != size)
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/vhci_hcd.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/vhci_hcd.c
@@ -396,6 +396,8 @@
 		default:
 			usbip_dbg_vhci_rh(" ClearPortFeature: default %x\n",
 					  wValue);
+			if (wValue >= 32)
+				goto error;
 			vhci_hcd->port_status[rhport] &= ~(1 << wValue);
 			break;
 		}
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/vhci_rx.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/vhci_rx.c
@@ -77,16 +77,21 @@
 	usbip_pack_pdu(pdu, urb, USBIP_RET_SUBMIT, 0);
 
 	/* recv transfer buffer */
-	if (usbip_recv_xbuff(ud, urb) < 0)
-		return;
+	if (usbip_recv_xbuff(ud, urb) < 0) {
+		urb->status = -EPROTO;
+		goto error;
+	}
 
 	/* recv iso_packet_descriptor */
-	if (usbip_recv_iso(ud, urb) < 0)
-		return;
+	if (usbip_recv_iso(ud, urb) < 0) {
+		urb->status = -EPROTO;
+		goto error;
+	}
 
 	/* restore the padding in iso packets */
 	usbip_pad_iso(ud, urb);
 
+error:
 	if (usbip_dbg_flag_vhci_rx)
 		usbip_dump_urb(urb);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/vhci_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/vhci_sysfs.c
@@ -312,6 +312,8 @@
 	struct vhci *vhci;
 	int err;
 	unsigned long flags;
+	struct task_struct *tcp_rx = NULL;
+	struct task_struct *tcp_tx = NULL;
 
 	/*
 	 * @rhport: port number of vhci_hcd
@@ -349,12 +351,35 @@
 
 	/* Extract socket from fd. */
 	socket = sockfd_lookup(sockfd, &err);
-	if (!socket)
+	if (!socket) {
+		dev_err(dev, "failed to lookup sock");
 		return -EINVAL;
+	}
+	if (socket->type != SOCK_STREAM) {
+		dev_err(dev, "Expecting SOCK_STREAM - found %d",
+			socket->type);
+		sockfd_put(socket);
+		return -EINVAL;
+	}
+
+	/* create threads before locking */
+	tcp_rx = kthread_create(vhci_rx_loop, &vdev->ud, "vhci_rx");
+	if (IS_ERR(tcp_rx)) {
+		sockfd_put(socket);
+		return -EINVAL;
+	}
+	tcp_tx = kthread_create(vhci_tx_loop, &vdev->ud, "vhci_tx");
+	if (IS_ERR(tcp_tx)) {
+		kthread_stop(tcp_rx);
+		sockfd_put(socket);
+		return -EINVAL;
+	}
 
-	/* now need lock until setting vdev status as used */
+	/* get task structs now */
+	get_task_struct(tcp_rx);
+	get_task_struct(tcp_tx);
 
-	/* begin a lock */
+	/* now begin lock until setting vdev status set */
 	spin_lock_irqsave(&vhci->lock, flags);
 	spin_lock(&vdev->ud.lock);
 
@@ -364,6 +389,8 @@
 		spin_unlock_irqrestore(&vhci->lock, flags);
 
 		sockfd_put(socket);
+		kthread_stop_put(tcp_rx);
+		kthread_stop_put(tcp_tx);
 
 		dev_err(dev, "port %d already used\n", rhport);
 		/*
@@ -382,14 +409,16 @@
 	vdev->speed         = speed;
 	vdev->ud.sockfd     = sockfd;
 	vdev->ud.tcp_socket = socket;
+	vdev->ud.tcp_rx     = tcp_rx;
+	vdev->ud.tcp_tx     = tcp_tx;
 	vdev->ud.status     = VDEV_ST_NOTASSIGNED;
 
 	spin_unlock(&vdev->ud.lock);
 	spin_unlock_irqrestore(&vhci->lock, flags);
 	/* end the lock */
 
-	vdev->ud.tcp_rx = kthread_get_run(vhci_rx_loop, &vdev->ud, "vhci_rx");
-	vdev->ud.tcp_tx = kthread_get_run(vhci_tx_loop, &vdev->ud, "vhci_tx");
+	wake_up_process(vdev->ud.tcp_rx);
+	wake_up_process(vdev->ud.tcp_tx);
 
 	rh_port_connect(vdev, speed);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/usb/usbip/vudc_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/usb/usbip/vudc_sysfs.c
@@ -90,8 +90,9 @@
 }
 static BIN_ATTR_RO(dev_desc, sizeof(struct usb_device_descriptor));
 
-static ssize_t usbip_sockfd_store(struct device *dev, struct device_attribute *attr,
-		     const char *in, size_t count)
+static ssize_t usbip_sockfd_store(struct device *dev,
+				  struct device_attribute *attr,
+				  const char *in, size_t count)
 {
 	struct vudc *udc = (struct vudc *) dev_get_drvdata(dev);
 	int rv;
@@ -100,6 +101,8 @@
 	struct socket *socket;
 	unsigned long flags;
 	int ret;
+	struct task_struct *tcp_rx = NULL;
+	struct task_struct *tcp_tx = NULL;
 
 	rv = kstrtoint(in, 0, &sockfd);
 	if (rv != 0)
@@ -138,24 +141,54 @@
 			goto unlock_ud;
 		}
 
-		udc->ud.tcp_socket = socket;
+		if (socket->type != SOCK_STREAM) {
+			dev_err(dev, "Expecting SOCK_STREAM - found %d",
+				socket->type);
+			ret = -EINVAL;
+			goto sock_err;
+		}
 
+		/* unlock and create threads and get tasks */
 		spin_unlock_irq(&udc->ud.lock);
 		spin_unlock_irqrestore(&udc->lock, flags);
 
-		udc->ud.tcp_rx = kthread_get_run(&v_rx_loop,
-						    &udc->ud, "vudc_rx");
-		udc->ud.tcp_tx = kthread_get_run(&v_tx_loop,
-						    &udc->ud, "vudc_tx");
+		tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx");
+		if (IS_ERR(tcp_rx)) {
+			sockfd_put(socket);
+			return -EINVAL;
+		}
+		tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx");
+		if (IS_ERR(tcp_tx)) {
+			kthread_stop(tcp_rx);
+			sockfd_put(socket);
+			return -EINVAL;
+		}
+
+		/* get task structs now */
+		get_task_struct(tcp_rx);
+		get_task_struct(tcp_tx);
 
+		/* lock and update udc->ud state */
 		spin_lock_irqsave(&udc->lock, flags);
 		spin_lock_irq(&udc->ud.lock);
+
+		udc->ud.tcp_socket = socket;
+		udc->ud.tcp_rx = tcp_rx;
+		udc->ud.tcp_rx = tcp_tx;
 		udc->ud.status = SDEV_ST_USED;
+
 		spin_unlock_irq(&udc->ud.lock);
 
 		ktime_get_ts64(&udc->start_time);
 		v_start_timer(udc);
 		udc->connected = 1;
+
+		spin_unlock_irqrestore(&udc->lock, flags);
+
+		wake_up_process(udc->ud.tcp_rx);
+		wake_up_process(udc->ud.tcp_tx);
+		return count;
+
 	} else {
 		if (!udc->connected) {
 			dev_err(dev, "Device not connected");
@@ -177,6 +210,8 @@
 
 	return count;
 
+sock_err:
+	sockfd_put(socket);
 unlock_ud:
 	spin_unlock_irq(&udc->ud.lock);
 unlock:
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/mdev/mdev_sysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/mdev/mdev_sysfs.c
@@ -110,7 +110,7 @@
 				   "%s-%s", dev_driver_string(parent->dev),
 				   group->name);
 	if (ret) {
-		kfree(type);
+		kobject_put(&type->kobj);
 		return ERR_PTR(ret);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/pci/vfio_pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/pci/vfio_pci.c
@@ -27,6 +27,7 @@
 #include <linux/vfio.h>
 #include <linux/vgaarb.h>
 #include <linux/nospec.h>
+#include <linux/sched/mm.h>
 
 #include "vfio_pci_private.h"
 
@@ -113,8 +114,6 @@
 	int bar;
 	struct vfio_pci_dummy_resource *dummy_res;
 
-	INIT_LIST_HEAD(&vdev->dummy_resources_list);
-
 	for (bar = PCI_STD_RESOURCES; bar <= PCI_STD_RESOURCE_END; bar++) {
 		res = vdev->pdev->resource + bar;
 
@@ -177,6 +176,7 @@
 
 static void vfio_pci_try_bus_reset(struct vfio_pci_device *vdev);
 static void vfio_pci_disable(struct vfio_pci_device *vdev);
+static int vfio_pci_try_zap_and_vma_lock_cb(struct pci_dev *pdev, void *data);
 
 /*
  * INTx masking requires the ability to disable INTx signaling via PCI_COMMAND
@@ -332,7 +332,7 @@
 	    pdev->vendor == PCI_VENDOR_ID_INTEL &&
 	    IS_ENABLED(CONFIG_VFIO_PCI_IGD)) {
 		ret = vfio_pci_igd_init(vdev);
-		if (ret) {
+		if (ret && ret != -ENODEV) {
 			pci_warn(pdev, "Failed to setup Intel IGD regions\n");
 			goto disable_exit;
 		}
@@ -472,6 +472,19 @@
 	if (!(--vdev->refcnt)) {
 		vfio_spapr_pci_eeh_release(vdev->pdev);
 		vfio_pci_disable(vdev);
+		mutex_lock(&vdev->igate);
+		if (vdev->err_trigger) {
+			eventfd_ctx_put(vdev->err_trigger);
+			vdev->err_trigger = NULL;
+		}
+		mutex_unlock(&vdev->igate);
+
+		mutex_lock(&vdev->igate);
+		if (vdev->req_trigger) {
+			eventfd_ctx_put(vdev->req_trigger);
+			vdev->req_trigger = NULL;
+		}
+		mutex_unlock(&vdev->igate);
 	}
 
 	mutex_unlock(&vdev->reflck->lock);
@@ -688,6 +701,12 @@
 	return 0;
 }
 
+struct vfio_devices {
+	struct vfio_device **devices;
+	int cur_index;
+	int max_index;
+};
+
 static long vfio_pci_ioctl(void *device_data,
 			   unsigned int cmd, unsigned long arg)
 {
@@ -761,7 +780,7 @@
 		{
 			void __iomem *io;
 			size_t size;
-			u16 orig_cmd;
+			u16 cmd;
 
 			info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
 			info.flags = 0;
@@ -781,10 +800,7 @@
 			 * Is it really there?  Enable memory decode for
 			 * implicit access in pci_map_rom().
 			 */
-			pci_read_config_word(pdev, PCI_COMMAND, &orig_cmd);
-			pci_write_config_word(pdev, PCI_COMMAND,
-					      orig_cmd | PCI_COMMAND_MEMORY);
-
+			cmd = vfio_pci_memory_lock_and_enable(vdev);
 			io = pci_map_rom(pdev, &size);
 			if (io) {
 				info.flags = VFIO_REGION_INFO_FLAG_READ;
@@ -792,8 +808,8 @@
 			} else {
 				info.size = 0;
 			}
+			vfio_pci_memory_unlock_and_restore(vdev, cmd);
 
-			pci_write_config_word(pdev, PCI_COMMAND, orig_cmd);
 			break;
 		}
 		case VFIO_PCI_VGA_REGION_INDEX:
@@ -936,8 +952,16 @@
 		return ret;
 
 	} else if (cmd == VFIO_DEVICE_RESET) {
-		return vdev->reset_works ?
-			pci_try_reset_function(vdev->pdev) : -EINVAL;
+		int ret;
+
+		if (!vdev->reset_works)
+			return -EINVAL;
+
+		vfio_pci_zap_and_down_write_memory_lock(vdev);
+		ret = pci_try_reset_function(vdev->pdev);
+		up_write(&vdev->memory_lock);
+
+		return ret;
 
 	} else if (cmd == VFIO_DEVICE_GET_PCI_HOT_RESET_INFO) {
 		struct vfio_pci_hot_reset_info hdr;
@@ -1017,8 +1041,9 @@
 		int32_t *group_fds;
 		struct vfio_pci_group_entry *groups;
 		struct vfio_pci_group_info info;
+		struct vfio_devices devs = { .cur_index = 0 };
 		bool slot = false;
-		int i, count = 0, ret = 0;
+		int i, group_idx, mem_idx = 0, count = 0, ret = 0;
 
 		minsz = offsetofend(struct vfio_pci_hot_reset, count);
 
@@ -1070,9 +1095,9 @@
 		 * user interface and store the group and iommu ID.  This
 		 * ensures the group is held across the reset.
 		 */
-		for (i = 0; i < hdr.count; i++) {
+		for (group_idx = 0; group_idx < hdr.count; group_idx++) {
 			struct vfio_group *group;
-			struct fd f = fdget(group_fds[i]);
+			struct fd f = fdget(group_fds[group_idx]);
 			if (!f.file) {
 				ret = -EBADF;
 				break;
@@ -1085,8 +1110,9 @@
 				break;
 			}
 
-			groups[i].group = group;
-			groups[i].id = vfio_external_user_iommu_id(group);
+			groups[group_idx].group = group;
+			groups[group_idx].id =
+					vfio_external_user_iommu_id(group);
 		}
 
 		kfree(group_fds);
@@ -1105,13 +1131,63 @@
 		ret = vfio_pci_for_each_slot_or_bus(vdev->pdev,
 						    vfio_pci_validate_devs,
 						    &info, slot);
-		if (!ret)
-			/* User has access, do the reset */
-			ret = pci_reset_bus(vdev->pdev);
+		if (ret)
+			goto hot_reset_release;
+
+		devs.max_index = count;
+		devs.devices = kcalloc(count, sizeof(struct vfio_device *),
+				       GFP_KERNEL);
+		if (!devs.devices) {
+			ret = -ENOMEM;
+			goto hot_reset_release;
+		}
+
+		/*
+		 * We need to get memory_lock for each device, but devices
+		 * can share mmap_sem, therefore we need to zap and hold
+		 * the vma_lock for each device, and only then get each
+		 * memory_lock.
+		 */
+		ret = vfio_pci_for_each_slot_or_bus(vdev->pdev,
+					    vfio_pci_try_zap_and_vma_lock_cb,
+					    &devs, slot);
+		if (ret)
+			goto hot_reset_release;
+
+		for (; mem_idx < devs.cur_index; mem_idx++) {
+			struct vfio_pci_device *tmp;
+
+			tmp = vfio_device_data(devs.devices[mem_idx]);
+
+			ret = down_write_trylock(&tmp->memory_lock);
+			if (!ret) {
+				ret = -EBUSY;
+				goto hot_reset_release;
+			}
+			mutex_unlock(&tmp->vma_lock);
+		}
+
+		/* User has access, do the reset */
+		ret = pci_reset_bus(vdev->pdev);
 
 hot_reset_release:
-		for (i--; i >= 0; i--)
-			vfio_group_put_external_user(groups[i].group);
+		for (i = 0; i < devs.cur_index; i++) {
+			struct vfio_device *device;
+			struct vfio_pci_device *tmp;
+
+			device = devs.devices[i];
+			tmp = vfio_device_data(device);
+
+			if (i < mem_idx)
+				up_write(&tmp->memory_lock);
+			else
+				mutex_unlock(&tmp->vma_lock);
+			vfio_device_put(device);
+		}
+		kfree(devs.devices);
+
+		for (group_idx--; group_idx >= 0; group_idx--)
+			vfio_group_put_external_user(groups[group_idx].group);
 
 		kfree(groups);
 		return ret;
@@ -1192,6 +1268,202 @@
 	return vfio_pci_rw(device_data, (char __user *)buf, count, ppos, true);
 }
 
+/* Return 1 on zap and vma_lock acquired, 0 on contention (only with @try) */
+static int vfio_pci_zap_and_vma_lock(struct vfio_pci_device *vdev, bool try)
+{
+	struct vfio_pci_mmap_vma *mmap_vma, *tmp;
+
+	/*
+	 * Lock ordering:
+	 * vma_lock is nested under mmap_sem for vm_ops callback paths.
+	 * The memory_lock semaphore is used by both code paths calling
+	 * into this function to zap vmas and the vm_ops.fault callback
+	 * to protect the memory enable state of the device.
+	 *
+	 * When zapping vmas we need to maintain the mmap_sem => vma_lock
+	 * ordering, which requires using vma_lock to walk vma_list to
+	 * acquire an mm, then dropping vma_lock to get the mmap_sem and
+	 * reacquiring vma_lock.  This logic is derived from similar
+	 * requirements in uverbs_user_mmap_disassociate().
+	 *
+	 * mmap_sem must always be the top-level lock when it is taken.
+	 * Therefore we can only hold the memory_lock write lock when
+	 * vma_list is empty, as we'd need to take mmap_sem to clear
+	 * entries.  vma_list can only be guaranteed empty when holding
+	 * vma_lock, thus memory_lock is nested under vma_lock.
+	 *
+	 * This enables the vm_ops.fault callback to acquire vma_lock,
+	 * followed by memory_lock read lock, while already holding
+	 * mmap_sem without risk of deadlock.
+	 */
+	while (1) {
+		struct mm_struct *mm = NULL;
+
+		if (try) {
+			if (!mutex_trylock(&vdev->vma_lock))
+				return 0;
+		} else {
+			mutex_lock(&vdev->vma_lock);
+		}
+		while (!list_empty(&vdev->vma_list)) {
+			mmap_vma = list_first_entry(&vdev->vma_list,
+						    struct vfio_pci_mmap_vma,
+						    vma_next);
+			mm = mmap_vma->vma->vm_mm;
+			if (mmget_not_zero(mm))
+				break;
+
+			list_del(&mmap_vma->vma_next);
+			kfree(mmap_vma);
+			mm = NULL;
+		}
+		if (!mm)
+			return 1;
+		mutex_unlock(&vdev->vma_lock);
+
+		if (try) {
+			if (!down_read_trylock(&mm->mmap_sem)) {
+				mmput(mm);
+				return 0;
+			}
+		} else {
+			down_read(&mm->mmap_sem);
+		}
+		if (mmget_still_valid(mm)) {
+			if (try) {
+				if (!mutex_trylock(&vdev->vma_lock)) {
+					up_read(&mm->mmap_sem);
+					mmput(mm);
+					return 0;
+				}
+			} else {
+				mutex_lock(&vdev->vma_lock);
+			}
+			list_for_each_entry_safe(mmap_vma, tmp,
+						 &vdev->vma_list, vma_next) {
+				struct vm_area_struct *vma = mmap_vma->vma;
+
+				if (vma->vm_mm != mm)
+					continue;
+
+				list_del(&mmap_vma->vma_next);
+				kfree(mmap_vma);
+
+				zap_vma_ptes(vma, vma->vm_start,
+					     vma->vm_end - vma->vm_start);
+			}
+			mutex_unlock(&vdev->vma_lock);
+		}
+		up_read(&mm->mmap_sem);
+		mmput(mm);
+	}
+}
+
+void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_device *vdev)
+{
+	vfio_pci_zap_and_vma_lock(vdev, false);
+	down_write(&vdev->memory_lock);
+	mutex_unlock(&vdev->vma_lock);
+}
+
+u16 vfio_pci_memory_lock_and_enable(struct vfio_pci_device *vdev)
+{
+	u16 cmd;
+
+	down_write(&vdev->memory_lock);
+	pci_read_config_word(vdev->pdev, PCI_COMMAND, &cmd);
+	if (!(cmd & PCI_COMMAND_MEMORY))
+		pci_write_config_word(vdev->pdev, PCI_COMMAND,
+				      cmd | PCI_COMMAND_MEMORY);
+
+	return cmd;
+}
+
+void vfio_pci_memory_unlock_and_restore(struct vfio_pci_device *vdev, u16 cmd)
+{
+	pci_write_config_word(vdev->pdev, PCI_COMMAND, cmd);
+	up_write(&vdev->memory_lock);
+}
+
+/* Caller holds vma_lock */
+static int __vfio_pci_add_vma(struct vfio_pci_device *vdev,
+			      struct vm_area_struct *vma)
+{
+	struct vfio_pci_mmap_vma *mmap_vma;
+
+	mmap_vma = kmalloc(sizeof(*mmap_vma), GFP_KERNEL);
+	if (!mmap_vma)
+		return -ENOMEM;
+
+	mmap_vma->vma = vma;
+	list_add(&mmap_vma->vma_next, &vdev->vma_list);
+
+	return 0;
+}
+
+/*
+ * Zap mmaps on open so that we can fault them in on access and therefore
+ * our vma_list only tracks mappings accessed since last zap.
+ */
+static void vfio_pci_mmap_open(struct vm_area_struct *vma)
+{
+	zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start);
+}
+
+static void vfio_pci_mmap_close(struct vm_area_struct *vma)
+{
+	struct vfio_pci_device *vdev = vma->vm_private_data;
+	struct vfio_pci_mmap_vma *mmap_vma;
+
+	mutex_lock(&vdev->vma_lock);
+	list_for_each_entry(mmap_vma, &vdev->vma_list, vma_next) {
+		if (mmap_vma->vma == vma) {
+			list_del(&mmap_vma->vma_next);
+			kfree(mmap_vma);
+			break;
+		}
+	}
+	mutex_unlock(&vdev->vma_lock);
+}
+
+static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf)
+{
+	struct vm_area_struct *vma = vmf->vma;
+	struct vfio_pci_device *vdev = vma->vm_private_data;
+	vm_fault_t ret = VM_FAULT_NOPAGE;
+
+	mutex_lock(&vdev->vma_lock);
+	down_read(&vdev->memory_lock);
+
+	if (!__vfio_pci_memory_enabled(vdev)) {
+		ret = VM_FAULT_SIGBUS;
+		mutex_unlock(&vdev->vma_lock);
+		goto up_out;
+	}
+
+	if (__vfio_pci_add_vma(vdev, vma)) {
+		ret = VM_FAULT_OOM;
+		mutex_unlock(&vdev->vma_lock);
+		goto up_out;
+	}
+
+	mutex_unlock(&vdev->vma_lock);
+
+	if (io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
+			       vma->vm_end - vma->vm_start, vma->vm_page_prot))
+		ret = VM_FAULT_SIGBUS;
+
+up_out:
+	up_read(&vdev->memory_lock);
+	return ret;
+}
+
+static const struct vm_operations_struct vfio_pci_mmap_ops = {
+	.open = vfio_pci_mmap_open,
+	.close = vfio_pci_mmap_close,
+	.fault = vfio_pci_mmap_fault,
+};
+
 static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma)
 {
 	struct vfio_pci_device *vdev = device_data;
@@ -1250,8 +1522,14 @@
 	vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 	vma->vm_pgoff = (pci_resource_start(pdev, index) >> PAGE_SHIFT) + pgoff;
 
-	return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
-			       req_len, vma->vm_page_prot);
+	/*
+	 * See remap_pfn_range(), called from vfio_pci_fault() but we can't
+	 * change vm_flags within the fault handler.  Set them now.
+	 */
+	vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP;
+	vma->vm_ops = &vfio_pci_mmap_ops;
+
+	return 0;
 }
 
 static void vfio_pci_request(void *device_data, unsigned int count)
@@ -1326,7 +1604,11 @@
 	mutex_init(&vdev->igate);
 	spin_lock_init(&vdev->irqlock);
 	mutex_init(&vdev->ioeventfds_lock);
+	INIT_LIST_HEAD(&vdev->dummy_resources_list);
 	INIT_LIST_HEAD(&vdev->ioeventfds_list);
+	mutex_init(&vdev->vma_lock);
+	INIT_LIST_HEAD(&vdev->vma_list);
+	init_rwsem(&vdev->memory_lock);
 
 	ret = vfio_add_group_dev(&pdev->dev, &vfio_pci_ops, vdev);
 	if (ret) {
@@ -1516,12 +1798,6 @@
 	kref_put_mutex(&reflck->kref, vfio_pci_reflck_release, &reflck_lock);
 }
 
-struct vfio_devices {
-	struct vfio_device **devices;
-	int cur_index;
-	int max_index;
-};
-
 static int vfio_pci_get_unused_devs(struct pci_dev *pdev, void *data)
 {
 	struct vfio_devices *devs = data;
@@ -1547,6 +1823,39 @@
 		vfio_device_put(device);
 		return -EBUSY;
 	}
+
+	devs->devices[devs->cur_index++] = device;
+	return 0;
+}
+
+static int vfio_pci_try_zap_and_vma_lock_cb(struct pci_dev *pdev, void *data)
+{
+	struct vfio_devices *devs = data;
+	struct vfio_device *device;
+	struct vfio_pci_device *vdev;
+
+	if (devs->cur_index == devs->max_index)
+		return -ENOSPC;
+
+	device = vfio_device_get_from_dev(&pdev->dev);
+	if (!device)
+		return -EINVAL;
+
+	if (pci_dev_driver(pdev) != &vfio_pci_driver) {
+		vfio_device_put(device);
+		return -EBUSY;
+	}
+
+	vdev = vfio_device_data(device);
+
+	/*
+	 * Locking multiple devices is prone to deadlock, runaway and
+	 * unwind if we hit contention.
+	 */
+	if (!vfio_pci_zap_and_vma_lock(vdev, true)) {
+		vfio_device_put(device);
+		return -EBUSY;
+	}
 
 	devs->devices[devs->cur_index++] = device;
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/pci/vfio_pci_config.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/pci/vfio_pci_config.c
@@ -395,6 +395,20 @@
 	*(__le32 *)(&p->write[off]) = cpu_to_le32(write);
 }
 
+/* Caller should hold memory_lock semaphore */
+bool __vfio_pci_memory_enabled(struct vfio_pci_device *vdev)
+{
+	struct pci_dev *pdev = vdev->pdev;
+	u16 cmd = le16_to_cpu(*(__le16 *)&vdev->vconfig[PCI_COMMAND]);
+
+	/*
+	 * SR-IOV VF memory enable is handled by the MSE bit in the
+	 * PF SR-IOV capability, there's therefore no need to trigger
+	 * faults based on the virtual value.
+	 */
+	return pdev->no_command_memory || (cmd & PCI_COMMAND_MEMORY);
+}
+
 /*
  * Restore the *real* BARs after we detect a FLR or backdoor reset.
  * (backdoor = some device specific technique that we didn't catch)
@@ -504,8 +518,8 @@
 
 	count = vfio_default_config_read(vdev, pos, count, perm, offset, val);
 
-	/* Mask in virtual memory enable for SR-IOV devices */
-	if (offset == PCI_COMMAND && vdev->pdev->is_virtfn) {
+	/* Mask in virtual memory enable */
+	if (offset == PCI_COMMAND && vdev->pdev->no_command_memory) {
 		u16 cmd = le16_to_cpu(*(__le16 *)&vdev->vconfig[PCI_COMMAND]);
 		u32 tmp_val = le32_to_cpu(*val);
 
@@ -554,13 +568,18 @@
 
 		new_cmd = le32_to_cpu(val);
 
+		phys_io = !!(phys_cmd & PCI_COMMAND_IO);
+		virt_io = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_IO);
+		new_io = !!(new_cmd & PCI_COMMAND_IO);
+
 		phys_mem = !!(phys_cmd & PCI_COMMAND_MEMORY);
 		virt_mem = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_MEMORY);
 		new_mem = !!(new_cmd & PCI_COMMAND_MEMORY);
 
-		phys_io = !!(phys_cmd & PCI_COMMAND_IO);
-		virt_io = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_IO);
-		new_io = !!(new_cmd & PCI_COMMAND_IO);
+		if (!new_mem)
+			vfio_pci_zap_and_down_write_memory_lock(vdev);
+		else
+			down_write(&vdev->memory_lock);
 
 		/*
 		 * If the user is writing mem/io enable (new_mem/io) and we
@@ -568,17 +587,22 @@
 		 * shows it disabled (phys_mem/io, then the device has
 		 * undergone some kind of backdoor reset and needs to be
 		 * restored before we allow it to enable the bars.
-		 * SR-IOV devices will trigger this, but we catch them later
+		 * SR-IOV devices will trigger this - for mem enable let's
+		 * catch this now and for io enable it will be caught later
 		 */
-		if ((new_mem && virt_mem && !phys_mem) ||
+		if ((new_mem && virt_mem && !phys_mem &&
+		     !pdev->no_command_memory) ||
 		    (new_io && virt_io && !phys_io) ||
 		    vfio_need_bar_restore(vdev))
 			vfio_bar_restore(vdev);
 	}
 
 	count = vfio_default_config_write(vdev, pos, count, perm, offset, val);
-	if (count < 0)
+	if (count < 0) {
+		if (offset == PCI_COMMAND)
+			up_write(&vdev->memory_lock);
 		return count;
+	}
 
 	/*
 	 * Save current memory/io enable bits in vconfig to allow for
@@ -589,6 +613,8 @@
 
 		*virt_cmd &= cpu_to_le16(~mask);
 		*virt_cmd |= cpu_to_le16(new_cmd & mask);
+
+		up_write(&vdev->memory_lock);
 	}
 
 	/* Emulate INTx disable */
@@ -826,8 +852,11 @@
 						 pos - offset + PCI_EXP_DEVCAP,
 						 &cap);
 
-		if (!ret && (cap & PCI_EXP_DEVCAP_FLR))
+		if (!ret && (cap & PCI_EXP_DEVCAP_FLR)) {
+			vfio_pci_zap_and_down_write_memory_lock(vdev);
 			pci_try_reset_function(vdev->pdev);
+			up_write(&vdev->memory_lock);
+		}
 	}
 
 	/*
@@ -905,8 +934,11 @@
 						pos - offset + PCI_AF_CAP,
 						&cap);
 
-		if (!ret && (cap & PCI_AF_CAP_FLR) && (cap & PCI_AF_CAP_TP))
+		if (!ret && (cap & PCI_AF_CAP_FLR) && (cap & PCI_AF_CAP_TP)) {
+			vfio_pci_zap_and_down_write_memory_lock(vdev);
 			pci_try_reset_function(vdev->pdev);
+			up_write(&vdev->memory_lock);
+		}
 	}
 
 	return count;
@@ -1460,7 +1492,12 @@
 		if (ret)
 			return ret;
 
-		if (cap <= PCI_CAP_ID_MAX) {
+		/*
+		 * ID 0 is a NULL capability, conflicting with our fake
+		 * PCI_CAP_ID_BASIC.  As it has no content, consider it
+		 * hidden for now.
+		 */
+		if (cap && cap <= PCI_CAP_ID_MAX) {
 			len = pci_cap_length[cap];
 			if (len == 0xFF) { /* Variable length */
 				len = vfio_cap_len(vdev, cap, pos);
@@ -1698,6 +1735,17 @@
 
 		vconfig[PCI_INTERRUPT_PIN] = 0; /* Gratuitous for good VFs */
 	}
+	if (pdev->no_command_memory) {
+		/*
+		 * VFs and devices that set pdev->no_command_memory do not
+		 * implement the memory enable bit of the COMMAND register
+		 * therefore we'll not have it set in our initial copy of
+		 * config space after pci_enable_device().  For consistency
+		 * with PFs, set the virtual enable bit here.
+		 */
+		*(__le16 *)&vconfig[PCI_COMMAND] |=
+					cpu_to_le16(PCI_COMMAND_MEMORY);
+	}
 
 	if (!IS_ENABLED(CONFIG_VFIO_PCI_INTX) || vdev->nointx)
 		vconfig[PCI_INTERRUPT_PIN] = 0;
@@ -1726,8 +1774,11 @@
 	vdev->vconfig = NULL;
 	kfree(vdev->pci_config_map);
 	vdev->pci_config_map = NULL;
-	kfree(vdev->msi_perm);
-	vdev->msi_perm = NULL;
+	if (vdev->msi_perm) {
+		free_perm_bits(vdev->msi_perm);
+		kfree(vdev->msi_perm);
+		vdev->msi_perm = NULL;
+	}
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/pci/vfio_pci_intrs.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/pci/vfio_pci_intrs.c
@@ -249,6 +249,7 @@
 	struct pci_dev *pdev = vdev->pdev;
 	unsigned int flag = msix ? PCI_IRQ_MSIX : PCI_IRQ_MSI;
 	int ret;
+	u16 cmd;
 
 	if (!is_irq_none(vdev))
 		return -EINVAL;
@@ -258,13 +259,16 @@
 		return -ENOMEM;
 
 	/* return the number of supported vectors if we can't get all: */
+	cmd = vfio_pci_memory_lock_and_enable(vdev);
 	ret = pci_alloc_irq_vectors(pdev, 1, nvec, flag);
 	if (ret < nvec) {
 		if (ret > 0)
 			pci_free_irq_vectors(pdev);
+		vfio_pci_memory_unlock_and_restore(vdev, cmd);
 		kfree(vdev->ctx);
 		return ret;
 	}
+	vfio_pci_memory_unlock_and_restore(vdev, cmd);
 
 	vdev->num_ctx = nvec;
 	vdev->irq_type = msix ? VFIO_PCI_MSIX_IRQ_INDEX :
@@ -287,6 +291,7 @@
 	struct pci_dev *pdev = vdev->pdev;
 	struct eventfd_ctx *trigger;
 	int irq, ret;
+	u16 cmd;
 
 	if (vector < 0 || vector >= vdev->num_ctx)
 		return -EINVAL;
@@ -294,8 +299,12 @@
 	irq = pci_irq_vector(pdev, vector);
 
 	if (vdev->ctx[vector].trigger) {
-		free_irq(irq, vdev->ctx[vector].trigger);
 		irq_bypass_unregister_producer(&vdev->ctx[vector].producer);
+
+		cmd = vfio_pci_memory_lock_and_enable(vdev);
+		free_irq(irq, vdev->ctx[vector].trigger);
+		vfio_pci_memory_unlock_and_restore(vdev, cmd);
+
 		kfree(vdev->ctx[vector].name);
 		eventfd_ctx_put(vdev->ctx[vector].trigger);
 		vdev->ctx[vector].trigger = NULL;
@@ -323,6 +332,7 @@
 	 * such a reset it would be unsuccessful. To avoid this, restore the
 	 * cached value of the message prior to enabling.
 	 */
+	cmd = vfio_pci_memory_lock_and_enable(vdev);
 	if (msix) {
 		struct msi_msg msg;
 
@@ -332,6 +342,7 @@
 
 	ret = request_irq(irq, vfio_msihandler, 0,
 			  vdev->ctx[vector].name, trigger);
+	vfio_pci_memory_unlock_and_restore(vdev, cmd);
 	if (ret) {
 		kfree(vdev->ctx[vector].name);
 		eventfd_ctx_put(trigger);
@@ -341,11 +352,13 @@
 	vdev->ctx[vector].producer.token = trigger;
 	vdev->ctx[vector].producer.irq = irq;
 	ret = irq_bypass_register_producer(&vdev->ctx[vector].producer);
-	if (unlikely(ret))
+	if (unlikely(ret)) {
 		dev_info(&pdev->dev,
 		"irq bypass producer (token %p) registration fails: %d\n",
 		vdev->ctx[vector].producer.token, ret);
 
+		vdev->ctx[vector].producer.token = NULL;
+	}
 	vdev->ctx[vector].trigger = trigger;
 
 	return 0;
@@ -376,6 +389,7 @@
 {
 	struct pci_dev *pdev = vdev->pdev;
 	int i;
+	u16 cmd;
 
 	for (i = 0; i < vdev->num_ctx; i++) {
 		vfio_virqfd_disable(&vdev->ctx[i].unmask);
@@ -384,7 +398,9 @@
 
 	vfio_msi_set_block(vdev, 0, vdev->num_ctx, NULL, msix);
 
+	cmd = vfio_pci_memory_lock_and_enable(vdev);
 	pci_free_irq_vectors(pdev);
+	vfio_pci_memory_unlock_and_restore(vdev, cmd);
 
 	/*
 	 * Both disable paths above use pci_intx_for_msi() to clear DisINTx
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/pci/vfio_pci_nvlink2.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/pci/vfio_pci_nvlink2.c
@@ -97,8 +97,10 @@
 
 	/* If there were any mappings at all... */
 	if (data->mm) {
-		ret = mm_iommu_put(data->mm, data->mem);
-		WARN_ON(ret);
+		if (data->mem) {
+			ret = mm_iommu_put(data->mm, data->mem);
+			WARN_ON(ret);
+		}
 
 		mmdrop(data->mm);
 	}
@@ -229,7 +231,7 @@
 		return -EINVAL;
 
 	if (of_property_read_u32(npu_node, "memory-region", &mem_phandle))
-		return -EINVAL;
+		return -ENODEV;
 
 	mem_node = of_find_node_by_phandle(mem_phandle);
 	if (!mem_node)
@@ -391,7 +393,7 @@
 	int ret;
 	struct vfio_pci_npu2_data *data;
 	struct device_node *nvlink_dn;
-	u32 nvlink_index = 0;
+	u32 nvlink_index = 0, mem_phandle = 0;
 	struct pci_dev *npdev = vdev->pdev;
 	struct device_node *npu_node = pci_device_to_OF_node(npdev);
 	struct pci_controller *hose = pci_bus_to_host(npdev->bus);
@@ -406,6 +408,9 @@
 	if (!pnv_pci_get_gpu_dev(vdev->pdev))
 		return -ENODEV;
 
+	if (of_property_read_u32(npu_node, "memory-region", &mem_phandle))
+		return -ENODEV;
+
 	/*
 	 * NPU2 normally has 8 ATSD registers (for concurrency) and 6 links
 	 * so we can allocate one register per link, using nvlink index as
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/pci/vfio_pci_private.h
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/pci/vfio_pci_private.h
@@ -84,6 +84,11 @@
 	struct mutex		lock;
 };
 
+struct vfio_pci_mmap_vma {
+	struct vm_area_struct	*vma;
+	struct list_head	vma_next;
+};
+
 struct vfio_pci_device {
 	struct pci_dev		*pdev;
 	void __iomem		*barmap[PCI_STD_RESOURCE_END + 1];
@@ -122,6 +127,9 @@
 	struct list_head	dummy_resources_list;
 	struct mutex		ioeventfds_lock;
 	struct list_head	ioeventfds_list;
+	struct mutex		vma_lock;
+	struct list_head	vma_list;
+	struct rw_semaphore	memory_lock;
 };
 
 #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX)
@@ -164,6 +172,13 @@
 extern int vfio_pci_set_power_state(struct vfio_pci_device *vdev,
 				    pci_power_t state);
 
+extern bool __vfio_pci_memory_enabled(struct vfio_pci_device *vdev);
+extern void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_device
+						    *vdev);
+extern u16 vfio_pci_memory_lock_and_enable(struct vfio_pci_device *vdev);
+extern void vfio_pci_memory_unlock_and_restore(struct vfio_pci_device *vdev,
+					       u16 cmd);
+
 #ifdef CONFIG_VFIO_PCI_IGD
 extern int vfio_pci_igd_init(struct vfio_pci_device *vdev);
 #else
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/pci/vfio_pci_rdwr.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/pci/vfio_pci_rdwr.c
@@ -162,6 +162,7 @@
 	size_t x_start = 0, x_end = 0;
 	resource_size_t end;
 	void __iomem *io;
+	struct resource *res = &vdev->pdev->resource[bar];
 	ssize_t done;
 
 	if (pci_resource_start(pdev, bar))
@@ -177,6 +178,14 @@
 
 	count = min(count, (size_t)(end - pos));
 
+	if (res->flags & IORESOURCE_MEM) {
+		down_read(&vdev->memory_lock);
+		if (!__vfio_pci_memory_enabled(vdev)) {
+			up_read(&vdev->memory_lock);
+			return -EIO;
+		}
+	}
+
 	if (bar == PCI_ROM_RESOURCE) {
 		/*
 		 * The ROM can fill less space than the BAR, so we start the
@@ -184,13 +193,17 @@
 		 * filling large ROM BARs much faster.
 		 */
 		io = pci_map_rom(pdev, &x_start);
-		if (!io)
-			return -ENOMEM;
+		if (!io) {
+			done = -ENOMEM;
+			goto out;
+		}
 		x_end = end;
 	} else {
 		int ret = vfio_pci_setup_barmap(vdev, bar);
-		if (ret)
-			return ret;
+		if (ret) {
+			done = ret;
+			goto out;
+		}
 
 		io = vdev->barmap[bar];
 	}
@@ -207,6 +220,9 @@
 
 	if (bar == PCI_ROM_RESOURCE)
 		pci_unmap_rom(pdev, io);
+out:
+	if (res->flags & IORESOURCE_MEM)
+		up_read(&vdev->memory_lock);
 
 	return done;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/platform/vfio_platform.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/platform/vfio_platform.c
@@ -44,7 +44,7 @@
 {
 	struct platform_device *pdev = (struct platform_device *) vdev->opaque;
 
-	return platform_get_irq(pdev, i);
+	return platform_get_irq_optional(pdev, i);
 }
 
 static int vfio_platform_probe(struct platform_device *pdev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/platform/vfio_platform_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/platform/vfio_platform_common.c
@@ -267,7 +267,7 @@
 
 		ret = pm_runtime_get_sync(vdev->device);
 		if (ret < 0)
-			goto err_pm;
+			goto err_rst;
 
 		ret = vfio_platform_call_reset(vdev, &extra_dbg);
 		if (ret && vdev->reset_required) {
@@ -284,7 +284,6 @@
 
 err_rst:
 	pm_runtime_put(vdev->device);
-err_pm:
 	vfio_platform_irq_cleanup(vdev);
 err_irq:
 	vfio_platform_regions_cleanup(vdev);
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/vfio.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/vfio.c
@@ -911,6 +911,10 @@
 	struct vfio_unbound_dev *unbound;
 	unsigned int i = 0;
 	bool interrupted = false;
+	bool locked = true;
+	struct device_driver *drv;
+
+	drv = dev->driver;
 
 	/*
 	 * The group exists so long as we have a device reference.  Get
@@ -953,8 +957,11 @@
 		if (!device)
 			break;
 
-		if (device->ops->request)
+		if (device->ops->request) {
+			device_unlock(dev);
+			locked = false;
 			device->ops->request(device_data, i++);
+		}
 
 		vfio_device_put(device);
 
@@ -972,6 +979,20 @@
 			}
 		}
 
+		if (!locked) {
+			device_lock(dev);
+			locked = true;
+			/*
+			 * A concurrent operation may have released the driver
+			 * successfully while we had dropped the lock,
+			 * check for that.
+			 */
+			if (dev->driver != drv) {
+				vfio_group_put(group);
+				return NULL;
+			}
+		}
+
 	} while (1);
 
 	remove_wait_queue(&vfio.release_q, &wait);
--- linux-gkeop-5.4-5.4.0.orig/drivers/vfio/vfio_iommu_type1.c
+++ linux-gkeop-5.4-5.4.0/drivers/vfio/vfio_iommu_type1.c
@@ -24,6 +24,7 @@
 #include <linux/compat.h>
 #include <linux/device.h>
 #include <linux/fs.h>
+#include <linux/highmem.h>
 #include <linux/iommu.h>
 #include <linux/module.h>
 #include <linux/mm.h>
@@ -335,6 +336,42 @@
 	return 0;
 }
 
+static int follow_fault_pfn(struct vm_area_struct *vma, struct mm_struct *mm,
+			    unsigned long vaddr, unsigned long *pfn,
+			    bool write_fault)
+{
+	pte_t *ptep;
+	spinlock_t *ptl;
+	int ret;
+
+	ret = follow_pte(vma->vm_mm, vaddr, &ptep, &ptl);
+	if (ret) {
+		bool unlocked = false;
+
+		ret = fixup_user_fault(NULL, mm, vaddr,
+				       FAULT_FLAG_REMOTE |
+				       (write_fault ?  FAULT_FLAG_WRITE : 0),
+				       &unlocked);
+		if (unlocked)
+			return -EAGAIN;
+
+		if (ret)
+			return ret;
+
+		ret = follow_pte(vma->vm_mm, vaddr, &ptep, &ptl);
+		if (ret)
+			return ret;
+	}
+
+	if (write_fault && !pte_write(*ptep))
+		ret = -EFAULT;
+	else
+		*pfn = pte_pfn(*ptep);
+
+	pte_unmap_unlock(ptep, ptl);
+	return ret;
+}
+
 static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr,
 			 int prot, unsigned long *pfn)
 {
@@ -377,12 +414,16 @@
 
 	vaddr = untagged_addr(vaddr);
 
+retry:
 	vma = find_vma_intersection(mm, vaddr, vaddr + 1);
 
 	if (vma && vma->vm_flags & VM_PFNMAP) {
-		*pfn = ((vaddr - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
-		if (is_invalid_reserved_pfn(*pfn))
-			ret = 0;
+		ret = follow_fault_pfn(vma, mm, vaddr, pfn, prot & IOMMU_WRITE);
+		if (ret == -EAGAIN)
+			goto retry;
+
+		if (!ret && !is_invalid_reserved_pfn(*pfn))
+			ret = -EFAULT;
 	}
 
 	up_read(&mm->mmap_sem);
@@ -593,7 +634,7 @@
 			continue;
 		}
 
-		remote_vaddr = dma->vaddr + iova - dma->iova;
+		remote_vaddr = dma->vaddr + (iova - dma->iova);
 		ret = vfio_pin_page_external(dma, remote_vaddr, &phys_pfn[i],
 					     do_accounting);
 		if (ret)
@@ -601,7 +642,8 @@
 
 		ret = vfio_add_to_pfn_list(dma, iova, phys_pfn[i]);
 		if (ret) {
-			vfio_unpin_page_external(dma, iova, do_accounting);
+			if (put_pfn(phys_pfn[i], dma->prot) && do_accounting)
+				vfio_lock_acct(dma, -1, true);
 			goto pin_unwind;
 		}
 	}
@@ -835,6 +877,7 @@
 
 static void vfio_remove_dma(struct vfio_iommu *iommu, struct vfio_dma *dma)
 {
+	WARN_ON(!RB_EMPTY_ROOT(&dma->pfn_list));
 	vfio_unmap_unpin(iommu, dma, true);
 	vfio_unlink_dma(iommu, dma);
 	put_task_struct(dma->task);
@@ -1187,13 +1230,16 @@
 static int vfio_iommu_replay(struct vfio_iommu *iommu,
 			     struct vfio_domain *domain)
 {
-	struct vfio_domain *d;
+	struct vfio_domain *d = NULL;
 	struct rb_node *n;
 	unsigned long limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT;
 	int ret;
 
 	/* Arbitrarily pick the first domain in the list for lookups */
-	d = list_first_entry(&iommu->domain_list, struct vfio_domain, next);
+	if (!list_empty(&iommu->domain_list))
+		d = list_first_entry(&iommu->domain_list,
+				     struct vfio_domain, next);
+
 	n = rb_first(&iommu->dma_list);
 
 	for (; n; n = rb_next(n)) {
@@ -1211,6 +1257,11 @@
 				phys_addr_t p;
 				dma_addr_t i;
 
+				if (WARN_ON(!d)) { /* mapped w/o a domain?! */
+					ret = -EINVAL;
+					goto unwind;
+				}
+
 				phys = iommu_iova_to_phys(d->domain, iova);
 
 				if (WARN_ON(!phys)) {
@@ -1240,7 +1291,7 @@
 				if (npage <= 0) {
 					WARN_ON(!npage);
 					ret = (int)npage;
-					return ret;
+					goto unwind;
 				}
 
 				phys = pfn << PAGE_SHIFT;
@@ -1249,14 +1300,67 @@
 
 			ret = iommu_map(domain->domain, iova, phys,
 					size, dma->prot | domain->prot);
-			if (ret)
-				return ret;
+			if (ret) {
+				if (!dma->iommu_mapped)
+					vfio_unpin_pages_remote(dma, iova,
+							phys >> PAGE_SHIFT,
+							size >> PAGE_SHIFT,
+							true);
+				goto unwind;
+			}
 
 			iova += size;
 		}
+	}
+
+	/* All dmas are now mapped, defer to second tree walk for unwind */
+	for (n = rb_first(&iommu->dma_list); n; n = rb_next(n)) {
+		struct vfio_dma *dma = rb_entry(n, struct vfio_dma, node);
+
 		dma->iommu_mapped = true;
 	}
+
 	return 0;
+
+unwind:
+	for (; n; n = rb_prev(n)) {
+		struct vfio_dma *dma = rb_entry(n, struct vfio_dma, node);
+		dma_addr_t iova;
+
+		if (dma->iommu_mapped) {
+			iommu_unmap(domain->domain, dma->iova, dma->size);
+			continue;
+		}
+
+		iova = dma->iova;
+		while (iova < dma->iova + dma->size) {
+			phys_addr_t phys, p;
+			size_t size;
+			dma_addr_t i;
+
+			phys = iommu_iova_to_phys(domain->domain, iova);
+			if (!phys) {
+				iova += PAGE_SIZE;
+				continue;
+			}
+
+			size = PAGE_SIZE;
+			p = phys + size;
+			i = iova + size;
+			while (i < dma->iova + dma->size &&
+			       p == iommu_iova_to_phys(domain->domain, i)) {
+				size += PAGE_SIZE;
+				p += PAGE_SIZE;
+				i += PAGE_SIZE;
+			}
+
+			iommu_unmap(domain->domain, iova, size);
+			vfio_unpin_pages_remote(dma, iova, phys >> PAGE_SHIFT,
+						size >> PAGE_SHIFT, true);
+		}
+	}
+
+	return ret;
 }
 
 /*
@@ -1882,23 +1986,6 @@
 	}
 }
 
-static void vfio_sanity_check_pfn_list(struct vfio_iommu *iommu)
-{
-	struct rb_node *n;
-
-	n = rb_first(&iommu->dma_list);
-	for (; n; n = rb_next(n)) {
-		struct vfio_dma *dma;
-
-		dma = rb_entry(n, struct vfio_dma, node);
-
-		if (WARN_ON(!RB_EMPTY_ROOT(&dma->pfn_list)))
-			break;
-	}
-	/* mdev vendor driver must unregister notifier */
-	WARN_ON(iommu->notifier.head);
-}
-
 /*
  * Called when a domain is removed in detach. It is possible that
  * the removed domain decided the iova aperture window. Modify the
@@ -1996,10 +2083,10 @@
 			kfree(group);
 
 			if (list_empty(&iommu->external_domain->group_list)) {
-				vfio_sanity_check_pfn_list(iommu);
-
-				if (!IS_IOMMU_CAP_DOMAIN_IN_CONTAINER(iommu))
+				if (!IS_IOMMU_CAP_DOMAIN_IN_CONTAINER(iommu)) {
+					WARN_ON(iommu->notifier.head);
 					vfio_iommu_unmap_unpin_all(iommu);
+				}
 
 				kfree(iommu->external_domain);
 				iommu->external_domain = NULL;
@@ -2032,10 +2119,12 @@
 		 */
 		if (list_empty(&domain->group_list)) {
 			if (list_is_singular(&iommu->domain_list)) {
-				if (!iommu->external_domain)
+				if (!iommu->external_domain) {
+					WARN_ON(iommu->notifier.head);
 					vfio_iommu_unmap_unpin_all(iommu);
-				else
+				} else {
 					vfio_iommu_unmap_unpin_reaccount(iommu);
+				}
 			}
 			iommu_domain_free(domain->domain);
 			list_del(&domain->next);
@@ -2109,7 +2198,6 @@
 
 	if (iommu->external_domain) {
 		vfio_release_domain(iommu->external_domain, true);
-		vfio_sanity_check_pfn_list(iommu);
 		kfree(iommu->external_domain);
 	}
 
@@ -2211,6 +2299,24 @@
 	return ret;
 }
 
+static int vfio_iommu_dma_avail_build_caps(struct vfio_iommu *iommu,
+					   struct vfio_info_cap *caps)
+{
+	struct vfio_iommu_type1_info_dma_avail cap_dma_avail;
+	int ret;
+
+	mutex_lock(&iommu->lock);
+	cap_dma_avail.header.id = VFIO_IOMMU_TYPE1_INFO_DMA_AVAIL;
+	cap_dma_avail.header.version = 1;
+
+	cap_dma_avail.avail = iommu->dma_avail;
+
+	ret = vfio_info_add_capability(caps, &cap_dma_avail.header,
+				       sizeof(cap_dma_avail));
+	mutex_unlock(&iommu->lock);
+	return ret;
+}
+
 static long vfio_iommu_type1_ioctl(void *iommu_data,
 				   unsigned int cmd, unsigned long arg)
 {
@@ -2257,6 +2363,10 @@
 		info.iova_pgsizes = vfio_pgsize_bitmap(iommu);
 
 		ret = vfio_iommu_iova_build_caps(iommu, &caps);
+
+		if (!ret)
+			ret = vfio_iommu_dma_avail_build_caps(iommu, &caps);
+
 		if (ret)
 			return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/vhost/net.c
+++ linux-gkeop-5.4-5.4.0/drivers/vhost/net.c
@@ -860,6 +860,7 @@
 	size_t len, total_len = 0;
 	int err;
 	struct vhost_net_ubuf_ref *uninitialized_var(ubufs);
+	struct ubuf_info *ubuf;
 	bool zcopy_used;
 	int sent_pkts = 0;
 
@@ -892,9 +893,7 @@
 
 		/* use msg_control to pass vhost zerocopy ubuf info to skb */
 		if (zcopy_used) {
-			struct ubuf_info *ubuf;
 			ubuf = nvq->ubuf_info + nvq->upend_idx;
-
 			vq->heads[nvq->upend_idx].id = cpu_to_vhost32(vq, head);
 			vq->heads[nvq->upend_idx].len = VHOST_DMA_IN_PROGRESS;
 			ubuf->callback = vhost_zerocopy_callback;
@@ -924,7 +923,8 @@
 		err = sock->ops->sendmsg(sock, &msg, len);
 		if (unlikely(err < 0)) {
 			if (zcopy_used) {
-				vhost_net_ubuf_put(ubufs);
+				if (vq->heads[ubuf->desc].len == VHOST_DMA_IN_PROGRESS)
+					vhost_net_ubuf_put(ubufs);
 				nvq->upend_idx = ((unsigned)nvq->upend_idx - 1)
 					% UIO_MAXIOV;
 			}
@@ -1414,10 +1414,6 @@
 
 static struct socket *get_raw_socket(int fd)
 {
-	struct {
-		struct sockaddr_ll sa;
-		char  buf[MAX_ADDR_LEN];
-	} uaddr;
 	int r;
 	struct socket *sock = sockfd_lookup(fd, &r);
 
@@ -1430,11 +1426,7 @@
 		goto err;
 	}
 
-	r = sock->ops->getname(sock, (struct sockaddr *)&uaddr.sa, 0);
-	if (r < 0)
-		goto err;
-
-	if (uaddr.sa.sll_family != AF_PACKET) {
+	if (sock->sk->sk_family != AF_PACKET) {
 		r = -EPFNOSUPPORT;
 		goto err;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/vhost/scsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/vhost/scsi.c
@@ -320,7 +320,7 @@
 	return 1;
 }
 
-static void vhost_scsi_release_cmd(struct se_cmd *se_cmd)
+static void vhost_scsi_release_cmd_res(struct se_cmd *se_cmd)
 {
 	struct vhost_scsi_cmd *tv_cmd = container_of(se_cmd,
 				struct vhost_scsi_cmd, tvc_se_cmd);
@@ -340,6 +340,16 @@
 	target_free_tag(se_sess, se_cmd);
 }
 
+static void vhost_scsi_release_cmd(struct se_cmd *se_cmd)
+{
+	struct vhost_scsi_cmd *cmd = container_of(se_cmd,
+					struct vhost_scsi_cmd, tvc_se_cmd);
+	struct vhost_scsi *vs = cmd->tvc_vhost;
+
+	llist_add(&cmd->tvc_completion_list, &vs->vs_completion_list);
+	vhost_work_queue(&vs->dev, &vs->vs_completion_work);
+}
+
 static u32 vhost_scsi_sess_get_index(struct se_session *se_sess)
 {
 	return 0;
@@ -362,28 +372,15 @@
 	return 0;
 }
 
-static void vhost_scsi_complete_cmd(struct vhost_scsi_cmd *cmd)
-{
-	struct vhost_scsi *vs = cmd->tvc_vhost;
-
-	llist_add(&cmd->tvc_completion_list, &vs->vs_completion_list);
-
-	vhost_work_queue(&vs->dev, &vs->vs_completion_work);
-}
-
 static int vhost_scsi_queue_data_in(struct se_cmd *se_cmd)
 {
-	struct vhost_scsi_cmd *cmd = container_of(se_cmd,
-				struct vhost_scsi_cmd, tvc_se_cmd);
-	vhost_scsi_complete_cmd(cmd);
+	transport_generic_free_cmd(se_cmd, 0);
 	return 0;
 }
 
 static int vhost_scsi_queue_status(struct se_cmd *se_cmd)
 {
-	struct vhost_scsi_cmd *cmd = container_of(se_cmd,
-				struct vhost_scsi_cmd, tvc_se_cmd);
-	vhost_scsi_complete_cmd(cmd);
+	transport_generic_free_cmd(se_cmd, 0);
 	return 0;
 }
 
@@ -429,15 +426,6 @@
 	return evt;
 }
 
-static void vhost_scsi_free_cmd(struct vhost_scsi_cmd *cmd)
-{
-	struct se_cmd *se_cmd = &cmd->tvc_se_cmd;
-
-	/* TODO locking against target/backend threads? */
-	transport_generic_free_cmd(se_cmd, 0);
-
-}
-
 static int vhost_scsi_check_stop_free(struct se_cmd *se_cmd)
 {
 	return target_put_sess_cmd(se_cmd);
@@ -556,7 +544,7 @@
 		} else
 			pr_err("Faulted on virtio_scsi_cmd_resp\n");
 
-		vhost_scsi_free_cmd(cmd);
+		vhost_scsi_release_cmd_res(se_cmd);
 	}
 
 	vq = -1;
@@ -1088,7 +1076,7 @@
 						      &prot_iter, exp_data_len,
 						      &data_iter))) {
 				vq_err(vq, "Failed to map iov to sgl\n");
-				vhost_scsi_release_cmd(&cmd->tvc_se_cmd);
+				vhost_scsi_release_cmd_res(&cmd->tvc_se_cmd);
 				goto err;
 			}
 		}
@@ -1215,7 +1203,7 @@
 			continue;
 		}
 
-		switch (v_req.type) {
+		switch (vhost32_to_cpu(vq, v_req.type)) {
 		case VIRTIO_SCSI_T_TMF:
 			vc.req = &v_req.tmf;
 			vc.req_size = sizeof(struct virtio_scsi_ctrl_tmf_req);
@@ -2290,6 +2278,7 @@
 static const struct target_core_fabric_ops vhost_scsi_ops = {
 	.module				= THIS_MODULE,
 	.fabric_name			= "vhost",
+	.max_data_sg_nents		= VHOST_SCSI_PREALLOC_SGLS,
 	.tpg_get_wwn			= vhost_scsi_get_fabric_wwn,
 	.tpg_get_tag			= vhost_scsi_get_tpgt,
 	.tpg_check_demo_mode		= vhost_scsi_check_true,
--- linux-gkeop-5.4-5.4.0.orig/drivers/vhost/vhost.c
+++ linux-gkeop-5.4-5.4.0/drivers/vhost/vhost.c
@@ -1299,6 +1299,11 @@
 			 struct vring_used __user *used)
 
 {
+	/* If an IOTLB device is present, the vring addresses are
+	 * GIOVAs. Access validation occurs at prefetch time. */
+	if (vq->iotlb)
+		return true;
+
 	return access_ok(desc, vhost_get_desc_size(vq, num)) &&
 	       access_ok(avail, vhost_get_avail_size(vq, num)) &&
 	       access_ok(used, vhost_get_used_size(vq, num));
@@ -1394,10 +1399,6 @@
 	if (!vq_log_access_ok(vq, vq->log_base))
 		return false;
 
-	/* Access validation occurs at prefetch time with IOTLB */
-	if (vq->iotlb)
-		return true;
-
 	return vq_access_ok(vq, vq->num, vq->desc, vq->avail, vq->used);
 }
 EXPORT_SYMBOL_GPL(vhost_vq_access_ok);
@@ -1544,8 +1545,7 @@
 		/* Also validate log access for used ring if enabled. */
 		if ((a.flags & (0x1 << VHOST_VRING_F_LOG)) &&
 			!log_access_ok(vq->log_base, a.log_guest_addr,
-				sizeof *vq->used +
-				vq->num * sizeof *vq->used->ring))
+				       vhost_get_used_size(vq, vq->num)))
 			return -EINVAL;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/vhost/vringh.c
+++ linux-gkeop-5.4-5.4.0/drivers/vhost/vringh.c
@@ -274,13 +274,14 @@
 	desc_max = vrh->vring.num;
 	up_next = -1;
 
+	/* You must want something! */
+	if (WARN_ON(!riov && !wiov))
+		return -EINVAL;
+
 	if (riov)
 		riov->i = riov->used = 0;
-	else if (wiov)
+	if (wiov)
 		wiov->i = wiov->used = 0;
-	else
-		/* You must want something! */
-		BUG();
 
 	for (;;) {
 		void *addr;
--- linux-gkeop-5.4-5.4.0.orig/drivers/vhost/vsock.c
+++ linux-gkeop-5.4-5.4.0/drivers/vhost/vsock.c
@@ -181,14 +181,14 @@
 			break;
 		}
 
-		vhost_add_used(vq, head, sizeof(pkt->hdr) + payload_len);
-		added = true;
-
-		/* Deliver to monitoring devices all correctly transmitted
-		 * packets.
+		/* Deliver to monitoring devices all packets that we
+		 * will transmit.
 		 */
 		virtio_transport_deliver_tap_pkt(pkt);
 
+		vhost_add_used(vq, head, sizeof(pkt->hdr) + payload_len);
+		added = true;
+
 		pkt->off += payload_len;
 		total_len += payload_len;
 
@@ -384,6 +384,52 @@
 	return val < vq->num;
 }
 
+static struct virtio_transport vhost_transport = {
+	.transport = {
+		.get_local_cid            = vhost_transport_get_local_cid,
+
+		.init                     = virtio_transport_do_socket_init,
+		.destruct                 = virtio_transport_destruct,
+		.release                  = virtio_transport_release,
+		.connect                  = virtio_transport_connect,
+		.shutdown                 = virtio_transport_shutdown,
+		.cancel_pkt               = vhost_transport_cancel_pkt,
+
+		.dgram_enqueue            = virtio_transport_dgram_enqueue,
+		.dgram_dequeue            = virtio_transport_dgram_dequeue,
+		.dgram_bind               = virtio_transport_dgram_bind,
+		.dgram_allow              = virtio_transport_dgram_allow,
+
+		.stream_enqueue           = virtio_transport_stream_enqueue,
+		.stream_dequeue           = virtio_transport_stream_dequeue,
+		.stream_has_data          = virtio_transport_stream_has_data,
+		.stream_has_space         = virtio_transport_stream_has_space,
+		.stream_rcvhiwat          = virtio_transport_stream_rcvhiwat,
+		.stream_is_active         = virtio_transport_stream_is_active,
+		.stream_allow             = virtio_transport_stream_allow,
+
+		.notify_poll_in           = virtio_transport_notify_poll_in,
+		.notify_poll_out          = virtio_transport_notify_poll_out,
+		.notify_recv_init         = virtio_transport_notify_recv_init,
+		.notify_recv_pre_block    = virtio_transport_notify_recv_pre_block,
+		.notify_recv_pre_dequeue  = virtio_transport_notify_recv_pre_dequeue,
+		.notify_recv_post_dequeue = virtio_transport_notify_recv_post_dequeue,
+		.notify_send_init         = virtio_transport_notify_send_init,
+		.notify_send_pre_block    = virtio_transport_notify_send_pre_block,
+		.notify_send_pre_enqueue  = virtio_transport_notify_send_pre_enqueue,
+		.notify_send_post_enqueue = virtio_transport_notify_send_post_enqueue,
+
+		.set_buffer_size          = virtio_transport_set_buffer_size,
+		.set_min_buffer_size      = virtio_transport_set_min_buffer_size,
+		.set_max_buffer_size      = virtio_transport_set_max_buffer_size,
+		.get_buffer_size          = virtio_transport_get_buffer_size,
+		.get_min_buffer_size      = virtio_transport_get_min_buffer_size,
+		.get_max_buffer_size      = virtio_transport_get_max_buffer_size,
+	},
+
+	.send_pkt = vhost_transport_send_pkt,
+};
+
 static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
 {
 	struct vhost_virtqueue *vq = container_of(work, struct vhost_virtqueue,
@@ -437,8 +483,10 @@
 		virtio_transport_deliver_tap_pkt(pkt);
 
 		/* Only accept correctly addressed packets */
-		if (le64_to_cpu(pkt->hdr.src_cid) == vsock->guest_cid)
-			virtio_transport_recv_pkt(pkt);
+		if (le64_to_cpu(pkt->hdr.src_cid) == vsock->guest_cid &&
+		    le64_to_cpu(pkt->hdr.dst_cid) ==
+		    vhost_transport_get_local_cid())
+			virtio_transport_recv_pkt(&vhost_transport, pkt);
 		else
 			virtio_transport_free_pkt(pkt);
 
@@ -498,6 +546,11 @@
 		mutex_unlock(&vq->mutex);
 	}
 
+	/* Some packets may have been queued before the device was started,
+	 * let's kick the send worker to send them.
+	 */
+	vhost_work_queue(&vsock->dev, &vsock->send_pkt_work);
+
 	mutex_unlock(&vsock->dev.mutex);
 	return 0;
 
@@ -786,52 +839,6 @@
 	.fops = &vhost_vsock_fops,
 };
 
-static struct virtio_transport vhost_transport = {
-	.transport = {
-		.get_local_cid            = vhost_transport_get_local_cid,
-
-		.init                     = virtio_transport_do_socket_init,
-		.destruct                 = virtio_transport_destruct,
-		.release                  = virtio_transport_release,
-		.connect                  = virtio_transport_connect,
-		.shutdown                 = virtio_transport_shutdown,
-		.cancel_pkt               = vhost_transport_cancel_pkt,
-
-		.dgram_enqueue            = virtio_transport_dgram_enqueue,
-		.dgram_dequeue            = virtio_transport_dgram_dequeue,
-		.dgram_bind               = virtio_transport_dgram_bind,
-		.dgram_allow              = virtio_transport_dgram_allow,
-
-		.stream_enqueue           = virtio_transport_stream_enqueue,
-		.stream_dequeue           = virtio_transport_stream_dequeue,
-		.stream_has_data          = virtio_transport_stream_has_data,
-		.stream_has_space         = virtio_transport_stream_has_space,
-		.stream_rcvhiwat          = virtio_transport_stream_rcvhiwat,
-		.stream_is_active         = virtio_transport_stream_is_active,
-		.stream_allow             = virtio_transport_stream_allow,
-
-		.notify_poll_in           = virtio_transport_notify_poll_in,
-		.notify_poll_out          = virtio_transport_notify_poll_out,
-		.notify_recv_init         = virtio_transport_notify_recv_init,
-		.notify_recv_pre_block    = virtio_transport_notify_recv_pre_block,
-		.notify_recv_pre_dequeue  = virtio_transport_notify_recv_pre_dequeue,
-		.notify_recv_post_dequeue = virtio_transport_notify_recv_post_dequeue,
-		.notify_send_init         = virtio_transport_notify_send_init,
-		.notify_send_pre_block    = virtio_transport_notify_send_pre_block,
-		.notify_send_pre_enqueue  = virtio_transport_notify_send_pre_enqueue,
-		.notify_send_post_enqueue = virtio_transport_notify_send_post_enqueue,
-
-		.set_buffer_size          = virtio_transport_set_buffer_size,
-		.set_min_buffer_size      = virtio_transport_set_min_buffer_size,
-		.set_max_buffer_size      = virtio_transport_set_max_buffer_size,
-		.get_buffer_size          = virtio_transport_get_buffer_size,
-		.get_min_buffer_size      = virtio_transport_get_min_buffer_size,
-		.get_max_buffer_size      = virtio_transport_get_max_buffer_size,
-	},
-
-	.send_pkt = vhost_transport_send_pkt,
-};
-
 static int __init vhost_vsock_init(void)
 {
 	int ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/backlight/lp855x_bl.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/backlight/lp855x_bl.c
@@ -456,7 +456,7 @@
 		ret = regulator_enable(lp->enable);
 		if (ret < 0) {
 			dev_err(lp->dev, "failed to enable vddio: %d\n", ret);
-			return ret;
+			goto disable_supply;
 		}
 
 		/*
@@ -471,24 +471,34 @@
 	ret = lp855x_configure(lp);
 	if (ret) {
 		dev_err(lp->dev, "device config err: %d", ret);
-		return ret;
+		goto disable_vddio;
 	}
 
 	ret = lp855x_backlight_register(lp);
 	if (ret) {
 		dev_err(lp->dev,
 			"failed to register backlight. err: %d\n", ret);
-		return ret;
+		goto disable_vddio;
 	}
 
 	ret = sysfs_create_group(&lp->dev->kobj, &lp855x_attr_group);
 	if (ret) {
 		dev_err(lp->dev, "failed to register sysfs. err: %d\n", ret);
-		return ret;
+		goto disable_vddio;
 	}
 
 	backlight_update_status(lp->bl);
+
 	return 0;
+
+disable_vddio:
+	if (lp->enable)
+		regulator_disable(lp->enable);
+disable_supply:
+	if (lp->supply)
+		regulator_disable(lp->supply);
+
+	return ret;
 }
 
 static int lp855x_remove(struct i2c_client *cl)
@@ -497,6 +507,8 @@
 
 	lp->bl->props.brightness = 0;
 	backlight_update_status(lp->bl);
+	if (lp->enable)
+		regulator_disable(lp->enable);
 	if (lp->supply)
 		regulator_disable(lp->supply);
 	sysfs_remove_group(&lp->dev->kobj, &lp855x_attr_group);
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/backlight/sky81452-backlight.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/backlight/sky81452-backlight.c
@@ -196,6 +196,7 @@
 					num_entry);
 		if (ret < 0) {
 			dev_err(dev, "led-sources node is invalid.\n");
+			of_node_put(np);
 			return ERR_PTR(-EINVAL);
 		}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/console/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/video/console/Kconfig
@@ -22,52 +22,6 @@
 
 	  Say Y.
 
-config VGACON_SOFT_SCROLLBACK
-       bool "Enable Scrollback Buffer in System RAM"
-       depends on VGA_CONSOLE
-       default n
-       help
-         The scrollback buffer of the standard VGA console is located in
-	 the VGA RAM.  The size of this RAM is fixed and is quite small.
-	 If you require a larger scrollback buffer, this can be placed in
-	 System RAM which is dynamically allocated during initialization.
-	 Placing the scrollback buffer in System RAM will slightly slow
-	 down the console.
-
-	 If you want this feature, say 'Y' here and enter the amount of
-	 RAM to allocate for this buffer.  If unsure, say 'N'.
-
-config VGACON_SOFT_SCROLLBACK_SIZE
-       int "Scrollback Buffer Size (in KB)"
-       depends on VGACON_SOFT_SCROLLBACK
-       range 1 1024
-       default "64"
-       help
-	  Enter the amount of System RAM to allocate for scrollback
-	  buffers of VGA consoles. Each 64KB will give you approximately
-	  16 80x25 screenfuls of scrollback buffer.
-
-config VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT
-	bool "Persistent Scrollback History for each console by default"
-	depends on VGACON_SOFT_SCROLLBACK
-	default n
-	help
-	  Say Y here if the scrollback history should persist by default when
-	  switching between consoles. Otherwise, the scrollback history will be
-	  flushed each time the console is switched. This feature can also be
-	  enabled using the boot command line parameter
-	  'vgacon.scrollback_persistent=1'.
-
-	  This feature might break your tool of choice to flush the scrollback
-	  buffer, e.g. clear(1) will work fine but Debian's clear_console(1)
-	  will be broken, which might cause security issues.
-	  You can use the escape sequence \e[3J instead if this feature is
-	  activated.
-
-	  Note that a buffer of VGACON_SOFT_SCROLLBACK_SIZE is taken for each
-	  created tty device.
-	  So if you use a RAM-constrained system, say N here.
-
 config MDA_CONSOLE
 	depends on !M68K && !PARISC && ISA
 	tristate "MDA text console (dual-headed)"
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/console/newport_con.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/console/newport_con.c
@@ -32,17 +32,14 @@
 #include <linux/linux_logo.h>
 #include <linux/font.h>
 
-#define FONT_DATA ((unsigned char *)font_vga_8x16.data)
+#define NEWPORT_LEN	0x10000
 
-/* borrowed from fbcon.c */
-#define REFCOUNT(fd)	(((int *)(fd))[-1])
-#define FNTSIZE(fd)	(((int *)(fd))[-2])
-#define FNTCHARCNT(fd)	(((int *)(fd))[-3])
-#define FONT_EXTRA_WORDS 3
+#define FONT_DATA ((unsigned char *)font_vga_8x16.data)
 
 static unsigned char *font_data[MAX_NR_CONSOLES];
 
 static struct newport_regs *npregs;
+static unsigned long newport_addr;
 
 static int logo_active;
 static int topscan;
@@ -520,6 +517,7 @@
 	FNTSIZE(new_data) = size;
 	FNTCHARCNT(new_data) = op->charcount;
 	REFCOUNT(new_data) = 0;	/* usage counter */
+	FNTSUM(new_data) = 0;
 
 	p = new_data;
 	for (i = 0; i < op->charcount; i++) {
@@ -702,7 +700,6 @@
 static int newport_probe(struct gio_device *dev,
 			 const struct gio_device_id *id)
 {
-	unsigned long newport_addr;
 	int err;
 
 	if (!dev->resource.start)
@@ -712,7 +709,7 @@
 		return -EBUSY; /* we only support one Newport as console */
 
 	newport_addr = dev->resource.start + 0xF0000;
-	if (!request_mem_region(newport_addr, 0x10000, "Newport"))
+	if (!request_mem_region(newport_addr, NEWPORT_LEN, "Newport"))
 		return -ENODEV;
 
 	npregs = (struct newport_regs *)/* ioremap cannot fail */
@@ -720,6 +717,11 @@
 	console_lock();
 	err = do_take_over_console(&newport_con, 0, MAX_NR_CONSOLES - 1, 1);
 	console_unlock();
+
+	if (err) {
+		iounmap((void *)npregs);
+		release_mem_region(newport_addr, NEWPORT_LEN);
+	}
 	return err;
 }
 
@@ -727,6 +729,7 @@
 {
 	give_up_console(&newport_con);
 	iounmap((void *)npregs);
+	release_mem_region(newport_addr, NEWPORT_LEN);
 }
 
 static struct gio_device_id newport_ids[] = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/console/vgacon.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/console/vgacon.c
@@ -165,210 +165,6 @@
 	write_vga(12, (c->vc_visible_origin - vga_vram_base) / 2);
 }
 
-#ifdef CONFIG_VGACON_SOFT_SCROLLBACK
-/* software scrollback */
-struct vgacon_scrollback_info {
-	void *data;
-	int tail;
-	int size;
-	int rows;
-	int cnt;
-	int cur;
-	int save;
-	int restore;
-};
-
-static struct vgacon_scrollback_info *vgacon_scrollback_cur;
-static struct vgacon_scrollback_info vgacon_scrollbacks[MAX_NR_CONSOLES];
-static bool scrollback_persistent = \
-	IS_ENABLED(CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT);
-module_param_named(scrollback_persistent, scrollback_persistent, bool, 0000);
-MODULE_PARM_DESC(scrollback_persistent, "Enable persistent scrollback for all vga consoles");
-
-static void vgacon_scrollback_reset(int vc_num, size_t reset_size)
-{
-	struct vgacon_scrollback_info *scrollback = &vgacon_scrollbacks[vc_num];
-
-	if (scrollback->data && reset_size > 0)
-		memset(scrollback->data, 0, reset_size);
-
-	scrollback->cnt  = 0;
-	scrollback->tail = 0;
-	scrollback->cur  = 0;
-}
-
-static void vgacon_scrollback_init(int vc_num)
-{
-	int pitch = vga_video_num_columns * 2;
-	size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024;
-	int rows = size / pitch;
-	void *data;
-
-	data = kmalloc_array(CONFIG_VGACON_SOFT_SCROLLBACK_SIZE, 1024,
-			     GFP_NOWAIT);
-
-	vgacon_scrollbacks[vc_num].data = data;
-	vgacon_scrollback_cur = &vgacon_scrollbacks[vc_num];
-
-	vgacon_scrollback_cur->rows = rows - 1;
-	vgacon_scrollback_cur->size = rows * pitch;
-
-	vgacon_scrollback_reset(vc_num, size);
-}
-
-static void vgacon_scrollback_switch(int vc_num)
-{
-	if (!scrollback_persistent)
-		vc_num = 0;
-
-	if (!vgacon_scrollbacks[vc_num].data) {
-		vgacon_scrollback_init(vc_num);
-	} else {
-		if (scrollback_persistent) {
-			vgacon_scrollback_cur = &vgacon_scrollbacks[vc_num];
-		} else {
-			size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024;
-
-			vgacon_scrollback_reset(vc_num, size);
-		}
-	}
-}
-
-static void vgacon_scrollback_startup(void)
-{
-	vgacon_scrollback_cur = &vgacon_scrollbacks[0];
-	vgacon_scrollback_init(0);
-}
-
-static void vgacon_scrollback_update(struct vc_data *c, int t, int count)
-{
-	void *p;
-
-	if (!vgacon_scrollback_cur->data || !vgacon_scrollback_cur->size ||
-	    c->vc_num != fg_console)
-		return;
-
-	p = (void *) (c->vc_origin + t * c->vc_size_row);
-
-	while (count--) {
-		scr_memcpyw(vgacon_scrollback_cur->data +
-			    vgacon_scrollback_cur->tail,
-			    p, c->vc_size_row);
-
-		vgacon_scrollback_cur->cnt++;
-		p += c->vc_size_row;
-		vgacon_scrollback_cur->tail += c->vc_size_row;
-
-		if (vgacon_scrollback_cur->tail >= vgacon_scrollback_cur->size)
-			vgacon_scrollback_cur->tail = 0;
-
-		if (vgacon_scrollback_cur->cnt > vgacon_scrollback_cur->rows)
-			vgacon_scrollback_cur->cnt = vgacon_scrollback_cur->rows;
-
-		vgacon_scrollback_cur->cur = vgacon_scrollback_cur->cnt;
-	}
-}
-
-static void vgacon_restore_screen(struct vc_data *c)
-{
-	c->vc_origin = c->vc_visible_origin;
-	vgacon_scrollback_cur->save = 0;
-
-	if (!vga_is_gfx && !vgacon_scrollback_cur->restore) {
-		scr_memcpyw((u16 *) c->vc_origin, (u16 *) c->vc_screenbuf,
-			    c->vc_screenbuf_size > vga_vram_size ?
-			    vga_vram_size : c->vc_screenbuf_size);
-		vgacon_scrollback_cur->restore = 1;
-		vgacon_scrollback_cur->cur = vgacon_scrollback_cur->cnt;
-	}
-}
-
-static void vgacon_scrolldelta(struct vc_data *c, int lines)
-{
-	int start, end, count, soff;
-
-	if (!lines) {
-		vgacon_restore_screen(c);
-		return;
-	}
-
-	if (!vgacon_scrollback_cur->data)
-		return;
-
-	if (!vgacon_scrollback_cur->save) {
-		vgacon_cursor(c, CM_ERASE);
-		vgacon_save_screen(c);
-		c->vc_origin = (unsigned long)c->vc_screenbuf;
-		vgacon_scrollback_cur->save = 1;
-	}
-
-	vgacon_scrollback_cur->restore = 0;
-	start = vgacon_scrollback_cur->cur + lines;
-	end = start + abs(lines);
-
-	if (start < 0)
-		start = 0;
-
-	if (start > vgacon_scrollback_cur->cnt)
-		start = vgacon_scrollback_cur->cnt;
-
-	if (end < 0)
-		end = 0;
-
-	if (end > vgacon_scrollback_cur->cnt)
-		end = vgacon_scrollback_cur->cnt;
-
-	vgacon_scrollback_cur->cur = start;
-	count = end - start;
-	soff = vgacon_scrollback_cur->tail -
-		((vgacon_scrollback_cur->cnt - end) * c->vc_size_row);
-	soff -= count * c->vc_size_row;
-
-	if (soff < 0)
-		soff += vgacon_scrollback_cur->size;
-
-	count = vgacon_scrollback_cur->cnt - start;
-
-	if (count > c->vc_rows)
-		count = c->vc_rows;
-
-	if (count) {
-		int copysize;
-
-		int diff = c->vc_rows - count;
-		void *d = (void *) c->vc_visible_origin;
-		void *s = (void *) c->vc_screenbuf;
-
-		count *= c->vc_size_row;
-		/* how much memory to end of buffer left? */
-		copysize = min(count, vgacon_scrollback_cur->size - soff);
-		scr_memcpyw(d, vgacon_scrollback_cur->data + soff, copysize);
-		d += copysize;
-		count -= copysize;
-
-		if (count) {
-			scr_memcpyw(d, vgacon_scrollback_cur->data, count);
-			d += count;
-		}
-
-		if (diff)
-			scr_memcpyw(d, s, diff * c->vc_size_row);
-	} else
-		vgacon_cursor(c, CM_MOVE);
-}
-
-static void vgacon_flush_scrollback(struct vc_data *c)
-{
-	size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024;
-
-	vgacon_scrollback_reset(c->vc_num, size);
-}
-#else
-#define vgacon_scrollback_startup(...) do { } while (0)
-#define vgacon_scrollback_init(...)    do { } while (0)
-#define vgacon_scrollback_update(...)  do { } while (0)
-#define vgacon_scrollback_switch(...)  do { } while (0)
-
 static void vgacon_restore_screen(struct vc_data *c)
 {
 	if (c->vc_origin != c->vc_visible_origin)
@@ -382,11 +178,6 @@
 	vga_set_mem_top(c);
 }
 
-static void vgacon_flush_scrollback(struct vc_data *c)
-{
-}
-#endif /* CONFIG_VGACON_SOFT_SCROLLBACK */
-
 static const char *vgacon_startup(void)
 {
 	const char *display_desc = NULL;
@@ -569,10 +360,7 @@
 	vgacon_xres = screen_info.orig_video_cols * VGA_FONTWIDTH;
 	vgacon_yres = vga_scan_lines;
 
-	if (!vga_init_done) {
-		vgacon_scrollback_startup();
-		vga_init_done = true;
-	}
+	vga_init_done = true;
 
 	return display_desc;
 }
@@ -863,7 +651,6 @@
 			vgacon_doresize(c, c->vc_cols, c->vc_rows);
 	}
 
-	vgacon_scrollback_switch(c->vc_num);
 	return 0;		/* Redrawing not needed */
 }
 
@@ -1316,6 +1103,9 @@
 static int vgacon_resize(struct vc_data *c, unsigned int width,
 			 unsigned int height, unsigned int user)
 {
+	if ((width << 1) * height > vga_vram_size)
+		return -EINVAL;
+
 	if (width % 2 || width > screen_info.orig_video_cols ||
 	    height > (screen_info.orig_video_lines * vga_default_font_height)/
 	    c->vc_font.height)
@@ -1377,7 +1167,6 @@
 	oldo = c->vc_origin;
 	delta = lines * c->vc_size_row;
 	if (dir == SM_UP) {
-		vgacon_scrollback_update(c, t, lines);
 		if (c->vc_scr_end + delta >= vga_vram_end) {
 			scr_memcpyw((u16 *) vga_vram_base,
 				    (u16 *) (oldo + delta),
@@ -1441,7 +1230,6 @@
 	.con_save_screen = vgacon_save_screen,
 	.con_build_attr = vgacon_build_attr,
 	.con_invert_region = vgacon_invert_region,
-	.con_flush_scrollback = vgacon_flush_scrollback,
 };
 EXPORT_SYMBOL(vga_con);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/Kconfig
@@ -1269,6 +1269,7 @@
 	select FB_CFB_IMAGEBLIT
 	select FB_BACKLIGHT if FB_ATY_BACKLIGHT
 	select FB_MACMODES if PPC
+	select FB_ATY_CT if SPARC64 && PCI
 	help
 	  This driver supports graphics boards with the ATI Mach64 chips.
 	  Say Y if you have such a graphics board.
@@ -1279,7 +1280,6 @@
 config FB_ATY_CT
 	bool "Mach64 CT/VT/GT/LT (incl. 3D RAGE) support"
 	depends on PCI && FB_ATY
-	default y if SPARC64 && PCI
 	help
 	  Say Y here to support use of ATI's 64-bit Rage boards (or other
 	  boards based on the Mach64 CT, VT, GT, and LT chipsets) as a
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/atmel_lcdfb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/atmel_lcdfb.c
@@ -987,8 +987,8 @@
 	}
 
 	INIT_LIST_HEAD(&pdata->pwr_gpios);
-	ret = -ENOMEM;
 	for (i = 0; i < gpiod_count(dev, "atmel,power-control"); i++) {
+		ret = -ENOMEM;
 		gpiod = devm_gpiod_get_index(dev, "atmel,power-control",
 					     i, GPIOD_ASIS);
 		if (IS_ERR(gpiod))
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/aty/radeon_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/aty/radeon_base.c
@@ -2323,7 +2323,7 @@
 
 	ret = radeon_kick_out_firmware_fb(pdev);
 	if (ret)
-		return ret;
+		goto err_release_fb;
 
 	/* request the mem regions */
 	ret = pci_request_region(pdev, 0, "radeonfb framebuffer");
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/bitblit.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/bitblit.c
@@ -216,7 +216,7 @@
 	region.color = color;
 	region.rop = ROP_COPY;
 
-	if (rw && !bottom_only) {
+	if ((int) rw > 0 && !bottom_only) {
 		region.dx = info->var.xoffset + rs;
 		region.dy = 0;
 		region.width = rw;
@@ -224,7 +224,7 @@
 		info->fbops->fb_fillrect(info, &region);
 	}
 
-	if (bh) {
+	if ((int) bh > 0) {
 		region.dx = info->var.xoffset;
 		region.dy = info->var.yoffset + bs;
 		region.width = rs;
@@ -234,7 +234,7 @@
 }
 
 static void bit_cursor(struct vc_data *vc, struct fb_info *info, int mode,
-		       int softback_lines, int fg, int bg)
+		       int fg, int bg)
 {
 	struct fb_cursor cursor;
 	struct fbcon_ops *ops = info->fbcon_par;
@@ -247,15 +247,6 @@
 
 	cursor.set = 0;
 
-	if (softback_lines) {
-		if (y + softback_lines >= vc->vc_rows) {
-			mode = CM_ERASE;
-			ops->cursor_flash = 0;
-			return;
-		} else
-			y += softback_lines;
-	}
-
  	c = scr_readw((u16 *) vc->vc_pos);
 	attribute = get_attribute(info, c);
 	src = vc->vc_font.data + ((c & charmask) * (w * vc->vc_font.height));
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbcon.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbcon.c
@@ -122,12 +122,6 @@
 /* logo_shown is an index to vc_cons when >= 0; otherwise follows FBCON_LOGO
    enums.  */
 static int logo_shown = FBCON_LOGO_CANSHOW;
-/* Software scrollback */
-static int fbcon_softback_size = 32768;
-static unsigned long softback_buf, softback_curr;
-static unsigned long softback_in;
-static unsigned long softback_top, softback_end;
-static int softback_lines;
 /* console mappings */
 static int first_fb_vc;
 static int last_fb_vc = MAX_NR_CONSOLES - 1;
@@ -167,8 +161,6 @@
 
 static const struct consw fb_con;
 
-#define CM_SOFTBACK	(8)
-
 #define advance_row(p, delta) (unsigned short *)((unsigned long)(p) + (delta) * vc->vc_size_row)
 
 static int fbcon_set_origin(struct vc_data *);
@@ -373,18 +365,6 @@
 	return color;
 }
 
-static void fbcon_update_softback(struct vc_data *vc)
-{
-	int l = fbcon_softback_size / vc->vc_size_row;
-
-	if (l > 5)
-		softback_end = softback_buf + l * vc->vc_size_row;
-	else
-		/* Smaller scrollback makes no sense, and 0 would screw
-		   the operation totally */
-		softback_top = 0;
-}
-
 static void fb_flashcursor(struct work_struct *work)
 {
 	struct fb_info *info = container_of(work, struct fb_info, queue);
@@ -414,7 +394,7 @@
 	c = scr_readw((u16 *) vc->vc_pos);
 	mode = (!ops->cursor_flash || ops->cursor_state.enable) ?
 		CM_ERASE : CM_DRAW;
-	ops->cursor(vc, info, mode, softback_lines, get_color(vc, info, c, 1),
+	ops->cursor(vc, info, mode, get_color(vc, info, c, 1),
 		    get_color(vc, info, c, 0));
 	console_unlock();
 }
@@ -471,13 +451,7 @@
 		}
 		
 		if (!strncmp(options, "scrollback:", 11)) {
-			options += 11;
-			if (*options) {
-				fbcon_softback_size = simple_strtoul(options, &options, 0);
-				if (*options == 'k' || *options == 'K') {
-					fbcon_softback_size *= 1024;
-				}
-			}
+			pr_warn("Ignoring scrollback size option\n");
 			continue;
 		}
 		
@@ -1016,31 +990,6 @@
 
 	set_blitting_type(vc, info);
 
-	if (info->fix.type != FB_TYPE_TEXT) {
-		if (fbcon_softback_size) {
-			if (!softback_buf) {
-				softback_buf =
-				    (unsigned long)
-				    kvmalloc(fbcon_softback_size,
-					    GFP_KERNEL);
-				if (!softback_buf) {
-					fbcon_softback_size = 0;
-					softback_top = 0;
-				}
-			}
-		} else {
-			if (softback_buf) {
-				kvfree((void *) softback_buf);
-				softback_buf = 0;
-				softback_top = 0;
-			}
-		}
-		if (softback_buf)
-			softback_in = softback_top = softback_curr =
-			    softback_buf;
-		softback_lines = 0;
-	}
-
 	/* Setup default font */
 	if (!p->fontdata && !vc->vc_font.data) {
 		if (!fontname[0] || !(font = find_font(fontname)))
@@ -1214,9 +1163,6 @@
 	if (logo)
 		fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows);
 
-	if (vc == svc && softback_buf)
-		fbcon_update_softback(vc);
-
 	if (ops->rotate_font && ops->rotate_font(info, vc)) {
 		ops->rotate = FB_ROTATE_UR;
 		set_blitting_type(vc, info);
@@ -1276,6 +1222,9 @@
 	if (!con_is_bound(&fb_con))
 		fbcon_exit();
 
+	if (vc->vc_num == logo_shown)
+		logo_shown = FBCON_LOGO_CANSHOW;
+
 	return;
 }
 
@@ -1376,7 +1325,6 @@
 {
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
 	struct fbcon_ops *ops = info->fbcon_par;
-	int y;
  	int c = scr_readw((u16 *) vc->vc_pos);
 
 	ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
@@ -1390,16 +1338,8 @@
 		fbcon_add_cursor_timer(info);
 
 	ops->cursor_flash = (mode == CM_ERASE) ? 0 : 1;
-	if (mode & CM_SOFTBACK) {
-		mode &= ~CM_SOFTBACK;
-		y = softback_lines;
-	} else {
-		if (softback_lines)
-			fbcon_set_origin(vc);
-		y = 0;
-	}
 
-	ops->cursor(vc, info, mode, y, get_color(vc, info, c, 1),
+	ops->cursor(vc, info, mode, get_color(vc, info, c, 1),
 		    get_color(vc, info, c, 0));
 }
 
@@ -1470,8 +1410,6 @@
 
 	if (con_is_visible(vc)) {
 		update_screen(vc);
-		if (softback_buf)
-			fbcon_update_softback(vc);
 	}
 }
 
@@ -1609,99 +1547,6 @@
 	scrollback_current = 0;
 }
 
-static void fbcon_redraw_softback(struct vc_data *vc, struct fbcon_display *p,
-				  long delta)
-{
-	int count = vc->vc_rows;
-	unsigned short *d, *s;
-	unsigned long n;
-	int line = 0;
-
-	d = (u16 *) softback_curr;
-	if (d == (u16 *) softback_in)
-		d = (u16 *) vc->vc_origin;
-	n = softback_curr + delta * vc->vc_size_row;
-	softback_lines -= delta;
-	if (delta < 0) {
-		if (softback_curr < softback_top && n < softback_buf) {
-			n += softback_end - softback_buf;
-			if (n < softback_top) {
-				softback_lines -=
-				    (softback_top - n) / vc->vc_size_row;
-				n = softback_top;
-			}
-		} else if (softback_curr >= softback_top
-			   && n < softback_top) {
-			softback_lines -=
-			    (softback_top - n) / vc->vc_size_row;
-			n = softback_top;
-		}
-	} else {
-		if (softback_curr > softback_in && n >= softback_end) {
-			n += softback_buf - softback_end;
-			if (n > softback_in) {
-				n = softback_in;
-				softback_lines = 0;
-			}
-		} else if (softback_curr <= softback_in && n > softback_in) {
-			n = softback_in;
-			softback_lines = 0;
-		}
-	}
-	if (n == softback_curr)
-		return;
-	softback_curr = n;
-	s = (u16 *) softback_curr;
-	if (s == (u16 *) softback_in)
-		s = (u16 *) vc->vc_origin;
-	while (count--) {
-		unsigned short *start;
-		unsigned short *le;
-		unsigned short c;
-		int x = 0;
-		unsigned short attr = 1;
-
-		start = s;
-		le = advance_row(s, 1);
-		do {
-			c = scr_readw(s);
-			if (attr != (c & 0xff00)) {
-				attr = c & 0xff00;
-				if (s > start) {
-					fbcon_putcs(vc, start, s - start,
-						    line, x);
-					x += s - start;
-					start = s;
-				}
-			}
-			if (c == scr_readw(d)) {
-				if (s > start) {
-					fbcon_putcs(vc, start, s - start,
-						    line, x);
-					x += s - start + 1;
-					start = s + 1;
-				} else {
-					x++;
-					start++;
-				}
-			}
-			s++;
-			d++;
-		} while (s < le);
-		if (s > start)
-			fbcon_putcs(vc, start, s - start, line, x);
-		line++;
-		if (d == (u16 *) softback_end)
-			d = (u16 *) softback_buf;
-		if (d == (u16 *) softback_in)
-			d = (u16 *) vc->vc_origin;
-		if (s == (u16 *) softback_end)
-			s = (u16 *) softback_buf;
-		if (s == (u16 *) softback_in)
-			s = (u16 *) vc->vc_origin;
-	}
-}
-
 static void fbcon_redraw_move(struct vc_data *vc, struct fbcon_display *p,
 			      int line, int count, int dy)
 {
@@ -1841,31 +1686,6 @@
 	}
 }
 
-static inline void fbcon_softback_note(struct vc_data *vc, int t,
-				       int count)
-{
-	unsigned short *p;
-
-	if (vc->vc_num != fg_console)
-		return;
-	p = (unsigned short *) (vc->vc_origin + t * vc->vc_size_row);
-
-	while (count) {
-		scr_memcpyw((u16 *) softback_in, p, vc->vc_size_row);
-		count--;
-		p = advance_row(p, 1);
-		softback_in += vc->vc_size_row;
-		if (softback_in == softback_end)
-			softback_in = softback_buf;
-		if (softback_in == softback_top) {
-			softback_top += vc->vc_size_row;
-			if (softback_top == softback_end)
-				softback_top = softback_buf;
-		}
-	}
-	softback_curr = softback_in;
-}
-
 static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
 		enum con_scroll dir, unsigned int count)
 {
@@ -1888,8 +1708,6 @@
 	case SM_UP:
 		if (count > vc->vc_rows)	/* Maximum realistic size */
 			count = vc->vc_rows;
-		if (softback_top)
-			fbcon_softback_note(vc, t, count);
 		if (logo_shown >= 0)
 			goto redraw_up;
 		switch (p->scrollmode) {
@@ -2182,6 +2000,9 @@
 	}
 }
 
+#define PITCH(w) (((w) + 7) >> 3)
+#define CALC_FONTSZ(h, p, c) ((h) * (p) * (c)) /* size = height * pitch * charcount */
+
 static int fbcon_resize(struct vc_data *vc, unsigned int width, 
 			unsigned int height, unsigned int user)
 {
@@ -2191,6 +2012,24 @@
 	struct fb_var_screeninfo var = info->var;
 	int x_diff, y_diff, virt_w, virt_h, virt_fw, virt_fh;
 
+	if (p->userfont && FNTSIZE(vc->vc_font.data)) {
+		int size;
+		int pitch = PITCH(vc->vc_font.width);
+
+		/*
+		 * If user font, ensure that a possible change to user font
+		 * height or width will not allow a font data out-of-bounds access.
+		 * NOTE: must use original charcount in calculation as font
+		 * charcount can change and cannot be used to determine the
+		 * font data allocated size.
+		 */
+		if (pitch <= 0)
+			return -EINVAL;
+		size = CALC_FONTSZ(vc->vc_font.height, pitch, FNTCHARCNT(vc->vc_font.data));
+		if (size > FNTSIZE(vc->vc_font.data))
+			return -EINVAL;
+	}
+
 	virt_w = FBCON_SWAP(ops->rotate, width, height);
 	virt_h = FBCON_SWAP(ops->rotate, height, width);
 	virt_fw = FBCON_SWAP(ops->rotate, vc->vc_font.width,
@@ -2239,14 +2078,6 @@
 	info = registered_fb[con2fb_map[vc->vc_num]];
 	ops = info->fbcon_par;
 
-	if (softback_top) {
-		if (softback_lines)
-			fbcon_set_origin(vc);
-		softback_top = softback_curr = softback_in = softback_buf;
-		softback_lines = 0;
-		fbcon_update_softback(vc);
-	}
-
 	if (logo_shown >= 0) {
 		struct vc_data *conp2 = vc_cons[logo_shown].d;
 
@@ -2461,6 +2292,9 @@
 
 	if (font->width <= 8) {
 		j = vc->vc_font.height;
+		if (font->charcount * j > FNTSIZE(fontdata))
+			return -EINVAL;
+
 		for (i = 0; i < font->charcount; i++) {
 			memcpy(data, fontdata, j);
 			memset(data + j, 0, 32 - j);
@@ -2469,6 +2303,9 @@
 		}
 	} else if (font->width <= 16) {
 		j = vc->vc_font.height * 2;
+		if (font->charcount * j > FNTSIZE(fontdata))
+			return -EINVAL;
+
 		for (i = 0; i < font->charcount; i++) {
 			memcpy(data, fontdata, j);
 			memset(data + j, 0, 64 - j);
@@ -2476,6 +2313,9 @@
 			fontdata += j;
 		}
 	} else if (font->width <= 24) {
+		if (font->charcount * (vc->vc_font.height * sizeof(u32)) > FNTSIZE(fontdata))
+			return -EINVAL;
+
 		for (i = 0; i < font->charcount; i++) {
 			for (j = 0; j < vc->vc_font.height; j++) {
 				*data++ = fontdata[0];
@@ -2488,6 +2328,9 @@
 		}
 	} else {
 		j = vc->vc_font.height * 4;
+		if (font->charcount * j > FNTSIZE(fontdata))
+			return -EINVAL;
+
 		for (i = 0; i < font->charcount; i++) {
 			memcpy(data, fontdata, j);
 			memset(data + j, 0, 128 - j);
@@ -2569,9 +2412,6 @@
 	int cnt;
 	char *old_data = NULL;
 
-	if (con_is_visible(vc) && softback_lines)
-		fbcon_set_origin(vc);
-
 	resize = (w != vc->vc_font.width) || (h != vc->vc_font.height);
 	if (p->userfont)
 		old_data = vc->vc_font.data;
@@ -2597,8 +2437,6 @@
 		cols /= w;
 		rows /= h;
 		vc_resize(vc, cols, rows);
-		if (con_is_visible(vc) && softback_buf)
-			fbcon_update_softback(vc);
 	} else if (con_is_visible(vc)
 		   && vc->vc_mode == KD_TEXT) {
 		fbcon_clear_margins(vc, 0);
@@ -2642,7 +2480,7 @@
 	int size;
 	int i, csum;
 	u8 *new_data, *data = font->data;
-	int pitch = (font->width+7) >> 3;
+	int pitch = PITCH(font->width);
 
 	/* Is there a reason why fbconsole couldn't handle any charcount >256?
 	 * If not this check should be changed to charcount < 256 */
@@ -2658,7 +2496,7 @@
 	if (fbcon_invalid_charcount(info, charcount))
 		return -EINVAL;
 
-	size = h * pitch * charcount;
+	size = CALC_FONTSZ(h, pitch, charcount);
 
 	new_data = kmalloc(FONT_EXTRA_WORDS * sizeof(int) + size, GFP_USER);
 
@@ -2757,19 +2595,7 @@
 
 static u16 *fbcon_screen_pos(struct vc_data *vc, int offset)
 {
-	unsigned long p;
-	int line;
-	
-	if (vc->vc_num != fg_console || !softback_lines)
-		return (u16 *) (vc->vc_origin + offset);
-	line = offset / vc->vc_size_row;
-	if (line >= softback_lines)
-		return (u16 *) (vc->vc_origin + offset -
-				softback_lines * vc->vc_size_row);
-	p = softback_curr + offset;
-	if (p >= softback_end)
-		p += softback_buf - softback_end;
-	return (u16 *) p;
+	return (u16 *) (vc->vc_origin + offset);
 }
 
 static unsigned long fbcon_getxy(struct vc_data *vc, unsigned long pos,
@@ -2783,22 +2609,7 @@
 
 		x = offset % vc->vc_cols;
 		y = offset / vc->vc_cols;
-		if (vc->vc_num == fg_console)
-			y += softback_lines;
-		ret = pos + (vc->vc_cols - x) * 2;
-	} else if (vc->vc_num == fg_console && softback_lines) {
-		unsigned long offset = pos - softback_curr;
-
-		if (pos < softback_curr)
-			offset += softback_end - softback_buf;
-		offset /= 2;
-		x = offset % vc->vc_cols;
-		y = offset / vc->vc_cols;
 		ret = pos + (vc->vc_cols - x) * 2;
-		if (ret == softback_end)
-			ret = softback_buf;
-		if (ret == softback_in)
-			ret = vc->vc_origin;
 	} else {
 		/* Should not happen */
 		x = y = 0;
@@ -2826,106 +2637,11 @@
 			a = ((a) & 0x88ff) | (((a) & 0x7000) >> 4) |
 			    (((a) & 0x0700) << 4);
 		scr_writew(a, p++);
-		if (p == (u16 *) softback_end)
-			p = (u16 *) softback_buf;
-		if (p == (u16 *) softback_in)
-			p = (u16 *) vc->vc_origin;
 	}
 }
 
-static void fbcon_scrolldelta(struct vc_data *vc, int lines)
-{
-	struct fb_info *info = registered_fb[con2fb_map[fg_console]];
-	struct fbcon_ops *ops = info->fbcon_par;
-	struct fbcon_display *disp = &fb_display[fg_console];
-	int offset, limit, scrollback_old;
-
-	if (softback_top) {
-		if (vc->vc_num != fg_console)
-			return;
-		if (vc->vc_mode != KD_TEXT || !lines)
-			return;
-		if (logo_shown >= 0) {
-			struct vc_data *conp2 = vc_cons[logo_shown].d;
-
-			if (conp2->vc_top == logo_lines
-			    && conp2->vc_bottom == conp2->vc_rows)
-				conp2->vc_top = 0;
-			if (logo_shown == vc->vc_num) {
-				unsigned long p, q;
-				int i;
-
-				p = softback_in;
-				q = vc->vc_origin +
-				    logo_lines * vc->vc_size_row;
-				for (i = 0; i < logo_lines; i++) {
-					if (p == softback_top)
-						break;
-					if (p == softback_buf)
-						p = softback_end;
-					p -= vc->vc_size_row;
-					q -= vc->vc_size_row;
-					scr_memcpyw((u16 *) q, (u16 *) p,
-						    vc->vc_size_row);
-				}
-				softback_in = softback_curr = p;
-				update_region(vc, vc->vc_origin,
-					      logo_lines * vc->vc_cols);
-			}
-			logo_shown = FBCON_LOGO_CANSHOW;
-		}
-		fbcon_cursor(vc, CM_ERASE | CM_SOFTBACK);
-		fbcon_redraw_softback(vc, disp, lines);
-		fbcon_cursor(vc, CM_DRAW | CM_SOFTBACK);
-		return;
-	}
-
-	if (!scrollback_phys_max)
-		return;
-
-	scrollback_old = scrollback_current;
-	scrollback_current -= lines;
-	if (scrollback_current < 0)
-		scrollback_current = 0;
-	else if (scrollback_current > scrollback_max)
-		scrollback_current = scrollback_max;
-	if (scrollback_current == scrollback_old)
-		return;
-
-	if (fbcon_is_inactive(vc, info))
-		return;
-
-	fbcon_cursor(vc, CM_ERASE);
-
-	offset = disp->yscroll - scrollback_current;
-	limit = disp->vrows;
-	switch (disp->scrollmode) {
-	case SCROLL_WRAP_MOVE:
-		info->var.vmode |= FB_VMODE_YWRAP;
-		break;
-	case SCROLL_PAN_MOVE:
-	case SCROLL_PAN_REDRAW:
-		limit -= vc->vc_rows;
-		info->var.vmode &= ~FB_VMODE_YWRAP;
-		break;
-	}
-	if (offset < 0)
-		offset += limit;
-	else if (offset >= limit)
-		offset -= limit;
-
-	ops->var.xoffset = 0;
-	ops->var.yoffset = offset * vc->vc_font.height;
-	ops->update_start(info);
-
-	if (!scrollback_current)
-		fbcon_cursor(vc, CM_DRAW);
-}
-
 static int fbcon_set_origin(struct vc_data *vc)
 {
-	if (softback_lines)
-		fbcon_scrolldelta(vc, softback_lines);
 	return 0;
 }
 
@@ -2989,8 +2705,6 @@
 
 		fbcon_set_palette(vc, color_table);
 		update_screen(vc);
-		if (softback_buf)
-			fbcon_update_softback(vc);
 	}
 }
 
@@ -3401,7 +3115,6 @@
 	.con_font_default	= fbcon_set_def_font,
 	.con_font_copy 		= fbcon_copy_font,
 	.con_set_palette 	= fbcon_set_palette,
-	.con_scrolldelta 	= fbcon_scrolldelta,
 	.con_set_origin 	= fbcon_set_origin,
 	.con_invert_region 	= fbcon_invert_region,
 	.con_screen_pos 	= fbcon_screen_pos,
@@ -3636,9 +3349,6 @@
 	}
 #endif
 
-	kvfree((void *)softback_buf);
-	softback_buf = 0UL;
-
 	for_each_registered_fb(i) {
 		int pending = 0;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbcon.h
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbcon.h
@@ -62,7 +62,7 @@
 	void (*clear_margins)(struct vc_data *vc, struct fb_info *info,
 			      int color, int bottom_only);
 	void (*cursor)(struct vc_data *vc, struct fb_info *info, int mode,
-		       int softback_lines, int fg, int bg);
+		       int fg, int bg);
 	int  (*update_start)(struct fb_info *info);
 	int  (*rotate_font)(struct fb_info *info, struct vc_data *vc);
 	struct fb_var_screeninfo var;  /* copy of the current fb_var_screeninfo */
@@ -152,13 +152,6 @@
 #define attr_bgcol_ec(bgshift, vc, info) attr_col_ec(bgshift, vc, info, 0)
 #define attr_fgcol_ec(fgshift, vc, info) attr_col_ec(fgshift, vc, info, 1)
 
-/* Font */
-#define REFCOUNT(fd)	(((int *)(fd))[-1])
-#define FNTSIZE(fd)	(((int *)(fd))[-2])
-#define FNTCHARCNT(fd)	(((int *)(fd))[-3])
-#define FNTSUM(fd)	(((int *)(fd))[-4])
-#define FONT_EXTRA_WORDS 4
-
     /*
      *  Scroll Method
      */
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbcon_ccw.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbcon_ccw.c
@@ -201,7 +201,7 @@
 	region.color = color;
 	region.rop = ROP_COPY;
 
-	if (rw && !bottom_only) {
+	if ((int) rw > 0 && !bottom_only) {
 		region.dx = 0;
 		region.dy = info->var.yoffset;
 		region.height = rw;
@@ -209,7 +209,7 @@
 		info->fbops->fb_fillrect(info, &region);
 	}
 
-	if (bh) {
+	if ((int) bh > 0) {
 		region.dx = info->var.xoffset + bs;
 		region.dy = 0;
                 region.height = info->var.yres_virtual;
@@ -219,7 +219,7 @@
 }
 
 static void ccw_cursor(struct vc_data *vc, struct fb_info *info, int mode,
-		       int softback_lines, int fg, int bg)
+		       int fg, int bg)
 {
 	struct fb_cursor cursor;
 	struct fbcon_ops *ops = info->fbcon_par;
@@ -236,15 +236,6 @@
 
 	cursor.set = 0;
 
-	if (softback_lines) {
-		if (y + softback_lines >= vc->vc_rows) {
-			mode = CM_ERASE;
-			ops->cursor_flash = 0;
-			return;
-		} else
-			y += softback_lines;
-	}
-
  	c = scr_readw((u16 *) vc->vc_pos);
 	attribute = get_attribute(info, c);
 	src = ops->fontbuffer + ((c & charmask) * (w * vc->vc_font.width));
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbcon_cw.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbcon_cw.c
@@ -184,7 +184,7 @@
 	region.color = color;
 	region.rop = ROP_COPY;
 
-	if (rw && !bottom_only) {
+	if ((int) rw > 0 && !bottom_only) {
 		region.dx = 0;
 		region.dy = info->var.yoffset + rs;
 		region.height = rw;
@@ -192,7 +192,7 @@
 		info->fbops->fb_fillrect(info, &region);
 	}
 
-	if (bh) {
+	if ((int) bh > 0) {
 		region.dx = info->var.xoffset;
 		region.dy = info->var.yoffset;
                 region.height = info->var.yres;
@@ -202,7 +202,7 @@
 }
 
 static void cw_cursor(struct vc_data *vc, struct fb_info *info, int mode,
-		      int softback_lines, int fg, int bg)
+		      int fg, int bg)
 {
 	struct fb_cursor cursor;
 	struct fbcon_ops *ops = info->fbcon_par;
@@ -219,15 +219,6 @@
 
 	cursor.set = 0;
 
-	if (softback_lines) {
-		if (y + softback_lines >= vc->vc_rows) {
-			mode = CM_ERASE;
-			ops->cursor_flash = 0;
-			return;
-		} else
-			y += softback_lines;
-	}
-
  	c = scr_readw((u16 *) vc->vc_pos);
 	attribute = get_attribute(info, c);
 	src = ops->fontbuffer + ((c & charmask) * (w * vc->vc_font.width));
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbcon_rotate.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbcon_rotate.c
@@ -14,6 +14,7 @@
 #include <linux/fb.h>
 #include <linux/vt_kern.h>
 #include <linux/console.h>
+#include <linux/font.h>
 #include <asm/types.h>
 #include "fbcon.h"
 #include "fbcon_rotate.h"
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbcon_ud.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbcon_ud.c
@@ -231,7 +231,7 @@
 	region.color = color;
 	region.rop = ROP_COPY;
 
-	if (rw && !bottom_only) {
+	if ((int) rw > 0 && !bottom_only) {
 		region.dy = 0;
 		region.dx = info->var.xoffset;
 		region.width  = rw;
@@ -239,7 +239,7 @@
 		info->fbops->fb_fillrect(info, &region);
 	}
 
-	if (bh) {
+	if ((int) bh > 0) {
 		region.dy = info->var.yoffset;
 		region.dx = info->var.xoffset;
                 region.height  = bh;
@@ -249,7 +249,7 @@
 }
 
 static void ud_cursor(struct vc_data *vc, struct fb_info *info, int mode,
-		      int softback_lines, int fg, int bg)
+		      int fg, int bg)
 {
 	struct fb_cursor cursor;
 	struct fbcon_ops *ops = info->fbcon_par;
@@ -267,15 +267,6 @@
 
 	cursor.set = 0;
 
-	if (softback_lines) {
-		if (y + softback_lines >= vc->vc_rows) {
-			mode = CM_ERASE;
-			ops->cursor_flash = 0;
-			return;
-		} else
-			y += softback_lines;
-	}
-
  	c = scr_readw((u16 *) vc->vc_pos);
 	attribute = get_attribute(info, c);
 	src = ops->fontbuffer + ((c & charmask) * (w * vc->vc_font.height));
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbmem.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbmem.c
@@ -662,20 +662,20 @@
 		fb_logo.depth = 1;
 
 
- 	if (fb_logo.depth > 4 && depth > 4) {
- 		switch (info->fix.visual) {
- 		case FB_VISUAL_TRUECOLOR:
- 			fb_logo.needs_truepalette = 1;
- 			break;
- 		case FB_VISUAL_DIRECTCOLOR:
- 			fb_logo.needs_directpalette = 1;
- 			fb_logo.needs_cmapreset = 1;
- 			break;
- 		case FB_VISUAL_PSEUDOCOLOR:
- 			fb_logo.needs_cmapreset = 1;
- 			break;
- 		}
- 	}
+	if (fb_logo.depth > 4 && depth > 4) {
+		switch (info->fix.visual) {
+		case FB_VISUAL_TRUECOLOR:
+			fb_logo.needs_truepalette = 1;
+			break;
+		case FB_VISUAL_DIRECTCOLOR:
+			fb_logo.needs_directpalette = 1;
+			fb_logo.needs_cmapreset = 1;
+			break;
+		case FB_VISUAL_PSEUDOCOLOR:
+			fb_logo.needs_cmapreset = 1;
+			break;
+		}
+	}
 
 	height = fb_logo.logo->height;
 	if (fb_center_logo)
@@ -952,7 +952,6 @@
 int
 fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
 {
-	int flags = info->flags;
 	int ret = 0;
 	u32 activate;
 	struct fb_var_screeninfo old_var;
@@ -1002,6 +1001,10 @@
 		return 0;
 	}
 
+	/* bitfill_aligned() assumes that it's at least 8x8 */
+	if (var->xres < 8 || var->yres < 8)
+		return -EINVAL;
+
 	ret = info->fbops->fb_check_var(var, info);
 
 	if (ret)
@@ -1047,9 +1050,6 @@
 	event.data = &mode;
 	fb_notifier_call_chain(FB_EVENT_MODE_CHANGE, &event);
 
-	if (flags & FBINFO_MISC_USEREVENT)
-		fbcon_update_vcs(info, activate & FB_ACTIVATE_ALL);
-
 	return 0;
 }
 EXPORT_SYMBOL(fb_set_var);
@@ -1060,19 +1060,19 @@
 	struct fb_event event;
 	int ret = -EINVAL;
 
- 	if (blank > FB_BLANK_POWERDOWN)
- 		blank = FB_BLANK_POWERDOWN;
+	if (blank > FB_BLANK_POWERDOWN)
+		blank = FB_BLANK_POWERDOWN;
 
 	event.info = info;
 	event.data = &blank;
 
 	if (info->fbops->fb_blank)
- 		ret = info->fbops->fb_blank(blank, info);
+		ret = info->fbops->fb_blank(blank, info);
 
 	if (!ret)
 		fb_notifier_call_chain(FB_EVENT_BLANK, &event);
 
- 	return ret;
+	return ret;
 }
 EXPORT_SYMBOL(fb_blank);
 
@@ -1100,9 +1100,9 @@
 			return -EFAULT;
 		console_lock();
 		lock_fb_info(info);
-		info->flags |= FBINFO_MISC_USEREVENT;
 		ret = fb_set_var(info, &var);
-		info->flags &= ~FBINFO_MISC_USEREVENT;
+		if (!ret)
+			fbcon_update_vcs(info, var.activate & FB_ACTIVATE_ALL);
 		unlock_fb_info(info);
 		console_unlock();
 		if (!ret && copy_to_user(argp, &var, sizeof(var)))
@@ -1110,7 +1110,7 @@
 		break;
 	case FBIOGET_FSCREENINFO:
 		lock_fb_info(info);
-		fix = info->fix;
+		memcpy(&fix, &info->fix, sizeof(fix));
 		if (info->flags & FBINFO_HIDE_SMEM_START)
 			fix.smem_start = 0;
 		unlock_fb_info(info);
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/fbsysfs.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/fbsysfs.c
@@ -91,9 +91,9 @@
 
 	var->activate |= FB_ACTIVATE_FORCE;
 	console_lock();
-	fb_info->flags |= FBINFO_MISC_USEREVENT;
 	err = fb_set_var(fb_info, var);
-	fb_info->flags &= ~FBINFO_MISC_USEREVENT;
+	if (!err)
+		fbcon_update_vcs(fb_info, var->activate & FB_ACTIVATE_ALL);
 	console_unlock();
 	if (err)
 		return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/core/tileblit.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/core/tileblit.c
@@ -13,6 +13,7 @@
 #include <linux/fb.h>
 #include <linux/vt_kern.h>
 #include <linux/console.h>
+#include <linux/font.h>
 #include <asm/types.h>
 #include "fbcon.h"
 
@@ -80,7 +81,7 @@
 }
 
 static void tile_cursor(struct vc_data *vc, struct fb_info *info, int mode,
-			int softback_lines, int fg, int bg)
+			int fg, int bg)
 {
 	struct fb_tilecursor cursor;
 	int use_sw = (vc->vc_cursor_type & 0x10);
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/efifb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/efifb.c
@@ -453,7 +453,7 @@
 	info->apertures->ranges[0].base = efifb_fix.smem_start;
 	info->apertures->ranges[0].size = size_remap;
 
-	if (efi_enabled(EFI_BOOT) &&
+	if (efi_enabled(EFI_MEMMAP) &&
 	    !efi_mem_desc_lookup(efifb_fix.smem_start, &md)) {
 		if ((efifb_fix.smem_start + efifb_fix.smem_len) >
 		    (md.phys_addr + (md.num_pages << EFI_PAGE_SHIFT))) {
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/hyperv_fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/hyperv_fb.c
@@ -703,7 +703,10 @@
 		goto err1;
 	}
 
-	fb_virt = ioremap(par->mem->start, screen_fb_size);
+	/*
+	 * Map the VRAM cacheable for performance.
+	 */
+	fb_virt = ioremap_wc(par->mem->start, screen_fb_size);
 	if (!fb_virt)
 		goto err2;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/neofb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/neofb.c
@@ -1820,6 +1820,7 @@
 #else
 		printk(KERN_ERR
 		       "neofb: Only 640x480, 800x600/480 and 1024x768 panels are currently supported\n");
+		kfree(info->monspecs.modedb);
 		return -1;
 #endif
 	default:
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/omap2/omapfb/dss/dispc.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/omap2/omapfb/dss/dispc.c
@@ -520,8 +520,11 @@
 	DSSDBG("dispc_runtime_get\n");
 
 	r = pm_runtime_get_sync(&dispc.pdev->dev);
-	WARN_ON(r < 0);
-	return r < 0 ? r : 0;
+	if (WARN_ON(r < 0)) {
+		pm_runtime_put_sync(&dispc.pdev->dev);
+		return r;
+	}
+	return 0;
 }
 EXPORT_SYMBOL(dispc_runtime_get);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/omap2/omapfb/dss/dsi.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/omap2/omapfb/dss/dsi.c
@@ -1137,8 +1137,11 @@
 	DSSDBG("dsi_runtime_get\n");
 
 	r = pm_runtime_get_sync(&dsi->pdev->dev);
-	WARN_ON(r < 0);
-	return r < 0 ? r : 0;
+	if (WARN_ON(r < 0)) {
+		pm_runtime_put_sync(&dsi->pdev->dev);
+		return r;
+	}
+	return 0;
 }
 
 static void dsi_runtime_put(struct platform_device *dsidev)
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/omap2/omapfb/dss/dss.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/omap2/omapfb/dss/dss.c
@@ -768,8 +768,11 @@
 	DSSDBG("dss_runtime_get\n");
 
 	r = pm_runtime_get_sync(&dss.pdev->dev);
-	WARN_ON(r < 0);
-	return r < 0 ? r : 0;
+	if (WARN_ON(r < 0)) {
+		pm_runtime_put_sync(&dss.pdev->dev);
+		return r;
+	}
+	return 0;
 }
 
 void dss_runtime_put(void)
@@ -833,7 +836,7 @@
 };
 
 static const struct dss_features omap3630_dss_feats = {
-	.fck_div_max		=	32,
+	.fck_div_max		=	31,
 	.dss_fck_multiplier	=	1,
 	.parent_clk_name	=	"dpll4_ck",
 	.dpi_select_source	=	&dss_dpi_select_source_omap2_omap3,
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c
@@ -39,9 +39,10 @@
 	DSSDBG("hdmi_runtime_get\n");
 
 	r = pm_runtime_get_sync(&hdmi.pdev->dev);
-	WARN_ON(r < 0);
-	if (r < 0)
+	if (WARN_ON(r < 0)) {
+		pm_runtime_put_sync(&hdmi.pdev->dev);
 		return r;
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c
@@ -43,9 +43,10 @@
 	DSSDBG("hdmi_runtime_get\n");
 
 	r = pm_runtime_get_sync(&hdmi.pdev->dev);
-	WARN_ON(r < 0);
-	if (r < 0)
+	if (WARN_ON(r < 0)) {
+		pm_runtime_put_sync(&hdmi.pdev->dev);
 		return r;
+	}
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/omap2/omapfb/dss/venc.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/omap2/omapfb/dss/venc.c
@@ -391,8 +391,11 @@
 	DSSDBG("venc_runtime_get\n");
 
 	r = pm_runtime_get_sync(&venc.pdev->dev);
-	WARN_ON(r < 0);
-	return r < 0 ? r : 0;
+	if (WARN_ON(r < 0)) {
+		pm_runtime_put_sync(&venc.pdev->dev);
+		return r;
+	}
+	return 0;
 }
 
 static void venc_runtime_put(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/ps3fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/ps3fb.c
@@ -29,6 +29,7 @@
 #include <linux/freezer.h>
 #include <linux/uaccess.h>
 #include <linux/fb.h>
+#include <linux/fbcon.h>
 #include <linux/init.h>
 
 #include <asm/cell-regs.h>
@@ -824,12 +825,12 @@
 				var = info->var;
 				fb_videomode_to_var(&var, vmode);
 				console_lock();
-				info->flags |= FBINFO_MISC_USEREVENT;
 				/* Force, in case only special bits changed */
 				var.activate |= FB_ACTIVATE_FORCE;
 				par->new_mode_id = val;
 				retval = fb_set_var(info, &var);
-				info->flags &= ~FBINFO_MISC_USEREVENT;
+				if (!retval)
+					fbcon_update_vcs(info, var.activate & FB_ACTIVATE_ALL);
 				console_unlock();
 			}
 			break;
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/pvr2fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/pvr2fb.c
@@ -1016,6 +1016,8 @@
 	if (!options || !*options)
 		return 0;
 
+	cable_arg[0] = output_arg[0] = 0;
+
 	while ((this_opt = strsep(&options, ","))) {
 		if (!*this_opt)
 			continue;
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/pxa168fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/pxa168fb.c
@@ -766,8 +766,8 @@
 failed_free_clk:
 	clk_disable_unprepare(fbi->clk);
 failed_free_fbmem:
-	dma_free_coherent(fbi->dev, info->fix.smem_len,
-			info->screen_base, fbi->fb_start_dma);
+	dma_free_wc(fbi->dev, info->fix.smem_len,
+		    info->screen_base, fbi->fb_start_dma);
 failed_free_info:
 	kfree(info);
 
@@ -801,7 +801,7 @@
 
 	irq = platform_get_irq(pdev, 0);
 
-	dma_free_wc(fbi->dev, PAGE_ALIGN(info->fix.smem_len),
+	dma_free_wc(fbi->dev, info->fix.smem_len,
 		    info->screen_base, info->fix.smem_start);
 
 	clk_disable_unprepare(fbi->clk);
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/pxafb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/pxafb.c
@@ -2425,8 +2425,8 @@
 
 	free_pages_exact(fbi->video_mem, fbi->video_mem_size);
 
-	dma_free_wc(&dev->dev, fbi->dma_buff_size, fbi->dma_buff,
-		    fbi->dma_buff_phys);
+	dma_free_coherent(&dev->dev, fbi->dma_buff_size, fbi->dma_buff,
+			  fbi->dma_buff_phys);
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/savage/savagefb_driver.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/savage/savagefb_driver.c
@@ -2158,6 +2158,8 @@
 			info->flags |= FBINFO_HWACCEL_COPYAREA |
 				       FBINFO_HWACCEL_FILLRECT |
 				       FBINFO_HWACCEL_IMAGEBLIT;
+		else
+			kfree(info->pixmap.addr);
 	}
 #endif
 	return err;
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/sis/init.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/sis/init.c
@@ -2428,6 +2428,11 @@
 
    i = 0;
 
+	if (SiS_Pr->ChipType == SIS_730)
+		queuedata = &FQBQData730[0];
+	else
+		queuedata = &FQBQData[0];
+
    if(ModeNo > 0x13) {
 
       /* Get VCLK  */
@@ -2445,12 +2450,6 @@
       /* Get half colordepth */
       colorth = colortharray[(SiS_Pr->SiS_ModeType - ModeEGA)];
 
-      if(SiS_Pr->ChipType == SIS_730) {
-	 queuedata = &FQBQData730[0];
-      } else {
-	 queuedata = &FQBQData[0];
-      }
-
       do {
 	 templ = SiS_CalcDelay2(SiS_Pr, queuedata[i]) * VCLK * colorth;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/sm712fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/sm712fb.c
@@ -1429,6 +1429,8 @@
 static void smtc_unmap_smem(struct smtcfb_info *sfb)
 {
 	if (sfb && sfb->fb->screen_base) {
+		if (sfb->chip_id == 0x720)
+			sfb->fb->screen_base -= 0x00200000;
 		iounmap(sfb->fb->screen_base);
 		sfb->fb->screen_base = NULL;
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/udlfb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/udlfb.c
@@ -1017,6 +1017,7 @@
 	}
 	vfree(dlfb->backing_buffer);
 	kfree(dlfb->edid);
+	dlfb_free_urb_list(dlfb);
 	usb_put_dev(dlfb->udev);
 	kfree(dlfb);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/vga16fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/vga16fb.c
@@ -243,7 +243,7 @@
 }
 
 static void vga16fb_clock_chip(struct vga16fb_par *par,
-			       unsigned int pixclock,
+			       unsigned int *pixclock,
 			       const struct fb_info *info,
 			       int mul, int div)
 {
@@ -259,14 +259,14 @@
 		{     0 /* bad */,    0x00, 0x00}};
 	int err;
 
-	pixclock = (pixclock * mul) / div;
+	*pixclock = (*pixclock * mul) / div;
 	best = vgaclocks;
-	err = pixclock - best->pixclock;
+	err = *pixclock - best->pixclock;
 	if (err < 0) err = -err;
 	for (ptr = vgaclocks + 1; ptr->pixclock; ptr++) {
 		int tmp;
 
-		tmp = pixclock - ptr->pixclock;
+		tmp = *pixclock - ptr->pixclock;
 		if (tmp < 0) tmp = -tmp;
 		if (tmp < err) {
 			err = tmp;
@@ -275,7 +275,7 @@
 	}
 	par->misc |= best->misc;
 	par->clkdiv = best->seq_clock_mode;
-	pixclock = (best->pixclock * div) / mul;		
+	*pixclock = (best->pixclock * div) / mul;
 }
 			       
 #define FAIL(X) return -EINVAL
@@ -497,10 +497,10 @@
 
 	if (mode & MODE_8BPP)
 		/* pixel clock == vga clock / 2 */
-		vga16fb_clock_chip(par, var->pixclock, info, 1, 2);
+		vga16fb_clock_chip(par, &var->pixclock, info, 1, 2);
 	else
 		/* pixel clock == vga clock */
-		vga16fb_clock_chip(par, var->pixclock, info, 1, 1);
+		vga16fb_clock_chip(par, &var->pixclock, info, 1, 1);
 	
 	var->red.offset = var->green.offset = var->blue.offset = 
 	var->transp.offset = 0;
@@ -1121,7 +1121,7 @@
         char oldop = setop(0);
         char oldsr = setsr(0);
         char oldmask = selectmask();
-        const char *cdat = image->data;
+	const unsigned char *cdat = image->data;
 	u32 dx = image->dx;
         char __iomem *where;
         int y;
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/vt8500lcdfb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/vt8500lcdfb.c
@@ -230,6 +230,7 @@
 		    info->fix.visual == FB_VISUAL_STATIC_PSEUDOCOLOR)
 			for (i = 0; i < 256; i++)
 				vt8500lcd_setcolreg(i, 0, 0, 0, 0, info);
+		fallthrough;
 	case FB_BLANK_UNBLANK:
 		if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR ||
 		    info->fix.visual == FB_VISUAL_STATIC_PSEUDOCOLOR)
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/fbdev/w100fb.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/fbdev/w100fb.c
@@ -588,6 +588,7 @@
 		memsize=par->mach->mem->size;
 		memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), par->saved_extmem, memsize);
 		vfree(par->saved_extmem);
+		par->saved_extmem = NULL;
 	}
 	if (par->saved_intmem) {
 		memsize=MEM_INT_SIZE;
@@ -596,6 +597,7 @@
 		else
 			memcpy_toio(remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE), par->saved_intmem, memsize);
 		vfree(par->saved_intmem);
+		par->saved_intmem = NULL;
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/video/hdmi.c
+++ linux-gkeop-5.4-5.4.0/drivers/video/hdmi.c
@@ -1576,12 +1576,12 @@
 	if (ptr[0] & 0x10)
 		frame->active_aspect = ptr[1] & 0xf;
 	if (ptr[0] & 0x8) {
-		frame->top_bar = (ptr[5] << 8) + ptr[6];
-		frame->bottom_bar = (ptr[7] << 8) + ptr[8];
+		frame->top_bar = (ptr[6] << 8) | ptr[5];
+		frame->bottom_bar = (ptr[8] << 8) | ptr[7];
 	}
 	if (ptr[0] & 0x4) {
-		frame->left_bar = (ptr[9] << 8) + ptr[10];
-		frame->right_bar = (ptr[11] << 8) + ptr[12];
+		frame->left_bar = (ptr[10] << 8) | ptr[9];
+		frame->right_bar = (ptr[12] << 8) | ptr[11];
 	}
 	frame->scan_mode = ptr[0] & 0x3;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/virt/fsl_hypervisor.c
+++ linux-gkeop-5.4-5.4.0/drivers/virt/fsl_hypervisor.c
@@ -157,7 +157,7 @@
 
 	unsigned int i;
 	long ret = 0;
-	int num_pinned; /* return value from get_user_pages() */
+	int num_pinned = 0; /* return value from get_user_pages_fast() */
 	phys_addr_t remote_paddr; /* The next address in the remote buffer */
 	uint32_t count; /* The number of bytes left to copy */
 
@@ -174,7 +174,7 @@
 		return -EINVAL;
 
 	/*
-	 * The array of pages returned by get_user_pages() covers only
+	 * The array of pages returned by get_user_pages_fast() covers only
 	 * page-aligned memory.  Since the user buffer is probably not
 	 * page-aligned, we need to handle the discrepancy.
 	 *
@@ -224,7 +224,7 @@
 
 	/*
 	 * 'pages' is an array of struct page pointers that's initialized by
-	 * get_user_pages().
+	 * get_user_pages_fast().
 	 */
 	pages = kcalloc(num_pages, sizeof(struct page *), GFP_KERNEL);
 	if (!pages) {
@@ -241,7 +241,7 @@
 	if (!sg_list_unaligned) {
 		pr_debug("fsl-hv: could not allocate S/G list\n");
 		ret = -ENOMEM;
-		goto exit;
+		goto free_pages;
 	}
 	sg_list = PTR_ALIGN(sg_list_unaligned, sizeof(struct fh_sg_list));
 
@@ -250,7 +250,6 @@
 		num_pages, param.source != -1 ? FOLL_WRITE : 0, pages);
 
 	if (num_pinned != num_pages) {
-		/* get_user_pages() failed */
 		pr_debug("fsl-hv: could not lock source buffer\n");
 		ret = (num_pinned < 0) ? num_pinned : -EFAULT;
 		goto exit;
@@ -292,13 +291,13 @@
 		virt_to_phys(sg_list), num_pages);
 
 exit:
-	if (pages) {
-		for (i = 0; i < num_pages; i++)
-			if (pages[i])
-				put_page(pages[i]);
+	if (pages && (num_pinned > 0)) {
+		for (i = 0; i < num_pinned; i++)
+			put_page(pages[i]);
 	}
 
 	kfree(sg_list_unaligned);
+free_pages:
 	kfree(pages);
 
 	if (!ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/virt/vboxguest/vboxguest_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/virt/vboxguest/vboxguest_core.c
@@ -1443,7 +1443,7 @@
 	or_mask = caps->u.in.or_mask;
 	not_mask = caps->u.in.not_mask;
 
-	if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK)
+	if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
 		return -EINVAL;
 
 	ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask,
@@ -1519,7 +1519,8 @@
 
 	/* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */
 	if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) ||
-	    req == VBG_IOCTL_VMMDEV_REQUEST_BIG)
+	    req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
+	    req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT)
 		return vbg_ioctl_vmmrequest(gdev, session, data);
 
 	if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT)
@@ -1557,6 +1558,7 @@
 	case VBG_IOCTL_HGCM_CALL(0):
 		return vbg_ioctl_hgcm_call(gdev, session, f32bit, data);
 	case VBG_IOCTL_LOG(0):
+	case VBG_IOCTL_LOG_ALT(0):
 		return vbg_ioctl_log(data);
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/virt/vboxguest/vboxguest_core.h
+++ linux-gkeop-5.4-5.4.0/drivers/virt/vboxguest/vboxguest_core.h
@@ -15,6 +15,21 @@
 #include <linux/vboxguest.h>
 #include "vmmdev.h"
 
+/*
+ * The mainline kernel version (this version) of the vboxguest module
+ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and
+ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead
+ * of _IO(V, ...) as the out of tree VirtualBox upstream version does.
+ *
+ * These _ALT definitions keep compatibility with the wrong defines the
+ * mainline kernel version used for a while.
+ * Note the VirtualBox userspace bits have always been built against
+ * VirtualBox upstream's headers, so this is likely not necessary. But
+ * we must never break our ABI so we keep these around to be 100% sure.
+ */
+#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
+#define VBG_IOCTL_LOG_ALT(s)             _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
+
 struct vbg_session;
 
 /** VBox guest memory balloon. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/virt/vboxguest/vboxguest_linux.c
+++ linux-gkeop-5.4-5.4.0/drivers/virt/vboxguest/vboxguest_linux.c
@@ -131,7 +131,8 @@
 	 * the need for a bounce-buffer and another copy later on.
 	 */
 	is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) ||
-			 req == VBG_IOCTL_VMMDEV_REQUEST_BIG;
+			 req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
+			 req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT;
 
 	if (is_vmmdev_req)
 		buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT,
--- linux-gkeop-5.4-5.4.0.orig/drivers/virt/vboxguest/vboxguest_utils.c
+++ linux-gkeop-5.4-5.4.0/drivers/virt/vboxguest/vboxguest_utils.c
@@ -466,7 +466,7 @@
  *               Cancellation fun.
  */
 static int vbg_hgcm_do_call(struct vbg_dev *gdev, struct vmmdev_hgcm_call *call,
-			    u32 timeout_ms, bool *leak_it)
+			    u32 timeout_ms, bool interruptible, bool *leak_it)
 {
 	int rc, cancel_rc, ret;
 	long timeout;
@@ -493,10 +493,15 @@
 	else
 		timeout = msecs_to_jiffies(timeout_ms);
 
-	timeout = wait_event_interruptible_timeout(
-					gdev->hgcm_wq,
-					hgcm_req_done(gdev, &call->header),
-					timeout);
+	if (interruptible) {
+		timeout = wait_event_interruptible_timeout(gdev->hgcm_wq,
+							   hgcm_req_done(gdev, &call->header),
+							   timeout);
+	} else {
+		timeout = wait_event_timeout(gdev->hgcm_wq,
+					     hgcm_req_done(gdev, &call->header),
+					     timeout);
+	}
 
 	/* timeout > 0 means hgcm_req_done has returned true, so success */
 	if (timeout > 0)
@@ -629,7 +634,8 @@
 	hgcm_call_init_call(call, client_id, function, parms, parm_count,
 			    bounce_bufs);
 
-	ret = vbg_hgcm_do_call(gdev, call, timeout_ms, &leak_it);
+	ret = vbg_hgcm_do_call(gdev, call, timeout_ms,
+			       requestor & VMMDEV_REQUESTOR_USERMODE, &leak_it);
 	if (ret == 0) {
 		*vbox_status = call->header.result;
 		ret = hgcm_call_copy_back_result(call, parms, parm_count,
--- linux-gkeop-5.4-5.4.0.orig/drivers/virt/vboxguest/vmmdev.h
+++ linux-gkeop-5.4-5.4.0/drivers/virt/vboxguest/vmmdev.h
@@ -206,6 +206,8 @@
  * not.
  */
 #define VMMDEV_GUEST_SUPPORTS_GRAPHICS                      BIT(2)
+/* The mask of valid capabilities, for sanity checking. */
+#define VMMDEV_GUEST_CAPABILITIES_MASK                      0x00000007U
 
 /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */
 struct vmmdev_hypervisorinfo {
--- linux-gkeop-5.4-5.4.0.orig/drivers/virtio/virtio_balloon.c
+++ linux-gkeop-5.4-5.4.0/drivers/virtio/virtio_balloon.c
@@ -157,6 +157,8 @@
 {
 	unsigned int i;
 
+	BUILD_BUG_ON(VIRTIO_BALLOON_PAGES_PER_PAGE > VIRTIO_BALLOON_ARRAY_PFNS_MAX);
+
 	/*
 	 * Set balloon pfns pointing at this page.
 	 * Note that the first pfn points at start of the page.
@@ -474,7 +476,9 @@
 	names[VIRTIO_BALLOON_VQ_INFLATE] = "inflate";
 	callbacks[VIRTIO_BALLOON_VQ_DEFLATE] = balloon_ack;
 	names[VIRTIO_BALLOON_VQ_DEFLATE] = "deflate";
+	callbacks[VIRTIO_BALLOON_VQ_STATS] = NULL;
 	names[VIRTIO_BALLOON_VQ_STATS] = NULL;
+	callbacks[VIRTIO_BALLOON_VQ_FREE_PAGE] = NULL;
 	names[VIRTIO_BALLOON_VQ_FREE_PAGE] = NULL;
 
 	if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) {
@@ -525,10 +529,14 @@
 static u32 virtio_balloon_cmd_id_received(struct virtio_balloon *vb)
 {
 	if (test_and_clear_bit(VIRTIO_BALLOON_CONFIG_READ_CMD_ID,
-			       &vb->config_read_bitmap))
+			       &vb->config_read_bitmap)) {
 		virtio_cread(vb->vdev, struct virtio_balloon_config,
 			     free_page_report_cmd_id,
 			     &vb->cmd_id_received_cache);
+		/* Legacy balloon config space is LE, unlike all other devices. */
+		if (!virtio_has_feature(vb->vdev, VIRTIO_F_VERSION_1))
+			vb->cmd_id_received_cache = le32_to_cpu((__force __le32)vb->cmd_id_received_cache);
+	}
 
 	return vb->cmd_id_received_cache;
 }
@@ -721,6 +729,17 @@
 
 	get_page(newpage); /* balloon reference */
 
+	/*
+	  * When we migrate a page to a different zone and adjusted the
+	  * managed page count when inflating, we have to fixup the count of
+	  * both involved zones.
+	  */
+	if (!virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_DEFLATE_ON_OOM) &&
+	    page_zone(page) != page_zone(newpage)) {
+		adjust_managed_page_count(page, 1);
+		adjust_managed_page_count(newpage, -1);
+	}
+
 	/* balloon's page migration 1st step  -- inflate "newpage" */
 	spin_lock_irqsave(&vb_dev_info->pages_lock, flags);
 	balloon_page_insert(vb_dev_info, newpage);
@@ -887,8 +906,7 @@
 	vb->vb_dev_info.inode = alloc_anon_inode(balloon_mnt->mnt_sb);
 	if (IS_ERR(vb->vb_dev_info.inode)) {
 		err = PTR_ERR(vb->vb_dev_info.inode);
-		kern_unmount(balloon_mnt);
-		goto out_del_vqs;
+		goto out_kern_unmount;
 	}
 	vb->vb_dev_info.inode->i_mapping->a_ops = &balloon_aops;
 #endif
@@ -899,13 +917,13 @@
 		 */
 		if (virtqueue_get_vring_size(vb->free_page_vq) < 2) {
 			err = -ENOSPC;
-			goto out_del_vqs;
+			goto out_iput;
 		}
 		vb->balloon_wq = alloc_workqueue("balloon-wq",
 					WQ_FREEZABLE | WQ_CPU_INTENSIVE, 0);
 		if (!vb->balloon_wq) {
 			err = -ENOMEM;
-			goto out_del_vqs;
+			goto out_iput;
 		}
 		INIT_WORK(&vb->report_free_page_work, report_free_page_func);
 		vb->cmd_id_received_cache = VIRTIO_BALLOON_CMD_ID_STOP;
@@ -939,7 +957,13 @@
 out_del_balloon_wq:
 	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
 		destroy_workqueue(vb->balloon_wq);
+out_iput:
+#ifdef CONFIG_BALLOON_COMPACTION
+	iput(vb->vb_dev_info.inode);
+out_kern_unmount:
+	kern_unmount(balloon_mnt);
 out_del_vqs:
+#endif
 	vdev->config->del_vqs(vdev);
 out_free_vb:
 	kfree(vb);
@@ -954,6 +978,10 @@
 		leak_balloon(vb, vb->num_pages);
 	update_balloon_size(vb);
 
+	/* There might be free pages that are being reported: release them. */
+	if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
+		return_free_pages_to_mm(vb, ULONG_MAX);
+
 	/* Now we reset the device so we can clean up the queues. */
 	vb->vdev->config->reset(vb->vdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/virtio/virtio_pci_common.c
+++ linux-gkeop-5.4-5.4.0/drivers/virtio/virtio_pci_common.c
@@ -294,7 +294,7 @@
 		/* Best option: one for change interrupt, one per vq. */
 		nvectors = 1;
 		for (i = 0; i < nvqs; ++i)
-			if (callbacks[i])
+			if (names[i] && callbacks[i])
 				++nvectors;
 	} else {
 		/* Second best: one for change, shared for all vqs. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/virtio/virtio_ring.c
+++ linux-gkeop-5.4-5.4.0/drivers/virtio/virtio_ring.c
@@ -1608,7 +1608,6 @@
 	vq->num_added = 0;
 	vq->packed_ring = true;
 	vq->use_dma_api = vring_use_dma_api(vdev);
-	list_add_tail(&vq->vq.list, &vdev->vqs);
 #ifdef DEBUG
 	vq->in_use = false;
 	vq->last_add_time_valid = false;
@@ -1669,6 +1668,7 @@
 			cpu_to_le16(vq->packed.event_flags_shadow);
 	}
 
+	list_add_tail(&vq->vq.list, &vdev->vqs);
 	return &vq->vq;
 
 err_desc_extra:
@@ -1676,9 +1676,9 @@
 err_desc_state:
 	kfree(vq);
 err_vq:
-	vring_free_queue(vdev, event_size_in_bytes, device, ring_dma_addr);
+	vring_free_queue(vdev, event_size_in_bytes, device, device_event_dma_addr);
 err_device:
-	vring_free_queue(vdev, event_size_in_bytes, driver, ring_dma_addr);
+	vring_free_queue(vdev, event_size_in_bytes, driver, driver_event_dma_addr);
 err_driver:
 	vring_free_queue(vdev, ring_size_in_bytes, ring, ring_dma_addr);
 err_ring:
@@ -1960,6 +1960,9 @@
 {
 	struct vring_virtqueue *vq = to_vvq(_vq);
 
+	if (unlikely(vq->broken))
+		return false;
+
 	virtio_mb(vq->weak_barriers);
 	return vq->packed_ring ? virtqueue_poll_packed(_vq, last_used_idx) :
 				 virtqueue_poll_split(_vq, last_used_idx);
@@ -2082,7 +2085,6 @@
 	vq->last_used_idx = 0;
 	vq->num_added = 0;
 	vq->use_dma_api = vring_use_dma_api(vdev);
-	list_add_tail(&vq->vq.list, &vdev->vqs);
 #ifdef DEBUG
 	vq->in_use = false;
 	vq->last_add_time_valid = false;
@@ -2124,6 +2126,7 @@
 	memset(vq->split.desc_state, 0, vring.num *
 			sizeof(struct vring_desc_state_split));
 
+	list_add_tail(&vq->vq.list, &vdev->vqs);
 	return &vq->vq;
 }
 EXPORT_SYMBOL_GPL(__vring_new_virtqueue);
@@ -2203,10 +2206,10 @@
 					 vq->split.queue_size_in_bytes,
 					 vq->split.vring.desc,
 					 vq->split.queue_dma_addr);
-
-			kfree(vq->split.desc_state);
 		}
 	}
+	if (!vq->packed_ring)
+		kfree(vq->split.desc_state);
 	list_del(&_vq->list);
 	kfree(vq);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/visorbus/visorchipset.c
+++ linux-gkeop-5.4-5.4.0/drivers/visorbus/visorchipset.c
@@ -1210,14 +1210,17 @@
 {
 	struct controlvm_message local_crash_bus_msg;
 	struct controlvm_message local_crash_dev_msg;
-	struct controlvm_message msg;
+	struct controlvm_message msg = {
+		.hdr.id = CONTROLVM_CHIPSET_INIT,
+		.cmd.init_chipset = {
+			.bus_count = 23,
+			.switch_count = 0,
+		},
+	};
 	u32 local_crash_msg_offset;
 	u16 local_crash_msg_count;
 
 	/* send init chipset msg */
-	msg.hdr.id = CONTROLVM_CHIPSET_INIT;
-	msg.cmd.init_chipset.bus_count = 23;
-	msg.cmd.init_chipset.switch_count = 0;
 	chipset_init(&msg);
 	/* get saved message count */
 	if (visorchannel_read(chipset_dev->controlvm_channel,
--- linux-gkeop-5.4-5.4.0.orig/drivers/vme/bridges/vme_fake.c
+++ linux-gkeop-5.4-5.4.0/drivers/vme/bridges/vme_fake.c
@@ -414,8 +414,9 @@
 	}
 }
 
-static u8 fake_vmeread8(struct fake_driver *bridge, unsigned long long addr,
-		u32 aspace, u32 cycle)
+static noinline_for_stack u8 fake_vmeread8(struct fake_driver *bridge,
+					   unsigned long long addr,
+					   u32 aspace, u32 cycle)
 {
 	u8 retval = 0xff;
 	int i;
@@ -446,8 +447,9 @@
 	return retval;
 }
 
-static u16 fake_vmeread16(struct fake_driver *bridge, unsigned long long addr,
-		u32 aspace, u32 cycle)
+static noinline_for_stack u16 fake_vmeread16(struct fake_driver *bridge,
+					     unsigned long long addr,
+					     u32 aspace, u32 cycle)
 {
 	u16 retval = 0xffff;
 	int i;
@@ -478,8 +480,9 @@
 	return retval;
 }
 
-static u32 fake_vmeread32(struct fake_driver *bridge, unsigned long long addr,
-		u32 aspace, u32 cycle)
+static noinline_for_stack u32 fake_vmeread32(struct fake_driver *bridge,
+					     unsigned long long addr,
+					     u32 aspace, u32 cycle)
 {
 	u32 retval = 0xffffffff;
 	int i;
@@ -609,8 +612,9 @@
 	return retval;
 }
 
-static void fake_vmewrite8(struct fake_driver *bridge, u8 *buf,
-			   unsigned long long addr, u32 aspace, u32 cycle)
+static noinline_for_stack void fake_vmewrite8(struct fake_driver *bridge,
+					      u8 *buf, unsigned long long addr,
+					      u32 aspace, u32 cycle)
 {
 	int i;
 	unsigned long long start, end, offset;
@@ -639,8 +643,9 @@
 
 }
 
-static void fake_vmewrite16(struct fake_driver *bridge, u16 *buf,
-			    unsigned long long addr, u32 aspace, u32 cycle)
+static noinline_for_stack void fake_vmewrite16(struct fake_driver *bridge,
+					       u16 *buf, unsigned long long addr,
+					       u32 aspace, u32 cycle)
 {
 	int i;
 	unsigned long long start, end, offset;
@@ -669,8 +674,9 @@
 
 }
 
-static void fake_vmewrite32(struct fake_driver *bridge, u32 *buf,
-			    unsigned long long addr, u32 aspace, u32 cycle)
+static noinline_for_stack void fake_vmewrite32(struct fake_driver *bridge,
+					       u32 *buf, unsigned long long addr,
+					       u32 aspace, u32 cycle)
 {
 	int i;
 	unsigned long long start, end, offset;
--- linux-gkeop-5.4-5.4.0.orig/drivers/w1/masters/mxc_w1.c
+++ linux-gkeop-5.4-5.4.0/drivers/w1/masters/mxc_w1.c
@@ -7,7 +7,7 @@
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/io.h>
-#include <linux/jiffies.h>
+#include <linux/ktime.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
 #include <linux/platform_device.h>
@@ -40,12 +40,12 @@
 static u8 mxc_w1_ds2_reset_bus(void *data)
 {
 	struct mxc_w1_device *dev = data;
-	unsigned long timeout;
+	ktime_t timeout;
 
 	writeb(MXC_W1_CONTROL_RPP, dev->regs + MXC_W1_CONTROL);
 
 	/* Wait for reset sequence 511+512us, use 1500us for sure */
-	timeout = jiffies + usecs_to_jiffies(1500);
+	timeout = ktime_add_us(ktime_get(), 1500);
 
 	udelay(511 + 512);
 
@@ -55,7 +55,7 @@
 		/* PST bit is valid after the RPP bit is self-cleared */
 		if (!(ctrl & MXC_W1_CONTROL_RPP))
 			return !(ctrl & MXC_W1_CONTROL_PST);
-	} while (time_is_after_jiffies(timeout));
+	} while (ktime_before(ktime_get(), timeout));
 
 	return 1;
 }
@@ -68,12 +68,12 @@
 static u8 mxc_w1_ds2_touch_bit(void *data, u8 bit)
 {
 	struct mxc_w1_device *dev = data;
-	unsigned long timeout;
+	ktime_t timeout;
 
 	writeb(MXC_W1_CONTROL_WR(bit), dev->regs + MXC_W1_CONTROL);
 
 	/* Wait for read/write bit (60us, Max 120us), use 200us for sure */
-	timeout = jiffies + usecs_to_jiffies(200);
+	timeout = ktime_add_us(ktime_get(), 200);
 
 	udelay(60);
 
@@ -83,7 +83,7 @@
 		/* RDST bit is valid after the WR1/RD bit is self-cleared */
 		if (!(ctrl & MXC_W1_CONTROL_WR(bit)))
 			return !!(ctrl & MXC_W1_CONTROL_RDST);
-	} while (time_is_after_jiffies(timeout));
+	} while (ktime_before(ktime_get(), timeout));
 
 	return 0;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/w1/masters/omap_hdq.c
+++ linux-gkeop-5.4-5.4.0/drivers/w1/masters/omap_hdq.c
@@ -176,7 +176,7 @@
 	/* check irqstatus */
 	if (!(*status & OMAP_HDQ_INT_STATUS_TXCOMPLETE)) {
 		dev_dbg(hdq_data->dev, "timeout waiting for"
-			" TXCOMPLETE/RXCOMPLETE, %x", *status);
+			" TXCOMPLETE/RXCOMPLETE, %x\n", *status);
 		ret = -ETIMEDOUT;
 		goto out;
 	}
@@ -187,7 +187,7 @@
 			OMAP_HDQ_FLAG_CLEAR, &tmp_status);
 	if (ret) {
 		dev_dbg(hdq_data->dev, "timeout waiting GO bit"
-			" return to zero, %x", tmp_status);
+			" return to zero, %x\n", tmp_status);
 	}
 
 out:
@@ -203,7 +203,7 @@
 	spin_lock_irqsave(&hdq_data->hdq_spinlock, irqflags);
 	hdq_data->hdq_irqstatus = hdq_reg_in(hdq_data, OMAP_HDQ_INT_STATUS);
 	spin_unlock_irqrestore(&hdq_data->hdq_spinlock, irqflags);
-	dev_dbg(hdq_data->dev, "hdq_isr: %x", hdq_data->hdq_irqstatus);
+	dev_dbg(hdq_data->dev, "hdq_isr: %x\n", hdq_data->hdq_irqstatus);
 
 	if (hdq_data->hdq_irqstatus &
 		(OMAP_HDQ_INT_STATUS_TXCOMPLETE | OMAP_HDQ_INT_STATUS_RXCOMPLETE
@@ -311,7 +311,7 @@
 	tmp_status = hdq_data->hdq_irqstatus;
 	/* check irqstatus */
 	if (!(tmp_status & OMAP_HDQ_INT_STATUS_TIMEOUT)) {
-		dev_dbg(hdq_data->dev, "timeout waiting for TIMEOUT, %x",
+		dev_dbg(hdq_data->dev, "timeout waiting for TIMEOUT, %x\n",
 				tmp_status);
 		ret = -ETIMEDOUT;
 		goto out;
@@ -338,7 +338,7 @@
 			&tmp_status);
 	if (ret)
 		dev_dbg(hdq_data->dev, "timeout waiting INIT&GO bits"
-			" return to zero, %x", tmp_status);
+			" return to zero, %x\n", tmp_status);
 
 out:
 	mutex_unlock(&hdq_data->hdq_mutex);
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/Kconfig
@@ -374,6 +374,7 @@
 config ARMADA_37XX_WATCHDOG
 	tristate "Armada 37xx watchdog"
 	depends on ARCH_MVEBU || COMPILE_TEST
+	depends on HAS_IOMEM
 	select MFD_SYSCON
 	select WATCHDOG_CORE
 	help
@@ -617,7 +618,7 @@
 
 config COH901327_WATCHDOG
 	bool "ST-Ericsson COH 901 327 watchdog"
-	depends on ARCH_U300 || (ARM && COMPILE_TEST)
+	depends on ARCH_U300 || (ARM && COMMON_CLK && COMPILE_TEST)
 	default y if MACH_U300
 	select WATCHDOG_CORE
 	help
@@ -687,6 +688,7 @@
 config MAX77620_WATCHDOG
 	tristate "Maxim Max77620 Watchdog Timer"
 	depends on MFD_MAX77620 || COMPILE_TEST
+	select WATCHDOG_CORE
 	help
 	 This is the driver for the Max77620 watchdog timer.
 	 Say 'Y' here to enable the watchdog timer support for
@@ -773,6 +775,7 @@
 
 config SIRFSOC_WATCHDOG
 	tristate "SiRFSOC watchdog"
+	depends on HAS_IOMEM
 	depends on ARCH_SIRF || COMPILE_TEST
 	select WATCHDOG_CORE
 	default y
@@ -1444,6 +1447,7 @@
 config TQMX86_WDT
 	tristate "TQ-Systems TQMX86 Watchdog Timer"
 	depends on X86
+	select WATCHDOG_CORE
 	help
 	This is the driver for the hardware watchdog timer in the TQMX86 IO
 	controller found on some of their ComExpress Modules.
@@ -1593,6 +1597,18 @@
 	  To compile this driver as a module, choose M here: the module will be
 	  called nic7018_wdt.
 
+config AHC1EC0_WDT
+	tristate "Advantech AHC1EC0 Watchdog Function"
+	depends on MFD_AHC1EC0
+	depends on UBUNTU_ODM_DRIVERS
+	help
+	  This is sub-device for Advantech AHC1EC0 embedded controller.
+
+	  This driver provide watchdog functionality for Advantech related
+	  applications to restart the system.
+	  To compile thie driver as a module, choose M here: the module will be
+	  called ahc1ec0-wdt.
+
 # M68K Architecture
 
 config M54xx_WATCHDOG
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/Makefile
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/Makefile
@@ -142,6 +142,7 @@
 obj-$(CONFIG_INTEL_MEI_WDT) += mei_wdt.o
 obj-$(CONFIG_NI903X_WDT) += ni903x_wdt.o
 obj-$(CONFIG_NIC7018_WDT) += nic7018_wdt.o
+obj-$(CONFIG_AHC1EC0_WDT) += ahc1ec0-wdt.o
 obj-$(CONFIG_MLX_WDT) += mlx_wdt.o
 
 # M68K Architecture
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/ahc1ec0-wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/ahc1ec0-wdt.c
@@ -0,0 +1,261 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Watchdog Driver for Advantech Embedded Controller chip AHC1EC0
+ *
+ * Copyright 2020, Advantech IIoT Group
+ *
+ */
+
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/mfd/ahc1ec0.h>
+#include <linux/module.h>
+#include <linux/notifier.h>
+#include <linux/platform_device.h>
+#include <linux/reboot.h>
+#include <linux/types.h>
+#include <linux/watchdog.h>
+
+#define DRV_NAME      "ahc1ec0-wdt"
+
+struct ec_wdt_data {
+	struct watchdog_device wdtdev;
+	struct adv_ec_platform_data *adv_ec_data;
+	struct notifier_block reboot_nb;
+	struct mutex lock_ioctl;
+	int is_enable;
+	int current_timeout;
+};
+
+#define EC_WDT_MIN_TIMEOUT 1	/* The watchdog devices minimum timeout value (in seconds). */
+#define EC_WDT_MAX_TIMEOUT 600  /* The watchdog devices maximum timeout value (in seconds) */
+#define EC_WDT_DEFAULT_TIMEOUT 45
+
+static int set_delay(struct adv_ec_platform_data *adv_ec_data, unsigned short delay_timeout_in_ms)
+{
+	if (write_hw_ram(adv_ec_data, EC_RESET_DELAY_TIME_L, delay_timeout_in_ms & 0x00FF)) {
+		pr_err("Failed to set Watchdog Retset Time Low byte.");
+		return -EINVAL;
+	}
+
+	if (write_hw_ram(adv_ec_data, EC_RESET_DELAY_TIME_H, (delay_timeout_in_ms & 0xFF00) >> 8)) {
+		pr_err("Failed to set Watchdog Retset Time Hight byte.");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int advwdt_set_heartbeat(unsigned long t)
+{
+	if (t < 1 || t > 6553) {
+		pr_err("%s: the input timeout is out of range.",  __func__);
+		pr_err("Please choose valid data between 1 ~ 6553.");
+		return -EINVAL;
+	}
+
+	return (t * 10);
+}
+
+/* Notifier for system down */
+static int advwdt_notify_sys(struct notifier_block *nb, unsigned long code, void *data)
+{
+	if (code == SYS_DOWN || code == SYS_HALT) {
+		struct ec_wdt_data *ec_wdt_data;
+
+		ec_wdt_data = container_of(nb, struct ec_wdt_data, reboot_nb);
+		if (!ec_wdt_data)
+			return NOTIFY_BAD;
+
+		/* Turn the WDT off */
+		if (write_hwram_command(ec_wdt_data->adv_ec_data, EC_WDT_STOP)) {
+			pr_err("Failed to set Watchdog stop.");
+			return -EINVAL;
+		}
+		ec_wdt_data->is_enable = 0;
+		pr_info("%s: notify sys shutdown", __func__);
+	}
+
+	return NOTIFY_DONE;
+}
+
+static int ec_wdt_start(struct watchdog_device *wdd)
+{
+	int ret;
+	int timeout, timeout_in_ms;
+	struct ec_wdt_data *ec_wdt_data = watchdog_get_drvdata(wdd);
+	struct adv_ec_platform_data *adv_ec_data;
+
+	dev_dbg(wdd->parent, "%s\n", __func__);
+
+	adv_ec_data = ec_wdt_data->adv_ec_data;
+	timeout = wdd->timeout; /* The watchdog devices timeout value (in seconds). */
+
+	mutex_lock(&ec_wdt_data->lock_ioctl);
+
+	timeout_in_ms = advwdt_set_heartbeat(timeout);
+	if (timeout_in_ms < 0) {
+		mutex_unlock(&ec_wdt_data->lock_ioctl);
+		return timeout_in_ms;
+	}
+
+	ret = set_delay(adv_ec_data, (unsigned short)(timeout_in_ms-1));
+	if (ret) {
+		dev_err(wdd->parent, "Failed to set Watchdog delay (ret=%x).\n", ret);
+		mutex_unlock(&ec_wdt_data->lock_ioctl);
+		return ret;
+	}
+	ret = write_hwram_command(adv_ec_data, EC_WDT_STOP);
+	ret = write_hwram_command(adv_ec_data, EC_WDT_START);
+	if (ret) {
+		dev_err(wdd->parent, "Failed to set Watchdog start (ret=%x).\n", ret);
+		mutex_unlock(&ec_wdt_data->lock_ioctl);
+		return ret;
+	}
+	ec_wdt_data->is_enable = 1;
+	ec_wdt_data->current_timeout = timeout_in_ms/10;
+
+	mutex_unlock(&ec_wdt_data->lock_ioctl);
+	return 0;
+}
+
+static int ec_wdt_stop(struct watchdog_device *wdd)
+{
+	int ret;
+	struct ec_wdt_data *ec_wdt_data = watchdog_get_drvdata(wdd);
+	struct adv_ec_platform_data *adv_ec_data;
+
+	dev_dbg(wdd->parent, "%s\n", __func__);
+
+	adv_ec_data = ec_wdt_data->adv_ec_data;
+
+	mutex_lock(&ec_wdt_data->lock_ioctl);
+	ret = write_hwram_command(adv_ec_data, EC_WDT_STOP);
+	mutex_unlock(&ec_wdt_data->lock_ioctl);
+	if (ret)
+		pr_err("Failed to set Watchdog stop.");
+	else
+		ec_wdt_data->is_enable = 0;
+
+	return ret;
+}
+
+static int ec_wdt_ping(struct watchdog_device *wdd)
+{
+	int ret;
+	struct ec_wdt_data *ec_wdt_data = watchdog_get_drvdata(wdd);
+	struct adv_ec_platform_data *adv_ec_data;
+
+	dev_dbg(wdd->parent, "%s\n", __func__);
+
+	adv_ec_data = ec_wdt_data->adv_ec_data;
+
+	mutex_lock(&ec_wdt_data->lock_ioctl);
+	ret = write_hwram_command(adv_ec_data, EC_WDT_RESET);
+	mutex_unlock(&ec_wdt_data->lock_ioctl);
+	if (ret) {
+		pr_err("Failed to set Watchdog reset.");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int ec_wdt_set_timeout(struct watchdog_device *wdd,
+				unsigned int timeout)
+{
+	dev_dbg(wdd->parent, "%s, timeout=%d\n", __func__, timeout);
+
+	wdd->timeout = timeout;
+
+	if (watchdog_active(wdd))
+		return ec_wdt_start(wdd);
+
+	return 0;
+}
+
+static const struct watchdog_info ec_watchdog_info = {
+	.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+	.identity = "AHC1EC0 Watchdog",
+};
+
+static const struct watchdog_ops ec_watchdog_ops = {
+	.owner = THIS_MODULE,
+	.start = ec_wdt_start,
+	.stop = ec_wdt_stop,
+	.ping = ec_wdt_ping,
+	.set_timeout = ec_wdt_set_timeout,
+};
+
+static int adv_ec_wdt_probe(struct platform_device *pdev)
+{
+	int ret;
+	struct device *dev = &pdev->dev;
+	struct adv_ec_platform_data *adv_ec_data;
+	struct ec_wdt_data *ec_wdt_data;
+	struct watchdog_device *wdd;
+
+	dev_info(dev, "watchdog probe start\n");
+
+	adv_ec_data = dev_get_drvdata(dev->parent);
+	if (!adv_ec_data)
+		return -EINVAL;
+
+	ec_wdt_data = devm_kzalloc(dev, sizeof(struct ec_wdt_data), GFP_KERNEL);
+	if (!ec_wdt_data)
+		return -ENOMEM;
+
+	mutex_init(&ec_wdt_data->lock_ioctl);
+
+	ec_wdt_data->adv_ec_data = adv_ec_data;
+	wdd = &ec_wdt_data->wdtdev;
+
+	watchdog_init_timeout(&ec_wdt_data->wdtdev, 0, dev);
+
+	//watchdog_set_nowayout(&ec_wdt_data->wdtdev, WATCHDOG_NOWAYOUT);
+	watchdog_set_drvdata(&ec_wdt_data->wdtdev, ec_wdt_data);
+	platform_set_drvdata(pdev, ec_wdt_data);
+
+	wdd->info = &ec_watchdog_info;
+	wdd->ops = &ec_watchdog_ops;
+	wdd->min_timeout = EC_WDT_MIN_TIMEOUT;
+	wdd->max_timeout = EC_WDT_MAX_TIMEOUT;
+	wdd->parent = dev;
+
+	ec_wdt_data->wdtdev.timeout = EC_WDT_DEFAULT_TIMEOUT;
+	ec_wdt_data->is_enable = 0;
+	ec_wdt_data->current_timeout = EC_WDT_DEFAULT_TIMEOUT;
+
+	watchdog_stop_on_unregister(wdd);
+
+	ec_wdt_data->reboot_nb.notifier_call = advwdt_notify_sys;
+	ret = devm_register_reboot_notifier(dev, &ec_wdt_data->reboot_nb);
+	if (ret) {
+		dev_err(dev, "watchdog%d: Cannot register reboot notifier (%d)\n",
+			wdd->id, ret);
+		return ret;
+	}
+
+	ret = devm_watchdog_register_device(dev, wdd);
+	if (ret != 0)
+		dev_err(dev, "watchdog_register_device() failed: %d\n",
+			ret);
+
+	dev_info(dev, "watchdog register success\n");
+
+	return 0;
+}
+
+static struct platform_driver adv_wdt_drv = {
+	.driver = {
+		.name = DRV_NAME,
+	},
+	.probe = adv_ec_wdt_probe,
+};
+module_platform_driver(adv_wdt_drv);
+
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRV_NAME);
+MODULE_DESCRIPTION("Advantech Embedded Controller Watchdog Driver.");
+MODULE_AUTHOR("Campion Kang <campion.kang@advantech.com.tw>");
+MODULE_VERSION("1.0");
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/aspeed_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/aspeed_wdt.c
@@ -258,11 +258,6 @@
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
-	/*
-	 * The ast2400 wdt can run at PCLK, or 1MHz. The ast2500 only
-	 * runs at 1MHz. We chose to always run at 1MHz, as there's no
-	 * good reason to have a faster watchdog counter.
-	 */
 	wdt->wdd.info = &aspeed_wdt_info;
 	wdt->wdd.ops = &aspeed_wdt_ops;
 	wdt->wdd.max_hw_heartbeat_ms = WDT_MAX_TIMEOUT_MS;
@@ -278,7 +273,16 @@
 		return -EINVAL;
 	config = ofdid->data;
 
-	wdt->ctrl = WDT_CTRL_1MHZ_CLK;
+	/*
+	 * On clock rates:
+	 *  - ast2400 wdt can run at PCLK, or 1MHz
+	 *  - ast2500 only runs at 1MHz, hard coding bit 4 to 1
+	 *  - ast2600 always runs at 1MHz
+	 *
+	 * Set the ast2400 to run at 1MHz as it simplifies the driver.
+	 */
+	if (of_device_is_compatible(np, "aspeed,ast2400-wdt"))
+		wdt->ctrl = WDT_CTRL_1MHZ_CLK;
 
 	/*
 	 * Control reset on a per-device basis to ensure the
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/da9062_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/da9062_wdt.c
@@ -55,11 +55,6 @@
 					      unsigned int regval)
 {
 	struct da9062 *chip = wdt->hw;
-	int ret;
-
-	ret = da9062_reset_watchdog_timer(wdt);
-	if (ret)
-		return ret;
 
 	regmap_update_bits(chip->regmap,
 				  DA9062AA_CONTROL_D,
@@ -94,13 +89,6 @@
 	struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd);
 	int ret;
 
-	ret = da9062_reset_watchdog_timer(wdt);
-	if (ret) {
-		dev_err(wdt->hw->dev, "Failed to ping the watchdog (err = %d)\n",
-			ret);
-		return ret;
-	}
-
 	ret = regmap_update_bits(wdt->hw->regmap,
 				 DA9062AA_CONTROL_D,
 				 DA9062AA_TWDSCALE_MASK,
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/f71808e_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/f71808e_wdt.c
@@ -689,9 +689,9 @@
 	 * into the module have been registered yet.
 	 */
 	watchdog.sioaddr = sioaddr;
-	watchdog.ident.options = WDIOC_SETTIMEOUT
-				| WDIOF_MAGICCLOSE
-				| WDIOF_KEEPALIVEPING;
+	watchdog.ident.options = WDIOF_MAGICCLOSE
+				| WDIOF_KEEPALIVEPING
+				| WDIOF_CARDRESET;
 
 	snprintf(watchdog.ident.identity,
 		sizeof(watchdog.ident.identity), "%s watchdog",
@@ -705,6 +705,13 @@
 	wdt_conf = superio_inb(sioaddr, F71808FG_REG_WDT_CONF);
 	watchdog.caused_reboot = wdt_conf & BIT(F71808FG_FLAG_WDTMOUT_STS);
 
+	/*
+	 * We don't want WDTMOUT_STS to stick around till regular reboot.
+	 * Write 1 to the bit to clear it to zero.
+	 */
+	superio_outb(sioaddr, F71808FG_REG_WDT_CONF,
+		     wdt_conf | BIT(F71808FG_FLAG_WDTMOUT_STS));
+
 	superio_exit(sioaddr);
 
 	err = watchdog_set_timeout(timeout);
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/iTCO_vendor.h
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/iTCO_vendor.h
@@ -1,10 +1,12 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /* iTCO Vendor Specific Support hooks */
 #ifdef CONFIG_ITCO_VENDOR_SUPPORT
+extern int iTCO_vendorsupport;
 extern void iTCO_vendor_pre_start(struct resource *, unsigned int);
 extern void iTCO_vendor_pre_stop(struct resource *);
 extern int iTCO_vendor_check_noreboot_on(void);
 #else
+#define iTCO_vendorsupport				0
 #define iTCO_vendor_pre_start(acpibase, heartbeat)	{}
 #define iTCO_vendor_pre_stop(acpibase)			{}
 #define iTCO_vendor_check_noreboot_on()			1
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/iTCO_vendor_support.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/iTCO_vendor_support.c
@@ -39,8 +39,10 @@
 /* Broken BIOS */
 #define BROKEN_BIOS		911
 
-static int vendorsupport;
-module_param(vendorsupport, int, 0);
+int iTCO_vendorsupport;
+EXPORT_SYMBOL(iTCO_vendorsupport);
+
+module_param_named(vendorsupport, iTCO_vendorsupport, int, 0);
 MODULE_PARM_DESC(vendorsupport, "iTCO vendor specific support mode, default="
 			"0 (none), 1=SuperMicro Pent3, 911=Broken SMI BIOS");
 
@@ -152,7 +154,7 @@
 void iTCO_vendor_pre_start(struct resource *smires,
 			   unsigned int heartbeat)
 {
-	switch (vendorsupport) {
+	switch (iTCO_vendorsupport) {
 	case SUPERMICRO_OLD_BOARD:
 		supermicro_old_pre_start(smires);
 		break;
@@ -165,7 +167,7 @@
 
 void iTCO_vendor_pre_stop(struct resource *smires)
 {
-	switch (vendorsupport) {
+	switch (iTCO_vendorsupport) {
 	case SUPERMICRO_OLD_BOARD:
 		supermicro_old_pre_stop(smires);
 		break;
@@ -178,7 +180,7 @@
 
 int iTCO_vendor_check_noreboot_on(void)
 {
-	switch (vendorsupport) {
+	switch (iTCO_vendorsupport) {
 	case SUPERMICRO_OLD_BOARD:
 		return 0;
 	default:
@@ -189,13 +191,13 @@
 
 static int __init iTCO_vendor_init_module(void)
 {
-	if (vendorsupport == SUPERMICRO_NEW_BOARD) {
+	if (iTCO_vendorsupport == SUPERMICRO_NEW_BOARD) {
 		pr_warn("Option vendorsupport=%d is no longer supported, "
 			"please use the w83627hf_wdt driver instead\n",
 			SUPERMICRO_NEW_BOARD);
 		return -EINVAL;
 	}
-	pr_info("vendor-support=%d\n", vendorsupport);
+	pr_info("vendor-support=%d\n", iTCO_vendorsupport);
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/iTCO_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/iTCO_wdt.c
@@ -459,13 +459,25 @@
 	if (!p->tco_res)
 		return -ENODEV;
 
-	p->smi_res = platform_get_resource(pdev, IORESOURCE_IO, ICH_RES_IO_SMI);
-	if (!p->smi_res)
-		return -ENODEV;
-
 	p->iTCO_version = pdata->version;
 	p->pci_dev = to_pci_dev(dev->parent);
 
+	p->smi_res = platform_get_resource(pdev, IORESOURCE_IO, ICH_RES_IO_SMI);
+	if (p->smi_res) {
+		/* The TCO logic uses the TCO_EN bit in the SMI_EN register */
+		if (!devm_request_region(dev, p->smi_res->start,
+					 resource_size(p->smi_res),
+					 pdev->name)) {
+			pr_err("I/O address 0x%04llx already in use, device disabled\n",
+			       (u64)SMI_EN(p));
+			return -EBUSY;
+		}
+	} else if (iTCO_vendorsupport ||
+		   turn_SMI_watchdog_clear_off >= p->iTCO_version) {
+		pr_err("SMI I/O resource is missing\n");
+		return -ENODEV;
+	}
+
 	iTCO_wdt_no_reboot_bit_setup(p, pdata);
 
 	/*
@@ -492,14 +504,6 @@
 	/* Set the NO_REBOOT bit to prevent later reboots, just for sure */
 	p->update_no_reboot_bit(p->no_reboot_priv, true);
 
-	/* The TCO logic uses the TCO_EN bit in the SMI_EN register */
-	if (!devm_request_region(dev, p->smi_res->start,
-				 resource_size(p->smi_res),
-				 pdev->name)) {
-		pr_err("I/O address 0x%04llx already in use, device disabled\n",
-		       (u64)SMI_EN(p));
-		return -EBUSY;
-	}
 	if (turn_SMI_watchdog_clear_off >= p->iTCO_version) {
 		/*
 		 * Bit 13: TCO_EN -> 0
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/imx7ulp_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/imx7ulp_wdt.c
@@ -106,12 +106,28 @@
 	return 0;
 }
 
+static int imx7ulp_wdt_restart(struct watchdog_device *wdog,
+			       unsigned long action, void *data)
+{
+	struct imx7ulp_wdt_device *wdt = watchdog_get_drvdata(wdog);
+
+	imx7ulp_wdt_enable(wdt->base, true);
+	imx7ulp_wdt_set_timeout(&wdt->wdd, 1);
+
+	/* wait for wdog to fire */
+	while (true)
+		;
+
+	return NOTIFY_DONE;
+}
+
 static const struct watchdog_ops imx7ulp_wdt_ops = {
 	.owner = THIS_MODULE,
 	.start = imx7ulp_wdt_start,
 	.stop  = imx7ulp_wdt_stop,
 	.ping  = imx7ulp_wdt_ping,
 	.set_timeout = imx7ulp_wdt_set_timeout,
+	.restart = imx7ulp_wdt_restart,
 };
 
 static const struct watchdog_info imx7ulp_wdt_info = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/imx_sc_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/imx_sc_wdt.c
@@ -177,6 +177,11 @@
 	wdog->timeout = DEFAULT_TIMEOUT;
 
 	watchdog_init_timeout(wdog, 0, dev);
+
+	ret = imx_sc_wdt_set_timeout(wdog, wdog->timeout);
+	if (ret)
+		return ret;
+
 	watchdog_stop_on_reboot(wdog);
 	watchdog_stop_on_unregister(wdog);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/mei_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/mei_wdt.c
@@ -382,6 +382,7 @@
 
 	watchdog_set_drvdata(&wdt->wdd, wdt);
 	watchdog_stop_on_reboot(&wdt->wdd);
+	watchdog_stop_on_unregister(&wdt->wdd);
 
 	ret = watchdog_register_device(&wdt->wdd);
 	if (ret)
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/orion_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/orion_wdt.c
@@ -602,7 +602,7 @@
 		set_bit(WDOG_HW_RUNNING, &dev->wdt.status);
 
 	/* Request the IRQ only after the watchdog is disabled */
-	irq = platform_get_irq(pdev, 0);
+	irq = platform_get_irq_optional(pdev, 0);
 	if (irq > 0) {
 		/*
 		 * Not all supported platforms specify an interrupt for the
@@ -617,7 +617,7 @@
 	}
 
 	/* Optional 2nd interrupt for pretimeout */
-	irq = platform_get_irq(pdev, 1);
+	irq = platform_get_irq_optional(pdev, 1);
 	if (irq > 0) {
 		orion_wdt_info.options |= WDIOF_PRETIMEOUT;
 		ret = devm_request_irq(&pdev->dev, irq, orion_wdt_pre_irq,
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/qcom-wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/qcom-wdt.c
@@ -22,7 +22,6 @@
 };
 
 #define QCOM_WDT_ENABLE		BIT(0)
-#define QCOM_WDT_ENABLE_IRQ	BIT(1)
 
 static const u32 reg_offset_data_apcs_tmr[] = {
 	[WDT_RST] = 0x38,
@@ -58,16 +57,6 @@
 	return container_of(wdd, struct qcom_wdt, wdd);
 }
 
-static inline int qcom_get_enable(struct watchdog_device *wdd)
-{
-	int enable = QCOM_WDT_ENABLE;
-
-	if (wdd->pretimeout)
-		enable |= QCOM_WDT_ENABLE_IRQ;
-
-	return enable;
-}
-
 static irqreturn_t qcom_wdt_isr(int irq, void *arg)
 {
 	struct watchdog_device *wdd = arg;
@@ -86,7 +75,7 @@
 	writel(1, wdt_addr(wdt, WDT_RST));
 	writel(bark * wdt->rate, wdt_addr(wdt, WDT_BARK_TIME));
 	writel(wdd->timeout * wdt->rate, wdt_addr(wdt, WDT_BITE_TIME));
-	writel(qcom_get_enable(wdd), wdt_addr(wdt, WDT_EN));
+	writel(QCOM_WDT_ENABLE, wdt_addr(wdt, WDT_EN));
 	return 0;
 }
 
@@ -143,7 +132,7 @@
 	 */
 	wmb();
 
-	msleep(150);
+	mdelay(150);
 	return 0;
 }
 
@@ -246,7 +235,7 @@
 	}
 
 	/* check if there is pretimeout support */
-	irq = platform_get_irq(pdev, 0);
+	irq = platform_get_irq_optional(pdev, 0);
 	if (irq > 0) {
 		ret = devm_request_irq(dev, irq, qcom_wdt_isr,
 				       IRQF_TRIGGER_RISING,
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/rdc321x_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/rdc321x_wdt.c
@@ -230,6 +230,8 @@
 
 	rdc321x_wdt_device.sb_pdev = pdata->sb_pdev;
 	rdc321x_wdt_device.base_reg = r->start;
+	rdc321x_wdt_device.queue = 0;
+	rdc321x_wdt_device.default_ticks = ticks;
 
 	err = misc_register(&rdc321x_wdt_misc);
 	if (err < 0) {
@@ -244,14 +246,11 @@
 				rdc321x_wdt_device.base_reg, RDC_WDT_RST);
 
 	init_completion(&rdc321x_wdt_device.stop);
-	rdc321x_wdt_device.queue = 0;
 
 	clear_bit(0, &rdc321x_wdt_device.inuse);
 
 	timer_setup(&rdc321x_wdt_device.timer, rdc321x_wdt_trigger, 0);
 
-	rdc321x_wdt_device.default_ticks = ticks;
-
 	dev_info(&pdev->dev, "watchdog init success\n");
 
 	return 0;
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/rn5t618_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/rn5t618_wdt.c
@@ -188,6 +188,7 @@
 
 module_platform_driver(rn5t618_wdt_driver);
 
+MODULE_ALIAS("platform:rn5t618-wdt");
 MODULE_AUTHOR("Beniamino Galvani <b.galvani@gmail.com>");
 MODULE_DESCRIPTION("RN5T618 watchdog driver");
 MODULE_LICENSE("GPL v2");
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/sp5100_tco.h
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/sp5100_tco.h
@@ -70,7 +70,7 @@
 #define EFCH_PM_DECODEEN_WDT_TMREN	BIT(7)
 
 
-#define EFCH_PM_DECODEEN3		0x00
+#define EFCH_PM_DECODEEN3		0x03
 #define EFCH_PM_DECODEEN_SECOND_RES	GENMASK(1, 0)
 #define EFCH_PM_WATCHDOG_DISABLE	((u8)GENMASK(3, 2))
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/sp805_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/sp805_wdt.c
@@ -137,10 +137,14 @@
 {
 	struct sp805_wdt *wdt = watchdog_get_drvdata(wdd);
 
+	writel_relaxed(UNLOCK, wdt->base + WDTLOCK);
 	writel_relaxed(0, wdt->base + WDTCONTROL);
 	writel_relaxed(0, wdt->base + WDTLOAD);
 	writel_relaxed(INT_ENABLE | RESET_ENABLE, wdt->base + WDTCONTROL);
 
+	/* Flush posted writes. */
+	readl_relaxed(wdt->base + WDTLOCK);
+
 	return 0;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/sprd_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/sprd_wdt.c
@@ -108,18 +108,6 @@
 	u32 tmr_step = timeout * SPRD_WDT_CNT_STEP;
 	u32 prtmr_step = pretimeout * SPRD_WDT_CNT_STEP;
 
-	sprd_wdt_unlock(wdt->base);
-	writel_relaxed((tmr_step >> SPRD_WDT_CNT_HIGH_SHIFT) &
-		      SPRD_WDT_LOW_VALUE_MASK, wdt->base + SPRD_WDT_LOAD_HIGH);
-	writel_relaxed((tmr_step & SPRD_WDT_LOW_VALUE_MASK),
-		       wdt->base + SPRD_WDT_LOAD_LOW);
-	writel_relaxed((prtmr_step >> SPRD_WDT_CNT_HIGH_SHIFT) &
-			SPRD_WDT_LOW_VALUE_MASK,
-		       wdt->base + SPRD_WDT_IRQ_LOAD_HIGH);
-	writel_relaxed(prtmr_step & SPRD_WDT_LOW_VALUE_MASK,
-		       wdt->base + SPRD_WDT_IRQ_LOAD_LOW);
-	sprd_wdt_lock(wdt->base);
-
 	/*
 	 * Waiting the load value operation done,
 	 * it needs two or three RTC clock cycles.
@@ -134,6 +122,19 @@
 
 	if (delay_cnt >= SPRD_WDT_LOAD_TIMEOUT)
 		return -EBUSY;
+
+	sprd_wdt_unlock(wdt->base);
+	writel_relaxed((tmr_step >> SPRD_WDT_CNT_HIGH_SHIFT) &
+		      SPRD_WDT_LOW_VALUE_MASK, wdt->base + SPRD_WDT_LOAD_HIGH);
+	writel_relaxed((tmr_step & SPRD_WDT_LOW_VALUE_MASK),
+		       wdt->base + SPRD_WDT_LOAD_LOW);
+	writel_relaxed((prtmr_step >> SPRD_WDT_CNT_HIGH_SHIFT) &
+			SPRD_WDT_LOW_VALUE_MASK,
+		       wdt->base + SPRD_WDT_IRQ_LOAD_HIGH);
+	writel_relaxed(prtmr_step & SPRD_WDT_LOW_VALUE_MASK,
+		       wdt->base + SPRD_WDT_IRQ_LOAD_LOW);
+	sprd_wdt_lock(wdt->base);
+
 	return 0;
 }
 
@@ -327,10 +328,9 @@
 
 static int __maybe_unused sprd_wdt_pm_suspend(struct device *dev)
 {
-	struct watchdog_device *wdd = dev_get_drvdata(dev);
 	struct sprd_wdt *wdt = dev_get_drvdata(dev);
 
-	if (watchdog_active(wdd))
+	if (watchdog_active(&wdt->wdd))
 		sprd_wdt_stop(&wdt->wdd);
 	sprd_wdt_disable(wdt);
 
@@ -339,7 +339,6 @@
 
 static int __maybe_unused sprd_wdt_pm_resume(struct device *dev)
 {
-	struct watchdog_device *wdd = dev_get_drvdata(dev);
 	struct sprd_wdt *wdt = dev_get_drvdata(dev);
 	int ret;
 
@@ -347,15 +346,10 @@
 	if (ret)
 		return ret;
 
-	if (watchdog_active(wdd)) {
+	if (watchdog_active(&wdt->wdd))
 		ret = sprd_wdt_start(&wdt->wdd);
-		if (ret) {
-			sprd_wdt_disable(wdt);
-			return ret;
-		}
-	}
 
-	return 0;
+	return ret;
 }
 
 static const struct dev_pm_ops sprd_wdt_pm_ops = {
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/stm32_iwdg.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/stm32_iwdg.c
@@ -262,6 +262,24 @@
 	watchdog_set_nowayout(wdd, WATCHDOG_NOWAYOUT);
 	watchdog_init_timeout(wdd, 0, dev);
 
+	/*
+	 * In case of CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED is set
+	 * (Means U-Boot/bootloaders leaves the watchdog running)
+	 * When we get here we should make a decision to prevent
+	 * any side effects before user space daemon will take care of it.
+	 * The best option, taking into consideration that there is no
+	 * way to read values back from hardware, is to enforce watchdog
+	 * being run with deterministic values.
+	 */
+	if (IS_ENABLED(CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED)) {
+		ret = stm32_iwdg_start(wdd);
+		if (ret)
+			return ret;
+
+		/* Make sure the watchdog is serviced */
+		set_bit(WDOG_HW_RUNNING, &wdd->status);
+	}
+
 	ret = devm_watchdog_register_device(dev, wdd);
 	if (ret)
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/watchdog_core.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/watchdog_core.c
@@ -147,6 +147,25 @@
 }
 EXPORT_SYMBOL_GPL(watchdog_init_timeout);
 
+static int watchdog_reboot_notifier(struct notifier_block *nb,
+				    unsigned long code, void *data)
+{
+	struct watchdog_device *wdd;
+
+	wdd = container_of(nb, struct watchdog_device, reboot_nb);
+	if (code == SYS_DOWN || code == SYS_HALT) {
+		if (watchdog_active(wdd)) {
+			int ret;
+
+			ret = wdd->ops->stop(wdd);
+			if (ret)
+				return NOTIFY_BAD;
+		}
+	}
+
+	return NOTIFY_DONE;
+}
+
 static int watchdog_restart_notifier(struct notifier_block *nb,
 				     unsigned long action, void *data)
 {
@@ -235,6 +254,23 @@
 		}
 	}
 
+	if (test_bit(WDOG_STOP_ON_REBOOT, &wdd->status)) {
+		if (!wdd->ops->stop)
+			pr_warn("watchdog%d: stop_on_reboot not supported\n", wdd->id);
+		else {
+			wdd->reboot_nb.notifier_call = watchdog_reboot_notifier;
+
+			ret = register_reboot_notifier(&wdd->reboot_nb);
+			if (ret) {
+				pr_err("watchdog%d: Cannot register reboot notifier (%d)\n",
+					wdd->id, ret);
+				watchdog_dev_unregister(wdd);
+				ida_simple_remove(&watchdog_ida, id);
+				return ret;
+			}
+		}
+	}
+
 	if (wdd->ops->restart) {
 		wdd->restart_nb.notifier_call = watchdog_restart_notifier;
 
@@ -289,6 +325,9 @@
 	if (wdd->ops->restart)
 		unregister_restart_handler(&wdd->restart_nb);
 
+	if (test_bit(WDOG_STOP_ON_REBOOT, &wdd->status))
+		unregister_reboot_notifier(&wdd->reboot_nb);
+
 	watchdog_dev_unregister(wdd);
 	ida_simple_remove(&watchdog_ida, wdd->id);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/watchdog_dev.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/watchdog_dev.c
@@ -34,12 +34,10 @@
 #include <linux/init.h>		/* For __init/__exit/... */
 #include <linux/hrtimer.h>	/* For hrtimers */
 #include <linux/kernel.h>	/* For printk/panic/... */
-#include <linux/kref.h>		/* For data references */
 #include <linux/kthread.h>	/* For kthread_work */
 #include <linux/miscdevice.h>	/* For handling misc devices */
 #include <linux/module.h>	/* For module stuff/... */
 #include <linux/mutex.h>	/* For mutexes */
-#include <linux/reboot.h>	/* For reboot notifier */
 #include <linux/slab.h>		/* For memory functions */
 #include <linux/types.h>	/* For standard types (like size_t) */
 #include <linux/watchdog.h>	/* For watchdog specific items */
@@ -52,14 +50,14 @@
 
 /*
  * struct watchdog_core_data - watchdog core internal data
- * @kref:	Reference count.
+ * @dev:	The watchdog's internal device
  * @cdev:	The watchdog's Character device.
  * @wdd:	Pointer to watchdog device.
  * @lock:	Lock for watchdog core.
  * @status:	Watchdog core internal status bits.
  */
 struct watchdog_core_data {
-	struct kref kref;
+	struct device dev;
 	struct cdev cdev;
 	struct watchdog_device *wdd;
 	struct mutex lock;
@@ -158,7 +156,8 @@
 		ktime_t t = watchdog_next_keepalive(wdd);
 
 		if (t > 0)
-			hrtimer_start(&wd_data->timer, t, HRTIMER_MODE_REL);
+			hrtimer_start(&wd_data->timer, t,
+				      HRTIMER_MODE_REL_HARD);
 	} else {
 		hrtimer_cancel(&wd_data->timer);
 	}
@@ -177,7 +176,7 @@
 	if (ktime_after(earliest_keepalive, now)) {
 		hrtimer_start(&wd_data->timer,
 			      ktime_sub(earliest_keepalive, now),
-			      HRTIMER_MODE_REL);
+			      HRTIMER_MODE_REL_HARD);
 		return 0;
 	}
 
@@ -283,6 +282,7 @@
 	if (err == 0) {
 		set_bit(WDOG_ACTIVE, &wdd->status);
 		wd_data->last_keepalive = started_at;
+		wd_data->last_hw_keepalive = started_at;
 		watchdog_update_worker(wdd);
 	}
 
@@ -839,7 +839,7 @@
 	file->private_data = wd_data;
 
 	if (!hw_running)
-		kref_get(&wd_data->kref);
+		get_device(&wd_data->dev);
 
 	/*
 	 * open_timeout only applies for the first open from
@@ -860,11 +860,11 @@
 	return err;
 }
 
-static void watchdog_core_data_release(struct kref *kref)
+static void watchdog_core_data_release(struct device *dev)
 {
 	struct watchdog_core_data *wd_data;
 
-	wd_data = container_of(kref, struct watchdog_core_data, kref);
+	wd_data = container_of(dev, struct watchdog_core_data, dev);
 
 	kfree(wd_data);
 }
@@ -924,7 +924,7 @@
 	 */
 	if (!running) {
 		module_put(wd_data->cdev.owner);
-		kref_put(&wd_data->kref, watchdog_core_data_release);
+		put_device(&wd_data->dev);
 	}
 	return 0;
 }
@@ -943,17 +943,22 @@
 	.fops		= &watchdog_fops,
 };
 
+static struct class watchdog_class = {
+	.name =		"watchdog",
+	.owner =	THIS_MODULE,
+	.dev_groups =	wdt_groups,
+};
+
 /*
  *	watchdog_cdev_register: register watchdog character device
  *	@wdd: watchdog device
- *	@devno: character device number
  *
  *	Register a watchdog character device including handling the legacy
  *	/dev/watchdog node. /dev/watchdog is actually a miscdevice and
  *	thus we set it up like that.
  */
 
-static int watchdog_cdev_register(struct watchdog_device *wdd, dev_t devno)
+static int watchdog_cdev_register(struct watchdog_device *wdd)
 {
 	struct watchdog_core_data *wd_data;
 	int err;
@@ -961,17 +966,27 @@
 	wd_data = kzalloc(sizeof(struct watchdog_core_data), GFP_KERNEL);
 	if (!wd_data)
 		return -ENOMEM;
-	kref_init(&wd_data->kref);
 	mutex_init(&wd_data->lock);
 
 	wd_data->wdd = wdd;
 	wdd->wd_data = wd_data;
 
-	if (IS_ERR_OR_NULL(watchdog_kworker))
+	if (IS_ERR_OR_NULL(watchdog_kworker)) {
+		kfree(wd_data);
 		return -ENODEV;
+	}
+
+	device_initialize(&wd_data->dev);
+	wd_data->dev.devt = MKDEV(MAJOR(watchdog_devt), wdd->id);
+	wd_data->dev.class = &watchdog_class;
+	wd_data->dev.parent = wdd->parent;
+	wd_data->dev.groups = wdd->groups;
+	wd_data->dev.release = watchdog_core_data_release;
+	dev_set_drvdata(&wd_data->dev, wdd);
+	dev_set_name(&wd_data->dev, "watchdog%d", wdd->id);
 
 	kthread_init_work(&wd_data->work, watchdog_ping_work);
-	hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 	wd_data->timer.function = watchdog_timer_expired;
 
 	if (wdd->id == 0) {
@@ -985,28 +1000,29 @@
 				pr_err("%s: a legacy watchdog module is probably present.\n",
 					wdd->info->identity);
 			old_wd_data = NULL;
-			kfree(wd_data);
+			put_device(&wd_data->dev);
 			return err;
 		}
 	}
 
 	/* Fill in the data structures */
 	cdev_init(&wd_data->cdev, &watchdog_fops);
-	wd_data->cdev.owner = wdd->ops->owner;
 
 	/* Add the device */
-	err = cdev_add(&wd_data->cdev, devno, 1);
+	err = cdev_device_add(&wd_data->cdev, &wd_data->dev);
 	if (err) {
 		pr_err("watchdog%d unable to add device %d:%d\n",
 			wdd->id,  MAJOR(watchdog_devt), wdd->id);
 		if (wdd->id == 0) {
 			misc_deregister(&watchdog_miscdev);
 			old_wd_data = NULL;
-			kref_put(&wd_data->kref, watchdog_core_data_release);
+			put_device(&wd_data->dev);
 		}
 		return err;
 	}
 
+	wd_data->cdev.owner = wdd->ops->owner;
+
 	/* Record time of most recent heartbeat as 'just before now'. */
 	wd_data->last_hw_keepalive = ktime_sub(ktime_get(), 1);
 	watchdog_set_open_deadline(wd_data);
@@ -1017,9 +1033,10 @@
 	 */
 	if (watchdog_hw_running(wdd)) {
 		__module_get(wdd->ops->owner);
-		kref_get(&wd_data->kref);
+		get_device(&wd_data->dev);
 		if (handle_boot_enabled)
-			hrtimer_start(&wd_data->timer, 0, HRTIMER_MODE_REL);
+			hrtimer_start(&wd_data->timer, 0,
+				      HRTIMER_MODE_REL_HARD);
 		else
 			pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n",
 				wdd->id);
@@ -1040,7 +1057,7 @@
 {
 	struct watchdog_core_data *wd_data = wdd->wd_data;
 
-	cdev_del(&wd_data->cdev);
+	cdev_device_del(&wd_data->cdev, &wd_data->dev);
 	if (wdd->id == 0) {
 		misc_deregister(&watchdog_miscdev);
 		old_wd_data = NULL;
@@ -1059,32 +1076,7 @@
 	hrtimer_cancel(&wd_data->timer);
 	kthread_cancel_work_sync(&wd_data->work);
 
-	kref_put(&wd_data->kref, watchdog_core_data_release);
-}
-
-static struct class watchdog_class = {
-	.name =		"watchdog",
-	.owner =	THIS_MODULE,
-	.dev_groups =	wdt_groups,
-};
-
-static int watchdog_reboot_notifier(struct notifier_block *nb,
-				    unsigned long code, void *data)
-{
-	struct watchdog_device *wdd;
-
-	wdd = container_of(nb, struct watchdog_device, reboot_nb);
-	if (code == SYS_DOWN || code == SYS_HALT) {
-		if (watchdog_active(wdd)) {
-			int ret;
-
-			ret = wdd->ops->stop(wdd);
-			if (ret)
-				return NOTIFY_BAD;
-		}
-	}
-
-	return NOTIFY_DONE;
+	put_device(&wd_data->dev);
 }
 
 /*
@@ -1098,41 +1090,15 @@
 
 int watchdog_dev_register(struct watchdog_device *wdd)
 {
-	struct device *dev;
-	dev_t devno;
 	int ret;
 
-	devno = MKDEV(MAJOR(watchdog_devt), wdd->id);
-
-	ret = watchdog_cdev_register(wdd, devno);
+	ret = watchdog_cdev_register(wdd);
 	if (ret)
 		return ret;
 
-	dev = device_create_with_groups(&watchdog_class, wdd->parent,
-					devno, wdd, wdd->groups,
-					"watchdog%d", wdd->id);
-	if (IS_ERR(dev)) {
-		watchdog_cdev_unregister(wdd);
-		return PTR_ERR(dev);
-	}
-
 	ret = watchdog_register_pretimeout(wdd);
-	if (ret) {
-		device_destroy(&watchdog_class, devno);
+	if (ret)
 		watchdog_cdev_unregister(wdd);
-		return ret;
-	}
-
-	if (test_bit(WDOG_STOP_ON_REBOOT, &wdd->status)) {
-		wdd->reboot_nb.notifier_call = watchdog_reboot_notifier;
-
-		ret = devm_register_reboot_notifier(dev, &wdd->reboot_nb);
-		if (ret) {
-			pr_err("watchdog%d: Cannot register reboot notifier (%d)\n",
-			       wdd->id, ret);
-			watchdog_dev_unregister(wdd);
-		}
-	}
 
 	return ret;
 }
@@ -1148,7 +1114,6 @@
 void watchdog_dev_unregister(struct watchdog_device *wdd)
 {
 	watchdog_unregister_pretimeout(wdd);
-	device_destroy(&watchdog_class, wdd->wd_data->cdev.dev);
 	watchdog_cdev_unregister(wdd);
 }
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/watchdog/wdat_wdt.c
+++ linux-gkeop-5.4-5.4.0/drivers/watchdog/wdat_wdt.c
@@ -54,6 +54,13 @@
 MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
 		 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
 
+#define WDAT_DEFAULT_TIMEOUT	30
+
+static int timeout = WDAT_DEFAULT_TIMEOUT;
+module_param(timeout, int, 0);
+MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds (default="
+		 __MODULE_STRING(WDAT_DEFAULT_TIMEOUT) ")");
+
 static int wdat_wdt_read(struct wdat_wdt *wdat,
 	 const struct wdat_instruction *instr, u32 *value)
 {
@@ -389,7 +396,7 @@
 
 		memset(&r, 0, sizeof(r));
 		r.start = gas->address;
-		r.end = r.start + gas->access_width - 1;
+		r.end = r.start + ACPI_ACCESS_BYTE_WIDTH(gas->access_width) - 1;
 		if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) {
 			r.flags = IORESOURCE_MEM;
 		} else if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
@@ -438,6 +445,22 @@
 
 	platform_set_drvdata(pdev, wdat);
 
+	/*
+	 * Set initial timeout so that userspace has time to configure the
+	 * watchdog properly after it has opened the device. In some cases
+	 * the BIOS default is too short and causes immediate reboot.
+	 */
+	if (timeout * 1000 < wdat->wdd.min_hw_heartbeat_ms ||
+	    timeout * 1000 > wdat->wdd.max_hw_heartbeat_ms) {
+		dev_warn(dev, "Invalid timeout %d given, using %d\n",
+			 timeout, WDAT_DEFAULT_TIMEOUT);
+		timeout = WDAT_DEFAULT_TIMEOUT;
+	}
+
+	ret = wdat_wdt_set_timeout(&wdat->wdd, timeout);
+	if (ret)
+		return ret;
+
 	watchdog_set_nowayout(&wdat->wdd, nowayout);
 	return devm_watchdog_register_device(dev, &wdat->wdd);
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/Kconfig
+++ linux-gkeop-5.4-5.4.0/drivers/xen/Kconfig
@@ -141,7 +141,8 @@
 
 config XEN_GNTDEV_DMABUF
 	bool "Add support for dma-buf grant access device driver extension"
-	depends on XEN_GNTDEV && XEN_GRANT_DMA_ALLOC && DMA_SHARED_BUFFER
+	depends on XEN_GNTDEV && XEN_GRANT_DMA_ALLOC
+	select DMA_SHARED_BUFFER
 	help
 	  Allows userspace processes and kernel modules to use Xen backed
 	  dma-buf implementation. With this extension grant references to
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/balloon.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/balloon.c
@@ -395,7 +395,8 @@
 #else
 static enum bp_state reserve_additional_memory(void)
 {
-	balloon_stats.target_pages = balloon_stats.current_pages;
+	balloon_stats.target_pages = balloon_stats.current_pages +
+				     balloon_stats.target_unpopulated;
 	return BP_ECANCELED;
 }
 #endif /* CONFIG_XEN_BALLOON_MEMORY_HOTPLUG */
@@ -569,11 +570,13 @@
 	if (xen_hotplug_unpopulated) {
 		st = reserve_additional_memory();
 		if (st != BP_ECANCELED) {
+			int rc;
+
 			mutex_unlock(&balloon_mutex);
-			wait_event(balloon_wq,
+			rc = wait_event_interruptible(balloon_wq,
 				   !list_empty(&ballooned_pages));
 			mutex_lock(&balloon_mutex);
-			return 0;
+			return rc ? -ENOMEM : 0;
 		}
 	}
 
@@ -631,6 +634,12 @@
  out_undo:
 	mutex_unlock(&balloon_mutex);
 	free_xenballooned_pages(pgno, pages);
+	/*
+	 * NB: free_xenballooned_pages will only subtract pgno pages, but since
+	 * target_unpopulated is incremented with nr_pages at the start we need
+	 * to remove the remaining ones also, or accounting will be screwed.
+	 */
+	balloon_stats.target_unpopulated -= nr_pages - pgno;
 	return ret;
 }
 EXPORT_SYMBOL(alloc_xenballooned_pages);
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/events/events_2l.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/events/events_2l.c
@@ -47,6 +47,11 @@
 	return EVTCHN_2L_NR_CHANNELS;
 }
 
+static void evtchn_2l_remove(evtchn_port_t evtchn, unsigned int cpu)
+{
+	clear_bit(evtchn, BM(per_cpu(cpu_evtchn_mask, cpu)));
+}
+
 static void evtchn_2l_bind_to_cpu(struct irq_info *info, unsigned cpu)
 {
 	clear_bit(info->evtchn, BM(per_cpu(cpu_evtchn_mask, info->cpu)));
@@ -71,12 +76,6 @@
 	return sync_test_bit(port, BM(&s->evtchn_pending[0]));
 }
 
-static bool evtchn_2l_test_and_set_mask(unsigned port)
-{
-	struct shared_info *s = HYPERVISOR_shared_info;
-	return sync_test_and_set_bit(port, BM(&s->evtchn_mask[0]));
-}
-
 static void evtchn_2l_mask(unsigned port)
 {
 	struct shared_info *s = HYPERVISOR_shared_info;
@@ -91,6 +90,8 @@
 
 	BUG_ON(!irqs_disabled());
 
+	smp_wmb();	/* All writes before unmask must be visible. */
+
 	if (unlikely((cpu != cpu_from_evtchn(port))))
 		do_hypercall = 1;
 	else {
@@ -159,7 +160,7 @@
  * a bitset of words which contain pending event bits.  The second
  * level is a bitset of pending events themselves.
  */
-static void evtchn_2l_handle_events(unsigned cpu)
+static void evtchn_2l_handle_events(unsigned cpu, struct evtchn_loop_ctrl *ctrl)
 {
 	int irq;
 	xen_ulong_t pending_words;
@@ -240,10 +241,7 @@
 
 			/* Process port. */
 			port = (word_idx * BITS_PER_EVTCHN_WORD) + bit_idx;
-			irq = get_evtchn_to_irq(port);
-
-			if (irq != -1)
-				generic_handle_irq(irq);
+			handle_irq_for_port(port, ctrl);
 
 			bit_idx = (bit_idx + 1) % BITS_PER_EVTCHN_WORD;
 
@@ -355,18 +353,27 @@
 				EVTCHN_2L_NR_CHANNELS/BITS_PER_EVTCHN_WORD);
 }
 
+static int evtchn_2l_percpu_deinit(unsigned int cpu)
+{
+	memset(per_cpu(cpu_evtchn_mask, cpu), 0, sizeof(xen_ulong_t) *
+			EVTCHN_2L_NR_CHANNELS/BITS_PER_EVTCHN_WORD);
+
+	return 0;
+}
+
 static const struct evtchn_ops evtchn_ops_2l = {
 	.max_channels      = evtchn_2l_max_channels,
 	.nr_channels       = evtchn_2l_max_channels,
+	.remove            = evtchn_2l_remove,
 	.bind_to_cpu       = evtchn_2l_bind_to_cpu,
 	.clear_pending     = evtchn_2l_clear_pending,
 	.set_pending       = evtchn_2l_set_pending,
 	.is_pending        = evtchn_2l_is_pending,
-	.test_and_set_mask = evtchn_2l_test_and_set_mask,
 	.mask              = evtchn_2l_mask,
 	.unmask            = evtchn_2l_unmask,
 	.handle_events     = evtchn_2l_handle_events,
 	.resume	           = evtchn_2l_resume,
+	.percpu_deinit     = evtchn_2l_percpu_deinit,
 };
 
 void __init xen_evtchn_2l_init(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/events/events_base.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/events/events_base.c
@@ -33,6 +33,10 @@
 #include <linux/slab.h>
 #include <linux/irqnr.h>
 #include <linux/pci.h>
+#include <linux/spinlock.h>
+#include <linux/cpuhotplug.h>
+#include <linux/atomic.h>
+#include <linux/ktime.h>
 
 #ifdef CONFIG_X86
 #include <asm/desc.h>
@@ -62,6 +66,15 @@
 
 #include "events_internal.h"
 
+#undef MODULE_PARAM_PREFIX
+#define MODULE_PARAM_PREFIX "xen."
+
+static uint __read_mostly event_loop_timeout = 2;
+module_param(event_loop_timeout, uint, 0644);
+
+static uint __read_mostly event_eoi_delay = 10;
+module_param(event_eoi_delay, uint, 0644);
+
 const struct evtchn_ops *evtchn_ops;
 
 /*
@@ -70,6 +83,25 @@
  */
 static DEFINE_MUTEX(irq_mapping_update_lock);
 
+/*
+ * Lock protecting event handling loop against removing event channels.
+ * Adding of event channels is no issue as the associated IRQ becomes active
+ * only after everything is setup (before request_[threaded_]irq() the handler
+ * can't be entered for an event, as the event channel will be unmasked only
+ * then).
+ */
+static DEFINE_RWLOCK(evtchn_rwlock);
+
+/*
+ * Lock hierarchy:
+ *
+ * irq_mapping_update_lock
+ *   evtchn_rwlock
+ *     IRQ-desc lock
+ *       percpu eoi_list_lock
+ *         irq_info->lock
+ */
+
 static LIST_HEAD(xen_irq_list_head);
 
 /* IRQ <-> VIRQ mapping. */
@@ -91,18 +123,23 @@
 /* Xen will never allocate port zero for any purpose. */
 #define VALID_EVTCHN(chn)	((chn) != 0)
 
+static struct irq_info *legacy_info_ptrs[NR_IRQS_LEGACY];
+
 static struct irq_chip xen_dynamic_chip;
+static struct irq_chip xen_lateeoi_chip;
 static struct irq_chip xen_percpu_chip;
 static struct irq_chip xen_pirq_chip;
 static void enable_dynirq(struct irq_data *data);
 static void disable_dynirq(struct irq_data *data);
 
+static DEFINE_PER_CPU(unsigned int, irq_epoch);
+
 static void clear_evtchn_to_irq_row(unsigned row)
 {
 	unsigned col;
 
 	for (col = 0; col < EVTCHN_PER_ROW; col++)
-		evtchn_to_irq[row][col] = -1;
+		WRITE_ONCE(evtchn_to_irq[row][col], -1);
 }
 
 static void clear_evtchn_to_irq_all(void)
@@ -139,7 +176,7 @@
 		clear_evtchn_to_irq_row(row);
 	}
 
-	evtchn_to_irq[row][col] = irq;
+	WRITE_ONCE(evtchn_to_irq[row][col], irq);
 	return 0;
 }
 
@@ -149,13 +186,24 @@
 		return -1;
 	if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL)
 		return -1;
-	return evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)];
+	return READ_ONCE(evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]);
 }
 
 /* Get info for IRQ */
 struct irq_info *info_for_irq(unsigned irq)
 {
-	return irq_get_handler_data(irq);
+	if (irq < nr_legacy_irqs())
+		return legacy_info_ptrs[irq];
+	else
+		return irq_get_chip_data(irq);
+}
+
+static void set_info_for_irq(unsigned int irq, struct irq_info *info)
+{
+	if (irq < nr_legacy_irqs())
+		legacy_info_ptrs[irq] = info;
+	else
+		irq_set_chip_data(irq, info);
 }
 
 /* Constructors for packed IRQ information. */
@@ -173,6 +221,8 @@
 	info->irq = irq;
 	info->evtchn = evtchn;
 	info->cpu = cpu;
+	info->mask_reason = EVT_MASK_REASON_EXPLICIT;
+	spin_lock_init(&info->lock);
 
 	ret = set_evtchn_to_irq(evtchn, irq);
 	if (ret < 0)
@@ -239,6 +289,7 @@
 static void xen_irq_info_cleanup(struct irq_info *info)
 {
 	set_evtchn_to_irq(info->evtchn, -1);
+	xen_evtchn_port_remove(info->evtchn, info->cpu);
 	info->evtchn = 0;
 }
 
@@ -247,10 +298,14 @@
  */
 unsigned int evtchn_from_irq(unsigned irq)
 {
-	if (WARN(irq >= nr_irqs, "Invalid irq %d!\n", irq))
+	const struct irq_info *info = NULL;
+
+	if (likely(irq < nr_irqs))
+		info = info_for_irq(irq);
+	if (!info)
 		return 0;
 
-	return info_for_irq(irq)->evtchn;
+	return info->evtchn;
 }
 
 unsigned irq_from_evtchn(unsigned int evtchn)
@@ -315,6 +370,34 @@
 	return ret;
 }
 
+static void do_mask(struct irq_info *info, u8 reason)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	if (!info->mask_reason)
+		mask_evtchn(info->evtchn);
+
+	info->mask_reason |= reason;
+
+	spin_unlock_irqrestore(&info->lock, flags);
+}
+
+static void do_unmask(struct irq_info *info, u8 reason)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&info->lock, flags);
+
+	info->mask_reason &= ~reason;
+
+	if (!info->mask_reason)
+		unmask_evtchn(info->evtchn);
+
+	spin_unlock_irqrestore(&info->lock, flags);
+}
+
 #ifdef CONFIG_X86
 static bool pirq_check_eoi_map(unsigned irq)
 {
@@ -361,9 +444,157 @@
 }
 EXPORT_SYMBOL_GPL(notify_remote_via_irq);
 
+struct lateeoi_work {
+	struct delayed_work delayed;
+	spinlock_t eoi_list_lock;
+	struct list_head eoi_list;
+};
+
+static DEFINE_PER_CPU(struct lateeoi_work, lateeoi);
+
+static void lateeoi_list_del(struct irq_info *info)
+{
+	struct lateeoi_work *eoi = &per_cpu(lateeoi, info->eoi_cpu);
+	unsigned long flags;
+
+	spin_lock_irqsave(&eoi->eoi_list_lock, flags);
+	list_del_init(&info->eoi_list);
+	spin_unlock_irqrestore(&eoi->eoi_list_lock, flags);
+}
+
+static void lateeoi_list_add(struct irq_info *info)
+{
+	struct lateeoi_work *eoi = &per_cpu(lateeoi, info->eoi_cpu);
+	struct irq_info *elem;
+	u64 now = get_jiffies_64();
+	unsigned long delay;
+	unsigned long flags;
+
+	if (now < info->eoi_time)
+		delay = info->eoi_time - now;
+	else
+		delay = 1;
+
+	spin_lock_irqsave(&eoi->eoi_list_lock, flags);
+
+	if (list_empty(&eoi->eoi_list)) {
+		list_add(&info->eoi_list, &eoi->eoi_list);
+		mod_delayed_work_on(info->eoi_cpu, system_wq,
+				    &eoi->delayed, delay);
+	} else {
+		list_for_each_entry_reverse(elem, &eoi->eoi_list, eoi_list) {
+			if (elem->eoi_time <= info->eoi_time)
+				break;
+		}
+		list_add(&info->eoi_list, &elem->eoi_list);
+	}
+
+	spin_unlock_irqrestore(&eoi->eoi_list_lock, flags);
+}
+
+static void xen_irq_lateeoi_locked(struct irq_info *info, bool spurious)
+{
+	evtchn_port_t evtchn;
+	unsigned int cpu;
+	unsigned int delay = 0;
+
+	evtchn = info->evtchn;
+	if (!VALID_EVTCHN(evtchn) || !list_empty(&info->eoi_list))
+		return;
+
+	if (spurious) {
+		if ((1 << info->spurious_cnt) < (HZ << 2))
+			info->spurious_cnt++;
+		if (info->spurious_cnt > 1) {
+			delay = 1 << (info->spurious_cnt - 2);
+			if (delay > HZ)
+				delay = HZ;
+			if (!info->eoi_time)
+				info->eoi_cpu = smp_processor_id();
+			info->eoi_time = get_jiffies_64() + delay;
+		}
+	} else {
+		info->spurious_cnt = 0;
+	}
+
+	cpu = info->eoi_cpu;
+	if (info->eoi_time &&
+	    (info->irq_epoch == per_cpu(irq_epoch, cpu) || delay)) {
+		lateeoi_list_add(info);
+		return;
+	}
+
+	info->eoi_time = 0;
+	do_unmask(info, EVT_MASK_REASON_EOI_PENDING);
+}
+
+static void xen_irq_lateeoi_worker(struct work_struct *work)
+{
+	struct lateeoi_work *eoi;
+	struct irq_info *info;
+	u64 now = get_jiffies_64();
+	unsigned long flags;
+
+	eoi = container_of(to_delayed_work(work), struct lateeoi_work, delayed);
+
+	read_lock_irqsave(&evtchn_rwlock, flags);
+
+	while (true) {
+		spin_lock(&eoi->eoi_list_lock);
+
+		info = list_first_entry_or_null(&eoi->eoi_list, struct irq_info,
+						eoi_list);
+
+		if (info == NULL || now < info->eoi_time) {
+			spin_unlock(&eoi->eoi_list_lock);
+			break;
+		}
+
+		list_del_init(&info->eoi_list);
+
+		spin_unlock(&eoi->eoi_list_lock);
+
+		info->eoi_time = 0;
+
+		xen_irq_lateeoi_locked(info, false);
+	}
+
+	if (info)
+		mod_delayed_work_on(info->eoi_cpu, system_wq,
+				    &eoi->delayed, info->eoi_time - now);
+
+	read_unlock_irqrestore(&evtchn_rwlock, flags);
+}
+
+static void xen_cpu_init_eoi(unsigned int cpu)
+{
+	struct lateeoi_work *eoi = &per_cpu(lateeoi, cpu);
+
+	INIT_DELAYED_WORK(&eoi->delayed, xen_irq_lateeoi_worker);
+	spin_lock_init(&eoi->eoi_list_lock);
+	INIT_LIST_HEAD(&eoi->eoi_list);
+}
+
+void xen_irq_lateeoi(unsigned int irq, unsigned int eoi_flags)
+{
+	struct irq_info *info;
+	unsigned long flags;
+
+	read_lock_irqsave(&evtchn_rwlock, flags);
+
+	info = info_for_irq(irq);
+
+	if (info)
+		xen_irq_lateeoi_locked(info, eoi_flags & XEN_EOI_FLAG_SPURIOUS);
+
+	read_unlock_irqrestore(&evtchn_rwlock, flags);
+}
+EXPORT_SYMBOL_GPL(xen_irq_lateeoi);
+
 static void xen_irq_init(unsigned irq)
 {
 	struct irq_info *info;
+
 #ifdef CONFIG_SMP
 	/* By default all event channels notify CPU#0. */
 	cpumask_copy(irq_get_affinity_mask(irq), cpumask_of(0));
@@ -376,8 +607,9 @@
 	info->type = IRQT_UNBOUND;
 	info->refcnt = -1;
 
-	irq_set_handler_data(irq, info);
+	set_info_for_irq(irq, info);
 
+	INIT_LIST_HEAD(&info->eoi_list);
 	list_add_tail(&info->list, &xen_irq_list_head);
 }
 
@@ -425,17 +657,25 @@
 
 static void xen_free_irq(unsigned irq)
 {
-	struct irq_info *info = irq_get_handler_data(irq);
+	struct irq_info *info = info_for_irq(irq);
+	unsigned long flags;
 
 	if (WARN_ON(!info))
 		return;
 
+	write_lock_irqsave(&evtchn_rwlock, flags);
+
+	if (!list_empty(&info->eoi_list))
+		lateeoi_list_del(info);
+
 	list_del(&info->list);
 
-	irq_set_handler_data(irq, NULL);
+	set_info_for_irq(irq, NULL);
 
 	WARN_ON(info->refcnt > 0);
 
+	write_unlock_irqrestore(&evtchn_rwlock, flags);
+
 	kfree(info);
 
 	/* Legacy IRQ descriptors are managed by the arch. */
@@ -454,6 +694,12 @@
 		BUG();
 }
 
+static void event_handler_exit(struct irq_info *info)
+{
+	smp_store_release(&info->is_active, 0);
+	clear_evtchn(info->evtchn);
+}
+
 static void pirq_query_unmask(int irq)
 {
 	struct physdev_irq_status_query irq_status;
@@ -472,7 +718,8 @@
 
 static void eoi_pirq(struct irq_data *data)
 {
-	int evtchn = evtchn_from_irq(data->irq);
+	struct irq_info *info = info_for_irq(data->irq);
+	int evtchn = info ? info->evtchn : 0;
 	struct physdev_eoi eoi = { .irq = pirq_from_irq(data->irq) };
 	int rc = 0;
 
@@ -481,16 +728,15 @@
 
 	if (unlikely(irqd_is_setaffinity_pending(data)) &&
 	    likely(!irqd_irq_disabled(data))) {
-		int masked = test_and_set_mask(evtchn);
+		do_mask(info, EVT_MASK_REASON_TEMPORARY);
 
-		clear_evtchn(evtchn);
+		event_handler_exit(info);
 
 		irq_move_masked_irq(data);
 
-		if (!masked)
-			unmask_evtchn(evtchn);
+		do_unmask(info, EVT_MASK_REASON_TEMPORARY);
 	} else
-		clear_evtchn(evtchn);
+		event_handler_exit(info);
 
 	if (pirq_needs_eoi(data->irq)) {
 		rc = HYPERVISOR_physdev_op(PHYSDEVOP_eoi, &eoi);
@@ -541,7 +787,8 @@
 		goto err;
 
 out:
-	unmask_evtchn(evtchn);
+	do_unmask(info, EVT_MASK_REASON_EXPLICIT);
+
 	eoi_pirq(irq_get_irq_data(irq));
 
 	return 0;
@@ -568,7 +815,7 @@
 	if (!VALID_EVTCHN(evtchn))
 		return;
 
-	mask_evtchn(evtchn);
+	do_mask(info, EVT_MASK_REASON_EXPLICIT);
 	xen_evtchn_close(evtchn);
 	xen_irq_info_cleanup(info);
 }
@@ -602,7 +849,7 @@
 static void __unbind_from_irq(unsigned int irq)
 {
 	int evtchn = evtchn_from_irq(irq);
-	struct irq_info *info = irq_get_handler_data(irq);
+	struct irq_info *info = info_for_irq(irq);
 
 	if (info->refcnt > 0) {
 		info->refcnt--;
@@ -827,7 +1074,7 @@
 }
 EXPORT_SYMBOL_GPL(xen_pirq_from_irq);
 
-int bind_evtchn_to_irq(unsigned int evtchn)
+static int bind_evtchn_to_irq_chip(evtchn_port_t evtchn, struct irq_chip *chip)
 {
 	int irq;
 	int ret;
@@ -844,7 +1091,7 @@
 		if (irq < 0)
 			goto out;
 
-		irq_set_chip_and_handler_name(irq, &xen_dynamic_chip,
+		irq_set_chip_and_handler_name(irq, chip,
 					      handle_edge_irq, "event");
 
 		ret = xen_irq_info_evtchn_setup(irq, evtchn);
@@ -865,8 +1112,19 @@
 
 	return irq;
 }
+
+int bind_evtchn_to_irq(evtchn_port_t evtchn)
+{
+	return bind_evtchn_to_irq_chip(evtchn, &xen_dynamic_chip);
+}
 EXPORT_SYMBOL_GPL(bind_evtchn_to_irq);
 
+int bind_evtchn_to_irq_lateeoi(evtchn_port_t evtchn)
+{
+	return bind_evtchn_to_irq_chip(evtchn, &xen_lateeoi_chip);
+}
+EXPORT_SYMBOL_GPL(bind_evtchn_to_irq_lateeoi);
+
 static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu)
 {
 	struct evtchn_bind_ipi bind_ipi;
@@ -908,8 +1166,9 @@
 	return irq;
 }
 
-int bind_interdomain_evtchn_to_irq(unsigned int remote_domain,
-				   unsigned int remote_port)
+static int bind_interdomain_evtchn_to_irq_chip(unsigned int remote_domain,
+					       evtchn_port_t remote_port,
+					       struct irq_chip *chip)
 {
 	struct evtchn_bind_interdomain bind_interdomain;
 	int err;
@@ -920,10 +1179,26 @@
 	err = HYPERVISOR_event_channel_op(EVTCHNOP_bind_interdomain,
 					  &bind_interdomain);
 
-	return err ? : bind_evtchn_to_irq(bind_interdomain.local_port);
+	return err ? : bind_evtchn_to_irq_chip(bind_interdomain.local_port,
+					       chip);
+}
+
+int bind_interdomain_evtchn_to_irq(unsigned int remote_domain,
+				   evtchn_port_t remote_port)
+{
+	return bind_interdomain_evtchn_to_irq_chip(remote_domain, remote_port,
+						   &xen_dynamic_chip);
 }
 EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irq);
 
+int bind_interdomain_evtchn_to_irq_lateeoi(unsigned int remote_domain,
+					   evtchn_port_t remote_port)
+{
+	return bind_interdomain_evtchn_to_irq_chip(remote_domain, remote_port,
+						   &xen_lateeoi_chip);
+}
+EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irq_lateeoi);
+
 static int find_virq(unsigned int virq, unsigned int cpu)
 {
 	struct evtchn_status status;
@@ -1019,14 +1294,15 @@
 	mutex_unlock(&irq_mapping_update_lock);
 }
 
-int bind_evtchn_to_irqhandler(unsigned int evtchn,
-			      irq_handler_t handler,
-			      unsigned long irqflags,
-			      const char *devname, void *dev_id)
+static int bind_evtchn_to_irqhandler_chip(evtchn_port_t evtchn,
+					  irq_handler_t handler,
+					  unsigned long irqflags,
+					  const char *devname, void *dev_id,
+					  struct irq_chip *chip)
 {
 	int irq, retval;
 
-	irq = bind_evtchn_to_irq(evtchn);
+	irq = bind_evtchn_to_irq_chip(evtchn, chip);
 	if (irq < 0)
 		return irq;
 	retval = request_irq(irq, handler, irqflags, devname, dev_id);
@@ -1037,18 +1313,38 @@
 
 	return irq;
 }
+
+int bind_evtchn_to_irqhandler(evtchn_port_t evtchn,
+			      irq_handler_t handler,
+			      unsigned long irqflags,
+			      const char *devname, void *dev_id)
+{
+	return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags,
+					      devname, dev_id,
+					      &xen_dynamic_chip);
+}
 EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler);
 
-int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain,
-					  unsigned int remote_port,
-					  irq_handler_t handler,
-					  unsigned long irqflags,
-					  const char *devname,
-					  void *dev_id)
+int bind_evtchn_to_irqhandler_lateeoi(evtchn_port_t evtchn,
+				      irq_handler_t handler,
+				      unsigned long irqflags,
+				      const char *devname, void *dev_id)
+{
+	return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags,
+					      devname, dev_id,
+					      &xen_lateeoi_chip);
+}
+EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler_lateeoi);
+
+static int bind_interdomain_evtchn_to_irqhandler_chip(
+		unsigned int remote_domain, evtchn_port_t remote_port,
+		irq_handler_t handler, unsigned long irqflags,
+		const char *devname, void *dev_id, struct irq_chip *chip)
 {
 	int irq, retval;
 
-	irq = bind_interdomain_evtchn_to_irq(remote_domain, remote_port);
+	irq = bind_interdomain_evtchn_to_irq_chip(remote_domain, remote_port,
+						  chip);
 	if (irq < 0)
 		return irq;
 
@@ -1060,8 +1356,33 @@
 
 	return irq;
 }
+
+int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain,
+					  evtchn_port_t remote_port,
+					  irq_handler_t handler,
+					  unsigned long irqflags,
+					  const char *devname,
+					  void *dev_id)
+{
+	return bind_interdomain_evtchn_to_irqhandler_chip(remote_domain,
+				remote_port, handler, irqflags, devname,
+				dev_id, &xen_dynamic_chip);
+}
 EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irqhandler);
 
+int bind_interdomain_evtchn_to_irqhandler_lateeoi(unsigned int remote_domain,
+						  evtchn_port_t remote_port,
+						  irq_handler_t handler,
+						  unsigned long irqflags,
+						  const char *devname,
+						  void *dev_id)
+{
+	return bind_interdomain_evtchn_to_irqhandler_chip(remote_domain,
+				remote_port, handler, irqflags, devname,
+				dev_id, &xen_lateeoi_chip);
+}
+EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irqhandler_lateeoi);
+
 int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu,
 			    irq_handler_t handler,
 			    unsigned long irqflags, const char *devname, void *dev_id)
@@ -1106,7 +1427,7 @@
 
 void unbind_from_irqhandler(unsigned int irq, void *dev_id)
 {
-	struct irq_info *info = irq_get_handler_data(irq);
+	struct irq_info *info = info_for_irq(irq);
 
 	if (WARN_ON(!info))
 		return;
@@ -1140,7 +1461,7 @@
 	if (irq == -1)
 		return -ENOENT;
 
-	info = irq_get_handler_data(irq);
+	info = info_for_irq(irq);
 
 	if (!info)
 		return -ENOENT;
@@ -1168,13 +1489,13 @@
 	if (irq == -1)
 		goto done;
 
-	info = irq_get_handler_data(irq);
+	info = info_for_irq(irq);
 
 	if (!info)
 		goto done;
 
 	err = -EINVAL;
-	if (info->refcnt <= 0)
+	if (info->refcnt <= 0 || info->refcnt == SHRT_MAX)
 		goto done;
 
 	info->refcnt++;
@@ -1213,6 +1534,56 @@
 	notify_remote_via_irq(irq);
 }
 
+struct evtchn_loop_ctrl {
+	ktime_t timeout;
+	unsigned count;
+	bool defer_eoi;
+};
+
+void handle_irq_for_port(evtchn_port_t port, struct evtchn_loop_ctrl *ctrl)
+{
+	int irq;
+	struct irq_info *info;
+
+	irq = get_evtchn_to_irq(port);
+	if (irq == -1)
+		return;
+
+	/*
+	 * Check for timeout every 256 events.
+	 * We are setting the timeout value only after the first 256
+	 * events in order to not hurt the common case of few loop
+	 * iterations. The 256 is basically an arbitrary value.
+	 *
+	 * In case we are hitting the timeout we need to defer all further
+	 * EOIs in order to ensure to leave the event handling loop rather
+	 * sooner than later.
+	 */
+	if (!ctrl->defer_eoi && !(++ctrl->count & 0xff)) {
+		ktime_t kt = ktime_get();
+
+		if (!ctrl->timeout) {
+			kt = ktime_add_ms(kt,
+					  jiffies_to_msecs(event_loop_timeout));
+			ctrl->timeout = kt;
+		} else if (kt > ctrl->timeout) {
+			ctrl->defer_eoi = true;
+		}
+	}
+
+	info = info_for_irq(irq);
+	if (xchg_acquire(&info->is_active, 1))
+		return;
+
+	if (ctrl->defer_eoi) {
+		info->eoi_cpu = smp_processor_id();
+		info->irq_epoch = __this_cpu_read(irq_epoch);
+		info->eoi_time = get_jiffies_64() + event_eoi_delay;
+	}
+
+	generic_handle_irq(irq);
+}
+
 static DEFINE_PER_CPU(unsigned, xed_nesting_count);
 
 static void __xen_evtchn_do_upcall(void)
@@ -1220,6 +1591,9 @@
 	struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
 	int cpu = get_cpu();
 	unsigned count;
+	struct evtchn_loop_ctrl ctrl = { 0 };
+
+	read_lock(&evtchn_rwlock);
 
 	do {
 		vcpu_info->evtchn_upcall_pending = 0;
@@ -1227,7 +1601,7 @@
 		if (__this_cpu_inc_return(xed_nesting_count) - 1)
 			goto out;
 
-		xen_evtchn_handle_events(cpu);
+		xen_evtchn_handle_events(cpu, &ctrl);
 
 		BUG_ON(!irqs_disabled());
 
@@ -1236,6 +1610,14 @@
 	} while (count != 1 || vcpu_info->evtchn_upcall_pending);
 
 out:
+	read_unlock(&evtchn_rwlock);
+
+	/*
+	 * Increment irq_epoch only now to defer EOIs only for
+	 * xen_irq_lateeoi() invocations occurring from inside the loop
+	 * above.
+	 */
+	__this_cpu_inc(irq_epoch);
 
 	put_cpu();
 }
@@ -1294,10 +1676,10 @@
 }
 
 /* Rebind an evtchn so that it gets delivered to a specific cpu */
-static int xen_rebind_evtchn_to_cpu(int evtchn, unsigned int tcpu)
+static int xen_rebind_evtchn_to_cpu(struct irq_info *info, unsigned int tcpu)
 {
 	struct evtchn_bind_vcpu bind_vcpu;
-	int masked;
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
 
 	if (!VALID_EVTCHN(evtchn))
 		return -1;
@@ -1313,7 +1695,7 @@
 	 * Mask the event while changing the VCPU binding to prevent
 	 * it being delivered on an unexpected VCPU.
 	 */
-	masked = test_and_set_mask(evtchn);
+	do_mask(info, EVT_MASK_REASON_TEMPORARY);
 
 	/*
 	 * If this fails, it usually just indicates that we're dealing with a
@@ -1323,8 +1705,7 @@
 	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind_vcpu) >= 0)
 		bind_evtchn_to_cpu(evtchn, tcpu);
 
-	if (!masked)
-		unmask_evtchn(evtchn);
+	do_unmask(info, EVT_MASK_REASON_TEMPORARY);
 
 	return 0;
 }
@@ -1333,7 +1714,7 @@
 			    bool force)
 {
 	unsigned tcpu = cpumask_first_and(dest, cpu_online_mask);
-	int ret = xen_rebind_evtchn_to_cpu(evtchn_from_irq(data->irq), tcpu);
+	int ret = xen_rebind_evtchn_to_cpu(info_for_irq(data->irq), tcpu);
 
 	if (!ret)
 		irq_data_update_effective_affinity(data, cpumask_of(tcpu));
@@ -1352,39 +1733,41 @@
 
 static void enable_dynirq(struct irq_data *data)
 {
-	int evtchn = evtchn_from_irq(data->irq);
+	struct irq_info *info = info_for_irq(data->irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
 
 	if (VALID_EVTCHN(evtchn))
-		unmask_evtchn(evtchn);
+		do_unmask(info, EVT_MASK_REASON_EXPLICIT);
 }
 
 static void disable_dynirq(struct irq_data *data)
 {
-	int evtchn = evtchn_from_irq(data->irq);
+	struct irq_info *info = info_for_irq(data->irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
 
 	if (VALID_EVTCHN(evtchn))
-		mask_evtchn(evtchn);
+		do_mask(info, EVT_MASK_REASON_EXPLICIT);
 }
 
 static void ack_dynirq(struct irq_data *data)
 {
-	int evtchn = evtchn_from_irq(data->irq);
+	struct irq_info *info = info_for_irq(data->irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
 
 	if (!VALID_EVTCHN(evtchn))
 		return;
 
 	if (unlikely(irqd_is_setaffinity_pending(data)) &&
 	    likely(!irqd_irq_disabled(data))) {
-		int masked = test_and_set_mask(evtchn);
+		do_mask(info, EVT_MASK_REASON_TEMPORARY);
 
-		clear_evtchn(evtchn);
+		event_handler_exit(info);
 
 		irq_move_masked_irq(data);
 
-		if (!masked)
-			unmask_evtchn(evtchn);
+		do_unmask(info, EVT_MASK_REASON_TEMPORARY);
 	} else
-		clear_evtchn(evtchn);
+		event_handler_exit(info);
 }
 
 static void mask_ack_dynirq(struct irq_data *data)
@@ -1393,18 +1776,39 @@
 	ack_dynirq(data);
 }
 
+static void lateeoi_ack_dynirq(struct irq_data *data)
+{
+	struct irq_info *info = info_for_irq(data->irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
+
+	if (VALID_EVTCHN(evtchn)) {
+		do_mask(info, EVT_MASK_REASON_EOI_PENDING);
+		event_handler_exit(info);
+	}
+}
+
+static void lateeoi_mask_ack_dynirq(struct irq_data *data)
+{
+	struct irq_info *info = info_for_irq(data->irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
+
+	if (VALID_EVTCHN(evtchn)) {
+		do_mask(info, EVT_MASK_REASON_EXPLICIT);
+		event_handler_exit(info);
+	}
+}
+
 static int retrigger_dynirq(struct irq_data *data)
 {
-	unsigned int evtchn = evtchn_from_irq(data->irq);
-	int masked;
+	struct irq_info *info = info_for_irq(data->irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
 
 	if (!VALID_EVTCHN(evtchn))
 		return 0;
 
-	masked = test_and_set_mask(evtchn);
+	do_mask(info, EVT_MASK_REASON_TEMPORARY);
 	set_evtchn(evtchn);
-	if (!masked)
-		unmask_evtchn(evtchn);
+	do_unmask(info, EVT_MASK_REASON_TEMPORARY);
 
 	return 1;
 }
@@ -1499,10 +1903,11 @@
 /* Clear an irq's pending state, in preparation for polling on it */
 void xen_clear_irq_pending(int irq)
 {
-	int evtchn = evtchn_from_irq(irq);
+	struct irq_info *info = info_for_irq(irq);
+	evtchn_port_t evtchn = info ? info->evtchn : 0;
 
 	if (VALID_EVTCHN(evtchn))
-		clear_evtchn(evtchn);
+		event_handler_exit(info);
 }
 EXPORT_SYMBOL(xen_clear_irq_pending);
 void xen_set_irq_pending(int irq)
@@ -1602,6 +2007,21 @@
 	.irq_retrigger		= retrigger_dynirq,
 };
 
+static struct irq_chip xen_lateeoi_chip __read_mostly = {
+	/* The chip name needs to contain "xen-dyn" for irqbalance to work. */
+	.name			= "xen-dyn-lateeoi",
+
+	.irq_disable		= disable_dynirq,
+	.irq_mask		= disable_dynirq,
+	.irq_unmask		= enable_dynirq,
+
+	.irq_ack		= lateeoi_ack_dynirq,
+	.irq_mask_ack		= lateeoi_mask_ack_dynirq,
+
+	.irq_set_affinity	= set_affinity_irq,
+	.irq_retrigger		= retrigger_dynirq,
+};
+
 static struct irq_chip xen_pirq_chip __read_mostly = {
 	.name			= "xen-pirq",
 
@@ -1632,16 +2052,6 @@
 	.irq_ack		= ack_dynirq,
 };
 
-int xen_set_callback_via(uint64_t via)
-{
-	struct xen_hvm_param a;
-	a.domid = DOMID_SELF;
-	a.index = HVM_PARAM_CALLBACK_IRQ;
-	a.value = via;
-	return HYPERVISOR_hvm_op(HVMOP_set_param, &a);
-}
-EXPORT_SYMBOL_GPL(xen_set_callback_via);
-
 #ifdef CONFIG_XEN_PVHVM
 /* Vector callbacks are better than PCI interrupts to receive event
  * channel notifications because we can receive vector callbacks on any
@@ -1668,12 +2078,31 @@
 void xen_callback_vector(void) {}
 #endif
 
-#undef MODULE_PARAM_PREFIX
-#define MODULE_PARAM_PREFIX "xen."
-
 static bool fifo_events = true;
 module_param(fifo_events, bool, 0);
 
+static int xen_evtchn_cpu_prepare(unsigned int cpu)
+{
+	int ret = 0;
+
+	xen_cpu_init_eoi(cpu);
+
+	if (evtchn_ops->percpu_init)
+		ret = evtchn_ops->percpu_init(cpu);
+
+	return ret;
+}
+
+static int xen_evtchn_cpu_dead(unsigned int cpu)
+{
+	int ret = 0;
+
+	if (evtchn_ops->percpu_deinit)
+		ret = evtchn_ops->percpu_deinit(cpu);
+
+	return ret;
+}
+
 void __init xen_init_IRQ(void)
 {
 	int ret = -EINVAL;
@@ -1684,6 +2113,12 @@
 	if (ret < 0)
 		xen_evtchn_2l_init();
 
+	xen_cpu_init_eoi(smp_processor_id());
+
+	cpuhp_setup_state_nocalls(CPUHP_XEN_EVTCHN_PREPARE,
+				  "xen/evtchn:prepare",
+				  xen_evtchn_cpu_prepare, xen_evtchn_cpu_dead);
+
 	evtchn_to_irq = kcalloc(EVTCHN_ROW(xen_evtchn_max_channels()),
 				sizeof(*evtchn_to_irq), GFP_KERNEL);
 	BUG_ON(!evtchn_to_irq);
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/events/events_fifo.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/events/events_fifo.c
@@ -209,12 +209,6 @@
 	return sync_test_bit(EVTCHN_FIFO_BIT(PENDING, word), BM(word));
 }
 
-static bool evtchn_fifo_test_and_set_mask(unsigned port)
-{
-	event_word_t *word = event_word_from_port(port);
-	return sync_test_and_set_bit(EVTCHN_FIFO_BIT(MASKED, word), BM(word));
-}
-
 static void evtchn_fifo_mask(unsigned port)
 {
 	event_word_t *word = event_word_from_port(port);
@@ -227,19 +221,25 @@
 	return sync_test_bit(EVTCHN_FIFO_BIT(MASKED, word), BM(word));
 }
 /*
- * Clear MASKED, spinning if BUSY is set.
+ * Clear MASKED if not PENDING, spinning if BUSY is set.
+ * Return true if mask was cleared.
  */
-static void clear_masked(volatile event_word_t *word)
+static bool clear_masked_cond(volatile event_word_t *word)
 {
 	event_word_t new, old, w;
 
 	w = *word;
 
 	do {
+		if (w & (1 << EVTCHN_FIFO_PENDING))
+			return false;
+
 		old = w & ~(1 << EVTCHN_FIFO_BUSY);
 		new = old & ~(1 << EVTCHN_FIFO_MASKED);
 		w = sync_cmpxchg(word, old, new);
 	} while (w != old);
+
+	return true;
 }
 
 static void evtchn_fifo_unmask(unsigned port)
@@ -248,8 +248,7 @@
 
 	BUG_ON(!irqs_disabled());
 
-	clear_masked(word);
-	if (evtchn_fifo_is_pending(port)) {
+	if (!clear_masked_cond(word)) {
 		struct evtchn_unmask unmask = { .port = port };
 		(void)HYPERVISOR_event_channel_op(EVTCHNOP_unmask, &unmask);
 	}
@@ -270,19 +269,9 @@
 	return w & EVTCHN_FIFO_LINK_MASK;
 }
 
-static void handle_irq_for_port(unsigned port)
-{
-	int irq;
-
-	irq = get_evtchn_to_irq(port);
-	if (irq != -1)
-		generic_handle_irq(irq);
-}
-
-static void consume_one_event(unsigned cpu,
+static void consume_one_event(unsigned cpu, struct evtchn_loop_ctrl *ctrl,
 			      struct evtchn_fifo_control_block *control_block,
-			      unsigned priority, unsigned long *ready,
-			      bool drop)
+			      unsigned priority, unsigned long *ready)
 {
 	struct evtchn_fifo_queue *q = &per_cpu(cpu_queue, cpu);
 	uint32_t head;
@@ -315,16 +304,17 @@
 		clear_bit(priority, ready);
 
 	if (evtchn_fifo_is_pending(port) && !evtchn_fifo_is_masked(port)) {
-		if (unlikely(drop))
+		if (unlikely(!ctrl))
 			pr_warn("Dropping pending event for port %u\n", port);
 		else
-			handle_irq_for_port(port);
+			handle_irq_for_port(port, ctrl);
 	}
 
 	q->head[priority] = head;
 }
 
-static void __evtchn_fifo_handle_events(unsigned cpu, bool drop)
+static void __evtchn_fifo_handle_events(unsigned cpu,
+					struct evtchn_loop_ctrl *ctrl)
 {
 	struct evtchn_fifo_control_block *control_block;
 	unsigned long ready;
@@ -336,14 +326,15 @@
 
 	while (ready) {
 		q = find_first_bit(&ready, EVTCHN_FIFO_MAX_QUEUES);
-		consume_one_event(cpu, control_block, q, &ready, drop);
+		consume_one_event(cpu, ctrl, control_block, q, &ready);
 		ready |= xchg(&control_block->ready, 0);
 	}
 }
 
-static void evtchn_fifo_handle_events(unsigned cpu)
+static void evtchn_fifo_handle_events(unsigned cpu,
+				      struct evtchn_loop_ctrl *ctrl)
 {
-	__evtchn_fifo_handle_events(cpu, false);
+	__evtchn_fifo_handle_events(cpu, ctrl);
 }
 
 static void evtchn_fifo_resume(void)
@@ -380,21 +371,6 @@
 	event_array_pages = 0;
 }
 
-static const struct evtchn_ops evtchn_ops_fifo = {
-	.max_channels      = evtchn_fifo_max_channels,
-	.nr_channels       = evtchn_fifo_nr_channels,
-	.setup             = evtchn_fifo_setup,
-	.bind_to_cpu       = evtchn_fifo_bind_to_cpu,
-	.clear_pending     = evtchn_fifo_clear_pending,
-	.set_pending       = evtchn_fifo_set_pending,
-	.is_pending        = evtchn_fifo_is_pending,
-	.test_and_set_mask = evtchn_fifo_test_and_set_mask,
-	.mask              = evtchn_fifo_mask,
-	.unmask            = evtchn_fifo_unmask,
-	.handle_events     = evtchn_fifo_handle_events,
-	.resume            = evtchn_fifo_resume,
-};
-
 static int evtchn_fifo_alloc_control_block(unsigned cpu)
 {
 	void *control_block = NULL;
@@ -417,19 +393,35 @@
 	return ret;
 }
 
-static int xen_evtchn_cpu_prepare(unsigned int cpu)
+static int evtchn_fifo_percpu_init(unsigned int cpu)
 {
 	if (!per_cpu(cpu_control_block, cpu))
 		return evtchn_fifo_alloc_control_block(cpu);
 	return 0;
 }
 
-static int xen_evtchn_cpu_dead(unsigned int cpu)
+static int evtchn_fifo_percpu_deinit(unsigned int cpu)
 {
-	__evtchn_fifo_handle_events(cpu, true);
+	__evtchn_fifo_handle_events(cpu, NULL);
 	return 0;
 }
 
+static const struct evtchn_ops evtchn_ops_fifo = {
+	.max_channels      = evtchn_fifo_max_channels,
+	.nr_channels       = evtchn_fifo_nr_channels,
+	.setup             = evtchn_fifo_setup,
+	.bind_to_cpu       = evtchn_fifo_bind_to_cpu,
+	.clear_pending     = evtchn_fifo_clear_pending,
+	.set_pending       = evtchn_fifo_set_pending,
+	.is_pending        = evtchn_fifo_is_pending,
+	.mask              = evtchn_fifo_mask,
+	.unmask            = evtchn_fifo_unmask,
+	.handle_events     = evtchn_fifo_handle_events,
+	.resume            = evtchn_fifo_resume,
+	.percpu_init       = evtchn_fifo_percpu_init,
+	.percpu_deinit     = evtchn_fifo_percpu_deinit,
+};
+
 int __init xen_evtchn_fifo_init(void)
 {
 	int cpu = smp_processor_id();
@@ -443,9 +435,5 @@
 
 	evtchn_ops = &evtchn_ops_fifo;
 
-	cpuhp_setup_state_nocalls(CPUHP_XEN_EVTCHN_PREPARE,
-				  "xen/evtchn:prepare",
-				  xen_evtchn_cpu_prepare, xen_evtchn_cpu_dead);
-
 	return ret;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/events/events_internal.h
+++ linux-gkeop-5.4-5.4.0/drivers/xen/events/events_internal.h
@@ -30,11 +30,22 @@
  */
 struct irq_info {
 	struct list_head list;
-	int refcnt;
-	enum xen_irq_type type;	/* type */
+	struct list_head eoi_list;
+	short refcnt;
+	short spurious_cnt;
+	short type;		/* type */
+	u8 mask_reason;		/* Why is event channel masked */
+#define EVT_MASK_REASON_EXPLICIT	0x01
+#define EVT_MASK_REASON_TEMPORARY	0x02
+#define EVT_MASK_REASON_EOI_PENDING	0x04
+	u8 is_active;		/* Is event just being handled? */
 	unsigned irq;
 	unsigned int evtchn;	/* event channel */
 	unsigned short cpu;	/* cpu bound */
+	unsigned short eoi_cpu;	/* EOI must happen on this cpu */
+	unsigned int irq_epoch;	/* If eoi_cpu valid: irq_epoch of event */
+	u64 eoi_time;		/* Time in jiffies when to EOI. */
+	spinlock_t lock;
 
 	union {
 		unsigned short virq;
@@ -53,28 +64,34 @@
 #define PIRQ_SHAREABLE	(1 << 1)
 #define PIRQ_MSI_GROUP	(1 << 2)
 
+struct evtchn_loop_ctrl;
+
 struct evtchn_ops {
 	unsigned (*max_channels)(void);
 	unsigned (*nr_channels)(void);
 
 	int (*setup)(struct irq_info *info);
+	void (*remove)(evtchn_port_t port, unsigned int cpu);
 	void (*bind_to_cpu)(struct irq_info *info, unsigned cpu);
 
 	void (*clear_pending)(unsigned port);
 	void (*set_pending)(unsigned port);
 	bool (*is_pending)(unsigned port);
-	bool (*test_and_set_mask)(unsigned port);
 	void (*mask)(unsigned port);
 	void (*unmask)(unsigned port);
 
-	void (*handle_events)(unsigned cpu);
+	void (*handle_events)(unsigned cpu, struct evtchn_loop_ctrl *ctrl);
 	void (*resume)(void);
+
+	int (*percpu_init)(unsigned int cpu);
+	int (*percpu_deinit)(unsigned int cpu);
 };
 
 extern const struct evtchn_ops *evtchn_ops;
 
 extern int **evtchn_to_irq;
 int get_evtchn_to_irq(unsigned int evtchn);
+void handle_irq_for_port(evtchn_port_t port, struct evtchn_loop_ctrl *ctrl);
 
 struct irq_info *info_for_irq(unsigned irq);
 unsigned cpu_from_irq(unsigned irq);
@@ -96,6 +113,13 @@
 	return 0;
 }
 
+static inline void xen_evtchn_port_remove(evtchn_port_t evtchn,
+					  unsigned int cpu)
+{
+	if (evtchn_ops->remove)
+		evtchn_ops->remove(evtchn, cpu);
+}
+
 static inline void xen_evtchn_port_bind_to_cpu(struct irq_info *info,
 					       unsigned cpu)
 {
@@ -117,11 +141,6 @@
 	return evtchn_ops->is_pending(port);
 }
 
-static inline bool test_and_set_mask(unsigned port)
-{
-	return evtchn_ops->test_and_set_mask(port);
-}
-
 static inline void mask_evtchn(unsigned port)
 {
 	return evtchn_ops->mask(port);
@@ -132,9 +151,10 @@
 	return evtchn_ops->unmask(port);
 }
 
-static inline void xen_evtchn_handle_events(unsigned cpu)
+static inline void xen_evtchn_handle_events(unsigned cpu,
+					    struct evtchn_loop_ctrl *ctrl)
 {
-	return evtchn_ops->handle_events(cpu);
+	return evtchn_ops->handle_events(cpu, ctrl);
 }
 
 static inline void xen_evtchn_resume(void)
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/evtchn.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/evtchn.c
@@ -166,7 +166,6 @@
 	     "Interrupt for port %d, but apparently not enabled; per-user %p\n",
 	     evtchn->port, u);
 
-	disable_irq_nosync(irq);
 	evtchn->enabled = false;
 
 	spin_lock(&u->ring_prod_lock);
@@ -292,7 +291,7 @@
 		evtchn = find_evtchn(u, port);
 		if (evtchn && !evtchn->enabled) {
 			evtchn->enabled = true;
-			enable_irq(irq_from_evtchn(port));
+			xen_irq_lateeoi(irq_from_evtchn(port), 0);
 		}
 	}
 
@@ -392,8 +391,8 @@
 	if (rc < 0)
 		goto err;
 
-	rc = bind_evtchn_to_irqhandler(port, evtchn_interrupt, 0,
-				       u->name, evtchn);
+	rc = bind_evtchn_to_irqhandler_lateeoi(port, evtchn_interrupt, 0,
+					       u->name, evtchn);
 	if (rc < 0)
 		goto err;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/gntdev-dmabuf.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/gntdev-dmabuf.c
@@ -641,6 +641,14 @@
 		goto fail_detach;
 	}
 
+	/* Check that we have zero offset. */
+	if (sgt->sgl->offset) {
+		ret = ERR_PTR(-EINVAL);
+		pr_debug("DMA buffer has %d bytes offset, user-space expects 0\n",
+			 sgt->sgl->offset);
+		goto fail_unmap;
+	}
+
 	/* Check number of pages that imported buffer has. */
 	if (attach->dmabuf->size != gntdev_dmabuf->nr_pages << PAGE_SHIFT) {
 		ret = ERR_PTR(-EINVAL);
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/gntdev.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/gntdev.c
@@ -319,44 +319,47 @@
 		 * to the kernel linear addresses of the struct pages.
 		 * These ptes are completely different from the user ptes dealt
 		 * with find_grant_ptes.
+		 * Note that GNTMAP_device_map isn't needed here: The
+		 * dev_bus_addr output field gets consumed only from ->map_ops,
+		 * and by not requesting it when mapping we also avoid needing
+		 * to mirror dev_bus_addr into ->unmap_ops (and holding an extra
+		 * reference to the page in the hypervisor).
 		 */
+		unsigned int flags = (map->flags & ~GNTMAP_device_map) |
+				     GNTMAP_host_map;
+
 		for (i = 0; i < map->count; i++) {
 			unsigned long address = (unsigned long)
 				pfn_to_kaddr(page_to_pfn(map->pages[i]));
 			BUG_ON(PageHighMem(map->pages[i]));
 
-			gnttab_set_map_op(&map->kmap_ops[i], address,
-				map->flags | GNTMAP_host_map,
+			gnttab_set_map_op(&map->kmap_ops[i], address, flags,
 				map->grants[i].ref,
 				map->grants[i].domid);
 			gnttab_set_unmap_op(&map->kunmap_ops[i], address,
-				map->flags | GNTMAP_host_map, -1);
+				flags, -1);
 		}
 	}
 
 	pr_debug("map %d+%d\n", map->index, map->count);
 	err = gnttab_map_refs(map->map_ops, use_ptemod ? map->kmap_ops : NULL,
 			map->pages, map->count);
-	if (err)
-		return err;
 
 	for (i = 0; i < map->count; i++) {
-		if (map->map_ops[i].status) {
+		if (map->map_ops[i].status == GNTST_okay)
+			map->unmap_ops[i].handle = map->map_ops[i].handle;
+		else if (!err)
 			err = -EINVAL;
-			continue;
-		}
 
-		map->unmap_ops[i].handle = map->map_ops[i].handle;
-		if (use_ptemod)
-			map->kunmap_ops[i].handle = map->kmap_ops[i].handle;
-#ifdef CONFIG_XEN_GRANT_DMA_ALLOC
-		else if (map->dma_vaddr) {
-			unsigned long bfn;
+		if (map->flags & GNTMAP_device_map)
+			map->unmap_ops[i].dev_bus_addr = map->map_ops[i].dev_bus_addr;
 
-			bfn = pfn_to_bfn(page_to_pfn(map->pages[i]));
-			map->unmap_ops[i].dev_bus_addr = __pfn_to_phys(bfn);
+		if (use_ptemod) {
+			if (map->kmap_ops[i].status == GNTST_okay)
+				map->kunmap_ops[i].handle = map->kmap_ops[i].handle;
+			else if (!err)
+				err = -EINVAL;
 		}
-#endif
 	}
 	return err;
 }
@@ -831,17 +834,18 @@
 	s16 __user *status[GNTDEV_COPY_BATCH];
 	unsigned int nr_ops;
 	unsigned int nr_pages;
+	bool writeable;
 };
 
 static int gntdev_get_page(struct gntdev_copy_batch *batch, void __user *virt,
-			   bool writeable, unsigned long *gfn)
+				unsigned long *gfn)
 {
 	unsigned long addr = (unsigned long)virt;
 	struct page *page;
 	unsigned long xen_pfn;
 	int ret;
 
-	ret = get_user_pages_fast(addr, 1, writeable ? FOLL_WRITE : 0, &page);
+	ret = get_user_pages_fast(addr, 1, batch->writeable ? FOLL_WRITE : 0, &page);
 	if (ret < 0)
 		return ret;
 
@@ -857,9 +861,13 @@
 {
 	unsigned int i;
 
-	for (i = 0; i < batch->nr_pages; i++)
+	for (i = 0; i < batch->nr_pages; i++) {
+		if (batch->writeable && !PageDirty(batch->pages[i]))
+			set_page_dirty_lock(batch->pages[i]);
 		put_page(batch->pages[i]);
+	}
 	batch->nr_pages = 0;
+	batch->writeable = false;
 }
 
 static int gntdev_copy(struct gntdev_copy_batch *batch)
@@ -948,8 +956,9 @@
 			virt = seg->source.virt + copied;
 			off = (unsigned long)virt & ~XEN_PAGE_MASK;
 			len = min(len, (size_t)XEN_PAGE_SIZE - off);
+			batch->writeable = false;
 
-			ret = gntdev_get_page(batch, virt, false, &gfn);
+			ret = gntdev_get_page(batch, virt, &gfn);
 			if (ret < 0)
 				return ret;
 
@@ -967,8 +976,9 @@
 			virt = seg->dest.virt + copied;
 			off = (unsigned long)virt & ~XEN_PAGE_MASK;
 			len = min(len, (size_t)XEN_PAGE_SIZE - off);
+			batch->writeable = true;
 
-			ret = gntdev_get_page(batch, virt, true, &gfn);
+			ret = gntdev_get_page(batch, virt, &gfn);
 			if (ret < 0)
 				return ret;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/platform-pci.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/platform-pci.c
@@ -149,7 +149,6 @@
 	ret = gnttab_init();
 	if (ret)
 		goto grant_out;
-	xenbus_probe(NULL);
 	return 0;
 grant_out:
 	gnttab_free_auto_xlat_frames();
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/preempt.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/preempt.c
@@ -27,13 +27,15 @@
 asmlinkage __visible void xen_maybe_preempt_hcall(void)
 {
 	if (unlikely(__this_cpu_read(xen_in_preemptible_hcall)
-		     && need_resched())) {
+		     && need_resched() && !preempt_count())) {
 		/*
 		 * Clear flag as we may be rescheduled on a different
 		 * cpu.
 		 */
 		__this_cpu_write(xen_in_preemptible_hcall, false);
-		_cond_resched();
+		local_irq_enable();
+		cond_resched();
+		local_irq_disable();
 		__this_cpu_write(xen_in_preemptible_hcall, true);
 	}
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/privcmd.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/privcmd.c
@@ -724,14 +724,15 @@
 	return 0;
 }
 
-static long privcmd_ioctl_mmap_resource(struct file *file, void __user *udata)
+static long privcmd_ioctl_mmap_resource(struct file *file,
+				struct privcmd_mmap_resource __user *udata)
 {
 	struct privcmd_data *data = file->private_data;
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	struct privcmd_mmap_resource kdata;
 	xen_pfn_t *pfns = NULL;
-	struct xen_mem_acquire_resource xdata;
+	struct xen_mem_acquire_resource xdata = { };
 	int rc;
 
 	if (copy_from_user(&kdata, udata, sizeof(kdata)))
@@ -741,6 +742,22 @@
 	if (data->domid != DOMID_INVALID && data->domid != kdata.dom)
 		return -EPERM;
 
+	/* Both fields must be set or unset */
+	if (!!kdata.addr != !!kdata.num)
+		return -EINVAL;
+
+	xdata.domid = kdata.dom;
+	xdata.type = kdata.type;
+	xdata.id = kdata.id;
+
+	if (!kdata.addr && !kdata.num) {
+		/* Query the size of the resource. */
+		rc = HYPERVISOR_memory_op(XENMEM_acquire_resource, &xdata);
+		if (rc)
+			return rc;
+		return __put_user(xdata.nr_frames, &udata->num);
+	}
+
 	down_write(&mm->mmap_sem);
 
 	vma = find_vma(mm, kdata.addr);
@@ -775,10 +792,6 @@
 	} else
 		vma->vm_private_data = PRIV_VMA_LOCKED;
 
-	memset(&xdata, 0, sizeof(xdata));
-	xdata.domid = kdata.dom;
-	xdata.type = kdata.type;
-	xdata.id = kdata.id;
 	xdata.frame = kdata.idx;
 	xdata.nr_frames = kdata.num;
 	set_xen_guest_handle(xdata.frame_list, pfns);
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/pvcalls-back.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/pvcalls-back.c
@@ -66,6 +66,7 @@
 	atomic_t write;
 	atomic_t io;
 	atomic_t release;
+	atomic_t eoi;
 	void (*saved_data_ready)(struct sock *sk);
 	struct pvcalls_ioworker ioworker;
 };
@@ -87,7 +88,7 @@
 				       struct pvcalls_fedata *fedata,
 				       struct sock_mapping *map);
 
-static void pvcalls_conn_back_read(void *opaque)
+static bool pvcalls_conn_back_read(void *opaque)
 {
 	struct sock_mapping *map = (struct sock_mapping *)opaque;
 	struct msghdr msg;
@@ -107,17 +108,17 @@
 	virt_mb();
 
 	if (error)
-		return;
+		return false;
 
 	size = pvcalls_queued(prod, cons, array_size);
 	if (size >= array_size)
-		return;
+		return false;
 	spin_lock_irqsave(&map->sock->sk->sk_receive_queue.lock, flags);
 	if (skb_queue_empty(&map->sock->sk->sk_receive_queue)) {
 		atomic_set(&map->read, 0);
 		spin_unlock_irqrestore(&map->sock->sk->sk_receive_queue.lock,
 				flags);
-		return;
+		return true;
 	}
 	spin_unlock_irqrestore(&map->sock->sk->sk_receive_queue.lock, flags);
 	wanted = array_size - size;
@@ -141,7 +142,7 @@
 	ret = inet_recvmsg(map->sock, &msg, wanted, MSG_DONTWAIT);
 	WARN_ON(ret > wanted);
 	if (ret == -EAGAIN) /* shouldn't happen */
-		return;
+		return true;
 	if (!ret)
 		ret = -ENOTCONN;
 	spin_lock_irqsave(&map->sock->sk->sk_receive_queue.lock, flags);
@@ -160,10 +161,10 @@
 	virt_wmb();
 	notify_remote_via_irq(map->irq);
 
-	return;
+	return true;
 }
 
-static void pvcalls_conn_back_write(struct sock_mapping *map)
+static bool pvcalls_conn_back_write(struct sock_mapping *map)
 {
 	struct pvcalls_data_intf *intf = map->ring;
 	struct pvcalls_data *data = &map->data;
@@ -180,7 +181,7 @@
 	array_size = XEN_FLEX_RING_SIZE(map->ring_order);
 	size = pvcalls_queued(prod, cons, array_size);
 	if (size == 0)
-		return;
+		return false;
 
 	memset(&msg, 0, sizeof(msg));
 	msg.msg_flags |= MSG_DONTWAIT;
@@ -198,12 +199,11 @@
 
 	atomic_set(&map->write, 0);
 	ret = inet_sendmsg(map->sock, &msg, size);
-	if (ret == -EAGAIN || (ret >= 0 && ret < size)) {
+	if (ret == -EAGAIN) {
 		atomic_inc(&map->write);
 		atomic_inc(&map->io);
+		return true;
 	}
-	if (ret == -EAGAIN)
-		return;
 
 	/* write the data, then update the indexes */
 	virt_wmb();
@@ -216,9 +216,13 @@
 	}
 	/* update the indexes, then notify the other end */
 	virt_wmb();
-	if (prod != cons + ret)
+	if (prod != cons + ret) {
 		atomic_inc(&map->write);
+		atomic_inc(&map->io);
+	}
 	notify_remote_via_irq(map->irq);
+
+	return true;
 }
 
 static void pvcalls_back_ioworker(struct work_struct *work)
@@ -227,6 +231,7 @@
 		struct pvcalls_ioworker, register_work);
 	struct sock_mapping *map = container_of(ioworker, struct sock_mapping,
 		ioworker);
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
 	while (atomic_read(&map->io) > 0) {
 		if (atomic_read(&map->release) > 0) {
@@ -234,10 +239,18 @@
 			return;
 		}
 
-		if (atomic_read(&map->read) > 0)
-			pvcalls_conn_back_read(map);
-		if (atomic_read(&map->write) > 0)
-			pvcalls_conn_back_write(map);
+		if (atomic_read(&map->read) > 0 &&
+		    pvcalls_conn_back_read(map))
+			eoi_flags = 0;
+		if (atomic_read(&map->write) > 0 &&
+		    pvcalls_conn_back_write(map))
+			eoi_flags = 0;
+
+		if (atomic_read(&map->eoi) > 0 && !atomic_read(&map->write)) {
+			atomic_set(&map->eoi, 0);
+			xen_irq_lateeoi(map->irq, eoi_flags);
+			eoi_flags = XEN_EOI_FLAG_SPURIOUS;
+		}
 
 		atomic_dec(&map->io);
 	}
@@ -334,12 +347,9 @@
 		goto out;
 	map->bytes = page;
 
-	ret = bind_interdomain_evtchn_to_irqhandler(fedata->dev->otherend_id,
-						    evtchn,
-						    pvcalls_back_conn_event,
-						    0,
-						    "pvcalls-backend",
-						    map);
+	ret = bind_interdomain_evtchn_to_irqhandler_lateeoi(
+			fedata->dev->otherend_id, evtchn,
+			pvcalls_back_conn_event, 0, "pvcalls-backend", map);
 	if (ret < 0)
 		goto out;
 	map->irq = ret;
@@ -873,15 +883,18 @@
 {
 	struct xenbus_device *dev = dev_id;
 	struct pvcalls_fedata *fedata = NULL;
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
-	if (dev == NULL)
-		return IRQ_HANDLED;
+	if (dev) {
+		fedata = dev_get_drvdata(&dev->dev);
+		if (fedata) {
+			pvcalls_back_work(fedata);
+			eoi_flags = 0;
+		}
+	}
 
-	fedata = dev_get_drvdata(&dev->dev);
-	if (fedata == NULL)
-		return IRQ_HANDLED;
+	xen_irq_lateeoi(irq, eoi_flags);
 
-	pvcalls_back_work(fedata);
 	return IRQ_HANDLED;
 }
 
@@ -891,12 +904,15 @@
 	struct pvcalls_ioworker *iow;
 
 	if (map == NULL || map->sock == NULL || map->sock->sk == NULL ||
-		map->sock->sk->sk_user_data != map)
+		map->sock->sk->sk_user_data != map) {
+		xen_irq_lateeoi(irq, 0);
 		return IRQ_HANDLED;
+	}
 
 	iow = &map->ioworker;
 
 	atomic_inc(&map->write);
+	atomic_inc(&map->eoi);
 	atomic_inc(&map->io);
 	queue_work(iow->wq, &iow->register_work);
 
@@ -931,7 +947,7 @@
 		goto error;
 	}
 
-	err = bind_interdomain_evtchn_to_irq(dev->otherend_id, evtchn);
+	err = bind_interdomain_evtchn_to_irq_lateeoi(dev->otherend_id, evtchn);
 	if (err < 0)
 		goto error;
 	fedata->irq = err;
@@ -1087,7 +1103,8 @@
 		case XenbusStateInitialised:
 			switch (state) {
 			case XenbusStateConnected:
-				backend_connect(dev);
+				if (backend_connect(dev))
+					return;
 				xenbus_switch_state(dev, XenbusStateConnected);
 				break;
 			case XenbusStateClosing:
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/swiotlb-xen.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/swiotlb-xen.c
@@ -335,6 +335,7 @@
 	int order = get_order(size);
 	phys_addr_t phys;
 	u64 dma_mask = DMA_BIT_MASK(32);
+	struct page *page;
 
 	if (hwdev && hwdev->coherent_dma_mask)
 		dma_mask = hwdev->coherent_dma_mask;
@@ -346,9 +347,14 @@
 	/* Convert the size to actually allocated. */
 	size = 1UL << (order + XEN_PAGE_SHIFT);
 
+	if (is_vmalloc_addr(vaddr))
+		page = vmalloc_to_page(vaddr);
+	else
+		page = virt_to_page(vaddr);
+
 	if (!WARN_ON((dev_addr + size - 1 > dma_mask) ||
 		     range_straddles_page_boundary(phys, size)) &&
-	    TestClearPageXenRemapped(virt_to_page(vaddr)))
+	    TestClearPageXenRemapped(page))
 		xen_destroy_contiguous_region(phys, order);
 
 	xen_free_coherent_pages(hwdev, size, vaddr, (dma_addr_t)phys, attrs);
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xen-balloon.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xen-balloon.c
@@ -94,7 +94,7 @@
 				  "%llu", &static_max) == 1))
 			static_max >>= PAGE_SHIFT - 10;
 		else
-			static_max = new_target;
+			static_max = balloon_stats.current_pages;
 
 		target_diff = (xen_pv_domain() || xen_initial_domain()) ? 0
 				: static_max - balloon_stats.target_pages;
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xen-pciback/pci_stub.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xen-pciback/pci_stub.c
@@ -733,10 +733,17 @@
 	wmb();
 	notify_remote_via_irq(pdev->evtchn_irq);
 
+	/* Enable IRQ to signal "request done". */
+	xen_pcibk_lateeoi(pdev, 0);
+
 	ret = wait_event_timeout(xen_pcibk_aer_wait_queue,
 				 !(test_bit(_XEN_PCIB_active, (unsigned long *)
 				 &sh_info->flags)), 300*HZ);
 
+	/* Enable IRQ for pcifront request if not already active. */
+	if (!test_bit(_PDEVF_op_active, &pdev->flags))
+		xen_pcibk_lateeoi(pdev, 0);
+
 	if (!ret) {
 		if (test_bit(_XEN_PCIB_active,
 			(unsigned long *)&sh_info->flags)) {
@@ -750,13 +757,6 @@
 	}
 	clear_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags);
 
-	if (test_bit(_XEN_PCIF_active,
-		(unsigned long *)&sh_info->flags)) {
-		dev_dbg(&psdev->dev->dev,
-			"schedule pci_conf service in " DRV_NAME "\n");
-		xen_pcibk_test_and_schedule_op(psdev->pdev);
-	}
-
 	res = (pci_ers_result_t)aer_op->err;
 	return res;
 }
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xen-pciback/pciback.h
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xen-pciback/pciback.h
@@ -14,6 +14,7 @@
 #include <linux/spinlock.h>
 #include <linux/workqueue.h>
 #include <linux/atomic.h>
+#include <xen/events.h>
 #include <xen/interface/io/pciif.h>
 
 #define DRV_NAME	"xen-pciback"
@@ -27,6 +28,8 @@
 #define PDEVF_op_active		(1<<(_PDEVF_op_active))
 #define _PCIB_op_pending	(1)
 #define PCIB_op_pending		(1<<(_PCIB_op_pending))
+#define _EOI_pending		(2)
+#define EOI_pending		(1<<(_EOI_pending))
 
 struct xen_pcibk_device {
 	void *pci_dev_data;
@@ -182,12 +185,17 @@
 irqreturn_t xen_pcibk_handle_event(int irq, void *dev_id);
 void xen_pcibk_do_op(struct work_struct *data);
 
+static inline void xen_pcibk_lateeoi(struct xen_pcibk_device *pdev,
+				     unsigned int eoi_flag)
+{
+	if (test_and_clear_bit(_EOI_pending, &pdev->flags))
+		xen_irq_lateeoi(pdev->evtchn_irq, eoi_flag);
+}
+
 int xen_pcibk_xenbus_register(void);
 void xen_pcibk_xenbus_unregister(void);
 
 extern int verbose_request;
-
-void xen_pcibk_test_and_schedule_op(struct xen_pcibk_device *pdev);
 #endif
 
 /* Handles shared IRQs that can to device domain and control domain. */
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xen-pciback/pciback_ops.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xen-pciback/pciback_ops.c
@@ -297,26 +297,41 @@
 	return 0;
 }
 #endif
+
+static inline bool xen_pcibk_test_op_pending(struct xen_pcibk_device *pdev)
+{
+	return test_bit(_XEN_PCIF_active,
+			(unsigned long *)&pdev->sh_info->flags) &&
+	       !test_and_set_bit(_PDEVF_op_active, &pdev->flags);
+}
+
 /*
 * Now the same evtchn is used for both pcifront conf_read_write request
 * as well as pcie aer front end ack. We use a new work_queue to schedule
 * xen_pcibk conf_read_write service for avoiding confict with aer_core
 * do_recovery job which also use the system default work_queue
 */
-void xen_pcibk_test_and_schedule_op(struct xen_pcibk_device *pdev)
+static void xen_pcibk_test_and_schedule_op(struct xen_pcibk_device *pdev)
 {
+	bool eoi = true;
+
 	/* Check that frontend is requesting an operation and that we are not
 	 * already processing a request */
-	if (test_bit(_XEN_PCIF_active, (unsigned long *)&pdev->sh_info->flags)
-	    && !test_and_set_bit(_PDEVF_op_active, &pdev->flags)) {
+	if (xen_pcibk_test_op_pending(pdev)) {
 		schedule_work(&pdev->op_work);
+		eoi = false;
 	}
 	/*_XEN_PCIB_active should have been cleared by pcifront. And also make
 	sure xen_pcibk is waiting for ack by checking _PCIB_op_pending*/
 	if (!test_bit(_XEN_PCIB_active, (unsigned long *)&pdev->sh_info->flags)
 	    && test_bit(_PCIB_op_pending, &pdev->flags)) {
 		wake_up(&xen_pcibk_aer_wait_queue);
+		eoi = false;
 	}
+
+	/* EOI if there was nothing to do. */
+	if (eoi)
+		xen_pcibk_lateeoi(pdev, XEN_EOI_FLAG_SPURIOUS);
 }
 
 /* Performing the configuration space reads/writes must not be done in atomic
@@ -324,10 +339,8 @@
  * use of semaphores). This function is intended to be called from a work
  * queue in process context taking a struct xen_pcibk_device as a parameter */
 
-void xen_pcibk_do_op(struct work_struct *data)
+static void xen_pcibk_do_one_op(struct xen_pcibk_device *pdev)
 {
-	struct xen_pcibk_device *pdev =
-		container_of(data, struct xen_pcibk_device, op_work);
 	struct pci_dev *dev;
 	struct xen_pcibk_dev_data *dev_data = NULL;
 	struct xen_pci_op *op = &pdev->op;
@@ -400,16 +413,31 @@
 	smp_mb__before_atomic(); /* /after/ clearing PCIF_active */
 	clear_bit(_PDEVF_op_active, &pdev->flags);
 	smp_mb__after_atomic(); /* /before/ final check for work */
+}
 
-	/* Check to see if the driver domain tried to start another request in
-	 * between clearing _XEN_PCIF_active and clearing _PDEVF_op_active.
-	*/
-	xen_pcibk_test_and_schedule_op(pdev);
+void xen_pcibk_do_op(struct work_struct *data)
+{
+	struct xen_pcibk_device *pdev =
+		container_of(data, struct xen_pcibk_device, op_work);
+
+	do {
+		xen_pcibk_do_one_op(pdev);
+	} while (xen_pcibk_test_op_pending(pdev));
+
+	xen_pcibk_lateeoi(pdev, 0);
 }
 
 irqreturn_t xen_pcibk_handle_event(int irq, void *dev_id)
 {
 	struct xen_pcibk_device *pdev = dev_id;
+	bool eoi;
+
+	/* IRQs might come in before pdev->evtchn_irq is written. */
+	if (unlikely(pdev->evtchn_irq != irq))
+		pdev->evtchn_irq = irq;
+
+	eoi = test_and_set_bit(_EOI_pending, &pdev->flags);
+	WARN(eoi, "IRQ while EOI pending\n");
 
 	xen_pcibk_test_and_schedule_op(pdev);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xen-pciback/xenbus.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xen-pciback/xenbus.c
@@ -123,7 +123,7 @@
 
 	pdev->sh_info = vaddr;
 
-	err = bind_interdomain_evtchn_to_irqhandler(
+	err = bind_interdomain_evtchn_to_irqhandler_lateeoi(
 		pdev->xdev->otherend_id, remote_evtchn, xen_pcibk_handle_event,
 		0, DRV_NAME, pdev);
 	if (err < 0) {
@@ -688,7 +688,7 @@
 
 	/* watch the backend node for backend configuration information */
 	err = xenbus_watch_path(dev, dev->nodename, &pdev->be_watch,
-				xen_pcibk_be_watch);
+				NULL, xen_pcibk_be_watch);
 	if (err)
 		goto out;
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xen-scsiback.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xen-scsiback.c
@@ -91,7 +91,6 @@
 	unsigned int irq;
 
 	struct vscsiif_back_ring ring;
-	int ring_error;
 
 	spinlock_t ring_lock;
 	atomic_t nr_unreplied_reqs;
@@ -423,12 +422,12 @@
 		return 0;
 
 	err = gnttab_map_refs(map, NULL, pg, cnt);
-	BUG_ON(err);
 	for (i = 0; i < cnt; i++) {
 		if (unlikely(map[i].status != GNTST_okay)) {
 			pr_err("invalid buffer -- could not remap it\n");
 			map[i].handle = SCSIBACK_INVALID_HANDLE;
-			err = -ENOMEM;
+			if (!err)
+				err = -ENOMEM;
 		} else {
 			get_page(pg[i]);
 		}
@@ -722,7 +721,8 @@
 	return pending_req;
 }
 
-static int scsiback_do_cmd_fn(struct vscsibk_info *info)
+static int scsiback_do_cmd_fn(struct vscsibk_info *info,
+			      unsigned int *eoi_flags)
 {
 	struct vscsiif_back_ring *ring = &info->ring;
 	struct vscsiif_request ring_req;
@@ -739,11 +739,12 @@
 		rc = ring->rsp_prod_pvt;
 		pr_warn("Dom%d provided bogus ring requests (%#x - %#x = %u). Halting ring processing\n",
 			   info->domid, rp, rc, rp - rc);
-		info->ring_error = 1;
-		return 0;
+		return -EINVAL;
 	}
 
 	while ((rc != rp)) {
+		*eoi_flags &= ~XEN_EOI_FLAG_SPURIOUS;
+
 		if (RING_REQUEST_CONS_OVERFLOW(ring, rc))
 			break;
 
@@ -802,13 +803,16 @@
 static irqreturn_t scsiback_irq_fn(int irq, void *dev_id)
 {
 	struct vscsibk_info *info = dev_id;
+	int rc;
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
-	if (info->ring_error)
-		return IRQ_HANDLED;
-
-	while (scsiback_do_cmd_fn(info))
+	while ((rc = scsiback_do_cmd_fn(info, &eoi_flags)) > 0)
 		cond_resched();
 
+	/* In case of a ring error we keep the event channel masked. */
+	if (!rc)
+		xen_irq_lateeoi(irq, eoi_flags);
+
 	return IRQ_HANDLED;
 }
 
@@ -829,7 +833,7 @@
 	sring = (struct vscsiif_sring *)area;
 	BACK_RING_INIT(&info->ring, sring, PAGE_SIZE);
 
-	err = bind_interdomain_evtchn_to_irq(info->domid, evtchn);
+	err = bind_interdomain_evtchn_to_irq_lateeoi(info->domid, evtchn);
 	if (err < 0)
 		goto unmap_page;
 
@@ -1252,7 +1256,6 @@
 
 	info->domid = dev->otherend_id;
 	spin_lock_init(&info->ring_lock);
-	info->ring_error = 0;
 	atomic_set(&info->nr_unreplied_reqs, 0);
 	init_waitqueue_head(&info->waiting_to_free);
 	info->dev = dev;
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xenbus/xenbus.h
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xenbus/xenbus.h
@@ -44,6 +44,8 @@
 	int (*get_bus_id)(char bus_id[XEN_BUS_ID_SIZE], const char *nodename);
 	int (*probe)(struct xen_bus_type *bus, const char *type,
 		     const char *dir);
+	bool (*otherend_will_handle)(struct xenbus_watch *watch,
+				     const char *path, const char *token);
 	void (*otherend_changed)(struct xenbus_watch *watch, const char *path,
 				 const char *token);
 	struct bus_type bus;
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xenbus/xenbus_client.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xenbus/xenbus_client.c
@@ -114,18 +114,22 @@
  */
 int xenbus_watch_path(struct xenbus_device *dev, const char *path,
 		      struct xenbus_watch *watch,
+		      bool (*will_handle)(struct xenbus_watch *,
+					  const char *, const char *),
 		      void (*callback)(struct xenbus_watch *,
 				       const char *, const char *))
 {
 	int err;
 
 	watch->node = path;
+	watch->will_handle = will_handle;
 	watch->callback = callback;
 
 	err = register_xenbus_watch(watch);
 
 	if (err) {
 		watch->node = NULL;
+		watch->will_handle = NULL;
 		watch->callback = NULL;
 		xenbus_dev_fatal(dev, err, "adding watch on %s", path);
 	}
@@ -152,6 +156,8 @@
  */
 int xenbus_watch_pathfmt(struct xenbus_device *dev,
 			 struct xenbus_watch *watch,
+			 bool (*will_handle)(struct xenbus_watch *,
+					const char *, const char *),
 			 void (*callback)(struct xenbus_watch *,
 					  const char *, const char *),
 			 const char *pathfmt, ...)
@@ -168,7 +174,7 @@
 		xenbus_dev_fatal(dev, -ENOMEM, "allocating path for watch");
 		return -ENOMEM;
 	}
-	err = xenbus_watch_path(dev, path, watch, callback);
+	err = xenbus_watch_path(dev, path, watch, will_handle, callback);
 
 	if (err)
 		kfree(path);
@@ -363,8 +369,14 @@
 	int i, j;
 
 	for (i = 0; i < nr_pages; i++) {
-		err = gnttab_grant_foreign_access(dev->otherend_id,
-						  virt_to_gfn(vaddr), 0);
+		unsigned long gfn;
+
+		if (is_vmalloc_addr(vaddr))
+			gfn = pfn_to_gfn(vmalloc_to_pfn(vaddr));
+		else
+			gfn = virt_to_gfn(vaddr);
+
+		err = gnttab_grant_foreign_access(dev->otherend_id, gfn, 0);
 		if (err < 0) {
 			xenbus_dev_fatal(dev, err,
 					 "granting access to ring page");
@@ -448,7 +460,14 @@
 int xenbus_map_ring_valloc(struct xenbus_device *dev, grant_ref_t *gnt_refs,
 			   unsigned int nr_grefs, void **vaddr)
 {
-	return ring_ops->map(dev, gnt_refs, nr_grefs, vaddr);
+	int err;
+
+	err = ring_ops->map(dev, gnt_refs, nr_grefs, vaddr);
+	/* Some hypervisors are buggy and can return 1. */
+	if (err > 0)
+		err = GNTST_general_error;
+
+	return err;
 }
 EXPORT_SYMBOL_GPL(xenbus_map_ring_valloc);
 
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xenbus/xenbus_comms.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xenbus/xenbus_comms.c
@@ -57,16 +57,8 @@
 static int xenbus_irq;
 static struct task_struct *xenbus_task;
 
-static DECLARE_WORK(probe_work, xenbus_probe);
-
-
 static irqreturn_t wake_waiting(int irq, void *unused)
 {
-	if (unlikely(xenstored_ready == 0)) {
-		xenstored_ready = 1;
-		schedule_work(&probe_work);
-	}
-
 	wake_up(&xb_waitq);
 	return IRQ_HANDLED;
 }
@@ -313,6 +305,8 @@
 			req->msg.type = state.msg.type;
 			req->msg.len = state.msg.len;
 			req->body = state.body;
+			/* write body, then update state */
+			virt_wmb();
 			req->state = xb_req_state_got_reply;
 			req->cb(req);
 		} else
@@ -395,6 +389,8 @@
 	if (state.req->state == xb_req_state_aborted)
 		kfree(state.req);
 	else {
+		/* write err, then update state */
+		virt_wmb();
 		state.req->state = xb_req_state_got_reply;
 		wake_up(&state.req->wq);
 	}
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xenbus/xenbus_probe.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xenbus/xenbus_probe.c
@@ -136,6 +136,7 @@
 		container_of(dev->dev.bus, struct xen_bus_type, bus);
 
 	return xenbus_watch_pathfmt(dev, &dev->otherend_watch,
+				    bus->otherend_will_handle,
 				    bus->otherend_changed,
 				    "%s/%s", dev->otherend, "state");
 }
@@ -682,29 +683,107 @@
 }
 EXPORT_SYMBOL_GPL(unregister_xenstore_notifier);
 
-void xenbus_probe(struct work_struct *unused)
+static void xenbus_probe(void)
 {
 	xenstored_ready = 1;
 
+	/*
+	 * In the HVM case, xenbus_init() deferred its call to
+	 * xs_init() in case callbacks were not operational yet.
+	 * So do it now.
+	 */
+	if (xen_store_domain_type == XS_HVM)
+		xs_init();
+
 	/* Notify others that xenstore is up */
 	blocking_notifier_call_chain(&xenstore_chain, 0, NULL);
 }
-EXPORT_SYMBOL_GPL(xenbus_probe);
 
-static int __init xenbus_probe_initcall(void)
+/*
+ * Returns true when XenStore init must be deferred in order to
+ * allow the PCI platform device to be initialised, before we
+ * can actually have event channel interrupts working.
+ */
+static bool xs_hvm_defer_init_for_callback(void)
 {
-	if (!xen_domain())
-		return -ENODEV;
+#ifdef CONFIG_XEN_PVHVM
+	return xen_store_domain_type == XS_HVM &&
+		!xen_have_vector_callback;
+#else
+	return false;
+#endif
+}
 
-	if (xen_initial_domain() || xen_hvm_domain())
-		return 0;
+static int xenbus_probe_thread(void *unused)
+{
+	DEFINE_WAIT(w);
 
-	xenbus_probe(NULL);
+	/*
+	 * We actually just want to wait for *any* trigger of xb_waitq,
+	 * and run xenbus_probe() the moment it occurs.
+	 */
+	prepare_to_wait(&xb_waitq, &w, TASK_INTERRUPTIBLE);
+	schedule();
+	finish_wait(&xb_waitq, &w);
+
+	DPRINTK("probing");
+	xenbus_probe();
 	return 0;
 }
 
+static int __init xenbus_probe_initcall(void)
+{
+	/*
+	 * Probe XenBus here in the XS_PV case, and also XS_HVM unless we
+	 * need to wait for the platform PCI device to come up.
+	 */
+	if (xen_store_domain_type == XS_PV ||
+	    (xen_store_domain_type == XS_HVM &&
+	     !xs_hvm_defer_init_for_callback()))
+		xenbus_probe();
+
+	/*
+	 * For XS_LOCAL, spawn a thread which will wait for xenstored
+	 * or a xenstore-stubdom to be started, then probe. It will be
+	 * triggered when communication starts happening, by waiting
+	 * on xb_waitq.
+	 */
+	if (xen_store_domain_type == XS_LOCAL) {
+		struct task_struct *probe_task;
+
+		probe_task = kthread_run(xenbus_probe_thread, NULL,
+					 "xenbus_probe");
+		if (IS_ERR(probe_task))
+			return PTR_ERR(probe_task);
+	}
+	return 0;
+}
 device_initcall(xenbus_probe_initcall);
 
+int xen_set_callback_via(uint64_t via)
+{
+	struct xen_hvm_param a;
+	int ret;
+
+	a.domid = DOMID_SELF;
+	a.index = HVM_PARAM_CALLBACK_IRQ;
+	a.value = via;
+
+	ret = HYPERVISOR_hvm_op(HVMOP_set_param, &a);
+	if (ret)
+		return ret;
+
+	/*
+	 * If xenbus_probe_initcall() deferred the xenbus_probe()
+	 * due to the callback not functioning yet, we can do it now.
+	 */
+	if (!xenstored_ready && xs_hvm_defer_init_for_callback())
+		xenbus_probe();
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(xen_set_callback_via);
+
 /* Set up event channel for xenstored which is run as a local process
  * (this is normally used only in dom0)
  */
@@ -817,11 +896,17 @@
 		break;
 	}
 
-	/* Initialize the interface to xenstore. */
-	err = xs_init();
-	if (err) {
-		pr_warn("Error initializing xenstore comms: %i\n", err);
-		goto out_error;
+	/*
+	 * HVM domains may not have a functional callback yet. In that
+	 * case let xs_init() be called from xenbus_probe(), which will
+	 * get invoked at an appropriate time.
+	 */
+	if (xen_store_domain_type != XS_HVM) {
+		err = xs_init();
+		if (err) {
+			pr_warn("Error initializing xenstore comms: %i\n", err);
+			goto out_error;
+		}
 	}
 
 	if ((xen_store_domain_type != XS_LOCAL) &&
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xenbus/xenbus_probe_backend.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xenbus/xenbus_probe_backend.c
@@ -180,6 +180,12 @@
 	return err;
 }
 
+static bool frontend_will_handle(struct xenbus_watch *watch,
+				 const char *path, const char *token)
+{
+	return watch->nr_pending == 0;
+}
+
 static void frontend_changed(struct xenbus_watch *watch,
 			     const char *path, const char *token)
 {
@@ -191,6 +197,7 @@
 	.levels = 3,		/* backend/type/<frontend>/<id> */
 	.get_bus_id = backend_bus_id,
 	.probe = xenbus_probe_backend,
+	.otherend_will_handle = frontend_will_handle,
 	.otherend_changed = frontend_changed,
 	.bus = {
 		.name		= "xen-backend",
--- linux-gkeop-5.4-5.4.0.orig/drivers/xen/xenbus/xenbus_xs.c
+++ linux-gkeop-5.4-5.4.0/drivers/xen/xenbus/xenbus_xs.c
@@ -191,8 +191,11 @@
 
 static bool test_reply(struct xb_req_data *req)
 {
-	if (req->state == xb_req_state_got_reply || !xenbus_ok())
+	if (req->state == xb_req_state_got_reply || !xenbus_ok()) {
+		/* read req->state before all other fields */
+		virt_rmb();
 		return true;
+	}
 
 	/* Make sure to reread req->state each time. */
 	barrier();
@@ -202,7 +205,7 @@
 
 static void *read_reply(struct xb_req_data *req)
 {
-	while (req->state != xb_req_state_got_reply) {
+	do {
 		wait_event(req->wq, test_reply(req));
 
 		if (!xenbus_ok())
@@ -216,7 +219,7 @@
 		if (req->err)
 			return ERR_PTR(req->err);
 
-	}
+	} while (req->state != xb_req_state_got_reply);
 
 	return req->body;
 }
@@ -702,9 +705,13 @@
 
 	spin_lock(&watches_lock);
 	event->handle = find_watch(event->token);
-	if (event->handle != NULL) {
+	if (event->handle != NULL &&
+			(!event->handle->will_handle ||
+			 event->handle->will_handle(event->handle,
+				 event->path, event->token))) {
 		spin_lock(&watch_events_lock);
 		list_add_tail(&event->list, &watch_events);
+		event->handle->nr_pending++;
 		wake_up(&watch_events_waitq);
 		spin_unlock(&watch_events_lock);
 	} else
@@ -762,6 +769,8 @@
 
 	sprintf(token, "%lX", (long)watch);
 
+	watch->nr_pending = 0;
+
 	down_read(&xs_watch_rwsem);
 
 	spin_lock(&watches_lock);
@@ -811,11 +820,14 @@
 
 	/* Cancel pending watch events. */
 	spin_lock(&watch_events_lock);
-	list_for_each_entry_safe(event, tmp, &watch_events, list) {
-		if (event->handle != watch)
-			continue;
-		list_del(&event->list);
-		kfree(event);
+	if (watch->nr_pending) {
+		list_for_each_entry_safe(event, tmp, &watch_events, list) {
+			if (event->handle != watch)
+				continue;
+			list_del(&event->list);
+			kfree(event);
+		}
+		watch->nr_pending = 0;
 	}
 	spin_unlock(&watch_events_lock);
 
@@ -862,7 +874,6 @@
 
 static int xenwatch_thread(void *unused)
 {
-	struct list_head *ent;
 	struct xs_watch_event *event;
 
 	xenwatch_pid = current->pid;
@@ -877,13 +888,15 @@
 		mutex_lock(&xenwatch_mutex);
 
 		spin_lock(&watch_events_lock);
-		ent = watch_events.next;
-		if (ent != &watch_events)
-			list_del(ent);
+		event = list_first_entry_or_null(&watch_events,
+				struct xs_watch_event, list);
+		if (event) {
+			list_del(&event->list);
+			event->handle->nr_pending--;
+		}
 		spin_unlock(&watch_events_lock);
 
-		if (ent != &watch_events) {
-			event = list_entry(ent, struct xs_watch_event, list);
+		if (event) {
 			event->handle->callback(event->handle, event->path,
 						event->token);
 			kfree(event);
--- linux-gkeop-5.4-5.4.0.orig/dropped.txt
+++ linux-gkeop-5.4-5.4.0/dropped.txt
@@ -0,0 +1,7 @@
+This is the list of patches/features which have been temporarily
+reverted or disabled for EE:
+
+UBUNTU: SAUCE: nvme: add quirk to not call disable function when suspending
+UBUNTU: SAUCE: pci/nvme: prevent WDC PC SN720 NVMe from entering D3 and being disabled
+UBUNTU: SAUCE: drm/i915: Add support for retrying hotplug
+UBUNTU: SAUCE: drm/i915: Enable hotplug retry
--- linux-gkeop-5.4-5.4.0.orig/fs/9p/v9fs.c
+++ linux-gkeop-5.4-5.4.0/fs/9p/v9fs.c
@@ -500,10 +500,9 @@
 	}
 
 #ifdef CONFIG_9P_FSCACHE
-	if (v9ses->fscache) {
+	if (v9ses->fscache)
 		v9fs_cache_session_put_cookie(v9ses);
-		kfree(v9ses->cachetag);
-	}
+	kfree(v9ses->cachetag);
 #endif
 	kfree(v9ses->uname);
 	kfree(v9ses->aname);
--- linux-gkeop-5.4-5.4.0.orig/fs/9p/vfs_file.c
+++ linux-gkeop-5.4-5.4.0/fs/9p/vfs_file.c
@@ -609,9 +609,9 @@
 	struct writeback_control wbc = {
 		.nr_to_write = LONG_MAX,
 		.sync_mode = WB_SYNC_ALL,
-		.range_start = vma->vm_pgoff * PAGE_SIZE,
+		.range_start = (loff_t)vma->vm_pgoff * PAGE_SIZE,
 		 /* absolute end, byte at end included */
-		.range_end = vma->vm_pgoff * PAGE_SIZE +
+		.range_end = (loff_t)vma->vm_pgoff * PAGE_SIZE +
 			(vma->vm_end - vma->vm_start - 1),
 	};
 
--- linux-gkeop-5.4-5.4.0.orig/fs/Kconfig
+++ linux-gkeop-5.4-5.4.0/fs/Kconfig
@@ -122,6 +122,24 @@
 source "fs/fuse/Kconfig"
 source "fs/overlayfs/Kconfig"
 
+config SHIFT_FS
+	tristate "UID/GID shifting overlay filesystem for containers"
+	help
+	  This filesystem can overlay any mounted filesystem and shift
+	  the uid/gid the files appear at.  The idea is that
+	  unprivileged containers can use this to mount root volumes
+	  using this technique.
+
+config SHIFT_FS_POSIX_ACL
+	bool "shiftfs POSIX Access Control Lists"
+	depends on SHIFT_FS
+	select FS_POSIX_ACL
+	help
+	  POSIX Access Control Lists (ACLs) support permissions for users and
+	  groups beyond the owner/group/world scheme.
+
+	  If you don't know what Access Control Lists are, say N.
+
 menu "Caches"
 
 source "fs/fscache/Kconfig"
@@ -264,6 +282,7 @@
 source "fs/sysv/Kconfig"
 source "fs/ufs/Kconfig"
 source "fs/erofs/Kconfig"
+source "fs/aufs/Kconfig"
 
 endif # MISC_FILESYSTEMS
 
--- linux-gkeop-5.4-5.4.0.orig/fs/Makefile
+++ linux-gkeop-5.4-5.4.0/fs/Makefile
@@ -132,3 +132,5 @@
 obj-$(CONFIG_PSTORE)		+= pstore/
 obj-$(CONFIG_EFIVAR_FS)		+= efivarfs/
 obj-$(CONFIG_EROFS_FS)		+= erofs/
+obj-$(CONFIG_SHIFT_FS)		+= shiftfs.o
+obj-$(CONFIG_AUFS_FS)           += aufs/
--- linux-gkeop-5.4-5.4.0.orig/fs/affs/amigaffs.c
+++ linux-gkeop-5.4-5.4.0/fs/affs/amigaffs.c
@@ -420,24 +420,51 @@
 	u32 prot = AFFS_I(inode)->i_protect;
 	umode_t mode = inode->i_mode;
 
+	/*
+	 * First, clear all RWED bits for owner, group, other.
+	 * Then, recalculate them afresh.
+	 *
+	 * We'll always clear the delete-inhibit bit for the owner, as that is
+	 * the classic single-user mode AmigaOS protection bit and we need to
+	 * stay compatible with all scenarios.
+	 *
+	 * Since multi-user AmigaOS is an extension, we'll only set the
+	 * delete-allow bit if any of the other bits in the same user class
+	 * (group/other) are used.
+	 */
+	prot &= ~(FIBF_NOEXECUTE | FIBF_NOREAD
+		  | FIBF_NOWRITE | FIBF_NODELETE
+		  | FIBF_GRP_EXECUTE | FIBF_GRP_READ
+		  | FIBF_GRP_WRITE   | FIBF_GRP_DELETE
+		  | FIBF_OTR_EXECUTE | FIBF_OTR_READ
+		  | FIBF_OTR_WRITE   | FIBF_OTR_DELETE);
+
+	/* Classic single-user AmigaOS flags. These are inverted. */
 	if (!(mode & 0100))
 		prot |= FIBF_NOEXECUTE;
 	if (!(mode & 0400))
 		prot |= FIBF_NOREAD;
 	if (!(mode & 0200))
 		prot |= FIBF_NOWRITE;
+
+	/* Multi-user extended flags. Not inverted. */
 	if (mode & 0010)
 		prot |= FIBF_GRP_EXECUTE;
 	if (mode & 0040)
 		prot |= FIBF_GRP_READ;
 	if (mode & 0020)
 		prot |= FIBF_GRP_WRITE;
+	if (mode & 0070)
+		prot |= FIBF_GRP_DELETE;
+
 	if (mode & 0001)
 		prot |= FIBF_OTR_EXECUTE;
 	if (mode & 0004)
 		prot |= FIBF_OTR_READ;
 	if (mode & 0002)
 		prot |= FIBF_OTR_WRITE;
+	if (mode & 0007)
+		prot |= FIBF_OTR_DELETE;
 
 	AFFS_I(inode)->i_protect = prot;
 }
--- linux-gkeop-5.4-5.4.0.orig/fs/affs/file.c
+++ linux-gkeop-5.4-5.4.0/fs/affs/file.c
@@ -428,6 +428,24 @@
 	return ret;
 }
 
+static int affs_write_end(struct file *file, struct address_space *mapping,
+			  loff_t pos, unsigned int len, unsigned int copied,
+			  struct page *page, void *fsdata)
+{
+	struct inode *inode = mapping->host;
+	int ret;
+
+	ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata);
+
+	/* Clear Archived bit on file writes, as AmigaOS would do */
+	if (AFFS_I(inode)->i_protect & FIBF_ARCHIVED) {
+		AFFS_I(inode)->i_protect &= ~FIBF_ARCHIVED;
+		mark_inode_dirty(inode);
+	}
+
+	return ret;
+}
+
 static sector_t _affs_bmap(struct address_space *mapping, sector_t block)
 {
 	return generic_block_bmap(mapping,block,affs_get_block);
@@ -437,7 +455,7 @@
 	.readpage = affs_readpage,
 	.writepage = affs_writepage,
 	.write_begin = affs_write_begin,
-	.write_end = generic_write_end,
+	.write_end = affs_write_end,
 	.direct_IO = affs_direct_IO,
 	.bmap = _affs_bmap
 };
@@ -794,6 +812,12 @@
 	if (tmp > inode->i_size)
 		inode->i_size = AFFS_I(inode)->mmu_private = tmp;
 
+	/* Clear Archived bit on file writes, as AmigaOS would do */
+	if (AFFS_I(inode)->i_protect & FIBF_ARCHIVED) {
+		AFFS_I(inode)->i_protect &= ~FIBF_ARCHIVED;
+		mark_inode_dirty(inode);
+	}
+
 err_first_bh:
 	unlock_page(page);
 	put_page(page);
--- linux-gkeop-5.4-5.4.0.orig/fs/affs/namei.c
+++ linux-gkeop-5.4-5.4.0/fs/affs/namei.c
@@ -460,8 +460,10 @@
 		return -EIO;
 
 	bh_new = affs_bread(sb, d_inode(new_dentry)->i_ino);
-	if (!bh_new)
+	if (!bh_new) {
+		affs_brelse(bh_old);
 		return -EIO;
+	}
 
 	/* Remove old header from its parent directory. */
 	affs_lock_dir(old_dir);
--- linux-gkeop-5.4-5.4.0.orig/fs/affs/super.c
+++ linux-gkeop-5.4-5.4.0/fs/affs/super.c
@@ -561,14 +561,9 @@
 	int			 root_block;
 	unsigned long		 mount_flags;
 	int			 res = 0;
-	char			*new_opts;
 	char			 volume[32];
 	char			*prefix = NULL;
 
-	new_opts = kstrdup(data, GFP_KERNEL);
-	if (data && !new_opts)
-		return -ENOMEM;
-
 	pr_debug("%s(flags=0x%x,opts=\"%s\")\n", __func__, *flags, data);
 
 	sync_filesystem(sb);
@@ -579,7 +574,6 @@
 			   &blocksize, &prefix, volume,
 			   &mount_flags)) {
 		kfree(prefix);
-		kfree(new_opts);
 		return -EINVAL;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/cell.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/cell.c
@@ -134,8 +134,17 @@
 		_leave(" = -ENAMETOOLONG");
 		return ERR_PTR(-ENAMETOOLONG);
 	}
-	if (namelen == 5 && memcmp(name, "@cell", 5) == 0)
+
+	/* Prohibit cell names that contain unprintable chars, '/' and '@' or
+	 * that begin with a dot.  This also precludes "@cell".
+	 */
+	if (name[0] == '.')
 		return ERR_PTR(-EINVAL);
+	for (i = 0; i < namelen; i++) {
+		char ch = name[i];
+		if (!isprint(ch) || ch == '/' || ch == '@')
+			return ERR_PTR(-EINVAL);
+	}
 
 	_enter("%*.*s,%s", namelen, namelen, name, addresses);
 
@@ -145,10 +154,17 @@
 		return ERR_PTR(-ENOMEM);
 	}
 
+	cell->name = kmalloc(namelen + 1, GFP_KERNEL);
+	if (!cell->name) {
+		kfree(cell);
+		return ERR_PTR(-ENOMEM);
+	}
+
 	cell->net = net;
 	cell->name_len = namelen;
 	for (i = 0; i < namelen; i++)
 		cell->name[i] = tolower(name[i]);
+	cell->name[i] = 0;
 
 	atomic_set(&cell->usage, 2);
 	INIT_WORK(&cell->manager, afs_manage_cell);
@@ -194,6 +210,7 @@
 	if (ret == -EINVAL)
 		printk(KERN_ERR "kAFS: bad VL server IP address\n");
 error:
+	kfree(cell->name);
 	kfree(cell);
 	_leave(" = %d", ret);
 	return ERR_PTR(ret);
@@ -474,6 +491,7 @@
 
 	afs_put_vlserverlist(cell->net, rcu_access_pointer(cell->vl_servers));
 	key_put(cell->anonymous_key);
+	kfree(cell->name);
 	kfree(cell);
 
 	_leave(" [destroyed]");
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/cmservice.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/cmservice.c
@@ -169,7 +169,7 @@
 
 	spin_lock(&server->probe_lock);
 
-	if (!test_bit(AFS_SERVER_FL_HAVE_EPOCH, &server->flags)) {
+	if (!test_and_set_bit(AFS_SERVER_FL_HAVE_EPOCH, &server->flags)) {
 		server->cm_epoch = call->epoch;
 		server->probe.cm_epoch = call->epoch;
 		goto out;
@@ -244,6 +244,17 @@
 }
 
 /*
+ * Abort a service call from within an action function.
+ */
+static void afs_abort_service_call(struct afs_call *call, u32 abort_code, int error,
+				   const char *why)
+{
+	rxrpc_kernel_abort_call(call->net->socket, call->rxcall,
+				abort_code, error, why);
+	afs_set_call_complete(call, error, 0);
+}
+
+/*
  * The server supplied a list of callbacks that it wanted to break.
  */
 static void SRXAFSCB_CallBack(struct work_struct *work)
@@ -510,8 +521,7 @@
 	if (memcmp(r, &call->net->uuid, sizeof(call->net->uuid)) == 0)
 		afs_send_empty_reply(call);
 	else
-		rxrpc_kernel_abort_call(call->net->socket, call->rxcall,
-					1, 1, "K-1");
+		afs_abort_service_call(call, 1, 1, "K-1");
 
 	afs_put_call(call);
 	_leave("");
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/dir.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/dir.c
@@ -658,7 +658,8 @@
 
 	cookie->ctx.actor = afs_lookup_filldir;
 	cookie->name = dentry->d_name;
-	cookie->nr_fids = 1; /* slot 0 is saved for the fid we actually want */
+	cookie->nr_fids = 2; /* slot 0 is saved for the fid we actually want
+			      * and slot 1 for the directory */
 
 	read_seqlock_excl(&dvnode->cb_lock);
 	dcbi = rcu_dereference_protected(dvnode->cb_interest,
@@ -709,7 +710,11 @@
 	if (!cookie->inodes)
 		goto out_s;
 
-	for (i = 1; i < cookie->nr_fids; i++) {
+	cookie->fids[1] = dvnode->fid;
+	cookie->statuses[1].cb_break = afs_calc_vnode_cb_break(dvnode);
+	cookie->inodes[1] = igrab(&dvnode->vfs_inode);
+
+	for (i = 2; i < cookie->nr_fids; i++) {
 		scb = &cookie->statuses[i];
 
 		/* Find any inodes that already exist and get their
@@ -908,6 +913,7 @@
 				 unsigned int flags)
 {
 	struct afs_vnode *dvnode = AFS_FS_I(dir);
+	struct afs_fid fid = {};
 	struct inode *inode;
 	struct dentry *d;
 	struct key *key;
@@ -951,21 +957,18 @@
 	afs_stat_v(dvnode, n_lookup);
 	inode = afs_do_lookup(dir, dentry, key);
 	key_put(key);
-	if (inode == ERR_PTR(-ENOENT)) {
+	if (inode == ERR_PTR(-ENOENT))
 		inode = afs_try_auto_mntpt(dentry, dir);
-	} else {
-		dentry->d_fsdata =
-			(void *)(unsigned long)dvnode->status.data_version;
-	}
+
+	if (!IS_ERR_OR_NULL(inode))
+		fid = AFS_FS_I(inode)->fid;
+
 	d = d_splice_alias(inode, dentry);
 	if (!IS_ERR_OR_NULL(d)) {
 		d->d_fsdata = dentry->d_fsdata;
-		trace_afs_lookup(dvnode, &d->d_name,
-				 inode ? AFS_FS_I(inode) : NULL);
+		trace_afs_lookup(dvnode, &d->d_name, &fid);
 	} else {
-		trace_afs_lookup(dvnode, &dentry->d_name,
-				 IS_ERR_OR_NULL(inode) ? NULL
-				 : AFS_FS_I(inode));
+		trace_afs_lookup(dvnode, &dentry->d_name, &fid);
 	}
 	return d;
 }
@@ -1034,7 +1037,7 @@
 	struct dentry *parent;
 	struct inode *inode;
 	struct key *key;
-	afs_dataversion_t dir_version;
+	afs_dataversion_t dir_version, invalid_before;
 	long de_version;
 	int ret;
 
@@ -1086,8 +1089,8 @@
 	if (de_version == (long)dir_version)
 		goto out_valid_noupdate;
 
-	dir_version = dir->invalid_before;
-	if (de_version - (long)dir_version >= 0)
+	invalid_before = dir->invalid_before;
+	if (de_version - (long)invalid_before >= 0)
 		goto out_valid;
 
 	_debug("dir modified");
@@ -1277,6 +1280,7 @@
 	struct afs_fs_cursor fc;
 	struct afs_vnode *dvnode = AFS_FS_I(dir);
 	struct key *key;
+	afs_dataversion_t data_version;
 	int ret;
 
 	mode |= S_IFDIR;
@@ -1297,7 +1301,7 @@
 
 	ret = -ERESTARTSYS;
 	if (afs_begin_vnode_operation(&fc, dvnode, key, true)) {
-		afs_dataversion_t data_version = dvnode->status.data_version + 1;
+		data_version = dvnode->status.data_version + 1;
 
 		while (afs_select_fileserver(&fc)) {
 			fc.cb_break = afs_calc_vnode_cb_break(dvnode);
@@ -1318,10 +1322,14 @@
 		goto error_key;
 	}
 
-	if (ret == 0 &&
-	    test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
-		afs_edit_dir_add(dvnode, &dentry->d_name, &iget_data.fid,
-				 afs_edit_dir_for_create);
+	if (ret == 0) {
+		down_write(&dvnode->validate_lock);
+		if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+		    dvnode->status.data_version == data_version)
+			afs_edit_dir_add(dvnode, &dentry->d_name, &iget_data.fid,
+					 afs_edit_dir_for_create);
+		up_write(&dvnode->validate_lock);
+	}
 
 	key_put(key);
 	kfree(scb);
@@ -1362,6 +1370,7 @@
 	struct afs_fs_cursor fc;
 	struct afs_vnode *dvnode = AFS_FS_I(dir), *vnode = NULL;
 	struct key *key;
+	afs_dataversion_t data_version;
 	int ret;
 
 	_enter("{%llx:%llu},{%pd}",
@@ -1393,7 +1402,7 @@
 
 	ret = -ERESTARTSYS;
 	if (afs_begin_vnode_operation(&fc, dvnode, key, true)) {
-		afs_dataversion_t data_version = dvnode->status.data_version + 1;
+		data_version = dvnode->status.data_version + 1;
 
 		while (afs_select_fileserver(&fc)) {
 			fc.cb_break = afs_calc_vnode_cb_break(dvnode);
@@ -1406,9 +1415,12 @@
 		ret = afs_end_vnode_operation(&fc);
 		if (ret == 0) {
 			afs_dir_remove_subdir(dentry);
-			if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
+			down_write(&dvnode->validate_lock);
+			if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+			    dvnode->status.data_version == data_version)
 				afs_edit_dir_remove(dvnode, &dentry->d_name,
 						    afs_edit_dir_for_rmdir);
+			up_write(&dvnode->validate_lock);
 		}
 	}
 
@@ -1546,10 +1558,15 @@
 		ret = afs_end_vnode_operation(&fc);
 		if (ret == 0 && !(scb[1].have_status || scb[1].have_error))
 			ret = afs_dir_remove_link(dvnode, dentry, key);
-		if (ret == 0 &&
-		    test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
-			afs_edit_dir_remove(dvnode, &dentry->d_name,
-					    afs_edit_dir_for_unlink);
+
+		if (ret == 0) {
+			down_write(&dvnode->validate_lock);
+			if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+			    dvnode->status.data_version == data_version)
+				afs_edit_dir_remove(dvnode, &dentry->d_name,
+						    afs_edit_dir_for_unlink);
+			up_write(&dvnode->validate_lock);
+		}
 	}
 
 	if (need_rehash && ret < 0 && ret != -ENOENT)
@@ -1575,6 +1592,7 @@
 	struct afs_status_cb *scb;
 	struct afs_vnode *dvnode = AFS_FS_I(dir);
 	struct key *key;
+	afs_dataversion_t data_version;
 	int ret;
 
 	mode |= S_IFREG;
@@ -1599,7 +1617,7 @@
 
 	ret = -ERESTARTSYS;
 	if (afs_begin_vnode_operation(&fc, dvnode, key, true)) {
-		afs_dataversion_t data_version = dvnode->status.data_version + 1;
+		data_version = dvnode->status.data_version + 1;
 
 		while (afs_select_fileserver(&fc)) {
 			fc.cb_break = afs_calc_vnode_cb_break(dvnode);
@@ -1620,9 +1638,12 @@
 		goto error_key;
 	}
 
-	if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
+	down_write(&dvnode->validate_lock);
+	if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+	    dvnode->status.data_version == data_version)
 		afs_edit_dir_add(dvnode, &dentry->d_name, &iget_data.fid,
 				 afs_edit_dir_for_create);
+	up_write(&dvnode->validate_lock);
 
 	kfree(scb);
 	key_put(key);
@@ -1650,6 +1671,7 @@
 	struct afs_vnode *dvnode = AFS_FS_I(dir);
 	struct afs_vnode *vnode = AFS_FS_I(d_inode(from));
 	struct key *key;
+	afs_dataversion_t data_version;
 	int ret;
 
 	_enter("{%llx:%llu},{%llx:%llu},{%pd}",
@@ -1674,7 +1696,7 @@
 
 	ret = -ERESTARTSYS;
 	if (afs_begin_vnode_operation(&fc, dvnode, key, true)) {
-		afs_dataversion_t data_version = dvnode->status.data_version + 1;
+		data_version = dvnode->status.data_version + 1;
 
 		if (mutex_lock_interruptible_nested(&vnode->io_lock, 1) < 0) {
 			afs_end_vnode_operation(&fc);
@@ -1704,9 +1726,12 @@
 		goto error_key;
 	}
 
-	if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
+	down_write(&dvnode->validate_lock);
+	if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+	    dvnode->status.data_version == data_version)
 		afs_edit_dir_add(dvnode, &dentry->d_name, &vnode->fid,
 				 afs_edit_dir_for_link);
+	up_write(&dvnode->validate_lock);
 
 	key_put(key);
 	kfree(scb);
@@ -1734,6 +1759,7 @@
 	struct afs_status_cb *scb;
 	struct afs_vnode *dvnode = AFS_FS_I(dir);
 	struct key *key;
+	afs_dataversion_t data_version;
 	int ret;
 
 	_enter("{%llx:%llu},{%pd},%s",
@@ -1761,7 +1787,7 @@
 
 	ret = -ERESTARTSYS;
 	if (afs_begin_vnode_operation(&fc, dvnode, key, true)) {
-		afs_dataversion_t data_version = dvnode->status.data_version + 1;
+		data_version = dvnode->status.data_version + 1;
 
 		while (afs_select_fileserver(&fc)) {
 			fc.cb_break = afs_calc_vnode_cb_break(dvnode);
@@ -1782,9 +1808,12 @@
 		goto error_key;
 	}
 
-	if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
+	down_write(&dvnode->validate_lock);
+	if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+	    dvnode->status.data_version == data_version)
 		afs_edit_dir_add(dvnode, &dentry->d_name, &iget_data.fid,
 				 afs_edit_dir_for_symlink);
+	up_write(&dvnode->validate_lock);
 
 	key_put(key);
 	kfree(scb);
@@ -1814,6 +1843,8 @@
 	struct dentry *tmp = NULL, *rehash = NULL;
 	struct inode *new_inode;
 	struct key *key;
+	afs_dataversion_t orig_data_version;
+	afs_dataversion_t new_data_version;
 	bool new_negative = d_is_negative(new_dentry);
 	int ret;
 
@@ -1892,10 +1923,6 @@
 
 	ret = -ERESTARTSYS;
 	if (afs_begin_vnode_operation(&fc, orig_dvnode, key, true)) {
-		afs_dataversion_t orig_data_version;
-		afs_dataversion_t new_data_version;
-		struct afs_status_cb *new_scb = &scb[1];
-
 		orig_data_version = orig_dvnode->status.data_version + 1;
 
 		if (orig_dvnode != new_dvnode) {
@@ -1906,7 +1933,6 @@
 			new_data_version = new_dvnode->status.data_version + 1;
 		} else {
 			new_data_version = orig_data_version;
-			new_scb = &scb[0];
 		}
 
 		while (afs_select_fileserver(&fc)) {
@@ -1914,7 +1940,7 @@
 			fc.cb_break_2 = afs_calc_vnode_cb_break(new_dvnode);
 			afs_fs_rename(&fc, old_dentry->d_name.name,
 				      new_dvnode, new_dentry->d_name.name,
-				      &scb[0], new_scb);
+				      &scb[0], &scb[1]);
 		}
 
 		afs_vnode_commit_status(&fc, orig_dvnode, fc.cb_break,
@@ -1932,18 +1958,25 @@
 	if (ret == 0) {
 		if (rehash)
 			d_rehash(rehash);
-		if (test_bit(AFS_VNODE_DIR_VALID, &orig_dvnode->flags))
-		    afs_edit_dir_remove(orig_dvnode, &old_dentry->d_name,
-					afs_edit_dir_for_rename_0);
-
-		if (!new_negative &&
-		    test_bit(AFS_VNODE_DIR_VALID, &new_dvnode->flags))
-			afs_edit_dir_remove(new_dvnode, &new_dentry->d_name,
-					    afs_edit_dir_for_rename_1);
+		down_write(&orig_dvnode->validate_lock);
+		if (test_bit(AFS_VNODE_DIR_VALID, &orig_dvnode->flags) &&
+		    orig_dvnode->status.data_version == orig_data_version)
+			afs_edit_dir_remove(orig_dvnode, &old_dentry->d_name,
+					    afs_edit_dir_for_rename_0);
+		if (orig_dvnode != new_dvnode) {
+			up_write(&orig_dvnode->validate_lock);
+
+			down_write(&new_dvnode->validate_lock);
+		}
+		if (test_bit(AFS_VNODE_DIR_VALID, &new_dvnode->flags) &&
+		    orig_dvnode->status.data_version == new_data_version) {
+			if (!new_negative)
+				afs_edit_dir_remove(new_dvnode, &new_dentry->d_name,
+						    afs_edit_dir_for_rename_1);
 
-		if (test_bit(AFS_VNODE_DIR_VALID, &new_dvnode->flags))
 			afs_edit_dir_add(new_dvnode, &new_dentry->d_name,
 					 &vnode->fid, afs_edit_dir_for_rename_2);
+		}
 
 		new_inode = d_inode(new_dentry);
 		if (new_inode) {
@@ -1959,14 +1992,10 @@
 		 * Note that if we ever implement RENAME_EXCHANGE, we'll have
 		 * to update both dentries with opposing dir versions.
 		 */
-		if (new_dvnode != orig_dvnode) {
-			afs_update_dentry_version(&fc, old_dentry, &scb[1]);
-			afs_update_dentry_version(&fc, new_dentry, &scb[1]);
-		} else {
-			afs_update_dentry_version(&fc, old_dentry, &scb[0]);
-			afs_update_dentry_version(&fc, new_dentry, &scb[0]);
-		}
+		afs_update_dentry_version(&fc, old_dentry, &scb[1]);
+		afs_update_dentry_version(&fc, new_dentry, &scb[1]);
 		d_move(old_dentry, new_dentry);
+		up_write(&new_dvnode->validate_lock);
 		goto error_tmp;
 	}
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/dir_edit.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/dir_edit.c
@@ -68,13 +68,11 @@
 static void afs_set_contig_bits(union afs_xdr_dir_block *block,
 				int bit, unsigned int nr_slots)
 {
-	u64 mask, before, after;
+	u64 mask;
 
 	mask = (1 << nr_slots) - 1;
 	mask <<= bit;
 
-	before = *(u64 *)block->hdr.bitmap;
-
 	block->hdr.bitmap[0] |= (u8)(mask >> 0 * 8);
 	block->hdr.bitmap[1] |= (u8)(mask >> 1 * 8);
 	block->hdr.bitmap[2] |= (u8)(mask >> 2 * 8);
@@ -83,8 +81,6 @@
 	block->hdr.bitmap[5] |= (u8)(mask >> 5 * 8);
 	block->hdr.bitmap[6] |= (u8)(mask >> 6 * 8);
 	block->hdr.bitmap[7] |= (u8)(mask >> 7 * 8);
-
-	after = *(u64 *)block->hdr.bitmap;
 }
 
 /*
@@ -93,13 +89,11 @@
 static void afs_clear_contig_bits(union afs_xdr_dir_block *block,
 				  int bit, unsigned int nr_slots)
 {
-	u64 mask, before, after;
+	u64 mask;
 
 	mask = (1 << nr_slots) - 1;
 	mask <<= bit;
 
-	before = *(u64 *)block->hdr.bitmap;
-
 	block->hdr.bitmap[0] &= ~(u8)(mask >> 0 * 8);
 	block->hdr.bitmap[1] &= ~(u8)(mask >> 1 * 8);
 	block->hdr.bitmap[2] &= ~(u8)(mask >> 2 * 8);
@@ -108,8 +102,6 @@
 	block->hdr.bitmap[5] &= ~(u8)(mask >> 5 * 8);
 	block->hdr.bitmap[6] &= ~(u8)(mask >> 6 * 8);
 	block->hdr.bitmap[7] &= ~(u8)(mask >> 7 * 8);
-
-	after = *(u64 *)block->hdr.bitmap;
 }
 
 /*
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/dir_silly.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/dir_silly.c
@@ -21,6 +21,7 @@
 {
 	struct afs_fs_cursor fc;
 	struct afs_status_cb *scb;
+	afs_dataversion_t dir_data_version;
 	int ret = -ERESTARTSYS;
 
 	_enter("%pd,%pd", old, new);
@@ -31,7 +32,7 @@
 
 	trace_afs_silly_rename(vnode, false);
 	if (afs_begin_vnode_operation(&fc, dvnode, key, true)) {
-		afs_dataversion_t dir_data_version = dvnode->status.data_version + 1;
+		dir_data_version = dvnode->status.data_version + 1;
 
 		while (afs_select_fileserver(&fc)) {
 			fc.cb_break = afs_calc_vnode_cb_break(dvnode);
@@ -54,12 +55,15 @@
 			dvnode->silly_key = key_get(key);
 		}
 
-		if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
+		down_write(&dvnode->validate_lock);
+		if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+		    dvnode->status.data_version == dir_data_version) {
 			afs_edit_dir_remove(dvnode, &old->d_name,
 					    afs_edit_dir_for_silly_0);
-		if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
 			afs_edit_dir_add(dvnode, &new->d_name,
 					 &vnode->fid, afs_edit_dir_for_silly_1);
+		}
+		up_write(&dvnode->validate_lock);
 	}
 
 	kfree(scb);
@@ -181,10 +185,14 @@
 				clear_bit(AFS_VNODE_CB_PROMISED, &vnode->flags);
 			}
 		}
-		if (ret == 0 &&
-		    test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
-			afs_edit_dir_remove(dvnode, &dentry->d_name,
-					    afs_edit_dir_for_unlink);
+		if (ret == 0) {
+			down_write(&dvnode->validate_lock);
+			if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
+			    dvnode->status.data_version == dir_data_version)
+				afs_edit_dir_remove(dvnode, &dentry->d_name,
+						    afs_edit_dir_for_unlink);
+			up_write(&dvnode->validate_lock);
+		}
 	}
 
 	kfree(scb);
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/dynroot.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/dynroot.c
@@ -136,6 +136,9 @@
 
 	ASSERTCMP(d_inode(dentry), ==, NULL);
 
+	if (flags & LOOKUP_CREATE)
+		return ERR_PTR(-EOPNOTSUPP);
+
 	if (dentry->d_name.len >= AFSNAMEMAX) {
 		_leave(" = -ENAMETOOLONG");
 		return ERR_PTR(-ENAMETOOLONG);
@@ -286,15 +289,17 @@
 		net->dynroot_sb = NULL;
 	mutex_unlock(&net->proc_cells_lock);
 
-	inode_lock(root->d_inode);
+	if (root) {
+		inode_lock(root->d_inode);
 
-	/* Remove all the pins for dirs created for manually added cells */
-	list_for_each_entry_safe(subdir, tmp, &root->d_subdirs, d_child) {
-		if (subdir->d_fsdata) {
-			subdir->d_fsdata = NULL;
-			dput(subdir);
+		/* Remove all the pins for dirs created for manually added cells */
+		list_for_each_entry_safe(subdir, tmp, &root->d_subdirs, d_child) {
+			if (subdir->d_fsdata) {
+				subdir->d_fsdata = NULL;
+				dput(subdir);
+			}
 		}
-	}
 
-	inode_unlock(root->d_inode);
+		inode_unlock(root->d_inode);
+	}
 }
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/fs_probe.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/fs_probe.c
@@ -32,9 +32,8 @@
 	struct afs_server *server = call->server;
 	unsigned int server_index = call->server_index;
 	unsigned int index = call->addr_ix;
-	unsigned int rtt = UINT_MAX;
+	unsigned int rtt_us;
 	bool have_result = false;
-	u64 _rtt;
 	int ret = call->error;
 
 	_enter("%pU,%u", &server->uuid, index);
@@ -93,15 +92,9 @@
 		}
 	}
 
-	/* Get the RTT and scale it to fit into a 32-bit value that represents
-	 * over a minute of time so that we can access it with one instruction
-	 * on a 32-bit system.
-	 */
-	_rtt = rxrpc_kernel_get_rtt(call->net->socket, call->rxcall);
-	_rtt /= 64;
-	rtt = (_rtt > UINT_MAX) ? UINT_MAX : _rtt;
-	if (rtt < server->probe.rtt) {
-		server->probe.rtt = rtt;
+	if (rxrpc_kernel_get_srtt(call->net->socket, call->rxcall, &rtt_us) &&
+	    rtt_us < server->probe.rtt) {
+		server->probe.rtt = rtt_us;
 		alist->preferred = index;
 		have_result = true;
 	}
@@ -113,8 +106,7 @@
 	spin_unlock(&server->probe_lock);
 
 	_debug("probe [%u][%u] %pISpc rtt=%u ret=%d",
-	       server_index, index, &alist->addrs[index].transport,
-	       (unsigned int)rtt, ret);
+	       server_index, index, &alist->addrs[index].transport, rtt_us, ret);
 
 	have_result |= afs_fs_probe_done(server);
 	if (have_result) {
@@ -145,6 +137,7 @@
 	read_lock(&server->fs_lock);
 	ac.alist = rcu_dereference_protected(server->addresses,
 					     lockdep_is_held(&server->fs_lock));
+	afs_get_addrlist(ac.alist);
 	read_unlock(&server->fs_lock);
 
 	atomic_set(&server->probe_outstanding, ac.alist->nr_addrs);
@@ -163,6 +156,7 @@
 
 	if (!in_progress)
 		afs_fs_probe_done(server);
+	afs_put_addrlist(ac.alist);
 	return in_progress;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/fsclient.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/fsclient.c
@@ -56,9 +56,9 @@
 /*
  * decode an AFSFetchStatus block
  */
-static int xdr_decode_AFSFetchStatus(const __be32 **_bp,
-				     struct afs_call *call,
-				     struct afs_status_cb *scb)
+static void xdr_decode_AFSFetchStatus(const __be32 **_bp,
+				      struct afs_call *call,
+				      struct afs_status_cb *scb)
 {
 	const struct afs_xdr_AFSFetchStatus *xdr = (const void *)*_bp;
 	struct afs_file_status *status = &scb->status;
@@ -78,7 +78,7 @@
 			 */
 			status->abort_code = abort_code;
 			scb->have_error = true;
-			return 0;
+			goto advance;
 		}
 
 		pr_warn("Unknown AFSFetchStatus version %u\n", ntohl(xdr->if_version));
@@ -87,7 +87,8 @@
 
 	if (abort_code != 0 && inline_error) {
 		status->abort_code = abort_code;
-		return 0;
+		scb->have_error = true;
+		goto advance;
 	}
 
 	type = ntohl(xdr->type);
@@ -123,13 +124,14 @@
 	data_version |= (u64)ntohl(xdr->data_version_hi) << 32;
 	status->data_version = data_version;
 	scb->have_status = true;
-
+advance:
 	*_bp = (const void *)*_bp + sizeof(*xdr);
-	return 0;
+	return;
 
 bad:
 	xdr_dump_bad(*_bp);
-	return afs_protocol_error(call, -EBADMSG, afs_eproto_bad_status);
+	afs_protocol_error(call, -EBADMSG, afs_eproto_bad_status);
+	goto advance;
 }
 
 static time64_t xdr_decode_expiry(struct afs_call *call, u32 expiry)
@@ -249,9 +251,7 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_AFSCallBack(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
@@ -380,8 +380,6 @@
 		ASSERTCMP(req->offset, <=, PAGE_SIZE);
 		if (req->offset == PAGE_SIZE) {
 			req->offset = 0;
-			if (req->page_done)
-				req->page_done(req);
 			req->index++;
 			if (req->remain > 0)
 				goto begin_page;
@@ -416,9 +414,7 @@
 			return ret;
 
 		bp = call->buffer;
-		ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-		if (ret < 0)
-			return ret;
+		xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 		xdr_decode_AFSCallBack(&bp, call, call->out_scb);
 		xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
@@ -435,11 +431,13 @@
 		if (req->offset < PAGE_SIZE)
 			zero_user_segment(req->pages[req->index],
 					  req->offset, PAGE_SIZE);
-		if (req->page_done)
-			req->page_done(req);
 		req->offset = 0;
 	}
 
+	if (req->page_done)
+		for (req->index = 0; req->index < req->nr_pages; req->index++)
+			req->page_done(req);
+
 	_leave(" = 0 [done]");
 	return 0;
 }
@@ -574,12 +572,8 @@
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
 	xdr_decode_AFSFid(&bp, call->out_fid);
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_AFSCallBack(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
@@ -688,9 +682,7 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -781,12 +773,8 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -875,12 +863,8 @@
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
 	xdr_decode_AFSFid(&bp, call->out_fid);
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -983,16 +967,12 @@
 	if (ret < 0)
 		return ret;
 
-	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
-	if (call->out_dir_scb != call->out_scb) {
-		ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-		if (ret < 0)
-			return ret;
-	}
+	/* If the two dirs are the same, we have two copies of the same status
+	 * report, so we just decode it twice.
+	 */
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_dir_scb);
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -1100,9 +1080,7 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -1280,9 +1258,7 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -1951,9 +1927,7 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_AFSCallBack(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
@@ -2059,10 +2033,7 @@
 
 		bp = call->buffer;
 		scb = &call->out_scb[call->count];
-		ret = xdr_decode_AFSFetchStatus(&bp, call, scb);
-		if (ret < 0)
-			return ret;
-
+		xdr_decode_AFSFetchStatus(&bp, call, scb);
 		call->count++;
 		if (call->count < call->count2)
 			goto more_counts;
@@ -2240,9 +2211,7 @@
 			return ret;
 
 		bp = call->buffer;
-		ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-		if (ret < 0)
-			return ret;
+		xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 		xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 		call->unmarshall++;
@@ -2323,9 +2292,7 @@
 		return ret;
 
 	bp = call->buffer;
-	ret = xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_AFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_AFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/inode.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/inode.c
@@ -171,6 +171,7 @@
 	struct timespec64 t;
 	umode_t mode;
 	bool data_changed = false;
+	bool change_size = false;
 
 	BUG_ON(test_bit(AFS_VNODE_UNSET, &vnode->flags));
 
@@ -226,6 +227,7 @@
 		} else {
 			set_bit(AFS_VNODE_ZAP_DATA, &vnode->flags);
 		}
+		change_size = true;
 	} else if (vnode->status.type == AFS_FTYPE_DIR) {
 		/* Expected directory change is handled elsewhere so
 		 * that we can locally edit the directory and save on a
@@ -233,11 +235,19 @@
 		 */
 		if (test_bit(AFS_VNODE_DIR_VALID, &vnode->flags))
 			data_changed = false;
+		change_size = true;
 	}
 
 	if (data_changed) {
 		inode_set_iversion_raw(&vnode->vfs_inode, status->data_version);
-		afs_set_i_size(vnode, status->size);
+
+		/* Only update the size if the data version jumped.  If the
+		 * file is being modified locally, then we might have our own
+		 * idea of what the size should be that's not the same as
+		 * what's on the server.
+		 */
+		if (change_size)
+			afs_set_i_size(vnode, status->size);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/internal.h
+++ linux-gkeop-5.4-5.4.0/fs/afs/internal.h
@@ -154,13 +154,14 @@
 	};
 	unsigned char		unmarshall;	/* unmarshalling phase */
 	unsigned char		addr_ix;	/* Address in ->alist */
-	bool			incoming;	/* T if incoming call */
+	bool			drop_ref;	/* T if need to drop ref for incoming call */
 	bool			send_pages;	/* T if data from mapping should be sent */
 	bool			need_attention;	/* T if RxRPC poked us */
 	bool			async;		/* T if asynchronous */
 	bool			upgrade;	/* T to request service upgrade */
 	bool			have_reply_time; /* T if have got reply_time */
 	bool			intr;		/* T if interruptible */
+	bool			unmarshalling_error; /* T if an unmarshalling error occurred */
 	u16			service_id;	/* Actual service ID (after upgrade) */
 	unsigned int		debug_id;	/* Trace ID */
 	u32			operation_ID;	/* operation ID for an incoming call */
@@ -396,7 +397,7 @@
 	struct afs_vlserver_list __rcu *vl_servers;
 
 	u8			name_len;	/* Length of name */
-	char			name[64 + 1];	/* Cell name, case-flattened and NUL-padded */
+	char			*name;		/* Cell name, case-flattened and NUL-padded */
 };
 
 /*
@@ -1203,8 +1204,16 @@
 		ok = true;
 	}
 	spin_unlock_bh(&call->state_lock);
-	if (ok)
+	if (ok) {
 		trace_afs_call_done(call);
+
+		/* Asynchronous calls have two refs to release - one from the alloc and
+		 * one queued with the work item - and we can't just deallocate the
+		 * call because the work item may be queued again.
+		 */
+		if (call->drop_ref)
+			afs_put_call(call);
+	}
 }
 
 /*
@@ -1321,7 +1330,7 @@
 extern void afs_activate_volume(struct afs_volume *);
 extern void afs_deactivate_volume(struct afs_volume *);
 extern void afs_put_volume(struct afs_cell *, struct afs_volume *);
-extern int afs_check_volume_status(struct afs_volume *, struct key *);
+extern int afs_check_volume_status(struct afs_volume *, struct afs_fs_cursor *);
 
 /*
  * write.c
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/main.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/main.c
@@ -186,7 +186,7 @@
 		goto error_cache;
 #endif
 
-	ret = register_pernet_subsys(&afs_net_ops);
+	ret = register_pernet_device(&afs_net_ops);
 	if (ret < 0)
 		goto error_net;
 
@@ -206,7 +206,7 @@
 error_proc:
 	afs_fs_exit();
 error_fs:
-	unregister_pernet_subsys(&afs_net_ops);
+	unregister_pernet_device(&afs_net_ops);
 error_net:
 #ifdef CONFIG_AFS_FSCACHE
 	fscache_unregister_netfs(&afs_cache_netfs);
@@ -237,7 +237,7 @@
 
 	proc_remove(afs_proc_symlink);
 	afs_fs_exit();
-	unregister_pernet_subsys(&afs_net_ops);
+	unregister_pernet_device(&afs_net_ops);
 #ifdef CONFIG_AFS_FSCACHE
 	fscache_unregister_netfs(&afs_cache_netfs);
 #endif
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/misc.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/misc.c
@@ -83,6 +83,7 @@
 	case UAENOLCK:			return -ENOLCK;
 	case UAENOTEMPTY:		return -ENOTEMPTY;
 	case UAELOOP:			return -ELOOP;
+	case UAEOVERFLOW:		return -EOVERFLOW;
 	case UAENOMEDIUM:		return -ENOMEDIUM;
 	case UAEDQUOT:			return -EDQUOT;
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/mntpt.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/mntpt.c
@@ -126,7 +126,7 @@
 		if (src_as->cell)
 			ctx->cell = afs_get_cell(src_as->cell);
 
-		if (size > PAGE_SIZE - 1)
+		if (size < 2 || size > PAGE_SIZE - 1)
 			return -EINVAL;
 
 		page = read_mapping_page(d_inode(mntpt)->i_mapping, 0, NULL);
@@ -140,7 +140,9 @@
 		}
 
 		buf = kmap(page);
-		ret = vfs_parse_fs_string(fc, "source", buf, size);
+		ret = -EINVAL;
+		if (buf[size - 1] == '.')
+			ret = vfs_parse_fs_string(fc, "source", buf, size - 1);
 		kunmap(page);
 		put_page(page);
 		if (ret < 0)
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/proc.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/proc.c
@@ -562,6 +562,7 @@
 			if (sysnames->subs[i] != afs_init_sysname &&
 			    sysnames->subs[i] != sysnames->blank)
 				kfree(sysnames->subs[i]);
+		kfree(sysnames);
 	}
 }
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/rotate.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/rotate.c
@@ -192,7 +192,7 @@
 			write_unlock(&vnode->volume->servers_lock);
 
 			set_bit(AFS_VOLUME_NEEDS_UPDATE, &vnode->volume->flags);
-			error = afs_check_volume_status(vnode->volume, fc->key);
+			error = afs_check_volume_status(vnode->volume, fc);
 			if (error < 0)
 				goto failed_set_error;
 
@@ -281,7 +281,7 @@
 
 			set_bit(AFS_VOLUME_WAIT, &vnode->volume->flags);
 			set_bit(AFS_VOLUME_NEEDS_UPDATE, &vnode->volume->flags);
-			error = afs_check_volume_status(vnode->volume, fc->key);
+			error = afs_check_volume_status(vnode->volume, fc);
 			if (error < 0)
 				goto failed_set_error;
 
@@ -341,7 +341,7 @@
 	/* See if we need to do an update of the volume record.  Note that the
 	 * volume may have moved or even have been deleted.
 	 */
-	error = afs_check_volume_status(vnode->volume, fc->key);
+	error = afs_check_volume_status(vnode->volume, fc);
 	if (error < 0)
 		goto failed_set_error;
 
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/rxrpc.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/rxrpc.c
@@ -18,7 +18,6 @@
 
 static void afs_wake_up_call_waiter(struct sock *, struct rxrpc_call *, unsigned long);
 static void afs_wake_up_async_call(struct sock *, struct rxrpc_call *, unsigned long);
-static void afs_delete_async_call(struct work_struct *);
 static void afs_process_async_call(struct work_struct *);
 static void afs_rx_new_call(struct sock *, struct rxrpc_call *, unsigned long);
 static void afs_rx_discard_new_call(struct rxrpc_call *, unsigned long);
@@ -169,7 +168,7 @@
 	int n = atomic_dec_return(&call->usage);
 	int o = atomic_read(&net->nr_outstanding_calls);
 
-	trace_afs_call(call, afs_call_trace_put, n + 1, o,
+	trace_afs_call(call, afs_call_trace_put, n, o,
 		       __builtin_return_address(0));
 
 	ASSERTCMP(n, >=, 0);
@@ -402,8 +401,10 @@
 	/* If the call is going to be asynchronous, we need an extra ref for
 	 * the call to hold itself so the caller need not hang on to its ref.
 	 */
-	if (call->async)
+	if (call->async) {
 		afs_get_call(call, afs_call_trace_get);
+		call->drop_ref = true;
+	}
 
 	/* create a call */
 	rxcall = rxrpc_kernel_begin_call(call->net->socket, srx, call->key,
@@ -413,7 +414,8 @@
 					  afs_wake_up_async_call :
 					  afs_wake_up_call_waiter),
 					 call->upgrade,
-					 call->intr,
+					 (call->intr ? RXRPC_PREINTERRUPTIBLE :
+					  RXRPC_UNINTERRUPTIBLE),
 					 call->debug_id);
 	if (IS_ERR(rxcall)) {
 		ret = PTR_ERR(rxcall);
@@ -538,6 +540,8 @@
 
 		ret = call->type->deliver(call);
 		state = READ_ONCE(call->state);
+		if (ret == 0 && call->unmarshalling_error)
+			ret = -EBADMSG;
 		switch (ret) {
 		case 0:
 			afs_queue_call_work(call);
@@ -584,8 +588,6 @@
 done:
 	if (call->type->done)
 		call->type->done(call);
-	if (state == AFS_CALL_COMPLETE && call->incoming)
-		afs_put_call(call);
 out:
 	_leave("");
 	return;
@@ -604,11 +606,7 @@
 long afs_wait_for_call_to_complete(struct afs_call *call,
 				   struct afs_addr_cursor *ac)
 {
-	signed long rtt2, timeout;
 	long ret;
-	bool stalled = false;
-	u64 rtt;
-	u32 life, last_life;
 	bool rxrpc_complete = false;
 
 	DECLARE_WAITQUEUE(myself, current);
@@ -619,14 +617,6 @@
 	if (ret < 0)
 		goto out;
 
-	rtt = rxrpc_kernel_get_rtt(call->net->socket, call->rxcall);
-	rtt2 = nsecs_to_jiffies64(rtt) * 2;
-	if (rtt2 < 2)
-		rtt2 = 2;
-
-	timeout = rtt2;
-	rxrpc_kernel_check_life(call->net->socket, call->rxcall, &last_life);
-
 	add_wait_queue(&call->waitq, &myself);
 	for (;;) {
 		set_current_state(TASK_UNINTERRUPTIBLE);
@@ -637,37 +627,19 @@
 			call->need_attention = false;
 			__set_current_state(TASK_RUNNING);
 			afs_deliver_to_call(call);
-			timeout = rtt2;
 			continue;
 		}
 
 		if (afs_check_call_state(call, AFS_CALL_COMPLETE))
 			break;
 
-		if (!rxrpc_kernel_check_life(call->net->socket, call->rxcall, &life)) {
+		if (!rxrpc_kernel_check_life(call->net->socket, call->rxcall)) {
 			/* rxrpc terminated the call. */
 			rxrpc_complete = true;
 			break;
 		}
 
-		if (call->intr && timeout == 0 &&
-		    life == last_life && signal_pending(current)) {
-			if (stalled)
-				break;
-			__set_current_state(TASK_RUNNING);
-			rxrpc_kernel_probe_life(call->net->socket, call->rxcall);
-			timeout = rtt2;
-			stalled = true;
-			continue;
-		}
-
-		if (life != last_life) {
-			timeout = rtt2;
-			last_life = life;
-			stalled = false;
-		}
-
-		timeout = schedule_timeout(timeout);
+		schedule();
 	}
 
 	remove_wait_queue(&call->waitq, &myself);
@@ -735,7 +707,7 @@
 
 	u = atomic_fetch_add_unless(&call->usage, 1, 0);
 	if (u != 0) {
-		trace_afs_call(call, afs_call_trace_wake, u,
+		trace_afs_call(call, afs_call_trace_wake, u + 1,
 			       atomic_read(&call->net->nr_outstanding_calls),
 			       __builtin_return_address(0));
 
@@ -745,21 +717,6 @@
 }
 
 /*
- * Delete an asynchronous call.  The work item carries a ref to the call struct
- * that we need to release.
- */
-static void afs_delete_async_call(struct work_struct *work)
-{
-	struct afs_call *call = container_of(work, struct afs_call, async_work);
-
-	_enter("");
-
-	afs_put_call(call);
-
-	_leave("");
-}
-
-/*
  * Perform I/O processing on an asynchronous call.  The work item carries a ref
  * to the call struct that we either need to release or to pass on.
  */
@@ -774,16 +731,6 @@
 		afs_deliver_to_call(call);
 	}
 
-	if (call->state == AFS_CALL_COMPLETE) {
-		/* We have two refs to release - one from the alloc and one
-		 * queued with the work item - and we can't just deallocate the
-		 * call because the work item may be queued again.
-		 */
-		call->async_work.func = afs_delete_async_call;
-		if (!queue_work(afs_async_calls, &call->async_work))
-			afs_put_call(call);
-	}
-
 	afs_put_call(call);
 	_leave("");
 }
@@ -810,6 +757,7 @@
 			if (!call)
 				break;
 
+			call->drop_ref = true;
 			call->async = true;
 			call->state = AFS_CALL_SV_AWAIT_OP_ID;
 			init_waitqueue_head(&call->waitq);
@@ -1017,5 +965,7 @@
 				enum afs_eproto_cause cause)
 {
 	trace_afs_protocol_error(call, error, cause);
+	if (call)
+		call->unmarshalling_error = true;
 	return error;
 }
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/server.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/server.c
@@ -32,18 +32,11 @@
 struct afs_server *afs_find_server(struct afs_net *net,
 				   const struct sockaddr_rxrpc *srx)
 {
-	const struct sockaddr_in6 *a = &srx->transport.sin6, *b;
 	const struct afs_addr_list *alist;
 	struct afs_server *server = NULL;
 	unsigned int i;
-	bool ipv6 = true;
 	int seq = 0, diff;
 
-	if (srx->transport.sin6.sin6_addr.s6_addr32[0] == 0 ||
-	    srx->transport.sin6.sin6_addr.s6_addr32[1] == 0 ||
-	    srx->transport.sin6.sin6_addr.s6_addr32[2] == htonl(0xffff))
-		ipv6 = false;
-
 	rcu_read_lock();
 
 	do {
@@ -52,7 +45,8 @@
 		server = NULL;
 		read_seqbegin_or_lock(&net->fs_addr_lock, &seq);
 
-		if (ipv6) {
+		if (srx->transport.family == AF_INET6) {
+			const struct sockaddr_in6 *a = &srx->transport.sin6, *b;
 			hlist_for_each_entry_rcu(server, &net->fs_addresses6, addr6_link) {
 				alist = rcu_dereference(server->addresses);
 				for (i = alist->nr_ipv4; i < alist->nr_addrs; i++) {
@@ -68,15 +62,16 @@
 				}
 			}
 		} else {
+			const struct sockaddr_in *a = &srx->transport.sin, *b;
 			hlist_for_each_entry_rcu(server, &net->fs_addresses4, addr4_link) {
 				alist = rcu_dereference(server->addresses);
 				for (i = 0; i < alist->nr_ipv4; i++) {
-					b = &alist->addrs[i].transport.sin6;
-					diff = ((u16 __force)a->sin6_port -
-						(u16 __force)b->sin6_port);
+					b = &alist->addrs[i].transport.sin;
+					diff = ((u16 __force)a->sin_port -
+						(u16 __force)b->sin_port);
 					if (diff == 0)
-						diff = ((u32 __force)a->sin6_addr.s6_addr32[3] -
-							(u32 __force)b->sin6_addr.s6_addr32[3]);
+						diff = ((u32 __force)a->sin_addr.s_addr -
+							(u32 __force)b->sin_addr.s_addr);
 					if (diff == 0)
 						goto found;
 				}
@@ -600,12 +595,9 @@
 	}
 
 	ret = wait_on_bit(&server->flags, AFS_SERVER_FL_UPDATING,
-			  TASK_INTERRUPTIBLE);
+			  (fc->flags & AFS_FS_CURSOR_INTR) ?
+			  TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
 	if (ret == -ERESTARTSYS) {
-		if (!(fc->flags & AFS_FS_CURSOR_INTR) && server->addresses) {
-			_leave(" = t [intr]");
-			return true;
-		}
 		fc->error = ret;
 		_leave(" = f [intr]");
 		return false;
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/super.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/super.c
@@ -236,6 +236,9 @@
 
 	_enter(",%s", name);
 
+	if (fc->source)
+		return invalf(fc, "kAFS: Multiple sources not supported");
+
 	if (!name) {
 		printk(KERN_ERR "kAFS: no volume name specified\n");
 		return -EINVAL;
@@ -404,6 +407,7 @@
 	return (as->net_ns == fc->net_ns &&
 		as->volume &&
 		as->volume->vid == ctx->volume->vid &&
+		as->cell == ctx->cell &&
 		!as->dyn_root);
 }
 
@@ -448,7 +452,6 @@
 	/* allocate the root inode and dentry */
 	if (as->dyn_root) {
 		inode = afs_iget_pseudo_dir(sb, true);
-		sb->s_flags	|= SB_RDONLY;
 	} else {
 		sprintf(sb->s_id, "%llu", as->volume->vid);
 		afs_activate_volume(as->volume);
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/vl_probe.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/vl_probe.c
@@ -31,10 +31,9 @@
 	struct afs_addr_list *alist = call->alist;
 	struct afs_vlserver *server = call->vlserver;
 	unsigned int server_index = call->server_index;
+	unsigned int rtt_us = 0;
 	unsigned int index = call->addr_ix;
-	unsigned int rtt = UINT_MAX;
 	bool have_result = false;
-	u64 _rtt;
 	int ret = call->error;
 
 	_enter("%s,%u,%u,%d,%d", server->name, server_index, index, ret, call->abort_code);
@@ -93,15 +92,9 @@
 		}
 	}
 
-	/* Get the RTT and scale it to fit into a 32-bit value that represents
-	 * over a minute of time so that we can access it with one instruction
-	 * on a 32-bit system.
-	 */
-	_rtt = rxrpc_kernel_get_rtt(call->net->socket, call->rxcall);
-	_rtt /= 64;
-	rtt = (_rtt > UINT_MAX) ? UINT_MAX : _rtt;
-	if (rtt < server->probe.rtt) {
-		server->probe.rtt = rtt;
+	if (rxrpc_kernel_get_srtt(call->net->socket, call->rxcall, &rtt_us) &&
+	    rtt_us < server->probe.rtt) {
+		server->probe.rtt = rtt_us;
 		alist->preferred = index;
 		have_result = true;
 	}
@@ -113,8 +106,7 @@
 	spin_unlock(&server->probe_lock);
 
 	_debug("probe [%u][%u] %pISpc rtt=%u ret=%d",
-	       server_index, index, &alist->addrs[index].transport,
-	       (unsigned int)rtt, ret);
+	       server_index, index, &alist->addrs[index].transport, rtt_us, ret);
 
 	have_result |= afs_vl_probe_done(server);
 	if (have_result) {
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/volume.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/volume.c
@@ -281,7 +281,7 @@
 /*
  * Make sure the volume record is up to date.
  */
-int afs_check_volume_status(struct afs_volume *volume, struct key *key)
+int afs_check_volume_status(struct afs_volume *volume, struct afs_fs_cursor *fc)
 {
 	time64_t now = ktime_get_real_seconds();
 	int ret, retries = 0;
@@ -299,7 +299,7 @@
 	}
 
 	if (!test_and_set_bit_lock(AFS_VOLUME_UPDATING, &volume->flags)) {
-		ret = afs_update_volume_status(volume, key);
+		ret = afs_update_volume_status(volume, fc->key);
 		clear_bit_unlock(AFS_VOLUME_WAIT, &volume->flags);
 		clear_bit_unlock(AFS_VOLUME_UPDATING, &volume->flags);
 		wake_up_bit(&volume->flags, AFS_VOLUME_WAIT);
@@ -312,7 +312,9 @@
 		return 0;
 	}
 
-	ret = wait_on_bit(&volume->flags, AFS_VOLUME_WAIT, TASK_INTERRUPTIBLE);
+	ret = wait_on_bit(&volume->flags, AFS_VOLUME_WAIT,
+			  (fc->flags & AFS_FS_CURSOR_INTR) ?
+			  TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
 	if (ret == -ERESTARTSYS) {
 		_leave(" = %d", ret);
 		return ret;
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/write.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/write.c
@@ -194,11 +194,11 @@
 
 	i_size = i_size_read(&vnode->vfs_inode);
 	if (maybe_i_size > i_size) {
-		spin_lock(&vnode->wb_lock);
+		write_seqlock(&vnode->cb_lock);
 		i_size = i_size_read(&vnode->vfs_inode);
 		if (maybe_i_size > i_size)
 			i_size_write(&vnode->vfs_inode, maybe_i_size);
-		spin_unlock(&vnode->wb_lock);
+		write_sequnlock(&vnode->cb_lock);
 	}
 
 	if (!PageUptodate(page)) {
@@ -811,6 +811,7 @@
 			     vmf->page->index, priv);
 	SetPagePrivate(vmf->page);
 	set_page_private(vmf->page, priv);
+	file_update_time(file);
 
 	sb_end_pagefault(inode->i_sb);
 	return VM_FAULT_LOCKED;
--- linux-gkeop-5.4-5.4.0.orig/fs/afs/yfsclient.c
+++ linux-gkeop-5.4-5.4.0/fs/afs/yfsclient.c
@@ -165,23 +165,23 @@
 	int i;
 
 	pr_notice("YFS XDR: Bad status record\n");
-	for (i = 0; i < 5 * 4 * 4; i += 16) {
+	for (i = 0; i < 6 * 4 * 4; i += 16) {
 		memcpy(x, bp, 16);
 		bp += 4;
 		pr_notice("%03x: %08x %08x %08x %08x\n",
 			  i, ntohl(x[0]), ntohl(x[1]), ntohl(x[2]), ntohl(x[3]));
 	}
 
-	memcpy(x, bp, 4);
-	pr_notice("0x50: %08x\n", ntohl(x[0]));
+	memcpy(x, bp, 8);
+	pr_notice("0x60: %08x %08x\n", ntohl(x[0]), ntohl(x[1]));
 }
 
 /*
  * Decode a YFSFetchStatus block
  */
-static int xdr_decode_YFSFetchStatus(const __be32 **_bp,
-				     struct afs_call *call,
-				     struct afs_status_cb *scb)
+static void xdr_decode_YFSFetchStatus(const __be32 **_bp,
+				      struct afs_call *call,
+				      struct afs_status_cb *scb)
 {
 	const struct yfs_xdr_YFSFetchStatus *xdr = (const void *)*_bp;
 	struct afs_file_status *status = &scb->status;
@@ -192,7 +192,7 @@
 		if (status->abort_code == VNOVNODE)
 			status->nlink = 0;
 		scb->have_error = true;
-		return 0;
+		goto advance;
 	}
 
 	type = ntohl(xdr->type);
@@ -220,13 +220,14 @@
 	status->size		= xdr_to_u64(xdr->size);
 	status->data_version	= xdr_to_u64(xdr->data_version);
 	scb->have_status	= true;
-
+advance:
 	*_bp += xdr_size(xdr);
-	return 0;
+	return;
 
 bad:
 	xdr_dump_bad(*_bp);
-	return afs_protocol_error(call, -EBADMSG, afs_eproto_bad_status);
+	afs_protocol_error(call, -EBADMSG, afs_eproto_bad_status);
+	goto advance;
 }
 
 /*
@@ -344,9 +345,7 @@
 
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_YFSCallBack(&bp, call, call->out_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 
@@ -368,9 +367,7 @@
 		return ret;
 
 	bp = call->buffer;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -493,8 +490,6 @@
 		ASSERTCMP(req->offset, <=, PAGE_SIZE);
 		if (req->offset == PAGE_SIZE) {
 			req->offset = 0;
-			if (req->page_done)
-				req->page_done(req);
 			req->index++;
 			if (req->remain > 0)
 				goto begin_page;
@@ -532,9 +527,7 @@
 			return ret;
 
 		bp = call->buffer;
-		ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-		if (ret < 0)
-			return ret;
+		xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
 		xdr_decode_YFSCallBack(&bp, call, call->out_scb);
 		xdr_decode_YFSVolSync(&bp, call->out_volsync);
 
@@ -552,11 +545,13 @@
 		if (req->offset < PAGE_SIZE)
 			zero_user_segment(req->pages[req->index],
 					  req->offset, PAGE_SIZE);
-		if (req->page_done)
-			req->page_done(req);
 		req->offset = 0;
 	}
 
+	if (req->page_done)
+		for (req->index = 0; req->index < req->nr_pages; req->index++)
+			req->page_done(req);
+
 	_leave(" = 0 [done]");
 	return 0;
 }
@@ -641,12 +636,8 @@
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
 	xdr_decode_YFSFid(&bp, call->out_fid);
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_YFSCallBack(&bp, call, call->out_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 
@@ -799,14 +790,9 @@
 		return ret;
 
 	bp = call->buffer;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
-
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_YFSFid(&bp, &fid);
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
 	/* Was deleted if vnode->status.abort_code == VNOVNODE. */
 
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
@@ -886,10 +872,7 @@
 		return ret;
 
 	bp = call->buffer;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
-
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 	return 0;
 }
@@ -971,12 +954,8 @@
 		return ret;
 
 	bp = call->buffer;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 	_leave(" = 0 [done]");
 	return 0;
@@ -1058,12 +1037,8 @@
 	/* unmarshall the reply once we've received all of it */
 	bp = call->buffer;
 	xdr_decode_YFSFid(&bp, call->out_fid);
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-	if (ret < 0)
-		return ret;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 
 	_leave(" = 0 [done]");
@@ -1151,15 +1126,11 @@
 		return ret;
 
 	bp = call->buffer;
-	ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
-	if (ret < 0)
-		return ret;
-	if (call->out_dir_scb != call->out_scb) {
-		ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-		if (ret < 0)
-			return ret;
-	}
-
+	/* If the two dirs are the same, we have two copies of the same status
+	 * report, so we just decode it twice.
+	 */
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_dir_scb);
+	xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
 	xdr_decode_YFSVolSync(&bp, call->out_volsync);
 	_leave(" = 0 [done]");
 	return 0;
@@ -1844,9 +1815,7 @@
 
 		bp = call->buffer;
 		scb = &call->out_scb[call->count];
-		ret = xdr_decode_YFSFetchStatus(&bp, call, scb);
-		if (ret < 0)
-			return ret;
+		xdr_decode_YFSFetchStatus(&bp, call, scb);
 
 		call->count++;
 		if (call->count < call->count2)
@@ -2066,9 +2035,7 @@
 		bp = call->buffer;
 		yacl->inherit_flag = ntohl(*bp++);
 		yacl->num_cleaned = ntohl(*bp++);
-		ret = xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
-		if (ret < 0)
-			return ret;
+		xdr_decode_YFSFetchStatus(&bp, call, call->out_scb);
 		xdr_decode_YFSVolSync(&bp, call->out_volsync);
 
 		call->unmarshall++;
@@ -2195,6 +2162,7 @@
 	memcpy(bp, acl->data, acl->size);
 	if (acl->size != size)
 		memset((void *)bp + acl->size, 0, size - acl->size);
+	bp += size / sizeof(__be32);
 	yfs_check_req(call, bp);
 
 	trace_afs_make_fs_call(call, &vnode->fid);
--- linux-gkeop-5.4-5.4.0.orig/fs/aio.c
+++ linux-gkeop-5.4-5.4.0/fs/aio.c
@@ -176,6 +176,7 @@
 	struct file		*file;
 	struct work_struct	work;
 	bool			datasync;
+	struct cred		*creds;
 };
 
 struct poll_iocb {
@@ -1589,8 +1590,11 @@
 static void aio_fsync_work(struct work_struct *work)
 {
 	struct aio_kiocb *iocb = container_of(work, struct aio_kiocb, fsync.work);
+	const struct cred *old_cred = override_creds(iocb->fsync.creds);
 
 	iocb->ki_res.res = vfs_fsync(iocb->fsync.file, iocb->fsync.datasync);
+	revert_creds(old_cred);
+	put_cred(iocb->fsync.creds);
 	iocb_put(iocb);
 }
 
@@ -1604,12 +1608,24 @@
 	if (unlikely(!req->file->f_op->fsync))
 		return -EINVAL;
 
+	req->creds = prepare_creds();
+	if (!req->creds)
+		return -ENOMEM;
+
 	req->datasync = datasync;
 	INIT_WORK(&req->work, aio_fsync_work);
 	schedule_work(&req->work);
 	return 0;
 }
 
+static void aio_poll_put_work(struct work_struct *work)
+{
+	struct poll_iocb *req = container_of(work, struct poll_iocb, work);
+	struct aio_kiocb *iocb = container_of(req, struct aio_kiocb, poll);
+
+	iocb_put(iocb);
+}
+
 static void aio_poll_complete_work(struct work_struct *work)
 {
 	struct poll_iocb *req = container_of(work, struct poll_iocb, work);
@@ -1674,6 +1690,8 @@
 	list_del_init(&req->wait.entry);
 
 	if (mask && spin_trylock_irqsave(&iocb->ki_ctx->ctx_lock, flags)) {
+		struct kioctx *ctx = iocb->ki_ctx;
+
 		/*
 		 * Try to complete the iocb inline if we can. Use
 		 * irqsave/irqrestore because not all filesystems (e.g. fuse)
@@ -1683,8 +1701,14 @@
 		list_del(&iocb->ki_list);
 		iocb->ki_res.res = mangle_poll(mask);
 		req->done = true;
-		spin_unlock_irqrestore(&iocb->ki_ctx->ctx_lock, flags);
-		iocb_put(iocb);
+		if (iocb->ki_eventfd && eventfd_signal_count()) {
+			iocb = NULL;
+			INIT_WORK(&req->work, aio_poll_put_work);
+			schedule_work(&req->work);
+		}
+		spin_unlock_irqrestore(&ctx->ctx_lock, flags);
+		if (iocb)
+			iocb_put(iocb);
 	} else {
 		schedule_work(&req->work);
 	}
--- linux-gkeop-5.4-5.4.0.orig/fs/attr.c
+++ linux-gkeop-5.4-5.4.0/fs/attr.c
@@ -183,18 +183,12 @@
 		inode->i_uid = attr->ia_uid;
 	if (ia_valid & ATTR_GID)
 		inode->i_gid = attr->ia_gid;
-	if (ia_valid & ATTR_ATIME) {
-		inode->i_atime = timestamp_truncate(attr->ia_atime,
-						  inode);
-	}
-	if (ia_valid & ATTR_MTIME) {
-		inode->i_mtime = timestamp_truncate(attr->ia_mtime,
-						  inode);
-	}
-	if (ia_valid & ATTR_CTIME) {
-		inode->i_ctime = timestamp_truncate(attr->ia_ctime,
-						  inode);
-	}
+	if (ia_valid & ATTR_ATIME)
+		inode->i_atime = attr->ia_atime;
+	if (ia_valid & ATTR_MTIME)
+		inode->i_mtime = attr->ia_mtime;
+	if (ia_valid & ATTR_CTIME)
+		inode->i_ctime = attr->ia_ctime;
 	if (ia_valid & ATTR_MODE) {
 		umode_t mode = attr->ia_mode;
 
@@ -268,8 +262,13 @@
 	attr->ia_ctime = now;
 	if (!(ia_valid & ATTR_ATIME_SET))
 		attr->ia_atime = now;
+	else
+		attr->ia_atime = timestamp_truncate(attr->ia_atime, inode);
 	if (!(ia_valid & ATTR_MTIME_SET))
 		attr->ia_mtime = now;
+	else
+		attr->ia_mtime = timestamp_truncate(attr->ia_mtime, inode);
+
 	if (ia_valid & ATTR_KILL_PRIV) {
 		error = security_inode_need_killpriv(dentry);
 		if (error < 0)
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/Kconfig
+++ linux-gkeop-5.4-5.4.0/fs/aufs/Kconfig
@@ -0,0 +1,199 @@
+# SPDX-License-Identifier: GPL-2.0
+config AUFS_FS
+	tristate "Aufs (Advanced multi layered unification filesystem) support"
+	help
+	Aufs is a stackable unification filesystem such as Unionfs,
+	which unifies several directories and provides a merged single
+	directory.
+	In the early days, aufs was entirely re-designed and
+	re-implemented Unionfs Version 1.x series. Introducing many
+	original ideas, approaches and improvements, it becomes totally
+	different from Unionfs while keeping the basic features.
+
+if AUFS_FS
+choice
+	prompt "Maximum number of branches"
+	default AUFS_BRANCH_MAX_127
+	help
+	Specifies the maximum number of branches (or member directories)
+	in a single aufs. The larger value consumes more system
+	resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_127
+	bool "127"
+	help
+	Specifies the maximum number of branches (or member directories)
+	in a single aufs. The larger value consumes more system
+	resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_511
+	bool "511"
+	help
+	Specifies the maximum number of branches (or member directories)
+	in a single aufs. The larger value consumes more system
+	resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_1023
+	bool "1023"
+	help
+	Specifies the maximum number of branches (or member directories)
+	in a single aufs. The larger value consumes more system
+	resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_32767
+	bool "32767"
+	help
+	Specifies the maximum number of branches (or member directories)
+	in a single aufs. The larger value consumes more system
+	resources and has a minor impact to performance.
+endchoice
+
+config AUFS_SBILIST
+	bool
+	depends on AUFS_MAGIC_SYSRQ || PROC_FS
+	default y
+	help
+	Automatic configuration for internal use.
+	When aufs supports Magic SysRq or /proc, enabled automatically.
+
+config AUFS_HNOTIFY
+	bool "Detect direct branch access (bypassing aufs)"
+	help
+	If you want to modify files on branches directly, eg. bypassing aufs,
+	and want aufs to detect the changes of them fully, then enable this
+	option and use 'udba=notify' mount option.
+	Currently there is only one available configuration, "fsnotify".
+	It will have a negative impact to the performance.
+	See detail in aufs.5.
+
+choice
+	prompt "method" if AUFS_HNOTIFY
+	default AUFS_HFSNOTIFY
+config AUFS_HFSNOTIFY
+	bool "fsnotify"
+	select FSNOTIFY
+endchoice
+
+config AUFS_EXPORT
+	bool "NFS-exportable aufs"
+	depends on EXPORTFS
+	help
+	If you want to export your mounted aufs via NFS, then enable this
+	option. There are several requirements for this configuration.
+	See detail in aufs.5.
+
+config AUFS_INO_T_64
+	bool
+	depends on AUFS_EXPORT
+	depends on 64BIT && !(ALPHA || S390)
+	default y
+	help
+	Automatic configuration for internal use.
+	/* typedef unsigned long/int __kernel_ino_t */
+	/* alpha and s390x are int */
+
+config AUFS_XATTR
+	bool "support for XATTR/EA (including Security Labels)"
+	help
+	If your branch fs supports XATTR/EA and you want to make them
+	available in aufs too, then enable this opsion and specify the
+	branch attributes for EA.
+	See detail in aufs.5.
+
+config AUFS_FHSM
+	bool "File-based Hierarchical Storage Management"
+	help
+	Hierarchical Storage Management (or HSM) is a well-known feature
+	in the storage world. Aufs provides this feature as file-based.
+	with multiple branches.
+	These multiple branches are prioritized, ie. the topmost one
+	should be the fastest drive and be used heavily.
+
+config AUFS_RDU
+	bool "Readdir in userspace"
+	help
+	Aufs has two methods to provide a merged view for a directory,
+	by a user-space library and by kernel-space natively. The latter
+	is always enabled but sometimes large and slow.
+	If you enable this option, install the library in aufs2-util
+	package, and set some environment variables for your readdir(3),
+	then the work will be handled in user-space which generally
+	shows better performance in most cases.
+	See detail in aufs.5.
+
+config AUFS_DIRREN
+	bool "Workaround for rename(2)-ing a directory"
+	help
+	By default, aufs returns EXDEV error in renameing a dir who has
+	his child on the lower branch, since it is a bad idea to issue
+	rename(2) internally for every lower branch. But user may not
+	accept this behaviour. So here is a workaround to allow such
+	rename(2) and store some extra infromation on the writable
+	branch. Obviously this costs high (and I don't like it).
+	To use this feature, you need to enable this configuration AND
+	to specify the mount option `dirren.'
+	See details in aufs.5 and the design documents.
+
+config AUFS_SHWH
+	bool "Show whiteouts"
+	help
+	If you want to make the whiteouts in aufs visible, then enable
+	this option and specify 'shwh' mount option. Although it may
+	sounds like philosophy or something, but in technically it
+	simply shows the name of whiteout with keeping its behaviour.
+
+config AUFS_BR_RAMFS
+	bool "Ramfs (initramfs/rootfs) as an aufs branch"
+	help
+	If you want to use ramfs as an aufs branch fs, then enable this
+	option. Generally tmpfs is recommended.
+	Aufs prohibited them to be a branch fs by default, because
+	initramfs becomes unusable after switch_root or something
+	generally. If you sets initramfs as an aufs branch and boot your
+	system by switch_root, you will meet a problem easily since the
+	files in initramfs may be inaccessible.
+	Unless you are going to use ramfs as an aufs branch fs without
+	switch_root or something, leave it N.
+
+config AUFS_BR_FUSE
+	bool "Fuse fs as an aufs branch"
+	depends on FUSE_FS
+	select AUFS_POLL
+	help
+	If you want to use fuse-based userspace filesystem as an aufs
+	branch fs, then enable this option.
+	It implements the internal poll(2) operation which is
+	implemented by fuse only (curretnly).
+
+config AUFS_POLL
+	bool
+	help
+	Automatic configuration for internal use.
+
+config AUFS_BR_HFSPLUS
+	bool "Hfsplus as an aufs branch"
+	depends on HFSPLUS_FS
+	default y
+	help
+	If you want to use hfsplus fs as an aufs branch fs, then enable
+	this option. This option introduces a small overhead at
+	copying-up a file on hfsplus.
+
+config AUFS_BDEV_LOOP
+	bool
+	depends on BLK_DEV_LOOP
+	default y
+	help
+	Automatic configuration for internal use.
+	Convert =[ym] into =y.
+
+config AUFS_DEBUG
+	bool "Debug aufs"
+	help
+	Enable this to compile aufs internal debug code.
+	It will have a negative impact to the performance.
+
+config AUFS_MAGIC_SYSRQ
+	bool
+	depends on AUFS_DEBUG && MAGIC_SYSRQ
+	default y
+	help
+	Automatic configuration for internal use.
+	When aufs supports Magic SysRq, enabled automatically.
+endif
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/Makefile
+++ linux-gkeop-5.4-5.4.0/fs/aufs/Makefile
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0
+
+include ${src}/magic.mk
+ifeq (${CONFIG_AUFS_FS},m)
+include ${src}/conf.mk
+endif
+-include ${src}/priv_def.mk
+
+# cf. include/linux/kernel.h
+# enable pr_debug
+ccflags-y += -DDEBUG
+# sparse requires the full pathname
+ifdef M
+ccflags-y += -include ${M}/../../include/uapi/linux/aufs_type.h
+else
+ccflags-y += -include ${srctree}/include/uapi/linux/aufs_type.h
+endif
+
+obj-$(CONFIG_AUFS_FS) += aufs.o
+aufs-y := module.o sbinfo.o super.o branch.o xino.o sysaufs.o opts.o \
+	wkq.o vfsub.o dcsub.o \
+	cpup.o whout.o wbr_policy.o \
+	dinfo.o dentry.o \
+	dynop.o \
+	finfo.o file.o f_op.o \
+	dir.o vdir.o \
+	iinfo.o inode.o i_op.o i_op_add.o i_op_del.o i_op_ren.o \
+	mvdown.o ioctl.o
+
+# all are boolean
+aufs-$(CONFIG_PROC_FS) += procfs.o plink.o
+aufs-$(CONFIG_SYSFS) += sysfs.o
+aufs-$(CONFIG_DEBUG_FS) += dbgaufs.o
+aufs-$(CONFIG_AUFS_BDEV_LOOP) += loop.o
+aufs-$(CONFIG_AUFS_HNOTIFY) += hnotify.o
+aufs-$(CONFIG_AUFS_HFSNOTIFY) += hfsnotify.o
+aufs-$(CONFIG_AUFS_EXPORT) += export.o
+aufs-$(CONFIG_AUFS_XATTR) += xattr.o
+aufs-$(CONFIG_FS_POSIX_ACL) += posix_acl.o
+aufs-$(CONFIG_AUFS_DIRREN) += dirren.o
+aufs-$(CONFIG_AUFS_FHSM) += fhsm.o
+aufs-$(CONFIG_AUFS_POLL) += poll.o
+aufs-$(CONFIG_AUFS_RDU) += rdu.o
+aufs-$(CONFIG_AUFS_BR_HFSPLUS) += hfsplus.o
+aufs-$(CONFIG_AUFS_DEBUG) += debug.o
+aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/aufs.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/aufs.h
@@ -0,0 +1,62 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * all header files
+ */
+
+#ifndef __AUFS_H__
+#define __AUFS_H__
+
+#ifdef __KERNEL__
+
+#define AuStub(type, name, body, ...) \
+	static inline type name(__VA_ARGS__) { body; }
+
+#define AuStubVoid(name, ...) \
+	AuStub(void, name, , __VA_ARGS__)
+#define AuStubInt0(name, ...) \
+	AuStub(int, name, return 0, __VA_ARGS__)
+
+#include "debug.h"
+
+#include "branch.h"
+#include "cpup.h"
+#include "dcsub.h"
+#include "dbgaufs.h"
+#include "dentry.h"
+#include "dir.h"
+#include "dirren.h"
+#include "dynop.h"
+#include "file.h"
+#include "fstype.h"
+#include "hbl.h"
+#include "inode.h"
+#include "lcnt.h"
+#include "loop.h"
+#include "module.h"
+#include "opts.h"
+#include "rwsem.h"
+#include "super.h"
+#include "sysaufs.h"
+#include "vfsub.h"
+#include "whout.h"
+#include "wkq.h"
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/branch.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/branch.c
@@ -0,0 +1,1428 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * branch management
+ */
+
+#include <linux/compat.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/*
+ * free a single branch
+ */
+static void au_br_do_free(struct au_branch *br)
+{
+	int i;
+	struct au_wbr *wbr;
+	struct au_dykey **key;
+
+	au_hnotify_fin_br(br);
+	/* always, regardless the mount option */
+	au_dr_hino_free(&br->br_dirren);
+	au_xino_put(br);
+
+	AuLCntZero(au_lcnt_read(&br->br_nfiles, /*do_rev*/0));
+	au_lcnt_fin(&br->br_nfiles, /*do_sync*/0);
+	AuLCntZero(au_lcnt_read(&br->br_count, /*do_rev*/0));
+	au_lcnt_fin(&br->br_count, /*do_sync*/0);
+
+	wbr = br->br_wbr;
+	if (wbr) {
+		for (i = 0; i < AuBrWh_Last; i++)
+			dput(wbr->wbr_wh[i]);
+		AuDebugOn(atomic_read(&wbr->wbr_wh_running));
+		AuRwDestroy(&wbr->wbr_wh_rwsem);
+	}
+
+	if (br->br_fhsm) {
+		au_br_fhsm_fin(br->br_fhsm);
+		au_kfree_try_rcu(br->br_fhsm);
+	}
+
+	key = br->br_dykey;
+	for (i = 0; i < AuBrDynOp; i++, key++)
+		if (*key)
+			au_dy_put(*key);
+		else
+			break;
+
+	/* recursive lock, s_umount of branch's */
+	/* synchronize_rcu(); */ /* why? */
+	lockdep_off();
+	path_put(&br->br_path);
+	lockdep_on();
+	au_kfree_rcu(wbr);
+	au_lcnt_wait_for_fin(&br->br_nfiles);
+	au_lcnt_wait_for_fin(&br->br_count);
+	/* I don't know why, but percpu_refcount requires this */
+	/* synchronize_rcu(); */
+	au_kfree_rcu(br);
+}
+
+/*
+ * frees all branches
+ */
+void au_br_free(struct au_sbinfo *sbinfo)
+{
+	aufs_bindex_t bmax;
+	struct au_branch **br;
+
+	AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+	bmax = sbinfo->si_bbot + 1;
+	br = sbinfo->si_branch;
+	while (bmax--)
+		au_br_do_free(*br++);
+}
+
+/*
+ * find the index of a branch which is specified by @br_id.
+ */
+int au_br_index(struct super_block *sb, aufs_bindex_t br_id)
+{
+	aufs_bindex_t bindex, bbot;
+
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++)
+		if (au_sbr_id(sb, bindex) == br_id)
+			return bindex;
+	return -1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * add a branch
+ */
+
+static int test_overlap(struct super_block *sb, struct dentry *h_adding,
+			struct dentry *h_root)
+{
+	if (unlikely(h_adding == h_root
+		     || au_test_loopback_overlap(sb, h_adding)))
+		return 1;
+	if (h_adding->d_sb != h_root->d_sb)
+		return 0;
+	return au_test_subdir(h_adding, h_root)
+		|| au_test_subdir(h_root, h_adding);
+}
+
+/*
+ * returns a newly allocated branch. @new_nbranch is a number of branches
+ * after adding a branch.
+ */
+static struct au_branch *au_br_alloc(struct super_block *sb, int new_nbranch,
+				     int perm)
+{
+	struct au_branch *add_branch;
+	struct dentry *root;
+	struct inode *inode;
+	int err;
+
+	err = -ENOMEM;
+	add_branch = kzalloc(sizeof(*add_branch), GFP_NOFS);
+	if (unlikely(!add_branch))
+		goto out;
+	add_branch->br_xino = au_xino_alloc(/*nfile*/1);
+	if (unlikely(!add_branch->br_xino))
+		goto out_br;
+	err = au_hnotify_init_br(add_branch, perm);
+	if (unlikely(err))
+		goto out_xino;
+
+	if (au_br_writable(perm)) {
+		/* may be freed separately at changing the branch permission */
+		add_branch->br_wbr = kzalloc(sizeof(*add_branch->br_wbr),
+					     GFP_NOFS);
+		if (unlikely(!add_branch->br_wbr))
+			goto out_hnotify;
+	}
+
+	if (au_br_fhsm(perm)) {
+		err = au_fhsm_br_alloc(add_branch);
+		if (unlikely(err))
+			goto out_wbr;
+	}
+
+	root = sb->s_root;
+	err = au_sbr_realloc(au_sbi(sb), new_nbranch, /*may_shrink*/0);
+	if (!err)
+		err = au_di_realloc(au_di(root), new_nbranch, /*may_shrink*/0);
+	if (!err) {
+		inode = d_inode(root);
+		err = au_hinode_realloc(au_ii(inode), new_nbranch,
+					/*may_shrink*/0);
+	}
+	if (!err)
+		return add_branch; /* success */
+
+out_wbr:
+	au_kfree_rcu(add_branch->br_wbr);
+out_hnotify:
+	au_hnotify_fin_br(add_branch);
+out_xino:
+	au_xino_put(add_branch);
+out_br:
+	au_kfree_rcu(add_branch);
+out:
+	return ERR_PTR(err);
+}
+
+/*
+ * test if the branch permission is legal or not.
+ */
+static int test_br(struct inode *inode, int brperm, char *path)
+{
+	int err;
+
+	err = (au_br_writable(brperm) && IS_RDONLY(inode));
+	if (!err)
+		goto out;
+
+	err = -EINVAL;
+	pr_err("write permission for readonly mount or inode, %s\n", path);
+
+out:
+	return err;
+}
+
+/*
+ * returns:
+ * 0: success, the caller will add it
+ * plus: success, it is already unified, the caller should ignore it
+ * minus: error
+ */
+static int test_add(struct super_block *sb, struct au_opt_add *add, int remount)
+{
+	int err;
+	aufs_bindex_t bbot, bindex;
+	struct dentry *root, *h_dentry;
+	struct inode *inode, *h_inode;
+
+	root = sb->s_root;
+	bbot = au_sbbot(sb);
+	if (unlikely(bbot >= 0
+		     && au_find_dbindex(root, add->path.dentry) >= 0)) {
+		err = 1;
+		if (!remount) {
+			err = -EINVAL;
+			pr_err("%s duplicated\n", add->pathname);
+		}
+		goto out;
+	}
+
+	err = -ENOSPC; /* -E2BIG; */
+	if (unlikely(AUFS_BRANCH_MAX <= add->bindex
+		     || AUFS_BRANCH_MAX - 1 <= bbot)) {
+		pr_err("number of branches exceeded %s\n", add->pathname);
+		goto out;
+	}
+
+	err = -EDOM;
+	if (unlikely(add->bindex < 0 || bbot + 1 < add->bindex)) {
+		pr_err("bad index %d\n", add->bindex);
+		goto out;
+	}
+
+	inode = d_inode(add->path.dentry);
+	err = -ENOENT;
+	if (unlikely(!inode->i_nlink)) {
+		pr_err("no existence %s\n", add->pathname);
+		goto out;
+	}
+
+	err = -EINVAL;
+	if (unlikely(inode->i_sb == sb)) {
+		pr_err("%s must be outside\n", add->pathname);
+		goto out;
+	}
+
+	if (unlikely(au_test_fs_unsuppoted(inode->i_sb))) {
+		pr_err("unsupported filesystem, %s (%s)\n",
+		       add->pathname, au_sbtype(inode->i_sb));
+		goto out;
+	}
+
+	if (unlikely(inode->i_sb->s_stack_depth)) {
+		pr_err("already stacked, %s (%s)\n",
+		       add->pathname, au_sbtype(inode->i_sb));
+		goto out;
+	}
+
+	err = test_br(d_inode(add->path.dentry), add->perm, add->pathname);
+	if (unlikely(err))
+		goto out;
+
+	if (bbot < 0)
+		return 0; /* success */
+
+	err = -EINVAL;
+	for (bindex = 0; bindex <= bbot; bindex++)
+		if (unlikely(test_overlap(sb, add->path.dentry,
+					  au_h_dptr(root, bindex)))) {
+			pr_err("%s is overlapped\n", add->pathname);
+			goto out;
+		}
+
+	err = 0;
+	if (au_opt_test(au_mntflags(sb), WARN_PERM)) {
+		h_dentry = au_h_dptr(root, 0);
+		h_inode = d_inode(h_dentry);
+		if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO)
+		    || !uid_eq(h_inode->i_uid, inode->i_uid)
+		    || !gid_eq(h_inode->i_gid, inode->i_gid))
+			pr_warn("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
+				add->pathname,
+				i_uid_read(inode), i_gid_read(inode),
+				(inode->i_mode & S_IALLUGO),
+				i_uid_read(h_inode), i_gid_read(h_inode),
+				(h_inode->i_mode & S_IALLUGO));
+	}
+
+out:
+	return err;
+}
+
+/*
+ * initialize or clean the whiteouts for an adding branch
+ */
+static int au_br_init_wh(struct super_block *sb, struct au_branch *br,
+			 int new_perm)
+{
+	int err, old_perm;
+	aufs_bindex_t bindex;
+	struct inode *h_inode;
+	struct au_wbr *wbr;
+	struct au_hinode *hdir;
+	struct dentry *h_dentry;
+
+	err = vfsub_mnt_want_write(au_br_mnt(br));
+	if (unlikely(err))
+		goto out;
+
+	wbr = br->br_wbr;
+	old_perm = br->br_perm;
+	br->br_perm = new_perm;
+	hdir = NULL;
+	h_inode = NULL;
+	bindex = au_br_index(sb, br->br_id);
+	if (0 <= bindex) {
+		hdir = au_hi(d_inode(sb->s_root), bindex);
+		au_hn_inode_lock_nested(hdir, AuLsc_I_PARENT);
+	} else {
+		h_dentry = au_br_dentry(br);
+		h_inode = d_inode(h_dentry);
+		inode_lock_nested(h_inode, AuLsc_I_PARENT);
+	}
+	if (!wbr)
+		err = au_wh_init(br, sb);
+	else {
+		wbr_wh_write_lock(wbr);
+		err = au_wh_init(br, sb);
+		wbr_wh_write_unlock(wbr);
+	}
+	if (hdir)
+		au_hn_inode_unlock(hdir);
+	else
+		inode_unlock(h_inode);
+	vfsub_mnt_drop_write(au_br_mnt(br));
+	br->br_perm = old_perm;
+
+	if (!err && wbr && !au_br_writable(new_perm)) {
+		au_kfree_rcu(wbr);
+		br->br_wbr = NULL;
+	}
+
+out:
+	return err;
+}
+
+static int au_wbr_init(struct au_branch *br, struct super_block *sb,
+		       int perm)
+{
+	int err;
+	struct kstatfs kst;
+	struct au_wbr *wbr;
+
+	wbr = br->br_wbr;
+	au_rw_init(&wbr->wbr_wh_rwsem);
+	atomic_set(&wbr->wbr_wh_running, 0);
+
+	/*
+	 * a limit for rmdir/rename a dir
+	 * cf. AUFS_MAX_NAMELEN in include/uapi/linux/aufs_type.h
+	 */
+	err = vfs_statfs(&br->br_path, &kst);
+	if (unlikely(err))
+		goto out;
+	err = -EINVAL;
+	if (kst.f_namelen >= NAME_MAX)
+		err = au_br_init_wh(sb, br, perm);
+	else
+		pr_err("%pd(%s), unsupported namelen %ld\n",
+		       au_br_dentry(br),
+		       au_sbtype(au_br_dentry(br)->d_sb), kst.f_namelen);
+
+out:
+	return err;
+}
+
+/* initialize a new branch */
+static int au_br_init(struct au_branch *br, struct super_block *sb,
+		      struct au_opt_add *add)
+{
+	int err;
+	struct au_branch *brbase;
+	struct file *xf;
+	struct inode *h_inode;
+
+	err = 0;
+	br->br_perm = add->perm;
+	br->br_path = add->path; /* set first, path_get() later */
+	spin_lock_init(&br->br_dykey_lock);
+	au_lcnt_init(&br->br_nfiles, /*release*/NULL);
+	au_lcnt_init(&br->br_count, /*release*/NULL);
+	br->br_id = au_new_br_id(sb);
+	AuDebugOn(br->br_id < 0);
+
+	/* always, regardless the given option */
+	err = au_dr_br_init(sb, br, &add->path);
+	if (unlikely(err))
+		goto out_err;
+
+	if (au_br_writable(add->perm)) {
+		err = au_wbr_init(br, sb, add->perm);
+		if (unlikely(err))
+			goto out_err;
+	}
+
+	if (au_opt_test(au_mntflags(sb), XINO)) {
+		brbase = au_sbr(sb, 0);
+		xf = au_xino_file(brbase->br_xino, /*idx*/-1);
+		AuDebugOn(!xf);
+		h_inode = d_inode(add->path.dentry);
+		err = au_xino_init_br(sb, br, h_inode->i_ino, &xf->f_path);
+		if (unlikely(err)) {
+			AuDebugOn(au_xino_file(br->br_xino, /*idx*/-1));
+			goto out_err;
+		}
+	}
+
+	sysaufs_br_init(br);
+	path_get(&br->br_path);
+	goto out; /* success */
+
+out_err:
+	memset(&br->br_path, 0, sizeof(br->br_path));
+out:
+	return err;
+}
+
+static void au_br_do_add_brp(struct au_sbinfo *sbinfo, aufs_bindex_t bindex,
+			     struct au_branch *br, aufs_bindex_t bbot,
+			     aufs_bindex_t amount)
+{
+	struct au_branch **brp;
+
+	AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+	brp = sbinfo->si_branch + bindex;
+	memmove(brp + 1, brp, sizeof(*brp) * amount);
+	*brp = br;
+	sbinfo->si_bbot++;
+	if (unlikely(bbot < 0))
+		sbinfo->si_bbot = 0;
+}
+
+static void au_br_do_add_hdp(struct au_dinfo *dinfo, aufs_bindex_t bindex,
+			     aufs_bindex_t bbot, aufs_bindex_t amount)
+{
+	struct au_hdentry *hdp;
+
+	AuRwMustWriteLock(&dinfo->di_rwsem);
+
+	hdp = au_hdentry(dinfo, bindex);
+	memmove(hdp + 1, hdp, sizeof(*hdp) * amount);
+	au_h_dentry_init(hdp);
+	dinfo->di_bbot++;
+	if (unlikely(bbot < 0))
+		dinfo->di_btop = 0;
+}
+
+static void au_br_do_add_hip(struct au_iinfo *iinfo, aufs_bindex_t bindex,
+			     aufs_bindex_t bbot, aufs_bindex_t amount)
+{
+	struct au_hinode *hip;
+
+	AuRwMustWriteLock(&iinfo->ii_rwsem);
+
+	hip = au_hinode(iinfo, bindex);
+	memmove(hip + 1, hip, sizeof(*hip) * amount);
+	au_hinode_init(hip);
+	iinfo->ii_bbot++;
+	if (unlikely(bbot < 0))
+		iinfo->ii_btop = 0;
+}
+
+static void au_br_do_add(struct super_block *sb, struct au_branch *br,
+			 aufs_bindex_t bindex)
+{
+	struct dentry *root, *h_dentry;
+	struct inode *root_inode, *h_inode;
+	aufs_bindex_t bbot, amount;
+
+	root = sb->s_root;
+	root_inode = d_inode(root);
+	bbot = au_sbbot(sb);
+	amount = bbot + 1 - bindex;
+	h_dentry = au_br_dentry(br);
+	au_sbilist_lock();
+	au_br_do_add_brp(au_sbi(sb), bindex, br, bbot, amount);
+	au_br_do_add_hdp(au_di(root), bindex, bbot, amount);
+	au_br_do_add_hip(au_ii(root_inode), bindex, bbot, amount);
+	au_set_h_dptr(root, bindex, dget(h_dentry));
+	h_inode = d_inode(h_dentry);
+	au_set_h_iptr(root_inode, bindex, au_igrab(h_inode), /*flags*/0);
+	au_sbilist_unlock();
+}
+
+int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount)
+{
+	int err;
+	aufs_bindex_t bbot, add_bindex;
+	struct dentry *root, *h_dentry;
+	struct inode *root_inode;
+	struct au_branch *add_branch;
+
+	root = sb->s_root;
+	root_inode = d_inode(root);
+	IMustLock(root_inode);
+	IiMustWriteLock(root_inode);
+	err = test_add(sb, add, remount);
+	if (unlikely(err < 0))
+		goto out;
+	if (err) {
+		err = 0;
+		goto out; /* success */
+	}
+
+	bbot = au_sbbot(sb);
+	add_branch = au_br_alloc(sb, bbot + 2, add->perm);
+	err = PTR_ERR(add_branch);
+	if (IS_ERR(add_branch))
+		goto out;
+
+	err = au_br_init(add_branch, sb, add);
+	if (unlikely(err)) {
+		au_br_do_free(add_branch);
+		goto out;
+	}
+
+	add_bindex = add->bindex;
+	sysaufs_brs_del(sb, add_bindex);	/* remove successors */
+	au_br_do_add(sb, add_branch, add_bindex);
+	sysaufs_brs_add(sb, add_bindex);	/* append successors */
+	dbgaufs_brs_add(sb, add_bindex, /*topdown*/0);	/* rename successors */
+
+	h_dentry = add->path.dentry;
+	if (!add_bindex) {
+		au_cpup_attr_all(root_inode, /*force*/1);
+		sb->s_maxbytes = h_dentry->d_sb->s_maxbytes;
+	} else
+		au_add_nlink(root_inode, d_inode(h_dentry));
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static unsigned long long au_farray_cb(struct super_block *sb, void *a,
+				       unsigned long long max __maybe_unused,
+				       void *arg)
+{
+	unsigned long long n;
+	struct file **p, *f;
+	struct hlist_bl_head *files;
+	struct hlist_bl_node *pos;
+	struct au_finfo *finfo;
+
+	n = 0;
+	p = a;
+	files = &au_sbi(sb)->si_files;
+	hlist_bl_lock(files);
+	hlist_bl_for_each_entry(finfo, pos, files, fi_hlist) {
+		f = finfo->fi_file;
+		if (file_count(f)
+		    && !special_file(file_inode(f)->i_mode)) {
+			get_file(f);
+			*p++ = f;
+			n++;
+			AuDebugOn(n > max);
+		}
+	}
+	hlist_bl_unlock(files);
+
+	return n;
+}
+
+static struct file **au_farray_alloc(struct super_block *sb,
+				     unsigned long long *max)
+{
+	struct au_sbinfo *sbi;
+
+	sbi = au_sbi(sb);
+	*max = au_lcnt_read(&sbi->si_nfiles, /*do_rev*/1);
+	return au_array_alloc(max, au_farray_cb, sb, /*arg*/NULL);
+}
+
+static void au_farray_free(struct file **a, unsigned long long max)
+{
+	unsigned long long ull;
+
+	for (ull = 0; ull < max; ull++)
+		if (a[ull])
+			fput(a[ull]);
+	kvfree(a);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * delete a branch
+ */
+
+/* to show the line number, do not make it inlined function */
+#define AuVerbose(do_info, fmt, ...) do { \
+	if (do_info) \
+		pr_info(fmt, ##__VA_ARGS__); \
+} while (0)
+
+static int au_test_ibusy(struct inode *inode, aufs_bindex_t btop,
+			 aufs_bindex_t bbot)
+{
+	return (inode && !S_ISDIR(inode->i_mode)) || btop == bbot;
+}
+
+static int au_test_dbusy(struct dentry *dentry, aufs_bindex_t btop,
+			 aufs_bindex_t bbot)
+{
+	return au_test_ibusy(d_inode(dentry), btop, bbot);
+}
+
+/*
+ * test if the branch is deletable or not.
+ */
+static int test_dentry_busy(struct dentry *root, aufs_bindex_t bindex,
+			    unsigned int sigen, const unsigned int verbose)
+{
+	int err, i, j, ndentry;
+	aufs_bindex_t btop, bbot;
+	struct au_dcsub_pages dpages;
+	struct au_dpage *dpage;
+	struct dentry *d;
+
+	err = au_dpages_init(&dpages, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+	err = au_dcsub_pages(&dpages, root, NULL, NULL);
+	if (unlikely(err))
+		goto out_dpages;
+
+	for (i = 0; !err && i < dpages.ndpage; i++) {
+		dpage = dpages.dpages + i;
+		ndentry = dpage->ndentry;
+		for (j = 0; !err && j < ndentry; j++) {
+			d = dpage->dentries[j];
+			AuDebugOn(au_dcount(d) <= 0);
+			if (!au_digen_test(d, sigen)) {
+				di_read_lock_child(d, AuLock_IR);
+				if (unlikely(au_dbrange_test(d))) {
+					di_read_unlock(d, AuLock_IR);
+					continue;
+				}
+			} else {
+				di_write_lock_child(d);
+				if (unlikely(au_dbrange_test(d))) {
+					di_write_unlock(d);
+					continue;
+				}
+				err = au_reval_dpath(d, sigen);
+				if (!err)
+					di_downgrade_lock(d, AuLock_IR);
+				else {
+					di_write_unlock(d);
+					break;
+				}
+			}
+
+			/* AuDbgDentry(d); */
+			btop = au_dbtop(d);
+			bbot = au_dbbot(d);
+			if (btop <= bindex
+			    && bindex <= bbot
+			    && au_h_dptr(d, bindex)
+			    && au_test_dbusy(d, btop, bbot)) {
+				err = -EBUSY;
+				AuVerbose(verbose, "busy %pd\n", d);
+				AuDbgDentry(d);
+			}
+			di_read_unlock(d, AuLock_IR);
+		}
+	}
+
+out_dpages:
+	au_dpages_free(&dpages);
+out:
+	return err;
+}
+
+static int test_inode_busy(struct super_block *sb, aufs_bindex_t bindex,
+			   unsigned int sigen, const unsigned int verbose)
+{
+	int err;
+	unsigned long long max, ull;
+	struct inode *i, **array;
+	aufs_bindex_t btop, bbot;
+
+	array = au_iarray_alloc(sb, &max);
+	err = PTR_ERR(array);
+	if (IS_ERR(array))
+		goto out;
+
+	err = 0;
+	AuDbg("b%d\n", bindex);
+	for (ull = 0; !err && ull < max; ull++) {
+		i = array[ull];
+		if (unlikely(!i))
+			break;
+		if (i->i_ino == AUFS_ROOT_INO)
+			continue;
+
+		/* AuDbgInode(i); */
+		if (au_iigen(i, NULL) == sigen)
+			ii_read_lock_child(i);
+		else {
+			ii_write_lock_child(i);
+			err = au_refresh_hinode_self(i);
+			au_iigen_dec(i);
+			if (!err)
+				ii_downgrade_lock(i);
+			else {
+				ii_write_unlock(i);
+				break;
+			}
+		}
+
+		btop = au_ibtop(i);
+		bbot = au_ibbot(i);
+		if (btop <= bindex
+		    && bindex <= bbot
+		    && au_h_iptr(i, bindex)
+		    && au_test_ibusy(i, btop, bbot)) {
+			err = -EBUSY;
+			AuVerbose(verbose, "busy i%lu\n", i->i_ino);
+			AuDbgInode(i);
+		}
+		ii_read_unlock(i);
+	}
+	au_iarray_free(array, max);
+
+out:
+	return err;
+}
+
+static int test_children_busy(struct dentry *root, aufs_bindex_t bindex,
+			      const unsigned int verbose)
+{
+	int err;
+	unsigned int sigen;
+
+	sigen = au_sigen(root->d_sb);
+	DiMustNoWaiters(root);
+	IiMustNoWaiters(d_inode(root));
+	di_write_unlock(root);
+	err = test_dentry_busy(root, bindex, sigen, verbose);
+	if (!err)
+		err = test_inode_busy(root->d_sb, bindex, sigen, verbose);
+	di_write_lock_child(root); /* aufs_write_lock() calls ..._child() */
+
+	return err;
+}
+
+static int test_dir_busy(struct file *file, aufs_bindex_t br_id,
+			 struct file **to_free, int *idx)
+{
+	int err;
+	unsigned char matched, root;
+	aufs_bindex_t bindex, bbot;
+	struct au_fidir *fidir;
+	struct au_hfile *hfile;
+
+	err = 0;
+	root = IS_ROOT(file->f_path.dentry);
+	if (root) {
+		get_file(file);
+		to_free[*idx] = file;
+		(*idx)++;
+		goto out;
+	}
+
+	matched = 0;
+	fidir = au_fi(file)->fi_hdir;
+	AuDebugOn(!fidir);
+	bbot = au_fbbot_dir(file);
+	for (bindex = au_fbtop(file); bindex <= bbot; bindex++) {
+		hfile = fidir->fd_hfile + bindex;
+		if (!hfile->hf_file)
+			continue;
+
+		if (hfile->hf_br->br_id == br_id) {
+			matched = 1;
+			break;
+		}
+	}
+	if (matched)
+		err = -EBUSY;
+
+out:
+	return err;
+}
+
+static int test_file_busy(struct super_block *sb, aufs_bindex_t br_id,
+			  struct file **to_free, int opened)
+{
+	int err, idx;
+	unsigned long long ull, max;
+	aufs_bindex_t btop;
+	struct file *file, **array;
+	struct dentry *root;
+	struct au_hfile *hfile;
+
+	array = au_farray_alloc(sb, &max);
+	err = PTR_ERR(array);
+	if (IS_ERR(array))
+		goto out;
+
+	err = 0;
+	idx = 0;
+	root = sb->s_root;
+	di_write_unlock(root);
+	for (ull = 0; ull < max; ull++) {
+		file = array[ull];
+		if (unlikely(!file))
+			break;
+
+		/* AuDbg("%pD\n", file); */
+		fi_read_lock(file);
+		btop = au_fbtop(file);
+		if (!d_is_dir(file->f_path.dentry)) {
+			hfile = &au_fi(file)->fi_htop;
+			if (hfile->hf_br->br_id == br_id)
+				err = -EBUSY;
+		} else
+			err = test_dir_busy(file, br_id, to_free, &idx);
+		fi_read_unlock(file);
+		if (unlikely(err))
+			break;
+	}
+	di_write_lock_child(root);
+	au_farray_free(array, max);
+	AuDebugOn(idx > opened);
+
+out:
+	return err;
+}
+
+static void br_del_file(struct file **to_free, unsigned long long opened,
+			aufs_bindex_t br_id)
+{
+	unsigned long long ull;
+	aufs_bindex_t bindex, btop, bbot, bfound;
+	struct file *file;
+	struct au_fidir *fidir;
+	struct au_hfile *hfile;
+
+	for (ull = 0; ull < opened; ull++) {
+		file = to_free[ull];
+		if (unlikely(!file))
+			break;
+
+		/* AuDbg("%pD\n", file); */
+		AuDebugOn(!d_is_dir(file->f_path.dentry));
+		bfound = -1;
+		fidir = au_fi(file)->fi_hdir;
+		AuDebugOn(!fidir);
+		fi_write_lock(file);
+		btop = au_fbtop(file);
+		bbot = au_fbbot_dir(file);
+		for (bindex = btop; bindex <= bbot; bindex++) {
+			hfile = fidir->fd_hfile + bindex;
+			if (!hfile->hf_file)
+				continue;
+
+			if (hfile->hf_br->br_id == br_id) {
+				bfound = bindex;
+				break;
+			}
+		}
+		AuDebugOn(bfound < 0);
+		au_set_h_fptr(file, bfound, NULL);
+		if (bfound == btop) {
+			for (btop++; btop <= bbot; btop++)
+				if (au_hf_dir(file, btop)) {
+					au_set_fbtop(file, btop);
+					break;
+				}
+		}
+		fi_write_unlock(file);
+	}
+}
+
+static void au_br_do_del_brp(struct au_sbinfo *sbinfo,
+			     const aufs_bindex_t bindex,
+			     const aufs_bindex_t bbot)
+{
+	struct au_branch **brp, **p;
+
+	AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+	brp = sbinfo->si_branch + bindex;
+	if (bindex < bbot)
+		memmove(brp, brp + 1, sizeof(*brp) * (bbot - bindex));
+	sbinfo->si_branch[0 + bbot] = NULL;
+	sbinfo->si_bbot--;
+
+	p = au_krealloc(sbinfo->si_branch, sizeof(*p) * bbot, AuGFP_SBILIST,
+			/*may_shrink*/1);
+	if (p)
+		sbinfo->si_branch = p;
+	/* harmless error */
+}
+
+static void au_br_do_del_hdp(struct au_dinfo *dinfo, const aufs_bindex_t bindex,
+			     const aufs_bindex_t bbot)
+{
+	struct au_hdentry *hdp, *p;
+
+	AuRwMustWriteLock(&dinfo->di_rwsem);
+
+	hdp = au_hdentry(dinfo, bindex);
+	if (bindex < bbot)
+		memmove(hdp, hdp + 1, sizeof(*hdp) * (bbot - bindex));
+	/* au_h_dentry_init(au_hdentry(dinfo, bbot); */
+	dinfo->di_bbot--;
+
+	p = au_krealloc(dinfo->di_hdentry, sizeof(*p) * bbot, AuGFP_SBILIST,
+			/*may_shrink*/1);
+	if (p)
+		dinfo->di_hdentry = p;
+	/* harmless error */
+}
+
+static void au_br_do_del_hip(struct au_iinfo *iinfo, const aufs_bindex_t bindex,
+			     const aufs_bindex_t bbot)
+{
+	struct au_hinode *hip, *p;
+
+	AuRwMustWriteLock(&iinfo->ii_rwsem);
+
+	hip = au_hinode(iinfo, bindex);
+	if (bindex < bbot)
+		memmove(hip, hip + 1, sizeof(*hip) * (bbot - bindex));
+	/* au_hinode_init(au_hinode(iinfo, bbot)); */
+	iinfo->ii_bbot--;
+
+	p = au_krealloc(iinfo->ii_hinode, sizeof(*p) * bbot, AuGFP_SBILIST,
+			/*may_shrink*/1);
+	if (p)
+		iinfo->ii_hinode = p;
+	/* harmless error */
+}
+
+static void au_br_do_del(struct super_block *sb, aufs_bindex_t bindex,
+			 struct au_branch *br)
+{
+	aufs_bindex_t bbot;
+	struct au_sbinfo *sbinfo;
+	struct dentry *root, *h_root;
+	struct inode *inode, *h_inode;
+	struct au_hinode *hinode;
+
+	SiMustWriteLock(sb);
+
+	root = sb->s_root;
+	inode = d_inode(root);
+	sbinfo = au_sbi(sb);
+	bbot = sbinfo->si_bbot;
+
+	h_root = au_h_dptr(root, bindex);
+	hinode = au_hi(inode, bindex);
+	h_inode = au_igrab(hinode->hi_inode);
+	au_hiput(hinode);
+
+	au_sbilist_lock();
+	au_br_do_del_brp(sbinfo, bindex, bbot);
+	au_br_do_del_hdp(au_di(root), bindex, bbot);
+	au_br_do_del_hip(au_ii(inode), bindex, bbot);
+	au_sbilist_unlock();
+
+	/* ignore an error */
+	au_dr_br_fin(sb, br); /* always, regardless the mount option */
+
+	dput(h_root);
+	iput(h_inode);
+	au_br_do_free(br);
+}
+
+static unsigned long long empty_cb(struct super_block *sb, void *array,
+				   unsigned long long max, void *arg)
+{
+	return max;
+}
+
+int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount)
+{
+	int err, rerr, i;
+	unsigned long long opened;
+	unsigned int mnt_flags;
+	aufs_bindex_t bindex, bbot, br_id;
+	unsigned char do_wh, verbose;
+	struct au_branch *br;
+	struct au_wbr *wbr;
+	struct dentry *root;
+	struct file **to_free;
+
+	err = 0;
+	opened = 0;
+	to_free = NULL;
+	root = sb->s_root;
+	bindex = au_find_dbindex(root, del->h_path.dentry);
+	if (bindex < 0) {
+		if (remount)
+			goto out; /* success */
+		err = -ENOENT;
+		pr_err("%s no such branch\n", del->pathname);
+		goto out;
+	}
+	AuDbg("bindex b%d\n", bindex);
+
+	err = -EBUSY;
+	mnt_flags = au_mntflags(sb);
+	verbose = !!au_opt_test(mnt_flags, VERBOSE);
+	bbot = au_sbbot(sb);
+	if (unlikely(!bbot)) {
+		AuVerbose(verbose, "no more branches left\n");
+		goto out;
+	}
+
+	br = au_sbr(sb, bindex);
+	AuDebugOn(!path_equal(&br->br_path, &del->h_path));
+	if (unlikely(au_lcnt_read(&br->br_count, /*do_rev*/1))) {
+		AuVerbose(verbose, "br %pd2 is busy now\n", del->h_path.dentry);
+		goto out;
+	}
+
+	br_id = br->br_id;
+	opened = au_lcnt_read(&br->br_nfiles, /*do_rev*/1);
+	if (unlikely(opened)) {
+		to_free = au_array_alloc(&opened, empty_cb, sb, NULL);
+		err = PTR_ERR(to_free);
+		if (IS_ERR(to_free))
+			goto out;
+
+		err = test_file_busy(sb, br_id, to_free, opened);
+		if (unlikely(err)) {
+			AuVerbose(verbose, "%llu file(s) opened\n", opened);
+			goto out;
+		}
+	}
+
+	wbr = br->br_wbr;
+	do_wh = wbr && (wbr->wbr_whbase || wbr->wbr_plink || wbr->wbr_orph);
+	if (do_wh) {
+		/* instead of WbrWhMustWriteLock(wbr) */
+		SiMustWriteLock(sb);
+		for (i = 0; i < AuBrWh_Last; i++) {
+			dput(wbr->wbr_wh[i]);
+			wbr->wbr_wh[i] = NULL;
+		}
+	}
+
+	err = test_children_busy(root, bindex, verbose);
+	if (unlikely(err)) {
+		if (do_wh)
+			goto out_wh;
+		goto out;
+	}
+
+	err = 0;
+	if (to_free) {
+		/*
+		 * now we confirmed the branch is deletable.
+		 * let's free the remaining opened dirs on the branch.
+		 */
+		di_write_unlock(root);
+		br_del_file(to_free, opened, br_id);
+		di_write_lock_child(root);
+	}
+
+	sysaufs_brs_del(sb, bindex);	/* remove successors */
+	dbgaufs_xino_del(br);		/* remove one */
+	au_br_do_del(sb, bindex, br);
+	sysaufs_brs_add(sb, bindex);	/* append successors */
+	dbgaufs_brs_add(sb, bindex, /*topdown*/1);	/* rename successors */
+
+	if (!bindex) {
+		au_cpup_attr_all(d_inode(root), /*force*/1);
+		sb->s_maxbytes = au_sbr_sb(sb, 0)->s_maxbytes;
+	} else
+		au_sub_nlink(d_inode(root), d_inode(del->h_path.dentry));
+	if (au_opt_test(mnt_flags, PLINK))
+		au_plink_half_refresh(sb, br_id);
+
+	goto out; /* success */
+
+out_wh:
+	/* revert */
+	rerr = au_br_init_wh(sb, br, br->br_perm);
+	if (rerr)
+		pr_warn("failed re-creating base whiteout, %s. (%d)\n",
+			del->pathname, rerr);
+out:
+	if (to_free)
+		au_farray_free(to_free, opened);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_ibusy(struct super_block *sb, struct aufs_ibusy __user *arg)
+{
+	int err;
+	aufs_bindex_t btop, bbot;
+	struct aufs_ibusy ibusy;
+	struct inode *inode, *h_inode;
+
+	err = -EPERM;
+	if (unlikely(!capable(CAP_SYS_ADMIN)))
+		goto out;
+
+	err = copy_from_user(&ibusy, arg, sizeof(ibusy));
+	if (!err)
+		/* VERIFY_WRITE */
+		err = !access_ok(&arg->h_ino, sizeof(arg->h_ino));
+	if (unlikely(err)) {
+		err = -EFAULT;
+		AuTraceErr(err);
+		goto out;
+	}
+
+	err = -EINVAL;
+	si_read_lock(sb, AuLock_FLUSH);
+	if (unlikely(ibusy.bindex < 0 || ibusy.bindex > au_sbbot(sb)))
+		goto out_unlock;
+
+	err = 0;
+	ibusy.h_ino = 0; /* invalid */
+	inode = ilookup(sb, ibusy.ino);
+	if (!inode
+	    || inode->i_ino == AUFS_ROOT_INO
+	    || au_is_bad_inode(inode))
+		goto out_unlock;
+
+	ii_read_lock_child(inode);
+	btop = au_ibtop(inode);
+	bbot = au_ibbot(inode);
+	if (btop <= ibusy.bindex && ibusy.bindex <= bbot) {
+		h_inode = au_h_iptr(inode, ibusy.bindex);
+		if (h_inode && au_test_ibusy(inode, btop, bbot))
+			ibusy.h_ino = h_inode->i_ino;
+	}
+	ii_read_unlock(inode);
+	iput(inode);
+
+out_unlock:
+	si_read_unlock(sb);
+	if (!err) {
+		err = __put_user(ibusy.h_ino, &arg->h_ino);
+		if (unlikely(err)) {
+			err = -EFAULT;
+			AuTraceErr(err);
+		}
+	}
+out:
+	return err;
+}
+
+long au_ibusy_ioctl(struct file *file, unsigned long arg)
+{
+	return au_ibusy(file->f_path.dentry->d_sb, (void __user *)arg);
+}
+
+#ifdef CONFIG_COMPAT
+long au_ibusy_compat_ioctl(struct file *file, unsigned long arg)
+{
+	return au_ibusy(file->f_path.dentry->d_sb, compat_ptr(arg));
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * change a branch permission
+ */
+
+static void au_warn_ima(void)
+{
+#ifdef CONFIG_IMA
+	/* since it doesn't support mark_files_ro() */
+	AuWarn1("RW -> RO makes IMA to produce wrong message\n");
+#endif
+}
+
+static int do_need_sigen_inc(int a, int b)
+{
+	return au_br_whable(a) && !au_br_whable(b);
+}
+
+static int need_sigen_inc(int old, int new)
+{
+	return do_need_sigen_inc(old, new)
+		|| do_need_sigen_inc(new, old);
+}
+
+static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+{
+	int err, do_warn;
+	unsigned int mnt_flags;
+	unsigned long long ull, max;
+	aufs_bindex_t br_id;
+	unsigned char verbose, writer;
+	struct file *file, *hf, **array;
+	struct au_hfile *hfile;
+	struct inode *h_inode;
+
+	mnt_flags = au_mntflags(sb);
+	verbose = !!au_opt_test(mnt_flags, VERBOSE);
+
+	array = au_farray_alloc(sb, &max);
+	err = PTR_ERR(array);
+	if (IS_ERR(array))
+		goto out;
+
+	do_warn = 0;
+	br_id = au_sbr_id(sb, bindex);
+	for (ull = 0; ull < max; ull++) {
+		file = array[ull];
+		if (unlikely(!file))
+			break;
+
+		/* AuDbg("%pD\n", file); */
+		fi_read_lock(file);
+		if (unlikely(au_test_mmapped(file))) {
+			err = -EBUSY;
+			AuVerbose(verbose, "mmapped %pD\n", file);
+			AuDbgFile(file);
+			FiMustNoWaiters(file);
+			fi_read_unlock(file);
+			goto out_array;
+		}
+
+		hfile = &au_fi(file)->fi_htop;
+		hf = hfile->hf_file;
+		if (!d_is_reg(file->f_path.dentry)
+		    || !(file->f_mode & FMODE_WRITE)
+		    || hfile->hf_br->br_id != br_id
+		    || !(hf->f_mode & FMODE_WRITE))
+			array[ull] = NULL;
+		else {
+			do_warn = 1;
+			get_file(file);
+		}
+
+		FiMustNoWaiters(file);
+		fi_read_unlock(file);
+		fput(file);
+	}
+
+	err = 0;
+	if (do_warn)
+		au_warn_ima();
+
+	for (ull = 0; ull < max; ull++) {
+		file = array[ull];
+		if (!file)
+			continue;
+
+		/* todo: already flushed? */
+		/*
+		 * fs/super.c:mark_files_ro() is gone, but aufs keeps its
+		 * approach which resets f_mode and calls mnt_drop_write() and
+		 * file_release_write() for each file, because the branch
+		 * attribute in aufs world is totally different from the native
+		 * fs rw/ro mode.
+		*/
+		/* fi_read_lock(file); */
+		hfile = &au_fi(file)->fi_htop;
+		hf = hfile->hf_file;
+		/* fi_read_unlock(file); */
+		spin_lock(&hf->f_lock);
+		writer = !!(hf->f_mode & FMODE_WRITER);
+		hf->f_mode &= ~(FMODE_WRITE | FMODE_WRITER);
+		spin_unlock(&hf->f_lock);
+		if (writer) {
+			h_inode = file_inode(hf);
+			put_write_access(h_inode);
+			__mnt_drop_write(hf->f_path.mnt);
+			if ((hf->f_mode & (FMODE_READ | FMODE_WRITE))
+			    == FMODE_READ)
+				i_readcount_inc(h_inode);
+		}
+	}
+
+out_array:
+	au_farray_free(array, max);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount,
+	      int *do_refresh)
+{
+	int err, rerr;
+	aufs_bindex_t bindex;
+	struct dentry *root;
+	struct au_branch *br;
+	struct au_br_fhsm *bf;
+
+	root = sb->s_root;
+	bindex = au_find_dbindex(root, mod->h_root);
+	if (bindex < 0) {
+		if (remount)
+			return 0; /* success */
+		err = -ENOENT;
+		pr_err("%s no such branch\n", mod->path);
+		goto out;
+	}
+	AuDbg("bindex b%d\n", bindex);
+
+	err = test_br(d_inode(mod->h_root), mod->perm, mod->path);
+	if (unlikely(err))
+		goto out;
+
+	br = au_sbr(sb, bindex);
+	AuDebugOn(mod->h_root != au_br_dentry(br));
+	if (br->br_perm == mod->perm)
+		return 0; /* success */
+
+	/* pre-allocate for non-fhsm --> fhsm */
+	bf = NULL;
+	if (!au_br_fhsm(br->br_perm) && au_br_fhsm(mod->perm)) {
+		err = au_fhsm_br_alloc(br);
+		if (unlikely(err))
+			goto out;
+		bf = br->br_fhsm;
+		br->br_fhsm = NULL;
+	}
+
+	if (au_br_writable(br->br_perm)) {
+		/* remove whiteout base */
+		err = au_br_init_wh(sb, br, mod->perm);
+		if (unlikely(err))
+			goto out_bf;
+
+		if (!au_br_writable(mod->perm)) {
+			/* rw --> ro, file might be mmapped */
+			DiMustNoWaiters(root);
+			IiMustNoWaiters(d_inode(root));
+			di_write_unlock(root);
+			err = au_br_mod_files_ro(sb, bindex);
+			/* aufs_write_lock() calls ..._child() */
+			di_write_lock_child(root);
+
+			if (unlikely(err)) {
+				rerr = -ENOMEM;
+				br->br_wbr = kzalloc(sizeof(*br->br_wbr),
+						     GFP_NOFS);
+				if (br->br_wbr)
+					rerr = au_wbr_init(br, sb, br->br_perm);
+				if (unlikely(rerr)) {
+					AuIOErr("nested error %d (%d)\n",
+						rerr, err);
+					br->br_perm = mod->perm;
+				}
+			}
+		}
+	} else if (au_br_writable(mod->perm)) {
+		/* ro --> rw */
+		err = -ENOMEM;
+		br->br_wbr = kzalloc(sizeof(*br->br_wbr), GFP_NOFS);
+		if (br->br_wbr) {
+			err = au_wbr_init(br, sb, mod->perm);
+			if (unlikely(err)) {
+				au_kfree_rcu(br->br_wbr);
+				br->br_wbr = NULL;
+			}
+		}
+	}
+	if (unlikely(err))
+		goto out_bf;
+
+	if (au_br_fhsm(br->br_perm)) {
+		if (!au_br_fhsm(mod->perm)) {
+			/* fhsm --> non-fhsm */
+			au_br_fhsm_fin(br->br_fhsm);
+			au_kfree_rcu(br->br_fhsm);
+			br->br_fhsm = NULL;
+		}
+	} else if (au_br_fhsm(mod->perm))
+		/* non-fhsm --> fhsm */
+		br->br_fhsm = bf;
+
+	*do_refresh |= need_sigen_inc(br->br_perm, mod->perm);
+	br->br_perm = mod->perm;
+	goto out; /* success */
+
+out_bf:
+	au_kfree_try_rcu(bf);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_br_stfs(struct au_branch *br, struct aufs_stfs *stfs)
+{
+	int err;
+	struct kstatfs kstfs;
+
+	err = vfs_statfs(&br->br_path, &kstfs);
+	if (!err) {
+		stfs->f_blocks = kstfs.f_blocks;
+		stfs->f_bavail = kstfs.f_bavail;
+		stfs->f_files = kstfs.f_files;
+		stfs->f_ffree = kstfs.f_ffree;
+	}
+
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/branch.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/branch.h
@@ -0,0 +1,366 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * branch filesystems and xino for them
+ */
+
+#ifndef __AUFS_BRANCH_H__
+#define __AUFS_BRANCH_H__
+
+#ifdef __KERNEL__
+
+#include <linux/mount.h>
+#include "dirren.h"
+#include "dynop.h"
+#include "lcnt.h"
+#include "rwsem.h"
+#include "super.h"
+
+/* ---------------------------------------------------------------------- */
+
+/* a xino file */
+struct au_xino {
+	struct file		**xi_file;
+	unsigned int		xi_nfile;
+
+	struct {
+		spinlock_t		spin;
+		ino_t			*array;
+		int			total;
+		/* reserved for future use */
+		/* unsigned long	*bitmap; */
+		wait_queue_head_t	wqh;
+	} xi_nondir;
+
+	struct mutex		xi_mtx;	/* protects xi_file array */
+	struct hlist_bl_head	xi_writing;
+
+	atomic_t		xi_truncating;
+
+	struct kref		xi_kref;
+};
+
+/* File-based Hierarchical Storage Management */
+struct au_br_fhsm {
+#ifdef CONFIG_AUFS_FHSM
+	struct mutex		bf_lock;
+	unsigned long		bf_jiffy;
+	struct aufs_stfs	bf_stfs;
+	int			bf_readable;
+#endif
+};
+
+/* members for writable branch only */
+enum {AuBrWh_BASE, AuBrWh_PLINK, AuBrWh_ORPH, AuBrWh_Last};
+struct au_wbr {
+	struct au_rwsem		wbr_wh_rwsem;
+	struct dentry		*wbr_wh[AuBrWh_Last];
+	atomic_t		wbr_wh_running;
+#define wbr_whbase		wbr_wh[AuBrWh_BASE]	/* whiteout base */
+#define wbr_plink		wbr_wh[AuBrWh_PLINK]	/* pseudo-link dir */
+#define wbr_orph		wbr_wh[AuBrWh_ORPH]	/* dir for orphans */
+
+	/* mfs mode */
+	unsigned long long	wbr_bytes;
+};
+
+/* ext2 has 3 types of operations at least, ext3 has 4 */
+#define AuBrDynOp (AuDyLast * 4)
+
+#ifdef CONFIG_AUFS_HFSNOTIFY
+/* support for asynchronous destruction */
+struct au_br_hfsnotify {
+	struct fsnotify_group	*hfsn_group;
+};
+#endif
+
+/* sysfs entries */
+struct au_brsysfs {
+	char			name[16];
+	struct attribute	attr;
+};
+
+enum {
+	AuBrSysfs_BR,
+	AuBrSysfs_BRID,
+	AuBrSysfs_Last
+};
+
+/* protected by superblock rwsem */
+struct au_branch {
+	struct au_xino		*br_xino;
+
+	aufs_bindex_t		br_id;
+
+	int			br_perm;
+	struct path		br_path;
+	spinlock_t		br_dykey_lock;
+	struct au_dykey		*br_dykey[AuBrDynOp];
+	au_lcnt_t		br_nfiles;	/* opened files */
+	au_lcnt_t		br_count;	/* in-use for other */
+
+	struct au_wbr		*br_wbr;
+	struct au_br_fhsm	*br_fhsm;
+
+#ifdef CONFIG_AUFS_HFSNOTIFY
+	struct au_br_hfsnotify	*br_hfsn;
+#endif
+
+#ifdef CONFIG_SYSFS
+	/* entries under sysfs per mount-point */
+	struct au_brsysfs	br_sysfs[AuBrSysfs_Last];
+#endif
+
+#ifdef CONFIG_DEBUG_FS
+	struct dentry		 *br_dbgaufs; /* xino */
+#endif
+
+	struct au_dr_br		br_dirren;
+};
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct vfsmount *au_br_mnt(struct au_branch *br)
+{
+	return br->br_path.mnt;
+}
+
+static inline struct dentry *au_br_dentry(struct au_branch *br)
+{
+	return br->br_path.dentry;
+}
+
+static inline struct super_block *au_br_sb(struct au_branch *br)
+{
+	return au_br_mnt(br)->mnt_sb;
+}
+
+static inline int au_br_rdonly(struct au_branch *br)
+{
+	return (sb_rdonly(au_br_sb(br))
+		|| !au_br_writable(br->br_perm))
+		? -EROFS : 0;
+}
+
+static inline int au_br_hnotifyable(int brperm __maybe_unused)
+{
+#ifdef CONFIG_AUFS_HNOTIFY
+	return !(brperm & AuBrPerm_RR);
+#else
+	return 0;
+#endif
+}
+
+static inline int au_br_test_oflag(int oflag, struct au_branch *br)
+{
+	int err, exec_flag;
+
+	err = 0;
+	exec_flag = oflag & __FMODE_EXEC;
+	if (unlikely(exec_flag && path_noexec(&br->br_path)))
+		err = -EACCES;
+
+	return err;
+}
+
+static inline void au_xino_get(struct au_branch *br)
+{
+	struct au_xino *xi;
+
+	xi = br->br_xino;
+	if (xi)
+		kref_get(&xi->xi_kref);
+}
+
+static inline int au_xino_count(struct au_branch *br)
+{
+	int v;
+	struct au_xino *xi;
+
+	v = 0;
+	xi = br->br_xino;
+	if (xi)
+		v = kref_read(&xi->xi_kref);
+
+	return v;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* branch.c */
+struct au_sbinfo;
+void au_br_free(struct au_sbinfo *sinfo);
+int au_br_index(struct super_block *sb, aufs_bindex_t br_id);
+struct au_opt_add;
+int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount);
+struct au_opt_del;
+int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount);
+long au_ibusy_ioctl(struct file *file, unsigned long arg);
+#ifdef CONFIG_COMPAT
+long au_ibusy_compat_ioctl(struct file *file, unsigned long arg);
+#endif
+struct au_opt_mod;
+int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount,
+	      int *do_refresh);
+struct aufs_stfs;
+int au_br_stfs(struct au_branch *br, struct aufs_stfs *stfs);
+
+/* xino.c */
+static const loff_t au_loff_max = LLONG_MAX;
+
+aufs_bindex_t au_xi_root(struct super_block *sb, struct dentry *dentry);
+struct file *au_xino_create(struct super_block *sb, char *fpath, int silent,
+			    int wbrtop);
+struct file *au_xino_create2(struct super_block *sb, struct path *base,
+			     struct file *copy_src);
+struct au_xi_new {
+	struct au_xino *xi;	/* switch between xino and xigen */
+	int idx;
+	struct path *base;
+	struct file *copy_src;
+};
+struct file *au_xi_new(struct super_block *sb, struct au_xi_new *xinew);
+
+int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+		 ino_t *ino);
+int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+		  ino_t ino);
+ssize_t xino_fread(vfs_readf_t func, struct file *file, void *buf, size_t size,
+		   loff_t *pos);
+ssize_t xino_fwrite(vfs_writef_t func, struct file *file, void *buf,
+		    size_t size, loff_t *pos);
+
+int au_xib_trunc(struct super_block *sb);
+int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex, int idx_begin);
+
+struct au_xino *au_xino_alloc(unsigned int nfile);
+int au_xino_put(struct au_branch *br);
+struct file *au_xino_file1(struct au_xino *xi);
+
+struct au_opt_xino;
+void au_xino_clr(struct super_block *sb);
+int au_xino_set(struct super_block *sb, struct au_opt_xino *xiopt, int remount);
+struct file *au_xino_def(struct super_block *sb);
+int au_xino_init_br(struct super_block *sb, struct au_branch *br, ino_t hino,
+		    struct path *base);
+
+ino_t au_xino_new_ino(struct super_block *sb);
+void au_xino_delete_inode(struct inode *inode, const int unlinked);
+
+void au_xinondir_leave(struct super_block *sb, aufs_bindex_t bindex,
+		       ino_t h_ino, int idx);
+int au_xinondir_enter(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+		      int *idx);
+
+int au_xino_path(struct seq_file *seq, struct file *file);
+
+/* ---------------------------------------------------------------------- */
+
+/* @idx is signed to accept -1 meaning the first file */
+static inline struct file *au_xino_file(struct au_xino *xi, int idx)
+{
+	struct file *file;
+
+	file = NULL;
+	if (!xi)
+		goto out;
+
+	if (idx >= 0) {
+		if (idx < xi->xi_nfile)
+			file = xi->xi_file[idx];
+	} else
+		file = au_xino_file1(xi);
+
+out:
+	return file;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* Superblock to branch */
+static inline
+aufs_bindex_t au_sbr_id(struct super_block *sb, aufs_bindex_t bindex)
+{
+	return au_sbr(sb, bindex)->br_id;
+}
+
+static inline
+struct vfsmount *au_sbr_mnt(struct super_block *sb, aufs_bindex_t bindex)
+{
+	return au_br_mnt(au_sbr(sb, bindex));
+}
+
+static inline
+struct super_block *au_sbr_sb(struct super_block *sb, aufs_bindex_t bindex)
+{
+	return au_br_sb(au_sbr(sb, bindex));
+}
+
+static inline int au_sbr_perm(struct super_block *sb, aufs_bindex_t bindex)
+{
+	return au_sbr(sb, bindex)->br_perm;
+}
+
+static inline int au_sbr_whable(struct super_block *sb, aufs_bindex_t bindex)
+{
+	return au_br_whable(au_sbr_perm(sb, bindex));
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define wbr_wh_read_lock(wbr)	au_rw_read_lock(&(wbr)->wbr_wh_rwsem)
+#define wbr_wh_write_lock(wbr)	au_rw_write_lock(&(wbr)->wbr_wh_rwsem)
+#define wbr_wh_read_trylock(wbr)	au_rw_read_trylock(&(wbr)->wbr_wh_rwsem)
+#define wbr_wh_write_trylock(wbr) au_rw_write_trylock(&(wbr)->wbr_wh_rwsem)
+/*
+#define wbr_wh_read_trylock_nested(wbr) \
+	au_rw_read_trylock_nested(&(wbr)->wbr_wh_rwsem)
+#define wbr_wh_write_trylock_nested(wbr) \
+	au_rw_write_trylock_nested(&(wbr)->wbr_wh_rwsem)
+*/
+
+#define wbr_wh_read_unlock(wbr)	au_rw_read_unlock(&(wbr)->wbr_wh_rwsem)
+#define wbr_wh_write_unlock(wbr)	au_rw_write_unlock(&(wbr)->wbr_wh_rwsem)
+#define wbr_wh_downgrade_lock(wbr)	au_rw_dgrade_lock(&(wbr)->wbr_wh_rwsem)
+
+#define WbrWhMustNoWaiters(wbr)	AuRwMustNoWaiters(&(wbr)->wbr_wh_rwsem)
+#define WbrWhMustAnyLock(wbr)	AuRwMustAnyLock(&(wbr)->wbr_wh_rwsem)
+#define WbrWhMustWriteLock(wbr)	AuRwMustWriteLock(&(wbr)->wbr_wh_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_FHSM
+static inline void au_br_fhsm_init(struct au_br_fhsm *brfhsm)
+{
+	mutex_init(&brfhsm->bf_lock);
+	brfhsm->bf_jiffy = 0;
+	brfhsm->bf_readable = 0;
+}
+
+static inline void au_br_fhsm_fin(struct au_br_fhsm *brfhsm)
+{
+	mutex_destroy(&brfhsm->bf_lock);
+}
+#else
+AuStubVoid(au_br_fhsm_init, struct au_br_fhsm *brfhsm)
+AuStubVoid(au_br_fhsm_fin, struct au_br_fhsm *brfhsm)
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_BRANCH_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/conf.mk
+++ linux-gkeop-5.4-5.4.0/fs/aufs/conf.mk
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: GPL-2.0
+
+AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS}
+
+define AuConf
+ifdef ${1}
+AuConfStr += ${1}=${${1}}
+endif
+endef
+
+AuConfAll = BRANCH_MAX_127 BRANCH_MAX_511 BRANCH_MAX_1023 BRANCH_MAX_32767 \
+	SBILIST \
+	HNOTIFY HFSNOTIFY \
+	EXPORT INO_T_64 \
+	XATTR \
+	FHSM \
+	RDU \
+	DIRREN \
+	SHWH \
+	BR_RAMFS \
+	BR_FUSE POLL \
+	BR_HFSPLUS \
+	BDEV_LOOP \
+	DEBUG MAGIC_SYSRQ
+$(foreach i, ${AuConfAll}, \
+	$(eval $(call AuConf,CONFIG_AUFS_${i})))
+
+AuConfName = ${obj}/conf.str
+${AuConfName}.tmp: FORCE
+	@echo ${AuConfStr} | tr ' ' '\n' | sed -e 's/^/"/' -e 's/$$/\\n"/' > $@
+${AuConfName}: ${AuConfName}.tmp
+	@diff -q $< $@ > /dev/null 2>&1 || { \
+	echo '  GEN    ' $@; \
+	cp -p $< $@; \
+	}
+FORCE:
+clean-files += ${AuConfName} ${AuConfName}.tmp
+${obj}/sysfs.o: ${AuConfName}
+
+-include ${srctree}/${src}/conf_priv.mk
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/cpup.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/cpup.c
@@ -0,0 +1,1458 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * copy-up functions, see wbr_policy.c for copy-down
+ */
+
+#include <linux/fs_stack.h>
+#include <linux/mm.h>
+#include <linux/task_work.h>
+#include "aufs.h"
+
+void au_cpup_attr_flags(struct inode *dst, unsigned int iflags)
+{
+	const unsigned int mask = S_DEAD | S_SWAPFILE | S_PRIVATE
+		| S_NOATIME | S_NOCMTIME | S_AUTOMOUNT;
+
+	BUILD_BUG_ON(sizeof(iflags) != sizeof(dst->i_flags));
+
+	dst->i_flags |= iflags & ~mask;
+	if (au_test_fs_notime(dst->i_sb))
+		dst->i_flags |= S_NOATIME | S_NOCMTIME;
+}
+
+void au_cpup_attr_timesizes(struct inode *inode)
+{
+	struct inode *h_inode;
+
+	h_inode = au_h_iptr(inode, au_ibtop(inode));
+	fsstack_copy_attr_times(inode, h_inode);
+	fsstack_copy_inode_size(inode, h_inode);
+}
+
+void au_cpup_attr_nlink(struct inode *inode, int force)
+{
+	struct inode *h_inode;
+	struct super_block *sb;
+	aufs_bindex_t bindex, bbot;
+
+	sb = inode->i_sb;
+	bindex = au_ibtop(inode);
+	h_inode = au_h_iptr(inode, bindex);
+	if (!force
+	    && !S_ISDIR(h_inode->i_mode)
+	    && au_opt_test(au_mntflags(sb), PLINK)
+	    && au_plink_test(inode))
+		return;
+
+	/*
+	 * 0 can happen in revalidating.
+	 * h_inode->i_mutex may not be held here, but it is harmless since once
+	 * i_nlink reaches 0, it will never become positive except O_TMPFILE
+	 * case.
+	 * todo: O_TMPFILE+linkat(AT_SYMLINK_FOLLOW) bypassing aufs may cause
+	 *	 the incorrect link count.
+	 */
+	set_nlink(inode, h_inode->i_nlink);
+
+	/*
+	 * fewer nlink makes find(1) noisy, but larger nlink doesn't.
+	 * it may includes whplink directory.
+	 */
+	if (S_ISDIR(h_inode->i_mode)) {
+		bbot = au_ibbot(inode);
+		for (bindex++; bindex <= bbot; bindex++) {
+			h_inode = au_h_iptr(inode, bindex);
+			if (h_inode)
+				au_add_nlink(inode, h_inode);
+		}
+	}
+}
+
+void au_cpup_attr_changeable(struct inode *inode)
+{
+	struct inode *h_inode;
+
+	h_inode = au_h_iptr(inode, au_ibtop(inode));
+	inode->i_mode = h_inode->i_mode;
+	inode->i_uid = h_inode->i_uid;
+	inode->i_gid = h_inode->i_gid;
+	au_cpup_attr_timesizes(inode);
+	au_cpup_attr_flags(inode, h_inode->i_flags);
+}
+
+void au_cpup_igen(struct inode *inode, struct inode *h_inode)
+{
+	struct au_iinfo *iinfo = au_ii(inode);
+
+	IiMustWriteLock(inode);
+
+	iinfo->ii_higen = h_inode->i_generation;
+	iinfo->ii_hsb1 = h_inode->i_sb;
+}
+
+void au_cpup_attr_all(struct inode *inode, int force)
+{
+	struct inode *h_inode;
+
+	h_inode = au_h_iptr(inode, au_ibtop(inode));
+	au_cpup_attr_changeable(inode);
+	if (inode->i_nlink > 0)
+		au_cpup_attr_nlink(inode, force);
+	inode->i_rdev = h_inode->i_rdev;
+	inode->i_blkbits = h_inode->i_blkbits;
+	au_cpup_igen(inode, h_inode);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* Note: dt_dentry and dt_h_dentry are not dget/dput-ed */
+
+/* keep the timestamps of the parent dir when cpup */
+void au_dtime_store(struct au_dtime *dt, struct dentry *dentry,
+		    struct path *h_path)
+{
+	struct inode *h_inode;
+
+	dt->dt_dentry = dentry;
+	dt->dt_h_path = *h_path;
+	h_inode = d_inode(h_path->dentry);
+	dt->dt_atime = h_inode->i_atime;
+	dt->dt_mtime = h_inode->i_mtime;
+	/* smp_mb(); */
+}
+
+void au_dtime_revert(struct au_dtime *dt)
+{
+	struct iattr attr;
+	int err;
+
+	attr.ia_atime = dt->dt_atime;
+	attr.ia_mtime = dt->dt_mtime;
+	attr.ia_valid = ATTR_FORCE | ATTR_MTIME | ATTR_MTIME_SET
+		| ATTR_ATIME | ATTR_ATIME_SET;
+
+	/* no delegation since this is a directory */
+	err = vfsub_notify_change(&dt->dt_h_path, &attr, /*delegated*/NULL);
+	if (unlikely(err))
+		pr_warn("restoring timestamps failed(%d). ignored\n", err);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* internal use only */
+struct au_cpup_reg_attr {
+	int		valid;
+	struct kstat	st;
+	unsigned int	iflags; /* inode->i_flags */
+};
+
+static noinline_for_stack
+int cpup_iattr(struct dentry *dst, aufs_bindex_t bindex, struct dentry *h_src,
+	       struct au_cpup_reg_attr *h_src_attr)
+{
+	int err, sbits, icex;
+	unsigned int mnt_flags;
+	unsigned char verbose;
+	struct iattr ia;
+	struct path h_path;
+	struct inode *h_isrc, *h_idst;
+	struct kstat *h_st;
+	struct au_branch *br;
+
+	h_path.dentry = au_h_dptr(dst, bindex);
+	h_idst = d_inode(h_path.dentry);
+	br = au_sbr(dst->d_sb, bindex);
+	h_path.mnt = au_br_mnt(br);
+	h_isrc = d_inode(h_src);
+	ia.ia_valid = ATTR_FORCE | ATTR_UID | ATTR_GID
+		| ATTR_ATIME | ATTR_MTIME
+		| ATTR_ATIME_SET | ATTR_MTIME_SET;
+	if (h_src_attr && h_src_attr->valid) {
+		h_st = &h_src_attr->st;
+		ia.ia_uid = h_st->uid;
+		ia.ia_gid = h_st->gid;
+		ia.ia_atime = h_st->atime;
+		ia.ia_mtime = h_st->mtime;
+		if (h_idst->i_mode != h_st->mode
+		    && !S_ISLNK(h_idst->i_mode)) {
+			ia.ia_valid |= ATTR_MODE;
+			ia.ia_mode = h_st->mode;
+		}
+		sbits = !!(h_st->mode & (S_ISUID | S_ISGID));
+		au_cpup_attr_flags(h_idst, h_src_attr->iflags);
+	} else {
+		ia.ia_uid = h_isrc->i_uid;
+		ia.ia_gid = h_isrc->i_gid;
+		ia.ia_atime = h_isrc->i_atime;
+		ia.ia_mtime = h_isrc->i_mtime;
+		if (h_idst->i_mode != h_isrc->i_mode
+		    && !S_ISLNK(h_idst->i_mode)) {
+			ia.ia_valid |= ATTR_MODE;
+			ia.ia_mode = h_isrc->i_mode;
+		}
+		sbits = !!(h_isrc->i_mode & (S_ISUID | S_ISGID));
+		au_cpup_attr_flags(h_idst, h_isrc->i_flags);
+	}
+	/* no delegation since it is just created */
+	err = vfsub_notify_change(&h_path, &ia, /*delegated*/NULL);
+
+	/* is this nfs only? */
+	if (!err && sbits && au_test_nfs(h_path.dentry->d_sb)) {
+		ia.ia_valid = ATTR_FORCE | ATTR_MODE;
+		ia.ia_mode = h_isrc->i_mode;
+		err = vfsub_notify_change(&h_path, &ia, /*delegated*/NULL);
+	}
+
+	icex = br->br_perm & AuBrAttr_ICEX;
+	if (!err) {
+		mnt_flags = au_mntflags(dst->d_sb);
+		verbose = !!au_opt_test(mnt_flags, VERBOSE);
+		err = au_cpup_xattr(h_path.dentry, h_src, icex, verbose);
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_copy_file(struct file *dst, struct file *src, loff_t len,
+			   char *buf, unsigned long blksize)
+{
+	int err;
+	size_t sz, rbytes, wbytes;
+	unsigned char all_zero;
+	char *p, *zp;
+	struct inode *h_inode;
+	/* reduce stack usage */
+	struct iattr *ia;
+
+	zp = page_address(ZERO_PAGE(0));
+	if (unlikely(!zp))
+		return -ENOMEM; /* possible? */
+
+	err = 0;
+	all_zero = 0;
+	while (len) {
+		AuDbg("len %lld\n", len);
+		sz = blksize;
+		if (len < blksize)
+			sz = len;
+
+		rbytes = 0;
+		/* todo: signal_pending? */
+		while (!rbytes || err == -EAGAIN || err == -EINTR) {
+			rbytes = vfsub_read_k(src, buf, sz, &src->f_pos);
+			err = rbytes;
+		}
+		if (unlikely(err < 0))
+			break;
+
+		all_zero = 0;
+		if (len >= rbytes && rbytes == blksize)
+			all_zero = !memcmp(buf, zp, rbytes);
+		if (!all_zero) {
+			wbytes = rbytes;
+			p = buf;
+			while (wbytes) {
+				size_t b;
+
+				b = vfsub_write_k(dst, p, wbytes, &dst->f_pos);
+				err = b;
+				/* todo: signal_pending? */
+				if (unlikely(err == -EAGAIN || err == -EINTR))
+					continue;
+				if (unlikely(err < 0))
+					break;
+				wbytes -= b;
+				p += b;
+			}
+			if (unlikely(err < 0))
+				break;
+		} else {
+			loff_t res;
+
+			AuLabel(hole);
+			res = vfsub_llseek(dst, rbytes, SEEK_CUR);
+			err = res;
+			if (unlikely(res < 0))
+				break;
+		}
+		len -= rbytes;
+		err = 0;
+	}
+
+	/* the last block may be a hole */
+	if (!err && all_zero) {
+		AuLabel(last hole);
+
+		err = 1;
+		if (au_test_nfs(dst->f_path.dentry->d_sb)) {
+			/* nfs requires this step to make last hole */
+			/* is this only nfs? */
+			do {
+				/* todo: signal_pending? */
+				err = vfsub_write_k(dst, "\0", 1, &dst->f_pos);
+			} while (err == -EAGAIN || err == -EINTR);
+			if (err == 1)
+				dst->f_pos--;
+		}
+
+		if (err == 1) {
+			ia = (void *)buf;
+			ia->ia_size = dst->f_pos;
+			ia->ia_valid = ATTR_SIZE | ATTR_FILE;
+			ia->ia_file = dst;
+			h_inode = file_inode(dst);
+			inode_lock_nested(h_inode, AuLsc_I_CHILD2);
+			/* no delegation since it is just created */
+			err = vfsub_notify_change(&dst->f_path, ia,
+						  /*delegated*/NULL);
+			inode_unlock(h_inode);
+		}
+	}
+
+	return err;
+}
+
+int au_copy_file(struct file *dst, struct file *src, loff_t len)
+{
+	int err;
+	unsigned long blksize;
+	unsigned char do_kfree;
+	char *buf;
+	struct super_block *h_sb;
+
+	err = -ENOMEM;
+	h_sb = file_inode(dst)->i_sb;
+	blksize = h_sb->s_blocksize;
+	if (!blksize || PAGE_SIZE < blksize)
+		blksize = PAGE_SIZE;
+	AuDbg("blksize %lu\n", blksize);
+	do_kfree = (blksize != PAGE_SIZE && blksize >= sizeof(struct iattr *));
+	if (do_kfree)
+		buf = kmalloc(blksize, GFP_NOFS);
+	else
+		buf = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!buf))
+		goto out;
+
+	if (len > (1 << 22))
+		AuDbg("copying a large file %lld\n", (long long)len);
+
+	src->f_pos = 0;
+	dst->f_pos = 0;
+	err = au_do_copy_file(dst, src, len, buf, blksize);
+	if (do_kfree) {
+		AuDebugOn(!au_kfree_do_sz_test(blksize));
+		au_kfree_do_rcu(buf);
+	} else
+		free_page((unsigned long)buf);
+
+out:
+	return err;
+}
+
+static int au_do_copy(struct file *dst, struct file *src, loff_t len)
+{
+	int err;
+	struct super_block *h_src_sb;
+	struct inode *h_src_inode;
+
+	h_src_inode = file_inode(src);
+	h_src_sb = h_src_inode->i_sb;
+
+	/* XFS acquires inode_lock */
+	if (!au_test_xfs(h_src_sb))
+		err = au_copy_file(dst, src, len);
+	else {
+		inode_unlock_shared(h_src_inode);
+		err = au_copy_file(dst, src, len);
+		inode_lock_shared_nested(h_src_inode, AuLsc_I_CHILD);
+	}
+
+	return err;
+}
+
+static int au_clone_or_copy(struct file *dst, struct file *src, loff_t len)
+{
+	int err;
+	loff_t lo;
+	struct super_block *h_src_sb;
+	struct inode *h_src_inode;
+
+	h_src_inode = file_inode(src);
+	h_src_sb = h_src_inode->i_sb;
+	if (h_src_sb != file_inode(dst)->i_sb
+	    || !dst->f_op->remap_file_range) {
+		err = au_do_copy(dst, src, len);
+		goto out;
+	}
+
+	if (!au_test_nfs(h_src_sb)) {
+		inode_unlock_shared(h_src_inode);
+		lo = vfsub_clone_file_range(src, dst, len);
+		inode_lock_shared_nested(h_src_inode, AuLsc_I_CHILD);
+	} else
+		lo = vfsub_clone_file_range(src, dst, len);
+	if (lo == len) {
+		err = 0;
+		goto out; /* success */
+	} else if (lo >= 0)
+		/* todo: possible? */
+		/* paritially succeeded */
+		AuDbg("lo %lld, len %lld. Retrying.\n", lo, len);
+	else if (lo != -EOPNOTSUPP) {
+		/* older XFS has a condition in cloning */
+		err = lo;
+		goto out;
+	}
+
+	/* the backend fs on NFS may not support cloning */
+	err = au_do_copy(dst, src, len);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * to support a sparse file which is opened with O_APPEND,
+ * we need to close the file.
+ */
+static int au_cp_regular(struct au_cp_generic *cpg)
+{
+	int err, i;
+	enum { SRC, DST };
+	struct {
+		aufs_bindex_t bindex;
+		unsigned int flags;
+		struct dentry *dentry;
+		int force_wr;
+		struct file *file;
+	} *f, file[] = {
+		{
+			.bindex = cpg->bsrc,
+			.flags = O_RDONLY | O_NOATIME | O_LARGEFILE,
+		},
+		{
+			.bindex = cpg->bdst,
+			.flags = O_WRONLY | O_NOATIME | O_LARGEFILE,
+			.force_wr = !!au_ftest_cpup(cpg->flags, RWDST),
+		}
+	};
+	struct au_branch *br;
+	struct super_block *sb, *h_src_sb;
+	struct inode *h_src_inode;
+	struct task_struct *tsk = current;
+
+	/* bsrc branch can be ro/rw. */
+	sb = cpg->dentry->d_sb;
+	f = file;
+	for (i = 0; i < 2; i++, f++) {
+		f->dentry = au_h_dptr(cpg->dentry, f->bindex);
+		f->file = au_h_open(cpg->dentry, f->bindex, f->flags,
+				    /*file*/NULL, f->force_wr);
+		if (IS_ERR(f->file)) {
+			err = PTR_ERR(f->file);
+			if (i == SRC)
+				goto out;
+			else
+				goto out_src;
+		}
+	}
+
+	/* try stopping to update while we copyup */
+	h_src_inode = d_inode(file[SRC].dentry);
+	h_src_sb = h_src_inode->i_sb;
+	if (!au_test_nfs(h_src_sb))
+		IMustLock(h_src_inode);
+	err = au_clone_or_copy(file[DST].file, file[SRC].file, cpg->len);
+
+	/* i wonder if we had O_NO_DELAY_FPUT flag */
+	if (tsk->flags & PF_KTHREAD)
+		__fput_sync(file[DST].file);
+	else {
+		/* it happened actually */
+		fput(file[DST].file);
+		/*
+		 * too bad.
+		 * we have to call both since we don't know which place the file
+		 * was added to.
+		 */
+		task_work_run();
+		flush_delayed_fput();
+	}
+	br = au_sbr(sb, file[DST].bindex);
+	au_lcnt_dec(&br->br_nfiles);
+
+out_src:
+	fput(file[SRC].file);
+	br = au_sbr(sb, file[SRC].bindex);
+	au_lcnt_dec(&br->br_nfiles);
+out:
+	return err;
+}
+
+static int au_do_cpup_regular(struct au_cp_generic *cpg,
+			      struct au_cpup_reg_attr *h_src_attr)
+{
+	int err, rerr;
+	loff_t l;
+	struct path h_path;
+	struct inode *h_src_inode, *h_dst_inode;
+
+	err = 0;
+	h_src_inode = au_h_iptr(d_inode(cpg->dentry), cpg->bsrc);
+	l = i_size_read(h_src_inode);
+	if (cpg->len == -1 || l < cpg->len)
+		cpg->len = l;
+	if (cpg->len) {
+		/* try stopping to update while we are referencing */
+		inode_lock_shared_nested(h_src_inode, AuLsc_I_CHILD);
+		au_pin_hdir_unlock(cpg->pin);
+
+		h_path.dentry = au_h_dptr(cpg->dentry, cpg->bsrc);
+		h_path.mnt = au_sbr_mnt(cpg->dentry->d_sb, cpg->bsrc);
+		h_src_attr->iflags = h_src_inode->i_flags;
+		if (!au_test_nfs(h_src_inode->i_sb))
+			err = vfsub_getattr(&h_path, &h_src_attr->st);
+		else {
+			inode_unlock_shared(h_src_inode);
+			err = vfsub_getattr(&h_path, &h_src_attr->st);
+			inode_lock_shared_nested(h_src_inode, AuLsc_I_CHILD);
+		}
+		if (unlikely(err)) {
+			inode_unlock_shared(h_src_inode);
+			goto out;
+		}
+		h_src_attr->valid = 1;
+		if (!au_test_nfs(h_src_inode->i_sb)) {
+			err = au_cp_regular(cpg);
+			inode_unlock_shared(h_src_inode);
+		} else {
+			inode_unlock_shared(h_src_inode);
+			err = au_cp_regular(cpg);
+		}
+		rerr = au_pin_hdir_relock(cpg->pin);
+		if (!err && rerr)
+			err = rerr;
+	}
+	if (!err && (h_src_inode->i_state & I_LINKABLE)) {
+		h_path.dentry = au_h_dptr(cpg->dentry, cpg->bdst);
+		h_dst_inode = d_inode(h_path.dentry);
+		spin_lock(&h_dst_inode->i_lock);
+		h_dst_inode->i_state |= I_LINKABLE;
+		spin_unlock(&h_dst_inode->i_lock);
+	}
+
+out:
+	return err;
+}
+
+static int au_do_cpup_symlink(struct path *h_path, struct dentry *h_src,
+			      struct inode *h_dir)
+{
+	int err, symlen;
+	mm_segment_t old_fs;
+	union {
+		char *k;
+		char __user *u;
+	} sym;
+
+	err = -ENOMEM;
+	sym.k = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!sym.k))
+		goto out;
+
+	/* unnecessary to support mmap_sem since symlink is not mmap-able */
+	old_fs = get_fs();
+	set_fs(KERNEL_DS);
+	symlen = vfs_readlink(h_src, sym.u, PATH_MAX);
+	err = symlen;
+	set_fs(old_fs);
+
+	if (symlen > 0) {
+		sym.k[symlen] = 0;
+		err = vfsub_symlink(h_dir, h_path, sym.k);
+	}
+	free_page((unsigned long)sym.k);
+
+out:
+	return err;
+}
+
+/*
+ * regardless 'acl' option, reset all ACL.
+ * All ACL will be copied up later from the original entry on the lower branch.
+ */
+static int au_reset_acl(struct inode *h_dir, struct path *h_path, umode_t mode)
+{
+	int err;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+
+	h_dentry = h_path->dentry;
+	h_inode = d_inode(h_dentry);
+	/* forget_all_cached_acls(h_inode)); */
+	err = vfsub_removexattr(h_dentry, XATTR_NAME_POSIX_ACL_ACCESS);
+	AuTraceErr(err);
+	if (err == -EOPNOTSUPP)
+		err = 0;
+	if (!err)
+		err = vfsub_acl_chmod(h_inode, mode);
+
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_do_cpup_dir(struct au_cp_generic *cpg, struct dentry *dst_parent,
+			  struct inode *h_dir, struct path *h_path)
+{
+	int err;
+	struct inode *dir, *inode;
+
+	err = vfsub_removexattr(h_path->dentry, XATTR_NAME_POSIX_ACL_DEFAULT);
+	AuTraceErr(err);
+	if (err == -EOPNOTSUPP)
+		err = 0;
+	if (unlikely(err))
+		goto out;
+
+	/*
+	 * strange behaviour from the users view,
+	 * particularly setattr case
+	 */
+	dir = d_inode(dst_parent);
+	if (au_ibtop(dir) == cpg->bdst)
+		au_cpup_attr_nlink(dir, /*force*/1);
+	inode = d_inode(cpg->dentry);
+	au_cpup_attr_nlink(inode, /*force*/1);
+
+out:
+	return err;
+}
+
+static noinline_for_stack
+int cpup_entry(struct au_cp_generic *cpg, struct dentry *dst_parent,
+	       struct au_cpup_reg_attr *h_src_attr)
+{
+	int err;
+	umode_t mode;
+	unsigned int mnt_flags;
+	unsigned char isdir, isreg, force;
+	const unsigned char do_dt = !!au_ftest_cpup(cpg->flags, DTIME);
+	struct au_dtime dt;
+	struct path h_path;
+	struct dentry *h_src, *h_dst, *h_parent;
+	struct inode *h_inode, *h_dir;
+	struct super_block *sb;
+
+	/* bsrc branch can be ro/rw. */
+	h_src = au_h_dptr(cpg->dentry, cpg->bsrc);
+	h_inode = d_inode(h_src);
+	AuDebugOn(h_inode != au_h_iptr(d_inode(cpg->dentry), cpg->bsrc));
+
+	/* try stopping to be referenced while we are creating */
+	h_dst = au_h_dptr(cpg->dentry, cpg->bdst);
+	if (au_ftest_cpup(cpg->flags, RENAME))
+		AuDebugOn(strncmp(h_dst->d_name.name, AUFS_WH_PFX,
+				  AUFS_WH_PFX_LEN));
+	h_parent = h_dst->d_parent; /* dir inode is locked */
+	h_dir = d_inode(h_parent);
+	IMustLock(h_dir);
+	AuDebugOn(h_parent != h_dst->d_parent);
+
+	sb = cpg->dentry->d_sb;
+	h_path.mnt = au_sbr_mnt(sb, cpg->bdst);
+	if (do_dt) {
+		h_path.dentry = h_parent;
+		au_dtime_store(&dt, dst_parent, &h_path);
+	}
+	h_path.dentry = h_dst;
+
+	isreg = 0;
+	isdir = 0;
+	mode = h_inode->i_mode;
+	switch (mode & S_IFMT) {
+	case S_IFREG:
+		isreg = 1;
+		err = vfsub_create(h_dir, &h_path, 0600, /*want_excl*/true);
+		if (!err)
+			err = au_do_cpup_regular(cpg, h_src_attr);
+		break;
+	case S_IFDIR:
+		isdir = 1;
+		err = vfsub_mkdir(h_dir, &h_path, mode);
+		if (!err)
+			err = au_do_cpup_dir(cpg, dst_parent, h_dir, &h_path);
+		break;
+	case S_IFLNK:
+		err = au_do_cpup_symlink(&h_path, h_src, h_dir);
+		break;
+	case S_IFCHR:
+	case S_IFBLK:
+		AuDebugOn(!capable(CAP_MKNOD));
+		/*FALLTHROUGH*/
+	case S_IFIFO:
+	case S_IFSOCK:
+		err = vfsub_mknod(h_dir, &h_path, mode, h_inode->i_rdev);
+		break;
+	default:
+		AuIOErr("Unknown inode type 0%o\n", mode);
+		err = -EIO;
+	}
+	if (!err)
+		err = au_reset_acl(h_dir, &h_path, mode);
+
+	mnt_flags = au_mntflags(sb);
+	if (!au_opt_test(mnt_flags, UDBA_NONE)
+	    && !isdir
+	    && au_opt_test(mnt_flags, XINO)
+	    && (h_inode->i_nlink == 1
+		|| (h_inode->i_state & I_LINKABLE))
+	    /* todo: unnecessary? */
+	    /* && d_inode(cpg->dentry)->i_nlink == 1 */
+	    && cpg->bdst < cpg->bsrc
+	    && !au_ftest_cpup(cpg->flags, KEEPLINO))
+		au_xino_write(sb, cpg->bsrc, h_inode->i_ino, /*ino*/0);
+		/* ignore this error */
+
+	if (!err) {
+		force = 0;
+		if (isreg) {
+			force = !!cpg->len;
+			if (cpg->len == -1)
+				force = !!i_size_read(h_inode);
+		}
+		au_fhsm_wrote(sb, cpg->bdst, force);
+	}
+
+	if (do_dt)
+		au_dtime_revert(&dt);
+	return err;
+}
+
+static int au_do_ren_after_cpup(struct au_cp_generic *cpg, struct path *h_path)
+{
+	int err;
+	struct dentry *dentry, *h_dentry, *h_parent, *parent;
+	struct inode *h_dir;
+	aufs_bindex_t bdst;
+
+	dentry = cpg->dentry;
+	bdst = cpg->bdst;
+	h_dentry = au_h_dptr(dentry, bdst);
+	if (!au_ftest_cpup(cpg->flags, OVERWRITE)) {
+		dget(h_dentry);
+		au_set_h_dptr(dentry, bdst, NULL);
+		err = au_lkup_neg(dentry, bdst, /*wh*/0);
+		if (!err)
+			h_path->dentry = dget(au_h_dptr(dentry, bdst));
+		au_set_h_dptr(dentry, bdst, h_dentry);
+	} else {
+		err = 0;
+		parent = dget_parent(dentry);
+		h_parent = au_h_dptr(parent, bdst);
+		dput(parent);
+		h_path->dentry = vfsub_lkup_one(&dentry->d_name, h_parent);
+		if (IS_ERR(h_path->dentry))
+			err = PTR_ERR(h_path->dentry);
+	}
+	if (unlikely(err))
+		goto out;
+
+	h_parent = h_dentry->d_parent; /* dir inode is locked */
+	h_dir = d_inode(h_parent);
+	IMustLock(h_dir);
+	AuDbg("%pd %pd\n", h_dentry, h_path->dentry);
+	/* no delegation since it is just created */
+	err = vfsub_rename(h_dir, h_dentry, h_dir, h_path, /*delegated*/NULL,
+			   /*flags*/0);
+	dput(h_path->dentry);
+
+out:
+	return err;
+}
+
+/*
+ * copyup the @dentry from @bsrc to @bdst.
+ * the caller must set the both of lower dentries.
+ * @len is for truncating when it is -1 copyup the entire file.
+ * in link/rename cases, @dst_parent may be different from the real one.
+ * basic->bsrc can be larger than basic->bdst.
+ * aufs doesn't touch the credential so
+ * security_inode_copy_up{,_xattr}() are unnecessary.
+ */
+static int au_cpup_single(struct au_cp_generic *cpg, struct dentry *dst_parent)
+{
+	int err, rerr;
+	aufs_bindex_t old_ibtop;
+	unsigned char isdir, plink;
+	struct dentry *h_src, *h_dst, *h_parent;
+	struct inode *dst_inode, *h_dir, *inode, *delegated, *src_inode;
+	struct super_block *sb;
+	struct au_branch *br;
+	/* to reduce stack size */
+	struct {
+		struct au_dtime dt;
+		struct path h_path;
+		struct au_cpup_reg_attr h_src_attr;
+	} *a;
+
+	err = -ENOMEM;
+	a = kmalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+	a->h_src_attr.valid = 0;
+
+	sb = cpg->dentry->d_sb;
+	br = au_sbr(sb, cpg->bdst);
+	a->h_path.mnt = au_br_mnt(br);
+	h_dst = au_h_dptr(cpg->dentry, cpg->bdst);
+	h_parent = h_dst->d_parent; /* dir inode is locked */
+	h_dir = d_inode(h_parent);
+	IMustLock(h_dir);
+
+	h_src = au_h_dptr(cpg->dentry, cpg->bsrc);
+	inode = d_inode(cpg->dentry);
+
+	if (!dst_parent)
+		dst_parent = dget_parent(cpg->dentry);
+	else
+		dget(dst_parent);
+
+	plink = !!au_opt_test(au_mntflags(sb), PLINK);
+	dst_inode = au_h_iptr(inode, cpg->bdst);
+	if (dst_inode) {
+		if (unlikely(!plink)) {
+			err = -EIO;
+			AuIOErr("hi%lu(i%lu) exists on b%d "
+				"but plink is disabled\n",
+				dst_inode->i_ino, inode->i_ino, cpg->bdst);
+			goto out_parent;
+		}
+
+		if (dst_inode->i_nlink) {
+			const int do_dt = au_ftest_cpup(cpg->flags, DTIME);
+
+			h_src = au_plink_lkup(inode, cpg->bdst);
+			err = PTR_ERR(h_src);
+			if (IS_ERR(h_src))
+				goto out_parent;
+			if (unlikely(d_is_negative(h_src))) {
+				err = -EIO;
+				AuIOErr("i%lu exists on b%d "
+					"but not pseudo-linked\n",
+					inode->i_ino, cpg->bdst);
+				dput(h_src);
+				goto out_parent;
+			}
+
+			if (do_dt) {
+				a->h_path.dentry = h_parent;
+				au_dtime_store(&a->dt, dst_parent, &a->h_path);
+			}
+
+			a->h_path.dentry = h_dst;
+			delegated = NULL;
+			err = vfsub_link(h_src, h_dir, &a->h_path, &delegated);
+			if (!err && au_ftest_cpup(cpg->flags, RENAME))
+				err = au_do_ren_after_cpup(cpg, &a->h_path);
+			if (do_dt)
+				au_dtime_revert(&a->dt);
+			if (unlikely(err == -EWOULDBLOCK)) {
+				pr_warn("cannot retry for NFSv4 delegation"
+					" for an internal link\n");
+				iput(delegated);
+			}
+			dput(h_src);
+			goto out_parent;
+		} else
+			/* todo: cpup_wh_file? */
+			/* udba work */
+			au_update_ibrange(inode, /*do_put_zero*/1);
+	}
+
+	isdir = S_ISDIR(inode->i_mode);
+	old_ibtop = au_ibtop(inode);
+	err = cpup_entry(cpg, dst_parent, &a->h_src_attr);
+	if (unlikely(err))
+		goto out_rev;
+	dst_inode = d_inode(h_dst);
+	inode_lock_nested(dst_inode, AuLsc_I_CHILD2);
+	/* todo: necessary? */
+	/* au_pin_hdir_unlock(cpg->pin); */
+
+	err = cpup_iattr(cpg->dentry, cpg->bdst, h_src, &a->h_src_attr);
+	if (unlikely(err)) {
+		/* todo: necessary? */
+		/* au_pin_hdir_relock(cpg->pin); */ /* ignore an error */
+		inode_unlock(dst_inode);
+		goto out_rev;
+	}
+
+	if (cpg->bdst < old_ibtop) {
+		if (S_ISREG(inode->i_mode)) {
+			err = au_dy_iaop(inode, cpg->bdst, dst_inode);
+			if (unlikely(err)) {
+				/* ignore an error */
+				/* au_pin_hdir_relock(cpg->pin); */
+				inode_unlock(dst_inode);
+				goto out_rev;
+			}
+		}
+		au_set_ibtop(inode, cpg->bdst);
+	} else
+		au_set_ibbot(inode, cpg->bdst);
+	au_set_h_iptr(inode, cpg->bdst, au_igrab(dst_inode),
+		      au_hi_flags(inode, isdir));
+
+	/* todo: necessary? */
+	/* err = au_pin_hdir_relock(cpg->pin); */
+	inode_unlock(dst_inode);
+	if (unlikely(err))
+		goto out_rev;
+
+	src_inode = d_inode(h_src);
+	if (!isdir
+	    && (src_inode->i_nlink > 1
+		|| src_inode->i_state & I_LINKABLE)
+	    && plink)
+		au_plink_append(inode, cpg->bdst, h_dst);
+
+	if (au_ftest_cpup(cpg->flags, RENAME)) {
+		a->h_path.dentry = h_dst;
+		err = au_do_ren_after_cpup(cpg, &a->h_path);
+	}
+	if (!err)
+		goto out_parent; /* success */
+
+	/* revert */
+out_rev:
+	a->h_path.dentry = h_parent;
+	au_dtime_store(&a->dt, dst_parent, &a->h_path);
+	a->h_path.dentry = h_dst;
+	rerr = 0;
+	if (d_is_positive(h_dst)) {
+		if (!isdir) {
+			/* no delegation since it is just created */
+			rerr = vfsub_unlink(h_dir, &a->h_path,
+					    /*delegated*/NULL, /*force*/0);
+		} else
+			rerr = vfsub_rmdir(h_dir, &a->h_path);
+	}
+	au_dtime_revert(&a->dt);
+	if (rerr) {
+		AuIOErr("failed removing broken entry(%d, %d)\n", err, rerr);
+		err = -EIO;
+	}
+out_parent:
+	dput(dst_parent);
+	au_kfree_rcu(a);
+out:
+	return err;
+}
+
+#if 0 /* reserved */
+struct au_cpup_single_args {
+	int *errp;
+	struct au_cp_generic *cpg;
+	struct dentry *dst_parent;
+};
+
+static void au_call_cpup_single(void *args)
+{
+	struct au_cpup_single_args *a = args;
+
+	au_pin_hdir_acquire_nest(a->cpg->pin);
+	*a->errp = au_cpup_single(a->cpg, a->dst_parent);
+	au_pin_hdir_release(a->cpg->pin);
+}
+#endif
+
+/*
+ * prevent SIGXFSZ in copy-up.
+ * testing CAP_MKNOD is for generic fs,
+ * but CAP_FSETID is for xfs only, currently.
+ */
+static int au_cpup_sio_test(struct au_pin *pin, umode_t mode)
+{
+	int do_sio;
+	struct super_block *sb;
+	struct inode *h_dir;
+
+	do_sio = 0;
+	sb = au_pinned_parent(pin)->d_sb;
+	if (!au_wkq_test()
+	    && (!au_sbi(sb)->si_plink_maint_pid
+		|| au_plink_maint(sb, AuLock_NOPLM))) {
+		switch (mode & S_IFMT) {
+		case S_IFREG:
+			/* no condition about RLIMIT_FSIZE and the file size */
+			do_sio = 1;
+			break;
+		case S_IFCHR:
+		case S_IFBLK:
+			do_sio = !capable(CAP_MKNOD);
+			break;
+		}
+		if (!do_sio)
+			do_sio = ((mode & (S_ISUID | S_ISGID))
+				  && !capable(CAP_FSETID));
+		/* this workaround may be removed in the future */
+		if (!do_sio) {
+			h_dir = au_pinned_h_dir(pin);
+			do_sio = h_dir->i_mode & S_ISVTX;
+		}
+	}
+
+	return do_sio;
+}
+
+#if 0 /* reserved */
+int au_sio_cpup_single(struct au_cp_generic *cpg, struct dentry *dst_parent)
+{
+	int err, wkq_err;
+	struct dentry *h_dentry;
+
+	h_dentry = au_h_dptr(cpg->dentry, cpg->bsrc);
+	if (!au_cpup_sio_test(pin, d_inode(h_dentry)->i_mode))
+		err = au_cpup_single(cpg, dst_parent);
+	else {
+		struct au_cpup_single_args args = {
+			.errp		= &err,
+			.cpg		= cpg,
+			.dst_parent	= dst_parent
+		};
+		wkq_err = au_wkq_wait(au_call_cpup_single, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+
+	return err;
+}
+#endif
+
+/*
+ * copyup the @dentry from the first active lower branch to @bdst,
+ * using au_cpup_single().
+ */
+static int au_cpup_simple(struct au_cp_generic *cpg)
+{
+	int err;
+	unsigned int flags_orig;
+	struct dentry *dentry;
+
+	AuDebugOn(cpg->bsrc < 0);
+
+	dentry = cpg->dentry;
+	DiMustWriteLock(dentry);
+
+	err = au_lkup_neg(dentry, cpg->bdst, /*wh*/1);
+	if (!err) {
+		flags_orig = cpg->flags;
+		au_fset_cpup(cpg->flags, RENAME);
+		err = au_cpup_single(cpg, NULL);
+		cpg->flags = flags_orig;
+		if (!err)
+			return 0; /* success */
+
+		/* revert */
+		au_set_h_dptr(dentry, cpg->bdst, NULL);
+		au_set_dbtop(dentry, cpg->bsrc);
+	}
+
+	return err;
+}
+
+struct au_cpup_simple_args {
+	int *errp;
+	struct au_cp_generic *cpg;
+};
+
+static void au_call_cpup_simple(void *args)
+{
+	struct au_cpup_simple_args *a = args;
+
+	au_pin_hdir_acquire_nest(a->cpg->pin);
+	*a->errp = au_cpup_simple(a->cpg);
+	au_pin_hdir_release(a->cpg->pin);
+}
+
+static int au_do_sio_cpup_simple(struct au_cp_generic *cpg)
+{
+	int err, wkq_err;
+	struct dentry *dentry, *parent;
+	struct file *h_file;
+	struct inode *h_dir;
+
+	dentry = cpg->dentry;
+	h_file = NULL;
+	if (au_ftest_cpup(cpg->flags, HOPEN)) {
+		AuDebugOn(cpg->bsrc < 0);
+		h_file = au_h_open_pre(dentry, cpg->bsrc, /*force_wr*/0);
+		err = PTR_ERR(h_file);
+		if (IS_ERR(h_file))
+			goto out;
+	}
+
+	parent = dget_parent(dentry);
+	h_dir = au_h_iptr(d_inode(parent), cpg->bdst);
+	if (!au_test_h_perm_sio(h_dir, MAY_EXEC | MAY_WRITE)
+	    && !au_cpup_sio_test(cpg->pin, d_inode(dentry)->i_mode))
+		err = au_cpup_simple(cpg);
+	else {
+		struct au_cpup_simple_args args = {
+			.errp		= &err,
+			.cpg		= cpg
+		};
+		wkq_err = au_wkq_wait(au_call_cpup_simple, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+
+	dput(parent);
+	if (h_file)
+		au_h_open_post(dentry, cpg->bsrc, h_file);
+
+out:
+	return err;
+}
+
+int au_sio_cpup_simple(struct au_cp_generic *cpg)
+{
+	aufs_bindex_t bsrc, bbot;
+	struct dentry *dentry, *h_dentry;
+
+	if (cpg->bsrc < 0) {
+		dentry = cpg->dentry;
+		bbot = au_dbbot(dentry);
+		for (bsrc = cpg->bdst + 1; bsrc <= bbot; bsrc++) {
+			h_dentry = au_h_dptr(dentry, bsrc);
+			if (h_dentry) {
+				AuDebugOn(d_is_negative(h_dentry));
+				break;
+			}
+		}
+		AuDebugOn(bsrc > bbot);
+		cpg->bsrc = bsrc;
+	}
+	AuDebugOn(cpg->bsrc <= cpg->bdst);
+	return au_do_sio_cpup_simple(cpg);
+}
+
+int au_sio_cpdown_simple(struct au_cp_generic *cpg)
+{
+	AuDebugOn(cpg->bdst <= cpg->bsrc);
+	return au_do_sio_cpup_simple(cpg);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * copyup the deleted file for writing.
+ */
+static int au_do_cpup_wh(struct au_cp_generic *cpg, struct dentry *wh_dentry,
+			 struct file *file)
+{
+	int err;
+	unsigned int flags_orig;
+	aufs_bindex_t bsrc_orig;
+	struct au_dinfo *dinfo;
+	struct {
+		struct au_hdentry *hd;
+		struct dentry *h_dentry;
+	} hdst, hsrc;
+
+	dinfo = au_di(cpg->dentry);
+	AuRwMustWriteLock(&dinfo->di_rwsem);
+
+	bsrc_orig = cpg->bsrc;
+	cpg->bsrc = dinfo->di_btop;
+	hdst.hd = au_hdentry(dinfo, cpg->bdst);
+	hdst.h_dentry = hdst.hd->hd_dentry;
+	hdst.hd->hd_dentry = wh_dentry;
+	dinfo->di_btop = cpg->bdst;
+
+	hsrc.h_dentry = NULL;
+	if (file) {
+		hsrc.hd = au_hdentry(dinfo, cpg->bsrc);
+		hsrc.h_dentry = hsrc.hd->hd_dentry;
+		hsrc.hd->hd_dentry = au_hf_top(file)->f_path.dentry;
+	}
+	flags_orig = cpg->flags;
+	cpg->flags = !AuCpup_DTIME;
+	err = au_cpup_single(cpg, /*h_parent*/NULL);
+	cpg->flags = flags_orig;
+	if (file) {
+		if (!err)
+			err = au_reopen_nondir(file);
+		hsrc.hd->hd_dentry = hsrc.h_dentry;
+	}
+	hdst.hd->hd_dentry = hdst.h_dentry;
+	dinfo->di_btop = cpg->bsrc;
+	cpg->bsrc = bsrc_orig;
+
+	return err;
+}
+
+static int au_cpup_wh(struct au_cp_generic *cpg, struct file *file)
+{
+	int err;
+	aufs_bindex_t bdst;
+	struct au_dtime dt;
+	struct dentry *dentry, *parent, *h_parent, *wh_dentry;
+	struct au_branch *br;
+	struct path h_path;
+
+	dentry = cpg->dentry;
+	bdst = cpg->bdst;
+	br = au_sbr(dentry->d_sb, bdst);
+	parent = dget_parent(dentry);
+	h_parent = au_h_dptr(parent, bdst);
+	wh_dentry = au_whtmp_lkup(h_parent, br, &dentry->d_name);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry))
+		goto out;
+
+	h_path.dentry = h_parent;
+	h_path.mnt = au_br_mnt(br);
+	au_dtime_store(&dt, parent, &h_path);
+	err = au_do_cpup_wh(cpg, wh_dentry, file);
+	if (unlikely(err))
+		goto out_wh;
+
+	dget(wh_dentry);
+	h_path.dentry = wh_dentry;
+	if (!d_is_dir(wh_dentry)) {
+		/* no delegation since it is just created */
+		err = vfsub_unlink(d_inode(h_parent), &h_path,
+				   /*delegated*/NULL, /*force*/0);
+	} else
+		err = vfsub_rmdir(d_inode(h_parent), &h_path);
+	if (unlikely(err)) {
+		AuIOErr("failed remove copied-up tmp file %pd(%d)\n",
+			wh_dentry, err);
+		err = -EIO;
+	}
+	au_dtime_revert(&dt);
+	au_set_hi_wh(d_inode(dentry), bdst, wh_dentry);
+
+out_wh:
+	dput(wh_dentry);
+out:
+	dput(parent);
+	return err;
+}
+
+struct au_cpup_wh_args {
+	int *errp;
+	struct au_cp_generic *cpg;
+	struct file *file;
+};
+
+static void au_call_cpup_wh(void *args)
+{
+	struct au_cpup_wh_args *a = args;
+
+	au_pin_hdir_acquire_nest(a->cpg->pin);
+	*a->errp = au_cpup_wh(a->cpg, a->file);
+	au_pin_hdir_release(a->cpg->pin);
+}
+
+int au_sio_cpup_wh(struct au_cp_generic *cpg, struct file *file)
+{
+	int err, wkq_err;
+	aufs_bindex_t bdst;
+	struct dentry *dentry, *parent, *h_orph, *h_parent;
+	struct inode *dir, *h_dir, *h_tmpdir;
+	struct au_wbr *wbr;
+	struct au_pin wh_pin, *pin_orig;
+
+	dentry = cpg->dentry;
+	bdst = cpg->bdst;
+	parent = dget_parent(dentry);
+	dir = d_inode(parent);
+	h_orph = NULL;
+	h_parent = NULL;
+	h_dir = au_igrab(au_h_iptr(dir, bdst));
+	h_tmpdir = h_dir;
+	pin_orig = NULL;
+	if (!h_dir->i_nlink) {
+		wbr = au_sbr(dentry->d_sb, bdst)->br_wbr;
+		h_orph = wbr->wbr_orph;
+
+		h_parent = dget(au_h_dptr(parent, bdst));
+		au_set_h_dptr(parent, bdst, dget(h_orph));
+		h_tmpdir = d_inode(h_orph);
+		au_set_h_iptr(dir, bdst, au_igrab(h_tmpdir), /*flags*/0);
+
+		inode_lock_nested(h_tmpdir, AuLsc_I_PARENT3);
+		/* todo: au_h_open_pre()? */
+
+		pin_orig = cpg->pin;
+		au_pin_init(&wh_pin, dentry, bdst, AuLsc_DI_PARENT,
+			    AuLsc_I_PARENT3, cpg->pin->udba, AuPin_DI_LOCKED);
+		cpg->pin = &wh_pin;
+	}
+
+	if (!au_test_h_perm_sio(h_tmpdir, MAY_EXEC | MAY_WRITE)
+	    && !au_cpup_sio_test(cpg->pin, d_inode(dentry)->i_mode))
+		err = au_cpup_wh(cpg, file);
+	else {
+		struct au_cpup_wh_args args = {
+			.errp	= &err,
+			.cpg	= cpg,
+			.file	= file
+		};
+		wkq_err = au_wkq_wait(au_call_cpup_wh, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+
+	if (h_orph) {
+		inode_unlock(h_tmpdir);
+		/* todo: au_h_open_post()? */
+		au_set_h_iptr(dir, bdst, au_igrab(h_dir), /*flags*/0);
+		au_set_h_dptr(parent, bdst, h_parent);
+		AuDebugOn(!pin_orig);
+		cpg->pin = pin_orig;
+	}
+	iput(h_dir);
+	dput(parent);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * generic routine for both of copy-up and copy-down.
+ */
+/* cf. revalidate function in file.c */
+int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst,
+	       int (*cp)(struct dentry *dentry, aufs_bindex_t bdst,
+			 struct au_pin *pin,
+			 struct dentry *h_parent, void *arg),
+	       void *arg)
+{
+	int err;
+	struct au_pin pin;
+	struct dentry *d, *parent, *h_parent, *real_parent, *h_dentry;
+
+	err = 0;
+	parent = dget_parent(dentry);
+	if (IS_ROOT(parent))
+		goto out;
+
+	au_pin_init(&pin, dentry, bdst, AuLsc_DI_PARENT2, AuLsc_I_PARENT2,
+		    au_opt_udba(dentry->d_sb), AuPin_MNT_WRITE);
+
+	/* do not use au_dpage */
+	real_parent = parent;
+	while (1) {
+		dput(parent);
+		parent = dget_parent(dentry);
+		h_parent = au_h_dptr(parent, bdst);
+		if (h_parent)
+			goto out; /* success */
+
+		/* find top dir which is necessary to cpup */
+		do {
+			d = parent;
+			dput(parent);
+			parent = dget_parent(d);
+			di_read_lock_parent3(parent, !AuLock_IR);
+			h_parent = au_h_dptr(parent, bdst);
+			di_read_unlock(parent, !AuLock_IR);
+		} while (!h_parent);
+
+		if (d != real_parent)
+			di_write_lock_child3(d);
+
+		/* somebody else might create while we were sleeping */
+		h_dentry = au_h_dptr(d, bdst);
+		if (!h_dentry || d_is_negative(h_dentry)) {
+			if (h_dentry)
+				au_update_dbtop(d);
+
+			au_pin_set_dentry(&pin, d);
+			err = au_do_pin(&pin);
+			if (!err) {
+				err = cp(d, bdst, &pin, h_parent, arg);
+				au_unpin(&pin);
+			}
+		}
+
+		if (d != real_parent)
+			di_write_unlock(d);
+		if (unlikely(err))
+			break;
+	}
+
+out:
+	dput(parent);
+	return err;
+}
+
+static int au_cpup_dir(struct dentry *dentry, aufs_bindex_t bdst,
+		       struct au_pin *pin,
+		       struct dentry *h_parent __maybe_unused,
+		       void *arg __maybe_unused)
+{
+	struct au_cp_generic cpg = {
+		.dentry	= dentry,
+		.bdst	= bdst,
+		.bsrc	= -1,
+		.len	= 0,
+		.pin	= pin,
+		.flags	= AuCpup_DTIME
+	};
+	return au_sio_cpup_simple(&cpg);
+}
+
+int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst)
+{
+	return au_cp_dirs(dentry, bdst, au_cpup_dir, NULL);
+}
+
+int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst)
+{
+	int err;
+	struct dentry *parent;
+	struct inode *dir;
+
+	parent = dget_parent(dentry);
+	dir = d_inode(parent);
+	err = 0;
+	if (au_h_iptr(dir, bdst))
+		goto out;
+
+	di_read_unlock(parent, AuLock_IR);
+	di_write_lock_parent(parent);
+	/* someone else might change our inode while we were sleeping */
+	if (!au_h_iptr(dir, bdst))
+		err = au_cpup_dirs(dentry, bdst);
+	di_downgrade_lock(parent, AuLock_IR);
+
+out:
+	dput(parent);
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/cpup.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/cpup.h
@@ -0,0 +1,100 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * copy-up/down functions
+ */
+
+#ifndef __AUFS_CPUP_H__
+#define __AUFS_CPUP_H__
+
+#ifdef __KERNEL__
+
+#include <linux/path.h>
+
+struct inode;
+struct file;
+struct au_pin;
+
+void au_cpup_attr_flags(struct inode *dst, unsigned int iflags);
+void au_cpup_attr_timesizes(struct inode *inode);
+void au_cpup_attr_nlink(struct inode *inode, int force);
+void au_cpup_attr_changeable(struct inode *inode);
+void au_cpup_igen(struct inode *inode, struct inode *h_inode);
+void au_cpup_attr_all(struct inode *inode, int force);
+
+/* ---------------------------------------------------------------------- */
+
+struct au_cp_generic {
+	struct dentry	*dentry;
+	aufs_bindex_t	bdst, bsrc;
+	loff_t		len;
+	struct au_pin	*pin;
+	unsigned int	flags;
+};
+
+/* cpup flags */
+#define AuCpup_DTIME		1		/* do dtime_store/revert */
+#define AuCpup_KEEPLINO		(1 << 1)	/* do not clear the lower xino,
+						   for link(2) */
+#define AuCpup_RENAME		(1 << 2)	/* rename after cpup */
+#define AuCpup_HOPEN		(1 << 3)	/* call h_open_pre/post() in
+						   cpup */
+#define AuCpup_OVERWRITE	(1 << 4)	/* allow overwriting the
+						   existing entry */
+#define AuCpup_RWDST		(1 << 5)	/* force write target even if
+						   the branch is marked as RO */
+
+#ifndef CONFIG_AUFS_BR_HFSPLUS
+#undef AuCpup_HOPEN
+#define AuCpup_HOPEN		0
+#endif
+
+#define au_ftest_cpup(flags, name)	((flags) & AuCpup_##name)
+#define au_fset_cpup(flags, name) \
+	do { (flags) |= AuCpup_##name; } while (0)
+#define au_fclr_cpup(flags, name) \
+	do { (flags) &= ~AuCpup_##name; } while (0)
+
+int au_copy_file(struct file *dst, struct file *src, loff_t len);
+int au_sio_cpup_simple(struct au_cp_generic *cpg);
+int au_sio_cpdown_simple(struct au_cp_generic *cpg);
+int au_sio_cpup_wh(struct au_cp_generic *cpg, struct file *file);
+
+int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst,
+	       int (*cp)(struct dentry *dentry, aufs_bindex_t bdst,
+			 struct au_pin *pin,
+			 struct dentry *h_parent, void *arg),
+	       void *arg);
+int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst);
+int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst);
+
+/* ---------------------------------------------------------------------- */
+
+/* keep timestamps when copyup */
+struct au_dtime {
+	struct dentry *dt_dentry;
+	struct path dt_h_path;
+	struct timespec64 dt_atime, dt_mtime;
+};
+void au_dtime_store(struct au_dtime *dt, struct dentry *dentry,
+		    struct path *h_path);
+void au_dtime_revert(struct au_dtime *dt);
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_CPUP_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dbgaufs.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dbgaufs.c
@@ -0,0 +1,526 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * debugfs interface
+ */
+
+#include <linux/debugfs.h>
+#include "aufs.h"
+
+#ifndef CONFIG_SYSFS
+#error DEBUG_FS depends upon SYSFS
+#endif
+
+static struct dentry *dbgaufs;
+static const mode_t dbgaufs_mode = 0444;
+
+/* 20 is max digits length of ulong 64 */
+struct dbgaufs_arg {
+	int n;
+	char a[20 * 4];
+};
+
+/*
+ * common function for all XINO files
+ */
+static int dbgaufs_xi_release(struct inode *inode __maybe_unused,
+			      struct file *file)
+{
+	void *p;
+
+	p = file->private_data;
+	if (p) {
+		/* this is struct dbgaufs_arg */
+		AuDebugOn(!au_kfree_sz_test(p));
+		au_kfree_do_rcu(p);
+	}
+	return 0;
+}
+
+static int dbgaufs_xi_open(struct file *xf, struct file *file, int do_fcnt,
+			   int cnt)
+{
+	int err;
+	struct kstat st;
+	struct dbgaufs_arg *p;
+
+	err = -ENOMEM;
+	p = kmalloc(sizeof(*p), GFP_NOFS);
+	if (unlikely(!p))
+		goto out;
+
+	err = 0;
+	p->n = 0;
+	file->private_data = p;
+	if (!xf)
+		goto out;
+
+	err = vfsub_getattr(&xf->f_path, &st);
+	if (!err) {
+		if (do_fcnt)
+			p->n = snprintf
+				(p->a, sizeof(p->a), "%d, %llux%u %lld\n",
+				 cnt, st.blocks, st.blksize,
+				 (long long)st.size);
+		else
+			p->n = snprintf(p->a, sizeof(p->a), "%llux%u %lld\n",
+					st.blocks, st.blksize,
+					(long long)st.size);
+		AuDebugOn(p->n >= sizeof(p->a));
+	} else {
+		p->n = snprintf(p->a, sizeof(p->a), "err %d\n", err);
+		err = 0;
+	}
+
+out:
+	return err;
+}
+
+static ssize_t dbgaufs_xi_read(struct file *file, char __user *buf,
+			       size_t count, loff_t *ppos)
+{
+	struct dbgaufs_arg *p;
+
+	p = file->private_data;
+	return simple_read_from_buffer(buf, count, ppos, p->a, p->n);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct dbgaufs_plink_arg {
+	int n;
+	char a[];
+};
+
+static int dbgaufs_plink_release(struct inode *inode __maybe_unused,
+				 struct file *file)
+{
+	free_page((unsigned long)file->private_data);
+	return 0;
+}
+
+static int dbgaufs_plink_open(struct inode *inode, struct file *file)
+{
+	int err, i, limit;
+	unsigned long n, sum;
+	struct dbgaufs_plink_arg *p;
+	struct au_sbinfo *sbinfo;
+	struct super_block *sb;
+	struct hlist_bl_head *hbl;
+
+	err = -ENOMEM;
+	p = (void *)get_zeroed_page(GFP_NOFS);
+	if (unlikely(!p))
+		goto out;
+
+	err = -EFBIG;
+	sbinfo = inode->i_private;
+	sb = sbinfo->si_sb;
+	si_noflush_read_lock(sb);
+	if (au_opt_test(au_mntflags(sb), PLINK)) {
+		limit = PAGE_SIZE - sizeof(p->n);
+
+		/* the number of buckets */
+		n = snprintf(p->a + p->n, limit, "%d\n", AuPlink_NHASH);
+		p->n += n;
+		limit -= n;
+
+		sum = 0;
+		for (i = 0, hbl = sbinfo->si_plink; i < AuPlink_NHASH;
+		     i++, hbl++) {
+			n = au_hbl_count(hbl);
+			sum += n;
+
+			n = snprintf(p->a + p->n, limit, "%lu ", n);
+			p->n += n;
+			limit -= n;
+			if (unlikely(limit <= 0))
+				goto out_free;
+		}
+		p->a[p->n - 1] = '\n';
+
+		/* the sum of plinks */
+		n = snprintf(p->a + p->n, limit, "%lu\n", sum);
+		p->n += n;
+		limit -= n;
+		if (unlikely(limit <= 0))
+			goto out_free;
+	} else {
+#define str "1\n0\n0\n"
+		p->n = sizeof(str) - 1;
+		strcpy(p->a, str);
+#undef str
+	}
+	si_read_unlock(sb);
+
+	err = 0;
+	file->private_data = p;
+	goto out; /* success */
+
+out_free:
+	free_page((unsigned long)p);
+out:
+	return err;
+}
+
+static ssize_t dbgaufs_plink_read(struct file *file, char __user *buf,
+				  size_t count, loff_t *ppos)
+{
+	struct dbgaufs_plink_arg *p;
+
+	p = file->private_data;
+	return simple_read_from_buffer(buf, count, ppos, p->a, p->n);
+}
+
+static const struct file_operations dbgaufs_plink_fop = {
+	.owner		= THIS_MODULE,
+	.open		= dbgaufs_plink_open,
+	.release	= dbgaufs_plink_release,
+	.read		= dbgaufs_plink_read
+};
+
+/* ---------------------------------------------------------------------- */
+
+static int dbgaufs_xib_open(struct inode *inode, struct file *file)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+	struct super_block *sb;
+
+	sbinfo = inode->i_private;
+	sb = sbinfo->si_sb;
+	si_noflush_read_lock(sb);
+	err = dbgaufs_xi_open(sbinfo->si_xib, file, /*do_fcnt*/0, /*cnt*/0);
+	si_read_unlock(sb);
+	return err;
+}
+
+static const struct file_operations dbgaufs_xib_fop = {
+	.owner		= THIS_MODULE,
+	.open		= dbgaufs_xib_open,
+	.release	= dbgaufs_xi_release,
+	.read		= dbgaufs_xi_read
+};
+
+/* ---------------------------------------------------------------------- */
+
+#define DbgaufsXi_PREFIX "xi"
+
+static int dbgaufs_xino_open(struct inode *inode, struct file *file)
+{
+	int err, idx;
+	long l;
+	aufs_bindex_t bindex;
+	char *p, a[sizeof(DbgaufsXi_PREFIX) + 8];
+	struct au_sbinfo *sbinfo;
+	struct super_block *sb;
+	struct au_xino *xi;
+	struct file *xf;
+	struct qstr *name;
+	struct au_branch *br;
+
+	err = -ENOENT;
+	name = &file->f_path.dentry->d_name;
+	if (unlikely(name->len < sizeof(DbgaufsXi_PREFIX)
+		     || memcmp(name->name, DbgaufsXi_PREFIX,
+			       sizeof(DbgaufsXi_PREFIX) - 1)))
+		goto out;
+
+	AuDebugOn(name->len >= sizeof(a));
+	memcpy(a, name->name, name->len);
+	a[name->len] = '\0';
+	p = strchr(a, '-');
+	if (p)
+		*p = '\0';
+	err = kstrtol(a + sizeof(DbgaufsXi_PREFIX) - 1, 10, &l);
+	if (unlikely(err))
+		goto out;
+	bindex = l;
+	idx = 0;
+	if (p) {
+		err = kstrtol(p + 1, 10, &l);
+		if (unlikely(err))
+			goto out;
+		idx = l;
+	}
+
+	err = -ENOENT;
+	sbinfo = inode->i_private;
+	sb = sbinfo->si_sb;
+	si_noflush_read_lock(sb);
+	if (unlikely(bindex < 0 || bindex > au_sbbot(sb)))
+		goto out_si;
+	br = au_sbr(sb, bindex);
+	xi = br->br_xino;
+	if (unlikely(idx >= xi->xi_nfile))
+		goto out_si;
+	xf = au_xino_file(xi, idx);
+	if (xf)
+		err = dbgaufs_xi_open(xf, file, /*do_fcnt*/1,
+				      au_xino_count(br));
+
+out_si:
+	si_read_unlock(sb);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static const struct file_operations dbgaufs_xino_fop = {
+	.owner		= THIS_MODULE,
+	.open		= dbgaufs_xino_open,
+	.release	= dbgaufs_xi_release,
+	.read		= dbgaufs_xi_read
+};
+
+void dbgaufs_xino_del(struct au_branch *br)
+{
+	struct dentry *dbgaufs;
+
+	dbgaufs = br->br_dbgaufs;
+	if (!dbgaufs)
+		return;
+
+	br->br_dbgaufs = NULL;
+	/* debugfs acquires the parent i_mutex */
+	lockdep_off();
+	debugfs_remove(dbgaufs);
+	lockdep_on();
+}
+
+void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex)
+{
+	aufs_bindex_t bbot;
+	struct au_branch *br;
+
+	if (!au_sbi(sb)->si_dbgaufs)
+		return;
+
+	bbot = au_sbbot(sb);
+	for (; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		dbgaufs_xino_del(br);
+	}
+}
+
+static void dbgaufs_br_do_add(struct super_block *sb, aufs_bindex_t bindex,
+			      unsigned int idx, struct dentry *parent,
+			      struct au_sbinfo *sbinfo)
+{
+	struct au_branch *br;
+	struct dentry *d;
+	/* "xi" bindex(5) "-" idx(2) NULL */
+	char name[sizeof(DbgaufsXi_PREFIX) + 8];
+
+	if (!idx)
+		snprintf(name, sizeof(name), DbgaufsXi_PREFIX "%d", bindex);
+	else
+		snprintf(name, sizeof(name), DbgaufsXi_PREFIX "%d-%u",
+			 bindex, idx);
+	br = au_sbr(sb, bindex);
+	if (br->br_dbgaufs) {
+		struct qstr qstr = QSTR_INIT(name, strlen(name));
+
+		if (!au_qstreq(&br->br_dbgaufs->d_name, &qstr)) {
+			/* debugfs acquires the parent i_mutex */
+			lockdep_off();
+			d = debugfs_rename(parent, br->br_dbgaufs, parent,
+					   name);
+			lockdep_on();
+			if (unlikely(!d))
+				pr_warn("failed renaming %pd/%s, ignored.\n",
+					parent, name);
+		}
+	} else {
+		lockdep_off();
+		br->br_dbgaufs = debugfs_create_file(name, dbgaufs_mode, parent,
+						     sbinfo, &dbgaufs_xino_fop);
+		lockdep_on();
+		if (unlikely(!br->br_dbgaufs))
+			pr_warn("failed creating %pd/%s, ignored.\n",
+				parent, name);
+	}
+}
+
+static void dbgaufs_br_add(struct super_block *sb, aufs_bindex_t bindex,
+			   struct dentry *parent, struct au_sbinfo *sbinfo)
+{
+	struct au_branch *br;
+	struct au_xino *xi;
+	unsigned int u;
+
+	br = au_sbr(sb, bindex);
+	xi = br->br_xino;
+	for (u = 0; u < xi->xi_nfile; u++)
+		dbgaufs_br_do_add(sb, bindex, u, parent, sbinfo);
+}
+
+void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex, int topdown)
+{
+	struct au_sbinfo *sbinfo;
+	struct dentry *parent;
+	aufs_bindex_t bbot;
+
+	if (!au_opt_test(au_mntflags(sb), XINO))
+		return;
+
+	sbinfo = au_sbi(sb);
+	parent = sbinfo->si_dbgaufs;
+	if (!parent)
+		return;
+
+	bbot = au_sbbot(sb);
+	if (topdown)
+		for (; bindex <= bbot; bindex++)
+			dbgaufs_br_add(sb, bindex, parent, sbinfo);
+	else
+		for (; bbot >= bindex; bbot--)
+			dbgaufs_br_add(sb, bbot, parent, sbinfo);
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_EXPORT
+static int dbgaufs_xigen_open(struct inode *inode, struct file *file)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+	struct super_block *sb;
+
+	sbinfo = inode->i_private;
+	sb = sbinfo->si_sb;
+	si_noflush_read_lock(sb);
+	err = dbgaufs_xi_open(sbinfo->si_xigen, file, /*do_fcnt*/0, /*cnt*/0);
+	si_read_unlock(sb);
+	return err;
+}
+
+static const struct file_operations dbgaufs_xigen_fop = {
+	.owner		= THIS_MODULE,
+	.open		= dbgaufs_xigen_open,
+	.release	= dbgaufs_xi_release,
+	.read		= dbgaufs_xi_read
+};
+
+static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo)
+{
+	int err;
+
+	/*
+	 * This function is a dynamic '__init' function actually,
+	 * so the tiny check for si_rwsem is unnecessary.
+	 */
+	/* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+
+	err = -EIO;
+	sbinfo->si_dbgaufs_xigen = debugfs_create_file
+		("xigen", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo,
+		 &dbgaufs_xigen_fop);
+	if (sbinfo->si_dbgaufs_xigen)
+		err = 0;
+
+	return err;
+}
+#else
+static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo)
+{
+	return 0;
+}
+#endif /* CONFIG_AUFS_EXPORT */
+
+/* ---------------------------------------------------------------------- */
+
+void dbgaufs_si_fin(struct au_sbinfo *sbinfo)
+{
+	/*
+	 * This function is a dynamic '__fin' function actually,
+	 * so the tiny check for si_rwsem is unnecessary.
+	 */
+	/* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+
+	debugfs_remove_recursive(sbinfo->si_dbgaufs);
+	sbinfo->si_dbgaufs = NULL;
+}
+
+int dbgaufs_si_init(struct au_sbinfo *sbinfo)
+{
+	int err;
+	char name[SysaufsSiNameLen];
+
+	/*
+	 * This function is a dynamic '__init' function actually,
+	 * so the tiny check for si_rwsem is unnecessary.
+	 */
+	/* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+
+	err = -ENOENT;
+	if (!dbgaufs) {
+		AuErr1("/debug/aufs is uninitialized\n");
+		goto out;
+	}
+
+	err = -EIO;
+	sysaufs_name(sbinfo, name);
+	sbinfo->si_dbgaufs = debugfs_create_dir(name, dbgaufs);
+	if (unlikely(!sbinfo->si_dbgaufs))
+		goto out;
+
+	/* regardless plink/noplink option */
+	sbinfo->si_dbgaufs_plink = debugfs_create_file
+		("plink", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo,
+		 &dbgaufs_plink_fop);
+	if (unlikely(!sbinfo->si_dbgaufs_plink))
+		goto out_dir;
+
+	/* regardless xino/noxino option */
+	sbinfo->si_dbgaufs_xib = debugfs_create_file
+		("xib", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo,
+		 &dbgaufs_xib_fop);
+	if (unlikely(!sbinfo->si_dbgaufs_xib))
+		goto out_dir;
+
+	err = dbgaufs_xigen_init(sbinfo);
+	if (!err)
+		goto out; /* success */
+
+out_dir:
+	dbgaufs_si_fin(sbinfo);
+out:
+	if (unlikely(err))
+		pr_err("debugfs/aufs failed\n");
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void dbgaufs_fin(void)
+{
+	debugfs_remove(dbgaufs);
+}
+
+int __init dbgaufs_init(void)
+{
+	int err;
+
+	err = -EIO;
+	dbgaufs = debugfs_create_dir(AUFS_NAME, NULL);
+	if (dbgaufs)
+		err = 0;
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dbgaufs.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dbgaufs.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * debugfs interface
+ */
+
+#ifndef __DBGAUFS_H__
+#define __DBGAUFS_H__
+
+#ifdef __KERNEL__
+
+struct super_block;
+struct au_sbinfo;
+struct au_branch;
+
+#ifdef CONFIG_DEBUG_FS
+/* dbgaufs.c */
+void dbgaufs_xino_del(struct au_branch *br);
+void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex);
+void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex, int topdown);
+void dbgaufs_si_fin(struct au_sbinfo *sbinfo);
+int dbgaufs_si_init(struct au_sbinfo *sbinfo);
+void dbgaufs_fin(void);
+int __init dbgaufs_init(void);
+#else
+AuStubVoid(dbgaufs_xino_del, struct au_branch *br)
+AuStubVoid(dbgaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex)
+AuStubVoid(dbgaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex,
+	   int topdown)
+AuStubVoid(dbgaufs_si_fin, struct au_sbinfo *sbinfo)
+AuStubInt0(dbgaufs_si_init, struct au_sbinfo *sbinfo)
+AuStubVoid(dbgaufs_fin, void)
+AuStubInt0(__init dbgaufs_init, void)
+#endif /* CONFIG_DEBUG_FS */
+
+#endif /* __KERNEL__ */
+#endif /* __DBGAUFS_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dcsub.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dcsub.c
@@ -0,0 +1,225 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sub-routines for dentry cache
+ */
+
+#include "aufs.h"
+
+static void au_dpage_free(struct au_dpage *dpage)
+{
+	int i;
+	struct dentry **p;
+
+	p = dpage->dentries;
+	for (i = 0; i < dpage->ndentry; i++)
+		dput(*p++);
+	free_page((unsigned long)dpage->dentries);
+}
+
+int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp)
+{
+	int err;
+	void *p;
+
+	err = -ENOMEM;
+	dpages->dpages = kmalloc(sizeof(*dpages->dpages), gfp);
+	if (unlikely(!dpages->dpages))
+		goto out;
+
+	p = (void *)__get_free_page(gfp);
+	if (unlikely(!p))
+		goto out_dpages;
+
+	dpages->dpages[0].ndentry = 0;
+	dpages->dpages[0].dentries = p;
+	dpages->ndpage = 1;
+	return 0; /* success */
+
+out_dpages:
+	au_kfree_try_rcu(dpages->dpages);
+out:
+	return err;
+}
+
+void au_dpages_free(struct au_dcsub_pages *dpages)
+{
+	int i;
+	struct au_dpage *p;
+
+	p = dpages->dpages;
+	for (i = 0; i < dpages->ndpage; i++)
+		au_dpage_free(p++);
+	au_kfree_try_rcu(dpages->dpages);
+}
+
+static int au_dpages_append(struct au_dcsub_pages *dpages,
+			    struct dentry *dentry, gfp_t gfp)
+{
+	int err, sz;
+	struct au_dpage *dpage;
+	void *p;
+
+	dpage = dpages->dpages + dpages->ndpage - 1;
+	sz = PAGE_SIZE / sizeof(dentry);
+	if (unlikely(dpage->ndentry >= sz)) {
+		AuLabel(new dpage);
+		err = -ENOMEM;
+		sz = dpages->ndpage * sizeof(*dpages->dpages);
+		p = au_kzrealloc(dpages->dpages, sz,
+				 sz + sizeof(*dpages->dpages), gfp,
+				 /*may_shrink*/0);
+		if (unlikely(!p))
+			goto out;
+
+		dpages->dpages = p;
+		dpage = dpages->dpages + dpages->ndpage;
+		p = (void *)__get_free_page(gfp);
+		if (unlikely(!p))
+			goto out;
+
+		dpage->ndentry = 0;
+		dpage->dentries = p;
+		dpages->ndpage++;
+	}
+
+	AuDebugOn(au_dcount(dentry) <= 0);
+	dpage->dentries[dpage->ndentry++] = dget_dlock(dentry);
+	return 0; /* success */
+
+out:
+	return err;
+}
+
+/* todo: BAD approach */
+/* copied from linux/fs/dcache.c */
+enum d_walk_ret {
+	D_WALK_CONTINUE,
+	D_WALK_QUIT,
+	D_WALK_NORETRY,
+	D_WALK_SKIP,
+};
+
+extern void d_walk(struct dentry *parent, void *data,
+		   enum d_walk_ret (*enter)(void *, struct dentry *));
+
+struct ac_dpages_arg {
+	int err;
+	struct au_dcsub_pages *dpages;
+	struct super_block *sb;
+	au_dpages_test test;
+	void *arg;
+};
+
+static enum d_walk_ret au_call_dpages_append(void *_arg, struct dentry *dentry)
+{
+	enum d_walk_ret ret;
+	struct ac_dpages_arg *arg = _arg;
+
+	ret = D_WALK_CONTINUE;
+	if (dentry->d_sb == arg->sb
+	    && !IS_ROOT(dentry)
+	    && au_dcount(dentry) > 0
+	    && au_di(dentry)
+	    && (!arg->test || arg->test(dentry, arg->arg))) {
+		arg->err = au_dpages_append(arg->dpages, dentry, GFP_ATOMIC);
+		if (unlikely(arg->err))
+			ret = D_WALK_QUIT;
+	}
+
+	return ret;
+}
+
+int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root,
+		   au_dpages_test test, void *arg)
+{
+	struct ac_dpages_arg args = {
+		.err	= 0,
+		.dpages	= dpages,
+		.sb	= root->d_sb,
+		.test	= test,
+		.arg	= arg
+	};
+
+	d_walk(root, &args, au_call_dpages_append);
+
+	return args.err;
+}
+
+int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry,
+		       int do_include, au_dpages_test test, void *arg)
+{
+	int err;
+
+	err = 0;
+	write_seqlock(&rename_lock);
+	spin_lock(&dentry->d_lock);
+	if (do_include
+	    && au_dcount(dentry) > 0
+	    && (!test || test(dentry, arg)))
+		err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
+	spin_unlock(&dentry->d_lock);
+	if (unlikely(err))
+		goto out;
+
+	/*
+	 * RCU for vfsmount is unnecessary since this is a traverse in a single
+	 * mount
+	 */
+	while (!IS_ROOT(dentry)) {
+		dentry = dentry->d_parent; /* rename_lock is locked */
+		spin_lock(&dentry->d_lock);
+		if (au_dcount(dentry) > 0
+		    && (!test || test(dentry, arg)))
+			err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
+		spin_unlock(&dentry->d_lock);
+		if (unlikely(err))
+			break;
+	}
+
+out:
+	write_sequnlock(&rename_lock);
+	return err;
+}
+
+static inline int au_dcsub_dpages_aufs(struct dentry *dentry, void *arg)
+{
+	return au_di(dentry) && dentry->d_sb == arg;
+}
+
+int au_dcsub_pages_rev_aufs(struct au_dcsub_pages *dpages,
+			    struct dentry *dentry, int do_include)
+{
+	return au_dcsub_pages_rev(dpages, dentry, do_include,
+				  au_dcsub_dpages_aufs, dentry->d_sb);
+}
+
+int au_test_subdir(struct dentry *d1, struct dentry *d2)
+{
+	struct path path[2] = {
+		{
+			.dentry = d1
+		},
+		{
+			.dentry = d2
+		}
+	};
+
+	return path_is_under(path + 0, path + 1);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dcsub.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dcsub.h
@@ -0,0 +1,137 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sub-routines for dentry cache
+ */
+
+#ifndef __AUFS_DCSUB_H__
+#define __AUFS_DCSUB_H__
+
+#ifdef __KERNEL__
+
+#include <linux/dcache.h>
+#include <linux/fs.h>
+
+struct au_dpage {
+	int ndentry;
+	struct dentry **dentries;
+};
+
+struct au_dcsub_pages {
+	int ndpage;
+	struct au_dpage *dpages;
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* dcsub.c */
+int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp);
+void au_dpages_free(struct au_dcsub_pages *dpages);
+typedef int (*au_dpages_test)(struct dentry *dentry, void *arg);
+int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root,
+		   au_dpages_test test, void *arg);
+int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry,
+		       int do_include, au_dpages_test test, void *arg);
+int au_dcsub_pages_rev_aufs(struct au_dcsub_pages *dpages,
+			    struct dentry *dentry, int do_include);
+int au_test_subdir(struct dentry *d1, struct dentry *d2);
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * todo: in linux-3.13, several similar (but faster) helpers are added to
+ * include/linux/dcache.h. Try them (in the future).
+ */
+
+static inline int au_d_hashed_positive(struct dentry *d)
+{
+	int err;
+	struct inode *inode = d_inode(d);
+
+	err = 0;
+	if (unlikely(d_unhashed(d)
+		     || d_is_negative(d)
+		     || !inode->i_nlink))
+		err = -ENOENT;
+	return err;
+}
+
+static inline int au_d_linkable(struct dentry *d)
+{
+	int err;
+	struct inode *inode = d_inode(d);
+
+	err = au_d_hashed_positive(d);
+	if (err
+	    && d_is_positive(d)
+	    && (inode->i_state & I_LINKABLE))
+		err = 0;
+	return err;
+}
+
+static inline int au_d_alive(struct dentry *d)
+{
+	int err;
+	struct inode *inode;
+
+	err = 0;
+	if (!IS_ROOT(d))
+		err = au_d_hashed_positive(d);
+	else {
+		inode = d_inode(d);
+		if (unlikely(d_unlinked(d)
+			     || d_is_negative(d)
+			     || !inode->i_nlink))
+			err = -ENOENT;
+	}
+	return err;
+}
+
+static inline int au_alive_dir(struct dentry *d)
+{
+	int err;
+
+	err = au_d_alive(d);
+	if (unlikely(err || IS_DEADDIR(d_inode(d))))
+		err = -ENOENT;
+	return err;
+}
+
+static inline int au_qstreq(struct qstr *a, struct qstr *b)
+{
+	return a->len == b->len
+		&& !memcmp(a->name, b->name, a->len);
+}
+
+/*
+ * by the commit
+ * 360f547 2015-01-25 dcache: let the dentry count go down to zero without
+ *			taking d_lock
+ * the type of d_lockref.count became int, but the inlined function d_count()
+ * still returns unsigned int.
+ * I don't know why. Maybe it is for every d_count() users?
+ * Anyway au_dcount() lives on.
+ */
+static inline int au_dcount(struct dentry *d)
+{
+	return (int)d_count(d);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DCSUB_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/debug.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/debug.c
@@ -0,0 +1,441 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * debug print functions
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+/* Returns 0, or -errno.  arg is in kp->arg. */
+static int param_atomic_t_set(const char *val, const struct kernel_param *kp)
+{
+	int err, n;
+
+	err = kstrtoint(val, 0, &n);
+	if (!err) {
+		if (n > 0)
+			au_debug_on();
+		else
+			au_debug_off();
+	}
+	return err;
+}
+
+/* Returns length written or -errno.  Buffer is 4k (ie. be short!) */
+static int param_atomic_t_get(char *buffer, const struct kernel_param *kp)
+{
+	atomic_t *a;
+
+	a = kp->arg;
+	return sprintf(buffer, "%d", atomic_read(a));
+}
+
+static struct kernel_param_ops param_ops_atomic_t = {
+	.set = param_atomic_t_set,
+	.get = param_atomic_t_get
+	/* void (*free)(void *arg) */
+};
+
+atomic_t aufs_debug = ATOMIC_INIT(0);
+MODULE_PARM_DESC(debug, "debug print");
+module_param_named(debug, aufs_debug, atomic_t, 0664);
+
+DEFINE_MUTEX(au_dbg_mtx);	/* just to serialize the dbg msgs */
+char *au_plevel = KERN_DEBUG;
+#define dpri(fmt, ...) do {					\
+	if ((au_plevel						\
+	     && strcmp(au_plevel, KERN_DEBUG))			\
+	    || au_debug_test())					\
+		printk("%s" fmt, au_plevel, ##__VA_ARGS__);	\
+} while (0)
+
+/* ---------------------------------------------------------------------- */
+
+void au_dpri_whlist(struct au_nhash *whlist)
+{
+	unsigned long ul, n;
+	struct hlist_head *head;
+	struct au_vdir_wh *pos;
+
+	n = whlist->nh_num;
+	head = whlist->nh_head;
+	for (ul = 0; ul < n; ul++) {
+		hlist_for_each_entry(pos, head, wh_hash)
+			dpri("b%d, %.*s, %d\n",
+			     pos->wh_bindex,
+			     pos->wh_str.len, pos->wh_str.name,
+			     pos->wh_str.len);
+		head++;
+	}
+}
+
+void au_dpri_vdir(struct au_vdir *vdir)
+{
+	unsigned long ul;
+	union au_vdir_deblk_p p;
+	unsigned char *o;
+
+	if (!vdir || IS_ERR(vdir)) {
+		dpri("err %ld\n", PTR_ERR(vdir));
+		return;
+	}
+
+	dpri("deblk %u, nblk %lu, deblk %p, last{%lu, %p}, ver %llu\n",
+	     vdir->vd_deblk_sz, vdir->vd_nblk, vdir->vd_deblk,
+	     vdir->vd_last.ul, vdir->vd_last.p.deblk, vdir->vd_version);
+	for (ul = 0; ul < vdir->vd_nblk; ul++) {
+		p.deblk = vdir->vd_deblk[ul];
+		o = p.deblk;
+		dpri("[%lu]: %p\n", ul, o);
+	}
+}
+
+static int do_pri_inode(aufs_bindex_t bindex, struct inode *inode, int hn,
+			struct dentry *wh)
+{
+	char *n = NULL;
+	int l = 0;
+
+	if (!inode || IS_ERR(inode)) {
+		dpri("i%d: err %ld\n", bindex, PTR_ERR(inode));
+		return -1;
+	}
+
+	/* the type of i_blocks depends upon CONFIG_LBDAF */
+	BUILD_BUG_ON(sizeof(inode->i_blocks) != sizeof(unsigned long)
+		     && sizeof(inode->i_blocks) != sizeof(u64));
+	if (wh) {
+		n = (void *)wh->d_name.name;
+		l = wh->d_name.len;
+	}
+
+	dpri("i%d: %p, i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu,"
+	     " hn %d, ct %lld, np %lu, st 0x%lx, f 0x%x, v %llu, g %x%s%.*s\n",
+	     bindex, inode,
+	     inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??",
+	     atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode,
+	     i_size_read(inode), (unsigned long long)inode->i_blocks,
+	     hn, (long long)timespec64_to_ns(&inode->i_ctime) & 0x0ffff,
+	     inode->i_mapping ? inode->i_mapping->nrpages : 0,
+	     inode->i_state, inode->i_flags, inode_peek_iversion(inode),
+	     inode->i_generation,
+	     l ? ", wh " : "", l, n);
+	return 0;
+}
+
+void au_dpri_inode(struct inode *inode)
+{
+	struct au_iinfo *iinfo;
+	struct au_hinode *hi;
+	aufs_bindex_t bindex;
+	int err, hn;
+
+	err = do_pri_inode(-1, inode, -1, NULL);
+	if (err || !au_test_aufs(inode->i_sb) || au_is_bad_inode(inode))
+		return;
+
+	iinfo = au_ii(inode);
+	dpri("i-1: btop %d, bbot %d, gen %d\n",
+	     iinfo->ii_btop, iinfo->ii_bbot, au_iigen(inode, NULL));
+	if (iinfo->ii_btop < 0)
+		return;
+	hn = 0;
+	for (bindex = iinfo->ii_btop; bindex <= iinfo->ii_bbot; bindex++) {
+		hi = au_hinode(iinfo, bindex);
+		hn = !!au_hn(hi);
+		do_pri_inode(bindex, hi->hi_inode, hn, hi->hi_whdentry);
+	}
+}
+
+void au_dpri_dalias(struct inode *inode)
+{
+	struct dentry *d;
+
+	spin_lock(&inode->i_lock);
+	hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias)
+		au_dpri_dentry(d);
+	spin_unlock(&inode->i_lock);
+}
+
+static int do_pri_dentry(aufs_bindex_t bindex, struct dentry *dentry)
+{
+	struct dentry *wh = NULL;
+	int hn;
+	struct inode *inode;
+	struct au_iinfo *iinfo;
+	struct au_hinode *hi;
+
+	if (!dentry || IS_ERR(dentry)) {
+		dpri("d%d: err %ld\n", bindex, PTR_ERR(dentry));
+		return -1;
+	}
+	/* do not call dget_parent() here */
+	/* note: access d_xxx without d_lock */
+	dpri("d%d: %p, %pd2?, %s, cnt %d, flags 0x%x, %shashed\n",
+	     bindex, dentry, dentry,
+	     dentry->d_sb ? au_sbtype(dentry->d_sb) : "??",
+	     au_dcount(dentry), dentry->d_flags,
+	     d_unhashed(dentry) ? "un" : "");
+	hn = -1;
+	inode = NULL;
+	if (d_is_positive(dentry))
+		inode = d_inode(dentry);
+	if (inode
+	    && au_test_aufs(dentry->d_sb)
+	    && bindex >= 0
+	    && !au_is_bad_inode(inode)) {
+		iinfo = au_ii(inode);
+		hi = au_hinode(iinfo, bindex);
+		hn = !!au_hn(hi);
+		wh = hi->hi_whdentry;
+	}
+	do_pri_inode(bindex, inode, hn, wh);
+	return 0;
+}
+
+void au_dpri_dentry(struct dentry *dentry)
+{
+	struct au_dinfo *dinfo;
+	aufs_bindex_t bindex;
+	int err;
+
+	err = do_pri_dentry(-1, dentry);
+	if (err || !au_test_aufs(dentry->d_sb))
+		return;
+
+	dinfo = au_di(dentry);
+	if (!dinfo)
+		return;
+	dpri("d-1: btop %d, bbot %d, bwh %d, bdiropq %d, gen %d, tmp %d\n",
+	     dinfo->di_btop, dinfo->di_bbot,
+	     dinfo->di_bwh, dinfo->di_bdiropq, au_digen(dentry),
+	     dinfo->di_tmpfile);
+	if (dinfo->di_btop < 0)
+		return;
+	for (bindex = dinfo->di_btop; bindex <= dinfo->di_bbot; bindex++)
+		do_pri_dentry(bindex, au_hdentry(dinfo, bindex)->hd_dentry);
+}
+
+static int do_pri_file(aufs_bindex_t bindex, struct file *file)
+{
+	char a[32];
+
+	if (!file || IS_ERR(file)) {
+		dpri("f%d: err %ld\n", bindex, PTR_ERR(file));
+		return -1;
+	}
+	a[0] = 0;
+	if (bindex < 0
+	    && !IS_ERR_OR_NULL(file->f_path.dentry)
+	    && au_test_aufs(file->f_path.dentry->d_sb)
+	    && au_fi(file))
+		snprintf(a, sizeof(a), ", gen %d, mmapped %d",
+			 au_figen(file), atomic_read(&au_fi(file)->fi_mmapped));
+	dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, v %llu, pos %llu%s\n",
+	     bindex, file->f_mode, file->f_flags, (long)file_count(file),
+	     file->f_version, file->f_pos, a);
+	if (!IS_ERR_OR_NULL(file->f_path.dentry))
+		do_pri_dentry(bindex, file->f_path.dentry);
+	return 0;
+}
+
+void au_dpri_file(struct file *file)
+{
+	struct au_finfo *finfo;
+	struct au_fidir *fidir;
+	struct au_hfile *hfile;
+	aufs_bindex_t bindex;
+	int err;
+
+	err = do_pri_file(-1, file);
+	if (err
+	    || IS_ERR_OR_NULL(file->f_path.dentry)
+	    || !au_test_aufs(file->f_path.dentry->d_sb))
+		return;
+
+	finfo = au_fi(file);
+	if (!finfo)
+		return;
+	if (finfo->fi_btop < 0)
+		return;
+	fidir = finfo->fi_hdir;
+	if (!fidir)
+		do_pri_file(finfo->fi_btop, finfo->fi_htop.hf_file);
+	else
+		for (bindex = finfo->fi_btop;
+		     bindex >= 0 && bindex <= fidir->fd_bbot;
+		     bindex++) {
+			hfile = fidir->fd_hfile + bindex;
+			do_pri_file(bindex, hfile ? hfile->hf_file : NULL);
+		}
+}
+
+static int do_pri_br(aufs_bindex_t bindex, struct au_branch *br)
+{
+	struct vfsmount *mnt;
+	struct super_block *sb;
+
+	if (!br || IS_ERR(br))
+		goto out;
+	mnt = au_br_mnt(br);
+	if (!mnt || IS_ERR(mnt))
+		goto out;
+	sb = mnt->mnt_sb;
+	if (!sb || IS_ERR(sb))
+		goto out;
+
+	dpri("s%d: {perm 0x%x, id %d, wbr %p}, "
+	     "%s, dev 0x%02x%02x, flags 0x%lx, cnt %d, active %d, "
+	     "xino %d\n",
+	     bindex, br->br_perm, br->br_id, br->br_wbr,
+	     au_sbtype(sb), MAJOR(sb->s_dev), MINOR(sb->s_dev),
+	     sb->s_flags, sb->s_count,
+	     atomic_read(&sb->s_active),
+	     !!au_xino_file(br->br_xino, /*idx*/-1));
+	return 0;
+
+out:
+	dpri("s%d: err %ld\n", bindex, PTR_ERR(br));
+	return -1;
+}
+
+void au_dpri_sb(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+	aufs_bindex_t bindex;
+	int err;
+	/* to reduce stack size */
+	struct {
+		struct vfsmount mnt;
+		struct au_branch fake;
+	} *a;
+
+	/* this function can be called from magic sysrq */
+	a = kzalloc(sizeof(*a), GFP_ATOMIC);
+	if (unlikely(!a)) {
+		dpri("no memory\n");
+		return;
+	}
+
+	a->mnt.mnt_sb = sb;
+	a->fake.br_path.mnt = &a->mnt;
+	err = do_pri_br(-1, &a->fake);
+	au_kfree_rcu(a);
+	dpri("dev 0x%x\n", sb->s_dev);
+	if (err || !au_test_aufs(sb))
+		return;
+
+	sbinfo = au_sbi(sb);
+	if (!sbinfo)
+		return;
+	dpri("nw %d, gen %u, kobj %d\n",
+	     atomic_read(&sbinfo->si_nowait.nw_len), sbinfo->si_generation,
+	     kref_read(&sbinfo->si_kobj.kref));
+	for (bindex = 0; bindex <= sbinfo->si_bbot; bindex++)
+		do_pri_br(bindex, sbinfo->si_branch[0 + bindex]);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void __au_dbg_verify_dinode(struct dentry *dentry, const char *func, int line)
+{
+	struct inode *h_inode, *inode = d_inode(dentry);
+	struct dentry *h_dentry;
+	aufs_bindex_t bindex, bbot, bi;
+
+	if (!inode /* || au_di(dentry)->di_lsc == AuLsc_DI_TMP */)
+		return;
+
+	bbot = au_dbbot(dentry);
+	bi = au_ibbot(inode);
+	if (bi < bbot)
+		bbot = bi;
+	bindex = au_dbtop(dentry);
+	bi = au_ibtop(inode);
+	if (bi > bindex)
+		bindex = bi;
+
+	for (; bindex <= bbot; bindex++) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (!h_dentry)
+			continue;
+		h_inode = au_h_iptr(inode, bindex);
+		if (unlikely(h_inode != d_inode(h_dentry))) {
+			au_debug_on();
+			AuDbg("b%d, %s:%d\n", bindex, func, line);
+			AuDbgDentry(dentry);
+			AuDbgInode(inode);
+			au_debug_off();
+			BUG();
+		}
+	}
+}
+
+void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen)
+{
+	int err, i, j;
+	struct au_dcsub_pages dpages;
+	struct au_dpage *dpage;
+	struct dentry **dentries;
+
+	err = au_dpages_init(&dpages, GFP_NOFS);
+	AuDebugOn(err);
+	err = au_dcsub_pages_rev_aufs(&dpages, parent, /*do_include*/1);
+	AuDebugOn(err);
+	for (i = dpages.ndpage - 1; !err && i >= 0; i--) {
+		dpage = dpages.dpages + i;
+		dentries = dpage->dentries;
+		for (j = dpage->ndentry - 1; !err && j >= 0; j--)
+			AuDebugOn(au_digen_test(dentries[j], sigen));
+	}
+	au_dpages_free(&dpages);
+}
+
+void au_dbg_verify_kthread(void)
+{
+	if (au_wkq_test()) {
+		au_dbg_blocked();
+		/*
+		 * It may be recursive, but udba=notify between two aufs mounts,
+		 * where a single ro branch is shared, is not a problem.
+		 */
+		/* WARN_ON(1); */
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+int __init au_debug_init(void)
+{
+	aufs_bindex_t bindex;
+	struct au_vdir_destr destr;
+
+	bindex = -1;
+	AuDebugOn(bindex >= 0);
+
+	destr.len = -1;
+	AuDebugOn(destr.len < NAME_MAX);
+
+#ifdef CONFIG_4KSTACKS
+	pr_warn("CONFIG_4KSTACKS is defined.\n");
+#endif
+
+	return 0;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/debug.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/debug.h
@@ -0,0 +1,226 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * debug print functions
+ */
+
+#ifndef __AUFS_DEBUG_H__
+#define __AUFS_DEBUG_H__
+
+#ifdef __KERNEL__
+
+#include <linux/atomic.h>
+#include <linux/module.h>
+#include <linux/kallsyms.h>
+#include <linux/sysrq.h>
+
+#ifdef CONFIG_AUFS_DEBUG
+#define AuDebugOn(a)		BUG_ON(a)
+
+/* module parameter */
+extern atomic_t aufs_debug;
+static inline void au_debug_on(void)
+{
+	atomic_inc(&aufs_debug);
+}
+static inline void au_debug_off(void)
+{
+	atomic_dec_if_positive(&aufs_debug);
+}
+
+static inline int au_debug_test(void)
+{
+	return atomic_read(&aufs_debug) > 0;
+}
+#else
+#define AuDebugOn(a)		do {} while (0)
+AuStubVoid(au_debug_on, void)
+AuStubVoid(au_debug_off, void)
+AuStubInt0(au_debug_test, void)
+#endif /* CONFIG_AUFS_DEBUG */
+
+#define param_check_atomic_t(name, p) __param_check(name, p, atomic_t)
+
+/* ---------------------------------------------------------------------- */
+
+/* debug print */
+
+#define AuDbg(fmt, ...) do { \
+	if (au_debug_test()) \
+		pr_debug("DEBUG: " fmt, ##__VA_ARGS__); \
+} while (0)
+#define AuLabel(l)		AuDbg(#l "\n")
+#define AuIOErr(fmt, ...)	pr_err("I/O Error, " fmt, ##__VA_ARGS__)
+#define AuWarn1(fmt, ...) do { \
+	static unsigned char _c; \
+	if (!_c++) \
+		pr_warn(fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define AuErr1(fmt, ...) do { \
+	static unsigned char _c; \
+	if (!_c++) \
+		pr_err(fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define AuIOErr1(fmt, ...) do { \
+	static unsigned char _c; \
+	if (!_c++) \
+		AuIOErr(fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define AuUnsupportMsg	"This operation is not supported." \
+			" Please report this application to aufs-users ML."
+#define AuUnsupport(fmt, ...) do { \
+	pr_err(AuUnsupportMsg "\n" fmt, ##__VA_ARGS__); \
+	dump_stack(); \
+} while (0)
+
+#define AuTraceErr(e) do { \
+	if (unlikely((e) < 0)) \
+		AuDbg("err %d\n", (int)(e)); \
+} while (0)
+
+#define AuTraceErrPtr(p) do { \
+	if (IS_ERR(p)) \
+		AuDbg("err %ld\n", PTR_ERR(p)); \
+} while (0)
+
+/* dirty macros for debug print, use with "%.*s" and caution */
+#define AuLNPair(qstr)		(qstr)->len, (qstr)->name
+
+/* ---------------------------------------------------------------------- */
+
+struct dentry;
+#ifdef CONFIG_AUFS_DEBUG
+extern struct mutex au_dbg_mtx;
+extern char *au_plevel;
+struct au_nhash;
+void au_dpri_whlist(struct au_nhash *whlist);
+struct au_vdir;
+void au_dpri_vdir(struct au_vdir *vdir);
+struct inode;
+void au_dpri_inode(struct inode *inode);
+void au_dpri_dalias(struct inode *inode);
+void au_dpri_dentry(struct dentry *dentry);
+struct file;
+void au_dpri_file(struct file *filp);
+struct super_block;
+void au_dpri_sb(struct super_block *sb);
+
+#define au_dbg_verify_dinode(d) __au_dbg_verify_dinode(d, __func__, __LINE__)
+void __au_dbg_verify_dinode(struct dentry *dentry, const char *func, int line);
+void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen);
+void au_dbg_verify_kthread(void);
+
+int __init au_debug_init(void);
+
+#define AuDbgWhlist(w) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#w "\n"); \
+	au_dpri_whlist(w); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgVdir(v) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#v "\n"); \
+	au_dpri_vdir(v); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgInode(i) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#i "\n"); \
+	au_dpri_inode(i); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgDAlias(i) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#i "\n"); \
+	au_dpri_dalias(i); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgDentry(d) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#d "\n"); \
+	au_dpri_dentry(d); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgFile(f) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#f "\n"); \
+	au_dpri_file(f); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgSb(sb) do { \
+	mutex_lock(&au_dbg_mtx); \
+	AuDbg(#sb "\n"); \
+	au_dpri_sb(sb); \
+	mutex_unlock(&au_dbg_mtx); \
+} while (0)
+
+#define AuDbgSym(addr) do {				\
+	char sym[KSYM_SYMBOL_LEN];			\
+	sprint_symbol(sym, (unsigned long)addr);	\
+	AuDbg("%s\n", sym);				\
+} while (0)
+#else
+AuStubVoid(au_dbg_verify_dinode, struct dentry *dentry)
+AuStubVoid(au_dbg_verify_gen, struct dentry *parent, unsigned int sigen)
+AuStubVoid(au_dbg_verify_kthread, void)
+AuStubInt0(__init au_debug_init, void)
+
+#define AuDbgWhlist(w)		do {} while (0)
+#define AuDbgVdir(v)		do {} while (0)
+#define AuDbgInode(i)		do {} while (0)
+#define AuDbgDAlias(i)		do {} while (0)
+#define AuDbgDentry(d)		do {} while (0)
+#define AuDbgFile(f)		do {} while (0)
+#define AuDbgSb(sb)		do {} while (0)
+#define AuDbgSym(addr)		do {} while (0)
+#endif /* CONFIG_AUFS_DEBUG */
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_MAGIC_SYSRQ
+int __init au_sysrq_init(void);
+void au_sysrq_fin(void);
+
+#ifdef CONFIG_HW_CONSOLE
+#define au_dbg_blocked() do { \
+	WARN_ON(1); \
+	handle_sysrq('w'); \
+} while (0)
+#else
+AuStubVoid(au_dbg_blocked, void)
+#endif
+
+#else
+AuStubInt0(__init au_sysrq_init, void)
+AuStubVoid(au_sysrq_fin, void)
+AuStubVoid(au_dbg_blocked, void)
+#endif /* CONFIG_AUFS_MAGIC_SYSRQ */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DEBUG_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dentry.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dentry.c
@@ -0,0 +1,1154 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * lookup and dentry operations
+ */
+
+#include <linux/iversion.h>
+#include <linux/namei.h>
+#include "aufs.h"
+
+/*
+ * returns positive/negative dentry, NULL or an error.
+ * NULL means whiteout-ed or not-found.
+ */
+static struct dentry*
+au_do_lookup(struct dentry *h_parent, struct dentry *dentry,
+	     aufs_bindex_t bindex, struct au_do_lookup_args *args)
+{
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+	struct au_branch *br;
+	int wh_found, opq;
+	unsigned char wh_able;
+	const unsigned char allow_neg = !!au_ftest_lkup(args->flags, ALLOW_NEG);
+	const unsigned char ignore_perm = !!au_ftest_lkup(args->flags,
+							  IGNORE_PERM);
+
+	wh_found = 0;
+	br = au_sbr(dentry->d_sb, bindex);
+	wh_able = !!au_br_whable(br->br_perm);
+	if (wh_able)
+		wh_found = au_wh_test(h_parent, &args->whname, ignore_perm);
+	h_dentry = ERR_PTR(wh_found);
+	if (!wh_found)
+		goto real_lookup;
+	if (unlikely(wh_found < 0))
+		goto out;
+
+	/* We found a whiteout */
+	/* au_set_dbbot(dentry, bindex); */
+	au_set_dbwh(dentry, bindex);
+	if (!allow_neg)
+		return NULL; /* success */
+
+real_lookup:
+	if (!ignore_perm)
+		h_dentry = vfsub_lkup_one(args->name, h_parent);
+	else
+		h_dentry = au_sio_lkup_one(args->name, h_parent);
+	if (IS_ERR(h_dentry)) {
+		if (PTR_ERR(h_dentry) == -ENAMETOOLONG
+		    && !allow_neg)
+			h_dentry = NULL;
+		goto out;
+	}
+
+	h_inode = d_inode(h_dentry);
+	if (d_is_negative(h_dentry)) {
+		if (!allow_neg)
+			goto out_neg;
+	} else if (wh_found
+		   || (args->type && args->type != (h_inode->i_mode & S_IFMT)))
+		goto out_neg;
+	else if (au_ftest_lkup(args->flags, DIRREN)
+		 /* && h_inode */
+		 && !au_dr_lkup_h_ino(args, bindex, h_inode->i_ino)) {
+		AuDbg("b%d %pd ignored hi%llu\n", bindex, h_dentry,
+		      (unsigned long long)h_inode->i_ino);
+		goto out_neg;
+	}
+
+	if (au_dbbot(dentry) <= bindex)
+		au_set_dbbot(dentry, bindex);
+	if (au_dbtop(dentry) < 0 || bindex < au_dbtop(dentry))
+		au_set_dbtop(dentry, bindex);
+	au_set_h_dptr(dentry, bindex, h_dentry);
+
+	if (!d_is_dir(h_dentry)
+	    || !wh_able
+	    || (d_really_is_positive(dentry) && !d_is_dir(dentry)))
+		goto out; /* success */
+
+	inode_lock_shared_nested(h_inode, AuLsc_I_CHILD);
+	opq = au_diropq_test(h_dentry);
+	inode_unlock_shared(h_inode);
+	if (opq > 0)
+		au_set_dbdiropq(dentry, bindex);
+	else if (unlikely(opq < 0)) {
+		au_set_h_dptr(dentry, bindex, NULL);
+		h_dentry = ERR_PTR(opq);
+	}
+	goto out;
+
+out_neg:
+	dput(h_dentry);
+	h_dentry = NULL;
+out:
+	return h_dentry;
+}
+
+static int au_test_shwh(struct super_block *sb, const struct qstr *name)
+{
+	if (unlikely(!au_opt_test(au_mntflags(sb), SHWH)
+		     && !strncmp(name->name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)))
+		return -EPERM;
+	return 0;
+}
+
+/*
+ * returns the number of lower positive dentries,
+ * otherwise an error.
+ * can be called at unlinking with @type is zero.
+ */
+int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t btop,
+		   unsigned int flags)
+{
+	int npositive, err;
+	aufs_bindex_t bindex, btail, bdiropq;
+	unsigned char isdir, dirperm1, dirren;
+	struct au_do_lookup_args args = {
+		.flags		= flags,
+		.name		= &dentry->d_name
+	};
+	struct dentry *parent;
+	struct super_block *sb;
+
+	sb = dentry->d_sb;
+	err = au_test_shwh(sb, args.name);
+	if (unlikely(err))
+		goto out;
+
+	err = au_wh_name_alloc(&args.whname, args.name);
+	if (unlikely(err))
+		goto out;
+
+	isdir = !!d_is_dir(dentry);
+	dirperm1 = !!au_opt_test(au_mntflags(sb), DIRPERM1);
+	dirren = !!au_opt_test(au_mntflags(sb), DIRREN);
+	if (dirren)
+		au_fset_lkup(args.flags, DIRREN);
+
+	npositive = 0;
+	parent = dget_parent(dentry);
+	btail = au_dbtaildir(parent);
+	for (bindex = btop; bindex <= btail; bindex++) {
+		struct dentry *h_parent, *h_dentry;
+		struct inode *h_inode, *h_dir;
+		struct au_branch *br;
+
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (h_dentry) {
+			if (d_is_positive(h_dentry))
+				npositive++;
+			break;
+		}
+		h_parent = au_h_dptr(parent, bindex);
+		if (!h_parent || !d_is_dir(h_parent))
+			continue;
+
+		if (dirren) {
+			/* if the inum matches, then use the prepared name */
+			err = au_dr_lkup_name(&args, bindex);
+			if (unlikely(err))
+				goto out_parent;
+		}
+
+		h_dir = d_inode(h_parent);
+		inode_lock_shared_nested(h_dir, AuLsc_I_PARENT);
+		h_dentry = au_do_lookup(h_parent, dentry, bindex, &args);
+		inode_unlock_shared(h_dir);
+		err = PTR_ERR(h_dentry);
+		if (IS_ERR(h_dentry))
+			goto out_parent;
+		if (h_dentry)
+			au_fclr_lkup(args.flags, ALLOW_NEG);
+		if (dirperm1)
+			au_fset_lkup(args.flags, IGNORE_PERM);
+
+		if (au_dbwh(dentry) == bindex)
+			break;
+		if (!h_dentry)
+			continue;
+		if (d_is_negative(h_dentry))
+			continue;
+		h_inode = d_inode(h_dentry);
+		npositive++;
+		if (!args.type)
+			args.type = h_inode->i_mode & S_IFMT;
+		if (args.type != S_IFDIR)
+			break;
+		else if (isdir) {
+			/* the type of lower may be different */
+			bdiropq = au_dbdiropq(dentry);
+			if (bdiropq >= 0 && bdiropq <= bindex)
+				break;
+		}
+		br = au_sbr(sb, bindex);
+		if (dirren
+		    && au_dr_hino_test_add(&br->br_dirren, h_inode->i_ino,
+					   /*add_ent*/NULL)) {
+			/* prepare next name to lookup */
+			err = au_dr_lkup(&args, dentry, bindex);
+			if (unlikely(err))
+				goto out_parent;
+		}
+	}
+
+	if (npositive) {
+		AuLabel(positive);
+		au_update_dbtop(dentry);
+	}
+	err = npositive;
+	if (unlikely(!au_opt_test(au_mntflags(sb), UDBA_NONE)
+		     && au_dbtop(dentry) < 0)) {
+		err = -EIO;
+		AuIOErr("both of real entry and whiteout found, %pd, err %d\n",
+			dentry, err);
+	}
+
+out_parent:
+	dput(parent);
+	au_kfree_try_rcu(args.whname.name);
+	if (dirren)
+		au_dr_lkup_fin(&args);
+out:
+	return err;
+}
+
+struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent)
+{
+	struct dentry *dentry;
+	int wkq_err;
+
+	if (!au_test_h_perm_sio(d_inode(parent), MAY_EXEC))
+		dentry = vfsub_lkup_one(name, parent);
+	else {
+		struct vfsub_lkup_one_args args = {
+			.errp	= &dentry,
+			.name	= name,
+			.parent	= parent
+		};
+
+		wkq_err = au_wkq_wait(vfsub_call_lkup_one, &args);
+		if (unlikely(wkq_err))
+			dentry = ERR_PTR(wkq_err);
+	}
+
+	return dentry;
+}
+
+/*
+ * lookup @dentry on @bindex which should be negative.
+ */
+int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex, int wh)
+{
+	int err;
+	struct dentry *parent, *h_parent, *h_dentry;
+	struct au_branch *br;
+
+	parent = dget_parent(dentry);
+	h_parent = au_h_dptr(parent, bindex);
+	br = au_sbr(dentry->d_sb, bindex);
+	if (wh)
+		h_dentry = au_whtmp_lkup(h_parent, br, &dentry->d_name);
+	else
+		h_dentry = au_sio_lkup_one(&dentry->d_name, h_parent);
+	err = PTR_ERR(h_dentry);
+	if (IS_ERR(h_dentry))
+		goto out;
+	if (unlikely(d_is_positive(h_dentry))) {
+		err = -EIO;
+		AuIOErr("%pd should be negative on b%d.\n", h_dentry, bindex);
+		dput(h_dentry);
+		goto out;
+	}
+
+	err = 0;
+	if (bindex < au_dbtop(dentry))
+		au_set_dbtop(dentry, bindex);
+	if (au_dbbot(dentry) < bindex)
+		au_set_dbbot(dentry, bindex);
+	au_set_h_dptr(dentry, bindex, h_dentry);
+
+out:
+	dput(parent);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* subset of struct inode */
+struct au_iattr {
+	unsigned long		i_ino;
+	/* unsigned int		i_nlink; */
+	kuid_t			i_uid;
+	kgid_t			i_gid;
+	u64			i_version;
+/*
+	loff_t			i_size;
+	blkcnt_t		i_blocks;
+*/
+	umode_t			i_mode;
+};
+
+static void au_iattr_save(struct au_iattr *ia, struct inode *h_inode)
+{
+	ia->i_ino = h_inode->i_ino;
+	/* ia->i_nlink = h_inode->i_nlink; */
+	ia->i_uid = h_inode->i_uid;
+	ia->i_gid = h_inode->i_gid;
+	ia->i_version = inode_query_iversion(h_inode);
+/*
+	ia->i_size = h_inode->i_size;
+	ia->i_blocks = h_inode->i_blocks;
+*/
+	ia->i_mode = (h_inode->i_mode & S_IFMT);
+}
+
+static int au_iattr_test(struct au_iattr *ia, struct inode *h_inode)
+{
+	return ia->i_ino != h_inode->i_ino
+		/* || ia->i_nlink != h_inode->i_nlink */
+		|| !uid_eq(ia->i_uid, h_inode->i_uid)
+		|| !gid_eq(ia->i_gid, h_inode->i_gid)
+		|| !inode_eq_iversion(h_inode, ia->i_version)
+/*
+		|| ia->i_size != h_inode->i_size
+		|| ia->i_blocks != h_inode->i_blocks
+*/
+		|| ia->i_mode != (h_inode->i_mode & S_IFMT);
+}
+
+static int au_h_verify_dentry(struct dentry *h_dentry, struct dentry *h_parent,
+			      struct au_branch *br)
+{
+	int err;
+	struct au_iattr ia;
+	struct inode *h_inode;
+	struct dentry *h_d;
+	struct super_block *h_sb;
+
+	err = 0;
+	memset(&ia, -1, sizeof(ia));
+	h_sb = h_dentry->d_sb;
+	h_inode = NULL;
+	if (d_is_positive(h_dentry)) {
+		h_inode = d_inode(h_dentry);
+		au_iattr_save(&ia, h_inode);
+	} else if (au_test_nfs(h_sb) || au_test_fuse(h_sb))
+		/* nfs d_revalidate may return 0 for negative dentry */
+		/* fuse d_revalidate always return 0 for negative dentry */
+		goto out;
+
+	/* main purpose is namei.c:cached_lookup() and d_revalidate */
+	h_d = vfsub_lkup_one(&h_dentry->d_name, h_parent);
+	err = PTR_ERR(h_d);
+	if (IS_ERR(h_d))
+		goto out;
+
+	err = 0;
+	if (unlikely(h_d != h_dentry
+		     || d_inode(h_d) != h_inode
+		     || (h_inode && au_iattr_test(&ia, h_inode))))
+		err = au_busy_or_stale();
+	dput(h_d);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir,
+		struct dentry *h_parent, struct au_branch *br)
+{
+	int err;
+
+	err = 0;
+	if (udba == AuOpt_UDBA_REVAL
+	    && !au_test_fs_remote(h_dentry->d_sb)) {
+		IMustLock(h_dir);
+		err = (d_inode(h_dentry->d_parent) != h_dir);
+	} else if (udba != AuOpt_UDBA_NONE)
+		err = au_h_verify_dentry(h_dentry, h_parent, br);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_refresh_hdentry(struct dentry *dentry, struct dentry *parent)
+{
+	int err;
+	aufs_bindex_t new_bindex, bindex, bbot, bwh, bdiropq;
+	struct au_hdentry tmp, *p, *q;
+	struct au_dinfo *dinfo;
+	struct super_block *sb;
+
+	DiMustWriteLock(dentry);
+
+	sb = dentry->d_sb;
+	dinfo = au_di(dentry);
+	bbot = dinfo->di_bbot;
+	bwh = dinfo->di_bwh;
+	bdiropq = dinfo->di_bdiropq;
+	bindex = dinfo->di_btop;
+	p = au_hdentry(dinfo, bindex);
+	for (; bindex <= bbot; bindex++, p++) {
+		if (!p->hd_dentry)
+			continue;
+
+		new_bindex = au_br_index(sb, p->hd_id);
+		if (new_bindex == bindex)
+			continue;
+
+		if (dinfo->di_bwh == bindex)
+			bwh = new_bindex;
+		if (dinfo->di_bdiropq == bindex)
+			bdiropq = new_bindex;
+		if (new_bindex < 0) {
+			au_hdput(p);
+			p->hd_dentry = NULL;
+			continue;
+		}
+
+		/* swap two lower dentries, and loop again */
+		q = au_hdentry(dinfo, new_bindex);
+		tmp = *q;
+		*q = *p;
+		*p = tmp;
+		if (tmp.hd_dentry) {
+			bindex--;
+			p--;
+		}
+	}
+
+	dinfo->di_bwh = -1;
+	if (bwh >= 0 && bwh <= au_sbbot(sb) && au_sbr_whable(sb, bwh))
+		dinfo->di_bwh = bwh;
+
+	dinfo->di_bdiropq = -1;
+	if (bdiropq >= 0
+	    && bdiropq <= au_sbbot(sb)
+	    && au_sbr_whable(sb, bdiropq))
+		dinfo->di_bdiropq = bdiropq;
+
+	err = -EIO;
+	dinfo->di_btop = -1;
+	dinfo->di_bbot = -1;
+	bbot = au_dbbot(parent);
+	bindex = 0;
+	p = au_hdentry(dinfo, bindex);
+	for (; bindex <= bbot; bindex++, p++)
+		if (p->hd_dentry) {
+			dinfo->di_btop = bindex;
+			break;
+		}
+
+	if (dinfo->di_btop >= 0) {
+		bindex = bbot;
+		p = au_hdentry(dinfo, bindex);
+		for (; bindex >= 0; bindex--, p--)
+			if (p->hd_dentry) {
+				dinfo->di_bbot = bindex;
+				err = 0;
+				break;
+			}
+	}
+
+	return err;
+}
+
+static void au_do_hide(struct dentry *dentry)
+{
+	struct inode *inode;
+
+	if (d_really_is_positive(dentry)) {
+		inode = d_inode(dentry);
+		if (!d_is_dir(dentry)) {
+			if (inode->i_nlink && !d_unhashed(dentry))
+				drop_nlink(inode);
+		} else {
+			clear_nlink(inode);
+			/* stop next lookup */
+			inode->i_flags |= S_DEAD;
+		}
+		smp_mb(); /* necessary? */
+	}
+	d_drop(dentry);
+}
+
+static int au_hide_children(struct dentry *parent)
+{
+	int err, i, j, ndentry;
+	struct au_dcsub_pages dpages;
+	struct au_dpage *dpage;
+	struct dentry *dentry;
+
+	err = au_dpages_init(&dpages, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+	err = au_dcsub_pages(&dpages, parent, NULL, NULL);
+	if (unlikely(err))
+		goto out_dpages;
+
+	/* in reverse order */
+	for (i = dpages.ndpage - 1; i >= 0; i--) {
+		dpage = dpages.dpages + i;
+		ndentry = dpage->ndentry;
+		for (j = ndentry - 1; j >= 0; j--) {
+			dentry = dpage->dentries[j];
+			if (dentry != parent)
+				au_do_hide(dentry);
+		}
+	}
+
+out_dpages:
+	au_dpages_free(&dpages);
+out:
+	return err;
+}
+
+static void au_hide(struct dentry *dentry)
+{
+	int err;
+
+	AuDbgDentry(dentry);
+	if (d_is_dir(dentry)) {
+		/* shrink_dcache_parent(dentry); */
+		err = au_hide_children(dentry);
+		if (unlikely(err))
+			AuIOErr("%pd, failed hiding children, ignored %d\n",
+				dentry, err);
+	}
+	au_do_hide(dentry);
+}
+
+/*
+ * By adding a dirty branch, a cached dentry may be affected in various ways.
+ *
+ * a dirty branch is added
+ * - on the top of layers
+ * - in the middle of layers
+ * - to the bottom of layers
+ *
+ * on the added branch there exists
+ * - a whiteout
+ * - a diropq
+ * - a same named entry
+ *   + exist
+ *     * negative --> positive
+ *     * positive --> positive
+ *	 - type is unchanged
+ *	 - type is changed
+ *   + doesn't exist
+ *     * negative --> negative
+ *     * positive --> negative (rejected by au_br_del() for non-dir case)
+ * - none
+ */
+static int au_refresh_by_dinfo(struct dentry *dentry, struct au_dinfo *dinfo,
+			       struct au_dinfo *tmp)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct {
+		struct dentry *dentry;
+		struct inode *inode;
+		mode_t mode;
+	} orig_h, tmp_h = {
+		.dentry = NULL
+	};
+	struct au_hdentry *hd;
+	struct inode *inode, *h_inode;
+	struct dentry *h_dentry;
+
+	err = 0;
+	AuDebugOn(dinfo->di_btop < 0);
+	orig_h.mode = 0;
+	orig_h.dentry = au_hdentry(dinfo, dinfo->di_btop)->hd_dentry;
+	orig_h.inode = NULL;
+	if (d_is_positive(orig_h.dentry)) {
+		orig_h.inode = d_inode(orig_h.dentry);
+		orig_h.mode = orig_h.inode->i_mode & S_IFMT;
+	}
+	if (tmp->di_btop >= 0) {
+		tmp_h.dentry = au_hdentry(tmp, tmp->di_btop)->hd_dentry;
+		if (d_is_positive(tmp_h.dentry)) {
+			tmp_h.inode = d_inode(tmp_h.dentry);
+			tmp_h.mode = tmp_h.inode->i_mode & S_IFMT;
+		}
+	}
+
+	inode = NULL;
+	if (d_really_is_positive(dentry))
+		inode = d_inode(dentry);
+	if (!orig_h.inode) {
+		AuDbg("negative originally\n");
+		if (inode) {
+			au_hide(dentry);
+			goto out;
+		}
+		AuDebugOn(inode);
+		AuDebugOn(dinfo->di_btop != dinfo->di_bbot);
+		AuDebugOn(dinfo->di_bdiropq != -1);
+
+		if (!tmp_h.inode) {
+			AuDbg("negative --> negative\n");
+			/* should have only one negative lower */
+			if (tmp->di_btop >= 0
+			    && tmp->di_btop < dinfo->di_btop) {
+				AuDebugOn(tmp->di_btop != tmp->di_bbot);
+				AuDebugOn(dinfo->di_btop != dinfo->di_bbot);
+				au_set_h_dptr(dentry, dinfo->di_btop, NULL);
+				au_di_cp(dinfo, tmp);
+				hd = au_hdentry(tmp, tmp->di_btop);
+				au_set_h_dptr(dentry, tmp->di_btop,
+					      dget(hd->hd_dentry));
+			}
+			au_dbg_verify_dinode(dentry);
+		} else {
+			AuDbg("negative --> positive\n");
+			/*
+			 * similar to the behaviour of creating with bypassing
+			 * aufs.
+			 * unhash it in order to force an error in the
+			 * succeeding create operation.
+			 * we should not set S_DEAD here.
+			 */
+			d_drop(dentry);
+			/* au_di_swap(tmp, dinfo); */
+			au_dbg_verify_dinode(dentry);
+		}
+	} else {
+		AuDbg("positive originally\n");
+		/* inode may be NULL */
+		AuDebugOn(inode && (inode->i_mode & S_IFMT) != orig_h.mode);
+		if (!tmp_h.inode) {
+			AuDbg("positive --> negative\n");
+			/* or bypassing aufs */
+			au_hide(dentry);
+			if (tmp->di_bwh >= 0 && tmp->di_bwh <= dinfo->di_btop)
+				dinfo->di_bwh = tmp->di_bwh;
+			if (inode)
+				err = au_refresh_hinode_self(inode);
+			au_dbg_verify_dinode(dentry);
+		} else if (orig_h.mode == tmp_h.mode) {
+			AuDbg("positive --> positive, same type\n");
+			if (!S_ISDIR(orig_h.mode)
+			    && dinfo->di_btop > tmp->di_btop) {
+				/*
+				 * similar to the behaviour of removing and
+				 * creating.
+				 */
+				au_hide(dentry);
+				if (inode)
+					err = au_refresh_hinode_self(inode);
+				au_dbg_verify_dinode(dentry);
+			} else {
+				/* fill empty slots */
+				if (dinfo->di_btop > tmp->di_btop)
+					dinfo->di_btop = tmp->di_btop;
+				if (dinfo->di_bbot < tmp->di_bbot)
+					dinfo->di_bbot = tmp->di_bbot;
+				dinfo->di_bwh = tmp->di_bwh;
+				dinfo->di_bdiropq = tmp->di_bdiropq;
+				bbot = dinfo->di_bbot;
+				bindex = tmp->di_btop;
+				hd = au_hdentry(tmp, bindex);
+				for (; bindex <= bbot; bindex++, hd++) {
+					if (au_h_dptr(dentry, bindex))
+						continue;
+					h_dentry = hd->hd_dentry;
+					if (!h_dentry)
+						continue;
+					AuDebugOn(d_is_negative(h_dentry));
+					h_inode = d_inode(h_dentry);
+					AuDebugOn(orig_h.mode
+						  != (h_inode->i_mode
+						      & S_IFMT));
+					au_set_h_dptr(dentry, bindex,
+						      dget(h_dentry));
+				}
+				if (inode)
+					err = au_refresh_hinode(inode, dentry);
+				au_dbg_verify_dinode(dentry);
+			}
+		} else {
+			AuDbg("positive --> positive, different type\n");
+			/* similar to the behaviour of removing and creating */
+			au_hide(dentry);
+			if (inode)
+				err = au_refresh_hinode_self(inode);
+			au_dbg_verify_dinode(dentry);
+		}
+	}
+
+out:
+	return err;
+}
+
+void au_refresh_dop(struct dentry *dentry, int force_reval)
+{
+	const struct dentry_operations *dop
+		= force_reval ? &aufs_dop : dentry->d_sb->s_d_op;
+	static const unsigned int mask
+		= DCACHE_OP_REVALIDATE | DCACHE_OP_WEAK_REVALIDATE;
+
+	BUILD_BUG_ON(sizeof(mask) != sizeof(dentry->d_flags));
+
+	if (dentry->d_op == dop)
+		return;
+
+	AuDbg("%pd\n", dentry);
+	spin_lock(&dentry->d_lock);
+	if (dop == &aufs_dop)
+		dentry->d_flags |= mask;
+	else
+		dentry->d_flags &= ~mask;
+	dentry->d_op = dop;
+	spin_unlock(&dentry->d_lock);
+}
+
+int au_refresh_dentry(struct dentry *dentry, struct dentry *parent)
+{
+	int err, ebrange, nbr;
+	unsigned int sigen;
+	struct au_dinfo *dinfo, *tmp;
+	struct super_block *sb;
+	struct inode *inode;
+
+	DiMustWriteLock(dentry);
+	AuDebugOn(IS_ROOT(dentry));
+	AuDebugOn(d_really_is_negative(parent));
+
+	sb = dentry->d_sb;
+	sigen = au_sigen(sb);
+	err = au_digen_test(parent, sigen);
+	if (unlikely(err))
+		goto out;
+
+	nbr = au_sbbot(sb) + 1;
+	dinfo = au_di(dentry);
+	err = au_di_realloc(dinfo, nbr, /*may_shrink*/0);
+	if (unlikely(err))
+		goto out;
+	ebrange = au_dbrange_test(dentry);
+	if (!ebrange)
+		ebrange = au_do_refresh_hdentry(dentry, parent);
+
+	if (d_unhashed(dentry) || ebrange /* || dinfo->di_tmpfile */) {
+		AuDebugOn(au_dbtop(dentry) < 0 && au_dbbot(dentry) >= 0);
+		if (d_really_is_positive(dentry)) {
+			inode = d_inode(dentry);
+			err = au_refresh_hinode_self(inode);
+		}
+		au_dbg_verify_dinode(dentry);
+		if (!err)
+			goto out_dgen; /* success */
+		goto out;
+	}
+
+	/* temporary dinfo */
+	AuDbgDentry(dentry);
+	err = -ENOMEM;
+	tmp = au_di_alloc(sb, AuLsc_DI_TMP);
+	if (unlikely(!tmp))
+		goto out;
+	au_di_swap(tmp, dinfo);
+	/* returns the number of positive dentries */
+	/*
+	 * if current working dir is removed, it returns an error.
+	 * but the dentry is legal.
+	 */
+	err = au_lkup_dentry(dentry, /*btop*/0, AuLkup_ALLOW_NEG);
+	AuDbgDentry(dentry);
+	au_di_swap(tmp, dinfo);
+	if (err == -ENOENT)
+		err = 0;
+	if (err >= 0) {
+		/* compare/refresh by dinfo */
+		AuDbgDentry(dentry);
+		err = au_refresh_by_dinfo(dentry, dinfo, tmp);
+		au_dbg_verify_dinode(dentry);
+		AuTraceErr(err);
+	}
+	au_di_realloc(dinfo, nbr, /*may_shrink*/1); /* harmless if err */
+	au_rw_write_unlock(&tmp->di_rwsem);
+	au_di_free(tmp);
+	if (unlikely(err))
+		goto out;
+
+out_dgen:
+	au_update_digen(dentry);
+out:
+	if (unlikely(err && !(dentry->d_flags & DCACHE_NFSFS_RENAMED))) {
+		AuIOErr("failed refreshing %pd, %d\n", dentry, err);
+		AuDbgDentry(dentry);
+	}
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_do_h_d_reval(struct dentry *h_dentry, unsigned int flags,
+			   struct dentry *dentry, aufs_bindex_t bindex)
+{
+	int err, valid;
+
+	err = 0;
+	if (!(h_dentry->d_flags & DCACHE_OP_REVALIDATE))
+		goto out;
+
+	AuDbg("b%d\n", bindex);
+	/*
+	 * gave up supporting LOOKUP_CREATE/OPEN for lower fs,
+	 * due to whiteout and branch permission.
+	 */
+	flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE
+		   | LOOKUP_FOLLOW | LOOKUP_EXCL);
+	/* it may return tri-state */
+	valid = h_dentry->d_op->d_revalidate(h_dentry, flags);
+
+	if (unlikely(valid < 0))
+		err = valid;
+	else if (!valid)
+		err = -EINVAL;
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* todo: remove this */
+static int h_d_revalidate(struct dentry *dentry, struct inode *inode,
+			  unsigned int flags, int do_udba, int dirren)
+{
+	int err;
+	umode_t mode, h_mode;
+	aufs_bindex_t bindex, btail, btop, ibs, ibe;
+	unsigned char plus, unhashed, is_root, h_plus, h_nfs, tmpfile;
+	struct inode *h_inode, *h_cached_inode;
+	struct dentry *h_dentry;
+	struct qstr *name, *h_name;
+
+	err = 0;
+	plus = 0;
+	mode = 0;
+	ibs = -1;
+	ibe = -1;
+	unhashed = !!d_unhashed(dentry);
+	is_root = !!IS_ROOT(dentry);
+	name = &dentry->d_name;
+	tmpfile = au_di(dentry)->di_tmpfile;
+
+	/*
+	 * Theoretically, REVAL test should be unnecessary in case of
+	 * {FS,I}NOTIFY.
+	 * But {fs,i}notify doesn't fire some necessary events,
+	 *	IN_ATTRIB for atime/nlink/pageio
+	 * Let's do REVAL test too.
+	 */
+	if (do_udba && inode) {
+		mode = (inode->i_mode & S_IFMT);
+		plus = (inode->i_nlink > 0);
+		ibs = au_ibtop(inode);
+		ibe = au_ibbot(inode);
+	}
+
+	btop = au_dbtop(dentry);
+	btail = btop;
+	if (inode && S_ISDIR(inode->i_mode))
+		btail = au_dbtaildir(dentry);
+	for (bindex = btop; bindex <= btail; bindex++) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (!h_dentry)
+			continue;
+
+		AuDbg("b%d, %pd\n", bindex, h_dentry);
+		h_nfs = !!au_test_nfs(h_dentry->d_sb);
+		spin_lock(&h_dentry->d_lock);
+		h_name = &h_dentry->d_name;
+		if (unlikely(do_udba
+			     && !is_root
+			     && ((!h_nfs
+				  && (unhashed != !!d_unhashed(h_dentry)
+				      || (!tmpfile && !dirren
+					  && !au_qstreq(name, h_name))
+					  ))
+				 || (h_nfs
+				     && !(flags & LOOKUP_OPEN)
+				     && (h_dentry->d_flags
+					 & DCACHE_NFSFS_RENAMED)))
+			    )) {
+			int h_unhashed;
+
+			h_unhashed = d_unhashed(h_dentry);
+			spin_unlock(&h_dentry->d_lock);
+			AuDbg("unhash 0x%x 0x%x, %pd %pd\n",
+			      unhashed, h_unhashed, dentry, h_dentry);
+			goto err;
+		}
+		spin_unlock(&h_dentry->d_lock);
+
+		err = au_do_h_d_reval(h_dentry, flags, dentry, bindex);
+		if (unlikely(err))
+			/* do not goto err, to keep the errno */
+			break;
+
+		/* todo: plink too? */
+		if (!do_udba)
+			continue;
+
+		/* UDBA tests */
+		if (unlikely(!!inode != d_is_positive(h_dentry)))
+			goto err;
+
+		h_inode = NULL;
+		if (d_is_positive(h_dentry))
+			h_inode = d_inode(h_dentry);
+		h_plus = plus;
+		h_mode = mode;
+		h_cached_inode = h_inode;
+		if (h_inode) {
+			h_mode = (h_inode->i_mode & S_IFMT);
+			h_plus = (h_inode->i_nlink > 0);
+		}
+		if (inode && ibs <= bindex && bindex <= ibe)
+			h_cached_inode = au_h_iptr(inode, bindex);
+
+		if (!h_nfs) {
+			if (unlikely(plus != h_plus && !tmpfile))
+				goto err;
+		} else {
+			if (unlikely(!(h_dentry->d_flags & DCACHE_NFSFS_RENAMED)
+				     && !is_root
+				     && !IS_ROOT(h_dentry)
+				     && unhashed != d_unhashed(h_dentry)))
+				goto err;
+		}
+		if (unlikely(mode != h_mode
+			     || h_cached_inode != h_inode))
+			goto err;
+		continue;
+
+err:
+		err = -EINVAL;
+		break;
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+/* todo: consolidate with do_refresh() and au_reval_for_attr() */
+static int simple_reval_dpath(struct dentry *dentry, unsigned int sigen)
+{
+	int err;
+	struct dentry *parent;
+
+	if (!au_digen_test(dentry, sigen))
+		return 0;
+
+	parent = dget_parent(dentry);
+	di_read_lock_parent(parent, AuLock_IR);
+	AuDebugOn(au_digen_test(parent, sigen));
+	au_dbg_verify_gen(parent, sigen);
+	err = au_refresh_dentry(dentry, parent);
+	di_read_unlock(parent, AuLock_IR);
+	dput(parent);
+	AuTraceErr(err);
+	return err;
+}
+
+int au_reval_dpath(struct dentry *dentry, unsigned int sigen)
+{
+	int err;
+	struct dentry *d, *parent;
+
+	if (!au_ftest_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIR))
+		return simple_reval_dpath(dentry, sigen);
+
+	/* slow loop, keep it simple and stupid */
+	/* cf: au_cpup_dirs() */
+	err = 0;
+	parent = NULL;
+	while (au_digen_test(dentry, sigen)) {
+		d = dentry;
+		while (1) {
+			dput(parent);
+			parent = dget_parent(d);
+			if (!au_digen_test(parent, sigen))
+				break;
+			d = parent;
+		}
+
+		if (d != dentry)
+			di_write_lock_child2(d);
+
+		/* someone might update our dentry while we were sleeping */
+		if (au_digen_test(d, sigen)) {
+			/*
+			 * todo: consolidate with simple_reval_dpath(),
+			 * do_refresh() and au_reval_for_attr().
+			 */
+			di_read_lock_parent(parent, AuLock_IR);
+			err = au_refresh_dentry(d, parent);
+			di_read_unlock(parent, AuLock_IR);
+		}
+
+		if (d != dentry)
+			di_write_unlock(d);
+		dput(parent);
+		if (unlikely(err))
+			break;
+	}
+
+	return err;
+}
+
+/*
+ * if valid returns 1, otherwise 0.
+ */
+static int aufs_d_revalidate(struct dentry *dentry, unsigned int flags)
+{
+	int valid, err;
+	unsigned int sigen;
+	unsigned char do_udba, dirren;
+	struct super_block *sb;
+	struct inode *inode;
+
+	/* todo: support rcu-walk? */
+	if (flags & LOOKUP_RCU)
+		return -ECHILD;
+
+	valid = 0;
+	if (unlikely(!au_di(dentry)))
+		goto out;
+
+	valid = 1;
+	sb = dentry->d_sb;
+	/*
+	 * todo: very ugly
+	 * i_mutex of parent dir may be held,
+	 * but we should not return 'invalid' due to busy.
+	 */
+	err = aufs_read_lock(dentry, AuLock_FLUSH | AuLock_DW | AuLock_NOPLM);
+	if (unlikely(err)) {
+		valid = err;
+		AuTraceErr(err);
+		goto out;
+	}
+	inode = NULL;
+	if (d_really_is_positive(dentry))
+		inode = d_inode(dentry);
+	if (unlikely(inode && au_is_bad_inode(inode))) {
+		err = -EINVAL;
+		AuTraceErr(err);
+		goto out_dgrade;
+	}
+	if (unlikely(au_dbrange_test(dentry))) {
+		err = -EINVAL;
+		AuTraceErr(err);
+		goto out_dgrade;
+	}
+
+	sigen = au_sigen(sb);
+	if (au_digen_test(dentry, sigen)) {
+		AuDebugOn(IS_ROOT(dentry));
+		err = au_reval_dpath(dentry, sigen);
+		if (unlikely(err)) {
+			AuTraceErr(err);
+			goto out_dgrade;
+		}
+	}
+	di_downgrade_lock(dentry, AuLock_IR);
+
+	err = -EINVAL;
+	if (!(flags & (LOOKUP_OPEN | LOOKUP_EMPTY))
+	    && inode
+	    && !(inode->i_state && I_LINKABLE)
+	    && (IS_DEADDIR(inode) || !inode->i_nlink)) {
+		AuTraceErr(err);
+		goto out_inval;
+	}
+
+	do_udba = !au_opt_test(au_mntflags(sb), UDBA_NONE);
+	if (do_udba && inode) {
+		aufs_bindex_t btop = au_ibtop(inode);
+		struct inode *h_inode;
+
+		if (btop >= 0) {
+			h_inode = au_h_iptr(inode, btop);
+			if (h_inode && au_test_higen(inode, h_inode)) {
+				AuTraceErr(err);
+				goto out_inval;
+			}
+		}
+	}
+
+	dirren = !!au_opt_test(au_mntflags(sb), DIRREN);
+	err = h_d_revalidate(dentry, inode, flags, do_udba, dirren);
+	if (unlikely(!err && do_udba && au_dbtop(dentry) < 0)) {
+		err = -EIO;
+		AuDbg("both of real entry and whiteout found, %p, err %d\n",
+		      dentry, err);
+	}
+	goto out_inval;
+
+out_dgrade:
+	di_downgrade_lock(dentry, AuLock_IR);
+out_inval:
+	aufs_read_unlock(dentry, AuLock_IR);
+	AuTraceErr(err);
+	valid = !err;
+out:
+	if (!valid) {
+		AuDbg("%pd invalid, %d\n", dentry, valid);
+		d_drop(dentry);
+	}
+	return valid;
+}
+
+static void aufs_d_release(struct dentry *dentry)
+{
+	if (au_di(dentry)) {
+		au_di_fin(dentry);
+		au_hn_di_reinit(dentry);
+	}
+}
+
+const struct dentry_operations aufs_dop = {
+	.d_revalidate		= aufs_d_revalidate,
+	.d_weak_revalidate	= aufs_d_revalidate,
+	.d_release		= aufs_d_release
+};
+
+/* aufs_dop without d_revalidate */
+const struct dentry_operations aufs_dop_noreval = {
+	.d_release		= aufs_d_release
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dentry.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dentry.h
@@ -0,0 +1,268 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * lookup and dentry operations
+ */
+
+#ifndef __AUFS_DENTRY_H__
+#define __AUFS_DENTRY_H__
+
+#ifdef __KERNEL__
+
+#include <linux/dcache.h>
+#include "dirren.h"
+#include "rwsem.h"
+
+struct au_hdentry {
+	struct dentry		*hd_dentry;
+	aufs_bindex_t		hd_id;
+};
+
+struct au_dinfo {
+	atomic_t		di_generation;
+
+	struct au_rwsem		di_rwsem;
+	aufs_bindex_t		di_btop, di_bbot, di_bwh, di_bdiropq;
+	unsigned char		di_tmpfile; /* to allow the different name */
+	struct au_hdentry	*di_hdentry;
+	struct rcu_head		rcu;
+} ____cacheline_aligned_in_smp;
+
+/* ---------------------------------------------------------------------- */
+
+/* flags for au_lkup_dentry() */
+#define AuLkup_ALLOW_NEG	1
+#define AuLkup_IGNORE_PERM	(1 << 1)
+#define AuLkup_DIRREN		(1 << 2)
+#define au_ftest_lkup(flags, name)	((flags) & AuLkup_##name)
+#define au_fset_lkup(flags, name) \
+	do { (flags) |= AuLkup_##name; } while (0)
+#define au_fclr_lkup(flags, name) \
+	do { (flags) &= ~AuLkup_##name; } while (0)
+
+#ifndef CONFIG_AUFS_DIRREN
+#undef AuLkup_DIRREN
+#define AuLkup_DIRREN 0
+#endif
+
+struct au_do_lookup_args {
+	unsigned int		flags;
+	mode_t			type;
+	struct qstr		whname, *name;
+	struct au_dr_lookup	dirren;
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* dentry.c */
+extern const struct dentry_operations aufs_dop, aufs_dop_noreval;
+struct au_branch;
+struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent);
+int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir,
+		struct dentry *h_parent, struct au_branch *br);
+
+int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t btop,
+		   unsigned int flags);
+int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex, int wh);
+int au_refresh_dentry(struct dentry *dentry, struct dentry *parent);
+int au_reval_dpath(struct dentry *dentry, unsigned int sigen);
+void au_refresh_dop(struct dentry *dentry, int force_reval);
+
+/* dinfo.c */
+void au_di_init_once(void *_di);
+struct au_dinfo *au_di_alloc(struct super_block *sb, unsigned int lsc);
+void au_di_free(struct au_dinfo *dinfo);
+void au_di_swap(struct au_dinfo *a, struct au_dinfo *b);
+void au_di_cp(struct au_dinfo *dst, struct au_dinfo *src);
+int au_di_init(struct dentry *dentry);
+void au_di_fin(struct dentry *dentry);
+int au_di_realloc(struct au_dinfo *dinfo, int nbr, int may_shrink);
+
+void di_read_lock(struct dentry *d, int flags, unsigned int lsc);
+void di_read_unlock(struct dentry *d, int flags);
+void di_downgrade_lock(struct dentry *d, int flags);
+void di_write_lock(struct dentry *d, unsigned int lsc);
+void di_write_unlock(struct dentry *d);
+void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir);
+void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir);
+void di_write_unlock2(struct dentry *d1, struct dentry *d2);
+
+struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex);
+struct dentry *au_h_d_alias(struct dentry *dentry, aufs_bindex_t bindex);
+aufs_bindex_t au_dbtail(struct dentry *dentry);
+aufs_bindex_t au_dbtaildir(struct dentry *dentry);
+
+void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
+		   struct dentry *h_dentry);
+int au_digen_test(struct dentry *dentry, unsigned int sigen);
+int au_dbrange_test(struct dentry *dentry);
+void au_update_digen(struct dentry *dentry);
+void au_update_dbrange(struct dentry *dentry, int do_put_zero);
+void au_update_dbtop(struct dentry *dentry);
+void au_update_dbbot(struct dentry *dentry);
+int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_dinfo *au_di(struct dentry *dentry)
+{
+	return dentry->d_fsdata;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* lock subclass for dinfo */
+enum {
+	AuLsc_DI_CHILD,		/* child first */
+	AuLsc_DI_CHILD2,	/* rename(2), link(2), and cpup at hnotify */
+	AuLsc_DI_CHILD3,	/* copyup dirs */
+	AuLsc_DI_PARENT,
+	AuLsc_DI_PARENT2,
+	AuLsc_DI_PARENT3,
+	AuLsc_DI_TMP		/* temp for replacing dinfo */
+};
+
+/*
+ * di_read_lock_child, di_write_lock_child,
+ * di_read_lock_child2, di_write_lock_child2,
+ * di_read_lock_child3, di_write_lock_child3,
+ * di_read_lock_parent, di_write_lock_parent,
+ * di_read_lock_parent2, di_write_lock_parent2,
+ * di_read_lock_parent3, di_write_lock_parent3,
+ */
+#define AuReadLockFunc(name, lsc) \
+static inline void di_read_lock_##name(struct dentry *d, int flags) \
+{ di_read_lock(d, flags, AuLsc_DI_##lsc); }
+
+#define AuWriteLockFunc(name, lsc) \
+static inline void di_write_lock_##name(struct dentry *d) \
+{ di_write_lock(d, AuLsc_DI_##lsc); }
+
+#define AuRWLockFuncs(name, lsc) \
+	AuReadLockFunc(name, lsc) \
+	AuWriteLockFunc(name, lsc)
+
+AuRWLockFuncs(child, CHILD);
+AuRWLockFuncs(child2, CHILD2);
+AuRWLockFuncs(child3, CHILD3);
+AuRWLockFuncs(parent, PARENT);
+AuRWLockFuncs(parent2, PARENT2);
+AuRWLockFuncs(parent3, PARENT3);
+
+#undef AuReadLockFunc
+#undef AuWriteLockFunc
+#undef AuRWLockFuncs
+
+#define DiMustNoWaiters(d)	AuRwMustNoWaiters(&au_di(d)->di_rwsem)
+#define DiMustAnyLock(d)	AuRwMustAnyLock(&au_di(d)->di_rwsem)
+#define DiMustWriteLock(d)	AuRwMustWriteLock(&au_di(d)->di_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: memory barrier? */
+static inline unsigned int au_digen(struct dentry *d)
+{
+	return atomic_read(&au_di(d)->di_generation);
+}
+
+static inline void au_h_dentry_init(struct au_hdentry *hdentry)
+{
+	hdentry->hd_dentry = NULL;
+}
+
+static inline struct au_hdentry *au_hdentry(struct au_dinfo *di,
+					    aufs_bindex_t bindex)
+{
+	return di->di_hdentry + bindex;
+}
+
+static inline void au_hdput(struct au_hdentry *hd)
+{
+	if (hd)
+		dput(hd->hd_dentry);
+}
+
+static inline aufs_bindex_t au_dbtop(struct dentry *dentry)
+{
+	DiMustAnyLock(dentry);
+	return au_di(dentry)->di_btop;
+}
+
+static inline aufs_bindex_t au_dbbot(struct dentry *dentry)
+{
+	DiMustAnyLock(dentry);
+	return au_di(dentry)->di_bbot;
+}
+
+static inline aufs_bindex_t au_dbwh(struct dentry *dentry)
+{
+	DiMustAnyLock(dentry);
+	return au_di(dentry)->di_bwh;
+}
+
+static inline aufs_bindex_t au_dbdiropq(struct dentry *dentry)
+{
+	DiMustAnyLock(dentry);
+	return au_di(dentry)->di_bdiropq;
+}
+
+/* todo: hard/soft set? */
+static inline void au_set_dbtop(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	DiMustWriteLock(dentry);
+	au_di(dentry)->di_btop = bindex;
+}
+
+static inline void au_set_dbbot(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	DiMustWriteLock(dentry);
+	au_di(dentry)->di_bbot = bindex;
+}
+
+static inline void au_set_dbwh(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	DiMustWriteLock(dentry);
+	/* dbwh can be outside of btop - bbot range */
+	au_di(dentry)->di_bwh = bindex;
+}
+
+static inline void au_set_dbdiropq(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	DiMustWriteLock(dentry);
+	au_di(dentry)->di_bdiropq = bindex;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_HNOTIFY
+static inline void au_digen_dec(struct dentry *d)
+{
+	atomic_dec(&au_di(d)->di_generation);
+}
+
+static inline void au_hn_di_reinit(struct dentry *dentry)
+{
+	dentry->d_fsdata = NULL;
+}
+#else
+AuStubVoid(au_hn_di_reinit, struct dentry *dentry __maybe_unused)
+#endif /* CONFIG_AUFS_HNOTIFY */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DENTRY_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dinfo.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dinfo.c
@@ -0,0 +1,554 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * dentry private data
+ */
+
+#include "aufs.h"
+
+void au_di_init_once(void *_dinfo)
+{
+	struct au_dinfo *dinfo = _dinfo;
+
+	au_rw_init(&dinfo->di_rwsem);
+}
+
+struct au_dinfo *au_di_alloc(struct super_block *sb, unsigned int lsc)
+{
+	struct au_dinfo *dinfo;
+	int nbr, i;
+
+	dinfo = au_cache_alloc_dinfo();
+	if (unlikely(!dinfo))
+		goto out;
+
+	nbr = au_sbbot(sb) + 1;
+	if (nbr <= 0)
+		nbr = 1;
+	dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry), GFP_NOFS);
+	if (dinfo->di_hdentry) {
+		au_rw_write_lock_nested(&dinfo->di_rwsem, lsc);
+		dinfo->di_btop = -1;
+		dinfo->di_bbot = -1;
+		dinfo->di_bwh = -1;
+		dinfo->di_bdiropq = -1;
+		dinfo->di_tmpfile = 0;
+		for (i = 0; i < nbr; i++)
+			dinfo->di_hdentry[i].hd_id = -1;
+		goto out;
+	}
+
+	au_cache_free_dinfo(dinfo);
+	dinfo = NULL;
+
+out:
+	return dinfo;
+}
+
+void au_di_free(struct au_dinfo *dinfo)
+{
+	struct au_hdentry *p;
+	aufs_bindex_t bbot, bindex;
+
+	/* dentry may not be revalidated */
+	bindex = dinfo->di_btop;
+	if (bindex >= 0) {
+		bbot = dinfo->di_bbot;
+		p = au_hdentry(dinfo, bindex);
+		while (bindex++ <= bbot)
+			au_hdput(p++);
+	}
+	au_kfree_try_rcu(dinfo->di_hdentry);
+	au_cache_free_dinfo(dinfo);
+}
+
+void au_di_swap(struct au_dinfo *a, struct au_dinfo *b)
+{
+	struct au_hdentry *p;
+	aufs_bindex_t bi;
+
+	AuRwMustWriteLock(&a->di_rwsem);
+	AuRwMustWriteLock(&b->di_rwsem);
+
+#define DiSwap(v, name)				\
+	do {					\
+		v = a->di_##name;		\
+		a->di_##name = b->di_##name;	\
+		b->di_##name = v;		\
+	} while (0)
+
+	DiSwap(p, hdentry);
+	DiSwap(bi, btop);
+	DiSwap(bi, bbot);
+	DiSwap(bi, bwh);
+	DiSwap(bi, bdiropq);
+	/* smp_mb(); */
+
+#undef DiSwap
+}
+
+void au_di_cp(struct au_dinfo *dst, struct au_dinfo *src)
+{
+	AuRwMustWriteLock(&dst->di_rwsem);
+	AuRwMustWriteLock(&src->di_rwsem);
+
+	dst->di_btop = src->di_btop;
+	dst->di_bbot = src->di_bbot;
+	dst->di_bwh = src->di_bwh;
+	dst->di_bdiropq = src->di_bdiropq;
+	/* smp_mb(); */
+}
+
+int au_di_init(struct dentry *dentry)
+{
+	int err;
+	struct super_block *sb;
+	struct au_dinfo *dinfo;
+
+	err = 0;
+	sb = dentry->d_sb;
+	dinfo = au_di_alloc(sb, AuLsc_DI_CHILD);
+	if (dinfo) {
+		atomic_set(&dinfo->di_generation, au_sigen(sb));
+		/* smp_mb(); */ /* atomic_set */
+		dentry->d_fsdata = dinfo;
+	} else
+		err = -ENOMEM;
+
+	return err;
+}
+
+void au_di_fin(struct dentry *dentry)
+{
+	struct au_dinfo *dinfo;
+
+	dinfo = au_di(dentry);
+	AuRwDestroy(&dinfo->di_rwsem);
+	au_di_free(dinfo);
+}
+
+int au_di_realloc(struct au_dinfo *dinfo, int nbr, int may_shrink)
+{
+	int err, sz;
+	struct au_hdentry *hdp;
+
+	AuRwMustWriteLock(&dinfo->di_rwsem);
+
+	err = -ENOMEM;
+	sz = sizeof(*hdp) * (dinfo->di_bbot + 1);
+	if (!sz)
+		sz = sizeof(*hdp);
+	hdp = au_kzrealloc(dinfo->di_hdentry, sz, sizeof(*hdp) * nbr, GFP_NOFS,
+			   may_shrink);
+	if (hdp) {
+		dinfo->di_hdentry = hdp;
+		err = 0;
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void do_ii_write_lock(struct inode *inode, unsigned int lsc)
+{
+	switch (lsc) {
+	case AuLsc_DI_CHILD:
+		ii_write_lock_child(inode);
+		break;
+	case AuLsc_DI_CHILD2:
+		ii_write_lock_child2(inode);
+		break;
+	case AuLsc_DI_CHILD3:
+		ii_write_lock_child3(inode);
+		break;
+	case AuLsc_DI_PARENT:
+		ii_write_lock_parent(inode);
+		break;
+	case AuLsc_DI_PARENT2:
+		ii_write_lock_parent2(inode);
+		break;
+	case AuLsc_DI_PARENT3:
+		ii_write_lock_parent3(inode);
+		break;
+	default:
+		BUG();
+	}
+}
+
+static void do_ii_read_lock(struct inode *inode, unsigned int lsc)
+{
+	switch (lsc) {
+	case AuLsc_DI_CHILD:
+		ii_read_lock_child(inode);
+		break;
+	case AuLsc_DI_CHILD2:
+		ii_read_lock_child2(inode);
+		break;
+	case AuLsc_DI_CHILD3:
+		ii_read_lock_child3(inode);
+		break;
+	case AuLsc_DI_PARENT:
+		ii_read_lock_parent(inode);
+		break;
+	case AuLsc_DI_PARENT2:
+		ii_read_lock_parent2(inode);
+		break;
+	case AuLsc_DI_PARENT3:
+		ii_read_lock_parent3(inode);
+		break;
+	default:
+		BUG();
+	}
+}
+
+void di_read_lock(struct dentry *d, int flags, unsigned int lsc)
+{
+	struct inode *inode;
+
+	au_rw_read_lock_nested(&au_di(d)->di_rwsem, lsc);
+	if (d_really_is_positive(d)) {
+		inode = d_inode(d);
+		if (au_ftest_lock(flags, IW))
+			do_ii_write_lock(inode, lsc);
+		else if (au_ftest_lock(flags, IR))
+			do_ii_read_lock(inode, lsc);
+	}
+}
+
+void di_read_unlock(struct dentry *d, int flags)
+{
+	struct inode *inode;
+
+	if (d_really_is_positive(d)) {
+		inode = d_inode(d);
+		if (au_ftest_lock(flags, IW)) {
+			au_dbg_verify_dinode(d);
+			ii_write_unlock(inode);
+		} else if (au_ftest_lock(flags, IR)) {
+			au_dbg_verify_dinode(d);
+			ii_read_unlock(inode);
+		}
+	}
+	au_rw_read_unlock(&au_di(d)->di_rwsem);
+}
+
+void di_downgrade_lock(struct dentry *d, int flags)
+{
+	if (d_really_is_positive(d) && au_ftest_lock(flags, IR))
+		ii_downgrade_lock(d_inode(d));
+	au_rw_dgrade_lock(&au_di(d)->di_rwsem);
+}
+
+void di_write_lock(struct dentry *d, unsigned int lsc)
+{
+	au_rw_write_lock_nested(&au_di(d)->di_rwsem, lsc);
+	if (d_really_is_positive(d))
+		do_ii_write_lock(d_inode(d), lsc);
+}
+
+void di_write_unlock(struct dentry *d)
+{
+	au_dbg_verify_dinode(d);
+	if (d_really_is_positive(d))
+		ii_write_unlock(d_inode(d));
+	au_rw_write_unlock(&au_di(d)->di_rwsem);
+}
+
+void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir)
+{
+	AuDebugOn(d1 == d2
+		  || d_inode(d1) == d_inode(d2)
+		  || d1->d_sb != d2->d_sb);
+
+	if ((isdir && au_test_subdir(d1, d2))
+	    || d1 < d2) {
+		di_write_lock_child(d1);
+		di_write_lock_child2(d2);
+	} else {
+		di_write_lock_child(d2);
+		di_write_lock_child2(d1);
+	}
+}
+
+void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir)
+{
+	AuDebugOn(d1 == d2
+		  || d_inode(d1) == d_inode(d2)
+		  || d1->d_sb != d2->d_sb);
+
+	if ((isdir && au_test_subdir(d1, d2))
+	    || d1 < d2) {
+		di_write_lock_parent(d1);
+		di_write_lock_parent2(d2);
+	} else {
+		di_write_lock_parent(d2);
+		di_write_lock_parent2(d1);
+	}
+}
+
+void di_write_unlock2(struct dentry *d1, struct dentry *d2)
+{
+	di_write_unlock(d1);
+	if (d_inode(d1) == d_inode(d2))
+		au_rw_write_unlock(&au_di(d2)->di_rwsem);
+	else
+		di_write_unlock(d2);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	struct dentry *d;
+
+	DiMustAnyLock(dentry);
+
+	if (au_dbtop(dentry) < 0 || bindex < au_dbtop(dentry))
+		return NULL;
+	AuDebugOn(bindex < 0);
+	d = au_hdentry(au_di(dentry), bindex)->hd_dentry;
+	AuDebugOn(d && au_dcount(d) <= 0);
+	return d;
+}
+
+/*
+ * extended version of au_h_dptr().
+ * returns a hashed and positive (or linkable) h_dentry in bindex, NULL, or
+ * error.
+ */
+struct dentry *au_h_d_alias(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	struct dentry *h_dentry;
+	struct inode *inode, *h_inode;
+
+	AuDebugOn(d_really_is_negative(dentry));
+
+	h_dentry = NULL;
+	if (au_dbtop(dentry) <= bindex
+	    && bindex <= au_dbbot(dentry))
+		h_dentry = au_h_dptr(dentry, bindex);
+	if (h_dentry && !au_d_linkable(h_dentry)) {
+		dget(h_dentry);
+		goto out; /* success */
+	}
+
+	inode = d_inode(dentry);
+	AuDebugOn(bindex < au_ibtop(inode));
+	AuDebugOn(au_ibbot(inode) < bindex);
+	h_inode = au_h_iptr(inode, bindex);
+	h_dentry = d_find_alias(h_inode);
+	if (h_dentry) {
+		if (!IS_ERR(h_dentry)) {
+			if (!au_d_linkable(h_dentry))
+				goto out; /* success */
+			dput(h_dentry);
+		} else
+			goto out;
+	}
+
+	if (au_opt_test(au_mntflags(dentry->d_sb), PLINK)) {
+		h_dentry = au_plink_lkup(inode, bindex);
+		AuDebugOn(!h_dentry);
+		if (!IS_ERR(h_dentry)) {
+			if (!au_d_hashed_positive(h_dentry))
+				goto out; /* success */
+			dput(h_dentry);
+			h_dentry = NULL;
+		}
+	}
+
+out:
+	AuDbgDentry(h_dentry);
+	return h_dentry;
+}
+
+aufs_bindex_t au_dbtail(struct dentry *dentry)
+{
+	aufs_bindex_t bbot, bwh;
+
+	bbot = au_dbbot(dentry);
+	if (0 <= bbot) {
+		bwh = au_dbwh(dentry);
+		if (!bwh)
+			return bwh;
+		if (0 < bwh && bwh < bbot)
+			return bwh - 1;
+	}
+	return bbot;
+}
+
+aufs_bindex_t au_dbtaildir(struct dentry *dentry)
+{
+	aufs_bindex_t bbot, bopq;
+
+	bbot = au_dbtail(dentry);
+	if (0 <= bbot) {
+		bopq = au_dbdiropq(dentry);
+		if (0 <= bopq && bopq < bbot)
+			bbot = bopq;
+	}
+	return bbot;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
+		   struct dentry *h_dentry)
+{
+	struct au_dinfo *dinfo;
+	struct au_hdentry *hd;
+	struct au_branch *br;
+
+	DiMustWriteLock(dentry);
+
+	dinfo = au_di(dentry);
+	hd = au_hdentry(dinfo, bindex);
+	au_hdput(hd);
+	hd->hd_dentry = h_dentry;
+	if (h_dentry) {
+		br = au_sbr(dentry->d_sb, bindex);
+		hd->hd_id = br->br_id;
+	}
+}
+
+int au_dbrange_test(struct dentry *dentry)
+{
+	int err;
+	aufs_bindex_t btop, bbot;
+
+	err = 0;
+	btop = au_dbtop(dentry);
+	bbot = au_dbbot(dentry);
+	if (btop >= 0)
+		AuDebugOn(bbot < 0 && btop > bbot);
+	else {
+		err = -EIO;
+		AuDebugOn(bbot >= 0);
+	}
+
+	return err;
+}
+
+int au_digen_test(struct dentry *dentry, unsigned int sigen)
+{
+	int err;
+
+	err = 0;
+	if (unlikely(au_digen(dentry) != sigen
+		     || au_iigen_test(d_inode(dentry), sigen)))
+		err = -EIO;
+
+	return err;
+}
+
+void au_update_digen(struct dentry *dentry)
+{
+	atomic_set(&au_di(dentry)->di_generation, au_sigen(dentry->d_sb));
+	/* smp_mb(); */ /* atomic_set */
+}
+
+void au_update_dbrange(struct dentry *dentry, int do_put_zero)
+{
+	struct au_dinfo *dinfo;
+	struct dentry *h_d;
+	struct au_hdentry *hdp;
+	aufs_bindex_t bindex, bbot;
+
+	DiMustWriteLock(dentry);
+
+	dinfo = au_di(dentry);
+	if (!dinfo || dinfo->di_btop < 0)
+		return;
+
+	if (do_put_zero) {
+		bbot = dinfo->di_bbot;
+		bindex = dinfo->di_btop;
+		hdp = au_hdentry(dinfo, bindex);
+		for (; bindex <= bbot; bindex++, hdp++) {
+			h_d = hdp->hd_dentry;
+			if (h_d && d_is_negative(h_d))
+				au_set_h_dptr(dentry, bindex, NULL);
+		}
+	}
+
+	dinfo->di_btop = 0;
+	hdp = au_hdentry(dinfo, dinfo->di_btop);
+	for (; dinfo->di_btop <= dinfo->di_bbot; dinfo->di_btop++, hdp++)
+		if (hdp->hd_dentry)
+			break;
+	if (dinfo->di_btop > dinfo->di_bbot) {
+		dinfo->di_btop = -1;
+		dinfo->di_bbot = -1;
+		return;
+	}
+
+	hdp = au_hdentry(dinfo, dinfo->di_bbot);
+	for (; dinfo->di_bbot >= 0; dinfo->di_bbot--, hdp--)
+		if (hdp->hd_dentry)
+			break;
+	AuDebugOn(dinfo->di_btop > dinfo->di_bbot || dinfo->di_bbot < 0);
+}
+
+void au_update_dbtop(struct dentry *dentry)
+{
+	aufs_bindex_t bindex, bbot;
+	struct dentry *h_dentry;
+
+	bbot = au_dbbot(dentry);
+	for (bindex = au_dbtop(dentry); bindex <= bbot; bindex++) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (!h_dentry)
+			continue;
+		if (d_is_positive(h_dentry)) {
+			au_set_dbtop(dentry, bindex);
+			return;
+		}
+		au_set_h_dptr(dentry, bindex, NULL);
+	}
+}
+
+void au_update_dbbot(struct dentry *dentry)
+{
+	aufs_bindex_t bindex, btop;
+	struct dentry *h_dentry;
+
+	btop = au_dbtop(dentry);
+	for (bindex = au_dbbot(dentry); bindex >= btop; bindex--) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (!h_dentry)
+			continue;
+		if (d_is_positive(h_dentry)) {
+			au_set_dbbot(dentry, bindex);
+			return;
+		}
+		au_set_h_dptr(dentry, bindex, NULL);
+	}
+}
+
+int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry)
+{
+	aufs_bindex_t bindex, bbot;
+
+	bbot = au_dbbot(dentry);
+	for (bindex = au_dbtop(dentry); bindex <= bbot; bindex++)
+		if (au_h_dptr(dentry, bindex) == h_dentry)
+			return bindex;
+	return -1;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dir.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dir.c
@@ -0,0 +1,763 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * directory operations
+ */
+
+#include <linux/fs_stack.h>
+#include <linux/iversion.h>
+#include "aufs.h"
+
+void au_add_nlink(struct inode *dir, struct inode *h_dir)
+{
+	unsigned int nlink;
+
+	AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
+
+	nlink = dir->i_nlink;
+	nlink += h_dir->i_nlink - 2;
+	if (h_dir->i_nlink < 2)
+		nlink += 2;
+	smp_mb(); /* for i_nlink */
+	/* 0 can happen in revaliding */
+	set_nlink(dir, nlink);
+}
+
+void au_sub_nlink(struct inode *dir, struct inode *h_dir)
+{
+	unsigned int nlink;
+
+	AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
+
+	nlink = dir->i_nlink;
+	nlink -= h_dir->i_nlink - 2;
+	if (h_dir->i_nlink < 2)
+		nlink -= 2;
+	smp_mb(); /* for i_nlink */
+	/* nlink == 0 means the branch-fs is broken */
+	set_nlink(dir, nlink);
+}
+
+loff_t au_dir_size(struct file *file, struct dentry *dentry)
+{
+	loff_t sz;
+	aufs_bindex_t bindex, bbot;
+	struct file *h_file;
+	struct dentry *h_dentry;
+
+	sz = 0;
+	if (file) {
+		AuDebugOn(!d_is_dir(file->f_path.dentry));
+
+		bbot = au_fbbot_dir(file);
+		for (bindex = au_fbtop(file);
+		     bindex <= bbot && sz < KMALLOC_MAX_SIZE;
+		     bindex++) {
+			h_file = au_hf_dir(file, bindex);
+			if (h_file && file_inode(h_file))
+				sz += vfsub_f_size_read(h_file);
+		}
+	} else {
+		AuDebugOn(!dentry);
+		AuDebugOn(!d_is_dir(dentry));
+
+		bbot = au_dbtaildir(dentry);
+		for (bindex = au_dbtop(dentry);
+		     bindex <= bbot && sz < KMALLOC_MAX_SIZE;
+		     bindex++) {
+			h_dentry = au_h_dptr(dentry, bindex);
+			if (h_dentry && d_is_positive(h_dentry))
+				sz += i_size_read(d_inode(h_dentry));
+		}
+	}
+	if (sz < KMALLOC_MAX_SIZE)
+		sz = roundup_pow_of_two(sz);
+	if (sz > KMALLOC_MAX_SIZE)
+		sz = KMALLOC_MAX_SIZE;
+	else if (sz < NAME_MAX) {
+		BUILD_BUG_ON(AUFS_RDBLK_DEF < NAME_MAX);
+		sz = AUFS_RDBLK_DEF;
+	}
+	return sz;
+}
+
+struct au_dir_ts_arg {
+	struct dentry *dentry;
+	aufs_bindex_t brid;
+};
+
+static void au_do_dir_ts(void *arg)
+{
+	struct au_dir_ts_arg *a = arg;
+	struct au_dtime dt;
+	struct path h_path;
+	struct inode *dir, *h_dir;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_hinode *hdir;
+	int err;
+	aufs_bindex_t btop, bindex;
+
+	sb = a->dentry->d_sb;
+	if (d_really_is_negative(a->dentry))
+		goto out;
+	/* no dir->i_mutex lock */
+	aufs_read_lock(a->dentry, AuLock_DW); /* noflush */
+
+	dir = d_inode(a->dentry);
+	btop = au_ibtop(dir);
+	bindex = au_br_index(sb, a->brid);
+	if (bindex < btop)
+		goto out_unlock;
+
+	br = au_sbr(sb, bindex);
+	h_path.dentry = au_h_dptr(a->dentry, bindex);
+	if (!h_path.dentry)
+		goto out_unlock;
+	h_path.mnt = au_br_mnt(br);
+	au_dtime_store(&dt, a->dentry, &h_path);
+
+	br = au_sbr(sb, btop);
+	if (!au_br_writable(br->br_perm))
+		goto out_unlock;
+	h_path.dentry = au_h_dptr(a->dentry, btop);
+	h_path.mnt = au_br_mnt(br);
+	err = vfsub_mnt_want_write(h_path.mnt);
+	if (err)
+		goto out_unlock;
+	hdir = au_hi(dir, btop);
+	au_hn_inode_lock_nested(hdir, AuLsc_I_PARENT);
+	h_dir = au_h_iptr(dir, btop);
+	if (h_dir->i_nlink
+	    && timespec64_compare(&h_dir->i_mtime, &dt.dt_mtime) < 0) {
+		dt.dt_h_path = h_path;
+		au_dtime_revert(&dt);
+	}
+	au_hn_inode_unlock(hdir);
+	vfsub_mnt_drop_write(h_path.mnt);
+	au_cpup_attr_timesizes(dir);
+
+out_unlock:
+	aufs_read_unlock(a->dentry, AuLock_DW);
+out:
+	dput(a->dentry);
+	au_nwt_done(&au_sbi(sb)->si_nowait);
+	au_kfree_try_rcu(arg);
+}
+
+void au_dir_ts(struct inode *dir, aufs_bindex_t bindex)
+{
+	int perm, wkq_err;
+	aufs_bindex_t btop;
+	struct au_dir_ts_arg *arg;
+	struct dentry *dentry;
+	struct super_block *sb;
+
+	IMustLock(dir);
+
+	dentry = d_find_any_alias(dir);
+	AuDebugOn(!dentry);
+	sb = dentry->d_sb;
+	btop = au_ibtop(dir);
+	if (btop == bindex) {
+		au_cpup_attr_timesizes(dir);
+		goto out;
+	}
+
+	perm = au_sbr_perm(sb, btop);
+	if (!au_br_writable(perm))
+		goto out;
+
+	arg = kmalloc(sizeof(*arg), GFP_NOFS);
+	if (!arg)
+		goto out;
+
+	arg->dentry = dget(dentry); /* will be dput-ted by au_do_dir_ts() */
+	arg->brid = au_sbr_id(sb, bindex);
+	wkq_err = au_wkq_nowait(au_do_dir_ts, arg, sb, /*flags*/0);
+	if (unlikely(wkq_err)) {
+		pr_err("wkq %d\n", wkq_err);
+		dput(dentry);
+		au_kfree_try_rcu(arg);
+	}
+
+out:
+	dput(dentry);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int reopen_dir(struct file *file)
+{
+	int err;
+	unsigned int flags;
+	aufs_bindex_t bindex, btail, btop;
+	struct dentry *dentry, *h_dentry;
+	struct file *h_file;
+
+	/* open all lower dirs */
+	dentry = file->f_path.dentry;
+	btop = au_dbtop(dentry);
+	for (bindex = au_fbtop(file); bindex < btop; bindex++)
+		au_set_h_fptr(file, bindex, NULL);
+	au_set_fbtop(file, btop);
+
+	btail = au_dbtaildir(dentry);
+	for (bindex = au_fbbot_dir(file); btail < bindex; bindex--)
+		au_set_h_fptr(file, bindex, NULL);
+	au_set_fbbot_dir(file, btail);
+
+	flags = vfsub_file_flags(file);
+	for (bindex = btop; bindex <= btail; bindex++) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (!h_dentry)
+			continue;
+		h_file = au_hf_dir(file, bindex);
+		if (h_file)
+			continue;
+
+		h_file = au_h_open(dentry, bindex, flags, file, /*force_wr*/0);
+		err = PTR_ERR(h_file);
+		if (IS_ERR(h_file))
+			goto out; /* close all? */
+		au_set_h_fptr(file, bindex, h_file);
+	}
+	au_update_figen(file);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+	err = 0;
+
+out:
+	return err;
+}
+
+static int do_open_dir(struct file *file, int flags, struct file *h_file)
+{
+	int err;
+	aufs_bindex_t bindex, btail;
+	struct dentry *dentry, *h_dentry;
+	struct vfsmount *mnt;
+
+	FiMustWriteLock(file);
+	AuDebugOn(h_file);
+
+	err = 0;
+	mnt = file->f_path.mnt;
+	dentry = file->f_path.dentry;
+	file->f_version = inode_query_iversion(d_inode(dentry));
+	bindex = au_dbtop(dentry);
+	au_set_fbtop(file, bindex);
+	btail = au_dbtaildir(dentry);
+	au_set_fbbot_dir(file, btail);
+	for (; !err && bindex <= btail; bindex++) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (!h_dentry)
+			continue;
+
+		err = vfsub_test_mntns(mnt, h_dentry->d_sb);
+		if (unlikely(err))
+			break;
+		h_file = au_h_open(dentry, bindex, flags, file, /*force_wr*/0);
+		if (IS_ERR(h_file)) {
+			err = PTR_ERR(h_file);
+			break;
+		}
+		au_set_h_fptr(file, bindex, h_file);
+	}
+	au_update_figen(file);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+	if (!err)
+		return 0; /* success */
+
+	/* close all */
+	for (bindex = au_fbtop(file); bindex <= btail; bindex++)
+		au_set_h_fptr(file, bindex, NULL);
+	au_set_fbtop(file, -1);
+	au_set_fbbot_dir(file, -1);
+
+	return err;
+}
+
+static int aufs_open_dir(struct inode *inode __maybe_unused,
+			 struct file *file)
+{
+	int err;
+	struct super_block *sb;
+	struct au_fidir *fidir;
+
+	err = -ENOMEM;
+	sb = file->f_path.dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH);
+	fidir = au_fidir_alloc(sb);
+	if (fidir) {
+		struct au_do_open_args args = {
+			.open	= do_open_dir,
+			.fidir	= fidir
+		};
+		err = au_do_open(file, &args);
+		if (unlikely(err))
+			au_kfree_rcu(fidir);
+	}
+	si_read_unlock(sb);
+	return err;
+}
+
+static int aufs_release_dir(struct inode *inode __maybe_unused,
+			    struct file *file)
+{
+	struct au_vdir *vdir_cache;
+	struct au_finfo *finfo;
+	struct au_fidir *fidir;
+	struct au_hfile *hf;
+	aufs_bindex_t bindex, bbot;
+
+	finfo = au_fi(file);
+	fidir = finfo->fi_hdir;
+	if (fidir) {
+		au_hbl_del(&finfo->fi_hlist,
+			   &au_sbi(file->f_path.dentry->d_sb)->si_files);
+		vdir_cache = fidir->fd_vdir_cache; /* lock-free */
+		if (vdir_cache)
+			au_vdir_free(vdir_cache);
+
+		bindex = finfo->fi_btop;
+		if (bindex >= 0) {
+			hf = fidir->fd_hfile + bindex;
+			/*
+			 * calls fput() instead of filp_close(),
+			 * since no dnotify or lock for the lower file.
+			 */
+			bbot = fidir->fd_bbot;
+			for (; bindex <= bbot; bindex++, hf++)
+				if (hf->hf_file)
+					au_hfput(hf, /*execed*/0);
+		}
+		au_kfree_rcu(fidir);
+		finfo->fi_hdir = NULL;
+	}
+	au_finfo_fin(file);
+	return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_flush_dir(struct file *file, fl_owner_t id)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct file *h_file;
+
+	err = 0;
+	bbot = au_fbbot_dir(file);
+	for (bindex = au_fbtop(file); !err && bindex <= bbot; bindex++) {
+		h_file = au_hf_dir(file, bindex);
+		if (h_file)
+			err = vfsub_flush(h_file, id);
+	}
+	return err;
+}
+
+static int aufs_flush_dir(struct file *file, fl_owner_t id)
+{
+	return au_do_flush(file, id, au_do_flush_dir);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_fsync_dir_no_file(struct dentry *dentry, int datasync)
+{
+	int err;
+	aufs_bindex_t bbot, bindex;
+	struct inode *inode;
+	struct super_block *sb;
+
+	err = 0;
+	sb = dentry->d_sb;
+	inode = d_inode(dentry);
+	IMustLock(inode);
+	bbot = au_dbbot(dentry);
+	for (bindex = au_dbtop(dentry); !err && bindex <= bbot; bindex++) {
+		struct path h_path;
+
+		if (au_test_ro(sb, bindex, inode))
+			continue;
+		h_path.dentry = au_h_dptr(dentry, bindex);
+		if (!h_path.dentry)
+			continue;
+
+		h_path.mnt = au_sbr_mnt(sb, bindex);
+		err = vfsub_fsync(NULL, &h_path, datasync);
+	}
+
+	return err;
+}
+
+static int au_do_fsync_dir(struct file *file, int datasync)
+{
+	int err;
+	aufs_bindex_t bbot, bindex;
+	struct file *h_file;
+	struct super_block *sb;
+	struct inode *inode;
+
+	err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1, /*fi_lsc*/0);
+	if (unlikely(err))
+		goto out;
+
+	inode = file_inode(file);
+	sb = inode->i_sb;
+	bbot = au_fbbot_dir(file);
+	for (bindex = au_fbtop(file); !err && bindex <= bbot; bindex++) {
+		h_file = au_hf_dir(file, bindex);
+		if (!h_file || au_test_ro(sb, bindex, inode))
+			continue;
+
+		err = vfsub_fsync(h_file, &h_file->f_path, datasync);
+	}
+
+out:
+	return err;
+}
+
+/*
+ * @file may be NULL
+ */
+static int aufs_fsync_dir(struct file *file, loff_t start, loff_t end,
+			  int datasync)
+{
+	int err;
+	struct dentry *dentry;
+	struct inode *inode;
+	struct super_block *sb;
+
+	err = 0;
+	dentry = file->f_path.dentry;
+	inode = d_inode(dentry);
+	inode_lock(inode);
+	sb = dentry->d_sb;
+	si_noflush_read_lock(sb);
+	if (file)
+		err = au_do_fsync_dir(file, datasync);
+	else {
+		di_write_lock_child(dentry);
+		err = au_do_fsync_dir_no_file(dentry, datasync);
+	}
+	au_cpup_attr_timesizes(inode);
+	di_write_unlock(dentry);
+	if (file)
+		fi_write_unlock(file);
+
+	si_read_unlock(sb);
+	inode_unlock(inode);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_iterate_shared(struct file *file, struct dir_context *ctx)
+{
+	int err;
+	struct dentry *dentry;
+	struct inode *inode, *h_inode;
+	struct super_block *sb;
+
+	AuDbg("%pD, ctx{%ps, %llu}\n", file, ctx->actor, ctx->pos);
+
+	dentry = file->f_path.dentry;
+	inode = d_inode(dentry);
+	IMustLock(inode);
+
+	sb = dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH);
+	err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1, /*fi_lsc*/0);
+	if (unlikely(err))
+		goto out;
+	err = au_alive_dir(dentry);
+	if (!err)
+		err = au_vdir_init(file);
+	di_downgrade_lock(dentry, AuLock_IR);
+	if (unlikely(err))
+		goto out_unlock;
+
+	h_inode = au_h_iptr(inode, au_ibtop(inode));
+	if (!au_test_nfsd()) {
+		err = au_vdir_fill_de(file, ctx);
+		fsstack_copy_attr_atime(inode, h_inode);
+	} else {
+		/*
+		 * nfsd filldir may call lookup_one_len(), vfs_getattr(),
+		 * encode_fh() and others.
+		 */
+		atomic_inc(&h_inode->i_count);
+		di_read_unlock(dentry, AuLock_IR);
+		si_read_unlock(sb);
+		err = au_vdir_fill_de(file, ctx);
+		fsstack_copy_attr_atime(inode, h_inode);
+		fi_write_unlock(file);
+		iput(h_inode);
+
+		AuTraceErr(err);
+		return err;
+	}
+
+out_unlock:
+	di_read_unlock(dentry, AuLock_IR);
+	fi_write_unlock(file);
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define AuTestEmpty_WHONLY	1
+#define AuTestEmpty_CALLED	(1 << 1)
+#define AuTestEmpty_SHWH	(1 << 2)
+#define au_ftest_testempty(flags, name)	((flags) & AuTestEmpty_##name)
+#define au_fset_testempty(flags, name) \
+	do { (flags) |= AuTestEmpty_##name; } while (0)
+#define au_fclr_testempty(flags, name) \
+	do { (flags) &= ~AuTestEmpty_##name; } while (0)
+
+#ifndef CONFIG_AUFS_SHWH
+#undef AuTestEmpty_SHWH
+#define AuTestEmpty_SHWH	0
+#endif
+
+struct test_empty_arg {
+	struct dir_context ctx;
+	struct au_nhash *whlist;
+	unsigned int flags;
+	int err;
+	aufs_bindex_t bindex;
+};
+
+static int test_empty_cb(struct dir_context *ctx, const char *__name,
+			 int namelen, loff_t offset __maybe_unused, u64 ino,
+			 unsigned int d_type)
+{
+	struct test_empty_arg *arg = container_of(ctx, struct test_empty_arg,
+						  ctx);
+	char *name = (void *)__name;
+
+	arg->err = 0;
+	au_fset_testempty(arg->flags, CALLED);
+	/* smp_mb(); */
+	if (name[0] == '.'
+	    && (namelen == 1 || (name[1] == '.' && namelen == 2)))
+		goto out; /* success */
+
+	if (namelen <= AUFS_WH_PFX_LEN
+	    || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
+		if (au_ftest_testempty(arg->flags, WHONLY)
+		    && !au_nhash_test_known_wh(arg->whlist, name, namelen))
+			arg->err = -ENOTEMPTY;
+		goto out;
+	}
+
+	name += AUFS_WH_PFX_LEN;
+	namelen -= AUFS_WH_PFX_LEN;
+	if (!au_nhash_test_known_wh(arg->whlist, name, namelen))
+		arg->err = au_nhash_append_wh
+			(arg->whlist, name, namelen, ino, d_type, arg->bindex,
+			 au_ftest_testempty(arg->flags, SHWH));
+
+out:
+	/* smp_mb(); */
+	AuTraceErr(arg->err);
+	return arg->err;
+}
+
+static int do_test_empty(struct dentry *dentry, struct test_empty_arg *arg)
+{
+	int err;
+	struct file *h_file;
+	struct au_branch *br;
+
+	h_file = au_h_open(dentry, arg->bindex,
+			   O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_LARGEFILE,
+			   /*file*/NULL, /*force_wr*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	err = 0;
+	if (!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE)
+	    && !file_inode(h_file)->i_nlink)
+		goto out_put;
+
+	do {
+		arg->err = 0;
+		au_fclr_testempty(arg->flags, CALLED);
+		/* smp_mb(); */
+		err = vfsub_iterate_dir(h_file, &arg->ctx);
+		if (err >= 0)
+			err = arg->err;
+	} while (!err && au_ftest_testempty(arg->flags, CALLED));
+
+out_put:
+	fput(h_file);
+	br = au_sbr(dentry->d_sb, arg->bindex);
+	au_lcnt_dec(&br->br_nfiles);
+out:
+	return err;
+}
+
+struct do_test_empty_args {
+	int *errp;
+	struct dentry *dentry;
+	struct test_empty_arg *arg;
+};
+
+static void call_do_test_empty(void *args)
+{
+	struct do_test_empty_args *a = args;
+	*a->errp = do_test_empty(a->dentry, a->arg);
+}
+
+static int sio_test_empty(struct dentry *dentry, struct test_empty_arg *arg)
+{
+	int err, wkq_err;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+
+	h_dentry = au_h_dptr(dentry, arg->bindex);
+	h_inode = d_inode(h_dentry);
+	/* todo: i_mode changes anytime? */
+	inode_lock_shared_nested(h_inode, AuLsc_I_CHILD);
+	err = au_test_h_perm_sio(h_inode, MAY_EXEC | MAY_READ);
+	inode_unlock_shared(h_inode);
+	if (!err)
+		err = do_test_empty(dentry, arg);
+	else {
+		struct do_test_empty_args args = {
+			.errp	= &err,
+			.dentry	= dentry,
+			.arg	= arg
+		};
+		unsigned int flags = arg->flags;
+
+		wkq_err = au_wkq_wait(call_do_test_empty, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+		arg->flags = flags;
+	}
+
+	return err;
+}
+
+int au_test_empty_lower(struct dentry *dentry)
+{
+	int err;
+	unsigned int rdhash;
+	aufs_bindex_t bindex, btop, btail;
+	struct au_nhash whlist;
+	struct test_empty_arg arg = {
+		.ctx = {
+			.actor = test_empty_cb
+		}
+	};
+	int (*test_empty)(struct dentry *dentry, struct test_empty_arg *arg);
+
+	SiMustAnyLock(dentry->d_sb);
+
+	rdhash = au_sbi(dentry->d_sb)->si_rdhash;
+	if (!rdhash)
+		rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, dentry));
+	err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+
+	arg.flags = 0;
+	arg.whlist = &whlist;
+	btop = au_dbtop(dentry);
+	if (au_opt_test(au_mntflags(dentry->d_sb), SHWH))
+		au_fset_testempty(arg.flags, SHWH);
+	test_empty = do_test_empty;
+	if (au_opt_test(au_mntflags(dentry->d_sb), DIRPERM1))
+		test_empty = sio_test_empty;
+	arg.bindex = btop;
+	err = test_empty(dentry, &arg);
+	if (unlikely(err))
+		goto out_whlist;
+
+	au_fset_testempty(arg.flags, WHONLY);
+	btail = au_dbtaildir(dentry);
+	for (bindex = btop + 1; !err && bindex <= btail; bindex++) {
+		struct dentry *h_dentry;
+
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (h_dentry && d_is_positive(h_dentry)) {
+			arg.bindex = bindex;
+			err = test_empty(dentry, &arg);
+		}
+	}
+
+out_whlist:
+	au_nhash_wh_free(&whlist);
+out:
+	return err;
+}
+
+int au_test_empty(struct dentry *dentry, struct au_nhash *whlist)
+{
+	int err;
+	struct test_empty_arg arg = {
+		.ctx = {
+			.actor = test_empty_cb
+		}
+	};
+	aufs_bindex_t bindex, btail;
+
+	err = 0;
+	arg.whlist = whlist;
+	arg.flags = AuTestEmpty_WHONLY;
+	if (au_opt_test(au_mntflags(dentry->d_sb), SHWH))
+		au_fset_testempty(arg.flags, SHWH);
+	btail = au_dbtaildir(dentry);
+	for (bindex = au_dbtop(dentry); !err && bindex <= btail; bindex++) {
+		struct dentry *h_dentry;
+
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (h_dentry && d_is_positive(h_dentry)) {
+			arg.bindex = bindex;
+			err = sio_test_empty(dentry, &arg);
+		}
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+const struct file_operations aufs_dir_fop = {
+	.owner		= THIS_MODULE,
+	.llseek		= default_llseek,
+	.read		= generic_read_dir,
+	.iterate_shared	= aufs_iterate_shared,
+	.unlocked_ioctl	= aufs_ioctl_dir,
+#ifdef CONFIG_COMPAT
+	.compat_ioctl	= aufs_compat_ioctl_dir,
+#endif
+	.open		= aufs_open_dir,
+	.release	= aufs_release_dir,
+	.flush		= aufs_flush_dir,
+	.fsync		= aufs_fsync_dir
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dir.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dir.h
@@ -0,0 +1,134 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * directory operations
+ */
+
+#ifndef __AUFS_DIR_H__
+#define __AUFS_DIR_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+
+/* ---------------------------------------------------------------------- */
+
+/* need to be faster and smaller */
+
+struct au_nhash {
+	unsigned int		nh_num;
+	struct hlist_head	*nh_head;
+};
+
+struct au_vdir_destr {
+	unsigned char	len;
+	unsigned char	name[0];
+} __packed;
+
+struct au_vdir_dehstr {
+	struct hlist_node	hash;
+	struct au_vdir_destr	*str;
+	struct rcu_head		rcu;
+} ____cacheline_aligned_in_smp;
+
+struct au_vdir_de {
+	ino_t			de_ino;
+	unsigned char		de_type;
+	/* caution: packed */
+	struct au_vdir_destr	de_str;
+} __packed;
+
+struct au_vdir_wh {
+	struct hlist_node	wh_hash;
+#ifdef CONFIG_AUFS_SHWH
+	ino_t			wh_ino;
+	aufs_bindex_t		wh_bindex;
+	unsigned char		wh_type;
+#else
+	aufs_bindex_t		wh_bindex;
+#endif
+	/* caution: packed */
+	struct au_vdir_destr	wh_str;
+} __packed;
+
+union au_vdir_deblk_p {
+	unsigned char		*deblk;
+	struct au_vdir_de	*de;
+};
+
+struct au_vdir {
+	unsigned char	**vd_deblk;
+	unsigned long	vd_nblk;
+	struct {
+		unsigned long		ul;
+		union au_vdir_deblk_p	p;
+	} vd_last;
+
+	u64		vd_version;
+	unsigned int	vd_deblk_sz;
+	unsigned long	vd_jiffy;
+	struct rcu_head	rcu;
+} ____cacheline_aligned_in_smp;
+
+/* ---------------------------------------------------------------------- */
+
+/* dir.c */
+extern const struct file_operations aufs_dir_fop;
+void au_add_nlink(struct inode *dir, struct inode *h_dir);
+void au_sub_nlink(struct inode *dir, struct inode *h_dir);
+loff_t au_dir_size(struct file *file, struct dentry *dentry);
+void au_dir_ts(struct inode *dir, aufs_bindex_t bsrc);
+int au_test_empty_lower(struct dentry *dentry);
+int au_test_empty(struct dentry *dentry, struct au_nhash *whlist);
+
+/* vdir.c */
+unsigned int au_rdhash_est(loff_t sz);
+int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp);
+void au_nhash_wh_free(struct au_nhash *whlist);
+int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
+			    int limit);
+int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen);
+int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino,
+		       unsigned int d_type, aufs_bindex_t bindex,
+		       unsigned char shwh);
+void au_vdir_free(struct au_vdir *vdir);
+int au_vdir_init(struct file *file);
+int au_vdir_fill_de(struct file *file, struct dir_context *ctx);
+
+/* ioctl.c */
+long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg);
+
+#ifdef CONFIG_AUFS_RDU
+/* rdu.c */
+long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
+#ifdef CONFIG_COMPAT
+long au_rdu_compat_ioctl(struct file *file, unsigned int cmd,
+			 unsigned long arg);
+#endif
+#else
+AuStub(long, au_rdu_ioctl, return -EINVAL, struct file *file,
+       unsigned int cmd, unsigned long arg)
+#ifdef CONFIG_COMPAT
+AuStub(long, au_rdu_compat_ioctl, return -EINVAL, struct file *file,
+       unsigned int cmd, unsigned long arg)
+#endif
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DIR_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dirren.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dirren.c
@@ -0,0 +1,1316 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2017-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * special handling in renaming a directory
+ * in order to support looking-up the before-renamed name on the lower readonly
+ * branches
+ */
+
+#include <linux/byteorder/generic.h>
+#include "aufs.h"
+
+static void au_dr_hino_del(struct au_dr_br *dr, struct au_dr_hino *ent)
+{
+	int idx;
+
+	idx = au_dr_ihash(ent->dr_h_ino);
+	au_hbl_del(&ent->dr_hnode, dr->dr_h_ino + idx);
+}
+
+static int au_dr_hino_test_empty(struct au_dr_br *dr)
+{
+	int ret, i;
+	struct hlist_bl_head *hbl;
+
+	ret = 1;
+	for (i = 0; ret && i < AuDirren_NHASH; i++) {
+		hbl = dr->dr_h_ino + i;
+		hlist_bl_lock(hbl);
+		ret &= hlist_bl_empty(hbl);
+		hlist_bl_unlock(hbl);
+	}
+
+	return ret;
+}
+
+static struct au_dr_hino *au_dr_hino_find(struct au_dr_br *dr, ino_t ino)
+{
+	struct au_dr_hino *found, *ent;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	int idx;
+
+	found = NULL;
+	idx = au_dr_ihash(ino);
+	hbl = dr->dr_h_ino + idx;
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(ent, pos, hbl, dr_hnode)
+		if (ent->dr_h_ino == ino) {
+			found = ent;
+			break;
+		}
+	hlist_bl_unlock(hbl);
+
+	return found;
+}
+
+int au_dr_hino_test_add(struct au_dr_br *dr, ino_t ino,
+			struct au_dr_hino *add_ent)
+{
+	int found, idx;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	struct au_dr_hino *ent;
+
+	found = 0;
+	idx = au_dr_ihash(ino);
+	hbl = dr->dr_h_ino + idx;
+#if 0 /* debug print */
+	{
+		struct hlist_bl_node *tmp;
+
+		hlist_bl_for_each_entry_safe(ent, pos, tmp, hbl, dr_hnode)
+			AuDbg("hi%llu\n", (unsigned long long)ent->dr_h_ino);
+	}
+#endif
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(ent, pos, hbl, dr_hnode)
+		if (ent->dr_h_ino == ino) {
+			found = 1;
+			break;
+		}
+	if (!found && add_ent)
+		hlist_bl_add_head(&add_ent->dr_hnode, hbl);
+	hlist_bl_unlock(hbl);
+
+	if (!found && add_ent)
+		AuDbg("i%llu added\n", (unsigned long long)add_ent->dr_h_ino);
+
+	return found;
+}
+
+void au_dr_hino_free(struct au_dr_br *dr)
+{
+	int i;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos, *tmp;
+	struct au_dr_hino *ent;
+
+	/* SiMustWriteLock(sb); */
+
+	for (i = 0; i < AuDirren_NHASH; i++) {
+		hbl = dr->dr_h_ino + i;
+		/* no spinlock since sbinfo must be write-locked */
+		hlist_bl_for_each_entry_safe(ent, pos, tmp, hbl, dr_hnode)
+			au_kfree_rcu(ent);
+		INIT_HLIST_BL_HEAD(hbl);
+	}
+}
+
+/* returns the number of inodes or an error */
+static int au_dr_hino_store(struct super_block *sb, struct au_branch *br,
+			    struct file *hinofile)
+{
+	int err, i;
+	ssize_t ssz;
+	loff_t pos, oldsize;
+	__be64 u64;
+	struct inode *hinoinode;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *n1, *n2;
+	struct au_dr_hino *ent;
+
+	SiMustWriteLock(sb);
+	AuDebugOn(!au_br_writable(br->br_perm));
+
+	hinoinode = file_inode(hinofile);
+	oldsize = i_size_read(hinoinode);
+
+	err = 0;
+	pos = 0;
+	hbl = br->br_dirren.dr_h_ino;
+	for (i = 0; !err && i < AuDirren_NHASH; i++, hbl++) {
+		/* no bit-lock since sbinfo must be write-locked */
+		hlist_bl_for_each_entry_safe(ent, n1, n2, hbl, dr_hnode) {
+			AuDbg("hi%llu, %pD2\n",
+			      (unsigned long long)ent->dr_h_ino, hinofile);
+			u64 = cpu_to_be64(ent->dr_h_ino);
+			ssz = vfsub_write_k(hinofile, &u64, sizeof(u64), &pos);
+			if (ssz == sizeof(u64))
+				continue;
+
+			/* write error */
+			pr_err("ssz %zd, %pD2\n", ssz, hinofile);
+			err = -ENOSPC;
+			if (ssz < 0)
+				err = ssz;
+			break;
+		}
+	}
+	/* regardless the error */
+	if (pos < oldsize) {
+		err = vfsub_trunc(&hinofile->f_path, pos, /*attr*/0, hinofile);
+		AuTraceErr(err);
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_dr_hino_load(struct au_dr_br *dr, struct file *hinofile)
+{
+	int err, hidx;
+	ssize_t ssz;
+	size_t sz, n;
+	loff_t pos;
+	uint64_t u64;
+	struct au_dr_hino *ent;
+	struct inode *hinoinode;
+	struct hlist_bl_head *hbl;
+
+	err = 0;
+	pos = 0;
+	hbl = dr->dr_h_ino;
+	hinoinode = file_inode(hinofile);
+	sz = i_size_read(hinoinode);
+	AuDebugOn(sz % sizeof(u64));
+	n = sz / sizeof(u64);
+	while (n--) {
+		ssz = vfsub_read_k(hinofile, &u64, sizeof(u64), &pos);
+		if (unlikely(ssz != sizeof(u64))) {
+			pr_err("ssz %zd, %pD2\n", ssz, hinofile);
+			err = -EINVAL;
+			if (ssz < 0)
+				err = ssz;
+			goto out_free;
+		}
+
+		ent = kmalloc(sizeof(*ent), GFP_NOFS);
+		if (!ent) {
+			err = -ENOMEM;
+			AuTraceErr(err);
+			goto out_free;
+		}
+		ent->dr_h_ino = be64_to_cpu((__force __be64)u64);
+		AuDbg("hi%llu, %pD2\n",
+		      (unsigned long long)ent->dr_h_ino, hinofile);
+		hidx = au_dr_ihash(ent->dr_h_ino);
+		au_hbl_add(&ent->dr_hnode, hbl + hidx);
+	}
+	goto out; /* success */
+
+out_free:
+	au_dr_hino_free(dr);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * @bindex/@br is a switch to distinguish whether suspending hnotify or not.
+ * @path is a switch to distinguish load and store.
+ */
+static int au_dr_hino(struct super_block *sb, aufs_bindex_t bindex,
+		      struct au_branch *br, const struct path *path)
+{
+	int err, flags;
+	unsigned char load, suspend;
+	struct file *hinofile;
+	struct au_hinode *hdir;
+	struct inode *dir, *delegated;
+	struct path hinopath;
+	struct qstr hinoname = QSTR_INIT(AUFS_WH_DR_BRHINO,
+					 sizeof(AUFS_WH_DR_BRHINO) - 1);
+
+	AuDebugOn(bindex < 0 && !br);
+	AuDebugOn(bindex >= 0 && br);
+
+	err = -EINVAL;
+	suspend = !br;
+	if (suspend)
+		br = au_sbr(sb, bindex);
+	load = !!path;
+	if (!load) {
+		path = &br->br_path;
+		AuDebugOn(!au_br_writable(br->br_perm));
+		if (unlikely(!au_br_writable(br->br_perm)))
+			goto out;
+	}
+
+	hdir = NULL;
+	if (suspend) {
+		dir = d_inode(sb->s_root);
+		hdir = au_hinode(au_ii(dir), bindex);
+		dir = hdir->hi_inode;
+		au_hn_inode_lock_nested(hdir, AuLsc_I_CHILD);
+	} else {
+		dir = d_inode(path->dentry);
+		inode_lock_nested(dir, AuLsc_I_CHILD);
+	}
+	hinopath.dentry = vfsub_lkup_one(&hinoname, path->dentry);
+	err = PTR_ERR(hinopath.dentry);
+	if (IS_ERR(hinopath.dentry))
+		goto out_unlock;
+
+	err = 0;
+	flags = O_RDONLY;
+	if (load) {
+		if (d_is_negative(hinopath.dentry))
+			goto out_dput; /* success */
+	} else {
+		if (au_dr_hino_test_empty(&br->br_dirren)) {
+			if (d_is_positive(hinopath.dentry)) {
+				delegated = NULL;
+				err = vfsub_unlink(dir, &hinopath, &delegated,
+						   /*force*/0);
+				AuTraceErr(err);
+				if (unlikely(err))
+					pr_err("ignored err %d, %pd2\n",
+					       err, hinopath.dentry);
+				if (unlikely(err == -EWOULDBLOCK))
+					iput(delegated);
+				err = 0;
+			}
+			goto out_dput;
+		} else if (!d_is_positive(hinopath.dentry)) {
+			err = vfsub_create(dir, &hinopath, 0600,
+					   /*want_excl*/false);
+			AuTraceErr(err);
+			if (unlikely(err))
+				goto out_dput;
+		}
+		flags = O_WRONLY;
+	}
+	hinopath.mnt = path->mnt;
+	hinofile = vfsub_dentry_open(&hinopath, flags);
+	if (suspend)
+		au_hn_inode_unlock(hdir);
+	else
+		inode_unlock(dir);
+	dput(hinopath.dentry);
+	AuTraceErrPtr(hinofile);
+	if (IS_ERR(hinofile)) {
+		err = PTR_ERR(hinofile);
+		goto out;
+	}
+
+	if (load)
+		err = au_dr_hino_load(&br->br_dirren, hinofile);
+	else
+		err = au_dr_hino_store(sb, br, hinofile);
+	fput(hinofile);
+	goto out;
+
+out_dput:
+	dput(hinopath.dentry);
+out_unlock:
+	if (suspend)
+		au_hn_inode_unlock(hdir);
+	else
+		inode_unlock(dir);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_dr_brid_init(struct au_dr_brid *brid, const struct path *path)
+{
+	int err;
+	struct kstatfs kstfs;
+	dev_t dev;
+	struct dentry *dentry;
+	struct super_block *sb;
+
+	err = vfs_statfs((void *)path, &kstfs);
+	AuTraceErr(err);
+	if (unlikely(err))
+		goto out;
+
+	/* todo: support for UUID */
+
+	if (kstfs.f_fsid.val[0] || kstfs.f_fsid.val[1]) {
+		brid->type = AuBrid_FSID;
+		brid->fsid = kstfs.f_fsid;
+	} else {
+		dentry = path->dentry;
+		sb = dentry->d_sb;
+		dev = sb->s_dev;
+		if (dev) {
+			brid->type = AuBrid_DEV;
+			brid->dev = dev;
+		}
+	}
+
+out:
+	return err;
+}
+
+int au_dr_br_init(struct super_block *sb, struct au_branch *br,
+		  const struct path *path)
+{
+	int err, i;
+	struct au_dr_br *dr;
+	struct hlist_bl_head *hbl;
+
+	dr = &br->br_dirren;
+	hbl = dr->dr_h_ino;
+	for (i = 0; i < AuDirren_NHASH; i++, hbl++)
+		INIT_HLIST_BL_HEAD(hbl);
+
+	err = au_dr_brid_init(&dr->dr_brid, path);
+	if (unlikely(err))
+		goto out;
+
+	if (au_opt_test(au_mntflags(sb), DIRREN))
+		err = au_dr_hino(sb, /*bindex*/-1, br, path);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_dr_br_fin(struct super_block *sb, struct au_branch *br)
+{
+	int err;
+
+	err = 0;
+	if (au_br_writable(br->br_perm))
+		err = au_dr_hino(sb, /*bindex*/-1, br, /*path*/NULL);
+	if (!err)
+		au_dr_hino_free(&br->br_dirren);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_brid_str(struct au_dr_brid *brid, struct inode *h_inode,
+		       char *buf, size_t sz)
+{
+	int err;
+	unsigned int major, minor;
+	char *p;
+
+	p = buf;
+	err = snprintf(p, sz, "%d_", brid->type);
+	AuDebugOn(err > sz);
+	p += err;
+	sz -= err;
+	switch (brid->type) {
+	case AuBrid_Unset:
+		return -EINVAL;
+	case AuBrid_UUID:
+		err = snprintf(p, sz, "%pU", brid->uuid.b);
+		break;
+	case AuBrid_FSID:
+		err = snprintf(p, sz, "%08x-%08x",
+			       brid->fsid.val[0], brid->fsid.val[1]);
+		break;
+	case AuBrid_DEV:
+		major = MAJOR(brid->dev);
+		minor = MINOR(brid->dev);
+		if (major <= 0xff && minor <= 0xff)
+			err = snprintf(p, sz, "%02x%02x", major, minor);
+		else
+			err = snprintf(p, sz, "%03x:%05x", major, minor);
+		break;
+	}
+	AuDebugOn(err > sz);
+	p += err;
+	sz -= err;
+	err = snprintf(p, sz, "_%llu", (unsigned long long)h_inode->i_ino);
+	AuDebugOn(err > sz);
+	p += err;
+	sz -= err;
+
+	return p - buf;
+}
+
+static int au_drinfo_name(struct au_branch *br, char *name, int len)
+{
+	int rlen;
+	struct dentry *br_dentry;
+	struct inode *br_inode;
+
+	br_dentry = au_br_dentry(br);
+	br_inode = d_inode(br_dentry);
+	rlen = au_brid_str(&br->br_dirren.dr_brid, br_inode, name, len);
+	AuDebugOn(rlen >= AUFS_DIRREN_ENV_VAL_SZ);
+	AuDebugOn(rlen > len);
+
+	return rlen;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * from the given @h_dentry, construct drinfo at @*fdata.
+ * when the size of @*fdata is not enough, reallocate and return new @fdata and
+ * @allocated.
+ */
+static int au_drinfo_construct(struct au_drinfo_fdata **fdata,
+			       struct dentry *h_dentry,
+			       unsigned char *allocated)
+{
+	int err, v;
+	struct au_drinfo_fdata *f, *p;
+	struct au_drinfo *drinfo;
+	struct inode *h_inode;
+	struct qstr *qname;
+
+	err = 0;
+	f = *fdata;
+	h_inode = d_inode(h_dentry);
+	qname = &h_dentry->d_name;
+	drinfo = &f->drinfo;
+	drinfo->ino = (__force uint64_t)cpu_to_be64(h_inode->i_ino);
+	drinfo->oldnamelen = qname->len;
+	if (*allocated < sizeof(*f) + qname->len) {
+		v = roundup_pow_of_two(*allocated + qname->len);
+		p = au_krealloc(f, v, GFP_NOFS, /*may_shrink*/0);
+		if (unlikely(!p)) {
+			err = -ENOMEM;
+			AuTraceErr(err);
+			goto out;
+		}
+		f = p;
+		*fdata = f;
+		*allocated = v;
+		drinfo = &f->drinfo;
+	}
+	memcpy(drinfo->oldname, qname->name, qname->len);
+	AuDbg("i%llu, %.*s\n",
+	      be64_to_cpu((__force __be64)drinfo->ino), drinfo->oldnamelen,
+	      drinfo->oldname);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* callers have to free the return value */
+static struct au_drinfo *au_drinfo_read_k(struct file *file, ino_t h_ino)
+{
+	struct au_drinfo *ret, *drinfo;
+	struct au_drinfo_fdata fdata;
+	int len;
+	loff_t pos;
+	ssize_t ssz;
+
+	ret = ERR_PTR(-EIO);
+	pos = 0;
+	ssz = vfsub_read_k(file, &fdata, sizeof(fdata), &pos);
+	if (unlikely(ssz != sizeof(fdata))) {
+		AuIOErr("ssz %zd, %u, %pD2\n",
+			ssz, (unsigned int)sizeof(fdata), file);
+		goto out;
+	}
+
+	fdata.magic = ntohl((__force __be32)fdata.magic);
+	switch (fdata.magic) {
+	case AUFS_DRINFO_MAGIC_V1:
+		break;
+	default:
+		AuIOErr("magic-num 0x%x, 0x%x, %pD2\n",
+			fdata.magic, AUFS_DRINFO_MAGIC_V1, file);
+		goto out;
+	}
+
+	drinfo = &fdata.drinfo;
+	len = drinfo->oldnamelen;
+	if (!len) {
+		AuIOErr("broken drinfo %pD2\n", file);
+		goto out;
+	}
+
+	ret = NULL;
+	drinfo->ino = be64_to_cpu((__force __be64)drinfo->ino);
+	if (unlikely(h_ino && drinfo->ino != h_ino)) {
+		AuDbg("ignored i%llu, i%llu, %pD2\n",
+		      (unsigned long long)drinfo->ino,
+		      (unsigned long long)h_ino, file);
+		goto out; /* success */
+	}
+
+	ret = kmalloc(sizeof(*ret) + len, GFP_NOFS);
+	if (unlikely(!ret)) {
+		ret = ERR_PTR(-ENOMEM);
+		AuTraceErrPtr(ret);
+		goto out;
+	}
+
+	*ret = *drinfo;
+	ssz = vfsub_read_k(file, (void *)ret->oldname, len, &pos);
+	if (unlikely(ssz != len)) {
+		au_kfree_rcu(ret);
+		ret = ERR_PTR(-EIO);
+		AuIOErr("ssz %zd, %u, %pD2\n", ssz, len, file);
+		goto out;
+	}
+
+	AuDbg("oldname %.*s\n", ret->oldnamelen, ret->oldname);
+
+out:
+	return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* in order to be revertible */
+struct au_drinfo_rev_elm {
+	int			created;
+	struct dentry		*info_dentry;
+	struct au_drinfo	*info_last;
+};
+
+struct au_drinfo_rev {
+	unsigned char			already;
+	aufs_bindex_t			nelm;
+	struct au_drinfo_rev_elm	elm[0];
+};
+
+/* todo: isn't it too large? */
+struct au_drinfo_store {
+	struct path h_ppath;
+	struct dentry *h_dentry;
+	struct au_drinfo_fdata *fdata;
+	char *infoname;			/* inside of whname, just after PFX */
+	char whname[sizeof(AUFS_WH_DR_INFO_PFX) + AUFS_DIRREN_ENV_VAL_SZ];
+	aufs_bindex_t btgt, btail;
+	unsigned char no_sio,
+		allocated,		/* current size of *fdata */
+		infonamelen,		/* room size for p */
+		whnamelen,		/* length of the generated name */
+		renameback;		/* renamed back */
+};
+
+/* on rename(2) error, the caller should revert it using @elm */
+static int au_drinfo_do_store(struct au_drinfo_store *w,
+			      struct au_drinfo_rev_elm *elm)
+{
+	int err, len;
+	ssize_t ssz;
+	loff_t pos;
+	struct path infopath = {
+		.mnt = w->h_ppath.mnt
+	};
+	struct inode *h_dir, *h_inode, *delegated;
+	struct file *infofile;
+	struct qstr *qname;
+
+	AuDebugOn(elm
+		  && memcmp(elm, page_address(ZERO_PAGE(0)), sizeof(*elm)));
+
+	infopath.dentry = vfsub_lookup_one_len(w->whname, w->h_ppath.dentry,
+					       w->whnamelen);
+	AuTraceErrPtr(infopath.dentry);
+	if (IS_ERR(infopath.dentry)) {
+		err = PTR_ERR(infopath.dentry);
+		goto out;
+	}
+
+	err = 0;
+	h_dir = d_inode(w->h_ppath.dentry);
+	if (elm && d_is_negative(infopath.dentry)) {
+		err = vfsub_create(h_dir, &infopath, 0600, /*want_excl*/true);
+		AuTraceErr(err);
+		if (unlikely(err))
+			goto out_dput;
+		elm->created = 1;
+		elm->info_dentry = dget(infopath.dentry);
+	}
+
+	infofile = vfsub_dentry_open(&infopath, O_RDWR);
+	AuTraceErrPtr(infofile);
+	if (IS_ERR(infofile)) {
+		err = PTR_ERR(infofile);
+		goto out_dput;
+	}
+
+	h_inode = d_inode(infopath.dentry);
+	if (elm && i_size_read(h_inode)) {
+		h_inode = d_inode(w->h_dentry);
+		elm->info_last = au_drinfo_read_k(infofile, h_inode->i_ino);
+		AuTraceErrPtr(elm->info_last);
+		if (IS_ERR(elm->info_last)) {
+			err = PTR_ERR(elm->info_last);
+			elm->info_last = NULL;
+			AuDebugOn(elm->info_dentry);
+			goto out_fput;
+		}
+	}
+
+	if (elm && w->renameback) {
+		delegated = NULL;
+		err = vfsub_unlink(h_dir, &infopath, &delegated, /*force*/0);
+		AuTraceErr(err);
+		if (unlikely(err == -EWOULDBLOCK))
+			iput(delegated);
+		goto out_fput;
+	}
+
+	pos = 0;
+	qname = &w->h_dentry->d_name;
+	len = sizeof(*w->fdata) + qname->len;
+	if (!elm)
+		len = sizeof(*w->fdata) + w->fdata->drinfo.oldnamelen;
+	ssz = vfsub_write_k(infofile, w->fdata, len, &pos);
+	if (ssz == len) {
+		AuDbg("hi%llu, %.*s\n", w->fdata->drinfo.ino,
+		      w->fdata->drinfo.oldnamelen, w->fdata->drinfo.oldname);
+		goto out_fput; /* success */
+	} else {
+		err = -EIO;
+		if (ssz < 0)
+			err = ssz;
+		/* the caller should revert it using @elm */
+	}
+
+out_fput:
+	fput(infofile);
+out_dput:
+	dput(infopath.dentry);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+struct au_call_drinfo_do_store_args {
+	int *errp;
+	struct au_drinfo_store *w;
+	struct au_drinfo_rev_elm *elm;
+};
+
+static void au_call_drinfo_do_store(void *args)
+{
+	struct au_call_drinfo_do_store_args *a = args;
+
+	*a->errp = au_drinfo_do_store(a->w, a->elm);
+}
+
+static int au_drinfo_store_sio(struct au_drinfo_store *w,
+			       struct au_drinfo_rev_elm *elm)
+{
+	int err, wkq_err;
+
+	if (w->no_sio)
+		err = au_drinfo_do_store(w, elm);
+	else {
+		struct au_call_drinfo_do_store_args a = {
+			.errp	= &err,
+			.w	= w,
+			.elm	= elm
+		};
+		wkq_err = au_wkq_wait(au_call_drinfo_do_store, &a);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+	AuTraceErr(err);
+
+	return err;
+}
+
+static int au_drinfo_store_work_init(struct au_drinfo_store *w,
+				     aufs_bindex_t btgt)
+{
+	int err;
+
+	memset(w, 0, sizeof(*w));
+	w->allocated = roundup_pow_of_two(sizeof(*w->fdata) + 40);
+	strcpy(w->whname, AUFS_WH_DR_INFO_PFX);
+	w->infoname = w->whname + sizeof(AUFS_WH_DR_INFO_PFX) - 1;
+	w->infonamelen = sizeof(w->whname) - sizeof(AUFS_WH_DR_INFO_PFX);
+	w->btgt = btgt;
+	w->no_sio = !!uid_eq(current_fsuid(), GLOBAL_ROOT_UID);
+
+	err = -ENOMEM;
+	w->fdata = kcalloc(1, w->allocated, GFP_NOFS);
+	if (unlikely(!w->fdata)) {
+		AuTraceErr(err);
+		goto out;
+	}
+	w->fdata->magic = (__force uint32_t)htonl(AUFS_DRINFO_MAGIC_V1);
+	err = 0;
+
+out:
+	return err;
+}
+
+static void au_drinfo_store_work_fin(struct au_drinfo_store *w)
+{
+	au_kfree_rcu(w->fdata);
+}
+
+static void au_drinfo_store_rev(struct au_drinfo_rev *rev,
+				struct au_drinfo_store *w)
+{
+	struct au_drinfo_rev_elm *elm;
+	struct inode *h_dir, *delegated;
+	int err, nelm;
+	struct path infopath = {
+		.mnt = w->h_ppath.mnt
+	};
+
+	h_dir = d_inode(w->h_ppath.dentry);
+	IMustLock(h_dir);
+
+	err = 0;
+	elm = rev->elm;
+	for (nelm = rev->nelm; nelm > 0; nelm--, elm++) {
+		AuDebugOn(elm->created && elm->info_last);
+		if (elm->created) {
+			AuDbg("here\n");
+			delegated = NULL;
+			infopath.dentry = elm->info_dentry;
+			err = vfsub_unlink(h_dir, &infopath, &delegated,
+					   !w->no_sio);
+			AuTraceErr(err);
+			if (unlikely(err == -EWOULDBLOCK))
+				iput(delegated);
+			dput(elm->info_dentry);
+		} else if (elm->info_last) {
+			AuDbg("here\n");
+			w->fdata->drinfo = *elm->info_last;
+			memcpy(w->fdata->drinfo.oldname,
+			       elm->info_last->oldname,
+			       elm->info_last->oldnamelen);
+			err = au_drinfo_store_sio(w, /*elm*/NULL);
+			au_kfree_rcu(elm->info_last);
+		}
+		if (unlikely(err))
+			AuIOErr("%d, %s\n", err, w->whname);
+		/* go on even if err */
+	}
+}
+
+/* caller has to call au_dr_rename_fin() later */
+static int au_drinfo_store(struct dentry *dentry, aufs_bindex_t btgt,
+			   struct qstr *dst_name, void *_rev)
+{
+	int err, sz, nelm;
+	aufs_bindex_t bindex, btail;
+	struct au_drinfo_store work;
+	struct au_drinfo_rev *rev, **p;
+	struct au_drinfo_rev_elm *elm;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_hinode *hdir;
+
+	err = au_drinfo_store_work_init(&work, btgt);
+	AuTraceErr(err);
+	if (unlikely(err))
+		goto out;
+
+	err = -ENOMEM;
+	btail = au_dbtaildir(dentry);
+	nelm = btail - btgt;
+	sz = sizeof(*rev) + sizeof(*elm) * nelm;
+	rev = kcalloc(1, sz, GFP_NOFS);
+	if (unlikely(!rev)) {
+		AuTraceErr(err);
+		goto out_args;
+	}
+	rev->nelm = nelm;
+	elm = rev->elm;
+	p = _rev;
+	*p = rev;
+
+	err = 0;
+	sb = dentry->d_sb;
+	work.h_ppath.dentry = au_h_dptr(dentry, btgt);
+	work.h_ppath.mnt = au_sbr_mnt(sb, btgt);
+	hdir = au_hi(d_inode(dentry), btgt);
+	au_hn_inode_lock_nested(hdir, AuLsc_I_CHILD);
+	for (bindex = btgt + 1; bindex <= btail; bindex++, elm++) {
+		work.h_dentry = au_h_dptr(dentry, bindex);
+		if (!work.h_dentry)
+			continue;
+
+		err = au_drinfo_construct(&work.fdata, work.h_dentry,
+					  &work.allocated);
+		AuTraceErr(err);
+		if (unlikely(err))
+			break;
+
+		work.renameback = au_qstreq(&work.h_dentry->d_name, dst_name);
+		br = au_sbr(sb, bindex);
+		work.whnamelen = sizeof(AUFS_WH_DR_INFO_PFX) - 1;
+		work.whnamelen += au_drinfo_name(br, work.infoname,
+						 work.infonamelen);
+		AuDbg("whname %.*s, i%llu, %.*s\n",
+		      work.whnamelen, work.whname,
+		      be64_to_cpu((__force __be64)work.fdata->drinfo.ino),
+		      work.fdata->drinfo.oldnamelen,
+		      work.fdata->drinfo.oldname);
+
+		err = au_drinfo_store_sio(&work, elm);
+		AuTraceErr(err);
+		if (unlikely(err))
+			break;
+	}
+	if (unlikely(err)) {
+		/* revert all drinfo */
+		au_drinfo_store_rev(rev, &work);
+		au_kfree_try_rcu(rev);
+		*p = NULL;
+	}
+	au_hn_inode_unlock(hdir);
+
+out_args:
+	au_drinfo_store_work_fin(&work);
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_dr_rename(struct dentry *src, aufs_bindex_t bindex,
+		 struct qstr *dst_name, void *_rev)
+{
+	int err, already;
+	ino_t ino;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_dr_br *dr;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+	struct au_dr_hino *ent;
+	struct au_drinfo_rev *rev, **p;
+
+	AuDbg("bindex %d\n", bindex);
+
+	err = -ENOMEM;
+	ent = kmalloc(sizeof(*ent), GFP_NOFS);
+	if (unlikely(!ent))
+		goto out;
+
+	sb = src->d_sb;
+	br = au_sbr(sb, bindex);
+	dr = &br->br_dirren;
+	h_dentry = au_h_dptr(src, bindex);
+	h_inode = d_inode(h_dentry);
+	ino = h_inode->i_ino;
+	ent->dr_h_ino = ino;
+	already = au_dr_hino_test_add(dr, ino, ent);
+	AuDbg("b%d, hi%llu, already %d\n",
+	      bindex, (unsigned long long)ino, already);
+
+	err = au_drinfo_store(src, bindex, dst_name, _rev);
+	AuTraceErr(err);
+	if (!err) {
+		p = _rev;
+		rev = *p;
+		rev->already = already;
+		goto out; /* success */
+	}
+
+	/* revert */
+	if (!already)
+		au_dr_hino_del(dr, ent);
+	au_kfree_rcu(ent);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+void au_dr_rename_fin(struct dentry *src, aufs_bindex_t btgt, void *_rev)
+{
+	struct au_drinfo_rev *rev;
+	struct au_drinfo_rev_elm *elm;
+	int nelm;
+
+	rev = _rev;
+	elm = rev->elm;
+	for (nelm = rev->nelm; nelm > 0; nelm--, elm++) {
+		dput(elm->info_dentry);
+		au_kfree_rcu(elm->info_last);
+	}
+	au_kfree_try_rcu(rev);
+}
+
+void au_dr_rename_rev(struct dentry *src, aufs_bindex_t btgt, void *_rev)
+{
+	int err;
+	struct au_drinfo_store work;
+	struct au_drinfo_rev *rev = _rev;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct inode *h_inode;
+	struct au_dr_br *dr;
+	struct au_dr_hino *ent;
+
+	err = au_drinfo_store_work_init(&work, btgt);
+	if (unlikely(err))
+		goto out;
+
+	sb = src->d_sb;
+	br = au_sbr(sb, btgt);
+	work.h_ppath.dentry = au_h_dptr(src, btgt);
+	work.h_ppath.mnt = au_br_mnt(br);
+	au_drinfo_store_rev(rev, &work);
+	au_drinfo_store_work_fin(&work);
+	if (rev->already)
+		goto out;
+
+	dr = &br->br_dirren;
+	h_inode = d_inode(work.h_ppath.dentry);
+	ent = au_dr_hino_find(dr, h_inode->i_ino);
+	BUG_ON(!ent);
+	au_dr_hino_del(dr, ent);
+	au_kfree_rcu(ent);
+
+out:
+	au_kfree_try_rcu(rev);
+	if (unlikely(err))
+		pr_err("failed to remove dirren info\n");
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct au_drinfo *au_drinfo_do_load(struct path *h_ppath,
+					   char *whname, int whnamelen,
+					   struct dentry **info_dentry)
+{
+	struct au_drinfo *drinfo;
+	struct file *f;
+	struct inode *h_dir;
+	struct path infopath;
+	int unlocked;
+
+	AuDbg("%pd/%.*s\n", h_ppath->dentry, whnamelen, whname);
+
+	*info_dentry = NULL;
+	drinfo = NULL;
+	unlocked = 0;
+	h_dir = d_inode(h_ppath->dentry);
+	inode_lock_shared_nested(h_dir, AuLsc_I_PARENT);
+	infopath.dentry = vfsub_lookup_one_len(whname, h_ppath->dentry,
+					       whnamelen);
+	if (IS_ERR(infopath.dentry)) {
+		drinfo = (void *)infopath.dentry;
+		goto out;
+	}
+
+	if (d_is_negative(infopath.dentry))
+		goto out_dput; /* success */
+
+	infopath.mnt = h_ppath->mnt;
+	f = vfsub_dentry_open(&infopath, O_RDONLY);
+	inode_unlock_shared(h_dir);
+	unlocked = 1;
+	if (IS_ERR(f)) {
+		drinfo = (void *)f;
+		goto out_dput;
+	}
+
+	drinfo = au_drinfo_read_k(f, /*h_ino*/0);
+	if (IS_ERR_OR_NULL(drinfo))
+		goto out_fput;
+
+	AuDbg("oldname %.*s\n", drinfo->oldnamelen, drinfo->oldname);
+	*info_dentry = dget(infopath.dentry); /* keep it alive */
+
+out_fput:
+	fput(f);
+out_dput:
+	dput(infopath.dentry);
+out:
+	if (!unlocked)
+		inode_unlock_shared(h_dir);
+	AuTraceErrPtr(drinfo);
+	return drinfo;
+}
+
+struct au_drinfo_do_load_args {
+	struct au_drinfo **drinfop;
+	struct path *h_ppath;
+	char *whname;
+	int whnamelen;
+	struct dentry **info_dentry;
+};
+
+static void au_call_drinfo_do_load(void *args)
+{
+	struct au_drinfo_do_load_args *a = args;
+
+	*a->drinfop = au_drinfo_do_load(a->h_ppath, a->whname, a->whnamelen,
+					a->info_dentry);
+}
+
+struct au_drinfo_load {
+	struct path h_ppath;
+	struct qstr *qname;
+	unsigned char no_sio;
+
+	aufs_bindex_t ninfo;
+	struct au_drinfo **drinfo;
+};
+
+static int au_drinfo_load(struct au_drinfo_load *w, aufs_bindex_t bindex,
+			  struct au_branch *br)
+{
+	int err, wkq_err, whnamelen, e;
+	char whname[sizeof(AUFS_WH_DR_INFO_PFX) + AUFS_DIRREN_ENV_VAL_SZ]
+		= AUFS_WH_DR_INFO_PFX;
+	struct au_drinfo *drinfo;
+	struct qstr oldname;
+	struct inode *h_dir, *delegated;
+	struct dentry *info_dentry;
+	struct path infopath;
+
+	whnamelen = sizeof(AUFS_WH_DR_INFO_PFX) - 1;
+	whnamelen += au_drinfo_name(br, whname + whnamelen,
+				    sizeof(whname) - whnamelen);
+	if (w->no_sio)
+		drinfo = au_drinfo_do_load(&w->h_ppath, whname, whnamelen,
+					   &info_dentry);
+	else {
+		struct au_drinfo_do_load_args args = {
+			.drinfop	= &drinfo,
+			.h_ppath	= &w->h_ppath,
+			.whname		= whname,
+			.whnamelen	= whnamelen,
+			.info_dentry	= &info_dentry
+		};
+		wkq_err = au_wkq_wait(au_call_drinfo_do_load, &args);
+		if (unlikely(wkq_err))
+			drinfo = ERR_PTR(wkq_err);
+	}
+	err = PTR_ERR(drinfo);
+	if (IS_ERR_OR_NULL(drinfo))
+		goto out;
+
+	err = 0;
+	oldname.len = drinfo->oldnamelen;
+	oldname.name = drinfo->oldname;
+	if (au_qstreq(w->qname, &oldname)) {
+		/* the name is renamed back */
+		au_kfree_rcu(drinfo);
+		drinfo = NULL;
+
+		infopath.dentry = info_dentry;
+		infopath.mnt = w->h_ppath.mnt;
+		h_dir = d_inode(w->h_ppath.dentry);
+		delegated = NULL;
+		inode_lock_nested(h_dir, AuLsc_I_PARENT);
+		e = vfsub_unlink(h_dir, &infopath, &delegated, !w->no_sio);
+		inode_unlock(h_dir);
+		if (unlikely(e))
+			AuIOErr("ignored %d, %pd2\n", e, &infopath.dentry);
+		if (unlikely(e == -EWOULDBLOCK))
+			iput(delegated);
+	}
+	au_kfree_rcu(w->drinfo[bindex]);
+	w->drinfo[bindex] = drinfo;
+	dput(info_dentry);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_dr_lkup_free(struct au_drinfo **drinfo, int n)
+{
+	struct au_drinfo **p = drinfo;
+
+	while (n-- > 0)
+		au_kfree_rcu(*drinfo++);
+	au_kfree_try_rcu(p);
+}
+
+int au_dr_lkup(struct au_do_lookup_args *lkup, struct dentry *dentry,
+	       aufs_bindex_t btgt)
+{
+	int err, ninfo;
+	struct au_drinfo_load w;
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+	struct inode *h_dir;
+	struct au_dr_hino *ent;
+	struct super_block *sb;
+
+	AuDbg("%.*s, name %.*s, whname %.*s, b%d\n",
+	      AuLNPair(&dentry->d_name), AuLNPair(&lkup->dirren.dr_name),
+	      AuLNPair(&lkup->whname), btgt);
+
+	sb = dentry->d_sb;
+	bbot = au_sbbot(sb);
+	w.ninfo = bbot + 1;
+	if (!lkup->dirren.drinfo) {
+		lkup->dirren.drinfo = kcalloc(w.ninfo,
+					      sizeof(*lkup->dirren.drinfo),
+					      GFP_NOFS);
+		if (unlikely(!lkup->dirren.drinfo)) {
+			err = -ENOMEM;
+			goto out;
+		}
+		lkup->dirren.ninfo = w.ninfo;
+	}
+	w.drinfo = lkup->dirren.drinfo;
+	w.no_sio = !!uid_eq(current_fsuid(), GLOBAL_ROOT_UID);
+	w.h_ppath.dentry = au_h_dptr(dentry, btgt);
+	AuDebugOn(!w.h_ppath.dentry);
+	w.h_ppath.mnt = au_sbr_mnt(sb, btgt);
+	w.qname = &dentry->d_name;
+
+	ninfo = 0;
+	for (bindex = btgt + 1; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		err = au_drinfo_load(&w, bindex, br);
+		if (unlikely(err))
+			goto out_free;
+		if (w.drinfo[bindex])
+			ninfo++;
+	}
+	if (!ninfo) {
+		br = au_sbr(sb, btgt);
+		h_dir = d_inode(w.h_ppath.dentry);
+		ent = au_dr_hino_find(&br->br_dirren, h_dir->i_ino);
+		AuDebugOn(!ent);
+		au_dr_hino_del(&br->br_dirren, ent);
+		au_kfree_rcu(ent);
+	}
+	goto out; /* success */
+
+out_free:
+	au_dr_lkup_free(lkup->dirren.drinfo, lkup->dirren.ninfo);
+	lkup->dirren.ninfo = 0;
+	lkup->dirren.drinfo = NULL;
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+void au_dr_lkup_fin(struct au_do_lookup_args *lkup)
+{
+	au_dr_lkup_free(lkup->dirren.drinfo, lkup->dirren.ninfo);
+}
+
+int au_dr_lkup_name(struct au_do_lookup_args *lkup, aufs_bindex_t btgt)
+{
+	int err;
+	struct au_drinfo *drinfo;
+
+	err = 0;
+	if (!lkup->dirren.drinfo)
+		goto out;
+	AuDebugOn(lkup->dirren.ninfo <= btgt);
+	drinfo = lkup->dirren.drinfo[btgt];
+	if (!drinfo)
+		goto out;
+
+	au_kfree_try_rcu(lkup->whname.name);
+	lkup->whname.name = NULL;
+	lkup->dirren.dr_name.len = drinfo->oldnamelen;
+	lkup->dirren.dr_name.name = drinfo->oldname;
+	lkup->name = &lkup->dirren.dr_name;
+	err = au_wh_name_alloc(&lkup->whname, lkup->name);
+	if (!err)
+		AuDbg("name %.*s, whname %.*s, b%d\n",
+		      AuLNPair(lkup->name), AuLNPair(&lkup->whname),
+		      btgt);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_dr_lkup_h_ino(struct au_do_lookup_args *lkup, aufs_bindex_t bindex,
+		     ino_t h_ino)
+{
+	int match;
+	struct au_drinfo *drinfo;
+
+	match = 1;
+	if (!lkup->dirren.drinfo)
+		goto out;
+	AuDebugOn(lkup->dirren.ninfo <= bindex);
+	drinfo = lkup->dirren.drinfo[bindex];
+	if (!drinfo)
+		goto out;
+
+	match = (drinfo->ino == h_ino);
+	AuDbg("match %d\n", match);
+
+out:
+	return match;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_dr_opt_set(struct super_block *sb)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+
+	err = 0;
+	bbot = au_sbbot(sb);
+	for (bindex = 0; !err && bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		err = au_dr_hino(sb, bindex, /*br*/NULL, &br->br_path);
+	}
+
+	return err;
+}
+
+int au_dr_opt_flush(struct super_block *sb)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+
+	err = 0;
+	bbot = au_sbbot(sb);
+	for (bindex = 0; !err && bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (au_br_writable(br->br_perm))
+			err = au_dr_hino(sb, bindex, /*br*/NULL, /*path*/NULL);
+	}
+
+	return err;
+}
+
+int au_dr_opt_clr(struct super_block *sb, int no_flush)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+
+	err = 0;
+	if (!no_flush) {
+		err = au_dr_opt_flush(sb);
+		if (unlikely(err))
+			goto out;
+	}
+
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		au_dr_hino_free(&br->br_dirren);
+	}
+
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dirren.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dirren.h
@@ -0,0 +1,140 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2017-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * renamed dir info
+ */
+
+#ifndef __AUFS_DIRREN_H__
+#define __AUFS_DIRREN_H__
+
+#ifdef __KERNEL__
+
+#include <linux/dcache.h>
+#include <linux/statfs.h>
+#include <linux/uuid.h>
+#include "hbl.h"
+
+#define AuDirren_NHASH 100
+
+#ifdef CONFIG_AUFS_DIRREN
+enum au_brid_type {
+	AuBrid_Unset,
+	AuBrid_UUID,
+	AuBrid_FSID,
+	AuBrid_DEV
+};
+
+struct au_dr_brid {
+	enum au_brid_type	type;
+	union {
+		uuid_t	uuid;	/* unimplemented yet */
+		fsid_t	fsid;
+		dev_t	dev;
+	};
+};
+
+/* 20 is the max digits length of ulong 64 */
+/* brid-type "_" uuid "_" inum */
+#define AUFS_DIRREN_FNAME_SZ	(1 + 1 + UUID_STRING_LEN + 20)
+#define AUFS_DIRREN_ENV_VAL_SZ	(AUFS_DIRREN_FNAME_SZ + 1 + 20)
+
+struct au_dr_hino {
+	struct hlist_bl_node	dr_hnode;
+	ino_t			dr_h_ino;
+};
+
+struct au_dr_br {
+	struct hlist_bl_head	dr_h_ino[AuDirren_NHASH];
+	struct au_dr_brid	dr_brid;
+};
+
+struct au_dr_lookup {
+	/* dr_name is pointed by struct au_do_lookup_args.name */
+	struct qstr		dr_name; /* subset of dr_info */
+	aufs_bindex_t		ninfo;
+	struct au_drinfo	**drinfo;
+};
+#else
+struct au_dr_hino;
+/* empty */
+struct au_dr_br { };
+struct au_dr_lookup { };
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+struct au_branch;
+struct au_do_lookup_args;
+struct au_hinode;
+#ifdef CONFIG_AUFS_DIRREN
+int au_dr_hino_test_add(struct au_dr_br *dr, ino_t h_ino,
+			struct au_dr_hino *add_ent);
+void au_dr_hino_free(struct au_dr_br *dr);
+int au_dr_br_init(struct super_block *sb, struct au_branch *br,
+		  const struct path *path);
+int au_dr_br_fin(struct super_block *sb, struct au_branch *br);
+int au_dr_rename(struct dentry *src, aufs_bindex_t bindex,
+		 struct qstr *dst_name, void *_rev);
+void au_dr_rename_fin(struct dentry *src, aufs_bindex_t btgt, void *rev);
+void au_dr_rename_rev(struct dentry *src, aufs_bindex_t bindex, void *rev);
+int au_dr_lkup(struct au_do_lookup_args *lkup, struct dentry *dentry,
+	       aufs_bindex_t bindex);
+int au_dr_lkup_name(struct au_do_lookup_args *lkup, aufs_bindex_t btgt);
+int au_dr_lkup_h_ino(struct au_do_lookup_args *lkup, aufs_bindex_t bindex,
+		     ino_t h_ino);
+void au_dr_lkup_fin(struct au_do_lookup_args *lkup);
+int au_dr_opt_set(struct super_block *sb);
+int au_dr_opt_flush(struct super_block *sb);
+int au_dr_opt_clr(struct super_block *sb, int no_flush);
+#else
+AuStubInt0(au_dr_hino_test_add, struct au_dr_br *dr, ino_t h_ino,
+	   struct au_dr_hino *add_ent);
+AuStubVoid(au_dr_hino_free, struct au_dr_br *dr);
+AuStubInt0(au_dr_br_init, struct super_block *sb, struct au_branch *br,
+	   const struct path *path);
+AuStubInt0(au_dr_br_fin, struct super_block *sb, struct au_branch *br);
+AuStubInt0(au_dr_rename, struct dentry *src, aufs_bindex_t bindex,
+	   struct qstr *dst_name, void *_rev);
+AuStubVoid(au_dr_rename_fin, struct dentry *src, aufs_bindex_t btgt, void *rev);
+AuStubVoid(au_dr_rename_rev, struct dentry *src, aufs_bindex_t bindex,
+	   void *rev);
+AuStubInt0(au_dr_lkup, struct au_do_lookup_args *lkup, struct dentry *dentry,
+	   aufs_bindex_t bindex);
+AuStubInt0(au_dr_lkup_name, struct au_do_lookup_args *lkup, aufs_bindex_t btgt);
+AuStubInt0(au_dr_lkup_h_ino, struct au_do_lookup_args *lkup,
+	   aufs_bindex_t bindex, ino_t h_ino);
+AuStubVoid(au_dr_lkup_fin, struct au_do_lookup_args *lkup);
+AuStubInt0(au_dr_opt_set, struct super_block *sb);
+AuStubInt0(au_dr_opt_flush, struct super_block *sb);
+AuStubInt0(au_dr_opt_clr, struct super_block *sb, int no_flush);
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_DIRREN
+static inline int au_dr_ihash(ino_t h_ino)
+{
+	return h_ino % AuDirren_NHASH;
+}
+#else
+AuStubInt0(au_dr_ihash, ino_t h_ino);
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DIRREN_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dynop.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dynop.c
@@ -0,0 +1,367 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2010-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * dynamically customizable operations for regular files
+ */
+
+#include "aufs.h"
+
+#define DyPrSym(key)	AuDbgSym(key->dk_op.dy_hop)
+
+/*
+ * How large will these lists be?
+ * Usually just a few elements, 20-30 at most for each, I guess.
+ */
+static struct hlist_bl_head dynop[AuDyLast];
+
+static struct au_dykey *dy_gfind_get(struct hlist_bl_head *hbl,
+				     const void *h_op)
+{
+	struct au_dykey *key, *tmp;
+	struct hlist_bl_node *pos;
+
+	key = NULL;
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(tmp, pos, hbl, dk_hnode)
+		if (tmp->dk_op.dy_hop == h_op) {
+			if (kref_get_unless_zero(&tmp->dk_kref))
+				key = tmp;
+			break;
+		}
+	hlist_bl_unlock(hbl);
+
+	return key;
+}
+
+static struct au_dykey *dy_bradd(struct au_branch *br, struct au_dykey *key)
+{
+	struct au_dykey **k, *found;
+	const void *h_op = key->dk_op.dy_hop;
+	int i;
+
+	found = NULL;
+	k = br->br_dykey;
+	for (i = 0; i < AuBrDynOp; i++)
+		if (k[i]) {
+			if (k[i]->dk_op.dy_hop == h_op) {
+				found = k[i];
+				break;
+			}
+		} else
+			break;
+	if (!found) {
+		spin_lock(&br->br_dykey_lock);
+		for (; i < AuBrDynOp; i++)
+			if (k[i]) {
+				if (k[i]->dk_op.dy_hop == h_op) {
+					found = k[i];
+					break;
+				}
+			} else {
+				k[i] = key;
+				break;
+			}
+		spin_unlock(&br->br_dykey_lock);
+		BUG_ON(i == AuBrDynOp); /* expand the array */
+	}
+
+	return found;
+}
+
+/* kref_get() if @key is already added */
+static struct au_dykey *dy_gadd(struct hlist_bl_head *hbl, struct au_dykey *key)
+{
+	struct au_dykey *tmp, *found;
+	struct hlist_bl_node *pos;
+	const void *h_op = key->dk_op.dy_hop;
+
+	found = NULL;
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(tmp, pos, hbl, dk_hnode)
+		if (tmp->dk_op.dy_hop == h_op) {
+			if (kref_get_unless_zero(&tmp->dk_kref))
+				found = tmp;
+			break;
+		}
+	if (!found)
+		hlist_bl_add_head(&key->dk_hnode, hbl);
+	hlist_bl_unlock(hbl);
+
+	if (!found)
+		DyPrSym(key);
+	return found;
+}
+
+static void dy_free_rcu(struct rcu_head *rcu)
+{
+	struct au_dykey *key;
+
+	key = container_of(rcu, struct au_dykey, dk_rcu);
+	DyPrSym(key);
+	kfree(key);
+}
+
+static void dy_free(struct kref *kref)
+{
+	struct au_dykey *key;
+	struct hlist_bl_head *hbl;
+
+	key = container_of(kref, struct au_dykey, dk_kref);
+	hbl = dynop + key->dk_op.dy_type;
+	au_hbl_del(&key->dk_hnode, hbl);
+	call_rcu(&key->dk_rcu, dy_free_rcu);
+}
+
+void au_dy_put(struct au_dykey *key)
+{
+	kref_put(&key->dk_kref, dy_free);
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define DyDbgSize(cnt, op)	AuDebugOn(cnt != sizeof(op)/sizeof(void *))
+
+#ifdef CONFIG_AUFS_DEBUG
+#define DyDbgDeclare(cnt)	unsigned int cnt = 0
+#define DyDbgInc(cnt)		do { cnt++; } while (0)
+#else
+#define DyDbgDeclare(cnt)	do {} while (0)
+#define DyDbgInc(cnt)		do {} while (0)
+#endif
+
+#define DySet(func, dst, src, h_op, h_sb) do {				\
+	DyDbgInc(cnt);							\
+	if (h_op->func) {						\
+		if (src.func)						\
+			dst.func = src.func;				\
+		else							\
+			AuDbg("%s %s\n", au_sbtype(h_sb), #func);	\
+	}								\
+} while (0)
+
+#define DySetForce(func, dst, src) do {		\
+	AuDebugOn(!src.func);			\
+	DyDbgInc(cnt);				\
+	dst.func = src.func;			\
+} while (0)
+
+#define DySetAop(func) \
+	DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb)
+#define DySetAopForce(func) \
+	DySetForce(func, dyaop->da_op, aufs_aop)
+
+static void dy_aop(struct au_dykey *key, const void *h_op,
+		   struct super_block *h_sb __maybe_unused)
+{
+	struct au_dyaop *dyaop = (void *)key;
+	const struct address_space_operations *h_aop = h_op;
+	DyDbgDeclare(cnt);
+
+	AuDbg("%s\n", au_sbtype(h_sb));
+
+	DySetAop(writepage);
+	DySetAopForce(readpage);	/* force */
+	DySetAop(writepages);
+	DySetAop(set_page_dirty);
+	DySetAop(readpages);
+	DySetAop(write_begin);
+	DySetAop(write_end);
+	DySetAop(bmap);
+	DySetAop(invalidatepage);
+	DySetAop(releasepage);
+	DySetAop(freepage);
+	/* this one will be changed according to an aufs mount option */
+	DySetAop(direct_IO);
+	DySetAop(migratepage);
+	DySetAop(isolate_page);
+	DySetAop(putback_page);
+	DySetAop(launder_page);
+	DySetAop(is_partially_uptodate);
+	DySetAop(is_dirty_writeback);
+	DySetAop(error_remove_page);
+	DySetAop(swap_activate);
+	DySetAop(swap_deactivate);
+
+	DyDbgSize(cnt, *h_aop);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void dy_bug(struct kref *kref)
+{
+	BUG();
+}
+
+static struct au_dykey *dy_get(struct au_dynop *op, struct au_branch *br)
+{
+	struct au_dykey *key, *old;
+	struct hlist_bl_head *hbl;
+	struct op {
+		unsigned int sz;
+		void (*set)(struct au_dykey *key, const void *h_op,
+			    struct super_block *h_sb __maybe_unused);
+	};
+	static const struct op a[] = {
+		[AuDy_AOP] = {
+			.sz	= sizeof(struct au_dyaop),
+			.set	= dy_aop
+		}
+	};
+	const struct op *p;
+
+	hbl = dynop + op->dy_type;
+	key = dy_gfind_get(hbl, op->dy_hop);
+	if (key)
+		goto out_add; /* success */
+
+	p = a + op->dy_type;
+	key = kzalloc(p->sz, GFP_NOFS);
+	if (unlikely(!key)) {
+		key = ERR_PTR(-ENOMEM);
+		goto out;
+	}
+
+	key->dk_op.dy_hop = op->dy_hop;
+	kref_init(&key->dk_kref);
+	p->set(key, op->dy_hop, au_br_sb(br));
+	old = dy_gadd(hbl, key);
+	if (old) {
+		au_kfree_rcu(key);
+		key = old;
+	}
+
+out_add:
+	old = dy_bradd(br, key);
+	if (old)
+		/* its ref-count should never be zero here */
+		kref_put(&key->dk_kref, dy_bug);
+out:
+	return key;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * Aufs prohibits O_DIRECT by default even if the branch supports it.
+ * This behaviour is necessary to return an error from open(O_DIRECT) instead
+ * of the succeeding I/O. The dio mount option enables O_DIRECT and makes
+ * open(O_DIRECT) always succeed, but the succeeding I/O may return an error.
+ * See the aufs manual in detail.
+ */
+static void dy_adx(struct au_dyaop *dyaop, int do_dx)
+{
+	if (!do_dx)
+		dyaop->da_op.direct_IO = NULL;
+	else
+		dyaop->da_op.direct_IO = aufs_aop.direct_IO;
+}
+
+static struct au_dyaop *dy_aget(struct au_branch *br,
+				const struct address_space_operations *h_aop,
+				int do_dx)
+{
+	struct au_dyaop *dyaop;
+	struct au_dynop op;
+
+	op.dy_type = AuDy_AOP;
+	op.dy_haop = h_aop;
+	dyaop = (void *)dy_get(&op, br);
+	if (IS_ERR(dyaop))
+		goto out;
+	dy_adx(dyaop, do_dx);
+
+out:
+	return dyaop;
+}
+
+int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex,
+		struct inode *h_inode)
+{
+	int err, do_dx;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_dyaop *dyaop;
+
+	AuDebugOn(!S_ISREG(h_inode->i_mode));
+	IiMustWriteLock(inode);
+
+	sb = inode->i_sb;
+	br = au_sbr(sb, bindex);
+	do_dx = !!au_opt_test(au_mntflags(sb), DIO);
+	dyaop = dy_aget(br, h_inode->i_mapping->a_ops, do_dx);
+	err = PTR_ERR(dyaop);
+	if (IS_ERR(dyaop))
+		/* unnecessary to call dy_fput() */
+		goto out;
+
+	err = 0;
+	inode->i_mapping->a_ops = &dyaop->da_op;
+
+out:
+	return err;
+}
+
+/*
+ * Is it safe to replace a_ops during the inode/file is in operation?
+ * Yes, I hope so.
+ */
+int au_dy_irefresh(struct inode *inode)
+{
+	int err;
+	aufs_bindex_t btop;
+	struct inode *h_inode;
+
+	err = 0;
+	if (S_ISREG(inode->i_mode)) {
+		btop = au_ibtop(inode);
+		h_inode = au_h_iptr(inode, btop);
+		err = au_dy_iaop(inode, btop, h_inode);
+	}
+	return err;
+}
+
+void au_dy_arefresh(int do_dx)
+{
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	struct au_dykey *key;
+
+	hbl = dynop + AuDy_AOP;
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(key, pos, hbl, dk_hnode)
+		dy_adx((void *)key, do_dx);
+	hlist_bl_unlock(hbl);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void __init au_dy_init(void)
+{
+	int i;
+
+	for (i = 0; i < AuDyLast; i++)
+		INIT_HLIST_BL_HEAD(dynop + i);
+}
+
+void au_dy_fin(void)
+{
+	int i;
+
+	for (i = 0; i < AuDyLast; i++)
+		WARN_ON(!hlist_bl_empty(dynop + i));
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/dynop.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/dynop.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2010-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * dynamically customizable operations (for regular files only)
+ */
+
+#ifndef __AUFS_DYNOP_H__
+#define __AUFS_DYNOP_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/kref.h>
+
+enum {AuDy_AOP, AuDyLast};
+
+struct au_dynop {
+	int						dy_type;
+	union {
+		const void				*dy_hop;
+		const struct address_space_operations	*dy_haop;
+	};
+};
+
+struct au_dykey {
+	union {
+		struct hlist_bl_node	dk_hnode;
+		struct rcu_head		dk_rcu;
+	};
+	struct au_dynop		dk_op;
+
+	/*
+	 * during I am in the branch local array, kref is gotten. when the
+	 * branch is removed, kref is put.
+	 */
+	struct kref		dk_kref;
+};
+
+/* stop unioning since their sizes are very different from each other */
+struct au_dyaop {
+	struct au_dykey			da_key;
+	struct address_space_operations	da_op; /* not const */
+};
+/* make sure that 'struct au_dykey *' can be any type */
+static_assert(!offsetof(struct au_dyaop, da_key));
+
+/* ---------------------------------------------------------------------- */
+
+/* dynop.c */
+struct au_branch;
+void au_dy_put(struct au_dykey *key);
+int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex,
+		struct inode *h_inode);
+int au_dy_irefresh(struct inode *inode);
+void au_dy_arefresh(int do_dio);
+
+void __init au_dy_init(void);
+void au_dy_fin(void);
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DYNOP_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/export.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/export.c
@@ -0,0 +1,838 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * export via nfs
+ */
+
+#include <linux/exportfs.h>
+#include <linux/fs_struct.h>
+#include <linux/namei.h>
+#include <linux/nsproxy.h>
+#include <linux/random.h>
+#include <linux/writeback.h>
+#include "aufs.h"
+
+union conv {
+#ifdef CONFIG_AUFS_INO_T_64
+	__u32 a[2];
+#else
+	__u32 a[1];
+#endif
+	ino_t ino;
+};
+
+static ino_t decode_ino(__u32 *a)
+{
+	union conv u;
+
+	BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a));
+	u.a[0] = a[0];
+#ifdef CONFIG_AUFS_INO_T_64
+	u.a[1] = a[1];
+#endif
+	return u.ino;
+}
+
+static void encode_ino(__u32 *a, ino_t ino)
+{
+	union conv u;
+
+	u.ino = ino;
+	a[0] = u.a[0];
+#ifdef CONFIG_AUFS_INO_T_64
+	a[1] = u.a[1];
+#endif
+}
+
+/* NFS file handle */
+enum {
+	Fh_br_id,
+	Fh_sigen,
+#ifdef CONFIG_AUFS_INO_T_64
+	/* support 64bit inode number */
+	Fh_ino1,
+	Fh_ino2,
+	Fh_dir_ino1,
+	Fh_dir_ino2,
+#else
+	Fh_ino1,
+	Fh_dir_ino1,
+#endif
+	Fh_igen,
+	Fh_h_type,
+	Fh_tail,
+
+	Fh_ino = Fh_ino1,
+	Fh_dir_ino = Fh_dir_ino1
+};
+
+static int au_test_anon(struct dentry *dentry)
+{
+	/* note: read d_flags without d_lock */
+	return !!(dentry->d_flags & DCACHE_DISCONNECTED);
+}
+
+int au_test_nfsd(void)
+{
+	int ret;
+	struct task_struct *tsk = current;
+	char comm[sizeof(tsk->comm)];
+
+	ret = 0;
+	if (tsk->flags & PF_KTHREAD) {
+		get_task_comm(comm, tsk);
+		ret = !strcmp(comm, "nfsd");
+	}
+
+	return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+/* inode generation external table */
+
+void au_xigen_inc(struct inode *inode)
+{
+	loff_t pos;
+	ssize_t sz;
+	__u32 igen;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+
+	sb = inode->i_sb;
+	AuDebugOn(!au_opt_test(au_mntflags(sb), XINO));
+
+	sbinfo = au_sbi(sb);
+	pos = inode->i_ino;
+	pos *= sizeof(igen);
+	igen = inode->i_generation + 1;
+	sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xigen, &igen,
+			 sizeof(igen), &pos);
+	if (sz == sizeof(igen))
+		return; /* success */
+
+	if (unlikely(sz >= 0))
+		AuIOErr("xigen error (%zd)\n", sz);
+}
+
+int au_xigen_new(struct inode *inode)
+{
+	int err;
+	loff_t pos;
+	ssize_t sz;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+
+	err = 0;
+	/* todo: dirty, at mount time */
+	if (inode->i_ino == AUFS_ROOT_INO)
+		goto out;
+	sb = inode->i_sb;
+	SiMustAnyLock(sb);
+	if (unlikely(!au_opt_test(au_mntflags(sb), XINO)))
+		goto out;
+
+	err = -EFBIG;
+	pos = inode->i_ino;
+	if (unlikely(au_loff_max / sizeof(inode->i_generation) - 1 < pos)) {
+		AuIOErr1("too large i%lld\n", pos);
+		goto out;
+	}
+	pos *= sizeof(inode->i_generation);
+
+	err = 0;
+	sbinfo = au_sbi(sb);
+	file = sbinfo->si_xigen;
+	BUG_ON(!file);
+
+	if (vfsub_f_size_read(file)
+	    < pos + sizeof(inode->i_generation)) {
+		inode->i_generation = atomic_inc_return(&sbinfo->si_xigen_next);
+		sz = xino_fwrite(sbinfo->si_xwrite, file, &inode->i_generation,
+				 sizeof(inode->i_generation), &pos);
+	} else
+		sz = xino_fread(sbinfo->si_xread, file, &inode->i_generation,
+				sizeof(inode->i_generation), &pos);
+	if (sz == sizeof(inode->i_generation))
+		goto out; /* success */
+
+	err = sz;
+	if (unlikely(sz >= 0)) {
+		err = -EIO;
+		AuIOErr("xigen error (%zd)\n", sz);
+	}
+
+out:
+	return err;
+}
+
+int au_xigen_set(struct super_block *sb, struct path *path)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	file = au_xino_create2(sb, path, sbinfo->si_xigen);
+	err = PTR_ERR(file);
+	if (IS_ERR(file))
+		goto out;
+	err = 0;
+	if (sbinfo->si_xigen)
+		fput(sbinfo->si_xigen);
+	sbinfo->si_xigen = file;
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+void au_xigen_clr(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	if (sbinfo->si_xigen) {
+		fput(sbinfo->si_xigen);
+		sbinfo->si_xigen = NULL;
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *decode_by_ino(struct super_block *sb, ino_t ino,
+				    ino_t dir_ino)
+{
+	struct dentry *dentry, *d;
+	struct inode *inode;
+	unsigned int sigen;
+
+	dentry = NULL;
+	inode = ilookup(sb, ino);
+	if (!inode)
+		goto out;
+
+	dentry = ERR_PTR(-ESTALE);
+	sigen = au_sigen(sb);
+	if (unlikely(au_is_bad_inode(inode)
+		     || IS_DEADDIR(inode)
+		     || sigen != au_iigen(inode, NULL)))
+		goto out_iput;
+
+	dentry = NULL;
+	if (!dir_ino || S_ISDIR(inode->i_mode))
+		dentry = d_find_alias(inode);
+	else {
+		spin_lock(&inode->i_lock);
+		hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) {
+			spin_lock(&d->d_lock);
+			if (!au_test_anon(d)
+			    && d_inode(d->d_parent)->i_ino == dir_ino) {
+				dentry = dget_dlock(d);
+				spin_unlock(&d->d_lock);
+				break;
+			}
+			spin_unlock(&d->d_lock);
+		}
+		spin_unlock(&inode->i_lock);
+	}
+	if (unlikely(dentry && au_digen_test(dentry, sigen))) {
+		/* need to refresh */
+		dput(dentry);
+		dentry = NULL;
+	}
+
+out_iput:
+	iput(inode);
+out:
+	AuTraceErrPtr(dentry);
+	return dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: dirty? */
+/* if exportfs_decode_fh() passed vfsmount*, we could be happy */
+
+struct au_compare_mnt_args {
+	/* input */
+	struct super_block *sb;
+
+	/* output */
+	struct vfsmount *mnt;
+};
+
+static int au_compare_mnt(struct vfsmount *mnt, void *arg)
+{
+	struct au_compare_mnt_args *a = arg;
+
+	if (mnt->mnt_sb != a->sb)
+		return 0;
+	a->mnt = mntget(mnt);
+	return 1;
+}
+
+static struct vfsmount *au_mnt_get(struct super_block *sb)
+{
+	int err;
+	struct path root;
+	struct au_compare_mnt_args args = {
+		.sb = sb
+	};
+
+	get_fs_root(current->fs, &root);
+	rcu_read_lock();
+	err = iterate_mounts(au_compare_mnt, &args, root.mnt);
+	rcu_read_unlock();
+	path_put(&root);
+	AuDebugOn(!err);
+	AuDebugOn(!args.mnt);
+	return args.mnt;
+}
+
+struct au_nfsd_si_lock {
+	unsigned int sigen;
+	aufs_bindex_t bindex, br_id;
+	unsigned char force_lock;
+};
+
+static int si_nfsd_read_lock(struct super_block *sb,
+			     struct au_nfsd_si_lock *nsi_lock)
+{
+	int err;
+	aufs_bindex_t bindex;
+
+	si_read_lock(sb, AuLock_FLUSH);
+
+	/* branch id may be wrapped around */
+	err = 0;
+	bindex = au_br_index(sb, nsi_lock->br_id);
+	if (bindex >= 0 && nsi_lock->sigen + AUFS_BRANCH_MAX > au_sigen(sb))
+		goto out; /* success */
+
+	err = -ESTALE;
+	bindex = -1;
+	if (!nsi_lock->force_lock)
+		si_read_unlock(sb);
+
+out:
+	nsi_lock->bindex = bindex;
+	return err;
+}
+
+struct find_name_by_ino {
+	struct dir_context ctx;
+	int called, found;
+	ino_t ino;
+	char *name;
+	int namelen;
+};
+
+static int
+find_name_by_ino(struct dir_context *ctx, const char *name, int namelen,
+		 loff_t offset, u64 ino, unsigned int d_type)
+{
+	struct find_name_by_ino *a = container_of(ctx, struct find_name_by_ino,
+						  ctx);
+
+	a->called++;
+	if (a->ino != ino)
+		return 0;
+
+	memcpy(a->name, name, namelen);
+	a->namelen = namelen;
+	a->found = 1;
+	return 1;
+}
+
+static struct dentry *au_lkup_by_ino(struct path *path, ino_t ino,
+				     struct au_nfsd_si_lock *nsi_lock)
+{
+	struct dentry *dentry, *parent;
+	struct file *file;
+	struct inode *dir;
+	struct find_name_by_ino arg = {
+		.ctx = {
+			.actor = find_name_by_ino
+		}
+	};
+	int err;
+
+	parent = path->dentry;
+	if (nsi_lock)
+		si_read_unlock(parent->d_sb);
+	file = vfsub_dentry_open(path, au_dir_roflags);
+	dentry = (void *)file;
+	if (IS_ERR(file))
+		goto out;
+
+	dentry = ERR_PTR(-ENOMEM);
+	arg.name = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!arg.name))
+		goto out_file;
+	arg.ino = ino;
+	arg.found = 0;
+	do {
+		arg.called = 0;
+		/* smp_mb(); */
+		err = vfsub_iterate_dir(file, &arg.ctx);
+	} while (!err && !arg.found && arg.called);
+	dentry = ERR_PTR(err);
+	if (unlikely(err))
+		goto out_name;
+	/* instead of ENOENT */
+	dentry = ERR_PTR(-ESTALE);
+	if (!arg.found)
+		goto out_name;
+
+	/* do not call vfsub_lkup_one() */
+	dir = d_inode(parent);
+	dentry = vfsub_lookup_one_len_unlocked(arg.name, parent, arg.namelen);
+	AuTraceErrPtr(dentry);
+	if (IS_ERR(dentry))
+		goto out_name;
+	AuDebugOn(au_test_anon(dentry));
+	if (unlikely(d_really_is_negative(dentry))) {
+		dput(dentry);
+		dentry = ERR_PTR(-ENOENT);
+	}
+
+out_name:
+	free_page((unsigned long)arg.name);
+out_file:
+	fput(file);
+out:
+	if (unlikely(nsi_lock
+		     && si_nfsd_read_lock(parent->d_sb, nsi_lock) < 0))
+		if (!IS_ERR(dentry)) {
+			dput(dentry);
+			dentry = ERR_PTR(-ESTALE);
+		}
+	AuTraceErrPtr(dentry);
+	return dentry;
+}
+
+static struct dentry *decode_by_dir_ino(struct super_block *sb, ino_t ino,
+					ino_t dir_ino,
+					struct au_nfsd_si_lock *nsi_lock)
+{
+	struct dentry *dentry;
+	struct path path;
+
+	if (dir_ino != AUFS_ROOT_INO) {
+		path.dentry = decode_by_ino(sb, dir_ino, 0);
+		dentry = path.dentry;
+		if (!path.dentry || IS_ERR(path.dentry))
+			goto out;
+		AuDebugOn(au_test_anon(path.dentry));
+	} else
+		path.dentry = dget(sb->s_root);
+
+	path.mnt = au_mnt_get(sb);
+	dentry = au_lkup_by_ino(&path, ino, nsi_lock);
+	path_put(&path);
+
+out:
+	AuTraceErrPtr(dentry);
+	return dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int h_acceptable(void *expv, struct dentry *dentry)
+{
+	return 1;
+}
+
+static char *au_build_path(struct dentry *h_parent, struct path *h_rootpath,
+			   char *buf, int len, struct super_block *sb)
+{
+	char *p;
+	int n;
+	struct path path;
+
+	p = d_path(h_rootpath, buf, len);
+	if (IS_ERR(p))
+		goto out;
+	n = strlen(p);
+
+	path.mnt = h_rootpath->mnt;
+	path.dentry = h_parent;
+	p = d_path(&path, buf, len);
+	if (IS_ERR(p))
+		goto out;
+	if (n != 1)
+		p += n;
+
+	path.mnt = au_mnt_get(sb);
+	path.dentry = sb->s_root;
+	p = d_path(&path, buf, len - strlen(p));
+	mntput(path.mnt);
+	if (IS_ERR(p))
+		goto out;
+	if (n != 1)
+		p[strlen(p)] = '/';
+
+out:
+	AuTraceErrPtr(p);
+	return p;
+}
+
+static
+struct dentry *decode_by_path(struct super_block *sb, ino_t ino, __u32 *fh,
+			      int fh_len, struct au_nfsd_si_lock *nsi_lock)
+{
+	struct dentry *dentry, *h_parent, *root;
+	struct super_block *h_sb;
+	char *pathname, *p;
+	struct vfsmount *h_mnt;
+	struct au_branch *br;
+	int err;
+	struct path path;
+
+	br = au_sbr(sb, nsi_lock->bindex);
+	h_mnt = au_br_mnt(br);
+	h_sb = h_mnt->mnt_sb;
+	/* todo: call lower fh_to_dentry()? fh_to_parent()? */
+	lockdep_off();
+	h_parent = exportfs_decode_fh(h_mnt, (void *)(fh + Fh_tail),
+				      fh_len - Fh_tail, fh[Fh_h_type],
+				      h_acceptable, /*context*/NULL);
+	lockdep_on();
+	dentry = h_parent;
+	if (unlikely(!h_parent || IS_ERR(h_parent))) {
+		AuWarn1("%s decode_fh failed, %ld\n",
+			au_sbtype(h_sb), PTR_ERR(h_parent));
+		goto out;
+	}
+	dentry = NULL;
+	if (unlikely(au_test_anon(h_parent))) {
+		AuWarn1("%s decode_fh returned a disconnected dentry\n",
+			au_sbtype(h_sb));
+		goto out_h_parent;
+	}
+
+	dentry = ERR_PTR(-ENOMEM);
+	pathname = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!pathname))
+		goto out_h_parent;
+
+	root = sb->s_root;
+	path.mnt = h_mnt;
+	di_read_lock_parent(root, !AuLock_IR);
+	path.dentry = au_h_dptr(root, nsi_lock->bindex);
+	di_read_unlock(root, !AuLock_IR);
+	p = au_build_path(h_parent, &path, pathname, PAGE_SIZE, sb);
+	dentry = (void *)p;
+	if (IS_ERR(p))
+		goto out_pathname;
+
+	si_read_unlock(sb);
+	err = vfsub_kern_path(p, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &path);
+	dentry = ERR_PTR(err);
+	if (unlikely(err))
+		goto out_relock;
+
+	dentry = ERR_PTR(-ENOENT);
+	AuDebugOn(au_test_anon(path.dentry));
+	if (unlikely(d_really_is_negative(path.dentry)))
+		goto out_path;
+
+	if (ino != d_inode(path.dentry)->i_ino)
+		dentry = au_lkup_by_ino(&path, ino, /*nsi_lock*/NULL);
+	else
+		dentry = dget(path.dentry);
+
+out_path:
+	path_put(&path);
+out_relock:
+	if (unlikely(si_nfsd_read_lock(sb, nsi_lock) < 0))
+		if (!IS_ERR(dentry)) {
+			dput(dentry);
+			dentry = ERR_PTR(-ESTALE);
+		}
+out_pathname:
+	free_page((unsigned long)pathname);
+out_h_parent:
+	dput(h_parent);
+out:
+	AuTraceErrPtr(dentry);
+	return dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *
+aufs_fh_to_dentry(struct super_block *sb, struct fid *fid, int fh_len,
+		  int fh_type)
+{
+	struct dentry *dentry;
+	__u32 *fh = fid->raw;
+	struct au_branch *br;
+	ino_t ino, dir_ino;
+	struct au_nfsd_si_lock nsi_lock = {
+		.force_lock	= 0
+	};
+
+	dentry = ERR_PTR(-ESTALE);
+	/* it should never happen, but the file handle is unreliable */
+	if (unlikely(fh_len < Fh_tail))
+		goto out;
+	nsi_lock.sigen = fh[Fh_sigen];
+	nsi_lock.br_id = fh[Fh_br_id];
+
+	/* branch id may be wrapped around */
+	br = NULL;
+	if (unlikely(si_nfsd_read_lock(sb, &nsi_lock)))
+		goto out;
+	nsi_lock.force_lock = 1;
+
+	/* is this inode still cached? */
+	ino = decode_ino(fh + Fh_ino);
+	/* it should never happen */
+	if (unlikely(ino == AUFS_ROOT_INO))
+		goto out_unlock;
+
+	dir_ino = decode_ino(fh + Fh_dir_ino);
+	dentry = decode_by_ino(sb, ino, dir_ino);
+	if (IS_ERR(dentry))
+		goto out_unlock;
+	if (dentry)
+		goto accept;
+
+	/* is the parent dir cached? */
+	br = au_sbr(sb, nsi_lock.bindex);
+	au_lcnt_inc(&br->br_nfiles);
+	dentry = decode_by_dir_ino(sb, ino, dir_ino, &nsi_lock);
+	if (IS_ERR(dentry))
+		goto out_unlock;
+	if (dentry)
+		goto accept;
+
+	/* lookup path */
+	dentry = decode_by_path(sb, ino, fh, fh_len, &nsi_lock);
+	if (IS_ERR(dentry))
+		goto out_unlock;
+	if (unlikely(!dentry))
+		/* todo?: make it ESTALE */
+		goto out_unlock;
+
+accept:
+	if (!au_digen_test(dentry, au_sigen(sb))
+	    && d_inode(dentry)->i_generation == fh[Fh_igen])
+		goto out_unlock; /* success */
+
+	dput(dentry);
+	dentry = ERR_PTR(-ESTALE);
+out_unlock:
+	if (br)
+		au_lcnt_dec(&br->br_nfiles);
+	si_read_unlock(sb);
+out:
+	AuTraceErrPtr(dentry);
+	return dentry;
+}
+
+#if 0 /* reserved for future use */
+/* support subtreecheck option */
+static struct dentry *aufs_fh_to_parent(struct super_block *sb, struct fid *fid,
+					int fh_len, int fh_type)
+{
+	struct dentry *parent;
+	__u32 *fh = fid->raw;
+	ino_t dir_ino;
+
+	dir_ino = decode_ino(fh + Fh_dir_ino);
+	parent = decode_by_ino(sb, dir_ino, 0);
+	if (IS_ERR(parent))
+		goto out;
+	if (!parent)
+		parent = decode_by_path(sb, au_br_index(sb, fh[Fh_br_id]),
+					dir_ino, fh, fh_len);
+
+out:
+	AuTraceErrPtr(parent);
+	return parent;
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_encode_fh(struct inode *inode, __u32 *fh, int *max_len,
+			  struct inode *dir)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct super_block *sb, *h_sb;
+	struct dentry *dentry, *parent, *h_parent;
+	struct inode *h_dir;
+	struct au_branch *br;
+
+	err = -ENOSPC;
+	if (unlikely(*max_len <= Fh_tail)) {
+		AuWarn1("NFSv2 client (max_len %d)?\n", *max_len);
+		goto out;
+	}
+
+	err = FILEID_ROOT;
+	if (inode->i_ino == AUFS_ROOT_INO) {
+		AuDebugOn(inode->i_ino != AUFS_ROOT_INO);
+		goto out;
+	}
+
+	h_parent = NULL;
+	sb = inode->i_sb;
+	err = si_read_lock(sb, AuLock_FLUSH);
+	if (unlikely(err))
+		goto out;
+
+#ifdef CONFIG_AUFS_DEBUG
+	if (unlikely(!au_opt_test(au_mntflags(sb), XINO)))
+		AuWarn1("NFS-exporting requires xino\n");
+#endif
+	err = -EIO;
+	parent = NULL;
+	ii_read_lock_child(inode);
+	bindex = au_ibtop(inode);
+	if (!dir) {
+		dentry = d_find_any_alias(inode);
+		if (unlikely(!dentry))
+			goto out_unlock;
+		AuDebugOn(au_test_anon(dentry));
+		parent = dget_parent(dentry);
+		dput(dentry);
+		if (unlikely(!parent))
+			goto out_unlock;
+		if (d_really_is_positive(parent))
+			dir = d_inode(parent);
+	}
+
+	ii_read_lock_parent(dir);
+	h_dir = au_h_iptr(dir, bindex);
+	ii_read_unlock(dir);
+	if (unlikely(!h_dir))
+		goto out_parent;
+	h_parent = d_find_any_alias(h_dir);
+	if (unlikely(!h_parent))
+		goto out_hparent;
+
+	err = -EPERM;
+	br = au_sbr(sb, bindex);
+	h_sb = au_br_sb(br);
+	if (unlikely(!h_sb->s_export_op)) {
+		AuErr1("%s branch is not exportable\n", au_sbtype(h_sb));
+		goto out_hparent;
+	}
+
+	fh[Fh_br_id] = br->br_id;
+	fh[Fh_sigen] = au_sigen(sb);
+	encode_ino(fh + Fh_ino, inode->i_ino);
+	encode_ino(fh + Fh_dir_ino, dir->i_ino);
+	fh[Fh_igen] = inode->i_generation;
+
+	*max_len -= Fh_tail;
+	fh[Fh_h_type] = exportfs_encode_fh(h_parent, (void *)(fh + Fh_tail),
+					   max_len,
+					   /*connectable or subtreecheck*/0);
+	err = fh[Fh_h_type];
+	*max_len += Fh_tail;
+	/* todo: macros? */
+	if (err != FILEID_INVALID)
+		err = 99;
+	else
+		AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb));
+
+out_hparent:
+	dput(h_parent);
+out_parent:
+	dput(parent);
+out_unlock:
+	ii_read_unlock(inode);
+	si_read_unlock(sb);
+out:
+	if (unlikely(err < 0))
+		err = FILEID_INVALID;
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_commit_metadata(struct inode *inode)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct super_block *sb;
+	struct inode *h_inode;
+	int (*f)(struct inode *inode);
+
+	sb = inode->i_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+	ii_write_lock_child(inode);
+	bindex = au_ibtop(inode);
+	AuDebugOn(bindex < 0);
+	h_inode = au_h_iptr(inode, bindex);
+
+	f = h_inode->i_sb->s_export_op->commit_metadata;
+	if (f)
+		err = f(h_inode);
+	else {
+		struct writeback_control wbc = {
+			.sync_mode	= WB_SYNC_ALL,
+			.nr_to_write	= 0 /* metadata only */
+		};
+
+		err = sync_inode(h_inode, &wbc);
+	}
+
+	au_cpup_attr_timesizes(inode);
+	ii_write_unlock(inode);
+	si_read_unlock(sb);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct export_operations aufs_export_op = {
+	.fh_to_dentry		= aufs_fh_to_dentry,
+	/* .fh_to_parent	= aufs_fh_to_parent, */
+	.encode_fh		= aufs_encode_fh,
+	.commit_metadata	= aufs_commit_metadata
+};
+
+void au_export_init(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+	__u32 u;
+
+	BUILD_BUG_ON_MSG(IS_BUILTIN(CONFIG_AUFS_FS)
+			 && IS_MODULE(CONFIG_EXPORTFS),
+			 AUFS_NAME ": unsupported configuration "
+			 "CONFIG_EXPORTFS=m and CONFIG_AUFS_FS=y");
+
+	sb->s_export_op = &aufs_export_op;
+	sbinfo = au_sbi(sb);
+	sbinfo->si_xigen = NULL;
+	get_random_bytes(&u, sizeof(u));
+	BUILD_BUG_ON(sizeof(u) != sizeof(int));
+	atomic_set(&sbinfo->si_xigen_next, u);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/f_op.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/f_op.c
@@ -0,0 +1,819 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * file and vm operations
+ */
+
+#include <linux/aio.h>
+#include <linux/fs_stack.h>
+#include <linux/mman.h>
+#include <linux/security.h>
+#include "aufs.h"
+
+int au_do_open_nondir(struct file *file, int flags, struct file *h_file)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct dentry *dentry, *h_dentry;
+	struct au_finfo *finfo;
+	struct inode *h_inode;
+
+	FiMustWriteLock(file);
+
+	err = 0;
+	dentry = file->f_path.dentry;
+	AuDebugOn(IS_ERR_OR_NULL(dentry));
+	finfo = au_fi(file);
+	memset(&finfo->fi_htop, 0, sizeof(finfo->fi_htop));
+	atomic_set(&finfo->fi_mmapped, 0);
+	bindex = au_dbtop(dentry);
+	if (!h_file) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		err = vfsub_test_mntns(file->f_path.mnt, h_dentry->d_sb);
+		if (unlikely(err))
+			goto out;
+		h_file = au_h_open(dentry, bindex, flags, file, /*force_wr*/0);
+		if (IS_ERR(h_file)) {
+			err = PTR_ERR(h_file);
+			goto out;
+		}
+	} else {
+		h_dentry = h_file->f_path.dentry;
+		err = vfsub_test_mntns(file->f_path.mnt, h_dentry->d_sb);
+		if (unlikely(err))
+			goto out;
+		/* br ref is already inc-ed */
+	}
+
+	if ((flags & __O_TMPFILE)
+	    && !(flags & O_EXCL)) {
+		h_inode = file_inode(h_file);
+		spin_lock(&h_inode->i_lock);
+		h_inode->i_state |= I_LINKABLE;
+		spin_unlock(&h_inode->i_lock);
+	}
+	au_set_fbtop(file, bindex);
+	au_set_h_fptr(file, bindex, h_file);
+	au_update_figen(file);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+
+out:
+	return err;
+}
+
+static int aufs_open_nondir(struct inode *inode __maybe_unused,
+			    struct file *file)
+{
+	int err;
+	struct super_block *sb;
+	struct au_do_open_args args = {
+		.open	= au_do_open_nondir
+	};
+
+	AuDbg("%pD, f_flags 0x%x, f_mode 0x%x\n",
+	      file, vfsub_file_flags(file), file->f_mode);
+
+	sb = file->f_path.dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH);
+	err = au_do_open(file, &args);
+	si_read_unlock(sb);
+	return err;
+}
+
+int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file)
+{
+	struct au_finfo *finfo;
+	aufs_bindex_t bindex;
+
+	finfo = au_fi(file);
+	au_hbl_del(&finfo->fi_hlist,
+		   &au_sbi(file->f_path.dentry->d_sb)->si_files);
+	bindex = finfo->fi_btop;
+	if (bindex >= 0)
+		au_set_h_fptr(file, bindex, NULL);
+
+	au_finfo_fin(file);
+	return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_flush_nondir(struct file *file, fl_owner_t id)
+{
+	int err;
+	struct file *h_file;
+
+	err = 0;
+	h_file = au_hf_top(file);
+	if (h_file)
+		err = vfsub_flush(h_file, id);
+	return err;
+}
+
+static int aufs_flush_nondir(struct file *file, fl_owner_t id)
+{
+	return au_do_flush(file, id, au_do_flush_nondir);
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * read and write functions acquire [fdi]_rwsem once, but release before
+ * mmap_sem. This is because to stop a race condition between mmap(2).
+ * Releasing these aufs-rwsem should be safe, no branch-management (by keeping
+ * si_rwsem), no harmful copy-up should happen. Actually copy-up may happen in
+ * read functions after [fdi]_rwsem are released, but it should be harmless.
+ */
+
+/* Callers should call au_read_post() or fput() in the end */
+struct file *au_read_pre(struct file *file, int keep_fi, unsigned int lsc)
+{
+	struct file *h_file;
+	int err;
+
+	err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0, lsc);
+	if (!err) {
+		di_read_unlock(file->f_path.dentry, AuLock_IR);
+		h_file = au_hf_top(file);
+		get_file(h_file);
+		if (!keep_fi)
+			fi_read_unlock(file);
+	} else
+		h_file = ERR_PTR(err);
+
+	return h_file;
+}
+
+static void au_read_post(struct inode *inode, struct file *h_file)
+{
+	/* update without lock, I don't think it a problem */
+	fsstack_copy_attr_atime(inode, file_inode(h_file));
+	fput(h_file);
+}
+
+struct au_write_pre {
+	/* input */
+	unsigned int lsc;
+
+	/* output */
+	blkcnt_t blks;
+	aufs_bindex_t btop;
+};
+
+/*
+ * return with iinfo is write-locked
+ * callers should call au_write_post() or iinfo_write_unlock() + fput() in the
+ * end
+ */
+static struct file *au_write_pre(struct file *file, int do_ready,
+				 struct au_write_pre *wpre)
+{
+	struct file *h_file;
+	struct dentry *dentry;
+	int err;
+	unsigned int lsc;
+	struct au_pin pin;
+
+	lsc = 0;
+	if (wpre)
+		lsc = wpre->lsc;
+	err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1, lsc);
+	h_file = ERR_PTR(err);
+	if (unlikely(err))
+		goto out;
+
+	dentry = file->f_path.dentry;
+	if (do_ready) {
+		err = au_ready_to_write(file, -1, &pin);
+		if (unlikely(err)) {
+			h_file = ERR_PTR(err);
+			di_write_unlock(dentry);
+			goto out_fi;
+		}
+	}
+
+	di_downgrade_lock(dentry, /*flags*/0);
+	if (wpre)
+		wpre->btop = au_fbtop(file);
+	h_file = au_hf_top(file);
+	get_file(h_file);
+	if (wpre)
+		wpre->blks = file_inode(h_file)->i_blocks;
+	if (do_ready)
+		au_unpin(&pin);
+	di_read_unlock(dentry, /*flags*/0);
+
+out_fi:
+	fi_write_unlock(file);
+out:
+	return h_file;
+}
+
+static void au_write_post(struct inode *inode, struct file *h_file,
+			  struct au_write_pre *wpre, ssize_t written)
+{
+	struct inode *h_inode;
+
+	au_cpup_attr_timesizes(inode);
+	AuDebugOn(au_ibtop(inode) != wpre->btop);
+	h_inode = file_inode(h_file);
+	inode->i_mode = h_inode->i_mode;
+	ii_write_unlock(inode);
+	/* AuDbg("blks %llu, %llu\n", (u64)blks, (u64)h_inode->i_blocks); */
+	if (written > 0)
+		au_fhsm_wrote(inode->i_sb, wpre->btop,
+			      /*force*/h_inode->i_blocks > wpre->blks);
+	fput(h_file);
+}
+
+static ssize_t aufs_read(struct file *file, char __user *buf, size_t count,
+			 loff_t *ppos)
+{
+	ssize_t err;
+	struct inode *inode;
+	struct file *h_file;
+	struct super_block *sb;
+
+	inode = file_inode(file);
+	sb = inode->i_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+
+	h_file = au_read_pre(file, /*keep_fi*/0, /*lsc*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	/* filedata may be obsoleted by concurrent copyup, but no problem */
+	err = vfsub_read_u(h_file, buf, count, ppos);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+	au_read_post(inode, h_file);
+
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+/*
+ * todo: very ugly
+ * it locks both of i_mutex and si_rwsem for read in safe.
+ * if the plink maintenance mode continues forever (that is the problem),
+ * may loop forever.
+ */
+static void au_mtx_and_read_lock(struct inode *inode)
+{
+	int err;
+	struct super_block *sb = inode->i_sb;
+
+	while (1) {
+		inode_lock(inode);
+		err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+		if (!err)
+			break;
+		inode_unlock(inode);
+		si_read_lock(sb, AuLock_NOPLMW);
+		si_read_unlock(sb);
+	}
+}
+
+static ssize_t aufs_write(struct file *file, const char __user *ubuf,
+			  size_t count, loff_t *ppos)
+{
+	ssize_t err;
+	struct au_write_pre wpre;
+	struct inode *inode;
+	struct file *h_file;
+	char __user *buf = (char __user *)ubuf;
+
+	inode = file_inode(file);
+	au_mtx_and_read_lock(inode);
+
+	wpre.lsc = 0;
+	h_file = au_write_pre(file, /*do_ready*/1, &wpre);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	err = vfsub_write_u(h_file, buf, count, ppos);
+	au_write_post(inode, h_file, &wpre, err);
+
+out:
+	si_read_unlock(inode->i_sb);
+	inode_unlock(inode);
+	return err;
+}
+
+static ssize_t au_do_iter(struct file *h_file, int rw, struct kiocb *kio,
+			  struct iov_iter *iov_iter)
+{
+	ssize_t err;
+	struct file *file;
+	ssize_t (*iter)(struct kiocb *, struct iov_iter *);
+
+	err = security_file_permission(h_file, rw);
+	if (unlikely(err))
+		goto out;
+
+	err = -ENOSYS;	/* the branch doesn't have its ->(read|write)_iter() */
+	iter = NULL;
+	if (rw == MAY_READ)
+		iter = h_file->f_op->read_iter;
+	else if (rw == MAY_WRITE)
+		iter = h_file->f_op->write_iter;
+
+	file = kio->ki_filp;
+	kio->ki_filp = h_file;
+	if (iter) {
+		lockdep_off();
+		err = iter(kio, iov_iter);
+		lockdep_on();
+	} else
+		/* currently there is no such fs */
+		WARN_ON_ONCE(1);
+	kio->ki_filp = file;
+
+out:
+	return err;
+}
+
+static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
+{
+	ssize_t err;
+	struct file *file, *h_file;
+	struct inode *inode;
+	struct super_block *sb;
+
+	file = kio->ki_filp;
+	inode = file_inode(file);
+	sb = inode->i_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+
+	h_file = au_read_pre(file, /*keep_fi*/1, /*lsc*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	if (0 && au_test_loopback_kthread()) {
+		au_warn_loopback(h_file->f_path.dentry->d_sb);
+		if (file->f_mapping != h_file->f_mapping) {
+			file->f_mapping = h_file->f_mapping;
+			smp_mb(); /* unnecessary? */
+		}
+	}
+	fi_read_unlock(file);
+
+	err = au_do_iter(h_file, MAY_READ, kio, iov_iter);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+	au_read_post(inode, h_file);
+
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+static ssize_t aufs_write_iter(struct kiocb *kio, struct iov_iter *iov_iter)
+{
+	ssize_t err;
+	struct au_write_pre wpre;
+	struct inode *inode;
+	struct file *file, *h_file;
+
+	file = kio->ki_filp;
+	inode = file_inode(file);
+	au_mtx_and_read_lock(inode);
+
+	wpre.lsc = 0;
+	h_file = au_write_pre(file, /*do_ready*/1, &wpre);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	err = au_do_iter(h_file, MAY_WRITE, kio, iov_iter);
+	au_write_post(inode, h_file, &wpre, err);
+
+out:
+	si_read_unlock(inode->i_sb);
+	inode_unlock(inode);
+	return err;
+}
+
+static ssize_t aufs_splice_read(struct file *file, loff_t *ppos,
+				struct pipe_inode_info *pipe, size_t len,
+				unsigned int flags)
+{
+	ssize_t err;
+	struct file *h_file;
+	struct inode *inode;
+	struct super_block *sb;
+
+	inode = file_inode(file);
+	sb = inode->i_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+
+	h_file = au_read_pre(file, /*keep_fi*/0, /*lsc*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	err = vfsub_splice_to(h_file, ppos, pipe, len, flags);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+	au_read_post(inode, h_file);
+
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+static ssize_t
+aufs_splice_write(struct pipe_inode_info *pipe, struct file *file, loff_t *ppos,
+		  size_t len, unsigned int flags)
+{
+	ssize_t err;
+	struct au_write_pre wpre;
+	struct inode *inode;
+	struct file *h_file;
+
+	inode = file_inode(file);
+	au_mtx_and_read_lock(inode);
+
+	wpre.lsc = 0;
+	h_file = au_write_pre(file, /*do_ready*/1, &wpre);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	err = vfsub_splice_from(pipe, h_file, ppos, len, flags);
+	au_write_post(inode, h_file, &wpre, err);
+
+out:
+	si_read_unlock(inode->i_sb);
+	inode_unlock(inode);
+	return err;
+}
+
+static long aufs_fallocate(struct file *file, int mode, loff_t offset,
+			   loff_t len)
+{
+	long err;
+	struct au_write_pre wpre;
+	struct inode *inode;
+	struct file *h_file;
+
+	inode = file_inode(file);
+	au_mtx_and_read_lock(inode);
+
+	wpre.lsc = 0;
+	h_file = au_write_pre(file, /*do_ready*/1, &wpre);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	lockdep_off();
+	err = vfs_fallocate(h_file, mode, offset, len);
+	lockdep_on();
+	au_write_post(inode, h_file, &wpre, /*written*/1);
+
+out:
+	si_read_unlock(inode->i_sb);
+	inode_unlock(inode);
+	return err;
+}
+
+static ssize_t aufs_copy_file_range(struct file *src, loff_t src_pos,
+				    struct file *dst, loff_t dst_pos,
+				    size_t len, unsigned int flags)
+{
+	ssize_t err;
+	struct au_write_pre wpre;
+	enum { SRC, DST };
+	struct {
+		struct inode *inode;
+		struct file *h_file;
+		struct super_block *h_sb;
+	} a[2];
+#define a_src	a[SRC]
+#define a_dst	a[DST]
+
+	err = -EINVAL;
+	a_src.inode = file_inode(src);
+	if (unlikely(!S_ISREG(a_src.inode->i_mode)))
+		goto out;
+	a_dst.inode = file_inode(dst);
+	if (unlikely(!S_ISREG(a_dst.inode->i_mode)))
+		goto out;
+
+	au_mtx_and_read_lock(a_dst.inode);
+	/*
+	 * in order to match the order in di_write_lock2_{child,parent}(),
+	 * use f_path.dentry for this comparison.
+	 */
+	if (src->f_path.dentry < dst->f_path.dentry) {
+		a_src.h_file = au_read_pre(src, /*keep_fi*/1, AuLsc_FI_1);
+		err = PTR_ERR(a_src.h_file);
+		if (IS_ERR(a_src.h_file))
+			goto out_si;
+
+		wpre.lsc = AuLsc_FI_2;
+		a_dst.h_file = au_write_pre(dst, /*do_ready*/1, &wpre);
+		err = PTR_ERR(a_dst.h_file);
+		if (IS_ERR(a_dst.h_file)) {
+			au_read_post(a_src.inode, a_src.h_file);
+			goto out_si;
+		}
+	} else {
+		wpre.lsc = AuLsc_FI_1;
+		a_dst.h_file = au_write_pre(dst, /*do_ready*/1, &wpre);
+		err = PTR_ERR(a_dst.h_file);
+		if (IS_ERR(a_dst.h_file))
+			goto out_si;
+
+		a_src.h_file = au_read_pre(src, /*keep_fi*/1, AuLsc_FI_2);
+		err = PTR_ERR(a_src.h_file);
+		if (IS_ERR(a_src.h_file)) {
+			au_write_post(a_dst.inode, a_dst.h_file, &wpre,
+				      /*written*/0);
+			goto out_si;
+		}
+	}
+
+	err = -EXDEV;
+	a_src.h_sb = file_inode(a_src.h_file)->i_sb;
+	a_dst.h_sb = file_inode(a_dst.h_file)->i_sb;
+	if (unlikely(a_src.h_sb != a_dst.h_sb)) {
+		AuDbgFile(src);
+		AuDbgFile(dst);
+		goto out_file;
+	}
+
+	err = vfsub_copy_file_range(a_src.h_file, src_pos, a_dst.h_file,
+				    dst_pos, len, flags);
+
+out_file:
+	au_write_post(a_dst.inode, a_dst.h_file, &wpre, err);
+	fi_read_unlock(src);
+	au_read_post(a_src.inode, a_src.h_file);
+out_si:
+	si_read_unlock(a_dst.inode->i_sb);
+	inode_unlock(a_dst.inode);
+out:
+	return err;
+#undef a_src
+#undef a_dst
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * The locking order around current->mmap_sem.
+ * - in most and regular cases
+ *   file I/O syscall -- aufs_read() or something
+ *	-- si_rwsem for read -- mmap_sem
+ *	(Note that [fdi]i_rwsem are released before mmap_sem).
+ * - in mmap case
+ *   mmap(2) -- mmap_sem -- aufs_mmap() -- si_rwsem for read -- [fdi]i_rwsem
+ * This AB-BA order is definitely bad, but is not a problem since "si_rwsem for
+ * read" allows multiple processes to acquire it and [fdi]i_rwsem are not held
+ * in file I/O. Aufs needs to stop lockdep in aufs_mmap() though.
+ * It means that when aufs acquires si_rwsem for write, the process should never
+ * acquire mmap_sem.
+ *
+ * Actually aufs_iterate() holds [fdi]i_rwsem before mmap_sem, but this is not a
+ * problem either since any directory is not able to be mmap-ed.
+ * The similar scenario is applied to aufs_readlink() too.
+ */
+
+#if 0 /* stop calling security_file_mmap() */
+/* cf. linux/include/linux/mman.h: calc_vm_prot_bits() */
+#define AuConv_VM_PROT(f, b)	_calc_vm_trans(f, VM_##b, PROT_##b)
+
+static unsigned long au_arch_prot_conv(unsigned long flags)
+{
+	/* currently ppc64 only */
+#ifdef CONFIG_PPC64
+	/* cf. linux/arch/powerpc/include/asm/mman.h */
+	AuDebugOn(arch_calc_vm_prot_bits(-1) != VM_SAO);
+	return AuConv_VM_PROT(flags, SAO);
+#else
+	AuDebugOn(arch_calc_vm_prot_bits(-1));
+	return 0;
+#endif
+}
+
+static unsigned long au_prot_conv(unsigned long flags)
+{
+	return AuConv_VM_PROT(flags, READ)
+		| AuConv_VM_PROT(flags, WRITE)
+		| AuConv_VM_PROT(flags, EXEC)
+		| au_arch_prot_conv(flags);
+}
+
+/* cf. linux/include/linux/mman.h: calc_vm_flag_bits() */
+#define AuConv_VM_MAP(f, b)	_calc_vm_trans(f, VM_##b, MAP_##b)
+
+static unsigned long au_flag_conv(unsigned long flags)
+{
+	return AuConv_VM_MAP(flags, GROWSDOWN)
+		| AuConv_VM_MAP(flags, DENYWRITE)
+		| AuConv_VM_MAP(flags, LOCKED);
+}
+#endif
+
+static int aufs_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	int err;
+	const unsigned char wlock
+		= (file->f_mode & FMODE_WRITE) && (vma->vm_flags & VM_SHARED);
+	struct super_block *sb;
+	struct file *h_file;
+	struct inode *inode;
+
+	AuDbgVmRegion(file, vma);
+
+	inode = file_inode(file);
+	sb = inode->i_sb;
+	lockdep_off();
+	si_read_lock(sb, AuLock_NOPLMW);
+
+	h_file = au_write_pre(file, wlock, /*wpre*/NULL);
+	lockdep_on();
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	err = 0;
+	au_set_mmapped(file);
+	au_vm_file_reset(vma, h_file);
+	/*
+	 * we cannot call security_mmap_file() here since it may acquire
+	 * mmap_sem or i_mutex.
+	 *
+	 * err = security_mmap_file(h_file, au_prot_conv(vma->vm_flags),
+	 *			 au_flag_conv(vma->vm_flags));
+	 */
+	if (!err)
+		err = call_mmap(h_file, vma);
+	if (!err) {
+		au_vm_prfile_set(vma, file);
+		fsstack_copy_attr_atime(inode, file_inode(h_file));
+		goto out_fput; /* success */
+	}
+	au_unset_mmapped(file);
+	au_vm_file_reset(vma, file);
+
+out_fput:
+	lockdep_off();
+	ii_write_unlock(inode);
+	lockdep_on();
+	fput(h_file);
+out:
+	lockdep_off();
+	si_read_unlock(sb);
+	lockdep_on();
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_fsync_nondir(struct file *file, loff_t start, loff_t end,
+			     int datasync)
+{
+	int err;
+	struct au_write_pre wpre;
+	struct inode *inode;
+	struct file *h_file;
+
+	err = 0; /* -EBADF; */ /* posix? */
+	if (unlikely(!(file->f_mode & FMODE_WRITE)))
+		goto out;
+
+	inode = file_inode(file);
+	au_mtx_and_read_lock(inode);
+
+	wpre.lsc = 0;
+	h_file = au_write_pre(file, /*do_ready*/1, &wpre);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out_unlock;
+
+	err = vfsub_fsync(h_file, &h_file->f_path, datasync);
+	au_write_post(inode, h_file, &wpre, /*written*/0);
+
+out_unlock:
+	si_read_unlock(inode->i_sb);
+	inode_unlock(inode);
+out:
+	return err;
+}
+
+static int aufs_fasync(int fd, struct file *file, int flag)
+{
+	int err;
+	struct file *h_file;
+	struct super_block *sb;
+
+	sb = file->f_path.dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+
+	h_file = au_read_pre(file, /*keep_fi*/0, /*lsc*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	if (h_file->f_op->fasync)
+		err = h_file->f_op->fasync(fd, h_file, flag);
+	fput(h_file); /* instead of au_read_post() */
+
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+static int aufs_setfl(struct file *file, unsigned long arg)
+{
+	int err;
+	struct file *h_file;
+	struct super_block *sb;
+
+	sb = file->f_path.dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+
+	h_file = au_read_pre(file, /*keep_fi*/0, /*lsc*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out;
+
+	/* stop calling h_file->fasync */
+	arg |= vfsub_file_flags(file) & FASYNC;
+	err = setfl(/*unused fd*/-1, h_file, arg);
+	fput(h_file); /* instead of au_read_post() */
+
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* no one supports this operation, currently */
+#if 0 /* reserved for future use */
+static ssize_t aufs_sendpage(struct file *file, struct page *page, int offset,
+			     size_t len, loff_t *pos, int more)
+{
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+const struct file_operations aufs_file_fop = {
+	.owner		= THIS_MODULE,
+
+	.llseek		= default_llseek,
+
+	.read		= aufs_read,
+	.write		= aufs_write,
+	.read_iter	= aufs_read_iter,
+	.write_iter	= aufs_write_iter,
+
+#ifdef CONFIG_AUFS_POLL
+	.poll		= aufs_poll,
+#endif
+	.unlocked_ioctl	= aufs_ioctl_nondir,
+#ifdef CONFIG_COMPAT
+	.compat_ioctl	= aufs_compat_ioctl_nondir,
+#endif
+	.mmap		= aufs_mmap,
+	.open		= aufs_open_nondir,
+	.flush		= aufs_flush_nondir,
+	.release	= aufs_release_nondir,
+	.fsync		= aufs_fsync_nondir,
+	.fasync		= aufs_fasync,
+	/* .sendpage	= aufs_sendpage, */
+	.setfl		= aufs_setfl,
+	.splice_write	= aufs_splice_write,
+	.splice_read	= aufs_splice_read,
+#if 0 /* reserved for future use */
+	.aio_splice_write = aufs_aio_splice_write,
+	.aio_splice_read  = aufs_aio_splice_read,
+#endif
+	.fallocate	= aufs_fallocate,
+	.copy_file_range = aufs_copy_file_range
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/fhsm.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/fhsm.c
@@ -0,0 +1,427 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2011-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+/*
+ * File-based Hierarchy Storage Management
+ */
+
+#include <linux/anon_inodes.h>
+#include <linux/poll.h>
+#include <linux/seq_file.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+static aufs_bindex_t au_fhsm_bottom(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+
+	SiMustAnyLock(sb);
+
+	sbinfo = au_sbi(sb);
+	fhsm = &sbinfo->si_fhsm;
+	AuDebugOn(!fhsm);
+	return fhsm->fhsm_bottom;
+}
+
+void au_fhsm_set_bottom(struct super_block *sb, aufs_bindex_t bindex)
+{
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	fhsm = &sbinfo->si_fhsm;
+	AuDebugOn(!fhsm);
+	fhsm->fhsm_bottom = bindex;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_fhsm_test_jiffy(struct au_sbinfo *sbinfo, struct au_branch *br)
+{
+	struct au_br_fhsm *bf;
+
+	bf = br->br_fhsm;
+	MtxMustLock(&bf->bf_lock);
+
+	return !bf->bf_readable
+		|| time_after(jiffies,
+			      bf->bf_jiffy + sbinfo->si_fhsm.fhsm_expire);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_fhsm_notify(struct super_block *sb, int val)
+{
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+
+	SiMustAnyLock(sb);
+
+	sbinfo = au_sbi(sb);
+	fhsm = &sbinfo->si_fhsm;
+	if (au_fhsm_pid(fhsm)
+	    && atomic_read(&fhsm->fhsm_readable) != -1) {
+		atomic_set(&fhsm->fhsm_readable, val);
+		if (val)
+			wake_up(&fhsm->fhsm_wqh);
+	}
+}
+
+static int au_fhsm_stfs(struct super_block *sb, aufs_bindex_t bindex,
+			struct aufs_stfs *rstfs, int do_lock, int do_notify)
+{
+	int err;
+	struct au_branch *br;
+	struct au_br_fhsm *bf;
+
+	br = au_sbr(sb, bindex);
+	AuDebugOn(au_br_rdonly(br));
+	bf = br->br_fhsm;
+	AuDebugOn(!bf);
+
+	if (do_lock)
+		mutex_lock(&bf->bf_lock);
+	else
+		MtxMustLock(&bf->bf_lock);
+
+	/* sb->s_root for NFS is unreliable */
+	err = au_br_stfs(br, &bf->bf_stfs);
+	if (unlikely(err)) {
+		AuErr1("FHSM failed (%d), b%d, ignored.\n", bindex, err);
+		goto out;
+	}
+
+	bf->bf_jiffy = jiffies;
+	bf->bf_readable = 1;
+	if (do_notify)
+		au_fhsm_notify(sb, /*val*/1);
+	if (rstfs)
+		*rstfs = bf->bf_stfs;
+
+out:
+	if (do_lock)
+		mutex_unlock(&bf->bf_lock);
+	au_fhsm_notify(sb, /*val*/1);
+
+	return err;
+}
+
+void au_fhsm_wrote(struct super_block *sb, aufs_bindex_t bindex, int force)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+	struct au_branch *br;
+	struct au_br_fhsm *bf;
+
+	AuDbg("b%d, force %d\n", bindex, force);
+	SiMustAnyLock(sb);
+
+	sbinfo = au_sbi(sb);
+	fhsm = &sbinfo->si_fhsm;
+	if (!au_ftest_si(sbinfo, FHSM)
+	    || fhsm->fhsm_bottom == bindex)
+		return;
+
+	br = au_sbr(sb, bindex);
+	bf = br->br_fhsm;
+	AuDebugOn(!bf);
+	mutex_lock(&bf->bf_lock);
+	if (force
+	    || au_fhsm_pid(fhsm)
+	    || au_fhsm_test_jiffy(sbinfo, br))
+		err = au_fhsm_stfs(sb, bindex, /*rstfs*/NULL, /*do_lock*/0,
+				  /*do_notify*/1);
+	mutex_unlock(&bf->bf_lock);
+}
+
+void au_fhsm_wrote_all(struct super_block *sb, int force)
+{
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+
+	/* exclude the bottom */
+	bbot = au_fhsm_bottom(sb);
+	for (bindex = 0; bindex < bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (au_br_fhsm(br->br_perm))
+			au_fhsm_wrote(sb, bindex, force);
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+static __poll_t au_fhsm_poll(struct file *file, struct poll_table_struct *wait)
+{
+	__poll_t mask;
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+
+	mask = 0;
+	sbinfo = file->private_data;
+	fhsm = &sbinfo->si_fhsm;
+	poll_wait(file, &fhsm->fhsm_wqh, wait);
+	if (atomic_read(&fhsm->fhsm_readable))
+		mask = EPOLLIN /* | EPOLLRDNORM */;
+
+	if (!mask)
+		AuDbg("mask 0x%x\n", mask);
+	return mask;
+}
+
+static int au_fhsm_do_read_one(struct aufs_stbr __user *stbr,
+			      struct aufs_stfs *stfs, __s16 brid)
+{
+	int err;
+
+	err = copy_to_user(&stbr->stfs, stfs, sizeof(*stfs));
+	if (!err)
+		err = __put_user(brid, &stbr->brid);
+	if (unlikely(err))
+		err = -EFAULT;
+
+	return err;
+}
+
+static ssize_t au_fhsm_do_read(struct super_block *sb,
+			       struct aufs_stbr __user *stbr, size_t count)
+{
+	ssize_t err;
+	int nstbr;
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+	struct au_br_fhsm *bf;
+
+	/* except the bottom branch */
+	err = 0;
+	nstbr = 0;
+	bbot = au_fhsm_bottom(sb);
+	for (bindex = 0; !err && bindex < bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (!au_br_fhsm(br->br_perm))
+			continue;
+
+		bf = br->br_fhsm;
+		mutex_lock(&bf->bf_lock);
+		if (bf->bf_readable) {
+			err = -EFAULT;
+			if (count >= sizeof(*stbr))
+				err = au_fhsm_do_read_one(stbr++, &bf->bf_stfs,
+							  br->br_id);
+			if (!err) {
+				bf->bf_readable = 0;
+				count -= sizeof(*stbr);
+				nstbr++;
+			}
+		}
+		mutex_unlock(&bf->bf_lock);
+	}
+	if (!err)
+		err = sizeof(*stbr) * nstbr;
+
+	return err;
+}
+
+static ssize_t au_fhsm_read(struct file *file, char __user *buf, size_t count,
+			   loff_t *pos)
+{
+	ssize_t err;
+	int readable;
+	aufs_bindex_t nfhsm, bindex, bbot;
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+	struct au_branch *br;
+	struct super_block *sb;
+
+	err = 0;
+	sbinfo = file->private_data;
+	fhsm = &sbinfo->si_fhsm;
+need_data:
+	spin_lock_irq(&fhsm->fhsm_wqh.lock);
+	if (!atomic_read(&fhsm->fhsm_readable)) {
+		if (vfsub_file_flags(file) & O_NONBLOCK)
+			err = -EAGAIN;
+		else
+			err = wait_event_interruptible_locked_irq
+				(fhsm->fhsm_wqh,
+				 atomic_read(&fhsm->fhsm_readable));
+	}
+	spin_unlock_irq(&fhsm->fhsm_wqh.lock);
+	if (unlikely(err))
+		goto out;
+
+	/* sb may already be dead */
+	au_rw_read_lock(&sbinfo->si_rwsem);
+	readable = atomic_read(&fhsm->fhsm_readable);
+	if (readable > 0) {
+		sb = sbinfo->si_sb;
+		AuDebugOn(!sb);
+		/* exclude the bottom branch */
+		nfhsm = 0;
+		bbot = au_fhsm_bottom(sb);
+		for (bindex = 0; bindex < bbot; bindex++) {
+			br = au_sbr(sb, bindex);
+			if (au_br_fhsm(br->br_perm))
+				nfhsm++;
+		}
+		err = -EMSGSIZE;
+		if (nfhsm * sizeof(struct aufs_stbr) <= count) {
+			atomic_set(&fhsm->fhsm_readable, 0);
+			err = au_fhsm_do_read(sbinfo->si_sb, (void __user *)buf,
+					     count);
+		}
+	}
+	au_rw_read_unlock(&sbinfo->si_rwsem);
+	if (!readable)
+		goto need_data;
+
+out:
+	return err;
+}
+
+static int au_fhsm_release(struct inode *inode, struct file *file)
+{
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+
+	/* sb may already be dead */
+	sbinfo = file->private_data;
+	fhsm = &sbinfo->si_fhsm;
+	spin_lock(&fhsm->fhsm_spin);
+	fhsm->fhsm_pid = 0;
+	spin_unlock(&fhsm->fhsm_spin);
+	kobject_put(&sbinfo->si_kobj);
+
+	return 0;
+}
+
+static const struct file_operations au_fhsm_fops = {
+	.owner		= THIS_MODULE,
+	.llseek		= noop_llseek,
+	.read		= au_fhsm_read,
+	.poll		= au_fhsm_poll,
+	.release	= au_fhsm_release
+};
+
+int au_fhsm_fd(struct super_block *sb, int oflags)
+{
+	int err, fd;
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+
+	err = -EPERM;
+	if (unlikely(!capable(CAP_SYS_ADMIN)))
+		goto out;
+
+	err = -EINVAL;
+	if (unlikely(oflags & ~(O_CLOEXEC | O_NONBLOCK)))
+		goto out;
+
+	err = 0;
+	sbinfo = au_sbi(sb);
+	fhsm = &sbinfo->si_fhsm;
+	spin_lock(&fhsm->fhsm_spin);
+	if (!fhsm->fhsm_pid)
+		fhsm->fhsm_pid = current->pid;
+	else
+		err = -EBUSY;
+	spin_unlock(&fhsm->fhsm_spin);
+	if (unlikely(err))
+		goto out;
+
+	oflags |= O_RDONLY;
+	/* oflags |= FMODE_NONOTIFY; */
+	fd = anon_inode_getfd("[aufs_fhsm]", &au_fhsm_fops, sbinfo, oflags);
+	err = fd;
+	if (unlikely(fd < 0))
+		goto out_pid;
+
+	/* succeed regardless 'fhsm' status */
+	kobject_get(&sbinfo->si_kobj);
+	si_noflush_read_lock(sb);
+	if (au_ftest_si(sbinfo, FHSM))
+		au_fhsm_wrote_all(sb, /*force*/0);
+	si_read_unlock(sb);
+	goto out; /* success */
+
+out_pid:
+	spin_lock(&fhsm->fhsm_spin);
+	fhsm->fhsm_pid = 0;
+	spin_unlock(&fhsm->fhsm_spin);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_fhsm_br_alloc(struct au_branch *br)
+{
+	int err;
+
+	err = 0;
+	br->br_fhsm = kmalloc(sizeof(*br->br_fhsm), GFP_NOFS);
+	if (br->br_fhsm)
+		au_br_fhsm_init(br->br_fhsm);
+	else
+		err = -ENOMEM;
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_fhsm_fin(struct super_block *sb)
+{
+	au_fhsm_notify(sb, /*val*/-1);
+}
+
+void au_fhsm_init(struct au_sbinfo *sbinfo)
+{
+	struct au_fhsm *fhsm;
+
+	fhsm = &sbinfo->si_fhsm;
+	spin_lock_init(&fhsm->fhsm_spin);
+	init_waitqueue_head(&fhsm->fhsm_wqh);
+	atomic_set(&fhsm->fhsm_readable, 0);
+	fhsm->fhsm_expire
+		= msecs_to_jiffies(AUFS_FHSM_CACHE_DEF_SEC * MSEC_PER_SEC);
+	fhsm->fhsm_bottom = -1;
+}
+
+void au_fhsm_set(struct au_sbinfo *sbinfo, unsigned int sec)
+{
+	sbinfo->si_fhsm.fhsm_expire
+		= msecs_to_jiffies(sec * MSEC_PER_SEC);
+}
+
+void au_fhsm_show(struct seq_file *seq, struct au_sbinfo *sbinfo)
+{
+	unsigned int u;
+
+	if (!au_ftest_si(sbinfo, FHSM))
+		return;
+
+	u = jiffies_to_msecs(sbinfo->si_fhsm.fhsm_expire) / MSEC_PER_SEC;
+	if (u != AUFS_FHSM_CACHE_DEF_SEC)
+		seq_printf(seq, ",fhsm_sec=%u", u);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/file.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/file.c
@@ -0,0 +1,863 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * handling file/dir, and address_space operation
+ */
+
+#ifdef CONFIG_AUFS_DEBUG
+#include <linux/migrate.h>
+#endif
+#include <linux/pagemap.h>
+#include "aufs.h"
+
+/* drop flags for writing */
+unsigned int au_file_roflags(unsigned int flags)
+{
+	flags &= ~(O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_TRUNC);
+	flags |= O_RDONLY | O_NOATIME;
+	return flags;
+}
+
+/* common functions to regular file and dir */
+struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
+		       struct file *file, int force_wr)
+{
+	struct file *h_file;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct path h_path;
+	int err;
+
+	/* a race condition can happen between open and unlink/rmdir */
+	h_file = ERR_PTR(-ENOENT);
+	h_dentry = au_h_dptr(dentry, bindex);
+	if (au_test_nfsd() && (!h_dentry || d_is_negative(h_dentry)))
+		goto out;
+	h_inode = d_inode(h_dentry);
+	spin_lock(&h_dentry->d_lock);
+	err = (!d_unhashed(dentry) && d_unlinked(h_dentry))
+		/* || !d_inode(dentry)->i_nlink */
+		;
+	spin_unlock(&h_dentry->d_lock);
+	if (unlikely(err))
+		goto out;
+
+	sb = dentry->d_sb;
+	br = au_sbr(sb, bindex);
+	err = au_br_test_oflag(flags, br);
+	h_file = ERR_PTR(err);
+	if (unlikely(err))
+		goto out;
+
+	/* drop flags for writing */
+	if (au_test_ro(sb, bindex, d_inode(dentry))) {
+		if (force_wr && !(flags & O_WRONLY))
+			force_wr = 0;
+		flags = au_file_roflags(flags);
+		if (force_wr) {
+			h_file = ERR_PTR(-EROFS);
+			flags = au_file_roflags(flags);
+			if (unlikely(vfsub_native_ro(h_inode)
+				     || IS_APPEND(h_inode)))
+				goto out;
+			flags &= ~O_ACCMODE;
+			flags |= O_WRONLY;
+		}
+	}
+	flags &= ~O_CREAT;
+	au_lcnt_inc(&br->br_nfiles);
+	h_path.dentry = h_dentry;
+	h_path.mnt = au_br_mnt(br);
+	h_file = vfsub_dentry_open(&h_path, flags);
+	if (IS_ERR(h_file))
+		goto out_br;
+
+	if (flags & __FMODE_EXEC) {
+		err = deny_write_access(h_file);
+		if (unlikely(err)) {
+			fput(h_file);
+			h_file = ERR_PTR(err);
+			goto out_br;
+		}
+	}
+	fsnotify_open(h_file);
+	goto out; /* success */
+
+out_br:
+	au_lcnt_dec(&br->br_nfiles);
+out:
+	return h_file;
+}
+
+static int au_cmoo(struct dentry *dentry)
+{
+	int err, cmoo, matched;
+	unsigned int udba;
+	struct path h_path;
+	struct au_pin pin;
+	struct au_cp_generic cpg = {
+		.dentry	= dentry,
+		.bdst	= -1,
+		.bsrc	= -1,
+		.len	= -1,
+		.pin	= &pin,
+		.flags	= AuCpup_DTIME | AuCpup_HOPEN
+	};
+	struct inode *delegated;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+	struct au_fhsm *fhsm;
+	pid_t pid;
+	struct au_branch *br;
+	struct dentry *parent;
+	struct au_hinode *hdir;
+
+	DiMustWriteLock(dentry);
+	IiMustWriteLock(d_inode(dentry));
+
+	err = 0;
+	if (IS_ROOT(dentry))
+		goto out;
+	cpg.bsrc = au_dbtop(dentry);
+	if (!cpg.bsrc)
+		goto out;
+
+	sb = dentry->d_sb;
+	sbinfo = au_sbi(sb);
+	fhsm = &sbinfo->si_fhsm;
+	pid = au_fhsm_pid(fhsm);
+	rcu_read_lock();
+	matched = (pid
+		   && (current->pid == pid
+		       || rcu_dereference(current->real_parent)->pid == pid));
+	rcu_read_unlock();
+	if (matched)
+		goto out;
+
+	br = au_sbr(sb, cpg.bsrc);
+	cmoo = au_br_cmoo(br->br_perm);
+	if (!cmoo)
+		goto out;
+	if (!d_is_reg(dentry))
+		cmoo &= AuBrAttr_COO_ALL;
+	if (!cmoo)
+		goto out;
+
+	parent = dget_parent(dentry);
+	di_write_lock_parent(parent);
+	err = au_wbr_do_copyup_bu(dentry, cpg.bsrc - 1);
+	cpg.bdst = err;
+	if (unlikely(err < 0)) {
+		err = 0;	/* there is no upper writable branch */
+		goto out_dgrade;
+	}
+	AuDbg("bsrc %d, bdst %d\n", cpg.bsrc, cpg.bdst);
+
+	/* do not respect the coo attrib for the target branch */
+	err = au_cpup_dirs(dentry, cpg.bdst);
+	if (unlikely(err))
+		goto out_dgrade;
+
+	di_downgrade_lock(parent, AuLock_IR);
+	udba = au_opt_udba(sb);
+	err = au_pin(&pin, dentry, cpg.bdst, udba,
+		     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+	if (unlikely(err))
+		goto out_parent;
+
+	err = au_sio_cpup_simple(&cpg);
+	au_unpin(&pin);
+	if (unlikely(err))
+		goto out_parent;
+	if (!(cmoo & AuBrWAttr_MOO))
+		goto out_parent; /* success */
+
+	err = au_pin(&pin, dentry, cpg.bsrc, udba,
+		     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+	if (unlikely(err))
+		goto out_parent;
+
+	h_path.mnt = au_br_mnt(br);
+	h_path.dentry = au_h_dptr(dentry, cpg.bsrc);
+	hdir = au_hi(d_inode(parent), cpg.bsrc);
+	delegated = NULL;
+	err = vfsub_unlink(hdir->hi_inode, &h_path, &delegated, /*force*/1);
+	au_unpin(&pin);
+	/* todo: keep h_dentry or not? */
+	if (unlikely(err == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal unlink\n");
+		iput(delegated);
+	}
+	if (unlikely(err)) {
+		pr_err("unlink %pd after coo failed (%d), ignored\n",
+		       dentry, err);
+		err = 0;
+	}
+	goto out_parent; /* success */
+
+out_dgrade:
+	di_downgrade_lock(parent, AuLock_IR);
+out_parent:
+	di_read_unlock(parent, AuLock_IR);
+	dput(parent);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_do_open(struct file *file, struct au_do_open_args *args)
+{
+	int err, aopen = args->aopen;
+	struct dentry *dentry;
+	struct au_finfo *finfo;
+
+	if (!aopen)
+		err = au_finfo_init(file, args->fidir);
+	else {
+		lockdep_off();
+		err = au_finfo_init(file, args->fidir);
+		lockdep_on();
+	}
+	if (unlikely(err))
+		goto out;
+
+	dentry = file->f_path.dentry;
+	AuDebugOn(IS_ERR_OR_NULL(dentry));
+	di_write_lock_child(dentry);
+	err = au_cmoo(dentry);
+	di_downgrade_lock(dentry, AuLock_IR);
+	if (!err) {
+		if (!aopen)
+			err = args->open(file, vfsub_file_flags(file), NULL);
+		else {
+			lockdep_off();
+			err = args->open(file, vfsub_file_flags(file),
+					 args->h_file);
+			lockdep_on();
+		}
+	}
+	di_read_unlock(dentry, AuLock_IR);
+
+	finfo = au_fi(file);
+	if (!err) {
+		finfo->fi_file = file;
+		au_hbl_add(&finfo->fi_hlist,
+			   &au_sbi(file->f_path.dentry->d_sb)->si_files);
+	}
+	if (!aopen)
+		fi_write_unlock(file);
+	else {
+		lockdep_off();
+		fi_write_unlock(file);
+		lockdep_on();
+	}
+	if (unlikely(err)) {
+		finfo->fi_hdir = NULL;
+		au_finfo_fin(file);
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_reopen_nondir(struct file *file)
+{
+	int err;
+	aufs_bindex_t btop;
+	struct dentry *dentry;
+	struct au_branch *br;
+	struct file *h_file, *h_file_tmp;
+
+	dentry = file->f_path.dentry;
+	btop = au_dbtop(dentry);
+	br = au_sbr(dentry->d_sb, btop);
+	h_file_tmp = NULL;
+	if (au_fbtop(file) == btop) {
+		h_file = au_hf_top(file);
+		if (file->f_mode == h_file->f_mode)
+			return 0; /* success */
+		h_file_tmp = h_file;
+		get_file(h_file_tmp);
+		au_lcnt_inc(&br->br_nfiles);
+		au_set_h_fptr(file, btop, NULL);
+	}
+	AuDebugOn(au_fi(file)->fi_hdir);
+	/*
+	 * it can happen
+	 * file exists on both of rw and ro
+	 * open --> dbtop and fbtop are both 0
+	 * prepend a branch as rw, "rw" become ro
+	 * remove rw/file
+	 * delete the top branch, "rw" becomes rw again
+	 *	--> dbtop is 1, fbtop is still 0
+	 * write --> fbtop is 0 but dbtop is 1
+	 */
+	/* AuDebugOn(au_fbtop(file) < btop); */
+
+	h_file = au_h_open(dentry, btop, vfsub_file_flags(file) & ~O_TRUNC,
+			   file, /*force_wr*/0);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file)) {
+		if (h_file_tmp) {
+			/* revert */
+			au_set_h_fptr(file, btop, h_file_tmp);
+			h_file_tmp = NULL;
+		}
+		goto out; /* todo: close all? */
+	}
+
+	err = 0;
+	au_set_fbtop(file, btop);
+	au_set_h_fptr(file, btop, h_file);
+	au_update_figen(file);
+	/* todo: necessary? */
+	/* file->f_ra = h_file->f_ra; */
+
+out:
+	if (h_file_tmp) {
+		fput(h_file_tmp);
+		au_lcnt_dec(&br->br_nfiles);
+	}
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_reopen_wh(struct file *file, aufs_bindex_t btgt,
+			struct dentry *hi_wh)
+{
+	int err;
+	aufs_bindex_t btop;
+	struct au_dinfo *dinfo;
+	struct dentry *h_dentry;
+	struct au_hdentry *hdp;
+
+	dinfo = au_di(file->f_path.dentry);
+	AuRwMustWriteLock(&dinfo->di_rwsem);
+
+	btop = dinfo->di_btop;
+	dinfo->di_btop = btgt;
+	hdp = au_hdentry(dinfo, btgt);
+	h_dentry = hdp->hd_dentry;
+	hdp->hd_dentry = hi_wh;
+	err = au_reopen_nondir(file);
+	hdp->hd_dentry = h_dentry;
+	dinfo->di_btop = btop;
+
+	return err;
+}
+
+static int au_ready_to_write_wh(struct file *file, loff_t len,
+				aufs_bindex_t bcpup, struct au_pin *pin)
+{
+	int err;
+	struct inode *inode, *h_inode;
+	struct dentry *h_dentry, *hi_wh;
+	struct au_cp_generic cpg = {
+		.dentry	= file->f_path.dentry,
+		.bdst	= bcpup,
+		.bsrc	= -1,
+		.len	= len,
+		.pin	= pin
+	};
+
+	au_update_dbtop(cpg.dentry);
+	inode = d_inode(cpg.dentry);
+	h_inode = NULL;
+	if (au_dbtop(cpg.dentry) <= bcpup
+	    && au_dbbot(cpg.dentry) >= bcpup) {
+		h_dentry = au_h_dptr(cpg.dentry, bcpup);
+		if (h_dentry && d_is_positive(h_dentry))
+			h_inode = d_inode(h_dentry);
+	}
+	hi_wh = au_hi_wh(inode, bcpup);
+	if (!hi_wh && !h_inode)
+		err = au_sio_cpup_wh(&cpg, file);
+	else
+		/* already copied-up after unlink */
+		err = au_reopen_wh(file, bcpup, hi_wh);
+
+	if (!err
+	    && (inode->i_nlink > 1
+		|| (inode->i_state & I_LINKABLE))
+	    && au_opt_test(au_mntflags(cpg.dentry->d_sb), PLINK))
+		au_plink_append(inode, bcpup, au_h_dptr(cpg.dentry, bcpup));
+
+	return err;
+}
+
+/*
+ * prepare the @file for writing.
+ */
+int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
+{
+	int err;
+	aufs_bindex_t dbtop;
+	struct dentry *parent;
+	struct inode *inode;
+	struct super_block *sb;
+	struct file *h_file;
+	struct au_cp_generic cpg = {
+		.dentry	= file->f_path.dentry,
+		.bdst	= -1,
+		.bsrc	= -1,
+		.len	= len,
+		.pin	= pin,
+		.flags	= AuCpup_DTIME
+	};
+
+	sb = cpg.dentry->d_sb;
+	inode = d_inode(cpg.dentry);
+	cpg.bsrc = au_fbtop(file);
+	err = au_test_ro(sb, cpg.bsrc, inode);
+	if (!err && (au_hf_top(file)->f_mode & FMODE_WRITE)) {
+		err = au_pin(pin, cpg.dentry, cpg.bsrc, AuOpt_UDBA_NONE,
+			     /*flags*/0);
+		goto out;
+	}
+
+	/* need to cpup or reopen */
+	parent = dget_parent(cpg.dentry);
+	di_write_lock_parent(parent);
+	err = AuWbrCopyup(au_sbi(sb), cpg.dentry);
+	cpg.bdst = err;
+	if (unlikely(err < 0))
+		goto out_dgrade;
+	err = 0;
+
+	if (!d_unhashed(cpg.dentry) && !au_h_dptr(parent, cpg.bdst)) {
+		err = au_cpup_dirs(cpg.dentry, cpg.bdst);
+		if (unlikely(err))
+			goto out_dgrade;
+	}
+
+	err = au_pin(pin, cpg.dentry, cpg.bdst, AuOpt_UDBA_NONE,
+		     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+	if (unlikely(err))
+		goto out_dgrade;
+
+	dbtop = au_dbtop(cpg.dentry);
+	if (dbtop <= cpg.bdst)
+		cpg.bsrc = cpg.bdst;
+
+	if (dbtop <= cpg.bdst		/* just reopen */
+	    || !d_unhashed(cpg.dentry)	/* copyup and reopen */
+		) {
+		h_file = au_h_open_pre(cpg.dentry, cpg.bsrc, /*force_wr*/0);
+		if (IS_ERR(h_file))
+			err = PTR_ERR(h_file);
+		else {
+			di_downgrade_lock(parent, AuLock_IR);
+			if (dbtop > cpg.bdst)
+				err = au_sio_cpup_simple(&cpg);
+			if (!err)
+				err = au_reopen_nondir(file);
+			au_h_open_post(cpg.dentry, cpg.bsrc, h_file);
+		}
+	} else {			/* copyup as wh and reopen */
+		/*
+		 * since writable hfsplus branch is not supported,
+		 * h_open_pre/post() are unnecessary.
+		 */
+		err = au_ready_to_write_wh(file, len, cpg.bdst, pin);
+		di_downgrade_lock(parent, AuLock_IR);
+	}
+
+	if (!err) {
+		au_pin_set_parent_lflag(pin, /*lflag*/0);
+		goto out_dput; /* success */
+	}
+	au_unpin(pin);
+	goto out_unlock;
+
+out_dgrade:
+	di_downgrade_lock(parent, AuLock_IR);
+out_unlock:
+	di_read_unlock(parent, AuLock_IR);
+out_dput:
+	dput(parent);
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_do_flush(struct file *file, fl_owner_t id,
+		int (*flush)(struct file *file, fl_owner_t id))
+{
+	int err;
+	struct super_block *sb;
+	struct inode *inode;
+
+	inode = file_inode(file);
+	sb = inode->i_sb;
+	si_noflush_read_lock(sb);
+	fi_read_lock(file);
+	ii_read_lock_child(inode);
+
+	err = flush(file, id);
+	au_cpup_attr_timesizes(inode);
+
+	ii_read_unlock(inode);
+	fi_read_unlock(file);
+	si_read_unlock(sb);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_file_refresh_by_inode(struct file *file, int *need_reopen)
+{
+	int err;
+	struct au_pin pin;
+	struct au_finfo *finfo;
+	struct dentry *parent, *hi_wh;
+	struct inode *inode;
+	struct super_block *sb;
+	struct au_cp_generic cpg = {
+		.dentry	= file->f_path.dentry,
+		.bdst	= -1,
+		.bsrc	= -1,
+		.len	= -1,
+		.pin	= &pin,
+		.flags	= AuCpup_DTIME
+	};
+
+	FiMustWriteLock(file);
+
+	err = 0;
+	finfo = au_fi(file);
+	sb = cpg.dentry->d_sb;
+	inode = d_inode(cpg.dentry);
+	cpg.bdst = au_ibtop(inode);
+	if (cpg.bdst == finfo->fi_btop || IS_ROOT(cpg.dentry))
+		goto out;
+
+	parent = dget_parent(cpg.dentry);
+	if (au_test_ro(sb, cpg.bdst, inode)) {
+		di_read_lock_parent(parent, !AuLock_IR);
+		err = AuWbrCopyup(au_sbi(sb), cpg.dentry);
+		cpg.bdst = err;
+		di_read_unlock(parent, !AuLock_IR);
+		if (unlikely(err < 0))
+			goto out_parent;
+		err = 0;
+	}
+
+	di_read_lock_parent(parent, AuLock_IR);
+	hi_wh = au_hi_wh(inode, cpg.bdst);
+	if (!S_ISDIR(inode->i_mode)
+	    && au_opt_test(au_mntflags(sb), PLINK)
+	    && au_plink_test(inode)
+	    && !d_unhashed(cpg.dentry)
+	    && cpg.bdst < au_dbtop(cpg.dentry)) {
+		err = au_test_and_cpup_dirs(cpg.dentry, cpg.bdst);
+		if (unlikely(err))
+			goto out_unlock;
+
+		/* always superio. */
+		err = au_pin(&pin, cpg.dentry, cpg.bdst, AuOpt_UDBA_NONE,
+			     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+		if (!err) {
+			err = au_sio_cpup_simple(&cpg);
+			au_unpin(&pin);
+		}
+	} else if (hi_wh) {
+		/* already copied-up after unlink */
+		err = au_reopen_wh(file, cpg.bdst, hi_wh);
+		*need_reopen = 0;
+	}
+
+out_unlock:
+	di_read_unlock(parent, AuLock_IR);
+out_parent:
+	dput(parent);
+out:
+	return err;
+}
+
+static void au_do_refresh_dir(struct file *file)
+{
+	aufs_bindex_t bindex, bbot, new_bindex, brid;
+	struct au_hfile *p, tmp, *q;
+	struct au_finfo *finfo;
+	struct super_block *sb;
+	struct au_fidir *fidir;
+
+	FiMustWriteLock(file);
+
+	sb = file->f_path.dentry->d_sb;
+	finfo = au_fi(file);
+	fidir = finfo->fi_hdir;
+	AuDebugOn(!fidir);
+	p = fidir->fd_hfile + finfo->fi_btop;
+	brid = p->hf_br->br_id;
+	bbot = fidir->fd_bbot;
+	for (bindex = finfo->fi_btop; bindex <= bbot; bindex++, p++) {
+		if (!p->hf_file)
+			continue;
+
+		new_bindex = au_br_index(sb, p->hf_br->br_id);
+		if (new_bindex == bindex)
+			continue;
+		if (new_bindex < 0) {
+			au_set_h_fptr(file, bindex, NULL);
+			continue;
+		}
+
+		/* swap two lower inode, and loop again */
+		q = fidir->fd_hfile + new_bindex;
+		tmp = *q;
+		*q = *p;
+		*p = tmp;
+		if (tmp.hf_file) {
+			bindex--;
+			p--;
+		}
+	}
+
+	p = fidir->fd_hfile;
+	if (!au_test_mmapped(file) && !d_unlinked(file->f_path.dentry)) {
+		bbot = au_sbbot(sb);
+		for (finfo->fi_btop = 0; finfo->fi_btop <= bbot;
+		     finfo->fi_btop++, p++)
+			if (p->hf_file) {
+				if (file_inode(p->hf_file))
+					break;
+				au_hfput(p, /*execed*/0);
+			}
+	} else {
+		bbot = au_br_index(sb, brid);
+		for (finfo->fi_btop = 0; finfo->fi_btop < bbot;
+		     finfo->fi_btop++, p++)
+			if (p->hf_file)
+				au_hfput(p, /*execed*/0);
+		bbot = au_sbbot(sb);
+	}
+
+	p = fidir->fd_hfile + bbot;
+	for (fidir->fd_bbot = bbot; fidir->fd_bbot >= finfo->fi_btop;
+	     fidir->fd_bbot--, p--)
+		if (p->hf_file) {
+			if (file_inode(p->hf_file))
+				break;
+			au_hfput(p, /*execed*/0);
+		}
+	AuDebugOn(fidir->fd_bbot < finfo->fi_btop);
+}
+
+/*
+ * after branch manipulating, refresh the file.
+ */
+static int refresh_file(struct file *file, int (*reopen)(struct file *file))
+{
+	int err, need_reopen, nbr;
+	aufs_bindex_t bbot, bindex;
+	struct dentry *dentry;
+	struct super_block *sb;
+	struct au_finfo *finfo;
+	struct au_hfile *hfile;
+
+	dentry = file->f_path.dentry;
+	sb = dentry->d_sb;
+	nbr = au_sbbot(sb) + 1;
+	finfo = au_fi(file);
+	if (!finfo->fi_hdir) {
+		hfile = &finfo->fi_htop;
+		AuDebugOn(!hfile->hf_file);
+		bindex = au_br_index(sb, hfile->hf_br->br_id);
+		AuDebugOn(bindex < 0);
+		if (bindex != finfo->fi_btop)
+			au_set_fbtop(file, bindex);
+	} else {
+		err = au_fidir_realloc(finfo, nbr, /*may_shrink*/0);
+		if (unlikely(err))
+			goto out;
+		au_do_refresh_dir(file);
+	}
+
+	err = 0;
+	need_reopen = 1;
+	if (!au_test_mmapped(file))
+		err = au_file_refresh_by_inode(file, &need_reopen);
+	if (finfo->fi_hdir)
+		/* harmless if err */
+		au_fidir_realloc(finfo, nbr, /*may_shrink*/1);
+	if (!err && need_reopen && !d_unlinked(dentry))
+		err = reopen(file);
+	if (!err) {
+		au_update_figen(file);
+		goto out; /* success */
+	}
+
+	/* error, close all lower files */
+	if (finfo->fi_hdir) {
+		bbot = au_fbbot_dir(file);
+		for (bindex = au_fbtop(file); bindex <= bbot; bindex++)
+			au_set_h_fptr(file, bindex, NULL);
+	}
+
+out:
+	return err;
+}
+
+/* common function to regular file and dir */
+int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
+			  int wlock, unsigned int fi_lsc)
+{
+	int err;
+	unsigned int sigen, figen;
+	aufs_bindex_t btop;
+	unsigned char pseudo_link;
+	struct dentry *dentry;
+	struct inode *inode;
+
+	err = 0;
+	dentry = file->f_path.dentry;
+	inode = d_inode(dentry);
+	sigen = au_sigen(dentry->d_sb);
+	fi_write_lock_nested(file, fi_lsc);
+	figen = au_figen(file);
+	if (!fi_lsc)
+		di_write_lock_child(dentry);
+	else
+		di_write_lock_child2(dentry);
+	btop = au_dbtop(dentry);
+	pseudo_link = (btop != au_ibtop(inode));
+	if (sigen == figen && !pseudo_link && au_fbtop(file) == btop) {
+		if (!wlock) {
+			di_downgrade_lock(dentry, AuLock_IR);
+			fi_downgrade_lock(file);
+		}
+		goto out; /* success */
+	}
+
+	AuDbg("sigen %d, figen %d\n", sigen, figen);
+	if (au_digen_test(dentry, sigen)) {
+		err = au_reval_dpath(dentry, sigen);
+		AuDebugOn(!err && au_digen_test(dentry, sigen));
+	}
+
+	if (!err)
+		err = refresh_file(file, reopen);
+	if (!err) {
+		if (!wlock) {
+			di_downgrade_lock(dentry, AuLock_IR);
+			fi_downgrade_lock(file);
+		}
+	} else {
+		di_write_unlock(dentry);
+		fi_write_unlock(file);
+	}
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* cf. aufs_nopage() */
+/* for madvise(2) */
+static int aufs_readpage(struct file *file __maybe_unused, struct page *page)
+{
+	unlock_page(page);
+	return 0;
+}
+
+/* it will never be called, but necessary to support O_DIRECT */
+static ssize_t aufs_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
+{ BUG(); return 0; }
+
+/* they will never be called. */
+#ifdef CONFIG_AUFS_DEBUG
+static int aufs_write_begin(struct file *file, struct address_space *mapping,
+			    loff_t pos, unsigned len, unsigned flags,
+			    struct page **pagep, void **fsdata)
+{ AuUnsupport(); return 0; }
+static int aufs_write_end(struct file *file, struct address_space *mapping,
+			  loff_t pos, unsigned len, unsigned copied,
+			  struct page *page, void *fsdata)
+{ AuUnsupport(); return 0; }
+static int aufs_writepage(struct page *page, struct writeback_control *wbc)
+{ AuUnsupport(); return 0; }
+
+static int aufs_set_page_dirty(struct page *page)
+{ AuUnsupport(); return 0; }
+static void aufs_invalidatepage(struct page *page, unsigned int offset,
+				unsigned int length)
+{ AuUnsupport(); }
+static int aufs_releasepage(struct page *page, gfp_t gfp)
+{ AuUnsupport(); return 0; }
+#if 0 /* called by memory compaction regardless file */
+static int aufs_migratepage(struct address_space *mapping, struct page *newpage,
+			    struct page *page, enum migrate_mode mode)
+{ AuUnsupport(); return 0; }
+#endif
+static bool aufs_isolate_page(struct page *page, isolate_mode_t mode)
+{ AuUnsupport(); return true; }
+static void aufs_putback_page(struct page *page)
+{ AuUnsupport(); }
+static int aufs_launder_page(struct page *page)
+{ AuUnsupport(); return 0; }
+static int aufs_is_partially_uptodate(struct page *page,
+				      unsigned long from,
+				      unsigned long count)
+{ AuUnsupport(); return 0; }
+static void aufs_is_dirty_writeback(struct page *page, bool *dirty,
+				    bool *writeback)
+{ AuUnsupport(); }
+static int aufs_error_remove_page(struct address_space *mapping,
+				  struct page *page)
+{ AuUnsupport(); return 0; }
+static int aufs_swap_activate(struct swap_info_struct *sis, struct file *file,
+			      sector_t *span)
+{ AuUnsupport(); return 0; }
+static void aufs_swap_deactivate(struct file *file)
+{ AuUnsupport(); }
+#endif /* CONFIG_AUFS_DEBUG */
+
+const struct address_space_operations aufs_aop = {
+	.readpage		= aufs_readpage,
+	.direct_IO		= aufs_direct_IO,
+#ifdef CONFIG_AUFS_DEBUG
+	.writepage		= aufs_writepage,
+	/* no writepages, because of writepage */
+	.set_page_dirty		= aufs_set_page_dirty,
+	/* no readpages, because of readpage */
+	.write_begin		= aufs_write_begin,
+	.write_end		= aufs_write_end,
+	/* no bmap, no block device */
+	.invalidatepage		= aufs_invalidatepage,
+	.releasepage		= aufs_releasepage,
+	/* is fallback_migrate_page ok? */
+	/* .migratepage		= aufs_migratepage, */
+	.isolate_page		= aufs_isolate_page,
+	.putback_page		= aufs_putback_page,
+	.launder_page		= aufs_launder_page,
+	.is_partially_uptodate	= aufs_is_partially_uptodate,
+	.is_dirty_writeback	= aufs_is_dirty_writeback,
+	.error_remove_page	= aufs_error_remove_page,
+	.swap_activate		= aufs_swap_activate,
+	.swap_deactivate	= aufs_swap_deactivate
+#endif /* CONFIG_AUFS_DEBUG */
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/file.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/file.h
@@ -0,0 +1,342 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * file operations
+ */
+
+#ifndef __AUFS_FILE_H__
+#define __AUFS_FILE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/file.h>
+#include <linux/fs.h>
+#include <linux/mm_types.h>
+#include <linux/poll.h>
+#include "rwsem.h"
+
+struct au_branch;
+struct au_hfile {
+	struct file		*hf_file;
+	struct au_branch	*hf_br;
+};
+
+struct au_vdir;
+struct au_fidir {
+	aufs_bindex_t		fd_bbot;
+	aufs_bindex_t		fd_nent;
+	struct au_vdir		*fd_vdir_cache;
+	struct au_hfile		fd_hfile[];
+};
+
+static inline int au_fidir_sz(int nent)
+{
+	AuDebugOn(nent < 0);
+	return sizeof(struct au_fidir) + sizeof(struct au_hfile) * nent;
+}
+
+struct au_finfo {
+	atomic_t		fi_generation;
+
+	struct au_rwsem		fi_rwsem;
+	aufs_bindex_t		fi_btop;
+
+	/* do not union them */
+	struct {				/* for non-dir */
+		struct au_hfile			fi_htop;
+		atomic_t			fi_mmapped;
+	};
+	struct au_fidir		*fi_hdir;	/* for dir only */
+
+	struct hlist_bl_node	fi_hlist;
+	struct file		*fi_file;	/* very ugly */
+	struct rcu_head		rcu;
+} ____cacheline_aligned_in_smp;
+
+/* ---------------------------------------------------------------------- */
+
+/* file.c */
+extern const struct address_space_operations aufs_aop;
+unsigned int au_file_roflags(unsigned int flags);
+struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
+		       struct file *file, int force_wr);
+struct au_do_open_args {
+	int		aopen;
+	int		(*open)(struct file *file, int flags,
+				struct file *h_file);
+	struct au_fidir	*fidir;
+	struct file	*h_file;
+};
+int au_do_open(struct file *file, struct au_do_open_args *args);
+int au_reopen_nondir(struct file *file);
+struct au_pin;
+int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin);
+int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
+			  int wlock, unsigned int fi_lsc);
+int au_do_flush(struct file *file, fl_owner_t id,
+		int (*flush)(struct file *file, fl_owner_t id));
+
+/* poll.c */
+#ifdef CONFIG_AUFS_POLL
+__poll_t aufs_poll(struct file *file, struct poll_table_struct *pt);
+#endif
+
+#ifdef CONFIG_AUFS_BR_HFSPLUS
+/* hfsplus.c */
+struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex,
+			   int force_wr);
+void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex,
+		    struct file *h_file);
+#else
+AuStub(struct file *, au_h_open_pre, return NULL, struct dentry *dentry,
+       aufs_bindex_t bindex, int force_wr)
+AuStubVoid(au_h_open_post, struct dentry *dentry, aufs_bindex_t bindex,
+	   struct file *h_file);
+#endif
+
+/* f_op.c */
+extern const struct file_operations aufs_file_fop;
+int au_do_open_nondir(struct file *file, int flags, struct file *h_file);
+int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file);
+struct file *au_read_pre(struct file *file, int keep_fi, unsigned int lsc);
+
+/* finfo.c */
+void au_hfput(struct au_hfile *hf, int execed);
+void au_set_h_fptr(struct file *file, aufs_bindex_t bindex,
+		   struct file *h_file);
+
+void au_update_figen(struct file *file);
+struct au_fidir *au_fidir_alloc(struct super_block *sb);
+int au_fidir_realloc(struct au_finfo *finfo, int nbr, int may_shrink);
+
+void au_fi_init_once(void *_fi);
+void au_finfo_fin(struct file *file);
+int au_finfo_init(struct file *file, struct au_fidir *fidir);
+
+/* ioctl.c */
+long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg);
+#ifdef CONFIG_COMPAT
+long aufs_compat_ioctl_dir(struct file *file, unsigned int cmd,
+			   unsigned long arg);
+long aufs_compat_ioctl_nondir(struct file *file, unsigned int cmd,
+			      unsigned long arg);
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_finfo *au_fi(struct file *file)
+{
+	return file->private_data;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define fi_read_lock(f)	au_rw_read_lock(&au_fi(f)->fi_rwsem)
+#define fi_write_lock(f)	au_rw_write_lock(&au_fi(f)->fi_rwsem)
+#define fi_read_trylock(f)	au_rw_read_trylock(&au_fi(f)->fi_rwsem)
+#define fi_write_trylock(f)	au_rw_write_trylock(&au_fi(f)->fi_rwsem)
+/*
+#define fi_read_trylock_nested(f) \
+	au_rw_read_trylock_nested(&au_fi(f)->fi_rwsem)
+#define fi_write_trylock_nested(f) \
+	au_rw_write_trylock_nested(&au_fi(f)->fi_rwsem)
+*/
+
+#define fi_read_unlock(f)	au_rw_read_unlock(&au_fi(f)->fi_rwsem)
+#define fi_write_unlock(f)	au_rw_write_unlock(&au_fi(f)->fi_rwsem)
+#define fi_downgrade_lock(f)	au_rw_dgrade_lock(&au_fi(f)->fi_rwsem)
+
+/* lock subclass for finfo */
+enum {
+	AuLsc_FI_1,
+	AuLsc_FI_2
+};
+
+static inline void fi_read_lock_nested(struct file *f, unsigned int lsc)
+{
+	au_rw_read_lock_nested(&au_fi(f)->fi_rwsem, lsc);
+}
+
+static inline void fi_write_lock_nested(struct file *f, unsigned int lsc)
+{
+	au_rw_write_lock_nested(&au_fi(f)->fi_rwsem, lsc);
+}
+
+/*
+ * fi_read_lock_1, fi_write_lock_1,
+ * fi_read_lock_2, fi_write_lock_2
+ */
+#define AuReadLockFunc(name) \
+static inline void fi_read_lock_##name(struct file *f) \
+{ fi_read_lock_nested(f, AuLsc_FI_##name); }
+
+#define AuWriteLockFunc(name) \
+static inline void fi_write_lock_##name(struct file *f) \
+{ fi_write_lock_nested(f, AuLsc_FI_##name); }
+
+#define AuRWLockFuncs(name) \
+	AuReadLockFunc(name) \
+	AuWriteLockFunc(name)
+
+AuRWLockFuncs(1);
+AuRWLockFuncs(2);
+
+#undef AuReadLockFunc
+#undef AuWriteLockFunc
+#undef AuRWLockFuncs
+
+#define FiMustNoWaiters(f)	AuRwMustNoWaiters(&au_fi(f)->fi_rwsem)
+#define FiMustAnyLock(f)	AuRwMustAnyLock(&au_fi(f)->fi_rwsem)
+#define FiMustWriteLock(f)	AuRwMustWriteLock(&au_fi(f)->fi_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: hard/soft set? */
+static inline aufs_bindex_t au_fbtop(struct file *file)
+{
+	FiMustAnyLock(file);
+	return au_fi(file)->fi_btop;
+}
+
+static inline aufs_bindex_t au_fbbot_dir(struct file *file)
+{
+	FiMustAnyLock(file);
+	AuDebugOn(!au_fi(file)->fi_hdir);
+	return au_fi(file)->fi_hdir->fd_bbot;
+}
+
+static inline struct au_vdir *au_fvdir_cache(struct file *file)
+{
+	FiMustAnyLock(file);
+	AuDebugOn(!au_fi(file)->fi_hdir);
+	return au_fi(file)->fi_hdir->fd_vdir_cache;
+}
+
+static inline void au_set_fbtop(struct file *file, aufs_bindex_t bindex)
+{
+	FiMustWriteLock(file);
+	au_fi(file)->fi_btop = bindex;
+}
+
+static inline void au_set_fbbot_dir(struct file *file, aufs_bindex_t bindex)
+{
+	FiMustWriteLock(file);
+	AuDebugOn(!au_fi(file)->fi_hdir);
+	au_fi(file)->fi_hdir->fd_bbot = bindex;
+}
+
+static inline void au_set_fvdir_cache(struct file *file,
+				      struct au_vdir *vdir_cache)
+{
+	FiMustWriteLock(file);
+	AuDebugOn(!au_fi(file)->fi_hdir);
+	au_fi(file)->fi_hdir->fd_vdir_cache = vdir_cache;
+}
+
+static inline struct file *au_hf_top(struct file *file)
+{
+	FiMustAnyLock(file);
+	AuDebugOn(au_fi(file)->fi_hdir);
+	return au_fi(file)->fi_htop.hf_file;
+}
+
+static inline struct file *au_hf_dir(struct file *file, aufs_bindex_t bindex)
+{
+	FiMustAnyLock(file);
+	AuDebugOn(!au_fi(file)->fi_hdir);
+	return au_fi(file)->fi_hdir->fd_hfile[0 + bindex].hf_file;
+}
+
+/* todo: memory barrier? */
+static inline unsigned int au_figen(struct file *f)
+{
+	return atomic_read(&au_fi(f)->fi_generation);
+}
+
+static inline void au_set_mmapped(struct file *f)
+{
+	if (atomic_inc_return(&au_fi(f)->fi_mmapped))
+		return;
+	pr_warn("fi_mmapped wrapped around\n");
+	while (!atomic_inc_return(&au_fi(f)->fi_mmapped))
+		;
+}
+
+static inline void au_unset_mmapped(struct file *f)
+{
+	atomic_dec(&au_fi(f)->fi_mmapped);
+}
+
+static inline int au_test_mmapped(struct file *f)
+{
+	return atomic_read(&au_fi(f)->fi_mmapped);
+}
+
+/* customize vma->vm_file */
+
+static inline void au_do_vm_file_reset(struct vm_area_struct *vma,
+				       struct file *file)
+{
+	struct file *f;
+
+	f = vma->vm_file;
+	get_file(file);
+	vma->vm_file = file;
+	fput(f);
+}
+
+#ifdef CONFIG_MMU
+#define AuDbgVmRegion(file, vma) do {} while (0)
+
+static inline void au_vm_file_reset(struct vm_area_struct *vma,
+				    struct file *file)
+{
+	au_do_vm_file_reset(vma, file);
+}
+#else
+#define AuDbgVmRegion(file, vma) \
+	AuDebugOn((vma)->vm_region && (vma)->vm_region->vm_file != (file))
+
+static inline void au_vm_file_reset(struct vm_area_struct *vma,
+				    struct file *file)
+{
+	struct file *f;
+
+	au_do_vm_file_reset(vma, file);
+	f = vma->vm_region->vm_file;
+	get_file(file);
+	vma->vm_region->vm_file = file;
+	fput(f);
+}
+#endif /* CONFIG_MMU */
+
+/* handle vma->vm_prfile */
+static inline void au_vm_prfile_set(struct vm_area_struct *vma,
+				    struct file *file)
+{
+	get_file(file);
+	vma->vm_prfile = file;
+#ifndef CONFIG_MMU
+	get_file(file);
+	vma->vm_region->vm_prfile = file;
+#endif
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_FILE_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/finfo.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/finfo.c
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * file private data
+ */
+
+#include "aufs.h"
+
+void au_hfput(struct au_hfile *hf, int execed)
+{
+	if (execed)
+		allow_write_access(hf->hf_file);
+	fput(hf->hf_file);
+	hf->hf_file = NULL;
+	au_lcnt_dec(&hf->hf_br->br_nfiles);
+	hf->hf_br = NULL;
+}
+
+void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, struct file *val)
+{
+	struct au_finfo *finfo = au_fi(file);
+	struct au_hfile *hf;
+	struct au_fidir *fidir;
+
+	fidir = finfo->fi_hdir;
+	if (!fidir) {
+		AuDebugOn(finfo->fi_btop != bindex);
+		hf = &finfo->fi_htop;
+	} else
+		hf = fidir->fd_hfile + bindex;
+
+	if (hf && hf->hf_file)
+		au_hfput(hf, vfsub_file_execed(file));
+	if (val) {
+		FiMustWriteLock(file);
+		AuDebugOn(IS_ERR_OR_NULL(file->f_path.dentry));
+		hf->hf_file = val;
+		hf->hf_br = au_sbr(file->f_path.dentry->d_sb, bindex);
+	}
+}
+
+void au_update_figen(struct file *file)
+{
+	atomic_set(&au_fi(file)->fi_generation, au_digen(file->f_path.dentry));
+	/* smp_mb(); */ /* atomic_set */
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_fidir *au_fidir_alloc(struct super_block *sb)
+{
+	struct au_fidir *fidir;
+	int nbr;
+
+	nbr = au_sbbot(sb) + 1;
+	if (nbr < 2)
+		nbr = 2; /* initial allocate for 2 branches */
+	fidir = kzalloc(au_fidir_sz(nbr), GFP_NOFS);
+	if (fidir) {
+		fidir->fd_bbot = -1;
+		fidir->fd_nent = nbr;
+	}
+
+	return fidir;
+}
+
+int au_fidir_realloc(struct au_finfo *finfo, int nbr, int may_shrink)
+{
+	int err;
+	struct au_fidir *fidir, *p;
+
+	AuRwMustWriteLock(&finfo->fi_rwsem);
+	fidir = finfo->fi_hdir;
+	AuDebugOn(!fidir);
+
+	err = -ENOMEM;
+	p = au_kzrealloc(fidir, au_fidir_sz(fidir->fd_nent), au_fidir_sz(nbr),
+			 GFP_NOFS, may_shrink);
+	if (p) {
+		p->fd_nent = nbr;
+		finfo->fi_hdir = p;
+		err = 0;
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_finfo_fin(struct file *file)
+{
+	struct au_finfo *finfo;
+
+	au_lcnt_dec(&au_sbi(file->f_path.dentry->d_sb)->si_nfiles);
+
+	finfo = au_fi(file);
+	AuDebugOn(finfo->fi_hdir);
+	AuRwDestroy(&finfo->fi_rwsem);
+	au_cache_free_finfo(finfo);
+}
+
+void au_fi_init_once(void *_finfo)
+{
+	struct au_finfo *finfo = _finfo;
+
+	au_rw_init(&finfo->fi_rwsem);
+}
+
+int au_finfo_init(struct file *file, struct au_fidir *fidir)
+{
+	int err;
+	struct au_finfo *finfo;
+	struct dentry *dentry;
+
+	err = -ENOMEM;
+	dentry = file->f_path.dentry;
+	finfo = au_cache_alloc_finfo();
+	if (unlikely(!finfo))
+		goto out;
+
+	err = 0;
+	au_lcnt_inc(&au_sbi(dentry->d_sb)->si_nfiles);
+	au_rw_write_lock(&finfo->fi_rwsem);
+	finfo->fi_btop = -1;
+	finfo->fi_hdir = fidir;
+	atomic_set(&finfo->fi_generation, au_digen(dentry));
+	/* smp_mb(); */ /* atomic_set */
+
+	file->private_data = finfo;
+
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/fstype.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/fstype.h
@@ -0,0 +1,401 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * judging filesystem type
+ */
+
+#ifndef __AUFS_FSTYPE_H__
+#define __AUFS_FSTYPE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/magic.h>
+#include <linux/nfs_fs.h>
+#include <linux/romfs_fs.h>
+
+static inline int au_test_aufs(struct super_block *sb)
+{
+	return sb->s_magic == AUFS_SUPER_MAGIC;
+}
+
+static inline const char *au_sbtype(struct super_block *sb)
+{
+	return sb->s_type->name;
+}
+
+static inline int au_test_iso9660(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_ISO9660_FS)
+	return sb->s_magic == ISOFS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_romfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_ROMFS_FS)
+	return sb->s_magic == ROMFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_cramfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_CRAMFS)
+	return sb->s_magic == CRAMFS_MAGIC;
+#endif
+	return 0;
+}
+
+static inline int au_test_nfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_NFS_FS)
+	return sb->s_magic == NFS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_fuse(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_FUSE_FS)
+	return sb->s_magic == FUSE_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_xfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_XFS_FS)
+	return sb->s_magic == XFS_SB_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_tmpfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_TMPFS
+	return sb->s_magic == TMPFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_ecryptfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_ECRYPT_FS)
+	return !strcmp(au_sbtype(sb), "ecryptfs");
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_ramfs(struct super_block *sb)
+{
+	return sb->s_magic == RAMFS_MAGIC;
+}
+
+static inline int au_test_ubifs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_UBIFS_FS)
+	return sb->s_magic == UBIFS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_procfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_PROC_FS
+	return sb->s_magic == PROC_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_sysfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_SYSFS
+	return sb->s_magic == SYSFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_configfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_CONFIGFS_FS)
+	return sb->s_magic == CONFIGFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_minix(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_MINIX_FS)
+	return sb->s_magic == MINIX3_SUPER_MAGIC
+		|| sb->s_magic == MINIX2_SUPER_MAGIC
+		|| sb->s_magic == MINIX2_SUPER_MAGIC2
+		|| sb->s_magic == MINIX_SUPER_MAGIC
+		|| sb->s_magic == MINIX_SUPER_MAGIC2;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_fat(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_FAT_FS)
+	return sb->s_magic == MSDOS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_msdos(struct super_block *sb)
+{
+	return au_test_fat(sb);
+}
+
+static inline int au_test_vfat(struct super_block *sb)
+{
+	return au_test_fat(sb);
+}
+
+static inline int au_test_securityfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_SECURITYFS
+	return sb->s_magic == SECURITYFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_squashfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_SQUASHFS)
+	return sb->s_magic == SQUASHFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_btrfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_BTRFS_FS)
+	return sb->s_magic == BTRFS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_xenfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_XENFS)
+	return sb->s_magic == XENFS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_debugfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_DEBUG_FS
+	return sb->s_magic == DEBUGFS_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_nilfs(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_NILFS)
+	return sb->s_magic == NILFS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+static inline int au_test_hfsplus(struct super_block *sb __maybe_unused)
+{
+#if IS_ENABLED(CONFIG_HFSPLUS_FS)
+	return sb->s_magic == HFSPLUS_SUPER_MAGIC;
+#else
+	return 0;
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * they can't be an aufs branch.
+ */
+static inline int au_test_fs_unsuppoted(struct super_block *sb)
+{
+	return
+#ifndef CONFIG_AUFS_BR_RAMFS
+		au_test_ramfs(sb) ||
+#endif
+		au_test_procfs(sb)
+		|| au_test_sysfs(sb)
+		|| au_test_configfs(sb)
+		|| au_test_debugfs(sb)
+		|| au_test_securityfs(sb)
+		|| au_test_xenfs(sb)
+		|| au_test_ecryptfs(sb)
+		/* || !strcmp(au_sbtype(sb), "unionfs") */
+		|| au_test_aufs(sb); /* will be supported in next version */
+}
+
+static inline int au_test_fs_remote(struct super_block *sb)
+{
+	return !au_test_tmpfs(sb)
+#ifdef CONFIG_AUFS_BR_RAMFS
+		&& !au_test_ramfs(sb)
+#endif
+		&& !(sb->s_type->fs_flags & FS_REQUIRES_DEV);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * Note: these functions (below) are created after reading ->getattr() in all
+ * filesystems under linux/fs. it means we have to do so in every update...
+ */
+
+/*
+ * some filesystems require getattr to refresh the inode attributes before
+ * referencing.
+ * in most cases, we can rely on the inode attribute in NFS (or every remote fs)
+ * and leave the work for d_revalidate()
+ */
+static inline int au_test_fs_refresh_iattr(struct super_block *sb)
+{
+	return au_test_nfs(sb)
+		|| au_test_fuse(sb)
+		/* || au_test_btrfs(sb) */	/* untested */
+		;
+}
+
+/*
+ * filesystems which don't maintain i_size or i_blocks.
+ */
+static inline int au_test_fs_bad_iattr_size(struct super_block *sb)
+{
+	return au_test_xfs(sb)
+		|| au_test_btrfs(sb)
+		|| au_test_ubifs(sb)
+		|| au_test_hfsplus(sb)	/* maintained, but incorrect */
+		/* || au_test_minix(sb) */	/* untested */
+		;
+}
+
+/*
+ * filesystems which don't store the correct value in some of their inode
+ * attributes.
+ */
+static inline int au_test_fs_bad_iattr(struct super_block *sb)
+{
+	return au_test_fs_bad_iattr_size(sb)
+		|| au_test_fat(sb)
+		|| au_test_msdos(sb)
+		|| au_test_vfat(sb);
+}
+
+/* they don't check i_nlink in link(2) */
+static inline int au_test_fs_no_limit_nlink(struct super_block *sb)
+{
+	return au_test_tmpfs(sb)
+#ifdef CONFIG_AUFS_BR_RAMFS
+		|| au_test_ramfs(sb)
+#endif
+		|| au_test_ubifs(sb)
+		|| au_test_hfsplus(sb);
+}
+
+/*
+ * filesystems which sets S_NOATIME and S_NOCMTIME.
+ */
+static inline int au_test_fs_notime(struct super_block *sb)
+{
+	return au_test_nfs(sb)
+		|| au_test_fuse(sb)
+		|| au_test_ubifs(sb)
+		;
+}
+
+/* temporary support for i#1 in cramfs */
+static inline int au_test_fs_unique_ino(struct inode *inode)
+{
+	if (au_test_cramfs(inode->i_sb))
+		return inode->i_ino != 1;
+	return 1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * the filesystem where the xino files placed must support i/o after unlink and
+ * maintain i_size and i_blocks.
+ */
+static inline int au_test_fs_bad_xino(struct super_block *sb)
+{
+	return au_test_fs_remote(sb)
+		|| au_test_fs_bad_iattr_size(sb)
+		/* don't want unnecessary work for xino */
+		|| au_test_aufs(sb)
+		|| au_test_ecryptfs(sb)
+		|| au_test_nilfs(sb);
+}
+
+static inline int au_test_fs_trunc_xino(struct super_block *sb)
+{
+	return au_test_tmpfs(sb)
+		|| au_test_ramfs(sb);
+}
+
+/*
+ * test if the @sb is real-readonly.
+ */
+static inline int au_test_fs_rr(struct super_block *sb)
+{
+	return au_test_squashfs(sb)
+		|| au_test_iso9660(sb)
+		|| au_test_cramfs(sb)
+		|| au_test_romfs(sb);
+}
+
+/*
+ * test if the @inode is nfs with 'noacl' option
+ * NFS always sets SB_POSIXACL regardless its mount option 'noacl.'
+ */
+static inline int au_test_nfs_noacl(struct inode *inode)
+{
+	return au_test_nfs(inode->i_sb)
+		/* && IS_POSIXACL(inode) */
+		&& !nfs_server_capable(inode, NFS_CAP_ACLS);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_FSTYPE_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/hbl.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/hbl.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2017-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * helpers for hlist_bl.h
+ */
+
+#ifndef __AUFS_HBL_H__
+#define __AUFS_HBL_H__
+
+#ifdef __KERNEL__
+
+#include <linux/list_bl.h>
+
+static inline void au_hbl_add(struct hlist_bl_node *node,
+			      struct hlist_bl_head *hbl)
+{
+	hlist_bl_lock(hbl);
+	hlist_bl_add_head(node, hbl);
+	hlist_bl_unlock(hbl);
+}
+
+static inline void au_hbl_del(struct hlist_bl_node *node,
+			      struct hlist_bl_head *hbl)
+{
+	hlist_bl_lock(hbl);
+	hlist_bl_del(node);
+	hlist_bl_unlock(hbl);
+}
+
+#define au_hbl_for_each(pos, head)					\
+	for (pos = hlist_bl_first(head);				\
+	     pos;							\
+	     pos = pos->next)
+
+static inline unsigned long au_hbl_count(struct hlist_bl_head *hbl)
+{
+	unsigned long cnt;
+	struct hlist_bl_node *pos;
+
+	cnt = 0;
+	hlist_bl_lock(hbl);
+	au_hbl_for_each(pos, hbl)
+		cnt++;
+	hlist_bl_unlock(hbl);
+	return cnt;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_HBL_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/hfsnotify.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/hfsnotify.c
@@ -0,0 +1,288 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * fsnotify for the lower directories
+ */
+
+#include "aufs.h"
+
+/* FS_IN_IGNORED is unnecessary */
+static const __u32 AuHfsnMask = (FS_MOVED_TO | FS_MOVED_FROM | FS_DELETE
+				 | FS_CREATE | FS_EVENT_ON_CHILD);
+static DECLARE_WAIT_QUEUE_HEAD(au_hfsn_wq);
+static __cacheline_aligned_in_smp atomic64_t au_hfsn_ifree = ATOMIC64_INIT(0);
+
+static void au_hfsn_free_mark(struct fsnotify_mark *mark)
+{
+	struct au_hnotify *hn = container_of(mark, struct au_hnotify,
+					     hn_mark);
+	/* AuDbg("here\n"); */
+	au_cache_free_hnotify(hn);
+	smp_mb__before_atomic(); /* for atomic64_dec */
+	if (atomic64_dec_and_test(&au_hfsn_ifree))
+		wake_up(&au_hfsn_wq);
+}
+
+static int au_hfsn_alloc(struct au_hinode *hinode)
+{
+	int err;
+	struct au_hnotify *hn;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct fsnotify_mark *mark;
+	aufs_bindex_t bindex;
+
+	hn = hinode->hi_notify;
+	sb = hn->hn_aufs_inode->i_sb;
+	bindex = au_br_index(sb, hinode->hi_id);
+	br = au_sbr(sb, bindex);
+	AuDebugOn(!br->br_hfsn);
+
+	mark = &hn->hn_mark;
+	fsnotify_init_mark(mark, br->br_hfsn->hfsn_group);
+	mark->mask = AuHfsnMask;
+	/*
+	 * by udba rename or rmdir, aufs assign a new inode to the known
+	 * h_inode, so specify 1 to allow dups.
+	 */
+	lockdep_off();
+	err = fsnotify_add_inode_mark(mark, hinode->hi_inode, /*allow_dups*/1);
+	lockdep_on();
+
+	return err;
+}
+
+static int au_hfsn_free(struct au_hinode *hinode, struct au_hnotify *hn)
+{
+	struct fsnotify_mark *mark;
+	unsigned long long ull;
+	struct fsnotify_group *group;
+
+	ull = atomic64_inc_return(&au_hfsn_ifree);
+	BUG_ON(!ull);
+
+	mark = &hn->hn_mark;
+	spin_lock(&mark->lock);
+	group = mark->group;
+	fsnotify_get_group(group);
+	spin_unlock(&mark->lock);
+	lockdep_off();
+	fsnotify_destroy_mark(mark, group);
+	fsnotify_put_mark(mark);
+	fsnotify_put_group(group);
+	lockdep_on();
+
+	/* free hn by myself */
+	return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_hfsn_ctl(struct au_hinode *hinode, int do_set)
+{
+	struct fsnotify_mark *mark;
+
+	mark = &hinode->hi_notify->hn_mark;
+	spin_lock(&mark->lock);
+	if (do_set) {
+		AuDebugOn(mark->mask & AuHfsnMask);
+		mark->mask |= AuHfsnMask;
+	} else {
+		AuDebugOn(!(mark->mask & AuHfsnMask));
+		mark->mask &= ~AuHfsnMask;
+	}
+	spin_unlock(&mark->lock);
+	/* fsnotify_recalc_inode_mask(hinode->hi_inode); */
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* #define AuDbgHnotify */
+#ifdef AuDbgHnotify
+static char *au_hfsn_name(u32 mask)
+{
+#ifdef CONFIG_AUFS_DEBUG
+#define test_ret(flag)				\
+	do {					\
+		if (mask & flag)		\
+			return #flag;		\
+	} while (0)
+	test_ret(FS_ACCESS);
+	test_ret(FS_MODIFY);
+	test_ret(FS_ATTRIB);
+	test_ret(FS_CLOSE_WRITE);
+	test_ret(FS_CLOSE_NOWRITE);
+	test_ret(FS_OPEN);
+	test_ret(FS_MOVED_FROM);
+	test_ret(FS_MOVED_TO);
+	test_ret(FS_CREATE);
+	test_ret(FS_DELETE);
+	test_ret(FS_DELETE_SELF);
+	test_ret(FS_MOVE_SELF);
+	test_ret(FS_UNMOUNT);
+	test_ret(FS_Q_OVERFLOW);
+	test_ret(FS_IN_IGNORED);
+	test_ret(FS_ISDIR);
+	test_ret(FS_IN_ONESHOT);
+	test_ret(FS_EVENT_ON_CHILD);
+	return "";
+#undef test_ret
+#else
+	return "??";
+#endif
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static void au_hfsn_free_group(struct fsnotify_group *group)
+{
+	struct au_br_hfsnotify *hfsn = group->private;
+
+	/* AuDbg("here\n"); */
+	au_kfree_try_rcu(hfsn);
+}
+
+static int au_hfsn_handle_event(struct fsnotify_group *group,
+				struct inode *inode,
+				u32 mask, const void *data, int data_type,
+				const struct qstr *file_name, u32 cookie,
+				struct fsnotify_iter_info *iter_info)
+{
+	int err;
+	struct au_hnotify *hnotify;
+	struct inode *h_dir, *h_inode;
+	struct fsnotify_mark *inode_mark;
+
+	AuDebugOn(data_type != FSNOTIFY_EVENT_INODE);
+
+	err = 0;
+	/* if FS_UNMOUNT happens, there must be another bug */
+	AuDebugOn(mask & FS_UNMOUNT);
+	if (mask & (FS_IN_IGNORED | FS_UNMOUNT))
+		goto out;
+
+	h_dir = inode;
+	h_inode = NULL;
+#ifdef AuDbgHnotify
+	au_debug_on();
+	if (1 || h_child_qstr.len != sizeof(AUFS_XINO_FNAME) - 1
+	    || strncmp(h_child_qstr.name, AUFS_XINO_FNAME, h_child_qstr.len)) {
+		AuDbg("i%lu, mask 0x%x %s, hcname %.*s, hi%lu\n",
+		      h_dir->i_ino, mask, au_hfsn_name(mask),
+		      AuLNPair(&h_child_qstr), h_inode ? h_inode->i_ino : 0);
+		/* WARN_ON(1); */
+	}
+	au_debug_off();
+#endif
+
+	inode_mark = fsnotify_iter_inode_mark(iter_info);
+	AuDebugOn(!inode_mark);
+	hnotify = container_of(inode_mark, struct au_hnotify, hn_mark);
+	err = au_hnotify(h_dir, hnotify, mask, file_name, h_inode);
+
+out:
+	return err;
+}
+
+static struct fsnotify_ops au_hfsn_ops = {
+	.handle_event		= au_hfsn_handle_event,
+	.free_group_priv	= au_hfsn_free_group,
+	.free_mark		= au_hfsn_free_mark
+};
+
+/* ---------------------------------------------------------------------- */
+
+static void au_hfsn_fin_br(struct au_branch *br)
+{
+	struct au_br_hfsnotify *hfsn;
+
+	hfsn = br->br_hfsn;
+	if (hfsn) {
+		lockdep_off();
+		fsnotify_put_group(hfsn->hfsn_group);
+		lockdep_on();
+	}
+}
+
+static int au_hfsn_init_br(struct au_branch *br, int perm)
+{
+	int err;
+	struct fsnotify_group *group;
+	struct au_br_hfsnotify *hfsn;
+
+	err = 0;
+	br->br_hfsn = NULL;
+	if (!au_br_hnotifyable(perm))
+		goto out;
+
+	err = -ENOMEM;
+	hfsn = kmalloc(sizeof(*hfsn), GFP_NOFS);
+	if (unlikely(!hfsn))
+		goto out;
+
+	err = 0;
+	group = fsnotify_alloc_group(&au_hfsn_ops);
+	if (IS_ERR(group)) {
+		err = PTR_ERR(group);
+		pr_err("fsnotify_alloc_group() failed, %d\n", err);
+		goto out_hfsn;
+	}
+
+	group->private = hfsn;
+	hfsn->hfsn_group = group;
+	br->br_hfsn = hfsn;
+	goto out; /* success */
+
+out_hfsn:
+	au_kfree_try_rcu(hfsn);
+out:
+	return err;
+}
+
+static int au_hfsn_reset_br(unsigned int udba, struct au_branch *br, int perm)
+{
+	int err;
+
+	err = 0;
+	if (!br->br_hfsn)
+		err = au_hfsn_init_br(br, perm);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_hfsn_fin(void)
+{
+	AuDbg("au_hfsn_ifree %lld\n", (long long)atomic64_read(&au_hfsn_ifree));
+	wait_event(au_hfsn_wq, !atomic64_read(&au_hfsn_ifree));
+}
+
+const struct au_hnotify_op au_hnotify_op = {
+	.ctl		= au_hfsn_ctl,
+	.alloc		= au_hfsn_alloc,
+	.free		= au_hfsn_free,
+
+	.fin		= au_hfsn_fin,
+
+	.reset_br	= au_hfsn_reset_br,
+	.fin_br		= au_hfsn_fin_br,
+	.init_br	= au_hfsn_init_br
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/hfsplus.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/hfsplus.c
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2010-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * special support for filesystems which acquires an inode mutex
+ * at final closing a file, eg, hfsplus.
+ *
+ * This trick is very simple and stupid, just to open the file before really
+ * necessary open to tell hfsplus that this is not the final closing.
+ * The caller should call au_h_open_pre() after acquiring the inode mutex,
+ * and au_h_open_post() after releasing it.
+ */
+
+#include "aufs.h"
+
+struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex,
+			   int force_wr)
+{
+	struct file *h_file;
+	struct dentry *h_dentry;
+
+	h_dentry = au_h_dptr(dentry, bindex);
+	AuDebugOn(!h_dentry);
+	AuDebugOn(d_is_negative(h_dentry));
+
+	h_file = NULL;
+	if (au_test_hfsplus(h_dentry->d_sb)
+	    && d_is_reg(h_dentry))
+		h_file = au_h_open(dentry, bindex,
+				   O_RDONLY | O_NOATIME | O_LARGEFILE,
+				   /*file*/NULL, force_wr);
+	return h_file;
+}
+
+void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex,
+		    struct file *h_file)
+{
+	struct au_branch *br;
+
+	if (h_file) {
+		fput(h_file);
+		br = au_sbr(dentry->d_sb, bindex);
+		au_lcnt_dec(&br->br_nfiles);
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/hnotify.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/hnotify.c
@@ -0,0 +1,715 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * abstraction to notify the direct changes on lower directories
+ */
+
+/* #include <linux/iversion.h> */
+#include "aufs.h"
+
+int au_hn_alloc(struct au_hinode *hinode, struct inode *inode)
+{
+	int err;
+	struct au_hnotify *hn;
+
+	err = -ENOMEM;
+	hn = au_cache_alloc_hnotify();
+	if (hn) {
+		hn->hn_aufs_inode = inode;
+		hinode->hi_notify = hn;
+		err = au_hnotify_op.alloc(hinode);
+		AuTraceErr(err);
+		if (unlikely(err)) {
+			hinode->hi_notify = NULL;
+			au_cache_free_hnotify(hn);
+			/*
+			 * The upper dir was removed by udba, but the same named
+			 * dir left. In this case, aufs assigns a new inode
+			 * number and set the monitor again.
+			 * For the lower dir, the old monitor is still left.
+			 */
+			if (err == -EEXIST)
+				err = 0;
+		}
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+void au_hn_free(struct au_hinode *hinode)
+{
+	struct au_hnotify *hn;
+
+	hn = hinode->hi_notify;
+	if (hn) {
+		hinode->hi_notify = NULL;
+		if (au_hnotify_op.free(hinode, hn))
+			au_cache_free_hnotify(hn);
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_hn_ctl(struct au_hinode *hinode, int do_set)
+{
+	if (hinode->hi_notify)
+		au_hnotify_op.ctl(hinode, do_set);
+}
+
+void au_hn_reset(struct inode *inode, unsigned int flags)
+{
+	aufs_bindex_t bindex, bbot;
+	struct inode *hi;
+	struct dentry *iwhdentry;
+
+	bbot = au_ibbot(inode);
+	for (bindex = au_ibtop(inode); bindex <= bbot; bindex++) {
+		hi = au_h_iptr(inode, bindex);
+		if (!hi)
+			continue;
+
+		/* inode_lock_nested(hi, AuLsc_I_CHILD); */
+		iwhdentry = au_hi_wh(inode, bindex);
+		if (iwhdentry)
+			dget(iwhdentry);
+		au_igrab(hi);
+		au_set_h_iptr(inode, bindex, NULL, 0);
+		au_set_h_iptr(inode, bindex, au_igrab(hi),
+			      flags & ~AuHi_XINO);
+		iput(hi);
+		dput(iwhdentry);
+		/* inode_unlock(hi); */
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int hn_xino(struct inode *inode, struct inode *h_inode)
+{
+	int err;
+	aufs_bindex_t bindex, bbot, bfound, btop;
+	struct inode *h_i;
+
+	err = 0;
+	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
+		pr_warn("branch root dir was changed\n");
+		goto out;
+	}
+
+	bfound = -1;
+	bbot = au_ibbot(inode);
+	btop = au_ibtop(inode);
+#if 0 /* reserved for future use */
+	if (bindex == bbot) {
+		/* keep this ino in rename case */
+		goto out;
+	}
+#endif
+	for (bindex = btop; bindex <= bbot; bindex++)
+		if (au_h_iptr(inode, bindex) == h_inode) {
+			bfound = bindex;
+			break;
+		}
+	if (bfound < 0)
+		goto out;
+
+	for (bindex = btop; bindex <= bbot; bindex++) {
+		h_i = au_h_iptr(inode, bindex);
+		if (!h_i)
+			continue;
+
+		err = au_xino_write(inode->i_sb, bindex, h_i->i_ino, /*ino*/0);
+		/* ignore this error */
+		/* bad action? */
+	}
+
+	/* children inode number will be broken */
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int hn_gen_tree(struct dentry *dentry)
+{
+	int err, i, j, ndentry;
+	struct au_dcsub_pages dpages;
+	struct au_dpage *dpage;
+	struct dentry **dentries;
+
+	err = au_dpages_init(&dpages, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+	err = au_dcsub_pages(&dpages, dentry, NULL, NULL);
+	if (unlikely(err))
+		goto out_dpages;
+
+	for (i = 0; i < dpages.ndpage; i++) {
+		dpage = dpages.dpages + i;
+		dentries = dpage->dentries;
+		ndentry = dpage->ndentry;
+		for (j = 0; j < ndentry; j++) {
+			struct dentry *d;
+
+			d = dentries[j];
+			if (IS_ROOT(d))
+				continue;
+
+			au_digen_dec(d);
+			if (d_really_is_positive(d))
+				/* todo: reset children xino?
+				   cached children only? */
+				au_iigen_dec(d_inode(d));
+		}
+	}
+
+out_dpages:
+	au_dpages_free(&dpages);
+out:
+	return err;
+}
+
+/*
+ * return 0 if processed.
+ */
+static int hn_gen_by_inode(char *name, unsigned int nlen, struct inode *inode,
+			   const unsigned int isdir)
+{
+	int err;
+	struct dentry *d;
+	struct qstr *dname;
+
+	err = 1;
+	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
+		pr_warn("branch root dir was changed\n");
+		err = 0;
+		goto out;
+	}
+
+	if (!isdir) {
+		AuDebugOn(!name);
+		au_iigen_dec(inode);
+		spin_lock(&inode->i_lock);
+		hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) {
+			spin_lock(&d->d_lock);
+			dname = &d->d_name;
+			if (dname->len != nlen
+			    && memcmp(dname->name, name, nlen)) {
+				spin_unlock(&d->d_lock);
+				continue;
+			}
+			err = 0;
+			au_digen_dec(d);
+			spin_unlock(&d->d_lock);
+			break;
+		}
+		spin_unlock(&inode->i_lock);
+	} else {
+		au_fset_si(au_sbi(inode->i_sb), FAILED_REFRESH_DIR);
+		d = d_find_any_alias(inode);
+		if (!d) {
+			au_iigen_dec(inode);
+			goto out;
+		}
+
+		spin_lock(&d->d_lock);
+		dname = &d->d_name;
+		if (dname->len == nlen && !memcmp(dname->name, name, nlen)) {
+			spin_unlock(&d->d_lock);
+			err = hn_gen_tree(d);
+			spin_lock(&d->d_lock);
+		}
+		spin_unlock(&d->d_lock);
+		dput(d);
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int hn_gen_by_name(struct dentry *dentry, const unsigned int isdir)
+{
+	int err;
+
+	if (IS_ROOT(dentry)) {
+		pr_warn("branch root dir was changed\n");
+		return 0;
+	}
+
+	err = 0;
+	if (!isdir) {
+		au_digen_dec(dentry);
+		if (d_really_is_positive(dentry))
+			au_iigen_dec(d_inode(dentry));
+	} else {
+		au_fset_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIR);
+		if (d_really_is_positive(dentry))
+			err = hn_gen_tree(dentry);
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* hnotify job flags */
+#define AuHnJob_XINO0		1
+#define AuHnJob_GEN		(1 << 1)
+#define AuHnJob_DIRENT		(1 << 2)
+#define AuHnJob_ISDIR		(1 << 3)
+#define AuHnJob_TRYXINO0	(1 << 4)
+#define AuHnJob_MNTPNT		(1 << 5)
+#define au_ftest_hnjob(flags, name)	((flags) & AuHnJob_##name)
+#define au_fset_hnjob(flags, name) \
+	do { (flags) |= AuHnJob_##name; } while (0)
+#define au_fclr_hnjob(flags, name) \
+	do { (flags) &= ~AuHnJob_##name; } while (0)
+
+enum {
+	AuHn_CHILD,
+	AuHn_PARENT,
+	AuHnLast
+};
+
+struct au_hnotify_args {
+	struct inode *h_dir, *dir, *h_child_inode;
+	u32 mask;
+	unsigned int flags[AuHnLast];
+	unsigned int h_child_nlen;
+	char h_child_name[];
+};
+
+struct hn_job_args {
+	unsigned int flags;
+	struct inode *inode, *h_inode, *dir, *h_dir;
+	struct dentry *dentry;
+	char *h_name;
+	int h_nlen;
+};
+
+static int hn_job(struct hn_job_args *a)
+{
+	const unsigned int isdir = au_ftest_hnjob(a->flags, ISDIR);
+	int e;
+
+	/* reset xino */
+	if (au_ftest_hnjob(a->flags, XINO0) && a->inode)
+		hn_xino(a->inode, a->h_inode); /* ignore this error */
+
+	if (au_ftest_hnjob(a->flags, TRYXINO0)
+	    && a->inode
+	    && a->h_inode) {
+		inode_lock_shared_nested(a->h_inode, AuLsc_I_CHILD);
+		if (!a->h_inode->i_nlink
+		    && !(a->h_inode->i_state & I_LINKABLE))
+			hn_xino(a->inode, a->h_inode); /* ignore this error */
+		inode_unlock_shared(a->h_inode);
+	}
+
+	/* make the generation obsolete */
+	if (au_ftest_hnjob(a->flags, GEN)) {
+		e = -1;
+		if (a->inode)
+			e = hn_gen_by_inode(a->h_name, a->h_nlen, a->inode,
+					      isdir);
+		if (e && a->dentry)
+			hn_gen_by_name(a->dentry, isdir);
+		/* ignore this error */
+	}
+
+	/* make dir entries obsolete */
+	if (au_ftest_hnjob(a->flags, DIRENT) && a->inode) {
+		struct au_vdir *vdir;
+
+		vdir = au_ivdir(a->inode);
+		if (vdir)
+			vdir->vd_jiffy = 0;
+		/* IMustLock(a->inode); */
+		/* inode_inc_iversion(a->inode); */
+	}
+
+	/* can do nothing but warn */
+	if (au_ftest_hnjob(a->flags, MNTPNT)
+	    && a->dentry
+	    && d_mountpoint(a->dentry))
+		pr_warn("mount-point %pd is removed or renamed\n", a->dentry);
+
+	return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *lookup_wlock_by_name(char *name, unsigned int nlen,
+					   struct inode *dir)
+{
+	struct dentry *dentry, *d, *parent;
+	struct qstr *dname;
+
+	parent = d_find_any_alias(dir);
+	if (!parent)
+		return NULL;
+
+	dentry = NULL;
+	spin_lock(&parent->d_lock);
+	list_for_each_entry(d, &parent->d_subdirs, d_child) {
+		/* AuDbg("%pd\n", d); */
+		spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED);
+		dname = &d->d_name;
+		if (dname->len != nlen || memcmp(dname->name, name, nlen))
+			goto cont_unlock;
+		if (au_di(d))
+			au_digen_dec(d);
+		else
+			goto cont_unlock;
+		if (au_dcount(d) > 0) {
+			dentry = dget_dlock(d);
+			spin_unlock(&d->d_lock);
+			break;
+		}
+
+cont_unlock:
+		spin_unlock(&d->d_lock);
+	}
+	spin_unlock(&parent->d_lock);
+	dput(parent);
+
+	if (dentry)
+		di_write_lock_child(dentry);
+
+	return dentry;
+}
+
+static struct inode *lookup_wlock_by_ino(struct super_block *sb,
+					 aufs_bindex_t bindex, ino_t h_ino)
+{
+	struct inode *inode;
+	ino_t ino;
+	int err;
+
+	inode = NULL;
+	err = au_xino_read(sb, bindex, h_ino, &ino);
+	if (!err && ino)
+		inode = ilookup(sb, ino);
+	if (!inode)
+		goto out;
+
+	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
+		pr_warn("wrong root branch\n");
+		iput(inode);
+		inode = NULL;
+		goto out;
+	}
+
+	ii_write_lock_child(inode);
+
+out:
+	return inode;
+}
+
+static void au_hn_bh(void *_args)
+{
+	struct au_hnotify_args *a = _args;
+	struct super_block *sb;
+	aufs_bindex_t bindex, bbot, bfound;
+	unsigned char xino, try_iput;
+	int err;
+	struct inode *inode;
+	ino_t h_ino;
+	struct hn_job_args args;
+	struct dentry *dentry;
+	struct au_sbinfo *sbinfo;
+
+	AuDebugOn(!_args);
+	AuDebugOn(!a->h_dir);
+	AuDebugOn(!a->dir);
+	AuDebugOn(!a->mask);
+	AuDbg("mask 0x%x, i%lu, hi%lu, hci%lu\n",
+	      a->mask, a->dir->i_ino, a->h_dir->i_ino,
+	      a->h_child_inode ? a->h_child_inode->i_ino : 0);
+
+	inode = NULL;
+	dentry = NULL;
+	/*
+	 * do not lock a->dir->i_mutex here
+	 * because of d_revalidate() may cause a deadlock.
+	 */
+	sb = a->dir->i_sb;
+	AuDebugOn(!sb);
+	sbinfo = au_sbi(sb);
+	AuDebugOn(!sbinfo);
+	si_write_lock(sb, AuLock_NOPLMW);
+
+	if (au_opt_test(sbinfo->si_mntflags, DIRREN))
+		switch (a->mask & FS_EVENTS_POSS_ON_CHILD) {
+		case FS_MOVED_FROM:
+		case FS_MOVED_TO:
+			AuWarn1("DIRREN with UDBA may not work correctly "
+				"for the direct rename(2)\n");
+		}
+
+	ii_read_lock_parent(a->dir);
+	bfound = -1;
+	bbot = au_ibbot(a->dir);
+	for (bindex = au_ibtop(a->dir); bindex <= bbot; bindex++)
+		if (au_h_iptr(a->dir, bindex) == a->h_dir) {
+			bfound = bindex;
+			break;
+		}
+	ii_read_unlock(a->dir);
+	if (unlikely(bfound < 0))
+		goto out;
+
+	xino = !!au_opt_test(au_mntflags(sb), XINO);
+	h_ino = 0;
+	if (a->h_child_inode)
+		h_ino = a->h_child_inode->i_ino;
+
+	if (a->h_child_nlen
+	    && (au_ftest_hnjob(a->flags[AuHn_CHILD], GEN)
+		|| au_ftest_hnjob(a->flags[AuHn_CHILD], MNTPNT)))
+		dentry = lookup_wlock_by_name(a->h_child_name, a->h_child_nlen,
+					      a->dir);
+	try_iput = 0;
+	if (dentry && d_really_is_positive(dentry))
+		inode = d_inode(dentry);
+	if (xino && !inode && h_ino
+	    && (au_ftest_hnjob(a->flags[AuHn_CHILD], XINO0)
+		|| au_ftest_hnjob(a->flags[AuHn_CHILD], TRYXINO0)
+		|| au_ftest_hnjob(a->flags[AuHn_CHILD], GEN))) {
+		inode = lookup_wlock_by_ino(sb, bfound, h_ino);
+		try_iput = 1;
+	}
+
+	args.flags = a->flags[AuHn_CHILD];
+	args.dentry = dentry;
+	args.inode = inode;
+	args.h_inode = a->h_child_inode;
+	args.dir = a->dir;
+	args.h_dir = a->h_dir;
+	args.h_name = a->h_child_name;
+	args.h_nlen = a->h_child_nlen;
+	err = hn_job(&args);
+	if (dentry) {
+		if (au_di(dentry))
+			di_write_unlock(dentry);
+		dput(dentry);
+	}
+	if (inode && try_iput) {
+		ii_write_unlock(inode);
+		iput(inode);
+	}
+
+	ii_write_lock_parent(a->dir);
+	args.flags = a->flags[AuHn_PARENT];
+	args.dentry = NULL;
+	args.inode = a->dir;
+	args.h_inode = a->h_dir;
+	args.dir = NULL;
+	args.h_dir = NULL;
+	args.h_name = NULL;
+	args.h_nlen = 0;
+	err = hn_job(&args);
+	ii_write_unlock(a->dir);
+
+out:
+	iput(a->h_child_inode);
+	iput(a->h_dir);
+	iput(a->dir);
+	si_write_unlock(sb);
+	au_nwt_done(&sbinfo->si_nowait);
+	au_kfree_rcu(a);
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask,
+	       const struct qstr *h_child_qstr, struct inode *h_child_inode)
+{
+	int err, len;
+	unsigned int flags[AuHnLast], f;
+	unsigned char isdir, isroot, wh;
+	struct inode *dir;
+	struct au_hnotify_args *args;
+	char *p, *h_child_name;
+
+	err = 0;
+	AuDebugOn(!hnotify || !hnotify->hn_aufs_inode);
+	dir = igrab(hnotify->hn_aufs_inode);
+	if (!dir)
+		goto out;
+
+	isroot = (dir->i_ino == AUFS_ROOT_INO);
+	wh = 0;
+	h_child_name = (void *)h_child_qstr->name;
+	len = h_child_qstr->len;
+	if (h_child_name) {
+		if (len > AUFS_WH_PFX_LEN
+		    && !memcmp(h_child_name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
+			h_child_name += AUFS_WH_PFX_LEN;
+			len -= AUFS_WH_PFX_LEN;
+			wh = 1;
+		}
+	}
+
+	isdir = 0;
+	if (h_child_inode)
+		isdir = !!S_ISDIR(h_child_inode->i_mode);
+	flags[AuHn_PARENT] = AuHnJob_ISDIR;
+	flags[AuHn_CHILD] = 0;
+	if (isdir)
+		flags[AuHn_CHILD] = AuHnJob_ISDIR;
+	au_fset_hnjob(flags[AuHn_PARENT], DIRENT);
+	au_fset_hnjob(flags[AuHn_CHILD], GEN);
+	switch (mask & ALL_FSNOTIFY_DIRENT_EVENTS) {
+	case FS_MOVED_FROM:
+	case FS_MOVED_TO:
+		au_fset_hnjob(flags[AuHn_CHILD], XINO0);
+		au_fset_hnjob(flags[AuHn_CHILD], MNTPNT);
+		/*FALLTHROUGH*/
+	case FS_CREATE:
+		AuDebugOn(!h_child_name);
+		break;
+
+	case FS_DELETE:
+		/*
+		 * aufs never be able to get this child inode.
+		 * revalidation should be in d_revalidate()
+		 * by checking i_nlink, i_generation or d_unhashed().
+		 */
+		AuDebugOn(!h_child_name);
+		au_fset_hnjob(flags[AuHn_CHILD], TRYXINO0);
+		au_fset_hnjob(flags[AuHn_CHILD], MNTPNT);
+		break;
+
+	default:
+		AuDebugOn(1);
+	}
+
+	if (wh)
+		h_child_inode = NULL;
+
+	err = -ENOMEM;
+	/* iput() and kfree() will be called in au_hnotify() */
+	args = kmalloc(sizeof(*args) + len + 1, GFP_NOFS);
+	if (unlikely(!args)) {
+		AuErr1("no memory\n");
+		iput(dir);
+		goto out;
+	}
+	args->flags[AuHn_PARENT] = flags[AuHn_PARENT];
+	args->flags[AuHn_CHILD] = flags[AuHn_CHILD];
+	args->mask = mask;
+	args->dir = dir;
+	args->h_dir = igrab(h_dir);
+	if (h_child_inode)
+		h_child_inode = igrab(h_child_inode); /* can be NULL */
+	args->h_child_inode = h_child_inode;
+	args->h_child_nlen = len;
+	if (len) {
+		p = (void *)args;
+		p += sizeof(*args);
+		memcpy(p, h_child_name, len);
+		p[len] = 0;
+	}
+
+	/* NFS fires the event for silly-renamed one from kworker */
+	f = 0;
+	if (!dir->i_nlink
+	    || (au_test_nfs(h_dir->i_sb) && (mask & FS_DELETE)))
+		f = AuWkq_NEST;
+	err = au_wkq_nowait(au_hn_bh, args, dir->i_sb, f);
+	if (unlikely(err)) {
+		pr_err("wkq %d\n", err);
+		iput(args->h_child_inode);
+		iput(args->h_dir);
+		iput(args->dir);
+		au_kfree_rcu(args);
+	}
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm)
+{
+	int err;
+
+	AuDebugOn(!(udba & AuOptMask_UDBA));
+
+	err = 0;
+	if (au_hnotify_op.reset_br)
+		err = au_hnotify_op.reset_br(udba, br, perm);
+
+	return err;
+}
+
+int au_hnotify_init_br(struct au_branch *br, int perm)
+{
+	int err;
+
+	err = 0;
+	if (au_hnotify_op.init_br)
+		err = au_hnotify_op.init_br(br, perm);
+
+	return err;
+}
+
+void au_hnotify_fin_br(struct au_branch *br)
+{
+	if (au_hnotify_op.fin_br)
+		au_hnotify_op.fin_br(br);
+}
+
+static void au_hn_destroy_cache(void)
+{
+	kmem_cache_destroy(au_cache[AuCache_HNOTIFY]);
+	au_cache[AuCache_HNOTIFY] = NULL;
+}
+
+int __init au_hnotify_init(void)
+{
+	int err;
+
+	err = -ENOMEM;
+	au_cache[AuCache_HNOTIFY] = AuCache(au_hnotify);
+	if (au_cache[AuCache_HNOTIFY]) {
+		err = 0;
+		if (au_hnotify_op.init)
+			err = au_hnotify_op.init();
+		if (unlikely(err))
+			au_hn_destroy_cache();
+	}
+	AuTraceErr(err);
+	return err;
+}
+
+void au_hnotify_fin(void)
+{
+	if (au_hnotify_op.fin)
+		au_hnotify_op.fin();
+
+	/* cf. au_cache_fin() */
+	if (au_cache[AuCache_HNOTIFY])
+		au_hn_destroy_cache();
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/i_op.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/i_op.c
@@ -0,0 +1,1498 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode operations (except add/del/rename)
+ */
+
+#include <linux/device_cgroup.h>
+#include <linux/fs_stack.h>
+#include <linux/iversion.h>
+#include <linux/namei.h>
+#include <linux/security.h>
+#include "aufs.h"
+
+static int h_permission(struct inode *h_inode, int mask,
+			struct path *h_path, int brperm)
+{
+	int err;
+	const unsigned char write_mask = !!(mask & (MAY_WRITE | MAY_APPEND));
+
+	err = -EPERM;
+	if (write_mask && IS_IMMUTABLE(h_inode))
+		goto out;
+
+	err = -EACCES;
+	if (((mask & MAY_EXEC)
+	     && S_ISREG(h_inode->i_mode)
+	     && (path_noexec(h_path)
+		 || !(h_inode->i_mode & 0111))))
+		goto out;
+
+	/*
+	 * - skip the lower fs test in the case of write to ro branch.
+	 * - nfs dir permission write check is optimized, but a policy for
+	 *   link/rename requires a real check.
+	 * - nfs always sets SB_POSIXACL regardless its mount option 'noacl.'
+	 *   in this case, generic_permission() returns -EOPNOTSUPP.
+	 */
+	if ((write_mask && !au_br_writable(brperm))
+	    || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode)
+		&& write_mask && !(mask & MAY_READ))
+	    || !h_inode->i_op->permission) {
+		/* AuLabel(generic_permission); */
+		/* AuDbg("get_acl %ps\n", h_inode->i_op->get_acl); */
+		err = generic_permission(h_inode, mask);
+		if (err == -EOPNOTSUPP && au_test_nfs_noacl(h_inode))
+			err = h_inode->i_op->permission(h_inode, mask);
+		AuTraceErr(err);
+	} else {
+		/* AuLabel(h_inode->permission); */
+		err = h_inode->i_op->permission(h_inode, mask);
+		AuTraceErr(err);
+	}
+
+	if (!err)
+		err = devcgroup_inode_permission(h_inode, mask);
+	if (!err)
+		err = security_inode_permission(h_inode, mask);
+
+out:
+	return err;
+}
+
+static int aufs_permission(struct inode *inode, int mask)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	const unsigned char isdir = !!S_ISDIR(inode->i_mode),
+		write_mask = !!(mask & (MAY_WRITE | MAY_APPEND));
+	struct inode *h_inode;
+	struct super_block *sb;
+	struct au_branch *br;
+
+	/* todo: support rcu-walk? */
+	if (mask & MAY_NOT_BLOCK)
+		return -ECHILD;
+
+	sb = inode->i_sb;
+	si_read_lock(sb, AuLock_FLUSH);
+	ii_read_lock_child(inode);
+#if 0 /* reserved for future use */
+	/*
+	 * This test may be rather 'too much' since the test is essentially done
+	 * in the aufs_lookup().  Theoretically it is possible that the inode
+	 * generation doesn't match to the superblock's here.  But it isn't a
+	 * big deal I suppose.
+	 */
+	err = au_iigen_test(inode, au_sigen(sb));
+	if (unlikely(err))
+		goto out;
+#endif
+
+	if (!isdir
+	    || write_mask
+	    || au_opt_test(au_mntflags(sb), DIRPERM1)) {
+		err = au_busy_or_stale();
+		h_inode = au_h_iptr(inode, au_ibtop(inode));
+		if (unlikely(!h_inode
+			     || (h_inode->i_mode & S_IFMT)
+			     != (inode->i_mode & S_IFMT)))
+			goto out;
+
+		err = 0;
+		bindex = au_ibtop(inode);
+		br = au_sbr(sb, bindex);
+		err = h_permission(h_inode, mask, &br->br_path, br->br_perm);
+		if (write_mask
+		    && !err
+		    && !special_file(h_inode->i_mode)) {
+			/* test whether the upper writable branch exists */
+			err = -EROFS;
+			for (; bindex >= 0; bindex--)
+				if (!au_br_rdonly(au_sbr(sb, bindex))) {
+					err = 0;
+					break;
+				}
+		}
+		goto out;
+	}
+
+	/* non-write to dir */
+	err = 0;
+	bbot = au_ibbot(inode);
+	for (bindex = au_ibtop(inode); !err && bindex <= bbot; bindex++) {
+		h_inode = au_h_iptr(inode, bindex);
+		if (h_inode) {
+			err = au_busy_or_stale();
+			if (unlikely(!S_ISDIR(h_inode->i_mode)))
+				break;
+
+			br = au_sbr(sb, bindex);
+			err = h_permission(h_inode, mask, &br->br_path,
+					   br->br_perm);
+		}
+	}
+
+out:
+	ii_read_unlock(inode);
+	si_read_unlock(sb);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *aufs_lookup(struct inode *dir, struct dentry *dentry,
+				  unsigned int flags)
+{
+	struct dentry *ret, *parent;
+	struct inode *inode;
+	struct super_block *sb;
+	int err, npositive;
+
+	IMustLock(dir);
+
+	/* todo: support rcu-walk? */
+	ret = ERR_PTR(-ECHILD);
+	if (flags & LOOKUP_RCU)
+		goto out;
+
+	ret = ERR_PTR(-ENAMETOOLONG);
+	if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+		goto out;
+
+	sb = dir->i_sb;
+	err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+	ret = ERR_PTR(err);
+	if (unlikely(err))
+		goto out;
+
+	err = au_di_init(dentry);
+	ret = ERR_PTR(err);
+	if (unlikely(err))
+		goto out_si;
+
+	inode = NULL;
+	npositive = 0; /* suppress a warning */
+	parent = dentry->d_parent; /* dir inode is locked */
+	di_read_lock_parent(parent, AuLock_IR);
+	err = au_alive_dir(parent);
+	if (!err)
+		err = au_digen_test(parent, au_sigen(sb));
+	if (!err) {
+		/* regardless LOOKUP_CREATE, always ALLOW_NEG */
+		npositive = au_lkup_dentry(dentry, au_dbtop(parent),
+					   AuLkup_ALLOW_NEG);
+		err = npositive;
+	}
+	di_read_unlock(parent, AuLock_IR);
+	ret = ERR_PTR(err);
+	if (unlikely(err < 0))
+		goto out_unlock;
+
+	if (npositive) {
+		inode = au_new_inode(dentry, /*must_new*/0);
+		if (IS_ERR(inode)) {
+			ret = (void *)inode;
+			inode = NULL;
+			goto out_unlock;
+		}
+	}
+
+	if (inode)
+		atomic_inc(&inode->i_count);
+	ret = d_splice_alias(inode, dentry);
+#if 0 /* reserved for future use */
+	if (unlikely(d_need_lookup(dentry))) {
+		spin_lock(&dentry->d_lock);
+		dentry->d_flags &= ~DCACHE_NEED_LOOKUP;
+		spin_unlock(&dentry->d_lock);
+	} else
+#endif
+	if (inode) {
+		if (!IS_ERR(ret)) {
+			iput(inode);
+			if (ret && ret != dentry)
+				ii_write_unlock(inode);
+		} else {
+			ii_write_unlock(inode);
+			iput(inode);
+			inode = NULL;
+		}
+	}
+
+out_unlock:
+	di_write_unlock(dentry);
+out_si:
+	si_read_unlock(sb);
+out:
+	return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * very dirty and complicated aufs ->atomic_open().
+ * aufs_atomic_open()
+ * + au_aopen_or_create()
+ *   + add_simple()
+ *     + vfsub_atomic_open()
+ *       + branch fs ->atomic_open()
+ *	   may call the actual 'open' for h_file
+ *       + inc br_nfiles only if opened
+ * + au_aopen_no_open() or au_aopen_do_open()
+ *
+ * au_aopen_do_open()
+ * + finish_open()
+ *   + au_do_aopen()
+ *     + au_do_open() the body of all 'open'
+ *       + au_do_open_nondir()
+ *	   set the passed h_file
+ *
+ * au_aopen_no_open()
+ * + finish_no_open()
+ */
+
+struct aopen_node {
+	struct hlist_bl_node hblist;
+	struct file *file, *h_file;
+};
+
+static int au_do_aopen(struct inode *inode, struct file *file)
+{
+	struct hlist_bl_head *aopen;
+	struct hlist_bl_node *pos;
+	struct aopen_node *node;
+	struct au_do_open_args args = {
+		.aopen	= 1,
+		.open	= au_do_open_nondir
+	};
+
+	aopen = &au_sbi(inode->i_sb)->si_aopen;
+	hlist_bl_lock(aopen);
+	hlist_bl_for_each_entry(node, pos, aopen, hblist)
+		if (node->file == file) {
+			args.h_file = node->h_file;
+			break;
+		}
+	hlist_bl_unlock(aopen);
+	/* AuDebugOn(!args.h_file); */
+
+	return au_do_open(file, &args);
+}
+
+static int au_aopen_do_open(struct file *file, struct dentry *dentry,
+			    struct aopen_node *aopen_node)
+{
+	int err;
+	struct hlist_bl_head *aopen;
+
+	AuLabel(here);
+	aopen = &au_sbi(dentry->d_sb)->si_aopen;
+	au_hbl_add(&aopen_node->hblist, aopen);
+	err = finish_open(file, dentry, au_do_aopen);
+	au_hbl_del(&aopen_node->hblist, aopen);
+	/* AuDbgFile(file); */
+	AuDbg("%pd%s%s\n", dentry,
+	      (file->f_mode & FMODE_CREATED) ? " created" : "",
+	      (file->f_mode & FMODE_OPENED) ? " opened" : "");
+
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_aopen_no_open(struct file *file, struct dentry *dentry)
+{
+	int err;
+
+	AuLabel(here);
+	dget(dentry);
+	err = finish_no_open(file, dentry);
+
+	AuTraceErr(err);
+	return err;
+}
+
+static int aufs_atomic_open(struct inode *dir, struct dentry *dentry,
+			    struct file *file, unsigned int open_flag,
+			    umode_t create_mode)
+{
+	int err, did_open;
+	unsigned int lkup_flags;
+	aufs_bindex_t bindex;
+	struct super_block *sb;
+	struct dentry *parent, *d;
+	struct vfsub_aopen_args args = {
+		.open_flag	= open_flag,
+		.create_mode	= create_mode
+	};
+	struct aopen_node aopen_node = {
+		.file	= file
+	};
+
+	IMustLock(dir);
+	AuDbg("open_flag 0%o\n", open_flag);
+	AuDbgDentry(dentry);
+
+	err = 0;
+	if (!au_di(dentry)) {
+		lkup_flags = LOOKUP_OPEN;
+		if (open_flag & O_CREAT)
+			lkup_flags |= LOOKUP_CREATE;
+		d = aufs_lookup(dir, dentry, lkup_flags);
+		if (IS_ERR(d)) {
+			err = PTR_ERR(d);
+			AuTraceErr(err);
+			goto out;
+		} else if (d) {
+			/*
+			 * obsoleted dentry found.
+			 * another error will be returned later.
+			 */
+			d_drop(d);
+			AuDbgDentry(d);
+			dput(d);
+		}
+		AuDbgDentry(dentry);
+	}
+
+	if (d_is_positive(dentry)
+	    || d_unhashed(dentry)
+	    || d_unlinked(dentry)
+	    || !(open_flag & O_CREAT)) {
+		err = au_aopen_no_open(file, dentry);
+		goto out; /* success */
+	}
+
+	err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH | AuLock_GEN);
+	if (unlikely(err))
+		goto out;
+
+	sb = dentry->d_sb;
+	parent = dentry->d_parent;	/* dir is locked */
+	di_write_lock_parent(parent);
+	err = au_lkup_dentry(dentry, /*btop*/0, AuLkup_ALLOW_NEG);
+	if (unlikely(err < 0))
+		goto out_parent;
+
+	AuDbgDentry(dentry);
+	if (d_is_positive(dentry)) {
+		err = au_aopen_no_open(file, dentry);
+		goto out_parent; /* success */
+	}
+
+	args.file = alloc_empty_file(file->f_flags, current_cred());
+	err = PTR_ERR(args.file);
+	if (IS_ERR(args.file))
+		goto out_parent;
+
+	bindex = au_dbtop(dentry);
+	err = au_aopen_or_create(dir, dentry, &args);
+	AuTraceErr(err);
+	AuDbgFile(args.file);
+	file->f_mode = args.file->f_mode & ~FMODE_OPENED;
+	did_open = !!(args.file->f_mode & FMODE_OPENED);
+	if (!did_open) {
+		fput(args.file);
+		args.file = NULL;
+	}
+	di_write_unlock(parent);
+	di_write_unlock(dentry);
+	if (unlikely(err < 0)) {
+		if (args.file)
+			fput(args.file);
+		goto out_sb;
+	}
+
+	if (!did_open)
+		err = au_aopen_no_open(file, dentry);
+	else {
+		aopen_node.h_file = args.file;
+		err = au_aopen_do_open(file, dentry, &aopen_node);
+	}
+	if (unlikely(err < 0)) {
+		if (args.file)
+			fput(args.file);
+		if (did_open)
+			au_lcnt_dec(&args.br->br_nfiles);
+	}
+	goto out_sb; /* success */
+
+out_parent:
+	di_write_unlock(parent);
+	di_write_unlock(dentry);
+out_sb:
+	si_read_unlock(sb);
+out:
+	AuTraceErr(err);
+	AuDbgFile(file);
+	return err;
+}
+
+
+/* ---------------------------------------------------------------------- */
+
+static int au_wr_dir_cpup(struct dentry *dentry, struct dentry *parent,
+			  const unsigned char add_entry, aufs_bindex_t bcpup,
+			  aufs_bindex_t btop)
+{
+	int err;
+	struct dentry *h_parent;
+	struct inode *h_dir;
+
+	if (add_entry)
+		IMustLock(d_inode(parent));
+	else
+		di_write_lock_parent(parent);
+
+	err = 0;
+	if (!au_h_dptr(parent, bcpup)) {
+		if (btop > bcpup)
+			err = au_cpup_dirs(dentry, bcpup);
+		else if (btop < bcpup)
+			err = au_cpdown_dirs(dentry, bcpup);
+		else
+			BUG();
+	}
+	if (!err && add_entry && !au_ftest_wrdir(add_entry, TMPFILE)) {
+		h_parent = au_h_dptr(parent, bcpup);
+		h_dir = d_inode(h_parent);
+		inode_lock_shared_nested(h_dir, AuLsc_I_PARENT);
+		err = au_lkup_neg(dentry, bcpup, /*wh*/0);
+		/* todo: no unlock here */
+		inode_unlock_shared(h_dir);
+
+		AuDbg("bcpup %d\n", bcpup);
+		if (!err) {
+			if (d_really_is_negative(dentry))
+				au_set_h_dptr(dentry, btop, NULL);
+			au_update_dbrange(dentry, /*do_put_zero*/0);
+		}
+	}
+
+	if (!add_entry)
+		di_write_unlock(parent);
+	if (!err)
+		err = bcpup; /* success */
+
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * decide the branch and the parent dir where we will create a new entry.
+ * returns new bindex or an error.
+ * copyup the parent dir if needed.
+ */
+int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry,
+	      struct au_wr_dir_args *args)
+{
+	int err;
+	unsigned int flags;
+	aufs_bindex_t bcpup, btop, src_btop;
+	const unsigned char add_entry
+		= au_ftest_wrdir(args->flags, ADD_ENTRY)
+		| au_ftest_wrdir(args->flags, TMPFILE);
+	struct super_block *sb;
+	struct dentry *parent;
+	struct au_sbinfo *sbinfo;
+
+	sb = dentry->d_sb;
+	sbinfo = au_sbi(sb);
+	parent = dget_parent(dentry);
+	btop = au_dbtop(dentry);
+	bcpup = btop;
+	if (args->force_btgt < 0) {
+		if (src_dentry) {
+			src_btop = au_dbtop(src_dentry);
+			if (src_btop < btop)
+				bcpup = src_btop;
+		} else if (add_entry) {
+			flags = 0;
+			if (au_ftest_wrdir(args->flags, ISDIR))
+				au_fset_wbr(flags, DIR);
+			err = AuWbrCreate(sbinfo, dentry, flags);
+			bcpup = err;
+		}
+
+		if (bcpup < 0 || au_test_ro(sb, bcpup, d_inode(dentry))) {
+			if (add_entry)
+				err = AuWbrCopyup(sbinfo, dentry);
+			else {
+				if (!IS_ROOT(dentry)) {
+					di_read_lock_parent(parent, !AuLock_IR);
+					err = AuWbrCopyup(sbinfo, dentry);
+					di_read_unlock(parent, !AuLock_IR);
+				} else
+					err = AuWbrCopyup(sbinfo, dentry);
+			}
+			bcpup = err;
+			if (unlikely(err < 0))
+				goto out;
+		}
+	} else {
+		bcpup = args->force_btgt;
+		AuDebugOn(au_test_ro(sb, bcpup, d_inode(dentry)));
+	}
+
+	AuDbg("btop %d, bcpup %d\n", btop, bcpup);
+	err = bcpup;
+	if (bcpup == btop)
+		goto out; /* success */
+
+	/* copyup the new parent into the branch we process */
+	err = au_wr_dir_cpup(dentry, parent, add_entry, bcpup, btop);
+	if (err >= 0) {
+		if (d_really_is_negative(dentry)) {
+			au_set_h_dptr(dentry, btop, NULL);
+			au_set_dbtop(dentry, bcpup);
+			au_set_dbbot(dentry, bcpup);
+		}
+		AuDebugOn(add_entry
+			  && !au_ftest_wrdir(args->flags, TMPFILE)
+			  && !au_h_dptr(dentry, bcpup));
+	}
+
+out:
+	dput(parent);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_pin_hdir_unlock(struct au_pin *p)
+{
+	if (p->hdir)
+		au_hn_inode_unlock(p->hdir);
+}
+
+int au_pin_hdir_lock(struct au_pin *p)
+{
+	int err;
+
+	err = 0;
+	if (!p->hdir)
+		goto out;
+
+	/* even if an error happens later, keep this lock */
+	au_hn_inode_lock_nested(p->hdir, p->lsc_hi);
+
+	err = -EBUSY;
+	if (unlikely(p->hdir->hi_inode != d_inode(p->h_parent)))
+		goto out;
+
+	err = 0;
+	if (p->h_dentry)
+		err = au_h_verify(p->h_dentry, p->udba, p->hdir->hi_inode,
+				  p->h_parent, p->br);
+
+out:
+	return err;
+}
+
+int au_pin_hdir_relock(struct au_pin *p)
+{
+	int err, i;
+	struct inode *h_i;
+	struct dentry *h_d[] = {
+		p->h_dentry,
+		p->h_parent
+	};
+
+	err = au_pin_hdir_lock(p);
+	if (unlikely(err))
+		goto out;
+
+	for (i = 0; !err && i < sizeof(h_d)/sizeof(*h_d); i++) {
+		if (!h_d[i])
+			continue;
+		if (d_is_positive(h_d[i])) {
+			h_i = d_inode(h_d[i]);
+			err = !h_i->i_nlink;
+		}
+	}
+
+out:
+	return err;
+}
+
+static void au_pin_hdir_set_owner(struct au_pin *p, struct task_struct *task)
+{
+	atomic_long_set(&p->hdir->hi_inode->i_rwsem.owner, (long)task);
+}
+
+void au_pin_hdir_acquire_nest(struct au_pin *p)
+{
+	if (p->hdir) {
+		rwsem_acquire_nest(&p->hdir->hi_inode->i_rwsem.dep_map,
+				   p->lsc_hi, 0, NULL, _RET_IP_);
+		au_pin_hdir_set_owner(p, current);
+	}
+}
+
+void au_pin_hdir_release(struct au_pin *p)
+{
+	if (p->hdir) {
+		au_pin_hdir_set_owner(p, p->task);
+		rwsem_release(&p->hdir->hi_inode->i_rwsem.dep_map, 1, _RET_IP_);
+	}
+}
+
+struct dentry *au_pinned_h_parent(struct au_pin *pin)
+{
+	if (pin && pin->parent)
+		return au_h_dptr(pin->parent, pin->bindex);
+	return NULL;
+}
+
+void au_unpin(struct au_pin *p)
+{
+	if (p->hdir)
+		au_pin_hdir_unlock(p);
+	if (p->h_mnt && au_ftest_pin(p->flags, MNT_WRITE))
+		vfsub_mnt_drop_write(p->h_mnt);
+	if (!p->hdir)
+		return;
+
+	if (!au_ftest_pin(p->flags, DI_LOCKED))
+		di_read_unlock(p->parent, AuLock_IR);
+	iput(p->hdir->hi_inode);
+	dput(p->parent);
+	p->parent = NULL;
+	p->hdir = NULL;
+	p->h_mnt = NULL;
+	/* do not clear p->task */
+}
+
+int au_do_pin(struct au_pin *p)
+{
+	int err;
+	struct super_block *sb;
+	struct inode *h_dir;
+
+	err = 0;
+	sb = p->dentry->d_sb;
+	p->br = au_sbr(sb, p->bindex);
+	if (IS_ROOT(p->dentry)) {
+		if (au_ftest_pin(p->flags, MNT_WRITE)) {
+			p->h_mnt = au_br_mnt(p->br);
+			err = vfsub_mnt_want_write(p->h_mnt);
+			if (unlikely(err)) {
+				au_fclr_pin(p->flags, MNT_WRITE);
+				goto out_err;
+			}
+		}
+		goto out;
+	}
+
+	p->h_dentry = NULL;
+	if (p->bindex <= au_dbbot(p->dentry))
+		p->h_dentry = au_h_dptr(p->dentry, p->bindex);
+
+	p->parent = dget_parent(p->dentry);
+	if (!au_ftest_pin(p->flags, DI_LOCKED))
+		di_read_lock(p->parent, AuLock_IR, p->lsc_di);
+
+	h_dir = NULL;
+	p->h_parent = au_h_dptr(p->parent, p->bindex);
+	p->hdir = au_hi(d_inode(p->parent), p->bindex);
+	if (p->hdir)
+		h_dir = p->hdir->hi_inode;
+
+	/*
+	 * udba case, or
+	 * if DI_LOCKED is not set, then p->parent may be different
+	 * and h_parent can be NULL.
+	 */
+	if (unlikely(!p->hdir || !h_dir || !p->h_parent)) {
+		err = -EBUSY;
+		if (!au_ftest_pin(p->flags, DI_LOCKED))
+			di_read_unlock(p->parent, AuLock_IR);
+		dput(p->parent);
+		p->parent = NULL;
+		goto out_err;
+	}
+
+	if (au_ftest_pin(p->flags, MNT_WRITE)) {
+		p->h_mnt = au_br_mnt(p->br);
+		err = vfsub_mnt_want_write(p->h_mnt);
+		if (unlikely(err)) {
+			au_fclr_pin(p->flags, MNT_WRITE);
+			if (!au_ftest_pin(p->flags, DI_LOCKED))
+				di_read_unlock(p->parent, AuLock_IR);
+			dput(p->parent);
+			p->parent = NULL;
+			goto out_err;
+		}
+	}
+
+	au_igrab(h_dir);
+	err = au_pin_hdir_lock(p);
+	if (!err)
+		goto out; /* success */
+
+	au_unpin(p);
+
+out_err:
+	pr_err("err %d\n", err);
+	err = au_busy_or_stale();
+out:
+	return err;
+}
+
+void au_pin_init(struct au_pin *p, struct dentry *dentry,
+		 aufs_bindex_t bindex, int lsc_di, int lsc_hi,
+		 unsigned int udba, unsigned char flags)
+{
+	p->dentry = dentry;
+	p->udba = udba;
+	p->lsc_di = lsc_di;
+	p->lsc_hi = lsc_hi;
+	p->flags = flags;
+	p->bindex = bindex;
+
+	p->parent = NULL;
+	p->hdir = NULL;
+	p->h_mnt = NULL;
+
+	p->h_dentry = NULL;
+	p->h_parent = NULL;
+	p->br = NULL;
+	p->task = current;
+}
+
+int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex,
+	   unsigned int udba, unsigned char flags)
+{
+	au_pin_init(pin, dentry, bindex, AuLsc_DI_PARENT, AuLsc_I_PARENT2,
+		    udba, flags);
+	return au_do_pin(pin);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * ->setattr() and ->getattr() are called in various cases.
+ * chmod, stat: dentry is revalidated.
+ * fchmod, fstat: file and dentry are not revalidated, additionally they may be
+ *		  unhashed.
+ * for ->setattr(), ia->ia_file is passed from ftruncate only.
+ */
+/* todo: consolidate with do_refresh() and simple_reval_dpath() */
+int au_reval_for_attr(struct dentry *dentry, unsigned int sigen)
+{
+	int err;
+	struct dentry *parent;
+
+	err = 0;
+	if (au_digen_test(dentry, sigen)) {
+		parent = dget_parent(dentry);
+		di_read_lock_parent(parent, AuLock_IR);
+		err = au_refresh_dentry(dentry, parent);
+		di_read_unlock(parent, AuLock_IR);
+		dput(parent);
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+int au_pin_and_icpup(struct dentry *dentry, struct iattr *ia,
+		     struct au_icpup_args *a)
+{
+	int err;
+	loff_t sz;
+	aufs_bindex_t btop, ibtop;
+	struct dentry *hi_wh, *parent;
+	struct inode *inode;
+	struct au_wr_dir_args wr_dir_args = {
+		.force_btgt	= -1,
+		.flags		= 0
+	};
+
+	if (d_is_dir(dentry))
+		au_fset_wrdir(wr_dir_args.flags, ISDIR);
+	/* plink or hi_wh() case */
+	btop = au_dbtop(dentry);
+	inode = d_inode(dentry);
+	ibtop = au_ibtop(inode);
+	if (btop != ibtop && !au_test_ro(inode->i_sb, ibtop, inode))
+		wr_dir_args.force_btgt = ibtop;
+	err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args);
+	if (unlikely(err < 0))
+		goto out;
+	a->btgt = err;
+	if (err != btop)
+		au_fset_icpup(a->flags, DID_CPUP);
+
+	err = 0;
+	a->pin_flags = AuPin_MNT_WRITE;
+	parent = NULL;
+	if (!IS_ROOT(dentry)) {
+		au_fset_pin(a->pin_flags, DI_LOCKED);
+		parent = dget_parent(dentry);
+		di_write_lock_parent(parent);
+	}
+
+	err = au_pin(&a->pin, dentry, a->btgt, a->udba, a->pin_flags);
+	if (unlikely(err))
+		goto out_parent;
+
+	sz = -1;
+	a->h_path.dentry = au_h_dptr(dentry, btop);
+	a->h_inode = d_inode(a->h_path.dentry);
+	if (ia && (ia->ia_valid & ATTR_SIZE)) {
+		inode_lock_shared_nested(a->h_inode, AuLsc_I_CHILD);
+		if (ia->ia_size < i_size_read(a->h_inode))
+			sz = ia->ia_size;
+		inode_unlock_shared(a->h_inode);
+	}
+
+	hi_wh = NULL;
+	if (au_ftest_icpup(a->flags, DID_CPUP) && d_unlinked(dentry)) {
+		hi_wh = au_hi_wh(inode, a->btgt);
+		if (!hi_wh) {
+			struct au_cp_generic cpg = {
+				.dentry	= dentry,
+				.bdst	= a->btgt,
+				.bsrc	= -1,
+				.len	= sz,
+				.pin	= &a->pin
+			};
+			err = au_sio_cpup_wh(&cpg, /*file*/NULL);
+			if (unlikely(err))
+				goto out_unlock;
+			hi_wh = au_hi_wh(inode, a->btgt);
+			/* todo: revalidate hi_wh? */
+		}
+	}
+
+	if (parent) {
+		au_pin_set_parent_lflag(&a->pin, /*lflag*/0);
+		di_downgrade_lock(parent, AuLock_IR);
+		dput(parent);
+		parent = NULL;
+	}
+	if (!au_ftest_icpup(a->flags, DID_CPUP))
+		goto out; /* success */
+
+	if (!d_unhashed(dentry)) {
+		struct au_cp_generic cpg = {
+			.dentry	= dentry,
+			.bdst	= a->btgt,
+			.bsrc	= btop,
+			.len	= sz,
+			.pin	= &a->pin,
+			.flags	= AuCpup_DTIME | AuCpup_HOPEN
+		};
+		err = au_sio_cpup_simple(&cpg);
+		if (!err)
+			a->h_path.dentry = au_h_dptr(dentry, a->btgt);
+	} else if (!hi_wh)
+		a->h_path.dentry = au_h_dptr(dentry, a->btgt);
+	else
+		a->h_path.dentry = hi_wh; /* do not dget here */
+
+out_unlock:
+	a->h_inode = d_inode(a->h_path.dentry);
+	if (!err)
+		goto out; /* success */
+	au_unpin(&a->pin);
+out_parent:
+	if (parent) {
+		di_write_unlock(parent);
+		dput(parent);
+	}
+out:
+	if (!err)
+		inode_lock_nested(a->h_inode, AuLsc_I_CHILD);
+	return err;
+}
+
+static int aufs_setattr(struct dentry *dentry, struct iattr *ia)
+{
+	int err;
+	struct inode *inode, *delegated;
+	struct super_block *sb;
+	struct file *file;
+	struct au_icpup_args *a;
+
+	inode = d_inode(dentry);
+	IMustLock(inode);
+
+	err = setattr_prepare(dentry, ia);
+	if (unlikely(err))
+		goto out;
+
+	err = -ENOMEM;
+	a = kzalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID))
+		ia->ia_valid &= ~ATTR_MODE;
+
+	file = NULL;
+	sb = dentry->d_sb;
+	err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+	if (unlikely(err))
+		goto out_kfree;
+
+	if (ia->ia_valid & ATTR_FILE) {
+		/* currently ftruncate(2) only */
+		AuDebugOn(!d_is_reg(dentry));
+		file = ia->ia_file;
+		err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1,
+					    /*fi_lsc*/0);
+		if (unlikely(err))
+			goto out_si;
+		ia->ia_file = au_hf_top(file);
+		a->udba = AuOpt_UDBA_NONE;
+	} else {
+		/* fchmod() doesn't pass ia_file */
+		a->udba = au_opt_udba(sb);
+		di_write_lock_child(dentry);
+		/* no d_unlinked(), to set UDBA_NONE for root */
+		if (d_unhashed(dentry))
+			a->udba = AuOpt_UDBA_NONE;
+		if (a->udba != AuOpt_UDBA_NONE) {
+			AuDebugOn(IS_ROOT(dentry));
+			err = au_reval_for_attr(dentry, au_sigen(sb));
+			if (unlikely(err))
+				goto out_dentry;
+		}
+	}
+
+	err = au_pin_and_icpup(dentry, ia, a);
+	if (unlikely(err < 0))
+		goto out_dentry;
+	if (au_ftest_icpup(a->flags, DID_CPUP)) {
+		ia->ia_file = NULL;
+		ia->ia_valid &= ~ATTR_FILE;
+	}
+
+	a->h_path.mnt = au_sbr_mnt(sb, a->btgt);
+	if ((ia->ia_valid & (ATTR_MODE | ATTR_CTIME))
+	    == (ATTR_MODE | ATTR_CTIME)) {
+		err = security_path_chmod(&a->h_path, ia->ia_mode);
+		if (unlikely(err))
+			goto out_unlock;
+	} else if ((ia->ia_valid & (ATTR_UID | ATTR_GID))
+		   && (ia->ia_valid & ATTR_CTIME)) {
+		err = security_path_chown(&a->h_path, ia->ia_uid, ia->ia_gid);
+		if (unlikely(err))
+			goto out_unlock;
+	}
+
+	if (ia->ia_valid & ATTR_SIZE) {
+		struct file *f;
+
+		if (ia->ia_size < i_size_read(inode))
+			/* unmap only */
+			truncate_setsize(inode, ia->ia_size);
+
+		f = NULL;
+		if (ia->ia_valid & ATTR_FILE)
+			f = ia->ia_file;
+		inode_unlock(a->h_inode);
+		err = vfsub_trunc(&a->h_path, ia->ia_size, ia->ia_valid, f);
+		inode_lock_nested(a->h_inode, AuLsc_I_CHILD);
+	} else {
+		delegated = NULL;
+		while (1) {
+			err = vfsub_notify_change(&a->h_path, ia, &delegated);
+			if (delegated) {
+				err = break_deleg_wait(&delegated);
+				if (!err)
+					continue;
+			}
+			break;
+		}
+	}
+	/*
+	 * regardless aufs 'acl' option setting.
+	 * why don't all acl-aware fs call this func from their ->setattr()?
+	 */
+	if (!err && (ia->ia_valid & ATTR_MODE))
+		err = vfsub_acl_chmod(a->h_inode, ia->ia_mode);
+	if (!err)
+		au_cpup_attr_changeable(inode);
+
+out_unlock:
+	inode_unlock(a->h_inode);
+	au_unpin(&a->pin);
+	if (unlikely(err))
+		au_update_dbtop(dentry);
+out_dentry:
+	di_write_unlock(dentry);
+	if (file) {
+		fi_write_unlock(file);
+		ia->ia_file = file;
+		ia->ia_valid |= ATTR_FILE;
+	}
+out_si:
+	si_read_unlock(sb);
+out_kfree:
+	au_kfree_rcu(a);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+#if IS_ENABLED(CONFIG_AUFS_XATTR) || IS_ENABLED(CONFIG_FS_POSIX_ACL)
+static int au_h_path_to_set_attr(struct dentry *dentry,
+				 struct au_icpup_args *a, struct path *h_path)
+{
+	int err;
+	struct super_block *sb;
+
+	sb = dentry->d_sb;
+	a->udba = au_opt_udba(sb);
+	/* no d_unlinked(), to set UDBA_NONE for root */
+	if (d_unhashed(dentry))
+		a->udba = AuOpt_UDBA_NONE;
+	if (a->udba != AuOpt_UDBA_NONE) {
+		AuDebugOn(IS_ROOT(dentry));
+		err = au_reval_for_attr(dentry, au_sigen(sb));
+		if (unlikely(err))
+			goto out;
+	}
+	err = au_pin_and_icpup(dentry, /*ia*/NULL, a);
+	if (unlikely(err < 0))
+		goto out;
+
+	h_path->dentry = a->h_path.dentry;
+	h_path->mnt = au_sbr_mnt(sb, a->btgt);
+
+out:
+	return err;
+}
+
+ssize_t au_sxattr(struct dentry *dentry, struct inode *inode,
+		  struct au_sxattr *arg)
+{
+	int err;
+	struct path h_path;
+	struct super_block *sb;
+	struct au_icpup_args *a;
+	struct inode *h_inode;
+
+	IMustLock(inode);
+
+	err = -ENOMEM;
+	a = kzalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	sb = dentry->d_sb;
+	err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+	if (unlikely(err))
+		goto out_kfree;
+
+	h_path.dentry = NULL;	/* silence gcc */
+	di_write_lock_child(dentry);
+	err = au_h_path_to_set_attr(dentry, a, &h_path);
+	if (unlikely(err))
+		goto out_di;
+
+	inode_unlock(a->h_inode);
+	switch (arg->type) {
+	case AU_XATTR_SET:
+		AuDebugOn(d_is_negative(h_path.dentry));
+		err = vfsub_setxattr(h_path.dentry,
+				     arg->u.set.name, arg->u.set.value,
+				     arg->u.set.size, arg->u.set.flags);
+		break;
+	case AU_ACL_SET:
+		err = -EOPNOTSUPP;
+		h_inode = d_inode(h_path.dentry);
+		if (h_inode->i_op->set_acl)
+			/* this will call posix_acl_update_mode */
+			err = h_inode->i_op->set_acl(h_inode,
+						     arg->u.acl_set.acl,
+						     arg->u.acl_set.type);
+		break;
+	}
+	if (!err)
+		au_cpup_attr_timesizes(inode);
+
+	au_unpin(&a->pin);
+	if (unlikely(err))
+		au_update_dbtop(dentry);
+
+out_di:
+	di_write_unlock(dentry);
+	si_read_unlock(sb);
+out_kfree:
+	au_kfree_rcu(a);
+out:
+	AuTraceErr(err);
+	return err;
+}
+#endif
+
+static void au_refresh_iattr(struct inode *inode, struct kstat *st,
+			     unsigned int nlink)
+{
+	unsigned int n;
+
+	inode->i_mode = st->mode;
+	/* don't i_[ug]id_write() here */
+	inode->i_uid = st->uid;
+	inode->i_gid = st->gid;
+	inode->i_atime = st->atime;
+	inode->i_mtime = st->mtime;
+	inode->i_ctime = st->ctime;
+
+	au_cpup_attr_nlink(inode, /*force*/0);
+	if (S_ISDIR(inode->i_mode)) {
+		n = inode->i_nlink;
+		n -= nlink;
+		n += st->nlink;
+		smp_mb(); /* for i_nlink */
+		/* 0 can happen */
+		set_nlink(inode, n);
+	}
+
+	spin_lock(&inode->i_lock);
+	inode->i_blocks = st->blocks;
+	i_size_write(inode, st->size);
+	spin_unlock(&inode->i_lock);
+}
+
+/*
+ * common routine for aufs_getattr() and au_getxattr().
+ * returns zero or negative (an error).
+ * @dentry will be read-locked in success.
+ */
+int au_h_path_getattr(struct dentry *dentry, int force, struct path *h_path,
+		      int locked)
+{
+	int err;
+	unsigned int mnt_flags, sigen;
+	unsigned char udba_none;
+	aufs_bindex_t bindex;
+	struct super_block *sb, *h_sb;
+	struct inode *inode;
+
+	h_path->mnt = NULL;
+	h_path->dentry = NULL;
+
+	err = 0;
+	sb = dentry->d_sb;
+	mnt_flags = au_mntflags(sb);
+	udba_none = !!au_opt_test(mnt_flags, UDBA_NONE);
+
+	if (unlikely(locked))
+		goto body; /* skip locking dinfo */
+
+	/* support fstat(2) */
+	if (!d_unlinked(dentry) && !udba_none) {
+		sigen = au_sigen(sb);
+		err = au_digen_test(dentry, sigen);
+		if (!err) {
+			di_read_lock_child(dentry, AuLock_IR);
+			err = au_dbrange_test(dentry);
+			if (unlikely(err)) {
+				di_read_unlock(dentry, AuLock_IR);
+				goto out;
+			}
+		} else {
+			AuDebugOn(IS_ROOT(dentry));
+			di_write_lock_child(dentry);
+			err = au_dbrange_test(dentry);
+			if (!err)
+				err = au_reval_for_attr(dentry, sigen);
+			if (!err)
+				di_downgrade_lock(dentry, AuLock_IR);
+			else {
+				di_write_unlock(dentry);
+				goto out;
+			}
+		}
+	} else
+		di_read_lock_child(dentry, AuLock_IR);
+
+body:
+	inode = d_inode(dentry);
+	bindex = au_ibtop(inode);
+	h_path->mnt = au_sbr_mnt(sb, bindex);
+	h_sb = h_path->mnt->mnt_sb;
+	if (!force
+	    && !au_test_fs_bad_iattr(h_sb)
+	    && udba_none)
+		goto out; /* success */
+
+	if (au_dbtop(dentry) == bindex)
+		h_path->dentry = au_h_dptr(dentry, bindex);
+	else if (au_opt_test(mnt_flags, PLINK) && au_plink_test(inode)) {
+		h_path->dentry = au_plink_lkup(inode, bindex);
+		if (IS_ERR(h_path->dentry))
+			/* pretending success */
+			h_path->dentry = NULL;
+		else
+			dput(h_path->dentry);
+	}
+
+out:
+	return err;
+}
+
+static int aufs_getattr(const struct path *path, struct kstat *st,
+			u32 request, unsigned int query)
+{
+	int err;
+	unsigned char positive;
+	struct path h_path;
+	struct dentry *dentry;
+	struct inode *inode;
+	struct super_block *sb;
+
+	dentry = path->dentry;
+	inode = d_inode(dentry);
+	sb = dentry->d_sb;
+	err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+	if (unlikely(err))
+		goto out;
+	err = au_h_path_getattr(dentry, /*force*/0, &h_path, /*locked*/0);
+	if (unlikely(err))
+		goto out_si;
+	if (unlikely(!h_path.dentry))
+		/* illegally overlapped or something */
+		goto out_fill; /* pretending success */
+
+	positive = d_is_positive(h_path.dentry);
+	if (positive)
+		/* no vfsub version */
+		err = vfs_getattr(&h_path, st, request, query);
+	if (!err) {
+		if (positive)
+			au_refresh_iattr(inode, st,
+					 d_inode(h_path.dentry)->i_nlink);
+		goto out_fill; /* success */
+	}
+	AuTraceErr(err);
+	goto out_di;
+
+out_fill:
+	generic_fillattr(inode, st);
+out_di:
+	di_read_unlock(dentry, AuLock_IR);
+out_si:
+	si_read_unlock(sb);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static const char *aufs_get_link(struct dentry *dentry, struct inode *inode,
+				 struct delayed_call *done)
+{
+	const char *ret;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+	int err;
+	aufs_bindex_t bindex;
+
+	ret = NULL; /* suppress a warning */
+	err = -ECHILD;
+	if (!dentry)
+		goto out;
+
+	err = aufs_read_lock(dentry, AuLock_IR | AuLock_GEN);
+	if (unlikely(err))
+		goto out;
+
+	err = au_d_hashed_positive(dentry);
+	if (unlikely(err))
+		goto out_unlock;
+
+	err = -EINVAL;
+	inode = d_inode(dentry);
+	bindex = au_ibtop(inode);
+	h_inode = au_h_iptr(inode, bindex);
+	if (unlikely(!h_inode->i_op->get_link))
+		goto out_unlock;
+
+	err = -EBUSY;
+	h_dentry = NULL;
+	if (au_dbtop(dentry) <= bindex) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (h_dentry)
+			dget(h_dentry);
+	}
+	if (!h_dentry) {
+		h_dentry = d_find_any_alias(h_inode);
+		if (IS_ERR(h_dentry)) {
+			err = PTR_ERR(h_dentry);
+			goto out_unlock;
+		}
+	}
+	if (unlikely(!h_dentry))
+		goto out_unlock;
+
+	err = 0;
+	AuDbg("%ps\n", h_inode->i_op->get_link);
+	AuDbgDentry(h_dentry);
+	ret = vfs_get_link(h_dentry, done);
+	dput(h_dentry);
+	if (IS_ERR(ret))
+		err = PTR_ERR(ret);
+
+out_unlock:
+	aufs_read_unlock(dentry, AuLock_IR);
+out:
+	if (unlikely(err))
+		ret = ERR_PTR(err);
+	AuTraceErrPtr(ret);
+	return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_is_special(struct inode *inode)
+{
+	return (inode->i_mode & (S_IFBLK | S_IFCHR | S_IFIFO | S_IFSOCK));
+}
+
+static int aufs_update_time(struct inode *inode, struct timespec64 *ts,
+			    int flags)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct super_block *sb;
+	struct inode *h_inode;
+	struct vfsmount *h_mnt;
+
+	sb = inode->i_sb;
+	WARN_ONCE((flags & S_ATIME) && !IS_NOATIME(inode),
+		  "unexpected s_flags 0x%lx", sb->s_flags);
+
+	/* mmap_sem might be acquired already, cf. aufs_mmap() */
+	lockdep_off();
+	si_read_lock(sb, AuLock_FLUSH);
+	ii_write_lock_child(inode);
+
+	err = 0;
+	bindex = au_ibtop(inode);
+	h_inode = au_h_iptr(inode, bindex);
+	if (!au_test_ro(sb, bindex, inode)) {
+		h_mnt = au_sbr_mnt(sb, bindex);
+		err = vfsub_mnt_want_write(h_mnt);
+		if (!err) {
+			err = vfsub_update_time(h_inode, ts, flags);
+			vfsub_mnt_drop_write(h_mnt);
+		}
+	} else if (au_is_special(h_inode)) {
+		/*
+		 * Never copy-up here.
+		 * These special files may already be opened and used for
+		 * communicating. If we copied it up, then the communication
+		 * would be corrupted.
+		 */
+		AuWarn1("timestamps for i%lu are ignored "
+			"since it is on readonly branch (hi%lu).\n",
+			inode->i_ino, h_inode->i_ino);
+	} else if (flags & ~S_ATIME) {
+		err = -EIO;
+		AuIOErr1("unexpected flags 0x%x\n", flags);
+		AuDebugOn(1);
+	}
+
+	if (!err)
+		au_cpup_attr_timesizes(inode);
+	ii_write_unlock(inode);
+	si_read_unlock(sb);
+	lockdep_on();
+
+	if (!err && (flags & S_VERSION))
+		inode_inc_iversion(inode);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* no getattr version will be set by module.c:aufs_init() */
+struct inode_operations aufs_iop_nogetattr[AuIop_Last],
+	aufs_iop[] = {
+	[AuIop_SYMLINK] = {
+		.permission	= aufs_permission,
+#ifdef CONFIG_FS_POSIX_ACL
+		.get_acl	= aufs_get_acl,
+		.set_acl	= aufs_set_acl, /* unsupport for symlink? */
+#endif
+
+		.setattr	= aufs_setattr,
+		.getattr	= aufs_getattr,
+
+#ifdef CONFIG_AUFS_XATTR
+		.listxattr	= aufs_listxattr,
+#endif
+
+		.get_link	= aufs_get_link,
+
+		/* .update_time	= aufs_update_time */
+	},
+	[AuIop_DIR] = {
+		.create		= aufs_create,
+		.lookup		= aufs_lookup,
+		.link		= aufs_link,
+		.unlink		= aufs_unlink,
+		.symlink	= aufs_symlink,
+		.mkdir		= aufs_mkdir,
+		.rmdir		= aufs_rmdir,
+		.mknod		= aufs_mknod,
+		.rename		= aufs_rename,
+
+		.permission	= aufs_permission,
+#ifdef CONFIG_FS_POSIX_ACL
+		.get_acl	= aufs_get_acl,
+		.set_acl	= aufs_set_acl,
+#endif
+
+		.setattr	= aufs_setattr,
+		.getattr	= aufs_getattr,
+
+#ifdef CONFIG_AUFS_XATTR
+		.listxattr	= aufs_listxattr,
+#endif
+
+		.update_time	= aufs_update_time,
+		.atomic_open	= aufs_atomic_open,
+		.tmpfile	= aufs_tmpfile
+	},
+	[AuIop_OTHER] = {
+		.permission	= aufs_permission,
+#ifdef CONFIG_FS_POSIX_ACL
+		.get_acl	= aufs_get_acl,
+		.set_acl	= aufs_set_acl,
+#endif
+
+		.setattr	= aufs_setattr,
+		.getattr	= aufs_getattr,
+
+#ifdef CONFIG_AUFS_XATTR
+		.listxattr	= aufs_listxattr,
+#endif
+
+		.update_time	= aufs_update_time
+	}
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/i_op_add.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/i_op_add.c
@@ -0,0 +1,936 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode operations (add entry)
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+/*
+ * final procedure of adding a new entry, except link(2).
+ * remove whiteout, instantiate, copyup the parent dir's times and size
+ * and update version.
+ * if it failed, re-create the removed whiteout.
+ */
+static int epilog(struct inode *dir, aufs_bindex_t bindex,
+		  struct dentry *wh_dentry, struct dentry *dentry)
+{
+	int err, rerr;
+	aufs_bindex_t bwh;
+	struct path h_path;
+	struct super_block *sb;
+	struct inode *inode, *h_dir;
+	struct dentry *wh;
+
+	bwh = -1;
+	sb = dir->i_sb;
+	if (wh_dentry) {
+		h_dir = d_inode(wh_dentry->d_parent); /* dir inode is locked */
+		IMustLock(h_dir);
+		AuDebugOn(au_h_iptr(dir, bindex) != h_dir);
+		bwh = au_dbwh(dentry);
+		h_path.dentry = wh_dentry;
+		h_path.mnt = au_sbr_mnt(sb, bindex);
+		err = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &h_path,
+					  dentry);
+		if (unlikely(err))
+			goto out;
+	}
+
+	inode = au_new_inode(dentry, /*must_new*/1);
+	if (!IS_ERR(inode)) {
+		d_instantiate(dentry, inode);
+		dir = d_inode(dentry->d_parent); /* dir inode is locked */
+		IMustLock(dir);
+		au_dir_ts(dir, bindex);
+		inode_inc_iversion(dir);
+		au_fhsm_wrote(sb, bindex, /*force*/0);
+		return 0; /* success */
+	}
+
+	err = PTR_ERR(inode);
+	if (!wh_dentry)
+		goto out;
+
+	/* revert */
+	/* dir inode is locked */
+	wh = au_wh_create(dentry, bwh, wh_dentry->d_parent);
+	rerr = PTR_ERR(wh);
+	if (IS_ERR(wh)) {
+		AuIOErr("%pd reverting whiteout failed(%d, %d)\n",
+			dentry, err, rerr);
+		err = -EIO;
+	} else
+		dput(wh);
+
+out:
+	return err;
+}
+
+static int au_d_may_add(struct dentry *dentry)
+{
+	int err;
+
+	err = 0;
+	if (unlikely(d_unhashed(dentry)))
+		err = -ENOENT;
+	if (unlikely(d_really_is_positive(dentry)))
+		err = -EEXIST;
+	return err;
+}
+
+/*
+ * simple tests for the adding inode operations.
+ * following the checks in vfs, plus the parent-child relationship.
+ */
+int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
+	       struct dentry *h_parent, int isdir)
+{
+	int err;
+	umode_t h_mode;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+
+	err = -ENAMETOOLONG;
+	if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+		goto out;
+
+	h_dentry = au_h_dptr(dentry, bindex);
+	if (d_really_is_negative(dentry)) {
+		err = -EEXIST;
+		if (unlikely(d_is_positive(h_dentry)))
+			goto out;
+	} else {
+		/* rename(2) case */
+		err = -EIO;
+		if (unlikely(d_is_negative(h_dentry)))
+			goto out;
+		h_inode = d_inode(h_dentry);
+		if (unlikely(!h_inode->i_nlink))
+			goto out;
+
+		h_mode = h_inode->i_mode;
+		if (!isdir) {
+			err = -EISDIR;
+			if (unlikely(S_ISDIR(h_mode)))
+				goto out;
+		} else if (unlikely(!S_ISDIR(h_mode))) {
+			err = -ENOTDIR;
+			goto out;
+		}
+	}
+
+	err = 0;
+	/* expected parent dir is locked */
+	if (unlikely(h_parent != h_dentry->d_parent))
+		err = -EIO;
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * initial procedure of adding a new entry.
+ * prepare writable branch and the parent dir, lock it,
+ * and lookup whiteout for the new entry.
+ */
+static struct dentry*
+lock_hdir_lkup_wh(struct dentry *dentry, struct au_dtime *dt,
+		  struct dentry *src_dentry, struct au_pin *pin,
+		  struct au_wr_dir_args *wr_dir_args)
+{
+	struct dentry *wh_dentry, *h_parent;
+	struct super_block *sb;
+	struct au_branch *br;
+	int err;
+	unsigned int udba;
+	aufs_bindex_t bcpup;
+
+	AuDbg("%pd\n", dentry);
+
+	err = au_wr_dir(dentry, src_dentry, wr_dir_args);
+	bcpup = err;
+	wh_dentry = ERR_PTR(err);
+	if (unlikely(err < 0))
+		goto out;
+
+	sb = dentry->d_sb;
+	udba = au_opt_udba(sb);
+	err = au_pin(pin, dentry, bcpup, udba,
+		     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+	wh_dentry = ERR_PTR(err);
+	if (unlikely(err))
+		goto out;
+
+	h_parent = au_pinned_h_parent(pin);
+	if (udba != AuOpt_UDBA_NONE
+	    && au_dbtop(dentry) == bcpup)
+		err = au_may_add(dentry, bcpup, h_parent,
+				 au_ftest_wrdir(wr_dir_args->flags, ISDIR));
+	else if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+		err = -ENAMETOOLONG;
+	wh_dentry = ERR_PTR(err);
+	if (unlikely(err))
+		goto out_unpin;
+
+	br = au_sbr(sb, bcpup);
+	if (dt) {
+		struct path tmp = {
+			.dentry	= h_parent,
+			.mnt	= au_br_mnt(br)
+		};
+		au_dtime_store(dt, au_pinned_parent(pin), &tmp);
+	}
+
+	wh_dentry = NULL;
+	if (bcpup != au_dbwh(dentry))
+		goto out; /* success */
+
+	/*
+	 * ENAMETOOLONG here means that if we allowed create such name, then it
+	 * would not be able to removed in the future. So we don't allow such
+	 * name here and we don't handle ENAMETOOLONG differently here.
+	 */
+	wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, br);
+
+out_unpin:
+	if (IS_ERR(wh_dentry))
+		au_unpin(pin);
+out:
+	return wh_dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+enum { Mknod, Symlink, Creat };
+struct simple_arg {
+	int type;
+	union {
+		struct {
+			umode_t			mode;
+			bool			want_excl;
+			bool			try_aopen;
+			struct vfsub_aopen_args	*aopen;
+		} c;
+		struct {
+			const char *symname;
+		} s;
+		struct {
+			umode_t mode;
+			dev_t dev;
+		} m;
+	} u;
+};
+
+static int add_simple(struct inode *dir, struct dentry *dentry,
+		      struct simple_arg *arg)
+{
+	int err, rerr;
+	aufs_bindex_t btop;
+	unsigned char created;
+	const unsigned char try_aopen
+		= (arg->type == Creat && arg->u.c.try_aopen);
+	struct vfsub_aopen_args *aopen = arg->u.c.aopen;
+	struct dentry *wh_dentry, *parent;
+	struct inode *h_dir;
+	struct super_block *sb;
+	struct au_branch *br;
+	/* to reduce stack size */
+	struct {
+		struct au_dtime dt;
+		struct au_pin pin;
+		struct path h_path;
+		struct au_wr_dir_args wr_dir_args;
+	} *a;
+
+	AuDbg("%pd\n", dentry);
+	IMustLock(dir);
+
+	err = -ENOMEM;
+	a = kmalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+	a->wr_dir_args.force_btgt = -1;
+	a->wr_dir_args.flags = AuWrDir_ADD_ENTRY;
+
+	parent = dentry->d_parent; /* dir inode is locked */
+	if (!try_aopen) {
+		err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN);
+		if (unlikely(err))
+			goto out_free;
+	}
+	err = au_d_may_add(dentry);
+	if (unlikely(err))
+		goto out_unlock;
+	if (!try_aopen)
+		di_write_lock_parent(parent);
+	wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL,
+				      &a->pin, &a->wr_dir_args);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry))
+		goto out_parent;
+
+	btop = au_dbtop(dentry);
+	sb = dentry->d_sb;
+	br = au_sbr(sb, btop);
+	a->h_path.dentry = au_h_dptr(dentry, btop);
+	a->h_path.mnt = au_br_mnt(br);
+	h_dir = au_pinned_h_dir(&a->pin);
+	switch (arg->type) {
+	case Creat:
+		if (!try_aopen || !h_dir->i_op->atomic_open) {
+			err = vfsub_create(h_dir, &a->h_path, arg->u.c.mode,
+					   arg->u.c.want_excl);
+			created = !err;
+			if (!err && try_aopen)
+				aopen->file->f_mode |= FMODE_CREATED;
+		} else {
+			aopen->br = br;
+			err = vfsub_atomic_open(h_dir, a->h_path.dentry, aopen);
+			AuDbg("err %d\n", err);
+			AuDbgFile(aopen->file);
+			created = err >= 0
+				&& !!(aopen->file->f_mode & FMODE_CREATED);
+		}
+		break;
+	case Symlink:
+		err = vfsub_symlink(h_dir, &a->h_path, arg->u.s.symname);
+		created = !err;
+		break;
+	case Mknod:
+		err = vfsub_mknod(h_dir, &a->h_path, arg->u.m.mode,
+				  arg->u.m.dev);
+		created = !err;
+		break;
+	default:
+		BUG();
+	}
+	if (unlikely(err < 0))
+		goto out_unpin;
+
+	err = epilog(dir, btop, wh_dentry, dentry);
+	if (!err)
+		goto out_unpin; /* success */
+
+	/* revert */
+	if (created /* && d_is_positive(a->h_path.dentry) */) {
+		/* no delegation since it is just created */
+		rerr = vfsub_unlink(h_dir, &a->h_path, /*delegated*/NULL,
+				    /*force*/0);
+		if (rerr) {
+			AuIOErr("%pd revert failure(%d, %d)\n",
+				dentry, err, rerr);
+			err = -EIO;
+		}
+		au_dtime_revert(&a->dt);
+	}
+	if (try_aopen && h_dir->i_op->atomic_open
+	    && (aopen->file->f_mode & FMODE_OPENED))
+		/* aopen->file is still opened */
+		au_lcnt_dec(&aopen->br->br_nfiles);
+
+out_unpin:
+	au_unpin(&a->pin);
+	dput(wh_dentry);
+out_parent:
+	if (!try_aopen)
+		di_write_unlock(parent);
+out_unlock:
+	if (unlikely(err)) {
+		au_update_dbtop(dentry);
+		d_drop(dentry);
+	}
+	if (!try_aopen)
+		aufs_read_unlock(dentry, AuLock_DW);
+out_free:
+	au_kfree_rcu(a);
+out:
+	return err;
+}
+
+int aufs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
+	       dev_t dev)
+{
+	struct simple_arg arg = {
+		.type = Mknod,
+		.u.m = {
+			.mode	= mode,
+			.dev	= dev
+		}
+	};
+	return add_simple(dir, dentry, &arg);
+}
+
+int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname)
+{
+	struct simple_arg arg = {
+		.type = Symlink,
+		.u.s.symname = symname
+	};
+	return add_simple(dir, dentry, &arg);
+}
+
+int aufs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
+		bool want_excl)
+{
+	struct simple_arg arg = {
+		.type = Creat,
+		.u.c = {
+			.mode		= mode,
+			.want_excl	= want_excl
+		}
+	};
+	return add_simple(dir, dentry, &arg);
+}
+
+int au_aopen_or_create(struct inode *dir, struct dentry *dentry,
+		       struct vfsub_aopen_args *aopen_args)
+{
+	struct simple_arg arg = {
+		.type = Creat,
+		.u.c = {
+			.mode		= aopen_args->create_mode,
+			.want_excl	= aopen_args->open_flag & O_EXCL,
+			.try_aopen	= true,
+			.aopen		= aopen_args
+		}
+	};
+	return add_simple(dir, dentry, &arg);
+}
+
+int aufs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct super_block *sb;
+	struct dentry *parent, *h_parent, *h_dentry;
+	struct inode *h_dir, *inode;
+	struct vfsmount *h_mnt;
+	struct au_wr_dir_args wr_dir_args = {
+		.force_btgt	= -1,
+		.flags		= AuWrDir_TMPFILE
+	};
+
+	/* copy-up may happen */
+	inode_lock(dir);
+
+	sb = dir->i_sb;
+	err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+	if (unlikely(err))
+		goto out;
+
+	err = au_di_init(dentry);
+	if (unlikely(err))
+		goto out_si;
+
+	err = -EBUSY;
+	parent = d_find_any_alias(dir);
+	AuDebugOn(!parent);
+	di_write_lock_parent(parent);
+	if (unlikely(d_inode(parent) != dir))
+		goto out_parent;
+
+	err = au_digen_test(parent, au_sigen(sb));
+	if (unlikely(err))
+		goto out_parent;
+
+	bindex = au_dbtop(parent);
+	au_set_dbtop(dentry, bindex);
+	au_set_dbbot(dentry, bindex);
+	err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args);
+	bindex = err;
+	if (unlikely(err < 0))
+		goto out_parent;
+
+	err = -EOPNOTSUPP;
+	h_dir = au_h_iptr(dir, bindex);
+	if (unlikely(!h_dir->i_op->tmpfile))
+		goto out_parent;
+
+	h_mnt = au_sbr_mnt(sb, bindex);
+	err = vfsub_mnt_want_write(h_mnt);
+	if (unlikely(err))
+		goto out_parent;
+
+	h_parent = au_h_dptr(parent, bindex);
+	h_dentry = vfs_tmpfile(h_parent, mode, /*open_flag*/0);
+	if (IS_ERR(h_dentry)) {
+		err = PTR_ERR(h_dentry);
+		goto out_mnt;
+	}
+
+	au_set_dbtop(dentry, bindex);
+	au_set_dbbot(dentry, bindex);
+	au_set_h_dptr(dentry, bindex, dget(h_dentry));
+	inode = au_new_inode(dentry, /*must_new*/1);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		au_set_h_dptr(dentry, bindex, NULL);
+		au_set_dbtop(dentry, -1);
+		au_set_dbbot(dentry, -1);
+	} else {
+		if (!inode->i_nlink)
+			set_nlink(inode, 1);
+		d_tmpfile(dentry, inode);
+		au_di(dentry)->di_tmpfile = 1;
+
+		/* update without i_mutex */
+		if (au_ibtop(dir) == au_dbtop(dentry))
+			au_cpup_attr_timesizes(dir);
+	}
+	dput(h_dentry);
+
+out_mnt:
+	vfsub_mnt_drop_write(h_mnt);
+out_parent:
+	di_write_unlock(parent);
+	dput(parent);
+	di_write_unlock(dentry);
+	if (unlikely(err)) {
+		au_di_fin(dentry);
+		dentry->d_fsdata = NULL;
+	}
+out_si:
+	si_read_unlock(sb);
+out:
+	inode_unlock(dir);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_link_args {
+	aufs_bindex_t bdst, bsrc;
+	struct au_pin pin;
+	struct path h_path;
+	struct dentry *src_parent, *parent;
+};
+
+static int au_cpup_before_link(struct dentry *src_dentry,
+			       struct au_link_args *a)
+{
+	int err;
+	struct dentry *h_src_dentry;
+	struct au_cp_generic cpg = {
+		.dentry	= src_dentry,
+		.bdst	= a->bdst,
+		.bsrc	= a->bsrc,
+		.len	= -1,
+		.pin	= &a->pin,
+		.flags	= AuCpup_DTIME | AuCpup_HOPEN /* | AuCpup_KEEPLINO */
+	};
+
+	di_read_lock_parent(a->src_parent, AuLock_IR);
+	err = au_test_and_cpup_dirs(src_dentry, a->bdst);
+	if (unlikely(err))
+		goto out;
+
+	h_src_dentry = au_h_dptr(src_dentry, a->bsrc);
+	err = au_pin(&a->pin, src_dentry, a->bdst,
+		     au_opt_udba(src_dentry->d_sb),
+		     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+	if (unlikely(err))
+		goto out;
+
+	err = au_sio_cpup_simple(&cpg);
+	au_unpin(&a->pin);
+
+out:
+	di_read_unlock(a->src_parent, AuLock_IR);
+	return err;
+}
+
+static int au_cpup_or_link(struct dentry *src_dentry, struct dentry *dentry,
+			   struct au_link_args *a)
+{
+	int err;
+	unsigned char plink;
+	aufs_bindex_t bbot;
+	struct dentry *h_src_dentry;
+	struct inode *h_inode, *inode, *delegated;
+	struct super_block *sb;
+	struct file *h_file;
+
+	plink = 0;
+	h_inode = NULL;
+	sb = src_dentry->d_sb;
+	inode = d_inode(src_dentry);
+	if (au_ibtop(inode) <= a->bdst)
+		h_inode = au_h_iptr(inode, a->bdst);
+	if (!h_inode || !h_inode->i_nlink) {
+		/* copyup src_dentry as the name of dentry. */
+		bbot = au_dbbot(dentry);
+		if (bbot < a->bsrc)
+			au_set_dbbot(dentry, a->bsrc);
+		au_set_h_dptr(dentry, a->bsrc,
+			      dget(au_h_dptr(src_dentry, a->bsrc)));
+		dget(a->h_path.dentry);
+		au_set_h_dptr(dentry, a->bdst, NULL);
+		AuDbg("temporary d_inode...\n");
+		spin_lock(&dentry->d_lock);
+		dentry->d_inode = d_inode(src_dentry); /* tmp */
+		spin_unlock(&dentry->d_lock);
+		h_file = au_h_open_pre(dentry, a->bsrc, /*force_wr*/0);
+		if (IS_ERR(h_file))
+			err = PTR_ERR(h_file);
+		else {
+			struct au_cp_generic cpg = {
+				.dentry	= dentry,
+				.bdst	= a->bdst,
+				.bsrc	= -1,
+				.len	= -1,
+				.pin	= &a->pin,
+				.flags	= AuCpup_KEEPLINO
+			};
+			err = au_sio_cpup_simple(&cpg);
+			au_h_open_post(dentry, a->bsrc, h_file);
+			if (!err) {
+				dput(a->h_path.dentry);
+				a->h_path.dentry = au_h_dptr(dentry, a->bdst);
+			} else
+				au_set_h_dptr(dentry, a->bdst,
+					      a->h_path.dentry);
+		}
+		spin_lock(&dentry->d_lock);
+		dentry->d_inode = NULL; /* restore */
+		spin_unlock(&dentry->d_lock);
+		AuDbg("temporary d_inode...done\n");
+		au_set_h_dptr(dentry, a->bsrc, NULL);
+		au_set_dbbot(dentry, bbot);
+	} else {
+		/* the inode of src_dentry already exists on a.bdst branch */
+		h_src_dentry = d_find_alias(h_inode);
+		if (!h_src_dentry && au_plink_test(inode)) {
+			plink = 1;
+			h_src_dentry = au_plink_lkup(inode, a->bdst);
+			err = PTR_ERR(h_src_dentry);
+			if (IS_ERR(h_src_dentry))
+				goto out;
+
+			if (unlikely(d_is_negative(h_src_dentry))) {
+				dput(h_src_dentry);
+				h_src_dentry = NULL;
+			}
+
+		}
+		if (h_src_dentry) {
+			delegated = NULL;
+			err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
+					 &a->h_path, &delegated);
+			if (unlikely(err == -EWOULDBLOCK)) {
+				pr_warn("cannot retry for NFSv4 delegation"
+					" for an internal link\n");
+				iput(delegated);
+			}
+			dput(h_src_dentry);
+		} else {
+			AuIOErr("no dentry found for hi%lu on b%d\n",
+				h_inode->i_ino, a->bdst);
+			err = -EIO;
+		}
+	}
+
+	if (!err && !plink)
+		au_plink_append(inode, a->bdst, a->h_path.dentry);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int aufs_link(struct dentry *src_dentry, struct inode *dir,
+	      struct dentry *dentry)
+{
+	int err, rerr;
+	struct au_dtime dt;
+	struct au_link_args *a;
+	struct dentry *wh_dentry, *h_src_dentry;
+	struct inode *inode, *delegated;
+	struct super_block *sb;
+	struct au_wr_dir_args wr_dir_args = {
+		/* .force_btgt	= -1, */
+		.flags		= AuWrDir_ADD_ENTRY
+	};
+
+	IMustLock(dir);
+	inode = d_inode(src_dentry);
+	IMustLock(inode);
+
+	err = -ENOMEM;
+	a = kzalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	a->parent = dentry->d_parent; /* dir inode is locked */
+	err = aufs_read_and_write_lock2(dentry, src_dentry,
+					AuLock_NOPLM | AuLock_GEN);
+	if (unlikely(err))
+		goto out_kfree;
+	err = au_d_linkable(src_dentry);
+	if (unlikely(err))
+		goto out_unlock;
+	err = au_d_may_add(dentry);
+	if (unlikely(err))
+		goto out_unlock;
+
+	a->src_parent = dget_parent(src_dentry);
+	wr_dir_args.force_btgt = au_ibtop(inode);
+
+	di_write_lock_parent(a->parent);
+	wr_dir_args.force_btgt = au_wbr(dentry, wr_dir_args.force_btgt);
+	wh_dentry = lock_hdir_lkup_wh(dentry, &dt, src_dentry, &a->pin,
+				      &wr_dir_args);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry))
+		goto out_parent;
+
+	err = 0;
+	sb = dentry->d_sb;
+	a->bdst = au_dbtop(dentry);
+	a->h_path.dentry = au_h_dptr(dentry, a->bdst);
+	a->h_path.mnt = au_sbr_mnt(sb, a->bdst);
+	a->bsrc = au_ibtop(inode);
+	h_src_dentry = au_h_d_alias(src_dentry, a->bsrc);
+	if (!h_src_dentry && au_di(src_dentry)->di_tmpfile)
+		h_src_dentry = dget(au_hi_wh(inode, a->bsrc));
+	if (!h_src_dentry) {
+		a->bsrc = au_dbtop(src_dentry);
+		h_src_dentry = au_h_d_alias(src_dentry, a->bsrc);
+		AuDebugOn(!h_src_dentry);
+	} else if (IS_ERR(h_src_dentry)) {
+		err = PTR_ERR(h_src_dentry);
+		goto out_parent;
+	}
+
+	/*
+	 * aufs doesn't touch the credential so
+	 * security_dentry_create_files_as() is unnecessary.
+	 */
+	if (au_opt_test(au_mntflags(sb), PLINK)) {
+		if (a->bdst < a->bsrc
+		    /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */)
+			err = au_cpup_or_link(src_dentry, dentry, a);
+		else {
+			delegated = NULL;
+			err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
+					 &a->h_path, &delegated);
+			if (unlikely(err == -EWOULDBLOCK)) {
+				pr_warn("cannot retry for NFSv4 delegation"
+					" for an internal link\n");
+				iput(delegated);
+			}
+		}
+		dput(h_src_dentry);
+	} else {
+		/*
+		 * copyup src_dentry to the branch we process,
+		 * and then link(2) to it.
+		 */
+		dput(h_src_dentry);
+		if (a->bdst < a->bsrc
+		    /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */) {
+			au_unpin(&a->pin);
+			di_write_unlock(a->parent);
+			err = au_cpup_before_link(src_dentry, a);
+			di_write_lock_parent(a->parent);
+			if (!err)
+				err = au_pin(&a->pin, dentry, a->bdst,
+					     au_opt_udba(sb),
+					     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+			if (unlikely(err))
+				goto out_wh;
+		}
+		if (!err) {
+			h_src_dentry = au_h_dptr(src_dentry, a->bdst);
+			err = -ENOENT;
+			if (h_src_dentry && d_is_positive(h_src_dentry)) {
+				delegated = NULL;
+				err = vfsub_link(h_src_dentry,
+						 au_pinned_h_dir(&a->pin),
+						 &a->h_path, &delegated);
+				if (unlikely(err == -EWOULDBLOCK)) {
+					pr_warn("cannot retry"
+						" for NFSv4 delegation"
+						" for an internal link\n");
+					iput(delegated);
+				}
+			}
+		}
+	}
+	if (unlikely(err))
+		goto out_unpin;
+
+	if (wh_dentry) {
+		a->h_path.dentry = wh_dentry;
+		err = au_wh_unlink_dentry(au_pinned_h_dir(&a->pin), &a->h_path,
+					  dentry);
+		if (unlikely(err))
+			goto out_revert;
+	}
+
+	au_dir_ts(dir, a->bdst);
+	inode_inc_iversion(dir);
+	inc_nlink(inode);
+	inode->i_ctime = dir->i_ctime;
+	d_instantiate(dentry, au_igrab(inode));
+	if (d_unhashed(a->h_path.dentry))
+		/* some filesystem calls d_drop() */
+		d_drop(dentry);
+	/* some filesystems consume an inode even hardlink */
+	au_fhsm_wrote(sb, a->bdst, /*force*/0);
+	goto out_unpin; /* success */
+
+out_revert:
+	/* no delegation since it is just created */
+	rerr = vfsub_unlink(au_pinned_h_dir(&a->pin), &a->h_path,
+			    /*delegated*/NULL, /*force*/0);
+	if (unlikely(rerr)) {
+		AuIOErr("%pd reverting failed(%d, %d)\n", dentry, err, rerr);
+		err = -EIO;
+	}
+	au_dtime_revert(&dt);
+out_unpin:
+	au_unpin(&a->pin);
+out_wh:
+	dput(wh_dentry);
+out_parent:
+	di_write_unlock(a->parent);
+	dput(a->src_parent);
+out_unlock:
+	if (unlikely(err)) {
+		au_update_dbtop(dentry);
+		d_drop(dentry);
+	}
+	aufs_read_and_write_unlock2(dentry, src_dentry);
+out_kfree:
+	au_kfree_rcu(a);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int aufs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
+{
+	int err, rerr;
+	aufs_bindex_t bindex;
+	unsigned char diropq;
+	struct path h_path;
+	struct dentry *wh_dentry, *parent, *opq_dentry;
+	struct inode *h_inode;
+	struct super_block *sb;
+	struct {
+		struct au_pin pin;
+		struct au_dtime dt;
+	} *a; /* reduce the stack usage */
+	struct au_wr_dir_args wr_dir_args = {
+		.force_btgt	= -1,
+		.flags		= AuWrDir_ADD_ENTRY | AuWrDir_ISDIR
+	};
+
+	IMustLock(dir);
+
+	err = -ENOMEM;
+	a = kmalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN);
+	if (unlikely(err))
+		goto out_free;
+	err = au_d_may_add(dentry);
+	if (unlikely(err))
+		goto out_unlock;
+
+	parent = dentry->d_parent; /* dir inode is locked */
+	di_write_lock_parent(parent);
+	wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL,
+				      &a->pin, &wr_dir_args);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry))
+		goto out_parent;
+
+	sb = dentry->d_sb;
+	bindex = au_dbtop(dentry);
+	h_path.dentry = au_h_dptr(dentry, bindex);
+	h_path.mnt = au_sbr_mnt(sb, bindex);
+	err = vfsub_mkdir(au_pinned_h_dir(&a->pin), &h_path, mode);
+	if (unlikely(err))
+		goto out_unpin;
+
+	/* make the dir opaque */
+	diropq = 0;
+	h_inode = d_inode(h_path.dentry);
+	if (wh_dentry
+	    || au_opt_test(au_mntflags(sb), ALWAYS_DIROPQ)) {
+		inode_lock_nested(h_inode, AuLsc_I_CHILD);
+		opq_dentry = au_diropq_create(dentry, bindex);
+		inode_unlock(h_inode);
+		err = PTR_ERR(opq_dentry);
+		if (IS_ERR(opq_dentry))
+			goto out_dir;
+		dput(opq_dentry);
+		diropq = 1;
+	}
+
+	err = epilog(dir, bindex, wh_dentry, dentry);
+	if (!err) {
+		inc_nlink(dir);
+		goto out_unpin; /* success */
+	}
+
+	/* revert */
+	if (diropq) {
+		AuLabel(revert opq);
+		inode_lock_nested(h_inode, AuLsc_I_CHILD);
+		rerr = au_diropq_remove(dentry, bindex);
+		inode_unlock(h_inode);
+		if (rerr) {
+			AuIOErr("%pd reverting diropq failed(%d, %d)\n",
+				dentry, err, rerr);
+			err = -EIO;
+		}
+	}
+
+out_dir:
+	AuLabel(revert dir);
+	rerr = vfsub_rmdir(au_pinned_h_dir(&a->pin), &h_path);
+	if (rerr) {
+		AuIOErr("%pd reverting dir failed(%d, %d)\n",
+			dentry, err, rerr);
+		err = -EIO;
+	}
+	au_dtime_revert(&a->dt);
+out_unpin:
+	au_unpin(&a->pin);
+	dput(wh_dentry);
+out_parent:
+	di_write_unlock(parent);
+out_unlock:
+	if (unlikely(err)) {
+		au_update_dbtop(dentry);
+		d_drop(dentry);
+	}
+	aufs_read_unlock(dentry, AuLock_DW);
+out_free:
+	au_kfree_rcu(a);
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/i_op_del.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/i_op_del.c
@@ -0,0 +1,513 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode operations (del entry)
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+/*
+ * decide if a new whiteout for @dentry is necessary or not.
+ * when it is necessary, prepare the parent dir for the upper branch whose
+ * branch index is @bcpup for creation. the actual creation of the whiteout will
+ * be done by caller.
+ * return value:
+ * 0: wh is unnecessary
+ * plus: wh is necessary
+ * minus: error
+ */
+int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup)
+{
+	int need_wh, err;
+	aufs_bindex_t btop;
+	struct super_block *sb;
+
+	sb = dentry->d_sb;
+	btop = au_dbtop(dentry);
+	if (*bcpup < 0) {
+		*bcpup = btop;
+		if (au_test_ro(sb, btop, d_inode(dentry))) {
+			err = AuWbrCopyup(au_sbi(sb), dentry);
+			*bcpup = err;
+			if (unlikely(err < 0))
+				goto out;
+		}
+	} else
+		AuDebugOn(btop < *bcpup
+			  || au_test_ro(sb, *bcpup, d_inode(dentry)));
+	AuDbg("bcpup %d, btop %d\n", *bcpup, btop);
+
+	if (*bcpup != btop) {
+		err = au_cpup_dirs(dentry, *bcpup);
+		if (unlikely(err))
+			goto out;
+		need_wh = 1;
+	} else {
+		struct au_dinfo *dinfo, *tmp;
+
+		need_wh = -ENOMEM;
+		dinfo = au_di(dentry);
+		tmp = au_di_alloc(sb, AuLsc_DI_TMP);
+		if (tmp) {
+			au_di_cp(tmp, dinfo);
+			au_di_swap(tmp, dinfo);
+			/* returns the number of positive dentries */
+			need_wh = au_lkup_dentry(dentry, btop + 1,
+						 /* AuLkup_IGNORE_PERM */ 0);
+			au_di_swap(tmp, dinfo);
+			au_rw_write_unlock(&tmp->di_rwsem);
+			au_di_free(tmp);
+		}
+	}
+	AuDbg("need_wh %d\n", need_wh);
+	err = need_wh;
+
+out:
+	return err;
+}
+
+/*
+ * simple tests for the del-entry operations.
+ * following the checks in vfs, plus the parent-child relationship.
+ */
+int au_may_del(struct dentry *dentry, aufs_bindex_t bindex,
+	       struct dentry *h_parent, int isdir)
+{
+	int err;
+	umode_t h_mode;
+	struct dentry *h_dentry, *h_latest;
+	struct inode *h_inode;
+
+	h_dentry = au_h_dptr(dentry, bindex);
+	if (d_really_is_positive(dentry)) {
+		err = -ENOENT;
+		if (unlikely(d_is_negative(h_dentry)))
+			goto out;
+		h_inode = d_inode(h_dentry);
+		if (unlikely(!h_inode->i_nlink))
+			goto out;
+
+		h_mode = h_inode->i_mode;
+		if (!isdir) {
+			err = -EISDIR;
+			if (unlikely(S_ISDIR(h_mode)))
+				goto out;
+		} else if (unlikely(!S_ISDIR(h_mode))) {
+			err = -ENOTDIR;
+			goto out;
+		}
+	} else {
+		/* rename(2) case */
+		err = -EIO;
+		if (unlikely(d_is_positive(h_dentry)))
+			goto out;
+	}
+
+	err = -ENOENT;
+	/* expected parent dir is locked */
+	if (unlikely(h_parent != h_dentry->d_parent))
+		goto out;
+	err = 0;
+
+	/*
+	 * rmdir a dir may break the consistency on some filesystem.
+	 * let's try heavy test.
+	 */
+	err = -EACCES;
+	if (unlikely(!au_opt_test(au_mntflags(dentry->d_sb), DIRPERM1)
+		     && au_test_h_perm(d_inode(h_parent),
+				       MAY_EXEC | MAY_WRITE)))
+		goto out;
+
+	h_latest = au_sio_lkup_one(&dentry->d_name, h_parent);
+	err = -EIO;
+	if (IS_ERR(h_latest))
+		goto out;
+	if (h_latest == h_dentry)
+		err = 0;
+	dput(h_latest);
+
+out:
+	return err;
+}
+
+/*
+ * decide the branch where we operate for @dentry. the branch index will be set
+ * @rbcpup. after deciding it, 'pin' it and store the timestamps of the parent
+ * dir for reverting.
+ * when a new whiteout is necessary, create it.
+ */
+static struct dentry*
+lock_hdir_create_wh(struct dentry *dentry, int isdir, aufs_bindex_t *rbcpup,
+		    struct au_dtime *dt, struct au_pin *pin)
+{
+	struct dentry *wh_dentry;
+	struct super_block *sb;
+	struct path h_path;
+	int err, need_wh;
+	unsigned int udba;
+	aufs_bindex_t bcpup;
+
+	need_wh = au_wr_dir_need_wh(dentry, isdir, rbcpup);
+	wh_dentry = ERR_PTR(need_wh);
+	if (unlikely(need_wh < 0))
+		goto out;
+
+	sb = dentry->d_sb;
+	udba = au_opt_udba(sb);
+	bcpup = *rbcpup;
+	err = au_pin(pin, dentry, bcpup, udba,
+		     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+	wh_dentry = ERR_PTR(err);
+	if (unlikely(err))
+		goto out;
+
+	h_path.dentry = au_pinned_h_parent(pin);
+	if (udba != AuOpt_UDBA_NONE
+	    && au_dbtop(dentry) == bcpup) {
+		err = au_may_del(dentry, bcpup, h_path.dentry, isdir);
+		wh_dentry = ERR_PTR(err);
+		if (unlikely(err))
+			goto out_unpin;
+	}
+
+	h_path.mnt = au_sbr_mnt(sb, bcpup);
+	au_dtime_store(dt, au_pinned_parent(pin), &h_path);
+	wh_dentry = NULL;
+	if (!need_wh)
+		goto out; /* success, no need to create whiteout */
+
+	wh_dentry = au_wh_create(dentry, bcpup, h_path.dentry);
+	if (IS_ERR(wh_dentry))
+		goto out_unpin;
+
+	/* returns with the parent is locked and wh_dentry is dget-ed */
+	goto out; /* success */
+
+out_unpin:
+	au_unpin(pin);
+out:
+	return wh_dentry;
+}
+
+/*
+ * when removing a dir, rename it to a unique temporary whiteout-ed name first
+ * in order to be revertible and save time for removing many child whiteouts
+ * under the dir.
+ * returns 1 when there are too many child whiteout and caller should remove
+ * them asynchronously. returns 0 when the number of children is enough small to
+ * remove now or the branch fs is a remote fs.
+ * otherwise return an error.
+ */
+static int renwh_and_rmdir(struct dentry *dentry, aufs_bindex_t bindex,
+			   struct au_nhash *whlist, struct inode *dir)
+{
+	int rmdir_later, err, dirwh;
+	struct dentry *h_dentry;
+	struct super_block *sb;
+	struct inode *inode;
+
+	sb = dentry->d_sb;
+	SiMustAnyLock(sb);
+	h_dentry = au_h_dptr(dentry, bindex);
+	err = au_whtmp_ren(h_dentry, au_sbr(sb, bindex));
+	if (unlikely(err))
+		goto out;
+
+	/* stop monitoring */
+	inode = d_inode(dentry);
+	au_hn_free(au_hi(inode, bindex));
+
+	if (!au_test_fs_remote(h_dentry->d_sb)) {
+		dirwh = au_sbi(sb)->si_dirwh;
+		rmdir_later = (dirwh <= 1);
+		if (!rmdir_later)
+			rmdir_later = au_nhash_test_longer_wh(whlist, bindex,
+							      dirwh);
+		if (rmdir_later)
+			return rmdir_later;
+	}
+
+	err = au_whtmp_rmdir(dir, bindex, h_dentry, whlist);
+	if (unlikely(err)) {
+		AuIOErr("rmdir %pd, b%d failed, %d. ignored\n",
+			h_dentry, bindex, err);
+		err = 0;
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * final procedure for deleting a entry.
+ * maintain dentry and iattr.
+ */
+static void epilog(struct inode *dir, struct dentry *dentry,
+		   aufs_bindex_t bindex)
+{
+	struct inode *inode;
+
+	inode = d_inode(dentry);
+	d_drop(dentry);
+	inode->i_ctime = dir->i_ctime;
+
+	au_dir_ts(dir, bindex);
+	inode_inc_iversion(dir);
+}
+
+/*
+ * when an error happened, remove the created whiteout and revert everything.
+ */
+static int do_revert(int err, struct inode *dir, aufs_bindex_t bindex,
+		     aufs_bindex_t bwh, struct dentry *wh_dentry,
+		     struct dentry *dentry, struct au_dtime *dt)
+{
+	int rerr;
+	struct path h_path = {
+		.dentry	= wh_dentry,
+		.mnt	= au_sbr_mnt(dir->i_sb, bindex)
+	};
+
+	rerr = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &h_path, dentry);
+	if (!rerr) {
+		au_set_dbwh(dentry, bwh);
+		au_dtime_revert(dt);
+		return 0;
+	}
+
+	AuIOErr("%pd reverting whiteout failed(%d, %d)\n", dentry, err, rerr);
+	return -EIO;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int aufs_unlink(struct inode *dir, struct dentry *dentry)
+{
+	int err;
+	aufs_bindex_t bwh, bindex, btop;
+	struct inode *inode, *h_dir, *delegated;
+	struct dentry *parent, *wh_dentry;
+	/* to reduce stack size */
+	struct {
+		struct au_dtime dt;
+		struct au_pin pin;
+		struct path h_path;
+	} *a;
+
+	IMustLock(dir);
+
+	err = -ENOMEM;
+	a = kmalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN);
+	if (unlikely(err))
+		goto out_free;
+	err = au_d_hashed_positive(dentry);
+	if (unlikely(err))
+		goto out_unlock;
+	inode = d_inode(dentry);
+	IMustLock(inode);
+	err = -EISDIR;
+	if (unlikely(d_is_dir(dentry)))
+		goto out_unlock; /* possible? */
+
+	btop = au_dbtop(dentry);
+	bwh = au_dbwh(dentry);
+	bindex = -1;
+	parent = dentry->d_parent; /* dir inode is locked */
+	di_write_lock_parent(parent);
+	wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/0, &bindex, &a->dt,
+					&a->pin);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry))
+		goto out_parent;
+
+	a->h_path.mnt = au_sbr_mnt(dentry->d_sb, btop);
+	a->h_path.dentry = au_h_dptr(dentry, btop);
+	dget(a->h_path.dentry);
+	if (bindex == btop) {
+		h_dir = au_pinned_h_dir(&a->pin);
+		delegated = NULL;
+		err = vfsub_unlink(h_dir, &a->h_path, &delegated, /*force*/0);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal unlink\n");
+			iput(delegated);
+		}
+	} else {
+		/* dir inode is locked */
+		h_dir = d_inode(wh_dentry->d_parent);
+		IMustLock(h_dir);
+		err = 0;
+	}
+
+	if (!err) {
+		vfsub_drop_nlink(inode);
+		epilog(dir, dentry, bindex);
+
+		/* update target timestamps */
+		if (bindex == btop) {
+			vfsub_update_h_iattr(&a->h_path, /*did*/NULL);
+			/*ignore*/
+			inode->i_ctime = d_inode(a->h_path.dentry)->i_ctime;
+		} else
+			/* todo: this timestamp may be reverted later */
+			inode->i_ctime = h_dir->i_ctime;
+		goto out_unpin; /* success */
+	}
+
+	/* revert */
+	if (wh_dentry) {
+		int rerr;
+
+		rerr = do_revert(err, dir, bindex, bwh, wh_dentry, dentry,
+				 &a->dt);
+		if (rerr)
+			err = rerr;
+	}
+
+out_unpin:
+	au_unpin(&a->pin);
+	dput(wh_dentry);
+	dput(a->h_path.dentry);
+out_parent:
+	di_write_unlock(parent);
+out_unlock:
+	aufs_read_unlock(dentry, AuLock_DW);
+out_free:
+	au_kfree_rcu(a);
+out:
+	return err;
+}
+
+int aufs_rmdir(struct inode *dir, struct dentry *dentry)
+{
+	int err, rmdir_later;
+	aufs_bindex_t bwh, bindex, btop;
+	struct inode *inode;
+	struct dentry *parent, *wh_dentry, *h_dentry;
+	struct au_whtmp_rmdir *args;
+	/* to reduce stack size */
+	struct {
+		struct au_dtime dt;
+		struct au_pin pin;
+	} *a;
+
+	IMustLock(dir);
+
+	err = -ENOMEM;
+	a = kmalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH | AuLock_GEN);
+	if (unlikely(err))
+		goto out_free;
+	err = au_alive_dir(dentry);
+	if (unlikely(err))
+		goto out_unlock;
+	inode = d_inode(dentry);
+	IMustLock(inode);
+	err = -ENOTDIR;
+	if (unlikely(!d_is_dir(dentry)))
+		goto out_unlock; /* possible? */
+
+	err = -ENOMEM;
+	args = au_whtmp_rmdir_alloc(dir->i_sb, GFP_NOFS);
+	if (unlikely(!args))
+		goto out_unlock;
+
+	parent = dentry->d_parent; /* dir inode is locked */
+	di_write_lock_parent(parent);
+	err = au_test_empty(dentry, &args->whlist);
+	if (unlikely(err))
+		goto out_parent;
+
+	btop = au_dbtop(dentry);
+	bwh = au_dbwh(dentry);
+	bindex = -1;
+	wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/1, &bindex, &a->dt,
+					&a->pin);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry))
+		goto out_parent;
+
+	h_dentry = au_h_dptr(dentry, btop);
+	dget(h_dentry);
+	rmdir_later = 0;
+	if (bindex == btop) {
+		err = renwh_and_rmdir(dentry, btop, &args->whlist, dir);
+		if (err > 0) {
+			rmdir_later = err;
+			err = 0;
+		}
+	} else {
+		/* stop monitoring */
+		au_hn_free(au_hi(inode, btop));
+
+		/* dir inode is locked */
+		IMustLock(d_inode(wh_dentry->d_parent));
+		err = 0;
+	}
+
+	if (!err) {
+		vfsub_dead_dir(inode);
+		au_set_dbdiropq(dentry, -1);
+		epilog(dir, dentry, bindex);
+
+		if (rmdir_later) {
+			au_whtmp_kick_rmdir(dir, btop, h_dentry, args);
+			args = NULL;
+		}
+
+		goto out_unpin; /* success */
+	}
+
+	/* revert */
+	AuLabel(revert);
+	if (wh_dentry) {
+		int rerr;
+
+		rerr = do_revert(err, dir, bindex, bwh, wh_dentry, dentry,
+				 &a->dt);
+		if (rerr)
+			err = rerr;
+	}
+
+out_unpin:
+	au_unpin(&a->pin);
+	dput(wh_dentry);
+	dput(h_dentry);
+out_parent:
+	di_write_unlock(parent);
+	if (args)
+		au_whtmp_rmdir_free(args);
+out_unlock:
+	aufs_read_unlock(dentry, AuLock_DW);
+out_free:
+	au_kfree_rcu(a);
+out:
+	AuTraceErr(err);
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/i_op_ren.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/i_op_ren.c
@@ -0,0 +1,1250 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode operation (rename entry)
+ * todo: this is crazy monster
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+enum { AuSRC, AuDST, AuSrcDst };
+enum { AuPARENT, AuCHILD, AuParentChild };
+
+#define AuRen_ISDIR_SRC		1
+#define AuRen_ISDIR_DST		(1 << 1)
+#define AuRen_ISSAMEDIR		(1 << 2)
+#define AuRen_WHSRC		(1 << 3)
+#define AuRen_WHDST		(1 << 4)
+#define AuRen_MNT_WRITE		(1 << 5)
+#define AuRen_DT_DSTDIR		(1 << 6)
+#define AuRen_DIROPQ_SRC	(1 << 7)
+#define AuRen_DIROPQ_DST	(1 << 8)
+#define AuRen_DIRREN		(1 << 9)
+#define AuRen_DROPPED_SRC	(1 << 10)
+#define AuRen_DROPPED_DST	(1 << 11)
+#define au_ftest_ren(flags, name)	((flags) & AuRen_##name)
+#define au_fset_ren(flags, name) \
+	do { (flags) |= AuRen_##name; } while (0)
+#define au_fclr_ren(flags, name) \
+	do { (flags) &= ~AuRen_##name; } while (0)
+
+#ifndef CONFIG_AUFS_DIRREN
+#undef AuRen_DIRREN
+#define AuRen_DIRREN		0
+#endif
+
+struct au_ren_args {
+	struct {
+		struct dentry *dentry, *h_dentry, *parent, *h_parent,
+			*wh_dentry;
+		struct inode *dir, *inode;
+		struct au_hinode *hdir, *hinode;
+		struct au_dtime dt[AuParentChild];
+		aufs_bindex_t btop, bdiropq;
+	} sd[AuSrcDst];
+
+#define src_dentry	sd[AuSRC].dentry
+#define src_dir		sd[AuSRC].dir
+#define src_inode	sd[AuSRC].inode
+#define src_h_dentry	sd[AuSRC].h_dentry
+#define src_parent	sd[AuSRC].parent
+#define src_h_parent	sd[AuSRC].h_parent
+#define src_wh_dentry	sd[AuSRC].wh_dentry
+#define src_hdir	sd[AuSRC].hdir
+#define src_hinode	sd[AuSRC].hinode
+#define src_h_dir	sd[AuSRC].hdir->hi_inode
+#define src_dt		sd[AuSRC].dt
+#define src_btop	sd[AuSRC].btop
+#define src_bdiropq	sd[AuSRC].bdiropq
+
+#define dst_dentry	sd[AuDST].dentry
+#define dst_dir		sd[AuDST].dir
+#define dst_inode	sd[AuDST].inode
+#define dst_h_dentry	sd[AuDST].h_dentry
+#define dst_parent	sd[AuDST].parent
+#define dst_h_parent	sd[AuDST].h_parent
+#define dst_wh_dentry	sd[AuDST].wh_dentry
+#define dst_hdir	sd[AuDST].hdir
+#define dst_hinode	sd[AuDST].hinode
+#define dst_h_dir	sd[AuDST].hdir->hi_inode
+#define dst_dt		sd[AuDST].dt
+#define dst_btop	sd[AuDST].btop
+#define dst_bdiropq	sd[AuDST].bdiropq
+
+	struct dentry *h_trap;
+	struct au_branch *br;
+	struct path h_path;
+	struct au_nhash whlist;
+	aufs_bindex_t btgt, src_bwh;
+
+	struct {
+		unsigned short auren_flags;
+		unsigned char flags;	/* syscall parameter */
+		unsigned char exchange;
+	} __packed;
+
+	struct au_whtmp_rmdir *thargs;
+	struct dentry *h_dst;
+	struct au_hinode *h_root;
+};
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * functions for reverting.
+ * when an error happened in a single rename systemcall, we should revert
+ * everything as if nothing happened.
+ * we don't need to revert the copied-up/down the parent dir since they are
+ * harmless.
+ */
+
+#define RevertFailure(fmt, ...) do { \
+	AuIOErr("revert failure: " fmt " (%d, %d)\n", \
+		##__VA_ARGS__, err, rerr); \
+	err = -EIO; \
+} while (0)
+
+static void au_ren_do_rev_diropq(int err, struct au_ren_args *a, int idx)
+{
+	int rerr;
+	struct dentry *d;
+#define src_or_dst(member) a->sd[idx].member
+
+	d = src_or_dst(dentry); /* {src,dst}_dentry */
+	au_hn_inode_lock_nested(src_or_dst(hinode), AuLsc_I_CHILD);
+	rerr = au_diropq_remove(d, a->btgt);
+	au_hn_inode_unlock(src_or_dst(hinode));
+	au_set_dbdiropq(d, src_or_dst(bdiropq));
+	if (rerr)
+		RevertFailure("remove diropq %pd", d);
+
+#undef src_or_dst_
+}
+
+static void au_ren_rev_diropq(int err, struct au_ren_args *a)
+{
+	if (au_ftest_ren(a->auren_flags, DIROPQ_SRC))
+		au_ren_do_rev_diropq(err, a, AuSRC);
+	if (au_ftest_ren(a->auren_flags, DIROPQ_DST))
+		au_ren_do_rev_diropq(err, a, AuDST);
+}
+
+static void au_ren_rev_rename(int err, struct au_ren_args *a)
+{
+	int rerr;
+	struct inode *delegated;
+
+	a->h_path.dentry = vfsub_lkup_one(&a->src_dentry->d_name,
+					  a->src_h_parent);
+	rerr = PTR_ERR(a->h_path.dentry);
+	if (IS_ERR(a->h_path.dentry)) {
+		RevertFailure("lkup one %pd", a->src_dentry);
+		return;
+	}
+
+	delegated = NULL;
+	rerr = vfsub_rename(a->dst_h_dir,
+			    au_h_dptr(a->src_dentry, a->btgt),
+			    a->src_h_dir, &a->h_path, &delegated, a->flags);
+	if (unlikely(rerr == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal rename\n");
+		iput(delegated);
+	}
+	d_drop(a->h_path.dentry);
+	dput(a->h_path.dentry);
+	/* au_set_h_dptr(a->src_dentry, a->btgt, NULL); */
+	if (rerr)
+		RevertFailure("rename %pd", a->src_dentry);
+}
+
+static void au_ren_rev_whtmp(int err, struct au_ren_args *a)
+{
+	int rerr;
+	struct inode *delegated;
+
+	a->h_path.dentry = vfsub_lkup_one(&a->dst_dentry->d_name,
+					  a->dst_h_parent);
+	rerr = PTR_ERR(a->h_path.dentry);
+	if (IS_ERR(a->h_path.dentry)) {
+		RevertFailure("lkup one %pd", a->dst_dentry);
+		return;
+	}
+	if (d_is_positive(a->h_path.dentry)) {
+		d_drop(a->h_path.dentry);
+		dput(a->h_path.dentry);
+		return;
+	}
+
+	delegated = NULL;
+	rerr = vfsub_rename(a->dst_h_dir, a->h_dst, a->dst_h_dir, &a->h_path,
+			    &delegated, a->flags);
+	if (unlikely(rerr == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal rename\n");
+		iput(delegated);
+	}
+	d_drop(a->h_path.dentry);
+	dput(a->h_path.dentry);
+	if (!rerr)
+		au_set_h_dptr(a->dst_dentry, a->btgt, dget(a->h_dst));
+	else
+		RevertFailure("rename %pd", a->h_dst);
+}
+
+static void au_ren_rev_whsrc(int err, struct au_ren_args *a)
+{
+	int rerr;
+
+	a->h_path.dentry = a->src_wh_dentry;
+	rerr = au_wh_unlink_dentry(a->src_h_dir, &a->h_path, a->src_dentry);
+	au_set_dbwh(a->src_dentry, a->src_bwh);
+	if (rerr)
+		RevertFailure("unlink %pd", a->src_wh_dentry);
+}
+#undef RevertFailure
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * when we have to copyup the renaming entry, do it with the rename-target name
+ * in order to minimize the cost (the later actual rename is unnecessary).
+ * otherwise rename it on the target branch.
+ */
+static int au_ren_or_cpup(struct au_ren_args *a)
+{
+	int err;
+	struct dentry *d;
+	struct inode *delegated;
+
+	d = a->src_dentry;
+	if (au_dbtop(d) == a->btgt) {
+		a->h_path.dentry = a->dst_h_dentry;
+		AuDebugOn(au_dbtop(d) != a->btgt);
+		delegated = NULL;
+		err = vfsub_rename(a->src_h_dir, au_h_dptr(d, a->btgt),
+				   a->dst_h_dir, &a->h_path, &delegated,
+				   a->flags);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal rename\n");
+			iput(delegated);
+		}
+	} else
+		BUG();
+
+	if (!err && a->h_dst)
+		/* it will be set to dinfo later */
+		dget(a->h_dst);
+
+	return err;
+}
+
+/* cf. aufs_rmdir() */
+static int au_ren_del_whtmp(struct au_ren_args *a)
+{
+	int err;
+	struct inode *dir;
+
+	dir = a->dst_dir;
+	SiMustAnyLock(dir->i_sb);
+	if (!au_nhash_test_longer_wh(&a->whlist, a->btgt,
+				     au_sbi(dir->i_sb)->si_dirwh)
+	    || au_test_fs_remote(a->h_dst->d_sb)) {
+		err = au_whtmp_rmdir(dir, a->btgt, a->h_dst, &a->whlist);
+		if (unlikely(err))
+			pr_warn("failed removing whtmp dir %pd (%d), "
+				"ignored.\n", a->h_dst, err);
+	} else {
+		au_nhash_wh_free(&a->thargs->whlist);
+		a->thargs->whlist = a->whlist;
+		a->whlist.nh_num = 0;
+		au_whtmp_kick_rmdir(dir, a->btgt, a->h_dst, a->thargs);
+		dput(a->h_dst);
+		a->thargs = NULL;
+	}
+
+	return 0;
+}
+
+/* make it 'opaque' dir. */
+static int au_ren_do_diropq(struct au_ren_args *a, int idx)
+{
+	int err;
+	struct dentry *d, *diropq;
+#define src_or_dst(member) a->sd[idx].member
+
+	err = 0;
+	d = src_or_dst(dentry); /* {src,dst}_dentry */
+	src_or_dst(bdiropq) = au_dbdiropq(d);
+	src_or_dst(hinode) = au_hi(src_or_dst(inode), a->btgt);
+	au_hn_inode_lock_nested(src_or_dst(hinode), AuLsc_I_CHILD);
+	diropq = au_diropq_create(d, a->btgt);
+	au_hn_inode_unlock(src_or_dst(hinode));
+	if (IS_ERR(diropq))
+		err = PTR_ERR(diropq);
+	else
+		dput(diropq);
+
+#undef src_or_dst_
+	return err;
+}
+
+static int au_ren_diropq(struct au_ren_args *a)
+{
+	int err;
+	unsigned char always;
+	struct dentry *d;
+
+	err = 0;
+	d = a->dst_dentry; /* already renamed on the branch */
+	always = !!au_opt_test(au_mntflags(d->d_sb), ALWAYS_DIROPQ);
+	if (au_ftest_ren(a->auren_flags, ISDIR_SRC)
+	    && !au_ftest_ren(a->auren_flags, DIRREN)
+	    && a->btgt != au_dbdiropq(a->src_dentry)
+	    && (a->dst_wh_dentry
+		|| a->btgt <= au_dbdiropq(d)
+		/* hide the lower to keep xino */
+		/* the lowers may not be a dir, but we hide them anyway */
+		|| a->btgt < au_dbbot(d)
+		|| always)) {
+		AuDbg("here\n");
+		err = au_ren_do_diropq(a, AuSRC);
+		if (unlikely(err))
+			goto out;
+		au_fset_ren(a->auren_flags, DIROPQ_SRC);
+	}
+	if (!a->exchange)
+		goto out; /* success */
+
+	d = a->src_dentry; /* already renamed on the branch */
+	if (au_ftest_ren(a->auren_flags, ISDIR_DST)
+	    && a->btgt != au_dbdiropq(a->dst_dentry)
+	    && (a->btgt < au_dbdiropq(d)
+		|| a->btgt < au_dbbot(d)
+		|| always)) {
+		AuDbgDentry(a->src_dentry);
+		AuDbgDentry(a->dst_dentry);
+		err = au_ren_do_diropq(a, AuDST);
+		if (unlikely(err))
+			goto out_rev_src;
+		au_fset_ren(a->auren_flags, DIROPQ_DST);
+	}
+	goto out; /* success */
+
+out_rev_src:
+	AuDbg("err %d, reverting src\n", err);
+	au_ren_rev_diropq(err, a);
+out:
+	return err;
+}
+
+static int do_rename(struct au_ren_args *a)
+{
+	int err;
+	struct dentry *d, *h_d;
+
+	if (!a->exchange) {
+		/* prepare workqueue args for asynchronous rmdir */
+		h_d = a->dst_h_dentry;
+		if (au_ftest_ren(a->auren_flags, ISDIR_DST)
+		    /* && !au_ftest_ren(a->auren_flags, DIRREN) */
+		    && d_is_positive(h_d)) {
+			err = -ENOMEM;
+			a->thargs = au_whtmp_rmdir_alloc(a->src_dentry->d_sb,
+							 GFP_NOFS);
+			if (unlikely(!a->thargs))
+				goto out;
+			a->h_dst = dget(h_d);
+		}
+
+		/* create whiteout for src_dentry */
+		if (au_ftest_ren(a->auren_flags, WHSRC)) {
+			a->src_bwh = au_dbwh(a->src_dentry);
+			AuDebugOn(a->src_bwh >= 0);
+			a->src_wh_dentry = au_wh_create(a->src_dentry, a->btgt,
+							a->src_h_parent);
+			err = PTR_ERR(a->src_wh_dentry);
+			if (IS_ERR(a->src_wh_dentry))
+				goto out_thargs;
+		}
+
+		/* lookup whiteout for dentry */
+		if (au_ftest_ren(a->auren_flags, WHDST)) {
+			h_d = au_wh_lkup(a->dst_h_parent,
+					 &a->dst_dentry->d_name, a->br);
+			err = PTR_ERR(h_d);
+			if (IS_ERR(h_d))
+				goto out_whsrc;
+			if (d_is_negative(h_d))
+				dput(h_d);
+			else
+				a->dst_wh_dentry = h_d;
+		}
+
+		/* rename dentry to tmpwh */
+		if (a->thargs) {
+			err = au_whtmp_ren(a->dst_h_dentry, a->br);
+			if (unlikely(err))
+				goto out_whdst;
+
+			d = a->dst_dentry;
+			au_set_h_dptr(d, a->btgt, NULL);
+			err = au_lkup_neg(d, a->btgt, /*wh*/0);
+			if (unlikely(err))
+				goto out_whtmp;
+			a->dst_h_dentry = au_h_dptr(d, a->btgt);
+		}
+	}
+
+	BUG_ON(d_is_positive(a->dst_h_dentry) && a->src_btop != a->btgt);
+#if 0 /* debugging */
+	BUG_ON(!au_ftest_ren(a->auren_flags, DIRREN)
+	       && d_is_positive(a->dst_h_dentry)
+	       && a->src_btop != a->btgt);
+#endif
+
+	/* rename by vfs_rename or cpup */
+	err = au_ren_or_cpup(a);
+	if (unlikely(err))
+		/* leave the copied-up one */
+		goto out_whtmp;
+
+	/* make dir opaque */
+	err = au_ren_diropq(a);
+	if (unlikely(err))
+		goto out_rename;
+
+	/* update target timestamps */
+	if (a->exchange) {
+		AuDebugOn(au_dbtop(a->dst_dentry) != a->btgt);
+		a->h_path.dentry = au_h_dptr(a->dst_dentry, a->btgt);
+		vfsub_update_h_iattr(&a->h_path, /*did*/NULL); /*ignore*/
+		a->dst_inode->i_ctime = d_inode(a->h_path.dentry)->i_ctime;
+	}
+	AuDebugOn(au_dbtop(a->src_dentry) != a->btgt);
+	a->h_path.dentry = au_h_dptr(a->src_dentry, a->btgt);
+	vfsub_update_h_iattr(&a->h_path, /*did*/NULL); /*ignore*/
+	a->src_inode->i_ctime = d_inode(a->h_path.dentry)->i_ctime;
+
+	if (!a->exchange) {
+		/* remove whiteout for dentry */
+		if (a->dst_wh_dentry) {
+			a->h_path.dentry = a->dst_wh_dentry;
+			err = au_wh_unlink_dentry(a->dst_h_dir, &a->h_path,
+						  a->dst_dentry);
+			if (unlikely(err))
+				goto out_diropq;
+		}
+
+		/* remove whtmp */
+		if (a->thargs)
+			au_ren_del_whtmp(a); /* ignore this error */
+
+		au_fhsm_wrote(a->src_dentry->d_sb, a->btgt, /*force*/0);
+	}
+	err = 0;
+	goto out_success;
+
+out_diropq:
+	au_ren_rev_diropq(err, a);
+out_rename:
+	au_ren_rev_rename(err, a);
+	dput(a->h_dst);
+out_whtmp:
+	if (a->thargs)
+		au_ren_rev_whtmp(err, a);
+out_whdst:
+	dput(a->dst_wh_dentry);
+	a->dst_wh_dentry = NULL;
+out_whsrc:
+	if (a->src_wh_dentry)
+		au_ren_rev_whsrc(err, a);
+out_success:
+	dput(a->src_wh_dentry);
+	dput(a->dst_wh_dentry);
+out_thargs:
+	if (a->thargs) {
+		dput(a->h_dst);
+		au_whtmp_rmdir_free(a->thargs);
+		a->thargs = NULL;
+	}
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * test if @dentry dir can be rename destination or not.
+ * success means, it is a logically empty dir.
+ */
+static int may_rename_dstdir(struct dentry *dentry, struct au_nhash *whlist)
+{
+	return au_test_empty(dentry, whlist);
+}
+
+/*
+ * test if @a->src_dentry dir can be rename source or not.
+ * if it can, return 0.
+ * success means,
+ * - it is a logically empty dir.
+ * - or, it exists on writable branch and has no children including whiteouts
+ *   on the lower branch unless DIRREN is on.
+ */
+static int may_rename_srcdir(struct au_ren_args *a)
+{
+	int err;
+	unsigned int rdhash;
+	aufs_bindex_t btop, btgt;
+	struct dentry *dentry;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+
+	dentry = a->src_dentry;
+	sb = dentry->d_sb;
+	sbinfo = au_sbi(sb);
+	if (au_opt_test(sbinfo->si_mntflags, DIRREN))
+		au_fset_ren(a->auren_flags, DIRREN);
+
+	btgt = a->btgt;
+	btop = au_dbtop(dentry);
+	if (btop != btgt) {
+		struct au_nhash whlist;
+
+		SiMustAnyLock(sb);
+		rdhash = sbinfo->si_rdhash;
+		if (!rdhash)
+			rdhash = au_rdhash_est(au_dir_size(/*file*/NULL,
+							   dentry));
+		err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS);
+		if (unlikely(err))
+			goto out;
+		err = au_test_empty(dentry, &whlist);
+		au_nhash_wh_free(&whlist);
+		goto out;
+	}
+
+	if (btop == au_dbtaildir(dentry))
+		return 0; /* success */
+
+	err = au_test_empty_lower(dentry);
+
+out:
+	if (err == -ENOTEMPTY) {
+		if (au_ftest_ren(a->auren_flags, DIRREN)) {
+			err = 0;
+		} else {
+			AuWarn1("renaming dir who has child(ren) on multiple "
+				"branches, is not supported\n");
+			err = -EXDEV;
+		}
+	}
+	return err;
+}
+
+/* side effect: sets whlist and h_dentry */
+static int au_ren_may_dir(struct au_ren_args *a)
+{
+	int err;
+	unsigned int rdhash;
+	struct dentry *d;
+
+	d = a->dst_dentry;
+	SiMustAnyLock(d->d_sb);
+
+	err = 0;
+	if (au_ftest_ren(a->auren_flags, ISDIR_DST) && a->dst_inode) {
+		rdhash = au_sbi(d->d_sb)->si_rdhash;
+		if (!rdhash)
+			rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, d));
+		err = au_nhash_alloc(&a->whlist, rdhash, GFP_NOFS);
+		if (unlikely(err))
+			goto out;
+
+		if (!a->exchange) {
+			au_set_dbtop(d, a->dst_btop);
+			err = may_rename_dstdir(d, &a->whlist);
+			au_set_dbtop(d, a->btgt);
+		} else
+			err = may_rename_srcdir(a);
+	}
+	a->dst_h_dentry = au_h_dptr(d, au_dbtop(d));
+	if (unlikely(err))
+		goto out;
+
+	d = a->src_dentry;
+	a->src_h_dentry = au_h_dptr(d, au_dbtop(d));
+	if (au_ftest_ren(a->auren_flags, ISDIR_SRC)) {
+		err = may_rename_srcdir(a);
+		if (unlikely(err)) {
+			au_nhash_wh_free(&a->whlist);
+			a->whlist.nh_num = 0;
+		}
+	}
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * simple tests for rename.
+ * following the checks in vfs, plus the parent-child relationship.
+ */
+static int au_may_ren(struct au_ren_args *a)
+{
+	int err, isdir;
+	struct inode *h_inode;
+
+	if (a->src_btop == a->btgt) {
+		err = au_may_del(a->src_dentry, a->btgt, a->src_h_parent,
+				 au_ftest_ren(a->auren_flags, ISDIR_SRC));
+		if (unlikely(err))
+			goto out;
+		err = -EINVAL;
+		if (unlikely(a->src_h_dentry == a->h_trap))
+			goto out;
+	}
+
+	err = 0;
+	if (a->dst_btop != a->btgt)
+		goto out;
+
+	err = -ENOTEMPTY;
+	if (unlikely(a->dst_h_dentry == a->h_trap))
+		goto out;
+
+	err = -EIO;
+	isdir = !!au_ftest_ren(a->auren_flags, ISDIR_DST);
+	if (d_really_is_negative(a->dst_dentry)) {
+		if (d_is_negative(a->dst_h_dentry))
+			err = au_may_add(a->dst_dentry, a->btgt,
+					 a->dst_h_parent, isdir);
+	} else {
+		if (unlikely(d_is_negative(a->dst_h_dentry)))
+			goto out;
+		h_inode = d_inode(a->dst_h_dentry);
+		if (h_inode->i_nlink)
+			err = au_may_del(a->dst_dentry, a->btgt,
+					 a->dst_h_parent, isdir);
+	}
+
+out:
+	if (unlikely(err == -ENOENT || err == -EEXIST))
+		err = -EIO;
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * locking order
+ * (VFS)
+ * - src_dir and dir by lock_rename()
+ * - inode if exists
+ * (aufs)
+ * - lock all
+ *   + src_dentry and dentry by aufs_read_and_write_lock2() which calls,
+ *     + si_read_lock
+ *     + di_write_lock2_child()
+ *       + di_write_lock_child()
+ *	   + ii_write_lock_child()
+ *       + di_write_lock_child2()
+ *	   + ii_write_lock_child2()
+ *     + src_parent and parent
+ *       + di_write_lock_parent()
+ *	   + ii_write_lock_parent()
+ *       + di_write_lock_parent2()
+ *	   + ii_write_lock_parent2()
+ *   + lower src_dir and dir by vfsub_lock_rename()
+ *   + verify the every relationships between child and parent. if any
+ *     of them failed, unlock all and return -EBUSY.
+ */
+static void au_ren_unlock(struct au_ren_args *a)
+{
+	vfsub_unlock_rename(a->src_h_parent, a->src_hdir,
+			    a->dst_h_parent, a->dst_hdir);
+	if (au_ftest_ren(a->auren_flags, DIRREN)
+	    && a->h_root)
+		au_hn_inode_unlock(a->h_root);
+	if (au_ftest_ren(a->auren_flags, MNT_WRITE))
+		vfsub_mnt_drop_write(au_br_mnt(a->br));
+}
+
+static int au_ren_lock(struct au_ren_args *a)
+{
+	int err;
+	unsigned int udba;
+
+	err = 0;
+	a->src_h_parent = au_h_dptr(a->src_parent, a->btgt);
+	a->src_hdir = au_hi(a->src_dir, a->btgt);
+	a->dst_h_parent = au_h_dptr(a->dst_parent, a->btgt);
+	a->dst_hdir = au_hi(a->dst_dir, a->btgt);
+
+	err = vfsub_mnt_want_write(au_br_mnt(a->br));
+	if (unlikely(err))
+		goto out;
+	au_fset_ren(a->auren_flags, MNT_WRITE);
+	if (au_ftest_ren(a->auren_flags, DIRREN)) {
+		struct dentry *root;
+		struct inode *dir;
+
+		/*
+		 * sbinfo is already locked, so this ii_read_lock is
+		 * unnecessary. but our debugging feature checks it.
+		 */
+		root = a->src_inode->i_sb->s_root;
+		if (root != a->src_parent && root != a->dst_parent) {
+			dir = d_inode(root);
+			ii_read_lock_parent3(dir);
+			a->h_root = au_hi(dir, a->btgt);
+			ii_read_unlock(dir);
+			au_hn_inode_lock_nested(a->h_root, AuLsc_I_PARENT3);
+		}
+	}
+	a->h_trap = vfsub_lock_rename(a->src_h_parent, a->src_hdir,
+				      a->dst_h_parent, a->dst_hdir);
+	udba = au_opt_udba(a->src_dentry->d_sb);
+	if (unlikely(a->src_hdir->hi_inode != d_inode(a->src_h_parent)
+		     || a->dst_hdir->hi_inode != d_inode(a->dst_h_parent)))
+		err = au_busy_or_stale();
+	if (!err && au_dbtop(a->src_dentry) == a->btgt)
+		err = au_h_verify(a->src_h_dentry, udba,
+				  d_inode(a->src_h_parent), a->src_h_parent,
+				  a->br);
+	if (!err && au_dbtop(a->dst_dentry) == a->btgt)
+		err = au_h_verify(a->dst_h_dentry, udba,
+				  d_inode(a->dst_h_parent), a->dst_h_parent,
+				  a->br);
+	if (!err)
+		goto out; /* success */
+
+	err = au_busy_or_stale();
+	au_ren_unlock(a);
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_ren_refresh_dir(struct au_ren_args *a)
+{
+	struct inode *dir;
+
+	dir = a->dst_dir;
+	inode_inc_iversion(dir);
+	if (au_ftest_ren(a->auren_flags, ISDIR_SRC)) {
+		/* is this updating defined in POSIX? */
+		au_cpup_attr_timesizes(a->src_inode);
+		au_cpup_attr_nlink(dir, /*force*/1);
+	}
+	au_dir_ts(dir, a->btgt);
+
+	if (a->exchange) {
+		dir = a->src_dir;
+		inode_inc_iversion(dir);
+		if (au_ftest_ren(a->auren_flags, ISDIR_DST)) {
+			/* is this updating defined in POSIX? */
+			au_cpup_attr_timesizes(a->dst_inode);
+			au_cpup_attr_nlink(dir, /*force*/1);
+		}
+		au_dir_ts(dir, a->btgt);
+	}
+
+	if (au_ftest_ren(a->auren_flags, ISSAMEDIR))
+		return;
+
+	dir = a->src_dir;
+	inode_inc_iversion(dir);
+	if (au_ftest_ren(a->auren_flags, ISDIR_SRC))
+		au_cpup_attr_nlink(dir, /*force*/1);
+	au_dir_ts(dir, a->btgt);
+}
+
+static void au_ren_refresh(struct au_ren_args *a)
+{
+	aufs_bindex_t bbot, bindex;
+	struct dentry *d, *h_d;
+	struct inode *i, *h_i;
+	struct super_block *sb;
+
+	d = a->dst_dentry;
+	d_drop(d);
+	if (a->h_dst)
+		/* already dget-ed by au_ren_or_cpup() */
+		au_set_h_dptr(d, a->btgt, a->h_dst);
+
+	i = a->dst_inode;
+	if (i) {
+		if (!a->exchange) {
+			if (!au_ftest_ren(a->auren_flags, ISDIR_DST))
+				vfsub_drop_nlink(i);
+			else {
+				vfsub_dead_dir(i);
+				au_cpup_attr_timesizes(i);
+			}
+			au_update_dbrange(d, /*do_put_zero*/1);
+		} else
+			au_cpup_attr_nlink(i, /*force*/1);
+	} else {
+		bbot = a->btgt;
+		for (bindex = au_dbtop(d); bindex < bbot; bindex++)
+			au_set_h_dptr(d, bindex, NULL);
+		bbot = au_dbbot(d);
+		for (bindex = a->btgt + 1; bindex <= bbot; bindex++)
+			au_set_h_dptr(d, bindex, NULL);
+		au_update_dbrange(d, /*do_put_zero*/0);
+	}
+
+	if (a->exchange
+	    || au_ftest_ren(a->auren_flags, DIRREN)) {
+		d_drop(a->src_dentry);
+		if (au_ftest_ren(a->auren_flags, DIRREN))
+			au_set_dbwh(a->src_dentry, -1);
+		return;
+	}
+
+	d = a->src_dentry;
+	au_set_dbwh(d, -1);
+	bbot = au_dbbot(d);
+	for (bindex = a->btgt + 1; bindex <= bbot; bindex++) {
+		h_d = au_h_dptr(d, bindex);
+		if (h_d)
+			au_set_h_dptr(d, bindex, NULL);
+	}
+	au_set_dbbot(d, a->btgt);
+
+	sb = d->d_sb;
+	i = a->src_inode;
+	if (au_opt_test(au_mntflags(sb), PLINK) && au_plink_test(i))
+		return; /* success */
+
+	bbot = au_ibbot(i);
+	for (bindex = a->btgt + 1; bindex <= bbot; bindex++) {
+		h_i = au_h_iptr(i, bindex);
+		if (h_i) {
+			au_xino_write(sb, bindex, h_i->i_ino, /*ino*/0);
+			/* ignore this error */
+			au_set_h_iptr(i, bindex, NULL, 0);
+		}
+	}
+	au_set_ibbot(i, a->btgt);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* mainly for link(2) and rename(2) */
+int au_wbr(struct dentry *dentry, aufs_bindex_t btgt)
+{
+	aufs_bindex_t bdiropq, bwh;
+	struct dentry *parent;
+	struct au_branch *br;
+
+	parent = dentry->d_parent;
+	IMustLock(d_inode(parent)); /* dir is locked */
+
+	bdiropq = au_dbdiropq(parent);
+	bwh = au_dbwh(dentry);
+	br = au_sbr(dentry->d_sb, btgt);
+	if (au_br_rdonly(br)
+	    || (0 <= bdiropq && bdiropq < btgt)
+	    || (0 <= bwh && bwh < btgt))
+		btgt = -1;
+
+	AuDbg("btgt %d\n", btgt);
+	return btgt;
+}
+
+/* sets src_btop, dst_btop and btgt */
+static int au_ren_wbr(struct au_ren_args *a)
+{
+	int err;
+	struct au_wr_dir_args wr_dir_args = {
+		/* .force_btgt	= -1, */
+		.flags		= AuWrDir_ADD_ENTRY
+	};
+
+	a->src_btop = au_dbtop(a->src_dentry);
+	a->dst_btop = au_dbtop(a->dst_dentry);
+	if (au_ftest_ren(a->auren_flags, ISDIR_SRC)
+	    || au_ftest_ren(a->auren_flags, ISDIR_DST))
+		au_fset_wrdir(wr_dir_args.flags, ISDIR);
+	wr_dir_args.force_btgt = a->src_btop;
+	if (a->dst_inode && a->dst_btop < a->src_btop)
+		wr_dir_args.force_btgt = a->dst_btop;
+	wr_dir_args.force_btgt = au_wbr(a->dst_dentry, wr_dir_args.force_btgt);
+	err = au_wr_dir(a->dst_dentry, a->src_dentry, &wr_dir_args);
+	a->btgt = err;
+	if (a->exchange)
+		au_update_dbtop(a->dst_dentry);
+
+	return err;
+}
+
+static void au_ren_dt(struct au_ren_args *a)
+{
+	a->h_path.dentry = a->src_h_parent;
+	au_dtime_store(a->src_dt + AuPARENT, a->src_parent, &a->h_path);
+	if (!au_ftest_ren(a->auren_flags, ISSAMEDIR)) {
+		a->h_path.dentry = a->dst_h_parent;
+		au_dtime_store(a->dst_dt + AuPARENT, a->dst_parent, &a->h_path);
+	}
+
+	au_fclr_ren(a->auren_flags, DT_DSTDIR);
+	if (!au_ftest_ren(a->auren_flags, ISDIR_SRC)
+	    && !a->exchange)
+		return;
+
+	a->h_path.dentry = a->src_h_dentry;
+	au_dtime_store(a->src_dt + AuCHILD, a->src_dentry, &a->h_path);
+	if (d_is_positive(a->dst_h_dentry)) {
+		au_fset_ren(a->auren_flags, DT_DSTDIR);
+		a->h_path.dentry = a->dst_h_dentry;
+		au_dtime_store(a->dst_dt + AuCHILD, a->dst_dentry, &a->h_path);
+	}
+}
+
+static void au_ren_rev_dt(int err, struct au_ren_args *a)
+{
+	struct dentry *h_d;
+	struct inode *h_inode;
+
+	au_dtime_revert(a->src_dt + AuPARENT);
+	if (!au_ftest_ren(a->auren_flags, ISSAMEDIR))
+		au_dtime_revert(a->dst_dt + AuPARENT);
+
+	if (au_ftest_ren(a->auren_flags, ISDIR_SRC) && err != -EIO) {
+		h_d = a->src_dt[AuCHILD].dt_h_path.dentry;
+		h_inode = d_inode(h_d);
+		inode_lock_nested(h_inode, AuLsc_I_CHILD);
+		au_dtime_revert(a->src_dt + AuCHILD);
+		inode_unlock(h_inode);
+
+		if (au_ftest_ren(a->auren_flags, DT_DSTDIR)) {
+			h_d = a->dst_dt[AuCHILD].dt_h_path.dentry;
+			h_inode = d_inode(h_d);
+			inode_lock_nested(h_inode, AuLsc_I_CHILD);
+			au_dtime_revert(a->dst_dt + AuCHILD);
+			inode_unlock(h_inode);
+		}
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+int aufs_rename(struct inode *_src_dir, struct dentry *_src_dentry,
+		struct inode *_dst_dir, struct dentry *_dst_dentry,
+		unsigned int _flags)
+{
+	int err, lock_flags;
+	void *rev;
+	/* reduce stack space */
+	struct au_ren_args *a;
+	struct au_pin pin;
+
+	AuDbg("%pd, %pd, 0x%x\n", _src_dentry, _dst_dentry, _flags);
+	IMustLock(_src_dir);
+	IMustLock(_dst_dir);
+
+	err = -EINVAL;
+	if (unlikely(_flags & RENAME_WHITEOUT))
+		goto out;
+
+	err = -ENOMEM;
+	BUILD_BUG_ON(sizeof(*a) > PAGE_SIZE);
+	a = kzalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	a->flags = _flags;
+	BUILD_BUG_ON(sizeof(a->exchange) == sizeof(u8)
+		     && RENAME_EXCHANGE > U8_MAX);
+	a->exchange = _flags & RENAME_EXCHANGE;
+	a->src_dir = _src_dir;
+	a->src_dentry = _src_dentry;
+	a->src_inode = NULL;
+	if (d_really_is_positive(a->src_dentry))
+		a->src_inode = d_inode(a->src_dentry);
+	a->src_parent = a->src_dentry->d_parent; /* dir inode is locked */
+	a->dst_dir = _dst_dir;
+	a->dst_dentry = _dst_dentry;
+	a->dst_inode = NULL;
+	if (d_really_is_positive(a->dst_dentry))
+		a->dst_inode = d_inode(a->dst_dentry);
+	a->dst_parent = a->dst_dentry->d_parent; /* dir inode is locked */
+	if (a->dst_inode) {
+		/*
+		 * if EXCHANGE && src is non-dir && dst is dir,
+		 * dst is not locked.
+		 */
+		/* IMustLock(a->dst_inode); */
+		au_igrab(a->dst_inode);
+	}
+
+	err = -ENOTDIR;
+	lock_flags = AuLock_FLUSH | AuLock_NOPLM | AuLock_GEN;
+	if (d_is_dir(a->src_dentry)) {
+		au_fset_ren(a->auren_flags, ISDIR_SRC);
+		if (unlikely(!a->exchange
+			     && d_really_is_positive(a->dst_dentry)
+			     && !d_is_dir(a->dst_dentry)))
+			goto out_free;
+		lock_flags |= AuLock_DIRS;
+	}
+	if (a->dst_inode && d_is_dir(a->dst_dentry)) {
+		au_fset_ren(a->auren_flags, ISDIR_DST);
+		if (unlikely(!a->exchange
+			     && d_really_is_positive(a->src_dentry)
+			     && !d_is_dir(a->src_dentry)))
+			goto out_free;
+		lock_flags |= AuLock_DIRS;
+	}
+	err = aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry,
+					lock_flags);
+	if (unlikely(err))
+		goto out_free;
+
+	err = au_d_hashed_positive(a->src_dentry);
+	if (unlikely(err))
+		goto out_unlock;
+	err = -ENOENT;
+	if (a->dst_inode) {
+		/*
+		 * If it is a dir, VFS unhash it before this
+		 * function. It means we cannot rely upon d_unhashed().
+		 */
+		if (unlikely(!a->dst_inode->i_nlink))
+			goto out_unlock;
+		if (!au_ftest_ren(a->auren_flags, ISDIR_DST)) {
+			err = au_d_hashed_positive(a->dst_dentry);
+			if (unlikely(err && !a->exchange))
+				goto out_unlock;
+		} else if (unlikely(IS_DEADDIR(a->dst_inode)))
+			goto out_unlock;
+	} else if (unlikely(d_unhashed(a->dst_dentry)))
+		goto out_unlock;
+
+	/*
+	 * is it possible?
+	 * yes, it happened (in linux-3.3-rcN) but I don't know why.
+	 * there may exist a problem somewhere else.
+	 */
+	err = -EINVAL;
+	if (unlikely(d_inode(a->dst_parent) == d_inode(a->src_dentry)))
+		goto out_unlock;
+
+	au_fset_ren(a->auren_flags, ISSAMEDIR); /* temporary */
+	di_write_lock_parent(a->dst_parent);
+
+	/* which branch we process */
+	err = au_ren_wbr(a);
+	if (unlikely(err < 0))
+		goto out_parent;
+	a->br = au_sbr(a->dst_dentry->d_sb, a->btgt);
+	a->h_path.mnt = au_br_mnt(a->br);
+
+	/* are they available to be renamed */
+	err = au_ren_may_dir(a);
+	if (unlikely(err))
+		goto out_children;
+
+	/* prepare the writable parent dir on the same branch */
+	if (a->dst_btop == a->btgt) {
+		au_fset_ren(a->auren_flags, WHDST);
+	} else {
+		err = au_cpup_dirs(a->dst_dentry, a->btgt);
+		if (unlikely(err))
+			goto out_children;
+	}
+
+	err = 0;
+	if (!a->exchange) {
+		if (a->src_dir != a->dst_dir) {
+			/*
+			 * this temporary unlock is safe,
+			 * because both dir->i_mutex are locked.
+			 */
+			di_write_unlock(a->dst_parent);
+			di_write_lock_parent(a->src_parent);
+			err = au_wr_dir_need_wh(a->src_dentry,
+						au_ftest_ren(a->auren_flags,
+							     ISDIR_SRC),
+						&a->btgt);
+			di_write_unlock(a->src_parent);
+			di_write_lock2_parent(a->src_parent, a->dst_parent,
+					      /*isdir*/1);
+			au_fclr_ren(a->auren_flags, ISSAMEDIR);
+		} else
+			err = au_wr_dir_need_wh(a->src_dentry,
+						au_ftest_ren(a->auren_flags,
+							     ISDIR_SRC),
+						&a->btgt);
+	}
+	if (unlikely(err < 0))
+		goto out_children;
+	if (err)
+		au_fset_ren(a->auren_flags, WHSRC);
+
+	/* cpup src */
+	if (a->src_btop != a->btgt) {
+		err = au_pin(&pin, a->src_dentry, a->btgt,
+			     au_opt_udba(a->src_dentry->d_sb),
+			     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+		if (!err) {
+			struct au_cp_generic cpg = {
+				.dentry	= a->src_dentry,
+				.bdst	= a->btgt,
+				.bsrc	= a->src_btop,
+				.len	= -1,
+				.pin	= &pin,
+				.flags	= AuCpup_DTIME | AuCpup_HOPEN
+			};
+			AuDebugOn(au_dbtop(a->src_dentry) != a->src_btop);
+			err = au_sio_cpup_simple(&cpg);
+			au_unpin(&pin);
+		}
+		if (unlikely(err))
+			goto out_children;
+		a->src_btop = a->btgt;
+		a->src_h_dentry = au_h_dptr(a->src_dentry, a->btgt);
+		if (!a->exchange)
+			au_fset_ren(a->auren_flags, WHSRC);
+	}
+
+	/* cpup dst */
+	if (a->exchange && a->dst_inode
+	    && a->dst_btop != a->btgt) {
+		err = au_pin(&pin, a->dst_dentry, a->btgt,
+			     au_opt_udba(a->dst_dentry->d_sb),
+			     AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+		if (!err) {
+			struct au_cp_generic cpg = {
+				.dentry	= a->dst_dentry,
+				.bdst	= a->btgt,
+				.bsrc	= a->dst_btop,
+				.len	= -1,
+				.pin	= &pin,
+				.flags	= AuCpup_DTIME | AuCpup_HOPEN
+			};
+			err = au_sio_cpup_simple(&cpg);
+			au_unpin(&pin);
+		}
+		if (unlikely(err))
+			goto out_children;
+		a->dst_btop = a->btgt;
+		a->dst_h_dentry = au_h_dptr(a->dst_dentry, a->btgt);
+	}
+
+	/* lock them all */
+	err = au_ren_lock(a);
+	if (unlikely(err))
+		/* leave the copied-up one */
+		goto out_children;
+
+	if (!a->exchange) {
+		if (!au_opt_test(au_mntflags(a->dst_dir->i_sb), UDBA_NONE))
+			err = au_may_ren(a);
+		else if (unlikely(a->dst_dentry->d_name.len > AUFS_MAX_NAMELEN))
+			err = -ENAMETOOLONG;
+		if (unlikely(err))
+			goto out_hdir;
+	}
+
+	/* store timestamps to be revertible */
+	au_ren_dt(a);
+
+	/* store dirren info */
+	if (au_ftest_ren(a->auren_flags, DIRREN)) {
+		err = au_dr_rename(a->src_dentry, a->btgt,
+				   &a->dst_dentry->d_name, &rev);
+		AuTraceErr(err);
+		if (unlikely(err))
+			goto out_dt;
+	}
+
+	/* here we go */
+	err = do_rename(a);
+	if (unlikely(err))
+		goto out_dirren;
+
+	if (au_ftest_ren(a->auren_flags, DIRREN))
+		au_dr_rename_fin(a->src_dentry, a->btgt, rev);
+
+	/* update dir attributes */
+	au_ren_refresh_dir(a);
+
+	/* dput/iput all lower dentries */
+	au_ren_refresh(a);
+
+	goto out_hdir; /* success */
+
+out_dirren:
+	if (au_ftest_ren(a->auren_flags, DIRREN))
+		au_dr_rename_rev(a->src_dentry, a->btgt, rev);
+out_dt:
+	au_ren_rev_dt(err, a);
+out_hdir:
+	au_ren_unlock(a);
+out_children:
+	au_nhash_wh_free(&a->whlist);
+	if (err && a->dst_inode && a->dst_btop != a->btgt) {
+		AuDbg("btop %d, btgt %d\n", a->dst_btop, a->btgt);
+		au_set_h_dptr(a->dst_dentry, a->btgt, NULL);
+		au_set_dbtop(a->dst_dentry, a->dst_btop);
+	}
+out_parent:
+	if (!err) {
+		if (d_unhashed(a->src_dentry))
+			au_fset_ren(a->auren_flags, DROPPED_SRC);
+		if (d_unhashed(a->dst_dentry))
+			au_fset_ren(a->auren_flags, DROPPED_DST);
+		if (!a->exchange)
+			d_move(a->src_dentry, a->dst_dentry);
+		else {
+			d_exchange(a->src_dentry, a->dst_dentry);
+			if (au_ftest_ren(a->auren_flags, DROPPED_DST))
+				d_drop(a->dst_dentry);
+		}
+		if (au_ftest_ren(a->auren_flags, DROPPED_SRC))
+			d_drop(a->src_dentry);
+	} else {
+		au_update_dbtop(a->dst_dentry);
+		if (!a->dst_inode)
+			d_drop(a->dst_dentry);
+	}
+	if (au_ftest_ren(a->auren_flags, ISSAMEDIR))
+		di_write_unlock(a->dst_parent);
+	else
+		di_write_unlock2(a->src_parent, a->dst_parent);
+out_unlock:
+	aufs_read_and_write_unlock2(a->dst_dentry, a->src_dentry);
+out_free:
+	iput(a->dst_inode);
+	if (a->thargs)
+		au_whtmp_rmdir_free(a->thargs);
+	au_kfree_rcu(a);
+out:
+	AuTraceErr(err);
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/iinfo.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/iinfo.c
@@ -0,0 +1,286 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode private data
+ */
+
+#include "aufs.h"
+
+struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex)
+{
+	struct inode *h_inode;
+	struct au_hinode *hinode;
+
+	IiMustAnyLock(inode);
+
+	hinode = au_hinode(au_ii(inode), bindex);
+	h_inode = hinode->hi_inode;
+	AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0);
+	return h_inode;
+}
+
+/* todo: hard/soft set? */
+void au_hiput(struct au_hinode *hinode)
+{
+	au_hn_free(hinode);
+	dput(hinode->hi_whdentry);
+	iput(hinode->hi_inode);
+}
+
+unsigned int au_hi_flags(struct inode *inode, int isdir)
+{
+	unsigned int flags;
+	const unsigned int mnt_flags = au_mntflags(inode->i_sb);
+
+	flags = 0;
+	if (au_opt_test(mnt_flags, XINO))
+		au_fset_hi(flags, XINO);
+	if (isdir && au_opt_test(mnt_flags, UDBA_HNOTIFY))
+		au_fset_hi(flags, HNOTIFY);
+	return flags;
+}
+
+void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
+		   struct inode *h_inode, unsigned int flags)
+{
+	struct au_hinode *hinode;
+	struct inode *hi;
+	struct au_iinfo *iinfo = au_ii(inode);
+
+	IiMustWriteLock(inode);
+
+	hinode = au_hinode(iinfo, bindex);
+	hi = hinode->hi_inode;
+	AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0);
+
+	if (hi)
+		au_hiput(hinode);
+	hinode->hi_inode = h_inode;
+	if (h_inode) {
+		int err;
+		struct super_block *sb = inode->i_sb;
+		struct au_branch *br;
+
+		AuDebugOn(inode->i_mode
+			  && (h_inode->i_mode & S_IFMT)
+			  != (inode->i_mode & S_IFMT));
+		if (bindex == iinfo->ii_btop)
+			au_cpup_igen(inode, h_inode);
+		br = au_sbr(sb, bindex);
+		hinode->hi_id = br->br_id;
+		if (au_ftest_hi(flags, XINO)) {
+			err = au_xino_write(sb, bindex, h_inode->i_ino,
+					    inode->i_ino);
+			if (unlikely(err))
+				AuIOErr1("failed au_xino_write() %d\n", err);
+		}
+
+		if (au_ftest_hi(flags, HNOTIFY)
+		    && au_br_hnotifyable(br->br_perm)) {
+			err = au_hn_alloc(hinode, inode);
+			if (unlikely(err))
+				AuIOErr1("au_hn_alloc() %d\n", err);
+		}
+	}
+}
+
+void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex,
+		  struct dentry *h_wh)
+{
+	struct au_hinode *hinode;
+
+	IiMustWriteLock(inode);
+
+	hinode = au_hinode(au_ii(inode), bindex);
+	AuDebugOn(hinode->hi_whdentry);
+	hinode->hi_whdentry = h_wh;
+}
+
+void au_update_iigen(struct inode *inode, int half)
+{
+	struct au_iinfo *iinfo;
+	struct au_iigen *iigen;
+	unsigned int sigen;
+
+	sigen = au_sigen(inode->i_sb);
+	iinfo = au_ii(inode);
+	iigen = &iinfo->ii_generation;
+	spin_lock(&iigen->ig_spin);
+	iigen->ig_generation = sigen;
+	if (half)
+		au_ig_fset(iigen->ig_flags, HALF_REFRESHED);
+	else
+		au_ig_fclr(iigen->ig_flags, HALF_REFRESHED);
+	spin_unlock(&iigen->ig_spin);
+}
+
+/* it may be called at remount time, too */
+void au_update_ibrange(struct inode *inode, int do_put_zero)
+{
+	struct au_iinfo *iinfo;
+	aufs_bindex_t bindex, bbot;
+
+	AuDebugOn(au_is_bad_inode(inode));
+	IiMustWriteLock(inode);
+
+	iinfo = au_ii(inode);
+	if (do_put_zero && iinfo->ii_btop >= 0) {
+		for (bindex = iinfo->ii_btop; bindex <= iinfo->ii_bbot;
+		     bindex++) {
+			struct inode *h_i;
+
+			h_i = au_hinode(iinfo, bindex)->hi_inode;
+			if (h_i
+			    && !h_i->i_nlink
+			    && !(h_i->i_state & I_LINKABLE))
+				au_set_h_iptr(inode, bindex, NULL, 0);
+		}
+	}
+
+	iinfo->ii_btop = -1;
+	iinfo->ii_bbot = -1;
+	bbot = au_sbbot(inode->i_sb);
+	for (bindex = 0; bindex <= bbot; bindex++)
+		if (au_hinode(iinfo, bindex)->hi_inode) {
+			iinfo->ii_btop = bindex;
+			break;
+		}
+	if (iinfo->ii_btop >= 0)
+		for (bindex = bbot; bindex >= iinfo->ii_btop; bindex--)
+			if (au_hinode(iinfo, bindex)->hi_inode) {
+				iinfo->ii_bbot = bindex;
+				break;
+			}
+	AuDebugOn(iinfo->ii_btop > iinfo->ii_bbot);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_icntnr_init_once(void *_c)
+{
+	struct au_icntnr *c = _c;
+	struct au_iinfo *iinfo = &c->iinfo;
+
+	spin_lock_init(&iinfo->ii_generation.ig_spin);
+	au_rw_init(&iinfo->ii_rwsem);
+	inode_init_once(&c->vfs_inode);
+}
+
+void au_hinode_init(struct au_hinode *hinode)
+{
+	hinode->hi_inode = NULL;
+	hinode->hi_id = -1;
+	au_hn_init(hinode);
+	hinode->hi_whdentry = NULL;
+}
+
+int au_iinfo_init(struct inode *inode)
+{
+	struct au_iinfo *iinfo;
+	struct super_block *sb;
+	struct au_hinode *hi;
+	int nbr, i;
+
+	sb = inode->i_sb;
+	iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo);
+	nbr = au_sbbot(sb) + 1;
+	if (unlikely(nbr <= 0))
+		nbr = 1;
+	hi = kmalloc_array(nbr, sizeof(*iinfo->ii_hinode), GFP_NOFS);
+	if (hi) {
+		au_lcnt_inc(&au_sbi(sb)->si_ninodes);
+
+		iinfo->ii_hinode = hi;
+		for (i = 0; i < nbr; i++, hi++)
+			au_hinode_init(hi);
+
+		iinfo->ii_generation.ig_generation = au_sigen(sb);
+		iinfo->ii_btop = -1;
+		iinfo->ii_bbot = -1;
+		iinfo->ii_vdir = NULL;
+		return 0;
+	}
+	return -ENOMEM;
+}
+
+int au_hinode_realloc(struct au_iinfo *iinfo, int nbr, int may_shrink)
+{
+	int err, i;
+	struct au_hinode *hip;
+
+	AuRwMustWriteLock(&iinfo->ii_rwsem);
+
+	err = -ENOMEM;
+	hip = au_krealloc(iinfo->ii_hinode, sizeof(*hip) * nbr, GFP_NOFS,
+			  may_shrink);
+	if (hip) {
+		iinfo->ii_hinode = hip;
+		i = iinfo->ii_bbot + 1;
+		hip += i;
+		for (; i < nbr; i++, hip++)
+			au_hinode_init(hip);
+		err = 0;
+	}
+
+	return err;
+}
+
+void au_iinfo_fin(struct inode *inode)
+{
+	struct au_iinfo *iinfo;
+	struct au_hinode *hi;
+	struct super_block *sb;
+	aufs_bindex_t bindex, bbot;
+	const unsigned char unlinked = !inode->i_nlink;
+
+	AuDebugOn(au_is_bad_inode(inode));
+
+	sb = inode->i_sb;
+	au_lcnt_dec(&au_sbi(sb)->si_ninodes);
+	if (si_pid_test(sb))
+		au_xino_delete_inode(inode, unlinked);
+	else {
+		/*
+		 * it is safe to hide the dependency between sbinfo and
+		 * sb->s_umount.
+		 */
+		lockdep_off();
+		si_noflush_read_lock(sb);
+		au_xino_delete_inode(inode, unlinked);
+		si_read_unlock(sb);
+		lockdep_on();
+	}
+
+	iinfo = au_ii(inode);
+	if (iinfo->ii_vdir)
+		au_vdir_free(iinfo->ii_vdir);
+
+	bindex = iinfo->ii_btop;
+	if (bindex >= 0) {
+		hi = au_hinode(iinfo, bindex);
+		bbot = iinfo->ii_bbot;
+		while (bindex++ <= bbot) {
+			if (hi->hi_inode)
+				au_hiput(hi);
+			hi++;
+		}
+	}
+	au_kfree_rcu(iinfo->ii_hinode);
+	AuRwDestroy(&iinfo->ii_rwsem);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/inode.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/inode.c
@@ -0,0 +1,529 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode functions
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+struct inode *au_igrab(struct inode *inode)
+{
+	if (inode) {
+		AuDebugOn(!atomic_read(&inode->i_count));
+		ihold(inode);
+	}
+	return inode;
+}
+
+static void au_refresh_hinode_attr(struct inode *inode, int do_version)
+{
+	au_cpup_attr_all(inode, /*force*/0);
+	au_update_iigen(inode, /*half*/1);
+	if (do_version)
+		inode_inc_iversion(inode);
+}
+
+static int au_ii_refresh(struct inode *inode, int *update)
+{
+	int err, e, nbr;
+	umode_t type;
+	aufs_bindex_t bindex, new_bindex;
+	struct super_block *sb;
+	struct au_iinfo *iinfo;
+	struct au_hinode *p, *q, tmp;
+
+	AuDebugOn(au_is_bad_inode(inode));
+	IiMustWriteLock(inode);
+
+	*update = 0;
+	sb = inode->i_sb;
+	nbr = au_sbbot(sb) + 1;
+	type = inode->i_mode & S_IFMT;
+	iinfo = au_ii(inode);
+	err = au_hinode_realloc(iinfo, nbr, /*may_shrink*/0);
+	if (unlikely(err))
+		goto out;
+
+	AuDebugOn(iinfo->ii_btop < 0);
+	p = au_hinode(iinfo, iinfo->ii_btop);
+	for (bindex = iinfo->ii_btop; bindex <= iinfo->ii_bbot;
+	     bindex++, p++) {
+		if (!p->hi_inode)
+			continue;
+
+		AuDebugOn(type != (p->hi_inode->i_mode & S_IFMT));
+		new_bindex = au_br_index(sb, p->hi_id);
+		if (new_bindex == bindex)
+			continue;
+
+		if (new_bindex < 0) {
+			*update = 1;
+			au_hiput(p);
+			p->hi_inode = NULL;
+			continue;
+		}
+
+		if (new_bindex < iinfo->ii_btop)
+			iinfo->ii_btop = new_bindex;
+		if (iinfo->ii_bbot < new_bindex)
+			iinfo->ii_bbot = new_bindex;
+		/* swap two lower inode, and loop again */
+		q = au_hinode(iinfo, new_bindex);
+		tmp = *q;
+		*q = *p;
+		*p = tmp;
+		if (tmp.hi_inode) {
+			bindex--;
+			p--;
+		}
+	}
+	au_update_ibrange(inode, /*do_put_zero*/0);
+	au_hinode_realloc(iinfo, nbr, /*may_shrink*/1); /* harmless if err */
+	e = au_dy_irefresh(inode);
+	if (unlikely(e && !err))
+		err = e;
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+void au_refresh_iop(struct inode *inode, int force_getattr)
+{
+	int type;
+	struct au_sbinfo *sbi = au_sbi(inode->i_sb);
+	const struct inode_operations *iop
+		= force_getattr ? aufs_iop : sbi->si_iop_array;
+
+	if (inode->i_op == iop)
+		return;
+
+	switch (inode->i_mode & S_IFMT) {
+	case S_IFDIR:
+		type = AuIop_DIR;
+		break;
+	case S_IFLNK:
+		type = AuIop_SYMLINK;
+		break;
+	default:
+		type = AuIop_OTHER;
+		break;
+	}
+
+	inode->i_op = iop + type;
+	/* unnecessary smp_wmb() */
+}
+
+int au_refresh_hinode_self(struct inode *inode)
+{
+	int err, update;
+
+	err = au_ii_refresh(inode, &update);
+	if (!err)
+		au_refresh_hinode_attr(inode, update && S_ISDIR(inode->i_mode));
+
+	AuTraceErr(err);
+	return err;
+}
+
+int au_refresh_hinode(struct inode *inode, struct dentry *dentry)
+{
+	int err, e, update;
+	unsigned int flags;
+	umode_t mode;
+	aufs_bindex_t bindex, bbot;
+	unsigned char isdir;
+	struct au_hinode *p;
+	struct au_iinfo *iinfo;
+
+	err = au_ii_refresh(inode, &update);
+	if (unlikely(err))
+		goto out;
+
+	update = 0;
+	iinfo = au_ii(inode);
+	p = au_hinode(iinfo, iinfo->ii_btop);
+	mode = (inode->i_mode & S_IFMT);
+	isdir = S_ISDIR(mode);
+	flags = au_hi_flags(inode, isdir);
+	bbot = au_dbbot(dentry);
+	for (bindex = au_dbtop(dentry); bindex <= bbot; bindex++) {
+		struct inode *h_i, *h_inode;
+		struct dentry *h_d;
+
+		h_d = au_h_dptr(dentry, bindex);
+		if (!h_d || d_is_negative(h_d))
+			continue;
+
+		h_inode = d_inode(h_d);
+		AuDebugOn(mode != (h_inode->i_mode & S_IFMT));
+		if (iinfo->ii_btop <= bindex && bindex <= iinfo->ii_bbot) {
+			h_i = au_h_iptr(inode, bindex);
+			if (h_i) {
+				if (h_i == h_inode)
+					continue;
+				err = -EIO;
+				break;
+			}
+		}
+		if (bindex < iinfo->ii_btop)
+			iinfo->ii_btop = bindex;
+		if (iinfo->ii_bbot < bindex)
+			iinfo->ii_bbot = bindex;
+		au_set_h_iptr(inode, bindex, au_igrab(h_inode), flags);
+		update = 1;
+	}
+	au_update_ibrange(inode, /*do_put_zero*/0);
+	e = au_dy_irefresh(inode);
+	if (unlikely(e && !err))
+		err = e;
+	if (!err)
+		au_refresh_hinode_attr(inode, update && isdir);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int set_inode(struct inode *inode, struct dentry *dentry)
+{
+	int err;
+	unsigned int flags;
+	umode_t mode;
+	aufs_bindex_t bindex, btop, btail;
+	unsigned char isdir;
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+	struct au_iinfo *iinfo;
+	const struct inode_operations *iop;
+
+	IiMustWriteLock(inode);
+
+	err = 0;
+	isdir = 0;
+	iop = au_sbi(inode->i_sb)->si_iop_array;
+	btop = au_dbtop(dentry);
+	h_dentry = au_h_dptr(dentry, btop);
+	h_inode = d_inode(h_dentry);
+	mode = h_inode->i_mode;
+	switch (mode & S_IFMT) {
+	case S_IFREG:
+		btail = au_dbtail(dentry);
+		inode->i_op = iop + AuIop_OTHER;
+		inode->i_fop = &aufs_file_fop;
+		err = au_dy_iaop(inode, btop, h_inode);
+		if (unlikely(err))
+			goto out;
+		break;
+	case S_IFDIR:
+		isdir = 1;
+		btail = au_dbtaildir(dentry);
+		inode->i_op = iop + AuIop_DIR;
+		inode->i_fop = &aufs_dir_fop;
+		break;
+	case S_IFLNK:
+		btail = au_dbtail(dentry);
+		inode->i_op = iop + AuIop_SYMLINK;
+		break;
+	case S_IFBLK:
+	case S_IFCHR:
+	case S_IFIFO:
+	case S_IFSOCK:
+		btail = au_dbtail(dentry);
+		inode->i_op = iop + AuIop_OTHER;
+		init_special_inode(inode, mode, h_inode->i_rdev);
+		break;
+	default:
+		AuIOErr("Unknown file type 0%o\n", mode);
+		err = -EIO;
+		goto out;
+	}
+
+	/* do not set hnotify for whiteouted dirs (SHWH mode) */
+	flags = au_hi_flags(inode, isdir);
+	if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)
+	    && au_ftest_hi(flags, HNOTIFY)
+	    && dentry->d_name.len > AUFS_WH_PFX_LEN
+	    && !memcmp(dentry->d_name.name, AUFS_WH_PFX, AUFS_WH_PFX_LEN))
+		au_fclr_hi(flags, HNOTIFY);
+	iinfo = au_ii(inode);
+	iinfo->ii_btop = btop;
+	iinfo->ii_bbot = btail;
+	for (bindex = btop; bindex <= btail; bindex++) {
+		h_dentry = au_h_dptr(dentry, bindex);
+		if (h_dentry)
+			au_set_h_iptr(inode, bindex,
+				      au_igrab(d_inode(h_dentry)), flags);
+	}
+	au_cpup_attr_all(inode, /*force*/1);
+	/*
+	 * to force calling aufs_get_acl() every time,
+	 * do not call cache_no_acl() for aufs inode.
+	 */
+
+out:
+	return err;
+}
+
+/*
+ * successful returns with iinfo write_locked
+ * minus: errno
+ * zero: success, matched
+ * plus: no error, but unmatched
+ */
+static int reval_inode(struct inode *inode, struct dentry *dentry)
+{
+	int err;
+	unsigned int gen, igflags;
+	aufs_bindex_t bindex, bbot;
+	struct inode *h_inode, *h_dinode;
+	struct dentry *h_dentry;
+
+	/*
+	 * before this function, if aufs got any iinfo lock, it must be only
+	 * one, the parent dir.
+	 * it can happen by UDBA and the obsoleted inode number.
+	 */
+	err = -EIO;
+	if (unlikely(inode->i_ino == parent_ino(dentry)))
+		goto out;
+
+	err = 1;
+	ii_write_lock_new_child(inode);
+	h_dentry = au_h_dptr(dentry, au_dbtop(dentry));
+	h_dinode = d_inode(h_dentry);
+	bbot = au_ibbot(inode);
+	for (bindex = au_ibtop(inode); bindex <= bbot; bindex++) {
+		h_inode = au_h_iptr(inode, bindex);
+		if (!h_inode || h_inode != h_dinode)
+			continue;
+
+		err = 0;
+		gen = au_iigen(inode, &igflags);
+		if (gen == au_digen(dentry)
+		    && !au_ig_ftest(igflags, HALF_REFRESHED))
+			break;
+
+		/* fully refresh inode using dentry */
+		err = au_refresh_hinode(inode, dentry);
+		if (!err)
+			au_update_iigen(inode, /*half*/0);
+		break;
+	}
+
+	if (unlikely(err))
+		ii_write_unlock(inode);
+out:
+	return err;
+}
+
+int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+	   unsigned int d_type, ino_t *ino)
+{
+	int err, idx;
+	const int isnondir = d_type != DT_DIR;
+
+	/* prevent hardlinked inode number from race condition */
+	if (isnondir) {
+		err = au_xinondir_enter(sb, bindex, h_ino, &idx);
+		if (unlikely(err))
+			goto out;
+	}
+
+	err = au_xino_read(sb, bindex, h_ino, ino);
+	if (unlikely(err))
+		goto out_xinondir;
+
+	if (!*ino) {
+		err = -EIO;
+		*ino = au_xino_new_ino(sb);
+		if (unlikely(!*ino))
+			goto out_xinondir;
+		err = au_xino_write(sb, bindex, h_ino, *ino);
+		if (unlikely(err))
+			goto out_xinondir;
+	}
+
+out_xinondir:
+	if (isnondir && idx >= 0)
+		au_xinondir_leave(sb, bindex, h_ino, idx);
+out:
+	return err;
+}
+
+/* successful returns with iinfo write_locked */
+/* todo: return with unlocked? */
+struct inode *au_new_inode(struct dentry *dentry, int must_new)
+{
+	struct inode *inode, *h_inode;
+	struct dentry *h_dentry;
+	struct super_block *sb;
+	ino_t h_ino, ino;
+	int err, idx, hlinked;
+	aufs_bindex_t btop;
+
+	sb = dentry->d_sb;
+	btop = au_dbtop(dentry);
+	h_dentry = au_h_dptr(dentry, btop);
+	h_inode = d_inode(h_dentry);
+	h_ino = h_inode->i_ino;
+	hlinked = !d_is_dir(h_dentry) && h_inode->i_nlink > 1;
+
+new_ino:
+	/*
+	 * stop 'race'-ing between hardlinks under different
+	 * parents.
+	 */
+	if (hlinked) {
+		err = au_xinondir_enter(sb, btop, h_ino, &idx);
+		inode = ERR_PTR(err);
+		if (unlikely(err))
+			goto out;
+	}
+
+	err = au_xino_read(sb, btop, h_ino, &ino);
+	inode = ERR_PTR(err);
+	if (unlikely(err))
+		goto out_xinondir;
+
+	if (!ino) {
+		ino = au_xino_new_ino(sb);
+		if (unlikely(!ino)) {
+			inode = ERR_PTR(-EIO);
+			goto out_xinondir;
+		}
+	}
+
+	AuDbg("i%lu\n", (unsigned long)ino);
+	inode = au_iget_locked(sb, ino);
+	err = PTR_ERR(inode);
+	if (IS_ERR(inode))
+		goto out_xinondir;
+
+	AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
+	if (inode->i_state & I_NEW) {
+		ii_write_lock_new_child(inode);
+		err = set_inode(inode, dentry);
+		if (!err) {
+			unlock_new_inode(inode);
+			goto out_xinondir; /* success */
+		}
+
+		/*
+		 * iget_failed() calls iput(), but we need to call
+		 * ii_write_unlock() after iget_failed(). so dirty hack for
+		 * i_count.
+		 */
+		atomic_inc(&inode->i_count);
+		iget_failed(inode);
+		ii_write_unlock(inode);
+		au_xino_write(sb, btop, h_ino, /*ino*/0);
+		/* ignore this error */
+		goto out_iput;
+	} else if (!must_new && !IS_DEADDIR(inode) && inode->i_nlink) {
+		/*
+		 * horrible race condition between lookup, readdir and copyup
+		 * (or something).
+		 */
+		if (hlinked && idx >= 0)
+			au_xinondir_leave(sb, btop, h_ino, idx);
+		err = reval_inode(inode, dentry);
+		if (unlikely(err < 0)) {
+			hlinked = 0;
+			goto out_iput;
+		}
+		if (!err)
+			goto out; /* success */
+		else if (hlinked && idx >= 0) {
+			err = au_xinondir_enter(sb, btop, h_ino, &idx);
+			if (unlikely(err)) {
+				iput(inode);
+				inode = ERR_PTR(err);
+				goto out;
+			}
+		}
+	}
+
+	if (unlikely(au_test_fs_unique_ino(h_inode)))
+		AuWarn1("Warning: Un-notified UDBA or repeatedly renamed dir,"
+			" b%d, %s, %pd, hi%lu, i%lu.\n",
+			btop, au_sbtype(h_dentry->d_sb), dentry,
+			(unsigned long)h_ino, (unsigned long)ino);
+	ino = 0;
+	err = au_xino_write(sb, btop, h_ino, /*ino*/0);
+	if (!err) {
+		iput(inode);
+		if (hlinked && idx >= 0)
+			au_xinondir_leave(sb, btop, h_ino, idx);
+		goto new_ino;
+	}
+
+out_iput:
+	iput(inode);
+	inode = ERR_PTR(err);
+out_xinondir:
+	if (hlinked && idx >= 0)
+		au_xinondir_leave(sb, btop, h_ino, idx);
+out:
+	return inode;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
+	       struct inode *inode)
+{
+	int err;
+	struct inode *hi;
+
+	err = au_br_rdonly(au_sbr(sb, bindex));
+
+	/* pseudo-link after flushed may happen out of bounds */
+	if (!err
+	    && inode
+	    && au_ibtop(inode) <= bindex
+	    && bindex <= au_ibbot(inode)) {
+		/*
+		 * permission check is unnecessary since vfsub routine
+		 * will be called later
+		 */
+		hi = au_h_iptr(inode, bindex);
+		if (hi)
+			err = IS_IMMUTABLE(hi) ? -EROFS : 0;
+	}
+
+	return err;
+}
+
+int au_test_h_perm(struct inode *h_inode, int mask)
+{
+	if (uid_eq(current_fsuid(), GLOBAL_ROOT_UID))
+		return 0;
+	return inode_permission(h_inode, mask);
+}
+
+int au_test_h_perm_sio(struct inode *h_inode, int mask)
+{
+	if (au_test_nfs(h_inode->i_sb)
+	    && (mask & MAY_WRITE)
+	    && S_ISDIR(h_inode->i_mode))
+		mask |= MAY_READ; /* force permission check */
+	return au_test_h_perm(h_inode, mask);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/inode.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/inode.h
@@ -0,0 +1,698 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * inode operations
+ */
+
+#ifndef __AUFS_INODE_H__
+#define __AUFS_INODE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fsnotify.h>
+#include "rwsem.h"
+
+struct vfsmount;
+
+struct au_hnotify {
+#ifdef CONFIG_AUFS_HNOTIFY
+#ifdef CONFIG_AUFS_HFSNOTIFY
+	/* never use fsnotify_add_vfsmount_mark() */
+	struct fsnotify_mark		hn_mark;
+#endif
+	struct inode		*hn_aufs_inode;	/* no get/put */
+	struct rcu_head		rcu;
+#endif
+} ____cacheline_aligned_in_smp;
+
+struct au_hinode {
+	struct inode		*hi_inode;
+	aufs_bindex_t		hi_id;
+#ifdef CONFIG_AUFS_HNOTIFY
+	struct au_hnotify	*hi_notify;
+#endif
+
+	/* reference to the copied-up whiteout with get/put */
+	struct dentry		*hi_whdentry;
+};
+
+/* ig_flags */
+#define AuIG_HALF_REFRESHED		1
+#define au_ig_ftest(flags, name)	((flags) & AuIG_##name)
+#define au_ig_fset(flags, name) \
+	do { (flags) |= AuIG_##name; } while (0)
+#define au_ig_fclr(flags, name) \
+	do { (flags) &= ~AuIG_##name; } while (0)
+
+struct au_iigen {
+	spinlock_t	ig_spin;
+	__u32		ig_generation, ig_flags;
+};
+
+struct au_vdir;
+struct au_iinfo {
+	struct au_iigen		ii_generation;
+	struct super_block	*ii_hsb1;	/* no get/put */
+
+	struct au_rwsem		ii_rwsem;
+	aufs_bindex_t		ii_btop, ii_bbot;
+	__u32			ii_higen;
+	struct au_hinode	*ii_hinode;
+	struct au_vdir		*ii_vdir;
+};
+
+struct au_icntnr {
+	struct au_iinfo		iinfo;
+	struct inode		vfs_inode;
+	struct hlist_bl_node	plink;
+	struct rcu_head		rcu;
+} ____cacheline_aligned_in_smp;
+
+/* au_pin flags */
+#define AuPin_DI_LOCKED		1
+#define AuPin_MNT_WRITE		(1 << 1)
+#define au_ftest_pin(flags, name)	((flags) & AuPin_##name)
+#define au_fset_pin(flags, name) \
+	do { (flags) |= AuPin_##name; } while (0)
+#define au_fclr_pin(flags, name) \
+	do { (flags) &= ~AuPin_##name; } while (0)
+
+struct au_pin {
+	/* input */
+	struct dentry *dentry;
+	unsigned int udba;
+	unsigned char lsc_di, lsc_hi, flags;
+	aufs_bindex_t bindex;
+
+	/* output */
+	struct dentry *parent;
+	struct au_hinode *hdir;
+	struct vfsmount *h_mnt;
+
+	/* temporary unlock/relock for copyup */
+	struct dentry *h_dentry, *h_parent;
+	struct au_branch *br;
+	struct task_struct *task;
+};
+
+void au_pin_hdir_unlock(struct au_pin *p);
+int au_pin_hdir_lock(struct au_pin *p);
+int au_pin_hdir_relock(struct au_pin *p);
+void au_pin_hdir_acquire_nest(struct au_pin *p);
+void au_pin_hdir_release(struct au_pin *p);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_iinfo *au_ii(struct inode *inode)
+{
+	BUG_ON(is_bad_inode(inode));
+	return &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* inode.c */
+struct inode *au_igrab(struct inode *inode);
+void au_refresh_iop(struct inode *inode, int force_getattr);
+int au_refresh_hinode_self(struct inode *inode);
+int au_refresh_hinode(struct inode *inode, struct dentry *dentry);
+int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+	   unsigned int d_type, ino_t *ino);
+struct inode *au_new_inode(struct dentry *dentry, int must_new);
+int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
+	       struct inode *inode);
+int au_test_h_perm(struct inode *h_inode, int mask);
+int au_test_h_perm_sio(struct inode *h_inode, int mask);
+
+static inline int au_wh_ino(struct super_block *sb, aufs_bindex_t bindex,
+			    ino_t h_ino, unsigned int d_type, ino_t *ino)
+{
+#ifdef CONFIG_AUFS_SHWH
+	return au_ino(sb, bindex, h_ino, d_type, ino);
+#else
+	return 0;
+#endif
+}
+
+/* i_op.c */
+enum {
+	AuIop_SYMLINK,
+	AuIop_DIR,
+	AuIop_OTHER,
+	AuIop_Last
+};
+extern struct inode_operations aufs_iop[AuIop_Last], /* not const */
+	aufs_iop_nogetattr[AuIop_Last];
+
+/* au_wr_dir flags */
+#define AuWrDir_ADD_ENTRY	1
+#define AuWrDir_ISDIR		(1 << 1)
+#define AuWrDir_TMPFILE		(1 << 2)
+#define au_ftest_wrdir(flags, name)	((flags) & AuWrDir_##name)
+#define au_fset_wrdir(flags, name) \
+	do { (flags) |= AuWrDir_##name; } while (0)
+#define au_fclr_wrdir(flags, name) \
+	do { (flags) &= ~AuWrDir_##name; } while (0)
+
+struct au_wr_dir_args {
+	aufs_bindex_t force_btgt;
+	unsigned char flags;
+};
+int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry,
+	      struct au_wr_dir_args *args);
+
+struct dentry *au_pinned_h_parent(struct au_pin *pin);
+void au_pin_init(struct au_pin *pin, struct dentry *dentry,
+		 aufs_bindex_t bindex, int lsc_di, int lsc_hi,
+		 unsigned int udba, unsigned char flags);
+int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex,
+	   unsigned int udba, unsigned char flags) __must_check;
+int au_do_pin(struct au_pin *pin) __must_check;
+void au_unpin(struct au_pin *pin);
+int au_reval_for_attr(struct dentry *dentry, unsigned int sigen);
+
+#define AuIcpup_DID_CPUP	1
+#define au_ftest_icpup(flags, name)	((flags) & AuIcpup_##name)
+#define au_fset_icpup(flags, name) \
+	do { (flags) |= AuIcpup_##name; } while (0)
+#define au_fclr_icpup(flags, name) \
+	do { (flags) &= ~AuIcpup_##name; } while (0)
+
+struct au_icpup_args {
+	unsigned char flags;
+	unsigned char pin_flags;
+	aufs_bindex_t btgt;
+	unsigned int udba;
+	struct au_pin pin;
+	struct path h_path;
+	struct inode *h_inode;
+};
+
+int au_pin_and_icpup(struct dentry *dentry, struct iattr *ia,
+		     struct au_icpup_args *a);
+
+int au_h_path_getattr(struct dentry *dentry, int force, struct path *h_path,
+		      int locked);
+
+/* i_op_add.c */
+int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
+	       struct dentry *h_parent, int isdir);
+int aufs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
+	       dev_t dev);
+int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname);
+int aufs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
+		bool want_excl);
+struct vfsub_aopen_args;
+int au_aopen_or_create(struct inode *dir, struct dentry *dentry,
+		       struct vfsub_aopen_args *args);
+int aufs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode);
+int aufs_link(struct dentry *src_dentry, struct inode *dir,
+	      struct dentry *dentry);
+int aufs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode);
+
+/* i_op_del.c */
+int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup);
+int au_may_del(struct dentry *dentry, aufs_bindex_t bindex,
+	       struct dentry *h_parent, int isdir);
+int aufs_unlink(struct inode *dir, struct dentry *dentry);
+int aufs_rmdir(struct inode *dir, struct dentry *dentry);
+
+/* i_op_ren.c */
+int au_wbr(struct dentry *dentry, aufs_bindex_t btgt);
+int aufs_rename(struct inode *src_dir, struct dentry *src_dentry,
+		struct inode *dir, struct dentry *dentry,
+		unsigned int flags);
+
+/* iinfo.c */
+struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex);
+void au_hiput(struct au_hinode *hinode);
+void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex,
+		  struct dentry *h_wh);
+unsigned int au_hi_flags(struct inode *inode, int isdir);
+
+/* hinode flags */
+#define AuHi_XINO	1
+#define AuHi_HNOTIFY	(1 << 1)
+#define au_ftest_hi(flags, name)	((flags) & AuHi_##name)
+#define au_fset_hi(flags, name) \
+	do { (flags) |= AuHi_##name; } while (0)
+#define au_fclr_hi(flags, name) \
+	do { (flags) &= ~AuHi_##name; } while (0)
+
+#ifndef CONFIG_AUFS_HNOTIFY
+#undef AuHi_HNOTIFY
+#define AuHi_HNOTIFY	0
+#endif
+
+void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
+		   struct inode *h_inode, unsigned int flags);
+
+void au_update_iigen(struct inode *inode, int half);
+void au_update_ibrange(struct inode *inode, int do_put_zero);
+
+void au_icntnr_init_once(void *_c);
+void au_hinode_init(struct au_hinode *hinode);
+int au_iinfo_init(struct inode *inode);
+void au_iinfo_fin(struct inode *inode);
+int au_hinode_realloc(struct au_iinfo *iinfo, int nbr, int may_shrink);
+
+#ifdef CONFIG_PROC_FS
+/* plink.c */
+int au_plink_maint(struct super_block *sb, int flags);
+struct au_sbinfo;
+void au_plink_maint_leave(struct au_sbinfo *sbinfo);
+int au_plink_maint_enter(struct super_block *sb);
+#ifdef CONFIG_AUFS_DEBUG
+void au_plink_list(struct super_block *sb);
+#else
+AuStubVoid(au_plink_list, struct super_block *sb)
+#endif
+int au_plink_test(struct inode *inode);
+struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex);
+void au_plink_append(struct inode *inode, aufs_bindex_t bindex,
+		     struct dentry *h_dentry);
+void au_plink_put(struct super_block *sb, int verbose);
+void au_plink_clean(struct super_block *sb, int verbose);
+void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id);
+#else
+AuStubInt0(au_plink_maint, struct super_block *sb, int flags);
+AuStubVoid(au_plink_maint_leave, struct au_sbinfo *sbinfo);
+AuStubInt0(au_plink_maint_enter, struct super_block *sb);
+AuStubVoid(au_plink_list, struct super_block *sb);
+AuStubInt0(au_plink_test, struct inode *inode);
+AuStub(struct dentry *, au_plink_lkup, return NULL,
+       struct inode *inode, aufs_bindex_t bindex);
+AuStubVoid(au_plink_append, struct inode *inode, aufs_bindex_t bindex,
+	   struct dentry *h_dentry);
+AuStubVoid(au_plink_put, struct super_block *sb, int verbose);
+AuStubVoid(au_plink_clean, struct super_block *sb, int verbose);
+AuStubVoid(au_plink_half_refresh, struct super_block *sb, aufs_bindex_t br_id);
+#endif /* CONFIG_PROC_FS */
+
+#ifdef CONFIG_AUFS_XATTR
+/* xattr.c */
+int au_cpup_xattr(struct dentry *h_dst, struct dentry *h_src, int ignore_flags,
+		  unsigned int verbose);
+ssize_t aufs_listxattr(struct dentry *dentry, char *list, size_t size);
+void au_xattr_init(struct super_block *sb);
+#else
+AuStubInt0(au_cpup_xattr, struct dentry *h_dst, struct dentry *h_src,
+	   int ignore_flags, unsigned int verbose);
+AuStubVoid(au_xattr_init, struct super_block *sb);
+#endif
+
+#ifdef CONFIG_FS_POSIX_ACL
+struct posix_acl *aufs_get_acl(struct inode *inode, int type);
+int aufs_set_acl(struct inode *inode, struct posix_acl *acl, int type);
+#endif
+
+#if IS_ENABLED(CONFIG_AUFS_XATTR) || IS_ENABLED(CONFIG_FS_POSIX_ACL)
+enum {
+	AU_XATTR_SET,
+	AU_ACL_SET
+};
+
+struct au_sxattr {
+	int type;
+	union {
+		struct {
+			const char	*name;
+			const void	*value;
+			size_t		size;
+			int		flags;
+		} set;
+		struct {
+			struct posix_acl *acl;
+			int		type;
+		} acl_set;
+	} u;
+};
+ssize_t au_sxattr(struct dentry *dentry, struct inode *inode,
+		  struct au_sxattr *arg);
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+/* lock subclass for iinfo */
+enum {
+	AuLsc_II_CHILD,		/* child first */
+	AuLsc_II_CHILD2,	/* rename(2), link(2), and cpup at hnotify */
+	AuLsc_II_CHILD3,	/* copyup dirs */
+	AuLsc_II_PARENT,	/* see AuLsc_I_PARENT in vfsub.h */
+	AuLsc_II_PARENT2,
+	AuLsc_II_PARENT3,	/* copyup dirs */
+	AuLsc_II_NEW_CHILD
+};
+
+/*
+ * ii_read_lock_child, ii_write_lock_child,
+ * ii_read_lock_child2, ii_write_lock_child2,
+ * ii_read_lock_child3, ii_write_lock_child3,
+ * ii_read_lock_parent, ii_write_lock_parent,
+ * ii_read_lock_parent2, ii_write_lock_parent2,
+ * ii_read_lock_parent3, ii_write_lock_parent3,
+ * ii_read_lock_new_child, ii_write_lock_new_child,
+ */
+#define AuReadLockFunc(name, lsc) \
+static inline void ii_read_lock_##name(struct inode *i) \
+{ \
+	au_rw_read_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \
+}
+
+#define AuWriteLockFunc(name, lsc) \
+static inline void ii_write_lock_##name(struct inode *i) \
+{ \
+	au_rw_write_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \
+}
+
+#define AuRWLockFuncs(name, lsc) \
+	AuReadLockFunc(name, lsc) \
+	AuWriteLockFunc(name, lsc)
+
+AuRWLockFuncs(child, CHILD);
+AuRWLockFuncs(child2, CHILD2);
+AuRWLockFuncs(child3, CHILD3);
+AuRWLockFuncs(parent, PARENT);
+AuRWLockFuncs(parent2, PARENT2);
+AuRWLockFuncs(parent3, PARENT3);
+AuRWLockFuncs(new_child, NEW_CHILD);
+
+#undef AuReadLockFunc
+#undef AuWriteLockFunc
+#undef AuRWLockFuncs
+
+#define ii_read_unlock(i)	au_rw_read_unlock(&au_ii(i)->ii_rwsem)
+#define ii_write_unlock(i)	au_rw_write_unlock(&au_ii(i)->ii_rwsem)
+#define ii_downgrade_lock(i)	au_rw_dgrade_lock(&au_ii(i)->ii_rwsem)
+
+#define IiMustNoWaiters(i)	AuRwMustNoWaiters(&au_ii(i)->ii_rwsem)
+#define IiMustAnyLock(i)	AuRwMustAnyLock(&au_ii(i)->ii_rwsem)
+#define IiMustWriteLock(i)	AuRwMustWriteLock(&au_ii(i)->ii_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+static inline void au_icntnr_init(struct au_icntnr *c)
+{
+#ifdef CONFIG_AUFS_DEBUG
+	c->vfs_inode.i_mode = 0;
+#endif
+}
+
+static inline unsigned int au_iigen(struct inode *inode, unsigned int *igflags)
+{
+	unsigned int gen;
+	struct au_iinfo *iinfo;
+	struct au_iigen *iigen;
+
+	iinfo = au_ii(inode);
+	iigen = &iinfo->ii_generation;
+	spin_lock(&iigen->ig_spin);
+	if (igflags)
+		*igflags = iigen->ig_flags;
+	gen = iigen->ig_generation;
+	spin_unlock(&iigen->ig_spin);
+
+	return gen;
+}
+
+/* tiny test for inode number */
+/* tmpfs generation is too rough */
+static inline int au_test_higen(struct inode *inode, struct inode *h_inode)
+{
+	struct au_iinfo *iinfo;
+
+	iinfo = au_ii(inode);
+	AuRwMustAnyLock(&iinfo->ii_rwsem);
+	return !(iinfo->ii_hsb1 == h_inode->i_sb
+		 && iinfo->ii_higen == h_inode->i_generation);
+}
+
+static inline void au_iigen_dec(struct inode *inode)
+{
+	struct au_iinfo *iinfo;
+	struct au_iigen *iigen;
+
+	iinfo = au_ii(inode);
+	iigen = &iinfo->ii_generation;
+	spin_lock(&iigen->ig_spin);
+	iigen->ig_generation--;
+	spin_unlock(&iigen->ig_spin);
+}
+
+static inline int au_iigen_test(struct inode *inode, unsigned int sigen)
+{
+	int err;
+
+	err = 0;
+	if (unlikely(inode && au_iigen(inode, NULL) != sigen))
+		err = -EIO;
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_hinode *au_hinode(struct au_iinfo *iinfo,
+					  aufs_bindex_t bindex)
+{
+	return iinfo->ii_hinode + bindex;
+}
+
+static inline int au_is_bad_inode(struct inode *inode)
+{
+	return !!(is_bad_inode(inode) || !au_hinode(au_ii(inode), 0));
+}
+
+static inline aufs_bindex_t au_ii_br_id(struct inode *inode,
+					aufs_bindex_t bindex)
+{
+	IiMustAnyLock(inode);
+	return au_hinode(au_ii(inode), bindex)->hi_id;
+}
+
+static inline aufs_bindex_t au_ibtop(struct inode *inode)
+{
+	IiMustAnyLock(inode);
+	return au_ii(inode)->ii_btop;
+}
+
+static inline aufs_bindex_t au_ibbot(struct inode *inode)
+{
+	IiMustAnyLock(inode);
+	return au_ii(inode)->ii_bbot;
+}
+
+static inline struct au_vdir *au_ivdir(struct inode *inode)
+{
+	IiMustAnyLock(inode);
+	return au_ii(inode)->ii_vdir;
+}
+
+static inline struct dentry *au_hi_wh(struct inode *inode, aufs_bindex_t bindex)
+{
+	IiMustAnyLock(inode);
+	return au_hinode(au_ii(inode), bindex)->hi_whdentry;
+}
+
+static inline void au_set_ibtop(struct inode *inode, aufs_bindex_t bindex)
+{
+	IiMustWriteLock(inode);
+	au_ii(inode)->ii_btop = bindex;
+}
+
+static inline void au_set_ibbot(struct inode *inode, aufs_bindex_t bindex)
+{
+	IiMustWriteLock(inode);
+	au_ii(inode)->ii_bbot = bindex;
+}
+
+static inline void au_set_ivdir(struct inode *inode, struct au_vdir *vdir)
+{
+	IiMustWriteLock(inode);
+	au_ii(inode)->ii_vdir = vdir;
+}
+
+static inline struct au_hinode *au_hi(struct inode *inode, aufs_bindex_t bindex)
+{
+	IiMustAnyLock(inode);
+	return au_hinode(au_ii(inode), bindex);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct dentry *au_pinned_parent(struct au_pin *pin)
+{
+	if (pin)
+		return pin->parent;
+	return NULL;
+}
+
+static inline struct inode *au_pinned_h_dir(struct au_pin *pin)
+{
+	if (pin && pin->hdir)
+		return pin->hdir->hi_inode;
+	return NULL;
+}
+
+static inline struct au_hinode *au_pinned_hdir(struct au_pin *pin)
+{
+	if (pin)
+		return pin->hdir;
+	return NULL;
+}
+
+static inline void au_pin_set_dentry(struct au_pin *pin, struct dentry *dentry)
+{
+	if (pin)
+		pin->dentry = dentry;
+}
+
+static inline void au_pin_set_parent_lflag(struct au_pin *pin,
+					   unsigned char lflag)
+{
+	if (pin) {
+		if (lflag)
+			au_fset_pin(pin->flags, DI_LOCKED);
+		else
+			au_fclr_pin(pin->flags, DI_LOCKED);
+	}
+}
+
+#if 0 /* reserved */
+static inline void au_pin_set_parent(struct au_pin *pin, struct dentry *parent)
+{
+	if (pin) {
+		dput(pin->parent);
+		pin->parent = dget(parent);
+	}
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+struct au_branch;
+#ifdef CONFIG_AUFS_HNOTIFY
+struct au_hnotify_op {
+	void (*ctl)(struct au_hinode *hinode, int do_set);
+	int (*alloc)(struct au_hinode *hinode);
+
+	/*
+	 * if it returns true, the the caller should free hinode->hi_notify,
+	 * otherwise ->free() frees it.
+	 */
+	int (*free)(struct au_hinode *hinode,
+		    struct au_hnotify *hn) __must_check;
+
+	void (*fin)(void);
+	int (*init)(void);
+
+	int (*reset_br)(unsigned int udba, struct au_branch *br, int perm);
+	void (*fin_br)(struct au_branch *br);
+	int (*init_br)(struct au_branch *br, int perm);
+};
+
+/* hnotify.c */
+int au_hn_alloc(struct au_hinode *hinode, struct inode *inode);
+void au_hn_free(struct au_hinode *hinode);
+void au_hn_ctl(struct au_hinode *hinode, int do_set);
+void au_hn_reset(struct inode *inode, unsigned int flags);
+int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask,
+	       const struct qstr *h_child_qstr, struct inode *h_child_inode);
+int au_hnotify_reset_br(unsigned int udba, struct au_branch *br, int perm);
+int au_hnotify_init_br(struct au_branch *br, int perm);
+void au_hnotify_fin_br(struct au_branch *br);
+int __init au_hnotify_init(void);
+void au_hnotify_fin(void);
+
+/* hfsnotify.c */
+extern const struct au_hnotify_op au_hnotify_op;
+
+static inline
+void au_hn_init(struct au_hinode *hinode)
+{
+	hinode->hi_notify = NULL;
+}
+
+static inline struct au_hnotify *au_hn(struct au_hinode *hinode)
+{
+	return hinode->hi_notify;
+}
+
+#else
+AuStub(int, au_hn_alloc, return -EOPNOTSUPP,
+       struct au_hinode *hinode __maybe_unused,
+       struct inode *inode __maybe_unused)
+AuStub(struct au_hnotify *, au_hn, return NULL, struct au_hinode *hinode)
+AuStubVoid(au_hn_free, struct au_hinode *hinode __maybe_unused)
+AuStubVoid(au_hn_ctl, struct au_hinode *hinode __maybe_unused,
+	   int do_set __maybe_unused)
+AuStubVoid(au_hn_reset, struct inode *inode __maybe_unused,
+	   unsigned int flags __maybe_unused)
+AuStubInt0(au_hnotify_reset_br, unsigned int udba __maybe_unused,
+	   struct au_branch *br __maybe_unused,
+	   int perm __maybe_unused)
+AuStubInt0(au_hnotify_init_br, struct au_branch *br __maybe_unused,
+	   int perm __maybe_unused)
+AuStubVoid(au_hnotify_fin_br, struct au_branch *br __maybe_unused)
+AuStubInt0(__init au_hnotify_init, void)
+AuStubVoid(au_hnotify_fin, void)
+AuStubVoid(au_hn_init, struct au_hinode *hinode __maybe_unused)
+#endif /* CONFIG_AUFS_HNOTIFY */
+
+static inline void au_hn_suspend(struct au_hinode *hdir)
+{
+	au_hn_ctl(hdir, /*do_set*/0);
+}
+
+static inline void au_hn_resume(struct au_hinode *hdir)
+{
+	au_hn_ctl(hdir, /*do_set*/1);
+}
+
+static inline void au_hn_inode_lock(struct au_hinode *hdir)
+{
+	inode_lock(hdir->hi_inode);
+	au_hn_suspend(hdir);
+}
+
+static inline void au_hn_inode_lock_nested(struct au_hinode *hdir,
+					  unsigned int sc __maybe_unused)
+{
+	inode_lock_nested(hdir->hi_inode, sc);
+	au_hn_suspend(hdir);
+}
+
+#if 0 /* unused */
+#include "vfsub.h"
+static inline void au_hn_inode_lock_shared_nested(struct au_hinode *hdir,
+						  unsigned int sc)
+{
+	inode_lock_shared_nested(hdir->hi_inode, sc);
+	au_hn_suspend(hdir);
+}
+#endif
+
+static inline void au_hn_inode_unlock(struct au_hinode *hdir)
+{
+	au_hn_resume(hdir);
+	inode_unlock(hdir->hi_inode);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_INODE_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/ioctl.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/ioctl.c
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * ioctl
+ * plink-management and readdir in userspace.
+ * assist the pathconf(3) wrapper library.
+ * move-down
+ * File-based Hierarchical Storage Management.
+ */
+
+#include <linux/compat.h>
+#include <linux/file.h>
+#include "aufs.h"
+
+static int au_wbr_fd(struct path *path, struct aufs_wbr_fd __user *arg)
+{
+	int err, fd;
+	aufs_bindex_t wbi, bindex, bbot;
+	struct file *h_file;
+	struct super_block *sb;
+	struct dentry *root;
+	struct au_branch *br;
+	struct aufs_wbr_fd wbrfd = {
+		.oflags	= au_dir_roflags,
+		.brid	= -1
+	};
+	const int valid = O_RDONLY | O_NONBLOCK | O_LARGEFILE | O_DIRECTORY
+		| O_NOATIME | O_CLOEXEC;
+
+	AuDebugOn(wbrfd.oflags & ~valid);
+
+	if (arg) {
+		err = copy_from_user(&wbrfd, arg, sizeof(wbrfd));
+		if (unlikely(err)) {
+			err = -EFAULT;
+			goto out;
+		}
+
+		err = -EINVAL;
+		AuDbg("wbrfd{0%o, %d}\n", wbrfd.oflags, wbrfd.brid);
+		wbrfd.oflags |= au_dir_roflags;
+		AuDbg("0%o\n", wbrfd.oflags);
+		if (unlikely(wbrfd.oflags & ~valid))
+			goto out;
+	}
+
+	fd = get_unused_fd_flags(0);
+	err = fd;
+	if (unlikely(fd < 0))
+		goto out;
+
+	h_file = ERR_PTR(-EINVAL);
+	wbi = 0;
+	br = NULL;
+	sb = path->dentry->d_sb;
+	root = sb->s_root;
+	aufs_read_lock(root, AuLock_IR);
+	bbot = au_sbbot(sb);
+	if (wbrfd.brid >= 0) {
+		wbi = au_br_index(sb, wbrfd.brid);
+		if (unlikely(wbi < 0 || wbi > bbot))
+			goto out_unlock;
+	}
+
+	h_file = ERR_PTR(-ENOENT);
+	br = au_sbr(sb, wbi);
+	if (!au_br_writable(br->br_perm)) {
+		if (arg)
+			goto out_unlock;
+
+		bindex = wbi + 1;
+		wbi = -1;
+		for (; bindex <= bbot; bindex++) {
+			br = au_sbr(sb, bindex);
+			if (au_br_writable(br->br_perm)) {
+				wbi = bindex;
+				br = au_sbr(sb, wbi);
+				break;
+			}
+		}
+	}
+	AuDbg("wbi %d\n", wbi);
+	if (wbi >= 0)
+		h_file = au_h_open(root, wbi, wbrfd.oflags, NULL,
+				   /*force_wr*/0);
+
+out_unlock:
+	aufs_read_unlock(root, AuLock_IR);
+	err = PTR_ERR(h_file);
+	if (IS_ERR(h_file))
+		goto out_fd;
+
+	au_lcnt_dec(&br->br_nfiles); /* cf. au_h_open() */
+	fd_install(fd, h_file);
+	err = fd;
+	goto out; /* success */
+
+out_fd:
+	put_unused_fd(fd);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	long err;
+	struct dentry *dentry;
+
+	switch (cmd) {
+	case AUFS_CTL_RDU:
+	case AUFS_CTL_RDU_INO:
+		err = au_rdu_ioctl(file, cmd, arg);
+		break;
+
+	case AUFS_CTL_WBR_FD:
+		err = au_wbr_fd(&file->f_path, (void __user *)arg);
+		break;
+
+	case AUFS_CTL_IBUSY:
+		err = au_ibusy_ioctl(file, arg);
+		break;
+
+	case AUFS_CTL_BRINFO:
+		err = au_brinfo_ioctl(file, arg);
+		break;
+
+	case AUFS_CTL_FHSM_FD:
+		dentry = file->f_path.dentry;
+		if (IS_ROOT(dentry))
+			err = au_fhsm_fd(dentry->d_sb, arg);
+		else
+			err = -ENOTTY;
+		break;
+
+	default:
+		/* do not call the lower */
+		AuDbg("0x%x\n", cmd);
+		err = -ENOTTY;
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	long err;
+
+	switch (cmd) {
+	case AUFS_CTL_MVDOWN:
+		err = au_mvdown(file->f_path.dentry, (void __user *)arg);
+		break;
+
+	case AUFS_CTL_WBR_FD:
+		err = au_wbr_fd(&file->f_path, (void __user *)arg);
+		break;
+
+	default:
+		/* do not call the lower */
+		AuDbg("0x%x\n", cmd);
+		err = -ENOTTY;
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+#ifdef CONFIG_COMPAT
+long aufs_compat_ioctl_dir(struct file *file, unsigned int cmd,
+			   unsigned long arg)
+{
+	long err;
+
+	switch (cmd) {
+	case AUFS_CTL_RDU:
+	case AUFS_CTL_RDU_INO:
+		err = au_rdu_compat_ioctl(file, cmd, arg);
+		break;
+
+	case AUFS_CTL_IBUSY:
+		err = au_ibusy_compat_ioctl(file, arg);
+		break;
+
+	case AUFS_CTL_BRINFO:
+		err = au_brinfo_compat_ioctl(file, arg);
+		break;
+
+	default:
+		err = aufs_ioctl_dir(file, cmd, arg);
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+long aufs_compat_ioctl_nondir(struct file *file, unsigned int cmd,
+			      unsigned long arg)
+{
+	return aufs_ioctl_nondir(file, cmd, (unsigned long)compat_ptr(arg));
+}
+#endif
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/lcnt.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/lcnt.h
@@ -0,0 +1,186 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2018-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * simple long counter wrapper
+ */
+
+#ifndef __AUFS_LCNT_H__
+#define __AUFS_LCNT_H__
+
+#ifdef __KERNEL__
+
+#include "debug.h"
+
+#define AuLCntATOMIC	1
+#define AuLCntPCPUCNT	2
+/*
+ * why does percpu_refcount require extra synchronize_rcu()s in
+ * au_br_do_free()
+ */
+#define AuLCntPCPUREF	3
+
+/* #define AuLCntChosen	AuLCntATOMIC */
+#define AuLCntChosen	AuLCntPCPUCNT
+/* #define AuLCntChosen	AuLCntPCPUREF */
+
+#if AuLCntChosen == AuLCntATOMIC
+#include <linux/atomic.h>
+
+typedef atomic_long_t au_lcnt_t;
+
+static inline int au_lcnt_init(au_lcnt_t *cnt, void *release __maybe_unused)
+{
+	atomic_long_set(cnt, 0);
+	return 0;
+}
+
+static inline void au_lcnt_wait_for_fin(au_lcnt_t *cnt __maybe_unused)
+{
+	/* empty */
+}
+
+static inline void au_lcnt_fin(au_lcnt_t *cnt __maybe_unused,
+			       int do_sync __maybe_unused)
+{
+	/* empty */
+}
+
+static inline void au_lcnt_inc(au_lcnt_t *cnt)
+{
+	atomic_long_inc(cnt);
+}
+
+static inline void au_lcnt_dec(au_lcnt_t *cnt)
+{
+	atomic_long_dec(cnt);
+}
+
+static inline long au_lcnt_read(au_lcnt_t *cnt, int do_rev __maybe_unused)
+{
+	return atomic_long_read(cnt);
+}
+#endif
+
+#if AuLCntChosen == AuLCntPCPUCNT
+#include <linux/percpu_counter.h>
+
+typedef struct percpu_counter au_lcnt_t;
+
+static inline int au_lcnt_init(au_lcnt_t *cnt, void *release __maybe_unused)
+{
+	return percpu_counter_init(cnt, 0, GFP_NOFS);
+}
+
+static inline void au_lcnt_wait_for_fin(au_lcnt_t *cnt __maybe_unused)
+{
+	/* empty */
+}
+
+static inline void au_lcnt_fin(au_lcnt_t *cnt, int do_sync __maybe_unused)
+{
+	percpu_counter_destroy(cnt);
+}
+
+static inline void au_lcnt_inc(au_lcnt_t *cnt)
+{
+	percpu_counter_inc(cnt);
+}
+
+static inline void au_lcnt_dec(au_lcnt_t *cnt)
+{
+	percpu_counter_dec(cnt);
+}
+
+static inline long au_lcnt_read(au_lcnt_t *cnt, int do_rev __maybe_unused)
+{
+	s64 n;
+
+	n = percpu_counter_sum(cnt);
+	BUG_ON(n < 0);
+	if (LONG_MAX != LLONG_MAX
+	    && n > LONG_MAX)
+		AuWarn1("%s\n", "wrap-around");
+
+	return n;
+}
+#endif
+
+#if AuLCntChosen == AuLCntPCPUREF
+#include <linux/percpu-refcount.h>
+
+typedef struct percpu_ref au_lcnt_t;
+
+static inline int au_lcnt_init(au_lcnt_t *cnt, percpu_ref_func_t *release)
+{
+	if (!release)
+		release = percpu_ref_exit;
+	return percpu_ref_init(cnt, release, /*percpu mode*/0, GFP_NOFS);
+}
+
+static inline void au_lcnt_wait_for_fin(au_lcnt_t *cnt __maybe_unused)
+{
+	synchronize_rcu();
+}
+
+static inline void au_lcnt_fin(au_lcnt_t *cnt, int do_sync)
+{
+	percpu_ref_kill(cnt);
+	if (do_sync)
+		au_lcnt_wait_for_fin(cnt);
+}
+
+static inline void au_lcnt_inc(au_lcnt_t *cnt)
+{
+	percpu_ref_get(cnt);
+}
+
+static inline void au_lcnt_dec(au_lcnt_t *cnt)
+{
+	percpu_ref_put(cnt);
+}
+
+/*
+ * avoid calling this func as possible.
+ */
+static inline long au_lcnt_read(au_lcnt_t *cnt, int do_rev)
+{
+	long l;
+
+	percpu_ref_switch_to_atomic_sync(cnt);
+	l = atomic_long_read(&cnt->count);
+	if (do_rev)
+		percpu_ref_switch_to_percpu(cnt);
+
+	/* percpu_ref is initialized by 1 instead of 0 */
+	return l - 1;
+}
+#endif
+
+#ifdef CONFIG_AUFS_DEBUG
+#define AuLCntZero(val) do {			\
+	long l = val;				\
+	if (l)					\
+		AuDbg("%s = %ld\n", #val, l);	\
+} while (0)
+#else
+#define AuLCntZero(val)		do {} while (0)
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_LCNT_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/loop.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/loop.c
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * support for loopback block device as a branch
+ */
+
+#include "aufs.h"
+
+/* added into drivers/block/loop.c */
+static struct file *(*backing_file_func)(struct super_block *sb);
+
+/*
+ * test if two lower dentries have overlapping branches.
+ */
+int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding)
+{
+	struct super_block *h_sb;
+	struct file *backing_file;
+
+	if (unlikely(!backing_file_func)) {
+		/* don't load "loop" module here */
+		backing_file_func = symbol_get(loop_backing_file);
+		if (unlikely(!backing_file_func))
+			/* "loop" module is not loaded */
+			return 0;
+	}
+
+	h_sb = h_adding->d_sb;
+	backing_file = backing_file_func(h_sb);
+	if (!backing_file)
+		return 0;
+
+	h_adding = backing_file->f_path.dentry;
+	/*
+	 * h_adding can be local NFS.
+	 * in this case aufs cannot detect the loop.
+	 */
+	if (unlikely(h_adding->d_sb == sb))
+		return 1;
+	return !!au_test_subdir(h_adding, sb->s_root);
+}
+
+/* true if a kernel thread named 'loop[0-9].*' accesses a file */
+int au_test_loopback_kthread(void)
+{
+	int ret;
+	struct task_struct *tsk = current;
+	char c, comm[sizeof(tsk->comm)];
+
+	ret = 0;
+	if (tsk->flags & PF_KTHREAD) {
+		get_task_comm(comm, tsk);
+		c = comm[4];
+		ret = ('0' <= c && c <= '9'
+		       && !strncmp(comm, "loop", 4));
+	}
+
+	return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define au_warn_loopback_step	16
+static int au_warn_loopback_nelem = au_warn_loopback_step;
+static unsigned long *au_warn_loopback_array;
+
+void au_warn_loopback(struct super_block *h_sb)
+{
+	int i, new_nelem;
+	unsigned long *a, magic;
+	static DEFINE_SPINLOCK(spin);
+
+	magic = h_sb->s_magic;
+	spin_lock(&spin);
+	a = au_warn_loopback_array;
+	for (i = 0; i < au_warn_loopback_nelem && *a; i++)
+		if (a[i] == magic) {
+			spin_unlock(&spin);
+			return;
+		}
+
+	/* h_sb is new to us, print it */
+	if (i < au_warn_loopback_nelem) {
+		a[i] = magic;
+		goto pr;
+	}
+
+	/* expand the array */
+	new_nelem = au_warn_loopback_nelem + au_warn_loopback_step;
+	a = au_kzrealloc(au_warn_loopback_array,
+			 au_warn_loopback_nelem * sizeof(unsigned long),
+			 new_nelem * sizeof(unsigned long), GFP_ATOMIC,
+			 /*may_shrink*/0);
+	if (a) {
+		au_warn_loopback_nelem = new_nelem;
+		au_warn_loopback_array = a;
+		a[i] = magic;
+		goto pr;
+	}
+
+	spin_unlock(&spin);
+	AuWarn1("realloc failed, ignored\n");
+	return;
+
+pr:
+	spin_unlock(&spin);
+	pr_warn("you may want to try another patch for loopback file "
+		"on %s(0x%lx) branch\n", au_sbtype(h_sb), magic);
+}
+
+int au_loopback_init(void)
+{
+	int err;
+	struct super_block *sb __maybe_unused;
+
+	BUILD_BUG_ON(sizeof(sb->s_magic) != sizeof(*au_warn_loopback_array));
+
+	err = 0;
+	au_warn_loopback_array = kcalloc(au_warn_loopback_step,
+					 sizeof(unsigned long), GFP_NOFS);
+	if (unlikely(!au_warn_loopback_array))
+		err = -ENOMEM;
+
+	return err;
+}
+
+void au_loopback_fin(void)
+{
+	if (backing_file_func)
+		symbol_put(loop_backing_file);
+	au_kfree_try_rcu(au_warn_loopback_array);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* support the loopback block device insude aufs */
+
+struct file *aufs_real_loop(struct file *file)
+{
+	struct file *f;
+
+	BUG_ON(!au_test_aufs(file->f_path.dentry->d_sb));
+	fi_read_lock(file);
+	f = au_hf_top(file);
+	fi_read_unlock(file);
+	AuDebugOn(!f);
+	return f;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/loop.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/loop.h
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * support for loopback mount as a branch
+ */
+
+#ifndef __AUFS_LOOP_H__
+#define __AUFS_LOOP_H__
+
+#ifdef __KERNEL__
+
+struct dentry;
+struct super_block;
+
+#ifdef CONFIG_AUFS_BDEV_LOOP
+/* drivers/block/loop.c */
+struct file *loop_backing_file(struct super_block *sb);
+
+/* loop.c */
+int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding);
+int au_test_loopback_kthread(void);
+void au_warn_loopback(struct super_block *h_sb);
+
+int au_loopback_init(void);
+void au_loopback_fin(void);
+
+struct file *aufs_real_loop(struct file *file);
+#else
+AuStub(struct file *, loop_backing_file, return NULL, struct super_block *sb)
+
+AuStubInt0(au_test_loopback_overlap, struct super_block *sb,
+	   struct dentry *h_adding)
+AuStubInt0(au_test_loopback_kthread, void)
+AuStubVoid(au_warn_loopback, struct super_block *h_sb)
+
+AuStubInt0(au_loopback_init, void)
+AuStubVoid(au_loopback_fin, void)
+
+AuStub(struct file *, aufs_real_loop, return NULL, struct file *file)
+#endif /* BLK_DEV_LOOP */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_LOOP_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/magic.mk
+++ linux-gkeop-5.4-5.4.0/fs/aufs/magic.mk
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: GPL-2.0
+
+# defined in ${srctree}/fs/fuse/inode.c
+# tristate
+ifdef CONFIG_FUSE_FS
+ccflags-y += -DFUSE_SUPER_MAGIC=0x65735546
+endif
+
+# defined in ${srctree}/fs/xfs/xfs_sb.h
+# tristate
+ifdef CONFIG_XFS_FS
+ccflags-y += -DXFS_SB_MAGIC=0x58465342
+endif
+
+# defined in ${srctree}/fs/configfs/mount.c
+# tristate
+ifdef CONFIG_CONFIGFS_FS
+ccflags-y += -DCONFIGFS_MAGIC=0x62656570
+endif
+
+# defined in ${srctree}/fs/ubifs/ubifs.h
+# tristate
+ifdef CONFIG_UBIFS_FS
+ccflags-y += -DUBIFS_SUPER_MAGIC=0x24051905
+endif
+
+# defined in ${srctree}/fs/hfsplus/hfsplus_raw.h
+# tristate
+ifdef CONFIG_HFSPLUS_FS
+ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b
+endif
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/module.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/module.c
@@ -0,0 +1,273 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * module global variables and operations
+ */
+
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include "aufs.h"
+
+/* shrinkable realloc */
+void *au_krealloc(void *p, unsigned int new_sz, gfp_t gfp, int may_shrink)
+{
+	size_t sz;
+	int diff;
+
+	sz = 0;
+	diff = -1;
+	if (p) {
+#if 0 /* unused */
+		if (!new_sz) {
+			au_kfree_rcu(p);
+			p = NULL;
+			goto out;
+		}
+#else
+		AuDebugOn(!new_sz);
+#endif
+		sz = ksize(p);
+		diff = au_kmidx_sub(sz, new_sz);
+	}
+	if (sz && !diff)
+		goto out;
+
+	if (sz < new_sz)
+		/* expand or SLOB */
+		p = krealloc(p, new_sz, gfp);
+	else if (new_sz < sz && may_shrink) {
+		/* shrink */
+		void *q;
+
+		q = kmalloc(new_sz, gfp);
+		if (q) {
+			if (p) {
+				memcpy(q, p, new_sz);
+				au_kfree_try_rcu(p);
+			}
+			p = q;
+		} else
+			p = NULL;
+	}
+
+out:
+	return p;
+}
+
+void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp,
+		   int may_shrink)
+{
+	p = au_krealloc(p, new_sz, gfp, may_shrink);
+	if (p && new_sz > nused)
+		memset(p + nused, 0, new_sz - nused);
+	return p;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * aufs caches
+ */
+struct kmem_cache *au_cache[AuCache_Last];
+
+static void au_cache_fin(void)
+{
+	int i;
+
+	/*
+	 * Make sure all delayed rcu free inodes are flushed before we
+	 * destroy cache.
+	 */
+	rcu_barrier();
+
+	/* excluding AuCache_HNOTIFY */
+	BUILD_BUG_ON(AuCache_HNOTIFY + 1 != AuCache_Last);
+	for (i = 0; i < AuCache_HNOTIFY; i++) {
+		kmem_cache_destroy(au_cache[i]);
+		au_cache[i] = NULL;
+	}
+}
+
+static int __init au_cache_init(void)
+{
+	au_cache[AuCache_DINFO] = AuCacheCtor(au_dinfo, au_di_init_once);
+	if (au_cache[AuCache_DINFO])
+		/* SLAB_DESTROY_BY_RCU */
+		au_cache[AuCache_ICNTNR] = AuCacheCtor(au_icntnr,
+						       au_icntnr_init_once);
+	if (au_cache[AuCache_ICNTNR])
+		au_cache[AuCache_FINFO] = AuCacheCtor(au_finfo,
+						      au_fi_init_once);
+	if (au_cache[AuCache_FINFO])
+		au_cache[AuCache_VDIR] = AuCache(au_vdir);
+	if (au_cache[AuCache_VDIR])
+		au_cache[AuCache_DEHSTR] = AuCache(au_vdir_dehstr);
+	if (au_cache[AuCache_DEHSTR])
+		return 0;
+
+	au_cache_fin();
+	return -ENOMEM;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_dir_roflags;
+
+#ifdef CONFIG_AUFS_SBILIST
+/*
+ * iterate_supers_type() doesn't protect us from
+ * remounting (branch management)
+ */
+struct hlist_bl_head au_sbilist;
+#endif
+
+/*
+ * functions for module interface.
+ */
+MODULE_LICENSE("GPL");
+/* MODULE_LICENSE("GPL v2"); */
+MODULE_AUTHOR("Junjiro R. Okajima <aufs-users@lists.sourceforge.net>");
+MODULE_DESCRIPTION(AUFS_NAME
+	" -- Advanced multi layered unification filesystem");
+MODULE_VERSION(AUFS_VERSION);
+MODULE_ALIAS_FS(AUFS_NAME);
+
+/* this module parameter has no meaning when SYSFS is disabled */
+int sysaufs_brs = 1;
+MODULE_PARM_DESC(brs, "use <sysfs>/fs/aufs/si_*/brN");
+module_param_named(brs, sysaufs_brs, int, 0444);
+
+/* this module parameter has no meaning when USER_NS is disabled */
+bool au_userns;
+MODULE_PARM_DESC(allow_userns, "allow unprivileged to mount under userns");
+module_param_named(allow_userns, au_userns, bool, 0444);
+
+/* ---------------------------------------------------------------------- */
+
+static char au_esc_chars[0x20 + 3]; /* 0x01-0x20, backslash, del, and NULL */
+
+int au_seq_path(struct seq_file *seq, struct path *path)
+{
+	int err;
+
+	err = seq_path(seq, path, au_esc_chars);
+	if (err >= 0)
+		err = 0;
+	else
+		err = -ENOMEM;
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int __init aufs_init(void)
+{
+	int err, i;
+	char *p;
+
+	p = au_esc_chars;
+	for (i = 1; i <= ' '; i++)
+		*p++ = i;
+	*p++ = '\\';
+	*p++ = '\x7f';
+	*p = 0;
+
+	au_dir_roflags = au_file_roflags(O_DIRECTORY | O_LARGEFILE);
+
+	memcpy(aufs_iop_nogetattr, aufs_iop, sizeof(aufs_iop));
+	for (i = 0; i < AuIop_Last; i++)
+		aufs_iop_nogetattr[i].getattr = NULL;
+
+	memset(au_cache, 0, sizeof(au_cache));	/* including hnotify */
+
+	au_sbilist_init();
+	sysaufs_brs_init();
+	au_debug_init();
+	au_dy_init();
+	err = sysaufs_init();
+	if (unlikely(err))
+		goto out;
+	err = dbgaufs_init();
+	if (unlikely(err))
+		goto out_sysaufs;
+	err = au_procfs_init();
+	if (unlikely(err))
+		goto out_dbgaufs;
+	err = au_wkq_init();
+	if (unlikely(err))
+		goto out_procfs;
+	err = au_loopback_init();
+	if (unlikely(err))
+		goto out_wkq;
+	err = au_hnotify_init();
+	if (unlikely(err))
+		goto out_loopback;
+	err = au_sysrq_init();
+	if (unlikely(err))
+		goto out_hin;
+	err = au_cache_init();
+	if (unlikely(err))
+		goto out_sysrq;
+
+	aufs_fs_type.fs_flags |= au_userns ? FS_USERNS_MOUNT : 0;
+	err = register_filesystem(&aufs_fs_type);
+	if (unlikely(err))
+		goto out_cache;
+
+	/* since we define pr_fmt, call printk directly */
+	printk(KERN_INFO AUFS_NAME " " AUFS_VERSION "\n");
+	goto out; /* success */
+
+out_cache:
+	au_cache_fin();
+out_sysrq:
+	au_sysrq_fin();
+out_hin:
+	au_hnotify_fin();
+out_loopback:
+	au_loopback_fin();
+out_wkq:
+	au_wkq_fin();
+out_procfs:
+	au_procfs_fin();
+out_dbgaufs:
+	dbgaufs_fin();
+out_sysaufs:
+	sysaufs_fin();
+	au_dy_fin();
+out:
+	return err;
+}
+
+static void __exit aufs_exit(void)
+{
+	unregister_filesystem(&aufs_fs_type);
+	au_cache_fin();
+	au_sysrq_fin();
+	au_hnotify_fin();
+	au_loopback_fin();
+	au_wkq_fin();
+	au_procfs_fin();
+	dbgaufs_fin();
+	sysaufs_fin();
+	au_dy_fin();
+}
+
+module_init(aufs_init);
+module_exit(aufs_exit);
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/module.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/module.h
@@ -0,0 +1,166 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * module initialization and module-global
+ */
+
+#ifndef __AUFS_MODULE_H__
+#define __AUFS_MODULE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/slab.h>
+#include "debug.h"
+#include "dentry.h"
+#include "dir.h"
+#include "file.h"
+#include "inode.h"
+
+struct path;
+struct seq_file;
+
+/* module parameters */
+extern int sysaufs_brs;
+extern bool au_userns;
+
+/* ---------------------------------------------------------------------- */
+
+extern int au_dir_roflags;
+
+void *au_krealloc(void *p, unsigned int new_sz, gfp_t gfp, int may_shrink);
+void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp,
+		   int may_shrink);
+
+/*
+ * Comparing the size of the object with sizeof(struct rcu_head)
+ * case 1: object is always larger
+ *	--> au_kfree_rcu() or au_kfree_do_rcu()
+ * case 2: object is always smaller
+ *	--> au_kfree_small()
+ * case 3: object can be any size
+ *	--> au_kfree_try_rcu()
+ */
+
+static inline void au_kfree_do_rcu(const void *p)
+{
+	struct {
+		struct rcu_head rcu;
+	} *a = (void *)p;
+
+	kfree_rcu(a, rcu);
+}
+
+#define au_kfree_rcu(_p) do {						\
+		typeof(_p) p = (_p);					\
+		BUILD_BUG_ON(sizeof(*p) < sizeof(struct rcu_head));	\
+		if (p)							\
+			au_kfree_do_rcu(p);				\
+	} while (0)
+
+#define au_kfree_do_sz_test(sz)	(sz >= sizeof(struct rcu_head))
+#define au_kfree_sz_test(p)	(p && au_kfree_do_sz_test(ksize(p)))
+
+static inline void au_kfree_try_rcu(const void *p)
+{
+	if (!p)
+		return;
+	if (au_kfree_sz_test(p))
+		au_kfree_do_rcu(p);
+	else
+		kfree(p);
+}
+
+static inline void au_kfree_small(const void *p)
+{
+	if (!p)
+		return;
+	AuDebugOn(au_kfree_sz_test(p));
+	kfree(p);
+}
+
+static inline int au_kmidx_sub(size_t sz, size_t new_sz)
+{
+#ifndef CONFIG_SLOB
+	return kmalloc_index(sz) - kmalloc_index(new_sz);
+#else
+	return -1; /* SLOB is untested */
+#endif
+}
+
+int au_seq_path(struct seq_file *seq, struct path *path);
+
+#ifdef CONFIG_PROC_FS
+/* procfs.c */
+int __init au_procfs_init(void);
+void au_procfs_fin(void);
+#else
+AuStubInt0(au_procfs_init, void);
+AuStubVoid(au_procfs_fin, void);
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+/* kmem cache */
+enum {
+	AuCache_DINFO,
+	AuCache_ICNTNR,
+	AuCache_FINFO,
+	AuCache_VDIR,
+	AuCache_DEHSTR,
+	AuCache_HNOTIFY, /* must be last */
+	AuCache_Last
+};
+
+extern struct kmem_cache *au_cache[AuCache_Last];
+
+#define AuCacheFlags		(SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD)
+#define AuCache(type)		KMEM_CACHE(type, AuCacheFlags)
+#define AuCacheCtor(type, ctor)	\
+	kmem_cache_create(#type, sizeof(struct type), \
+			  __alignof__(struct type), AuCacheFlags, ctor)
+
+#define AuCacheFuncs(name, index)					\
+	static inline struct au_##name *au_cache_alloc_##name(void)	\
+	{ return kmem_cache_alloc(au_cache[AuCache_##index], GFP_NOFS); } \
+	static inline void au_cache_free_##name##_norcu(struct au_##name *p) \
+	{ kmem_cache_free(au_cache[AuCache_##index], p); }		\
+									\
+	static inline void au_cache_free_##name##_rcu_cb(struct rcu_head *rcu) \
+	{ void *p = rcu;						\
+		p -= offsetof(struct au_##name, rcu);			\
+		kmem_cache_free(au_cache[AuCache_##index], p); }	\
+	static inline void au_cache_free_##name##_rcu(struct au_##name *p) \
+	{ BUILD_BUG_ON(sizeof(struct au_##name) < sizeof(struct rcu_head)); \
+		call_rcu(&p->rcu, au_cache_free_##name##_rcu_cb); }	\
+									\
+	static inline void au_cache_free_##name(struct au_##name *p)	\
+	{ /* au_cache_free_##name##_norcu(p); */			\
+		au_cache_free_##name##_rcu(p); }
+
+AuCacheFuncs(dinfo, DINFO);
+AuCacheFuncs(icntnr, ICNTNR);
+AuCacheFuncs(finfo, FINFO);
+AuCacheFuncs(vdir, VDIR);
+AuCacheFuncs(vdir_dehstr, DEHSTR);
+#ifdef CONFIG_AUFS_HNOTIFY
+AuCacheFuncs(hnotify, HNOTIFY);
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_MODULE_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/mvdown.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/mvdown.c
@@ -0,0 +1,706 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2011-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * move-down, opposite of copy-up
+ */
+
+#include "aufs.h"
+
+struct au_mvd_args {
+	struct {
+		struct super_block *h_sb;
+		struct dentry *h_parent;
+		struct au_hinode *hdir;
+		struct inode *h_dir, *h_inode;
+		struct au_pin pin;
+	} info[AUFS_MVDOWN_NARRAY];
+
+	struct aufs_mvdown mvdown;
+	struct dentry *dentry, *parent;
+	struct inode *inode, *dir;
+	struct super_block *sb;
+	aufs_bindex_t bopq, bwh, bfound;
+	unsigned char rename_lock;
+};
+
+#define mvd_errno		mvdown.au_errno
+#define mvd_bsrc		mvdown.stbr[AUFS_MVDOWN_UPPER].bindex
+#define mvd_src_brid		mvdown.stbr[AUFS_MVDOWN_UPPER].brid
+#define mvd_bdst		mvdown.stbr[AUFS_MVDOWN_LOWER].bindex
+#define mvd_dst_brid		mvdown.stbr[AUFS_MVDOWN_LOWER].brid
+
+#define mvd_h_src_sb		info[AUFS_MVDOWN_UPPER].h_sb
+#define mvd_h_src_parent	info[AUFS_MVDOWN_UPPER].h_parent
+#define mvd_hdir_src		info[AUFS_MVDOWN_UPPER].hdir
+#define mvd_h_src_dir		info[AUFS_MVDOWN_UPPER].h_dir
+#define mvd_h_src_inode		info[AUFS_MVDOWN_UPPER].h_inode
+#define mvd_pin_src		info[AUFS_MVDOWN_UPPER].pin
+
+#define mvd_h_dst_sb		info[AUFS_MVDOWN_LOWER].h_sb
+#define mvd_h_dst_parent	info[AUFS_MVDOWN_LOWER].h_parent
+#define mvd_hdir_dst		info[AUFS_MVDOWN_LOWER].hdir
+#define mvd_h_dst_dir		info[AUFS_MVDOWN_LOWER].h_dir
+#define mvd_h_dst_inode		info[AUFS_MVDOWN_LOWER].h_inode
+#define mvd_pin_dst		info[AUFS_MVDOWN_LOWER].pin
+
+#define AU_MVD_PR(flag, ...) do {			\
+		if (flag)				\
+			pr_err(__VA_ARGS__);		\
+	} while (0)
+
+static int find_lower_writable(struct au_mvd_args *a)
+{
+	struct super_block *sb;
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+
+	sb = a->sb;
+	bindex = a->mvd_bsrc;
+	bbot = au_sbbot(sb);
+	if (a->mvdown.flags & AUFS_MVDOWN_FHSM_LOWER)
+		for (bindex++; bindex <= bbot; bindex++) {
+			br = au_sbr(sb, bindex);
+			if (au_br_fhsm(br->br_perm)
+			    && !sb_rdonly(au_br_sb(br)))
+				return bindex;
+		}
+	else if (!(a->mvdown.flags & AUFS_MVDOWN_ROLOWER))
+		for (bindex++; bindex <= bbot; bindex++) {
+			br = au_sbr(sb, bindex);
+			if (!au_br_rdonly(br))
+				return bindex;
+		}
+	else
+		for (bindex++; bindex <= bbot; bindex++) {
+			br = au_sbr(sb, bindex);
+			if (!sb_rdonly(au_br_sb(br))) {
+				if (au_br_rdonly(br))
+					a->mvdown.flags
+						|= AUFS_MVDOWN_ROLOWER_R;
+				return bindex;
+			}
+		}
+
+	return -1;
+}
+
+/* make the parent dir on bdst */
+static int au_do_mkdir(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+
+	err = 0;
+	a->mvd_hdir_src = au_hi(a->dir, a->mvd_bsrc);
+	a->mvd_hdir_dst = au_hi(a->dir, a->mvd_bdst);
+	a->mvd_h_src_parent = au_h_dptr(a->parent, a->mvd_bsrc);
+	a->mvd_h_dst_parent = NULL;
+	if (au_dbbot(a->parent) >= a->mvd_bdst)
+		a->mvd_h_dst_parent = au_h_dptr(a->parent, a->mvd_bdst);
+	if (!a->mvd_h_dst_parent) {
+		err = au_cpdown_dirs(a->dentry, a->mvd_bdst);
+		if (unlikely(err)) {
+			AU_MVD_PR(dmsg, "cpdown_dirs failed\n");
+			goto out;
+		}
+		a->mvd_h_dst_parent = au_h_dptr(a->parent, a->mvd_bdst);
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* lock them all */
+static int au_do_lock(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+	struct dentry *h_trap;
+
+	a->mvd_h_src_sb = au_sbr_sb(a->sb, a->mvd_bsrc);
+	a->mvd_h_dst_sb = au_sbr_sb(a->sb, a->mvd_bdst);
+	err = au_pin(&a->mvd_pin_dst, a->dentry, a->mvd_bdst,
+		     au_opt_udba(a->sb),
+		     AuPin_MNT_WRITE | AuPin_DI_LOCKED);
+	AuTraceErr(err);
+	if (unlikely(err)) {
+		AU_MVD_PR(dmsg, "pin_dst failed\n");
+		goto out;
+	}
+
+	if (a->mvd_h_src_sb != a->mvd_h_dst_sb) {
+		a->rename_lock = 0;
+		au_pin_init(&a->mvd_pin_src, a->dentry, a->mvd_bsrc,
+			    AuLsc_DI_PARENT, AuLsc_I_PARENT3,
+			    au_opt_udba(a->sb),
+			    AuPin_MNT_WRITE | AuPin_DI_LOCKED);
+		err = au_do_pin(&a->mvd_pin_src);
+		AuTraceErr(err);
+		a->mvd_h_src_dir = d_inode(a->mvd_h_src_parent);
+		if (unlikely(err)) {
+			AU_MVD_PR(dmsg, "pin_src failed\n");
+			goto out_dst;
+		}
+		goto out; /* success */
+	}
+
+	a->rename_lock = 1;
+	au_pin_hdir_unlock(&a->mvd_pin_dst);
+	err = au_pin(&a->mvd_pin_src, a->dentry, a->mvd_bsrc,
+		     au_opt_udba(a->sb),
+		     AuPin_MNT_WRITE | AuPin_DI_LOCKED);
+	AuTraceErr(err);
+	a->mvd_h_src_dir = d_inode(a->mvd_h_src_parent);
+	if (unlikely(err)) {
+		AU_MVD_PR(dmsg, "pin_src failed\n");
+		au_pin_hdir_lock(&a->mvd_pin_dst);
+		goto out_dst;
+	}
+	au_pin_hdir_unlock(&a->mvd_pin_src);
+	h_trap = vfsub_lock_rename(a->mvd_h_src_parent, a->mvd_hdir_src,
+				   a->mvd_h_dst_parent, a->mvd_hdir_dst);
+	if (h_trap) {
+		err = (h_trap != a->mvd_h_src_parent);
+		if (err)
+			err = (h_trap != a->mvd_h_dst_parent);
+	}
+	BUG_ON(err); /* it should never happen */
+	if (unlikely(a->mvd_h_src_dir != au_pinned_h_dir(&a->mvd_pin_src))) {
+		err = -EBUSY;
+		AuTraceErr(err);
+		vfsub_unlock_rename(a->mvd_h_src_parent, a->mvd_hdir_src,
+				    a->mvd_h_dst_parent, a->mvd_hdir_dst);
+		au_pin_hdir_lock(&a->mvd_pin_src);
+		au_unpin(&a->mvd_pin_src);
+		au_pin_hdir_lock(&a->mvd_pin_dst);
+		goto out_dst;
+	}
+	goto out; /* success */
+
+out_dst:
+	au_unpin(&a->mvd_pin_dst);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static void au_do_unlock(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	if (!a->rename_lock)
+		au_unpin(&a->mvd_pin_src);
+	else {
+		vfsub_unlock_rename(a->mvd_h_src_parent, a->mvd_hdir_src,
+				    a->mvd_h_dst_parent, a->mvd_hdir_dst);
+		au_pin_hdir_lock(&a->mvd_pin_src);
+		au_unpin(&a->mvd_pin_src);
+		au_pin_hdir_lock(&a->mvd_pin_dst);
+	}
+	au_unpin(&a->mvd_pin_dst);
+}
+
+/* copy-down the file */
+static int au_do_cpdown(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+	struct au_cp_generic cpg = {
+		.dentry	= a->dentry,
+		.bdst	= a->mvd_bdst,
+		.bsrc	= a->mvd_bsrc,
+		.len	= -1,
+		.pin	= &a->mvd_pin_dst,
+		.flags	= AuCpup_DTIME | AuCpup_HOPEN
+	};
+
+	AuDbg("b%d, b%d\n", cpg.bsrc, cpg.bdst);
+	if (a->mvdown.flags & AUFS_MVDOWN_OWLOWER)
+		au_fset_cpup(cpg.flags, OVERWRITE);
+	if (a->mvdown.flags & AUFS_MVDOWN_ROLOWER)
+		au_fset_cpup(cpg.flags, RWDST);
+	err = au_sio_cpdown_simple(&cpg);
+	if (unlikely(err))
+		AU_MVD_PR(dmsg, "cpdown failed\n");
+
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * unlink the whiteout on bdst if exist which may be created by UDBA while we
+ * were sleeping
+ */
+static int au_do_unlink_wh(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+	struct path h_path;
+	struct au_branch *br;
+	struct inode *delegated;
+
+	br = au_sbr(a->sb, a->mvd_bdst);
+	h_path.dentry = au_wh_lkup(a->mvd_h_dst_parent, &a->dentry->d_name, br);
+	err = PTR_ERR(h_path.dentry);
+	if (IS_ERR(h_path.dentry)) {
+		AU_MVD_PR(dmsg, "wh_lkup failed\n");
+		goto out;
+	}
+
+	err = 0;
+	if (d_is_positive(h_path.dentry)) {
+		h_path.mnt = au_br_mnt(br);
+		delegated = NULL;
+		err = vfsub_unlink(d_inode(a->mvd_h_dst_parent), &h_path,
+				   &delegated, /*force*/0);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal unlink\n");
+			iput(delegated);
+		}
+		if (unlikely(err))
+			AU_MVD_PR(dmsg, "wh_unlink failed\n");
+	}
+	dput(h_path.dentry);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/*
+ * unlink the topmost h_dentry
+ */
+static int au_do_unlink(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+	struct path h_path;
+	struct inode *delegated;
+
+	h_path.mnt = au_sbr_mnt(a->sb, a->mvd_bsrc);
+	h_path.dentry = au_h_dptr(a->dentry, a->mvd_bsrc);
+	delegated = NULL;
+	err = vfsub_unlink(a->mvd_h_src_dir, &h_path, &delegated, /*force*/0);
+	if (unlikely(err == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal unlink\n");
+		iput(delegated);
+	}
+	if (unlikely(err))
+		AU_MVD_PR(dmsg, "unlink failed\n");
+
+	AuTraceErr(err);
+	return err;
+}
+
+/* Since mvdown succeeded, we ignore an error of this function */
+static void au_do_stfs(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+	struct au_branch *br;
+
+	a->mvdown.flags |= AUFS_MVDOWN_STFS_FAILED;
+	br = au_sbr(a->sb, a->mvd_bsrc);
+	err = au_br_stfs(br, &a->mvdown.stbr[AUFS_MVDOWN_UPPER].stfs);
+	if (!err) {
+		br = au_sbr(a->sb, a->mvd_bdst);
+		a->mvdown.stbr[AUFS_MVDOWN_LOWER].brid = br->br_id;
+		err = au_br_stfs(br, &a->mvdown.stbr[AUFS_MVDOWN_LOWER].stfs);
+	}
+	if (!err)
+		a->mvdown.flags &= ~AUFS_MVDOWN_STFS_FAILED;
+	else
+		AU_MVD_PR(dmsg, "statfs failed (%d), ignored\n", err);
+}
+
+/*
+ * copy-down the file and unlink the bsrc file.
+ * - unlink the bdst whout if exist
+ * - copy-down the file (with whtmp name and rename)
+ * - unlink the bsrc file
+ */
+static int au_do_mvdown(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+
+	err = au_do_mkdir(dmsg, a);
+	if (!err)
+		err = au_do_lock(dmsg, a);
+	if (unlikely(err))
+		goto out;
+
+	/*
+	 * do not revert the activities we made on bdst since they should be
+	 * harmless in aufs.
+	 */
+
+	err = au_do_cpdown(dmsg, a);
+	if (!err)
+		err = au_do_unlink_wh(dmsg, a);
+	if (!err && !(a->mvdown.flags & AUFS_MVDOWN_KUPPER))
+		err = au_do_unlink(dmsg, a);
+	if (unlikely(err))
+		goto out_unlock;
+
+	AuDbg("%pd2, 0x%x, %d --> %d\n",
+	      a->dentry, a->mvdown.flags, a->mvd_bsrc, a->mvd_bdst);
+	if (find_lower_writable(a) < 0)
+		a->mvdown.flags |= AUFS_MVDOWN_BOTTOM;
+
+	if (a->mvdown.flags & AUFS_MVDOWN_STFS)
+		au_do_stfs(dmsg, a);
+
+	/* maintain internal array */
+	if (!(a->mvdown.flags & AUFS_MVDOWN_KUPPER)) {
+		au_set_h_dptr(a->dentry, a->mvd_bsrc, NULL);
+		au_set_dbtop(a->dentry, a->mvd_bdst);
+		au_set_h_iptr(a->inode, a->mvd_bsrc, NULL, /*flags*/0);
+		au_set_ibtop(a->inode, a->mvd_bdst);
+	} else {
+		/* hide the lower */
+		au_set_h_dptr(a->dentry, a->mvd_bdst, NULL);
+		au_set_dbbot(a->dentry, a->mvd_bsrc);
+		au_set_h_iptr(a->inode, a->mvd_bdst, NULL, /*flags*/0);
+		au_set_ibbot(a->inode, a->mvd_bsrc);
+	}
+	if (au_dbbot(a->dentry) < a->mvd_bdst)
+		au_set_dbbot(a->dentry, a->mvd_bdst);
+	if (au_ibbot(a->inode) < a->mvd_bdst)
+		au_set_ibbot(a->inode, a->mvd_bdst);
+
+out_unlock:
+	au_do_unlock(dmsg, a);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* make sure the file is idle */
+static int au_mvd_args_busy(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err, plinked;
+
+	err = 0;
+	plinked = !!au_opt_test(au_mntflags(a->sb), PLINK);
+	if (au_dbtop(a->dentry) == a->mvd_bsrc
+	    && au_dcount(a->dentry) == 1
+	    && atomic_read(&a->inode->i_count) == 1
+	    /* && a->mvd_h_src_inode->i_nlink == 1 */
+	    && (!plinked || !au_plink_test(a->inode))
+	    && a->inode->i_nlink == 1)
+		goto out;
+
+	err = -EBUSY;
+	AU_MVD_PR(dmsg,
+		  "b%d, d{b%d, c%d?}, i{c%d?, l%u}, hi{l%u}, p{%d, %d}\n",
+		  a->mvd_bsrc, au_dbtop(a->dentry), au_dcount(a->dentry),
+		  atomic_read(&a->inode->i_count), a->inode->i_nlink,
+		  a->mvd_h_src_inode->i_nlink,
+		  plinked, plinked ? au_plink_test(a->inode) : 0);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* make sure the parent dir is fine */
+static int au_mvd_args_parent(const unsigned char dmsg,
+			      struct au_mvd_args *a)
+{
+	int err;
+	aufs_bindex_t bindex;
+
+	err = 0;
+	if (unlikely(au_alive_dir(a->parent))) {
+		err = -ENOENT;
+		AU_MVD_PR(dmsg, "parent dir is dead\n");
+		goto out;
+	}
+
+	a->bopq = au_dbdiropq(a->parent);
+	bindex = au_wbr_nonopq(a->dentry, a->mvd_bdst);
+	AuDbg("b%d\n", bindex);
+	if (unlikely((bindex >= 0 && bindex < a->mvd_bdst)
+		     || (a->bopq != -1 && a->bopq < a->mvd_bdst))) {
+		err = -EINVAL;
+		a->mvd_errno = EAU_MVDOWN_OPAQUE;
+		AU_MVD_PR(dmsg, "ancestor is opaque b%d, b%d\n",
+			  a->bopq, a->mvd_bdst);
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_mvd_args_intermediate(const unsigned char dmsg,
+				    struct au_mvd_args *a)
+{
+	int err;
+	struct au_dinfo *dinfo, *tmp;
+
+	/* lookup the next lower positive entry */
+	err = -ENOMEM;
+	tmp = au_di_alloc(a->sb, AuLsc_DI_TMP);
+	if (unlikely(!tmp))
+		goto out;
+
+	a->bfound = -1;
+	a->bwh = -1;
+	dinfo = au_di(a->dentry);
+	au_di_cp(tmp, dinfo);
+	au_di_swap(tmp, dinfo);
+
+	/* returns the number of positive dentries */
+	err = au_lkup_dentry(a->dentry, a->mvd_bsrc + 1,
+			     /* AuLkup_IGNORE_PERM */ 0);
+	if (!err)
+		a->bwh = au_dbwh(a->dentry);
+	else if (err > 0)
+		a->bfound = au_dbtop(a->dentry);
+
+	au_di_swap(tmp, dinfo);
+	au_rw_write_unlock(&tmp->di_rwsem);
+	au_di_free(tmp);
+	if (unlikely(err < 0))
+		AU_MVD_PR(dmsg, "failed look-up lower\n");
+
+	/*
+	 * here, we have these cases.
+	 * bfound == -1
+	 *	no positive dentry under bsrc. there are more sub-cases.
+	 *	bwh < 0
+	 *		there no whiteout, we can safely move-down.
+	 *	bwh <= bsrc
+	 *		impossible
+	 *	bsrc < bwh && bwh < bdst
+	 *		there is a whiteout on RO branch. cannot proceed.
+	 *	bwh == bdst
+	 *		there is a whiteout on the RW target branch. it should
+	 *		be removed.
+	 *	bdst < bwh
+	 *		there is a whiteout somewhere unrelated branch.
+	 * -1 < bfound && bfound <= bsrc
+	 *	impossible.
+	 * bfound < bdst
+	 *	found, but it is on RO branch between bsrc and bdst. cannot
+	 *	proceed.
+	 * bfound == bdst
+	 *	found, replace it if AUFS_MVDOWN_FORCE is set. otherwise return
+	 *	error.
+	 * bdst < bfound
+	 *	found, after we create the file on bdst, it will be hidden.
+	 */
+
+	AuDebugOn(a->bfound == -1
+		  && a->bwh != -1
+		  && a->bwh <= a->mvd_bsrc);
+	AuDebugOn(-1 < a->bfound
+		  && a->bfound <= a->mvd_bsrc);
+
+	err = -EINVAL;
+	if (a->bfound == -1
+	    && a->mvd_bsrc < a->bwh
+	    && a->bwh != -1
+	    && a->bwh < a->mvd_bdst) {
+		a->mvd_errno = EAU_MVDOWN_WHITEOUT;
+		AU_MVD_PR(dmsg, "bsrc %d, bdst %d, bfound %d, bwh %d\n",
+			  a->mvd_bsrc, a->mvd_bdst, a->bfound, a->bwh);
+		goto out;
+	} else if (a->bfound != -1 && a->bfound < a->mvd_bdst) {
+		a->mvd_errno = EAU_MVDOWN_UPPER;
+		AU_MVD_PR(dmsg, "bdst %d, bfound %d\n",
+			  a->mvd_bdst, a->bfound);
+		goto out;
+	}
+
+	err = 0; /* success */
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_mvd_args_exist(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+
+	err = 0;
+	if (!(a->mvdown.flags & AUFS_MVDOWN_OWLOWER)
+	    && a->bfound == a->mvd_bdst)
+		err = -EEXIST;
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_mvd_args(const unsigned char dmsg, struct au_mvd_args *a)
+{
+	int err;
+	struct au_branch *br;
+
+	err = -EISDIR;
+	if (unlikely(S_ISDIR(a->inode->i_mode)))
+		goto out;
+
+	err = -EINVAL;
+	if (!(a->mvdown.flags & AUFS_MVDOWN_BRID_UPPER))
+		a->mvd_bsrc = au_ibtop(a->inode);
+	else {
+		a->mvd_bsrc = au_br_index(a->sb, a->mvd_src_brid);
+		if (unlikely(a->mvd_bsrc < 0
+			     || (a->mvd_bsrc < au_dbtop(a->dentry)
+				 || au_dbbot(a->dentry) < a->mvd_bsrc
+				 || !au_h_dptr(a->dentry, a->mvd_bsrc))
+			     || (a->mvd_bsrc < au_ibtop(a->inode)
+				 || au_ibbot(a->inode) < a->mvd_bsrc
+				 || !au_h_iptr(a->inode, a->mvd_bsrc)))) {
+			a->mvd_errno = EAU_MVDOWN_NOUPPER;
+			AU_MVD_PR(dmsg, "no upper\n");
+			goto out;
+		}
+	}
+	if (unlikely(a->mvd_bsrc == au_sbbot(a->sb))) {
+		a->mvd_errno = EAU_MVDOWN_BOTTOM;
+		AU_MVD_PR(dmsg, "on the bottom\n");
+		goto out;
+	}
+	a->mvd_h_src_inode = au_h_iptr(a->inode, a->mvd_bsrc);
+	br = au_sbr(a->sb, a->mvd_bsrc);
+	err = au_br_rdonly(br);
+	if (!(a->mvdown.flags & AUFS_MVDOWN_ROUPPER)) {
+		if (unlikely(err))
+			goto out;
+	} else if (!(vfsub_native_ro(a->mvd_h_src_inode)
+		     || IS_APPEND(a->mvd_h_src_inode))) {
+		if (err)
+			a->mvdown.flags |= AUFS_MVDOWN_ROUPPER_R;
+		/* go on */
+	} else
+		goto out;
+
+	err = -EINVAL;
+	if (!(a->mvdown.flags & AUFS_MVDOWN_BRID_LOWER)) {
+		a->mvd_bdst = find_lower_writable(a);
+		if (unlikely(a->mvd_bdst < 0)) {
+			a->mvd_errno = EAU_MVDOWN_BOTTOM;
+			AU_MVD_PR(dmsg, "no writable lower branch\n");
+			goto out;
+		}
+	} else {
+		a->mvd_bdst = au_br_index(a->sb, a->mvd_dst_brid);
+		if (unlikely(a->mvd_bdst < 0
+			     || au_sbbot(a->sb) < a->mvd_bdst)) {
+			a->mvd_errno = EAU_MVDOWN_NOLOWERBR;
+			AU_MVD_PR(dmsg, "no lower brid\n");
+			goto out;
+		}
+	}
+
+	err = au_mvd_args_busy(dmsg, a);
+	if (!err)
+		err = au_mvd_args_parent(dmsg, a);
+	if (!err)
+		err = au_mvd_args_intermediate(dmsg, a);
+	if (!err)
+		err = au_mvd_args_exist(dmsg, a);
+	if (!err)
+		AuDbg("b%d, b%d\n", a->mvd_bsrc, a->mvd_bdst);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+int au_mvdown(struct dentry *dentry, struct aufs_mvdown __user *uarg)
+{
+	int err, e;
+	unsigned char dmsg;
+	struct au_mvd_args *args;
+	struct inode *inode;
+
+	inode = d_inode(dentry);
+	err = -EPERM;
+	if (unlikely(!capable(CAP_SYS_ADMIN)))
+		goto out;
+
+	err = -ENOMEM;
+	args = kmalloc(sizeof(*args), GFP_NOFS);
+	if (unlikely(!args))
+		goto out;
+
+	err = copy_from_user(&args->mvdown, uarg, sizeof(args->mvdown));
+	if (!err)
+		/* VERIFY_WRITE */
+		err = !access_ok(uarg, sizeof(*uarg));
+	if (unlikely(err)) {
+		err = -EFAULT;
+		AuTraceErr(err);
+		goto out_free;
+	}
+	AuDbg("flags 0x%x\n", args->mvdown.flags);
+	args->mvdown.flags &= ~(AUFS_MVDOWN_ROLOWER_R | AUFS_MVDOWN_ROUPPER_R);
+	args->mvdown.au_errno = 0;
+	args->dentry = dentry;
+	args->inode = inode;
+	args->sb = dentry->d_sb;
+
+	err = -ENOENT;
+	dmsg = !!(args->mvdown.flags & AUFS_MVDOWN_DMSG);
+	args->parent = dget_parent(dentry);
+	args->dir = d_inode(args->parent);
+	inode_lock_nested(args->dir, I_MUTEX_PARENT);
+	dput(args->parent);
+	if (unlikely(args->parent != dentry->d_parent)) {
+		AU_MVD_PR(dmsg, "parent dir is moved\n");
+		goto out_dir;
+	}
+
+	inode_lock_nested(inode, I_MUTEX_CHILD);
+	err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH | AuLock_NOPLMW);
+	if (unlikely(err))
+		goto out_inode;
+
+	di_write_lock_parent(args->parent);
+	err = au_mvd_args(dmsg, args);
+	if (unlikely(err))
+		goto out_parent;
+
+	err = au_do_mvdown(dmsg, args);
+	if (unlikely(err))
+		goto out_parent;
+
+	au_cpup_attr_timesizes(args->dir);
+	au_cpup_attr_timesizes(inode);
+	if (!(args->mvdown.flags & AUFS_MVDOWN_KUPPER))
+		au_cpup_igen(inode, au_h_iptr(inode, args->mvd_bdst));
+	/* au_digen_dec(dentry); */
+
+out_parent:
+	di_write_unlock(args->parent);
+	aufs_read_unlock(dentry, AuLock_DW);
+out_inode:
+	inode_unlock(inode);
+out_dir:
+	inode_unlock(args->dir);
+out_free:
+	e = copy_to_user(uarg, &args->mvdown, sizeof(args->mvdown));
+	if (unlikely(e))
+		err = -EFAULT;
+	au_kfree_rcu(args);
+out:
+	AuTraceErr(err);
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/opts.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/opts.c
@@ -0,0 +1,1880 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * mount options/flags
+ */
+
+#include <linux/namei.h>
+#include <linux/types.h> /* a distribution requires */
+#include <linux/parser.h>
+#include "aufs.h"
+
+/* ---------------------------------------------------------------------- */
+
+enum {
+	Opt_br,
+	Opt_add, Opt_del, Opt_mod, Opt_append, Opt_prepend,
+	Opt_idel, Opt_imod,
+	Opt_dirwh, Opt_rdcache, Opt_rdblk, Opt_rdhash,
+	Opt_rdblk_def, Opt_rdhash_def,
+	Opt_xino, Opt_noxino,
+	Opt_trunc_xino, Opt_trunc_xino_v, Opt_notrunc_xino,
+	Opt_trunc_xino_path, Opt_itrunc_xino,
+	Opt_trunc_xib, Opt_notrunc_xib,
+	Opt_shwh, Opt_noshwh,
+	Opt_plink, Opt_noplink, Opt_list_plink,
+	Opt_udba,
+	Opt_dio, Opt_nodio,
+	Opt_diropq_a, Opt_diropq_w,
+	Opt_warn_perm, Opt_nowarn_perm,
+	Opt_wbr_copyup, Opt_wbr_create,
+	Opt_fhsm_sec,
+	Opt_verbose, Opt_noverbose,
+	Opt_sum, Opt_nosum, Opt_wsum,
+	Opt_dirperm1, Opt_nodirperm1,
+	Opt_dirren, Opt_nodirren,
+	Opt_acl, Opt_noacl,
+	Opt_tail, Opt_ignore, Opt_ignore_silent, Opt_err
+};
+
+static match_table_t options = {
+	{Opt_br, "br=%s"},
+	{Opt_br, "br:%s"},
+
+	{Opt_add, "add=%d:%s"},
+	{Opt_add, "add:%d:%s"},
+	{Opt_add, "ins=%d:%s"},
+	{Opt_add, "ins:%d:%s"},
+	{Opt_append, "append=%s"},
+	{Opt_append, "append:%s"},
+	{Opt_prepend, "prepend=%s"},
+	{Opt_prepend, "prepend:%s"},
+
+	{Opt_del, "del=%s"},
+	{Opt_del, "del:%s"},
+	/* {Opt_idel, "idel:%d"}, */
+	{Opt_mod, "mod=%s"},
+	{Opt_mod, "mod:%s"},
+	/* {Opt_imod, "imod:%d:%s"}, */
+
+	{Opt_dirwh, "dirwh=%d"},
+
+	{Opt_xino, "xino=%s"},
+	{Opt_noxino, "noxino"},
+	{Opt_trunc_xino, "trunc_xino"},
+	{Opt_trunc_xino_v, "trunc_xino_v=%d:%d"},
+	{Opt_notrunc_xino, "notrunc_xino"},
+	{Opt_trunc_xino_path, "trunc_xino=%s"},
+	{Opt_itrunc_xino, "itrunc_xino=%d"},
+	/* {Opt_zxino, "zxino=%s"}, */
+	{Opt_trunc_xib, "trunc_xib"},
+	{Opt_notrunc_xib, "notrunc_xib"},
+
+#ifdef CONFIG_PROC_FS
+	{Opt_plink, "plink"},
+#else
+	{Opt_ignore_silent, "plink"},
+#endif
+
+	{Opt_noplink, "noplink"},
+
+#ifdef CONFIG_AUFS_DEBUG
+	{Opt_list_plink, "list_plink"},
+#endif
+
+	{Opt_udba, "udba=%s"},
+
+	{Opt_dio, "dio"},
+	{Opt_nodio, "nodio"},
+
+#ifdef CONFIG_AUFS_DIRREN
+	{Opt_dirren, "dirren"},
+	{Opt_nodirren, "nodirren"},
+#else
+	{Opt_ignore, "dirren"},
+	{Opt_ignore_silent, "nodirren"},
+#endif
+
+#ifdef CONFIG_AUFS_FHSM
+	{Opt_fhsm_sec, "fhsm_sec=%d"},
+#else
+	{Opt_ignore, "fhsm_sec=%d"},
+#endif
+
+	{Opt_diropq_a, "diropq=always"},
+	{Opt_diropq_a, "diropq=a"},
+	{Opt_diropq_w, "diropq=whiteouted"},
+	{Opt_diropq_w, "diropq=w"},
+
+	{Opt_warn_perm, "warn_perm"},
+	{Opt_nowarn_perm, "nowarn_perm"},
+
+	/* keep them temporary */
+	{Opt_ignore_silent, "nodlgt"},
+	{Opt_ignore, "clean_plink"},
+
+#ifdef CONFIG_AUFS_SHWH
+	{Opt_shwh, "shwh"},
+#endif
+	{Opt_noshwh, "noshwh"},
+
+	{Opt_dirperm1, "dirperm1"},
+	{Opt_nodirperm1, "nodirperm1"},
+
+	{Opt_verbose, "verbose"},
+	{Opt_verbose, "v"},
+	{Opt_noverbose, "noverbose"},
+	{Opt_noverbose, "quiet"},
+	{Opt_noverbose, "q"},
+	{Opt_noverbose, "silent"},
+
+	{Opt_sum, "sum"},
+	{Opt_nosum, "nosum"},
+	{Opt_wsum, "wsum"},
+
+	{Opt_rdcache, "rdcache=%d"},
+	{Opt_rdblk, "rdblk=%d"},
+	{Opt_rdblk_def, "rdblk=def"},
+	{Opt_rdhash, "rdhash=%d"},
+	{Opt_rdhash_def, "rdhash=def"},
+
+	{Opt_wbr_create, "create=%s"},
+	{Opt_wbr_create, "create_policy=%s"},
+	{Opt_wbr_copyup, "cpup=%s"},
+	{Opt_wbr_copyup, "copyup=%s"},
+	{Opt_wbr_copyup, "copyup_policy=%s"},
+
+	/* generic VFS flag */
+#ifdef CONFIG_FS_POSIX_ACL
+	{Opt_acl, "acl"},
+	{Opt_noacl, "noacl"},
+#else
+	{Opt_ignore, "acl"},
+	{Opt_ignore_silent, "noacl"},
+#endif
+
+	/* internal use for the scripts */
+	{Opt_ignore_silent, "si=%s"},
+
+	{Opt_br, "dirs=%s"},
+	{Opt_ignore, "debug=%d"},
+	{Opt_ignore, "delete=whiteout"},
+	{Opt_ignore, "delete=all"},
+	{Opt_ignore, "imap=%s"},
+
+	/* temporary workaround, due to old mount(8)? */
+	{Opt_ignore_silent, "relatime"},
+
+	{Opt_err, NULL}
+};
+
+/* ---------------------------------------------------------------------- */
+
+static const char *au_parser_pattern(int val, match_table_t tbl)
+{
+	struct match_token *p;
+
+	p = tbl;
+	while (p->pattern) {
+		if (p->token == val)
+			return p->pattern;
+		p++;
+	}
+	BUG();
+	return "??";
+}
+
+static const char *au_optstr(int *val, match_table_t tbl)
+{
+	struct match_token *p;
+	int v;
+
+	v = *val;
+	if (!v)
+		goto out;
+	p = tbl;
+	while (p->pattern) {
+		if (p->token
+		    && (v & p->token) == p->token) {
+			*val &= ~p->token;
+			return p->pattern;
+		}
+		p++;
+	}
+
+out:
+	return NULL;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static match_table_t brperm = {
+	{AuBrPerm_RO, AUFS_BRPERM_RO},
+	{AuBrPerm_RR, AUFS_BRPERM_RR},
+	{AuBrPerm_RW, AUFS_BRPERM_RW},
+	{0, NULL}
+};
+
+static match_table_t brattr = {
+	/* general */
+	{AuBrAttr_COO_REG, AUFS_BRATTR_COO_REG},
+	{AuBrAttr_COO_ALL, AUFS_BRATTR_COO_ALL},
+	/* 'unpin' attrib is meaningless since linux-3.18-rc1 */
+	{AuBrAttr_UNPIN, AUFS_BRATTR_UNPIN},
+#ifdef CONFIG_AUFS_FHSM
+	{AuBrAttr_FHSM, AUFS_BRATTR_FHSM},
+#endif
+#ifdef CONFIG_AUFS_XATTR
+	{AuBrAttr_ICEX, AUFS_BRATTR_ICEX},
+	{AuBrAttr_ICEX_SEC, AUFS_BRATTR_ICEX_SEC},
+	{AuBrAttr_ICEX_SYS, AUFS_BRATTR_ICEX_SYS},
+	{AuBrAttr_ICEX_TR, AUFS_BRATTR_ICEX_TR},
+	{AuBrAttr_ICEX_USR, AUFS_BRATTR_ICEX_USR},
+	{AuBrAttr_ICEX_OTH, AUFS_BRATTR_ICEX_OTH},
+#endif
+
+	/* ro/rr branch */
+	{AuBrRAttr_WH, AUFS_BRRATTR_WH},
+
+	/* rw branch */
+	{AuBrWAttr_MOO, AUFS_BRWATTR_MOO},
+	{AuBrWAttr_NoLinkWH, AUFS_BRWATTR_NLWH},
+
+	{0, NULL}
+};
+
+static int br_attr_val(char *str, match_table_t table, substring_t args[])
+{
+	int attr, v;
+	char *p;
+
+	attr = 0;
+	do {
+		p = strchr(str, '+');
+		if (p)
+			*p = 0;
+		v = match_token(str, table, args);
+		if (v) {
+			if (v & AuBrAttr_CMOO_Mask)
+				attr &= ~AuBrAttr_CMOO_Mask;
+			attr |= v;
+		} else {
+			if (p)
+				*p = '+';
+			pr_warn("ignored branch attribute %s\n", str);
+			break;
+		}
+		if (p)
+			str = p + 1;
+	} while (p);
+
+	return attr;
+}
+
+static int au_do_optstr_br_attr(au_br_perm_str_t *str, int perm)
+{
+	int sz;
+	const char *p;
+	char *q;
+
+	q = str->a;
+	*q = 0;
+	p = au_optstr(&perm, brattr);
+	if (p) {
+		sz = strlen(p);
+		memcpy(q, p, sz + 1);
+		q += sz;
+	} else
+		goto out;
+
+	do {
+		p = au_optstr(&perm, brattr);
+		if (p) {
+			*q++ = '+';
+			sz = strlen(p);
+			memcpy(q, p, sz + 1);
+			q += sz;
+		}
+	} while (p);
+
+out:
+	return q - str->a;
+}
+
+static int noinline_for_stack br_perm_val(char *perm)
+{
+	int val, bad, sz;
+	char *p;
+	substring_t args[MAX_OPT_ARGS];
+	au_br_perm_str_t attr;
+
+	p = strchr(perm, '+');
+	if (p)
+		*p = 0;
+	val = match_token(perm, brperm, args);
+	if (!val) {
+		if (p)
+			*p = '+';
+		pr_warn("ignored branch permission %s\n", perm);
+		val = AuBrPerm_RO;
+		goto out;
+	}
+	if (!p)
+		goto out;
+
+	val |= br_attr_val(p + 1, brattr, args);
+
+	bad = 0;
+	switch (val & AuBrPerm_Mask) {
+	case AuBrPerm_RO:
+	case AuBrPerm_RR:
+		bad = val & AuBrWAttr_Mask;
+		val &= ~AuBrWAttr_Mask;
+		break;
+	case AuBrPerm_RW:
+		bad = val & AuBrRAttr_Mask;
+		val &= ~AuBrRAttr_Mask;
+		break;
+	}
+
+	/*
+	 * 'unpin' attrib becomes meaningless since linux-3.18-rc1, but aufs
+	 * does not treat it as an error, just warning.
+	 * this is a tiny guard for the user operation.
+	 */
+	if (val & AuBrAttr_UNPIN) {
+		bad |= AuBrAttr_UNPIN;
+		val &= ~AuBrAttr_UNPIN;
+	}
+
+	if (unlikely(bad)) {
+		sz = au_do_optstr_br_attr(&attr, bad);
+		AuDebugOn(!sz);
+		pr_warn("ignored branch attribute %s\n", attr.a);
+	}
+
+out:
+	return val;
+}
+
+void au_optstr_br_perm(au_br_perm_str_t *str, int perm)
+{
+	au_br_perm_str_t attr;
+	const char *p;
+	char *q;
+	int sz;
+
+	q = str->a;
+	p = au_optstr(&perm, brperm);
+	AuDebugOn(!p || !*p);
+	sz = strlen(p);
+	memcpy(q, p, sz + 1);
+	q += sz;
+
+	sz = au_do_optstr_br_attr(&attr, perm);
+	if (sz) {
+		*q++ = '+';
+		memcpy(q, attr.a, sz + 1);
+	}
+
+	AuDebugOn(strlen(str->a) >= sizeof(str->a));
+}
+
+/* ---------------------------------------------------------------------- */
+
+static match_table_t udbalevel = {
+	{AuOpt_UDBA_REVAL, "reval"},
+	{AuOpt_UDBA_NONE, "none"},
+#ifdef CONFIG_AUFS_HNOTIFY
+	{AuOpt_UDBA_HNOTIFY, "notify"}, /* abstraction */
+#ifdef CONFIG_AUFS_HFSNOTIFY
+	{AuOpt_UDBA_HNOTIFY, "fsnotify"},
+#endif
+#endif
+	{-1, NULL}
+};
+
+static int noinline_for_stack udba_val(char *str)
+{
+	substring_t args[MAX_OPT_ARGS];
+
+	return match_token(str, udbalevel, args);
+}
+
+const char *au_optstr_udba(int udba)
+{
+	return au_parser_pattern(udba, udbalevel);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static match_table_t au_wbr_create_policy = {
+	{AuWbrCreate_TDP, "tdp"},
+	{AuWbrCreate_TDP, "top-down-parent"},
+	{AuWbrCreate_RR, "rr"},
+	{AuWbrCreate_RR, "round-robin"},
+	{AuWbrCreate_MFS, "mfs"},
+	{AuWbrCreate_MFS, "most-free-space"},
+	{AuWbrCreate_MFSV, "mfs:%d"},
+	{AuWbrCreate_MFSV, "most-free-space:%d"},
+
+	/* top-down regardless the parent, and then mfs */
+	{AuWbrCreate_TDMFS, "tdmfs:%d"},
+	{AuWbrCreate_TDMFSV, "tdmfs:%d:%d"},
+
+	{AuWbrCreate_MFSRR, "mfsrr:%d"},
+	{AuWbrCreate_MFSRRV, "mfsrr:%d:%d"},
+	{AuWbrCreate_PMFS, "pmfs"},
+	{AuWbrCreate_PMFSV, "pmfs:%d"},
+	{AuWbrCreate_PMFSRR, "pmfsrr:%d"},
+	{AuWbrCreate_PMFSRRV, "pmfsrr:%d:%d"},
+
+	{-1, NULL}
+};
+
+static int au_wbr_mfs_wmark(substring_t *arg, char *str,
+			    struct au_opt_wbr_create *create)
+{
+	int err;
+	unsigned long long ull;
+
+	err = 0;
+	if (!match_u64(arg, &ull))
+		create->mfsrr_watermark = ull;
+	else {
+		pr_err("bad integer in %s\n", str);
+		err = -EINVAL;
+	}
+
+	return err;
+}
+
+static int au_wbr_mfs_sec(substring_t *arg, char *str,
+			  struct au_opt_wbr_create *create)
+{
+	int n, err;
+
+	err = 0;
+	if (!match_int(arg, &n) && 0 <= n && n <= AUFS_MFS_MAX_SEC)
+		create->mfs_second = n;
+	else {
+		pr_err("bad integer in %s\n", str);
+		err = -EINVAL;
+	}
+
+	return err;
+}
+
+static int noinline_for_stack
+au_wbr_create_val(char *str, struct au_opt_wbr_create *create)
+{
+	int err, e;
+	substring_t args[MAX_OPT_ARGS];
+
+	err = match_token(str, au_wbr_create_policy, args);
+	create->wbr_create = err;
+	switch (err) {
+	case AuWbrCreate_MFSRRV:
+	case AuWbrCreate_TDMFSV:
+	case AuWbrCreate_PMFSRRV:
+		e = au_wbr_mfs_wmark(&args[0], str, create);
+		if (!e)
+			e = au_wbr_mfs_sec(&args[1], str, create);
+		if (unlikely(e))
+			err = e;
+		break;
+	case AuWbrCreate_MFSRR:
+	case AuWbrCreate_TDMFS:
+	case AuWbrCreate_PMFSRR:
+		e = au_wbr_mfs_wmark(&args[0], str, create);
+		if (unlikely(e)) {
+			err = e;
+			break;
+		}
+		/*FALLTHROUGH*/
+	case AuWbrCreate_MFS:
+	case AuWbrCreate_PMFS:
+		create->mfs_second = AUFS_MFS_DEF_SEC;
+		break;
+	case AuWbrCreate_MFSV:
+	case AuWbrCreate_PMFSV:
+		e = au_wbr_mfs_sec(&args[0], str, create);
+		if (unlikely(e))
+			err = e;
+		break;
+	}
+
+	return err;
+}
+
+const char *au_optstr_wbr_create(int wbr_create)
+{
+	return au_parser_pattern(wbr_create, au_wbr_create_policy);
+}
+
+static match_table_t au_wbr_copyup_policy = {
+	{AuWbrCopyup_TDP, "tdp"},
+	{AuWbrCopyup_TDP, "top-down-parent"},
+	{AuWbrCopyup_BUP, "bup"},
+	{AuWbrCopyup_BUP, "bottom-up-parent"},
+	{AuWbrCopyup_BU, "bu"},
+	{AuWbrCopyup_BU, "bottom-up"},
+	{-1, NULL}
+};
+
+static int noinline_for_stack au_wbr_copyup_val(char *str)
+{
+	substring_t args[MAX_OPT_ARGS];
+
+	return match_token(str, au_wbr_copyup_policy, args);
+}
+
+const char *au_optstr_wbr_copyup(int wbr_copyup)
+{
+	return au_parser_pattern(wbr_copyup, au_wbr_copyup_policy);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static const int lkup_dirflags = LOOKUP_FOLLOW | LOOKUP_DIRECTORY;
+
+static void dump_opts(struct au_opts *opts)
+{
+#ifdef CONFIG_AUFS_DEBUG
+	/* reduce stack space */
+	union {
+		struct au_opt_add *add;
+		struct au_opt_del *del;
+		struct au_opt_mod *mod;
+		struct au_opt_xino *xino;
+		struct au_opt_xino_itrunc *xino_itrunc;
+		struct au_opt_wbr_create *create;
+	} u;
+	struct au_opt *opt;
+
+	opt = opts->opt;
+	while (opt->type != Opt_tail) {
+		switch (opt->type) {
+		case Opt_add:
+			u.add = &opt->add;
+			AuDbg("add {b%d, %s, 0x%x, %p}\n",
+				  u.add->bindex, u.add->pathname, u.add->perm,
+				  u.add->path.dentry);
+			break;
+		case Opt_del:
+		case Opt_idel:
+			u.del = &opt->del;
+			AuDbg("del {%s, %p}\n",
+			      u.del->pathname, u.del->h_path.dentry);
+			break;
+		case Opt_mod:
+		case Opt_imod:
+			u.mod = &opt->mod;
+			AuDbg("mod {%s, 0x%x, %p}\n",
+				  u.mod->path, u.mod->perm, u.mod->h_root);
+			break;
+		case Opt_append:
+			u.add = &opt->add;
+			AuDbg("append {b%d, %s, 0x%x, %p}\n",
+				  u.add->bindex, u.add->pathname, u.add->perm,
+				  u.add->path.dentry);
+			break;
+		case Opt_prepend:
+			u.add = &opt->add;
+			AuDbg("prepend {b%d, %s, 0x%x, %p}\n",
+				  u.add->bindex, u.add->pathname, u.add->perm,
+				  u.add->path.dentry);
+			break;
+		case Opt_dirwh:
+			AuDbg("dirwh %d\n", opt->dirwh);
+			break;
+		case Opt_rdcache:
+			AuDbg("rdcache %d\n", opt->rdcache);
+			break;
+		case Opt_rdblk:
+			AuDbg("rdblk %u\n", opt->rdblk);
+			break;
+		case Opt_rdblk_def:
+			AuDbg("rdblk_def\n");
+			break;
+		case Opt_rdhash:
+			AuDbg("rdhash %u\n", opt->rdhash);
+			break;
+		case Opt_rdhash_def:
+			AuDbg("rdhash_def\n");
+			break;
+		case Opt_xino:
+			u.xino = &opt->xino;
+			AuDbg("xino {%s %pD}\n", u.xino->path, u.xino->file);
+			break;
+		case Opt_trunc_xino:
+			AuLabel(trunc_xino);
+			break;
+		case Opt_notrunc_xino:
+			AuLabel(notrunc_xino);
+			break;
+		case Opt_trunc_xino_path:
+		case Opt_itrunc_xino:
+			u.xino_itrunc = &opt->xino_itrunc;
+			AuDbg("trunc_xino %d\n", u.xino_itrunc->bindex);
+			break;
+		case Opt_noxino:
+			AuLabel(noxino);
+			break;
+		case Opt_trunc_xib:
+			AuLabel(trunc_xib);
+			break;
+		case Opt_notrunc_xib:
+			AuLabel(notrunc_xib);
+			break;
+		case Opt_shwh:
+			AuLabel(shwh);
+			break;
+		case Opt_noshwh:
+			AuLabel(noshwh);
+			break;
+		case Opt_dirperm1:
+			AuLabel(dirperm1);
+			break;
+		case Opt_nodirperm1:
+			AuLabel(nodirperm1);
+			break;
+		case Opt_plink:
+			AuLabel(plink);
+			break;
+		case Opt_noplink:
+			AuLabel(noplink);
+			break;
+		case Opt_list_plink:
+			AuLabel(list_plink);
+			break;
+		case Opt_udba:
+			AuDbg("udba %d, %s\n",
+				  opt->udba, au_optstr_udba(opt->udba));
+			break;
+		case Opt_dio:
+			AuLabel(dio);
+			break;
+		case Opt_nodio:
+			AuLabel(nodio);
+			break;
+		case Opt_diropq_a:
+			AuLabel(diropq_a);
+			break;
+		case Opt_diropq_w:
+			AuLabel(diropq_w);
+			break;
+		case Opt_warn_perm:
+			AuLabel(warn_perm);
+			break;
+		case Opt_nowarn_perm:
+			AuLabel(nowarn_perm);
+			break;
+		case Opt_verbose:
+			AuLabel(verbose);
+			break;
+		case Opt_noverbose:
+			AuLabel(noverbose);
+			break;
+		case Opt_sum:
+			AuLabel(sum);
+			break;
+		case Opt_nosum:
+			AuLabel(nosum);
+			break;
+		case Opt_wsum:
+			AuLabel(wsum);
+			break;
+		case Opt_wbr_create:
+			u.create = &opt->wbr_create;
+			AuDbg("create %d, %s\n", u.create->wbr_create,
+				  au_optstr_wbr_create(u.create->wbr_create));
+			switch (u.create->wbr_create) {
+			case AuWbrCreate_MFSV:
+			case AuWbrCreate_PMFSV:
+				AuDbg("%d sec\n", u.create->mfs_second);
+				break;
+			case AuWbrCreate_MFSRR:
+			case AuWbrCreate_TDMFS:
+				AuDbg("%llu watermark\n",
+					  u.create->mfsrr_watermark);
+				break;
+			case AuWbrCreate_MFSRRV:
+			case AuWbrCreate_TDMFSV:
+			case AuWbrCreate_PMFSRRV:
+				AuDbg("%llu watermark, %d sec\n",
+					  u.create->mfsrr_watermark,
+					  u.create->mfs_second);
+				break;
+			}
+			break;
+		case Opt_wbr_copyup:
+			AuDbg("copyup %d, %s\n", opt->wbr_copyup,
+				  au_optstr_wbr_copyup(opt->wbr_copyup));
+			break;
+		case Opt_fhsm_sec:
+			AuDbg("fhsm_sec %u\n", opt->fhsm_second);
+			break;
+		case Opt_dirren:
+			AuLabel(dirren);
+			break;
+		case Opt_nodirren:
+			AuLabel(nodirren);
+			break;
+		case Opt_acl:
+			AuLabel(acl);
+			break;
+		case Opt_noacl:
+			AuLabel(noacl);
+			break;
+		default:
+			BUG();
+		}
+		opt++;
+	}
+#endif
+}
+
+void au_opts_free(struct au_opts *opts)
+{
+	struct au_opt *opt;
+
+	opt = opts->opt;
+	while (opt->type != Opt_tail) {
+		switch (opt->type) {
+		case Opt_add:
+		case Opt_append:
+		case Opt_prepend:
+			path_put(&opt->add.path);
+			break;
+		case Opt_del:
+		case Opt_idel:
+			path_put(&opt->del.h_path);
+			break;
+		case Opt_mod:
+		case Opt_imod:
+			dput(opt->mod.h_root);
+			break;
+		case Opt_xino:
+			fput(opt->xino.file);
+			break;
+		}
+		opt++;
+	}
+}
+
+static int opt_add(struct au_opt *opt, char *opt_str, unsigned long sb_flags,
+		   aufs_bindex_t bindex)
+{
+	int err;
+	struct au_opt_add *add = &opt->add;
+	char *p;
+
+	add->bindex = bindex;
+	add->perm = AuBrPerm_RO;
+	add->pathname = opt_str;
+	p = strchr(opt_str, '=');
+	if (p) {
+		*p++ = 0;
+		if (*p)
+			add->perm = br_perm_val(p);
+	}
+
+	err = vfsub_kern_path(add->pathname, lkup_dirflags, &add->path);
+	if (!err) {
+		if (!p) {
+			add->perm = AuBrPerm_RO;
+			if (au_test_fs_rr(add->path.dentry->d_sb))
+				add->perm = AuBrPerm_RR;
+			else if (!bindex && !(sb_flags & SB_RDONLY))
+				add->perm = AuBrPerm_RW;
+		}
+		opt->type = Opt_add;
+		goto out;
+	}
+	pr_err("lookup failed %s (%d)\n", add->pathname, err);
+	err = -EINVAL;
+
+out:
+	return err;
+}
+
+static int au_opts_parse_del(struct au_opt_del *del, substring_t args[])
+{
+	int err;
+
+	del->pathname = args[0].from;
+	AuDbg("del path %s\n", del->pathname);
+
+	err = vfsub_kern_path(del->pathname, lkup_dirflags, &del->h_path);
+	if (unlikely(err))
+		pr_err("lookup failed %s (%d)\n", del->pathname, err);
+
+	return err;
+}
+
+#if 0 /* reserved for future use */
+static int au_opts_parse_idel(struct super_block *sb, aufs_bindex_t bindex,
+			      struct au_opt_del *del, substring_t args[])
+{
+	int err;
+	struct dentry *root;
+
+	err = -EINVAL;
+	root = sb->s_root;
+	aufs_read_lock(root, AuLock_FLUSH);
+	if (bindex < 0 || au_sbbot(sb) < bindex) {
+		pr_err("out of bounds, %d\n", bindex);
+		goto out;
+	}
+
+	err = 0;
+	del->h_path.dentry = dget(au_h_dptr(root, bindex));
+	del->h_path.mnt = mntget(au_sbr_mnt(sb, bindex));
+
+out:
+	aufs_read_unlock(root, !AuLock_IR);
+	return err;
+}
+#endif
+
+static int noinline_for_stack
+au_opts_parse_mod(struct au_opt_mod *mod, substring_t args[])
+{
+	int err;
+	struct path path;
+	char *p;
+
+	err = -EINVAL;
+	mod->path = args[0].from;
+	p = strchr(mod->path, '=');
+	if (unlikely(!p)) {
+		pr_err("no permission %s\n", args[0].from);
+		goto out;
+	}
+
+	*p++ = 0;
+	err = vfsub_kern_path(mod->path, lkup_dirflags, &path);
+	if (unlikely(err)) {
+		pr_err("lookup failed %s (%d)\n", mod->path, err);
+		goto out;
+	}
+
+	mod->perm = br_perm_val(p);
+	AuDbg("mod path %s, perm 0x%x, %s\n", mod->path, mod->perm, p);
+	mod->h_root = dget(path.dentry);
+	path_put(&path);
+
+out:
+	return err;
+}
+
+#if 0 /* reserved for future use */
+static int au_opts_parse_imod(struct super_block *sb, aufs_bindex_t bindex,
+			      struct au_opt_mod *mod, substring_t args[])
+{
+	int err;
+	struct dentry *root;
+
+	err = -EINVAL;
+	root = sb->s_root;
+	aufs_read_lock(root, AuLock_FLUSH);
+	if (bindex < 0 || au_sbbot(sb) < bindex) {
+		pr_err("out of bounds, %d\n", bindex);
+		goto out;
+	}
+
+	err = 0;
+	mod->perm = br_perm_val(args[1].from);
+	AuDbg("mod path %s, perm 0x%x, %s\n",
+	      mod->path, mod->perm, args[1].from);
+	mod->h_root = dget(au_h_dptr(root, bindex));
+
+out:
+	aufs_read_unlock(root, !AuLock_IR);
+	return err;
+}
+#endif
+
+static int au_opts_parse_xino(struct super_block *sb, struct au_opt_xino *xino,
+			      substring_t args[])
+{
+	int err;
+	struct file *file;
+
+	file = au_xino_create(sb, args[0].from, /*silent*/0, /*wbrtop*/0);
+	err = PTR_ERR(file);
+	if (IS_ERR(file))
+		goto out;
+
+	err = -EINVAL;
+	if (unlikely(file->f_path.dentry->d_sb == sb)) {
+		fput(file);
+		pr_err("%s must be outside\n", args[0].from);
+		goto out;
+	}
+
+	err = 0;
+	xino->file = file;
+	xino->path = args[0].from;
+
+out:
+	return err;
+}
+
+static int noinline_for_stack
+au_opts_parse_xino_itrunc_path(struct super_block *sb,
+			       struct au_opt_xino_itrunc *xino_itrunc,
+			       substring_t args[])
+{
+	int err;
+	aufs_bindex_t bbot, bindex;
+	struct path path;
+	struct dentry *root;
+
+	err = vfsub_kern_path(args[0].from, lkup_dirflags, &path);
+	if (unlikely(err)) {
+		pr_err("lookup failed %s (%d)\n", args[0].from, err);
+		goto out;
+	}
+
+	xino_itrunc->bindex = -1;
+	root = sb->s_root;
+	aufs_read_lock(root, AuLock_FLUSH);
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		if (au_h_dptr(root, bindex) == path.dentry) {
+			xino_itrunc->bindex = bindex;
+			break;
+		}
+	}
+	aufs_read_unlock(root, !AuLock_IR);
+	path_put(&path);
+
+	if (unlikely(xino_itrunc->bindex < 0)) {
+		pr_err("no such branch %s\n", args[0].from);
+		err = -EINVAL;
+	}
+
+out:
+	return err;
+}
+
+/* called without aufs lock */
+int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts)
+{
+	int err, n, token;
+	aufs_bindex_t bindex;
+	unsigned char skipped;
+	struct dentry *root;
+	struct au_opt *opt, *opt_tail;
+	char *opt_str;
+	/* reduce the stack space */
+	union {
+		struct au_opt_xino_itrunc *xino_itrunc;
+		struct au_opt_wbr_create *create;
+	} u;
+	struct {
+		substring_t args[MAX_OPT_ARGS];
+	} *a;
+
+	err = -ENOMEM;
+	a = kmalloc(sizeof(*a), GFP_NOFS);
+	if (unlikely(!a))
+		goto out;
+
+	root = sb->s_root;
+	err = 0;
+	bindex = 0;
+	opt = opts->opt;
+	opt_tail = opt + opts->max_opt - 1;
+	opt->type = Opt_tail;
+	while (!err && (opt_str = strsep(&str, ",")) && *opt_str) {
+		err = -EINVAL;
+		skipped = 0;
+		token = match_token(opt_str, options, a->args);
+		switch (token) {
+		case Opt_br:
+			err = 0;
+			while (!err && (opt_str = strsep(&a->args[0].from, ":"))
+			       && *opt_str) {
+				err = opt_add(opt, opt_str, opts->sb_flags,
+					      bindex++);
+				if (unlikely(!err && ++opt > opt_tail)) {
+					err = -E2BIG;
+					break;
+				}
+				opt->type = Opt_tail;
+				skipped = 1;
+			}
+			break;
+		case Opt_add:
+			if (unlikely(match_int(&a->args[0], &n))) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			bindex = n;
+			err = opt_add(opt, a->args[1].from, opts->sb_flags,
+				      bindex);
+			if (!err)
+				opt->type = token;
+			break;
+		case Opt_append:
+			err = opt_add(opt, a->args[0].from, opts->sb_flags,
+				      /*dummy bindex*/1);
+			if (!err)
+				opt->type = token;
+			break;
+		case Opt_prepend:
+			err = opt_add(opt, a->args[0].from, opts->sb_flags,
+				      /*bindex*/0);
+			if (!err)
+				opt->type = token;
+			break;
+		case Opt_del:
+			err = au_opts_parse_del(&opt->del, a->args);
+			if (!err)
+				opt->type = token;
+			break;
+#if 0 /* reserved for future use */
+		case Opt_idel:
+			del->pathname = "(indexed)";
+			if (unlikely(match_int(&args[0], &n))) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			err = au_opts_parse_idel(sb, n, &opt->del, a->args);
+			if (!err)
+				opt->type = token;
+			break;
+#endif
+		case Opt_mod:
+			err = au_opts_parse_mod(&opt->mod, a->args);
+			if (!err)
+				opt->type = token;
+			break;
+#ifdef IMOD /* reserved for future use */
+		case Opt_imod:
+			u.mod->path = "(indexed)";
+			if (unlikely(match_int(&a->args[0], &n))) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			err = au_opts_parse_imod(sb, n, &opt->mod, a->args);
+			if (!err)
+				opt->type = token;
+			break;
+#endif
+		case Opt_xino:
+			err = au_opts_parse_xino(sb, &opt->xino, a->args);
+			if (!err)
+				opt->type = token;
+			break;
+
+		case Opt_trunc_xino_path:
+			err = au_opts_parse_xino_itrunc_path
+				(sb, &opt->xino_itrunc, a->args);
+			if (!err)
+				opt->type = token;
+			break;
+
+		case Opt_itrunc_xino:
+			u.xino_itrunc = &opt->xino_itrunc;
+			if (unlikely(match_int(&a->args[0], &n))) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			u.xino_itrunc->bindex = n;
+			aufs_read_lock(root, AuLock_FLUSH);
+			if (n < 0 || au_sbbot(sb) < n) {
+				pr_err("out of bounds, %d\n", n);
+				aufs_read_unlock(root, !AuLock_IR);
+				break;
+			}
+			aufs_read_unlock(root, !AuLock_IR);
+			err = 0;
+			opt->type = token;
+			break;
+
+		case Opt_dirwh:
+			if (unlikely(match_int(&a->args[0], &opt->dirwh)))
+				break;
+			err = 0;
+			opt->type = token;
+			break;
+
+		case Opt_rdcache:
+			if (unlikely(match_int(&a->args[0], &n))) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			if (unlikely(n > AUFS_RDCACHE_MAX)) {
+				pr_err("rdcache must be smaller than %d\n",
+				       AUFS_RDCACHE_MAX);
+				break;
+			}
+			opt->rdcache = n;
+			err = 0;
+			opt->type = token;
+			break;
+		case Opt_rdblk:
+			if (unlikely(match_int(&a->args[0], &n)
+				     || n < 0
+				     || n > KMALLOC_MAX_SIZE)) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			if (unlikely(n && n < NAME_MAX)) {
+				pr_err("rdblk must be larger than %d\n",
+				       NAME_MAX);
+				break;
+			}
+			opt->rdblk = n;
+			err = 0;
+			opt->type = token;
+			break;
+		case Opt_rdhash:
+			if (unlikely(match_int(&a->args[0], &n)
+				     || n < 0
+				     || n * sizeof(struct hlist_head)
+				     > KMALLOC_MAX_SIZE)) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			opt->rdhash = n;
+			err = 0;
+			opt->type = token;
+			break;
+
+		case Opt_trunc_xino:
+		case Opt_notrunc_xino:
+		case Opt_noxino:
+		case Opt_trunc_xib:
+		case Opt_notrunc_xib:
+		case Opt_shwh:
+		case Opt_noshwh:
+		case Opt_dirperm1:
+		case Opt_nodirperm1:
+		case Opt_plink:
+		case Opt_noplink:
+		case Opt_list_plink:
+		case Opt_dio:
+		case Opt_nodio:
+		case Opt_diropq_a:
+		case Opt_diropq_w:
+		case Opt_warn_perm:
+		case Opt_nowarn_perm:
+		case Opt_verbose:
+		case Opt_noverbose:
+		case Opt_sum:
+		case Opt_nosum:
+		case Opt_wsum:
+		case Opt_rdblk_def:
+		case Opt_rdhash_def:
+		case Opt_dirren:
+		case Opt_nodirren:
+		case Opt_acl:
+		case Opt_noacl:
+			err = 0;
+			opt->type = token;
+			break;
+
+		case Opt_udba:
+			opt->udba = udba_val(a->args[0].from);
+			if (opt->udba >= 0) {
+				err = 0;
+				opt->type = token;
+			} else
+				pr_err("wrong value, %s\n", opt_str);
+			break;
+
+		case Opt_wbr_create:
+			u.create = &opt->wbr_create;
+			u.create->wbr_create
+				= au_wbr_create_val(a->args[0].from, u.create);
+			if (u.create->wbr_create >= 0) {
+				err = 0;
+				opt->type = token;
+			} else
+				pr_err("wrong value, %s\n", opt_str);
+			break;
+		case Opt_wbr_copyup:
+			opt->wbr_copyup = au_wbr_copyup_val(a->args[0].from);
+			if (opt->wbr_copyup >= 0) {
+				err = 0;
+				opt->type = token;
+			} else
+				pr_err("wrong value, %s\n", opt_str);
+			break;
+
+		case Opt_fhsm_sec:
+			if (unlikely(match_int(&a->args[0], &n)
+				     || n < 0)) {
+				pr_err("bad integer in %s\n", opt_str);
+				break;
+			}
+			if (sysaufs_brs) {
+				opt->fhsm_second = n;
+				opt->type = token;
+			} else
+				pr_warn("ignored %s\n", opt_str);
+			err = 0;
+			break;
+
+		case Opt_ignore:
+			pr_warn("ignored %s\n", opt_str);
+			/*FALLTHROUGH*/
+		case Opt_ignore_silent:
+			skipped = 1;
+			err = 0;
+			break;
+		case Opt_err:
+			pr_err("unknown option %s\n", opt_str);
+			break;
+		}
+
+		if (!err && !skipped) {
+			if (unlikely(++opt > opt_tail)) {
+				err = -E2BIG;
+				opt--;
+				opt->type = Opt_tail;
+				break;
+			}
+			opt->type = Opt_tail;
+		}
+	}
+
+	au_kfree_rcu(a);
+	dump_opts(opts);
+	if (unlikely(err))
+		au_opts_free(opts);
+
+out:
+	return err;
+}
+
+static int au_opt_wbr_create(struct super_block *sb,
+			     struct au_opt_wbr_create *create)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+
+	SiMustWriteLock(sb);
+
+	err = 1; /* handled */
+	sbinfo = au_sbi(sb);
+	if (sbinfo->si_wbr_create_ops->fin) {
+		err = sbinfo->si_wbr_create_ops->fin(sb);
+		if (!err)
+			err = 1;
+	}
+
+	sbinfo->si_wbr_create = create->wbr_create;
+	sbinfo->si_wbr_create_ops = au_wbr_create_ops + create->wbr_create;
+	switch (create->wbr_create) {
+	case AuWbrCreate_MFSRRV:
+	case AuWbrCreate_MFSRR:
+	case AuWbrCreate_TDMFS:
+	case AuWbrCreate_TDMFSV:
+	case AuWbrCreate_PMFSRR:
+	case AuWbrCreate_PMFSRRV:
+		sbinfo->si_wbr_mfs.mfsrr_watermark = create->mfsrr_watermark;
+		/*FALLTHROUGH*/
+	case AuWbrCreate_MFS:
+	case AuWbrCreate_MFSV:
+	case AuWbrCreate_PMFS:
+	case AuWbrCreate_PMFSV:
+		sbinfo->si_wbr_mfs.mfs_expire
+			= msecs_to_jiffies(create->mfs_second * MSEC_PER_SEC);
+		break;
+	}
+
+	if (sbinfo->si_wbr_create_ops->init)
+		sbinfo->si_wbr_create_ops->init(sb); /* ignore */
+
+	return err;
+}
+
+/*
+ * returns,
+ * plus: processed without an error
+ * zero: unprocessed
+ */
+static int au_opt_simple(struct super_block *sb, struct au_opt *opt,
+			 struct au_opts *opts)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+
+	SiMustWriteLock(sb);
+
+	err = 1; /* handled */
+	sbinfo = au_sbi(sb);
+	switch (opt->type) {
+	case Opt_udba:
+		sbinfo->si_mntflags &= ~AuOptMask_UDBA;
+		sbinfo->si_mntflags |= opt->udba;
+		opts->given_udba |= opt->udba;
+		break;
+
+	case Opt_plink:
+		au_opt_set(sbinfo->si_mntflags, PLINK);
+		break;
+	case Opt_noplink:
+		if (au_opt_test(sbinfo->si_mntflags, PLINK))
+			au_plink_put(sb, /*verbose*/1);
+		au_opt_clr(sbinfo->si_mntflags, PLINK);
+		break;
+	case Opt_list_plink:
+		if (au_opt_test(sbinfo->si_mntflags, PLINK))
+			au_plink_list(sb);
+		break;
+
+	case Opt_dio:
+		au_opt_set(sbinfo->si_mntflags, DIO);
+		au_fset_opts(opts->flags, REFRESH_DYAOP);
+		break;
+	case Opt_nodio:
+		au_opt_clr(sbinfo->si_mntflags, DIO);
+		au_fset_opts(opts->flags, REFRESH_DYAOP);
+		break;
+
+	case Opt_fhsm_sec:
+		au_fhsm_set(sbinfo, opt->fhsm_second);
+		break;
+
+	case Opt_diropq_a:
+		au_opt_set(sbinfo->si_mntflags, ALWAYS_DIROPQ);
+		break;
+	case Opt_diropq_w:
+		au_opt_clr(sbinfo->si_mntflags, ALWAYS_DIROPQ);
+		break;
+
+	case Opt_warn_perm:
+		au_opt_set(sbinfo->si_mntflags, WARN_PERM);
+		break;
+	case Opt_nowarn_perm:
+		au_opt_clr(sbinfo->si_mntflags, WARN_PERM);
+		break;
+
+	case Opt_verbose:
+		au_opt_set(sbinfo->si_mntflags, VERBOSE);
+		break;
+	case Opt_noverbose:
+		au_opt_clr(sbinfo->si_mntflags, VERBOSE);
+		break;
+
+	case Opt_sum:
+		au_opt_set(sbinfo->si_mntflags, SUM);
+		break;
+	case Opt_wsum:
+		au_opt_clr(sbinfo->si_mntflags, SUM);
+		au_opt_set(sbinfo->si_mntflags, SUM_W);
+		break;
+	case Opt_nosum:
+		au_opt_clr(sbinfo->si_mntflags, SUM);
+		au_opt_clr(sbinfo->si_mntflags, SUM_W);
+		break;
+
+	case Opt_wbr_create:
+		err = au_opt_wbr_create(sb, &opt->wbr_create);
+		break;
+	case Opt_wbr_copyup:
+		sbinfo->si_wbr_copyup = opt->wbr_copyup;
+		sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + opt->wbr_copyup;
+		break;
+
+	case Opt_dirwh:
+		sbinfo->si_dirwh = opt->dirwh;
+		break;
+
+	case Opt_rdcache:
+		sbinfo->si_rdcache
+			= msecs_to_jiffies(opt->rdcache * MSEC_PER_SEC);
+		break;
+	case Opt_rdblk:
+		sbinfo->si_rdblk = opt->rdblk;
+		break;
+	case Opt_rdblk_def:
+		sbinfo->si_rdblk = AUFS_RDBLK_DEF;
+		break;
+	case Opt_rdhash:
+		sbinfo->si_rdhash = opt->rdhash;
+		break;
+	case Opt_rdhash_def:
+		sbinfo->si_rdhash = AUFS_RDHASH_DEF;
+		break;
+
+	case Opt_shwh:
+		au_opt_set(sbinfo->si_mntflags, SHWH);
+		break;
+	case Opt_noshwh:
+		au_opt_clr(sbinfo->si_mntflags, SHWH);
+		break;
+
+	case Opt_dirperm1:
+		au_opt_set(sbinfo->si_mntflags, DIRPERM1);
+		break;
+	case Opt_nodirperm1:
+		au_opt_clr(sbinfo->si_mntflags, DIRPERM1);
+		break;
+
+	case Opt_trunc_xino:
+		au_opt_set(sbinfo->si_mntflags, TRUNC_XINO);
+		break;
+	case Opt_notrunc_xino:
+		au_opt_clr(sbinfo->si_mntflags, TRUNC_XINO);
+		break;
+
+	case Opt_trunc_xino_path:
+	case Opt_itrunc_xino:
+		err = au_xino_trunc(sb, opt->xino_itrunc.bindex,
+				    /*idx_begin*/0);
+		if (!err)
+			err = 1;
+		break;
+
+	case Opt_trunc_xib:
+		au_fset_opts(opts->flags, TRUNC_XIB);
+		break;
+	case Opt_notrunc_xib:
+		au_fclr_opts(opts->flags, TRUNC_XIB);
+		break;
+
+	case Opt_dirren:
+		err = 1;
+		if (!au_opt_test(sbinfo->si_mntflags, DIRREN)) {
+			err = au_dr_opt_set(sb);
+			if (!err)
+				err = 1;
+		}
+		if (err == 1)
+			au_opt_set(sbinfo->si_mntflags, DIRREN);
+		break;
+	case Opt_nodirren:
+		err = 1;
+		if (au_opt_test(sbinfo->si_mntflags, DIRREN)) {
+			err = au_dr_opt_clr(sb, au_ftest_opts(opts->flags,
+							      DR_FLUSHED));
+			if (!err)
+				err = 1;
+		}
+		if (err == 1)
+			au_opt_clr(sbinfo->si_mntflags, DIRREN);
+		break;
+
+	case Opt_acl:
+		sb->s_flags |= SB_POSIXACL;
+		break;
+	case Opt_noacl:
+		sb->s_flags &= ~SB_POSIXACL;
+		break;
+
+	default:
+		err = 0;
+		break;
+	}
+
+	return err;
+}
+
+/*
+ * returns tri-state.
+ * plus: processed without an error
+ * zero: unprocessed
+ * minus: error
+ */
+static int au_opt_br(struct super_block *sb, struct au_opt *opt,
+		     struct au_opts *opts)
+{
+	int err, do_refresh;
+
+	err = 0;
+	switch (opt->type) {
+	case Opt_append:
+		opt->add.bindex = au_sbbot(sb) + 1;
+		if (opt->add.bindex < 0)
+			opt->add.bindex = 0;
+		goto add;
+		/* Always goto add, not fallthrough */
+	case Opt_prepend:
+		opt->add.bindex = 0;
+		/* fallthrough */
+	add: /* indented label */
+	case Opt_add:
+		err = au_br_add(sb, &opt->add,
+				au_ftest_opts(opts->flags, REMOUNT));
+		if (!err) {
+			err = 1;
+			au_fset_opts(opts->flags, REFRESH);
+		}
+		break;
+
+	case Opt_del:
+	case Opt_idel:
+		err = au_br_del(sb, &opt->del,
+				au_ftest_opts(opts->flags, REMOUNT));
+		if (!err) {
+			err = 1;
+			au_fset_opts(opts->flags, TRUNC_XIB);
+			au_fset_opts(opts->flags, REFRESH);
+		}
+		break;
+
+	case Opt_mod:
+	case Opt_imod:
+		err = au_br_mod(sb, &opt->mod,
+				au_ftest_opts(opts->flags, REMOUNT),
+				&do_refresh);
+		if (!err) {
+			err = 1;
+			if (do_refresh)
+				au_fset_opts(opts->flags, REFRESH);
+		}
+		break;
+	}
+	return err;
+}
+
+static int au_opt_xino(struct super_block *sb, struct au_opt *opt,
+		       struct au_opt_xino **opt_xino,
+		       struct au_opts *opts)
+{
+	int err;
+
+	err = 0;
+	switch (opt->type) {
+	case Opt_xino:
+		err = au_xino_set(sb, &opt->xino,
+				  !!au_ftest_opts(opts->flags, REMOUNT));
+		if (unlikely(err))
+			break;
+
+		*opt_xino = &opt->xino;
+		break;
+
+	case Opt_noxino:
+		au_xino_clr(sb);
+		*opt_xino = (void *)-1;
+		break;
+	}
+
+	return err;
+}
+
+int au_opts_verify(struct super_block *sb, unsigned long sb_flags,
+		   unsigned int pending)
+{
+	int err, fhsm;
+	aufs_bindex_t bindex, bbot;
+	unsigned char do_plink, skip, do_free, can_no_dreval;
+	struct au_branch *br;
+	struct au_wbr *wbr;
+	struct dentry *root, *dentry;
+	struct inode *dir, *h_dir;
+	struct au_sbinfo *sbinfo;
+	struct au_hinode *hdir;
+
+	SiMustAnyLock(sb);
+
+	sbinfo = au_sbi(sb);
+	AuDebugOn(!(sbinfo->si_mntflags & AuOptMask_UDBA));
+
+	if (!(sb_flags & SB_RDONLY)) {
+		if (unlikely(!au_br_writable(au_sbr_perm(sb, 0))))
+			pr_warn("first branch should be rw\n");
+		if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH)))
+			pr_warn_once("shwh should be used with ro\n");
+	}
+
+	if (au_opt_test((sbinfo->si_mntflags | pending), UDBA_HNOTIFY)
+	    && !au_opt_test(sbinfo->si_mntflags, XINO))
+		pr_warn_once("udba=*notify requires xino\n");
+
+	if (au_opt_test(sbinfo->si_mntflags, DIRPERM1))
+		pr_warn_once("dirperm1 breaks the protection"
+			     " by the permission bits on the lower branch\n");
+
+	err = 0;
+	fhsm = 0;
+	root = sb->s_root;
+	dir = d_inode(root);
+	do_plink = !!au_opt_test(sbinfo->si_mntflags, PLINK);
+	can_no_dreval = !!au_opt_test((sbinfo->si_mntflags | pending),
+				      UDBA_NONE);
+	bbot = au_sbbot(sb);
+	for (bindex = 0; !err && bindex <= bbot; bindex++) {
+		skip = 0;
+		h_dir = au_h_iptr(dir, bindex);
+		br = au_sbr(sb, bindex);
+
+		if ((br->br_perm & AuBrAttr_ICEX)
+		    && !h_dir->i_op->listxattr)
+			br->br_perm &= ~AuBrAttr_ICEX;
+#if 0 /* untested */
+		if ((br->br_perm & AuBrAttr_ICEX_SEC)
+		    && (au_br_sb(br)->s_flags & SB_NOSEC))
+			br->br_perm &= ~AuBrAttr_ICEX_SEC;
+#endif
+
+		do_free = 0;
+		wbr = br->br_wbr;
+		if (wbr)
+			wbr_wh_read_lock(wbr);
+
+		if (!au_br_writable(br->br_perm)) {
+			do_free = !!wbr;
+			skip = (!wbr
+				|| (!wbr->wbr_whbase
+				    && !wbr->wbr_plink
+				    && !wbr->wbr_orph));
+		} else if (!au_br_wh_linkable(br->br_perm)) {
+			/* skip = (!br->br_whbase && !br->br_orph); */
+			skip = (!wbr || !wbr->wbr_whbase);
+			if (skip && wbr) {
+				if (do_plink)
+					skip = !!wbr->wbr_plink;
+				else
+					skip = !wbr->wbr_plink;
+			}
+		} else {
+			/* skip = (br->br_whbase && br->br_ohph); */
+			skip = (wbr && wbr->wbr_whbase);
+			if (skip) {
+				if (do_plink)
+					skip = !!wbr->wbr_plink;
+				else
+					skip = !wbr->wbr_plink;
+			}
+		}
+		if (wbr)
+			wbr_wh_read_unlock(wbr);
+
+		if (can_no_dreval) {
+			dentry = br->br_path.dentry;
+			spin_lock(&dentry->d_lock);
+			if (dentry->d_flags &
+			    (DCACHE_OP_REVALIDATE | DCACHE_OP_WEAK_REVALIDATE))
+				can_no_dreval = 0;
+			spin_unlock(&dentry->d_lock);
+		}
+
+		if (au_br_fhsm(br->br_perm)) {
+			fhsm++;
+			AuDebugOn(!br->br_fhsm);
+		}
+
+		if (skip)
+			continue;
+
+		hdir = au_hi(dir, bindex);
+		au_hn_inode_lock_nested(hdir, AuLsc_I_PARENT);
+		if (wbr)
+			wbr_wh_write_lock(wbr);
+		err = au_wh_init(br, sb);
+		if (wbr)
+			wbr_wh_write_unlock(wbr);
+		au_hn_inode_unlock(hdir);
+
+		if (!err && do_free) {
+			au_kfree_rcu(wbr);
+			br->br_wbr = NULL;
+		}
+	}
+
+	if (can_no_dreval)
+		au_fset_si(sbinfo, NO_DREVAL);
+	else
+		au_fclr_si(sbinfo, NO_DREVAL);
+
+	if (fhsm >= 2) {
+		au_fset_si(sbinfo, FHSM);
+		for (bindex = bbot; bindex >= 0; bindex--) {
+			br = au_sbr(sb, bindex);
+			if (au_br_fhsm(br->br_perm)) {
+				au_fhsm_set_bottom(sb, bindex);
+				break;
+			}
+		}
+	} else {
+		au_fclr_si(sbinfo, FHSM);
+		au_fhsm_set_bottom(sb, -1);
+	}
+
+	return err;
+}
+
+int au_opts_mount(struct super_block *sb, struct au_opts *opts)
+{
+	int err;
+	unsigned int tmp;
+	aufs_bindex_t bindex, bbot;
+	struct au_opt *opt;
+	struct au_opt_xino *opt_xino, xino;
+	struct au_sbinfo *sbinfo;
+	struct au_branch *br;
+	struct inode *dir;
+
+	SiMustWriteLock(sb);
+
+	err = 0;
+	opt_xino = NULL;
+	opt = opts->opt;
+	while (err >= 0 && opt->type != Opt_tail)
+		err = au_opt_simple(sb, opt++, opts);
+	if (err > 0)
+		err = 0;
+	else if (unlikely(err < 0))
+		goto out;
+
+	/* disable xino and udba temporary */
+	sbinfo = au_sbi(sb);
+	tmp = sbinfo->si_mntflags;
+	au_opt_clr(sbinfo->si_mntflags, XINO);
+	au_opt_set_udba(sbinfo->si_mntflags, UDBA_REVAL);
+
+	opt = opts->opt;
+	while (err >= 0 && opt->type != Opt_tail)
+		err = au_opt_br(sb, opt++, opts);
+	if (err > 0)
+		err = 0;
+	else if (unlikely(err < 0))
+		goto out;
+
+	bbot = au_sbbot(sb);
+	if (unlikely(bbot < 0)) {
+		err = -EINVAL;
+		pr_err("no branches\n");
+		goto out;
+	}
+
+	if (au_opt_test(tmp, XINO))
+		au_opt_set(sbinfo->si_mntflags, XINO);
+	opt = opts->opt;
+	while (!err && opt->type != Opt_tail)
+		err = au_opt_xino(sb, opt++, &opt_xino, opts);
+	if (unlikely(err))
+		goto out;
+
+	err = au_opts_verify(sb, sb->s_flags, tmp);
+	if (unlikely(err))
+		goto out;
+
+	/* restore xino */
+	if (au_opt_test(tmp, XINO) && !opt_xino) {
+		xino.file = au_xino_def(sb);
+		err = PTR_ERR(xino.file);
+		if (IS_ERR(xino.file))
+			goto out;
+
+		err = au_xino_set(sb, &xino, /*remount*/0);
+		fput(xino.file);
+		if (unlikely(err))
+			goto out;
+	}
+
+	/* restore udba */
+	tmp &= AuOptMask_UDBA;
+	sbinfo->si_mntflags &= ~AuOptMask_UDBA;
+	sbinfo->si_mntflags |= tmp;
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		err = au_hnotify_reset_br(tmp, br, br->br_perm);
+		if (unlikely(err))
+			AuIOErr("hnotify failed on br %d, %d, ignored\n",
+				bindex, err);
+		/* go on even if err */
+	}
+	if (au_opt_test(tmp, UDBA_HNOTIFY)) {
+		dir = d_inode(sb->s_root);
+		au_hn_reset(dir, au_hi_flags(dir, /*isdir*/1) & ~AuHi_XINO);
+	}
+
+out:
+	return err;
+}
+
+int au_opts_remount(struct super_block *sb, struct au_opts *opts)
+{
+	int err, rerr;
+	unsigned char no_dreval;
+	struct inode *dir;
+	struct au_opt_xino *opt_xino;
+	struct au_opt *opt;
+	struct au_sbinfo *sbinfo;
+
+	SiMustWriteLock(sb);
+
+	err = au_dr_opt_flush(sb);
+	if (unlikely(err))
+		goto out;
+	au_fset_opts(opts->flags, DR_FLUSHED);
+
+	dir = d_inode(sb->s_root);
+	sbinfo = au_sbi(sb);
+	opt_xino = NULL;
+	opt = opts->opt;
+	while (err >= 0 && opt->type != Opt_tail) {
+		err = au_opt_simple(sb, opt, opts);
+		if (!err)
+			err = au_opt_br(sb, opt, opts);
+		if (!err)
+			err = au_opt_xino(sb, opt, &opt_xino, opts);
+		opt++;
+	}
+	if (err > 0)
+		err = 0;
+	AuTraceErr(err);
+	/* go on even err */
+
+	no_dreval = !!au_ftest_si(sbinfo, NO_DREVAL);
+	rerr = au_opts_verify(sb, opts->sb_flags, /*pending*/0);
+	if (unlikely(rerr && !err))
+		err = rerr;
+
+	if (no_dreval != !!au_ftest_si(sbinfo, NO_DREVAL))
+		au_fset_opts(opts->flags, REFRESH_IDOP);
+
+	if (au_ftest_opts(opts->flags, TRUNC_XIB)) {
+		rerr = au_xib_trunc(sb);
+		if (unlikely(rerr && !err))
+			err = rerr;
+	}
+
+	/* will be handled by the caller */
+	if (!au_ftest_opts(opts->flags, REFRESH)
+	    && (opts->given_udba
+		|| au_opt_test(sbinfo->si_mntflags, XINO)
+		|| au_ftest_opts(opts->flags, REFRESH_IDOP)
+		    ))
+		au_fset_opts(opts->flags, REFRESH);
+
+	AuDbg("status 0x%x\n", opts->flags);
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+unsigned int au_opt_udba(struct super_block *sb)
+{
+	return au_mntflags(sb) & AuOptMask_UDBA;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/opts.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/opts.h
@@ -0,0 +1,225 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * mount options/flags
+ */
+
+#ifndef __AUFS_OPTS_H__
+#define __AUFS_OPTS_H__
+
+#ifdef __KERNEL__
+
+#include <linux/path.h>
+
+struct file;
+
+/* ---------------------------------------------------------------------- */
+
+/* mount flags */
+#define AuOpt_XINO		1		/* external inode number bitmap
+						   and translation table */
+#define AuOpt_TRUNC_XINO	(1 << 1)	/* truncate xino files */
+#define AuOpt_UDBA_NONE		(1 << 2)	/* users direct branch access */
+#define AuOpt_UDBA_REVAL	(1 << 3)
+#define AuOpt_UDBA_HNOTIFY	(1 << 4)
+#define AuOpt_SHWH		(1 << 5)	/* show whiteout */
+#define AuOpt_PLINK		(1 << 6)	/* pseudo-link */
+#define AuOpt_DIRPERM1		(1 << 7)	/* ignore the lower dir's perm
+						   bits */
+#define AuOpt_ALWAYS_DIROPQ	(1 << 9)	/* policy to creating diropq */
+#define AuOpt_SUM		(1 << 10)	/* summation for statfs(2) */
+#define AuOpt_SUM_W		(1 << 11)	/* unimplemented */
+#define AuOpt_WARN_PERM		(1 << 12)	/* warn when add-branch */
+#define AuOpt_VERBOSE		(1 << 13)	/* print the cause of error */
+#define AuOpt_DIO		(1 << 14)	/* direct io */
+#define AuOpt_DIRREN		(1 << 15)	/* directory rename */
+
+#ifndef CONFIG_AUFS_HNOTIFY
+#undef AuOpt_UDBA_HNOTIFY
+#define AuOpt_UDBA_HNOTIFY	0
+#endif
+#ifndef CONFIG_AUFS_DIRREN
+#undef AuOpt_DIRREN
+#define AuOpt_DIRREN		0
+#endif
+#ifndef CONFIG_AUFS_SHWH
+#undef AuOpt_SHWH
+#define AuOpt_SHWH		0
+#endif
+
+#define AuOpt_Def	(AuOpt_XINO \
+			 | AuOpt_UDBA_REVAL \
+			 | AuOpt_PLINK \
+			 /* | AuOpt_DIRPERM1 */ \
+			 | AuOpt_WARN_PERM)
+#define AuOptMask_UDBA	(AuOpt_UDBA_NONE \
+			 | AuOpt_UDBA_REVAL \
+			 | AuOpt_UDBA_HNOTIFY)
+
+#define au_opt_test(flags, name)	(flags & AuOpt_##name)
+#define au_opt_set(flags, name) do { \
+	BUILD_BUG_ON(AuOpt_##name & AuOptMask_UDBA); \
+	((flags) |= AuOpt_##name); \
+} while (0)
+#define au_opt_set_udba(flags, name) do { \
+	(flags) &= ~AuOptMask_UDBA; \
+	((flags) |= AuOpt_##name); \
+} while (0)
+#define au_opt_clr(flags, name) do { \
+	((flags) &= ~AuOpt_##name); \
+} while (0)
+
+static inline unsigned int au_opts_plink(unsigned int mntflags)
+{
+#ifdef CONFIG_PROC_FS
+	return mntflags;
+#else
+	return mntflags & ~AuOpt_PLINK;
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* policies to select one among multiple writable branches */
+enum {
+	AuWbrCreate_TDP,	/* top down parent */
+	AuWbrCreate_RR,		/* round robin */
+	AuWbrCreate_MFS,	/* most free space */
+	AuWbrCreate_MFSV,	/* mfs with seconds */
+	AuWbrCreate_MFSRR,	/* mfs then rr */
+	AuWbrCreate_MFSRRV,	/* mfs then rr with seconds */
+	AuWbrCreate_TDMFS,	/* top down regardless parent and mfs */
+	AuWbrCreate_TDMFSV,	/* top down regardless parent and mfs */
+	AuWbrCreate_PMFS,	/* parent and mfs */
+	AuWbrCreate_PMFSV,	/* parent and mfs with seconds */
+	AuWbrCreate_PMFSRR,	/* parent, mfs and round-robin */
+	AuWbrCreate_PMFSRRV,	/* plus seconds */
+
+	AuWbrCreate_Def = AuWbrCreate_TDP
+};
+
+enum {
+	AuWbrCopyup_TDP,	/* top down parent */
+	AuWbrCopyup_BUP,	/* bottom up parent */
+	AuWbrCopyup_BU,		/* bottom up */
+
+	AuWbrCopyup_Def = AuWbrCopyup_TDP
+};
+
+/* ---------------------------------------------------------------------- */
+
+struct au_opt_add {
+	aufs_bindex_t	bindex;
+	char		*pathname;
+	int		perm;
+	struct path	path;
+};
+
+struct au_opt_del {
+	char		*pathname;
+	struct path	h_path;
+};
+
+struct au_opt_mod {
+	char		*path;
+	int		perm;
+	struct dentry	*h_root;
+};
+
+struct au_opt_xino {
+	char		*path;
+	struct file	*file;
+};
+
+struct au_opt_xino_itrunc {
+	aufs_bindex_t	bindex;
+};
+
+struct au_opt_wbr_create {
+	int			wbr_create;
+	int			mfs_second;
+	unsigned long long	mfsrr_watermark;
+};
+
+struct au_opt {
+	int type;
+	union {
+		struct au_opt_xino	xino;
+		struct au_opt_xino_itrunc xino_itrunc;
+		struct au_opt_add	add;
+		struct au_opt_del	del;
+		struct au_opt_mod	mod;
+		int			dirwh;
+		int			rdcache;
+		unsigned int		rdblk;
+		unsigned int		rdhash;
+		int			udba;
+		struct au_opt_wbr_create wbr_create;
+		int			wbr_copyup;
+		unsigned int		fhsm_second;
+	};
+};
+
+/* opts flags */
+#define AuOpts_REMOUNT		1
+#define AuOpts_REFRESH		(1 << 1)
+#define AuOpts_TRUNC_XIB	(1 << 2)
+#define AuOpts_REFRESH_DYAOP	(1 << 3)
+#define AuOpts_REFRESH_IDOP	(1 << 4)
+#define AuOpts_DR_FLUSHED	(1 << 5)
+#define au_ftest_opts(flags, name)	((flags) & AuOpts_##name)
+#define au_fset_opts(flags, name) \
+	do { (flags) |= AuOpts_##name; } while (0)
+#define au_fclr_opts(flags, name) \
+	do { (flags) &= ~AuOpts_##name; } while (0)
+
+#ifndef CONFIG_AUFS_DIRREN
+#undef AuOpts_DR_FLUSHED
+#define AuOpts_DR_FLUSHED	0
+#endif
+
+struct au_opts {
+	struct au_opt	*opt;
+	int		max_opt;
+
+	unsigned int	given_udba;
+	unsigned int	flags;
+	unsigned long	sb_flags;
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* opts.c */
+void au_optstr_br_perm(au_br_perm_str_t *str, int perm);
+const char *au_optstr_udba(int udba);
+const char *au_optstr_wbr_copyup(int wbr_copyup);
+const char *au_optstr_wbr_create(int wbr_create);
+
+void au_opts_free(struct au_opts *opts);
+struct super_block;
+int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts);
+int au_opts_verify(struct super_block *sb, unsigned long sb_flags,
+		   unsigned int pending);
+int au_opts_mount(struct super_block *sb, struct au_opts *opts);
+int au_opts_remount(struct super_block *sb, struct au_opts *opts);
+
+unsigned int au_opt_udba(struct super_block *sb);
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_OPTS_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/plink.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/plink.c
@@ -0,0 +1,516 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * pseudo-link
+ */
+
+#include "aufs.h"
+
+/*
+ * the pseudo-link maintenance mode.
+ * during a user process maintains the pseudo-links,
+ * prohibit adding a new plink and branch manipulation.
+ *
+ * Flags
+ * NOPLM:
+ *	For entry functions which will handle plink, and i_mutex is already held
+ *	in VFS.
+ *	They cannot wait and should return an error at once.
+ *	Callers has to check the error.
+ * NOPLMW:
+ *	For entry functions which will handle plink, but i_mutex is not held
+ *	in VFS.
+ *	They can wait the plink maintenance mode to finish.
+ *
+ * They behave like F_SETLK and F_SETLKW.
+ * If the caller never handle plink, then both flags are unnecessary.
+ */
+
+int au_plink_maint(struct super_block *sb, int flags)
+{
+	int err;
+	pid_t pid, ppid;
+	struct task_struct *parent, *prev;
+	struct au_sbinfo *sbi;
+
+	SiMustAnyLock(sb);
+
+	err = 0;
+	if (!au_opt_test(au_mntflags(sb), PLINK))
+		goto out;
+
+	sbi = au_sbi(sb);
+	pid = sbi->si_plink_maint_pid;
+	if (!pid || pid == current->pid)
+		goto out;
+
+	/* todo: it highly depends upon /sbin/mount.aufs */
+	prev = NULL;
+	parent = current;
+	ppid = 0;
+	rcu_read_lock();
+	while (1) {
+		parent = rcu_dereference(parent->real_parent);
+		if (parent == prev)
+			break;
+		ppid = task_pid_vnr(parent);
+		if (pid == ppid) {
+			rcu_read_unlock();
+			goto out;
+		}
+		prev = parent;
+	}
+	rcu_read_unlock();
+
+	if (au_ftest_lock(flags, NOPLMW)) {
+		/* if there is no i_mutex lock in VFS, we don't need to wait */
+		/* AuDebugOn(!lockdep_depth(current)); */
+		while (sbi->si_plink_maint_pid) {
+			si_read_unlock(sb);
+			/* gave up wake_up_bit() */
+			wait_event(sbi->si_plink_wq, !sbi->si_plink_maint_pid);
+
+			if (au_ftest_lock(flags, FLUSH))
+				au_nwt_flush(&sbi->si_nowait);
+			si_noflush_read_lock(sb);
+		}
+	} else if (au_ftest_lock(flags, NOPLM)) {
+		AuDbg("ppid %d, pid %d\n", ppid, pid);
+		err = -EAGAIN;
+	}
+
+out:
+	return err;
+}
+
+void au_plink_maint_leave(struct au_sbinfo *sbinfo)
+{
+	spin_lock(&sbinfo->si_plink_maint_lock);
+	sbinfo->si_plink_maint_pid = 0;
+	spin_unlock(&sbinfo->si_plink_maint_lock);
+	wake_up_all(&sbinfo->si_plink_wq);
+}
+
+int au_plink_maint_enter(struct super_block *sb)
+{
+	int err;
+	struct au_sbinfo *sbinfo;
+
+	err = 0;
+	sbinfo = au_sbi(sb);
+	/* make sure i am the only one in this fs */
+	si_write_lock(sb, AuLock_FLUSH);
+	if (au_opt_test(au_mntflags(sb), PLINK)) {
+		spin_lock(&sbinfo->si_plink_maint_lock);
+		if (!sbinfo->si_plink_maint_pid)
+			sbinfo->si_plink_maint_pid = current->pid;
+		else
+			err = -EBUSY;
+		spin_unlock(&sbinfo->si_plink_maint_lock);
+	}
+	si_write_unlock(sb);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_DEBUG
+void au_plink_list(struct super_block *sb)
+{
+	int i;
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	struct au_icntnr *icntnr;
+
+	SiMustAnyLock(sb);
+
+	sbinfo = au_sbi(sb);
+	AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+	AuDebugOn(au_plink_maint(sb, AuLock_NOPLM));
+
+	for (i = 0; i < AuPlink_NHASH; i++) {
+		hbl = sbinfo->si_plink + i;
+		hlist_bl_lock(hbl);
+		hlist_bl_for_each_entry(icntnr, pos, hbl, plink)
+			AuDbg("%lu\n", icntnr->vfs_inode.i_ino);
+		hlist_bl_unlock(hbl);
+	}
+}
+#endif
+
+/* is the inode pseudo-linked? */
+int au_plink_test(struct inode *inode)
+{
+	int found, i;
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	struct au_icntnr *icntnr;
+
+	sbinfo = au_sbi(inode->i_sb);
+	AuRwMustAnyLock(&sbinfo->si_rwsem);
+	AuDebugOn(!au_opt_test(au_mntflags(inode->i_sb), PLINK));
+	AuDebugOn(au_plink_maint(inode->i_sb, AuLock_NOPLM));
+
+	found = 0;
+	i = au_plink_hash(inode->i_ino);
+	hbl =  sbinfo->si_plink + i;
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(icntnr, pos, hbl, plink)
+		if (&icntnr->vfs_inode == inode) {
+			found = 1;
+			break;
+		}
+	hlist_bl_unlock(hbl);
+	return found;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * generate a name for plink.
+ * the file will be stored under AUFS_WH_PLINKDIR.
+ */
+/* 20 is max digits length of ulong 64 */
+#define PLINK_NAME_LEN	((20 + 1) * 2)
+
+static int plink_name(char *name, int len, struct inode *inode,
+		      aufs_bindex_t bindex)
+{
+	int rlen;
+	struct inode *h_inode;
+
+	h_inode = au_h_iptr(inode, bindex);
+	rlen = snprintf(name, len, "%lu.%lu", inode->i_ino, h_inode->i_ino);
+	return rlen;
+}
+
+struct au_do_plink_lkup_args {
+	struct dentry **errp;
+	struct qstr *tgtname;
+	struct dentry *h_parent;
+	struct au_branch *br;
+};
+
+static struct dentry *au_do_plink_lkup(struct qstr *tgtname,
+				       struct dentry *h_parent,
+				       struct au_branch *br)
+{
+	struct dentry *h_dentry;
+	struct inode *h_inode;
+
+	h_inode = d_inode(h_parent);
+	inode_lock_shared_nested(h_inode, AuLsc_I_CHILD2);
+	h_dentry = vfsub_lkup_one(tgtname, h_parent);
+	inode_unlock_shared(h_inode);
+	return h_dentry;
+}
+
+static void au_call_do_plink_lkup(void *args)
+{
+	struct au_do_plink_lkup_args *a = args;
+	*a->errp = au_do_plink_lkup(a->tgtname, a->h_parent, a->br);
+}
+
+/* lookup the plink-ed @inode under the branch at @bindex */
+struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex)
+{
+	struct dentry *h_dentry, *h_parent;
+	struct au_branch *br;
+	int wkq_err;
+	char a[PLINK_NAME_LEN];
+	struct qstr tgtname = QSTR_INIT(a, 0);
+
+	AuDebugOn(au_plink_maint(inode->i_sb, AuLock_NOPLM));
+
+	br = au_sbr(inode->i_sb, bindex);
+	h_parent = br->br_wbr->wbr_plink;
+	tgtname.len = plink_name(a, sizeof(a), inode, bindex);
+
+	if (!uid_eq(current_fsuid(), GLOBAL_ROOT_UID)) {
+		struct au_do_plink_lkup_args args = {
+			.errp		= &h_dentry,
+			.tgtname	= &tgtname,
+			.h_parent	= h_parent,
+			.br		= br
+		};
+
+		wkq_err = au_wkq_wait(au_call_do_plink_lkup, &args);
+		if (unlikely(wkq_err))
+			h_dentry = ERR_PTR(wkq_err);
+	} else
+		h_dentry = au_do_plink_lkup(&tgtname, h_parent, br);
+
+	return h_dentry;
+}
+
+/* create a pseudo-link */
+static int do_whplink(struct qstr *tgt, struct dentry *h_parent,
+		      struct dentry *h_dentry, struct au_branch *br)
+{
+	int err;
+	struct path h_path = {
+		.mnt = au_br_mnt(br)
+	};
+	struct inode *h_dir, *delegated;
+
+	h_dir = d_inode(h_parent);
+	inode_lock_nested(h_dir, AuLsc_I_CHILD2);
+again:
+	h_path.dentry = vfsub_lkup_one(tgt, h_parent);
+	err = PTR_ERR(h_path.dentry);
+	if (IS_ERR(h_path.dentry))
+		goto out;
+
+	err = 0;
+	/* wh.plink dir is not monitored */
+	/* todo: is it really safe? */
+	if (d_is_positive(h_path.dentry)
+	    && d_inode(h_path.dentry) != d_inode(h_dentry)) {
+		delegated = NULL;
+		err = vfsub_unlink(h_dir, &h_path, &delegated, /*force*/0);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal unlink\n");
+			iput(delegated);
+		}
+		dput(h_path.dentry);
+		h_path.dentry = NULL;
+		if (!err)
+			goto again;
+	}
+	if (!err && d_is_negative(h_path.dentry)) {
+		delegated = NULL;
+		err = vfsub_link(h_dentry, h_dir, &h_path, &delegated);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal link\n");
+			iput(delegated);
+		}
+	}
+	dput(h_path.dentry);
+
+out:
+	inode_unlock(h_dir);
+	return err;
+}
+
+struct do_whplink_args {
+	int *errp;
+	struct qstr *tgt;
+	struct dentry *h_parent;
+	struct dentry *h_dentry;
+	struct au_branch *br;
+};
+
+static void call_do_whplink(void *args)
+{
+	struct do_whplink_args *a = args;
+	*a->errp = do_whplink(a->tgt, a->h_parent, a->h_dentry, a->br);
+}
+
+static int whplink(struct dentry *h_dentry, struct inode *inode,
+		   aufs_bindex_t bindex, struct au_branch *br)
+{
+	int err, wkq_err;
+	struct au_wbr *wbr;
+	struct dentry *h_parent;
+	char a[PLINK_NAME_LEN];
+	struct qstr tgtname = QSTR_INIT(a, 0);
+
+	wbr = au_sbr(inode->i_sb, bindex)->br_wbr;
+	h_parent = wbr->wbr_plink;
+	tgtname.len = plink_name(a, sizeof(a), inode, bindex);
+
+	/* always superio. */
+	if (!uid_eq(current_fsuid(), GLOBAL_ROOT_UID)) {
+		struct do_whplink_args args = {
+			.errp		= &err,
+			.tgt		= &tgtname,
+			.h_parent	= h_parent,
+			.h_dentry	= h_dentry,
+			.br		= br
+		};
+		wkq_err = au_wkq_wait(call_do_whplink, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	} else
+		err = do_whplink(&tgtname, h_parent, h_dentry, br);
+
+	return err;
+}
+
+/*
+ * create a new pseudo-link for @h_dentry on @bindex.
+ * the linked inode is held in aufs @inode.
+ */
+void au_plink_append(struct inode *inode, aufs_bindex_t bindex,
+		     struct dentry *h_dentry)
+{
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	struct au_icntnr *icntnr;
+	int found, err, cnt, i;
+
+	sb = inode->i_sb;
+	sbinfo = au_sbi(sb);
+	AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+	AuDebugOn(au_plink_maint(sb, AuLock_NOPLM));
+
+	found = au_plink_test(inode);
+	if (found)
+		return;
+
+	i = au_plink_hash(inode->i_ino);
+	hbl = sbinfo->si_plink + i;
+	au_igrab(inode);
+
+	hlist_bl_lock(hbl);
+	hlist_bl_for_each_entry(icntnr, pos, hbl, plink) {
+		if (&icntnr->vfs_inode == inode) {
+			found = 1;
+			break;
+		}
+	}
+	if (!found) {
+		icntnr = container_of(inode, struct au_icntnr, vfs_inode);
+		hlist_bl_add_head(&icntnr->plink, hbl);
+	}
+	hlist_bl_unlock(hbl);
+	if (!found) {
+		cnt = au_hbl_count(hbl);
+#define msg "unexpectedly unbalanced or too many pseudo-links"
+		if (cnt > AUFS_PLINK_WARN)
+			AuWarn1(msg ", %d\n", cnt);
+#undef msg
+		err = whplink(h_dentry, inode, bindex, au_sbr(sb, bindex));
+		if (unlikely(err)) {
+			pr_warn("err %d, damaged pseudo link.\n", err);
+			au_hbl_del(&icntnr->plink, hbl);
+			iput(&icntnr->vfs_inode);
+		}
+	} else
+		iput(&icntnr->vfs_inode);
+}
+
+/* free all plinks */
+void au_plink_put(struct super_block *sb, int verbose)
+{
+	int i, warned;
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos, *tmp;
+	struct au_icntnr *icntnr;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+	AuDebugOn(au_plink_maint(sb, AuLock_NOPLM));
+
+	/* no spin_lock since sbinfo is write-locked */
+	warned = 0;
+	for (i = 0; i < AuPlink_NHASH; i++) {
+		hbl = sbinfo->si_plink + i;
+		if (!warned && verbose && !hlist_bl_empty(hbl)) {
+			pr_warn("pseudo-link is not flushed");
+			warned = 1;
+		}
+		hlist_bl_for_each_entry_safe(icntnr, pos, tmp, hbl, plink)
+			iput(&icntnr->vfs_inode);
+		INIT_HLIST_BL_HEAD(hbl);
+	}
+}
+
+void au_plink_clean(struct super_block *sb, int verbose)
+{
+	struct dentry *root;
+
+	root = sb->s_root;
+	aufs_write_lock(root);
+	if (au_opt_test(au_mntflags(sb), PLINK))
+		au_plink_put(sb, verbose);
+	aufs_write_unlock(root);
+}
+
+static int au_plink_do_half_refresh(struct inode *inode, aufs_bindex_t br_id)
+{
+	int do_put;
+	aufs_bindex_t btop, bbot, bindex;
+
+	do_put = 0;
+	btop = au_ibtop(inode);
+	bbot = au_ibbot(inode);
+	if (btop >= 0) {
+		for (bindex = btop; bindex <= bbot; bindex++) {
+			if (!au_h_iptr(inode, bindex)
+			    || au_ii_br_id(inode, bindex) != br_id)
+				continue;
+			au_set_h_iptr(inode, bindex, NULL, 0);
+			do_put = 1;
+			break;
+		}
+		if (do_put)
+			for (bindex = btop; bindex <= bbot; bindex++)
+				if (au_h_iptr(inode, bindex)) {
+					do_put = 0;
+					break;
+				}
+	} else
+		do_put = 1;
+
+	return do_put;
+}
+
+/* free the plinks on a branch specified by @br_id */
+void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id)
+{
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos, *tmp;
+	struct au_icntnr *icntnr;
+	struct inode *inode;
+	int i, do_put;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+	AuDebugOn(au_plink_maint(sb, AuLock_NOPLM));
+
+	/* no bit_lock since sbinfo is write-locked */
+	for (i = 0; i < AuPlink_NHASH; i++) {
+		hbl = sbinfo->si_plink + i;
+		hlist_bl_for_each_entry_safe(icntnr, pos, tmp, hbl, plink) {
+			inode = au_igrab(&icntnr->vfs_inode);
+			ii_write_lock_child(inode);
+			do_put = au_plink_do_half_refresh(inode, br_id);
+			if (do_put) {
+				hlist_bl_del(&icntnr->plink);
+				iput(inode);
+			}
+			ii_write_unlock(inode);
+			iput(inode);
+		}
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/poll.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/poll.c
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * poll operation
+ * There is only one filesystem which implements ->poll operation, currently.
+ */
+
+#include "aufs.h"
+
+__poll_t aufs_poll(struct file *file, struct poll_table_struct *pt)
+{
+	__poll_t mask;
+	struct file *h_file;
+	struct super_block *sb;
+
+	/* We should pretend an error happened. */
+	mask = EPOLLERR /* | EPOLLIN | EPOLLOUT */;
+	sb = file->f_path.dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLMW);
+
+	h_file = au_read_pre(file, /*keep_fi*/0, /*lsc*/0);
+	if (IS_ERR(h_file)) {
+		AuDbg("h_file %ld\n", PTR_ERR(h_file));
+		goto out;
+	}
+
+	mask = vfs_poll(h_file, pt);
+	fput(h_file); /* instead of au_read_post() */
+
+out:
+	si_read_unlock(sb);
+	if (mask & EPOLLERR)
+		AuDbg("mask 0x%x\n", mask);
+	return mask;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/posix_acl.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/posix_acl.c
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2014-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * posix acl operations
+ */
+
+#include <linux/fs.h>
+#include "aufs.h"
+
+struct posix_acl *aufs_get_acl(struct inode *inode, int type)
+{
+	struct posix_acl *acl;
+	int err;
+	aufs_bindex_t bindex;
+	struct inode *h_inode;
+	struct super_block *sb;
+
+	acl = NULL;
+	sb = inode->i_sb;
+	si_read_lock(sb, AuLock_FLUSH);
+	ii_read_lock_child(inode);
+	if (!(sb->s_flags & SB_POSIXACL))
+		goto out;
+
+	bindex = au_ibtop(inode);
+	h_inode = au_h_iptr(inode, bindex);
+	if (unlikely(!h_inode
+		     || ((h_inode->i_mode & S_IFMT)
+			 != (inode->i_mode & S_IFMT)))) {
+		err = au_busy_or_stale();
+		acl = ERR_PTR(err);
+		goto out;
+	}
+
+	/* always topmost only */
+	acl = get_acl(h_inode, type);
+	if (IS_ERR(acl))
+		forget_cached_acl(inode, type);
+	else
+		set_cached_acl(inode, type, acl);
+
+out:
+	ii_read_unlock(inode);
+	si_read_unlock(sb);
+
+	AuTraceErrPtr(acl);
+	return acl;
+}
+
+int aufs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
+{
+	int err;
+	ssize_t ssz;
+	struct dentry *dentry;
+	struct au_sxattr arg = {
+		.type = AU_ACL_SET,
+		.u.acl_set = {
+			.acl	= acl,
+			.type	= type
+		},
+	};
+
+	IMustLock(inode);
+
+	if (inode->i_ino == AUFS_ROOT_INO)
+		dentry = dget(inode->i_sb->s_root);
+	else {
+		dentry = d_find_alias(inode);
+		if (!dentry)
+			dentry = d_find_any_alias(inode);
+		if (!dentry) {
+			pr_warn("cannot handle this inode, "
+				"please report to aufs-users ML\n");
+			err = -ENOENT;
+			goto out;
+		}
+	}
+
+	ssz = au_sxattr(dentry, inode, &arg);
+	/* forget even it if succeeds since the branch might set differently */
+	forget_cached_acl(inode, type);
+	dput(dentry);
+	err = ssz;
+	if (ssz >= 0)
+		err = 0;
+
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/procfs.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/procfs.c
@@ -0,0 +1,171 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2010-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * procfs interfaces
+ */
+
+#include <linux/proc_fs.h>
+#include "aufs.h"
+
+static int au_procfs_plm_release(struct inode *inode, struct file *file)
+{
+	struct au_sbinfo *sbinfo;
+
+	sbinfo = file->private_data;
+	if (sbinfo) {
+		au_plink_maint_leave(sbinfo);
+		kobject_put(&sbinfo->si_kobj);
+	}
+
+	return 0;
+}
+
+static void au_procfs_plm_write_clean(struct file *file)
+{
+	struct au_sbinfo *sbinfo;
+
+	sbinfo = file->private_data;
+	if (sbinfo)
+		au_plink_clean(sbinfo->si_sb, /*verbose*/0);
+}
+
+static int au_procfs_plm_write_si(struct file *file, unsigned long id)
+{
+	int err;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_node *pos;
+
+	err = -EBUSY;
+	if (unlikely(file->private_data))
+		goto out;
+
+	sb = NULL;
+	/* don't use au_sbilist_lock() here */
+	hlist_bl_lock(&au_sbilist);
+	hlist_bl_for_each_entry(sbinfo, pos, &au_sbilist, si_list)
+		if (id == sysaufs_si_id(sbinfo)) {
+			if (kobject_get_unless_zero(&sbinfo->si_kobj))
+				sb = sbinfo->si_sb;
+			break;
+		}
+	hlist_bl_unlock(&au_sbilist);
+
+	err = -EINVAL;
+	if (unlikely(!sb))
+		goto out;
+
+	err = au_plink_maint_enter(sb);
+	if (!err)
+		/* keep kobject_get() */
+		file->private_data = sbinfo;
+	else
+		kobject_put(&sbinfo->si_kobj);
+out:
+	return err;
+}
+
+/*
+ * Accept a valid "si=xxxx" only.
+ * Once it is accepted successfully, accept "clean" too.
+ */
+static ssize_t au_procfs_plm_write(struct file *file, const char __user *ubuf,
+				   size_t count, loff_t *ppos)
+{
+	ssize_t err;
+	unsigned long id;
+	/* last newline is allowed */
+	char buf[3 + sizeof(unsigned long) * 2 + 1];
+
+	err = -EACCES;
+	if (unlikely(!capable(CAP_SYS_ADMIN)))
+		goto out;
+
+	err = -EINVAL;
+	if (unlikely(count > sizeof(buf)))
+		goto out;
+
+	err = copy_from_user(buf, ubuf, count);
+	if (unlikely(err)) {
+		err = -EFAULT;
+		goto out;
+	}
+	buf[count] = 0;
+
+	err = -EINVAL;
+	if (!strcmp("clean", buf)) {
+		au_procfs_plm_write_clean(file);
+		goto out_success;
+	} else if (unlikely(strncmp("si=", buf, 3)))
+		goto out;
+
+	err = kstrtoul(buf + 3, 16, &id);
+	if (unlikely(err))
+		goto out;
+
+	err = au_procfs_plm_write_si(file, id);
+	if (unlikely(err))
+		goto out;
+
+out_success:
+	err = count; /* success */
+out:
+	return err;
+}
+
+static const struct file_operations au_procfs_plm_fop = {
+	.write		= au_procfs_plm_write,
+	.release	= au_procfs_plm_release,
+	.owner		= THIS_MODULE
+};
+
+/* ---------------------------------------------------------------------- */
+
+static struct proc_dir_entry *au_procfs_dir;
+
+void au_procfs_fin(void)
+{
+	remove_proc_entry(AUFS_PLINK_MAINT_NAME, au_procfs_dir);
+	remove_proc_entry(AUFS_PLINK_MAINT_DIR, NULL);
+}
+
+int __init au_procfs_init(void)
+{
+	int err;
+	struct proc_dir_entry *entry;
+
+	err = -ENOMEM;
+	au_procfs_dir = proc_mkdir(AUFS_PLINK_MAINT_DIR, NULL);
+	if (unlikely(!au_procfs_dir))
+		goto out;
+
+	entry = proc_create(AUFS_PLINK_MAINT_NAME, S_IFREG | 0200,
+			    au_procfs_dir, &au_procfs_plm_fop);
+	if (unlikely(!entry))
+		goto out_dir;
+
+	err = 0;
+	goto out; /* success */
+
+
+out_dir:
+	remove_proc_entry(AUFS_PLINK_MAINT_DIR, NULL);
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/rdu.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/rdu.c
@@ -0,0 +1,384 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * readdir in userspace.
+ */
+
+#include <linux/compat.h>
+#include <linux/fs_stack.h>
+#include <linux/security.h>
+#include "aufs.h"
+
+/* bits for struct aufs_rdu.flags */
+#define	AuRdu_CALLED	1
+#define	AuRdu_CONT	(1 << 1)
+#define	AuRdu_FULL	(1 << 2)
+#define au_ftest_rdu(flags, name)	((flags) & AuRdu_##name)
+#define au_fset_rdu(flags, name) \
+	do { (flags) |= AuRdu_##name; } while (0)
+#define au_fclr_rdu(flags, name) \
+	do { (flags) &= ~AuRdu_##name; } while (0)
+
+struct au_rdu_arg {
+	struct dir_context		ctx;
+	struct aufs_rdu			*rdu;
+	union au_rdu_ent_ul		ent;
+	unsigned long			end;
+
+	struct super_block		*sb;
+	int				err;
+};
+
+static int au_rdu_fill(struct dir_context *ctx, const char *name, int nlen,
+		       loff_t offset, u64 h_ino, unsigned int d_type)
+{
+	int err, len;
+	struct au_rdu_arg *arg = container_of(ctx, struct au_rdu_arg, ctx);
+	struct aufs_rdu *rdu = arg->rdu;
+	struct au_rdu_ent ent;
+
+	err = 0;
+	arg->err = 0;
+	au_fset_rdu(rdu->cookie.flags, CALLED);
+	len = au_rdu_len(nlen);
+	if (arg->ent.ul + len  < arg->end) {
+		ent.ino = h_ino;
+		ent.bindex = rdu->cookie.bindex;
+		ent.type = d_type;
+		ent.nlen = nlen;
+		if (unlikely(nlen > AUFS_MAX_NAMELEN))
+			ent.type = DT_UNKNOWN;
+
+		/* unnecessary to support mmap_sem since this is a dir */
+		err = -EFAULT;
+		if (copy_to_user(arg->ent.e, &ent, sizeof(ent)))
+			goto out;
+		if (copy_to_user(arg->ent.e->name, name, nlen))
+			goto out;
+		/* the terminating NULL */
+		if (__put_user(0, arg->ent.e->name + nlen))
+			goto out;
+		err = 0;
+		/* AuDbg("%p, %.*s\n", arg->ent.p, nlen, name); */
+		arg->ent.ul += len;
+		rdu->rent++;
+	} else {
+		err = -EFAULT;
+		au_fset_rdu(rdu->cookie.flags, FULL);
+		rdu->full = 1;
+		rdu->tail = arg->ent;
+	}
+
+out:
+	/* AuTraceErr(err); */
+	return err;
+}
+
+static int au_rdu_do(struct file *h_file, struct au_rdu_arg *arg)
+{
+	int err;
+	loff_t offset;
+	struct au_rdu_cookie *cookie = &arg->rdu->cookie;
+
+	/* we don't have to care (FMODE_32BITHASH | FMODE_64BITHASH) for ext4 */
+	offset = vfsub_llseek(h_file, cookie->h_pos, SEEK_SET);
+	err = offset;
+	if (unlikely(offset != cookie->h_pos))
+		goto out;
+
+	err = 0;
+	do {
+		arg->err = 0;
+		au_fclr_rdu(cookie->flags, CALLED);
+		/* smp_mb(); */
+		err = vfsub_iterate_dir(h_file, &arg->ctx);
+		if (err >= 0)
+			err = arg->err;
+	} while (!err
+		 && au_ftest_rdu(cookie->flags, CALLED)
+		 && !au_ftest_rdu(cookie->flags, FULL));
+	cookie->h_pos = h_file->f_pos;
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_rdu(struct file *file, struct aufs_rdu *rdu)
+{
+	int err;
+	aufs_bindex_t bbot;
+	struct au_rdu_arg arg = {
+		.ctx = {
+			.actor = au_rdu_fill
+		}
+	};
+	struct dentry *dentry;
+	struct inode *inode;
+	struct file *h_file;
+	struct au_rdu_cookie *cookie = &rdu->cookie;
+
+	/* VERIFY_WRITE */
+	err = !access_ok(rdu->ent.e, rdu->sz);
+	if (unlikely(err)) {
+		err = -EFAULT;
+		AuTraceErr(err);
+		goto out;
+	}
+	rdu->rent = 0;
+	rdu->tail = rdu->ent;
+	rdu->full = 0;
+	arg.rdu = rdu;
+	arg.ent = rdu->ent;
+	arg.end = arg.ent.ul;
+	arg.end += rdu->sz;
+
+	err = -ENOTDIR;
+	if (unlikely(!file->f_op->iterate && !file->f_op->iterate_shared))
+		goto out;
+
+	err = security_file_permission(file, MAY_READ);
+	AuTraceErr(err);
+	if (unlikely(err))
+		goto out;
+
+	dentry = file->f_path.dentry;
+	inode = d_inode(dentry);
+	inode_lock_shared(inode);
+
+	arg.sb = inode->i_sb;
+	err = si_read_lock(arg.sb, AuLock_FLUSH | AuLock_NOPLM);
+	if (unlikely(err))
+		goto out_mtx;
+	err = au_alive_dir(dentry);
+	if (unlikely(err))
+		goto out_si;
+	/* todo: reval? */
+	fi_read_lock(file);
+
+	err = -EAGAIN;
+	if (unlikely(au_ftest_rdu(cookie->flags, CONT)
+		     && cookie->generation != au_figen(file)))
+		goto out_unlock;
+
+	err = 0;
+	if (!rdu->blk) {
+		rdu->blk = au_sbi(arg.sb)->si_rdblk;
+		if (!rdu->blk)
+			rdu->blk = au_dir_size(file, /*dentry*/NULL);
+	}
+	bbot = au_fbtop(file);
+	if (cookie->bindex < bbot)
+		cookie->bindex = bbot;
+	bbot = au_fbbot_dir(file);
+	/* AuDbg("b%d, b%d\n", cookie->bindex, bbot); */
+	for (; !err && cookie->bindex <= bbot;
+	     cookie->bindex++, cookie->h_pos = 0) {
+		h_file = au_hf_dir(file, cookie->bindex);
+		if (!h_file)
+			continue;
+
+		au_fclr_rdu(cookie->flags, FULL);
+		err = au_rdu_do(h_file, &arg);
+		AuTraceErr(err);
+		if (unlikely(au_ftest_rdu(cookie->flags, FULL) || err))
+			break;
+	}
+	AuDbg("rent %llu\n", rdu->rent);
+
+	if (!err && !au_ftest_rdu(cookie->flags, CONT)) {
+		rdu->shwh = !!au_opt_test(au_sbi(arg.sb)->si_mntflags, SHWH);
+		au_fset_rdu(cookie->flags, CONT);
+		cookie->generation = au_figen(file);
+	}
+
+	ii_read_lock_child(inode);
+	fsstack_copy_attr_atime(inode, au_h_iptr(inode, au_ibtop(inode)));
+	ii_read_unlock(inode);
+
+out_unlock:
+	fi_read_unlock(file);
+out_si:
+	si_read_unlock(arg.sb);
+out_mtx:
+	inode_unlock_shared(inode);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_rdu_ino(struct file *file, struct aufs_rdu *rdu)
+{
+	int err;
+	ino_t ino;
+	unsigned long long nent;
+	union au_rdu_ent_ul *u;
+	struct au_rdu_ent ent;
+	struct super_block *sb;
+
+	err = 0;
+	nent = rdu->nent;
+	u = &rdu->ent;
+	sb = file->f_path.dentry->d_sb;
+	si_read_lock(sb, AuLock_FLUSH);
+	while (nent-- > 0) {
+		/* unnecessary to support mmap_sem since this is a dir */
+		err = copy_from_user(&ent, u->e, sizeof(ent));
+		if (!err)
+			/* VERIFY_WRITE */
+			err = !access_ok(&u->e->ino, sizeof(ino));
+		if (unlikely(err)) {
+			err = -EFAULT;
+			AuTraceErr(err);
+			break;
+		}
+
+		/* AuDbg("b%d, i%llu\n", ent.bindex, ent.ino); */
+		if (!ent.wh)
+			err = au_ino(sb, ent.bindex, ent.ino, ent.type, &ino);
+		else
+			err = au_wh_ino(sb, ent.bindex, ent.ino, ent.type,
+					&ino);
+		if (unlikely(err)) {
+			AuTraceErr(err);
+			break;
+		}
+
+		err = __put_user(ino, &u->e->ino);
+		if (unlikely(err)) {
+			err = -EFAULT;
+			AuTraceErr(err);
+			break;
+		}
+		u->ul += au_rdu_len(ent.nlen);
+	}
+	si_read_unlock(sb);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_rdu_verify(struct aufs_rdu *rdu)
+{
+	AuDbg("rdu{%llu, %p, %u | %u | %llu, %u, %u | "
+	      "%llu, b%d, 0x%x, g%u}\n",
+	      rdu->sz, rdu->ent.e, rdu->verify[AufsCtlRduV_SZ],
+	      rdu->blk,
+	      rdu->rent, rdu->shwh, rdu->full,
+	      rdu->cookie.h_pos, rdu->cookie.bindex, rdu->cookie.flags,
+	      rdu->cookie.generation);
+
+	if (rdu->verify[AufsCtlRduV_SZ] == sizeof(*rdu))
+		return 0;
+
+	AuDbg("%u:%u\n",
+	      rdu->verify[AufsCtlRduV_SZ], (unsigned int)sizeof(*rdu));
+	return -EINVAL;
+}
+
+long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	long err, e;
+	struct aufs_rdu rdu;
+	void __user *p = (void __user *)arg;
+
+	err = copy_from_user(&rdu, p, sizeof(rdu));
+	if (unlikely(err)) {
+		err = -EFAULT;
+		AuTraceErr(err);
+		goto out;
+	}
+	err = au_rdu_verify(&rdu);
+	if (unlikely(err))
+		goto out;
+
+	switch (cmd) {
+	case AUFS_CTL_RDU:
+		err = au_rdu(file, &rdu);
+		if (unlikely(err))
+			break;
+
+		e = copy_to_user(p, &rdu, sizeof(rdu));
+		if (unlikely(e)) {
+			err = -EFAULT;
+			AuTraceErr(err);
+		}
+		break;
+	case AUFS_CTL_RDU_INO:
+		err = au_rdu_ino(file, &rdu);
+		break;
+
+	default:
+		/* err = -ENOTTY; */
+		err = -EINVAL;
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+#ifdef CONFIG_COMPAT
+long au_rdu_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	long err, e;
+	struct aufs_rdu rdu;
+	void __user *p = compat_ptr(arg);
+
+	/* todo: get_user()? */
+	err = copy_from_user(&rdu, p, sizeof(rdu));
+	if (unlikely(err)) {
+		err = -EFAULT;
+		AuTraceErr(err);
+		goto out;
+	}
+	rdu.ent.e = compat_ptr(rdu.ent.ul);
+	err = au_rdu_verify(&rdu);
+	if (unlikely(err))
+		goto out;
+
+	switch (cmd) {
+	case AUFS_CTL_RDU:
+		err = au_rdu(file, &rdu);
+		if (unlikely(err))
+			break;
+
+		rdu.ent.ul = ptr_to_compat(rdu.ent.e);
+		rdu.tail.ul = ptr_to_compat(rdu.tail.e);
+		e = copy_to_user(p, &rdu, sizeof(rdu));
+		if (unlikely(e)) {
+			err = -EFAULT;
+			AuTraceErr(err);
+		}
+		break;
+	case AUFS_CTL_RDU_INO:
+		err = au_rdu_ino(file, &rdu);
+		break;
+
+	default:
+		/* err = -ENOTTY; */
+		err = -EINVAL;
+	}
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+#endif
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/rwsem.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/rwsem.h
@@ -0,0 +1,73 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * simple read-write semaphore wrappers
+ */
+
+#ifndef __AUFS_RWSEM_H__
+#define __AUFS_RWSEM_H__
+
+#ifdef __KERNEL__
+
+#include "debug.h"
+
+/* in the future, the name 'au_rwsem' will be totally gone */
+#define au_rwsem	rw_semaphore
+
+/* to debug easier, do not make them inlined functions */
+#define AuRwMustNoWaiters(rw)	AuDebugOn(rwsem_is_contended(rw))
+/* rwsem_is_locked() is unusable */
+#define AuRwMustReadLock(rw)	AuDebugOn(!lockdep_recursing(current) \
+					  && debug_locks \
+					  && !lockdep_is_held_type(rw, 1))
+#define AuRwMustWriteLock(rw)	AuDebugOn(!lockdep_recursing(current) \
+					  && debug_locks \
+					  && !lockdep_is_held_type(rw, 0))
+#define AuRwMustAnyLock(rw)	AuDebugOn(!lockdep_recursing(current) \
+					  && debug_locks \
+					  && !lockdep_is_held(rw))
+#define AuRwDestroy(rw)		AuDebugOn(!lockdep_recursing(current) \
+					  && debug_locks \
+					  && lockdep_is_held(rw))
+
+#define au_rw_init(rw)	init_rwsem(rw)
+
+#define au_rw_init_wlock(rw) do {		\
+		au_rw_init(rw);			\
+		down_write(rw);			\
+	} while (0)
+
+#define au_rw_init_wlock_nested(rw, lsc) do {	\
+		au_rw_init(rw);			\
+		down_write_nested(rw, lsc);	\
+	} while (0)
+
+#define au_rw_read_lock(rw)		down_read(rw)
+#define au_rw_read_lock_nested(rw, lsc)	down_read_nested(rw, lsc)
+#define au_rw_read_unlock(rw)		up_read(rw)
+#define au_rw_dgrade_lock(rw)		downgrade_write(rw)
+#define au_rw_write_lock(rw)		down_write(rw)
+#define au_rw_write_lock_nested(rw, lsc) down_write_nested(rw, lsc)
+#define au_rw_write_unlock(rw)		up_write(rw)
+/* why is not _nested version defined? */
+#define au_rw_read_trylock(rw)		down_read_trylock(rw)
+#define au_rw_write_trylock(rw)		down_write_trylock(rw)
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_RWSEM_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/sbinfo.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/sbinfo.c
@@ -0,0 +1,314 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * superblock private data
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+/*
+ * they are necessary regardless sysfs is disabled.
+ */
+void au_si_free(struct kobject *kobj)
+{
+	int i;
+	struct au_sbinfo *sbinfo;
+	char *locked __maybe_unused; /* debug only */
+
+	sbinfo = container_of(kobj, struct au_sbinfo, si_kobj);
+	for (i = 0; i < AuPlink_NHASH; i++)
+		AuDebugOn(!hlist_bl_empty(sbinfo->si_plink + i));
+	AuDebugOn(atomic_read(&sbinfo->si_nowait.nw_len));
+
+	AuLCntZero(au_lcnt_read(&sbinfo->si_ninodes, /*do_rev*/0));
+	au_lcnt_fin(&sbinfo->si_ninodes, /*do_sync*/0);
+	AuLCntZero(au_lcnt_read(&sbinfo->si_nfiles, /*do_rev*/0));
+	au_lcnt_fin(&sbinfo->si_nfiles, /*do_sync*/0);
+
+	dbgaufs_si_fin(sbinfo);
+	au_rw_write_lock(&sbinfo->si_rwsem);
+	au_br_free(sbinfo);
+	au_rw_write_unlock(&sbinfo->si_rwsem);
+
+	au_kfree_try_rcu(sbinfo->si_branch);
+	mutex_destroy(&sbinfo->si_xib_mtx);
+	AuRwDestroy(&sbinfo->si_rwsem);
+
+	au_lcnt_wait_for_fin(&sbinfo->si_ninodes);
+	/* si_nfiles is waited too */
+	au_kfree_rcu(sbinfo);
+}
+
+int au_si_alloc(struct super_block *sb)
+{
+	int err, i;
+	struct au_sbinfo *sbinfo;
+
+	err = -ENOMEM;
+	sbinfo = kzalloc(sizeof(*sbinfo), GFP_NOFS);
+	if (unlikely(!sbinfo))
+		goto out;
+
+	/* will be reallocated separately */
+	sbinfo->si_branch = kzalloc(sizeof(*sbinfo->si_branch), GFP_NOFS);
+	if (unlikely(!sbinfo->si_branch))
+		goto out_sbinfo;
+
+	err = sysaufs_si_init(sbinfo);
+	if (!err) {
+		dbgaufs_si_null(sbinfo);
+		err = dbgaufs_si_init(sbinfo);
+		if (unlikely(err))
+			kobject_put(&sbinfo->si_kobj);
+	}
+	if (unlikely(err))
+		goto out_br;
+
+	au_nwt_init(&sbinfo->si_nowait);
+	au_rw_init_wlock(&sbinfo->si_rwsem);
+
+	au_lcnt_init(&sbinfo->si_ninodes, /*release*/NULL);
+	au_lcnt_init(&sbinfo->si_nfiles, /*release*/NULL);
+
+	sbinfo->si_bbot = -1;
+	sbinfo->si_last_br_id = AUFS_BRANCH_MAX / 2;
+
+	sbinfo->si_wbr_copyup = AuWbrCopyup_Def;
+	sbinfo->si_wbr_create = AuWbrCreate_Def;
+	sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + sbinfo->si_wbr_copyup;
+	sbinfo->si_wbr_create_ops = au_wbr_create_ops + sbinfo->si_wbr_create;
+
+	au_fhsm_init(sbinfo);
+
+	sbinfo->si_mntflags = au_opts_plink(AuOpt_Def);
+
+	sbinfo->si_xino_jiffy = jiffies;
+	sbinfo->si_xino_expire
+		= msecs_to_jiffies(AUFS_XINO_DEF_SEC * MSEC_PER_SEC);
+	mutex_init(&sbinfo->si_xib_mtx);
+	/* leave si_xib_last_pindex and si_xib_next_bit */
+
+	INIT_HLIST_BL_HEAD(&sbinfo->si_aopen);
+
+	sbinfo->si_rdcache = msecs_to_jiffies(AUFS_RDCACHE_DEF * MSEC_PER_SEC);
+	sbinfo->si_rdblk = AUFS_RDBLK_DEF;
+	sbinfo->si_rdhash = AUFS_RDHASH_DEF;
+	sbinfo->si_dirwh = AUFS_DIRWH_DEF;
+
+	for (i = 0; i < AuPlink_NHASH; i++)
+		INIT_HLIST_BL_HEAD(sbinfo->si_plink + i);
+	init_waitqueue_head(&sbinfo->si_plink_wq);
+	spin_lock_init(&sbinfo->si_plink_maint_lock);
+
+	INIT_HLIST_BL_HEAD(&sbinfo->si_files);
+
+	/* with getattr by default */
+	sbinfo->si_iop_array = aufs_iop;
+
+	/* leave other members for sysaufs and si_mnt. */
+	sbinfo->si_sb = sb;
+	sb->s_fs_info = sbinfo;
+	si_pid_set(sb);
+	return 0; /* success */
+
+out_br:
+	au_kfree_try_rcu(sbinfo->si_branch);
+out_sbinfo:
+	au_kfree_rcu(sbinfo);
+out:
+	return err;
+}
+
+int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr, int may_shrink)
+{
+	int err, sz;
+	struct au_branch **brp;
+
+	AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+	err = -ENOMEM;
+	sz = sizeof(*brp) * (sbinfo->si_bbot + 1);
+	if (unlikely(!sz))
+		sz = sizeof(*brp);
+	brp = au_kzrealloc(sbinfo->si_branch, sz, sizeof(*brp) * nbr, GFP_NOFS,
+			   may_shrink);
+	if (brp) {
+		sbinfo->si_branch = brp;
+		err = 0;
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+unsigned int au_sigen_inc(struct super_block *sb)
+{
+	unsigned int gen;
+	struct inode *inode;
+
+	SiMustWriteLock(sb);
+
+	gen = ++au_sbi(sb)->si_generation;
+	au_update_digen(sb->s_root);
+	inode = d_inode(sb->s_root);
+	au_update_iigen(inode, /*half*/0);
+	inode_inc_iversion(inode);
+	return gen;
+}
+
+aufs_bindex_t au_new_br_id(struct super_block *sb)
+{
+	aufs_bindex_t br_id;
+	int i;
+	struct au_sbinfo *sbinfo;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	for (i = 0; i <= AUFS_BRANCH_MAX; i++) {
+		br_id = ++sbinfo->si_last_br_id;
+		AuDebugOn(br_id < 0);
+		if (br_id && au_br_index(sb, br_id) < 0)
+			return br_id;
+	}
+
+	return -1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* it is ok that new 'nwt' tasks are appended while we are sleeping */
+int si_read_lock(struct super_block *sb, int flags)
+{
+	int err;
+
+	err = 0;
+	if (au_ftest_lock(flags, FLUSH))
+		au_nwt_flush(&au_sbi(sb)->si_nowait);
+
+	si_noflush_read_lock(sb);
+	err = au_plink_maint(sb, flags);
+	if (unlikely(err))
+		si_read_unlock(sb);
+
+	return err;
+}
+
+int si_write_lock(struct super_block *sb, int flags)
+{
+	int err;
+
+	if (au_ftest_lock(flags, FLUSH))
+		au_nwt_flush(&au_sbi(sb)->si_nowait);
+
+	si_noflush_write_lock(sb);
+	err = au_plink_maint(sb, flags);
+	if (unlikely(err))
+		si_write_unlock(sb);
+
+	return err;
+}
+
+/* dentry and super_block lock. call at entry point */
+int aufs_read_lock(struct dentry *dentry, int flags)
+{
+	int err;
+	struct super_block *sb;
+
+	sb = dentry->d_sb;
+	err = si_read_lock(sb, flags);
+	if (unlikely(err))
+		goto out;
+
+	if (au_ftest_lock(flags, DW))
+		di_write_lock_child(dentry);
+	else
+		di_read_lock_child(dentry, flags);
+
+	if (au_ftest_lock(flags, GEN)) {
+		err = au_digen_test(dentry, au_sigen(sb));
+		if (!au_opt_test(au_mntflags(sb), UDBA_NONE))
+			AuDebugOn(!err && au_dbrange_test(dentry));
+		else if (!err)
+			err = au_dbrange_test(dentry);
+		if (unlikely(err))
+			aufs_read_unlock(dentry, flags);
+	}
+
+out:
+	return err;
+}
+
+void aufs_read_unlock(struct dentry *dentry, int flags)
+{
+	if (au_ftest_lock(flags, DW))
+		di_write_unlock(dentry);
+	else
+		di_read_unlock(dentry, flags);
+	si_read_unlock(dentry->d_sb);
+}
+
+void aufs_write_lock(struct dentry *dentry)
+{
+	si_write_lock(dentry->d_sb, AuLock_FLUSH | AuLock_NOPLMW);
+	di_write_lock_child(dentry);
+}
+
+void aufs_write_unlock(struct dentry *dentry)
+{
+	di_write_unlock(dentry);
+	si_write_unlock(dentry->d_sb);
+}
+
+int aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags)
+{
+	int err;
+	unsigned int sigen;
+	struct super_block *sb;
+
+	sb = d1->d_sb;
+	err = si_read_lock(sb, flags);
+	if (unlikely(err))
+		goto out;
+
+	di_write_lock2_child(d1, d2, au_ftest_lock(flags, DIRS));
+
+	if (au_ftest_lock(flags, GEN)) {
+		sigen = au_sigen(sb);
+		err = au_digen_test(d1, sigen);
+		AuDebugOn(!err && au_dbrange_test(d1));
+		if (!err) {
+			err = au_digen_test(d2, sigen);
+			AuDebugOn(!err && au_dbrange_test(d2));
+		}
+		if (unlikely(err))
+			aufs_read_and_write_unlock2(d1, d2);
+	}
+
+out:
+	return err;
+}
+
+void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2)
+{
+	di_write_unlock2(d1, d2);
+	si_read_unlock(d1->d_sb);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/super.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/super.c
@@ -0,0 +1,1050 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * mount and super_block operations
+ */
+
+#include <linux/iversion.h>
+#include <linux/mm.h>
+#include <linux/seq_file.h>
+#include <linux/statfs.h>
+#include <linux/vmalloc.h>
+#include "aufs.h"
+
+/*
+ * super_operations
+ */
+static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused)
+{
+	struct au_icntnr *c;
+
+	c = au_cache_alloc_icntnr();
+	if (c) {
+		au_icntnr_init(c);
+		inode_set_iversion(&c->vfs_inode, 1); /* sigen(sb); */
+		c->iinfo.ii_hinode = NULL;
+		return &c->vfs_inode;
+	}
+	return NULL;
+}
+
+static void aufs_destroy_inode(struct inode *inode)
+{
+	if (!au_is_bad_inode(inode))
+		au_iinfo_fin(inode);
+}
+
+static void aufs_free_inode(struct inode *inode)
+{
+	au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode));
+}
+
+struct inode *au_iget_locked(struct super_block *sb, ino_t ino)
+{
+	struct inode *inode;
+	int err;
+
+	inode = iget_locked(sb, ino);
+	if (unlikely(!inode)) {
+		inode = ERR_PTR(-ENOMEM);
+		goto out;
+	}
+	if (!(inode->i_state & I_NEW))
+		goto out;
+
+	err = au_xigen_new(inode);
+	if (!err)
+		err = au_iinfo_init(inode);
+	if (!err)
+		inode_inc_iversion(inode);
+	else {
+		iget_failed(inode);
+		inode = ERR_PTR(err);
+	}
+
+out:
+	/* never return NULL */
+	AuDebugOn(!inode);
+	AuTraceErrPtr(inode);
+	return inode;
+}
+
+/* lock free root dinfo */
+static int au_show_brs(struct seq_file *seq, struct super_block *sb)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct path path;
+	struct au_hdentry *hdp;
+	struct au_branch *br;
+	au_br_perm_str_t perm;
+
+	err = 0;
+	bbot = au_sbbot(sb);
+	bindex = 0;
+	hdp = au_hdentry(au_di(sb->s_root), bindex);
+	for (; !err && bindex <= bbot; bindex++, hdp++) {
+		br = au_sbr(sb, bindex);
+		path.mnt = au_br_mnt(br);
+		path.dentry = hdp->hd_dentry;
+		err = au_seq_path(seq, &path);
+		if (!err) {
+			au_optstr_br_perm(&perm, br->br_perm);
+			seq_printf(seq, "=%s", perm.a);
+			if (bindex != bbot)
+				seq_putc(seq, ':');
+		}
+	}
+	if (unlikely(err || seq_has_overflowed(seq)))
+		err = -E2BIG;
+
+	return err;
+}
+
+static void au_gen_fmt(char *fmt, int len __maybe_unused, const char *pat,
+		       const char *append)
+{
+	char *p;
+
+	p = fmt;
+	while (*pat != ':')
+		*p++ = *pat++;
+	*p++ = *pat++;
+	strcpy(p, append);
+	AuDebugOn(strlen(fmt) >= len);
+}
+
+static void au_show_wbr_create(struct seq_file *m, int v,
+			       struct au_sbinfo *sbinfo)
+{
+	const char *pat;
+	char fmt[32];
+	struct au_wbr_mfs *mfs;
+
+	AuRwMustAnyLock(&sbinfo->si_rwsem);
+
+	seq_puts(m, ",create=");
+	pat = au_optstr_wbr_create(v);
+	mfs = &sbinfo->si_wbr_mfs;
+	switch (v) {
+	case AuWbrCreate_TDP:
+	case AuWbrCreate_RR:
+	case AuWbrCreate_MFS:
+	case AuWbrCreate_PMFS:
+		seq_puts(m, pat);
+		break;
+	case AuWbrCreate_MFSRR:
+	case AuWbrCreate_TDMFS:
+	case AuWbrCreate_PMFSRR:
+		au_gen_fmt(fmt, sizeof(fmt), pat, "%llu");
+		seq_printf(m, fmt, mfs->mfsrr_watermark);
+		break;
+	case AuWbrCreate_MFSV:
+	case AuWbrCreate_PMFSV:
+		au_gen_fmt(fmt, sizeof(fmt), pat, "%lu");
+		seq_printf(m, fmt,
+			   jiffies_to_msecs(mfs->mfs_expire)
+			   / MSEC_PER_SEC);
+		break;
+	case AuWbrCreate_MFSRRV:
+	case AuWbrCreate_TDMFSV:
+	case AuWbrCreate_PMFSRRV:
+		au_gen_fmt(fmt, sizeof(fmt), pat, "%llu:%lu");
+		seq_printf(m, fmt, mfs->mfsrr_watermark,
+			   jiffies_to_msecs(mfs->mfs_expire) / MSEC_PER_SEC);
+		break;
+	default:
+		BUG();
+	}
+}
+
+static int au_show_xino(struct seq_file *seq, struct super_block *sb)
+{
+#ifdef CONFIG_SYSFS
+	return 0;
+#else
+	int err;
+	const int len = sizeof(AUFS_XINO_FNAME) - 1;
+	aufs_bindex_t bindex, brid;
+	struct qstr *name;
+	struct file *f;
+	struct dentry *d, *h_root;
+	struct au_branch *br;
+
+	AuRwMustAnyLock(&sbinfo->si_rwsem);
+
+	err = 0;
+	f = au_sbi(sb)->si_xib;
+	if (!f)
+		goto out;
+
+	/* stop printing the default xino path on the first writable branch */
+	h_root = NULL;
+	bindex = au_xi_root(sb, f->f_path.dentry);
+	if (bindex >= 0) {
+		br = au_sbr_sb(sb, bindex);
+		h_root = au_br_dentry(br);
+	}
+
+	d = f->f_path.dentry;
+	name = &d->d_name;
+	/* safe ->d_parent because the file is unlinked */
+	if (d->d_parent == h_root
+	    && name->len == len
+	    && !memcmp(name->name, AUFS_XINO_FNAME, len))
+		goto out;
+
+	seq_puts(seq, ",xino=");
+	err = au_xino_path(seq, f);
+
+out:
+	return err;
+#endif
+}
+
+/* seq_file will re-call me in case of too long string */
+static int aufs_show_options(struct seq_file *m, struct dentry *dentry)
+{
+	int err;
+	unsigned int mnt_flags, v;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+
+#define AuBool(name, str) do { \
+	v = au_opt_test(mnt_flags, name); \
+	if (v != au_opt_test(AuOpt_Def, name)) \
+		seq_printf(m, ",%s" #str, v ? "" : "no"); \
+} while (0)
+
+#define AuStr(name, str) do { \
+	v = mnt_flags & AuOptMask_##name; \
+	if (v != (AuOpt_Def & AuOptMask_##name)) \
+		seq_printf(m, "," #str "=%s", au_optstr_##str(v)); \
+} while (0)
+
+#define AuUInt(name, str, val) do { \
+	if (val != AUFS_##name##_DEF) \
+		seq_printf(m, "," #str "=%u", val); \
+} while (0)
+
+	sb = dentry->d_sb;
+	if (sb->s_flags & SB_POSIXACL)
+		seq_puts(m, ",acl");
+#if 0 /* reserved for future use */
+	if (sb->s_flags & SB_I_VERSION)
+		seq_puts(m, ",i_version");
+#endif
+
+	/* lock free root dinfo */
+	si_noflush_read_lock(sb);
+	sbinfo = au_sbi(sb);
+	seq_printf(m, ",si=%lx", sysaufs_si_id(sbinfo));
+
+	mnt_flags = au_mntflags(sb);
+	if (au_opt_test(mnt_flags, XINO)) {
+		err = au_show_xino(m, sb);
+		if (unlikely(err))
+			goto out;
+	} else
+		seq_puts(m, ",noxino");
+
+	AuBool(TRUNC_XINO, trunc_xino);
+	AuStr(UDBA, udba);
+	AuBool(SHWH, shwh);
+	AuBool(PLINK, plink);
+	AuBool(DIO, dio);
+	AuBool(DIRPERM1, dirperm1);
+
+	v = sbinfo->si_wbr_create;
+	if (v != AuWbrCreate_Def)
+		au_show_wbr_create(m, v, sbinfo);
+
+	v = sbinfo->si_wbr_copyup;
+	if (v != AuWbrCopyup_Def)
+		seq_printf(m, ",cpup=%s", au_optstr_wbr_copyup(v));
+
+	v = au_opt_test(mnt_flags, ALWAYS_DIROPQ);
+	if (v != au_opt_test(AuOpt_Def, ALWAYS_DIROPQ))
+		seq_printf(m, ",diropq=%c", v ? 'a' : 'w');
+
+	AuUInt(DIRWH, dirwh, sbinfo->si_dirwh);
+
+	v = jiffies_to_msecs(sbinfo->si_rdcache) / MSEC_PER_SEC;
+	AuUInt(RDCACHE, rdcache, v);
+
+	AuUInt(RDBLK, rdblk, sbinfo->si_rdblk);
+	AuUInt(RDHASH, rdhash, sbinfo->si_rdhash);
+
+	au_fhsm_show(m, sbinfo);
+
+	AuBool(DIRREN, dirren);
+	AuBool(SUM, sum);
+	/* AuBool(SUM_W, wsum); */
+	AuBool(WARN_PERM, warn_perm);
+	AuBool(VERBOSE, verbose);
+
+out:
+	/* be sure to print "br:" last */
+	if (!sysaufs_brs) {
+		seq_puts(m, ",br:");
+		au_show_brs(m, sb);
+	}
+	si_read_unlock(sb);
+	return 0;
+
+#undef AuBool
+#undef AuStr
+#undef AuUInt
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* sum mode which returns the summation for statfs(2) */
+
+static u64 au_add_till_max(u64 a, u64 b)
+{
+	u64 old;
+
+	old = a;
+	a += b;
+	if (old <= a)
+		return a;
+	return ULLONG_MAX;
+}
+
+static u64 au_mul_till_max(u64 a, long mul)
+{
+	u64 old;
+
+	old = a;
+	a *= mul;
+	if (old <= a)
+		return a;
+	return ULLONG_MAX;
+}
+
+static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf)
+{
+	int err;
+	long bsize, factor;
+	u64 blocks, bfree, bavail, files, ffree;
+	aufs_bindex_t bbot, bindex, i;
+	unsigned char shared;
+	struct path h_path;
+	struct super_block *h_sb;
+
+	err = 0;
+	bsize = LONG_MAX;
+	files = 0;
+	ffree = 0;
+	blocks = 0;
+	bfree = 0;
+	bavail = 0;
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		h_path.mnt = au_sbr_mnt(sb, bindex);
+		h_sb = h_path.mnt->mnt_sb;
+		shared = 0;
+		for (i = 0; !shared && i < bindex; i++)
+			shared = (au_sbr_sb(sb, i) == h_sb);
+		if (shared)
+			continue;
+
+		/* sb->s_root for NFS is unreliable */
+		h_path.dentry = h_path.mnt->mnt_root;
+		err = vfs_statfs(&h_path, buf);
+		if (unlikely(err))
+			goto out;
+
+		if (bsize > buf->f_bsize) {
+			/*
+			 * we will reduce bsize, so we have to expand blocks
+			 * etc. to match them again
+			 */
+			factor = (bsize / buf->f_bsize);
+			blocks = au_mul_till_max(blocks, factor);
+			bfree = au_mul_till_max(bfree, factor);
+			bavail = au_mul_till_max(bavail, factor);
+			bsize = buf->f_bsize;
+		}
+
+		factor = (buf->f_bsize / bsize);
+		blocks = au_add_till_max(blocks,
+				au_mul_till_max(buf->f_blocks, factor));
+		bfree = au_add_till_max(bfree,
+				au_mul_till_max(buf->f_bfree, factor));
+		bavail = au_add_till_max(bavail,
+				au_mul_till_max(buf->f_bavail, factor));
+		files = au_add_till_max(files, buf->f_files);
+		ffree = au_add_till_max(ffree, buf->f_ffree);
+	}
+
+	buf->f_bsize = bsize;
+	buf->f_blocks = blocks;
+	buf->f_bfree = bfree;
+	buf->f_bavail = bavail;
+	buf->f_files = files;
+	buf->f_ffree = ffree;
+	buf->f_frsize = 0;
+
+out:
+	return err;
+}
+
+static int aufs_statfs(struct dentry *dentry, struct kstatfs *buf)
+{
+	int err;
+	struct path h_path;
+	struct super_block *sb;
+
+	/* lock free root dinfo */
+	sb = dentry->d_sb;
+	si_noflush_read_lock(sb);
+	if (!au_opt_test(au_mntflags(sb), SUM)) {
+		/* sb->s_root for NFS is unreliable */
+		h_path.mnt = au_sbr_mnt(sb, 0);
+		h_path.dentry = h_path.mnt->mnt_root;
+		err = vfs_statfs(&h_path, buf);
+	} else
+		err = au_statfs_sum(sb, buf);
+	si_read_unlock(sb);
+
+	if (!err) {
+		buf->f_type = AUFS_SUPER_MAGIC;
+		buf->f_namelen = AUFS_MAX_NAMELEN;
+		memset(&buf->f_fsid, 0, sizeof(buf->f_fsid));
+	}
+	/* buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; */
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_sync_fs(struct super_block *sb, int wait)
+{
+	int err, e;
+	aufs_bindex_t bbot, bindex;
+	struct au_branch *br;
+	struct super_block *h_sb;
+
+	err = 0;
+	si_noflush_read_lock(sb);
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (!au_br_writable(br->br_perm))
+			continue;
+
+		h_sb = au_sbr_sb(sb, bindex);
+		e = vfsub_sync_filesystem(h_sb, wait);
+		if (unlikely(e && !err))
+			err = e;
+		/* go on even if an error happens */
+	}
+	si_read_unlock(sb);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* final actions when unmounting a file system */
+static void aufs_put_super(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+
+	sbinfo = au_sbi(sb);
+	if (sbinfo)
+		kobject_put(&sbinfo->si_kobj);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb,
+		     struct super_block *sb, void *arg)
+{
+	void *array;
+	unsigned long long n, sz;
+
+	array = NULL;
+	n = 0;
+	if (!*hint)
+		goto out;
+
+	if (*hint > ULLONG_MAX / sizeof(array)) {
+		array = ERR_PTR(-EMFILE);
+		pr_err("hint %llu\n", *hint);
+		goto out;
+	}
+
+	sz = sizeof(array) * *hint;
+	array = kzalloc(sz, GFP_NOFS);
+	if (unlikely(!array))
+		array = vzalloc(sz);
+	if (unlikely(!array)) {
+		array = ERR_PTR(-ENOMEM);
+		goto out;
+	}
+
+	n = cb(sb, array, *hint, arg);
+	AuDebugOn(n > *hint);
+
+out:
+	*hint = n;
+	return array;
+}
+
+static unsigned long long au_iarray_cb(struct super_block *sb, void *a,
+				       unsigned long long max __maybe_unused,
+				       void *arg)
+{
+	unsigned long long n;
+	struct inode **p, *inode;
+	struct list_head *head;
+
+	n = 0;
+	p = a;
+	head = arg;
+	spin_lock(&sb->s_inode_list_lock);
+	list_for_each_entry(inode, head, i_sb_list) {
+		if (!au_is_bad_inode(inode)
+		    && au_ii(inode)->ii_btop >= 0) {
+			spin_lock(&inode->i_lock);
+			if (atomic_read(&inode->i_count)) {
+				au_igrab(inode);
+				*p++ = inode;
+				n++;
+				AuDebugOn(n > max);
+			}
+			spin_unlock(&inode->i_lock);
+		}
+	}
+	spin_unlock(&sb->s_inode_list_lock);
+
+	return n;
+}
+
+struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max)
+{
+	struct au_sbinfo *sbi;
+
+	sbi = au_sbi(sb);
+	*max = au_lcnt_read(&sbi->si_ninodes, /*do_rev*/1);
+	return au_array_alloc(max, au_iarray_cb, sb, &sb->s_inodes);
+}
+
+void au_iarray_free(struct inode **a, unsigned long long max)
+{
+	unsigned long long ull;
+
+	for (ull = 0; ull < max; ull++)
+		iput(a[ull]);
+	kvfree(a);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * refresh dentry and inode at remount time.
+ */
+/* todo: consolidate with simple_reval_dpath() and au_reval_for_attr() */
+static int au_do_refresh(struct dentry *dentry, unsigned int dir_flags,
+		      struct dentry *parent)
+{
+	int err;
+
+	di_write_lock_child(dentry);
+	di_read_lock_parent(parent, AuLock_IR);
+	err = au_refresh_dentry(dentry, parent);
+	if (!err && dir_flags)
+		au_hn_reset(d_inode(dentry), dir_flags);
+	di_read_unlock(parent, AuLock_IR);
+	di_write_unlock(dentry);
+
+	return err;
+}
+
+static int au_do_refresh_d(struct dentry *dentry, unsigned int sigen,
+			   struct au_sbinfo *sbinfo,
+			   const unsigned int dir_flags, unsigned int do_idop)
+{
+	int err;
+	struct dentry *parent;
+
+	err = 0;
+	parent = dget_parent(dentry);
+	if (!au_digen_test(parent, sigen) && au_digen_test(dentry, sigen)) {
+		if (d_really_is_positive(dentry)) {
+			if (!d_is_dir(dentry))
+				err = au_do_refresh(dentry, /*dir_flags*/0,
+						 parent);
+			else {
+				err = au_do_refresh(dentry, dir_flags, parent);
+				if (unlikely(err))
+					au_fset_si(sbinfo, FAILED_REFRESH_DIR);
+			}
+		} else
+			err = au_do_refresh(dentry, /*dir_flags*/0, parent);
+		AuDbgDentry(dentry);
+	}
+	dput(parent);
+
+	if (!err) {
+		if (do_idop)
+			au_refresh_dop(dentry, /*force_reval*/0);
+	} else
+		au_refresh_dop(dentry, /*force_reval*/1);
+
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_refresh_d(struct super_block *sb, unsigned int do_idop)
+{
+	int err, i, j, ndentry, e;
+	unsigned int sigen;
+	struct au_dcsub_pages dpages;
+	struct au_dpage *dpage;
+	struct dentry **dentries, *d;
+	struct au_sbinfo *sbinfo;
+	struct dentry *root = sb->s_root;
+	const unsigned int dir_flags = au_hi_flags(d_inode(root), /*isdir*/1);
+
+	if (do_idop)
+		au_refresh_dop(root, /*force_reval*/0);
+
+	err = au_dpages_init(&dpages, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+	err = au_dcsub_pages(&dpages, root, NULL, NULL);
+	if (unlikely(err))
+		goto out_dpages;
+
+	sigen = au_sigen(sb);
+	sbinfo = au_sbi(sb);
+	for (i = 0; i < dpages.ndpage; i++) {
+		dpage = dpages.dpages + i;
+		dentries = dpage->dentries;
+		ndentry = dpage->ndentry;
+		for (j = 0; j < ndentry; j++) {
+			d = dentries[j];
+			e = au_do_refresh_d(d, sigen, sbinfo, dir_flags,
+					    do_idop);
+			if (unlikely(e && !err))
+				err = e;
+			/* go on even err */
+		}
+	}
+
+out_dpages:
+	au_dpages_free(&dpages);
+out:
+	return err;
+}
+
+static int au_refresh_i(struct super_block *sb, unsigned int do_idop)
+{
+	int err, e;
+	unsigned int sigen;
+	unsigned long long max, ull;
+	struct inode *inode, **array;
+
+	array = au_iarray_alloc(sb, &max);
+	err = PTR_ERR(array);
+	if (IS_ERR(array))
+		goto out;
+
+	err = 0;
+	sigen = au_sigen(sb);
+	for (ull = 0; ull < max; ull++) {
+		inode = array[ull];
+		if (unlikely(!inode))
+			break;
+
+		e = 0;
+		ii_write_lock_child(inode);
+		if (au_iigen(inode, NULL) != sigen) {
+			e = au_refresh_hinode_self(inode);
+			if (unlikely(e)) {
+				au_refresh_iop(inode, /*force_getattr*/1);
+				pr_err("error %d, i%lu\n", e, inode->i_ino);
+				if (!err)
+					err = e;
+				/* go on even if err */
+			}
+		}
+		if (!e && do_idop)
+			au_refresh_iop(inode, /*force_getattr*/0);
+		ii_write_unlock(inode);
+	}
+
+	au_iarray_free(array, max);
+
+out:
+	return err;
+}
+
+static void au_remount_refresh(struct super_block *sb, unsigned int do_idop)
+{
+	int err, e;
+	unsigned int udba;
+	aufs_bindex_t bindex, bbot;
+	struct dentry *root;
+	struct inode *inode;
+	struct au_branch *br;
+	struct au_sbinfo *sbi;
+
+	au_sigen_inc(sb);
+	sbi = au_sbi(sb);
+	au_fclr_si(sbi, FAILED_REFRESH_DIR);
+
+	root = sb->s_root;
+	DiMustNoWaiters(root);
+	inode = d_inode(root);
+	IiMustNoWaiters(inode);
+
+	udba = au_opt_udba(sb);
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		err = au_hnotify_reset_br(udba, br, br->br_perm);
+		if (unlikely(err))
+			AuIOErr("hnotify failed on br %d, %d, ignored\n",
+				bindex, err);
+		/* go on even if err */
+	}
+	au_hn_reset(inode, au_hi_flags(inode, /*isdir*/1));
+
+	if (do_idop) {
+		if (au_ftest_si(sbi, NO_DREVAL)) {
+			AuDebugOn(sb->s_d_op == &aufs_dop_noreval);
+			sb->s_d_op = &aufs_dop_noreval;
+			AuDebugOn(sbi->si_iop_array == aufs_iop_nogetattr);
+			sbi->si_iop_array = aufs_iop_nogetattr;
+		} else {
+			AuDebugOn(sb->s_d_op == &aufs_dop);
+			sb->s_d_op = &aufs_dop;
+			AuDebugOn(sbi->si_iop_array == aufs_iop);
+			sbi->si_iop_array = aufs_iop;
+		}
+		pr_info("reset to %ps and %ps\n",
+			sb->s_d_op, sbi->si_iop_array);
+	}
+
+	di_write_unlock(root);
+	err = au_refresh_d(sb, do_idop);
+	e = au_refresh_i(sb, do_idop);
+	if (unlikely(e && !err))
+		err = e;
+	/* aufs_write_lock() calls ..._child() */
+	di_write_lock_child(root);
+
+	au_cpup_attr_all(inode, /*force*/1);
+
+	if (unlikely(err))
+		AuIOErr("refresh failed, ignored, %d\n", err);
+}
+
+/* stop extra interpretation of errno in mount(8), and strange error messages */
+static int cvt_err(int err)
+{
+	AuTraceErr(err);
+
+	switch (err) {
+	case -ENOENT:
+	case -ENOTDIR:
+	case -EEXIST:
+	case -EIO:
+		err = -EINVAL;
+	}
+	return err;
+}
+
+static int aufs_remount_fs(struct super_block *sb, int *flags, char *data)
+{
+	int err, do_dx;
+	unsigned int mntflags;
+	struct au_opts opts = {
+		.opt = NULL
+	};
+	struct dentry *root;
+	struct inode *inode;
+	struct au_sbinfo *sbinfo;
+
+	err = 0;
+	root = sb->s_root;
+	if (!data || !*data) {
+		err = si_write_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+		if (!err) {
+			di_write_lock_child(root);
+			err = au_opts_verify(sb, *flags, /*pending*/0);
+			aufs_write_unlock(root);
+		}
+		goto out;
+	}
+
+	err = -ENOMEM;
+	opts.opt = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!opts.opt))
+		goto out;
+	opts.max_opt = PAGE_SIZE / sizeof(*opts.opt);
+	opts.flags = AuOpts_REMOUNT;
+	opts.sb_flags = *flags;
+
+	/* parse it before aufs lock */
+	err = au_opts_parse(sb, data, &opts);
+	if (unlikely(err))
+		goto out_opts;
+
+	sbinfo = au_sbi(sb);
+	inode = d_inode(root);
+	inode_lock(inode);
+	err = si_write_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+	if (unlikely(err))
+		goto out_mtx;
+	di_write_lock_child(root);
+
+	/* au_opts_remount() may return an error */
+	err = au_opts_remount(sb, &opts);
+	au_opts_free(&opts);
+
+	if (au_ftest_opts(opts.flags, REFRESH))
+		au_remount_refresh(sb, au_ftest_opts(opts.flags, REFRESH_IDOP));
+
+	if (au_ftest_opts(opts.flags, REFRESH_DYAOP)) {
+		mntflags = au_mntflags(sb);
+		do_dx = !!au_opt_test(mntflags, DIO);
+		au_dy_arefresh(do_dx);
+	}
+
+	au_fhsm_wrote_all(sb, /*force*/1); /* ?? */
+	aufs_write_unlock(root);
+
+out_mtx:
+	inode_unlock(inode);
+out_opts:
+	free_page((unsigned long)opts.opt);
+out:
+	err = cvt_err(err);
+	AuTraceErr(err);
+	return err;
+}
+
+static const struct super_operations aufs_sop = {
+	.alloc_inode	= aufs_alloc_inode,
+	.destroy_inode	= aufs_destroy_inode,
+	.free_inode	= aufs_free_inode,
+	/* always deleting, no clearing */
+	.drop_inode	= generic_delete_inode,
+	.show_options	= aufs_show_options,
+	.statfs		= aufs_statfs,
+	.put_super	= aufs_put_super,
+	.sync_fs	= aufs_sync_fs,
+	.remount_fs	= aufs_remount_fs,
+#ifdef CONFIG_AUFS_BDEV_LOOP
+	.real_loop	= aufs_real_loop
+#endif
+};
+
+/* ---------------------------------------------------------------------- */
+
+static int alloc_root(struct super_block *sb)
+{
+	int err;
+	struct inode *inode;
+	struct dentry *root;
+
+	err = -ENOMEM;
+	inode = au_iget_locked(sb, AUFS_ROOT_INO);
+	err = PTR_ERR(inode);
+	if (IS_ERR(inode))
+		goto out;
+
+	inode->i_op = aufs_iop + AuIop_DIR; /* with getattr by default */
+	inode->i_fop = &aufs_dir_fop;
+	inode->i_mode = S_IFDIR;
+	set_nlink(inode, 2);
+	unlock_new_inode(inode);
+
+	root = d_make_root(inode);
+	if (unlikely(!root))
+		goto out;
+	err = PTR_ERR(root);
+	if (IS_ERR(root))
+		goto out;
+
+	err = au_di_init(root);
+	if (!err) {
+		sb->s_root = root;
+		return 0; /* success */
+	}
+	dput(root);
+
+out:
+	return err;
+}
+
+static int aufs_fill_super(struct super_block *sb, void *raw_data,
+			   int silent __maybe_unused)
+{
+	int err;
+	struct au_opts opts = {
+		.opt = NULL
+	};
+	struct au_sbinfo *sbinfo;
+	struct dentry *root;
+	struct inode *inode;
+	char *arg = raw_data;
+
+	if (unlikely(!arg || !*arg)) {
+		err = -EINVAL;
+		pr_err("no arg\n");
+		goto out;
+	}
+
+	err = -ENOMEM;
+	opts.opt = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!opts.opt))
+		goto out;
+	opts.max_opt = PAGE_SIZE / sizeof(*opts.opt);
+	opts.sb_flags = sb->s_flags;
+
+	err = au_si_alloc(sb);
+	if (unlikely(err))
+		goto out_opts;
+	sbinfo = au_sbi(sb);
+
+	/* all timestamps always follow the ones on the branch */
+	sb->s_flags |= SB_NOATIME | SB_NODIRATIME;
+	sb->s_flags |= SB_I_VERSION; /* do we really need this? */
+	sb->s_op = &aufs_sop;
+	sb->s_d_op = &aufs_dop;
+	sb->s_magic = AUFS_SUPER_MAGIC;
+	sb->s_maxbytes = 0;
+	sb->s_stack_depth = 1;
+	au_export_init(sb);
+	au_xattr_init(sb);
+
+	err = alloc_root(sb);
+	if (unlikely(err)) {
+		si_write_unlock(sb);
+		goto out_info;
+	}
+	root = sb->s_root;
+	inode = d_inode(root);
+
+	/*
+	 * actually we can parse options regardless aufs lock here.
+	 * but at remount time, parsing must be done before aufs lock.
+	 * so we follow the same rule.
+	 */
+	ii_write_lock_parent(inode);
+	aufs_write_unlock(root);
+	err = au_opts_parse(sb, arg, &opts);
+	if (unlikely(err))
+		goto out_root;
+
+	/* lock vfs_inode first, then aufs. */
+	inode_lock(inode);
+	aufs_write_lock(root);
+	err = au_opts_mount(sb, &opts);
+	au_opts_free(&opts);
+	if (!err && au_ftest_si(sbinfo, NO_DREVAL)) {
+		sb->s_d_op = &aufs_dop_noreval;
+		pr_info("%ps\n", sb->s_d_op);
+		au_refresh_dop(root, /*force_reval*/0);
+		sbinfo->si_iop_array = aufs_iop_nogetattr;
+		au_refresh_iop(inode, /*force_getattr*/0);
+	}
+	aufs_write_unlock(root);
+	inode_unlock(inode);
+	if (!err)
+		goto out_opts; /* success */
+
+out_root:
+	dput(root);
+	sb->s_root = NULL;
+out_info:
+	kobject_put(&sbinfo->si_kobj);
+	sb->s_fs_info = NULL;
+out_opts:
+	free_page((unsigned long)opts.opt);
+out:
+	AuTraceErr(err);
+	err = cvt_err(err);
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *aufs_mount(struct file_system_type *fs_type, int flags,
+				 const char *dev_name __maybe_unused,
+				 void *raw_data)
+{
+	struct dentry *root;
+
+	/* all timestamps always follow the ones on the branch */
+	/* mnt->mnt_flags |= MNT_NOATIME | MNT_NODIRATIME; */
+	root = mount_nodev(fs_type, flags, raw_data, aufs_fill_super);
+	if (IS_ERR(root))
+		goto out;
+
+	au_sbilist_add(root->d_sb);
+
+out:
+	return root;
+}
+
+static void aufs_kill_sb(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+
+	sbinfo = au_sbi(sb);
+	if (sbinfo) {
+		au_sbilist_del(sb);
+		aufs_write_lock(sb->s_root);
+		au_fhsm_fin(sb);
+		if (sbinfo->si_wbr_create_ops->fin)
+			sbinfo->si_wbr_create_ops->fin(sb);
+		if (au_opt_test(sbinfo->si_mntflags, UDBA_HNOTIFY)) {
+			au_opt_set_udba(sbinfo->si_mntflags, UDBA_NONE);
+			au_remount_refresh(sb, /*do_idop*/0);
+		}
+		if (au_opt_test(sbinfo->si_mntflags, PLINK))
+			au_plink_put(sb, /*verbose*/1);
+		au_xino_clr(sb);
+		au_dr_opt_flush(sb);
+		sbinfo->si_sb = NULL;
+		aufs_write_unlock(sb->s_root);
+		au_nwt_flush(&sbinfo->si_nowait);
+	}
+	kill_anon_super(sb);
+}
+
+struct file_system_type aufs_fs_type = {
+	.name		= AUFS_FSTYPE,
+	/* a race between rename and others */
+	.fs_flags	= FS_RENAME_DOES_D_MOVE,
+	.mount		= aufs_mount,
+	.kill_sb	= aufs_kill_sb,
+	/* no need to __module_get() and module_put(). */
+	.owner		= THIS_MODULE,
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/super.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/super.h
@@ -0,0 +1,589 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * super_block operations
+ */
+
+#ifndef __AUFS_SUPER_H__
+#define __AUFS_SUPER_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/kobject.h>
+#include "hbl.h"
+#include "lcnt.h"
+#include "rwsem.h"
+#include "wkq.h"
+
+/* policies to select one among multiple writable branches */
+struct au_wbr_copyup_operations {
+	int (*copyup)(struct dentry *dentry);
+};
+
+#define AuWbr_DIR	1		/* target is a dir */
+#define AuWbr_PARENT	(1 << 1)	/* always require a parent */
+
+#define au_ftest_wbr(flags, name)	((flags) & AuWbr_##name)
+#define au_fset_wbr(flags, name)	{ (flags) |= AuWbr_##name; }
+#define au_fclr_wbr(flags, name)	{ (flags) &= ~AuWbr_##name; }
+
+struct au_wbr_create_operations {
+	int (*create)(struct dentry *dentry, unsigned int flags);
+	int (*init)(struct super_block *sb);
+	int (*fin)(struct super_block *sb);
+};
+
+struct au_wbr_mfs {
+	struct mutex	mfs_lock; /* protect this structure */
+	unsigned long	mfs_jiffy;
+	unsigned long	mfs_expire;
+	aufs_bindex_t	mfs_bindex;
+
+	unsigned long long	mfsrr_bytes;
+	unsigned long long	mfsrr_watermark;
+};
+
+#define AuPlink_NHASH 100
+static inline int au_plink_hash(ino_t ino)
+{
+	return ino % AuPlink_NHASH;
+}
+
+/* File-based Hierarchical Storage Management */
+struct au_fhsm {
+#ifdef CONFIG_AUFS_FHSM
+	/* allow only one process who can receive the notification */
+	spinlock_t		fhsm_spin;
+	pid_t			fhsm_pid;
+	wait_queue_head_t	fhsm_wqh;
+	atomic_t		fhsm_readable;
+
+	/* these are protected by si_rwsem */
+	unsigned long		fhsm_expire;
+	aufs_bindex_t		fhsm_bottom;
+#endif
+};
+
+struct au_branch;
+struct au_sbinfo {
+	/* nowait tasks in the system-wide workqueue */
+	struct au_nowait_tasks	si_nowait;
+
+	/*
+	 * tried sb->s_umount, but failed due to the dependency between i_mutex.
+	 * rwsem for au_sbinfo is necessary.
+	 */
+	struct au_rwsem		si_rwsem;
+
+	/*
+	 * dirty approach to protect sb->sb_inodes and ->s_files (gone) from
+	 * remount.
+	 */
+	au_lcnt_t		si_ninodes, si_nfiles;
+
+	/* branch management */
+	unsigned int		si_generation;
+
+	/* see AuSi_ flags */
+	unsigned char		au_si_status;
+
+	aufs_bindex_t		si_bbot;
+
+	/* dirty trick to keep br_id plus */
+	unsigned int		si_last_br_id :
+				sizeof(aufs_bindex_t) * BITS_PER_BYTE - 1;
+	struct au_branch	**si_branch;
+
+	/* policy to select a writable branch */
+	unsigned char		si_wbr_copyup;
+	unsigned char		si_wbr_create;
+	struct au_wbr_copyup_operations *si_wbr_copyup_ops;
+	struct au_wbr_create_operations *si_wbr_create_ops;
+
+	/* round robin */
+	atomic_t		si_wbr_rr_next;
+
+	/* most free space */
+	struct au_wbr_mfs	si_wbr_mfs;
+
+	/* File-based Hierarchical Storage Management */
+	struct au_fhsm		si_fhsm;
+
+	/* mount flags */
+	/* include/asm-ia64/siginfo.h defines a macro named si_flags */
+	unsigned int		si_mntflags;
+
+	/* external inode number (bitmap and translation table) */
+	vfs_readf_t		si_xread;
+	vfs_writef_t		si_xwrite;
+	loff_t			si_ximaxent;	/* max entries in a xino */
+
+	struct file		*si_xib;
+	struct mutex		si_xib_mtx; /* protect xib members */
+	unsigned long		*si_xib_buf;
+	unsigned long		si_xib_last_pindex;
+	int			si_xib_next_bit;
+
+	unsigned long		si_xino_jiffy;
+	unsigned long		si_xino_expire;
+	/* reserved for future use */
+	/* unsigned long long	si_xib_limit; */	/* Max xib file size */
+
+#ifdef CONFIG_AUFS_EXPORT
+	/* i_generation */
+	/* todo: make xigen file an array to support many inode numbers */
+	struct file		*si_xigen;
+	atomic_t		si_xigen_next;
+#endif
+
+	/* dirty trick to support atomic_open */
+	struct hlist_bl_head	si_aopen;
+
+	/* vdir parameters */
+	unsigned long		si_rdcache;	/* max cache time in jiffies */
+	unsigned int		si_rdblk;	/* deblk size */
+	unsigned int		si_rdhash;	/* hash size */
+
+	/*
+	 * If the number of whiteouts are larger than si_dirwh, leave all of
+	 * them after au_whtmp_ren to reduce the cost of rmdir(2).
+	 * future fsck.aufs or kernel thread will remove them later.
+	 * Otherwise, remove all whiteouts and the dir in rmdir(2).
+	 */
+	unsigned int		si_dirwh;
+
+	/* pseudo_link list */
+	struct hlist_bl_head	si_plink[AuPlink_NHASH];
+	wait_queue_head_t	si_plink_wq;
+	spinlock_t		si_plink_maint_lock;
+	pid_t			si_plink_maint_pid;
+
+	/* file list */
+	struct hlist_bl_head	si_files;
+
+	/* with/without getattr, brother of sb->s_d_op */
+	const struct inode_operations *si_iop_array;
+
+	/*
+	 * sysfs and lifetime management.
+	 * this is not a small structure and it may be a waste of memory in case
+	 * of sysfs is disabled, particularly when many aufs-es are mounted.
+	 * but using sysfs is majority.
+	 */
+	struct kobject		si_kobj;
+#ifdef CONFIG_DEBUG_FS
+	struct dentry		 *si_dbgaufs;
+	struct dentry		 *si_dbgaufs_plink;
+	struct dentry		 *si_dbgaufs_xib;
+#ifdef CONFIG_AUFS_EXPORT
+	struct dentry		 *si_dbgaufs_xigen;
+#endif
+#endif
+
+#ifdef CONFIG_AUFS_SBILIST
+	struct hlist_bl_node	si_list;
+#endif
+
+	/* dirty, necessary for unmounting, sysfs and sysrq */
+	struct super_block	*si_sb;
+};
+
+/* sbinfo status flags */
+/*
+ * set true when refresh_dirs() failed at remount time.
+ * then try refreshing dirs at access time again.
+ * if it is false, refreshing dirs at access time is unnecessary
+ */
+#define AuSi_FAILED_REFRESH_DIR	1
+#define AuSi_FHSM		(1 << 1)	/* fhsm is active now */
+#define AuSi_NO_DREVAL		(1 << 2)	/* disable all d_revalidate */
+
+#ifndef CONFIG_AUFS_FHSM
+#undef AuSi_FHSM
+#define AuSi_FHSM		0
+#endif
+
+static inline unsigned char au_do_ftest_si(struct au_sbinfo *sbi,
+					   unsigned int flag)
+{
+	AuRwMustAnyLock(&sbi->si_rwsem);
+	return sbi->au_si_status & flag;
+}
+#define au_ftest_si(sbinfo, name)	au_do_ftest_si(sbinfo, AuSi_##name)
+#define au_fset_si(sbinfo, name) do { \
+	AuRwMustWriteLock(&(sbinfo)->si_rwsem); \
+	(sbinfo)->au_si_status |= AuSi_##name; \
+} while (0)
+#define au_fclr_si(sbinfo, name) do { \
+	AuRwMustWriteLock(&(sbinfo)->si_rwsem); \
+	(sbinfo)->au_si_status &= ~AuSi_##name; \
+} while (0)
+
+/* ---------------------------------------------------------------------- */
+
+/* policy to select one among writable branches */
+#define AuWbrCopyup(sbinfo, ...) \
+	((sbinfo)->si_wbr_copyup_ops->copyup(__VA_ARGS__))
+#define AuWbrCreate(sbinfo, ...) \
+	((sbinfo)->si_wbr_create_ops->create(__VA_ARGS__))
+
+/* flags for si_read_lock()/aufs_read_lock()/di_read_lock() */
+#define AuLock_DW		1		/* write-lock dentry */
+#define AuLock_IR		(1 << 1)	/* read-lock inode */
+#define AuLock_IW		(1 << 2)	/* write-lock inode */
+#define AuLock_FLUSH		(1 << 3)	/* wait for 'nowait' tasks */
+#define AuLock_DIRS		(1 << 4)	/* target is a pair of dirs */
+						/* except RENAME_EXCHANGE */
+#define AuLock_NOPLM		(1 << 5)	/* return err in plm mode */
+#define AuLock_NOPLMW		(1 << 6)	/* wait for plm mode ends */
+#define AuLock_GEN		(1 << 7)	/* test digen/iigen */
+#define au_ftest_lock(flags, name)	((flags) & AuLock_##name)
+#define au_fset_lock(flags, name) \
+	do { (flags) |= AuLock_##name; } while (0)
+#define au_fclr_lock(flags, name) \
+	do { (flags) &= ~AuLock_##name; } while (0)
+
+/* ---------------------------------------------------------------------- */
+
+/* super.c */
+extern struct file_system_type aufs_fs_type;
+struct inode *au_iget_locked(struct super_block *sb, ino_t ino);
+typedef unsigned long long (*au_arraycb_t)(struct super_block *sb, void *array,
+					   unsigned long long max, void *arg);
+void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb,
+		     struct super_block *sb, void *arg);
+struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max);
+void au_iarray_free(struct inode **a, unsigned long long max);
+
+/* sbinfo.c */
+void au_si_free(struct kobject *kobj);
+int au_si_alloc(struct super_block *sb);
+int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr, int may_shrink);
+
+unsigned int au_sigen_inc(struct super_block *sb);
+aufs_bindex_t au_new_br_id(struct super_block *sb);
+
+int si_read_lock(struct super_block *sb, int flags);
+int si_write_lock(struct super_block *sb, int flags);
+int aufs_read_lock(struct dentry *dentry, int flags);
+void aufs_read_unlock(struct dentry *dentry, int flags);
+void aufs_write_lock(struct dentry *dentry);
+void aufs_write_unlock(struct dentry *dentry);
+int aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags);
+void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2);
+
+/* wbr_policy.c */
+extern struct au_wbr_copyup_operations au_wbr_copyup_ops[];
+extern struct au_wbr_create_operations au_wbr_create_ops[];
+int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst);
+int au_wbr_nonopq(struct dentry *dentry, aufs_bindex_t bindex);
+int au_wbr_do_copyup_bu(struct dentry *dentry, aufs_bindex_t btop);
+
+/* mvdown.c */
+int au_mvdown(struct dentry *dentry, struct aufs_mvdown __user *arg);
+
+#ifdef CONFIG_AUFS_FHSM
+/* fhsm.c */
+
+static inline pid_t au_fhsm_pid(struct au_fhsm *fhsm)
+{
+	pid_t pid;
+
+	spin_lock(&fhsm->fhsm_spin);
+	pid = fhsm->fhsm_pid;
+	spin_unlock(&fhsm->fhsm_spin);
+
+	return pid;
+}
+
+void au_fhsm_wrote(struct super_block *sb, aufs_bindex_t bindex, int force);
+void au_fhsm_wrote_all(struct super_block *sb, int force);
+int au_fhsm_fd(struct super_block *sb, int oflags);
+int au_fhsm_br_alloc(struct au_branch *br);
+void au_fhsm_set_bottom(struct super_block *sb, aufs_bindex_t bindex);
+void au_fhsm_fin(struct super_block *sb);
+void au_fhsm_init(struct au_sbinfo *sbinfo);
+void au_fhsm_set(struct au_sbinfo *sbinfo, unsigned int sec);
+void au_fhsm_show(struct seq_file *seq, struct au_sbinfo *sbinfo);
+#else
+AuStubVoid(au_fhsm_wrote, struct super_block *sb, aufs_bindex_t bindex,
+	   int force)
+AuStubVoid(au_fhsm_wrote_all, struct super_block *sb, int force)
+AuStub(int, au_fhsm_fd, return -EOPNOTSUPP, struct super_block *sb, int oflags)
+AuStub(pid_t, au_fhsm_pid, return 0, struct au_fhsm *fhsm)
+AuStubInt0(au_fhsm_br_alloc, struct au_branch *br)
+AuStubVoid(au_fhsm_set_bottom, struct super_block *sb, aufs_bindex_t bindex)
+AuStubVoid(au_fhsm_fin, struct super_block *sb)
+AuStubVoid(au_fhsm_init, struct au_sbinfo *sbinfo)
+AuStubVoid(au_fhsm_set, struct au_sbinfo *sbinfo, unsigned int sec)
+AuStubVoid(au_fhsm_show, struct seq_file *seq, struct au_sbinfo *sbinfo)
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_sbinfo *au_sbi(struct super_block *sb)
+{
+	return sb->s_fs_info;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_EXPORT
+int au_test_nfsd(void);
+void au_export_init(struct super_block *sb);
+void au_xigen_inc(struct inode *inode);
+int au_xigen_new(struct inode *inode);
+int au_xigen_set(struct super_block *sb, struct path *path);
+void au_xigen_clr(struct super_block *sb);
+
+static inline int au_busy_or_stale(void)
+{
+	if (!au_test_nfsd())
+		return -EBUSY;
+	return -ESTALE;
+}
+#else
+AuStubInt0(au_test_nfsd, void)
+AuStubVoid(au_export_init, struct super_block *sb)
+AuStubVoid(au_xigen_inc, struct inode *inode)
+AuStubInt0(au_xigen_new, struct inode *inode)
+AuStubInt0(au_xigen_set, struct super_block *sb, struct path *path)
+AuStubVoid(au_xigen_clr, struct super_block *sb)
+AuStub(int, au_busy_or_stale, return -EBUSY, void)
+#endif /* CONFIG_AUFS_EXPORT */
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_SBILIST
+/* module.c */
+extern struct hlist_bl_head au_sbilist;
+
+static inline void au_sbilist_init(void)
+{
+	INIT_HLIST_BL_HEAD(&au_sbilist);
+}
+
+static inline void au_sbilist_add(struct super_block *sb)
+{
+	au_hbl_add(&au_sbi(sb)->si_list, &au_sbilist);
+}
+
+static inline void au_sbilist_del(struct super_block *sb)
+{
+	au_hbl_del(&au_sbi(sb)->si_list, &au_sbilist);
+}
+
+#ifdef CONFIG_AUFS_MAGIC_SYSRQ
+static inline void au_sbilist_lock(void)
+{
+	hlist_bl_lock(&au_sbilist);
+}
+
+static inline void au_sbilist_unlock(void)
+{
+	hlist_bl_unlock(&au_sbilist);
+}
+#define AuGFP_SBILIST	GFP_ATOMIC
+#else
+AuStubVoid(au_sbilist_lock, void)
+AuStubVoid(au_sbilist_unlock, void)
+#define AuGFP_SBILIST	GFP_NOFS
+#endif /* CONFIG_AUFS_MAGIC_SYSRQ */
+#else
+AuStubVoid(au_sbilist_init, void)
+AuStubVoid(au_sbilist_add, struct super_block *sb)
+AuStubVoid(au_sbilist_del, struct super_block *sb)
+AuStubVoid(au_sbilist_lock, void)
+AuStubVoid(au_sbilist_unlock, void)
+#define AuGFP_SBILIST	GFP_NOFS
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static inline void dbgaufs_si_null(struct au_sbinfo *sbinfo)
+{
+	/*
+	 * This function is a dynamic '__init' function actually,
+	 * so the tiny check for si_rwsem is unnecessary.
+	 */
+	/* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+#ifdef CONFIG_DEBUG_FS
+	sbinfo->si_dbgaufs = NULL;
+	sbinfo->si_dbgaufs_plink = NULL;
+	sbinfo->si_dbgaufs_xib = NULL;
+#ifdef CONFIG_AUFS_EXPORT
+	sbinfo->si_dbgaufs_xigen = NULL;
+#endif
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* current->atomic_flags */
+/* this value should never corrupt the ones defined in linux/sched.h */
+#define PFA_AUFS	0x10
+
+TASK_PFA_TEST(AUFS, test_aufs)	/* task_test_aufs */
+TASK_PFA_SET(AUFS, aufs)	/* task_set_aufs */
+TASK_PFA_CLEAR(AUFS, aufs)	/* task_clear_aufs */
+
+static inline int si_pid_test(struct super_block *sb)
+{
+	return !!task_test_aufs(current);
+}
+
+static inline void si_pid_clr(struct super_block *sb)
+{
+	AuDebugOn(!task_test_aufs(current));
+	task_clear_aufs(current);
+}
+
+static inline void si_pid_set(struct super_block *sb)
+{
+	AuDebugOn(task_test_aufs(current));
+	task_set_aufs(current);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* lock superblock. mainly for entry point functions */
+#define __si_read_lock(sb)	au_rw_read_lock(&au_sbi(sb)->si_rwsem)
+#define __si_write_lock(sb)	au_rw_write_lock(&au_sbi(sb)->si_rwsem)
+#define __si_read_trylock(sb)	au_rw_read_trylock(&au_sbi(sb)->si_rwsem)
+#define __si_write_trylock(sb)	au_rw_write_trylock(&au_sbi(sb)->si_rwsem)
+/*
+#define __si_read_trylock_nested(sb) \
+	au_rw_read_trylock_nested(&au_sbi(sb)->si_rwsem)
+#define __si_write_trylock_nested(sb) \
+	au_rw_write_trylock_nested(&au_sbi(sb)->si_rwsem)
+*/
+
+#define __si_read_unlock(sb)	au_rw_read_unlock(&au_sbi(sb)->si_rwsem)
+#define __si_write_unlock(sb)	au_rw_write_unlock(&au_sbi(sb)->si_rwsem)
+#define __si_downgrade_lock(sb)	au_rw_dgrade_lock(&au_sbi(sb)->si_rwsem)
+
+#define SiMustNoWaiters(sb)	AuRwMustNoWaiters(&au_sbi(sb)->si_rwsem)
+#define SiMustAnyLock(sb)	AuRwMustAnyLock(&au_sbi(sb)->si_rwsem)
+#define SiMustWriteLock(sb)	AuRwMustWriteLock(&au_sbi(sb)->si_rwsem)
+
+static inline void si_noflush_read_lock(struct super_block *sb)
+{
+	__si_read_lock(sb);
+	si_pid_set(sb);
+}
+
+static inline int si_noflush_read_trylock(struct super_block *sb)
+{
+	int locked;
+
+	locked = __si_read_trylock(sb);
+	if (locked)
+		si_pid_set(sb);
+	return locked;
+}
+
+static inline void si_noflush_write_lock(struct super_block *sb)
+{
+	__si_write_lock(sb);
+	si_pid_set(sb);
+}
+
+static inline int si_noflush_write_trylock(struct super_block *sb)
+{
+	int locked;
+
+	locked = __si_write_trylock(sb);
+	if (locked)
+		si_pid_set(sb);
+	return locked;
+}
+
+#if 0 /* reserved */
+static inline int si_read_trylock(struct super_block *sb, int flags)
+{
+	if (au_ftest_lock(flags, FLUSH))
+		au_nwt_flush(&au_sbi(sb)->si_nowait);
+	return si_noflush_read_trylock(sb);
+}
+#endif
+
+static inline void si_read_unlock(struct super_block *sb)
+{
+	si_pid_clr(sb);
+	__si_read_unlock(sb);
+}
+
+#if 0 /* reserved */
+static inline int si_write_trylock(struct super_block *sb, int flags)
+{
+	if (au_ftest_lock(flags, FLUSH))
+		au_nwt_flush(&au_sbi(sb)->si_nowait);
+	return si_noflush_write_trylock(sb);
+}
+#endif
+
+static inline void si_write_unlock(struct super_block *sb)
+{
+	si_pid_clr(sb);
+	__si_write_unlock(sb);
+}
+
+#if 0 /* reserved */
+static inline void si_downgrade_lock(struct super_block *sb)
+{
+	__si_downgrade_lock(sb);
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static inline aufs_bindex_t au_sbbot(struct super_block *sb)
+{
+	SiMustAnyLock(sb);
+	return au_sbi(sb)->si_bbot;
+}
+
+static inline unsigned int au_mntflags(struct super_block *sb)
+{
+	SiMustAnyLock(sb);
+	return au_sbi(sb)->si_mntflags;
+}
+
+static inline unsigned int au_sigen(struct super_block *sb)
+{
+	SiMustAnyLock(sb);
+	return au_sbi(sb)->si_generation;
+}
+
+static inline struct au_branch *au_sbr(struct super_block *sb,
+				       aufs_bindex_t bindex)
+{
+	SiMustAnyLock(sb);
+	return au_sbi(sb)->si_branch[0 + bindex];
+}
+
+static inline loff_t au_xi_maxent(struct super_block *sb)
+{
+	SiMustAnyLock(sb);
+	return au_sbi(sb)->si_ximaxent;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_SUPER_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/sysaufs.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/sysaufs.c
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sysfs interface and lifetime management
+ * they are necessary regardless sysfs is disabled.
+ */
+
+#include <linux/random.h>
+#include "aufs.h"
+
+unsigned long sysaufs_si_mask;
+struct kset *sysaufs_kset;
+
+#define AuSiAttr(_name) { \
+	.attr   = { .name = __stringify(_name), .mode = 0444 },	\
+	.show   = sysaufs_si_##_name,				\
+}
+
+static struct sysaufs_si_attr sysaufs_si_attr_xi_path = AuSiAttr(xi_path);
+struct attribute *sysaufs_si_attrs[] = {
+	&sysaufs_si_attr_xi_path.attr,
+	NULL,
+};
+
+static const struct sysfs_ops au_sbi_ops = {
+	.show   = sysaufs_si_show
+};
+
+static struct kobj_type au_sbi_ktype = {
+	.release	= au_si_free,
+	.sysfs_ops	= &au_sbi_ops,
+	.default_attrs	= sysaufs_si_attrs
+};
+
+/* ---------------------------------------------------------------------- */
+
+int sysaufs_si_init(struct au_sbinfo *sbinfo)
+{
+	int err;
+
+	sbinfo->si_kobj.kset = sysaufs_kset;
+	/* cf. sysaufs_name() */
+	err = kobject_init_and_add
+		(&sbinfo->si_kobj, &au_sbi_ktype, /*&sysaufs_kset->kobj*/NULL,
+		 SysaufsSiNamePrefix "%lx", sysaufs_si_id(sbinfo));
+
+	return err;
+}
+
+void sysaufs_fin(void)
+{
+	sysfs_remove_group(&sysaufs_kset->kobj, sysaufs_attr_group);
+	kset_unregister(sysaufs_kset);
+}
+
+int __init sysaufs_init(void)
+{
+	int err;
+
+	do {
+		get_random_bytes(&sysaufs_si_mask, sizeof(sysaufs_si_mask));
+	} while (!sysaufs_si_mask);
+
+	err = -EINVAL;
+	sysaufs_kset = kset_create_and_add(AUFS_NAME, NULL, fs_kobj);
+	if (unlikely(!sysaufs_kset))
+		goto out;
+	err = PTR_ERR(sysaufs_kset);
+	if (IS_ERR(sysaufs_kset))
+		goto out;
+	err = sysfs_create_group(&sysaufs_kset->kobj, sysaufs_attr_group);
+	if (unlikely(err))
+		kset_unregister(sysaufs_kset);
+
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/sysaufs.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/sysaufs.h
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sysfs interface and mount lifetime management
+ */
+
+#ifndef __SYSAUFS_H__
+#define __SYSAUFS_H__
+
+#ifdef __KERNEL__
+
+#include <linux/sysfs.h>
+#include "module.h"
+
+struct super_block;
+struct au_sbinfo;
+
+struct sysaufs_si_attr {
+	struct attribute attr;
+	int (*show)(struct seq_file *seq, struct super_block *sb);
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* sysaufs.c */
+extern unsigned long sysaufs_si_mask;
+extern struct kset *sysaufs_kset;
+extern struct attribute *sysaufs_si_attrs[];
+int sysaufs_si_init(struct au_sbinfo *sbinfo);
+int __init sysaufs_init(void);
+void sysaufs_fin(void);
+
+/* ---------------------------------------------------------------------- */
+
+/* some people doesn't like to show a pointer in kernel */
+static inline unsigned long sysaufs_si_id(struct au_sbinfo *sbinfo)
+{
+	return sysaufs_si_mask ^ (unsigned long)sbinfo;
+}
+
+#define SysaufsSiNamePrefix	"si_"
+#define SysaufsSiNameLen	(sizeof(SysaufsSiNamePrefix) + 16)
+static inline void sysaufs_name(struct au_sbinfo *sbinfo, char *name)
+{
+	snprintf(name, SysaufsSiNameLen, SysaufsSiNamePrefix "%lx",
+		 sysaufs_si_id(sbinfo));
+}
+
+struct au_branch;
+#ifdef CONFIG_SYSFS
+/* sysfs.c */
+extern struct attribute_group *sysaufs_attr_group;
+
+int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb);
+ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr,
+			 char *buf);
+long au_brinfo_ioctl(struct file *file, unsigned long arg);
+#ifdef CONFIG_COMPAT
+long au_brinfo_compat_ioctl(struct file *file, unsigned long arg);
+#endif
+
+void sysaufs_br_init(struct au_branch *br);
+void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex);
+void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex);
+
+#define sysaufs_brs_init()	do {} while (0)
+
+#else
+#define sysaufs_attr_group	NULL
+
+AuStubInt0(sysaufs_si_xi_path, struct seq_file *seq, struct super_block *sb)
+AuStub(ssize_t, sysaufs_si_show, return 0, struct kobject *kobj,
+       struct attribute *attr, char *buf)
+AuStubVoid(sysaufs_br_init, struct au_branch *br)
+AuStubVoid(sysaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex)
+AuStubVoid(sysaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex)
+
+static inline void sysaufs_brs_init(void)
+{
+	sysaufs_brs = 0;
+}
+
+#endif /* CONFIG_SYSFS */
+
+#endif /* __KERNEL__ */
+#endif /* __SYSAUFS_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/sysfs.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/sysfs.c
@@ -0,0 +1,374 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sysfs interface
+ */
+
+#include <linux/compat.h>
+#include <linux/seq_file.h>
+#include "aufs.h"
+
+#ifdef CONFIG_AUFS_FS_MODULE
+/* this entry violates the "one line per file" policy of sysfs */
+static ssize_t config_show(struct kobject *kobj, struct kobj_attribute *attr,
+			   char *buf)
+{
+	ssize_t err;
+	static char *conf =
+/* this file is generated at compiling */
+#include "conf.str"
+		;
+
+	err = snprintf(buf, PAGE_SIZE, conf);
+	if (unlikely(err >= PAGE_SIZE))
+		err = -EFBIG;
+	return err;
+}
+
+static struct kobj_attribute au_config_attr = __ATTR_RO(config);
+#endif
+
+static struct attribute *au_attr[] = {
+#ifdef CONFIG_AUFS_FS_MODULE
+	&au_config_attr.attr,
+#endif
+	NULL,	/* need to NULL terminate the list of attributes */
+};
+
+static struct attribute_group sysaufs_attr_group_body = {
+	.attrs = au_attr
+};
+
+struct attribute_group *sysaufs_attr_group = &sysaufs_attr_group_body;
+
+/* ---------------------------------------------------------------------- */
+
+int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb)
+{
+	int err;
+
+	SiMustAnyLock(sb);
+
+	err = 0;
+	if (au_opt_test(au_mntflags(sb), XINO)) {
+		err = au_xino_path(seq, au_sbi(sb)->si_xib);
+		seq_putc(seq, '\n');
+	}
+	return err;
+}
+
+/*
+ * the lifetime of branch is independent from the entry under sysfs.
+ * sysfs handles the lifetime of the entry, and never call ->show() after it is
+ * unlinked.
+ */
+static int sysaufs_si_br(struct seq_file *seq, struct super_block *sb,
+			 aufs_bindex_t bindex, int idx)
+{
+	int err;
+	struct path path;
+	struct dentry *root;
+	struct au_branch *br;
+	au_br_perm_str_t perm;
+
+	AuDbg("b%d\n", bindex);
+
+	err = 0;
+	root = sb->s_root;
+	di_read_lock_parent(root, !AuLock_IR);
+	br = au_sbr(sb, bindex);
+
+	switch (idx) {
+	case AuBrSysfs_BR:
+		path.mnt = au_br_mnt(br);
+		path.dentry = au_h_dptr(root, bindex);
+		err = au_seq_path(seq, &path);
+		if (!err) {
+			au_optstr_br_perm(&perm, br->br_perm);
+			seq_printf(seq, "=%s\n", perm.a);
+		}
+		break;
+	case AuBrSysfs_BRID:
+		seq_printf(seq, "%d\n", br->br_id);
+		break;
+	}
+	di_read_unlock(root, !AuLock_IR);
+	if (unlikely(err || seq_has_overflowed(seq)))
+		err = -E2BIG;
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct seq_file *au_seq(char *p, ssize_t len)
+{
+	struct seq_file *seq;
+
+	seq = kzalloc(sizeof(*seq), GFP_NOFS);
+	if (seq) {
+		/* mutex_init(&seq.lock); */
+		seq->buf = p;
+		seq->size = len;
+		return seq; /* success */
+	}
+
+	seq = ERR_PTR(-ENOMEM);
+	return seq;
+}
+
+#define SysaufsBr_PREFIX	"br"
+#define SysaufsBrid_PREFIX	"brid"
+
+/* todo: file size may exceed PAGE_SIZE */
+ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr,
+			char *buf)
+{
+	ssize_t err;
+	int idx;
+	long l;
+	aufs_bindex_t bbot;
+	struct au_sbinfo *sbinfo;
+	struct super_block *sb;
+	struct seq_file *seq;
+	char *name;
+	struct attribute **cattr;
+
+	sbinfo = container_of(kobj, struct au_sbinfo, si_kobj);
+	sb = sbinfo->si_sb;
+
+	/*
+	 * prevent a race condition between sysfs and aufs.
+	 * for instance, sysfs_file_read() calls sysfs_get_active_two() which
+	 * prohibits maintaining the sysfs entries.
+	 * hew we acquire read lock after sysfs_get_active_two().
+	 * on the other hand, the remount process may maintain the sysfs/aufs
+	 * entries after acquiring write lock.
+	 * it can cause a deadlock.
+	 * simply we gave up processing read here.
+	 */
+	err = -EBUSY;
+	if (unlikely(!si_noflush_read_trylock(sb)))
+		goto out;
+
+	seq = au_seq(buf, PAGE_SIZE);
+	err = PTR_ERR(seq);
+	if (IS_ERR(seq))
+		goto out_unlock;
+
+	name = (void *)attr->name;
+	cattr = sysaufs_si_attrs;
+	while (*cattr) {
+		if (!strcmp(name, (*cattr)->name)) {
+			err = container_of(*cattr, struct sysaufs_si_attr, attr)
+				->show(seq, sb);
+			goto out_seq;
+		}
+		cattr++;
+	}
+
+	if (!strncmp(name, SysaufsBrid_PREFIX,
+		     sizeof(SysaufsBrid_PREFIX) - 1)) {
+		idx = AuBrSysfs_BRID;
+		name += sizeof(SysaufsBrid_PREFIX) - 1;
+	} else if (!strncmp(name, SysaufsBr_PREFIX,
+			    sizeof(SysaufsBr_PREFIX) - 1)) {
+		idx = AuBrSysfs_BR;
+		name += sizeof(SysaufsBr_PREFIX) - 1;
+	} else
+		  BUG();
+
+	err = kstrtol(name, 10, &l);
+	if (!err) {
+		bbot = au_sbbot(sb);
+		if (l <= bbot)
+			err = sysaufs_si_br(seq, sb, (aufs_bindex_t)l, idx);
+		else
+			err = -ENOENT;
+	}
+
+out_seq:
+	if (!err) {
+		err = seq->count;
+		/* sysfs limit */
+		if (unlikely(err == PAGE_SIZE))
+			err = -EFBIG;
+	}
+	au_kfree_rcu(seq);
+out_unlock:
+	si_read_unlock(sb);
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_brinfo(struct super_block *sb, union aufs_brinfo __user *arg)
+{
+	int err;
+	int16_t brid;
+	aufs_bindex_t bindex, bbot;
+	size_t sz;
+	char *buf;
+	struct seq_file *seq;
+	struct au_branch *br;
+
+	si_read_lock(sb, AuLock_FLUSH);
+	bbot = au_sbbot(sb);
+	err = bbot + 1;
+	if (!arg)
+		goto out;
+
+	err = -ENOMEM;
+	buf = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!buf))
+		goto out;
+
+	seq = au_seq(buf, PAGE_SIZE);
+	err = PTR_ERR(seq);
+	if (IS_ERR(seq))
+		goto out_buf;
+
+	sz = sizeof(*arg) - offsetof(union aufs_brinfo, path);
+	for (bindex = 0; bindex <= bbot; bindex++, arg++) {
+		/* VERIFY_WRITE */
+		err = !access_ok(arg, sizeof(*arg));
+		if (unlikely(err))
+			break;
+
+		br = au_sbr(sb, bindex);
+		brid = br->br_id;
+		BUILD_BUG_ON(sizeof(brid) != sizeof(arg->id));
+		err = __put_user(brid, &arg->id);
+		if (unlikely(err))
+			break;
+
+		BUILD_BUG_ON(sizeof(br->br_perm) != sizeof(arg->perm));
+		err = __put_user(br->br_perm, &arg->perm);
+		if (unlikely(err))
+			break;
+
+		err = au_seq_path(seq, &br->br_path);
+		if (unlikely(err))
+			break;
+		seq_putc(seq, '\0');
+		if (!seq_has_overflowed(seq)) {
+			err = copy_to_user(arg->path, seq->buf, seq->count);
+			seq->count = 0;
+			if (unlikely(err))
+				break;
+		} else {
+			err = -E2BIG;
+			goto out_seq;
+		}
+	}
+	if (unlikely(err))
+		err = -EFAULT;
+
+out_seq:
+	au_kfree_rcu(seq);
+out_buf:
+	free_page((unsigned long)buf);
+out:
+	si_read_unlock(sb);
+	return err;
+}
+
+long au_brinfo_ioctl(struct file *file, unsigned long arg)
+{
+	return au_brinfo(file->f_path.dentry->d_sb, (void __user *)arg);
+}
+
+#ifdef CONFIG_COMPAT
+long au_brinfo_compat_ioctl(struct file *file, unsigned long arg)
+{
+	return au_brinfo(file->f_path.dentry->d_sb, compat_ptr(arg));
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+void sysaufs_br_init(struct au_branch *br)
+{
+	int i;
+	struct au_brsysfs *br_sysfs;
+	struct attribute *attr;
+
+	br_sysfs = br->br_sysfs;
+	for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) {
+		attr = &br_sysfs->attr;
+		sysfs_attr_init(attr);
+		attr->name = br_sysfs->name;
+		attr->mode = 0444;
+		br_sysfs++;
+	}
+}
+
+void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex)
+{
+	struct au_branch *br;
+	struct kobject *kobj;
+	struct au_brsysfs *br_sysfs;
+	int i;
+	aufs_bindex_t bbot;
+
+	if (!sysaufs_brs)
+		return;
+
+	kobj = &au_sbi(sb)->si_kobj;
+	bbot = au_sbbot(sb);
+	for (; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		br_sysfs = br->br_sysfs;
+		for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) {
+			sysfs_remove_file(kobj, &br_sysfs->attr);
+			br_sysfs++;
+		}
+	}
+}
+
+void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex)
+{
+	int err, i;
+	aufs_bindex_t bbot;
+	struct kobject *kobj;
+	struct au_branch *br;
+	struct au_brsysfs *br_sysfs;
+
+	if (!sysaufs_brs)
+		return;
+
+	kobj = &au_sbi(sb)->si_kobj;
+	bbot = au_sbbot(sb);
+	for (; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		br_sysfs = br->br_sysfs;
+		snprintf(br_sysfs[AuBrSysfs_BR].name, sizeof(br_sysfs->name),
+			 SysaufsBr_PREFIX "%d", bindex);
+		snprintf(br_sysfs[AuBrSysfs_BRID].name, sizeof(br_sysfs->name),
+			 SysaufsBrid_PREFIX "%d", bindex);
+		for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) {
+			err = sysfs_create_file(kobj, &br_sysfs->attr);
+			if (unlikely(err))
+				pr_warn("failed %s under sysfs(%d)\n",
+					br_sysfs->name, err);
+			br_sysfs++;
+		}
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/sysrq.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/sysrq.c
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * magic sysrq handler
+ */
+
+/* #include <linux/sysrq.h> */
+#include <linux/writeback.h>
+#include "aufs.h"
+
+/* ---------------------------------------------------------------------- */
+
+static void sysrq_sb(struct super_block *sb)
+{
+	char *plevel;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+	struct hlist_bl_head *files;
+	struct hlist_bl_node *pos;
+	struct au_finfo *finfo;
+	struct inode *i;
+
+	plevel = au_plevel;
+	au_plevel = KERN_WARNING;
+
+	/* since we define pr_fmt, call printk directly */
+#define pr(str) printk(KERN_WARNING AUFS_NAME ": " str)
+
+	sbinfo = au_sbi(sb);
+	printk(KERN_WARNING "si=%lx\n", sysaufs_si_id(sbinfo));
+	pr("superblock\n");
+	au_dpri_sb(sb);
+
+#if 0 /* reserved */
+	do {
+		int err, i, j, ndentry;
+		struct au_dcsub_pages dpages;
+		struct au_dpage *dpage;
+
+		err = au_dpages_init(&dpages, GFP_ATOMIC);
+		if (unlikely(err))
+			break;
+		err = au_dcsub_pages(&dpages, sb->s_root, NULL, NULL);
+		if (!err)
+			for (i = 0; i < dpages.ndpage; i++) {
+				dpage = dpages.dpages + i;
+				ndentry = dpage->ndentry;
+				for (j = 0; j < ndentry; j++)
+					au_dpri_dentry(dpage->dentries[j]);
+			}
+		au_dpages_free(&dpages);
+	} while (0);
+#endif
+
+	pr("isolated inode\n");
+	spin_lock(&sb->s_inode_list_lock);
+	list_for_each_entry(i, &sb->s_inodes, i_sb_list) {
+		spin_lock(&i->i_lock);
+		if (hlist_empty(&i->i_dentry))
+			au_dpri_inode(i);
+		spin_unlock(&i->i_lock);
+	}
+	spin_unlock(&sb->s_inode_list_lock);
+
+	pr("files\n");
+	files = &au_sbi(sb)->si_files;
+	hlist_bl_lock(files);
+	hlist_bl_for_each_entry(finfo, pos, files, fi_hlist) {
+		umode_t mode;
+
+		file = finfo->fi_file;
+		mode = file_inode(file)->i_mode;
+		if (!special_file(mode))
+			au_dpri_file(file);
+	}
+	hlist_bl_unlock(files);
+	pr("done\n");
+
+#undef pr
+	au_plevel = plevel;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* module parameter */
+static char *aufs_sysrq_key = "a";
+module_param_named(sysrq, aufs_sysrq_key, charp, 0444);
+MODULE_PARM_DESC(sysrq, "MagicSysRq key for " AUFS_NAME);
+
+static void au_sysrq(int key __maybe_unused)
+{
+	struct au_sbinfo *sbinfo;
+	struct hlist_bl_node *pos;
+
+	lockdep_off();
+	au_sbilist_lock();
+	hlist_bl_for_each_entry(sbinfo, pos, &au_sbilist, si_list)
+		sysrq_sb(sbinfo->si_sb);
+	au_sbilist_unlock();
+	lockdep_on();
+}
+
+static struct sysrq_key_op au_sysrq_op = {
+	.handler	= au_sysrq,
+	.help_msg	= "Aufs",
+	.action_msg	= "Aufs",
+	.enable_mask	= SYSRQ_ENABLE_DUMP
+};
+
+/* ---------------------------------------------------------------------- */
+
+int __init au_sysrq_init(void)
+{
+	int err;
+	char key;
+
+	err = -1;
+	key = *aufs_sysrq_key;
+	if ('a' <= key && key <= 'z')
+		err = register_sysrq_key(key, &au_sysrq_op);
+	if (unlikely(err))
+		pr_err("err %d, sysrq=%c\n", err, key);
+	return err;
+}
+
+void au_sysrq_fin(void)
+{
+	int err;
+
+	err = unregister_sysrq_key(*aufs_sysrq_key, &au_sysrq_op);
+	if (unlikely(err))
+		pr_err("err %d (ignored)\n", err);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/vdir.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/vdir.c
@@ -0,0 +1,896 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * virtual or vertical directory
+ */
+
+#include <linux/iversion.h>
+#include "aufs.h"
+
+static unsigned int calc_size(int nlen)
+{
+	return ALIGN(sizeof(struct au_vdir_de) + nlen, sizeof(ino_t));
+}
+
+static int set_deblk_end(union au_vdir_deblk_p *p,
+			 union au_vdir_deblk_p *deblk_end)
+{
+	if (calc_size(0) <= deblk_end->deblk - p->deblk) {
+		p->de->de_str.len = 0;
+		/* smp_mb(); */
+		return 0;
+	}
+	return -1; /* error */
+}
+
+/* returns true or false */
+static int is_deblk_end(union au_vdir_deblk_p *p,
+			union au_vdir_deblk_p *deblk_end)
+{
+	if (calc_size(0) <= deblk_end->deblk - p->deblk)
+		return !p->de->de_str.len;
+	return 1;
+}
+
+static unsigned char *last_deblk(struct au_vdir *vdir)
+{
+	return vdir->vd_deblk[vdir->vd_nblk - 1];
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* estimate the appropriate size for name hash table */
+unsigned int au_rdhash_est(loff_t sz)
+{
+	unsigned int n;
+
+	n = UINT_MAX;
+	sz >>= 10;
+	if (sz < n)
+		n = sz;
+	if (sz < AUFS_RDHASH_DEF)
+		n = AUFS_RDHASH_DEF;
+	/* pr_info("n %u\n", n); */
+	return n;
+}
+
+/*
+ * the allocated memory has to be freed by
+ * au_nhash_wh_free() or au_nhash_de_free().
+ */
+int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp)
+{
+	struct hlist_head *head;
+	unsigned int u;
+	size_t sz;
+
+	sz = sizeof(*nhash->nh_head) * num_hash;
+	head = kmalloc(sz, gfp);
+	if (head) {
+		nhash->nh_num = num_hash;
+		nhash->nh_head = head;
+		for (u = 0; u < num_hash; u++)
+			INIT_HLIST_HEAD(head++);
+		return 0; /* success */
+	}
+
+	return -ENOMEM;
+}
+
+static void nhash_count(struct hlist_head *head)
+{
+#if 0 /* debugging */
+	unsigned long n;
+	struct hlist_node *pos;
+
+	n = 0;
+	hlist_for_each(pos, head)
+		n++;
+	pr_info("%lu\n", n);
+#endif
+}
+
+static void au_nhash_wh_do_free(struct hlist_head *head)
+{
+	struct au_vdir_wh *pos;
+	struct hlist_node *node;
+
+	hlist_for_each_entry_safe(pos, node, head, wh_hash)
+		au_kfree_rcu(pos);
+}
+
+static void au_nhash_de_do_free(struct hlist_head *head)
+{
+	struct au_vdir_dehstr *pos;
+	struct hlist_node *node;
+
+	hlist_for_each_entry_safe(pos, node, head, hash)
+		au_cache_free_vdir_dehstr(pos);
+}
+
+static void au_nhash_do_free(struct au_nhash *nhash,
+			     void (*free)(struct hlist_head *head))
+{
+	unsigned int n;
+	struct hlist_head *head;
+
+	n = nhash->nh_num;
+	if (!n)
+		return;
+
+	head = nhash->nh_head;
+	while (n-- > 0) {
+		nhash_count(head);
+		free(head++);
+	}
+	au_kfree_try_rcu(nhash->nh_head);
+}
+
+void au_nhash_wh_free(struct au_nhash *whlist)
+{
+	au_nhash_do_free(whlist, au_nhash_wh_do_free);
+}
+
+static void au_nhash_de_free(struct au_nhash *delist)
+{
+	au_nhash_do_free(delist, au_nhash_de_do_free);
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
+			    int limit)
+{
+	int num;
+	unsigned int u, n;
+	struct hlist_head *head;
+	struct au_vdir_wh *pos;
+
+	num = 0;
+	n = whlist->nh_num;
+	head = whlist->nh_head;
+	for (u = 0; u < n; u++, head++)
+		hlist_for_each_entry(pos, head, wh_hash)
+			if (pos->wh_bindex == btgt && ++num > limit)
+				return 1;
+	return 0;
+}
+
+static struct hlist_head *au_name_hash(struct au_nhash *nhash,
+				       unsigned char *name,
+				       unsigned int len)
+{
+	unsigned int v;
+	/* const unsigned int magic_bit = 12; */
+
+	AuDebugOn(!nhash->nh_num || !nhash->nh_head);
+
+	v = 0;
+	if (len > 8)
+		len = 8;
+	while (len--)
+		v += *name++;
+	/* v = hash_long(v, magic_bit); */
+	v %= nhash->nh_num;
+	return nhash->nh_head + v;
+}
+
+static int au_nhash_test_name(struct au_vdir_destr *str, const char *name,
+			      int nlen)
+{
+	return str->len == nlen && !memcmp(str->name, name, nlen);
+}
+
+/* returns found or not */
+int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen)
+{
+	struct hlist_head *head;
+	struct au_vdir_wh *pos;
+	struct au_vdir_destr *str;
+
+	head = au_name_hash(whlist, name, nlen);
+	hlist_for_each_entry(pos, head, wh_hash) {
+		str = &pos->wh_str;
+		AuDbg("%.*s\n", str->len, str->name);
+		if (au_nhash_test_name(str, name, nlen))
+			return 1;
+	}
+	return 0;
+}
+
+/* returns found(true) or not */
+static int test_known(struct au_nhash *delist, char *name, int nlen)
+{
+	struct hlist_head *head;
+	struct au_vdir_dehstr *pos;
+	struct au_vdir_destr *str;
+
+	head = au_name_hash(delist, name, nlen);
+	hlist_for_each_entry(pos, head, hash) {
+		str = pos->str;
+		AuDbg("%.*s\n", str->len, str->name);
+		if (au_nhash_test_name(str, name, nlen))
+			return 1;
+	}
+	return 0;
+}
+
+static void au_shwh_init_wh(struct au_vdir_wh *wh, ino_t ino,
+			    unsigned char d_type)
+{
+#ifdef CONFIG_AUFS_SHWH
+	wh->wh_ino = ino;
+	wh->wh_type = d_type;
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino,
+		       unsigned int d_type, aufs_bindex_t bindex,
+		       unsigned char shwh)
+{
+	int err;
+	struct au_vdir_destr *str;
+	struct au_vdir_wh *wh;
+
+	AuDbg("%.*s\n", nlen, name);
+	AuDebugOn(!whlist->nh_num || !whlist->nh_head);
+
+	err = -ENOMEM;
+	wh = kmalloc(sizeof(*wh) + nlen, GFP_NOFS);
+	if (unlikely(!wh))
+		goto out;
+
+	err = 0;
+	wh->wh_bindex = bindex;
+	if (shwh)
+		au_shwh_init_wh(wh, ino, d_type);
+	str = &wh->wh_str;
+	str->len = nlen;
+	memcpy(str->name, name, nlen);
+	hlist_add_head(&wh->wh_hash, au_name_hash(whlist, name, nlen));
+	/* smp_mb(); */
+
+out:
+	return err;
+}
+
+static int append_deblk(struct au_vdir *vdir)
+{
+	int err;
+	unsigned long ul;
+	const unsigned int deblk_sz = vdir->vd_deblk_sz;
+	union au_vdir_deblk_p p, deblk_end;
+	unsigned char **o;
+
+	err = -ENOMEM;
+	o = au_krealloc(vdir->vd_deblk, sizeof(*o) * (vdir->vd_nblk + 1),
+			GFP_NOFS, /*may_shrink*/0);
+	if (unlikely(!o))
+		goto out;
+
+	vdir->vd_deblk = o;
+	p.deblk = kmalloc(deblk_sz, GFP_NOFS);
+	if (p.deblk) {
+		ul = vdir->vd_nblk++;
+		vdir->vd_deblk[ul] = p.deblk;
+		vdir->vd_last.ul = ul;
+		vdir->vd_last.p.deblk = p.deblk;
+		deblk_end.deblk = p.deblk + deblk_sz;
+		err = set_deblk_end(&p, &deblk_end);
+	}
+
+out:
+	return err;
+}
+
+static int append_de(struct au_vdir *vdir, char *name, int nlen, ino_t ino,
+		     unsigned int d_type, struct au_nhash *delist)
+{
+	int err;
+	unsigned int sz;
+	const unsigned int deblk_sz = vdir->vd_deblk_sz;
+	union au_vdir_deblk_p p, *room, deblk_end;
+	struct au_vdir_dehstr *dehstr;
+
+	p.deblk = last_deblk(vdir);
+	deblk_end.deblk = p.deblk + deblk_sz;
+	room = &vdir->vd_last.p;
+	AuDebugOn(room->deblk < p.deblk || deblk_end.deblk <= room->deblk
+		  || !is_deblk_end(room, &deblk_end));
+
+	sz = calc_size(nlen);
+	if (unlikely(sz > deblk_end.deblk - room->deblk)) {
+		err = append_deblk(vdir);
+		if (unlikely(err))
+			goto out;
+
+		p.deblk = last_deblk(vdir);
+		deblk_end.deblk = p.deblk + deblk_sz;
+		/* smp_mb(); */
+		AuDebugOn(room->deblk != p.deblk);
+	}
+
+	err = -ENOMEM;
+	dehstr = au_cache_alloc_vdir_dehstr();
+	if (unlikely(!dehstr))
+		goto out;
+
+	dehstr->str = &room->de->de_str;
+	hlist_add_head(&dehstr->hash, au_name_hash(delist, name, nlen));
+	room->de->de_ino = ino;
+	room->de->de_type = d_type;
+	room->de->de_str.len = nlen;
+	memcpy(room->de->de_str.name, name, nlen);
+
+	err = 0;
+	room->deblk += sz;
+	if (unlikely(set_deblk_end(room, &deblk_end)))
+		err = append_deblk(vdir);
+	/* smp_mb(); */
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_vdir_free(struct au_vdir *vdir)
+{
+	unsigned char **deblk;
+
+	deblk = vdir->vd_deblk;
+	while (vdir->vd_nblk--)
+		au_kfree_try_rcu(*deblk++);
+	au_kfree_try_rcu(vdir->vd_deblk);
+	au_cache_free_vdir(vdir);
+}
+
+static struct au_vdir *alloc_vdir(struct file *file)
+{
+	struct au_vdir *vdir;
+	struct super_block *sb;
+	int err;
+
+	sb = file->f_path.dentry->d_sb;
+	SiMustAnyLock(sb);
+
+	err = -ENOMEM;
+	vdir = au_cache_alloc_vdir();
+	if (unlikely(!vdir))
+		goto out;
+
+	vdir->vd_deblk = kzalloc(sizeof(*vdir->vd_deblk), GFP_NOFS);
+	if (unlikely(!vdir->vd_deblk))
+		goto out_free;
+
+	vdir->vd_deblk_sz = au_sbi(sb)->si_rdblk;
+	if (!vdir->vd_deblk_sz) {
+		/* estimate the appropriate size for deblk */
+		vdir->vd_deblk_sz = au_dir_size(file, /*dentry*/NULL);
+		/* pr_info("vd_deblk_sz %u\n", vdir->vd_deblk_sz); */
+	}
+	vdir->vd_nblk = 0;
+	vdir->vd_version = 0;
+	vdir->vd_jiffy = 0;
+	err = append_deblk(vdir);
+	if (!err)
+		return vdir; /* success */
+
+	au_kfree_try_rcu(vdir->vd_deblk);
+
+out_free:
+	au_cache_free_vdir(vdir);
+out:
+	vdir = ERR_PTR(err);
+	return vdir;
+}
+
+static int reinit_vdir(struct au_vdir *vdir)
+{
+	int err;
+	union au_vdir_deblk_p p, deblk_end;
+
+	while (vdir->vd_nblk > 1) {
+		au_kfree_try_rcu(vdir->vd_deblk[vdir->vd_nblk - 1]);
+		/* vdir->vd_deblk[vdir->vd_nblk - 1] = NULL; */
+		vdir->vd_nblk--;
+	}
+	p.deblk = vdir->vd_deblk[0];
+	deblk_end.deblk = p.deblk + vdir->vd_deblk_sz;
+	err = set_deblk_end(&p, &deblk_end);
+	/* keep vd_dblk_sz */
+	vdir->vd_last.ul = 0;
+	vdir->vd_last.p.deblk = vdir->vd_deblk[0];
+	vdir->vd_version = 0;
+	vdir->vd_jiffy = 0;
+	/* smp_mb(); */
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define AuFillVdir_CALLED	1
+#define AuFillVdir_WHABLE	(1 << 1)
+#define AuFillVdir_SHWH		(1 << 2)
+#define au_ftest_fillvdir(flags, name)	((flags) & AuFillVdir_##name)
+#define au_fset_fillvdir(flags, name) \
+	do { (flags) |= AuFillVdir_##name; } while (0)
+#define au_fclr_fillvdir(flags, name) \
+	do { (flags) &= ~AuFillVdir_##name; } while (0)
+
+#ifndef CONFIG_AUFS_SHWH
+#undef AuFillVdir_SHWH
+#define AuFillVdir_SHWH		0
+#endif
+
+struct fillvdir_arg {
+	struct dir_context	ctx;
+	struct file		*file;
+	struct au_vdir		*vdir;
+	struct au_nhash		delist;
+	struct au_nhash		whlist;
+	aufs_bindex_t		bindex;
+	unsigned int		flags;
+	int			err;
+};
+
+static int fillvdir(struct dir_context *ctx, const char *__name, int nlen,
+		    loff_t offset __maybe_unused, u64 h_ino,
+		    unsigned int d_type)
+{
+	struct fillvdir_arg *arg = container_of(ctx, struct fillvdir_arg, ctx);
+	char *name = (void *)__name;
+	struct super_block *sb;
+	ino_t ino;
+	const unsigned char shwh = !!au_ftest_fillvdir(arg->flags, SHWH);
+
+	arg->err = 0;
+	sb = arg->file->f_path.dentry->d_sb;
+	au_fset_fillvdir(arg->flags, CALLED);
+	/* smp_mb(); */
+	if (nlen <= AUFS_WH_PFX_LEN
+	    || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
+		if (test_known(&arg->delist, name, nlen)
+		    || au_nhash_test_known_wh(&arg->whlist, name, nlen))
+			goto out; /* already exists or whiteouted */
+
+		arg->err = au_ino(sb, arg->bindex, h_ino, d_type, &ino);
+		if (!arg->err) {
+			if (unlikely(nlen > AUFS_MAX_NAMELEN))
+				d_type = DT_UNKNOWN;
+			arg->err = append_de(arg->vdir, name, nlen, ino,
+					     d_type, &arg->delist);
+		}
+	} else if (au_ftest_fillvdir(arg->flags, WHABLE)) {
+		name += AUFS_WH_PFX_LEN;
+		nlen -= AUFS_WH_PFX_LEN;
+		if (au_nhash_test_known_wh(&arg->whlist, name, nlen))
+			goto out; /* already whiteouted */
+
+		ino = 0; /* just to suppress a warning */
+		if (shwh)
+			arg->err = au_wh_ino(sb, arg->bindex, h_ino, d_type,
+					     &ino);
+		if (!arg->err) {
+			if (nlen <= AUFS_MAX_NAMELEN + AUFS_WH_PFX_LEN)
+				d_type = DT_UNKNOWN;
+			arg->err = au_nhash_append_wh
+				(&arg->whlist, name, nlen, ino, d_type,
+				 arg->bindex, shwh);
+		}
+	}
+
+out:
+	if (!arg->err)
+		arg->vdir->vd_jiffy = jiffies;
+	/* smp_mb(); */
+	AuTraceErr(arg->err);
+	return arg->err;
+}
+
+static int au_handle_shwh(struct super_block *sb, struct au_vdir *vdir,
+			  struct au_nhash *whlist, struct au_nhash *delist)
+{
+#ifdef CONFIG_AUFS_SHWH
+	int err;
+	unsigned int nh, u;
+	struct hlist_head *head;
+	struct au_vdir_wh *pos;
+	struct hlist_node *n;
+	char *p, *o;
+	struct au_vdir_destr *destr;
+
+	AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH));
+
+	err = -ENOMEM;
+	o = p = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!p))
+		goto out;
+
+	err = 0;
+	nh = whlist->nh_num;
+	memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
+	p += AUFS_WH_PFX_LEN;
+	for (u = 0; u < nh; u++) {
+		head = whlist->nh_head + u;
+		hlist_for_each_entry_safe(pos, n, head, wh_hash) {
+			destr = &pos->wh_str;
+			memcpy(p, destr->name, destr->len);
+			err = append_de(vdir, o, destr->len + AUFS_WH_PFX_LEN,
+					pos->wh_ino, pos->wh_type, delist);
+			if (unlikely(err))
+				break;
+		}
+	}
+
+	free_page((unsigned long)o);
+
+out:
+	AuTraceErr(err);
+	return err;
+#else
+	return 0;
+#endif
+}
+
+static int au_do_read_vdir(struct fillvdir_arg *arg)
+{
+	int err;
+	unsigned int rdhash;
+	loff_t offset;
+	aufs_bindex_t bbot, bindex, btop;
+	unsigned char shwh;
+	struct file *hf, *file;
+	struct super_block *sb;
+
+	file = arg->file;
+	sb = file->f_path.dentry->d_sb;
+	SiMustAnyLock(sb);
+
+	rdhash = au_sbi(sb)->si_rdhash;
+	if (!rdhash)
+		rdhash = au_rdhash_est(au_dir_size(file, /*dentry*/NULL));
+	err = au_nhash_alloc(&arg->delist, rdhash, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+	err = au_nhash_alloc(&arg->whlist, rdhash, GFP_NOFS);
+	if (unlikely(err))
+		goto out_delist;
+
+	err = 0;
+	arg->flags = 0;
+	shwh = 0;
+	if (au_opt_test(au_mntflags(sb), SHWH)) {
+		shwh = 1;
+		au_fset_fillvdir(arg->flags, SHWH);
+	}
+	btop = au_fbtop(file);
+	bbot = au_fbbot_dir(file);
+	for (bindex = btop; !err && bindex <= bbot; bindex++) {
+		hf = au_hf_dir(file, bindex);
+		if (!hf)
+			continue;
+
+		offset = vfsub_llseek(hf, 0, SEEK_SET);
+		err = offset;
+		if (unlikely(offset))
+			break;
+
+		arg->bindex = bindex;
+		au_fclr_fillvdir(arg->flags, WHABLE);
+		if (shwh
+		    || (bindex != bbot
+			&& au_br_whable(au_sbr_perm(sb, bindex))))
+			au_fset_fillvdir(arg->flags, WHABLE);
+		do {
+			arg->err = 0;
+			au_fclr_fillvdir(arg->flags, CALLED);
+			/* smp_mb(); */
+			err = vfsub_iterate_dir(hf, &arg->ctx);
+			if (err >= 0)
+				err = arg->err;
+		} while (!err && au_ftest_fillvdir(arg->flags, CALLED));
+
+		/*
+		 * dir_relax() may be good for concurrency, but aufs should not
+		 * use it since it will cause a lockdep problem.
+		 */
+	}
+
+	if (!err && shwh)
+		err = au_handle_shwh(sb, arg->vdir, &arg->whlist, &arg->delist);
+
+	au_nhash_wh_free(&arg->whlist);
+
+out_delist:
+	au_nhash_de_free(&arg->delist);
+out:
+	return err;
+}
+
+static int read_vdir(struct file *file, int may_read)
+{
+	int err;
+	unsigned long expire;
+	unsigned char do_read;
+	struct fillvdir_arg arg = {
+		.ctx = {
+			.actor = fillvdir
+		}
+	};
+	struct inode *inode;
+	struct au_vdir *vdir, *allocated;
+
+	err = 0;
+	inode = file_inode(file);
+	IMustLock(inode);
+	IiMustWriteLock(inode);
+	SiMustAnyLock(inode->i_sb);
+
+	allocated = NULL;
+	do_read = 0;
+	expire = au_sbi(inode->i_sb)->si_rdcache;
+	vdir = au_ivdir(inode);
+	if (!vdir) {
+		do_read = 1;
+		vdir = alloc_vdir(file);
+		err = PTR_ERR(vdir);
+		if (IS_ERR(vdir))
+			goto out;
+		err = 0;
+		allocated = vdir;
+	} else if (may_read
+		   && (!inode_eq_iversion(inode, vdir->vd_version)
+		       || time_after(jiffies, vdir->vd_jiffy + expire))) {
+		do_read = 1;
+		err = reinit_vdir(vdir);
+		if (unlikely(err))
+			goto out;
+	}
+
+	if (!do_read)
+		return 0; /* success */
+
+	arg.file = file;
+	arg.vdir = vdir;
+	err = au_do_read_vdir(&arg);
+	if (!err) {
+		/* file->f_pos = 0; */ /* todo: ctx->pos? */
+		vdir->vd_version = inode_query_iversion(inode);
+		vdir->vd_last.ul = 0;
+		vdir->vd_last.p.deblk = vdir->vd_deblk[0];
+		if (allocated)
+			au_set_ivdir(inode, allocated);
+	} else if (allocated)
+		au_vdir_free(allocated);
+
+out:
+	return err;
+}
+
+static int copy_vdir(struct au_vdir *tgt, struct au_vdir *src)
+{
+	int err, rerr;
+	unsigned long ul, n;
+	const unsigned int deblk_sz = src->vd_deblk_sz;
+
+	AuDebugOn(tgt->vd_nblk != 1);
+
+	err = -ENOMEM;
+	if (tgt->vd_nblk < src->vd_nblk) {
+		unsigned char **p;
+
+		p = au_krealloc(tgt->vd_deblk, sizeof(*p) * src->vd_nblk,
+				GFP_NOFS, /*may_shrink*/0);
+		if (unlikely(!p))
+			goto out;
+		tgt->vd_deblk = p;
+	}
+
+	if (tgt->vd_deblk_sz != deblk_sz) {
+		unsigned char *p;
+
+		tgt->vd_deblk_sz = deblk_sz;
+		p = au_krealloc(tgt->vd_deblk[0], deblk_sz, GFP_NOFS,
+				/*may_shrink*/1);
+		if (unlikely(!p))
+			goto out;
+		tgt->vd_deblk[0] = p;
+	}
+	memcpy(tgt->vd_deblk[0], src->vd_deblk[0], deblk_sz);
+	tgt->vd_version = src->vd_version;
+	tgt->vd_jiffy = src->vd_jiffy;
+
+	n = src->vd_nblk;
+	for (ul = 1; ul < n; ul++) {
+		tgt->vd_deblk[ul] = kmemdup(src->vd_deblk[ul], deblk_sz,
+					    GFP_NOFS);
+		if (unlikely(!tgt->vd_deblk[ul]))
+			goto out;
+		tgt->vd_nblk++;
+	}
+	tgt->vd_nblk = n;
+	tgt->vd_last.ul = tgt->vd_last.ul;
+	tgt->vd_last.p.deblk = tgt->vd_deblk[tgt->vd_last.ul];
+	tgt->vd_last.p.deblk += src->vd_last.p.deblk
+		- src->vd_deblk[src->vd_last.ul];
+	/* smp_mb(); */
+	return 0; /* success */
+
+out:
+	rerr = reinit_vdir(tgt);
+	BUG_ON(rerr);
+	return err;
+}
+
+int au_vdir_init(struct file *file)
+{
+	int err;
+	struct inode *inode;
+	struct au_vdir *vdir_cache, *allocated;
+
+	/* test file->f_pos here instead of ctx->pos */
+	err = read_vdir(file, !file->f_pos);
+	if (unlikely(err))
+		goto out;
+
+	allocated = NULL;
+	vdir_cache = au_fvdir_cache(file);
+	if (!vdir_cache) {
+		vdir_cache = alloc_vdir(file);
+		err = PTR_ERR(vdir_cache);
+		if (IS_ERR(vdir_cache))
+			goto out;
+		allocated = vdir_cache;
+	} else if (!file->f_pos && vdir_cache->vd_version != file->f_version) {
+		/* test file->f_pos here instead of ctx->pos */
+		err = reinit_vdir(vdir_cache);
+		if (unlikely(err))
+			goto out;
+	} else
+		return 0; /* success */
+
+	inode = file_inode(file);
+	err = copy_vdir(vdir_cache, au_ivdir(inode));
+	if (!err) {
+		file->f_version = inode_query_iversion(inode);
+		if (allocated)
+			au_set_fvdir_cache(file, allocated);
+	} else if (allocated)
+		au_vdir_free(allocated);
+
+out:
+	return err;
+}
+
+static loff_t calc_offset(struct au_vdir *vdir)
+{
+	loff_t offset;
+	union au_vdir_deblk_p p;
+
+	p.deblk = vdir->vd_deblk[vdir->vd_last.ul];
+	offset = vdir->vd_last.p.deblk - p.deblk;
+	offset += vdir->vd_deblk_sz * vdir->vd_last.ul;
+	return offset;
+}
+
+/* returns true or false */
+static int seek_vdir(struct file *file, struct dir_context *ctx)
+{
+	int valid;
+	unsigned int deblk_sz;
+	unsigned long ul, n;
+	loff_t offset;
+	union au_vdir_deblk_p p, deblk_end;
+	struct au_vdir *vdir_cache;
+
+	valid = 1;
+	vdir_cache = au_fvdir_cache(file);
+	offset = calc_offset(vdir_cache);
+	AuDbg("offset %lld\n", offset);
+	if (ctx->pos == offset)
+		goto out;
+
+	vdir_cache->vd_last.ul = 0;
+	vdir_cache->vd_last.p.deblk = vdir_cache->vd_deblk[0];
+	if (!ctx->pos)
+		goto out;
+
+	valid = 0;
+	deblk_sz = vdir_cache->vd_deblk_sz;
+	ul = div64_u64(ctx->pos, deblk_sz);
+	AuDbg("ul %lu\n", ul);
+	if (ul >= vdir_cache->vd_nblk)
+		goto out;
+
+	n = vdir_cache->vd_nblk;
+	for (; ul < n; ul++) {
+		p.deblk = vdir_cache->vd_deblk[ul];
+		deblk_end.deblk = p.deblk + deblk_sz;
+		offset = ul;
+		offset *= deblk_sz;
+		while (!is_deblk_end(&p, &deblk_end) && offset < ctx->pos) {
+			unsigned int l;
+
+			l = calc_size(p.de->de_str.len);
+			offset += l;
+			p.deblk += l;
+		}
+		if (!is_deblk_end(&p, &deblk_end)) {
+			valid = 1;
+			vdir_cache->vd_last.ul = ul;
+			vdir_cache->vd_last.p = p;
+			break;
+		}
+	}
+
+out:
+	/* smp_mb(); */
+	if (!valid)
+		AuDbg("valid %d\n", !valid);
+	return valid;
+}
+
+int au_vdir_fill_de(struct file *file, struct dir_context *ctx)
+{
+	unsigned int l, deblk_sz;
+	union au_vdir_deblk_p deblk_end;
+	struct au_vdir *vdir_cache;
+	struct au_vdir_de *de;
+
+	if (!seek_vdir(file, ctx))
+		return 0;
+
+	vdir_cache = au_fvdir_cache(file);
+	deblk_sz = vdir_cache->vd_deblk_sz;
+	while (1) {
+		deblk_end.deblk = vdir_cache->vd_deblk[vdir_cache->vd_last.ul];
+		deblk_end.deblk += deblk_sz;
+		while (!is_deblk_end(&vdir_cache->vd_last.p, &deblk_end)) {
+			de = vdir_cache->vd_last.p.de;
+			AuDbg("%.*s, off%lld, i%lu, dt%d\n",
+			      de->de_str.len, de->de_str.name, ctx->pos,
+			      (unsigned long)de->de_ino, de->de_type);
+			if (unlikely(!dir_emit(ctx, de->de_str.name,
+					       de->de_str.len, de->de_ino,
+					       de->de_type))) {
+				/* todo: ignore the error caused by udba? */
+				/* return err; */
+				return 0;
+			}
+
+			l = calc_size(de->de_str.len);
+			vdir_cache->vd_last.p.deblk += l;
+			ctx->pos += l;
+		}
+		if (vdir_cache->vd_last.ul < vdir_cache->vd_nblk - 1) {
+			vdir_cache->vd_last.ul++;
+			vdir_cache->vd_last.p.deblk
+				= vdir_cache->vd_deblk[vdir_cache->vd_last.ul];
+			ctx->pos = deblk_sz * vdir_cache->vd_last.ul;
+			continue;
+		}
+		break;
+	}
+
+	/* smp_mb(); */
+	return 0;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/vfsub.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/vfsub.c
@@ -0,0 +1,895 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sub-routines for VFS
+ */
+
+#include <linux/mnt_namespace.h>
+#include <linux/namei.h>
+#include <linux/nsproxy.h>
+#include <linux/security.h>
+#include <linux/splice.h>
+#include "aufs.h"
+
+#ifdef CONFIG_AUFS_BR_FUSE
+int vfsub_test_mntns(struct vfsmount *mnt, struct super_block *h_sb)
+{
+	if (!au_test_fuse(h_sb) || !au_userns)
+		return 0;
+
+	return is_current_mnt_ns(mnt) ? 0 : -EACCES;
+}
+#endif
+
+int vfsub_sync_filesystem(struct super_block *h_sb, int wait)
+{
+	int err;
+
+	lockdep_off();
+	down_read(&h_sb->s_umount);
+	err = __sync_filesystem(h_sb, wait);
+	up_read(&h_sb->s_umount);
+	lockdep_on();
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_update_h_iattr(struct path *h_path, int *did)
+{
+	int err;
+	struct kstat st;
+	struct super_block *h_sb;
+
+	/* for remote fs, leave work for its getattr or d_revalidate */
+	/* for bad i_attr fs, handle them in aufs_getattr() */
+	/* still some fs may acquire i_mutex. we need to skip them */
+	err = 0;
+	if (!did)
+		did = &err;
+	h_sb = h_path->dentry->d_sb;
+	*did = (!au_test_fs_remote(h_sb) && au_test_fs_refresh_iattr(h_sb));
+	if (*did)
+		err = vfsub_getattr(h_path, &st);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct file *vfsub_dentry_open(struct path *path, int flags)
+{
+	return dentry_open(path, flags /* | __FMODE_NONOTIFY */,
+			   current_cred());
+}
+
+struct file *vfsub_filp_open(const char *path, int oflags, int mode)
+{
+	struct file *file;
+
+	lockdep_off();
+	file = filp_open(path,
+			 oflags /* | __FMODE_NONOTIFY */,
+			 mode);
+	lockdep_on();
+	if (IS_ERR(file))
+		goto out;
+	vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+
+out:
+	return file;
+}
+
+/*
+ * Ideally this function should call VFS:do_last() in order to keep all its
+ * checkings. But it is very hard for aufs to regenerate several VFS internal
+ * structure such as nameidata. This is a second (or third) best approach.
+ * cf. linux/fs/namei.c:do_last(), lookup_open() and atomic_open().
+ */
+int vfsub_atomic_open(struct inode *dir, struct dentry *dentry,
+		      struct vfsub_aopen_args *args)
+{
+	int err;
+	struct au_branch *br = args->br;
+	struct file *file = args->file;
+	/* copied from linux/fs/namei.c:atomic_open() */
+	struct dentry *const DENTRY_NOT_SET = (void *)-1UL;
+
+	IMustLock(dir);
+	AuDebugOn(!dir->i_op->atomic_open);
+
+	err = au_br_test_oflag(args->open_flag, br);
+	if (unlikely(err))
+		goto out;
+
+	au_lcnt_inc(&br->br_nfiles);
+	file->f_path.dentry = DENTRY_NOT_SET;
+	file->f_path.mnt = au_br_mnt(br);
+	AuDbg("%ps\n", dir->i_op->atomic_open);
+	err = dir->i_op->atomic_open(dir, dentry, file, args->open_flag,
+				     args->create_mode);
+	if (unlikely(err < 0)) {
+		au_lcnt_dec(&br->br_nfiles);
+		goto out;
+	}
+
+	/* temporary workaround for nfsv4 branch */
+	if (au_test_nfs(dir->i_sb))
+		nfs_mark_for_revalidate(dir);
+
+	if (file->f_mode & FMODE_CREATED)
+		fsnotify_create(dir, dentry);
+	if (!(file->f_mode & FMODE_OPENED)) {
+		au_lcnt_dec(&br->br_nfiles);
+		goto out;
+	}
+
+	/* todo: call VFS:may_open() here */
+	/* todo: ima_file_check() too? */
+	if (!err && (args->open_flag & __FMODE_EXEC))
+		err = deny_write_access(file);
+	if (!err)
+		fsnotify_open(file);
+	else
+		au_lcnt_dec(&br->br_nfiles);
+	/* note that the file is created and still opened */
+
+out:
+	return err;
+}
+
+int vfsub_kern_path(const char *name, unsigned int flags, struct path *path)
+{
+	int err;
+
+	err = kern_path(name, flags, path);
+	if (!err && d_is_positive(path->dentry))
+		vfsub_update_h_iattr(path, /*did*/NULL); /*ignore*/
+	return err;
+}
+
+struct dentry *vfsub_lookup_one_len_unlocked(const char *name,
+					     struct dentry *parent, int len)
+{
+	struct path path = {
+		.mnt = NULL
+	};
+
+	path.dentry = lookup_one_len_unlocked(name, parent, len);
+	if (IS_ERR(path.dentry))
+		goto out;
+	if (d_is_positive(path.dentry))
+		vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/
+
+out:
+	AuTraceErrPtr(path.dentry);
+	return path.dentry;
+}
+
+struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent,
+				    int len)
+{
+	struct path path = {
+		.mnt = NULL
+	};
+
+	/* VFS checks it too, but by WARN_ON_ONCE() */
+	IMustLock(d_inode(parent));
+
+	path.dentry = lookup_one_len(name, parent, len);
+	if (IS_ERR(path.dentry))
+		goto out;
+	if (d_is_positive(path.dentry))
+		vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/
+
+out:
+	AuTraceErrPtr(path.dentry);
+	return path.dentry;
+}
+
+void vfsub_call_lkup_one(void *args)
+{
+	struct vfsub_lkup_one_args *a = args;
+	*a->errp = vfsub_lkup_one(a->name, a->parent);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1,
+				 struct dentry *d2, struct au_hinode *hdir2)
+{
+	struct dentry *d;
+
+	lockdep_off();
+	d = lock_rename(d1, d2);
+	lockdep_on();
+	au_hn_suspend(hdir1);
+	if (hdir1 != hdir2)
+		au_hn_suspend(hdir2);
+
+	return d;
+}
+
+void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1,
+			 struct dentry *d2, struct au_hinode *hdir2)
+{
+	au_hn_resume(hdir1);
+	if (hdir1 != hdir2)
+		au_hn_resume(hdir2);
+	lockdep_off();
+	unlock_rename(d1, d2);
+	lockdep_on();
+}
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_create(struct inode *dir, struct path *path, int mode, bool want_excl)
+{
+	int err;
+	struct dentry *d;
+
+	IMustLock(dir);
+
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	err = security_path_mknod(path, d, mode, 0);
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_create(dir, path->dentry, mode, want_excl);
+	lockdep_on();
+	if (!err) {
+		struct path tmp = *path;
+		int did;
+
+		vfsub_update_h_iattr(&tmp, &did);
+		if (did) {
+			tmp.dentry = path->dentry->d_parent;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+		}
+		/*ignore*/
+	}
+
+out:
+	return err;
+}
+
+int vfsub_symlink(struct inode *dir, struct path *path, const char *symname)
+{
+	int err;
+	struct dentry *d;
+
+	IMustLock(dir);
+
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	err = security_path_symlink(path, d, symname);
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_symlink(dir, path->dentry, symname);
+	lockdep_on();
+	if (!err) {
+		struct path tmp = *path;
+		int did;
+
+		vfsub_update_h_iattr(&tmp, &did);
+		if (did) {
+			tmp.dentry = path->dentry->d_parent;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+		}
+		/*ignore*/
+	}
+
+out:
+	return err;
+}
+
+int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev)
+{
+	int err;
+	struct dentry *d;
+
+	IMustLock(dir);
+
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	err = security_path_mknod(path, d, mode, new_encode_dev(dev));
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_mknod(dir, path->dentry, mode, dev);
+	lockdep_on();
+	if (!err) {
+		struct path tmp = *path;
+		int did;
+
+		vfsub_update_h_iattr(&tmp, &did);
+		if (did) {
+			tmp.dentry = path->dentry->d_parent;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+		}
+		/*ignore*/
+	}
+
+out:
+	return err;
+}
+
+static int au_test_nlink(struct inode *inode)
+{
+	const unsigned int link_max = UINT_MAX >> 1; /* rough margin */
+
+	if (!au_test_fs_no_limit_nlink(inode->i_sb)
+	    || inode->i_nlink < link_max)
+		return 0;
+	return -EMLINK;
+}
+
+int vfsub_link(struct dentry *src_dentry, struct inode *dir, struct path *path,
+	       struct inode **delegated_inode)
+{
+	int err;
+	struct dentry *d;
+
+	IMustLock(dir);
+
+	err = au_test_nlink(d_inode(src_dentry));
+	if (unlikely(err))
+		return err;
+
+	/* we don't call may_linkat() */
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	err = security_path_link(src_dentry, path, d);
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_link(src_dentry, dir, path->dentry, delegated_inode);
+	lockdep_on();
+	if (!err) {
+		struct path tmp = *path;
+		int did;
+
+		/* fuse has different memory inode for the same inumber */
+		vfsub_update_h_iattr(&tmp, &did);
+		if (did) {
+			tmp.dentry = path->dentry->d_parent;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+			tmp.dentry = src_dentry;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+		}
+		/*ignore*/
+	}
+
+out:
+	return err;
+}
+
+int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
+		 struct inode *dir, struct path *path,
+		 struct inode **delegated_inode, unsigned int flags)
+{
+	int err;
+	struct path tmp = {
+		.mnt	= path->mnt
+	};
+	struct dentry *d;
+
+	IMustLock(dir);
+	IMustLock(src_dir);
+
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	tmp.dentry = src_dentry->d_parent;
+	err = security_path_rename(&tmp, src_dentry, path, d, /*flags*/0);
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_rename(src_dir, src_dentry, dir, path->dentry,
+			 delegated_inode, flags);
+	lockdep_on();
+	if (!err) {
+		int did;
+
+		tmp.dentry = d->d_parent;
+		vfsub_update_h_iattr(&tmp, &did);
+		if (did) {
+			tmp.dentry = src_dentry;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+			tmp.dentry = src_dentry->d_parent;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+		}
+		/*ignore*/
+	}
+
+out:
+	return err;
+}
+
+int vfsub_mkdir(struct inode *dir, struct path *path, int mode)
+{
+	int err;
+	struct dentry *d;
+
+	IMustLock(dir);
+
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	err = security_path_mkdir(path, d, mode);
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_mkdir(dir, path->dentry, mode);
+	lockdep_on();
+	if (!err) {
+		struct path tmp = *path;
+		int did;
+
+		vfsub_update_h_iattr(&tmp, &did);
+		if (did) {
+			tmp.dentry = path->dentry->d_parent;
+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
+		}
+		/*ignore*/
+	}
+
+out:
+	return err;
+}
+
+int vfsub_rmdir(struct inode *dir, struct path *path)
+{
+	int err;
+	struct dentry *d;
+
+	IMustLock(dir);
+
+	d = path->dentry;
+	path->dentry = d->d_parent;
+	err = security_path_rmdir(path, d);
+	path->dentry = d;
+	if (unlikely(err))
+		goto out;
+
+	lockdep_off();
+	err = vfs_rmdir(dir, path->dentry);
+	lockdep_on();
+	if (!err) {
+		struct path tmp = {
+			.dentry	= path->dentry->d_parent,
+			.mnt	= path->mnt
+		};
+
+		vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/
+	}
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: support mmap_sem? */
+ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
+		     loff_t *ppos)
+{
+	ssize_t err;
+
+	lockdep_off();
+	err = vfs_read(file, ubuf, count, ppos);
+	lockdep_on();
+	if (err >= 0)
+		vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+	return err;
+}
+
+/* todo: kernel_read()? */
+ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count,
+		     loff_t *ppos)
+{
+	ssize_t err;
+	mm_segment_t oldfs;
+	union {
+		void *k;
+		char __user *u;
+	} buf;
+
+	buf.k = kbuf;
+	oldfs = get_fs();
+	set_fs(KERNEL_DS);
+	err = vfsub_read_u(file, buf.u, count, ppos);
+	set_fs(oldfs);
+	return err;
+}
+
+ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
+		      loff_t *ppos)
+{
+	ssize_t err;
+
+	lockdep_off();
+	err = vfs_write(file, ubuf, count, ppos);
+	lockdep_on();
+	if (err >= 0)
+		vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+	return err;
+}
+
+ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos)
+{
+	ssize_t err;
+	mm_segment_t oldfs;
+	union {
+		void *k;
+		const char __user *u;
+	} buf;
+
+	buf.k = kbuf;
+	oldfs = get_fs();
+	set_fs(KERNEL_DS);
+	err = vfsub_write_u(file, buf.u, count, ppos);
+	set_fs(oldfs);
+	return err;
+}
+
+int vfsub_flush(struct file *file, fl_owner_t id)
+{
+	int err;
+
+	err = 0;
+	if (file->f_op->flush) {
+		if (!au_test_nfs(file->f_path.dentry->d_sb))
+			err = file->f_op->flush(file, id);
+		else {
+			lockdep_off();
+			err = file->f_op->flush(file, id);
+			lockdep_on();
+		}
+		if (!err)
+			vfsub_update_h_iattr(&file->f_path, /*did*/NULL);
+		/*ignore*/
+	}
+	return err;
+}
+
+int vfsub_iterate_dir(struct file *file, struct dir_context *ctx)
+{
+	int err;
+
+	AuDbg("%pD, ctx{%ps, %llu}\n", file, ctx->actor, ctx->pos);
+
+	lockdep_off();
+	err = iterate_dir(file, ctx);
+	lockdep_on();
+	if (err >= 0)
+		vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+
+	return err;
+}
+
+long vfsub_splice_to(struct file *in, loff_t *ppos,
+		     struct pipe_inode_info *pipe, size_t len,
+		     unsigned int flags)
+{
+	long err;
+
+	lockdep_off();
+	err = do_splice_to(in, ppos, pipe, len, flags);
+	lockdep_on();
+	file_accessed(in);
+	if (err >= 0)
+		vfsub_update_h_iattr(&in->f_path, /*did*/NULL); /*ignore*/
+	return err;
+}
+
+long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
+		       loff_t *ppos, size_t len, unsigned int flags)
+{
+	long err;
+
+	lockdep_off();
+	err = do_splice_from(pipe, out, ppos, len, flags);
+	lockdep_on();
+	if (err >= 0)
+		vfsub_update_h_iattr(&out->f_path, /*did*/NULL); /*ignore*/
+	return err;
+}
+
+int vfsub_fsync(struct file *file, struct path *path, int datasync)
+{
+	int err;
+
+	/* file can be NULL */
+	lockdep_off();
+	err = vfs_fsync(file, datasync);
+	lockdep_on();
+	if (!err) {
+		if (!path) {
+			AuDebugOn(!file);
+			path = &file->f_path;
+		}
+		vfsub_update_h_iattr(path, /*did*/NULL); /*ignore*/
+	}
+	return err;
+}
+
+/* cf. open.c:do_sys_truncate() and do_sys_ftruncate() */
+int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr,
+		struct file *h_file)
+{
+	int err;
+	struct inode *h_inode;
+	struct super_block *h_sb;
+
+	if (!h_file) {
+		err = vfsub_truncate(h_path, length);
+		goto out;
+	}
+
+	h_inode = d_inode(h_path->dentry);
+	h_sb = h_inode->i_sb;
+	lockdep_off();
+	sb_start_write(h_sb);
+	lockdep_on();
+	err = locks_verify_truncate(h_inode, h_file, length);
+	if (!err)
+		err = security_path_truncate(h_path);
+	if (!err) {
+		lockdep_off();
+		err = do_truncate(h_path->dentry, length, attr, h_file);
+		lockdep_on();
+	}
+	lockdep_off();
+	sb_end_write(h_sb);
+	lockdep_on();
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_vfsub_mkdir_args {
+	int *errp;
+	struct inode *dir;
+	struct path *path;
+	int mode;
+};
+
+static void au_call_vfsub_mkdir(void *args)
+{
+	struct au_vfsub_mkdir_args *a = args;
+	*a->errp = vfsub_mkdir(a->dir, a->path, a->mode);
+}
+
+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode)
+{
+	int err, do_sio, wkq_err;
+
+	do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE);
+	if (!do_sio) {
+		lockdep_off();
+		err = vfsub_mkdir(dir, path, mode);
+		lockdep_on();
+	} else {
+		struct au_vfsub_mkdir_args args = {
+			.errp	= &err,
+			.dir	= dir,
+			.path	= path,
+			.mode	= mode
+		};
+		wkq_err = au_wkq_wait(au_call_vfsub_mkdir, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+
+	return err;
+}
+
+struct au_vfsub_rmdir_args {
+	int *errp;
+	struct inode *dir;
+	struct path *path;
+};
+
+static void au_call_vfsub_rmdir(void *args)
+{
+	struct au_vfsub_rmdir_args *a = args;
+	*a->errp = vfsub_rmdir(a->dir, a->path);
+}
+
+int vfsub_sio_rmdir(struct inode *dir, struct path *path)
+{
+	int err, do_sio, wkq_err;
+
+	do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE);
+	if (!do_sio) {
+		lockdep_off();
+		err = vfsub_rmdir(dir, path);
+		lockdep_on();
+	} else {
+		struct au_vfsub_rmdir_args args = {
+			.errp	= &err,
+			.dir	= dir,
+			.path	= path
+		};
+		wkq_err = au_wkq_wait(au_call_vfsub_rmdir, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct notify_change_args {
+	int *errp;
+	struct path *path;
+	struct iattr *ia;
+	struct inode **delegated_inode;
+};
+
+static void call_notify_change(void *args)
+{
+	struct notify_change_args *a = args;
+	struct inode *h_inode;
+
+	h_inode = d_inode(a->path->dentry);
+	IMustLock(h_inode);
+
+	*a->errp = -EPERM;
+	if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) {
+		lockdep_off();
+		*a->errp = notify_change(a->path->dentry, a->ia,
+					 a->delegated_inode);
+		lockdep_on();
+		if (!*a->errp)
+			vfsub_update_h_iattr(a->path, /*did*/NULL); /*ignore*/
+	}
+	AuTraceErr(*a->errp);
+}
+
+int vfsub_notify_change(struct path *path, struct iattr *ia,
+			struct inode **delegated_inode)
+{
+	int err;
+	struct notify_change_args args = {
+		.errp			= &err,
+		.path			= path,
+		.ia			= ia,
+		.delegated_inode	= delegated_inode
+	};
+
+	call_notify_change(&args);
+
+	return err;
+}
+
+int vfsub_sio_notify_change(struct path *path, struct iattr *ia,
+			    struct inode **delegated_inode)
+{
+	int err, wkq_err;
+	struct notify_change_args args = {
+		.errp			= &err,
+		.path			= path,
+		.ia			= ia,
+		.delegated_inode	= delegated_inode
+	};
+
+	wkq_err = au_wkq_wait(call_notify_change, &args);
+	if (unlikely(wkq_err))
+		err = wkq_err;
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct unlink_args {
+	int *errp;
+	struct inode *dir;
+	struct path *path;
+	struct inode **delegated_inode;
+};
+
+static void call_unlink(void *args)
+{
+	struct unlink_args *a = args;
+	struct dentry *d = a->path->dentry;
+	struct inode *h_inode;
+	const int stop_sillyrename = (au_test_nfs(d->d_sb)
+				      && au_dcount(d) == 1);
+
+	IMustLock(a->dir);
+
+	a->path->dentry = d->d_parent;
+	*a->errp = security_path_unlink(a->path, d);
+	a->path->dentry = d;
+	if (unlikely(*a->errp))
+		return;
+
+	if (!stop_sillyrename)
+		dget(d);
+	h_inode = NULL;
+	if (d_is_positive(d)) {
+		h_inode = d_inode(d);
+		ihold(h_inode);
+	}
+
+	lockdep_off();
+	*a->errp = vfs_unlink(a->dir, d, a->delegated_inode);
+	lockdep_on();
+	if (!*a->errp) {
+		struct path tmp = {
+			.dentry = d->d_parent,
+			.mnt	= a->path->mnt
+		};
+		vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/
+	}
+
+	if (!stop_sillyrename)
+		dput(d);
+	if (h_inode)
+		iput(h_inode);
+
+	AuTraceErr(*a->errp);
+}
+
+/*
+ * @dir: must be locked.
+ * @dentry: target dentry.
+ */
+int vfsub_unlink(struct inode *dir, struct path *path,
+		 struct inode **delegated_inode, int force)
+{
+	int err;
+	struct unlink_args args = {
+		.errp			= &err,
+		.dir			= dir,
+		.path			= path,
+		.delegated_inode	= delegated_inode
+	};
+
+	if (!force)
+		call_unlink(&args);
+	else {
+		int wkq_err;
+
+		wkq_err = au_wkq_wait(call_unlink, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/vfsub.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/vfsub.h
@@ -0,0 +1,354 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * sub-routines for VFS
+ */
+
+#ifndef __AUFS_VFSUB_H__
+#define __AUFS_VFSUB_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/mount.h>
+#include <linux/posix_acl.h>
+#include <linux/xattr.h>
+#include "debug.h"
+
+/* copied from linux/fs/internal.h */
+/* todo: BAD approach!! */
+extern void __mnt_drop_write(struct vfsmount *);
+extern struct file *alloc_empty_file(int, const struct cred *);
+
+/* ---------------------------------------------------------------------- */
+
+/* lock subclass for lower inode */
+/* default MAX_LOCKDEP_SUBCLASSES(8) is not enough */
+/* reduce? gave up. */
+enum {
+	AuLsc_I_Begin = I_MUTEX_PARENT2, /* 5 */
+	AuLsc_I_PARENT,		/* lower inode, parent first */
+	AuLsc_I_PARENT2,	/* copyup dirs */
+	AuLsc_I_PARENT3,	/* copyup wh */
+	AuLsc_I_CHILD,
+	AuLsc_I_CHILD2,
+	AuLsc_I_End
+};
+
+/* to debug easier, do not make them inlined functions */
+#define MtxMustLock(mtx)	AuDebugOn(!mutex_is_locked(mtx))
+#define IMustLock(i)		AuDebugOn(!inode_is_locked(i))
+
+/* ---------------------------------------------------------------------- */
+
+static inline void vfsub_drop_nlink(struct inode *inode)
+{
+	AuDebugOn(!inode->i_nlink);
+	drop_nlink(inode);
+}
+
+static inline void vfsub_dead_dir(struct inode *inode)
+{
+	AuDebugOn(!S_ISDIR(inode->i_mode));
+	inode->i_flags |= S_DEAD;
+	clear_nlink(inode);
+}
+
+static inline int vfsub_native_ro(struct inode *inode)
+{
+	return sb_rdonly(inode->i_sb)
+		|| IS_RDONLY(inode)
+		/* || IS_APPEND(inode) */
+		|| IS_IMMUTABLE(inode);
+}
+
+#ifdef CONFIG_AUFS_BR_FUSE
+int vfsub_test_mntns(struct vfsmount *mnt, struct super_block *h_sb);
+#else
+AuStubInt0(vfsub_test_mntns, struct vfsmount *mnt, struct super_block *h_sb);
+#endif
+
+int vfsub_sync_filesystem(struct super_block *h_sb, int wait);
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_update_h_iattr(struct path *h_path, int *did);
+struct file *vfsub_dentry_open(struct path *path, int flags);
+struct file *vfsub_filp_open(const char *path, int oflags, int mode);
+struct au_branch;
+struct vfsub_aopen_args {
+	struct file		*file;
+	unsigned int		open_flag;
+	umode_t			create_mode;
+	struct au_branch	*br;
+};
+int vfsub_atomic_open(struct inode *dir, struct dentry *dentry,
+		      struct vfsub_aopen_args *args);
+int vfsub_kern_path(const char *name, unsigned int flags, struct path *path);
+
+struct dentry *vfsub_lookup_one_len_unlocked(const char *name,
+					     struct dentry *parent, int len);
+struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent,
+				    int len);
+
+struct vfsub_lkup_one_args {
+	struct dentry **errp;
+	struct qstr *name;
+	struct dentry *parent;
+};
+
+static inline struct dentry *vfsub_lkup_one(struct qstr *name,
+					    struct dentry *parent)
+{
+	return vfsub_lookup_one_len(name->name, parent, name->len);
+}
+
+void vfsub_call_lkup_one(void *args);
+
+/* ---------------------------------------------------------------------- */
+
+static inline int vfsub_mnt_want_write(struct vfsmount *mnt)
+{
+	int err;
+
+	lockdep_off();
+	err = mnt_want_write(mnt);
+	lockdep_on();
+	return err;
+}
+
+static inline void vfsub_mnt_drop_write(struct vfsmount *mnt)
+{
+	lockdep_off();
+	mnt_drop_write(mnt);
+	lockdep_on();
+}
+
+#if 0 /* reserved */
+static inline void vfsub_mnt_drop_write_file(struct file *file)
+{
+	lockdep_off();
+	mnt_drop_write_file(file);
+	lockdep_on();
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+struct au_hinode;
+struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1,
+				 struct dentry *d2, struct au_hinode *hdir2);
+void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1,
+			 struct dentry *d2, struct au_hinode *hdir2);
+
+int vfsub_create(struct inode *dir, struct path *path, int mode,
+		 bool want_excl);
+int vfsub_symlink(struct inode *dir, struct path *path,
+		  const char *symname);
+int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev);
+int vfsub_link(struct dentry *src_dentry, struct inode *dir,
+	       struct path *path, struct inode **delegated_inode);
+int vfsub_rename(struct inode *src_hdir, struct dentry *src_dentry,
+		 struct inode *hdir, struct path *path,
+		 struct inode **delegated_inode, unsigned int flags);
+int vfsub_mkdir(struct inode *dir, struct path *path, int mode);
+int vfsub_rmdir(struct inode *dir, struct path *path);
+
+/* ---------------------------------------------------------------------- */
+
+ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
+		     loff_t *ppos);
+ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count,
+			loff_t *ppos);
+ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
+		      loff_t *ppos);
+ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count,
+		      loff_t *ppos);
+int vfsub_flush(struct file *file, fl_owner_t id);
+int vfsub_iterate_dir(struct file *file, struct dir_context *ctx);
+
+static inline loff_t vfsub_f_size_read(struct file *file)
+{
+	return i_size_read(file_inode(file));
+}
+
+static inline unsigned int vfsub_file_flags(struct file *file)
+{
+	unsigned int flags;
+
+	spin_lock(&file->f_lock);
+	flags = file->f_flags;
+	spin_unlock(&file->f_lock);
+
+	return flags;
+}
+
+static inline int vfsub_file_execed(struct file *file)
+{
+	/* todo: direct access f_flags */
+	return !!(vfsub_file_flags(file) & __FMODE_EXEC);
+}
+
+#if 0 /* reserved */
+static inline void vfsub_file_accessed(struct file *h_file)
+{
+	file_accessed(h_file);
+	vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); /*ignore*/
+}
+#endif
+
+#if 0 /* reserved */
+static inline void vfsub_touch_atime(struct vfsmount *h_mnt,
+				     struct dentry *h_dentry)
+{
+	struct path h_path = {
+		.dentry	= h_dentry,
+		.mnt	= h_mnt
+	};
+	touch_atime(&h_path);
+	vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/
+}
+#endif
+
+static inline int vfsub_update_time(struct inode *h_inode,
+				    struct timespec64 *ts, int flags)
+{
+	return update_time(h_inode, ts, flags);
+	/* no vfsub_update_h_iattr() since we don't have struct path */
+}
+
+#ifdef CONFIG_FS_POSIX_ACL
+static inline int vfsub_acl_chmod(struct inode *h_inode, umode_t h_mode)
+{
+	int err;
+
+	err = posix_acl_chmod(h_inode, h_mode);
+	if (err == -EOPNOTSUPP)
+		err = 0;
+	return err;
+}
+#else
+AuStubInt0(vfsub_acl_chmod, struct inode *h_inode, umode_t h_mode);
+#endif
+
+long vfsub_splice_to(struct file *in, loff_t *ppos,
+		     struct pipe_inode_info *pipe, size_t len,
+		     unsigned int flags);
+long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
+		       loff_t *ppos, size_t len, unsigned int flags);
+
+static inline long vfsub_truncate(struct path *path, loff_t length)
+{
+	long err;
+
+	lockdep_off();
+	err = vfs_truncate(path, length);
+	lockdep_on();
+	return err;
+}
+
+int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr,
+		struct file *h_file);
+int vfsub_fsync(struct file *file, struct path *path, int datasync);
+
+/*
+ * re-use branch fs's ioctl(FICLONE) while aufs itself doesn't support such
+ * ioctl.
+ */
+static inline loff_t vfsub_clone_file_range(struct file *src, struct file *dst,
+					    loff_t len)
+{
+	loff_t err;
+
+	lockdep_off();
+	err = vfs_clone_file_range(src, 0, dst, 0, len, /*remap_flags*/0);
+	lockdep_on();
+
+	return err;
+}
+
+/* copy_file_range(2) is a systemcall */
+static inline ssize_t vfsub_copy_file_range(struct file *src, loff_t src_pos,
+					    struct file *dst, loff_t dst_pos,
+					    size_t len, unsigned int flags)
+{
+	ssize_t ssz;
+
+	lockdep_off();
+	ssz = vfs_copy_file_range(src, src_pos, dst, dst_pos, len, flags);
+	lockdep_on();
+
+	return ssz;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline loff_t vfsub_llseek(struct file *file, loff_t offset, int origin)
+{
+	loff_t err;
+
+	lockdep_off();
+	err = vfs_llseek(file, offset, origin);
+	lockdep_on();
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode);
+int vfsub_sio_rmdir(struct inode *dir, struct path *path);
+int vfsub_sio_notify_change(struct path *path, struct iattr *ia,
+			    struct inode **delegated_inode);
+int vfsub_notify_change(struct path *path, struct iattr *ia,
+			struct inode **delegated_inode);
+int vfsub_unlink(struct inode *dir, struct path *path,
+		 struct inode **delegated_inode, int force);
+
+static inline int vfsub_getattr(const struct path *path, struct kstat *st)
+{
+	return vfs_getattr(path, st, STATX_BASIC_STATS, AT_STATX_SYNC_AS_STAT);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline int vfsub_setxattr(struct dentry *dentry, const char *name,
+				 const void *value, size_t size, int flags)
+{
+	int err;
+
+	lockdep_off();
+	err = vfs_setxattr(dentry, name, value, size, flags);
+	lockdep_on();
+
+	return err;
+}
+
+static inline int vfsub_removexattr(struct dentry *dentry, const char *name)
+{
+	int err;
+
+	lockdep_off();
+	err = vfs_removexattr(dentry, name);
+	lockdep_on();
+
+	return err;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_VFSUB_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/wbr_policy.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/wbr_policy.c
@@ -0,0 +1,830 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * policies for selecting one among multiple writable branches
+ */
+
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/* subset of cpup_attr() */
+static noinline_for_stack
+int au_cpdown_attr(struct path *h_path, struct dentry *h_src)
+{
+	int err, sbits;
+	struct iattr ia;
+	struct inode *h_isrc;
+
+	h_isrc = d_inode(h_src);
+	ia.ia_valid = ATTR_FORCE | ATTR_MODE | ATTR_UID | ATTR_GID;
+	ia.ia_mode = h_isrc->i_mode;
+	ia.ia_uid = h_isrc->i_uid;
+	ia.ia_gid = h_isrc->i_gid;
+	sbits = !!(ia.ia_mode & (S_ISUID | S_ISGID));
+	au_cpup_attr_flags(d_inode(h_path->dentry), h_isrc->i_flags);
+	/* no delegation since it is just created */
+	err = vfsub_sio_notify_change(h_path, &ia, /*delegated*/NULL);
+
+	/* is this nfs only? */
+	if (!err && sbits && au_test_nfs(h_path->dentry->d_sb)) {
+		ia.ia_valid = ATTR_FORCE | ATTR_MODE;
+		ia.ia_mode = h_isrc->i_mode;
+		err = vfsub_sio_notify_change(h_path, &ia, /*delegated*/NULL);
+	}
+
+	return err;
+}
+
+#define AuCpdown_PARENT_OPQ	1
+#define AuCpdown_WHED		(1 << 1)
+#define AuCpdown_MADE_DIR	(1 << 2)
+#define AuCpdown_DIROPQ		(1 << 3)
+#define au_ftest_cpdown(flags, name)	((flags) & AuCpdown_##name)
+#define au_fset_cpdown(flags, name) \
+	do { (flags) |= AuCpdown_##name; } while (0)
+#define au_fclr_cpdown(flags, name) \
+	do { (flags) &= ~AuCpdown_##name; } while (0)
+
+static int au_cpdown_dir_opq(struct dentry *dentry, aufs_bindex_t bdst,
+			     unsigned int *flags)
+{
+	int err;
+	struct dentry *opq_dentry;
+
+	opq_dentry = au_diropq_create(dentry, bdst);
+	err = PTR_ERR(opq_dentry);
+	if (IS_ERR(opq_dentry))
+		goto out;
+	dput(opq_dentry);
+	au_fset_cpdown(*flags, DIROPQ);
+
+out:
+	return err;
+}
+
+static int au_cpdown_dir_wh(struct dentry *dentry, struct dentry *h_parent,
+			    struct inode *dir, aufs_bindex_t bdst)
+{
+	int err;
+	struct path h_path;
+	struct au_branch *br;
+
+	br = au_sbr(dentry->d_sb, bdst);
+	h_path.dentry = au_wh_lkup(h_parent, &dentry->d_name, br);
+	err = PTR_ERR(h_path.dentry);
+	if (IS_ERR(h_path.dentry))
+		goto out;
+
+	err = 0;
+	if (d_is_positive(h_path.dentry)) {
+		h_path.mnt = au_br_mnt(br);
+		err = au_wh_unlink_dentry(au_h_iptr(dir, bdst), &h_path,
+					  dentry);
+	}
+	dput(h_path.dentry);
+
+out:
+	return err;
+}
+
+static int au_cpdown_dir(struct dentry *dentry, aufs_bindex_t bdst,
+			 struct au_pin *pin,
+			 struct dentry *h_parent, void *arg)
+{
+	int err, rerr;
+	aufs_bindex_t bopq, btop;
+	struct path h_path;
+	struct dentry *parent;
+	struct inode *h_dir, *h_inode, *inode, *dir;
+	unsigned int *flags = arg;
+
+	btop = au_dbtop(dentry);
+	/* dentry is di-locked */
+	parent = dget_parent(dentry);
+	dir = d_inode(parent);
+	h_dir = d_inode(h_parent);
+	AuDebugOn(h_dir != au_h_iptr(dir, bdst));
+	IMustLock(h_dir);
+
+	err = au_lkup_neg(dentry, bdst, /*wh*/0);
+	if (unlikely(err < 0))
+		goto out;
+	h_path.dentry = au_h_dptr(dentry, bdst);
+	h_path.mnt = au_sbr_mnt(dentry->d_sb, bdst);
+	err = vfsub_sio_mkdir(au_h_iptr(dir, bdst), &h_path, 0755);
+	if (unlikely(err))
+		goto out_put;
+	au_fset_cpdown(*flags, MADE_DIR);
+
+	bopq = au_dbdiropq(dentry);
+	au_fclr_cpdown(*flags, WHED);
+	au_fclr_cpdown(*flags, DIROPQ);
+	if (au_dbwh(dentry) == bdst)
+		au_fset_cpdown(*flags, WHED);
+	if (!au_ftest_cpdown(*flags, PARENT_OPQ) && bopq <= bdst)
+		au_fset_cpdown(*flags, PARENT_OPQ);
+	h_inode = d_inode(h_path.dentry);
+	inode_lock_nested(h_inode, AuLsc_I_CHILD);
+	if (au_ftest_cpdown(*flags, WHED)) {
+		err = au_cpdown_dir_opq(dentry, bdst, flags);
+		if (unlikely(err)) {
+			inode_unlock(h_inode);
+			goto out_dir;
+		}
+	}
+
+	err = au_cpdown_attr(&h_path, au_h_dptr(dentry, btop));
+	inode_unlock(h_inode);
+	if (unlikely(err))
+		goto out_opq;
+
+	if (au_ftest_cpdown(*flags, WHED)) {
+		err = au_cpdown_dir_wh(dentry, h_parent, dir, bdst);
+		if (unlikely(err))
+			goto out_opq;
+	}
+
+	inode = d_inode(dentry);
+	if (au_ibbot(inode) < bdst)
+		au_set_ibbot(inode, bdst);
+	au_set_h_iptr(inode, bdst, au_igrab(h_inode),
+		      au_hi_flags(inode, /*isdir*/1));
+	au_fhsm_wrote(dentry->d_sb, bdst, /*force*/0);
+	goto out; /* success */
+
+	/* revert */
+out_opq:
+	if (au_ftest_cpdown(*flags, DIROPQ)) {
+		inode_lock_nested(h_inode, AuLsc_I_CHILD);
+		rerr = au_diropq_remove(dentry, bdst);
+		inode_unlock(h_inode);
+		if (unlikely(rerr)) {
+			AuIOErr("failed removing diropq for %pd b%d (%d)\n",
+				dentry, bdst, rerr);
+			err = -EIO;
+			goto out;
+		}
+	}
+out_dir:
+	if (au_ftest_cpdown(*flags, MADE_DIR)) {
+		rerr = vfsub_sio_rmdir(au_h_iptr(dir, bdst), &h_path);
+		if (unlikely(rerr)) {
+			AuIOErr("failed removing %pd b%d (%d)\n",
+				dentry, bdst, rerr);
+			err = -EIO;
+		}
+	}
+out_put:
+	au_set_h_dptr(dentry, bdst, NULL);
+	if (au_dbbot(dentry) == bdst)
+		au_update_dbbot(dentry);
+out:
+	dput(parent);
+	return err;
+}
+
+int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst)
+{
+	int err;
+	unsigned int flags;
+
+	flags = 0;
+	err = au_cp_dirs(dentry, bdst, au_cpdown_dir, &flags);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* policies for create */
+
+int au_wbr_nonopq(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	int err, i, j, ndentry;
+	aufs_bindex_t bopq;
+	struct au_dcsub_pages dpages;
+	struct au_dpage *dpage;
+	struct dentry **dentries, *parent, *d;
+
+	err = au_dpages_init(&dpages, GFP_NOFS);
+	if (unlikely(err))
+		goto out;
+	parent = dget_parent(dentry);
+	err = au_dcsub_pages_rev_aufs(&dpages, parent, /*do_include*/0);
+	if (unlikely(err))
+		goto out_free;
+
+	err = bindex;
+	for (i = 0; i < dpages.ndpage; i++) {
+		dpage = dpages.dpages + i;
+		dentries = dpage->dentries;
+		ndentry = dpage->ndentry;
+		for (j = 0; j < ndentry; j++) {
+			d = dentries[j];
+			di_read_lock_parent2(d, !AuLock_IR);
+			bopq = au_dbdiropq(d);
+			di_read_unlock(d, !AuLock_IR);
+			if (bopq >= 0 && bopq < err)
+				err = bopq;
+		}
+	}
+
+out_free:
+	dput(parent);
+	au_dpages_free(&dpages);
+out:
+	return err;
+}
+
+static int au_wbr_bu(struct super_block *sb, aufs_bindex_t bindex)
+{
+	for (; bindex >= 0; bindex--)
+		if (!au_br_rdonly(au_sbr(sb, bindex)))
+			return bindex;
+	return -EROFS;
+}
+
+/* top down parent */
+static int au_wbr_create_tdp(struct dentry *dentry,
+			     unsigned int flags __maybe_unused)
+{
+	int err;
+	aufs_bindex_t btop, bindex;
+	struct super_block *sb;
+	struct dentry *parent, *h_parent;
+
+	sb = dentry->d_sb;
+	btop = au_dbtop(dentry);
+	err = btop;
+	if (!au_br_rdonly(au_sbr(sb, btop)))
+		goto out;
+
+	err = -EROFS;
+	parent = dget_parent(dentry);
+	for (bindex = au_dbtop(parent); bindex < btop; bindex++) {
+		h_parent = au_h_dptr(parent, bindex);
+		if (!h_parent || d_is_negative(h_parent))
+			continue;
+
+		if (!au_br_rdonly(au_sbr(sb, bindex))) {
+			err = bindex;
+			break;
+		}
+	}
+	dput(parent);
+
+	/* bottom up here */
+	if (unlikely(err < 0)) {
+		err = au_wbr_bu(sb, btop - 1);
+		if (err >= 0)
+			err = au_wbr_nonopq(dentry, err);
+	}
+
+out:
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* an exception for the policy other than tdp */
+static int au_wbr_create_exp(struct dentry *dentry)
+{
+	int err;
+	aufs_bindex_t bwh, bdiropq;
+	struct dentry *parent;
+
+	err = -1;
+	bwh = au_dbwh(dentry);
+	parent = dget_parent(dentry);
+	bdiropq = au_dbdiropq(parent);
+	if (bwh >= 0) {
+		if (bdiropq >= 0)
+			err = min(bdiropq, bwh);
+		else
+			err = bwh;
+		AuDbg("%d\n", err);
+	} else if (bdiropq >= 0) {
+		err = bdiropq;
+		AuDbg("%d\n", err);
+	}
+	dput(parent);
+
+	if (err >= 0)
+		err = au_wbr_nonopq(dentry, err);
+
+	if (err >= 0 && au_br_rdonly(au_sbr(dentry->d_sb, err)))
+		err = -1;
+
+	AuDbg("%d\n", err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* round robin */
+static int au_wbr_create_init_rr(struct super_block *sb)
+{
+	int err;
+
+	err = au_wbr_bu(sb, au_sbbot(sb));
+	atomic_set(&au_sbi(sb)->si_wbr_rr_next, -err); /* less important */
+	/* smp_mb(); */
+
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+static int au_wbr_create_rr(struct dentry *dentry, unsigned int flags)
+{
+	int err, nbr;
+	unsigned int u;
+	aufs_bindex_t bindex, bbot;
+	struct super_block *sb;
+	atomic_t *next;
+
+	err = au_wbr_create_exp(dentry);
+	if (err >= 0)
+		goto out;
+
+	sb = dentry->d_sb;
+	next = &au_sbi(sb)->si_wbr_rr_next;
+	bbot = au_sbbot(sb);
+	nbr = bbot + 1;
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		if (!au_ftest_wbr(flags, DIR)) {
+			err = atomic_dec_return(next) + 1;
+			/* modulo for 0 is meaningless */
+			if (unlikely(!err))
+				err = atomic_dec_return(next) + 1;
+		} else
+			err = atomic_read(next);
+		AuDbg("%d\n", err);
+		u = err;
+		err = u % nbr;
+		AuDbg("%d\n", err);
+		if (!au_br_rdonly(au_sbr(sb, err)))
+			break;
+		err = -EROFS;
+	}
+
+	if (err >= 0)
+		err = au_wbr_nonopq(dentry, err);
+
+out:
+	AuDbg("%d\n", err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* most free space */
+static void au_mfs(struct dentry *dentry, struct dentry *parent)
+{
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_wbr_mfs *mfs;
+	struct dentry *h_parent;
+	aufs_bindex_t bindex, bbot;
+	int err;
+	unsigned long long b, bavail;
+	struct path h_path;
+	/* reduce the stack usage */
+	struct kstatfs *st;
+
+	st = kmalloc(sizeof(*st), GFP_NOFS);
+	if (unlikely(!st)) {
+		AuWarn1("failed updating mfs(%d), ignored\n", -ENOMEM);
+		return;
+	}
+
+	bavail = 0;
+	sb = dentry->d_sb;
+	mfs = &au_sbi(sb)->si_wbr_mfs;
+	MtxMustLock(&mfs->mfs_lock);
+	mfs->mfs_bindex = -EROFS;
+	mfs->mfsrr_bytes = 0;
+	if (!parent) {
+		bindex = 0;
+		bbot = au_sbbot(sb);
+	} else {
+		bindex = au_dbtop(parent);
+		bbot = au_dbtaildir(parent);
+	}
+
+	for (; bindex <= bbot; bindex++) {
+		if (parent) {
+			h_parent = au_h_dptr(parent, bindex);
+			if (!h_parent || d_is_negative(h_parent))
+				continue;
+		}
+		br = au_sbr(sb, bindex);
+		if (au_br_rdonly(br))
+			continue;
+
+		/* sb->s_root for NFS is unreliable */
+		h_path.mnt = au_br_mnt(br);
+		h_path.dentry = h_path.mnt->mnt_root;
+		err = vfs_statfs(&h_path, st);
+		if (unlikely(err)) {
+			AuWarn1("failed statfs, b%d, %d\n", bindex, err);
+			continue;
+		}
+
+		/* when the available size is equal, select the lower one */
+		BUILD_BUG_ON(sizeof(b) < sizeof(st->f_bavail)
+			     || sizeof(b) < sizeof(st->f_bsize));
+		b = st->f_bavail * st->f_bsize;
+		br->br_wbr->wbr_bytes = b;
+		if (b >= bavail) {
+			bavail = b;
+			mfs->mfs_bindex = bindex;
+			mfs->mfs_jiffy = jiffies;
+		}
+	}
+
+	mfs->mfsrr_bytes = bavail;
+	AuDbg("b%d\n", mfs->mfs_bindex);
+	au_kfree_rcu(st);
+}
+
+static int au_wbr_create_mfs(struct dentry *dentry, unsigned int flags)
+{
+	int err;
+	struct dentry *parent;
+	struct super_block *sb;
+	struct au_wbr_mfs *mfs;
+
+	err = au_wbr_create_exp(dentry);
+	if (err >= 0)
+		goto out;
+
+	sb = dentry->d_sb;
+	parent = NULL;
+	if (au_ftest_wbr(flags, PARENT))
+		parent = dget_parent(dentry);
+	mfs = &au_sbi(sb)->si_wbr_mfs;
+	mutex_lock(&mfs->mfs_lock);
+	if (time_after(jiffies, mfs->mfs_jiffy + mfs->mfs_expire)
+	    || mfs->mfs_bindex < 0
+	    || au_br_rdonly(au_sbr(sb, mfs->mfs_bindex)))
+		au_mfs(dentry, parent);
+	mutex_unlock(&mfs->mfs_lock);
+	err = mfs->mfs_bindex;
+	dput(parent);
+
+	if (err >= 0)
+		err = au_wbr_nonopq(dentry, err);
+
+out:
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+static int au_wbr_create_init_mfs(struct super_block *sb)
+{
+	struct au_wbr_mfs *mfs;
+
+	mfs = &au_sbi(sb)->si_wbr_mfs;
+	mutex_init(&mfs->mfs_lock);
+	mfs->mfs_jiffy = 0;
+	mfs->mfs_bindex = -EROFS;
+
+	return 0;
+}
+
+static int au_wbr_create_fin_mfs(struct super_block *sb __maybe_unused)
+{
+	mutex_destroy(&au_sbi(sb)->si_wbr_mfs.mfs_lock);
+	return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* top down regardless parent, and then mfs */
+static int au_wbr_create_tdmfs(struct dentry *dentry,
+			       unsigned int flags __maybe_unused)
+{
+	int err;
+	aufs_bindex_t bwh, btail, bindex, bfound, bmfs;
+	unsigned long long watermark;
+	struct super_block *sb;
+	struct au_wbr_mfs *mfs;
+	struct au_branch *br;
+	struct dentry *parent;
+
+	sb = dentry->d_sb;
+	mfs = &au_sbi(sb)->si_wbr_mfs;
+	mutex_lock(&mfs->mfs_lock);
+	if (time_after(jiffies, mfs->mfs_jiffy + mfs->mfs_expire)
+	    || mfs->mfs_bindex < 0)
+		au_mfs(dentry, /*parent*/NULL);
+	watermark = mfs->mfsrr_watermark;
+	bmfs = mfs->mfs_bindex;
+	mutex_unlock(&mfs->mfs_lock);
+
+	/* another style of au_wbr_create_exp() */
+	bwh = au_dbwh(dentry);
+	parent = dget_parent(dentry);
+	btail = au_dbtaildir(parent);
+	if (bwh >= 0 && bwh < btail)
+		btail = bwh;
+
+	err = au_wbr_nonopq(dentry, btail);
+	if (unlikely(err < 0))
+		goto out;
+	btail = err;
+	bfound = -1;
+	for (bindex = 0; bindex <= btail; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (au_br_rdonly(br))
+			continue;
+		if (br->br_wbr->wbr_bytes > watermark) {
+			bfound = bindex;
+			break;
+		}
+	}
+	err = bfound;
+	if (err < 0)
+		err = bmfs;
+
+out:
+	dput(parent);
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* most free space and then round robin */
+static int au_wbr_create_mfsrr(struct dentry *dentry, unsigned int flags)
+{
+	int err;
+	struct au_wbr_mfs *mfs;
+
+	err = au_wbr_create_mfs(dentry, flags);
+	if (err >= 0) {
+		mfs = &au_sbi(dentry->d_sb)->si_wbr_mfs;
+		mutex_lock(&mfs->mfs_lock);
+		if (mfs->mfsrr_bytes < mfs->mfsrr_watermark)
+			err = au_wbr_create_rr(dentry, flags);
+		mutex_unlock(&mfs->mfs_lock);
+	}
+
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+static int au_wbr_create_init_mfsrr(struct super_block *sb)
+{
+	int err;
+
+	au_wbr_create_init_mfs(sb); /* ignore */
+	err = au_wbr_create_init_rr(sb);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* top down parent and most free space */
+static int au_wbr_create_pmfs(struct dentry *dentry, unsigned int flags)
+{
+	int err, e2;
+	unsigned long long b;
+	aufs_bindex_t bindex, btop, bbot;
+	struct super_block *sb;
+	struct dentry *parent, *h_parent;
+	struct au_branch *br;
+
+	err = au_wbr_create_tdp(dentry, flags);
+	if (unlikely(err < 0))
+		goto out;
+	parent = dget_parent(dentry);
+	btop = au_dbtop(parent);
+	bbot = au_dbtaildir(parent);
+	if (btop == bbot)
+		goto out_parent; /* success */
+
+	e2 = au_wbr_create_mfs(dentry, flags);
+	if (e2 < 0)
+		goto out_parent; /* success */
+
+	/* when the available size is equal, select upper one */
+	sb = dentry->d_sb;
+	br = au_sbr(sb, err);
+	b = br->br_wbr->wbr_bytes;
+	AuDbg("b%d, %llu\n", err, b);
+
+	for (bindex = btop; bindex <= bbot; bindex++) {
+		h_parent = au_h_dptr(parent, bindex);
+		if (!h_parent || d_is_negative(h_parent))
+			continue;
+
+		br = au_sbr(sb, bindex);
+		if (!au_br_rdonly(br) && br->br_wbr->wbr_bytes > b) {
+			b = br->br_wbr->wbr_bytes;
+			err = bindex;
+			AuDbg("b%d, %llu\n", err, b);
+		}
+	}
+
+	if (err >= 0)
+		err = au_wbr_nonopq(dentry, err);
+
+out_parent:
+	dput(parent);
+out:
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * - top down parent
+ * - most free space with parent
+ * - most free space round-robin regardless parent
+ */
+static int au_wbr_create_pmfsrr(struct dentry *dentry, unsigned int flags)
+{
+	int err;
+	unsigned long long watermark;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_wbr_mfs *mfs;
+
+	err = au_wbr_create_pmfs(dentry, flags | AuWbr_PARENT);
+	if (unlikely(err < 0))
+		goto out;
+
+	sb = dentry->d_sb;
+	br = au_sbr(sb, err);
+	mfs = &au_sbi(sb)->si_wbr_mfs;
+	mutex_lock(&mfs->mfs_lock);
+	watermark = mfs->mfsrr_watermark;
+	mutex_unlock(&mfs->mfs_lock);
+	if (br->br_wbr->wbr_bytes < watermark)
+		/* regardless the parent dir */
+		err = au_wbr_create_mfsrr(dentry, flags);
+
+out:
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* policies for copyup */
+
+/* top down parent */
+static int au_wbr_copyup_tdp(struct dentry *dentry)
+{
+	return au_wbr_create_tdp(dentry, /*flags, anything is ok*/0);
+}
+
+/* bottom up parent */
+static int au_wbr_copyup_bup(struct dentry *dentry)
+{
+	int err;
+	aufs_bindex_t bindex, btop;
+	struct dentry *parent, *h_parent;
+	struct super_block *sb;
+
+	err = -EROFS;
+	sb = dentry->d_sb;
+	parent = dget_parent(dentry);
+	btop = au_dbtop(parent);
+	for (bindex = au_dbtop(dentry); bindex >= btop; bindex--) {
+		h_parent = au_h_dptr(parent, bindex);
+		if (!h_parent || d_is_negative(h_parent))
+			continue;
+
+		if (!au_br_rdonly(au_sbr(sb, bindex))) {
+			err = bindex;
+			break;
+		}
+	}
+	dput(parent);
+
+	/* bottom up here */
+	if (unlikely(err < 0))
+		err = au_wbr_bu(sb, btop - 1);
+
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+/* bottom up */
+int au_wbr_do_copyup_bu(struct dentry *dentry, aufs_bindex_t btop)
+{
+	int err;
+
+	err = au_wbr_bu(dentry->d_sb, btop);
+	AuDbg("b%d\n", err);
+	if (err > btop)
+		err = au_wbr_nonopq(dentry, err);
+
+	AuDbg("b%d\n", err);
+	return err;
+}
+
+static int au_wbr_copyup_bu(struct dentry *dentry)
+{
+	int err;
+	aufs_bindex_t btop;
+
+	btop = au_dbtop(dentry);
+	err = au_wbr_do_copyup_bu(dentry, btop);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_wbr_copyup_operations au_wbr_copyup_ops[] = {
+	[AuWbrCopyup_TDP] = {
+		.copyup	= au_wbr_copyup_tdp
+	},
+	[AuWbrCopyup_BUP] = {
+		.copyup	= au_wbr_copyup_bup
+	},
+	[AuWbrCopyup_BU] = {
+		.copyup	= au_wbr_copyup_bu
+	}
+};
+
+struct au_wbr_create_operations au_wbr_create_ops[] = {
+	[AuWbrCreate_TDP] = {
+		.create	= au_wbr_create_tdp
+	},
+	[AuWbrCreate_RR] = {
+		.create	= au_wbr_create_rr,
+		.init	= au_wbr_create_init_rr
+	},
+	[AuWbrCreate_MFS] = {
+		.create	= au_wbr_create_mfs,
+		.init	= au_wbr_create_init_mfs,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_MFSV] = {
+		.create	= au_wbr_create_mfs,
+		.init	= au_wbr_create_init_mfs,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_MFSRR] = {
+		.create	= au_wbr_create_mfsrr,
+		.init	= au_wbr_create_init_mfsrr,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_MFSRRV] = {
+		.create	= au_wbr_create_mfsrr,
+		.init	= au_wbr_create_init_mfsrr,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_TDMFS] = {
+		.create	= au_wbr_create_tdmfs,
+		.init	= au_wbr_create_init_mfs,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_TDMFSV] = {
+		.create	= au_wbr_create_tdmfs,
+		.init	= au_wbr_create_init_mfs,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_PMFS] = {
+		.create	= au_wbr_create_pmfs,
+		.init	= au_wbr_create_init_mfs,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_PMFSV] = {
+		.create	= au_wbr_create_pmfs,
+		.init	= au_wbr_create_init_mfs,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_PMFSRR] = {
+		.create	= au_wbr_create_pmfsrr,
+		.init	= au_wbr_create_init_mfsrr,
+		.fin	= au_wbr_create_fin_mfs
+	},
+	[AuWbrCreate_PMFSRRV] = {
+		.create	= au_wbr_create_pmfsrr,
+		.init	= au_wbr_create_init_mfsrr,
+		.fin	= au_wbr_create_fin_mfs
+	}
+};
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/whout.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/whout.c
@@ -0,0 +1,1062 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * whiteout for logical deletion and opaque directory
+ */
+
+#include "aufs.h"
+
+#define WH_MASK			0444
+
+/*
+ * If a directory contains this file, then it is opaque.  We start with the
+ * .wh. flag so that it is blocked by lookup.
+ */
+static struct qstr diropq_name = QSTR_INIT(AUFS_WH_DIROPQ,
+					   sizeof(AUFS_WH_DIROPQ) - 1);
+
+/*
+ * generate whiteout name, which is NOT terminated by NULL.
+ * @name: original d_name.name
+ * @len: original d_name.len
+ * @wh: whiteout qstr
+ * returns zero when succeeds, otherwise error.
+ * succeeded value as wh->name should be freed by kfree().
+ */
+int au_wh_name_alloc(struct qstr *wh, const struct qstr *name)
+{
+	char *p;
+
+	if (unlikely(name->len > PATH_MAX - AUFS_WH_PFX_LEN))
+		return -ENAMETOOLONG;
+
+	wh->len = name->len + AUFS_WH_PFX_LEN;
+	p = kmalloc(wh->len, GFP_NOFS);
+	wh->name = p;
+	if (p) {
+		memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
+		memcpy(p + AUFS_WH_PFX_LEN, name->name, name->len);
+		/* smp_mb(); */
+		return 0;
+	}
+	return -ENOMEM;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * test if the @wh_name exists under @h_parent.
+ * @try_sio specifies the necessary of super-io.
+ */
+int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, int try_sio)
+{
+	int err;
+	struct dentry *wh_dentry;
+
+	if (!try_sio)
+		wh_dentry = vfsub_lkup_one(wh_name, h_parent);
+	else
+		wh_dentry = au_sio_lkup_one(wh_name, h_parent);
+	err = PTR_ERR(wh_dentry);
+	if (IS_ERR(wh_dentry)) {
+		if (err == -ENAMETOOLONG)
+			err = 0;
+		goto out;
+	}
+
+	err = 0;
+	if (d_is_negative(wh_dentry))
+		goto out_wh; /* success */
+
+	err = 1;
+	if (d_is_reg(wh_dentry))
+		goto out_wh; /* success */
+
+	err = -EIO;
+	AuIOErr("%pd Invalid whiteout entry type 0%o.\n",
+		wh_dentry, d_inode(wh_dentry)->i_mode);
+
+out_wh:
+	dput(wh_dentry);
+out:
+	return err;
+}
+
+/*
+ * test if the @h_dentry sets opaque or not.
+ */
+int au_diropq_test(struct dentry *h_dentry)
+{
+	int err;
+	struct inode *h_dir;
+
+	h_dir = d_inode(h_dentry);
+	err = au_wh_test(h_dentry, &diropq_name,
+			 au_test_h_perm_sio(h_dir, MAY_EXEC));
+	return err;
+}
+
+/*
+ * returns a negative dentry whose name is unique and temporary.
+ */
+struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br,
+			     struct qstr *prefix)
+{
+	struct dentry *dentry;
+	int i;
+	char defname[NAME_MAX - AUFS_MAX_NAMELEN + DNAME_INLINE_LEN + 1],
+		*name, *p;
+	/* strict atomic_t is unnecessary here */
+	static unsigned short cnt;
+	struct qstr qs;
+
+	BUILD_BUG_ON(sizeof(cnt) * 2 > AUFS_WH_TMP_LEN);
+
+	name = defname;
+	qs.len = sizeof(defname) - DNAME_INLINE_LEN + prefix->len - 1;
+	if (unlikely(prefix->len > DNAME_INLINE_LEN)) {
+		dentry = ERR_PTR(-ENAMETOOLONG);
+		if (unlikely(qs.len > NAME_MAX))
+			goto out;
+		dentry = ERR_PTR(-ENOMEM);
+		name = kmalloc(qs.len + 1, GFP_NOFS);
+		if (unlikely(!name))
+			goto out;
+	}
+
+	/* doubly whiteout-ed */
+	memcpy(name, AUFS_WH_PFX AUFS_WH_PFX, AUFS_WH_PFX_LEN * 2);
+	p = name + AUFS_WH_PFX_LEN * 2;
+	memcpy(p, prefix->name, prefix->len);
+	p += prefix->len;
+	*p++ = '.';
+	AuDebugOn(name + qs.len + 1 - p <= AUFS_WH_TMP_LEN);
+
+	qs.name = name;
+	for (i = 0; i < 3; i++) {
+		sprintf(p, "%.*x", AUFS_WH_TMP_LEN, cnt++);
+		dentry = au_sio_lkup_one(&qs, h_parent);
+		if (IS_ERR(dentry) || d_is_negative(dentry))
+			goto out_name;
+		dput(dentry);
+	}
+	/* pr_warn("could not get random name\n"); */
+	dentry = ERR_PTR(-EEXIST);
+	AuDbg("%.*s\n", AuLNPair(&qs));
+	BUG();
+
+out_name:
+	if (name != defname)
+		au_kfree_try_rcu(name);
+out:
+	AuTraceErrPtr(dentry);
+	return dentry;
+}
+
+/*
+ * rename the @h_dentry on @br to the whiteouted temporary name.
+ */
+int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br)
+{
+	int err;
+	struct path h_path = {
+		.mnt = au_br_mnt(br)
+	};
+	struct inode *h_dir, *delegated;
+	struct dentry *h_parent;
+
+	h_parent = h_dentry->d_parent; /* dir inode is locked */
+	h_dir = d_inode(h_parent);
+	IMustLock(h_dir);
+
+	h_path.dentry = au_whtmp_lkup(h_parent, br, &h_dentry->d_name);
+	err = PTR_ERR(h_path.dentry);
+	if (IS_ERR(h_path.dentry))
+		goto out;
+
+	/* under the same dir, no need to lock_rename() */
+	delegated = NULL;
+	err = vfsub_rename(h_dir, h_dentry, h_dir, &h_path, &delegated,
+			   /*flags*/0);
+	AuTraceErr(err);
+	if (unlikely(err == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal rename\n");
+		iput(delegated);
+	}
+	dput(h_path.dentry);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * functions for removing a whiteout
+ */
+
+static int do_unlink_wh(struct inode *h_dir, struct path *h_path)
+{
+	int err, force;
+	struct inode *delegated;
+
+	/*
+	 * forces superio when the dir has a sticky bit.
+	 * this may be a violation of unix fs semantics.
+	 */
+	force = (h_dir->i_mode & S_ISVTX)
+		&& !uid_eq(current_fsuid(), d_inode(h_path->dentry)->i_uid);
+	delegated = NULL;
+	err = vfsub_unlink(h_dir, h_path, &delegated, force);
+	if (unlikely(err == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal unlink\n");
+		iput(delegated);
+	}
+	return err;
+}
+
+int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path,
+			struct dentry *dentry)
+{
+	int err;
+
+	err = do_unlink_wh(h_dir, h_path);
+	if (!err && dentry)
+		au_set_dbwh(dentry, -1);
+
+	return err;
+}
+
+static int unlink_wh_name(struct dentry *h_parent, struct qstr *wh,
+			  struct au_branch *br)
+{
+	int err;
+	struct path h_path = {
+		.mnt = au_br_mnt(br)
+	};
+
+	err = 0;
+	h_path.dentry = vfsub_lkup_one(wh, h_parent);
+	if (IS_ERR(h_path.dentry))
+		err = PTR_ERR(h_path.dentry);
+	else {
+		if (d_is_reg(h_path.dentry))
+			err = do_unlink_wh(d_inode(h_parent), &h_path);
+		dput(h_path.dentry);
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * initialize/clean whiteout for a branch
+ */
+
+static void au_wh_clean(struct inode *h_dir, struct path *whpath,
+			const int isdir)
+{
+	int err;
+	struct inode *delegated;
+
+	if (d_is_negative(whpath->dentry))
+		return;
+
+	if (isdir)
+		err = vfsub_rmdir(h_dir, whpath);
+	else {
+		delegated = NULL;
+		err = vfsub_unlink(h_dir, whpath, &delegated, /*force*/0);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal unlink\n");
+			iput(delegated);
+		}
+	}
+	if (unlikely(err))
+		pr_warn("failed removing %pd (%d), ignored.\n",
+			whpath->dentry, err);
+}
+
+static int test_linkable(struct dentry *h_root)
+{
+	struct inode *h_dir = d_inode(h_root);
+
+	if (h_dir->i_op->link)
+		return 0;
+
+	pr_err("%pd (%s) doesn't support link(2), use noplink and rw+nolwh\n",
+	       h_root, au_sbtype(h_root->d_sb));
+	return -ENOSYS;	/* the branch doesn't have its ->link() */
+}
+
+/* todo: should this mkdir be done in /sbin/mount.aufs helper? */
+static int au_whdir(struct inode *h_dir, struct path *path)
+{
+	int err;
+
+	err = -EEXIST;
+	if (d_is_negative(path->dentry)) {
+		int mode = 0700;
+
+		if (au_test_nfs(path->dentry->d_sb))
+			mode |= 0111;
+		err = vfsub_mkdir(h_dir, path, mode);
+	} else if (d_is_dir(path->dentry))
+		err = 0;
+	else
+		pr_err("unknown %pd exists\n", path->dentry);
+
+	return err;
+}
+
+struct au_wh_base {
+	const struct qstr *name;
+	struct dentry *dentry;
+};
+
+static void au_wh_init_ro(struct inode *h_dir, struct au_wh_base base[],
+			  struct path *h_path)
+{
+	h_path->dentry = base[AuBrWh_BASE].dentry;
+	au_wh_clean(h_dir, h_path, /*isdir*/0);
+	h_path->dentry = base[AuBrWh_PLINK].dentry;
+	au_wh_clean(h_dir, h_path, /*isdir*/1);
+	h_path->dentry = base[AuBrWh_ORPH].dentry;
+	au_wh_clean(h_dir, h_path, /*isdir*/1);
+}
+
+/*
+ * returns tri-state,
+ * minus: error, caller should print the message
+ * zero: success
+ * plus: error, caller should NOT print the message
+ */
+static int au_wh_init_rw_nolink(struct dentry *h_root, struct au_wbr *wbr,
+				int do_plink, struct au_wh_base base[],
+				struct path *h_path)
+{
+	int err;
+	struct inode *h_dir;
+
+	h_dir = d_inode(h_root);
+	h_path->dentry = base[AuBrWh_BASE].dentry;
+	au_wh_clean(h_dir, h_path, /*isdir*/0);
+	h_path->dentry = base[AuBrWh_PLINK].dentry;
+	if (do_plink) {
+		err = test_linkable(h_root);
+		if (unlikely(err)) {
+			err = 1;
+			goto out;
+		}
+
+		err = au_whdir(h_dir, h_path);
+		if (unlikely(err))
+			goto out;
+		wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
+	} else
+		au_wh_clean(h_dir, h_path, /*isdir*/1);
+	h_path->dentry = base[AuBrWh_ORPH].dentry;
+	err = au_whdir(h_dir, h_path);
+	if (unlikely(err))
+		goto out;
+	wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry);
+
+out:
+	return err;
+}
+
+/*
+ * for the moment, aufs supports the branch filesystem which does not support
+ * link(2). testing on FAT which does not support i_op->setattr() fully either,
+ * copyup failed. finally, such filesystem will not be used as the writable
+ * branch.
+ *
+ * returns tri-state, see above.
+ */
+static int au_wh_init_rw(struct dentry *h_root, struct au_wbr *wbr,
+			 int do_plink, struct au_wh_base base[],
+			 struct path *h_path)
+{
+	int err;
+	struct inode *h_dir;
+
+	WbrWhMustWriteLock(wbr);
+
+	err = test_linkable(h_root);
+	if (unlikely(err)) {
+		err = 1;
+		goto out;
+	}
+
+	/*
+	 * todo: should this create be done in /sbin/mount.aufs helper?
+	 */
+	err = -EEXIST;
+	h_dir = d_inode(h_root);
+	if (d_is_negative(base[AuBrWh_BASE].dentry)) {
+		h_path->dentry = base[AuBrWh_BASE].dentry;
+		err = vfsub_create(h_dir, h_path, WH_MASK, /*want_excl*/true);
+	} else if (d_is_reg(base[AuBrWh_BASE].dentry))
+		err = 0;
+	else
+		pr_err("unknown %pd2 exists\n", base[AuBrWh_BASE].dentry);
+	if (unlikely(err))
+		goto out;
+
+	h_path->dentry = base[AuBrWh_PLINK].dentry;
+	if (do_plink) {
+		err = au_whdir(h_dir, h_path);
+		if (unlikely(err))
+			goto out;
+		wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
+	} else
+		au_wh_clean(h_dir, h_path, /*isdir*/1);
+	wbr->wbr_whbase = dget(base[AuBrWh_BASE].dentry);
+
+	h_path->dentry = base[AuBrWh_ORPH].dentry;
+	err = au_whdir(h_dir, h_path);
+	if (unlikely(err))
+		goto out;
+	wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry);
+
+out:
+	return err;
+}
+
+/*
+ * initialize the whiteout base file/dir for @br.
+ */
+int au_wh_init(struct au_branch *br, struct super_block *sb)
+{
+	int err, i;
+	const unsigned char do_plink
+		= !!au_opt_test(au_mntflags(sb), PLINK);
+	struct inode *h_dir;
+	struct path path = br->br_path;
+	struct dentry *h_root = path.dentry;
+	struct au_wbr *wbr = br->br_wbr;
+	static const struct qstr base_name[] = {
+		[AuBrWh_BASE] = QSTR_INIT(AUFS_BASE_NAME,
+					  sizeof(AUFS_BASE_NAME) - 1),
+		[AuBrWh_PLINK] = QSTR_INIT(AUFS_PLINKDIR_NAME,
+					   sizeof(AUFS_PLINKDIR_NAME) - 1),
+		[AuBrWh_ORPH] = QSTR_INIT(AUFS_ORPHDIR_NAME,
+					  sizeof(AUFS_ORPHDIR_NAME) - 1)
+	};
+	struct au_wh_base base[] = {
+		[AuBrWh_BASE] = {
+			.name	= base_name + AuBrWh_BASE,
+			.dentry	= NULL
+		},
+		[AuBrWh_PLINK] = {
+			.name	= base_name + AuBrWh_PLINK,
+			.dentry	= NULL
+		},
+		[AuBrWh_ORPH] = {
+			.name	= base_name + AuBrWh_ORPH,
+			.dentry	= NULL
+		}
+	};
+
+	if (wbr)
+		WbrWhMustWriteLock(wbr);
+
+	for (i = 0; i < AuBrWh_Last; i++) {
+		/* doubly whiteouted */
+		struct dentry *d;
+
+		d = au_wh_lkup(h_root, (void *)base[i].name, br);
+		err = PTR_ERR(d);
+		if (IS_ERR(d))
+			goto out;
+
+		base[i].dentry = d;
+		AuDebugOn(wbr
+			  && wbr->wbr_wh[i]
+			  && wbr->wbr_wh[i] != base[i].dentry);
+	}
+
+	if (wbr)
+		for (i = 0; i < AuBrWh_Last; i++) {
+			dput(wbr->wbr_wh[i]);
+			wbr->wbr_wh[i] = NULL;
+		}
+
+	err = 0;
+	if (!au_br_writable(br->br_perm)) {
+		h_dir = d_inode(h_root);
+		au_wh_init_ro(h_dir, base, &path);
+	} else if (!au_br_wh_linkable(br->br_perm)) {
+		err = au_wh_init_rw_nolink(h_root, wbr, do_plink, base, &path);
+		if (err > 0)
+			goto out;
+		else if (err)
+			goto out_err;
+	} else {
+		err = au_wh_init_rw(h_root, wbr, do_plink, base, &path);
+		if (err > 0)
+			goto out;
+		else if (err)
+			goto out_err;
+	}
+	goto out; /* success */
+
+out_err:
+	pr_err("an error(%d) on the writable branch %pd(%s)\n",
+	       err, h_root, au_sbtype(h_root->d_sb));
+out:
+	for (i = 0; i < AuBrWh_Last; i++)
+		dput(base[i].dentry);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * whiteouts are all hard-linked usually.
+ * when its link count reaches a ceiling, we create a new whiteout base
+ * asynchronously.
+ */
+
+struct reinit_br_wh {
+	struct super_block *sb;
+	struct au_branch *br;
+};
+
+static void reinit_br_wh(void *arg)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct path h_path;
+	struct reinit_br_wh *a = arg;
+	struct au_wbr *wbr;
+	struct inode *dir, *delegated;
+	struct dentry *h_root;
+	struct au_hinode *hdir;
+
+	err = 0;
+	wbr = a->br->br_wbr;
+	/* big aufs lock */
+	si_noflush_write_lock(a->sb);
+	if (!au_br_writable(a->br->br_perm))
+		goto out;
+	bindex = au_br_index(a->sb, a->br->br_id);
+	if (unlikely(bindex < 0))
+		goto out;
+
+	di_read_lock_parent(a->sb->s_root, AuLock_IR);
+	dir = d_inode(a->sb->s_root);
+	hdir = au_hi(dir, bindex);
+	h_root = au_h_dptr(a->sb->s_root, bindex);
+	AuDebugOn(h_root != au_br_dentry(a->br));
+
+	au_hn_inode_lock_nested(hdir, AuLsc_I_PARENT);
+	wbr_wh_write_lock(wbr);
+	err = au_h_verify(wbr->wbr_whbase, au_opt_udba(a->sb), hdir->hi_inode,
+			  h_root, a->br);
+	if (!err) {
+		h_path.dentry = wbr->wbr_whbase;
+		h_path.mnt = au_br_mnt(a->br);
+		delegated = NULL;
+		err = vfsub_unlink(hdir->hi_inode, &h_path, &delegated,
+				   /*force*/0);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal unlink\n");
+			iput(delegated);
+		}
+	} else {
+		pr_warn("%pd is moved, ignored\n", wbr->wbr_whbase);
+		err = 0;
+	}
+	dput(wbr->wbr_whbase);
+	wbr->wbr_whbase = NULL;
+	if (!err)
+		err = au_wh_init(a->br, a->sb);
+	wbr_wh_write_unlock(wbr);
+	au_hn_inode_unlock(hdir);
+	di_read_unlock(a->sb->s_root, AuLock_IR);
+	if (!err)
+		au_fhsm_wrote(a->sb, bindex, /*force*/0);
+
+out:
+	if (wbr)
+		atomic_dec(&wbr->wbr_wh_running);
+	au_lcnt_dec(&a->br->br_count);
+	si_write_unlock(a->sb);
+	au_nwt_done(&au_sbi(a->sb)->si_nowait);
+	au_kfree_rcu(a);
+	if (unlikely(err))
+		AuIOErr("err %d\n", err);
+}
+
+static void kick_reinit_br_wh(struct super_block *sb, struct au_branch *br)
+{
+	int do_dec, wkq_err;
+	struct reinit_br_wh *arg;
+
+	do_dec = 1;
+	if (atomic_inc_return(&br->br_wbr->wbr_wh_running) != 1)
+		goto out;
+
+	/* ignore ENOMEM */
+	arg = kmalloc(sizeof(*arg), GFP_NOFS);
+	if (arg) {
+		/*
+		 * dec(wh_running), kfree(arg) and dec(br_count)
+		 * in reinit function
+		 */
+		arg->sb = sb;
+		arg->br = br;
+		au_lcnt_inc(&br->br_count);
+		wkq_err = au_wkq_nowait(reinit_br_wh, arg, sb, /*flags*/0);
+		if (unlikely(wkq_err)) {
+			atomic_dec(&br->br_wbr->wbr_wh_running);
+			au_lcnt_dec(&br->br_count);
+			au_kfree_rcu(arg);
+		}
+		do_dec = 0;
+	}
+
+out:
+	if (do_dec)
+		atomic_dec(&br->br_wbr->wbr_wh_running);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create the whiteout @wh.
+ */
+static int link_or_create_wh(struct super_block *sb, aufs_bindex_t bindex,
+			     struct dentry *wh)
+{
+	int err;
+	struct path h_path = {
+		.dentry = wh
+	};
+	struct au_branch *br;
+	struct au_wbr *wbr;
+	struct dentry *h_parent;
+	struct inode *h_dir, *delegated;
+
+	h_parent = wh->d_parent; /* dir inode is locked */
+	h_dir = d_inode(h_parent);
+	IMustLock(h_dir);
+
+	br = au_sbr(sb, bindex);
+	h_path.mnt = au_br_mnt(br);
+	wbr = br->br_wbr;
+	wbr_wh_read_lock(wbr);
+	if (wbr->wbr_whbase) {
+		delegated = NULL;
+		err = vfsub_link(wbr->wbr_whbase, h_dir, &h_path, &delegated);
+		if (unlikely(err == -EWOULDBLOCK)) {
+			pr_warn("cannot retry for NFSv4 delegation"
+				" for an internal link\n");
+			iput(delegated);
+		}
+		if (!err || err != -EMLINK)
+			goto out;
+
+		/* link count full. re-initialize br_whbase. */
+		kick_reinit_br_wh(sb, br);
+	}
+
+	/* return this error in this context */
+	err = vfsub_create(h_dir, &h_path, WH_MASK, /*want_excl*/true);
+	if (!err)
+		au_fhsm_wrote(sb, bindex, /*force*/0);
+
+out:
+	wbr_wh_read_unlock(wbr);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create or remove the diropq.
+ */
+static struct dentry *do_diropq(struct dentry *dentry, aufs_bindex_t bindex,
+				unsigned int flags)
+{
+	struct dentry *opq_dentry, *h_dentry;
+	struct super_block *sb;
+	struct au_branch *br;
+	int err;
+
+	sb = dentry->d_sb;
+	br = au_sbr(sb, bindex);
+	h_dentry = au_h_dptr(dentry, bindex);
+	opq_dentry = vfsub_lkup_one(&diropq_name, h_dentry);
+	if (IS_ERR(opq_dentry))
+		goto out;
+
+	if (au_ftest_diropq(flags, CREATE)) {
+		err = link_or_create_wh(sb, bindex, opq_dentry);
+		if (!err) {
+			au_set_dbdiropq(dentry, bindex);
+			goto out; /* success */
+		}
+	} else {
+		struct path tmp = {
+			.dentry = opq_dentry,
+			.mnt	= au_br_mnt(br)
+		};
+		err = do_unlink_wh(au_h_iptr(d_inode(dentry), bindex), &tmp);
+		if (!err)
+			au_set_dbdiropq(dentry, -1);
+	}
+	dput(opq_dentry);
+	opq_dentry = ERR_PTR(err);
+
+out:
+	return opq_dentry;
+}
+
+struct do_diropq_args {
+	struct dentry **errp;
+	struct dentry *dentry;
+	aufs_bindex_t bindex;
+	unsigned int flags;
+};
+
+static void call_do_diropq(void *args)
+{
+	struct do_diropq_args *a = args;
+	*a->errp = do_diropq(a->dentry, a->bindex, a->flags);
+}
+
+struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex,
+			     unsigned int flags)
+{
+	struct dentry *diropq, *h_dentry;
+
+	h_dentry = au_h_dptr(dentry, bindex);
+	if (!au_test_h_perm_sio(d_inode(h_dentry), MAY_EXEC | MAY_WRITE))
+		diropq = do_diropq(dentry, bindex, flags);
+	else {
+		int wkq_err;
+		struct do_diropq_args args = {
+			.errp		= &diropq,
+			.dentry		= dentry,
+			.bindex		= bindex,
+			.flags		= flags
+		};
+
+		wkq_err = au_wkq_wait(call_do_diropq, &args);
+		if (unlikely(wkq_err))
+			diropq = ERR_PTR(wkq_err);
+	}
+
+	return diropq;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * lookup whiteout dentry.
+ * @h_parent: lower parent dentry which must exist and be locked
+ * @base_name: name of dentry which will be whiteouted
+ * returns dentry for whiteout.
+ */
+struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name,
+			  struct au_branch *br)
+{
+	int err;
+	struct qstr wh_name;
+	struct dentry *wh_dentry;
+
+	err = au_wh_name_alloc(&wh_name, base_name);
+	wh_dentry = ERR_PTR(err);
+	if (!err) {
+		wh_dentry = vfsub_lkup_one(&wh_name, h_parent);
+		au_kfree_try_rcu(wh_name.name);
+	}
+	return wh_dentry;
+}
+
+/*
+ * link/create a whiteout for @dentry on @bindex.
+ */
+struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex,
+			    struct dentry *h_parent)
+{
+	struct dentry *wh_dentry;
+	struct super_block *sb;
+	int err;
+
+	sb = dentry->d_sb;
+	wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, au_sbr(sb, bindex));
+	if (!IS_ERR(wh_dentry) && d_is_negative(wh_dentry)) {
+		err = link_or_create_wh(sb, bindex, wh_dentry);
+		if (!err) {
+			au_set_dbwh(dentry, bindex);
+			au_fhsm_wrote(sb, bindex, /*force*/0);
+		} else {
+			dput(wh_dentry);
+			wh_dentry = ERR_PTR(err);
+		}
+	}
+
+	return wh_dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* Delete all whiteouts in this directory on branch bindex. */
+static int del_wh_children(struct dentry *h_dentry, struct au_nhash *whlist,
+			   aufs_bindex_t bindex, struct au_branch *br)
+{
+	int err;
+	unsigned long ul, n;
+	struct qstr wh_name;
+	char *p;
+	struct hlist_head *head;
+	struct au_vdir_wh *pos;
+	struct au_vdir_destr *str;
+
+	err = -ENOMEM;
+	p = (void *)__get_free_page(GFP_NOFS);
+	wh_name.name = p;
+	if (unlikely(!wh_name.name))
+		goto out;
+
+	err = 0;
+	memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
+	p += AUFS_WH_PFX_LEN;
+	n = whlist->nh_num;
+	head = whlist->nh_head;
+	for (ul = 0; !err && ul < n; ul++, head++) {
+		hlist_for_each_entry(pos, head, wh_hash) {
+			if (pos->wh_bindex != bindex)
+				continue;
+
+			str = &pos->wh_str;
+			if (str->len + AUFS_WH_PFX_LEN <= PATH_MAX) {
+				memcpy(p, str->name, str->len);
+				wh_name.len = AUFS_WH_PFX_LEN + str->len;
+				err = unlink_wh_name(h_dentry, &wh_name, br);
+				if (!err)
+					continue;
+				break;
+			}
+			AuIOErr("whiteout name too long %.*s\n",
+				str->len, str->name);
+			err = -EIO;
+			break;
+		}
+	}
+	free_page((unsigned long)wh_name.name);
+
+out:
+	return err;
+}
+
+struct del_wh_children_args {
+	int *errp;
+	struct dentry *h_dentry;
+	struct au_nhash *whlist;
+	aufs_bindex_t bindex;
+	struct au_branch *br;
+};
+
+static void call_del_wh_children(void *args)
+{
+	struct del_wh_children_args *a = args;
+	*a->errp = del_wh_children(a->h_dentry, a->whlist, a->bindex, a->br);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp)
+{
+	struct au_whtmp_rmdir *whtmp;
+	int err;
+	unsigned int rdhash;
+
+	SiMustAnyLock(sb);
+
+	whtmp = kzalloc(sizeof(*whtmp), gfp);
+	if (unlikely(!whtmp)) {
+		whtmp = ERR_PTR(-ENOMEM);
+		goto out;
+	}
+
+	/* no estimation for dir size */
+	rdhash = au_sbi(sb)->si_rdhash;
+	if (!rdhash)
+		rdhash = AUFS_RDHASH_DEF;
+	err = au_nhash_alloc(&whtmp->whlist, rdhash, gfp);
+	if (unlikely(err)) {
+		au_kfree_rcu(whtmp);
+		whtmp = ERR_PTR(err);
+	}
+
+out:
+	return whtmp;
+}
+
+void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp)
+{
+	if (whtmp->br)
+		au_lcnt_dec(&whtmp->br->br_count);
+	dput(whtmp->wh_dentry);
+	iput(whtmp->dir);
+	au_nhash_wh_free(&whtmp->whlist);
+	au_kfree_rcu(whtmp);
+}
+
+/*
+ * rmdir the whiteouted temporary named dir @h_dentry.
+ * @whlist: whiteouted children.
+ */
+int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex,
+		   struct dentry *wh_dentry, struct au_nhash *whlist)
+{
+	int err;
+	unsigned int h_nlink;
+	struct path h_tmp;
+	struct inode *wh_inode, *h_dir;
+	struct au_branch *br;
+
+	h_dir = d_inode(wh_dentry->d_parent); /* dir inode is locked */
+	IMustLock(h_dir);
+
+	br = au_sbr(dir->i_sb, bindex);
+	wh_inode = d_inode(wh_dentry);
+	inode_lock_nested(wh_inode, AuLsc_I_CHILD);
+
+	/*
+	 * someone else might change some whiteouts while we were sleeping.
+	 * it means this whlist may have an obsoleted entry.
+	 */
+	if (!au_test_h_perm_sio(wh_inode, MAY_EXEC | MAY_WRITE))
+		err = del_wh_children(wh_dentry, whlist, bindex, br);
+	else {
+		int wkq_err;
+		struct del_wh_children_args args = {
+			.errp		= &err,
+			.h_dentry	= wh_dentry,
+			.whlist		= whlist,
+			.bindex		= bindex,
+			.br		= br
+		};
+
+		wkq_err = au_wkq_wait(call_del_wh_children, &args);
+		if (unlikely(wkq_err))
+			err = wkq_err;
+	}
+	inode_unlock(wh_inode);
+
+	if (!err) {
+		h_tmp.dentry = wh_dentry;
+		h_tmp.mnt = au_br_mnt(br);
+		h_nlink = h_dir->i_nlink;
+		err = vfsub_rmdir(h_dir, &h_tmp);
+		/* some fs doesn't change the parent nlink in some cases */
+		h_nlink -= h_dir->i_nlink;
+	}
+
+	if (!err) {
+		if (au_ibtop(dir) == bindex) {
+			/* todo: dir->i_mutex is necessary */
+			au_cpup_attr_timesizes(dir);
+			if (h_nlink)
+				vfsub_drop_nlink(dir);
+		}
+		return 0; /* success */
+	}
+
+	pr_warn("failed removing %pd(%d), ignored\n", wh_dentry, err);
+	return err;
+}
+
+static void call_rmdir_whtmp(void *args)
+{
+	int err;
+	aufs_bindex_t bindex;
+	struct au_whtmp_rmdir *a = args;
+	struct super_block *sb;
+	struct dentry *h_parent;
+	struct inode *h_dir;
+	struct au_hinode *hdir;
+
+	/* rmdir by nfsd may cause deadlock with this i_mutex */
+	/* inode_lock(a->dir); */
+	err = -EROFS;
+	sb = a->dir->i_sb;
+	si_read_lock(sb, !AuLock_FLUSH);
+	if (!au_br_writable(a->br->br_perm))
+		goto out;
+	bindex = au_br_index(sb, a->br->br_id);
+	if (unlikely(bindex < 0))
+		goto out;
+
+	err = -EIO;
+	ii_write_lock_parent(a->dir);
+	h_parent = dget_parent(a->wh_dentry);
+	h_dir = d_inode(h_parent);
+	hdir = au_hi(a->dir, bindex);
+	err = vfsub_mnt_want_write(au_br_mnt(a->br));
+	if (unlikely(err))
+		goto out_mnt;
+	au_hn_inode_lock_nested(hdir, AuLsc_I_PARENT);
+	err = au_h_verify(a->wh_dentry, au_opt_udba(sb), h_dir, h_parent,
+			  a->br);
+	if (!err)
+		err = au_whtmp_rmdir(a->dir, bindex, a->wh_dentry, &a->whlist);
+	au_hn_inode_unlock(hdir);
+	vfsub_mnt_drop_write(au_br_mnt(a->br));
+
+out_mnt:
+	dput(h_parent);
+	ii_write_unlock(a->dir);
+out:
+	/* inode_unlock(a->dir); */
+	au_whtmp_rmdir_free(a);
+	si_read_unlock(sb);
+	au_nwt_done(&au_sbi(sb)->si_nowait);
+	if (unlikely(err))
+		AuIOErr("err %d\n", err);
+}
+
+void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex,
+			 struct dentry *wh_dentry, struct au_whtmp_rmdir *args)
+{
+	int wkq_err;
+	struct super_block *sb;
+
+	IMustLock(dir);
+
+	/* all post-process will be done in do_rmdir_whtmp(). */
+	sb = dir->i_sb;
+	args->dir = au_igrab(dir);
+	args->br = au_sbr(sb, bindex);
+	au_lcnt_inc(&args->br->br_count);
+	args->wh_dentry = dget(wh_dentry);
+	wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, sb, /*flags*/0);
+	if (unlikely(wkq_err)) {
+		pr_warn("rmdir error %pd (%d), ignored\n", wh_dentry, wkq_err);
+		au_whtmp_rmdir_free(args);
+	}
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/whout.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/whout.h
@@ -0,0 +1,86 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * whiteout for logical deletion and opaque directory
+ */
+
+#ifndef __AUFS_WHOUT_H__
+#define __AUFS_WHOUT_H__
+
+#ifdef __KERNEL__
+
+#include "dir.h"
+
+/* whout.c */
+int au_wh_name_alloc(struct qstr *wh, const struct qstr *name);
+int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, int try_sio);
+int au_diropq_test(struct dentry *h_dentry);
+struct au_branch;
+struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br,
+			     struct qstr *prefix);
+int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br);
+int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path,
+			struct dentry *dentry);
+int au_wh_init(struct au_branch *br, struct super_block *sb);
+
+/* diropq flags */
+#define AuDiropq_CREATE	1
+#define au_ftest_diropq(flags, name)	((flags) & AuDiropq_##name)
+#define au_fset_diropq(flags, name) \
+	do { (flags) |= AuDiropq_##name; } while (0)
+#define au_fclr_diropq(flags, name) \
+	do { (flags) &= ~AuDiropq_##name; } while (0)
+
+struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex,
+			     unsigned int flags);
+struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name,
+			  struct au_branch *br);
+struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex,
+			    struct dentry *h_parent);
+
+/* real rmdir for the whiteout-ed dir */
+struct au_whtmp_rmdir {
+	struct inode *dir;
+	struct au_branch *br;
+	struct dentry *wh_dentry;
+	struct au_nhash whlist;
+};
+
+struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp);
+void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp);
+int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex,
+		   struct dentry *wh_dentry, struct au_nhash *whlist);
+void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex,
+			 struct dentry *wh_dentry, struct au_whtmp_rmdir *args);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct dentry *au_diropq_create(struct dentry *dentry,
+					      aufs_bindex_t bindex)
+{
+	return au_diropq_sio(dentry, bindex, AuDiropq_CREATE);
+}
+
+static inline int au_diropq_remove(struct dentry *dentry, aufs_bindex_t bindex)
+{
+	return PTR_ERR(au_diropq_sio(dentry, bindex, !AuDiropq_CREATE));
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_WHOUT_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/wkq.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/wkq.c
@@ -0,0 +1,372 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * workqueue for asynchronous/super-io operations
+ * todo: try new credential scheme
+ */
+
+#include <linux/module.h>
+#include "aufs.h"
+
+/* internal workqueue named AUFS_WKQ_NAME */
+
+static struct workqueue_struct *au_wkq;
+
+struct au_wkinfo {
+	struct work_struct wk;
+	struct kobject *kobj;
+
+	unsigned int flags; /* see wkq.h */
+
+	au_wkq_func_t func;
+	void *args;
+
+#ifdef CONFIG_LOCKDEP
+	int dont_check;
+	struct held_lock **hlock;
+#endif
+
+	struct completion *comp;
+};
+
+/* ---------------------------------------------------------------------- */
+/*
+ * Aufs passes some operations to the workqueue such as the internal copyup.
+ * This scheme looks rather unnatural for LOCKDEP debugging feature, since the
+ * job run by workqueue depends upon the locks acquired in the other task.
+ * Delegating a small operation to the workqueue, aufs passes its lockdep
+ * information too. And the job in the workqueue restores the info in order to
+ * pretend as if it acquired those locks. This is just to make LOCKDEP work
+ * correctly and expectedly.
+ */
+
+#ifndef CONFIG_LOCKDEP
+AuStubInt0(au_wkq_lockdep_alloc, struct au_wkinfo *wkinfo);
+AuStubVoid(au_wkq_lockdep_free, struct au_wkinfo *wkinfo);
+AuStubVoid(au_wkq_lockdep_pre, struct au_wkinfo *wkinfo);
+AuStubVoid(au_wkq_lockdep_post, struct au_wkinfo *wkinfo);
+AuStubVoid(au_wkq_lockdep_init, struct au_wkinfo *wkinfo);
+#else
+static void au_wkq_lockdep_init(struct au_wkinfo *wkinfo)
+{
+	wkinfo->hlock = NULL;
+	wkinfo->dont_check = 0;
+}
+
+/*
+ * 1: matched
+ * 0: unmatched
+ */
+static int au_wkq_lockdep_test(struct lock_class_key *key, const char *name)
+{
+	static DEFINE_SPINLOCK(spin);
+	static struct {
+		char *name;
+		struct lock_class_key *key;
+	} a[] = {
+		{ .name = "&sbinfo->si_rwsem" },
+		{ .name = "&finfo->fi_rwsem" },
+		{ .name = "&dinfo->di_rwsem" },
+		{ .name = "&iinfo->ii_rwsem" }
+	};
+	static int set;
+	int i;
+
+	/* lockless read from 'set.' see below */
+	if (set == ARRAY_SIZE(a)) {
+		for (i = 0; i < ARRAY_SIZE(a); i++)
+			if (a[i].key == key)
+				goto match;
+		goto unmatch;
+	}
+
+	spin_lock(&spin);
+	if (set)
+		for (i = 0; i < ARRAY_SIZE(a); i++)
+			if (a[i].key == key) {
+				spin_unlock(&spin);
+				goto match;
+			}
+	for (i = 0; i < ARRAY_SIZE(a); i++) {
+		if (a[i].key) {
+			if (unlikely(a[i].key == key)) { /* rare but possible */
+				spin_unlock(&spin);
+				goto match;
+			} else
+				continue;
+		}
+		if (strstr(a[i].name, name)) {
+			/*
+			 * the order of these three lines is important for the
+			 * lockless read above.
+			 */
+			a[i].key = key;
+			spin_unlock(&spin);
+			set++;
+			/* AuDbg("%d, %s\n", set, name); */
+			goto match;
+		}
+	}
+	spin_unlock(&spin);
+	goto unmatch;
+
+match:
+	return 1;
+unmatch:
+	return 0;
+}
+
+static int au_wkq_lockdep_alloc(struct au_wkinfo *wkinfo)
+{
+	int err, n;
+	struct task_struct *curr;
+	struct held_lock **hl, *held_locks, *p;
+
+	err = 0;
+	curr = current;
+	wkinfo->dont_check = lockdep_recursing(curr);
+	if (wkinfo->dont_check)
+		goto out;
+	n = curr->lockdep_depth;
+	if (!n)
+		goto out;
+
+	err = -ENOMEM;
+	wkinfo->hlock = kmalloc_array(n + 1, sizeof(*wkinfo->hlock), GFP_NOFS);
+	if (unlikely(!wkinfo->hlock))
+		goto out;
+
+	err = 0;
+#if 0 /* left for debugging */
+	if (0 && au_debug_test())
+		lockdep_print_held_locks(curr);
+#endif
+	held_locks = curr->held_locks;
+	hl = wkinfo->hlock;
+	while (n--) {
+		p = held_locks++;
+		if (au_wkq_lockdep_test(p->instance->key, p->instance->name))
+			*hl++ = p;
+	}
+	*hl = NULL;
+
+out:
+	return err;
+}
+
+static void au_wkq_lockdep_free(struct au_wkinfo *wkinfo)
+{
+	au_kfree_try_rcu(wkinfo->hlock);
+}
+
+static void au_wkq_lockdep_pre(struct au_wkinfo *wkinfo)
+{
+	struct held_lock *p, **hl = wkinfo->hlock;
+	int subclass;
+
+	if (wkinfo->dont_check)
+		lockdep_off();
+	if (!hl)
+		return;
+	while ((p = *hl++)) { /* assignment */
+		subclass = lockdep_hlock_class(p)->subclass;
+		/* AuDbg("%s, %d\n", p->instance->name, subclass); */
+		if (p->read)
+			rwsem_acquire_read(p->instance, subclass, 0,
+					   /*p->acquire_ip*/_RET_IP_);
+		else
+			rwsem_acquire(p->instance, subclass, 0,
+				      /*p->acquire_ip*/_RET_IP_);
+	}
+}
+
+static void au_wkq_lockdep_post(struct au_wkinfo *wkinfo)
+{
+	struct held_lock *p, **hl = wkinfo->hlock;
+
+	if (wkinfo->dont_check)
+		lockdep_on();
+	if (!hl)
+		return;
+	while ((p = *hl++)) /* assignment */
+		rwsem_release(p->instance, 0, /*p->acquire_ip*/_RET_IP_);
+}
+#endif
+
+static void wkq_func(struct work_struct *wk)
+{
+	struct au_wkinfo *wkinfo = container_of(wk, struct au_wkinfo, wk);
+
+	AuDebugOn(!uid_eq(current_fsuid(), GLOBAL_ROOT_UID));
+	AuDebugOn(rlimit(RLIMIT_FSIZE) != RLIM_INFINITY);
+
+	au_wkq_lockdep_pre(wkinfo);
+	wkinfo->func(wkinfo->args);
+	au_wkq_lockdep_post(wkinfo);
+	if (au_ftest_wkq(wkinfo->flags, WAIT))
+		complete(wkinfo->comp);
+	else {
+		kobject_put(wkinfo->kobj);
+		module_put(THIS_MODULE); /* todo: ?? */
+		au_kfree_rcu(wkinfo);
+	}
+}
+
+/*
+ * Since struct completion is large, try allocating it dynamically.
+ */
+#define AuWkqCompDeclare(name)	struct completion *comp = NULL
+
+static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
+{
+	*comp = kmalloc(sizeof(**comp), GFP_NOFS);
+	if (*comp) {
+		init_completion(*comp);
+		wkinfo->comp = *comp;
+		return 0;
+	}
+	return -ENOMEM;
+}
+
+static void au_wkq_comp_free(struct completion *comp)
+{
+	au_kfree_rcu(comp);
+}
+
+static void au_wkq_run(struct au_wkinfo *wkinfo)
+{
+	if (au_ftest_wkq(wkinfo->flags, NEST)) {
+		if (au_wkq_test()) {
+			AuWarn1("wkq from wkq, unless silly-rename on NFS,"
+				" due to a dead dir by UDBA,"
+				" or async xino write?\n");
+			AuDebugOn(au_ftest_wkq(wkinfo->flags, WAIT));
+		}
+	} else
+		au_dbg_verify_kthread();
+
+	if (au_ftest_wkq(wkinfo->flags, WAIT)) {
+		INIT_WORK_ONSTACK(&wkinfo->wk, wkq_func);
+		queue_work(au_wkq, &wkinfo->wk);
+	} else {
+		INIT_WORK(&wkinfo->wk, wkq_func);
+		schedule_work(&wkinfo->wk);
+	}
+}
+
+/*
+ * Be careful. It is easy to make deadlock happen.
+ * processA: lock, wkq and wait
+ * processB: wkq and wait, lock in wkq
+ * --> deadlock
+ */
+int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args)
+{
+	int err;
+	AuWkqCompDeclare(comp);
+	struct au_wkinfo wkinfo = {
+		.flags	= flags,
+		.func	= func,
+		.args	= args
+	};
+
+	err = au_wkq_comp_alloc(&wkinfo, &comp);
+	if (unlikely(err))
+		goto out;
+	err = au_wkq_lockdep_alloc(&wkinfo);
+	if (unlikely(err))
+		goto out_comp;
+	if (!err) {
+		au_wkq_run(&wkinfo);
+		/* no timeout, no interrupt */
+		wait_for_completion(wkinfo.comp);
+	}
+	au_wkq_lockdep_free(&wkinfo);
+
+out_comp:
+	au_wkq_comp_free(comp);
+out:
+	destroy_work_on_stack(&wkinfo.wk);
+	return err;
+}
+
+/*
+ * Note: dget/dput() in func for aufs dentries are not supported. It will be a
+ * problem in a concurrent umounting.
+ */
+int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb,
+		  unsigned int flags)
+{
+	int err;
+	struct au_wkinfo *wkinfo;
+
+	atomic_inc(&au_sbi(sb)->si_nowait.nw_len);
+
+	/*
+	 * wkq_func() must free this wkinfo.
+	 * it highly depends upon the implementation of workqueue.
+	 */
+	err = 0;
+	wkinfo = kmalloc(sizeof(*wkinfo), GFP_NOFS);
+	if (wkinfo) {
+		wkinfo->kobj = &au_sbi(sb)->si_kobj;
+		wkinfo->flags = flags & ~AuWkq_WAIT;
+		wkinfo->func = func;
+		wkinfo->args = args;
+		wkinfo->comp = NULL;
+		au_wkq_lockdep_init(wkinfo);
+		kobject_get(wkinfo->kobj);
+		__module_get(THIS_MODULE); /* todo: ?? */
+
+		au_wkq_run(wkinfo);
+	} else {
+		err = -ENOMEM;
+		au_nwt_done(&au_sbi(sb)->si_nowait);
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_nwt_init(struct au_nowait_tasks *nwt)
+{
+	atomic_set(&nwt->nw_len, 0);
+	/* smp_mb(); */ /* atomic_set */
+	init_waitqueue_head(&nwt->nw_wq);
+}
+
+void au_wkq_fin(void)
+{
+	destroy_workqueue(au_wkq);
+}
+
+int __init au_wkq_init(void)
+{
+	int err;
+
+	err = 0;
+	au_wkq = alloc_workqueue(AUFS_WKQ_NAME, 0, WQ_DFL_ACTIVE);
+	if (IS_ERR(au_wkq))
+		err = PTR_ERR(au_wkq);
+	else if (!au_wkq)
+		err = -ENOMEM;
+
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/wkq.h
+++ linux-gkeop-5.4-5.4.0/fs/aufs/wkq.h
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * workqueue for asynchronous/super-io operations
+ * todo: try new credentials management scheme
+ */
+
+#ifndef __AUFS_WKQ_H__
+#define __AUFS_WKQ_H__
+
+#ifdef __KERNEL__
+
+#include <linux/wait.h>
+
+struct super_block;
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * in the next operation, wait for the 'nowait' tasks in system-wide workqueue
+ */
+struct au_nowait_tasks {
+	atomic_t		nw_len;
+	wait_queue_head_t	nw_wq;
+};
+
+/* ---------------------------------------------------------------------- */
+
+typedef void (*au_wkq_func_t)(void *args);
+
+/* wkq flags */
+#define AuWkq_WAIT	1
+#define AuWkq_NEST	(1 << 1)
+#define au_ftest_wkq(flags, name)	((flags) & AuWkq_##name)
+#define au_fset_wkq(flags, name) \
+	do { (flags) |= AuWkq_##name; } while (0)
+#define au_fclr_wkq(flags, name) \
+	do { (flags) &= ~AuWkq_##name; } while (0)
+
+/* wkq.c */
+int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args);
+int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb,
+		  unsigned int flags);
+void au_nwt_init(struct au_nowait_tasks *nwt);
+int __init au_wkq_init(void);
+void au_wkq_fin(void);
+
+/* ---------------------------------------------------------------------- */
+
+static inline int au_wkq_test(void)
+{
+	return current->flags & PF_WQ_WORKER;
+}
+
+static inline int au_wkq_wait(au_wkq_func_t func, void *args)
+{
+	return au_wkq_do_wait(AuWkq_WAIT, func, args);
+}
+
+static inline void au_nwt_done(struct au_nowait_tasks *nwt)
+{
+	if (atomic_dec_and_test(&nwt->nw_len))
+		wake_up_all(&nwt->nw_wq);
+}
+
+static inline int au_nwt_flush(struct au_nowait_tasks *nwt)
+{
+	wait_event(nwt->nw_wq, !atomic_read(&nwt->nw_len));
+	return 0;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_WKQ_H__ */
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/xattr.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/xattr.c
@@ -0,0 +1,356 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2014-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * handling xattr functions
+ */
+
+#include <linux/fs.h>
+#include <linux/posix_acl_xattr.h>
+#include <linux/xattr.h>
+#include "aufs.h"
+
+static int au_xattr_ignore(int err, char *name, unsigned int ignore_flags)
+{
+	if (!ignore_flags)
+		goto out;
+	switch (err) {
+	case -ENOMEM:
+	case -EDQUOT:
+		goto out;
+	}
+
+	if ((ignore_flags & AuBrAttr_ICEX) == AuBrAttr_ICEX) {
+		err = 0;
+		goto out;
+	}
+
+#define cmp(brattr, prefix) do {					\
+		if (!strncmp(name, XATTR_##prefix##_PREFIX,		\
+			     XATTR_##prefix##_PREFIX_LEN)) {		\
+			if (ignore_flags & AuBrAttr_ICEX_##brattr)	\
+				err = 0;				\
+			goto out;					\
+		}							\
+	} while (0)
+
+	cmp(SEC, SECURITY);
+	cmp(SYS, SYSTEM);
+	cmp(TR, TRUSTED);
+	cmp(USR, USER);
+#undef cmp
+
+	if (ignore_flags & AuBrAttr_ICEX_OTH)
+		err = 0;
+
+out:
+	return err;
+}
+
+static const int au_xattr_out_of_list = AuBrAttr_ICEX_OTH << 1;
+
+static int au_do_cpup_xattr(struct dentry *h_dst, struct dentry *h_src,
+			    char *name, char **buf, unsigned int ignore_flags,
+			    unsigned int verbose)
+{
+	int err;
+	ssize_t ssz;
+	struct inode *h_idst;
+
+	ssz = vfs_getxattr_alloc(h_src, name, buf, 0, GFP_NOFS);
+	err = ssz;
+	if (unlikely(err <= 0)) {
+		if (err == -ENODATA
+		    || (err == -EOPNOTSUPP
+			&& ((ignore_flags & au_xattr_out_of_list)
+			    || (au_test_nfs_noacl(d_inode(h_src))
+				&& (!strcmp(name, XATTR_NAME_POSIX_ACL_ACCESS)
+				    || !strcmp(name,
+					       XATTR_NAME_POSIX_ACL_DEFAULT))))
+			    ))
+			err = 0;
+		if (err && (verbose || au_debug_test()))
+			pr_err("%s, err %d\n", name, err);
+		goto out;
+	}
+
+	/* unlock it temporary */
+	h_idst = d_inode(h_dst);
+	inode_unlock(h_idst);
+	err = vfsub_setxattr(h_dst, name, *buf, ssz, /*flags*/0);
+	inode_lock_nested(h_idst, AuLsc_I_CHILD2);
+	if (unlikely(err)) {
+		if (verbose || au_debug_test())
+			pr_err("%s, err %d\n", name, err);
+		err = au_xattr_ignore(err, name, ignore_flags);
+	}
+
+out:
+	return err;
+}
+
+int au_cpup_xattr(struct dentry *h_dst, struct dentry *h_src, int ignore_flags,
+		  unsigned int verbose)
+{
+	int err, unlocked, acl_access, acl_default;
+	ssize_t ssz;
+	struct inode *h_isrc, *h_idst;
+	char *value, *p, *o, *e;
+
+	/* try stopping to update the source inode while we are referencing */
+	/* there should not be the parent-child relationship between them */
+	h_isrc = d_inode(h_src);
+	h_idst = d_inode(h_dst);
+	inode_unlock(h_idst);
+	inode_lock_shared_nested(h_isrc, AuLsc_I_CHILD);
+	inode_lock_nested(h_idst, AuLsc_I_CHILD2);
+	unlocked = 0;
+
+	/* some filesystems don't list POSIX ACL, for example tmpfs */
+	ssz = vfs_listxattr(h_src, NULL, 0);
+	err = ssz;
+	if (unlikely(err < 0)) {
+		AuTraceErr(err);
+		if (err == -ENODATA
+		    || err == -EOPNOTSUPP)
+			err = 0;	/* ignore */
+		goto out;
+	}
+
+	err = 0;
+	p = NULL;
+	o = NULL;
+	if (ssz) {
+		err = -ENOMEM;
+		p = kmalloc(ssz, GFP_NOFS);
+		o = p;
+		if (unlikely(!p))
+			goto out;
+		err = vfs_listxattr(h_src, p, ssz);
+	}
+	inode_unlock_shared(h_isrc);
+	unlocked = 1;
+	AuDbg("err %d, ssz %zd\n", err, ssz);
+	if (unlikely(err < 0))
+		goto out_free;
+
+	err = 0;
+	e = p + ssz;
+	value = NULL;
+	acl_access = 0;
+	acl_default = 0;
+	while (!err && p < e) {
+		acl_access |= !strncmp(p, XATTR_NAME_POSIX_ACL_ACCESS,
+				       sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1);
+		acl_default |= !strncmp(p, XATTR_NAME_POSIX_ACL_DEFAULT,
+					sizeof(XATTR_NAME_POSIX_ACL_DEFAULT)
+					- 1);
+		err = au_do_cpup_xattr(h_dst, h_src, p, &value, ignore_flags,
+				       verbose);
+		p += strlen(p) + 1;
+	}
+	AuTraceErr(err);
+	ignore_flags |= au_xattr_out_of_list;
+	if (!err && !acl_access) {
+		err = au_do_cpup_xattr(h_dst, h_src,
+				       XATTR_NAME_POSIX_ACL_ACCESS, &value,
+				       ignore_flags, verbose);
+		AuTraceErr(err);
+	}
+	if (!err && !acl_default) {
+		err = au_do_cpup_xattr(h_dst, h_src,
+				       XATTR_NAME_POSIX_ACL_DEFAULT, &value,
+				       ignore_flags, verbose);
+		AuTraceErr(err);
+	}
+
+	au_kfree_try_rcu(value);
+
+out_free:
+	au_kfree_try_rcu(o);
+out:
+	if (!unlocked)
+		inode_unlock_shared(h_isrc);
+	AuTraceErr(err);
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_smack_reentering(struct super_block *sb)
+{
+#if IS_ENABLED(CONFIG_SECURITY_SMACK)
+	/*
+	 * as a part of lookup, smack_d_instantiate() is called, and it calls
+	 * i_op->getxattr(). ouch.
+	 */
+	return si_pid_test(sb);
+#else
+	return 0;
+#endif
+}
+
+enum {
+	AU_XATTR_LIST,
+	AU_XATTR_GET
+};
+
+struct au_lgxattr {
+	int type;
+	union {
+		struct {
+			char	*list;
+			size_t	size;
+		} list;
+		struct {
+			const char	*name;
+			void		*value;
+			size_t		size;
+		} get;
+	} u;
+};
+
+static ssize_t au_lgxattr(struct dentry *dentry, struct au_lgxattr *arg)
+{
+	ssize_t err;
+	int reenter;
+	struct path h_path;
+	struct super_block *sb;
+
+	sb = dentry->d_sb;
+	reenter = au_smack_reentering(sb);
+	if (!reenter) {
+		err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+		if (unlikely(err))
+			goto out;
+	}
+	err = au_h_path_getattr(dentry, /*force*/1, &h_path, reenter);
+	if (unlikely(err))
+		goto out_si;
+	if (unlikely(!h_path.dentry))
+		/* illegally overlapped or something */
+		goto out_di; /* pretending success */
+
+	/* always topmost entry only */
+	switch (arg->type) {
+	case AU_XATTR_LIST:
+		err = vfs_listxattr(h_path.dentry,
+				    arg->u.list.list, arg->u.list.size);
+		break;
+	case AU_XATTR_GET:
+		AuDebugOn(d_is_negative(h_path.dentry));
+		err = vfs_getxattr(h_path.dentry,
+				   arg->u.get.name, arg->u.get.value,
+				   arg->u.get.size);
+		break;
+	}
+
+out_di:
+	if (!reenter)
+		di_read_unlock(dentry, AuLock_IR);
+out_si:
+	if (!reenter)
+		si_read_unlock(sb);
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+ssize_t aufs_listxattr(struct dentry *dentry, char *list, size_t size)
+{
+	struct au_lgxattr arg = {
+		.type = AU_XATTR_LIST,
+		.u.list = {
+			.list	= list,
+			.size	= size
+		},
+	};
+
+	return au_lgxattr(dentry, &arg);
+}
+
+static ssize_t au_getxattr(struct dentry *dentry,
+			   struct inode *inode __maybe_unused,
+			   const char *name, void *value, size_t size)
+{
+	struct au_lgxattr arg = {
+		.type = AU_XATTR_GET,
+		.u.get = {
+			.name	= name,
+			.value	= value,
+			.size	= size
+		},
+	};
+
+	return au_lgxattr(dentry, &arg);
+}
+
+static int au_setxattr(struct dentry *dentry, struct inode *inode,
+		       const char *name, const void *value, size_t size,
+		       int flags)
+{
+	struct au_sxattr arg = {
+		.type = AU_XATTR_SET,
+		.u.set = {
+			.name	= name,
+			.value	= value,
+			.size	= size,
+			.flags	= flags
+		},
+	};
+
+	return au_sxattr(dentry, inode, &arg);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_xattr_get(const struct xattr_handler *handler,
+			struct dentry *dentry, struct inode *inode,
+			const char *name, void *buffer, size_t size)
+{
+	return au_getxattr(dentry, inode, name, buffer, size);
+}
+
+static int au_xattr_set(const struct xattr_handler *handler,
+			struct dentry *dentry, struct inode *inode,
+			const char *name, const void *value, size_t size,
+			int flags)
+{
+	return au_setxattr(dentry, inode, name, value, size, flags);
+}
+
+static const struct xattr_handler au_xattr_handler = {
+	.name	= "",
+	.prefix	= "",
+	.get	= au_xattr_get,
+	.set	= au_xattr_set
+};
+
+static const struct xattr_handler *au_xattr_handlers[] = {
+#ifdef CONFIG_FS_POSIX_ACL
+	&posix_acl_access_xattr_handler,
+	&posix_acl_default_xattr_handler,
+#endif
+	&au_xattr_handler, /* must be last */
+	NULL
+};
+
+void au_xattr_init(struct super_block *sb)
+{
+	sb->s_xattr = au_xattr_handlers;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/aufs/xino.c
+++ linux-gkeop-5.4-5.4.0/fs/aufs/xino.c
@@ -0,0 +1,1966 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2020 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * external inode number translation table and bitmap
+ *
+ * things to consider
+ * - the lifetime
+ *   + au_xino object
+ *   + XINO files (xino, xib, xigen)
+ *   + dynamic debugfs entries (xiN)
+ *   + static debugfs entries (xib, xigen)
+ *   + static sysfs entry (xi_path)
+ * - several entry points to handle them.
+ *   + mount(2) without xino option (default)
+ *   + mount(2) with xino option
+ *   + mount(2) with noxino option
+ *   + umount(2)
+ *   + remount with add/del branches
+ *   + remount with xino/noxino options
+ */
+
+#include <linux/seq_file.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+static aufs_bindex_t sbr_find_shared(struct super_block *sb, aufs_bindex_t btop,
+				     aufs_bindex_t bbot,
+				     struct super_block *h_sb)
+{
+	/* todo: try binary-search if the branches are many */
+	for (; btop <= bbot; btop++)
+		if (h_sb == au_sbr_sb(sb, btop))
+			return btop;
+	return -1;
+}
+
+/*
+ * find another branch who is on the same filesystem of the specified
+ * branch{@btgt}. search until @bbot.
+ */
+static aufs_bindex_t is_sb_shared(struct super_block *sb, aufs_bindex_t btgt,
+				  aufs_bindex_t bbot)
+{
+	aufs_bindex_t bindex;
+	struct super_block *tgt_sb;
+
+	tgt_sb = au_sbr_sb(sb, btgt);
+	bindex = sbr_find_shared(sb, /*btop*/0, btgt - 1, tgt_sb);
+	if (bindex < 0)
+		bindex = sbr_find_shared(sb, btgt + 1, bbot, tgt_sb);
+
+	return bindex;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * stop unnecessary notify events at creating xino files
+ */
+
+aufs_bindex_t au_xi_root(struct super_block *sb, struct dentry *dentry)
+{
+	aufs_bindex_t bfound, bindex, bbot;
+	struct dentry *parent;
+	struct au_branch *br;
+
+	bfound = -1;
+	parent = dentry->d_parent; /* safe d_parent access */
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (au_br_dentry(br) == parent) {
+			bfound = bindex;
+			break;
+		}
+	}
+
+	AuDbg("bfound b%d\n", bfound);
+	return bfound;
+}
+
+struct au_xino_lock_dir {
+	struct au_hinode *hdir;
+	struct dentry *parent;
+	struct inode *dir;
+};
+
+static struct dentry *au_dget_parent_lock(struct dentry *dentry,
+					  unsigned int lsc)
+{
+	struct dentry *parent;
+	struct inode *dir;
+
+	parent = dget_parent(dentry);
+	dir = d_inode(parent);
+	inode_lock_nested(dir, lsc);
+#if 0 /* it should not happen */
+	spin_lock(&dentry->d_lock);
+	if (unlikely(dentry->d_parent != parent)) {
+		spin_unlock(&dentry->d_lock);
+		inode_unlock(dir);
+		dput(parent);
+		parent = NULL;
+		goto out;
+	}
+	spin_unlock(&dentry->d_lock);
+
+out:
+#endif
+	return parent;
+}
+
+static void au_xino_lock_dir(struct super_block *sb, struct path *xipath,
+			     struct au_xino_lock_dir *ldir)
+{
+	aufs_bindex_t bindex;
+
+	ldir->hdir = NULL;
+	bindex = au_xi_root(sb, xipath->dentry);
+	if (bindex >= 0) {
+		/* rw branch root */
+		ldir->hdir = au_hi(d_inode(sb->s_root), bindex);
+		au_hn_inode_lock_nested(ldir->hdir, AuLsc_I_PARENT);
+	} else {
+		/* other */
+		ldir->parent = au_dget_parent_lock(xipath->dentry,
+						   AuLsc_I_PARENT);
+		ldir->dir = d_inode(ldir->parent);
+	}
+}
+
+static void au_xino_unlock_dir(struct au_xino_lock_dir *ldir)
+{
+	if (ldir->hdir)
+		au_hn_inode_unlock(ldir->hdir);
+	else {
+		inode_unlock(ldir->dir);
+		dput(ldir->parent);
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create and set a new xino file
+ */
+struct file *au_xino_create(struct super_block *sb, char *fpath, int silent,
+			    int wbrtop)
+{
+	struct file *file;
+	struct dentry *h_parent, *d;
+	struct inode *h_dir, *inode;
+	int err;
+	static DEFINE_MUTEX(mtx);
+
+	/*
+	 * at mount-time, and the xino file is the default path,
+	 * hnotify is disabled so we have no notify events to ignore.
+	 * when a user specified the xino, we cannot get au_hdir to be ignored.
+	 */
+	if (!wbrtop)
+		mutex_lock(&mtx);
+	file = vfsub_filp_open(fpath, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE
+			       /* | __FMODE_NONOTIFY */,
+			       0666);
+	if (IS_ERR(file)) {
+		if (!wbrtop)
+			mutex_unlock(&mtx);
+		if (!silent)
+			pr_err("open %s(%ld)\n", fpath, PTR_ERR(file));
+		return file;
+	}
+
+	/* keep file count */
+	err = 0;
+	d = file->f_path.dentry;
+	h_parent = au_dget_parent_lock(d, AuLsc_I_PARENT);
+	if (!wbrtop)
+		mutex_unlock(&mtx);
+	/* mnt_want_write() is unnecessary here */
+	h_dir = d_inode(h_parent);
+	inode = file_inode(file);
+	/* no delegation since it is just created */
+	if (inode->i_nlink)
+		err = vfsub_unlink(h_dir, &file->f_path, /*delegated*/NULL,
+				   /*force*/0);
+	inode_unlock(h_dir);
+	dput(h_parent);
+	if (unlikely(err)) {
+		if (!silent)
+			pr_err("unlink %s(%d)\n", fpath, err);
+		goto out;
+	}
+
+	err = -EINVAL;
+	if (unlikely(sb == d->d_sb)) {
+		if (!silent)
+			pr_err("%s must be outside\n", fpath);
+		goto out;
+	}
+	if (unlikely(au_test_fs_bad_xino(d->d_sb))) {
+		if (!silent)
+			pr_err("xino doesn't support %s(%s)\n",
+			       fpath, au_sbtype(d->d_sb));
+		goto out;
+	}
+	return file; /* success */
+
+out:
+	fput(file);
+	file = ERR_PTR(err);
+	return file;
+}
+
+/*
+ * create a new xinofile at the same place/path as @base.
+ */
+struct file *au_xino_create2(struct super_block *sb, struct path *base,
+			     struct file *copy_src)
+{
+	struct file *file;
+	struct dentry *dentry, *parent;
+	struct inode *dir, *delegated;
+	struct qstr *name;
+	struct path path;
+	int err, do_unlock;
+	struct au_xino_lock_dir ldir;
+
+	do_unlock = 1;
+	au_xino_lock_dir(sb, base, &ldir);
+	dentry = base->dentry;
+	parent = dentry->d_parent; /* dir inode is locked */
+	dir = d_inode(parent);
+	IMustLock(dir);
+
+	name = &dentry->d_name;
+	path.dentry = vfsub_lookup_one_len(name->name, parent, name->len);
+	if (IS_ERR(path.dentry)) {
+		file = (void *)path.dentry;
+		pr_err("%pd lookup err %ld\n", dentry, PTR_ERR(path.dentry));
+		goto out;
+	}
+
+	/* no need to mnt_want_write() since we call dentry_open() later */
+	err = vfs_create(dir, path.dentry, 0666, NULL);
+	if (unlikely(err)) {
+		file = ERR_PTR(err);
+		pr_err("%pd create err %d\n", dentry, err);
+		goto out_dput;
+	}
+
+	path.mnt = base->mnt;
+	file = vfsub_dentry_open(&path,
+				 O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE
+				 /* | __FMODE_NONOTIFY */);
+	if (IS_ERR(file)) {
+		pr_err("%pd open err %ld\n", dentry, PTR_ERR(file));
+		goto out_dput;
+	}
+
+	delegated = NULL;
+	err = vfsub_unlink(dir, &file->f_path, &delegated, /*force*/0);
+	au_xino_unlock_dir(&ldir);
+	do_unlock = 0;
+	if (unlikely(err == -EWOULDBLOCK)) {
+		pr_warn("cannot retry for NFSv4 delegation"
+			" for an internal unlink\n");
+		iput(delegated);
+	}
+	if (unlikely(err)) {
+		pr_err("%pd unlink err %d\n", dentry, err);
+		goto out_fput;
+	}
+
+	if (copy_src) {
+		/* no one can touch copy_src xino */
+		err = au_copy_file(file, copy_src, vfsub_f_size_read(copy_src));
+		if (unlikely(err)) {
+			pr_err("%pd copy err %d\n", dentry, err);
+			goto out_fput;
+		}
+	}
+	goto out_dput; /* success */
+
+out_fput:
+	fput(file);
+	file = ERR_PTR(err);
+out_dput:
+	dput(path.dentry);
+out:
+	if (do_unlock)
+		au_xino_unlock_dir(&ldir);
+	return file;
+}
+
+struct file *au_xino_file1(struct au_xino *xi)
+{
+	struct file *file;
+	unsigned int u, nfile;
+
+	file = NULL;
+	nfile = xi->xi_nfile;
+	for (u = 0; u < nfile; u++) {
+		file = xi->xi_file[u];
+		if (file)
+			break;
+	}
+
+	return file;
+}
+
+static int au_xino_file_set(struct au_xino *xi, int idx, struct file *file)
+{
+	int err;
+	struct file *f;
+	void *p;
+
+	if (file)
+		get_file(file);
+
+	err = 0;
+	f = NULL;
+	if (idx < xi->xi_nfile) {
+		f = xi->xi_file[idx];
+		if (f)
+			fput(f);
+	} else {
+		p = au_kzrealloc(xi->xi_file,
+				 sizeof(*xi->xi_file) * xi->xi_nfile,
+				 sizeof(*xi->xi_file) * (idx + 1),
+				 GFP_NOFS, /*may_shrink*/0);
+		if (p) {
+			MtxMustLock(&xi->xi_mtx);
+			xi->xi_file = p;
+			xi->xi_nfile = idx + 1;
+		} else {
+			err = -ENOMEM;
+			if (file)
+				fput(file);
+			goto out;
+		}
+	}
+	xi->xi_file[idx] = file;
+
+out:
+	return err;
+}
+
+/*
+ * if @xinew->xi is not set, then create new xigen file.
+ */
+struct file *au_xi_new(struct super_block *sb, struct au_xi_new *xinew)
+{
+	struct file *file;
+	int err;
+
+	SiMustAnyLock(sb);
+
+	file = au_xino_create2(sb, xinew->base, xinew->copy_src);
+	if (IS_ERR(file)) {
+		err = PTR_ERR(file);
+		pr_err("%s[%d], err %d\n",
+		       xinew->xi ? "xino" : "xigen",
+		       xinew->idx, err);
+		goto out;
+	}
+
+	if (xinew->xi)
+		err = au_xino_file_set(xinew->xi, xinew->idx, file);
+	else {
+		BUG();
+		/* todo: make xigen file an array */
+		/* err = au_xigen_file_set(sb, xinew->idx, file); */
+	}
+	fput(file);
+	if (unlikely(err))
+		file = ERR_PTR(err);
+
+out:
+	return file;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * truncate xino files
+ */
+static int au_xino_do_trunc(struct super_block *sb, aufs_bindex_t bindex,
+			    int idx, struct kstatfs *st)
+{
+	int err;
+	blkcnt_t blocks;
+	struct file *file, *new_xino;
+	struct au_xi_new xinew = {
+		.idx = idx
+	};
+
+	err = 0;
+	xinew.xi = au_sbr(sb, bindex)->br_xino;
+	file = au_xino_file(xinew.xi, idx);
+	if (!file)
+		goto out;
+
+	xinew.base = &file->f_path;
+	err = vfs_statfs(xinew.base, st);
+	if (unlikely(err)) {
+		AuErr1("statfs err %d, ignored\n", err);
+		err = 0;
+		goto out;
+	}
+
+	blocks = file_inode(file)->i_blocks;
+	pr_info("begin truncating xino(b%d-%d), ib%llu, %llu/%llu free blks\n",
+		bindex, idx, (u64)blocks, st->f_bfree, st->f_blocks);
+
+	xinew.copy_src = file;
+	new_xino = au_xi_new(sb, &xinew);
+	if (IS_ERR(new_xino)) {
+		err = PTR_ERR(new_xino);
+		pr_err("xino(b%d-%d), err %d, ignored\n", bindex, idx, err);
+		goto out;
+	}
+
+	err = vfs_statfs(&new_xino->f_path, st);
+	if (!err)
+		pr_info("end truncating xino(b%d-%d), ib%llu, %llu/%llu free blks\n",
+			bindex, idx, (u64)file_inode(new_xino)->i_blocks,
+			st->f_bfree, st->f_blocks);
+	else {
+		AuErr1("statfs err %d, ignored\n", err);
+		err = 0;
+	}
+
+out:
+	return err;
+}
+
+int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex, int idx_begin)
+{
+	int err, i;
+	unsigned long jiffy;
+	aufs_bindex_t bbot;
+	struct kstatfs *st;
+	struct au_branch *br;
+	struct au_xino *xi;
+
+	err = -ENOMEM;
+	st = kmalloc(sizeof(*st), GFP_NOFS);
+	if (unlikely(!st))
+		goto out;
+
+	err = -EINVAL;
+	bbot = au_sbbot(sb);
+	if (unlikely(bindex < 0 || bbot < bindex))
+		goto out_st;
+
+	err = 0;
+	jiffy = jiffies;
+	br = au_sbr(sb, bindex);
+	xi = br->br_xino;
+	for (i = idx_begin; !err && i < xi->xi_nfile; i++)
+		err = au_xino_do_trunc(sb, bindex, i, st);
+	if (!err)
+		au_sbi(sb)->si_xino_jiffy = jiffy;
+
+out_st:
+	au_kfree_rcu(st);
+out:
+	return err;
+}
+
+struct xino_do_trunc_args {
+	struct super_block *sb;
+	struct au_branch *br;
+	int idx;
+};
+
+static void xino_do_trunc(void *_args)
+{
+	struct xino_do_trunc_args *args = _args;
+	struct super_block *sb;
+	struct au_branch *br;
+	struct inode *dir;
+	int err, idx;
+	aufs_bindex_t bindex;
+
+	err = 0;
+	sb = args->sb;
+	dir = d_inode(sb->s_root);
+	br = args->br;
+	idx = args->idx;
+
+	si_noflush_write_lock(sb);
+	ii_read_lock_parent(dir);
+	bindex = au_br_index(sb, br->br_id);
+	err = au_xino_trunc(sb, bindex, idx);
+	ii_read_unlock(dir);
+	if (unlikely(err))
+		pr_warn("err b%d, (%d)\n", bindex, err);
+	atomic_dec(&br->br_xino->xi_truncating);
+	au_lcnt_dec(&br->br_count);
+	si_write_unlock(sb);
+	au_nwt_done(&au_sbi(sb)->si_nowait);
+	au_kfree_rcu(args);
+}
+
+/*
+ * returns the index in the xi_file array whose corresponding file is necessary
+ * to truncate, or -1 which means no need to truncate.
+ */
+static int xino_trunc_test(struct super_block *sb, struct au_branch *br)
+{
+	int err;
+	unsigned int u;
+	struct kstatfs st;
+	struct au_sbinfo *sbinfo;
+	struct au_xino *xi;
+	struct file *file;
+
+	/* todo: si_xino_expire and the ratio should be customizable */
+	sbinfo = au_sbi(sb);
+	if (time_before(jiffies,
+			sbinfo->si_xino_jiffy + sbinfo->si_xino_expire))
+		return -1;
+
+	/* truncation border */
+	xi = br->br_xino;
+	for (u = 0; u < xi->xi_nfile; u++) {
+		file = au_xino_file(xi, u);
+		if (!file)
+			continue;
+
+		err = vfs_statfs(&file->f_path, &st);
+		if (unlikely(err)) {
+			AuErr1("statfs err %d, ignored\n", err);
+			return -1;
+		}
+		if (div64_u64(st.f_bfree * 100, st.f_blocks)
+		    >= AUFS_XINO_DEF_TRUNC)
+			return u;
+	}
+
+	return -1;
+}
+
+static void xino_try_trunc(struct super_block *sb, struct au_branch *br)
+{
+	int idx;
+	struct xino_do_trunc_args *args;
+	int wkq_err;
+
+	idx = xino_trunc_test(sb, br);
+	if (idx < 0)
+		return;
+
+	if (atomic_inc_return(&br->br_xino->xi_truncating) > 1)
+		goto out;
+
+	/* lock and kfree() will be called in trunc_xino() */
+	args = kmalloc(sizeof(*args), GFP_NOFS);
+	if (unlikely(!args)) {
+		AuErr1("no memory\n");
+		goto out;
+	}
+
+	au_lcnt_inc(&br->br_count);
+	args->sb = sb;
+	args->br = br;
+	args->idx = idx;
+	wkq_err = au_wkq_nowait(xino_do_trunc, args, sb, /*flags*/0);
+	if (!wkq_err)
+		return; /* success */
+
+	pr_err("wkq %d\n", wkq_err);
+	au_lcnt_dec(&br->br_count);
+	au_kfree_rcu(args);
+
+out:
+	atomic_dec(&br->br_xino->xi_truncating);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_xi_calc {
+	int idx;
+	loff_t pos;
+};
+
+static void au_xi_calc(struct super_block *sb, ino_t h_ino,
+		       struct au_xi_calc *calc)
+{
+	loff_t maxent;
+
+	maxent = au_xi_maxent(sb);
+	calc->idx = div64_u64_rem(h_ino, maxent, &calc->pos);
+	calc->pos *= sizeof(ino_t);
+}
+
+static int au_xino_do_new_async(struct super_block *sb, struct au_branch *br,
+				struct au_xi_calc *calc)
+{
+	int err;
+	struct file *file;
+	struct au_xino *xi = br->br_xino;
+	struct au_xi_new xinew = {
+		.xi = xi
+	};
+
+	SiMustAnyLock(sb);
+
+	err = 0;
+	if (!xi)
+		goto out;
+
+	mutex_lock(&xi->xi_mtx);
+	file = au_xino_file(xi, calc->idx);
+	if (file)
+		goto out_mtx;
+
+	file = au_xino_file(xi, /*idx*/-1);
+	AuDebugOn(!file);
+	xinew.idx = calc->idx;
+	xinew.base = &file->f_path;
+	/* xinew.copy_src = NULL; */
+	file = au_xi_new(sb, &xinew);
+	if (IS_ERR(file))
+		err = PTR_ERR(file);
+
+out_mtx:
+	mutex_unlock(&xi->xi_mtx);
+out:
+	return err;
+}
+
+struct au_xino_do_new_async_args {
+	struct super_block *sb;
+	struct au_branch *br;
+	struct au_xi_calc calc;
+	ino_t ino;
+};
+
+struct au_xi_writing {
+	struct hlist_bl_node node;
+	ino_t h_ino, ino;
+};
+
+static int au_xino_do_write(vfs_writef_t write, struct file *file,
+			    struct au_xi_calc *calc, ino_t ino);
+
+static void au_xino_call_do_new_async(void *args)
+{
+	struct au_xino_do_new_async_args *a = args;
+	struct au_branch *br;
+	struct super_block *sb;
+	struct au_sbinfo *sbi;
+	struct inode *root;
+	struct file *file;
+	struct au_xi_writing *del, *p;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	int err;
+
+	br = a->br;
+	sb = a->sb;
+	sbi = au_sbi(sb);
+	si_noflush_read_lock(sb);
+	root = d_inode(sb->s_root);
+	ii_read_lock_child(root);
+	err = au_xino_do_new_async(sb, br, &a->calc);
+	if (unlikely(err)) {
+		AuIOErr("err %d\n", err);
+		goto out;
+	}
+
+	file = au_xino_file(br->br_xino, a->calc.idx);
+	AuDebugOn(!file);
+	err = au_xino_do_write(sbi->si_xwrite, file, &a->calc, a->ino);
+	if (unlikely(err)) {
+		AuIOErr("err %d\n", err);
+		goto out;
+	}
+
+	del = NULL;
+	hbl = &br->br_xino->xi_writing;
+	hlist_bl_lock(hbl);
+	au_hbl_for_each(pos, hbl) {
+		p = container_of(pos, struct au_xi_writing, node);
+		if (p->ino == a->ino) {
+			del = p;
+			hlist_bl_del(&p->node);
+			break;
+		}
+	}
+	hlist_bl_unlock(hbl);
+	au_kfree_rcu(del);
+
+out:
+	au_lcnt_dec(&br->br_count);
+	ii_read_unlock(root);
+	si_read_unlock(sb);
+	au_nwt_done(&sbi->si_nowait);
+	au_kfree_rcu(a);
+}
+
+/*
+ * create a new xino file asynchronously
+ */
+static int au_xino_new_async(struct super_block *sb, struct au_branch *br,
+			     struct au_xi_calc *calc, ino_t ino)
+{
+	int err;
+	struct au_xino_do_new_async_args *arg;
+
+	err = -ENOMEM;
+	arg = kmalloc(sizeof(*arg), GFP_NOFS);
+	if (unlikely(!arg))
+		goto out;
+
+	arg->sb = sb;
+	arg->br = br;
+	arg->calc = *calc;
+	arg->ino = ino;
+	au_lcnt_inc(&br->br_count);
+	err = au_wkq_nowait(au_xino_call_do_new_async, arg, sb, AuWkq_NEST);
+	if (unlikely(err)) {
+		pr_err("wkq %d\n", err);
+		au_lcnt_dec(&br->br_count);
+		au_kfree_rcu(arg);
+	}
+
+out:
+	return err;
+}
+
+/*
+ * read @ino from xinofile for the specified branch{@sb, @bindex}
+ * at the position of @h_ino.
+ */
+int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+		 ino_t *ino)
+{
+	int err;
+	ssize_t sz;
+	struct au_xi_calc calc;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+	struct au_xino *xi;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos;
+	struct au_xi_writing *p;
+
+	*ino = 0;
+	if (!au_opt_test(au_mntflags(sb), XINO))
+		return 0; /* no xino */
+
+	err = 0;
+	au_xi_calc(sb, h_ino, &calc);
+	xi = au_sbr(sb, bindex)->br_xino;
+	file = au_xino_file(xi, calc.idx);
+	if (!file) {
+		hbl = &xi->xi_writing;
+		hlist_bl_lock(hbl);
+		au_hbl_for_each(pos, hbl) {
+			p = container_of(pos, struct au_xi_writing, node);
+			if (p->h_ino == h_ino) {
+				AuDbg("hi%llu, i%llu, found\n",
+				      (u64)p->h_ino, (u64)p->ino);
+				*ino = p->ino;
+				break;
+			}
+		}
+		hlist_bl_unlock(hbl);
+		return 0;
+	} else if (vfsub_f_size_read(file) < calc.pos + sizeof(*ino))
+		return 0; /* no xino */
+
+	sbinfo = au_sbi(sb);
+	sz = xino_fread(sbinfo->si_xread, file, ino, sizeof(*ino), &calc.pos);
+	if (sz == sizeof(*ino))
+		return 0; /* success */
+
+	err = sz;
+	if (unlikely(sz >= 0)) {
+		err = -EIO;
+		AuIOErr("xino read error (%zd)\n", sz);
+	}
+	return err;
+}
+
+static int au_xino_do_write(vfs_writef_t write, struct file *file,
+			    struct au_xi_calc *calc, ino_t ino)
+{
+	ssize_t sz;
+
+	sz = xino_fwrite(write, file, &ino, sizeof(ino), &calc->pos);
+	if (sz == sizeof(ino))
+		return 0; /* success */
+
+	AuIOErr("write failed (%zd)\n", sz);
+	return -EIO;
+}
+
+/*
+ * write @ino to the xinofile for the specified branch{@sb, @bindex}
+ * at the position of @h_ino.
+ * even if @ino is zero, it is written to the xinofile and means no entry.
+ * if the size of the xino file on a specific filesystem exceeds the watermark,
+ * try truncating it.
+ */
+int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+		  ino_t ino)
+{
+	int err;
+	unsigned int mnt_flags;
+	struct au_xi_calc calc;
+	struct file *file;
+	struct au_branch *br;
+	struct au_xino *xi;
+	struct au_xi_writing *p;
+
+	SiMustAnyLock(sb);
+
+	mnt_flags = au_mntflags(sb);
+	if (!au_opt_test(mnt_flags, XINO))
+		return 0;
+
+	au_xi_calc(sb, h_ino, &calc);
+	br = au_sbr(sb, bindex);
+	xi = br->br_xino;
+	file = au_xino_file(xi, calc.idx);
+	if (!file) {
+		/* store the inum pair into the list */
+		p = kmalloc(sizeof(*p), GFP_NOFS | __GFP_NOFAIL);
+		p->h_ino = h_ino;
+		p->ino = ino;
+		au_hbl_add(&p->node, &xi->xi_writing);
+
+		/* create and write a new xino file asynchronously */
+		err = au_xino_new_async(sb, br, &calc, ino);
+		if (!err)
+			return 0; /* success */
+		goto out;
+	}
+
+	err = au_xino_do_write(au_sbi(sb)->si_xwrite, file, &calc, ino);
+	if (!err) {
+		br = au_sbr(sb, bindex);
+		if (au_opt_test(mnt_flags, TRUNC_XINO)
+		    && au_test_fs_trunc_xino(au_br_sb(br)))
+			xino_try_trunc(sb, br);
+		return 0; /* success */
+	}
+
+out:
+	AuIOErr("write failed (%d)\n", err);
+	return -EIO;
+}
+
+static ssize_t xino_fread_wkq(vfs_readf_t func, struct file *file, void *buf,
+			      size_t size, loff_t *pos);
+
+/* todo: unnecessary to support mmap_sem since kernel-space? */
+ssize_t xino_fread(vfs_readf_t func, struct file *file, void *kbuf, size_t size,
+		   loff_t *pos)
+{
+	ssize_t err;
+	mm_segment_t oldfs;
+	union {
+		void *k;
+		char __user *u;
+	} buf;
+	int i;
+	const int prevent_endless = 10;
+
+	i = 0;
+	buf.k = kbuf;
+	oldfs = get_fs();
+	set_fs(KERNEL_DS);
+	do {
+		err = func(file, buf.u, size, pos);
+		if (err == -EINTR
+		    && !au_wkq_test()
+		    && fatal_signal_pending(current)) {
+			set_fs(oldfs);
+			err = xino_fread_wkq(func, file, kbuf, size, pos);
+			BUG_ON(err == -EINTR);
+			oldfs = get_fs();
+			set_fs(KERNEL_DS);
+		}
+	} while (i++ < prevent_endless
+		 && (err == -EAGAIN || err == -EINTR));
+	set_fs(oldfs);
+
+#if 0 /* reserved for future use */
+	if (err > 0)
+		fsnotify_access(file->f_path.dentry);
+#endif
+
+	return err;
+}
+
+struct xino_fread_args {
+	ssize_t *errp;
+	vfs_readf_t func;
+	struct file *file;
+	void *buf;
+	size_t size;
+	loff_t *pos;
+};
+
+static void call_xino_fread(void *args)
+{
+	struct xino_fread_args *a = args;
+	*a->errp = xino_fread(a->func, a->file, a->buf, a->size, a->pos);
+}
+
+static ssize_t xino_fread_wkq(vfs_readf_t func, struct file *file, void *buf,
+			      size_t size, loff_t *pos)
+{
+	ssize_t err;
+	int wkq_err;
+	struct xino_fread_args args = {
+		.errp	= &err,
+		.func	= func,
+		.file	= file,
+		.buf	= buf,
+		.size	= size,
+		.pos	= pos
+	};
+
+	wkq_err = au_wkq_wait(call_xino_fread, &args);
+	if (unlikely(wkq_err))
+		err = wkq_err;
+
+	return err;
+}
+
+static ssize_t xino_fwrite_wkq(vfs_writef_t func, struct file *file, void *buf,
+			       size_t size, loff_t *pos);
+
+static ssize_t do_xino_fwrite(vfs_writef_t func, struct file *file, void *kbuf,
+			      size_t size, loff_t *pos)
+{
+	ssize_t err;
+	mm_segment_t oldfs;
+	union {
+		void *k;
+		const char __user *u;
+	} buf;
+	int i;
+	const int prevent_endless = 10;
+
+	i = 0;
+	buf.k = kbuf;
+	oldfs = get_fs();
+	set_fs(KERNEL_DS);
+	do {
+		err = func(file, buf.u, size, pos);
+		if (err == -EINTR
+		    && !au_wkq_test()
+		    && fatal_signal_pending(current)) {
+			set_fs(oldfs);
+			err = xino_fwrite_wkq(func, file, kbuf, size, pos);
+			BUG_ON(err == -EINTR);
+			oldfs = get_fs();
+			set_fs(KERNEL_DS);
+		}
+	} while (i++ < prevent_endless
+		 && (err == -EAGAIN || err == -EINTR));
+	set_fs(oldfs);
+
+#if 0 /* reserved for future use */
+	if (err > 0)
+		fsnotify_modify(file->f_path.dentry);
+#endif
+
+	return err;
+}
+
+struct do_xino_fwrite_args {
+	ssize_t *errp;
+	vfs_writef_t func;
+	struct file *file;
+	void *buf;
+	size_t size;
+	loff_t *pos;
+};
+
+static void call_do_xino_fwrite(void *args)
+{
+	struct do_xino_fwrite_args *a = args;
+	*a->errp = do_xino_fwrite(a->func, a->file, a->buf, a->size, a->pos);
+}
+
+static ssize_t xino_fwrite_wkq(vfs_writef_t func, struct file *file, void *buf,
+			       size_t size, loff_t *pos)
+{
+	ssize_t err;
+	int wkq_err;
+	struct do_xino_fwrite_args args = {
+		.errp	= &err,
+		.func	= func,
+		.file	= file,
+		.buf	= buf,
+		.size	= size,
+		.pos	= pos
+	};
+
+	/*
+	 * it breaks RLIMIT_FSIZE and normal user's limit,
+	 * users should care about quota and real 'filesystem full.'
+	 */
+	wkq_err = au_wkq_wait(call_do_xino_fwrite, &args);
+	if (unlikely(wkq_err))
+		err = wkq_err;
+
+	return err;
+}
+
+ssize_t xino_fwrite(vfs_writef_t func, struct file *file, void *buf,
+		    size_t size, loff_t *pos)
+{
+	ssize_t err;
+
+	if (rlimit(RLIMIT_FSIZE) == RLIM_INFINITY) {
+		lockdep_off();
+		err = do_xino_fwrite(func, file, buf, size, pos);
+		lockdep_on();
+	} else {
+		lockdep_off();
+		err = xino_fwrite_wkq(func, file, buf, size, pos);
+		lockdep_on();
+	}
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * inode number bitmap
+ */
+static const int page_bits = (int)PAGE_SIZE * BITS_PER_BYTE;
+static ino_t xib_calc_ino(unsigned long pindex, int bit)
+{
+	ino_t ino;
+
+	AuDebugOn(bit < 0 || page_bits <= bit);
+	ino = AUFS_FIRST_INO + pindex * page_bits + bit;
+	return ino;
+}
+
+static void xib_calc_bit(ino_t ino, unsigned long *pindex, int *bit)
+{
+	AuDebugOn(ino < AUFS_FIRST_INO);
+	ino -= AUFS_FIRST_INO;
+	*pindex = ino / page_bits;
+	*bit = ino % page_bits;
+}
+
+static int xib_pindex(struct super_block *sb, unsigned long pindex)
+{
+	int err;
+	loff_t pos;
+	ssize_t sz;
+	struct au_sbinfo *sbinfo;
+	struct file *xib;
+	unsigned long *p;
+
+	sbinfo = au_sbi(sb);
+	MtxMustLock(&sbinfo->si_xib_mtx);
+	AuDebugOn(pindex > ULONG_MAX / PAGE_SIZE
+		  || !au_opt_test(sbinfo->si_mntflags, XINO));
+
+	if (pindex == sbinfo->si_xib_last_pindex)
+		return 0;
+
+	xib = sbinfo->si_xib;
+	p = sbinfo->si_xib_buf;
+	pos = sbinfo->si_xib_last_pindex;
+	pos *= PAGE_SIZE;
+	sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos);
+	if (unlikely(sz != PAGE_SIZE))
+		goto out;
+
+	pos = pindex;
+	pos *= PAGE_SIZE;
+	if (vfsub_f_size_read(xib) >= pos + PAGE_SIZE)
+		sz = xino_fread(sbinfo->si_xread, xib, p, PAGE_SIZE, &pos);
+	else {
+		memset(p, 0, PAGE_SIZE);
+		sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos);
+	}
+	if (sz == PAGE_SIZE) {
+		sbinfo->si_xib_last_pindex = pindex;
+		return 0; /* success */
+	}
+
+out:
+	AuIOErr1("write failed (%zd)\n", sz);
+	err = sz;
+	if (sz >= 0)
+		err = -EIO;
+	return err;
+}
+
+static void au_xib_clear_bit(struct inode *inode)
+{
+	int err, bit;
+	unsigned long pindex;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+
+	AuDebugOn(inode->i_nlink);
+
+	sb = inode->i_sb;
+	xib_calc_bit(inode->i_ino, &pindex, &bit);
+	AuDebugOn(page_bits <= bit);
+	sbinfo = au_sbi(sb);
+	mutex_lock(&sbinfo->si_xib_mtx);
+	err = xib_pindex(sb, pindex);
+	if (!err) {
+		clear_bit(bit, sbinfo->si_xib_buf);
+		sbinfo->si_xib_next_bit = bit;
+	}
+	mutex_unlock(&sbinfo->si_xib_mtx);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * truncate a xino bitmap file
+ */
+
+/* todo: slow */
+static int do_xib_restore(struct super_block *sb, struct file *file, void *page)
+{
+	int err, bit;
+	ssize_t sz;
+	unsigned long pindex;
+	loff_t pos, pend;
+	struct au_sbinfo *sbinfo;
+	vfs_readf_t func;
+	ino_t *ino;
+	unsigned long *p;
+
+	err = 0;
+	sbinfo = au_sbi(sb);
+	MtxMustLock(&sbinfo->si_xib_mtx);
+	p = sbinfo->si_xib_buf;
+	func = sbinfo->si_xread;
+	pend = vfsub_f_size_read(file);
+	pos = 0;
+	while (pos < pend) {
+		sz = xino_fread(func, file, page, PAGE_SIZE, &pos);
+		err = sz;
+		if (unlikely(sz <= 0))
+			goto out;
+
+		err = 0;
+		for (ino = page; sz > 0; ino++, sz -= sizeof(ino)) {
+			if (unlikely(*ino < AUFS_FIRST_INO))
+				continue;
+
+			xib_calc_bit(*ino, &pindex, &bit);
+			AuDebugOn(page_bits <= bit);
+			err = xib_pindex(sb, pindex);
+			if (!err)
+				set_bit(bit, p);
+			else
+				goto out;
+		}
+	}
+
+out:
+	return err;
+}
+
+static int xib_restore(struct super_block *sb)
+{
+	int err, i;
+	unsigned int nfile;
+	aufs_bindex_t bindex, bbot;
+	void *page;
+	struct au_branch *br;
+	struct au_xino *xi;
+	struct file *file;
+
+	err = -ENOMEM;
+	page = (void *)__get_free_page(GFP_NOFS);
+	if (unlikely(!page))
+		goto out;
+
+	err = 0;
+	bbot = au_sbbot(sb);
+	for (bindex = 0; !err && bindex <= bbot; bindex++)
+		if (!bindex || is_sb_shared(sb, bindex, bindex - 1) < 0) {
+			br = au_sbr(sb, bindex);
+			xi = br->br_xino;
+			nfile = xi->xi_nfile;
+			for (i = 0; i < nfile; i++) {
+				file = au_xino_file(xi, i);
+				if (file)
+					err = do_xib_restore(sb, file, page);
+			}
+		} else
+			AuDbg("skip shared b%d\n", bindex);
+	free_page((unsigned long)page);
+
+out:
+	return err;
+}
+
+int au_xib_trunc(struct super_block *sb)
+{
+	int err;
+	ssize_t sz;
+	loff_t pos;
+	struct au_sbinfo *sbinfo;
+	unsigned long *p;
+	struct file *file;
+
+	SiMustWriteLock(sb);
+
+	err = 0;
+	sbinfo = au_sbi(sb);
+	if (!au_opt_test(sbinfo->si_mntflags, XINO))
+		goto out;
+
+	file = sbinfo->si_xib;
+	if (vfsub_f_size_read(file) <= PAGE_SIZE)
+		goto out;
+
+	file = au_xino_create2(sb, &sbinfo->si_xib->f_path, NULL);
+	err = PTR_ERR(file);
+	if (IS_ERR(file))
+		goto out;
+	fput(sbinfo->si_xib);
+	sbinfo->si_xib = file;
+
+	p = sbinfo->si_xib_buf;
+	memset(p, 0, PAGE_SIZE);
+	pos = 0;
+	sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xib, p, PAGE_SIZE, &pos);
+	if (unlikely(sz != PAGE_SIZE)) {
+		err = sz;
+		AuIOErr("err %d\n", err);
+		if (sz >= 0)
+			err = -EIO;
+		goto out;
+	}
+
+	mutex_lock(&sbinfo->si_xib_mtx);
+	/* mnt_want_write() is unnecessary here */
+	err = xib_restore(sb);
+	mutex_unlock(&sbinfo->si_xib_mtx);
+
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_xino *au_xino_alloc(unsigned int nfile)
+{
+	struct au_xino *xi;
+
+	xi = kzalloc(sizeof(*xi), GFP_NOFS);
+	if (unlikely(!xi))
+		goto out;
+	xi->xi_nfile = nfile;
+	xi->xi_file = kcalloc(nfile, sizeof(*xi->xi_file), GFP_NOFS);
+	if (unlikely(!xi->xi_file))
+		goto out_free;
+
+	xi->xi_nondir.total = 8; /* initial size */
+	xi->xi_nondir.array = kcalloc(xi->xi_nondir.total, sizeof(ino_t),
+				      GFP_NOFS);
+	if (unlikely(!xi->xi_nondir.array))
+		goto out_file;
+
+	spin_lock_init(&xi->xi_nondir.spin);
+	init_waitqueue_head(&xi->xi_nondir.wqh);
+	mutex_init(&xi->xi_mtx);
+	INIT_HLIST_BL_HEAD(&xi->xi_writing);
+	atomic_set(&xi->xi_truncating, 0);
+	kref_init(&xi->xi_kref);
+	goto out; /* success */
+
+out_file:
+	au_kfree_try_rcu(xi->xi_file);
+out_free:
+	au_kfree_rcu(xi);
+	xi = NULL;
+out:
+	return xi;
+}
+
+static int au_xino_init(struct au_branch *br, int idx, struct file *file)
+{
+	int err;
+	struct au_xino *xi;
+
+	err = 0;
+	xi = au_xino_alloc(idx + 1);
+	if (unlikely(!xi)) {
+		err = -ENOMEM;
+		goto out;
+	}
+
+	if (file)
+		get_file(file);
+	xi->xi_file[idx] = file;
+	AuDebugOn(br->br_xino);
+	br->br_xino = xi;
+
+out:
+	return err;
+}
+
+static void au_xino_release(struct kref *kref)
+{
+	struct au_xino *xi;
+	int i;
+	unsigned long ul;
+	struct hlist_bl_head *hbl;
+	struct hlist_bl_node *pos, *n;
+	struct au_xi_writing *p;
+
+	xi = container_of(kref, struct au_xino, xi_kref);
+	for (i = 0; i < xi->xi_nfile; i++)
+		if (xi->xi_file[i])
+			fput(xi->xi_file[i]);
+	for (i = xi->xi_nondir.total - 1; i >= 0; i--)
+		AuDebugOn(xi->xi_nondir.array[i]);
+	mutex_destroy(&xi->xi_mtx);
+	hbl = &xi->xi_writing;
+	ul = au_hbl_count(hbl);
+	if (unlikely(ul)) {
+		pr_warn("xi_writing %lu\n", ul);
+		hlist_bl_lock(hbl);
+		hlist_bl_for_each_entry_safe(p, pos, n, hbl, node) {
+			hlist_bl_del(&p->node);
+			/* kmemleak reported au_kfree_rcu() doesn't free it */
+			kfree(p);
+		}
+		hlist_bl_unlock(hbl);
+	}
+	au_kfree_try_rcu(xi->xi_file);
+	au_kfree_try_rcu(xi->xi_nondir.array);
+	au_kfree_rcu(xi);
+}
+
+int au_xino_put(struct au_branch *br)
+{
+	int ret;
+	struct au_xino *xi;
+
+	ret = 0;
+	xi = br->br_xino;
+	if (xi) {
+		br->br_xino = NULL;
+		ret = kref_put(&xi->xi_kref, au_xino_release);
+	}
+
+	return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * xino mount option handlers
+ */
+
+/* xino bitmap */
+static void xino_clear_xib(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	/* unnecessary to clear sbinfo->si_xread and ->si_xwrite */
+	if (sbinfo->si_xib)
+		fput(sbinfo->si_xib);
+	sbinfo->si_xib = NULL;
+	if (sbinfo->si_xib_buf)
+		free_page((unsigned long)sbinfo->si_xib_buf);
+	sbinfo->si_xib_buf = NULL;
+}
+
+static int au_xino_set_xib(struct super_block *sb, struct path *path)
+{
+	int err;
+	loff_t pos;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+	struct super_block *xi_sb;
+
+	SiMustWriteLock(sb);
+
+	sbinfo = au_sbi(sb);
+	file = au_xino_create2(sb, path, sbinfo->si_xib);
+	err = PTR_ERR(file);
+	if (IS_ERR(file))
+		goto out;
+	if (sbinfo->si_xib)
+		fput(sbinfo->si_xib);
+	sbinfo->si_xib = file;
+	sbinfo->si_xread = vfs_readf(file);
+	sbinfo->si_xwrite = vfs_writef(file);
+	xi_sb = file_inode(file)->i_sb;
+	sbinfo->si_ximaxent = xi_sb->s_maxbytes;
+	if (unlikely(sbinfo->si_ximaxent < PAGE_SIZE)) {
+		err = -EIO;
+		pr_err("s_maxbytes(%llu) on %s is too small\n",
+		       (u64)sbinfo->si_ximaxent, au_sbtype(xi_sb));
+		goto out_unset;
+	}
+	sbinfo->si_ximaxent /= sizeof(ino_t);
+
+	err = -ENOMEM;
+	if (!sbinfo->si_xib_buf)
+		sbinfo->si_xib_buf = (void *)get_zeroed_page(GFP_NOFS);
+	if (unlikely(!sbinfo->si_xib_buf))
+		goto out_unset;
+
+	sbinfo->si_xib_last_pindex = 0;
+	sbinfo->si_xib_next_bit = 0;
+	if (vfsub_f_size_read(file) < PAGE_SIZE) {
+		pos = 0;
+		err = xino_fwrite(sbinfo->si_xwrite, file, sbinfo->si_xib_buf,
+				  PAGE_SIZE, &pos);
+		if (unlikely(err != PAGE_SIZE))
+			goto out_free;
+	}
+	err = 0;
+	goto out; /* success */
+
+out_free:
+	if (sbinfo->si_xib_buf)
+		free_page((unsigned long)sbinfo->si_xib_buf);
+	sbinfo->si_xib_buf = NULL;
+	if (err >= 0)
+		err = -EIO;
+out_unset:
+	fput(sbinfo->si_xib);
+	sbinfo->si_xib = NULL;
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+/* xino for each branch */
+static void xino_clear_br(struct super_block *sb)
+{
+	aufs_bindex_t bindex, bbot;
+	struct au_branch *br;
+
+	bbot = au_sbbot(sb);
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		AuDebugOn(!br);
+		au_xino_put(br);
+	}
+}
+
+static void au_xino_set_br_shared(struct super_block *sb, struct au_branch *br,
+				  aufs_bindex_t bshared)
+{
+	struct au_branch *brshared;
+
+	brshared = au_sbr(sb, bshared);
+	AuDebugOn(!brshared->br_xino);
+	AuDebugOn(!brshared->br_xino->xi_file);
+	if (br->br_xino != brshared->br_xino) {
+		au_xino_get(brshared);
+		au_xino_put(br);
+		br->br_xino = brshared->br_xino;
+	}
+}
+
+struct au_xino_do_set_br {
+	vfs_writef_t writef;
+	struct au_branch *br;
+	ino_t h_ino;
+	aufs_bindex_t bshared;
+};
+
+static int au_xino_do_set_br(struct super_block *sb, struct path *path,
+			     struct au_xino_do_set_br *args)
+{
+	int err;
+	struct au_xi_calc calc;
+	struct file *file;
+	struct au_branch *br;
+	struct au_xi_new xinew = {
+		.base = path
+	};
+
+	br = args->br;
+	xinew.xi = br->br_xino;
+	au_xi_calc(sb, args->h_ino, &calc);
+	xinew.copy_src = au_xino_file(xinew.xi, calc.idx);
+	if (args->bshared >= 0)
+		/* shared xino */
+		au_xino_set_br_shared(sb, br, args->bshared);
+	else if (!xinew.xi) {
+		/* new xino */
+		err = au_xino_init(br, calc.idx, xinew.copy_src);
+		if (unlikely(err))
+			goto out;
+	}
+
+	/* force re-creating */
+	xinew.xi = br->br_xino;
+	xinew.idx = calc.idx;
+	mutex_lock(&xinew.xi->xi_mtx);
+	file = au_xi_new(sb, &xinew);
+	mutex_unlock(&xinew.xi->xi_mtx);
+	err = PTR_ERR(file);
+	if (IS_ERR(file))
+		goto out;
+	AuDebugOn(!file);
+
+	err = au_xino_do_write(args->writef, file, &calc, AUFS_ROOT_INO);
+	if (unlikely(err))
+		au_xino_put(br);
+
+out:
+	AuTraceErr(err);
+	return err;
+}
+
+static int au_xino_set_br(struct super_block *sb, struct path *path)
+{
+	int err;
+	aufs_bindex_t bindex, bbot;
+	struct au_xino_do_set_br args;
+	struct inode *inode;
+
+	SiMustWriteLock(sb);
+
+	bbot = au_sbbot(sb);
+	inode = d_inode(sb->s_root);
+	args.writef = au_sbi(sb)->si_xwrite;
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		args.h_ino = au_h_iptr(inode, bindex)->i_ino;
+		args.br = au_sbr(sb, bindex);
+		args.bshared = is_sb_shared(sb, bindex, bindex - 1);
+		err = au_xino_do_set_br(sb, path, &args);
+		if (unlikely(err))
+			break;
+	}
+
+	AuTraceErr(err);
+	return err;
+}
+
+void au_xino_clr(struct super_block *sb)
+{
+	struct au_sbinfo *sbinfo;
+
+	au_xigen_clr(sb);
+	xino_clear_xib(sb);
+	xino_clear_br(sb);
+	dbgaufs_brs_del(sb, 0);
+	sbinfo = au_sbi(sb);
+	/* lvalue, do not call au_mntflags() */
+	au_opt_clr(sbinfo->si_mntflags, XINO);
+}
+
+int au_xino_set(struct super_block *sb, struct au_opt_xino *xiopt, int remount)
+{
+	int err, skip;
+	struct dentry *dentry, *parent, *cur_dentry, *cur_parent;
+	struct qstr *dname, *cur_name;
+	struct file *cur_xino;
+	struct au_sbinfo *sbinfo;
+	struct path *path, *cur_path;
+
+	SiMustWriteLock(sb);
+
+	err = 0;
+	sbinfo = au_sbi(sb);
+	path = &xiopt->file->f_path;
+	dentry = path->dentry;
+	parent = dget_parent(dentry);
+	if (remount) {
+		skip = 0;
+		cur_xino = sbinfo->si_xib;
+		if (cur_xino) {
+			cur_path = &cur_xino->f_path;
+			cur_dentry = cur_path->dentry;
+			cur_parent = dget_parent(cur_dentry);
+			cur_name = &cur_dentry->d_name;
+			dname = &dentry->d_name;
+			skip = (cur_parent == parent
+				&& au_qstreq(dname, cur_name));
+			dput(cur_parent);
+		}
+		if (skip)
+			goto out;
+	}
+
+	au_opt_set(sbinfo->si_mntflags, XINO);
+	err = au_xino_set_xib(sb, path);
+	/* si_x{read,write} are set */
+	if (!err)
+		err = au_xigen_set(sb, path);
+	if (!err)
+		err = au_xino_set_br(sb, path);
+	if (!err) {
+		dbgaufs_brs_add(sb, 0, /*topdown*/1);
+		goto out; /* success */
+	}
+
+	/* reset all */
+	AuIOErr("failed setting xino(%d).\n", err);
+	au_xino_clr(sb);
+
+out:
+	dput(parent);
+	return err;
+}
+
+/*
+ * create a xinofile at the default place/path.
+ */
+struct file *au_xino_def(struct super_block *sb)
+{
+	struct file *file;
+	char *page, *p;
+	struct au_branch *br;
+	struct super_block *h_sb;
+	struct path path;
+	aufs_bindex_t bbot, bindex, bwr;
+
+	br = NULL;
+	bbot = au_sbbot(sb);
+	bwr = -1;
+	for (bindex = 0; bindex <= bbot; bindex++) {
+		br = au_sbr(sb, bindex);
+		if (au_br_writable(br->br_perm)
+		    && !au_test_fs_bad_xino(au_br_sb(br))) {
+			bwr = bindex;
+			break;
+		}
+	}
+
+	if (bwr >= 0) {
+		file = ERR_PTR(-ENOMEM);
+		page = (void *)__get_free_page(GFP_NOFS);
+		if (unlikely(!page))
+			goto out;
+		path.mnt = au_br_mnt(br);
+		path.dentry = au_h_dptr(sb->s_root, bwr);
+		p = d_path(&path, page, PATH_MAX - sizeof(AUFS_XINO_FNAME));
+		file = (void *)p;
+		if (!IS_ERR(p)) {
+			strcat(p, "/" AUFS_XINO_FNAME);
+			AuDbg("%s\n", p);
+			file = au_xino_create(sb, p, /*silent*/0, /*wbrtop*/1);
+		}
+		free_page((unsigned long)page);
+	} else {
+		file = au_xino_create(sb, AUFS_XINO_DEFPATH, /*silent*/0,
+				      /*wbrtop*/0);
+		if (IS_ERR(file))
+			goto out;
+		h_sb = file->f_path.dentry->d_sb;
+		if (unlikely(au_test_fs_bad_xino(h_sb))) {
+			pr_err("xino doesn't support %s(%s)\n",
+			       AUFS_XINO_DEFPATH, au_sbtype(h_sb));
+			fput(file);
+			file = ERR_PTR(-EINVAL);
+		}
+	}
+
+out:
+	return file;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * initialize the xinofile for the specified branch @br
+ * at the place/path where @base_file indicates.
+ * test whether another branch is on the same filesystem or not,
+ * if found then share the xinofile with another branch.
+ */
+int au_xino_init_br(struct super_block *sb, struct au_branch *br, ino_t h_ino,
+		    struct path *base)
+{
+	int err;
+	struct au_xino_do_set_br args = {
+		.h_ino	= h_ino,
+		.br	= br
+	};
+
+	args.writef = au_sbi(sb)->si_xwrite;
+	args.bshared = sbr_find_shared(sb, /*btop*/0, au_sbbot(sb),
+				       au_br_sb(br));
+	err = au_xino_do_set_br(sb, base, &args);
+	if (unlikely(err))
+		au_xino_put(br);
+
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * get an unused inode number from bitmap
+ */
+ino_t au_xino_new_ino(struct super_block *sb)
+{
+	ino_t ino;
+	unsigned long *p, pindex, ul, pend;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+	int free_bit, err;
+
+	if (!au_opt_test(au_mntflags(sb), XINO))
+		return iunique(sb, AUFS_FIRST_INO);
+
+	sbinfo = au_sbi(sb);
+	mutex_lock(&sbinfo->si_xib_mtx);
+	p = sbinfo->si_xib_buf;
+	free_bit = sbinfo->si_xib_next_bit;
+	if (free_bit < page_bits && !test_bit(free_bit, p))
+		goto out; /* success */
+	free_bit = find_first_zero_bit(p, page_bits);
+	if (free_bit < page_bits)
+		goto out; /* success */
+
+	pindex = sbinfo->si_xib_last_pindex;
+	for (ul = pindex - 1; ul < ULONG_MAX; ul--) {
+		err = xib_pindex(sb, ul);
+		if (unlikely(err))
+			goto out_err;
+		free_bit = find_first_zero_bit(p, page_bits);
+		if (free_bit < page_bits)
+			goto out; /* success */
+	}
+
+	file = sbinfo->si_xib;
+	pend = vfsub_f_size_read(file) / PAGE_SIZE;
+	for (ul = pindex + 1; ul <= pend; ul++) {
+		err = xib_pindex(sb, ul);
+		if (unlikely(err))
+			goto out_err;
+		free_bit = find_first_zero_bit(p, page_bits);
+		if (free_bit < page_bits)
+			goto out; /* success */
+	}
+	BUG();
+
+out:
+	set_bit(free_bit, p);
+	sbinfo->si_xib_next_bit = free_bit + 1;
+	pindex = sbinfo->si_xib_last_pindex;
+	mutex_unlock(&sbinfo->si_xib_mtx);
+	ino = xib_calc_ino(pindex, free_bit);
+	AuDbg("i%lu\n", (unsigned long)ino);
+	return ino;
+out_err:
+	mutex_unlock(&sbinfo->si_xib_mtx);
+	AuDbg("i0\n");
+	return 0;
+}
+
+/* for s_op->delete_inode() */
+void au_xino_delete_inode(struct inode *inode, const int unlinked)
+{
+	int err;
+	unsigned int mnt_flags;
+	aufs_bindex_t bindex, bbot, bi;
+	unsigned char try_trunc;
+	struct au_iinfo *iinfo;
+	struct super_block *sb;
+	struct au_hinode *hi;
+	struct inode *h_inode;
+	struct au_branch *br;
+	vfs_writef_t xwrite;
+	struct au_xi_calc calc;
+	struct file *file;
+
+	AuDebugOn(au_is_bad_inode(inode));
+
+	sb = inode->i_sb;
+	mnt_flags = au_mntflags(sb);
+	if (!au_opt_test(mnt_flags, XINO)
+	    || inode->i_ino == AUFS_ROOT_INO)
+		return;
+
+	if (unlinked) {
+		au_xigen_inc(inode);
+		au_xib_clear_bit(inode);
+	}
+
+	iinfo = au_ii(inode);
+	bindex = iinfo->ii_btop;
+	if (bindex < 0)
+		return;
+
+	xwrite = au_sbi(sb)->si_xwrite;
+	try_trunc = !!au_opt_test(mnt_flags, TRUNC_XINO);
+	hi = au_hinode(iinfo, bindex);
+	bbot = iinfo->ii_bbot;
+	for (; bindex <= bbot; bindex++, hi++) {
+		h_inode = hi->hi_inode;
+		if (!h_inode
+		    || (!unlinked && h_inode->i_nlink))
+			continue;
+
+		/* inode may not be revalidated */
+		bi = au_br_index(sb, hi->hi_id);
+		if (bi < 0)
+			continue;
+
+		br = au_sbr(sb, bi);
+		au_xi_calc(sb, h_inode->i_ino, &calc);
+		file = au_xino_file(br->br_xino, calc.idx);
+		if (IS_ERR_OR_NULL(file))
+			continue;
+
+		err = au_xino_do_write(xwrite, file, &calc, /*ino*/0);
+		if (!err && try_trunc
+		    && au_test_fs_trunc_xino(au_br_sb(br)))
+			xino_try_trunc(sb, br);
+	}
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_xinondir_find(struct au_xino *xi, ino_t h_ino)
+{
+	int found, total, i;
+
+	found = -1;
+	total = xi->xi_nondir.total;
+	for (i = 0; i < total; i++) {
+		if (xi->xi_nondir.array[i] != h_ino)
+			continue;
+		found = i;
+		break;
+	}
+
+	return found;
+}
+
+static int au_xinondir_expand(struct au_xino *xi)
+{
+	int err, sz;
+	ino_t *p;
+
+	BUILD_BUG_ON(KMALLOC_MAX_SIZE > INT_MAX);
+
+	err = -ENOMEM;
+	sz = xi->xi_nondir.total * sizeof(ino_t);
+	if (unlikely(sz > KMALLOC_MAX_SIZE / 2))
+		goto out;
+	p = au_kzrealloc(xi->xi_nondir.array, sz, sz << 1, GFP_ATOMIC,
+			 /*may_shrink*/0);
+	if (p) {
+		xi->xi_nondir.array = p;
+		xi->xi_nondir.total <<= 1;
+		AuDbg("xi_nondir.total %d\n", xi->xi_nondir.total);
+		err = 0;
+	}
+
+out:
+	return err;
+}
+
+void au_xinondir_leave(struct super_block *sb, aufs_bindex_t bindex,
+		       ino_t h_ino, int idx)
+{
+	struct au_xino *xi;
+
+	AuDebugOn(!au_opt_test(au_mntflags(sb), XINO));
+	xi = au_sbr(sb, bindex)->br_xino;
+	AuDebugOn(idx < 0 || xi->xi_nondir.total <= idx);
+
+	spin_lock(&xi->xi_nondir.spin);
+	AuDebugOn(xi->xi_nondir.array[idx] != h_ino);
+	xi->xi_nondir.array[idx] = 0;
+	spin_unlock(&xi->xi_nondir.spin);
+	wake_up_all(&xi->xi_nondir.wqh);
+}
+
+int au_xinondir_enter(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+		      int *idx)
+{
+	int err, found, empty;
+	struct au_xino *xi;
+
+	err = 0;
+	*idx = -1;
+	if (!au_opt_test(au_mntflags(sb), XINO))
+		goto out; /* no xino */
+
+	xi = au_sbr(sb, bindex)->br_xino;
+
+again:
+	spin_lock(&xi->xi_nondir.spin);
+	found = au_xinondir_find(xi, h_ino);
+	if (found == -1) {
+		empty = au_xinondir_find(xi, /*h_ino*/0);
+		if (empty == -1) {
+			empty = xi->xi_nondir.total;
+			err = au_xinondir_expand(xi);
+			if (unlikely(err))
+				goto out_unlock;
+		}
+		xi->xi_nondir.array[empty] = h_ino;
+		*idx = empty;
+	} else {
+		spin_unlock(&xi->xi_nondir.spin);
+		wait_event(xi->xi_nondir.wqh,
+			   xi->xi_nondir.array[found] != h_ino);
+		goto again;
+	}
+
+out_unlock:
+	spin_unlock(&xi->xi_nondir.spin);
+out:
+	return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_xino_path(struct seq_file *seq, struct file *file)
+{
+	int err;
+
+	err = au_seq_path(seq, &file->f_path);
+	if (unlikely(err))
+		goto out;
+
+#define Deleted "\\040(deleted)"
+	seq->count -= sizeof(Deleted) - 1;
+	AuDebugOn(memcmp(seq->buf + seq->count, Deleted,
+			 sizeof(Deleted) - 1));
+#undef Deleted
+
+out:
+	return err;
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/bfs/inode.c
+++ linux-gkeop-5.4-5.4.0/fs/bfs/inode.c
@@ -351,7 +351,7 @@
 
 	info->si_lasti = (le32_to_cpu(bfs_sb->s_start) - BFS_BSIZE) / sizeof(struct bfs_inode) + BFS_ROOT_INO - 1;
 	if (info->si_lasti == BFS_MAX_LASTI)
-		printf("WARNING: filesystem %s was created with 512 inodes, the real maximum is 511, mounting anyway\n", s->s_id);
+		printf("NOTE: filesystem %s was created with 512 inodes, the real maximum is 511, mounting anyway\n", s->s_id);
 	else if (info->si_lasti > BFS_MAX_LASTI) {
 		printf("Impossible last inode number %lu > %d on %s\n", info->si_lasti, BFS_MAX_LASTI, s->s_id);
 		goto out1;
--- linux-gkeop-5.4-5.4.0.orig/fs/binfmt_elf.c
+++ linux-gkeop-5.4-5.4.0/fs/binfmt_elf.c
@@ -1731,7 +1731,7 @@
 		    (!regset->active || regset->active(t->task, regset) > 0)) {
 			int ret;
 			size_t size = regset_size(t->task, regset);
-			void *data = kmalloc(size, GFP_KERNEL);
+			void *data = kzalloc(size, GFP_KERNEL);
 			if (unlikely(!data))
 				return 0;
 			ret = regset->get(t->task, regset,
--- linux-gkeop-5.4-5.4.0.orig/fs/binfmt_flat.c
+++ linux-gkeop-5.4-5.4.0/fs/binfmt_flat.c
@@ -571,7 +571,7 @@
 			goto err;
 		}
 
-		len = data_len + extra;
+		len = data_len + extra + MAX_SHARED_LIBS * sizeof(unsigned long);
 		len = PAGE_ALIGN(len);
 		realdatastart = vm_mmap(NULL, 0, len,
 			PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 0);
@@ -585,7 +585,9 @@
 			vm_munmap(textpos, text_len);
 			goto err;
 		}
-		datapos = ALIGN(realdatastart, FLAT_DATA_ALIGN);
+		datapos = ALIGN(realdatastart +
+				MAX_SHARED_LIBS * sizeof(unsigned long),
+				FLAT_DATA_ALIGN);
 
 		pr_debug("Allocated data+bss+stack (%u bytes): %lx\n",
 			 data_len + bss_len + stack_len, datapos);
@@ -615,7 +617,7 @@
 		memp_size = len;
 	} else {
 
-		len = text_len + data_len + extra;
+		len = text_len + data_len + extra + MAX_SHARED_LIBS * sizeof(u32);
 		len = PAGE_ALIGN(len);
 		textpos = vm_mmap(NULL, 0, len,
 			PROT_READ | PROT_EXEC | PROT_WRITE, MAP_PRIVATE, 0);
@@ -630,7 +632,9 @@
 		}
 
 		realdatastart = textpos + ntohl(hdr->data_start);
-		datapos = ALIGN(realdatastart, FLAT_DATA_ALIGN);
+		datapos = ALIGN(realdatastart +
+				MAX_SHARED_LIBS * sizeof(u32),
+				FLAT_DATA_ALIGN);
 
 		reloc = (__be32 __user *)
 			(datapos + (ntohl(hdr->reloc_start) - text_len));
@@ -647,9 +651,8 @@
 					 (text_len + full_data
 						  - sizeof(struct flat_hdr)),
 					 0);
-			if (datapos != realdatastart)
-				memmove((void *)datapos, (void *)realdatastart,
-						full_data);
+			memmove((void *) datapos, (void *) realdatastart,
+					full_data);
 #else
 			/*
 			 * This is used on MMU systems mainly for testing.
@@ -705,7 +708,8 @@
 		if (IS_ERR_VALUE(result)) {
 			ret = result;
 			pr_err("Unable to read code+data+bss, errno %d\n", ret);
-			vm_munmap(textpos, text_len + data_len + extra);
+			vm_munmap(textpos, text_len + data_len + extra +
+				MAX_SHARED_LIBS * sizeof(u32));
 			goto err;
 		}
 	}
--- linux-gkeop-5.4-5.4.0.orig/fs/binfmt_misc.c
+++ linux-gkeop-5.4-5.4.0/fs/binfmt_misc.c
@@ -696,12 +696,24 @@
 	struct super_block *sb = file_inode(file)->i_sb;
 	struct dentry *root = sb->s_root, *dentry;
 	int err = 0;
+	struct file *f = NULL;
 
 	e = create_entry(buffer, count);
 
 	if (IS_ERR(e))
 		return PTR_ERR(e);
 
+	if (e->flags & MISC_FMT_OPEN_FILE) {
+		f = open_exec(e->interpreter);
+		if (IS_ERR(f)) {
+			pr_notice("register: failed to install interpreter file %s\n",
+				 e->interpreter);
+			kfree(e);
+			return PTR_ERR(f);
+		}
+		e->interp_file = f;
+	}
+
 	inode_lock(d_inode(root));
 	dentry = lookup_one_len(e->name, root, strlen(e->name));
 	err = PTR_ERR(dentry);
@@ -725,21 +737,6 @@
 		goto out2;
 	}
 
-	if (e->flags & MISC_FMT_OPEN_FILE) {
-		struct file *f;
-
-		f = open_exec(e->interpreter);
-		if (IS_ERR(f)) {
-			err = PTR_ERR(f);
-			pr_notice("register: failed to install interpreter file %s\n", e->interpreter);
-			simple_release_fs(&bm_mnt, &entry_count);
-			iput(inode);
-			inode = NULL;
-			goto out2;
-		}
-		e->interp_file = f;
-	}
-
 	e->dentry = dget(dentry);
 	inode->i_private = e;
 	inode->i_fop = &bm_entry_operations;
@@ -756,6 +753,8 @@
 	inode_unlock(d_inode(root));
 
 	if (err) {
+		if (f)
+			filp_close(f, NULL);
 		kfree(e);
 		return err;
 	}
--- linux-gkeop-5.4-5.4.0.orig/fs/block_dev.c
+++ linux-gkeop-5.4-5.4.0/fs/block_dev.c
@@ -34,6 +34,7 @@
 #include <linux/task_io_accounting_ops.h>
 #include <linux/falloc.h>
 #include <linux/uaccess.h>
+#include <linux/suspend.h>
 #include "internal.h"
 
 struct bdev_inode {
@@ -1403,11 +1404,7 @@
 		       "resized disk %s\n",
 		       bdev->bd_disk ? bdev->bd_disk->disk_name : "");
 	}
-
-	if (!bdev->bd_disk)
-		return;
-	if (disk_part_scan_enabled(bdev->bd_disk))
-		bdev->bd_invalidated = 1;
+	bdev->bd_invalidated = 1;
 }
 
 /**
@@ -1512,6 +1509,19 @@
 
 static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part);
 
+static void bdev_disk_changed(struct block_device *bdev, bool invalidate)
+{
+	if (disk_part_scan_enabled(bdev->bd_disk)) {
+		if (invalidate)
+			invalidate_partitions(bdev->bd_disk, bdev);
+		else
+			rescan_partitions(bdev->bd_disk, bdev);
+	} else {
+		check_disk_size_change(bdev->bd_disk, bdev, !invalidate);
+		bdev->bd_invalidated = 0;
+	}
+}
+
 /*
  * bd_mutex locking:
  *
@@ -1536,10 +1546,8 @@
 	 */
 	if (!for_part) {
 		ret = devcgroup_inode_permission(bdev->bd_inode, perm);
-		if (ret != 0) {
-			bdput(bdev);
+		if (ret != 0)
 			return ret;
-		}
 	}
 
  restart:
@@ -1594,12 +1602,9 @@
 			 * The latter is necessary to prevent ghost
 			 * partitions on a removed medium.
 			 */
-			if (bdev->bd_invalidated) {
-				if (!ret)
-					rescan_partitions(disk, bdev);
-				else if (ret == -ENOMEDIUM)
-					invalidate_partitions(disk, bdev);
-			}
+			if (bdev->bd_invalidated &&
+			    (!ret || ret == -ENOMEDIUM))
+				bdev_disk_changed(bdev, ret == -ENOMEDIUM);
 
 			if (ret)
 				goto out_clear;
@@ -1611,8 +1616,10 @@
 				goto out_clear;
 			BUG_ON(for_part);
 			ret = __blkdev_get(whole, mode, 1);
-			if (ret)
+			if (ret) {
+				bdput(whole);
 				goto out_clear;
+			}
 			bdev->bd_contains = whole;
 			bdev->bd_part = disk_get_part(disk, partno);
 			if (!(disk->flags & GENHD_FL_UP) ||
@@ -1632,12 +1639,9 @@
 			if (bdev->bd_disk->fops->open)
 				ret = bdev->bd_disk->fops->open(bdev, mode);
 			/* the same as first opener case, read comment there */
-			if (bdev->bd_invalidated) {
-				if (!ret)
-					rescan_partitions(bdev->bd_disk, bdev);
-				else if (ret == -ENOMEDIUM)
-					invalidate_partitions(bdev->bd_disk, bdev);
-			}
+			if (bdev->bd_invalidated &&
+			    (!ret || ret == -ENOMEDIUM))
+				bdev_disk_changed(bdev, ret == -ENOMEDIUM);
 			if (ret)
 				goto out_unlock_bdev;
 		}
@@ -1665,7 +1669,6 @@
 	disk_unblock_events(disk);
 	put_disk_and_module(disk);
  out:
-	bdput(bdev);
 
 	return ret;
 }
@@ -1732,6 +1735,9 @@
 		bdput(whole);
 	}
 
+	if (res)
+		bdput(bdev);
+
 	return res;
 }
 EXPORT_SYMBOL(blkdev_get);
@@ -1851,6 +1857,16 @@
 	struct gendisk *disk = bdev->bd_disk;
 	struct block_device *victim = NULL;
 
+	/*
+	 * Sync early if it looks like we're the last one.  If someone else
+	 * opens the block device between now and the decrement of bd_openers
+	 * then we did a sync that we didn't need to, but that's not the end
+	 * of the world and we want to avoid long (could be several minute)
+	 * syncs while holding the mutex.
+	 */
+	if (bdev->bd_openers == 1)
+		sync_blockdev(bdev);
+
 	mutex_lock_nested(&bdev->bd_mutex, for_part);
 	if (for_part)
 		bdev->bd_part_count--;
@@ -1972,7 +1988,8 @@
 	if (bdev_read_only(I_BDEV(bd_inode)))
 		return -EPERM;
 
-	if (IS_SWAPFILE(bd_inode))
+	/* uswsusp needs write permission to the swap */
+	if (IS_SWAPFILE(bd_inode) && !hibernation_available())
 		return -ETXTBSY;
 
 	if (!iov_iter_count(from))
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/async-thread.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/async-thread.c
@@ -53,16 +53,6 @@
 	struct __btrfs_workqueue *high;
 };
 
-static void normal_work_helper(struct btrfs_work *work);
-
-#define BTRFS_WORK_HELPER(name)					\
-noinline_for_stack void btrfs_##name(struct work_struct *arg)		\
-{									\
-	struct btrfs_work *work = container_of(arg, struct btrfs_work,	\
-					       normal_work);		\
-	normal_work_helper(work);					\
-}
-
 struct btrfs_fs_info *
 btrfs_workqueue_owner(const struct __btrfs_workqueue *wq)
 {
@@ -89,29 +79,6 @@
 	return atomic_read(&wq->normal->pending) > wq->normal->thresh * 2;
 }
 
-BTRFS_WORK_HELPER(worker_helper);
-BTRFS_WORK_HELPER(delalloc_helper);
-BTRFS_WORK_HELPER(flush_delalloc_helper);
-BTRFS_WORK_HELPER(cache_helper);
-BTRFS_WORK_HELPER(submit_helper);
-BTRFS_WORK_HELPER(fixup_helper);
-BTRFS_WORK_HELPER(endio_helper);
-BTRFS_WORK_HELPER(endio_meta_helper);
-BTRFS_WORK_HELPER(endio_meta_write_helper);
-BTRFS_WORK_HELPER(endio_raid56_helper);
-BTRFS_WORK_HELPER(endio_repair_helper);
-BTRFS_WORK_HELPER(rmw_helper);
-BTRFS_WORK_HELPER(endio_write_helper);
-BTRFS_WORK_HELPER(freespace_write_helper);
-BTRFS_WORK_HELPER(delayed_meta_helper);
-BTRFS_WORK_HELPER(readahead_helper);
-BTRFS_WORK_HELPER(qgroup_rescan_helper);
-BTRFS_WORK_HELPER(extent_refs_helper);
-BTRFS_WORK_HELPER(scrub_helper);
-BTRFS_WORK_HELPER(scrubwrc_helper);
-BTRFS_WORK_HELPER(scrubnc_helper);
-BTRFS_WORK_HELPER(scrubparity_helper);
-
 static struct __btrfs_workqueue *
 __btrfs_alloc_workqueue(struct btrfs_fs_info *fs_info, const char *name,
 			unsigned int flags, int limit_active, int thresh)
@@ -252,16 +219,17 @@
 	}
 }
 
-static void run_ordered_work(struct __btrfs_workqueue *wq)
+static void run_ordered_work(struct __btrfs_workqueue *wq,
+			     struct btrfs_work *self)
 {
 	struct list_head *list = &wq->ordered_list;
 	struct btrfs_work *work;
 	spinlock_t *lock = &wq->list_lock;
 	unsigned long flags;
+	void *wtag;
+	bool free_self = false;
 
 	while (1) {
-		void *wtag;
-
 		spin_lock_irqsave(lock, flags);
 		if (list_empty(list))
 			break;
@@ -287,20 +255,54 @@
 		list_del(&work->ordered_list);
 		spin_unlock_irqrestore(lock, flags);
 
-		/*
-		 * We don't want to call the ordered free functions with the
-		 * lock held though. Save the work as tag for the trace event,
-		 * because the callback could free the structure.
-		 */
-		wtag = work;
-		work->ordered_free(work);
-		trace_btrfs_all_work_done(wq->fs_info, wtag);
+		if (work == self) {
+			/*
+			 * This is the work item that the worker is currently
+			 * executing.
+			 *
+			 * The kernel workqueue code guarantees non-reentrancy
+			 * of work items. I.e., if a work item with the same
+			 * address and work function is queued twice, the second
+			 * execution is blocked until the first one finishes. A
+			 * work item may be freed and recycled with the same
+			 * work function; the workqueue code assumes that the
+			 * original work item cannot depend on the recycled work
+			 * item in that case (see find_worker_executing_work()).
+			 *
+			 * Note that different types of Btrfs work can depend on
+			 * each other, and one type of work on one Btrfs
+			 * filesystem may even depend on the same type of work
+			 * on another Btrfs filesystem via, e.g., a loop device.
+			 * Therefore, we must not allow the current work item to
+			 * be recycled until we are really done, otherwise we
+			 * break the above assumption and can deadlock.
+			 */
+			free_self = true;
+		} else {
+			/*
+			 * We don't want to call the ordered free functions with
+			 * the lock held though. Save the work as tag for the
+			 * trace event, because the callback could free the
+			 * structure.
+			 */
+			wtag = work;
+			work->ordered_free(work);
+			trace_btrfs_all_work_done(wq->fs_info, wtag);
+		}
 	}
 	spin_unlock_irqrestore(lock, flags);
+
+	if (free_self) {
+		wtag = self;
+		self->ordered_free(self);
+		trace_btrfs_all_work_done(wq->fs_info, wtag);
+	}
 }
 
-static void normal_work_helper(struct btrfs_work *work)
+static void btrfs_work_helper(struct work_struct *normal_work)
 {
+	struct btrfs_work *work = container_of(normal_work, struct btrfs_work,
+					       normal_work);
 	struct __btrfs_workqueue *wq;
 	void *wtag;
 	int need_order = 0;
@@ -324,21 +326,19 @@
 	work->func(work);
 	if (need_order) {
 		set_bit(WORK_DONE_BIT, &work->flags);
-		run_ordered_work(wq);
+		run_ordered_work(wq, work);
 	}
 	if (!need_order)
 		trace_btrfs_all_work_done(wq->fs_info, wtag);
 }
 
-void btrfs_init_work(struct btrfs_work *work, btrfs_work_func_t uniq_func,
-		     btrfs_func_t func,
-		     btrfs_func_t ordered_func,
-		     btrfs_func_t ordered_free)
+void btrfs_init_work(struct btrfs_work *work, btrfs_func_t func,
+		     btrfs_func_t ordered_func, btrfs_func_t ordered_free)
 {
 	work->func = func;
 	work->ordered_func = ordered_func;
 	work->ordered_free = ordered_free;
-	INIT_WORK(&work->normal_work, uniq_func);
+	INIT_WORK(&work->normal_work, btrfs_work_helper);
 	INIT_LIST_HEAD(&work->ordered_list);
 	work->flags = 0;
 }
@@ -402,3 +402,11 @@
 {
 	set_bit(WORK_HIGH_PRIO_BIT, &work->flags);
 }
+
+void btrfs_flush_workqueue(struct btrfs_workqueue *wq)
+{
+	if (wq->high)
+		flush_workqueue(wq->high->normal_wq);
+
+	flush_workqueue(wq->normal->normal_wq);
+}
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/async-thread.h
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/async-thread.h
@@ -29,42 +29,13 @@
 	unsigned long flags;
 };
 
-#define BTRFS_WORK_HELPER_PROTO(name)					\
-void btrfs_##name(struct work_struct *arg)
-
-BTRFS_WORK_HELPER_PROTO(worker_helper);
-BTRFS_WORK_HELPER_PROTO(delalloc_helper);
-BTRFS_WORK_HELPER_PROTO(flush_delalloc_helper);
-BTRFS_WORK_HELPER_PROTO(cache_helper);
-BTRFS_WORK_HELPER_PROTO(submit_helper);
-BTRFS_WORK_HELPER_PROTO(fixup_helper);
-BTRFS_WORK_HELPER_PROTO(endio_helper);
-BTRFS_WORK_HELPER_PROTO(endio_meta_helper);
-BTRFS_WORK_HELPER_PROTO(endio_meta_write_helper);
-BTRFS_WORK_HELPER_PROTO(endio_raid56_helper);
-BTRFS_WORK_HELPER_PROTO(endio_repair_helper);
-BTRFS_WORK_HELPER_PROTO(rmw_helper);
-BTRFS_WORK_HELPER_PROTO(endio_write_helper);
-BTRFS_WORK_HELPER_PROTO(freespace_write_helper);
-BTRFS_WORK_HELPER_PROTO(delayed_meta_helper);
-BTRFS_WORK_HELPER_PROTO(readahead_helper);
-BTRFS_WORK_HELPER_PROTO(qgroup_rescan_helper);
-BTRFS_WORK_HELPER_PROTO(extent_refs_helper);
-BTRFS_WORK_HELPER_PROTO(scrub_helper);
-BTRFS_WORK_HELPER_PROTO(scrubwrc_helper);
-BTRFS_WORK_HELPER_PROTO(scrubnc_helper);
-BTRFS_WORK_HELPER_PROTO(scrubparity_helper);
-
-
 struct btrfs_workqueue *btrfs_alloc_workqueue(struct btrfs_fs_info *fs_info,
 					      const char *name,
 					      unsigned int flags,
 					      int limit_active,
 					      int thresh);
-void btrfs_init_work(struct btrfs_work *work, btrfs_work_func_t helper,
-		     btrfs_func_t func,
-		     btrfs_func_t ordered_func,
-		     btrfs_func_t ordered_free);
+void btrfs_init_work(struct btrfs_work *work, btrfs_func_t func,
+		     btrfs_func_t ordered_func, btrfs_func_t ordered_free);
 void btrfs_queue_work(struct btrfs_workqueue *wq,
 		      struct btrfs_work *work);
 void btrfs_destroy_workqueue(struct btrfs_workqueue *wq);
@@ -73,5 +44,6 @@
 struct btrfs_fs_info *btrfs_work_owner(const struct btrfs_work *work);
 struct btrfs_fs_info *btrfs_workqueue_owner(const struct __btrfs_workqueue *wq);
 bool btrfs_workqueue_normal_congested(const struct btrfs_workqueue *wq);
+void btrfs_flush_workqueue(struct btrfs_workqueue *wq);
 
 #endif
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/backref.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/backref.c
@@ -347,33 +347,10 @@
 		return -ENOMEM;
 
 	ref->root_id = root_id;
-	if (key) {
+	if (key)
 		ref->key_for_search = *key;
-		/*
-		 * We can often find data backrefs with an offset that is too
-		 * large (>= LLONG_MAX, maximum allowed file offset) due to
-		 * underflows when subtracting a file's offset with the data
-		 * offset of its corresponding extent data item. This can
-		 * happen for example in the clone ioctl.
-		 * So if we detect such case we set the search key's offset to
-		 * zero to make sure we will find the matching file extent item
-		 * at add_all_parents(), otherwise we will miss it because the
-		 * offset taken form the backref is much larger then the offset
-		 * of the file extent item. This can make us scan a very large
-		 * number of file extent items, but at least it will not make
-		 * us miss any.
-		 * This is an ugly workaround for a behaviour that should have
-		 * never existed, but it does and a fix for the clone ioctl
-		 * would touch a lot of places, cause backwards incompatibility
-		 * and would not fix the problem for extents cloned with older
-		 * kernels.
-		 */
-		if (ref->key_for_search.type == BTRFS_EXTENT_DATA_KEY &&
-		    ref->key_for_search.offset >= LLONG_MAX)
-			ref->key_for_search.offset = 0;
-	} else {
+	else
 		memset(&ref->key_for_search, 0, sizeof(ref->key_for_search));
-	}
 
 	ref->inode_list = NULL;
 	ref->level = level;
@@ -409,10 +386,36 @@
 			      wanted_disk_byte, count, sc, gfp_mask);
 }
 
+static int is_shared_data_backref(struct preftrees *preftrees, u64 bytenr)
+{
+	struct rb_node **p = &preftrees->direct.root.rb_root.rb_node;
+	struct rb_node *parent = NULL;
+	struct prelim_ref *ref = NULL;
+	struct prelim_ref target = {0};
+	int result;
+
+	target.parent = bytenr;
+
+	while (*p) {
+		parent = *p;
+		ref = rb_entry(parent, struct prelim_ref, rbnode);
+		result = prelim_ref_compare(ref, &target);
+
+		if (result < 0)
+			p = &(*p)->rb_left;
+		else if (result > 0)
+			p = &(*p)->rb_right;
+		else
+			return 1;
+	}
+	return 0;
+}
+
 static int add_all_parents(struct btrfs_root *root, struct btrfs_path *path,
-			   struct ulist *parents, struct prelim_ref *ref,
+			   struct ulist *parents,
+			   struct preftrees *preftrees, struct prelim_ref *ref,
 			   int level, u64 time_seq, const u64 *extent_item_pos,
-			   u64 total_refs, bool ignore_offset)
+			   bool ignore_offset)
 {
 	int ret = 0;
 	int slot;
@@ -424,6 +427,7 @@
 	u64 disk_byte;
 	u64 wanted_disk_byte = ref->wanted_disk_byte;
 	u64 count = 0;
+	u64 data_offset;
 
 	if (level != 0) {
 		eb = path->nodes[level];
@@ -434,18 +438,26 @@
 	}
 
 	/*
-	 * We normally enter this function with the path already pointing to
-	 * the first item to check. But sometimes, we may enter it with
-	 * slot==nritems. In that case, go to the next leaf before we continue.
+	 * 1. We normally enter this function with the path already pointing to
+	 *    the first item to check. But sometimes, we may enter it with
+	 *    slot == nritems.
+	 * 2. We are searching for normal backref but bytenr of this leaf
+	 *    matches shared data backref
+	 * 3. The leaf owner is not equal to the root we are searching
+	 *
+	 * For these cases, go to the next leaf before we continue.
 	 */
-	if (path->slots[0] >= btrfs_header_nritems(path->nodes[0])) {
+	eb = path->nodes[0];
+	if (path->slots[0] >= btrfs_header_nritems(eb) ||
+	    is_shared_data_backref(preftrees, eb->start) ||
+	    ref->root_id != btrfs_header_owner(eb)) {
 		if (time_seq == SEQ_LAST)
 			ret = btrfs_next_leaf(root, path);
 		else
 			ret = btrfs_next_old_leaf(root, path, time_seq);
 	}
 
-	while (!ret && count < total_refs) {
+	while (!ret && count < ref->count) {
 		eb = path->nodes[0];
 		slot = path->slots[0];
 
@@ -455,13 +467,31 @@
 		    key.type != BTRFS_EXTENT_DATA_KEY)
 			break;
 
+		/*
+		 * We are searching for normal backref but bytenr of this leaf
+		 * matches shared data backref, OR
+		 * the leaf owner is not equal to the root we are searching for
+		 */
+		if (slot == 0 &&
+		    (is_shared_data_backref(preftrees, eb->start) ||
+		     ref->root_id != btrfs_header_owner(eb))) {
+			if (time_seq == SEQ_LAST)
+				ret = btrfs_next_leaf(root, path);
+			else
+				ret = btrfs_next_old_leaf(root, path, time_seq);
+			continue;
+		}
 		fi = btrfs_item_ptr(eb, slot, struct btrfs_file_extent_item);
 		disk_byte = btrfs_file_extent_disk_bytenr(eb, fi);
+		data_offset = btrfs_file_extent_offset(eb, fi);
 
 		if (disk_byte == wanted_disk_byte) {
 			eie = NULL;
 			old = NULL;
-			count++;
+			if (ref->key_for_search.offset == key.offset - data_offset)
+				count++;
+			else
+				goto next;
 			if (extent_item_pos) {
 				ret = check_extent_in_eb(&key, eb, fi,
 						*extent_item_pos,
@@ -502,9 +532,9 @@
  */
 static int resolve_indirect_ref(struct btrfs_fs_info *fs_info,
 				struct btrfs_path *path, u64 time_seq,
+				struct preftrees *preftrees,
 				struct prelim_ref *ref, struct ulist *parents,
-				const u64 *extent_item_pos, u64 total_refs,
-				bool ignore_offset)
+				const u64 *extent_item_pos, bool ignore_offset)
 {
 	struct btrfs_root *root;
 	struct btrfs_key root_key;
@@ -513,6 +543,7 @@
 	int root_level;
 	int level = ref->level;
 	int index;
+	struct btrfs_key search_key = ref->key_for_search;
 
 	root_key.objectid = ref->root_id;
 	root_key.type = BTRFS_ROOT_ITEM_KEY;
@@ -545,13 +576,33 @@
 		goto out;
 	}
 
+	/*
+	 * We can often find data backrefs with an offset that is too large
+	 * (>= LLONG_MAX, maximum allowed file offset) due to underflows when
+	 * subtracting a file's offset with the data offset of its
+	 * corresponding extent data item. This can happen for example in the
+	 * clone ioctl.
+	 *
+	 * So if we detect such case we set the search key's offset to zero to
+	 * make sure we will find the matching file extent item at
+	 * add_all_parents(), otherwise we will miss it because the offset
+	 * taken form the backref is much larger then the offset of the file
+	 * extent item. This can make us scan a very large number of file
+	 * extent items, but at least it will not make us miss any.
+	 *
+	 * This is an ugly workaround for a behaviour that should have never
+	 * existed, but it does and a fix for the clone ioctl would touch a lot
+	 * of places, cause backwards incompatibility and would not fix the
+	 * problem for extents cloned with older kernels.
+	 */
+	if (search_key.type == BTRFS_EXTENT_DATA_KEY &&
+	    search_key.offset >= LLONG_MAX)
+		search_key.offset = 0;
 	path->lowest_level = level;
 	if (time_seq == SEQ_LAST)
-		ret = btrfs_search_slot(NULL, root, &ref->key_for_search, path,
-					0, 0);
+		ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0);
 	else
-		ret = btrfs_search_old_slot(root, &ref->key_for_search, path,
-					    time_seq);
+		ret = btrfs_search_old_slot(root, &search_key, path, time_seq);
 
 	/* root node has been locked, we can release @subvol_srcu safely here */
 	srcu_read_unlock(&fs_info->subvol_srcu, index);
@@ -574,8 +625,8 @@
 		eb = path->nodes[level];
 	}
 
-	ret = add_all_parents(root, path, parents, ref, level, time_seq,
-			      extent_item_pos, total_refs, ignore_offset);
+	ret = add_all_parents(root, path, parents, preftrees, ref, level,
+			      time_seq, extent_item_pos, ignore_offset);
 out:
 	path->lowest_level = 0;
 	btrfs_release_path(path);
@@ -609,7 +660,7 @@
 static int resolve_indirect_refs(struct btrfs_fs_info *fs_info,
 				 struct btrfs_path *path, u64 time_seq,
 				 struct preftrees *preftrees,
-				 const u64 *extent_item_pos, u64 total_refs,
+				 const u64 *extent_item_pos,
 				 struct share_check *sc, bool ignore_offset)
 {
 	int err;
@@ -653,9 +704,9 @@
 			ret = BACKREF_FOUND_SHARED;
 			goto out;
 		}
-		err = resolve_indirect_ref(fs_info, path, time_seq, ref,
-					   parents, extent_item_pos,
-					   total_refs, ignore_offset);
+		err = resolve_indirect_ref(fs_info, path, time_seq, preftrees,
+					   ref, parents, extent_item_pos,
+					   ignore_offset);
 		/*
 		 * we can only tolerate ENOENT,otherwise,we should catch error
 		 * and return directly.
@@ -758,8 +809,7 @@
  */
 static int add_delayed_refs(const struct btrfs_fs_info *fs_info,
 			    struct btrfs_delayed_ref_head *head, u64 seq,
-			    struct preftrees *preftrees, u64 *total_refs,
-			    struct share_check *sc)
+			    struct preftrees *preftrees, struct share_check *sc)
 {
 	struct btrfs_delayed_ref_node *node;
 	struct btrfs_delayed_extent_op *extent_op = head->extent_op;
@@ -793,7 +843,6 @@
 		default:
 			BUG();
 		}
-		*total_refs += count;
 		switch (node->type) {
 		case BTRFS_TREE_BLOCK_REF_KEY: {
 			/* NORMAL INDIRECT METADATA backref */
@@ -876,7 +925,7 @@
 static int add_inline_refs(const struct btrfs_fs_info *fs_info,
 			   struct btrfs_path *path, u64 bytenr,
 			   int *info_level, struct preftrees *preftrees,
-			   u64 *total_refs, struct share_check *sc)
+			   struct share_check *sc)
 {
 	int ret = 0;
 	int slot;
@@ -900,7 +949,6 @@
 
 	ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item);
 	flags = btrfs_extent_flags(leaf, ei);
-	*total_refs += btrfs_extent_refs(leaf, ei);
 	btrfs_item_key_to_cpu(leaf, &found_key, slot);
 
 	ptr = (unsigned long)(ei + 1);
@@ -1125,8 +1173,6 @@
 	struct prelim_ref *ref;
 	struct rb_node *node;
 	struct extent_inode_elem *eie = NULL;
-	/* total of both direct AND indirect refs! */
-	u64 total_refs = 0;
 	struct preftrees preftrees = {
 		.direct = PREFTREE_INIT,
 		.indirect = PREFTREE_INIT,
@@ -1195,7 +1241,7 @@
 			}
 			spin_unlock(&delayed_refs->lock);
 			ret = add_delayed_refs(fs_info, head, time_seq,
-					       &preftrees, &total_refs, sc);
+					       &preftrees, sc);
 			mutex_unlock(&head->mutex);
 			if (ret)
 				goto out;
@@ -1216,8 +1262,7 @@
 		    (key.type == BTRFS_EXTENT_ITEM_KEY ||
 		     key.type == BTRFS_METADATA_ITEM_KEY)) {
 			ret = add_inline_refs(fs_info, path, bytenr,
-					      &info_level, &preftrees,
-					      &total_refs, sc);
+					      &info_level, &preftrees, sc);
 			if (ret)
 				goto out;
 			ret = add_keyed_refs(fs_info, path, bytenr, info_level,
@@ -1236,7 +1281,7 @@
 	WARN_ON(!RB_EMPTY_ROOT(&preftrees.indirect_missing_keys.root.rb_root));
 
 	ret = resolve_indirect_refs(fs_info, path, time_seq, &preftrees,
-				    extent_item_pos, total_refs, sc, ignore_offset);
+				    extent_item_pos, sc, ignore_offset);
 	if (ret)
 		goto out;
 
@@ -1422,6 +1467,7 @@
 		if (ret < 0 && ret != -ENOENT) {
 			ulist_free(tmp);
 			ulist_free(*roots);
+			*roots = NULL;
 			return ret;
 		}
 		node = ulist_next(tmp, &uiter);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/block-group.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/block-group.c
@@ -640,7 +640,15 @@
 	mutex_lock(&caching_ctl->mutex);
 	down_read(&fs_info->commit_root_sem);
 
-	if (btrfs_fs_compat_ro(fs_info, FREE_SPACE_TREE))
+	/*
+	 * If we are in the transaction that populated the free space tree we
+	 * can't actually cache from the free space tree as our commit root and
+	 * real root are the same, so we could change the contents of the blocks
+	 * while caching.  Instead do the slow caching in this case, and after
+	 * the transaction has committed we will be safe.
+	 */
+	if (btrfs_fs_compat_ro(fs_info, FREE_SPACE_TREE) &&
+	    !(test_bit(BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED, &fs_info->flags)))
 		ret = load_free_space_tree(caching_ctl);
 	else
 		ret = load_extent_tree_free(caching_ctl);
@@ -695,8 +703,7 @@
 	caching_ctl->block_group = cache;
 	caching_ctl->progress = cache->key.objectid;
 	refcount_set(&caching_ctl->count, 1);
-	btrfs_init_work(&caching_ctl->work, btrfs_cache_helper,
-			caching_thread, NULL, NULL);
+	btrfs_init_work(&caching_ctl->work, caching_thread, NULL, NULL);
 
 	spin_lock(&cache->lock);
 	/*
@@ -987,6 +994,9 @@
 		 &fs_info->block_group_cache_tree);
 	RB_CLEAR_NODE(&block_group->cache_node);
 
+	/* Once for the block groups rbtree */
+	btrfs_put_block_group(block_group);
+
 	if (fs_info->first_logical_byte == block_group->key.objectid)
 		fs_info->first_logical_byte = (u64)-1;
 	spin_unlock(&fs_info->block_group_cache_lock);
@@ -1097,9 +1107,6 @@
 	if (ret)
 		goto out;
 
-	btrfs_put_block_group(block_group);
-	btrfs_put_block_group(block_group);
-
 	ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
 	if (ret > 0)
 		ret = -EIO;
@@ -1120,7 +1127,10 @@
 		/* once for the tree */
 		free_extent_map(em);
 	}
+
 out:
+	/* Once for the lookup reference */
+	btrfs_put_block_group(block_group);
 	if (remove_rsv)
 		btrfs_delayed_refs_rsv_release(fs_info, 1);
 	btrfs_free_path(path);
@@ -1164,7 +1174,7 @@
 	free_extent_map(em);
 
 	return btrfs_start_transaction_fallback_global_rsv(fs_info->extent_root,
-							   num_items, 1);
+							   num_items);
 }
 
 /*
@@ -1184,7 +1194,6 @@
 {
 	struct btrfs_space_info *sinfo = cache->space_info;
 	u64 num_bytes;
-	u64 sinfo_used;
 	u64 min_allocable_bytes;
 	int ret = -ENOSPC;
 
@@ -1211,20 +1220,38 @@
 
 	num_bytes = cache->key.offset - cache->reserved - cache->pinned -
 		    cache->bytes_super - btrfs_block_group_used(&cache->item);
-	sinfo_used = btrfs_space_info_used(sinfo, true);
 
 	/*
-	 * sinfo_used + num_bytes should always <= sinfo->total_bytes.
-	 *
-	 * Here we make sure if we mark this bg RO, we still have enough
-	 * free space as buffer (if min_allocable_bytes is not 0).
+	 * Data never overcommits, even in mixed mode, so do just the straight
+	 * check of left over space in how much we have allocated.
 	 */
-	if (sinfo_used + num_bytes + min_allocable_bytes <=
-	    sinfo->total_bytes) {
+	if (force) {
+		ret = 0;
+	} else if (sinfo->flags & BTRFS_BLOCK_GROUP_DATA) {
+		u64 sinfo_used = btrfs_space_info_used(sinfo, true);
+
+		/*
+		 * Here we make sure if we mark this bg RO, we still have enough
+		 * free space as buffer.
+		 */
+		if (sinfo_used + num_bytes <= sinfo->total_bytes)
+			ret = 0;
+	} else {
+		/*
+		 * We overcommit metadata, so we need to do the
+		 * btrfs_can_overcommit check here, and we need to pass in
+		 * BTRFS_RESERVE_NO_FLUSH to give ourselves the most amount of
+		 * leeway to allow us to mark this block group as read only.
+		 */
+		if (btrfs_can_overcommit(cache->fs_info, sinfo, num_bytes,
+					 BTRFS_RESERVE_NO_FLUSH))
+			ret = 0;
+	}
+
+	if (!ret) {
 		sinfo->bytes_readonly += num_bytes;
 		cache->ro++;
 		list_add_tail(&cache->ro_list, &sinfo->ro_bgs);
-		ret = 0;
 	}
 out:
 	spin_unlock(&cache->lock);
@@ -1233,9 +1260,6 @@
 		btrfs_info(cache->fs_info,
 			"unable to make block group %llu ro",
 			cache->key.objectid);
-		btrfs_info(cache->fs_info,
-			"sinfo_used=%llu bg_num_bytes=%llu min_allocable=%llu",
-			sinfo_used, num_bytes, min_allocable_bytes);
 		btrfs_dump_space_info(cache->fs_info, cache->space_info, 0, 0);
 	}
 	return ret;
@@ -1830,6 +1854,7 @@
 		}
 	}
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(space_info, &info->space_info, list) {
 		if (!(btrfs_get_alloc_profile(info, space_info->flags) &
 		      (BTRFS_BLOCK_GROUP_RAID10 |
@@ -1850,6 +1875,7 @@
 				list)
 			inc_block_group_ro(cache, 1);
 	}
+	rcu_read_unlock();
 
 	btrfs_init_global_block_rsv(info);
 	ret = check_chunk_block_group_mappings(info);
@@ -2164,7 +2190,7 @@
 		return 0;
 	}
 
-	if (trans->aborted)
+	if (TRANS_ABORTED(trans))
 		return 0;
 again:
 	inode = lookup_free_space_inode(block_group, path);
@@ -2365,8 +2391,10 @@
 
 	if (!path) {
 		path = btrfs_alloc_path();
-		if (!path)
-			return -ENOMEM;
+		if (!path) {
+			ret = -ENOMEM;
+			goto out;
+		}
 	}
 
 	/*
@@ -2461,16 +2489,14 @@
 			btrfs_put_block_group(cache);
 		if (drop_reserve)
 			btrfs_delayed_refs_rsv_release(fs_info, 1);
-
-		if (ret)
-			break;
-
 		/*
 		 * Avoid blocking other tasks for too long. It might even save
 		 * us from writing caches for block groups that are going to be
 		 * removed.
 		 */
 		mutex_unlock(&trans->transaction->cache_write_mutex);
+		if (ret)
+			goto out;
 		mutex_lock(&trans->transaction->cache_write_mutex);
 	}
 	mutex_unlock(&trans->transaction->cache_write_mutex);
@@ -2479,7 +2505,8 @@
 	 * Go through delayed refs for all the stuff we've just kicked off
 	 * and then loop back (just once)
 	 */
-	ret = btrfs_run_delayed_refs(trans, 0);
+	if (!ret)
+		ret = btrfs_run_delayed_refs(trans, 0);
 	if (!ret && loops == 0) {
 		loops++;
 		spin_lock(&cur_trans->dirty_bgs_lock);
@@ -2493,7 +2520,12 @@
 			goto again;
 		}
 		spin_unlock(&cur_trans->dirty_bgs_lock);
-	} else if (ret < 0) {
+	}
+out:
+	if (ret < 0) {
+		spin_lock(&cur_trans->dirty_bgs_lock);
+		list_splice_init(&dirty, &cur_trans->dirty_bgs);
+		spin_unlock(&cur_trans->dirty_bgs_lock);
 		btrfs_cleanup_dirty_bgs(cur_trans, fs_info);
 	}
 
@@ -2662,7 +2694,7 @@
 		 * is because we need the unpinning stage to actually add the
 		 * space back to the block group, otherwise we will leak space.
 		 */
-		if (!alloc && cache->cached == BTRFS_CACHE_NO)
+		if (!alloc && !btrfs_block_group_cache_done(cache))
 			btrfs_cache_block_group(cache, 1);
 
 		byte_in_group = bytenr - cache->key.objectid;
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/block-rsv.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/block-rsv.c
@@ -5,6 +5,7 @@
 #include "block-rsv.h"
 #include "space-info.h"
 #include "transaction.h"
+#include "block-group.h"
 
 static u64 block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
 				    struct btrfs_block_rsv *block_rsv,
@@ -313,6 +314,8 @@
 	else
 		block_rsv->full = 0;
 
+	if (block_rsv->size >= sinfo->total_bytes)
+		sinfo->force_alloc = CHUNK_ALLOC_FORCE;
 	spin_unlock(&block_rsv->lock);
 	spin_unlock(&sinfo->lock);
 }
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/check-integrity.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/check-integrity.c
@@ -629,7 +629,6 @@
 static int btrfsic_process_superblock(struct btrfsic_state *state,
 				      struct btrfs_fs_devices *fs_devices)
 {
-	struct btrfs_fs_info *fs_info = state->fs_info;
 	struct btrfs_super_block *selected_super;
 	struct list_head *dev_head = &fs_devices->devices;
 	struct btrfs_device *device;
@@ -700,7 +699,7 @@
 			break;
 		}
 
-		num_copies = btrfs_num_copies(fs_info, next_bytenr,
+		num_copies = btrfs_num_copies(state->fs_info, next_bytenr,
 					      state->metablock_size);
 		if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
 			pr_info("num_copies(log_bytenr=%llu) = %d\n",
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/compression.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/compression.c
@@ -1158,7 +1158,7 @@
 	/* copy bytes from the working buffer into the pages */
 	while (working_bytes > 0) {
 		bytes = min_t(unsigned long, bvec.bv_len,
-				PAGE_SIZE - buf_offset);
+				PAGE_SIZE - (buf_offset % PAGE_SIZE));
 		bytes = min(bytes, working_bytes);
 
 		kaddr = kmap_atomic(bvec.bv_page);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/ctree.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/ctree.c
@@ -260,9 +260,12 @@
 		ret = btrfs_inc_ref(trans, root, cow, 1);
 	else
 		ret = btrfs_inc_ref(trans, root, cow, 0);
-
-	if (ret)
+	if (ret) {
+		btrfs_tree_unlock(cow);
+		free_extent_buffer(cow);
+		btrfs_abort_transaction(trans, ret);
 		return ret;
+	}
 
 	btrfs_mark_buffer_dirty(cow);
 	*cow_ret = cow;
@@ -330,12 +333,10 @@
 			   struct seq_list *elem)
 {
 	write_lock(&fs_info->tree_mod_log_lock);
-	spin_lock(&fs_info->tree_mod_seq_lock);
 	if (!elem->seq) {
 		elem->seq = btrfs_inc_tree_mod_seq(fs_info);
 		list_add_tail(&elem->list, &fs_info->tree_mod_seq_list);
 	}
-	spin_unlock(&fs_info->tree_mod_seq_lock);
 	write_unlock(&fs_info->tree_mod_log_lock);
 
 	return elem->seq;
@@ -355,7 +356,7 @@
 	if (!seq_putting)
 		return;
 
-	spin_lock(&fs_info->tree_mod_seq_lock);
+	write_lock(&fs_info->tree_mod_log_lock);
 	list_del(&elem->list);
 	elem->seq = 0;
 
@@ -366,24 +367,22 @@
 				 * blocker with lower sequence number exists, we
 				 * cannot remove anything from the log
 				 */
-				spin_unlock(&fs_info->tree_mod_seq_lock);
+				write_unlock(&fs_info->tree_mod_log_lock);
 				return;
 			}
 			min_seq = cur_elem->seq;
 		}
 	}
-	spin_unlock(&fs_info->tree_mod_seq_lock);
 
 	/*
 	 * anything that's lower than the lowest existing (read: blocked)
 	 * sequence number can be removed from the tree.
 	 */
-	write_lock(&fs_info->tree_mod_log_lock);
 	tm_root = &fs_info->tree_mod_log;
 	for (node = rb_first(tm_root); node; node = next) {
 		next = rb_next(node);
 		tm = rb_entry(node, struct tree_mod_elem, node);
-		if (tm->seq > min_seq)
+		if (tm->seq >= min_seq)
 			continue;
 		rb_erase(node, tm_root);
 		kfree(tm);
@@ -1107,6 +1106,8 @@
 
 	ret = update_ref_for_cow(trans, root, buf, cow, &last_ref);
 	if (ret) {
+		btrfs_tree_unlock(cow);
+		free_extent_buffer(cow);
 		btrfs_abort_transaction(trans, ret);
 		return ret;
 	}
@@ -1114,6 +1115,8 @@
 	if (test_bit(BTRFS_ROOT_REF_COWS, &root->state)) {
 		ret = btrfs_reloc_cow_block(trans, root, buf, cow);
 		if (ret) {
+			btrfs_tree_unlock(cow);
+			free_extent_buffer(cow);
 			btrfs_abort_transaction(trans, ret);
 			return ret;
 		}
@@ -1146,6 +1149,8 @@
 		if (last_ref) {
 			ret = tree_mod_log_free_eb(buf);
 			if (ret) {
+				btrfs_tree_unlock(cow);
+				free_extent_buffer(cow);
 				btrfs_abort_transaction(trans, ret);
 				return ret;
 			}
@@ -1343,6 +1348,8 @@
 	btrfs_tree_read_unlock_blocking(eb);
 	free_extent_buffer(eb);
 
+	btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb_rewin),
+				       eb_rewin, btrfs_header_level(eb_rewin));
 	btrfs_tree_read_lock(eb_rewin);
 	__tree_mod_log_rewind(fs_info, eb_rewin, time_seq, tm);
 	WARN_ON(btrfs_header_nritems(eb_rewin) >
@@ -1416,7 +1423,6 @@
 
 	if (!eb)
 		return NULL;
-	btrfs_tree_read_lock(eb);
 	if (old_root) {
 		btrfs_set_header_bytenr(eb, eb->start);
 		btrfs_set_header_backref_rev(eb, BTRFS_MIXED_BACKREF_REV);
@@ -1424,6 +1430,9 @@
 		btrfs_set_header_level(eb, old_root->level);
 		btrfs_set_header_generation(eb, old_generation);
 	}
+	btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), eb,
+				       btrfs_header_level(eb));
+	btrfs_tree_read_lock(eb);
 	if (tm)
 		__tree_mod_log_rewind(fs_info, eb, time_seq, tm);
 	else
@@ -3241,6 +3250,58 @@
 }
 
 /*
+ * Check key order of two sibling extent buffers.
+ *
+ * Return true if something is wrong.
+ * Return false if everything is fine.
+ *
+ * Tree-checker only works inside one tree block, thus the following
+ * corruption can not be detected by tree-checker:
+ *
+ * Leaf @left			| Leaf @right
+ * --------------------------------------------------------------
+ * | 1 | 2 | 3 | 4 | 5 | f6 |   | 7 | 8 |
+ *
+ * Key f6 in leaf @left itself is valid, but not valid when the next
+ * key in leaf @right is 7.
+ * This can only be checked at tree block merge time.
+ * And since tree checker has ensured all key order in each tree block
+ * is correct, we only need to bother the last key of @left and the first
+ * key of @right.
+ */
+static bool check_sibling_keys(struct extent_buffer *left,
+			       struct extent_buffer *right)
+{
+	struct btrfs_key left_last;
+	struct btrfs_key right_first;
+	int level = btrfs_header_level(left);
+	int nr_left = btrfs_header_nritems(left);
+	int nr_right = btrfs_header_nritems(right);
+
+	/* No key to check in one of the tree blocks */
+	if (!nr_left || !nr_right)
+		return false;
+
+	if (level) {
+		btrfs_node_key_to_cpu(left, &left_last, nr_left - 1);
+		btrfs_node_key_to_cpu(right, &right_first, 0);
+	} else {
+		btrfs_item_key_to_cpu(left, &left_last, nr_left - 1);
+		btrfs_item_key_to_cpu(right, &right_first, 0);
+	}
+
+	if (btrfs_comp_cpu_keys(&left_last, &right_first) >= 0) {
+		btrfs_crit(left->fs_info,
+"bad key order, sibling blocks, left last (%llu %u %llu) right first (%llu %u %llu)",
+			   left_last.objectid, left_last.type,
+			   left_last.offset, right_first.objectid,
+			   right_first.type, right_first.offset);
+		return true;
+	}
+	return false;
+}
+
+/*
  * try to push data from one node into the next node left in the
  * tree.
  *
@@ -3284,6 +3345,12 @@
 	} else
 		push_items = min(src_nritems - 8, push_items);
 
+	/* dst is the left eb, src is the middle eb */
+	if (check_sibling_keys(dst, src)) {
+		ret = -EUCLEAN;
+		btrfs_abort_transaction(trans, ret);
+		return ret;
+	}
 	ret = tree_mod_log_eb_copy(dst, src, dst_nritems, 0, push_items);
 	if (ret) {
 		btrfs_abort_transaction(trans, ret);
@@ -3352,6 +3419,12 @@
 	if (max_push < push_items)
 		push_items = max_push;
 
+	/* dst is the right eb, src is the middle eb */
+	if (check_sibling_keys(src, dst)) {
+		ret = -EUCLEAN;
+		btrfs_abort_transaction(trans, ret);
+		return ret;
+	}
 	ret = tree_mod_log_insert_move(dst, push_items, 0, dst_nritems);
 	BUG_ON(ret < 0);
 	memmove_extent_buffer(dst, btrfs_node_key_ptr_offset(push_items),
@@ -3830,6 +3903,12 @@
 	if (left_nritems == 0)
 		goto out_unlock;
 
+	if (check_sibling_keys(left, right)) {
+		ret = -EUCLEAN;
+		btrfs_tree_unlock(right);
+		free_extent_buffer(right);
+		return ret;
+	}
 	if (path->slots[0] == left_nritems && !empty) {
 		/* Key greater than all keys in the leaf, right neighbor has
 		 * enough room for it and we're not emptying our leaf to delete
@@ -4069,6 +4148,10 @@
 		goto out;
 	}
 
+	if (check_sibling_keys(left, right)) {
+		ret = -EUCLEAN;
+		goto out;
+	}
 	return __push_leaf_left(path, min_data_size,
 			       empty, left, free_space, right_nritems,
 			       max_slot);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/ctree.h
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/ctree.h
@@ -524,6 +524,9 @@
 	 * so we don't need to offload checksums to workqueues.
 	 */
 	BTRFS_FS_CSUM_IMPL_FAST,
+
+	/* Indicate that we can't trust the free space tree for caching yet */
+	BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED,
 };
 
 struct btrfs_fs_info {
@@ -671,14 +674,12 @@
 	atomic_t nr_delayed_iputs;
 	wait_queue_head_t delayed_iputs_wait;
 
-	/* this protects tree_mod_seq_list */
-	spinlock_t tree_mod_seq_lock;
 	atomic64_t tree_mod_seq;
-	struct list_head tree_mod_seq_list;
 
-	/* this protects tree_mod_log */
+	/* this protects tree_mod_log and tree_mod_seq_list */
 	rwlock_t tree_mod_log_lock;
 	struct rb_root tree_mod_log;
+	struct list_head tree_mod_seq_list;
 
 	atomic_t async_delalloc_pages;
 
@@ -942,6 +943,8 @@
 	BTRFS_ROOT_DEAD_RELOC_TREE,
 	/* Mark dead root stored on device whose cleanup needs to be resumed */
 	BTRFS_ROOT_DEAD_TREE,
+	/* The root has a log tree. Used only for subvolume roots. */
+	BTRFS_ROOT_HAS_LOG_TREE,
 };
 
 /*
@@ -990,8 +993,10 @@
 	wait_queue_head_t log_writer_wait;
 	wait_queue_head_t log_commit_wait[2];
 	struct list_head log_ctxs[2];
+	/* Used only for log trees of subvolumes, not for the log root tree */
 	atomic_t log_writers;
 	atomic_t log_commit[2];
+	/* Used only for log trees of subvolumes, not for the log root tree */
 	atomic_t log_batch;
 	int log_transid;
 	/* No matter the commit succeeds or not*/
@@ -2413,7 +2418,7 @@
 				    u64 bytenr, u64 num_bytes);
 int btrfs_exclude_logged_extents(struct extent_buffer *eb);
 int btrfs_cross_ref_exist(struct btrfs_root *root,
-			  u64 objectid, u64 offset, u64 bytenr);
+			  u64 objectid, u64 offset, u64 bytenr, bool strict);
 struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans,
 					     struct btrfs_root *root,
 					     u64 parent, u64 root_objectid,
@@ -2467,6 +2472,7 @@
 	BTRFS_RESERVE_FLUSH_LIMIT,
 	BTRFS_RESERVE_FLUSH_EVICT,
 	BTRFS_RESERVE_FLUSH_ALL,
+	BTRFS_RESERVE_FLUSH_ALL_STEAL,
 };
 
 enum btrfs_flush_state {
@@ -2785,7 +2791,7 @@
 /* file-item.c */
 struct btrfs_dio_private;
 int btrfs_del_csums(struct btrfs_trans_handle *trans,
-		    struct btrfs_fs_info *fs_info, u64 bytenr, u64 len);
+		    struct btrfs_root *root, u64 bytenr, u64 len);
 blk_status_t btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio,
 				   u8 *dst);
 blk_status_t btrfs_lookup_bio_sums_dio(struct inode *inode, struct bio *bio,
@@ -2818,7 +2824,7 @@
 					   u64 start, u64 len);
 noinline int can_nocow_extent(struct inode *inode, u64 offset, u64 *len,
 			      u64 *orig_start, u64 *orig_block_len,
-			      u64 *ram_bytes);
+			      u64 *ram_bytes, bool strict);
 
 void __btrfs_del_delalloc_inode(struct btrfs_root *root,
 				struct btrfs_inode *inode);
@@ -2953,6 +2959,8 @@
 loff_t btrfs_remap_file_range(struct file *file_in, loff_t pos_in,
 			      struct file *file_out, loff_t pos_out,
 			      loff_t len, unsigned int remap_flags);
+int btrfs_check_can_nocow(struct btrfs_inode *inode, loff_t pos,
+			  size_t *write_bytes);
 
 /* tree-defrag.c */
 int btrfs_defrag_leaves(struct btrfs_trans_handle *trans,
@@ -2962,6 +2970,8 @@
 int btrfs_parse_options(struct btrfs_fs_info *info, char *options,
 			unsigned long new_flags);
 int btrfs_sync_fs(struct super_block *sb, int wait);
+char *btrfs_get_subvol_name_from_objectid(struct btrfs_fs_info *fs_info,
+					  u64 subvol_objectid);
 
 static inline __printf(2, 3) __cold
 void btrfs_no_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...)
@@ -3109,17 +3119,21 @@
 	rcu_read_unlock();					\
 } while (0)
 
-__cold
-static inline void assfail(const char *expr, const char *file, int line)
+#ifdef CONFIG_BTRFS_ASSERT
+__cold __noreturn
+static inline void assertfail(const char *expr, const char *file, int line)
 {
-	if (IS_ENABLED(CONFIG_BTRFS_ASSERT)) {
-		pr_err("assertion failed: %s, in %s:%d\n", expr, file, line);
-		BUG();
-	}
+	pr_err("assertion failed: %s, in %s:%d\n", expr, file, line);
+	BUG();
 }
 
-#define ASSERT(expr)	\
-	(likely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__))
+#define ASSERT(expr)						\
+	(likely(expr) ? (void)0 : assertfail(#expr, __FILE__, __LINE__))
+
+#else
+static inline void assertfail(const char *expr, const char* file, int line) { }
+#define ASSERT(expr)	(void)(expr)
+#endif
 
 /*
  * Use that for functions that are conditionally exported for sanity tests but
@@ -3159,7 +3173,7 @@
 	/* Report first abort since mount */			\
 	if (!test_and_set_bit(BTRFS_FS_STATE_TRANS_ABORTED,	\
 			&((trans)->fs_info->fs_state))) {	\
-		if ((errno) != -EIO) {				\
+		if ((errno) != -EIO && (errno) != -EROFS) {		\
 			WARN(1, KERN_DEBUG				\
 			"BTRFS: Transaction aborted (error %d)\n",	\
 			(errno));					\
@@ -3393,6 +3407,8 @@
 int btrfs_reada_wait(void *handle);
 void btrfs_reada_detach(void *handle);
 int btree_readahead_hook(struct extent_buffer *eb, int err);
+void btrfs_reada_remove_dev(struct btrfs_device *dev);
+void btrfs_reada_undo_remove_dev(struct btrfs_device *dev);
 
 static inline int is_fstree(u64 rootid)
 {
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/delayed-inode.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/delayed-inode.c
@@ -6,6 +6,7 @@
 
 #include <linux/slab.h>
 #include <linux/iversion.h>
+#include <linux/sched/mm.h>
 #include "misc.h"
 #include "delayed-inode.h"
 #include "disk-io.h"
@@ -626,8 +627,7 @@
 	 */
 	if (!src_rsv || (!trans->bytes_reserved &&
 			 src_rsv->type != BTRFS_BLOCK_RSV_DELALLOC)) {
-		ret = btrfs_qgroup_reserve_meta_prealloc(root,
-				fs_info->nodesize, true);
+		ret = btrfs_qgroup_reserve_meta_prealloc(root, num_bytes, true);
 		if (ret < 0)
 			return ret;
 		ret = btrfs_block_rsv_add(root, dst_rsv, num_bytes,
@@ -649,7 +649,7 @@
 						      btrfs_ino(inode),
 						      num_bytes, 1);
 		} else {
-			btrfs_qgroup_free_meta_prealloc(root, fs_info->nodesize);
+			btrfs_qgroup_free_meta_prealloc(root, num_bytes);
 		}
 		return ret;
 	}
@@ -804,11 +804,14 @@
 				     struct btrfs_delayed_item *delayed_item)
 {
 	struct extent_buffer *leaf;
+	unsigned int nofs_flag;
 	char *ptr;
 	int ret;
 
+	nofs_flag = memalloc_nofs_save();
 	ret = btrfs_insert_empty_item(trans, root, path, &delayed_item->key,
 				      delayed_item->data_len);
+	memalloc_nofs_restore(nofs_flag);
 	if (ret < 0 && ret != -EEXIST)
 		return ret;
 
@@ -936,6 +939,7 @@
 				      struct btrfs_delayed_node *node)
 {
 	struct btrfs_delayed_item *curr, *prev;
+	unsigned int nofs_flag;
 	int ret = 0;
 
 do_again:
@@ -944,7 +948,9 @@
 	if (!curr)
 		goto delete_fail;
 
+	nofs_flag = memalloc_nofs_save();
 	ret = btrfs_search_slot(trans, root, &curr->key, path, -1, 1);
+	memalloc_nofs_restore(nofs_flag);
 	if (ret < 0)
 		goto delete_fail;
 	else if (ret > 0) {
@@ -1011,6 +1017,7 @@
 	struct btrfs_key key;
 	struct btrfs_inode_item *inode_item;
 	struct extent_buffer *leaf;
+	unsigned int nofs_flag;
 	int mod;
 	int ret;
 
@@ -1023,7 +1030,9 @@
 	else
 		mod = 1;
 
+	nofs_flag = memalloc_nofs_save();
 	ret = btrfs_lookup_inode(trans, root, path, &key, mod);
+	memalloc_nofs_restore(nofs_flag);
 	if (ret > 0) {
 		btrfs_release_path(path);
 		return -ENOENT;
@@ -1074,7 +1083,10 @@
 
 	key.type = BTRFS_INODE_EXTREF_KEY;
 	key.offset = -1;
+
+	nofs_flag = memalloc_nofs_save();
 	ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
+	memalloc_nofs_restore(nofs_flag);
 	if (ret < 0)
 		goto err_out;
 	ASSERT(ret);
@@ -1138,7 +1150,7 @@
 	int ret = 0;
 	bool count = (nr > 0);
 
-	if (trans->aborted)
+	if (TRANS_ABORTED(trans))
 		return -EIO;
 
 	path = btrfs_alloc_path();
@@ -1367,8 +1379,8 @@
 		return -ENOMEM;
 
 	async_work->delayed_root = delayed_root;
-	btrfs_init_work(&async_work->work, btrfs_delayed_meta_helper,
-			btrfs_async_run_delayed_root, NULL, NULL);
+	btrfs_init_work(&async_work->work, btrfs_async_run_delayed_root, NULL,
+			NULL);
 	async_work->nr = nr;
 
 	btrfs_queue_work(fs_info->delayed_workers, &async_work->work);
@@ -1949,12 +1961,19 @@
 		}
 
 		inode_id = delayed_nodes[n - 1]->inode_id + 1;
-
-		for (i = 0; i < n; i++)
-			refcount_inc(&delayed_nodes[i]->refs);
+		for (i = 0; i < n; i++) {
+			/*
+			 * Don't increase refs in case the node is dead and
+			 * about to be removed from the tree in the loop below
+			 */
+			if (!refcount_inc_not_zero(&delayed_nodes[i]->refs))
+				delayed_nodes[i] = NULL;
+		}
 		spin_unlock(&root->inode_lock);
 
 		for (i = 0; i < n; i++) {
+			if (!delayed_nodes[i])
+				continue;
 			__btrfs_kill_delayed_node(delayed_nodes[i]);
 			btrfs_release_delayed_node(delayed_nodes[i]);
 		}
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/delayed-ref.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/delayed-ref.c
@@ -492,7 +492,7 @@
 	if (head->is_data)
 		return;
 
-	spin_lock(&fs_info->tree_mod_seq_lock);
+	read_lock(&fs_info->tree_mod_log_lock);
 	if (!list_empty(&fs_info->tree_mod_seq_list)) {
 		struct seq_list *elem;
 
@@ -500,7 +500,7 @@
 					struct seq_list, list);
 		seq = elem->seq;
 	}
-	spin_unlock(&fs_info->tree_mod_seq_lock);
+	read_unlock(&fs_info->tree_mod_log_lock);
 
 again:
 	for (node = rb_first_cached(&head->ref_tree); node;
@@ -518,7 +518,7 @@
 	struct seq_list *elem;
 	int ret = 0;
 
-	spin_lock(&fs_info->tree_mod_seq_lock);
+	read_lock(&fs_info->tree_mod_log_lock);
 	if (!list_empty(&fs_info->tree_mod_seq_list)) {
 		elem = list_first_entry(&fs_info->tree_mod_seq_list,
 					struct seq_list, list);
@@ -531,7 +531,7 @@
 		}
 	}
 
-	spin_unlock(&fs_info->tree_mod_seq_lock);
+	read_unlock(&fs_info->tree_mod_log_lock);
 	return ret;
 }
 
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/dev-replace.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/dev-replace.c
@@ -55,6 +55,17 @@
 	ret = btrfs_search_slot(NULL, dev_root, &key, path, 0, 0);
 	if (ret) {
 no_valid_dev_replace_entry_found:
+		/*
+		 * We don't have a replace item or it's corrupted.  If there is
+		 * a replace target, fail the mount.
+		 */
+		if (btrfs_find_device(fs_info->fs_devices,
+				      BTRFS_DEV_REPLACE_DEVID, NULL, NULL, false)) {
+			btrfs_err(fs_info,
+			"found replace target device without a valid replace item");
+			ret = -EUCLEAN;
+			goto out;
+		}
 		ret = 0;
 		dev_replace->replace_state =
 			BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED;
@@ -107,8 +118,19 @@
 	case BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED:
 	case BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED:
 	case BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED:
-		dev_replace->srcdev = NULL;
-		dev_replace->tgtdev = NULL;
+		/*
+		 * We don't have an active replace item but if there is a
+		 * replace target, fail the mount.
+		 */
+		if (btrfs_find_device(fs_info->fs_devices,
+				      BTRFS_DEV_REPLACE_DEVID, NULL, NULL, false)) {
+			btrfs_err(fs_info,
+			"replace devid present without an active replace item");
+			ret = -EUCLEAN;
+		} else {
+			dev_replace->srcdev = NULL;
+			dev_replace->tgtdev = NULL;
+		}
 		break;
 	case BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED:
 	case BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED:
@@ -190,7 +212,7 @@
 	int ret = 0;
 
 	*device_out = NULL;
-	if (fs_info->fs_devices->seeding) {
+	if (srcdev->fs_devices->seeding) {
 		btrfs_err(fs_info, "the filesystem is a seed filesystem!");
 		return -EINVAL;
 	}
@@ -562,6 +584,37 @@
 	wake_up(&fs_info->dev_replace.replace_wait);
 }
 
+/*
+ * When finishing the device replace, before swapping the source device with the
+ * target device we must update the chunk allocation state in the target device,
+ * as it is empty because replace works by directly copying the chunks and not
+ * through the normal chunk allocation path.
+ */
+static int btrfs_set_target_alloc_state(struct btrfs_device *srcdev,
+					struct btrfs_device *tgtdev)
+{
+	struct extent_state *cached_state = NULL;
+	u64 start = 0;
+	u64 found_start;
+	u64 found_end;
+	int ret = 0;
+
+	lockdep_assert_held(&srcdev->fs_info->chunk_mutex);
+
+	while (!find_first_extent_bit(&srcdev->alloc_state, start,
+				      &found_start, &found_end,
+				      CHUNK_ALLOCATED, &cached_state)) {
+		ret = set_extent_bits(&tgtdev->alloc_state, found_start,
+				      found_end, CHUNK_ALLOCATED);
+		if (ret)
+			break;
+		start = found_end + 1;
+	}
+
+	free_extent_state(cached_state);
+	return ret;
+}
+
 static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
 				       int scrub_ret)
 {
@@ -600,6 +653,9 @@
 	}
 	btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
 
+	if (!scrub_ret)
+		btrfs_reada_remove_dev(src_device);
+
 	/*
 	 * We have to use this loop approach because at this point src_device
 	 * has to be available for transaction commit to complete, yet new
@@ -608,6 +664,7 @@
 	while (1) {
 		trans = btrfs_start_transaction(root, 0);
 		if (IS_ERR(trans)) {
+			btrfs_reada_undo_remove_dev(src_device);
 			mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
 			return PTR_ERR(trans);
 		}
@@ -636,8 +693,14 @@
 	dev_replace->time_stopped = ktime_get_real_seconds();
 	dev_replace->item_needs_writeback = 1;
 
-	/* replace old device with new one in mapping tree */
+	/*
+	 * Update allocation state in the new device and replace the old device
+	 * with the new one in the mapping tree.
+	 */
 	if (!scrub_ret) {
+		scrub_ret = btrfs_set_target_alloc_state(src_device, tgt_device);
+		if (scrub_ret)
+			goto error;
 		btrfs_dev_replace_update_device_in_mapping_tree(fs_info,
 								src_device,
 								tgt_device);
@@ -648,9 +711,11 @@
 				 btrfs_dev_name(src_device),
 				 src_device->devid,
 				 rcu_str_deref(tgt_device->name), scrub_ret);
+error:
 		up_write(&dev_replace->rwsem);
 		mutex_unlock(&fs_info->chunk_mutex);
 		mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+		btrfs_reada_undo_remove_dev(src_device);
 		btrfs_rm_dev_replace_blocked(fs_info);
 		if (tgt_device)
 			btrfs_destroy_dev_replace_tgtdev(tgt_device);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/disk-io.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/disk-io.c
@@ -649,16 +649,15 @@
 		goto err;
 
 	if (memcmp_extent_buffer(eb, result, 0, csum_size)) {
-		u32 val;
-		u32 found = 0;
-
-		memcpy(&found, result, csum_size);
+		u8 val[BTRFS_CSUM_SIZE] = { 0 };
 
 		read_extent_buffer(eb, &val, 0, csum_size);
 		btrfs_warn_rl(fs_info,
-		"%s checksum verify failed on %llu wanted %x found %x level %d",
+	"%s checksum verify failed on %llu wanted " CSUM_FMT " found " CSUM_FMT " level %d",
 			      fs_info->sb->s_id, eb->start,
-			      val, found, btrfs_header_level(eb));
+			      CSUM_FMT_VALUE(csum_size, val),
+			      CSUM_FMT_VALUE(csum_size, result),
+			      btrfs_header_level(eb));
 		ret = -EUCLEAN;
 		goto err;
 	}
@@ -706,43 +705,31 @@
 	struct btrfs_end_io_wq *end_io_wq = bio->bi_private;
 	struct btrfs_fs_info *fs_info;
 	struct btrfs_workqueue *wq;
-	btrfs_work_func_t func;
 
 	fs_info = end_io_wq->info;
 	end_io_wq->status = bio->bi_status;
 
 	if (bio_op(bio) == REQ_OP_WRITE) {
-		if (end_io_wq->metadata == BTRFS_WQ_ENDIO_METADATA) {
+		if (end_io_wq->metadata == BTRFS_WQ_ENDIO_METADATA)
 			wq = fs_info->endio_meta_write_workers;
-			func = btrfs_endio_meta_write_helper;
-		} else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_FREE_SPACE) {
+		else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_FREE_SPACE)
 			wq = fs_info->endio_freespace_worker;
-			func = btrfs_freespace_write_helper;
-		} else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56) {
+		else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56)
 			wq = fs_info->endio_raid56_workers;
-			func = btrfs_endio_raid56_helper;
-		} else {
+		else
 			wq = fs_info->endio_write_workers;
-			func = btrfs_endio_write_helper;
-		}
 	} else {
-		if (unlikely(end_io_wq->metadata ==
-			     BTRFS_WQ_ENDIO_DIO_REPAIR)) {
+		if (unlikely(end_io_wq->metadata == BTRFS_WQ_ENDIO_DIO_REPAIR))
 			wq = fs_info->endio_repair_workers;
-			func = btrfs_endio_repair_helper;
-		} else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56) {
+		else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56)
 			wq = fs_info->endio_raid56_workers;
-			func = btrfs_endio_raid56_helper;
-		} else if (end_io_wq->metadata) {
+		else if (end_io_wq->metadata)
 			wq = fs_info->endio_meta_workers;
-			func = btrfs_endio_meta_helper;
-		} else {
+		else
 			wq = fs_info->endio_workers;
-			func = btrfs_endio_helper;
-		}
 	}
 
-	btrfs_init_work(&end_io_wq->work, func, end_workqueue_fn, NULL, NULL);
+	btrfs_init_work(&end_io_wq->work, end_workqueue_fn, NULL, NULL);
 	btrfs_queue_work(wq, &end_io_wq->work);
 }
 
@@ -835,8 +822,8 @@
 	async->mirror_num = mirror_num;
 	async->submit_bio_start = submit_bio_start;
 
-	btrfs_init_work(&async->work, btrfs_worker_helper, run_one_async_start,
-			run_one_async_done, run_one_async_free);
+	btrfs_init_work(&async->work, run_one_async_start, run_one_async_done,
+			run_one_async_free);
 
 	async->bio_offset = bio_offset;
 
@@ -1487,9 +1474,16 @@
 	spin_lock_init(&root->ino_cache_lock);
 	init_waitqueue_head(&root->ino_cache_wait);
 
-	ret = get_anon_bdev(&root->anon_dev);
-	if (ret)
-		goto fail;
+	/*
+	 * Don't assign anonymous block device to roots that are not exposed to
+	 * userspace, the id pool is limited to 1M
+	 */
+	if (is_fstree(root->root_key.objectid) &&
+	    btrfs_root_refs(&root->root_item) > 0) {
+		ret = get_anon_bdev(&root->anon_dev);
+		if (ret)
+			goto fail;
+	}
 
 	mutex_lock(&root->objectid_mutex);
 	ret = btrfs_find_highest_objectid(root,
@@ -1657,8 +1651,8 @@
 	bio->bi_status = end_io_wq->status;
 	bio->bi_private = end_io_wq->private;
 	bio->bi_end_io = end_io_wq->end_io;
-	kmem_cache_free(btrfs_end_io_wq_cache, end_io_wq);
 	bio_endio(bio);
+	kmem_cache_free(btrfs_end_io_wq_cache, end_io_wq);
 }
 
 static int cleaner_kthread(void *arg)
@@ -2028,7 +2022,7 @@
 }
 
 /* helper to cleanup tree roots */
-static void free_root_pointers(struct btrfs_fs_info *info, int chunk_root)
+static void free_root_pointers(struct btrfs_fs_info *info, bool free_chunk_root)
 {
 	free_root_extent_buffers(info->tree_root);
 
@@ -2037,7 +2031,7 @@
 	free_root_extent_buffers(info->csum_root);
 	free_root_extent_buffers(info->quota_root);
 	free_root_extent_buffers(info->uuid_root);
-	if (chunk_root)
+	if (free_chunk_root)
 		free_root_extent_buffers(info->chunk_root);
 	free_root_extent_buffers(info->free_space_root);
 }
@@ -2664,7 +2658,6 @@
 	spin_lock_init(&fs_info->fs_roots_radix_lock);
 	spin_lock_init(&fs_info->delayed_iput_lock);
 	spin_lock_init(&fs_info->defrag_inodes_lock);
-	spin_lock_init(&fs_info->tree_mod_seq_lock);
 	spin_lock_init(&fs_info->super_lock);
 	spin_lock_init(&fs_info->buffer_lock);
 	spin_lock_init(&fs_info->unused_bgs_lock);
@@ -3070,6 +3063,18 @@
 	fs_info->generation = generation;
 	fs_info->last_trans_committed = generation;
 
+	/*
+	 * If we have a uuid root and we're not being told to rescan we need to
+	 * check the generation here so we can set the
+	 * BTRFS_FS_UPDATE_UUID_TREE_GEN bit.  Otherwise we could commit the
+	 * transaction during a balance or the log replay without updating the
+	 * uuid generation, and then if we crash we would rescan the uuid tree,
+	 * even though it was perfectly fine.
+	 */
+	if (fs_info->uuid_root && !btrfs_test_opt(fs_info, RESCAN_UUID_TREE) &&
+	    fs_info->generation == btrfs_super_uuid_tree_generation(disk_super))
+		set_bit(BTRFS_FS_UPDATE_UUID_TREE_GEN, &fs_info->flags);
+
 	ret = btrfs_verify_dev_extents(fs_info);
 	if (ret) {
 		btrfs_err(fs_info,
@@ -3180,6 +3185,7 @@
 	/* do not make disk changes in broken FS or nologreplay is given */
 	if (btrfs_super_log_root(disk_super) != 0 &&
 	    !btrfs_test_opt(fs_info, NOLOGREPLAY)) {
+		btrfs_info(fs_info, "start tree-log replay");
 		ret = btrfs_replay_log(fs_info, fs_devices);
 		if (ret) {
 			err = ret;
@@ -3215,6 +3221,7 @@
 	if (IS_ERR(fs_info->fs_root)) {
 		err = PTR_ERR(fs_info->fs_root);
 		btrfs_warn(fs_info, "failed to read fs tree: %d", err);
+		fs_info->fs_root = NULL;
 		goto fail_qgroup;
 	}
 
@@ -3298,8 +3305,6 @@
 			close_ctree(fs_info);
 			return ret;
 		}
-	} else {
-		set_bit(BTRFS_FS_UPDATE_UUID_TREE_GEN, &fs_info->flags);
 	}
 	set_bit(BTRFS_FS_OPEN, &fs_info->flags);
 
@@ -3336,7 +3341,7 @@
 	btrfs_put_block_group_cache(fs_info);
 
 fail_tree_roots:
-	free_root_pointers(fs_info, 1);
+	free_root_pointers(fs_info, true);
 	invalidate_inode_pages2(fs_info->btree_inode->i_mapping);
 
 fail_sb_buffer:
@@ -3368,7 +3373,7 @@
 	if (!btrfs_test_opt(fs_info, USEBACKUPROOT))
 		goto fail_tree_roots;
 
-	free_root_pointers(fs_info, 0);
+	free_root_pointers(fs_info, false);
 
 	/* don't use the log in recovery mode, it won't be valid */
 	btrfs_set_super_log_root(disk_super, 0);
@@ -4018,6 +4023,19 @@
 		 */
 		btrfs_delete_unused_bgs(fs_info);
 
+		/*
+		 * There might be existing delayed inode workers still running
+		 * and holding an empty delayed inode item. We must wait for
+		 * them to complete first because they can create a transaction.
+		 * This happens when someone calls btrfs_balance_delayed_items()
+		 * and then a transaction commit runs the same delayed nodes
+		 * before any delayed worker has done something with the nodes.
+		 * We must wait for any worker here and not at transaction
+		 * commit time since that could cause a deadlock.
+		 * This is a very rare case.
+		 */
+		btrfs_flush_workqueue(fs_info->delayed_workers);
+
 		ret = btrfs_commit_super(fs_info);
 		if (ret)
 			btrfs_err(fs_info, "commit super ret %d", ret);
@@ -4059,10 +4077,17 @@
 	invalidate_inode_pages2(fs_info->btree_inode->i_mapping);
 	btrfs_stop_all_workers(fs_info);
 
-	btrfs_free_block_groups(fs_info);
-
 	clear_bit(BTRFS_FS_OPEN, &fs_info->flags);
-	free_root_pointers(fs_info, 1);
+	free_root_pointers(fs_info, true);
+
+	/*
+	 * We must free the block groups after dropping the fs_roots as we could
+	 * have had an IO error and have left over tree log blocks that aren't
+	 * cleaned up until the fs roots are freed.  This makes the block group
+	 * accounting appear to be wrong because there's pending reserved bytes,
+	 * so make sure we do the block group cleanup afterwards.
+	 */
+	btrfs_free_block_groups(fs_info);
 
 	iput(fs_info->btree_inode);
 
@@ -4298,6 +4323,7 @@
 		cond_resched();
 		spin_lock(&delayed_refs->lock);
 	}
+	btrfs_qgroup_destroy_extent_records(trans);
 
 	spin_unlock(&delayed_refs->lock);
 
@@ -4450,6 +4476,7 @@
 		cache->io_ctl.inode = NULL;
 		iput(inode);
 	}
+	ASSERT(cache->io_ctl.pages == NULL);
 	btrfs_put_block_group(cache);
 }
 
@@ -4523,7 +4550,6 @@
 	wake_up(&fs_info->transaction_wait);
 
 	btrfs_destroy_delayed_inodes(fs_info);
-	btrfs_assert_delayed_root_empty(fs_info);
 
 	btrfs_destroy_marked_extents(fs_info, &cur_trans->dirty_pages,
 				     EXTENT_DIRTY);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/export.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/export.c
@@ -57,9 +57,9 @@
 	return type;
 }
 
-static struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,
-				       u64 root_objectid, u32 generation,
-				       int check_generation)
+struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,
+				u64 root_objectid, u32 generation,
+				int check_generation)
 {
 	struct btrfs_fs_info *fs_info = btrfs_sb(sb);
 	struct btrfs_root *root;
@@ -152,7 +152,7 @@
 	return btrfs_get_dentry(sb, objectid, root_objectid, generation, 1);
 }
 
-static struct dentry *btrfs_get_parent(struct dentry *child)
+struct dentry *btrfs_get_parent(struct dentry *child)
 {
 	struct inode *dir = d_inode(child);
 	struct btrfs_fs_info *fs_info = btrfs_sb(dir->i_sb);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/export.h
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/export.h
@@ -18,4 +18,9 @@
 	u64 parent_root_objectid;
 } __attribute__ ((packed));
 
+struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,
+				u64 root_objectid, u32 generation,
+				int check_generation);
+struct dentry *btrfs_get_parent(struct dentry *child);
+
 #endif
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/extent-tree.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/extent-tree.c
@@ -32,6 +32,7 @@
 #include "block-rsv.h"
 #include "delalloc-space.h"
 #include "block-group.h"
+#include "rcu-string.h"
 
 #undef SCRAMBLE_DELAYED_REFS
 
@@ -402,12 +403,11 @@
 			if (type == BTRFS_SHARED_BLOCK_REF_KEY) {
 				ASSERT(eb->fs_info);
 				/*
-				 * Every shared one has parent tree
-				 * block, which must be aligned to
-				 * nodesize.
+				 * Every shared one has parent tree block,
+				 * which must be aligned to sector size.
 				 */
 				if (offset &&
-				    IS_ALIGNED(offset, eb->fs_info->nodesize))
+				    IS_ALIGNED(offset, eb->fs_info->sectorsize))
 					return type;
 			}
 		} else if (is_data == BTRFS_REF_TYPE_DATA) {
@@ -416,12 +416,11 @@
 			if (type == BTRFS_SHARED_DATA_REF_KEY) {
 				ASSERT(eb->fs_info);
 				/*
-				 * Every shared one has parent tree
-				 * block, which must be aligned to
-				 * nodesize.
+				 * Every shared one has parent tree block,
+				 * which must be aligned to sector size.
 				 */
 				if (offset &&
-				    IS_ALIGNED(offset, eb->fs_info->nodesize))
+				    IS_ALIGNED(offset, eb->fs_info->sectorsize))
 					return type;
 			}
 		} else {
@@ -431,8 +430,9 @@
 	}
 
 	btrfs_print_leaf((struct extent_buffer *)eb);
-	btrfs_err(eb->fs_info, "eb %llu invalid extent inline ref type %d",
-		  eb->start, type);
+	btrfs_err(eb->fs_info,
+		  "eb %llu iref 0x%lx invalid extent inline ref type %d",
+		  eb->start, (unsigned long)iref, type);
 	WARN_ON(1);
 
 	return BTRFS_REF_TYPE_INVALID;
@@ -1180,7 +1180,22 @@
 					   num_bytes, parent, root_objectid,
 					   owner, offset, 1);
 	if (ret == 0) {
-		BUG_ON(owner < BTRFS_FIRST_FREE_OBJECTID);
+		/*
+		 * We're adding refs to a tree block we already own, this
+		 * should not happen at all.
+		 */
+		if (owner < BTRFS_FIRST_FREE_OBJECTID) {
+			btrfs_crit(trans->fs_info,
+"adding refs to an existing tree ref, bytenr %llu num_bytes %llu root_objectid %llu",
+				   bytenr, num_bytes, root_objectid);
+			if (IS_ENABLED(CONFIG_BTRFS_DEBUG)) {
+				WARN_ON(1);
+				btrfs_crit(trans->fs_info,
+			"path->slots[0]=%d path->nodes[0]:", path->slots[0]);
+				btrfs_print_leaf(path->nodes[0]);
+			}
+			return -EUCLEAN;
+		}
 		update_inline_extent_backref(path, iref, refs_to_add,
 					     extent_op, NULL);
 	} else if (ret == -ENOENT) {
@@ -1306,8 +1321,10 @@
 int btrfs_discard_extent(struct btrfs_fs_info *fs_info, u64 bytenr,
 			 u64 num_bytes, u64 *actual_bytes)
 {
-	int ret;
+	int ret = 0;
 	u64 discarded_bytes = 0;
+	u64 end = bytenr + num_bytes;
+	u64 cur = bytenr;
 	struct btrfs_bio *bbio = NULL;
 
 
@@ -1316,15 +1333,23 @@
 	 * associated to its stripes that don't go away while we are discarding.
 	 */
 	btrfs_bio_counter_inc_blocked(fs_info);
-	/* Tell the block device(s) that the sectors can be discarded */
-	ret = btrfs_map_block(fs_info, BTRFS_MAP_DISCARD, bytenr, &num_bytes,
-			      &bbio, 0);
-	/* Error condition is -ENOMEM */
-	if (!ret) {
-		struct btrfs_bio_stripe *stripe = bbio->stripes;
+	while (cur < end) {
+		struct btrfs_bio_stripe *stripe;
 		int i;
 
+		num_bytes = end - cur;
+		/* Tell the block device(s) that the sectors can be discarded */
+		ret = btrfs_map_block(fs_info, BTRFS_MAP_DISCARD, cur,
+				      &num_bytes, &bbio, 0);
+		/*
+		 * Error can be -ENOMEM, -ENOENT (no such chunk mapping) or
+		 * -EOPNOTSUPP. For any such error, @num_bytes is not updated,
+		 * thus we can't continue anyway.
+		 */
+		if (ret < 0)
+			goto out;
 
+		stripe = bbio->stripes;
 		for (i = 0; i < bbio->num_stripes; i++, stripe++) {
 			u64 bytes;
 			struct request_queue *req_q;
@@ -1341,10 +1366,19 @@
 						  stripe->physical,
 						  stripe->length,
 						  &bytes);
-			if (!ret)
+			if (!ret) {
 				discarded_bytes += bytes;
-			else if (ret != -EOPNOTSUPP)
-				break; /* Logic errors or -ENOMEM, or -EIO but I don't know how that could happen JDM */
+			} else if (ret != -EOPNOTSUPP) {
+				/*
+				 * Logic errors or -ENOMEM, or -EIO, but
+				 * unlikely to happen.
+				 *
+				 * And since there are two loops, explicitly
+				 * go to out to avoid confusion.
+				 */
+				btrfs_put_bbio(bbio);
+				goto out;
+			}
 
 			/*
 			 * Just in case we get back EOPNOTSUPP for some reason,
@@ -1354,7 +1388,9 @@
 			ret = 0;
 		}
 		btrfs_put_bbio(bbio);
+		cur += num_bytes;
 	}
+out:
 	btrfs_bio_counter_dec(fs_info);
 
 	if (actual_bytes)
@@ -1397,6 +1433,9 @@
 /*
  * __btrfs_inc_extent_ref - insert backreference for a given extent
  *
+ * The counterpart is in __btrfs_free_extent(), with examples and more details
+ * how it works.
+ *
  * @trans:	    Handle of transaction
  *
  * @node:	    The delayed ref node used to get the bytenr/length for
@@ -1561,7 +1600,7 @@
 	int err = 0;
 	int metadata = !extent_op->is_data;
 
-	if (trans->aborted)
+	if (TRANS_ABORTED(trans))
 		return 0;
 
 	if (metadata && !btrfs_fs_incompat(fs_info, SKINNY_METADATA))
@@ -1681,7 +1720,7 @@
 {
 	int ret = 0;
 
-	if (trans->aborted) {
+	if (TRANS_ABORTED(trans)) {
 		if (insert_reserved)
 			btrfs_pin_extent(trans->fs_info, node->bytenr,
 					 node->num_bytes, 1);
@@ -1848,8 +1887,8 @@
 		btrfs_pin_extent(fs_info, head->bytenr,
 				 head->num_bytes, 1);
 		if (head->is_data) {
-			ret = btrfs_del_csums(trans, fs_info, head->bytenr,
-					      head->num_bytes);
+			ret = btrfs_del_csums(trans, fs_info->csum_root,
+					      head->bytenr, head->num_bytes);
 		}
 	}
 
@@ -2169,7 +2208,7 @@
 	int run_all = count == (unsigned long)-1;
 
 	/* We'll clean this up in btrfs_cleanup_transaction */
-	if (trans->aborted)
+	if (TRANS_ABORTED(trans))
 		return 0;
 
 	if (test_bit(BTRFS_FS_CREATING_FREE_SPACE_TREE, &fs_info->flags))
@@ -2320,7 +2359,8 @@
 
 static noinline int check_committed_ref(struct btrfs_root *root,
 					struct btrfs_path *path,
-					u64 objectid, u64 offset, u64 bytenr)
+					u64 objectid, u64 offset, u64 bytenr,
+					bool strict)
 {
 	struct btrfs_fs_info *fs_info = root->fs_info;
 	struct btrfs_root *extent_root = fs_info->extent_root;
@@ -2362,9 +2402,13 @@
 	    btrfs_extent_inline_ref_size(BTRFS_EXTENT_DATA_REF_KEY))
 		goto out;
 
-	/* If extent created before last snapshot => it's definitely shared */
-	if (btrfs_extent_generation(leaf, ei) <=
-	    btrfs_root_last_snapshot(&root->root_item))
+	/*
+	 * If extent created before last snapshot => it's shared unless the
+	 * snapshot has been deleted. Use the heuristic if strict is false.
+	 */
+	if (!strict &&
+	    (btrfs_extent_generation(leaf, ei) <=
+	     btrfs_root_last_snapshot(&root->root_item)))
 		goto out;
 
 	iref = (struct btrfs_extent_inline_ref *)(ei + 1);
@@ -2389,7 +2433,7 @@
 }
 
 int btrfs_cross_ref_exist(struct btrfs_root *root, u64 objectid, u64 offset,
-			  u64 bytenr)
+			  u64 bytenr, bool strict)
 {
 	struct btrfs_path *path;
 	int ret;
@@ -2400,7 +2444,7 @@
 
 	do {
 		ret = check_committed_ref(root, path, objectid,
-					  offset, bytenr);
+					  offset, bytenr, strict);
 		if (ret && ret != -ENOENT)
 			goto out;
 
@@ -2813,10 +2857,10 @@
 		len = cache->key.objectid + cache->key.offset - start;
 		len = min(len, end + 1 - start);
 
-		if (start < cache->last_byte_to_unpin) {
-			len = min(len, cache->last_byte_to_unpin - start);
-			if (return_free_space)
-				btrfs_add_free_space(cache, start, len);
+		if (start < cache->last_byte_to_unpin && return_free_space) {
+			u64 add_len = min(len, cache->last_byte_to_unpin - start);
+
+			btrfs_add_free_space(cache, start, add_len);
 		}
 
 		start += len;
@@ -2892,7 +2936,7 @@
 	else
 		unpin = &fs_info->freed_extents[0];
 
-	while (!trans->aborted) {
+	while (!TRANS_ABORTED(trans)) {
 		struct extent_state *cached_state = NULL;
 
 		mutex_lock(&fs_info->unused_bg_unpin_mutex);
@@ -2924,7 +2968,7 @@
 		u64 trimmed = 0;
 
 		ret = -EROFS;
-		if (!trans->aborted)
+		if (!TRANS_ABORTED(trans))
 			ret = btrfs_discard_extent(fs_info,
 						   block_group->key.objectid,
 						   block_group->key.offset,
@@ -2945,6 +2989,65 @@
 	return 0;
 }
 
+/*
+ * Drop one or more refs of @node.
+ *
+ * 1. Locate the extent refs.
+ *    It's either inline in EXTENT/METADATA_ITEM or in keyed SHARED_* item.
+ *    Locate it, then reduce the refs number or remove the ref line completely.
+ *
+ * 2. Update the refs count in EXTENT/METADATA_ITEM
+ *
+ * Inline backref case:
+ *
+ * in extent tree we have:
+ *
+ * 	item 0 key (13631488 EXTENT_ITEM 1048576) itemoff 16201 itemsize 82
+ *		refs 2 gen 6 flags DATA
+ *		extent data backref root FS_TREE objectid 258 offset 0 count 1
+ *		extent data backref root FS_TREE objectid 257 offset 0 count 1
+ *
+ * This function gets called with:
+ *
+ *    node->bytenr = 13631488
+ *    node->num_bytes = 1048576
+ *    root_objectid = FS_TREE
+ *    owner_objectid = 257
+ *    owner_offset = 0
+ *    refs_to_drop = 1
+ *
+ * Then we should get some like:
+ *
+ * 	item 0 key (13631488 EXTENT_ITEM 1048576) itemoff 16201 itemsize 82
+ *		refs 1 gen 6 flags DATA
+ *		extent data backref root FS_TREE objectid 258 offset 0 count 1
+ *
+ * Keyed backref case:
+ *
+ * in extent tree we have:
+ *
+ *	item 0 key (13631488 EXTENT_ITEM 1048576) itemoff 3971 itemsize 24
+ *		refs 754 gen 6 flags DATA
+ *	[...]
+ *	item 2 key (13631488 EXTENT_DATA_REF <HASH>) itemoff 3915 itemsize 28
+ *		extent data backref root FS_TREE objectid 866 offset 0 count 1
+ *
+ * This function get called with:
+ *
+ *    node->bytenr = 13631488
+ *    node->num_bytes = 1048576
+ *    root_objectid = FS_TREE
+ *    owner_objectid = 866
+ *    owner_offset = 0
+ *    refs_to_drop = 1
+ *
+ * Then we should get some like:
+ *
+ *	item 0 key (13631488 EXTENT_ITEM 1048576) itemoff 3971 itemsize 24
+ *		refs 753 gen 6 flags DATA
+ *
+ * And that (13631488 EXTENT_DATA_REF <HASH>) gets removed.
+ */
 static int __btrfs_free_extent(struct btrfs_trans_handle *trans,
 			       struct btrfs_delayed_ref_node *node, u64 parent,
 			       u64 root_objectid, u64 owner_objectid,
@@ -2978,7 +3081,15 @@
 	path->leave_spinning = 1;
 
 	is_data = owner_objectid >= BTRFS_FIRST_FREE_OBJECTID;
-	BUG_ON(!is_data && refs_to_drop != 1);
+
+	if (!is_data && refs_to_drop != 1) {
+		btrfs_crit(info,
+"invalid refs_to_drop, dropping more than 1 refs for tree block %llu refs_to_drop %u",
+			   node->bytenr, refs_to_drop);
+		ret = -EINVAL;
+		btrfs_abort_transaction(trans, ret);
+		goto out;
+	}
 
 	if (is_data)
 		skinny_metadata = false;
@@ -2987,6 +3098,13 @@
 				    parent, root_objectid, owner_objectid,
 				    owner_offset);
 	if (ret == 0) {
+		/*
+		 * Either the inline backref or the SHARED_DATA_REF/
+		 * SHARED_BLOCK_REF is found
+		 *
+		 * Here is a quick path to locate EXTENT/METADATA_ITEM.
+		 * It's possible the EXTENT/METADATA_ITEM is near current slot.
+		 */
 		extent_slot = path->slots[0];
 		while (extent_slot >= 0) {
 			btrfs_item_key_to_cpu(path->nodes[0], &key,
@@ -3003,13 +3121,21 @@
 				found_extent = 1;
 				break;
 			}
+
+			/* Quick path didn't find the EXTEMT/METADATA_ITEM */
 			if (path->slots[0] - extent_slot > 5)
 				break;
 			extent_slot--;
 		}
 
 		if (!found_extent) {
-			BUG_ON(iref);
+			if (iref) {
+				btrfs_crit(info,
+"invalid iref, no EXTENT/METADATA_ITEM found but has inline extent ref");
+				btrfs_abort_transaction(trans, -EUCLEAN);
+				goto err_dump;
+			}
+			/* Must be SHARED_* item, remove the backref first */
 			ret = remove_extent_backref(trans, path, NULL,
 						    refs_to_drop,
 						    is_data, &last_ref);
@@ -3020,6 +3146,7 @@
 			btrfs_release_path(path);
 			path->leave_spinning = 1;
 
+			/* Slow path to locate EXTENT/METADATA_ITEM */
 			key.objectid = bytenr;
 			key.type = BTRFS_EXTENT_ITEM_KEY;
 			key.offset = num_bytes;
@@ -3094,19 +3221,26 @@
 	if (owner_objectid < BTRFS_FIRST_FREE_OBJECTID &&
 	    key.type == BTRFS_EXTENT_ITEM_KEY) {
 		struct btrfs_tree_block_info *bi;
-		BUG_ON(item_size < sizeof(*ei) + sizeof(*bi));
+		if (item_size < sizeof(*ei) + sizeof(*bi)) {
+			btrfs_crit(info,
+"invalid extent item size for key (%llu, %u, %llu) owner %llu, has %u expect >= %zu",
+				   key.objectid, key.type, key.offset,
+				   owner_objectid, item_size,
+				   sizeof(*ei) + sizeof(*bi));
+			btrfs_abort_transaction(trans, -EUCLEAN);
+			goto err_dump;
+		}
 		bi = (struct btrfs_tree_block_info *)(ei + 1);
 		WARN_ON(owner_objectid != btrfs_tree_block_level(leaf, bi));
 	}
 
 	refs = btrfs_extent_refs(leaf, ei);
 	if (refs < refs_to_drop) {
-		btrfs_err(info,
-			  "trying to drop %d refs but we only have %Lu for bytenr %Lu",
+		btrfs_crit(info,
+		"trying to drop %d refs but we only have %llu for bytenr %llu",
 			  refs_to_drop, refs, bytenr);
-		ret = -EINVAL;
-		btrfs_abort_transaction(trans, ret);
-		goto out;
+		btrfs_abort_transaction(trans, -EUCLEAN);
+		goto err_dump;
 	}
 	refs -= refs_to_drop;
 
@@ -3118,7 +3252,12 @@
 		 * be updated by remove_extent_backref
 		 */
 		if (iref) {
-			BUG_ON(!found_extent);
+			if (!found_extent) {
+				btrfs_crit(info,
+"invalid iref, got inlined extent ref but no EXTENT/METADATA_ITEM found");
+				btrfs_abort_transaction(trans, -EUCLEAN);
+				goto err_dump;
+			}
 		} else {
 			btrfs_set_extent_refs(leaf, ei, refs);
 			btrfs_mark_buffer_dirty(leaf);
@@ -3133,13 +3272,39 @@
 			}
 		}
 	} else {
+		/* In this branch refs == 1 */
 		if (found_extent) {
-			BUG_ON(is_data && refs_to_drop !=
-			       extent_data_ref_count(path, iref));
+			if (is_data && refs_to_drop !=
+			    extent_data_ref_count(path, iref)) {
+				btrfs_crit(info,
+		"invalid refs_to_drop, current refs %u refs_to_drop %u",
+					   extent_data_ref_count(path, iref),
+					   refs_to_drop);
+				btrfs_abort_transaction(trans, -EUCLEAN);
+				goto err_dump;
+			}
 			if (iref) {
-				BUG_ON(path->slots[0] != extent_slot);
+				if (path->slots[0] != extent_slot) {
+					btrfs_crit(info,
+"invalid iref, extent item key (%llu %u %llu) doesn't have wanted iref",
+						   key.objectid, key.type,
+						   key.offset);
+					btrfs_abort_transaction(trans, -EUCLEAN);
+					goto err_dump;
+				}
 			} else {
-				BUG_ON(path->slots[0] != extent_slot + 1);
+				/*
+				 * No inline ref, we must be at SHARED_* item,
+				 * And it's single ref, it must be:
+				 * |	extent_slot	  ||extent_slot + 1|
+				 * [ EXTENT/METADATA_ITEM ][ SHARED_* ITEM ]
+				 */
+				if (path->slots[0] != extent_slot + 1) {
+					btrfs_crit(info,
+	"invalid SHARED_* item, previous item is not EXTENT/METADATA_ITEM");
+					btrfs_abort_transaction(trans, -EUCLEAN);
+					goto err_dump;
+				}
 				path->slots[0] = extent_slot;
 				num_to_del = 2;
 			}
@@ -3155,7 +3320,8 @@
 		btrfs_release_path(path);
 
 		if (is_data) {
-			ret = btrfs_del_csums(trans, info, bytenr, num_bytes);
+			ret = btrfs_del_csums(trans, info->csum_root, bytenr,
+					      num_bytes);
 			if (ret) {
 				btrfs_abort_transaction(trans, ret);
 				goto out;
@@ -3179,6 +3345,19 @@
 out:
 	btrfs_free_path(path);
 	return ret;
+err_dump:
+	/*
+	 * Leaf dump can take up a lot of log buffer, so we only do full leaf
+	 * dump for debug build.
+	 */
+	if (IS_ENABLED(CONFIG_BTRFS_DEBUG)) {
+		btrfs_crit(info, "path->slots[0]=%d extent_slot=%d",
+			   path->slots[0], extent_slot);
+		btrfs_print_leaf(path->nodes[0]);
+	}
+
+	btrfs_free_path(path);
+	return -EUCLEAN;
 }
 
 /*
@@ -3774,12 +3953,14 @@
  * |- Push harder to find free extents
  *    |- If not found, re-iterate all block groups
  */
-static noinline int find_free_extent(struct btrfs_fs_info *fs_info,
+static noinline int find_free_extent(struct btrfs_root *root,
 				u64 ram_bytes, u64 num_bytes, u64 empty_size,
 				u64 hint_byte, struct btrfs_key *ins,
 				u64 flags, int delalloc)
 {
+	struct btrfs_fs_info *fs_info = root->fs_info;
 	int ret = 0;
+	int cache_block_group_error = 0;
 	struct btrfs_free_cluster *last_ptr = NULL;
 	struct btrfs_block_group_cache *block_group = NULL;
 	struct find_free_extent_ctl ffe_ctl = {0};
@@ -3806,7 +3987,7 @@
 	ins->objectid = 0;
 	ins->offset = 0;
 
-	trace_find_free_extent(fs_info, num_bytes, empty_size, flags);
+	trace_find_free_extent(root, num_bytes, empty_size, flags);
 
 	space_info = btrfs_find_space_info(fs_info, flags);
 	if (!space_info) {
@@ -3939,7 +4120,20 @@
 		if (unlikely(!ffe_ctl.cached)) {
 			ffe_ctl.have_caching_bg = true;
 			ret = btrfs_cache_block_group(block_group, 0);
-			BUG_ON(ret < 0);
+
+			/*
+			 * If we get ENOMEM here or something else we want to
+			 * try other block groups, because it may not be fatal.
+			 * However if we can't find anything else we need to
+			 * save our return here so that we return the actual
+			 * error that caused problems, not ENOSPC.
+			 */
+			if (ret < 0) {
+				if (!cache_block_group_error)
+					cache_block_group_error = ret;
+				ret = 0;
+				goto loop;
+			}
 			ret = 0;
 		}
 
@@ -4026,7 +4220,7 @@
 	if (ret > 0)
 		goto search;
 
-	if (ret == -ENOSPC) {
+	if (ret == -ENOSPC && !cache_block_group_error) {
 		/*
 		 * Use ffe_ctl->total_free_space as fallback if we can't find
 		 * any contiguous hole.
@@ -4037,6 +4231,8 @@
 		space_info->max_extent_size = ffe_ctl.max_extent_size;
 		spin_unlock(&space_info->lock);
 		ins->offset = ffe_ctl.max_extent_size;
+	} else if (ret == -ENOSPC) {
+		ret = cache_block_group_error;
 	}
 	return ret;
 }
@@ -4099,7 +4295,7 @@
 	flags = get_alloc_profile_by_root(root, is_data);
 again:
 	WARN_ON(num_bytes < fs_info->sectorsize);
-	ret = find_free_extent(fs_info, ram_bytes, num_bytes, empty_size,
+	ret = find_free_extent(root, ram_bytes, num_bytes, empty_size,
 			       hint_byte, ins, flags, delalloc);
 	if (!ret && !is_data) {
 		btrfs_dec_block_group_reservations(fs_info, ins->objectid);
@@ -4394,6 +4590,8 @@
 
 	ret = alloc_reserved_file_extent(trans, 0, root_objectid, 0, owner,
 					 offset, ins, 1);
+	if (ret)
+		btrfs_pin_extent(fs_info, ins->objectid, ins->offset, 1);
 	btrfs_put_block_group(block_group);
 	return ret;
 }
@@ -4422,7 +4620,7 @@
 		return ERR_PTR(-EUCLEAN);
 	}
 
-	btrfs_set_buffer_lockdep_class(root->root_key.objectid, buf, level);
+	btrfs_set_buffer_lockdep_class(owner, buf, level);
 	btrfs_tree_lock(buf);
 	btrfs_clean_tree_block(buf);
 	clear_bit(EXTENT_BUFFER_STALE, &buf->bflags);
@@ -5202,7 +5400,14 @@
 		goto out;
 	}
 
-	trans = btrfs_start_transaction(tree_root, 0);
+	/*
+	 * Use join to avoid potential EINTR from transaction start. See
+	 * wait_reserve_ticket and the whole reservation callchain.
+	 */
+	if (for_reloc)
+		trans = btrfs_join_transaction(tree_root);
+	else
+		trans = btrfs_start_transaction(tree_root, 0);
 	if (IS_ERR(trans)) {
 		err = PTR_ERR(trans);
 		goto out_free;
@@ -5337,7 +5542,15 @@
 				goto out_free;
 			}
 
-			trans = btrfs_start_transaction(tree_root, 0);
+		       /*
+			* Use join to avoid potential EINTR from transaction
+			* start. See wait_reserve_ticket and the whole
+			* reservation callchain.
+			*/
+			if (for_reloc)
+				trans = btrfs_join_transaction(tree_root);
+			else
+				trans = btrfs_start_transaction(tree_root, 0);
 			if (IS_ERR(trans)) {
 				err = PTR_ERR(trans);
 				goto out_free;
@@ -5398,8 +5611,6 @@
 	 */
 	if (!for_reloc && !root_dropped)
 		btrfs_add_dead_root(root);
-	if (err && err != -EAGAIN)
-		btrfs_handle_fs_error(fs_info, err, NULL);
 	return err;
 }
 
@@ -5568,6 +5779,19 @@
 					    &start, &end,
 					    CHUNK_TRIMMED | CHUNK_ALLOCATED);
 
+		/* Check if there are any CHUNK_* bits left */
+		if (start > device->total_bytes) {
+			WARN_ON(IS_ENABLED(CONFIG_BTRFS_DEBUG));
+			btrfs_warn_in_rcu(fs_info,
+"ignoring attempt to trim beyond device size: offset %llu length %llu device %s device size %llu",
+					  start, end - start + 1,
+					  rcu_str_deref(device->name),
+					  device->total_bytes);
+			mutex_unlock(&fs_info->chunk_mutex);
+			ret = 0;
+			break;
+		}
+
 		/* Ensure we skip the reserved area in the first 1M */
 		start = max_t(u64, start, SZ_1M);
 
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/extent_io.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/extent_io.c
@@ -647,9 +647,7 @@
 
 static void extent_io_tree_panic(struct extent_io_tree *tree, int err)
 {
-	struct inode *inode = tree->private_data;
-
-	btrfs_panic(btrfs_sb(inode->i_sb), err,
+	btrfs_panic(tree->fs_info, err,
 	"locking error: extent tree was modified by another thread while locked");
 }
 
@@ -1583,21 +1581,25 @@
 	/* Find first extent with bits cleared */
 	while (1) {
 		node = __etree_search(tree, start, &next, &prev, NULL, NULL);
-		if (!node) {
+		if (!node && !next && !prev) {
+			/*
+			 * Tree is completely empty, send full range and let
+			 * caller deal with it
+			 */
+			*start_ret = 0;
+			*end_ret = -1;
+			goto out;
+		} else if (!node && !next) {
+			/*
+			 * We are past the last allocated chunk, set start at
+			 * the end of the last extent.
+			 */
+			state = rb_entry(prev, struct extent_state, rb_node);
+			*start_ret = state->end + 1;
+			*end_ret = -1;
+			goto out;
+		} else if (!node) {
 			node = next;
-			if (!node) {
-				/*
-				 * We are past the last allocated chunk,
-				 * set start at the end of the last extent. The
-				 * device alloc tree should never be empty so
-				 * prev is always set.
-				 */
-				ASSERT(prev);
-				state = rb_entry(prev, struct extent_state, rb_node);
-				*start_ret = state->end + 1;
-				*end_ret = -1;
-				goto out;
-			}
 		}
 		/*
 		 * At this point 'node' either contains 'start' or start is
@@ -1899,7 +1901,7 @@
 			if (page_ops & PAGE_SET_PRIVATE2)
 				SetPagePrivate2(pages[i]);
 
-			if (pages[i] == locked_page) {
+			if (locked_page && pages[i] == locked_page) {
 				put_page(pages[i]);
 				pages_locked++;
 				continue;
@@ -1919,7 +1921,8 @@
 				if (!PageDirty(pages[i]) ||
 				    pages[i]->mapping != mapping) {
 					unlock_page(pages[i]);
-					put_page(pages[i]);
+					for (; i < ret; i++)
+						put_page(pages[i]);
 					err = -EAGAIN;
 					goto out;
 				}
@@ -3924,6 +3927,7 @@
 		.extent_locked = 0,
 		.sync_io = wbc->sync_mode == WB_SYNC_ALL,
 	};
+	struct btrfs_fs_info *fs_info = BTRFS_I(mapping->host)->root->fs_info;
 	int ret = 0;
 	int done = 0;
 	int nr_to_write_done = 0;
@@ -3938,6 +3942,11 @@
 	if (wbc->range_cyclic) {
 		index = mapping->writeback_index; /* Start from prev offset */
 		end = -1;
+		/*
+		 * Start from the beginning does not need to cycle over the
+		 * range, mark it as scanned.
+		 */
+		scanned = (index == 0);
 	} else {
 		index = wbc->range_start >> PAGE_SHIFT;
 		end = wbc->range_end >> PAGE_SHIFT;
@@ -3955,7 +3964,6 @@
 			tag))) {
 		unsigned i;
 
-		scanned = 1;
 		for (i = 0; i < nr_pages; i++) {
 			struct page *page = pvec.pages[i];
 
@@ -4033,7 +4041,39 @@
 		end_write_bio(&epd, ret);
 		return ret;
 	}
-	ret = flush_write_bio(&epd);
+	/*
+	 * If something went wrong, don't allow any metadata write bio to be
+	 * submitted.
+	 *
+	 * This would prevent use-after-free if we had dirty pages not
+	 * cleaned up, which can still happen by fuzzed images.
+	 *
+	 * - Bad extent tree
+	 *   Allowing existing tree block to be allocated for other trees.
+	 *
+	 * - Log tree operations
+	 *   Exiting tree blocks get allocated to log tree, bumps its
+	 *   generation, then get cleaned in tree re-balance.
+	 *   Such tree block will not be written back, since it's clean,
+	 *   thus no WRITTEN flag set.
+	 *   And after log writes back, this tree block is not traced by
+	 *   any dirty extent_io_tree.
+	 *
+	 * - Offending tree block gets re-dirtied from its original owner
+	 *   Since it has bumped generation, no WRITTEN flag, it can be
+	 *   reused without COWing. This tree block will not be traced
+	 *   by btrfs_transaction::dirty_pages.
+	 *
+	 *   Now such dirty tree block will not be cleaned by any dirty
+	 *   extent io tree. Thus we don't want to submit such wild eb
+	 *   if the fs already has error.
+	 */
+	if (!test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) {
+		ret = flush_write_bio(&epd);
+	} else {
+		ret = -EROFS;
+		end_write_bio(&epd, ret);
+	}
 	return ret;
 }
 
@@ -4084,6 +4124,11 @@
 	if (wbc->range_cyclic) {
 		index = mapping->writeback_index; /* Start from prev offset */
 		end = -1;
+		/*
+		 * Start from the beginning does not need to cycle over the
+		 * range, mark it as scanned.
+		 */
+		scanned = (index == 0);
 	} else {
 		index = wbc->range_start >> PAGE_SHIFT;
 		end = wbc->range_end >> PAGE_SHIFT;
@@ -4117,11 +4162,10 @@
 						&index, end, tag))) {
 		unsigned i;
 
-		scanned = 1;
 		for (i = 0; i < nr_pages; i++) {
 			struct page *page = pvec.pages[i];
 
-			done_index = page->index;
+			done_index = page->index + 1;
 			/*
 			 * At this point we hold neither the i_pages lock nor
 			 * the page lock: the page may be truncated or
@@ -4156,16 +4200,6 @@
 
 			ret = __extent_writepage(page, wbc, epd);
 			if (ret < 0) {
-				/*
-				 * done_index is set past this page,
-				 * so media errors will not choke
-				 * background writeout for the entire
-				 * file. This has consequences for
-				 * range_cyclic semantics (ie. it may
-				 * not be suitable for data integrity
-				 * writeout).
-				 */
-				done_index = page->index + 1;
 				done = 1;
 				break;
 			}
@@ -4187,7 +4221,16 @@
 		 */
 		scanned = 1;
 		index = 0;
-		goto retry;
+
+		/*
+		 * If we're looping we could run into a page that is locked by a
+		 * writer and that writer could be waiting on writeback for a
+		 * page in our current bio, and thus deadlock, so flush the
+		 * write bio here.
+		 */
+		ret = flush_write_bio(epd);
+		if (!ret)
+			goto retry;
 	}
 
 	if (wbc->range_cyclic || (wbc->nr_to_write > 0 && range_whole))
@@ -4422,20 +4465,32 @@
 				free_extent_map(em);
 				break;
 			}
-			if (!test_range_bit(tree, em->start,
-					    extent_map_end(em) - 1,
-					    EXTENT_LOCKED, 0, NULL)) {
+			if (test_range_bit(tree, em->start,
+					   extent_map_end(em) - 1,
+					   EXTENT_LOCKED, 0, NULL))
+				goto next;
+			/*
+			 * If it's not in the list of modified extents, used
+			 * by a fast fsync, we can remove it. If it's being
+			 * logged we can safely remove it since fsync took an
+			 * extra reference on the em.
+			 */
+			if (list_empty(&em->list) ||
+			    test_bit(EXTENT_FLAG_LOGGING, &em->flags)) {
 				set_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
 					&btrfs_inode->runtime_flags);
 				remove_extent_mapping(map, em);
 				/* once for the rb tree */
 				free_extent_map(em);
 			}
+next:
 			start = extent_map_end(em);
 			write_unlock(&map->lock);
 
 			/* once for us */
 			free_extent_map(em);
+
+			cond_resched(); /* Allow large-extent preemption. */
 		}
 	}
 	return try_release_extent_state(tree, page, mask);
@@ -4981,25 +5036,28 @@
 static void check_buffer_tree_ref(struct extent_buffer *eb)
 {
 	int refs;
-	/* the ref bit is tricky.  We have to make sure it is set
-	 * if we have the buffer dirty.   Otherwise the
-	 * code to free a buffer can end up dropping a dirty
-	 * page
+	/*
+	 * The TREE_REF bit is first set when the extent_buffer is added
+	 * to the radix tree. It is also reset, if unset, when a new reference
+	 * is created by find_extent_buffer.
 	 *
-	 * Once the ref bit is set, it won't go away while the
-	 * buffer is dirty or in writeback, and it also won't
-	 * go away while we have the reference count on the
-	 * eb bumped.
+	 * It is only cleared in two cases: freeing the last non-tree
+	 * reference to the extent_buffer when its STALE bit is set or
+	 * calling releasepage when the tree reference is the only reference.
 	 *
-	 * We can't just set the ref bit without bumping the
-	 * ref on the eb because free_extent_buffer might
-	 * see the ref bit and try to clear it.  If this happens
-	 * free_extent_buffer might end up dropping our original
-	 * ref by mistake and freeing the page before we are able
-	 * to add one more ref.
+	 * In both cases, care is taken to ensure that the extent_buffer's
+	 * pages are not under io. However, releasepage can be concurrently
+	 * called with creating new references, which is prone to race
+	 * conditions between the calls to check_buffer_tree_ref in those
+	 * codepaths and clearing TREE_REF in try_release_extent_buffer.
 	 *
-	 * So bump the ref count first, then set the bit.  If someone
-	 * beat us to it, drop the ref we added.
+	 * The actual lifetime of the extent_buffer in the radix tree is
+	 * adequately protected by the refcount, but the TREE_REF bit and
+	 * its corresponding reference are not. To protect against this
+	 * class of races, we call check_buffer_tree_ref from the codepaths
+	 * which trigger io after they set eb->io_pages. Note that once io is
+	 * initiated, TREE_REF can no longer be cleared, so that is the
+	 * moment at which any such race is best fixed.
 	 */
 	refs = atomic_read(&eb->refs);
 	if (refs >= 2 && test_bit(EXTENT_BUFFER_TREE_REF, &eb->bflags))
@@ -5076,12 +5134,14 @@
 		return eb;
 	eb = alloc_dummy_extent_buffer(fs_info, start);
 	if (!eb)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 	eb->fs_info = fs_info;
 again:
 	ret = radix_tree_preload(GFP_NOFS);
-	if (ret)
+	if (ret) {
+		exists = ERR_PTR(ret);
 		goto free_eb;
+	}
 	spin_lock(&fs_info->buffer_lock);
 	ret = radix_tree_insert(&fs_info->buffer_radix,
 				start >> PAGE_SHIFT, eb);
@@ -5447,6 +5507,11 @@
 	clear_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags);
 	eb->read_mirror = 0;
 	atomic_set(&eb->io_pages, num_reads);
+	/*
+	 * It is possible for releasepage to clear the TREE_REF bit before we
+	 * set io_pages. See check_buffer_tree_ref for a more detailed comment.
+	 */
+	check_buffer_tree_ref(eb);
 	for (i = 0; i < num_pages; i++) {
 		page = eb->pages[i];
 
@@ -5506,6 +5571,36 @@
 	return ret;
 }
 
+static bool report_eb_range(const struct extent_buffer *eb, unsigned long start,
+			    unsigned long len)
+{
+	btrfs_warn(eb->fs_info,
+		"access to eb bytenr %llu len %lu out of range start %lu len %lu",
+		eb->start, eb->len, start, len);
+	WARN_ON(IS_ENABLED(CONFIG_BTRFS_DEBUG));
+
+	return true;
+}
+
+/*
+ * Check if the [start, start + len) range is valid before reading/writing
+ * the eb.
+ * NOTE: @start and @len are offset inside the eb, not logical address.
+ *
+ * Caller should not touch the dst/src memory if this function returns error.
+ */
+static inline int check_eb_range(const struct extent_buffer *eb,
+				 unsigned long start, unsigned long len)
+{
+	unsigned long offset;
+
+	/* start, start + len should not go beyond eb->len nor overflow */
+	if (unlikely(check_add_overflow(start, len, &offset) || offset > eb->len))
+		return report_eb_range(eb, start, len);
+
+	return false;
+}
+
 void read_extent_buffer(const struct extent_buffer *eb, void *dstv,
 			unsigned long start, unsigned long len)
 {
@@ -5514,17 +5609,12 @@
 	struct page *page;
 	char *kaddr;
 	char *dst = (char *)dstv;
-	size_t start_offset = offset_in_page(eb->start);
-	unsigned long i = (start_offset + start) >> PAGE_SHIFT;
+	unsigned long i = start >> PAGE_SHIFT;
 
-	if (start + len > eb->len) {
-		WARN(1, KERN_ERR "btrfs bad mapping eb start %llu len %lu, wanted %lu %lu\n",
-		     eb->start, eb->len, start, len);
-		memset(dst, 0, len);
+	if (check_eb_range(eb, start, len))
 		return;
-	}
 
-	offset = offset_in_page(start_offset + start);
+	offset = offset_in_page(start);
 
 	while (len > 0) {
 		page = eb->pages[i];
@@ -5540,30 +5630,29 @@
 	}
 }
 
-int read_extent_buffer_to_user(const struct extent_buffer *eb,
-			       void __user *dstv,
-			       unsigned long start, unsigned long len)
+int read_extent_buffer_to_user_nofault(const struct extent_buffer *eb,
+				       void __user *dstv,
+				       unsigned long start, unsigned long len)
 {
 	size_t cur;
 	size_t offset;
 	struct page *page;
 	char *kaddr;
 	char __user *dst = (char __user *)dstv;
-	size_t start_offset = offset_in_page(eb->start);
-	unsigned long i = (start_offset + start) >> PAGE_SHIFT;
+	unsigned long i = start >> PAGE_SHIFT;
 	int ret = 0;
 
 	WARN_ON(start > eb->len);
 	WARN_ON(start + len > eb->start + eb->len);
 
-	offset = offset_in_page(start_offset + start);
+	offset = offset_in_page(start);
 
 	while (len > 0) {
 		page = eb->pages[i];
 
 		cur = min(len, (PAGE_SIZE - offset));
 		kaddr = page_address(page);
-		if (copy_to_user(dst, kaddr + offset, cur)) {
+		if (probe_user_write(dst, kaddr + offset, cur)) {
 			ret = -EFAULT;
 			break;
 		}
@@ -5627,14 +5716,13 @@
 	struct page *page;
 	char *kaddr;
 	char *ptr = (char *)ptrv;
-	size_t start_offset = offset_in_page(eb->start);
-	unsigned long i = (start_offset + start) >> PAGE_SHIFT;
+	unsigned long i = start >> PAGE_SHIFT;
 	int ret = 0;
 
-	WARN_ON(start > eb->len);
-	WARN_ON(start + len > eb->start + eb->len);
+	if (check_eb_range(eb, start, len))
+		return -EINVAL;
 
-	offset = offset_in_page(start_offset + start);
+	offset = offset_in_page(start);
 
 	while (len > 0) {
 		page = eb->pages[i];
@@ -5683,13 +5771,12 @@
 	struct page *page;
 	char *kaddr;
 	char *src = (char *)srcv;
-	size_t start_offset = offset_in_page(eb->start);
-	unsigned long i = (start_offset + start) >> PAGE_SHIFT;
+	unsigned long i = start >> PAGE_SHIFT;
 
-	WARN_ON(start > eb->len);
-	WARN_ON(start + len > eb->start + eb->len);
+	if (check_eb_range(eb, start, len))
+		return;
 
-	offset = offset_in_page(start_offset + start);
+	offset = offset_in_page(start);
 
 	while (len > 0) {
 		page = eb->pages[i];
@@ -5713,13 +5800,12 @@
 	size_t offset;
 	struct page *page;
 	char *kaddr;
-	size_t start_offset = offset_in_page(eb->start);
-	unsigned long i = (start_offset + start) >> PAGE_SHIFT;
+	unsigned long i = start >> PAGE_SHIFT;
 
-	WARN_ON(start > eb->len);
-	WARN_ON(start + len > eb->start + eb->len);
+	if (check_eb_range(eb, start, len))
+		return;
 
-	offset = offset_in_page(start_offset + start);
+	offset = offset_in_page(start);
 
 	while (len > 0) {
 		page = eb->pages[i];
@@ -5758,12 +5844,15 @@
 	size_t offset;
 	struct page *page;
 	char *kaddr;
-	size_t start_offset = offset_in_page(dst->start);
-	unsigned long i = (start_offset + dst_offset) >> PAGE_SHIFT;
+	unsigned long i = dst_offset >> PAGE_SHIFT;
+
+	if (check_eb_range(dst, dst_offset, len) ||
+	    check_eb_range(src, src_offset, len))
+		return;
 
 	WARN_ON(src->len != dst_len);
 
-	offset = offset_in_page(start_offset + dst_offset);
+	offset = offset_in_page(dst_offset);
 
 	while (len > 0) {
 		page = dst->pages[i];
@@ -5799,7 +5888,6 @@
 				    unsigned long *page_index,
 				    size_t *page_offset)
 {
-	size_t start_offset = offset_in_page(eb->start);
 	size_t byte_offset = BIT_BYTE(nr);
 	size_t offset;
 
@@ -5808,7 +5896,7 @@
 	 * the bitmap item in the extent buffer + the offset of the byte in the
 	 * bitmap item.
 	 */
-	offset = start_offset + start + byte_offset;
+	offset = start + byte_offset;
 
 	*page_index = offset >> PAGE_SHIFT;
 	*page_offset = offset_in_page(offset);
@@ -5949,33 +6037,22 @@
 void memcpy_extent_buffer(struct extent_buffer *dst, unsigned long dst_offset,
 			   unsigned long src_offset, unsigned long len)
 {
-	struct btrfs_fs_info *fs_info = dst->fs_info;
 	size_t cur;
 	size_t dst_off_in_page;
 	size_t src_off_in_page;
-	size_t start_offset = offset_in_page(dst->start);
 	unsigned long dst_i;
 	unsigned long src_i;
 
-	if (src_offset + len > dst->len) {
-		btrfs_err(fs_info,
-			"memmove bogus src_offset %lu move len %lu dst len %lu",
-			 src_offset, len, dst->len);
-		BUG();
-	}
-	if (dst_offset + len > dst->len) {
-		btrfs_err(fs_info,
-			"memmove bogus dst_offset %lu move len %lu dst len %lu",
-			 dst_offset, len, dst->len);
-		BUG();
-	}
+	if (check_eb_range(dst, dst_offset, len) ||
+	    check_eb_range(dst, src_offset, len))
+		return;
 
 	while (len > 0) {
-		dst_off_in_page = offset_in_page(start_offset + dst_offset);
-		src_off_in_page = offset_in_page(start_offset + src_offset);
+		dst_off_in_page = offset_in_page(dst_offset);
+		src_off_in_page = offset_in_page(src_offset);
 
-		dst_i = (start_offset + dst_offset) >> PAGE_SHIFT;
-		src_i = (start_offset + src_offset) >> PAGE_SHIFT;
+		dst_i = dst_offset >> PAGE_SHIFT;
+		src_i = src_offset >> PAGE_SHIFT;
 
 		cur = min(len, (unsigned long)(PAGE_SIZE -
 					       src_off_in_page));
@@ -5994,38 +6071,27 @@
 void memmove_extent_buffer(struct extent_buffer *dst, unsigned long dst_offset,
 			   unsigned long src_offset, unsigned long len)
 {
-	struct btrfs_fs_info *fs_info = dst->fs_info;
 	size_t cur;
 	size_t dst_off_in_page;
 	size_t src_off_in_page;
 	unsigned long dst_end = dst_offset + len - 1;
 	unsigned long src_end = src_offset + len - 1;
-	size_t start_offset = offset_in_page(dst->start);
 	unsigned long dst_i;
 	unsigned long src_i;
 
-	if (src_offset + len > dst->len) {
-		btrfs_err(fs_info,
-			  "memmove bogus src_offset %lu move len %lu len %lu",
-			  src_offset, len, dst->len);
-		BUG();
-	}
-	if (dst_offset + len > dst->len) {
-		btrfs_err(fs_info,
-			  "memmove bogus dst_offset %lu move len %lu len %lu",
-			  dst_offset, len, dst->len);
-		BUG();
-	}
+	if (check_eb_range(dst, dst_offset, len) ||
+	    check_eb_range(dst, src_offset, len))
+		return;
 	if (dst_offset < src_offset) {
 		memcpy_extent_buffer(dst, dst_offset, src_offset, len);
 		return;
 	}
 	while (len > 0) {
-		dst_i = (start_offset + dst_end) >> PAGE_SHIFT;
-		src_i = (start_offset + src_end) >> PAGE_SHIFT;
+		dst_i = dst_end >> PAGE_SHIFT;
+		src_i = src_end >> PAGE_SHIFT;
 
-		dst_off_in_page = offset_in_page(start_offset + dst_end);
-		src_off_in_page = offset_in_page(start_offset + src_end);
+		dst_off_in_page = offset_in_page(dst_end);
+		src_off_in_page = offset_in_page(src_end);
 
 		cur = min_t(unsigned long, len, src_off_in_page + 1);
 		cur = min(cur, dst_off_in_page + 1);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/extent_io.h
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/extent_io.h
@@ -35,6 +35,8 @@
  */
 #define CHUNK_ALLOCATED EXTENT_DIRTY
 #define CHUNK_TRIMMED   EXTENT_DEFRAG
+#define CHUNK_STATE_MASK			(CHUNK_ALLOCATED |		\
+						 CHUNK_TRIMMED)
 
 /*
  * flags for bio submission. The high bits indicate the compression
@@ -457,9 +459,9 @@
 void read_extent_buffer(const struct extent_buffer *eb, void *dst,
 			unsigned long start,
 			unsigned long len);
-int read_extent_buffer_to_user(const struct extent_buffer *eb,
-			       void __user *dst, unsigned long start,
-			       unsigned long len);
+int read_extent_buffer_to_user_nofault(const struct extent_buffer *eb,
+				       void __user *dst, unsigned long start,
+				       unsigned long len);
 void write_extent_buffer_fsid(struct extent_buffer *eb, const void *src);
 void write_extent_buffer_chunk_tree_uuid(struct extent_buffer *eb,
 		const void *src);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/extent_map.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/extent_map.c
@@ -233,6 +233,17 @@
 	struct extent_map *merge = NULL;
 	struct rb_node *rb;
 
+	/*
+	 * We can't modify an extent map that is in the tree and that is being
+	 * used by another task, as it can cause that other task to see it in
+	 * inconsistent state during the merging. We always have 1 reference for
+	 * the tree and 1 for this task (which is unpinning the extent map or
+	 * clearing the logging flag), so anything > 2 means it's being used by
+	 * other tasks too.
+	 */
+	if (refcount_read(&em->refs) > 2)
+		return;
+
 	if (em->start != 0) {
 		rb = rb_prev(&em->rb_node);
 		if (rb)
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/file-item.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/file-item.c
@@ -274,7 +274,8 @@
 		csum += count * csum_size;
 		nblocks -= count;
 next:
-		while (count--) {
+		while (count > 0) {
+			count--;
 			disk_bytenr += fs_info->sectorsize;
 			offset += fs_info->sectorsize;
 			page_bytes_left -= fs_info->sectorsize;
@@ -590,9 +591,9 @@
  * range of bytes.
  */
 int btrfs_del_csums(struct btrfs_trans_handle *trans,
-		    struct btrfs_fs_info *fs_info, u64 bytenr, u64 len)
+		    struct btrfs_root *root, u64 bytenr, u64 len)
 {
-	struct btrfs_root *root = fs_info->csum_root;
+	struct btrfs_fs_info *fs_info = trans->fs_info;
 	struct btrfs_path *path;
 	struct btrfs_key key;
 	u64 end_byte = bytenr + len;
@@ -602,6 +603,9 @@
 	u16 csum_size = btrfs_super_csum_size(fs_info->super_copy);
 	int blocksize_bits = fs_info->sb->s_blocksize_bits;
 
+	ASSERT(root == fs_info->csum_root ||
+	       root->root_key.objectid == BTRFS_TREE_LOG_OBJECTID);
+
 	path = btrfs_alloc_path();
 	if (!path)
 		return -ENOMEM;
@@ -794,10 +798,12 @@
 		nritems = btrfs_header_nritems(path->nodes[0]);
 		if (!nritems || (path->slots[0] >= nritems - 1)) {
 			ret = btrfs_next_leaf(root, path);
-			if (ret == 1)
+			if (ret < 0) {
+				goto out;
+			} else if (ret > 0) {
 				found_next = 1;
-			if (ret != 0)
 				goto insert;
+			}
 			slot = path->slots[0];
 		}
 		btrfs_item_key_to_cpu(path->nodes[0], &found_key, slot);
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/file.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/file.c
@@ -1546,8 +1546,8 @@
 	return ret;
 }
 
-static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos,
-				    size_t *write_bytes)
+int btrfs_check_can_nocow(struct btrfs_inode *inode, loff_t pos,
+			  size_t *write_bytes)
 {
 	struct btrfs_fs_info *fs_info = inode->root->fs_info;
 	struct btrfs_root *root = inode->root;
@@ -1568,7 +1568,7 @@
 
 	num_bytes = lockend - lockstart + 1;
 	ret = can_nocow_extent(&inode->vfs_inode, lockstart, &num_bytes,
-			NULL, NULL, NULL);
+			NULL, NULL, NULL, false);
 	if (ret <= 0) {
 		ret = 0;
 		btrfs_end_write_no_snapshotting(root);
@@ -1636,6 +1636,7 @@
 			break;
 		}
 
+		only_release_metadata = false;
 		sector_offset = pos & (fs_info->sectorsize - 1);
 		reserve_bytes = round_up(write_bytes + sector_offset,
 				fs_info->sectorsize);
@@ -1646,7 +1647,7 @@
 		if (ret < 0) {
 			if ((BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW |
 						      BTRFS_INODE_PREALLOC)) &&
-			    check_can_nocow(BTRFS_I(inode), pos,
+			    btrfs_check_can_nocow(BTRFS_I(inode), pos,
 					&write_bytes) > 0) {
 				/*
 				 * For nodata cow case, no need to reserve
@@ -1791,7 +1792,6 @@
 			set_extent_bit(&BTRFS_I(inode)->io_tree, lockstart,
 				       lockend, EXTENT_NORESERVE, NULL,
 				       NULL, GFP_NOFS);
-			only_release_metadata = false;
 		}
 
 		btrfs_drop_pages(pages, num_pages);
@@ -1903,9 +1903,10 @@
 	    (iocb->ki_flags & IOCB_NOWAIT))
 		return -EOPNOTSUPP;
 
-	if (!inode_trylock(inode)) {
-		if (iocb->ki_flags & IOCB_NOWAIT)
+	if (iocb->ki_flags & IOCB_NOWAIT) {
+		if (!inode_trylock(inode))
 			return -EAGAIN;
+	} else {
 		inode_lock(inode);
 	}
 
@@ -1918,13 +1919,28 @@
 	pos = iocb->ki_pos;
 	count = iov_iter_count(from);
 	if (iocb->ki_flags & IOCB_NOWAIT) {
+		size_t nocow_bytes = count;
+
 		/*
 		 * We will allocate space in case nodatacow is not set,
 		 * so bail
 		 */
 		if (!(BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW |
 					      BTRFS_INODE_PREALLOC)) ||
-		    check_can_nocow(BTRFS_I(inode), pos, &count) <= 0) {
+		    btrfs_check_can_nocow(BTRFS_I(inode), pos,
+					  &nocow_bytes) <= 0) {
+			inode_unlock(inode);
+			return -EAGAIN;
+		}
+
+		/* check_can_nocow() locks the snapshot lock on success */
+		btrfs_end_write_no_snapshotting(root);
+		/*
+		 * There are holes in the range or parts of the range that must
+		 * be COWed (shared extents, RO block groups, etc), so just bail
+		 * out.
+		 */
+		if (nocow_bytes < count) {
 			inode_unlock(inode);
 			return -EAGAIN;
 		}
@@ -2073,6 +2089,16 @@
 	btrfs_init_log_ctx(&ctx, inode);
 
 	/*
+	 * Set the range to full if the NO_HOLES feature is not enabled.
+	 * This is to avoid missing file extent items representing holes after
+	 * replaying the log.
+	 */
+	if (!btrfs_fs_incompat(fs_info, NO_HOLES)) {
+		start = 0;
+		end = LLONG_MAX;
+	}
+
+	/*
 	 * We write the dirty pages in the range and wait until they complete
 	 * out of the ->i_mutex. If so, we can flush the dirty pages by
 	 * multi-task, and make the performance up.  See
@@ -2126,6 +2152,7 @@
 	 */
 	ret = start_ordered_ops(inode, start, end);
 	if (ret) {
+		up_write(&BTRFS_I(inode)->dio_sem);
 		inode_unlock(inode);
 		goto out;
 	}
@@ -2601,8 +2628,8 @@
 			}
 		}
 
-		if (clone_info) {
-			u64 clone_len = drop_end - cur_offset;
+		if (clone_info && drop_end > clone_info->file_offset) {
+			u64 clone_len = drop_end - clone_info->file_offset;
 
 			ret = btrfs_insert_clone_extent(trans, inode, path,
 							clone_info, clone_len);
@@ -3118,14 +3145,17 @@
 		if (ret < 0)
 			goto out;
 		space_reserved = true;
-		ret = btrfs_qgroup_reserve_data(inode, &data_reserved,
-						alloc_start, bytes_to_reserve);
-		if (ret)
-			goto out;
 		ret = btrfs_punch_hole_lock_range(inode, lockstart, lockend,
 						  &cached_state);
 		if (ret)
 			goto out;
+		ret = btrfs_qgroup_reserve_data(inode, &data_reserved,
+						alloc_start, bytes_to_reserve);
+		if (ret) {
+			unlock_extent_cached(&BTRFS_I(inode)->io_tree, lockstart,
+					     lockend, &cached_state);
+			goto out;
+		}
 		ret = btrfs_prealloc_file_range(inode, mode, alloc_start,
 						alloc_end - alloc_start,
 						i_blocksize(inode),
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/free-space-cache.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/free-space-cache.c
@@ -385,6 +385,12 @@
 		if (uptodate && !PageUptodate(page)) {
 			btrfs_readpage(NULL, page);
 			lock_page(page);
+			if (page->mapping != inode->i_mapping) {
+				btrfs_err(BTRFS_I(inode)->root->fs_info,
+					  "free space cache page truncated");
+				io_ctl_drop_pages(io_ctl);
+				return -EIO;
+			}
 			if (!PageUptodate(page)) {
 				btrfs_err(BTRFS_I(inode)->root->fs_info,
 					   "error reading free space cache");
@@ -738,8 +744,10 @@
 	while (num_entries) {
 		e = kmem_cache_zalloc(btrfs_free_space_cachep,
 				      GFP_NOFS);
-		if (!e)
+		if (!e) {
+			ret = -ENOMEM;
 			goto free_cache;
+		}
 
 		ret = io_ctl_read_entry(&io_ctl, e, &type);
 		if (ret) {
@@ -748,6 +756,7 @@
 		}
 
 		if (!e->bytes) {
+			ret = -1;
 			kmem_cache_free(btrfs_free_space_cachep, e);
 			goto free_cache;
 		}
@@ -768,6 +777,7 @@
 			e->bitmap = kmem_cache_zalloc(
 					btrfs_free_space_bitmap_cachep, GFP_NOFS);
 			if (!e->bitmap) {
+				ret = -ENOMEM;
 				kmem_cache_free(
 					btrfs_free_space_cachep, e);
 				goto free_cache;
@@ -1160,7 +1170,6 @@
 	ret = update_cache_item(trans, root, inode, path, offset,
 				io_ctl->entries, io_ctl->bitmaps);
 out:
-	io_ctl_free(io_ctl);
 	if (ret) {
 		invalidate_inode_pages2(inode->i_mapping);
 		BTRFS_I(inode)->generation = 0;
@@ -1323,6 +1332,7 @@
 	 * them out later
 	 */
 	io_ctl_drop_pages(io_ctl);
+	io_ctl_free(io_ctl);
 
 	unlock_extent_cached(&BTRFS_I(inode)->io_tree, 0,
 			     i_size_read(inode) - 1, &cached_state);
@@ -2160,7 +2170,7 @@
 static bool try_merge_free_space(struct btrfs_free_space_ctl *ctl,
 			  struct btrfs_free_space *info, bool update_stat)
 {
-	struct btrfs_free_space *left_info;
+	struct btrfs_free_space *left_info = NULL;
 	struct btrfs_free_space *right_info;
 	bool merged = false;
 	u64 offset = info->offset;
@@ -2175,7 +2185,7 @@
 	if (right_info && rb_prev(&right_info->offset_index))
 		left_info = rb_entry(rb_prev(&right_info->offset_index),
 				     struct btrfs_free_space, offset_index);
-	else
+	else if (!right_info)
 		left_info = tree_search_offset(ctl, offset - 1, 0, 0);
 
 	if (right_info && !right_info->bitmap) {
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/free-space-tree.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/free-space-tree.c
@@ -1149,6 +1149,7 @@
 		return PTR_ERR(trans);
 
 	set_bit(BTRFS_FS_CREATING_FREE_SPACE_TREE, &fs_info->flags);
+	set_bit(BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED, &fs_info->flags);
 	free_space_root = btrfs_create_tree(trans,
 					    BTRFS_FREE_SPACE_TREE_OBJECTID);
 	if (IS_ERR(free_space_root)) {
@@ -1170,11 +1171,18 @@
 	btrfs_set_fs_compat_ro(fs_info, FREE_SPACE_TREE);
 	btrfs_set_fs_compat_ro(fs_info, FREE_SPACE_TREE_VALID);
 	clear_bit(BTRFS_FS_CREATING_FREE_SPACE_TREE, &fs_info->flags);
+	ret = btrfs_commit_transaction(trans);
 
-	return btrfs_commit_transaction(trans);
+	/*
+	 * Now that we've committed the transaction any reading of our commit
+	 * root will be safe, so we can cache from the free space tree now.
+	 */
+	clear_bit(BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED, &fs_info->flags);
+	return ret;
 
 abort:
 	clear_bit(BTRFS_FS_CREATING_FREE_SPACE_TREE, &fs_info->flags);
+	clear_bit(BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED, &fs_info->flags);
 	btrfs_abort_transaction(trans, ret);
 	btrfs_end_transaction(trans);
 	return ret;
--- linux-gkeop-5.4-5.4.0.orig/fs/btrfs/inode.c
+++ linux-gkeop-5.4-5.4.0/fs/btrfs/inode.c
@@ -49,6 +49,7 @@
 #include "qgroup.h"
 #include "delalloc-space.h"
 #include "block-group.h"
+#include "space-info.h"
 
 struct btrfs_iget_args {
 	struct btrfs_key *location;
@@ -640,12 +641,18 @@
 						     page_error_op |
 						     PAGE_END_WRITEBACK);
 
-			for (i = 0; i < nr_pages; i++) {
-				WARN_ON(pages[i]->mapping);
-				put_page(pages[i]);
+			/*
+			 * Ensure we only free the compressed pages if we have
+			 * them allocated, as we can still reach here with
+			 * inode_need_compress() == false.
+			 */
+			if (pages) {
+				for (i = 0; i < nr_pages; i++) {
+					WARN_ON(pages[i]->mapping);
+					put_page(pages[i]);
+				}
+				kfree(pages);
 			}
-			kfree(pages);
-
 			return 0;
 		}
 	}
@@ -712,10 +719,12 @@
 	 * to our extent and set things up for the async work queue to run
 	 * cow_file_range to do the normal delalloc dance.
 	 */
-	if (page_offset(async_chunk->locked_page) >= start &&
-	    page_offset(async_chunk->locked_page) <= end)
+	if (async_chunk->locked_page &&
+	    (page_offset(async_chunk->locked_page) >= start &&
+	     page_offset(async_chunk->locked_page)) <= end) {
 		__set_page_dirty_nobuffers(async_chunk->locked_page);
 		/* unlocked later on in the async handlers */
+	}
 
 	if (redirty)
 		extent_range_redirty_for_io(inode, start, end);
@@ -795,7 +804,7 @@
 						  async_extent->start +
 						  async_extent->ram_size - 1,
 						  WB_SYNC_ALL);
-			else if (ret)
+			else if (ret && async_chunk->locked_page)
 				unlock_page(async_chunk->locked_page);
 			kfree(async_extent);
 			cond_resched();
@@ -972,6 +981,7 @@
 	u64 num_bytes;
 	unsigned long ram_size;
 	u64 cur_alloc_size = 0;
+	u64 min_alloc_size;
 	u64 blocksize = fs_info->sectorsize;
 	struct btrfs_key ins;
 	struct extent_map *em;
@@ -1022,10 +1032,26 @@
 	btrfs_drop_extent_cache(BTRFS_I(inode), start,
 			start + num_bytes - 1, 0);
 
+	/*
+	 * Relocation relies on the relocated extents to have exactly the same
+	 * size as the original extents. Normally writeback for relocation data
+	 * extents follows a NOCOW path because relocation preallocates the
+	 * extents. However, due to an operation such as scrub turning a block
+	 * group to RO mode, it may fallback to COW mode, so we must make sure
+	 * an extent allocated during COW has exactly the requested size and can
+	 * not be split into smaller extents, otherwise relocation breaks and
+	 * fails during the stage where it updates the bytenr of file extent
+	 * items.
+	 */
+	if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID)
+		min_alloc_size = num_bytes;
+	else
+		min_alloc_size = fs_info->sectorsize;
+
 	while (num_bytes > 0) {
 		cur_alloc_size = num_bytes;
 		ret = btrfs_reserve_extent(root, cur_alloc_size, cur_alloc_size,
-					   fs_info->sectorsize, 0, alloc_hint,
+					   min_alloc_size, 0, alloc_hint,
 					   &ins, 1, 1);
 		if (ret < 0)
 			goto out_unlock;
@@ -1130,7 +1156,7 @@
 	 */
 	if (extent_reserved) {
 		extent_clear_unlock_delalloc(inode, start,
-					     start + cur_alloc_size,
+					     start + cur_alloc_size - 1,
 					     locked_page,
 					     clear_bits,
 					     page_ops);
@@ -1264,14 +1290,27 @@
 		async_chunk[i].inode = inode;
 		async_chunk[i].start = start;
 		async_chunk[i].end = cur_end;
-		async_chunk[i].locked_page = locked_page;
 		async_chunk[i].write_flags = write_flags;
 		INIT_LIST_HEAD(&async_chunk[i].extents);
 
-		btrfs_init_work(&async_chunk[i].work,
-				btrfs_delalloc_helper,
-				async_cow_start, async_cow_submit,
-				async_cow_free);
+		/*
+		 * The locked_page comes all the way from writepage and its
+		 * the original page we were actually given.  As we spread
+		 * this large delalloc region across multiple async_chunk
+		 * structs, only the first struct needs a pointer to locked_page
+		 *
+		 * This way we don't need racey decisions about who is supposed
+		 * to unlock it.
+		 */
+		if (locked_page) {
+			async_chunk[i].locked_page = locked_page;
+			locked_page = NULL;
+		} else {
+			async_chunk[i].locked_page = NULL;
+		}
+
+		btrfs_init_work(&async_chunk[i].work, async_cow_start,
+				async_cow_submit, async_cow_free);
 
 		nr_pages = DIV_ROUND_UP(cur_end - start, PAGE_SIZE);
 		atomic_add(nr_pages, &fs_info->async_delalloc_pages);
@@ -1307,6 +1346,73 @@
 	return 1;
 }
 
+static int fallback_to_cow(struct inode *inode, struct page *locked_page,
+			   const u64 start, const u64 end,
+			   int *page_started, unsigned long *nr_written)
+{
+	const bool is_space_ino = btrfs_is_free_space_inode(BTRFS_I(inode));
+	const bool is_reloc_ino = (BTRFS_I(inode)->root->root_key.objectid ==
+				   BTRFS_DATA_RELOC_TREE_OBJECTID);
+	const u64 range_bytes = end + 1 - start;
+	struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree;
+	u64 range_start = start;
+	u64 count;
+
+	/*
+	 * If EXTENT_NORESERVE is set it means that when the buffered write was
+	 * made we had not enough available data space and therefore we did not
+	 * reserve data space for it, since we though we could do NOCOW for the
+	 * respective file range (either there is prealloc extent or the inode
+	 * has the NOCOW bit set).
+	 *
+	 * However when we need to fallback to COW mode (because for example the
+	 * block group for the corresponding extent was turned to RO mode by a
+	 * scrub or relocation) we need to do the following:
+	 *
+	 * 1) We increment the bytes_may_use counter of the data space info.
+	 *    If COW succeeds, it allocates a new data extent and after doing
+	 *    that it decrements the space info's bytes_may_use counter and
+	 *    increments its bytes_reserved counter by the same amount (we do
+	 *    this at btrfs_add_reserved_bytes()). So we need to increment the
+	 *    bytes_may_use counter to compensate (when space is reserved at
+	 *    buffered write time, the bytes_may_use counter is incremented);
+	 *
+	 * 2) We clear the EXTENT_NORESERVE bit from the range. We do this so
+	 *    that if the COW path fails for any reason, it decrements (through
+	 *    extent_clear_unlock_delalloc()) the bytes_may_use counter of the
+	 *    data space info, which we incremented in the step above.
+	 *
+	 * If we need to fallback to cow and the inode corresponds to a free
+	 * space cache inode or an inode of the data relocation tree, we must
+	 * also increment bytes_may_use of the data space_info for the same
+	 * reason. Space caches and relocated data extents always get a prealloc
+	 * extent for them, however scrub or balance may have set the block
+	 * group that contains that extent to RO mode and therefore force COW
+	 * when starting writeback.
+	 */
+	count = count_range_bits(io_tree, &range_start, end, range_bytes,
+				 EXTENT_NORESERVE, 0);
+	if (count > 0 || is_space_ino || is_reloc_ino) {
+		u64 bytes = count;
+		struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info;
+		struct btrfs_space_info *sinfo = fs_info->data_sinfo;
+
+		if (is_space_ino || is_reloc_ino)
+			bytes = range_bytes;
+
+		spin_lock(&sinfo->lock);
+		btrfs_space_info_update_bytes_may_use(fs_info, sinfo, bytes);
+		spin_unlock(&sinfo->lock);
+
+		if (count > 0)
+			clear_extent_bit(io_tree, start, end, EXTENT_NORESERVE,
+					 0, 0, NULL);
+	}
+
+	return cow_file_range(inode, locked_page, start, end, page_started,
+			      nr_written, 1);
+}
+
 /*
  * when nowcow writeback call back.  This checks for snapshots or COW copies
  * of the extents that exist in the file, and COWs the file as required.
@@ -1439,10 +1545,10 @@
 			disk_num_bytes =
 				btrfs_file_extent_disk_num_bytes(leaf, fi);
 			/*
-			 * If extent we got ends before our range starts, skip
-			 * to next extent
+			 * If the extent we got ends before our current offset,
+			 * skip to the next extent.
 			 */
-			if (extent_end <= start) {
+			if (extent_end <= cur_offset) {
 				path->slots[0]++;
 				goto next_slot;
 			}
@@ -1472,7 +1578,7 @@
 				goto out_check;
 			ret = btrfs_cross_ref_exist(root, ino,
 						    found_key.offset -
-						    extent_offset, disk_bytenr);
+						    extent_offset, disk_bytenr, false);
 			if (ret) {
 				/*
 				 * ret could be -EIO if the above fails to read
@@ -1554,15 +1660,11 @@
 		 * NOCOW, following one which needs to be COW'ed
 		 */
 		if (cow_start != (u64)-1) {
-			ret = cow_file_range(inode, locked_page,
-					     cow_start, found_key.offset - 1,
-					     page_started, nr_written, 1);
-			if (ret) {
-				if (nocow)
-					btrfs_dec_nocow_writers(fs_info,
-								disk_bytenr);
+			ret = fallback_to_cow(inode, locked_page, cow_start,
+					      found_key.offset - 1,
+					      page_started, nr_written);
+			if (ret)
 				goto error;
-			}
 			cow_start = (u64)-1;
 		}
 
@@ -1578,9 +1680,6 @@
 					  ram_bytes, BTRFS_COMPRESS_NONE,
 					  BTRFS_ORDERED_PREALLOC);
 			if (IS_ERR(em)) {
-				if (nocow)
-					btrfs_dec_nocow_writers(fs_info,
-								disk_bytenr);
 				ret = PTR_ERR(em);
 				goto error;
 			}
@@ -1645,8 +1744,8 @@
 
 	if (cow_start != (u64)-1) {
 		cur_offset = end;
-		ret = cow_file_range(inode, locked_page, cow_start, end,
-				     page_started, nr_written, 1);
+		ret = fallback_to_cow(inode, locked_page, cow_start, end,
+				      page_started, nr_written);
 		if (ret)
 			goto error;
 	}
@@ -2153,6 +2252,7 @@
 /* see btrfs_writepage_start_hook for details on why this is required */
 struct btrfs_writepage_fixup {
 	struct page *page;
+	struct inode *inode;
 	struct btrfs_work work;
 };
 
@@ -2166,27 +2266,71 @@
 	struct inode *inode;
 	u64 page_start;
 	u64 page_end;
-	int ret;
+	int ret = 0;
+	bool free_delalloc_space = true;
 
 	fixup = container_of(work, struct btrfs_writepage_fixup, work);
 	page = fixup->page;
+	inode = fixup->inode;
+	page_start = page_offset(page);
+	page_end = page_offset(page) + PAGE_SIZE - 1;
+
+	/*
+	 * This is similar to page_mkwrite, we need to reserve the space before
+	 * we take the page lock.
+	 */
+	ret = btrfs_delalloc_reserve_space(inode, &data_reserved, page_start,
+					   PAGE_SIZE);
 again:
 	lock_page(page);
+
+	/*
+	 * Before we queued this fixup, we took a reference on the page.
+	 * page->mapping may go NULL, but it shouldn't be moved to a different
+	 * address space.
+	 */
 	if (!page->mapping || !PageDirty(page) || !PageChecked(page)) {
-		ClearPageChecked(page);
+		/*
+		 * Unfortunately this is a little tricky, either
+		 *
+		 * 1) We got here and our page had already been dealt with and
+		 *    we reserved our space, thus ret == 0, so we need to just
+		 *    drop our space reservation and bail.  This can happen the
+		 *    first time we come into the fixup worker, or could happen
+		 *    while waiting for the ordered extent.
+		 * 2) Our page was already dealt with, but we happened to get an
+		 *    ENOSPC above from the btrfs_delalloc_reserve_space.  In
+		 *    this case we obviously don't have anything to release, but
+		 *    because the page was already dealt with we don't want to
+		 *    mark the page with an error, so make sure we're resetting
+		 *    ret to 0.  This is why we have this check _before_ the ret
+		 *    check, because we do not want to have a surprise ENOSPC
+		 *    when the page was already properly dealt with.
+		 */
+		if (!ret) {
+			btrfs_delalloc_release_extents(BTRFS_I(inode),
+						       PAGE_SIZE);
+			btrfs_delalloc_release_space(inode, data_reserved,
+						     page_start, PAGE_SIZE,
+						     true);
+		}
+		ret = 0;
 		goto out_page;
 	}
 
-	inode = page->mapping->host;
-	page_start = page_offset(page);
-	page_end = page_offset(page) + PAGE_SIZE - 1;
+	/*
+	 * We can't mess with the page state unless it is locked, so now that
+	 * it is locked bail if we failed to make our space reservation.
+	 */
+	if (ret)
+		goto out_page;
 
 	lock_extent_bits(&BTRFS_I(inode)->io_tree, page_start, page_end,
 			 &cached_state);
 
 	/* already ordered? We're done */
 	if (PagePrivate2(page))
-		goto out;
+		goto out_reserved;
 
 	ordered = btrfs_lookup_ordered_range(BTRFS_I(inode), page_start,
 					PAGE_SIZE);
@@ -2199,35 +2343,49 @@
 		goto again;
 	}
 
-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved, page_start,
-					   PAGE_SIZE);
-	if (ret) {
-		mapping_set_error(page->mapping, ret);
-		end_extent_writepage(page, ret, page_start, page_end);
-		ClearPageChecked(page);
-		goto out;
-	 }
-
 	ret = btrfs_set_extent_delalloc(inode, page_start, page_end, 0,
 					&cached_state);
-	if (ret) {
-		mapping_set_error(page->mapping, ret);
-		end_extent_writepage(page, ret, page_start, page_end);
-		ClearPageChecked(page);
-		goto out;
-	}
+	if (ret)
+		goto out_reserved;
 
-	ClearPageChecked(page);
-	set_page_dirty(page);
+	/*
+	 * Everything went as planned, we're now the owner of a dirty page with
+	 * delayed allocation bits set and space reserved for our COW
+	 * destination.
+	 *
+	 * The page was dirty when we started, nothing should have cleaned it.
+	 */
+	BUG_ON(!PageDirty(page));
+	free_delalloc_space = false;
+out_reserved:
 	btrfs_delalloc_release_extents(BTRFS_I(inode), PAGE_SIZE);
-out:
+	if (free_delalloc_space)
+		btrfs_delalloc_release_space(inode, data_reserved, page_start,
+					     PAGE_SIZE, true);
 	unlock_extent_cached(&BTRFS_I(inode)->io_tree, page_start, page_end,
 			     &cached_state);
 out_page:
+	if (ret) {
+		/*
+		 * We hit ENOSPC or other errors.  Update the mapping and page
+		 * to reflect the errors and clean the page.
+		 */
+		mapping_set_error(page->mapping, ret);
+		end_extent_writepage(page, ret, page_start, page_end);
+		clear_page_dirty_for_io(page);
+		SetPageError(page);
+	}
+	ClearPageChecked(page);
 	unlock_page(page);
 	put_page(page);
 	kfree(fixup);
 	extent_changeset_free(data_reserved);
+	/*
+	 * As a precaution, do a delayed iput in case it would be the last iput
+	 * that could need flushing space. Recursing back to fixup worker would
+	 * deadlock.
+	 */
+	btrfs_add_delayed_iput(inode);
 }
 
 /*
@@ -2251,6 +2409,13 @@
 	if (TestClearPagePrivate2(page))
 		return 0;
 
+	/*
+	 * PageChecked is set below when we create a fixup worker for this page,
+	 * don't try to create another one if we're already PageChecked()
+	 *
+	 * The extent_io writepage code will redirty the page if we send back
+	 * EAGAIN.
+	 */
 	if (PageChecked(page))
 		return -EAGAIN;
 
@@ -2258,13 +2423,21 @@
 	if (!fixup)
 		return -EAGAIN;
 
+	/*
+	 * We are already holding a reference to this inode from
+	 * write_cache_pages.  We need to hold it because the space reservation
+	 * takes place outside of the page lock, and we can't trust
+	 * page->mapping outside of the page lock.
+	 */
+	ihold(inode);
 	SetPageChecked(page);
 	get_page(page);
-	btrfs_init_work(&fixup->work, btrfs_fixup_helper,
-			btrfs_writepage_fixup_worker, NULL, NULL);
+	btrfs_init_work(&fixup->work, btrfs_writepage_fixup_worker, NULL, NULL);
 	fixup->page = page;
+	fixup->inode = inode;
 	btrfs_queue_work(fs_info->fixup_workers, &fixup->work);
-	return -EBUSY;
+
+	return -EAGAIN;
 }
 
 static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
@@ -3254,7 +3427,6 @@
 	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
 	struct btrfs_ordered_extent *ordered_extent = NULL;
 	struct btrfs_workqueue *wq;
-	btrfs_work_func_t func;
 
 	trace_btrfs_writepage_end_io_hook(page, start, end, uptodate);
 
@@ -3263,16 +3435,12 @@
 					    end - start + 1, uptodate))
 		return;
 
-	if (btrfs_is_free_space_inode(BTRFS_I(inode))) {
+	if (btrfs_is_free_space_inode(BTRFS_I(inode)))
 		wq = fs_info->endio_freespace_worker;
-		func = btrfs_freespace_write_helper;
-	} else {
+	else
 		wq = fs_info->endio_write_workers;
-		func = btrfs_endio_write_helper;
-	}
 
-	btrfs_init_work(&ordered_extent->work, func, finish_ordered_fn, NULL,
-			NULL);
+	btrfs_init_work(&ordered_extent->work, finish_ordered_fn, NULL, NULL);
 	btrfs_queue_work(wq, &ordered_extent->work);
 }
 
@@ -4166,7 +4334,7 @@
 	 * 1 for the inode ref
 	 * 1 for the inode
 	 */
-	return btrfs_start_transaction_fallback_global_rsv(root, 5, 5);
+	return btrfs_start_transaction_fallback_global_rsv(root, 5);
 }
 
 static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
@@ -4202,18 +4370,30 @@
 }
 
 static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
-			       struct inode *dir, u64 objectid,
-			       const char *name, int name_len)
+			       struct inode *dir, struct dentry *dentry)
 {
 	struct btrfs_root *root = BTRFS_I(dir)->root;
+	struct btrfs_inode *inode = BTRFS_I(d_inode(dentry));
 	struct btrfs_path *path;
 	struct extent_buffer *leaf;
 	struct btrfs_dir_item *di;
 	struct btrfs_key key;
+	const char *name = dentry->d_name.name;
+	int name_len = dentry->d_name.len;
 	u64 index;
 	int ret;
+	u64 objectid;
 	u64 dir_ino = btrfs_ino(BTRFS_I(dir));
 
+	if (btrfs_ino(inode) == BTRFS_FIRST_FREE_OBJECTID) {
+		objectid = inode->root->root_key.objectid;
+	} else if (btrfs_ino(inode) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID) {
+		objectid = inode->location.objectid;
+	} else {
+		WARN_ON(1);
+		return -EINVAL;
+	}
+
 	path = btrfs_alloc_path();
 	if (!path)
 		return -ENOMEM;
@@ -4235,13 +4415,16 @@
 	}
 	btrfs_release_path(path);
 
-	ret = btrfs_del_root_ref(trans, objectid, root->root_key.objectid,
-				 dir_ino, &index, name, name_len);
-	if (ret < 0) {
-		if (ret != -ENOENT) {
-			btrfs_abort_transaction(trans, ret);
-			goto out;
-		}
+	/*
+	 * This is a placeholder inode for a subvolume we didn't have a
+	 * reference to at the time of the snapshot creation.  In the meantime
+	 * we could have renamed the real subvol link into our snapshot, so
+	 * depending on btrfs_del_root_ref to return -ENOENT here is incorret.
+	 * Instead simply lookup the dir_index_item for this entry so we can
+	 * remove it.  Otherwise we know we have a ref to the root and we can
+	 * call btrfs_del_root_ref, and it _shouldn't_ fail.
+	 */
+	if (btrfs_ino(inode) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID) {
 		di = btrfs_search_dir_index_item(root, path, dir_ino,
 						 name, name_len);
 		if (IS_ERR_OR_NULL(di)) {
@@ -4256,8 +4439,16 @@
 		leaf = path->nodes[0];
 		btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
 		index = key.offset;
+		btrfs_release_path(path);
+	} else {
+		ret = btrfs_del_root_ref(trans, objectid,
+					 root->root_key.objectid, dir_ino,
+					 &index, name, name_len);
+		if (ret) {
+			btrfs_abort_transaction(trans, ret);
+			goto out;
+		}
 	}
-	btrfs_release_path(path);
 
 	ret = btrfs_delete_delayed_dir_index(trans, BTRFS_I(dir), index);
 	if (ret) {
@@ -4451,8 +4642,7 @@
 
 	btrfs_record_snapshot_destroy(trans, BTRFS_I(dir));
 
-	ret = btrfs_unlink_subvol(trans, dir, dest->root_key.objectid,
-				  dentry->d_name.name, dentry->d_name.len);
+	ret = btrfs_unlink_subvol(trans, dir, dentry);
 	if (ret) {
 		err = ret;
 		btrfs_abort_transaction(trans, ret);
@@ -4497,6 +4687,8 @@
 		}
 	}
 
+	free_anon_bdev(dest->anon_dev);
+	dest->anon_dev = 0;
 out_end_trans:
 	trans->block_rsv = NULL;
 	trans->bytes_reserved = 0;
@@ -4547,10 +4739,7 @@
 		return PTR_ERR(trans);
 
 	if (unlikely(btrfs_ino(BTRFS_I(inode)) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID)) {
-		err = btrfs_unlink_subvol(trans, dir,
-					  BTRFS_I(inode)->location.objectid,
-					  dentry->d_name.name,
-					  dentry->d_name.len);
+		err = btrfs_unlink_subvol(trans, dir, dentry);
 		goto out;
 	}
 
@@ -4631,6 +4820,8 @@
 	u64 bytes_deleted = 0;
 	bool be_nice = false;
 	bool should_throttle = false;
+	const u64 lock_start = ALIGN_DOWN(new_size, fs_info->sectorsize);
+	struct extent_state *cached_state = NULL;
 
 	BUG_ON(new_size > 0 && min_type != BTRFS_EXTENT_DATA_KEY);
 
@@ -4647,6 +4838,10 @@
 		return -ENOMEM;
 	path->reada = READA_BACK;
 
+	if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID)
+		lock_extent_bits(&BTRFS_I(inode)->io_tree, lock_start, (u64)-1,
+				 &cached_state);
+
 	/*
 	 * We want to drop from the next block forward in case this new size is
 	 * not block aligned since we will be keeping the last block of the
@@ -4683,7 +4878,6 @@
 		goto out;
 	}
 
-	path->leave_spinning = 1;
 	ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
 	if (ret < 0)
 		goto out;
@@ -4835,7 +5029,6 @@
 		     root == fs_info->tree_root)) {
 			struct btrfs_ref ref = { 0 };
 
-			btrfs_set_path_blocking(path);
 			bytes_deleted += extent_num_bytes;
 
 			btrfs_init_generic_ref(&ref, BTRFS_DROP_DELAYED_REF,
@@ -4911,6 +5104,8 @@
 		if (!ret && last_size > new_size)
 			last_size = new_size;
 		btrfs_ordered_update_i_size(inode, last_size, NULL);
+		unlock_extent_cached(&BTRFS_I(inode)->io_tree, lock_start,
+				     (u64)-1, &cached_state);
 	}
 
 	btrfs_free_path(path);
@@ -4938,11 +5133,13 @@
 	struct extent_state *cached_state = NULL;
 	struct extent_changeset *data_reserved = NULL;
 	char *kaddr;
+	bool only_release_metadata = false;
 	u32 blocksize = fs_info->sectorsize;
 	pgoff_t index = from >> PAGE_SHIFT;
 	unsigned offset = from & (blocksize - 1);
 	struct page *page;
 	gfp_t mask = btrfs_alloc_write_mask(mapping);
+	size_t write_bytes = blocksize;
 	int ret = 0;
 	u64 block_start;
 	u64 block_end;
@@ -4954,11 +5151,27 @@
 	block_start = round_down(from, blocksize);
 	block_end = block_start + blocksize - 1;
 
-	ret = btrfs_delalloc_reserve_space(inode, &data_reserved,
-					   block_start, blocksize);
-	if (ret)
-		goto out;
 
+	ret = btrfs_check_data_free_space(inode, &data_reserved, block_start,
+					  blocksize);
+	if (ret < 0) {
+		if ((BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW |
+					      BTRFS_INODE_PREALLOC)) &&
+		    btrfs_check_can_nocow(BTRFS_I(inode), block_start,
+					  &write_bytes) > 0) {
+			/* For nocow case, no need to reserve data space */
+			only_release_metadata = true;
+		} else {
+			goto out;
+		}
+	}
+	ret = btrfs_delalloc_reserve_metadata(BTRFS_I(inode), blocksize);
+	if (ret < 0) {
+		if (!only_release_metadata)
+			btrfs_free_reserved_data_space(inode, data_reserved,
+					block_start, blocksize);
+		goto out;
+	}
 again:
 	page = find_or_create_page(mapping, index, mask);
 	if (!page) {
@@ -5027,14 +5240,26 @@
 	set_page_dirty(page);
 	unlock_extent_cached(io_tree, block_start, block_end, &cached_state);
 
+	if (only_release_metadata)
+		set_extent_bit(&BTRFS_I(inode)->io_tree, block_start,
+				block_end, EXTENT_NORESERVE, NULL, NULL,
+				GFP_NOFS);
+
 out_unlock:
-	if (ret)
-		btrfs_delalloc_release_space(inode, data_reserved, block_start,
-					     blocksize, true);
+	if (ret) {
+		if (only_release_metadata)
+			btrfs_delalloc_release_metadata(BTRFS_I(inode),
+					blocksize, true);
+		else
+			btrfs_delalloc_release_space(inode, data_reserved,
+					block_start, blocksize, true);
+	}
 	btrfs_delalloc_release_extents(BTRFS_I(inode), blocksize);
 	unlock_page(page);
 	put_page(page);
 out:
+	if (only_release_metadata)
+		btrfs_end_write_no_snapshotting(BTRFS_I(inode)->root);
 	extent_changeset_free(data_reserved);
 	return ret;
 }
@@ -5693,7 +5918,6 @@
 
 static void inode_tree_del(struct inode *inode)
 {
-	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
 	struct btrfs_root *root = BTRFS_I(inode)->root;
 	int empty = 0;
 
@@ -5706,7 +5930,6 @@
 	spin_unlock(&root->inode_lock);
 
 	if (empty && btrfs_root_refs(&root->root_item) == 0) {
-		synchronize_srcu(&fs_info->subvol_srcu);
 		spin_lock(&root->inode_lock);
 		empty = RB_EMPTY_ROOT(&root->inode_tree);
 		spin_unlock(&root->inode_lock);
@@ -7001,7 +7224,7 @@
 	    extent_type == BTRFS_FILE_EXTENT_PREALLOC) {
 		/* Only regular file could have regular/prealloc extent */
 		if (!S_ISREG(inode->vfs_inode.i_mode)) {
-			ret = -EUCLEAN;
+			err = -EUCLEAN;
 			btrfs_crit(fs_info,
 		"regular/prealloc extent found for non-regular inode %llu",
 				   btrfs_ino(inode));
@@ -7336,7 +7559,7 @@
  */
 noinline int can_nocow_extent(struct inode *inode, u64 offset, u64 *len,
 			      u64 *orig_start, u64 *orig_block_len,
-			      u64 *ram_bytes)
+			      u64 *ram_bytes, bool strict)
 {
 	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
 	struct btrfs_path *path;
@@ -7414,8 +7637,9 @@
 	 * Do the same check as in btrfs_cross_ref_exist but without the
 	 * unnecessary search.
 	 */
-	if (btrfs_file_extent_generation(leaf, fi) <=
-	    btrfs_root_last_snapshot(&root->root_item))
+	if (!strict &&
+	    (btrfs_file_extent_generation(leaf, fi) <=
+	     btrfs_root_last_snapshot(&root->root_item)))
 		goto out;
 
 	backref_offset = btrfs_file_extent_offset(leaf, fi);
@@ -7451,7 +7675,8 @@
 	 */
 
 	ret = btrfs_cross_ref_exist(root, btrfs_ino(BTRFS_I(inode)),
-				    key.offset - backref_offset, disk_bytenr);
+				    key.offset - backref_offset, disk_bytenr,
+				    strict);
 	if (ret) {
 		ret = 0;
 		goto out;
@@ -7672,7 +7897,7 @@
 		block_start = em->block_start + (start - em->start);
 
 		if (can_nocow_extent(inode, start, &len, &orig_start,
-				     &orig_block_len, &ram_bytes) == 1 &&
+				     &orig_block_len, &ram_bytes, false) == 1 &&
 		    btrfs_inc_nocow_writers(fs_info, block_start)) {
 			struct extent_map *em2;
 
@@ -8211,18 +8436,14 @@
 	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
 	struct btrfs_ordered_extent *ordered = NULL;
 	struct btrfs_workqueue *wq;
-	btrfs_work_func_t func;
 	u64 ordered_offset = offset;
 	u64 ordered_bytes = bytes;
 	u64 last_offset;
 
-	if (btrfs_is_free_space_inode(BTRFS_I(inode))) {
+	if (btrfs_is_free_space_inode(BTRFS_I(inode)))
 		wq = fs_info->endio_freespace_worker;
-		func = btrfs_freespace_write_helper;
-	} else {
+	else
 		wq = fs_info->endio_write_workers;
-		func = btrfs_endio_write_helper;
-	}
 
 	while (ordered_offset < offset + bytes) {
 		last_offset = ordered_offset;
@@ -8230,9 +8451,8 @@
 							   &ordered_offset,
 							   ordered_bytes,
 							   uptodate)) {
-			btrfs_init_work(&ordered->work, func,
-					finish_ordered_fn,
-					NULL, NULL);
+			btrfs_init_work(&ordered->work, finish_ordered_fn, NULL,
+					NULL);
 			btrfs_queue_work(wq, &ordered->work);
 		}
 		/*
@@ -8324,6 +8544,7 @@
 {
 	struct btrfs_io_bio *io_bio = btrfs_io_bio(bio);
 	struct btrfs_io_bio *orig_io_bio = btrfs_io_bio(dip->orig_bio);
+	u16 csum_size;
 	blk_status_t ret;
 
 	/*
@@ -8343,7 +8564,8 @@
 
 	file_offset -= dip->logical_offset;
 	file_offset >>= inode->i_sb->s_blocksize_bits;
-	io_bio->csum = (u8 *)(((u32 *)orig_io_bio->csum) + file_offset);
+	csum_size = btrfs_super_csum_size(btrfs_sb(inode->i_sb)->super_copy);
+	io_bio->csum = orig_io_bio->csum + csum_size * file_offset;
 
 	return 0;
 }
@@ -8394,14 +8616,64 @@
 	return ret;
 }
 
-static int btrfs_submit_direct_hook(struct btrfs_dio_private *dip)
+/*
+ * If this succeeds, the btrfs_dio_private is responsible for cleaning up locked
+ * or ordered extents whether or not we submit any bios.
+ */
+static struct btrfs_dio_private *btrfs_create_dio_private(struct bio *dio_bio,
+							  struct inode *inode,
+							  loff_t file_offset)
 {
-	struct inode *inode = dip->inode;
+	const bool write = (bio_op(dio_bio) == REQ_OP_WRITE);
+	struct btrfs_dio_private *dip;
+	struct bio *bio;
+
+	dip = kzalloc(sizeof(*dip), GFP_NOFS);
+	if (!dip)
+		return NULL;
+
+	bio = btrfs_bio_clone(dio_bio);
+	bio->bi_private = dip;
+	btrfs_io_bio(bio)->logical = file_offset;
+
+	dip->private = dio_bio->bi_private;
+	dip->inode = inode;
+	dip->logical_offset = file_offset;
+	dip->bytes = dio_bio->bi_iter.bi_size;
+	dip->disk_bytenr = (u64)dio_bio->bi_iter.bi_sector << 9;
+	dip->orig_bio = bio;
+	dip->dio_bio = dio_bio;
+	atomic_set(&dip->pending_bios, 1);
+
+	if (write) {
+		struct btrfs_dio_data *dio_data = current->journal_info;
+
+		/*
+		 * Setting range start and end to the same value means that
+		 * no cleanup will happen in btrfs_direct_IO
+		 */
+		dio_data->unsubmitted_oe_range_end = dip->logical_offset +
+			dip->bytes;
+		dio_data->unsubmitted_oe_range_start =
+			dio_data->unsubmitted_oe_range_end;
+
+		bio->bi_end_io = btrfs_endio_direct_write;
+	} else {
+		bio->bi_end_io = btrfs_endio_direct_read;
+		dip->subio_endio = btrfs_subio_endio_read;
+	}
+	return dip;
+}
+
+static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
+				loff_t file_offset)
+{
+	const bool write = (bio_op(dio_bio) == REQ_OP_WRITE);
 	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
+	struct btrfs_dio_private *dip;
 	struct bio *bio;
-	struct bio *orig_bio = dip->orig_bio;
-	u64 start_sector = orig_bio->bi_iter.bi_sector;
-	u64 file_offset = dip->logical_offset;
+	struct bio *orig_bio;
+	u64 start_sector;
 	int async_submit = 0;
 	u64 submit_len;
 	int clone_offset = 0;
@@ -8410,11 +8682,24 @@
 	blk_status_t status;
 	struct btrfs_io_geometry geom;
 
+	dip = btrfs_create_dio_private(dio_bio, inode, file_offset);
+	if (!dip) {
+		if (!write) {
+			unlock_extent(&BTRFS_I(inode)->io_tree, file_offset,
+				file_offset + dio_bio->bi_iter.bi_size - 1);
+		}
+		dio_bio->bi_status = BLK_STS_RESOURCE;
+		dio_end_io(dio_bio);
+		return;
+	}
+
+	orig_bio = dip->orig_bio;
+	start_sector = orig_bio->bi_iter.bi_sector;
 	submit_len = orig_bio->bi_iter.bi_size;
 	ret = btrfs_get_io_geometry(fs_info, btrfs_op(orig_bio),
 				    start_sector << 9, submit_len, &geom);
 	if (ret)
-		return -EIO;
+		goto out_err;
 
 	if (geom.len >= submit_len) {
 		bio = orig_bio;
@@ -8430,7 +8715,6 @@
 
 	/* bio split */
 	ASSERT(geom.len <= INT_MAX);
-	atomic_inc(&dip->pending_bios);
 	do {
 		clone_len = min_t(int, submit_len, geom.len);
 
@@ -8478,9 +8762,10 @@
 submit:
 	status = btrfs_submit_dio_bio(bio, inode, file_offset, async_submit);
 	if (!status)
-		return 0;
+		return;
 
-	bio_put(bio);
+	if (bio != orig_bio)
+		bio_put(bio);
 out_err:
 	dip->errors = 1;
 	/*
@@ -8491,107 +8776,6 @@
 	 */
 	if (atomic_dec_and_test(&dip->pending_bios))
 		bio_io_error(dip->orig_bio);
-
-	/* bio_end_io() will handle error, so we needn't return it */
-	return 0;
-}
-
-static void btrfs_submit_direct(struct bio *dio_bio, struct inode *inode,
-				loff_t file_offset)
-{
-	struct btrfs_dio_private *dip = NULL;
-	struct bio *bio = NULL;
-	struct btrfs_io_bio *io_bio;
-	bool write = (bio_op(dio_bio) == REQ_OP_WRITE);
-	int ret = 0;
-
-	bio = btrfs_bio_clone(dio_bio);
-
-	dip = kzalloc(sizeof(*dip), GFP_NOFS);
-	if (!dip) {
-		ret = -ENOMEM;
-		goto free_ordered;
-	}
-
-	dip->private = dio_bio->bi_private;
-	dip->inode = inode;
-	dip->logical_offset = file_offset;
-	dip->bytes = dio_bio->bi_iter.bi_size;
-	dip->disk_bytenr = (u64)dio_bio->bi_iter.bi_sector << 9;
-	bio->bi_private = dip;
-	dip->orig_bio = bio;
-	dip->dio_bio = dio_bio;
-	atomic_set(&dip->pending_bios, 0);
-	io_bio = btrfs_io_bio(bio);
-	io_bio->logical = file_offset;
-
-	if (write) {
-		bio->bi_end_io = btr
[file cut: first 33554432 bytes kept]
[document cut: first 31195185 of 33554316 characters kept]
